ATS2-Postiats-gmp-0.3.13/./0000755000175000017500000000000013431250607014662 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./RELEASE/0000755000175000017500000000000013431250607015742 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.6-release.html0000644000175000017500000000234413431250607023427 0ustar brandonbrandon ATS2-0.2.6

ats2-postiats-0.2.6:


This is the 29th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. A minor fix to make the long form of macrodef work
2. Adding an article in EFFECTIVATS on parsing combinators of CPS-style
3. Allowing recursive evaluation of a file path: pkgsrcname_eval
4: Adding a section on linear C-strings in INT2PROGINATS
5: Adding an ATS2TUTORIAL-chapter on stack-allocated closure-functions
6: Adding support for #pragma(location, ...) (referred to as locpragma)
7. Adding an article in EFFECTIVATS on imperative vs. functional vs. linear functional

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.12-release.html0000644000175000017500000000335213431250607023503 0ustar brandonbrandon ATS2-0.1.12

ats2-postiats-0.1.12:


This is the 21st release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing a bug involving the sequentiality of pattern matching.
   Please see doc/BUGS/bug-2015-04-15.dats for more on this one.
2. Improving s2exp_syneq2 by adding a couple of missing cases:
   S2Edatcontyp and S2Edatconptr
3. Adding patterns of the form: $tup(...) and $rec(...)
4. Renaming the option -CSignore as --constraint-ignore:
   patscc --constaint-ignore
5. Supporting the option to disable tail-call optimization:
   patscc --tlcalopt-disable
   patsopt --tlcalopt-disable
6. Supporting s2rt_float and static floating-points
7. Supporting s2rt_string and static string constants
8. If undefined, ATS_EXTERN_PREFIX is assumed to have the value:
   "__ATS_EXTERN_PREFIX__".
9. no exporting of r(), w() and rw() from prelude/basics_dyn.sats
10. Fixing bug-2015-05-13:
    Handling of staloaded template implementations was incorrect
11. Dot-symbol overloading is required to be of functional style.
    For instance,
    point.x changes to point.x()
    point.y changes to point.y()

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.12-release.html0000644000175000017500000000611013431250607023500 0ustar brandonbrandon ATS2-0.3.12

ats2-postiats-0.3.12:


------------------------------------------------
ATS2-Postiats-0.3.12.tgz:
MD5: 6328cac96b0b0a19ecf13480662a7f42
SHA1: da6e20815351c6a59635ca61da9474c68fc06b34
------------------------------------------------

This is the 49th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing parsing for hexidecimal floating point numbers
2. Fixing issues with some atsccomp transpilers and their libs
3. Tidying-up code for resolving fixity (xpushup and xreduce)
4. Atscc2js supports native records now (Kudos to AS-2018-08-18):
   See the function [emit_SELfltrec] for some detail.

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.9-release.html0000644000175000017500000000326413431250607023433 0ustar brandonbrandon ATS2-0.1.9

ats2-postiats-0.1.9:


This is the 18th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Circumventing a Clang-3.5-O2 related bug that caused the generated
   patsopt to crash immediately. For more, please visit:
   https://groups.google.com/forum/#!topic/ats-lang-users/FSgjjkUURs4
2. Fixing a bug in pats_tyerase:s2zexp_tyer:
   https://groups.google.com/forum/#!topic/ats-lang-users/SGpN2D991tA
   https://github.com/githwxi/ATS-Postiats/blob/master/doc/BUGS/bug-2015-01-25.dats
3. Improving pats_trans2_p1at:p1at_tr_arg. See:
   ATS-Postiats-test/contrib/test-hwxi/test03.dats
4. Improving the formatting of INT2PROGINATS and ATS2TUTORIAL
5. Having $showtype to also print out the sort information
6. Adding API for sdstring (simple dynamic strings) in ATS2-contrib
7. Adding $UN.prop_assert for asserting any proposition one needs
8. Adding flags -h/--help for patscc to print out usage information
9. Handling D2Coverload during the jsonization of level-2 syntax
10. Reporting a compilation error if HDEsif is encountered

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.1-release.html0000644000175000017500000000243413431250607023422 0ustar brandonbrandon ATS2-0.2.1

ats2-postiats-0.2.1:


0.2.1

This is the 24th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding support for $solver_asssert and $solver_verify
   This is mainly to facilitate the use of ATS-extsolve-z3
2. Fixing [s2exp_hnfize_app] in [pats_staexp2_util2.dats]
3. Adding testing code: doc/EXAMPLE/ATSLIB/libats_gflist.dats
4. Adding various matrix-functions to libatscc/matrixref
5. Adding prelude/grandom (for generating lists and arrays randomly)
6. Atscc2erl (from ATS to Erlang) is functioning!
7. Libatscc2erl is created to work with Atscc2erl
8. Supporting --tlcalopt-disable + fnx (important for atscc2erl)

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.4-release.html0000644000175000017500000000346713431250607023434 0ustar brandonbrandon ATS2-0.2.4

ats2-postiats-0.2.4:


This is the 27th release of ATS2, the successor of the ATS
(currently referred to as ATS1) programming language. The compiler
for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply
Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib

Here is a list of major additions and changes since the last release:

1. Fixing a bug due to abstract types being given the 'empty' name.
2. Adding libats/theGetters
3. Fixing a bug in ATS-extsolve (involving the s2rtdatmap generation)
4. Fixing a minor parsing bug in CATS-parsemit
5. Adding libatsopt, the library version of patsopt; see utils/libatsopt
6. Adding some ifdef-guards:
   ATS_EXTERN_DEF__ for guarding the definition of ATSextern()
   ATS_STATIC_DEF__ for guarding the definition of ATSstatic()
   ATS_INLINE_DEF__ for guarding the definition of ATSinline()
7. Adding some examples to illustrate a way of using ATS+Emscripten
8. Supporting evaluated expressions (of the form %(...)) in statics
9. Generally improving libatscc2js and libatscc2erl
10. With libatsopt(JS), patsopt can now run entirely inside the browser.
11. Adding char2int1 and fixing add_bool_bool and mul_bool_bool

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.11-release.html0000644000175000017500000000256513431250607023511 0ustar brandonbrandon ATS2-0.3.11

ats2-postiats-0.3.11:


------------------------------------------------
ATS2-0.3.11.tgz:
MD5: 847b592ce92655fe72f68000104e12b4
SHA1: c4df38d0ae759be4294c8a9d90f8bad7800dac50
------------------------------------------------

This is the 48th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Re-enabling the support for -IATS
2. Rewording LICENSE: the ATS libraries are now covered under LGPLv3
   In particular, any C code generated by ATS/Postiats is NOT by default
   considered to be covered by the GPL/LGPL license of any kind.
3. Renaming some keywords:
   atstbox for atstype
   atstflat for atst0ype
   atsvtbox for atsvtype
   atsvtflat for atsvt0ype
   absimpl for assume and atsreimpl for reassume

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.2-release.html0000644000175000017500000000361113431250607023422 0ustar brandonbrandon ATS2-0.3.2

ats2-postiats-0.3.2:

0.3.2

This is the 39th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Allowing overloads declared in staloadnm to be merged automatically
2. Initiating libatscc being moved from PATSCONTRIB to PATSHOME/contrib
   In particular, moving of Bacon.js and Worker in libatscc/libatscc2js
   is finished.
(*
//
HX-2017-02-01: Reverted!
// File search in ATS is intentionally different from done in C
//
3. Using pushb (push-from-the-back) to push a path permanently:
   fun the_pathlst_ppushb(x: path): void // see [pats_filename]
   fun the_IATS_dirlst_ppushb (dir: string): void // see [pats_global]
*)
4. Adding support for handling abstract types of unspecified size
5. Adding code into libats/BUCS320/. to support package-based programming
6. Introducing the compilation flag _ATS_CCOMP_ASSUME_CHECK_NONE_ to skip
   over checks that are otherwise required of assuming (i.e., implementing)
   abstract types
7. Moving a lot of code around due to packaging; mostly from PATSCONTRIB
   to PATSHOME/npm-utils
8. Adding support for 'where  end' (besides 'where {  }')
9. Fixing a minor glitch involving typechecking ifcase-expressions
10. Removing duplicates of overloaded dynamic constants and variables
ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.8-release.html0000644000175000017500000000310013431250607023421 0ustar brandonbrandon ATS2-0.3.8

ats2-postiats-0.3.8:

This is the 45th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding libatscc/ML/option0
2. Adding libatscc/ML/matrix0
3. Minorly improving libatscc/ML/list0 and libatscc/ML/array0
4. Fixing missing cases in eval1_p2at (pats_dmacro2_eval1.dats)
5. Fixing and improving libats/funarray
6. Adding calls to the_dynconlst_add to ensure that every exception
   constructor is declared in the generated C code.
7. Initiating building the "compiled" library libats/ML/COMPILE
8. Fixing a glitch in compiling polymorphic functions that call
   function templates (auxmat_env in [pats_ccomp_template.dats])
   A simple use case is found in doc/EXAMPLE/TESTATS/tempboxed.dats
9. Adding support for calling variadic functions in a type-safe way.
   There is no attempt to add support for type-safe implementation of
   variadic functions yet.
10. Supporting the user of the flag --gc for myatscc.

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.0.7-release.html0000644000175000017500000000276713431250607023437 0ustar brandonbrandon ATS2-0.0.7

ats2-postiats-0.0.7:


Date: March 30, 2014

This is the seventh release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Supporting stack-allocated closures
2. Fixing errmsg for a non-template being treated as a template
3. Changing default funclo-kind from FUNCLOptr to FUNCLOref
4. Fixing level-4 errmsg handling
5. Fixing a bug in the handling of lte_cls_cls (see: bug-2014-03-12)
6. Supporting creation of aliases for namespaces:
   staload $UNSAFE // opening the namespace $UNSAFE
   staload UN = $UNSAFE // forming an alias for $UNSAFE
7. Supporting creation of local namespaces // to-be-explained
8. Supporting tcc-0.9.26 for compiling C code generated from ATS source

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.0.5-release.html0000644000175000017500000000327213431250607023425 0ustar brandonbrandon

ats2-postiats-0.0.5:


Date: January 15, 2014

This is the fifth release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing a glitch in initializing flat boxed-singleton records
   (see doc/BUGS/bug-2013-11-29)
2. Adding support for jsonizing level-2 syntax trees; this is planned
   for support tasks like meta-programming, constraint-exporting, etc.
3. Adding support for exporting constraints gathered during typechecking
   (command-line flag for this feature: --constraint-export)
4. Fixing bug-2013-12-04 (erroneous compilation of pattern matching)
5. Adding a direct API for the json-c package
6. Adding a direct API for the jansson package
7. Adding a minimal API for the pcre package
8. Adding support for 'static' dynamic constant declarations:
   static fun foo (...): res // this one is equivalent to the next one
   extern fun foo (...): res = "sta#" // it is equivalent to the above one
9. Improving support for exporting ATS-types to C
10. Requiring that each declared toplevel function be envless; closures
    need to be declared as values.
11. Supporting the flag -CSignore for patscc to ignore constraint-solving.
    Please only use it with proper justification!

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.2-release.html0000644000175000017500000000251413431250607023421 0ustar brandonbrandon ATS2-0.1.2

ats2-postiats-0.1.2:


This is the 11th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding support for complements of char patterns (P2TCcharc)
2. Adding support for a packaging value (#[...|...]) to be used as a funarg
3. Modifying the target language of ATS/Postiats to support ATS-parse-emit
4. Adding support for explicitly naming dynload-functions:
   #define ATS_DYNLOADNAME ...
5. Adding support for attaching a prefix to names of static vars and funs:
   #define ATS_STATIC_PREFIX ...

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.7-release.html0000644000175000017500000000267513431250607023440 0ustar brandonbrandon ATS2-0.3.7

ats2-postiats-0.3.7:

This is the 44th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Extending prelude/stream_vt with more functions
2. Improving ${PATSHOME}/contrib/libatscc2php/ATS2-0.3.2
3. Supporting the following style of function interface declaration:
   extern
   fun swap_boxed{a,b:type}(xy: (a, b)): (b, a)
   (
   Note that (a, b) needs to be replaced with @(a, b) at this point
   )
4. Adding stream-processing functions in prelude and libats/ML
5. Hosting for ats-lang.org moved from OPENSHIFT2 to OPENSHIFT3
6. In progress:
   A Functional Crash into ATS: ${PATSHOME}/doc/BOOK/ATS2FUNCRASH
7. Atscc2r34 (for transpiling ATS into R) is functioning and it is
   expected to be improved gradually.
8. Improving ATSLIB/libats/ML: more list0-combinators; printing stuff
ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.1-release.html0000644000175000017500000000215313431250607023421 0ustar brandonbrandon ATS2-0.3.1

ats2-postiats-0.3.1:

0.3.1

This is the 38th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Moving ${PATSHOME}/atscntrb/* into ${PATSHOME}/contrib/.
2. Adding ${PATSHOME}/npm-utils; gradually retiring ${PATSCONTRIB}/.
3. Supporting package-based programming:
   PATSHOMELOCS, mydepies.?ats, mylibies.?ats, etc
   Please see GraphSearch-npm in the Effective ATS series
4. There is still a lot of moving around; the dust should soon settle...
ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.13-release.html0000644000175000017500000000237013431250607023504 0ustar brandonbrandon ATS2-0.2.13

ats2-postiats-0.2.13:

0.2.13

This is the 36th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding a parsing-combinator package for libats.
2. Adding a parsing-combinator package for libatscc.
3. ATS2-contrib/ats2cpp is significantly improved and ready for real
   use. For instance, it is used in a project involving OpenCV.
4. Adding libats/BUCS320/GraphSearch for teaching graph-based search.
5. Adding libatscc/BUCS320/GraphSearch for:
   atscc2js, atscc2py3, atscc2php, atscc2clj, atscc2scm, and atscc2pl
6. Re-fixing bug-2016-06-26 // see pats_trans3_util.dats for comment
ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.8-release.html0000644000175000017500000000346013431250607023431 0ustar brandonbrandon ATS2-0.2.8

ats2-postiats-0.2.8:


This is the 31st release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding support for ifcase-expressions. Please see
   https://github.com/githwxi/ATS-Postiats/blob/master/doc/EXAMPLE/TESTATS/ifcase.dats
2. atscc2py/libatscc2py changes to atscc2py3/libatscc2py3
3. atscc2scm/libatscc2scm starts to be functional (but it is still a long way to go!)
4. Adding support for jsonizing S2Ewithtype (wths2explst); some fixing for d2cst decl
5. Improving patsolve_z3 to handle constraints on real numbers
6. Improving libatscc in general; adding support for pygame in libatscc2py3
7. Adding ATS-extsolve-smt2 based on the pilot work by Will Blair and Hanwen Wu; the
   command patsolve_smt2 turns ATS constraints in json format into those in smt-lib2
   format, which can then be solved with z3, cvc4, etc. In particular, constraints on
   reals can be handled in this way.
8. Fixing a bug involving tuple/record compilation (see: doc/BUGS/bug-2016-06-26.dats)
9. Circumventing a bug involving templates initiated with fnx (see: bug-2014-11-14.dats)
10. Adding tupbox(...) and fprint_tupbox(...) for boxed tuples of length 1, 2, 3, and 4

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.12-release.html0000644000175000017500000000232213431250607023500 0ustar brandonbrandon ATS2-0.2.12

ats2-postiats-0.2.12:


0.2.12

This is the 35th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Significantly expanding libatscc
2. Improving typechecking involving $delay and $ldelay
3. Changing symbolic to "%&+-./:=@~`^|*!?<>#" (that is, '$' is dropped)
4. Supporting both string_make_stream and string_make_stream_vt
5. Improving support for combinators in stream_vt, ML/list0 and ML/string
6. Introducing $tyrep(...) for outputing terms representing types in the
   generated code (so that C++ templates can be used in ATS2 code directly)

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.7-release.html0000644000175000017500000000236313431250607023431 0ustar brandonbrandon ATS2-0.2.7

ats2-postiats-0.2.7:


This is the 30th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding some basic functions into libats/ML/stdlib
2. Atexting is functioning; it has been used to syntax-hilite ATS code
   in docbook.
3. Refactoring libatsynmark to make it directly dependent on libatsopt
4. Automatically building libatsopt and libatsynmark when testing (travis-ci)
5. Automatically building INT2PROGINATS and ATS2TUTORIAL (thanks to Kiwamu Okabe)
6. Fixing bug-2016-05-13 (reported by paul7)
   See BUGs/bug-2016-05-13.dats (it involves empty list of matching d2explst)

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.3-release.html0000644000175000017500000000265313431250607023430 0ustar brandonbrandon ATS2-0.3.3

ats2-postiats-0.3.3:

0.3.3

This is the 40th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Supporting $tempenver in template implementation:
   This is a crucial addition in support of programming in ATS that
   may potentially be (very) deeply template-based!!!
(*
2: Re-arranging (and duplicating) files containing code of template
   implementation may cause the need for $tempenver to change. It is
   not yet understood what the reason is behind all of this behavior.
*)
3. Fixing a glitch involving tail-call optimization; please see the
   function hidexp_seq_simplify for details.
4. Supporting [reassume]: An assumed abstract type can be reassumed
   so as to make its (original) implementation available in the scope
   of the reassume-declaration.

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.1-release.html0000644000175000017500000000312113431250607023413 0ustar brandonbrandon ATS2-0.1.1

ats2-postiats-0.1.1:


This is the tenth release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding support for checking funarg-pattern exhaustiveness
2. Adding run-time support for handling funarg-pattern matching failure
3. Default namespace is assumed for staloadloc if none is given explicitly.
4. Stopping non-template constants from being implemented in the body of a
   function (during type-checking)
5. Improving/fixing libats/stringbuf
6. Supporting the compilation of list-patterns:
   val+ $list(x1, x2, x3) = $list_t{int}(1, 2, 3)
   val () = assertloc (x1 = 1 && x2 = 2 && x3 = 3)
   val+ $list(x1, x2, x3) = $list_vt{int}(1, 2, 3) // freed
   val () = assertloc (x1 = 1 && x2 = 2 && x3 = 3)
7. Improving/fixing libats/deqarray and libats/dynarray

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.8-release.html0000644000175000017500000000207013431250607023424 0ustar brandonbrandon ATS2-0.1.8

ats2-postiats-0.1.8:


This is the 17th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. GCATS (GC for ATS1) is no longer used by default to build patsopt.
   Some common command-lines for building patsopt are listed below:
   ./configure && make # using no GC
   ./configure && make GCFLAG=-D_ATS_GCBDW # using Boehm-GC
   ./configure && make GCFLAG=-D_ATS_GCATS # using GCATS (GC for ATS1)

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.5-release.html0000644000175000017500000000354513431250607023432 0ustar brandonbrandon ATS2-0.2.5

ats2-postiats-0.2.5:


This is the 28th release of ATS2, the successor of the ATS
(currently referred to as ATS1) programming language. The compiler
for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply
Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib

Here is a list of major additions and changes since the last release:

1. With libatscc2js(JS), Atscc2js can now run entirely inside the
   browser.
2. Patsopt(JS) and Atscc2js(JS) have been combined to allow one to
   try ATS entirely in one's browser (running only client-side JS).
3. Treating the following form as a value: let ... in aValue end
   (where aValue is assumed to be a value).
4. WebWorker-based support for session types in libatscc2js/Worker/channel
5. Fixing the handling of decarg of a function template declaration
6. Fixing a bug in effect-tracking of assignment: assigning a proof term
   should not genereate any effect. Please see: d2exp_trup_assgn:D2LVALvar_mut
7. Adding libats/ML/gvalue
8. Adding libats/ML/dynarray
9. Adding an ATS2TUTORIAL-chapter on boxed tuples and records.
10. Adding an article in EFFECTIVATS on encoding propositional logic
11. Removing the once planned support for flattened references (ref@)

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.2-release.html0000644000175000017500000000273113431250607023423 0ustar brandonbrandon ATS2-0.2.2

ats2-postiats-0.2.2:


This is the 25th release of ATS2, the successor of the ATS
(currently referred to as ATS1) programming language. The compiler
for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply
Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding support for explicitly boxed types: boxed and boxed_vt
2. Adding backup links to INT2PROGINATS, ATS2TUTORIAL, and EFFECTIVATS.
3. Fixing a bug in typechecking loop invariants (see bug-2015-08-04).
4. Adding [g0int_npow] and [g0float_npow] and overloading ** with them.
   For instance: (x+y)**3 expands to x**3 + 3*x**2*y + 3*x*y**2 + y**3
5. Adding the_s2rtdatmap to the jsonization of generated constraints
   (for listing the inductively defined sorts used in the constraints)
6. Supporting tail-call optimization for static function templates
7. Supporting #codegen2 for datcon, datcontag, and fprint
8. Supporting the use of $d2ctype for taking the type of a dynamic constant

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.10-release.html0000644000175000017500000000253013431250607023500 0ustar brandonbrandon ATS2-0.3.10

ats2-postiats-0.3.10:


------------------------------------------------
ATS2-0.3.10.tgz:
MD5: 8dd5c5b4542bb9b65385d62c53b12943
SHA1: ec31033459be1771d0baf76f96553ecaaa9dde6d
------------------------------------------------

This is the 47th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Improving atscntrb-sdstring and atscntrb-hx-cstream
2. Changing "atscntrb" to "atscntrb-hx" in the names of almost all of
   the npm-based ATS packages contributed by myself (Hongwei). This is
   a pervasive change due the wide use of these packages.
3. Adding libats/ML/SATS/argvec.sats and libats/ML/SATS/argvec.dats
4. Adding share/SCRIPT/buildRelease.sh to automate build/release ATS

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.10-release.html0000644000175000017500000000220113431250607023472 0ustar brandonbrandon ATS2-0.2.10

ats2-postiats-0.2.10:


This is the 33rd release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding support for pats2xhtml
2. Adding support for patsopt-tc, patsopt-cc and patsopt-ccjs
3. Improving s2zexp_make_s2exp (in src/pats_staexp2_szexp.dats)
4. Reorganizing prelude/integer into
   integer_long, integer_size, and integer_short
   (Note that there are also integer_ptr and integer_fixed)
5. Adding support for codegen2_absrec (for generating record interface)

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.0.8-release.html0000644000175000017500000000301213431250607023420 0ustar brandonbrandon ATS2-0.0.8

ats2-postiats-0.0.8:


Date: May 4, 2014

This is the eighth release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding libc/signal to support Unix-like signal handling
2. Adding contrib/kernelats to support kernel programming in ATS
3. Adding contrib/libats-hwxi/array_p to support a simpler form of
   static array-bounds checking
4. Fixing a bug/typo in handling stream-based lazy evaluation
5. Improving contrib/GTK significantly
6. Both CFLAGS and LDFLAGS can be defined for building ATS2:
   make CFLAGS=... LDFLAGS=... -f Makefile
7. Adding support for on-line package relocation (atspkgreloc):
   patsopt --pkgreloc ...
8. Adding contrib/openssl into ATS2-contrib for the first time

ATS2-Postiats-gmp-0.3.13/./RELEASE/.keeper0000644000175000017500000000000013431250607017204 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.4-release.html0000644000175000017500000000265213431250607023426 0ustar brandonbrandon ATS2-0.1.4

ats2-postiats-0.1.4:


This is the 13th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing the initialization of stacked allocated arrays:
   var A0 = @[int][4]() // A0 = ?,?,?,?
   var A1 = @[int][4](1) // A1 = 1,1,1,1
   var A2 = @[int][4](1,2) // A2 = 1,2,1,2
   var A3 = @[int][4](1,2,3) // A3 = 1,2,3,1
   var A4 = @[int][4](1,2,3,4) // A4 = 1,2,3,4
   var A5 = @[int][4](1,2,3,4,5) // A5 = 1,2,3,4
2. Fixing hidexp_is_lvalue:
   handling sequencing-expressions is supported
3. Support for lazy-evaluation is added to atscc2js 
4. ATStmpdec_void(...) is commented out in the generated C code
5. [patscc] is given a flag '-verbose' for controlling verbosity
(*
# HX: it is dropped:
6. [patscc] now passes the flag -Wl,warn-common to [gcc] by default
*)

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.0-release.html0000644000175000017500000000307313431250607023422 0ustar brandonbrandon ATS2-0.3.0

ats2-postiats-0.3.0:

0.3.0

This is the 37th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing a compilation issue involving extvar
2. pkgreloc -> atsreloc; util/atspkgreloc -> util/atsreloc
3. Adding doc/EXAMPLE/RosettaCode as an example of [atsreloc] that makes
   it conventient to download external library code for use in a project.
4. Adding support for PATSHOMERELOCS. Please see:
   https://groups.google.com/forum/#!topic/ats-lang-users/03LCSLaBmxU
5. Adding script for automatically building ccomp/atslib/lib/libatsopt.a
   in future releases
6. Reorganizing (by moving packages from ATS2-contrib to ATS2/contrib):
   ats2cpp,
   ATS-extsolve,
   ATS-extsolve-z3,
   ATS-extsolve-smt2,
   CATS-parsemit,
   CATS-atscc2js,
   CATS-atscc2pl,
   CATS-atscc2py3,
   CATS-atscc2php,
   CATS-atscc2scm,
   CATS-atscc2clj,
   CATS-atscc2erl,
   ...
   Basically, there is a lot of moving around...
ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.0.4-release.html0000644000175000017500000000311113431250607023414 0ustar brandonbrandon

ats2-postiats-0.0.4:


Date: November 11, 2013

This is the fourth release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing a glitch in handling ATS_DYNLOADFLAG (bug-2013-10-11)
2. Adding -D_ATS_EXCEPTION_NONE support for eliminating the code in the
   run-time of ATS2 that are exception-related.
3. Fixing a glitch in proof-assignment compilation (reported by MD)
4. Allowing overloading declarations to permeates OPENED namespace.
5. Fixing a glitch in handling overloading (bug-2013-10-30 reported by WB)
6. Fixing a glitch in handling flat arrays (bug-2013-10-30-2 reported by WB)
7. Fixing a glitch in handling arrays in structs (bug-2013-11-01 reported by WB)
8. Fixing a glitch in handling implementation of values (bug-2013-11-06 reported by HX)
9. All the occurrences of LGPL-2.1 in ATS2/Postiats have been changed to GPL-3.
   LGPL-2.1 still occurs in certain packages contained in ats2-lang-contrib   
10. Supporting that ATS-types be exported for use in C (extern typedef ...)
11. Supporting generation of ats-lang-tags via the command-line flag --taggen

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.6-release.html0000644000175000017500000000430313431250607023425 0ustar brandonbrandon ATS2-0.3.6

ats2-postiats-0.3.6:

This is the 43rd release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing a bug involving 'reassume': the bug is serious but the fix
   is very minor.
2. Improving utils/atexting by merging atexting_all with atexting_mylib
   Many clients of atexting (e.g., atsccomp-compilers) have been updated
   with respect to the changes maded to atexting.
3. Adding support for compiling a static file followed by a dynamic file
   into a single file consisting of the generated code:
   patsopt -o foo_all.c -s foo.sats -d foo.dats; patscc -o foo foo_all.c
   This support can be useful for distributing C code generated from ATS
   source. For instance, a file of C code generated as such can serve as
   a script of some sort.
4. Adding support for -dd/--dynamics, which compiles a list given files
   in a combined manner.
   For instance, the following command-line:
//
   patsopt -dd foo.dats bar1.dats bar2.dats bar3.dats
//
   essentially compiles a program of the following structure:
//
   local (*nothing*) in #include "foo.dats" end
   local #include "bar1.dats" in (*nothing*) end
   local #include "bar2.dats" in (*nothing*) end
   local #include "bar3.dats" in (*nothing*) end
//
   This style of compilation can be used for the purpose of producing a
   single target containing all of the output generated from compiling a
   list of ATS source files.
5. Disabling tail-call optimization temporarily when try-expression (in
   trywith-expression) is compiled
6. Mandating that an else-clause be present in any ifcase-expression
ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.0-release.html0000644000175000017500000000313513431250607023417 0ustar brandonbrandon ATS2-0.1.0

ats2-postiats-0.1.0:


This is the nineth release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Moving ATS-Postiats/contrib out to ATS-Postiats-contrib
2. Fixing a bug causing embedded template instantiation to fail;
   please see doc/BUGS/bug-2014-05-05.dats for some details on this bug
3. Fixing a bug that may cause fnx-compilation in a template to fail
4. Making atspkgreloc_curl and atspkgreloc_wget available for package
   relocation
5. Fixing the minor bug recorded in doc/BUGS/bug-2014-05-17.dats
6. Implementing libats/hashtbl_linprb (hashtable via linear-probing)
7. Adding some rudimentary support for multi-threaded programming:
   ATS-Positiats-contrib/contrib/libats-hwxi/teaching/mythread/*
   Please see ATS-Positiats-contrib/projects/MEDIUM/SHOOTOUT/ATS2/*

ATS2-Postiats-gmp-0.3.13/./RELEASE/how-to-release.txt0000644000175000017500000000246313431250607021343 0ustar brandonbrandon###### # # Some key steps in releasing ATS # ###### HX-2018-03-11: The following description is out-of-date. Please see ${PATSHOME}/doc/DISTRIB/README ###### beg of [how-to-release.txt] ###### # # step 0: # Please do tagging immediately before or after the release of a new ATS2 package git tag -a -m"Tagging immediately before releasing ..." git tag -a -m"Tagging immediately after releasing ..." git push --tags # # step 1: # Check configure.ac to make sure that the version number is correct, which affects the name of the directory where the ATS package is installed. The following commands should be executed to update various configuration files cd ${PATSHOME} autoheader configure.ac aclocal autoconf ./configure # # step 2: # cd ${PATSHOME} make -f Makefile_devl (cd src && make CBOOT) # # step 3: # cd ${PATSHOME} cd doc/DISTRIB # # Update [Makefile.atxt] with # the current version number of ATS # Then do 'make -f Makefile.gen' # make atspackaging make atspacktarzvcf # for ATS2-Postiats-xxx.tgz # make atscontribing make atscontribtarzvcf # for ATS2-Postiats-contrib-xxx.tgz # # Update [Makefile_inclats] with # the current version number of ATS # make -f Makefile_inclats make -f Makefile_inclats tarzvcf # ATS2-Postiats-include-xxx.tgz # ###### end of [how-to-release.txt] ###### ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.0.6-release.html0000644000175000017500000000220113431250607023415 0ustar brandonbrandon

ats2-postiats-0.0.6:


Date: February 16, 2014

This is the sixth release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Symbol for overloading no longer require to be declared first.
2. Adding libats-hwxi/cstream for supporting a simple style of lexing
3. Adding a direct API for Simple DirectMedia Layer 2.0 (SDL2).
4. Both static/extern function names are now stamped at the end.
5. Fixing a bug in pattern matching: left-values should be dereferenced!
6. Polymorphic data constructors no longer require explicit type arguments
   (for compilation purpose).
7. Handling of template parameters is greatly improved.

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.11-release.html0000644000175000017500000000245413431250607023504 0ustar brandonbrandon ATS2-0.1.11

ats2-postiats-0.1.11:


This is the 20th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing a bug in hisexp_is_void
2. Adding D0Esing for parenthesized expressions
3. Adding ATS2TUTORIAL-chapter: Linearly typed lists
4. Adding prelude/tostring for converting values into strings
5. Adding minimal FRP support based on Bacon.js in libatscc2js
6. Replacing s2hnf_syneq with s2hnf_syneq2 in [s2hnf_equal_solve_err]
7. Fixing a bug in patcomplst_subtest: auxlst2: PTCMPreclparen:
   https://groups.google.com/forum/#!topic/ats-lang-users/sI9as4GIOVY
   https://github.com/githwxi/ATS-Postiats/blob/master/doc/BUGS/bug-2015-04-21.dats

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.6-release.html0000644000175000017500000000343713431250607023432 0ustar brandonbrandon ATS2-0.1.6

ats2-postiats-0.1.6:


This is the 15th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Reorganizing ATSLIB/prelude
2. Improving ATS2-contrib/zeromq
3. Adding src/Makefile_CBOOTmin for minimally C-bootstrapping ATS2:
   There is no GCATS by default
   There is no dependency on libgmp
4. Code for level-2 jsonization is moved into
   pats_synent2_jsonize.sats
   pats_synent2_jsonize.dats
5. Adding various functions for traversing level-2 syntax See:
   pats_staexp2_appenv.hats
   pats_dynexp2_appenv.hats
   pats_constraint3_appenv.hats
6. Using a more compact format for representing exported constraints
7. Using a more compact format for representing JSONized level-2 syntax
8. Overhauling the build process for ATS1
9. Supporting NGC-bootstrapping (via ats-lang-anairiats-0.2.11-fin)
10. Automated testing (via Travis-CI) is substantially extended.
11. Building ATS2 on MACOSX (via ATS1-ngc) is formally documented
12. Adding support for bit vectors: libats/bitvec
13. Fixing bug-2015-01-03 (see doc/BUGS), which caused an error in
    compiling certain singular flat records.
14: Generally improving some error-handling code.

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.13-release.html0000644000175000017500000000202113431250607023474 0ustar brandonbrandon ATS2-0.1.13

ats2-postiats-0.1.13:


0.1.13

This is the 22nd release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing a bug that associates static constants with
   incorrect filenames
2. Starting to put markers around error/warning messages
3. Fixing a bug causing mishandling of valimp in included code
4. Fixing a bug causing incorrect erasure of proof patterns

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.10-release.html0000644000175000017500000000331713431250607023502 0ustar brandonbrandon ATS2-0.1.10

ats2-postiats-0.1.10:


This is the 19th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Minorly improving ATSPRE and ATSLIB/libats
2. Adding libats/tmpeval to support numeric arguments for templates
3. Improving ATSPRE/gnumber and ATSPRE/gorder slightly
4. Renaming:
   gequal_val -> gequal_val_val; gequal_ref -> gequal_ref_ref
   gcompare_val -> gcompare_val_val; gcompare_ref -> gcompare_ref_ref
5. Adding s2exp_syneq2:
   this version (in constrast to s2exp_syneq) handles bound variables
6. Supporting template implementations parameterized with existentially
   quantified types. For instance,
   extern
   fun{a:t@ype} myprint(a): void
   implement(a) myprint = ...
7. Adding some convenience wrappers:
   libats/ML/HATS/myfunset.hats
   libats/ML/HATS/myfunmap.hats
   libats/ML/HATS/myhashtblref.hats
8. Fixing certain issues with overloaded dot-symbols
9. Adding INT2PROGINATS-chapter: From genericity to late-binding
10. Adding ATS2TUTORIAL-chapter: Persistent hashtables
11. Adding ATS2TUTORIAL-chapter: Functional sets and maps

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.0.1-release.html0000644000175000017500000000273613431250607023425 0ustar brandonbrandon

ats2-postiats-0.0.1:


Date: September 2, 2013

This is the first release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

The actual implementation of ATS2 started in the March of 2011, and
it took about two and one-half years to reach this stage. As of now,
the code base for the compiler of ATS2 consists of 140,000+ lines of
code (LOC), which are nearly all written in ATS1.

When compared to ATS1, the single most important new feature is the
template system of ATS2. This is a feature that could potentially change
the way a programmer writes his or her code. One can certainly feel that
this is a very powerful feature (a bit like feeling that OOP is a very
powerful feature). However, how this feature should be properly and
effectively used in practice needs a lot more investigation.

Another thing about ATS2 is that it is a lot leaner than ATS. One can make
good use of ATS2 without any need for compiled library (libatslib.a). Also,
GC support in ATS1 is now removed; if needed, third-party GC (e.g.,
Bohem-GC) can be readily employed.

I will gradually list differences between ATS and ATS2, helping people
make the transition from ATS1 to ATS2.
ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.5-release.html0000644000175000017500000000402013431250607023420 0ustar brandonbrandon ATS2-0.3.5

ats2-postiats-0.3.5:

This is the 42nd release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing a bug in atscc2js that prevented certain compound patterns
   from being handled correctly. Should this be done to other atsccomp
   compilers?
2. Fixing a bug causing linear tuples to be leaked after their use.
   Please see bug-2017-04-16.
3. Fixing a bug in compiling a fix-function defined inside a template.
   Please see bug-2017-04-17.
4. Disallowing non-variable linear patterns used as function arguments
   (due to potential memory leaks):
   For instance,
   fun foo($tup(x, y)): ... = ...
   needs to be written as
   fun foo(xy): ... = let $tup(x, y) = xy in ... end
5. Adding myatscc-support (in utils/myatscc)
   for allowing compilation commands being embedded inside source code.
   For instance, the following comment can be included to support using
   ATS as a scripting language:
   (*
   ##myatsccdef=\
   patsopt --constraint-ignore --dynamic $1 | \
   tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - $arglst(2)
   *)
6. Adding ats1-libatsopt (npm-package)
7. Adding contrib/atscntrb-hx-getargs for building command-line support
8. Adding ATS-Postiats/npm-util/libats-hwxi/OpenSCAD:
   Supporting meta-programming for OpenSCAD, that is, writing programs in
   ATS for generating OpenSCAD code (that can create models for 3D-printing)
ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.0.2-release.html0000644000175000017500000000312713431250607023421 0ustar brandonbrandon

ats2-postiats-0.0.2:


Date: September 19, 2013

This is the second release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Support for classdec.
   This feature is primarily for building APIs in ATS for external
   packages written in the OOP-style.

2. Support for ATS-package relocation.
   This feature is primarily for renaming and relocating external ATS
   packages (mostly library APIs). It is supposed to work together with
   atspkgreloc, a tool that does the actual package relocation. The tool
   is yet to be implemented.

3. Support for dot-notation overloading:
//
   symintr .x .y
   extern fun point_get_x (p: point): int
   extern fun point_get_y (p: point): int
   overload .x with point_get_x
   overload .y with point_get_y
//
   These declarations enable the following:
   [p.x] translates into [point_get_x(p)]
   [p.y] translates into [point_get_y(p)]

4. Fixing a very serious bug in pattern-matching compilation

5. Relocating contributed packages from ats2-lang to ats2-lang-contrib

6. Improving atslib: adding code, fixing bugs, improving documentation, etc.

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.9-release.html0000644000175000017500000000226013431250607023427 0ustar brandonbrandon ATS2-0.2.9

ats2-postiats-0.2.9:


This is the 32nd release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding support for streamize-functions
2. Including the patsopt version into the C code generated by patsopt
3. Greatly improving support for programming with combinators in general
4. Support in atscc2erl and atscc2scm for handling tail-call optimized code
5. Atscc2clj/libatscc2clj starts to be functional (but it is still a long way to go!)
6. Initiating testing for ATSLIB (see ATS2-Postiats-test/core/ATSLIB for more)

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.7-release.html0000644000175000017500000000304413431250607023425 0ustar brandonbrandon ATS2-0.1.7

ats2-postiats-0.1.7:


This is the 16th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Improving some error-handling code.
2. Fixing bug-2015-01-07.
   One can use $tempenver to explicitly declare that a dynamic
   variable should be added to the environment of each template instance
   within the scope of $tempenver-declaration.
   A running example using this feature is available at
   https://github.com/githwxi/ATS-Postiats/blob/master/doc/BUGS/bug-2015-01-07.dats
3. Adding ATS2TUTORIAL/CHAP_RECURSION
4. Adding ATS2TUTORIAL/CHAP_DATATYPES
5. Fixing bug-2015-01-10:
   [pfobj_search_atview] is now stopped by either [lam] or [llam]
6. Fixing various issues with multi-file compliation via patsopt
7. Adding INT2PROGINATS/CHAP_ABSVTYPE/LockingAndUnlocking
8. Bootstrapping via the newly released package ATS1-0.2.12
9. Adding INT2PROGINATS/CHAP_ABSVTYPE/LinearChannelsForIPC

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.9-release.html0000644000175000017500000000346313431250607023436 0ustar brandonbrandon ATS2-0.3.9

ats2-postiats-0.3.9:

This is the 46th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Improving libatscc/libatscc2js regarding matrixref and matrix0
2. Improving doc/BOOK/ATS2FUNCRASH by tidying-up and fixing errors
3. Adding some examples in ATS-Tutoriats demonstrating ATS+ReactJS
   and ATS+React-Native
4. Adding basic programming support for parallelized stream-mapfold:
   ${PATSHOME}/libats/BUCS320/StreamPar (stream-processing)
   ${PATSHOME}/libats/BUCS520/StreamPar (linear-stream-processing)
5. Adding basic programming support for recursive directory-traversal:
   ${PATSHOME}/npm-utils/contrib/libats-hwxi/find_cli
6. Moving most higher-order functions from ATSPRE to ATSLIB/ML/atspre.
   This is a pervasive change, triggering a lot of (minor) fixes!
7. Rewriting several stream_vt functions to make them tail-recursive.
8. Moving ATSPRE/fcontainer and ATSPRE/giterator into libats/ATS2
9. Finishing EFFECTIVATS/SteamPar on streamization and stream-processing
   in parallel.
10. Starting the ATS-CodeBook project (at http://github.com/ats-lang):
    Hello, HX-intinf, ReadFromSTDIN, ReadFromSTDIN2, ReadFromSTDIN3, and
    WordFrqncyCount
ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.0.3-release.html0000644000175000017500000000277513431250607023432 0ustar brandonbrandon

ats2-postiats-0.0.3:


Date: September 29, 2013

This is the third release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Support for stack-allocated array-variables:
   var A = @[int][10]() // A: array(int?, 10) // uninitialized
   var A = @[int][10](0) // A: array(int, 10) // initialized with 0's
   var A = @[int](0, 1, 2, 3, 4, 5, 6, 7, 8, 9) // A: array(int, 10)

2. Support for ptr-style of stack-allocated variables:
   var !p_x: int = 0
   var !p_x: int with pf_x = @[int](1, 2, 3, 4, 5)

3. Support for fixed-point expressions:
   val fact = fix f (x: int): int => if x > 0 then x * f (x-1) else 1

4. Support for lazy-evaluation: $delay
   See ${PATSHOME}/doc/EXAMPLE/INTRO/sieve_lazy.dats

5. Support for linear lazy-evaluation: $ldelay
   See ${PATSHOME}/doc/EXAMPLE/INTRO/sieve_llazy.dats

6. Fixing a serious bug in closure compilation: the environment of a
   deeply embedded function could be miscomputed, causing the C target
   code generated from ATS source to contain errors.

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.3-release.html0000644000175000017500000000465113431250607023427 0ustar brandonbrandon ATS2-0.2.3

ats2-postiats-0.2.3:


This is the 26th release of ATS2, the successor of the ATS
(currently referred to as ATS1) programming language. The compiler
for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply
Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib

Here is a list of major additions and changes since the last release:

1. Enforcing that the definition of each declared function be
   lam-abstract. For instanct, the following code results in an
   error during compilation:
   fun fact = fix f(n:int): int => if n > 0 then n*f(n-1) else 1
   Of course, one can always have:
   val fact = fix f(n:int): int => if n > 0 then n*f(n-1) else 1
(*
//
// HX-2015-09-15: This is re-implemented:
//
2. Supporting the use of locally defined templates:
   local fun foo(): int = 0 in fun{} foo2() = foo() + 1 end
   local fun{} foo(): int = 0 in fun{} foo2() = foo() + 1 end
*)
3. Changing some names:
   _ATS_CCOMP_HEADER_NONE -> _ATS_CCOMP_HEADER_NONE_
   _ATS_CCOMP_PRELUDE_NONE -> _ATS_CCOMP_PRELUDE_NONE_
   _ATS_CCOMP_PRELUDE_USER -> _ATS_CCOMP_PRELUDE_USER_
   _ATS_CCOMP_PRELUDE_USER2 -> _ATS_CCOMP_PRELUDE_USER2_
   _ATS_CCOMP_RUNTIME_NONE -> _ATS_CCOMP_RUNTIME_NONE_
   _ATS_CCOMP_EXCEPTION_NONE -> _ATS_CCOMP_EXCEPTION_NONE_
   _ATS_CCOMP_RUNTIME_TRYWITH_NONE -> _ATS_CCOMP_RUNTIME_TRYWITH_NONE_
4. Moving libatsynmark to utils/libatsynmark
5. Fixing an issue that causes crash due to compiling atstyvar_type.
   See hitype_tyvar_test in [pats_ccomp_hitype] for more information.
6. Changing the keyword 'require' to '#require' (for atspkgreloc)
7. Adding into ATSPRE string/string_forall and string/string_iforall
8. Reorganizing:
   moving the fprint-functions in prelude into prelude/fprintf.cats
9. Fixing a bug in CATS-parsemit (that affects parsing #if(0) ... #endif)

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.0-release.html0000644000175000017500000000264613431250607023426 0ustar brandonbrandon ATS2-0.2.0

ats2-postiats-0.2.0:


0.2.0

This is the 23rd release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Re-structuring CATS-parsemit
2. Creating ATS-Postiats-frozen for storing inactive projects
3. Porting Atscc2js based on the newly re-structured CATS-parsemit
4. Porting Atscc2php based on the newly re-structured CATS-parsemit
5. Porting Atscc2py based on the newly re-structured CATS-parsemit
6. Porting Atscc2pl based on the newly re-structured CATS-parsemit
7. Handling of HIPintrep is now supported
8. Porting ATSLIB/libats/funmap_rbtree to ATS2 from ATS1
9. Modifying jsonization of constraints to support ATS-extsolve
10. ATS-extsolve-z3 (Z3-based ATS-extsolve) can now be put into use
11. Performing occurs-checking before HYPObind(s2v, s2e) can be formed

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.3-release.html0000644000175000017500000000342413431250607023423 0ustar brandonbrandon ATS2-0.1.3

ats2-postiats-0.1.3:


This is the 12th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Adding support for dot-notation overloading in assignments.
   This feature is mostly for interacting ATS with other languages.
   See ATS2TUTORIAL/CHAP_DOTOVERLD for a short article of explanation.
2. Adding support for functional style o dot-notation overloading.
   This feature makes it very convenient for ATS to interact with OOP.
3. Generally improving level-2 jsonization (pats_dynexp2_jsonize)
4. Adding support for extvar decl. (which is different from $extval):
   extval "external_name" = internal_value
5. ATS_DYNLOADFLAG is set to 1 by default only for DATS-files. So
   dynloading SATS-files is no longer necessary (but it is still harmless).
6. Adding support for $extmcall(ret_type, obj, "method", arglst),
   which translates into the method invocation: obj.method(arglst)
7. Adding -D_ATS_ARRAY_FIELD to safe-guard using array fields in records.

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.3.4-release.html0000644000175000017500000000247613431250607023434 0ustar brandonbrandon ATS2-0.3.4

ats2-postiats-0.3.4:

0.3.4

This is the 41st release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Fixing the issue of patsopt_version not available in libatslib.a
2. Fixing made to prevent an existential type variable (s2Var) from
   becoming its own upper bound or lower bound.
3. Adding both of CATS-atscc2pl and libatscc2pl to the release
   Adding both of CATS-atscc2scm and libatscc2scm to the release
   Adding both of CATS-atscc2clj and libatscc2clj to the release
4. Improving s2hnf_syneq_env for handling S2Elam.
5. Fixing s2exp_lamlst: arguments should not be reversed!
6. Fixing impenv_update: s2e.sort <= s2v.sort is needed for s2e to match s2v

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.2.11-release.html0000644000175000017500000000226213431250607023502 0ustar brandonbrandon ATS2-0.2.11

ats2-postiats-0.2.11:


0.2.11

This is the 34th release of ATS2, the successor of the
ATS programming language. The compiler for ATS2 is given
the name ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Reorganizing: libc -> libats/libc (pervasive changes!!!)
2. FILEref-values are no longer closed automatically when embedded in
   stream_vt (but FILEptr-values are still closed at the end)
3. Fixing bug-2016-10-08, which was reported by Hanwen. Thanks!
4. Significantly expanding libatscc
5. Adding support for stream_vt in the following compilers:
   atscc2js, atscc2py3, atscc2scm, atscc2clj, atscc2php, atscc2pl

ATS2-Postiats-gmp-0.3.13/./RELEASE/ats2-postiats-0.1.5-release.html0000644000175000017500000000340613431250607023425 0ustar brandonbrandon ATS2-0.1.5

ats2-postiats-0.1.5:


This is the 14th release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.

The official website for ATS is:

http://www.ats-lang.org

ATS-Postiats is hosted at github:

https://github.com/githwxi/ATS-Postiats

Major releases of ATS2 are available at:

https://sourceforge.net/projects/ats2-lang/

Major releases of external packages for ATS2 are available at:

https://sourceforge.net/projects/ats2-lang-contrib/

Here is a list of major additions and changes since the last release:

1. Supporting %(...) in macro definitions
   #define N 10
   #define N2 %(N + 1) // it is the same as: #define N1 11
   #define N2 %(N * N1) // it is the same as: #define N2 110
2. Issuing an error message if the size of a stack-allocated array
   cannot be determined at compile-time.
3. Fixing bug-2014-10-29 (see doc/BUGS), which caused an error in
   compiling embedded function templates.
4. Improving ats2langweb/Implements.html
5. Fixing bug-2014-11-14 (see doc/BUGS), which caused an error in
   compiling mutually tail-recursive functions
6. Fixing bug-2014-11-14-2 (see doc/BUGS), which caused an error in
   compiling inner functions defined inside mutually tail-recursive
   functions
7. Improving the implementation of ATSLIB/prelude/list_vt_mergesort
8. Supporting compilation from ATS to Perl: atscc2pl
9. Issuing the special comment #LINCONSTATUS==i to show the kind of
   an allocated constructor:
   i=0 => linear data constructor
   i=1 => nonlinear data constructor
   i=2 => nonlinear tuple constructor

ATS2-Postiats-gmp-0.3.13/./ccomp/0000755000175000017500000000000013431250607015763 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/0000755000175000017500000000000013431250607017241 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/output/0000755000175000017500000000000013431250607020601 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/output/.keeper0000644000175000017500000000000013431250607022043 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/lib32/0000755000175000017500000000000013431250607020154 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/lib32/.keeper0000644000175000017500000000000013431250607021416 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/Makefile0000644000175000017500000011062213431250607020703 0ustar brandonbrandon###### # # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### PATSHOME0=$(PATSHOME) PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt PATSRUNTIME=$(PATSHOMEQ)/ccomp/runtime ###### CCOMP=gcc CCFLAGS=-fPIC -O2 ###### # DATSMEMALLOC= # # DATSMEMALLOC=-DATS_MEMALLOC_LIBC # DATSMEMALLOC=-DATS_MEMALLOC_GCBDW # ###### all:: atslib all:: ; ranlib lib/libatslib.a ###### atslib:: atslib_prelude ###### atslib_prelude:: atslib_prelude_DATS_basics_dats atslib_prelude_DATS_basics_dats: output/atslib_prelude_DATS_basics_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_basics_dats.c: $(PATSHOME0)/prelude/DATS/basics.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_basics_dats.o: output/atslib_prelude_DATS_basics_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_basics_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_basics_dats.o ###### atslib_prelude:: atslib_prelude_DATS_integer_dats atslib_prelude_DATS_integer_dats: output/atslib_prelude_DATS_integer_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_integer_dats.c: $(PATSHOME0)/prelude/DATS/integer.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_integer_dats.o: output/atslib_prelude_DATS_integer_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_integer_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_integer_dats.o atslib_prelude:: atslib_prelude_DATS_pointer_dats atslib_prelude_DATS_pointer_dats: output/atslib_prelude_DATS_pointer_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_pointer_dats.c: $(PATSHOME0)/prelude/DATS/pointer.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_pointer_dats.o: output/atslib_prelude_DATS_pointer_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_pointer_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_pointer_dats.o atslib_prelude:: atslib_prelude_DATS_integer_long_dats atslib_prelude_DATS_integer_long_dats: output/atslib_prelude_DATS_integer_long_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_integer_long_dats.c: $(PATSHOME0)/prelude/DATS/integer_long.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_integer_long_dats.o: output/atslib_prelude_DATS_integer_long_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_integer_long_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_integer_long_dats.o atslib_prelude:: atslib_prelude_DATS_integer_size_dats atslib_prelude_DATS_integer_size_dats: output/atslib_prelude_DATS_integer_size_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_integer_size_dats.c: $(PATSHOME0)/prelude/DATS/integer_size.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_integer_size_dats.o: output/atslib_prelude_DATS_integer_size_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_integer_size_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_integer_size_dats.o atslib_prelude:: atslib_prelude_DATS_integer_short_dats atslib_prelude_DATS_integer_short_dats: output/atslib_prelude_DATS_integer_short_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_integer_short_dats.c: $(PATSHOME0)/prelude/DATS/integer_short.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_integer_short_dats.o: output/atslib_prelude_DATS_integer_short_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_integer_short_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_integer_short_dats.o atslib_prelude:: atslib_prelude_DATS_bool_dats atslib_prelude_DATS_bool_dats: output/atslib_prelude_DATS_bool_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_bool_dats.c: $(PATSHOME0)/prelude/DATS/bool.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_bool_dats.o: output/atslib_prelude_DATS_bool_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_bool_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_bool_dats.o atslib_prelude:: atslib_prelude_DATS_char_dats atslib_prelude_DATS_char_dats: output/atslib_prelude_DATS_char_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_char_dats.c: $(PATSHOME0)/prelude/DATS/char.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_char_dats.o: output/atslib_prelude_DATS_char_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_char_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_char_dats.o atslib_prelude:: atslib_prelude_DATS_float_dats atslib_prelude_DATS_float_dats: output/atslib_prelude_DATS_float_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_float_dats.c: $(PATSHOME0)/prelude/DATS/float.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_float_dats.o: output/atslib_prelude_DATS_float_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_float_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_float_dats.o atslib_prelude:: atslib_prelude_DATS_string_dats atslib_prelude_DATS_string_dats: output/atslib_prelude_DATS_string_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_string_dats.c: $(PATSHOME0)/prelude/DATS/string.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_string_dats.o: output/atslib_prelude_DATS_string_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_string_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_string_dats.o atslib_prelude:: atslib_prelude_DATS_strptr_dats atslib_prelude_DATS_strptr_dats: output/atslib_prelude_DATS_strptr_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_strptr_dats.c: $(PATSHOME0)/prelude/DATS/strptr.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_strptr_dats.o: output/atslib_prelude_DATS_strptr_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_strptr_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_strptr_dats.o atslib_prelude:: atslib_prelude_DATS_integer_ptr_dats atslib_prelude_DATS_integer_ptr_dats: output/atslib_prelude_DATS_integer_ptr_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_integer_ptr_dats.c: $(PATSHOME0)/prelude/DATS/integer_ptr.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_integer_ptr_dats.o: output/atslib_prelude_DATS_integer_ptr_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_integer_ptr_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_integer_ptr_dats.o atslib_prelude:: atslib_prelude_DATS_integer_fixed_dats atslib_prelude_DATS_integer_fixed_dats: output/atslib_prelude_DATS_integer_fixed_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_integer_fixed_dats.c: $(PATSHOME0)/prelude/DATS/integer_fixed.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_integer_fixed_dats.o: output/atslib_prelude_DATS_integer_fixed_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_integer_fixed_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_integer_fixed_dats.o ###### atslib_prelude:: atslib_prelude_DATS_filebas_dats atslib_prelude_DATS_filebas_dats: output/atslib_prelude_DATS_filebas_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_prelude_DATS_filebas_dats.c: $(PATSHOME0)/prelude/DATS/filebas.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_prelude_DATS_filebas_dats.o: output/atslib_prelude_DATS_filebas_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_prelude_DATS_filebas_dats.c clean:: ; $(RMF) output/atslib_prelude_DATS_filebas_dats.o ###### atslib:: atslib_libats ###### atslib_libats:: atslib_libats_DATS_stringbuf_dats atslib_libats_DATS_stringbuf_dats: output/atslib_libats_DATS_stringbuf_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_stringbuf_dats.c: $(PATSHOME0)/libats/DATS/stringbuf.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_stringbuf_dats.o: output/atslib_libats_DATS_stringbuf_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_stringbuf_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_stringbuf_dats.o ###### atslib_libats:: atslib_libats_DATS_funmap_list_dats atslib_libats_DATS_funmap_list_dats: output/atslib_libats_DATS_funmap_list_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_funmap_list_dats.c: $(PATSHOME0)/libats/DATS/funmap_list.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_funmap_list_dats.o: output/atslib_libats_DATS_funmap_list_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_funmap_list_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_funmap_list_dats.o atslib_libats:: atslib_libats_DATS_funmap_avltree_dats atslib_libats_DATS_funmap_avltree_dats: output/atslib_libats_DATS_funmap_avltree_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_funmap_avltree_dats.c: $(PATSHOME0)/libats/DATS/funmap_avltree.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_funmap_avltree_dats.o: output/atslib_libats_DATS_funmap_avltree_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_funmap_avltree_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_funmap_avltree_dats.o atslib_libats:: atslib_libats_DATS_funset_listord_dats atslib_libats_DATS_funset_listord_dats: output/atslib_libats_DATS_funset_listord_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_funset_listord_dats.c: $(PATSHOME0)/libats/DATS/funset_listord.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_funset_listord_dats.o: output/atslib_libats_DATS_funset_listord_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_funset_listord_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_funset_listord_dats.o atslib_libats:: atslib_libats_DATS_funset_avltree_dats atslib_libats_DATS_funset_avltree_dats: output/atslib_libats_DATS_funset_avltree_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_funset_avltree_dats.c: $(PATSHOME0)/libats/DATS/funset_avltree.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_funset_avltree_dats.o: output/atslib_libats_DATS_funset_avltree_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_funset_avltree_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_funset_avltree_dats.o atslib_libats:: atslib_libats_DATS_funarray_braunt_dats atslib_libats_DATS_funarray_braunt_dats: output/atslib_libats_DATS_funarray_braunt_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_funarray_braunt_dats.c: $(PATSHOME0)/libats/DATS/funarray_braunt.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_funarray_braunt_dats.o: output/atslib_libats_DATS_funarray_braunt_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_funarray_braunt_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_funarray_braunt_dats.o atslib_libats:: atslib_libats_DATS_fundeque_fngtree_dats atslib_libats_DATS_fundeque_fngtree_dats: output/atslib_libats_DATS_fundeque_fngtree_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_fundeque_fngtree_dats.c: $(PATSHOME0)/libats/DATS/fundeque_fngtree.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_fundeque_fngtree_dats.o: output/atslib_libats_DATS_fundeque_fngtree_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_fundeque_fngtree_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_fundeque_fngtree_dats.o atslib_libats:: atslib_libats_DATS_funralist_nested_dats atslib_libats_DATS_funralist_nested_dats: output/atslib_libats_DATS_funralist_nested_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_funralist_nested_dats.c: $(PATSHOME0)/libats/DATS/funralist_nested.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_funralist_nested_dats.o: output/atslib_libats_DATS_funralist_nested_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_funralist_nested_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_funralist_nested_dats.o ###### atslib_libats:: atslib_libats_DATS_linmap_list_dats atslib_libats_DATS_linmap_list_dats: output/atslib_libats_DATS_linmap_list_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_linmap_list_dats.c: $(PATSHOME0)/libats/DATS/linmap_list.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_linmap_list_dats.o: output/atslib_libats_DATS_linmap_list_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_linmap_list_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_linmap_list_dats.o atslib_libats:: atslib_libats_DATS_linmap_randbst_dats atslib_libats_DATS_linmap_randbst_dats: output/atslib_libats_DATS_linmap_randbst_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_linmap_randbst_dats.c: $(PATSHOME0)/libats/DATS/linmap_randbst.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_linmap_randbst_dats.o: output/atslib_libats_DATS_linmap_randbst_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_linmap_randbst_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_linmap_randbst_dats.o atslib_libats:: atslib_libats_DATS_linmap_skiplist_dats atslib_libats_DATS_linmap_skiplist_dats: output/atslib_libats_DATS_linmap_skiplist_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_linmap_skiplist_dats.c: $(PATSHOME0)/libats/DATS/linmap_skiplist.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_linmap_skiplist_dats.o: output/atslib_libats_DATS_linmap_skiplist_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_linmap_skiplist_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_linmap_skiplist_dats.o atslib_libats:: atslib_libats_DATS_linset_listord_dats atslib_libats_DATS_linset_listord_dats: output/atslib_libats_DATS_linset_listord_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_linset_listord_dats.c: $(PATSHOME0)/libats/DATS/linset_listord.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_linset_listord_dats.o: output/atslib_libats_DATS_linset_listord_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_linset_listord_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_linset_listord_dats.o atslib_libats:: atslib_libats_DATS_linset_avltree_dats atslib_libats_DATS_linset_avltree_dats: output/atslib_libats_DATS_linset_avltree_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_linset_avltree_dats.c: $(PATSHOME0)/libats/DATS/linset_avltree.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_linset_avltree_dats.o: output/atslib_libats_DATS_linset_avltree_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_linset_avltree_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_linset_avltree_dats.o atslib_libats:: atslib_libats_DATS_linralist_nested_dats atslib_libats_DATS_linralist_nested_dats: output/atslib_libats_DATS_linralist_nested_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_linralist_nested_dats.c: $(PATSHOME0)/libats/DATS/linralist_nested.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_linralist_nested_dats.o: output/atslib_libats_DATS_linralist_nested_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_linralist_nested_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_linralist_nested_dats.o ###### atslib_libats:: atslib_libats_DATS_hashtbl_chain_dats atslib_libats_DATS_hashtbl_chain_dats: output/atslib_libats_DATS_hashtbl_chain_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_DATS_hashtbl_chain_dats.c: $(PATSHOME0)/libats/DATS/hashtbl_chain.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_DATS_hashtbl_chain_dats.o: output/atslib_libats_DATS_hashtbl_chain_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_DATS_hashtbl_chain_dats.c clean:: ; $(RMF) output/atslib_libats_DATS_hashtbl_chain_dats.o ###### atslib:: atslib_libats_ML ###### atslib_libats_ML:: atslib_libats_ML_DATS_list0_dats atslib_libats_ML_DATS_list0_dats: output/atslib_libats_ML_DATS_list0_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_list0_dats.c: $(PATSHOME0)/libats/ML/DATS/list0.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_list0_dats.o: output/atslib_libats_ML_DATS_list0_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_list0_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_list0_dats.o atslib_libats_ML:: atslib_libats_ML_DATS_option0_dats atslib_libats_ML_DATS_option0_dats: output/atslib_libats_ML_DATS_option0_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_option0_dats.c: $(PATSHOME0)/libats/ML/DATS/option0.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_option0_dats.o: output/atslib_libats_ML_DATS_option0_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_option0_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_option0_dats.o atslib_libats_ML:: atslib_libats_ML_DATS_array0_dats atslib_libats_ML_DATS_array0_dats: output/atslib_libats_ML_DATS_array0_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_array0_dats.c: $(PATSHOME0)/libats/ML/DATS/array0.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_array0_dats.o: output/atslib_libats_ML_DATS_array0_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_array0_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_array0_dats.o atslib_libats_ML:: atslib_libats_ML_DATS_matrix0_dats atslib_libats_ML_DATS_matrix0_dats: output/atslib_libats_ML_DATS_matrix0_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_matrix0_dats.c: $(PATSHOME0)/libats/ML/DATS/matrix0.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_matrix0_dats.o: output/atslib_libats_ML_DATS_matrix0_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_matrix0_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_matrix0_dats.o atslib_libats_ML:: atslib_libats_ML_DATS_string_dats atslib_libats_ML_DATS_string_dats: output/atslib_libats_ML_DATS_string_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_string_dats.c: $(PATSHOME0)/libats/ML/DATS/string.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_string_dats.o: output/atslib_libats_ML_DATS_string_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_string_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_string_dats.o atslib_libats_ML:: atslib_libats_ML_DATS_strarr_dats atslib_libats_ML_DATS_strarr_dats: output/atslib_libats_ML_DATS_strarr_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_strarr_dats.c: $(PATSHOME0)/libats/ML/DATS/strarr.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_strarr_dats.o: output/atslib_libats_ML_DATS_strarr_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_strarr_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_strarr_dats.o ###### atslib_libats_ML:: atslib_libats_ML_DATS_argvec_dats atslib_libats_ML_DATS_argvec_dats: output/atslib_libats_ML_DATS_argvec_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_argvec_dats.c: $(PATSHOME0)/libats/ML/DATS/argvec.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_argvec_dats.o: output/atslib_libats_ML_DATS_argvec_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_argvec_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_argvec_dats.o ###### atslib_libats_ML:: atslib_libats_ML_DATS_gvalue_dats atslib_libats_ML_DATS_gvalue_dats: output/atslib_libats_ML_DATS_gvalue_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_gvalue_dats.c: $(PATSHOME0)/libats/ML/DATS/gvalue.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_gvalue_dats.o: output/atslib_libats_ML_DATS_gvalue_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_gvalue_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_gvalue_dats.o ###### atslib_libats_ML:: atslib_libats_ML_DATS_dynarray_dats atslib_libats_ML_DATS_dynarray_dats: output/atslib_libats_ML_DATS_dynarray_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_dynarray_dats.c: $(PATSHOME0)/libats/ML/DATS/dynarray.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_dynarray_dats.o: output/atslib_libats_ML_DATS_dynarray_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_dynarray_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_dynarray_dats.o atslib_libats_ML:: atslib_libats_ML_DATS_hashtblref_dats atslib_libats_ML_DATS_hashtblref_dats: output/atslib_libats_ML_DATS_hashtblref_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_hashtblref_dats.c: $(PATSHOME0)/libats/ML/DATS/hashtblref.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_hashtblref_dats.o: output/atslib_libats_ML_DATS_hashtblref_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_hashtblref_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_hashtblref_dats.o ###### atslib_libats_ML:: atslib_libats_ML_DATS_filebas_dats atslib_libats_ML_DATS_filebas_dats: output/atslib_libats_ML_DATS_filebas_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_filebas_dats.c: $(PATSHOME0)/libats/ML/DATS/filebas.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_filebas_dats.o: output/atslib_libats_ML_DATS_filebas_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_filebas_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_filebas_dats.o atslib_libats_ML:: atslib_libats_ML_DATS_filebas_dirent_dats atslib_libats_ML_DATS_filebas_dirent_dats: output/atslib_libats_ML_DATS_filebas_dirent_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_DATS_filebas_dirent_dats.c: $(PATSHOME0)/libats/ML/DATS/filebas_dirent.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_DATS_filebas_dirent_dats.o: output/atslib_libats_ML_DATS_filebas_dirent_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_DATS_filebas_dirent_dats.c clean:: ; $(RMF) output/atslib_libats_ML_DATS_filebas_dirent_dats.o ###### atslib_libats_ML:: atslib_libats_ML_COMPILE_DATS_array0_dats atslib_libats_ML_COMPILE_DATS_array0_dats: output/atslib_libats_ML_COMPILE_DATS_array0_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_COMPILE_DATS_array0_dats.c: $(PATSHOME0)/libats/ML/COMPILE/DATS/array0.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_COMPILE_DATS_array0_dats.o: output/atslib_libats_ML_COMPILE_DATS_array0_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_array0_dats.c clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_array0_dats.o atslib_libats_ML:: atslib_libats_ML_COMPILE_DATS_string_dats atslib_libats_ML_COMPILE_DATS_string_dats: output/atslib_libats_ML_COMPILE_DATS_string_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_COMPILE_DATS_string_dats.c: $(PATSHOME0)/libats/ML/COMPILE/DATS/string.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_COMPILE_DATS_string_dats.o: output/atslib_libats_ML_COMPILE_DATS_string_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_string_dats.c clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_string_dats.o atslib_libats_ML:: atslib_libats_ML_COMPILE_DATS_funmap_dats atslib_libats_ML_COMPILE_DATS_funmap_dats: output/atslib_libats_ML_COMPILE_DATS_funmap_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_COMPILE_DATS_funmap_dats.c: $(PATSHOME0)/libats/ML/COMPILE/DATS/funmap.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_COMPILE_DATS_funmap_dats.o: output/atslib_libats_ML_COMPILE_DATS_funmap_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_funmap_dats.c clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_funmap_dats.o atslib_libats_ML:: atslib_libats_ML_COMPILE_DATS_funarray_dats atslib_libats_ML_COMPILE_DATS_funarray_dats: output/atslib_libats_ML_COMPILE_DATS_funarray_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_COMPILE_DATS_funarray_dats.c: $(PATSHOME0)/libats/ML/COMPILE/DATS/funarray.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_COMPILE_DATS_funarray_dats.o: output/atslib_libats_ML_COMPILE_DATS_funarray_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_funarray_dats.c clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_funarray_dats.o atslib_libats_ML:: atslib_libats_ML_COMPILE_DATS_hashtblref_dats atslib_libats_ML_COMPILE_DATS_hashtblref_dats: output/atslib_libats_ML_COMPILE_DATS_hashtblref_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_ML_COMPILE_DATS_hashtblref_dats.c: $(PATSHOME0)/libats/ML/COMPILE/DATS/hashtblref.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_ML_COMPILE_DATS_hashtblref_dats.o: output/atslib_libats_ML_COMPILE_DATS_hashtblref_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_hashtblref_dats.c clean:: ; $(RMF) output/atslib_libats_ML_COMPILE_DATS_hashtblref_dats.o ###### atslib:: atslib_libats_libc ###### atslib_libats_libc:: atslib_libats_libc_DATS_math_dats atslib_libats_libc_DATS_math_dats: output/atslib_libats_libc_DATS_math_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_math_dats.c: $(PATSHOME0)/libats/libc/DATS/math.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_math_dats.o: output/atslib_libats_libc_DATS_math_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_math_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_math_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_float_dats atslib_libats_libc_DATS_float_dats: output/atslib_libats_libc_DATS_float_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_float_dats.c: $(PATSHOME0)/libats/libc/DATS/float.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_float_dats.o: output/atslib_libats_libc_DATS_float_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_float_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_float_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_errno_dats atslib_libats_libc_DATS_errno_dats: output/atslib_libats_libc_DATS_errno_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_errno_dats.c: $(PATSHOME0)/libats/libc/DATS/errno.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_errno_dats.o: output/atslib_libats_libc_DATS_errno_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_errno_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_errno_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_fcntl_dats atslib_libats_libc_DATS_fcntl_dats: output/atslib_libats_libc_DATS_fcntl_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_fcntl_dats.c: $(PATSHOME0)/libats/libc/DATS/fcntl.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_fcntl_dats.o: output/atslib_libats_libc_DATS_fcntl_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_fcntl_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_fcntl_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_dirent_dats atslib_libats_libc_DATS_dirent_dats: output/atslib_libats_libc_DATS_dirent_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_dirent_dats.c: $(PATSHOME0)/libats/libc/DATS/dirent.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_dirent_dats.o: output/atslib_libats_libc_DATS_dirent_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_dirent_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_dirent_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_stdio_dats atslib_libats_libc_DATS_stdio_dats: output/atslib_libats_libc_DATS_stdio_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_stdio_dats.c: $(PATSHOME0)/libats/libc/DATS/stdio.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_stdio_dats.o: output/atslib_libats_libc_DATS_stdio_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_stdio_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_stdio_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_stdlib_dats atslib_libats_libc_DATS_stdlib_dats: output/atslib_libats_libc_DATS_stdlib_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_stdlib_dats.c: $(PATSHOME0)/libats/libc/DATS/stdlib.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_stdlib_dats.o: output/atslib_libats_libc_DATS_stdlib_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_stdlib_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_stdlib_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_string_dats atslib_libats_libc_DATS_string_dats: output/atslib_libats_libc_DATS_string_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_string_dats.c: $(PATSHOME0)/libats/libc/DATS/string.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_string_dats.o: output/atslib_libats_libc_DATS_string_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_string_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_string_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_strings_dats atslib_libats_libc_DATS_strings_dats: output/atslib_libats_libc_DATS_strings_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_strings_dats.c: $(PATSHOME0)/libats/libc/DATS/strings.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_strings_dats.o: output/atslib_libats_libc_DATS_strings_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_strings_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_strings_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_time_dats atslib_libats_libc_DATS_time_dats: output/atslib_libats_libc_DATS_time_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_time_dats.c: $(PATSHOME0)/libats/libc/DATS/time.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_time_dats.o: output/atslib_libats_libc_DATS_time_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_time_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_time_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_unistd_dats atslib_libats_libc_DATS_unistd_dats: output/atslib_libats_libc_DATS_unistd_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_unistd_dats.c: $(PATSHOME0)/libats/libc/DATS/unistd.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_unistd_dats.o: output/atslib_libats_libc_DATS_unistd_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_unistd_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_unistd_dats.o ###### atslib_libats_libc:: atslib_libats_libc_DATS_sys_stat_dats atslib_libats_libc_DATS_sys_stat_dats: output/atslib_libats_libc_DATS_sys_stat_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_sys_stat_dats.c: $(PATSHOME0)/libats/libc/DATS/sys/stat.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_sys_stat_dats.o: output/atslib_libats_libc_DATS_sys_stat_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_sys_stat_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_sys_stat_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_sys_types_dats atslib_libats_libc_DATS_sys_types_dats: output/atslib_libats_libc_DATS_sys_types_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_sys_types_dats.c: $(PATSHOME0)/libats/libc/DATS/sys/types.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_sys_types_dats.o: output/atslib_libats_libc_DATS_sys_types_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_sys_types_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_sys_types_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_sys_socket_dats atslib_libats_libc_DATS_sys_socket_dats: output/atslib_libats_libc_DATS_sys_socket_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_sys_socket_dats.c: $(PATSHOME0)/libats/libc/DATS/sys/socket.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_sys_socket_dats.o: output/atslib_libats_libc_DATS_sys_socket_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_sys_socket_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_sys_socket_dats.o atslib_libats_libc:: atslib_libats_libc_DATS_sys_socket_in_dats atslib_libats_libc_DATS_sys_socket_in_dats: output/atslib_libats_libc_DATS_sys_socket_in_dats.o ; $(ARR) lib/libatslib.a $< output/atslib_libats_libc_DATS_sys_socket_in_dats.c: $(PATSHOME0)/libats/libc/DATS/sys/socket_in.dats ; $(PATSOPT) -o $@ --dynamic $< output/atslib_libats_libc_DATS_sys_socket_in_dats.o: output/atslib_libats_libc_DATS_sys_socket_in_dats.c ; \ $(CCOMP) -I$(PATSHOMEQ) -I$(PATSRUNTIME) $(DATSMEMALLOC) $(CCFLAGS) -c -o $@ $< clean:: ; $(RMF) output/atslib_libats_libc_DATS_sys_socket_in_dats.c clean:: ; $(RMF) output/atslib_libats_libc_DATS_sys_socket_in_dats.o ###### ARR=ar -r RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean cleanall:: ; $(RMF) Makefile.exe cleanall:: ; $(RMF) lib/libatslib.a ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./ccomp/atslib/lib/0000755000175000017500000000000013431250607020007 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/lib/.keeper0000644000175000017500000000000013431250607021251 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/.keeper0000644000175000017500000000000013431250607020503 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/lib64/0000755000175000017500000000000013431250607020161 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/atslib/lib64/.keeper0000644000175000017500000000000013431250607021423 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/runtime/0000755000175000017500000000000013431250607017446 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_memalloc_libc.h0000644000175000017500000000670713431250607024623 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ // #include /* extern int fprintf (FILE *stream, const char *format, ...) ; */ /* ****** ****** */ // // stdlib.h // extern void exit (int code) ; // extern void free (void *ptr) ; extern void *malloc (size_t bsz) ; extern void *calloc(size_t asz, size_t tsz) ; extern void *realloc(void *ptr, size_t bsz) ; // /* ****** ****** */ // ATSinline() atsvoid_t0ype atsruntime_minit_libc() { return ; } // /* ****** ****** */ ATSinline() atsvoid_t0ype atsruntime_mfree_libc (atstype_ptr ptr) { free(ptr) ; return ; } // end of [atsruntime_mfree_libc] /* ****** ****** */ ATSinline() atstype_ptr atsruntime_malloc_libc (atstype_size bsz) { return malloc(bsz) ; } // end of [atsruntime_malloc_libc] ATSinline() atstype_ptr atsruntime_malloc_libc_exn (atstype_size bsz) { atstype_ptr p ; p = atsruntime_malloc_libc(bsz) ; if (!p) { fprintf(stderr, "exit(ATS): atsruntime_malloc_libc_exn: [malloc] failed.\n") ; exit(1) ; } // end of [if] return (p) ; } /* end of [atsruntime_malloc_libc_exn] */ /* ****** ****** */ ATSinline() atstype_ptr atsruntime_calloc_libc (atstype_size asz, atstype_size tsz) { return calloc(asz, tsz) ; } // end of [atsruntime_calloc_libc] ATSinline() atstype_ptr atsruntime_calloc_libc_exn ( atstype_size asz, atstype_size tsz ) { atstype_ptr p ; p = atsruntime_calloc_libc(asz, tsz) ; if (!p) { fprintf(stderr, "exit(ATS): atsruntime_calloc_libc_exn: [calloc] failed.\n") ; exit(1) ; } // end of [if] return (p) ; } /* end of [atsruntime_calloc_libc_exn] */ /* ****** ****** */ ATSinline() atstype_ptr atsruntime_realloc_libc (atstype_ptr ptr, atstype_size bsz) { return realloc(ptr, bsz) ; } // end of [atsruntime_realloc_libc] ATSinline() atstype_ptr atsruntime_realloc_libc_exn ( atstype_ptr ptr, atstype_size bsz ) { atstype_ptr p ; p = atsruntime_realloc_libc(ptr, bsz) ; if (!p) { fprintf(stderr, "exit(ATS): atsruntime_realloc_libc_exn: [realloc] failed.\n") ; exit(1) ; } // end of [if] return (p) ; } /* end of [atsruntime_realloc_libc_exn] */ /* ****** ****** */ /* end of [pats_ccomp_memalloc_libc.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_memalloc_user.h0000644000175000017500000000424413431250607024662 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ // #include /* extern int fprintf (FILE *stream, const char *format, ...) ; */ /* ****** ****** */ // // stdlib.h // extern void exit (int code) ; // /* ****** ****** */ extern void atsruntime_mfree_user (void *ptr) ; extern void *atsruntime_malloc_user (size_t bsz) ; extern void *atsruntime_calloc_user (size_t asz, size_t tsz) ; extern void *atsruntime_realloc_user (void *ptr, size_t bsz) ; /* ****** ****** */ ATSinline() atstype_ptr atsruntime_malloc_user_exn (atstype_size bsz) { atstype_ptr p ; p = atsruntime_malloc_user(bsz) ; if (!p) { fprintf(stderr, "exit(ATS): atsruntime_malloc_user_exn: [malloc] failed.\n") ; exit(1) ; } // end of [if] return (p) ; } /* end of [atsruntime_malloc_user_exn] */ /* ****** ****** */ /* end of [pats_ccomp_memalloc_user.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_memalloc_user2.h0000644000175000017500000000353013431250607024741 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ // #include /* extern int fprintf (FILE *stream, const char *format, ...) ; */ /* ****** ****** */ // // stdlib.h // extern void exit (int code) ; // /* ****** ****** */ extern void atsruntime_mfree_user2 (void *ptr) ; extern void *atsruntime_malloc_user2 (size_t bsz) ; extern void *atsruntime_calloc_user2 (size_t asz, size_t tsz) ; extern void *atsruntime_realloc_user2 (void *ptr, size_t bsz) ; /* ****** ****** */ /* end of [pats_ccomp_memalloc_user2.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_instrset.h0000644000175000017500000002621513431250607023710 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2012 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_INSTRSET_H #define PATS_CCOMP_INSTRSET_H /* ****** ****** */ // // HX: boolean values // #define atsbool_true 1 #define atsbool_false 0 // /* ****** ****** */ #define ATStysum() struct{ int contag; } #define ATStyexn() struct{ int exntag; char *exnmsg; } #define ATStylist(tyelt) struct{ tyelt head; void *tail; } #define ATStyclo() struct{ void *cfun; } /* ****** ****** */ // // HX: for supporting lazy-evaluation // #define \ ATStylazy(tyval) \ struct{ int flag; union{ void* thunk; tyval saved; } lazy; } // /* ****** ****** */ #define ATSif(x) if(x) #define ATSthen() #define ATSelse() else /* ****** ****** */ #define ATSifthen(x) if(x) #define ATSifnthen(x) if(!(x)) /* ****** ****** */ #define ATSdo() do #define ATSwhile(x) while(x) #define ATSbreak() break #define ATScontinue() continue /* ****** ****** */ // // HX: handling for/while loops // #define \ ATSloop_open(init, fini, cont) \ do { init: #define \ ATSloop_close(init, fini, cont) \ goto init ; fini: break ; } while(0) // #define ATSbreak2(fini) goto fini #define ATScontinue2(cont) goto cont // /* ****** ****** */ #define ATSreturn(x) return(x) #define ATSreturn_void(x) return /* ****** ****** */ #define ATSFCreturn(x) return(x) #define ATSFCreturn_void(x) (x); return /* ****** ****** */ // #define ATSbranch_beg() #define ATSbranch_end() break ; // #define ATScaseof_beg() do { #define ATScaseof_end() } while(0) ; // /* ****** ****** */ #define ATSextcode_beg() #define ATSextcode_end() /* ****** ****** */ #define ATSfunbody_beg() #define ATSfunbody_end() /* ****** ****** */ #define ATSPMVint(i) i #define ATSPMVintrep(rep) (rep) #define ATSPMVbool_true() atsbool_true #define ATSPMVbool_false() atsbool_false #define ATSPMVchar(c) (c) #define ATSPMVfloat(rep) (rep) #define ATSPMVstring(str) (str) #define ATSPMVi0nt(tok) (tok) #define ATSPMVf0loat(tok) (tok) /* ****** ****** */ #define ATSCSTSPmyfil(info) info #define ATSCSTSPmyloc(info) info /* ****** ****** */ // #define ATSPMVtop() atserror_top // #define ATSPMVempty() /*empty*/ #define ATSPMVextval(name) (name) // /* ****** ****** */ #define ATSPMVptrof(lval) (&(lval)) #define ATSPMVptrof_void(lval) ((void*)0) /* ****** ****** */ #define ATSPMVrefarg0(val) (val) #define ATSPMVrefarg1(ref) (ref) /* ****** ****** */ #define ATSPMVvararg0() 0 #define ATSPMVvararg1(...) __VA_ARGS__ /* ****** ****** */ #define ATSPMVtyrep(rep) (rep) /* ****** ****** */ #define ATSPMVsizeof(hit) (sizeof(hit)) /* ****** ****** */ // #define ATSPMVfunlab(flab) (flab) // // HX-2015-07-06: not yet in use: // #define ATSPMVfunlab2(flab, arity) (flab) // /* ****** ****** */ #define ATSPMVcfunlab(knd, flab, env) (flab##__closurerize)env /* ****** ****** */ // // HX: castfn application // #define ATSPMVcastfn(d2c, hit, arg) ((hit)arg) // /* ****** ****** */ #define ATSfuncall(fun, funarg) (fun)funarg /* ****** ****** */ // #define ATSextfcall(fun, funarg) (fun)funarg #define ATSextmcall(obj, mtd, funarg) (obj->mtd)funarg // /* ****** ****** */ // #define \ ATSfunclo_fun(pmv, targs, tres) ((tres(*)targs)(pmv)) #define \ ATSfunclo_clo(pmv, targs, tres) ((tres(*)targs)(((ATStyclo()*)pmv)->cfun)) // /* ****** ****** */ // #define ATStmpdec(tmp, hit) hit tmp #define ATStmpdec_void(tmp) // #define ATSstatmpdec(tmp, hit) static hit tmp #define ATSstatmpdec_void(tmp) // /* ****** ****** */ #define ATSderef(pmv, hit) (*(hit*)pmv) /* ****** ****** */ // // HX: [ATSSELcon] is the same as [ATSSELboxrec] // #define ATSSELcon(pmv, tysum, lab) (((tysum*)pmv)->lab) // #define ATSSELrecsin(pmv, tyrec, lab) (pmv) #define ATSSELfltrec(pmv, tyrec, lab) ((pmv).lab) #define ATSSELboxrec(pmv, tyrec, lab) (((tyrec*)pmv)->lab) #define ATSSELarrind(pmv, tyarr, lab) (((tyarr)pmv).lab) #define ATSSELarrptrind(pmv, tyelt, lab) (((tyelt*)pmv)lab) // /* ****** ****** */ // #define ATSCKnot(x) ((x)==0) // #define ATSCKiseqz(x) ((x)==0) #define ATSCKisneqz(x) ((x)!=0) // #define ATSCKptriscons(x) (0 != (void*)(x)) #define ATSCKptrisnull(x) (0 == (void*)(x)) // /* ****** ****** */ // #define ATSCKpat_int(pmv, pat) ((pmv)==pat) #define ATSCKpat_bool(pmv, pat) ((pmv)==pat) #define ATSCKpat_char(pmv, pat) ((pmv)==pat) #define ATSCKpat_float(pmv, pat) ((pmv)==pat) #define ATSCKpat_string(pmv, pat) (atspre_string_equal(pmv, pat)) // /* ** a datatype should not contain more than 1024 constructors! */ #define ATS_DATACONMAX 1024 // #define ATSCKpat_con0(pmv, tag) ((pmv)==(void*)tag) #define ATSCKpat_con1(pmv, tag) \ ((pmv)>=(void*)ATS_DATACONMAX && ((ATStysum()*)(pmv))->contag==tag) // #define ATSCKpat_exn0(pmv, d2con) ((pmv)==(void*)(&(d2con))) #define ATSCKpat_exn1(pmv, d2con) (((ATStyexn()*)(pmv))->exntag==(&(d2con))->exntag) // /* ****** ****** */ // #define ATSINSlab(lab) lab #define ATSINSgoto(lab) goto lab // #define ATSINSflab(flab) flab #define ATSINSfgoto(flab) goto flab // /* ****** ****** */ #define ATSINSfreeclo(cloptr) ATS_MFREE(cloptr) #define ATSINSfreecon(datconptr) ATS_MFREE(datconptr) /* ****** ****** */ #define ATSINSmove(tmp, val) (tmp = val) #define ATSINSpmove(tmp, hit, val) (*(hit*)tmp = val) /* ****** ****** */ /* ** HX-2013-01-20: ** Do not have parentheses around [command] */ #define ATSINSmove_void(tmp, command) command #define ATSINSpmove_void(tmp, hit, command) command /* ****** ****** */ #define ATSINSmove_ptralloc(tmp, hit) (tmp = ATS_MALLOC(sizeof(hit))) /* ****** ****** */ // #define \ ATSINSmove_nil(tmp) (tmp = ((void*)0)) // #define \ ATSINSmove_con0(tmp, tag) (tmp = ((void*)tag)) // #define ATSINSmove_con1_beg() #define ATSINSmove_con1_end() #define ATSINSmove_con1_new(tmp, tysum) (tmp = ATS_MALLOC(sizeof(tysum))) #define ATSINSstore_con1_tag(tmp, val) (((ATStysum()*)(tmp))->contag = val) #define ATSINSstore_con1_ofs(tmp, tysum, lab, val) (((tysum*)(tmp))->lab = val) // /* ****** ****** */ // #define ATSINSmove_exn0(tmp, d2con) (tmp = &(d2con)) // #define ATSINSmove_exn1_beg() #define ATSINSmove_exn1_end() #define ATSINSmove_exn1_new(tmp, tyexn) (tmp = ATS_MALLOC(sizeof(tyexn))) #define ATSINSstore_exn1_tag(tmp, d2con) (((ATStyexn()*)tmp)->exntag = (&(d2con))->exntag) #define ATSINSstore_exn1_msg(tmp, d2con) (((ATStyexn()*)tmp)->exnmsg = (&(d2con))->exnmsg) // /* ****** ****** */ // #define ATStailcal_beg() do { #define ATStailcal_end() } while(0) ; // #define ATSINSmove_tlcal(apy, tmp) (apy = tmp) #define ATSINSargmove_tlcal(arg, apy) (arg = apy) // /* ****** ****** */ #define ATSINSmove_fltrec_beg() #define ATSINSmove_fltrec_end() #define ATSINSstore_fltrec_ofs(tmp, tyrec, lab, val) ((tmp).lab = val) /* ****** ****** */ #define ATSINSmove_boxrec_beg() #define ATSINSmove_boxrec_end() #define ATSINSmove_boxrec_new(tmp, tyrec) (tmp = ATS_MALLOC(sizeof(tyrec))) #define ATSINSstore_boxrec_ofs(tmp, tyrec, lab, val) (((tyrec*)(tmp))->lab = val) /* ****** ****** */ #define ATSINSload(tmp, pmv) (tmp = pmv) #define ATSINSstore(pmv1, pmv2) (pmv1 = pmv2) #define ATSINSxstore(tmp, pmv1, pmv2) (tmp = pmv1, pmv1 = pmv2, pmv2 = tmp) /* ****** ****** */ // #define ATSINSmove_list_nil(tmp) (tmp = (void*)0) #define ATSINSmove_list_phead(tmp1, tmp2, tyelt) (tmp1 = &(((ATStylist(tyelt)*)(*(void**)tmp2))->head)) #define ATSINSmove_list_ptail(tmp1, tmp2, tyelt) (tmp1 = &(((ATStylist(tyelt)*)(*(void**)tmp2))->tail)) #define ATSINSpmove_list_nil(tmp) (*(void**)tmp = (void*)0) #define ATSINSpmove_list_cons(tmp, tyelt) (*(void**)tmp = ATS_MALLOC(sizeof(ATStylist(tyelt)))) // /* ****** ****** */ // #define ATSINSstore_arrpsz_asz(tmp, asz) ((tmp).size = asz) #define ATSINSstore_arrpsz_ptr(tmp, tyelt, asz) ((tmp).ptr = ATS_MALLOC(asz*sizeof(tyelt))) // #define ATSINSmove_arrpsz_ptr(tmp, psz) (tmp = (psz).ptr) // #define ATSINSupdate_ptrinc(tmp, tyelt) (tmp = (tyelt*)(tmp) + 1) #define ATSINSupdate_ptrdec(tmp, tyelt) (tmp = (tyelt*)(tmp) - 1) // /* ****** ****** */ #define ATSINSextvar_assign(var, pmv) var = (pmv) #define ATSINSdyncst_valbind(d2cst, pmv) d2cst = (pmv) /* ****** ****** */ #define ATSINSclosure_initize(flab, tmpenv) (flab##__closureinit)tmpenv /* ****** ****** */ // #define ATSINSraise_exn(tmp, pmv) atsruntime_raise(pmv) // /* ****** ****** */ // #define ATSINScaseof_fail(msg) atsruntime_handle_unmatchedval(msg) #define ATSINSfunarg_fail(msg) atsruntime_handle_unmatchedarg(msg) // /* ****** ****** */ #define \ ATSINSmove_delay(tmpret, tyval, pmv_thk) \ do { \ tmpret = \ ATS_MALLOC(sizeof(ATStylazy(tyval))) ; \ (*(ATStylazy(tyval)*)tmpret).flag = 0 ; \ (*(ATStylazy(tyval)*)tmpret).lazy.thunk = pmv_thk ; \ } while(0) ; /* end of [do ... while ...] */ #define \ ATSINSmove_lazyeval(tmpret, tyval, pmv_lazy) \ do { \ if ( \ (*(ATStylazy(tyval)*)pmv_lazy).flag==0 \ ) { \ (*(ATStylazy(tyval)*)pmv_lazy).flag += 1 ; \ atstype_cloptr __thunk = (*(ATStylazy(tyval)*)pmv_lazy).lazy.thunk ; \ tmpret = ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr), tyval), (__thunk)) ; \ (*(ATStylazy(tyval)*)pmv_lazy).lazy.saved = tmpret ; \ } else { \ tmpret = (*(ATStylazy(tyval)*)pmv_lazy).lazy.saved ; \ } /* end of [if] */ \ } while(0) /* end of [do ... while ...] */ /* ****** ****** */ #define \ ATSINSmove_ldelay(tmpret, tyval, __thunk) \ do { \ ATSINSmove(tmpret, __thunk) ; \ } while(0) /* end of [do ... while ...] */ #define \ ATSINSmove_llazyeval(tmpret, tyval, __thunk) \ do { \ tmpret = \ ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr, atstype_bool), tyval), (__thunk, atsbool_true)) ; \ ATS_MFREE(__thunk) ; \ } while(0) /* end of [do ... while ...] */ /* ****** ****** */ #define \ atspre_lazy_vt_free(__thunk) \ do { \ ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr, atstype_bool), void), (__thunk, atsbool_false)) ; \ ATS_MFREE(__thunk) ; \ } while(0) /* atspre_lazy_vt_free */ /* ****** ****** */ // // HX-2014-10: // #define atspre_lazy2cloref(pmv_lazy) ((*(ATStylazy(atstype_ptr)*)pmv_lazy).lazy.thunk) // /* ****** ****** */ #endif /* PATS_CCOMP_INSTRSET_H */ /* ****** ****** */ /* end of [pats_ccomp_instrset.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_typedefs.h0000644000175000017500000001110013431250607023643 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2012 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_TYPEDEFS_H #define PATS_CCOMP_TYPEDEFS_H /* ****** ****** */ /* ** HX: ** of indefinite size */ struct atstype_struct ; /* ****** ****** */ typedef void atstype_void ; typedef void atsvoid_t0ype ; /* ****** ****** */ typedef int atstype_int ; typedef unsigned int atstype_uint ; typedef long int atstype_lint ; typedef unsigned long int atstype_ulint ; typedef long long int atstype_llint ; typedef unsigned long long int atstype_ullint ; typedef short int atstype_sint ; typedef unsigned short int atstype_usint ; /* ****** ****** */ typedef atstype_lint atstype_ssize ; typedef atstype_ulint atstype_size ; /* ****** ****** */ // // HX: true/false: 1/0 // typedef int atstype_bool ; // /* ****** ****** */ typedef unsigned char atstype_byte ; /* ****** ****** */ typedef char atstype_char ; typedef signed char atstype_schar ; typedef unsigned char atstype_uchar ; /* ****** ****** */ typedef char *atstype_string ; typedef char *atstype_stropt ; typedef char *atstype_strptr ; /* ****** ****** */ typedef float atstype_float ; typedef double atstype_double ; typedef long double atstype_ldouble ; /* ****** ****** */ /* ** HX: for pointers */ typedef void *atstype_ptr ; typedef void *atstype_ptrk ; /* ** HX: for references */ typedef void *atstype_ref ; /* ** HX: for boxed values */ typedef void* atstype_boxed ; /* ** HX: for [datconptr] */ typedef void* atstype_datconptr ; /* ** HX: for [datcontyp] */ typedef void* atstype_datcontyp ; /* ****** ****** */ #ifdef \ _ATS_CCOMP_EXCEPTION_NONE_ // // HX: should a message be issued? // #else // typedef struct { atstype_int exntag ; atstype_string exnmsg ; } atstype_exncon ; // typedef atstype_exncon *atstype_exnconptr ; // #endif // end of [_ATS_CCOMP_EXCEPTION_NONE_] /* ****** ****** */ /* ** HX: for pointers to arrays */ typedef void* atstype_arrptr ; /* ** HX: for arrays plus size info */ typedef struct { atstype_arrptr ptr ; atstype_size size ; } atstype_arrpsz ; /* ****** ****** */ typedef void* atstype_funptr ; typedef void* atstype_cloptr ; /* ****** ****** */ #define atstkind_type(tk) tk #define atstkind_t0ype(tk) tk /* ****** ****** */ // // HX-2014-09-16: // making it unusable unless // _ATS_ARRAY_FIELD is defined // #ifdef _ATS_ARRAY_FIELD_ #define atstyarr_field(fname) fname[] #else #define atstyarr_field(fname) atstyarr_field_undef(fname) #endif // end of [_ATS_ARRAY_FIELD_] // /* ****** ****** */ // // HX-2014-05: // making it not usable!!! // #ifdef _ATSTYPE_VAR_SIZE_ // HX: it is set by the user #else #define _ATSTYPE_VAR_SIZE_ 0X10000 #endif // end of [#ifdef] // // HX-2014-05: // for 8-bit or 16-bit march, // _ATSTYPE_VAR_SIZE can be set to 0X100 // typedef struct{char _[_ATSTYPE_VAR_SIZE_];} atstype_var[0] ; // /* ****** ****** */ #define atstyvar_type(a) atstype_var /* ****** ****** */ #define atstybox_type(hit) atstype_boxed /* ****** ****** */ #define atstyclo_top struct{ void *cfun; } #define atstyclo_type(flab) flab##__closure_t0ype /* ****** ****** */ #define atsvararg_type(hit) ... /* ****** ****** */ #define atsrefarg0_type(hit) hit #define atsrefarg1_type(hit) atstype_ref /* ****** ****** */ #endif /* PATS_CCOMP_TYPEDEFS_H */ /* ****** ****** */ /* end of [pats_ccomp_typedefs.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_config.h0000644000175000017500000000310013431250607023266 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_CONFIG_H #define PATS_CCOMP_CONFIG_H /* ****** ****** */ // HX: it is yet empty /* ****** ****** */ #endif /* PATS_CCOMP_CONFIG_H */ /* end of [pats_ccomp_config.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_memalloca.h0000644000175000017500000000365513431250607023772 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_MEMALLOCA_H #define PATS_CCOMP_MEMALLOCA_H /* ****** ****** */ // // alloca.h // extern void *alloca (size_t bsz) ; // /* ****** ****** */ // // HX: [afree] matches [alloca] // ATSinline() atsvoid_t0ype atsruntime_afree_libc (atstype_ptr ptr) { return ; } // end of [atsruntime_afree_libc] ATSinline() atstype_ptr atsruntime_alloca_libc (atstype_size bsz) { return alloca(bsz) ; } // end of [atsruntime_alloca_libc] /* ****** ****** */ #endif /* PATS_CCOMP_MEMALLOCA_H */ /* ****** ****** */ /* end of [pats_ccomp_memalloca.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_exception.h0000644000175000017500000001013313431250607024023 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: June, 2013 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_EXCEPTION_H #define PATS_CCOMP_EXCEPTION_H /* ****** ****** */ /* use -D_XOPEN_SOURCE */ #include /* ****** ****** */ #define atstype_jmp_buf jmp_buf #define atspre_setjmp(env, mask) setjmp(env) #define atspre_longjmp(env, ret) longjmp(env, ret) /* ****** ****** */ /* #include */ extern void *alloca (size_t bsz) ; /* ****** ****** */ /* extern atstype_exncon *atspre_AssertExn_make() ; extern atstype_exncon *atspre_NotFoundExn_make() ; extern atstype_exncon *atspre_IllegalArgExn_make(const char*) ; extern atstype_exncon *atspre_ListSubscriptExn_make() ; extern atstype_exncon *atspre_StreamSubscriptExn_make() ; extern atstype_exncon *atspre_ArraySubscriptExn_make() ; extern atstype_exncon *atspre_MatrixSubscriptExn_make() ; // extern atstype_exncon *atspre_NotSomeExn_make() ; // extern atstype_bool atspre_isListSubscriptExn (const atstype_exncon*) ; extern atstype_bool atspre_isStreamSubscriptExn (const atstype_exncon*) ; extern atstype_bool atspre_isArraySubscriptExn (const atstype_exncon*) ; extern atstype_bool atspre_isMatrixSubscriptExn (const atstype_exncon*) ; // extern atstype_bool atspre_isNotSomeExn (const atstype_exncon*) ; */ /* ****** ****** */ typedef struct atsexnframe { atstype_jmp_buf env ; atstype_exnconptr exn ; struct atsexnframe *prev ; } atsexnframe_t ; typedef atsexnframe_t *atsexnframe_ptr ; /* ****** ****** */ #define \ atsexnframe_alloc() alloca(sizeof(atsexnframe_t)) #define \ atsexnframe_mfree(frame) /* there-is-nothing-to-do */ /* ****** ****** */ extern atsexnframe_ptr *my_atsexnframe_getref () ; /* ****** ****** */ static inline void my_atsexnframe_enter ( atsexnframe_ptr frame , atsexnframe_ptr *framep ) { frame->prev = *framep ; *framep = frame ; return ; } // end of [my_atsexnframe_enter] static inline void my_atsexnframe_leave ( atsexnframe_ptr *framep ) { atsexnframe_mfree(*framep) ; *framep = (*framep)->prev ; return ; } // end of [my_atsexnframe_leave] /* ****** ****** */ /* ** HX: ** beg-of-WARNING: ** DO NOT USE THE FOLLOWING MACROS: */ #define \ ATStrywith_try(tmpexn) \ do { \ int flag ; \ atsexnframe_ptr frame ; \ atsexnframe_ptr *framep ; \ frame = atsexnframe_alloc() ; \ framep = my_atsexnframe_getref() ; \ my_atsexnframe_enter(frame, framep) ; \ flag = atspre_setjmp(frame->env, 1) ; \ if (flag==0) { /* normal */ #define \ ATStrywith_with(tmpexn) \ my_atsexnframe_leave(framep) ; \ } else { /* flag<>0 : exceptional */ \ tmpexn = (*framep)->exn ; \ my_atsexnframe_leave(framep) ; #define \ ATStrywith_end(tmpexn) \ } \ } while(0) ; /* end of [do] */ /* end-of-WARNING */ /* ****** ****** */ #endif /* PATS_CCOMP_EXCEPTION_H */ /* ****** ****** */ /* end of [pats_ccomp_exception.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_runtime_trywith.c0000644000175000017500000000430013431250607025274 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2013 *) */ /* ****** ****** */ // #include "pats_ccomp_basics.h" #include "pats_ccomp_typedefs.h" #include "pats_ccomp_exception.h" // /* ****** ****** */ // // HX-2013-06: // it is only for single-threaded programs // /* ****** ****** */ extern atsexnframe_ptr *my_atsexnframe_getref () { // static atsexnframe_t *my_atsexnframe = (void*)0 ; // return &(my_atsexnframe) ; // } // end of [my_atsexnframe_getref] /* ****** ****** */ extern void atsruntime_raise (void *exn0) { // atsexnframe_t *frame ; frame = *(my_atsexnframe_getref()) ; // do { if (!frame) break ; (frame)->exn = (atstype_exnconptr)exn0 ; atspre_longjmp((frame)->env, 1/*retval*/) ; } while (0) ; // end of [do] // atsruntime_handle_uncaughtexn(exn0) ; // return ; // } /* end of [atsruntime_raise] */ /* ****** ****** */ /* end of [pats_ccomp_runtime_trywith.c] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/.keeper0000644000175000017500000000000013431250607020710 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_memalloc_gcbdw.h0000644000175000017500000000671213431250607024774 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ // #include /* extern int fprintf (FILE *stream, const char *format, ...) ; */ /* ****** ****** */ /* #include */ extern void exit (int code) ; /* ****** ****** */ /* #include */ extern void GC_init () ; extern void GC_free (void *ptr) ; extern void *GC_malloc(size_t bsz) ; extern void *GC_realloc(void *ptr, size_t bsz) ; /* ****** ****** */ ATSinline() atsvoid_t0ype atsruntime_minit_gcbdw (/*void*/) { GC_init() ; return ; } // end of [atsruntime_minit_gcbdw] /* ****** ****** */ ATSinline() atsvoid_t0ype atsruntime_mfree_gcbdw (void *ptr) { GC_free(ptr) ; return ; } // end of [atsruntime_mfree_gcbdw] /* ****** ****** */ ATSinline() atstype_ptr atsruntime_malloc_gcbdw (size_t bsz) { return GC_malloc(bsz) ; } // end of [atsruntime_malloc_gcbdw] ATSinline() atstype_ptr atsruntime_malloc_gcbdw_exn (size_t bsz) { void *ptr ; ptr = atsruntime_malloc_gcbdw(bsz) ; if (!ptr) { fprintf( stderr, "exit(ATS): atsruntime_malloc_gcbdw_exn: [malloc] failed.\n" ) ; exit(1) ; } // end of [if] return (ptr) ; } /* end of [atsruntime_malloc_gcbdw_exn] */ /* ****** ****** */ // // HX: // [GC_malloc] already // clears the allocated region! // ATSinline() atstype_ptr atsruntime_calloc_gcbdw (size_t asz, size_t tsz) { return atsruntime_malloc_gcbdw (asz*tsz) ; } // end of [atsruntime_calloc_gcbdw] ATSinline() atstype_ptr atsruntime_calloc_gcbdw_exn (size_t asz, size_t tsz) { return atsruntime_malloc_gcbdw_exn (asz*tsz) ; } // end of [atsruntime_calloc_gcbdw_exn] /* ****** ****** */ ATSinline() atstype_ptr atsruntime_realloc_gcbdw (void *ptr, size_t bsz) { return GC_realloc(ptr, bsz) ; } // end of [atsruntime_realloc_gcbdw] ATSinline() atstype_ptr atsruntime_realloc_gcbdw_exn (void *ptr, size_t bsz) { void *ptr2 ; ptr2 = atsruntime_realloc_gcbdw(ptr, bsz) ; if (!ptr2) { fprintf( stderr, "exit(ATS): atsruntime_realloc_gcbdw_exn: [realloc] failed.\n" ) ; exit(1) ; } // end of [if] return (ptr2) ; } /* end of [atsruntime_realloc_gcbdw_exn] */ /* ****** ****** */ /* end of [pats_ccomp_memalloc_gcbdw.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_memalloc.h0000644000175000017500000000663213431250607023627 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2012 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_MEMALLOC_H #define PATS_CCOMP_MEMALLOC_H /* ****** ****** */ // // HX: for size_t // #include // /* ****** ****** */ // extern void atsruntime_mfree_undef (void *ptr) ; // extern void *atsruntime_malloc_undef (size_t bsz) ; extern void *atsruntime_calloc_undef (size_t asz, size_t tsz) ; extern void *atsruntime_realloc_undef (void *ptr, size_t bsz) ; // /* ****** ****** */ #ifdef ATS_MEMALLOC_FLAG #undef ATS_MEMALLOC_FLAG #endif // ifdef(ATS_MEMALLOC_FLAG) /* ****** ****** */ #ifdef ATS_MEMALLOC_LIBC // #define ATS_MEMALLOC_FLAG // #include "pats_ccomp_memalloc_libc.h" // #define ATS_MINIT atsruntime_minit_libc #define ATS_MFREE atsruntime_mfree_libc #define ATS_MALLOC atsruntime_malloc_libc_exn #define ATS_CALLOC atsruntime_calloc_libc_exn #define ATS_REALLOC atsruntime_realloc_libc_exn // #endif // end of [ATS_MEMALLOC_LIBC] /* ****** ****** */ #ifdef ATS_MEMALLOC_GCBDW // #define ATS_MEMALLOC_FLAG // #include "pats_ccomp_memalloc_gcbdw.h" // #define ATS_MINIT atsruntime_minit_gcbdw #define ATS_MFREE atsruntime_mfree_gcbdw #define ATS_MALLOC atsruntime_malloc_gcbdw_exn #define ATS_CALLOC atsruntime_calloc_gcbdw_exn #define ATS_REALLOC atsruntime_realloc_gcbdw_exn // #endif // end of [ATS_MEMALLOC_GCBDW] /* ****** ****** */ #ifdef ATS_MEMALLOC_USER // #define ATS_MEMALLOC_FLAG // #include "pats_ccomp_memalloc_user.h" // #define ATS_MINIT atsruntime_minit_user #define ATS_MFREE atsruntime_mfree_user #define ATS_MALLOC atsruntime_malloc_user #define ATS_CALLOC atsruntime_calloc_user #define ATS_REALLOC atsruntime_realloc_user // #endif // end of [ATS_MEMALLOC_USER] /* ****** ****** */ #ifndef ATS_MEMALLOC_FLAG #define ATS_MEMALLOC_FLAG // #define ATS_MINIT atsruntime_minit_undef #define ATS_MFREE atsruntime_mfree_undef #define ATS_MALLOC atsruntime_malloc_undef #define ATS_CALLOC atsruntime_calloc_undef #define ATS_REALLOC atsruntime_realloc_undef // #endif // end of [ATS_MEMALLOC_FLAG] /* ****** ****** */ #endif /* PATS_CCOMP_MEMALLOC_H */ /* ****** ****** */ /* end of [pats_ccomp_memalloc.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_runtime_memalloc.c0000644000175000017500000000457713431250607025373 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2013 *) */ /* ****** ****** */ #ifdef ATS_MEMALLOC_LIBC extern void atsruntime_mfree_undef (void *ptr) { atsruntime_mfree_libc (ptr) ; return ; } extern void *atsruntime_malloc_undef (size_t bsz) { return atsruntime_malloc_libc (bsz) ; } extern void *atsruntime_calloc_undef (size_t asz, size_t tsz) { return atsruntime_calloc_libc (asz, tsz) ; } extern void *atsruntime_realloc_undef (void *ptr, size_t bsz) { return atsruntime_realloc_libc (ptr, bsz) ; } #endif // ATS_MEMALLOC_LIBC /* ****** ****** */ #ifdef ATS_MEMALLOC_GCBDW extern void atsruntime_mfree_undef (void *ptr) { atsruntime_mfree_gcbdw (ptr) ; return ; } extern void *atsruntime_malloc_undef (size_t bsz) { return atsruntime_malloc_gcbdw (bsz) ; } extern void *atsruntime_calloc_undef (size_t asz, size_t tsz) { return atsruntime_calloc_gcbdw (asz, tsz) ; } extern void *atsruntime_realloc_undef (void *ptr, size_t bsz) { return atsruntime_realloc_gcbdw (ptr, bsz) ; } #endif // ATS_MEMALLOC_GCBDW /* ****** ****** */ /* end of [pats_ccomp_runtime_memalloc.c] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_runtime2_dats.c0000644000175000017500000002666513431250607024621 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Postiats ** The compilation time is: 2014-8-4: 12h:36m ** */ /* typedefs-for-tyrecs-and-tysums(beg) */ typedef ATSstruct { int exntag ; char *exnmsg ; atstkind_type(atstype_ptrk) atslab__0; } pats_ccomp_runtime2_tyexn ; /* typedefs-for-tyrecs-and-tysums(end) */ /* dynconlst-declaration(beg) */ /* dynconlst-declaration(end) */ /* dyncstlst-declaration(beg) */ ATSdyncst_mac(atspre_prerr_string) ATSdyncst_mac(atspre_prerr_newline) ATSdyncst_mac(atspre_exit) ATSdyncst_extfun(atsruntime_handle_uncaughtexn_rest, (atstype_exnconptr), atsvoid_t0ype) ; /* dyncstlst-declaration(end) */ /* dynvalist-implementation(beg) */ /* dynvalist-implementation(end) */ /* exnconlst-declaration(beg) */ /* assumelst-declaration(beg) */ /* assumelst-declaration(end) */ /* extypelst-declaration(beg) */ /* extypelst-declaration(end) */ /* ****** ****** */ /* /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1541(line=43, offs=3) -- 2287(line=72, offs=4) */ /* local: global: atsruntime_handle_uncaughtexn$0$0(level=0) local: global: */ ATSextern() atsvoid_t0ype atsruntime_handle_uncaughtexn(void *arg0) { /* tmpvardeclst(beg) */ ATStmpdec_void(tmpret0) ; ATStmpdec(tmp1, atstkind_type(atstype_ptrk)) ; ATStmpdec(tmp2, atstkind_type(atstype_ptrk)) ; ATStmpdec_void(tmp3) ; ATStmpdec_void(tmp4) ; ATStmpdec_void(tmp5) ; ATStmpdec_void(tmp6) ; ATStmpdec_void(tmp7) ; ATStmpdec_void(tmp8) ; ATStmpdec_void(tmp9) ; ATStmpdec_void(tmp10) ; ATStmpdec_void(tmp11) ; ATStmpdec_void(tmp12) ; ATStmpdec_void(tmp13) ; ATStmpdec_void(tmp14) ; ATStmpdec_void(tmp15) ; ATStmpdec_void(tmp16) ; /* tmpvardeclst(end) */ /* funbodyinstrlst(beg) */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1509(line=42, offs=1) -- 2287(line=72, offs=4) */ ATSINSflab(__patsflab_atsruntime_handle_uncaughtexn): /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1641(line=51, offs=1) -- 2280(line=70, offs=65) */ ATScaseof_beg() /* ** ibranchlst-beg */ ATSbranch_beg() /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1659(line=53, offs=3) -- 1672(line=53, offs=16) */ ATSINSlab(__atstmplab0): /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7) */ ATSifnthen(ATSCKpat_exn0(arg0, ATSLIB_056_prelude__AssertExn)) { ATSINSgoto(__atstmplab2) ; } ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1672(line=53, offs=16) -- 1672(line=53, offs=16) */ ATSINSlab(__atstmplab1): /* emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0) */ /* ibranch-mbody: */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1676(line=53, offs=20) -- 1761(line=56, offs=6) */ /* letpush(beg) */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1693(line=54, offs=14) -- 1706(line=54, offs=27) */ ATSINSmove_void(tmp3, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1720(line=55, offs=14) -- 1744(line=55, offs=38) */ ATSINSmove_void(tmp4, atspre_prerr_string(ATSPMVstring(": AssertExn"))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1720(line=55, offs=14) -- 1744(line=55, offs=38) */ ATSINSmove_void(tmp5, atspre_prerr_newline()) ; /* letpush(end) */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1748(line=55, offs=42) -- 1754(line=55, offs=48) */ ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1676(line=53, offs=20) -- 1761(line=56, offs=6) */ /* INSletpop() */ ATSbranch_end() ATSbranch_beg() /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1788(line=57, offs=3) -- 1803(line=57, offs=18) */ ATSINSlab(__atstmplab2): /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7) */ ATSifnthen(ATSCKpat_exn0(arg0, ATSLIB_056_prelude__NotFoundExn)) { ATSINSgoto(__atstmplab4) ; } ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1803(line=57, offs=18) -- 1803(line=57, offs=18) */ ATSINSlab(__atstmplab3): /* emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0) */ /* ibranch-mbody: */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1807(line=57, offs=22) -- 1894(line=60, offs=6) */ /* letpush(beg) */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1824(line=58, offs=14) -- 1837(line=58, offs=27) */ ATSINSmove_void(tmp6, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1851(line=59, offs=14) -- 1877(line=59, offs=40) */ ATSINSmove_void(tmp7, atspre_prerr_string(ATSPMVstring(": NotFoundExn"))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1851(line=59, offs=14) -- 1877(line=59, offs=40) */ ATSINSmove_void(tmp8, atspre_prerr_newline()) ; /* letpush(end) */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1881(line=59, offs=44) -- 1887(line=59, offs=50) */ ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1807(line=57, offs=22) -- 1894(line=60, offs=6) */ /* INSletpop() */ ATSbranch_end() ATSbranch_beg() /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1921(line=61, offs=3) -- 1940(line=61, offs=22) */ ATSINSlab(__atstmplab4): /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7) */ ATSifnthen(ATSCKpat_exn1(arg0, ATSLIB_056_prelude__GenerallyExn)) { ATSINSgoto(__atstmplab6) ; } ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1940(line=61, offs=22) -- 1940(line=61, offs=22) */ ATSINSlab(__atstmplab5): /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1936(line=61, offs=18) -- 1939(line=61, offs=21) */ ATSINSmove(tmp1, ATSSELcon(arg0, pats_ccomp_runtime2_tyexn, atslab__0)) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1921(line=61, offs=3) -- 2039(line=64, offs=6) */ /* ATSINSfreecon(arg0) ; */ /* emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0) */ /* ibranch-mbody: */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1944(line=61, offs=26) -- 2039(line=64, offs=6) */ /* letpush(beg) */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1961(line=62, offs=14) -- 1974(line=62, offs=27) */ ATSINSmove_void(tmp9, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1988(line=63, offs=14) -- 2022(line=63, offs=48) */ ATSINSmove_void(tmp10, atspre_prerr_string(ATSPMVstring(": GenerallyExn: "))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1988(line=63, offs=14) -- 2022(line=63, offs=48) */ ATSINSmove_void(tmp11, atspre_prerr_string(tmp1)) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1988(line=63, offs=14) -- 2022(line=63, offs=48) */ ATSINSmove_void(tmp12, atspre_prerr_newline()) ; /* letpush(end) */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2026(line=63, offs=52) -- 2032(line=63, offs=58) */ ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1944(line=61, offs=26) -- 2039(line=64, offs=6) */ /* INSletpop() */ ATSbranch_end() ATSbranch_beg() /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2066(line=65, offs=3) -- 2086(line=65, offs=23) */ ATSINSlab(__atstmplab6): /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 1542(line=43, offs=4) -- 1545(line=43, offs=7) */ ATSifnthen(ATSCKpat_exn1(arg0, ATSLIB_056_prelude__IllegalArgExn)) { ATSINSgoto(__atstmplab8) ; } ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2086(line=65, offs=23) -- 2086(line=65, offs=23) */ ATSINSlab(__atstmplab7): /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2082(line=65, offs=19) -- 2085(line=65, offs=22) */ ATSINSmove(tmp2, ATSSELcon(arg0, pats_ccomp_runtime2_tyexn, atslab__0)) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2066(line=65, offs=3) -- 2186(line=68, offs=6) */ /* ATSINSfreecon(arg0) ; */ /* emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0) */ /* ibranch-mbody: */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2090(line=65, offs=27) -- 2186(line=68, offs=6) */ /* letpush(beg) */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2107(line=66, offs=14) -- 2120(line=66, offs=27) */ ATSINSmove_void(tmp13, atspre_prerr_string(ATSPMVstring("exit(ATS): uncaught exception at run-time"))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2134(line=67, offs=14) -- 2169(line=67, offs=49) */ ATSINSmove_void(tmp14, atspre_prerr_string(ATSPMVstring(": IllegalArgExn: "))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2134(line=67, offs=14) -- 2169(line=67, offs=49) */ ATSINSmove_void(tmp15, atspre_prerr_string(tmp2)) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2134(line=67, offs=14) -- 2169(line=67, offs=49) */ ATSINSmove_void(tmp16, atspre_prerr_newline()) ; /* letpush(end) */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2173(line=67, offs=53) -- 2179(line=67, offs=59) */ ATSINSmove_void(tmpret0, atspre_exit(ATSPMVi0nt(1))) ; /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2090(line=65, offs=27) -- 2186(line=68, offs=6) */ /* INSletpop() */ ATSbranch_end() ATSbranch_beg() /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2219(line=70, offs=4) -- 2219(line=70, offs=4) */ ATSINSlab(__atstmplab8): /* emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0) */ /* ibranch-mbody: */ /* emit_instr: loc0 = /home/hwxi/research/Postiats/git/ccomp/runtime/pats_ccomp_runtime2.dats: 2240(line=70, offs=25) -- 2279(line=70, offs=64) */ ATSINSmove_void(tmpret0, atsruntime_handle_uncaughtexn_rest(arg0)) ; ATSbranch_end() /* ** ibranchlst-end */ ATScaseof_end() /* funbodyinstrlst(end) */ ATSreturn_void(tmpret0) ; } /* end of [atsruntime_handle_uncaughtexn] */ /* ****** ****** */ /* end of [pats_ccomp_runtime2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_basics.h0000644000175000017500000001020113431250607023265 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2012 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_BASICS_H #define PATS_CCOMP_BASICS_H /* ****** ****** */ // // HX: boolean values // #define atsbool_true 1 #define atsbool_false 0 // #define atsptr_null ((void*)0) #define the_atsptr_null ((void*)0) // /* ****** ****** */ // #define ATSstruct struct // /* ****** ****** */ /* #define ATStypedef typedef */ // /* ****** ****** */ #ifndef \ ATS_EXTERN_DEF__ #define ATSextern() extern #else #define ATSextern() ATS_EXTERN_DEF__ #endif // #ifndef /* ****** ****** */ #ifndef \ ATS_STATIC_DEF__ #define ATSstatic() static #else #define ATSstatic() ATS_STATIC_DEF__ #endif // #ifndef /* ****** ****** */ #ifndef \ ATS_INLINE_DEF__ #define ATSinline() static inline #else #define ATSinline() ATS_INLINE_DEF__ #endif // #ifndef /* ****** ****** */ // #define ATSdynload() // #define ATSdynloadflag_sta(flag) #define ATSdynloadflag_ext(flag) ATSextern() int flag // #define ATSdynloadflag_init(flag) int flag = 0 // #define ATSdynloadflag_minit(flag) int flag = 0 // #define ATSdynloadset(flag) flag = 1 #define ATSdynloadfcall(dynloadfun) dynloadfun() // /* ****** ****** */ #ifndef \ _ATS_CCOMP_EXCEPTION_NONE_ // #define \ ATSdynexn_dec(d2c) \ atstype_exncon d2c = { 0, "__ATSEXNMSG__" } // #define \ ATSdynexn_extdec(d2c) ATSextern() atstype_exncon d2c // #define \ ATSdynexn_initize(d2c, exnmsg) the_atsexncon_initize(&(d2c), exnmsg) // #endif // end of [_ATS_CCOMP_EXCEPTION_NONE_] /* ****** ****** */ #define ATSassume(flag) void *flag = (void*)0 /* ****** ****** */ // #define ATSclosurerize_end(flab) #define ATSclosurerize_beg(flab, tenvs, targs, tres) // /* ****** ****** */ #define ATSdyncst_mac(d2c) #define ATSdyncst_castfn(d2c) #define ATSdyncst_extfun(d2c, targs, tres) ATSextern() tres d2c targs #define ATSdyncst_stafun(d2c, targs, tres) ATSstatic() tres d2c targs /* ****** ****** */ #define ATSdyncst_valimp(d2c, type) type d2c #define ATSdyncst_valdec(d2c, type) ATSextern() type d2c /* ****** ****** */ // #define \ ATSmainats_void_0(err) mainats_void_0() #define \ ATSmainats_argc_argv_0(argc, argv, err) mainats_argc_argv_0(argc, argv) #define \ ATSmainats_argc_argv_envp_0(argc, argv, envp, err) mainats_argc_argv_envp_0(argc, argv, envp) // #define \ ATSmainats_void_int(err) err = mainats_void_int() #define \ ATSmainats_argc_argv_int(argc, argv, err) err = mainats_argc_argv_int(argc, argv) #define \ ATSmainats_argc_argv_envp_int(argc, argv, envp, err) err = mainats_argc_argv_envp_int(argc, argv, envp) // /* ****** ****** */ // extern void atsruntime_raise (void *exn) ; extern void atsruntime_handle_uncaughtexn (void *exn0) ; extern void atsruntime_handle_unmatchedval (char *msg0) ; extern void atsruntime_handle_unmatchedarg (char *msg0) ; // /* ****** ****** */ #endif /* PATS_CCOMP_BASICS_H */ /* ****** ****** */ /* end of [pats_ccomp_basics.h] */ ATS2-Postiats-gmp-0.3.13/./ccomp/runtime/pats_ccomp_runtime.c0000644000175000017500000000776013431250607023517 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2013 *) */ /* ****** ****** */ // #include // extern void exit (int) ; // in [stdlib.h] // /* ****** ****** */ #include "pats_ccomp_basics.h" #include "pats_ccomp_typedefs.h" /* ****** ****** */ // // HX-2013-04: some pre-initialized exceptions // /* ****** ****** */ #ifndef \ _ATS_CCOMP_EXCEPTION_NONE_ // atstype_exncon ATSLIB_056_prelude__AssertExn = { 10, "AssertException" } ; atstype_exncon ATSLIB_056_prelude__GenerallyExn = { 20, "GenerallyException" } ; atstype_exncon ATSLIB_056_prelude__IllegalArgExn = { 30, "IllegalArgException" } ; // #endif // end of [_ATS_CCOMP_EXCEPTION_NONE_] /* ****** ****** */ #ifndef \ _ATS_CCOMP_EXCEPTION_NONE_ // atstype_exncon ATSLIB_056_prelude__NotSomeExn = { 40, "NotSomeException" } ; atstype_exncon ATSLIB_056_prelude__NotFoundExn = { 41, "NotFoundException" } ; // atstype_exncon ATSLIB_056_prelude__ListSubscriptExn = { 50, "ListSubscriptException" } ; atstype_exncon ATSLIB_056_prelude__StreamSubscriptExn = { 51, "StreamSubscriptException" } ; // atstype_exncon ATSLIB_056_prelude__ArraySubscriptExn = { 60, "ArraySubscriptException" } ; atstype_exncon ATSLIB_056_prelude__MatrixSubscriptExn = { 61, "MatrixSubscriptException" } ; // #endif // end of [_ATS_CCOMP_EXCEPTION_NONE_] /* ****** ****** */ #ifndef \ _ATS_CCOMP_EXCEPTION_NONE_ // extern void the_atsexncon_initize ( atstype_exncon *d2c, char* exnmsg ) { // static int the_atsexntag = 1024 ; // if (!d2c->exntag) { d2c->exntag = the_atsexntag ; the_atsexntag = the_atsexntag + 1 ; } d2c->exnmsg = exnmsg ; return ; } // end of [the_atsexncon_initize] // #endif // end of [_ATS_CCOMP_EXCEPTION_NONE_] /* ****** ****** */ // // HX-2013: // for reporting pattern matching failure // extern void atsruntime_handle_unmatchedval (char *msg0) { fprintf ( stderr , "exit(ATS): unmatched value at run-time:\n%s\n", msg0 ) ; exit(1) ; return ; // deadcode } /* end of [atsruntime_handle_unmatchedval] */ // /* ****** ****** */ // // HX-2014-06: // for reporting funarg-pattern matching failure // extern void atsruntime_handle_unmatchedarg (char *msg0) { fprintf ( stderr , "exit(ATS): unmatched funarg at run-time:\n%s\n", msg0 ) ; exit(1) ; return ; // deadcode } /* end of [atsruntime_handle_unmatchedarg] */ // /* ****** ****** */ // // HX-2014-06: // for reporting failure due to uncaught exception // extern void atsruntime_handle_uncaughtexn_rest (atstype_exncon *exn0) { fprintf ( stderr , "exit(ATS): uncaught exception at run-time:\n%s(%d)\n", exn0->exnmsg, exn0->exntag ) ; exit(1) ; return ; // deadcode } /* end of [atsruntime_handle_uncaughtexn_rest] */ // /* ****** ****** */ /* end of [pats_ccomp_runtime.c] */ ATS2-Postiats-gmp-0.3.13/./VERSION0000644000175000017500000000000713431250607015727 0ustar brandonbrandon0.3.13 ATS2-Postiats-gmp-0.3.13/./npm-utils/0000755000175000017500000000000013431250607016612 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/0000755000175000017500000000000013431250607020252 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/0000755000175000017500000000000013431250607022072 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/0000755000175000017500000000000013431250607025660 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/DATS/0000755000175000017500000000000013431250607026413 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/DATS/SDL2.dats0000644000175000017500000000217613431250607030002 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for libsdl2 // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // // HX-2017-02: This file is yet empty! // (* ****** ****** *) (* end of [SDL2.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/Makefile_test0000644000175000017500000000027313431250607030361 0ustar brandonbrandon# # For testing # ###### all:: ###### SUBDIRS := SUBDIRS += TEST ###### all:: ; \ for i in $(SUBDIRS); do $(MAKE) -C $$i testall; done ###### ###### end of [Makefile_test] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/TEST/0000755000175000017500000000000013431250607026437 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/TEST/test01.dats0000644000175000017500000000213213431250607030432 0ustar brandonbrandon(* ** Testing the ATS API for SDL2 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/SDL.sats" (* ****** ****** *) #define NULL the_null_ptr (* ****** ****** *) implement main0 () = () where { // val err = SDL_Init (SDL_INIT_VIDEO) val ((*void*)) = assertloc (err >= 0) // val xpos = SDL_WINDOWPOS_UNDEFINED val ypos = SDL_WINDOWPOS_UNDEFINED val window = SDL_CreateWindow ( "SDL2/test01", xpos, ypos, 640, 480, SDL_WINDOW_SHOWN ) (* end of [val] *) val () = assertloc (ptrcast(window) > 0) // val (fpf | screen) = SDL_GetWindowSurface (window) val ((*void*)) = assertloc (ptrcast(screen) > 0) // val image = SDL_LoadBMP ("DATA/hello_world.bmp") val ((*void*)) = assertloc (ptrcast(image) > 0) val err = SDL_BlitSurface(image, cptr_null(), screen, cptr_null()) val () = SDL_FreeSurface (image) // prval ((*void*)) = fpf (screen) // val err = SDL_UpdateWindowSurface (window) // val () = SDL_Delay (2000) // val () = SDL_DestroyWindow (window) // val () = SDL_Quit ((*void*)) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/TEST/test00.dats0000644000175000017500000000100013431250607030422 0ustar brandonbrandon(* ** Testing the ATS API for SDL2 *) (* ****** ****** *) staload "./../SATS/SDL.sats" (* ****** ****** *) val () = let var ver: SDL_version val () = SDL_VERSION (ver) val () = println! ("SDL(VERSION) = ", ver.major, ".", ver.minor, ".", ver.patch) val () = SDL_GetVersion (ver) val () = println! ("SDL(GetVersion) = ", ver.major, ".", ver.minor, ".", ver.patch) in // nothing end // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [test00.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/TEST/Makefile0000644000175000017500000000224413431250607030101 0ustar brandonbrandon# # A simple Makefile for # testing the ATS API for SDL2 # ###### include \ $(PATSHOME)/share/atsmake-pre.mk ###### CFLAGS0 = $(CFLAGS) CFLAGS_image = $(CFLAGS) ###### # CFLAGS0 +=-I./../.. CFLAGS0 += $(shell pkg-config sdl2 --cflags) # CFLAGS_image +=-I./../.. CFLAGS_image += $(shell pkg-config SDL2_image --cflags) # ###### LDFLAGS0 = $(LDFLAGS) LDFLAGS_image = $(LDFLAGS) ###### LDFLAGS0 += $(shell pkg-config sdl2 --libs) LDFLAGS_image := $(shell pkg-config SDL2_image --libs) ###### MYCCRULE=MYCCRULE ###### MALLOCFLAG=-DATS_MEMALLOC_LIBC ###### all:: test00 test00: test00.dats ; \ $(PATSCC2) $(CFLAGS0) -o $@ $< $(LDFLAGS0) regress:: test00; ./$< cleanall:: ; $(RMF) test00 ###### all:: test01 test01: test01.dats ; \ $(PATSCC2) $(CFLAGS0) -o $@ $< $(LDFLAGS0) # # regress:: test01; ./$< # cleanall:: ; $(RMF) test01 ###### # all:: test02 test02: test02.dats ; \ $(PATSCC2) $(CFLAGS_image) -o $@ $< $(LDFLAGS_image) # # regress:: test02; ./$< # cleanall:: ; $(RMF) test02 # ###### testall:: all testall:: regress testall:: cleanall ###### include $(PATSHOME)/share/atsmake-post.mk ###### cleanats:: ; $(RMF) *_?ats.c ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/TEST/DATA/0000755000175000017500000000000013431250607027150 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/TEST/DATA/hello_world.bmp0000644000175000017500000341007013431250607032167 0ustar brandonbrandonBM86(€à  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï¿¿¿¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸ?????????___ŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿¯¯¯OOO??????????????????OOO¯¯¯¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???OOO¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???oooïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿OOO///???___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿oooOOOßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßOOO???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßoooŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏooooooßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯???ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooooooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß?????????OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo??????ooo¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿OOO???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯???ooo¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïŸOOO///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ooo¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????OOOŸŸŸ¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOOoooÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ///oooŸŸŸ¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï___???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿OOO¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿___ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ///ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ______ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ___ÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß///ïïïÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOO¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ïïïÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOO//////ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///???ïïïÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß///oooÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïŸÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///???ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßß߯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOO???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßߟŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ______ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooooooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???OOOïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï//////ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï______ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ______ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßߟŸŸÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿ???///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ŸŸŸÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???///ÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ïïïÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸOOOÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooïïïÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///¿¿¿ÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOO¿¿¿ÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???OOOïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿???ooo¿¿¿ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///OOOŸŸŸ¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ŸŸŸ¿¿¿¿¿¿¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿¿¿¿¿¿¿¯¯¯ooo??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?????????????????????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿ¿¿¿ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ///___ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯?????????????????????ŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ooo___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿ¿¿¿???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿ///ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿OOO???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßߟŸŸÿÿÿÿÿÿÿÿÿoooïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸïïïÿÿÿOOO???ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸ???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ßßß¿¿¿¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¯¯¯ÿÿÿŸŸŸÏÏÏÿÿÿÿÿÿÿÿÿŸŸŸOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿///ïïïÿÿÿ???///ßß߯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïŸ___///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ïïïïïï///???ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯___??????///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOO¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///___ÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///___ŸŸŸÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿¿¿¿¯¯¯?????????????????????OOO¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿïïﯯ¯ooo???OOOßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___///???????????????¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßߟŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿OOO??????¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïïïïÿÿÿßßß¿¿¿¯¯¯oooOOOŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï??????___¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßß߯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ooo??????___¿¿¿¿¿¿¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOO???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ooo¯¯¯ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯???///oooïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßOOO///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???///ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ooo??????ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ooo??????ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooooooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///???ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿OOO___ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸ?????????___ŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???oooïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???oooïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???OOO¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿oooOOOßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???OOOïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßoooŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯???ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿¿¿¿¿¿¿___??????//////???___ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯___???ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß?????????OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿OOO//////ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ooo¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ//////ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOOoooÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ______ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿OOO¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ///???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?????????___¿¿¿¿¿¿¿¿¿¿¿¿ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯ooo///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï??????¿¿¿¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸOOOßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ///ŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ///ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ___ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ______ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOO¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOO???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß///¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿???????????????OOO¯¯¯ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOO???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///OOO¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ///___¯¯¯¿¿¿ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯///?????????OOO¿¿¿¿¿¿¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï¿¿¿¿¿¿¯¯¯ooo???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßߟŸŸooo///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿OOOÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßߟŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?????????????????????????????????___¯¯¯¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿oooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏϯ¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸ///ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯OOOïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß///¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßoooïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ//////ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///OOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOO¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿OOO??????????????????????????????///ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ______ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïﯯ¯ooo///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ//////¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿ooo///¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯?????????????????????ŸŸŸ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ooo___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿???ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿooo___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿OOO???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯ßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOO???ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏŸŸŸ???___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÏÏÏÿÿÿÿÿÿÿÿÿŸŸŸOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???///ßß߯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///???ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï///ooo¯¯¯ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯___OOOŸŸŸïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïﯯ¯ooo???OOOßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßß߯¯¯OOO??????????????????ŸŸŸÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÏ¿¿¿OOO??????¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïïïïÿÿÿßßß¿¿¿¯¯¯oooOOOŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï??????___¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ooo??????___¿¿¿¿¿¿¿¿¿ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ooo¯¯¯ïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïï???///ÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ??????ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯¯¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßß¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ______ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿___???ooo¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿OOO///¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/TEST/test02.dats0000644000175000017500000000247213431250607030442 0ustar brandonbrandon(* ** Testing the ATS API for SDL2 ** Testing the ATS API for SDL2_image *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/SDL.sats" staload "./../SATS/SDL_image.sats" (* ****** ****** *) #define NULL the_null_ptr (* ****** ****** *) implement main0 () = () where { // val err = SDL_Init (SDL_INIT_VIDEO) val ((*void*)) = assertloc (err >= 0) // val W = 640 val H = 480 val xpos = SDL_WINDOWPOS_UNDEFINED val ypos = SDL_WINDOWPOS_UNDEFINED val window = SDL_CreateWindow ( "SDL2/test02", xpos, ypos, W, H, SDL_WINDOW_SHOWN ) (* end of [val] *) val () = assertloc (ptrcast(window) > 0) // val (fpf | screen) = SDL_GetWindowSurface (window) val ((*void*)) = assertloc (ptrcast(screen) > 0) // val image = IMG_Load ("DATA/zoe-2005-10-19-1.png") val ((*void*)) = assertloc (ptrcast(image) > 0) var imgrect: SDL_Rect val () = imgrect.x := 800 val () = imgrect.y := 400 val () = imgrect.w := W and () = imgrect.h := H val err = SDL_BlitSurface(image, cptr_rvar(imgrect), screen, cptr_null()) val () = SDL_FreeSurface (image) // prval ((*void*)) = fpf (screen) // val err = SDL_UpdateWindowSurface (window) // val () = SDL_Delay (5000) // val () = SDL_DestroyWindow (window) // val () = SDL_Quit ((*void*)) // } (* end of [main0] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/0000755000175000017500000000000013431250607026412 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL_image.cats0000644000175000017500000000622713431250607031061 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2_image // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2IMG_IMAGE_CATS #define SDL2IMG_IMAGE_CATS /* ****** ****** */ #include /* ****** ****** */ #define atscntrb_SDL2IMG_IMG_Load IMG_Load /* ****** ****** */ #define atscntrb_SDL2IMG_IMG_Load_RW(src) IMG_Load_RW(src, 0) #define atscntrb_SDL2IMG_IMG_Load_RW_free(src) IMG_Load_RW(src, 1) /* ****** ****** */ #define atscntrb_SDL2IMG_IMG_LoadTyped_RW(src) IMG_LoadTyped_RW(src, 0) #define atscntrb_SDL2IMG_IMG_LoadTyped_RW_free(src) IMG_LoadTyped_RW(src, 1) /* ****** ****** */ #define atscntrb_SDL2IMG_IMG_isICO IMG_isICO #define atscntrb_SDL2IMG_IMG_isCUR IMG_isCUR #define atscntrb_SDL2IMG_IMG_isBMP IMG_isBMP #define atscntrb_SDL2IMG_IMG_isGIF IMG_isGIF #define atscntrb_SDL2IMG_IMG_isJPG IMG_isJPG #define atscntrb_SDL2IMG_IMG_isLBM IMG_isLBM #define atscntrb_SDL2IMG_IMG_isPCX IMG_isPCX #define atscntrb_SDL2IMG_IMG_isPNG IMG_isPNG #define atscntrb_SDL2IMG_IMG_isPNM IMG_isPNM #define atscntrb_SDL2IMG_IMG_isTIF IMG_isTIF #define atscntrb_SDL2IMG_IMG_isXCF IMG_isXCF #define atscntrb_SDL2IMG_IMG_isXPM IMG_isXPM #define atscntrb_SDL2IMG_IMG_isXV IMG_isXV #define atscntrb_SDL2IMG_IMG_isWEBP IMG_isWEBP /* ****** ****** */ #define atscntrb_SDL2IMG_IMG_LoadICO_RW IMG_LoadICO_RW #define atscntrb_SDL2IMG_IMG_LoadCUR_RW IMG_LoadCUR_RW #define atscntrb_SDL2IMG_IMG_LoadBMP_RW IMG_LoadBMP_RW #define atscntrb_SDL2IMG_IMG_LoadGIF_RW IMG_LoadGIF_RW #define atscntrb_SDL2IMG_IMG_LoadJPG_RW IMG_LoadJPG_RW #define atscntrb_SDL2IMG_IMG_LoadLBM_RW IMG_LoadLBM_RW #define atscntrb_SDL2IMG_IMG_LoadPCX_RW IMG_LoadPCX_RW #define atscntrb_SDL2IMG_IMG_LoadPNG_RW IMG_LoadPNG_RW #define atscntrb_SDL2IMG_IMG_LoadPNM_RW IMG_LoadPNM_RW #define atscntrb_SDL2IMG_IMG_LoadTGA_RW IMG_LoadTGA_RW #define atscntrb_SDL2IMG_IMG_LoadTIF_RW IMG_LoadTIF_RW #define atscntrb_SDL2IMG_IMG_LoadXCF_RW IMG_LoadXCF_RW #define atscntrb_SDL2IMG_IMG_LoadXPM_RW IMG_LoadXPM_RW #define atscntrb_SDL2IMG_IMG_LoadXV_RW IMG_LoadXV_RW #define atscntrb_SDL2IMG_IMG_LoadWEBP_RW IMG_LoadWEBP_RW /* ****** ****** */ #define atscntrb_SDL2IMG_IMG_SavePNG IMG_SavePNG #define atscntrb_SDL2IMG_IMG_SavePNG_RW(sf, dst) IMG_SavePNG_RW(sf, dst, 0) #define atscntrb_SDL2IMG_IMG_SavePNG_RW_free(sf, dst) IMG_SavePNG_RW(sf, dst, 1) /* ****** ****** */ #endif // ifndef SDL2IMG_IMAGE_CATS /* end of [SDL_image.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL.cats0000644000175000017500000000351213431250607027711 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2 // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2_SDL_CATS #define SDL2_SDL_CATS /* ****** ****** */ #include /* ****** ****** */ #include \ "atscntrb-hx-libsdl2/CATS/SDL_error.cats" #include \ "atscntrb-hx-libsdl2/CATS/SDL_events.cats" #include \ "atscntrb-hx-libsdl2/CATS/SDL_render.cats" #include \ "atscntrb-hx-libsdl2/CATS/SDL_rwops.cats" #include \ "atscntrb-hx-libsdl2/CATS/SDL_surface.cats" #include \ "atscntrb-hx-libsdl2/CATS/SDL_timer.cats" #include \ "atscntrb-hx-libsdl2/CATS/SDL_version.cats" #include \ "atscntrb-hx-libsdl2/CATS/SDL_video.cats" /* ****** ****** */ #define \ atscntrb_SDL2_SDL_Init SDL_Init #define \ atscntrb_SDL2_SDL_InitSubSystem SDL_InitSubSystem /* ****** ****** */ // #define atscntrb_SDL2_SDL_WasInit SDL_WasInit // /* ****** ****** */ #define \ atscntrb_SDL2_SDL_Quit SDL_Quit #define \ atscntrb_SDL2_SDL_QuitSubSystem SDL_QuitSubSystem /* ****** ****** */ #endif // ifndef SDL2_SDL_CATS /* ****** ****** */ /* end of [SDL.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL_video.cats0000644000175000017500000000265413431250607031105 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2 // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2_SDL_VIDEO_CATS #define SDL2_SDL_VIDEO_CATS /* ****** ****** */ #define atscntrb_SDL2_SDL_CreateWindow SDL_CreateWindow #define atscntrb_SDL2_SDL_DestroyWindow SDL_DestroyWindow /* ****** ****** */ #define atscntrb_SDL2_SDL_GetWindowSurface SDL_GetWindowSurface /* ****** ****** */ #define atscntrb_SDL2_SDL_UpdateWindowSurface SDL_UpdateWindowSurface #define atscntrb_SDL2_SDL_UpdateWindowSurfaceRects SDL_UpdateWindowSurfaceRects /* ****** ****** */ #endif // ifndef SDL2_SDL_VIDEO_CATS /* end of [SDL_video.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL_timer.cats0000644000175000017500000000232513431250607031112 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2 // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2_SDL_TIMER_CATS #define SDL2_SDL_TIMER_CATS /* ****** ****** */ #define atscntrb_SDL2_SDL_Delay SDL_Delay #define atscntrb_SDL2_SDL_Delay_Uint32 SDL_Delay #define atscntrb_SDL2_SDL_Delay_intGtez(ms) SDL_Delay((Uint32)ms) /* ****** ****** */ #endif // ifndef SDL2_SDL_TIMER_CATS /* end of [SDL_timer.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL_version.cats0000644000175000017500000000237413431250607031463 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2 // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2_SDL_VERSION_CATS #define SDL2_SDL_VERSION_CATS /* ****** ****** */ typedef struct SDL_version SDL_version_struct ; /* ****** ****** */ #define atscntrb_SDL2_SDL_VERSION(ver) SDL_VERSION(ver) #define atscntrb_SDL2_SDL_GetVersion(ver) SDL_GetVersion(ver) /* ****** ****** */ #endif // ifndef SDL2_SDL_VERSION_CATS /* end of [SDL_version.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL_rwops.cats0000644000175000017500000000267613431250607031155 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2 // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2_SDL_RWOPS_CATS #define SDL2_SDL_RWOPS_CATS /* ****** ****** */ #define atscntrb_SDL2_SDL_RWFromFP SDL_RWFromFP #define atscntrb_SDL2_SDL_RWFromFile SDL_RWFromFile /* ****** ****** */ #define atscntrb_SDL2_SDL_RWclose SDL_RWclose /* ****** ****** */ #define atscntrb_SDL2_SDL_RWread SDL_RWread #define atscntrb_SDL2_SDL_RWwrite SDL_RWwrite /* ****** ****** */ #define atscntrb_SDL2_SDL_RWseek SDL_RWseek #define atscntrb_SDL2_SDL_RWtell SDL_RWtell /* ****** ****** */ #endif // ifndef SDL2_SDL_RWOPS_CATS /* end of [SDL_rwops.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL_events.cats0000644000175000017500000000226713431250607031303 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2 // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2_SDL_EVENTS_CATS #define SDL2_SDL_EVENTS_CATS /* ****** ****** */ #define atscntrb_SDL2_SDL_PollEvent SDL_PollEvent #define atscntrb_SDL2_SDL_PollEvent_null () SDL_PollEvent((SDL_Event*)0) /* ****** ****** */ #endif // ifndef SDL2_SDL_EVENTS_CATS /* end of [SDL_events.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL_surface.cats0000644000175000017500000000320613431250607031421 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2 // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2_SDL_SURFACE_CATS #define SDL2_SDL_SURFACE_CATS /* ****** ****** */ #define \ atscntrb_SDL2_SDL_CreateSurface SDL_CreateSurface #define \ atscntrb_SDL2_SDL_CreateSurfaceFrom SDL_CreateSurfaceFrom #define atscntrb_SDL2_SDL_FreeSurface SDL_FreeSurface /* ****** ****** */ #define atscntrb_SDL2_SDL_LoadBMP SDL_LoadBMP #define atscntrb_SDL2_SDL_SaveBMP SDL_SaveBMP /* ****** ****** */ #define atscntrb_SDL2_SDL_SetSurfaceColorMod SDL_SetSurfaceColorMod #define atscntrb_SDL2_SDL_GetSurfaceColorMod SDL_GetSurfaceColorMod /* ****** ****** */ #define atscntrb_SDL2_SDL_UpperBlit SDL_UpperBlit #define atscntrb_SDL2_SDL_UpperBlit2 SDL2_SDL_UpperBlit /* ****** ****** */ #endif // ifndef SDL2_SDL_SURFACE_CATS /* end of [SDL_surface.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL_error.cats0000644000175000017500000000262013431250607031121 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2 // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2_SDL_ERROR_CATS #define SDL2_SDL_ERROR_CATS /* ****** ****** */ #define atscntrb_SDL2_SDL_SetError SDL_SetError #define atscntrb_SDL2_SDL_GetError SDL_GetError #define atscntrb_SDL2_SDL_ClearError SDL_ClearError /* ****** ****** */ #define atscntrb_SDL2_SDL_OutOfMemory SDL_OutOfMemory #define atscntrb_SDL2_SDL_Unsupported SDL_Unsupported #define atscntrb_SDL2_SDL_InvalidParamError SDL_InvalidParamError /* ****** ****** */ #endif // ifndef SDL2_SDL_ERROR_CATS /* end of [SDL_error.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/CATS/SDL_render.cats0000644000175000017500000000514013431250607031247 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for SDL2 // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom */ /* ****** ****** */ #ifndef SDL2_SDL_RENDER_CATS #define SDL2_SDL_RENDER_CATS /* ****** ****** */ #define \ atscntrb_SDL2_SDL_GetNumRenderDrivers SDL_GetNumRenderDrivers #define \ atscntrb_SDL2_SDL_GetRenderDriverInfo SDL_GetRenderDriverInfo /* ****** ****** */ #define atscntrb_SDL2_SDL_CreateRenderer SDL_CreateRenderer #define \ atscntrb_SDL2_SDL_CreateSoftwareRenderer CreateSoftwareRenderer /* ****** ****** */ #define atscntrb_SDL2_SDL_DestroyRenderer SDL_DestroyRenderer /* ****** ****** */ #define atscntrb_SDL2_SDL_GetRenderer SDL_GetRenderer /* ****** ****** */ #define atscntrb_SDL2_SDL_GetRendererInfo SDL_GetRendererInfo #define \ atscntrb_SDL2_SDL_GetRendererOutputSize SDL_GetRendererOutputSize /* ****** ****** */ #define atscntrb_SDL2_SDL_CreateTexture SDL_CreateTexture #define \ atscntrb_SDL2_SDL_CreateTextureFromSurface SDL_CreateTextureFromSurface /* ****** ****** */ #define atscntrb_SDL2_SDL_DestroyTexture SDL_DestroyTexture /* ****** ****** */ #define atscntrb_SDL2_SDL_QueryTexture SDL_QueryTexture /* ****** ****** */ #define atscntrb_SDL2_SDL_SetTextureColorMod SDL_SetTextureColorMod #define atscntrb_SDL2_SDL_GetTextureColorMod SDL_GetTextureColorMod /* ****** ****** */ #define atscntrb_SDL2_SDL_SetTextureAlphaMod SDL_SetTextureAlphaMod #define atscntrb_SDL2_SDL_GetTextureAlphaMod SDL_GetTextureAlphaMod /* ****** ****** */ #define atscntrb_SDL2_SDL_SetRenderDrawColor SDL_SetRenderDrawColor #define atscntrb_SDL2_SDL_GetRenderDrawColor SDL_GetRenderDrawColor /* ****** ****** */ #define atscntrb_SDL2_SDL_RenderClear SDL_RenderClear /* ****** ****** */ #define atscntrb_SDL2_SDL_RenderPresent SDL_RenderPresent /* ****** ****** */ #endif // ifndef SDL2_SDL_RENDER_CATS /* end of [SDL_render.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/0000755000175000017500000000000013431250607026432 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL_error.sats0000644000175000017500000000237613431250607031171 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) fun SDL_GetError ((*void*)): string = "mac#%" fun SDL_ClearError ((*void*)): void = "mac#%" (* ****** ****** *) fun SDL_OutOfMemory ((*void*)): void = "mac#%" fun SDL_Unsupported ((*void*)): void = "mac#%" fun SDL_InvalidParamError (param: string): void = "mac#%" (* ****** ****** *) (* end of [SDL_error.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL_image.sats0000644000175000017500000001047113431250607031115 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2_image // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) %{# // #include \ "atscntrb-hx-libsdl2/CATS/SDL_image.cats" // %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.SDL2IMG" // package name #define ATS_EXTERN_PREFIX "atscntrb_SDL2IMG_" // prefix for external names" // (* ****** ****** *) staload "./SDL.sats" (* ****** ****** *) fun SDL_IMAGE_VERSION (ver: &SDL_version? >> _): void = "mac#%" (* ****** ****** *) // fun IMG_Linked_Version ((*void*)): [l:addr] ( SDL_version @ l, SDL_version @ l - void | ptr(l) ) = "mac#%" // end of [IMG_Linked_Version] // (* ****** ****** *) // typedef IMG_InitFlags = int // macdef IMG_INIT_JPG = $extval (IMG_InitFlags, "IMG_INIT_JPG") macdef IMG_INIT_PNG = $extval (IMG_InitFlags, "IMG_INIT_PNG") macdef IMG_INIT_TIF = $extval (IMG_InitFlags, "IMG_INIT_TIF") macdef IMG_INIT_WEBP = $extval (IMG_InitFlags, "IMG_INIT_WEBP") // (* ****** ****** *) fun IMG_Init (flags: int): int = "mac#%" (* ****** ****** *) fun IMG_Load (path: NSH(string)): SDL_Surface_ptr0 = "mac#%" (* ****** ****** *) fun IMG_Load_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 = "mac#%" fun IMG_Load_RW_free (src: (SDL_RWops_ptr1)): SDL_Surface_ptr0 = "mac#%" (* ****** ****** *) fun IMG_LoadTyped_RW (src: !SDL_RWops_ptr1, type: NSH(string)): SDL_Surface_ptr0 = "mac#%" fun IMG_LoadTyped_RW_free (src: (SDL_RWops_ptr1), type: NSH(string)): SDL_Surface_ptr0 = "mac#%" (* ****** ****** *) fun IMG_isICO (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isCUR (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isBMP (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isGIF (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isJPG (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isLBM (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isPCX (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isPNG (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isPNM (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isTIF (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isXCF (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isXPM (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isXV (src: !SDL_RWops_ptr1): int = "mac#%" fun IMG_isWEBP (src: !SDL_RWops_ptr1): int = "mac#%" (* ****** ****** *) fun IMG_LoadICO_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadCUR_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadBMP_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadGIF_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadJPG_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadLBM_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadPCX_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadPNG_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadPNM_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadTGA_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadTIF_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadXCF_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadXPM_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadXV_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 fun IMG_LoadWEBP_RW (src: !SDL_RWops_ptr1): SDL_Surface_ptr0 (* ****** ****** *) fun IMG_SavePNG (surface: !SDL_Surface_ptr1, path: NSH(string)): int = "mac#%" // end of [IMG_SavePNG] (* ****** ****** *) fun IMG_SavePNG_RW (surface: !SDL_Surface_ptr1, dst: !SDL_RWops_ptr1): int = "mac#%" // end of [IMG_SavePNG_RW] fun IMG_SavePNG_RW_free (surface: !SDL_Surface_ptr1, dst: (SDL_RWops_ptr1)): int = "mac#%" // end of [IMG_SavePNG_RW_free] (* ****** ****** *) (* end of [SDL_image.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL_rwops.sats0000644000175000017500000000465713431250607031216 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) // castfn SDL_RWops_ptr2ptr {l:addr}(!SDL_RWops_ptr(l)):<> ptr(l) // overload ptrcast with SDL_RWops_ptr2ptr // (* ****** ****** *) // macdef SDL_RWOPS_UNKNOWN = $extval (int, "SDL_RWOPS_UNKNOWN") // macdef SDL_RWOPS_WINFILE = $extval (int, "SDL_RWOPS_WINFILE") macdef SDL_RWOPS_STDFILE = $extval (int, "SDL_RWOPS_STDFILE") macdef SDL_RWOPS_JNIFILE = $extval (int, "SDL_RWOPS_JNIFILE") // macdef SDL_RWOPS_MEMORY = $extval (int, "SDL_RWOPS_MEMORY") macdef SDL_RWOPS_MEMORY_RO = $extval (int, "SDL_RWOPS_MEMORY_RO") // (* ****** ****** *) fun SDL_RWFromFP (inp: FILEref, autoclose: bool): SDL_RWops_ptr0 = "mac#%" // end of [SDL_RWFromFP] (* ****** ****** *) fun SDL_RWFromFile (path: NSH(string), mode: file_mode): SDL_RWops_ptr0 = "mac#%" // end of [SDL_RWFromFile] (* ****** ****** *) fun SDL_RWFromMem (mem: ptr, size: int): SDL_RWops_ptr0 = "mac#%" fun SDL_RWFromConstMem (mem: ptr, size: int): SDL_RWops_ptr0 = "mac#%" (* ****** ****** *) fun SDL_RWclose (rw: SDL_RWops_ptr0): void = "mac#%" (* ****** ****** *) fun SDL_RWread ( rw: !SDL_RWops_ptr1, bufp: ptr, size: size_t, nmemb: size_t ) : size_t = "mac#%" // end of [SDL_RWread] fun SDL_RWwrite ( rw: !SDL_RWops_ptr1, bufp: ptr, size: size_t, nmemb: size_t ) : size_t = "mac#%" // end of [SDL_RWwrite] (* ****** ****** *) fun SDL_RWseek ( rw: !SDL_RWops_ptr1, ofs: Sint64, whence: int ) : Sint64 = "mac#%" // end of [SDL_RWseek] fun SDL_RWtell (rw: !SDL_RWops_ptr1): Sint64 = "mac#%" (* ****** ****** *) (* end of [SDL_rwops.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL_version.sats0000644000175000017500000000207513431250607031521 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) fun SDL_VERSION (ver: &SDL_version? >> _): void = "mac#%" fun SDL_GetVersion (ver: &SDL_version? >> _): void = "mac#%" (* ****** ****** *) (* end of [SDL_version.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL_surface.sats0000644000175000017500000000505613431250607031466 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) // castfn SDL_Surface_ptr2ptr {l:addr}(!SDL_Surface_ptr(l)):<> ptr(l) // overload ptrcast with SDL_Surface_ptr2ptr // (* ****** ****** *) fun SDL_CreateRGBSurface ( flags: Uint32 , width: int, height: int, depth: int , Rmask: Uint32, Gmask: Uint32, Bmask: Uint32, Amask: Uint32 ) : SDL_Surface_ptr0 = "mac#%" // end-of-fun (* ****** ****** *) fun SDL_CreateRGBSurfaceFrom ( pixes: ptr // not-freed by [FreeSurface] , width: int, height: int, depth: int, pitch: int , Rmask: Uint32, Gmask: Uint32, Bmask: Uint32, Amask: Uint32 ) : SDL_Surface_ptr0 = "mac#%" // end-of-fun (* ****** ****** *) fun SDL_FreeSurface (SDL_Surface_ptr0): void = "mac#%" (* ****** ****** *) // fun SDL_LoadBMP (path: string): SDL_Surface_ptr0 = "mac#%" fun SDL_SaveBMP (!SDL_Surface_ptr1, path: string): int = "mac#%" // (* ****** ****** *) fun SDL_SetSurfaceColorMod ( !SDL_Surface_ptr1, r: Uint8, g: Uint8, b: Uint8 ) : int = "mac#%" // end of [SDL_SetSurfaceColorMod] fun SDL_GetSurfaceColorMod ( !SDL_Surface_ptr1, r: &Uint8? >> _, g: &Uint8? >> _, b: &Uint8? >> _ ) : int = "mac#%" // end of [SDL_GetSurfaceColorMod] (* ****** ****** *) // fun SDL_UpperBlit ( src: !SDL_Surface_ptr1, srcrect: cPtr0(SDL_Rect) , dst: !SDL_Surface_ptr1, dstrect: cPtr0(SDL_Rect) ) : int = "mac#%" // end of [SDL_UpperBlit] fun SDL_UpperBlit2 ( src: !SDL_Surface_ptr1, srcrect: cPtr0(SDL_Rect) , dst: !SDL_Surface_ptr1, dstrect: &SDL_Rect? >> _ ) : int = "mac#%" // end of [SDL_UpperBlit2] // macdef SDL_BlitSurface (src, srcrect, dst, dstrect) = SDL_UpperBlit (,(src), ,(srcrect), ,(dst), ,(dstrect)) // (* ****** ****** *) (* end of [SDL_surface.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL_video.sats0000644000175000017500000001062413431250607031141 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) // castfn SDL_Window_ptr2ptr {l:addr}(!SDL_Window_ptr(l)):<> ptr(l) // overload ptrcast with SDL_Window_ptr2ptr // (* ****** ****** *) typedef SDL_WindowFlags = Uint32 macdef SDL_WINDOW_FULLSCREEN = $extval (SDL_WindowFlags, "SDL_WINDOW_FULLSCREEN") macdef SDL_WINDOW_OPENGL = $extval (SDL_WindowFlags, "SDL_WINDOW_OPENGL") macdef SDL_WINDOW_SHOWN = $extval (SDL_WindowFlags, "SDL_WINDOW_SHOWN") macdef SDL_WINDOW_HIDDEN = $extval (SDL_WindowFlags, "SDL_WINDOW_HIDDEN") macdef SDL_WINDOW_BORDERLESS = $extval (SDL_WindowFlags, "SDL_WINDOW_BORDERLESS") macdef SDL_WINDOW_RESIZABLE = $extval (SDL_WindowFlags, "SDL_WINDOW_RESIZABLE") macdef SDL_WINDOW_MINIMIZED = $extval (SDL_WindowFlags, "SDL_WINDOW_MINIMIZED") macdef SDL_WINDOW_MAXIMIZED = $extval (SDL_WindowFlags, "SDL_WINDOW_MAXIMIZED") macdef SDL_WINDOW_INPUT_GRABBED = $extval (SDL_WindowFlags, "SDL_WINDOW_INPUT_GRABBED") macdef SDL_WINDOW_INPUT_FOCUS = $extval (SDL_WindowFlags, "SDL_WINDOW_INPUT_FOCUS") macdef SDL_WINDOW_MOUSE_FOCUS = $extval (SDL_WindowFlags, "SDL_WINDOW_MOUSE_FOCUS") macdef SDL_WINDOW_FULLSCREEN_DESKTOP = $extval (SDL_WindowFlags, "SDL_WINDOW_FULLSCREEN_DESKTOP") macdef SDL_WINDOW_FOREIGN = $extval (SDL_WindowFlags, "SDL_WINDOW_FOREIGN") macdef SDL_WINDOW_ALLOW_HIGHDPI = $extval (SDL_WindowFlags, "SDL_WINDOW_ALLOW_HIGHDPI") (* ****** ****** *) macdef SDL_WINDOWPOS_CENTERED = $extval (int, "SDL_WINDOWPOS_CENTERED") macdef SDL_WINDOWPOS_UNDEFINED = $extval (int, "SDL_WINDOWPOS_UNDEFINED") (* ****** ****** *) // typedef SDL_WindowEventID = int macdef SDL_WINDOWEVENT_NONE = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_NONE") macdef SDL_WINDOWEVENT_SHOWN = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_SHOWN") macdef SDL_WINDOWEVENT_HIDDEN = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_HIDDEN") macdef SDL_WINDOWEVENT_EXPOSED = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_EXPOSED") macdef SDL_WINDOWEVENT_MOVED = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_MOVED") macdef SDL_WINDOWEVENT_RESIZED = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_RESIZED") macdef SDL_WINDOWEVENT_SIZE_CHANGED = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_SIZE_CHANGED") macdef SDL_WINDOWEVENT_MINIMIZED = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_MINIMIZED") macdef SDL_WINDOWEVENT_MAXIMIZED = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_MAXIMIZED") macdef SDL_WINDOWEVENT_RESTORED = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_RESTORED") macdef SDL_WINDOWEVENT_ENTER = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_ENTER") macdef SDL_WINDOWEVENT_LEAVE = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_LEAVE") macdef SDL_WINDOWEVENT_FOCUS_GAINED = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_FOCUS_GAINED") macdef SDL_WINDOWEVENT_FOCUS_LOST = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_FOCUS_LOST") macdef SDL_WINDOWEVENT_CLOSE = $extval (SDL_WindowEventID, "SDL_WINDOWEVENT_CLOSE") // (* ****** ****** *) fun SDL_CreateWindow ( title: NSH(string), x: int, y: int, w: int, h: int, flags: Uint32 ) : SDL_Window_ptr0 = "mac#%" // end of [SDL_CreateWindow] (* ****** ****** *) fun SDL_DestroyWindow (SDL_Window_ptr0): void = "mac#%" (* ****** ****** *) fun SDL_GetWindowSurface (win: !SDL_Window_ptr1): [l:addr] vttakeout0(SDL_Surface_ptr(l)) = "mac#%" // end of [SDL_GetWindowSurface] (* ****** ****** *) // fun SDL_UpdateWindowSurface (win: !SDL_Window_ptr1): int = "mac#%" fun SDL_UpdateWindowSurfaceRects{n:nat} (win: !SDL_Window_ptr1, rects: arrayref(SDL_Rect, n), n: int(n)): int = "mac#%" // (* ****** ****** *) (* end of [SDL_video.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/mybasis.sats0000644000175000017500000000676213431250607031010 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) #ifndef SDL2_MYBASIS #define SDL2_MYBASIS (* ****** ****** *) (* #print "Hello from [mybasis]!\n" *) (* ****** ****** *) typedef Sint8 = int8 typedef Sint16 = int16 typedef Sint32 = int32 typedef Sint64 = int64 (* ****** ****** *) typedef Uint8 = uint8 typedef Uint16 = uint16 typedef Uint32 = uint32 typedef Uint64 = uint64 (* ****** ****** *) symintr Uint8 castfn Uint8_of_int(int):<> Uint8 castfn Uint8_of_uint(uint):<> Uint8 overload Uint8 with Uint8_of_int overload Uint8 with Uint8_of_uint (* ****** ****** *) symintr Uint32 castfn Uint32_of_int(int):<> Uint32 castfn Uint32_of_uint(uint):<> Uint32 overload Uint32 with Uint32_of_int overload Uint32 with Uint32_of_uint (* ****** ****** *) typedef SDL_version = $extype_struct "SDL_version_struct" of { major= Uint8, minor=Uint8, patch= Uint8 } (* end of [SDL_version] *) (* ****** ****** *) // typedef SDL_Point = $extype_struct "SDL_Point" of { x= int, y= int } // typedef SDL_Rect = $extype_struct "SDL_Rect" of { x=int, y= int, w= int, h= int } // (* ****** ****** *) // absvtype SDL_RWops_ptr(l:addr) = ptr(l) // SDL_RWops* or null vtypedef SDL_RWops_ptr0 = [l:addr] SDL_RWops_ptr(l) vtypedef SDL_RWops_ptr1 = [l:addr | l > null] SDL_RWops_ptr(l) // (* ****** ****** *) abst@ype SDL_EventType = $extype"SDL_EventType" (* ****** ****** *) typedef SDL_Event = $extype_struct"SDL_Event" of { // type= SDL_EventType // , SDL_Event_rest= undefined_t0ype } // end of [SDL_Event] (* ****** ****** *) // absvtype SDL_Window_ptr(l:addr) = ptr(l) // SDL_Window* or null vtypedef SDL_Window_ptr0 = [l:addr] SDL_Window_ptr(l) vtypedef SDL_Window_ptr1 = [l:addr | l > null] SDL_Window_ptr(l) // (* ****** ****** *) // absvtype SDL_Surface_ptr(l:addr) = ptr(l) // SDL_Surface* or null vtypedef SDL_Surface_ptr0 = [l:addr] SDL_Surface_ptr(l) vtypedef SDL_Surface_ptr1 = [l:addr | l > null] SDL_Surface_ptr(l) // (* ****** ****** *) // absvtype SDL_Texture_ptr(l:addr) = ptr(l) // SDL_Texture* or null vtypedef SDL_Texture_ptr0 = [l:addr] SDL_Texture_ptr(l) vtypedef SDL_Texture_ptr1 = [l:addr | l > null] SDL_Texture_ptr(l) // absvtype SDL_Renderer_ptr(l:addr) = ptr(l) // SDL_Renderer* or null vtypedef SDL_Renderer_ptr0 = [l:addr] SDL_Renderer_ptr(l) vtypedef SDL_Renderer_ptr1 = [l:addr | l > null] SDL_Renderer_ptr(l) // (* ****** ****** *) abst@ype SDL_RendererInfo = $extype_struct "SDL_RendererInfo" of { name= string , flags= Uint32 , num_texture_formats= Uint32 , texture_formats= @[Uint32][16] , max_texture_width= int , max_texture_height= int } (* end of [SDL_RendererInfo] *) (* ****** ****** *) #endif // end of [ifndef] (* ****** ****** *) (* end of [mybasis.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL.sats0000644000175000017500000000453013431250607027752 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) %{# // #include \ "atscntrb-hx-libsdl2/CATS/SDL.cats" // %} // end of [%{#] (* ****** ****** *) #define ATS_PACKNAME "ATSCNTRB.SDL2" // package name #define ATS_EXTERN_PREFIX "atscntrb_SDL2_" // prefix for external names" (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) #include "./SDL_error.sats" #include "./SDL_events.sats" #include "./SDL_render.sats" #include "./SDL_rwops.sats" #include "./SDL_surface.sats" #include "./SDL_timer.sats" #include "./SDL_version.sats" #include "./SDL_video.sats" (* ****** ****** *) macdef SDL_INIT_TIMER = $extval (Uint32, "SDL_INIT_TIMER") macdef SDL_INIT_AUDIO = $extval (Uint32, "SDL_INIT_AUDIO") macdef SDL_INIT_VIDEO = $extval (Uint32, "SDL_INIT_VIDEO") macdef SDL_INIT_JOYSTICK = $extval (Uint32, "SDL_INIT_JOYSTICK") macdef SDL_INIT_HAPTIC = $extval (Uint32, "SDL_INIT_HAPTIC") macdef SDL_INIT_GAMECONTROLLER = $extval (Uint32, "SDL_INIT_GAMECONTROLLER") macdef SDL_INIT_EVENTS = $extval (Uint32, "SDL_INIT_EVENTS") macdef SDL_INIT_NOPARACHUTE = $extval (Uint32, "SDL_INIT_NOPARACHUTE") macdef SDL_INIT_EVERYTHING = $extval (Uint32, "SDL_INIT_EVERYTHING") (* ****** ****** *) fun SDL_Init (flags: Uint32): int = "mac#%" fun SDL_InitSubSystem (flags: Uint32): int = "mac#%" (* ****** ****** *) fun SDL_Quit ((*void*)): void = "mac#%" fun SDL_QuitSubSystem (flags: Uint32): void = "mac#%" (* ****** ****** *) fun SDL_WasInit (flags: Uint32): Uint32 = "mac#%" (* ****** ****** *) (* end of [SDL.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL_timer.sats0000644000175000017500000000234713431250607031156 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) // (* fun SDL_Delay (ms: Uint32): void = "mac#%" *) fun SDL_Delay_Uint32 (ms: Uint32): void = "mac#%" fun SDL_Delay_intGtez (ms: intGte(0)): void = "mac#%" // overload SDL_Delay with SDL_Delay_Uint32 overload SDL_Delay with SDL_Delay_intGtez // (* ****** ****** *) (* end of [SDL_timer.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL_events.sats0000644000175000017500000001067213431250607031342 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) // (* macdef SDL_FIRSTEVENT = $extval (SDL_EventType, "SDL_FIRSTEVENT") *) macdef SDL_QUIT = $extval (SDL_EventType, "SDL_QUIT") macdef SDL_APP_TERMINATING = $extval (SDL_EventType, "SDL_APP_TERMINATING") macdef SDL_APP_LOWMEMORY = $extval (SDL_EventType, "SDL_APP_LOWMEMORY") macdef SDL_APP_WILLENTERBACKGROUND = $extval (SDL_EventType, "SDL_APP_WILLENTERBACKGROUND") macdef SDL_APP_DIDENTERBACKGROUND = $extval (SDL_EventType, "SDL_APP_DIDENTERBACKGROUND") macdef SDL_APP_WILLENTERFOREGROUND = $extval (SDL_EventType, "SDL_APP_WILLENTERFOREGROUND") macdef SDL_APP_DIDENTERFOREGROUND = $extval (SDL_EventType, "SDL_APP_DIDENTERFOREGROUND") macdef SDL_WINDOWEVENT = $extval (SDL_EventType, "SDL_WINDOWEVENT") macdef SDL_SYSWMEVENT = $extval (SDL_EventType, "SDL_SYSWMEVENT") macdef SDL_KEYDOWN = $extval (SDL_EventType, "SDL_KEYDOWN") macdef SDL_KEYUP = $extval (SDL_EventType, "SDL_KEYUP") macdef SDL_TEXTEDITING = $extval (SDL_EventType, "SDL_TEXTEDITING") macdef SDL_TEXTINPUT = $extval (SDL_EventType, "SDL_TEXTINPUT") macdef SDL_MOUSEMOTION = $extval (SDL_EventType, "SDL_MOUSEMOTION") macdef SDL_MOUSEBUTTONDOWN = $extval (SDL_EventType, "SDL_MOUSEBUTTONDOWN") macdef SDL_MOUSEBUTTONUP = $extval (SDL_EventType, "SDL_MOUSEBUTTONUP") macdef SDL_MOUSEWHEEL = $extval (SDL_EventType, "SDL_MOUSEWHEEL") macdef SDL_JOYAXISMOTION = $extval (SDL_EventType, "SDL_JOYAXISMOTION") macdef SDL_JOYBALLMOTION = $extval (SDL_EventType, "SDL_JOYBALLMOTION") macdef SDL_JOYHATMOTION = $extval (SDL_EventType, "SDL_JOYHATMOTION") macdef SDL_JOYBUTTONDOWN = $extval (SDL_EventType, "SDL_JOYBUTTONDOWN") macdef SDL_JOYBUTTONUP = $extval (SDL_EventType, "SDL_JOYBUTTONUP") macdef SDL_JOYDEVICEADDED = $extval (SDL_EventType, "SDL_JOYDEVICEADDED") macdef SDL_JOYDEVICEREMOVED = $extval (SDL_EventType, "SDL_JOYDEVICEREMOVED") macdef SDL_CONTROLLERAXISMOTION = $extval (SDL_EventType, "SDL_CONTROLLERAXISMOTION") macdef SDL_CONTROLLERBUTTONDOWN = $extval (SDL_EventType, "SDL_CONTROLLERBUTTONDOWN") macdef SDL_CONTROLLERBUTTONUP = $extval (SDL_EventType, "SDL_CONTROLLERBUTTONUP") macdef SDL_CONTROLLERDEVICEADDED = $extval (SDL_EventType, "SDL_CONTROLLERDEVICEADDED") macdef SDL_CONTROLLERDEVICEREMOVED = $extval (SDL_EventType, "SDL_CONTROLLERDEVICEREMOVED") macdef SDL_CONTROLLERDEVICEREMAPPED = $extval (SDL_EventType, "SDL_CONTROLLERDEVICEREMAPPED") macdef SDL_FINGERDOWN = $extval (SDL_EventType, "SDL_FINGERDOWN") macdef SDL_FINGERUP = $extval (SDL_EventType, "SDL_FINGERUP") macdef SDL_FINGERMOTION = $extval (SDL_EventType, "SDL_FINGERMOTION") macdef SDL_DOLLARGESTURE = $extval (SDL_EventType, "SDL_DOLLARGESTURE") macdef SDL_DOLLARRECORD = $extval (SDL_EventType, "SDL_DOLLARRECORD") macdef SDL_MULTIGESTURE = $extval (SDL_EventType, "SDL_MULTIGESTURE") macdef SDL_CLIPBOARDUPDATE = $extval (SDL_EventType, "SDL_CLIPBOARDUPDATE") macdef SDL_DROPFILE = $extval (SDL_EventType, "SDL_DROPFILE") macdef SDL_USEREVENT = $extval (SDL_EventType, "SDL_USEREVENT") // (* macdef SDL_LASTEVENT = $extval (SDL_EventType, "SDL_LASTEVENT") *) // (* ****** ****** *) // fun SDL_EventType_equal ( SDL_EventType, SDL_EventType ) :<> bool = "mac#atspre_eq_int_int" // fun SDL_EventType_notequal ( SDL_EventType, SDL_EventType ) :<> bool = "mac#atspre_neq_int_int" // overload = with SDL_EventType_equal overload != with SDL_EventType_notequal // (* ****** ****** *) // fun SDL_PollEvent ( event: &SDL_Event? >> opt(SDL_Event, i > 0) ) : #[i:nat] int(i) = "mac#%" // end-of-function // fun SDL_PollEvent_null ((*void*)): intGte (0) = "mac#%" // (* ****** ****** *) (* end of [SDL_events.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/0000755000175000017500000000000013431250607027516 5ustar brandonbrandon././@LongLink0000644000000000000000000000014700000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_events.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_events.at0000644000175000017500000000055513431250607032057 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../SDL_events.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_SDL2_SDL") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/SDL2/SDL\ ") (* ****** ****** *) #declnamesynop("SDL_PollEvent") (* ****** ****** *) (* end of [SDL_events.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/Makefile.gen0000777000175000017500000000000013431250607036524 2../../../../../share/Makefile.genustar brandonbrandon././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_error.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_error.atx0000644000175000017500000000101513431250607032064 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../SDL_error.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_SDL2_SDL") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/SDL2/SDL\ ") (* ****** ****** *) #declnamesynop("SDL_GetError") #declnamesynop("SDL_ClearError") (* ****** ****** *) #declnamesynop("SDL_OutOfMemory") #declnamesynop("SDL_Unsupported") #declnamesynop("SDL_InvalidParamError") (* ****** ****** *) (* end of [SDL_error.atxt] *) ././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_timer.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_timer.atx0000644000175000017500000000054713431250607032064 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../SDL_timer.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_SDL2_SDL") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/SDL2/SDL\ ") (* ****** ****** *) #declnamesynop("SDL_Delay") (* ****** ****** *) (* end of [SDL_timer.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/HTML/0000755000175000017500000000000013431250607030262 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/HTML/.keeper0000644000175000017500000000000013431250607031524 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/Makefile0000644000175000017500000001603113431250607031157 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/ccomp/atslib/lib ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= declatext_sats.o declatext_dats.o declatext_sats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= htmlgendecl_sats.o htmlgendecl_dats.o htmlgendecl_sats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: ###### all_html:: HTML/SDL.html HTML/SDL.html: SDL_atxt.exe ; ./$< > $@ SDL_atxt.txt: SDL.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ SDL_atxt.exe: htmlgendecl_atxt.dats SDL_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_SDL:: ; scp HTML/SDL.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) SDL_atxt.exe cleanall:: ; $(RMF) HTML/SDL.html all_html:: HTML/mybasis.html HTML/mybasis.html: mybasis_atxt.exe ; ./$< > $@ mybasis_atxt.txt: mybasis.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ mybasis_atxt.exe: htmlgendecl_atxt.dats mybasis_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_mybasis:: ; scp HTML/mybasis.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) mybasis_atxt.exe cleanall:: ; $(RMF) HTML/mybasis.html all_html:: HTML/SDL_error.html HTML/SDL_error.html: SDL_error_atxt.exe ; ./$< > $@ SDL_error_atxt.txt: SDL_error.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ SDL_error_atxt.exe: htmlgendecl_atxt.dats SDL_error_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_SDL_error:: ; scp HTML/SDL_error.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) SDL_error_atxt.exe cleanall:: ; $(RMF) HTML/SDL_error.html all_html:: HTML/SDL_events.html HTML/SDL_events.html: SDL_events_atxt.exe ; ./$< > $@ SDL_events_atxt.txt: SDL_events.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ SDL_events_atxt.exe: htmlgendecl_atxt.dats SDL_events_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_SDL_events:: ; scp HTML/SDL_events.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) SDL_events_atxt.exe cleanall:: ; $(RMF) HTML/SDL_events.html all_html:: HTML/SDL_render.html HTML/SDL_render.html: SDL_render_atxt.exe ; ./$< > $@ SDL_render_atxt.txt: SDL_render.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ SDL_render_atxt.exe: htmlgendecl_atxt.dats SDL_render_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_SDL_render:: ; scp HTML/SDL_render.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) SDL_render_atxt.exe cleanall:: ; $(RMF) HTML/SDL_render.html all_html:: HTML/SDL_surface.html HTML/SDL_surface.html: SDL_surface_atxt.exe ; ./$< > $@ SDL_surface_atxt.txt: SDL_surface.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ SDL_surface_atxt.exe: htmlgendecl_atxt.dats SDL_surface_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_SDL_surface:: ; scp HTML/SDL_surface.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) SDL_surface_atxt.exe cleanall:: ; $(RMF) HTML/SDL_surface.html all_html:: HTML/SDL_timer.html HTML/SDL_timer.html: SDL_timer_atxt.exe ; ./$< > $@ SDL_timer_atxt.txt: SDL_timer.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ SDL_timer_atxt.exe: htmlgendecl_atxt.dats SDL_timer_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_SDL_timer:: ; scp HTML/SDL_timer.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) SDL_timer_atxt.exe cleanall:: ; $(RMF) HTML/SDL_timer.html all_html:: HTML/SDL_version.html HTML/SDL_version.html: SDL_version_atxt.exe ; ./$< > $@ SDL_version_atxt.txt: SDL_version.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ SDL_version_atxt.exe: htmlgendecl_atxt.dats SDL_version_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_SDL_version:: ; scp HTML/SDL_version.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) SDL_version_atxt.exe cleanall:: ; $(RMF) HTML/SDL_version.html all_html:: HTML/SDL_video.html HTML/SDL_video.html: SDL_video_atxt.exe ; ./$< > $@ SDL_video_atxt.txt: SDL_video.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ SDL_video_atxt.exe: htmlgendecl_atxt.dats SDL_video_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_SDL_video:: ; scp HTML/SDL_video.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) SDL_video_atxt.exe cleanall:: ; $(RMF) HTML/SDL_video.html ###### uploadall:: ; scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015500000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/theDeclpostamble.htmlATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/theDeclpostam0000644000175000017500000000075113431250607032240 0ustar brandonbrandon
This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. SourceForge.net Logo
././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_version.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_version.a0000644000175000017500000000064413431250607032053 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../SDL_version.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_SDL2_SDL") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/SDL2/SDL\ ") (* ****** ****** *) #declnamesynop("SDL_VERSION") (* ****** ****** *) #declnamesynop("SDL_GetVersion") (* ****** ****** *) (* end of [SDL_version.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/Makefile.atxt0000644000175000017500000000543013431250607032137 0ustar brandonbrandon%{ // staload STDIO = "libc/SATS/stdio.sats" staload TIME = "libc/SATS/time.sats" // dynload "libatsdoc/dynloadall.dats" // staload "libatsdoc/SATS/libatsdoc_atext.sats" // %}\ %{ fun comment (x: string): atext = atext_nil () // end of [comment] fun make_entry (nm: string): atext = let // val ent = sprintf ("\ all_html:: HTML/%s.html\n\ HTML/%s.html: \ %s_atxt.exe ; ./$< > $@ %s_atxt.txt: %s.atxt ; $(CAT) $< | \ $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ %s_atxt.exe: htmlgendecl_atxt.dats \ %s_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< \ $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_%s:: ; \ scp HTML/%s.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) %s_atxt.exe cleanall:: ; $(RMF) HTML/%s.html ", @(nm, nm, nm, nm, nm, nm, nm, nm, nm, nm, nm) ) // end of [val] // in atext_strptr (ent) end // end of [make_entry] %}\ # # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/ccomp/atslib/lib ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \ declatext_sats.o \ declatext_dats.o \ declatext_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \ htmlgendecl_sats.o \ htmlgendecl_dats.o \ htmlgendecl_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: ###### #make_entry("SDL") #make_entry("mybasis") #make_entry("SDL_error") #make_entry("SDL_events") #make_entry("SDL_render") #make_entry("SDL_surface") #make_entry("SDL_timer") #make_entry("SDL_version") #make_entry("SDL_video") ###### uploadall:: ; \ scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/SDL2/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### \ %{ implement main () = fprint_filsub (stdout_ref, "Makefile_atxt.txt") %}\ ././@LongLink0000644000000000000000000000014700000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_render.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_render.at0000644000175000017500000000121013431250607032017 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../SDL_render.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_SDL2_SDL") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/SDL2/SDL\ ") (* ****** ****** *) #declnamesynop("SDL_CreateRenderer") (* ****** ****** *) #declnamesynop("SDL_DestroyRenderer") (* ****** ****** *) #declnamesynop("SDL_SetRenderDrawColor") #declnamesynop("SDL_GetRenderDrawColor") (* ****** ****** *) #declnamesynop("SDL_RenderClear") (* ****** ****** *) #declnamesynop("SDL_RenderPresent") (* ****** ****** *) (* end of [SDL_render.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL.atxt0000644000175000017500000000244713431250607031051 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../SDL.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_SDL2_SDL") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/SDL2/SDL\ ") (* ****** ****** *) #declpreamble("\ #para('\ This package contains an API for programming SDL2 in ATS. ') ")#comment("declpreamble") (* ****** ****** *) #declnamesynop("SDL_Init") #declnamesynop("SDL_InitSubSystem") (* ****** ****** *) #declnamesynop("SDL_Quit") #declnamesynop("SDL_QuitSubSystem") (* ****** ****** *) #declnamesynop("SDL_WasInit") (* ****** ****** *) #declname2("mybasis.sats", "mybasis.html") // #declsynop2('\ This file, which is included in [SDL2.sats], mostly contains type definitions and macros in the SDL2 package. ') (* ****** ****** *) #declname2("SDL_error.sats", "SDL_error.html") (* ****** ****** *) #declname2("SDL_events.sats", "SDL_events.html") (* ****** ****** *) #declname2("SDL_render.sats", "SDL_render.html") (* ****** ****** *) #declname2("SDL_surface.sats", "SDL_surface.html") (* ****** ****** *) #declname2("SDL_version.sats", "SDL_version.html") (* ****** ****** *) #declname2("SDL_video.sats", "SDL_video.html") (* ****** ****** *) (* end of [SDL.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/mybasis.atxt0000644000175000017500000000170313431250607032070 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../mybasis.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_SDL2_SDL") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/mybasis\ ") (* ****** ****** *) #declnamesynop("Sint8") #declnamesynop("Sint16") #declnamesynop("Sint32") (* ****** ****** *) #declnamesynop("Uint8") #declnamesynop("Uint16") #declnamesynop("Uint32") (* ****** ****** *) #declnamesynop("SDL_Event") #declnamesynop("SDL_EventType") (* ****** ****** *) #declnamesynop("SDL_Window_ptr") #declnamesynop("SDL_Window_ptr0") #declnamesynop("SDL_Window_ptr1") (* ****** ****** *) #declnamesynop("SDL_Surface_ptr") #declnamesynop("SDL_Surface_ptr0") #declnamesynop("SDL_Surface_ptr1") (* ****** ****** *) #declnamesynop("SDL_Renderer_ptr") #declnamesynop("SDL_Renderer_ptr0") #declnamesynop("SDL_Renderer_ptr1") (* ****** ****** *) (* end of [mybasis.atxt] *) ././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_surface.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_surface.a0000644000175000017500000000122313431250607032010 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../SDL_surface.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_SDL2_SDL") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/SDL2/SDL\ ") (* ****** ****** *) #declnamesynop("SDL_CreateRGBSurface") #declnamesynop("SDL_CreateRGBSurfaceFrom") (* ****** ****** *) #declnamesynop("SDL_FreeSurface") (* ****** ****** *) #declnamesynop("SDL_LoadBMP") #declnamesynop("SDL_SaveBMP") (* ****** ****** *) #declnamesynop("SDL_SetSurfaceColorMod") #declnamesynop("SDL_GetSurfaceColorMod") (* ****** ****** *) (* end of [SDL_surface.atxt] *) ././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_video.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/DOCUGEN/SDL_video.atx0000644000175000017500000000071713431250607032051 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../SDL_video.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_SDL2_SDL") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/SDL2/SDL\ ") (* ****** ****** *) #declnamesynop("SDL_CreateWindow") #declnamesynop("SDL_DestroyWindow") (* ****** ****** *) #declnamesynop("SDL_GetWindowSurface") (* ****** ****** *) (* end of [SDL_video.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/SATS/SDL_render.sats0000644000175000017500000001246513431250607031317 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for SDL2 // (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiDOTgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) // castfn SDL_Texture_ptr2ptr {l:addr}(!SDL_Texture_ptr(l)):<> ptr(l) castfn SDL_Renderer_ptr2ptr {l:addr}(!SDL_Renderer_ptr(l)):<> ptr(l) // overload ptrcast with SDL_Texture_ptr2ptr overload ptrcast with SDL_Renderer_ptr2ptr // (* ****** ****** *) typedef SDL_RendererFlags = Uint32 (* ****** ****** *) // macdef SDL_RENDERER_SOFTWARE = $extval (SDL_RendererFlags, "SDL_RENDERER_SOFTWARE") // macdef SDL_RENDERER_ACCELERATED = $extval (SDL_RendererFlags, "SDL_RENDERER_ACCELERATED") // macdef SDL_RENDERER_PRESENTVSYNC = $extval (SDL_RendererFlags, "SDL_RENDERER_PRESENTVSYNC") // macdef SDL_RENDERER_TARGETTEXTURE = $extval (SDL_RendererFlags, "SDL_RENDERER_TARGETTEXTURE") // (* ****** ****** *) // typedef SDL_TextureAccess = int // macdef SDL_TEXTUREACCESS_STATIC = $extval (SDL_TextureAccess, "SDL_TEXTUREACCESS_STATIC") macdef SDL_TEXTUREACCESS_STREAMING = $extval (SDL_TextureAccess, "SDL_TEXTUREACCESS_STREAMING") macdef SDL_TEXTUREACCESS_TARGET = $extval (SDL_TextureAccess, "SDL_TEXTUREACCESS_TARGET") // (* ****** ****** *) // abst@ype SDL_TextureModulate = int // macdef SDL_TEXTUREMODULATE_NONE = $extval (SDL_TextureModulate, "SDL_TEXTUREMODULATE_NONE") macdef SDL_TEXTUREMODULATE_COLOR = $extval (SDL_TextureModulate, "SDL_TEXTUREMODULATE_COLOR") macdef SDL_TEXTUREMODULATE_ALPHA = $extval (SDL_TextureModulate, "SDL_TEXTUREMODULATE_ALPHA") // (* ****** ****** *) abst@ype SDL_RendererFlip = int // macdef SDL_FLIP_NONE = $extval (SDL_RendererFlip, "SDL_FLIP_NONE") macdef SDL_FLIP_HORIZONTAL = $extval (SDL_RendererFlip, "SDL_FLIP_HORIZONTAL") macdef SDL_FLIP_VERTICAL = $extval (SDL_RendererFlip, "SDL_FLIP_VERTICAL") // (* ****** ****** *) fun SDL_GetNumRenderDrivers ((*void*)): int = "mac#%" fun SDL_GetRenderDriverInfo ( index: int, info: &SDL_RendererInfo? >> opt(SDL_RendererInfo, i==0) ) : #[i:int | i <= 0] int(i) = "mac#%" // end-of-funp (* ****** ****** *) fun SDL_CreateRenderer ( window: !SDL_Window_ptr1, index: int, flags: Uint32 ) : SDL_Renderer_ptr0 = "mac#%" // end-of-fun (* ****** ****** *) fun SDL_CreateSoftwareRenderer (sf: !SDL_Surface_ptr1): SDL_Renderer_ptr0 = "mac#%" // end of [SDL_CreateSoftwareRenderer] (* ****** ****** *) fun SDL_DestroyRenderer (SDL_Renderer_ptr0): void = "mac#%" (* ****** ****** *) fun SDL_GetRenderer (win: !SDL_Window_ptr1): SDL_Renderer_ptr0 = "mac#%" fun SDL_GetRendererInfo ( rndr: !SDL_Renderer_ptr1 , info: &SDL_RendererInfo? >> opt(SDL_RendererInfo, i==0) ) : #[i:int | i <= 0] int(i) = "mac#%" // end-of-fun fun SDL_GetRendererOutputSize (rndr: !SDL_Renderer_ptr1, w: &int? >> _, h: &int? >> _): int = "mac#%" // end of [SDL_GetRendererOutputSize] (* ****** ****** *) fun SDL_CreateTexture ( rndr: !SDL_Renderer_ptr1, format: Uint32, access: int, w: int, h: int ) : SDL_Texture_ptr0 = "mac#%" // end-of-fun fun SDL_CreateTextureFromSurface (rndr: !SDL_Renderer_ptr1, sf: !SDL_Surface_ptr1): SDL_Texture_ptr0 = "mac#%" // end of [SDL_CreateTextureFromSurface] (* ****** ****** *) fun SDL_DestroyTexture (SDL_Texture_ptr0): void = "mac#%" (* ****** ****** *) fun SDL_QueryTexture ( text: !SDL_Texture_ptr1 , format: cPtr0(Uint32), access: cPtr0(int), w: &int? >> _, h: &int? >> _ ) : int = "mac#%" // end of [SDL_QueryTexture] (* ****** ****** *) fun SDL_SetTextureColorMod (text: !SDL_Texture_ptr1, r: Uint8, g: Uint8, b: Uint8): int = "mac#%" // end of [SDL_SetTextureColorMod] fun SDL_GetTextureColorMod ( text: !SDL_Texture_ptr1, r: &Uint8? >> _, g: &Uint8? >> _, b: &Uint8? >> _ ) : int = "mac#%" // end of [SDL_GetTextureColorMod] (* ****** ****** *) fun SDL_SetTextureAlphaMod (text: !SDL_Texture_ptr1, alpha: Uint8): int = "mac#%" // end of [SDL_SetTextureAlphaMod] fun SDL_GetTextureAlphaMod (text: !SDL_Texture_ptr1, alpha: &Uint8? >> _): int = "mac#%" // end of [SDL_GetTextureAlphaMod] (* ****** ****** *) fun SDL_SetRenderDrawColor ( !SDL_Renderer_ptr1, r: Uint8, g: Uint8, b: Uint8, a: Uint8 ) : int = "mac#%" // end of [SDL_SetRenderDrawColor] fun SDL_GetRenderDrawColor ( renderer: !SDL_Renderer_ptr1 , r: &Uint8? >> _, g: &Uint8? >> _, b: &Uint8? >> _, a: &Uint8? >> _ ) : int = "mac#%" // end of [SDL_GetRenderDrawColor] (* ****** ****** *) fun SDL_RenderClear (renderer: !SDL_Renderer_ptr1): int = "mac#%" // HX: succ/fail: 0/-1 // end of [SDL_RenderClear] (* ****** ****** *) fun SDL_RenderPresent (renderer: !SDL_Renderer_ptr1): void = "mac#%" (* ****** ****** *) (* end of [SDL_render.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/package.json0000644000175000017500000000101413431250607030142 0ustar brandonbrandon{ "name": "atscntrb-hx-libsdl2", "version": "1.0.0" , "description": "This package is for directly calling in ATS various SDL2-functions." , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2" } , "keywords": [ "ATS", "SDL", "SDL2" ] , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "The package is stored at ${PATSHOME}/npm-utils/contrib/atscntrb/atscntrb-hx-libsdl2/." } ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/.keeper0000644000175000017500000000000013431250607023334 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/0000755000175000017500000000000013431250607025676 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/0000755000175000017500000000000013431250607027165 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/DATS/0000755000175000017500000000000013431250607027720 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/DATS/xml0.dats0000644000175000017500000000216213431250607031456 0ustar brandonbrandon(* ** API for libxml2 in ATS *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: August, 2013 *) (* ****** ****** *) staload "./../SATS/xml0.sats" (* ****** ****** *) implement{} fprint_xmlString (out, str) = fprint_string (out, xmlString2string(str)) // end of [fprint_xmlString] (* ****** ****** *) (* end of [xml0.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/mylibies.hats0000644000175000017500000000067213431250607031670 0ustar brandonbrandon(* ****** ****** *) // (* For downstream static loading *) // (* ****** ****** *) // #staload LIBXML2_xml0 = "./SATS/xml0.sats" // #staload LIBXML2_tree = "./SATS/tree.sats" #staload LIBXML2_xpath = "./SATS/xpath.sats" #staload LIBXML2_parser = "./SATS/parser.sats" #staload LIBXML2_HTMLparser = "./SATS/HTMLparser.sats" (* ****** ****** *) #staload _(*LIBXML2_xml0*) = "./DATS/xml0.dats" (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/Makefile_test0000644000175000017500000000056313431250607031670 0ustar brandonbrandon# # For testing # ###### SUBDIRS := SUBDIRS += TEST ###### testall:: ###### # testall:: all all: ; for i in $(SUBDIRS); do $(MAKE) -C $$i all; done # testall:: regress regress: ; for i in $(SUBDIRS); do $(MAKE) -C $$i regress; done # testall:: cleanall cleanall: ; for i in $(SUBDIRS); do $(MAKE) -C $$i cleanall; done # ###### ###### end of [Makefile_test] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/TEST/0000755000175000017500000000000013431250607027744 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/TEST/Makefile0000644000175000017500000000170213431250607031404 0ustar brandonbrandon###### # # A Simple Makefile # ###### CCOPT=gcc ###### PATSHOMEQ="$(PATSHOME)" PATSCONTRIBQ="$(PATSCONTRIB)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### # CFLAGS := # CFLAGS += -I./../../.. # CFLAGS += $(shell xml2-config --cflags) # ###### LDFLAGS := LDFLAGS += $(shell xml2-config --libs) ###### all:: regress:: cleanall:: ###### all:: htmlParseDoc htmlParseDoc: htmlParseDoc.dats; \ $(PATSCC) -DATS_MEMALLOC_LIBC $(CFLAGS) -O2 -o $@ $< $(LDFLAGS) -latslib regress:: htmlParseDoc; ./$< cleanall:: ; $(RMF) htmlParseDoc ###### all:: htmlTreeWalk htmlTreeWalk: htmlTreeWalk.dats; $(PATSCC) $(CFLAGS) -O2 -o $@ $< $(LDFLAGS) regress:: htmlTreeWalk; ./$< cleanall:: ; $(RMF) htmlTreeWalk ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### cleanall:: clean ###### ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/TEST/htmlParseDoc.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/TEST/htmlParseDoc.d0000644000175000017500000000223313431250607032476 0ustar brandonbrandon(* ** Some testing code for libxml2 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) (* staload "./../SATS/xml0.sats" staload "./../SATS/tree.sats" staload "./../SATS/parser.sats" staload "./../SATS/HTMLparser.sats" *) (* ****** ****** *) // #include "./../mylibies.hats" // #staload $LIBXML2_xml0 #staload $LIBXML2_tree #staload $LIBXML2_parser #staload $LIBXML2_HTMLparser // (* ****** ****** *) implement main0((*void*)) = { // val filename = "DATA/atslangweb_home.html" // val- ~Some_vt(inp) = fileref_open_opt(filename, file_mode_r) val cs = fileref_get_file_charlst (inp) val str = string_make_list ($UN.castvwtp1{List0(charNZ)}(cs)) val () = list_vt_free (cs) val encoding = stropt_none((*void*)) // val doc = htmlParseDoc ($UN.castvwtp1{xmlString}(str), encoding) // val () = strnptr_free (str) // val () = assertloc (ptrcast (doc) > 0) // val () = println! ("The file [", filename, "] has been parsed successfully!") // val () = xmlFreeDoc (doc) // val () = xmlCleanupParser ((*void*)) // } (* end of [main0] *) (* ****** ****** *) (* end of [htmlParseDoc.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/TEST/DATA/0000755000175000017500000000000013431250607030455 5ustar brandonbrandon././@LongLink0000644000000000000000000000016000000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/TEST/DATA/atslangweb_home.htmlATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/TEST/DATA/atslangwe0000644000175000017500000002706313431250607032375 0ustar brandonbrandon The ATS Programming Language

About ATS


What is ATS?

ATS is a statically typed programming language that unifies implementation with formal specification. It is equipped with a highly expressive type system rooted in the framework Applied Type System, which gives the language its name. In particular, both dependent types and linear types are available in ATS.

The current implementation of ATS2 (ATS/Postiats) is written in ATS1 (ATS/Anairiats). ATS can be as efficient as C/C++ both time-wise and memory-wise (see The Computer Language Benchmarks Game for concrete evidence) and supports a variety of programming paradigms that include:

  • Functional programming. The core of ATS is a functional language based on eager (aka. call-by-value) evaluation, which can also accommodate lazy (aka. call-by-need) evaluation. The availability of linear types in ATS often makes functional programs written in it run not only with surprisingly high efficiency (when compared to C) but also with surprisingly small (memory) footprint (when compared to C as well).

  • Imperative programming. The novel and unique approach to imperative programming in ATS is firmly rooted in the paradigm of programming with theorem-proving. The type system of ATS allows many features considered dangerous in other languages (e.g., explicit pointer arithmetic and explicit memory allocation/deallocation) to be safely supported in ATS, making ATS a viable programming language for low-level systems programming.

  • Concurrent programming. ATS, equipped with a multicore-safe implementation of garbage collection, can support multithreaded programming through the use of pthreads. The availability of linear types for tracking and safely manipulating resources provides an effective means to constructing reliable programs that can take advantage of multicore architectures.

  • Modular programming. The module system of ATS is largely infuenced by that of Modula-3, which is both simple and general as well as effective in supporting large scale programming.

In addition, ATS contains a subsystem ATS/LF that supports a form of (interactive) theorem-proving, where proofs are constructed as total functions. With this component, ATS advocates a programmer-centric approach to program verification that combines programming with theorem-proving in a syntactically intertwined manner. Furthermore, this component can serve as a logical framework for encoding deduction systems and their (meta-)properties.


What is ATS good for?

  • ATS can enforce great precision in practical programming.

  • ATS allows the programmer to write efficient functional programs that directly manipulate native unboxed data representation.

  • ATS allows the programmer to reduce the memory footprint of a program by making use of linear types.

  • ATS allows the programmer to enhance the safety (and efficiency) of a program by making use of theorem-proving.

  • ATS allows the programmer to write safe low-level code that runs in OS kernels.

  • ATS can help teach type theory, demonstrating concretely the power and potential of types in constructing high-quality software.


Acknowledgments

The development of ATS has been funded in part by National Science Foundation (NSF) under the grants no. CCR-0081316/CCR-0224244, no. CCR-0092703/0229480, no. CNS-0202067, no. CCF-0702665 and no CCF-1018601. As always, any opinions, findings, and conclusions or recommendations expressed here are those of the author(s) and do not necessarily reflect the views of the NSF.

This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. SourceForge.net Logo
././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/TEST/htmlTreeWalk.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/TEST/htmlTreeWalk.d0000644000175000017500000000546513431250607032526 0ustar brandonbrandon(* ** Some testing code for libxml2 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // // #include "./../mylibies.hats" // #staload $LIBXML2_xml0 #staload $LIBXML2_tree #staload $LIBXML2_parser #staload $LIBXML2_HTMLparser // (* ****** ****** *) (* %{^ void treeWalk(xmlNode * a_node) { xmlNode *cur_node = NULL; xmlAttr *cur_attr = NULL; for (cur_node = a_node; cur_node != NULL; cur_node = cur_node->next) { fprintf(stdout, "Tag : %s\n", cur_node->name); for (cur_attr = cur_node->properties; cur_attr != NULL; cur_attr = cur_attr->next) { fprintf(stdout, " -> with attribute : %s\n", cur_attr->name); } treeWalk(cur_node->children); } } %} *) (* ****** ****** *) extern fun treeWalk (out: FILEref, !xmlNodePtr0): void implement treeWalk (out, node) = let // fun indent ( out: FILEref, n: int ) : void = if n > 0 then (fprint (out, ' '); indent (out, n-1)) // fun auxNode ( out: FILEref , node: !xmlNodePtr0 , nspace: int ) : void = let // val p_node = ptrcast (node) // in // if ( p_node > 0 ) then let val name = node.name() val () = indent (out, nspace) val () = fprintln! (out, "<", name, ">") // val (fpf | proplst) = node.properties() val () = auxAttr (out, proplst, nspace) prval () = minus_addback (fpf, proplst | node) // val (fpf | nodelst) = node.children() val () = auxNode (out, nodelst, nspace+2) prval () = minus_addback (fpf, nodelst | node) // val () = indent (out, nspace) val () = fprintln! (out, "") // val (fpf | node_next) = node.next() val () = auxNode (out, node_next, nspace) prval () = minus_addback (fpf, node_next | node) // in // nothing end else () // end of [if] // end // end of [auxNode] and auxAttr ( out: FILEref , attr: !xmlAttrPtr0 , nspace: int ) : void = let // val p_attr = ptrcast(attr) // in // if ( p_attr > 0 ) then let val name = attr.name() val () = indent (out, nspace) val () = fprintln! (out, " -> with attribute: ", name) val (fpf | attr2) = attr.next() val () = auxAttr (out, attr2, nspace) prval () = minus_addback (fpf, attr2 | attr) in // nothing end else () // end of [if] // end // end of [auxAttr] // in auxNode (out, node, 0) end // end of [treeWalk] (* ****** ****** *) implement main0 () = { // val filename = "DATA/atslangweb_home.html" val encoding = stropt_none((*void*)) // val doc = htmlParseFile(filename, encoding) // val ((*void*)) = assertloc(ptrcast(doc) > 0) // val () = println! ("The file [", filename, "] has been parsed successfully!") // val out = stdout_ref val (fpf | root) = xmlDocGetRootElement (doc) val () = treeWalk (out, root) prval ((*void*)) = minus_addback (fpf, root | doc) // val () = xmlFreeDoc (doc) // val () = xmlCleanupParser ((*void*)) // } (* end of [main0] *) (* ****** ****** *) (* end of [htmlParseFile.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/CATS/0000755000175000017500000000000013431250607027717 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/CATS/tree.cats0000644000175000017500000000701213431250607031532 0ustar brandonbrandon/* ** API for libxml2 in ATS */ /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Start Time: December, 2013 ** Authoremail: gmhwxiATgmailDOTcom */ /* ****** ****** */ #ifndef LIBXML2_TREE_CATS #define LIBXML2_TREE_CATS /* ****** ****** */ #include /* ****** ****** */ #define atscntrb_libxml2_xmlFreeDtd xmlFreeDtd #define atscntrb_libxml2_xmlFreeNs xmlFreeNs #define atscntrb_libxml2_xmlFreeNsList xmlFreeNsList #define atscntrb_libxml2_xmlFreeDoc xmlFreeDoc #define atscntrb_libxml2_xmlFreeNode xmlFreeNode #define atscntrb_libxml2_xmlFreeNodeList xmlFreeNodeList #define atscntrb_libxml2_xmlFreeProp xmlFreeProp #define atscntrb_libxml2_xmlFreePropList xmlFreePropList #define atscntrb_libxml2_xmlFreeURI xmlFreeURI /* ****** ****** */ // #define \ atscntrb_libxml2_xmlAttr_get_type(x) (((xmlAttrPtr)(x))->type) #define \ atscntrb_libxml2_xmlAttr_get_name(x) ((xmlChar*)(((xmlAttrPtr)(x))->name)) // #define atscntrb_libxml2_xmlAttr_get_next(x) (((xmlAttrPtr)(x))->next) #define atscntrb_libxml2_xmlAttr_get_prev(x) (((xmlAttrPtr)(x))->prev) #define atscntrb_libxml2_xmlAttr_get_parent(x) (((xmlAttrPtr)(x))->parent) #define atscntrb_libxml2_xmlAttr_get_children(x) (((xmlAttrPtr)(x))->children) #define atscntrb_libxml2_xmlAttr_get_last(x) (((xmlAttrPtr)(x))->last) // /* ****** ****** */ // #define atscntrb_libxml2_eq_xmlElementType_xmlElementType(x, y) (atspre_g0int_eq_int ((x), (y))) #define atscntrb_libxml2_neq_xmlElementType_xmlElementType(x, y) (atspre_g0int_neq_int ((x), (y))) // /* ****** ****** */ // #define \ atscntrb_libxml2_xmlNode_get_type(x) (((xmlNodePtr)(x))->type) #define \ atscntrb_libxml2_xmlNode_get_name(x) ((xmlChar*)(((xmlNodePtr)(x))->name)) // #define atscntrb_libxml2_xmlNode_get_next(x) (((xmlNodePtr)(x))->next) #define atscntrb_libxml2_xmlNode_get_prev(x) (((xmlNodePtr)(x))->prev) #define atscntrb_libxml2_xmlNode_get_parent(x) (((xmlNodePtr)(x))->parent) #define atscntrb_libxml2_xmlNode_get_children(x) (((xmlNodePtr)(x))->children) #define atscntrb_libxml2_xmlNode_get_last(x) (((xmlNodePtr)(x))->last) // #define atscntrb_libxml2_xmlNode_get_doc(x) (((xmlNodePtr)(x))->doc) #define atscntrb_libxml2_xmlNode_get_ns(x) (((xmlNodePtr)(x))->ns) #define atscntrb_libxml2_xmlNode_get_nsDef(x) (((xmlNodePtr)(x))->nsDef) #define atscntrb_libxml2_xmlNode_get_content(x) (((xmlNodePtr)(x))->content) #define atscntrb_libxml2_xmlNode_get_properties(x) (((xmlNodePtr)(x))->properties) // /* ****** ****** */ #define atscntrb_libxml2_xmlDocGetRootElement xmlDocGetRootElement /* ****** ****** */ #define atscntrb_libxml2_xmlNodeGetContent xmlNodeGetContent #define atscntrb_libxml2_xmlNodeListGetString xmlNodeListGetString #define atscntrb_libxml2_xmlGetProp xmlGetProp /* ****** ****** */ #endif // ifndef LIBXML2_TREE_CATS /* ****** ****** */ /* end of [tree.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/CATS/parser.cats0000644000175000017500000000237013431250607032071 0ustar brandonbrandon/* ** API for libxml2 in ATS */ /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Start Time: December, 2013 ** Authoremail: gmhwxiATgmailDOTcom */ /* ****** ****** */ #ifndef LIBXML2_PARSER_CATS #define LIBXML2_PARSER_CATS /* ****** ****** */ #include /* ****** ****** */ #define atscntrb_libxml2_xmlInitParser xmlInitParser #define atscntrb_libxml2_xmlCleanupParser xmlCleanupParser /* ****** ****** */ #endif // ifndef LIBXML2_PARSER_CATS /* ****** ****** */ /* end of [parser.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/CATS/xpath.cats0000644000175000017500000000310513431250607031716 0ustar brandonbrandon/* ** API for libxml2 in ATS */ /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Start Time: December, 2013 ** Authoremail: gmhwxiATgmailDOTcom */ /* ****** ****** */ #ifndef LIBXML2_XPATH_CATS #define LIBXML2_XPATH_CATS /* ****** ****** */ #include /* ****** ****** */ #define \ atscntrb_libxml2_xmlXPathConvertNumber xmlXPathConvertNumber #define \ atscntrb_libxml2_xmlXPathConvertString xmlXPathConvertString #define \ atscntrb_libxml2_xmlXPathConvertBoolean xmlXPathConvertBoolean /* ****** ****** */ #define atscntrb_libxml2_xmlXPathFreeObject xmlXPathFreeObject /* ****** ****** */ #define atscntrb_libxml2_xmlXPathNewContext xmlXPathNewContext #define atscntrb_libxml2_xmlXPathFreeContext xmlXPathFreeContext /* ****** ****** */ #endif // ifndef LIBXML2_XPATH_CATS /* ****** ****** */ /* end of [xpath.cats] */ ././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/CATS/HTMLparser.catsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/CATS/HTMLparser.cat0000644000175000017500000000253113431250607032372 0ustar brandonbrandon/* ** API for libxml2 in ATS */ /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Start Time: December, 2013 ** Authoremail: gmhwxiATgmailDOTcom */ /* ****** ****** */ #ifndef LIBXML2_HTMLPARSER_CATS #define LIBXML2_HTMLPARSER_CATS /* ****** ****** */ #include /* ****** ****** */ #define \ atscntrb_libxml2_htmlNewParserCtxt htmlNewParserCtxt /* ****** ****** */ #define atscntrb_libxml2_htmlParseDoc htmlParseDoc #define atscntrb_libxml2_htmlParseFile htmlParseFile /* ****** ****** */ #endif // ifndef LIBXML2_HTMLPARSER_CATS /* ****** ****** */ /* end of [HTMLparser.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/CATS/xml0.cats0000644000175000017500000000221013431250607031446 0ustar brandonbrandon/* ** API for libxml2 in ATS */ /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Start Time: December, 2013 ** Authoremail: gmhwxiATgmailDOTcom */ /* ****** ****** */ #ifndef LIBXML2_XML0_CATS #define LIBXML2_XML0_CATS /* ****** ****** */ #define atscntrb_libxml2_xmlFreeStrptr(str) xmlFree(str) /* ****** ****** */ #endif // ifndef LIBXML2_XML0_CATS /* ****** ****** */ /* end of [xml0.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/SATS/0000755000175000017500000000000013431250607027737 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/SATS/parser.sats0000644000175000017500000000572313431250607032136 0ustar brandonbrandon(* ** API for libxml2 in ATS *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: August, 2013 *) (* ****** ****** *) %{# #include \ "atscntrb-hx-libxml2/libxml/CATS/parser.cats" %} // end of [%{#] (* ****** ****** *) #define ATS_PACKNAME "ATSCNTRB.libxml2" #define ATS_STALOADFLAG 0 // no need for staloading at run-time #define ATS_EXTERN_PREFIX "atscntrb_libxml2_" // prefix for external names (* ****** ****** *) // staload "./xml0.sats" // (* ****** ****** *) staload "./tree.sats" (* ****** ****** *) absvtype xmlParserCtxtPtr(l:addr) = ptr (l) vtypedef xmlParserCtxtPtr0 = [l:agez] xmlParserCtxtPtr(l) vtypedef xmlParserCtxtPtr1 = [l:addr | l > null] xmlParserCtxtPtr(l) castfn xmlParserCtxtPtr2ptr : {l:addr} (!xmlParserCtxtPtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlParserInputPtr(l:addr) = ptr (l) vtypedef xmlParserInputPtr0 = [l:agez] xmlParserInputPtr(l) vtypedef xmlParserInputPtr1 = [l:addr | l > null] xmlParserInputPtr(l) castfn xmlParserInputPtr2ptr : {l:addr} (!xmlParserInputPtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlSAXHandlerPtr(l:addr) = ptr (l) vtypedef xmlSAXHandlerPtr = [l:agez] xmlSAXHandlerPtr(l) vtypedef xmlSAXHandlerPtr1 = [l:addr | l > null] xmlSAXHandlerPtr(l) castfn xmlSAXHandlerPtr2ptr : {l:addr} (!xmlSAXHandlerPtr(l)) -<> ptr(l) (* ****** ****** *) overload ptrcast with xmlParserCtxtPtr2ptr overload ptrcast with xmlParserInputPtr2ptr overload ptrcast with xmlSAXHandlerPtr2ptr (* ****** ****** *) /* void xmlInitParser (void); */ fun xmlInitParser((*void*)): void = "mac#%" (* ****** ****** *) /* void xmlCleanupParser (void); */ fun xmlCleanupParser((*void*)): void = "mac#%" (* ****** ****** *) /* xmlDocPtr xmlParseDoc (const xmlChar *cur); */ fun xmlParseDoc (cur: !xmlStrptr1): xmlDocPtr0 = "mac#%" // end of [xmlParseDoc] (* ****** ****** *) /* xmlDocPtr xmlParseFile (const char *filename); */ fun xmlParseFile (filename: string): xmlDocPtr0 = "mac#%" // end of [xmlParseFile] (* ****** ****** *) /* xmlDocPtr xmlParseMemory (const char *buffer, int size); */ fun xmlParseMemory{n:int} (buf: &RD(array(char, n)), size: int (n)): xmlDocPtr0 = "mac#%" // end of [xmlParseMemory] (* ****** ****** *) (* end of [parser.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/SATS/xml0.sats0000644000175000017500000000423013431250607031512 0ustar brandonbrandon(* ** API for libxml2 in ATS *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: August, 2013 *) (* ****** ****** *) %{# // #include \ "atscntrb-hx-libxml2/libxml/CATS/xml0.cats" // %} // end of [%{#] (* ****** ****** *) abst@ype xmlChar = $extype"xmlChar" (* ****** ****** *) abstype xmlString = string // xmlChar* (* ****** ****** *) castfn xmlString2string (xmlString):<> string castfn string2xmlString (str: string):<> xmlString (* ****** ****** *) // fun{} fprint_xmlString (FILEref, xmlString): void overload fprint with fprint_xmlString // (* ****** ****** *) absvtype xmlStrptr(l:addr) = ptr(l) // xmlChar* vtypedef xmlStrptr0 = [l:agez] xmlStrptr(l) vtypedef xmlStrptr1 = [l:addr | l > null] xmlStrptr(l) (* ****** ****** *) castfn xmlStrptr2ptr {l:addr} (!xmlStrptr(l)):<> ptr(l) (* ****** ****** *) castfn xmlStrptr2strptr{l:addr} (xmlStrptr(l)):<> strptr(l) (* castfn strptr2xmlStrptr{l:addr} (str: strptr(l)):<> xmlStrptr(l) castfn strnptr2xmlStrptr{l:addr}{n:int} (str: strnptr(l,n)):<> xmlStrptr(l) *) (* ****** ****** *) overload ptrcast with xmlStrptr2ptr (* ****** ****** *) fun xmlFreeStrptr (xmlStrptr0): void = "mac#%" (* ****** ****** *) symintr __name symintr __type symintr __ns _doc symintr __next symintr __prev symintr __parent symintr __children symintr __last symintr __content symintr __properties (* ****** ****** *) (* end of [xml0.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/SATS/xpath.sats0000644000175000017500000001473413431250607031770 0ustar brandonbrandon(* ** API for libxml2 in ATS *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: December, 2013 *) (* ****** ****** *) %{# #include \ "atscntrb-hx-libxml2/libxml/CATS/xpath.cats" %} // end of [%{#] (* ****** ****** *) #define ATS_PACKNAME "ATSCNTRB.libxml2" #define ATS_STALOADFLAG 0 // no need for staloading at run-time #define ATS_EXTERN_PREFIX "atscntrb_libxml2_" // prefix for external names (* ****** ****** *) // staload "./xml0.sats" // (* ****** ****** *) staload "./tree.sats" (* ****** ****** *) absvtype xmlNodeSetPtr(l:addr) = ptr (l) vtypedef xmlNodeSetPtr0 = [l:agez] xmlNodeSetPtr(l) vtypedef xmlNodeSetPtr1 = [l:addr | l > null] xmlNodeSetPtr(l) castfn xmlNodeSetPtr2ptr : {l:addr} (!xmlNodeSetPtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlXPathAxisPtr(l:addr) = ptr (l) vtypedef xmlXPathAxisPtr0 = [l:agez] xmlXPathAxisPtr(l) vtypedef xmlXPathAxisPtr1 = [l:addr | l > null] xmlXPathAxisPtr(l) castfn xmlXPathAxisPtr2ptr : {l:addr} (!xmlXPathAxisPtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlXPathCompExprPtr(l:addr) = ptr (l) vtypedef xmlXPathCompExprPtr0 = [l:agez] xmlXPathCompExprPtr(l) vtypedef xmlXPathCompExprPtr1 = [l:addr | l > null] xmlXPathCompExprPtr(l) castfn xmlXPathCompExprPtr2ptr : {l:addr} (!xmlXPathCompExprPtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlXPathContextPtr(l:addr) = ptr (l) vtypedef xmlXPathContextPtr0 = [l:agez] xmlXPathContextPtr(l) vtypedef xmlXPathContextPtr1 = [l:addr | l > null] xmlXPathContextPtr(l) castfn xmlXPathContextPtr2ptr : {l:addr} (!xmlXPathContextPtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlXPathFuncPtr(l:addr) = ptr (l) vtypedef xmlXPathFuncPtr0 = [l:agez] xmlXPathFuncPtr(l) vtypedef xmlXPathFuncPtr1 = [l:addr | l > null] xmlXPathFuncPtr(l) castfn xmlXPathFuncPtr2ptr : {l:addr} (!xmlXPathFuncPtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlXPathObjectPtr(l:addr) = ptr (l) vtypedef xmlXPathObjectPtr0 = [l:agez] xmlXPathObjectPtr(l) vtypedef xmlXPathObjectPtr1 = [l:addr | l > null] xmlXPathObjectPtr(l) castfn xmlXPathObjectPtr2ptr : {l:addr} (!xmlXPathObjectPtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlXPathParserContextPtr(l:addr) = ptr (l) vtypedef xmlXPathParserContextPtr0 = [l:agez] xmlXPathParserContextPtr(l) vtypedef xmlXPathParserContextPtr1 = [l:addr | l > null] xmlXPathParserContextPtr(l) castfn xmlXPathParserContextPtr2ptr : {l:addr} (!xmlXPathParserContextPtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlXPathTypePtr(l:addr) = ptr (l) vtypedef xmlXPathTypePtr0 = [l:agez] xmlXPathTypePtr(l) vtypedef xmlXPathTypePtr1 = [l:addr | l > null] xmlXPathTypePtr(l) castfn xmlXPathTypePtr2ptr : {l:addr} (!xmlXPathTypePtr(l)) -<> ptr(l) (* ****** ****** *) absvtype xmlXPathVariablePtr(l:addr) = ptr (l) vtypedef xmlXPathVariablePtr0 = [l:agez] xmlXPathVariablePtr(l) vtypedef xmlXPathVariablePtr1 = [l:addr | l > null] xmlXPathVariablePtr(l) castfn xmlXPathVariablePtr2ptr : {l:addr} (!xmlXPathVariablePtr(l)) -<> ptr(l) (* ****** ****** *) // abst@ype xmlXPathError = int // macdef XPATH_EXPRESSION_OK = $extval(xmlXPathError, "XPATH_EXPRESSION_OK") macdef XPATH_NUMBER_ERROR = $extval(xmlXPathError, "XPATH_NUMBER_ERROR") macdef XPATH_UNFINISHED_LITERAL_ERROR = $extval(xmlXPathError, "XPATH_UNFINISHED_LITERAL_ERROR") macdef XPATH_START_LITERAL_ERROR = $extval(xmlXPathError, "XPATH_START_LITERAL_ERROR") macdef XPATH_VARIABLE_REF_ERROR = $extval(xmlXPathError, "XPATH_VARIABLE_REF_ERROR") macdef XPATH_UNDEF_VARIABLE_ERROR = $extval(xmlXPathError, "XPATH_UNDEF_VARIABLE_ERROR") macdef XPATH_INVALID_PREDICATE_ERROR = $extval(xmlXPathError, "XPATH_INVALID_PREDICATE_ERROR") macdef XPATH_EXPR_ERROR = $extval(xmlXPathError, "XPATH_EXPR_ERROR") macdef XPATH_UNCLOSED_ERROR = $extval(xmlXPathError, "XPATH_UNCLOSED_ERROR") macdef XPATH_UNKNOWN_FUNC_ERROR = $extval(xmlXPathError, "XPATH_UNKNOWN_FUNC_ERROR") macdef XPATH_INVALID_OPERAND = $extval(xmlXPathError, "XPATH_INVALID_OPERAND") macdef XPATH_INVALID_TYPE = $extval(xmlXPathError, "XPATH_INVALID_TYPE") macdef XPATH_INVALID_ARITY = $extval(xmlXPathError, "XPATH_INVALID_ARITY") macdef XPATH_INVALID_CTXT_SIZE = $extval(xmlXPathError, "XPATH_INVALID_CTXT_SIZE") macdef XPATH_INVALID_CTXT_POSITION = $extval(xmlXPathError, "XPATH_INVALID_CTXT_POSITION") macdef XPATH_MEMORY_ERROR = $extval(xmlXPathError, "XPATH_MEMORY_ERROR") macdef XPTR_SYNTAX_ERROR = $extval(xmlXPathError, "XPTR_SYNTAX_ERROR") macdef XPTR_RESOURCE_ERROR = $extval(xmlXPathError, "XPTR_RESOURCE_ERROR") macdef XPTR_SUB_RESOURCE_ERROR = $extval(xmlXPathError, "XPTR_SUB_RESOURCE_ERROR") macdef XPATH_UNDEF_PREFIX_ERROR = $extval(xmlXPathError, "XPATH_UNDEF_PREFIX_ERROR") macdef XPATH_ENCODING_ERROR = $extval(xmlXPathError, "XPATH_ENCODING_ERROR") macdef XPATH_INVALID_CHAR_ERROR = $extval(xmlXPathError, "XPATH_INVALID_CHAR_ERROR") macdef XPATH_INVALID_CTXT = $extval(xmlXPathError, "XPATH_INVALID_CTXT") macdef XPATH_STACK_ERROR = $extval(xmlXPathError, "XPATH_STACK_ERROR") macdef XPATH_FORBID_VARIABLE_ERROR = $extval(xmlXPathError, "XPATH_FORBID_VARIABLE_ERROR") // (* ****** ****** *) /* xmlXPathObjectPtr xmlXPathConvertNumber (xmlXPathObjectPtr val); xmlXPathObjectPtr xmlXPathConvertString (xmlXPathObjectPtr val); xmlXPathObjectPtr xmlXPathConvertBoolean (xmlXPathObjectPtr val); */ (* ****** ****** *) fun xmlXPathConvertNumber (!xmlXPathObjectPtr0): xmlXPathObjectPtr0 = "mac#" fun xmlXPathConvertString (!xmlXPathObjectPtr0): xmlXPathObjectPtr0 = "mac#" fun xmlXPathConvertBoolean (!xmlXPathObjectPtr0): xmlXPathObjectPtr0 = "mac#" (* ****** ****** *) fun xmlXPathFreeObject (xmlXPathObjectPtr0): void = "mac#%" (* ****** ****** *) fun xmlXPathNewContext (doc: !xmlDocPtr1): xmlXPathContextPtr0 = "mac#%" fun xmlXPathFreeContext (xmlXPathContextPtr0): void = "mac#%" (* ****** ****** *) (* end of [xpath.sats] *) ././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/SATS/HTMLparser.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/SATS/HTMLparser.sat0000644000175000017500000000726213431250607032440 0ustar brandonbrandon(* ** API for libxml2 in ATS *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: August, 2013 *) (* ****** ****** *) %{# #include \ "atscntrb-hx-libxml2/libxml/CATS/HTMLparser.cats" %} // end of [%{#] (* ****** ****** *) #define ATS_PACKNAME "ATSCNTRB.libxml2" #define ATS_STALOADFLAG 0 // no need for staloading at run-time #define ATS_EXTERN_PREFIX "atscntrb_libxml2_" // prefix for external names (* ****** ****** *) // staload "./xml0.sats" // (* ****** ****** *) staload "./tree.sats" staload "./parser.sats" (* ****** ****** *) stadef htmlDocPtr = xmlDocPtr stadef htmlDocPtr0 = xmlDocPtr0 stadef htmlDocPtr1 = xmlDocPtr1 (* ****** ****** *) stadef htmlNodePtr = xmlNodePtr stadef htmlNodePtr0 = xmlNodePtr0 stadef htmlNodePtr1 = xmlNodePtr1 (* ****** ****** *) stadef htmlParserCtxtPtr = xmlParserCtxtPtr stadef htmlParserCtxtPtr0 = xmlParserCtxtPtr0 stadef htmlParserCtxtPtr1 = xmlParserCtxtPtr1 (* ****** ****** *) stadef htmlParserInputPtr = xmlParserInputPtr stadef htmlParserInputPtr0 = xmlParserInputPtr0 stadef htmlParserInputPtr1 = xmlParserInputPtr1 (* ****** ****** *) // abst@ype htmlParserOption = uint // macdef HTML_PARSE_RECOVER = $extval(htmlParserOption, "HTML_PARSE_RECOVER") macdef HTML_PARSE_NODEFDTD = $extval(htmlParserOption, "HTML_PARSE_NODEFDTD") macdef HTML_PARSE_NOERROR = $extval(htmlParserOption, "HTML_PARSE_NOERROR") macdef HTML_PARSE_NOWARNING = $extval(htmlParserOption, "HTML_PARSE_NOWARNING") macdef HTML_PARSE_PEDANTIC = $extval(htmlParserOption, "HTML_PARSE_PEDANTIC") macdef HTML_PARSE_NOBLANKS = $extval(htmlParserOption, "HTML_PARSE_NOBLANKS") macdef HTML_PARSE_NONET = $extval(htmlParserOption, "HTML_PARSE_NONET") macdef HTML_PARSE_NOIMPLIED = $extval(htmlParserOption, "HTML_PARSE_NOIMPLIED") macdef HTML_PARSE_COMPACT = $extval(htmlParserOption, "HTML_PARSE_COMPACT") macdef HTML_PARSE_IGNORE_ENC = $extval(htmlParserOption, "HTML_PARSE_IGNORE_ENC") // (* ****** ****** *) // abst@ype htmlStatus = int // macdef HTML_NA = $extval(htmlStatus, "HTML_NA") macdef HTML_INVALID = $extval(htmlStatus, "HTML_INVALID") macdef HTML_DEPRECATED = $extval(htmlStatus, "HTML_DEPRECATED") macdef HTML_VALID = $extval(htmlStatus, "HTML_VALID") macdef HTML_REQUIRED = $extval(htmlStatus, "HTML_REQUIRED") // (* ****** ****** *) /* htmlParserCtxtPtr htmlNewParserCtxt(void); */ fun htmlNewParserCtxt (): htmlParserCtxtPtr0 = "mac#%" (* ****** ****** *) fun htmlParserCtxtPtr_get1_myDoc {l:agz} (!htmlParserCtxtPtr(l)): xmlDocPtr0 = "mac#%" // end of [htmlParserCtxtPtr_get1_myDoc] (* ****** ****** *) /* htmlDocPtr htmlParseDoc (xmlChar *cur, const char *encoding) ; */ fun htmlParseDoc (xmlString, stropt(*encoding*)): htmlDocPtr0 = "mac#%" // end of [htmlParseDoc] (* ****** ****** *) /* htmlDocPtr htmlParseFile (const char * filename, const char * encoding) */ fun htmlParseFile (filename: string, encoding: stropt): htmlDocPtr0 = "mac#%" (* ****** ****** *) (* end of [HTMLparser.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/libxml/SATS/tree.sats0000644000175000017500000003034013431250607031572 0ustar brandonbrandon(* ** API for libxml2 in ATS *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: December, 2013 *) (* ****** ****** *) %{# #include \ "atscntrb-hx-libxml2/libxml/CATS/tree.cats" %} // end of [%{#] (* ****** ****** *) #define ATS_PACKNAME "ATSCNTRB.libxml2" #define ATS_STALOADFLAG 0 // no need for staloading at run-time #define ATS_EXTERN_PREFIX "atscntrb_libxml2_" // prefix for external names (* ****** ****** *) staload "./xml0.sats" (* ****** ****** *) // abst@ype xmlElementType = int // macdef XML_PI_NODE = $extval(xmlElementType, "XML_PI_NODE") macdef XML_DTD_NODE = $extval(xmlElementType, "XML_DTD_NODE") macdef XML_TEXT_NODE = $extval(xmlElementType, "XML_TEXT_NODE") macdef XML_ELEMENT_NODE = $extval(xmlElementType, "XML_ELEMENT_NODE") macdef XML_ATTRIBUTE_NODE = $extval(xmlElementType, "XML_ATTRIBUTE_NODE") macdef XML_CDATA_SECTION_NODE = $extval(xmlElementType, "XML_CDATA_SECTION_NODE") macdef XML_ENTITY_REF_NODE = $extval(xmlElementType, "XML_ENTITY_REF_NODE") macdef XML_ENTITY_NODE = $extval(xmlElementType, "XML_ENTITY_NODE") macdef XML_COMMENT_NODE = $extval(xmlElementType, "XML_COMMENT_NODE") macdef XML_DOCUMENT_NODE = $extval(xmlElementType, "XML_DOCUMENT_NODE") macdef XML_DOCUMENT_TYPE_NODE = $extval(xmlElementType, "XML_DOCUMENT_TYPE_NODE") macdef XML_DOCUMENT_FRAG_NODE = $extval(xmlElementType, "XML_DOCUMENT_FRAG_NODE") macdef XML_NOTATION_NODE = $extval(xmlElementType, "XML_NOTATION_NODE") macdef XML_HTML_DOCUMENT_NODE = $extval(xmlElementType, "XML_HTML_DOCUMENT_NODE") macdef XML_ENTITY_DECL = $extval(xmlElementType, "XML_ENTITY_DECL") macdef XML_ELEMENT_DECL = $extval(xmlElementType, "XML_ELEMENT_DECL") macdef XML_ATTRIBUTE_DECL = $extval(xmlElementType, "XML_ATTRIBUTE_DECL") macdef XML_NAMESPACE_DECL = $extval(xmlElementType, "XML_NAMESPACE_DECL") macdef XML_XINCLUDE_START = $extval(xmlElementType, "XML_XINCLUDE_START") macdef XML_XINCLUDE_END = $extval(xmlElementType, "XML_XINCLUDE_END") macdef XML_DOCB_DOCUMENT_NODE = $extval(xmlElementType, "XML_DOCB_DOCUMENT_NODE") // (* ****** ****** *) // abst@ype xmlAttributeType = int // macdef XML_ATTRIBUTE_ID = $extval(xmlAttributeType, "XML_ATTRIBUTE_ID") macdef XML_ATTRIBUTE_CDATA = $extval(xmlAttributeType, "XML_ATTRIBUTE_CDATA") macdef XML_ATTRIBUTE_IDREF = $extval(xmlAttributeType, "XML_ATTRIBUTE_IDREF") macdef XML_ATTRIBUTE_IDREFS = $extval(xmlAttributeType, "XML_ATTRIBUTE_IDREFS") macdef XML_ATTRIBUTE_ENTITY = $extval(xmlAttributeType, "XML_ATTRIBUTE_ENTITY") macdef XML_ATTRIBUTE_ENTITIES = $extval(xmlAttributeType, "XML_ATTRIBUTE_ENTITIES") macdef XML_ATTRIBUTE_NMTOKEN = $extval(xmlAttributeType, "XML_ATTRIBUTE_NMTOKEN") macdef XML_ATTRIBUTE_NMTOKENS = $extval(xmlAttributeType, "XML_ATTRIBUTE_NMTOKENS") macdef XML_ATTRIBUTE_ENUMERATION = $extval(xmlAttributeType, "XML_ATTRIBUTE_ENUMERATION") macdef XML_ATTRIBUTE_NOTATION = $extval(xmlAttributeType, "XML_ATTRIBUTE_NOTATION") // (* ****** ****** *) // abst@ype xmlAttributeDefault = int // macdef XML_ATTRIBUTE_NONE = $extval(xmlAttributeDefault, "XML_ATTRIBUTE_NONE") macdef XML_ATTRIBUTE_IMPLIED = $extval(xmlAttributeDefault, "XML_ATTRIBUTE_IMPLIED") macdef XML_ATTRIBUTE_REQUIRED = $extval(xmlAttributeDefault, "XML_ATTRIBUTE_REQUIRED") macdef XML_ATTRIBUTE_FIXED = $extval(xmlAttributeDefault, "XML_ATTRIBUTE_FIXED") // (* ****** ****** *) // absvtype xmlElementPtr(l:addr) = ptr(l) // castfn xmlElementPtr2ptr : {l:addr} (!xmlElementPtr(l)) -<> ptr(l) // vtypedef xmlElementPtr0 = [l:agez] xmlElementPtr(l) vtypedef xmlElementPtr1 = [l:addr | l > null] xmlElementPtr(l) // (* ****** ****** *) // typedef xmlNsType = xmlElementType // absvtype xmlNsPtr(l:addr) = ptr(l) // xmlNsPtr // castfn xmlNsPtr2ptr : {l:addr} (!xmlNsPtr(l)) -<> ptr(l) // vtypedef xmlNsPtr0 = [l:agez] xmlNsPtr(l) vtypedef xmlNsPtr1 = [l:addr | l > null] xmlNsPtr(l) // (* ****** ****** *) // absvtype xmlDtdPtr(l:addr) = ptr(l) // xmlDtdPtr // castfn xmlDtdPtr2ptr : {l:addr} (!xmlDtdPtr(l)) -<> ptr(l) // vtypedef xmlDtdPtr0 = [l:agez] xmlDtdPtr(l) vtypedef xmlDtdPtr1 = [l:addr | l > null] xmlDtdPtr(l) // (* ****** ****** *) // absvtype xmlAttrPtr(l:addr) = ptr(l) // xmlAttrPtr // castfn xmlAttrPtr2ptr : {l:addr} (!xmlAttrPtr(l)) -<> ptr(l) // vtypedef xmlAttrPtr0 = [l:agez] xmlAttrPtr(l) vtypedef xmlAttrPtr1 = [l:addr | l > null] xmlAttrPtr(l) // (* ****** ****** *) // absvtype xmlDocPtr(l:addr) = ptr(l) // xmlDocPtr // castfn xmlDocPtr2ptr : {l:addr} (!xmlDocPtr(l)) -<> ptr(l) // vtypedef xmlDocPtr0 = [l:agez] xmlDocPtr(l) vtypedef xmlDocPtr1 = [l:addr | l > null] xmlDocPtr(l) // (* ****** ****** *) // absvtype xmlNodePtr(l:addr) = ptr(l) // xmlNodePtr // castfn xmlNodePtr2ptr : {l:addr} (!xmlNodePtr(l)) -<> ptr(l) // vtypedef xmlNodePtr0 = [l:agez] xmlNodePtr(l) vtypedef xmlNodePtr1 = [l:addr | l > null] xmlNodePtr(l) // (* ****** ****** *) // overload ptrcast with xmlElementPtr2ptr // overload ptrcast with xmlNsPtr2ptr // namespace // overload ptrcast with xmlDtdPtr2ptr // overload ptrcast with xmlDocPtr2ptr // overload ptrcast with xmlAttrPtr2ptr // overload ptrcast with xmlNodePtr2ptr // (* ****** ****** *) /* void xmlFreeAttr (xmlAttrPtr cur) */ fun xmlFreeAttr (cur: xmlAttrPtr0): void = "mac#%" (* ****** ****** *) /* void xmlFreeDoc (xmlDocPtr cur) */ fun xmlFreeDoc (cur: xmlDocPtr0): void = "mac#%" (* ****** ****** *) /* void xmlFreeNode (xmlNodePtr cur) */ fun xmlFreeNode (cur: xmlNodePtr0): void = "mac#%" (* ****** ****** *) (* struct _xmlAttr { void *_private; /* application data */ xmlElementType type; /* XML_ATTRIBUTE_NODE, must be second ! */ const xmlChar *name; /* the name of the property */ struct _xmlNode *children; /* the value of the property */ struct _xmlNode *last; /* NULL */ struct _xmlNode *parent; /* child->parent link */ struct _xmlAttr *next; /* next sibling link */ struct _xmlAttr *prev; /* previous sibling link */ struct _xmlDoc *doc; /* the containing document */ xmlNs *ns; /* pointer to the associated namespace */ xmlAttributeType atype; /* the attribute type if validating */ void *psvi; /* for type/PSVI informations */ }; *) (* ****** ****** *) fun xmlAttr_get_name {l1:agz} (node: !xmlAttrPtr(l1)): xmlString = "mac#%" fun xmlAttr_get_type {l1:agz} (node: !xmlAttrPtr(l1)): xmlElementType = "mac#%" (* ****** ****** *) // fun xmlAttr_get_next {l1:agz} (node: !xmlAttrPtr(l1)) : [l2:agez] vtget1(xmlAttrPtr(l1), xmlAttrPtr(l2)) = "mac#%" fun xmlAttr_get_prev {l1:agz} (node: !xmlAttrPtr(l1)) : [l2:agez] vtget1(xmlAttrPtr(l1), xmlAttrPtr(l2)) = "mac#%" // (* ****** ****** *) // fun xmlAttr_get_parent {l1:agz} (node: !xmlAttrPtr(l1)) : [l2:agez] vtget1(xmlAttrPtr(l1), xmlNodePtr(l2)) = "mac#%" fun xmlAttr_get_children {l1:agz} (node: !xmlAttrPtr(l1)) : [l2:agez] vtget1(xmlAttrPtr(l1), xmlNodePtr(l2)) = "mac#%" fun xmlAttr_get_last {l1:agz} (node: !xmlAttrPtr(l1)) : [l2:agez] vtget1(xmlAttrPtr(l1), xmlNodePtr(l2)) = "mac#%" // (* ****** ****** *) fun xmlAttr_get_doc {l1:agz} (node: !xmlAttrPtr(l1)) : [l2:agez] vtget1(xmlAttrPtr(l1), xmlDocPtr(l2)) = "mac#%" (* ****** ****** *) // fun xmlAttr_get_ns {l1:agz} (node: !xmlAttrPtr(l1)) : [l2:agez] vtget1(xmlAttrPtr(l1), xmlNsPtr(l2)) = "mac#%" // (* ****** ****** *) fun xmlAttr_get_atype {l1:agz} (node: !xmlAttrPtr(l1)): xmlAttributeType = "mac#%" (* ****** ****** *) overload .name with xmlAttr_get_name overload .type with xmlAttr_get_type overload .next with xmlAttr_get_next overload .prev with xmlAttr_get_prev overload .parent with xmlAttr_get_parent overload .children with xmlAttr_get_children overload .last with xmlAttr_get_last (* ****** ****** *) // fun eq_xmlElementType_xmlElementType ( xmlElementType , xmlElementType ): bool = "mac#%" overload = with eq_xmlElementType_xmlElementType // fun neq_xmlElementType_xmlElementType ( xmlElementType , xmlElementType ): bool = "mac#%" overload <> with neq_xmlElementType_xmlElementType // (* ****** ****** *) (* struct _xmlNode { void *_private; /* application data */ xmlElementType type; /* type number, must be second ! */ const xmlChar *name; /* the name of the node, or the entity */ struct _xmlNode *children; /* parent->childs link */ struct _xmlNode *last; /* last child link */ struct _xmlNode *parent; /* child->parent link */ struct _xmlNode *next; /* next sibling link */ struct _xmlNode *prev; /* previous sibling link */ struct _xmlDoc *doc; /* the containing document */ /* End of common part */ xmlNs *ns; /* pointer to the associated namespace */ xmlChar *content; /* the content */ struct _xmlAttr *properties;/* properties list */ xmlNs *nsDef; /* namespace definitions on this node */ void *psvi; /* for type/PSVI informations */ unsigned short line; /* line number */ unsigned short extra; /* extra data for XPath/XSLT */ }; *) (* ****** ****** *) fun xmlNode_get_name {l1:agz} (node: !xmlNodePtr(l1)): xmlString = "mac#%" fun xmlNode_get_type {l1:agz} (node: !xmlNodePtr(l1)): xmlElementType = "mac#%" (* ****** ****** *) fun xmlNode_get_next {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlNodePtr(l2)) = "mac#%" fun xmlNode_get_prev {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlNodePtr(l2)) = "mac#%" fun xmlNode_get_parent {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlNodePtr(l2)) = "mac#%" fun xmlNode_get_children {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlNodePtr(l2)) = "mac#%" fun xmlNode_get_last {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlNodePtr(l2)) = "mac#%" (* ****** ****** *) (* fun xmlNode_get_doc {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlDocPtr(l2)) = "mac#%" *) (* ****** ****** *) (* fun xmlNode_get_ns {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlNsPtr(l2)) = "mac#%" fun xmlNode_get_nsDef {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlNsPtr(l2)) = "mac#%" *) (* ****** ****** *) fun xmlNode_get_content {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlStrptr(l2)) = "mac#%" fun xmlNode_get_properties {l1:agz} (node: !xmlNodePtr(l1)) : [l2:agez] vtget1(xmlNodePtr(l1), xmlAttrPtr(l2)) = "mac#%" (* ****** ****** *) overload .name with xmlNode_get_name overload .type with xmlNode_get_type overload .next with xmlNode_get_next overload .prev with xmlNode_get_prev overload .parent with xmlNode_get_parent overload .children with xmlNode_get_children overload .last with xmlNode_get_last overload .content with xmlNode_get_content overload .properties with xmlNode_get_properties (* ****** ****** *) // /* xmlNodePtr xmlDocGetRootElement (xmlDocPtr doc); */ fun xmlDocGetRootElement {l1:agz} (doc: !xmlDocPtr(l1)) : [l2:agez] vtget1(xmlDocPtr(l1), xmlNodePtr(l2)) = "mac#%" // (* ****** ****** *) /* xmlChar* xmlNodeGetContent (const xmlNodePtr1 cur); */ fun xmlNodeGetContent (cur: !xmlNodePtr1): xmlStrptr0 = "mac#%" (* ****** ****** *) /* xmlChar* xmlNodeListGetString (xmlDocPtr doc, xmlNodePtr list, int inLine); */ fun xmlNodeListGetString ( doc: !xmlDocPtr1, list: !xmlNodePtr0, inLine: int ) : xmlStrptr0 = "mac#%" // end-of-fun (* ****** ****** *) /* xmlChar* xmlGetProp (const xmlNodePtr node, const xmlCharPtr name); */ fun xmlGetProp ( node: !xmlNodePtr1, name: string ): xmlStrptr0 = "mac#%" // end-of-fun (* ****** ****** *) (* end of [tree.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libxml2/package.json0000644000175000017500000000100113431250607030154 0ustar brandonbrandon{ "name": "atscntrb-hx-libxml2" , "version": "1.0.0" , "description": "This package is for directly calling in ATS various XML2-functions." , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/npm-utils/contrib/atscntrb/atscntrb-libxml2" } , "keywords": [ "ATS", "XML", "XML2" ] , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "The package is stored at ${PATSHOME}/npm-utils/contrib/atscntrb/atscntrb-libxml2/." } ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/0000755000175000017500000000000013431250607026111 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/DATS/0000755000175000017500000000000013431250607026644 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/DATS/cairo.dats0000644000175000017500000000472413431250607030625 0ustar brandonbrandon(* ** API in ATS for cairo *) (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Start Time: September, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) implement cairo_get1_source (ctx) = let val ( fpf | xrpat ) = cairo_get_source (ctx) val xrpat1 = cairo_pattern_reference (xrpat) prval () = minus_addback (fpf, xrpat | ctx) in xrpat1 end // end of [cairo_get1_source] (* ****** ****** *) implement cairo_get1_target (ctx) = let val ( fpf | xrsf ) = cairo_get_target (ctx) val xrsf1 = cairo_surface_reference (xrsf) prval () = minus_addback (fpf, xrsf | ctx) in xrsf1 end // end of [cairo_get1_target] implement cairo_get1_group_target (ctx) = let val ( fpf | xrsf ) = cairo_get0_group_target (ctx) val xrsf1 = cairo_surface_reference (xrsf) prval () = minus_addback (fpf, xrsf | ctx) in xrsf1 end // end of [cairo_get1_group_target] (* ****** ****** *) implement cairo_set_source_rgb_arr (ctx, A) = cairo_set_source_rgb (ctx, A.[0], A.[1], A.[2]) // end of [cairo_set_source_rgb_arr] implement cairo_set_source_rgb_vec (ctx, rgb) = cairo_set_source_rgb (ctx, rgb.red, rgb.green, rgb.blue) // end of [cairo_set_source_rgb_vec] (* ****** ****** *) implement cairo_set_source_rgba_arr (ctx, A) = cairo_set_source_rgba (ctx, A.[0], A.[1], A.[2], A.[3]) // end of [cairo_set_source_rgba_arr] implement cairo_set_source_rgba_vec (ctx, rgba) = cairo_set_source_rgba (ctx, rgba.red, rgba.green, rgba.blue, rgba.alpha) // end of [cairo_set_source_rgba_vec] (* ****** ****** *) (* end of [cairo.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/mylibies.hats0000644000175000017500000000032513431250607030607 0ustar brandonbrandon(* ** For supporting ** libcairo-bindings for use in ATS *) (* ****** ****** *) // // HX-2017-02-09 // (* ****** ****** *) #staload CAIRO = "./SATS/cairo.sats" (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/Makefile_test0000644000175000017500000000032413431250607030607 0ustar brandonbrandon# # For testing # ###### all:: ###### SUBDIRS := SUBDIRS += TEST SUBDIRS += TUTORIAL/CODE ###### all:: ; \ for i in $(SUBDIRS); do $(MAKE) -C $$i testall; done ###### ###### end of [Makefile_test] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/0000755000175000017500000000000013431250607026670 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test01.dats0000644000175000017500000000271213431250607030667 0ustar brandonbrandon(* ** ** A simple CAIRO example: Hello, world! ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: December, 2009 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, April, 2013 *) (* ****** ****** *) (* ** How to compile: atscc -o test01 `pkg-config --cflags --libs cairo` test01.dats ** How to test the generated executable: ./test01 ** please use 'gthumb' or 'eog' to view the generated image file 'test01.png' *) (* ****** ****** *) // #staload "./../SATS/cairo.sats" // (* ****** ****** *) implement main () = 0 where { // val surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 250, 80) val cr = cairo_create (surface) // (* val () = cairo_select_font_face (cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL) *) val () = cairo_select_font_face (cr, "Sans", CAIRO_FONT_SLANT_ITALIC, CAIRO_FONT_WEIGHT_BOLD) // val () = cairo_set_font_size (cr, 32.0) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 1.0) val () = cairo_move_to (cr, 10.0, 50.0) // val () = cairo_show_text (cr, "Hello, world!") // val status = cairo_surface_write_to_png (surface, "test01.png") val () = cairo_destroy (cr) val () = cairo_surface_destroy (surface) // val () = ( if status = CAIRO_STATUS_SUCCESS then ( println! "The image is written to the file [test01.png]." ) else ( println! "exit(ATS): [cairo_surface_write_to_png] failed" ) // end of [if] ) : void // end of [val] // } // end of [main] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/cairo-Bulge02c.dats0000644000175000017500000001413013431250607032202 0ustar brandonbrandon// // Course: BU CAS CS 520, Fall, 2011 // Instructor: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // (* ****** ****** *) (* // // Midterm Examination: generate an image using cairo // *) (* ****** ****** *) (* ** Author: William Blair ** Authoremail: wdblairATbuDOTedu *) (* ****** ****** *) (* ** Ported to ATS2 by HX-2013-10-01 *) (* ****** ****** *) (* // Please implement a program in ATS that can generate the following image: // http://www.psy.ritsumei.ac.jp/~akitaoka/Bulge02c.jpg // *) (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) #define CELL 36.0 #define DIM 15 (* Dimmensions 15x15 *) #define SUBSIZE 0.285714286 #define OFFSET 0.04 (* ****** ****** *) #define int2dbl(x) g0int2float_int_double(x) (* ****** ****** *) extern fun lies_on_axis (i:int, j:int) : bool extern fun quadrant (i:int,j:int) : int extern fun in_range (i:int,j:int) : bool (* ****** ****** *) extern fun draw_row{l:agz} (cr: !cairo_ref l, x :int) : void extern fun draw_square{l:agz} (cr: !cairo_ref l, i:int, j:int) : void extern fun draw_diagonal{l:agz} (cr: !cairo_ref l, i:int, j:int, color:int) : void extern fun draw_horizontal{l:agz} (cr: !cairo_ref l, i:int, j:int, color:int) : void (* ****** ****** *) implement quadrant (i,j) = if (i > 7 && j < 7) then 1 else if (i < 7 && j < 7) then 2 else if (i < 7 && j > 7) then 3 else if (i > 7 && j > 7) then 4 else ~1 (* Say the axis is outside the quadrants. *) // end of [quadrant] (* ****** ****** *) implement draw_horizontal{l} (cr, i,j,color) = let (* Extra blocks lie on the same line. *) val new_color = int2dbl((color+1) mod 2) in // if (i != 7 || j != 7) then { val x = ( if (i < 7 && j = 7) then int2dbl(i+1)-OFFSET else int2dbl(i)+OFFSET ) : double val y = ( if (i = 7 && j < 7) then int2dbl(j+1)-OFFSET else int2dbl(j)+OFFSET ) : double val x1 = ( if (i > 7 && j = 7) then int2dbl(i)+OFFSET else int2dbl(i+1)-OFFSET ) : double val y1 = ( if (i = 7 && j > 7) then int2dbl(j)+OFFSET else int2dbl(j+1)-OFFSET ) : double val height = ( if(i = 7 && j < 7) then ~SUBSIZE else SUBSIZE ) : double // end of [val] val height1 = ( if(i = 7 && j > 7) then SUBSIZE else ~SUBSIZE ) : double // end of [val] val width = (if(i < 7 && j = 7) then ~SUBSIZE else SUBSIZE): double val width1 = (if(i > 7 && j = 7) then SUBSIZE else ~SUBSIZE): double val () = cairo_rectangle( cr, x, y, width, height) val () = cairo_set_source_rgb(cr, new_color, new_color, new_color) val () = cairo_fill(cr) val () = cairo_rectangle( cr, x1,y1,width1,height1) val () = cairo_set_source_rgb(cr, new_color, new_color, new_color) val () = cairo_fill(cr) } (* end of [if] *) // end // end of [draw_horizontal] (* ****** ****** *) implement draw_diagonal{l} (cr, i, j, color) = let // val quadrant = quadrant(i,j) val new_color = int2dbl((color+1) mod 2) val quad_mod = quadrant mod 2 val x = int2dbl(i)+OFFSET val y = ( if (quad_mod = 1) then int2dbl(j)+OFFSET else int2dbl(j+1)-OFFSET ) : double // end of [val] val x1 = int2dbl(i+1)-OFFSET val y1 = ( if (quad_mod = 1) then int2dbl(j+1)-OFFSET else int2dbl(j)+OFFSET ) : double // end of [val] val height = (if (quad_mod = 1) then SUBSIZE else ~SUBSIZE): double val width = SUBSIZE val width1 = ~SUBSIZE val height1 = (if (quad_mod = 1) then ~SUBSIZE else SUBSIZE): double // val () = cairo_rectangle(cr, x, y, width, height) val () = cairo_set_source_rgb(cr, new_color, new_color, new_color) val () = cairo_fill(cr) val () = cairo_rectangle(cr,x1,y1,width1,height1) val () = cairo_set_source_rgb(cr, new_color, new_color, new_color) val () = cairo_fill(cr) // in // nothing end // end of [draw_diagonal] (* ****** ****** *) implement lies_on_axis(i,j) = (i = 7 || j = 7) implement in_range (i,j) = let (* Check if we need to add extra boxes. *) val x = abs(7 - i) and y = abs(7 - j) in // (x <= 1 && y <= 6) || (x <= 3 && y <= 5) || (x <= 4 && y <= 4) || (x <= 5 && y <= 3) || (x <= 6 && y <= 1) // end // end of [in_range] (* ****** ****** *) implement draw_square (cr, i, j) = let (* First, draw the underlying square.*) val bw = ( if(((i mod 2 = 1) && (j mod 2 = 1) ) || ( (i mod 2) = 0 && (j mod 2 = 0))) then 0 else 1 ) : int val () = cairo_rectangle(cr, int2dbl(i), int2dbl(j), 1.0, 1.0) // var r: double = 0.0 var g: double = 0.0 var b: double = 0.0 val () = ( if bw > 0 then (r := 1.0; g := 1.0; b := 1.0) ) (* end of [val] *) // val () = cairo_set_source_rgb(cr, r, g, b) val () = cairo_fill(cr) in // if in_range(i,j) then if lies_on_axis(i,j) then draw_horizontal(cr, i, j, bw) else draw_diagonal(cr, i, j, bw) // end of [if] // end // end of [draw_square] (* ****** ****** *) implement draw_row{l} (cr, x) = let // fun loop ( cr: !cairo_ref l, x:int, i:int ) : void = let val () = if i < DIM then loop(cr, x, i+1) in draw_square(cr,x,i) end // end of [loop] // in loop(cr,x,0) end // end of [draw_row] (* ****** ****** *) extern fun draw_checkerboard {l:agz} (cr: !cairo_ref l): void implement draw_checkerboard{l} (cr) = let // fun loop ( cr: !cairo_ref l, height:int, i:int ) : void = let val() = draw_row(cr,i) in if i < height then loop(cr,height, i+1) end (* end of [loop] *) // in loop(cr, DIM, 0) end // end of [draw_checkerboard] (* ****** ****** *) implement main0 () = () where { // val W = 540 and H = 540 // val surface = // create a surface for drawing cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (surface) // val (pf0 | ()) = cairo_save (cr) val () = cairo_scale (cr, CELL, CELL) val () = draw_checkerboard (cr) val () = cairo_restore (pf0 | cr) // val status = cairo_surface_write_to_png (surface, "cairo-Bulge02c.png") val () = cairo_destroy (cr) // a type error is issued if omitted val () = cairo_surface_destroy (surface) // a type error if omitted // // in case of a failure ... // val () = assert_errmsg (status = CAIRO_STATUS_SUCCESS, $mylocation) } (* end of [main0] *) (* ****** ****** *) (* end of [cairo-Bulge02c.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test00.dats0000644000175000017500000000202613431250607030664 0ustar brandonbrandon(* ** ** A simple CAIRO example: Hello, world! ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: December, 2009 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, April, 2013 *) (* ****** ****** *) (* ** How to compile: atscc -o test00 `pkg-config --cflags --libs cairo` test00.dats ** How to test the generated executable: ./test00 *) (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) implement main0 () = () where { // val () = println! ("CAIRO_VERSION_MAJOR = ", CAIRO_VERSION_MAJOR) val () = println! ("CAIRO_VERSION_MINOR = ", CAIRO_VERSION_MINOR) val () = println! ("CAIRO_VERSION_MICRO = ", CAIRO_VERSION_MICRO) val CAIRO_VERSION = CAIRO_VERSION_ENCODE (CAIRO_VERSION_MAJOR, CAIRO_VERSION_MINOR, CAIRO_VERSION_MICRO) val () = println! ("CAIRO_VERSION = ", CAIRO_VERSION) // val () = println! ("cairo:version:number = ", cairo_version()) val () = println! ("cairo:version:string = ", cairo_version_string()) // } (* end of [main0] *) (* ****** ****** *) (* end of [test00.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test07.dats0000644000175000017500000001072613431250607030701 0ustar brandonbrandon(* ** ** Clock@HOME ** ** Author: Hongwei Xi ** Authoremail: hwxiATcsDOTbuDOTedu ** Time: December, 2009 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) (* ** How to compile: atscc -o test07 `pkg-config --cflags --libs cairo` test07.dats ** How to test: ./test07 ** Note that 'gthumb' can be used to view the generated image file *) (* ****** ****** *) staload "libats/libc/SATS/math.sats" (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) // staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" // (* ****** ****** *) stadef dbl = double stadef cr (l:addr) = cairo_ref l (* ****** ****** *) fun draw_hand {l:agz} ( cr: !cr l, bot: dbl, top: dbl, len: dbl ) : void = let val () = cairo_move_to (cr, 0.0, bot/2) val () = cairo_line_to (cr, len, top/2) val () = cairo_line_to (cr, len, ~top/2) val () = cairo_line_to (cr, 0.0, ~bot/2) val ((*closed*)) = cairo_close_path (cr) in cairo_fill (cr) end // end of [draw_hand] (* ****** ****** *) fn draw_clock {l:agz}{w,h:nat} ( cr: !cr l , wd: int w, ht: int h , h: natLt 24, m: natLt 60 ) : void = let // val h = (if h >= 12 then h - 12 else h): natLt 12 val m_ang = m * (M_PI / 30) - M_PI/2 val h_ang = h * (M_PI / 6) + m * (M_PI / 360) - M_PI/2 // val wd = g0int2float_int_double(wd) and ht = g0int2float_int_double(ht) val mn = min (wd, ht) val rad = 0.375 * mn val (pf0 | ()) = cairo_save (cr) val xc = wd / 2 and yc = ht / 2 val () = cairo_translate (cr, xc, yc) val () = cairo_arc (cr, 0.0, 0.0, rad, 0.0, 2 * M_PI) val () = cairo_set_source_rgb (cr, 1.0, 1.0, 1.0) val () = cairo_fill (cr) val () = cairo_arc (cr, 0.0, 0.0, rad, 0.0, 2 * M_PI) val () = cairo_set_source_rgb (cr, 0.0, 1.0, 0.0) val () = cairo_set_line_width (cr, 10.0) val () = cairo_stroke (cr) // val rad1 = 0.90 * rad val () = cairo_arc (cr, ~rad1, ~rad1, rad1, 0.0, M_PI/2) val () = cairo_arc (cr, ~rad1, rad1, rad1, ~M_PI/2, 0.0) val () = cairo_arc (cr, rad1, rad1, rad1, ~M_PI, ~M_PI/2) val () = cairo_arc (cr, rad1, ~rad1, rad1, M_PI/2, M_PI) val () = cairo_fill (cr) // val h_l = 0.60 * rad val (pf | ()) = cairo_save (cr) val () = cairo_rotate (cr, h_ang) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) val () = draw_hand (cr, 6.0, 6.0/2, h_l) val () = cairo_restore (pf | cr) val (pf | ()) = cairo_save (cr) val () = cairo_rotate (cr, h_ang+M_PI) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) val () = draw_hand (cr, 6.0, 6.0/2, h_l/4) val () = cairo_restore (pf | cr) // val m_l = 0.85 * rad val (pf | ()) = cairo_save (cr) val () = cairo_rotate (cr, m_ang) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) val () = draw_hand (cr, 5.0, 5.0/2, m_l) val () = cairo_restore (pf | cr) val (pf | ()) = cairo_save (cr) val () = cairo_rotate (cr, m_ang+M_PI) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) val () = draw_hand (cr, 5.0, 5.0/2, h_l/4) val () = cairo_restore (pf | cr) // val () = cairo_new_sub_path (cr) val () = cairo_arc (cr, 0.0, 0.0, 7.2, 0.0, 2 * M_PI) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) val () = cairo_fill (cr) val () = cairo_restore (pf0 | cr) in // nothing end // end of [draw_clock] (* ****** ****** *) staload "libats/libc/SATS/time.sats" (* ****** ****** *) implement main0 () = () where { // val wd0 = 300 and ht0 = 300 // var t: time_t // unintialized val yn = time_getset (t) val () = assert_errmsg (yn, $mylocation) prval () = opt_unsome {time_t} (t) var tm: tm_struct // unintialized val _ptr = localtime_r (t, tm) val () = assert_errmsg (_ptr > 0, $mylocation) prval () = opt_unsome {tm_struct} (tm) val hr = tm.tm_hour and min = tm.tm_min val hr = g1ofg0_int (hr) and min = g1ofg0_int (min) val () = assertloc ((0 <= hr) * (hr < 24)) val () = assertloc ((0 <= min) * (min < 60)) // val surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, wd0, ht0) val cr = cairo_create (surface) // val () = draw_clock (cr, wd0, ht0, hr, min) // val status = cairo_surface_write_to_png (surface, "test07.png") val () = cairo_surface_destroy (surface) val () = cairo_destroy (cr) // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [test07.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] } (* end of [main0] *) (* ****** ****** *) (* end of [test07.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test08.dats0000644000175000017500000001236413431250607030702 0ustar brandonbrandon(* ** ** A simple CAIRO example: ** an illusion of circular motion ** see Kitaoka's page: ** http://www.ritsumei.ac.jp/~akitaoka/ ** ** Author: Hongwei Xi ** Authoremail: hwxiATcsDOTbuDOTedu ** Time: December, 2009 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) (* ** How to compile: ** atscc -o test08 `pkg-config --cflags --libs cairo` test08.dats ** How to test: ./test08 ** 'gthumb' or 'eog' can be used to view the generated image file 'test08.png' *) (* ****** ****** *) staload "libats/libc/SATS/math.sats" staload _(*MATH*) = "libats/libc/DATS/math.dats" (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" (* ****** ****** *) #define PI M_PI (* ****** ****** *) stadef dbl = double stadef cr (l:addr) = cairo_ref l (* ****** ****** *) // black/white fn bw_set {l:agz} (cr: !cr l, bw: int): void = if bw > 0 then cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) else cairo_set_source_rgb (cr, 1.0, 1.0, 1.0) // end of [if] // end of [bw_set] // yellow/blue fn yb_set {l:agz} (cr: !cr l, yb: int): void = if yb > 0 then cairo_set_source_rgb (cr, 1.0, 0.75, 0.0) else cairo_set_source_rgb (cr, 0.0, 0.00, 1.0) // end of [if] // end of [yb_set] (* ****** ****** *) fn draw_ring {l:agz} {n:int | n >= 2} ( cr: !cr l , bw: int, yb: int , rad1: dbl, rad2: dbl , n: int n ) : void = let val alpha = (1.0 - rad2/rad1) / 1.5 val delta = 2 * PI / n // fun loop {i:nat | i <= n} .. (cr: !cr l, angle: double, i: int i, bw: int, yb: int) : void = let val _sin = sin angle and _cos = cos angle val x1 = rad1 * _cos and y1 = rad1 * _sin val x2 = rad2 * _cos and y2 = rad2 * _sin val radm = (rad1 + rad2) / 2 val xm = radm * cos (angle-alpha) and ym = radm * sin (angle-alpha) val () = cairo_move_to (cr, x1, y1) val () = cairo_curve_to (cr, x1, y1, xm, ym, x2, y2) val xm = radm * cos (angle+alpha) and ym = radm * sin (angle+alpha) val () = cairo_curve_to (cr, x2, y2, xm, ym, x1, y1) val () = yb_set (cr, yb) val () = cairo_fill (cr) // val () = cairo_move_to (cr, x2, y2) val () = cairo_curve_to (cr, x2, y2, xm, ym, x1, y1) val () = cairo_arc (cr, 0.0, 0.0, rad1, angle, angle+delta) val angle = angle + delta val _sin = sin angle and _cos = cos angle val x3 = rad1 * _cos and y3 = rad1 * _sin val x4 = rad2 * _cos and y4 = rad2 * _sin val xm = radm * cos (angle-alpha) and ym = radm * sin (angle-alpha) val () = cairo_curve_to (cr, x3, y3, xm, ym, x4, y4) val () = cairo_arc_negative (cr, 0.0, 0.0, rad2, angle, angle-delta) val () = bw_set (cr, bw) val () = cairo_fill (cr) in if i < n then loop (cr, angle, i+1, 1-bw, 1-yb) end // end of [loop] in loop (cr, 0.0, 1, bw, yb) end // end of [draw_ring] (* ****** ****** *) #define SHRINKAGE 0.78 fun draw_rings {l:agz} {n:int | n >= 2} ( cr: !cr l , bw: int, yb: int , rad_beg: dbl, rad_end: dbl , n: int n ) : void = if rad_beg <= rad_end then let val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) val () = cairo_arc (cr, 0.0, 0.0, rad_beg, 0.0, 2*PI) val () = cairo_fill (cr) in // loop exits end else let val rad_beg_nxt = SHRINKAGE * rad_beg val () = draw_ring (cr, bw, yb, rad_beg, rad_beg_nxt, n) in draw_rings (cr, 1-bw, 1-yb, rad_beg_nxt, rad_end, n) end // end of [if] // end of [draw_rings] (* ****** ****** *) implement main0 () = () where { val margin = 10 val U = 150 #define NROW 2; #define NCOL 3 val wd = NCOL * U and ht = NROW * U val surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, wd+margin, ht+margin) val cr = cairo_create (surface) val U = g0int2float_int_double (U) val wd = g0int2float_int_double(wd) and ht = g0int2float_int_double(ht) val margin = g0int2float_int_double(margin) // val xmargin = (margin) / 2 val ymargin = (margin) / 2 // val () = cairo_translate (cr, xmargin, ymargin) var i : int = 0 and j : int = 0 val () = ( for (i := 0; i <= NCOL; i := i + 1) ( for (j := 0; j <= NROW; j := j + 1) let val (pf | ()) = cairo_save (cr) val () = cairo_translate (cr, i*U, j*U) val () = draw_rings (cr, 0, 0, U/2, 4.0, 40) val () = cairo_restore (pf | cr) in // nothing end // end of [for] ) // end of [for] ) // end of [val] // val () = ( for (i := 0; i < NCOL; i := i + 1) ( for (j := 0; j < NROW; j := j + 1) let val (pf | ()) = cairo_save (cr) val () = cairo_translate (cr, i*U+U/2, j*U+U/2) // end of [val] val () = draw_rings (cr, i, 0, U/2, 4.0, 40) val () = cairo_restore (pf | cr) in // nothing end // end of [for] ) // end of [for] ) // end of [val] // val status = cairo_surface_write_to_png (surface, "test08.png") val () = cairo_surface_destroy (surface) val () = cairo_destroy (cr) // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [test08.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] } (* end of [main0] *) (* ****** ****** *) (* end of [test08.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test06.dats0000644000175000017500000000346513431250607030702 0ustar brandonbrandon(* ** ** A simple CAIRO example: clipping ** ** Author: Hongwei Xi ** Authoremail: hwxiATcsDOTbuDOTedu ** Time: December, 2009 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) (* ** How to compile: atscc -o test06 `pkg-config --cflags --libs cairo` test06.dats ** How to test: ./test06 ** Note that 'gthumb' can be used to view the generated image file. *) (* ****** ****** *) // staload "libats/libc/SATS/math.sats" // (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) stadef dbl = double stadef cr = cairo_ref (* ****** ****** *) implement main0 () = () where { // val wd = 256 and ht = 256 val surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, wd, ht) val wd = g0int2float_int_double(wd) and ht = g0int2float_int_double(ht) val cr = cairo_create (surface) // val xc = wd / 2 and yc = ht / 2 val rad = 100.0 val () = cairo_arc (cr, 128.0, 128.0, rad, 0.0, 2 * M_PI); val () = cairo_clip (cr) val () = cairo_new_path (cr) val () = cairo_rectangle (cr, 0.0, 0.0, wd, ht) val () = cairo_fill (cr) val () = cairo_set_source_rgb (cr, 0.0, 1.0, 0.0) val () = cairo_move_to (cr, 0.0, 0.0) val () = cairo_line_to (cr, wd, ht) val () = cairo_move_to (cr, wd, 0.0) val () = cairo_line_to (cr, 0.0, ht) val () = cairo_set_line_width (cr, 10.0) val () = cairo_stroke (cr) // val status = cairo_surface_write_to_png (surface, "test06.png") val () = cairo_surface_destroy (surface) val () = cairo_destroy (cr) // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [test06.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] } (* end of [main0] *) (* ****** ****** *) (* end of [test06.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/Makefile0000644000175000017500000000521213431250607030330 0ustar brandonbrandon###### # # A simple Makefile for # testing the ATS API for cairo # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### XRLIBS=`pkg-config cairo --libs` XRCFLAGS=`pkg-config cairo --cflags` ###### .PHONY: all ###### all:: regress:: cleanall:: ###### all:: test00 all:: test01 all:: test02 all:: test03 all:: test04 all:: test05-1 all:: test05-2 all:: test06 all:: test07 all:: test08 all:: test09 ###### regress:: test00; ./$< regress:: test01; ./$< regress:: test02; ./$< regress:: test03; ./$< regress:: test04; ./$< regress:: test05-1; ./$< regress:: test05-2; ./$< regress:: test06; ./$< regress:: test07; ./$< regress:: test08; ./$< regress:: test09; ./$< ###### cleanall:: ; $(RMF) test00 cleanall:: ; $(RMF) test01 cleanall:: ; $(RMF) test02 cleanall:: ; $(RMF) test03 cleanall:: ; $(RMF) test04 cleanall:: ; $(RMF) test05-1 cleanall:: ; $(RMF) test05-2 cleanall:: ; $(RMF) test06 cleanall:: ; $(RMF) test07 cleanall:: ; $(RMF) test08 cleanall:: ; $(RMF) test09 ###### test00: test00.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test01: test01.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test02: test02.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test03: test03.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test04: test04.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test05-1: test05-1.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test05-2: test05-2.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test06: test06.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test07: test07.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test08: test08.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm test09: test09.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm ###### all:: \ cairo-multable cairo-multable: \ cairo-multable.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm regress:: cairo-multable; ./$< cleanall:: ; $(RMF) cairo-multable ###### all:: \ cairo-Bulge02c cairo-Bulge02c: \ cairo-Bulge02c.dats ; \ $(PATSCC) -I./../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm regress:: cairo-Bulge02c; ./$< cleanall:: ; $(RMF) cairo-Bulge02c ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean cleanall:: ; $(RMF) *.png cleanall:: ; $(RMF) cairo-multable.ps ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test09.dats0000644000175000017500000000442113431250607030676 0ustar brandonbrandon(* ** ** A simple CAIRO example: filling rules ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: March, 2010 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) (* ** How to compile: atscc -o test09 `pkg-config --cflags --libs cairo` test09.dats ** How to test: ./test09 ** 'gthumb' can be used to view the generated image file 'test09.png' *) (* ****** ****** *) macdef PI = 3.14159265359 (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) implement main0 () = () where { val surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 256, 256) val cr = cairo_create (surface) // val () = cairo_set_line_width (cr, 6.0) val () = cairo_rectangle (cr, 12.0, 12.0, 232.0, 70.0) val () = cairo_move_to (cr, 104.0, 64.0) val () = cairo_arc (cr, 64.0, 64.0, 40.0, 0.0, 2*PI) val () = cairo_move_to (cr, 232.0, 64.0) val () = cairo_arc_negative (cr, 192.0, 64.0, 40.0, 0.0, ~2*PI) // val () = cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD) val () = cairo_set_source_rgb (cr, 0.0, 0.7, 0.0) val () = cairo_fill_preserve (cr) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) val () = cairo_stroke (cr) // val () = cairo_translate (cr, 0.0, 128.0) val () = cairo_rectangle (cr, 12.0, 12.0, 232.0, 70.0) val () = cairo_move_to (cr, 104.0, 64.0) val () = cairo_arc (cr, 64.0, 64.0, 40.0, 0.0, 2*PI) val () = cairo_move_to (cr, 232.0, 64.0) val () = cairo_arc_negative (cr, 192.0, 64.0, 40.0, 0.0, ~2*PI) // val () = cairo_set_fill_rule (cr, CAIRO_FILL_RULE_WINDING) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.9) val () = cairo_fill_preserve (cr) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) val () = cairo_stroke (cr) // val status = cairo_surface_write_to_png (surface, "test09.png") val () = cairo_surface_destroy (surface) val () = cairo_destroy (cr) // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [test09.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] } (* end of [main0] *) (* ****** ****** *) (* end of [test09.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test05-2.dats0000644000175000017500000000367313431250607031041 0ustar brandonbrandon(* ** ** A simple CAIRO example: joint styles ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: March, 2010 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) (* ** How to compile: atscc -o test05-2 `pkg-config --cflags --libs cairo` test05-2.dats ** How to test: ./test05-2 'gthumb' can be used to view the generated image file 'test05-2.png' *) (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" (* ****** ****** *) macdef PI = 3.14159265359 (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) implement main0 () = () where { val surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 256, 256) val cr = cairo_create (surface) // val () = cairo_set_line_width (cr, 40.96) // val () = cairo_move_to (cr, 76.8, 84.48) val () = cairo_rel_line_to (cr, 51.2, ~51.2) val () = cairo_rel_line_to (cr, 51.2, 51.2) val () = cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER) val () = cairo_stroke (cr) // val () = cairo_move_to (cr, 76.8, 161.28) val () = cairo_rel_line_to (cr, 51.2, ~51.2) val () = cairo_rel_line_to (cr, 51.2, 51.2) val () = cairo_set_line_join (cr, CAIRO_LINE_JOIN_BEVEL) val () = cairo_stroke (cr) // val () = cairo_move_to (cr, 76.8, 238.08) val () = cairo_rel_line_to (cr, 51.2, ~51.2) val () = cairo_rel_line_to (cr, 51.2, 51.2) val () = cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND) val () = cairo_stroke (cr) // val status = cairo_surface_write_to_png (surface, "test05-2.png") val () = cairo_surface_destroy (surface) val () = cairo_destroy (cr) // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [test05-2.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] } // end of [main] (* ****** ****** *) (* end of [test05-2.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/cairo-multable.dats0000644000175000017500000001221013431250607032441 0ustar brandonbrandon(* ** ** A simple CAIRO example involving PS surface ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: December, 2009 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, April, 2013 *) (* ****** ****** *) (* ** How to compile: atscc -o test10 `pkg-config --cflags --libs cairo` cairo-multable.dats ** How to test: ./caior-multable ** The generated postscript file [cairo-multable.ps] can be viewed with 'gv' *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) %{^ #include %} // end of [%{] (* ****** ****** *) stadef dbl = double macdef PI = $extval (dbl, "M_PI") (* ****** ****** *) fun draw_cross ( xr: !xr1 , x: double, y: double, sz: double ) : void = let val (pf | ()) = cairo_save (xr) val () = cairo_translate (xr, x, y) val sz2 = sz / 2 val () = cairo_set_line_width (xr, sz/5) val () = cairo_move_to (xr, ~sz2, ~sz2) val () = cairo_line_to (xr, sz2, sz2) val () = cairo_stroke (xr) val () = cairo_move_to (xr, sz2, ~sz2) val () = cairo_line_to (xr, ~sz2, sz2) val () = cairo_stroke (xr) val () = cairo_restore (pf | xr) in // nothing end // end of [draw_cross] (* ****** ****** *) extern fun draw_nrowsep ( xr: !xr1, n: intGte(1), xlen: dbl, ylen: dbl ) : void implement draw_nrowsep (xr, n, xlen, ylen) = let // fun loop ( xr: !xr1 , xlen: dbl, yd: dbl, i: int, y0: dbl ) : void = let in // if i >= 0 then let val () = cairo_move_to (xr, 0.0, y0) val () = cairo_line_to (xr, xlen, y0) val () = cairo_stroke (xr) in if i > 0 then loop (xr, xlen, yd, i-1, y0 + yd) end else () // end of [if] // end // end of [loop] // in loop (xr, xlen, ylen / n, n, 0.0) end // end of [draw_nrowsep] (* ****** ****** *) extern fun draw_ncolsep ( xr: !xr1, n: intGte(1), xlen: dbl, ylen: dbl ) : void implement draw_ncolsep (xr, n, xlen, ylen) = let // fun loop ( xr: !xr1 , xd: dbl, ylen: dbl, i: int, x0: dbl ) : void = let in // if i >= 0 then let val () = cairo_move_to (xr, x0, 0.0) val () = cairo_line_to (xr, x0, ylen) val () = cairo_stroke (xr) in if i > 0 then loop (xr, xd, ylen, i-1, x0 + xd) end else () // end of [if] // end // end of [loop] // in loop (xr, xlen / n, ylen, n, 0.0) end // end of [draw_ncolsep] (* ****** ****** *) extern fun draw_table ( xr: !xr1 , n: intGte(1), width: double, fntsz: double ) : void // end of [draw_table] implement draw_table (xr, n, width, fntsz) = let // val xd = width / n val () = draw_cross (xr, 0.50*xd, 1.00*fntsz, fntsz) // val () = draw_nrowsep (xr, n, width, 2.00 * n * fntsz) val () = draw_ncolsep (xr, n, width, 2.00 * n * fntsz) // in end // end of [draw_table] (* ****** ****** *) // // letter: 8.5 x 11 (inches) // val x_letter = 8.5 * 72 and y_letter = 11.0 * 72 // (* ****** ****** *) implement main0 () = { // val wsf = 512 and hsf = 768 (* val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, wsf, hsf) // end of [val] *) val wsf = 1.0*wsf and hsf = 1.0*hsf // val sf = cairo_ps_surface_create ("cairo-multable.ps", x_letter, y_letter) val () = cairo_ps_surface_dsc_comment (sf, "%%Title: Zoe's Multiplication Table") val () = cairo_ps_surface_dsc_comment (sf, "%%Copyright: Copyright (C) Hongwei Xi") val () = cairo_ps_surface_dsc_begin_setup (sf) val () = cairo_ps_surface_dsc_comment (sf, "%%IncludeFeatures: *MediaColor: White") val () = cairo_ps_surface_dsc_begin_page_setup (sf) val () = cairo_ps_surface_dsc_comment (sf, "%%IncludeFeatures: *PageSize Letter") // val cr = cairo_create (sf) // val () = cairo_translate (cr, (x_letter-wsf)/2, 72.0) // val image = cairo_image_surface_create_from_png ("DATA/zoe-2006-05-27-1.png") // val wimg = cairo_image_surface_get_width (image) val himg = cairo_image_surface_get_height (image) // val (pf | ()) = cairo_save (cr) val xrat = (1.0*250/512) and yrat = (1.0*224/768) val () = cairo_translate (cr, ~120.0/512*wsf, ~80.0/768*hsf) val () = cairo_arc (cr, xrat*wsf, yrat*hsf, 95.0, 0.0, 2*PI); val () = cairo_clip (cr) val xcoef = wsf / wimg and ycoef = hsf / himg val () = cairo_scale (cr, xcoef, ycoef) val () = cairo_set_source_surface (cr, image, 0.0, 0.0) val () = cairo_paint (cr) val () = cairo_restore (pf | cr) val () = cairo_surface_destroy (image) // val () = cairo_select_font_face ( cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD ) // end of [val] val () = cairo_set_font_size (cr, 24.0) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 1.0) // var texts : cairo_text_extents_t val title = "Zoe's Multiplication Table" val () = cairo_text_extents (cr, title, texts) val x_title = (wsf-texts.width)/2 val () = cairo_move_to (cr, x_title, 272.0/768*hsf) val () = cairo_show_text (cr, title) // val m_table = 72.0 // margin val (pf | ()) = cairo_save (cr) val () = cairo_translate (cr, m_table, 300.0) val w_table = 2*(wsf/2 - m_table) val () = draw_table (cr, 10, w_table, 14.0(*fntsz*)) val () = cairo_restore (pf | cr) // val () = cairo_show_page (cr) // val () = cairo_destroy (cr) val () = cairo_surface_destroy (sf) // } // end of [main0] (* ****** ****** *) (* end of [cairo-mutable.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/DATA/0000755000175000017500000000000013431250607027401 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test02.dats0000644000175000017500000000366313431250607030676 0ustar brandonbrandon(* ** ** A simple CAIRO example: rounded rectangle ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: December, 2009 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, April, 2013 *) (* ****** ****** *) (* ** how to compile: atscc -o test02 `pkg-config --cflags --libs cairo` test02.dats ** how to test the generated executable: ./test02 ** please use 'gthumb' or 'eog' to view the generated image file 'test02.png' *) (* ****** ****** *) // staload _(*anon*) = "prelude/DATS/float.dats" // (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) stadef dbl = double (* ****** ****** *) fun draw_rounded_rectangle .<>. ( xr: !xr1, x: dbl, y: dbl, w: dbl, h:dbl, r: dbl ) : void = let val () = cairo_move_to (xr, x+r, y) val () = cairo_line_to (xr, x+w-r, y) val () = cairo_curve_to (xr, x+w, y, x+w, y, x+w, y+r) val () = cairo_line_to (xr, x+w, y+h-r) val () = cairo_curve_to (xr, x+w, y+h, x+w, y+h, x+w-r, y+h) val () = cairo_line_to (xr, x+r, y+h) val () = cairo_curve_to (xr, x, y+h, x, y+h, x, y+h-r) val () = cairo_line_to (xr, x, y+r) val () = cairo_curve_to (xr, x, y, x, y, x+r, y) val () = cairo_stroke (xr) in // nothing end // end of [draw_rounded_rectangle] (* ****** ****** *) implement main () = (0) where { // val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 200, 200) // val xr = cairo_create (sf) // val x = 50.0 and y = 50.0 val w = 100.0 and h = 100.0 val r = 10.0 // val () = draw_rounded_rectangle (xr, x, y, w, h, r) // val status = cairo_surface_write_to_png (sf, "test02.png") // val () = cairo_destroy (xr) val () = cairo_surface_destroy (sf) // val () = ( if ( status = CAIRO_STATUS_SUCCESS ) then ( println! "The image is written to the file [test02.png]." ) else ( println! "exit(ATS): [cairo_surface_write_to_png] failed"; ) (* end of [if] *) ) : void // end of [val] // } (* end of [main] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test04.dats0000644000175000017500000000624113431250607030673 0ustar brandonbrandon(* ** ** A simple CAIRO example: Koch fractal curve ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: December, 2009 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, April, 2013 *) (* ****** ****** *) (* ** how to compile: atscc -o test04 `pkg-config --cflags --libs cairo` test04.dats ** how to test the generated executable: ./test04 ** please use 'gthumb' or 'eog' to view the generated image file 'test04.png' *) (* ****** ****** *) %{^ #include %} // end of [%{] (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) extern val M_PI: double = "mac#" extern fun sin : double -> double = "mac#" extern fun cos : double -> double = "mac#" (* ****** ****** *) stadef dbl = double (* ****** ****** *) val PI3 = M_PI / 3 val sin60 = sin (PI3) fn koch_nr ( xr: !xr1, x: dbl ) : void = let val () = cairo_move_to (xr, 0.0, 0.0) val () = cairo_line_to (xr, x / 3, 0.0) val () = cairo_line_to (xr, x / 2, ~x / 3 * sin60) val () = cairo_line_to (xr, 2 * x / 3, 0.0) val () = cairo_line_to (xr, x, 0.0) in // nothing end // end of [koch_nr] (* ****** ****** *) fun koch_rec {n:nat} .. ( xr: !xr1, n: int n, x: dbl ) : void = let in // if n > 0 then let val () = koch_rec (xr, n-1, x / 3) // val (pf | ()) = cairo_save (xr) val () = cairo_translate (xr, x / 3, 0.0) val () = cairo_rotate (xr, ~PI3) val () = koch_rec (xr, n-1, x / 3) val () = cairo_restore (pf | xr) // val (pf | ()) = cairo_save (xr) val () = cairo_translate (xr, x / 2, ~x / 3 * sin60) val () = cairo_rotate (xr, PI3) val () = koch_rec (xr, n-1, x / 3) val () = cairo_restore (pf | xr) // val (pf | ()) = cairo_save (xr) val () = cairo_translate (xr, 2 * x / 3, 0.0) val () = koch_rec (xr, n-1, x / 3) val () = cairo_restore (pf | xr) in // nothing end else // koch_nr (xr, x) // end of [if] end // end of [koch_rec] (* ****** ****** *) implement main0 () = { // val UT = 100 // val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 3*UT, 3*UT) val xr = cairo_create (sf) // val UT = 1.0*UT val x0 = UT/2 and y0 = UT // val (pf | ()) = cairo_save (xr) val () = cairo_translate (xr, x0, y0) val () = koch_rec (xr, 3, 2*UT) val () = cairo_restore (pf | xr) val () = cairo_stroke (xr) // val (pf | ()) = cairo_save (xr) val () = cairo_translate (xr, x0+2*UT, y0) val () = cairo_rotate (xr, 2 * PI3) val () = koch_rec (xr, 3, 2*UT) val () = cairo_restore (pf | xr) val () = cairo_stroke (xr) // val (pf | ()) = cairo_save (xr) val () = cairo_translate (xr, x0+UT, y0+2*UT*sin60) val () = cairo_rotate (xr, ~2 * PI3) val () = koch_rec (xr, 3, 2*UT) val () = cairo_restore (pf | xr) val () = cairo_stroke (xr) // val status = cairo_surface_write_to_png (sf, "test04.png") // val () = cairo_destroy (xr) val () = cairo_surface_destroy (sf) // val () = ( if status = CAIRO_STATUS_SUCCESS then ( println! ("The image is written to the file [test04.png].") ) else ( println! ("exit(ATS): [cairo_surface_write_to_png] failed") ) // end of [if] ) : void // end of [val] } // end of [main] (* ****** ****** *) (* end of [test04.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test03.dats0000644000175000017500000000514213431250607030671 0ustar brandonbrandon(* ** ** A simple CAIRO example: regular polygon ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: December, 2009 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, April, 2013 *) (* ****** ****** *) (* ** how to compile: atscc -o test03 `pkg-config --cflags --libs cairo` test03.dats ** how to test the generated executable: ./test03 ** please use 'gthumb' or 'eog' to view the generated image file 'test03.png' *) (* ****** ****** *) %{^ #include %} // end of [%{] (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) extern val M_PI: double = "mac#M_PI" extern fun sin : double -> double = "mac#sin" extern fun cos : double -> double = "mac#cos" (* ****** ****** *) typedef dbl = double (* ****** ****** *) fun draw_reg_polygon {n:nat | n >= 3} (xr: !xr1, n: int n): void = let // fun loop {i:nat | i <= n} .. ( xr: !xr1 , n: int n, da: dbl, angl0: dbl, i: int i ) : void = let in // if i < n then let val angl1 = angl0 + da val () = cairo_line_to (xr, cos angl1, sin angl1) in loop (xr, n, da, angl1, i + 1) end else let val () = cairo_close_path (xr) in // nothing end // end of [if] // end // end of [loop] // val da = 2.0 * M_PI / n val () = cairo_move_to (xr, 1.0, 0.0) val () = loop (xr, n, da, 0.0, 1) // in // nothing end // end of [draw_reg_polygon] (* ****** ****** *) macdef ALPHA = 7/8.0 (* ****** ****** *) implement main0 () = { // val NSIDE = 5 // val W = 250 and H = 250 // val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val xr = cairo_create (sf) // val W = 1.0*W and H = 1.0*H // val W2 = W/2 and H2 = H/2 val () = cairo_translate (xr, W2, H2) val () = cairo_rotate (xr, ~(M_PI) / 2) // val ax = ALPHA*H2 and ay = ALPHA*W2 // switching due to rotation // val (pf | ()) = cairo_save (xr) val () = cairo_scale (xr, ax, ay) val () = draw_reg_polygon (xr, NSIDE) val () = cairo_restore (pf | xr) val () = cairo_fill (xr) // val (pf | ()) = cairo_save (xr) val () = cairo_scale (xr, ax, ay) val () = draw_reg_polygon (xr, 64*NSIDE) val () = cairo_restore (pf | xr) val () = cairo_stroke (xr) // val status = cairo_surface_write_to_png (sf, "test03.png") // val () = cairo_destroy (xr) val () = cairo_surface_destroy (sf) // val () = ( if status = CAIRO_STATUS_SUCCESS then ( println! "The image is written to the file [test03.png]." ) else ( println! "exit(ATS): [cairo_surface_write_to_png] failed"; ) // end of [if] ) : void // end of [val] // } // end of [main0] (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TEST/test05-1.dats0000644000175000017500000000471313431250607031034 0ustar brandonbrandon(* ** ** A simple CAIRO example: line cap styles ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: March, 2010 ** *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, April, 2013 *) (* ****** ****** *) (* ** How to compile: atscc -o test05-1 `pkg-config --cflags --libs cairo` test05-1.dats ** How to test: ./test05-1 ** Note that 'eog' and 'gthumb' can be used to view the generated image file. ** *) (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" (* ****** ****** *) staload "./../SATS/cairo.sats" (* ****** ****** *) implement main () = (0) where { // val surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 256, 256) val cr = cairo_create (surface) // var x: double = 0.0 val () = cairo_set_line_width (cr, 30.0) // val () = x := x + 64 val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT) // default val () = cairo_move_to (cr, x, 50.0) val () = cairo_line_to (cr, x, 200.0) val () = cairo_stroke (cr) // val () = x := x + 64 val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND) val () = cairo_move_to (cr, x, 50.0) val () = cairo_line_to (cr, x, 200.0) val () = cairo_stroke (cr) // val () = x := x + 64 val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE) val () = cairo_move_to (cr, x, 50.0) val () = cairo_line_to (cr, x, 200.0) val () = cairo_stroke (cr) // // drawing help lines // val () = x := 0.0 val () = cairo_set_source_rgb (cr, 1.0, 0.2, 0.2) val () = cairo_set_line_width (cr, 2.56) // val () = x := x + 64 val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT) // default val () = cairo_move_to (cr, x, 50.0) val () = cairo_line_to (cr, x, 200.0) val () = cairo_stroke (cr) // val () = x := x + 64 val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND) val () = cairo_move_to (cr, x, 50.0) val () = cairo_line_to (cr, x, 200.0) val () = cairo_stroke (cr) // val () = x := x + 64 val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE) val () = cairo_move_to (cr, x, 50.0) val () = cairo_line_to (cr, x, 200.0) val () = cairo_stroke (cr) // val status = cairo_surface_write_to_png (surface, "test05-1.png") // val () = cairo_destroy (cr) val () = cairo_surface_destroy (surface) // val () = ( if status = CAIRO_STATUS_SUCCESS then begin println! ("The image is written to the file [test05-1.png].") end else println! ("exit(ATS): [cairo_surface_write_to_png] failed.") // end of [if] ) : void // end of [val] // } // end of [main] (* ****** ****** *) (* end of [test05-1.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/CATS/0000755000175000017500000000000013431250607026643 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/CATS/cairo.cats0000777000175000017500000000000013431250607033626 2CODEGEN/cairo.catsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/CATS/CODEGEN/0000755000175000017500000000000013431250607027707 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/CATS/CODEGEN/cairo.cats0000644000175000017500000003103013431250607031655 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2012 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/cairo.atxt ** Time of generation: Sun May 11 01:44:28 2014 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2012 *) */ /* ****** ****** */ #ifndef CAIRO_CAIRO_CATS #define CAIRO_CAIRO_CATS /* ****** ****** */ #include #ifdef CAIRO_HAS_PS_SURFACE #include #endif #ifdef CAIRO_HAS_PDF_SURFACE #include #endif /* ****** ****** */ ATSinline() atstype_bool atscntrb_cairo_eq_int_int ( atstype_int x, atstype_int y ) { return (x==y ? atsbool_true : atsbool_false) ; } /* end of [atscntrb_cairo_eq_int_int] */ /* ****** ****** */ #define atscntrb_CAIRO_VERSION_ENCODE CAIRO_VERSION_ENCODE #define atscntrb_cairo_version cairo_version ATSinline() atstype_string atscntrb_cairo_version_string() { return (void*)(cairo_version_string()) ; } /* endfun */ /* ****** ****** */ #define atscntrb_cairo_device_reference cairo_device_reference #define atscntrb_cairo_device_destroy cairo_device_destroy #define atscntrb_cairo_pattern_reference cairo_pattern_reference #define atscntrb_cairo_pattern_destroy cairo_pattern_destroy /* ****** ****** */ /* ****** ****** */ // // Drawing: cairo-cairo-t // #define atscntrb_cairo_create cairo_create #define atscntrb_cairo_reference cairo_reference #define atscntrb_cairo_destroy cairo_destroy #define atscntrb_cairo_status cairo_status #define atscntrb_cairo_status_to_string cairo_status_to_string #define atscntrb_cairo_save cairo_save #define atscntrb_cairo_restore cairo_restore #define atscntrb_cairo_get_target cairo_get_target #define atscntrb_cairo_push_group cairo_push_group #define atscntrb_cairo_push_group_with_content cairo_push_group_with_content #define atscntrb_cairo_pop_group cairo_pop_group #define atscntrb_cairo_pop_group_to_source cairo_pop_group_to_source #define atscntrb_cairo_get_group_target cairo_get_group_target #define atscntrb_cairo_set_source_rgb cairo_set_source_rgb #define atscntrb_cairo_set_source_rgba cairo_set_source_rgba #define atscntrb_cairo_set_source cairo_set_source #define atscntrb_cairo_set_source_surface cairo_set_source_surface #define atscntrb_cairo_get_source cairo_get_source #define atscntrb_cairo_set_antialias cairo_set_antialias #define atscntrb_cairo_get_antialias cairo_get_antialias #define atscntrb_cairo_set_dash cairo_set_dash #define atscntrb_cairo_get_dash_count cairo_get_dash_count #define atscntrb_cairo_set_fill_rule cairo_set_fill_rule #define atscntrb_cairo_get_fill_rule cairo_get_fill_rule #define atscntrb_cairo_set_line_cap cairo_set_line_cap #define atscntrb_cairo_get_line_cap cairo_get_line_cap #define atscntrb_cairo_set_line_join cairo_set_line_join #define atscntrb_cairo_get_line_join cairo_get_line_join #define atscntrb_cairo_set_line_width cairo_set_line_width #define atscntrb_cairo_get_line_width cairo_get_line_width #define atscntrb_cairo_set_miter_limit cairo_set_miter_limit #define atscntrb_cairo_get_miter_limit cairo_get_miter_limit #define atscntrb_cairo_set_operator cairo_set_operator #define atscntrb_cairo_get_operator cairo_get_operator #define atscntrb_cairo_set_tolerance cairo_set_tolerance #define atscntrb_cairo_get_tolerance cairo_get_tolerance #define atscntrb_cairo_clip cairo_clip #define atscntrb_cairo_clip_preserve cairo_clip_preserve #define atscntrb_cairo_clip_extents cairo_clip_extents #define atscntrb_cairo_in_clip cairo_in_clip #define atscntrb_cairo_reset_clip cairo_reset_clip #define atscntrb_cairo_fill cairo_fill #define atscntrb_cairo_fill_preserve cairo_fill_preserve #define atscntrb_cairo_fill_extents cairo_fill_extents #define atscntrb_cairo_in_fill cairo_in_fill #define atscntrb_cairo_mask cairo_mask #define atscntrb_cairo_mask_surface cairo_mask_surface #define atscntrb_cairo_paint cairo_paint #define atscntrb_cairo_paint_with_alpha cairo_paint_with_alpha #define atscntrb_cairo_stroke cairo_stroke #define atscntrb_cairo_stroke_preserve cairo_stroke_preserve #define atscntrb_cairo_stroke_extents cairo_stroke_extents #define atscntrb_cairo_in_stroke cairo_in_stroke #define atscntrb_cairo_copy_page cairo_copy_page #define atscntrb_cairo_show_page cairo_show_page #define atscntrb_cairo_get_reference_count cairo_get_reference_count #define atscntrb_cairo_set_user_data cairo_set_user_data #define atscntrb_cairo_get_user_data cairo_get_user_data // // Drawing: cairo-text // #define atscntrb_cairo_select_font_face cairo_select_font_face #define atscntrb_cairo_set_font_size cairo_set_font_size #define atscntrb_cairo_set_font_matrix cairo_set_font_matrix #define atscntrb_cairo_get_font_matrix cairo_get_font_matrix #define atscntrb_cairo_set_font_options cairo_set_font_options #define atscntrb_cairo_get_font_options cairo_get_font_options #define atscntrb_cairo_set_font_face cairo_set_font_face #define atscntrb_cairo_get_font_face cairo_get_font_face #define atscntrb_cairo_set_scaled_font cairo_set_scaled_font #define atscntrb_cairo_get_scaled_font cairo_get_scaled_font #define atscntrb_cairo_show_text cairo_show_text #define atscntrb_cairo_show_glyphs cairo_show_glyphs #define atscntrb_cairo_show_text_glyphs cairo_show_text_glyphs #define atscntrb_cairo_font_extents cairo_font_extents #define atscntrb_cairo_text_extents cairo_text_extents #define atscntrb_cairo_glyph_extents cairo_glyph_extents #define atscntrb_cairo_toy_font_face_create cairo_toy_font_face_create #define atscntrb_cairo_toy_font_face_get_family cairo_toy_font_face_get_family #define atscntrb_cairo_toy_font_face_get_slant cairo_toy_font_face_get_slant #define atscntrb_cairo_toy_font_face_get_weight cairo_toy_font_face_get_weight #define atscntrb_cairo_glyph_allocate cairo_glyph_allocate #define atscntrb_cairo_glyph_free cairo_glyph_free #define atscntrb_cairo_text_cluster_allocate cairo_text_cluster_allocate #define atscntrb_cairo_text_cluster_free cairo_text_cluster_free // // Drawing: cairo-Paths // #define atscntrb_cairo_copy_path cairo_copy_path #define atscntrb_cairo_copy_path_flat cairo_copy_path_flat #define atscntrb_cairo_path_destroy cairo_path_destroy #define atscntrb_cairo_append_path cairo_append_path #define atscntrb_cairo_get_current_point cairo_get_current_point #define atscntrb_cairo_has_current_point cairo_has_current_point #define atscntrb_cairo_new_path cairo_new_path #define atscntrb_cairo_new_sub_path cairo_new_sub_path #define atscntrb_cairo_close_path cairo_close_path #define atscntrb_cairo_arc cairo_arc #define atscntrb_cairo_arc_negative cairo_arc_negative #define atscntrb_cairo_rectangle cairo_rectangle #define atscntrb_cairo_move_to cairo_move_to #define atscntrb_cairo_line_to cairo_line_to #define atscntrb_cairo_curve_to cairo_curve_to #define atscntrb_cairo_rel_move_to cairo_rel_move_to #define atscntrb_cairo_rel_line_to cairo_rel_line_to #define atscntrb_cairo_rel_curve_to cairo_rel_curve_to #define atscntrb_cairo_text_path cairo_text_path #define atscntrb_cairo_glyph_path cairo_glyph_path #define atscntrb_cairo_path_extents cairo_path_extents // // Drawing: cairo-Transformations // #define atscntrb_cairo_translate cairo_translate #define atscntrb_cairo_scale cairo_scale #define atscntrb_cairo_rotate cairo_rotate #define atscntrb_cairo_transform cairo_transform #define atscntrb_cairo_set_matrix cairo_set_matrix #define atscntrb_cairo_get_matrix cairo_get_matrix #define atscntrb_cairo_identity_matrix cairo_identity_matrix #define atscntrb_cairo_user_to_device cairo_user_to_device #define atscntrb_cairo_user_to_device_distance cairo_user_to_device_distance #define atscntrb_cairo_device_to_user cairo_device_to_user #define atscntrb_cairo_device_to_user_distance cairo_device_to_user_distance // /* ****** ****** */ // // Surfaces: cairo-cairo-surface-t // #define atscntrb_cairo_surface_create_similar cairo_surface_create_similar #define atscntrb_cairo_surface_create_similar_image cairo_surface_create_similar_image #define atscntrb_cairo_surface_create_for_rectangle cairo_surface_create_for_rectangle #define atscntrb_cairo_surface_reference cairo_surface_reference #define atscntrb_cairo_surface_destroy cairo_surface_destroy #define atscntrb_cairo_surface_status cairo_surface_status #define atscntrb_cairo_surface_finish cairo_surface_finish // // // Surfaces: cairo-Image-Surfaces // #define atscntrb_cairo_format_stride_for_width cairo_format_stride_for_width #define atscntrb_cairo_image_surface_create cairo_image_surface_create #define atscntrb_cairo_image_surface_create_for_data cairo_image_surface_create_for_data #define atscntrb_cairo_image_surface_get_data cairo_image_surface_get_data #define atscntrb_cairo_image_surface_get_format cairo_image_surface_get_format #define atscntrb_cairo_image_surface_get_width cairo_image_surface_get_width #define atscntrb_cairo_image_surface_get_height cairo_image_surface_get_height #define atscntrb_cairo_image_surface_get_stride cairo_image_surface_get_stride // // Surfaces: cairo-PNG-Support // #define atscntrb_cairo_image_surface_create_from_png cairo_image_surface_create_from_png #define atscntrb_cairo_image_surface_create_from_png_stream cairo_image_surface_create_from_png_stream #define atscntrb_cairo_surface_write_to_png cairo_surface_write_to_png #define atscntrb_cairo_surface_write_to_png_stream cairo_surface_write_to_png_stream // // Surfaces: cairo-PDF-Surfaces // #define atscntrb_cairo_pdf_surface_create cairo_pdf_surface_create #define atscntrb_cairo_pdf_surface_create_for_stream cairo_pdf_surface_create_for_stream #define atscntrb_cairo_pdf_surface_restrict_to_version cairo_pdf_surface_restrict_to_version #define atscntrb_cairo_pdf_version_to_string cairo_pdf_version_to_string #define atscntrb_cairo_pdf_surface_set_size cairo_pdf_surface_set_size // // Surfaces: cairo-PostScript-Surfaces // #define atscntrb_cairo_ps_surface_create cairo_ps_surface_create #define atscntrb_cairo_ps_surface_create_for_stream cairo_ps_surface_create_for_stream #define atscntrb_cairo_ps_surface_restrict_to_level cairo_ps_surface_restrict_to_level #define atscntrb_cairo_ps_get_levels cairo_ps_get_levels #define atscntrb_cairo_ps_level_to_string cairo_ps_level_to_string #define atscntrb_cairo_ps_surface_get_eps cairo_ps_surface_get_eps #define atscntrb_cairo_ps_surface_set_eps cairo_ps_surface_set_eps #define atscntrb_cairo_ps_surface_set_size cairo_ps_surface_set_size #define atscntrb_cairo_ps_surface_dsc_begin_setup cairo_ps_surface_dsc_begin_setup #define atscntrb_cairo_ps_surface_dsc_begin_page_setup cairo_ps_surface_dsc_begin_page_setup #define atscntrb_cairo_ps_surface_dsc_comment cairo_ps_surface_dsc_comment // /* ****** ****** */ // // Utilities: cairo-cairo-matrix-t // #define atscntrb_cairo_matrix_init cairo_matrix_init #define atscntrb_cairo_matrix_init_identity cairo_matrix_init_identity #define atscntrb_cairo_matrix_init_translate cairo_matrix_init_translate #define atscntrb_cairo_matrix_init_scale cairo_matrix_init_scale #define atscntrb_cairo_matrix_init_rotate cairo_matrix_init_rotate #define atscntrb_cairo_matrix_translate cairo_matrix_translate #define atscntrb_cairo_matrix_scale cairo_matrix_scale #define atscntrb_cairo_matrix_rotate cairo_matrix_rotate #define atscntrb_cairo_matrix_invert cairo_matrix_invert #define atscntrb_cairo_matrix_multiply cairo_matrix_multiply #define atscntrb_cairo_matrix_transform_distance cairo_matrix_transform_distance #define atscntrb_cairo_matrix_transform_point cairo_matrix_transform_point // /* ****** ****** */ #endif // ifndef CAIRO_CAIRO_CATS /* ****** ****** */ /* end of [cairo.cats] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/CATS/CODEGEN/cairo.atxt0000644000175000017500000002155613431250607031717 0ustar brandonbrandon%{ #define ATSCODEFORMAT "txt" #if (ATSCODEFORMAT == "txt") #include "utils/atsdoc/HATS/postiatsatxt.hats" #endif // end of [ATSCCODEFORMAT] val _thisfilename = atext_strcst"cairo.cats" val () = theAtextMap_insert_str ("thisfilename", _thisfilename) fun atscntrb_define (fname: string): atext = ( atext_strptr (sprintf ("#define atscntrb_%s %s", @(fname, fname))) ) // end of [atscntrb_define] %}\ \ #atscode_banner_for_C() #atscode_copyright_LGPL_for_C() #atscode_separator_for_C() /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/cairo.atxt ** Time of generation: #timestamp() */ #atscode_separator_for_C() /* #atscode_author("Hongwei Xi") #atscode_authoremail("hwxi AT cs DOT bu DOT edu") #atscode_start_time("May, 2012") */ #atscode_separator_for_C() \#ifndef CAIRO_CAIRO_CATS \#define CAIRO_CAIRO_CATS #atscode_separator_for_C() \#include \#ifdef CAIRO_HAS_PS_SURFACE \#include \#endif \#ifdef CAIRO_HAS_PDF_SURFACE \#include \#endif #atscode_separator_for_C() ATSinline() atstype_bool atscntrb_cairo_eq_int_int ( atstype_int x, atstype_int y ) { return (x==y ? atsbool_true : atsbool_false) ; } /* end of [atscntrb_cairo_eq_int_int] */ #atscode_separator_for_C() #atscntrb_define("CAIRO_VERSION_ENCODE") #atscntrb_define("cairo_version") ATSinline() atstype_string atscntrb_cairo_version_string() { return (void*)(cairo_version_string()) ; } /* endfun */ #atscode_separator_for_C() #atscntrb_define("cairo_device_reference") #atscntrb_define("cairo_device_destroy") #atscntrb_define("cairo_pattern_reference") #atscntrb_define("cairo_pattern_destroy") #atscode_separator_for_C() #atscode_separator_for_C() // // Drawing: cairo-cairo-t // #atscntrb_define("cairo_create") #atscntrb_define("cairo_reference") #atscntrb_define("cairo_destroy") #atscntrb_define("cairo_status") #atscntrb_define("cairo_status_to_string") #atscntrb_define("cairo_save") #atscntrb_define("cairo_restore") #atscntrb_define("cairo_get_target") #atscntrb_define("cairo_push_group") #atscntrb_define("cairo_push_group_with_content") #atscntrb_define("cairo_pop_group") #atscntrb_define("cairo_pop_group_to_source") #atscntrb_define("cairo_get_group_target") #atscntrb_define("cairo_set_source_rgb") #atscntrb_define("cairo_set_source_rgba") #atscntrb_define("cairo_set_source") #atscntrb_define("cairo_set_source_surface") #atscntrb_define("cairo_get_source") #atscntrb_define("cairo_set_antialias") #atscntrb_define("cairo_get_antialias") #atscntrb_define("cairo_set_dash") #atscntrb_define("cairo_get_dash_count") #atscntrb_define("cairo_set_fill_rule") #atscntrb_define("cairo_get_fill_rule") #atscntrb_define("cairo_set_line_cap") #atscntrb_define("cairo_get_line_cap") #atscntrb_define("cairo_set_line_join") #atscntrb_define("cairo_get_line_join") #atscntrb_define("cairo_set_line_width") #atscntrb_define("cairo_get_line_width") #atscntrb_define("cairo_set_miter_limit") #atscntrb_define("cairo_get_miter_limit") #atscntrb_define("cairo_set_operator") #atscntrb_define("cairo_get_operator") #atscntrb_define("cairo_set_tolerance") #atscntrb_define("cairo_get_tolerance") #atscntrb_define("cairo_clip") #atscntrb_define("cairo_clip_preserve") #atscntrb_define("cairo_clip_extents") #atscntrb_define("cairo_in_clip") #atscntrb_define("cairo_reset_clip") #atscntrb_define("cairo_fill") #atscntrb_define("cairo_fill_preserve") #atscntrb_define("cairo_fill_extents") #atscntrb_define("cairo_in_fill") #atscntrb_define("cairo_mask") #atscntrb_define("cairo_mask_surface") #atscntrb_define("cairo_paint") #atscntrb_define("cairo_paint_with_alpha") #atscntrb_define("cairo_stroke") #atscntrb_define("cairo_stroke_preserve") #atscntrb_define("cairo_stroke_extents") #atscntrb_define("cairo_in_stroke") #atscntrb_define("cairo_copy_page") #atscntrb_define("cairo_show_page") #atscntrb_define("cairo_get_reference_count") #atscntrb_define("cairo_set_user_data") #atscntrb_define("cairo_get_user_data") // // Drawing: cairo-text // #atscntrb_define("cairo_select_font_face") #atscntrb_define("cairo_set_font_size") #atscntrb_define("cairo_set_font_matrix") #atscntrb_define("cairo_get_font_matrix") #atscntrb_define("cairo_set_font_options") #atscntrb_define("cairo_get_font_options") #atscntrb_define("cairo_set_font_face") #atscntrb_define("cairo_get_font_face") #atscntrb_define("cairo_set_scaled_font") #atscntrb_define("cairo_get_scaled_font") #atscntrb_define("cairo_show_text") #atscntrb_define("cairo_show_glyphs") #atscntrb_define("cairo_show_text_glyphs") #atscntrb_define("cairo_font_extents") #atscntrb_define("cairo_text_extents") #atscntrb_define("cairo_glyph_extents") #atscntrb_define("cairo_toy_font_face_create") #atscntrb_define("cairo_toy_font_face_get_family") #atscntrb_define("cairo_toy_font_face_get_slant") #atscntrb_define("cairo_toy_font_face_get_weight") #atscntrb_define("cairo_glyph_allocate") #atscntrb_define("cairo_glyph_free") #atscntrb_define("cairo_text_cluster_allocate") #atscntrb_define("cairo_text_cluster_free") // // Drawing: cairo-Paths // #atscntrb_define("cairo_copy_path") #atscntrb_define("cairo_copy_path_flat") #atscntrb_define("cairo_path_destroy") #atscntrb_define("cairo_append_path") #atscntrb_define("cairo_get_current_point") #atscntrb_define("cairo_has_current_point") #atscntrb_define("cairo_new_path") #atscntrb_define("cairo_new_sub_path") #atscntrb_define("cairo_close_path") #atscntrb_define("cairo_arc") #atscntrb_define("cairo_arc_negative") #atscntrb_define("cairo_rectangle") #atscntrb_define("cairo_move_to") #atscntrb_define("cairo_line_to") #atscntrb_define("cairo_curve_to") #atscntrb_define("cairo_rel_move_to") #atscntrb_define("cairo_rel_line_to") #atscntrb_define("cairo_rel_curve_to") #atscntrb_define("cairo_text_path") #atscntrb_define("cairo_glyph_path") #atscntrb_define("cairo_path_extents") // // Drawing: cairo-Transformations // #atscntrb_define("cairo_translate") #atscntrb_define("cairo_scale") #atscntrb_define("cairo_rotate") #atscntrb_define("cairo_transform") #atscntrb_define("cairo_set_matrix") #atscntrb_define("cairo_get_matrix") #atscntrb_define("cairo_identity_matrix") #atscntrb_define("cairo_user_to_device") #atscntrb_define("cairo_user_to_device_distance") #atscntrb_define("cairo_device_to_user") #atscntrb_define("cairo_device_to_user_distance") // #atscode_separator_for_C() // // Surfaces: cairo-cairo-surface-t // #atscntrb_define("cairo_surface_create_similar") #atscntrb_define("cairo_surface_create_similar_image") #atscntrb_define("cairo_surface_create_for_rectangle") #atscntrb_define("cairo_surface_reference") #atscntrb_define("cairo_surface_destroy") #atscntrb_define("cairo_surface_status") #atscntrb_define("cairo_surface_finish") // // // Surfaces: cairo-Image-Surfaces // #atscntrb_define("cairo_format_stride_for_width") #atscntrb_define("cairo_image_surface_create") #atscntrb_define("cairo_image_surface_create_for_data") #atscntrb_define("cairo_image_surface_get_data") #atscntrb_define("cairo_image_surface_get_format") #atscntrb_define("cairo_image_surface_get_width") #atscntrb_define("cairo_image_surface_get_height") #atscntrb_define("cairo_image_surface_get_stride") // // Surfaces: cairo-PNG-Support // #atscntrb_define("cairo_image_surface_create_from_png") #atscntrb_define("cairo_image_surface_create_from_png_stream") #atscntrb_define("cairo_surface_write_to_png") #atscntrb_define("cairo_surface_write_to_png_stream") // // Surfaces: cairo-PDF-Surfaces // #atscntrb_define("cairo_pdf_surface_create") #atscntrb_define("cairo_pdf_surface_create_for_stream") #atscntrb_define("cairo_pdf_surface_restrict_to_version") #atscntrb_define("cairo_pdf_version_to_string") #atscntrb_define("cairo_pdf_surface_set_size") // // Surfaces: cairo-PostScript-Surfaces // #atscntrb_define("cairo_ps_surface_create") #atscntrb_define("cairo_ps_surface_create_for_stream") #atscntrb_define("cairo_ps_surface_restrict_to_level") #atscntrb_define("cairo_ps_get_levels") #atscntrb_define("cairo_ps_level_to_string") #atscntrb_define("cairo_ps_surface_get_eps") #atscntrb_define("cairo_ps_surface_set_eps") #atscntrb_define("cairo_ps_surface_set_size") #atscntrb_define("cairo_ps_surface_dsc_begin_setup") #atscntrb_define("cairo_ps_surface_dsc_begin_page_setup") #atscntrb_define("cairo_ps_surface_dsc_comment") // #atscode_separator_for_C() // // Utilities: cairo-cairo-matrix-t // #atscntrb_define("cairo_matrix_init") #atscntrb_define("cairo_matrix_init_identity") #atscntrb_define("cairo_matrix_init_translate") #atscntrb_define("cairo_matrix_init_scale") #atscntrb_define("cairo_matrix_init_rotate") #atscntrb_define("cairo_matrix_translate") #atscntrb_define("cairo_matrix_scale") #atscntrb_define("cairo_matrix_rotate") #atscntrb_define("cairo_matrix_invert") #atscntrb_define("cairo_matrix_multiply") #atscntrb_define("cairo_matrix_transform_distance") #atscntrb_define("cairo_matrix_transform_point") // #atscode_separator_for_C() \#endif // ifndef CAIRO_CAIRO_CATS #atscode_separator_for_C() #atscode_eof_strsub_for_C("\#thisfilename$")\ %{ implement main () = fprint_filsub (stdout_ref, "cairo_atxt.txt") %}\ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/CATS/CODEGEN/Makefile0000644000175000017500000000121213431250607031343 0ustar brandonbrandon# # # A simple Makefile # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### all:: ###### all:: cairo.cats cairo.cats: cairo_atxt.exe ; ./$< > $@ cairo_atxt.exe: cairo_atxt.dats $(ATSCC) -D_ATS_GCATS -o $@ cairo_atxt.dats -latsdoc cairo_atxt.dats: cairo.atxt $(ATSDOC) --outcode $@ -i cairo.atxt > cairo_atxt.txt clean:: ; $(RMF) cairo_atxt.exe cleanall:: ; $(RMF) cairo.cats ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/0000755000175000017500000000000013431250607027354 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/bookinfo.db0000644000175000017500000000302413431250607031470 0ustar brandonbrandon ATS/Cairo Tutorial Hongwei Xi
hwxiATcsDOTbuDOTedu
2010-04-21 0.0.1 This tutorial focuses on employing types in ATS to facilitate safe and reliable programming with cairo, a comprehensive drawing package supporting 2D graphics, through the API for cairo in ATS. In particular, it is demonstrated concretely that linear types can be used effectively to prevent resources (such as contexts and surfaces created for drawing) from being leaked due to programming errors. It is assumed that the reader have already acquired certain level of familiarity with ATS. 2010-2013 Hongwei Xi Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". ATS ATS2 Cairo 2D Graphics
ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/Makefile0000644000175000017500000000606213431250607031020 0ustar brandonbrandon# # # A Simple Makefile # # ###### ATSHOMEQ="$(ATSHOME)" ###### ATSCC=$(ATSHOMEQ)/bin/atscc ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### DBSRC= \ chap_hello_atxt.db \ chap_objtypes_atxt.db \ chap_funtypes_atxt.db \ chap_drawline_atxt.db \ chap_drawrectcirc_atxt.db \ chap_drawtext_atxt.db \ ###### all:: html ###### pdf: main.db $(DBSRC) ; jw -b pdf --output PDF/ main.db html: main.db $(DBSRC) ; jw -b html --output HTML/ main.db ###### chap_hello.exe: \ chap_hello_atxt.dats; $(ATSCC) -D_ATS_GCATS -o $@ $< -latsdoc chap_hello_atxt.dats: \ ATEXT/chap_hello.atxt; $(ATSDOC) --outcode $@ -i $< > chap_hello_atxt.txt chap_hello_atxt.db: chap_hello.exe ; ./chap_hello.exe > $@ clean:: ; $(RMF) chap_hello.exe cleanall:: ; $(RMF) chap_hello_atxt.* ###### chap_objtypes.exe: \ chap_objtypes_atxt.dats; $(ATSCC) -D_ATS_GCATS -o $@ $< -latsdoc chap_objtypes_atxt.dats: \ ATEXT/chap_objtypes.atxt; $(ATSDOC) --outcode $@ -i $< > chap_objtypes_atxt.txt chap_objtypes_atxt.db: chap_objtypes.exe ; ./chap_objtypes.exe > $@ clean:: ; $(RMF) chap_objtypes.exe cleanall:: ; $(RMF) chap_objtypes_atxt.* ###### chap_funtypes.exe: \ chap_funtypes_atxt.dats; $(ATSCC) -D_ATS_GCATS -o $@ $< -latsdoc chap_funtypes_atxt.dats: \ ATEXT/chap_funtypes.atxt; $(ATSDOC) --outcode $@ -i $< > chap_funtypes_atxt.txt chap_funtypes_atxt.db: chap_funtypes.exe ; ./chap_funtypes.exe > $@ clean:: ; $(RMF) chap_funtypes.exe cleanall:: ; $(RMF) chap_funtypes_atxt.* ###### chap_drawline.exe: \ chap_drawline_atxt.dats; $(ATSCC) -D_ATS_GCATS -o $@ $< -latsdoc chap_drawline_atxt.dats: \ ATEXT/chap_drawline.atxt; $(ATSDOC) --outcode $@ -i $< > chap_drawline_atxt.txt chap_drawline_atxt.db: chap_drawline.exe ; ./chap_drawline.exe > $@ clean:: ; $(RMF) chap_drawline.exe cleanall:: ; $(RMF) chap_drawline_atxt.* ###### chap_drawrectcirc.exe: \ chap_drawrectcirc_atxt.dats; $(ATSCC) -D_ATS_GCATS -o $@ $< -latsdoc chap_drawrectcirc_atxt.dats: \ ATEXT/chap_drawrectcirc.atxt; $(ATSDOC) --outcode $@ -i $< > chap_drawrectcirc_atxt.txt chap_drawrectcirc_atxt.db: chap_drawrectcirc.exe ; ./chap_drawrectcirc.exe > $@ clean:: ; $(RMF) chap_drawrectcirc.exe cleanall:: ; $(RMF) chap_drawrectcirc_atxt.* ###### chap_drawtext.exe: \ chap_drawtext_atxt.dats; $(ATSCC) -D_ATS_GCATS -o $@ $< -latsdoc chap_drawtext_atxt.dats: \ ATEXT/chap_drawtext.atxt; $(ATSDOC) --outcode $@ -i $< > chap_drawtext_atxt.txt chap_drawtext_atxt.db: chap_drawtext.exe ; ./chap_drawtext.exe > $@ clean:: ; $(RMF) chap_drawtext.exe cleanall:: ; $(RMF) chap_drawtext_atxt.* ###### upload:: upload_html upload_html: html; scp -r HTML/*.html \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/DOCUMENT/ATS2CAIRO/HTML ###### upload_code: ; scp -r CODE/*.dats \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/DOCUMENT/ATS2CAIRO/CODE upload_image: ; scp -r IMAGE/*.png \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/DOCUMENT/ATS2CAIRO/IMAGE ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c *_?ats.o cleanall:: clean cleanall:: ; $(RMF) HTML/*.html cleanall:: ; make -C CODE cleanall ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/0000755000175000017500000000000013431250607030176 5ustar brandonbrandon././@LongLink0000644000000000000000000000015700000000000011606 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_linejoin.pngATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_li0000644000175000017500000001037613431250607032320 0ustar brandonbrandon‰PNG  IHDR,,y}ŽubKGDÿÿÿ ½§“³IDATxœíÝ»¯$GÆáwm#/øn9‚µ%.k¯q‚.1ü"A€D‚â’CFläX$YlÃÚ È ZïÚFàË!˜³çLéËWUoUý©åãÝéÞ~ÕßTU÷|+õáqIWj€¼n«}A®ˆ‚tïŽÚäQIGµ@^,Í `hF/ë1Q°4àAmŠÕ‘¤û+ €Œz¸KxùÄÏV; ÙõP°Kü  3=¬Ë‰Ÿt¦‡‚Å DëÑÄÏ`å6Ioêø.áë’.T="HxDÇÅj·=\õˆdÓú”pßi!Ð) €fP°4£õ‚µï1m`éo:»èþתG{\”ôŽÎ¬·%ÝYñ¸dÒò”ðCÚü·o@gZ.Xç­U±Žt¨å‚uÞÝ@î¢`h ø§ÎÞ!Üm×*Üâd÷ÔFw 3­N §teZt¦Õ‚5¥Q°€ÎP°4£Õ‚5åÁP:ÓjÁb„  $½¡Ãw éï º‡u¸Xí¶K•Ž@-N ç¬M±Žt¤Å‚5gmŠu, #,Í `hF‹‹5,MHõqOmôw:ÒÚ+ÕÇ=…þî@GZ+XK¦xL NÜQûfZ²ˆÎÂ{9÷HzRÒÛÿNÒ3’nV;" ¢_júúÕnûE•#Ë}’¾'éºÎžÿëÛß»·ÚÑ•üQó Öªé8>,éeÎáåퟆqMó Ö+UŽt IºªéY\ݾèÞš_¬èïž×5?‹U9R °OhyÁúx…ãí݃Ú,¦ÏÍâ¦6>Àl-Ý%œòOœ÷Ú?E$IŸ‘t÷‚×ݽ}íS±‡3¼{µ|ºýª¤Ç’MKkÍóT<‹ïc+_KÁŠõ-IßYøÚHúnà±dÓÒƒ£kGXˆE^†È£¥‚ÅË yx!#Sû¸§6ú»Ç"/äafN÷ÔF÷8äáe˜î©þî둇ò0²¦{j£¿ûräáe¸<ܧ„9†¨ {—#/ÃåAÁÂäáe¸<(X˜ƒ<¼ — s‡—áòp/X9d³8Îyx!#kûT§6úW/C^†ÌÃy„uIÒû2¼ï]’>á}{G^†Ìù`åš2ì<¼ ™‡sÁʹøg½°hŠ<¼ ™ S‘‡—!ó `a*òð2dÎkÈ9º1òð2d®·//jsË6WA}G›»!ÿÍôþ½!/Ãæá:ŠêSÒDÿj#äáeØ<\ V‰9´í<Ýyx6ׂUbm;O7D^†Íõ` û bŠ<¼ › S‡ò0Ù§:µÑ¿z:òðBFrô©NmÖý«M‡—¡ópœ–Š2ì=Œ<¼  ‡‡—¡ó `áòð2t,B^†Îñ`•|`Íòá83äáeè<ܾü|A›žÒ9Z¿îó†¤{´¹#‚³ÈÃËðy¸°rõ©N±î_m€<¼ Ÿ‡[Áª1µö!/ÃçáV°j,òÙ-,!/ÃçAÁ2 Ä yx> –Y fÈÃËðy¸¬áçèfÈÃËðy8=Ö»OuŠmÿêÊÈà yÈk„õA-?ž··Û·o÷[‘‡òWÁZ3ô¼*é¥Jûîyx!õS°^Øn5öÝ+òðBò*XkîF<¿Ýjì»Wäá…<$ÝQûNXsR^к6!/ä! Vľ{E^ÈÃÈÚ>Õï׿Kš]õ¯®ˆ<¼Ç–ËÖš ~CÒ?¶Û땎¡7äá…<¶z(X/nÿ{¤uwB,1A^Èc«‡‚õBâç’ÇÐòðB[½¬.nÝ /ä±åR°Ö>·óbòOå=†Þ‡òØr(X$]^ñúç?ÏuY^_¯…<¼‡™‡µüVë»Ú4Éß¹wÅ{iÓ3{täá…Õ)M÷¯.„<¼Ç9jL sô©Niºu!äá…<ÎQ£`•šŸ¯yÍÎótòðBçhm„µä¹‘æž5)Œ<¼Ç9Z+X¥?A¸@ÎGñÈã¬óqœ<⑇‘œ}ªSší_]yx!J°rö©Ni¶uäá…<h©`-m8v$†½)äá…<h©`­9©ÍRyx!F)XMݺ-ˆ<¼Ç¥ Vé‡âvšì_]yx!J¬}ªs¼¶×þÕäá…<Ì”èSÒdÿêÌÈà yLPr„U¢OuJ“ý«3#/ä1AÉ‚Uú;R‘ïÑãB/yx! Z)Xk#Þƒ äVä<& `MÃr+òˆG´²†U;ÖLnEñÈÃHÉ>Õ)ô¯>F^ÈÃLÉ>Õ)Íõ¯Îˆ<¼ÇD¥¦„%ûT§4׿:#òðB•*XµççïÕÓ<<¼ÇD-Œ°"ž1‰x/>Ñ7È#yLÔBÁrùáÙ xä1k:. òˆGFjô©Niªu&äá…{¿@È#y¬@Á2 $òðB+¸­aµHïk&ä<Œ8÷©Né¹5yx!3Î}ªSlûW /ä±Rô”йOuŠmÿêäá…·c׿z%òðB¢ VK}ªSzê_Mä­§<šêSb׿zò hyD°ZêSb׿zò hyD¬V¿#ušÅÂbò ªçáP°w,nÝ òÈ¡z¬[U$yGÕópXÃê%^ÖLÈ#yåÑbŸê”úW“yäÒCMö©N±ê_½yG.Õ󈘶ا:ŪõBäqŒÕ)6ý« ï›<â‘ÇY«ò¨Y°j÷©N9R»Ã^ò8‹\ ^ÈÃË¢s´ä[ÓHú÷’ èI× ìƒ<¦!/³óX2ÂâÓcºçŠ<¦#/³ÏÕ’‚UònKëJœ«ØG/ÈÃËìsµ¤`9üóß­(q®n/°^Dü;œ‡üVÒ_ ì§u–ô»¹/b„•W‰sõ¯ûèE‰suSÒ—%]+°¯V]ÓæÍîùÅ+¯犂5]©sõ’¤/JúO¡ýµäMI_к§ä'»m»Ã¥ßm{]ùûW߯Í'Uí¿«ûvSÒ} ÏñRŸ×æ+,µÿî.Û[Ûs²ØÜÖ%Iï]³ÃÁÜ¥üýįKúyæ}ôàg’^+¼ÏßKúzá}:ûš6礘ϩ~•nmûì¢3=ÏC’®Vúûµ°]Ýž£Z~š8®‘¶Ÿ¬>‹š?Âbýj¾çìUIŸ”ôl}µæYmÎÍ«á’~]qÿµ=%é›o4·`ñPÜ|¥ÎÙ5IŸ–ô}•Ÿú8zM›sñ)Õ¿c÷®¤¯HzºòqÔ𴤯jsV›» ü%1ÊšëyI¿)¼Ï{$=)é mþ ¹‘Üôœ¤gä÷Oe]Ò¦päW’þ^û Dú?€~ÀgIEND®B`‚././@LongLink0000644000000000000000000000015700000000000011606 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_showtext.pngATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_sh0000644000175000017500000001177613431250607032333 0ustar brandonbrandon‰PNG  IHDR,<Ü܇ZbKGDÿÿÿ ½§“³IDATxœíytõuÇ¿3o×ÓÛ$=mÖ¾X>–ä ›Õ$(KjHiBLJZÈaq“¨“íá@›°$ …ÐbJCK=¤œcˆÁŒ –,/²µY»ä·Ho×Ûß¼éZ%½™ß{o$âßç¿§¹ó›«;3w~˽÷P( …B¡P( …B¡P( …B¡P(”ó æ±ÇøÇVZ …B!A àÑ•V‚B¡PH`WZ …B!…:, …²j ‹B¡¬¨Ã¢P(«eÿÞU °ð*äæÖ®¨ …ÛÝŠ@ ÁàÄã“à¸€ä¬ Ã( RY ÑB£ÉGNNrsë›[•Ê´rÊSΔÃÃo¬¨Só"Xðw­¶fó˜LŸ1Ôêü¥P—²ŠñxÚàñ´ Ê”–Þ­¶$åq¥ÔJQV‘ˆ=={àv!Y{v»vûÔÖþ-ÊËwJÒ.åOŸï$Ä:HyyR‡E9—PhÇŽíF,æ]iU(”´ “îç‰D'NßIÑsl¶wCmV…Ãòû;12òÆÇ?:¸1÷Œ ÐéÊPQq ŠŠ®˪ˆ¯‰ÆŒ¨Õy³ÓÄÄ!œ9ó/ˆDœ‹è@$âD Ѓ±±ßÂdjD}ý}Ë0‹y Å¿¢V[ V[2>?ìÇððp:?šu‹1s¯ýþ.Øl¿À °ðk¨¬ükèõU_†hÔ…±±ÿ…Ͷñ¸ŸHÞç;‡ã÷¦žÒÒPUu{ÊsÒ}ƼÞvôö>`phQYÒŔ岱ÍöB¡a"fp8 —µÃŠÅ\èéÙƒ‰‰C·¢»ûi ½ŽµkïG^Þ…jð<½þ ñ9>ß)´µíB}ýn”–’Í!Jƒp${0Ø·Lz,$óâÌ™1>þ!QÄýBx8Âéüåå;QSs'F‘v+Åððë~<Ÿù¼\,æ†ËuXÐa¥ÃÙ³ûÐÓ³B÷PÌnr±q6È6¬!èF[Û®¬œÕ\"Nž|CCÿ-I{3 ¼š–³šç9ôö>‹³gß•T!”J£àñ`p##oA̱IM(4Š£G§ó`†/Ò\xŒŒüÇŽÝŸv¬Y4:öö{04ô«¬œ•ÔØlûÑÛ+쬀ÊÅÆÙ"K‡ âøñ!uIÚîToèUÑn8)vûûþUVúôö>¿¿K}ÄÐë+Eeúúþ_|ñ=ŒŽ¾`°Kí¼ÂáQ?¾‘ˆMÒv}¾8uê$“q"ùhÔ…ãÇïÃäd¯¤zdËäd?z{÷9™T2r±±ÈÎaq\H2q›ŠþþWD“0I˜œÌ~Å󺻺,7Ýb¹€H.™3/âÈ‘;pèÐ7pâÄÐßÿ ÆÇÿ€HÄ.™>Éd˜T*3´ÚhµÅDCŸ¯ÝÝOèGGÇ?"%Òc9q8ÞOëÙ˜ï´äbc©ÝÖààk‡Å–UÂjý*,– ¡Vççcðû;a·¿htBälÝÝÏ`Û¶_B¡ÐH¢·Ri@QÑ—¥r8.Œññ?­Œƒƒ°Û‡ÒÒoH¢K*¬Ö¯¢¿oZ=×x<·»n÷—!ju>Ìæ 0›7¡ `;Ô꼌ôü/ƒƒ‚2,«FyùN””ì8g…*™ŒâìÙ÷08øH$‚)Ïw8 ´ôÏa2mH)32ò&n"YV ‹e,–  ÕC¡Ð‚㢈Å\ðùŽÃín¬–‚t‡oó‡…+ic“©uöw8|V´—g0¬…RiHy\V+÷blìQ9­¶ÍÍO.X©ÈÏ¿·¢§ç™ÙÕšTD"68 ´ôÆlT\ŠuëZ`è²²›1>þ :;G2lctôm””ÜFh""KXVƒêê»ÐÕõTVíÄb.8Áéü½½ÏÃlÞˆòòÓqYdÄã>Œ½-(£R°aÃÓ0Ö.8Ʋ”•ý%òò¶¡½ýA'Ñ×·[¶¼˜BñAAÁe¨«»7åÒ~ié Ó¡-Ÿcxø ÉçÁXV…â⯣ `;ôúJ°¬±˜Ѩn÷çp:?Ïó³ÏÐJÛ¸¡áïÏù=8øÿSPŸÚÚï ÆqÊjHèpü^ôÅfY6løiÊeU…B‹uë†ÉÔ$z=»}&jžCnnÖ¯,åWÁjý ֮Π…FàóÈZ1Š‹¯Åš5Òõäx> §'N<„öö{çpÇEejk¸è‹4—œœrTWOPÆï?•²—1>þ!QªQQÑ5hjú±hË*QPp6o~õõ÷жKJNN9¶m{ k×îF^ÞVh4V¨Tèõ•ÈË»uu÷à’Kþ óå+-K‰¬I$vIÉääTÊ0 ‹šš»EÛòû»‰bl„¨­Ý%ßU\|Ít ¡0Ëá° ®îïPSs·äKÒ>_Z[ï&ºÏÁãjuŠŠ®&ºnAÁvQ·{ñë¹\âõÀtº2Le„÷~†Ñ¸žX^•Ê„M›ö@§Nc›ë¬ùØXJd3$L&ãðxމÊ]CÔžÑØ­¶DdÌÌÃë= «õ 2%ç¡ÕOd]-:Oâóud¤Gº0 ƒŠŠï ?ÿRô÷ï…ÛÝ"ÁR÷BGǣزå){ÁÉd^¯ð½V(4x•èš$º{½í(/¿yÞy x½í¢çVVþXVM¤ËRP[»+í ®r±±ÔÈÆaE£Žé›Ô(Ñîë ÃÀdjäK7w.Ãz~uÆFQ™px$c]2A¯¯DsóãˆDl°Û`bâû³v^B_ß/°aÃÏ=‰8ÀqÁ6Âa›dá'S×\¸º‰8§ÓP„`ˆzK…R©‡ÕzeÚçÉÅÆR#‡‹‰¯¬hµ% º½Bète×Í<ð-'G¼ýtdãñ¥ åB«-AUÕm¨ªº ±˜>ß1ø|Óùs=MOmhÑ ƒ¡~Á1)WÑHY,-inž[*rrÖ®Z-5FãúŒV²åbc©‘Ã"1°R©O«My’‡6›ögP(rDe8.žO¦å”¥F­6Ãj½bv˜œLÆtÁã9 §mzØJÖóxŽÈÆa% ç*I>V+é¬@¯¯Îè<¹ØXjdã°H^‚ôG*âÃ5©ænH`†àzË›#˪`25ÃdjFUÕmÑß¿.W‹è¹~ç¢_ÂÈ”ð|rÁßÈôXeç©Ã”‹¥F6K­6‹Êp\êàµÅH$&%¹nêöÉõ™*G"쌊œeO&M½¾ ÍÍãäɇár ×¾JÕ{%ÙÃpªTpîc¶(•âzdÓ—…B›Ñyr±±ÔÈÆa‘8±¥5d"‰˜W©2wXé¤rȪT«åáaPR²CÔa%‹Ç7‘8 ‹eÍH;RHÊà„Ã6ÄãþUto¦‹¥F6qXMXVxrqª˜ZQ{<ÏÃç;%*G’œŠ@à4H‡p~¿¸.:]yƺ H}MòQ©ÎhµE¢=‡ÉÉî%®kµ…P(t"R<\.i*†,'r±±ÔÈÆa±¬ ‹xie‡ãQ{~Av:³y Q{‹‰8‰“¨ÅR…EçgÃØØ;hi¹##o¦ìýˆW5HÕƒ™šÛ(xn8lƒß/M\Zªäa†QÂlÞ,zþÐЯE30ä†\l<†Љ…™ÈÆa€Å²UTÆf{W4vŠç“èïß+Ú–ÑØuW¿¯ïeÑ›e· J®JЕŠXÌ…¾¾ÃáÃ;ÑÝý4<ž£iO–†Ã£~]TN¨Ç˜Ÿ/^H±¿ÿ•¬&r£Q'z{ŸGgçO²Òcªä3HgA„çy¢ Ô¥D.6žd¥\,µKV«¨èjшâd2Ž'L™·Äqtu=I5^\|}&jžÃääœ>ýXÊr8ã㟠§çÑvrrÊ—ÅaÍHLÂf{Ç?€––o¡«ë)Œ½ƒ@ +¥‡Ç00ðK´µí" ªîZXx¥h|‘ÏwOˆÏ…ç“p»[ÑÕõ$¾ccï~P¬Ö+‰^$‡ã::Y´ö< àrF{û=èë{™Xï¥@.6ždatômÁšd²™t¦&À׬ù‹éª—©‰Dìhk»+‹ò2SÁ’EE×J¢÷ÄÄg8|øVX­Û¡××€eÕˆÅ\p»[á÷Ÿ&j£¬ì›KZ©AˆXÌ»ýØíÌþe5P© `’Éâq¿`ýïù¨Õù‚¹t*•¥¥7adD¸Z«ÓyÀi”–Þ„‚‚íÐéæ×ç #è‚ßß —ëÑýÿR*+¿KÔ#Ÿ˜8·ûóEËË$>x½'áñ´!rj$ù£K‰\l<ƒÁP'*‰ØÑÚz7´Úb(•†ï„Òè…ßH±½ÔTUÝŽ‰‰ÏDWø’ÉŽƒ¢Eë‡ACÃ’Õ€D"›-³êz}Š‹¿.™.RLF’uçSSs‡èjnuõíp¹Z -¾©Â á° }}/¡¯ï%¨TæÙ‰rŽ›”$; ¼üÛp¹>#ê•'“ ¸\-Dqhr@.6¦¦T*#QÁ©4Ÿ…©>ìîçªpýþ{Á$É¿žK‰B¡CSÓ—4¸¦æ.â¤e!¤Øõ†ahhx0­}äŽÉÔ„ââëDåXVƒææŸ@£!OìǽˆDlˆDl’½H £@cã?¥•jµZ‹™Mz³û0³L’Ã…Ÿ¿€ëÞß-‘ZÙ£×WaãÆŸ§ed†Auõ¨¨øŽ$í_‡ŠŠ[³Ò§¾~7ŒÆu’è#ôú45=Òq® ›6=ŸUx‰¨Õyظqrs¦­väbc(/ß™Õ{=Ûgßvä%˜=’(%C.¸àe\&I{Zmš›ŸBeåw%io†)xKÚç1Œõõ÷/ë6_Vëå°X¶.ºý|¶0 ƒ’’ë±iÓ³)ã¯R¡Ó­ÁæÍ/aÍš›$Ï£dY5rskˆd5šlÞü*+o%Z‚_MÈÅÆ*•ÿœ±Óš½+ ŸDÍÀAµÜ™QCKZ¦¦Ÿo¤º™n¤J Ã0¨©Ù£±)åFªóY©T-–­°X¶"‘`bâ<žVx½Ç²ÚH¡Ð  àr”•}Cæ=E¥2õõ÷¢¬ìfŒ½ »}Ʊb*•ËlG^ÞEP*ÅWgP(4¨®¾¥¥7¥µ‘ê|Ôj òó/Nû¼¥D.66×cëÖÇÈÈ[°Ùö§•þÄðs<ÀÁ«žÀ§—?¼¨`<€Í&¾‡^QÑUÐh¤ß2Xl«zb1/‰I°¬*• *•:]yÖ[Õ»\-8yòeêê~ˆ²²oÍþž»U}(4ˆHÄXÌ •ʦ&ÓÆݪ>¡ÐüþS‡Ç‰ØŸE,æÇM"‘˜ª ¡Ph Pä@¡Ð#'§ ¹¹µÈÍ­ƒÅ²-í*$$!§áóF ЉhÔ‰ẊDÂd2…B ¥Ò¥Ònj——™Ðœœ*ÉV\çoUŸE<îG"áÇE¡Ph TæB£)†NWƒ¡Fcãô0_X‡pø,ÆÇÿ (c±lY²ÕFyؘG8<†@ ñ¸ÑrÕÕƒ¡öÌÔ ö9k߯àèùô°V’L…B‘ž ÚöbǾ]æÌañ ‹þê«VL) …BYŒþš«ÁOÏ»Í:¬#Û~¯%³ba …²Tx,5hÝö}€’S¨qøâÝ8xÕ+¬…B¡,ÎþëžG\•åÞ;¿xÖY²qeŠ‰Ë˜`ph-Á€­`pð‡—G# åü…gø¿?û™Œ–ªdÆW\±À>±û>þøãç–C …"³j  …"uX eÕ@…BY5üi%LI˲Édò!±O—E …B¡P(«‹ÿ²/UŽ_ïIEND®B`‚././@LongLink0000644000000000000000000000015400000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_hello.pngATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_he0000644000175000017500000000406213431250607032303 0ustar brandonbrandon‰PNG  IHDRúP0khµbKGDÿÿÿ ½§“çIDATxœíÜm¬UÇñïA‹ICh)ØRk›Ú¡¤6j#j¥TCR±”BƒX oŒ!!&Ô4Ñ`ã/lD‚¼ðY^` &6<ÈCy¸´¦ªE‚i¡Pú„¥bik¸_œYïîÜsfgvgfw¹¿O²ÉÞ3ÿ9óßÙýïÌœ9{ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDÞ‘l)˜Ÿí.V_•ï·]éûÝ÷í„â«ØÄH²oåXwndÝÏCd,°ïFjæýEzé ÐEdШÐEƺȠB¬ÐmØM`ëÀ^;v8yþ Ø7ÀÞÛë,G؇Á¾öذCI¾;À†À¾ïcz–ߣAž{"±¿Äžˆ›<º¬M.%í«v£æ6 ìf°Í`û“ekÚ÷Ûv»g‚Ý öB’û>°§ÀV‚Mè¾ÿÚõbÔݦø  GÖo~û˜Ëè¯âÛk6ìþ¹6÷ù`ÝìÆ@.{"±»±ß Ä]ˆ›é·ä}•õ~ÙEI¦—­É·~t›×ÉÈy;Ø:º½6fFÝm°¸È(ÞÿÜ Ü ö®*3 ³ŠÜw½ø+ØG«É)j] m2Ø™­Mvpz vaζÍàÞÝ\뾚Ü„¾pò|®"ìZ`5pbFÐ à~à#o§;ï.±¯ÁV·‰9µX—6¸˜Xxx0`ðžÔòK7Ûf7l°–¯€Óüº6ÜîróŠÚÂ96;ØÒôw¨xø/S÷vS[àtžGG7Õ¾¯¾ľø;,t› Ü’3ødà«m§'¢§îÝ<"§îv{$þ6Z®{lJäôï8ØY~+:u·ŸGb_[vJ²ÿ–½‰½½£·¥cö§@¿JÅü"ã½›ß7‰ðåÕÅíV´¯¢ïWãql-ØÁ~ ¶‰–q‰BïwhÜÂðcF+Àf€v=ØŒœ²NÝoˆ¬sRÖ»Z‚º Ý&‚ Ä®ä5lO—†. Ý& Ä›èw~áK¡_ƒ{yt³Ûü6?øL™‰µºNŸ6Õ?µÓæîM/Œš- üî÷b`÷Ou°í9Û2õs¡Ï‹´¯3²4ÿ°ô5h>i,cÇ öU…g€t!ÂHѦ‹÷Aà馿Ïmzžóú¼'ûj ¸9có˜iå Ù¯/¦ï ý 8—ý(ô.ó~øi%öUt;3Ö‰-«#ß„{x"° QÀéBJ “ÁÎÂ_3†F•Cg ½ØWësÆå¹]ØÑkȲøoªíuD/SGôA*ÆÐ}k2Ê=ˆý$£OeO–’a÷꺓Q2g@úr£p¡—y{­l¯GÚì/Ø×Þ.sÉc_¤ý}ëÄ–léRèôzØtZ/¡¾fä@±¯8m#¸Cö^ì«c9ãò Ì :{ íÜJë8IÖåAP?úß"íëÁý±ÖLòy6Ò¾ˆM±\i½öªlÆ_ó=퀕´žõ%…îþ ö#_±B)À`陼¿GÚá,C>ÝÙ¦ÜO;[oD?úÃÀqFç¸ìÞÔ$¬¶€ûs%¶z„p¾WÝ2z´×f_ ôsŒð“UÀÜTãà®í(ÛÎÀ–¥|%õ÷Pêy£Ðg¡)™¡3¨|_Õbá×°ìàÒ·(çߌ-¬ò_¸•©s®»Ý‰,0ðcãÁÎ[ ¶3‰½<WÕ„™ØÄ’­I?ý=[[ ¶-û³È¾x8[â(²]“qŸ×ÀR׸vE›øÃ`éÙŠ5ì«nÿT)f^û"~ÿlü\øN'Ì”2×½Ÿèß.fôµÍ…þa»ðÃøÓÎÙħ9ÖáFàsÀäTû,à9ÖߟªÙ 펌éAµô€\ÚpG2–ò¾j¸ ¸„ÑóܧwÖŸN\Ÿº»Ýø1ÄÓ¦Çø~Þ9É}Ú%,?¸óyp»ÊÍ)/÷<Ù#Ó©Âv;mñ±ëóÆú¼¯ÜsøqŒ<ŽâTÓ}^èîYüµàü‘;¯aüQhK»Àr¹øûÉXé!¿Ž{ºmdµËX:‚gÕs\;ô¾J¸Ÿ_§u¶`Ú>üøG‘×Yª~?uO¸=Àr°YÀ•À§€³ñ“Æãɶ„y_àëjüX:ßíÀÉ8ÂI¾³S’€F®ë»ÀmÊÑéÔ@[áÛ,m¬¾h?€™O® ´¿Eî鞕쫚¹Õ~܈¯Ó€#ÀKø_èÝn/ØÕ=LRúŸM Æì«qˆT̾(ôå½ÎJDJe¿IùݽÎHDJg¯5ù>°ÐÜ‘Áeg§Žæ¡b"""""""""""""""""""""""""""""""""""""""""""""""""’åÑ$>Ê›b1!IEND®B`‚././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/illucircmot.pngATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/illucircmo0000644000175000017500000052570513431250607032301 0ustar brandonbrandon‰PNG  IHDR66ë¼¾©bKGDÿÿÿ ½§“ IDATxœì}gtSÇÖösT,Ùrï½Ó{M#„^B ”4JB(é ¤B% %„„B¯¦Z¶qï6.¸Wp·\T,éœýý-[–lî·Ö{oî}ß;keëÌÌž={ž3{fÏžæÓvœ9~f¸äÃ'r•Vke÷„ð\˜ ãÅjëø<{õ–Êæ°–õÏçXþrQ&_µd¤•¥l‡ó×w•à œ2*BòñqÃöÝëfÀ·ß"2*j¦ybôF$Ñ\ZÍy%÷)*Ì«ð«yê!ÚÊG¢#0‚Ê-gJØþýʹèD"´UT wݺµi1'ÛN~×AðïˆoV uÑ6$_OÀ¼mÛ¶ÝÛºuëøŽx–Å#• -`aw†e÷2V­ZèСQÝßfå€C QÕ¶@K3ãtÈ "€Ý#XPÕÔ•£#,mmÀ¼{ºÄ¿ñÆ&x0Wã ;5P#ü¥9lݺõÞ¶mÛtu}øs ßu§ èÌË4ÂcMƉ„Q’%KÎó³}M•½öåíçßš²eD <;Þ}w 1?ßð÷,(,tilÄQË¥f ~…àR¼53{¾‹ xf’PÍÖÛÃ.üõ¹u~ÅÕ”)žêåãf{¼ûÔšßp•_ Ë·0b¶â¿¸êþ‹«®fÓ% fj)).ã_­1Ï-:å "&5Ý¿êÝež™ìÏ–—ž±¬®/М»¶Õ^£ÝÐúÛé¥=|Òèã'6MhΗ™5$º¦fmмìR­o/—*/]úT }RW­¶â‹צ¾ý\ù¼®8tE[‘]~Ý.-må½eËà‘™ ?>ì3Ï û̘I$uò$& ^ˆ„(¶¶@“J a‹&uÐÊÏÏ×v¥Íç“•DXU‰¶G*´9Ê öê0V]ÓØÙÙuÍ£¦Ä»}€þ¾¼:£š[ý‰ÀgN€¼O—<x]~+nÞDâÆðLME7=œÌ¡\½1_|gssv¼ohh0àg-AŽ—³RÆgn#»>Z¶ Ü™Ç}õh¸¯dÙg4Aäm‡çúƒ1›tÿ×MQÀ¹ À°àJà6DÇ/WüžóÌÜþ¶îýK¡ÈÖÓo!ÆŠ]fœ÷÷Ǩâb„2Ì,úåDJ¥/qN¶Çl­Ì_¹^ôH`?íÉ!f›ŸRª•­fÜ‹vx²zû‡§´1E?;Ì}á“–Òêÿâª=üWø×ãJP[¾Må`¥}üëݧÖk®JÕ}|¸;¿pÍBÞýͯ×(cSŠPpa³úb¼gÛ¸'÷úlݪQ›÷?SÀq»ëÂkfN¥ƒNòŒg‘p¥#³BBâge úþ{Q™H4ÊÞwá/ñoÌÖÉŸ.@’1¡¡…qƒa\F@Ã@ ``~~~lGôiüjj›¦«_!Dúj_ÉdYäxôK Ö§®o(F …ó¢$øïÀÌi0ØØØpºHq"úém¬-Çp(xÓ `Ý»°¦)ÆÁ³¢&i(•0ßµ c÷ì÷ñǸ·u+3 ,›››Ûy;f¢O~‚>ÞÎéš79/}…êìbŒÀ³¶¶îˆ¢ª*¤^»†–¬¬I‰'©§L£9£µË.%p`Ó86Eî9ÞFHÖ8TìŒAù!øbë(íX¶}qñ…<`Ž øË—kox”xt9=ÁLJ¥*„»£ç¥®^¥vÜðÂ;.jõAñ—ïͯϞ$r>‡¯(ïH²ËΘe¿¹:åzŸ>Tvý:I¼mÞ]€ˆQýaog—ND\}­<®UÖGDÜ•+W¨€Ð(àU)0&`š¼¼¼â‰HEµçÃ)Ʊž¤ Šõ«¤šáÄq­—/_ø€[™‘á£ÕÛïLýĉ¥DÚJJù€¤ ^Ÿüu1D\Ã?ü l3Y³1íÞž  ‘ˆš®]#)GìÿÐP*lk£’Õ«WKyö_\ýW'®±©ã²–3ަ5 PRQâ¨üÔ|åÔKìÛë?ÂsÏYÔîÚÓGã™}oí­‚ã"XØLiÚõ×ö¾€Rck»®åßÉì‹>˜ë±¹xM\ϦŽï¤^Ug&\Yû³rQy²þu[±;²»Ãb{‰ýHdk€>Fö€Ï6–<âaƒICYÈ3ú§ë*Yd…øu%ë ØX=6A°³òFÏÝ;{ôüó¦µio!#þýú¡ú¹'[•™¿BÛ߃—gÞD ‰ÿeJ8…ç 0¯®Fh÷4D`vìÀ¸Û·Qä«•§Bý ÀNþúzÃûînx¾Š„¬ûšÆ!CPW×ÿÜsÈp´´œ@U€{ɶDóæ.ÄÄÇsêwÞÙÒØ‚íÛ3 çOÄ›6zMiìÃy‚$ª-÷}JÉ{kî³±cžPÝ;¡¡ {ÿ‹«ÿâêïÕ`úKæv$1½Ô› »þ€÷ÝûÓñ͹ÜÎ?R\Ä%meµ-.ž}…iH¿@×ã§O·¦3›¶r<˜o¾9Ͻøª=wô#h… rb,ÿ¸$ä¦L‘âæÍN®üï¾ÛKü ^6Ÿବ,œ¸vœBC—h22zfÐÅÅÇì¥e«ÙØÄÉŠ1ý{©I—›“Î%&&h¼¼V·•—·W”‚ h4ÅÊ”¨hÿ¿ @r1AA¿õÏʪE}½d2n“ÉŽªª€²2 ¢(/×ý_\¬FE…€NÜEE$ñÞ(Mÿ3 pʈïáýEì{®i««'h~éRR4¢¯6Ne¹Hy µQüò9Ž¢€%G¸ººmÔÕœsýz/òòlئÉÀ¶xú|Ïî©=É6Àãöé]6õÔ«|4Þb¬2ý¸ù/œáñ˜R®<ùeºÞÀ½ÿy9oÖóÖÿÅUyÇ[‚§§~~Bx{^^€§'àí ¸º<`k«ÃŸ­-ùüóýŸ~ €“l¡Ã‹-tíä À€'tæ:o˜™ùA£ñ‘®´ÿó¸ {À@¦õóò«Ê.Èd*•­•oÕ¤‘ÑÚ Kžµ¸pœÇ”ÍxC]áë6,X`µ£8ºèðñ³¾À¾œû,rN¼Q‡™|™õj÷™3Í/Ü›š`nVÀ4¶dŽš6MRxãú=x€˜¸8¨½½ÁLš„••BGï¹z4 ?¼ ¿¾Þð–µ¢ù½}H=†ÁÓ§ó-ÓÒàðÁˆÙµ cˆ`P©9sö×_pމa¬ÆM†ëŸ#yá“Ö[#žDê¢Ïxž_~Ùß­¨üóçÑìïk ºêè阱Q ¹*¯7ð÷ÿ®¹ `¦ÃÖ­€ƒCYóš5ÞÖ½¥/ËÉ‚:m†,¡Ui`¤Wd—ÎrãV>t奉"wl¯…ò%0<Ë—lw3àn42††f À`­d¿5ÆÕ:"g© ×û€´î`x p^œàÃcÕÚ5ð£Ø ô# Z|7¼•¾ãeýÕIñÎ6n}Ç3Œ]æØŸ—î\Ir°½ZP'_±~ÏÏK©+:5ÖÕÁÞB2sW¥e#Óû¯ ê*~Rü_ÄÕ Ûà9o^«ÛÆù[¶$776&[ðSàê^¨¯ O?I¯M¼oš÷î…°@y3p¹W\…øzãÜfh I…šµD\©³³TXº¸»al•+RFýßÃÕˆh-óëWKÎåä=äí:3eÛü»&âñD…ß¾31«AåÆNeÏ=m>` {˦ÝGú…ï¶Ô—¿%:uÖY2ÄŽvÀBøé«˜7s§œö«£;8¹jÕ-:°ÑA€êc"ËÀë] <ß›‘‘=hРqC€ÿC ÎhÒá—,Y"=vìØdP*‘wãæä€ïê nÞ<8ØØè–į^½*1cÆdlˆâ~ÿ.Ãút®@YƒcÕñôy27ß1ÁÏ<ó ãááa ”Œ£“ê Y«_ŒŠÚ8“8prš ‘Ë#„ …î[àó9DEiÇŒ ˜JŸ›”çª)°·ªÇ‰Û}±ä‹´úÉÃÃS¦LÁøPqÉÌàs2'‹êºÒRÀ~Z"úŸ¾D2}úôˆk×®µóCJ€µ¥ÀPÐÊû­€¿†ÀÉ“'¥ .œÜ…Ž’m [0`@tVVÖ¨'† úÕç`¡Tƒûò`Ë¿([[—óÞ}ˆÀ ˆâJ_:.aÀrð=‹ ÏjH;™c˜’RãZ¾þZ$~nÈòÒ©Ãë­7üÐ$3ăròòÿ/à*%Uó?¬ä‚&"ö†bâ  ¨´¶Hdbô$ÏîIt8É…føpåòŽ7Z Ö$®†öé‹›;kà`݀܆ÅœyœãòÑœ\‚¼Wdßÿ?ƒ+Áç–›/u§eçû6i;ËÏnh*vÃP_ÿþUÓǹi4ƒX‰Ã"ëFÙ•ÇàqÿÚŒ;·*â VhÕ CƯaxéÚŸã>ûýu‹C—•7mGÝgÏwµ=xPÿúëp#/ `~Ð È”}ÙéWTøPõ{taù'à)°8àyà€GIÀsö@º¿ŸŸŸn\̶ÈÍ›/4͔ǟ3~¸g†êñºÐeõŠŸUŒqÃWB>Ê=\\ßûàmÛ OLq0>Ôõ£¹|W“¨jC¨O$ÀÖR…üãIè³t Êkb’úúž&&vâ‡eyXºT$ÈÎnƒH$2H›—š—ªg`gÕXüt.¶c]Ò™¦²²GŽÁÀ—ÏçcÄðáìä‘þ﬚UïìÌÓÂaz0øÖz{… uæÎòV;9Ù Ÿ´(`Û¦ÑÅñ@.Gî¼yÐܹƒþ, óÐP<ˆŠÀÀöý™Y©¯Lí´…¬šìºþ½o–D df&VàÃu¶Ú??+¥¼ÐÁc–Ó3†¶üñö7¬Ìí¤•{#–– ‚‰‚>ÿZøêŸyŸ|Aô¿WÃB7>È϶mR¨9®ÐÍ–7‡câ $€X Ãp.±Ò<Œ™ìe”öý÷»vj ð—˜l”64 ní¬†½u# ¯ý DÝ™„ Ï®2fÂz˜/†g¤eu9R®Õâý¿W‚¥s“[Í-[U<Ü¥Xó²½":u}Ùœ©¦UvWc-ð¿:4Åjéó×ZNüyßò™)oÕnÞÁZn~i±ýõ´35îþ”àùŽxö‚µP¸Ø£#Ì­•̶Cób®M¸Æi¥ƒ¯o@ÀåášZľõ<ÆtT6ÿA†÷Û À†ù]š¸ ÒäÀ¬ô~Ábä.•¢æÄPЧbÌJôC5ÜV€üüü.šH¬Z5l£sÉïì·3Ãb‹0›`ÂL¬å_ü›i‘w"ô†Ÿ&¯ Xß[ ´‰‰ÎFÙ‹Š¼pà@Ö¯ï´÷ª2΢x¢ÖΡÉÀ óøb†¬0Í˲`xKùGN¯q)°]¼fںΠ‚ƒƒ;êÊ̓Èc„•E§‘8%…˿ţììûæµµHóôDµºÓ4#þ£GÃÓº©ç^yîZ0¨‹Ë“Ø7~Îʆ½÷¹à ÍóqáU´i­Ïœ™‰ŠŠKU}4t*nÓÛK¯H®Ì¸•0²ù©§j™MÏìqª¿]ÞŽúÕó­$ææÿûpÕ§O¨jýúO[çÍ{ÒyîÜJûÆVÖXÌ™¦À{/h ~ x*Œ„rœ¶JÃtjÁ¤$àêUS& ]ÿÆBÌãÎQ®µ·V઻Q«_™™)Ÿ_àÔiÿÝwº»ºÞ±}øð}³^Hh[·n uÐÿ=¸ºÑÂÌ0òú¢…ƒÕöv6Ü¢7›ÇœHÒ¾õY=óÒòõüÛ·ÞVJ¬ûó>y•5ûèÐRå{kTV#žœ:ràÀ5q»wï‹ñb³°»u…m«]êÏÞmæã£PÛUÚÚN¦Ñùúˆ¼4C¸˜‰Ì}s¥£ —ÐÖR\QñC މ‰)>qbLÓ?bt÷†ðòb‹ŽmX<±oÎS&[ 잌@èí‰sçÎK¿p!Âð ÛVgè·P‡ŽÙÁرyìÑ£b~@€·! uÛ®Ô»…¨ÂPL\Þia=ºqq¦§ 3³s–y8MƒÞi6P×døÎÂÂ}ûÞS¤¤[è~ÅÅ€³³nA¢µÖÖ°ºpáÂý¹sç†ì{ÉoÎ6–[GËr{ÙgIuu¬¯Ú¸Ñâ)`OÔ‰#•K–ŒïëùrÌ”g_k­y°Áü®/^’.‘xú­\¹•†—Øòx@Càè½±øVñuSÇÎÚ×éûë` Wp_ý¨ÿ¹`pæLOÌ\Ð9(ýñ-`Ñž ]H2»Žác¦¼S(€×^ƒâÔ)X´¿à ýúhܰaµ•™™ÙýÅ‹ÿÇãjëkœ·¯:óæjEäKφ†IÏŸºúò‚/ûáó‹CC>¼Ò½ð†ƒ]Žtóšyg|=WÞPÝ‚¬¡29æËÕ.wHÊ«k«KJùvÇw7äa“•lº~ýºTÀGùƒ£(#)ˆ ÷×®™gú´vŸ9pW ˜µhU«Õj"b#"HÚ¿?óù¤íÓ‡Ê$©VË=²³Üo§oÒçáYв<žP#¿–¯Œü|œœTÚŒŒ|2p½ùùLݧ YX8’¹yï~D¥¥•:’ù7Uœ=Ò7ÑW WrqijíNo×.2 V}ó@Ÿõ柤ÖT_Nc§‡Àoá€2àe!p4àkÍÌÌÚˆHÁqÔúþû-“R($õ¼y”²ëÔ³$…–¤ ŠàWRsBÞÔ©S¥O…” GR¨ßY»ö†ÄÂ.ýáYÔTÝîáb§¾æÌÈË7þÓqE1nD w*Š6MwùoÜhªí˵€¹A›ýf\¯¸¢¶‡mDDr9=W€€Ð?ôŠ+é™õ¼65õéCF¸Þ1ò“H,ÕüPöðl¯~oÿö¸Úôæóg™Ð€§Â¶¼e¡Î.`T^¡û,vmŸ#Œ¼²’=[ܶõÍhUEÍ#Ñ«óF ÝFoëæì’5fôUÙõ°|ÁîuK¬Ü'T-ø`K?Ï0Å‘MÞZNØüÎïW«ccýlùÌõ6±è]—6Öú÷£§Ë6n\à_^—Ξ½$ÞËkSV˜€š“yÐÔkaÿ¬¬ÇõíHÑØØ˜aooêd‹Ôì£ðq´†½^/Ô{Î/-ŠžtKãuzWW¥&-­Uàââ¤Ê%†¨ È÷DåÐeЪïÀôï÷eçüÞÛR3"#²T&†ˆ‘<hMê1Ý©»/ú ‰¬ao_Üú葽Ѿà €ÈȈh›Gʽ@[E× ü¾J€÷Æqööö™z{ î;Ù¢EÖ ‹º&ô+//ÏøàOæäÉ®+~œlÁ‚•ù§O|L­÷ËnÆ«ËÌ2ç)•É­o yÖÉÉNkÞl÷qu%ó–ù½?GÖ®œ©pº\t±õ·*:¸µöé;4$ÀõéØÿD\Aä x¾ ¸­ø¦ÝÐBB€ìlS1E Hp äå©úzs=â n+ }2 ñD£F3½âŠÇ8©8ª'î†÷í9]£`ŠÜnÜ ´µÆ¡5+Ëx?+`¢IÖÀª™À[ÏžNQÿ1¸Âõü¤Ô›§®µiwvóÒ’cÊ›îªîØdÌŸO)ï\UH]Ξ «º5ôîåÓ¹7"±xbbJJ~Ãp2  bÊ”)Ò/¿¤ÈN­!‰ 9Žãš›)Ë×—*;âÜܨfçG[Î’Jë™@šº"¢7nHÑ®Mø|T®žiÙ—*.w9ýñÔ¡h†nœoÒ hêQΟ_%Ó«µh§^=³Óëè œ¯ì]«=ÊOd‰ˆ(RÔ+͸Ÿ;ù ºWß=‰„ˆeGmúPýg+%É¿]Í“Wç×PBßh’EfwD?ýôÓRÄçáÑõÈèÊCÕyÔmY·á/]ûé½îÏ¥3 éTªÂé^g\nôÍ›7¥ =°° 9@Ô§Ï’¸²2E@$±øåÆö7œo¹2ì? W‰PõˆÚR_PWÜhnkkãz¹µuÏíÏçïïpt¤šó½Ž|ˆC‰ˆèìÑôÇâjhg©n=†fÊ(=ŸË–i{ÄÐJ¯‡ï´b–UkÁŸ<9WøœbÜÿãpÅ;ûףب yú|ˆÃ3E.‘)r,}ÂôðŠÝfxˆ¤‰Ï7åThBQµ‡³g]lškòtÖÍÞ•%\Ûõ¹™@Õ³öí(ÑÚœp×Ökº¦VÝ_?×6?¬]Oéär³o÷ÐVsW´‰@΋(ò-ê0ɉÈiýÏx(åA¯½öš%È;udç^Ip±ƒÍê5ãý3‘nCó¸\ó²Õs®7¾ò,EþøíÞŒo¾ÁHÈ2ù¼gœ¿8ß}Ë–†b…‚SŠ„'nô9®¼ûû¬Zsó'\¿ÂnÓ‹u¡»vþdþŸ‚+–]Qùó¯Ã%)‡`ÖtZèRñ¬UÝÍ &/íB7+¨.´¶öÜ®,ûºM€»D ½º‘:Û.‘°í±¸jÓ(x< >&!ß\Â;ÆëW€¦r_˜ê©ICqèÝI€gÁ8>o1•NܰœrÁ„ÿ\¬†½õþë —Ñ(¯ÍIyúɸ«k^[öçþ÷¯¯\{ÕB4$™¤LóµS a±ÖΩ¿n ½èç7?qé3')ˆ’G‘ü¥EÏÜnï±5”·ZÊqÔ¤P(ó^šf~×@£ÜŸNDT\\€ ª}nm y4ÉOÝ•Hv†3ŒöáâÅD%%3õØèæîé£~ %_Ïnš§w-¸eSR %öïU –žÒÑós ­µ’H+'b•½kU)è›×u4‡ kzŸeeu×jÚ(üÈxâÂzg¾n鬷/Ò¤I\V||KÄš¹ü»&xà(ÿí""//¯x´i)"»¦iMY$‰DÅhæ8„«oCMRÐÍÓ›Ã(v¯A IA”þ´45µ(ñÖÁÉÚ2Ó†¸w\š‡Àq|ôxùëSG#\QÞ›Dœ¡™íqí%ä/h@Y¿=ftëMDD¹iE½Ò›5’…$6{ =)ˆ ?$"¢×–>z,®/}Ýù<ÐçËa„«–´õ-õ..&Z´ˆè‰'èßWCû#IÊ4îù¶ö ­úc3)Ö3ÁêDÂ[·eWЬ-ÝuoçNåíu«Wß(*ÒÆD"áéÛ_½Ž{eg̲Þyg›ài“!_BeQÉôéÓ“ E'PiPñú«é3gÎL몭%2ö½ƒØì£(‰þ9oÌ‚tê¡×Ÿx‚ª#"Œ§™GG›lÔŠK®Ð T NÛ[ÃŽ©#Xðv¯`¹»[Gaòv)è‘Þ×›ã:™”òz¥9²ŸŽ¦——¦Wðñù§Tê¦EÍ”rÄÎôtùWgSŠÉäÖ¦G £ÌéátÏ.¢,³)Ö+ý–ÐÁêùóçSÝh@3‚WCªÊêÓ§O'[Š‘£ï$"E…Ä©Õ_ý]Då9³lJùÇáÚÛ:^ß½·wÏ×E¢ë·†öFü»âÊÝýA50ÑH^±? 0Ý^ÉÈ8µ¾i%êWÀ!@»×>¦J{‚ˆˆ8Ž£ÏÒéê¿AÏ#{÷14›ã‰ˆÈÏïqš†x²–€îì2M¯úZ¨Ñ÷NÄþ[ã _|¼óR­½×ÃÕ·=s' œr_•^¹Bábñ†»sž~í½5{/9Û‹3I ukîÎÛÖÖÔh«ÈwìØ©³‡¨Ë$âÙ‘ß¼Ž{Ò=È:¾cÁà{)ðI”Xäzÿø$Ö_BcñITžùvÐ% 5 `«t+*e À˜ÜŽÆc†’““K9Ž´ÆÝQÅYŸöþo"¥ÈŒÇ à MoëãSADD*E=ËIy=®4½¿°ü“½m’–€Ï’¢.·“É—âw IDATyŒü^GËÜÜž¦wT¨!"Òj\É›žWñ¤ ÀÂDç&Ô6¬„ã:MFMMtÕ*Šóò¢*__ª|ï=Š>»søEŠR„YÅùÄi3rs)æÖ-’~ÿÑ´³ãžH©¥å…‘ýúQ @´n݆xŽã:}á|ÆíÐ;n…ös‰¥¤¡‘\@¬dÕmö.XвÊV*©ðÃëÃnþ¹þ± Å!T [4–––ÙÑÑÍ‚ä€IYsñâ¥D{{jì&l90;µ_¿~”””¤6eg(û˯W­õÉËÐW\oëç×9ÇK¸´RiŠ{äáØ ~†1ã€l#Z¿üÒÉüu&y“]çín¥@––nѪD1×ÂuôÒžè]SKA cm¢cÓ=ÇWçääPQÅ™8 G>{ö‹ñ¬×ÖRªé ¿ÖÖ›¢›››s8ŽZlm©}Š£©xì²EÏÜqs ú”µ¬¸¬Ø„›ÿn¸jO£îI>¨èO¯Þe\ò)m\-íW@„žæÊ0‰+’òˆTz¸ÈåjN$*4¢5~ü¿_×o÷l8Ò4ªˆˆš›7Z#šáÂ… áv’ÝÐRXV™Ÿáà@ ‘¹ùœè²²²*Ž£¦Nf‰€¶b@  Ž&"ºv¤Ý…Í0aK—Fi/\(ilmíY’ŧúôÚu—@BÈËÙ‹DBU;uj‚ݨCF´¾y-Æ/Mò:3fP“\GQV æÂA f`;èðx’H¸ùëß§–8M3‘²ˆHÊôZgåMf=|´vä嵡iòäLÍìٜʸ¬[R”——CDŠ®«Œ× ¸ÖzyyUeg+Ú;¶ÎÒüiÊ!ÔúðVæìÙ³Ãc&Sé—÷¶l¡¨'\M™Â6¯kííŸlì×o81 cRNþðíý#v âÔT–_Ö+®€Ï èþ¶Ñ˜VCòʖ*'¯U+—„:ssCß8‘Ã)o »u– ‘ªD¿vβD––=wj޶YdeÁŸˆë­¾R殘ÚÚL‡EE´o_cÓÚµ¤‹¯ÿ[áŠ\h’s8Ì`4ð­"2}zùí܉Hkë¬6;ß¹t -²~Μ`3Y“ƒP£…¤ñroYÚZ˜efÊ#nn”yUŒ*gJ6§'%j³%´ï~3ó‹—ÄEDDÀsÏa—_"J§ðˆNÙ;6ž?gŽ­¥%0tP“úö¥<qšŽÓNÞA*ô¬ÑýòšrŒ ÙÙcºÐPC¸1¯d#²°ó(ª†f`ó!SK«%¦4\­¯/ž;§“•A`Ì ¸$£[­Õr¼üÓ8üu)Q¿;Šã´ 4¹ðpçJPþ%`¢ˆ®!"ãt’Î`!zºÕÊüN ÃTSyù×ÖRéÁ;ï0¢£GsýIõù±À´±0nܸ œœ¶ø’èðjb˜u!~UÖO//L»4³ÅÜ|~4 ¶ÞüÒiÁ Њmú™{·æÐåšóÉ}5rö·ãÊÜ8zX´ˆg ìç74ܱÍÉI„½MºzXÿ¹2K‰ØW6.–½â šz 9^^x•ñâÎ`xxÂòÀç;+5æ;m2ÂÕøñž Ó6òx¨J¶¶N!¥ÒðØ¡651Ñã <10ªùèqÅãÃz8‡„a8ø»=…aÓR;ö»…ÊV?®û­#‡óZƒü³[$´f­õ?B R}-^‚î[þn\ n\m•;¹¬þN^õ…CÞÚ»·){ñâoyÙ6®‡¥AEåù6wî|bUy.ÅÆrÄÑ—?†ÔËr©és¶8Ä\þxÊ<+¹¼µlÚ´þÁk§•@á(ûçbš›säùùHW*ÁÝùÓ¢Î凹T ‘GéGoüb;kVßÜiÓf»••¥Ùøøll)-…Þ+25ÃÆì™Ù6fA¾ ¿Q¡ôèj<‡§ÄhïµAQ@TÆVŒê‚øœ9Fiž>Tݺ7€/0ÃÄ×Ò‘yû@³WÛ:ÉØ5¾–áåå///ˆÅbØÚÚ¢oß¾Vü½µ9y9ظÑÊ988ØÑÖÖb±XŸÖÑq2à÷5*“¿Ö>õ¾£êAa´˜y¼Ë­À2ƒ÷æä$$Á5hŒîESL¯u€Ïsz`»Úи;î¦ä=mT^MMCÓ²eö6Ô7Íšµ¦JÑtJòÁb$L7 W~y³Ä-à\ð¡÷›ù˧·ïÃ4¯ˆ¿øˆÿþ7 Æ ÐØàà¾*zÆ|û°0L|b^XÐÏ;l¯öÆÕ“ì߉«µk§äj4p³·‡ÍŸ¢èÄU½l Y½ìœ™½U>>¥L+(7€ÌrG±K@w‰u ­é€Í|ºg²rãqᎉûRo€+–Öíâsš÷®-‘d™}ÏŸà勼¼<$''#++ r¹uuuH$o­dkû èV𕳥¥¥c]]är9²²²œœŒ=¿¥á©‘“0}X£¶Ñ7\e/6vìž3­†JY(P`xp?ÄféÜLƆtÏeŠÔÏñ|ÚÿOŽ+Ñl|§Ax;n¨ e/hþ°"š¯*{«è¿W Šbú‰¤€º ©Þ˜)¥Nˆ "V7ÌKŠtwl_Ùˆà?º{[Þ>œä‘J"Fî±ùL ¸WðÇ=ƒálýå4"¢K—.…{·/ã¶?Ñ?‚ut°jCû0{ðàz5ʦGÅ)‰ˆHQ@Áïuýá‹Ãw_@í%ÃêiùùËu3DEÓ† çh„ÉÏ÷ ·yƒB¡0=×46Q¤8ÿÁQ”ñyxÔQV×ÇÜÜœó÷ÿ¶yåòbúôÓš3ç+òñÛ-ñxœÞ6àÓ@•9±†eõ²¡›†‚Ì:zCû,҈͔=ÊðС½ý²¡¾ºM›<šífGŠš;wîmäåŒ8ƒ¸¢M‘GÍ11M‘î\x–,K5´ùü]áùÇQNRÐ߉+J˧ÒO ®^åzÅÕèþƒ”è‰ÑÞÅ•}Ó µ†Ö¿A<Û…^«;*©³}}ÇÓܹ_ÓgŸEÒôiEœµõâ†îi:[K4)o"Ÿâû”§}d|Ä}ýµ¬Ù×ç Mœø mÜxž¢£K ”•ñù6/;«ÝßÝ ¬ªs›† ¨¸ðýñS|¯¸BÔßÚîýˆ¿WåŸ×­>™›MÖÞ…–¤àêJs¢;û¸Ž¸£·5Åe¿÷E¤‰ÄÅgΜI‰‰¡ö92×Â0+bùñz¦ïÏ ÏÏÏáóùZh­»ˆ’‚Î} ÕÞ~¾‰=m@ÀR}eI Q[Ú‚¦Þ寠±·šÐjk#ˆ&Ê̬¢+~#oï…Ä0 ÀÃíÞ­6²…Q|ý2öÈáóùF; „Âý€ÈÎŽ¨²²3km-K'O–ÒË/"—œ%hÛÇõuÚ¶fã…“ØÞÚÏ?!j@>®³ä|ž¶ðݺõ°É€6«$º?§ÃVÓLêêz­V« Œ]9R}9‰!÷ ò5166Ô~ŽÿΈ $·¶*sj"¤¶žÞýïÂÝŸKĪ ªxútm¯¸âñ4Ô×ǽ¥œèß+®¨ÜxóîÅ3ù­~¾ÕíFñ×ÈÅe½üò!:y²”êê:µgYGp¬1a»=ø£‹{DÆ”"2²Ü¯YCíuçHÞÞ iÅŠß(3³ŠæÍ#Xòtÿ¦ÎÖÊÌhá¤ìtï[ÆÝíMDDü’ñX\¹¹=ÝÔ•¶Ø tþ üm¸Bc#u\f¡u° ˆí t/¦ƒƒQ9—¿BIÁ’VÖ¬T* ¾Üºã|kò wIUQ•›K1•äš™›WLƒô×Ïž>+'ÞŽ¬ZøãÞîµ †1eävîUxÑcJ‰ˆ8Eó#¶ø”Y24H†·Á3dÈ힯N7Œ²˜zÞRrÛ Ì4Kuþ(é^Þ¬'< Ü „ÂÏ F ¯¿n²{$Ž#:ñÃQZ0{{cJJŠI÷Êz^ÖS=ÏïE|>c­UýcåW[k’ ¢‚·9*ú(’ˆÚª«)9.NqøÓgÎÑýçéþz†VKUI×ÍÔ[£x ê_™&¹³qÝæ b±¸@ÀGŽâƒbþ\QÁÛ¦úÊÉy¼\¼ï’@ àì­ùlÞ±ž?ö⌳2£ˆ¨¸¸XûÖª ÇÝëq ÜSOu/÷µÖ®˜ynŒpEÍI¹]ilÛFÝFŸû{À0C˦½Hï¯?ÖèççgÒ½%æG¸¢Ò¯ˆˆãŠŠdZ{ë†ÇÊoèÐ)Fô´{ þ\ˆTTœ  ype%É!bYݯ­`8±X”w`Ûô³³f-@ &·{ˆGðjXYjfÇê•îY€‚ƒƒcbb”]—ç[Q%¦¢ãQ¨'Ä̤âz"¢šŠGÜý?F™l±Y'M‰DBË–-£èèhݼòÁëj’‚ö®DBw·òyj'¡(#C­Ÿ“j"2º——wœ_Ù±Ú&ôÓ¬ 33¢†C 7ÕË(ö—yDRЛ³­åh̘1Š£GRk×eáÚsÆÓ„;<š>fÇ0y»ý\û8¹ñxDj5õèJS_OÅnnS±x—´}E‹ÒÓ»îíãdæf^i%§ð¤ ÊœNDtúô…¸?¿{V¥”þ«qõùç7 |õºOõX\ù¸…Ô W{'.î瓸ʩ§Y]]M¯¿þ:¹¸¸(x<eœ«&)(íÌz*-13ËñùÝËT¬èÀÞ£s0Â%ôÕõóòH£ñu}Ú°3À°ÄšÎ~¦sbOºø–œeYªªªRìß¿Ÿœ;¹¿~ßøÛaÃqþ*§Õê4Ä«‹<W Ñ­­“IW†aèÍ7?þ—ã ^žž•?l]}~íÚuásæÌ eÑSWnŸþâÒùóçÃøá韬8W^VüˆhÞ#FôøÝëÃöí];_ãñxìùóçÃ:¦…ª"àéÌ#‘ ¯{êDiK eëÀ[Ÿ€þU¸b¢/¿||½|}{— @äïÿ“~z(à èƒE“¨ê|ç õaý´Z­–RRRhĈn#æfÄEuî i¹éF©Íúòí©Ü+€ì¬Ð#®ˆ•+‰ˆ†í‰Æ‹z>Ü](稿>¯ê¶;5*Çq”ššJ£F"[Û&Ñã*ëìË”šØh 7K˦Çâ Hø¾ëMí}À¿Wøæõv£lɧQD¤ÕÝ)Øt+ƒ<Û²q~±DœF(¤v­§­òp4ë´wD:´Š^>AAÆòŠhÁä1ôÛÆñ´÷“ݲ\eÊð¿r¡ñv,Ù */Óí3]µª§r5ØrÏOâ÷ˆ+V^XZ[K\Ï» t~sÖ+ÊýÃØy=&ü´ÑgÀqwàÀ}öÀ'(â¯?)=¥É(MI ÷ÞiºÐ@^õéÝ©,l ŸöU5\¶%’‚öìaÿU¸Šƒ^±^ 99ÝÉ춨Þ‚~K5g’Åbêr¼Ê¸œµóAREš•ŹººÖ¦ÿŠÂö|­Tøn„LFåDD­a“ WxÖ‹F ÐÅøX׫ û+"¢¤¤b X@|~Gtòd[“VÛÍlõèW“(Ð#®(uÕU–ë¿X‡Þe$‘´š-È×w>]@Zî0§©{šÃÛÇ›ä!þ¯Ï‰ˆhÆŒžËutÔúÉ«Ö=⪥&'ã§Ÿä=â ØNèûõMæ?·Éè[9p€TŽŽD<^$. ¤¤b£4×®5?WÀuêèè‡õñT^ú&qÅ…óˆˆè›onþKpÕå(}†nßîz¶ñÖʢ˃- ­~ˆ.''ªù?žÃD—¹H¹œ’±páŠXÿQUUU]/3•@Ó0ÁÆž b]Œ/"àïPŽ„î[ÏŸ<^«sœ€5•ÐÜløûÑ#9&NüLJ¢°ð"XÖÑÑÀ¢EfÖC‡Ö·edä“>±¦Æ$ÍO_I„XäÊ=ŸIco™•wŒ•U«€¶/eìÛšªâÍxÿÉT¼}—s ml|TÒÒÖ¶W8"6–‡)S‘‘‘ˆÍ›#`aÑõÈ™š^½<8~¿o!ïº1â‘ÕàóŒÓÖ4v8­¦x}´clÐ~ô ÜÜÜœJJJF8q:>®tP^ËÄ€K“¦«ŸgTÒàe!þspõÛÁ]Úé MJ;“¸BSò½¬ã®^Ôéî0yºU{hk3¼ˆG"qÖ-‘ÈÈHÂìÙ¨¯çà¼5p«­ýÄ\€›£iÂ#·¢®VËZö|‚¬­µ‚¼ÒæqeéèPZú Îs5þîΚ5s£LâŠÇê/¤L<ý4Z^¢º:€ãÆ  à&FŒŤIÛQUÕé´.4<æ8¥4KÀ0ÀË'QüþJṉ̃0‰+¥Ö‰€>xÚ+çÆKÿt\u²àõëop™U³ï:=±­†YnÛ†!óç#U·G/ÕÓÏÏ/îà‘ ÐtÞéÈÈpïÃÉ9ÝÁóê*“®þ<aþŒ~`à)“à‘ZØOë @Þ=.½EZî@½ÌDVXX´`æÌ&a^Ü&!1}R—JƒvÞ|ˆÇËiËÏ÷ÑwuZ-pÿ>`eÅà‹/&"'§S¦¼Õ. úžXÆœ9ÀÝ»€½=sä n’ïv†Ï뱊¸‘¤ÔƒãÕ`N‡·ÿº–à._†ô7„¼ðáy§9¯àŠ‹‹ãlmÉÏÑ @i<ð̨‡èü þ ¸:uXþ-"]=XsÏ^q5ÚrŽ æZ$7jpã îás‹;½ü—-{Gž“SŽÏ?Ÿ++ Öh£ÁÓ"¯’ 8ž€G¥©&qÅ0­*ø›7£G¡WU•i¯ÆÂ$® TFàâjW@5€cÂi£jzÄ•£³gÄÆ>¤à`MÛ;è¢B€¨‘‘[àåÕ»v…©À×··‹ì/x@ö¿;–Û¼,¢W\•¶úð€a ïN/è"þY¸Ê;†2J興e©Z·I•­¬[°ûßAE˜•§Vs×RVV–°iíÇgÊr®$w Yû÷§âÎ!a~Œ½Ò´É£Yb•†cÛÊ}¦§ ]Í]>çîê+@€-WˆÇS¬hÍ™þHÑÚ\¯YñÚR¥ñ¾?ÓÆÿà€zŽUÕ•}ÙcÙë_›@hÄc÷€e˺øÜŸÞ=o°7¢tå[Êu§“æ_³FwþRä‘aڞʟ2d#±%oç“¶S§ ÅÉqíÛ·³´”hü‡z#/ŸÇqsæ°Š¨¨ÎÓQÒÂvõ¼´ßåYò´áË\ŠûZj¸•¹iS×,¶®#Mÿ>Þ)_nØþ—§§W<Ã0-ÿ,\Ýûl×otr—é)˜Á)âër"¢ÆFÝb™g€+o·« g[MþƒÌnÀíÙøooË9Úðè£%½”Ý’BDDÏ>kœ¿_¿D½ÿã¹Ïa„+RäF55q&q¼@hÏZôˆ+j¸Aµ2 ò*êÁfö‚Ñô;00«ªz¤5ï²(Å@ˉDWÀx½ûÈòi~ÿ®"ÿêæïÄ*ˆ’GýÓpŬ}åó³Ï=j,¶³³ÅÄ´T}ðþ!¦¹åˆ‹][```ÛÀé ·âŽ÷OJŠ bYVÝpj;KHà±6?L BEAôW7ùù½’›šº+ÀÆÆÞà¼O­¢BÃÄ{ M U»†«Y#0cM¢þ7Ãðè1€Ü&0 ñâœj\»»7â”h3¼žžó•gÌa"\ú#3 bì ;À0<¿MØzVª±ôõ‚ÆÆ045u*ÀÄD4Þ>|fårĺT‚•÷€ÓáHYø)C?>"^±íÈR€øx7H$(âÆ©,ÚbŒÆ é…À°•À¸ß#2}I¹œ?_=gΣщªò/ù)Þ!O£_?|ûƒ'ꜹiÔ Ô\±‡ƒ¶{V£ô²UKAi‹ªvq´V߸ý`ð`.'¥rõßa€?¢“`„™iøb+IbbRþñ·²ÿ§qLÊåó#X¸òó0×äÿ¡|,®à» ðÙªÿɲ„Ì„ºwçSP@p±úo4 æ®Ï<Ãii|<”£GÃ$®& ž…Ô¼Ëh¼ ðL™\l…Ã,˼<`Ô(Ýt°# ¼ª1-íHÄW_@¥DŒ>§RÐÿ”Wƒ§ÊÒÓ‡Øvæ¾@·UðÖN¨ž㱨å `h2Ö¿Žš¾ãRF¸Zð¤¡}_Åí˜2hµ9xP^‚º¦ÎïF(ò>.Ýs‡2τC@N¥®­?pvÆÿ8® ë%J¡ë%5'?AE;¦«P%%uœ5ÿ(hmÖ¥'æ¨êhªU×Ñã …D))õ&‰ˆ÷~¿IAÚp!98Øi€Gá¶—ö‘$Óí`7ÐLïèhkëmÂ_H÷L{¢HÇDî«&Ë ñí,+$ä5²·×­nNœHÄqdxŒª²¸’"E…I‘ÏcPoÈ«S PCQPP±þæ*"2y¨¥æhD_ØLL–æÍ=j““sôdT ÉJB! ’‚¾XÁ£­ïN%Ö„whÒÍíÑHA9§¼‰Ïçɹ»hºžhQg-ÁývÏoG‡ã‰ˆ]»–bÿ§q¥óùò1ét €®~ýøúQ¤˜L9𲬆¶¾=™nïj?A%ÒB·ƒ¡)QïLØÔdÊM÷ø¹^%ô«‰S®ø°X'Žàá1^^çñÓOÊ¶ŠŠŒÜ”””–ÌÌL­R©dd2#âoYºìYê"¶–Éd¤T*)33S’’b•‘aÙ74t½èðá 899tUW±níí¨ÔÀ¼ëñ@ŸaÈ.5}³•‡GÊÊœÁ0@uäŒ&W\·éä:ðÚ7À¢iÞ8ôg kií ·•EIþñ½ ÀÈ·4'¦ß·î9Å[ö€UqxC‚ìµç0RíóqTtåg4~|ÇõGÿs¸Ò•ý}œà§Œú¾ø±¸Âè2@Ôy {CCûæÒarV+ IDATüS×ËtÜ-½ÛÊfô9` 04ÈÈ€Q`±­JBÊ!`HP—H±0ª]ÏÑ(-Þ|“ƒD²¦­­íaî!CZ¨577glmm™{Ò¶–7‘J“kmkkKæææ4pà@ÁСC­nÞ”÷ݷネè+t½¯ÔÅxt¶Ëõ<1r°ÉQÙ>Ñø¶6]H0 üò!š^› ƒ#?\_‚ÿk×Uµµß)™L*I $‚ô"Ò‹ ŠrAŠ¢("\+¢èU®^; ŠJ Ez©™ô@H% ôI™>sÎûý8Éd&3¼÷Ûϳ$g÷óÎ:{¯½Ö»¶ øÊ.ÜÿàB¡²ºÁŽ«/^Þž}‡µnZãèÒú ÐŽ­âêÛo×^ðÿˆ«ÆÈÏŠP Ëíï_-jŽ$\¹¿{¢¶|0§K¹ög®Ky ŸzãÂâÅìuß}2ï­[+몫s¼##»†k‹J%EŒŽ<Ú+vÛJŽøôŽŒ)Qa6 xíÖ­Ž?ÎÎ=¤:dJ—ò3G×ù‡´¶MXbTvèp99O¸”E 6^  º\(û €ˆŸÿ”„ÚˆÁ]°pÞx=ßÙÏÛ«â+|öÍo¥üxã>ÛõÐ* ÎvåšBuëô€éÓ§ÅÂ?ÇÜXöɨnÝ»{£O¯nu/ÎÐfü?¢K€ï@@w…·ç>“XHÀSå$«œÒ;ïäÀjöFÞ¡û ½;Ür)¨l„Û®?‹qa`ÛÉÓñŠˆéÕ¨ÊL€›cŠCzâ½Ñ¶ó—ã[€/mێч…EyjµVSI‰ÞW&;[GþP¤?Îaf‚ ^üÎpÿ?¸ŠŽ>ÓK§»æ Lªj¼CCƒ ááb›üü4KMÍm$ez}¾} W>wG\ ™…g¸7ÄÆÆâÑG¥ÙlØÜÄ5ÆíŸüA™ Ñ•Ï=¼ù¦kRU#$½l{xv‚D„/¡(' §mbòeƒñjÎMïÕKý1âÁ™¥}Á Wee¨36Aè«:êk8ìÛ·r9Ä_ÞÁÉ;_ïæ›Å×댉m6ýzIiEHÏõ€$L{þ´ ¨Óšï°"/ÀÓ8ü9 †+£¹wî; %%mLœ¢ˆkŒÙ««ÜÜ!¼ €dÝŸ¶á-„ZQQ23©W©<`òñu113þ?qEJ£÷iÈBEAÛä%e±O®Æ{¹Äv—H2''‡ãÆ¥·Ê¢Ð¿?¹e iµJJº·²n̯Μv‡ÊêêjçýkÖôVë­\2Ž*•/}|r\,¦rARZ:$Ñt›ç~ÎÓ|H“6Ó¹S±=ŒÞ¦åHdƒÒ¸ovº<™—œê]K h> zz8‡ìÝÍ“¾òÿøb½ÕÎQúº]»ÿü§F'Š"5?juÞß.mytìÈÌLi>Öóí­ÕÎÊ9ñ1ŒoÈ#Ð`v7–—_޳EFF/l²Ç" “BÓH J¥“/ãÿŒ+’|íµ–þ‘Žùù””ÉdÜøæÈ;âêâÑ—,$¹}ûv—ãÕÞîpœªK¤ÙL†„”ºàJ+½<×?´­ŒI[àªe³w7O§gCt¤ÛèçœóR I»þ gOG۬×ë%¬“ìûl1 ä]s:S›´™<±cSwϤhsæòÎ8—ãþ±Z€ß¼r‡yç:`¶Ùlœ2e °òÔ}­âŠ%ã°3è¬^MvïN*·¸æÚ/$þ?pÕ¸q/¹èýªë µK@¹ªD&“Œ‡Ð°†ÛðØÛÎ.F1ÀïZ’X°`µ `O«¡‹/_^x˜0¨®–aä å—M_Õ•Tº'&c/Ûˆ/OžL´9?ôÕZ7Xòè5‚‘zýO ÕéY·î%„\Òÿæ^9…–Ad÷ÎX±f<ž|ñ]œ‹«è`NTô‰¾)ŒÞK“0ôñaMĘ=J€žv"®#Gпª —¥k“QŸ8TJ`Á$gø ßyøzË^øtú µ•¹ˆ;ü&Œ–Î.·®Â×W´†•JàÀà½÷}*¯ZFt¹Øê¼/ç;ÿ}ëÖ-<ðÀÛ¡CÉú’RkËòVÁDz† ë3†¿RãäÀj¬Ð€¯[ŠiÓ:ë¶mÛf•ÉdØv¥…ÏuÜ© yTTãÿü¯¸’ÖnÝ´­â è` €S Ûâå¯å/}Õ¥®à–ûÒ¢-Ú¶aC¼ñ™g^¶‰¢ó-ÁÍ1Óžr_‡§öôñÉrzDhhlÜM…¸Ã¡øFN_ùŸ­ß`ÿ¡N¶]Ÿ.òÓËØxr¸õÓPTÿ99(ÉΆÁÛäþ@»KðÚ $ì+Å2†¼opõëæ<µàM,ÿT¨®ø`Ùä^9è5¨üüš•,r¹ˆ±c×âæÍw}":*-K¦ÝaÞ¾ýþT(سç€íñÇŸ×çæ{¸à ro ë*Tß§5ŒzâyjªdjôÖ[@~> ^nqX $»´ÿ'\‰: oþsšÈÕY1¤ ¡YZþƒæ/ˆþ•'•gÓb~:>hР"ém)ƒõ.|ðÒîMÛè’&V^ŠýŽ1[FðÒïzë…ÑÖÂCôÏ=±šß|cãŽä¥K¤£`3‰b¬¢Õ mýå;+ë@.]Ç5kÖˆÑÝÚiå~™Ý:\³í›UI¤ØøMÒ9¶[sµŒR0ç9mÛÆR§rbhÈÝÞ̳?¢ÏZ{ù¨®ÕNaÝj+²tÿ^õ0räuÊå’—‚£‹«P¼¶Õë|ÓiˆAmZÒÒô"ð&ŠùòŒ¯¸|VÛ³=,ÿ^ö€áé©ÃÙ¦c|„‡ÙÒñ¿µljôR;wî\ácúËzaÌY Íá>~þ™kó¿ãjß¾}E$™Ÿ_K™ìvo@¹Óüdxè¹¾üdokʦ~ú7ço£Bñ:%ÿÊþš/K<”­w¾’‘+¤ÑhãÌ™é&OÏæ38dÈñ|Ò ­;${vmŽa0¼÷ëlœî„Ê WL ¬%i\º”.¸ž‹‘Ë!˜O;3c;Ù½ì_Ÿh/ä—C¥¢ƒú„èÜ/ÌŸ/9«üûôf¾sõˆÖÍDâ=EÚœ¼ù³²¤Ý×âÅ6¾õ¦üÌpñèó¡â°¦":^Μ>Ýú…KËÜ­Û}À™3gþ?á 3Òš&)“¡:k §Îwlôöm^ ´ÉdÁe~~~YcÆŒ‰Ý±cÇ…  ñ@n5 ²o#}½4õ÷2‘3ØjÚ»WcP(¾u*D.YB¡²²ÞJ’ ¿·´öBzG 3;ÿÈÁ!C>7­|aje€¯Â‰ÂÅGèbÛóçÔz’4œ»Dï ôEß²ÎÇ3ŽÕ^nYÞvV&`ßÈç\ÖÅT_êl/ÕpQÔl­jÇŽ”ú–k’±Ç}°jÀ/VŒP©ôåòß…–öN?ÿ,pìØÆ–k"å0J7ŽwgÆ•ÛÇ+zˆå^^ŸifÏž}!666¶¾¾>KÄŠ°0¡ðÅUD„P­×[ퟳn]®Þ®€Ýnæ(åÉ“Ÿ7,[ÖR€WX'žV\õZÅUòéLöÿåË“M?z½òrZ‚“ï^ey ®": ©@Ýq7Q¡,5ƒÑWÀûq … ®«Iò­¹.ëÒ9ÔÇé]ÏúG´˜°û­ªI“–Ö·\“ß?Ö*®X}X I“‰â³ÏRðñqîG.7žq±ù#É›7% ‰{ygaícìãõôô®ÿϸRnÝ:Ñ–™Ù9.''GA¶ö¬gÃc²ÑðlДX­VæååÉ333½~ùðÊõ‰3¿òè0ÓΦþðÃÌþäȵ/òC ÁÝÒž=@b"„‘#áä*ríÚ5<÷Ü¥ <ãT¾¦øþ{ÈwíòãdˆÃ§ýá‘{8 Q]½ü¼Ôöín—.#ðé§Û1erˆ§Ç¹}^·^½ú…B=\æÓ®®Wëׯ;=“É~#éq7ê{À¿ÿUoÚ«@.‡üí·Ñ~âÄ7Œ;wª;ïܹSAþY{¾ìq«Øó6ÿ-®ÆGÖÆòönžÊªËdóž¿—QÎ0Rp5mÚ4ìÚµEùÓO-§`‰˜E §øÅ®j'Ç}»Á%™ô v\%%aîÜ•(¿}ȳö¨ÕSÕ°׎L7øöûÒ;¼K7hâÊä€ó]LáíM~À@¨U®¸l6__w~„ibÿîpÁ<;U Ú¯øw¤ ®‚ÃF©‹ËN ¼ƒ?NÿÐMxÙWà÷mûÍ€?ÿ\•+ç ¸Xº0<Ü+ÿÃWA“å§NÁ:y2f3\p%ŠUX¼xª²sçݘ8q¢Ó³yó@«õ®!¡í>7•VH—[f³Q^Zº¬=pøÂ˜³XÓ$éD‘5’µ·µˆ(E£dì×LËlcÑÇñeëd².¬±80êä=IêY³'Çââb†‡7E§ŽhµžZm22rXqó Ó·¸|iúGŽ¥B¡âòåGilüžä¤g8•¹±Ke•,Ø»¹íC«m¨eJDr˶U(žOu,+“Q4™ËŠ]Z–éÐ?yÛ]z=IKM±] λÂ&J"/þã_Ñl¶1fË{NíZÎxpíûc©T*9hÐÛ”ËÅVjYYÒ±S§&P.÷årÛ]bdJ¹O Š‚ÕÅHnÚ4” €í‘¦ÿ«q7ò?àjöl7Æf$' ¿xO¸R«÷98:”Mdwª«5CÁ˜µ®;ͱK4›mœ4éKj`ßnQNeêO†Z¯_»L¦¸•>”µ;á‚+ŠæÂ­[™ê\Vuà‚+ÞÚ¤‰‹£[\õì9ˆ=»·eý©ŽN¸JO•è‹ ò­·ŽP¡Pñ?/Žsn7Î[âÿ#yê©Pð*€^@¥RÉÔÔæˆo&“ *•w¦coÊÁm®ÐK­\åÈþÿ W FVCAÒœ¼úª#ci]& £2·¢ÐaòVj5YZ­)èî"Ô0$°§ÅGíÎýÃ9+•‚(Z¤ÅÖ7ÔÑ‘Z—Z7V}è!éÆO¬Ì8û‘Q¸2](´eœüÈÛ¼|Ùy‡œ™”âÔ}{Z$=œÖ¥}ƒAÌc]Â5jš&—6#_—Lj2šÊ¾õ¥ÁèõÔÈì.&eP%—£L&›¾eûƒ“¤@ë¹Á.Ç’NÁÜÖÓÛ{×|ðͧe<ðpÂ…-$¤Õꆆ¶M¾}{gýdFF†ÕÏ×Û€}"F܃ފ”ËE–^u6—ÌÉ!Õêç.(ä¸]yÕÍóøïpe00'/Ï]OdÆ…â{•Lfý¤[Þ Á¨«tƒ¤Ho-GIèƒOŽ‘o"Ø:’¿øè0ÕjgÚ¨¡÷¹RæjÑéÌ”ÉjÝ´¯ÎÙN¸âùþù?T10Íe¿J@o5ôb š]—’BªH¡lÛ6ºà*4ô&===X}*ÊWÉš§õLLÔóŸ³_£-FÉ܃}˜pôc›(Z­$i4’:ÝiÊ騟ôòò²ÖÕÖØH2ñä•{•L&°o·Žzw2ˆ"0ë¿Æ•D[Ty Ý``®ó< Ì9全SÅ4çsÑIüIûIy@÷)6•Ò|×ÉeH2aÎ?ºº´!—ï¾#Ôŋר2ý²íglÒO™BnÛÖ¬ì.¼šãVàëï·ü!‹¢Hi7ycU<5’t¯$4/¢°•öíËQd3;_ö 5 î/è‚Û 1PïÐë-Ç^XH²ê[Åm€o‡ux@;vl°Ì›7Ïe‡–=»„êZhÍ9ëüW¸’ì¥}¶9w5pIþr« .fþ¿Ÿ ×¢9ý1¶ÇM]—@­oÏÎmŽ(ÊŸ!¿Ý'Ê%¥U§½e²Bxè´•µÓ|L¦^Ž®%JE…¥àò •©ì/üºP«€Ò* «8šâi)«6ªzõzU¸~}ÁUyi± ²PÖÔÔ`òäÉHJ’âoªÕ-ŸŠ‹ñã¸8jc\›;µáéÑI”ì·fX&_Ô}ö™µnç΃i6lЧ§§·Óé¼:ÜjŸ­¨j߾ѭChÐ#qjM¬¶þ/ €l◚ֱ㕨*­ÜK¯o¸šžž^µa߃¿Õ……½å‹v;JkZ˜oóê4<ù¯AºøŽk%ŠMÏ+¯¼‚þýûã‰'ž€V«ÅåË:wöòðñ± ûöeÉCBú+«žŠ²dÐ]LÒï`ò?Üšì e›JS|J°Úbüý±cþýu sgTÙzöëÀ¦" òˆ5§M7²KÔ 鲨Þ ³LÙ`ðŒôÕ÷‰v(ÛÒbWh?× õÉ0lÖÊ’|ÛzeH9n꺋ùæÇå]þSŸîé=d”NøðÝíþ£í|´Ú@'\yªj,Žê¦š8L dÏDàx÷‚Ÿ²¨Tª' <ø Üâ*:zžåúõ8e÷îÝ‘žž??I?ïåÕŒ+ 3€Ó Ç`ý!?|ø¼¦E+!¢J¥@AÁ`Ìž/><²ÎÓóݺ©Sg§-Z´H?pàÀvF£o§ŽkÛ BÏ* b øyAðj<ÚäÚpÿå@;w"­ïô[Qd;/__Ÿ«¬Z´h‘Ï«¯NÕ­YSæ1pàkí4šÃJ¨(óôB‹˜¡ÍûQ° xñEI4'ÉmÿÊ•+ Ã¥K—˜˜bQšcËT'QrÀ¤T«ÀeOB6(èÜ^rçj0! #:ËLå5#Õ‚ €§§:åCãDÓÛÍŠ¼A|F Ã{ #10Bkª+שUJÉ,®²Î·ÊÎ\¬òMÉB»^]Z á^pÅ8ÏR7m¢ÆU~ ÀP{ÍV¾ÉÉó½t.R´EÖÿN£®w¶îö>& »„200@0•üî¶¾õ øý¿F‰jµš¼ÎÐPW;«ÅÏçé‹ó3¬a>¦æ>À>}\us?,ч§o{ЩŸ.!ÃEôððà¬Y³ Òb6ÿç4åYHÜXmîŒHZêë)}13ŸŠijcádh¤róêrýzjìŸ?›Ng½0æìćÿµk×®B‹E2 Òüö•ÓXž3–’ÎÏä2þ°0ç“%7² ݺ†Z‚ü®Z–}ôÑ ¼v-ŸF½–‰Û6‹¹Û5ž8LͺÚj÷‘±Hêo ¦´Iuwµ©7½KÑÿû›¸*ú¼þ»â®¸²œñ`†æËzÇÀ-õõÏÓ›bcKÄË—Ëyûö-aî#žîÛˆU’å»D’<{– sÝQôì¼Iß¿w«©¡Ø‰[~øpw;ÓôôðäÙ5œúI:{C$I½^ϵk×¼<{ÐqËÎ’´ë*gÍjÚuX,€_îYå@]tk£†$/^¤WÀ"M.}ÔÐi¾UžMK:þ×k¯½Vèí-9³¿õôX§±höî£ÅB:;›7å N;¤à /CA~–%,ä† ®$¦^Õ*ð£`vÇ”K h¼}œíƒƒÜFÆÀ …µ»ç=áÊ”1ÏÂäÎWàÍuÉ$Y^δ­@d Nå°ØÅ_•{î6 ¦¼ÿÛ¡”É<ÜÞžþøã")e«õOlL¥RIoïv=úW>ð@±ÕÛûª©­ßê%›¸hšûD€*‡¥÷÷û½¶å¤år)¶§Ùd¦æ·/X~0”ÂYƒÛ áÇo¬«©©‘¤MÆ#jÀ¬m(”ËQ&µi¸ÞÔ΄ ”ÂÅ*íõeÐÈ!uû‚ýÇÑ“E$IËíJÆû\§\ô„$̯¿þ¾6þd*©~Ö¡ACÇÿO·Û÷Å‹Î;+ïk©»ò*ÿóê:¾ör®þý÷ Ÿ|o½|Y p[S‘Çk¿{µº®uÇ@¥\´p¾Û¨U7K…ü]­7¹g8to=í𿿉«·gƒÏýÃïžqÅâÏiµº¿=íÓ§(—73T¸ÍïR<ä¦MÒÑ+$¤ØÞ¡ÀðÒ”©Ë_Oê®b³éÚŠ7n»àJŠFÖ‘*ßž=–·÷·§#gê¹ >úè³ur¹Ü€'¾jÔ¥ö*$…2’ôòrÔ‘¼€Ö3hŽ}RE’¡¡¼Ð\îZ†¡R÷®Kp½†$A0ïÙó§vHo‰¦<ÿà$¦ÄIÄ~p,TÈ_rRÞè ®}Õ‡Kf¼Ç^]¿×GFn2HGsu£P/þt‡u÷'E+/§§ºZÕ±]{áÚ¯÷øŽ5`eQ¼ŽÅ€{Äð Jì’<Îa@¶­ï • ¤µÑvôòø{ÜŒqc\&8aÂFûW7Í}½¦üå;c]êwëjÑ_m60œ÷}Fu;¶ëLO‹‹åÌ™æÉ–k9âþ-üôS+õz‡{ÃÄ@{´ã_¢Q'"ÚãÊåDÁê¤Ãc Z Y™©RÑLRdRû‹MåÎmÀõ¦ñ{x´·*•§¸hA<ýü#tÿbn9îÀƒÍÒPLêsÈ´avª"jÀgõæÜKNz4Q˜¶µí×tçR2™Œ;vœrÒ£™Mf^ßÞïžßïéo¤¶|%Éôqš¿ƒ«š# Ÿ—ô¿ê˜Öýa[æØ½®AJ¾üò/»B:eý]Ú¨>êR¿ /ËòŸ…ÞÍeâ¼ÈÌ'IC‹rKé©rÅðýý´éÄùs©T¾KÀÓ¾k©9êZ/cbIÊdŽñ4A©µÐÉD­–N¸ÌfbùAØqÅ‹\oM ­ãÇ[9jøz––6ÛyÏ›'ºàJ©(·u V2* Lþ´:ìÀô7~ãÀ¾Ýœôh2xrõ]Öôê,{Ÿ3g¾â¤GSy¨xùç÷ü~oŽ”Ìt¬ZI`þ \9êd" m[háðˆùó?G¿˜ª…PJúsè»zºg"vI;þ•€ ¿ö¿½¼‚°iÓjY#ÇŠ5j›«Ï™CzãÑDtîhgI AJÊ9Á»Óäæ6='Çi›€ˆÐb Ž~^®Ttl§W/XHâÓO×Öõêa­Ñµ©[¹R‰ˆ…ùömHñ`42ßϼhµl¶ñè7(TwãF¶mÉ’•zi=âœ|é:†6X 3sµ»óÑ@C šàRŽNeÕj›Ýæ2ά2 Šh.¾üC¥’˜7o¡OMM3-vÒ®/Ð#ìNŽ“ÎéŸ|ê V|q°[>œíðø®¸š¸… Ý/þ¼üžq5ªí¤§6«ZjjŒX¹r‘Ýàtî`ÝV•RÖ“ `¶/fff&  IppM@Õ~ m0:bË·ç]pÕ¿¿‡E.—cýú_ë*«Š­ºŽ¨³Ù>…RyË tH/•IeÍ_}!ꮩTpÀ!—­æOK IDATÛ(DÂŽ+ø(¨®†®€Ìââjû4ÿ Ì•¾°{7.¶kg1œ>­DBò~]xx°íùç—éEQ„L–à„+•G¡µw×Ч²áúïÀ°^€ÒAx·€äÄSÖMŒ:¦‘™&܇õ€.ïÛéÍ?ÿ|­—W³Ÿ÷ŠÙ#Я{Î]hN–ðÕu …PÑÿ®”«V­Jpä‚úüSýöíÂ"ôtâ‚2dH›Ñ<Ú³©¦gû‡|4ŽÂ¸ˆø»P©±ñ-=f|(@¼ñÆtíÚ¬;öðëéQ&N¨ •ŸrËÛ£ èV.+,<==±ÿ~‡vV™ŽŽë~ÞÀo⦅ߨN9ðôßa¼–åe6UUŪ¹sçãìÙ³m $¤s›ìl ¢ÞááP[‹l_àz˜Kìí…¢.ϰ·˜"_&Cw´’†ªã`éw( Fb oß[Оrú…žNG ðø£i„.]ºí»xq$Ö­ûD9uêCxá…õ(.:t(ÇË Kêß'Ü_a5éË¿Rƒ È+L×O<3gÎ@¥R¡OH¦Êjµ)ýt¢m}úõj»Y¼ÍVˆ™3×âôéw¡¯×a`ð7­Wn‘NeÂÅë—ìïí‹-·Â/•NÎ2dHý½àªW¯^m^|qAO@ŠÐ³ûD©OŸ0à_óîÞ·\fƒÏ­—AîL̘ñ l¶öçù¥ðøå$êž{Ô ˆ$ÿD6⡾¾#FŒ@ƒÎª>Ÿ b‹ $Bý,æ,ÌBÞ¹øð?áÆ3±>^f3гggULLÛ€Ù,õg³y%€€ìÊZ]}x{‡öÌeuO=Y¾}{ÍNz>Àî‡6m4Æ"וvóÇh¹¢ˆÆÚKnM¸¿…EÛñ%gÏBûôÓè¨{ˆ¯(šñË/ë”þŠgŸýÀh—à©úO}€ïAµJÀW‹áê ÷¼"á)W{?aaaÐétXýö`àž/þN=¼{Ûq¡Äk¯íÆgŸ‡¯—Þ˜™Þz]—¶V ªÛû{«÷œþ⌧3{÷î}O¸¶ŠrªÒ~B.ãÔy49k«éAÜbÖ3ãWÿ{ÞZøöghh?Ö×»ªFDQ`ÆöpWºÆ¼ëCiŒ7nt®ØÊ1ö¥4ÏËǧ=ׯ?Æã›â²ƲChpðà“ZÇ­ù’%Lnô°;BK¾¡ â"@¦§3ž$) Lº¼ý}œÐxäØï¼Ã’"omLijÇv6?d7¬Ë?ø ½š$«Ë®S³}­éÀùó—Ð)ªùÅ!nç¸ý}çãù¢E‹¤òI¡­7ô¶úøø¸íe2?^¹RÆ„}¿ÞûQá`;…upi ðk¸W\mÛ¶ÍE㡾¿·1P#Ùg]¾|›2™Ÿ›yG?sã›Ù˜³ IÞwß}NõZ=ÆÞÚd»NG~ûíZò?%.ÙÉÞ}—N¸Ö%7z4;Ø[j2,Z‚ƒyQ*3 ½ŒË¼6ç<)Ù >÷\Ó%Ãg Ä…“aÇc6 õ™aa-½¦U`»6à«O»>òãÔ©sœæ˜º±µãä§ŸXVVPHp5—²çÜenÍŠêëE†„ô᳌¼ç÷Éô¤èz§5oÞ+÷Œ+Yc!÷}„ËOŽiÜâ*|²1¢¢3äÞÞP_­¿?âCI©¡¶U§ûë#‚«}î&„ç|<>½ Ó§÷À¥K@AàçwÍØ½;¼ìQ0#iû8 ?ÏlFF³ŒËö¼ˆï¾ûN&"|}»3䢥wéöÇÓ?T œ9sÒ2jÔ(â$®ºz“m¼Ï´çHH¾ÍvØ~1Þ£J®_G8ò–Å¢tÝȲÔvxm …üþû‡ç<2|ε‹¹G‚òò <µZ­g¿%e_}=Çû…jµZs~ÞuÓéÃÚY/>Ò{ðàÁ‘ ÖëØVi¶R9h!.\-ÄH@Ô6]á@y¹5«(uyÔ}ÊïT¾^„(Ї€GÆ©?~⌿\®â½¥#‘CÒ ¤›cúyóF¼¹ÈáµJéf]|ÿW|³9 V«¾¾0Òxó¦Ú ¸ ÑÑÏcó[FŒŠúín¯™Ejã”UÁ^…%nžöÖYMs¼#®î»o¨6;;ÕWþ>À™o ¿?wÅUlÅ,|?99û €d.“jò½=<”À§/KŸ„ ®¬‚ŸÛü$ŸÄæŸCTpýwFÚ¦ÔîI ÷>6 Þ{ï]Ë?þ ª?j–ž©Â€±¦ã1ÝóÜÑà"§ˆÿnb—>‰‘ð­ÅˆÛmA''_ÈÙ±áÔµÉsuëéè¹î»º²»ÞFCCRh`` 9ºGwSÿîãµ'’võNKK‹ô÷tÕ‡¡”)<•¸ÿâxõ)—CÛlrAYs'h£Ö¿•Ÿ7@Ê`aÂÆ ëêßxóm›M„ᄤÂqJ _`p:àéôïÝìÀÌÐgÐWðD~ø44™™0æçëC`ôh`Û¶ëð*Z€gI¸Û«|ï7bP’d®tfÉÉõÚ#ÚÜ®xë°O³ß^sÎxÌ®¬sC¥oO‚Í"2c+kU 7üå/~ôÏ¥1BpKe\Å5k4E‘ºš<‹­h±÷ecÜæ…ÔlYε«¾gHˆÞÜT>(¨† ž×›ë ÉâÏIsß—ý}=yóêÞÆQŠd¼¯ý¹í¬LðEPÜÔf¿~ÌošSQÖ¡´•KVí-..NE±¢ÙÌXeɯ#€ÔBUPµ‚ÀJ’djtâµ_QÀ(“ÉÂÃ;ŸûlÅ'{{Fuºû—F¬iêïÃÏʃéŽ_ò†ãÍ_¤§éD“¡ŽÔ8_‹çïGöÃÚuáýýw×õì©§§'©TR4ȬhÔRê1–ÃzeïˆLAþrQ.—‹Þ3f{öÔ»} E5—Î}“ç7·J Xvü÷|P­’»ñïkÊ ^†»áª¸¸˜€+—~SVÈ!ýïðu¯?î'~·ò_”ËéžzéÀðö–«G¿þk˜q㛣ù墱|eî«ôò*37—Ï£\þ²¾k¨Š+æ€bL‹>Ï÷£ÉPÇé¤]ƒ\F1Î!`sœR U›Áäæ6/ç7Í鉇:§­zã³½:…§Êd²•ÌÖ3(aî?“I Z-ëärVÕZ@^ €Ù¿!‘©=‹HEQl(**>·rñ;{Kn\»hß¡ÈXÓÜߪø)#á„+óMn8%Y{èïëéØ8¥Y›À×oòõWn× $™ˆxxPl×.OÿÝê3ÔM£æp2“Ng˜®¤Ç‹$E‹…üî;rÐ ÷4EAA6®~÷;–Ü:1eRYø)˜[•46Ù©SÔ]qE’¿ €[Qà¦Cm:(²Î±Q”hIòóI“ÉÒ|f2“9 Èó}ÈäNRÎzª–•(ÚôBÏžó…¦ '­å•+«Ø"6z{?@ Û¥|£­¦8]ºšOM&ø“±¼¾#÷P´: ýò#Nó[½‰€Ò ü©hzë-&ö5MÀW‰S¦LI/((H¶X¨—„Ю tsÆÃŽ+֧ľñc›Çñˆæí9?`cÑ9£‘Æðp¦•Õ€¬>"""ùàÁƒé]»2¨kþ@¸½ßÙ³#cïûÏÀb¶ðü©=¬Õô#Ó†H·¾·6’‚[ׯSåausóû}}‡Òlv>"feU28¸ü.ãϲGÙ&Q™ŸwÅY{kYü¹´!¹ù-©Õ¸=zºK¼ó®¸²ÙX àåŠ[•¤{/ ä·ß’#G’ÞÞ̓–ÉDFGÛ4cØäÐî.Q©TŠjõËæ;/¹¿sÝÇû¼Doº-ÜNgµêo6 B½–3& ·?Ÿ?뺹²’dÍI:~ÅÒ~Bn8gÎ\tø›þ‡Û qw5âZSýU«ÏÜ×b›êm^Žs@¬¦éùúõÔ0©£ ãB$ÙªÕ6Ú¾U»¼ó³‡vîÜb¬F^ÕTOŒèÃ90꘠THÎí%YÇØ6°Y/Ö«ëP±56í®‘Ë—uø{8wÇ5Ƚ{Mõ&“‰:¸Ó›I¹sûîÛÿ ñ¾žÕoï&@«¾$BÀÏp7\uíÚÍXF €Þa<e²S¶qƲɡÝ]2dIŠ[·ò®¸;v­SÝ+þ$)'º+i nŽà¯fÒñÝöçÑ·š~”+rÂÓå6½ÞŸ~ú#éÒ¾)‡i.¿H’‰‰¼ÖÜLJñk^WÌ~ñܘ1Ô4?_¤)Ýë øjc4Ç; ¾€+øø0\N?8óÐŒ³RšÆ*œEUózËÄ‹©g¸iÓNyÁŽ«ÇGu¢®¾ÊÅ”³Y­â ôs“&}Ùü;3Úèã“yW\ÿ¨dLOOoU>äeñí—cņX,>>’;—\Núû“÷ÝG._N–•‘ùùwÅUEÓÜ*==š-øU*²°Ì}5–I™œ¶ y:t¨¸qã†$hn%CÚ3›êªÕ4²l‡`_¿‚Dà“¸¦ç99Lbr§Ô¦çAþÞéí_1­–W˜ñ¸†°pJ0"""åöíÛ•Ô(ʨ«¡&º3’€%y€è°")˜Xš½Ÿ*‰M¡_Ÿ·_È.]Hs£=©Á@vé2¢qÍVÞå‹Jöí[aj¢öùôÓO]ˆB®à¸ÿ¦‡ò^H)E¿ê"ÂÂ2ZÃUâ_4hµÎY˜¹Ïm|npDŸ.n[rr²c=Ä;âJ&Ù¿¿dSÙµë(;¥)ý€ÜÕñô˜['í`¼•}€f“Ù W …;Ž,X»v\ñ ¼[·nUtéÒ%p0º½µ^sö,3›Û7g?ì ¸òßH\¹’qÍÏ£’JöÂŽ+}mµ®€€+Ç>k4üMéZJ’)¡¡¡•¶3(£dBÛ²“V¬(q•L&ÐÓœöpGÚ¬h&<¬o'74¼˜˜xƒ$9kVÆ]qœ±{ >ÜE.ج6~°,æžp%“‘<­3tX«¸bÉW‰55¼ À[ß+ÂÍyµ1/{éÉ[;ºÛš¶ÞùEM’Óà`c@@71 ÀèÃ1¿þºT7<ü©`Fi‡à\¾]»j ‚ÀÇŒ°oúw?ns,Î2’VšŠËXð~Ü×+æïÏÍ5&°ÉÍ%Vq»iÞÚªS¡hlmLî|Ž0")’©>³1‹EŸ%P~ò"»áe,¶ÝÜb¿Å*?ЃTaS«ç%|µbÁþèÎH”:ÀOçh K_̶»õœ;—hñò rëãåEÆÆ:ƒfûöÂÆ5Ë»#Œ¯¯Y¸téº]¥PSSCÇ›S¥BÉa½öÝÓûoÊ:T‹›7|×ê—U_™}«sç»±l8 Ëá½:a!$$Äéö¸ºšbp°õޏ0à,pÏžb§µJN–>¨®u®×ÿø­]§1aø›s™â2Öðö(ûøEÄmùìýžž‘ ht˳…Wƺ۩r9Ë¥zF£L[Ñ8G HCAŠÁ@ƒŸ3¹ØÞi:Šæ¯LÐé z¯ÏLÖ|;šØ¾š$m6Ú~ùŘðÓgoí§!;‘¢¨«¯§ÎÙ˜¼¯Ë÷v³léb‹ÁК˕€³}×®Ò­©‡Gñq%—kÀË®RÉd,//·¯¹Õbå“ã“ÿ®€L1¨ºõ[ùŽ ‚Àj Ÿ7²Z)h8 Ÿ0|øš¿Õ¹R)ØéˆHróæÍ-„td·é¶;µ³eKbLÖ†þ>ýØ)xx#£šÀTF—ò3gÎoÑÇ:~¥²¦†‚ S§N>‰Ȉ–ÖÔ0ƒ)]ì@™;1ÀÄ @¬ž9“i$YR\Xºî_/í_·næÀ1§v¯:òü¬ñG§N³dÉÒ˜u.>Þ©Ó-©omFÇŽ,oh൦¨UÔ4E»z$0ä… bÜþýûcär¹,Mr«ZMÚt‰6ÒVÇ­[I<årrÂ2-Mb0ÉIÏ`ÚéS̾NƒÎÈaÃÖ¸ñùsxT•XSãz54oÞ<û:ÞÄ]þá‡XfeeZÃE›ðǯM¹Üj§#À-[¶¸ìÒÓËÙ·{Îq5uê;uµµ"/_¬cRL ÓSkh4’HkÞ²üôéóh4ih¤Ù°!ÃW@`†\.8³reÓq± ̸±ÛÁ<£ì÷˜ãÇ™!“±ø# »véTúÓG¯ì_²d‰fêÔ©1.äô‘­G8³nÝ÷1?¬úç’ââ[$À  ´ð½ÖµŠ9/¥œ8Á OOJ}Ž›6mZŒ ÂwßÑ WJ¥•ƒgÓN´S®[×òÃ%P Ê<ˆ2™Œ}»EqüàAMµÊ‹K—&ÜWmÛ\ûõírÁ´páBû»º ˆû܇r9ZÇ•­®$ÑØ¡P¸ ¥- î¹$“IúÁƒ/ëÿÎÚ·ÕÑb¨1‘ä<à–LÎß» ÇôÿÞ%ú¹ Ž•ËØËª'ýHoîñãýÑc)EÁ~ÀOà%víú4ÿüF²³1ž׿!Ùð‹ æ¯UJŠ16***IÃB{¤ñvíXm­9…y%5àÔQˆÀ)SæÛðá¤}jµgŽD?d.Þ´‰Š6ã}®_ý7Ø€ƒ1‘‘,!i6õù;¾œºwß¾CÒ9)ã1 5`ÞÜôRu¹$…›“úÍΖH*³³³“Ôêæ 1;²¼°7Xu”¼4NríÑ€§6czú VUÑGVTHÎý1[V²êp°ÓZ™O©øÞ‚)•¯¼ËèèBQ©D ØŸ|,‡göµ®MIIÑ`Û6#õr™ëùNyüøëVA(Š"‹…•¹ðâP{h½ùóù·på£.gH[oVVVº%¿¬­ªã+sc]¢ŸûúŠâóÏ“I{߬¶žU;©þD5GÎÓj%þ™\°€–gŸã?ÿù |*ÙjZÏ*™±o$/$ÿÅwÞ¹á„+µzhlNNNInÜèÁ¾²úþhùál#ýNå’ܶí๣?½¼Ïd2敊ÅÀK…6Ý_¸Îó÷Ý i›2…1@n ³·—gþÁusö>ñÄôdüó‹¦ch÷›7 —d2Ö5÷(©}¢“–.5:èíJË;uucÕÒ!ÔjØqeÉ]Źs_aß¾ã,ÀhÁôôðä' Ʊâ`[\múèÕJ`&¿D™Ì"…¼“[ÕiÇ x¨U½hpp°ž$ÈÓËåWÀv¯¤àŠ«¤Žç›0Ð$Ø8¦ŸƒôoÌ?~½´¸é¹—W;uª¾££e^±¼ºúܹs6”ËÀˆà“cÀ×g€Ï<‚Ú'FJ·lj•š‘a½y_çÁŒ ëM…\Áyóž¨Ë…³î™)foÞËårÆÄÄP³}šS1â}](™f¼‘¨V­ùù£‡ö/xšmq^òïísÊÍeMÅeº´g>]µú€ÑhÌ£µ¦–þƒtF\$*p}i¬Þ9È¿G2 «êêÄLžëž,œ… ã–Z­Î{gÙ{çLô9#“¡øÈ®Cñó£NXÎêc—™ùTÌ/ŸŒßwù²1¾¼œIš™ÿV,5ÎQ“^}q GŒAkcœ‹Ù´­­ûíúyË…_~ùE:¯ FŠ-ikt µj¥+öÜW´,þœ¼õYgwü6l˜5 M¶ÇïÖsHˆÎzãFóEÎÚÏ–\s—áªýh0ýúÝY7Ö2w ]Sݽ{w› ¬®ªdÂéߨٻŒI»gðjÌ»µ¬:DŠ6õFfžÏå…¸«Ì<ŸK›ÕÆÔÔaÚ#‘­â*vïûØ­V+øêS-ËÉDê¯&jµ¬ûúk&¾ñ†Qsæ—ùûyë' Í·ÎkµÔÊdŽsŠL o²ÝûœY¾ôÝjµ:/еÔ@`æÔôÄxñªTNÇôó¶ãêú•*;®d2ÿ̼Hf¬\ h»e4ó>ZñÙA]Ñö3¤Øð¯9êæêu€¼üña¸¼gbNm·O­î´¿ÀüÕ"¸àŠ Y[[K¥Òƒ€t#êëÖýv³2R…!C†ˆ¨V¾2ú¨UM¾’IÐo¶Ñþ¹q,ù|4_y¦}}T”ËåÌË˳Ft)ÿ[¸ò¬ÒfFê#2 ®¸ª9açQ„ƒ4µþ´YQÉ ƒcæÌq¶Töönǰ°ª{¡\N>5ùcíò§ýõæÓî(}3x´«d/º~¦Ž$-—f´ÊøÐ)x8ðµ×Vé¤/õ Vq¶gkÔié …-777™W&Å4=Ûð:Rd²—“›ôZ©©ŒÛ½{wš§§W@뫯2IÔ&\iîïþ˜¦¹U—\I¤¢õ ¬jÏÉ hxõ¹¿Ÿµ +@\¬‡Íƒ){úôé5±ÀºÂsR“ÞŽpþDh"##“l6›–Û•ÔÈœæ^÷—CÚ?ýôÛZ’Œùå“VÁ÷íR=êÓÅÉ\‡$yu&Ù ãý)^gúö³=¶QwÏ¡¡Kff®S7¿ÿþ»ØW-‡¢×“}ûþá&ðíWwh/zYo‹i…úæÂ²þ|Ë®8éážuxuïÀVq•#QhÏ™³X×ôC­:Ü¢œ¤ÓÒÙl6[dddòÑÏp®¿œ²a“›õZCâf̘‘f0˜ ZµI#ûÊí¸:ŸPlÇUŸnA‰Ô@d¬Òzø 1oîx?;®,¦ú+£G3°˜Õj¯ì½{÷^|íµ¦ã¯¶NåÑ5É®·Ó€¼µE“›››¤P(l¡A¨cà<÷¤0»×Ä?l«À•ÏŒkWWLדdR쑺–¿Û?VB+tFbœ³>`Z¶à‹¿…+ ßÒÄXìïˆ+GÁF¹R8+¯\ÑZÛì"pT*_öèq¶F&î¢8E`lÞÞê5eëpú˜æ>Æ h¶k±jiŽ w"lßGQlÓ&œZ­ÎîÎqᯕ––_£È0$=zTšxåtÇgÝwXY›6Ç®Y1qŸْѲĨsÚp¶éæ²} Ò€Ô¸Þ½YHRàű³F àe¬77n¤†%_'R^ÿÅ Ù–³Më!Ь¦!¯dçê§÷¥¤Ôʼn"ë™ÿ†Ó.94P25™8qb< VÆ9>³• sŸj¶ãý-E7jXq(ÄíšælWY›âK*ä`Á5‡›…ó}îúN¨‡öÁŸ&ÃÃï®äê©Ûuee.¾reeeN¸jÒ´Lf3¹`í®¸R((>õ9çÑ©wŸC¬’¬Økï£àZ¬Ý¯KXêN‡ºÅUÎ'Y\\K¹ÜÓ~ôyr4\pECnò¤I“bpê(¤;?ËJ¸y“eï¿_{|ëëû(è²õzÚqåå9î¬ýæÒRž6dã€ÌBBâ÷ˆeÅ΃F¥’7…š7f ‘çzÏÎv¶yMdÕÝ;¢d×7Oïó÷Èê¿~¥ÅéË|û"I?~<þ“pÂã” ¹vn&‹E°tfÙ`·kZ{2ÌZR\(m34Âþ»½²õܽ-…’©ø®¸R(~¬s´ilM^µÄ•róæÍ©:N(//·544ˆ›Ï™z×÷aÁ__VWVV:D¥–’Å¢CNÎCCzÁí×é˵ùߺ¥„(¾¾Ddd€?u—.½ïâƒ)/\Á¹­»1´û¡–MÙ“Rìüxø >øxåó’s;( vNmM›hô°dx9Ö›6:'‹±}{¹1#£Ô¯cG¯º%KV݆l”9/›`)íÈÄ…s^¾6)øúu$EEM’{E%Ø;ž¬ÿKŽ«W_ öÍøÖÿÕ‰è1ýCìøÚ¶@@ßÔ4/ŸÅçêS+4t æÎ½.˜s] Ìבo˜wî<†ûåùçwOÊÙØ¥Ó$E¶üâco‹!G©`òd\–å¼T‹²Í£Cˆ?þ˜üêÕ«†ðªCvÆ…õ‡R¦ Ц¦þõW”øÕ÷y5öAKÆí¯vÑOoö¸ÿþØŽÞÞAm*+‹ ³¦i“ðUZ¦gTÖ¾°„zá› IDATxعøeÃXµVd? è3[}MiÝþþ8we¶ «ÀíåÉÉ5º½{¯ø^¹â7Ú‚”¡C‡Z<4ÎÔðúbïÀ°^þîÚ ÁªUl>WRÙ»¾½o«ž={¶ ®T*à§ŸË—•_®öÔŸ‰kï_\,Åiòó&M‚nútøêõåèÛ÷fŽŠ)#ϵ> Ú€k³Õ Íhl[ÿ/|ÃE¥uµL­>ûm7c G®"`äS@6A~€¶n|üíÇWÔ[7¾ SX;t! n\½ùö±c¥Á@tÒÁ„ܨܛbrT' ”ýQ¹k×ö ~u»Îñk{x÷Þ0­mm-úÍ(†.Ö4ÿÆ¿4ýìEDGo6¬ô¼ÔmœV·fÌüxÔÓ _Î?öã°œrõ³ÇyˆþÂEù€ã! IŠFG÷#—ZÎÚ“0Ñ“^:-ïÕ«—aʨ’f&Ž‹Sjt¡Ñ"57w¢ÙåíøþUštáËýNž ô8qM&´ñõ•&OÜÕ¦}À(—åÌ­aeõ=»Jÿ)ðÑ»ÏaÜÔUøí= OD믢)]®ZŠéÏEû·_@EEW9­¢}‘¸•òtC×ГÞ97Üâ fÏž[°ùœweïú>4^þµ´¡¡A^^^®Ôét ´øjÞèÚ•¥€P ô¶ë×þÛüì³’ÃpuY‹÷DÜU’çí½f«;ÿ’6c÷ FÍöµŒ;y Åi)ÿþûŒ'i%ÉÛ·oWzzÎwÒkX“yãßñLí™øë'¾rEKRÇ‹Ãc©ͧ`–Ë»äÙ‰Ÿ~šy|Ú´i1þþ[N®]ËØÆÈUÚ q€¹°gO±àý8jÀ\Nj~ûMwbÿþý1ƒ8¾z5cmú¢\6îxÿYĪÿ#íºÃ¢:¾ö{·²i*EP@±€¢ÁÞ±Ç^¢1¢±ÇkLÔ$&±EFcbרcAP,€ˆì.½÷^¥÷ζ{¾?PÔä÷ç™G—;sæ½çÎ=U®§÷…ôܾéOŽ®G€ƒ-fW@ZKSF†<ØÒÒ²9¥@d¿¹ÎãÇUdi1†lÌG¨G÷XóQoã:]!H£‹èM€3éé©­%ØÆh_èÄÎ2‰& :@ÒË#ÿ•PÓ9j÷ÐÎÎ¥Cá¢hªQSÆv¢°~š8¿S¢°þ2*º¤&E»š,tå i«•?Îj³Ä(•J |FÒë¨:`\E&Šý„(} QuÀ[×l!›VÝow3KJ¿Ýãƒë’Þ\HM¥.†ñíxcbRN£G/o‡Ûû÷=«ËËIÉáÈßÂ0] €ÒÒÒ‚”JR ”Óú]e5ÀÔY[[»ºÊšõceöÝ,ü[œtëk+RçÌ™ãWáÝ%œª$Í+(Ñ’{y’D¹¿I4Uª²#/ŸĠ+gó<5cý =²REÄèˆGùM¡§qTtN¿}£^ÌáP@$õ–æææP;\iÜOÐØ§OŸ@"¢öQšÆçW4:ªéÓWhõ² 3Ʀ¢]ß~6™ôýf? º6ö_ µ„¸Ö|¦7ndv(3DB¨On%]»Êƒ¯sd¥îÛÓ´]_#£µ­óaëçì·Ûž=Ð~‘“à²}¬öC™HýNl¬ Þ*¥U\ÜÞ=ª¦¢š$—7‘úÕ;N δwýÒµ7Ó·m-ž Ë5ך ´w06¦jw÷Çá­ó™˜Ð6=(¨Z¢¯¯Ÿ¤II¤.ˆ¦tRËdÞÿ|íýíî ¯¦&Ê$½dõ+¨ õ6øÄ²á1P: ¯Y°Ó€ß|<Çú'œ øa¤Àæ`.—Ti‘Á>$vi@ß×–žË>ûÄà¨U‘憢*"’Õ××'ü¬Õ™˜˜PUEiÝ!fÍZ†vÞæš,¾NDT^^ÞÄãñHxîñN¾™5’äѯôÍÍɸ#þÿ´r(ñ¸Víö˵|K°DÖÑÛŽÒ¿K´‚míÚ¶…D–– о:ø?]¨¥­[6–мy¿jPQ¡)^¼kÑÆDgϲí|Z(=á•–©ãn'3{÷¦ÒOÆ z±j:Ä"9érþÚŽ`#}hß³çÎMe1ÔÆ’•qù ƒêåË—G“,³ˆšõ‘€ÝºukPù~úï›Äç¹½ˆ²³UÁ›7lòúí·Æ—ªì£Òꧨåó^ùöèA…d® ˆW—ýñ[±/‰™j§^B‰PèåsâØio.÷›€èöµâ—9Tšë*Høã?‚H-“‘„W@búÔ"!R\]]£¨)¯¤ÅA¸¥™›"ÂÃÃC{‚£¢+¡lFþúI`Kñ3ý"$×½yù»øuáx€Öœ?f¨Í[¡wï%jà~ó‰ïD8¥¬åp¨ÌÌd³/ë‡ê¦ÊXÉÔ©M>_oÙå}ì˜* 23Yò2ì<¤rë„-[¶‰„)_6;ÚK8jRËR,XeÕ%Zá–¦(Š˜5k–ö·jBó\Vç…¤ Ä>9¿å œ½9å;q5zÀ:â0šßg§ø¿u?GE‘zÑ"¢Y³ˆÖ¯×$hhã2gŽ&&ùüŽÿbPÒƒùdañfŒiSËR½@@òvM”›–IOÞ_¤£¦òã’ƒ}ßÚƒ¨°è«¯4èo2…ËUÑš5Rª­mµÒ^<îÒz­¨}»ì^SŽHtP¢ í÷æµY?°ýí4ÕÚsssC‰ˆ(~V»~˦ëùÊdé,K5”²VLb(I Z¹tªÉ(ÜÉŸÄ %ŸÀÏÖvAøÕŸ<Ò×5ˆõ¼ìÉú1µBÁਵkCžÝ½¸ëù†•‹½&}êÙP–UáJcý+^©å•ñ±^ç>~›NÑãÄ$] ^ÿì|Nbâ%3Fh*W ‚¬†¨y/ÚÎõ»Ï!@666š ýd—·ÖLbÐW2Éøñ”Ø–WÖÖäý(´ŽÚsºvzµÖtÞ£Ç'4hPÕ;nt5bzÐØ±?PŒ×Éêÿ|Ån"ð»“&{GÙYZS¹‡É²T@•%åµ£Gï#À‚€stT^NÀrÒ¤@Ò¬óÆ™µín¸{§×¾YvO(¤œ½{e’€?yð˜a©!>€ˆÈÚÚ:yF»~õ¯oú …¢t€©¹¸ Z\y=¹ê@{E£/£Òü\]³Âãž®~TTP;Âaš'ëÇÔFF4E vþÙñ½‹Ÿß½~ÖkèoÏ~=t£(À¤rÕòJ/@­îoËõ½<õ±­­S¸ätsäAæî"j8ùÃÔç¡ÆWPù31‘\.Ïr;¤ÛWôúˆ”ˆ(;;;ÝØƒÖ Rf}%’âÄö<!{«au Óz¯^>¹B ²ôt¢ :†ÑøñD99D¿ü"¥5ŸöüŸp%{iF¯sä4ztG×qÈæTW#K¡@»BÝ»Ööv(5÷Ae]güâ2jø/å¾îGGàüyMÕÄ7I­æâòå±2¤YYš,¬ÿ‰¬mÛ'»ðŽny¹>LMç1ÌgÑÀè@×zæÌX}žó‹aàꥶíÏ0`ÂÎÁÙÎÖ2ÞÚÚÚ±¶‰ÕVÉþr0: —Âdº¤{ŸÍu††:Ö:ÍØ~ÑX=¬(¯®—Oüó—{Y}}°R½å0ž,™4~z¿ÿMõÊéM]“þ.¶ÎJCË”c÷ô‹ ”íŸ:®ç² ŽÂ)3/ó¯okkdyPæZèÿÉd¥¿T ˆØ-7ËÏlĈµìE7ƒš¥!Þwån nô‰ØËé²À ]wŠMÎójS€H©”wûÃc¸ìÓï q9q÷Å:!¿þ3ª ðQfNN¾SQú“H”Ü÷&Óó‘wüŽjXQÑs±DhË‘WUU_•“cŽ)s†é·Íj1zÇNrŒ…ÜœÔCµÛà?€¬‰Akœ PæÈ‹¬Â//Ïè”8{¯Qç5Ç™àÐdH=C!9s9·N.¯±ØNë~{nl1Ÿ›7ùƒøC¿Î`zvêîErŸpHž»{×¹¸ŒUëT_éjþÚÁrãFHÍzŽPþèãï7jô@™ôÄž‰ù·„k¾òáü¾Òvß¡jÙè] ýË+_)yÜ1±W”Ý&ŽënvéR['XW‡;â%ßjârÑxðÏIœºÊÒs¬›rŒzÎ0ePÈïZöµ ýŸIÐ÷¦¸iPnHPþw]¢£‘ieeã4ûc‹H—©x WÙçñz|3lÆ `‚À4Â<€_Œ@z~˜>Qk÷ Ø†F †Äâwl# H$€ØŽ®ÏùϸRªu'ˆA÷X[wÔcP9²³Û¿†Dß~ÛútˈK¤\WÓ;l.Qþ)êÖíÀ¿ö$ïÙó5•––“®®.é@ëg£.ã6$¹q*¾š 1—ƒ"4?^¼x!&""EYEÛï‡W1!Ù¾O~åD•±q>wž=ý•1|ø:ïƒë;ûêéüó ÊÏ—…ÚÛ/ 4Ʀ&ÊôööiÚàä$ÿ¦¦¦L†aX`AT[CÀVýðõ·JÜQÑv­ÏŽ –ËA š2eŠX»iUâD ë¨öã”ʼ9 hÜ@é›ëH^@õõõde5†ŒßÔMtܸ\¢Û· «{v•<ú÷OÔ:o‘ڪˈ6'ð£üªýì`Ó“Ònéý'\¹O'O6ü‡…Wp(22’ÒRâ(ÆsC]£¸›‚Ä ²¬ ÂsbbUÚ\ù€:¢¢]41ˆõCõ[v=ŠÊZÇÏ*ô“†a›šš2Gj›+m·äÅ‹âôtÊÓèÃXÖÞþ£H_߯0€ÈÁfªWäu³WÆÍõ.}Ì‹:u$ãp/²Î['þ—Ÿ¯lÌúªcgFSìçd¥ÕèTÛКWߨØ8®²²Ò ¯@ÎO#´–k!Žj‹m˜¸z¤Ró³-8yRU¿aƒJ_WW\áìvÈÖ΄îû~ó*í#¬Û—sïîµî*•¢fÛVa©·Wسg`õ“;,ø\ÒKcþÎ}ØGw°á'å#‡õ0_}ä\UBœûäéxs+«ß/7 6i²87_îŸò½®~Ý(ÁŠmvÉŠÊS?[7¢1YGÇìGÞÔù6#‡8öHâÎÖÔWÝ`Üx(Œ×–;Ïõì¶}aEõ>—F3×L6íû õzú¢X•³ýË®©ydñó‘»I6,@„6Gô[ÖÖ{)77× Êò¨ªeàwí^'-®ªªªâLLLœö¯@ÀO+Ñ!®ˆ ¼hÞ~Š'OÞ,¢ð.úº8£¯V«QX ƒâoe†²ûïŬvBÝã°‚ËhqõçŸÀ–-ov— ¥²­ïš¦=yò–ˆˆJrå9œHÚ&3‚„Ñø1el#bå,QQQ‘öÉÌçï—w”?­}+ Þ½7f{ŽÍxŸ´®÷B½‘/Q¥b‹/\ ±½=åòx¤tt¤l©”$DÄÊår9 ljöÿjvN,‹ypòS7ÖO£ôM¾×<. <==ÅͶl½ê?á%/ ‹" §âàWf¾•ù¡A/PÝÝj­÷¾Ís] R¥•þ ¼9|÷ìö_‡<–/ÚóXòèÖÓ/&õÚöu£ôò‘u®ia_È_¢ÖÚÂ: ôÅ@¿‚‡(ÑYFîܺӋÄP²~`'|ñ´iÓÄT˜LFûÄ<ûä‡sçR4ŸO ‘ˆdG’„ˆdDTÏçóšuÝM™ pS&àæÇ0]ò•…w"H õûxøãºé!!©ãƽÿ‰Êç]¹ÒšWÝ̬ÕÅ¢§%hÏ7ŸÌ;šwtyØÑCí;¬Ì&`fõ¶†<ä¨Ñ»Ý ‰ŠÝA¿o  €œœœ´X<|˜äçOk{Ú,¦íÛ¯7^ß‹÷âŠüõê•òªD†áëÄ@Z. TjBœÆJ°@ND²¦&jjöÿ’D;SÌÓ¿º‘˜ÑÂú¾&VY0mÚ4q³ƒ-Kþzõ;¶íòÚW¥~…ŠâÈ}¾Ãú‘TT}ál–·ûß]{÷®•ºþlìuô—¨gßn\æqxÿõÇË>û4ìé-/áïÒ W¹ÎßûIµù9¹17Ìü(ز¤ ·.òè¡ã^ÃRµŸØÓÓS<ª?’Yqë ß÷Ö†‡€{´F1$“»%šûõ …BÑÔDM‹‘X(¤L†¡*¡2çÍ#¿ÒR6ÉDÞqEÅ×Ó]\¶4Z[g}à^W°\ë{ß*`dD¯kÜ|Bì4-|QÊj–ä%oUÉ#"züø­k4: Ò1iûehhÇ‚íßRhhh;àòù½•@0½mš­#àf`Ú°`Á‚h"–¥è â÷1Ðï¼ÃK++6³#¦mÛFAR©"™­%‚':CÜÙP èÈBÞ˜Ka}µ¯rÇawî4ø=J’Ìè`Yáã(ï©ÃÂH:|ø&/}}ªI‹ô}¹v¥¿[©ÿ—ž›V®÷Xµ`¼ûÝKa^“¯zšæ¹õiã{ž>··¹ÿsfõã9cÆ{®]íïÞÝrå >Ÿ­qu ô.Šbkðéj¢“ ¯ûµ"ÕÕ½ñ¢Ê»‹ö•ÇõD ül Y–JïERÖ)•܉ V¡5êã 2®£µwî¬Ît?9Èç}¼;µA”®®®ÑD¤ £ª¹sÛ#ÍžM” o—hèС ¥ßF0ìÿ5ÆÊ•+Ûá,+‹”#FhÜHÚ®aê©ÿ誂‚¦†D3 X¿ßñ^\ŹNxÉáäuˆ+à÷ 1cÆ&‘Œ³‚©ÊWÜTWÙØH2""!?7å&´¸jŒš¦£ó¹°[2ÂÁÎgö8QÔ”)/4.C¥þâÔÕLÖóåèÝþþ®‹çù“xˆ=þvæ°ØëÊo>OOo±úÙü2ÏßvOr¿|ø³Çâ‡<Ç ¿à~õâë £¨9r÷Úµ$ˆÕÕÝåÓXW–púd½Ïðá$]±¢áEéS£ÖWéÄQ …<1 ØÏ>Fäáµ~>|¯^&S‡¸ârË2£Í}/®(}k).\ÍårÎÎë«zõŠc,9 èÕ.…Ùµk×þ_²&8øÍ9§ œ8¼É“a×rÓ}Ç0?¿99 +Þi]ŽA×^GôV¿‚‚ö5á”Ê40 cLDe@¾#td IDAT=õu@”1Ðhýû÷¯ƒüÆ£ð\2wtÛÔ³u¦ Ý6Å 7ÌÏ_XOUщYº L÷ý÷#”û¿;äÕßæ@§ôüS>ǵRüüÙ¹n;Îdù˜7Tg§ëžó˜Óà#¢·{Í]eIîùš¥_|Ìßñ{v¬ñVy¿ârLºm9 ñªûzáßúv&5µë¾8¢_}¬ëÏ?ÞÊÞ?Ì{Êp‰^uѱŒC¿o™?ÿ<\ºâ¯ûø4BÈZûº„µ"Š´ÉÎJÏ·-ý¤ò¼aÚÅ¥,/øxÈÙ´  ãyoò[(„<9™S·eK_ã=§b‚îþó½Z÷³V†ú%?!Ò3 cpê,XÀ:Fîî€Z…‚º:@W:úú`A;XZZvˆ ë®|t56H¯©c"ÌÊJdY‹ ƒæU´#â‚a:)œíõx U '£ ò·{õéÓ§Ýg[[ð‚ƒêjГ'²ÊÊ×dkÛ¥nÒ$c]ÝAF˜˜XOæãí¿aBNnD!´¸"BÕ_ZniøàUÍ‚x WÀ¶‘ãœyî³ï„ÆŒ «AYØ`Õ$Wšõu1®š=Z`ÕYÆ«q˜±cïð}|0.$é rß®^?|—ÐiÛwö>…ß(6ŒÙß­çÓA…icúô5Ò}佡!2xªÞ’IÇ•_­4«ñõ½Ã™þ†i£S©ØéœßÏ—‹¦MŠ«[9þýNȪÝýù¥ÝK뻺ü¹?oXßPïñƒ^è}»Ý8ãË{ç@hè~éÂ…×iæÈ¡á¡òZNc«Á|ÆÆ¾—m¾ïáìBë®Ðâê†/ú¦UUz W€\®V÷«KmúÓxÐÐ#AHZbކX-®ÀíT~w#a:},Ž££c½««+?*ê‚pzzjLM-õõ@eePÏíÕ©©©"BYŸ‡šòR46ršLºêéq:TU¼!«XÕh~_ž4 Ã{õB~F¬Þì,“Épöl8þþÛ II=XhßoMŒñÓÎ ¬ÝÔ:Æ­uëëëÛ]Ãá`€ƒ¬K'¶¬¤èIer®¢‹J­¹V õéÓG¥ý`¹a,7Õ’$4ÄÕ@Ø]Óé`ã®îõÜÆƒ3€§5€ÅG8š*ìד'Ïs0êeéð²$íø;c”ŽÙLw;; ÏΆÃ̦˗!‹—³]Œnˆ¾ôÌ*â™Ì˜ø‘`ß'ŠeÕÔ·3ÍÜ-9´ûž*(ëœé¼Ï~¬{]ò©Þ¢Ù÷êr²s¹Ï‚KE)Y÷ÌAÄDÇÚïp±RVWÿSwÇc²~IE†Òíù~¥êÛúk÷—vëC?|¼wlm<ØøÄKK7G5äz”Ùô¶¶33û¬ÀÃãgà¨36êÂýö×{¢¢Šbsà2°øçŽÊ¥ ­ê^-Õ·_d¦üåE&Ç¿ÕßJr)èT@‡¿;0ÜNl4×1ðÌ•®Q³Gë•å•äØÝ¿_R°ÿl^T&€PˆìsûçG[w=ÑW<ëµùÓ?s0¾twPp³0ÀVs²ôI €† þ‹/‹!1+φª¶<>8ípeooßW2Y-·“Nm¢½¥>'Ÿ#ëZX "´ÃUuuµöÿJ¥‚‘söýÒ>þ6¬µ¸²°~øøòK@Ôæ±Ó^°½‚4 ZŽtÕÕËã‘ *j¶ùù%),-K>ðÎLÄãªéÊMY>"¢óçÏâp8ìÌ I¯pJÞ<¾F\Dº&eÔH›Vˆˆ-*¢È+WH¼c>zD~2¥µÌsñâÅ~h÷ŠbX ôÌ4z˜„„MaÞñ@ êF¡=ƒ)ÿTК5ëÄ€»@ÍžÔÊ|Ÿ “Ü[æó½ ¤2ß“G‹_5VåÆ  B€Š˜Ã;g>X5}˜÷‹[ÛÝv¬Zä~hëÌÇŽ ³ý@\®0ãë¥3]=²Æmí¢‰nÕþ3½®ÿ¶æ‹ …ed(„ç>Oâ+}ëÛâ+GbеÃÜ5霆Ø3gH|ñâ%¿f9²—¿A¨³=ü¨œœœ´”,KUDÔ.ÜèÖ­[-¼Q¶!Àf1ð[ 0I ²[æúé§Ÿ¶ðºž /‰I*jŸjYÂS*–FU¥f·Œ½víÚæµ ð}oj!ÍZX>Ü:w6oÖ¹Y`Þ<†™ˆþ ®8Œ’ÆŒ¹Júúš ï·niòYª‹H¢›·pE‘ƒÓI–@Dj"¢–´BXÀ<X%ÖxÜÏñDi-<¹{÷®_VRu5ÕfdP>ËjœЮ%ÌwEXÆ?ÞºAçÎ]ÏKZ\ñx”ÿòâ-®èõ©H4Ú×Ìxû«îf¢8WWyˆ‰ Å<¹¶÷Aè£+Þ'¿›âvï ÷sVvˆ+Gñ÷ñ½®ZáæëvÉíÉaC¯K‡–=n„ñù=¢¢šbÆUø;Öè«õ•ƒBkt„D'‹Íâµk×úQcNe}@)«C©6ÒŸˆT±±±­×dª´ üâ‹/Zx£ÎÊ¢3gH¼s'úøX.'-Fž>}ÚÂëú53 –y·Oá­ô…òúD™v‚‹..šXä„„têÕëõqÅá9B¤T’‚ˆ¨  å;¶°Î×λífhÌÕ55D§O¿®ù¯©{G¢r¹œŠ6oÞÀá äÑ¡7rTuÐþ‚(ƒr‰D"V*)oútŠ}û&!v÷n `Yª™1c†˜aP½v&ÄÕOQÛbøø#ˆ¨òòòÂÔj*÷õ%ñµkä—’BAD¤š1c†€ÊHÏ&LG0;ɪªªâèõŠ%©H¹ü%ÔÅcFû?/tç§=?ʉºu#ç©ôÉÝg&îzÞ½âžYç¾>o‚¯¥õ³w|qáà—÷Ýn„yê·óIWž6úê%åº ’6nˆòìÝ›r==Iܳ»QØŽE w€ÄÄØ8–ˆØŠ²†úêÚ"b›Ò8ù+ÅÀH ÀÔX[[‡Q•¹ûQPgb8ض€JïøËÖ?yòÄà>ñoïJ ˜ŠqãÆ‰‰T5,õCûCé[‚ˆØÊS§N†™@Ù¿¨LÔÚ «¨gÏé5€˜[(ÿ® Êut ŠÎŸ?@¤.¡„9Ä%Ì"V]>nÜ81ÀËž¿…+Í 4`jž={&&b«©ð¢˜ü kµ†€ªWb"RYYY…œr`¢Xáô  ÒüŽTÙiUaÝe2’Å}¿þB²zŽIÐÆ$æp¨xܘ€çJ‹4uÌô(ÛîËŸ~>}ô³Ï?«ðºvòÛ{¶Ý½W¶Ýl_\=öÕýaó=O‰~²zUÎÓz$…¿uÒ@§?=Ô\`š¸ª4#ŒrOH¨6DRYQ €ÕÕ1 é¤k€m~ 5ÅÆ’ÿÕ«$ " ËRMnnn(€¦¹càWæ¡18dÝAÁç“àÇõ3gÎôS©¨hÒ$z W\.©ö¥ ‰D"ærQzÄÕ[Ä0¨Ü°aC@~~]f§NŠÿ„«=ˆRS©¦ªŠ ØØ–g ÅCóÞk@äêŠÐœœÊAß|cò.ÏÍ÷’J¦O\½qÌM't¬˜yƒ"R›*òKܹ{°’˜¾«Ÿ³32ìm¦¦í™ñ¢o[R ]y†0«‰YUË\l‡–—Cë:}:âLõÆåý4ßPOKtSª ÜxA ¿®PlßnҊ˼}z gÆèί™=ï*צ{#gÁ¼¹ÊQ#?núv¹’óíé¾òÒmvryÃ Žæ'éEÙÿ<+νθ™{húô‘:V½ KÕýs”sCLÐy‰Ìéã¿•ññ‡úJ#£-Uq³„Èúf,@ :Jñ+\•5qf7k`Z«K ŠË{Ú­ ÏxÌX¢âÉÀ·.®ë˜ã]¸'qÚÜ¡N@ïÝ5ôºh¸ocüN$÷GCÜ{úµ!½ù7cÖ',_;`öŸqÁ0,zôØ\““#'àÊÿ„+ «äÆ%Ïh—AgÐô¯pý!¹Ÿìè“øJzb`öN\QÞ©iS,Žöm§Cj!óÕavÓó«²³o :·ñ,öŒ“xUä3úiš2»á+a6ÈØá¢ºúToprÚ›뻌ƒÊçºn‘#kV­õàŠt²9Ý”/|‚štkŽr’jŽÊoÞ_b'—Ë:Ä•P¨=ÒimֹߜtŽœ•PH—ŽëÓAQ!Tî÷+G˜»™Ü} Ùªoâ•{÷öï+AyæLuÆ“³ÆÂã0–aÀ% å²ÿø¬¢±µ—´¸27Gù¥K™áßËrÖ(¼…«Äläy651<ÎË)- ïÄK(:zXÓ¯éãþN=ßݯ-Åf ÿb°KÂç7F””à?ã‚Ëž[AFë³»ÔãÓ)è}œa¼þ‚B$ª‡÷ïâé3oæêß×iÑÂéôóþ}Lß¾½X‡ÌÍ›îìç+w±J© #9HÿæÍ›ì”)ÓÚ ljjÎ=qâ4ÝüçIGšy$&&âÎíÛääÔû½<43ë!Xî²A÷¯÷'%9– SZ[›u Òÿ0q°råÕ¦MWþg\1Œ?<(\ÙX™ô¯ç-¯ŠPOŸ±NÅåš½—'|¾³Ðëñ5µ¢&¶C\•§]®üò/–ÃéÜW††Ó9î_D]e¦FQDJ^裵œ;îC(ìG|~?ÎÄ÷«ÿ>±É¿Êd%x± ?¤["Ø+¿&yí+V¯ÛIÔ”=að\Ù;Lã<»÷úØOdoÜð¥YS†©>[8S¦Ì`V|¹Š<Ÿ? ƒ`22RØøø$fÞ<ö·?ÿa_£†öÒ_±|ëåõ¢ÝÀÅÅÜm[wѬù.âÊÑÑ_,ýœÒÒâÞËÃׯKçÎßP;9ü×û3Щ/;tèPeIIÞÿ„+µ˜1c³êŸ\›Õ2ÕD"Òå°km;S€ÕSsr–˜ÚØ­íÔ‰>0ô›$Se•r…F›C·oÐÂÕKÅÐTðC KˆÍg•q@OJ¯O'Œ.ë ÓYb0¼Bé„Ù21FôS¨þî tæ'¤Às °/0³¯ç:ècLu?YßÐКÞÉapÃ0gÌFõ×ÉݱH-«=hô,ã*YÌ˳•Æ,e³îm2¯zñ§ÉðY"噋UÜU_­â¡é¹ÊÖÚ¶ø]K12°)?,P5ö‹Á¼5.yßýìª(Ø ¦.Ö©Ù{iõQµ«øf|ÿ0Ýä;£r=ŒÃXÞõ ïôé¼0“Y‚ì¿€EIž·7ú¥¤ èÚ5ˆ_½‚¤´ä<˜ßyùa8OÞIJ.r ºµ«B2`Œ+¹ú110ݹAÍq|íhî\ÄäçCÞ³7c0zÌï½B䇶ç¡ÑŽ_BÄ×7±HOwÌÔ~è7m‰ËUãÏ?ók¶n55=|¦gÏ¢ÖÐð¿Œ0L£ÂÕµR&ãð,ÌçÁ<%ÄUCRû,ƒÎ°‘0,,„ÀÑâÊÄq™™¤ñ:u™ÎO‚ V©P,‹Ê[>w[€~+W ;——ƒ·s'¤3f@rèKJ`ŸR¤¯o4ý†oÐ íçÒ)lÄFŒÙ²™5k* ÊUdžÌþ~®Ñª_?%ë…E¶ÿxN`ÿZng¾e˜±‰Ò8\id±•{åæeÞÌI\•eËwâÊʱxÌ ±*ª<€q‰·Øå¨"ÛÇʨÌ3Òúà±>ÄíwÅæë_2Ã줺AõËÙó…cQ€e£þ’áîeµañ†•A–nÑ3`j? oð¥˜(º’BÙ}n8ÃÉGݾ¹žQ-z_‘`h¼±šoª 2N4G4¼Ib+91™hŽ®K>ˆ+tY¡‰"Wda`àÌíÜ9å?á P˜WÜ2ýüsL÷ñA<ÚÉ2í{©c>À6çžÒ(y;wª6¬è-?¡Ž[4 ô"´~ýz­Þ®<åïle€E45·i 7CLªúz"¢fXË\²sb T øŠE‘-ß½©ä%"Y³"Ú(y•ñ½»° !=ÌréÒe¿ß'IKz¦(ëæ¡a­JÞˆAþ"Ñ·¯tøž/E‚Aщ‰MR »srÕƒJé﵋&¸]=üÅÃoV~üˆËv äfœØ9ùñ¾MËݼnls_:i¨×áís•±|þ—µÅÑá—þ*ð ’ùþ¸¢5ï¼÷ù)n€² ™jÀÕoݺõ¯(k¯”‚»‡RP·0Ê;HDÔªäeXÁݶíÚ(yI&£Twwò;|˜¤W¯’¸ºš´žm”¼*G[D\Dú›:컜¢ã,’5!^  .h´ö,Ñ… ƒÑ‡0aoŸM¡¡™Z%o‹Q*+‹”³g¿íÖQ‰RØ—/sˆˆè‹/¾Ð®uÖHdç=@‡¸zvb=Ô fX³‚š²¿úŠÄÆ‘tâDß¿¯©KÔ‘Q ²fE:Z£”’ª^‰)Å%ŒÒÖ…PcNÈêÕkü€m¾ŽˆË w]¦ÅUôeøÿú«ìÕ´É/c¢dÑB¡ƒ¸våÐç4öö{tÉíÖo_>¼ûǶGï2JÝ:±üñµS¿¸øvª{ØÓ;^¯ìy`lL±W®4|ÔÛ ÜÒtH4Ò—²n‡+´¸Z°€ü.^¼øêÐH_ßCh¾+Âv,B j1J±,±”_]Mµmo°6F)D©À\?`T£ÿ5ÔfÔic”RQCBE~ WbWDuQÉÔœ™áæÍ›€ :ÑèÑ׉Ãüýë :·1Jq¹¤./oÅx›ð¯B€é¦ù¿Æ†Z^Î+/·@Ÿ>‹ajú+bc{ ¡¡ý‰ÙÆ< =Ìþ‚4î,Hó6™¬õ4jÚçKôù 5…êªl·|3cn_d¤‚é§}Àí4¾¥Ÿ¡¡a›'A¢ °¡KC¤€:ŒäÍᬬ,.44 eþ|(}}á VCä䄬‹‘ß«WOõ®Y‰Ñ_Nk5C¯› œô ußytÙG€€øøð|ìÞbg‡ôĨ¼LÓn³»Lë\wsÛѱ"F5~íiiáë<ž}ç"¡ý_ù+Ÿã¸ø™pÙlߺßvÆüv-=©²&Û C}íŠ?m¡¬TTë™.éTU}ª©Û ‰ŽƒÝ"Uœ¯O~HÆ•"ì£1kN¬ê\È/××ë^zÒøB&¿a9g¹ÑÅ‹¼ôõëaANÏž ìv“†!÷p«_QæN øz`fÞJà¦Xêpº`¢`º kgkk«1¥«ëDµjæLãÎ3Äg9¡M Z;71£‡¬ø\äY›ñ+»u³4®iävNHÊ1gÙ"mÜ•žž€a€uë€å‹2qáÏrürr*«Û»}9:f`ݺ|õÕH¾­3°µïñc &8~ððÞðBïî9Ø´æ5¾úv Ͳںœ< †Í“E€¡Ô“†pò­ÍD%å ªg!èS+kÝûšš-®asîº@Q–†¸FÍi°³³kvCÐKÜ”À'WÄeëò333ÔŽ¼ß¢Q|M;6 /b¸Ý.÷[ÂãÉåš°¡CäŸ~£¤P¤[›9fzVt‰ ö©ûv´ËXª©SmÝ,‘Z›Yò,¬²„ßýú£î5ν'? ?q³îÚÑå1‡/$$åäÇ™ só⃻*³KŒÔÿܯë´c}ç¦ñ óuîŸNRMä”åÒUÔß‚1¤¸ÌÙty`ÈïuEœµ/–¯Ôµ,É}l¤R­K.X çáÃLû ŽQa{—A‹«›€ÓøÓÓžJˆïÜ#Ë¢Öžž08vÙÙÙ\0¡aî¸ÆšÞV¸) žÉe¡ÅUw.tGÃ9 ež¬*«R$3Â.ÁÑ3 ÅU]]]ó¿µ \{«õèl¸1?¢Qþf¢„ÇöˆZ24Ë*µœQ£`˜š 9a³`› Xµ‰kÔÔÔ{îA ÐGß¾sXž¢\ÉãÈ…µ¯‘SœÍ!Z+ñÞôc=CKn½Å&˼ÆÈD>AÞ6è¬OŸ>-Ù™#!½ó†èB«LJCæêã(JJJ••!ÆÊ m³’ÄÅÁnÄØíÝ2ÍíËéÏû€Ú¸ÔèØ„Î]ûÍàGEÖ ãœÖÃŒ“/W†wru…ü|â={œ§`÷n[öToÀÚ8Ÿ°aµŸ|RÆì|ªK…ζ pŽUlX` 'EÖ‹ô—äž”mZa" Œþ:wî4=¦¾ú•²“{äÒƒe Ÿ×Ýù'Aò”­eûŽ©õ÷-_jâãZúí«³á=­¶ëÌYT©àóÏ.ªø\²h^™ÞÌÁÇ”Ÿ§ú)»¬556æôíÙóÉe‚·.l.  =5®»ïËŒ0àÛmØÆ,†1 ÀìXÇ~}t²LŒÒ;Î jÝOFû3%°X7ÒÓÓÛ°^Ô8×+ÕV]³ Yãì¢zD5oé{Ú Ð1¶ÇÖì±u¯ õå hjR±EB¥••‘Ðʪ€^íúËdeo[4¸}[äGle~²RÀS{ô2…m_6@\uäÇVÓîCIgË.]lºvå 8‚T9dåÚïSSSµ¸BÅS)’–[ת¤×wÎDŸ+Eýû÷]b€|Mi™r²Bì¼ît›±òZ^Îå#ôøßnƒEQ+{?t¸°Ó¯˜}˪8*ýÈ4ì›Gž^*¨‹ Kž\ÛÕö%³mô‘.§˜Vì^¯®¨Ë8§çÜ·¶þÎ}¹ÁŽM}e߬7•…ÆŸ[WáÆL×IÙP_Åõ–¬5˜1õVƒÃbý?~ò)ã™Ò¿ýÇ!“{¦—n¼v4ü÷#™:Fæ_}¥ XðÿqƒÄÔèÞî¥O•5uÿø]zÆ7eÙª¾Ÿ~™9ja0 NkqåÔß¾{ŸØOÂ~ýípUT„!ƒ¡Áñ©)‰:·¾‡xé$83h“U¨³å4J.>Áp°··×rG&£¦çÏ‹ëCC »:99Ï™££×Iôv8Ÿ¥VÕ 5žaoR«#[Z¬¥RHÆÓ<ØH£ Ãÿ/ôeذaíÞccå 3gj2E´½ÎüùDTɲ¤tuu øk;‚ß:¾¶iž|äÓ¹³:«ã#j^ؘ1ˆ•Ë©øv8eí‘RéýÈ;€ŸÝÖ¥ÊÛ"\W÷æ Dª/úÊ·‹‰Nü¯¿6øÄ¿KîÜ ôb¶ÞÖÚåÅú5~nóÆó¼÷çºÇ>·¿q75¼í•úlûÓi×?»s1ÂkÕ¢1î[V¯{\°ÚsÍ ?·ä0O}}ª9r£wHI8RëêxúÈ EeDû=J’»w|¼Oð[C_‚»‡*ä9>Šd …‘!¶µD0€Æ   ¤Í›ß.¾Y[«2%çû½|¯™=v¢˜ˆe,X XÕw«4Q mÇRL<^/UÛ= £©1—HYÑñwm(8øÿªwõêÕ7°Ö·xB@ûœ}ööqôÑGk+9®ráÂ…ÑD¤ ôïÅU¤ë4.·¬C\YYQ˜ŸŸ‚€ùÒI?¼ÒEãÉ0`B!Ïnë‚RôØ$ÜÅ¥áÅðá$=÷goc}y¼®Î7>±Û¶‘däÈϽ†­¿q9óÅ„qçÝBŸ¹y^8ôÙãcßLrÿü³r¯“{?½~ÊóÙà>Ÿ{ù?»â~á÷?_þ¦³ç„1—ܦŽìíÔÕœ9è —jõÔ© >sƉ¢F8ôôvKttûÈçhqõúBu„ü""™ŒdMuå‘Tå+¦Æ¬`"j9rTp¦C\q¹¹™)Æ/Á¤ IDAT½W¾'!f°<ˆNKk¨é×/æ-\q8D#Feg“ªíž®X±¢CbÝdÒé߆êµ^gð`J'"Bs MYûu¬¹i¡¿[ª©òÞÒÏÜÜ\;ñcÇTõo ´7ÛøñD¡¡©Šƒ›ís?àÿ¢P–<‰a˜.…À5?MŽs¶ hÌnø\UK°2ËRý®]¨£C|>)æÏ§¨óû§=¤–ì¦nÕ†¥M›6M<ÉâæàxÅöÍ›½õtc ¢´øÅ¿nf!Š—¨—>ñ¾xhëÆ 2éò©N^b÷{ÏV,ÚýøÖ™w?­ \ìmjœ,Þ·i¾«ÕZï&TWDÞ`æKbN¹¼<"êø±Þ ^h 1XÊÙïïéé)æq‘—z¹$Ö$Ê|prÖC "¦™7 À+±¦J•&X™ˆÔ ‰(›Ë%UïÞ”{ñ"‰U*¶ÈØ€—Ð<þ;y˜üx\~ïÞ_(Êè1ÔÄãý nÅÅÅš eå,el% ìBí*^I„D‘#¨$'ðÁÊïJ®@ò‚&JYÉRho¢c¢ sM ôë#DYÚn±±±mð¸£þMö¶°Ï¤+¾VPѵâêÓ¼˜ÒR¶pÅ òÓÑ¡t†¡*Êtq!?•ŠT­É˜zàx ÐØ¨9k>Œòü{ƒW*_ í‹4OOO1Uúˆ›ƒãg~?é]YVKA¥q7Íüj*óCH¯9¶¿÷…_Öºêÿ’ÆúÜðZ¸· jǶÞä¯Û@b°?­„ÿ´iÓÄÄ*ó(´wóºÖ㯅MLH‹«?&±\NrÒ&W€'Ö¤ W©4¾qkÅ Ã-R6U&4ÿN^؉üõë/+æ]‰K[Ü‘#­Â­ÿþhœÚ*uGkÅ+?P“(ø,¨—Þ“\¡ý5”J*`€€WÚ4%Ú„¶éez÷´iºó³Hg°UrGÁV:熯OCOÍ2hllÄÉ“Üú½{yúïýQ3_ŒWWNSð;@Zž•°=†îß~3½Œ¡º¡®ººå5è÷œ]y\TÕû~fƒaPpßrß—\*-³Å-[µRÓ23+ËJ³í«fi›Z–¦i–û–*ḛ̂ ".€ì«À³13÷>¿?†Eíw>ŸóùÀ½çžå=ϼ÷Ü÷¼ç}òòò®}ôQ'ÉþýÃ1‰ºÙ³Þ>¸÷û^Ô§æžz7庛ÔdJп5ø‰ví|lnÕ>«K $ËÜ"÷([øŒ±Ýɬõ»öš¹íÁ+¤÷‡ºu˜óÙ2wKZ†Ä4à÷ÖNW„ŸZ(5MYûÅÛQæüÒ"×y3G)F­ÐÞÿúèQ§u¡goË\úŠW»Àqų?èß§ÓYãŸ+3‚m¢¢úýݧKbbº´‘IBk•®ø×Zm^»ÿ:˜ûÉ'³»æåÁ¿¡ïÙ—ƒ‚&Hr3㺡tÿ-XËmð}¢¼Æö®/Q^¦]$¥ý…¶^hÉÑ&/ýO “JÓ§›Çl)¹¸üf•HÞ“›L&‰¤J ¤L3CÔ+[+/ˆ`döÉè—.ÒEéáøôزÅnckK´šÍÒÌ…J”ü}Ï>èT/ŒëU:A&“øPlx \M›V‹U/?áÂ[ÅÕ§Û·~/Æ6 ‡e«J…µ¬ò6îP´íÓ±cеÂÂதRè¶o?t{ù²ç{õë*ÉM¸ùø]Smé°a*ýÙ¯m'g™Ûÿþò*ùùHG·ø£ãËܪ~o7måÓz¥×<ÊÄ…^‰é¹]8žc,Yk¡â!óÒÏóÜî}_±}ãx‰Å'¶vt÷¯ÍC:ºFŸÿS±îŸ¢1%…Åןš­ëÑkŠüŸ¯?ðŠˆ-+N®:ä?elº±;ç[yõÓŸýX’•5ºÍ“S„Ú~¨õ—Ë]¼žáµÜC‡Öw‚¸êÜ—µÚ<ɈAÁÝ^| ·ü¼a;‡vQ)pàÊËZ–„+}C`¹Û W"¥Ð”.Ư´Í¶æA¦K—ºiä2™Lòþ¼XûbªÙUa½'®~8ÉêÖZ»Æ¼`³SÙ¢"$XØ,Ðd Áþ£i s¹wÈ’F¹ä¸=¬ÍæÍyå÷^4d__‘£h0Hs>y{I £| ÆsRƒ –•2®wuáiõZ~Ò¤I”IQú®5n¿øî~¶ôãC€¨khÃV<™\ð“O3r݈:þ¼ÆhäMww;#QÏž¯ÄææcRåþǹµoµ¿0bij¡ßÉ®$?p(»zñGéՄ輋®Š•—̽¯ÍšÅÄnß?mÔøÇ9{¶8lÈ¥“oœH¥r||bâí+öYQtËüñÇ5ëÖ±/¥V[°ºš×í|‰ö{,ÝøégG¨s`ƘNq´Þ­ Êd(X<šìÒbjÀŒ`yóT+] ªT*–””±{÷욀ìÚõGó~°}@dlgÊLIw¬¶V¬p`­Î!#½Wú0#ÃvÓÓsîãÊÏÌÉ!‡ ¡ý:0lk¯Ãy…A ƒ% ¥é!j\¤ÕË-,,Lc_•ÚŠxmŠ®íwýʵ‡$:p%“±ðÌ&70ýÆ«^½e\év0rïÞ›±JeP,@.x½æ\Iâê Û¶]>+\}òÊó :ݶ-¯ŠI^íÔ~ÈŵkÌ—t¡®×€Ã‰?¬»uºø_·¸‘#gMØí©WÐÔs©Õšâ»w|E‰„ºŒ æÛqð©WãÇSÛÀÔó:p§ AF…¥_/{¿®ò#ÎÏ@“¦´°ðW c»Sš4-)g—TgÜJãããiçÉhÎóÛZ^·®Zw|Ë„ÿ„«y˜zwm´bû¶Y½yy¼,,-8%ÛŽÂÍ=ñP*l-:.¶”Ú·¶+„o¥øîýh›6D`à"¤¦Æ";3ÅзÿHºoñ@÷-p ‚{iyµ«Râ]äIè$´™?¾ÇÅ  7ÿ†Ð-ý×çïïÅKîºf³‹+0 PÚBüã«¦Ž¶šÍf„oÙðså·ß®xÊ.]ªL:¹ýË/éøêkÙYFc?WÅþè!ÿÈ/í.Ñ»¹Ùâ·¼«ñyýIiç /ÿšþÓO=êî/*ïût–ûÆøA;±\gR|û­µæõ9>ÂÚ³¿¯]Ÿì•s0±×Ó§eåå%]¾´CR>¯{üýç‘K‹–øòTý‘zx§-ÐÝ·Ø#)©Câ¡Cââ2~ć‹ß='Išçi«”dD¾Y]£šW.•Bêå…Î]»üÑcÉ#€²q4ìÚüáˆí|cJ•;vìðd0ê¶D2´æøå‡¶<ÑV,€}I#t­jß¾­÷Å‹<õTRSüM“¯/ðØ£³¼‹’Ù¼„æÁ+[I!íË”åwÆã–% =‡ Dn®}Gbà 1œ½›ùq¥Rзf¾ððØ,ŸsçíÎ÷J>>À©Sö0÷ýúþú'Q5yqqãUž; p\‹ƒ`›;wzLzì1âz 0g:á –ïȨ_ºZ,+]¯]C†Ù Ûðþ9U ý3Š•á˽SùÝæŸÀ6mv^hߦÍ^vî¼;KWåî÷â µÑ/='o÷ë£zySüÄ€¥>bÑ®Îo/¾˜~fêEe¦‹âÏ?[ŒÖštßòªQÈÏ—Ñm‚ŸB¡ø¸FgØ%¼õǪâWy éÒëßug²/ º,d?Z¾kY’Ǭ/æ\*©Ø6jþ¼šTós|ŃÙCÂÃ-#~Z÷ý¹3ß2ÏdzFòû‰®Õ†z—¢¨î¼ð£ÌÈÚ ˆ Á:µÅðìý¸Ñ~:” ,𱱸œ,«8pñC£F-n+“J@ѯW‡ì®Do` €C¦ßgF+°õ×#Þ9GïÚ`|p\õ Ö+Ã7¹bòòžHμ…z]Õ8yyA  Ó(º¹öaå)·Ö¤sÒÙ-UvÒ.´l-ÐäàÁ ~Ä¡}ÿÚ¼°uDxòP\µ¯¯³-hÂ^¿|¹F»d†ìR m‹¼ýž–l ÝX9§ÁgŒPŸø¢ÆÕÕõ>3jË{òóW©\‚hj@&OÒ$%eŇm›x¼¶"åªDBÑ×ë·ÐŠ“¨4”¥'Nz4öô’ù/œÝ÷Û‡¡ ߈9íî:8Iõ™qg ^îí“v~9àß.]fÅÏ™\G–qePIë/N®7ÆZyk±FYe4šn½:ÕÍyL©3ÔdéÆÀnˆ¨”Ù8[»¤RmTÛW¦ ² °±_÷¹N¾n|ÿšCÄz½ž‹kéînh67®®vF±¢";éFÿÞ}jlê³Öçò“m™{+‹cÆcÆi©FÃÚü¿põú“ݫ֬‰dV9~¼Ý^Ó®}Ô™\{Û†¹©ìÞql5Ñä9ÍuZkΖqõãhF$A9kpµï+•Æl6ß!IÞ=¡¦Va¡\óád5I#o¿M ö=4]º Š¿´sÒñ~]\®¢øæ¡Œô©ìâž8rÄùÓûÿÜröûÕ/†Ž±ýôÕDC‚¨FõðÞOž(”T%%ý;ïßdzâY¼GMÝW€áü©]\ýú>4€¤J©t»eÌÞí4¦£ÿƒhDTs5Â(³Q¾ðƒüÒòåzµLF'\uêDúë¶“¯Û®Ÿ4±}½H ¬…ù1ÓÎ(ÖãÆ­fyqI Ã]þ3Êþõe—€ QNõ+•4‘4ÀîìY›Óø¦BQÀckœS´qÖþÑŸdSš4)9´S»¤DrHìÑãyÁYà„Ñ]딚•?¹Ç2ÖR–±ý,SžR3Ò'™iŒ ŠcÑ.ÇÖݱcÇ’üœãÖS+-¥¹ äàÁƒ J¤;”D¸k&E‹eýúïµG]Ò˜0"|ÏŽ²:š´"þiK¨«khØÞ -5’ÊŸ6”]lÅ{V!ž1â:vd±«"ì‚îªm9?DnÜhº°tñâsYY¶h€tU¼ðÍ›ˆÌ=ìrýý÷¿ÔR[Âv‡S¬•¦¬ì§žzêŠD‚Ь½uôiu?(–ŸNnL“ÖÆ×~y1i!;j Òßzš) íÖ¥­ÉkʈO2Îˈijºge¥ŽûöѺj¹j¹{7YQÑp¿ž&mñ«ãÿ/ºÃ`a` …釧ÿ¿êزÌÞÿÆ´Ž‚@îÙc§v{úirölŠIIšŽ/3MC”ËÀQ}—·Š+©ÔVöÆóΞZuÅI$לEZîAĽöâêå7}úô$Ö:áJP£4°-JfÏž@kMz½’0‡!S!‡åƒVhÍái—·"¼­÷œ ùý÷¶È%o/ ò„9ÌR‘ Õ¨lë½ì¢LÆb¦Ï‰Ï;Œ8 ¿xÒ$ËFxW¿ÿ¼$ÒÕuù…_7m:'“u‹ÈÙÏ™/0ë“ÈÚˆ ëŸþƒFhc®º ûÔ©SWH±‚1]œp5u’h­•×xûíÆ÷Éfâ˜tnÕ$Ç…†ÊåÙ­âj݇¡ŽÇG v&Ú¶g ­ÀÚó«|÷ëi©Oýa"~Û *…N}zóMÆ’$ìü¢i|S"!“¢n0i×#ÿ©¡ð?zÓf­%yob[w·@묧GqÁKcÄ™ãe†‡:ÛI|;±í¥£ê{(5Xb{饗²ƒ·ªŠ©‹16(ˆÅ;³`ùrFÙ8ì_†»fRë’ËØXkEüµ7FͦO§at`<“Ækò22Ãûôa6@.]úñeQ^^¬D]ÿÎÝ/ÎÂ`,ü7qÍê'âÂ~U«M€Ÿ´3ÆAÍó4§NQ­T~|iúÃÎ,_òó‰ö¾Êj`ÑߨxÁ^­€á»ï~ ·ÛÙ,¹*å´ðoßD¤æ'\ÿç»Ù‡Màó¥k‡Ô>C|ù TÞقÞ’"¡Ø¾œŒ¾ÑXžû÷ïÏÎΦp/™í7§ØÖ”MÞ|‹†¨¡Æˆí¾—Xœu_b[œ÷Â(AîlÝMòžU}¨R£=z²È^AƒxéÇÿÆ-ºíC;©.po"îÒ‹•æ|Ò&²ì¸úTÖSö váÄAÜW/¾aÛ¸qc¶3^½RßcÜb»}jcTÜÁÿšÃY†Ü새ÖK~Ííc’æôÎ¥G #^û34];…ÛɈÉõë7]–H$F ªF"¡îvⵋŒp7<;Þ-qùÒÕ'–½>,T©œxaÙ2jYvT½óh€§Ôë×›.ÅG;óÞâN˜jJS¨eù ª @ULÆb’†÷Þû0E…‚¹ÇêÙ¹"’I®üiÎá¥K©ùê+FR™þr<#}+Û¹àê±™' b„TÊb‰„•AAŒ‹ŽæÆò|ï½÷²GŽ|ីڳ%ÒAÄân} ßã–÷ ¼õ,âßþ¾DÜ$ICºÀHÕã*íèÆÇêN¯H¥ôzûê›K­Ýe¢¡PXX]ƒaäÕGïià42ñÊéeæ¦@“Jý"—ñ †µXGîAð«yà…«éán¾Q¡P°¼¼ÜB’YYŒ•J›ý° Ó¦½äðœ*+c’Oƒá×ËkeTuuuº(²¦MVÙ¯[ ©0÷ÅÉ:„ŸzæÖ­¬Äë1qçe2Ú€·b¾š‡ðâ´ß£Ž»va@ÿïÂôñá•!áùùb@Á[µè‚p #<ÓL&f®XQ~öü¾wÏQ0f†½-¡[=<<Ò¢¢ª±‰À#÷¿ÿžˆ÷õeeÓ±Ó’ÐÏÏÏb­#Û>}ºuz¸UsÕ›“È„Á-Ï¡Z*jw,eU¹Îi lÍÙ¥“§Ióó½ó س“Td"ðx£¾L"®X8„êÁ÷Ä•åĹÃÜ´ýâbçEYnŽ•ñ‡>k¹ž˜ òÎçüúÝÇ誨iU>±¬­µÑ`0P*•Ö¹t‰µµv–ýÞ½Ç/7ô§m’‘Ý~Íšª(OOÏt@RTV¤\ÎA pþô_Ç=\xöæMæÖ­¬Äá½ûœl¶­[Ã;_†/šå5 ÿ´ }˜Vœ-&a;Â%’Žq…ßÑ] V*TŸA ÌôõùöìÏ«'Ÿss…H̨ûq—Z­´ÖÔÔ¤yzŽqàJ"a…FÃëõ2{æ™iñvf+ç±?Î$’Á¢T* €&47Ð×gO÷†í[ÃÄí­èµTÜôîxz«¼œæP& lþf²”™xuÂ=qUp2˜Qçw 6Åsçœûòùçt°6£¡±îyö›½ÐáüëÜh Y¸Md\?c:‘1ȸ¾3–Ób®j¶ü'ÉÎ_v ÄÓ½szÝWk·áÄAkØ5 ½‰K ¬ sÔù¿ÿý^UUe³zyÑÜ\èa¼uëV4Icã]F@ÔÊ‚‚‚ŠÓÒŒu“/Üõp{^“¸ÝNü¡/ K™6mš:f«"9ë"?ûŒٹÜPj@& ¯[åY >yÉnÇ»y(Ô^W´vâ`hJOúÆ?~\íç£J§¤V‘[p;]ëçg§@ss›•››[,ЬjP®$P{[{õêE’gÎPÓ||&BÑÞöþû«+ËüÎrøpç²z—ðÜ5m|ø¾ò¿s  ï4ЛýõWf‹o[Õ\ûxz=ö=¸cj^xlצiÙ õ} xçnã{}{´åîõcÅ뻤¦¼C`Þ!ðú.pãbÐÍÍÌøÏ?wýK¹ZͪsA÷WÔŸã¹j‰š½;g:ÉF*½Ë©S5¬­mð}≹U€Ê*“é›ájÒ$jH²GÑŒw%ꋊX–››[¬RõÑÖ)š»þ©ÑðÊà jÀG‡«RŽ?®¶ÄJøôDÿ‹È=Ûï„RÆý†p -[.gs¾ §|nBÏP€=šZêÔšòÐvqÓ¦MSëkÊÓë^¹½ƒµÀÝ €¸~™3ç+®jk™ÓøždéÒ¥ÑR©þþþ6OOOQ)ZkÒo¥Ã/°s»•+WÚㇷÊó¯ÛÖl4›ÕOâbH¥"úö-DÿþÕ˜=»Ÿ~Ô(?´´ô<„·žMi­ª†ÔaÐk'¾X6_o w\vsþYíjñp­—¤(J0nÅ_¨2ùTµmëçm0Ü­JNÞ\ì©<_ûÑ˨™:p.u~òŠT€9p´×UßXðT¡…[¯˜¼€°®}ûö­8óãú£E<ùîï¾ö€|7¢å²>Ág¿“– ½÷ ï?YóÚ¸’ªá/êÉ‚—_Þ •H¶tØø^L×n˼÷îÝãypy¢Ücøq×u[Æ–­Z…q@EòÔQ~º“ë0NêÚ.Y? KÙ·o_ßw¦æe¬x cšéÝoßF†Éñâ¾·ï.jÛ(¸vÌA¯?Üî (~ù%9 °Ðä=p`Çšä„"ÏßæŽkÆ—iuhR =ë—îPí¿_aâô/1a pá@ÞäÜfÓ›1#æA@ÀC(-5aðàuzQœâ‘™é ½^™  ´¡}› ÕwËÞWåßhµÆÕ«W_nëS–~+EúvûöíkW=;yÙ²Šf˜mÂS@6DH×·=üýû¢°0×/F¿ßî=ž毷Ë`ü³Ÿ;®ßL¿ Eæ›Ö®žqN¸"¥xõ·†Œ©’HàíqãPüÈõÈßPƒŠ3°óÜ“ÉÏõ<=!Ÿ9½¼ŠÞ¸â#àf.b&¯ êš––Vá‘1¨Šèµí"ÞÜê Léß»7¢ÓÓlÁ¶¤)e/¯• Óf¾ZÓN¿«jöЏ2ÙÃË—ï•.YÂê3>Zë=wÎ+žCl³åÓ?Õ»F¥¬,ÖŽóõErù­3:\f\Y¥˜Üuއ2--Í7Ⱥ%y߀¹ˆîóª´;Ð#pùzòÝ7Þ0JH î"ç p;ï­|¼òš±#§{F¬«®*­]M—êÝ®Ý(u\ûbÙ|ù“Ðik“àtF»…t4|f}‡ë׋àæÖGŽ@ê<šûyâà``ÒøÒêÞ3©z iWÿüóÏeSyiYú­tX$®žžžžR¹T*œT µ²ŠáÊÛ7ÿB®\&)*--m¦%‹ŠJÄ3Šª›¯’œsp0…;É C_} c ¯ t´‘•®u‹r0{¿KÓÐ4¤,>Èü|½½ýÇ-^}n”ÙvIâìø™ýUÄŒ3.`P{Ä:ÝËZ.Š¬ŽŽ® ß·ñ…#4fä BãLöƒúö?È£dþæ˜_¥°ä®æ·ž…†Iã´$ûgé•ðÀ¶u;±ZYÑ¥ ¦ú7º¸šUJÜøñÓ©G¼½¿Ö%ýº:Vˆö\~ò*Iž8qBÝ+¸Îí¤! ‰ç?w¼ÏÊʪ,xb]·åY« 1ÑVG *Ú8~dÇŠçùG@ëÅûÏÉîÿ&p„R©xŸXô¢Ø³glEK«8'\ɤ(jZÆž¥¢Löû}qäÀ<îþUó@¸ºº£¡ñ#»¢ý“3';ƒÕç;¬®. IDAT´ˆ«‚ÃþôöîÈÚZ¡áx˜ñ¦™ár'\}þ*"Ž=z$iÊuÂÕÚ7Hª½¼F‡ïÛøÂ‘nȤ\½ÿžUÍËÝó¨ß™`±F¡`®ÙL3 ·jÂ7C @Ò²‡e8k â©m—P¤t}Ä+³™f ú§v¾wdõj¦ €%4¤8áêé1¸ €Ï<óŒšÆÍp5ýaÔÖËH*u³Õ0ãø3-ÊS!ÀÔ±ƒƒB&³Òµ Ê¡ô©•ßwN^yòUΜIJ¥¼/®^zÉVÑê*î^¸r*x¹§cûÜF¤ïÝ»Wl|;9ù&Û·7Y¼õ‡#wykI-£Z¨”L{±YŸõ ®À­ï{·zFMó÷$É~ø­ ƒƒ©S5)'©¦¥¤Üf³Ùºwï³ðéFü’ñEfܶF{{³îµQ;{öì½Þ”n'¶ÑjÚ¨¤tÝíƒêúxnn.S¢l—`£âÝœô¨úñ†t~Ññ T›¶|9£Z\]•w>œÍ:›žX#‘¼óÇG¸ìèOêtõíÛ·£e2™Mèïþ‹ŠÆc)?)eu¥}'iÁ‚ôì?¦UY’_Ö“dvú…ꦊdD0yGËÏ•Ÿ<åm˜1u­î~¤ÄsÇŽwkTªöNíÌ™3§®`øØ¨œ’@öÂÕòÅßÜM:8¦Vˆôoq Â%pßêæ 4J{ªŠ$oœœÞ*®Þ{nðûï·Úß ¢•Œnßôó¶º}”Ëd2ÛíÛ·cX¸Í«Ô]ˆ”˺Eºj€\¾œÚƒ&(•ªtÀZ;~<5‚¹Ò«Ù=ÕõñÜBO£¨•Ù¨Ø;ØÏ«¸Èl®Fö•¤ÙIzh1™ÌwfÍš•hçÅ %ÖlßÎÞXàÀÕ±5PwïÞ=Úf³Ù(ŠzFú9áªì_ÐK…ºOÄOô$u)§U\¥ªÀgë]Ýì‡[}™ŒÐâsÆ07ÆXaX±l¿îþ$êlÄXcÚØ$5Ç•µ¹b+;ÞŒ ã‡oÞulÿffæ²}{ã_ï뺡C‡ÖYeERŸLÿEæ~Kf~¬cÁ&²žlܦ§h©$;ñÒîÝ»Eo•ÌÖšp¯üù­–CâôéÓùÉÛ›–™õi8ÉÚ’&ÄÆš´;¾š|”©Ï©YzÍfcqc»ðE„T‚ò×§ª.~²tÕq¥R™!—!_TCäåÑ••2 ›Ÿw7G´CQdt½Â“`dúÉop•´éªM&Sƺ/¾;¦OxþÍùÅ7n0º¡=± ðÖø!þ©ÐìüzÒ¥ò{ ð^4à©o¶¢Ó€Ú½Ï144”ûw‚]yL×Ê[J®‹¯Î}EÉäbï!Òcû„ £«Â•2)8i(øäHèž>2 öop½‰‹‹³}´Ün~Ðܱ£N¯R5ì†oݸ8»i¿: ‘»Š‚Àÿ„«îÝJu™™™6©TJ©TÂçžìÉß¾ËÓ¿Mà¯zé–νÜíõ«”` •.öÿ‡.¦$Å´Š«³†R.³Ûx% KJJìÆì&¸Z·ájö JåHíùóúê)Ãq 7¶k}ù%#( åúì?/~ýñúã&“)ƒ¢5Ÿ‰xëoDm¸ÊH/uàjl÷èz…#¦3åé«Ô@ðö@µR©ÌX±ìÓc¾V]êØÅvw‡½¯J§£Žµ…ñ,Ü® ûsÞ‘>0i~ü‘ÑÕÕÔ7]ÑQ. ¶mÛ–‚а~hO«¸zúÑ®bÜåÁjµ‰ é ;–ÀxmÍF³}U\Æëátš#S}ìsF]ÚÇššj ‚ÀnݺÙ;üüŸpÕ·/õ55”šþj3\îgw¢vVlQíš)¶ÌÃíóA Ñh䀷lÿ¥#2©¾ž£Œkd Éf,äþßµ|dtŽã9¹\{õº#.Y¢åªÓËjܽ’KŽw úÏÏXk®ei)©Ñ99´\½šÃ‹;ê[¸yõ²ü4³²x'  áÓR©üAS·SÊääÆgFE›KÐÕì(¤dÊÓj’ ñïX÷ü0alú™´iÓa§òСOP&s–Ço¿1Vaúôéj`¸ ]]™ÆÞxÝ+íÏÐi@a©¯/“I2/7·à—¯Û²e‹úرcê°“;N­^ò؉éÓ§«ßyçÍö5KŽvéThoÿH¢TÊòóç™Ââ]\eìC à› däçŸ3üèÑ£j©T*¾Ípµsg*IÒh4Òd2qæÌWšÉÉÍÜ»—4™È¤¸ F«óx-±ŠUU"Ÿ~zqD"¶*ãàyBhh›¦­[·:ä8²o eÒÚÿ4ÿýER´¶Š+%Ò¢ÈJíŠk©5àÏ߯ÏiÓ¦ò¾D¦óè‡P&mð7óðð`eeƒ»Õ•+颛›åžÍ@†€{÷f; æÒ%R©l^^©$•Ê6Œ ¿ä0øÎ{áFS?$=à[)‘ ¦w0¢6|üÆQW×W"™ ËO ²~ÜbÑîûêŒ(JÓ·õî Ù_E´Ù9P«R¥©G§:cl—R´*¬û¼²wlëÒ`GÓÊ êºg¸uËñýÇóŽòÎêpšó‹IZ:vdqã>ê~ÊíÑ c«A`Û¶å-ÈK¤Ý¶áGÞµëk$í‘5î%k“ÙÛ»³ÃîåããC}£FN²š.ŠçõóÄÞ~%¿5\ùz¹å÷V@MóóS¢i³6ø›;)@%J$Õ÷Ä•‹K®@’!!/5QŠ0µˆ+“‰üôãT½Cþl†«òrV’b éQÛ¿ùðèß›#m¶º¸c‘¾\½ú¸$ÈpàÊd¢‰™+"©©wõ€ 8“ìåÅT“‰&oESfíCŒD«=)“±¸¶:ß+ëÔõÏ TöˆØùÍG¿^€pûg*,@¾®žx8Þ!È_ù©ÊþìÍfã—HÈs眕Ӯ]v߯!CÂî9_íÛ[ÍtØéEQdûöÎ6؉ƒ‚)—=¸rk׎bEîµVqÕ+Ñ€JŽ)Ìù_Dkƒ;tLþ©±ÿpîݨ«Ẩƒ¾ T*mpýzû?«Õʾ}ËZp¨mš?1`çÎÓTÇwn4Úà¶T~Pÿ #º(d,¼qŒ´5=Øm%ðZNï`D9ŒòZYAaaaiHHH,æ@15™òŒº¼Ü‰¸ÙÐÖÛíŠC.1AqééŒj¸ÿeÄæe"ÿ–NP*Ùˆvlú;3ë|ÝÂ]²I2+++¶C‡eÉ;‘Y÷œž™hóò˜ÛXq»¹)—É9ã±@ÇqµÅ·²{XÕHænŒŠÊ&IVV¶~`¼>÷è‘íØ`øôÓO›½iI²$#Žýz–Þîîä¾}Ô—$ïLl W2bÄ­š!tqU˜ùå{j'ûO}5jT£1kï‹«W^I1’dDÄÚ7-ì²òZ,?e²ÁH’6k-§?@wW4ÃÕ×_çæÐUo”·]DA@@@ivv¶ý“1:¨˜ˆ'ÖAm_U5àÊXs׫܃ˆz;põÅŒàíw¸š5 ö—öû‘‘LgÁf-5`íd`—.]b‹ŠŠÊxe€Wß/6(hL®\Þðbrs5Òj±²àÆQº(ì‹ÅœqååÕ o£‘ C8pïµjÈÇk †‰ŽŽn¦pxïölçòŠÍÀ¡C7è£}Ö*®º"˜–½žé,Ý¥µ‚r o#àO`ôº@@¤§§`éÛ»Ì2aÐ*Ñß7°ÅŽ``` Íf3÷ﯭºÿ¢Ùø„ÁÇŸ!IîØÑry™Tû„ s¬8mô›¹Bûùçö“ ö<ü¶÷A‰ŸxþùÑõ}m¤ØH D–‡²¬Œ|wÁõZ¹ÜþIôÜä‘4V¼6cý«[1¸L|ê©ïœÀ‘#÷W nnï›]]•bII [K¢EÇKÇÔìÙ#×ÖÔ*ùðÃä¦Mdi))Š4ßWYYwÅÅ䇒½{Û@R©}•àåE˨µ–5jÄ‚ìâVû“˜˜Hûaëé÷Å•§gŠÓ ƒ'Ÿ¬;8¿e\É1><ݱⰘ«ùÊÔn\=1öŠmïÞtÆGŸaãèÂ%”ÔÏïìÙ/Æ^=6ûÄ“#‘l¿æãÀÕ¸qÔÚ£ìÚŸË9€ËÀ;\=ú(5¼ñšWß¾ -ð•Wqq¼eïXIBÂÁgNüñÇhÇà©øÙÛÃ8tè|¨Ë¦Z©Ô®àbÏb¯zåvð•ÑEžÕ"®êÖ%üè£SN¿ë ~¾/®¶n¥YE±ÿþ­êo•„M¤lΦ=K ´c·nÝï‹+àKi«ÖS}ÓBWÿ@X·ÂÖ:Ô8+]ÀG‡€Ëž?~ÙžGô†Î] qÇŽ4ó¨Q÷‚J•e²oê•É\xù²ž³fµô6¯Æö›K7WpÑ3à‘¯í¾K¼9kÒ0*ä G={V5Dt`}º±bûV;¼W£ðH¥D‘úY³êílrc—.]bŽ?žôÁŒhN©¹Õ&©>_›ÒH‹Ø˜síoíó!µ 2Ü•ŒDê“Y‘›Hs †÷[ôôI‹Å)´ö( >lªcþ÷¿5÷ÅðT³“:CÝ´`¯`DÔÙ. öÐC­(4W©mý"°úLËZ”0ãŸ6¶÷_]N™¬¹}H.'ûô1püøT(Ü)•JE_/©í¡.£Ì£úNààøØ¸w9hP­ÁÃC´µo/°_¿jp@Ø6˜ã ùQ!­ŒfcgMîèègýÎ"5 ¨†a)+W6Þçûö N\÷ñÚC:]–H$5Œ·þF.ãúF’¤ °Ä~¨^(¼j¿½Xj]r)Z,¢(ÖäææÆ­|gõáÜôSþʾ}y§¡½ÛѾž¸êäPé혒¼ë‡èåáÊÔ]Må)!s6ЬËäâÅq†  ‡,ýý µ?}¹…š2üE¼~ìM£-gƒµ¢0Á$Š"7oÖ28¸ ÙÈdä˜1×,^Êš³^÷ˆ² !SŸ¥ ´ „N_Œ÷ÀUpp_C _— I¬µ1óc2³U\éÎu·müäúú6ßÜËÉ¡CÉ-[H‹]‰)I¶è )f͉jN%òç ضm–ÁÓ“¶ÈѣɖérnºðfG…lA/Wæ§&i7¾×ï,ÖãjÒP¤k¸’JÎ]çd]O\ùö§‡rsó.‹¢XCÒÈË=r¯ïBg¬´¨ÐI¥,®ªb I7ߌ­ C®B‹D"©éÔ)(îë×~jBPBÃïðºWÝ»3š–ò«ŠÅˆ†ÝïçïD³±ŠŒÈil¢üð°K€ ¥Ò Ö!K7·âÚ%¯,ã†Åøûòqüçˑƃ?Œ¶vï$3ÙëÀ–_.6J¥QÜ´r«C=[Å•¨ÿ]J¥­/œ$óóó@_yê%$  Äø@0ô€ƒj$¾ðÁ·¯HkÆÖ½[N~Ybîdn5^y}ŠÎ| ¿wAZÚx¡m[«ÅdÊt1J P(ðᢱXòÄ tôjJŒ-ÁŽÛ[ñÆÂ·œ®ö ·îM[—©€‡õl<ñø¤š‹êOjì·Êª¤(ôXcñëùáÍ  E£H©b9 óë×Q ¿c¸‹BR‹±$žªøø+·ÿù=,íÉçøtëÞKéããã]SüчÛ%Õ5úûøøÔvïÞ½vp÷§*Âbÿé{åJlA,§`ññ€ ߉B÷Ízô@~F:Õ·èâòô—¦•wÛüFªÂӵ޶p¼ ZÛ£N–Ûÿ®žÛTš`Ä À­§ÓÕ9sæpÛ«{áîJ'ª3« ˆÎ±s´Ê\˜x……rSmm7??`ð`àСëPx û>¼ßT"³¬Þr²‡‡w@³{ÕÕ¨ôò‚€ûâêòåj݈žÍyõhFšaHº/®vŸK×íX° /’“êj CX:v„‹ƒ5°:ÈX Ô4%)—`÷íxíõΗ7„!€htºl0S… 6|[³èÍ%žÊËvºÊ’J`þzXÎ\ö¿ ;p%•¢\àcj†§`©õ}¬1ÉTÆ ¿ýøèWÒ’3C}nÞÊTVVVºz{Ž)~cáFÉëó<ý+++k32nמÜ{µbîÛ“ûŽ5¬‡L&³ Ú×k¥jËqD-ý €Ûù@w®ÎŸÇÉcovCò# XŠÊÇåøàýe¶5k×Ë¥29: (?á,v½_nå9‹cñâÅÜôüNÈ%µÍpõÓa`åv;§ dú»å’ðÐC³ñÛ×àa¿—î7•ˆIƒþ‰áQcl~FW¦¦F?®àô†4Ý)`¸kæ•m¸-• NÓK&48(¹Ç[}›6ÍQÇþarr%ÏfÚX¥RQ½­—¥Õç£íaN-ZäôÜÁ/[)ŸØ·KEΛ·„g~ `ø¹ÔWÙmHŸ|ßÄ.“ë¥Bj݉{=E;.“hï¶iêÚ¶îÿWÕö*£‰$¯\©?¨^”È­m½qµQŸDÿ·h8&† Õ``€?—-˜ÀÐmñ×_O±±“ë[ÏÞŒdÃVú‘¯[Ÿƒ”½!zQl¾Lª®éïß>ž-‡5j)'ïö¦Õbji­åÌTu\Í›·¬¹O¹h%F>p?^ž4†: `uµØ¬*’ä­7[Å•-Â.ç´´4çg®Ïn±|̯θ>ýeîÿʃ Ÿ¶;Û¯?ç„«ÆÒZ•Zw¢€Ô€ó§â2¡žönáB{Ô’V¦½x¥ì®º¹¢n544 ;t`‚ÕJ+-eN¸šûâì1ãÚüì3ÚãO‰6²&‰µëøóÏÇèääZ°õÆØ·o_»õouN~}½cwã,‘x2%¥˜‰q<Ÿá›ìAA›ÖµgϞƕü«¯¾ŠLII±™L&‰N§“¸Ê–ÕÌ™û#"•^:Ž&“‰)))ò„„¯³g/õ²ÙŒ®àââ‚#ë¼ÔæÞÌUõ©¬ÊCŸ˜W7WLžü1ΟÿÌéþæ÷\ª&ö¼éÝÚó‚çQH7mÚ„ÔÔTDGGÃ]ÙÒJ$@÷-LÅørM^Í;C<‹‹·àbp1þüóu¨¼ÚJKÍ^2Ïûüøt2)Þš³k£¢¹e êhæ÷aü D½ð(&Àz¸ùš}Nœ7¯~%Öa°MÛÆc~c† ²?7nœë¹cA°·¡Rµñ€Â¢¤f÷ÃüwwâÉÁˋѯw®Éfœáö×ùD|ò Òˆ· PsÅñgdd$–-[Ø}^&Ì/´xx¸_`Žª,bju»ñgß|s%%©€gÂü©×[zÜ) ©‚öï ˜0ï²ãšÅb«=þìÍ„„„êÁUJJŠ×Ý»5½Ú¶õtuTrs>Ps¹¥&›¥’Êv8¢M@­µß~†5kw.¹¼ …¿·Š«]”HG…üü|xzzÚWiMV2€]e¼óÐÁW†Šê5ÛjÏãÇ [·8û æz¢fO'\<d½¯æ¤sj±‘À;ã`çNôÚ¶ @UxJ÷Ohëìþšç¿ÄDàÏNP\Œ!‹A»ó®¾žqϹ=B=-µÕ û˜%2TX‚±ä³\ìßÿ)–/ÆŒ2˜~ü&ÏmȘW¼õ€9ÇiœÃz7üíåå…Ë—ísQ&Fè”qõôh¨þúÕs×Á WS¦|Š~ýìÀ½~t>òÛÙòD4Jãë+Å7ðókW«R©n~õÕW„+ÀI+v(lEmÛ²Üba®ó+L>ž’Y_vô݃j`j@õî5ŽšÊË”Ë;;ÚÞWqOÎBjÀë?šž/gÏΞ¦!=[(«•›X’Çv~zkã·0‰„ï¾û™¾¢¢ÆúË/uÛÛ&03s¢È©¾ªÈôþýÙ„"¤ðÚŸÈjhSV"ŠMƒAšïxºãºS]án7I² €ñíÛ×3bÔyzúX֮ݤE‘¬m\\fG?ô<ÇkB[ou<ïd¤¼¼l(ÚÛÌ]ï)O‹.Ùa$ËʲÒÍÍ×ñ¼Ÿ× —$÷|¾>‹j Í¥C}]aGÖf ‡ªW,Ù—YÿßÍ„Cÿ W«æNt´ãææË;wÙþôI÷ÅÕÃ%Ž@–!!!4ê2M¬IhaœàÒYv×…,ß WóçGPΙ³D/•ºZ)Õ)“YtGŽ0‘$ì„«±ý‘\sÂUv6 ßß+ÛE”'\¹ºò­ÕN¸2žÅMûãåòrêVlµµ‚eÓ¦:©TÊÁƒŸj†«Û£I–Œðh6Þa½ÀömU‡M‹¤(XmŒ¼wLÅ>Á ç5åò.,/o8,{—¢ZúÀ¸š99ÐP_×ˆÞøO¸’Â~¡.©o²wïÂwÖ,T8©Ñ¤ñ‘+ŸËéê­ðÇÅúVß‚MÓüÁûâ Çÿ¾¾nؽûw½¤Ž¶è£ç­î­= W²Ú¡ÏØwot___DÅ&ÊÆ P5’ȯQÀˆÛ0»OE—ŲrUö›‡-$±iÓUHH/yJR‘§\…"Ä8:ÊtÐ;Š»tH„רžééjT‰Üõèß]W(´DÔ-Åëö­1¢oؤ:.ÉT& ݬ,ÁuíZÚ·1x§]ÏR¬\¹Ô["‘ 5߯° 2Iâí=âíüNºø; Лî Nâ±Ç&+ª««׊ŠKe¿\u/‘B‘µØþV#±pá’Z“©aºË«ñÌÊñlõáFI"!\ó?vØ*8©ýº®Û>Bþ®pëÍ®°UÁjµÒ£èƒÆUÒíÞøn_”ã“©+W.o˜¿œu÷ÄUèeàü:p•““ƒÁCGË %ÑŽ26ˆMzÌNǸ"áÖmÑ*ttÂù°E*•bÏž-ª¼¼2ùã¦yNžlCiÄ…©³ IDAT©ÂcæL (Ú9úU\Ĩôú8áªm[xÀâÀ•L†vR©½…úk |!÷ì ŸÉ\,¨CDá0›­£«\¾ ùY‘ÞþíCï¾;ß[E$%Y›áêµ%CÅüòÀÐÀ k ñzfœ;bcã;vt\“Hå2ôÞs/‘âpÈfË–ßk}}Ý÷†ŒôC„îÔãj÷jw©T_/ðÒOøO¸’N…ûŸ=ó€ÞŽ8Y'ObàÝ»¸ (ø)ÕQã½TÀ;3A= ÙçAºd»Âoâ*\œB^áå—÷X¸àU‹BLÑúóéù*tæ2$)’“oaíÚHÛêÕ5†–*lîÞ?ð~oÇÊnx÷#ÑhtiÚ-ÖüFbÿgJl3—N·Á;ï,ÔûøøX`W( 2ÕM »@Ú£GÝ5@^"`ð,¯Beƒ]ò$i›‰‘ÖPÎXO®@»¹ÈxŽÐ@ee¥õ‡v~úq,´ëçC‘ÐÚ¿7Àj±¢oßšºúTkq‘v츦êV0w-à÷,ÐïuॵîXûcta6w÷¦#rmãÆí‚››/>þ. ni]°5qDlݺ•/nsmz;ôr4N\»ÇÄ4NÕ—Òýn“@0`áSù_p¡(Ü‚ŠÜ‹ú@¼›hšÒs€©—Ój³:]ß·o“GJò h*ζúü•›À+kêU†€ ¶îÝ·„ÚŸmË–±r‡;zÍ£ß2 €œâFQôj†«Ñ£í/£ËE0_yëCWô(4šszQíô½ fÜ´!¤Àm®‚‚¨RÁr?®,6ä‰"Û®ÜÝaß èÚî½s î:t •J­S¦¼`ˆŠ|;N@ÚN+>zqrà OmHf‹‹ô×_%Upë ôÞŒ-†¥ÂØeòÊWaüÃn¶ LÏ=ÛŽv×`ø= ­@kiD;1vÿþýù曓›ájÌÓOŒTÙC¼ŽùO»= ‰J‰ÿ†«ŠSÐ0ÙÉDœ·jwí¢š†»8NÒ÷¬DëFþú¬u¡-m¾¾ÖXÞꆾA¯³=÷h+Z©ù÷$‹ÉPÉ´´LNš”Ðl+ÙÏ;ÅØµsK~î-§Cöþþ-yÇ È9{¢3Ó’æïH’‹…ûöí»óäcCÎZ¯Œ¿DÁàø¼Ú±ƒu²õvºBðívÓ^T“vB¹œuŸ){ÔhX6–Ì”_JPo}á…² »/P×À1NÛ߉»£Ùhæ„ Í}ú÷¯v2¤êíc¨(Ë´,z5Ëдl@€,¡R©ä7Ž­¯³~£››RtAf ³ã—T*gLPT6v“i5ÇõÒ7Mõ_qÅè@š“f?®®ì¢oã)o1l8úùzÙŒy‡Z|Þv â—¯ÃböáÊ–wƒ²ŒY™×ÿºïªhÛ¿Ï–ì¦l!@ B$H¯‚€ˆ@lH±ÓEE±à«`AATTÄFQT*ÒBI6=¤’é é½ín¶Ÿç÷Çɶìnâ÷}¾ïëo®k.ž9ÏÌ™¹Ïœ™gžç~4}<Äݜ쭭ã9gñ˜Ó§,êy퉙€œœœèÕW_-KO¼|Uúµ ÊI …IÞ R€sLÏÎ&α²æ;#®ŽoC†\s­ zê)Š6…4åßF­^~嫯¾*WtA6áf‰Åxßø2ŒDBR«öO™ÒílÊU è£êwÈ WƒÅÆvl¾ÌR¬£M\­[âH­­-úÌÌ:Љ©d:Ueed4¬dY–ÍŠÞÑjn&c/ãËkþ0ýÿ¯âJàá7ä´Ê§Z)++ÁGKd.XM¨á7/`å3«ùqY8kKd"V+qu䔦Z½†ù«yžsDð^¾È×™OD© eÍç.÷uÈÊr‘ÄÅqÇñÀôIíã36ñÉ=Œ^Æ-UÄþ€Kôý7bê gáõë™´dI()•AV_J•NÀ4—× CÇN^¼xS¦LF£A}}ßn%YË1yä4œú@jqÅS”¯  …˜>}™ß¶mËœ\§ïº±úîúõëaaa^Ï=ç2â½÷¨¼ºzY ?œÃèKP>"HÌb(Çšêꊑ••H1Bß·­mópɰ°°¦õë×;‡„DÇÝ'ä¹VÓ<rC[ÂnBzòc|öÙG˜5«ë Ù•jjLÛîiÓ¦áÂ… Nð ³¢,­­å£±ñ[vð`9û¯Ý¿ víj›®†qlÄP×ÂC¿åÐjîéo €®ƒ¡&Uÿ>'å•uïzœiwwON6,᱓Fx.Ž@ržÊÚÜeÉ%}%þâXfóRÓŠàŠ+hjpøÌïü”»Àìp/Y°O?‰—·½Öè„põ–¨3ËÜEí/­ÛÎB!ß ‡5 3MR]µZ>_?AûõçÇùãüHœDÀ½: ³Ø{Pi ¼(#ÀÅ W:80AÂ[©¹Â°°0Èd²®+£,ÊñxÀñã@üå$ÌòZjq-|˜Z@ÜÙÙ‰ÄÄ ¿o¿î´ysÇÝ»»oß>Eff¦—\þˆÙ^~âÄÀ–Ñ£Á-¯lªïÊUmwØUŸw±<£c$à›Îçßéûå—îÃe2ùÌÌ̦}ûö9Ÿ;W(T«SÆDèÝ^|‘\!UXàjNx&¶>3 Û~z €Ü •KEE¦6wtt`ìøENeåÍ ²¦Â­ªfÏvÒ¤LmÒ¢á„òl€åÀÊ û#À¯ýû‘N­ég+—Õ²GëäÛw ôõŽ{iñ#¨ÌÚ‡@‡H¶¿s5ÏÏíÖkd“à0Kæ°L2Ø÷7•»mø«¸€@ ×w/8nXȳdݯ)8ß4jn·‡‡‡¤û5ÃC@mI¡ü‘Ç]\nÝìÓ½FÜŒí+Ö¶{£OÀ<±jÅu>ÀÔÖ¶kŸx"Œ¯TÚ'?j”@pëÐÒÒ‚ûï¿{öìÁš5kÀãX]:€%`‚s;¬eø9¨ˆ¯\z<ÞÀfåñãb¿ãÇ3àé*Ìûý³š Ñf·Ü\¿ØÂÂBV¯×3{¢D²ÌtˆdÒJ­VKÅÅżÜÜ\Ç_ßÏ)xpé·žÂKÇê™3y<¯Ìð(TÚ{L÷öŒô<¯ñÛqý:ƒeË80€JÅèð7n܈/¿üœÊÄÅ%[X ëtà ‡Ól»L!µÐlº‡i!½JED´i“9n{.× ÜŸQfV‡–Z¥yr9[hý ðéÒ.+½Ò[)ýyãF3MÿKR†(Éô9ë³£>V mgÎLé¡-usÃC|• Y‹žˆH¯j">¿·xDÎb9õó©±=Ù ¡¶6U1µÇß%©I÷ú¿Åðt*lsR ØÉ0R:Ez‡%"jokÑ9:ŠÍ‚ö °EûÄe"U—a«×jã/~¨+:7ŠôR»aùJL´Œ»šmM¡Ý9Táè(&/¯z+ùGR:±ºZJô2âŠF‹HhˆŸºÇˆ+WWÊeÙ.ÚŸ”‘¸š9y€£®x¼fR*5Tv)Ü W㇠·èOOÏ9tè‡x–¤ iã|¨ìÒxý⩌Òdhû¹Ý~’H,ßùNY½ÒÓÝY€ú¸òˆat WéIå–F·]©°H©¤ÿ5®0"Ðà£âVºêÑ£©”eÉD'‘¿ZJRü*ä}ÝÉ•XðøãÖ bõZ]H}àX‚VÃ0#+‡¯¯/UTpæ(YY=ÌöÒµ†„B!}½m&in -0úç÷H­ÖÑÂ…Ÿ‘š¦ûŠM¤$M#utØ®ÃËka݆³Cn<›ÙÙIEÖ+°©" ¦.ßšØÔÔn‡Ù—E ŠSB‹ "ÅÙ\\ÛÎN¢7Þ¸H|¾…‡Ì´z2~ö Æš<º}»€D"«À¾f™ó—õóó£ÊÊJ‹ñzüq¶Çx.‡‡Ü´9Ù0ÌE–e‰ó(ÿ ޤœ×ÆÿWÀïVõ89Štž®Ö|a¶²PÈj´ZÖ膜œL|¾-&´‡ûH—hàÇhüƒ(ÖÉ¢¿?|~ñùôæ›—ŒTZÝWl²•!ž4jÔd›u$'SÕ|o…«ˆiÈ‹º¯ÀŽ¥TbUV¸Ê?ŒD@hWÉÉÕ”'“d×½-p5"ÀðÁp¤‡þœÔjI/YÛìÝüäíÁ•:íâÊ`â¦Õjiüøñã%]øK¸š=ÁèFm‘-¢ÿ®f>çðÂFÓþ^Õ°»ãòÍ[¼‡V»÷÷#&9újo<±¥È§µC;–ÛѦþãmåõëBß¹sMûÜøe²ÂÒ!Ö¾6Q¤€HgÔTVVbþüùHLÌÖ ¶îáñTlPÐ*.>ÈïGâþ!1ÖeôppàãÒ¥7‘’²+W¾ƒÒ’Hht|ù,ô*FrßÊVë:üü´¨ªŠì·ížÀÂlÔåÊ›Éh#Â`Ë Ï+<%Ǭt¤,vwwöèÛ·ÝUB®PªàZÁ®µ忥2GÖƒpôh9Þyg9**’N"+Ñ lEAô}YR…‹³˜eËÆ²--Œ ½ÑÃpv>¡½víšpРAW¶laOŸ¶¾£{Ê(œ GѹR}Ådì„ù˜?ÿá\†çéÿþ4­0$íÏS_´N˜9Úý‹+`q%0׸n¬ixà²ô;! Wóç3Æ›8q"Ο?Å‹WèXv°M\99ŠMœ d3Põ•U™¾î,ôz >ÿüaœ:5;wÅüùAÐç8€-ŠÚÆ*fo(v®®“aüxO«ûƒƒñãÑ);¬Ú0J`NÀXàê矡Xñx‹Õàû Ðzù†Y\««ëÄĉcqÏ1AP‘ýŽr„ÛJkj°ÇïĤI~ÒY;eÎ"?¦lTB©öc€|èc…«K—€çŸgµ .¦¦¦Z\S«·;‹¬dwOQ)á8¸¯H¾fý#®"#­ÿ'\¡¾žLS¦®CN1ŠìŸQÊ0hqf\žæã£/×멾££#/&&&fùòåiŽŽŸK§L¡:–%ãrBxË_ ‘$âx–ij¼!‡†.Ró¦[ùâñ~Õóù"}ùî4›ÔÀ$eý¾ÁÊñØ±äŽøS¯¶’,Ó¡PÑR¡ìÞ¶‘ÁOuð;–÷­Òby+ÀGb…«ÓGŠ:ˆemÊæ¶–YájŠíæJ$µ]† õ`…«Öf¹…þ+ÿN–~ÿö7·lI²Š=’xí¶]\}´Ê°=kïô@‹E=7êhÆŒG¶Þa.[ÓAÙʃóŒd”r¹FçïÏþŸq¡4Äí}r6<ÔÚE…fX1À¹ÿüðƒÑQ—H'—kÓfD=8gÜÕ´´´2"nëôW„c³½ßØîîn´,b }øÊÅëË…š7—í\ûøçÄçGÁ\?‹óòpP«oضÍ")H{o¯q`‰^{#0œ1£"–,Òf]ì ¶k.fõ4v¤I2üëÆzŠu³×‹•±ì$µ~¦/bt¶]B‡Å= }†z¾Ù‘`̹Æzx hÌÈÀŽ“'O²k×lî°À[*.Ѝ¯ßî ÇJù¤×©Œ¶VK”—GtéÑ¡C:Z»t7•_x@¡N™ªMÿ5@}h2¥Fn'µŠóˆnn&5ª÷qã¢pY'N,MÞwåÅGQ€¹mÖñh€èïÀÕÒ¥KËаaa WGoJ,‘òé.(2.=§I?·«óöÓ‹/êhï^¢ºîü•ºv5Å:ØÅÕ¯ŸL2~ˆÆ›OcÇFð´jQNN–þñ‡Fuœ·y ÈÛ#ÓØ¶Ýï\5VÓ)õ±À•ê:J,°Æ W›7S uRœ›®Ú®ˆ†z¦Œ2MÖ#ƒŠÌ_OñÒ?;î»ï>XA‘HTÂ.[–¡R*9½}v†Ô.®´Q ¡ÀÿyzýùýtëàhEíÕáÚ³óT;×€L9 å=É–íŸ-\7ÑÑ£Gÿ&\hî\Ê!"¢A¥¡`ÝYtq“Õ¦0lXWyMm#Å9´~1'ðúõëêóçËZ{{ š€±ÜWÍwˆüÏïÆ[éÈH ºwqžüâÅ„N''W3Å/—_Œ°=] ¡öÆ;".…yÝ®Ëc8^¹¹Ó‡Pì…í¤‘•ÐÕÑ$qj§i¡/XÔ³ñÈ,äW}“DDT_OéÝžK ®@K¦™n‘‚¨ð{«£¨3ÑäꢢYcߥàABÚöòt*̾f,\ÑMw—L€7ñù|¶ö¢·Ýç¦êo©{jo×i'O^¦zýÉ1¶î©þƒO·¯~ÙFıÞΛ×ûäá뻥}æÌ™–e‰²çII ÊûeœâÄñýpeÿ\1 £öð˜Ù+®||ˆ23¹çnnh—SÙûV:2’‚’„Ê|py§ZmƒP®ú»qåß_ qpp 3~°¨ÛÍUÏêuÜ·´0ûm{y: Ò¬±óÉÕ¹ƒ~ú2΢š¬+k-pÅLÞV¸**"N)ÚtÎWW¿fdÛáó@³ÆÞO"a;}üF4idÅ{a;Í>Ä ÏÑ–QÊ\r)/¯‘X–eíÅ%)hã#Ö+1ÏE{ìX¼*ýü§6qUq ôÂÿ6®|_"{ÅÕwßµ¶³,Ë$ü-¸GzV¯m5o poLJrRK‰ÞFÎñ[û8\Z¹2ÚN(5™(".dàQÄŒ:6Ú¾£µ:eª–ˆ(''‡ `ѱ߿fb‹>4‰X–¥íÛ[m*/ƒްåìÈЩÏ&ÐûçÑÈ ‘Å5‘¤¾Ñ%;s–Ô ›,ÈÅ 7-Öì>1ÚU¬˜H]mjUk.]?ù%ÿ<ØÎ‹k¤“Ûäwr*S:8¸Ð¶WfÙŸØò–Zˆ*..¦   @¯.µ>y5Ïq‡^Ò³,K,KôÛoD£GÛàܹٺêê®gJð0ý½ò²¹ç7Fü¸âòj›¸âó;Õƒ8À5G¯'J¸xQGRûŽÖµW‡kPDD„u … vïûd-×–  =6q•—ni"ÀêätëäyôRµæZ\+*È%]4ŸÃëWæ¦`ËF\G±f·é Ѯ؅´ÜÅŒ ч¯<@·O¤ ÆâG§d}šÜ·o½R­&ŽPÓÎsŸ|ßrRtõ*·ú̸´ºG\}³išž ¶Ã°’€l»¸zí5“gÂß+°,x`|0¼Ft¥ÛÅ(ú(“vÔ(T -ú4 a†ßúºÂjj¦e;¦—káë»Iú†®OŸÅ€;‰0ÀAÀª…“tg·Çò¹C¶S^a–«sâããÐ_m¸æîbûžÛÕCÓžŠÆ×_Çâ½÷Üm•qqô2þ=s û3በ)ø`U+rKT(/HÀ_<‹‰ãCÛÄ<ñ>åÊé%{sº™æÜ9¸÷éƒV@_Ì3#«ÿù]Ýy:°Lçódj ²3ã¿î]MSï €ØcbÿÜŽ‰)`RùOoduJYtvˆ'Oþ ŸîKDtÁp+‹p€ÚäcYXP ›;w.JKK¹þêneÌhž¦}Ë‹=ò1 °r% ¨ÕÐÔÖ‘‘Õí&êŽkn¿v pt¥fŽ­Q¯4š°?8£]œpÐ4ŸçoÀ°4cöìýò€?þ€üÚ5è.]jí¬¨è€NçèPT¬YÕL¿|D7E²ˆouàc–’Ó ´pîÜ9Ìž=êÎf#® k³yÏïR(¶ýa(-ÝdWMõ&ß{´Å€I… ý~‡‡üˆ=Faê}øuïjœ:ñK{cs¢ê^Âák(™ó:,pD¸Í­|>j®]ƒ®0ôçP„,K¬šG·`¬zn©âÇ/Ÿ¥ò‚ä–¨ðÞæ˜àw ÅÇGÞ5Ýè(â6lܽÅß}Àm:àó¢M\ùz›þ‹Dº›7obþüù€±íW/=ÏÛöÌ âæÄ£BѧÏ@Íøñ‹áí=§©æ·ópðàMum-þ6\ , % ƒ`ôY’ަ³³à彨J§lÀó€o¿E Z¯[¼y72Q ÌnNŽ ‚¸€Êʽ.•Ü{fuú3eÜèŽßLtíþ{÷Ô®`|¸   ÜÎʬ^Ž“W* µµˆh»âŒ›^¯Ç®]#ìÊUª87g~z àÆ»#PWÀ?d Vmž‚U›áÖÐЄU«Š1ký×~¡¡¹ááá£GÖ9::2îîîÌ®ªŽ£G/C£æêîîNŽŽŽ4zôhAxx¸ëÀ¡Ã§?%FEÅ<ÔÔ$_>Xk8,"êdYÀøl0|ðx–µžÜjkçA£Ñ`Ñæ ÁžWÜÛWÏo³dÁ c9'0aÚ¦½Ãô¢Ý©`ze¡æûS–5W8f²#88À¡ ÿnÀ@pûúkàÂÆéÏ?1¶­ ù.¾æj´wž®V®¢¢ ^²xôQÃdça…«æšòŽñ’gzÅÕ2Öˆ«˜˜øú Ò¤á7êI€±$j ö]@û‹_uq›á°]¹®n]bë VÇc|à×HL¿‡ÄôŸüäðÀ0ïàå—ù=뜛™™iÁ1&vx»ã¡+‘Ÿï`Á1vûömW±Øg¸\~ÇóàçÓ$Kz öîÍ~j.0&}Ðè ÃÖ1é×_×^0ä;øNí¨Üm+~—ãÒ²‡üðÝátƳiaÀHFõŠ«÷že®$û*S * ¹¹Æ¡¹¹€¡O︛ —Ïqòõý[qE”™Iœ@ßÙIñžYG·"@—µù/ÑÑÛoS<±T³ß|BĹ@•™°ŽžÜ}×`Û"¢Šóƒìo§ÌrFÔn²•~ݳ’>[ßµ…q ÊœIZY±Q_rëV®Ý宫s‰„"š4¤½i£ÞâWõ”•URp°!B}=^ Â<MéQD±âbRÞ«íÖLÍ´i\žžz1âYã}69ä¤ ÊˆˆÌ*±Ùv.rS€QÎøá¢û:M IDATBŹ ÎÈ®±È˜Cû?{ƪÏ««„Ô7zw8¾õS?›}ND”žÞÒ*˜ÚóÒK”ÔeåmT¶{¸ j€†Œ¿W|>Q}=5Ûm`†µ¶­<;Üö ÞoßÎæN…€ A¢_·ªÞ&yT4 :ýe‹ßXu#J2Чï¸x½Õàßj`¬—`ã¼²R¨´Ø•Âÿ –Ô8ø& °ÁÚÙ”¡¹\‡Ò ¤Ä¯ëŠ7€]æÏÃþþ!*‡`0XU0ÒF´í4¥¦Bß6 ¥…‡ÚÚŸáï?0xÀlÏb–êtXû¬mÚ"ÀÙ9Ôøl©wµNïï9bÿ™I8úÛdÌû.†ûO †á÷ù2Dµ×-ÆPmg•Õ¸5ÔU«,x©Zg¶R¾v Ñ÷Éqør,]] šZåÆç³¼‰o{õ‡¿Wz= £l§Uûî%v #©×ç+©bn[þÖׇ©£ƒqð§fìüRŽ'¶‹!š Ìz¨h0ßqÙÅÕóOdB$æ…kkßq„øøÒçÜ`Y/,^|×W¸óDdƒÅ"ß9Œ6'1Œ¸3fµ¢ª*ÐÔ<ø P\ÜuQUnWÏ-\_ï6ÛN””Àôl.c0ò0µÊÁç\ºII+±ãM)nEß!–…™þˆ|7ÛëcZ0ì/±7!*`pµùÆîïÁÕGg@1‚Êï^C=àÞè›<=©U¯§F""Jšp÷0îP2 #óõõ»õÉ–§‡ ”ã¬Ë- ßŸâ¨ñ\fÒ÷`9jS^½°÷/*IA·#¿i7|¤Rb/fæJu¡ RåâìÌþðÃ,ËZòÜ=jû«:ÈûŽÖÕÉOµ_oìÏôDDë×ÇØÑA€S'eò5åìRCžxºþ±c[­}jšýP•»I¯¬§À;î(OZô'Ã0´~Ý*\Ö®Ÿw½…ݧÑàÜÎ|}‚…u¹ú;˲¾“tiôî.ÈJ“ òCCÉxòq/ï|ú;/}pº¢¢"…eY±jõ¿ W”1‰%½¥¡ZÜ©gÿ®ž™Øn’=“‰®(Ì•êŽâZUKs3fa“Æå6q5Ä·TÛÖÔNÔtÞn½Ÿo@—™Èr+&Éå,g_¦È±ÂÕåOM‡ !!·­î¿ÿþ®NPäÙÅÕëO‚¼Ýyä))´‰«'¬×bi©IwWý ~Ѹrp`5‹µw½¡-rÅ:ôÚ÷'¾œaÑŸŽ"Pâwø·àªà0*`¨xâÄp¶X\‘‘$¥ŠOí×·±¨Hñò¢f–e;L1 Ë’]]Ivñ"E‘žû§‘tý îdÑð0¿Ø;øâ½¤'"jj"Z¼¸§#b7@óçoVVT˜Tbc­Ëzy)U€ 'gÃ.õtÌñåÔÐÐDb±ÚNsj-¸)ËI'—ëtd7popðböɈ¶L%o´µ¶èõÎÎ*®,¦¨çýúëUchû~µJfr}5q†®·þ§¼'Í&5QÖ")h÷$-pY ê7(Á+S¨Ø–eË(ˆäTw4õ߉+Êz€k[WÊ?c?Ȉ!³iZ×äÒ‡€óvqUQÁ½±»w_Qòù¾f/ãt«²ýûkUIIÜ q^ô6»¸Z¿˜³à[×yäH-§Ê0£7Ç•³r‰ÄÝ.®rs‰%•µÏª!ØâڀƄN×3L‹®’’LC~ïž––-{Efœ€;mÖ)I¥Ü=ñ—®÷ЫЫSŒ})‚n|‰+®ŒÚÄ5 !î#ÃÿKKT}m¤Š òˆJ|Ç75Á³½¹8éÜ¡µ¼ãŸ ©Ïíå55÷ß\°Ž§a–¼"#¿ÞÛ¶‡LF=0wÆ:´L¦Ñ„ˆÐEb+äÃÍ–4–x4lêÝùó}t*•ãJWòpòQiA nJÎh¹ZØÑ{7£¤äqæÂÕ{¶O5@ØÏ Ü=x¼„„{ÌèÑjËi` –,ùMMwñÌ3óçÃm¶ôˆÜ0‘·âø+wLëñ$«¡4ôe(ZKh½ ¸?Þ€N<4séÒ53|Æ6¯}.‚ÊÊÊ&ã+ÆãÄ ŒûðCdB–jÜ>ý;p…Ö@áz"âÄú»Võˆ«™I¯ìMà^¢,¶ûüee¯¿þ ¸±ñ.–,ù #NÃ¥ùó!Ëψ&MâHvš›êíâêò-/ð‚°}¶‘Ÿ_çÒVšÓ‚›%ç' Ð×w¤]\}ú)˜†¶vq5À?Ì ²²ãxD ÊW÷ÝÈd„­[Ïcøp/œ8±×†ÊNTM• ˜3HO¦<ô?¹ãd¸‚œSq0 ƒo€æt‘;ÿ»peœØÚ;¡âÿŸ3àŒYÙ%NnÀdK®èœ…1ÈY:)ðö}Ë—/t«®®® `tÐÜŽÖ]' Ì*øðtU[ËèY ¥¤?ª¼SÔ3ŸyŸ!b°|9“Óc7ð2ŽBÑŠ?Ž€¿ÿ0ìߟ‰‰YM‹_VI::Lz«V+0.Å•¾Âxû ŠŠ¬OrMIÈ p°á]Ê%­¢š'“¡‡–@©ª|tø>Û—úÿ3&„¹}»èÂ|î\@ hFxøëÈÏ¿‡sçÞ…››%¿kç|WŽ]çOzutGY‹¯Í’N‚:hjBøq@—އÀ 0 ±¼¼üÖÉ“'/—Vaë#Ÿy×.ÜÉcãþ]¸6ÿ—ä­[¯—èõ€XÐjW€ñkª?ø%†áÌhŽÖI§ó0âÊÃÃçÎmE~þ=„…­w ^^ÀÁƒP_½ ‰›ÙTÆòl‡jØûÇt¦¢¾I ±‹«ÀÀVÖX`Wƒý$¼ÆF•]\Éd€w?¡ ­q›ÍëU æsž’戀ùrà:úôÑá‹/2àï? ;vD ³³Ýâ^‘¨Û·Õ,éõÀ‚?ì¤EKùMÁ÷:à6ÃfYw§xýõOÊžyaÓ¿W $¿[$öG2àØ tä.ZD·‰HG÷>‰')hÇ*ÄÎF¹ªÐU2žbÕŸ5ÄôãëÄâgâ?ß²úÌP?$0€ÈVÎçm%’‚Z/yPýŸÃU”÷$Qõw¤í¬² -9r¤§í§yö²Òƒ¸9‡ÒòfÐ'/­£Ñ£×éE"‘Uÿ~ÖËä’ÃHÖÆ¹«½ó޽úXb˜>ìSƒ*ì.·3¾¯in&=ŸoOÇ'äûRÅ)Ñ~:R­tJ¥Š=p [µùÙW(ñÇ')öÔ¤Y»}.ZôWúìec?888а@Iûê… £[A•¿;éH ÒGñèãõäëKuD¤%UE•nýbËógŠŠ”ñDÄUÃ7F]ÐGœèë»¶(J"V÷ŸÂÕGÛuDRPËEw*? ºwe2ørù:w£Yzê/᪡µ Nš•ÞF1§Ñ¾moÓ¹z#•YJ¸yÌj<ï"‰“KWý;lÖ×u*ÉêåEvqµd*¯ðÔÖÑî¢õë¹6T”k¨=Ò×êþ§#,銸̰£F­Q}ýþtâ½É´játr;Y• ÎëµÏöîµì‹ò‚„ö¸SÏÒÝ3á$»îcÄ÷îW•eÕßl[sæ›o¾‘ž={6úú©.>·ìKÑ/½ôrô7ïo8ë;hPù_k¶ÕËdt—2¦Æ÷ðo"˜— ¨Ê¢´46öÌ™3Ñ<O¼œhÀ;­ÞG«Þ;øÄâ: 'qI~g¸q åW%,«•ëÛÛÛiÏž=äããc,Ë0 ùUóIm8ÕWš¬5~ûÍ^½i€BGÙt#!)´²zÑüùöd¬°˜„ëÎ8›îOèË·íJÕÕÕ´iÓ&2„Õ+üÍݨÇh¾èEÒ#Ÿ’Fmú&lÙÒaWcÊe6Þ=¿CS,QK eëõz}DDD4°# ¤ê–ʦdã´òDflóÒ¥œ“ò W\[ÿõžË:fF÷ìîÞjá$ž‘ÒBwÎ> WkŸ-h$"Òj‰9s‘ÕG[Û¤}üÚ£\oooÚ·oÕ××+ôz=¥IARÐïN"WgI·vx`ÉXÃã•”˜˜q(9Ø We'pÛ$c¨ÜÜæ àÿ»{†••j(ëôF")(óÔdÇ#oooźu먾¾ÞX.ÿN¦M\Ýþ)„|¼¼Yà3¦W\ñx*›d‘DD,ËÒGÝøã ¦Ü8j]EuŒ‘†×Ó5$ =@ÔÞÎæÒ­à$}ô|jÄbqñÛ¯¼{nŃÎ72`{¬¡q Éõzª§æ?³(÷ñè_w<ðGV–2®¾ž2ˆHM%oÄÐå,±Ö}Q[Û;ën?Ïjb‰žÏç³¾™`ÿ$&ïñV« ˆ(33SûØÃ;Z}s„¬7\Z½šºg³…#þ£øÜí^_sÉi‹€­ß}§•Y¶=ÒÎd£iá+èëOO7‡……Ù¤àž2ÚþInÙIR)õD,;)¬º×þë:té6Á‚Žo;Ü Üúæ±ø éOÛgŸYý¤ú •óÃcÏTTD‰¤ª¨“§?qsç»Ï*•ÊbÒ¶´‘ú³#ó¿«c[Á Öý7~üýö‹WÕ×+ô,˲Tþ‘]\Åî÷nµ5FAAAÚ7^9ÑúÔ‚åÄùFÚëƒu~ý5Y:â·'YáêþpTXÊXk«yólcX¯':z Ž^]÷YsYY™M vqUpä.áë…BëÓ'©×þ»{·ÑºVC”·ì¿‚+ ê{_´AhseNIÁjoB+-Š7è(ú-Ê @â,Ìbc„BRwvªò{ì± à«€ÈÝÚËJÕ‰†}0IAÏ?éàÁƒu:Ž4µ$e8fƒÜG,Žì‰ˆ._®jë©ó|- òž§@+æ‰ÚíNjR%û[õ³VÙ¢Ú¸¡¥…[Ÿ¢~ýFѳϤ'îQS“i–«ª"rwçê ¿²Zåðù|öÂÎ.Gw)ˆÒÆEÛÎîÝW—ž ,¶ÜªÏ‹üüž¤Õ«¡œœ::x°k+äv§­¯Û+~«7—õðœR:{y;QCE±¬7Jv/¯G-<(Ä ³Ã\§%çóùº¢¢¢$ÊYm¨cßkHf˜uIg䔊=uêTºHäX vÓ&Jd[ãs åÿ[¸:󑥉·²šÛ+®þ8zGAD”õA¸*?i=aõëã¨Ðï` ÀÒOåäÔÑêÕ¿Ÿß“Ä0}ÌÊ$ •¢7ß$[«–rq•vÀ~¯{~E°Äã™Xl‰ˆõtâÄ=zöÙƒÔ¯ß(V@T×vù\±µb¶â³q•úÛÈv4"h¬7Jö Z-=(ôJ¢Üˆÿ®àít %väH*#"=eL‰Y6Ñ€£ÐVíßORªü"¤ ‚èà3‡¢ ‚Y–𩳏òøî'ÿHNneYê ’Í1æÓßèÁŒ£ÒwbͯéÒ§è[[Õ†¾Ø·/Áî–AâÔN£ƒjn¬ör¢åæ&ÒÀþFy<ÛOÓ˜€€iôÈ#»hûöXZ½ªŒ‚ƒ?ë‹Å6Œ5A<ò~AÅ:‘®]F6’B¡ ï¿/o ¸ÀΘñ½ýöYJH(·=‘Ÿm‹xŒžfŽù‚ø<¾±®­ìåYc„DÊ2""J‹Jê‘qìØ-ÆÕ§w‰:é{K^»Á‘téÒ%n¢n<›i~£eXçæöQÌW[üÃYŒ|ÀI.F…èQ$å¶éÿM\Åî…^À‡Ú4^£íâÊÕ¹ƒÎM×Y²nØËÕ§-q0y¤/IœªŒòø|Ò×t sWF[¶œ¡éÓ·Q€ßAúì³ö²§!}¥Œ(ëŒD‘«d¶'6†\]—·<¼°„ýðʈø„üý§t+Ã#àž W<=m~AJ:­ÙâíÞÎ^q5í¾A]Ïy_¸ºzÕlõ©Wª)cÒW‚q“æcÅŠ½ºpým9Ñfõñãbÿ^Iê©……¿Äôóð´PÈÏçe,x‹í§§ibX´YLáš6Ôý8½CxàOÞ;w:}›Îím~8äºVÏ¡@DÊÕ«CØÏ¿-n™? ¥ðgj??‘(‘xlž?ÿÏØ±nnnnÃ:k;³q!×p¯þmNiOz0ÊM±EoKc0nÎ çr–ex¡¡»äÙÙÏmÁÊËãQ^Ê¢‘²K;«û}𞃔hjjBee%*++¡R©ÐÖÖ†üüüÒoÉGvŒ¢öÔ[ &´µµA¥RË655a¸?<Ò¾²Uâoe£ˆ°2ÊHMm•WTxÛÀ1Y›1i„Ró—AÏêÑ©îåYI 4ž|·`Üý“D•ùYÊYóýKîyXmm%%‰¿XûåËjGôÏÑ¢p šj€a×®XW;pà¾H2$bÏqH”E“à©€®òpçΫ}]²¿vÝô B{¯3æl\[À}tJº#Ö†[²Ž”Õáðrå Wèô3…@…Pæ °‰«y“Óñù7ý´¡ãÂ…P›»ƒûôlŽÕhf/8sÌXÄf§Ãܹ\¯ïøqÈ7o†qL§M À´ih©(ó¨˜íx!í7 ÃÄ $$ãÆÃÈ‘#áìì ///Èd²R!»¶1çv-ZТP(&xyyÁÙÙ#GŽÄ¸qジÈ#Ô!ì¦odç®—Ø0ö,üL¸byøòÐLTT%ãÄŸãÁð¾“õm扴xgM0J«BR^š(lˆ¿²¼.ʱUlU´¥J’–´ …âZ‰ÿ{ÿ5\ùù<$Äž=Ó †&Ž@, .6ŒîQéÖX’‚Ü‘\“9"XÀAíì¼2ö‡w\ütâG"žaÞˆÈ.­¸XäããÓEç Š“º¾r´k‘Tjú0ŒF/q¼Ñá(šmõÕ’îáÙeý4æ¢DDTŸLö¶gaa-V_ÃM«f’‘'.†ÏqUÙH 5P5 oî¿×]Àé®Z/™Ú$ýq é´j 9¯¿.µûœ5öC8ÇíÞžW{®¥Ÿ«Ó%Þ,l=½¡EõÓl!ƒéÀÖ­GÄ}mkkkE¢ç-ôZe¥Ú$*ÿ0ŽR†%Þ±àBNŽ<†ˆä”19†¤ õu¨y<ÿ" ?açÎÜ+<òH´«ë¡kÿ\qϸ…8Ï ®†åv>ThµÊ®¼8¤W\}û*7¶Gø½íÙìÙ6#Ë$#O\ Ÿ6>jc%rvvoʪy{¶õž-ì•—‘ò†ØØ¦¯_æÈ&-e-²‹«÷^áNÔz³W\ÕD†ZС;;‰uãFÌkõék«Ã‡¹wØ`êô߯¢‚¸ãWH z})b]õÈ‘TFiáqÜžö…+ÑöíK¥oÇÆ/L[²dI´¼&2›¤ ôƒ(r¯r/8QAAg¬¯¯oàS³“À@ª&"e~~~×I1ÒîþÄ$¿ÿþl¯ï›í€»ÍÉæ)¨EfˆÔuÄjZiH€ýˆY K c:©|aÙdk`ÇI:‰U[œ;±,Qx8u˜d©4À(«¶þ´¥+©YŽû1ĤsçÚ7C 4äãD"¡åi+as&"R(ˆÎž-k}ê©8Ã\µÒ7]¾ÌQss'U- .7\óð 6–%YEEE£ãcñwzU[Zg`0íãî\pîܹè†Kî©3B¤Äþ“p%‘\–¿ôé¾û®¥½¼¼ÍfuvÙ:5Ïl4¨Ÿ'ÈÝ…!OI¡Ýqsu%˃)Å]+\©n8t:Šù1/<=û»{‰W £Ö\¼XfÕÖöÔÇ­pe`ñ0å]=âªän5§ãŽwïñ™ó~±  Nžž³[uºyóôÿ(\ ¶¦†M¥´1±£‡õK ½ûú…óY7ër¿ßö,b—’ø|Ò¦']')Ø”}(†Ýóå©¥sn< «ˆ<=©•ˆ:åryžDò¡QgâéI­ÍÍd4‡X´hE @Ýœ¶I_]M©555ôàƒªìu&Ãxöú•¡œ""Š9mwp ÙÑѓЈ`w…êº8 ů[kß>[²òX†õqA>Ü‹`K^êES°?¿žO2gŽÝNè£U=?sÙÉ!v'6"¢Ë—/«9&âˆLtÅ0ÙÙ³çSMý<;×Ü=1±-ÆÅÅåG£oˆÆ£"ÒwvF%rË[ÍWU**¡8ç»ú(èÝœ7\ÿ§áŠˆˆeY•½þin¶dÅ<ŸýˆëŸYcgôŠ«NƒEœºZA±"›¸Ú½ÁÛS§¶’#³J¥Ö4M*K¸· y/<³ÕUÏ'™Û^Žæä•míñ™  °;±qï#£æþþgáŠ÷úƯ/¾¶nBƒã´…ºÏ¾ªSgÊùj ¯ÿ(½î”Ú”kÁ­nûêò  ^írÈŸÛ5´¸ã¡TM|ääI¯½ön<Ç÷ EiVÒÝlÜž™âœÒ¹ó•[-ééˆ/,DR}qJ…g¡Ÿ±üFÄ kž›ž[»y32FŒ@ùðḷnnµµ!ßÇ÷ 0—/_;¶ÚPxh­2KÅ ÞrvÄï€uoõ¨0áñ–Õa€Co´9‰„&VW‹ÔpÜøggÓ]¼ø"Ù(4‚™ºÎxÿ“÷s®&¶Ò8É‘FÕÆ€Vkƒ?É,Õ+7j`Ç{·R¬²WÎ1Ë‚ÍÈȸ·páB‡ÚÚZçÆÓ*€ªT€Ú¶©µµì.[ü^mÙ Ô4_@Ûáw¢:Ek€âobÊã_h¼ô±œ>Y§Mq=‘èª22üùûÒæ/ß;íÓÏÜÃú÷‡—Òû½j¬ƒèçþ›7ìùGáŠë#Ftúôé •Jo… ¡Ðªë,RB.ä½ÏýsûÝ^qÅãy:UÛDÂò9¦¿‡û;!1q¥Uµ:˜ùqw¢éþ†“œ\iÿ9‰ ôÁ=s@^MšÂ½H~ÛX¸„ÿq%9²=öØ="êÒ}þspõÁ;_þ ]Ù§±m—Ð!DÝô÷§Jú㛸è÷î®»IR¦-t°(F$ºzý‹Ï¾ŽäóߌˆŽþRwƒÒÇÇVœvÈÝ»wo"é;;)FPMR> zGòOŸ>AªÊzƒÁ!÷ .¿´TûÓ-J”Bq.w(Þ3‹rŽN‹ù5¸Ṵ̂úJ±½jKÿÙ“ä휢B¡ÒÛŠ`žÔ€fŽée(固óíd»òäÛóu/2KÞ$"¢qãîôØF''½ñ3dHU_ègS^Ö¯Ó¬V!ÑÑDsæPýœc¯½°Ò„oq÷Îa”÷’Ü]c‘In“¹_ñ1T1 Úžyæ™Lê,©¥.½WÚ`7mÚ”ØtQXôÕF$ gnDeeº¤—6l¼º{·òÆ?W!!úƘ«¶+!6ûöú†¸ €¯·?À<‡´ ­Ò1 ‹2azâðÙ•7Ô¿ÔÔÈÌ=Êül½Aæ‘ÛèâbvŠÉª‰ÒÂlÊ‹ûÆ–.pùùþ£q…+'“®°ÑL‡Èa\Æš5Éž8ðÆå Ï?yõ9·®(ïf4_@‹‡ËOWy<Ò«[r²®þpÿù¬¬ÒTÊœ!%)èÓuˆ §²–ü IDAT¸züõË$in@óÐ$ŽCÊÁÁ¡T‘ñÈ5óŽz{9bP@@@2Ý}:ÚV‡¾µB•Ð3s&›%Àߨ±ç¿±ˆòÃF3ýó Å|iiÏ[€h\èù6€c8ímBÄèpq¶GiÔ5Yöç"ÕüÑ‹¼´P""zë[½µÓT¾ÿ³5MOúoS±Ëʈ–-#bu™£ãÇ1ÚÔ©V}ÌFƒÄEÕ®¨¨¸EDD9‹,Ê=µÀùfg§²ˆe©ò×HI -IAϯ˜ˆ:)54ޤ esøXê¡FŸsqêŸûOÇÕý÷SÞŠDåå¦9Cq{ƒ®>|¾»b>°W\­_UË)òŠ_íWPÈA(ëQfav×ÈÄ=ÊË:ÔupÅ_Þ+®,«%*\o%ïØ6/³X²'@õÏÇÕ­¼Fíô}•ÐùþüÁOm)š÷ðÂ_7Nt÷ù¸ótuBÜœ¹žÚ¸X]¼Cö˜¥Ñý&MZÃ8#i_ñ1¤ïþtBè•×ÓÞáõ}LRä4/ ürr[€H«UÜ{abç·óôHýž'ï:>¥/VR^^Z[t1õG¬èŠªPùù1Ý„ÚÚË©”A´B!—VíÙ³·ÕÛÛñEýMá\ÜgB32ºsÖs1à LÌ.¶ãÈ›/±Yj¬ÓÆ!ÉJ!WØex¹qGá¢^¶6†Øo¿&qì¹ %#OYy%f®¾ƒðuÎ×Ì‚o«ÄÁN xýõïk†]‘yâÄÔ|"G¿‡Îr„_›¾s¹†“òƒ}r|}}Gvt ¯mÐ/òc\'ÆÂsAŒßЗdnnb_®½vÀC?¡¶R6øzÎåï°..`/ˆTÃcnÌ3ÈââŽèŸ_ ò¾ósð}ì?WQQqô( ŠeÑ NA&ÓŸ6ŒÁã;t¾ÿ3ÇbJöY§¸~eéµMZNŽüve )h€­E]©$¿‰ûƒU÷XÎÛû7 ÿ¥qÅë·Â€!? ÀõBGy{ˆñ瘬¦.›Á5À¸Là›|Àé+hcûfÜôçÒ¥”®Œ’äÛ¢n'—ݼ¸‹—´de_?öç¥]ü´‰×F~¼Î릳øø5€¨ªªóÖ!O%œW¥¢’ÈÈH)P˜hø"¼÷Å©Tª†aXà± sÅ!À¶n{eËïõgÑl>›ÿù ²ø<Ô yóæI_”Vi¥ M¨;ËkøâEž‚R†*¨þ„œì$ŽÈÑÑþ×jøð˜®¸‡ ô½¬®b‰ˆ¨*?ÅNxAS¼X €réEfRc[-ª¶ÒËm6¶¦<Ô²C[ aóWQÝŸýš×/†”Ï3qå_»vëCMc3%ú¤Z¶ƒiûüí¿÷ïO†ú©Z&£;,˲"‘¨H0’ù}ú)ÅÌ;WÊÅPe;†ØŒŒÂt±xv @tõlÞÕºëáQgÏ&Gþÿ†+JÐÀ–¼¡(>ÎW¼°H"·ßç|l“/D«WëLÇ®iá=b 3’“9.d@¯¸ºp<›;pJÙ£ÌÚ3¦¶òxìâÊÍÍÞ›C¤×ë©á^œL•µBóã[ eÂÿw¸bÓ·_ùéDŠv`¿êöOsJ:Óî0sñoìë[Oi+s^Q€xû×*AySää{ùw6nÒµ?½Ì…Yà÷¨äà‡¦‡Ög ôT|ÕæØ¸£_}› súµf'§pç1£äº&fx3.C,{úý;'Oþ0`Ü 3ûSO!mçÎJòóó õrC¾» :ÚàÚ¡ÀHCì–––PÜû0åL‚99ºh0èU`ÀZ€/±ùUš2H²A…?p`‹¼±ÑßE£áhâÿøŠG§ÁfX5€ë ,QQÙš9sB{\² º’-(8Æûy è¹v#ÀeŒãn;@MM=……¹éÄ6Öy9Bm7ˉ‹xµéq`É ­hù*šÚ1¶¥¥%ÇÃÃÃDBÖwm7›!,†×#Ã}FÜ©ªŠà;ÞPÄßµ;wž*ö™'ýDBA»J½§AOóES§–¶}ùÌÃÒ:?ÿiHEAå<§ûÒš*J“ûoøò§ÖˆÅ£Ø¸„Å’ªÚÚÑõ©'þÿˆ«ªF`ÏiàÀE@f¤5ìžL¶úuôhÈÓÒàâÐ…¶¤9 wM”]\%æS_ÆKCÔØ#®ÒÒÀŽ ž'ÔýbW9e3CJ#"˜r¡ZGG(?ý±GŽ`¤¯¯ï¡PÈkj +®>¥éP¨¶ P•g¤mm‚>ºÚãé(ÿ` º‡òSW%oIpõÔöbµZkµFòIë1 nîhm 6Njð{”ýIeAÿ½÷ªÚÞÇß3=™ôÞ;„Hè=€¤@@ibDŠ((Ø¥ˆ"¨Dj(AzÏ$!½'¤Né=3“)gýþ˜´ÉLÂýã÷¹×ëýîçÙO2çì³ö:{¿g—µÖ^«Òb<<,zŸ¡!ðôéMœŽè×»úÖqm‡ÚÊÁÁ–yð ˜ïàÐ¤ç™ +<ž¡ü³w=sË.{Vkj`c‹ÂóècfÌË011³9r¡}û¢˜Ï‡jÀ؃ð¢/XØ.ªPóù%%E€>~@X(  êñôiu¥ âd¹â>šo«ú?þc­ÛÇuûvÖpĤÍMÃûÁ+æ×ìQß~ëÞ8zöONK_áx~²|+ïÀ>˜>9^1ÀÉaUô+®œ¬½«g—ýknn¥ƒ+à¼Î•#ÐØuP€ÔRï^qõÆw?QýsqåëÛæÖíë^q•P>º‹:TÍÞ|à‰Î3 è>[]Ý$Gåé\D;ùi jÀ®˜Êðå·¾ü]¨”5f©'OÙcðÛ¡Cª_¾1ÆØEc¸gFÉ«k›8çÎç l¼¿‘ß¹õ»øYÕ±‘gÏFE¿újºX1~Ïnéƒ=ßYÚKå+Ÿ5K ³å¥ÁÍÍ„UÃàR’}Ã7omU¸D¨º„æäˆÂúU¿±ã^ÉŽŒ¼Äæ:®M­¬Øü£[‡æI~¹§ŽÜQbxppðãÀÀ@߯F4ÁœÃÊËwwc:4Kš‘1ÖP&«Õ¢amT^ÑO?,Ïãßꔕøøä#+ËCoÙÑ£‹åÚñ;êåúX· ÃF—|­ËÅÅeX²¤QÖ¯íc#ê¡qvÜ¿(àNÊ ¾ìäÃÐ ™ÐSÛH²ú?XúÍc÷’F‡á 5wî#ÓñãÜÝân‡ÖÔ<¡quãÈ ­²b~Ê bHŸŒ€›±‚¸§º†âbCÁ«“£ö¶•–¢j…bòKÑшX·n­4=ýàèÄЇq{ w¼uÌàŸ€«3gÎ prݹӿtÿÅ0ÞÆ½ÙÏÏ:zÝÞJ­.ñ|cÙâó'ƒŸ üØ04qâ+°Ð €Öv$:ÎböÏG§?~hþå›èÿÆ+pûøuµ½±*.¯Öƒ>øp£máÚ&2’÷ (Ë”.Àü…µtÿ¾ç„_wrŠ.&Ö–­6l–YeW<+oùpêF»èÇÑY.ùMiñAEÍÒ®˜»aÃ÷µkW¼ÿþz8885TV£c‹ŠËË;z̧Ÿ‚¯ÏÎÆÎ UY¿ÃH í>¯”'ŸûËU©»Š*žX©WüØÛw^cͦ*ðì¶E Wµ4íË×eà:GúoÔIGjRìÙs¶fñâ@þ[’’bóæÍûÇàŠ'0œ.ž?ë|SaA÷FT¥AVþy;1I)å.uRÖןm:su’QEM®òòÍÏ-”ªÍÍ'‚–”9º&Ó§/l hL›–>8¢²rmbKÑÕ*·¾Î¶¶ J¯^ý’ yQóº­Y›´ajñÜ®pôºª$£ø–yròŠGK—Â1- î\.Ô“&!ãâEÄbøûúú†Ÿ;‡€AïB> L Ñ WßÔ/ÀÍÉÉÑRWq8Ä…¢<}üðZî²EÇ­%Ùs¹\®Z×6ðÆ·`ïŒQÛd ¹—D$2Ô>HþÞ{#qà@ ´®QŽ˜˜ Z׊KÊ>KF"ïL" E]vΛõòОÆIyŸü^uà‡ksŠë¬Uê:­Ê¼½½;ßÕaõ(8¬êC3Ð’Ú¡‹,§ö#˜ðø÷­áÀå`h.p½° €£‰–ýGæ¤9ýͼú?…4£ƒþÆ…#²ìá‘ðc˜YôÛo“H–±Öf§ÌŒ –ßÊƳ˜öâ`Á¶—þUõ«Õ§sEØŸ\îvÖ«;pUÓhÀí"Ykn·Ò §uuÖ,`Èí’._£NƵ'øÜNAàî³=‹t€ËI‘š«â*}jG O¶V©ñůªø ¹¥±Løéï°¬¢ciY*ŒÈÉ[³óxÛªJYTb>r¯lSüãÔ:öÅý®Ÿ®Tô¿˜Ë²?Ôðø7ÖOI­[R_A"À>‘îë3(=`ÐO? ‹„‘n ‹y7*kð¹EbFûùåEûûclj*@„z†]"n¸»»·Dl«Ò½²ªaºpã·£0W@áõašZðì·xä®V6ÌÀw3Ìâ©*¹s’¯§3{âv÷î]”––vôcz¹ ñÀü‰Ù¨m²B•ý=xûЇH$Âùóʱc|•J#17'äåMS¢Ûìåµ1ð^:é$ÂİÉ…1hÂ$­2¥¥¥¸wïUEe-ö¿déoVcãï×Õ'à ÙÈ]ö-*2 0Ǥ3r •—#éæM4¥§Oà?A1y2¬ M¤¬üüü¶¶Kô˜6V@¾@6ž^#à›>%{#Qü#\‘Žë(ùT†EAÁ•l ЖÜ·ßVyÝ;ü,îäÛôpŸC¸”/åÿ17iõJ…ÕæØ*GD;7žÌ©É˜ ´4Vÿ…úŸŒ«a €á©`¿2ß™kìÖ½ÿG¾¸ŠÉ¾ñ}Í/ ºÁ“6ZãqÁ“îÅÚÒT%PÁ4ÀЋ«‘vˆ’<Áµ/„ÜFH’aבD}DÉÝYÁßÀÒß6@«+üÇv~üÆy[«~÷ЃzÛ§ïÝÃß,º|2öÖ Ÿ×\]]—=g]d¼·:ñVß¾TtëI<]Ìb?œÐ‘ýjanžBDlMUKts}c4±×¯_ üÂ7%ÀèP€ipvvŽ!"9U‡P¤•FEå^J•gBˆe›¯]»pŸ÷ÒtÕÖ*°ãÀÔŒ?^B¤*¥ÄOžkl›³.’ˆ­ýöÛoFyÀ90Ÿ E#(ò×ÑTø¤¤g]x[:vìq ñãîî¾§¡§ökÏ"/ïð§ÄÈ "Ú¿Ÿª•Jz¶iÓ¦G*®ì@Òóø¾ô9 ªCCC%J%OJ)ÝÛ„aˆýøczIJÔ0mÚ4 à~Å Hꯣ‘$ Ì“xúÂ`H¨Š‹‹cÕjª~ð€$'NPHVE‘jÚ´i*3±[¬H0+0ÖÕÕ¥ÒÓ¯Ã)qLhMÖo‘ÀÏ@]>nløÍ²`~öÍ]œÄS' ¯‡];wÃÂäÜíÿe\=zôѤIsò>üP& "Љj¡ÈC£ÉÑʵWŒhòÈ\ø`{_`;vìHÍ›7ÁŸ3mÔš§QesyñTUìö’Œóþœ@Á˜Ñ/ÈQÒæýÿ»¸bUÓ½{¿úÞ»'ÂςBQM|Ûb%mÿ—C£4”B£$J5æ5¬]{ o½ÓÚZMÌX©É4 ±¢" ¤(.ŠŠD((BI9ƒgÏ`ùÞ{¨˜úâ‰ÿi\ñ¦O6bî‡Qo›sæö­'œï7MÇ®?³Ø½»RtèUUi…þº´œ©M¹B·bþ /?Oa¶n÷b90»v³¯¿iÁžü*>üÜÌH£?¯òÙÉ“%¸{·“°¥¥÷ûï÷ÓŸg=K'ëVœžžŽ37O“Ÿßbe67lm]Ë–®VGÅM”ŽîßË›tIY™)l\\¬ÒÙyukq[ØQ†aPQQ‰’’žÈB>P>}N¨–-…µk¥¨osÚR_¯Ñ4é((P ¤„€6™q~>ñ‡o©ìïqQ VW©¡/ ë/ToÜ|SUQ ìA´HLT ¿Ý2Eío+á€:÷ß´z.>ÎVWA]ÂËâÖ­NصÙð4K®‡ºÉ‘Ïïè×#9æ/ýˆúúmp¸_}ùPtþM.êî1Æiîì¼9æ)[œðÝ©e7}]Ì™õªÉÿÃU®ˆ66¶pwwÒ;ar8šÉ’a4¿þª\ƒÎA3Y2m9è>a.ÜÁ0æÿÃÕí'ä·UîÎîå¹éþúJ™»•O¡ XüŠá•Ó¦hÆ»ŠÒP7û¡Þ<ãÝùÇN_r~Î<|(Ö0óÌ»…°œÉ­7Yí0s¦×•GSb ¹L]SÚÈiÓÄywîÀçÉDFGCáâf ,-å[¹ÌÁ“·z`Üû¹À¥¾FÒñÛ4}:×(9–}„È}û0šHÛè50É.À&2’1;vg?EÂÂ1´·N¼†¤×¾â8íÜÙß>?Üà`4zxÀÄ£"b:fl¡EžÝ xx|ߘ›;ÓòóÏKË¢Æ5k\z Y\”™Eò\ ~[ˆf™À"Íx:Ëž]QfÇI iÖ˜^+功`Xº øËLð0ð®Ô¦ƒlUâC&[e…Ì%ÔÞê R9€áÔÂfQ*¼Q¨<ÀA°- ð! ‚|?¬™\ƒqõ>ÒŠø%kSû~ãÆ“ššáïï?VÙÇ£ ¨6:Ž,^¼XrêÔ©‰ “!ûΔef‚kgvî\XššbܸqC2cÆŒ‰Ô¾îˆþãØí ­S EµVå§SæÖÛ»öž4iãèè¨Õ(©''ÀÏ5 õÍ" |sJª¢õâÀÚ:@ÙÒÊ—J5ß—Ë"<<_5z´—ÞªYñ‰°)Ÿ 㜹ߋ¿É%@Õñ!9::bòäÉç'*œé}¹ÞÚ°b´ G¥°˜‡þAÃÀ‹§OŸzóæÍ¶e¾o!°ö)0„4³À!càÂ8wîœdáÂ…»Ð‘¡•a` ˆHOOùÂ`D¼9†2ØÛ¿ùMÖÜü6çÃ@fà@|üÚÈ”%ccFƒ¼¢$ÕD–a>±ŒOŠnúî;¡hêà·ŸNVc²ù@CËèÁŽ”™SÆý_ÀUbÊç}†úÂgðtO›„î÷ÃxÿTÈUfHæ¥aÔ§îE48É‚rØ0ð[ZÚ¯(8ª€*½¸Ò·îî­„¥I-²jÁkæiâñôœviL(Döòz´<þŸÁïëÃo,™õ iï&Óä½'r2j ìÀ0ÔÏ£ùô±öÊZ¥¿ZlùšI]ýrÇA¡¢þóU©î•Dç¾£RÄ÷Ž/ÃIQýýÕ« ^“Ý•¶žt˜=ÏÎìÈ^ΪU°'ÇÓs^ǰXíœÓÁEÞF üˆ¼âÏ”ÀŸ`‘/ÀqÀÏâ©@Ї»»»f]¬nj1h¼ÒèŸÍ 7ÌV3ýºåí¢½â¦`ì°•Ÿ‹bG[»ºm0 xa²Õ€q~vŸÌáÚéEUímø¹†ÌŒäÈ9¾KF£¸R÷L–›ÛE~\\'~Ôj–,ò22Z! µÊf'¥Â¶|Ì5FÁ‹^ÎÂŽS 2 ;Ë”––âøñã8¸q¹\ 6L=q„GÉ+gÕØØpT°œî ®I‡¼ÂÔÔ”:ŸNwV[[›"‡4IaÖÚfY’ŸŸÏ€–dÍ åƒè¯VÃÀÏùGŽ ÄËËS½ifzÒò)²•3€}·b‚7îZ22–W‚×™aHÿœôÄâ_Çsᯜ¯,þ“q5ÔoPÝ“œ ³©ÂŠeaÍQ'moÆûÇD¼z cû J’ÑuÊnÚÔuP4ÊÐ <`¢NY?Ͼ¸··&u€~gþ`^ѵ…ƒÉP7 KH¥–Vg–6š4ùýªm»ÕFÛ–-²¸•|±róÃ_â<>Íž_«àó }V >ðzèü9UâCw+_Ï2 QZ¯°47çôóô¼6LY…¨÷_í2»uÃ’ëâ+RïÅŽh|é¥*f뤭kDjÀÙ]³zž±ØÀàŸ‡«¾}ýäë×Ù¸qC… ü¤t\1qØàoŠU&2-\õUÁ(Ë!è?¡u>ˆÇýðÃvvÌÊÊ6 ,ˆm]·n ¼¼4 Юî41sFÜzmá ……¹)ûÚ{ƒ "ÏÄ«Þÿª†Yöözîý{db“þœÏÞT >9ºD¶qÜxø‹SF ¸&ú‡~ƒq"ÁíI ÿS IDAT‡Õy­–e¶5—Jæ¥ff“‡*‡„.±Ê!OlBWÀ@feÊfúy¶6”CXP†A‘‘‘gÎŒn8x£ºw„³³:ÿÔ¶ãûe¾Ôý^G21~÷ÇÏ™37åÊ•PwMìÆ 3 ß@5ÚwcÆd«Ožq==]´i(ʨ¶I½[ ÏóÃø·;%Ì£F#:ZÿVbÀ€\¤¥uîRÂŽùa¼—~Ð[Ϫ´¯Z¡_¿GÒÄDoCÍo  °±Ñ($š›Qgbã+W®<ž3gŽïÏ á½ÙºíÖžn§¾¿ô«xÏêjŽ»îÝ’¸qã–†‡ÝéƒÊ‹©>–Áh°Ö¯F(}®¬Ÿ=VìúVûxÇ9»ë¤Ò>"#ƒJƒ6?®)ß²Åð%àÇð3gFÈ/=ÎÍéÈɯ¼Õ\ùd³Á?W‹-N‹ÜW¬øœ† ›q8šãHVVèÖ'ÔÀJnwïÎ~ýlr¨úp‡5@Ÿƒ?çÏ.^쉙+:¥ßÖÌÑ_2^p ÃFOѺ&•o½éùómrpP €Ÿáu›7¯6-Zô_«Ïßb…8²cåÅ÷VKÖ½âw[|þÆó?þëÔ¯ÿâûñõÚˆ…w,Í3%ÛÖÌ½èæ´âŽüêkK"w®¶}@Nuku|âžÝßßi¹’€¥ÂÏÃoݺ%áqQüä$ŠÚÏ]Ø7óP“ÜfÓ<”h¢ ¡Y¡P(ˆHJ’þý©€Ë%Uß¾TtäIT*ö™¹1ïq}½68e—@Kg8–p8|­híšü­Ž»kk¹*55GÛ¨ì°þXmyü¨¾­ÈÐЪWWHÑÓ§¥’9w嬤‡ ÐÜñÚ¼Ú‘­mƒŽ›™}ûtm—”J•"âîá¢ç8T(+®%3Œup"ål ËN†\•@ h%")ËRó¦M!‘ŒÏ'Åܹ”xèó)—¨Í»)…rK©16{Ê”)’—‡@†€% ¬]{GlhžRv •åw†8ÚG+î£1-ìÚÿv\Q¤=Q탩´UÙ½ý·lÑ×÷Å*À@«OOîÛ+®¨µ¬•Hlçy¸x€¸£W\I.®×ⵡ¨o_Òã¾è0±ØH1ÀEÏq’ú·ÇÕÖ÷^½Äøy¾t{ûû†ŠŒ\Fîì÷³á¾ü°ë+˜Q³E­Ÿ¿!/©|&|sî(¾ý¨­cìmlÓGºQëvï‡u‹M¬Êçäoëãt[z|k®‹Šå7~ðÇŠ¨(w3.s«U$üжU©2ùãdPÑ–-ó=Š‹aÛ9²Æ8;O`Šòb=Qy.Ê,^±†ÉØ~í%êêêR-,,ü¬Í”q®V&è8·ö¯¹—I «§·³“)““›y¶¶Öš¥\œ¯ÒŒÄ½Zù=˜þ>Ë(#ó^Ï­„…¦ËÆûŠ0hŽï±Üù‡hyí+W¡ÐÍÏžYèx ÂÂz Òƒ{J¸ —-c-,,Òêêê:,îMÅxlm†¦úfV7À§¸¸8õ£œ˜sçºjüØúùóWäùÞ›šÝZ–nÀ‘Éšßüеµ¹Ê ÑüÓŠRæ}ƒGgGT­˜)µ¾–ÿWó‰3r:ò³Úĵß_O»—£þqõ¯¸Ãòõ22ôÝÉW}x€&€mæI޼Ÿ Ûsðû„¾G˜Ø¢‘£zŠ¡IÆZÎRµ(î0¬_Ïåêx“[ÌÇÞ@k+0t(šÓÓ¡ƒ+ €Ž/N=»Ã®pk77>éîù@Uòƒ8É ‘Å„ü­åLSçÍ£DOÇnH%¶±—.Eß.¿7äáµ ¬;‘H4>.11'žaˆÕ¸„ñ,™n<ÑÓRK¨Y'ª©—ñwíRÊìÍÕ;n*Ÿ7/EÔZ—è3Ãm¶Qq±,æð¦r0–·œ:^ñP,fxv6¿=¾øûGo(wš?‰ Œ±iõú4æñ´0ãÜQÕ¹ŽÕÕ!­¡éee0üùìo}äÝmüZK†#Ú­¬LvìØ1cMðŒ±Y¦¦•ú¾ìk9)ß6,±K^?匣~3ÌWÜÀåê3*ìÙÝò¥K¶¦•Ùéfï“%ìÚæsOÞ{èF&€}® ç†6wpîv¾êœœ1º!ÛÛRK‹ÆØ·{j­|(Eòx óu1¤9†Õ˜`è±Xh½þÏW”µøqˆPo½õ–´<9õ”ÐráckÓÕkÆy¡æ@óØ,W[ƒ¢Õ·ê–¿Ba÷ìOݵ #PŸÆåL²Yôú<‡íÛk ¤RV&䟹?Âõ´ìᳪ ^ˆ;¸þó­¯WûíÛû‹Á ®ÔêwJ½âè;|lã3 ‚† ¾mÉ+ÆÕwû0ÙÉWºIA5©¹YßUMR«W™z:ˆUЫ) ‘íò[Ÿ‹«V¥”Ãáü .繚€÷ …êS§8=â CŸ"wÁ'i½ÄG?l{Ú³†ŒÕ«†]jÍÍРø/ÁÕ‘ X˜ºU{ u-U™‰/¿}cÍ[ oŸ=´éÖŠw¢n '„i¼y>ö6@jC›¤ß¿ðûËÝ}^Ü’I! ˆâ…Q˲×&Ýo±•”½ZÂ²Ô •ʲ—M3x¨5£<žBDTPP €ü=Þ¶·Öšy” /=‹÷†0Œª¬{ФS£»—ÿÝÜ\ºÍ<½Ï‚Û·Æk¢Çõïu|z¾-нw¯ôÌLdDª"µ¬÷YUÚµªÍ-ô€Û Ï㳨¨óÝUÊV 9>®3Z}[¾øwSç{k‚nL˜À¦ÇÄ4…®™Ã}¨‡–r6„9;;Ç ­KÖµLsâk¡PX€fŽEˆâ>$Ý Ú@úÃD’D)/K’’òãî™x¥µ6-™aˆý»ã P–utáK+\Qö{š@']Òóú‹Ï߀ÒO=žaP›¥Z/^s#eæÌ™Éíjf„ÔŸ?@TÆIFD滳 ™ò‚ß­^  }aÒÒNŽÒÛ©%WíÈ˳¨††l¯¾äGJÓ|N4¡‡?hè1 C.¶¹=Òûn[t'“’Þ£ÕðÑÐtvVö >.—ee2Ͷ¨±®„›ëß.ÿn£gK1‘€¬ª”ð£·)mz=2O¡p£ ŠrŽ¥g'bÛY N²·„¶ßúPN%ÉK+‚‚‚ŒDÈì$„yÄ*ß}÷}héeA%ŒûóXÕ} ¯>ÚÿãÁ[Bá­{CúñCÿ®¸rpxR¡/¬cÔ/ô÷WÂP"VÑѵb1='FÁQþ…ègÉ/˲äéô´Gz#ûoîàQýð945¡ÜÝŸ7¨)Y€Ã 1èÁ>ýô*núé|!!D}ú¨ÿÖ¸Â7Ÿî½{oÿ­Ù}àÇÐ9¡¬7%ׯSˆH´ùaà+Ãnn\³ÿª…($P4gí½obBM€ª@ËîÝ?„iä!Š"±hvØ®Ux$ùé§wÏ¿ü$>  íŸÞޏš«¨+8‡Ò‹{ü¯I်\£Q)ŠFgµwÃ0”ð”eI¥;¬•\rí±cŸÊ„Žy÷©UöÖ¹®®/riš•pzÔ4mZØ þ þôÒâqÕ$­Îêd2RüO’€Â~ÒÐ20° †é€þþyJ""•RÊ^4íY‹'†z7¾jèС…,Û)2jh Ç+WR´³3•»¹QéÆqiï°¿(L˜G¡‚"ŠvVÖÆ¥feQä½{$ùé“i—(Ò!Ž’ÆKŠsóÂ||¨ Z·ns ˲R Øún^Zn£EZöWâßWhîܹO…B‘J·@…ç{0â†ÊˆU¨‰ˆ† jíW@ ±Ôª‡=k0©hOGŸüð¹D/-£$oçNmkyor»¤"ÒD¡®æŠ ø`SŽõ¢–€ZZt¿A™L¥ºtéRa×k'\Ë%ðnÔ—o"¬<ãpÄ•àÔû~wßóó±¢ø!a%%l,@jSñÊûê‡PS¸q†LFy\sûîÙõwH-•L¹šSW<¥‘‘QFDDchgC²µÀ„ôöÎù믫qT×­±[€ÙI>>>¯ÐmÊÎTtÁ½×Yë³7Ú¡oÙÞ:×ݽs{u…L-õC£U'øFÀºAŽû­“9ëôòV¬‹ƒ±Ù?gV%м¢¡—üBï3µÄ0&z6M6l˜"33“òó)šÃ!u÷¶Ÿ=ûõ˜vÖ«ª(ÉÜœ:¿&&[#3Y–šĮ̀m‹£,8ꥯMz`ovè[Ô¶²bÓ£bïþÝpÕVFÑSû ü³Î½·qá—DD´eµ¤W\¡4WÌ€^\‘„C$ïtÕÒ¢`…Â<ZãÆ×âñ§u=ðöÈ”%eœˆ¨±ñy«5¢‰ƒF Ù<W =êQˆˆDôwà €ÈÍnÉ-Í’{xÛ¨©,Ýòºf_üäÑ…[š #C'†¤òšEì•+WB,ÍÅ™š¥%¿¨4'3ÔÒ’j"ƒÀˆ¢¢¢r–¥†Nf‰€Ö€§ôööŽ "ºy“$Ý›an×-Y®ºr¥°®¹ÇÀzDçõGìnÏÕWA|ÈÙÆ™„|y;eJ¬Ýð£ž:´v½‹&ÝÀ€†–v:3fPµ“l+KáÆZ fC@óg W·Óápx$÷­¾ß*b•D²|" Óë;ËîòôðÑš“³ó憉Ó”³g³rݺîIPvvv$I»j¶°«rvv.Ïȶ *êj#ƒ’Ä£È% ¨¹ì^ÚìÙ³C¢~å'ÐÓ¶o§ð¿®&OV׫T/Öùø #†aô¶Ó“?ÝzÿÈ#,‰XåõŠ+à+-º'¶èÒªMXÑÔ2ááÅÄá4wàÊÖ6¶ÚÀ@Û6N(`XÙ=~·Á’!’vèÎÕj"#£ž5+³t26dÈÝÄöö¾ò¡ˆZ[»sªIùùuôóÏu k×’R$ºõ·Â¸ÚÐrÊ`9ƒQ*ÁTÒ°4ôèì¾w/ÂLLÒ[ÍÝæÐáä°šÀ@oA}ƒ%_©‚¤tvhzUU¤¥µ„ÙVWï\2²˜)Ü–§Ê‹ÑvúMà&-Ž õ€©S°s'Â5÷d–è¼Ù©S㸮fFFÀÿÅý«ÙõÄ*µüy»ôq”£—diŒêWc´ïÞËùùiÀ^ž°¼NWTµÀ¶£úT«…&×l•›Ê.kb9j'FÀ`ÀU¶VÅòðÆ/cqáj\Çé(–UÁËK¯â áÁõ|00ËÌŒƒ…iŠbhÿ9õFb‘®LmzÅ”5@c4œ½œ±i¥ž¸ŽIÛyÂÛ»ƒÁ¿eJ´XoÕÁÕ¸qN¸}[UÇá  (,knžL2™¶Û¡V1ŸœöíÀ8"`d. tíÀ‡ íÁ ðð° MRÂÖ%zNìwK¥Íîl÷ZÇe7÷ñÈhòôÓš5f&‚'—'–¡- þÓ¸âݹÑ,>uni̓ìŠ+Ãoè³CÆ¢E{8%¦vÇ$}þç˜>xð™qéåDS£áW„;úV£f“R·[F^Û‰Ž,Û¸¥¥¹hÚ´þÞk§çBa(Ú OÃË‘™-99H‘ÉÀ>8kXmûÄQ‰,ª€Ðñé'ïþf6kV¿¬iÓfÛ%›ººnizúV‘I©¦‚I³M}Üjr§DæØ×Ï8–/‰ÐÒk‡ø{á©@xêçé㋘Ì@2¯¾ê×t†ÞãòÿV Òîntn]'³FÉU©+++8;;ÃÙÙ"‘fffèׯ_‰1wUfv&¶l1¶ñöö¶233ƒH$ê(ke5pÿ¥ ß©^Úd%’¡fçZ3°T뺡™±ñ°ë3Zs¡!²×w€ƒÁl°í,(¬~à'f¿¬S_eemÃÒ¥¦Ô4Ìšµ¦\Úp^üÑ"ÄN {  ×{¯GM<à²÷ÑMÜ·§·Ã4(‰·è¸GÿþwsÇPZ`á°2bÆ´NUç"·év¢94T{Ræó¤æíƒ¨t™ÉßîOé¦|ÅTŽkÛÿ Ñ…Ê-ÔòïGÑ3Ùó€?MÐÀ¹ÜÂ8â?Š+Pɨ_~!  („òwgABI¡D¤Ö,óâìÚ4¡ÜgïËBÚ–“, ”‹EÈúá“i—LM¿’<ðHk9[s-™ˆèêÕ«!Þ.mjܶqj+KãV´-³ ú¤W¡lJx´&¶4—(”Ûëúã×;—ï<.Æûï'£î åîNj¶›è <¼€6o¾LŸ’»ÛuöСâZ©Tª®¬k 0QΓ“(ê!»k600`=<ö4®x»€¾ü2”¿%W×1ÝÊ9‡ÃvÈ&<]k©43J»®^šm(HÀÓÐÒ÷5¥H ë± ì_ÖÖT´ªF©»É‘ÂçÌ™s9Û Zë^þÖ0–¥ÆÈȆ°³{^"in‰ZM•í´¹Ü}!9§QLÐW”4FM¬¼cuãÛ+®Fõ÷— F¹<WT´« %­_JŽº ½|µÆURg»¹£9s¾£¯¾ £éÓòY“EµÝË´g3#4Èî"‡bú«z¦|Ä~÷]}£›ë?þ3Ú²%˜"" µ q¹2/sã\ÕßA«®òËÏÛ†ò¨ ï ýùKL¯¸|ßZÄW¨Ï ÑhŸˆ S"T¡" Øê§™í„]í†?è5DglÜH)„BQÁÅ‹##©mÌ61Ì;Q¿}„˜¦†äääDr¹\4Wÿ…Z’€. òµ;ÕÂbžž3m™ÇSSMiaQkòü†Þ:åƒùº ±0h63ɬˆŽ#JK+§wÞ9A.. ‰a,µ@M Côà YÅôíPcßÙ‹L.—«s‚Ï?¤ˆÌ͉JK;­ªRÓ¹sOé7Ž’­í.‡Côŧ5ÕªÖF]ÅITïBíW_6 W»Y-\ŽªðÝ»W¦íG_-#zØ.«i$EEJ¥RyyyE­˜IG=q¾rs”‘¦¦Ô¨¡µ7tþüù ÍͲLZP‰™˜ÓaþŸÂ=žC¤–k½bPPU¯¸âp”ÔÏÕ¡ %žéß+®¨X÷ðî_sšÝÝ*Ú„âo‘­ízã£tîÜSª®îœ=‹Šˆ8"€%`Ù-èÉŸ]Ì#R'g‘Žä~Íj¨k è¬8+rqYHï¼s‚ÒÒÊiî\"@MN»ªÍŒ:Š“¢ Þ¶Ô‡;ˆˆþü-õ¹¸²·Y+î‡H þÿ1\¡®ŽÚƒY¨,M=£Ú ´<{ÙN€ÁÈÌkß"™$P“ª¾Q&“åîü|wps‚‡$/)ÏÊ¢ÈΗdÓz{KĽ3 ’ß¿zù’Hô½Ø 7ðÀ£Ö‚FŸÛ¦×ƈ^ý”ˆˆ•6>SœôØ)CútøðÖʃVýømPíØÁ‹¨ç#%÷µê<|X©¥Ê¨~òga÷úf½à¨eVÀç­µJXµJïðH,KtæÀIš?{G]bb¢^óJµ¾§÷ Þ?’¸\Ë0–*sãšç¶_U•^.ˆr7°”ÿIµVTPBt´,ôØ—“.ÓãWC¨æVªJEåbq×ÃÔŸ‡sÔ,Ÿ&~°eݶ+"‘(—ÇE –búDþ'pE¹ô”™ùüvq±yH<µ0᪳Oõü±¤^ª×©€ˆ Tï¯Ü]{úè£À½ôR÷zßj©#¡ƒ+jŒÏêJã‹/¨ÛêóPfhé´×iÓúSuîîîzÍ[":öˆ+zú-±l~~½Ê¤ö¹í7dÈdú úa þ#¸É==©¸@ùä$Š(\œI¤Vk–|­…ÊDÂìÃ_L¿4kÖ’h4b›…x(§R]Ÿ”Ö®½ÒäÑÈÛÛ;22RÖU=ß Œ,ÔßíYªx^#¦ÅÔU–Qjª¢cOª ³Ní^_öini»¶ÇóQj-Qm­6Ðjê)ê·¹DÐ{³MZÐèÑ£¥'Ož¤æ®jáªËºÛ„š>zË0<¹ØÿZõ¼vãpˆ êÑ”¦¦† ìí;·"Ñ>I›F‹RRºžícë ÎÉ…çQF¥Í!" º}vÏœKrYKÞ¿W_}WËV¯{âpäÏÅ•«½o ²³°f£õÕ‹«œ'i4+**hÕªUdkk+åp8”zqŒ‚$ ä‹ëéi¡v3«ÕD\n÷:xKÛ±÷ì2tpE±ý:ÖúÙÙ¤Ô¬øºæV̵0l*6¡K_iŒØãÿz¿E­VSyy¹ôСCdcÓiÈýÝ&ÝoG£Ðà¬J¥™!Þ\ô乸b–Ì̬õšÒ0 Cï½÷é¿Wpvr*=ðùêàµk×…†,í¥ë÷ƒ¾¹ràÀÉÏÞ¹\\TPFD4w.%ê`RÚSÚ(QŒgTM ¥¸ºR™†Á/ÃæÌ™¢V«Õ55ÔæV†%à“^´ö\ðÜÙá³Ï;¶‡J…’$î¦Ê¿:åPX¨³³3íß¿Ÿššºì&Y%Ñ#‹Ž²e—ŒÈØp`—ú—ê­sútÍãµOU$é&?h˾>î2 ½4Μéd£¼¨”òÎõëx¶é–ö*ÖÈȈ֯_OEEEDª&uË£CÏ[ú“™Ñ ­v +õ¨Ûµóðá=~÷iÇŽ®Æ«¢9Ž:888$6¶}[(Ï^N;¾±ïž4^ÒÔDðÖ¤ ®†hçÎç¿—›[ïmyxüÒ±=äqyôÑk¨<¸ÓABÍm•J¥¢ÄÄD>|¸–Ùˆ¡€ØðÎS!Mwí)5©±£þ“'{ª÷: scôˆ+R·Èˆˆ† 鉯ë|8XÙRæIŽgå÷ùTW×9£²,KIII4räH²4ª›o‹;p•~é JŠ«Ój7#£†çâ ˆý¾ë­mcÀ¿WصªM([øe8©41"Y§6¡l´{«äó©mÖS•;Z :塼öY¥%;[þýæ7/SÁ§a$/)'"…£#•ÿ´_Õq­ø‚¡êôvÐÛÓAÞnÆ|>¿Klz.çÎÕ®\*§È¿‚(üè´aÙz:z4M.“Éu 6Dê§ð¼)ñ¸íçLë­“Ç#ª«#¶8ñ§âž–ïãG¸>ek¶³µó§ŸjXh¬k üóÞ:Ï;YëB(±¾«þnÝJzíÅñd"öÓ—zó¹sÚM¡h.RPÉ¢ôôìj?yÝu͇Éá¼O5u ƒ¦~.ˆØ³ùËBáâGW€j®¢®oöÙQšY” Éþ]¸ârÖuàªéžƒ*óò ¿°œ ŸD6v}×={žß>}ú¤ê¶?_Hó'ަ[ÆÑþÏ~ _ß·åúÿ+êǪ¿ãJÅEšs¦+WöT¯’3öÕ Üq¥nÉ{ZUElϧ 4vs&bcÊúS×x=ÄŽ§ IDAT2$Hç3`Y–=|ø±úðg›)ôÂYJIÔ aZXÈþK¸jµ…§³XôÃx*º=š ‚Üäµ×̈$ Tÿ»pŽˆrŽÍ̤ˆNf¿?ð>:ö°Ty1A$¢.îUÆf®‹P’€(LPHD”ŸŸmggW•ò;òÚžk¦¼Cë멘ˆ¨ù¶XoÇå]r¦át>V÷Ú66ºãQ||yzÎ'.·šÆŽ%:w®µA¥ê&¶zö»^¶/ÑV÷µë-)¡æÖ¼Ý= õp¤Ëšzz~ëV ¡ÇôŸJ˜4LßÀ¶^TQ@€š‚‚rÈÍm¨žmÜsÝÞL™¢‘çå§FËbŽÙ’JϹCõÃövHQ?DtåC¹¥eee•®®®Ñ¨è<ÊI–Òf†ÔÔhØm±25ˆÿwàjåÊŠôˆ+Jš@Õ¥Å_¬¥eïm$7ëi[›ÛP Ê%KKÔ }lÇ8½<Ä\øšˆˆfÌè¹^++ÿæÏÞ4éWM•™©¿üÒÒ#®€€~Z?^ïó!—·ê|+‡“ÜÊŠˆÃ #/¯ù_ SææÍÆçâ ¸EíýоN²«;¡Wl‡ˆˆvíºûoÁUWú Ý¿ßÕ·q€ÚذK€Á¦Øæ?Fω îÁËo;‰×|S.|'ÊÃÃcdyyy×`¦b(kLMárµ­n B–ň=ðØdÞÄq*Éàtj}EÚ¿Ÿ=kÁøñß`Ø0?äåýµÚÀk¯ L† ©iMMÍ¡ŽÂÊJ½4¿\‘ÐN ôì“ÆÂ<±KŒU(,Öƒ2öëeyA®rœÇAÒwߢ‹_CSSWôéSØÔÚº_X!*ŠƒÉ“½š‡mÛBahØÕåLe¯no NŸBèÛÉ¥z´h„g¸ݲ•uíF«‰ÎŸ,ÂhKS´¹¾!ž½½½uaaáÈ3g‚b¢ŸúÇbàÍ4 ¸:‘aºÚy†Çò”uiÄÿ\8²/àèѽNÐ 3׋+4„Â2ÇÙ$úÆ_*"ML½Þ­ÚRk«v ±ØÛ·‡!55³g{¢¦† `,€`à^k›Ç\€½•~Âí>Gu•JmÔ³-˜˜¨xÙO{Ä•‘•—åÓ§Ozá,,€Èãï²Üv0\N¯ˆ;ñ²p¼¹LPHÛ¾]öÚ5HÞ}w¾ï‚ƒ­ß:ÌD›™‘»•j§1À¤‘yeèü þpuþ!ðö0Dš÷P8õŠ«QF¼È›aìÈ‘À;€¨‡ÏU$ê´ò_ºôƒ–ÌÌb|ýuŒ(ƒ/ 9œRÖoà8ž=MÒ‹+†aae\Âݶ =6zyy‘êFôâ bÿ|0<__;½¸*œâOYÙ#®¬lœ *ªŒ¼½•­ ËÊ0DM ÛggìÛw[nnú=kÒ/¨Å¡ǰۖ†öŠ«§Í®\@”ýŽ3°^ ¹ñ…«ìS(¢ØþˆˆÔjªÐRU—&MÔ‡>@4… ŠˆU(X–m***ŠÝºöÓ‹E™×Ú—¬ýûSAç’0'ÒÂɪ„QjRË´×¶¥?ëß2tÉʇ\ÖÁέf\'G¡¥Ñ œþLÚÜX£|ç­%2Ýsú…ÿÞž5¬Z^ET´³Çº×¿@høp]ó€¥K»Ø<žÒýYo„kê7jÑx'Õ~~Íÿ¥°ãCU=Õ?y8ÈTlF.6™zeçÏk7'˲ôóÏ?³FFb[Ö!äårX60P- ïôŽ’|{_Ϫý.yñËÚ[,!(úW¨¨ö^ÚÖ­]5Xêêö2ýûº$îܼん“s Ã0M¤ÿW¸ztê®otnŸþ-˜V²u5Ò"¢º:2H `µpåbCjkc¦Ìy’Ö ¸= ÿ-L²X+S}²¸—º›‰ˆè•WtŸ÷ñ‰ë°¼ü5tpEÒ¬p"¢†V/®€€~\‹qEµw¨®ªžú8ç÷ 3[ ³ýöòòbËËŸ© º(¥¨X¡ðº×a>òö4÷ WaºÙ;©¥D #ÿÏpŬ]þõ¥©¯ú™{zy‹ÌÍÍ…‘‘Måm:Ê46·577oõòòjì5½ö^ôéþññÑ}Ôjµ¢ö:æFÃqm¼LèÓ%¹¹èÝäî¾<+)iŸ§©©…–¿O•´DÉÄ8óõ-U»¦éÃ1cM\Ço†áÂËqÙ[0 ¼ðz`n>üw¢ehÕ '§y²’’‹Г®þŠ™¯ "Í¡q ^ý‚ß|I¢4rs›ŒººÛhhèœãâP7lXÛòYÝÒ‚(ÛR¨[ú@P~‰AèX¯–›µ?ë뛋˜{ˆÅbH£ÇÊ [#uÖ )yÀÐÀØ?!,eÞv ~¬  ³:‘—^Àñ_Ráâû2||xpëï Ž°sç¦THQyÝŽ–ªîê¤>o7å>mÒšªm­Lwîg<4ȱ‹§T¶àZð@DÂa ð™VŒ­%5c,Ž‹‹Ï9}ø^Æÿ߸&dq¹ažj5´påîh ÌùSö\\Áí ÀõóŽŸj5!-6—=xÆäælÏbÃ'Ó``÷ ÀÑÞ–ÆÄ@6jôâj YHʾ†ºGßšiÀ_Ͱœe” Œ©Ù¶§AƒVÖ%'5±-WPúÿ±váQU]wÝ™ÉdÒ „B€@(Ò Ò« ŠADTEì¢Øxí+@)ŠtEj& )’@H%@Bz2}æÞõý¸™ÉLfBð{ßó<çGrO¿kö=gŸ½×öÓ  lNúÿáÀÕС™õYYÂ[jï » YÓ”›á¾õĦcÙãIXý«ç@o P膫ٷj0¸ßM.ƒÍv.]DuCËïÆKlº‡·®éžÊº¦5uë5Âu (™,U5š :áŽ+ÈRr²”´n{§™Ôñ Eƒ‘$OŸ¶sÍ_MTÖŽA8ã$‰%Vüš¶hSí×Ë‹ÌȨñhÄH’ië¯_€ZÐçÅBݾ"*•‚q{WR:s©õÿÈ ã©†ŽÁÁÝ<Ø Éù®[ŠåAä-ðØï€-} ðCCåÛ͉II¢+ª±¤œ ÞE§×¡@! Æu¬aMÀ5dïÞ%ŽÈU$=’ZZ#úµ†þ>m*jÓÓÏ;š1Õ¦[™>ŒŒW‘Zðƒ… ¾ûÒ4ЬCOþ°ý<ÿG7*•J·uÀ.]6ÎŒSýÓlù-·quýI’â’%Lù_ãJ¶ùêîÑèÿú¤ýù1ACO¼¢hå»/LæÑ/›T|e††Sc†OvhrŽŽø‹¸Á‹µ u9޾RS[.1¢¢Š©P(]¢«õˆ@¹éŠ˜>¼€’Xã<ÎË—ÍM …ýbí0í‘«€6H-ãUdcz#|›ÚÄ•3߀hX3~’1I-(½Éƒ¬¤BánÌ~LjXs-ȬÛÛ¬©aƒ··óXþ7¸ä‚b Š˜8ññ_7Goî4[‹›¶O<%gÏ¢9~àÆø˜È'Ô›Yš'›ú—„„ ¯(BùÍ7À²emKîÂôDcÏÆ‰>Šv¾®~5Û÷µ(6‚‚üÅì?+» |H¿Ð¥»”ßžÔ¸hѧùùî/…‚°™õTþ@F,ДéxVrè5O^ {ŠŒ‹¨¨=øá£ùòå켌ŒŒ¦³gÏÚŒF£P__/x+Ç7=òèì7@X__O£ÑȳgϪ222²³ýû ¼Ì{ýúÞ ëÐÒ¨¥HéÜü^“˜õ6pð$пûpœ+õÙ*2²ee @eÂ= 8äü|ãAà‰O¹wuÃO[3DÿÀ]YüÆÑ˜ÔóäõÀÈç6žÊÊ l»Äó¾0êòúåiõO܉‘ŽÇÝßNL*ãÇÛÃýïp%÷ým›#;0Ú˜ømI»¸Âè2À»% {mmµøì#Õ,ÃéµÀð¾­Êw~ª}Ö† ²³á–A‚ŸF‘Èø ÖÛé¡&UgÒRàÙg%øù=g6›¯ä 6¬iРA6!88X8¡57:ü;MÖ¼Ààà`úøøpРAªØØØ€Ã‡õý¾ÿ>Ç›üÎñJÃC«»œÂw(4À€Ý@èHO<‡›'ºGk“S:€›!Àϯ¡á‰ir¡üˆXôÝ€²³Ûpó-‹Äªš&®>}xí¡ë¬µ}û–7†FtiWß|¼ð€ÿ!®š#?+#€îW¿{¾´%’pÕîþì‡úðÀ¼î•uO¸rýX*CЧ¬ §/fÿ›n|7n¬j¨©É÷‰éa3&2($µZŽ3|‚Oü¦œýÑuSzGÚ €àµgÏž8xð »õ‘wèTnåçLh ïÔ×6u‰QÕ¹óaäçßëVF’@j¾@‹Í.<Tü@Âú¿e¡6vxw,š?…Ã&,0FÇ öõ¹ö9>þò·òw~¸x§ízD5`;{^©¾rz//DÀý÷ß@’JþžxqÙ‡ã{öêå‹ý{6<9ghД{¡{Ÿ±€ÿ0@—’«ÀcË,$à­v‘U.éõ×óa5û¢pßM†¯¸T5ÃmÛße8=lˆíðÑDet´üê‚Õ&ÀÃ1Å)ÝûæÛ©¬ÄVà F‡õ‘‘½½ëꬦK—ôþ‚p¼ü¾H6e8\Ã̄޶ø^8áþ7¸êÛ÷Xî¼/pwPëfˆŠ’‚ŠŠÒ-µµWÕœSâóÉæ‰\ñhÂuq%6å”ÞQ¾;f³`ó×W ú®U=öðòËîEHÔÍŒ} ØôðèT™>Ÿ  4?GÿZÇ”,ƒñ\þeßUK1ö–9åˆxÂW¨ž86Q¤ºèkìÚµ ¤_^ÇÅé[_ì镈ËeŒ×’‚ÖýzÉé¥È,bû@¦ý~‚&êÌ×Y‘'àíìÿ†Û‡Ã€ÍÑÜ» š‹K—¦ÙnŸ6C™Ð²… ¸NxA)º¿mcZ µÒÒääP¯V{75Áäçÿ[n‘ââfÿ/qEÊ£÷kÈB’$±Îî%g©¯ÂYG¹¤ŽgH2??Ÿ“'g¶É¢0d¹aiµÊJïëy¶²nÎÏÏ–vGÅšš×ýkîýmÖ[±d2Õjúùå»YL+¢¬´tJ’é*Oþ2†Gÿx—¦º×~LeŽ0zë^E*d”æ­x‹Óíôé<ãR/c\<µ ù(èíåp@Oo¾ûÜíüãÓôÕ¸^|ôî:ÈãÚ}ðA­N’$j×Ƕ9ïo–¶>:vaNŽ<ë©1Ö¶ê‰Çœ6r¢#ÅË 4™=åé§l111ÀÓë±Èäˆt’¢JåâËø_ãŠ$_x¡µ¤s>C`AàÚ—Ç]Wž²äæÍ›ÝŽW;ß»Îqª!‰f3^î†+Vúx»®DÉGrå²Û8 §·Ë³QC»PŠoösÎ*•¤CЯŸ³mÖþ3ÎõN¬–íûlqJžw9S›êrxhËJ¦mŸCÉæÊå}2ßó:z•¿|î:ó.p Àl³Ù8cÆ `Õ‘›Úĵ*&î;ä`ÐYµŠìÕ‹T* q<ì¸ø_àªyã~)ÐÔ4 Î!êK‚ ž<N¡a WàÎ×–W†2@ÀÈz’X¸p¡µ¸xG›¡‹³²€'ž¦NjjŒ{b­"ËôyÃ¥*ÏñÄö·û”ñðá$[hh¨ëÃÀñmuƒ%wœ‡(©×õÒ\žõìu‰PÈúß‚³Gðβ‰ˆéÕ Ë¿š‚YO¾“ ỦJ?ÔÛÃè=u7FÝ5ÚNŒÙçÐÏAÄõçŸR]3€ò¯SИ4Ô*`áÝ®†q¡þóñņðëú9ê« °ÿ=L Ÿ]Нœƒ¿¿ä8 «TÀž=À›o†ø5U³ŒížÑæ¼³Š\ÿ¾rå FŽkÛ·/E©ÜÏÚº¼UôÂ_¹#Ðã‘hÃ?i `$€Z«ôàïÑ„â¾ûºé6mÚd›¢ ô»€›Ït èÝ»ùþ[\IkÏžumâ `€# ;àé/’O}Þ½¡øŠçÒ’­¯mÍšDã#èx^˜”qƒä£˜Ra(üÆW¿þ\‹¾ŒW?Ò£w`¼³l" Îô퉀€%‹B!aÒ¤¯qùò~Ñ]T–%÷]gÞþC\þT*•رcí®»×y¹á _ ÇJÔÜTgï튴4ÙÔè•W€¢"@}<â*$¤XÈviÿ#\I:`P1>{Ÿȹ¹q¤ ¡EZþ‡–/ˆþ¹Yªãéq?Œ-•ÿ׬íðÁË»·ºf—4Q´òLü·ŒÛ0–g~Ö[OO°–웪ìÞUüòK·l!Ïœ!D›I’â•mÉè¨hÞYyxÃ\réÒ~õÕWRßžëN~™=;ŸwŒí˕ɤÔü=ªsn·öêå`"®sÚ´‰q¤(2AíÂÐP°¹…gìÀ¯å{÷¨q ëV-W÷Ÿ•ïˆãÆ] B!{)8»¸Še_·yo: )4¨5-M/S©üOÏþœ¯Îbxù!/Ë–4<8s ƒ‚œã#ÜÆÖŽÿmeS³—ÚÉ“'Kî¼-öëé‰Ç)¶„ûX¿žÍkóßãj×®]¥$YTTOAhWòî-˜¨P€‡€.÷}¨ÐW`M]7Xÿò‚MT*_¤ì_9„@Ëe‰— ’õ:ÁW²ÓãE’4mœ3'Óäí}±Ù|b6GŒ!J>TçÀÉ~=ZbŒð"í˜ÓR»àŠI!õ$K—Ò WÀcq DóQWæc|W‡—ýó ’åCò©R¶à v`¸nßÞÝ₲³úðáÿpàÀÑŽç[WmÛL$Ñ[¢­ÉÅ›?7WÞ}-^lã+O¬aúÞ ·ˆ×öh*¥óåÌÑ£m_¸´Î={ÞDœ3gÎÿW˜nŸ¤  &wJ˜ )rnôêUž ±• BXE@@@îĉã·lÙrúôiC"PP¨ÛHmãLdöl¶™vîÔ”Êo\ʇ†’K–P¬ªj´’ä‰ß¦XÚz!¢G›]äàˆŸ˜V<1³*Ø_éBáâ§ q³íù{OZ#I)Ü¢÷„ø#HOl]çý÷™Àš¿³Z—·$ó˜Ûº˜Ë]í¥š2$íæª·lIml½&Ù;<›¡ütùxU*?I¡ø]lmï´~½ÈI“[¯‰œ#)ß8¶ÿΦN®tŒW)Þz++}|>Ö>ôÐC§ããããsEQº)–ü·¸ŠŽkôz«ãsÖ³û¹Â°ÝÃå<}úã†eËZ ð«EÀÛ €+C›¸J9šãÆþÿê«)¦µï½X••~ÂÅw¯ª²Á WÑG4 î ‡¨P–ÚìØXºá x+áÎQpÃãUIþ±±Àm]ºEø¹¼ë¹÷ô•Nl¥úî»—6¶^“ßßÝ&®X³_$I“‰Ò£RôósíG¡x‚k×s³ù#ÉË—e ‰yg‘âãõöö##/ü׸RmÜ8Í–“Ó-!??_EQøú¸wÓÂx7i/Y­V*rrr|~y÷ì…is¾ õê<ÇÁ¦~ÛmÌž uæÚ—ø®hÑ^Ú±HJ‚8n\\EΟ?Ç›¡ÅG\Ê×Öß}ŶmüãliÌ}xìDï.îÞ >Çv·{÷±øè£Í˜1=ÜÛëä;ÞαzWáå|­" 7E¹Ý£=ùl·€Ë÷JÐxÄæ {R©`tnî/ÇC‚.«©õÿËk„*¥Ò«Ség73î&sw[,g×y5ìó¦ìà{Ç/xõÕ»°eËG˜8QÖÖ7@ƒ0·©âH^,Þùú”bàÀ­çÎ}ª”$/·ùtì¨ÀÞ½?ªFNÄ… \ž Âo$½Ú£¾üçíFÐI ¯½†NÓ¦½dܺUÓmëÖ­„zåîø¬Ï•2ï—‚þ¿¸š2¹k×"Ô×·e*+ÿ#ó¿‘QÎ0N’\puß}÷aÛ¶ ªŸ~j=ÕPKÀ\ý¤O·ÕxÍš ê ·dÒ79p•œ\Ї^Ê«û¼ëX½ÕM_áüŸ÷üæÕ½'´  Àõ.¦äêº`4jw\6›¿¿'?ÂtiH/¸á Þ]«D–ÿ'Æ Wa‘ã5e‡Õ9G¿ï©ë’å/ò»¿ýfÀß/ÇŠóPV&_ ^ž•ÿQËÐéŠ#G`>J³n¸’¤j,^×(‰V7#¹ûî#Øì‚tý?Í»‘ÿW=äÁØŒäÔ17„+f— ã¨Q£h'C(.¾^]hÆ}í¾ƒÑþu†f³wßý pPÏÞ.eGX/œÏ¢V[ÖFªúâ­pÃ%sÉÆLs-+I€¦`î­pï¬Ó&$Ð#®úõ‹e¿^Øx¤‹ ®2Ódú"ƒ|å•?©TªùÁ““]ÛMð•ùÿH9B*•¼Ž  ?P¥R1-­%â›É$J*ÕõéØí9,è,}4jÑ]Žìþ¯pj…ZвæäùçKrù•³%N“·²N›[WgÊz¹ 5 égñÓxrÿpÍ*•(Iy±õMµbߘ®­ŽKm«Þz«|ã'ŠVfÏ(ž½_”)´N¿ý5fe¹îs’SÝ€ºë}o‹¬‡«skß` Ùpâ<µ-G“3?£H— µÙö²¯¼Â$y0z=µ‚ÃŤbª T‚S­Û>œ$EZOw;–t í²ž¾¾cùÕ;ßÓ|TàžÀ©#”¶ððŽVÔh‚Ñv4ùN\õ“ÙÙÙÖ_Œ{z+R¡XYrÎCØ\2?ŸÔh;­TàjÕ~Ô´Ìãÿ‡+ƒù……žz"³O—Ý®Á"…È·¼¡Á~¢QWåY‘ÞVþ–²ÐgMT/þ5B´èBj~úÞ~j4®´Q£nr'¤,ús”E§3Sê=´¯)7.¸â©!EÍ?T)$„Ù-e?O@_ ôRZ\—’ëI±bÓ&ºá*"â2½½½Xs¤·®R´—\Ö3)IÏgz¶8 öä‰ïÛ$Éj%I£‘ìÚõzëTIgý¤µ¡¾ÖF’I‡ÏÞ®Aä ž]ôždЛÀÜÿ7®dÚ¢ª=™ \¯àI`Þ)oµƒ*¦%Ÿì›üþûÖzœ‡öšaS«ÌíN®4[– óîéáÖ†B±ýº|PçÙ:ý²i=‡7égÌ 7mjQv—œË÷¨Gð÷·Zÿ%I¢¼›¼¸2‘ZÙ º4N´Œ/º°•ÄbIb ;_ÞB-µ îè‚ШwÔ…Öc/)!Y½Ï£â6؈Ó:¼H —]º4YæÏŸï¶C?~ýu×wÙ2ºÑgþFœ4ôµvßJ%ò\jšG=Š=½ùæÚÊÅ3¹öüÿÀ•(²öz}íÜtʦöjWcÈÌÈ%Y›ÝÚxðA·À¾­²k,OÜ´i=Ãà õÀ^M8zwíáWgϤð¶ÛâZµk“A€ï>®hÈ=áx7Å,W*YdB½ÿŸ^m^ßD?Í×2I25•n¸7îa¾·ìf¸:sº¦_~IöïOúû]±,\¸Ðm‡¼aC{‚é7ºñGî&I~ú†¶ÌX{ IDATÝ÷£PX9ê¦mè}í¹ûÿW²`»üUòŸ2Î}G´;¸oƒ¯íS^ q¦#ö£ »"²ã}‡Àk×àáqüô»gßäaSù×–×<Ž×l¦äãs=á6Ñáæäïïï°ôõu®SJ` A`垎n¸J;¶Cg6ÛØ¹sªS»³ñýЯS§wÌ<¼qãÆ´—_~9~úôéqwÝu—vùâYûwmYw௿þÒîÝ»7nÕªUñO>ñøÉÜ=·±˜jsíóEŠ^^tàjòä)|놫ÆC‘4È¿þjLÙ*_n äÂ4}ÿý׳¬ÕÓoö›ÿÜËeó¯/Ø¢:ų_÷]Û­%çþ‚ÿ®d{i¿aA'O¢n)PaµÁÍÌÿ÷CôyfÞLêsY×=¤Î¿_7™6G’$f+¤ovIŠ¿R€òꣾ‚ÐGŒŠø ®ªþ>?“©³³k‰JyÍRœuHmªø¿®4j ¼È-¤z[*jŒêþýŸ/\XQtW^Z,±ªÚÚZLŸ>ÉÉrüM C³åSY0e  ©v1&ýÇ¥ o¯®’l¿5À2ø´áã­ [·îM_³f>33³£NçÓ58øJ§¼D%ZõTV|/@—˜äßÁô¡¸2ݪ *Sbj˜ÆbI“€!CtMÏ®¶õÜ#€L¥@Õjš.æ]Òx)åË¢FSÌ‚ªÉàã?~нQ±¡Õ þ®Ðéa4¦ÀXü³ÎP‘ìßÁ'@*pY×K*2ߥè>ìYÌ|°Ÿïˆñ:ñÝ7òëvèèWWâ‚+ou­åŽñ=ÕÓFk€¼ù€d¼#ß@ص:X}èÄ[nG\õí;ßráB‚ªW¯^ÈÌÌD@€¬Ÿ÷ñiÁÐ ÀQñã¾¼û¸¶U+á’Z­Dqñp<ôP¢¸ÿ¸oï7fÎ|(ý™gžÑ6¬£ÑèßµK—úN¢Ø¯¸6| ßû'j½‚ l¸9+B`ëV¤ºÿJo²£¿¿ß¹aÆU?óÌ3~Ï??S÷ÕW^ƽÐQ«Ý¯€kÞ>h34üÅÛ€'Ÿ”E@K’ÝöÏž=‹ÈÈHœ9sÑÑш‹+“ä9¶N "Ð[˜T5¸l„ؾ@·N²;W“áO‚» K˜`ª¬§E%¼½ÍèÚµ’”Ø$™¾²]¾V,ТߨØH¼¹(âëL •:Z%›ÅU5¢øJeÓ±ŒjÿÔ\tìß½ÕnWLð.&%iÝ:jÝ%àñ õÐbå›Ò<Õ_ç&E[eý?à̉šFWëî hzI@CB‚EÓ¥ß=Ö·¿{{¼¤Ñh8t苌ˆp·³Züx¡¾¬(Ûégjé8Ð]7wÛm2}xæ¦[\úé>F@///Î;·8=nÍÁgïS‡ÌÕÜæÖ8€ôò¢¥±‘ò3ç8{‹¦C+—VP?þH­ãógÓ鬧'ŸvÛð¶mÛVb±È¦AÚß>wˬ‰“(ëüLnãŒt 1yébž¡gKhÀyCë²wÜqšçÏѨ¯cÒæÛÌ’Váq§Ö°¡¾Æsd,’†Æ«¢)ýî†vcmjÁu¯ÀRú‡Óÿþ%®Jÿ/ü®lW–c^ÌÖ~Ö踥±‘ÒÉ“zS|ü%)+«’W¯^¾ÝÛsñ*²r›D’Ç“‘‘î;Š~ÝÖé‡ èn55•¹pËãir”Þ^Þ<þÕP—~’_”HR¯×ó믿.~ú¡Øƒ–‹ß'éÐUÎkßuX,@@.îXéD]te­–$32èÀðŒÖŽK? tÚoTÇÓ“þó /”øúÊÎì¯<8Ée,Ú»h±®Îæö|Úe‡êc(.ʵD†_tÕÌÔ«¦F ¾÷Ìž˜r©W²SX¨ÇÈX¨s·÷»!\™²ç[˜Òí_ã ¼¼:…$++™Þª ˆ¹€3Æ;-vÙ§dÕΦödÏ»¿EAðòx{úÃ?H¤HjUmÖ?´f8U*}};r„_9rd™Õ×÷œ©CÀYÃÊ%ëøÌ}~ ªb”Þ<ø÷úÖ“V(äØžf“™Úß>eåފdžuÁ÷ß_ÛP[[+K›ìÛµÔ‚¹›P¢P BnÓpÁÞÎÔ©”ÃÅ«õ{ÐÌ!uõ´ãÇÑ¥$IËÕ*&ú] |æ^Y›_|ñ­ºÄÃi¤<ðqOF„Žjÿ³·ï‹Ÿ9媼¯O¢îìóüàùÕ|áéý[o5>ü0Ñš•%¸­½VÈó¿û´¹® *%øÌ¢£V]»\.mkC8xÈý¢ {åA§ÿýK\½öøØ=7Œ+–}B«ÕóíéÀ%…¢…¡Âc.~ƒ²à!×­“^ááe¦¨Îņ§f¼K]Ѥî,)µ˜®-骮ähd]¨öRóµ‡&ñêîN”âL;ywÜñhƒB¡°à¡Ï›uEiýKH±‚$}|œud‡Ï õZb$‡W“dDO·”;_ €¡¨Òýƒ ²üQK’¢(šwìø»nÄ™¦¼hïÝLM?ˆßïùX¨T<墼;üúy?.™ý&û÷øN³Î Í5ÍB Ìøé:ëšHJVfe¦yŒZÕ¥c'ñü¯7øŽµ`Ui¢ŽeN€Äœð É’<Ái@¶¯#'BHk³íhÖ”ÜìÉÝ&8uêKFÇW7Ýs={þìõInõ{v°èϵ˜@»Þ{w»tìFo/‹›娱–É^*«ãØ›7ð£¬Ôëî “B!Ð~†fˆäˆ{¨PP”D«‹CŠƒ×-ÊLµšf’“;eØË\ƒ öñ{yu²ªTGøÌÂD8GèþÅÜzÜ!Á›¥©ŒÔç“é£TEÔ‚ÜáË‹g\ôh’$2}c‡ë®éÖwäþAà–-G\ôhf“™6¾á÷{ôK¹­`Y`2s²ößàªöO0ÀGþ_M\Ûþ°­süN÷ %Ÿ}öC!úc;mÔp«_\˜kù`‘oK™2giÈgiA9½Õî¸nu¼¿à ®\0/‰*Õ¼»–ÚN¡õ²§e“¤ 8ÇÓE•Rh¥¤º:ºà 0›H•{áÀ3F^°¿¶–Ö)S¬?æG–—·ØyÏŸ/¹áJ¥¬´u S±w$˜òhuÚé/þÆaƒzºèÑ<¼ª5=7×Ñçœ9ϹèÑÔ^jf­ïsÃï÷âþÙLÇZ' Ì+gý‚°w/‚;t@ ^nw"ƒrÁ'W½¼*Yß`ŽxCOÏLÄniËÛ'0Ìñ·O(Ö­ûT#4s¬X{or÷9sJ/ÝqÑݺ8XÃÃÑšzRôí:½¥Mo`ÖD }Q†á}W¨”"Ûéß’øè£¯úˆ¶Öê‚V¬P!:Zi¾z2’ht N‰Aþ¾8X$ *%E•ýg Q tÐÃIÑ3p ÊPw–kމ‡¢™ù~N†ÕZj°Ù¦`pl„îâÅ<Û’%+ôòz$¸øÒu‰h²–ää+½ê·§úM©°3.À™|î˜:ÞZW×â6—}l¥)6ºmºpøìµHbþüE~µµ-´ØÉÛ>EŸÈë9Nº¦×òk€zðéÞžEzl‚Óãvq5íU”45w¿ø“ÊÆÕøó™Ö¢j©­5bÅŠg§+豪œrg¢Ù±˜999:t¨øç '×TÉTïÒ‡£[X 6|sÊ WC†xY ~üñ׆ªê2kçcl¶ R]1ÓÀGíDRYûÏ Hºój5œp(6J‰pà þC‹kjà‚+ §ì–a8×)-?(s•?lߎŒŽ-†£GU8‘²[f{üñezI’ '\p¥ö*±èÑGùà­6\øÝP9IߎC‘’tÄÚÇΨàþ‰‚iêÍ×YOèþ–ƒÞü“O¾öóñiñó^þÐX î•ßN-ɵªA©Tª` ïÚ…+ÕÊ•+O8sA}ò¡©qóæ¿aû¹pA1"hÂíwô³×ôît«Ÿöïñ˜ØîUJ k_Ñcö»⥗v GݱW@?¯ ijC„âˆGÞ¥ ¢d¥PRx{{c÷î݋覺‚ÎŽë¾Àooß‚Þ]óá¸Åx>¿·Ù TW—©~xŽ?ááÝ‚òò€k×à…¡õõÈó÷ k„ù’£½ˆ4vVGÀ°a(ôB‡é¨Þ3–~‹r x ]à»ïpuG\~¡G3q ¸µø£?ši„Μ¹ê¿xq V¯þP5sæ­xâ‰QVtî\‰§]j|ëõ¨@¥Õd¾ ´ú•L@a9`²è|î½÷^;v jµÃsÔžT«öôÓ¡™jfñ6[ æÌùG¾}£þl»r«t$/Î8ÞÛ§®D)Ÿž3bĈÆÁUÿþýƒž|ra?@ŽÐ³ýP¹ßÀHàíùí÷­lð»ò4È`öì/a³]t ðîQÆcñ~>f3Я_7u\\5BBB‚Àl–û³ÙB}KC༪z]cT'§öÌ <S¹y³f'³`¯}'~ßLĬ.ïˆ ®Išk/¹2õæVý¦\:~u>ˆþ€ºY°‡ûK’¿ü²Zµwï¯xôÑoLpÞêƒý÷jÔ">_ w÷…/ào…ÆçÔ©SˆŒŒ„N§Ãª×†«Ï|€¨×á;À«èh^xa;>þx ü}üðҜ̶뺵µ½{Îp¼·FïQOÎ~0gÀ€7„+Ài«¨Pþ ˜ )¤±ÔU[M÷ⳞٿÞðÖ2Ø#"³±Ñ]5"I"³7G¹ûÐ5çmïÊc\»v­kÅ6ޱOÝÓ2/?¿NüñÇ¿xpÝ­\öÄ$vŽ'~¸Îyk¾d Sš½ŽÐ²o¨—¸–™™L$IŠO„fm~ §496Åäë¯óI‰WÖ¦ÚÛ±‡-À9ÀeëòwÞɬ!ÉšŠ Ôn¾}Õ™ ,¡KTóŒç¸ù-×ãù3Ï<#—OŽhûظf€ÕÏÏÏíh/<{¶‚'výzãG…½‘ìÙÙ­-  éFqµiÓ&7]Œ— <ñÝZÙ>++ë*!ÀüÀ{ðÍlÎy{†’$oºé&—zmc¯¬sŒ]§#¿ùf-E‘Mgä o¼A\«Sš½Zì-µÙ -aaÌË M@ojö#‹çç"eÄdz_2||€´h:¸b¼ÒF±1'2²µ×Â}5Ø1|þpÛ{œ9sžËÓÖ¶uœœçòËÍÍ%Š'ÜÍ¥¹`™G³¢ÆF‰ááùèíãnø}2s,)¹ßiÍŸÿÜ ãJh.Ò®÷5kbóWé—‡±×ºAáë ¨ „S|(95Õ—£úè}tX_{BxÞû“p˃ëpÿý}pæ P\ œ7öêŸaÃú@ÍHÞ<££NÁ»›‘Ñ,pÙŽ'ñí·ß ¢(Áß¿¹;Cpº¯ü.Òîàþwµ—ÇŽ¶Œ?^™«®Ñ€gÖÞdÚñgx‘Ͷßq1Þ§.]¸€(.‹Gùêqµ¨ï< AJ¥RqóÍcòo3ï|FÁŸ¡……ÅÞuuuÞAK*>ÿbÆŒ ˆ¨««3^0ÝŸ]7÷ÉÛ >TVZsKÓ^í}“ê[µ¿!I€òVàö):¨P¨€D_ùHä”tF`ØByÇæœÖÿ¼OÄ<ãôZåt¹¡3¾û§¾ü9V«þþ<Îxù²Æ¸ }û>ŽŸ_1b|ïßÚ{•È)Õg¬ ó).¹äáé€: ×>ÇëâꦛFÕå她á*Ð8ö%ô7÷E»¸Š¿¶‹ÞŠC~þ.C!›Ë¤"@/ðÑSÀÒYpÕUôâc??Ù'±åçÐ;¸ð»#­=uœ ØÑfÁ›o¾aùá‡ïÕÌò3u$0,Þt0®WÑ]w9\ä_úF}» ñKga¼"ê1öj(ŠŠ””Óù[Ö9?ýáa¡={Æx‡„„x¯þ¶¡bë¶×ÐÔ”bîÛ§—iH¯)u‡’· HOO ôu5û¡”Þ*Üœq>ýÇ)¨k19€Ð܇§ÖõþñE¨|R€u¬ k׬n|éå×m6 †C² Ç%)ýᙀOŒË¿·ÿ±s"Ak\!`ó-8ÐÔääÀXTŸÎ €M›.À§t!½ýD{¯ð¿ÙˆØdîtf))ucÇÝ®øêp`‹ß^Kξӡ¬ó@¥ïH¢Í"1ûn2^hS 7ý(½÷ìRŽ+z¤2 «æW_i)Iuµ…[éWböΧ ?/¢vëüzåw ×›íåCCk¹hÑ)½¹¡„,û„Ôºöµ ô÷æås;›G)‘‰þŽç¶ã‚ìl 8ÅÞæàÁ,²Ï©4w_úŠ%+w–••¥I’ÔDÉlf¼êÒ÷/"€7buh(ëD‘U$É´¾IçE)£ MQQÝN~¼üÃýzwÍ€ãK#ÕÚû{÷]&²jo¦ó—¼é`ËéÛ»Òdh µ®×âE[ÀqÁÈŽÝyóí ýúééíMªT”bcÍú[Ç/elŸIÝD4…*$…B!yyùrâÄì×Oïñ(•5\úðË<µ6¬MÁŠ=à€µÂƒŸ=+ øÚÃUYYw.}{V* ø”®óuo< }»âm*IôL½tžÀ0`T'/ËÖUcÅ_ßm\ûò~öÌ$>÷ðóôñ©0·”/¤Bñ´¾G„šËçR\«>O ¦ÉÐÀû§FÊ»…@)Á)`s‚J¤µ.;:š)-mfÙçtï­ÝÒW¾ôñή]£ÒAhR{Ál=†K,x6…¤XWÇ…‚Õ@M ¨À¼ßÄ´~¥$’$5•––\±øõ—.žÏpìPÖ¶ô·2qÆ8¸àÊ|LMS³Î¥Ü ô÷vlœÚ“¬?Á‹.óÅç®6ÄÆÊ&"^^”:v,Ô»êµÒ©ÝŸÂä£Ù¦³™‰IÉb!¿ý–ŒõLSjãª7¾eåÁámS&‡“%MIc³‘]»önW$ à®,ÌÞˆbêhÓé$‰ ÎH’LKRTDšL––3“±ŒÌ_HžH¦t•sîõ¬ÚCɦûõ[ Úƒœ´•W¬¨ib«d4Úèë;’@ž[ù @£­¶,S¾šÏœ@ž$ã½xaK‹3vP²: =ëv—ù­ZŒ$@eþÖ4½ò “öîÝ›xé©vî\ž&©cÅæSöz£ú#^¶™‘Çpèµ,ûÔ±ÐÝÂqв´ŽY#IRcqqqÊŒ32’ÔÀ@6ýù'ãHŠLŽp±À_ó’ó‘Ì‹L½™Yƒ˜¶F¾õ]4]‰7~ÐãT{¸ù3‡LMm¢RÙâ çNôó»xÝÈÞ·ÜBnÞœgdó™‘ýP¿|¸|¸ì~pÒP©hßZ\ν¯´‡«wß]Ù*¢º@™F©'…ÃD(* üéUðìFðÒ9ŸXÛ¥þã—G1$H#nÚtA k{^Ù»÷š&Fã*8•ž<©gß¾žÌ ªlCcB8°˜ð-Øð7h9 ÖîæF3Я…ý¸úøp×ù¾œdµÒzçÔ4Ÿ'͘1#³¸¸8Åb¡^BÛNÐÍ›®Ø˜ÿÒKŒoÇíÚ׿9ý€¥'F£¢˜TÕBctttÊÞ½{3{ô`*ÐÐÜ@¼ºÛÕ³#{çXÇÏÀb¶ðÔ‘¬×&ÓGÈ·¾WÖ’¢¿N¤ÚËêáæ÷úû¢ÙìzDÌÍ­bXXe;ã³OŸ‡L’$±¨ð<ËrwÖ³ìyCrù²Nëñèé)½ÿþÖvqe³±ÀÓ©^J”µ)I¯íÌE¯]#¿ù†7Žôõm´ Hì۷̦ÝG»C»§TZZJ•J%i4O›¯¿äîÝ®uï¼ó“f½ì±|XGÕª¿Ü"õuœ=uŒãù‚¹ÌUU$kÓù+–þ ìàœ3gaòþ/‡ìïŒæÝÕØóöú+W2‘/ÄÛëýü*NñZûó¤–É]< Z ÙкºfÛ·š¿²¶~ÞMüê98pż'ONœHmËóg´å;_}œvÌgÁ|ï¬Ì½söÍž=7Õ>Vñ8ª[Ö[2ÒŽqݺ³œ6î´WwïJ]cµŠ©ÇsÛÄ ëçî¾û³–ß™ÑF?¿œvqÜÓÌÌÌlS>æ”òµ§ã¥‘#,??ÙK¡ É›n"_}•¬¨ ‹Š®µ‹«kט àά¾ÝÜæÑãìïg6o¦ÎY˜µ•»GÖób³S{ë´|ùr@úö½Üt½v ²¾9€_bb íÆrnðXçå§HÒf5sæm©öRÓÛ«Å‚_­&KJXÌ‚çã©••ÉéëPعsçk/^”M³Ñ­lH{K޽®FC#+¶8öÅsH>L°?ÏÏg2Sº¦ÙŸ‡úft|Åêêx–Ùwi©K¶¡£££S¯^½ZE­²‚Z°zjûvC2°¤œÖB"EËóvSí%³) Xìñ Ù½;in¶'5ÈîÝÇ6¯ÙŠv¾¨ä A×LvjŸ>úÈM€(JNúz©n„”R"ð«.:22»-\%íùÏ™ØØU:Waæ9ù]äØÝ= ¶””Æn½•×Å• H2D¶©ìÑc¼ƒÒŠ”@žêx{=Ü ï`•¼’·‡f“ÙWJ¥]ºŒ+þz ¸âéØÂ+W®\ëÞ½{*àdt{åGíñãÌiißh|è6'ÁUôRÒŠLhyÞ;ùÒN8p¥¯¯qÁ|ö¯› S{”“dqqqjDDD•í*¨y¢C- yÉË—_rÁ• ˆôöï»­ mV4SoÓ·“‹ì'&%]$IΛÝ.®€c¯ 1cƸɛկw–ÅÝ®92O7qÔè6qÅKŸ'ÕÖ2 €¯¾´‡ójs^öÔ¬+]ºxÚš¶Ýy†6ÙeðMMM v€18¸§lt Šáœ_|Q®õ@+0¦¼Cp-ß±c EQä-Ç:Ž7Cz´9—‰ŠbI+Me,~+á‹å vOÐîæ¯¼jŸwçš4@¬š%Sº¤ŒŽ@ª¬CjÌiäbcéÇ'¨?|'?‡áeŸ>,³]Þà¸ÅªÜcAª´i4óO|¾|áî¾Ý$: @çl KŸÌs¸õœ<™dññ õèããCÆÇ»‚fóæ’æ5+¼.Œ¿¿Y>wÊ™3gÆ-Y²4nõ»‹÷DuízEî».»KV65ñ¼=jµöhW·g¦€<}ZJؽ{wœB¡¥ÉÎcÕhHG€.ÉFÚ¸q£+‰§BANJ¦§Ë &ù™ÙL?z„y§3iÐ9zôW|þœÞ»Zª­u¿š?¾cÛcñ”¿ÿ>ž¹¹Ù†¶pEÉ&þñÇ¿kS¡°:èˆpÆ n;€ÌÌJê•]\ÍœùzC}½Ä¬Œ&Ç]bfZ-FrÏyÍ[—¿ÿþù444ÓŒ¬Y“í†+ $[¡Pˆ{öì‰[±Â~\,.B²/nw2Ϩø=îàAf k€?Ò°G÷®å?½÷Üî%K–hgΜ÷î²)ýsã={öÄ­^ý]Ü÷+ŸÝs©¬ì I3(¯üÏÛ£VQ 2ÿ©ÔC‡˜íí͹ïá ÷Ýw_œ(Šâ·ßÒW*••±±Sh߉víÈÕ«[¸DÊA™c)õìÍ)Ãc94¦/5j.]z⺸êtN)€|¬jhrx²WŠx¢R+¦ðõeoî7Íï˜   xÏ¡C  NYÉš¿²˜ó@Ü/NÙ••eL¬¬dI3‹^‰§Ö5jÒóON䨱cimŽsb1[˜¾±m¿Ý_…øË/¿Èç5ÑHÉRGÚš]C­uò{Ásu,û„¼òYŸàpü=z´58(σãwÛ9<\g½x±å"çë—œw—áœãh0ƒ__7Ö:w‰øª¦W¯^6QYS]ÅG£vç2&oŸÍsqoÔ³z)ÙhÔ™sª€§Î1çTmVÓÒRÅûniWñ;·8ÆnµZÌçh]N¨?—TWdž/¾`ÒK/µÇ~Y°›W~ÒÒ|åT]ëÁyN1ÉQP±ý}¿c¯.}cF£) @=µ™333)Q:'—“¤‰ƒ}¸ºp¶Ú+AÌ)ÜŠÆ+DJ¶+F£±ð½åïÕ•n>FJMo¿í¬›kÔŠÊ»F#kÇJÄÙ8—F38è”Àüù3pÛ2X__O•Ê‹€|#ä‹¶ývs³ÓÄ#FH¨QƒÁþý4ͪ&Ù$è·wƒêþ^;‰¿|2Ï=2˜þ~j* Z£»Wþ+\…Vy3#÷ w\Õrð(ÂIšZ÷Ô¢¨äéáqóæ¹Z*ûúvdddõ ƒP¡ ˜þ~Ý«êÍG=/PæÏàÍ}Ý%{é…c $i93»MƇ®ac€/¼°R'©/²æOW{¶f–N©TÚ Rxöî8û³5/"UžN±ëµÒÒ˜°}ûötooŸb€ÖçŸg²TwâlK7ÇÙçVsélµ¬Ç`ÕxO?f×Xðûq‡Pñó: $Ä{yÑl0˜òî¿ÿþ à«x€ fCI±9Ù®·£\0 Ú˜˜˜d›Íf£åjµ‚ËÜþ `x§0àG}SO’q¿|Ø&ø¾Y¨ÀØÝ]ÌuH’çæmÐ11Ò¹ù¦o>ÞádÕ~Žˆ0Xrr \ºùý÷ߥָj=½ž4èß7‘¯=¿¥.cßÓz[\Ô7§‡’§ZwÅ»oë×€çvkWÉq2…ö¼y‹uöjõþVåd–Îf³ÙbbbR|âÄ€sáéÔ5k˜Ò¢×‘0{öìtƒÁT Ð |0ÄRz±–×ö…{\ÓüÍj«=¾¤RŸwºY85°ÝwB-8jÐl®_OFEµ¯äà« ×Ü|å***\pe×´Nf3¹p¡­]\)•”x€œwÇÌöç¯"¯ítôQ|>Þa‡×=2ˆº£q•¿gËÊê©Px;Ž>³&À W4¤Ü}÷Ýq8s<2]Ÿåž¸|™o½Upã‹»(êòôz:påã=ù¸ãæÒR™>b€œbÒwˆçµ­q*/‹´/ÍFµ Oö)[ð˜íxËš5½ºàÒ¶/Ü8*¿x®ÕéË|5ƒ$<˜øáB¸àŠ *‘†7“Å"ZB‚»±bO˜Ç5­?i½TV"–lœ8*Úñ»=»±}LQ nß”JYTÖ.®”ÊœmÛ’W­q¥úùçŸÓt:XYYikjj’~>inÐ8Åÿ|VSUUå•ZN‹ùù·†t ï#†uZ­¯¬»5ðÊ$ ð÷'bbü­;sæ-ÿðp?Ìxâ,NnÜŽQ½öµnÊ‘TJ`ë;Àm/‰ÙÿGÚu‡Eu|í÷neéE¤ (¢ h°wcÔØ»‰ÑØK4¶D£©Æc‰¦Ø5Æ^ Mdwé]z/Ò{]–ݽçûc©Ššü¾ó<óÀîÎ;sæ½sgNìû\ãܾPÏÒRT»eËOÅ`Æ*‘¾¡ Í…½†]¿lCq3MÓÒbo?Ïž#²EcÆ(X>8ëÍAròvSÝøÓúÛ¦¡ïÂäÀÀp`D´ˆ;qSx}]ÄôB—à³ÏÒÔŠô/Œ²dD;·o?ÅywNVä½™éW%fF½¬fò¹©œ˜é»Y35Õ€Ù³Ǥ¯«AÉ¥qf\8Lžü”“œœ,·®xÔqáì#„•T;ó"¼½íÙcfV}<Ùð4ÅÇî^ƒÂ”?t¨ÄR[ÛØ ¼ü•|ÉÂÇAÇÊð:Ýö(Wmæ«Zb¨YàŸs?à§Sb ÕhH|ë\´ÒðWF–!7·;'4´Jææ– › Ü\1°°¨Á¤‰Mõ;6éhõpÔïª333üôÓÏÙ—ÂóËêvÁÓÊ¥K—¾+¸x‘kôõ—ùê_ ü¥Ýõóò4yšôô€!C€™3![¸º ¥8ð>?sÇ„¿}¤R–À`®žýê–xï k1öK-­§íøÙpÕÇÐcMË~ÔëÕµîÅ3öÔ)ÏïBSnèE{þø¥â§O M‡‡Aöl¨½FJn€åm©SަÛnÊôxª¯¶Ó‰¡á|“š lT çŽØ$®÷:©_û"7Õçö _ÚM¬–ýö£˜aÿ)ˆ6d==32½TËÕèé£W|V_ÃìeÂmqtwñkªY;ã`Xæ0sÝsŽ£££|îØüöH–›Âªdæ""#cÛ§×î*èzgŒgÃúk=ßF|X65Á@W—#Ÿ=íŽAwño°3£v´’úžå÷µ¶Ñ|ÁpñóÞ•˜8ï'\ÿ`ûö©h¥¸Š­Xè:Ýw¯FY™ pºÀCp¤@À{^ocî«^Pß%®`éÒϲ/…k—;Õ  Æ¸k…õõõœÒÒRžL&ãâµ·f® êJÀ©M¾ö¿WWÃpeIåÝ·}ïJžy $2¤”å±*j¨ÊkÌÏ'ª­%"RU>UÕF®«Ž¿·ºQ|óI}£ˆË}þÆ*ÿÝwHDJ"¢âââr¡pU'¹VN¶2”r÷RD¿àk‡¦{&$È$D$£˜Qƒ~Pp8½2€ÔàǽæÏŸ ¯Å÷Ô)’´d®¢ŽŠœ~ýèe'%1ÈP €¯øúu™»»{€‹‹×ñã$Q5¼Ê –Äß¹B ::ŸIÏ~;ýñÑ r´EÃ|P›¦)3SjiiÙÀR 2C_ç±c*²´K6æ#Õc ªý ¯Q½¶¤‘Eô%À…t´ ÕÈÖ’Glc>½îzÖUɾmH<®ÆehãÆ]m°þ©TTÖŠ«U«Žç½ÿŠwÓºu×™èSömë÷ïÂ{«’“¸¥^ãÈ‘‹hàÀ1¤£#¢o7¹¨^œs©¾õãˆÆm‹&ÐÇqôÑG]¹g @æææåW®4u’kñ¸6¡?¬@`Ê5?;ïê©£3@@òWËJ*Päæª3(xàÀ½^îîîŸ^ë l“´d®"ª “ ”¤¼:°¦ewÕ\0e ‰ut–ûÌŸ??`êÔh/`—¤§· Wôê€T¡ Å­[réÓsSÖî ’';Fp%ô-,,¬ "R(HÑ»7½+.÷+ ”Rè‹uäóµá/îÖ§$F“\ÞL>>9tóf U–Õ©‰ˆ”²l²2eÞt=ë¢T{ÛRA¾æpõÙggÿ_k ºzõzYûz5%¡Óï­`aYªìÓ‡òÛ¸«SÔSCÐò) ÏChˆº  .øû—ŸÅ·ÝøæÍœ60f¿¢Ü{}Þ;øûÇÇ‘÷з³ë•½=ÑëiÙ¶mû¶†Ï7Sµxmrž=Ó„æÖh@yJ@‘Ûú›‘Õ°,Õçå啈D ƒV´8;=°ÕH×ÄP'íáÇeO #Ç;CDH¢´ÀÛ^$íú@UèäD9åHb•éj/€èçŸIJÙßHƒÎð£æÎ +ò‰'±ÆÓAGk™X3Diir©µµu `YŠ6[[*$¢ÆÔÔÔ` /Û½Z‹™5Èd*Õþýg;È9ø  s¢;Ëdš8øI/úW‹šŽÈ©míì\»\\š›jÕ”¹ƒ(¢¿ÆÏ/È„(b€œŠ/ª©¹SNº|™Ú²•;ƶE‰Q*•ü”¤÷×SMÐøŠB÷QÆV¢š 7îÙJ66í²ßžf–”q³×{Ç%½¾ˆ&þ˜L :ñÆØ¸‚ÆŒYÑ ·÷îyÕTT’ÃQ¼+`º¥§§‡(•¤(·ý·ª€©·¶¶.qs“·ÈÇÊ+í{X¶éÊê*ÓæÎPécIÕ‰æJ´äÃ>^$QÞq‰&KUbNô’tùL¾—¦­ï¥G6@Ú5&êáÇSFêh U£]2n^“‰9ªˆD¢¾Ò¼¼¼’ÂBê„+ù ‚‰ˆ:{9h Ÿ_Ùh©¦O_Ù&—mhh¦±cˆa*;Õío“Eßm  «ãþÕ¢–ßÏôÚµ¬.× ‘ê“_€’ÿ•¸ƒ*’þáÈÿ>2Zݯ·I§º††;ëÚûÃÊ—œ7¶½{)¨ó 'Àe¬ö}‘HNl¬ôÞH¥URÒÙ<ª¶²†$—¾ õ‹·ì¢\h߆©¤#ꬦïXZ3<577“‘‘‘Bs¯y±@g³##ªñðxÙÞŸI‰ÐCBj$ºººÉšDêr€hÈÊ µ\îsûKŸ=»+½›š(‹uRÔ/ 6ÐÙä[TÄFRÔ éÀ~f¡Îûy>Šó/I<ôýJH-¡\.©Ò£CýH 6âÒ~¯,-‚¼–ò‘?ÀQªbÍEÕD$—ÉdIzzûÛd&ÆÆT]YImæ³g/‹@'ksMßÂBŠ$"ª¨¨hâñx¤q<÷|+ߌ Iòðúz‰fgÜÿZ5Œx\«NsÈåZ¾±°D=tm ‡}+&$\M„åjMÈbŸö~øù©TÄú\f Ÿ¼g·õr"‘²âÔŽY§>èèÓŸÛÆw«PôÏ­C¤+z{NÒ‰ÒÖÖ&µZ­ "òð 7pTÕÌ™3¯M+áïO‰Ð FIêëë“››©™Ã¡rÍ÷Q"!ä§œêcdô‹7 Ì’y#…$õ™ßkübÆ"òåHK Bwíˆós8ÛÓb³ zu@úÇ ¨T#íýH –¢‡¥§¤Ð«±cнž?»î¯V“ŠËmMž\Y @®££“ôÃudq•Õ€ñËöM‡ç¸ÔjÀ2q8œ¦ÆÆFR(Tdfövw<-A%íY7ž(ïW¢ðÞ]ÎcÄý)?¯sT£ÂBÕ‹Ú— Рzwâª2À…v­i5ÔžúZ34ÏsËÂV_OÉsô±¤#J·¾ï÷¯„$Õ{]±xd›A^Ïž#ßúÆ-ÉÉj–Ü^BÒ¿GªBÇÊ)m£ÆžˆúöÐØŸ¿•‘Q~>©ïܹ“Û™1cR€üMX u9úàØ Ïœ;(¬ôDõµ}ˆ ,ßÅ·~]à&>…¤#¤-\(ó†Ø_=)ШK ©Vžvô9‰¡45ÖJعé·GŸÎúTKkß //SŠkÀâ‰þK$þ¾¿=;øÓIOyѣؚ'¨s´qðØ:##ª!¢†;¾s8¤vv¦¬ü´d ÅŽSˆeäßÎp‹Ž¦Àôt QV…ÇQ¨u8I8e$á>øÕùÑÎìèH9ýûSî† Ö–P¦…-Zô ØöN£Ôg¤¨I!@£ÌÉ4<¿~ýò±´tþhiYv™N EEiÌ7TJ^ì¼o+1W?¢˜ TbWJd¸ŒRÜ—þû6uY’§·½!CC_uÙGdkÞ½yÓ\ÐÑ Pûƒüì=RÔ¦Ñß§߉«áê·oßžÛ‘·AA”beE CÕ•ÛÚRèË <)̦‚Œ«)Õ5¢(¿1ñ§Ÿ(pëV?8½Ôb'$Qö7Aî5òx”°ìŽ_K‰¨AãuP]»{™è9‰¡l”U$ìúâÔ£Hɧ‡5¾¦‰¯íE•Ý Ø²…ÄZZãý·¯ölÇÖo=çŒÅR A]jt’?ÃPf‡ˆ†ýûOŠ5‹R\Vÿž–Éiˆ ÝùøÒ—n€K `2¼'.ïÂÕ(S>Ga샀ÁšœpɹÀ¹°Ö„2­åôéÓ¯.”¾W¢~6‚n±D²D¢ŠÇõÔDÔ˜Ke¥Ê.ã´õè1Dóò䀮~óï1EbÐó“ƒõô¦¡ôo’¶…mݺŽ…D––Í{eȺQkY¿| ùói@e¥&yñW_mÞLtæ ÛÉÖ©•2_´1u oefß¾TöÑøÁ¾«§Cü'R’¯!÷¯5ÔEÛ9{Þ¼y±Tîù’:h²2o¡€aP³bÅŠX’gS‹|"ê2°Û¶m ©xÌÏøí „ðyîÏ¢œUè–M_x?Þø\•sTZóu|Þ ÿ^½¨ˆB,"5ñêòß—ø“˜©qî#”…Þ~'~=íÃå~ݼZòœ¢‡Ió܉¿ÿþ{©år’ð I R¿€Z$Dª››[ 5å—¶·sDyzz¶íà¨ør8…ZEP n2ÇQ¬€(É?>€¢âmü:,¨M?v˜Í Bß¾KÔÀ½–ß9Ò8<·‡Ú»÷!I/9þO˜xðsâó‹ˆÏ/¤¨‹ƒÿ§6¨!™ˆˆöìqïÐwcÒ$/>FÀ_lìdëÔZ>ݧ}'¿W<^VYlÄs_*º,¦˜Ñ)Ù?—26‡’²:¡õzØÙ£Ñ WÖ»€ˆ­ùçŸbí,І+Š’ADì©S§BT“ ÊØ2^ós€ˆËµ ýóÔÞBá®ç»—r¥hP÷á„f ·¨è")uM8‡CåfÆ[üÙÔ4UÅI>þ¸ÉïË­_ùüú«* 23^ò<⤊@ëÄ­[·†ˆ„+Ÿ·ÚK8jRËS.\cÕ¥m­¥¹8jöìÙm;¸Õ3žï†ˆzo$Wz"îñ¬XèâÃá(ߊ«1ׇÑ\Ÿ“øÆóCêÅ‹‰fÏ&Ú°A ¡£ËܹŸäs;ÿ<ˆAÉ÷…Åë>¦MÙ,K2€:<†(/=‹*¿;!HWEÀ%Gû~uQQÑÆô×™ÂåªhíZ)ÕÕµki/síÈ}VÖ½™v¯)W$:(QFŽ xýÞlØvšlíyyyáDD”0»S½åÓuüåòÆ –¥ZJ]'&1”$­Zö±É)Ò9Ä %!ÀÖva䕟>ÔÕ6ˆõºêÅ0uBÁ˜uëž޹ðÕ³M«>õžüQ¸WCyJL¥'ªŒt/{s8¤VT%ÄyŸýðQ\\v$ÅŽ“tt‚4xßÞõŒÄ æçhž1R“¹J d7ÄÌ÷íØ×o–B €lll4Nú)®oŒ™Ä ÝËx/‚ƒå’ (©#¯¬­ Éçax=uHætõôš6Õy¯^ÑàÁÕoyÐÕˆ èEãÆ}O/½OÖü/à+q‘€ß“4Ñ;‚ÈÎÒš*<ÿ;¥ª*­¨3æ[,8K@WᬠM$Í8¯ý±®Ów÷×Óî …”»oŸ\ô'¯ 3,5$Y[[‡ ÏÃèTOö꺿P(Ê˜Ú _¡ WÞ¯øÇ]ÖÈ˨ìv€›[vdü“5‹ ëcbG:Nób˜ºè¨¦˜ÃÏ==¶ïÓgwþ9ã=l¨Wÿ^Ú1d\µzE•7 V°åÇù_úø‘­­s¤ät‹çAÖî "j8ùýÇÏ4‹¿™*žŠ‰ˆ E¶û!íN¸¢WG¤DD999aèÚ^t1f2çè ‘h´'uæqÙ[ ¯g˜ögõÒÉ•m ËÈ š8±ëÅÃ!š0(7—è知´vfïÿ Wòçfô*WAcÆtuÇNM ²››Ñ)ÑCÏž€µ½ÊÌýPUß ÿ…¸Œ~ÇÊEy¯zÂÉ 8wN“5ñuR«¹¸ti†­@v¶& ë…ÛÑuëäÝÒ®¨Ð…‰É¼b†ù$“ h[Ïš§Ësñ®NZÇú &â,\ìl-¬­­êêTcåÙì/…B„ÆÓ%=¶ÔhYs8П±ã‚‘zxq~}¿„gÏ÷±ºº`ï§ù(`4E2yÂôúÀÀëêUÓ›º'ÿ]b œ‘†'•+Çí=,ÿñãñ½—orNu‰ÿÏãl -ÊÝ ƒ?šb¬ ”ª‚ñƒzäe˜¹Ž½à®W»ì Äß^¾Ó¨ý¢öqLêehOµÉ}Vc)•Š¿{ŽÏü×C÷üT+ì—Û£M²rs œ‹3G£ôúø×ù˜Q€üc·TË‹Ÿé‰Åp$BƒBüêjYun®9¦Î®Û1ª½ËøÕ0pàÔÔøáåK÷Ì$ÀÙÈË,*¯ IDATI½T»õþÈ›ø¼ÖÍÊ<ùò]”)»º£¢Öø}—w&¶†¹Šòr{H°è Ûø€7MVm³ñpõÉ kíÜ\ 0Å÷ï#68©r9¬~¢;õ+Õð†&¤un“Dw).ÈNÈÏÏwô“æì3ì¶öž©W8$\Ê«W(j­VýñgF ¸ùS¾ÖK8ôË ±ï^¬ð‹„䙇O½«ë8µVÍåîæ¯-7o†Ô¬÷Hå~£Ç ’KOèTpC¸v£?è·U¶ßª‘ùjQ`EÕ %;6(Ǥñ=Í.^ cëëkáxK¼ä›CM\.þ9™SÿAyF®uS®aï&  ù=ÂË¿”cÀS ú]7 Î )øÆ46YVV6Îs>´ˆvýoà "û|^¯¯‡Ï˜a¡Lt˜@˜ð«‘È(ˆÐ%j¯×Ð!!À°a€Xü–id‰°³Bƒ{ÒÑ ¹ÿWJµ6â/ѳ—ÖÖ]Õ\œœÎÇP€hÏžö·[f|å¹™tiÈØe‘p‰ NQþµ%yïÞ¯¨¬¬‚´µµIKÚ0õ™7ÑLbP±;§r㈹£åíàëë+&"¢æòÊŽqÐZÞ®5Çöý|ßܼUp«Ñ2Ö×S2˲¬P(Ì‚ÛbZ=J’)S¦ˆ59 Ù:†!6&&=ZKkR@äí‘ä]âçòÂÃ#ÌG)5éÝcÛÓO>¡èÆz |Þ÷/^†åø?þ…TÅÅûÝzúänÔˆë}nèæ¯£uÛ *(‡ÛÛ/4ʦ&ÊòññémÎÉ?ü@MMMY ðÀÂ˜ŽŠ€­þþË=÷K=PÙq¬O ŽËA)š:uª¸mÒªÅIá¬à”É}8 lÔ@[êIQH2™Œ¬¬Æ’‘Ñ벉® —KtófQMï Ò‡ÿþZï#R[™Žì°?JÀ/mŸmzSú ÿ„+÷?&ÐÉ“ ÿÁCáŠŽŽ¦ôÔxz鵩¾QÜ£™Ä ±¬¤¢³bbUm±ò58u3@e§8hb€šï·~u(.oo?»ÐMf†mjjÊ=ºc¬´Ý___qFåkäa,koÿA´¿c@ähó±wô?f/†ŸçSöˆsêHæSànt½VÂÏû›_ؘòWÇÍŠ12¢¸¥“>U¾œuþ|˜OyôwþK×ûDZZ=¯_Oo1ר¬„YS§NÛÛwtzß( ³X–eÝÜ(¦£¢ƒa¨úè¾÷)¸{'\QüŒ8bU¥DDœ¶ˆ‡#)õ:‚•þ(“y¡Aæ#hðýË¡~°cw:t(åäÿÛ¹Q‘ŽÎìš@¿«$óÓù׸bƒ»©CÅùmPß½»«¶WF0EEei‰!×»¿þ6onÿ¬h¬§°Û“˜qvQÄaÞLjÓF<ƒF8=‘ÁhiiÑ_*¥rí›ÁË» ™3%ЖOÂïYp8oþ^V*§Ï‘WQ‹ÁUUU FFFíé¶jSPã_ ­>Zè6¿¿µcrAAëa­UzõBñáÃ÷rW®ø´§Ï«mRœ*SÓÇÂ1c²kN®˜eÁRgÕѾyiùSµŸŸ‹ªÈË3ßtòrõ¼9ØÀà9zÅÅK#†\¾¡ìaf¡8p~¬v¨{­`œì®ïî)ó¾lìo­ŸO7ñr+|F½JIþb›ªÖu‰.3½ç½‹ž‚Šcz7üV#*?dVZÓŸö­ÔÖvÑ4@¦š<"¦;£ë`±ÄõÇä»wϘ¶­Ôòåˆ:|8ŸzöìéÜÍ©†º—Õ@¿®¡=®¾‘‘Q|UU•3^íBîO#´§k%Žj‹í˜´f;¤Ró3-8yR%Û´I¥«­­ .‡pfäëfAû]×¼Hÿ«”5çåvØRmÀ8Óö–€C×°ÌŽÅ çí¸R¨ßÜpý~-jµš6o†êìYü+\ñxßÂ÷f &v? M<‡×ˆß½ Ã’òÀï6ØØØ8¡ººº Wã"壡¨Ì,€–G ú§¤$ÓùùÖÞÀ«âO>ù6÷î«=UªæÚíÛ„e>~\aïÞÁ5ì´àsI'ù;Ï7ØA{ˆÁG£†÷2_sälub¼;ûøÉ=s+«ß­0 >y­²$¯@˜ú¶nýhÁÊívÉÊÊSû­ј¢¥eöïã6£†:õJæÎÔʪ¯1î¼ôšÖU¸Ìóê±cQeÍ·®f*®™|Úw›*£¢d:º¢8•‹ýóîiùd±ÿÈäM›>H„[ôQÖÖû(//ÏÊŠT¨jäàw×O¿ WÕÕÕñÆÆÆÎ?®DÐO«Ð%®ˆ ²x<Þ|‚Ç_O¢ð6úRü¡«V«QT˜½’=rù½wâ V» îu¸™Ë´áêÏ?­[_¯8>JeGÛ5Myüø 9 •æ+(z‘´Cd £±cÊÜNÄ*X"¢âââ¶73Ÿÿ£¢«øiK!õíûicŽ×¸Ìw­Ö2oÈ õxI*[rþ<‰íí)Ç#¥“åH¥$!"V¡P(ÈaS‹ýW‹qbùËû'gº³¡oÊ5¼âqQèåå%n1°eeÞ;vÂ[QCNåÁfþUá!¾¨éiµÎçÛ-óÜôôÒ¤U ½;~óôæ_‡À(„¤¢šóg²}<þ>èÖ·oÔm¿‘÷ÑŸcžîÙ¼ÜóðÿsÜ“ˆ'7¼µ„¿IÏ\í6gB__’ ê ró‚^^3  PËÒ¼ú裇Žykdz K5b///ñèHaÅí;|ÿ›±Á\ì–hžÈš››››š¨iñb …”Å0T-RÖüùPVÆ,™Ä{/®¨äŸ W×­ÖÖÙïyÖ› XÑf{™Ð¾ÀÈ3‰^Ö˜ù„ÙiJä@¢Ô5,)JßÈ’GDôèÑ÷h´A¤IbÒñÇðð®¶Kááá€Ëç÷U¡ô¦j¶ž€ëÕ€IÃÂ… c‰X–b'ŠßÅÀ€sŽÏ­¬Ø¬®˜¶};…H¥Iä¶–äq7a4 %@ÍŠÆ<Špn;Êý*ˆ¸u«ÁïèQ’dņúÉ‹Åhiùør8¤Žˆ éˆ_xëêRmz´ÿóu«ÝË?÷úbÕÏÕ 'xܹá=yÈê'é^Ûž˜Ýõò»¹ÝãökÍ;ÁkÝš@ž–«|ù|¶ÖÍ-ظ ˆ=ökƒ_wc­D]í/ý€0©¶ö5ßjÓ¶#Ûψø9.²,•ݦì½R*½ElsóèÑ&Uñ]½[7u–ÇÉÁ~ïâÝ©- tss‹%¢æˆªž7¯s;Ñœ9D‰‰ŠN!† Öå¢ôïËH†ÿ¿ÚXµjU'œeg“räHIÇ10ŒŒ ˆ­.,lj¸ÿ~,À ø ïÄU¼ÛÄçN~—¸~ ;v\É©1;”ªýÅMõÑ$'"ÒòóR¯£ W1³"´´–ú»%#íüæŒÅLÚè«1É&ýóÏ0o ¾vòðÞÏÇŒ¼àþ÷7¦^çNþî)öüÛc¸ã§Þ—û=9½ÕþÉ' ʽŽïžìqéð'ÄzqÞãÊ…W¾ Ó\;jÔBŸuëH «­ý•_c}yâé“2¿#HºreƒoÙÃö£tÒ˜æfEb°Ÿ|ˆèÃë ]: Q|š_¼N42¢.qÅå–gÅ>œ÷N\Qƶ"R.Z´(–Ëå6»¸l¨îÓ'áµ¶<" O§fW¯^ý­5¡¡¯÷95ñàÄ äO™»Öœö[6„ÅÈÍ­l¶2hà™˜jsôº÷8¢7êvÎ §T¦ó€Q`#"š$dÈê# Ñ  ƒ& èl²vš‚mêÝÞ S_ÄŽ0((XT vV|–YuŸÔja½g6·€§ªÔg–- æSÆ÷ÝHåßò`s@?£à”ß±_¬š÷r¶ÇÎ?²BBüÌjr2´ÏzÎmðÕÙ½ö޲4ï\í²Ï>äïü­ ;×ú¨|^p9Æ=¶‹œ‡z×¹èo];ãÚºõŸý¦[ók÷ý?ÜÈ1 Âgê‰NMñ¯™‡~Û:öï!]ù×=Š ~%ä«{UÊZEÛädgØ–}TEþð¶Á¥®(üpè™ô£ù¯ó[(„"%…S¿uk?£½§^†Üùæƒú´Ïg²%?!Ú+ãpe .äC@­Fms3õõ€¶6´tuÁ‚N(°´´ìÖÝùèndNSÇX˜Ä4w¥-‚š£hWÄÃè7»ØëðšUµœÌÂz4*Þ¬åààÐé³­-x¡¡@M èñãFyUÕ+²µ5­Ÿ<ÙØH[{°!$%%ɈÀ|¸6ÍEØÉÍ0Õ¢ WD¨þëâÃ+, îß·ª]¸oà Ø>j¼ ÏöúhÌ B°Ú’MVM ¥Y?W£ê9cAVÝä¼:‡7îßÏãÃ’*¿ýê€÷÷ß$êoÿÆÞ¯°èëæMcìÑûÁÉ¢ô± ý µúljˆýXgÉäcÊ«ÌjýýoñE&Ç1mÌq•ŠÎùí\…hÚäøúU~×ÕGvÝî¥Ãv/“uwýóÇüáýÂ}& öÕÙ³Ã(ó÷Kûæ@xøÒE‹þ¡Y£†EE†+ê8½¬†ðû>¶þ‡sЬ»£ W×Ô(Ü|Á?½ºzô¸ µº}ZÓŸFƒ‡ Aòs4ĵá \}ú߉†Éôq8NNN2777~LÌyCàXn ËM@$ ñµöÁdº#Á„Ä+û÷qÀLàI-`ñŽ& û?)Sæ;ö±t|yr[û»>Åh-³Yvv‘“g†™C—.A*¯`M oê‰>÷Ê.æϘôàÛš•×lRßÌ 6x§ôÐì³&ó?ù¡þUéLÅsîÖçæäqŸ†–‰R³ïšƒˆ‰³+Ùéj¥¬©¹]ËsŠnie¦ÒýÙÆJÕÙÕ{Ë‹zôzI߸o\]Ø„¤‚ËʶÄ4äy–Ûôµ¶33û¤ÐÓs?p™¤é­"çÑ…-±Û§ç/èÈŸ‹OTÉù^F/_® ruE„Ør¹PO™‚d77tt0ÈÉÉ)ðÎŒ¼ò‘£¯Ú&øõ 芑‘¡êØ6—K\·$‰'(ã””(ºs,,´µu¸ëèêê¶ýÏ0`ÇÆyUr¹%S¯ñÃ×Òԫǰaž(/?†ôô¸-tµ° ð=€Ù ‚ :]ó­HX…ÑN?¡¬æ"2 ›Újv¡ÁUËäü¢ò˪tLMÁð:á*--­m¬gaäÙGÀ„ÁHv¶Cm^)D^plVbÂáÃ,À¸èhdΚ…Úâb| tËV®DJR®¯arJæ+G›¸-81ú±_“=°uö &ÖJoܘÈ.[\nxõr½—Šggà)$tv•©zì®Ï‚—l/-]²è[Õ–ý£Mì~Xÿ̧§Î§‹îךr÷ürWT\YbÜe‚•ìßì¤\¶ÈªþyÈ2]ûÅfÊŸ_l|ì;‘ìF²kÑ çB:üÍqàê³±\§à?.w™3F§<¿4×î޽ҜˉÁ$ ‘söDZÖÝOtÂÏz]ÁôO.Þ\ï ´Õì,ý’E aPbbbà§Ÿ~:C_¬"ªºZð´øàèu•½½}'\Éåu\}­º${K]NGÞ½¨Dè„«ššš¶ÿ•Êfö¥$”óíϽàhÀº WÀ÷ߟˆ:¼v:/l¯"€M€…Ö-]M Åñx¤ˆŠ[ôDÉÍ––¥ï93ñ¸jº|Y“–ˆèܹs€8;k¢Eò«ûœÒ×·¯Q¡ 5j +DÄSôåË$Þ¹“‚>¤¹œÒ[ûùé§Ÿ ÓÅ è]hä0‰‰‰'ÃücÁÒ#‚Â{‡RÁ©µk׋€Z,©•~ç'{´öç;WHƒ‚äþ'–¼h¬Î‹†•/ïšuõôá>¾7v¸ï\½ØãжY8AVç>€¸\aæ—Ëf<¼rd­ûºÅ“Ükgyÿs|í}WWŠÈÌl \^òy‘h«­‰AW ÷prÒ„sfbÿøƒÄ.\ èe†°#ték„»Ø#€ÊÙٹ͒e©šˆ:¹ݸq£•7jÀ6 Ø"ޓŀ §µ¯3gÎl嵌Š.ŠI*êjYÂS*—ÅT§å´¶½nݺ–± ðgh!ÍXX1ƒºu3o‘¹Y`ÞÒ†Y3û^\q%{…tu5ÞoÜhsÈg©>*™ÂlÞÀEÉ yR©‰ˆZà `óh`µXcq?7¥·òäÎ;XI55T—™I,«1trr @_-Ap"2o#tÛ"„œ={A¶ïáåC+ÝýÝ/º?>là}ñÐòûÀµ>¿wPLLÓËñãšýýµÑ¿ÍVN »çê¡‘iŒ,¶ˆ×­[@¹a”ýM¥® §ºè@"RÅÅŵߓ©ÐÉ=ò³Ï>kå:;›ÂþøƒÄ»vQ°Ÿ‰ jÃÈ“'OZy-[;b¹OçÞJ(ÿÙ‹}´aÑÕU㋜˜˜A}ú¼z/®8¢#Gˆ”Jj&"*,lý­¬ ÚúÝq2ƒ‚4êêÚZ¢Ó§_Õþ×н£GS…BAÅ[¶l âpPúðÐk1ªº(~F ‡A…D"+•”?}:Žù»{7±,ÕΘ1CÌ0¨Y7 âš'¨kU|øÄTùùùj5Uøû“øêU HM¥"R͘1C @e¨c¡%˜ ˆäÕÕÕñôê@ ÅŒ–T¦^ þê’±cŸyðÓŸåÄܸ–ûDúøÎScý;Þ‡w¯¼kÖ­Ÿßëàk-ýí|Ïüüžûµ¯Áýw=îÕëò“Fä<7AòæM1^}ûRž—‰{÷4ŒØ¹’ŽÅ[YÞ&«© #"¶ M€s °J Œ’L­µµu85Q¹G…tÓ†Cm ©ìV±¬ìñãÇ·ðKxs~T*àPÀTŽ?^L¤*¤˜áiï›ÊØBÄV:u*0ÈÊÿEf¢öb`PM½{O¯ Ð'`^- üO¸20H¬ÐÒÒ+>wî\‘º”ç¾W”¸ †XuÅøñãÅ/xö®4üÑ €©}úô©˜ˆ­¡¢ b 4¨kST¿‘ÊÊÊ*àT“ÄÀÊÀ!€Js©rÒ«#y4Ëå$744Œÿnƒÿ„dÍ\ãÍ›IÌáPÉø±AÏ”éê—Ócl{®x²tú˜§K?©ô¾zrÏ]ÛžƒßŠ+Û¶¾W~Ýxo¸ã¯Gb¯YûDæ§•Üh<ÈùO/ -˜&®.ËŒ ¼ª “TUVÆ`µµŒÃôµõ°-/´¦¸8 ¼r…Ä!!$aYªÍËË Ð4o,Ê=5 ‡ì[(\: ›5kV€JEÅ“'Ó¸ârIµo±,UJ$1—‹Âðsx/®~ߊ†AÕ¦M›‚ ê³ôõ›ÿ®zõ"JK£Úêj"€X`gpGž1D”͹×€ÈÍ á¹¹Uƒ¿þÚøm–›ï$;;”NŸ´"vóØëÎŽ6èZ0óE¥"/M´k÷Äᥥ0y[=dÚÛ|œ¾w†o¿Ž2¤VºüV“²«—»Ú«¨@›èôéˆ7ÑŸÿÓ‚ÀÁ½-ÑC©‚róI„,ú²²yÇã¾pèP|ÖÍÓƒ83FB;´hAíœùW¸6=9 çÏSŽõaÓžJΞÓý¾Òív EÃà®ú'éÄùñYv|à­ñ³öÒô飴¬ú,–ª{׿*繄£Û¹ó‡+õ•††[3«ãg ‘ýõ8€èN (Z=iVk`Z»I J*zÛ­‹Ì|ÄX¢òñ 7n®í”ëS´7iÚ¼aÎ@ß.Í5ôªxâø=/N¤ @Cü;êu A×_nH\±nÁHÀì?ã‚aXôêµ¥67WAÀåÿ W@v鵋^±®ƒÏ8£!ù_á ºCó>ÚéôBzb8`öV\1™>žiéS-Žöë$Cj%ó5vÓ ªsrn ºu°,öŠ—xWæ7üi0š²z€á+a&ÄÈñ~sMÍ©¾àì¼/+Î9UÏ´Ý£GÕ®^çÉiåp<¸+}ýBš´kr’k*®ß[b§PȻĕP¨;Êy]öÙãÎZGÎH(,Ä[ËíI¡ ¸*{Ÿ*Gš»ßyùꯔûö è'AùÇ5™Ï mÂ8†’ˆÔK²‹kÅÖÞÞhÕ¹9*.^ÌŠ¤„>–³Gã \%å ÷ÈÓ“"ã½ÓÓñV¼ôê…⣇Å/û7}8À¹÷Ûëu¤¸L\uM|ðäÚÈÒRüg\p¹ÀãǨ1ãz,°b4;ÍrÃ0Ú Ã€a˜†a/¾Üô×_ájæíÖjï¤ìlâû`„ÒÑN$ÿ·× uª/œ{¦*-U+ßU/&F)\½dšz½  K7`ͼnÂÍ›þf+*Xêø½—W-gýʹèm­W|xŒà,Yr )) JIQr~ÞÿBív~³zž3uœ-»ð76ê üt%M£Ë~u@†™Sõè]œa¼½Ò8»6ÎÄ‹€Tö£?£0‰§êÁ½;xòÔ‡¹ò÷?´xÑtÚÿã·L¿~}XGÇÌõëìÒU_±J© 3%D÷úõëìÔ©Ó:5lbbÎ=qâ4]¿ý¸+É<’’’pëæMrvîûNš™õ¬pݤŒÿ×ó“šÇFFF(­­Íº鿟ˆ8Xµê€ê‹/.ÿϸb;~dH¤²±*ù_÷[Q¥ž>c½ŠË5{'Oø|¡÷£«êæÚ¸.qU‘~Y¸êó¿X§['\Lç<¼wõUYA)yá×qv°?ñùý9“>üQý÷‰ELAÂ&;Ñ›]ôéÚ¼5нüÛRÔ½`uzœDmùcïÁ•½ã4ÎÓ»Çá`?‰½vÍŸfO®údÑL:ƒYùùjòzvŸüžÉÌLe’™ùó]ÙãÞf_£‡õÑ]¹b%ëííÛ©á’’Jîöm_Ñì®]âÊÉÉ Ÿ-[Jééñïäá«W¥‚³ç®©]FýëùäÜ6l˜²´4ÿ•Z ̘±Euû¶kc‹X¦†ˆ@DÚvíeW*°æãÜÜ%&66Gëôõé=M¿Nòf`’¼JÑlÑ%æÐîòÞK¸:i–¦~¸`)’‚Ñ¥ú¬*è-Pé8ècLy7˜ÌƒáNÌ–‹1ª°³êïn@7pB <“ßfö2®£.ÆÖô—÷ ¯í›—°± ó‡ÙèZy; räu Ÿf^!‹ùù¶Ò—ËØì»_˜Wûþi EE89¡K\#>+ ‚´bž¾ét{±J…"`YTÝðƒ¸ÇBô_µZØ­¢¼]» 1’C‡\Z ûÔb]]ÃYè?b“vxWýˆ‘›1vëqÇs IDATÖ¬©4$¯9ëdÎw{µ Wÿ2“¬ÛÞöšÈþµÂÎ|ëp#c¥Q¤ÒÐb÷òõK¼Y“¹*KSË·âÊÊ©dì`±*¦"ˆu‘÷©ëÑæ?+Ãr¯h냿:·ÿe›/^Ä ·“j‡üÕ?wïgN…DA–ºKFx”×E$T…`x†EÌô€ûýB€ÏÅÀ$ К•ÑÝàpÍÎ~h÷Ëð ëÐ÷²ÃŒÔ|]`° p¢Å£áuzø°R“¥‡ÁÁæè¾ä½¸‚éÂX K©¸" ==n·n©ÿ W@3€ùµÀ “¥K1ÝÏ è´–µK ¶%ö”FÈÛ­Û0åðáÅoØ u]bY   6´Éí*RÿÎQYÄR‹Sp‡Ò@ñ3Ĥ’ɈˆZd`­}ÉΊp)à/G·þöº—ˆä-‚tê äU~øÄ×ö!âüWëe†°‹/üöIZÃ3 HÙ× oòF ‰ö¼Ðâ{= Ç&%5I]])âÖÉÕ÷«¤s}Ö-žè~åðg¾^õáC.WØ…W˜yb×”Gß~±ÂÝûÚve“‡yÞ1÷>PÇçTWyñ¯B¿¹ÿ+ÛãÎûœ›ê( [ø¨ÜÖ¯ßð‚²÷I)´g8…ôˆ üÁDDíB^†Õ(L ê:ö¡ƒ—ärJóð €Ã‡Izå ‰kj¨Í²ƒWåd‹ ¨ Èx]’s‡SöˆxrËûÑå½÷Œ(îò妠úêEZš¬õ‰FùSÎþN¸âñ¨ W RÀ… ^Z é«»/pCÄÎÅ@­J)–%63“ jj¨®ãÖA)E€( ˜ì•jä¿mu:(¥TÔDÑCÞÀ…ÙS}L µDf¸~ý: ==}3æâ0ÿFþêK@·J)".—Ôíïàá]0=4ÿkt¨‘¼Š 88| “_× wÌ6æéèeö¤ñg@šÓäòöݨ‰Ãç6pø µEêê÷3#n%_d¨‚ÉLpõ'´Ö300èð&H²6™š ƒÔËa¨hÙgggs ¡© @éïGµ"ggd_¸€‚>}z«¿šûù´v5ôúYÀI¯p]G—HHˆ,Àî­†pqÌHŠÉÏ2é1ÇtÊ8—úëÛŽÓ1ª ëNK‹^åóì» íüÂ_õéYÎ Ÿ—Ïñ¯?þ•ÁËãW3’«jsÌÁ0ÔÏαdæ e•rZÇd‰~uÍ©¦ƒ%ZŽv‹Uñþ~a™kUÍŒ]ëÄpâTgÃ~þgƒöÅǾrÅ5˹ Í /\àelØ "pz÷^h?¨‡4y‡Û튲v%ÿgåÿ ®‹eN§(ަqv¶¶¶Uºº¾AT÷°vÞ tî¼±CõÐm¶3:8ªuP±s“r0fèz€ÏE¾µ¿ªGK£ÚFn·Ää\s–-nó»ÒÑÑ0 °~=°bqÎÿYŸOFUMg³/'§L¬__ˆGA ð5˜hï­-x/_ÇŽžžÀkBèÛ3_¬}…{ÆB Ð «£ÉÉãPØ<^ è@=y(§ÀÚLTYZÑ z‡:yûÜ×ÖÖ¶áÊÉ 6gÏÂÍå`€«gØb‘;;»3TÀ] |äpE@|6°¾ ++SíÄ;‹’«mm£èFØ}åqCxì…Bã6lØÀ‚Óa˜Ž k3§,ÏàJÓ˜P¿ú=c\ÇQm½jÛ‰ÔÚÌ’ga•-üæ—¿ø›µ¯rî>þAøÑÈëõW®xyø|brnA¼9276/9øÕ"eN©¡úö½zýº5MXT uït²jÊ`ç‚ËGªbþŒ¥æKœ/. ;ï󃶈³ÎwÅ*mËÒ¼G†*Õú à¼Àp<ȲŸè±o9Úpuâ `å4ÿô¤·ÒÕâ[·àIJ耵°@”—Œ ‚]NNôDh˜7¾±¶¯ÕCnTêC½Ç¡pfY´áªƒ9ÚNcà2_^]% ¡i7pt̴᪾¾¾åo‚ƒWÂÞjºlÀËÌШx=PÂ#?ˆZ#´¬Uj58£Gà - –…mb`ÕÁÿ­3PÓÒî¸ @ýúÍeyÍJG!¬¬{…Ü’äj6Ñm+Þëvl c`É•Y|a™ßÀ Ð%(::988´~dg‚ôÖ÷¦§6ajL:²ÖCqrr¢¨¼/­¬àØ1*I|<ìFŽ„Ý¾­ÓÜ?ŸþÌÔÁ¤FË&|Þº¯‡ì:*²f—ô^fœ…2RßÍm6 g¶9bzê¾Iåî êÊú̳:.ýêd·î)ôv~ÑOþõyxÂwyõ•îÌäñúÊY5×G²NoÆÇ7ê?Õýý'¿ržñ!Ý›¿2^¸wzÙæ«G#;’¥ehþ¨yãFåÀ‚ÛÃû:»—=QÖÖ߸ø”o²Õýf~ž5ja( O·áÊy€}O‡¸"~ùpU\Œ¡ƒ£ÁÓqi©IZ7¾ƒxÙd¸0h÷“mV!wëi”^xŒ`oo߯¹œšž=+‘…‡uwvv2š;WKG_ô¦?pG;6È(hBFÁih Oc€­.8›­VÉ„˰שÝ-=ÖR)$ãÇk^ld¼–Ðáÿçú2|øðNgŸ8EìYšHï³`QTU±,)ÝÜÜb4ÿµ¡ol_;¯ß?ðëÖMÝõ5?bìØ‰‰Ä*Tr3’²÷J©ì^t«…@ÀÏéh‚Ríc©­}Ý“êŠ6ú›k%üòKƒ@,ð›äÖ­`o†ae¶Ö®¾Ö¸Ï7ÜëîŸëùÝüÚÃÄà¦wÚÓO¦XñôÖ…(ïÕ‹Çzl]³þQyЯµ+ÜS"¼ütu©vÔ¨Í>aa$ápH­­åå'/|“êwô(IîÜiðó9Áow} íÞ¬hÌÕðQ$ïf Œžä±­%B4†„„$oÙòfò €ÈÚZ•%9×ÿù;Õìq“ÄD,»páÂXÀª¸S­ñ騖š€Pâñú¨:ÎiDDuIyDÊÊ®ë@¡¡ÿW½+W®¼†µ~ Àcú?ή<.ªê}?³Á° . ¸ïûŠšÚ¢iV_·lÕÌLËÌ,5+mOÍÒ¬Ô²4Í%÷}EEöE@ÁY™å>¿?†MûÏç|>0÷ܳ¼ç¹ï=÷=ïyÀ1f_÷î79xð‚r±Xb~饗’Hšxïýq•plr¨DRÚ$®:vdœBžê$Cõë¿nÂfG‚HM¦êûõ]P OûÄÏ™£»¸äæê\p%E—û+:øzĘ® *%ìì¥ík{‘>ìÍI.*O>?wÖÊÓÿnùþô¾+Ï•G¾r©µwºrõâÇ:u\pÉ uy~BÔºE¾W©?¬~x=qÃO?_Ò]„ŽJÌþ:<$$D)•àÁ½È¥Ò(óè¦e7jd£®)m,U¶ÃÊ$­*•}úð¾DBKÌݾJ‹E(ôö¦ÖÔ߬ ÓOËëÑã 3Pþ;†•Ré—våVTTd›P¡Z`ÆR2²-¯TÎdB0‹³#›=¬Ü\pVçy{žÀØd„7ÕÞv:çÒe/–œœ\Ë´ ZceŸÉ¹s?4±p÷#qõ|°ôFI‰P0w.r9ï‰D¬Ë™9g -uÁDZ`C$`0ØÖšÇCþYdÇ•å*ò‡÷ÂÝ%ËC•5‡ãM[~Ùt©¼T“Ì(¿’›û|•åy1Tɪ^ÛïÒ_ß-8&wþ=,9tïÅW&?ÿã7{N±øÓÖ$œ;ôµ÷¥^½Ê•Çw®9ö×Y—æ¬Ö×;ª(aõUë5<ÚÃ)qÙGË.1ÜUG%„oæ!|òäÉJ æŒíQ3n‘pæ÷—ŽûøÐŽ«§ž¢²ºšÕ´W€§´… ·Xl¾q ”"‘¤Ðl,O­©¿Yþµyï¾û·Y$j.pi‚ûá‡:åÖ¯_?¶@¿.KN¢ŽñJCÁè?ÀnÑBpÇ6Ìfæ‹€§Rkö0%¶´õÃËôèÚÉxà[ùÐŽéM,ëÒ¶3Ð}øܬ‚ƒ›6I´«VIÝ[¼©&_„k;…8ÿ€Mî<›Ñù‡8~6¦ax/7¤¶mZ ׇ•èýàÁƒ›Ÿ|ÒQtèPýpL‚zÖ¬÷Žø¹'µ©¹—£‡>L¹å"6´ï žÔ¶­·Å¥ÊûËâ|ÑR—ˆƒ#J¼¨o{6ë´v÷#·ÿnõ ê5¤o×ö¢¿XêjJËüîºií4Yع¢à©òê¯ß4æ•:Ï›,ó ^5Ú¯ï­QÁçÕ!ïIYò†g[ÿ±E³>èÛ»ãEý?«2-‚¬êã=ç‹££;·’ˆBªåÎË|«ÍÏ={ä~öÙ¬.À·®ïÙ±ãE¹™q]Qrè.ÌeøLj Ï1½jKÔ†—iÛ Ii{ÔÆ"9Z¬Àkß‹apSàüùƱ›JNNšE¢¤ƒA$ªT)S´òæÊ[0"{„hÔkWé$w·zlÝj³±Õ‡%˜Fqæ9Šÿm±j·×tz¿õníý:B"‘X¡6<®¦N­Æê×_ÀðöaÍâêóíˆ[c…òT¦Â\ª´•+dmzwèp³ `£xÅŽ+±ê;ŽÞ[¾ôåžýºˆrî<ûÐPÝ_°Å¡la!,hh²~@À@ßQ4„:µ²¤^.>e k³e˃²–WuÙÇG ¿0u:iÌ#ï-Ö0Ò[§¿$ÖY’ÆõФ:,­VËO˜0A €1 C~ÂÍúíÄÃ/–|zÔumX €ç’k~öY}F®Û‘—/_Vêõ¼ãêjc$êÑã˜Ü\} @º¹þ}ií{í®Œ±àbÈO’ëI—ŸJo\ýE|#!êÁUgÙªkÆ«^7gÎdbן×+}㎹X:äÚÙ#·/¤\>.>1ñÞuÛŽ¬ ºæ=ûì³ÊuëX—R¥ª XUÅ[6¾DÛ5??–lüü‹ãTÂ10ctÇ8š–“Ž%ä/šeöaq•`Æ~˜Þ}Ur'nnn,..e·nÙ57Ù¥Ë/j>Ød "ú˜8È>ÒÖ™’n_m­\éÀ4J‘CFx>6®´¡nŒÝC9«Ö­ÉœrÈ!Ú¯=C·õÔè.ËtÚèL¡(Iߋȱý‘V+·ÐÐP¥mUj)äÍɸb”ïÃõ«Ö‰hÇ•D‚ ˜\Àô;®zöd¤-p¥Ë@§ÈîÄÈå19ÿ-Í¥âÄ/¯lß{Ñzã¹ë/?5è|›6¼!$=}£c»!W×®1^S‡8ߎ%nZw÷|Ñi—¸‘#g^LØã{­gÀ”K©Râ»u|‘ˆêŒ æÙpð¹WãÆQUÀÔãp?¿NF%ß-ý¸®C\k/” ˜Ò’Ï‚?”Œé\D%hPv0¥\\\•q7Uˆ§'£1Ïosyݺ*õ©­ãÿ®nïu7ô ìRoÅöc£z<`¬05á”ðoŒ;ûâ!—Yšt\l*µk$ìY¼—â øhùÖV­ÿ…HMAvfŠ®Oÿ‘nè¶Õݶ€Õju-)«r–‹¼ =µH„Vo¿ý¶ûÕ+Wtwþ…µ«?úׯÏ×^‹?ÑeÍ'g`@ ·ùÆWNe6ۺ᷊\ù¼M(êT‰xb»×_Só͹ÙYz}«ÖβCQ#‚öK¯í)Öº¸Xâ·~¨ô~ë9q§ñ¯ÿ‘þë/Ï>íê+Èdê{w’úÄä·†UèÈ2µAöãfÍ[³½­k/þY´v}²gΑĞ/tššõàARìµ¢²ÁxËýߎ_[¸Ø7ØÃíïÔc»,þ®>EîIIíÅ'§q#V,úð’(uÊK…(#âÝ*Û¼2±bOOtêÒùïäõ£aWç GL§Û]"ß¹s§ ±Á÷D¢¡šS±}·Ÿ=ÓÆj5¶$ŒÐ¥²]»6^W¯šðüóHMu4ò7L>>À3OÏô*Ldñó´6^ÙL jW*/»?wM¡è1d rsm;ªV€áì XŒ+7™}4o[Ÿ“å}é²Í¹¢¥äí œ;g s߯w nïþD·‰‹Šê¯ò\™3à\èÔ[íÚµË}Â3Ïè×Ó c¦®`*öŠˆü½‹É´ÊùæMd° ïŸS)Ó^0¢H¶tá?mùôylÕ ©¡—­íZµ:ÀNöd©+][¿úJuÔkOÇIÛþñ´VÚÙÿ¤ßo¡pw§÷]M¿0eYa©áªðÛo&½Y“îSVŒ¼< ]Æ·–ÉdŸjÔºÝÖ÷þ^]4pàjÏ!=ƒzž^w!kð€XköÓe»—&¹ÏüzöµâòíÁoÏÓ¤:_òoï£w/*œÌfñ뺟/]ø‘¼=4¢¿Ît©ú'Ä« Ä@U§ŸdvGÖ6@¨ 6б †gÂívÓ Ÿ?¾‡Õ kL î%'K4.꼨DÈY¿\=¼§¼€ÉŽ˜öˆ-Ƕ?Ž{åœxhþñqÕ3P+Û쌉Ë{ 9ó.juUýäé 7ý›0˜FÒŹ7+ι<¶&­Ÿ“.n­´‘nt& bs&.g`àSví»wË‚:ÖÁʳGãª||mAãÇóVl¬FµxºäZm ¼÷‘Ь#ÝX5»ÎgŒJP›øªÒÙÙù>¾8 Ó[òËGV+èYŒ(*A&OP&%eŇnòTuyÊ ‘ˆ‚çŸ!ågQ¡+MOœðtÌùÅo¿rñàŸ+B¼}ÞÕyp•¢ª ‡ã.´zº¶KÚõÍ€Ó;ÏŒŸ=±†,ãú p’º7_XkŒ5óî"¥ °R¯7Ü}sŠ‹ã˜R§+È:Ò]^(³~6'¹>MZ+wÜüýcD§íEväV¤¿÷?('?5 ¤kW–4'¯É#>·ËøAFtCÓ=+*Ô~Yáì¼üÊ›7_’HºF䬗ŒW˜õYDuxÀ­¯¾Ú¤´ZiaÂ;®:û!ûܹs×I¡œÑp5%ɴ޿Л¼÷~4ã{g3qt: ¶)“ãBB¤ÒìfqµnEˆýöàÁŽDÛ¶,"ðªXC[~“€·ýz-­#µ©ÿ/LÄoD™¬À¡Oï¾Ë’„­‘ß•õ/ŠDdRäm&í~ê?5öw/ZÌÕ$[&¶uuñ7Ï|!˜ó_-Ì'Ñõíd#ñlĶ×N(ZPj$°ØòÚk¯e×oe%S.dL@‹:ubþòåŒ<¾qØi†9gRå”˘ syüÍÛ·JåæÏ§g”<“Æ)dd†õîÍl€\²äÓXAôžžÔ‚º§nWu¡ÓœN\óåÆ3q¡¿…(†+À¯ªéc¡àíyÊsç¨Ë?½6mÒ° Ëÿv¦<…J˜´·7^±Õc) ûé§_Âlv6S®›|jØï"Bù+níÿiÖ1`³ø*\îÜ>uÿˆ/;ƒŠû‡lÃÀ3@R8`-²íçÆ£n×—ç¡C‡²³³imIfcúÍ®#¶5d“wÞ£.r¨>|׫êàk,ÊÎz$±-Î{%ت½Ô[wƒ¼ouoºÉ‡Ñ=Y`Ï€A¼öËãݾÂFª ´LÄ]Rl2Ó˜GêÒ–žÒQ›ÊZêÁN|rÐS-âêÕWÃ-7nÌvÄ«g*ðW [d³OmŒŒ;2ý´1™Õ¡ÈÍ>‚˜a=¥7mÑ>&(ÏïZr<ÿâU¿AÙÅ¿c˜Œ˜\¿~s¬H$Ò•‘ˆê{‰7¯2ÜU÷¿q.‰Ë—|yfé[ÃBäò'¯,]JKO(v}%ð¼býzõøˆ“>Z´éŒAS’B%LË_q»Tj$ãÄg* IDAT‘Ô}ôÑŠ0@d2æž:¡ cæÊ&¿uä×ÙÇ–,¡òÛo^˜¯KeúëñŒð©`L§ü'gœ4ˆáb1‹D"V0.*Š·ëËó£>Ê9ò•qµok„ˆ;ÈÜö1¶ú­ÁúÞÿÀ ßv$â&IêÒ­Œp{l\¥˜Íø­Ã鱘V­Ö6†ÅæTms™¨+ZÓ`y(yãé |V¥D¸~~©±!ÐÄb_‡H%ü~þ°&ëÈ=~;¼røKº»[à Êd2–••™H2+‹1bq£[7uêkvÏ©ÒR&y{×~==WEVUU¥ 5­Z±Òö»9[ç¼:ñª_û°‹@Üš••p+:î²DB ð^ô·óV”öWä©“7¯ èÿSè€Þ¾Ñ¼>$,/Oˆhõr[xÅz V†{¤ Ì\¹²ìâåƒ^¢U¯<˜¶¶¬%€ÔìîîžYUÝH(ÆÛ¹OŸ>ïãʆc¦&`ëÖ­Mæ²íóç› »KW¿;LÜô*Ä‚jçV–©æ0?ßÒ;z”¿µ ¼èßÁÅV@"ÏÖëËàÊCX®Ü"®LW ÌyƆí9.ÊrsÌŒ?úEÓõD÷¿âw>Cg™¦YùøûǰºÚBNG±X\ãZÐ9ÆvÔÚQöœŠ­ëO›$#»íúš5•‘é€HTT¤TÊ|«•ÖËç÷^ûDÁÅ;w˜[³²†÷ê}°X¶mc4ï¶p¦oä€þS¯|²"9´(ïft„‰DâZÿú]}…*±µêÒy¦÷ûrâ%gèÄŒš‡»Äl¦Y£Ñ¤yxŒ¶ãJ$b¹RÉ[µ2{ñÅ©ñ6f+DZ:Å$’´Z­&¹\N?¾±¾6{¸jzp w4£baó‡ãèåæé0‡‰ã7“©ÔÀã[ÄUþÙ@F^ÞmµX(\ºäØ—¯¾¢µuu{`{Øl…ŽãCÇF‹É‚íãúÝ‘ŒîHÆõ¡±œ&ce£å?Ivêôº} ®ý˜{Äó‘šXµc4Ÿ´†]üÒ±„ÀJ{ßÿWee¥ÅìéIcc¡‡*ðîÝ»Q$õõwA ´/ (JKÓ×L¾õ¡»ËËÊÄ6âmAhÊÔ©SÑÛd ÌYñÅ ÈNíg‡P 2axÍ*ÏœÿÙk6;Þˆ£!¶º¢TO†²ä¬OÜ©S§­½ÝÒ©©’åæßKWµnm£@sq™™››[$¬¬S®$P}š{öìI’.PÙx|µLÖÎòñÇ_VÔ—ùýûäðáŽeô*æ¥Ã ÝøÄ#åÿpwܯ£7Û»7³É·-÷×¾ž_†þ î\ Í+Om[5,»LWÛ?¿Ö¿Ö§{îY?F¸µ[lxp|p¼µܸtqF#sîßßÞ¿”U¬¼ðÈqEþ3Ž«+Ø«S¦ƒlÄ⇜2EÉêê:¿ÑI“æTnf‰DÛW&PI’Ý»w ¯¿Ë(Q[XÈÒÜÜÜ"7·ÞªEóðð~’×gP >=Ü-åÔ©S S\pÂço ø> ÷í¸B%÷'€´l©”ùÌù!ŒJð¥ñ=BrÔ(ª¨V(ËBÚÆM:U¡Õ”¥×¼r{ú«€‡åyò¤>2  UÖ*W€trâ}³™æÛ·o×Ä.{®®$’juY-GŽœ¯¨/óÑ£_§Ÿß‡²íZ%óÉAÏ2üß—)ÿ»ÿvbǶ~öúºt™Ó”ʰ¥Êh2kys ™<¥áÿÓ¨Ž¾Ïø¨ ¬}‰“ä† ‚W£G36Ò£†Š F§Ö’N˜o6³´ù–/½÷Þ^ LÀìÃ^^bªDŒìä'%ÊÜ  mYÊVîà°^Þš1ýTùŽÚ´ÉÕ«›:4{7 ™°mÛ¶¥iiFE=¥¦‰Gõ팈 ï!òÀúgι¸Ìˆd¦ÞEDM_Ì]^Æ?R5dÈÅ'N(vïÖ^B”ÞH¦dö·áݺñ`¸7ºTT‚¬Œ¹½q#Užž;.OŸ>]ñý÷©!@z¤D˜Q»IÁÄ1*A 6%E«Ú·füyFùÅ3kUXÆ=s´›µµý”Ëç†Õ¾\¬Ž®!¶,•^fxèu*÷ÿÊ„ó«+bT°ô˜…‚…:YVFêËs ,4k³è*1ëà#æ@ æíÊŠR›‘í7þpP*b±”­Zu¦““{³ ¯qîžW‹«={ö—>þ}Mç9s¶‘$s³MT_ zäxè×FD³ö>I²J­”Ê\*•¹Ô骙¯`ìÕš¸+ת¢®e 1Ñ¥”J×4ÂU÷îŒ2™l‘[KJJJåòÞv\‰DToÝÊ(êR#˜±"òÚÎWÏ?®0™hbÖgv\uh#ÉVª&MJ™>}ºÂÍmî¥É“©¤¹<™Jð«7Ü{ —óÕ‘**Á‘½qX®š?¿òò‰'}û~Ò«#s²-µ›[ DZ7·~*å?³ÏGüÚw&•t¶Äµõs÷nC¸¯¯oíËÅZß5¤6OœhæÐ>OpéKã¹ï‹àêЭC*Ö/n‘;ËØ«×2üÜ 1ØÙ_JÁ¢#c:?r2ÒÛ£pÑ¢t…Õj³ëVW?¾~™=û[;®ª«™SÿšhÉ’%Qb±¾¾¾A.˜5éwÓÑÚ¿SÛU«VÙâ‡7‘ÊònYÖl4J÷¢"oˆÅúô)@ÿþU˜5«Ÿ68¸µ{ZZ1ú÷÷Ƕe}ñÞÿRš«ª.µŸôÜ…¯—ŽÇw›Ãì?»8û¿t6O¢ÚKRD»r/* Þ•mÚ´öÒéV&'o)ò_®þäuh¦Œ„\J};yå&·ö€F œèù÷'U·ç?_CháÒ3ú_h—>}ú”_øA‹±ýÑþ ßûð/[@¾ÛQRIïÀ‹?‰K­½Yÿ=tV3wlqåðWŽvˆ`þë¯o‹D[Ûoü¨{¦s×¥^ìó8²ü”óº­cJW¯ÆX ý ´CŒÃµ¬Ua‚Àª¨¨Ê°ƒ_9N}FžÕZ·Ã(‘lRÜÛT‚ÌÛýÇT¦\ÀÙøÞÿ dÒXI«í³ôz˜›šX•¤ðÚCí]œnrÜþåó)ǽ¼¾SþÅýºØWˆ¶\vöIž9sFÑ3°Æí¤.[/eŸ•–VšÜÝÛó̺®MʳZd ¥†T°pÜÈÎöÏËO櫞“=¿üKà8Åbá±è¡G˜ò¦Vq¾¾¾¸’ˆQذŒ-‹‰ä¯Gâ ȱó¸çåcáêÆÎº6ÆìL ¶OΜì V]nß$®òùÒË«««­uÇÃôwŒ “:àê«7~âĉ+$IC®®Ö¾ƒ0@Tåé9*ìàÆWŽwõG ¶ãêãÌ Æv{@%øÁtD‹”2sFY°M¶*V -{èP†±:?žJÐr …rç§ì¸2i¤U{ûÜ®Žù¥Z™ŸÏbêRpõÂhÜÀ_|QAýíF¸šöªke$»˜ 5Ì8õb“òÔ^ñ3thoã ˆÁ¬tUr(9Lª¤œ“7ž{“3fb1‰«×^³”7»Šk Wc{Ø·±/mDú„ú—““ï°];ƒéÑà«ËÛ6È»‹«å×Ì@ÅdÚ«ú<¨O`%nûØ«Ù3jÊ!InÚôg%øSêÖ œ¨Š¦â2‹ÅbéÖ­[ô‚êñKÆ÷ȸgŽòòb͵Q5kÖ¬­Ön#¶Q)[¹‰íèê{GµñÜ\œ&GZ®ÁB%„‡9鑵ã j?üªý¨2&mùrF49;Ëï;v,1*Š56=A#½ý÷'ˆµ÷'ušâÞ½{Q‰Ä"´O£¼þXÊΊYUaÛIš?™}G7 SòëZ’ÌN¿RÕP‘Œè &ïlú¾²3àüç½tÓ§¬U?Š”¸~îÐá¡ÆÍ­C;³gÏn„+Ø>Ö+''ýŸpµ|Ñ“ŽŒ®¶Fø69ë5ðà—h¤ê\%IÞ>;­Y\}ôÒxàÏ?o³½3Õ®áçmU»V(“H$–{÷îE³`»W©»!•tÔU¹|9UGŽIËÝÒsõ¸qTZv\ÍzÒCQÏ-ä¼>’*‰…J½[Ûq‘mÇÕÈ>¢4IMƒñþÌ™3m¼¤HDÍŽŒæíùv\\E·nÝ¢,‹…‚ eDk\•ž=ÝPó‰ø™–$#¯å4‹«”#Cµøâ3½ª=¸U±dü€&ïÓ‡º0îÌJÝÊ¥‡Ô&Q¯g#@-jcƒÔWæÆŠ­ôT#‚ŒM?|hßþÍÌÌe»vúÿ¾V^·ÔC‡­±Ê ¤6™,ÚKæþHf~ªfþf²–lÜ¢¥`ª ­6â¥={ö^nKs½þÏ$šMu†ÄiÓ¦ñ³÷ŸlXN`Öça$«‹‹™cPíüvâ ¦¾¤`YÈM‹…EõíZÀ×ábÊÞšâvõ³%«OÉåò ©y‚c»GUTØÉ,,­½ºÚ£Eè #¢jž#ÓÏþ€TÂJ‹ºÊ`0d¬ûú§“Ú„—¯Ñ˜Wtû6£êÚ*/µ_kÄ¿3Ê]ßM8.—ÿ¬>Š<´VtJPuà%†„„PdûN°)‰c›y¸Å¤î–ðæœ7¬‰Tè4„CºO`ï at–9S"' Ÿ õs#À§ƒ¾u®7qqq–O–Û Ò›;tPkÝÜêv÷m\”ݰ_üPÏ]EFàþÂU·®%êÌÌL‹X,¦X,âKÏõàŸßŽáù?Çóžê%3AOW[ýnr°•»ˆr'ÛÿÇR’¢›ÅÕÅ C)•Øl¼"‘ˆÅÅÅ6cv\­[€0Õ@»¹|¤êò®·OýŠÉÃqÕ·k}ó Ã)XË´Ùÿ\ýîÓõ§ Cs•"áZÙq•‘^bÇÕ˜þ®Qµ /&ZHgÊ 7¨„ÕËUr¹Œ*A¦¼  É#GNÅÜ0ý¸Ñ Ë$iìÚ•yÀ ó½Èe¸[:iµÚ>Q«³‘ —;ßýë›çÿï³cpÖ“5'Tâ«:)¥vWÔ–Ä`Ïž=£¢¢ õÝ>´Àüûm[. —mã?ÿs;Ì"°€À0€”#{gÁqwYé.Êv裲'žÈ ››ÕaÙïîRÅq7ÓÃÕq¾69Ro[¬hM}z4åAÞ|80W€‰„Eg[§4ÄUô¨£IñÿŒ« §3ô$Ù¶m[}S}÷k-ḯ0°Ý5û}"‘I. ÀËÜþÝGpUx¢¿Ÿÿ$dNÚÏaÃf˜^{í}šî~iÇU¹b¿^2œãïuŸ–”5;¥DÔµKuî}ý ÆP žýÁæõ?u꬘›_=îê✠ÀdäMŸNI3c{äj/"],†X¤trb¶ P0 wÏíx÷ø¾}§m'JŽ(¨´9ê&M©ÝÈíÛmŽª·oߎ’ËGÕwûÐ~ýuîýø¨ ¼yl4Í×lŸŽ'ÖzqÉ’ýœ3'Œï¼CÓ®]¤ÙL*ÏÄPsÙñkËtÕ•ÑÇ?)›;—tww4Sx¸j¸äM+Ë/æH²¨¨H€^î2S›V·þ®^x¡nדq}áêî¿Èµ $ÍeT¢ÉÉ·RS ?ý¤üOÈñ¶í­·Þj4À²‡Vk§Žê¿±GZgÔk ¼›t“i±×™—‘M’Œ''Lh|¤fëÖãm”–’NN ë}7F,[Ož<©ˆ‹«ý,4fRþù qö±'Sj4L³)Ųd èØ1Ë׋N~ðÁÅ´iÓo½ú̹+GÖœ9yò¤bË–-Ê-_½sâAîý’œ1ƒ‰€µ ˜˜2wrbS‚Œí]VÆä  Úc*߆MŸ>]aµZ­eeö°25Ùʆ±ñÞygI²Òx€œÞîƒØ±í(zºö§HäÉ#G¢4-}NúµÎ²=)‡zžÌ¿C'YË!‚æ1cþäÁ,ÍáJ,‚Á6¶ÿ†«eo+íýš?¿á1pÐÀ§¬^n÷[ÄÕçŸGåN.ìߥ;‡öèÍ ß5÷#ʆŸI›7sX!:‰‰£<þü“1V«Õ:mÚ40\ÎÎÌ e o¿eÇ•ê7(÷4  ÄLJÉ$ù 77ÿ÷ïܺu«âäÉ“ŠÐ³;Ï}¹ø™3Ó¦MS|ðÁÊkŸèÔ±ÀÖþñD±˜e—/3…E»í¸Ê8ˆhÀ'È.ȯ¾b؉'b±Ø ø4ÂÕ®]©$I½^OƒÁÀ3Þh$'òÀÒ` “âÊ¥xÀ›‰•¬¬øÂ ‹4"‘ЬŒÛ?°†„d±aÚ¶m›]Ž#ûøS"®þOó¿w/IÁÜ,®ÜåH@+X¸;®©BT‚¿ý¼>§U«ŠG™ÖÏ£ú¦D\çoæîîΊŠ:w«ë×ÓS‹Í@†Èv̵k¤\Þ¸¼\NÊå­vÍnð÷Êí†~HZÀ§B$‚¦W "7|úÎ gç7"‰ËΠ¢vÜBážhÛêŒ(rõî Ù߆“´Ø8P+S¹¡{ÇcLçhR0Ëd¬ù¼²uhãTgGSIókº§»{×þó§óNðþ—a4æ‘4uèÀ¢ú}Ôíœ=&ÚÓãÇTZ­V¶iSÖ„¼Úaëò.]æ’´EÖhIÖÞÞ£—W'»ÝËÛÛ›ÚFœddÏÚºµUøäý7òšÃ•§Kвj˜_žE‹¹Î߬¨¨ÈAán‚HTÕ"®œœr­$ôZ¥øC“¸2ÈÏ?]fß êôO#\••±‚4Ô¥Gîøaʼnÿ5FX,5qÇ"|ì¸zóYQ4aÇ•Á@3WFPYëê p!ÙÓ“© ÔߢÌ:ˆh‘f[ 8R"aQuUžWæ+ȯéŸN.ï¾ë‡e'¾›0Ûg*L@ž®&=oä¿ÿZi»÷N£ñ‹Dä¥KŽÊi÷n›oã!¡-ÎW»vfcy9ívzAØ®£ öÉA”J_¹µmK¡<÷f³¸êˆ(ÀM µš)Ìù>¼¹‚í;¤û5¶§åFeF>9èkŠÅâ ׯ·ñ3›ÍìÓ§´ ‡Ú†ù3=vêô 5|çz½ínSåõÏР“L‚Û'IKÃÝfssz"Òn”WIò J‚‚‚b0÷0Ѝ„À”eeÄͺ6^.×ír‰ˆKOgdÝõo·,­ù·äX‚\Îz°cÒ?˜Qãëæ”M’YYY1íÛ·/MÞ…Ìšû´Ì\¦zð€¹õ·‹³žR‰”ÓŸñ·W[ùI|3»‡•õdîÂÈÈl’dEEóÆks÷îÙö †Ï?ÿ¼Ñ›–$‹3âØ¯GÉ#qàêJR8ØjSppp½1«‰«7ÞHÑ“dxø}Ú6-l²4Y~òDž$-æjN{Æ®Îh„«ï¾ËÍ¡.=²Ö(o¹Š|??¿’ììlÛ'cT@•άƒÂ¶ªªÃ•^óÐŽ«Ü#ˆzÙqõõ× ç½츚9 ¶—¶ëLgþ•`õd`çÎc Ky}€W?/†* `t®TZ÷brqÖÓl23ÿö :Él‹'Ùì&qåéY'o½ž M8p<[Zµä3ÏÔÃDEE5Ò 8¼W;¶õJy ŦãС´Q'¿hW]ý LM‚VËt–ºÞ\A©ù€—ð%°@zÍd% ÐÃÃjêÓ«Ô4~ÐjÁ×ǿɎ ¿¿?F#ª®|ô¢Xÿ„Á§Ÿ^ IîÜÙty‰Ø*ôf_qx¸É˜ÿ/R*1sp·ó`0Û¶²E©­[=‰‹k…~àÀ‘˜#? <ò É$Y^Λum„©& ©·›»e •uׯ*w^ï36s¥ê«¯l'lyø]lç„3¿ >óòËó£jûZO±‘J, ai)ùáü[ÕR©í“襉#iÐÕ­x-úBúûV5cpÿ”øüó?9(€ãÇ­@\\>6:;Ë…ââb6—“š×N*Ø£{®¥>¨ÝÜÈ'ž 7o&KJHA ñQ¸ÊÊz¨/*"W¬ {õ²=@b±m•àéISðˆjÓšJ!?»¨Ùþ$&&ÒvØzÚ#qåá‘âpÂà¹çjã¾Ý4®$V!>,ݾâ0«øÆ”®v\MsÝrà@:ã£.°~t ë5×Îï¬Y¯ÆÜ89ëÌs#‘lûÍÛŽ«±c©²Eٵݗs±Àv\=ý4•¼=׎«ß… øÖŽ«¸8Þµu¬8!áÈ‹gþþûp”}puŠTBøâýa:tûvÞ\-Û\Ì¥£låY«ÜÁö>:I³šÄUͺ„Ÿ|rÎá¹?þ·GâjÛ6Aú÷ï߬~ðrqü ')‹£)@K œÀmÙµk·Gâ ø V+Kh©ÒR mÃB7þF Xׂæ:T?ËÀ§‡€K_?}Ý–Gô‚ÚU"açÎ4cppËBpsË2ØŒ·uõJ$NŒÕræÌ¦ÞæÕÖ1ýæÐÅ\ø"xü;›ïRÆa/Μ0Œ2©Ì^Ï¾Õ åOÒzæ ¶ÃêYÑS§NMÊÊÊŠAÓ¦ Ë€ìÀÙØ¹}=ÿ·¼_¢ÎŸ¯¯Ø~T ïY/š…(`ŠW+WRŪ8;®^~ ¶ÐäÇÅb–™ÍÔgeÙ0 ü ÐøüóT˜Í4׆IªÍ¥×†Õ=ObpÆ3,íNÓ[øí¤à€.ààîÞ‹Ëáª{w2&¦ŠIÝód{6% ZÓ"®Z·&÷ì¹ciÝÊÅúÃò‘ŒÜÞ^]{|îæ.ð¯å`‡¶Ž>¶( Þl¨c¾ÿ~Í#q<Ÿûì¤NW4,Ø3á5¶ -ôP3 ÍYlY¿¬ºÐ´¥ÌØßÊòñ›Ë)‘4¶I¥dïÞ:Žw˜2™+Åb±àã)¶ôíl î3žƒ»ç3c?ä A‹ƒ!~ IDATÕ:wwÁÒ®•ýúUqØ€Ãjÿ6; ©$4ê+9sb{?kw©,,MYµªþΨÕ~ޱOÀÄuŸ®=Ú±c@¬H$ÒÐßý¹ŒëA’V+‹m‡ê­E€§€õÏC•S.“IMnnnܪ¾<–›~ÎÎ_Ù§ï×µw/ÊÇ7Š#¼ìSòàÖQzº;3uwCyŠÈœ 4ª3¹hQœ. ß.K__]õ¯ßl¥r× †ý½·N¾«·äl0—$Aà–-*æ7š‰„=ÚÊ5‹–Psѳ…( "2õ´Z› B‡/ÆpØG×Ä×e]ª-Ìü” ÷hWêKÝ,?ÛDŸÆ›R)9t(¹u+i²é!!%)Üu%Ũ<Må¹Dþ¶á Û´ÉÒyxÐÒ¾=9j¹lq¡:ç^>©ktTÈrôtwf^Ú1’6ã{íÎb-®& E °ÖŽ+±¸îÜuNÖ­ÄUï~47÷A¬ ’zÆvϽµ5œ±âb \-³¨²’’VÞy7¦:¹2)L"‘HÓ±c@Üw+Ö{~|@BÝsxËŽ«nÝESÙúÅBxÝî÷KÏv¤Q_IÆ÷u› W¼vös¢X<_ÄØeéâRT½ø¥Ü°h<ÿZ>–û¿©?²i”¹[G‰ÁVï6ýr±P,ŽäæU«YâÑ,®xz(7¿p‰$ÌËË{ }å¡‘$ÀªÓ!Ú7V]8¢@â+ßbì!pû¨´Fügݺáì7ÅÆ^Æfã•צ¨Ì¹Xð³ÒÒvÀmÚ˜MC¦“NW ™L† Ç`ñ¤ÛèàÙ[„÷¶áï9üÚ3Hܸ6l]â<¡…Õb¤g'h®*Â=¨´]*­£À}©uwdõ"¥ e€¤u¿.ˆLø Ãd¢jŒ)§UäáýÞþ¿BÓž{i€w×n=åÞÞÞÎQQš¢OVìUiþñõöö®îÖ­[õànÏ—‡ÆìïsýzLw«Õj*?“·;ÜÐáƒHtÛ2¾{wäed cm‹NN/Ü~mjY×-ï¤Ê<œkh ÇY®²<ýôD©Å*àôZàcJSŒ¸ ¸ôpøuöìÙÜþæ¸:ÓêÌl¢rG`ÌlÄ'$&ÞAAÔP]ÝÝ¥uk`ð`àèÑ[P~¿ŠxÔT"³´­Öwb²»»—_£kUU¨ðô„7€Gâ*6¶J=b„Gc^=š„‘Fè’‰«=GÃÔeæÏïƒäd ª hߦàdg ¬Š2–š†$å"칿sßšïø³þ0ô?대ûdÀI&Á† ?j¾»ØCk£«,®Þ^Ó…Xß;@‘Wb1ʬV´†>5 C‡ÓjªöyÔ$nÆ ¿÷ì¨7Ò’3C¼ïÜÍ”WTT8{yŒ.zgÁFÑ[ó<|+**ª32îUŸ=p£|Îûûë.‘HLˆò1Á\á¶õ"—üŠñÀ½< ›W—/ãöÄ1wº"ù)L…ù³R,ûx©eÍÚõR±D ¤NÊÎ8Š@¯7»űhÑ"n~y¤¢êF¸úõ°j‡Sp`ú»e’зï,üùÝSx¢õkšJD§A;iÜ5úÆ×úöU‘šõX¸‚ÃÒp?ŸaΙ׷ãžX„28hLO-hÐÀæžòoömÚ0GžÜÏääBŠD´±››Û{šš½?ÊædáÂ…÷ù¦™ò‰uq»Aà¼y‹yá?†žCm¥Í†ôÙgñ ì2Ù1žnH­9Q`«§pg,IkíÝveMÛæC_á:#ÛÜ Uo Éë×kª&Rs/ܨ×'E{ã.¤Çİa!jô÷óåÒùã²ýþñÇ9Öwr}ï#Y·•~ü»æç å@V/“ªªúúö£·GÓašÊÉ{¼h6šZk92Uµ€«yó–6ö)ÌdÂÈÇîÇëF³}û¬ªUE’¼ûn³¸²„Û䜖–æxÏ­YM–þ÷Ӧ½ÎCߺsÁ 6g`Ûï/9à*(ˆ14W¦Öœ( •àÛS ÀZK{·`-jI3Ó^½^z7\œQ³íÛ3Ál¦™¦R\Í™„8[̸º6¿ø‚¶øS‚…Ô$±:cûí$œ\ó·=ÖûôécãÉþÍÎÁÙ ­u쮟E"¦¤11®ü±ç3l³-(húöíÛ÷ظ’~ûí·)))ƒÁ R«Õ"gÉRÍì9“!÷T«Õ4 LII‘&$$x^¼x­§Å¢w'''_ç…€V-3WÕ¦ÒJ_ 4Î.Θ8ñS\¾ü…Ãõ-9U>ÙãŽWs÷[=F @¼yóf¤¦¦"** ®ò¦V2 ºm…ÕP„oÖ<Ðü½+È£¨h+®áŸÞ‚›g;@I‰Ñ³ÞMzàeï_>€Z"FÝÁ[cvud$"¶nE ­ÓÛ=…7‘¯<ñ0?îÌU¢÷‘'çÍ«]‰µlWµr»>CÙ_ 7ÎñعV«ÕÖ†›[+/((,Fjv?¼ýá.<70RiúõÊ5XôÓ]ö^NÄgoAõx«šëö?#""°téRÀžËëŒqÖ&÷óÏq+ ŸRÕvÜÅúcÇ?\Dqq*`×…¾x{Ê­¦nwH‚*¡úw<ÆÏ‹µÿf2Yª/_¾x'!!¡êqp•’’âùð¡¦g›6ÎöJî¼ hb›j²Q*®h‹ãªT›«ñã¡X³æYÇ™Ë+QðW³¸ÊQ@±888yyyððð°­Ò¬d›ÊøàW ½åUÓ5&Ë—§N @×®‡q2æ茵D͸:rÞÈúX ÖÍI'?Tc"€ÆÀ®]è¹};€Ê°H”߯Øó9”/ƒ':@Q†,\Õ®ßÕ¸ún„}—Vxó­µ´Ôf3lcIPn Äâ/rqèÐçX¾¬3üò×!£ß¬Œ9ãÖ«îoOOOÄÆÚæ¢Tú¢µ;RšÄÕ £à¶÷sTÍY\Mžü9úõ³÷Ö‰·Ñ·õ®¦'¢^;X·XY/¾AëÖm«ÝÜÜî|ûí·…+ÀA+¶/,…mÚ°Ìdb®ã+Ìjýt^PfmÙQÜÕ«©{ÖØk*+ÓS*ídowxY‹œ…T‚·Â1ÖÝ_Æ< Cz4QV%"ó7³8#Žm[kÍõßbÀ<ŠD"~øáÚòrù÷ß3j¶· j`F"æA¡C}•éýû³/DPÁÍUצ¤Xƒ4Þ÷pÅ-‡ºÂ\îd~>ãÛµ«eÄ:¢öðð6­]»Y-óóY]¿©Ä"Œêû2Ç 5!MŒ·*ž÷3Rtžžu6¿öí,Æ«Î-ÊÓ¤N¶ɲ²Ìtqñ±ßßÚs­×D-Þ_›…ˆÆ¥®¶®Ðãk3ºCÕƒ+̬ýïNÂÑÿ„«Õsž´·ãââÃû÷ëÙþ´IÄÕ¤á"{ Ë   êÕ™jš'¸d¦Í5A&ÉsÀÕÛo‡ÓjµröìÅZ±ØÙ L®H‰Ä¤>~œ‰$ɘ@\étম²³YÀøþv\Y®¢9àÊÙ™÷i®rÀ•þ"îØÆà/•–éP³b«®¶š6oÞ¥‹Å<øùF¸:¼#ŠT«Èp÷FãÖlׯMg·i‘¬f #ZŽ©Ø;°î¼¦TÚ™eeu‡bRPˆW3&úëjëÑ ÿ WbØŽ Ô$Å]@ÒþáCøÌœ‰r5š4.bÕK9]¼Üüe‘¶Ù·`Ãt;o0ƼºÒþ¿ öìùK+ª¡-úäe³ks÷Àõ¬¶è=æCûÝÇÇ‘1‰’ÑÜê ‰¤€g00⌮SÐyÀ@¡´Ì­ûÍ&’ؼy[PPOiJR¡‡T ™,È81JÕÐÚ‹;µO„ç˜éé¨W‰xèÞ¿3:Û¡µ-  f)^{³F>¡×‘jÿIâf Ëʲ:¯]kA»V:¯´[Y²U«–x‰D"¤¦¢þÛ«D”xoŸp/¯#†.þ ´†ºëúü³x晉²ªª*ûo…E%’߯·$RȲÙÞj$,X\m0ÔMwYU"^\5ŽÍÞ\/‰D„sÞ§®K9'´[×eû'HÂÀî¾Û–J˜Ífº.{l\%Ýë…ŸFÚÿ7ʱjÕòºùËY×"®BbË×iÇUNN%ÑGÙËX¬@LÐ}6p>Ú wï fk\‘O˜Äb1öíÛêöàA©ô‰à©'ZPR"sŸ1ƒ²¶ö~•#12=€Þ¸jÓîÐ¥Øq%‘ ­Xlk¡ö7“ >zô÷D;®t&Ô ¢`˜ÅÒÁY*]¼¬/ßvA²?|ÛK$%™ájîâ¡ÿÇÜu†GUmí÷LÉLz%@ "5$Azi‚¤Øé‚¢Xð*Øá¢¢6Š¢‚éÒI&½B*é i¤gz;ëûq2-3“xïç½×ý<û!ÌÙgí}Ö~Ï>»¬õ.ö^ó@`dÐû)€o âµ`’RRÒ„ýúõ3þÆð| :ÒJñý›0êæë¯÷«½¼×¢Æx#¾íâŸÆÕÏÛ§›Ž1O©ÀýrÔ` —cõ<ŒùWp}Pû5ZªnÊü\ªmVÑ5ݹ <¼¥™´:­ÅïÇïuÉÍN×€´@Ë»÷§+>6 ަè 8 ׫÷è6½¦ÀÛ?8á§á `Ü‹@Y p·~¥‚eݬp5n÷1J¯ƒ*})âw®G[ÝtH$We,Ër ìý\ ÈU(ŠX‰@< Äˆ+d:;Ão#®4:T³,y#®œœÀ ¿Ü Nƒª -mÀãñ´sæ<)OLx‡VOAÁ!-ÞX:B0†O5%•Æ÷í·L;ÀAG€ ÍÀƒyPGuó;˜<ÑQ×§Oò‰' ûáÎ4ÞþoÂ^=˜ Œ=|øpZ»v¦®ÆÏŸ ý¹ Ê.l>^˜ï$_3Œ³ÿ®Z.¢ €’ &byTûÓOC¤×SœƒÑ“¾æèÈÛ°¿Éoȱ¤+xA¦V4Û=ЗËÚtOL·â/–Ç&üòF)o¥‚‚2zè¡ «£do÷\EHPͽªb 'ûÞ½mYÇ+Ðâ©–‘–$¿|ADD†Ž?^1wFÔmúähÒËË«~ Nݰ2.\!èÅGÍ v –Æqeê\¦‰iÚ,ßð˜ :#æàå'Ÿ|²R(älBüÆ[gþ4ƒT M™bm 4|x‡ÅFjÄ OyKc™fÍ3åò®eûöÕQxø‹ÅôÏ×'± ;ÁWåûÈÑQ¬úÊ* ÈèÂÅãñØG§[ÍÍdìæ´dæÔTÿ*®(ÉTY‹ÿ®ÒEÉ<\6i÷—›NQý›ÍûuÑ`ߎíCD¶îú÷-W”—åk¼=Å]œì­­ã9gñØS'-êyuñ@NNNôÊ+¯Td$]º"Ù#ˆvCn’÷‚àÓsrˆs¬¬ýƈ«ãÛЉ!·<@«ˆžzŠbÌ_!Må×Ñ«–D]þòË/+åM¼YfÑß7¾ˆ$‘PD€ÄªýãÇwy'›ò䂼5²ÂUÿþDqq›/±çhWk:Rkk‹>+«žbc«ÙÄD…ª¢‚Œ†•,˲Ù1Û[ÍÍdìå’c|Yíï¦ÿÿY\ <]àîé‚ÜVÙ«MÁêjðÑr5¬&Ü𛟰â™Uüøl œµeR«uusä6Mµz Tó¼fˆà»|‘¿3Ÿˆn%V4Ÿ½ÔË!;ÛÅ5>ž;Žwp&ÕhŸ˜¼‰O`ôRnª"\"¡ï³&; ¯_Ï¢… ÃI© ±úRªt¦¹²^1VxáÂŒ? ½º”d,ø¡qò}‰Å/Q¡ €X(bÒ¤¥Û¶-ur›´ó΢E«î¬[·NéóÜs.CÞ}—*kj–¶¹QðÝY ß°•CBÄ,àXSÝÜ0´ºC†è{µµmìââZÙ´nÝ:ç°°E‘ Fùî†Ùt_/¹ €«¡-‘A7!ùõc|úéG˜:µó Ù™jkMËî‰'âüùóNžžžðì+µ¢,­«ã£±ñkvÀû]? vîjŸ¤†‡plÄPßÂCï~•Ðjîê_ €Îƒ¡&Uï_eÕõïxž‰m÷ðHæÖ/ä±c‡x.Ž@J¾*Ú<¤)e½\ÅqÌæ%¦Á¿Š+hjqøôoü´;Àô(i¨_oWwny­Ñ áæëªÎªð}´¿©·3„B î7ª«f¢kMMÔjø|=DüDížÏŽóG0pu"wë¬`ïi@¥ð! ‚+\éàÀ‡ Soå ###!•J;¯ ³(ÇãÇ —’1Õg‰Åµ¨Aj±B¡@RRUÀ×_vÚ¼¹ãÎ÷‡ÎÞÙ·oŸ<++ËG&ûiÃ|XyâD¿–áÃÁM¯û®Ž{ßTªÚ Ø•Ÿu²<£c(àŸÁçôúâ ÁR©¬ ++«iß¾}ÎgÏ Õê´‹tIî/¾Èu®ª,p5#* [Ÿ™Šm?¼ @n†Ê¥’S›;::1jSEe3BB¬©pïݦOvìØ¹LhÒâþ !d9Ë•öAP@úô&ZÓÛW..ª¥ÕË>ÜÙÏ3|êÛ奢:{‚®²}œkx|nµ^+ ÷ ©Rç ¥®üaP½Ë؆?‹+Ð2}ׂ#G‚…,[Úõ÷Ú¢sMÃfùzzzºv½fx¨++–=ú„‹Kêí`ï®…4àf\/±¶ÝÞAC°xån‹ë|€©«k×.^ÉW*m‡“6L HMZZZ0mÚ4ìÞ½«W¯bYt.褂AÎn·–â  ¾|xøaðø›•Ç‹Ž?΀—›0ÿ·OÃj«D›Ýóò⊋‹Y½^ÏìŽIç2“ ’JªµZ-•––òòòò~/·hÎ’¯½„}—Œ4Ô3còx_˜à1¨´w™®íêu>£>Äõë –.åÀ*£Àß°a¾øâ 88p[&..9ÀúhX§¯¤ä98œbÛ¥rá¡K–×÷}² !Ás Óû:t½W£ñWÕmû¸/†“øEUÃN§ã€Óq,И•¬Pëêåå…âŸ@{Zÿ*®F FÓš]ðýþ&W ©ëe#®†…ÊZÚ~u©¨c…+½žÚÆÉâûR @ÞŒW^ÿ­kpÒ¥|[ƒLê'€ÐÐPÔÖÖbìØ±ÈÏÏç/ÍcÀÕ8w=Š€ë¨ç½|µ*†aÄ“'ÿ±±[x|wï†R¥Z°lÙ2´ª–ü¢Ë‹k¿¼à^U5,.,,ŒåóùŒºíUi‚ä ¦NWV …B0`oذaŽÃŸ+Ú¸ô²×ÉhíHSM7ó¾×éÓ“p åå ¦Î W«ççãÝCM š àÐy€¯TB€Ÿ››‹ñãÇC&ã—òò_À VÏ¥Ó7}:¨½¬Pè$DË2Ç¿]‡+qåPk¼¬p%“¹‰¿?ì&>¡ {¾¨P,}n˜SÈ€=,ßo?înlÉ™¥ð¯ãŠ$ !*€çÒ̧u C¬RI%¶ü²Vχäÿ8Ø­;LÊÕxEש¢­}d Ÿ€WŒ¿{¹EÙžî6ÿ¡/-µ%?ªàü;åWÀ®¯—˜¦ÓÔÂyhk€`³…›È!ut÷£øÎ²í"JS~ÜœlO¿+ï”Ç*qäÑSO«”þù•ŽÒÓ ºÕ/wÌjÉöÔ#ÁDDTq;¡ÇþðµºP×U†yÞ±cg¥'w}ŽW@H·î{“GŒûS¸Úý×UËçÙóm·¸:rÄÏ+W®d]\ê5C†}ù¥é÷ŒÔf›}¸õÅ(ýĉÏZÉÎÈ ®s5 ï$' ˆ‹ÚnhÓäWTS^N5ÆŠ¤ÙF\m}Æ`aÏ´ˆ( yêÔÊÉL°Ù¦ý;ëÀüõísGö㡃6täÔ­~W¬°L]žu„ЄaA W¿ýtËÚïÏ,éõôoã &ÿ*†ZŒº¯¿N‰œt¹œ$Œñ¾þ šx<Ô‹Å«n•–ÚnPmi®‚Çë™  8Š@®.Nº¼¼<ãY½VKäåeÿ¾~ý´$q&}z÷ÒÎÍ×ù¤¹É°ßîø–ÜÝÇYtT@ïqV­M-'biÈkù ³"ƒÏC]ãy4›îaZH¯RmÚd΄۞Çé”÷#*ÌêÐR«$_&c‹­Ÿ¡‘>]Üé`µ¯Tšf¡Ï7šiâ¨X’0DɤÏ}BŸý±Ò`h;eJZ7:¶Ü›比K[ôDDzUñù=Å3 r˨·×PíÁf µµ©J©=áIL{¯ÿ.®€§o¡6µðÐ~ †ùs”Òi’–ˆ¨½­Eçè(6 Ú+ Àí—‰T†E¬^«M¸ð®äì0ÒKìúeë))É2îjRŒ5…vãÕ䎎bòñi°’ô(e««£$#®Ø´ˆ„†ø©»¸rs£<–í¤ýIj«)È­pÅã5“R©¡Š‹QV¸5h°…>½¼fСïX’0¤÷£Š‹£ôL`”&CÛÏìêÉÕÕòWH”^ÎzäíÆ#†Ñý)\e$WZÝv¦âb"¥’þm\aH°ÁG ÄÍÔÔÔn‡ÙŸE ª“B‹ "¥9\\[…‚èõ×/Ÿï@QaS¬^ Ì=©±6Ÿnß."‘È*°¯Yæüe¨ººÚ¢¿žx‚íÁ1žËQa7m6 seYâ¼*ß' çµñÿÁð›U=NŽ"—›5_˜­,²­–5º!¤¤¤Ÿo`‹ ïæ>Ò%ø1'Šs²Ð÷ÏO%>ßÞx㢑J«ëŒMz£Ÿ2,Ø‹† g³Ž”ª§Úo­pµh"²Ç’®3°£Gé±*+\F ´‰«””*,È"éu_ \ 2|0iþüÏH­Ö‘䢵ÍÞÍ/@¾ž\9@aW7­VK£F²è/‘èüŸÂÕôÑF7j‹´`ý¿p%=å9‡6˜Ö÷ªû»:.ÝLåÍŸ¯v1®ï‡Œuô×$ÝX¼¥Ä¯µCÁ­ho øýwmõõëBÿ™3MëÜ„ÒâòÖ¾6ÑU‘θP]]Ù³g#))GWZ*غ‡ÇS±!!«©´ô®~;ÓÆZ—Ñ7ÂÁ‹ß@ZÚ¬Xñ6ÊË®B£ãCÈg¡÷|Lî0ì3ønP¶ZנŽ{W{o{†'°0›u¥òf Úˆ0ÀòÂór/×cV{¤, õðpöìÕ«]·„Ü T¡Ëµ‚k\•›—H5Zô ÁÑ£•xûíe¨ªJ8‰¬D#2¸E1"lá=\¸Í,]Á¶´06öæÃÙù„öÚµkÂþýû[\Ù²…qæ©v¬ÍrÊ{‘-Û?[¸*-m&"¢£GþE¸ÑÌ™”KDD±‚jCÁú3èä&«K74`РÎ0òšºFŠw." hÝ#œÀëׯ«Ï«híé!€"¸¯šÿ@Ùߌ²Ú## èî…Y² NNnf¿\~q‘íŽè µ7hˆ¸@æu»¹êXÃñÊÍœ4âÎHi]9C®Ní41ü‹z6< ©…ü{_%54PF—çÒªЉf[$ *~ÙÄ^Áê(út ¹¹¨hjÄ;Ú_HÛ^šDÅ9׌EBC«ºìÝ¥àK|>Ÿ­»àk÷¹©ækêšÚÛuÚqã–ª^{r„ÂÖ=5¿óéö•/Úˆ8ÖÛY³z<üý·´O™2Eò,QÎ, I@ù?¡‚Ûøq|?\Ù¿W è==§ôˆ+??¢¬,î¹›ï·Ë¨â=«=2’€R„ËæÌY¦P«mÊÕ|Ó-®û44yòwu»»éY½Žû–ç\£m/M¢~Bš1›Üœ;è‡/â-ªÉ¾¼ÆW\Àdàk…«’â6E›ÎZàêÊ׃Œl;|hjÄ4 Ûéã×cH#-¥¸óÒÌIÍðc¥Ì%òó‰eYÖ^P’€61ÚUœ˜H]cjUk]ÿõ]Jùq4±Š2‹k¤“ÙäwrªP:8¸Ð¶—§ÚØò—Xˆ*--¥@¯,±>y5Ïñ‡6êY–%–%úå¢áÃípæÌ]MMç3%zƒþ^þ9Üó›#þ \qy•M\ñù õ€DpÍÑë‰/\Бľ£uÝ•ÁZ´hÑ"ë ÅëíÞ÷Ï5\[BBvÛÄU~†¥‰«“QꯋéêÑ÷IÕšgq­¤(t1|¯_š›z€.q5r$řݦ3D»bcE9Ôr34DD¼ü¥C!~ŒÅ5ŽNÉú4¹W¯¥ZM¡¦çþõ=ËAM Е+Üì3óâªnqõÕ¦‰z.ØCÀ rìâêÕWMž ®xÀ²àðÁðÑ™n—¢ð–¦MØaÃP…¶˜hîG~ë娭˜yì˜^¬¿ÿ&Yxøë:oïG€W` €ƒ€•óÆêÎ|Çç ÙNùŵZ®ÎaHHH@hPµáš‡‹í{n× ”O|*{öÄáÝw=œm•qqô1þ=e÷#añè4¼¿²ye*T%âûϟŘQáíbW,~Jå¤2DÜœd&†9{ÞÞhôµÀ,3²JðŸß‰ð§‚+t~oBªvENV‚ü罫hƒA{CÜbLp˜[€Â§7²:%ˆ¬ Š ñ¸q¿à“}Iˆ)leP›|,‹‹Št3gÎDyy9§¯ÞQVÆŒæibÈ×¼¸#Ã+V99€Z M]põjMûÁƒIºcÇšÛ¯]‡©ÆckÔ+&ìsFc¸‹îšûÆçù p,Éœ>}¿ìÀà÷ß!»v º‹[UUÐéJJ€Õ«¹’—ŽèÆ».à[ø˜¥”Œ"-œ={Ó§O‡ZÑlÄtm6ïùMù¶ åå›l⪩Áä{¶X0éÃ0º÷o𔽱ç0Lx0?ï]…“'~jolî@týF¾†²¯ÁWÀ" ¹•ÏGíµk°Àø1a+’îM…£{(V>·DþýÏReQ"òÊTxwódŒHEé1‘wL7:Šx€ ÷ÆF_ñ7ßpŸø½hWþ¾¦¿Å"‘îæÍ›˜={6 bÌcÝâj㣠¼mÏL&nL< ÞÞý4£F=_ßíÀP0»˜…ƒoªëêð—áJ‘‘(c„Â{ašÎL€—ö¢(Ÿ°÷ž/|ý5jÑzÝâÍ»‘…j`z+ðë"ˆó¨®ÞëRͽgV§?ãGïøþ$·®¿wM횾Ƈ Áíì<Áª¥Qøõr´V]À ‹Ú#–Ÿv×ëõعsˆ]¹Jç¦óìà‡7¾¡¿;nê*†ÇÊÍã±r3ÜïßoÂÊ•¥˜ºnO@xø¢¼¨¨¨ŽáÇëfçvUÇÑ£— Ñróðð GGG>|¸ **Ê­_¿ðÁ“ž£ªjjkSŒ/Ÿ¬1 ¿Òl`T¾x<ËZnuu³ Ñh°`s•`÷Ëí«f·Y²`‡±ªÜ=q5ÓÞazÑ ª˜Yh'ú¿ÏTdÏTçpèÓèÓ§Ÿ;ÐÜ÷ìΟgœþømm(töê0Pûx¢½TqªX üu¸ŠŽ†xáBà±Ç ƒ§®šk+;F¹>Ó#® *X#®bccá,H—DÀ°'Æ’¨Øwí/~ÙÉm†Ãv庹wŠmø(ZiìQa@@o )ã.’2~ðƒ;Àü—^:pæŒs^VV–ǘØá­Ž‡ç®@a¡ƒÇØíÛ·ÝÄb¿Á2Ù%?ÎC@Lƒ,麸7û©™ÀˆP ü@£#0 k˜ÇX¤Ÿ^}ÀÀoà;µ£z—®øŽKKÀ7‡3/oÓÄ€qÖ#®Þ}6޹œâ¯¼UTíÍ͵Í͵ :-p6A&›áäïÿ—âŠ(+‹¸M½BA ^ÙG·â€NkóŸb¢·Þ¢"b©v¿1ø„.:Wgä÷̬€u4`À¸.ì»ÛUëo9e–3£w‘­ôóîôéºÎ%l¬QÖÒJKû%©©yv§»nÎm$Šhìö¦zK_1ÖSQQM¡¡†õ øX0ó4eD ʼnKIy·®K35'ruzyéiÈg÷Ùä“€¨ð""š;µÌfÛ¹ÈMAF9£ åg·ƒW;û"síÿô+ 77WRßèÙá8õ‡Þ6uND”‘ÑÒ*˜Ú³q#%wZy7Û=]5ÀýÌ¿W|>QC5Ûm`¦µ¶­<=Êö Þ/_=CléÜ6Èud7(Àfû»ÎvqåîÒN*…Ѝ=™(ÖZÏ_n4¯K@@tç’ª‘îÝSY2³ú&ʈ*Q^Ei€/êÌÛÈçó5ýûW@äãC”fnÇmƒCŽ$ Þì\B÷½dWÍæZ•fÉ)o!QGNqãs>ý¼w¥³6÷1»æó;ìš‚€àVî0ñ¯ÅoÛ+ûOoÝú°nРAɽûÝ {ö•{ΖÞohhÈ.,,Lþã¢'½ºæãÓ>šæ£×ëYôZ<`äj-Ôá+‘"•c(àgf{ÃÇÙ³¿Öùz;›;Bú‹:üÝïõ4È£ªQˆðI/YüƪQ–•ï^«áâó6T~&« .¡Æ/xuµPi%°3Eø,©qð @`ƒTÑ”©™LއÖ ¬, óŠ/€æÏÃþöª¢bXU(Ò‡´U ‚nÝ‚<¡3l@K uu?"0p`@ÙšÅ,5üè:°æYÛ´=D€³s¸ñÙnÝÑ:-zðœ,z×ûOÅÑ_ÆajÄ;8š†o\çwtH]aO-ÆÔ­âžU¿Ý¯¯QÍ»±Fg6S¾v ýÐëÉ‘è÷R]} šZeÄç³¼1co{廿Wz= £¬Âª}wK’:БÜãó•Õ±·-ëåÁÄá¡8øC3v|!ÃâÅͦ¾TÝ7_q„ØÅÕó‹³ ó€âÕ€µï8 |i €³¦XÖ: ŠTó*’èv@ßäåE­z=5QÚ‰wã.%Ã0Rÿ€ÔnÙ~jÐÀþ™0Žº¬Ñú½÷(žÏf% –£†1åUózþ¢’tûêWí†o‚DBì#°róMu¡ ZåâìÌ~÷Ýw,ËZòÜ=jû«Úß·@ëæäNL°_oÜ£õDDëÖÅÚÑA€“ 3ùƒšrÎ\‰¡ ‹[×ÑBhÍSíG€ªÞEze…·ØqGyÒBŸ Ãкµ+52i»~Ö´ »)O£ÎÀ¹ùû…È ÖÝæšo,?ÊzéÒGë=\”'䇇“ñäãnþ¹Œ·7¾ªªª*eY)±jõ W”9–%½¥¡ZüÉgÿ®ž™Ün’=…‰.ËÍ7ÕÅuª–æf622ÒÂ&ËËmâj ¹¶­©¨éœÝz?[N3‘e6fLR’ÉXξLžk…«KŸ˜ÂÂn[Ý?mZ§äùvqõÚ“ _y¹ÛÄÕ‰Ös±ô[ÉO7}ÿÞ1¸rp`5 µw¾¡-29Å9ô¨û_L¶Ð§£”ô þ#¸*:Œ**3±œ-WÁÕ«$¡ªOŒŠèT@¬ªÒ||¨™eÙSLÊ77’^¸@1D¤§¤>é$]ÿœ;Y4<Ìoô ¾øCõDDMMD<Òݱ; Ù³7+«ªL*qqÖe}|”* €Ð“Óa—z:öø2º¿‰Äbµ:gÔ ZpS–‘N&ÓéÈnàÞÐÐGØ'u³d*{½ˆ¨µE¯wvVÙpe1E=è矯CsØ÷«U0…Ó՘ɺžôOùOš j*¢ìDЮõHZà’ Õë¯S¢)V¦P°-K—R:ɨþè­ÿ$®(û!®m©ð´ý #†üÕ¦‰ƒ‹7çì⪪Š{cwíº¬äóýÍ^ÆIVeûôѪ’“¹âü˜mvqµî΀ 4n]ç‘#uÜV†-¸9®œÅ¹ºzØÅU^±¤²öY5ä[ÜÚЈðIz†i±ÂUr²©ËïÞÕÒÒ¥/K£Âfb1‘DÂÝ“pñz¸ªº2Þ¨K‘tã üGqeÜM\=bàA2ü¿¼À½=Fª˜?(è4ÀTS¼ÚÛ™»ÁÁÁcÏZÃ;þÏGöïÿ-þ|LÀƒæ~<4Ø÷ªiê:=Rd÷¸JÏ2{÷}šðÜ^^S0mpÞ:ž†Yò!¸zõ ñàÁ½°mÛ9H¥„áÃsg¬¨j4a"t’Ø ùp·%% š°]wN¥²b\éLžîB>ª-hÁMÉ-WŠ;:`ïf”•=Áœ¿r×ö©&{»€‡'—˜x—>¼QmY  ㊅ ?FSÓ<óÌlãùp›í=b7ŒÄÕÔxþŠí»=ɺ_žiZ2”¬!´ÞL‹‚/ OY²duæd¿ˆæ5Ï-¢ŠŠŠ±À¨*€ñb:à`ûl£°°Þ¤­6§7KÎsF£Øß¨]\}ò ˜ûm}íâªo`¤;dçÄóˆú1@´®|J [·žÃàÁ>8qb¯ 0 •¨š*0c‘Œø!~JǯÝâ 2n‹ƒax4£“Üù?…+ãÀÖ®€H0þÆ 8€3fä”9¹ã,¹¢sçÅ"w^øØàÛ.[¶dLHHHj}}}Àè ¹­;O ˜Zðá妶:–ѳ@ZYÜóMSOyæ=†ˆÁ²e@nn·jàcì¹¼¼ƒ°ÆŒa4A,~I]TâÚÑaÚ·jµbãR|ùËŒ¯° ¤Äú$×”„lP_Þ¥\ÒÊkxR)ºé`W(Uµ‚?hû²CãŸ#F„1·o{‹ÎŸ×Èf΂fDE½†Â»8{ö¸»[Òù»u{ÈpáØõþØW†wT´øÛ,é$¨w€¦&T€ïtîñ˜¾}û6VVV¦þúëÁq FæG6œEäºG ˆŒÏ¼s'„ëhcãþS¸4û§”­[¯—éõ€XÐjWçQkú©ßÿ)–áÌhŽÖI§ó4âÊÓÓgÏnEaá]DF®— ààA¨¯\«»ÙPÆòl‡jØûû$¦ª¡I ´‹«àà0VÚXdW\y*»¸’JßÞBAzã6›×ïÝ7ó” 0CÌ–×áí­ÃçŸg"0p¶o_…¢Ýâ^‘¨Ë·Õ,éõÀܹ?ìØKøM¡w;à>ÙfY§xíµV<ó¦ÿ8®@É©$÷A à¨:ò, ÛD¤£»ÿL hûJ$ÎF¹°0ªÒÝ;d<Åj8cˆéÇ׉ÅÏ$|¶eÕéÈ2ÀU°2>o+‘ÔzÑ“þ¬¢ü'‰j¾!­âžmÉ‘#Ý-?ͳÕ>ˆ»s8-{h2ýsãZ>|­^$Y• ìm=M.;1ˆ¤mœ»ÚÛoÛ«%†ñfšRewºùmms3éù|{28þ8!ߟªNÚˆöÓqËj¯C©T±ä¨6?û2%}ÿ$ÅüžäRk·Ï þŒÎ^2êÁÁÁ»¶¯š:ºTý›“Ž$ }4>þXOþþTODZRUÕSùָϷ<º¤D™@D\å±|cÔ¥¾Þâ4@ßйDQ±ºÿ®>úPG$µ\ð ÊSAª»—Çщ/&Sˆ¿sš¥§þ®îßg­‚“fg´Qì©c´oÛ[tà@žÞH%d–o³êÏ;‡CÈÕÉ¥³þí6ëë<•dõ²»¸Z8W xéëh÷Ѻu\ª*5Ô~Õßêþ§YÒq™a‡ [­ÚóÞçtâÝq´rÞ$r;Y• ÍïQg{÷Zꢲ(±=þä³tçtI¯ûqÅã½óßÃUuUEÍWÛVŸþꫯ$gΜ‰¹~òý Ï-}èâ¢E‹b6n|)æ«÷ÖŸñïß¿“ü¯5ÇϤRºC™bkø7ÌÊTQz:wúôé§^J2tàŽVï£UŠŠê|bq½…“¸§k$~{°±#eW\YV+Ó···ÓîÝ»ÉÏÏÏX–a@²+æƒÚ`j¨6Yküò‹½zÓ … ±éFBhÒÑìÙöd,·„ëO;›îOìÅ·íL555´iÓ&2„Õ+þÅøÑ|Á‡$G>!ÚôMز¥ÃîŒ)WØx×ü6qL±D--”£×ëõ‹-жÇDÁÁTÓÒB9”h€V<„`NÀ6/YÂ9)ÿ·pŵõ⹬cftÍ­Nâ™i-TpúicI/»°½¼œõýúõ£ßÿt:Sµ··‘&Ú´‰^ðsõñò5«…Í:GŽì —ÙÅ•«“Á”áŠMGÍ8Z³3ÚHv­·ñ~}¼7 >Ô¬m¹•K^#I@‹&rAG.|&uß{ó~‹EÅÿm\mذµÒV$räíí÷§pµæÙ¢F""­–ØØÓX}ŒµMÚǯŽ6Êõõõ¥}ûöQCCƒ\¯×Sú¹r’€~û`,¹9»vi‡–Œ5<QY™‰‡RB­pUq·M2™Û|œãWϰŠr eŸÚ@$e§âñxäëë+_»v-544ËdÙÄÕíÂÈÏÇ—@A~#zħ²IIDIJ,}ôÑÿ:®À`|ÀQëÊkb4¼^naÉé¢öv6RC“õÑÐóy¨‹Å¥o½üÎÙåsœo2 ¤À‡q†Æ¹º’L¯§jþ#›òžˆùyûC¿gg+ã(“ˆÔTöz,,c‰µÖE]]Ϭ»½½jˆa\õ|>Ÿ=ÿÕhû'1ùO´ZU@DYYYÚÇçoo=öÕ²^tpiÕ*êžÍŽø=äw§k}Íe§,¶~óVjÙö«vMŒZN{>9Õi“‚{üpû'¹¿:JÞ¨'bÙ±‘5=ê¯óÐ¥Ë :¾ìà@$rGè›ÅâÏ%?|8ýôª‡!éë[œk|¦’J"UU½,cñÍïï:£T*KIÛÒFèÏ|Œ¬ÿ®Žm+XëoÔ¨ù=êÅϧžäz–eYªüÈ.®âöû¶Úê£íë/Ÿh}jî2â|#mõõA‹:÷ì!KGüöd+\M‹B•¥Œ5¸š5Ë6†õz¢£â镵Ÿ6WTTؤà®Ê?aWEG@®|½P(`ý¼“{Ôß;Ö°¢ü¥ÿ\¡¯c B›«sIV{Z±hA‚A@GÉ/Ñ®ÎÂ\ .V($µB¡*|üñÇ3/c"j¯(W'ÖÁ$=?’$ét:iêIÂpÌyZÙ]ºt¯­;å øZêï;K€–ϵÛÔ$ J ´Ò³VÙ¢Ú°¾¥…›Ÿ¤Þ½‡Ñ³Ï¤'îRS“i”»wÈëS(üÒj–ÃçóÙó;:Ý% Jc 8»vi¤\]z2°Ør³> x’V­ú‰rsëéàÁÎ¥{A[/÷ñVüVo,íæ9% uβv"¢ûU¥Òž(Ù}|³ð ;€Î| ó=-ŸÏו””$Sî¼Cû^E ìM68#§¥QÜÉ“'3D"Çr€´›6QÛšk(ÿ¿ÂÕé,MŒ¸™ÕÌqõûÑ9QnôûÝâªòWë«··£ªoïƒ-K‹åæÖÓªU?Q@À“Ä0ÞfeûÐJÑo­YK¹ Œ¸J?`¿×5¿,XâñL,¶DDz:qâ.=ûìAêÝ{« ©o»t¶Ôzc¶êÓnquë—¡íhHHiO”ìçÏ·ZzPè•Dy‹þg¸‚¯'2€´¸¡C©‚ˆô”9>vé ÄŽJ@{GTÄ IDAToÿ~’Põç‰$FŸ9m̲ÔLŠÒê㻞ü=%¥=Že©ƒÊ6Çš+§'2М9sâ©üí8ókºŒñúÖ–FµAûö%Ú]2¸:µÓðyZ  놽œägÙ‡yIÔ¯O‡QÇvÆÓ4&(h"=úèNúðÃ8Zµ²‚BC?í‹Å6Œ5A<îçÿ„ Šs,!]»”l$¹\Nß~[Ùtž<ù]zë­3”˜XiÙÿz¢€2Úñ=Mñ9ñy|c]ÿXÑÃ³Æ ‰”DD”Ü-!cDÄãìÓ×ÛUü­%¯Ý€~H¾xñ"7P7žÉ2¿ÆÑ2÷«wwÿ(öË-s~w£p’£“Q!æ†"š$Ü2ý‰«¸½Ð øP›úk¸]\¹9wЙ£Z"KÖ {¹æ”%Æ õ'W§{Fy|>ék»„9Н -[NÓ¤IÛ((à }úi{ÙÛ!ý}JR¡¸Š7'Hml ¹¹-k™?¯ŒýàƒXZ´èŸ8¾KwM¸âéió ÒiÍ&owwôˆ«‰öï|λÅÕ•+f³O½RM™cÿ§¸Œ;Ë—éÕÅën{z–Ɉ6«ÿûOóÊnœWüSloÏÀþó„üB^æÜ7ÙÞzš(€ ͯnCý÷“zóñÀCýÁ+((Pø73ÚÛ|w)õ­^‹Ò®\È~öuiËìa(€?’Q÷Ù‰$WWÏÍÂsç¾ò‹ˆpwww¤¬íÌF†]Ã݆—µ¹åEBxdàÐQ@hŠ-z[‹‘3&[8—³,à ß)ËÉyÖh VY™€ÊÊT— •^ÜQãØûýw]Ñ_‰¦¦&TWW£ºº*• mmm(,,,ÿ>UÖ8´cµßú¾¥¨¨ht[[T*•±lSSÂ3ýk!{OüµtøC‹¬Œ2nÝj•UUyÛÀ±Ù›1vHn.…žÕC¡îáYI 4þ øoÁÈicEÕ…ÙÊ©³ËîzZmm%%×ÀÀÈöK—Î× é“«EñZ45îY¾¶®_¿y½ŠŠ4pà¢<ÇÉP–Œ€§¾»ÂCAÁ+½\rö¸mšƒ°ÇßUÄž‰oó<†§e8ò§®O•v¤Í­‰‰+þW¸‚«N?ETùî@_›¸š5.Ÿ}Õ[>2Juyû1À»{s¬F3{Á)#"—“sçr½¼ãÇ!Û¼Æ>81'¡¥nŒÔ³jºãùô_\&aaa9r$† gggøøø@*•– Ù5¹·siÙÓ‚¹\>ÚÇÇÎÎÎ:t(Fމ°°0Ä_=à9DÆnú:Hzöz™ cŸ2 À„+–‡/MAÕ½œøcø>Àw²¾Í<‘o¯ÅÃé÷œŸ.Ѝ¬¬vl•†Zmi€kK Ú…Bqkà»ÿ3\ø=,ÄîÝÛ †Æ A ®4ˆîRùÖ8’€<œ‘ \“9"»zúô阨¨«—wí¢Xün uXØú4âµ³óЏïÞ™{ᓵHŒ†y= c¸´ÒRu²ŸŸ_'!œƒ(MîüÊÑÎD‰é À0½«ãGÑt«¯–d7Ï.ë§1—l "¢šÂ²·<‹Œl±únZ9…ŒÝ`¤Yd䉋åÓ†§ÂmÌÄ@ÎÎ÷ŠšÏœi½k {•%¤¼!6¶iÏKÙ¤¥¬vqõîËÜĉZoöˆ«Ú«átèÎNbÝÈ!³ZýzÅYàêðaî6˜:ý¯q€¨(þøe’€^[‚X@W3t(UPzT<·¦}á2@ôá‡GåoÅ%|+L_¸paŒ¬öjI@Qâ,^.á^p¢¢"Eœ¿¿=à׳“à`ª!"eaaa"§¤XIW…/^L²iÓrtþþo´6;p$›§ ™!R׫i¥Aö#f¹º²Ä0¦“Ê–޳v¼«‚XµÅ¹ËEEQ‡I–J ³jë[:㑚åøïÃ,@:s¦}3¡@C~>!$Z¶réñ!6`""¹œèÌ™ŠÖ§žŠ×1Ì«ý¦K—8jnî¤J Ô•†kžžÔƲ$­ªªªwt|<àN¯êʋ㠦ÞÎEgÏž¹ÑãÖäpÄiq'\¹º^’mÜHºo¾ii¯¬l³©#…‚ÈÖ)¨yfc@½½@. y¹Ûí777²<˜’߱•ꆃÂQÌ·ˆyáååMeF\1ŒZsáB…U[Ûo=a…+‹‡)ïìWewj¸=înŸ9ÿ'Û¡РAQäå5½X«›5Kÿ·ÂbkkÙ[”>"nø ÞÉáÃw]?.ûf}Þ· ÛžE°1™Ï']qFòu’€MÛ‡b`Ð]¿¾ —ŸZ2ã&ÀÓº:€ÈË‹Z‰H!“Éò]]?0î™xyQks3Í!,XžP§mÒ×ÔЭÚÚZš3gŽÊž2ƫǯ å.""¢Øs1v;×½ õ«®Û‰£Púš°öí³%+Ÿe¡q?.Ä{lÉ»uÁl&  û“Ì)úhe÷Ï\ñë@»Ñ¥K—Ôñ¢,tÆ0Ù™3çn™ô<=ÏÜ=)©-ÖÅÅ¥€£ŽÑ7D#GR 銫Ç_¾ºåÍæ+*•Q¼ó}4ôîÎë¯ÿÝpEDIJ¬Êž~š›mY1Ïg>âô35br¸R,âÔ5rŠÙÄÕ®õ–Øž0á°•‘¨”U*µ¦aRYÆ}¸mÈ{áa˜Í®º?ÉÜöR '¯bk·Ï\üKÝ{5÷÷ß W¼×6ì¹ðêÚÑ÷'ÎÓ}úe½:ûd¶àÈ—#x}†éu½ Ô¦] mý`Û——ú÷½ïÓ.ƒì¹TžJÕ„qG~½1öÕWßIàñø¾áá(ÏN¾“ƒÛSÒœsÂ;^NmÉÈ@Bq1’JÓª¼ŠÔˆã7"NXûܤ¼ºÍ›‘9d*ÆÝµk‘ÚÖ†B??<Ø·o_\ºtIQmlxh­2K¥÷}eìßkß évÄÇXV†½Þæ$šX]-ÒýãÆ?Mwðâ‹d£ÐfRøZãýONã\Ml¥‘®DU Z­ þ$³Ô Ü €íGxìj±Ê^9{lÄ, 633óî¼yóêêêœ&V÷nÔ°M­­wØÒwë*N ¶ù<Ú¿­9ô«ÞO¾Š­Lx¡ñâÇ2úçZmš“hq! »—™‰ÐÏ>ß—>{ÙÞ‰Ÿ|êÙ§|”¾ïÖðx`D?öÙ¼~÷ß WœŽÑ©S§ªT*½.„B+ÕY¤Ä<Èû;öö;=âŠÇòs«¶‰„e3LtBRÒ «2ju(óý®$Óý÷åäÚHû_‡ÈIl îžòJòxîE ØÆÂ%ê_Æ•HäÈ>þøãw‰¨sïó÷ßþâè*>‰k»ˆ¡ úf` ÕRRß[ß¿T@߸wWýM’0máD±"ѕ럺ç*ŸÿF@tô§ú”1*®ê”CÞÞ½{“H¯PP¬ †$ }4ôŽ"ž:u*“TÕ ƒ;CîãôóçÏ¿´T÷C*%÷O£x—JðʦÜù1é±?_î4“­¾EGlÏÚ2~ô"Y;g€(—«ô¶â˜ç  5 )#z˜JøÆ¦îx+Å®¼à¾…Æ6ÆîéAfÙDD4rdA·mtrÒO1ÃQÍùÞ6åeÿ<ÑjC4c5̘qí…¹$~;‡QùÍ«HöpA®Aî¢E‹²¨ñüm2#÷+=†{ ƒ¶gžy&‹euÔ¹ï•~%ØM›6%5]–|¹IBÁéQE….yãú WvíRÞø;ã*,LßkcÖv9̦n¯nˆøz[ñÌs˜a·¡UÒ-tÑ&Lü»ò,752kr·2?]gy¤Û6º¸˜b²j¢ôH›ò⿲µ8•ŠÿÖ¸Âå_“/³1L‡ÈadæêÕ)œ8ðú¥õÏ?yå¡©—åw2›Ï£ÅÓå‡+<éÕ-¹ÙW¾›v.;»üeM–ôÉZ$_9þÚ%’€47 yx,Ç!åààP.Ï|ôš¹¢ÞZ†8”BDDwžŽ±¥Ð7— ¢±S¦°ùÀQŠ=÷y˜E”6†¡˜'[lÌ——w¿TˆF†Ÿk8†Óž–!D\€g{”Fƒe.2Píï=ÈK'"¢7_Oíè©æ  ò§„­iz2~™`ŒÍXQA´t)è+?ŽÕÞš`¥c6ì°.ªvUUU*å.°(÷Ô\ç› …²„e© WKH-I@Ï/Ÿ}ˆt+<ž$ ¥3üø­Cï?ëâÔ' öiÓ(ùr¢ÊJÓ˜!¿½Þ W<ßuc>¸G\­[YÇm䕾Ò#®. ƒPÚ­Ì✠®‘I}»•—}¨óàŠ¿¬G\Y$VKT¼ÎJÞ±m>f±dƒ8N€êï«ÔüFí¤|““¨xoöäЧÖÍšÿ½ðç “‚=ü>VœªIŒŸ1ÓK§KpÈѯª<¦÷ر«Ù§]Û— É;?œPzåõô·y½w-qšTy)¥Í ÒjÕýöž£˜÷bŸÞIÀ“â”ÇÇ÷"Ë*+ï…ו\È@Ã+:€’{¨þì˜nt]Ý%W‰„B´\.“ßÛ½{o«¯¯/Jú˜Â¹xLfhŒbês±à LÌ.¶ãÈ›O±YjlxÃ"t_Ö¤÷Ë!“Ûeø¸sGᢖ6†Øo½êêØ}AKFžŠÊjLYU€¨µÎ×Ì‚o«Ä¡N÷ïßÇk¯}[ûÀ˳Nœ˜PHä0~¶‹ êÚhð‹Ìå0 ˜´ïì—ëïï?´£ùmýÏûÐÀï“á6&^scØ(uwûóxp{øÕžúÑuÕÒ×s/Ýx›uqû[ÑU54e®4>þˆþù¹*ß‚ëý€oãþî¸ŠŽÆ£G!ïÛ÷X­àb2ýiÃ<±£¯â½9¦S²Ï:Åé•¥W7i99²ÛÝ–5¤¾®ÐhíD(êLe…MܬºÛr¾Ü¿A}.v‹+^W>F üEnç;*ÛÃŒ?Çf7uÚ„ ¨Ff_N{\A×+3´ß¦?–,¡ e´k®P°-úvJÅÍ ;y™@ËÿµwÞQQ]ÝßÿÞ©ÌІ&½«ˆDDþ0¢Ñ{b/Qc4jÔGcKb×£F1ÁK‚]òØ1ÒE¤×¡ 3 Ì Sîyÿ¥èûþó>+‰{­»œ9÷Ü3ç~æžs÷ÞgïŒÌ¨ˆ;·÷3S–=ؽÜ2ÚÐàâC€‘H‘ܧÏÜD@¯ÄU©Hу„@~Âëáë¯É•JUDQ LKë¨8èÆí«7]­DCǧù}È`2P €Œ7NØ6£4 ³IŠG|M$£îÐ猒âÑBj/5“D«%„Çëy¶òôŒy•÷äYø;VW±|¨Cµ¸$Ø=íÜJzpËΫ66Düúz®®¤R.'94MÓ\.·ˆo æwà‰ ês¨ÒMEè´´ügcRBîGf߯‰ò™ôà¯ÆI°­£‹6´^d¶,ždÜÜó˜3 Ð}ðE€O?Õ¶›]SýßÊ€â¾ÍA}mßÉÕÍ‹™zƒÓSï·¶Y}£½¯ Fx\™šöôË!D§Ó‘º²'rUÆlõ©É<ƒ¿W”øÙÎ{§/¥hì­m[wý2‚ŸxCÆ5ù7zý¶+šŠ«•ž.0ØyTÅ*­X–›–³rV6ïc#*ÔiªñÉ›œú Ÿ¥Ù›·–òÄ{¬k¥,Å/Ï6ðùþ†¾ý›µÿÖ‹2ò°ýxÞ79—/Ÿð(Áë'ûܹHÝ»·‚899 °4E®ÀŠ:)LšZàýºŽ™™Y¦D"€²q(ýv:Gç:kÛeÓ¸ÛYiøp ±›Pøöö’f±ØÙH­Ö‡‰¿¾-SG Û´j“á€_<?ÎT;à­K69t^^ã×M C{0F€‘¯ƒÒyPUUKüüLµuuݬó^Ð}·øúŒWk¦íþȨk„Ä{!Êëe(‘H^˜™™µ!“=y it zÀrЧ£‹WŽHÀqÈë*ÎΨ޻÷Jé‚ù³œ¸l–LÕz¤NG>äK˜ÿ‘-E4†‹ô-Ï«Çôsj}yq’ÍŠN7†MîO?‰Ÿl,ª®ö©}º;á¯È•H ¹„ßäma ß”]J}|Мš #Î+B¤‰c[êÇ=r•­(ÊRMˆø­\¥¦‚4 ä-"¨9Û#W/JÊ‹^gâb H 8wáÊÇGŸf±[Ñ6é3^UZÛs”ü•¸bù5­eÏχ$Æ|öKÜ•+ýU¹YÄ!/»Ú8¾ø²éše.-Ï¢o¦¾Ô?.~ºñ`“ÙÜªŠ¼Þë58>øU=¯zã(¢‘y¼½A™˜¸•¿aYB¯¾É@*sT$ØXŒê[$ £JÙlhx<(@ì… ðvttôb³ÙŒz·_aåuS‹ŠÐR@U ÜJ¥, mõÅg(ýv8ÞLå×*Š6‰¶¸egak«¦Ë}Ö¬®÷Ìݽ¡©±Ñ½í¡W÷üP£i:óƒps3+||>PVv—¿Ç÷{»ùÖ~U›ÙÊÎÎšŠŽ®`ÛÙÉ»9çJ—‹¯úú3÷ªÀÁjÐË æ¥—ÑG`ÌÊ11ô GLß¾¨`³¡íÌ{Rþ- 빃Ô:6[$*ïôÄÆú¤eeõuœÚó5êG°k¾¯õÊ:·ÊÅìã¼mͲI>¤z'ŸÈ¶oŸkSà¿~t˜÷!Ã}óÂ-¬c?À4ï×ÚþvË“þª\9X߯ªoCû¡ÐÌ̲ WÀå.%C‡¢©ãC 2+=ÞÊÕ‚ýz?!Òwråíý*(¬Ë®·rõ¬&°ƒ9TGl ¯Ë93gv=·¾^®BÝï…H²ŠÿÝé¡üµ¸¢êž,¼·ã W£lÊÕwê矵?í6FÐìá̈㉪z‰œqér!§—ÇnÕƒ{g «Å§.^LLš>=› ,yð;EôÁý¶ Õ²êfÅl.ŸŸ¯ªŒ\o&àŠÀõX<Ÿ½›mÖÚªvøês4§·ÀЇ«é‚F|˜Ÿp̺„6µ´¤‹OnTæŸþ?=Ýȣ׸ö8†DFFf………y75¡ÙÈf PS¸ºêÃÀ A¹Šœœ ¾R)éÔ†•¨û£ûöc‹|1rq»®ÄÓ³¹¹nÝÖ ,Gb¢sÛÿ‰çúc˜sV׊¬ؽ:WTTaîÜ&mll¿W?6À€ú`Ç^R „RyÃécb!Žêil„¹^Ñóvg¹ŠDT—¯]‹Ä©SãLGŽ vuµC†« Z3‹¸Æõ2ÊPñÔ­Ê vÆÀ (ò†ÀÝÎS™C£¬¢‚Ï™>.Imk]gaîfP¯V›”„ø/¾X¥ÈÎ>˜óøéÁ㜦=‹Oóþ\EDDdµ¶¶z8p¢977ÕL¯ó´P‚×.sæ@qò$ø¼7´ZOîbˆfb·í»¬þ±cɺ­;kpéR‡‚ü¥@õ©®)&¼?5CNAý0ü¤–±½’DMOŸ6KÃ÷²•JqADÄï ®˜F–³§üqwœÁÇkÔ )ÊÁC?À‘ßÌu³&U/r´he®á[X0š·Ì‰â39²æ‹ÇJÅ>ŒU½ØN Å_­l,™÷áUžLZýä› €ƒóÞ½¾•G¯Å²ÖŸ_}ÐØ˜£móc“ÍS¶"ñx$†`zzzŽ=Ú•Ë¢š†ÌÐÄÃÚøx-ËÇçG*%e[«íšEM¡& ì,:—‹ê U}¦d0Yl^ÛÒ_­ÎÄÇ.]™¢g)sÚʦ²Ô‹Æk`ÀÖvVÕšìVtiÃÔÔóç›1,-ãðü¹!in¾¤¢Ô€} `UF€†3kÖ¬ÂÑ£?p†ÍBp¬“ nÑšwèM#ìW¥$Ôl|öìN50K ÓëHR é q¿o|l¶c¼|—ŸèlyÚ§E7òåºõÖüUrÂ÷/`[W½TÌÄŒYòè‘û¨g¹×Ò$U+øÍJËüÚêš–u¡ëm’²’rÌ‹å/R¯ðÊ›ƒ®||| ×®]ëºjÕRÞš5«agç ««+!öö-Z&3ˆuò$¨íÛÁîή— Ĺg`Ä龨’¥šú5ÍÔê:ª*ò,ë–«sç[Ûö2ZªFu8(º¥W2ÿþ¡¸kG@ÜfèSÿ ÁÁŠaÃäêƒ/6Ì™Æ>vl‹ÑóçÉœiÓ¦ým¸bqø gL¾,/-)gÞI¬ãå_¶!Ôó ·šuó4RéEyÄÍ£Ú†Bͻߘk´›šÏ^™[eïœN¶°%¸éèÙ~ñuu«ÒZÊoŠ]ú:ºY[Ϭ¼ys ð£ÿº­%ÿ _õ|mhÅÔŽƒpò¶V”SqÏ,=}iܼy°ñ®L&t!!ȹv CCøz{{?¹t Á?¸l”˜ð!SiÁ–· 7€6p :™« „º&{ä sþì_­„qq¶L&“©ëê› X°tÖ¯í9 $r ¨z ø7’þyŽ¡´Ô¡SùС5HN¾Ú©¬BTÅñœ€¢ˆ4ð :¼ 8n궯ed°‘‚µùŒøØá#’‚ŠF+­®±ÓÅ<<<Ú¿«ÝŠa°[HcrÐ’)׉‹P/PœQYg¶<nƒ Û2ÀÖCŸ-ûÜË)^‚Þv^ePä´µ¿~†X鿆€’  ¨ÉäÔ)Ä …ói+ÁocÞÂ{ÅÕ,ó cü8[Ǫ}ÅÒºß ãâ­}.ÕîÙxY›P|ÂbÊ̯åeµ?®ÌḬ̀zõJæêϦe§&e0½|eV|SS[è—D]„Íf£¹¶ÁŠ6®šÌ¶ÍÜ@ÙZøFígâŒèT:y2àïß¹&ƒÉæ$ëÒá¯s›Ù®üîbÏ*]`22fƃÅL§dèt+­[®XâŠoUÆJîö3ûÓ´ºmiY©ÊÂÆÃE+g1²¶.¯S&¦£ð­êÿ$;´9êüÍ75ÏëZ!Mn`±ïr¬Ê*¬Z2?D@— ÍööN˜ PÈ?r˹Üs—Y§’? ƒÖÊìŸþ€:­%ùú"(3 RŠ‚:dÜpuu}ý$¢[5®ubÙDàÂî'±Î€Ú¤íišZP}*…«‡‚V¶°€É,msJúí삸¤ —‡¢²²²í>f—°¨«B7̉ÜbÛ(xøöï‡._nÒ©ÙZ­^5bfFPT4Aƒ7f/¨‘$Ãc^ ²Ï¥Á„ߊôÒÑ8*¤SÊÊJDEE‘ÚòÄÜ9¾×-| ½|}á¼â,œàY> çïCmN 0LÚ3·š<¿{òììQì‘#G©Çƒ%ÒgÊ*..~5vi½;¦rÀ² (¶H/÷ÞYñð΂èûTaƒi ƒý$ý·ó’’?ò0kBÀ\²DÛ;ê—ê§ç—€_±ý4ž(Ø öáø©ÏW,S[nšù¥µZn°wýù‚†œQ\ËAÚÔÔoug®@:Š¥…í²t¸í€iìòæý³œÊ¿ó}Í®¢^fŽõVÈ*É{³Ú+ Õµl@ïaan;†n¹ ¶A¢0þ:op™M¦Äð´î%®vÈÜ _7ôZô¿=WØ»qÁekË~QèÁ¼íÙÇûá/»^¹q>åÞ@Ïõ·œOßVFæ”_ãä|¾"í^ß¾¤üÞ="tw¤¬›˜/Ę›™eBèqKR³´)‰Bß¾}ûO*`À`‘Œ(™££c2!DEÄ‘’K½‰>ѵ’ÔEüIhºùÖ­[Ìj êEW³µV 쉨†‘#G ÑV’´¡yït¶-ø"Z²oß¾8À¨Ø£f¾ÁP’p"”æ‰z¶…¿’Ó§³d€>Ž»«ëAYOã÷ú0àx“È=¾$-¡„\¹BÈÑ£¤^£!Õ6lˆc0PûÇ<W¿¯ïDƒB}LLŒP£!¡¡$ãÍ1¡(BoÜHâhšÈ&L˜ ¤(H—~¡ô6šˆäåy”}à!mEEEŠNG꣣‰ðìYògn.I „h'L˜  º¤p&ÇicË^ ~IDAT0¾ÃZ»¦žÃ^Ú€¬É¹h¸5º­¸µÄ9³íÀßSÊÖmnr4@ß®Ë'0™À– `N5›Hõס%³o×zoHå±@HcEö–Ëå@¡7`Í…Š`æ \#8prÀÉ °±x<½…J >ùÄÛD,.<™¢¢¯MõJ~ô³-z³ŽP©0ó[Wh·9€€ÅÑ£¨ S+qZ/ |W·§Ž„_ò ”ç•Ò ‡™àÕÖvõ!Ôwß!èÑ#öqѶg¬B(•zƒXy9 @y¹JJ®@TÃ@¡ºŸŽÚÐ1gÿÑ\±&Ž3¢Å’·½œS÷ïå1m˜ˆréï¿;N’bnj+køÏõ…”$ãr/ùÙñMµe[ošÁuà@$ýÉ"súüfhÙ,° _&]¸É¦ÇâáÃö†-,l˜‡%.º«çëzáììlDÜý 0GÓ£Ï kkgÎüy+t‰OG+½ÞòM:HîË úéÓ£ãŠÖж´£D"D¢·Ù.çÎõI-*J¦ÅÀ[|Ö^‰æ £{q1aY ñr»¦ÝÕ¨Ñ öâêÖoº«­­ Öô Ú¤¥i¸û¾¯óµ2@Ô]>_fÉuŸó+]_ÿ-é^÷îɱ·þwAº:¹=›ÖÉ] ³±G •n%ƒ¹sÇcÝóË‹˜hŒ¢Œ_¸ÒÓf^c0¨2ºâÙrçO ½aWcòt“÷\½âŠ@­v:«´z”sçº`ÁoÔ±csÿ¯¸zóMõÏÕý<ªûZWGךžj Œ]jF ×ÏÄútž/ë«×Ô•1®‚AÄÊ1¯d Yr@çrMø#5ª ÿeÄðÒì{û*GŒ ì.EóL&NI1Ÿä“Ðglk冯À37 gÏBøø1bêê@ü±-çï…È:Ää–ëÓµK›Ñ´äb|ÃL¢d¥§Ãbýz$¼ÊBÔIÂÂ.¡Õ½/e´6—ãÙ[¾4½«€÷Bðt,¾IA”ÞÞ(}×9…É„îÁÄÌŸÁÀ¼ÁÀÚ$€4ý¿´ða•‚b˜`x øýÞ}aÃ< É3;Ù°ãÙñxsÏ@’ ¸s´†&[Âb’« @1$°ž+D`¥§Zû«%`ÉÅwc€­ñ€uŸf¦—FH=ý’“e}_¦À?iE³Þß |Ý N‰¢i·àNáb;¥Â56}6]|y¥MãÃãæ“xšcáÌÅŸ-fAu÷=Wï¹úïp5$^Ëâ°´¬‰Á½Ty%…Å:]k'¿ƒ[´ažZ¢ ¬ˆã)ÊŸÆóúûØÉ·n`±Ùëê*Ø—¯×dzû}Ê8º¯Ý±#Ñ”ˆ”\a$Ðd¡je©ZA×c¢J¶&z4þÆõè«cÃqŒuæÌGiÔHÏùnU@½™à•eÊÔÔÓï¿Çð]»ÿàª^¾ÓÆôÔ©°05Õ/µåry>!0ýx'øs›a=¨/:í-­AÕ¬(Jy‰ SSS— —/ ß¶ ñû÷#¦ñæ.ºNâå…ÒøxÈŒP€ nVÂ\ÀiÞ9˶äCxÀËþ2Ù˜'`šaÈËá_Ž¢/h´Vû¢³ã¨æžÂëÊ`0 ŒŒò:s à] ¬*ü@3 ül \õ5&/Á41Bÿ›£_µ£$ ŠÂèWc«‰D†øm ‹BÁWªAï½€ôÊÊ*rä#nݺ¡Á„€òñAÉúÏ J €CFŽqüà¯ÑŽÎ8}j³íŠ•2É–ý\ƒ=k–(Çn0ÙtlSK Ÿ=ó=Wï¹úoqÅÚõËÞÜÉÑòï7˜¦¶ G"+±E‘~n^5ƒl5¯ÎÐâc“Fé•ýÀ/·ÚÌè(QRá§ZuŠßˆO½)F†öDÒÎsËù'o)*ZÏÛýkš <œU°|9l ÃÝ}Z_ûØ”ïÒÖ‹¢õ@͹ø¢Š¯5À!0Û`Ø êT ÔÈpsuuÕ¯‹uò^Ó²0ß|f؈Áưœ4 ãVÞÖ+fv ‚/ØLT8Y£’¢@j¥0‘·Àz3@ 0€¢`¼g‚¶mCÁ–-¨ÿå T*ÑÉÝÒß…‡£räHxí)®@Ûz»Äp¶ó€Ó @?_€zÃó¼µ/ÖZ455µo5ÍVÓ­´ ·ò •jÁ¶äÀb¢˜&mú SSÓ+Œl`…••) ¹‚ÖW¯¼ÅÅÅLhiAîÔ©ÐDGÃK§oÀ‡‡CÔ»·»näìç Ç·ëB–}üp/9rý¹~—€/žŠ°ñ ü½ ²Ó*Š,ì'[…ûË/¬=lÌ£´£–­*«`õ±¬æöÙµŸ½hÖ Æ®ð™Ü÷\½çê¿Åkî”gÍ<£ÙÆ¢ª+˜+⟯.oH5KkL XÌ}'ÇÏ~Wq1Ë(dÜñÖïtF[çÏ6¿—~­nÓ㟞º;|ið¯5›ýó j ØÀ'13¦ˆ ?ôæ“\Ó?5VK-ÌÌýÜÝo Öˆ‘¸fzû&»‚¼L§èG…)À¦iî° ¤·“3¼== ;WˆºÒ¶ï §}ŽÕÂvYt˜‰xJ`X±F׿©¨*×xÒPu‰¼gffÖi; ‡>‡£ÏáÃPÈdÈjm…šÅÓÔ½˜Lô:ÏÔ¯|C!‘èxà¨a/k% f9@ —޵%I×8$, m5ÏI"A5¤,´'ñððx}ýQ b#¶cˆ1¿]Iœ–¢%Q““Å‹‘îà/µºíGƒÌL¸ ·-_Œ¿±0ô®H@—ä°¥ÿ´þÏ‘¢üó­¢VÍS“k×&A$ºY³y³ÿxô–µsoú,ÍŒJÚ4v¬˜ÚrĪÁ`mß5¬˜flÈã½çªí¬÷\ýæêüÿÀ»BF4¹EIEND®B`‚././@LongLink0000644000000000000000000000015600000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_linecap.pngATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_li0000644000175000017500000000322013431250607032306 0ustar brandonbrandon‰PNG  IHDR,,y}ŽubKGDÿÿÿ ½§“EIDATxœíܽ‹lõÇñï„0hÊM½A0E”T6¢ÂýMså‚VZØç»{S©E‚b'6 Daÿ€í–³[I° 7˜[igiŠ![ìÏÂíÂÎîåîœÃg÷õª–=ŸÃ̛ٙaªàZæ>ùZkÏUÕë½÷ŸÃðDUýäôWßöÞ¿†á?Uõù8Ž_ÌwÊíj­õ9vÇq¼VáGæ>™nß¾ý£õzý»ªúUU=UU5 ÿ÷Øùé0 ¿<ýùNkí~U}º\.?Üßßÿßt§åªXÌ}ò¬V«—Öëõ½ªz·NcuAOUÕ»ëõúÞjµzi;§ã*,ÄÐZ{¯÷¾_UO>Äužì½ï·ÖÞ»¬ƒq=²»»»h­}RUoÖå¼ö9TÕ›­µOvwwݹw.dÇ?Õ¯W]¶_Ÿ^Î%XœëæÍ›¯TÕ-NÜi­½¼ÅësEµÖ«ª'˜úøÖ­[N°C0Áâ@ŠÖÚ«êÇSnöÞ¿;<<œròR´ÖfÙÇq–ݹx†Å™zïßL½9 Ãä›ä,Î4S<‹3 ›Ü›aóß3lB°8Ób±ølêÍÞû_§Þ$‡`q¦ƒƒƒ¿õÞ¿šj¯÷þÕáááß§Ú#`±Ñ0 ™pëÏSm‘I°Øhgg烚浬{;;;œ`‡`‚ÅF{{{Ç‹Åâªê[œé‹Åâ½½½ã-npç:888ªª¶8ñÑél$X\È8Žw«ê-\úÓkù‹ ÇñUõ~]ªÞÇñ÷—p-® ÁâAôqß:99y¶ªþù×ùÇÉÉɳã8¾uYãz,ØÑÑÑ—Ëåò…ªz»ªî?ÀŸÞ¯ª·—Ëå‹GGG_nçt\e¾¹€‡ÖZ{®ª^¯ªgzï7†a¸QUÕ{ÿz†¯«ê_Uõù8Ž_ÌyÎmj­mó]Ô3ãè1 W×÷®@Ô6ÍTIEND®B`‚././@LongLink0000644000000000000000000000014700000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/illuwavy.pngATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/illuwavy.p0000644000175000017500000016766713431250607032262 0ustar brandonbrandon‰PNG  IHDR,,y}ŽubKGDÿÿÿ ½§“ IDATxœì½w”eU™þÿìï¹9UÝÊ©+vt¢›:€$‰fPQGEdFeÄcDEÉц&tŽÕ]Õ•sÝ 7§“Ï÷êBä×·»êÖo­^ë~þ¬µêYï>{ï÷ì³ï~ŸMn‹ÄâULŒ×jU§®nÛ.†O±¢¡iLª»{­Ëj,Á¢î­~ßàiVuº{ÖÔTf –Gjk·•Y%n~'™,9ݪN}ý»]¥×[ÑÈå\]ƒƒË,i@YùÁwœŽˆå6uvž>bÄÒ3¶;"+ÊZêk\ºU̹-½†Æ-)Xš ÉDÉ®ðX³¥9 Õ5;>ä¹ìj«:”U øÿ‹BÂ*P ÀIC!a(Pड° (pÒPHX 8i($¬ œ4VN «@' …„U @“†BÂ*P ÀIC!a(Pà¤áSIXñ±r—¡Ó–4tAt¬Êa5–L"@©’ͪ –:Ö{h°–4ì”-Îù‚ÕXjsUjU«•„Eбcm£,ZKbÚÖ÷6ÕX¦çà©\"\lIƒ€àöÊÿiqÑÖtêÙµørý¿YÎ4×VÜäZj»Ä’wÕþdOñ–t2Q?Žl?;hI@÷îÓƒ™¨µÉ­ë4Z·n^ ëÖ†ñhÏ\LôZŸP·V³´ž]cIÃM‡ðµúÿl±úbÙT² ›œ_³übùbé5uŽ:K’( õ½Í °Ø&àSHXí;×CÎ9ø‘Ö¹¦5 ƒ`ôð\d¡û€yÓ‡Èh5†:²‘¾ZÈ¢ù…Íí ·ÃAyØ›½4­Á;®óþŽ&ÇgJ?cZgU`N ¬.qÿVVY_ðþ,á¨ïÌýŽi Ma0ÖQ‰‘jûH÷<Ó:ÃÝ  WØÇ: «æ6£‡æÂÐiêÀ»šÖ³n´m?鉠‰úMëœ_z>ìs×z –˜{7{Ÿ“v±_ªÿ’i ¡×V_‹5öëÙ9œùºÉy7ʸ9·[¾ Š˜O£­-²nþÈ®3LkLc9a¥ãS/[U´Á0™A †&O}~¥cæ_ÞÙ¤†A`JÎüJ¢J¨3¦5⃠ªíÕ¦u*…J°D€—6ï~R´ªìU¦54•ƒ®1ÈGýn†L<€@×Xù,”²S‰!eaÌäÒ.hÚÔØ“³æ?}¦Ÿ«“ B nÓ:ÅLÃ?陡ÄV†0  ¢ÌëÐÍ€ „Ù•¹a(Géx‘éX¦¡—݉{gÿo‡·mBoë Ô.ØŽÑÞ¹j°¾—JŒ”!.àK€¢µª(’ á¶fHiœE“Ðr¼Ò´ü]ºõýs‘I(ë›Q4#=óÑúÁføCÃ3n$Šf LöÖ‚á%°6ñ„¡pGÃ8·ô\<3ô Î ®=•¼…Úäü:–Û.G»ü&ãÄ:!¦ _ð>Š ]‹.y+ÞÎ>„ùÜùÚƒ?¥n›szbGtÇŒbYâ]‚;ïDLŽA5T¨ÌÖ­|@]æ~²‘èzxF:¸îÃFç]x7ûæqç*õ=A¯+Z‡óKÏGk²-sB UænoA.4 )åTç®zj}ÿ$"e(ªè™Q,Ÿ„|îpÕû³ù‡øX™«cûé²(ð@3ªªk4Ű²¦È< 4«¨¡êŽ‘ê…{†òéôì]U=9XÒT––“UeiBi†®²4pBV𻿭6§"›Og×K—.–rNÁÐ)B(Ý (]Ñ¡+,c€€¢4Ýî&œñjÞÞZåÞì½¥ü¾z7ãç §§Už²Ó9-¥:h Y=©¼0ùÈÐs‘‡Góé|¹ì§uË]›Šl”€Œ–PxJ tàO@D“îí¹ºuD¥Aƒ%¿hÙ²ÄÏñQ E× ÕРèvÊÍ€bHZ{fgâ?¯jÏË™žËׄþ½ÖIû¸©X’ªr1Y=¥8è)´Wþ4öpÿK‘ÇÆóéÙvFC|¼Ô¯« ,'+šFQ0Ñuš^ÈŠK6>€áEõXªdcö¾~ÑB)g·Ek:`4­ëŠÌ±@1ªæ-6­ÚÒ™/–Ñî–âá¶ÕÓãŒádE“Y–fUU¸©qÄKrí½ŵy3Eë–MÍÉH‰WצâŸjM`J×)Ь-'-Ùøç½­3û•qµü½uO̰!dCÒ(HzNŸ3¢žÑv¦^ŸxxäßòÎÎK_.=?xsÅtßf´„"Ð.FÒsš@9HªQùWÃ÷tmK¾ϧóÃ9ÏÌ­æ¹YÂQ†¡#«gTšÐ` GÓ„!š¡“êHîË]§í˧Qo[h¿»ò7-^¦˜IÏi4aˆ¨g5çÑ6åôŒº5ö·±_|§?ŸNÿ¥cýešò±¹­p4E«†6=·m9©qå;ÞÐH*ŸÎ± gl9cVŽ£†NCy ·Î‡"ò5u!Ò]-Ï_û ×¶ý,¨2%ëÿ É 8>ož,:01\‡}[.€àLa΢÷оc£è­´MtÕƒ³§Q6ï0X›Bô¼:Š(`²¯ Ép)ÜO0ŒÒš#èm[.:Q[¤¿Eõ` $y­©OôñŽFdã~ø«{‘úÅê¦Ý¶Ñ¾f$#!Ì[ýJkÛ`³ç¾ŠlC*ÂÎ×/‡a‹Îüv¿~™^ÚÒF¶7¦5”/hgÏ¢™;ªÌ#!ÒS ÁïNRuÉå{¬BÙœCh^þî8§M4XøèJ\ï}uÜ*ü9ù ¬nÎ=×ÿšp^Ùy(·•ãÁα-º 19–7ãB“« ÷λŠ®à§?Å7šïTŸHÞÂ\ëù5’z?^„I­’‘eã£+±Î~ Îqþ;ö‹C\“]¤Æ•8s^éyxiô%<9ð$Fżï[°‹b¾ßû]Ô9êðp×øªærñµìwm›œ_‡‡*Åc‰pDz)}"¯Ž,Ù­ÂÞ¿_ –Ï¡yÅÛ8øÞgä@]/7ÞQÖ&¡|A+X^¡N¼Âÿ8³NXŸd¬£ñ‘rØIl¸êAäëàã¡ë ^üN(²€@õ‚µæ–‹éHÀÀÀºK ·Ì”ÎÞ'±B¸}Ù>\¿ózSÆgW= mßS_Çké™ÒY)\…¼O@7t\½ãêã¸ãqÿ‚û±Ò¿]ò{x bÎ}WÌ:ñæS_¡Ó5vÀ[6³OÁO.Ãxg#(JÅÙW=^8ñ'Ʊxï¯7"6V g ‚òMiÈ¢€¾í+`ËÎzesföÉþIÎq~¹~Qqɇ— «åYÇ–?†*{¶çžÀoãטҨdã[Á= øÆÁo`{t»)›jo•UW"£Gq÷x)TC6¡BðÆ_…˜uÁW>Œâ†¼ èayÓ]S§6,U™ƒa˜Ût×5ê#M1žK?ªa€@•ÍoºOŸ¥qÒNÓÅ¥¦â±ó?ßOÇB mþ×''ãü'=3h*SCÆÊ¯{õ“AOišD‘§ŽÒhŠùX •þhÜÊ’ùç;ý\YŠG™o“ƒqü“žâÁô±ˆé~7ƒ›úñ€#v˜=“hêÑV¦ç¸èš/ÔÜkEÀî#9V¬,]ÿÚéÍÿ‰r<(ZƒàL"2R+—Ío¥)ÊÜ¢s¤!¦ÝjiUU;f•Çâˆô6NþEûÖ¡oSãRÞíã"j"²Zµž øëøL¾OÀ1 ìA3·I~+ü!ýúØë¦4`w|7.®¸HÿïÈ™$­›ë'ŽÏ H§‚RIóf&›ÛÇBð¤ú¤ºù2%5y·áNH°¬ýmËôÊ%ûÍÌîÓb†“¡« !!Ï_ó2m¶M=òXÊ^z¬÷)fo|¯) hKµáÌâuÚO£gS’1³ÿOÑú`ªN«êÿõüŸéEÉÄl.=K~&u;ݯì2¥Aˆ—ãMJùƒ4EåßÞ™ –EëàÙì`Uó/͘›”À Y$“¡a»/iú”/!ÍJRuÃVp&MÇ"iPRÝÀë£ïyU#ÿ^ȉˆ+q0îCáne«éß¹ èu9ñÞP¿•£¦cɨ”yÈÀnùQ¯aá¢$NÈ"“óGl®´éW7!X6©jÜë4û9œ-‡Ød倳(jé´;ÍÊ(«:œðÆL/±4(P!¼eäûxûœ'"©&ò¦öËÏXjSZŸÀ¾áœ4˜4½¬Qt›<Üf<å ómâ„ñÒA»/n¹*Ár€’ªŽÃ.÷x¥ †• Á٩댥«–xGJ,¯jµvœÀûc­ÓY‡ùTRj 1ç³ýÑCVt¤ŽX÷˜`ù$vþ¸Ÿ³¥j¬hðBY%ˆùS–\‰pqI—% B @0ö+Š½ÆŠÃ˨iܳz%V[êpÿHÔn©¯UCÅ÷äA–‘,½˜6ˆ}C´H@,Í…õNÆÑkiNÒŒÚ4µ”#€BñsN" «@' …„U @“†BÂ*P ÀIC!a(Pड° (pÒð©$¬îݧÖJ9ó'j ›òaôÈÜr«±$FËÙñAó–Ótî\×0e¥bžG .qßš €³ÿêXä]dUwW<ÞLÁš3l »WU^cù<ÍxO£7>a­» ƒBÏ®S›­Æ’MxÑ{p¥e·Ûî½kŠ¥¬5;mÇmÅ¿³<€çóç`sÉfËGËo©øvy®µ¤á¦Bøjýwj¬Æ| K•yDF*‹&G¬5j| ɱPÀŠ?’aPHŒ–°C‹`ÅÝ0“ô!®(Ê%¬}ZX‹•ö+¼vÊüüf‰ §:®²ŸUt–¥XªíÕXè8³¸’]lIg™ð9lmpÛhó³ºF#6\áé1oú‰É$'BÅV|¬ 9ÂPÇB»•”" ëoô¦'­™±ÎóÌÃû9EºÆ´Á*ûµØÚÌ2Ä|›¼¬§z7çñ›Mk@w&Nõ^à–t€O!awÔCS8fÿ;À0ÌÉ)2ÖÏ*sÜDùÄ— #÷ÓÃ]ó19RcZçÀÖó¡« no1­à¸¡öè*þ\ç·M묳ߊn {~Ùùhpšñ~³ù›  Cnô>eZ#Ä4b£ã.TÙ«¹Ë*.3­¬„˜qpÝûOE6iþìèž·.¡SÄJ?‰)7#¥HL–±ýmËLëtì^1ãâ#=5ÕΙá[ÍßGújϯLk4óga¹í ,ö.¦Ï*6ÿ¢»¹îfxÙ{¹û§à‰¹/( ®õþNÆÅXqQý‡žI @×h°Â”­“Íž‚aP³.pTm­SX›]cfYHM «,XÛT,„èà…ôGű3E×h*»sÊvˆá%:…Ù^°a§íuYuªb?¢õÃFܘÍç;åET0U&‘T“˜í…ŧxŒ‰cGcéK°dvÏÆFÜÈé)ÈÆT?…Å0Œ³ñ7@ iÌG†Š £€fe¨Êìck Mc!¸¦Ê¯¦Æ 5릦1 8å¨}‘Á™€*Û0›Õ¹®SPdv×”EÅh ”]›Ý˜á)Åaºv5¢õ'0dvÉÏNy‘ÐÂСÁ€qi.fv_ a`§í‹a@ƈ€žÌîs—'P„FRŸr ‹a´+«¾Y—æè1åÂà¾%˜ì­ƒ«hrÚ.7ž²…ÞñÊ5èØ³‚3Þ–ÃÓ£K{1ܵ¾øô·/EýÒ­HLTм+à XˆÔx lî$hF9N1´”va¬£áöfÀ ÁÙsjIM5ؾ ßû dÑ »+~\ U¶!6^‰÷ž¿»Ï@eË>LŒÔªÁÚAjpÿ"DªÀÙEЬz\'ÕR[)Î/=?^øc¬/^gŸA¹Ë)&õQæ6ÿ Xbû,ú”ÈQè8¶A5» ×ûÇÕž_A62HkIéïáÌ5U×à¶úÛ ÐÆ¥q$”ü>VnÖ…ž…øùÒŸãêê«ñÌð3X\©¿œú>ùZð]lpÜ…Qõ²F òq|–Š™œå¸_ö¿ŒE¶óñnö— Jy{ß¼ûpŠÿteºWâÈW£hRÆ…‘ÖyïlkAQÈÕÌÝÅúp#Ú¶o„AÁ‘úèÅu,¤œ‘‘9xïù/¢kßZ4ž²cýº·r˜ î]‚øpxWzªŸŽSd+gíˆTcøà|ˆ /\Åãp8c’”u2»ßº±±J¸|“°Ùóë:ƒd¤;^¹‡>Ü w 1ë=ecÌX{3&{ë@h 4'ƒfó×£¸VVã—ü/.«¼ ö=ŠSü‹Ôâ“Ôþ-Xçø ¨»3âÇu¼-cæá×àß3(gçãô*†“²Úäl¢¾Ñü ÌqÎÁPnÇ«Gå)ÎF<¸èAÜ2çìíE¹#$½žý!s«ï9œïüÒFi}ü¸j>ºË„KqW`+Ö;¾„Ò÷¢š^'ïŒí¤²ð'8§ô´'Û‘VÓPŒÙÕ“l;gó‰‰r{ë«’‘x{Z–%Íò²,gí°6QôWŒ«{óº|wׇâ£åÅŠh〳grªÌ± «èrÎ΀§(œZ¸ö¥~§o"oOíxùʆØD™K׊bTå$E×iC‘l< ŠQU§2^¹p_>L4àíh®”ÒNÇÑø%EæX»3!e“>wÈþ_ô>«þyðo !Å|1é}个Ӹns+JQ9Šë®S»ˆY-\‹°z¯¤0£X>‰é„5ÍŽ×>±þ&JGú­ymr‡¦1èÞº*›öañéÏ›Š¥¿ml=P±p?þ?Øc1¸w1² /8>‡M×ý—) ]û‹Ï ?‡Ÿuý̔ΕWà–º[÷O®B¯bÎ=òÛÁ½¨dc$7‚«v\eJ£Ú^G—? x1}^H}×”NûÎõèÜ»P»b8»9wΞm« ˆ6x‚£Xw±¹Mêé­(šÓeÞÞqël@|¸€Wÿüq¬žÇƒ¡(ì”{ã{ñÕý_5¥±Â¿ÿµ`jÜþ>qÞËþÚ”ÎõÞDZJ¸º¡ãü÷Ï7å¢J¯œö XÂb¯øü2v±©X¦±ü+¡¯xªƒyGÚT²¦ üaê«Ï[dnÀ€;!:¥›ž`ó¤ŽÆbÎÒú$âÚÔÍ6mÉ6Ó:GRG`:D#‰IÍœu4€][Ê|,Ò’J ˜5toñ Ь†7c»;…íèÊÙ2?fì®V›Ëœa€£«x6G ¬-ÿ>܉Pö'gvÃÍ15²uº¡bPÉ{çÄ é•§ÆÌpn9Í\›4CCo¦wJÏäËö㘼æëJ0ж\,™ßÆ0¬9?@p'¡Š\vÉÏ›>ì&8R³™uçhgÀ¼ÙÃCr´TY}Þc4Ú›P:TŒª‡àV—¦Öõ3Ó¿s‡Å0j•¹mêOÙNy«Y´J/a³ó›Ú¿î¹ÒaÎõQ1ŒIc(rË™¿¥¾cºMNï$&Gk3žŠ1Îæ4o çFªÐÖ^øÓ/^†•ÁÙrÈŠþœ¿Ò¼ÙïLCŒ»Ó‹N{‰szÌ9ºÀaéu¬¶Ý¤|íÀݦOø¦Õ4TCEζGÞšý?Ó:}ÊN,á?ŸýÁáØIÙ|›ö'öc]èñ‘ø¥ÖNbãSHX ø’û5ƒ/3k/ 4§¢yá–6Þ–±d€æ†s¢îæ¬Z±V4ìÛí Œ”[iS\Ák½ƒÝi%géÉÙݑ¤ý%§ ó«xchïαŒTaE#,†1bÿͰ„¤¥{æ]EcòîôYy¾„uó?ØétE,µÉé@"®Ei–Ê5üåýÝ¥•íEVÆžbäðJûî¨(Z*èÍöbÂùûœbd-]W¿#²£­#š é†ù6eÕ,zùGö‹dÜ’ ð)•殤4“ÎãAˆÁ™°6#p¶ŒA犧™"¸–Û¤9ŒKã–ƒ‰)QÝŠEí4ƒb·hŘòªkÃæ Ô?oKkÔ,¯xúÿbÀ᎞øvÛÀ°V²ÖÙ8[V¥ió6á CÃØŸÿ<Рɨ¤õIk `\gòÃÌñP a¥ÛòÜ ÅÏ 8‰($¬ œ4VN «@' …„U @“†BÂ*P ÀIç’°~VÿÞ’2ÁÚ 1åÄûÏß`ÞØè(mÛ7ò±!ËÆ¥Øñ·«VÊ¢5c¸É‘Zôí:¥Æj,_«ÿŽwµpU<»xßZ+Ö°6¸_ <_b5–¯”ü±dmp­% àðÎÓÿbMÀ`ÇbŒ¶µXvQíü`]U#KY´ãÐ[›WZåâò‹q™û'–/¾¿öÍ+>lP&”áòCÖœ#b9a-µ]?Sb»ªÊ\}Ú4‘þ¤~abhŽilʇў¹ll¸ºj~b&Â!¨2Çví7? ƒ sÏ:ˆI—#—ð˜Ö©¶Wc•mƒã«àˆùz†ý_Á€¥­ï1„Á•U”·Ì½ IDATW¢‘;Ý^Å.5­SÍž‚fÛZûç+?oÉ)6X ]£é¾ÃËMkh*‡ž§" Ød öÆÙ¸Ù„Ïѹ÷´Yz¹ý3]ûNƒ¦0lrÌüùiãÂgË?‹å¶+X+Î¥óøÍ(ãê…««®6­×T]]n[bû¬%àSHXkì7‚!,9§äPÄœœ¦0HO¡k 5Øa>4@Ì:‰’³#k!I$FËaé?|Ši\Ú‹É‘Zè:M%ÇÌÛºŸ< .ÆC•³ QÍšwÄ<Ãq¡pQùE¦5j5hqµ@ ÜÔ2ÛçLëœ"\rQsÝsQe¯2­*@Ðo!aÅ'ÊŒCSX*=iÞÂ75^]g¨Éá:ˆóc¯ÿð2Eâ#æ¿Xx B¨€‡.%óùsL묮Kxj]Ñ:8sE4¡±©dÂ’5öMÇò‘žÙÒœî44r§£WَŶ‹—Â/ÕPÑälÂ@n`Fv†A!5^ àah4T‰×[V¼E¢á* ›cf§»si/FºçÁ[4бFƒfUâ)G&ê+HÇ5sû8Ù¸bÒ›+…L$`ÌYø!Ñ4©h.ßÌj©tÁP×P´)ãB6ãуµ½$÷‚PÃÍìÀo…PuEëЖjÃÚ¢5ú¸ÖFöIÅ<~3&Õ¨˜Ùaèùü9¨d—`HÝügðxÿïáçü¨*0˜œ‘†@ ØÚ€”šBµ£.–×_LßGæò¡9¤õ™=›2fÙ.Dü!–Ø.ÑÛ“d_bNñ‚¡ÜTcfEéHrÖΞC6æEóò¿#“ðCÌzàpϬ†T•mêZÁ‘D|¢ ªjÓÕ$ €bUÐÌÌb‘Ò.d"~Ø< ¤'‚z°¢‡¸cˆŒÔÀå€ÌhìŒôÌE6éïH#6Vaëúˆ”v@S¹ZO„‡õ`Ch†rCXäYƒÊof$ lŸAJ‡häµû'jÙ•˜Ëo@·ò–Ú.Õß™x—Däæ»çc ;€™Ô¢R„™ÅgÂÏù!ë2ꜵÆó©o’v9xÊ…˜6³±÷IȃÌÌZq”R¦™ºÀóîáR–€Â€²G+¦›ŒCÉÃXæ]ÎÀÄ~ío£–ßžx+o¯'FËÙØH+&Ü48üQUÎØ Þž¢Ó±"Šes)K·È‚+ž÷ µ~p.îmfeÑN8!cð6QUt†’ÒNÚÐh°6Q÷”ŒªÁº®¼3\L¹¨H_Ÿš(f@ðÄ51íB 4`LŽÔ2(ëWkæíPBUGò¶©¿m;ؾ”KFC!ü¥jb²T§•‘³vŠž’Q¥¨¾S¢Yù˜"îl¸Ûvzp=c§ídRžÔeCT3è£k¹4C8Œ«]úÙÇ•“?Ì›ýê¹SéÍ®¯q‹…óèÞÕê¹5Ôþä>m‰g;bÛÕg‡ž–wÅwæ­‘ù\ùܹ%ç±ÕöJ34´&¨•Π®Cc‚t %ë9ìÈ=­<¿SÔ1Ûd#.r…÷¿ùö+XŽ˜Tût ¬:˜§¸1¡Ð—íÕ_ ¿¤<3ütÞ6e¢:6PÍ¥£¾˜šMxh_ñ WѪêPë~(ûBƒyÛÔ½o-7عˆÍ&}EiðhédPÓ5ŠQ%ž¢Õp©¡æ61Ÿ‰¦pd¢«O„KYà àìYÝÐhÕSÑÑ*Æ0Üþ°^Ù¼W®nÙ·¶el ‰ék]ÁFF«–÷ª‘p5á)ˆ  î¢qÕ_Ó#Ù\©¼óàÆê›ù ¡ML1¢D-‡Þl¯æ ;I㢋HZ»sÏ)¿Ý–wè곞{¹ö+X 4†”VÝGUhGR]d‰wC@ОjÓþ:úåµ±—ó¶i}ÑYÌ…e—p Ü iØß©Îs·`\ë$UìÚ€Ž¹g”ÿ)ªí³*‰bº»×ÎÊð9ÎPVÁâZ ,E¡;– ½~Y‰³°–€B‚ÝN³Á×…O~¾ˆ£´¢b(±„Ò*ëd;IEMUÌ áÙÁá%,}Y·dÁM(BtâÒ¹RÎ §g‚ªž³‹+›s(oh6å… ™<†A!꣇3óU° ` Ð ÍLFk™´’¿Ž9›ñÁ ~ažO‹‚;NMfëÀ°2*çìaËçdÙ<öÑ"¶ aì°#Cú)ÕÐÐËÐeA Ãa8¢v|÷äÚ¼›ª’PÒP‹ª BЉÑsÊ =ʼÏË`À@ŒÝÂ8JÞd‚­yÛ¤ò¤è:5P!"ÉîdââYRVËQA7Õ$l޲cËYY?v®á(ÛCQ,¨•Á±F3)ÊÉÚŒ$»‹QФèÔê}…oÞÏÛ¦d´ÃF]Ñ5BG˜Þø ]§hzêÙP)Ž 73ÑtuÞ6¥¥ @4”,ípNjºÎP ©¼-Mªæìa«æìaóg+2›‘BzrT…‡Ç7J¥A]#,bAÓT2Sfëîòè‹)'tjÊPÐË¢©E¡^f0±„h(¯=È”Í9ÈØ]ya‘µ•#M5¢!H$Ž {Î¥Œ—%.;³dûPœë¯Í;&YvG±¤NOÑH&)Á-) öC^7&,âÌ.š¼F7¸ÞÏÛ&–Õg*,„ qö}FÖ•žx‚©*T]Ãî‘(Û6ÞÄFäÙÝ2DÎØr†©É2¡ !>„R[)îjº Äð|êß!P^tËïÏXgr¤‚3…}[.@4\‰²y‡@1:x{ ?³¥°¦Ò>м„Á½‹ †Éš ‡LÂâŠnÙ¦ãAH9’‘R´~° ž’1ø*† ëd†®¥@ùÀØr94rV0–oú!˜òë²ÍÐØÍAù1‡=icwúß1br‚|eÿWP!T`Wl4cfmªsÔA ,ó-Ãõ5×ãô±Kü4¨TöÎHƒ~ƵNÜá~ªÖ¸sÿD`´'ÛWòO¤ãe½hv7CÒ$<°ð#¢õ‡bç ˜®Çaé 3´½IL–Â0†» çà*kû`÷Æ@±x{~úc2Q/X‡ˆ¡=‹ k´qêù9'À_:–›™ÿ“”u!)nìzí ƒwdIéüÃPs<ì¾80Ãbó\Ê ŠÒ¨@r,„k^Ë?ÞžÆLíj£…;ãZî¼Nãö½·“"¾ûâûflÀWÌ£Ê^'ãÄ=-ßA—òžHÜ 7UŠyËŒ4 ž[‹ŒÅ%®a¾í\ü¨ýG—Ç1šŨ˜×5ú¸˜ÞtÉ`o|/Ö­ÁÛgVÛg•¬ XÖ Î–A4\€ =Y‡/:ãd4£Á˜D.á‚®ÑDÈ$|UuÌ8YS>MÒ~ŒtÏ@š ‚w¦g‘¬À€Ý¡ Hi "ã(®ìœq²€ŒÅéE4qg‚!)â‹àã|ØÝ>ãd=™J™Eg– —¡OÙ9ãdL9’^O(¢ëAš,÷/Ƕȶ'+ˆ+ql‹lÃrÿrЄ&ÅLX8$½6ãdžà(¼E#陀 5Q Á“œq²¦ÜAœ(t‰ƒ*óÐ5†DF«ªî˜q²ÞžBqe'&aÓNPD‡ÝÃL“®$xGéÉ"LíiÍC ´oÆÉ TCÂAé%„è8© l”´¸[ðAäƒY¹…ŽKãØÛ…µÁµ „B· -<«d]ò{S;0϶ëŠÖaOléd| ¿>=ø4d]ÔßHÿ8ïM0'‚år¨nÞ ŠQ5_…y÷HWÑX!«{‹FPTÞkZ§~ÉV€Òõ@U¿i –á*žË‹jÍÜYÝóñOlË=˜6¬H°ä\úXÿc0 /¦¾gZcXiÅ!éUÄ•¸úrøeÓ:/¾Œ¸ÕZ¥W0ª2­Ó´ì€ÀT÷™Ö°¹“úWÛlV3ÿŒ˜6Œx"˜xkümÁl,I5‰R»/±S{Hˆh}feàòa¨kq²¸¾Ûô5Ô„ 9Á¢¾LIM»éƒ–¼Ab²,æ EìVlŸyGZŽÏ]ù†éç«C…h¤Ð6.Ê{â{Lt›”'1×_}Cü®}¦¿‹°Ö†"m]ô÷ýOZ;‰O!aÀNéñ}”Ð_iEƒ³e¡sìa]g,™·ûb¹šúÝ–OøÚ‹"»$Ù•çv0¼Œæ%ovSD·ä¢z(÷Aäàˆ1»Û0Á6åÁíœ-YcE#¢õáÕ®±a€˜¿²À¾Ì–aÕù¡% B p¾ÌvE±×XÑáì94.Ú!€¥gì vç$Ÿ¥¾&”Ž–eoìbÉÒØQ[ñNo:G@,Í…]ÙgÃÞniNŠFî<°_ÓXK9(Ô(Pà$¢° (pÒPHX 8i($¬ œ4VN «@' ŸJÂZí9ÇËKwPÂNù°:0»ºÆc!§]T&iÞ&dšÉÁZ¿aX{<ªÌbr¸Î¼ÉÒQe¬"š>jôgx¯‹]î¥Ë±È»Èr0 \Km^ÚšÑ"… Á‹fWŒv цøx…é[Ÿ§‰ŽV9TÙšŒaP÷¶X:î™dRÚiy~¯ð®wÙ)Kwæ‚'NœXoÙ øE(\_ú­9!ºÑ’N»7W¹ŠÀ¼ùD«¸¡Î–4 Fß•ªdéÒ\ä^tì8ËÒ¹èÚ·Ê•š´ty4xŠÇ¡ÿj±·%yüf|¡êËêêŠ[ýóøM–4âÁmÕßná(ký”š(B×ë/Ëž}kB9kbC‘x´ïXߨë¦o˜ u.D|¨ÒÒƒ! ¸¾ìkUUìK±„˜&ÜRóÕ:³~yDz­u·"À–ð7ûÿdZƒ‹/zŸB…P)\S}ilÌøh)Û¹gÒqó/Þý[σ&sìHë<ÓºF#ÜÞ„D$äèm5ïx;Ú;ƒ ¶ÉîZ¨’ù…Í·Z¾†pÔ->óý䢊ðy÷ÃXä]lß2ŸlÎ)9 ÝKíW¸†ƒ2¿¾Õ÷,XÂQßlþ¦i E²a²§áþ&[¸¯Ù´NÏÁUHF‹á¶FXI6#­ó J<{ð½sMk¤bEèÜsᛉ™_Ø\[}-ÊøáFïS `ÞöVß³rEü-u·˜Ö˜ÆrÂ*â§Þü.ªÌuCxØÉÔƒ òæ"q ƒ‚”3ÿ%&f¦^¶Šlþ¥ëS¦„˘_ÕLÇb4 ¶ÏAnê¹zé ÓåK¦’¦•~š3 ó£Ÿ”ÓzfÐdæ#Kcký4õ¿†NCWÍO+íèª^´‹”sbj;ƒ@“ÍtŸ~®vâkòÀ<NjJgz ZÁTiÁmsnÃe•—áéÁ§±®húÇämÔzÇXk¿Ê;;é:|Ñ÷TsK±=÷$*éÕòïú~G½éë(ʱ7>3GÔxcG!x“ÐZ+®è¦(ZÃámaw%awÅN¨¡ë4¾÷ô·-GÃ’­î^ •6uP“}ÕH—ÀîÍȹTÊØ1zx.TÑg0C!RÝ™ýï\)ç„¿dfõ€íKÑúÁ9(®ìB:TlÞ$­+ &{êÀÙ³`m'vå)w7ÝÍ¡Íx´ÿQl m0~¿’\â~KlŸÅaéu¨8qÝ[»_ô=q£_ÝV­_{¾»énØi;ÚR3+ʾ¤üÜ:çVl™Ø‚&w½¼]þ5]ÆÎÃy®{0¤@R?qý§¸q½÷1,.Ç ©ïa…p•ñƒö’ÛnÇrßrìŒíœ‘›E.éA¸m.e€$Øø”RRÓIï÷žàÌjQ;÷ž†#»Ö£ªy/&Gê$oÅ(“‹ù¬‚àNãx^nÓh ‹Ñ¶d"Aøª‘‰ú´E§¿@ØzbcÕ(ªèB>_®31<û¶\›=–• œÆ»RÔxG#(Z›Åk¿ˆ««¯ÆŸ‡ÿŒUåÊ_ÓߤWدÄzÇ—Ñ-€¬qb‡/]Ž}O¡™;[²ÿ‹ælõçÝ¿ îjº ÎìŠíšQ,Ÿ„\z¨òÝÙüÃRיÿb¾²Ó ŠNš¨†¢³„§@ÑeýÍØŸ†þn^»ƒÛ+<ç4ïy% a)P I£ÁRÑ  ¢žUÿcàªÙÝyŸôŽ¿]µR‘m, Ý 0 ÀÐ) Ñ »+•^pÖ_÷åÓ˜¬ñ÷î]ݬk씥é†AB©º¡1Gÿ¦êå­ýÕ v絓hÿàìÆèhE‘¡O¹øZÕ¦â0ƒ&€ŠQÕùg¼²WpÅYÒ¯4Ùýâe«t•a¦ã'€¢cJ—€Ípø¢‰Egýí`¾X6ú®.º.tOGÙŽö‰¤3G©†¢±„£@6$íOá‡zž›øeÞÙù½ºÇ[æ9Wú§ûD1$& Bš@NϨ·w­ÛW'Ž9;½LûPý»§”ƒÍÐ B`h†jL ª~(½=úÝžkóf¿KŠn-¹¬äö:nzœ²Æ–VuYg)žYµÇÆîë|=öÄD>ýo]° ó{¦û„Pšƒ‚ÔGý´ì¼?m£ˆvÌL‘Kym­[ÎY¢«ìÔ²—h@@(ýccFÓý¥Cͧ¾Ù‘/–þƒË*†;æW:ó±1ÃP„hÆô8¢hE«]òa{°²/¯ÿóÁ·.\œM¹œÓñJ×aÈT›ˆn°œ¬¬¸àÉíù4íË÷T=¹§ìSýU'E4ücn«†¬o¿~hð®î|:7—¯úlße,Å}4fÂQš¡Óó]Ô³ÚƒÃÿÒº'õ÷Y9&›GfaÚƒ£K<:€[½Ï!HÏÁ“‰[pçwòí?宫¹.Æ…û߇®t$=ÿ*€§xÌ÷ÌÇ7š¾ iù n©¿ZúKêëü垇0 ìÁoâW!§Çk[£Ê6tí; }‡—¡nÁv$"eФØY]§‘ž"XÛWh4“_Ã0(h ‡‘ƒó *þåÅ€?ϧîÁjÛ âûl‹½‹ÑäjÂÿtý¶E¶!§å÷¢b)¥¶R|þ÷A y?^ø€þptu÷·õ$~¿qmª‘å¨*nb8oÿñvd~¸ŠÇQ6÷°) 1íBÿ®©–VlþBUGLé\â~w!­¦qñ‡÷Å–‚çV?çûÙ_áÉÄ­¦b™Æò¦ûô]yVZf(樞i hÚ?ÎÀºù¦éÚÔÿjªù_{ @?ƒaáW£évÆÔ/f™î'ž2¿ Ë4¡ÿIÏ ìÑ>¦@}¤g†é¶°ÆŒ®ÑmºO÷»9©ÿÕ º…ó{Ó?¬bùøØ×Tóç¦û˜¥XP&S!ìÑk¬ÌíiL_ó5Íùm¬n‘ï;üŸôˆ8bJC34 ç†1ß_'ý2v1£Í`#øX¸|HL”©¬K¤¼eæb‡?Žx¸D]uîSÔll?Í(àlÄ'+IJ¹íÌL6MïLCLº¥ê–=Lùœ¼[V'ä°üÖÛïÐoßwI©æÚ”VÓP EN">‘¼‰1ë0Û¯ìÄ<îñ™Á˜íѼ[*'dWl.,»@ ²–HFÚ”/d k r¢[*®ïfŽ÷©~<ìž2“qîÊ7™@‰y§Ú@醺«•‹÷SmÎh‘å%h2 o`TmZöwÊl›:åw±Üvôà‘‡˜îLÞ-«ãbÀ@W¦ «‹–ÊÇÎ¥ü+ð)$,Å‘͹úÞ ïóç»5e&$Ô8×áÁu«é“w„ŒMUÊÆÎôþ¿cAÑ{¢·²~¿¦w ^È -Flδéßî X[.QU¿ÛÎ 3÷,ÿ$¢‘‚”-ïù{x›¥CŸ19ÅùþݺßôAKR²8ñþHŸ+©šw©M«iø=±žVå9Kmâ…4DÅ›àìYÓËFB pöÔHuý^O¾‘fk‘L…zoÒR›^Aeí^Ñ᎙^bi‘ùÁ­áC>Q3Ÿh’J‚§§¯CyÃòãO¥4ç…è#ciÕÜnš˜ÃÛé_™ÛÌøÁ²^ÍfrïêãTµì¡éÙ³Á™€¯lÔœöÇpKnÿ¸U<1òÓ!3{Œg(7„¹?šÏœGÙ–~.3”3ïßL½½ÿù5nÿ8œÁIóYæ(Áо„à´ÖÝ4­ 4§ÃüçÁQl΂å=æ–ÀãØï"1ùÄÇ‚ŽGZMã•ÄO­`ŠŸ (pQHX 8i($¬ œ4VN «@' …„U @“†O%a}µü—õΚËg…PüÿWe5–3·°kƒk­Êàл›šÙš±f2Z‚𑦫±LöÕ9'†çX•Á‘÷Ïš?}ªÛ,óÜóðY÷Z>Oó9ÿwýóÜæýÆ€&4¾SþÂ|«±´ðpEÅ•Ö,s Z\’ŒZënE¶¡gç*óÆ\GIOÑx¹eÕöígV)9k6¸n+zÒúƧ°Š™z,ržæ_0oRkƒk±H8Çç³à×Äkײ›C›aŹTÊ:˜,ñOŽÔ˜Ö€áîùH{¬Øæêƒøh©0Ô±ÈR,‰É2¤¢¿˜4ï?B°Â~¹ÓŠm®ƒòc¥óbçÙ¡³-ŲÀ³¶þ*v©%ÕÂuØP²Ahó¥#ªÂ!1Zæé¶–„'‡k‘ŽüRÆ|’0 1Z‚áŽE¬®™÷PËe<ˆ†«}© k‹‘UUX`;ˤë,éŸBºÔõc”“¹£þ˜µ@u0ÜT{œT€½Àõ¦cY%\Zn½&¸Ë|ËLëŒw4ÀÐúÀ;šÖ3ntí]Eâ¹è€ù[Çã#¥Ó.v¨s!bãæ=Ð÷½s ƒ"á¶&ÓÕöj\Xv!‚tw–ãßLëœíø Š™Z‹Pi7{ù×›¾ŠÐäÿ±÷^avTWú÷»+×É©sŽjI­œ#!¢‘L2iÀÆcö‡l0ç™±§ÁþÛ`°Ç& Ø&c@(€rênuާÓÉùTþ.Zb€O‡>]Å ÏÓ¯.[ç}V…½ö®ª½~ëf÷ÿ3íÑÈmÀ:ñ&4ØØU|È´Od¨²$r½G7CÊš§-ß½ †FÓ¡>óÈñl̇t$€èt5=Ö·Ô´O÷Á  ä6<س‰&4îj¹ åd®qý‡éXÎÊtˆºcê 3; m´ ^nn3¯Ÿóƒ…4ƒ/SŽÃKWÏ©¸–݈Iµt(º‚iiåÂÜ–çšÆ@•9ðŽ™Üï4I„œŸ½4ŸuP8! ÀoOCÉós*‚6 J^g›ñ ¼-‹\znÈ[E!åìpûg(œ#Maç\[Ê—"­¦‘Q3 •“ðÓõ`æ@¢d?] z €´šFVÍ¢”/S,.Ö7ëÆ@fÀÌ=ã¤Ja£æ~! IDATvnüt’Ú$d# Ã00œF…P†?8 †’ç!8Î\k1BéÈgçF •óv(’§wfpöT™›s¾’ÁòÒ Š†p¸#È$½˜KCMåϸàôÍÜ3 /A7uŽôR/ç…H‹æ‚f®“‡®„•†5sÆËØ(/ZØ-ø¨÷a؈Ϧ¿Íâòo‡ÿÀÝZw+8ŠÃ/½á½x¯Ò‹:[¶•lÃGë?ŠŒšÁïF~‡kj/“ŽKOòÛíw!¡ã‘ø­è—÷¾'½tw>>中ü6tJ/@1u4f0‹\‹ÐhoÄß§ÿŽ'‚O #ÙQÐCS8äânLv·A×h­V®}™ézãBè:…öÏ¢´¶ï=é¥Éh‚½KÐw|x!‹†Å0pz]ÎæŠ‹ñ‰J°bå­=Ý ªPÕA6æAh ù”Î@ºJÉe5=ÜÔp+2IjEÝ¢Cð” Æ’Ï:¯ÇñÝ;ah4­oîÐKšú©é¾fÊ[{`óÅÁð…ëÄZ-¸´âR\Yy%BR/L½€Måmùi­GX+Þ€qõþ”üCÂo·¡Gz }¢ O=»çÙîÀFÛÇ1­öâ¤ô üêyrFÍp›ü›Ð•쯆~…#±#qI†N#—pcòt+I€§rù„3W·ð°8xj-伈æå{QÕ|._adM6åÅÔH :÷]BéX¸îEtØ¡zkG™È`(ZEù‚nˆžh¶p}l>éFl´ ÉP)G ¼3›RUeBÁF*Ѳr7•ƒ=T…Gl²Ç^Û…|Ö‰¦%û1Þß.9ÊC|t¤ºÆÂ_7giœ­puVµXÍÍødÃ'‘×óxhø!ÜRw¼'÷ îÇ¿ £GðHüèSö «Ï­ì‡lß³ùÄ\~Ðbonoølù2÷r'Œçƒ’ŸóÓÓÚi¹†]n€ õtîåôO#¯d,Í%Ž/ø¶:nó—ÑÍŒ(Dzª…M«i£”/ã 8?œüqÿ'Fó#¯Ô×Û¾U³Ú³Æ%Ð"•Ó²ZRM(:0ʘfCÒzX=š*þëØíïàèT­ØsàüòØT®p>“ö²¼='åSŽTÎW7òT® œh$'*}rNä‚3•Õ%Ž¡…ä³N–À@ º?±dë3ã¼-yNr™aPäÈ ×Ö„ƒõ.]g ËçUšRUP0ò»°œ¤8˧bå­=GB*°‡ûÊrI·x{:'gm‚Ãʧbe"¸ÙÆåû¦Ëë» Î׸¿]º^¼Á륫9ÀÀ˜z2ë0jh€ÐÖÃè†fŠL~«çþ±Œš>g¥¸qP÷´ÞW½Ú»ÖE" 5®šžBP«f–Ø‚˜6*¿‘ûcì±Ä¿¬9[-^å¼ÌùåÒ:v¥ ÆÔÙJº]ÍäëÄzº’™ßŒ>ZÈCÊØ¹É×p|^Ö5ŠØÝQ%)·€ÝÉ×´4,}£ ýô|ûíÞíŽ;ýL›ÌŒí2º‹ÊQ­B¨äàxâHêÁÁŸNöfzæTUM¶½ºÍT5ì‡+?Œj[5öGöã›íßÐþ–þ:M6Ê‹¿¥þ­(¦»òã2Ç=ˆjÃpQeØ,|F½·ã>fK` zÒ=xnò¹¢bYê^Še;ðZè5ÜÑ|»&3Cô+™Ÿ`11^Éüãê©¢|úOl„”u ¤zo>w£^ÚÚGiyºN¨)‚Ü Ê<¢#µàliH'rQ·²jûcìøà"ø+†QÙX\,¡±fL ¶¡¢©'_ûJxƒq–N"÷ÀW+fgõ0 :R]£!ºïXl¬Üþ8I†ËA(-+^+ŠSï§ëp‘ã‹”`11¨Êwº¿Ãn lÛÑ7±/²¯¨cÚØŒ5Þ5x5ô*þuá—•~í%¶KzõÜ<Ÿþ>¢ÚìC >ä¼‚Ê Üê}Ôøê©¯‘¥î¥H«i<:òhQÉj±×T_ƒãñ㸰ìB4»ê£É;™•Â58’]Ò‹ES° ¢“µ¨hèÄ‘—®UDœåíiÈY;|µÃ(†bè4ÂCu ”–—1Õפ¯»äTh´ ¼-‰¦¥û‹Š%-ÃPÇ”ÖôaèÔZ$R¥ZiÓž.«l¢»¸ÂìÄD9òi'œ%aŒw,TÛßd8!‹\Ú…Ö•»Áò…©°g%'.wÞ‹´ —Ú¿®}µã«ôFÿFŒfGñÔøSEÅòn™NXgõíöocƒ4CÁg&Å÷Ä’òà‡eQ/L½€ïœþŽ©XvVîÄç[f~½Rq ïÝÚûôǬE«hٲǔ‡’ç1ðÆ@ýâX²éS>}Ç7£ëÍ™¯iu+Bp™£ \ )ã€ÍÇö0åQÅ,Á½%3 òßü¿ü•)ŸÛnÃMµ7¾ZŒ ÕYó;¥#ðÑ5èO÷ã¶Ã·™òXâ^‚-ÿàñä—ðBæßMùœÜ{9†:Öš6îc1Ó÷úfhÅ6^ñkSS#­8ðÜ€²Önx* ?¿—&º"9UÀÀ%û.Ì`s(0øiEhì‹ìÃ=§î1ËÿùYÔÙîýÊ>SÉ rzAuNw8vØt,ɨº‚¼‘ĘrÜ´OIõ ¬Ì曽;H!1œ ṼÀ@IÕ€iù0ÑA³Ê™ðæd÷Í<ªÌØ ¬ ¡O@7t‹ìé1«ŽÅA7tĵ "ÚiŸ³« ƒ±ƒ¦=†2CH*Ih†Š>ùuÓ>ÊA¬˜+ªSN!‰ž™{®´Æüur&Á°3/ÞE·yÔ’Í;sϸüS`Mòåt¨gVˆ£æ¯ÓY™jóõvu¥ºpYÕ…¹_įb³†YnŽAåj±#󃞚f-Çä<¼SîÂoé.ù%³6ðW càä¹zéIÚ,õ‘€wdACM-Z÷‚i.±èH"/ÍŠ+š\]3 +6Z­mÚõ0e–~ªAAX€–«Kÿvøw¦¯Óx~‹=-é¥{¹³•’žÅÇ—´Ïû¼é‰WÖeÄå88çHöï™›Þ0çô†05º åoå¹"× Éî‹!5]"¯½äQÓìh†•@3*C”Ý哦}Gù¨7³ò‚Ç9³ä]`†\º˜½6÷Í®oYÞÈj9a@§òÔ‰w²Ò€y:gƈâ¹þ¡ÓI%g©µ{Oº3—r<Í©°Æcã=™Ã¸*+ûÂNFó²Wx.g©Ï¼»d:"i.G1ïÐÞKõm‡ºFç'fô÷j/V¬ì®hI22KaË$ˈÒ$øԀá\¿5H8€¬–EBŸ²6lIµðv•âD`ÀîŠX¦Ÿ²\+[»Øx[Z¦(k÷žÁü¨å± Ì?Ïk^óúi>aÍk^óúÀh>aÍk^óúÀh>aÍk^óúÀh>aÍk^óúÀè}IXÚC‹VhØi‡ù¾åg$Ðüœ…äd<Œ¦ªð–ϱ¦²ÄЭÅŠ$š‡#‘®ÓÐ5Æò1‰´¢ay[\Œ×ò11„Oì–O°H9)šX½…Éût†åáUåè¹Î%à PUÎz0xŸÖ÷›Ÿ\ ,yT³Ëðƒ%?5:£OÔ}’ßjû”Uü¤õ¥U.vnˆw+—ðàðó×Y¦¨vìÝáNN[Úžxã/7­×瀸9—¦GZ0ѹhn<˜sèKMß,]"\nɃ‹G–½°Þj,ÛK·ãF×O¬‘ Ü]ù‡Ú¥nóü)Ðûþ÷cæang4ܹ áË3wÏž Z“k÷^6åEßþK¬Æ¼ 뢲‹PÂU WºÌÕÿÁÕÎï£ÎÖ`³‚7®µÕâ’²ËØ‹ì_„“2¿Ws›íN8{kí¦= ƒ 4Јx¨ÒÞ8®ÀôH«®3 Q€èH- ¡{o3í¡k N¼é¨×žK˜OæKÜK°Â½Ö¾Óù °Ä<†z—óßÀ޾¾æzÓvÆŽ[ênÁ þ*±†]nÚg11šøUŽløGÓ K 4@•Ev¨sµi)gGßñMHL–³rÖË…+ÁŽ,t-D o~²LM—Á0@‚H¡ñéjä3.è K²qóøýT¨†A“ÐXÓœá}g¥ë&Û` ©)Ë só¥9ëýë±Ö·bp^ÉVýå̉ö¢™Û‚ z¢¨Bh–ˆ8Ï~;DÊÙÈ Œ^¤=Øÿsjs`3ZÀD¾¸*ó:[.+¿ ÉN¬ô­Ð£F/9&ý/V ×!¢…º€ÂUhãÎG§ü"– W =B*ÅJ´¹ÚПé/ [¢k âã• †®RZÛÚW¨‰E€A :ŠÛ…ŸŒ”c¬wüØmÕ8[޲ùâHM—€s(¶Æ15]†\»/ŽT¸ÄX´þ’ŒT -{‹B:›IÄPç0¼)ë@>çÐõÃT*TB`øâ6f/t-Ä…¥âHì6•lÔú”ר rË…+1©†b̾i€`£ø1Ôr+Ñ'ïÁárã'ý?!í®vTÛª1˜) ¨{»¼œ»*w!$…P#Ö€ç4íùÌ÷©µâŒ’zq禅ۂUµè”^À ájm_ø *,…±Þ·ÃÙa(Æì ’•³vö4rI—Ѿáy 6BʺàðÄi½CùŒ Ã]«a÷D‘ŒT@7ÝS$©é2МRtQv6æE:R»/Št8 Õ¶¥¥#l„Ó?]’ÈÐi w­F.åÍ•@÷@0 €v( 8šÊ‚eŠÃTôs“C !eíð—Ó íʂźـ6>ŒÎ7.‚¡S¨j>Îöߤ3Î<‡3¬HÆ%qñdµ?3Pø±A&"h›¤Âj m*g£¢y^ÈpÓ£Íl)Ò²ì5±¼¾[,TsÆ'ÉѦ×ÃK×`\?@;P® õ ¾òf8'ŽEú˜—Æ'œƒ‰u;8("¡äêW€àÕàqîæºv½ÇxœmÄW *:Œ‡x*ð4ßà*xL£¼AÃv"­‡0†—Ølf³ÔR·“¹yzè°8Z#ZU‹´ˆ§ü‡Pß¼ nÖS±ºÑY#O‹uF xâÀþrüÖÕÐðFÁ~)O D.†ž#ç5­G¹Þc›UÆ‘gÇ ÔÏ•çC‘¦’Xªp·ÁÑ EÈ4§Âk¬Ç9®æ³v*®„Ó¢Z–î+º ¾ÔRdv.„“{.ƒ* (­îcBã mWy5`è´Cb³ªÇ=8°®àG Iv€uJ@ ¥ƒvH“–äòºnn¤k%hFAó’½BiMÀ‹s«'3Óý¬\TÜt%Z¸-¸Îõ_8ž8Žow}6Ɔ¡ÌPÑ>ÍŽfÄå8¾·ô{h´7âáø-˜T»Òú‘Ñ#Ey0„G=»Š‘Ç—ü{!ë*>yø“ð°t&;‹z”€€‹qaS`>Qÿ Í?‰Ç’wƒ&,¦Ôî¢)ª„hOcÏÓG.éEe{hNoË‚bŠ›Pt‚”q0rt8AÂÖ«~Ž|ÆoYÅ1çÒh*‹‘îè?¾îŠ øjF à„â—å¹” 'aäðJ¨2‹õ—ý +Ãé›Ã÷H('ªØ%ˆŸõ>ƒˆÅGî@€àtêtѱT‰U ¸±öF\Z~)žOûs@2ÒEQK™GËn=Úî †@ÜøÜñ™N@½©^HzqÇä`¨µÕ¢„/Á}‹îCXíÇD¶ÁM—cX)ží–Ž@Ñ:ö]ŒÉá6”4Âî ƒf0|quÃò 'hNÅð¡•€A°ùÊ_BSXxJÇQl³,ÙMz‘Š–àØkïH£zÉIh* Þ^p±øÿ“”±ƒf4Œw-D.îBû¦gá+…`O‹÷y»L¿tOêSUŽb!¿ÀLƒÍ°žS²€¾tòz ö™m ùR¬€ÒCŸ¼uìj0„ƒ¶¡J¬BG²£èda)ŒÌV{g¾Ð´qç#¬ Ì)Y€§dºNMzaÈÄ<]É¢“P´Ñ•@.á@A΋Ègð–a.ÄчÃBhtæKe6ægËÍ)Y€èLBWÙ3/_)D&êà--:Y@ÞH¡_Þ‡î<B!À`gìsJVÌ1–{«•ÛbþbL¨E'+`†ô0 ®†ò&4Ú]í8•8Ut²€´šFg²+<+@@PÂ4sJVàð„asÆŸ™ˆ¼#St²fH¢; 9'B×è:øt%|å#E'+àø,<%A„‚3}¥´„V甬€·g@sò ‚ÐXÜ ÓÉ x¾þ-õo¼öÈð#Ð s„Ž´šÆcc!§'µçÓß3Ë¡üÿ`RíÖO&NâHìˆiŸ‡†‚j(ú“©5í!:¨Yp «¨ÞšÂ݃f“«b¬ÕJªûá)1ï³pÝK D7JšÌÓOy{Ž’0[Z­_tÈ´ÏîìƒHhSêk¡×0œ6íóóþŸÃ€n<‘úŠiy?:¥0™ŸÔŠí!p.=6öRjBÝ›}qmN¯…ß¡¶µ/Pºh2ía÷D!ºpxÂzeSánQ³©yù^Ь¬y«Ç@3æ°9„ðÕf­uåk¦c9+zÕðu+q=ˆrcSø7²ç4soþ`"?*¯Þ“û¹éo÷Š‘‡¦Òîà3”2ËT~ +Má¿eï±[Ú\q$•Wé´éc¢h 1Ò‹ßàí®‚Jf•ÝÅÄP{ÔW?l#öt³|ßhü½Þ…̦œ‘¯—ÇŸÙ+žíGiF#¹¬+m>ùÓm’ HêSÑéC±C¦7Z&Õ$*®È~õöb¿0žKvOS£ ¾ÚQÓ÷ !ͪ¨¬íüå#¦7ïñb±PuØU¶[Á>sb4%‡›—î3¿/çŒ,',x%ôúñpR0ßÂ3|Høï.ŠR-Q ¥£¹ãAXÞá{XýÕV˜6ß²/¦¡ÐöC§,í˜súC‘ªÚ“æÛ Ÿ‘àK”eG½VкäÕ !†ù >ާöûBŒ%Žâƒ—«·âÖ°{(ˆ¥s|<÷Âì',]kšVA9´#ªÊ[º÷8[mûrÖÆ‚3îÊInKc’b4´-ùC+–r0_ü<¯yÍë¤ù„5¯yÍë£ù„5¯yÍë£ù„5¯yÍë£ù„5¯yÍë£ù„5¯yÍë£÷§/ak@S­áܬ7¬=,VMÜúì®y+ºÔ÷±R+¬&ðЕØê?ßòv„LÔÏe~«6˜ì[PnXìT§äL´˜Þ÷tVá±F›’·v~ .÷ÞYn5–2¦+=«,5€Í¾Nm­W(Kì,»Î2‡EÊØ¬±LùœjõhŠ52¬¦ÒëYjýÆû°tÁhçª:9k©i.:â ç=Õ¬Ña/t~†ÝQºÃ’‡@ ¸¾äî&?]oÉgw>n®ûX©UÔrx¸Á1>°È’‡" ž^Ú¢«ÖÆe&êGÿñ-^+@7€`ðÔ:o&bi¼œñ}µE ÖȰ+…kð‘êë,ÝÀ7VÜ^ÚÊm³K€nÀ-ÕŸnâ)k[ “SeîXg)Óè:…¡S««sIks®œs ÿØ–:]·L~¶ž°:ö])'òã‹`ö&f)÷,¼¥L£°Óy¿éX–òÂñ#ìõµ×£ÑÞhÚçîÖ»a£]ÌíÞÇM{ˆÄpÿ b£íºšëLû$§Ê „îCç#›2ßþè߯†®ÓTðÔbÓªÌaº·Ñ©jq¸Ë<Åw¨c5¡Jqº¯ªl~L}cñ7À–ºÕû{Ó%tv:¿µ¾µÂ¥˜ö¹±öFÔ‰-¶›Ýÿ‚…ý§·{Ÿ€v0_hý‚i)í@t¤ÁþvvzÔ< ±ûàÈg\Âd×"˜ï)@0~r¤¬ïÜo´xV––r†Dhh4 “Ï4¡ÁR37®•ÙR f~K@ 񾄡6z扇·pã1„MfV3vÆ|EÂY,²ahªùÁ}ö:éÝ ‚awø™‘ªœù­A`èæoÁ³×I´pÏpÄö)÷¬Ÿ•Xh°o]w3âÉÌBÏÚ=ó×ø­smBgûöë>W˜i\X»gÎÊTiŽ®S8þÚ.ô݂֯crh¡R² Ž 6 ¬‚Í]™ ÎV‡ï.ù.–¸—àÉà“XìmŸÏ|—¾Ýû8ªØ%èž-*ž­¶Oáãžß`H9†ØÔCánÊÁ8ð¹–Ï!$…0šÕƒ¥X|má×pmõµxxèa\P¶M{8ñÔ îŸ`“íVtHÏC2f¯2¯cWá3¾¿¢‚Y„ƒ¹GáÅ’ü_'þÊÜ¿ø~T8+®Š?:Zƒ©î½Qè2+×,8N§b%èØ1î(l®ÂŒ°³R‡^ü†»Ö`Ѻ—0Ú³\¯lï"S§Ûœ*…#)‚™K¸<¹šÂÁá‹‚¦d©²é4sø¥k!çmðWWÀÜ}x:ö]†Ê¦N$#å’«<Ädb^„ÁÛÓ`…Ùë6]¬ ßlÿ&.)»ö?ˆ‹+vèÅo"·zÅraNH†ÙëÞñáß“`‡‘Zƒð IDATå0ry§|*yŠþÚ¯£8t& sÏÞ®ÛoÇMwà™Ég°Ø³@z.û fø¸Üy/†”ƒHꓳzxèJÜé{«Åà©ÔW±Œ»ZûAï©ûÝ‡Õ¾ÕØÙWX `¼c1hFËçáöL©6wŒ:öÊU hî@1_‚“{.G÷Á аôM„F[ä@ã«Fl¤¢'Q¹TÎ ž\‚lÔÝ0¤¤SY¸î%úðKAlªeu½ dî ²óHÛ«sùAl¢ÊÓwp˲Ùþ_yÃé±k_í/ô÷ÏWÿ²u­ãòŠÙ|þµï–éƒ3ÅŸ—ÛÂQïÝJ+¤Œeÿ©ÍÁBßê¾.pGų>+==ýÈЯ‚ß-8:ïoþå¢åÎM³½¿4xÁQ©ëœ•âºÁ×ÿtÛÖÙ稪áŠßoøû¬Ž¥ö†îë»­`ö»µê+u;K?Z?›ÏO|®cwâ ²’ßøË?¬‘²Ž÷\"JÓWèϯú{*Zâ8½gû¬Ïúš‰Å_è)ô÷îÛš&Û ÓϨyÍëǽÁølÿïí"Û^Ý6ç4gèã‹¡äD”,èÃdG›¼òü'¸Së¡ä¬¼ðq8ܳs¨kÙ•ø˜ç׈j#8{Wˆ?þ£û?ùÏ4½é^|«ë[Eñ¬®¯¹;+wⱱǰʷB•„cŒbä°œ¿I߇¹Ggõàˆ ·{Ÿ€›*Ç£‰;ñYß ê='¿Ê|¢þ`(÷u܇iizVŸ%î%øBë0”‘øÜÐpyþÉÔ—…«œßCü*~—(®Y÷¡óì[‚–{0ܽB"œÎë*‹LÌƒÒæ8ü³Ÿ_]e<Õ]¥QÖÚ‹‘cËõÍ;¦Ní» :Ö\ôGC| 5áÔÞKá- Âá a°c]Þ[;&„ëá „QÒTp^z‡¦ûš‘ŽøáoDr¬:_·ðM!-C|ºK6?ƒ@ÕìèU†;¼O‚ J|_ð¿®ßuì.ês-ŸCZMãk_CFý˜¶¶à“ŸÄáØa¤Õ4Ö”WIoæå/q|od‹¿¦‹{—z‹û—hæ¶à‰ä—ðaÇäÿ0ü´°Æ»µ¶Zü{÷¿£#9;Þ¥L(Ãý‹î‡¬Ëøõð¯ñ­öûÕÇ.anpý }ÿ» Š1; e¬w)zoCEC'4•GxªQ=1&¬†»r ¾"0G†Lt-‚”v ´¥Ó=MRûÆgù±ž¥Èg\Xqþ“pùg_5¦ã~ùp| KÞÄÑW®‘Ëup¡ž°¶,*w¹ã¨L%¬·k¢« É©rpBÝü}SË<ŽØðŸe!pĆǃã'}?1Ëù%çãÞE÷¾^AåMS>Ÿö>…eÂNLæ'qÛ7˜òp³n<¶á10„Á_ÓßÀ_R÷™òîZ…¯_hX{œmnHÙ³=ºÙ„îÀ$¶^õ )\Úƒ—ÿp ƒ ¤©¯¨p.EGkêo!¶ßøD{q9Þ­¯Ž£š]Š£ñ£øçãÿlÊ£Þ^‡W? øMâ6ìÍþÊ”Ï.ç7q™ã(º‚«÷_”Z\ã“wëëþˆ2¡ GóOâÁØU¦,ÄrV¦Û|•ÝCz²T^sñéb[X½[:TÕS¨¥¶å¿z꫌nr`g‡Ñè¬SzŒ'èý¹GLyÀ)éYœ'~V½ûø©¸2§Gì·$ë2¦¤)4yü¹_Åob “ÇäL!2Q/ÙqÆYR\»§sɈ >V¥o¾ò—„a‹Çî¾] 'òH%Ëre­Ý¬Ù¤%8“È%<¹ÖU¯²Å<Ò‰ü_q¾ýŸô;Ž|šÈº¹cJ( 0À‹aéñÔݦ7 õÉ{°‚ÿHîÁ¾‡Ø®T—YŽÆÅåÛÕÿˆl¥4˜;&Ñž‚¦ðP ^ñ× ›þ,lóÆ‘ •äWœÿ$ãô˜-øÊÇ09¸H®^v’¶’@÷!aÊ€Ãé¯l8å§ t‚)F=оif¨'õ-\ŠPXž’"ÂÓlJ7· 2¢i¡÷ÍPgÀÊìWâ¯'´“–vð³b>®ÖF³æg]Bép»§zÊëºVVG¼˜AVö„8[ÞôžBÑ–Õ4s²üì½ I62%\=‡"§Ìwu‘#Ⱥž‡Õ äRá|6øÆÄÇ y7«eÁ8»{µW-oK!§º$VLï…!Āݪj8é£óÄQ†Ë#“ó÷óŽŒåÝîïKiNYco˜åÌ£„ ­‡ñÒôsæ–3oSGò¤6®ž²jƒ¿…™6;kŸUDŽàPîqs/3Þ&Űl¶ñäÛU½àø¤ÕÎæŒÃáì7Y¬\¥ÓY›ÓÚå6 ã‰ÉGf<‹Ærcè’^¶v±H?•ŠÈÅ7O9—d]Ƌɟ›ŸmÏÈ囆èN˜ŸmÏÈ_=çk—›å$ø«G­˜3š/~ž×¼æõÑ|š׼æõÑ|š׼æõÑ|š׼æõÑ|š׼æõÑ|š׼æõÑû’°ºßØÚ,e­A¾2I?Æ:Úk­Æ²«âJv¹ða«6¸·áá6+ˆhr4á&÷–‰˜—:¿àXí]mÕÇÿ¾«]·€s€ØT BýÖÈ{&ºÛ|±)k}5uBßçµ[eµw5.µ}ÅÀ-%ß+or4Yò°3vÜ]þø¬Eë³i¹ðaìªÜe  `ðèºÚLÒÚö))ëÄÐñ•ÖNÌYNXRÆŽøt¥|À<Æz–"*óÉyó+‘ñ¡Š]ìy¶O¿Å82£zv Úíëýý³ÞS——_Ž5¶k=^zÖÂõ‚²Q^lµßbÛY¹VÈ¥Ù¸‰H™/\ùal lAX cd?•ø$ÕPøÜ6L¨øKê~É?ŽBEë‰|Ò%Õ¶áO¬‡¦2h\òªšOÀS2^Ð'-G°¯}Ç6ƒ¢44­Ø‹Á“dG ÄÅÇ+AÑJ[{a÷FÀps«Qdš›w÷Íå©X×=~žOW)hYFÒ4ŠX–5tÊc}ËóÙ¼?î*Ÿ,H W9cÁj7ASYŒ.Í0ZŽ“pºJƒäôTuÕ‘ˆÍ+Xõ»ÃssIXæ@Õ9*´¤N«©ü:ÕCjy¤ kÔòìG“ÿ;òhs.ä›ë>êe‰à€zcgž¦hvseK–&3°îóªÚrŠë¹8›ß]HµÕ¹ÂµÒÖèÀÛiV—Ug9ÝOWa“€uR¥hPþ1ùü‰ÊÑsÖyÑ„ÂU­·–ú¨Fª”Z¡æõ¬±¸„Êy·‹}µJRð&“þÝ9Éщ!9Vê…Aì eéœaÂhïŠ ˆ†A0Ô½&›Ê–ÅìþHÁBÅèH'>QéÀÉy“£mY¢”žgUŒ®°‘´TCýþ0ÃJçݪÂS§‚—t…u ZŽQ ƒÂäh[V‘ELµÈ²nOFÓà 3¿­õúÌh´weŽÀô“ B'0²T¦¬¥7æ«,˜±Îwm÷.²Õº°^΃Å%¥9Q«!"mS0^ªI¯—oMÿ¹/4­Àù8½«éývRâ€J²EÀQ«Ëª³6zæ˜V•4I9;—R»“…bY%\eßê\à! "Mhl®hÎÒ„ãpE€ÀÍêÇÓûƒt¬7ÕU°`w{ãG}åŽU.Œ‡Ô>M“œNÀM—t½LßQ_Ÿšð|« v!›ò2ÝÁí~]¥ å8ÙPlÏj*c€ñÁö|Vö&<•Á‚5²ÉÉrGt¬Æ@ÐucK³†N˱^×hIU-:sz§æTÃI>9nÞì[ŠtÂ_i^¸NóÖi†“ «,¼Õc Ôìu—ºÆ 6V †Ï!Ÿr!5í×Ö\ô'::Qw`åõÅa:êØUX%\‹Sò³¸Éõ =’U¨_ýË=ËñÌä3Ïž Þ®KË/…Ÿóc 3€û]"õ% 0@ƒÃË™Šb…Û).°ÿ&”N,®À"v§z_Ç×™•Þ•8•8…7£ÅAÛÝíØàÛ€±ø—¶¯h1tÐ/e~ˆ&n#^Ë>ˆ˜6;§†:Ö@UyØ1~ùj£¬­—h2B xªÆŠâZ©2‡x° ‚3‰Äd%Ô¬ ®¸àÏLh¬ %ÕTKx¼¡±”Ô àðKת¼=˸ʧO9à©¢ìañ`  YSÝ-ƪ '™„ '¡~QAö;ä£k±Õö)ôÉ{±ÃþÏðíÚw»¿K¯ñ®Á¾È¾¢H¡°Þ¿‹]‹q$v÷/¾OíPžfNIÏ œiÃß3?BF/8O¾%,.t|Š‘W:¿§ß×qÕähBX ãÙÉâzT‰U¸¬ü2‰ÁÇë?¿ÑMÞN-æ.ÁÁüÿ`T)HÔ~‡&!)ƒ¯b_¸Ns•†hÞ™‚* ðV¢g§†:èhhV* ˆUÎŒí©*8<T5,*–wËtÂ:«ÏÝ„©‘b å¼Ýÿ뚃t•EïžM€ªæXyÁ¦bÙf»7¸gh¥_9ù•¢“ûõãå?F»»y#‰»&ݦ<üt=¾]:3Ÿ ô>`Êç¦Ú›p[Ãm€ïG6£_ÞkÊçÕ?©X)^BÓ†ý¦<¤ŒCg¶W4/ ×¾lʧëÍ Ñw|3 ~ÍAðvsÕþý J<\¾)œwÍ›òhá¶ânÿk€_ üýƒ)ŸÏ·|;+wþeºQmÄ”ÏÊSà‰''p×±»LylôoÄ·Ú¿ø}âìΚ#Ìyùjûg¾6oÙºˆDõnAÏkçÊêz°öâÙqåï%Ë_ gVAl¾¨©d„V º ”×w›Ž¥G~²‘5âJ=邌üYµ;¼ Ë?eÚ#®TNB‡nì˜Kp8vŠ¡1m jq³þ¹TÙØ À€³Äˆ X1VÈPšQZ3§7 ïPIM(J381 N4ÏÚ¨h(®Ã͹TO"®¡èŠq8^\G£sit? èÆ˜r ­˜î4çÖ±üS0``wh·iîT7J²‘5zå×Lû”7t0 ºã0˺#Ä€Ý` ¢È'¦÷’©6_o—;0‘Ó«så »ÙbZ{K„¼# Cb3K6=cº©[JÁNJ•¿OÒGãÅ-Ï¥Îd'®®Ù)ÿ,v-æX@tLª§áTW¦9øKÓ ÙÂr5¶òÜAíǬYF=ø+‡Ðwl‹V³üe–‰EˆV òÉLËŠ=¦¯“ÍGt².㪠qfWWÀ 36V­m¸ü·¦'^ÅÈ#£GN:rO?eúóÕXn küKÓOg¿À‡´âšrœK½ònl>)ßÛqŸé„9-Y—‘*oæ~oÚÇéÆxÿÒLIóÇðæqa‚;)îÈ­8ÿ-odµüHÓÓ-oÆbUë¬, ÔV=*Úâ+¬ÄBë®TßÀ:§¢›'$@CYt?ç>¹Á Ÿ›ƒàÐöŽ”,YÚUë0Q]·¯B5¬1æÆ†—íÍJÞMV< ƒBCÃþŽË™o­ Ç—6ZaÌ@i w¯Ç´tL á0ØwÁDNËÏmÿÊ»pIòƒ‹­ðØ bçïŸNé¬ÄÂR,Z[ö¤#g©%ª;Ž5®0ûô̼w¬ª«g¬H9-oXMVÀð’•ÎfQ0̹¿ÎE4#éV“0|Þò1©†Œ¼ž³ã§{ÍCÔ ˜îkA2Zb·B.MÅJ1Ò½‚ ×AUÌ_«k«¯…ƒör׺~`Úƒ‹ë\ÿ…Å®vÇ:ß:Ó>mÎ6l+Ù!îr~sN<­wë ç×ÁžþTã§L{è:é¾&L5Ù#æA‹áñzDÆëí¡þFVY¡þ&èM÷>Ï´‡"‹8}à$§KÅ|Úü*v½=9W8>âú!h˜_‘|ÄõœŒ›»ºêjÓ~Î[ênÁVÛ§Ø f¡iŸÕâu¨åÚ?ÛüYK´ÛéžfäÒnq´ÛÒžpïCšZ€ õÁ0yP†Æ"—p ˜Z`:–Èx4…%šÂ!Ÿ4èÞØ ‚åÂ.Óº UìP È¿ùMË«¼«À–xéjT0æ“ùJáÀÖ’­¦=”œ%/ÂÐi2=j~‚ 6C×i"çlsæŸèR¡‚‰Aó“w2RŠ|ÖC§ˆ•ßßP¤š]mã¿\Øbé:-p.€›uƒ#6Ò™OæËù] „B»»6¦x¨áÛe3¹ ˜2Ÿ<ÏÊt-a°o)&¢ª¹ãý‹5ý(%glÈÆ|œiS¯¦k ¢£µPe¬ AÉqÚâ /P£Ý+¡Ê"žpQ±$•<¹ŠD§juš—‰Ý›@|¢¬(¡ØÇKË/Åzßz¼zç—nÓO~‰4qÑÂmÅr° Ìíí²S>\âø2pŒ ܤQýÕ௨+*¯Gqæ CØÞ®vw;vUî¡ø!¬ò¬ÐF´ýÔ¨r mÔ֋¼Q±ôm³} ø p(ÿ'¬?b<ÐûYë[‹…®…èJWŒªÊ¢#µ (†N@ÁP[V¼N u®!3µÅ(<ވᮕ(«ïÃÔp«jó&(–—‘œ*çÈ‚*¢Àö,^&—pÃQA&ì3–ný™jC2Zöž`¹·+—v£ÿøf¶ä¼²lÓ|5A*¬Më`ø‚è©wh½=..¿¯‡_ÇæÀFõPþQJ‡‚Uâ5ª' ±Ûœ‹‹w£Ž]….ù%´qé?ìý!Ù^ºUbúÒÅšW‰U¸¾æzŒfGQ%VAg¢ú¾ÜÃd›í¤’za æÛµR¸kÄp8ÿg¬®Ñž >E¹X6ú7¢7Ý Å˜½’ÄÐiDGj gmà]iÈi»Ö¾é9j´g¤œ.ßtQ±¼[äæ~gï\~Š•r½‡Î D'klÍ“óY'ÅÛ3j.é@p$¥@ÝPÜ_3\òjtGGêÜù¬ƒ›+‘WrÍpyä2ÿ{oGu®ÿ>»æê¹Õ­¡5K–,Ù–GyÆÌ0$ &p€ $@nBr2‰Ì$9ÈÉp 9 !ƃã[dk[RK­«º¦ýÿ ›8üݲTÅZ÷z­~¾˜¥µúá­Ú»Þ½«ö~ÛÏP•÷dšV¼sù&òÞ¡}o^V:1Xã6 áøœÅ‹ªNÁ —u Ôb 'ä Y4]9_Þì·À»D¼±òŽÐBß²)0œÚ+*øAãV+,– WÛ§¾0ùÀäÖô_óB / Þ8Ë{½¯„«ŠmŸfêÕR™°PÂYÔ®ÄÛ麿?6®åø±¸§ñgeKý+Ý#’¤‘05ª b´‚k–Â"n Û3O¦ÿz^TèBù<ùÊ¢¯5ˆ«dè×ä*øyB·Ò‘›ãš+À‘ôõ†ÿ0±uâµ¼ÞÃíÍE“Ñ ¯¦¸x É›T-ƒ'”RVSÝaLŽôdœùÂèt¿›×—Œ׺-‹%‚”1b²¼AÕ”W¢ å¬î/LEšçH%F#®ÑŽ9EÙdPÙ—TÕ”Gtûǵôd±þâ!¥~ñÛ¡HOÞLqd×9¡Ñž&¯ªx8 î¢qUËzˆe²œ¡ ,ÃÔÏ䀹ξ+K Åìê¾Y¼Ì¿ÆÃ1mÔXÑŠ™=V­°HFníÍÔ£Égã÷åÍèk=W{. ܨJГ{W­àç ùA£Z®`òì~5~ µ7oý\ýÝáµs½>ÈT§ƒj¿æâYx˜ /3>F±RV›ò̃#7Œäó(ãøŠï ·Èç¹ bF¯îfBTúÍ÷< ú•íÅѧOFÿœÈç3Þ_ãõÖÔ´WÙ—Ps'¹2V6ŠP¤/ÓÐúæ¸78:«š3®¿¿uVs{Ëà!‡“`cLƒ…H †.åêæm—Úwž‹²¨›·CŒÌ9Têöçýú]äëÀ¼G÷œ ŽÓP3o§Ôñî:Uôg$%ãà 7S< IDATÃ)÷ØD£›IäŸ!‰Á,¸¸#)@p) +l(ÜÃņêN„P\ÞÍÍYòV XÒŸÿÓ‡mf Íôàˆ„wGÄÿ%ccÿ[Ògê[À€Á³}oHogˆÕü§™¼0Ñ”íÆU•uH¼>´Gº¨RTzÍB7 iEñ¶õ]O ²ÅãÎ3ò¼M¿‡Jë¨`¢ÏÜʲ¶±1éœâ‹ÅØ5ÞÆ=3ØìOµæ}‡É ŒÄ?pWS+XÂbãÀñSus­wôßHõø(,ì02þÊ«=ùa€~÷z,GïáVr•söIý]KAPEMuƒ5"…Óž¡áEžéÉR8 v\ƒ¥Ê¼YÎн¢nŸÜ{¨šêBYÍ!¾fÁ®"h8ïbJÈ¿;Šý[.Pß²U:¸íBK.J‰™D1 ®pRNfË+²ýùÏ .Á—…ªxÀ‰:x—&‰R4Ç2&;:Ðo0Fæ¯|Ù®èn@ž„ÅoY&éá't/pUdòÚÐ;ò†Ê9ðp¼Ý-¼í ÷gZóÂÐß”²°Â›qûœXÔÂÆÁ·¤›kê}æ£B¾ *xÛü± ¡×]ÕÁüh ýÌÏPaqà2ÄÌNÒKßÙÄÃÇ%™…þ…èLõ2÷¼áíŸlÍû¡nœuáωWp÷¼ðq>¼5º—_^®¶Y’ªé7ÁûÍG…A×cÅÕÕ‡ò.¼„=ð¸b8¼ó\°¬‰ºù;¤£{ÎÎIþ”˜MÀr&¤pÊ=1YïžLÏY3ÝË49˜‡ôX)ƺê(Īõ†iòÝy“ïÿ¥l*^ÈaóÓ· “(BéÜ#pâà$ Ì ¨¥ÀÔ{²¦¸`,úö,Ã8çªß€Ẕ×Ê™]¢›)‚D¼8Ûu;.ò|»â»ðÃÃ?ãZ~îùûU!W cdðPëC‹a<‚Êãø{ê˰¨‰¤•w°ý¿”I„À 9¼ö×;¦ì Lñ±d%/Ëýý¢]•¡). îŸARpΆ_Ãиý3¿¿jÖ€àÀÛc¨s‚C(ªîaL°üÌ ßµ¬ k¡{Ç P“Áê?QNÃퟘq߈ A¶ uüJÜxc¹1ܺûV¸9÷ŒI·Ã0,÷̻˂ËðBú‡Øœ} M kå%aÿ‹ʸfX0qOx/øÜÞÏA1ôeû`åÁ=¿_2+#$„ÐlÅ¿€£??ñbÜì™ñ5)i?X^Ƕço@"Aq}'<%1°œ–³W mû£;ËdJrj589Q^Tg•¬ÀåÄBöØÙrjÒÁ¥Ì¸ÃSœ&Ñ•A.í(eðÈ&ðÆ0Ódkãf/ê„©¥é¹ž¹ˆkñY%+TÁ3<ÂâÔÀZǯBÔ8<ãdL†ƒ¨æ—€‹u!$†f•¬`RŸÄXn ó½S¦ë„U˜4‡f•¬À퇦ÊÐs.JÒÁ•™q²ÂX\™c "šê‚žg•¬@r¥!¹R˜:jLIúÀ‰ê¬’®,ŒœËdAAˆEà ŽÍªïi4‹£µü9%,†ÁnVÉ ˜:mgRŸÄ\ï\@°ãfÏŒ“0Ez6!ÌÖƒ'2X¢Þ]žLÏŒ“0ÅÓP0ß7ÕgJ¸F˜T›U²Ù“Ç«HNLMÆ”¤‚¤ØNVÀ°J®ëÃéæüU¯Ìªóž(^PѸl3XÎ0ŠjóŸšr*ùJG!zSfqe'Â3㌟LOÞÝÒ¬_vþÒ¶ÇXn O >…”5ª¿œ¹Ï¶ÏåwÑ›c›q8yضÏÀ‚Iÿ’øœmop U{ÁKª¨˜ÙâÁɨ„ +zÕܽ3^X9™ZÖm‹–4اŸJ¾$<á<¾q£¦9ÿ)D§ÒK™Ÿ"iÆô§Ÿšõw¢ìx:ÍYO&¿bÛãPîUʽŠÎL§¹iÔÆé}3i<Ÿ¾*Íû9zZ1Œ…ù«7á 3\ßc;–ãbkoªýŽNÐÁ˜i\ú¦w&‡ä“Ë›@<^5â+µ½†0 kjµM»8Ï,Gí5i !DW<Öó¤g&+"ù4’Ç7Û›{Òö ª°,!õêÀ)ªÎl•'_,K•£/f¿ëqÂù’<)¤³ÅqwQÜÞ:7†5Á2V¼~ÁÛ.ÉmïA·/Ž‘¦Ñ`å £cæ9QCiÅ‘T(Òc{…J“ŠØ3ýoz&õ™­šžLÃê0æ†=#¯+÷Û¾& i+†½ÑŒÖžj·]i‘2R¨ðxF¶êÿáÍRû×äòNb|¬vÄ_6â¸\Ãq€Š9öûü#³ûzö>ñ¢ ƒ•Ú-‹+wâ#ù&•꺽ŽK^Ú¶'•uÙ߉©×±¨ûÝ ±m½ïP÷Næ7ö»ÖC»)UëÄCr§ ˜þ!€äý8>ù‹‡‡JËÛyBÁzµÝºîl+6/©˜3ÿ­ 8ºÇ{’;ºûÇEGm­SíÜoöð\ÎQß5;°½×Pˆ£g¡-·±qw8z&9^¸6Óäå Pü\PAF*$¬‚ *è´Q!aTPA§ « ‚ :mTHXTÐi£BÂ*¨ ‚N} kèÈüRCs~Ì)ŒTç/›¡2ñ›ˆ9Z… ^Tî„Õ%b ÎtßäwË×¥b»Î© ®.þZ%qØä%\#Î+9ßí4–D´ÂI:knJ †,p HÌeÜémr¼f¸s¾_WÙˆŒˆËw9îÀ5|+Zƒ­ŽÉ°—„ÿ-äcœ1]L«¸¾Äi,À°,“Áð‘ùUÉ gñLŽU`¼§6B-gT×ÄP%?ØÑâÈÃÐE ]Pã„ÕKKp¡ç‹Å ìS’ ÎwßæYZç(/çÅGŠî¨sÚùZÄõ¸ªbCÀ ÐR`´§>à„©9Å‹‘ÎÆ:ËpF¡N…ѳ¥®É²ôZZ¬$œQT#r—øï¬‰£½°X!_‹ËÊ/sÄ6æW–~2R+8;°¹œkÁ†ÈuU"ãxLpž°FŽ6BÓdaסÝ7Mï¼úQèª,źíS’S±b$GJøÎ}kád–µ÷õ+`<7Øf?ñy9/¾<÷Ë(çæË—xî¶í³Öu3Hç‹7×ÝŒJÙþdâ» ¾ ŽðÌEÏØö²•Øàûš½óäVØG6OV!;n½¹¬ý½š;^¼Ôb™Áö~ZÖ…XO-ÆëÅþöŶ}:öœ…L"$GÛçÂIýaË!3^îÆÀïm{Ôò+ñ!÷—pvølþÌð™¶}>]÷i”Ò§gsÿ)ƒÛƒO!À Ÿk°_v\ŽÖ‰#-u|Ø·CðÿwËÿç×ñ/úçý%Äñ™ŽP·Nf 'ŠžpƒíRj§DÞ÷¯gú×ë°ïy¼}œòAèÄþöAÄóAôßY—æPJ`醶 ÖS‡@õ ”¸__¸n#»ˇÑùî–0LþbhÓà©Æ¶çoÄØ@êmÃD´VóE†ÙÁ}‹¡¤pâ ìô]Ú28Lô×`øàüc”Ë(«=ÌdâÅx÷ËÁ \¾ °ÓÐ,-‹ENñbçK×¢cÏYhlÝŒáîFYóQ&zpâC•ý °œ9-IUb%´[ñóÅ?ÇïlŒnD¯HÝ›{Šû|ÑFTò‹pD{Õ0EÂÅq™÷{¸ÙÿºõmÔ6Eßf[ƒ­¸³ñNÄõ8¢jtZò#G8”H%øÉŸ`CÕ<Üý0.(9Ïzdò“äöàSXçºíÚëÈÑ4,ä¿7"ñ`‘ôa|¡èeDø&¼£<V¯Ìµ%Û¸µü9‚ƒÉƒÐ­éj.§£ io‚;<Krõ ·qGãà¶‹àöNBr'§¥ŽZ‡l²Û6Þ€žƒ+1õ«è\h•Í=JÛ"5Z WQ cbºgÃ29¤c%Ø·–!ÀH@vMjnÿ$»óåk ©nЇÁ²ù9l”ºŒ}o^†[×£bÎLÆ*Ô@Õï¯ÄxÏ®,8Q›¶ÏŒ€w ~¾è縸ìb<Üó0Î(^m<•úsgÑ X"]‰ƒÚË0hnZâ­D|Xëº Ÿ >†04Ú0œÒœ•c¾3ÿ;]™.hVþz_†0ðr^ÜÝ|7nŸs;ž~ ýÍÚ3™¯±Wzˆ{¾…~c/ÒÖLäoožÈ¨á—áßC›°\Þ€ÿMÝ‹þý/}ÿÃþtÑO±<¸»ã»¡S³­k%ÿv4ôúl~0>XëoÛrq‹eðÆ´(%„0Ô¢&Ë!¦®îí¯lÙӓϧwøPe„R†Â&µ†ôøßN7–÷ô^oq4“ÏgËßnY£k"Ê‹B)(0åAbQÙN7ŸýJÞRüøPUQï¾eó©É½?KcXïý5̪潽s–¼—v÷ï‘Gš–¸>TžæLP°„# ˜YãK‡¯ÛÝ«tª'óàž<¾øÍµãâ!°`QJ-jÁ¤<Y0©A{´}“ßê¿p_¾X.ðß\r]ø{s"³Çb±8"0ÕMž,hVÎ||ø×þýp>ŸÌ}hÁBïò"–°Ç®I3YÂP†°T+m|©oåŽIcô¤½XSÝü¶g®_i<7Õ&&%  ¥Çû ˆeyC±‰†U›ä‹e´sndèè¼9ÿlÓ¤&ÃÆ´¨ÅMõV7—m9R>·-/ƒw÷KW/J‡”² S>CP† k‹.z~+!æIŸ(5í—Ú·œÓj™ÜÔû1)@@ëŸ}†1­pEïhËYÏ·ç‹åã¡oV­Ü^s¼muš3y"0:5(¬å,Å| ÷»_ߘ—Æú«O.«’ê< a …néCX†PPš6'ôÛº›ÞÎç1WZáþZÅß—ˆÄÅ€ Ã"”!tKx/>ÝÚ<ñÒðÏ»ï΋ȸ£úµ†¯¬âæLžðŒIMÊ¿&š5þdÛÞ쫳âQ‘O;tß²ì{ó2¤âÅX°úeìxéZ=<·‹OEK`ê<"ó—Nú<þ‹rFÚç—È8ýåÚ’óž¾}!Be}h9ãÌ„gÕ{h9ºÛV¡~ÑÛêh14SæxYEj´áº.x§&7PÊ zh4U@ñœ. îo1W~è/lWÛX&‹¥çý’+/ù=Õð­¸Þÿÿ¢OÃÆAœ!~Y}ðèƒÒ­u·bÇÄü¶ë·§ô€«+¯Æú²õøSߟpUå•Ú óŠ`ÐZÄKð·Ô—p(÷ê)=DâÁ-Ç 3~<™úî ½i}aï¿37×Þ Ã2pï¡{‘2NMKXè_ˆ;îÄÞÄ^¤4Î/_–ûßôwÄ˼ßÅ.å¯x>}©}÷9ˆvÏGÓŠ×phûù9) ƒ’ ´ñdÿ©9õ¦Ácøà|P ×õ ïbëŒËþ›9¸ý¢‚eç? –;55dl`n»¥5G`†{çiŠAa¢·þò(‚•ù)¬ÿâÓ9™xŠë»1ÖQ›kX²ULŽ#9^ŠÅg?(ïXðžl9>ø34šÅ?2âÓþ'Í»ö…½½þvŒäFð£Ã?:Å vJëÂëðÉÚObÓè&TȨ ²Ænõ î÷±)s?6g:¥ÁµþÿB=¿KÞ…›üju>"´[Q.•ãÇí?ž“-"Epwó݈ëqlÝ„»šïÔ¿’¿Ê÷3 êûñ§Ä­ÓÎìóÆg'a¨Ý›®ÂPg Ö@Ùo!{:Y&‹Ž-g€RµówbáºçmÅ2pt1ö¼v% zéÈþÙÁßóÙ·™‰$WºÞÞQ_>¦?)õ=†‡ºOÝYN¦++®Äç>¸7¶zÞIÕ´újh+ê…5èÉôàæ]7Ûò(—ËñèÊGA@ðTêëx1ýc[>G÷œ…Ã;ÏÔ¯Þ^š9ØðDuïX -ëBQiθÜÞGêäxÞøûm€Ò¹G(·Çùë¬ÇD5báC7ü‚”÷¥`Zý´t~&‚mãÛðõ¶¯ÛòXXŒûßxxò:ìP³ås½ÿ·8Óõih–†Ë·^Õ<õ$äýbƒçÎx.Ö…Êcxxò:[±¼ççè×qª³1œiû³Ü1Ž€)ÌŒ]ñÂ?;>ã€jÈòS¿éÉ)'“NÕcߪ0£YL>¥ô©ßZ0¡Zö}²4î8ÕTaÒ©{3æûu¼±@˜™ht2±ÜÔ¬c&³ù¼ü?¿1÷³ç3u_Ö3Í·¯SI±¦¸SNÚ)cdÞû6ä¤2ÖÔhÎÊÁ°ì]¥Š9ÕÞÇû Ù>æë¸Š+»Ð{hE®¼åÇ öpB(Do †"ª+.ü gw1ÁG6Öyo–õ•Ø;F<áq$†#úùoÖn5èqAÚšýÑ¡ÙÞÓ•éÂ<_£ºCÿ%·?·Ñ® öªOãB÷]Öm»o'9Ë^;)¦‚ mÅKy<ùYÛ×(Âh_£¨Œò®€½Y0xŠ'09PaõÑß’éx¦“ *`8ªêWÃõݶ÷#Èþ$²ì¢36òþð©_óé@îE¬–>©nÏçYkÇÊLÚXÂB÷ë/e~j{óèíu,oPxð§Ü jŸ0»7±g•¬ÈýçÄEÜLŽÊ›NŽ!`¹#D0‹ cÿí’ãMTÖìëôæ=ad&’Ý UƒW˜-ßûDB ÷.­ê(±‹}€´ÞAµ@v´›pÔèǤçÝŠê£ }qóà»]ŽvøÆõ8Rž#V££Ý9Y±8Á7“³ó‰áH×Áp¤ÛÑ5IîT3çÄœ£ün¬¿¢¶-È9è{²8:F·'{]ÓXn Ï3jÒŠÚ>‚b0ïÜ3:žnuñTÊšY¨ž-G£ÖÞ¼'íÌTHiN¨²{ÒIdžÓQRÝa|LÞЈÅËyÙ›±Š«;'¯+²F±+±ÓÞÇŒt(u@Ÿí'Ó«ãOÅœà‘©ÃŽäÞ°ÿvLE¥ýªÝùqDêڇ“Ë; Ù—°ŸeŽÉW<’egÍmÐþ1ÍjàL5   Oßël:`wê唓×S`jf¾3ó¤ýÑöŠŸ *¨ ÓF…„UPA6*$¬‚ *è´Q!aTPA§ « ‚ :mTHXTÐi£$a}³êOMÅ¢³-ZÖ…=¯]Yë4–îý«…Ô¨s¸áþ×>Ü┢:9VŽÁ Ó#o¬þ´w‘øa§6¸¿é©%,q¡\X‚kü÷;&Ã^úIhI`‰#J v¾p3#½s1ÖUçø ÚÞ}ËË'Çœ5·¡IèØ¶ÎÀy%çáB÷—lïÁ:®/Vü®¶ÚUíÈ£X,Æ—Kžë4àHXµüJ4»W.*»È‘ÏäPc5ÁTÜ~²Ñ5ýG–òñÁrPjÿÒ²‰Òaÿ€CriÏÁ•HÅÂ~M•m{… ._ì:×ý98Á·ˆëQëšëst# ¸²âJ,—7xƒ¬}˜`[Užz¯(¿Â¶¤ÆŠ‘‰‡|NÈ¥”2è>° ‰‘2—©Û¾uÅ…D4âï9´Â¶ ]ˆl"àWÛápeù•X纅—‰}Bw· Ýg/-»Ô¶\\v1æJk5ürG>À°.õÞHìM57!öì,ƒC| ¦.±{ϰË`G Ò“!FIÛoðXW-,‹eí¸À¶‡’ö£¿} ,çâýöî‹K/F©aç‹¢NXeÛ磾Ÿ€€!·ÕßfÛ£Î]‡³ÂgÁÏ–qg¹ìûœåº ~¶”;»ølÔ¸ìŸÈ>Ö9”2äÐvûí©ÄØÀªÄ&¢eö}*aê×x)ÔŒý"€Ã;.µ&ÖUkÛcyÑr´ø[PÆ53ËåÛö¹ÈóUÈŒ‡ÝPµ.Öe˃%,n¬¹‘ÙK=÷ØŽå¸l',?A ߊƒ¹—mÉ6”ˆ%¨w×ÏÊ'—ö²Xˆî©Âŕ݈VBSg^%aš<&¢ÕaL0¬ NV $| tæ…‰FNB.ã»hªH3\Ñl²éÉÙ¼îLŽU€À勃pâP“~˜úÌKÕdVF‹¿“aRkI+ŠzaͬfZa¶åÜȽØ߉jWõ¬pËó|ó13ׯaQ GµÍ˜#¬ÅlFp™ø1GX‹£ÚfPj!–‹A1ÌóÍ›ÑRW\Ð×{íT\Õ‰äD ²©™R”2ˆVAr§À‹Y€PHÞ”¤–9ó×fSç $}ÇÚÚ7 ³}5LO#“,B¨¼àÅ‘K{`äfŽ&懾Ì"kfaP }ú;hÖ'3Ÿå{™bÔò+qø¨3Ý çA£§qV×Tï®GX ã`ò à`îeÔðËácì ³ÆËØr,—>Ž+½?GDìPÆ0xfè¼<òò{žLÙI?Ã$GÊ@ˆ…@ù”I.P<(F{šÁqšW½ŠŠ9m¤ü¥6ýíKÑñîZ¤'‹á+ eœî攄†&Bö'¨€¯d,¯‡®JH– ÖU Ù0R±°Q7o×µ5(ê¾ÊÆ}˜®°56XÞC­êZ–ÕQÕ¼C] U^V¤ÌDÎ@q}'¼%£`óÐ$.\Šëª¯C™T†Ã©Ã 0´Iv·°Xº .&ˆC¹WðzöWØ«>7–Rn.VH×àÃÞoƒ€Ák™_â,÷mÖ“O1*7€‚Ȿǰitº3Ýy}V­Âåå—cMh ²f›F7ai¸6§Ð¸Ø(œ…¤ų©oc›òtzòŠžHX-—y¿SŠ#Úν;Þ-ž_r>dVÆÖñ­xvèYlŸØž7–\ÆäH &úª«09PnÕÌÛÅô\ B(šZ_Cùœpûó3Т=Íè>°±Ázðbe5G‹Ök”AMyÁK Šªûà ç%—š‹Ôh)ƺêaÜE0TAÔ”úÛ—Á49”ÏiCMó;Wtå%‹`àè"tí_ŠúEo£ûàJÃŽq‰h¡×wÃ[<:-•âœâsð±Ê¡ÅׂX.†ý‰ýˆ,ÃÇ”rå\ †ƒx%ós¼•Íáñ0a¬¯Á•ÞC$nìQŸB5·:÷zt«xyÅåà‡£/â…è Ø—È9šï›‹Ë.ÆG"E-ü}ðïX9O?¤¿Â¯®NU<º»ÔÿÁ¤9”×çdâŽ={V¿¨q×r%Õ—{YŸ @‘¹Rç‰@•„s ™:£%\¢¹]}#/訿}™œ(s(eÀP#gh2‰UéxÃäÑ×ÑšÍZÁ” ©y £G›üÙLPÀdREVNõX²gR£Ã Ô„éâÙÆ¦7òD%FËù£#gy(¦†!bY¥ ;<0/G1EßöÏËå¨7ãåí5ñJ×ähÄ €7-£Css„R&1pÔbÀÓ\¶¾~GRÓ'­ób ‹5¾O‚¢G@"n¿™³Tjf[5^táJ^ž=ÚÏK”}‹…âªõF€°y¶F(á—”äˆËÊJÕ˜g8Ãioä-ê[á^宓ƒnœÄˆhr¢U ž–˜X!Z¬\©twö'3{ÒÁOf]ä#s®ô˾" ÐyC(šÂ9‘D¨÷2Åoä-ÆíkÓÃa7@$` 3Gad Y PJÐß½XÍšÁ´+0™·Z7ÖSëILD\8C—hl¤^'Ô¤–Å›Xj²Oµ±yó$ÉCÐspäC>j2SïJ& j1ÌÈðÜœir"ŒÔê&#fâÙª¼#nj¬XŠT¹ˆÃýós àˆe½wM¬¥)‘ýiÉPÞzÇUž‹½rÀ€õ nZôèD/†‡/²0nTZ¡ì•ÊÑ£yñeR„-®½ÂË{e­¥ºDܤ¥¤(Ç‘©kš.ÖÆ\JFÉæ¶—JòW±€À KB924—ëxŽˆ(É]¦ŒöO¤z3=³*Ø%ç¼~Ž­jØÕ¡Õ(—Ê1¨âÞß³þ‘¹Ÿé3Þ‹ñVöái™ÏÇeš<ú/…ìI ÚÓ„ÎÅfÅ‚66—ñ@ô¤á ÌŒŸ£e]HÇÂp:Øl¹<“LËÚ01R…ÊÆý\§&YÀp÷<䲈î4v½º†ëzÇçÊÀW–´=Q–É!1\Á­ 1’ð˜+/þ ;9ZŽ`ÉŠÊNMk€J~1ˆ¡CیϞ4ûÒcìÃ=£ÙÛŒ—¢/aRŸY-éñŒb*øÆ¼oÐG'?M(¡°¨mÊ#3bj»˜ ÖÊ7£_ß‹‹=_E³ÊüfÛ7Ù öNîÅáÔáÅÒìmÆ’ÀHÀ÷Þkö›ÛØWÒ÷¡‚_Œ­ÊfrMS§ÛX‹}[>L#óË`Ár¼3Ä ¾ÅL IDATäH\¾F»ê`éÄ\ñ¡'؉h5Jª:à-™‘ÏD´ñÑ Ї°ý¥kMW Éúˢв2ü‘áiõÇEAŽ€0 U@¬·†.¿à ¢d|Ý)”ÕšQ,A¶+åC‡ö®õ=Î,³¾èûÌbÿblß‚þìÌ(ª­ÁVÔ»ëÑ•éÂZ¾oîPÿĶå6"ÈVbKöwygÒ'Š#Î?…´C¿ç¸>oÝsà[L…\AepÚ™ôt²°ŽëÇ ŒUE«`ÁÄg‡E[ØS='ãÅ?~à+Ed^þWÉé49X‘£SïÙ+/~ ¥ÕGlùlyæSˆTaM4ž¹Ù–‡®ÊèÚ6õ‘Ü Eu½çn\áýàó{?ý‰ý¶|þ°â¨qÕ nàk£U¶<ªø%øfx8¢¨~¦þ3¸¦êÀ÷ÆaаwM¯<úïP³>ˆî jWì´å‘Mпgjg¢aÉ[>û6½‡¦VÁê×l³ ¢<ºùLX&‹¢²>œq™=Šêbé2Üœ:Îíþ£÷ã™!{G»Ý3ïœW2E†ýâHp†Ê¿Š‡_E4GÕú9Ô+#¯À‚Ew)ÿc+YS”ÑâÊ€±¨·$j;wÑX^£.OÁÒÛ>ÕM{A¨¿Ì~,œ¨Bö'Á0-Ÿ“÷\…SjŸúT+Eû³ýèHçåþŸRÏ? Š·²Ûöˆ‡1 ¿‹œ•³6Çì%rx3ö&4+gõë{1bÚT ºy*yú#öy’' Á¥€åUZbs€€òú ¬Ie©ÖW6B@«›öØöèÔ¶bÂìCÒHÒq{‰6n‚I Ú–ÛŲZ´``·òWXÔ¢/¼d;–ãrœ°6n˜6¨>›ú–Šy+7Are²ž}/+ðG†õúE[!ˆö™XÕÍ»Áò9=TÛcÛƒŠp]7%CéPľϠ±»•g”?÷ýù=Ô¬=1𠪙Ó?°í¡SÏ¥¿ƒÝñ]Ù™¾žL‡’‡ðNb{öÓß…Aí?ÜËÞa 3XipbXEÕ½ˆÔV|Eö)µáŠnøCÑt¸®ÇÖ¹ïùÔvƒ½ÊAÂJ[1¼’ù9^о¤)³û¨}¢¶ŽoE¿Ú‘}&uϬã:QO§¾Q-ª¾>öºmãrüJEEý[ÃáεN}ººÖì2 ÑÑî2Âè©Æ†·ïZ«ß<¯¶¿Ëò˜ê¶ìçc¡݇º»V9Þ1_Vzø Ÿ?z¶SŸ£GÏê ”qtμ$¥:ª«w;;«ÀÀàÂ7²™ãkjlzcˆPêèg2Eû9jk¨ª~g³,%÷½ö#g§ˆ£gÁç‹î*+;ìxÇgoÏÊ·sškSŸB-aAtÚ¨° *¨ ÓF…„UPA6*$¬‚ *è´Q!aTPA§ « ‚ :mô$¬9òBGf^U~2 Ä…O£3b#'‘œâèó ʸf|µñÛuNc™è«;o…Aû¶óZ,ÃYçSS>ØrIÄi,ï¬ó¦bŽÄÜ]õ—% œ]S“p.n¯ÿ¬câè­5_ 5 ç:ò`ÀáÞ¹¿uLMÅÂ8²ólÇ{÷ÚwžQSŽĆepØ»érÇÄÑÁŽ…ˆ÷W;&Žþ{íëʸfGA¦ßhúáÿ?ˆ£WU^…¾R¾1ðß‚`qSà¨uÕ»/.»Ø¶šò >P)´ï>×D­}÷904Qio²íA)ƒ‘ÈG+¼ÃÝómûLDk0Ü5Ï묇“YÖsîODö:ÿol{Hćkýÿ…•ÁUžEöÉš«ŠVa¹­çß/!û¤üA "{ûœÛm{˜º€XG=;Z\#öQÀC] x£‡Ñn£‡› çdáÈ;gÙöPÒ~´ï:“ƒåB.mÿþ®/[ji®ûFÿïÑnoü¥BDþhÅGm{—ㄵ,° P/¬{³j‰ñ¢‚[XXj;5å¥ MDr¢Ô¶Olpj¢—q@-5r<4UAl¨Ö¶ÏD´ ”20uZÆ>j¹5Ø hÏ·íbkàg"`ƒEþE¶}ù! l9B¬}âh“8U˜Ûhµí¡ee˜JLDí…Àøp-(¦ŠÞMÍþÀ¢LNõ¹Øàì@˜'*9Q CA)%iâ¸,8õlWò‹l, 8Ô «ü³:[{SíwìüðŠò+pAéxyäeœU¼Î|.uÓ(ž‰ÅÒeèÖ¶Á@^Ñ{r3!\áýÂl-úõ½(c–uÿ޹ºòj…àŒ‹}³“~LôÕÂåO@˺Ì@ñ ã/Ž¢§m5dÏ$D9/bé_Ô¹o-¢ÝóPÝô.;[¬’¹$ !3„ËŸ!§®b24±îzX ^Ò@ FoZö&Û¹ï ˜†opfõjc è|w-ÂU]ˆW¢/Ëp’ŠÉÁ ˆ.,j|ÁõÕ×cuh5^Œ¾ˆsKΡN|𬒝C£x6:´- yxO'*ÄÖà ß`Á‚NV™þÄàìµUׂ! ú•™aKÖ…×ácÃÖñ­h-Z¢ïמauªâL÷­2Ú ÐSØ2àðïwÐ,žíÊŸ°Tþ(ýù‘Ÿ“K#—¢ÙÛŒ¶DÛŒbѲ2bÝu`°^1jæïa:öž†3áöÍ m4ع½‡V Rwc}suoék’#e=é™áe,±î:( ?¼%1d&Ö¢37’Þƒ+œ(AÑ ù“¥hßu.ܾ8tżé+1ñ¾j°œ^šYÝæú²õ¸¤ìücôXW¼ÆØ”ýSÆ5£U¾½úNèôÔ5­ñârßPÅ/ÁáÜ&ÔrëÌÿêü/æc•CDŠ =Õ>£XÞ/rÉÎ…ùÑ'Q“{¡tGÍ7*\SÑÆõÍËØqs@ðs$5zs›&Ž=?ù_y+™¯,º+|ŽïúPˆ«`XïPƒl§šYàC<Å‘L[æ?{¾=Ø«tä½ÓoŸY›N„ÜÔdšÇéËkTÍzX a…œ*ëK¶œùBÞVG«]GßYIÇÃ.Ü)MUÜœ(gµ\Æ#€èNçJꎆ«»ò26/,‰VéªÌûjê b#'s…?<’^°î…É:iƱL–ìÙôÑÚäx‰›Z,aÍdˆi2œIs¬ þÒáDÍ¢]y+[WÎõ|¢âóe5ò†sý¹2±BѺµ2aŽCÚQõéøÏF¶¦þ–vcñOËVy.øØ0PDõnÕÄP°ÎÇZ°h{z_æ;G?×—6'}:=¬ŸýNãƒÕÍžÅnBÒfÒ`¥­˜UÆ×IAÒÓ·§ŸüãØWò"2Öz¯ò]üri¹0µ8Õ»ÔR¾VÉ ieb¥½J‡òÈàƒÑm“¯å…öî[^ž‰øMMà ÁÉQƒ%–Ų¦.°„1©/4šYzþ“= kžt”R3^¾mËÅUÉXÄ œ¨°XÊ šy¼Ïð’ª+úâÍûóŽR±¾úÀhWcÉñ¶Ýi5§¸IÊjv Øè Ʋ˶ ËúòVô·m^_9­ö™šÈ‚±¨äJk¦.Óà9ëØ³áñgÖlîÉçQ#7ˆ_¨ý^Å\w‹âú¸îbe2a¾A€qc@{=ùèøS÷Åòù\ølÑ[ÂÅ\µL=Û!¶ŠO› ³ˆ/ #s û«¾¶göÏŠÃ3kD²D¼¨â—à¶à“p3!<úΓ¿ =ÔýˆðÙúÏBdDÜô~l›Ø†±\~,q©Tг‹ÏÆmõ·!m¤ñp÷ø®îru—ú¸´Þs7âÖ~;qýÐh~òBb<‚CÛ/ÀØÀ”ÖÃP]Õ=¼’ðCMyà+‹¢¨º¢+ÿ,Ë28¨iÛ€š,Š:0Þ[c,\»‘Û·åRP‹Á’³ŸA¸¢ ’+/¸™d‹qd×9å4–lÅѶ3·?.Ç*!¸TDæ„èNƒ|35íÁèÑF( |¥c° &WVsPîšÌdu-;Q;;<¼}n&„z~5>ü+8"âÑÄm¸Î÷+ëgí¿`¾Üôe˜ÔÄÿû&÷M ¬”+qiäR\Su Fs£xnè9œ[Ñ¢DòZ×'ѯïÅŸ· _NdÀ¡Š_Œý¿G¿[²¿C„]¬¼>´OþHùGP"–à±¾ÇðBô (ùg>€ÅÅøFó7@@pß‘ûð•¦/[%ÿæ:ÿ¯`P¿_n};2V~Drz2Œî«Ñs`9<Êêa¨§%Çq†˜-†ËŸ@qc$OÈóxPÊ —ñ`¸m>4UB°rʤO©_´MîØs4Ŧ寡¢aß´³55ëÅØÀì{ó2€±°hÝóØ÷Ö¥F¸¶‡ëha T´€äIáòÃ9sY7&úªŒ–Aò¦ û’Å”n?Ú×€’ª4¯Ü(?ŠG .Tò‹ð™àß`*°1ý´Š×«÷<%}ªîSðpüºó×x3ö&FÔü€Ãb±kBkpgÃP-¿êún­¿^{-û p¹÷ûH[cøMü* è{¡ÒüÏÓÉ4ë„u\ñBb¼8Ëu.õ܃®LîÜ{'x†G\›ÙtBBš¥á¡Ö‡P*•â¯É/âõoÈXÓ&ªE)ƒlÊ5ãÇÛÏ}`€šå»À0Ö´ì÷Ë49P“ÁD_ â(*ëÅÊ‹þJÒÌ^+@Íú@ˆ‰×Ÿ¸šêBYS;\Á88ÁafÆ £”‘‘˸0¸¿,§ãœ«  Ù3sš‹ ‚«|÷aµü l‰mÁÏŽü I}f$V(K`R\ñG¸9~¿½ú.$¬á#b8"ÂÏDP'¬Â­Ç‘62¸içM` ‹ÑÜÌÑ.>Þ‚¯4}kCk±5ûßx2õ5˜Ðf™SÒ€¼öİ ‹÷C³àÄÜ4Ê¿ŠZ, C6B´½¢œÁ9~ ËbgLºMuƒ ;^ú7LD«¬ìGQu?cæåÿŸLº*ƒš zvµ‚‚àŒü¢+ —71ãk‰.&ˆåÒÇq•ïgˆªQܺûVˆŒˆq-ÿ@ð~… tKǃKD­«Ï¥¾ƒ-ÊCP¬$r4ïxZÙþè®Ò&Í!”sS+°r²fvVÉ Æµq˜ÔDXœZ¶¯àZ7fœ¬€ n_™d(P‹©‰³JVÀ²8AC.=µe$3/*³JV¦:*e ç\´¬¼”›q²¦®‰—hYiÐyVÉ ²V)k‘c‹µîZ$ôĬ’ŒæFáâ\psnåÜ|Œ›=³âY4‡q³n>çÌʳJVÔ“Hè Ôºjå| RÖ謉˜²gªâšúè@ËÈà%eÆ6Æ/åËkkÕ Ë"³JV Hð¢‚t|jÇH.ã'h³JVÀK mêƒ;(A&„ÛŸÕ5åhqsåüÔ³],ä欒ĵ8SA¹4Eí©à[0iÙNVÀ°Jødê+P¬´ñ@ǰèÌoʉʚYü®ûwH[ãú³éoÛŽ¥²a%C¦'ƒ+0{œëq•Ìía sáYÏÙö])ÌYòx1§UÏŒã~2ʇ!yRzeã>ŠíÃØþœø ,jÒŸµÿ̶G¶Ï =ƒ˜Ù¥ý#û€mŸM™û1jtkO==í+à©tß‘û`Q“þ9aÿŒÄ`É *öAôdt¹}riQMQÑ–lä²ÿ@.>û9Ö4K;m{È xB1• ˜ 3[„8™žM} )3®?Ôõmx¤IM<ÐñT+eü=ùUÛ±Ûú%|ljAÆš@Ð\:ò÷þ¼ªic LÍ´J‚™ÑÝêã¶×a c XNíG9^ 2Ú¸d‹g&«<ù$¹ÒH$"1OhÜöfÂP0Œ•®mÚ%¹¼ö“pÂF„ž;úXï'ôÈI}‚÷Hüö²íË:UÁYEñWöºbZþïp§ÒhnKJÊG7eïs´Û](¹`Zö'lWZ0¬ +V¿`›g¦«Ò'“äNal¨aÔ‰Úï3`yeUµ@ñíÂ*MÂcÎ}¶ÿ5oÚ°Ÿ„cZ 5EÌÈ6õ÷Ž7ç:NX°9¶}ÿxR¶¿‰@ÚHc@~¸a GÔGopTI«ÅŽËaª›ÞÙãvOØß$@”3ÐO7µû›Âx‚ãåUmŽ{cÿöÝjÎ]ëÄ#¦Å0îytˆZäÄç@j÷Pטàȃ‚b?ùõnAPjø¸¼“ÈEpHç,*ïí..évÔÖ k‚¸èÃõ=AVP×´M!€£gaûøŽöhBrôLª¦Š.ñ·m«;Ê@¡ø¹ ‚ :THXTÐi£BÂ*¨ ‚NVAtÚ¨° *¨ ÓF…„UPA6ú@ÖÇÃ_*÷ñÎÀea1ŒK¼w•8e±ôanoSt¿»¢Ê4œñÏ2É"LôUÆ’ˆF¤DÌ1}û[k©Câh­»ëÜŸt¼Åâlï'¼µÎvX€! n*þ‰3Õü2œ[|¾cÚm¬§!˜I:Ú©Ó0|xãå%áÃHï\g´F}—–š³]B>Þ‡îqÞñ$,À…E7”Ïõ8 .ô-Ä9Þ[Kݜ幅¿ ôG±˜º€h÷¼ÊÔd±#Ÿ±zL T…©eŸ¾K)ÁÄ@•{¨ÛYÎe½íSe¨ÎžËµ¡µ8×}»Ÿ#ö“9Gœï¿Õ¿&äì àˆÁy¾«üŒ³g¡UÚ€Ë+.w³ÄA;Y,Æzæ„p¬ /F¬¿¶ÒÔQ¨“#¥èooå`¾ ]ÀPç‚Òì¤ßQ,MÞ&œç½µÜ)øÖ5¾_ÂË…oÍÿìòÂEFÄW›¿Š[%^éý¡íX–ËÇbéRîŠò+àd–=ÜKç¹]/o°í¡©.´m½ZÖ%÷Ú'Y&†#ÈċĎ=g ·?ÝõêP‹aÛìß—2© ·ÔÝ‚j~™tžëNÛ>绿ˆZa±tKí-(í_Ó½ îK8æ–àã¶=*¸…¸Øó5,ò-×—­·í멆šñHûßZ-g_¾óåÃ2X.zØ>íVIú19ThO7ì` ;´ãCÈe=âÈáfØtÂà[ó¾>îûOÛ±¼ççÔàx‘²fØ7 Ë8æg¯f À{`1 ê(†ª‰œmáé‰:VRsì¿øó ˜ .ŸXNÿ?;2¨“NÅ0›âô÷ëx;Y°Þ󳣜•û?;2 Á‚ù/~vt¼Ï0Ä3‹Bã÷‹=†!¬}Ûøx»Û‹åØo ˜¼òd¢”B·¦|œ<ÛïÅ4ÛÒžÈ(åñ¹¢çq¹çûxKy¹Úo;b¿1︮ú:ôeû2RÓv€ÀªÐ*übñ/pNÉ9øKÿ_ШÌíUŸæî ½ˆ…Ò¥èÔÞB™÷:ÔÉfëp¹ïû¸%ð2t+aìkg––⮦»À#ê2æ4<,‹…–uc`ßbŒ÷Ö"X5ˆLÜo.Xó³ë•kбo ¡ðb,; “Hñ`¸g¶oüFûæ fÁN$'ÊUÙŸäö-„2€äK‚á¬i襚"a´³ÑÃÍd„Ð\åÜw¹Á# Ѷõ0¬ Ù›Çç¿¿†>…‰~ûùO óÝuhX¶ÑîyVIcØ·“ƒ|i0œù^b=™BB”^€û݇¾xuôU¹‘3;¹ÏŸE ¿ ½ú;Piùj°±u¸!ð®÷ÿ=ú¸P’{nðenCåÜÑpÒFãÚø´E¶nÎ&Oþcñ`Cåü¾ç÷8«äLë©Ô×ÉŠ^Â:×-èÒ·!GÓÓolÖ¹nÅ犞G׌¶ÜFdTON5UîÞ–{Q!W ;ÓŒ‘¿ÏPÊ@WE Z€‘£ pMÀPEµqÙîðŽópxçÝiˆrŸ?]“VaëÿÞ„žƒ+дâuŒô5šE•Lÿ¾EHFË §è3€‘“¬À`ÛBXÉ—B 5tMdv¿zrŠžÀ8x1½¯eqÈ&ƒØùò58´ýBDêۯ̅ªû¸‘#së©/©àcÚÁÓÇû°,¸ ÿ±ø?°>²ô=‚¥ÁùÚ[Ù‡Ù;‹^B«|:´-ÈÑL^†Z>‘‹·/{s6?Xæ_í½kÎ÷縠ª¥#0Š•2ÝL€…¦ôד||â›yÙ¹7ß_»Æµ!"12Ö¤.7kR“ŠŒÄ@\å¾{ôKmíé¶¼Ãùï?ÓZ"Dd–°Ä¤Õ©nRèTb¼<A5«Wß—øîàùyËÖG{ço;®–“`yͰ e9Ý0tžŽ×õâÚξ’†#y‘ }ï.›“-+µ Žú¦[Ë€Pÿ›(gÔå=±OöMœ4ÛP‹%[žüÔrMñˆ”‚0Œe±,†Pz<†5MW`brÎÊ·æ‹eb :<|xþC„ãñ:Çó‚¦ëšÈ/ªzÝ¢íÝÕóv祱}¡äñ¦×¹!È,0ÕN6Æ8çÀã° NؘK:`0É`²B9K£ÑMŽ=Ó¹{ç]÷GÏè`®zÔ³7´V??µ4ïªÚUûÛUÕß÷Öl÷|Gñé>éq•£YŠK3G$¬Ëßî·[ƒrÒ(!ÆüÂîw®œ+‹NЬ¦ƒP iÝÐT>=N¬®y ‡F+çíÍh½0ÚÑX쮫üßy¦¨ºÆ³4«èºÊ³À ¢Ò´üƒ¶Âª¶ŒÞM»Þ¾fv|¼Ðk M€åU׊š!MQ´A8Ag®ÿ`O& 1êwtíY<[•mÐŒ¦BS,§èªlã€ô»Q\Û:4sÙûÝ™t®ñ¿b½û†r;í9ñnÛi7£Ša£í,DÔqù'ÇÿëèÞèöi9øQë7®ŸöZ…;ëîDµ³O÷<ÿžó}íÅø]ì þ ¸èžÝŽˆ~j+”S‹k½#¨w`H=ŠóßSny„¿¡êŽÆŸ»ÿœU{Î,<—–^Š¿þ—^¤+|+Ó¡lÅbû—ðfâ´ÊœRÃ0Þz>¤¤õó·`Û[×ë%M­Ll´ ŠfËjy-'mo€ÍÃHŒæÉóÖ½&´ï]‹ÂŠÔÏÿ8«>õ¶.D_Û|ÔÍýÇö¬W)Þàx»ˆäx>µÇa÷žÚo‰ FÚ¡« òªúÑ¿.Y~Á3T÷‘Å hóÖ¾1å*m’Jn!®ôü Çäh'š¨«”Ç;Ÿà¯­¼›‚›ðÊÀ+Yõéò²Ë±¶`-žë}wÕß®5^â"¢_ƒ—b÷¢OÝwJ åÁW¼M1ؘ|ßð¿C¾uà^êK_BLáí¿Èê8`¶w6n­¹ŸŒ‚r{9æJÔ·âßçÎvÝ‹OÄ¿`k*»¹×¾o ‚ýuh\¸û6^&»ŠÆCe %\(jè?…Óí$ºÊaøX#hÆ€«0ˆá£3ôþ_¦}ï8ÜQ4¯|kÊUð$Á:´íY‹²ú# U"4^®{K™è@òÊà.ÌÎwl¬«RÌU7FŽÎPg,þˆ‹G ŠåaÎêÀá>µç)×½¿C\A›² Wº~«ýÇáÿd¿Rõt%»ðDçWäSa*`}š‡f=„õë!‘8¾9œ7åö-åÂ/ŠÆÁP<Þz?oû¹©¶œ[t.îoºðÓñuhW¦µx<Áö·®C°¿ /£~å6SšÊãøÖ  P7o+f-{Ï”N×áe8üIú0¸zÉnNs6½{BŒ{àÊ bÕ¿5¥QÈÖã{m(ü©ëOx¶÷YS:×W]›ªo@ð£õÓ›Òy¤ Åì ‰ÁÝûî6¥ÑàjÀýð|ônlL™{6-ÛÏAçÁ• (‚ÚŸ€åÍun] MåQXÑŽeç›{¾cƒ5Øöæ €’™Gá)Êlg<ÃÇf :TšÑqÞ ?ÃNÿ\˜‹_G PN|8ú!¾wô{¦Úò¿z™ôm£¦‚v¢L‘´×Ó˜lÞiÒÑ€Ž¸1=ËOcs¦W©oáàžÖAMìóíÎé¹Ož¬-eœ85kSþEÏ ¢…JÒg VÆirÎ(DÌꦜLDõÑ3CL‹A#éç1LëØ&Ƙ¢uЬ…CwarœÌÏÁ>ygö<'y IDAT›ÿ!ÒËñ"(ÚÜÜ3 !a¤ÇÇŠ÷Ù$¦¯ùšdOd.*=Wþ}ø26j˜sl$0ЫíC6ˆ´1+ƒÒ8ÓùMãνwRfmLjIHºÖ1(½™xØt¢e^Q?†»š“þÚ>Þfr ‰`ºò O1Ù\+w2{ 44bSýý¦“˾(’cùâÂ3^á²½öìd´+c{™|ÿ¡X+æ‘Àç°‚Ôî£#̦¢éžøš„1†ñŽ!1h)[³W<.…¯ñ1ÿ…¢(ƒ¡ŽÐ)2;i€TTÍØÞëpE-¥?;|± »ÓJZE–· ÷[iKDïÇ'}ñ¡q9d)›p@kãßòZIÐ ãÐHô`GlÐRŸF¤DÜ/‡âƈӊŽàHõ ç·’:B3ʪñåY2tzà ÄrÖÊ5|%•­Væ^ŠD°w0ÑÚ—±\Éò¹”æH|·’ ¤/µ8ÝgÞ[v‚>±×ëÙ]ì9yÅýÑé÷Ÿ šUá+°œ|âÎÕX KûI J»#™®­Ê–¸D[ü˜µ¤;퉣JÜ0¿•ÒËm‘ÌûFO0®Œc@;dþk;§`H¤-ä=é­ ì¸ù}òvg¼=emðä&³ùaf*T"bod‡ù³ˆO‘+~Α#ÇiC.`åÈ‘ã´!°räÈqÚ X9rä8mȬ9rœ6äVŽ9N>—€õßu/Íò3æ=Ÿ ”mÆ›Qgµ-_©¼_a¿Áª ~ÑøÖ|7kÍXSŒy°ïƒËË­¶¥uÇžx0`U;Þ¼v±aXòà@†Z›¬9ø·ÚÿS0S8Û’ OÎ}{±Õ¶¬ ¬Á•®ŸZ³ÌpOñSå³<³,i‡¯e¾Õ¶ôµÍG¨§Æše.€¶íëë¬ø°€˜ð¢cÇ kfËk¾o>ªm3=ëwZÒ9Óùo˜åžã™á6o\æã|8·ènƒónp”ygÍÙ¨꜖\hZÂý¬q[p1éÅP× {x VÜ#c£RG»ùw Ç.Gr,àT$»ir{9–ùÖ¸Îr~Ó´é#¬t܈"¾Ä±®`i –bqEùXl¿ÊîcÊLë”±s0Û±Ö}Eù¦5 2X‚D,ß9ÚWoZC×9t^ŠèpgŹTŒ¹å{º/5­ÝG–AŒ{ÜVKÏÃq´âjð´>ÛõmÐ0Wà ó°Úq 쌃±2àë Ö¡ÔVFWq‹1ƒ?ôήÁP,}]åu¦5TÙ†øhTÙÆv·,1­3Ð>rÊÈ/¤¸ùE@¨»  Úö¬5­‘b´¯šÊ³Q Éå”\çgf 磄5ïˆù×à@S×W]oZc–gæzç")g–ÙÍ÷zçpÐ^vCÁK.ªã=U Mwì_cZc¬¿‘±R¨¢Ž[( ÷—ÃÐ8¦çèb¨Š¹€aÐè<¸Ä`èpŸµ]`!`•ÚK±À·›ƒ›A@pHJ›¡Õñ«¦¥3ƒß7]€e+ b`Kp –ø—LkÐŒ+óW¢%ÞÙHÜbLïÄáBLÇ{¼˜mB¿{¤—@@°el ê]õhr7M£GRa?ˆAAp%AÑ)¬lÃh_¤Tö[LU¶c¤§ù%] °‚ †W åOk¥%']b^¸‹‚JêZ –!:ž½:!4FûêÁpœž@Äé#ʇ®fÿ|}œËó—cWht¢“Q­*D4 炚ÆT¬ä¢Š[ŒÝÒ‹€F?B³§Ó¹Ô‚¥X,ó/ø2Ž1y dÒ¦lÂ\á"8èìï ñ1¥˜-œƒÒ?@`ŽD8šÃ¢¼EÓZ=Šqä¤ ®@zœJk`|¨‰höG†Áb¤·N_¼-šÑ‰ÝGr<CϾLR•$CypÆø‹{ ˆ.Œ Vg­¡áJ$£ù(¨è@à*C*’E4¿û™¶½L¡Pˆ‹J.Â5×€¥Y|2þ æúšÕò߸•Ž›@ÆNñYlMý­Ê‡uf çcµã,°}:Ѱ]|³ØK”ãÉn~QÞ"ȆŒg{ŸÅ›Co"¬d.¼¼²üJ\VzJì%èûVÇu"ô2µÜ ¸èzÕ=Ø”ú>Ný)sŸØ¬¶ß‚³÷‚¦ì_B³p‘þáÈGÌù%烅·†ÞÂ[ÃoáHìHFÄxÑÁR$Æý hžÂ Ô¤M¶9£Bh¸¯ nþÔÌÚ–?¹ó#!:®BסeRnxü#•04— ùah ìÞ|¥ƒð gl‹œt":\‚H_9oñb£…FEã~º·u zÖ.T6íƒ7Ù»l°³=Gcl°,«¢¸¦Á:…bu^йÁp*ü}È+Èh-оXöE\Sy ܬ­ñV8XAÆ6~¾íRð”­ÊØ’üÉ t2ª¸EXå¸k·ƒ…SOb…ãFãÑ鳋ΆA ¼<ð2Þ~]É®Œ:烋K/F³§I-‰Ýáݨö¹U–â¹2v6Âú>Jýï&~‚“W·8hÖ:îÀ®!P.´+[࣫ä}ã­Â†‚ àhÛÇ·ãÍá7±ulkƶˆQ¢Ã¥ˆƒ¢oñbÁ€^\ÙÎ ŸŠ2P?o*šöÂéϨÓÛºÝ-K+`O"¯°Ñh±®Ë<£ˆvðvÞÒø+ú3jh*è`)Æ{*A NjÊ®Wµò}ísA %5GQÙ´…íuÆjÐ×¶ýís@Q3öc°s¶jóĸÄx>(Š ¿ªžâAp¶é•ý° §UãSÈ4ÐUî38†¦y(pë:C10Rå Óa\jЂƒËÔc!=c}Viá2%5•ôrhUH4ZhðlJ—ŠìEiÄëV7fŒRÒKµGVñ㤂ŽIê ±#4V®#ýDÂÅ:zç+a±4ã» °‘±2.Ý~ 4V®ÒÁs ÈgœŽ RUµ[uzǧUïH}mÐ\5l=¿¦2Iâß ä­á·©-Á-p³nlÛ„LýiXŠÅú‚õ*A\Zz)VVO„/¡½t µ#èVweÕ–|¦ ³„sѧíǾWILV©ÿnýoÔ¹ê°el bjvÎ | àçý @á™÷“w?¢Ž«ÛÁ‚Ç>镬 Å@g3œÞ0Ú÷¬Ep¨Æ(›}ˆÖ$lžDÖ|ªè@*âïH`àðlÃé Ñó×¾èxJjZÀeX¡}–ѾzhªU¶ãà– QXßVH¢ÈÄ’ÿÔ:ƒD°œ3‰`{TÉf,;ÿY:À_Ü—/»"æR¶µü Œhm¸+ï £#ÞC?qü T;ªñQð#Hzv}ZX4Jm¥¸­ökx&v$#‘DqD~'+ íÃÛåPâ:ïàAñàáéZg-öFöbP<µc.Ô»êÑàjÀˆ4‚Ìù¾Ñ©n¢ßJü¦{¤Oø‡M …Áã3Á0B#•è<°’Ïl¥@VPáðegí¢«cÜ iEidé¹ÿCEÇŠQXÙ»3»šêðháðŽ$v¿{µáÌ£}¥CÐdî ²1  -Ãiˆ . ‹Ï~™ÒOþ¢Þ¬ÚòYL¬I¾î ³…óA@pÖæ³² TŸÅͺñúª×;Åçðdä˦ڲÁy7®öüðàá±mÜœ[èoüÍžfH$Žo ›;èNÅóðÁóé«°|¥(j̼„žŠñž*ŒuÕV]üø‹{Lél|é.ÄÃ`u+Ì=9áB÷îtAýü1séû¦t.÷üç8ïܼûfOšs}iùK j‡ñHpŽ)F~îÍßøc×ñ\ïs¦tîm¼•\xp´㺹qzûÏBÓxؽQT.8µeôÉHŒåcàpúyÌYýTÏÊîÃÿYö|p;gV Ú„7!Ú6­@¡¨² KÏ3÷|'±ü+áÖԓЈJÞ~ÛT°€¸ÇÇcC%²±Mü«é¶’þ¨>LúÄ>Š2­óúàë0 “ͩߛְ»"”v¦uÃSdÞýÔ‚áTÃã™ò¬éTTÏÚ €ÀWf^ƒw$aóÄÀr²QZ›ù,ïTì_„hÄ–X zSæ¾´ðêà« ÄÀÆäã¦5zÔÝP!¦ÆŒ©ÎšNÅ{#ïA2Dã¨ü>BìªfíEÄWj~œìÞ(x»Á'S5ŠŠÆý Ýp‚¦‚öa󔌀¢5RÙd.Ëk¯ô2Õã‰gzž±¤ó—î¿ GÝ—h‘ß5­1¦wáãäSê‹}/"¡™w}|wä]Œ©Câ??4­AQ3G^8n÷š·7œ)x‹†Ä†[,Ý1Wݼ ,/Ëþ ó/EäWu£°²#á ˜s—ÒAâ@êÄÓ=OŸ°'6ÃÿôýFHÞ”z´†L’x;ù(67Š=)s«"8=ˆ#ñ½ñ7d<¨Ï†ú[ÀÙ$Ѭ;0œ†¼Š^T4îWnóva…pù‚‰üênÓ¨êËNWµ¤|[BG*? ŽÖ®´ªS[»}7ËJ–2—uwv®¶–¢ Pйş×g>f‚Îã«ékn¿2ÇIƒ55ÛK­¶ex¸iS,Vl>Ër‚úúÍ4m˜Ïl Šî޾¾E–4 ´ìÐ&—sÜrŸÚÛ× BYzÆçø¡ò²C–Æzûn‘Då¹×и1N–Þ…X´x÷ðH“åj‚ªêÛ>µÂªN®–0Gާ ¹€•#GŽÓ†\ÀÊ‘#ÇiC.`åÈ‘ã´!°räÈqÚ X9rä8mø\V"Tà Äš”@ ¨äçš/ãž Ÿ©¤|œÏª ‹œ4L_ °QnT;j«mQD£È«2H„ \°à?†Æ" ˜7Yš ós†fíùR Ðd_î²Ú'[©é’'©²× 6ÊZF 3]s-]è šÂALx­ 6€D8`3tkï6!4bã¥Ö'0>§€ÕúÉMŠd-ÖÔ:kqkþ_j­¶åÏ¿óçŸgUTüeŽ‹Î·¤QǯĽõ÷[Οikð uY5l¤plÛúùVL òãÈöó,ÛŸ¶íÚH†-]ˆ Žæð@é+ó­˜À"Û¸¥úVËŽ£ß¨z¤´–·–jä¢x¤ñ—–s¹¢ÃÅè<°Æ²ãèÑgÔÊIkßE²ãÀ‡—˜wæü–Vû¾5RNÛpËt<£>ӊƃ3D);˱Öq»ijn)Ö8¾ÊßX}£%µÛjoƒ‹ñq7ùž6­ÁQ6\ï}3ݳ\gžiZ'ö!6ZloÙ~6Éü‡÷à– aè 3tÔü8郑¶ŒõÕ8GzÍÏ¿áž&„«œ#m Óòiú,÷7Ý–♫½¿1­á¡‹p¹ç'XW°Î>ßgÞõœ¢s0Ã5Çu½÷I°”ùEõ;gàf½Ü-5·˜ÖP%BÝÕèiYÈG‚æ¿—]G–"õ;†[›@,¤—µÌ„˜tÛ:¬6/2å€M[–ËIˆÉ/±£Ô–~°5ü2Óm©à惦ØôöÒaÞÝp¦{& Š3Ÿà뢘´Üé™iZGNx@@AS$cÙË}–ã3¿eÑdºÆ€‚•!2Z  ºÊA“Í/&Ç©–[nZ#ÀÖÂF¹AS4\ ¦u&Mó˜2XY™Wr ¤PÍ¢¤0 fb+fÞ62šž¿jÊb˜û°BAI¤wƒáóÔ“0‹îÅÃfþ°mïZô[ˆêæÝ<>K ÔwщÑâÁB8|1Pô©ë©òù|ÜSªœUØÞƒFo•úZâ?˜KÜ߇Ÿ©D—º=«¶Ì.À¥ž Sý…L½Þ顇¥a\WuF¤Œ)c§Ô @áæš›qvÑÙøûÀßqFÑzý™ØíôÇ-˜o»mÊFè8u-_>S«½ÁáOÝš”çúžcn®¹΃¶D[V}Š ê©Ó†’tª…m Ë©è8° .ß8{ò”†Aã莳1Ô5 µsv` c)žÕF…ûÊ ùáôG@Q§þt*¢£ ¡ÀÚ°”¦V7ïbZwž CgáÉϮm:ö­AIm+BÃUª3b Ad 6W wêçËÑî®»+òWà•þW°¡p=y*z#užë~4kqLþ0+ rn®òü‰C!)(ªSýpôCæ–š[`#ë¢ì‹K/Æ•åWâýàûXâ_ lgŠØXãøzÕ=É©ëHÊ…«½a¦p¶ŠB³p‘þ³¶ŸÑ×W]îØÙŸU[ĸcõ` 4î^TÑIÛ½,§Àé e¥Óypº,EeÓ~Œô6©þŠ>&ñ"6R ›7šÉh5v]e1ÚÑ)æ§8)æÒf¯z‡nÛ³ñpòKLÚË\}´xZÞÑÑç±]ë«Å„ל ªšÂ3œ «ŠäÒÿ&)…Õí#¥3ŽdœÉ7–ÝWr¦ÿ²B›ÇÀ˜:"{Y«q2^†Ôã©Çúo;Þ-Îh*ôhÍ»M|“ƒ¥8Z#Š!)]#:ñ²~ŽEɆ¨·$öÄî¼µ3“Æbïz÷­åVó6ˆª!ÕÍy™¨TóØbÂÚ°òVè÷ƒo†~—1úÝ\ôÃòÞKò´KÿÍì }ŒvÚÉýRWê»·uŒ(ý'54 Š:²éÜ™rÂc'„¦hZ3hÆÐF%²äà +ëyÅ‘æUïf´Õí­÷vX^!¥\6àm)E‘Ï‹ª"Ûyàí)¹¬áÈ@ º3ãLîÚ·¬2¼xF*–çH·_Ñ) Íh†"Ù…‰ÓòJB5 vdœÉçæ_忪䎲79&£²-àcZPõ²…<Õ~é…àú>‰½š1R|³ìO5sœë|vÚÅD´…§œKqŒ@Ûhèd@îÿíèeGuh'~E|9ÿ_u¿¯/·Õ:@4 )#¢ç±%$ôˆº=öÚø“#÷g´ù¼È{àÿm¥yl1ŸîÓ°ìe ¸¸Õ½¬Ÿ€a¹OúãÀ£=»£™Í6Û¶­«‹‡CçP /©  tc ƒ¡)Z7œÞPjÑ9/·fÒH„¶–mgÕ‰qŸXNÖ ƒ¡XNÑN¼Û¼¤æWtV4ÈXý>x¬¹h´»¡H•méyfKɪ,p,§êjÚ˜vWTœ±dc··pèÔ_ÞO1m‹db0PDçBS6´#ÔS!ÏYýáðÖ  ©<žñ òK»Á ©Œ:nºs„ qïˆë#x5ñŸ8WøôêÀk¶ÛënGª~#òT#ó—·ÄV‚¯Õ~ ë Ö㽑÷ÀÑŒ¦9ö³•ÜB4òëñ~òçx?ùK„§°ü(' ÙFÜ“÷6œtþ½W»×~Üö3ö;ß ·<Œ–X âZfƒÖ<>ë Öáëu_ǰ4Œû_Ä•5g‰{Å¿Ù/r?„~u?~¾a½oŠÕ…ḋÃ[/Äh_=ªgíB,ÀQ¶äX>ä„ ê^xKÁò™íe …œp ÿÐ\B£df+†ZšŒEg¿Dïûà‹e`é¹ÏÃžÒ PJ¹Ñß>­;Ï‚ËDEÓt]&Ú=Q{¨¯v_Å3ZÁÙePV6TQÀPk¤¨þŠ^È XÕ´ËÞ{t>’Ñš–¾ò†ƒ°92?_;åE%¿wæ½ 4ž _‹[ý3=ú(ýÀŒ î?t?z’=Hé™ç^@à %_ÀWª¾‚cñcØ1¾KJK¤1­Ë¶ÖqIÿÀ ±{0®we\­1ààg*q›ÿo(gçáõøa‘p­ø·žwìWW\¡u<†-c[¦´øv³n4{›ñð̇¡AÃý÷ϸW{!~7{½÷I$Œqü:|>FµvÈ$ó»-&½è<°]‡—#PzžÀ(‚ÃuƒÁS8Š@m8›˜QƒªdÃÀÁÙP%µˆ •HMË>°µnßEv`Þº×QTÑÞ–¹-ŠìÀØ@ ö~tx^Áì•oãÀ–‹äüê^a´½Œ ¡bîap6)£­v&¦°NtΠ@ñî„úÊáô„°þªÇA jZ6(å@ðýÂNxè"<Ùõ$^x²!C'Ùu†ëB£»?™›öáþnp."ú@VKòIXJ_òü «7ãXüîÙ(Pì½§Œ ÅàùeÏÃÉ:ñBìlKý IÂ@v}"„‚® Ô`÷{W¢ j–íÍ(`Øì™4†ÎD|¬eXrÞ  @@3Ù[»¨Š]ãñá ÷@×87…«`4­Êòè’€šp/ `¸µ ,«àŒkê`¹ìŸ/G¥¯»;ï 4 gbcp#~ØúC0¦ü¸}'넇óàé%Oƒ¥X<¾ mÊFˆF4«m%NCà)V9nÂUž_"¡%pÍŽk ¢ž98|@@ð›¿Aƒ«[RÀK±oA‡ dt÷þÿÐR 6¿|;¡Q>o?ìî$èi¼“„Ð P_Æ»k 88óê_ab%œµŽ®ñ hýÏ]HÅóà¯èE~u(šdåZz2LºS4ÍèPÅô/"RÊ Š2¦íÙ$“(0pÒ韸‹mÅH马ƒĵ8 …BP @ƒ‡.šV°ÈI~¦ Ph+„b(Ó VÒSài6}ؘÏTA"±¬ƒöÓby b €1hè 3­`m€f ¨r:í$•ð‚aÔi+àxºÊCŸÈÒd;&û`Fƒ:‘£it•ŸV°•ˆP‰xbœŠmÅ yZÁ ’Z^Ö 6mW?S‰”É:X€ ‰h‹ƒq€£¹i+ Š¡œøu;Ÿ©†L’Ó VÀòхɼHM¶M+XE  šœþ0(’„L/X˜øÿäT:-B•l Ýt°¦úÆê‡Mÿ5»/†Øp‘6oÝ´ÇoÎtLƒŒ¤1Ž f¥òБ‡ÉÈÎÛû³t'»1Ï7Gï#é÷“?7¥ÊV¬¶ß¦?Òò]zP2çü(ê"t¢£ÊŸŒ\Ëfçíýÿã c¤·QµùbŒ¯Ô¼ižÃCt¨„,¿àYjªm×Tð6º& ÏWŠg¶2ÙØŸ ›;ŽÔx@©šµ‹)­3ï\z\݆•ö¯’ûÞGEUs&‰cÊB‚-®>»‹1`ÎP°[݉%¶/ËÏ÷¾Äî í4¥ÉN¬+\­?:Ÿ‰9ó=‡'‚d$ðzaÝqÚô8y¢HލÍËßeüÅæŒ)ŠÀá‰`´¯A+›s˜¦§ùÁý,–Íè`ie ¶y‡×Š#fÌA"^>´ul›é>T"ÊÃü«Ü˜žùš§S‘"a8´Ùƒoô¿ï±âˆVÃpxŽ*ïšÎ% h„bc´;+Lo%òiNmhƒµs¶{ÌN`ìI$ÄÀ¸Ý5FÑ «Œ×ÌØíæaãÆ\Ê’Á×Þ¶”ôScÐÝ;cÝÊNÓ×Y«D¥åߨëÎöÒ““V¨ôSƒ;å§,õ‰DHº[¶¹’¦«hÆK«CÕ³vz¸)ÎKO…Í‘Dx¼|ÐU²œœk9`@Iuë·g¤ÂІH¢ø°k¸Í0XK™áÝb‡D¼›-—ÃlÞw ‘rVYш©1]ÏuÓ”QdEÇ•7N¤–]T4ê›íIDATkšví³ÙâÕV4G)-o ,¥©{#C…%í–4þÙ{hŸª:ª­èå Þ¿‡­ºsŠíïîÙ-µF4çþ|€ceKsÏበ.H,d±((ïlËóXz'V…Á Gt³#€\ñsŽ9N#r+Gާ ¹€•#GŽÓ†\ÀÊ‘#ÇiC.`åÈ‘ã´!°räÈqÚð¹¬îƒ‹+¬x5€˜ðb´³Á¼ÆgœÉ6ñgX•Áå?¨±3¦ÓrŽ \ä~À²ÙÝZ×öfO³UÝ~f½UgØØx1Âý–ói‚=5+Ö'@º„¤gßË—±6{š±Æq‹µÁpIÞ·k¿ÜÛ;¾x¬Æj[šø3pFáÖ,] [œ®¶0"91Ø:ÓrJð9,]åì­)”[Ò¬Ad ¬P×Ì;ÕR p^ñ…ÜRÇ—-µÅK—`­÷â’:W%eþeXí¼1§Ì»ÃÒ`±Úqƒs]µËUÙ†`o]I2jÍEu¸» ‘¡¯•ÀGp¥w¸Ûš e"@x¨¼D•¬¥Ý­/X•¶›,Yb ”k=×ú—æ-µÔ–zW=–;¯(ñÐÖ‚ù2Çu8¿ø|Ί«®³ë«)ª¶Ô–ÐH9"CeEºfÙYÛzÀio€¦Ø¸½^³“XSyÜ|TEàÇŽ›wI>»èl,ö-eWÙ¿ŠzÞ¼»áõ¾'acÌC32­‘ÇçáöÚÛQÀÔÚ.týÓ:뜷£^XÆ_Y~%jæŸÍà‘™ „¦w¿w•id̶½ë '\B¸Ïü*Ô[1îÚö®G*nÞ”p÷ûW‚šj1ovWïªÇåW Ž_Á¯qÜjZç"÷C(âj„;ê;šõl´“¹Þ÷'Óü:¬´ß„%yKØ3 Íï6Æ:ë HvþÀæ/@×Ì-Bc߇_„¦òÜh»yƒÄI,,†KDr‚”•ÜIÁ˜Lýgyóå=5]{e@GÊÈléq*F`¶> d]>Q47FMëÄõôßjD›Ò2åT°æxÙÿe‚aÐv “ãnª-cLÓÚ´ j?`K?†7¯‘Ô’˜,¿ú<ÆIÒ%(†ùöLιI=3¤HøD¡½•9<9Æ,'Ÿ÷éBQœ þ‹ž¦]šcè,¤„ý ØY Oñ”¸C±d3³ëkжg=î(xAœÒ¯ILø0x|6¶¾þUô·ÍGÝümˆ+d›/Îöí_€x0Á“è ḛ̀ÁÕ€;êîÀw›¿ h©cZÞ¥Û®ÂM¾¿ÂF{ÑŸB'ÃAûPÍ-Å}ù›q©ûØœúfðgjézŠþ鼟âºÊëÐ'õ!©%§¬Â/±•àÜâsñ«y¿ÂÚ‚µxmð5”¹ÝÒ¨ÖÎ~3ÿ}ÌÎC¿¶IÊèÜ@B·_öþ7ç=‡¢kÊæ‘]ÌË¿ˆo7~ Å ¤„¦œŒºÆAŠùлo!Æ{ªà¯ìG*ä7—l¢>yãFt\·?Ž—N³“‘Œå£·u1¶½y#ÆêP>ãR‰|‰f vàà\ˆ1xgÚ-4“s!ä¤C-³0r¬ ¼# Zªžµ›mݳG¶^šÑ!8’à…ÌÏWªÅÖ×nAÇþ5¨_´#=3ŒüÊ~ªwÿDúËas'@³:è)o+•¸¼ürütîOÑènÄÖ±­àlãŠ@;™»üo¢œ›‡ Þ˜1œQƒ¥TpóqGÞ«ø²ïwèT¶ÂKWJ¯ô¿Á~£á¸³îN$õ$"j -s½d>Ÿ¥þ¥x|á㸪ü*<Ýý4–ä/жŠ¢ïËß‚µÎ¥‰aªúR¶ç¹îÇ=þ"Ÿ©F»ºƒqE+·—ÓßkþJí¥‘FR2»Ž:ö?;8ÁŽF¸a¨¢MnX¸…Ý÷áqt×Y°9’àmâÔjI†{š°õõ[Ðst |ŒñájÕYbúöÍO;—z`X=+gâOCÝÐíød:®pÞz^Ïs/ˆªªð Ë+ª*Û`yYÉ/ï,ªoŸÂ•pfyd°¬HSy8A’tåF3&] žPjîú7Ú<þ‘Œ³ø‘’m³Ëù™NiÇQ™¤4E7àe}©'ù_G¿Ù:$ œôsÃÐ,õÄÜgæ”Û*4ÅPŠ!ë*Q Ãˤ6%’ÐZįîÈÔ–¡ã³òÚw¯­–Rö¤,KNžã%E•m“ΰRQ]GŸ¿¼7£‹jß¡ù5Ñ`AÀÐ8vâodbÐÿâ8êò†’Kή…³‰'­W%;»ëíkg%¢~ç§G)Ú0&ÛB³ªæ-ŽUÌÙŸ±j=Ô_鬯Pe›m²-ªbã!©Ê’“›#&5,ÞÜ]RÛ’q‰}OÁ õÍö yåb‚¨>"³pÑÍÓ<Å3:ÑÉ€Ô›ºãàu‡tã䎣%¶2þ{3ÑTn«r@JOj EC$aÝÇ” 4Âê®ÔßGŸÿzFÕó½ÿVxžûëå“cÑeSÄ%´¸æa}< ˃â]?;¾#üqƪêGgýº±Ù=×'Ð6†€ˆVy††@9X–âiªÑ¯M>4´âp&X¨È~pãS1¿H»‹ê:K3¬¦MŽË)Нt`¤tÆÑŒ.ª# %ãý•¥š"L¼Û¢¬)<ÇñŠ®Èö´ã¨'œš½òŸyÅ}Óª~§¾68 óŸÿý3´íY‹x¸5Í»°ýŸ_Öòk»Y-倮r(¨ïÈÊKSŒvÔ·‹ Y±"uñ9/rÇ-G^Q/êæn˪5s…‹°Æy¶¤þ€óœèƒ1Ù2¶ë ÖãÙÞgÑkÉ¢Gn©¹…¶B¼1ô~2÷GúSјF~8x1öMHäÔ¶,¦—{~„^u/Ê…EÜ-Ê£Gå¯(¿»Â»ðúàëYõi}Ázœ]t6^x·×ݪŽÒÛ¹åcÌÎlj‡Ñ¯8¥†a0hÙ~64ՆЯØöæu¤lN @Q ëgåø¨¤œ¯†Ã*: &ìÊœÕoðÇ/GIM *OÝè;6CÝ3Q;gnºXá=Iž³‹£>jƒ·ŸzËK £u pŒcàÐ,²âÂÿKõµÍ'ˆ˜¹ìý¬¶/Ü|ÁõÊo¢_‹c¥úûã¿ç.-½‹MÁMYõé’ÒK°8o1^xÿ1óߕʓ¼JD”sóðrì;×»O©a£<¸Êó ($…u nð<­ßwð;ÌÅ¥cXÆ“]OfåÑÕìiƵ•×â£Ñ°¶`-J=´þÏä™5Ž[±)ùËoeÕ§Î+-GíœØõÎUª·lˆ3tŠhCaýñ)wN“è*‡ÑŽ:°¼ Ö!"ÔU¥-;ï9¶ëÈR¸óFиpsVmù,&Öÿ²û½/a¨k&hZGýÚ3ÚäN…¡³èøx%¡Q9c/æ­Ëî¥þ,«_ÅõÞ'ß:ð-ì‹ì3¥ó³¹?ü…ˆA|{ÄÜua^º?* /õ¿„Ç;7¥seù•¸³îNÀ£c‹Ñ£î1¥³ù•¯!:V Î.¢vÙSŠè@׎ô¯`3}„ÆEÙ½ÔŸ¥mÏzÛ³P»l'¸,ÕÉ8¾cTÑ_ÁÖ\öGSÕÜR<H?ßtü/¼lJ箺»pEù øÎH b†9o¸ŸÁEçcwx7î;xŸ)Åy‹ñ“¹?ü5r>Ÿ2¥³ã%èk[Š2P¿zkV—O|B(´oYbÐ(­mÁ¢³^4Õ–I,º»|éÝk“L+ hÌÄA¬+ïÔ7ÜdbTëh‘ÍMè{'ô²»áædˆ$Ф1èIõ˜Öéû@@ Ýœ™ ¸'ž«à°xèÎhȉq7ƒÓ7LX4[9ˆé“·…91  }¢9“:'nÙIc‰y?¬Q­ý_ôÌ0, C# Œèí¦u&Ÿ+#( s.¡ENøÈ»|™Ï‘³Åô5_“ʺÑݲD.ÓÂNux;ØÓûŒé>µ%Ú°ªpiò•Ä×ù!íÔG™hQÞÁrÛ­ê7÷ËtBbLKÌ¿Oݘú­iqúÚç‹Emo3oàgÏ‹A »äeç½`9‘ÕrÀÁ-6h¦ØŠ“%騟µí˜Ý5e3€^ù¸­/Ê›µYž¤›ú罯„À¼ÿtÔÂÆž`wXŽYÊÖlO …oºT2=ŸðOCQ´ìCY2cãlêf}<(Ø“æ“Ø}¡A vßt%ú4EPÙ°w¯7oÄRŸ‚z'6u‡Cq-aéNöe[wDø(_ƒùU£BRø¸àÀP*Rb¥-½©^„\Ï‹‰Yº®ÞæJÓi®pª_êOÃj¨¹óˆÓ²\Éò¹”æ¸üÁ”cy ýõvûG­Eãz/™ÌDzB[jOÒ¬¿÷$‰£;ÕeþÓ4Á°<¨On/­àò°vd šÕàôŽ™O–›Àé ©4kíùÞ‚AóË$q IƒÖÌÆôˆ²Ùù$4M4¿oŸ ¢FÒû¬ 6WÞ˜D›ÜNBQ<ùƒæ“?E®ø9Gާ ¹€•#GŽÓ†\ÀÊ‘#ÇiC.`åÈ‘ã´!°räÈqÚ X9rä8mȬ9rœ6äVŽ9Nr+Gާ ¹€•#GŽÓ†\ÀÊ‘#ÇiÃÿð³â4p´ëIEND®B`‚././@LongLink0000644000000000000000000000015600000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_sqrcirc.pngATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/IMAGE/tutprog_sq0000644000175000017500000001310013431250607032323 0ustar brandonbrandon‰PNG  IHDRúúŽÍjbKGDÿÿÿ ½§“õIDATxœíÝ{PT×ð³Øå±ØD@dQ£” âjäeÄdQâ#116eL§u¦3í`S3d¦ÓŒþQ’ÖXþ±q:“&NÌ$Hœ@GƒAã!˜]pW\„Ýè.ÈcÜ…¥¬EDËî=÷ìãûùÃÙ,÷žûƒó“³{ï=WD€‰dÍš5III r¹<**J.—Ëd2Ç¿¡¡¡„ÀÀÀððð9;ŽŽŽNNNB,Ëàà éq:N«ÕÞ½{×jµ2ø­|Žˆu^)111---==}Æ …B¡PÄÅʼnD´þ˜v»Ý`0twwkµÚ¶¶6FÓÜÜÜÛÛKép> qwÊÓO?™™™‘‘‘žž¾yóæÈÈHÖ‘ÁÁAµZÝÜÜ|óæÍ†††ÎÎNÖyÄ}~R©4s¹\κ¢%Ɔ†††††úúúo¾ùfllŒuEžqD$mÙ²åÀû÷ïÏÈÈà8ŽuE.šššR«Õ•••7oÞœžžf]xŒ€€€çž{îoû[ggç´Ïéèè8uêÔ®]»Xÿ¥‰DràÀ³gÏ ±Î¤†††Îž={àÀ±XÌúoÊÉÉyï½÷X'¾¾¾Ó§Ogee±î )&&¦¤¤Ä'g,®éèè())‰‰‰aÝ3À«ììì?üÐb±°˜'2›Í|ð{¯R\\ÜÞÞÎ:QÞA£Ñ=z4$$„u¿Á2ÅÅÅ•––ö÷÷³Ž÷éïï?qâDTTë>'DEEýå/eï6<<\ZZêù'×ü×Ê•+Ïœ9311Á:*¾Ãl6—••ᳬg‰ˆˆ(--ňNÉèèhiiéSO=źŸýÇq¯½öšÁ`` ß§Ó銊Šè]õ KØ»wïíÛ·YÇÀ¿´¶¶°îy?“ššzåÊÖ]ï¿***Ö®]Ë:~ 00°¤¤'Œ˜3›ÍÇÇegíܹ³££ƒuGÃ#---Û·og Ÿ~æÌ»Ýκa®©©©3gÎH¥RÖñ™™™Ô=\[[Û3Ï<Ã:)^N,—••aP÷ v»½¬¬ Ó»hÓ¦M---¬;–§±±qÆ ¬³ãmŽ9222ºïÀÃÃï¾ú*ëy‰°°°?þ˜u—»>úè#ÇbR° µk×j4Ö=üøî»ï ëLyª—^zixx˜uŸŒFãîÝ»Y'Ëóüö·¿µÙl¬{øgµZó›ß°Î—Çþä“OXw Ðõþûï{Âw”Œ¯çŒŽŽ¾páBvv6Û2@µµµ4 k`÷7VVVâÚ:ÿÑÕÕµÿþöövV0‹»R©¼xñ"n ó7}}}/¼ð‚Z­frt6«~>÷Üs555ȺнqãÆ®]»˜AÜóóó+**„?4x©TZYY©R©„?´Ðq饗***p¾ÍÏ…††VVV¾øâ‹Wй{AAÁçŸ,äAÁc¿üòË—/_ìˆÂÅ}ß¾}åååžðå+x«ÕzðàÁK—. s8âž——wñâE¬?O²X,{÷î­©©àXBÄ=77·ªª ŸMa!###*•ª±±‘ö¨Ç=55õ«¯¾Â›°¸;w¶µµQ= ݸ¯Y³¦¡¡!66–êQÀ7Ü»w/33³§§‡Þ!(~yéÒ%dœ´jÕª‹/FDDÐ;­¸K$’Ï?ÿ<%%…Rûà“RSS©~}Ge(‘HtöìÙýû÷Óh|›B¡ˆÿâ‹/h4N%îÇýõ×i´ þ ##ãþýûÿùÏxo™ÿª{÷î­¨¨ðÞGNƒ'°Ûíûöí«ªªâ·Yžã¾víÚÆÆÆÈÈH~›?488¸uëV­VËc›|ŽÁ¡¡¡åååÈ:ðB&“•——ó{&žÏ¹û?ÿùÏüü|?SQQÁWƒ¼Å½¨¨è­·Þâ«5¥RÙÞÞ~ëÖ-^Zãgî¾qãÆ¦¦&\Å4Œ)•ÊŽŽ÷›âaî.‹Ï;‡¬%R©ôܹsAAAî7ÅÃdæÏþó¡C‡Üo`!qqqÇUWW»ÙŽ»“•Juùòe|Ë´Ùíöüü|7ïVÜÃÂÂnݺ•””äN#NêêêJOO·X,.·àÖdæÔ©SXð#“ÉÂÂÂܹ·ÕõÑ=77·¦¦Ó’Ýnß±cG]]k»»÷àà`µZÇ’€ðZZZ¶nÝjµZ]Ø×ÅÉÌ[o½õ£ýȵ}ܱråJ«ÕzýúuöuetONNnmm•H$.ì à>‹Å’’’âÂm~®Ì¼O:…¬C¡¡¡'OžtaÇeî{öìáý*däåå-wušåÅ=00P£Ñüà?XÖ^4¨Õê­[·NMM9¿Ëò&3¿üå/‘uð›7o>räȲvYÆè.•J;;;±x½^¿~ýúññq'·_Æèþúë¯#ëàQâãã‹‹‹ßÞÙÑ]&“ݹsç©§žr©*Zîß¿Ÿœœ<44äÌÆÎŽîo¼ñ²(""âØ±cNnìÔè¾råÊï¿ÿKø‚g[»víÀÀÀ’[:5º?~Y%•JœÁ/=ºËåòžžÜ›žltt411ñþýû‹o¶ôè~ôèQd<\xxø/~ñ‹%7[bt‹ÅZ­6..ާªhÑétÉÉÉ6›m‘m–Ý_yåd¼BBBÂ’K,6º‹D"µZ––ÆkU´455mݺu‘ ݳ³³‘uð"J¥233s‘ ‹û¯~õ+¾ë kñÐ.8™‘Édz½O¸ï2>>¿Ð5 Žî?ûÙÏuð:!!!?ùÉOúé‚£{kk+$Þ¨¹¹9==}ÞÍ?ºgee!ëà¥ÒÒÒ¶mÛ6ïæûOúSšõеP€ç™ÌÞ»wuïÕ××—ðäm¬óŒî»víBÖÁ«ÅÆÆîØ±ãÉ÷ç‰ûáÇé×@×+¯¼òä›s'3b±¸¯¯OÏog4W­Z5999û͹£{^^²> **êÙgŸóæÜ¸ód›G£ûöíÛ‘uð1R©töåbâž““âºfûQܳ³³Y@×ì¸?œ»sg2™"""•@‹ÑhŒ‰‰™žž&3£{JJ ²>)**jædÓø/¾\€WËÊÊr¼x÷Å£ðj3ñ~w,Ÿ>lÓ¦MŽ"BˆH$gZ-÷ïß—ÉdÓÓÓ!D¡P ëàÃ"""V¯^M“ÌdÀç9BÎB~øÃ².€.GÈ9BȆ X@—#ä!·t€ÏS(ÄwÇ+æÓE‰Äb±pÜ2žàu¦¦¦BBB¸ÄÄDd|^@@ÀêÕ«9ÌdÀO$%%qñññ¬ËBBBͺ !DGGsr¹œuBËåˆ;ø ¹\Îa)wðQQQÝÁ_ÈårN&“±.@2™ŒÃRJà'BBB8±X̺ !H$Äü…X,FÜÁ_`t?"‹E“““¬+ njjЉæyp6€ï™žžæ==]__Ï®$Zf››yUWWÇ¢ºjkkg^só¾ à3fûÑj×!!!&“ O&_266&—Ëg–Ê{4ºWWW3ª €Š«W¯Î^’›ý³ªª*Áë hN¤{t‡B¡¸s现õP”˜˜ØÛÛ;óŸîZ­×¾ƒÏhmmu2'î„K—. XEONÎçÆýßÿþ·PÅÐõd˜ç>v/ @¯×¯\¹R¨’¨Ðëõ‰‰‰v»}ö›sG÷©©©òòr« âüùós²NžŒ;!äÓO?¤Šþõ¯=ùæ<Ïæ8®§§'>>ž~ITܽ{W¡PLOOÏyžÑÝn·_¸pAª¨¸pá“Y'óŽî„¥Rùí·ßR. €–´´´yo¿žgt'„455ݼy“rIT|óÍ7 -50Ü !ÿøÇ?¨Õ@Ñ"Ñ2CY±b…Á` £S###ñññcccóþtÁÑ}ddßH‚×ùôÓOÊ:Y$î„÷ߟB=-ÚÅâ^[[‹ûµÁ‹Ü¸q£¡¡a‘ ‹;!ääÉ“¼Ö@Ñ’q]ð£ªÇqíííëÖ­ã¯$*nß¾šš:ïÙ¥KŒîv»½¬¬Œ×ª¨(++[<ëdÉÑÚÓÓ#—Ëyª €}}}III}zɬgFwBÈŠ+´Z­L&s»*þ $''›Íæ%·\zt'„ŒŒŒüõ¯u»**Þyçg²NœÝ !aaawî܉‰‰q£*þéõúuëÖMLL8³±S£;!Äl6¿óÎ;nT@ÅÛo¿ídÖ‰ó£;!$,,¬««+66Ö¥ªø§×ëׯ_?>>îäöΎÙüæ›oºTo¼ñ†óY'ËÝ !"‘¨¡¡á™gžYfUü»qãÆÎ;—<µ4ÛòâNÉÊʪ­­‰–½#ìvû¶mÛ–{ÏÝ2&3õõõó.i ¤>úÈ…ûK]¤“““[[[%‰ û¸Ïb±¤¤¤ôôô,wÇ644d³ÙT*• û¸¯¤¤äòåË.ìèâ<00°¡¡A©Tº¶;€ËêëësssŸ\Ï®âLOOoll r¹€å²ÙlJ¥r¡u5–äÊdÆ¡¿¿_*•æää¸ÜÀr•––~òÉ'.ïîÖ÷‰aaa·nÝJJJr§'uuu¥§§[,—[Xö‘³™ÍæÃ‡Ûl6wp†ÕjýñìNÖ‰;“ƒÁ ‰víÚåf;‹ûÃþàþ NŽr÷å—_æåå¹ßÀ¼ª««óóó]û6f6~®X½zµF£‰ŒŒä¥5€ÙL&Szzº^¯w¿)·æî3z{{;ÆKSsüú׿æ%ëÄý¹û F‹%_ï¾ûî»ï¾ËWk|^Øôå—_îØ±ƒÇ6ÁŸÕÔÔ¨TªÉÉI¾äù:ÞØØØ¦¦¦¸¸8~›?¤×ë•Je?mò3wŸÑ××WXXhµZùmüÕj=tè¿Y'<ÎÝgôööNLLìÞ½›÷–Áüîw¿;þ<ïÍòwBH]]L&Û¾};ÆÁçìþ¥yQ¼å4$$¤ºº:33“Þ!ÀÇÔÕÕ©Tªe-.°,tï°ŽŽŽ®««ÃòðàŒÎÎÎììl£ÑHï<33Çÿû߃RýÀ7 ¼øâ‹´£"Äú›6mºvíVˆ‡…ô÷÷?ûì³´DwtwhiiQ©TCCC ¼Îàààž={È:&Z½oß¾Ex þitttß¾}F˜Ã wBH}}}aa!½Ýàu,Ë¡C‡4$¿„^ûnÛ¶mUUUx˜L¦‚‚‚o¿ýVȃ2Xê1##ãòåËÑÑÑÂ<ÄÀÀÀž={ÔjµÀÇe³²éƯ^½ÏäèÀ–N§S©TíííÂZ¸¹ûlmmmùùù.¬ñÞ®»»ûùçŸg’uÂ*î„Û·ooÙ²å믿fUïúõëJ¥R˜ïçÅ,î„“ɤR©ÜY ¼ÈǼ{÷îÁÁA†5P¹ØySSSåå儬ÛáÛþøÇ?óxžkÇÝ᫯¾yþùç9Žåÿm€›ÍvìØ1<¶q®ììl½^? >¤»»{Ë–-¬“å©¢££«««Y÷ðãêÕ«QQQ¬3õ˜Ḭ̀X,çΓH$¹¹¹¬k·¼ýöÛ?ÿùÏq•”SŽ9222ÂzxW ¿úꫬämV¯^}íÚ5Ö}ËsñâE'55µ¾¾žuÿÂ#ÕÕÕXf‚¢ÀÀÀ’’‹Åº£ýÙl>~üx@€g}‘í›V­ZuæÌ™ÉÉIÖî&''ËÊÊ<íü‘ïS*•ׯ_gÝûþ¥¦¦&##ƒuÏû+Žã^{í5ƒÁÀ:¾O§Óá{FöÄbñÑ£Gu:ëHø¦ï¿ÿ¾¨¨(((ˆu?Ã,ŽÐãšJétº£GŠÅbÖ} ÿýï?00À:*Þ­¿¿ÿÍ7ß”J¥¬ûœ ‹‹ŠŠZZZXÇÆû466bêâ•rss+**XGÈ;TTTàºk_ýá‡âäÔ¼Ìfó|••ź—€WÁÁÁ………W®\a0OqåÊ•ÂÂÂàà`Ö=4åää¼÷Þ{~ûq¶¯¯ïôéÓÎýNjjê‰'ºººX'P'NœHMMeýWg 'ÉH@@ÀÎ;÷ïß_PP’’ºžµ¶¶VUUUVV^¿~}jjŠu9Œ!ŽÎËËS©TXµjër\d0*++¯^½zíÚ5<k6Ä}~9ÿçùÑ7 µÿ§V«™¯×å™w§$''çäälÙ²%==}óæÍ‘‘‘¬+"ƒƒƒjµº¹¹¹©©©¶¶V«Õ²®È î®HLLLKKKOOß°aƒB¡P(qqqô®´Û탡»»[«Õ¶µµi4šæææÞÞ^J‡óaˆ;?$Éš5k’’’äryTT”\.—ÉdŽCCCƒ‚‚¤Ri@@ÀŠ+fö¶Ûíccc6›Íb± š§Óé´ZíÝ»w­V+ÃßÎgü&»Ñz¦tIEND®B`‚ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/main.db0000644000175000017500000000200513431250607030604 0ustar brandonbrandon ]> &bookinfo; &preface; Basic Tutorial Topics &chap_hello; &chap_objtypes; &chap_funtypes; &chap_drawline; &chap_drawrectcirc; &chap_drawtext; ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/preface.db0000644000175000017500000000175313431250607031276 0ustar brandonbrandon Preface ATS is a rich programming language equipped with a highly expressive type system for specifying and enforcing program invariants. In particular, both dependent and linear types are available in ATS to support practical programming. ATS/Cairo provide an API in ATS for cairo, a comprehensive drawing package supporting 2D graphics. While there are already many on-line tutorials on using cairo (e.g., this one), the current one focuses on employing types in ATS to facilitate safe and reliable programming with cairo. In particular, it is demonstrated concretely here that linear types can be used effectively to prevent resources (e.g., contexts and surfaces created for drawing) from being leaked due to programming errors. The reader of the tutorial is assumed to have already acquired certain level of familiarity with ATS. ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/0000755000175000017500000000000013431250607030241 5ustar brandonbrandon././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_hello.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_hello0000644000175000017500000001276213431250607032272 0ustar brandonbrandon%{ // dynload "libatsdoc/dynloadall.dats" #include "utils/atsdoc/DOCUMENT/TUTORIALATS/tutorialatxt.dats" // #include "./ATEXT/ats2cairo.dats" // %}\ #comment("\n\ The file is automatically generated by [atsdoc] from chap_hello.atxt.\n\ ") #comment("\n\ Time of Generation: #timestamp()\ ") #title("A Simple Example: Hello, world!") #para("\ The first program we present in this tutorial is given as follows: #atscode('\ implement main0 () = () where { // // create a surface for drawing // val sf = // create a surface for drawing cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 250, 80) // val cr = cairo_create (sf) // create a context for drawing // val () = cairo_select_font_face (cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD) val () = cairo_set_font_size (cr, 32.0) // // the call [cairo_set_source_rgb] sets the color to blue // val () = cairo_set_source_rgb (cr, 0.0(*r*), 0.0(*g*), 1.0(*b*)) val () = cairo_move_to (cr, 10.0, 50.0) val () = cairo_show_text (cr, "Hello, world!") // val status = cairo_surface_write_to_png (sf, "tutprog_hello.png") val () = cairo_destroy (cr) // a type error if omitted val () = cairo_surface_destroy (sf) // a type error if omitted // // in case of a failure ... // val () = assertloc (status = CAIRO_STATUS_SUCCESS) // } (* end of [main0] *) ')\ ") #para("\ The functions in the cairo package are declared in the following file: ") #para("\ #ulink1( "#ATSLANGSRCROOTget()/contrib/cairo/SATS/cairo.sats", "contrib/cairo/SATS/cairo.sats" ) ") #para("\ Note that in this tutorial, a file name, if relative, is always relative to the ATS home directory (stored in the environment variable ATSHOME) unless it is specified otherwise. ") #para('\ Suppose that the presented program is contained in a file named #mycodelink("tutprog_hello.dats", "tutprog_hello.dats"). The following command can be issued to compile the program to generate an executable of the name #filename("tutprog_hello"): #command("atscc") -I${PATSHOME}/contrib -o tutprog_hello tutprog_hello.dats `pkg-config cairo --cflags --libs` ') #para("\ One can now execute #filename("tutprog_hello") to generate a PNG image file #myimagelink("tutprog_hello.png", "tutprog_hello.png"), which is included as follows:\ ") #para('\ ') #para("\ One can also use tools such #command("eog") and #command("gthumb") to view PNG files. ") #para("\ Let us now go over some brief explanation about the program contained in #mycodelink("tutprog_hello.dats", "tutprog_hello.dats"). ") #para("\ The following code first creates a cairo surface for drawing:\ #atscode('\ val sf = // create a surface for drawing cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 250, 80) ') Then a cairo drawing context is created based on the surface: #atscode('\ val cr = cairo_create (sf) // create a context for drawing ') A font face is chosen and the font size is set to 32.0: #atscode('\ val () = cairo_select_font_face (cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD) val () = cairo_set_font_size (cr, 32.0) ') ") #para('\ Imagine that we are holding a pen. The following code sets the color of the pen to blue: #atscode('\ // the call [cairo_set_source_rgb] sets the color to blue val () = cairo_set_source_rgb (cr, 0.0(*r*), 0.0(*g*), 1.0(*b*)) ') Let us now move the pen to the postion (10.0, 50.0): #atscode('\ val () = cairo_move_to (cr, 10.0, 50.0) ') and use the pen to write down the text "Hello, world!": #atscode('\ val () = cairo_show_text (cr, "Hello, world!") ') ') #para('\ At this point, drawing is finised. The image drawn on the surface can be stored into a PNG file: #atscode('\ val status = cairo_surface_write_to_png (sf, "tutprog_hello.png") ') Both the context and the surface are destroyed during the cleanup phase: #atscode('\ val () = cairo_destroy (cr) // a type error if omitted val () = cairo_surface_destroy (sf) // a type error if omitted ') In case of a failure, it is reported by the following code: #atscode("\ // in case of a failure ... val () = assert_errmsg (status = CAIRO_STATUS_SUCCESS, \#LOCATION) ") ') #para("\ ATS is a programming language that distinguishes itself in its practical and effective support for precise resource management. While it may seem that using cairo functions in ATS is nearly identical to using them in C (modulo syntatical difference), what happens at the level of typechecking in ATS is far more sophisticated than in C. In particular, linear types are assigned to cairo objects (such as contexts, surfaces, patterns, font faces, etc.) in ATS to allow them to be tracked statically, that is, at compile-time, preventing potential mismanagement of such objects. For instance, if the following line: #atscode("\ val () = cairo_surface_destroy (sf) // a type error if omitted ") is removed from the program in #mycodelink("tutprog_hello.dats", "tutprog_hello.dats"), then a type-error message is issued at compile-time to indicate that the resource #code("sf") is not properly freed. A message as such can be of great value in practice for correcting potential memory leaks that may otherwise readily go unnoticed. ") #comment("chapter/hello_example") #comment(" ****** ****** ") #comment(" end of [chap_hello.atxt] ") %{ implement main () = fprint_filsub (stdout_ref, "chap_hello_atxt.txt") %} ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/ats2cairo.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/ats2cairo.0000644000175000017500000000511313431250607032131 0ustar brandonbrandon(* ** ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Time: August, 2011 ** *) (* ****** ****** *) fun ulink1 (link: string, name: string): atext = atext_strsubptr (sprintf ("%s", @(link, name))) // end of [ulink1] (* ****** ****** *) #define MYDOCROOT "http://www.ats-lang.org/DOCUMENT/ATS2CAIRO" #define MYCODEROOT "http://www.ats-lang.org/DOCUMENT/ATS2CAIRO/CODE" #define MYIMAGEROOT "http://www.ats-lang.org/DOCUMENT/ATS2CAIRO/IMAGE" (* #define MYIMAGEROOT "IMAGE" // for generation pdf version *) fun MYDOCROOTget () = atext_strcst (MYDOCROOT) fun MYCODEROOTget () = atext_strcst (MYCODEROOT) fun MYIMAGEROOTget () = atext_strcst (MYIMAGEROOT) (* ****** ****** *) #define ATSLANGSRCROOT "http://www.ats-lang.org/DOCUMENT/ATS-Postiats" fun ATSLANGSRCROOTget () = atext_strcst (ATSLANGSRCROOT) (* ****** ****** *) fun mydoclink ( path: string, linkname: string ) : atext = let val res = sprintf ( "%s", @(MYDOCROOT, path, linkname) ) // end of [val] val res = string_of_strptr (res) in atext_strcst (res) end // end of [mydoclink] (* ****** ****** *) fun mycodelink ( path: string, linkname: string ) : atext = let val res = sprintf ( "%s", @(MYCODEROOT, path, linkname) ) // end of [val] val res = string_of_strptr (res) in atext_strcst (res) end // end of [mycodelink] (* ****** ****** *) fun myimagelink ( path: string, linkname: string ) : atext = let val res = sprintf ( "%s", @(MYIMAGEROOT, path, linkname) ) // end of [val] val res = string_of_strptr (res) in atext_strcst (res) end // end of [myimagelink] (* ****** ****** *) local val theCodeLst = ref (list_nil) in // in of [local] fun theCodeLst_add (x: atext) = !theCodeLst := list_cons (x, !theCodeLst) fun theCodeLst_get (): atextlst = let val xs = list_reverse (!theCodeLst) in list_of_list_vt (xs) end // end of [theCodeLst_get] fun fprint_theCodeLst (out: FILEref): void = let fun loop (xs: atextlst, i: int): void = case+ xs of | list_cons (x, xs) => let val () = if i > 0 then fprint_newline (out) val () = fprint_atext (out, x) in loop (xs, i+1) end // end of [list_cons] | list_nil () => () in loop (theCodeLst_get (), 0) end // end of [fprint_theCodeLst] end // end of [local] (* ****** ****** *) fn atscode_extract (x: string): atext = let val () = theCodeLst_add (atext_strcst (x)) in atscode (x) end // end of [atscode_extract] (* ****** ****** *) (* end of [ats2cairo.dats] *) ././@LongLink0000644000000000000000000000016100000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_drawrectcirc.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_drawr0000644000175000017500000001315713431250607032305 0ustar brandonbrandon%{ // dynload "libatsdoc/dynloadall.dats" #include "utils/atsdoc/DOCUMENT/TUTORIALATS/tutorialatxt.dats" // #include "./ATEXT/ats2cairo.dats" // %}\ #comment("\n\ The file is automatically generated by [atsdoc] from chap_drawrectcirc.atxt.\n\ ") #comment("\n\ Time of Generation: #timestamp()\ ") #title("Drawing Rectangles and Circles") #para("\ Let us write a program to generate an image showing a white circle inside a black square:\ ") #para('\ ') #para("\ The main function for drawing this image is given as follows:\ #atscode('\ fun draw_sqrcirc{l:agz} (cr: !cairo_ref l): void = let val () = cairo_rectangle (cr, ~0.5, ~0.5, 1.0, 1.0) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) // black color val () = cairo_fill (cr) val () = cairo_arc (cr, 0.0, 0.0, 0.5, 0.0, 2*PI) val () = cairo_set_source_rgb (cr, 1.0, 1.0, 1.0) // white color val () = cairo_fill (cr) in // nothing end // end of [draw_sqrcirc] ') ") #para("\ At this moment, let us assume that the square is centered at the position (0, 0) and the length of each of its sides is 1. Therefore, the upper left corner of the square is at (-0.5, -0.5) as x-axis and y-axis increase from left to right and from top to bottom, respectively. The following code draws a rectangle that happens to be a square:\ #atscode("\ val () = cairo_rectangle (cr, ~0.5, ~0.5, 1.0, 1.0) ") The function #dyncode("cairo_rectangle") is declared as follows in ATS: #atscode("\ fun cairo_rectangle{l:agz} ( cr: !cairo_ref l, x: double, y: double, width: double, height: double ) : void // end of [cairo_rectangle] ") When called, this function draws a rectangle whose width and height are #code("width") and #code("height"), respectively, and whose upper left corner is located at (x, y).\ ") #para("\ The rectangle is then filled with black color:\ #atscode('\ val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) // black color val () = cairo_fill (cr) ') The following code draws a circle of radius 0.5 that is centered at (0.0, 0.0): #atscode("\ val () = cairo_arc (cr, 0.0, 0.0, 0.5, 0.0, 2*PI) ") The function #dyncode("cairo_arc") is given the following type in ATS:\ #atscode("\ fun cairo_arc{l:agz} ( cr: !cairo_ref l , xc: double, yc: double, rad: double, angle1: double, angle2: double ) : void // end of [cairo_arc] ") When called, this function draws an arc that is part of the circle whose radius equals #code("radius") and whose center is at (xc, yc). The arc begins at the angle #code("angle1") and ends at the angle #code("angle2"), where clockwise rotation is assumed. If counterclockwise rotation is needed, the following function can be used instead: #atscode('\ fun cairo_arc_negative{l:agz} ( cr: !cairo_ref l , xc: double, yc: double, rad: double, angle1: double, angle2: double ) : void // end of [cairo_arc_negative] ') Lastly, the circle is filled with white color:\ #atscode("\ val () = cairo_set_source_rgb (cr, 1.0, 1.0, 1.0) // white color val () = cairo_fill (cr) ") ") #para("\ Let us now make a call to the function #dyncode("draw_sqrcirc") to generate a PNG file:\ #atscode('\ implement main0 () = () where { // val W = 250 and H = 250 // val surface = // create a surface for drawing cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (surface) // val WH = min (W, H) val WH = double_of (WH) val (pf0 | ()) = cairo_save (cr) val () = cairo_translate (cr, WH/2, WH/2) val () = cairo_scale (cr, WH, WH) val () = draw_sqrcirc (cr) val () = cairo_restore (pf0 | cr) // val status = cairo_surface_write_to_png (surface, "tutprog_sqrcirc.png") val () = cairo_surface_destroy (surface) // a type error if omitted val () = cairo_destroy (cr) // a type error if omitted // // in case of a failure ... val () = assert_errmsg (status = CAIRO_STATUS_SUCCESS, \#LOCATION) } (* end of [main0] *) ') The functions #dyncode("cairo_translate") and #dyncode("cairo_scale") are given the following types in ATS: #atscode('\ fun cairo_translate {l:agz} (cr: !cairo_ref l, x: double, y: double): void // end of [cairo_translate] fun cairo_scale {l:agz} (cr: !cairo_ref l, sx: double, sy: double): void // end of [cairo_scale] ') When called, #dyncode("cairo_translate") creates a new coordinate system by shifting the origin of the current coordinate system to the point (x, y) and #dyncode("cairo_scale") creates a new coordinate system whose x-unit and y-unit are sx and sy times the x-unit and y-unit of the current system, respectively.\ ") #para("\ For the entirety of the code used in this section, please see #mycodelink("tutprog_sqrcirc.dats", "tutprog_sqrcirc.dats"). ") #para("\ For a more elaborate example involving circles, please see\ #mycodelink("illucircmot.dats", " illucircmot.dats"), which generates the following interesting image:\ ") #para('\ ') #para("\ For a more elabortate example involving squares and circles, please see #mycodelink("illuwavy.dats", "illuwavy.dats"), which generates the following interesting image:\ ") #para('\ ') #comment("chapter/drawrectcirc") #comment(" ****** ****** ") #comment(" end of [chap_drawrectcirc.atxt] ") %{ implement main () = fprint_filsub (stdout_ref, "chap_drawrectcirc_atxt.txt") %} ././@LongLink0000644000000000000000000000015500000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_objtypes.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_objty0000644000175000017500000000441313431250607032310 0ustar brandonbrandon%{ // dynload "libatsdoc/dynloadall.dats" #include "utils/atsdoc/DOCUMENT/TUTORIALATS/tutorialatxt.dats" // #include "./ATEXT/ats2cairo.dats" // %}\ #comment("\n\ The file is automatically generated by [atsdoc] from chap_objtypes.atxt.\n\ ") #comment("\n\ Time of Generation: #timestamp()\ ") #title("Types for Some Objects in Cairo") #para('\ The type for cairo drawing contexts in ATS is declared as follows:\ ') #atscode('\ absvtype cairo_ref (l:addr) // = cairo_t* ') #para('\ The type #stacode("cairo_ref(null)") is just for a null pointer. Given an address #emph("L") that is not null, the type #stacode("cairo_ref")(#emph("L")) is for a reference to a cairo context located at #emph("L"). We introduce an abbreviation #stacode("cairo_ref1") as follows:\ ') #atscode('\ vtypedef cairo_ref1 = [l:addr | l > null] cairo_ref l ') #para('\ Therefore, #stacode("cairo_ref1") essentially represents a type #stacode("cairo_ref")(#emph("L")) for some unknown #emph("L") that is not null. Similarly, we have the following types in ATS for objects representing cairo surfaces, cairo patterns, and cairo font faces:\ ') #atscode('\ absvtype cairo_surface_ref (l:addr) // = cairo_surface_t* absvtype cairo_pattern_ref (l:addr) // = cairo_pattern_t* vtypedef cairo_pattern_ref1 = [l:addr | l > null] cairo_pattern_ref l absvtype cairo_font_face_ref (l:addr) // = cairo_font_face_t* vtypedef cairo_font_face_ref1 = [l:addr | l > null] cairo_font_face_ref l ') #para('\ The above types for objects in cairo are all reference-counted. In other words, there is a reference count in each object that is assgined one of these types. When such an object is created, the initial count is 1. This count can increase or decrease depending on operations performed on the object, and the object is freed once the count drops to 0. In ATS, we can employ linear types to track reference counts. Compared to various other APIs for cairo, the ability to track reference counts statically, that is, at compile-time, is arguably the greatest benefit one receives when programming with ATS/Cairo.\ ') #comment("chapter/object_types") #comment(" ****** ****** ") #comment(" end of [chap_objtypes.atxt] ") %{ implement main () = fprint_filsub (stdout_ref, "chap_objtypes_atxt.txt") %} ././@LongLink0000644000000000000000000000015500000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_drawline.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_drawl0000644000175000017500000000756513431250607032305 0ustar brandonbrandon%{ // dynload "libatsdoc/dynloadall.dats" #include "utils/atsdoc/DOCUMENT/TUTORIALATS/tutorialatxt.dats" // #include "./ATEXT/ats2cairo.dats" // %}\ #comment("\n\ The file is automatically generated by [atsdoc] from chap_drawline.atxt.\n\ ") #comment("\n\ Time of Generation: #timestamp()\ ") #title("Drawing Lines") #para('\ In cairo, drawing often starts with the construction of a path consisting of a sequence of points. For example, the function #dyncode("draw_triangle") for drawing a path connecting three points is given as follows: ') #atscode("\ fun draw_triangle{l:agz} ( cr: !cairo_ref l , x0: double, y0: double , x1: double, y1: double , x2: double, y2: double ) : void = () where { val () = cairo_move_to (cr, x0, y0) val () = cairo_line_to (cr, x1, y1) val () = cairo_line_to (cr, x2, y2) val () = cairo_close_path (cr) } (* end of [draw_triangle] *) ") #para('\ The functions involved in the body of #dyncode("draw_triangle") are assigned the following types in ATS: ') #atscode('\ fun cairo_move_to {l:agz} (cr: !cairo_ref l, x: double, y: double): void fun cairo_line_to {l:agz} (cr: !cairo_ref l, x: double, y: double): void fun cairo_close_path {l:agz} (cr: !cairo_ref l): void ') #para('\ When called, #dyncode("cairo_move_to") starts a new (sub)path whose initial point is (x, y) and #dyncode("cairo_line_to") connects the current point on the current path to (x, y) and then set (x, y) to be the current point. The function #dyncode("cairo_close_path") simply adds a segment connecting the current point to the initial point of the current (sub)path. ') #para('\ There is also a function #dyncode("cairo_rel_line_to") of the following type: ') #atscode('\ fun cairo_rel_line_to {l:agz} (cr: !cairo_ref l, x: double, y: double): void ') #para('\ This function is similar to #dyncode("cairo_line_to") except for (x, y) being relative to the current point on the current (sub)path.\ ') #para('\ Once a path is constructed, #dyncode("cairo_stroke") can be called to draw line segments along the path: #atscode('\ fun cairo_stroke {l:agz} (cr: !cairo_ref l) : void ') There are a few line attributes that can be set in cairo. For instance, the styles of line cap and line join as well as the width of line can be set by the following functions:\ ') #atscode('\ fun cairo_set_line_cap {l:agz} (cr: !cairo_ref l, line_cap: cairo_line_cap_t): void fun cairo_set_line_join {l:agz} (cr: !cairo_ref l, line_join: cairo_line_join_t): void fun cairo_set_line_width {l:agz} (cr: !cairo_ref l, width: double): void ') #para("\ The following styles of line cap are supported:\ ") #atscode('\ CAIRO_LINE_CAP_BUTT CAIRO_LINE_CAP_ROUND CAIRO_LINE_CAP_SQUARE ') #para('\ and the following lines, from left to right, are drawn according to these styles, respectively: ') #para('\ ') #para('\ The following styles of line join are supported: ') #atscode('\ CAIRO_LINE_JOIN_MITER CAIRO_LINE_JOIN_ROUND CAIRO_LINE_JOIN_BEVEL ') #para('\ and the following triangles, from left to right, are drawn according to these styles, respectively: ') #para('\ ') #para('\ There is also a function #dyncode("cairo_set_dash") for setting up line dash pattern. ') #comment(" #para('\ Please find in #mycodelink("tutprog_triangle.dats", "tutprog_triangle.dats") a program with a GUI interface that employes the function #dyncode("draw_triangle") to draw randomly generated triangles.\ ') ") #comment("chapter/drawline") #comment(" ****** ****** ") #comment(" end of [chap_drawline.atxt] ") %{ implement main () = fprint_filsub (stdout_ref, "chap_drawline_atxt.txt") %} ././@LongLink0000644000000000000000000000015500000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_drawtext.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_drawt0000644000175000017500000001037413431250607032305 0ustar brandonbrandon%{ // dynload "libatsdoc/dynloadall.dats" #include "utils/atsdoc/DOCUMENT/TUTORIALATS/tutorialatxt.dats" // #include "./ATEXT/ats2cairo.dats" // %}\ #comment("\n\ The file is automatically generated by [atsdoc] from chap_drawtext.atxt.\n\ ") #comment("\n\ Time of Generation: #timestamp()\ ") #title("Drawing Text") #para('\ We present a function #dyncode("showtext") as follows that draws the text represented by a given string in a manner that puts the center of the drawing at the position (0, 0).\ ') #atscode('\ fun showtext{l:agz} ( cr: !cairo_ref l, utf8: string ) : void = () where { var te : cairo_text_extents_t val () = cairo_text_extents (cr, utf8, te) // val width = te.width and height = te.height val x_base = te.width / 2 + te.x_bearing and y_base = ~te.y_bearing / 2 // val (pf0 | ()) = cairo_save (cr) // val () = cairo_rectangle (cr, ~width / 2, ~height/ 2, width, height) val () = cairo_set_source_rgb (cr, 0.5, 0.5, 1.0) val () = cairo_fill (cr) // \#define RAD 2.0 val () = cairo_arc (cr, ~x_base, y_base, RAD, 0.0, 2*PI) val () = cairo_set_source_rgb (cr, 1.0, 0.0, 0.0) // red val () = cairo_fill (cr) // val () = cairo_arc (cr, ~x_base+te.x_advance, y_base+te.y_advance, RAD, 0.0, 2*PI) val () = cairo_set_source_rgb (cr, 1.0, 0.0, 0.0) // red val () = cairo_fill (cr) // val () = cairo_move_to (cr, ~x_base, y_base) val () = cairo_text_path (cr, utf8) val () = cairo_set_source_rgb (cr, 0.25, 0.25, 0.25) // dark gray val () = cairo_fill (cr) // val () = cairo_restore (pf0 | cr) // } // end of [showtext] ') #para('\ For instance, the following image is produced by calling #dyncode("showtext") (see #mycodelink("tutprog_showtext.dats", "tutprog_showtext.dats")) for the entire code):\ ') #para('\ ') #para('\ Given a string #stacode("utf8"), we can find out some properties about the path that draws the text represented by the string as follows: ') #atscode('\ var te : cairo_text_extents_t val () = cairo_text_extents (cr, utf8, te) ') #para('\ The type #stacode("cairo_text_extents_t") is defined as an external struct type in ATS:\ ') #atscode('\ // // This external struct type is originally defined in [cairo.h]: // typedef cairo_text_extents_t = $extype_struct "cairo_text_extents_t" of { x_bearing= double , y_bearing= double , width= double , height= double , x_advance= double , y_advance= double } // end of [cairo_text_extents_t] ') #para("\ and the function #dyncode("cairo_text_extents") is given the following type:\ ") #atscode('\ fun cairo_text_extents{l:agz} ( cr: !cairo_ref l, utf8: string , extents: &cairo_text_extents_t? >> cairo_text_extents_t ) : void // end of [cairo_text_extents] ') #para("\ In the above image depicting the text #code("Top Secret"), the center of the left red dot is often referred to as the base point of the text, which initiates the path that draws the text. The width and height of the rectangle forming the background of the text are stored in the fields of #code("width") and #code("height") of the struct in #code("te"), respectively. The vector is (x_bearing, y_bearing) from the base point to the upper left corner of the rectangle, and the vector is (x_advance, y_advance) from the base point to the center of the right red dot, which is the suggested base point for the text that follows.\ ") #para("\ The function call #dyncode("cairo_text_path")(cr, utf8) generates a path that draws the text represented by #dyncode("utf8"), where the function #dyncode("cairo_text_path") is given the following type in ATS: ") #atscode('\ fun cairo_text_path {l:agz} (cr: !cairo_ref l, text: string): void ') #para("\ Note that a call to #dyncode("cairo_text_path") followed by a call to #dyncode("cairo_fill") is essentially equivalent to a call to #dyncode("cairo_show_text"), which is given the following type in ATS: ") #atscode('\ fun cairo_show_text {l:agz} (cr: !cairo_ref l, utf8: string): void ') #comment("chapter/drawtext") #comment(" ****** ****** ") #comment(" end of [chap_drawtext.atxt] ") %{ implement main () = fprint_filsub (stdout_ref, "chap_drawtext_atxt.txt") %} ././@LongLink0000644000000000000000000000015500000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_funtypes.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/ATEXT/chap_funty0000644000175000017500000001212013431250607032320 0ustar brandonbrandon%{ // dynload "libatsdoc/dynloadall.dats" #include "utils/atsdoc/DOCUMENT/TUTORIALATS/tutorialatxt.dats" // #include "./ATEXT/ats2cairo.dats" // %}\ #comment("\n\ The file is automatically generated by [atsdoc] from chap_funtypes.atxt.\n\ ") #comment("\n\ Time of Generation: #timestamp()\ ") #title("Types for Some Functions in Cairo") #para('\ We now present some functions in cairo and the types assigned to them in ATS. These types often reveal a lot more information about the functions to which they are assigned than their counterparts in C.\ ') #para('\ The following function #dyncode("cairo_destroy") is for destroying a cairo context: ') #atscode('\ fun cairo_destroy (cr: cairo_ref1): void ') #para('\ What this funtion really does is to decrease by 1 the reference count of the object referred to by its argument. The object is freed, that is, truly destroyed only if the new count becomes 0. Because #stacode("cairo_ref1") is a linear type (or viewtype in ATS), if #dyncode("cairo_destroy")(cr) is called, then #code("cr") can no longer be used as it is consumed: a linear value, that is, a value of a linear type, must be used once and only once. This point is made much clearer in the following example, where the function #dyncode("cairo_reference") is presented: ') #atscode('\ fun cairo_reference {l:agz} (cr: !cairo_ref l): cairo_ref l ') #para('\ First, #stacode("agz") is a sort defined as follows: ') #atscode('\ sortdef agz = {l:addr | l > null} ') #para('\ Therefore, #stacode("{l:agz}") is simply a shorthand for #stacode("{l:addr | l > null}"). What #dyncode("cairo_reference") does is to increase the reference count of its argument by 1. In the type assigned to #dyncode("cairo_reference"), the symbol #stacode("!") in front of #stacode("cairo_ref") indicates that the argument of the function #dyncode("cairo_reference") is not consumed by a call to the function (and thus it can be used later). Clearly, the type also indicates that the value returned by #dyncode("cairo_reference")(cr) is a reference pointing to the same location as #code("cr") does. If the symbol #stacode("!") was omitted, the function would consume a cairo context and then return one, thus preserving reference count.\ ') #para('\ The following function #dyncode("cairo_create") is for creating a cairo context:\ ') #atscode('\ fun cairo_create {l:agz} (sf: !cairo_surface_ref l): cairo_ref1 ') #para('\ The type of this function indicates that it takes a reference to a cairo surface and returns a reference to a cairo context; the symbol #stacode("!") indicates that the reference to the surface is preserved and thus is still available after the function being called; if the reference to the surface is no longer needed, it is necessary to call the function #dyncode("cairo_surface_destroy") on the reference. ') #para('\ We can have another function #dyncode("cairo_create0") of the following type for creating a cairo context:\ ') #atscode('\ fun cairo_create0 {l:agz} (sf: cairo_surface_ref l): cairo_ref1 ') #para('\ After calling #dyncode("cairo_create0") on a cairo surface, the surface is consumed, that is, it is no longer available for subsequent use, and therefore there is no need to destroy it by calling #dyncode("cairo_surface_destroy"). If both #dyncode("cairo_create") and #dyncode("cairo_create0") are provided to the programmer in a language like C, it can readily lead to memory leaks as one may mistakenly use #dyncode("cairo_create0") in place of #dyncode("cairo_create"). This, however, is not an issue in ATS as such an error is surely caught during typechecking. ') #para('\ As various functions can modify the cario context they use, it is often necessary to save the state of a context so that the saved state can be restored at a later point. The functions for saving and restoring the state of a cairo context are given as follows: ') #atscode('\ fun cairo_save {l:agz} (cr: !cairo_ref l): (cairo_save_v l | void) fun cairo_restore {l:agz} (pf: cairo_save_v l | cr: !cairo_ref l): void ') #para('\ The view constructor #stacode("cairo_save_v") is declared to be abstract:\ ') #atscode('\ absview cairo_save_v (l:addr) // abstract view generated by cairo_save ') #para('\ The simple idea behind #stacode("cairo_save_v") is this: Given a reference of the type #stacode("cairo_ref")(#emph("L")) for some address #emph("L"), a call to #dyncode("cairo_save") on the reference returns a linear proof of the view #stacode("cairo_save_v")(#emph("L")), and this proof must be consumed at some point by a call to #dyncode("cairo_restore") on a reference of the type #stacode("cairo_ref")(#emph("L")). In other words, calls to #dyncode("cairo_save") and #dyncode("cairo_restore") are guaranteed to be properly balanced in a well-typed ATS program. This is evidently a desirable feature given that balancing such calls can often be a onerous burden for the programmer programming in languages like C. ') #comment("chapter/function_types") #comment(" ****** ****** ") #comment(" end of [chap_funtypes.atxt] ") %{ implement main () = fprint_filsub (stdout_ref, "chap_funtypes_atxt.txt") %} ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/0000755000175000017500000000000013431250607030066 5ustar brandonbrandon././@LongLink0000644000000000000000000000015700000000000011606 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_triangle.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_tri0000644000175000017500000000050113431250607032367 0ustar brandonbrandonfun draw_triangle{l:agz} ( cr: !cairo_ref l , x0: double, y0: double , x1: double, y1: double , x2: double, y2: double ) : void = () where { val () = cairo_move_to (cr, x0, y0) val () = cairo_line_to (cr, x1, y1) val () = cairo_line_to (cr, x2, y2) val () = cairo_close_path (cr) } (* end of [draw_triangle] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/Makefile0000644000175000017500000000361213431250607031530 0ustar brandonbrandon# # A simple Makefile # ###### ATSHOMEQ = "$(ATSHOME)" ###### ATSDOC = $(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ = "$(PATSHOME)" ###### PATSCC = $(PATSHOMEQ)/bin/patscc PATSOPT = $(PATSHOMEQ)/bin/patsopt ###### XRLIBS=$(shell pkg-config cairo --libs) XRCFLAGS=$(shell pkg-config cairo --cflags) ###### all:: regress:: cleanall:: ###### all:: tutprog_hello tutprog_hello: tutprog_hello.dats ; \ $(PATSCC) -I./../../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) regress:: tutprog_hello; ./$< cleanall:: ; $(RMF) tutprog_hello ###### all:: tutprog_sqrcirc tutprog_sqrcirc: tutprog_sqrcirc.dats ; \ $(PATSCC) -I./../../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) regress:: tutprog_sqrcirc; ./$< cleanall:: ; $(RMF) tutprog_sqrcirc ###### all:: tutprog_showtext tutprog_showtext: tutprog_showtext.dats ; \ $(PATSCC) -I./../../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) regress:: tutprog_showtext; ./$< cleanall:: ; $(RMF) tutprog_showtext ###### all:: tutprog_linecap tutprog_linecap: tutprog_linecap.dats ; \ $(PATSCC) -I./../../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) regress:: tutprog_linecap; ./$< cleanall:: ; $(RMF) tutprog_linecap all:: tutprog_linejoin tutprog_linejoin: tutprog_linejoin.dats ; \ $(PATSCC) -I./../../.. $(XRCFLAGS) -o $@ $< $(XRLIBS) cleanall:: ; $(RMF) tutprog_linejoin ###### all:: illuwavy illuwavy: illuwavy.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -I./../../.. $(XRCFLAGS) -o $@ $< -lm $(XRLIBS) regress:: illuwavy; ./$< cleanall:: ; $(RMF) illuwavy all:: illucircmot illucircmot: illucircmot.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -I./../../.. $(XRCFLAGS) -o $@ $< -lm $(XRLIBS) regress:: illucircmot; ./$< cleanall:: ; $(RMF) illucircmot ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats clean:: ; $(RMF) *_dats.c cleanall:: clean cleanall:: ; $(RMF) *.png ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/illucircmot.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/illucircmot0000644000175000017500000001502113431250607032336 0ustar brandonbrandon(* ** ** A simple CAIRO example: an illusion of circular motion ** Please see Kitaoka's page: http://www.ritsumei.ac.jp/~akitaoka/ ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: 2009-12 // 1st implementation ** Time: 2010-04 // some modifications ** *) (* ** Copyright (C) 2009-2010 Hongwei Xi, Boston University ** ** Permission is hereby granted, free of charge, to any person ** obtaining a copy of this software and associated documentation ** files (the "Software"), to deal in the Software without ** restriction, including without limitation the rights to use, ** copy, modify, merge, publish, distribute, sublicense, and/or sell ** copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following ** conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ** HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ** OTHER DEALINGS IN THE SOFTWARE. *) (* ****** ****** *) // // How to compile: // patscc -DATS_MEMALLOC_LIBC -I${PATSHOME}/contrib -o illucircmot illucircmot.dats `pkg-config --cflags --libs cairo` // // How to test: ./illucircmot // 'gthumb' or 'eog' can be used to view the generated image file 'illucircmot.png' // (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/libc/SATS/math.sats" staload _(*anon*) = "libats/libc/DATS/math.dats" // (* ****** ****** *) // #define LIBCAIRO_targetloc "\ $PATSHOME/\ npm-utils/contrib\ /atscntrb/atscntrb-hx-libcairo" // (* ****** ****** *) // #include "{$LIBCAIRO}/mylibies.hats" #staload $CAIRO // opening it! // (* ****** ****** *) macdef PI = M_PI (* ****** ****** *) stadef dbl = double stadef cr (l:addr) = cairo_ref l (* ****** ****** *) // black/white fn bw_set{l:agz} (cr: !cr l, bw: int): void = ( if bw > 0 then cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) else cairo_set_source_rgb (cr, 1.0, 1.0, 1.0) // end of [if] ) // end of [bw_set] // yellow/blue fn yb_set {l:agz} (cr: !cr l, yb: int): void = ( if yb > 0 then cairo_set_source_rgb (cr, 1.0, 0.75, 0.0) else cairo_set_source_rgb (cr, 0.0, 0.00, 1.0) // end of [if] ) // end of [yb_set] (* ****** ****** *) fn draw_ring {l:agz} {n:int | n >= 2} ( cr: !cr l , bw: int, yb: int , rad1: dbl, rad2: dbl , n: int n ) : void = let val alpha = (1.0 - rad2/rad1) / 1.5 val delta = 2 * PI / n // fun loop {i:nat | i <= n} .. (cr: !cr l, angle: dbl, i: int i, bw: int, yb: int) : void = let val _sin = sin angle and _cos = cos angle val x1 = rad1 * _cos and y1 = rad1 * _sin val x2 = rad2 * _cos and y2 = rad2 * _sin val radm = (rad1 + rad2) / 2 val xm = radm * cos (angle-alpha) and ym = radm * sin (angle-alpha) val () = cairo_move_to (cr, x1, y1) val () = cairo_curve_to (cr, x1, y1, xm, ym, x2, y2) val xm = radm * cos (angle+alpha) and ym = radm * sin (angle+alpha) val () = cairo_curve_to (cr, x2, y2, xm, ym, x1, y1) val () = yb_set (cr, yb) val () = cairo_fill (cr) // val () = cairo_move_to (cr, x2, y2) val () = cairo_curve_to (cr, x2, y2, xm, ym, x1, y1) val () = cairo_arc (cr, 0.0, 0.0, rad1, angle, angle+delta) val angle = angle + delta val _sin = sin angle and _cos = cos angle val x3 = rad1 * _cos and y3 = rad1 * _sin val x4 = rad2 * _cos and y4 = rad2 * _sin val xm = radm * cos (angle-alpha) and ym = radm * sin (angle-alpha) val () = cairo_curve_to (cr, x3, y3, xm, ym, x4, y4) val () = cairo_arc_negative (cr, 0.0, 0.0, rad2, angle, angle-delta) val () = bw_set (cr, bw) val () = cairo_fill (cr) in if i < n then loop (cr, angle, i+1, 1-bw, 1-yb) end // end of [loop] in loop (cr, 0.0, 1, bw, yb) end // end of [draw_ring] (* ****** ****** *) #define SHRINKAGE 0.78 fun draw_rings {l:agz} {n:int | n >= 2} ( cr: !cr l , bw: int, yb: int , rad_beg: dbl, rad_end: dbl , n: int n ) : void = if rad_beg <= rad_end then let val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) val () = cairo_arc (cr, 0.0, 0.0, rad_beg, 0.0, 2*PI) val () = cairo_fill (cr) in // loop exits end else let val rad_beg_nxt = SHRINKAGE * rad_beg val () = draw_ring (cr, bw, yb, rad_beg, rad_beg_nxt, n) in draw_rings (cr, 1-bw, 1-yb, rad_beg_nxt, rad_end, n) end // end of [if] // end of [draw_rings] (* ****** ****** *) implement main0 () = { val margin = 10 val U = 150 #define NROW 2; #define NCOL 2 val wd = NCOL * U and ht = NROW * U val surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, wd+margin, ht+margin) val cr = cairo_create (surface) // val U = g0int2float_int_double(U) val wd = g0int2float_int_double(wd) and ht = g0int2float_int_double(ht) val margin = g0int2float_int_double(margin) // val xmargin = margin/2 and ymargin = margin/2 // val () = cairo_translate (cr, xmargin, ymargin) // var i : int = 0 and j : int = 0 val () = ( for (i := 0; i <= NCOL; i := i + 1) ( for ( j := 0; j <= NROW; j := j + 1 ) let val (pf | ()) = cairo_save (cr) val () = cairo_translate (cr, i*U, j*U) val () = draw_rings (cr, 0, 0, U/2, 4.0, 40) val () = cairo_restore (pf | cr) in // nothing end // end of [let] // end of [for] ) // end of [for] ) // end of [val] // val () = ( for (i := 0; i < NCOL; i := i + 1) ( for ( j := 0; j < NROW; j := j + 1 ) let val (pf | ()) = cairo_save (cr) val () = cairo_translate (cr, i*U+U/2, j*U+U/2) val () = draw_rings (cr, i, 0, U/2, 4.0, 40) val () = cairo_restore (pf | cr) in // nothing end // end of [let] // end of [for] ) // end of [for] ) // end of [val] // val status = cairo_surface_write_to_png (surface, "illucircmot.png") val () = cairo_surface_destroy (surface) val () = cairo_destroy (cr) // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [illucircmot.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] // } (* end of [main0] *) (* ****** ****** *) (* end of [illucircmot.dats] *) ././@LongLink0000644000000000000000000000014700000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/illuwavy.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/illuwavy.da0000644000175000017500000001600513431250607032252 0ustar brandonbrandon(* ** ** A simple CAIRO example: a wavy illusion ** Please see Kitaoka's page: http://www.ritsumei.ac.jp/~akitaoka/ ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: April, 2010 ** *) (* ** Copyright (C) 2009-2010 Hongwei Xi, Boston University ** ** Permission is hereby granted, free of charge, to any person ** obtaining a copy of this software and associated documentation ** files (the "Software"), to deal in the Software without ** restriction, including without limitation the rights to use, ** copy, modify, merge, publish, distribute, sublicense, and/or sell ** copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following ** conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ** HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ** OTHER DEALINGS IN THE SOFTWARE. *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) // // How to compile: // patscc -DATS_MEMALLOC_LIBC -I${PATSHOME}/contrib -o illuwavy illuwavy.dats `pkg-config cairo --cflags --libs` // // How to test: ./illuwavy // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload MATH = "libats/libc/SATS/math.sats" // (* ****** ****** *) // #define LIBCAIRO_targetloc "\ $PATSHOME/\ npm-utils/contrib\ /atscntrb/atscntrb-hx-libcairo" // (* ****** ****** *) // #include "{$LIBCAIRO}/mylibies.hats" #staload $CAIRO // opening it! // (* ****** ****** *) typedef color = @{ r= double, g= double, b= double } (* end of [color] *) (* ****** ****** *) macdef rbgset (cr, c) = let val c = ,(c) in cairo_set_source_rgb (,(cr), c.r, c.g, c.b) end // end of [rbgset] (* ****** ****** *) (* // decoration pattern: 0110 1011 0101 0010 *) (* ****** ****** *) #define NEG1 ~1 sortdef two = {n:nat | n < 2} (* ****** ****** *) macdef PI = $MATH.M_PI (* ****** ****** *) fun flag_eval {i,j:nat} (i: int i, j: int j): int = let val d = (i mod 4 - j mod 4) val flag = (if (~1 <= d && d <= 2) then 1 else 0): int in if (i/4) mod 2 + (j/4) mod 2 = 1 then 1-flag else flag end // end of [val] extern fun draw_decorate {l:agz} {n:pos} (cr: !cairo_ref l, c0: &color, c1: &color, X: double, N: int n): void implement draw_decorate {l} (cr, c0, c1, X, N) = () where { // val x0 = X/N val rad = 1.0 / 7 // fn do1 (cr: !cairo_ref l): void = let val (pf0 | ()) = cairo_save (cr) val () = cairo_move_to (cr, 0.0, ~0.5) val () = cairo_line_to (cr, 0.0, 0.5) val () = cairo_stroke (cr) val xc = 0.25 and yc = 0.0 val () = cairo_arc (cr, xc, yc, rad, 0.0, 2*PI) val () = cairo_fill (cr) val xc = ~0.25 and yc = 0.0 val () = cairo_arc (cr, xc, yc, rad, 0.0, 2*PI) val () = cairo_fill (cr) val () = cairo_restore (pf0 | cr) in // nothing end // end of [do1] // fn do2 (cr: !cairo_ref l): void = let val (pf0 | ()) = cairo_save (cr) val () = cairo_scale (cr, x0/1.8, x0/1.8) val () = do1 (cr) val () = cairo_rotate (cr, PI/2) val () = do1 (cr) val () = cairo_restore (pf0 | cr) in // nothing end // end of [do2] // val N1 = N - 1 var x: double = 0.0 var y: double = 0.0 var i: Nat = 0 and j: Nat = 0 val () = for (i := 0; i < N1; i := i + 1) let val () = x := x + x0; val () = y := 0.0 // init val () = for (j := 0; j < N1; j := j + 1) let val () = y := y + x0 val flag = flag_eval (i, j) val ( ) = ( if flag = 0 then rbgset (cr, c0) else rbgset (cr, c1) ) : void // end of [val] val () = cairo_set_line_width (cr, 0.1) val (pf | ()) = cairo_save (cr) val () = cairo_translate (cr, x, y) val () = do2 (cr) val () = cairo_restore (pf | cr) in // nothing end // end of [for] in // nothing end // end of [for] // } // end of [draw_decorater] (* ****** ****** *) extern fun draw_board {l:agz} {n:nat} (cr: !cairo_ref l, c0: &color, c1: &color, X: double, n: int n): void // end of [draw_board] implement draw_board {l} {n} (cr, c0, c1, X, N) = let val x = X / N viewdef cr = cairo_ref (l) // fun loop1 {i:nat | i <= n} {bw:two} (cr: !cr, c0: &color, c1: &color, i: int i, bw: int bw) : void = if i < N then let val () = loop2 (cr, c0, c1, i, 0, bw) in loop1 (cr, c0, c1, i+1, 1-bw) end // end of [if] and loop2 {i,j:nat | i < n; j <= n} {bw:two} (cr: !cr, c0: &color, c1: &color, i: int i, j: int j, bw: int bw) : void = if j < N then let val ( ) = ( if (bw = 0) then rbgset (cr, c0) else rbgset (cr, c1) ) : void // end of [val] val () = cairo_rectangle (cr, i * x, j * x, x, x) val () = cairo_fill (cr) in loop2 (cr, c0, c1, i, j+1, 1-bw) end // end of [if] // val (pf0 | ()) = cairo_save (cr) val () = cairo_move_to (cr, 0.0, 0.0) val () = loop1 (cr, c0, c1, 0, 0) val () = cairo_restore (pf0 | cr) in // nothing end // end of [draw_board] (* ****** ****** *) #define NSIDE 17 (* ****** ****** *) extern fun draw_all {l:agz} ( cr: !cairo_ref l, width: int, height: int ) : void = "ext#" // endfun (* ****** ****** *) implement draw_all (cr, wd, ht) = () where { val wd = g0int2float_int_double(wd) val ht = g0int2float_int_double(ht) val mn = min (wd, ht) val xmargin = (wd - mn) / 2 val ymargin = (ht - mn) / 2 val (pf0 | ()) = cairo_save (cr) val () = cairo_translate (cr, xmargin, ymargin) // var c0: color val () = (c0.r := 1.0; c0.g := 1.0; c0.b := 1.0) // white var c1: color val () = (c1.r := 0.10; c1.g := 0.50; c1.b := 0.5) // deep2 green var c2: color val () = (c2.r := 0.40; c2.g := 0.90; c2.b := 0.0) // shallow green var c3: color val () = (c3.r := 0.25; c3.g := 0.75; c3.b := 0.25) // deep green val () = cairo_move_to (cr, 0.0, 0.0) val () = draw_board (cr, c2, c3, mn, NSIDE) val () = draw_decorate (cr, c0, c1, mn, NSIDE) // val () = cairo_restore (pf0 | cr) } // end of [draw_all] (* ****** ****** *) implement main0 () = () where { val W = 300 and H = 300 // val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (sf) // val () = draw_all (cr, W, H) // val status = cairo_surface_write_to_png (sf, "illuwavy.png") val () = cairo_surface_destroy (sf); val () = cairo_destroy (cr) // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [illuwavy.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] // } (* end of [main0] *) (* ****** ****** *) (* end of [illuwavy.dats] *) ././@LongLink0000644000000000000000000000015700000000000011606 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_linejoin.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_lin0000644000175000017500000000422413431250607032361 0ustar brandonbrandon// // Author: Hongwei Xi // Time: April 29, 2010 // (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) // // How to compile: // patscc -I${PATSHOME}/contrib -o tutprog_linejoin tutprog_linejoin.dats `pkg-config cairo --cflags --libs` // // How to test: ./tutprog_linejoin // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #define LIBCAIRO_targetloc "\ $PATSHOME/\ npm-utils/contrib\ /atscntrb/atscntrb-hx-libcairo" // (* ****** ****** *) // #include "{$LIBCAIRO}/mylibies.hats" #staload $CAIRO // opening it! // (* ****** ****** *) fun draw_triangle{l:agz} ( cr: !cairo_ref l , x0: double, y0: double , x1: double, y1: double , x2: double, y2: double ) : void = () where { val () = cairo_move_to (cr, x0, y0) val () = cairo_line_to (cr, x1, y1) val () = cairo_line_to (cr, x2, y2) val () = cairo_close_path (cr) } (* end of [draw_triangle] *) (* ****** ****** *) implement main0 () = () where { // val W = 300 and H = 300 val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (sf) // macdef c0set () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) // val () = cairo_set_line_width (cr, 15.0) // val () = c0set () val () = draw_triangle (cr, 50.0, 50.0, 20.0, 250.0, 80.0, 250.0) val () = cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER) val () = cairo_stroke (cr) // val () = c0set () val () = draw_triangle (cr, 150.0, 50.0, 120.0, 250.0, 180.0, 250.0) val () = cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND) val () = cairo_stroke (cr) // val () = c0set () val () = draw_triangle (cr, 250.0, 50.0, 220.0, 250.0, 280.0, 250.0) val () = cairo_set_line_join (cr, CAIRO_LINE_JOIN_BEVEL) val () = cairo_stroke (cr) // val status = cairo_surface_write_to_png (sf, "tutprog_linejoin.png") val () = cairo_surface_destroy (sf); val () = cairo_destroy (cr) // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [tutprog_linejoin.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] // } (* end of [main0] *) (* ****** ****** *) (* end of [tutprog_linejoin.dats] *) ././@LongLink0000644000000000000000000000015400000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_hello.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_hel0000644000175000017500000000524513431250607032353 0ustar brandonbrandon(* ** ** ATS/Cairo Tutorial: Hello, world! ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: 2010-04 ** *) (* ** Copyright (C) 2009-2010 Hongwei Xi, Boston University ** ** Permission is hereby granted, free of charge, to any person ** obtaining a copy of this software and associated documentation ** files (the "Software"), to deal in the Software without ** restriction, including without limitation the rights to use, ** copy, modify, merge, publish, distribute, sublicense, and/or sell ** copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following ** conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ** HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ** OTHER DEALINGS IN THE SOFTWARE. *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) // // How to compile: // patscc -I${PATSHOME}/npm-utils/contrib \ // -o tutprog_hello tutprog_hello.dats `pkg-config cairo --cflags --libs` // // How to test: ./tutprog_hello // (* ****** ****** *) // #define LIBCAIRO_targetloc "\ $PATSHOME/\ npm-utils/contrib\ /atscntrb/atscntrb-hx-libcairo" // (* ****** ****** *) // #include "{$LIBCAIRO}/mylibies.hats" #staload $CAIRO // opening it! // (* ****** ****** *) implement main0 () = () where { // // create a surface for drawing // val sf = // create a surface for drawing cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 250, 80) // val cr = cairo_create (sf) // create a context for drawing // val () = cairo_select_font_face (cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD) val () = cairo_set_font_size (cr, 32.0) // // the call [cairo_set_source_rgb] sets the color to blue // val () = cairo_set_source_rgb (cr, 0.0(*r*), 0.0(*g*), 1.0(*b*)) val () = cairo_move_to (cr, 10.0, 50.0) val () = cairo_show_text (cr, "Hello, world!") // val status = cairo_surface_write_to_png (sf, "tutprog_hello.png") val () = cairo_destroy (cr) // a type error if omitted val () = cairo_surface_destroy (sf) // a type error if omitted // // in case of a failure ... // val () = assertloc (status = CAIRO_STATUS_SUCCESS) // } (* end of [main0] *) (* ****** ****** *) (* end of [tutprog_hello.dats] *) ././@LongLink0000644000000000000000000000015600000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_linecap.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_lin0000644000175000017500000000443213431250607032362 0ustar brandonbrandon// // Author: Hongwei Xi // Time: April 29, 2010 // (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) // // How to compile: // patscc -I${PATSHOME}/npm-utils/contrib \ // -o tutprog_linecap tutprog_linecap.dats `pkg-config cairo --cflags --libs` // // How to test: ./tutprog_linecap // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #define LIBCAIRO_targetloc "\ $PATSHOME/\ npm-utils/contrib\ /atscntrb/atscntrb-hx-libcairo" // (* ****** ****** *) // #include "{$LIBCAIRO}/mylibies.hats" #staload $CAIRO // opening it! // (* ****** ****** *) implement main0 () = () where { val W = 300 and H = 300 val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (sf) macdef c0set () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) macdef c1set () = cairo_set_source_rgb (cr, 0.25, 0.25, 0.25) // val () = cairo_set_line_width (cr, 30.0) // val () = c0set () val () = cairo_move_to (cr, 75.0, 50.0) val () = cairo_rel_line_to (cr, 0.0, 200.0) val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT) val () = cairo_stroke (cr) // val () = c1set () val () = cairo_move_to (cr, 150.0, 50.0) val () = cairo_rel_line_to (cr, 0.0, 200.0) val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND) val () = cairo_stroke (cr) val () = c0set () val () = cairo_move_to (cr, 150.0, 50.0) val () = cairo_rel_line_to (cr, 0.0, 200.0) val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT) val () = cairo_stroke (cr) // val () = c1set () val () = cairo_move_to (cr, 225.0, 50.0) val () = cairo_rel_line_to (cr, 0.0, 200.0) val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE) val () = cairo_stroke (cr) val () = c0set () val () = cairo_move_to (cr, 225.0, 50.0) val () = cairo_rel_line_to (cr, 0.0, 200.0) val () = cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT) val () = cairo_stroke (cr) // val status = cairo_surface_write_to_png (sf, "tutprog_linecap.png") val () = cairo_surface_destroy (sf); val () = cairo_destroy (cr) // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [tutprog_linecap.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] // } (* end of [main0] *) (* ****** ****** *) (* end of [tutprog_linecap.dats] *) ././@LongLink0000644000000000000000000000015700000000000011606 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_showtext.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_sho0000644000175000017500000000751513431250607032376 0ustar brandonbrandon(* ** ** ATS/Cairo Tutorial: Drawing Text ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: 2010-04-30 ** *) (* ** Copyright (C) 2009-2010 Hongwei Xi, Boston University ** ** Permission is hereby granted, free of charge, to any person ** obtaining a copy of this software and associated documentation ** files (the "Software"), to deal in the Software without ** restriction, including without limitation the rights to use, ** copy, modify, merge, publish, distribute, sublicense, and/or sell ** copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following ** conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ** HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ** OTHER DEALINGS IN THE SOFTWARE. *) (* ****** ****** *) // // How to compile: // patscc -I${PATSHOME}/contrib -o tutprog_showtext tutprog_showtext.dats `pkg-config cairo --cflags --libs` // // How to test: ./tutprog_showtext // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #staload MATH = "libats/libc/SATS/math.sats" // // #define LIBCAIRO_targetloc "\ $PATSHOME/\ npm-utils/contrib\ /atscntrb/atscntrb-hx-libcairo" // (* ****** ****** *) // #include "{$LIBCAIRO}/mylibies.hats" #staload $CAIRO // opening it! // (* ****** ****** *) // macdef M_PI = $MATH.M_PI // (* ****** ****** *) // fun showtext{l:agz} ( cr: !cairo_ref l, utf8: string ) : void = () where { var te : cairo_text_extents_t val () = cairo_text_extents (cr, utf8, te) // val width = te.width and height = te.height val x_base = te.width / 2 + te.x_bearing and y_base = ~te.y_bearing / 2 // val (pf0 | ()) = cairo_save (cr) // val () = cairo_rectangle (cr, ~width / 2, ~height/ 2, width, height) val () = cairo_set_source_rgb (cr, 0.5, 0.5, 1.0) val () = cairo_fill (cr) // #define RAD 2.0 val () = cairo_arc (cr, ~x_base, y_base, RAD, 0.0, 2*M_PI) val () = cairo_set_source_rgb (cr, 1.0, 0.0, 0.0) // red val () = cairo_fill (cr) // val () = cairo_arc (cr, ~x_base+te.x_advance, y_base+te.y_advance, RAD, 0.0, 2*M_PI) val () = cairo_set_source_rgb (cr, 1.0, 0.0, 0.0) // red val () = cairo_fill (cr) // val () = cairo_move_to (cr, ~x_base, y_base) val () = cairo_text_path (cr, utf8) val () = cairo_set_source_rgb (cr, 0.25, 0.25, 0.25) // dark gray val () = cairo_fill (cr) // val () = cairo_restore (pf0 | cr) // } // end of [showtext] (* ****** ****** *) implement main0 () = () where { val W = 300 and H = 60 val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (sf) // #define FONTSIZE 20 val () = cairo_select_font_face (cr, "Georgia", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD) val () = cairo_set_font_size (cr, g0int2float_int_double(FONTSIZE)) // val () = cairo_translate (cr, 1.0*W/2, 1.0*H/2) val () = cairo_scale (cr, 2.5, 2.5) val () = showtext (cr, "Top Secret") // val status = cairo_surface_write_to_png (sf, "tutprog_showtext.png") val () = cairo_surface_destroy (sf) // a type error if omitted val () = cairo_destroy (cr) // a type error if omitted // val () = if status = CAIRO_STATUS_SUCCESS then begin print "The image is written to the file [tutprog_showtext.png].\n" end else begin print "exit(ATS): [cairo_surface_write_to_png] failed"; print_newline () end // end of [if] // } (* end of [main0] *) (* ****** ****** *) (* end of [tutprog_showtext.dats] *) ././@LongLink0000644000000000000000000000015600000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_sqrcirc.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/TUTORIAL/CODE/tutprog_sqr0000644000175000017500000000614213431250607032405 0ustar brandonbrandon(* ** ** ATS/Cairo Tutorial: ** drawing rectangles and circles ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: 2010-04 ** *) (* ** Copyright (C) 2009-2010 Hongwei Xi, Boston University ** ** Permission is hereby granted, free of charge, to any person ** obtaining a copy of this software and associated documentation ** files (the "Software"), to deal in the Software without ** restriction, including without limitation the rights to use, ** copy, modify, merge, publish, distribute, sublicense, and/or sell ** copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following ** conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ** HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ** OTHER DEALINGS IN THE SOFTWARE. *) (* ****** ****** *) (* ** Ported to ATS2 by Hongwei Xi, September, 2013 *) (* ****** ****** *) // // How to compile: // patscc -I${PATSHOME}/contrib -o tutprog_sqrcirc tutprog_sqrcirc.dats `pkg-config cairo --cflags --libs` // // How to test: ./tutprog_sqrcirc // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload MATH = "libats/libc/SATS/math.sats" // (* ****** ****** *) // #define LIBCAIRO_targetloc "\ $PATSHOME/\ npm-utils/contrib\ /atscntrb/atscntrb-hx-libcairo" // (* ****** ****** *) // #include "{$LIBCAIRO}/mylibies.hats" #staload $CAIRO // opening it! // (* ****** ****** *) // macdef PI = $MATH.M_PI // (* ****** ****** *) fun draw_sqrcirc {l:agz} (cr: !cairo_ref l): void = let val () = cairo_rectangle (cr, ~0.5, ~0.5, 1.0, 1.0) val () = cairo_set_source_rgb (cr, 0.0, 0.0, 0.0) // black color val () = cairo_fill (cr) val () = cairo_arc (cr, 0.0, 0.0, 0.5, 0.0, 2*PI) val () = cairo_set_source_rgb (cr, 1.0, 1.0, 1.0) // white color val () = cairo_fill (cr) in // nothing end // end of [draw_sqrcirc] (* ****** ****** *) implement main0 () = () where { // val W = 250 and H = 250 // // create a sf for drawing // val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (sf) // val WH = min (W, H) val WH = g0int2float_int_double (WH) // val (pf0 | ()) = cairo_save (cr) val () = cairo_translate (cr, WH/2, WH/2) val () = cairo_scale (cr, WH, WH) val () = draw_sqrcirc (cr) val () = cairo_restore (pf0 | cr) // val status = cairo_surface_write_to_png (sf, "tutprog_sqrcirc.png") val () = cairo_surface_destroy (sf) // a type error if omitted val () = cairo_destroy (cr) // a type error if omitted // // in case of a failure ... // val () = assertloc (status = CAIRO_STATUS_SUCCESS) // } (* end of [main0] *) (* ****** ****** *) (* end of [tutprog_sqrcirc.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/0000755000175000017500000000000013431250607026663 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Utilities/0000755000175000017500000000000013431250607030636 5ustar brandonbrandon././@LongLink0000644000000000000000000000016400000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Utilities/cairo-Error-Handling.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Utilities/cairo-Erro0000644000175000017500000000115013431250607032560 0ustar brandonbrandon(* ** Start Time: September, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) /* const char * cairo_status_to_string (cairo_status_t status); */ fun cairo_status_to_string (ctx: !xr1) : string = "mac#atscntrb_cairo_status_to_string" // end of [cairo_status_to_string] (* ****** ****** *) /* void cairo_debug_reset_static_data (void); */ fun cairo_debug_reset_static_data ((*void*)): void = "mac#atscntrb_cairo_debug_reset_static_data" // end of [cairo_debug_reset_static_data] (* ****** ****** *) (* end of [cairo-Error-handling.sats] *) ././@LongLink0000644000000000000000000000016400000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Utilities/cairo-cairo-matrix-t.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Utilities/cairo-cair0000644000175000017500000001107413431250607032575 0ustar brandonbrandon(* ** Start Time: September, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* typedef struct { double xx; double yx; double xy; double yy; double x0; double y0; } cairo_matrix_t; */ (* ****** ****** *) /* void cairo_matrix_init (cairo_matrix_t *matrix, double xx, double yx, double xy, double yy, double x0, double y0); */ fun cairo_matrix_init ( matrix: &xrmat? >> xrmat , xx: double, yx: double, xy: double, yy: double, x0: double, y0: double ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_matrix_init_identity (cairo_matrix_t *matrix); */ fun cairo_matrix_init_identity (matrix: &xrmat? >> xrmat): void = "mac#%" // end of [cairo_matrix_init_identity] (* ****** ****** *) /* void cairo_matrix_init_translate (cairo_matrix_t *matrix, double tx, double ty); */ fun cairo_matrix_init_translate ( matrix: &xrmat? >> xrmat, tx: double, ty: double ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_matrix_init_scale (cairo_matrix_t *matrix, double sx, double sy); */ fun cairo_matrix_init_scale ( matrix: &xrmat? >> xrmat, sx: double, sy: double ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_matrix_init_rotate (cairo_matrix_t *matrix, double radians); */ fun cairo_matrix_init_rotate (matrix: &xrmat? >> xrmat, radians: double): void = "mac#%" // end of [cairo_matrix_init_rotate] (* ****** ****** *) /* void cairo_matrix_translate (cairo_matrix_t *matrix, double tx, double ty); */ fun cairo_matrix_translate ( matrix: &xrmat >> _, tx: double, ty: double ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_matrix_scale (cairo_matrix_t *matrix, double sx, double sy); */ fun cairo_matrix_scale ( matrix: &xrmat >> _, sx: double, sy: double ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_matrix_rotate (cairo_matrix_t *matrix, double radians); */ fun cairo_matrix_rotate (matrix: &xrmat >> _, radians: double): void = "mac#%" // end of [cairo_matrix_rotate] (* ****** ****** *) /* cairo_status_t cairo_matrix_invert (cairo_matrix_t *matrix); */ fun cairo_matrix_invert (matrix: &xrmat >> xrmat): cairo_status_t = "mac#%" // end of [cairo_matrix_invert] (* ****** ****** *) /* void cairo_matrix_multiply (cairo_matrix_t *result, const cairo_matrix_t *a, const cairo_matrix_t *b); */ fun cairo_matrix_multiply ( result: &xrmat? >> xrmat, a: &RD(xrmat), b: &RD(xrmat) ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_matrix_transform_distance (const cairo_matrix_t *matrix, double *dx, double *dy); */ fun cairo_matrix_transform_distance ( matrix: &RD(xrmat) , dx: &double? >> double, dy: &double? >> double ) : void = "mac#%" // end of [fun] (* ****** ****** *) /* void cairo_matrix_transform_point (const cairo_matrix_t *matrix, double *x, double *y); */ fun cairo_matrix_transform_point ( matrix: &RD(xrmat) , x: &double? >> double, y: &double? >> double ) : void = "mac#%" // end of [fun] (* ****** ****** *) (* end of [cairo-cairo-matrix-t.sats] *) ././@LongLink0000644000000000000000000000015300000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Utilities/cairo-Types.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Utilities/cairo-Type0000644000175000017500000000063213431250607032576 0ustar brandonbrandon(* ** Start Time: September, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* typedef cairo_bool_t; cairo_user_data_key_t; void (*cairo_destroy_func_t) (void *data); cairo_rectangle_int_t; */ (* ****** ****** *) (* end of [cairo-Types.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Fonts/0000755000175000017500000000000013431250607027754 5ustar brandonbrandon././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Fonts/cairo-cairo-font-face-t.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Fonts/cairo-cairo-fo0000644000175000017500000000305313431250607032472 0ustar brandonbrandon(* ** Start Time: September, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_font_face_t * cairo_font_face_reference (cairo_font_face_t *font_face); */ fun cairo_font_face_reference {l:agz} (x: !xrfontface (l)) : xrfontface (l) = "mac#%" // end of [cairo_font_face_reference] /* void cairo_font_face_destroy (cairo_font_face_t *font_face); */ fun cairo_font_face_destroy (x: xrdev1): void = "mac#%" // endfun (* ****** ****** *) /* cairo_status_t cairo_font_face_status (cairo_font_face_t *font_face); */ fun cairo_font_face_status (x: !xrfontface1): cairo_status_t = "mac#%" (* ****** ****** *) /* enum cairo_font_type_t; cairo_font_type_t cairo_font_face_get_type (cairo_font_face_t *font_face); unsigned int cairo_font_face_get_reference_count (cairo_font_face_t *font_face); cairo_status_t cairo_font_face_set_user_data (cairo_font_face_t *font_face, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); void * cairo_font_face_get_user_data (cairo_font_face_t *font_face, const cairo_user_data_key_t *key); */ (* ****** ****** *) (* end of [cairo-cairo-font-face-t.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/mybasis.sats0000644000175000017500000004342113431250607031232 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2012 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Start Time: May, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) (* ** HX: this file only includes typedefs and macros; it is for internal use! *) (* ****** ****** *) #ifndef CAIRO_CAIRO_HEADER_SATS #define CAIRO_CAIRO_HEADER_SATS (* ****** ****** *) // // HX: for convenience // typedef rgb_type = @{red= double, green= double, blue= double} typedef rgb = rgb_type typedef rgba_type = @{red= double, green= double, blue= double, alpha= double} typedef rgba = rgba_type (* ****** ****** *) // // API for cairo in ATS // this one is based on cairo-1.12 // (* ****** ****** *) macdef CAIRO_HAS_IMAGE_SURFACE = $extval (int, "CAIRO_HAS_IMAGE_SURFACE") macdef CAIRO_HAS_PDF_SURFACE = $extval (int, "CAIRO_HAS_PDF_SURFACE") macdef CAIRO_HAS_PNG_FUNCTIONS = $extval (int, "CAIRO_HAS_PNG_FUNCTIONS") (* ****** ****** *) macdef CAIRO_HAS_MIME_SURFACE = $extval (int, "CAIRO_HAS_MIME_SURFACE") macdef CAIRO_MIME_TYPE_JP2 = $extval (string, "CAIRO_MIME_TYPE_JP2") macdef CAIRO_MIME_TYPE_JPEG = $extval (string, "CAIRO_MIME_TYPE_JPEG") macdef CAIRO_MIME_TYPE_PNG = $extval (string, "CAIRO_MIME_TYPE_PNG") macdef CAIRO_MIME_TYPE_URI = $extval (string, "CAIRO_MIME_TYPE_URI") macdef CAIRO_MIME_TYPE_UNIQUE_ID = $extval (string, "CAIRO_MIME_TYPE_UNIQUE_ID") (* ****** ****** *) // // [cairo_ref] is reference-counted // absvtype cairo_ref (l:addr) = ptr // cairo_t* vtypedef cairo_ref1 = [l:addr | l > null] cairo_ref (l) stadef xr = cairo_ref stadef xr1 = cairo_ref1 // (* ****** ****** *) // // [cairo_surface_ref] is reference-counted // absvtype cairo_surface_ref (l:addr) = ptr // cairo_surface_t* vtypedef cairo_surface_ref1 = [l:addr | l > null] cairo_surface_ref (l) stadef xrsf = cairo_surface_ref stadef xrsf1 = cairo_surface_ref1 // (* ****** ****** *) // // [cairo_device_ref] is reference-counted // absvtype cairo_device_ref (l:addr) = ptr // cairo_device_t* vtypedef cairo_device_ref1 = [l:addr | l > null] cairo_device_ref (l) stadef xrdev = cairo_device_ref stadef xrdev1 = cairo_device_ref1 // (* ****** ****** *) // // [cairo_pattern_ref] is reference-counted // absvtype cairo_pattern_ref (l:addr) = ptr // cairo_pattern_t* vtypedef cairo_pattern_ref1 = [l:addr | l > null] cairo_pattern_ref (l) stadef xrpat = cairo_pattern_ref stadef xrpat1 = cairo_pattern_ref1 // (* ****** ****** *) // // [cairo_region_ref] is reference-counted // absvtype cairo_region_ref (l:addr) = ptr // cairo_region_t* vtypedef cairo_region_ref1 = [l:addr | l > null] cairo_region_ref (l) stadef xrrgn = cairo_region_ref stadef xrrgn1 = cairo_region_ref1 // (* ****** ****** *) // // cairo_font_face_ref // cairo_font_fact_t* // absvtype cairo_font_face_ref (l:addr) = ptr // cairo_font_face_t* vtypedef cairo_font_face_ref1 = [l:addr | l > null] cairo_font_face_ref (l) stadef xrfontface = cairo_font_face_ref stadef xrfontface1 = cairo_font_face_ref1 // (* ****** ****** *) typedef cairo_bool_t = bool (* ****** ****** *) // abst@ype cairo_status_t = $extype"cairo_status_t" // macdef CAIRO_STATUS_SUCCESS = $extval (cairo_status_t, "CAIRO_STATUS_SUCCESS") macdef CAIRO_STATUS_NO_MEMORY = $extval (cairo_status_t, "CAIRO_STATUS_NO_MEMORY") macdef CAIRO_STATUS_INVALID_RESTORE = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_RESTORE") macdef CAIRO_STATUS_INVALID_POP_GROUP = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_POP_GROUP") macdef CAIRO_STATUS_NO_CURRENT_POINT = $extval (cairo_status_t, "CAIRO_STATUS_NO_CURRENT_POINT") macdef CAIRO_STATUS_INVALID_MATRIX = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_MATRIX") macdef CAIRO_STATUS_INVALID_STATUS = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_STATUS") macdef CAIRO_STATUS_NULL_POINTER = $extval (cairo_status_t, "CAIRO_STATUS_NULL_POINTER") macdef CAIRO_STATUS_INVALID_STRING = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_STRING") macdef CAIRO_STATUS_INVALID_PATH_DATA = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_PATH_DATA") macdef CAIRO_STATUS_READ_ERROR = $extval (cairo_status_t, "CAIRO_STATUS_READ_ERROR") macdef CAIRO_STATUS_WRITE_ERROR = $extval (cairo_status_t, "CAIRO_STATUS_WRITE_ERROR") macdef CAIRO_STATUS_SURFACE_FINISHED = $extval (cairo_status_t, "CAIRO_STATUS_SURFACE_FINISHED") macdef CAIRO_STATUS_SURFACE_TYPE_MISMATCH = $extval (cairo_status_t, "CAIRO_STATUS_SURFACE_TYPE_MISMATCH") macdef CAIRO_STATUS_PATTERN_TYPE_MISMATCH = $extval (cairo_status_t, "CAIRO_STATUS_PATTERN_TYPE_MISMATCH") macdef CAIRO_STATUS_INVALID_CONTENT = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_CONTENT") macdef CAIRO_STATUS_INVALID_FORMAT = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_FORMAT") macdef CAIRO_STATUS_INVALID_VISUAL = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_VISUAL") macdef CAIRO_STATUS_FILE_NOT_FOUND = $extval (cairo_status_t, "CAIRO_STATUS_FILE_NOT_FOUND") macdef CAIRO_STATUS_INVALID_DASH = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_DASH") macdef CAIRO_STATUS_INVALID_DSC_COMMENT = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_DSC_COMMENT") macdef CAIRO_STATUS_INVALID_INDEX = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_INDEX") macdef CAIRO_STATUS_CLIP_NOT_REPRESENTABLE = $extval (cairo_status_t, "CAIRO_STATUS_CLIP_NOT_REPRESENTABLE") macdef CAIRO_STATUS_TEMP_FILE_ERROR = $extval (cairo_status_t, "CAIRO_STATUS_TEMP_FILE_ERROR") macdef CAIRO_STATUS_INVALID_STRIDE = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_STRIDE") macdef CAIRO_STATUS_FONT_TYPE_MISMATCH = $extval (cairo_status_t, "CAIRO_STATUS_FONT_TYPE_MISMATCH") macdef CAIRO_STATUS_USER_FONT_IMMUTABLE = $extval (cairo_status_t, "CAIRO_STATUS_USER_FONT_IMMUTABLE") macdef CAIRO_STATUS_USER_FONT_ERROR = $extval (cairo_status_t, "CAIRO_STATUS_USER_FONT_ERROR") macdef CAIRO_STATUS_NEGATIVE_COUNT = $extval (cairo_status_t, "CAIRO_STATUS_NEGATIVE_COUNT") macdef CAIRO_STATUS_INVALID_CLUSTERS = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_CLUSTERS") macdef CAIRO_STATUS_INVALID_SLANT = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_SLANT") macdef CAIRO_STATUS_INVALID_WEIGHT = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_WEIGHT") macdef CAIRO_STATUS_INVALID_SIZE = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_SIZE") macdef CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED = $extval (cairo_status_t, "CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED") macdef CAIRO_STATUS_DEVICE_TYPE_MISMATCH = $extval (cairo_status_t, "CAIRO_STATUS_DEVICE_TYPE_MISMATCH") macdef CAIRO_STATUS_DEVICE_ERROR = $extval (cairo_status_t, "CAIRO_STATUS_DEVICE_ERROR") macdef CAIRO_STATUS_INVALID_MESH_CONSTRUCTION = $extval (cairo_status_t, "CAIRO_STATUS_INVALID_MESH_CONSTRUCTION") macdef CAIRO_STATUS_DEVICE_FINISHED = $extval (cairo_status_t, "CAIRO_STATUS_DEVICE_FINISHED") macdef CAIRO_STATUS_LAST_STATUS = $extval (cairo_status_t, "CAIRO_STATUS_LAST_STATUS") // fun eq_cairo_status_cairo_status (x1: cairo_status_t, x2: cairo_status_t):<> bool = "mac#%cairo_eq_int_int" overload = with eq_cairo_status_cairo_status // (* ****** ****** *) // abst@ype cairo_content_t = $extype"cairo_content_t" // macdef CAIRO_CONTENT_COLOR = $extval (cairo_content_t, "CAIRO_CONTENT_COLOR") macdef CAIRO_CONTENT_ALPHA = $extval (cairo_content_t, "CAIRO_CONTENT_ALPHA") macdef CAIRO_CONTENT_COLOR_ALPHA = $extval (cairo_content_t, "CAIRO_CONTENT_COLOR_ALPHA") // (* ****** ****** *) // abst@ype cairo_format_t = $extype"cairo_format_t" // macdef CAIRO_FORMAT_INVALID = $extval (cairo_format_t, "CAIRO_FORMAT_INVALID") macdef CAIRO_FORMAT_ARGB32 = $extval (cairo_format_t, "CAIRO_FORMAT_ARGB32") macdef CAIRO_FORMAT_RGB24 = $extval (cairo_format_t, "CAIRO_FORMAT_RGB24") macdef CAIRO_FORMAT_A8 = $extval (cairo_format_t, "CAIRO_FORMAT_A8") macdef CAIRO_FORMAT_A1 = $extval (cairo_format_t, "CAIRO_FORMAT_A1") macdef CAIRO_FORMAT_RGB16_565 = $extval (cairo_format_t, "CAIRO_FORMAT_RGB16_565") macdef CAIRO_FORMAT_RGB30 = $extval (cairo_format_t, "CAIRO_FORMAT_RGB30") // (* ****** ****** *) // abst@ype cairo_operator_t = $extype"cairo_operator_t" // macdef CAIRO_OPERATOR_CLEAR = $extval (cairo_operator_t, "CAIRO_OPERATOR_CLEAR") macdef CAIRO_OPERATOR_SOURCE = $extval (cairo_operator_t, "CAIRO_OPERATOR_SOURCE") macdef CAIRO_OPERATOR_OVER = $extval (cairo_operator_t, "CAIRO_OPERATOR_OVER") macdef CAIRO_OPERATOR_IN = $extval (cairo_operator_t, "CAIRO_OPERATOR_IN") macdef CAIRO_OPERATOR_OUT = $extval (cairo_operator_t, "CAIRO_OPERATOR_OUT") macdef CAIRO_OPERATOR_ATOP = $extval (cairo_operator_t, "CAIRO_OPERATOR_ATOP") macdef CAIRO_OPERATOR_DEST = $extval (cairo_operator_t, "CAIRO_OPERATOR_DEST") macdef CAIRO_OPERATOR_DEST_OVER = $extval (cairo_operator_t, "CAIRO_OPERATOR_DEST_OVER") macdef CAIRO_OPERATOR_DEST_IN = $extval (cairo_operator_t, "CAIRO_OPERATOR_DEST_IN") macdef CAIRO_OPERATOR_DEST_OUT = $extval (cairo_operator_t, "CAIRO_OPERATOR_DEST_OUT") macdef CAIRO_OPERATOR_DEST_ATOP = $extval (cairo_operator_t, "CAIRO_OPERATOR_DEST_ATOP") macdef CAIRO_OPERATOR_XOR = $extval (cairo_operator_t, "CAIRO_OPERATOR_XOR") macdef CAIRO_OPERATOR_ADD = $extval (cairo_operator_t, "CAIRO_OPERATOR_ADD") macdef CAIRO_OPERATOR_SATURATE = $extval (cairo_operator_t, "CAIRO_OPERATOR_SATURATE") macdef CAIRO_OPERATOR_MULTIPLY = $extval (cairo_operator_t, "CAIRO_OPERATOR_MULTIPLY") macdef CAIRO_OPERATOR_SCREEN = $extval (cairo_operator_t, "CAIRO_OPERATOR_SCREEN") macdef CAIRO_OPERATOR_OVERLAY = $extval (cairo_operator_t, "CAIRO_OPERATOR_OVERLAY") macdef CAIRO_OPERATOR_DARKEN = $extval (cairo_operator_t, "CAIRO_OPERATOR_DARKEN") macdef CAIRO_OPERATOR_LIGHTEN = $extval (cairo_operator_t, "CAIRO_OPERATOR_LIGHTEN") macdef CAIRO_OPERATOR_COLOR_DODGE = $extval (cairo_operator_t, "CAIRO_OPERATOR_COLOR_DODGE") macdef CAIRO_OPERATOR_COLOR_BURN = $extval (cairo_operator_t, "CAIRO_OPERATOR_COLOR_BURN") macdef CAIRO_OPERATOR_HARD_LIGHT = $extval (cairo_operator_t, "CAIRO_OPERATOR_HARD_LIGHT") macdef CAIRO_OPERATOR_SOFT_LIGHT = $extval (cairo_operator_t, "CAIRO_OPERATOR_SOFT_LIGHT") macdef CAIRO_OPERATOR_DIFFERENCE = $extval (cairo_operator_t, "CAIRO_OPERATOR_DIFFERENCE") macdef CAIRO_OPERATOR_EXCLUSION = $extval (cairo_operator_t, "CAIRO_OPERATOR_EXCLUSION") macdef CAIRO_OPERATOR_HSL_HUE = $extval (cairo_operator_t, "CAIRO_OPERATOR_HSL_HUE") macdef CAIRO_OPERATOR_HSL_SATURATION = $extval (cairo_operator_t, "CAIRO_OPERATOR_HSL_SATURATION") macdef CAIRO_OPERATOR_HSL_COLOR = $extval (cairo_operator_t, "CAIRO_OPERATOR_HSL_COLOR") macdef CAIRO_OPERATOR_HSL_LUMINOSIT = $extval (cairo_operator_t, "CAIRO_OPERATOR_HSL_LUMINOSIT") // (* ****** ****** *) // abst@ype cairo_antialias_t = $extype"cairo_antialias_t" // macdef CAIRO_ANTIALIAS_DEFAULT = $extval (cairo_antialias_t, "CAIRO_ANTIALIAS_DEFAULT") macdef CAIRO_ANTIALIAS_NONE = $extval (cairo_antialias_t, "CAIRO_ANTIALIAS_NONE") macdef CAIRO_ANTIALIAS_GRAY = $extval (cairo_antialias_t, "CAIRO_ANTIALIAS_GRAY") macdef CAIRO_ANTIALIAS_SUBPIXEL = $extval (cairo_antialias_t, "CAIRO_ANTIALIAS_SUBPIXEL") macdef CAIRO_ANTIALIAS_FAST = $extval (cairo_antialias_t, "CAIRO_ANTIALIAS_FAST") macdef CAIRO_ANTIALIAS_GOOD = $extval (cairo_antialias_t, "CAIRO_ANTIALIAS_GOOD") macdef CAIRO_ANTIALIAS_BES = $extval (cairo_antialias_t, "CAIRO_ANTIALIAS_BES") // (* ****** ****** *) // abst@ype cairo_fill_rule_t = $extype"cairo_fill_rule_t" // macdef CAIRO_FILL_RULE_WINDING = $extval (cairo_fill_rule_t, "CAIRO_FILL_RULE_WINDING") macdef CAIRO_FILL_RULE_EVEN_ODD = $extval (cairo_fill_rule_t, "CAIRO_FILL_RULE_EVEN_ODD") // (* ****** ****** *) // abst@ype cairo_line_cap_t = $extype"cairo_line_cap_t" // macdef CAIRO_LINE_CAP_BUTT = $extval (cairo_line_cap_t, "CAIRO_LINE_CAP_BUTT") macdef CAIRO_LINE_CAP_ROUND = $extval (cairo_line_cap_t, "CAIRO_LINE_CAP_ROUND") macdef CAIRO_LINE_CAP_SQUARE = $extval (cairo_line_cap_t, "CAIRO_LINE_CAP_SQUARE") // (* ****** ****** *) // abst@ype cairo_line_join_t = $extype"cairo_line_join_t" // macdef CAIRO_LINE_JOIN_MITER = $extval (cairo_line_join_t, "CAIRO_LINE_JOIN_MITER") macdef CAIRO_LINE_JOIN_ROUND = $extval (cairo_line_join_t, "CAIRO_LINE_JOIN_ROUND") macdef CAIRO_LINE_JOIN_BEVEL = $extval (cairo_line_join_t, "CAIRO_LINE_JOIN_BEVEL") // (* ****** ****** *) // abst@ype cairo_font_slant_t = $extype"cairo_font_slant_t" // macdef CAIRO_FONT_SLANT_NORMAL = $extval (cairo_font_slant_t, "CAIRO_FONT_SLANT_NORMAL") macdef CAIRO_FONT_SLANT_ITALIC = $extval (cairo_font_slant_t, "CAIRO_FONT_SLANT_ITALIC") macdef CAIRO_FONT_SLANT_OBLIQUE = $extval (cairo_font_slant_t, "CAIRO_FONT_SLANT_OBLIQUE") // (* ****** ****** *) // abst@ype cairo_font_weight_t = $extype"cairo_font_weight_t" // macdef CAIRO_FONT_WEIGHT_NORMAL = $extval (cairo_font_weight_t, "CAIRO_FONT_WEIGHT_NORMAL") macdef CAIRO_FONT_WEIGHT_BOLD = $extval (cairo_font_weight_t, "CAIRO_FONT_WEIGHT_BOLD") // (* ****** ****** *) // abst@ype cairo_path_data_type_t = $extype"cairo_path_data_type_t" // macdef CAIRO_PATH_MOVE_TO = $extval (cairo_path_data_type_t, "CAIRO_PATH_MOVE_TO") macdef CAIRO_PATH_LINE_TO = $extval (cairo_path_data_type_t, "CAIRO_PATH_LINE_TO") macdef CAIRO_PATH_CURVE_TO = $extval (cairo_path_data_type_t, "CAIRO_PATH_CURVE_TO") macdef CAIRO_PATH_CLOSE_PATH = $extval (cairo_path_data_type_t, "CAIRO_PATH_CLOSE_PATH") // (* ****** ****** *) // abst@ype cairo_font_type_t = $extype"cairo_font_type_t" // macdef CAIRO_FONT_TYPE_TOY = $extval (cairo_font_type_t, "CAIRO_FONT_TYPE_TOY") macdef CAIRO_FONT_TYPE_FT = $extval (cairo_font_type_t, "CAIRO_FONT_TYPE_FT") macdef CAIRO_FONT_TYPE_WIN32 = $extval (cairo_font_type_t, "CAIRO_FONT_TYPE_WIN32") macdef CAIRO_FONT_TYPE_QUARTZ = $extval (cairo_font_type_t, "CAIRO_FONT_TYPE_QUARTZ") macdef CAIRO_FONT_TYPE_USER = $extval (cairo_font_type_t, "CAIRO_FONT_TYPE_USER") // (* ****** ****** *) abst@ype cairo_device_type_t = $extype"cairo_device_type_t" // macdef CAIRO_DEVICE_TYPE_INVALID = $extval(cairo_device_type_t, "CAIRO_DEVICE_TYPE_INVALID") macdef CAIRO_DEVICE_TYPE_DRM = $extval(cairo_device_type_t, "CAIRO_DEVICE_TYPE_DRM") macdef CAIRO_DEVICE_TYPE_GL = $extval(cairo_device_type_t, "CAIRO_DEVICE_TYPE_GL") macdef CAIRO_DEVICE_TYPE_SCRIPT = $extval(cairo_device_type_t, "CAIRO_DEVICE_TYPE_SCRIPT") macdef CAIRO_DEVICE_TYPE_XCB = $extval(cairo_device_type_t, "CAIRO_DEVICE_TYPE_XCB") macdef CAIRO_DEVICE_TYPE_XLIB = $extval(cairo_device_type_t, "CAIRO_DEVICE_TYPE_XLIB") macdef CAIRO_DEVICE_TYPE_XML = $extval(cairo_device_type_t, "CAIRO_DEVICE_TYPE_XML") macdef CAIRO_DEVICE_TYPE_COGL = $extval(cairo_device_type_t, "CAIRO_DEVICE_TYPE_COGL") macdef CAIRO_DEVICE_TYPE_WIN32 = $extval(cairo_device_type_t, "CAIRO_DEVICE_TYPE_WIN32") // (* ****** ****** *) typedef cairo_read_func_t = (voidptr0(*closure*), charptr0(*data*), uint(*length*)) -> cairo_status_t // end of [cairo_wirte_func_t] typedef cairo_write_func_t = (voidptr0(*closure*), constcharptr0(*data*), uint(*length*)) -> cairo_status_t // end of [cairo_wirte_func_t] (* ****** ****** *) typedef cairo_destroy_func_t = ptr(*/void*/*) -> void (* ****** ****** *) abst@ype cairo_user_data_key_t = $extype"cairo_user_data_key_t" (* ****** ****** *) typedef cairo_glyph_t = $extype_struct"cairo_glyph_t" of { index= ulint, x= double, y= double } // end of [cairo_glyph_t] (* ****** ****** *) typedef cairo_text_cluster_t = $extype_struct"cairo_text_cluster_t" of { num_bytes= int, num_glyphs= int } // end of [cairo_text_cluster_t] (* ****** ****** *) typedef cairo_text_extents_t = $extype_struct"cairo_text_extents_t" of { x_bearing= double , y_bearing= double , width= double , height= double , x_advance= double , y_advance= double } // end of [cairo_text_extents_t] (* ****** ****** *) typedef cairo_font_extents_t = $extype_struct"cairo_font_extents_t" of { ascent= double , descent= double , height= double , max_x_advance= double , max_y_advance= double } // end of [cairo_font_extents_t] (* ****** ****** *) abst@ype cairo_path_data_t = $extype"cairo_path_data_t" // HX: union type // end of [abst@ype] typedef cairo_path_t = $extype_struct"cairo_path_t" of { status= cairo_status_t , data= ptr // HX: pointer to cairo_path_data_t[num_data] , num_data= int } // end of [cairo_path_t] (* ****** ****** *) typedef cairo_rectangle_int_t = $extype_struct"cairo_rectangle_int_t" of { x= int, y= int, width= int, height= int } // end of [cairo_rectangle_int_t] (* ****** ****** *) typedef cairo_matrix_t = $extype_struct"cairo_matrix_t" of { xx= double, yx= double , xy= double, yy= double , x0= double, y0= double } // end of [cairo_matrix_t] typedef xrmat = cairo_matrix_t (* ****** ****** *) // // HX: for balancing [cairo_save] and [cairo_restore] // absview cairo_save_v (l:addr) // // HX: for balancing [cairo_push_group] and [cairo_pop_group] // absview cairo_push_group_v (l:addr) (* ****** ****** *) absview cairo_device_acquire_v (l:addr, i:int) praxi cairo_device_acquire_v_free_none {l:addr}{i:int | i > 0} (pf: cairo_device_acquire_v (l, i)): void // end of [cairo_device_acquire_v_free_none] (* ****** ****** *) #endif // end of [CAIRO_CAIRO_HEADER_SATS] (* ****** ****** *) (* end of [cairo_header.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/0000755000175000017500000000000013431250607030436 5ustar brandonbrandon././@LongLink0000644000000000000000000000017000000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-PostScript-Surfaces.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-PostS0000644000175000017500000000522413431250607032527 0ustar brandonbrandon(* ** Start Time: March, 2013 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_surface_t* cairo_ps_surface_create ( const char *filename, double width_in_points, double height_in_points ) ; */ fun cairo_ps_surface_create ( filename: NSH(string) , width_in_points: double, height_in_points: double ) : xrsf1 = "mac#%" fun cairo_ps_surface_create_none (width_in_points: double, height_in_points: double): xrsf1 = "mac#%" // end of [cairo_ps_surface_create_none] (* ****** ****** *) /* cairo_surface_t* cairo_ps_surface_create_for_stream ( cairo_write_func_t write_func, void *closure , double width_in_points, double height_in_points ) ; */ (* ****** ****** *) // abst@ype cairo_ps_level_t = int // macdef CAIRO_PS_LEVEL_2 = $extval (cairo_ps_level_t, "CAIRO_PS_LEVEL_2") macdef CAIRO_PS_LEVEL_3 = $extval (cairo_ps_level_t, "CAIRO_PS_LEVEL_3") // (* ****** ****** *) /* void cairo_ps_surface_restrict_to_level ( cairo_surface_t *surface, cairo_ps_level_t level ) ; */ fun cairo_ps_surface_restrict_to_level (surface: !xrsf1, level: cairo_ps_level_t): void = "mac#%" // (* ****** ****** *) /* void cairo_ps_get_levels ( cairo_ps_level_t const **levels, int *num_levels ) ; */ (* ****** ****** *) /* const char* cairo_ps_level_to_string (cairo_ps_level_t level); */ fun cairo_ps_level_to_string (level: cairo_ps_level_t): string = "mac#%" (* ****** ****** *) /* void cairo_ps_surface_set_eps ( cairo_surface_t *surface, cairo_bool_t eps ) ; */ fun cairo_ps_surface_set_eps (surface: !xrsf1, eps: bool): void = "mac#%" /* cairo_bool_t cairo_ps_surface_get_eps (cairo_surface_t *surface); */ fun cairo_ps_surface_get_eps (surface: !xrsf1): bool = "mac#%" (* ****** ****** *) /* void cairo_ps_surface_set_size ( cairo_surface_t *surface , double width_in_points, double height_in_points ) ; */ fun cairo_ps_surface_set_size ( surface: !xrsf1, width_in_points: double, height_in_points: double ) : void = "mac#%" // end of [cairo_ps_surface_set_size] (* ****** ****** *) /* cairo_public void cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface); */ fun cairo_ps_surface_dsc_begin_setup (surface: !xrsf1): void = "mac#%" (* ****** ****** *) /* cairo_public void cairo_ps_surface_dsc_begin_page_setup (cairo_surface_t *surface); */ fun cairo_ps_surface_dsc_begin_page_setup (surface: !xrsf1): void = "mac#%" (* ****** ****** *) /* void cairo_ps_surface_dsc_comment ( cairo_surface_t *surface, const char *comment ) ; */ fun cairo_ps_surface_dsc_comment (surface: !xrsf1, comment: NSH(string)): void = "mac#%" // (* ****** ****** *) (* end of [cairo-PostScript-Surfaces.sats] *) ././@LongLink0000644000000000000000000000016100000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-PDF-Surfaces.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-PDF-S0000644000175000017500000000353713431250607032275 0ustar brandonbrandon(* ** Start Time: March, 2013 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_surface_t* cairo_pdf_surface_create ( const char *filename, double width_in_points, double height_in_points ) ; */ fun cairo_pdf_surface_create ( filename: NSH(string) , width_in_points: double, height_in_points: double ) : xrsf1 = "mac#%" fun cairo_pdf_surface_create_none (width_in_points: double, height_in_points: double): xrsf1 = "mac#%" // end of [cairo_pdf_surface_create_none] (* ****** ****** *) /* cairo_surface_t* cairo_pdf_surface_create_for_stream ( cairo_write_func_t write_func, void *closure, double width_in_points, double height_in_points ) ; */ (* ****** ****** *) // abst@ype cairo_pdf_version_t = int // macdef CAIRO_PDF_VERSION_1_4 = $extval (cairo_pdf_version_t, "CAIRO_PDF_VERSION_1_4") macdef CAIRO_PDF_VERSION_1_5 = $extval (cairo_pdf_version_t, "CAIRO_PDF_VERSION_1_5") // (* ****** ****** *) /* void cairo_pdf_surface_restrict_to_version ( cairo_surface_t *surface, cairo_pdf_version_t version ) ; */ fun cairo_pdf_surface_restrict_to_version (surface: !xrsf1, version: cairo_pdf_version_t): void = "mac#%" // (* ****** ****** *) /* void cairo_pdf_get_versions ( cairo_pdf_version_t const **versions, int *num_versions ) ; */ (* ****** ****** *) /* const char* cairo_pdf_version_to_string (cairo_pdf_version_t version); */ fun cairo_pdf_version_to_string (version: cairo_pdf_version_t): string = "mac#%" // (* ****** ****** *) /* void cairo_pdf_surface_set_size ( cairo_surface_t *surface, double width_in_points, double height_in_points ) ; */ fun cairo_pdf_surface_set_size ( surface: !xrsf1, width_in_points: double, height_in_points: double ) : void = "mac#%" // end of [cairo_pdf_surface_set_size] (* ****** ****** *) (* end of [cairo-PDF-Surfaces.sats] *) ././@LongLink0000644000000000000000000000016400000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-cairo-surface-t.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-cairo0000644000175000017500000001350513431250607032555 0ustar brandonbrandon(* ** Start Time: September, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_surface_t * cairo_surface_create_similar (cairo_surface_t *other, cairo_content_t content, int width, int height); cairo_surface_t * cairo_surface_create_similar_image (cairo_surface_t *other, cairo_format_t format, int width, int height); cairo_surface_t * cairo_surface_create_for_rectangle (cairo_surface_t *target, double x, double y, double width, double height); */ (* ****** ****** *) /* cairo_surface_t * cairo_surface_reference (cairo_surface_t *surface); */ fun cairo_surface_reference {l:agz} (x: !xrsf(l)): xrsf(l) = "mac#%" // endfun /* void cairo_surface_destroy (cairo_surface_t *surface); */ fun cairo_surface_destroy (x: xrsf1): void = "mac#%" (* ****** ****** *) /* cairo_status_t cairo_surface_status (cairo_surface_t *surface); void cairo_surface_finish (cairo_surface_t *surface); void cairo_surface_flush (cairo_surface_t *surface); cairo_device_t * cairo_surface_get_device (cairo_surface_t *surface); void cairo_surface_get_font_options (cairo_surface_t *surface, cairo_font_options_t *options); cairo_content_t cairo_surface_get_content (cairo_surface_t *surface); void cairo_surface_mark_dirty (cairo_surface_t *surface); void cairo_surface_mark_dirty_rectangle (cairo_surface_t *surface, int x, int y, int width, int height); void cairo_surface_set_device_offset (cairo_surface_t *surface, double x_offset, double y_offset); void cairo_surface_get_device_offset (cairo_surface_t *surface, double *x_offset, double *y_offset); void cairo_surface_set_fallback_resolution (cairo_surface_t *surface, double x_pixels_per_inch, double y_pixels_per_inch); void cairo_surface_get_fallback_resolution (cairo_surface_t *surface, double *x_pixels_per_inch, double *y_pixels_per_inch); enum cairo_surface_type_t; cairo_surface_type_t cairo_surface_get_type (cairo_surface_t *surface); unsigned int cairo_surface_get_reference_count (cairo_surface_t *surface); cairo_status_t cairo_surface_set_user_data (cairo_surface_t *surface, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); void * cairo_surface_get_user_data (cairo_surface_t *surface, const cairo_user_data_key_t *key); void cairo_surface_copy_page (cairo_surface_t *surface); void cairo_surface_show_page (cairo_surface_t *surface); cairo_bool_t cairo_surface_has_show_text_glyphs (cairo_surface_t *surface); cairo_status_t cairo_surface_set_mime_data (cairo_surface_t *surface, const char *mime_type, const unsigned char *data, unsigned long length, cairo_destroy_func_t destroy, void *closure); void cairo_surface_get_mime_data (cairo_surface_t *surface, const char *mime_type, const unsigned char **data, unsigned long *length); cairo_bool_t cairo_surface_supports_mime_type (cairo_surface_t *surface, const char *mime_type); cairo_surface_t * cairo_surface_map_to_image (cairo_surface_t *surface, const cairo_rectangle_int_t *extents); void cairo_surface_unmap_image (cairo_surface_t *surface, cairo_surface_t *image) */ (* ****** ****** *) (* end of [cairo-cairo-surface-t.sats] *) ././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-cairo-device-t.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-cairo0000644000175000017500000000467313431250607032563 0ustar brandonbrandon(* ** Start Time: September, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_device_t * cairo_device_reference (cairo_device_t *device); */ fun cairo_device_reference {l:agz} (dev: !xrdev (l)) : xrdev (l) = "mac#%" // end of [cairo_device_reference] /* void cairo_device_destroy (cairo_device_t *device); */ fun cairo_device_destroy (dev: xrdev1): void = "mac#%" (* ****** ****** *) /* cairo_status_t cairo_device_status (cairo_device_t *device); */ fun cairo_device_status (dev: !xrdev1): cairo_status_t = "mac#%" (* ****** ****** *) /* void cairo_device_finish (cairo_device_t *device); */ fun cairo_device_finish (dev: !xrdev1): void = "mac#%" /* void cairo_device_flush (cairo_device_t *device); */ fun cairo_device_flush (dev: !xrdev1): void = "mac#%" (* ****** ****** *) /* cairo_device_type_t cairo_device_get_type (cairo_device_t *device); */ fun cairo_device_get_type {l:agz} (dev: !xrdev (l)) : cairo_device_type_t = "mac#%" // end of [cairo_device_get_type] (* ****** ****** *) /* unsigned int cairo_device_get_reference_count (cairo_device_t *device); */ fun cairo_device_get_reference_count (dev: xrdev1) : uint = "mac#%" // endfun (* ****** ****** *) /* cairo_status_t cairo_device_set_user_data (cairo_device_t *device, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); */ /* void * cairo_device_get_user_data (cairo_device_t *device, const cairo_user_data_key_t *key); */ (* ****** ****** *) /* cairo_status_t cairo_device_acquire (cairo_device_t *device); */ fun cairo_device_acquire {l:agz} ( dev: !xrdev (l) ) : [i:nat] ( // // HX: i=0/i>0 : succ/fail // cairo_device_acquire_v (l, i) | int i ) = "mac#%" // endfun /* void cairo_device_release (cairo_device_t *device); */ fun cairo_device_release {l:agz} ( pf: cairo_device_acquire_v (l, 0) | dev: !xrdev (l) ) : void = "mac#%" // endfun (* ****** ****** *) (* end of [cairo-cairo-device-t.sats] *) ././@LongLink0000644000000000000000000000016000000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-PNG-Support.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-PNG-S0000644000175000017500000000221113431250607032274 0ustar brandonbrandon(* ** Start Time: September, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_surface_t* cairo_image_surface_create_from_png (const char *filename); */ fun cairo_image_surface_create_from_png (filename: string): xrsf1 = "mac#%" (* ****** ****** *) /* cairo_status_t (*cairo_read_func_t) ( void *closure, unsigned char *data, unsigned int length ) ; cairo_surface_t* cairo_image_surface_create_from_png_stream ( cairo_read_func_t read_func, void *closure ) ; */ (* ****** ****** *) /* cairo_status_t cairo_surface_write_to_png ( cairo_surface_t *surface, const char *filename ) ; */ fun cairo_surface_write_to_png (xrsf: !xrsf1, filename: string): cairo_status_t = "mac#%" // end of [cairo_surface_write_to_png] (* ****** ****** *) /* cairo_status_ (*cairo_write_func_t) ( void *closure, const unsigned char *data, unsigned int length ) ; */ (* ****** ****** *) /* cairo_status_t cairo_surface_write_to_png_stream ( cairo_surface_t *surface, cairo_write_func_t write_func, void *closure ) ; */ (* ****** ****** *) (* end of [cairo-PNG-Support.sats] *) ././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-Image-Surfaces.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Surfaces/cairo-Image0000644000175000017500000000376613431250607032512 0ustar brandonbrandon(* ** Start Time: September, 2012 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* int cairo_format_stride_for_width (cairo_format_t format, int width); */ fun cairo_format_stride_for_width (format: cairo_format_t, width: int): int = "mac#%" // end of [cairo_format_stride_for_width] (* ****** ****** *) /* cairo_surface_t * cairo_image_surface_create (cairo_format_t format, int width, int height); */ fun cairo_image_surface_create (format: cairo_format_t, width: int, height: int): xrsf1 = "mac#%" // end of [cairo_image_surface_create] (* ****** ****** *) /* cairo_surface_t * cairo_image_surface_create_for_data (unsigned char *data, cairo_format_t format, int width, int height, int stride); */ /* unsigned char * cairo_image_surface_get_data (cairo_surface_t *surface); */ (* ****** ****** *) /* cairo_format_t cairo_image_surface_get_format (cairo_surface_t *surface); */ fun cairo_image_surface_get_format (xrsf: !xrsf1): cairo_format_t = "mac#%" /* int cairo_image_surface_get_width (cairo_surface_t *surface); */ fun cairo_image_surface_get_width (xrsf: !xrsf1): int = "mac#%" /* int cairo_image_surface_get_height (cairo_surface_t *surface); */ fun cairo_image_surface_get_height (xrsf: !xrsf1): int = "mac#%" /* int cairo_image_surface_get_stride (cairo_surface_t *surface); */ fun cairo_image_surface_get_stride (xrsf: !xrsf1): int = "mac#%" (* ****** ****** *) (* end of [cairo-Image-Surfaces.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/0000755000175000017500000000000013431250607030256 5ustar brandonbrandon././@LongLink0000644000000000000000000000015300000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-cairo-t.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-cairo-0000644000175000017500000002406113431250607032451 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: September, 2012 *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_t *cairo_create (cairo_surface_t *target); */ fun cairo_create (target: !xrsf1): xr1 = "mac#%" /* cairo_t *cairo_reference (cairo_t *cr); */ fun cairo_reference {l:agz} (x: !xr l): xr (l) = "mac#%" /* void cairo_destroy (cairo_t *cr); */ fun cairo_destroy (x: xr1): void = "mac#%" (* ****** ****** *) /* cairo_status_t cairo_status (cairo_t *cr); */ fun cairo_status (ctx: !xr1): cairo_status_t = "mac#%" (* ****** ****** *) /* void cairo_save (cairo_t *cr); */ fun cairo_save {l:agz} (ctx: !xr l): (cairo_save_v l | void) = "mac#%" // end of [cairo_save] /* void cairo_restore (cairo_t *cr); */ fun cairo_restore {l:agz} (pf: cairo_save_v l | ctx: !xr l): void = "mac#%" // end of [cairo_restore] (* ****** ****** *) /* cairo_surface_t *cairo_get_target (cairo_t *cr); */ fun cairo_get_target {l1:agz} (ctx: !xr l1): [l2:agz] vtget1(xr(l1), xrsf(l2)) = "mac#%" // end of [cairo_get_target] fun cairo_get1_target (ctx: !xr1): xrsf1 = "ext#%" // for convenience (* ****** ****** *) /* void cairo_push_group (cairo_t *cr); */ fun cairo_push_group {l:agz} (ctx: !xr l): (cairo_push_group_v l | void) = "mac#%" // end of [cairo_push_group] /* void cairo_push_group_with_content ( cairo_t *cr, cairo_content_t content ) ; */ fun cairo_push_group_with_content {l:agz} (ctx: !xr l, content: cairo_content_t): (cairo_push_group_v l | void) = "mac#%" // end of [cairo_push_group_with_content] (* ****** ****** *) /* cairo_pattern_t *cairo_pop_group (cairo_t *cr); */ fun cairo_pop_group {l:agz} (pf: cairo_push_group_v l | ctx: !xr l): void = "mac#%" // end of [cairo_pop_group] /* void cairo_pop_group_to_source (cairo_t *cr); */ fun cairo_pop_group_to_source {l:agz} (pf: cairo_push_group_v l | ctx: !xr l): void = "mac#%" // end of [cairo_pop_group_to_source] (* ****** ****** *) /* cairo_surface_t *cairo_get_group_target (cairo_t *cr); */ fun cairo_get0_group_target {l1:agz} (ctx: !xr l1): [l2:agz] vtget1(xr(l1), xrsf(l2)) = "mac#%" // end of [cairo_get0_group_target] fun cairo_get1_group_target (ctx: !xr1): xrsf1 = "ext#%" // for convenience (* ****** ****** *) /* void cairo_set_source_rgb ( cairo_t *cr,double red,double green,double blue ) ; */ fun cairo_set_source_rgb ( ctx: !xr1, r: double, g: double, b: double ) : void = "mac#%" // endfun fun cairo_set_source_rgb_arr {n:int|n >= 3} (ctx: !xr1, rgb: &(@[double][n])): void // for convenience fun cairo_set_source_rgb_vec (ctx: !xr1, rgb: &rgb): void // for convenience (* ****** ****** *) /* void cairo_set_source_rgba ( cairo_t *cr, double red, double green, double blue, double alpha ) ; */ fun cairo_set_source_rgba ( ctx: !xr1, r: double, g: double, b: double, alpha: double ) : void = "mac#%" // endfun fun cairo_set_source_rgba_arr {n:int|n >= 4} (ctx: !xr1, rgb: &(@[double][n])): void // for convenience fun cairo_set_source_rgba_vec (ctx: !xr1, rgba: &rgba): void // for convenience (* ****** ****** *) /* void cairo_set_source ( cairo_t *cr, cairo_pattern_t *source ) ; */ fun cairo_set_source (ctx: !xr1, src: !xrpat1): void = "mac#%" (* ****** ****** *) /* void cairo_set_source_surface ( cairo_t *cr, cairo_surface_t *surface, double x, double y ) ; */ fun cairo_set_source_surface (ctx: !xr1, xrsf: !xrsf1, x: double, y: double): void = "mac#%" // end of [cairo_set_source_surface] /* cairo_pattern_t *cairo_get_source (cairo_t *cr); */ fun cairo_get_source {l1:agz} ( ctx: !xr l1 ) : [l2:agz] vtget1(xr(l1), xrpat(l2)) = "mac#%" // end of [cairo_get_source] fun cairo_get1_source (ctx: !xr1): xrpat1 = "ext#%" // for convenience (* ****** ****** *) /* void cairo_set_antialias ( cairo_t *cr, cairo_antialias_t antialias ) ; */ fun cairo_set_antialias ( ctx: !xr1, aa: cairo_antialias_t ) : void = "mac#%" // endfun /* cairo_antialias_t cairo_get_antialias (cairo_t *cr); */ fun cairo_get_antialias (ctx: !xr1): cairo_antialias_t = "mac#%" (* ****** ****** *) /* void cairo_set_dash ( cairo_t *cr, const double *dashes, int num_dashes, double offset ) ; */ fun cairo_set_dash ( ctx: !xr1, dashes: &double, ndashes: int, offset: double ) : void = "mac#%" // end of [cairo_set_dash] /* int cairo_get_dash_count (cairo_t *cr); */ fun cairo_get_dash_count (ctx: !xr1): int = "mac#%" (* ****** ****** *) /* void cairo_get_dash ( cairo_t *cr, double *dashes, double *offset ) ; */ (* ****** ****** *) /* void cairo_set_fill_rule ( cairo_t *cr, cairo_fill_rule_t fill_rule ) ; */ fun cairo_set_fill_rule (ctx: !xr1, fr: cairo_fill_rule_t): void = "mac#%" // end of [cairo_set_fill_rule] /* cairo_fill_rule_t cairo_get_fill_rule (cairo_t *cr); */ fun cairo_get_fill_rule (ctx: !xr1): cairo_fill_rule_t = "mac#%" (* ****** ****** *) /* void cairo_set_line_cap (cairo_t *cr, cairo_line_cap_t line_cap); */ fun cairo_set_line_cap (ctx: !xr1, lc: cairo_line_cap_t): void = "mac#%" // end of [cairo_set_line_cap] /* cairo_line_cap_t cairo_get_line_cap (cairo_t *cr); */ fun cairo_get_line_cap (ctx: !xr1): cairo_line_cap_t = "mac#%" (* ****** ****** *) /* void cairo_set_line_join ( cairo_t *cr, cairo_line_join_t line_join ) ; */ fun cairo_set_line_join (ctx: !xr1, lj: cairo_line_join_t): void = "mac#%" // end of [cairo_set_line_join] /* cairo_line_join_t cairo_get_line_join (cairo_t *cr); */ fun cairo_get_line_join (ctx: !xr1): cairo_line_join_t = "mac#%" (* ****** ****** *) /* void cairo_set_line_width ( cairo_t *cr, double width ) ; */ fun cairo_set_line_width (ctx: !xr1, width: double): void = "mac#%" // end of [cairo_set_line_width] /* double cairo_get_line_width (cairo_t *cr); */ fun cairo_get_line_width (ctx: !xr1): double = "mac#%" (* ****** ****** *) /* void cairo_set_miter_limit ( cairo_t *cr, double limit ) ; */ fun cairo_set_miter_limit (ctx: !xr1, limit: double): void = "mac#%" // end of [cairo_set_miter_limit] /* double cairo_get_miter_limit (cairo_t *cr); */ (* double cairo_get_miter_limit (cairo_t *cr); *) fun cairo_get_miter_limit (ctx: !xr1): double = "mac#%" (* ****** ****** *) /* void cairo_set_operator ( cairo_t *cr, cairo_operator_t op ) ; */ fun cairo_set_operator (ctx: !xr1, opr: cairo_operator_t): void = "mac#%" // end of [cairo_set_operator] /* cairo_operator_t cairo_get_operator (cairo_t *cr); */ fun cairo_get_operator (ctx: !xr1): cairo_operator_t = "mac#%" (* ****** ****** *) /* void cairo_set_tolerance ( cairo_t *cr, double tolerance ) ; */ fun cairo_set_tolerance (ctx: !xr1, tolerance: double): void = "mac#%" // end of [cairo_set_tolerance] /* double cairo_get_tolerance (cairo_t *cr); */ fun cairo_get_tolerance (ctx: !xr1): double = "mac#%" (* ****** ****** *) /* void cairo_clip (cairo_t *cr); */ fun cairo_clip (ctx: !xr1): void = "mac#%" /* void cairo_clip_preserve (cairo_t *cr); */ fun cairo_clip_preserve (ctx: !xr1): void = "mac#%" /* void cairo_clip_extents ( cairo_t *cr, double *x1, double *y1, double *x2, double *y2 ) ; */ fun cairo_clip_extents ( ctx: !xr1 , x1: &double? >> double , y1: &double? >> double , x2: &double? >> double , y2: &double? >> double ) : void = "mac#%" // endfun /* cairo_bool_t cairo_in_clip (cairo_t *cr, double x, double y); */ fun cairo_in_clip (ctx: !xr1): bool = "mac#%" /* void cairo_reset_clip (cairo_t *cr); */ fun cairo_reset_clip (ctx: !xr1): void = "mac#%" (* ****** ****** *) /* void cairo_rectangle_list_destroy (cairo_rectangle_list_t *rectangle_list); */ /* cairo_rectangle_list_t * cairo_copy_clip_rectangle_list (cairo_t *cr); */ (* ****** ****** *) /* void cairo_fill (cairo_t *cr); */ fun cairo_fill (ctx: !xr1): void = "mac#%" /* void cairo_fill_preserve (cairo_t *cr); */ fun cairo_fill_preserve (ctx: !xr1): void = "mac#%" /* void cairo_fill_extents ( cairo_t *cr, double *x1, double *y1, double *x2, double *y2 ) ; */ fun cairo_fill_extents ( ctx: !xr1 , x1: &double? >> double , y1: &double? >> double , x2: &double? >> double , y2: &double? >> double ) : void = "mac#%" // endfun /* cairo_bool_t cairo_in_fill (cairo_t *cr, double x, double y); */ fun cairo_in_fill (ctx: !xr1): bool = "mac#%" (* ****** ****** *) /* void cairo_mask ( cairo_t *cr, cairo_pattern_t *pattern ) ; */ /* void cairo_mask_surface ( cairo_t *cr, cairo_surface_t *surface, double surface_x, double surface_y ) ; */ (* ****** ****** *) /* void cairo_paint (cairo_t *cr); */ fun cairo_paint (ctx: !xr1): void = "mac#%" /* void cairo_paint_with_alpha ( cairo_t *cr, double alpha ) ; */ fun cairo_paint_with_alpha (ctx: !xr1, alpha: double): void = "mac#%" // end of [cairo_paint_with_alpha] (* ****** ****** *) /* void cairo_stroke (cairo_t *cr); */ fun cairo_stroke (ctx: !xr1): void = "mac#%" /* void cairo_stroke_preserve (cairo_t *cr); */ fun cairo_stroke_preserve (ctx: !xr1): void = "mac#%" /* void cairo_stroke_extents ( cairo_t *cr, double *x1, double *y1, double *x2, double *y2 ) ; */ fun cairo_stroke_extents ( ctx: !xr1 , x1: &double? >> double , y1: &double? >> double , x2: &double? >> double , y2: &double? >> double ) : void = "mac#%" // endfun /* cairo_bool_t cairo_in_stroke ( cairo_t *cr, double x, double y ) ; */ fun cairo_in_stroke (ctx: !xr1): bool = "mac#%" (* ****** ****** *) /* void cairo_copy_page (cairo_t *cr); */ fun cairo_copy_page (ctx: !xr1): void = "mac#%" /* void cairo_show_page (cairo_t *cr); */ fun cairo_show_page (ctx: !xr1): void = "mac#%" (* ****** ****** *) /* unsigned int cairo_get_reference_count (cairo_t *cr); */ fun cairo_get_reference_count (ctx: !xr1): uint = "mac#%" (* ****** ****** *) /* cairo_status_t cairo_set_user_data ( cairo_t *cr, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy ) ; */ fun cairo_set_user_data ( ctx: !xr1 , key: &cairo_user_data_key_t , data: ptr , fdestroy: cairo_destroy_func_t ) : cairo_status_t = "mac#%" /* void *cairo_get_user_data ( cairo_t *cr, const cairo_user_data_key_t *key ) ; */ fun cairo_get_user_data ( ctx: !xr1 , key: &cairo_user_data_key_t ) : ptr(*dataptr*) = "mac#%" (* ****** ****** *) (* end of [cairo-cairo-t.sats] *) ././@LongLink0000644000000000000000000000015300000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-Regions.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-Region0000644000175000017500000000725413431250607032527 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: September, 2012 *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* typedef cairo_region_t; cairo_region_t * cairo_region_create (void); cairo_region_t * cairo_region_create_rectangle (const cairo_rectangle_int_t *rectangle); cairo_region_t * cairo_region_create_rectangles (const cairo_rectangle_int_t *rects, int count); cairo_region_t * cairo_region_copy (const cairo_region_t *original); cairo_region_t * cairo_region_reference (cairo_region_t *region); void cairo_region_destroy (cairo_region_t *region); cairo_status_t cairo_region_status (const cairo_region_t *region); void cairo_region_get_extents (const cairo_region_t *region, cairo_rectangle_int_t *extents); int cairo_region_num_rectangles (const cairo_region_t *region); void cairo_region_get_rectangle (const cairo_region_t *region, int nth, cairo_rectangle_int_t *rectangle); cairo_bool_t cairo_region_is_empty (const cairo_region_t *region); cairo_bool_t cairo_region_contains_point (const cairo_region_t *region, int x, int y); enum cairo_region_overlap_t; cairo_region_overlap_t cairo_region_contains_rectangle (const cairo_region_t *region, const cairo_rectangle_int_t *rectangle); cairo_bool_t cairo_region_equal (const cairo_region_t *a, const cairo_region_t *b); void cairo_region_translate (cairo_region_t *region, int dx, int dy); cairo_status_t cairo_region_intersect (cairo_region_t *dst, const cairo_region_t *other); cairo_status_t cairo_region_intersect_rectangle (cairo_region_t *dst, const cairo_rectangle_int_t *rectangle); cairo_status_t cairo_region_subtract (cairo_region_t *dst, const cairo_region_t *other); cairo_status_t cairo_region_subtract_rectangle (cairo_region_t *dst, const cairo_rectangle_int_t *rectangle); cairo_status_t cairo_region_union (cairo_region_t *dst, const cairo_region_t *other); cairo_status_t cairo_region_union_rectangle (cairo_region_t *dst, const cairo_rectangle_int_t *rectangle); cairo_status_t cairo_region_xor (cairo_region_t *dst, const cairo_region_t *other); cairo_status_t cairo_region_xor_rectangle (cairo_region_t *dst, const cairo_rectangle_int_t *rectangle); */ (* ****** ****** *) (* end of [cairo-Regions.sats] *) ././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-cairo-pattern-t.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-cairo-0000644000175000017500000002443513431250607032456 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: September, 2012 *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* void cairo_pattern_add_color_stop_rgb (cairo_pattern_t *pattern, double offset, double red, double green, double blue); void cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern, double offset, double red, double green, double blue, double alpha); cairo_status_t cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern, int *count); cairo_status_t cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern, int index, double *offset, double *red, double *green, double *blue, double *alpha); cairo_pattern_t * cairo_pattern_create_rgb (double red, double green, double blue); cairo_pattern_t * cairo_pattern_create_rgba (double red, double green, double blue, double alpha); cairo_status_t cairo_pattern_get_rgba (cairo_pattern_t *pattern, double *red, double *green, double *blue, double *alpha); cairo_pattern_t * cairo_pattern_create_for_surface (cairo_surface_t *surface); cairo_status_t cairo_pattern_get_surface (cairo_pattern_t *pattern, cairo_surface_t **surface); cairo_pattern_t * cairo_pattern_create_linear (double x0, double y0, double x1, double y1); cairo_status_t cairo_pattern_get_linear_points (cairo_pattern_t *pattern, double *x0, double *y0, double *x1, double *y1); cairo_pattern_t * cairo_pattern_create_radial (double cx0, double cy0, double radius0, double cx1, double cy1, double radius1); cairo_status_t cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, double *x0, double *y0, double *r0, double *x1, double *y1, double *r1); cairo_pattern_t * cairo_pattern_create_mesh (void); void cairo_mesh_pattern_begin_patch (cairo_pattern_t *pattern); void cairo_mesh_pattern_end_patch (cairo_pattern_t *pattern); void cairo_mesh_pattern_move_to (cairo_pattern_t *pattern, double x, double y); void cairo_mesh_pattern_line_to (cairo_pattern_t *pattern, double x, double y); void cairo_mesh_pattern_curve_to (cairo_pattern_t *pattern, double x1, double y1, double x2, double y2, double x3, double y3); void cairo_mesh_pattern_set_control_point (cairo_pattern_t *pattern, unsigned int point_num, double x, double y); void cairo_mesh_pattern_set_corner_color_rgb (cairo_pattern_t *pattern, unsigned int corner_num, double red, double green, double blue); void cairo_mesh_pattern_set_corner_color_rgba (cairo_pattern_t *pattern, unsigned int corner_num, double red, double green, double blue, double alpha); cairo_status_t cairo_mesh_pattern_get_patch_count (cairo_pattern_t *pattern, unsigned int *count); cairo_path_t * cairo_mesh_pattern_get_path (cairo_pattern_t *pattern, unsigned int patch_num); cairo_status_t cairo_mesh_pattern_get_control_point (cairo_pattern_t *pattern, unsigned int patch_num, unsigned int point_num, double *x, double *y); cairo_status_t cairo_mesh_pattern_get_corner_color_rgba (cairo_pattern_t *pattern, unsigned int patch_num, unsigned int corner_num, double *red, double *green, double *blue, double *alpha); */ (* ****** ****** *) /* cairo_pattern_t * cairo_pattern_reference (cairo_pattern_t *pattern); */ fun cairo_pattern_reference {l:agz} (x: !xrpat (l)): xrpat (l) = "mac#%" /* void cairo_pattern_destroy (cairo_pattern_t *pattern); */ fun cairo_pattern_destroy (x: xrpat1): void = "mac#%" // end of [cairo_pattern_destroy] // (* ****** ****** *) /* cairo_status_t cairo_pattern_status (cairo_pattern_t *pattern); enum cairo_extend_t; void cairo_pattern_set_extend (cairo_pattern_t *pattern, cairo_extend_t extend); cairo_extend_t cairo_pattern_get_extend (cairo_pattern_t *pattern); enum cairo_filter_t; void cairo_pattern_set_filter (cairo_pattern_t *pattern, cairo_filter_t filter); cairo_filter_t cairo_pattern_get_filter (cairo_pattern_t *pattern); void cairo_pattern_set_matrix (cairo_pattern_t *pattern, const cairo_matrix_t *matrix); void cairo_pattern_get_matrix (cairo_pattern_t *pattern, cairo_matrix_t *matrix); enum cairo_pattern_type_t; cairo_pattern_type_t cairo_pattern_get_type (cairo_pattern_t *pattern); */ (* ****** ****** *) /* unsigned int cairo_pattern_get_reference_count (cairo_pattern_t *pattern); */ (* ****** ****** *) /* cairo_status_t cairo_pattern_set_user_data (cairo_pattern_t *pattern, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); void * cairo_pattern_get_user_data (cairo_pattern_t *pattern, const cairo_user_data_key_t *key); */ (* ****** ****** *) (* end of [cairo-cairo-pattern-t.sats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-Paths.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-Paths.0000644000175000017500000000742013431250607032434 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: September, 2012 *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_path_t*cairo_copy_path (cairo_t *cr); */ /* cairo_path_t*cairo_copy_path_flat (cairo_t *cr); */ /* void cairo_path_destroy (cairo_path_t *path); */ /* void cairo_append_path ( cairo_t *cr, const cairo_path_t *path ) ; */ (* ****** ****** *) /* cairo_bool_t cairo_has_current_point (cairo_t *cr); */ fun cairo_has_current_point (ctx: !xr1): bool = "mac#%" /* void cairo_get_current_point ( cairo_t *cr, double *x, double *y ) ; */ fun cairo_get_current_point ( ctx: !xr1, x: &double? >> double, y: &double? >> double ) : void = "mac#%" // end of [cairo_get_current_point] (* ****** ****** *) /* void cairo_new_path (cairo_t *cr); */ fun cairo_new_path (ctx: !xr1): void = "mac#%" /* void cairo_new_sub_path (cairo_t *cr); */ fun cairo_new_sub_path (ctx: !xr1): void = "mac#%" (* ****** ****** *) /* void cairo_close_path (cairo_t *cr); */ fun cairo_close_path (ctx: !xr1): void = "mac#%" // endfun (* ****** ****** *) /* void cairo_arc ( cairo_t *cr, double xc, double yc, double radius, double angle1, double angle2 ) ; */ fun cairo_arc ( ctx: !xr1 , xc: double, yc: double, rad: double, angl1: double, angl2: double ) : void = "mac#%" // end of [cairo_arc] /* void cairo_arc_negative ( cairo_t *cr, double xc, double yc, double radius, double angle1, double angle2 ) ; */ fun cairo_arc_negative ( ctx: !xr1 , xc: double, yc: double, rad: double, angl1: double, angl2: double ) : void = "mac#%" // end of [cairo_arc_negative] (* ****** ****** *) /* void cairo_curve_to ( cairo_t *cr, double x1, double y1, double x2, double y2, double x3, double y3 ) ; */ fun cairo_curve_to ( ctx: !xr1 , x1: double, y1: double, x2: double, y2: double, x3: double, y3: double ) : void = "mac#%" // end of [cairo_curve_to] (* ****** ****** *) /* void cairo_line_to ( cairo_t *cr, double x, double y ) ; */ fun cairo_line_to (ctx: !xr1, x: double, y: double): void = "mac#%" // end of [cairo_line_to] /* void cairo_move_to ( cairo_t *cr, double x, double y ) ; */ fun cairo_move_to (ctx: !xr1, x: double, y: double): void = "mac#%" // end of [cairo_move_to] (* ****** ****** *) /* void cairo_rectangle ( cairo_t *cr, double x, double y, double width, double height ) ; */ fun cairo_rectangle ( ctx: !xr1, x: double, y: double, width: double, height: double ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_glyph_path ( cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs ) ; */ fun cairo_glyph_path {n:int} ( ctx: !xr1, glyphs: arrayref (cairo_glyph_t, n), n: int n ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_text_path ( cairo_t *cr, const char *utf8 ) ; */ fun cairo_text_path (ctx: !xr1, utf8: string): void = "mac#%" (* ****** ****** *) /* void cairo_rel_curve_to ( cairo_t *cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3 ) ; */ fun cairo_rel_curve_to ( ctx: !xr1 , dx1: double, dy1: double , dx2: double, dy2: double , dx3: double, dy3: double ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_rel_line_to ( cairo_t *cr, double dx, double dy ) ; */ fun cairo_rel_line_to (ctx: !xr1, dx: double, dy: double): void = "mac#%" // end of [cairo_rel_line_to] /* void cairo_rel_move_to ( cairo_t *cr, double dx, double dy ) ; */ fun cairo_rel_move_to (ctx: !xr1, dx: double, dy: double): void = "mac#%" // end of [cairo_rel_move_to] (* ****** ****** *) /* void cairo_path_extents ( cairo_t *cr, double *x1, double *y1, double *x2, double *y2 ) ; */ fun cairo_path_extents ( ctx: !xr1 , x1: &double? >> double , y1: &double? >> double , x2: &double? >> double , y2: &double? >> double ) : void = "mac#%" // endfun (* ****** ****** *) (* end of [cairo-Paths.sats] *) ././@LongLink0000644000000000000000000000016200000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-Raster-Sources.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-Raster0000644000175000017500000001374713431250607032550 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: September, 2012 *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_pattern_t * cairo_pattern_create_raster_source (void *user_data, cairo_content_t content, int width, int height); void cairo_raster_source_pattern_set_callback_data (cairo_pattern_t *pattern, void *data); void * cairo_raster_source_pattern_get_callback_data (cairo_pattern_t *pattern); void cairo_raster_source_pattern_set_acquire (cairo_pattern_t *pattern, cairo_raster_source_acquire_func_t acquire, cairo_raster_source_release_func_t release); void cairo_raster_source_pattern_get_acquire (cairo_pattern_t *pattern, cairo_raster_source_acquire_func_t *acquire, cairo_raster_source_release_func_t *release); void cairo_raster_source_pattern_set_snapshot (cairo_pattern_t *pattern, cairo_raster_source_snapshot_func_t snapshot); cairo_raster_source_snapshot_func_t cairo_raster_source_pattern_get_snapshot (cairo_pattern_t *pattern); void cairo_raster_source_pattern_set_copy (cairo_pattern_t *pattern, cairo_raster_source_copy_func_t copy); cairo_raster_source_copy_func_t cairo_raster_source_pattern_get_copy (cairo_pattern_t *pattern); void cairo_raster_source_pattern_set_finish (cairo_pattern_t *pattern, cairo_raster_source_finish_func_t finish); cairo_raster_source_finish_func_t cairo_raster_source_pattern_get_finish (cairo_pattern_t *pattern); cairo_surface_t (*cairo_raster_source_acquire_func_t) (cairo_pattern_t *pattern, void *callback_data, cairo_surface_t *target, const cairo_rectangle_int_t *extents); void (*cairo_raster_source_release_func_t) (cairo_pattern_t *pattern, void *callback_data, cairo_surface_t *surface); cairo_status_t (*cairo_raster_source_snapshot_func_t) (cairo_pattern_t *pattern, void *callback_data); cairo_status_t (*cairo_raster_source_copy_func_t) (cairo_pattern_t *pattern, void *callback_data, const cairo_pattern_t *other); void (*cairo_raster_source_finish_func_t) (cairo_pattern_t *pattern, void *callback_data); */ (* ****** ****** *) (* end of [cairo-Raster-Sources.sats] *) ././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-text.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-text.s0000644000175000017500000001107613431250607032526 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: September, 2012 *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* cairo_glyph_t; enum cairo_font_slant_t; enum cairo_font_weight_t; cairo_text_cluster_t; enum cairo_text_cluster_flags_t; */ (* ****** ****** *) /* void cairo_select_font_face ( cairo_t *cr, const char *family, cairo_font_slant_t slant, cairo_font_weight_t weight ) ; */ fun cairo_select_font_face ( ctx: !xr1, family: NSH(string) , slant: cairo_font_slant_t, weight: cairo_font_weight_t ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_set_font_size (cairo_t *cr, double size); */ fun cairo_set_font_size (ctx: !xr1, size: double): void = "mac#%" (* ****** ****** *) /* void cairo_set_font_matrix ( cairo_t *cr, const cairo_matrix_t *matrix ) ; void cairo_get_font_matrix ( cairo_t *cr, cairo_matrix_t *matrix ) ; */ (* ****** ****** *) /* void cairo_set_font_options ( cairo_t *cr, const cairo_font_options_t *options ) ; void cairo_get_font_options ( cairo_t *cr, cairo_font_options_t *options ) ; */ (* ****** ****** *) /* void cairo_set_font_face ( cairo_t *cr, cairo_font_face_t *font_face ) ; */ /* cairo_font_face_t *cairo_get_font_face (cairo_t *cr); */ (* ****** ****** *) /* void cairo_set_scaled_font ( cairo_t *cr, const cairo_scaled_font_t *scaled_font ) ; */ /* cairo_scaled_font_t *cairo_get_scaled_font (cairo_t *cr); */ (* ****** ****** *) /* void cairo_show_text (cairo_t *cr, const char *utf8); */ fun cairo_show_text (ctx: !xr1, utf8: NSH(string)): void = "mac#%" (* ****** ****** *) /* void cairo_show_glyphs ( cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs ) ; void cairo_show_text_glyphs ( cairo_t *cr, const char *utf8, int utf8_len, const cairo_glyph_t *glyphs, int num_glyphs, const cairo_text_cluster_t *clusters, int num_clusters, cairo_text_cluster_flags_t cluster_flags ) ; */ (* ****** ****** *) /* void cairo_font_extents ( cairo_t *cr, cairo_font_extents_t *extents ) ; */ fun cairo_font_extents ( xr: !xr1 , extents: &cairo_font_extents_t? >> cairo_font_extents_t ) : void = "mac#%" // end of [cairo_font_extents] (* ****** ****** *) /* void cairo_text_extents ( cairo_t *cr, const char *utf8, cairo_text_extents_t *extents ) ; */ fun cairo_text_extents ( xr: !xr1, utf8: NSH(string) , extents: &cairo_text_extents_t? >> cairo_text_extents_t ) : void = "mac#%" // end of [cairo_text_extents] (* ****** ****** *) /* void cairo_glyph_extents (cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs, cairo_text_extents_t *extents); */ (* ****** ****** *) /* cairo_font_face_t* cairo_toy_font_face_create ( const char *family, cairo_font_slant_t slant, cairo_font_weight_t weight ) ; */ fun cairo_toy_font_face_create ( family: NSH(string) , slant: cairo_font_slant_t, weight: cairo_font_weight_t ) : xrfontface1 = "mac#%" // endfun (* ****** ****** *) /* const char* cairo_toy_font_face_get_family ( cairo_font_face_t *font_face ) ; */ fun cairo_toy_font_face_get_family (font_face: xrfontface1): string(*const*) = "mac#%" // (* ****** ****** *) /* cairo_font_slant_t cairo_toy_font_face_get_slant ( cairo_font_face_t *font_face ) ; */ fun cairo_toy_font_face_get_slant (font_face: xrfontface1): cairo_font_slant_t = "mac#%" // (* ****** ****** *) /* cairo_font_weight_t cairo_toy_font_face_get_weight ( cairo_font_face_t *font_face ) ; */ fun cairo_toy_font_face_get_weight (font_face: xrfontface1): cairo_font_weight_t = "mac#%" // (* ****** ****** *) /* cairo_glyph_t* cairo_glyph_allocate (int num_glyphs); */ fun cairo_glyph_allocate {n:nat} (n: int n): arrayptr (cairo_glyph_t, n) = "mac#%" // end of [cairo_glyph_allocate] /* void cairo_glyph_free (cairo_glyph_t *glyphs); */ fun cairo_glyph_free {n:int} (glyphs: arrayptr (cairo_glyph_t, n)): void = "mac#%" // end of [cairo_glyph_free] (* ****** ****** *) /* cairo_text_cluster_t* cairo_text_cluster_allocate (int num_clusters); */ fun cairo_cluster_allocate {n:nat} (n: int n): arrayptr (cairo_text_cluster_t, n) = "mac#%" // end of [cairo_cluster_allocate] /* void cairo_text_cluster_free (cairo_text_cluster_t *clusters); */ fun cairo_cluster_free {n:int} (clusters: arrayptr (cairo_text_cluster_t, n)): void = "mac#%" // end of [cairo_cluster_free] (* ****** ****** *) (* end of [cairo-text.sats] *) ././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-Transformations.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/Drawing/cairo-Transf0000644000175000017500000000446713431250607032544 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: September, 2012 *) (* ****** ****** *) #include "./../mybasis.sats" (* ****** ****** *) /* void cairo_translate ( cairo_t *cr, double tx, double ty ) ; */ fun cairo_translate (ctx: !xr1, tx: double, ty: double) : void = "mac#%" // end of [cairo_translate] (* ****** ****** *) /* void cairo_scale ( cairo_t *cr, double sx, double sy ) ; */ fun cairo_scale (ctx: !xr1, sx: double, sy: double) : void = "mac#%" // end of [cairo_scale] (* ****** ****** *) /* void cairo_rotate (cairo_t *cr, double angle); */ fun cairo_rotate (ctx: !xr1, angle: double) : void = "mac#%" (* ****** ****** *) /* void cairo_transform ( cairo_t *cr, const cairo_matrix_t *matrix ) ; */ fun cairo_transform (ctx: !xr1, matrix: &RD(xrmat)): void = "mac#%" // end of [cairo_transform] (* ****** ****** *) /* void cairo_set_matrix ( cairo_t *cr, const cairo_matrix_t *matrix ) ; */ fun cairo_set_matrix (ctx: !xr1, matrix: &RD(xrmat)): void = "mac#%" // end of [cairo_set_matrix] /* void cairo_get_matrix (cairo_t *cr, cairo_matrix_t *matrix) */ fun cairo_get_matrix (ctx: !xr1, matrix: &xrmat? >> xrmat): void = "mac#%" // end of [cairo_get_matrix] (* ****** ****** *) /* void cairo_identity_matrix (cairo_t *cr) ; */ fun cairo_identity_matrix (ctx: !xr1): void = "mac#%" (* ****** ****** *) /* void cairo_user_to_device (cairo_t *cr, double *x, double *y) ; */ fun cairo_user_to_device ( // // x: in/out; y: in/out // ctx: !xr1, x: &double >> double, y: &double >> double ) : void = "mac#%" // endfun /* void cairo_user_to_device_distance (cairo_t *cr, double *dx, double *dy) ; */ fun cairo_user_to_device_distance ( // // dx: in/out; dy: in/out // ctx: !xr1, dx: &double >> double, dy: &double >> double ) : void = "mac#%" // endfun (* ****** ****** *) /* void cairo_device_to_user (cairo_t *cr, double *x, double *y) ; */ fun cairo_device_to_user ( // // x: in/out; y: in/out // ctx: !xr1, x: &double >> double, y: &double >> double ) : void = "mac#%" // endfun /* void cairo_device_to_user_distance (cairo_t *cr, double *dx, double *dy) ; */ fun cairo_device_to_user_distance ( // // dx: in/out; dy: in/out // ctx: !xr1, dx: &double >> double, dy: &double >> double ) : void = "mac#%" // endfun (* ****** ****** *) (* end of [cairo-Transformations.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/cairo.sats0000644000175000017500000001111613431250607030654 0ustar brandonbrandon(* ** API in ATS for cairo *) (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2012 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // // API for cairo in ATS // this one is based on cairo-1.12 // (* ****** ****** *) %{# #include \ "atscntrb-hx-libcairo/CATS/cairo.cats" %} // end of [%{#] (* ****** ****** *) #define ATS_PACKNAME "ATSCNTRB.cairo" #define ATS_EXTERN_PREFIX "atscntrb_" // prefix for external names (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) fun cairo_version ((*void*)): int = "mac#%" fun cairo_version_string ((*void*)): string = "mac#%" (* ****** ****** *) macdef CAIRO_VERSION_MAJOR = $extval (int, "CAIRO_VERSION_MAJOR") macdef CAIRO_VERSION_MINOR = $extval (int, "CAIRO_VERSION_MINOR") macdef CAIRO_VERSION_MICRO = $extval (int, "CAIRO_VERSION_MICRO") (* ****** ****** *) fun CAIRO_VERSION_ENCODE (major: int, minor: int, micro: int): int = "mac#CAIRO_VERSION_ENCODE" // end of [CAIRO_VERSION_ENCODE] (* ****** ****** *) castfn cairo_ref2ptr{l:addr} (cr: !cairo_ref(l)):<> ptr (l) overload ptrcast with cairo_ref2ptr castfn cairo_surface_ref2ptr{l:addr} (cr: !cairo_surface_ref(l)):<> ptr (l) overload ptrcast with cairo_surface_ref2ptr (* ****** ****** *) (* Drawing cairo_t — The cairo drawing context Paths — Creating paths and manipulating path data cairo_pattern_t — Sources for drawing Regions — Representing a pixel-aligned area Transformations — Manipulating the current transformation matrix text — Rendering text and glyphs Raster Sources — Supplying arbitrary image data *) #include "./Drawing/cairo-cairo-t.sats" #include "./Drawing/cairo-Paths.sats" #include "./Drawing/cairo-cairo-pattern-t.sats" #include "./Drawing/cairo-Regions.sats" #include "./Drawing/cairo-Transformations.sats" #include "./Drawing/cairo-text.sats" #include "./Drawing/cairo-Raster-Sources.sats" (* ****** ****** *) (* Fonts cairo_font_face_t — Base class for font faces cairo_scaled_font_t — Font face at particular size and options cairo_font_options_t — How a font should be rendered FreeType Fonts — Font support for FreeType Win32 Fonts — Font support for Microsoft Windows Quartz (CGFont) Fonts — Font support via CGFont on OS X User Fonts — Font support with font data provided by the user *) #include "./Fonts/cairo-cairo-font-face-t.sats" (* ****** ****** *) (* Surfaces cairo_device_t — interface to underlying rendering system cairo_surface_t — Base class for surfaces Image Surfaces — Rendering to memory buffers PNG Support — Reading and writing PNG images PDF Surfaces — Rendering PDF documents PostScript Surfaces — Rendering PostScript documents Recording Surfaces — Records all drawing operations Win32 Surfaces — Microsoft Windows surface support SVG Surfaces — Rendering SVG documents Quartz Surfaces — Rendering to Quartz surfaces XCB Surfaces — X Window System rendering using the XCB library XLib Surfaces — X Window System rendering using XLib XLib-XRender Backend — X Window System rendering using XLib and the X Render extension Script Surfaces — Rendering to replayable scripts *) #include "./Surfaces/cairo-cairo-device-t.sats" #include "./Surfaces/cairo-cairo-surface-t.sats" #include "./Surfaces/cairo-Image-Surfaces.sats" #include "./Surfaces/cairo-PNG-Support.sats" #include "./Surfaces/cairo-PDF-Surfaces.sats" #include "./Surfaces/cairo-PostScript-Surfaces.sats" (* ****** ****** *) (* Utilities cairo_matrix_t — Generic matrix operations Error handling — Decoding cairo's status Types — Generic data types *) #include "./Utilities/cairo-cairo-matrix-t.sats" #include "./Utilities/cairo-Error-Handling.sats" #include "./Utilities/cairo-Types.sats" (* ****** ****** *) (* end of [cairo.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/0000755000175000017500000000000013431250607027747 5ustar brandonbrandon././@LongLink0000644000000000000000000000015300000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-t.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-0000644000175000017500000000474613431250607032152 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../Drawing/cairo-cairo-t.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Drawing/cairo-cairo-t\ ") (* ****** ****** *) #declnamesynop("cairo_create") #declnamesynop("cairo_reference") #declnamesynop("cairo_destroy") (* ****** ****** *) #declnamesynop("cairo_status") (* ****** ****** *) #declnamesynop("cairo_save") #declnamesynop("cairo_restore") (* ****** ****** *) #declnamesynop("cairo_get0_target") #declnamesynop("cairo_get1_target") (* ****** ****** *) #declnamesynop("cairo_push_group") #declnamesynop("cairo_push_group_with_content") #declnamesynop("cairo_pop_group") #declnamesynop("cairo_pop_group_to_source") (* ****** ****** *) #declnamesynop("cairo_get0_group_target") #declnamesynop("cairo_get1_group_target") (* ****** ****** *) #declnamesynop("cairo_set_source") (* ****** ****** *) #declnamesynop("cairo_set_source_rgb") #declnamesynop("cairo_set_source_rgb_arr") #declnamesynop("cairo_set_source_rgb_vec") (* ****** ****** *) #declnamesynop("cairo_set_source_rgba") #declnamesynop("cairo_set_source_rgba_arr") #declnamesynop("cairo_set_source_rgba_vec") (* ****** ****** *) #declnamesynop("cairo_set_source_surface") (* ****** ****** *) #declnamesynop("cairo_get0_source") #declnamesynop("cairo_get1_source") (* ****** ****** *) #declnamesynop("cairo_set_antialias") #declnamesynop("cairo_get_antialias") (* ****** ****** *) #declnamesynop("cairo_set_dash") #declnamesynop("cairo_get_dash_count") #declnamesynop("cairo_get_dash") (* ****** ****** *) #declnamesynop("cairo_set_fill_rule") #declnamesynop("cairo_get_fill_rule") (* ****** ****** *) #declnamesynop("cairo_set_line_width") #declnamesynop("cairo_get_line_width") #declnamesynop("cairo_set_line_cap") #declnamesynop("cairo_get_line_cap") #declnamesynop("cairo_set_line_join") #declnamesynop("cairo_get_line_join") (* ****** ****** *) #declnamesynop("cairo_set_miter_limit") #declnamesynop("cairo_get_miter_limit") (* ****** ****** *) #declnamesynop("cairo_set_operator") #declnamesynop("cairo_get_operator") (* ****** ****** *) #declnamesynop("cairo_set_tolerance") #declnamesynop("cairo_get_tolerance") (* ****** ****** *) #declnamesynop("cairo_get_reference_count") (* ****** ****** *) #declnamesynop("cairo_set_user_data") #declnamesynop("cairo_get_user_data") (* ****** ****** *) (* end of [cairo-cairo-t.atxt] *) ././@LongLink0000644000000000000000000000016200000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-matrix-t.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-0000644000175000017500000000056513431250607032145 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get ( ) = "../Utilities/cairo-cairo-matrix-t.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Utilities/cairo-cairo-matrix-t\ ") (* ****** ****** *) (* end of [cairo-cairo-matrix-t.atxt] *) ././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-surface-t.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-0000644000175000017500000000073513431250607032144 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../Surfaces/cairo-cairo-surface-t.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Surfaces/cairo-cairo-surface-t\ ") (* ****** ****** *) #declnamesynop("cairo_surface_reference") #declnamesynop("cairo_surface_destroy") (* ****** ****** *) (* end of [cairo-cairo-surface-t.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo.atxt0000644000175000017500000000400113431250607031741 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../cairo.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/cairo\ ") (* ****** ****** *) #declpreamble('\ #para('\ This package contains an API for programming cairo in ATS.\ ') ')#comment("declpreamble") (* ****** ****** *) #declnamesynop("cairo_version") #declnamesynop("cairo_version_string") (* ****** ****** *) #declnamesynop("CAIRO_VERSION_MAJOR") #declnamesynop("CAIRO_VERSION_MINOR") #declnamesynop("CAIRO_VERSION_MICRO") #declnamesynop("CAIRO_VERSION_ENCODE") (* ****** ****** *) #declname2("mybasis.sats", "mybasis.html") // #declsynop2('\ This file, which is included in [cairo.sats], mostly contains type definitions and macros in the cairo package. ') (* ****** ****** *) #declname2("Drawing/cairo-cairo-t.sats", "cairo-cairo-t.html") #declname2("Drawing/cairo-Paths.sats", "cairo-Paths.html") #declname2("Drawing/cairo-cairo-pattern-t.sats", "cairo-cairo-pattern-t.html") #declname2("Drawing/cairo-Regions.sats", "cairo-Regions.html") #declname2("Drawing/cairo-Transformations.sats", "cairo-Transformations.html") #declname2("Drawing/cairo-text.sats", "cairo-text.html") #declname2("Drawing/cairo-Raster-Sources.sats", "cairo-Raster-Sources.html") (* ****** ****** *) #declname2("Surfaces/cairo-cairo-device-t.sats", "cairo-cairo-device-t.html") #declname2("Surfaces/cairo-cairo-surface-t.sats", "cairo-cairo-surface-t.html") #declname2("Surfaces/cairo-Image-Surfaces.sats", "cairo-Image-Surfaces.html") #declname2("Surfaces/cairo-PDF-Surfaces.sats", "cairo-PDF-Surfaces.html") #declname2("Surfaces/cairo-PNG-Support.sats", "cairo-PNG-Support.html") #declname2("Surfaces/cairo-PostScript-Surfaces.sats", "cairo-PostScript-Surfaces.html") (* ****** ****** *) #declname2("Utilities/cairo-cairo-matrix-t.sats", "cairo-cairo-matrix-t.html") (* ****** ****** *) (* end of [cairo.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/Makefile.gen0000777000175000017500000000000013431250607036755 2../../../../../share/Makefile.genustar brandonbrandon././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-Paths.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-Paths.0000644000175000017500000000204313431250607032121 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../Drawing/cairo-Paths.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Drawing/cairo-Paths\ ") (* ****** ****** *) #declnamesynop("cairo_has_current_point") #declnamesynop("cairo_get_current_point") (* ****** ****** *) #declnamesynop("cairo_new_path") #declnamesynop("cairo_new_sub_path") #declnamesynop("cairo_close_path") (* ****** ****** *) #declnamesynop("cairo_arc") #declnamesynop("cairo_arc_negative") (* ****** ****** *) #declnamesynop("cairo_curve_to") #declnamesynop("cairo_line_to") #declnamesynop("cairo_move_to") (* ****** ****** *) #declnamesynop("cairo_rectangle") (* ****** ****** *) #declnamesynop("cairo_text_path") #declnamesynop("cairo_glyph_path") (* ****** ****** *) #declnamesynop("cairo_rel_move_to") #declnamesynop("cairo_rel_line_to") #declnamesynop("cairo_rel_curve_to") (* ****** ****** *) (* end of [cairo-Paths.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/HTML/0000755000175000017500000000000013431250607030513 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/HTML/.keeper0000644000175000017500000000000113431250607031756 0ustar brandonbrandon ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/Makefile0000644000175000017500000002650113431250607031413 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/ccomp/atslib/lib ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \ declatext_sats.o \ declatext_dats.o \ declatext_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \ htmlgendecl_sats.o \ htmlgendecl_dats.o \ htmlgendecl_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: all_html:: HTML/cairo.html HTML/cairo.html: cairo_atxt.exe ; ./$< > $@ cairo_atxt.txt: cairo.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo_atxt.exe: htmlgendecl_atxt.dats cairo_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo:: ; scp HTML/cairo.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo_atxt.exe cleanall:: ; $(RMF) HTML/cairo.html all_html:: HTML/mybasis.html HTML/mybasis.html: mybasis_atxt.exe ; ./$< > $@ mybasis_atxt.txt: mybasis.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ mybasis_atxt.exe: htmlgendecl_atxt.dats mybasis_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_mybasis:: ; scp HTML/mybasis.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) mybasis_atxt.exe cleanall:: ; $(RMF) HTML/mybasis.html all_html:: HTML/cairo-cairo-t.html HTML/cairo-cairo-t.html: cairo-cairo-t_atxt.exe ; ./$< > $@ cairo-cairo-t_atxt.txt: cairo-cairo-t.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-cairo-t_atxt.exe: htmlgendecl_atxt.dats cairo-cairo-t_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-cairo-t:: ; scp HTML/cairo-cairo-t.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-cairo-t_atxt.exe cleanall:: ; $(RMF) HTML/cairo-cairo-t.html all_html:: HTML/cairo-Paths.html HTML/cairo-Paths.html: cairo-Paths_atxt.exe ; ./$< > $@ cairo-Paths_atxt.txt: cairo-Paths.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-Paths_atxt.exe: htmlgendecl_atxt.dats cairo-Paths_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-Paths:: ; scp HTML/cairo-Paths.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-Paths_atxt.exe cleanall:: ; $(RMF) HTML/cairo-Paths.html all_html:: HTML/cairo-Regions.html HTML/cairo-Regions.html: cairo-Regions_atxt.exe ; ./$< > $@ cairo-Regions_atxt.txt: cairo-Regions.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-Regions_atxt.exe: htmlgendecl_atxt.dats cairo-Regions_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-Regions:: ; scp HTML/cairo-Regions.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-Regions_atxt.exe cleanall:: ; $(RMF) HTML/cairo-Regions.html all_html:: HTML/cairo-cairo-pattern-t.html HTML/cairo-cairo-pattern-t.html: cairo-cairo-pattern-t_atxt.exe ; ./$< > $@ cairo-cairo-pattern-t_atxt.txt: cairo-cairo-pattern-t.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-cairo-pattern-t_atxt.exe: htmlgendecl_atxt.dats cairo-cairo-pattern-t_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-cairo-pattern-t:: ; scp HTML/cairo-cairo-pattern-t.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-cairo-pattern-t_atxt.exe cleanall:: ; $(RMF) HTML/cairo-cairo-pattern-t.html all_html:: HTML/cairo-Transformations.html HTML/cairo-Transformations.html: cairo-Transformations_atxt.exe ; ./$< > $@ cairo-Transformations_atxt.txt: cairo-Transformations.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-Transformations_atxt.exe: htmlgendecl_atxt.dats cairo-Transformations_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-Transformations:: ; scp HTML/cairo-Transformations.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-Transformations_atxt.exe cleanall:: ; $(RMF) HTML/cairo-Transformations.html all_html:: HTML/cairo-cairo-device-t.html HTML/cairo-cairo-device-t.html: cairo-cairo-device-t_atxt.exe ; ./$< > $@ cairo-cairo-device-t_atxt.txt: cairo-cairo-device-t.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-cairo-device-t_atxt.exe: htmlgendecl_atxt.dats cairo-cairo-device-t_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-cairo-device-t:: ; scp HTML/cairo-cairo-device-t.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-cairo-device-t_atxt.exe cleanall:: ; $(RMF) HTML/cairo-cairo-device-t.html all_html:: HTML/cairo-cairo-surface-t.html HTML/cairo-cairo-surface-t.html: cairo-cairo-surface-t_atxt.exe ; ./$< > $@ cairo-cairo-surface-t_atxt.txt: cairo-cairo-surface-t.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-cairo-surface-t_atxt.exe: htmlgendecl_atxt.dats cairo-cairo-surface-t_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-cairo-surface-t:: ; scp HTML/cairo-cairo-surface-t.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-cairo-surface-t_atxt.exe cleanall:: ; $(RMF) HTML/cairo-cairo-surface-t.html all_html:: HTML/cairo-Image-Surfaces.html HTML/cairo-Image-Surfaces.html: cairo-Image-Surfaces_atxt.exe ; ./$< > $@ cairo-Image-Surfaces_atxt.txt: cairo-Image-Surfaces.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-Image-Surfaces_atxt.exe: htmlgendecl_atxt.dats cairo-Image-Surfaces_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-Image-Surfaces:: ; scp HTML/cairo-Image-Surfaces.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-Image-Surfaces_atxt.exe cleanall:: ; $(RMF) HTML/cairo-Image-Surfaces.html all_html:: HTML/cairo-PDF-Surfaces.html HTML/cairo-PDF-Surfaces.html: cairo-PDF-Surfaces_atxt.exe ; ./$< > $@ cairo-PDF-Surfaces_atxt.txt: cairo-PDF-Surfaces.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-PDF-Surfaces_atxt.exe: htmlgendecl_atxt.dats cairo-PDF-Surfaces_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-PDF-Surfaces:: ; scp HTML/cairo-PDF-Surfaces.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-PDF-Surfaces_atxt.exe cleanall:: ; $(RMF) HTML/cairo-PDF-Surfaces.html all_html:: HTML/cairo-PNG-Support.html HTML/cairo-PNG-Support.html: cairo-PNG-Support_atxt.exe ; ./$< > $@ cairo-PNG-Support_atxt.txt: cairo-PNG-Support.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-PNG-Support_atxt.exe: htmlgendecl_atxt.dats cairo-PNG-Support_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-PNG-Support:: ; scp HTML/cairo-PNG-Support.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-PNG-Support_atxt.exe cleanall:: ; $(RMF) HTML/cairo-PNG-Support.html all_html:: HTML/cairo-PostScript-Surfaces.html HTML/cairo-PostScript-Surfaces.html: cairo-PostScript-Surfaces_atxt.exe ; ./$< > $@ cairo-PostScript-Surfaces_atxt.txt: cairo-PostScript-Surfaces.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-PostScript-Surfaces_atxt.exe: htmlgendecl_atxt.dats cairo-PostScript-Surfaces_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-PostScript-Surfaces:: ; scp HTML/cairo-PostScript-Surfaces.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-PostScript-Surfaces_atxt.exe cleanall:: ; $(RMF) HTML/cairo-PostScript-Surfaces.html all_html:: HTML/cairo-cairo-matrix-t.html HTML/cairo-cairo-matrix-t.html: cairo-cairo-matrix-t_atxt.exe ; ./$< > $@ cairo-cairo-matrix-t_atxt.txt: cairo-cairo-matrix-t.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cairo-cairo-matrix-t_atxt.exe: htmlgendecl_atxt.dats cairo-cairo-matrix-t_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cairo-cairo-matrix-t:: ; scp HTML/cairo-cairo-matrix-t.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cairo-cairo-matrix-t_atxt.exe cleanall:: ; $(RMF) HTML/cairo-cairo-matrix-t.html ###### uploadall:: ; scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015600000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/theDeclpostamble.htmlATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/theDeclposta0000644000175000017500000000075113431250607032314 0ustar brandonbrandon
This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. SourceForge.net Logo
././@LongLink0000644000000000000000000000016200000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-Image-Surfaces.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-Image-0000644000175000017500000000121613431250607032064 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../Surfaces/cairo-Image-Surfaces.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Surfaces/cairo-Image-Surfaces\ ") (* ****** ****** *) #declnamesynop("cairo_image_surface_create") (* ****** ****** *) #declnamesynop("cairo_image_surface_get_format") #declnamesynop("cairo_image_surface_get_width") #declnamesynop("cairo_image_surface_get_height") #declnamesynop("cairo_image_surface_get_stride") (* ****** ****** *) (* end of [cairo-Image-Surfaces.atxt] *) ././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/Makefile.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/Makefile.atx0000644000175000017500000000631713431250607032211 0ustar brandonbrandon%{ // staload STDIO = "libc/SATS/stdio.sats" staload TIME = "libc/SATS/time.sats" // dynload "libatsdoc/dynloadall.dats" // staload "libatsdoc/SATS/libatsdoc_atext.sats" // %}\ %{ fun comment (x: string): atext = atext_nil () // end of [comment] fun make_entry (dir: string, nm: string): atext = let // val ent = sprintf ("\ all_html:: HTML/%s.html\n\ HTML/%s.html: \ %s_atxt.exe ; ./$< > $@ %s_atxt.txt: %s.atxt ; $(CAT) $< | \ $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ %s_atxt.exe: htmlgendecl_atxt.dats \ %s_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< \ $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_%s:: ; \ scp HTML/%s.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) %s_atxt.exe cleanall:: ; $(RMF) HTML/%s.html ", @(nm, nm, nm, nm, nm, nm, nm, nm, nm, nm, nm) ) // end of [val] // in atext_strptr (ent) end // end of [make_entry] %}\ # # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/ccomp/atslib/lib ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \\ declatext_sats.o \\ declatext_dats.o \\ declatext_sats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \\ htmlgendecl_sats.o \\ htmlgendecl_dats.o \\ htmlgendecl_sats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \\ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: #make_entry("..", "cairo") #make_entry("..", "mybasis") #make_entry("../Drawing", "cairo-cairo-t") #make_entry("../Drawing", "cairo-Paths") #make_entry("../Drawing", "cairo-Regions") #make_entry("../Drawing", "cairo-cairo-pattern-t") #make_entry("../Drawing", "cairo-Transformations") #make_entry("../Surfaces", "cairo-cairo-device-t") #make_entry("../Surfaces", "cairo-cairo-surface-t") #make_entry("../Surfaces", "cairo-Image-Surfaces") #make_entry("../Surfaces", "cairo-PDF-Surfaces") #make_entry("../Surfaces", "cairo-PNG-Support") #make_entry("../Surfaces", "cairo-PostScript-Surfaces") #make_entry("../Utilities", "cairo-cairo-matrix-t") ###### uploadall:: ; \ scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/cairo/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### \ %{ implement main () = fprint_filsub (stdout_ref, "Makefile_atxt.txt") %}\ ././@LongLink0000644000000000000000000000016200000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-device-t.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-0000644000175000017500000000154013431250607032137 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../Surfaces/cairo-cairo-device-t.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Surfaces/cairo-cairo-device-t\ ") (* ****** ****** *) #declnamesynop("cairo_device_reference") #declnamesynop("cairo_device_destroy") (* ****** ****** *) #declnamesynop("cairo_device_status") (* ****** ****** *) #declnamesynop("cairo_device_finish") #declnamesynop("cairo_device_flush") (* ****** ****** *) #declnamesynop("cairo_device_get_type") (* ****** ****** *) #declnamesynop("cairo_device_get_reference_count") (* ****** ****** *) #declnamesynop("cairo_device_acquire") #declnamesynop("cairo_device_release") (* ****** ****** *) (* end of [cairo-cairo-device-t.atxt] *) ././@LongLink0000644000000000000000000000015700000000000011606 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-PNG-Support.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-PNG-Su0000644000175000017500000000077213431250607032004 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get ( ) = "../Surfaces/cairo-PNG-Support.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Surfaces/cairo-PNG-Support\ ") (* ****** ****** *) #declnamesynop("cairo_image_surface_create_from_png") (* ****** ****** *) #declnamesynop("cairo_surface_write_to_png") (* ****** ****** *) (* end of [cairo-PNG-Support.atxt] *) ././@LongLink0000644000000000000000000000016000000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-PDF-Surfaces.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-PDF-Su0000644000175000017500000000055513431250607031770 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get ( ) = "../Surfaces/cairo-PDF-Surfaces.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Surfaces/cairo-PDF-Surfaces\ ") (* ****** ****** *) (* end of [cairo-PDF-Surfaces.atxt] *) ././@LongLink0000644000000000000000000000016700000000000011607 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-PostScript-Surfaces.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-PostSc0000644000175000017500000000060213431250607032176 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get ( ) = "../Surfaces/cairo-PostScript-Surfaces.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Surfaces/cairo-PostScript-Surfaces\ ") (* ****** ****** *) (* end of [cairo-PostScript-Surfaces.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/mybasis.atxt0000644000175000017500000001567413431250607032335 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../mybasis.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/mybasis\ ") (* ****** ****** *) #declnamesynop("cairo_ref") #declnamesynop("cairo_ref1") #declnamesynop("xr") // alias for cairo_ref #declnamesynop("xr1") // alias for cairo_ref1 (* ****** ****** *) #declnamesynop("cairo_surface_ref") #declnamesynop("cairo_surface_ref1") #declnamesynop("xrsf") // alias for cairo_surface_ref #declnamesynop("xrsf1") // alias for cairo_surface_ref1 (* ****** ****** *) #declnamesynop("cairo_device_ref") #declnamesynop("cairo_device_ref1") #declnamesynop("xrdev") // alias for cairo_device_ref #declnamesynop("xrdev1") // alias for cairo_device_ref (* ****** ****** *) #declnamesynop("cairo_pattern_ref") #declnamesynop("cairo_pattern_ref1") #declnamesynop("xrpat") // alias for cairo_pattern_ref #declnamesynop("xrpat1") // alias for cairo_pattern_ref1 (* ****** ****** *) #declnamesynop("cairo_font_face_ref") #declnamesynop("cairo_font_face_ref1") #declnamesynop("xrfontface") // alias for cairo_font_face_ref #declnamesynop("xrfontface1") // alias for cairo_font_face_ref1 (* ****** ****** *) #declnamesynop("cairo_bool_t") (* ****** ****** *) #declnamesynop("cairo_read_func_t") #declnamesynop("cairo_write_func_t") (* ****** ****** *) #declnamesynop("cairo_destroy_func_t") #declnamesynop("cairo_user_data_key_t") (* ****** ****** *) #declnamesynop("cairo_glyph_t") (* ****** ****** *) #declnamesynop("cairo_path_t") #declnamesynop("cairo_path_data_t") (* ****** ****** *) #declnamesynop("cairo_rectangle_int_t") (* ****** ****** *) #declnamesynop("cairo_matrix_t") (* ****** ****** *) // #declnamesynop("cairo_status_t") // #declnamesynop("CAIRO_STATUS_SUCCESS") #declnamesynop("CAIRO_STATUS_NO_MEMORY") #declnamesynop("CAIRO_STATUS_INVALID_RESTORE") #declnamesynop("CAIRO_STATUS_INVALID_POP_GROUP") #declnamesynop("CAIRO_STATUS_NO_CURRENT_POINT") #declnamesynop("CAIRO_STATUS_INVALID_MATRIX") #declnamesynop("CAIRO_STATUS_INVALID_STATUS") #declnamesynop("CAIRO_STATUS_NULL_POINTER") #declnamesynop("CAIRO_STATUS_INVALID_STRING") #declnamesynop("CAIRO_STATUS_INVALID_PATH_DATA") #declnamesynop("CAIRO_STATUS_READ_ERROR") #declnamesynop("CAIRO_STATUS_WRITE_ERROR") #declnamesynop("CAIRO_STATUS_SURFACE_FINISHED") #declnamesynop("CAIRO_STATUS_SURFACE_TYPE_MISMATCH") #declnamesynop("CAIRO_STATUS_PATTERN_TYPE_MISMATCH") #declnamesynop("CAIRO_STATUS_INVALID_CONTENT") #declnamesynop("CAIRO_STATUS_INVALID_FORMAT") #declnamesynop("CAIRO_STATUS_INVALID_VISUAL") #declnamesynop("CAIRO_STATUS_FILE_NOT_FOUND") #declnamesynop("CAIRO_STATUS_INVALID_DASH") #declnamesynop("CAIRO_STATUS_INVALID_DSC_COMMENT") #declnamesynop("CAIRO_STATUS_INVALID_INDEX") #declnamesynop("CAIRO_STATUS_CLIP_NOT_REPRESENTABLE") #declnamesynop("CAIRO_STATUS_TEMP_FILE_ERROR") #declnamesynop("CAIRO_STATUS_INVALID_STRIDE") #declnamesynop("CAIRO_STATUS_FONT_TYPE_MISMATCH") #declnamesynop("CAIRO_STATUS_USER_FONT_IMMUTABLE") #declnamesynop("CAIRO_STATUS_USER_FONT_ERROR") #declnamesynop("CAIRO_STATUS_NEGATIVE_COUNT") #declnamesynop("CAIRO_STATUS_INVALID_CLUSTERS") #declnamesynop("CAIRO_STATUS_INVALID_SLANT") #declnamesynop("CAIRO_STATUS_INVALID_WEIGHT") #declnamesynop("CAIRO_STATUS_INVALID_SIZE") #declnamesynop("CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED") #declnamesynop("CAIRO_STATUS_DEVICE_TYPE_MISMATCH") #declnamesynop("CAIRO_STATUS_DEVICE_ERROR") #declnamesynop("CAIRO_STATUS_INVALID_MESH_CONSTRUCTION") #declnamesynop("CAIRO_STATUS_DEVICE_FINISHED") #declnamesynop("CAIRO_STATUS_LAST_STATUS") // (* ****** ****** *) // #declnamesynop("cairo_content_t") // #declnamesynop("CAIRO_CONTENT_COLOR") #declnamesynop("CAIRO_CONTENT_ALPHA") #declnamesynop("CAIRO_CONTENT_COLOR_ALPHA") // (* ****** ****** *) // #declnamesynop("cairo_format_t") // #declnamesynop("CAIRO_FORMAT_INVALID") #declnamesynop("CAIRO_FORMAT_ARGB32") #declnamesynop("CAIRO_FORMAT_RGB24") #declnamesynop("CAIRO_FORMAT_A8") #declnamesynop("CAIRO_FORMAT_A1") #declnamesynop("CAIRO_FORMAT_RGB16_565") #declnamesynop("CAIRO_FORMAT_RGB30") // (* ****** ****** *) // #declnamesynop("cairo_operator_t") // #declnamesynop("CAIRO_VERSION_MAJOR") #declnamesynop("CAIRO_OPERATOR_CLEAR") #declnamesynop("CAIRO_OPERATOR_SOURCE") #declnamesynop("CAIRO_OPERATOR_OVER") #declnamesynop("CAIRO_OPERATOR_IN") #declnamesynop("CAIRO_OPERATOR_OUT") #declnamesynop("CAIRO_OPERATOR_ATOP") #declnamesynop("CAIRO_OPERATOR_DEST") #declnamesynop("CAIRO_OPERATOR_DEST_OVER") #declnamesynop("CAIRO_OPERATOR_DEST_IN") #declnamesynop("CAIRO_OPERATOR_DEST_OUT") #declnamesynop("CAIRO_OPERATOR_DEST_ATOP") #declnamesynop("CAIRO_OPERATOR_XOR") #declnamesynop("CAIRO_OPERATOR_ADD") #declnamesynop("CAIRO_OPERATOR_SATURATE") #declnamesynop("CAIRO_OPERATOR_MULTIPLY") #declnamesynop("CAIRO_OPERATOR_SCREEN") #declnamesynop("CAIRO_OPERATOR_OVERLAY") #declnamesynop("CAIRO_OPERATOR_DARKEN") #declnamesynop("CAIRO_OPERATOR_LIGHTEN") #declnamesynop("CAIRO_OPERATOR_COLOR_DODGE") #declnamesynop("CAIRO_OPERATOR_COLOR_BURN") #declnamesynop("CAIRO_OPERATOR_HARD_LIGHT") #declnamesynop("CAIRO_OPERATOR_SOFT_LIGHT") #declnamesynop("CAIRO_OPERATOR_DIFFERENCE") #declnamesynop("CAIRO_OPERATOR_EXCLUSION") #declnamesynop("CAIRO_OPERATOR_HSL_HUE") #declnamesynop("CAIRO_OPERATOR_HSL_SATURATION") #declnamesynop("CAIRO_OPERATOR_HSL_COLOR") #declnamesynop("CAIRO_OPERATOR_HSL_LUMINOSIT") // (* ****** ****** *) // #declnamesynop("cairo_antialias_t") // #declnamesynop("CAIRO_ANTIALIAS_DEFAULT") #declnamesynop("CAIRO_ANTIALIAS_NONE") #declnamesynop("CAIRO_ANTIALIAS_GRAY") #declnamesynop("CAIRO_ANTIALIAS_SUBPIXEL") #declnamesynop("CAIRO_ANTIALIAS_FAST") #declnamesynop("CAIRO_ANTIALIAS_GOOD") #declnamesynop("CAIRO_ANTIALIAS_BES") // (* ****** ****** *) // #declnamesynop("cairo_fill_rule_t") // #declnamesynop("CAIRO_FILL_RULE_WINDING") #declnamesynop("CAIRO_FILL_RULE_EVEN_OD") // (* ****** ****** *) // #declnamesynop("cairo_line_cap_t") // #declnamesynop("CAIRO_LINE_CAP_BUTT") #declnamesynop("CAIRO_LINE_CAP_ROUND") #declnamesynop("CAIRO_LINE_CAP_SQUAR") // (* ****** ****** *) // #declnamesynop("cairo_line_join_t") // #declnamesynop("CAIRO_LINE_JOIN_MITER") #declnamesynop("CAIRO_LINE_JOIN_ROUND") #declnamesynop("CAIRO_LINE_JOIN_BEVE") // (* ****** ****** *) #declnamesynop("cairo_save_v") #decldescrpt("\ This abstract view is introduced for ensuring that calls to #dyncode("cairo_save") and #dyncode("cairo_restore") are properly balanced.\ ") #declnamesynop("cairo_push_group_v") #decldescrpt("\ This abstract view is introduced for ensuring that calls to #dyncode("cairo_push_group") and #dyncode("cairo_pop_group") are properly balanced.\ ") (* ****** ****** *) #declnamesynop("cairo_device_acquire_v") #decldescrpt("\ This abstract view is introduced for ensuring that calls to #dyncode("cairo_device_acquire") and #dyncode("cairo_device_release") are properly balance. ") #declnamesynop("cairo_device_acquire_v_free_none") (* ****** ****** *) (* end of [mybasis.atxt] *) ././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-Transformations.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-Transf0000644000175000017500000000121613431250607032222 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../Drawing/cairo-Transformations.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Drawing/cairo-Transformations\ ") (* ****** ****** *) #declnamesynop("cairo_translate") #declnamesynop("cairo_scale") #declnamesynop("cairo_rotate") #declnamesynop("cairo_transform") (* ****** ****** *) #declnamesynop("cairo_set_matrix") #declnamesynop("cairo_get_matrix") #declnamesynop("cairo_identity_matrix") (* ****** ****** *) (* end of [cairo-Transformations.atxt] *) ././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-pattern-t.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-cairo-0000644000175000017500000000073313431250607032142 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../Drawing/cairo-cairo-pattern-t.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Drawing/cairo-cairo-pattern-t\ ") (* ****** ****** *) #declnamesynop("cairo_pattern_reference") #declnamesynop("cairo_pattern_destroy") (* ****** ****** *) (* end of [cairo-cairo-pattern-t.atxt] *) ././@LongLink0000644000000000000000000000015300000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-Regions.atxtATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/SATS/DOCUGEN/cairo-Region0000644000175000017500000000053413431250607032212 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get ( ) = "../Drawing/cairo-Regions.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_cairo_cairo") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/cairo/Drawing/cairo-Regions\ ") (* ****** ****** *) (* end of [cairo-Regions.atxt] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/package.json0000644000175000017500000000100613431250607030374 0ustar brandonbrandon{ "name": "atscntrb-hx-libcairo", "version": "1.0.0" , "description": "This package is for directly calling in ATS various cairo-functions." , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/npm-utils/contrib/atscntrb/atscntrb-hx-libcairo" } , "keywords": [ "ATS", "cairo" ] , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "The package is stored at ${PATSHOME}/npm-utils/contrib/atscntrb/atscntrb-hx-libcairo/." } ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/0000755000175000017500000000000013431250607021605 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/0000755000175000017500000000000013431250607022564 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/0000755000175000017500000000000013431250607024101 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/DATS/0000755000175000017500000000000013431250607024634 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/DATS/weboxy.dats0000644000175000017500000005271013431250607027033 0ustar brandonbrandon(* ** ** HX-2014-09-14: ** [weboxy] is a small package for doing ** webpage layout; it generates CSS for use ** and also HTML for the purpose of reviewing ** *) (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.weboxy" // (* ****** ****** *) // (* // // HX-2017-01-26: // weboxy.dats is to be included. // #include "share/atspre_staload.hats" #include "share/HATS/atspre_staload_libats_ML.hats" *) // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #define UID "uid" #define NAME "name" // #define WIDTH "width" #define PWIDTH "pwidth" // #define HEIGHT "height" #define PHEIGHT "pheight" // #define COLOR "color" #define BGCOLOR "bgcolor" // #define PARENT "parent" #define CHILDREN "children" // #define CONTENT "content" #define FCONTENT "fcontent" // #define PCENTLST "pcentlst" #define TABSTYLE "tabstyle" // (* ****** ****** *) typedef color = string (* ****** ****** *) // extern fun{} randcolor((*void*)): color // extern fun{} randcolor_initize((*void*)): void // (* ****** ****** *) datatype tabstyle = | TSnone of () | TShbox of () | TSvbox of () // end of [tabstyle] (* ****** ****** *) // extern fun{} tabstyle_isbox (ts: tabstyle): bool extern fun{} tabstyle_ishbox (ts: tabstyle): bool extern fun{} tabstyle_isvbox (ts: tabstyle): bool // overload .isbox with tabstyle_isbox overload .ishbox with tabstyle_ishbox overload .isvbox with tabstyle_isvbox // (* ****** ****** *) // datatype gval = // | GVnil of () // | GVint of (int) | GVfloat of (double) | GVstring of (string) // | GVthunk of (() - void) // | {a:type} GVboxed of (a) // (* ****** ****** *) // typedef gvthunk = () - void // typedef gvalopt = Option(gval) vtypedef gvalopt_vt = Option_vt(gval) // (* ****** ****** *) // typedef webox = ref(list0($tup(string, gval))) // typedef weboxlst = list0(webox) typedef weboxopt = Option(webox) // (* ****** ****** *) // extern fun webox0_make((*void*)): webox // (* ****** ****** *) // extern fun webox_search (wbx: webox, k0: string): gvalopt_vt extern fun webox_insert_any (wbx: webox, k: string, v: gval): void // implement webox_search (wbx, k0) = let val kvs = wbx[] val opt = kvs.find_opt()(lam kv => k0 = kv.0) in case+ opt of | ~None_vt() => None_vt() | ~Some_vt(kv) => Some_vt(kv.1) end // end of [webox_search] implement webox_insert_any (wbx, k, v) = ( let val kvs = wbx[] in wbx[] := list0_cons($tup(k, v), kvs) end // end of [webox_insert_any] ) // (* ****** ****** *) // extern fun{} webox_make ((*void*)): webox extern fun{} webox_make_name (name: string): webox extern fun{} webox_make_name_width (name: string, width: int): webox extern fun{} webox_make_name_pwidth (name: string, pwidth: int): webox // (* ****** ****** *) // // HX-2014-09-13: // uid: unique indentification // extern fun webox_get_uid(webox): int // // HX-2014-09-13: // name: name given by the user // extern fun webox_get_name(webox): string // overload .uid with webox_get_uid overload .name with webox_get_name // (* ****** ****** *) // extern fun webox_get_width (webox): int extern fun webox_set_width (webox, width: int): void // overload .width with webox_get_width overload .width with webox_set_width // (* ****** ****** *) // // HX: p...: percentage // extern fun webox_get_pwidth (webox): int extern fun webox_set_pwidth (webox, pwidth: int): void // overload .pwidth with webox_get_pwidth overload .pwidth with webox_set_pwidth // (* ****** ****** *) // extern fun webox_get_height (webox): int extern fun webox_set_height (webox, height: int): void // overload .height with webox_get_height overload .height with webox_set_height // (* ****** ****** *) // // HX: p...: percentage // extern fun webox_get_pheight (webox): int extern fun webox_set_pheight (webox, pheight: int): void // overload .pheight with webox_get_pheight overload .pheight with webox_set_pheight // (* ****** ****** *) // extern fun webox_get_color (webox): color extern fun webox_set_color (webox, c: color): void // overload .color with webox_get_color overload .color with webox_set_color // (* ****** ****** *) // extern fun webox_get_bgcolor (webox): color extern fun webox_set_bgcolor (webox, c: color): void // overload .bgcolor with webox_get_bgcolor overload .bgcolor with webox_set_bgcolor // (* ****** ****** *) // extern fun webox_is_root (x: webox): bool extern fun webox_get_parent (webox): weboxopt extern fun webox_set_parent (webox, opt: weboxopt): void // overload .isrt with webox_is_root overload .parent with webox_get_parent overload .parent with webox_set_parent // (* ****** ****** *) // extern fun webox_get_children (webox): weboxlst extern fun webox_set_children (webox, xs: weboxlst): void extern fun{} webox_set_children_1 (webox, x: webox): void extern fun{} webox_set_children_2 (webox, x1: webox, x2: webox): void extern fun{} webox_set_children_3 (webox, x1: webox, x2: webox, x3: webox): void extern fun{} webox_set_children_4 (webox, x1: webox, x2: webox, x3: webox, x4: webox): void // overload .children with webox_get_children overload .children with webox_set_children overload .children with webox_set_children_1 overload .children with webox_set_children_2 overload .children with webox_set_children_3 overload .children with webox_set_children_4 // (* ****** ****** *) // extern fun webox_get_tabstyle(webox): tabstyle extern fun webox_set_tabstyle(webox, sty: tabstyle): void // overload .tabstyle with webox_get_tabstyle overload .tabstyle with webox_set_tabstyle // (* ****** ****** *) // datatype pcent = | PCnone of () | PChard of intGte(0) | PCsoft of intGte(0) // typedef pcentlst = list0(pcent) // extern fun pcentlst_get_at (xs: pcentlst, i: intGte(0)): pcent // (* ****** ****** *) // extern fun webox_get_pcentlst (webox): pcentlst extern fun webox_set_pcentlst (webox, xs: pcentlst): void // overload .pcentlst with webox_get_pcentlst overload .pcentlst with webox_set_pcentlst // (* ****** ****** *) // extern fun webox_get_content (webox): string extern fun webox_set_content (webox, content: string): void // overload .content with webox_get_content overload .content with webox_set_content // (* ****** ****** *) // extern fun webox_get_fcontent (webox): gvthunk extern fun webox_set_fcontent (webox, fcontent: gvthunk): void // overload .fcontent with webox_get_fcontent overload .fcontent with webox_set_fcontent // (* ****** ****** *) extern fun{} gprint_webox_width(wbx: webox): void (* ****** ****** *) extern fun{} gprint_webox_height(wbx: webox): void (* ****** ****** *) extern fun{} gprint_webox_color(wbx: webox): void extern fun{} gprint_webox_bgcolor(wbx: webox): void (* ****** ****** *) extern fun{} gprint_css_preamble((*void*)): void extern fun{} gprint_css_postamble((*void*)): void (* ****** ****** *) extern fun{} gprint_webox_css_one(webox): void extern fun{} gprint_webox_css_all(webox): void extern fun{} gprint_weboxlst_css_all(weboxlst): void (* ****** ****** *) extern fun{} gprint_webox_head_beg((*void*)): void extern fun{} gprint_webox_head_end((*void*)): void (* ****** ****** *) extern fun{} gprint_webox_body_end((*void*)): void extern fun{} gprint_webox_body_after((*void*)): void (* ****** ****** *) extern fun{} gprint_webox_html_all(wbx0: webox): void (* ****** ****** *) // implement {}(*tmp*) randcolor() = "" // implement {}(*tmp*) randcolor_initize() = () // (* ****** ****** *) // implement {}(*tmp*) tabstyle_isbox(ts) = case+ ts of TSnone () => false | _ => true // implement {}(*tmp*) tabstyle_ishbox(ts) = case+ ts of TShbox () => true | _ => false implement {}(*tmp*) tabstyle_isvbox(ts) = case+ ts of TSvbox () => true | _ => false // (* ****** ****** *) implement webox_get_name (wbx) = let // val opt = webox_search(wbx, NAME) // in // case+ opt of | ~Some_vt (gv) => let val-GVstring(nm) = gv in nm end // end of [Some_vt] | ~None_vt ((*void*)) => "" (* nameless *) // end // end of [webox_get_name] (* ****** ****** *) implement webox_get_width (wbx) = let // val opt = webox_search(wbx, WIDTH) // in // case+ opt of | ~Some_vt(gv) => let val-GVint(w) = gv in w end | ~None_vt((*void*)) => ~1(*erroneous*) // end // end of [webox_get_width] (* ****** ****** *) // implement webox_set_width (wbx, w) = ( webox_insert_any(wbx, WIDTH, GVint(w)) ) // (* ****** ****** *) implement webox_get_pwidth (wbx) = let // val opt = webox_search(wbx, PWIDTH) // in // case+ opt of | ~Some_vt(gv) => let val-GVint(pw) = gv in pw end | ~None_vt((*void*)) => ~1(*erroneous*) // end // end of [webox_get_pwidth] (* ****** ****** *) // implement webox_set_pwidth (wbx, pw) = ( webox_insert_any(wbx, PWIDTH, GVint(pw)) ) // (* ****** ****** *) implement webox_get_height (wbx) = let // val opt = webox_search(wbx, HEIGHT) // in // case+ opt of | ~Some_vt(gv) => let val-GVint(h) = gv in h end | ~None_vt((*void*)) => ~1(*erroneous*) // end // end of [webox_get_height] (* ****** ****** *) // implement webox_set_height (wbx, h) = ( webox_insert_any(wbx, HEIGHT, GVint(h)) ) // (* ****** ****** *) implement webox_get_pheight (wbx) = let // val opt = webox_search(wbx, PHEIGHT) // in // case+ opt of | ~Some_vt(gv) => let val-GVint(ph) = gv in ph end | ~None_vt((*void*)) => ~1(*erroneous*) // end // end of [webox_get_pheight] (* ****** ****** *) // implement webox_set_pheight (wbx, ph) = ( webox_insert_any(wbx, PHEIGHT, GVint(ph)) ) // (* ****** ****** *) implement webox_get_color (wbx) = let // val opt = webox_search (wbx, COLOR) // in // case+ opt of | ~Some_vt (gv) => let val-GVstring(c) = gv in c end | ~None_vt((*void*)) => ""(*erroneous*) // end // end of [webox_get_color] (* ****** ****** *) // implement webox_set_color (wbx, clr) = ( webox_insert_any(wbx, COLOR, GVstring(clr)) ) // (* ****** ****** *) implement webox_get_bgcolor (wbx) = let // val opt = webox_search(wbx, BGCOLOR) // in // case+ opt of | ~Some_vt(gv) => let val-GVstring(clr) = gv in clr end | ~None_vt ((*void*)) => ""(*erroneous*) // end // end of [webox_get_bgcolor] (* ****** ****** *) // implement webox_set_bgcolor (wbx, clr) = ( webox_insert_any(wbx, BGCOLOR, GVstring(clr)) ) // (* ****** ****** *) implement webox_get_parent (wbx) = let // val opt = webox_search(wbx, PARENT) // in // case+ opt of | ~None_vt() => None((*void*)) // end of [None_vt] | ~Some_vt(p) => let val-GVboxed(x) = p in $UN.cast{weboxopt}(x) end // end of [Some_vt] // end // end of [webox_get_parent] (* ****** ****** *) // implement webox_set_parent (wbx, p) = ( webox_insert_any(wbx, PARENT, GVboxed(p)) ) // (* ****** ****** *) implement webox_get_children (wbx) = let // val opt = webox_search(wbx, CHILDREN) // in // case+ opt of | ~None_vt () => list0_nil() // end of [None_vt] | ~Some_vt (gv) => let val-GVboxed(x) = gv in $UN.cast{weboxlst}(x) end // end of [Some_vt] // end // end of [webox_get_children] (* ****** ****** *) implement webox_set_children (wbx, xs) = let // val p0 = Some(wbx) // val () = (xs).foreach()(lam x => x.parent(p0)) // in // webox_insert_any (wbx, CHILDREN, GVboxed(xs)) // end // end of [webox_set_children] // (* ****** ****** *) // local // #define :: cons0 // in (* in-of-local *) // implement {}(*tmp*) webox_set_children_1 (wbx, x) = webox_set_children(wbx, list0_sing(x)) implement {}(*tmp*) webox_set_children_2 (wbx, x1, x2) = webox_set_children(wbx, list0_pair(x1, x2)) implement {}(*tmp*) webox_set_children_3 (wbx, x1, x2, x3) = webox_set_children(wbx, x1::x2::x3::nil0()) implement {}(*tmp*) webox_set_children_4 (wbx, x1, x2, x3, x4) = webox_set_children(wbx, x1::x2::x3::x4::nil0()) // end // end of [local] (* ****** ****** *) implement webox_get_tabstyle (wbx) = let // val opt = webox_search(wbx, TABSTYLE) // in // case+ opt of | ~None_vt() => TSnone((*void*)) // end of [None_vt] | ~Some_vt(gv) => let val-GVboxed(x) = gv in $UN.cast{tabstyle}(x) end // end of [Some_vt] // end // end of [webox_get_tabstyle] (* ****** ****** *) // implement webox_set_tabstyle (wbx, ts) = ( webox_insert_any(wbx, TABSTYLE, GVboxed(ts)) ) // (* ****** ****** *) implement webox_get_pcentlst (wbx) = let // val opt = webox_search(wbx, PCENTLST) // in // case+ opt of | ~None_vt() => list0_nil() | ~Some_vt(gv) => let val-GVboxed(pcs) = gv in $UN.cast{pcentlst}(pcs) end // end of [Some_vt] // end // end of [webox_get_percentlst] (* ****** ****** *) // implement webox_set_pcentlst (wbx, pcs) = ( webox_insert_any(wbx, PCENTLST, GVboxed(pcs)) ) // (* ****** ****** *) implement pcentlst_get_at (pcs, i) = let // fun loop ( pcs: pcentlst, i: int ) : pcent = ( case+ pcs of | list0_nil() => ( PCnone() ) (* list_nil *) | list0_cons(pc, pcs) => if i > 0 then loop(pcs, i-1) else pc // end of [list_cons] ) (* end of [loop] *) // in loop(pcs, i) end // end of [pcentlst_get_at] (* ****** ****** *) implement webox_get_content (wbx) = let // val opt = webox_search(wbx, CONTENT) // in // case+ opt of | ~Some_vt(gv) => let val-GVstring(c0) = gv in c0 end | ~None_vt((*void*)) => ""(*default*) // end // end of [webox_get_content] (* ****** ****** *) // implement webox_set_content (wbx, c0) = ( webox_insert_any(wbx, CONTENT, GVstring(c0)) ) // (* ****** ****** *) implement webox_get_fcontent (wbx) = let // val opt = webox_search(wbx, FCONTENT) // in // case+ opt of | ~Some_vt(gv) => let val-GVthunk(f0) = gv in f0 end | ~None_vt((*void*)) => (lam() => ()) // end // end of [webox_get_fcontent] (* ****** ****** *) // implement webox_set_fcontent (wbx, f0) = ( webox_insert_any(wbx, FCONTENT, GVthunk(f0)) ) // (* ****** ****** *) local // val theUID = ref(0): ref(int) // fun theUID_getinc () = let val n = theUID[] in theUID[] := n+1; n end // in (* in-of-local *) implement webox0_make ( // argumentless ) = wbx where { // val uid = theUID_getinc() val wbx = ref(list0_nil(*void*)) // val ((*void*)) = webox_insert_any (wbx, UID, GVint(uid)) // } (* end of [webox0_make] *) end // end of [local] (* ****** ****** *) // implement {}(*tmp*) webox_make () = webox0_make () // (* ****** ****** *) // implement {}(*tmp*) webox_make_name (name) = wbx where { // val wbx = webox_make() val ((*void*)) = webox_insert_any(wbx, NAME, GVstring(name)) // } (* end of [webox_make_name] *) // (* ****** ****** *) // implement {}(*tmp*) webox_make_name_width (name, width) = wbx where { // val wbx = webox_make_name(name) val ((*void*)) = webox_insert_any(wbx, WIDTH, GVint(width)) // } (* end of [webox_make_name_width] *) // (* ****** ****** *) // implement {}(*tmp*) webox_make_name_pwidth (name, pwidth) = wbx where { // val wbx = webox_make_name(name) val ((*void*)) = webox_insert_any(wbx, PWIDTH, GVint(pwidth)) // } (* end of [webox_make_name_pwidth] *) // (* ****** ****** *) implement {}(*tmp*) gprint_webox_width (wbx) = let // val w = wbx.width() // in // if (w >= 0) then ( gprintln! ( "width: ", w, "px;" ) ) else let // val pw = wbx.pwidth() // in if pw >= 0 then gprintln! ("width: ", pw, "%;") // end of [if] end // end of [else] // end // end of [gprint_webox_width] (* ****** ****** *) implement {}(*tmp*) gprint_webox_height (wbx) = let // val h = wbx.height() // in // if h >= 0 then ( gprintln! ( "height: ", h, "px;" ) ) else let // val ph = wbx.pheight() // in if ph >= 0 then gprintln! ("height: ", ph, "%;") // end of [if] end // end of [else] // end // end of [gprint_webox_height] // (* ****** ****** *) implement {}(*tmp*) gprint_webox_color (wbx) = let // val clr = wbx.color() // in // if isneqz(clr) then gprintln! ("color: ", clr, ";") // end // end of [gprint_webox_color] (* ****** ****** *) implement {}(*tmp*) gprint_webox_bgcolor (wbx) = let // val clr = wbx.bgcolor() // in // if isneqz(clr) then gprintln! ("background-color: ", clr, ";") // end // end of [gprint_webox_bgcolor] (* ****** ****** *) implement {}(*tmp*) gprint_css_preamble() = () implement {}(*tmp*) gprint_css_postamble() = () (* ****** ****** *) implement {}(*tmp*) gprint_webox_css_one (wbx0) = () where { // fun auxlst ( wbxs: weboxlst, i: int ) : void = ( // case+ wbxs of | list0_nil () => () | list0_cons (wbx, wbxs) => let val () = if i > 0 then gprint(", ") // end of [if] val () = gprint(wbx.name()) in auxlst (wbxs, i+1) end // end of [list_cons] ) // val name = wbx0.name() // val () = gprint! ("#", name, " {\n") // val () = gprint_string ("/*") val () = gprint_string ("\nparent: ") // val () = ( // case+ wbx0.parent() of // case+ | None() => () | Some(wbx) => gprint (wbx.name()) // ) (* end of [val] *) // val () = gprint_string("\nchildren: ") val () = auxlst (wbx0.children(), 0(*i*)) // val ((*closing*)) = gprint_string ("\n*/\n") // val () = gprint_webox_width (wbx0) val () = gprint_webox_height(wbx0) // val () = gprint_webox_color(wbx0) val () = gprint_webox_bgcolor(wbx0) // val ((*closing*)) = gprintln! ("} /* ", name, " */") // } (* end of [gprint_webox_css_one] *) (* ****** ****** *) implement {}(*tmp*) gprint_webox_css_all (x0) = let // val xs = x0.children() // val () = gprint_weboxlst_css_all(xs) val () = if isneqz(xs) then gprint_newline() // in gprint_webox_css_one(x0) end // end of [gprint_webox_css_all] (* ****** ****** *) implement {}(*tmp*) gprint_weboxlst_css_all (xs) = let // fun loop ( xs: weboxlst, i: int ) : void = case+ xs of | list0_nil() => () | list0_cons(x, xs) => let val () = if i > 0 then gprint ("\n") val () = gprint_webox_css_all(x) in loop (xs, i+1) end // end of [list_cons] // end of [loop] // in loop (xs, 0) end // end of [gprint_weboxlst_css_all] (* ****** ****** *) // implement {}(*tmp*) gprint_webox_head_beg() = () // implement {}(*tmp*) gprint_webox_head_end() = () // (* ****** ****** *) // implement {}(*tmp*) gprint_webox_body_end() = () implement {}(*tmp*) gprint_webox_body_after() = () // (* ****** ****** *) extern fun{} gprint_webox_html (wbx0: webox): void extern fun{} gprint_weboxlst_html ( tbs: tabstyle, pcs: pcentlst, xs: weboxlst ) : void // end-of-function (* ****** ****** *) implement {}(*tmp*) gprint_webox_html (wbx0) = let // val name = wbx0.name() // val () = gprint! ( "
\n" ) (* end of [val] *) // val wbxs = wbx0.children() // val () = ( // if isneqz(wbxs) then let // val ts = wbx0.tabstyle() val pcs = webox_get_pcentlst(wbx0) // val () = gprint(wbx0.content()) // in gprint_weboxlst_html(ts, pcs, wbxs) end // end of [then] else let // val msg = wbx0.content((*void*)) // val opt = webox_search(wbx0, FCONTENT) // val isnil = iseqz(msg) val ((*void*)) = (if isnil then () else gprint(msg)) // end of [val] // in case+ opt of | ~None_vt() => ( if isnil then gprint! ("[", name , "]\n") // end of [val] ) | ~Some_vt(gv) => ( let val-GVthunk(f0) = gv in f0() end ) // end of [case] end // end of [else] // ) : void // end of [val] // val ((*closing*)) = gprintln! ("
") // in // nothing end // end of [gprint_webox_html] (* ****** ****** *) implement {}(*tmp*) gprint_weboxlst_html (tbs, pcs, wbxs) = let // val isbox = tbs.isbox() val ishbox = tbs.ishbox() val isvbox = tbs.isvbox() // fun gprint_hbox_pcent (pc: pcent): void = ( case+ pc of | PCnone() => () | PChard(n) => gprint!("width:", n, "%;") | PCsoft(n) => gprint!("width:", n, "%;height:0px;") ) // fun gprint_vbox_pcent (pc: pcent): void = ( case+ pc of | PCnone() => () | PChard(n) => gprint!("height:", n, "%;") | PCsoft(n) => gprint!("width:0px;height:", n, "%;") ) // fun loop{i:nat} ( wbxs: weboxlst, i: int i ) : void = let in // case+ wbxs of | list0_nil ((*void*)) => () // end of [list0_nil] | list0_cons (wbx, wbxs) => let val () = if i > 0 then gprint ("\n") val () = if isvbox then let val pc = pcentlst_get_at(pcs, i) overload gprint with gprint_vbox_pcent in gprint! ("\n") end // end of [then] // end of [if] // val () = if ishbox then let val pc = pcentlst_get_at(pcs, i) overload gprint with gprint_hbox_pcent in gprint! ("\n") // end of [if] end // end of [then] // end of [if] // // HX: there is no halign! // val () = if isvbox then gprint ("\n") // val () = gprint_webox_html<>(wbx) // val () = if isvbox then gprint ("\n") val () = if ishbox then gprint ("\n") val () = if isvbox then gprint ("\n") in loop (wbxs, i+1) end // end of [list_cons] end // end of [loop] // val () = if isbox then ( // gprint( "\ ") (* end of [val] *) // ) (* end of [then] *) // end of [if] // val () = if ishbox then ( gprint("\n") ) // val () = loop (wbxs, 0) // val () = if ishbox then gprint ("\n") val () = if ishbox then gprint ("
\n") val () = if isvbox then gprint ("\n") // in // nothing end // end of [gprint_weboxlst_html] (* ****** ****** *) implement {}(*tmp*) gprint_webox_html_all (wbx0) = let // val () = gprint!( "\ \n\ \n\ \n\ ") (* end of [val] *) // val () = gprint_webox_head_beg<>() // val () = gprint("\n") // val () = gprint_webox_head_end<>() // val () = gprint("\n") // val () = gprint("\n") val () = gprint_webox_html<>(wbx0) val () = gprint_webox_body_end<>() val () = gprint("\n") // val () = gprint_webox_body_after<>() // val () = gprint("\n") // val ((*flushing*)) = gprint_flush<>() // in // nothing end // end of [gprint_webox_html_all] (* ****** ****** *) (* end of [weboxy.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/Makefile_test0000644000175000017500000000044513431250607026603 0ustar brandonbrandon# # For testing # ###### NPM=npm RMRF=rm -rf ###### all:: ###### SUBDIRS := SUBDIRS += TEST ###### all:: ; $(NPM) install ###### all:: ; \ for i in $(SUBDIRS); do $(MAKE) -C $$i testall; done ###### cleanall:: ; $(RMRF) ./node_modules ###### ###### end of [Makefile_test] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/mydepies.hats0000644000175000017500000000032513431250607026601 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-02-09 // For upstream staloading // (* ****** ****** *) // #include "$PATSHOMELOCS\ /atscntrb-hx-teaching-bucs/mylibies.hats" // (* ****** ****** *) (* end of [mydepies.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/TEST/0000755000175000017500000000000013431250607024660 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/TEST/params.hats0000644000175000017500000000054613431250607027031 0ustar brandonbrandon(* ****** ****** *) (* ** params for testing weboxy *) // #define thePage_width 880(*pix*) #define thePageBody_width 720(*pix*) #define thePageSidebar_width 160(*pix*) // #assert ( thePage_width == thePageBody_width + thePageSidebar_width ) (* end of [#assert] *) // #define TESTING 0 #define RANDCOLOR 0 // (* ****** ****** *) (* end of [params.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/TEST/ATS2LANG_layout.dats0000644000175000017500000001114413431250607030306 0ustar brandonbrandon(* ** Testing weboxy *) (* ****** ****** *) // #include "share/atspre_define.hats" // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #include "./../mydepies.hats" // (* ****** ****** *) // #include "./../DATS/weboxy.dats" // (* ****** ****** *) // implement randcolor<> ((*void*)) = let // val M = 256 // val r = randint<>(M) val b = randint<>(M) val g = randint<>(M) // val bsz = 16 val (pf,pfgc|p) = malloc_gc(i2sz(bsz)) val ( (*void*) ) = $extfcall ( void , "snprintf", p, bsz, "#%02x%02x%02x", i2u(r), i2u(b), i2u(g) ) (* end of [$extfcall] *) // in $UN.castvwtp0{string}((pf, pfgc | p)) end // end of [randcolor] // implement randcolor_initize<> ( // argumentless ) = $BUCS320.srandom_with_time<>((*void*)) // (* ****** ****** *) local val webox_make_ = webox_make<> in (* in-of-local *) implement {}(*tmp*) webox_make () = wbx where { val wbx = webox_make_ () val () = wbx.bgcolor(randcolor()) } (* end of [webox_make] *) end // end of [local] (* ****** ****** *) // val () = randcolor_initize () // (* ****** ****** *) // val thePage = webox_make_name ("thePage") // (* ****** ****** *) // val thePageLeft = webox_make_name ("thePageLeft") val thePageRight = webox_make_name ("thePageRight") val () = thePage.tabstyle(TShbox) val () = thePage.pcentlst (g0ofg1($list(PChard(15), PCnone()))) val () = thePage.children(thePageLeft, thePageRight) // (* ****** ****** *) // val thePageRHeader = webox_make_name ("thePageRHeader") val thePageRHeaderTop = webox_make_name ("thePageRHeaderTop") val thePageRHeaderSep = webox_make_name ("thePageRHeaderSep") // val () = thePageRHeader.children (thePageRHeaderTop, thePageRHeaderSep) // (* ****** ****** *) val () = thePageRHeaderTop.content ("\ The ATS Programming Language
Unleashing the Potentials of Types and Templates
") (* end of [val] *) (* ****** ****** *) val thePageRBody = webox_make_name ("thePageRBody") val thePageRBodyLeft = webox_make_name ("thePageRBodyLeft") val thePageRBodyRight = webox_make_name ("thePageRBodyRight") // val () = thePageRBodyLeft.height (600) val () = thePageRBodyRight.height (600) // val () = thePageRBody.tabstyle(TShbox) val () = thePageRBody.pcentlst (g0ofg1($list(PChard(75), PChard(25)))) val () = thePageRBody.children(thePageRBodyLeft, thePageRBodyRight) // (* ****** ****** *) // val thePageRBodyLHeader = webox_make_name("thePageRBodyLHeader") val thePageRBodyLContent = webox_make_name("thePageRBodyLContent") // val () = thePageRBodyLeft.children (thePageRBodyLHeader, thePageRBodyLContent) // (* ****** ****** *) // val thePageRFooter = webox_make_name("thePageRFooter") val thePageRFooterSep = webox_make_name("thePageRFooterSep") val thePageRFooterRest = webox_make_name("thePageRFooterRest") // val () = thePageRFooterRest.content ("This page is created with help from ATS/weboxy") // val () = thePageRFooter.children(thePageRFooterSep, thePageRFooterRest) // (* ****** ****** *) // val () = thePageRight.children(thePageRHeader, thePageRBody, thePageRFooter) // (* ****** ****** *) // val theBodyProp = webox_make_name("theBodyProp") // val () = theBodyProp.bgcolor("") // val () = theBodyProp.children(thePage) // (* ****** ****** *) implement gprint_css_preamble<> ((*void*)) = let // val () = gprint ( "\ .center {\n\ margin-left: auto;\n\ margin-right: auto;\n\ }\n\ ") (* end of [gprint] *) // in // nothing end // end of [gprint_css_preamble] (* ****** ****** *) implement gprint_css_postamble<> ((*void*)) = let // val () = gprint ( "\ body { font-family: sans-serif; background-color: #213449; /* dark blue */ }\n\ ") (* end of [gprint] *) // val () = gprint ( "\ #thePage {\n\ width: 85%;\n\ margin-left: auto;\n\ margin-right: auto;\n\ }\n\ ") (* end of [gprint] *) // val () = gprint ( "\ #thePageRHeader {\n\ text-align: center; }\n\ ") (* end of [gprint] *) // val () = gprint ( "\ #thePageRBodyLHeader\n\ {\n\ text-align: center;\n\ }\n\ ") (* end of [gprint] *) // val () = gprint ( "\ #thePageRFooter {\n\ text-align: center;\n\ }\n\ ") (* end of [gprint] *) // val () = gprint ( "\ theHeaderLine1 {\n\ font-size: 225%;\n\ font-weight: bold;\n\ }\n\ theHeaderLine2 {\n\ font-size: 150%;\n\ font-weight: bold;\n\ }\n\ ") (* end of [gprint] *) // in // nothing end // end of [gprint_css_postamble] (* ****** ****** *) implement main0 () = { // implement gprint$out<> ( // argless ) = stdout_ref // val () = gprint_webox_html_all<>(theBodyProp) // } (* end of [main0] *) (* ****** ****** *) (* end of [ATS2LANG_layout.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/TEST/Makefile0000644000175000017500000000173013431250607026321 0ustar brandonbrandon# # A Simple Makefile # ###### include \ $(PATSHOME)/share/atsmake-pre.mk ###### CFLAGS += -O2 ###### LDFLAGS := LDFLAGS += -lgc ###### all:: regress:: cleanall:: ###### # all:: \ BUCS320_layout BUCS320_layout: \ BUCS320_layout.dats; \ $(PATSCC2) \ -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -o $@ $< # regress:: \ BUCS320_layout.html BUCS320_layout.html: BUCS320_layout; ./$< > $@ # ###### # all:: \ ATS2LANG_layout ATS2LANG_layout: \ ATS2LANG_layout.dats; \ $(PATSCC2) \ -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -o $@ $< # regress:: \ ATS2LANG_layout.html ATS2LANG_layout.html: ATS2LANG_layout; ./$< > $@ # ###### include $(PATSHOME)/share/atsmake-post.mk ###### testall:: all testall:: regress testall:: cleanall ###### # cleanats:: ; $(RMF) *_?ats.c # cleanats:: ; $(RMF) BUCS320_layout cleanats:: ; $(RMF) ATS2LANG_layout # ###### # cleanall:: cleanats # cleanall:: ; $(RMF) BUCS320_layout.html cleanall:: ; $(RMF) ATS2LANG_layout.html # ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/TEST/BUCS320_layout.dats0000644000175000017500000001030113431250607030106 0ustar brandonbrandon(* ** Testing weboxy *) (* ****** ****** *) // #include "share/atspre_define.hats" // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #include "./../mydepies.hats" // (* ****** ****** *) // #include "./../DATS/weboxy.dats" // (* ****** ****** *) // implement randcolor<> ((*void*)) = let // val M = 256 // val r = randint<>(M) val b = randint<>(M) val g = randint<>(M) // val bsz = 16 val (pf,pfgc|p) = malloc_gc(i2sz(bsz)) val ( (*void*) ) = $extfcall ( void , "snprintf", p, bsz, "#%02x%02x%02x", i2u(r), i2u(b), i2u(g) ) (* end of [$extfcall] *) // in $UN.castvwtp0{string}((pf, pfgc | p)) end // end of [randcolor] // implement randcolor_initize<> ( // argumentless ) = $BUCS320.srandom_with_time<>((*void*)) // (* ****** ****** *) local val webox_make_ = webox_make<> in (* in-of-local *) implement {}(*tmp*) webox_make () = wbx where { val wbx = webox_make_ () val () = wbx.bgcolor(randcolor()) } (* end of [webox_make] *) end // end of [local] (* ****** ****** *) // val () = randcolor_initize () // (* ****** ****** *) // val thePage = webox_make_name ("thePage") // end of [thePage] (* ****** ****** *) // val thePageHeader = webox_make_name ("thePageHeader") val thePageHeaderTop = webox_make_name ("thePageHeaderTop") val thePageHeaderSep = webox_make_name ("thePageHeaderSep") // val () = thePageHeader.children (thePageHeaderTop, thePageHeaderSep) // (* ****** ****** *) val () = thePageHeaderTop.content ("\ BU CAS CS320
Concepts of Programming Languages
Semester
") (* end of [val] *) (* ****** ****** *) val thePageBody = webox_make_name("thePagebody") val thePageBodyL = webox_make_name("thePagebodyL") val thePageBodyR = webox_make_name("thePagebodyR") // val () = thePageBodyL.height(600) val () = thePageBodyR.height(600) // val () = thePageBody.tabstyle(TShbox) val () = thePageBody.pcentlst (g0ofg1($list(PChard(80), PChard(20)))) val () = thePageBody.children(thePageBodyL, thePageBodyR) // (* ****** ****** *) // val thePageFooter = webox_make_name("thePageFooter") val thePageFooterSep = webox_make_name("thePageFooterSep") val thePageFooterRest = webox_make_name("thePageFooterRest") // val () = thePageFooterRest.content ("This page is created with help from ATS/weboxy") // val () = thePageFooter.children(thePageFooterSep, thePageFooterRest) // (* ****** ****** *) // val thePage = webox_make_name("thePage") // val () = thePage.children(thePageHeader, thePageBody, thePageFooter) // (* ****** ****** *) // val theBodyProp = webox_make_name ("theBodyProp") // end of [theBodyProp] // val () = theBodyProp.children(thePage) // (* ****** ****** *) implement gprint_webox_head_beg<> () = let // val () = gprint ( "\ \n\ BUCS320-layout\n\ ") (* end of [gprint] *) // in // nothing end // end of [gprint_webox_head_beg<>] (* ****** ****** *) implement gprint_css_preamble<> ((*void*)) = let // val () = gprint ( "\ .center {\n\ margin-left: auto;\n\ margin-right: auto;\n\ }\n\ ") (* end of [gprint] *) // in // nothing end // end of [gprint_css_preamble] (* ****** ****** *) implement gprint_css_postamble<> ((*void*)) = let // val () = gprint ( "\ body { font-family: sans-serif; background-color: #213449; /* dark blue */ }\n\ ") (* end of [gprint] *) // val () = gprint ( "\ #thePage {\n\ width: 72%;\n\ margin-left: auto;\n\ margin-right: auto;\n\ }\n\ ") (* end of [gprint] *) // val () = gprint ( "\ #thePageHeader {\n\ text-align: center; }\n\ ") (* end of [gprint] *) // val () = gprint ( "\ #thePageFooter {\n\ text-align: center; }\n\ ") (* end of [gprint] *) // val () = gprint ( "\ theHeaderLine1 {\n\ font-size: 225%;\n\ font-weight: bold;\n\ }\n\ theHeaderLine2 {\n\ font-size: 150%;\n\ font-weight: bold;\n\ }\n\ ") (* end of [gprint] *) // in // nothing end // end of [gprint_css_postamble] (* ****** ****** *) implement main0 () = { // implement gprint$out<> ( // argless ) = stdout_ref // val () = gprint_webox_html_all<>(theBodyProp) // } (* end of [main0] *) (* ****** ****** *) (* end of [BUCS320_layout.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/mylibies.dats0000644000175000017500000000027413431250607026576 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-26: // Note that [weboxy.dats] is to be included, // and this file is intentionlly kept to empty! // (* ****** ****** *) (* end of [mylibies.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/package.json0000644000175000017500000000103013431250607026361 0ustar brandonbrandon{ "name": "atscntrb-hx-weboxy" , "version": "1.0.4" , "description": "This package is for doing simple webpage layout..." , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/npm-utils/contrib/libats-/hwxi/weboxy" } , "keywords": [ "ATS", "weboxy" ] , "dependencies": { "atscntrb-hx-teaching-bucs": ">=1.0.0" } , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "The package is stored at ${PATSHOME}/npm-utils/contrib/libats-hwxi/weboxy/." } ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/weboxy/README0000644000175000017500000000025413431250607024762 0ustar brandonbrandon###### # # README for weboxy # ###### It is a small package for doing webpage layout. Please see some examples given in the TEST directory. ###### end of [weboxy] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/.keeper0000644000175000017500000000000013431250607024026 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/0000755000175000017500000000000013431250607024120 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/DATS/0000755000175000017500000000000013431250607024653 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/DATS/OpenSCAD_util.dats0000644000175000017500000000611513431250607030124 0ustar brandonbrandon(* ****** ****** *) // // Author: Hongwei Xi // Start time: May, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) (* ** For supporting in ATS a form ** of meta-programming for OpenSCAD *) (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload MATH = "libats/libc/SATS/math.sats" // (* ****** ****** *) // #staload "./../SATS/OpenSCAD.sats" #staload "./../SATS/OpenSCAD_util.sats" // (* ****** ****** *) // implement point2_make_int2 (x, y) = ( POINT2 (g0i2f(x), g0i2f(y)) ) // implement point2_make_float2 (x, y) = POINT2(x, y) // (* ****** ****** *) // implement point3_make_int3 (x, y, z) = ( POINT3 (g0i2f(x), g0i2f(y), g0i2f(z)) ) // implement point3_make_float3 (x, y, z) = POINT3(x, y, z) // (* ****** ****** *) // // HX: // POINT2 and VECTOR2 must // have the same representation!!! // implement point2vector_2d(p2d) = $UN.cast(p2d) implement vector2point_2d(v2d) = $UN.cast(v2d) // (* ****** ****** *) // // HX: // POINT3 and VECTOR3 must // have the same representation!!! // implement point2vector_3d(p3d) = $UN.cast(p3d) implement vector2point_3d(v3d) = $UN.cast(v3d) // (* ****** ****** *) macdef sqrt = $MATH.sqrt_double (* ****** ****** *) // implement length_v2d(v2d) = let val+VECTOR2(x, y) = v2d in sqrt(x*x+y*y) end // end of [length_v2d] // implement length_v3d(v3d) = let val+VECTOR3(x, y, z) = v3d in sqrt(x*x+y*y+z*z) end // end of [length_v3d] // (* ****** ****** *) implement distance_p2d_p2d (p1, p2) = let // val+POINT2(x1, y1) = p1 val+POINT2(x2, y2) = p2 // val x12 = x2 - x1 and y12 = y2 - y1 // in sqrt(x12*x12 + y12*y12) end // end of [distance_p2d_p2d] (* ****** ****** *) implement distance_p3d_p3d (p1, p2) = let // val+POINT3(x1, y1, z1) = p1 val+POINT3(x2, y2, z2) = p2 // val x12 = x2 - x1 and y12 = y2 - y1 and z12 = z2 - z1 // in sqrt(x12*x12 + y12*y12 + z12*z12) end // end of [distance_p3d_p3d] (* ****** ****** *) implement add_p3d_v3d (p3d, v3d) = let // val POINT3(x, y, z) = p3d val VECTOR3(vx, vy, vz) = v3d // in POINT3(x+vx, y+vy, z+vz) end // end of [add_p3d_v3d] (* ****** ****** *) implement sub_p3d_v3d (p3d, v3d) = let // val POINT3(x, y, z) = p3d val VECTOR3(vx, vy, vz) = v3d // in POINT3(x-vx, y-vy, z-vz) end // end of [sub_p3d_v3d] implement sub_p3d_p3d (p3d1, p3d2) = let // val POINT3(x1, y1, z1) = p3d1 val POINT3(x2, y2, z2) = p3d2 // in VECTOR3(x1-x2, y1-y2, z1-z2) end // end of [sub_p3d_p3d] (* ****** ****** *) // implement mul_int_v3d (c, v3d) = let // val VECTOR3(vx, vy, vz) = v3d // in VECTOR3(c * vx, c * vy, c * vz) end // end of [mul_int_v3d] // implement mul_float_v3d (c, v3d) = let // val VECTOR3(vx, vy, vz) = v3d // in VECTOR3(c * vx, c * vy, c * vz) end // end of [mul_float_v3d] // (* ****** ****** *) // implement div_v3d_int (v3d, c) = let // val VECTOR3(vx, vy, vz) = v3d // in VECTOR3(vx / c, vy / c, vz / c) end // end of [div_v3d_int] // implement div_v3d_float (v3d, c) = let // val VECTOR3(vx, vy, vz) = v3d // in VECTOR3(vx / c, vy / c, vz / c) end // end of [div_v3d_float] // (* ****** ****** *) (* end of [OpenSCAD_util.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/DATS/OpenSCAD_label.dats0000644000175000017500000000150013431250607030217 0ustar brandonbrandon(* ****** ****** *) // // Author: Hongwei Xi // Start time: May, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) (* ** For supporting in ATS a form ** of meta-programming for OpenSCAD *) (* ****** ****** *) // #staload "./../SATS/OpenSCAD.sats" // (* ****** ****** *) local // assume label_type = string // in (*in-of-local*) // (* ****** ****** *) // implement label_make(x) = x // (* ****** ****** *) // implement fprint_label (out, x) = fprint_string(out, x) // (* ****** ****** *) // implement compare_label_label (l1, l2) = compare_string_string(l1, l2) // (* ****** ****** *) end // end of [local] (* ****** ****** *) // implement eq_label_label (l1, l2) = (compare(l1, l2) = 0) implement neq_label_label (l1, l2) = (compare(l1, l2) != 0) // (* ****** ****** *) (* end of [OpenSCAD_label.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/DATS/OpenSCAD_argenv.dats0000644000175000017500000000450013431250607030425 0ustar brandonbrandon(* ****** ****** *) // // Author: Hongwei Xi // Start time: May, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) (* ** For implementing ** a DSL that supports ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // #staload "./../SATS/OpenSCAD.sats" // (* ****** ****** *) // implement scadexp_int (i0) = SCADEXPint(i0) implement scadexp_bool (b0) = SCADEXPbool(b0) implement scadexp_float (f0) = SCADEXPfloat(f0) implement scadexp_string (s0) = SCADEXPstring(s0) // implement scadarg_int(i0) = SCADARGexp(SCADEXPint(i0)) implement scadarg_bool(b0) = SCADARGexp(SCADEXPbool(b0)) implement scadarg_float(f0) = SCADARGexp(SCADEXPfloat(f0)) implement scadarg_string(s0) = SCADARGexp(SCADEXPstring(s0)) // (* ****** ****** *) // assume scadenv_type = List0(@(label, scadexp)) // (* ****** ****** *) // implement scadenv_nil() = list_nil() // implement scadenv_sing(l, x) = let val lx = @(l, x) in list_sing(lx) end // end of [scadenv_sing] // (* ****** ****** *) // implement scadenv_is_nil(env) = list_is_nil(env) implement scadenv_is_cons(env) = list_is_cons(env) // (* ****** ****** *) implement fprint_scadenv (out, lxs) = let // fun loop ( i: int, lxs: scadenv ) : void = ( case+ lxs of | list_nil() => () | list_cons(lx, lxs) => ( if i > 0 then fprint(out, ", "); // end of [if] fprint!(out, lx.0, "=", lx.1); loop(i+1, lxs) ) ) // in loop(0, lxs) end // end of [fprint_scadenv] (* ****** ****** *) implement scadenv_search (lxs, k0) = loop(lxs) where { // fun loop ( lxs: scadenv ) : Option_vt(scadexp) = ( case+ lxs of | list_nil () => None_vt() // list_nil | list_cons(lx, lxs) => if (k0 = lx.0) then Some_vt(lx.1) else loop(lxs) // end of [if] ) // } (* end of [scadenv_search] *) (* ****** ****** *) // implement scadenv_insert_any (lxs, k0, x0) = ( scadenv_insert_any(lxs, k0, x0) ) // (* ****** ****** *) // implement scadenv_femit (out, lxs) = let // fun loop ( i: int, lxs: scadenv ) : void = ( case+ lxs of | list_nil() => () | list_cons(lx, lxs) => loop(i+1, lxs) where { val () = if i > 0 then fprint(out, ", ") // end of [if] val () = fprint!(out, lx.0, "=") val () = scadexp_femit(out, lx.1) } ) (* end of [loop] *) // in loop(0, lxs) end // end of [scadenv_femit] (* ****** ****** *) (* end of [OpenSCAD_argenv.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/DATS/OpenSCAD_meta.dats0000644000175000017500000003531213431250607030076 0ustar brandonbrandon(* ****** ****** *) // // Author: Hongwei Xi // Start time: May, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) (* ** For implementing ** a DSL that supports ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // #staload "./../SATS/OpenSCAD.sats" #staload "./../SATS/OpenSCAD_meta.sats" // (* ****** ****** *) // implement scadobj_fapp (fopr, env0, args) = SCADOBJfapp(fopr, env0, args) // implement scadobj_fapp_enil (fopr, args) = let val env0 = scadenv_nil() in scadobj_fapp(fopr, env0, args) end // scadobj_fapp_enil // (* ****** ****** *) implement scadobj_cube_int1 (x) = let // val x = SCADEXPint(x) val x = SCADARGexp(x) // val env = scadenv_nil((*void*)) // in SCADOBJfapp("cube", env, list_sing(x)) end // end of [scadobj_cube_int1] implement scadobj_cube_int1_bool (x, ct) = let // val x = SCADEXPint(x) val x = SCADARGexp(x) // val l0 = label("center") val ct = SCADEXPbool(ct) // val env = scadenv_sing(l0, ct) // in SCADOBJfapp("cube", env, list_sing(x)) end // end of [scadobj_cube_int1] (* ****** ****** *) implement scadobj_cube_float1 (x) = let // val x = SCADEXPfloat(x) // val x = SCADARGexp(x) // val env = scadenv_nil((*void*)) // in SCADOBJfapp("cube", env, list_sing(x)) end // end of [scadobj_cube_float1] implement scadobj_cube_float1_bool (x, ct) = let // val x = SCADEXPfloat(x) // val x = SCADARGexp(x) // val l0 = label("center") val ct = SCADEXPbool(ct) // val env = scadenv_sing(l0, ct) // in SCADOBJfapp("cube", env, list_sing(x)) end // end of [scadobj_cube_float1] (* ****** ****** *) implement scadobj_cube_int3 (x, y, z) = let // val x = SCADEXPint(x) and y = SCADEXPint(y) and z = SCADEXPint(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val env = scadenv_nil((*void*)) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADOBJfapp("cube", env, xyz) end // end of [scadobj_cube_int3] implement scadobj_cube_int3_bool (x, y, z, ct) = let // val x = SCADEXPint(x) and y = SCADEXPint(y) and z = SCADEXPint(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val l0 = label("center") val ct = SCADEXPbool(ct) // val env = scadenv_sing(l0, ct) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADOBJfapp("cube", env, xyz) end // end of [scadobj_cube_int3_bool] (* ****** ****** *) implement scadobj_cube_float3 (x, y, z) = let // val x = SCADEXPfloat(x) and y = SCADEXPfloat(y) and z = SCADEXPfloat(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val env = scadenv_nil((*void*)) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADOBJfapp("cube", env, xyz) end // end of [scadobj_cube_float3] implement scadobj_cube_float3_bool (x, y, z, ct) = let // val x = SCADEXPfloat(x) and y = SCADEXPfloat(y) and z = SCADEXPfloat(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val l0 = label("center") val ct = SCADEXPbool(ct) // val env = scadenv_sing(l0, ct) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADOBJfapp("cube", env, xyz) end // end of [scadobj_cube_float3_bool] (* ****** ****** *) implement scadobj_square_int1 (x) = let // val x = SCADEXPint(x) val x = SCADARGexp(x) // val env = scadenv_nil((*void*)) // in SCADOBJfapp("square", env, list_sing(x)) end // end of [scadobj_square_int1] implement scadobj_square_int1_bool (x, ct) = let // val x = SCADEXPint(x) val x = SCADARGexp(x) // val l0 = label("center") val ct = SCADEXPbool(ct) // val env = scadenv_sing(l0, ct) // in SCADOBJfapp("square", env, list_sing(x)) end // end of [scadobj_square_int1] (* ****** ****** *) implement scadobj_square_float1 (x) = let // val x = SCADEXPfloat(x) // val x = SCADARGexp(x) // // val env = scadenv_nil((*void*)) // in SCADOBJfapp("square", env, list_sing(x)) end // end of [scadobj_square_float1] implement scadobj_square_float1_bool (x, ct) = let // val x = SCADEXPfloat(x) // val x = SCADARGexp(x) // val l0 = label("center") val ct = SCADEXPbool(ct) // val env = scadenv_sing(l0, ct) // in SCADOBJfapp("square", env, list_sing(x)) end // end of [scadobj_square_float1] (* ****** ****** *) implement scadobj_square_int2 (x, y) = let // val x = SCADEXPint(x) and y = SCADEXPint(y) // val xy = $list{scadexp}(x, y) val xy = SCADEXPvec(xy) // val env = scadenv_nil((*void*)) // val xy = $list{scadarg}(SCADARGexp(xy)) // in SCADOBJfapp("square", env, xy) end // end of [scadobj_square_int2] implement scadobj_square_int2_bool (x, y, ct) = let // val x = SCADEXPint(x) and y = SCADEXPint(y) // val xy = $list{scadexp}(x, y) val xy = SCADEXPvec(xy) // val l0 = label("center") val ct = SCADEXPbool(ct) // val env = scadenv_sing(l0, ct) // val xy = $list{scadarg}(SCADARGexp(xy)) // in SCADOBJfapp("square", env, xy) end // end of [scadobj_square_int2_bool] (* ****** ****** *) implement scadobj_square_float2 (x, y) = let // val x = SCADEXPfloat(x) and y = SCADEXPfloat(y) // val xy = $list{scadexp}(x, y) val xy = SCADEXPvec(xy) // val env = scadenv_nil((*void*)) // val xy = $list{scadarg}(SCADARGexp(xy)) // in SCADOBJfapp("square", env, xy) end // end of [scadobj_square_float2] implement scadobj_square_float2_bool (x, y, ct) = let // val x = SCADEXPfloat(x) and y = SCADEXPfloat(y) // val xy = $list{scadexp}(x, y) val xy = SCADEXPvec(xy) // val l0 = label("center") val ct = SCADEXPbool(ct) // val env = scadenv_sing(l0, ct) // val xy = $list{scadarg}(SCADARGexp(xy)) // in SCADOBJfapp("square", env, xy) end // end of [scadobj_square_float2_bool] (* ****** ****** *) implement scadobj_circle_int1 (rad) = let // val rad = SCADEXPint(rad) val rad = SCADARGexp(rad) // val env = scadenv_nil((*void*)) // in SCADOBJfapp("circle", env, list_sing(rad)) end // end of [scadobj_circle_int1] implement scadobj_circle_float1 (rad) = let // val rad = SCADEXPfloat(rad) // val rad = SCADARGexp(rad) // val env = scadenv_nil((*void*)) // in SCADOBJfapp("circle", env, list_sing(rad)) end // end of [scadobj_circle_float1] (* ****** ****** *) implement scadobj_sphere_int1 (rad) = let // val rad = SCADEXPint(rad) val rad = SCADARGexp(rad) // val env = scadenv_nil((*void*)) // in SCADOBJfapp("sphere", env, list_sing(rad)) end // end of [scadobj_sphere_int1] implement scadobj_sphere_float1 (rad) = let // val rad = SCADEXPfloat(rad) // val rad = SCADARGexp(rad) // val env = scadenv_nil((*void*)) // in SCADOBJfapp("sphere", env, list_sing(rad)) end // end of [scadobj_sphere_float1] (* ****** ****** *) // implement scadobj_sphere_at ( cntr, rad ) : scadobj = let val+POINT3(x, y, z) = cntr in scadobj_tfmapp(scadtfm_translate(x, y, z), scadobj_sphere(rad)) end // end of [scadobj_sphere_at] // (* ****** ****** *) implement scadobj_cylinder1_int2 (h, r) = let // val h = SCADEXPint(h) and r = SCADEXPint(r) // val h_l = label("h") val r_l = label("r") val h_a = SCADARGlabexp(h_l, h) and r_a = SCADARGlabexp(r_l, r) // val env = scadenv_nil((*void*)) // val hr_a = $list{scadarg}(h_a, r_a) // in SCADOBJfapp("cylinder", env, hr_a) end // end of [scadobj_cylinder1_int2] implement scadobj_cylinder1_int2_bool (h, r, ct) = let // val h = SCADEXPint(h) and r = SCADEXPint(r) // val h_l = label("h") val r_l = label("r") val h_a = SCADARGlabexp(h_l, h) and r_a = SCADARGlabexp(r_l, r) // val l0 = label("center") val ct = SCADEXPbool(ct) val env = scadenv_sing(l0, ct) // val hr_a = $list{scadarg}(h_a, r_a) // in SCADOBJfapp("cylinder", env, hr_a) end // end of [scadobj_cylinder1_int2_bool] (* ****** ****** *) implement scadobj_cylinder1_float2 (h, r) = let // val h = SCADEXPfloat(h) and r = SCADEXPfloat(r) // val h_l = label("h") val r_l = label("r") val h_a = SCADARGlabexp(h_l, h) and r_a = SCADARGlabexp(r_l, r) // val env = scadenv_nil((*void*)) // val hr_a = $list{scadarg}(h_a, r_a) // in SCADOBJfapp("cylinder", env, hr_a) end // end of [scadobj_cylinder1_float2] implement scadobj_cylinder1_float2_bool (h, r, ct) = let // val h = SCADEXPfloat(h) and r = SCADEXPfloat(r) // val h_l = label("h") val r_l = label("r") val h_a = SCADARGlabexp(h_l, h) and r_a = SCADARGlabexp(r_l, r) // val l0 = label("center") val ct = SCADEXPbool(ct) val env = scadenv_sing(l0, ct) // val hr_a = $list{scadarg}(h_a, r_a) // in SCADOBJfapp("cylinder", env, hr_a) end // end of [scadobj_cylinder1_float2_bool] (* ****** ****** *) // implement scadobj_unionlst (objs) = ( SCADOBJmapp("union", objs) ) implement scadobj_interlst (objs) = ( SCADOBJmapp("intersection", objs) ) implement scadobj_differlst (objs) = ( SCADOBJmapp("difference", objs) ) // (* ****** ****** *) implement scadobj_union2 (obj1, obj2) = let // val objs = $list{scadobj}(obj1, obj2) // in SCADOBJmapp("union", objs) end // end of [scadobj_union2] (* ****** ****** *) implement scadobj_inter2 (obj1, obj2) = let // val objs = $list{scadobj}(obj1, obj2) // in SCADOBJmapp("intersection", objs) end // end of [scadobj_inter2] (* ****** ****** *) implement scadobj_differ (obj1, obj2) = let // val objs = $list{scadobj}(obj1, obj2) // in SCADOBJmapp("difference", objs) end // end of [scadobj_differ] (* ****** ****** *) // implement scadobj_tfmapp_one (tfm, obj) = ( SCADOBJtfmapp(tfm, list_sing(obj)) ) implement scadobj_tfmapp_list (tfm, objs) = SCADOBJtfmapp(tfm, objs) // (* ****** ****** *) implement scadtfm_scale_int3 (x, y, z) = let // val x = SCADEXPint(x) and y = SCADEXPint(y) and z = SCADEXPint(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val env = scadenv_nil((*void*)) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADTFMextmcall("scale", env, xyz) end // end of [scadtfm_scale_int3] implement scadtfm_scale_float3 (x, y, z) = let // val x = SCADEXPfloat(x) and y = SCADEXPfloat(y) and z = SCADEXPfloat(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val env = scadenv_nil((*void*)) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADTFMextmcall("scale", env, xyz) end // end of [scadtfm_scale_float3] (* ****** ****** *) implement scadtfm_rotate_int3 (x, y, z) = let // val x = SCADEXPint(x) and y = SCADEXPint(y) and z = SCADEXPint(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val env = scadenv_nil((*void*)) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADTFMextmcall("rotate", env, xyz) end // end of [scadtfm_rotate_int3] implement scadtfm_rotate_float3 (x, y, z) = let // val x = SCADEXPfloat(x) and y = SCADEXPfloat(y) and z = SCADEXPfloat(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val env = scadenv_nil((*void*)) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADTFMextmcall("rotate", env, xyz) end // end of [scadtfm_rotate_float3] (* ****** ****** *) implement scadtfm_translate_int3 (x, y, z) = let // val x = SCADEXPint(x) and y = SCADEXPint(y) and z = SCADEXPint(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val env = scadenv_nil((*void*)) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADTFMextmcall("translate", env, xyz) end // end of [scadtfm_translate_int3] implement scadtfm_translate_float3 (x, y, z) = let // val x = SCADEXPfloat(x) and y = SCADEXPfloat(y) and z = SCADEXPfloat(z) // val xyz = $list{scadexp}(x, y, z) val xyz = SCADEXPvec(xyz) // val env = scadenv_nil((*void*)) // val xyz = $list{scadarg}(SCADARGexp(xyz)) // in SCADTFMextmcall("translate", env, xyz) end // end of [scadtfm_translate_float3] (* ****** ****** *) implement scadtfm_color_name(name) = let // val env = scadenv_nil((*void*)) // val name = SCADEXPstring(name) val name = $list{scadarg}(SCADARGexp(name)) // in SCADTFMextmcall("color", env, name) end // end of [scadtfm_color_name] (* ****** ****** *) implement scadtfm_color_rgba (r, g, b, a) = let // val r = SCADEXPfloat(r) val g = SCADEXPfloat(g) val b = SCADEXPfloat(b) val a = SCADEXPfloat(a) // val rgba = SCADEXPvec($list{scadexp}(r, g, b, a)) // val env = scadenv_nil((*void*)) // val rgba = SCADARGexp(rgba) val rgba = $list{scadarg}(rgba) // in SCADTFMextmcall("color", env, rgba) end // end of [scadtfm_color_rgba] (* ****** ****** *) // implement scadtfm_compose (tfm1, tfm2) = SCADTFMcompose(tfm1, tfm2) // (* ****** ****** *) implement scadobj_scale_int3 (x, y, z, obj) = ( scadobj_tfmapp(scadtfm_scale_int3(x, y, z), obj) ) (* scadobj_scale_int3 *) implement scadobj_scale_float3 (x, y, z, obj) = ( scadobj_tfmapp(scadtfm_scale_float3(x, y, z), obj) ) (* scadobj_scale_float3 *) (* ****** ****** *) implement scadobj_rotate_int3 (x, y, z, obj) = ( scadobj_tfmapp(scadtfm_rotate_int3(x, y, z), obj) ) (* scadobj_rotate_int3 *) implement scadobj_rotate_float3 (x, y, z, obj) = ( scadobj_tfmapp(scadtfm_rotate_float3(x, y, z), obj) ) (* scadobj_rotate_float3 *) (* ****** ****** *) implement scadobj_translate_int3 (x, y, z, obj) = ( scadobj_tfmapp(scadtfm_translate_int3(x, y, z), obj) ) (* scadobj_translate_int3 *) implement scadobj_translate_float3 (x, y, z, obj) = ( scadobj_tfmapp(scadtfm_translate_float3(x, y, z), obj) ) (* scadobj_translate_float3 *) (* ****** ****** *) implement scadobj_polyhedron (pts, faces, N) = let // macdef SEfloat(a) = SCADEXPfloat(,(a)) // local val fpt = lam ( pt: point3 ) : scadexp => let // val POINT3(x, y, z) = pt // in // SCADEXPvec ( $list{scadexp} ( SEfloat(x), SEfloat(y), SEfloat(z) ) ) (* SCADEXPvec *) // end // end of [let] in (*in-of-local*) val pts = SCADEXPvec ( list_vt2t (list_map_fun(pts, fpt)) ) end // end of [local] // local // val fface = lam ( ns: List0(int) ) : scadexp => SCADEXPvec ( list_vt2t ( list_map_fun (ns, lam(n) => SCADEXPint(n)) // list_map_fun ) ) (* SCADEXPvec *) // in (* in-of-local *) val faces = SCADEXPvec ( list_vt2t ( list_map_fun(faces, fface) ) // list_vt2t ) (* SCADEXPvec *) end // end of [local] // val pts = SCADARGlabexp(label"points", pts) // val faces = SCADARGlabexp( label"faces", faces ) // val N = SCADEXPint(N) val N = SCADARGlabexp(label"convexity", N) // val env = scadenv_nil((*void*)) val arglst = $list{scadarg}(pts, faces, N) // in SCADOBJfapp("polyhedron", env, arglst) end // end of [scadobj_polyhedron] (* ****** ****** *) implement scadobj_tetrahedron (p0, p1, p2, p3) = let // val pts = $list{point3}(p0, p1, p2, p3) // val f0 = $list(0, 1, 2) val f1 = $list(0, 2, 3) val f2 = $list(0, 3, 1) val f3 = $list(1, 3, 2) val faces = $list(f0, f1, f2, f3) // in scadobj_polyhedron(pts, faces, 2(*N*)) end // end of [scadobj_tetrahedron] (* ****** ****** *) implement scadobj_square_pyramid (p0, p1, p2, p3, p4) = let // val pts = $list{point3}(p0, p1, p2, p3, p4) // val f0 = $list(0, 1, 2) val f1 = $list(0, 2, 3) val f2 = $list(0, 3, 4) val f3 = $list(0, 4, 1) val f4 = $list(1, 4, 3, 2) val faces = $list(f0, f1, f2, f3, f4) // in scadobj_polyhedron(pts, faces, 2(*N*)) end // end of [scadobj_square_pyramid] (* ****** ****** *) (* end of [OpenSCAD_meta.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/DATS/OpenSCAD_print.dats0000644000175000017500000000300213431250607030273 0ustar brandonbrandon(* ****** ****** *) // // Author: Hongwei Xi // Start time: May, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) (* ** For implementing ** a DSL that supports ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // typedef charptr = $extype"atstype_string" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "./../SATS/OpenSCAD.sats" // (* ****** ****** *) // implement fprint_scadarg (out, arg) = ( case+ arg of | SCADARGexp(x) => ( fprint(out, x) ) | SCADARGlabexp(l, x) => ( fprint!(out, l, "=", x) ) ) // (* ****** ****** *) implement fprint_scadexp (out, exp) = ( case+ exp of | SCADEXPnil() => ( fprint!(out, "SCADEXPnil()") ) // | SCADEXPint(i) => ( fprint!(out, "SCADEXPint(", i, ")") ) // | SCADEXPbool(b) => ( fprint!(out, "SCADEXPbool(", b, ")") ) // | SCADEXPfloat ( f0 ) => $extfcall ( void , "fprintf", out, "SCADEXPfloat(%.2f)", f0 ) (* $extfcall *) // | SCADEXPstring ( s0 ) => $extfcall ( void , "fprintf", out , "SCADEXPstr(\"%s\")", $UN.cast{charptr}(s0) ) (* $extfcall *) // | SCADEXPvec(xs) => ( fprint!(out, "SCADEXPvec(", xs, ")") ) // | SCADEXPcond(x0, x1, x2) => ( fprint! ( out , "SCADEXPcond(", x0, "; ", x1, "; ", x2, ")" ) (* fprint! *) ) // | SCADEXPextfcall (fnm, env, args) => ( fprint!(out, fnm, "(", args, "; ", env, ")") ) ) (* end of [fprint_scadexp] *) (* ****** ****** *) (* end of [OpenSCAD_print.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/DATS/OpenSCAD_emit.dats0000644000175000017500000001120413431250607030100 0ustar brandonbrandon(* ****** ****** *) // // Author: Hongwei Xi // Start time: May, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) (* ** For implementing ** a DSL that supports ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // typedef charptr = $extype"atstype_string" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "./../SATS/OpenSCAD.sats" // (* ****** ****** *) // implement scadarg_femit (out, arg) = ( case+ arg of | SCADARGexp(x) => scadexp_femit(out, x) | SCADARGlabexp(l, x) => ( fprint!(out, l, "="); scadexp_femit(out, x) ) ) // (* ****** ****** *) implement scadarglst_femit (out, args) = loop(0, args) where { // fun loop ( i: int, xs: scadarglst ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => ( if i > 0 then fprint(out, ", "); // end of [if] scadarg_femit(out, x); loop(i+1, xs) ) (* end of [list_cons] *) ) // } (* end of [scadarglst_femit] *) (* ****** ****** *) implement scadarglst_env_femit (out, args, env) = { // val () = scadarglst_femit(out, args) // val iscons = scadenv_is_cons(env) // val () = if iscons then { val iscons = list_is_cons(args) val () = if iscons then fprint(out, ", ") val () = scadenv_femit(out, env) } (* end of [if] *) // end of [val] // } (* end of [scadarglst_env_femit] *) (* ****** ****** *) implement scadexp_femit (out, exp) = ( case+ exp of | SCADEXPnil() => ( fprint(out, "()") ) // | SCADEXPint(i) => ( fprint_int(out, i) ) // | SCADEXPbool(b) => ( fprint_string (out, ifval(b, "true", "false")) // fprint_string ) | SCADEXPfloat(f) => ( $extfcall(void, "fprintf", out, "%.2f", f) ) // | SCADEXPstring(s) => ( $extfcall ( void , "fprintf", out, "\"%s\"", $UN.cast{charptr}(s) ) (* $extfcall *) ) // | SCADEXPvec(xs) => ( fprint(out, "["); scadexplst_femit(out, xs); fprint(out, "]"); ) // | SCADEXPcond(x0, x1, x2) => ( fprint!(out, "(", x0, ") ? (", x1, ") : (", x2, ")") ) // | SCADEXPextfcall (fnm, env, args) => ( fprint(out, fnm); fprint(out, "("); scadarglst_env_femit(out, args, env); fprint(out, ")"); ) ) (* end of [scadexp_femit] *) (* ****** ****** *) implement scadexplst_femit (out, exps) = loop(0, exps) where { // fun loop ( i: int, xs: scadexplst ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => ( if i > 0 then fprint(out, ", "); // end of [if] scadexp_femit(out, x); loop(i+1, xs) ) (* end of [list_cons] *) ) // } (* end of [scadexplst_femit] *) (* ****** ****** *) // extern fun fprint_nspace (out: FILEref, nsp: int): void // implement fprint_nspace (out, nsp) = ( fix loop ( out: FILEref, nsp: int ) : void => if nsp > 0 then (fprint(out, ' '); loop(out, nsp-1)) // end of [if] ) (out, nsp) // end of [fprint_nspace] // (* ****** ****** *) implement scadobj_femit (out, nsp, obj) = let (* val () = println! ("scadobj_femit") *) in // case+ obj of | SCADOBJfapp (fopr, env, args) => ( fprint_nspace(out, nsp); fprint_string(out, fopr); fprint!(out, "("); scadarglst_env_femit(out, args, env); fprint!(out, ");\n"); ) // | SCADOBJmapp(mopr, objs) => ( fprint_nspace(out, nsp); fprint!(out, mopr, "()\n"); fprint_nspace(out, nsp); fprint!(out, "{\n"); scadobjlst_femit(out, nsp+2, objs); fprint_nspace(out, nsp); fprint!(out, "}\n"); ) // | SCADOBJtfmapp(tfm, objs) => ( scadtfm_femit(out, nsp, tfm); fprint_nspace(out, nsp); fprint!(out, "{\n"); scadobjlst_femit(out, nsp+2, objs); fprint_nspace(out, nsp); fprint!(out, "}\n"); ) // | SCADOBJextcode(code) => ( fprint_nspace(out, nsp); fprint!(out, code, ";\n") ) // end // end of [scadobj_femit] (* ****** ****** *) implement scadobjlst_femit (out, nsp, objs) = ( fix loop ( out: FILEref, nsp: int, xs: scadobjlst ) : void => ( case+ xs of | list_nil() => () | list_cons(x, xs) => loop(out, nsp, xs) where { val () = scadobj_femit(out, nsp, x) } (* end of [list_cons] *) ) ) (out, nsp, objs) // end of [scadobjlst_femit] (* ****** ****** *) implement scadtfm_femit (out, nsp, tfm) = ( case+ tfm of | SCADTFMident() => ( fprint_nspace(out, nsp); fprint!(out, "/* identity() */\n"); ) // | SCADTFMcompose (tfm1, tfm2) => ( scadtfm_femit(out, nsp, tfm1); scadtfm_femit(out, nsp, tfm2); ) // | SCADTFMextmcall (fmod, env, args) => ( fprint_nspace(out, nsp); fprint!(out, fmod); fprint!(out, "("); scadarglst_env_femit(out, args, env); fprint!(out, ")\n"); ) (* SCADTFMextmcall *) ) (* ****** ****** *) (* end of [OpenSCAD_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/DATS/OpenSCAD_main.dats0000644000175000017500000000070113431250607030066 0ustar brandonbrandon(* ****** ****** *) // // Author: Hongwei Xi // Start time: May, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) (* ** For implementing ** a DSL that supports ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // #staload "./../SATS/OpenSCAD.sats" // (* ****** ****** *) // implement fprint_val = fprint_scadarg implement fprint_val = fprint_scadexp // (* ****** ****** *) (* end of [OpenSCAD_main.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/mylibies.hats0000644000175000017500000000057113431250607026621 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-05-14: // For downstream staloading // (* ****** ****** *) // #staload OpenSCAD = "./SATS/OpenSCAD.sats" #staload OpenSCAD_util = "./SATS/OpenSCAD_util.sats" #staload OpenSCAD_meta = "./SATS/OpenSCAD_meta.sats" // (* ****** ****** *) // #staload _(*OpenSCAD*) = "./DATS/OpenSCAD_main.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/0000755000175000017500000000000013431250607024677 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/test01.dats0000644000175000017500000000371413431250607026701 0ustar brandonbrandon(* ****** ****** *) (* ** An example of ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #staload "libats/libc/SATS/math.sats" #staload _ = "libats/libc/DATS/math.dats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_meta // opening it! // #include "./../mylibies_link.hats" // (* ****** ****** *) (* // // HX-2017-05-17: // For testing externally // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_meta // opening it! // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies_link.hats" // *) (* ****** ****** *) // extern fun muglike ( x0: double, y0: double, z0: double ) : scadobj // (* ****** ****** *) implement muglike (x0, y0, z0) = let // val h = 1.0 and r = 0.5 // val ball = scadobj_sphere(sqrt(2.0)*r) // val cube = scadobj_cube(h, true) // (* // val red = scadxyz_color_name("red", 1.0) val blue = scadxyz_color_name("blue", 1.0) // val ball = SCADOBJxyzobj(red, ball) val cube = SCADOBJxyzobj(blue, cube) // *) val cylinder = scadobj_cylinder1(h, 0.9*r, true) val tfm_trans = scadtfm_translate(0.0, 0.0, 0.1) val cylinder = scadobj_tfmapp(tfm_trans, cylinder) // val mug = (ball \cap cube) \diff cylinder // val mug = scadobj_tfmapp (scadtfm_translate(0.0, 0.0, 0.5), mug) // in // scadobj_tfmapp(scadtfm_scale(x0, y0, z0), mug) // end // end of [muglike] (* ****** ****** *) implement main0() = () where { // val out = stdout_ref // val obj = muglike(10.0, 10.0, 17.5) // val () = fprint! ( out, "\ /* The code is automatically generated from [test01.dats] */\n\n\ ") val () = fprint! (out, "$fa=0.1; $fs=0.1;\n\n") // val () = scadobj_femit(out, 0(*nsp*), obj) // val () = fprint! (out, "\n/* end of [test01_dats.scad] */\n") // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/output/0000755000175000017500000000000013431250607026237 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/output/.keeper0000644000175000017500000000000013431250607027501 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/test00.dats0000644000175000017500000000107513431250607026676 0ustar brandonbrandon(* ****** ****** *) (* ** ** Testing the setup in ATS ** for OpenSCADE meta-programming ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #staload "libats/libc/SATS/math.sats" #staload _ = "libats/libc/DATS/math.dats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $OpenSCAD // opening it! // #include "./../mylibies_link.hats" // (* ****** ****** *) implement main0() = println! ("Hello from [test00]!") (* ****** ****** *) (* end of [test00.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/pepperfish-camera.dats0000644000175000017500000001173013431250607031151 0ustar brandonbrandon(* ****** ****** *) (* ** William Blair's ** camera mount for quadcopter *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #staload "libats/libc/SATS/math.sats" #staload _ = "libats/libc/DATS/math.dats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_meta // opening it! // #include "./../mylibies_link.hats" // (* ****** ****** *) #define :: list_cons (* ****** ****** *) overload cube with scadobj_cube overload cylinder1 with scadobj_cylinder1 (* ****** ****** *) overload rotate with scadobj_rotate overload translate with scadobj_translate (* ****** ****** *) overload union2 with scadobj_union2 overload unionlst with scadobj_unionlst overload inter2 with scadobj_inter2 overload interlst with scadobj_interlst overload differ with scadobj_differ overload differlst with scadobj_differlst (* ****** ****** *) fun mount (h: double): scadobj = let // val cyl1 = cylinder1 (h, 2.0(*r*), false(*center*)) val cyl2 = cylinder1 (3*h, 1.0(*r*), true(*center*)) // in differ(cyl1, cyl2) end // end of [mount] (* ****** ****** *) fun sides ( h: double , ofs: double): scadobj = let val cub1 = translate ( 0.0, 0.0, 2+ofs , cube(18, 18, 2, true)) val cub2 = cube(14.0, 14.0, 10*h, true) val cyl3 = translate ( 8.0, 8.0, 0.0, cylinder1(10*h, 1.0, true)) val cyl4 = translate ( 8.0, ~8.0, 0.0, cylinder1(10*h, 1.0, true)) val cyl5 = translate ( ~8.0, 8.0, 0.0, cylinder1(10*h, 1.0, true)) val cyl6 = translate ( ~8.0, ~8.0, 0.0, cylinder1(10*h, 1.0, true)) in differlst(cub1::cub2::cyl3::cyl4::cyl5::cyl6::nil()) end // end of [sides] (* ****** ****** *) fun ziptie(): scadobj = let // val width=2.5 and depth=1.0 // in differ ( cube(width+1, depth+1, 3.0, true) , cube(width+0, depth+0, 6.0, true) ) (* end of [differ] *) end // end of [ziptie] (* ****** ****** *) fun camsup(): scadobj = differlst ( translate (~2.0, ~8.0, 3.25, cube(10.0, 10.0, 1.5, false)) :: rotate ( 0, 0, 45 , translate (~8.0, ~3.9, 0.0, cube(16.0, 16.0, 20.0, false))) :: translate( 8.0, ~8.0, 0.0, cylinder1(10.0, 2.0, true)) :: list_nil((*void*)) ) (* end of [camsup] *) (* ****** ****** *) fun mount_base ((*void*)): scadobj = let // val h = 5.0 // (* (* val sds = sides(2, 2) *) val arg1 = scadarg_int(2) val arg2 = scadarg_int(2) val args = arg1 :: arg2 :: nil() val sds0 = scadobj_fapp_enil("sides", args) *) // val sds0 = sides(2.0, 2.0) // val mnt1 = translate( 8, 8, 0, mount(h)) val mnt2 = translate( 8, ~8, 0, mount(h)) val mnt3 = translate(~8, 8, 0, mount(h)) val mnt4 = translate(~8, ~8, 0, mount(h)) // val zip5 = translate( 6.0, 6.0, 3.5, rotate(0.0, 0.0, ~45.0, ziptie())) val zip6 = translate(~6.0, ~6.0, 3.5, rotate(0.0, 0.0, ~45.0, ziptie())) // val camsup = camsup() // in unionlst(sds0::mnt1::mnt2::mnt3::mnt4::camsup::zip5::zip6::nil()) end // end of [mount_base] (* ****** ****** *) fun module_camera_femit (out: FILEref): void = fprint_string(out, "\ module camera() { d = 6.8; thickness = 1.63; d_ = 8.5; thickness_ = 4.3; depth = 12; width = 11; height = 11; lens = [4, 10]; union () { difference() { union() { translate([d/2, -d/2, 0]) rotate([0, 0, 30]) cube([thickness, 10, thickness], center=true); translate([-d/2, -d/2, 0]) rotate([0, 0, -30]) cube([thickness, 10, thickness], center=true); translate([0, -d/2 -thickness/2, 0]) cube([d,d/2, thickness/2], center=true); translate([0, -d/2 -thickness, 0]) cube([d+thickness, d/2, thickness/2], center=true); } cylinder(h=thickness * 2, r=d/2, center=true); translate([0, -d/2-6, 0]) cube([d*2, thickness*2, thickness*2], center=true); } difference() { cylinder(thickness_, r=d_/2, center=true); cylinder(2*thickness_, r=d_/2-1, center=true); translate([0, d_/2, 0]) cube([d_/1.5, d_/2, thickness_*4], center=true); } translate([-sqrt(2)/2*d_/2.30, sqrt(2)/2*d_/2.25, 0]) cylinder(h=thickness_, r=thickness_/7.5, center=true); translate([sqrt(2)/2*d_/2.30, sqrt(2)/2*d_/2.25, 0]) cylinder(h=thickness_, r=thickness_/7.5, center=true); } } ") (* ****** ****** *) val theCameraMount = let // val obj1 = mount_base() // val obj2 = scadobj_fapp_enil("camera", nil()) val obj2 = rotate(58, 0, 45, translate(0.0, 7.8, 6.8, obj2)) // in union2(obj1, obj2) end // end of [theCameraMount] (* ****** ****** *) implement main0() = () where { // val out = stdout_ref // val () = fprintln! (out, "\ /* The code is automatically generated from [pepperfish-camera.dats] */\n\ ") val () = fprintln! (out, "$fa=1.0; $fs=1.0;\n") // val () = module_camera_femit(out) // val () = scadobj_femit(out, 0(*nsp*), theCameraMount) // val () = fprint! (out, "\n") val () = fprintln! (out, "/* end of [pepperfish-camera_dats.scad] */") // } (* end of [main0] *) (* ****** ****** *) (* end of [pepperfish-camera.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/test05.dats0000644000175000017500000000615613431250607026710 0ustar brandonbrandon(* ****** ****** *) (* ** An example of ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #staload "libats/libc/SATS/math.sats" #staload _ = "libats/libc/DATS/math.dats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_util // opening it! #staload $OpenSCAD_meta // opening it! // #include "./../mylibies_link.hats" // (* ****** ****** *) (* // // HX-2017-06-21: // For testing externally // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_util // opening it! #staload $OpenSCAD_meta // opening it! // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies_link.hats" // *) (* ****** ****** *) // (* fun mid ( p: p3d, q: p3d ) : p3d = let val POINT3(x0, x1, x2) = p val POINT3(y0, y1, y2) = q in POINT3((x0+y0)/2, (x1+y1)/2, (x2+y2)/2) end // end of [mid] *) // fun mid ( p: p3d, q: p3d ) : p3d = p + (q - p) / 2 // (* ****** ****** *) (* // // HX: it is in OpenSCAD_meta // fun scadobj_sphere_at ( p: point3, r: double ) : scadobj = let val+POINT3(x, y, z) = p in scadobj_tfmapp(scadtfm_translate(x, y, z), scadobj_sphere(r)) end // end of [scadobj_sphere_at] *) (* ****** ****** *) fun seripinski_pyramid ( n0: intGte(0) , p0: p3d, p1: p3d, p2: p3d, p3: p3d, p4: p3d ) : scadobj = ( if (n0 > 0) then let val p01 = mid(p0, p1) val p02 = mid(p0, p2) val p03 = mid(p0, p3) val p04 = mid(p0, p4) val p12 = mid(p1, p2) val p23 = mid(p2, p3) val p34 = mid(p3, p4) val p41 = mid(p4, p1) val pct = p12 + (p4-p1) / 2 val obj0 = seripinski_pyramid(n0-1, p0, p01, p02, p03, p04) val obj1 = seripinski_pyramid(n0-1, p01, p1, p12, pct, p41) val obj2 = seripinski_pyramid(n0-1, p02, p12, p2, p23, pct) val obj3 = seripinski_pyramid(n0-1, p03, pct, p23, p3, p34) val obj4 = seripinski_pyramid(n0-1, p04, p41, pct, p34, p4) val POINT3(x, y, z) = p3 val tfm = scadtfm_translate(x, y, z) val base = scadobj_tfmapp(tfm, scadobj_cube(distance(p3, p2), distance(p3, p4), 0.1)) in (obj0 \cup (obj1 \cup (obj2 \cup (obj3 \cup obj4)))) \cup base end // end of [then] else let // val b1 = scadobj_sphere_at(p1, 1.0) val b2 = scadobj_sphere_at(p2, 1.0) val b3 = scadobj_sphere_at(p3, 1.0) val b4 = scadobj_sphere_at(p4, 1.0) // in scadobj_square_pyramid(p0, p1, p2, p3, p4) \cup (b1 \cup (b2 \cup (b3 \cup b4))) end // end of [else] ) (* ****** ****** *) implement main0() = () where { // val a = 40.0 val p0 = point3(0.0, 0.0, a*sqrt(2.0)) val p1 = point3( a, a, 0.0) val p2 = point3(~a, a, 0.0) val p3 = point3(~a, ~a, 0.0) val p4 = point3( a, ~a, 0.0) // val out = stdout_ref // val obj = seripinski_pyramid(3, p0, p1, p2, p3, p4) // val () = fprint! ( out, "\ /* The code is automatically generated from [test05.dats] */\n\n\ ") val () = fprint! (out, "$fa=2.0; $fs=2.0;\n\n") // val () = scadobj_femit(out, 0(*nsp*), obj) // val () = fprint! (out, "\n/* end of [test05_dats.scad] */\n") // } (* end of [main0] *) (* ****** ****** *) (* end of [test05.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/Makefile0000644000175000017500000000336313431250607026344 0ustar brandonbrandon# # A simple Makefile # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### all:: regress:: cleanall:: ###### # all:: \ test00 test00: \ test00.dats ; \ $(PATSCC) \ -DATS_MEMALLOC_LIBC -o $@ $< -latslib -lm # regress:: test00; ./$< cleanall:: ; $(RMF) test00 # ###### # all:: \ test01 test01: \ test01.dats ; \ $(PATSCC) \ -DATS_MEMALLOC_LIBC -o $@ $< -latslib -lm # regress:: test01; ./$< cleanall:: ; $(RMF) test01 # ###### # all:: \ test02 test02: \ test02.dats ; \ $(PATSCC) \ -DATS_MEMALLOC_LIBC -o $@ $< -latslib -lm # regress:: test02; ./$< cleanall:: ; $(RMF) test02 # ###### # all:: \ test03 test03: \ test03.dats ; \ $(PATSCC) \ -DATS_MEMALLOC_LIBC -o $@ $< -latslib -lm # regress:: test03; ./$< cleanall:: ; $(RMF) test03 # ###### # all:: \ test04 test04: \ test04.dats ; \ $(PATSCC) \ -DATS_MEMALLOC_LIBC -o $@ $< -latslib -lm # regress:: test04; ./$< cleanall:: ; $(RMF) test04 # ###### # all:: \ test05 test05: \ test05.dats ; \ $(PATSCC) \ -DATS_MEMALLOC_LIBC -o $@ $< -latslib -lm # regress:: test05; ./$< cleanall:: ; $(RMF) test05 # ###### # all:: \ pepperfish-camera pepperfish-camera: \ pepperfish-camera.dats ; \ $(PATSCC) \ -DATS_MEMALLOC_LIBC -o $@ $< -latslib -lm # regress:: pepperfish-camera; ./$< cleanall:: ; $(RMF) pepperfish-camera # ###### RMF=rm -f ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### cleanall:: clean cleanall:: ; $(RMF) test01_dats.scad cleanall:: ; $(RMF) test02_dats.scad cleanall:: ; $(RMF) test03_dats.scad cleanall:: ; $(RMF) test04_dats.scad cleanall:: ; $(RMF) test05_dats.scad cleanall:: ; $(RMF) pepperfish-camera_dats.scad ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/test05.html0000644000175000017500000000164713431250607026721 0ustar brandonbrandon Sierpinski-Pyramid

Drawing a Sierpinski Pyramid

ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/test04.html0000644000175000017500000000165713431250607026721 0ustar brandonbrandon Sierpinski-Tetrahedron

Drawing a Sierpinski Tetrahedron

ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/test02.dats0000644000175000017500000000336713431250607026706 0ustar brandonbrandon(* ****** ****** *) (* ** An example of ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #staload "libats/libc/SATS/math.sats" #staload _ = "libats/libc/DATS/math.dats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_meta // opening it! // #include "./../mylibies_link.hats" // (* ****** ****** *) (* // // HX-2017-05-17: // For testing externally // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_meta // opening it! // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies_link.hats" // *) (* ****** ****** *) // extern fun five_balls (rad: double): scadobj // (* ****** ****** *) implement five_balls (rad) = let // val ball = scadobj_sphere(1.0) // val ball1 = scadobj_translate( 1.0, 1.0, 1.0, ball) val ball2 = scadobj_translate(~1.0, 1.0, 1.0, ball) val ball3 = scadobj_translate( 1.0, ~1.0, 1.0, ball) val ball4 = scadobj_translate(~1.0, ~1.0, 1.0, ball) val ball5 = scadobj_translate( 0.0, 0.0, 1+sqrt(2.0), ball) // in scadobj_scale(rad, rad, rad, ((ball1 \cup ball2) \cup (ball3 \cup ball4)) \cup ball5) end // end of [five_balls] (* ****** ****** *) implement main0() = () where { // val out = stdout_ref // val obj = five_balls(5.0) // val () = fprintln! (out, "\ /* The code is automatically generated from [test02.dats] */\n\ ") val () = fprintln! (out, "$fa=0.1; $fs=0.1;\n") // val () = scadobj_femit(out, 0(*nsp*), obj) // val () = fprint! (out, "\n") val () = fprintln! (out, "/* end of [test02_dats.scad] */") // } (* end of [main0] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/test04.dats0000644000175000017500000000537513431250607026711 0ustar brandonbrandon(* ****** ****** *) (* ** An example of ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #staload "libats/libc/SATS/math.sats" #staload _ = "libats/libc/DATS/math.dats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_util // opening it! #staload $OpenSCAD_meta // opening it! // #include "./../mylibies_link.hats" // (* ****** ****** *) (* // // HX-2017-05-17: // For testing externally // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_util // opening it! #staload $OpenSCAD_meta // opening it! // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies_link.hats" // *) (* ****** ****** *) // (* fun mid ( p: p3d, q: p3d ) : p3d = let val POINT3(x0, x1, x2) = p val POINT3(y0, y1, y2) = q in POINT3((x0+y0)/2, (x1+y1)/2, (x2+y2)/2) end // end of [mid] *) // fun mid ( p: p3d, q: p3d ) : p3d = p + (q - p) / 2 // (* ****** ****** *) (* // // HX: it is in OpenSCAD_meta // fun scadobj_sphere_at ( p: point3, r: double ) : scadobj = let val+POINT3(x, y, z) = p in scadobj_tfmapp(scadtfm_translate(x, y, z), scadobj_sphere(r)) end // end of [scadobj_sphere_at] *) (* ****** ****** *) fun seripinski_tetra ( n0: intGte(0) , p0: p3d, p1: p3d, p2: p3d, p3: p3d ) : scadobj = ( if (n0 > 0) then let val p01 = mid(p0, p1) val p02 = mid(p0, p2) val p03 = mid(p0, p3) val p12 = mid(p1, p2) val p23 = mid(p2, p3) val p31 = mid(p3, p1) val obj0 = seripinski_tetra(n0-1, p0, p01, p02, p03) val obj1 = seripinski_tetra(n0-1, p01, p1, p12, p31) val obj2 = seripinski_tetra(n0-1, p02, p2, p23, p12) val obj3 = seripinski_tetra(n0-1, p03, p31, p23, p3) in (obj0 \cup (obj1 \cup (obj2 \cup obj3))) end // end of [then] else let // val b1 = scadobj_sphere_at(p1, 2.0) val b2 = scadobj_sphere_at(p2, 2.0) val b3 = scadobj_sphere_at(p3, 2.0) // in scadobj_tetrahedron(p0, p1, p2, p3) \cup (b1 \cup (b2 \cup b3)) end // end of [else] ) (* ****** ****** *) implement main0() = () where { // val a = 60.0 val p0 = point3( 0.0, 0.0, a*sqrt(2.0)) val p1 = point3( a, 0.0, 0.0) val p2 = point3(~a/2, ~a*sqrt(3.0)/2, 0.0) val p3 = point3(~a/2, a*sqrt(3.0)/2, 0.0) // val out = stdout_ref // val obj = seripinski_tetra(3, p0, p1, p2, p3) // val () = fprint! ( out, "\ /* The code is automatically generated from [test04.dats] */\n\n\ ") val () = fprint! (out, "$fa=0.5; $fs=0.5;\n\n") // val () = scadobj_femit(out, 0(*nsp*), obj) // val () = fprint! (out, "\n/* end of [test04_dats.scad] */\n") // } (* end of [main0] *) (* ****** ****** *) (* end of [test04.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/TEST/test03.dats0000644000175000017500000000461113431250607026700 0ustar brandonbrandon(* ****** ****** *) (* ** An example of ** ATS and OpenSCAD co-programming *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #staload "libats/libc/SATS/math.sats" #staload _ = "libats/libc/DATS/math.dats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_meta // opening it! // #include "./../mylibies_link.hats" // (* ****** ****** *) (* // // HX-2017-05-17: // For testing externally // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies.hats" // #staload $OpenSCAD // opening it! #staload $OpenSCAD_meta // opening it! // #include "$PATSHOMELOCS\ /atscntrb-hx-openscad/mylibies_link.hats" // *) (* ****** ****** *) val tfm_red = scadtfm_color_name("red") val tfm_blue = scadtfm_color_rgba(0.0, 0.0, 1.0, 1.0) (* ****** ****** *) // fun ballrow {n:pos} ( ball: scadobj, n: int(n) ) : scadobj = ( if n = 1 then ball else scadobj_union2 ( ball , scadobj_translate(2.0, 0.0, 0.0, ballrow(ball, n-1)) ) (* scadobj_union2 *) ) // fun ballrows {m,n:pos} ( ball: scadobj, m: int(m), n: int(n) ) : scadobj = ( if m = 1 then ballrow(ball, n) else scadobj_union2 ( ballrow(ball, n) , scadobj_translate(0.0, 2.0, 0.0, ballrows(ball, m-1, n)) ) (* scadobj_union2 *) ) // (* ****** ****** *) fun ballstack {n:pos} ( ball: scadobj, n: int(n) ) : scadobj = let // val tfm = (if n % 2 = 0 then tfm_red else tfm_blue): scadtfm // end of [val] in // if n = 1 then ( scadobj_tfmapp(tfm, ball) ) (* end of [then] *) else let val stack = ballstack(ball, n-1) val bottom = scadobj_tfmapp(tfm, ballrows(ball, n, n)) in scadobj_union2(scadobj_translate(1.0, 1.0, sqrt(2.0), stack), bottom) end // end of [else] // end // end of [ballstack] (* ****** ****** *) // implement main0() = () where { // #define N 5 // val out = stdout_ref // val stack = ballstack // testing extcode (SCADOBJextcode("sphere(1.0)"), N) val stack = scadobj_translate(~1.0*N+1.0, ~1.0*N+1.0, 1.0, stack) // val () = fprintln! (out, "\ /* The code is automatically generated from [test03.dats] */\n\ ") val () = fprintln! (out, "$fa=0.1; $fs=0.1;\n") // val () = scadobj_femit(out, 0(*nsp*), stack) // val () = fprint! (out, "\n") val () = fprintln! (out, "/* end of [test03_dats.scad] */") // } (* end of [main0] *) (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/SATS/0000755000175000017500000000000013431250607024672 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/SATS/OpenSCAD.sats0000644000175000017500000001076213431250607027130 0ustar brandonbrandon(* ****** ****** *) (* ** For implementing a DSL ** that supports ATS and OpenSCAD co-programming *) (* ****** ****** *) // datatype point2 = POINT2 of (double, double) datatype point3 = POINT3 of (double, double, double) // (* ****** ****** *) // fun point2_make_int2 (x: int, y: int): point2 fun point2_make_float2 (x: double, y: double): point2 // fun point3_make_int3 (x: int, y: int, z: int): point3 fun point3_make_float3 (x: double, y: double, z: double): point3 // symintr point2 point3 // overload point2 with point2_make_int2 overload point2 with point2_make_float2 // overload point3 with point3_make_int3 overload point3 with point3_make_float3 // (* ****** ****** *) // abstype label_type typedef label = label_type // (* ****** ****** *) // fun label_make(x: string): label // symintr label overload label with label_make // (* ****** ****** *) // fun fprint_label : fprint_type(label) // overload fprint with fprint_label // (* ****** ****** *) // fun eq_label_label(label, label): bool fun neq_label_label(label, label): bool // fun compare_label_label (l1: label, l2: label): int(*sgn*) // overload = with eq_label_label overload != with neq_label_label overload compare with compare_label_label // (* ****** ****** *) abstype scadenv_type typedef scadenv = scadenv_type (* ****** ****** *) datatype scadexp = // | SCADEXPnil of () // | SCADEXPint of (int) // | SCADEXPbool of (bool) // | SCADEXPfloat of double // | SCADEXPstring of string // | SCADEXPvec of scadexplst // | SCADEXPcond of (scadexp, scadexp, scadexp) // SCADEXPcond // | SCADEXPextfcall of (string(*fun*), scadenv, scadarglst) // SCADEXPextfcall // (* end of [scadexp] *) and scadarg = // | SCADARGexp of scadexp | SCADARGlabexp of (label, scadexp) // where scadexplst = List0(scadexp) and scadarglst = List0(scadarg) (* ****** ****** *) // fun scadexp_int(int): scadexp fun scadexp_bool(bool): scadexp fun scadexp_float(double): scadexp fun scadexp_string(string): scadexp (* ****** ****** *) // fun scadarg_int(int): scadarg fun scadarg_bool(bool): scadarg fun scadarg_float(double): scadarg fun scadarg_string(string): scadarg // (* ****** ****** *) (* // datatype scadvec(n:int) = {n:int} SCADVEC of list(scadexp, n) // typedef scadv2d = scadvec(2) typedef scadv3d = scadvec(3) typedef scadvec0 = [n:int | n >= 0] scadvec(n) // macdef SCADV2D(x, y) = SCADVEC($list{scadexp}(,(x), ,(y))) macdef SCADV3D(x, y, z) = SCADVEC($list{scadexp}(,(x), ,(y), ,(z))) // *) (* ****** ****** *) // datatype scadobj = // | SCADOBJfapp of ( string(*fopr*), scadenv, scadarglst ) (* SCADOBJfopr *) // | SCADOBJmapp of (string(*mopr*), scadobjlst) // | SCADOBJtfmapp of (scadtfm(*mtfm*), scadobjlst) // | SCADOBJextcode of (string(*code*)) // HX: external one-liners // // end of [scadobj] and scadtfm = // | SCADTFMident of () // | SCADTFMcompose of (scadtfm, scadtfm) // | SCADTFMextmcall of ( string(*fmod*), scadenv(*env*), scadarglst(*args*) ) (* SCADTFMextmcall *) // where scadobjlst = List0(scadobj) // (* ****** ****** *) // fun scadenv_nil(): scadenv fun scadenv_sing (l: label, x: scadexp): scadenv // (* ****** ****** *) // fun scadenv_is_nil(scadenv): bool fun scadenv_is_cons(scadenv): bool // (* ****** ****** *) // fun scadobj_fapp ( fopr: string , env0: scadenv, args: scadarglst): scadobj // fun scadobj_fapp_enil (fopr: string, args: scadarglst): scadobj // (* ****** ****** *) // fun scadtfm_extmcall ( fmod: string , env0: scadenv, args: scadarglst): scadtfm // (* ****** ****** *) // fun fprint_scadenv : fprint_type(scadenv) // fun fprint_scadexp : fprint_type(scadexp) fun fprint_scadarg : fprint_type(scadarg) // (* ****** ****** *) overload fprint with fprint_scadenv overload fprint with fprint_scadexp overload fprint with fprint_scadarg (* ****** ****** *) // fun scadenv_search (env: scadenv, k: label): Option_vt(scadexp) fun scadenv_insert_any (env: scadenv, k: label, x: scadexp): scadenv // (* ****** ****** *) // fun scadexp_femit(FILEref, scadexp): void fun scadexplst_femit(FILEref, scadexplst): void // (* ****** ****** *) // fun scadenv_femit(FILEref, scadenv): void // (* ****** ****** *) // fun scadarg_femit(FILEref, scadarg): void fun scadarglst_femit(FILEref, scadarglst): void fun scadarglst_env_femit(FILEref, scadarglst, scadenv): void // (* ****** ****** *) // fun scadobj_femit (out: FILEref, int(*indent*), scadobj): void fun scadtfm_femit (out: FILEref, int(*indent*), scadtfm): void // fun scadobjlst_femit (out: FILEref, int(*indent*), scadobjlst): void // (* ****** ****** *) (* end of [OpenSCAD.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/SATS/OpenSCAD_util.sats0000644000175000017500000000344613431250607030166 0ustar brandonbrandon(* ****** ****** *) (* ** For implementing a DSL ** that supports ATS and OpenSCAD co-programming *) (* ****** ****** *) #staload "./OpenSCAD.sats" (* ****** ****** *) // datatype vector2 = VECTOR2 of (double, double) datatype vector3 = VECTOR3 of (double, double, double) // (* ****** ****** *) // typedef p2d = point2 typedef p3d = point3 // typedef v2d = vector2 typedef v3d = vector3 // (* ****** ****** *) // fun point2vector_2d(point2): v2d fun vector2point_2d(vector2): p2d // fun point2vector_3d(point3): v3d fun vector2point_3d(vector3): p3d // (* ****** ****** *) // overload p2v2d with point2vector_2d overload v2p2d with vector2point_2d // overload p2v3d with point2vector_3d overload v2p3d with vector2point_3d // (* ****** ****** *) // fun length_v2d(vector2): double fun length_v3d(vector3): double // overload length with length_v2d overload length with length_v3d // (* ****** ****** *) // fun distance_p2d_p2d (point2, point2): double fun distance_p3d_p3d (point3, point3): double // overload distance with distance_p2d_p2d overload distance with distance_p3d_p3d // (* ****** ****** *) // fun add_p3d_v3d : (p3d, v3d) -> p3d fun sub_p3d_v3d : (p3d, v3d) -> p3d fun sub_p3d_p3d : (p3d, p3d) -> v3d // overload + with add_p3d_v3d overload - with sub_p3d_v3d overload - with sub_p3d_p3d // (* ****** ****** *) // fun add_v3d_v3d : (v3d, v3d) -> v3d fun sub_v3d_v3d : (v3d, v3d) -> v3d // overload + with add_v3d_v3d overload - with sub_v3d_v3d // (* ****** ****** *) fun mul_int_v3d : (int, v3d) -> v3d fun div_v3d_int : (v3d, int) -> v3d fun mul_float_v3d : (double, v3d) -> v3d fun div_v3d_float : (v3d, double) -> v3d // overload * with mul_int_v3d overload * with mul_float_v3d overload / with div_v3d_int overload / with div_v3d_float // (* ****** ****** *) (* end of [OpenSCAD_util.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/SATS/OpenSCAD_meta.sats0000644000175000017500000001614713431250607030141 0ustar brandonbrandon(* ****** ****** *) (* ** For implementing a DSL ** that supports ATS and OpenSCAD co-programming *) (* ****** ****** *) #staload "./OpenSCAD.sats" (* ****** ****** *) // fun scadexp_v2d_int2 (x: int, y: int): scadexp fun scadexp_v2d_float2 (x: double, y: double): scadexp // fun scadexp_v3d_int3 (x: int, y: int, z: int): scadexp fun scadexp_v3d_float3 (x: double, y: double, z: double): scadexp // symintr scadexp_v2d symintr scadexp_v3d overload scadexp_v2d with scadexp_v2d_int2 overload scadexp_v2d with scadexp_v2d_float2 overload scadexp_v3d with scadexp_v3d_int3 overload scadexp_v3d with scadexp_v3d_float3 // (* ****** ****** *) // fun scadobj_cube_int1 (x: int): scadobj fun scadobj_cube_int1_bool (x: int, ct: bool): scadobj // fun scadobj_cube_float1 (x: double): scadobj fun scadobj_cube_float1_bool (x: double, ct: bool): scadobj // (* ****** ****** *) // fun scadobj_cube_int3 (x: int, y: int, z: int): scadobj fun scadobj_cube_int3_bool (x: int, y: int, z: int, ct: bool): scadobj // fun scadobj_cube_float3 (x: double, y: double, z: double): scadobj fun scadobj_cube_float3_bool (x: double, y: double, z: double, ct: bool): scadobj // (* ****** ****** *) // symintr scadobj_cube // overload scadobj_cube with scadobj_cube_int1 overload scadobj_cube with scadobj_cube_int1_bool // overload scadobj_cube with scadobj_cube_float1 overload scadobj_cube with scadobj_cube_float1_bool // overload scadobj_cube with scadobj_cube_int3 overload scadobj_cube with scadobj_cube_int3_bool // overload scadobj_cube with scadobj_cube_float3 overload scadobj_cube with scadobj_cube_float3_bool // (* ****** ****** *) // fun scadobj_square_int1 (x: int): scadobj fun scadobj_square_int1_bool (x: int, ct: bool): scadobj // fun scadobj_square_float1 (x: double): scadobj fun scadobj_square_float1_bool (x: double, ct: bool): scadobj // (* ****** ****** *) // fun scadobj_square_int2 (x: int, y: int): scadobj fun scadobj_square_int2_bool (x: int, y: int, ct: bool): scadobj // fun scadobj_square_float2 (x: double, y: double): scadobj fun scadobj_square_float2_bool (x: double, y: double, ct: bool): scadobj // (* ****** ****** *) // symintr scadobj_square // overload scadobj_square with scadobj_square_int1 overload scadobj_square with scadobj_square_int1_bool overload scadobj_square with scadobj_square_float1 overload scadobj_square with scadobj_square_float1_bool // overload scadobj_square with scadobj_square_int2 overload scadobj_square with scadobj_square_int2_bool overload scadobj_square with scadobj_square_float2 overload scadobj_square with scadobj_square_float2_bool // (* ****** ****** *) // fun scadobj_circle_int1(rad: int): scadobj fun scadobj_circle_float1(rad: double): scadobj // symintr scadobj_circle overload scadobj_circle with scadobj_circle_int1 overload scadobj_circle with scadobj_circle_float1 // (* ****** ****** *) // fun scadobj_sphere_int1(rad: int): scadobj fun scadobj_sphere_float1(rad: double): scadobj // symintr scadobj_sphere overload scadobj_sphere with scadobj_sphere_int1 overload scadobj_sphere with scadobj_sphere_float1 // (* ****** ****** *) // fun scadobj_sphere_at (center: point3, radius: double): scadobj // (* ****** ****** *) // fun scadobj_cylinder1_int2 (h: int, r: int): scadobj fun scadobj_cylinder1_int2_bool (h: int, r: int, ct: bool): scadobj // fun scadobj_cylinder1_float2 (h: double, r: double): scadobj fun scadobj_cylinder1_float2_bool (h: double, r: double, ct: bool): scadobj // (* ****** ****** *) // symintr scadobj_cylinder1 // overload scadobj_cylinder1 with scadobj_cylinder1_int2 overload scadobj_cylinder1 with scadobj_cylinder1_int2_bool // overload scadobj_cylinder1 with scadobj_cylinder1_float2 overload scadobj_cylinder1 with scadobj_cylinder1_float2_bool // (* ****** ****** *) // fun scadobj_unionlst (objs: scadobjlst): scadobj fun scadobj_interlst (objs: scadobjlst): scadobj fun scadobj_differlst (objs: scadobjlst): scadobj // (* ****** ****** *) // fun scadobj_union2 (obj1: scadobj, obj2: scadobj): scadobj // fun scadobj_inter2 (obj1: scadobj, obj2: scadobj): scadobj // fun scadobj_differ (obj1: scadobj, obj2: scadobj): scadobj // (* ****** ****** *) // symintr cap cup diff // overload cap with scadobj_inter2 overload cup with scadobj_union2 overload diff with scadobj_differ // (* ****** ****** *) // fun scadtfm_scale_int3 (x: int, y: int, z: int): scadtfm fun scadtfm_scale_float3 (x: double, y: double, z: double): scadtfm // symintr scadtfm_scale overload scadtfm_scale with scadtfm_scale_int3 overload scadtfm_scale with scadtfm_scale_float3 // (* ****** ****** *) // fun scadtfm_rotate_int3 (x: int, y: int, z: int): scadtfm fun scadtfm_rotate_float3 (x: double, y: double, z: double): scadtfm // symintr scadtfm_rotate overload scadtfm_rotate with scadtfm_rotate_int3 overload scadtfm_rotate with scadtfm_rotate_float3 // (* ****** ****** *) // fun scadtfm_translate_int3 (x: int, y: int, z: int): scadtfm fun scadtfm_translate_float3 (x: double, y: double, z: double): scadtfm // symintr scadtfm_translate overload scadtfm_translate with scadtfm_translate_int3 overload scadtfm_translate with scadtfm_translate_float3 // (* ****** ****** *) // fun scadtfm_color_name (name: string): scadtfm fun scadtfm_color_rgba ( r: double, g: double, b: double, a: double ): scadtfm // end-of-function // (* ****** ****** *) // fun scadtfm_compose(scadtfm, scadtfm): scadtfm // (* ****** ****** *) // fun scadobj_tfmapp_one (tfm: scadtfm, x0: scadobj): scadobj fun scadobj_tfmapp_list (tfm: scadtfm, xs: scadobjlst): scadobj // (* ****** ****** *) // symintr scadobj_tfmapp // overload scadobj_tfmapp with scadobj_tfmapp_one overload scadobj_tfmapp with scadobj_tfmapp_list // (* ****** ****** *) // fun scadobj_scale_int3 (x: int, y: int, z: int, obj: scadobj): scadobj fun scadobj_scale_float3 (x: double, y: double, z: double, obj: scadobj): scadobj // (* ****** ****** *) // symintr scadobj_scale overload scadobj_scale with scadobj_scale_int3 overload scadobj_scale with scadobj_scale_float3 // (* ****** ****** *) // fun scadobj_rotate_int3 (x: int, y: int, z: int, obj: scadobj): scadobj fun scadobj_rotate_float3 (x: double, y: double, z: double, obj: scadobj): scadobj // (* ****** ****** *) // symintr scadobj_rotate overload scadobj_rotate with scadobj_rotate_int3 overload scadobj_rotate with scadobj_rotate_float3 // (* ****** ****** *) // fun scadobj_translate_int3 (x: int, y: int, z: int, obj: scadobj): scadobj fun scadobj_translate_float3 (x: double, y: double, z: double, obj: scadobj): scadobj // (* ****** ****** *) // symintr scadobj_translate overload scadobj_translate with scadobj_translate_int3 overload scadobj_translate with scadobj_translate_float3 // (* ****** ****** *) fun scadobj_polyhedron {n:int | n >= 4} ( pts: list(point3, n) , faces: List0(listGte(natLt(n), 3)) , convexity: intGte(0) ) : scadobj // end-of-function (* ****** ****** *) fun scadobj_tetrahedron ( p0: point3, p1: point3, p2: point3, p3: point3 ) : scadobj // end-of-function (* ****** ****** *) fun scadobj_square_pyramid ( p0: point3, p1: point3, p2: point3, p3: point3, p4: point3 ) : scadobj // end-of-function (* ****** ****** *) (* end of [OpenSCAD_meta.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/package.json0000644000175000017500000000102213431250607026401 0ustar brandonbrandon{ "name": "atscntrb-hx-openscad" , "version": "1.0.2" , "description": "This package is for supporing in ATS a form of meta-programming for OpenSCAD" , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/npm-utils/contrib/libats-/hwxi/OpenSCAD" } , "keywords": [ "ATS", "OpenSCAD" ] , "dependencies": {} , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "The package is stored at ${PATSHOME}/npm-utils/contrib/libats-hwxi/OpenSCAD/." } ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/README.md0000644000175000017500000000054313431250607025401 0ustar brandonbrandon# Meta-Programming for OpenSCAD in ATS ## Project Description This package was orginally implemented for teaching BUCS320 during the summer of 2017. It demonstrates a functional style of meta-programming in ATS for generating code that creates models in OpenSCAD. Please see the examples in the TEST directory to get started. Have fun with 3D-printing! ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/OpenSCAD/mylibies_link.hats0000644000175000017500000000162313431250607027635 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-05-16: // For downstream including // (* ****** ****** *) // local // #include "./DATS/OpenSCAD_main.dats" // in (*nothing*) end // end of [local] // (* ****** ****** *) // local // #include "./DATS/OpenSCAD_util.dats" // in (*nothing*) end // end of [local] // (* ****** ****** *) // local // #include "./DATS/OpenSCAD_meta.dats" // in (*nothing*) end // end of [local] // (* ****** ****** *) // local // #include "./DATS/OpenSCAD_label.dats" // in (*nothing*) end // end of [local] // (* ****** ****** *) // local // #include "./DATS/OpenSCAD_argenv.dats" // in (*nothing*) end // end of [local] // (* ****** ****** *) // local // #include "./DATS/OpenSCAD_emit.dats" // in (*nothing*) end // end of [local] // (* ****** ****** *) // local // #include "./DATS/OpenSCAD_print.dats" // in (*nothing*) end // end of [local] // (* ****** ****** *) (* end of [mylibies_link.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/0000755000175000017500000000000013431250607024346 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/0000755000175000017500000000000013431250607025102 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/DATS/0000755000175000017500000000000013431250607025635 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/DATS/BUCS520.dats0000644000175000017500000001240613431250607027500 0ustar brandonbrandon(* ****** ****** *) // // Functions on streams // (* ****** ****** *) // staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/array0.sats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // %{^ // #undef ATSextfcall #define ATSextfcall(fun, arg) fun arg // %} // ... // staload "libats/libc/SATS/unistd.sats" // (* ****** ****** *) // datavtype linetimeout = | LNTOline of Strptr1 | LNTOtimeout of ((*void*)) // extern fun{} streamize_fileref_lnto ( input: FILEref , nwait: intGte(0)): stream_vt(linetimeout) extern fun{} streamize_fileref_lnto$bufsz(): intGte(2) // (* ****** ****** *) local #staload "libats\ /libc/SATS/unistd.sats" in (* in-of-local *) implement {}(*tmp*) streamize_fileref_lnto (input, nwait) = let // fun auxget0 ( input: FILEref , nwait: intGte(0) , bufsz: intGte(2) ) : stream_vt(linetimeout) = ( if fileref_is_eof(input) then stream_vt_make_nil() else auxget1(input, nwait, bufsz) ) (* end of [auxget0] *) and auxget1 ( input: FILEref , nwait: intGte(0) , bufsz: intGte(2) ) : stream_vt(linetimeout) = $ldelay ( let // var nlen: int val nbyte = i2sz(bufsz) // val (pf | _) = alarm_set (g1i2u(nwait)) // val [l:addr,n:int] line = $extfcall ( Strnptr0 , "atspre_fileref_get_line_string_main2" , nbyte, input, addr@(nlen) ) // val nlen = $UN.cast{int(n)}(nlen) // (* val () = println! ("nlen = ", nlen) val () = println! ("nbyte = ", nbyte) *) // val lnto = ( if nlen >= 0 then LNTOline ( $UN.castvwtp0(line) ) else let val () = strnptr_free(line) in LNTOtimeout((*void*)) end // end of [else] ) : linetimeout // val _(*leftover*) = alarm_cancel(pf | (*void*)) // in // stream_vt_cons (lnto, auxget0(input, nwait, bufsz)) // end ) (* end of [auxget1] *) // in // let val bufsz = streamize_fileref_lnto$bufsz<> ((*void*)) in auxget0(input, nwait, bufsz) end // end of [let] // end // end of [streamize_fileref_lnto] implement streamize_fileref_lnto$bufsz<>() = 1024 end // end of [local] (* ****** ****** *) // extern fun{} fileptr_by_url_opt (url: string): Option_vt(FILEptr1) // extern fun{} fileptr_by_command_opt (arg0: string, args: stringlst): Option_vt(FILEptr1) // (* ****** ****** *) // #define :: list_cons // implement {}(*tmp*) fileptr_by_url_opt (url) = ( fileptr_by_command_opt<> ("wget", "-q" :: "-O" :: "-" :: url :: nil{string}()) ) // (* ****** ****** *) implement {}(*tmp*) fileptr_by_command_opt (arg0, args) = let // val fid2 = arrayref_make_elt (i2sz(2), $UN.cast(0)) // val ret = $extfcall ( int , "pipe", arrayref2ptr(fid2)) // val pid = ( if ret >= 0 then $extfcall(int(*child*), "fork") else (~1)) : int // end of [val] // val ((*void*)) = if(pid >= 0) then ( // ifcase | pid > 0 => () where { val () = $extfcall(void, "close", fid2[1]) } | _(*pid = 0*) => () where // child { val () = $extfcall(void, "close", fid2[0]) val () = $extfcall(void, "close", STDOUT_FILENO) val dupfd1 = $extfcall(int, "dup", fid2[1]) // = 1 val argv = arrayref_make_elt (i2sz(length(args)+2), the_null_ptr) // end of [val] var p0 = arrayref2ptr(argv) val () = $UN.ptr0_setinc(p0, arg0) val () = loop(args, p0) where { fun loop(args: stringlst, p0: &ptr >> _): void = ( case+ args of | list_nil() => () | list_cons(arg, args) => loop(args, p0) where { val () = $UN.ptr0_setinc(p0, arg) } (* end of [list_cons] *) ) } val errno = $extfcall(int, "execvp", arg0, argv) } ) (* end of [if] *) // end of [if] // in // if (pid >= 0) then let // val fid = fid2[0] val filp = $extfcall(ptr, "fdopen", fid, file_mode_r) // in // if isneqz(filp) then Some_vt($UN.castvwtp0(filp)) else None_vt((*void*)) where { val () = $extfcall(void, "close", fid) } (* end of [else] *) // end else let val () = $extfcall(void, "close", fid2[0]) in None_vt() end // end of [else] // end // end of [fileptr_by_command_opt] (* ****** ****** *) // extern fun{} shell_eval (arg0: string, args: stringlst): Option_vt(Strptr1) // (* ****** ****** *) implement {}(*tmp*) shell_eval (arg0, args) = let // val opt = fileptr_by_command_opt<>(arg0, args) // in case+ opt of | ~None_vt() => None_vt() | ~Some_vt(inp) => ( Some_vt (un_streamize_string_char ($UN.castvwtp0(streamize_fileptr_char(inp))) ) ) end // end of [shell_eval] (* ****** ****** *) // extern fun{} streamopt_url_char (url: string): Option_vt(stream_vt(char)) extern fun{} streamopt_url_line (url: string): Option_vt(stream_vt(string)) // (* ****** ****** *) implement {}(*tmp*) streamopt_url_char (url) = let // val opt = fileptr_by_url_opt(url) // in ( case+ opt of | ~None_vt() => None_vt() | ~Some_vt(inp) => Some_vt(streamize_fileptr_char(inp)) ) end // end of [streamopt_url_char] (* ****** ****** *) implement {}(*tmp*) streamopt_url_line (url) = let // val opt = fileptr_by_url_opt(url) // in ( case+ opt of | ~None_vt() => None_vt() | ~Some_vt(inp) => Some_vt($UN.castvwtp0(streamize_fileptr_line(inp))) ) end // end of [streamopt_url_line] (* ****** ****** *) (* end of [BUCS520.dats] *) ././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/DATS/BUCS520-2018-Spring.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/DATS/BUCS520-2018-Spring.dat0000644000175000017500000001126313431250607031145 0ustar brandonbrandon(* ****** ****** *) // // Functions on streams // (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) // %{^ // #undef ATSextfcall #define ATSextfcall(fun, arg) fun arg // %} // ... // staload "libats/libc/SATS/unistd.sats" // (* ****** ****** *) // datavtype linetimeout = | LNTOline of Strptr1 | LNTOtimeout of ((*void*)) // extern fun{} streamize_fileref_lnto ( input: FILEref , nwait: intGte(0)): stream_vt(linetimeout) extern fun{} streamize_fileref_lnto$bufsz(): intGte(2) // (* ****** ****** *) local #staload "libats\ /libc/SATS/unistd.sats" in (* in-of-local *) implement {}(*tmp*) streamize_fileref_lnto (input, nwait) = let // fun auxget0 ( input: FILEref , nwait: intGte(0) , bufsz: intGte(2) ) : stream_vt(linetimeout) = ( if fileref_is_eof(input) then stream_vt_make_nil() else auxget1(input, nwait, bufsz) ) (* end of [auxget0] *) and auxget1 ( input: FILEref , nwait: intGte(0) , bufsz: intGte(2) ) : stream_vt(linetimeout) = $ldelay ( let // var nlen: int val nbyte = i2sz(bufsz) // val (pf | _) = alarm_set (g1i2u(nwait)) // val [l:addr,n:int] line = $extfcall ( Strnptr0 , "atspre_fileref_get_line_string_main2" , nbyte, input, addr@(nlen) ) // val nlen = $UN.cast{int(n)}(nlen) // (* val () = println! ("nlen = ", nlen) val () = println! ("nbyte = ", nbyte) *) // val lnto = ( if nlen >= 0 then LNTOline ( $UN.castvwtp0(line) ) else let val () = strnptr_free(line) in LNTOtimeout((*void*)) end // end of [else] ) : linetimeout // val _(*leftover*) = alarm_cancel(pf | (*void*)) // in // stream_vt_cons (lnto, auxget0(input, nwait, bufsz)) // end ) (* end of [auxget1] *) // in // let val bufsz = streamize_fileref_lnto$bufsz<> ((*void*)) in auxget0(input, nwait, bufsz) end // end of [let] // end // end of [streamize_fileref_lnto] implement streamize_fileref_lnto$bufsz<>() = 1024 end // end of [local] (* ****** ****** *) // extern fun{} fileref_by_url_stdinopt (url: string): Option_vt(FILEref(*stdin*)) // extern fun{} fileref_by_command_stdinopt (arg0: string, args: stringlst): Option_vt(FILEref(*stdin*)) // (* ****** ****** *) // #define :: list_cons // implement {}(*tmp*) fileref_by_url_stdinopt (url) = ( fileref_by_command_stdinopt<> ("wget", "-q" :: "-O" :: "-" :: url :: nil{string}()) ) // (* ****** ****** *) implement {}(*tmp*) fileref_by_command_stdinopt (arg0, args) = let // val fid2 = arrayref_make_elt (i2sz(2), $UNSAFE.cast(0)) // val ret = $extfcall ( int , "pipe", arrayref2ptr(fid2)) // val pid = ( if ret >= 0 then $extfcall(int(*child*), "fork") else (~1)) : int // end of [val] // val ((*void*)) = if(pid >= 0) then ( // ifcase | pid > 0 => () where { val () = $extfcall(void, "close", fid2[1]) val () = $extfcall(void, "close", STDIN_FILENO) val dupfd0 = $extfcall(int, "dup", fid2[0]) // = 0 } | _(*pid = 0*) => () where // child { val () = $extfcall(void, "close", fid2[0]) val () = $extfcall(void, "close", STDOUT_FILENO) val dupfd1 = $extfcall(int, "dup", fid2[1]) // = 1 val argv = arrayref_make_elt (i2sz(length(args)+2), the_null_ptr) // end of [val] var p0 = arrayref2ptr(argv) val () = $UNSAFE.ptr0_setinc(p0, arg0) val () = loop(args, p0) where { fun loop(args: stringlst, p0: &ptr >> _): void = ( case+ args of | list_nil() => () | list_cons(arg, args) => loop(args, p0) where { val () = $UNSAFE.ptr0_setinc(p0, arg) } (* end of [list_cons] *) ) } val errno = $extfcall(int, "execvp", arg0, argv) } ) (* end of [if] *) // end of [if] // in // if pid >= 0 then Some_vt(stdin_ref) else (fileref_close(stdin_ref); None_vt()) // end // end of [fileref_by_command_stdinopt] (* ****** ****** *) // extern fun{} streamopt_url_char (url: string): Option_vt(stream_vt(char)) extern fun{} streamopt_url_line (url: string): Option_vt(stream_vt(string)) // (* ****** ****** *) implement {}(*tmp*) streamopt_url_char (url) = let // val opt = fileref_by_url_stdinopt(url) // in ( case+ opt of | ~None_vt() => None_vt() | ~Some_vt(inp) => Some_vt(streamize_fileref_char(inp)) ) end // end of [streamopt_url_char] (* ****** ****** *) implement {}(*tmp*) streamopt_url_line (url) = let // val opt = fileref_by_url_stdinopt(url) // in ( case+ opt of | ~None_vt() => None_vt() | ~Some_vt(inp) => Some_vt(streamize_fileref_line(inp)) ) end // end of [streamopt_url_line] (* ****** ****** *) (* end of [BUCS520-2018-Spring.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/DATS/BUCS520-2016-Fall.dats0000644000175000017500000001032113431250607030734 0ustar brandonbrandon(* ****** ****** *) // // Functions on streams // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) // %{^ // #undef ATSextfcall #define ATSextfcall(fun, arg) fun arg // %} // ... // staload "libats/libc/SATS/unistd.sats" staload "libats/libc/SATS/sys/wait.sats" // (* ****** ****** *) // extern fun{} string_make_stream_vt (stream_vt(charNZ)): string // implement {}(*tmp*) string_make_stream_vt (cs) = res where { // val cs = stream2list_vt(cs) val res = strnptr2string(string_make_list($UN.list_vt2t(cs))) val ((*freed*)) = list_vt_free(cs) // } (* end of [string_of_stream_vt] *) // (* ****** ****** *) // extern fun{} stream_by_url (url: string): stream_vt(char) // extern fun{} stream_by_command (arg0: string, args: stringlst): stream_vt(char) // (* ****** ****** *) // #define :: list_cons // implement {}(*tmp*) stream_by_url (url) = ( stream_by_command<> ("wget", "-q" :: "-O" :: "-" :: url :: nil{string}()) ) // (* ****** ****** *) implement {}(*tmp*) stream_by_command (arg0, args) = let // val fid2 = arrayref_make_elt (i2sz(2), $UNSAFE.cast(0)) // val ret = $extfcall (int, "pipe", arrayref2ptr(fid2)) // val pid = ( if (ret >= 0) then $extfcall(int(*child*), "fork") else (~1)): int // end of [val] // val ((*void*)) = if(pid >= 0) then ( // ifcase | pid > 0 => () where { val () = $extfcall(void, "close", fid2[1]) val () = $extfcall(void, "close", STDIN_FILENO) val dupfd0 = $extfcall(int, "dup", fid2[0]) // = 0 } | _(*pid = 0*) => () where // child { val () = $extfcall(void, "close", fid2[0]) val () = $extfcall(void, "close", STDOUT_FILENO) val dupfd1 = $extfcall(int, "dup", fid2[1]) // = 1 val argv = arrayref_make_elt (i2sz(length(args)+2), the_null_ptr) // end of [val] var p0 = arrayref2ptr(argv) val () = $UNSAFE.ptr0_setinc(p0, arg0) val () = loop(args, p0) where { fun loop(args: stringlst, p0: &ptr >> _): void = ( case+ args of | list_nil() => () | list_cons(arg, args) => loop(args, p0) where { val () = $UNSAFE.ptr0_setinc(p0, arg) } (* end of [list_cons] *) ) } val errno = $extfcall(int, "execvp", arg0, argv) } ) (* end of [if] *) // end of [if] // in // if pid >= 0 then streamize_fileref_char(stdin_ref) else (fileref_close(stdin_ref); stream_vt_make_nil()) // end // end of [stream_by_command] (* ****** ****** *) // // HX: to -> timeout // datavtype lineto = | LNTOline of Strptr1 | LNTOtimeout of ((*void*)) // extern fun{} streamize_fileref_lineto ( input: FILEref , nwait: intGte(0)): stream_vt(lineto) extern fun{} streamize_fileref_lineto$bufsz(): intGte(2) // (* ****** ****** *) local #staload "libats\ /libc/SATS/unistd.sats" in (* in-of-local *) implement {}(*tmp*) streamize_fileref_lineto (input, nwait) = let // fun auxget0 ( input: FILEref , nwait: intGte(0) , bufsz: intGte(2) ) : stream_vt(lineto) = ( if fileref_is_eof(input) then stream_vt_make_nil() else auxget1(input, nwait, bufsz) ) (* end of [auxget0] *) and auxget1 ( input: FILEref , nwait: intGte(0) , bufsz: intGte(2) ) : stream_vt(lineto) = $ldelay ( let // var nlen: int val nbyte = i2sz(bufsz) // val (pf | _) = alarm_set (g1i2u(nwait)) // val [l:addr,n:int] line = $extfcall ( Strnptr0 , "atspre_fileref_get_line_string_main2" , nbyte, input, addr@(nlen) ) // val nlen = $UN.cast{int(n)}(nlen) // (* val () = println! ("nlen = ", nlen) val () = println! ("nbyte = ", nbyte) *) // val lnto = ( if nlen >= 0 then LNTOline ($UN.castvwtp0{Strptr1}(line)) else let val () = strnptr_free(line) in LNTOtimeout((*void*)) end // end of [else] ) : lineto // val _(*leftover*) = alarm_cancel(pf | (*void*)) // in // stream_vt_cons (lnto, auxget0(input, nwait, bufsz)) // end ) (* end of [auxget1] *) // in // let val bufsz = streamize_fileref_lineto$bufsz<>() in auxget0(input, nwait, bufsz) end // end // end of [streamize_fileref_lineto] implement streamize_fileref_lineto$bufsz<>() = 1024 end // end of [local] (* ****** ****** *) (* end of [BUCS520-2016-Fall.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/DATS/BUCS320.dats0000644000175000017500000001377513431250607027510 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014-2015 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2014-02-06 // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/array0.sats" // (* ****** ****** *) // staload STDIO = "libats/libc/SATS/stdio.sats" // staload TIME = "libats/libc/SATS/time.sats" // staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) // staload STAT = "libats/libc/SATS/sys/stat.sats" staload TYPES = "libats/libc/SATS/sys/types.sats" // (* ****** ****** *) fun{} test_file_ixoth (path: string): int = let // macdef S_IXOTH = $UN.cast2uint($STAT.S_IXOTH) // implement test_file_mode$pred<> (mode) = (mode land S_IXOTH) != 0u // in // test_file_mode (path) // end // end of [test_file_ixoth] (* ****** ****** *) extern fun{} randint{n:pos}(int(n)): natLt(n) implement {}(*tmp*) randint{n}(n) = let val x = $STDLIB.random() in $UN.cast{natLt(n)}(x mod $UN.cast2lint(n)) end // end of [randint] (* ****** ****** *) extern fun{} srandom_with_time((*void*)): void implement {}(*tmp*) srandom_with_time () = $STDLIB.srandom($UN.cast{uint}($TIME.time_get())) // end of [srandom_with_time] (* ****** ****** *) extern fun{} srand48_with_time((*void*)): void implement {}(*tmp*) srand48_with_time () = $STDLIB.srand48($UN.cast{lint}($TIME.time_get())) // end of [srand48_with_time] (* ****** ****** *) // extern fun{} string_split_delim_string ( source: string, delim: string ) : List0_vt(Strptr1) // end-of-fun // implement {}(*tmp*) string_split_delim_string (source, delim) = let // #define NUL '\000' // vtypedef res = List0_vt(Strptr1) // fun loop ( p: ptr, res: res ) : res = let // val str = $UN.cast{String}(p) // val len = strspn(str, delim) val plen = ptr_add(p, len) // val str2 = $UN.cast{String}(plen) val len2 = strcspn(str2, delim) // in // if len2 = 0 then res else let val x = string_make_substring ( str2, i2sz(0), len2 ) (* end of [val] *) prval () = lemma_strnptr_param(x) val res = list_vt_cons(strnptr2strptr(x), res) in loop(ptr_add (plen, len2), res) end // end of [else] // end // end of [loop] // val res = loop(string2ptr(source), list_vt_nil(*void*)) // in list_vt_reverse (res) end // end of [string_split_delim_string] (* ****** ****** *) // extern fun{} array0_make_argv {n:int} ( argv: !argv(n), argc: int(n) ) : array0(string) // implement {}(*tmp*) array0_make_argv {n}(argv, argc) = let // prval () = lemma_argv_param (argv) // val n = g1int2uint_int_size(argc) // val A = $effmask_all ( arrayref_copy ( $UN.castvwtp1{arrayref(string,n)}(argv), n ) ) (* end of [val] *) // in // array0_make_arrayref(arrayptr_refize(A), n) // end // end of [array0_make_argv] // (* ****** ****** *) // extern fun{} cstream_make_stdin(): stream(int) // implement {}(*tmp*) cstream_make_stdin ((*void*)) = ( (fix f(): stream(int) => $delay(stream_cons($STDIO.getchar0(), f())) )((*void*)) ) (* end of [cstream_make_stdin] *) // (* ****** ****** *) // extern fun{} cstream_make_fileref (inp: FILEref): stream(int) // implement {}(*tmp*) cstream_make_fileref (inp) = aux(inp) where { // fun aux ( inp: FILEref ) : stream(int) = $delay ( // let // val c = $STDIO.fgetc0(inp) // in // if ( c >= 0 ) then ( stream_cons(c, aux(inp)) ) (* end of [then] *) else ( stream_cons{int}(~1, aux2()) ) (* end of [else] *) // end // end of [let] // ) (* end of [$delay] *) // and aux2(): stream(int) = ( $delay(stream_cons(~1, aux2())) ) // } (* end of [cstream_make_fileref] *) (* ****** ****** *) // extern fun{} time_spent$show(time: double): void // extern fun {a:vt0p} time_spent_cloptr (f0: ((*void*)) - (a)): (a) extern fun {a:vt0p} time_spent_cloref (f0: ((*void*)) - (a)): (a) // (* ****** ****** *) implement {}(*tmp*) time_spent$show (time) = ( println! ("The time spent: ", time, "(sec)") ) (* end of [time_spent_add$show] *) (* ****** ****** *) implement {a}(*tmp*) time_spent_cloptr (f0) = result where { // val f1 = $UN.castvwtp1{cfun0(a)}(f0) val result = time_spent_cloref(f1) val ((*freed*)) = cloptr_free{void}($UN.castvwtp0(f0)) // } (* end of [time_spent_cloptr] *) implement {a}(*tmp*) time_spent_cloref (f0) = result where { // val clock0 = $UN.cast{double}($TIME.clock()) // val result = f0() // val clock1 = $UN.cast{double}($TIME.clock()) // val tspent = (clock1-clock0) / $UN.cast{double}($TIME.CLOCKS_PER_SEC) // val ((*void*)) = time_spent$show<>(tspent) // } (* end of [time_spent_cloref] *) (* ****** ****** *) (* end of [BUCS320.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/mylibies.hats0000644000175000017500000000063113431250607027600 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-02-10: // For downstream staloading // (* ****** ****** *) // #staload BUCS320 = "./DATS/BUCS320.dats" // (* ****** ****** *) // #staload BUCS520 = "./DATS/BUCS520.dats" // (* ****** ****** *) // #staload BUCS520_2016_FALL = "./DATS/BUCS520-2016-Fall.dats" #staload BUCS520_2018_Spring = "./DATS/BUCS520-2018-Spring.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/Makefile_test0000644000175000017500000000053113431250607027600 0ustar brandonbrandon# # For testing # ###### NPM=npm RMF=rm -f RMRF=rm -rf ###### all:: ###### SUBDIRS := SUBDIRS += TEST ###### all:: ; $(NPM) install ###### all:: ; \ for i in $(SUBDIRS); do $(MAKE) -C $$i testall; done ###### cleanall:: ; $(RMF) ./node_modules -r cleanall:: ; $(RMF) ./package-lock.json ###### ###### end of [Makefile_test] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/TEST/0000755000175000017500000000000013431250607025661 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/TEST/test01.dats0000644000175000017500000000067613431250607027667 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) #include "./../DATS/BUCS520.dats" (* ****** ****** *) implement main0(argc, argv) = { // val- ~Some_vt (date) = shell_eval("date", nil()) // val ((*void*)) = print!(date) val ((*freed*)) = strptr_free(date) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/TEST/Makefile0000644000175000017500000000232413431250607027322 0ustar brandonbrandon###### # # A simple Makefile # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt PATSLIB=$(PATSHOMEQ)/ccomp/atslib/lib ###### all:: ###### all:: \ test01 test01: \ test01.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### all:: \ test_find test_find: \ test_find.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### all:: \ test_which test_which: \ test_which.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### all:: \ test_download test_download: \ test_download.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### all:: \ test_lineto test_lineto: \ test_lineto.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< -latslib ###### # all:: \ test_intinf test_intinf: \ test_intinf.dats ; \ $(PATSCC) -O2 \ -I$(PATSHOME)/contrib/atscntrb -DATS_MEMALLOC_LIBC -o $@ $< -lgmp # ###### testall:: all testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### cleanall:: clean cleanall:: ; $(RMF) test01 cleanall:: ; $(RMF) test_find cleanall:: ; $(RMF) test_which cleanall:: ; $(RMF) test_download cleanall:: ; $(RMF) test_lineto cleanall:: ; $(RMF) test_intinf ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/TEST/test_find.dats0000644000175000017500000000176013431250607030521 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) // #include "./../DATS/BUCS520-2016-Fall.dats" // (* ****** ****** *) // #include "share/atspre_staload_libats_ML.hats" // (* ****** ****** *) implement main0(argc, argv) = { // val out = stdout_ref // val () = assertloc(argc >= 2) // val cs = stream_by_command<> ( "find" , $list{string} (argv[1], "-type", "f") ) (* stream_by_command *) // val css = stream_vt_delim_cloptr (cs, lam(c) => c = '\n') val lines = stream_vt_map_cloptr ( css , lam(cs) => string_make_list(list_vt2t(cs)) ) // local implement stream_vt_fprint$beg<>(out) = () implement stream_vt_fprint$end<>(out) = () implement stream_vt_fprint$sep<>(out) = fprint(out, "\n") in val () = stream_vt_fprint(lines, out, 100) end // end of [local] // val () = fprintln!(out, "\n...") // } (* end of [main0] *) (* ****** ****** *) (* end of [test_find.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/TEST/test_which.dats0000644000175000017500000000314413431250607030701 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) #include "./../DATS/BUCS320.dats" (* ****** ****** *) implement main0(argc, argv) = { // val () = if (argc <= 1) then { val () = fprintln! ( stderr_ref, "Usage: ", argv[0], " ", "" ) (* end of [val] *) } (* end of [if] *) // val () = assertloc(argc >= 2) // val command = argv[1] // val (fpf | path) = $STDLIB.getenv("PATH") // val () = if ( strptr2ptr(path) = 0 ) then { // val () = prerrln! ("The environment variable [PATH] is undefined!") val () = exit(1){void} // } (* end of [if] *) // (* val () = println! ("PATH = ", path) *) // fun test ( dir: string, command: string ) : int = let // val path = string_append(dir, "/", command) val answer = test_file_ixoth ($UN.strptr2string(path)) // val ((*void*)) = strptr_free(path) // in answer end // end of [test] // val () = assertloc (strptr2ptr(path) > 0) // val dirs = string_split_delim_string($UN.strptr2string(path), ":") // prval ((*void*)) = fpf (path) // val () = let // fun loop ( dirs: List_vt(Strptr1), command: string ) : void = case+ dirs of | ~list_vt_nil () => () | ~list_vt_cons (dir, dirs) => let val ans = test ($UN.strptr2string(dir), command) val ((*void*)) = if ans >= 1 then println! (dir, "/", command) val ((*freed*)) = strptr_free(dir) in loop (dirs, command) end // end of [list_vt_cons] // in loop (dirs, command) end // end of [val] // } (* end of [main0] *) (* ****** ****** *) (* end of [test_which.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/TEST/test_intinf.dats0000644000175000017500000000416113431250607031066 0ustar brandonbrandon(* ****** ****** *) #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" (* ****** ****** *) #staload "./../DATS/BUCS320.dats" (* ****** ****** *) // #include "contrib/atscntrb\ /atscntrb-hx-intinf/mydepies.hats" #include "contrib/atscntrb\ /atscntrb-hx-intinf/mylibies.hats" // #staload $INTINF_vt // opening the package // (* ****** ****** *) // fun factorial0 {n:nat} .. (k: int(n)) : int = ( case+ k of | 0 => 1 | k =>> k * factorial0(k - 1) ) // (* ****** ****** *) // fun factorial1 {n:nat} .. (k: int(n)) : Intinf = ( case+ k of | 0 => int2intinf(1) | k =>> mul_int_intinf0(k, factorial1(k - 1)) ) // (* ****** ****** *) // fun factorial2 {n:nat} .. (n: int(n)): Intinf = let // vtypedef mpz = $GMP.mpz // fun loop { i:nat | i <= n} ( i: int(i), x: &mpz >> _): void = ( if (i < n) then loop(i+1, x) where { val () = $GMP.mpz_mul2_uint(x, g0i2u(i+1)) } else ((*void*)) ) // val ( pfat , pfgc | p0) = ptr_alloc() // val ((*init*)) = $GMP.mpz_init_set(!p0, 1) // in let val () = loop(0, !p0) in $UN.castvwtp0((pfat, pfgc | p0)) end end // end of [factorial2] // (* ****** ****** *) fun factorial3_gmp {n:nat} .. (n: int(n)) : Intinf = let // vtypedef mpz = $GMP.mpz // val ( pfat , pfgc | p0) = ptr_alloc() // val ((*init*)) = $GMP.mpz_init(!p0) // in $GMP.mpz_fac_uint(!p0, g0i2u(n)); $UN.castvwtp0((pfat, pfgc | p0)) end // end of [factorial_gmp (* ****** ****** *) implement main0() = () where { // val N = 100 val ntime = 1000000 // val _ = time_spent_cloref ( lam() => 0 where { val () = (ntime).repeat() (lam()=>ignoret($UN.castvwtp0{ptr}(factorial0(N)))) } ) // val _ = time_spent_cloref ( lam() => 0 where { val () = (ntime).repeat() (lam()=>ignoret($UN.castvwtp0{ptr}(factorial1(N)))) } ) // val _ = time_spent_cloref ( lam() => 0 where { val () = (ntime).repeat() (lam()=>ignoret($UN.castvwtp0{ptr}(factorial2(N)))) } ) // val _ = time_spent_cloref ( lam() => 0 where { val () = (ntime).repeat() (lam()=>ignoret($UN.castvwtp0{ptr}(factorial3_gmp(N)))) } ) // } (* end of [main0] *) (* ****** ****** *) (* end of [test_intinf.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/TEST/test_download.dats0000644000175000017500000000126713431250607031412 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) // #include "./../DATS/BUCS520-2016-Fall.dats" // (* ****** ****** *) implement main0(argc, argv) = { // val out = stdout_ref val url = "http://ats-lang.org" // val cs = stream_by_url(url) // local implement stream_vt_fprint$beg<>(out) = () implement stream_vt_fprint$end<>(out) = () implement stream_vt_fprint$sep<>(out) = () in val () = stream_vt_fprint(cs, out, 1024) end // end of [local] // val () = fprint(out, "...") val () = fprint_newline(out) // } (* end of [main0] *) (* ****** ****** *) (* end of [test_download.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/package.json0000644000175000017500000000110213431250607027362 0ustar brandonbrandon{ "name": "atscntrb-hx-teaching-bucs", "version": "1.0.9", "description": "This package contains library code for teaching BUCS courses...", "main": "N/A", "scripts": {}, "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/npm-utils/contrib/libats-/hwxi/teaching/BUCS" }, "keywords": [ "ATS", "BUCS", "BUCS320", "BUCS520" ], "dependencies": {}, "author": "Hongwei Xi ", "license": "MIT", "note-for-me": "The package is stored at ${PATSHOME}/npm-utils/contrib/libats-hwxi/teaching/BUCS/." } ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/BUCS/mylibies_link.hats0000644000175000017500000000031013431250607030607 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-27: // Note that [BUCS.dats] contains only templates, // and so this file is intentionlly kept to empty! // (* ****** ****** *) (* end of [mylibies_link.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/0000755000175000017500000000000013431250607026163 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/DATS/0000755000175000017500000000000013431250607026716 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/DATS/spinvar.dats0000644000175000017500000000670213431250607031262 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2014-05: // This is based on spinlock // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/athread.sats" (* ****** ****** *) staload "./../SATS/spinvar.sats" (* ****** ****** *) // datavtype spinvar_vt(a:vt0p) = {l:agz} SPINVAR of (spin(l), a) // (* ****** ****** *) (* assume spinvar_vtype (a:vt0p) = spinvar_vt(a) *) (* ****** ****** *) implement {a}(*tmp*) spinvar_create_exn (x) = let // val spn = spin_create_exn () // in $UN.castvwtp0{spinvar(a)}(SPINVAR{a}(spn, x)) end // end of [spinvar_create_exn] (* ****** ****** *) implement {}(*tmp*) spinvar_destroy {a}(spnv) = let // val+~SPINVAR (spn, _) = $UN.castvwtp0{spinvar_vt(a)}(spnv) // in spin_vt_destroy(unsafe_spin_t2vt(spn)) end // end of [spinvar_destroy] (* ****** ****** *) implement {a}(*tmp*) spinvar_get (spnv) = x_ where { // val spnv = $UN.castvwtp1{spinvar_vt(a)}(spnv) // val+@SPINVAR(spn, x) = spnv // val (pf | ()) = spin_lock (spn) val x_ = x val ((*void*)) = spin_unlock (pf | spn) // prval () = fold@ (spnv) prval () = $UN.castview0{void}(spnv) // } (* end of [spinvar_get] *) (* ****** ****** *) implement {a}(*tmp*) spinvar_getfree (spnv) = x where { // val+~SPINVAR (spn, x) = $UN.castvwtp0{spinvar_vt(a)}(spnv) val () = spin_vt_destroy(unsafe_spin_t2vt(spn)) // } (* end of [spinvar_getfree] *) (* ****** ****** *) implement {a}(*tmp*) spinvar_process (spnv) = let // var env: void = () // in spinvar_process_env (spnv, env) end // end of [spinvar_process] (* ****** ****** *) implement {a}{env} spinvar_process_env (spnv, env) = () where { // val spnv = $UN.castvwtp1{spinvar_vt(a)}(spnv) // val+@SPINVAR(spn, x) = spnv // val (pf | ()) = spin_lock (spn) val () = spinvar_process$fwork (x, env) val ((*void*)) = spin_unlock (pf | spn) // prval () = fold@ (spnv) prval () = $UN.castview0{void}(spnv) // } (* end of [spinvar_process_env] *) (* ****** ****** *) (* end of [spinvar.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/DATS/parallelize.dats0000644000175000017500000000542513431250607032105 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** HX-2014-06-02: Start it now! *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "./../SATS/nwaiter.sats" // (* ****** ****** *) // staload "./../SATS/parallelize.sats" // (* ****** ****** *) implement {}(*tmp*) intrange_parallelize ( start , finish , cutoff, nw ) = let // vtypedef ticket = nwaiter_ticket // fun segmentize ( m: int, n: int, cutoff: int, tick: ticket ) : void = let val m2 = m + cutoff in // if m2 >= n then let val ((*void*)) = intrange_parallelize$submit ( llam () => ( intrange_parallelize$loop<>(m, n); nwaiter_ticket_put(tick) ) ) (* end of [intrange_parallelize$submit] *) in // nothing end // end of [then] else let val tick2 = nwaiter_ticket_split(tick) val ((*void*)) = intrange_parallelize$submit ( llam () => ( intrange_parallelize$loop<>(m, m2); nwaiter_ticket_put(tick2) ) ) (* end of [intrange_parallelize$submit] *) in segmentize(m2, n, cutoff, tick) end // end of [else] // end // end of [segmentize] // val tick = nwaiter_initiate(nw) val ((*void*)) = segmentize(start, finish, cutoff, tick) val ((*void*)) = nwaiter_waitfor(nw) // in // nothing end // end of [intrange_parallelize] (* ****** ****** *) (* end of [parallelize.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/DATS/nwaiter.dats0000644000175000017500000001022513431250607031244 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2014-05: // For waiting until the proofs for // a predeterminted view are all uploaded // in a piecewise manner. // Note that this version does not use types // to ensure a correct match between the uploaded // proofs and the downloaded proof. // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/athread.sats" (* ****** ****** *) staload "./../SATS/nwaiter.sats" (* ****** ****** *) // datavtype nwaiter () = {l1,l2:agz} NWAITER of (int, spin(l1), mutex(l2)) // (* ****** ****** *) assume nwaiter_vtype (i) = nwaiter () (* ****** ****** *) implement {}(*tmp*) nwaiter_create_exn ((*void*)) = let // val spn = spin_create_exn () val mtx = mutex_create_exn () // in NWAITER(0(*n*), spn, mtx) end // end of [nwaiter_create_exn] (* ****** ****** *) implement {}(*tmp*) nwaiter_destroy (nw) = () where { // val+~NWAITER(n, spn, mtx) = nw // val spn = unsafe_spin_t2vt (spn) val ((*freed*)) = spin_vt_destroy (spn) val mtx = unsafe_mutex_t2vt (mtx) val ((*freed*)) = mutex_vt_destroy (mtx) // } (* end of [nwaiter_destroy] *) (* ****** ****** *) implement {}(*tmp*) nwaiter_initiate (nw) = let // val+@NWAITER(n, spn, mtx) = nw // val () = n := 1 val (pf | ()) = mutex_lock (mtx) prval () = $UN.castview0 (pf) // prval ((*void*)) = fold@ (nw) // in $UN.castvwtp1{nwaiter_ticket}(nw) end // end of [nwaiter_initiate] (* ****** ****** *) implement {}(*tmp*) nwaiter_waitfor (nw) = let // val+NWAITER(n, spn, mtx) = nw // val (pf | ()) = mutex_lock (mtx) val ((*void*)) = mutex_unlock (pf | mtx) // in // nothing end // end of [nwaiter_waitfor] (* ****** ****** *) implement {}(*tmp*) nwaiter_ticket_put (nwt) = () where { (* val () = println! ("nwaiter_ticket_put") *) val nw = $UN.castvwtp0{nwaiter(1)}(nwt) val+@NWAITER (n, spn, mtx) = nw // val (pf | ()) = spin_lock (spn) val () = n := n - 1 val ((*void*)) = spin_unlock (pf | spn) (* val () = println! ("nwaiter_ticket_put(aft): n = ", n) *) val () = if (0 >= n) then let prval pf = __assert (mtx) where { extern praxi __assert {l:addr} (!mutex(l)): locked_v(l) } (* end of [prval] *) in mutex_unlock (pf | mtx) end else () // end of [if] // prval () = fold@ (nw) prval () = $UN.castview0{void}(nw) // } (* end of [nwaiter_ticket_put] *) (* ****** ****** *) implement {}(*tmp*) nwaiter_ticket_split (nwt) = let // val nw = $UN.castvwtp1{nwaiter(1)}(nwt) val+@NWAITER (n, spn, mtx) = nw // val (pf | ()) = spin_lock (spn) val () = n := n + 1 val ((*void*)) = spin_unlock (pf | spn) // prval ((*folded*)) = fold@ (nw) // in $UN.castvwtp0{nwaiter_ticket}(nw) end // end of [nwaiter_ticket_split] (* ****** ****** *) (* end of [nwaiter.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/DATS/channel_vt.dats0000644000175000017500000002252113431250607031716 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2015 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2015-01: // An array-based linear channel // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/SATS/athread.sats" // staload "libats/SATS/deqarray.sats" // (* ****** ****** *) staload "./../SATS/channel_vt.sats" (* ****** ****** *) // absvtype queue_vtype(a:vt@ype+, int(*id*)) = ptr // vtypedef queue(a:vt0p, id:int) = queue_vtype(a, id) vtypedef queue(a:vt0p) = [id:int] queue(a, id) // (* ****** ****** *) // extern fun {a:vt0p} queue_make(cap: sizeGt(0)): queue(a) // extern fun {a:t@ype} queue_free_type(que: queue(a)): void // (* ****** ****** *) // absprop ISNIL(id:int, b:bool) absprop ISFUL(id:int, b:bool) // extern fun {a:vt0p} queue_isnil{id:int} (que: !queue(a, id)): [b:bool] (ISNIL(id, b) | bool(b)) extern fun {a:vt0p} queue_isful{id:int} (que: !queue(a, id)): [b:bool] (ISFUL(id, b) | bool(b)) // (* ****** ****** *) // extern fun {a:vt0p} queue_insert {id:int} ( ISFUL(id, false) | xs: !queue(a, id) >> queue(a, id2), x: a ) : #[id2:int] void // extern fun {a:vt0p} queue_takeout {id:int} ( ISNIL(id, false) | xs: !queue(a, id) >> queue(a, id2) ) : #[id2:int] a // end-of-fun // (* ****** ****** *) local // staload "libats/SATS/deqarray.sats" // assume queue_vtype(a:vt0p, id:int) = deqarray(a) // assume ISNIL(id:int, b:bool) = unit_p assume ISFUL(id:int, b:bool) = unit_p // in (* in-of-local *) implement {a}(*tmp*) queue_make(cap) = deqarray_make_cap(cap) implement {a}(*tmp*) queue_free_type(que) = deqarray_free_nil($UN.castvwtp0{deqarray(a,1,0)}(que)) // end of [queue_free_type] implement {a}(*tmp*) queue_isnil(xs) = (unit_p() | deqarray_is_nil(xs)) implement {a}(*tmp*) queue_isful(xs) = (unit_p() | deqarray_is_full(xs)) implement {a}(*tmp*) queue_insert (pf | xs, x0) = { // prval () = __assert (pf) where { extern praxi __assert {id:int} ( pf: ISFUL(id, false) ) : [false] void } (* end of [prval] *) // val () = deqarray_insert_atend (xs, x0) // } (* end of [queue_insert] *) (* ****** ****** *) implement {a}(*tmp*) queue_takeout (pf | xs) = let // prval () = __assert (pf) where { extern praxi __assert {id:int} ( pf: ISNIL(id, false) ) : [false] void } (* end of [prval] *) // in deqarray_takeout_atbeg (xs) end (* end of [queue_takeout] *) end // end of [local] (* ****** ****** *) // datavtype channel_ = { l0,l1,l2,l3:agz } CHANNEL of @{ cap=sizeGt(0) , spin=spin_vt(l0) , rfcnt=intGt(0) , mutex=mutex_vt(l1) , CVisnil=condvar_vt(l2) , CVisful=condvar_vt(l3) , queue=ptr // deqarray } (* end of [channel] *) // (* ****** ****** *) assume channel_vtype(a:vt0p) = channel_ (* ****** ****** *) implement {a}(*tmp*) channel_create_exn (cap) = let // extern praxi __assert(): [l:agz] void // prval [l0:addr] () = __assert() prval [l1:addr] () = __assert() prval [l2:addr] () = __assert() prval [l3:addr] () = __assert() // val chan = CHANNEL{l0,l1,l2,l3}(_) // val+CHANNEL(ch) = chan // val () = ch.cap := cap val () = ch.rfcnt := 1 // local val x = spin_create_exn() in(*in-of-local*) val () = ch.spin := unsafe_spin_t2vt(x) end // end of [local] // local val x = mutex_create_exn() in(*in-of-local*) val () = ch.mutex := unsafe_mutex_t2vt(x) end // end of [local] // local val x = condvar_create_exn() in(*in-of-local*) val () = ch.CVisnil := unsafe_condvar_t2vt(x) end // end of [local] // local val x = condvar_create_exn() in(*in-of-local*) val () = ch.CVisful := unsafe_condvar_t2vt(x) end // end of [local] // val () = ch.queue := $UN.castvwtp0{ptr}(queue_make(cap)) // in fold@(chan); chan end // end of [channel_create_exn] (* ****** ****** *) implement {a}(*tmp*) channel_ref (chan) = let // val@CHANNEL(ch) = chan // val spin = unsafe_spin_vt2t(ch.spin) // val (pf | ()) = spin_lock (spin) val () = ch.rfcnt := ch.rfcnt + 1 val ((*void*)) = spin_unlock (pf | spin) // prval () = fold@(chan) // in $UN.castvwtp1{channel(a)}(chan) end // end of [channel_ref] (* ****** ****** *) implement {a}(*tmp*) channel_unref (chan) = let // val@CHANNEL {l0,l1,l2,l3}(ch) = chan // val spin = unsafe_spin_vt2t(ch.spin) // val (pf | ()) = spin_lock (spin) val rfcnt = ch.rfcnt val ((*void*)) = spin_unlock (pf | spin) // in (* in-of-let *) // if rfcnt > 1 then let val () = ch.rfcnt := rfcnt - 1 prval ((*fold*)) = fold@(chan) prval ((*freed*)) = $UN.cast2void(chan) in $UN.castvwtp0{queueopt(a)}(0) end // end of [then] else let val que = $UN.castvwtp0{queue(a)}(ch.queue) // end of [val] val ((*freed*)) = spin_vt_destroy(ch.spin) val ((*freed*)) = mutex_vt_destroy(ch.mutex) val ((*CVisnil*)) = condvar_vt_destroy(ch.CVisnil) val ((*CVisful*)) = condvar_vt_destroy(ch.CVisful) val ((*freed*)) = free@{l0,l1,l2,l3}(chan) in $UN.castvwtp0{queueopt(a)}(que) end // end of [else] // end // end of [channel_unref] (* ****** ****** *) implement {}(*tmp*) channel_get_refcount {a}(chan) = let // val@CHANNEL {l0,l1,l2,l3}(ch) = chan // val rfcnt = ch.rfcnt // in fold@(chan); rfcnt end // end of [channel_get_refcount] (* ****** ****** *) local // extern fun{a:vt0p} channel_insert_buf (!channel(a), buf: !queue(a) >> _, a): void // in implement{a} channel_insert (chan, x0) = let // val+ CHANNEL {l0,l1,l2,l3}(ch) = chan // val mutex = unsafe_mutex_vt2t(ch.mutex) val (pfmut | ()) = mutex_lock(mutex) // val xs = $UN.castvwtp0{queue(a)}((pfmut | ch.queue)) val ((*void*)) = channel_insert_buf(chan, xs, x0) prval pfmut = $UN.castview0{locked_v(l1)}(xs) val ((*void*)) = mutex_unlock (pfmut | mutex) // in // nothing end // end of [channel_insert] (* ****** ****** *) implement {a}(*tmp*) channel_insert_buf (chan, xs, x0) = let // val+ CHANNEL {l0,l1,l2,l3}(ch) = chan // val (pf | isful) = queue_isful(xs) // in // if (isful) then let prval (pfmut, fpf) = __assert((*void*)) where { extern praxi __assert ( // argless ) : vtakeout0(locked_v(l1)) } val mutex = unsafe_mutex_vt2t(ch.mutex) val CVisful = unsafe_condvar_vt2t(ch.CVisful) val ((*void*)) = condvar_wait(pfmut | CVisful, mutex) // end of [val] // prval ((*returned*)) = fpf(pfmut) // in channel_insert_buf(chan, xs, x0) end // end of [then] else ((*void*)) where { val isnil = queue_isnil(xs) val ((*void*)) = queue_insert(pf | xs, x0) val ((*void*)) = if isnil.1 then condvar_broadcast(unsafe_condvar_vt2t(ch.CVisnil)) // end of [if] } (* end of [else] *) // end // end of [channel_insert_buf] end // end of [local] (* ****** ****** *) local // extern fun{a:vt0p} channel_takeout_buf (chan: !channel(a), buf: !queue(a) >> _): (a) // in (* in-of-local *) implement {a}(*tmp*) channel_takeout (chan) = x0 where { // val+ CHANNEL {l0,l1,l2,l3}(ch) = chan // val mutex = unsafe_mutex_vt2t(ch.mutex) val (pfmut | ()) = mutex_lock(mutex) val xs = $UN.castvwtp0{queue(a)}((pfmut | ch.queue)) val x0 = channel_takeout_buf (chan, xs) prval pfmut = $UN.castview0{locked_v(l1)}(xs) val ((*void*)) = mutex_unlock (pfmut | mutex) // } (* end of [channel_takeout_buf] *) (* ****** ****** *) implement {a}(*tmp*) channel_takeout_buf (chan, xs) = let // val+CHANNEL {l0,l1,l2,l3}(ch) = chan // val (pf | isnil) = queue_isnil (xs) // in // if (isnil) then let prval (pfmut, fpf) = __assert((*void*)) where { extern praxi __assert ( // argless ) : vtakeout0(locked_v(l1)) } val mutex = unsafe_mutex_vt2t(ch.mutex) val CVisnil = unsafe_condvar_vt2t(ch.CVisnil) val ((*void*)) = condvar_wait(pfmut | CVisnil, mutex) // end of [val] // prval ((*returned*)) = fpf(pfmut) // in channel_takeout_buf(chan, xs) end // end of [then] else x0_out where { val isful = queue_isful(xs) val x0_out = queue_takeout(pf | xs) val ((*void*)) = if isful.1 then condvar_broadcast(unsafe_condvar_vt2t(ch.CVisful)) // end of [if] } (* end of [else] *) // end // end of [channel_takeout_buf] end // end of [local] (* ****** ****** *) (* end of [channel_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/DATS/spinref.dats0000644000175000017500000000531013431250607031240 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2014-05: // This is based on spinlock // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/athread.sats" (* ****** ****** *) staload "./../SATS/spinvar.sats" staload "./../SATS/spinref.sats" (* ****** ****** *) implement{a} spinref_create_exn (x) = let // val spnv = spinvar_create_exn (x) // in $UN.castvwtp0{spinref(a)}(spnv) end // end of [spinref_create_exn] (* ****** ****** *) implement {a}(*tmp*) spinref_get (spnr) = x where { // val spnv = $UN.castvwtp0{spinvar(a)}(spnr) val x = spinvar_get (spnv) prval () = $UN.castview0{void}(spnv) // } (* end of [spinref_get] *) (* ****** ****** *) implement {a}(*tmp*) spinref_process (spnr) = let // var env: void = () // in spinref_process_env (spnr, env) end // end of [spinref_process] (* ****** ****** *) implement {a}{env} spinref_process_env (spnr, env) = () where { // implement spinvar_process$fwork = spinref_process$fwork // val spnv = $UN.castvwtp0{spinvar(a)}(spnr) val () = spinvar_process_env (spnv, env) prval () = $UN.castview0{void}(spnv) // } (* end of [spinref_process_env] *) (* ****** ****** *) (* end of [spinref.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/DATS/workshop.dats0000644000175000017500000001321313431250607031447 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** HX-2014-06-01: Start it now! *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload AT = "libats/SATS/athread.sats" // (* ****** ****** *) staload "./../SATS/channel.sats" staload "./../SATS/workshop.sats" (* ****** ****** *) typedef tid = $AT.tid typedef spin1 = $AT.spin1 (* ****** ****** *) vtypedef workshop_struct (a:vt0p) = @{ // WS_spin= spin1 // , WS_chan= channel(a) , WS_workerlst= List0_vt(tid) // } (* end of [workshop_struct] *) (* ****** ****** *) // extern fun{} workshop_add_tid {a:vt0p} (workshop(a), tid): void // (* ****** ****** *) // extern fun{} workshop_get_channel {a:vt0p}(workshop(a)): channel(a) // (* ****** ****** *) local // assume workshop_type (a:vt0p) = ref(workshop_struct(a)) // in (* in-of-local *) (* ****** ****** *) implement {}(*tmp*) workshop_get_capacity (ws) = let // val ( vbox pf | p ) = ref_get_viewptr(ws) // in channel_get_capacity(p->WS_chan) end (* end of [workshop_get_capacity] *) (* ****** ****** *) implement {}(*tmp*) workshop_get_channel (ws) = let // val (vbox pf | p) = ref_get_viewptr(ws) in p->WS_chan // end // end of [workshop_get_channel] (* ****** ****** *) implement {}(*tmp*) workshop_get_nworker (ws) = let // val ( vbox pf | p ) = ref_get_viewptr(ws) // val spn = p->WS_spin val ( pflock | () ) = $AT.spin_lock (spn) val nworker = list_vt_length(p->WS_workerlst) val ((*void*)) = $AT.spin_unlock(pflock | spn) // in nworker end (* end of [workshop_get_nworker] *) (* ****** ****** *) implement {}(*tmp*) workshop_add_tid (ws, tid) = let // val ( vbox pf | p ) = ref_get_viewptr (ws) // val spn = p->WS_spin val ( pflock | () ) = $AT.spin_lock(spn) val tids = p->WS_workerlst val ((*void*)) = p->WS_workerlst := list_vt_cons(tid, tids) // val ((*void*)) = $AT.spin_unlock(pflock | spn) // in // nothing end (* end of [workshop_add_tid] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) implement {a}(*tmp*) workshop_create_cap (cap) = let // val ( pf, fpf | p ) = ptr_alloc() // val () = p->WS_spin := $AT.spin_create_exn() val () = p->WS_chan := channel_create_exn(cap) val () = p->WS_workerlst := list_vt_nil((*void*)) // in $UN.castvwtp0{workshop(a)}((pf, fpf | p)) end // end of [workshop_create_cap] (* ****** ****** *) implement {a}(*tmp*) workshop_insert_job (ws, x) = let // val chan = workshop_get_channel<>(ws) // end of [val] in channel_insert(chan, x) end // end of [workshop_insert_job] (* ****** ****** *) implement {a}(*tmp*) workshop_takeout_job (ws) = let // val chan = workshop_get_channel<>(ws) // end of [val] in channel_takeout(chan) end // end of [workshop_takeout_job] (* ****** ****** *) implement {a}(*tmp*) workshop_add_worker (ws) = let // fun fworker ( ws: workshop(a) ) : void = let // val x0 = workshop_takeout_job(ws) val status = workshop_handle_job(ws, x0) // in if status >= 0 then fworker(ws) else ((*exit*)) end // end of [fworker] // var tid: lint? // val err = $AT.athread_create_cloptr (tid, llam ((*void*)) => fworker(ws)) // val ((*void*)) = if (err = 0) then workshop_add_tid (ws, tid) // in err end // end of [workshop_add_worker] (* ****** ****** *) implement {a}(*tmp*) workshop_add_nworker {n}(ws, n) = let // fun loop ( ws: workshop(a), n: int, res: int ) : int = let in // if n > 0 then let // val err = workshop_add_worker(ws) // in if err = 0 then loop(ws, n - 1, res + 1) else res end // end of [then] else res // end of [else] // end // end of [loop] // in $UN.cast{natLte(n)}(loop(ws, n, 0)) end // end of [workshop_add_nworker] (* ****** ****** *) // // lincloptr = ((*void*)) - void // (* ****** ****** *) // implement {}(*tmp*) workshop_handle_job_lincloptr (ws, job) = let // val () = $UN.castvwtp0{()-void}(job)() in (0) // end (* end of [workshop_handle_job_lincloptr] *) (* ****** ****** *) // implement workshop_handle_job = workshop_handle_job_lincloptr<> // (* ****** ****** *) // implement {}(*tmp*) workshop_insert_job_lincloptr (ws, job) = workshop_insert_job(ws, $UN.castvwtp0{lincloptr}(job)) // (* ****** ****** *) (* end of [workshop.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/DATS/channel.dats0000644000175000017500000001664213431250607031214 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2013-11: // An array-based channel // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/SATS/athread.sats" // staload "libats/SATS/deqarray.sats" // (* ****** ****** *) staload "./../SATS/channel.sats" (* ****** ****** *) // datatype channel = { l1,l2,l3:agz } CHANNEL of ( ptr(*buf*) , size_t(*cap*) , mutex(l1) , condvar(l2), condvar(l3) ) (* end of [channel] *) // (* ****** ****** *) // assume channel_type(a:vt0p) = channel // (* ****** ****** *) implement {a}(*tmp*) channel_create_exn (cap) = let // val mut = mutex_create_exn() // val CVisnil = condvar_create_exn() val CVisful = condvar_create_exn() // val deq =deqarray_make_cap(cap) val deq = $UN.castvwtp0{Ptr0}(deq) // in CHANNEL(deq, cap, mut, CVisnil, CVisful) end // end of [channel_create_exn] (* ****** ****** *) // implement {}(*tmp*) channel_get_capacity(chan) = let // val+ CHANNEL(ptr, cap, _, _, _) = chan in g1ofg0(cap) // end // end of [channel_get_capacity] // (* ****** ****** *) // extern fun{a:vt0p} channel_insert_buf (channel(a), buf: !deqarray(a) >> _, a): void extern fun{a:vt0p} channel_takeout_buf (chan: channel(a), buf: !deqarray(a) >> _): (a) // (* extern fun{a:vt0p} channel_process_buf (chan: channel(a), buf: !deqarray(a) >> _): bool *) // (* ****** ****** *) implement {a}(*tmp*) channel_insert (chan, x0) = let // val+ CHANNEL{l1,l2,l3} ( deq, cap, mut, CVisnil, CVisful ) = chan // end of [val] // val (pfmut | ()) = mutex_lock(mut) val deq = $UN.castvwtp0{deqarray(a)}((pfmut | deq)) val ((*void*)) = channel_insert_buf(chan, deq, x0) // prval pfmut = $UN.castview0{locked_v(l1)}(deq) val ((*void*)) = mutex_unlock (pfmut | mut) // in // nothing end // end of [channel_insert] (* ****** ****** *) implement {a}(*tmp*) channel_insert_buf (chan, deq, x0) = let // val+ CHANNEL{l1,l2,l3} ( ptr, cap , mut, CVisnil, CVisful ) = chan // end of [val] // val isnot = deqarray_isnot_full(deq) prval ((*void*)) = lemma_deqarray_param(deq) // in // if (isnot) then let val isnil = deqarray_is_nil(deq) val ((*void*)) = deqarray_insert_atend(deq, x0) val ((*void*)) = if isnil then condvar_broadcast(CVisnil) // end of [val] in // nothing end // end of [then] else let prval (pfmut, fpf) = __assert((*void*)) where { extern praxi __assert ( // argless ) : vtakeout0(locked_v(l1)) } val ((*void*)) = condvar_wait(pfmut | CVisful, mut) prval ((*returned*)) = fpf (pfmut) in channel_insert_buf(chan, deq, x0) end // end of [else] // end // end of [channel_insert_buf] (* ****** ****** *) implement {a}(*tmp*) channel_takeout (chan) = x0 where { // val+ CHANNEL{l1,l2,l3} ( deq, cap, mut, CVisnil, CVisful ) = chan // end of [val] // val (pfmut | ()) = mutex_lock(mut) val deq = $UN.castvwtp0{deqarray(a)}((pfmut | deq)) val x0 = channel_takeout_buf(chan, deq) prval pfmut = $UN.castview0{locked_v(l1)}(deq) val ((*void*)) = mutex_unlock (pfmut | mut) // } // end of [channel_takeout] (* ****** ****** *) implement {a}(*tmp*) channel_takeout_buf (chan, deq) = let // val+ CHANNEL{l1,l2,l3} ( ptr, cap , mut, CVisnil, CVisful ) = chan // end of [val] // val isnot = deqarray_isnot_nil(deq) prval ((*void*)) = lemma_deqarray_param(deq) // in // if (isnot) then x0_out where { val isful = deqarray_is_full(deq) val x0_out = deqarray_takeout_atbeg(deq) val ((*void*)) = if isful then condvar_broadcast(CVisful) // end of [val] } (* end of [then] *) else let prval (pfmut, fpf) = __assert((*void*)) where { extern praxi __assert ( // argless ) : vtakeout0(locked_v(l1)) } val ((*void*)) = condvar_wait(pfmut | CVisnil, mut) prval ((*returned*)) = fpf (pfmut) in channel_takeout_buf(chan, deq) end // end of [else] // end // end of [channel_takeout_buf] (* ****** ****** *) (* implement {a}(*tmp*) channel_takeout (chan) = let // var x0: a? val p0 = addr@(x0) // local implement channel_process$fwork (x0) = false where { // val () = $UN.ptr0_set(p0, x0) // prval () = opt_none{a}(x0) // } (* channel_process$fwork *) // in // val _(*false*) = channel_process(chan) // end // end of [local] // in $UN.ptr0_get(p0) end (* end of [channel_takeout] *) *) (* ****** ****** *) (* implement {a}(*tmp*) channel_process (chan) = ans where { // val+ CHANNEL{l1,l2,l3} ( deq, cap, mut, CVisnil, CVisful ) = chan // end of [val] // val (pfmut | ()) = mutex_lock(mut) val deq = $UN.castvwtp0{deqarray(a)}((pfmut | deq)) val ans = channel_process_buf(chan, deq) prval pfmut = $UN.castview0{locked_v(l1)}(deq) val ((*void*)) = mutex_unlock (pfmut | mut) // } // end of [channel_process] *) (* ****** ****** *) (* implement {a}(*tmp*) channel_process_buf (chan, deq) = let // val+ CHANNEL{l1,l2,l3} ( ptr, cap , mut, CVisnil, CVisful ) = chan // end of [val] // val isnot = deqarray_isnot_nil(deq) prval ((*void*)) = lemma_deqarray_param(deq) // in // if (isnot) then ans where { val cp = deqarray_getref_at(deq, i2sz(0)) // end of [val] val (pf, fpf | p0) = $UN.cptr_vtake(cp) val ans = channel_process$fwork(!p0) prval ((*void*)) = $UN.castview0((fpf, pf)) val () = if (ans) then ((*kept*)) else ((*taken*)) where { val isful = deqarray_is_full(deq) val x0_out = deqarray_takeout_atbeg(deq) val ((*void*)) = if isful then condvar_broadcast(CVisful) // end of [val] prval ((*void*)) = $UN.cast2void(x0_out) } (* end of [else] *) // end of [val] } (* end of [then] *) else let prval (pfmut, fpf) = __assert((*void*)) where { extern praxi __assert ( // argless ) : vtakeout0(locked_v(l1)) } val ((*void*)) = condvar_wait(pfmut | CVisnil, mut) prval ((*returned*)) = fpf (pfmut) in channel_process_buf(chan, deq) end // end of [else] // end // end of [channel_process_buf] *) (* ****** ****** *) (* end of [channel.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/mylibies.hats0000644000175000017500000000146113431250607030663 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-02-01: // // Generic Divide-Conquer // (* ****** ****** *) // #staload SPINVAR = "./SATS/spinvar.sats" #staload _(*SPINVAR*) = "./DATS/spinvar.dats" // (* ****** ****** *) // #staload SPINREF = "./SATS/spinref.sats" #staload _(*SPINREF*) = "./DATS/spinref.dats" // (* ****** ****** *) // #staload NWAITER = "./SATS/nwaiter.sats" #staload _(*NWAITER*) = "./DATS/nwaiter.dats" // (* ****** ****** *) // #staload CHANNEL = "./SATS/channel.sats" #staload _(*CHANNEL*) = "./DATS/channel.dats" // (* ****** ****** *) // #staload CHANNEL_vt = "./SATS/channel_vt.sats" #staload _(*CHANNEL_vt*) = "./DATS/channel_vt.dats" // (* ****** ****** *) // #staload WORKSHOP = "./SATS/workshop.sats" #staload _(*WORKSHOP*) = "./DATS/workshop.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/Makefile_test0000644000175000017500000000044513431250607030665 0ustar brandonbrandon# # For testing # ###### NPM=npm RMRF=rm -rf ###### all:: ###### SUBDIRS := SUBDIRS += TEST ###### all:: ; $(NPM) install ###### all:: ; \ for i in $(SUBDIRS); do $(MAKE) -C $$i testall; done ###### cleanall:: ; $(RMRF) ./node_modules ###### ###### end of [Makefile_test] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/TEST/0000755000175000017500000000000013431250607026742 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/TEST/test_workshop.dats0000644000175000017500000000402513431250607032533 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) %{^ #include %} // end of [%{^] (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) // staload "libats/libc/SATS/unistd.sats" // (* ****** ****** *) // staload "libats/SATS/athread.sats" // staload _ = "libats/DATS/athread.dats" staload _ = "libats/DATS/athread_posix.dats" // (* ****** ****** *) staload "./../SATS/nwaiter.sats" staload "./../SATS/workshop.sats" (* ****** ****** *) staload _ = "libats/DATS/deqarray.dats" (* ****** ****** *) staload _ = "./../DATS/nwaiter.dats" staload _ = "./../DATS/channel.dats" staload _ = "./../DATS/workshop.dats" (* ****** ****** *) // fun do_work ( NWT: nwaiter_ticket ) : void = let // val _ = sleep(1u) in nwaiter_ticket_put(NWT) // end (* end of [do_work] *) // (* ****** ****** *) implement main0 () = { // val ws0 = workshop_create_cap (i2sz(2)) // val err = workshop_add_worker(ws0) val err = workshop_add_worker(ws0) val err = workshop_add_worker(ws0) val err = workshop_add_worker(ws0) // val nworker = workshop_get_nworker(ws0) val ((*void*)) = println! ("nworker(bef) = ", nworker) // val NW = nwaiter_create_exn() val NWT1 = nwaiter_initiate(NW) val NWT2 = nwaiter_ticket_split(NWT1) val NWT3 = nwaiter_ticket_split(NWT1) val NWT4 = nwaiter_ticket_split(NWT1) // val () = workshop_insert_job_lincloptr (ws0, llam() => $effmask_all(do_work(NWT1))) val () = workshop_insert_job_lincloptr (ws0, llam() => $effmask_all(do_work(NWT2))) val () = workshop_insert_job_lincloptr (ws0, llam() => $effmask_all(do_work(NWT3))) val () = workshop_insert_job_lincloptr (ws0, llam() => $effmask_all(do_work(NWT4))) // val ((*void*)) = nwaiter_waitfor(NW) val ((*void*)) = nwaiter_destroy(NW) // val nworker = workshop_get_nworker(ws0) val ((*void*)) = println! ("nworker(aft) = ", nworker) // val ((*void*)) = println! ("[test_workshop] is finished.") // } (* end of [main0] *) (* ****** ****** *) (* end of [test_workshop.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/TEST/Makefile0000644000175000017500000000171613431250607030407 0ustar brandonbrandon# # A simple Makefile # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSLIB=$(PATSHOMEQ)/ccomp/atslib/lib ###### all:: regress:: cleanall:: ###### all:: \ test_spinref test_spinref: \ test_spinref.dats ; \ $(PATSCC) -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -o $@ $< -lpthread regress:: test_spinref; ./$< cleanall:: ; $(RMF) test_spinref ###### all:: \ test_nwaiter test_nwaiter: \ test_nwaiter.dats ; \ $(PATSCC) -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -o $@ $< -lpthread regress:: test_nwaiter; ./$< cleanall:: ; $(RMF) test_nwaiter ###### all:: \ test_workshop test_workshop: \ test_workshop.dats ; \ $(PATSCC) -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -o $@ $< -lpthread regress:: test_workshop; ./$< cleanall:: ; $(RMF) test_workshop ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/TEST/test_nwaiter.dats0000644000175000017500000000164213431250607032332 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) %{^ #include %} // end of [%{^] (* ****** ****** *) // staload "libats/SATS/athread.sats" // staload _ = "libats/DATS/athread.dats" staload _ = "libats/DATS/athread_posix.dats" // (* ****** ****** *) staload "./../SATS/nwaiter.sats" staload _ = "./../DATS/nwaiter.dats" (* ****** ****** *) implement main0 () = { // val () = println! ( "test_nwaiter: enter" ) (* println! *) // val NW = nwaiter_create_exn() val NWT1 = nwaiter_initiate(NW) val NWT2 = nwaiter_ticket_split(NWT1) // val tid1 = athread_create_cloptr_exn (llam() => nwaiter_ticket_put(NWT1)) val tid2 = athread_create_cloptr_exn (llam() => nwaiter_ticket_put(NWT2)) // val () = nwaiter_waitfor(NW) // val () = nwaiter_destroy(NW) // val () = println! ("test_nwaiter: leave") // } (* end of [main0] *) (* ****** ****** *) (* end of [test_nwaiter.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/TEST/test_spinref.dats0000644000175000017500000000301213431250607032320 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) %{^ #include %} // end of [%{^] (* ****** ****** *) // staload "libats/libc/SATS/unistd.sats" // (* ****** ****** *) // staload "libats/SATS/athread.sats" // staload _ = "libats/DATS/athread.dats" staload _ = "libats/DATS/athread_posix.dats" // (* ****** ****** *) // staload "./../SATS/spinref.sats" // staload _ = "./../DATS/spinvar.dats" staload _ = "./../DATS/spinref.dats" // (* ****** ****** *) fun spinref_incby (spnr: spinref(int)): void = let // implement(env) spinref_process$fwork (x, env) = x := x + 1 // in spinref_process (spnr) end // end of [spinref_incby] (* ****** ****** *) implement main0 () = { // val () = println! ("test_spinref: enter") // val SPNR = spinref_create_exn (0) // val tid1 = athread_create_cloptr_exn ( llam () => (fix loop(x: spinref(int)): void => (ignoret(sleep(1u)); spinref_incby(x); loop(x)))(SPNR) ) val () = println! ("The first thread has been created.") // val tid2 = athread_create_cloptr_exn ( llam () => (fix loop(x: spinref(int)): void => (ignoret(sleep(1u)); spinref_incby(x); loop(x)))(SPNR) ) val () = println! ("The second thread has been created.") // val () = ( fix loop ( spnr: spinref(int) ) : void => { val n = spinref_get (spnr) val () = if n < 2 then (ignoret(sleep(1u)); loop (spnr)) } ) (SPNR) // end of [val] // val () = println! ("test_spinref: leave") // } (* end of [main0] *) (* ****** ****** *) (* end of [test_spinref.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/SATS/0000755000175000017500000000000013431250607026735 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/SATS/channel_vt.sats0000644000175000017500000000447613431250607031765 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2015-01: // An array-based linear channel for ATS // (* ****** ****** *) absvtype channel_vtype(a:vt@ype+) = ptr vtypedef channel(a:vt0p) = channel_vtype(a) (* ****** ****** *) absvtype queueopt_vtype(a:vt@ype+) = ptr absvtype queueopt(a:vt0p) = queueopt_vtype(a) (* ****** ****** *) fun{a:vt0p} channel_create_exn(cap: sizeGte(1)): channel(a) (* ****** ****** *) // fun{} channel_get_capacity{a:vt0p}(!channel(a)): Size_t // (* ****** ****** *) // fun{} channel_get_refcount{a:vt0p}(!channel(a)): intGt(0) // (* ****** ****** *) fun{a:vt0p} channel_ref(!channel(a)): channel(a) fun{a:vt0p} channel_unref(channel(a)): queueopt(a) (* ****** ****** *) fun{a:vt0p} channel_insert(!channel(a), a): void fun{a:vt0p} channel_takeout(chan: !channel(a)): (a) (* ****** ****** *) (* end of [channel_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/SATS/spinref.sats0000644000175000017500000000415113431250607031300 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2014-05: // This is based on spinlock // (* ****** ****** *) // abstype spinref_type(a:vt@ype) = ptr // typedef spinref(a:vt0p) = spinref_type(a) // (* ****** ****** *) // fun {a:vt0p} spinref_create_exn(x0: a): spinref(a) // (* ****** ****** *) // fun{a:t0p} spinref_get(spnr: spinref(a)): (a) // (* ****** ****** *) // fun{ a:vt0p } spinref_process(spnr: spinref(a)): void fun{ a:vt0p}{env:vt0p } spinref_process_env (spnr: spinref(a), env: &(env) >> _): void // fun{ a:vt0p}{env:vt0p } spinref_process$fwork(x: &a >> _, env: &(env) >> _): void // (* ****** ****** *) (* end of [spinref.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/SATS/parallelize.sats0000644000175000017500000000365413431250607032145 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** HX-2014-06-02: Start it now! *) (* ****** ****** *) staload "./nwaiter.sats" (* ****** ****** *) // fun{} intrange_parallelize$loop (m: int, n: int): void fun{} intrange_parallelize$submit (() - void): void // fun{} intrange_parallelize ( start: int, finish: int, cutoff: intGte(1), nw: !nwaiter(0) ) : void // end of [intrange_parallelize] // (* ****** ****** *) (* end of [parallelize.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/SATS/nwaiter.sats0000644000175000017500000000473013431250607031306 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2014-05: // For waiting until the proofs for // a predeterminted view are all uploaded // in a piecewise manner. // Note that this version does not use types // to ensure a correct match between the uploaded // proofs and the downloaded proof. // (* ****** ****** *) // absvtype nwaiter_vtype (i:int) = ptr vtypedef nwaiter(i:int) = nwaiter_vtype(i) absvtype nwaiter_ticket_vtype = ptr vtypedef nwaiter_ticket = nwaiter_ticket_vtype // (* ****** ****** *) // fun{} nwaiter_create_exn (): nwaiter(0) // (* ****** ****** *) fun{} nwaiter_destroy (nw: nwaiter(0)): void (* ****** ****** *) // fun{} nwaiter_initiate (nw: !nwaiter(0) >> nwaiter(1)): nwaiter_ticket // (* ****** ****** *) // fun{} nwaiter_waitfor (nw: !nwaiter(1) >> nwaiter(0)): void // (* ****** ****** *) // fun{} nwaiter_ticket_put (nwt: nwaiter_ticket): void fun{} nwaiter_ticket_split (nwt: !nwaiter_ticket >> nwaiter_ticket): nwaiter_ticket // (* ****** ****** *) (* end of [nwaiter.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/SATS/channel.sats0000644000175000017500000000424213431250607031243 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2013-11: // An array-based channel for ATS // (* ****** ****** *) // abstype channel_type(a:vt@ype) = ptr typedef channel(a:vt0p) = channel_type(a) // (* ****** ****** *) fun {a:vt0p} channel_create_exn (cap: sizeGte(1)): channel(a) (* ****** ****** *) // fun{} channel_get_capacity {a:vt0p}(channel(a)):<> Size_t // (* ****** ****** *) fun {a:vt0p} channel_insert(channel(a), a): void fun {a:vt0p} channel_takeout(chan: channel(a)): (a) (* ****** ****** *) // (* fun {a:vt0p} channel_process(chan: channel(a)): bool fun {a:vt0p} channel_process$fwork(x0: &(a) >> opt(a, b)): #[b:bool] bool(b) *) // (* ****** ****** *) (* end of [channel.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/SATS/spinvar.sats0000644000175000017500000000434713431250607031323 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2014-05: // This is based on spinlock // (* ****** ****** *) // absvtype spinvar_vtype(a:vt@ype) = ptr // vtypedef spinvar(a:vt0p) = spinvar_vtype(a) // (* ****** ****** *) fun{ a:vt0p } spinvar_create_exn(x: a): spinvar(a) (* ****** ****** *) // fun{} spinvar_destroy{a:t0p}(spinvar(a)): void // (* ****** ****** *) fun{a:t0p} spinvar_get(spnv: !spinvar(a)): (a) fun{a:vt0p} spinvar_getfree(spnv: spinvar(a)): (a) (* ****** ****** *) // fun{ a:vt0p } spinvar_process (spnv: !spinvar(a)): void fun{ a:vt0p}{env:vt0p } spinvar_process_env (spnv: !spinvar(a), env: &(env) >> _): void // fun{ a:vt0p}{env:vt0p } spinvar_process$fwork(x: &a >> _, env: &(env) >> _): void // (* ****** ****** *) (* end of [spinvar.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/SATS/workshop.sats0000644000175000017500000000531213431250607031506 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** HX-2014-05-22: Start it now! *) (* ****** ****** *) abstype workshop_type(a:vt@ype) = ptr typedef workshop(a:vt0p) = workshop_type(a) (* ****** ****** *) fun{ a:vt0p } workshop_create_cap(cap: sizeGte(1)): workshop(a) (* ****** ****** *) fun{} workshop_get_capacity{a:vt0p}(workshop(a)): size_t (* ****** ****** *) fun{} workshop_get_nworker{a:vt0p}(ws: workshop(a)): intGte(0) (* ****** ****** *) fun{ a:vt0p } workshop_handle_job(ws: workshop(a), x: a): int (* ****** ****** *) fun{ a:vt0p } workshop_insert_job(workshop(a), a): void // block? (* ****** ****** *) fun{ a:vt0p } workshop_takeout_job(ws: workshop(a)): (a) // block? (* ****** ****** *) // fun{a:vt0p} workshop_add_worker(ws: workshop(a)): int(*err*) // fun{a:vt0p} workshop_add_nworker{n:nat}(workshop(a), int(n)): natLte(n) // (* ****** ****** *) // absvtype lincloptr = ptr // // lincloptr = ((*void*)) - void // (* ****** ****** *) // fun{} workshop_handle_job_lincloptr (ws: workshop(lincloptr), job: lincloptr): int // block? // (* ****** ****** *) // fun{} workshop_insert_job_lincloptr (ws: workshop(lincloptr), job: () - void): void // block? // (* ****** ****** *) (* end of [workshop.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mythread/package.json0000644000175000017500000000106313431250607030451 0ustar brandonbrandon{ "name": "atscntrb-hx-teaching-mythread" , "version": "1.0.4" , "description": "This package contains library code for teaching some basic thread concepts." , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/npm-utils/contrib/libats-/hwxi/teaching/mythread" } , "keywords": [ "ATS", "thread", "pthread" ] , "dependencies": {} , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "The package is stored at ${PATSHOME}/npm-utils/contrib/libats-hwxi/teaching/mythread/." } ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/myintinf/0000755000175000017500000000000013431250607026203 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/myintinf/DATS/0000755000175000017500000000000013431250607026736 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/myintinf/DATS/myintinf_t.dats0000644000175000017500000001626513431250607032005 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2018-01-10: ** A simple-minded funcitonal ** implementation of MP arithmetic ** What I have in mind is to handle ** something as large as 2^1000000 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // (* ****** ****** *) // abstype uintinf_type(i:int) = ptr typedef uintinf(i:int) = uintinf_type(i) typedef uintinf(*void*) = [i:int] uintinf(i) // (* ****** ****** *) // extern praxi lemma_uintinf_param {i:int} (x: uintinf(i)): [i>=0] void // (* ****** ****** *) // extern fun int2uintinf {i:nat} (x: int(i)): uintinf(i) // extern fun uint2uintinf_0 {i:int} (x: uint): uintinf extern fun uint2uintinf_1 {i:int} (x: uint(i)): uintinf(i) // overload uint2uintinf with uint2uintinf_0 overload uint2uintinf with uint2uintinf_1 // (* ****** ****** *) extern fun succ_uintinf {i:int} (x: uintinf(i)): uintinf(i+1) extern fun pred_uintinf {i:pos} (x: uintinf(i)): uintinf(i-1) overload succ with succ_uintinf overload pred with pred_uintinf (* ****** ****** *) // extern fun add_uint_uintinf {i,j:int} (x: uint(i), y: uintinf(j)): uintinf(i+j) extern fun add_uintinf_uint {i,j:int} (x: uintinf(i), y: uint(j)): uintinf(i+j) extern fun add_uintinf_uintinf {i,j:int} (x: uintinf(i), y: uintinf(j)): uintinf(i+j) // (* ****** ****** *) // extern fun sub_uintinf_uint {i,j:int | i >= j} (x: uintinf(i), y: uint(j)): uintinf(i-j) extern fun sub_uintinf_uintinf {i,j:int | i >= j} (x: uintinf(i), y: uintinf(j)): uintinf(i-j) // (* ****** ****** *) // extern fun mul_uintinf_uint {i,j:int} (x: uintinf(i), y: uint(j)): uintinf(i*j) extern fun mul_uintinf_uintinf {i,j:int} (x: uintinf(i), y: uintinf(j)): uintinf(i*j) // extern fun muladd_uintinf_uint_uint {i,j,k:int | j > 0} (x: uintinf(i), y: uint(j), z: uint(k)): uintinf(i*j+k) // (* ****** ****** *) // overload + with add_uintinf_uint overload + with add_uint_uintinf overload + with add_uintinf_uintinf // overload * with mul_uintinf_uint overload * with mul_uintinf_uintinf // (* ****** ****** *) extern fun lt_uint_uintinf {i,j:int} (x: uint(i), y: uintinf(j)): bool(i <= j) extern fun lte_uint_uintinf {i,j:int} (x: uint(i), y: uintinf(j)): bool(i <= j) overload < with lt_uint_uintinf overload <= with lte_uint_uintinf (* ****** ****** *) // extern fun fprint_uintinf: fprint_type(uintinf) extern fun fprint_uintinf_raw: fprint_type(uintinf) // (* ****** ****** *) // #staload UN = $UNSAFE // (* ****** ****** *) // macdef DIGITMAX = $UN.cast2uint(~1) // (* ****** ****** *) // local assume uintinf_type(i) = list0(uint) in (*nil*) end // (* ****** ****** *) implement fprint_uintinf_raw (out, us) = let // val sep = "|" // fun auxlst ( us: list0(uint) ) : int = ( case+ us of | list0_nil () => (0) | list0_cons (u0, us) => n0+1 where { val n0 = auxlst(us) val () = if n0 > 0 then fprint(out, sep) // end of [if] val () = fprint(out, u0) } (* end of [list0_cons] *) ) // reassume uintinf_type // in fprint(out, "U("); ignoret(auxlst(us));fprint(out, ")") end // end of [fprint_uintinf_raw] (* ****** ****** *) local reassume uintinf_type in (* in-of-local *) implement int2uintinf(x) = ( if (x > 0) then list0_sing(g1int2uint(x)) else list0_nil() ) implement uint2uintinf_0(x) = ( if (x > 0u) then list0_sing(x) else list0_nil() ) implement uint2uintinf_1(x) = ( if (x > 0u) then list0_sing(x) else list0_nil() ) implement succ_uintinf {i}(us) = ( case+ us of | list0_nil() => list0_sing(1u) | list0_cons(u0, us) => let val v0 = succ(u0) in if v0 > 0 then list0_cons(v0, us) else list0_cons(v0, succ_uintinf(us)) // end of [if] end // end of [list0_cons] ) implement pred_uintinf {i}(us) = ( case- us of (* | list0_nil() => ... *) | list0_cons(u0, us) => ( if u0 > 0 then let val u0 = pred(u0) in case+ us of | list0_nil _ => if u0 = 0u then list0_nil() else list0_sing(u0) | list0_cons(_, _) => list0_cons(u0, us) end // end of [then] else let val us = pred_uintinf{i}(us) in list0_cons(DIGITMAX, us) end // end of [else] // end of [if] ) (* end of [list0_cons] *) ) end // end of [local] (* ****** ****** *) local reassume uintinf_type in (* in-of-local *) implement lt_uint_uintinf (x, y) = ( // case+ y of | list0_nil() => $UN.cast(false) | list0_cons(u, us) => ( case+ us of | list0_nil() => $UN.cast(x < u) | list0_cons _ => $UN.cast(true) ) // ) // end of [lt_uint_uintinf] implement lte_uint_uintinf (x, y) = ( // case+ y of | list0_nil() => $UN.cast (if x > 0u then false else true ) | list0_cons(u, us) => ( case+ us of | list0_nil() => $UN.cast(x <= u) | list0_cons _ => $UN.cast(true) ) // ) // end of [lte_uint_uintinf] end // end of [local] (* ****** ****** *) // extern fun uint64_lower(uint64): uint and uint64_upper(uint64): uint // implement uint64_lower(x) = $UN.cast{uint}(x) implement uint64_upper(x) = $UN.cast{uint}(x >> 32) // overload .lower with uint64_lower overload .upper with uint64_upper // (* ****** ****** *) // extern fun add64_uint_uint (x: uint, y: uint): uint64 // extern fun mul64_uint_uint (x: uint, y: uint): uint64 extern fun muladd64_uint_uint_uint ( x: uint , y: uint, z: uint): uint64 // local // macdef uint64(i) = $UN.cast{uint64}(,(i)) // in implement add64_uint_uint (x, y) = ( uint64(x) + uint64(y) ) implement mul64_uint_uint (x, y) = ( uint64(x) * uint64(y) ) implement muladd64_uint_uint_uint (x, y, z) = ( uint64(x) * uint64(y) + uint64(z) ) end // end of [local] // (* ****** ****** *) // implement add_uintinf_uint (x, y) = let // reassume uintinf_type // in // case+ x of | list0_nil() => (if y > 0u then list0_sing(y) else list0_nil()) | list0_cons(u0, us) => let val vv = add64_uint_uint(u0, y) // end of [val] val v0 = uint64_lower(vv) val v1 = uint64_lower(vv) in if v1 = 0u then list0_cons(v0, us) else list0_cons(v0, succ_uintinf(us)) end // end of [list0_cons] // end // end of [add_uintinf_uint] // implement add_uint_uintinf (x, y) = add_uintinf_uint(y, x) // (* ****** ****** *) implement mul_uintinf_uint (x, y) = let // reassume uintinf_type // fun auxlst {i,j:int | j > 0} (us: uintinf(i), y: uint(j)): uintinf(i*j) = ( case+ us of | list0_nil() => list0_nil() | list0_cons(u0, us) => let val vv = mul64_uint_uint(u0, y) val v0 = vv.lower() val v1 = g1ofg0(vv.upper()) in list0_cons (v0, muladd_uintinf_uint_uint(us, y, v1)) end // end of [list0_cons] ) // in if y > 0u then auxlst(x, y) else list0_nil() end (* end of [mul_uintinf_uint] *) (* ****** ****** *) // // HX: [y] is positive! // implement muladd_uintinf_uint_uint (x, y, z) = auxlst(x, y, z) where { // reassume uintinf_type // fun auxlst {i,j,k:int|j > 0} ( us: uintinf(i), y: uint(j), z: uint(k) ) : uintinf(i*j+k) = ( case+ us of // | list0_nil() => if z > 0u then list0_sing(z) else list0_nil(*void*) // | list0_cons(u0, us) => let val vv = mul64_uint_uint(u0, y) in list0_cons (vv.lower(), auxlst(us, y, g1ofg0(vv.upper()))) end // end of [list0_cons] // ) // } (* end of [muladd_uintinf_uint_uint] *) (* ****** ****** *) (* end of [myintinf_t.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/myintinf/TEST/0000755000175000017500000000000013431250607026762 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/myintinf/TEST/test01.dats0000644000175000017500000000134713431250607030764 0ustar brandonbrandon(* ****** ****** *) (* // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // *) (* ****** ****** *) #include "./../DATS/myintinf_t.dats" (* ****** ****** *) implement main0() = () where { // (* val () = println!("DIGITMAX = ", DIGITMAX) val () = println!("DIGITMAX+1 = ", DIGITMAX+1u) *) // val u1 = uint2uintinf(DIGITMAX) prval () = lemma_uintinf_param(u1) // val () = ( print("u1 = "); fprint_uintinf_raw(stdout_ref, u1); println!() ) val u2 = succ(u1) val u3 = pred(u2) // val () = ( print("u2 = "); fprint_uintinf_raw(stdout_ref, u2); println!() ) val () = ( print("u3 = "); fprint_uintinf_raw(stdout_ref, u3); println!() ) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/myintinf/TEST/Makefile0000644000175000017500000000144113431250607030422 0ustar brandonbrandon###### # # A simple Makefile # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt PATSLIB=$(PATSHOMEQ)/ccomp/atslib/lib ###### all:: ###### # all:: \ test01_dats test01_dats: \ test01.dats ; \ $(PATSCC) -O2 \ -I$(PATSHOME)/contrib -DATS_MEMALLOC_LIBC -o $@ $< # ###### # all:: \ test02_dats test02_dats: \ test02.dats ; \ $(PATSCC) -O2 \ -I$(PATSHOME)/contrib -DATS_MEMALLOC_GCBDW -o $@ $< -lgc # ###### regress:: test01_dats; ./$< regress:: test02_dats; ./$< ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### cleanall:: clean cleanall:: ; $(RMF) test01_dats cleanall:: ; $(RMF) test02_dats ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/myintinf/TEST/test02.dats0000644000175000017500000000212613431250607030761 0ustar brandonbrandon(* ****** ****** *) (* // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // *) (* ****** ****** *) #staload "./../../BUCS/DATS/BUCS320.dats" (* ****** ****** *) #include "./../DATS/myintinf_t.dats" (* ****** ****** *) // extern fun myfact{n:nat}(n: int(n)): uintinf // implement myfact(n) = loop(0, int2uintinf(1)) where { // fun loop{i:nat} (i: int(i), res: uintinf): uintinf = if i < n then loop(i+1, res*i2u(i+1)) else res // } (* end of [myfact] *) // (* ****** ****** *) implement main0() = () where { // val u1 = int2uintinf(1024) val u2 = ((u1 * 1024u) * 1024u) * 1024u // val () = ( print("u1 = "); fprint_uintinf_raw(stdout_ref, u1); println!() ) val () = ( print("u2 = "); fprint_uintinf_raw(stdout_ref, u2); println!() ) // val () = ( print("myfact(100) = "); fprint_uintinf_raw(stdout_ref, myfact(100)); println!() ) // val N = 100 val ntime = 10000 val _ = time_spent_cloref ( lam() => 0 where { val () = (ntime).repeat() (lam()=>ignoret($UN.castvwtp0{ptr}(myfact(N)))) } ) // } (* end of [main0] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw2/0000755000175000017500000000000013431250607025733 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw2/DATS/0000755000175000017500000000000013431250607026466 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw2/DATS/mydraw2_meta.dats0000644000175000017500000000206213431250607031736 0ustar brandonbrandon(* // Author: Hongwei Xi Start time: Summer I, 2017 Authoremai: gmhwxiatgmaildotcom // *) (* ****** ****** *) (* // Mydraw2: Drawing of functional style that is inspired by OpenSCAD // *) (* ****** ****** *) #staload "./mydraw2.dats" (* ****** ****** *) // extern fun drawobj_triangle_point3 ( p1: point , p2: point , p3: point ) : drawobj // implement drawobj_triangle_point3 (p1, p2, p3) = let // val p1 = DRAWARGexp(DRAWEXPpoint(p1)) val p2 = DRAWARGexp(DRAWEXPpoint(p2)) val p3 = DRAWARGexp(DRAWEXPpoint(p3)) // val env = drawenv_nil((*void*)) // in // DRAWOBJfapp ("polygon", env, $list{drawarg}(p1, p2, p3)) // end // end of [drawobj_triangle_point3] // (* ****** ****** *) // extern fun drawobj_rectangle_int2 (W: int, H: int): drawobj // implement drawobj_rectangle_int2 (W, H) = let // val W = DRAWARGexp(DRAWEXPint(W)) val H = DRAWARGexp(DRAWEXPint(H)) // val env = drawenv_nil((*void*)) // in DRAWOBJfapp("rectangle", env, $list{drawarg}(W, H)) end // end of [drawobj_rectangle_int2] // (* ****** ****** *) (* end of [mydraw2_meta.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw2/DATS/mydraw2.dats0000644000175000017500000000332313431250607030731 0ustar brandonbrandon(* // Author: Hongwei Xi Start time: Summer I, 2017 Authoremai: gmhwxiatgmaildotcom // *) (* ****** ****** *) (* // Mydraw2: Drawing of functional style that is inspired by OpenSCAD // *) (* ****** ****** *) // datatype point = POINT of (double, double) // extern fun point_make_int2 (x: int, y: int): point and point_make_float2 (x: double, y: double): point // overload point with point_make_int2 overload point with point_make_float2 // (* ****** ****** *) // abstype label_type typedef label = label_type // (* ****** ****** *) // extern fun label_make(x: string): label // symintr label overload label with label_make // (* ****** ****** *) datatype drawarg = | DRAWARGexp of drawexp and drawexp = // | DRAWEXPnil of () // | DRAWEXPint of (int) // | DRAWEXPbool of bool // | DRAWEXPpoint of point // | DRAWEXPlist of drawexplst where drawexplst = List0(drawexp) and drawarglst = List0(drawarg) (* ****** ****** *) abstype drawenv_type typedef drawenv = drawenv_type (* ****** ****** *) datatype drawobj = // | DRAWOBJfapp of ( string(*fopr*) , drawenv, drawarglst ) (* DRAWOBJfopr *) // | DRAWOBJlist of drawobjlst // | DRAWOBJtfmapp of (drawtfm(*mtfm*), drawobj) // | DRAWOBJextcode of (string(*code*)) // HX: external one-liners and drawtfm = // | DRAWTFMident of () // | DRAWTFMcompose of (drawtfm, drawtfm) // | DRAWTFMextmcall of ( string(*fmod*), drawenv(*env*), drawarglst(*args*) ) (* DRAWTFMextmcall *) // where drawobjlst = List0(drawobj) (* ****** ****** *) // extern fun drawenv_nil(): drawenv and drawenv_sing (l: label, x: drawexp): drawenv // (* ****** ****** *) // extern fun drawenv_is_nil(drawenv): bool and drawenv_is_cons(drawenv): bool // (* ****** ****** *) (* end of [mydraw2.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw2/mylibies.hats0000644000175000017500000000042313431250607030430 0ustar brandonbrandon(* ****** ****** *) (* ** For drawing of ** functional style *) (* ****** ****** *) // // HX-2017-06-01 // (* ****** ****** *) // #staload MYDRAW2 = "./DATS/mydraw2.dats" #staload MYDRAW2_meta = "./DATS/mydraw2_meta.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw2/TEST/0000755000175000017500000000000013431250607026512 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw2/TEST/test00.dats0000644000175000017500000000043013431250607030503 0ustar brandonbrandon(* ****** ****** *) (* ** For testing mydraw2 *) (* ****** ****** *) // #include "./../mylibies.hats" // (* ****** ****** *) implement main0() = () where { // val () = println! ("Hello from [test00]!") // } (* end of [main0] *) (* ****** ****** *) (* end of [test00.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw2/TEST/Makefile0000644000175000017500000000130413431250607030150 0ustar brandonbrandon# # A simple Makefile # ###### EMCC=emcc ###### PATSHOMEQ="$(PATSHOME)" PATSCONTRIBQ="$(PATSHOME)/npm-utils/contrib" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### XRLIBS=`pkg-config cairo --libs` XRCFLAGS=`pkg-config cairo --cflags` ###### .PHONY: all ###### all:: regress:: cleanall:: ###### # all:: \ test00 test00: \ test00.dats ; \ $(PATSCC) -I$(PATSCONTRIBQ) $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm regress:: test00; ./$< cleanall:: ; $(RMF) test00 # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean ###### end of [Makefile] ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw2/README.md0000644000175000017500000000021513431250607027210 0ustar brandonbrandon# MyDraw2: Drawing of functional style # ## Author: Hongwei Xi ## ## Authoremail: gmhwxiatgmaildotcom ## ## Start time: Summer I, 2017 ## ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/0000755000175000017500000000000013431250607025651 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/CATS_JS/0000755000175000017500000000000013431250607026777 5ustar brandonbrandon././@LongLink0000644000000000000000000000015300000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/CATS_JS/mydraw_HTML5_canvas2d.jsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/CATS_JS/mydraw_HTML5_canva0000644000175000017500000000630013431250607032305 0ustar brandonbrandon/* HTML5 Canvas functions for ATS2 */ /* ****** ****** */ /** Author: Will Blair Start Time: September 2013 Authoremail: wdblairATcsDOTbuDOTedu */ /** Author: Hongwei Xi Start Time: October 2013 Authoremail: hwxi AT cs DOT bu DOT edu */ /* ****** ****** */ var mydraw_html5_canvas2d = { $MyCanvas: { PI: Math.PI, /* The C string pointers identify contexts. */ contexts: {} }, atscntrb_libatshwxi_canvas2d_make: function (ptr) { var id = Pointer_stringify(ptr); var canvas = document.getElementById(id); if (canvas.getContext) { MyCanvas.contexts[ptr] = canvas.getContext("2d"); } else { throw "mydraw_html5_canvas2d: 2D-canvas is not supported"; } return ptr; }, atscntrb_libatshwxi_canvas2d_free: function (ptr) { MyCanvas.contexts[ptr] = null; }, atscntrb_libatshwxi_canvas2d_beginPath: function (ptr) { MyCanvas.contexts[ptr].beginPath(); }, atscntrb_libatshwxi_canvas2d_closePath: function (ptr) { MyCanvas.contexts[ptr].closePath(); }, atscntrb_libatshwxi_canvas2d_moveTo: function (ptr, x, y) { MyCanvas.contexts[ptr].moveTo(x, y); }, atscntrb_libatshwxi_canvas2d_lineTo: function (ptr, x, y) { MyCanvas.contexts[ptr].lineTo(x, y); }, atscntrb_libatshwxi_canvas2d_translate: function (ptr, x, y) { MyCanvas.contexts[ptr].translate(x, y); }, atscntrb_libatshwxi_canvas2d_scale: function (ptr, sx, sy) { MyCanvas.contexts[ptr].scale(sx, sy); }, atscntrb_libatshwxi_canvas2d_rotate: function (ptr, angle) { MyCanvas.contexts[ptr].rotate(angle); }, atscntrb_libatshwxi_canvas2d_rect: function (ptr, xul, yul, width, height) { MyCanvas.contexts[ptr].rect(xul, yul, width, height); }, atscntrb_libatshwxi_canvas2d_arc: function (ptr, xc, yc, rad, angle_beg, angle_end, CCW) { MyCanvas.contexts[ptr].arc(xc, yc, rad, angle_beg, angle_end, CCW); }, atscntrb_libatshwxi_canvas2d_fill: function (ptr) { MyCanvas.contexts[ptr].fill(); }, atscntrb_libatshwxi_canvas2d_fillStyle_string: function (ptr, string) { var style = Pointer_stringify(string); MyCanvas.contexts[ptr].fillStyle = style; }, atscntrb_libatshwxi_canvas2d_stroke: function (ptr) { MyCanvas.contexts[ptr].stroke(); }, atscntrb_libatshwxi_canvas2d_strokeStyle_string: function (ptr, string) { var style = Pointer_stringify(string); MyCanvas.contexts[ptr].strokeStyle = style; }, atscntrb_libatshwxi_canvas2d_clearRect: function (ptr, xul, yul, width, height) { MyCanvas.contexts[ptr].clearRect(xul, yul, width, height); }, atscntrb_libatshwxi_canvas2d_save: function (ptr) { MyCanvas.contexts[ptr].save(); }, atscntrb_libatshwxi_canvas2d_restore: function (ptr) { MyCanvas.contexts[ptr].restore(); }, } /* ****** ****** */ autoAddDeps(mydraw_html5_canvas2d, '$MyCanvas'); mergeInto(LibraryManager.library, mydraw_html5_canvas2d); /* ****** ****** */ /* end of [mydraw_html5_canvas2d.js] */ ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/DATS/0000755000175000017500000000000013431250607026404 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/DATS/mydraw.dats0000644000175000017500000001142413431250607030566 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2013-02: // a simple drawing package // based on cairo and canvas-2d // (* ****** ****** *) #staload "./../SATS/mydraw.sats" (* ****** ****** *) // #staload M = "libats/libc/SATS/math.sats" #staload _(*M*) = "libats/libc/DATS/math.dats" // (* ****** ****** *) // macdef M_sin = $M.sin macdef M_cos = $M.cos macdef M_sqrt = $M.sqrt // (* ****** ****** *) local assume point_t0ype = real2 in (* in of [local] *) // implement{} point_make (x, y) = @(x, y) // implement{} point_get_x(p) = p.0 implement{} point_get_y(p) = p.1 // end // end of [local] (* ****** ****** *) implement {}(*tmp*) point_hshift (p, x) = point_make(p.x() + x, p.y()) implement {}(*tmp*) point_vshift (p, y) = point_make(p.x(), p.y() + y) (* ****** ****** *) local assume vector_t0ype = real2 in (* in of [local] *) // implement{} vector_make(x, y) = @(x, y) // implement{} vector_get_x (p) = p.0 implement{} vector_get_y (p) = p.1 // end // end of [local] (* ****** ****** *) // implement {}(*tmp*) dotprod(v1, v2) = v1.x() * v2.x() + v1.y() * v2.y() // (* ****** ****** *) implement{} sub_point_point (p1, p2) = vector_make(p1.x() - p2.x(), p1.y() - p2.y()) // end of [sub_point_point] (* ****** ****** *) implement{} add_point_vector (p1, v2) = point_make(p1.x() + v2.x(), p1.y() + v2.y()) // end of [add_point_vector] implement{} sub_point_vector (p1, v2) = point_make(p1.x() - v2.x(), p1.y() - v2.y()) // end of [sub_point_vector] (* ****** ****** *) implement{} add_vector_vector (v1, v2) = vector_make(v1.x() + v2.x(), v1.y() + v2.y()) // end of [add_vector_vector] implement{} sub_vector_vector (v1, v2) = vector_make(v1.x() - v2.x(), v1.y() - v2.y()) // end of [sub_vector_vector] (* ****** ****** *) // implement{} mul_scalar_vector (k, v) = vector_make(k * v.x(), k * v.y()) // implement{} div_vector_scalar (v, k) = let val _1k = 1.0 / k in vector_make(_1k * v.x(), _1k * v.y()) end // end of [div_vector_scalar] // (* ****** ****** *) implement{} vector_length (v) = let val x = v.x() and y = v.y() in M_sqrt (x*x + y*y) end // end of [vector_length] (* ****** ****** *) implement{} vector_rotate (v, delta) = let val dx = v.x() and dy = v.y() val c0 = M_cos (delta) and s0 = M_sin (delta) in vector_make(c0 * dx - s0 * dy, s0 * dx + c0 * dy) end // end of [vector_rotate] (* ****** ****** *) local assume color_t0ype = real3 in (* in of [local] *) // implement {}(*tmp*) color_make(r, g, b) = @(r, g, b) // implement{} color_get_r(clr) = clr.0 implement{} color_get_g(clr) = clr.1 implement{} color_get_b(clr) = clr.2 // end // end of [local] (* ****** ****** *) implement{} color_complement(clr) = color_make(1.0 - clr.r(), 1.0 - clr.g(), 1.0 - clr.b()) // end of [color_complement] (* ****** ****** *) implement {}(*tmp*) mydraw_triangle (p1, p2, p3) = let val () = mydraw_move_to(p1) val () = mydraw_line_to(p2) val () = mydraw_line_to(p3) val () = mydraw_close_path() in // nothing end // end of [mydraw_triangle] (* ****** ****** *) implement {}(*tmp*) mydraw_quadrilateral (p1, p2, p3, p4) = let val () = mydraw_move_to(p1) val () = mydraw_line_to(p2) val () = mydraw_line_to(p3) val () = mydraw_line_to(p4) val () = mydraw_close_path() in // nothing end // end of [mydraw_quadrilateral] (* ****** ****** *) (* end of [mydraw.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/DATS/mydraw_matgraph.dats0000644000175000017500000000356613431250607032461 0ustar brandonbrandon(* ** Displaying bar graphs *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start time: February, 2014 // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/mydraw.sats" (* ****** ****** *) // // HX: // p1,p2,p3,p4 are CCW-positioned // extern fun{ } mydraw_matgraph ( m: intGte(1), n: intGte(1) , p1: point, p2: point, p3: point, p4: point ) : void // end of [mydraw_matgraph] // extern fun{} mydraw_matgraph$color (i: intGte(0), j: intGte(0)): color // extern fun{} mydraw_matgraph$draw_cell ( i: intGte(0), j: intGte(0) , p1: point, p2: point, p3: point, p4: point ) : void // end-of-function // (* ****** ****** *) implement {}(*tmp*) mydraw_matgraph ( m, n, p1, p2, p3, p4 ) = let // val a = 1.0 / m val b = 1.0 / n val v12 = a * (p2 - p1) val v43 = a * (p3 - p4) // fun loop ( i: intGte(0) ) : void = let // val fi = g0i2f(i) val p1 = p1 + fi * v12 val p2 = p1 + v12 val p4 = p4 + fi * v43 val p3 = p4 + v43 val v23 = b * (p3 - p2) val v14 = b * (p4 - p1) // fun loop2 ( j: intGte(0) ) : void = let // val fj = g0i2f(j) val p1 = p1 + fj * v14 val p4 = p1 + v14 val p2 = p2 + fj * v23 val p3 = p2 + v23 val () = mydraw_matgraph$draw_cell (i, j, p1, p2, p3, p4) // in if j + 1 < n then loop2 (j + 1) else () end // end of [loop2] // val () = loop2 (0) // in if succ(i) < m then loop (succ(i)) else () end // end of [loop] // in loop (0) end // end of [mydraw_matgraph] (* ****** ****** *) implement{} mydraw_matgraph$draw_cell (i, j, p1, p2, p3, p4) = () where { val c = mydraw_matgraph$color (i, j) val () = mydraw_quadrilateral (p1, p2, p3, p4) val ((*void*)) = mydraw_fill_set_rgb (c.r(), c.g(), c.b()) val ((*void*)) = mydraw_fill ((*void*)) } (* end of [mydraw_matgraph$draw_cell] *) (* ****** ****** *) (* end of [mydraw_matgraph.dats] *) ././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/DATS/mydraw_HTML5_canvas2d.datsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/DATS/mydraw_HTML5_canvas2d0000644000175000017500000001603213431250607032326 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2013-02: a simple drawing package // (* ****** ****** *) #include "share/atspre_define.hats" (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/mydraw.sats" staload "./../SATS/mydraw_HTML5_canvas2d.sats" (* ****** ****** *) macdef PI = 3.1415926535898 (* ****** ****** *) implement{ } mydraw_new_path () = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val () = canvas2d_beginPath (ctx) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_new_path] (* ****** ****** *) implement{ } mydraw_close_path () = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val () = canvas2d_closePath (ctx) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_close_path] (* ****** ****** *) implement{ } mydraw_move_to (p) = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val () = canvas2d_moveTo (ctx, p.x(), p.y()) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_move_to] implement{ } mydraw_move_to_xy (x, y) = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val () = canvas2d_moveTo (ctx, x, y) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_move_to_xy] (* ****** ****** *) implement{ } mydraw_line_to (p) = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val () = canvas2d_lineTo (ctx, p.x(), p.y()) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_line_to] implement{ } mydraw_line_to_xy (x, y) = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val () = canvas2d_lineTo (ctx, x, y) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_line_to_xy] (* ****** ****** *) implement{ } mydraw_rectangle (pul, w, h) = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val () = canvas2d_rect (ctx, pul.x(), pul.y(), w, h) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_rectangle] (* ****** ****** *) implement{ } mydraw_arc (pc, rad, ang1, ang2) = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val () = canvas2d_arc (ctx, pc.x(), pc.y(), rad, ang1, ang2, true) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_arc] implement{ } mydraw_arc_neg (pc, rad, ang1, ang2) = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val () = canvas2d_arc (ctx, pc.x(), pc.y(), rad, ang1, ang2, false) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_arc_neg] (* ****** ****** *) implement{ } mydraw_fill () = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val ((*void*)) = canvas2d_fill (ctx) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_fill] implement{ } mydraw_fill_set_rgb (r, g, b) = let // val one = 0.999999 // val r = ( if (r > 1.0) then one else if (r < 0.0) then 0.0 else r ) : double val g = ( if (g > 1.0) then one else if (g < 0.0) then 0.0 else g ) : double val b = ( if (b > 1.0) then one else if (b < 0.0) then 0.0 else b ) : double // val r = $UN.cast{int}(r * 0xFF) val g = $UN.cast{int}(g * 0xFF) val b = $UN.cast{int}(b * 0xFF) // #define BSZ 32 var rgb = @[byte][BSZ]() val p_rgb = addr@(rgb) // abstype charptr = $extype"char*" // val len = $extfcall ( int, "snprintf", $UN.cast{charptr}(p_rgb), BSZ, "rgb(%i,%i,%i)", r, g, b ) : int // end of [val] // val () = mydraw_fill_set_string<> ($UN.cast{string}(p_rgb)) // in // nothing end // end of [mydraw_fill_set_rgb] implement{ } mydraw_fill_set_string (style) = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val ((*void*)) = canvas2d_fillStyle_string (ctx, style) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_fill_set_string] (* ****** ****** *) implement{ } mydraw_stroke () = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val ((*void*)) = canvas2d_stroke (ctx) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_stroke] implement{ } mydraw_stroke_set_rgb (r, g, b) = let // val one = 0.999999 // val r = ( if (r > 1.0) then one else if (r < 0.0) then 0.0 else r ) : double val g = ( if (g > 1.0) then one else if (g < 0.0) then 0.0 else g ) : double val b = ( if (b > 1.0) then one else if (b < 0.0) then 0.0 else b ) : double // val r = $UN.cast{int}(r * 0xFF) val g = $UN.cast{int}(g * 0xFF) val b = $UN.cast{int}(b * 0xFF) // #define BSZ 32 var rgb = @[byte][BSZ]() val p_rgb = addr@(rgb) // abstype charptr = $extype"char*" // val len = $extfcall ( int, "snprintf", $UN.cast{charptr}(p_rgb), BSZ, "rgb(%i,%i,%i)", r, g, b ) : int // end of [val] // val () = mydraw_stroke_set_string<> ($UN.cast{string}(p_rgb)) // in // nothing end // end of [mydraw_stroke_set_rgb] implement{ } mydraw_stroke_set_string (style) = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val ((*void*)) = canvas2d_strokeStyle_string (ctx, style) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_stroke_set_string] (* ****** ****** *) local assume mydraw_save_v = unit_v in (* in of [local] *) implement{ } mydraw_save () = let val ( fpf | ctx ) = mydraw_get0_canvas2d<> () val (pf | ()) = canvas2d_save (ctx) prval pf = $UN.castview0{unit_v}(pf) prval ((*void*)) = fpf (ctx) in (pf | ()) end // end of [mydraw_save] implement{ } mydraw_restore (pf | (*void*)) = let val [l:addr] (fpf | ctx) = mydraw_get0_canvas2d<> () prval pf = $UN.castview0{canvas2d_save_v(l)}(pf) val () = canvas2d_restore (pf | ctx) prval ((*void*)) = fpf (ctx) in // nothing end // end of [mydraw_restore] end // end of [local] (* ****** ****** *) (* end of [mydraw_html5_canvas2d.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/DATS/mydraw_cairo.dats0000644000175000017500000001612213431250607031743 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2013-02: a simple drawing package // (* ****** ****** *) #include "share/atspre_define.hats" (* ****** ****** *) // #define LIBCAIRO_targetloc "$PATSHOME/npm-utils/contrib/atscntrb-libcairo" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/mydraw.sats" staload "./../SATS/mydraw_cairo.sats" (* ****** ****** *) staload "{$LIBCAIRO}/SATS/cairo.sats" (* ****** ****** *) macdef PI = 3.1415926535898 (* ****** ****** *) implement {}(*tmp*) mydraw_get1_cairo () = let val ( fpf | cr ) = mydraw_get0_cairo<> () val cr2 = cairo_reference (cr) prval ((*void*)) = fpf (cr) in cr2 end // end of [mydraw_get1_cairo] (* ****** ****** *) implement {}(*tmp*) mydraw_new_path () = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_new_path (cr) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_new_path] (* ****** ****** *) implement {}(*tmp*) mydraw_close_path () = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_close_path (cr) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_close_path] (* ****** ****** *) implement {}(*tmp*) mydraw_move_to (p) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_move_to (cr, p.x(), p.y()) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_move_to] implement {}(*tmp*) mydraw_move_to_xy (x, y) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_move_to (cr, x, y) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_move_to_xy] (* ****** ****** *) implement {}(*tmp*) mydraw_line_to (p) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_line_to (cr, p.x(), p.y()) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_line_to] implement {}(*tmp*) mydraw_line_to_xy (x, y) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_line_to (cr, x, y) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_line_to_xy] (* ****** ****** *) implement {}(*tmp*) mydraw_rel_line_to (v) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_rel_line_to (cr, v.x(), v.y()) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_rel_line_to] implement {}(*tmp*) mydraw_rel_line_to_dxy (dx, dy) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_rel_line_to (cr, dx, dy) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_rel_line_to_dxy] (* ****** ****** *) implement {}(*tmp*) mydraw_rectangle (pul, w, h) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_rectangle (cr, pul.x(), pul.y(), w, h) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_rectangle] (* ****** ****** *) implement {}(*tmp*) mydraw_arc (pc, rad, ang1, ang2) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_arc (cr, pc.x(), pc.y(), rad, ang1, ang2) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_arc] implement {}(*tmp*) mydraw_arc_neg (pc, rad, ang1, ang2) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_arc_negative (cr, pc.x(), pc.y(), rad, ang1, ang2) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_arc_neg] implement {}(*tmp*) mydraw_circle (pc, rad) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_new_sub_path (cr) val () = cairo_arc (cr, pc.x(), pc.y(), rad, 0.0, 2*PI) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_circle] (* ****** ****** *) implement {}(*tmp*) mydraw_fill () = let val ( fpf | cr ) = mydraw_get0_cairo<> () val ((*void*)) = cairo_fill (cr) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_fill] implement {}(*tmp*) mydraw_fill_set_rgb (r, g, b) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_set_source_rgb (cr, r, g, b) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_fill_set_rgb] implement {}(*tmp*) mydraw_fill_set_rgba (r, g, b, a) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_set_source_rgba (cr, r, g, b, a) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_fill_set_rgba] (* ****** ****** *) implement {}(*tmp*) mydraw_stroke () = let val ( fpf | cr ) = mydraw_get0_cairo<> () val ((*void*)) = cairo_stroke (cr) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_stroke] implement {}(*tmp*) mydraw_stroke_set_rgb (r, g, b) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_set_source_rgb (cr, r, g, b) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_stroke_set_rgb] implement {}(*tmp*) mydraw_stroke_set_rgba (r, g, b, a) = let val ( fpf | cr ) = mydraw_get0_cairo<> () val () = cairo_set_source_rgba (cr, r, g, b, a) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_stroke_set_rgba] (* ****** ****** *) local assume mydraw_save_v = unit_v in (* in of [local] *) implement {}(*tmp*) mydraw_save () = let val ( fpf | cr ) = mydraw_get0_cairo<> () val (pf | ()) = cairo_save (cr) prval pf = $UN.castview0{unit_v}(pf) prval ((*void*)) = fpf (cr) in (pf | ()) end // end of [mydraw_save] implement {}(*tmp*) mydraw_restore (pf | (*void*)) = let val [l:addr] (fpf | cr) = mydraw_get0_cairo<> () prval pf = $UN.castview0{cairo_save_v(l)}(pf) val () = cairo_restore (pf | cr) prval ((*void*)) = fpf (cr) in // nothing end // end of [mydraw_restore] end // end of [local] (* ****** ****** *) (* end of [mydraw_cairo.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/DATS/mydraw_bargraph.dats0000644000175000017500000000320713431250607032434 0ustar brandonbrandon(* ** Displaying bar graphs *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start time: February, 2014 // (* ****** ****** *) // // HX-2014-03: see some Algorianim examples // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/mydraw.sats" (* ****** ****** *) // // HX: p1, p2, p3 and p4 are positioned CCW // extern fun{ } mydraw_bargraph ( n: intGte(1) , p1: point, p2: point, p3: point, p4: point ) : void // end of [mydraw_bargraph] // extern fun{} mydraw_bargraph$color (i: intGte(0)): color extern fun{} mydraw_bargraph$height (i: intGte(0)): double // (* ****** ****** *) implement{ } mydraw_bargraph (n, p1, p2, p3, p4) = let // val a = 1.0 / n val v12 = a * (p2 - p1) val v43 = a * (p3 - p4) prval [n:int] EQINT () = eqint_make_gint (n) // fun loop {i:nat | i < n} ( i: int (i), p1: point, p4: point ) : void = let // val p1_new = p1 + v12 val p4_new = p4 + v43 val ht = mydraw_bargraph$height (i) val ht = ( if ht <= 0.0 then 0.0 else (if ht >= 1.0 then 1.0 else ht) // end of [if] ) : double // end of [val] val () = if ht > 0.0 then { val ((*void*)) = mydraw_quadrilateral (p1, p1_new, p1_new+ht*(p4_new-p1_new), p1+ht*(p4-p1)) val clr = mydraw_bargraph$color (i) val ((*void*)) = mydraw_fill_set_rgb (clr.r(), clr.g(), clr.b()) val ((*void*)) = mydraw_fill ((*void*)) } (* end of [if] *) // val i1 = i + 1 // in if i1 < n then loop (i1, p1_new, p4_new) else () end // end of [loop] // in loop (0, p1, p4) end // end of [mydraw_bargraph] (* ****** ****** *) (* end of [mydraw_bargraph.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/mylibies.hats0000644000175000017500000000077313431250607030356 0ustar brandonbrandon(* ** For teaching some basic ** drawing involving cairo and canvas-2d *) (* ****** ****** *) // // HX-2017-02-13 // (* ****** ****** *) // #staload MYDRAW = "./SATS/mydraw.sats" // (* ****** ****** *) // #ifdef MYDRAW_CAIRO #staload MYDRAW_cairo = "./SATS/mydraw_cairo.sats" #endif // #ifdef(MYDRAW_CAIRO) // (* ****** ****** *) // #ifdef MYDRAW_CANVAS2D #staload MYDRAW_canvas2d = "./SATS/mydraw_HTML5_canvas2d.sats" #endif // #ifdef(MYDRAW_CANVAS2D) // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/Makefile_test0000644000175000017500000000044513431250607030353 0ustar brandonbrandon# # For testing # ###### NPM=npm RMRF=rm -rf ###### all:: ###### SUBDIRS := SUBDIRS += TEST ###### all:: ; $(NPM) install ###### all:: ; \ for i in $(SUBDIRS); do $(MAKE) -C $$i testall; done ###### cleanall:: ; $(RMRF) ./node_modules ###### ###### end of [Makefile_test] ###### ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/0000755000175000017500000000000013431250607026430 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test01.dats0000644000175000017500000000221713431250607030427 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: September, 2013 *) (* ****** ****** *) // extern fun{} draw3_solid (point, point, point, color): void extern fun{} draw3_sierpinski (point, point, point, color, color, int(*level*)): void // (* ****** ****** *) implement{ } draw3_solid ( p1, p2, p3, clr ) = let // val () = mydraw_new_path () val () = mydraw_triangle (p1, p2, p3) val () = mydraw_fill_set_rgb (clr.r(), clr.g(), clr.b()) val () = mydraw_fill () val () = mydraw_close_path () // in // nothing end // end of [draw3_solid] (* ****** ****** *) implement{ } draw3_sierpinski ( p1, p2, p3, clr1, clr2, n ) = let in // if n > 0 then let val p12 = p1 + 0.5 * (p2 - p1) val p23 = p2 + 0.5 * (p3 - p2) val p31 = p3 + 0.5 * (p1 - p3) val () = draw3_solid (p12, p23, p31, clr2) val () = draw3_sierpinski (p1, p12, p31, clr1, clr2, n-1) val () = draw3_sierpinski (p12, p2, p23, clr1, clr2, n-1) val () = draw3_sierpinski (p31, p23, p3, clr1, clr2, n-1) in // nothing end else draw3_solid (p1, p2, p3, clr1) // end of [if] // end // end of [draw3_sierpinski] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test01-cairo.dats0000644000175000017500000000472413431250607031527 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: September, 2013 *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define LIBCAIRO_targetloc "$PATSHOME/npm-utils\ /contrib/atscntrb-libcairo" // (* ****** ****** *) // staload "{$LIBCAIRO}/SATS/cairo.sats" // (* ****** ****** *) // #define MYDRAW_CAIRO // #include "./../mylibies.hats" // #staload $MYDRAW #staload $MYDRAW_cairo // #include "./../DATS/mydraw.dats" #include "./../DATS/mydraw_cairo.dats" // (* ****** ****** *) (* HX: For external use: *) (* // #define MYDRAW_CAIRO // #include "$PATSHOMELOCS\ /atscntrb-hx-teaching-mydraw/mylibies.hats" // #staload $MYDRAW #staload $MYDRAW_cairo // #include "$PATSHOMELOCS\ /atscntrb-hx-teaching-mydraw/DATS/mydraw.dats" #include "$PATSHOMELOCS\ /atscntrb-hx-teaching-mydraw/DATS/mydraw_cairo.dats" // *) (* ****** ****** *) #include "./test01.dats" (* ****** ****** *) extern fun cairo_draw3_sierpinski {l:agz} ( cr: !cairo_ref (l) , p1: point, p2: point, p3: point, clr1: color, clr2: color , level: int ) : void // end of [cairo_draw3_sierpinski] implement cairo_draw3_sierpinski (cr, p1, p2, p3, clr1, clr2, n) = let // val p_cr = ptrcast (cr) // implement mydraw_get0_cairo<> () = let // extern castfn __cast {l:addr} (ptr(l)): vttakeout (void, cairo_ref(l)) // in __cast (p_cr) end // end of [mydraw_get0_cairo] // in draw3_sierpinski (p1, p2, p3, clr1, clr2, n) end // end of [cairo_draw3_sierpinski] (* ****** ****** *) implement main0 () = () where { // val W = 250 and H = 250 // // create a sf for drawing // val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (sf) // val WH = min (W, H) val WH = g0int2float_int_double (WH) val WH2 = WH / 2 // val () = cairo_translate (cr, WH2, WH2) val (pf0 | ()) = cairo_save (cr) // val p1 = point_make (~WH2, WH2) val p2 = point_make ( 0.0, ~WH2) val p3 = point_make ( WH2, WH2) // val clr1 = color_make (0.0, 0.0, 1.0) val clr2 = color_complement (clr1) // val () = cairo_draw3_sierpinski (cr, p1, p2, p3, clr1, clr2, 4) // val () = cairo_restore (pf0 | cr) // val status = cairo_surface_write_to_png (sf, "test01.png") val () = cairo_surface_destroy (sf) // a type error if omitted val () = cairo_destroy (cr) // a type error if omitted // // in case of a failure ... // val () = assertloc (status = CAIRO_STATUS_SUCCESS) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01-cairo.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test02.html0000644000175000017500000000067413431250607030446 0ustar brandonbrandon HTML5 Canvas2d in ATS

Checker Board

A simple example of ATS -> C -> Javascript

ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test02-canvas2d.dats0000644000175000017500000000240613431250607032127 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: October, 2013 *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define MYDRAW_CANVAS2D // #include "./../mylibies.hats" // #staload $MYDRAW #staload $MYDRAW_canvas2d // #include "./../DATS/mydraw.dats" #include "./../DATS/mydraw_HTML5_canvas2d.dats" // (* ****** ****** *) // #include "./test02.dats" // (* ****** ****** *) val W = 450.0 and H = 450.0 (* ****** ****** *) implement main0() = { // val id = "CheckerBoard" // val M = 8 and N = 8 // val ctx = canvas2d_make(id) val p_ctx = ptrcast(ctx) // val () = assertloc(p_ctx > 0) // val WH = min(W, H) // val p0 = point_make(0.0, 0.0) // val (pf0 | ()) = canvas2d_save(ctx) // val () = canvas2d_scale(ctx, 1.0*W/N, 1.0*H/M) // implement mydraw_get0_canvas2d<>() = let // extern castfn __cast {l:addr} (ptr(l)): vttakeout(void, canvas2d(l)) // in __cast(p_ctx) end // end of [mydraw_get0_canvas2d] // val clr1 = color_make(0.8, 0.8, 0.8) val clr2 = color_make(0.0, 0.0, 0.0) // val () = draw_mrow(p0, clr1, clr2, M, N) // val () = canvas2d_restore(pf0 | ctx) // val () = canvas2d_free(ctx) // } (* end of [main0] *) (* ****** ****** *) (* end of [test02-canvas2d.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test03.html0000644000175000017500000000067513431250607030450 0ustar brandonbrandon HTML5 Canvas2d in ATS

Koch Snowflake

A simple example of ATS -> C -> Javascript

ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test03-cairo.dats0000644000175000017500000000440013431250607031520 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: October, 2013 *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define LIBCAIRO_targetloc "$PATSHOME/npm-utils\ /contrib/atscntrb-libcairo" // (* ****** ****** *) // #staload "{$LIBCAIRO}/SATS/cairo.sats" // (* ****** ****** *) // #define MYDRAW_CAIRO // #include "./../mylibies.hats" // #staload $MYDRAW #staload $MYDRAW_cairo // #include "./../DATS/mydraw.dats" #include "./../DATS/mydraw_cairo.dats" // (* ****** ****** *) #include "./test03.dats" (* ****** ****** *) extern fun cairo_draw_koch {l:agz} ( cr: !cairo_ref (l) , p1: point, p2: point, p3: point , clr1: color, clr2: color, clr3: color , level: int ) : void // end of [cairo_draw_koch] implement cairo_draw_koch (cr, p1, p2, p3, clr1, clr2, clr3, n) = let // val p_cr = ptrcast (cr) // implement mydraw_get0_cairo<> () = let // extern castfn __cast {l:addr} (ptr(l)): vttakeout (void, cairo_ref(l)) // in __cast (p_cr) end // end of [mydraw_get0_cairo] // val () = draw_koch (p1, p2, clr1, n) val () = draw_koch (p2, p3, clr2, n) val () = draw_koch (p3, p1, clr3, n) // in // nothing end // end of [cairo_draw3_koch] (* ****** ****** *) implement main0 () = () where { // val W = 400 and H = 400 // // create a sf for drawing // val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (sf) // val WH = min (W, H) val WH = g0int2float_int_double (WH) val WH2 = WH / 2 val WH3 = WH / 3 // val () = cairo_translate (cr, WH2, (WH2+WH3)/2) val (pf0 | ()) = cairo_save (cr) // val p1 = point_make (~WH3, WH3) val p2 = point_make ( 0.0, ~WH3) val p3 = point_make ( WH3, WH3) // val clr1 = color_make (1.0, 0.0, 0.0) val clr2 = color_make (0.0, 1.0, 0.0) val clr3 = color_make (0.0, 0.0, 1.0) // val () = cairo_draw_koch (cr, p1, p2, p3, clr1, clr2, clr3, 6) // val () = cairo_restore (pf0 | cr) // val status = cairo_surface_write_to_png (sf, "test03.png") val () = cairo_surface_destroy (sf) // a type error if omitted val () = cairo_destroy (cr) // a type error if omitted // // in case of a failure ... // val () = assertloc (status = CAIRO_STATUS_SUCCESS) // } (* end of [main0] *) (* ****** ****** *) (* end of [test03-cairo.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test03-canvas2d.dats0000644000175000017500000000340413431250607032127 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Start time: October, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define MYDRAW_CANVAS2D // #include "./../mylibies.hats" // #staload $MYDRAW #staload $MYDRAW_canvas2d // #include "./../DATS/mydraw.dats" #include "./../DATS/mydraw_HTML5_canvas2d.dats" // (* ****** ****** *) // #include "./test03.dats" // (* ****** ****** *) extern fun canvas2d_draw_koch {l:agz} ( cr: !canvas2d (l) , p1: point, p2: point, p3: point, clr: color , level: int ) : void // end of [canvas2d_draw_koch] implement canvas2d_draw_koch (ctx, p1, p2, p3, clr, n) = let // val p_ctx = ptrcast (ctx) // implement mydraw_get0_canvas2d<> () = let // extern castfn __cast {l:addr} (ptr(l)): vttakeout (void, canvas2d(l)) // in __cast (p_ctx) end // end of [mydraw_get0_canvas2d] // val () = draw_koch (p1, p2, clr, n) val () = draw_koch (p2, p3, clr, n) val () = draw_koch (p3, p1, clr, n) // in // nothing end // end of [canvas2d_draw_koch] (* ****** ****** *) val W = 600.0 and H = 400.0 (* ****** ****** *) implement main0 () = { // val id = "KochSnowflake" // val ctx = canvas2d_make (id) // val ((*void*)) = assertloc(ptrcast(ctx) > 0) // val WH = min (W, H) val WH2 = WH / 2.0 val WH3 = WH / 3.0 // val () = canvas2d_translate (ctx, WH2, (WH2+WH3)/2) // val (pf0 | ()) = canvas2d_save (ctx) // val p1 = point_make (~WH3, WH3) val p2 = point_make ( 0.0, ~WH3) val p3 = point_make ( WH3, WH3) // val clr = color_make (0.0, 0.0, 1.0) // val () = canvas2d_draw_koch (ctx, p1, p2, p3, clr, 4) // val () = canvas2d_restore (pf0 | ctx) // val () = canvas2d_free (ctx) // } (* end of [main0] *) (* ****** ****** *) (* end of [test03-canvas2d.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test01-canvas2d.dats0000644000175000017500000000337013431250607032127 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: October, 2013 *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define MYDRAW_CANVAS2D // #include "./../mylibies.hats" // #staload $MYDRAW #staload $MYDRAW_canvas2d // #include "./../DATS/mydraw.dats" #include "./../DATS/mydraw_HTML5_canvas2d.dats" // (* ****** ****** *) // #include "./test01.dats" // (* ****** ****** *) extern fun canvas2d_draw3_sierpinski {l:agz} ( cr: !canvas2d(l) , p1: point, p2: point, p3: point, clr1: color, clr2: color , level: int ) : void // end of [canvas2d_draw3_sierpinski] implement canvas2d_draw3_sierpinski (ctx, p1, p2, p3, clr1, clr2, n) = let // val p_ctx = ptrcast (ctx) // implement mydraw_get0_canvas2d<>() = let // extern castfn __cast {l:addr} (ptr(l)): vttakeout(void, canvas2d(l)) // in __cast (p_ctx) end // end of [mydraw_get0_canvas2d] // in draw3_sierpinski(p1, p2, p3, clr1, clr2, n) end // end of [canvas2d_draw3_sierpinski] (* ****** ****** *) val W = 600.0 and H = 400.0 (* ****** ****** *) implement main0() = { // val id = "SierpinskiTriangles" // val ctx = canvas2d_make (id) val p_ctx = ptrcast (ctx) val () = assertloc (p_ctx > 0) // val WH = min (W, H) val WH2 = WH / 2.0 // val () = canvas2d_translate(ctx, WH2, WH2) val (pf0 | ()) = canvas2d_save(ctx) // val p1 = point_make(~WH2, WH2) val p2 = point_make( 0.0, ~WH2) val p3 = point_make( WH2, WH2) // val clr1 = color_make(0.0, 0.0, 1.0) val clr2 = color_complement (clr1) // val () = canvas2d_draw3_sierpinski(ctx, p1, p2, p3, clr1, clr2, 5) // val () = canvas2d_restore(pf0 | ctx) // val () = canvas2d_free(ctx) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01-canvas2d.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test02-cairo.dats0000644000175000017500000000325713431250607031530 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: September, 2013 *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define LIBCAIRO_targetloc "$PATSHOME/npm-utils\ /contrib/atscntrb-libcairo" // (* ****** ****** *) // #staload "{$LIBCAIRO}/SATS/cairo.sats" // (* ****** ****** *) // #define MYDRAW_CAIRO // #include "./../mylibies.hats" // #staload $MYDRAW #staload $MYDRAW_cairo // #include "./../DATS/mydraw.dats" #include "./../DATS/mydraw_cairo.dats" // (* ****** ****** *) #include "./test02.dats" (* ****** ****** *) implement main0 () = () where { // val M = 8 and N = 8 val W = 400 and H = 400 // // create a sf for drawing // val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (sf) val p_cr = cairo_ref2ptr (cr) // val WH = min (W, H) val WH = g0int2float_int_double (WH) // val p0 = point_make (0.0, 0.0) // val (pf0 | ()) = cairo_save (cr) // val () = cairo_scale (cr, 1.0*W/N, 1.0*H/M) // implement mydraw_get0_cairo<> () = let extern castfn __cast {l:addr} (ptr (l)): vttakeout (void, cairo_ref(l)) in __cast (p_cr) end // end of [mydraw_get0_cairo] // val clr1 = color_make (1.0, 1.0, 1.0) val clr2 = color_make (0.0, 0.0, 0.0) // val () = draw_mrow (p0, clr1, clr2, M, N) // val () = cairo_restore (pf0 | cr) // val status = cairo_surface_write_to_png (sf, "test02.png") val () = cairo_surface_destroy (sf) // a type error if omitted val () = cairo_destroy (cr) // a type error if omitted // // in case of a failure ... // val () = assertloc (status = CAIRO_STATUS_SUCCESS) // } (* end of [main0] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/Makefile0000644000175000017500000000615613431250607030100 0ustar brandonbrandon# # A simple Makefile # ###### EMCC=emcc ###### PATSHOMEQ="$(PATSHOME)" PATSCONTRIBQ="$(PATSHOME)/npm-utils/contrib" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### # PATSCCOMP2=\ $(EMCC) -Wno-warn-absolute-paths \ -D_XOPEN_SOURCE -I${PATSHOME} -I${PATSHOME}/ccomp/runtime # ###### XRLIBS=`pkg-config cairo --libs` XRCFLAGS=`pkg-config cairo --cflags` ###### .PHONY: all all_js ###### all:: regress:: cleanall:: ###### # all:: \ test01-cairo test01-cairo: \ test01-cairo.dats test01.dats ; \ $(PATSCC) -I$(PATSCONTRIBQ) $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm regress:: test01-cairo; ./$< cleanall:: ; $(RMF) test01-cairo test01.png # ###### # all_js:: \ test01-canvas2d.js test01-canvas2d.js: \ test01-canvas2d.dats test01.dats ; \ $(PATSCC) -atsccomp "$(PATSCCOMP2)" \ --js-library ../CATS_JS/mydraw_HTML5_canvas2d.js -o $@ $< # cleanall:: ; $(RMF) test01-canvas2d.js cleanall:: ; $(RMF) test01-canvas2d.js.map upload_test01:: ; scp test01.html test01-canvas2d.js \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/TEMPATS/JS/mydraw/ # ###### # all:: \ test02-cairo test02-cairo: \ test02-cairo.dats ; \ $(PATSCC) -I$(PATSCONTRIBQ) $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm regress:: test02-cairo; ./$< cleanall:: ; $(RMF) test02-cairo test02.png # ###### # all_js:: \ test02-canvas2d.js test02-canvas2d.js: \ test02-canvas2d.dats test02.dats ; \ $(PATSCC) -atsccomp "$(PATSCCOMP2)" \ --js-library ../CATS_JS/mydraw_HTML5_canvas2d.js -o $@ $< # cleanall:: ; $(RMF) test02-canvas2d.js cleanall:: ; $(RMF) test02-canvas2d.js.map upload_test02:: ; scp test02.html test02-canvas2d.js \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/TEMPATS/JS/mydraw/ # ###### # all:: \ test03-cairo test03-cairo: \ test03-cairo.dats test03.dats ; \ $(PATSCC) -I$(PATSCONTRIBQ) $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm regress:: test03-cairo; ./$< cleanall:: ; $(RMF) test03-cairo test03.png # ###### # all_js:: \ test03-canvas2d.js test03-canvas2d.js: \ test03-canvas2d.dats test03.dats ; \ $(PATSCC) -atsccomp "$(PATSCCOMP2)" \ --js-library ../CATS_JS/mydraw_HTML5_canvas2d.js -o $@ $< # cleanall:: ; $(RMF) test03-canvas2d.js cleanall:: ; $(RMF) test03-canvas2d.js.map upload_test03:: ; scp test03.html test03-canvas2d.js \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/TEMPATS/JS/mydraw/ # ###### # all:: \ test04-cairo test04-cairo: \ test04-cairo.dats test04.dats ; \ $(PATSCC) -I$(PATSCONTRIBQ) $(XRCFLAGS) -o $@ $< $(XRLIBS) -lm regress:: test04-cairo; ./$< cleanall:: ; $(RMF) test04-cairo test04.png # ###### # all_js:: \ test04-canvas2d.js test04-canvas2d.js: \ test04-canvas2d.dats test04.dats ; \ $(PATSCC) -atsccomp "$(PATSCCOMP2)" \ --js-library ../CATS_JS/mydraw_HTML5_canvas2d.js -o $@ $< # cleanall:: ; $(RMF) test04-canvas2d.js cleanall:: ; $(RMF) test04-canvas2d.js.map upload_test04:: ; scp test04.html test04-canvas2d.js \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/TEMPATS/JS/mydraw/ # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### ###### end of [Makefile] ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test04-canvas2d.dats0000644000175000017500000000322313431250607032127 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: October, 2013 *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define MYDRAW_CANVAS2D // #include "./../mylibies.hats" // #staload $MYDRAW #staload $MYDRAW_canvas2d // #include "./../DATS/mydraw.dats" #include "./../DATS/mydraw_HTML5_canvas2d.dats" // (* ****** ****** *) // #include "./test04.dats" // (* ****** ****** *) extern fun canvas2d_draw_dragon {l:agz} ( cr: !canvas2d (l) , p1: point, p2: point, clr: color , level: int ) : void // end of [canvas2d_draw_dragon] implement canvas2d_draw_dragon (ctx, p1, p2, clr, n) = let // val p_ctx = ptrcast (ctx) // implement mydraw_get0_canvas2d<> () = let // extern castfn __cast {l:addr} (ptr(l)): vttakeout (void, canvas2d(l)) // in __cast (p_ctx) end // end of [mydraw_get0_canvas2d] // val () = draw_dragon (1(*sgn*), p1, p2, clr, n) // in // nothing end // end of [canvas2d_draw_dragon] (* ****** ****** *) val W = 600.0 and H = 400.0 (* ****** ****** *) implement main0 () = { // val id = "DragonCurve" // val ctx = canvas2d_make (id) val p_ctx = ptrcast (ctx) val () = assertloc (p_ctx > 0) // val WH = min (W, H) val WH2 = WH / 2.0 val WH4 = WH / 4.0 // val () = canvas2d_translate (ctx, WH2, WH2) val (pf0 | ()) = canvas2d_save (ctx) // val p1 = point_make (~WH4, 0.0) val p2 = point_make ( WH4, 0.0) // val clr = color_make (0.0, 0.0, 1.0) // val () = canvas2d_draw_dragon (ctx, p1, p2, clr, 12) // val () = canvas2d_restore (pf0 | ctx) // val () = canvas2d_free (ctx) // } (* end of [main0] *) (* ****** ****** *) (* end of [test04-canvas2d.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test04-cairo.dats0000644000175000017500000000401313431250607031521 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: October, 2013 *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define LIBCAIRO_targetloc "$PATSHOME/npm-utils\ /contrib/atscntrb-libcairo" // (* ****** ****** *) // #staload "{$LIBCAIRO}/SATS/cairo.sats" // (* ****** ****** *) // #define MYDRAW_CAIRO // #include "./../mylibies.hats" // #staload $MYDRAW #staload $MYDRAW_cairo // #include "./../DATS/mydraw.dats" #include "./../DATS/mydraw_cairo.dats" // (* ****** ****** *) #include "./test04.dats" (* ****** ****** *) extern fun cairo_draw_dragon {l:agz} ( cr: !cairo_ref (l) , p1: point, p2: point, clr: color , level: int ) : void // end of [cairo_draw_dragon] implement cairo_draw_dragon (cr, p1, p2, clr, n) = let // val p_cr = ptrcast (cr) // implement mydraw_get0_cairo<> () = let // extern castfn __cast {l:addr} (ptr(l)): vttakeout (void, cairo_ref(l)) // in __cast (p_cr) end // end of [mydraw_get0_cairo] // val () = draw_dragon (1(*sgn*), p1, p2, clr, n) // in // nothing end // end of [cairo_draw3_dragon] (* ****** ****** *) implement main0 () = () where { // val W = 400 and H = 400 // // create a sf for drawing // val sf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H) val cr = cairo_create (sf) // val WH = min (W, H) val WH = g0int2float_int_double (WH) val WH2 = WH / 2 val WH4 = WH / 4 // val () = cairo_translate (cr, WH2, WH2) val (pf0 | ()) = cairo_save (cr) // val p1 = point_make (~WH4, 0.0) val p2 = point_make ( WH4, 0.0) // val clr = color_make (0.0, 0.0, 1.0) // val () = cairo_draw_dragon (cr, p1, p2, clr, 12) // val () = cairo_restore (pf0 | cr) // val status = cairo_surface_write_to_png (sf, "test04.png") val () = cairo_surface_destroy (sf) // a type error if omitted val () = cairo_destroy (cr) // a type error if omitted // // in case of a failure ... // val () = assertloc (status = CAIRO_STATUS_SUCCESS) // } (* end of [main0] *) (* ****** ****** *) (* end of [test04-cairo.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test04.html0000644000175000017500000000067113431250607030445 0ustar brandonbrandon HTML5 Canvas2d in ATS

Dragon Curve

A simple example of ATS -> C -> Javascript

ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test01.html0000644000175000017500000000071113431250607030435 0ustar brandonbrandon HTML5 Canvas2d in ATS

Sierpinski Triangles

A simple example of ATS -> C -> Javascript

ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test02.dats0000644000175000017500000000224713431250607030433 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: September, 2013 *) (* ****** ****** *) extern fun{} draw_row ( pul: point, c1: color, c2: color, n: intGte(0) ) : void // end of [draw_row] (* ****** ****** *) implement {}(*tmp*) draw_row (pul, c1, c2, n) = let // fun loop ( pul: point , clr1: color, clr2: color , n: intGte(0) ) : void = if n > 0 then let val () = mydraw_new_path () val ( ) = mydraw_rectangle (pul, 1.0, 1.0) val () = mydraw_fill_set_rgb (clr1.r(), clr1.g(), clr1.b()) val () = mydraw_fill () val () = mydraw_close_path () in loop (point_hshift (pul, 1.0), clr2, clr1, pred(n)) end else () // end of [if] // in loop (pul, c1, c2, n) end // end of [draw_row] (* ****** ****** *) extern fun{} draw_mrow ( pul: point, c1: color, c2: color, m: intGte(0), n: intGte(0) ) : void // end of [draw_mrow] (* ****** ****** *) implement{ } draw_mrow (pul, c1, c2, m, n) = let in // if m > 0 then let val () = draw_row (pul, c1, c2, n) in draw_mrow (point_vshift (pul, 1.0), c2, c1, pred(m), n) end else () // end of [if] // end // end of [draw_mrow] (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test04.dats0000644000175000017500000000206013431250607030426 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: October, 2013 *) (* ****** ****** *) #define PI 3.1415926535898 (* ****** ****** *) // extern fun{} draw_line (point, point, color): void // extern fun{} draw_dragon ( sgn: int, point, point, color, int(*level*) ) : void // end of [draw_dragon] // (* ****** ****** *) implement{ } draw_line ( p1, p2, clr ) = let // val () = mydraw_new_path () // val () = mydraw_move_to (p1) val () = mydraw_line_to (p2) val () = mydraw_stroke_set_rgb (clr.r(), clr.g(), clr.b()) val () = mydraw_stroke () // val () = mydraw_close_path () // in // nothing end // end of [draw_line] (* ****** ****** *) implement{ } draw_dragon ( sgn, p1, p2, clr, n ) = let in // if n > 0 then let val v0 = $M.cos(PI/4) * (p2 - p1) val q1 = p1 + vector_rotate (v0, sgn*PI/4) val () = draw_dragon ( 1, p1, q1, clr, n-1) val () = draw_dragon (~1, q1, p2, clr, n-1) in // nothing end else draw_line (p1, p2, clr) // end of [if] // end // end of [draw_dragon] (* ****** ****** *) (* end of [test04.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/TEST/test03.dats0000644000175000017500000000215013431250607030425 0ustar brandonbrandon(* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: October, 2013 *) (* ****** ****** *) #define PI 3.1415926535898 (* ****** ****** *) // extern fun{} draw_line(point, point, color): void // extern fun{} draw_koch(point, point, color, int(*level*)): void // (* ****** ****** *) implement {}(*tmp*) draw_line ( p1, p2, clr ) = let // val () = mydraw_new_path () // val () = mydraw_move_to (p1) val () = mydraw_line_to (p2) val () = mydraw_stroke_set_rgb (clr.r(), clr.g(), clr.b()) val () = mydraw_stroke () // val () = mydraw_close_path () // in // nothing end // end of [draw_line] (* ****** ****** *) implement {}(*tmp*) draw_koch ( p1, p2, clr, n ) = let in // if n > 0 then let val v0 = (p2 - p1) / 3.0 val q1 = p1 + v0 val q2 = q1 + vector_rotate (v0, ~PI/3) val q3 = p2 - v0 val () = draw_koch (p1, q1, clr, n-1) val () = draw_koch (q1, q2, clr, n-1) val () = draw_koch (q2, q3, clr, n-1) val () = draw_koch (q3, p2, clr, n-1) in // nothing end else draw_line (p1, p2, clr) // end of [if] // end // end of [draw_koch] (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/SATS/0000755000175000017500000000000013431250607026423 5ustar brandonbrandon././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/SATS/mydraw_HTML5_canvas2d.satsATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/SATS/mydraw_HTML5_canvas2d0000644000175000017500000001021213431250607032337 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2013-10: // A drawing interface based on html5-canvas-2d // which itself is based on cairo // (* ****** ****** *) (* ** Author: Will Blair ** Authoremail: wdblairATgmailDOTcom *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB\ .libats-hwxi.teaching.mydraw" // #define ATS_STALOADFLAG 0 // no need for staloading at run-time #define ATS_EXTERN_PREFIX "atscntrb_libatshwxi_" // prefix for external names // (* ****** ****** *) absvtype canvas2d_vtype(l: addr) = ptr(l) (* ****** ****** *) // vtypedef canvas2d(l:addr) = canvas2d_vtype(l) // vtypedef canvas2d0 = [l:agez] canvas2d(l) vtypedef canvas2d1 = [l:addr | l > null] canvas2d(l) // (* ****** ****** *) // castfn canvas2d2ptr{l:addr} (ctx: !canvas2d(l)):<> ptr(l) // overload ptrcast with canvas2d2ptr // (* ****** ****** *) // fun{ } mydraw_get0_canvas2d ( // argumentless ) : [l:agz] vttakeout0(canvas2d(l)) // fun{} mydraw_get1_canvas2d(): canvas2d1 // (* ****** ****** *) fun canvas2d_make(id: string): canvas2d0 = "ext#%" fun canvas2d_free(canvas: canvas2d0): void = "ext#%" (* ****** ****** *) fun canvas2d_clearRect ( !canvas2d1 , x: double, y: double, wd: double, ht: double ) : void = "ext#%" // endfun (* ****** ****** *) fun canvas2d_beginPath(!canvas2d1): void = "ext#%" fun canvas2d_closePath(!canvas2d1): void = "ext#%" (* ****** ****** *) // fun canvas2d_moveTo (!canvas2d1, x: double, y: double): void = "ext#%" // fun canvas2d_lineTo (!canvas2d1, x: double, y: double): void = "ext#%" // (* ****** ****** *) fun canvas2d_rect ( !canvas2d1 , xul: double , yul: double , width: double , height: double ) : void = "ext#%" (* ****** ****** *) fun canvas2d_arc ( !canvas2d1 , xc: double , yc: double , rad: double , angle_beg: double , angle_end: double , counterclockwise: bool ) : void = "ext#%" (* ****** ****** *) fun canvas2d_fill(!canvas2d1): void = "ext#%" fun canvas2d_fillStyle_string(!canvas2d1, style: string): void = "ext#%" (* ****** ****** *) fun canvas2d_stroke(!canvas2d1): void = "ext#%" fun canvas2d_strokeStyle_string(!canvas2d1, style: string): void = "ext#%" (* ****** ****** *) fun canvas2d_translate (!canvas2d1, x: double, y: double): void = "ext#%" fun canvas2d_scale(!canvas2d1, sx: double, sy: double): void = "ext#%" fun canvas2d_rotate(!canvas2d1, angle: double): void = "ext#%" (* ****** ****** *) // absview canvas2d_save_v(l:addr) // fun canvas2d_save{l:agz} (canvas: !canvas2d l): (canvas2d_save_v l | void) = "ext#%" fun canvas2d_restore{l:agz} (pf: canvas2d_save_v l | canvas: !canvas2d l): void = "ext#%" // (* ****** ****** *) (* end of [mydraw_HTML5_canvas2d.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/SATS/mydraw.sats0000644000175000017500000001332013431250607030621 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2013-02: // A simple drawing package // based on cairo and HTML5-canvas-2d // (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB\ .libats-hwxi.teaching.mydraw" // (* ****** ****** *) typedef real = double typedef real2 = @(real, real) typedef real3 = @(real, real, real) (* ****** ****** *) // abst@ype point_t0ype = real2 abst@ype vector_t0ype = real2 // typedef point = point_t0ype typedef vector = vector_t0ype // (* ****** ****** *) symintr .x .y (* ****** ****** *) fun{} point_make (x: real, y: real): point (* ****** ****** *) // fun{} point_get_x (p: point): real fun{} point_get_y (p: point): real // overload .x with point_get_x overload .y with point_get_y // (* ****** ****** *) fun{} point_hshift (p: point, x: real): point fun{} point_vshift (p: point, y: real): point (* ****** ****** *) fun{} vector_make (x: real, y: real): vector (* ****** ****** *) // fun{} vector_get_x (v: vector): real fun{} vector_get_y (v: vector): real // overload .x with vector_get_x overload .y with vector_get_y // (* ****** ****** *) // fun{} vector_length (v: vector): real // (* ****** ****** *) fun{} dotprod (v1: vector, v2: vector): real (* ****** ****** *) castfn point2vector (p: point):<> vector castfn vector2point (v: vector):<> point (* ****** ****** *) fun{} sub_point_point (p1: point, p2: point): vector overload - with sub_point_point (* ****** ****** *) fun{} add_point_vector (p1: point, v2: vector): point fun{} sub_point_vector (p1: point, v2: vector): point overload + with add_point_vector overload - with sub_point_vector (* ****** ****** *) fun{} add_vector_vector (v1: vector, v2: vector): vector fun{} sub_vector_vector (v1: vector, v2: vector): vector overload + with add_vector_vector overload - with sub_vector_vector (* ****** ****** *) fun{} mul_scalar_vector (k: real, v: vector): vector fun{} div_vector_scalar (v: vector, k: real): vector overload * with mul_scalar_vector overload / with div_vector_scalar (* ****** ****** *) // // HX: counterclockwise // fun{} vector_rotate (v: vector, delta: real(*radian*)): vector // end of [vector_rotate] (* ****** ****** *) // abst@ype color_t0ype = real3 // typedef color = color_t0ype // (* ****** ****** *) fun{} color_make (r: real, g: real, b: real):<> color (* ****** ****** *) // symintr .r .g .b // fun{} color_get_r (c: color):<> real fun{} color_get_g (c: color):<> real fun{} color_get_b (c: color):<> real // overload .r with color_get_r overload .g with color_get_g overload .b with color_get_b // (* ****** ****** *) fun{} color_complement (c: color):<> color (* ****** ****** *) fun{} mydraw_new_path (): void fun{} mydraw_new_sub_path (): void fun{} mydraw_close_path (): void (* ****** ****** *) fun{} mydraw_move_to (p: point): void fun{} mydraw_move_to_xy (x: real, y: real): void (* ****** ****** *) fun{} mydraw_line_to (p: point): void fun{} mydraw_line_to_xy (x: real, y: real): void fun{} mydraw_rel_line_to (v: vector): void fun{} mydraw_rel_line_to_dxy (dx: real, dy: real): void (* ****** ****** *) fun{ } mydraw_triangle (p1: point, p2: point, p3: point): void // end of [mydraw_triangle] fun{ } mydraw_quadrilateral (p1: point, p2: point, p3: point, p4: point): void // end of [mydraw_quadrilateral] (* ****** ****** *) fun{ } mydraw_rectangle (pul: point, w: real, h: real): void (* ****** ****** *) fun{ } mydraw_arc (pc: point, rad: real, angle_beg: real, angle_end: real): void fun{ } mydraw_arc_neg (pc: point, rad: real, angle_beg: real, angle_end: real): void fun{} mydraw_circle (pc: point, rad: real): void (* ****** ****** *) fun{} mydraw_fill (): void fun{} mydraw_fill_set_rgb (r: double, g: double, b: double): void fun{} mydraw_fill_set_rgba (r: double, g: double, b: double, alpha: double): void fun{} mydraw_fill_set_string (style: string): void (* ****** ****** *) fun{} mydraw_stroke (): void fun{} mydraw_stroke_set_rgb (r: double, g: double, b: double): void fun{} mydraw_stroke_set_rgba (r: double, g: double, b: double, alpha: double): void fun{} mydraw_stroke_set_string (style: string): void (* ****** ****** *) // absview mydraw_save_v // fun{} mydraw_save (): (mydraw_save_v | void) fun{} mydraw_restore (pf: mydraw_save_v | (*void*)): void // (* ****** ****** *) (* end of [mydraw.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/SATS/mydraw_cairo.sats0000644000175000017500000000412713431250607032003 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2013-10: // A cairo-based drawing package // (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB\ .libats-hwxi.teaching.mydraw" // (* ****** ****** *) // #define LIBCAIRO_targetloc "$PATSHOME/npm-utils/contrib/atscntrb-libcairo" // (* ****** ****** *) // #staload XR = "{$LIBCAIRO}/SATS/cairo.sats" // stadef cairo_ref = $XR.cairo_ref stadef cairo_ref1 = $XR.cairo_ref1 // (* ****** ****** *) // fun{} mydraw_get0_cairo ( // argumentless ) : [l:agz] vttakeout0(cairo_ref(l)) // fun{} mydraw_get1_cairo((*void*)): cairo_ref1 // (* ****** ****** *) (* end of [mydraw_cairo.sats] *) ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-/hwxi/teaching/mydraw/package.json0000644000175000017500000000110613431250607030135 0ustar brandonbrandon{ "name": "atscntrb-hx-teaching-mydraw" , "version": "1.0.2" , "description": "This package contains library code for teaching some basic drawing involving cairo and canvas-2d." , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/npm-utils/contrib/libats-/hwxi/teaching/mydraw" } , "keywords": [ "ATS", "cairo", "canvas-2d" ] , "dependencies": {} , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "The package is stored at ${PATSHOME}/npm-utils/contrib/libats-hwxi/teaching/mydraw/." } ATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/.keeper0000644000175000017500000000000013431250607021514 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./npm-utils/contrib/libats-hwxi0000777000175000017500000000000013431250607024662 2libats-/hwxiustar brandonbrandonATS2-Postiats-gmp-0.3.13/./COPYING0000644000175000017500000010451313431250607015721 0ustar brandonbrandon GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ATS2-Postiats-gmp-0.3.13/./share/0000755000175000017500000000000013431250607015764 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./share/HATS/0000755000175000017500000000000013431250607016523 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./share/HATS/atslib_staload_libats_libc.hats0000644000175000017500000000363413431250607024726 0ustar brandonbrandon(* ** For staloading ** some commonly used libc packages *) (* ****** ****** *) // // Author: Hongwei Xi // AuthorEmail: gmhwxiATgmailCOM // (* ****** ****** *) #ifndef SHARE_ATSLIB_STALOAD_LIBATS_LIBC #define SHARE_ATSLIB_STALOAD_LIBATS_LIBC 1 (* ****** ****** *) // #define PATSLIBATS_targetloc "$PATSHOME/libats" // (* ****** ****** *) staload ERRNO = "{$PATSLIBATS}/libc/SATS/errno.sats" staload _(*ERRNO*) = "{$PATSLIBATS}/libc/DATS/errno.dats" (* ****** ****** *) staload DIRENT = "{$PATSLIBATS}/libc/SATS/dirent.sats" staload _(*DIRENT*) = "{$PATSLIBATS}/libc/DATS/dirent.dats" (* ****** ****** *) staload MATH = "{$PATSLIBATS}/libc/SATS/math.sats" staload _(*MATH*) = "{$PATSLIBATS}/libc/DATS/math.dats" (* ****** ****** *) staload FLOAT = "{$PATSLIBATS}/libc/SATS/float.sats" staload _(*FLOAT*) = "{$PATSLIBATS}/libc/DATS/float.dats" (* ****** ****** *) staload SIGNAL = "{$PATSLIBATS}/libc/SATS/signal.sats" (* ****** ****** *) staload STDDEF = "{$PATSLIBATS}/libc/SATS/stddef.sats" (* ****** ****** *) staload STDIO = "{$PATSLIBATS}/libc/SATS/stdio.sats" staload _(*STDIO*) = "{$PATSLIBATS}/libc/DATS/stdio.dats" (* ****** ****** *) staload STDLIB = "{$PATSLIBATS}/libc/SATS/stdlib.sats" staload _(*STDLIB*) = "{$PATSLIBATS}/libc/DATS/stdlib.dats" (* ****** ****** *) // staload STRING = "{$PATSLIBATS}/libc/SATS/string.sats" staload _(*STRING*) = "{$PATSLIBATS}/libc/DATS/string.dats" // staload STRINGS = "{$PATSLIBATS}/libc/SATS/strings.sats" staload _(*STRINGS*) = "{$PATSLIBATS}/libc/DATS/strings.dats" // (* ****** ****** *) // staload TIME = "{$PATSLIBATS}/libc/SATS/time.sats" staload _(*TIME*) = "{$PATSLIBATS}/libc/DATS/time.dats" // (* ****** ****** *) // staload UNISTD = "{$PATSLIBATS}/libc/SATS/unistd.sats" staload _(*UNISTD*) = "{$PATSLIBATS}/libc/DATS/unistd.dats" // (* ****** ****** *) #endif // SHARE_ATSLIB_STALOAD_LIBATS_LIBC (* ****** ****** *) (* end of [atslib_staload_libats_libc.hats] *) ATS2-Postiats-gmp-0.3.13/./share/HATS/atspre_define_pkgreloc.hats0000644000175000017500000000552113431250607024105 0ustar brandonbrandon(* ** For package reloc *) (* ****** ****** *) // // HX-2014-08: // PATSHOME is pre-defined // PATSCONTRIB is pre-defined // #define PATSHOME_targetloc "$PATSHOME" #define PATSCONTRIB_targetloc "$PATSCONTRIB" // // HX-2016-01-05: // PATSHOMERELOCS is *SPECIALLY* treated! // #define PATSHOMERELOCS_targetloc "$PATSHOMERELOCS" // (* ****** ****** *) // #define PATSPRE_targetloc "$PATSHOME/prelude" #define PATSLIBATS_targetloc "$PATSHOME/libats" #define PATSLIBATSML_targetloc "$PATSHOME/libats/ML" #define PATSLIBATSLIBC_targetloc "$PATSHOME/libats/libc" // (* ****** ****** *) // (* #define ATSLANGWEB "http://www.ats-lang.org" #define ATSLANGORG "http://www.ats-lang.org" #define ATSLANGCOM "http://www.ats-lang.com" *) // (* ****** ****** *) (* // #define LIBGMP_targetloc "$PATSHOME/contrib/atscntrb/atscntrb-libgmp" // #define LIBPCRE_targetloc "$PATSHOME/contrib/atscntrb/atscntrb-libpcre" // #define LIBCURL_targetloc "$PATSHOME/contrib/atscntrb/atscntrb-libcurl" // #define LIBJSONC_targetloc "$PATSHOME/contrib/atscntrb/atscntrb-libjson-c" #define LIBJSON_C_targetloc "$PATSHOME/contrib/atscntrb/atscntrb-libjson-c" // *) (* ****** ****** *) (* // #define HX_INTINF_targetloc "$PATSHOME/contrib/atscntrb/atscntrb-hx-intinf" // #define HX_CSTREAM_targetloc "$PATSHOME/contrib/atscntrb/atscntrb-hx-cstream" // #define HX_GLOBALS_targetloc "$PATSHOME/contrib/atscntrb/atscntrb-hx-globals" // #define HX_MYTESTING_targetloc "$PATSHOME/contrib/atscntrb/atscntrb-hx-mytesting" // *) (* ****** ****** *) // (* #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" *) // (* ****** ****** *) (* // #define LIBATSCC2JS_targetloc "$PATSCONTRIB/contrib/libatscc2js/ATS2-0.3.2" // #define LIBATSCC2PL_targetloc "$PATSCONTRIB/contrib/libatscc2pl/ATS2-0.3.2" // #define LIBATSCC2PY3_targetloc "$PATSCONTRIB/contrib/libatscc2py3/ATS2-0.3.2" // #define LIBATSCC2PHP_targetloc "$PATSCONTRIB/contrib/libatscc2php/ATS2-0.3.2" // #define LIBATSCC2ERL_targetloc "$PATSCONTRIB/contrib/libatscc2erl/ATS2-0.3.2" // #define LIBATSCC2SCM_targetloc "$PATSCONTRIB/contrib/libatscc2scm/ATS2-0.3.2" #define LIBATSCC2CLJ_targetloc "$PATSCONTRIB/contrib/libatscc2clj/ATS2-0.3.2" // *) (* ****** ****** *) (* // // HX-2014-05-12: // This is for backward compatibility // #define LIBATSHWXI_targetloc "$PATSCONTRIB/contrib/libats-/hwxi" #define LIBATS_HWXI_targetloc "$PATSCONTRIB/contrib/libats-/hwxi" // *) (* ****** ****** *) // // For applying ATS to Linux kernel programming // #define LINUX_targetloc "$PATSCONTRIB/contrib/linux" // (* ****** ****** *) // // For exporting constraints for solving externally // #define EXTSOLVE_targetloc "$PATSCONTRIB/contrib/extsolve" // (* ****** ****** *) // #define LIBATSEXT_LIBC_targetloc "$PATSCONTRIB/libatsext/libc" // (* ****** ****** *) (* end of [atspre_define_pkgreloc.hats] *) ATS2-Postiats-gmp-0.3.13/./share/HATS/.keeper0000644000175000017500000000000013431250607017765 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./share/HATS/atspre_staload_prelude.hats0000644000175000017500000000505513431250607024136 0ustar brandonbrandon(* ****** ****** *) (* ** This is just for staloading ** template code in ATSLIB/prelude *) (* ****** ****** *) // // Author: Hongwei Xi // AuthorEmail: gmhwxiATgmailCOM // (* ****** ****** *) #ifndef SHARE_ATSPRE_STALOAD #define SHARE_ATSPRE_STALOAD 1 (* ****** ****** *) // #define PATSPRE_targetloc "$PATSHOME/prelude" // for ATSPRE // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/basics.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/integer.dats" #staload _ = "{$PATSPRE}/DATS/pointer.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/integer_long.dats" #staload _ = "{$PATSPRE}/DATS/integer_size.dats" #staload _ = "{$PATSPRE}/DATS/integer_short.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/char.dats" // #staload _ = "{$PATSPRE}/DATS/bool.dats" // #staload _ = "{$PATSPRE}/DATS/float.dats" // #staload _ = "{$PATSPRE}/DATS/string.dats" #staload _ = "{$PATSPRE}/DATS/strptr.dats" // #staload _ = "{$PATSPRE}/DATS/integer_ptr.dats" #staload _ = "{$PATSPRE}/DATS/integer_fixed.dats" // (* ****** ****** *) // #staload _(*TUPLE*) = "{$PATSPRE}/DATS/tuple.dats" // (* ****** ****** *) #staload _ = "{$PATSPRE}/DATS/memory.dats" #staload _ = "{$PATSPRE}/DATS/reference.dats" (* ****** ****** *) #staload _ = "{$PATSPRE}/DATS/filebas.dats" #staload _ = "{$PATSPRE}/DATS/intrange.dats" (* ****** ****** *) #staload _ = "{$PATSPRE}/DATS/gorder.dats" #staload _ = "{$PATSPRE}/DATS/gnumber.dats" #staload _ = "{$PATSPRE}/DATS/grandom.dats" (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/list.dats" #staload _ = "{$PATSPRE}/DATS/list_vt.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/option.dats" #staload _ = "{$PATSPRE}/DATS/option_vt.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/array.dats" #staload _ = "{$PATSPRE}/DATS/arrayptr.dats" #staload _ = "{$PATSPRE}/DATS/arrayref.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/matrix.dats" #staload _ = "{$PATSPRE}/DATS/matrixptr.dats" #staload _ = "{$PATSPRE}/DATS/matrixref.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/stream.dats" #staload _ = "{$PATSPRE}/DATS/stream_vt.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/gprint.dats" // #staload _ = "{$PATSPRE}/DATS/tostring.dats" // (* ****** ****** *) // #staload UNSAFE = "{$PATSPRE}/SATS/unsafe.sats" #staload _(*UNSAFE*) = "{$PATSPRE}/DATS/unsafe.dats" // (* ****** ****** *) #staload _(*CHECKAST*) = "{$PATSPRE}/DATS/checkast.dats" (* ****** ****** *) #endif // end of [#ifndef SHARE_ATSPRE_STALOAD] (* ****** ****** *) (* end of [atspre_staload.hats] *) ATS2-Postiats-gmp-0.3.13/./share/HATS/atspre_staload_libats_ML.hats0000644000175000017500000000640313431250607024342 0ustar brandonbrandon(* ** This is mostly for ** staloading ATSLIB/libats/ML *) (* ****** ****** *) // // Author: Hongwei Xi // AuthorEmail: gmhwxiATgmailCOM // (* ****** ****** *) #ifndef SHARE_ATSPRE_STALOAD_LIBATS_ML #define SHARE_ATSPRE_STALOAD_LIBATS_ML 1 (* ****** ****** *) // #define LIBATS_targetloc "$PATSHOME/libats" #define LIBATSML_targetloc "$PATSHOME/libats/ML" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/basis.sats" // (* ****** ****** *) // // HX-2017-12-30: // Please do not move // the following lines: // #staload "{$LIBATSML}/SATS/atspre.sats" #staload _ = "{$LIBATSML}/DATS/atspre.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/string.sats" #staload "{$LIBATSML}/SATS/strarr.sats" #staload _ = "{$LIBATSML}/DATS/string.dats" #staload _ = "{$LIBATSML}/DATS/strarr.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/list0.sats" #staload _ = "{$LIBATSML}/DATS/list0.dats" // #staload "{$LIBATSML}/SATS/list0_vt.sats" #staload _ = "{$LIBATSML}/DATS/list0_vt.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/option0.sats" #staload _ = "{$LIBATSML}/DATS/option0.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/array0.sats" #staload "{$LIBATSML}/SATS/matrix0.sats" #staload _ = "{$LIBATSML}/DATS/array0.dats" #staload _ = "{$LIBATSML}/DATS/matrix0.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/stream.sats" #staload _ = "{$LIBATSML}/DATS/stream.dats" // #staload "{$LIBATSML}/SATS/stream_vt.sats" #staload _ = "{$LIBATSML}/DATS/stream_vt.dats" // (* ****** ****** *) staload "{$LIBATSML}/SATS/argvec.sats" (* ****** ****** *) // #staload "{$LIBATSML}/SATS/gvalue.sats" #staload _ = "{$LIBATSML}/DATS/gvalue.dats" // #staload "{$LIBATSML}/SATS/filebas.sats" #staload _ = "{$LIBATSML}/DATS/filebas.dats" #staload _ = "{$LIBATSML}/DATS/filebas_dirent.dats" // #staload "{$LIBATSML}/SATS/intrange.sats" #staload _ = "{$LIBATSML}/DATS/intrange.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/stdlib.sats" #staload _ = "{$LIBATSML}/DATS/stdlib.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/funmap.sats" #staload "{$LIBATSML}/SATS/funset.sats" // #staload _ = "{$LIBATSML}/DATS/funmap.dats" #staload _ = "{$LIBATSML}/DATS/funset.dats" // #staload _ = "{$LIBATS}/DATS/funmap_avltree.dats" #staload _ = "{$LIBATS}/DATS/funset_avltree.dats" // (* ****** ****** *) // #staload _ = "{$LIBATS}/DATS/dynarray.dats" // #staload "{$LIBATSML}/SATS/dynarray.sats" #staload _ = "{$LIBATSML}/DATS/dynarray.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/qlistref.sats" #staload "{$LIBATSML}/SATS/slistref.sats" #staload _ = "{$LIBATSML}/DATS/qlistref.dats" #staload _ = "{$LIBATSML}/DATS/slistref.dats" // (* ****** ****** *) // #staload _ = "{$LIBATS}/DATS/qlist.dats" #staload _ = "{$LIBATS}/DATS/hashfun.dats" #staload _ = "{$LIBATS}/DATS/linmap_list.dats" #staload _ = "{$LIBATS}/DATS/hashtbl_chain.dats" // #staload "{$LIBATSML}/SATS/hashtblref.sats" #staload _ = "{$LIBATSML}/DATS/hashtblref.dats" // (* ****** ****** *) // (* // // HX-2017-10-30: // See ML/BOXED/staloadall.hats // #staload "{$LIBATSML}/BOXED/funmap.dats" #staload "{$LIBATSML}/BOXED/funarray.dats" #staload "{$LIBATSML}/BOXED/hashtblref.dats" *) // (* ****** ****** *) #endif // SHARE_ATSPRE_STALOAD_LIBATS_ML (* ****** ****** *) (* end of [atslib_staload_libats_ML.hats] *) ATS2-Postiats-gmp-0.3.13/./share/H/0000755000175000017500000000000013431250607016153 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./share/H/pats_atslib.h0000644000175000017500000000344213431250607020634 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ #ifndef PATS_ATSLIB_H #define PATS_ATSLIB_H /* ****** ****** */ #include // for [errno] #include // for [perror] /* ****** ****** */ #define \ ATSLIBfailexit(cmd) \ do { \ fprintf(stderr, "exit(ATSLIB): [%s] failed\n", cmd) ; exit(1) ; \ } while (0) \ /* ****** ****** */ #define \ ATSLIBfailexit2(cmd) \ do { \ perror(cmd) ; \ fprintf(stderr, "exit(ATSLIB): [%s] failed\n", cmd) ; exit(1) ; \ } while (0) \ /* ****** ****** */ #endif // ifndef PATS_ATSLIB_H /* ****** ****** */ /* end of [pats_atslib.h] */ ATS2-Postiats-gmp-0.3.13/./share/H/.keeper0000644000175000017500000000000013431250607017415 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./share/atspre_staload.hats0000644000175000017500000000505513431250607021657 0ustar brandonbrandon(* ****** ****** *) (* ** This is just for staloading ** template code in ATSLIB/prelude *) (* ****** ****** *) // // Author: Hongwei Xi // AuthorEmail: gmhwxiATgmailCOM // (* ****** ****** *) #ifndef SHARE_ATSPRE_STALOAD #define SHARE_ATSPRE_STALOAD 1 (* ****** ****** *) // #define PATSPRE_targetloc "$PATSHOME/prelude" // for ATSPRE // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/basics.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/integer.dats" #staload _ = "{$PATSPRE}/DATS/pointer.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/integer_long.dats" #staload _ = "{$PATSPRE}/DATS/integer_size.dats" #staload _ = "{$PATSPRE}/DATS/integer_short.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/char.dats" // #staload _ = "{$PATSPRE}/DATS/bool.dats" // #staload _ = "{$PATSPRE}/DATS/float.dats" // #staload _ = "{$PATSPRE}/DATS/string.dats" #staload _ = "{$PATSPRE}/DATS/strptr.dats" // #staload _ = "{$PATSPRE}/DATS/integer_ptr.dats" #staload _ = "{$PATSPRE}/DATS/integer_fixed.dats" // (* ****** ****** *) // #staload _(*TUPLE*) = "{$PATSPRE}/DATS/tuple.dats" // (* ****** ****** *) #staload _ = "{$PATSPRE}/DATS/memory.dats" #staload _ = "{$PATSPRE}/DATS/reference.dats" (* ****** ****** *) #staload _ = "{$PATSPRE}/DATS/filebas.dats" #staload _ = "{$PATSPRE}/DATS/intrange.dats" (* ****** ****** *) #staload _ = "{$PATSPRE}/DATS/gorder.dats" #staload _ = "{$PATSPRE}/DATS/gnumber.dats" #staload _ = "{$PATSPRE}/DATS/grandom.dats" (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/list.dats" #staload _ = "{$PATSPRE}/DATS/list_vt.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/option.dats" #staload _ = "{$PATSPRE}/DATS/option_vt.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/array.dats" #staload _ = "{$PATSPRE}/DATS/arrayptr.dats" #staload _ = "{$PATSPRE}/DATS/arrayref.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/matrix.dats" #staload _ = "{$PATSPRE}/DATS/matrixptr.dats" #staload _ = "{$PATSPRE}/DATS/matrixref.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/stream.dats" #staload _ = "{$PATSPRE}/DATS/stream_vt.dats" // (* ****** ****** *) // #staload _ = "{$PATSPRE}/DATS/gprint.dats" // #staload _ = "{$PATSPRE}/DATS/tostring.dats" // (* ****** ****** *) // #staload UNSAFE = "{$PATSPRE}/SATS/unsafe.sats" #staload _(*UNSAFE*) = "{$PATSPRE}/DATS/unsafe.dats" // (* ****** ****** *) #staload _(*CHECKAST*) = "{$PATSPRE}/DATS/checkast.dats" (* ****** ****** *) #endif // end of [#ifndef SHARE_ATSPRE_STALOAD] (* ****** ****** *) (* end of [atspre_staload.hats] *) ATS2-Postiats-gmp-0.3.13/./share/Makefile.gen0000644000175000017500000000171613431250607020201 0ustar brandonbrandon# # A Makefile for processing [Makefile.atxt] # to generate Makefiles that do the actual work # ###### # # Author: Hongwei Xi (gmhwxiATgmailCOM) # ###### ATSHOMEQ="$(ATSHOME)" ###### ATSCC=$(ATSHOMEQ)/bin/atscc ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### Makefile: Makefile.exe ; ./$< > $@ Makefile.exe: Makefile_atxt.dats $(ATSCC) $(GCFLAG) -o $@ $< -latsdoc Makefile_atxt.dats: Makefile.atxt $(ATSDOC) --outcode $@ -i $< > Makefile_atxt.txt ###### Makefile2: Makefile2.exe ; ./$< > $@ Makefile2.exe: Makefile2_atxt.dats $(ATSCC) $(GCFLAG) -o $@ $< -latsdoc Makefile2_atxt.dats: Makefile2.atxt $(ATSDOC) --outcode $@ -i $< > Makefile2_atxt.txt ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats clean:: ; $(RMF) Makefile.exe clean:: ; $(RMF) Makefile2.exe cleanall:: clean cleanall:: ; $(RMF) Makefile cleanall:: ; $(RMF) Makefile2 ###### ###### end of [Makefile.gen] ###### ATS2-Postiats-gmp-0.3.13/./share/atsmake-post.mk0000644000175000017500000000541213431250607020727 0ustar brandonbrandon# # For building Makefiles for projects in ATS # ###### # # Author: Hongwei Xi # Author: Ian Denhardt # ###### # # HX: for convenience # PATSCC2=$(PATSCC) $(INCLUDE) $(INCLUDE_ATS) # ###### ifdef MYTARGET $(MYTARGET)_C_O := \ $(patsubst %.c, %_c.o, $(SOURCES_C)) $(MYTARGET)_SATS_O := \ $(patsubst %.sats, %_sats.o, $(SOURCES_SATS)) $(MYTARGET)_DATS_O := \ $(patsubst %.dats, %_dats.o, $(SOURCES_DATS)) endif ###### ifdef MYTARGET ifeq ($(strip $(MYTARGET)),MYTARGET) else all:: $(MYTARGET) $(MYTARGET): \ $($(MYTARGET)_C_O) \ $($(MYTARGET)_SATS_O) \ $($(MYTARGET)_DATS_O) ; \ $(PATSCC) $(INCLUDE) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(EXTRAFLAGS) cleanall:: ; $(RMF) $(MYTARGET) endif # end of [ifeq] endif # end of [ifdef] ###### # # HX-2013-12-28: # generating *_?ats.c files is mainly for debugging # ifdef MYCCRULE else %_sats.c: %.sats ; $(PATSCC) $(INCLUDE_ATS) -o $@ -ccats $< %_dats.c: %.dats ; $(PATSCC) $(INCLUDE_ATS) -o $@ -ccats $< endif # ###### # # For compiling ATS source directly # ifdef MYCCRULE else %_sats.o: %.sats ; \ $(PATSCC) -cleanaft $(INCLUDE) $(INCLUDE_ATS) $(CFLAGS) -o $@ -c $< %_dats.o: %.dats ; \ $(PATSCC) -cleanaft $(INCLUDE) $(INCLUDE_ATS) $(MALLOCFLAG) $(CFLAGS) -o $@ -c $< endif # ###### # # For compiling C code generated from ATS source # ifeq ($(strip $(MYCCRULE)),PORTABLE) # %_sats.o: %_sats.c ; $(CC) $(INCLUDE) $(CFLAGS) -o $@ -c $< %_dats.o: %_dats.c ; $(CC) $(INCLUDE) $(MALLOCFLAG) $(CFLAGS) -o $@ -c $< # endif # ###### # # For generating portable C code # ifdef MYPORTDIR # $(MYPORTDIR)/Makefile: Makefile ; cp -f $< $@ # $(MYPORTDIR)_SATS_C := \ $(patsubst %.sats, $(MYPORTDIR)/%_sats.c, $(SOURCES_SATS)) $(MYPORTDIR)_DATS_C := \ $(patsubst %.dats, $(MYPORTDIR)/%_dats.c, $(SOURCES_DATS)) # $(MYPORTDIR):: $(MYPORTDIR)/Makefile $(MYPORTDIR):: $($(MYPORTDIR)_SATS_C) $(MYPORTDIR):: $($(MYPORTDIR)_DATS_C) # ifdef MYPORTCPP else $(MYPORTDIR)/%_sats.c: %.sats ; $(PATSOPT) $(INCLUDE_ATS) -o $@ -s $< $(MYPORTDIR)/%_dats.c: %.dats ; $(PATSOPT) $(INCLUDE_ATS) -o $@ -d $< endif # ifdef MYPORTCPP $(MYPORTDIR)/%_sats.c: %.sats ; \ $(PATSCC) -cleanaft -E $(INCLUDE) $(INCLUDE_ATS) $(CFLAGS) -o $@ $< $(MYPORTDIR)/%_dats.c: %.dats ; \ $(PATSCC) -cleanaft -E $(INCLUDE) $(INCLUDE_ATS) $(MALLOCFLAG) $(CFLAGS) -o $@ $< endif # endif # ###### # -include .depend # depend:: ; $(RMF) .depend # ifeq ("$(strip $(SOURCES_SATS))","") else depend:: ; $(PATSOPT) --output-a .depend --depgen -s $(SOURCES_SATS) endif ifeq ("$(strip $(SOURCES_DATS))","") else depend:: ; $(PATSOPT) --output-a .depend --depgen -d $(SOURCES_DATS) endif # ###### CPF=cp -f RMF=rm -f RMRF=rm -rf ###### cleanats:: ; $(RMF) *~ cleanats:: ; $(RMF) *_?ats.o ###### clean: cleanats ###### cleanall:: cleanats cleanall:: ; $(RMF) .depend ###### ###### end of [atsmake-post.mk] ###### ATS2-Postiats-gmp-0.3.13/./share/atspre_define.hats0000644000175000017500000000036513431250607021461 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2013-09: ** This file contains toplevel defines *) (* ****** ****** *) // (* ** Various defines for packages *) #include "./HATS/atspre_define_pkgreloc.hats" // (* ****** ****** *) (* end of [atspre_define.hats] *) ATS2-Postiats-gmp-0.3.13/./share/.keeper0000644000175000017500000000000013431250607017226 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./share/atsmake-pre.mk0000644000175000017500000000274213431250607020533 0ustar brandonbrandon# # For building Makefiles for projects in ATS # ###### # # Author: Hongwei Xi (githwxi) # Author: Ian Denhardt (zenhack.net) # ###### # CC=gcc # ###### # ifdef \ PATSHOME PATSHOMEQ="$(PATSHOME)" else # ifdef ATSHOME PATSHOMEQ="$(ATSHOME)" else PATSHOMEQ="/usr/local/lib/ats2-postiats" endif # end of [ifdef] # endif # end of [ifdef] # ###### # # ifdef \ # PATSHOMERELOC # PATSHOMERELOCQ="$(PATSHOMERELOC)" # else # ifdef \ # ATSHOMERELOC # PATSHOMERELOCQ="$(ATSHOMERELOC)" # else # PATSHOMERELOCQ="/usr/local/lib/ats2-postiats" # endif # end of [ifdef] # endif # end of [ifdef] # ###### # PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt PATSLIB=$(PATSHOMEQ)/ccomp/atslib/lib # # PATSLIB32=$(PATSHOMEQ)/ccomp/atslib/lib32 # PATSLIB64=$(PATSHOMEQ)/ccomp/atslib/lib64 # ###### # ifdef \ PATSCCOMP else export \ PATSCCOMP=$(CC) -std=c99 -D_XOPEN_SOURCE endif # ###### PATS2XHTML=$(PATSHOMEQ)/bin/pats2xhtml ###### INCLUDE += -I$(PATSHOMEQ) INCLUDE += -I$(PATSHOMEQ)/ccomp/runtime ###### CFLAGS += -D_GNU_SOURCE ###### # LDFLAGS += -L$(PATSLIB) # LDFLAGS += -L$(PATSLIB32) # LDFLAGS += -L$(PATSLIB64) # LDFLAGS += -latslib # ###### EXTRAFLAGS = ###### MALLOCFLAG := -DATS_MEMALLOC_LIBC ###### # # ifdef \ # PATSHOMERELOCQ # INCLUDE += -I$(PATSHOMERELOCQ)/contrib # INCLUDE_ATS += -IATS $(PATSHOMERELOCQ)/contrib # endif # end of [ifdef] # ###### SOURCES_C= SOURCES_SATS= SOURCES_DATS= ###### all:: cleanats:: cleanall:: ###### ###### end of [atsmake-pre.mk] ###### ATS2-Postiats-gmp-0.3.13/./share/atspre_staload_libats_ML.hats0000644000175000017500000000640313431250607023603 0ustar brandonbrandon(* ** This is mostly for ** staloading ATSLIB/libats/ML *) (* ****** ****** *) // // Author: Hongwei Xi // AuthorEmail: gmhwxiATgmailCOM // (* ****** ****** *) #ifndef SHARE_ATSPRE_STALOAD_LIBATS_ML #define SHARE_ATSPRE_STALOAD_LIBATS_ML 1 (* ****** ****** *) // #define LIBATS_targetloc "$PATSHOME/libats" #define LIBATSML_targetloc "$PATSHOME/libats/ML" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/basis.sats" // (* ****** ****** *) // // HX-2017-12-30: // Please do not move // the following lines: // #staload "{$LIBATSML}/SATS/atspre.sats" #staload _ = "{$LIBATSML}/DATS/atspre.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/string.sats" #staload "{$LIBATSML}/SATS/strarr.sats" #staload _ = "{$LIBATSML}/DATS/string.dats" #staload _ = "{$LIBATSML}/DATS/strarr.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/list0.sats" #staload _ = "{$LIBATSML}/DATS/list0.dats" // #staload "{$LIBATSML}/SATS/list0_vt.sats" #staload _ = "{$LIBATSML}/DATS/list0_vt.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/option0.sats" #staload _ = "{$LIBATSML}/DATS/option0.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/array0.sats" #staload "{$LIBATSML}/SATS/matrix0.sats" #staload _ = "{$LIBATSML}/DATS/array0.dats" #staload _ = "{$LIBATSML}/DATS/matrix0.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/stream.sats" #staload _ = "{$LIBATSML}/DATS/stream.dats" // #staload "{$LIBATSML}/SATS/stream_vt.sats" #staload _ = "{$LIBATSML}/DATS/stream_vt.dats" // (* ****** ****** *) staload "{$LIBATSML}/SATS/argvec.sats" (* ****** ****** *) // #staload "{$LIBATSML}/SATS/gvalue.sats" #staload _ = "{$LIBATSML}/DATS/gvalue.dats" // #staload "{$LIBATSML}/SATS/filebas.sats" #staload _ = "{$LIBATSML}/DATS/filebas.dats" #staload _ = "{$LIBATSML}/DATS/filebas_dirent.dats" // #staload "{$LIBATSML}/SATS/intrange.sats" #staload _ = "{$LIBATSML}/DATS/intrange.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/stdlib.sats" #staload _ = "{$LIBATSML}/DATS/stdlib.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/funmap.sats" #staload "{$LIBATSML}/SATS/funset.sats" // #staload _ = "{$LIBATSML}/DATS/funmap.dats" #staload _ = "{$LIBATSML}/DATS/funset.dats" // #staload _ = "{$LIBATS}/DATS/funmap_avltree.dats" #staload _ = "{$LIBATS}/DATS/funset_avltree.dats" // (* ****** ****** *) // #staload _ = "{$LIBATS}/DATS/dynarray.dats" // #staload "{$LIBATSML}/SATS/dynarray.sats" #staload _ = "{$LIBATSML}/DATS/dynarray.dats" // (* ****** ****** *) // #staload "{$LIBATSML}/SATS/qlistref.sats" #staload "{$LIBATSML}/SATS/slistref.sats" #staload _ = "{$LIBATSML}/DATS/qlistref.dats" #staload _ = "{$LIBATSML}/DATS/slistref.dats" // (* ****** ****** *) // #staload _ = "{$LIBATS}/DATS/qlist.dats" #staload _ = "{$LIBATS}/DATS/hashfun.dats" #staload _ = "{$LIBATS}/DATS/linmap_list.dats" #staload _ = "{$LIBATS}/DATS/hashtbl_chain.dats" // #staload "{$LIBATSML}/SATS/hashtblref.sats" #staload _ = "{$LIBATSML}/DATS/hashtblref.dats" // (* ****** ****** *) // (* // // HX-2017-10-30: // See ML/BOXED/staloadall.hats // #staload "{$LIBATSML}/BOXED/funmap.dats" #staload "{$LIBATSML}/BOXED/funarray.dats" #staload "{$LIBATSML}/BOXED/hashtblref.dats" *) // (* ****** ****** *) #endif // SHARE_ATSPRE_STALOAD_LIBATS_ML (* ****** ****** *) (* end of [atslib_staload_libats_ML.hats] *) ATS2-Postiats-gmp-0.3.13/./bin/0000755000175000017500000000000013431250607015432 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./bin/patsopt_env.sh.in0000644000175000017500000000135413431250607020740 0ustar brandonbrandon#!/bin/sh ###### # # beg of [patsopt_env.sh.in] # ###### # # Author: # Likai Liu (likaiATcsDOTbuDOTedu) # Author2: # Hongwei Xi (gmhwxiATgmailDOTcom) // September, 2013 # ###### # PACKAGE_VERSION=@PACKAGE_VERSION@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ # prefix=@prefix@ if [ ! "$PATSHOME" ] ; then export PATSHOME="$prefix/lib/${PACKAGE_TARNAME}-${PACKAGE_VERSION}" fi if [ ! -d "$PATSHOME" ] ; then echo "ATS-Postiats should have been available at '${PATSHOME}'"; exit 1 fi prog=`basename $0` case $prog in patsopt) exec "$PATSHOME/bin/$prog" "$@" ;; *) echo "This is a script for patsopt." echo "The script should be symbolically named as [patsopt]." exit 1 ;; esac ###### # # end of [patsopt_env.sh.in] # ###### ATS2-Postiats-gmp-0.3.13/./bin/myatscc_env.sh.in0000644000175000017500000000135413431250607020711 0ustar brandonbrandon#!/bin/sh ###### # # beg of [myatscc_env.sh.in] # ###### # # Author: # Likai Liu (likaiATcsDOTbuDOTedu) # Author2: # Hongwei Xi (gmhwxiATgmailDOTcom) // September, 2013 # ###### # PACKAGE_VERSION=@PACKAGE_VERSION@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ # prefix=@prefix@ if [ ! "$PATSHOME" ] ; then export PATSHOME="$prefix/lib/${PACKAGE_TARNAME}-${PACKAGE_VERSION}" fi if [ ! -d "$PATSHOME" ] ; then echo "ATS-Postiats should have been available at '${PATSHOME}'"; exit 1 fi prog=`basename $0` case $prog in myatscc) exec "$PATSHOME/bin/$prog" "$@" ;; *) echo "This is a script for myatscc." echo "The script should be symbolically named as [myatscc]." exit 1 ;; esac ###### # # end of [myatscc_env.sh.in] # ###### ATS2-Postiats-gmp-0.3.13/./bin/.keeper0000644000175000017500000000000013431250607016674 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./bin/patscc_env.sh.in0000644000175000017500000000134713431250607020525 0ustar brandonbrandon#!/bin/sh ###### # # beg of [patscc_env.sh.in] # ###### # # Author: # Likai Liu (likaiATcsDOTbuDOTedu) # Author2: # Hongwei Xi (gmhwxiATgmailDOTcom) // September, 2013 # ###### # PACKAGE_VERSION=@PACKAGE_VERSION@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ # prefix=@prefix@ if [ ! "$PATSHOME" ] ; then export PATSHOME="$prefix/lib/${PACKAGE_TARNAME}-${PACKAGE_VERSION}" fi if [ ! -d "$PATSHOME" ] ; then echo "ATS-Postiats should have been available at '${PATSHOME}'"; exit 1 fi prog=`basename $0` case $prog in patscc) exec "$PATSHOME/bin/$prog" "$@" ;; *) echo "This is a script for patscc." echo "The script should be symbolically named as [patscc]." exit 1 ;; esac ###### # # end of [patscc_env.sh.in] # ###### ATS2-Postiats-gmp-0.3.13/./config.h0000644000175000017500000000350313431250607016301 0ustar brandonbrandon/* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #define HAVE_GMP_H 1 /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the `memalign' function. */ #define HAVE_MEMALIGN 1 /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the `posix_memalign' function. */ #define HAVE_POSIX_MEMALIGN 1 /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "gmpostiats@gmail.com" /* Define to the full name of this package. */ #define PACKAGE_NAME "ATS2/Postiats" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "ATS2/Postiats 0.3.13" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "ats2-postiats" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Define to the version of this package. */ #define PACKAGE_VERSION "0.3.13" /* The size of `void*', as computed by sizeof. */ #define SIZEOF_VOIDP 8 /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 ATS2-Postiats-gmp-0.3.13/./configure0000755000175000017500000043537213431250607016607 0ustar brandonbrandon#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for ATS2/Postiats 0.3.13. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: gmpostiats@gmail.com about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ATS2/Postiats' PACKAGE_TARNAME='ats2-postiats' PACKAGE_VERSION='0.3.13' PACKAGE_STRING='ATS2/Postiats 0.3.13' PACKAGE_BUGREPORT='gmpostiats@gmail.com' PACKAGE_URL='' ac_unique_file="config.h.in" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS HAVE_LIBGMP EGREP GREP CPP LN_S MKDIR_P INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ATS2/Postiats 0.3.13 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/ats2-postiats] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ATS2/Postiats 0.3.13:";; esac cat <<\_ACEOF Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF ATS2/Postiats configure 0.3.13 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ----------------------------------- ## ## Report this to gmpostiats@gmail.com ## ## ----------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ATS2/Postiats $as_me 0.3.13, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" ac_config_files="$ac_config_files config.mk" ac_config_files="$ac_config_files bin/patscc_env.sh" ac_config_files="$ac_config_files bin/myatscc_env.sh" ac_config_files="$ac_config_files bin/patsopt_env.sh" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in gmp.h do : ac_fn_c_check_header_mongrel "$LINENO" "gmp.h" "ac_cv_header_gmp_h" "$ac_includes_default" if test "x$ac_cv_header_gmp_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GMP_H 1 _ACEOF fi done HAVE_LIBGMP=${ac_cv_header_gmp_h%no} # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void*" >&5 $as_echo_n "checking size of void*... " >&6; } if ${ac_cv_sizeof_voidp+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void*))" "ac_cv_sizeof_voidp" "$ac_includes_default"; then : else if test "$ac_cv_type_voidp" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void*) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_voidp=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_voidp" >&5 $as_echo "$ac_cv_sizeof_voidp" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_VOIDP $ac_cv_sizeof_voidp _ACEOF for ac_func in posix_memalign memalign do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by ATS2/Postiats $as_me 0.3.13, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ ATS2/Postiats config.status 0.3.13 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "config.mk") CONFIG_FILES="$CONFIG_FILES config.mk" ;; "bin/patscc_env.sh") CONFIG_FILES="$CONFIG_FILES bin/patscc_env.sh" ;; "bin/myatscc_env.sh") CONFIG_FILES="$CONFIG_FILES bin/myatscc_env.sh" ;; "bin/patsopt_env.sh") CONFIG_FILES="$CONFIG_FILES bin/patsopt_env.sh" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ATS2-Postiats-gmp-0.3.13/./libats/0000755000175000017500000000000013431250607016140 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/DATS/0000755000175000017500000000000013431250607016673 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/DATS/bitvec.dats0000644000175000017500000004111313431250607021024 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2014-12: // ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/bitvec.sats" (* ****** ****** *) macdef U0 = $UN.cast{uintptr}(0) macdef U1 = $UN.cast{uintptr}(1) macdef U_1 = $UN.cast{uintptr}(~1) (* ****** ****** *) macdef uintptr_p_inc(p) = ptr_succ (,(p)) macdef uintptr_p_get(p) = $UN.ptr0_get (,(p)) macdef uintptr_p_set(p, x) = $UN.ptr0_set (,(p), ,(x)) (* ****** ****** *) // implement {}(*tmp*) bitvec_get_wordsize ( // argumentless ) = $UN.cast{intGt(0)}(8*sz2i(sizeof)) // implement {}(*tmp*) bitvec_get_wordsize_log ( // argumentless ) = $effmask_all ( let val wsz = bitvec_get_wordsize() in // case+ 0 of | _ when wsz=16 => 4 | _ when wsz=32 => 5 | _ when wsz=64 => 6 | _ (* unsupported *) => let val () = assertloc(false) in 0 end // end // end of [let] ) (* end of [$effmask_all] *) // (* ****** ****** *) implement {}(*tmp*) bitvecptr_make_none {n}(nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // in // $UN.castvwtp0{bitvecptr(n)} (arrayptr_make_elt (i2sz(asz), U0)) // end // end of [bitvecptr_make_none] (* ****** ****** *) implement {}(*tmp*) bitvecptr_make_full {n}(nbit) = vec where { // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // val extra = $UN.cast{intGte(0)}((asz << log) - nbit) // val vec = $UN.castvwtp0{bitvecptr(n)} (arrayptr_make_elt (i2sz(asz), U_1)) // val () = if extra > 0 then $UN.ptr0_set_at(ptrcast(vec), asz-1, U_1 >> extra) // end of [if] // } (* end of [bitvecptr_make_full] *) (* ****** ****** *) // implement {}(*tmp*) bitvecptr_free (vec) = arrayptr_free($UN.castvwtp0{arrayptr(intptr,0)}(vec)) // (* ****** ****** *) implement {}(*tmp*) bitvec_get_at (vec, i) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () // val j = (i >> log) val k = i - (j << log) val k = $UN.cast{intGte(0)}(k) // val w = $UN.ptr0_get_at (addr@vec, j) // in $UN.cast{bit}((w >> k) land U1) end // end of [bitvec_get_at] (* ****** ****** *) implement {}(*tmp*) bitvec_set_at (vec, i, b) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () // val j = (i >> log) val k = i - (j << log) val k = $UN.cast{intGte(0)}(k) // val p = ptr_add (addr@vec, j) // val m = U1 << k val w = uintptr_p_get (p) // in // if b > 0 then uintptr_p_set (p, w lor m) else uintptr_p_set (p, w land ~m) // end // end of [bitvec_set_at] (* ****** ****** *) implement {}(*tmp*) bitvec_flip_at (vec, i) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () // val j = (i >> log) val k = i - (j << log) val k = $UN.cast{intGte(0)}(k) // val p = ptr_add (addr@vec, j) // val m = U1 << k val w = uintptr_p_get (p) // in uintptr_p_set (p, w lxor m) end // end of [bitvec_flip_at] (* ****** ****** *) implement {}(*tmp*) bitvecptr_get_at {l}{n} (bvp, i) = bit where { // val (pf, fpf | p) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp)) val bit = bitvec_get_at (!p, i) prval ((*void*)) = fpf (pf) // } (* end of [bitvecptr_get_at] *) (* ****** ****** *) implement {}(*tmp*) bitvecptr_set_at {l}{n} (bvp, i, bit) = { // val (pf, fpf | p) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp)) val bit = bitvec_set_at (!p, i, bit) prval ((*void*)) = fpf (pf) // } (* end of [bitvecptr_set_at] *) (* ****** ****** *) implement {}(*tmp*) bitvecptr_flip_at {l}{n} (bvp, i) = { // val (pf, fpf | p) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp)) val bit = bitvec_flip_at (!p, i) prval ((*void*)) = fpf (pf) // } (* end of [bitvecptr_flip_at] *) (* ****** ****** *) implement {}(*tmp*) bitvec_is_none (vec, nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // fun loop{n:nat} .. ( p: ptr, n: int(n) ) :<> bool = ( // if n > 0 then let // val i = uintptr_p_get (p) // in if i = U0 then loop (uintptr_p_inc (p), n-1) else false // end of [if] end // end of [then] else true // end of [else] // ) (* end of [loop] *) // in loop (addr@vec, asz) end // end of [bitvec_is_none] (* ****** ****** *) implement {}(*tmp*) bitvecptr_is_none {l}{n} (bvp, nbit) = ans where { // val (pf, fpf | p) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp)) val ans = bitvec_is_none (!p, nbit) prval ((*void*)) = fpf (pf) // } (* end of [bitvecptr_is_none] *) (* ****** ****** *) implement {}(*tmp*) bitvec_is_full (vec, nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // fun loop{n:nat} .. ( p: ptr, n: int(n) ) :<> bool = ( // if n > 1 then let val i = uintptr_p_get (p) in if i = U_1 then loop (uintptr_p_inc (p), n-1) else false end // end of [then] else true // end of [else] // ) (* end of [loop] *) // in // if nbit > 0 then ( // if loop (addr@vec, asz) then let val extra = $UN.cast{intGte(0)}((asz << log) - nbit) // end of [val] in $UN.ptr0_get_at (addr@vec, asz-1) = (U_1 >> extra) end // end of [then] else false // end of [else] // ) (* end of [then] *) else true // end of [else] // end // end of [bitvec_is_full] (* ****** ****** *) implement {}(*tmp*) bitvecptr_is_full {l}{n} (bvp, nbit) = ans where { // val (pf, fpf | p) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp)) val ans = bitvec_is_full (!p, nbit) prval ((*void*)) = fpf (pf) // } (* end of [bitvecptr_is_full] *) (* ****** ****** *) implement {}(*tmp*) bitvec_equal (vec1, vec2, nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // fun loop{n:nat} .. ( p1: ptr, p2: ptr, n: int(n) ) :<> bool = ( // if n > 0 then let val i1 = uintptr_p_get (p1) and i2 = uintptr_p_get (p2) in if i1 = i2 then let val p1 = uintptr_p_inc (p1) and p2 = uintptr_p_inc (p2) in loop (p1, p2, n-1) end // end of [then] else false // end of [else] // end of [if] end else true // end of [if] // ) (* end of [loop] *) // in loop (addr@vec1, addr@vec2, asz) end // end of [bitvec_equal] (* ****** ****** *) // implement {}(*tmp*) bitvec_notequal (vec1, vec2, nbit) = not(bitvec_equal(vec1, vec2, nbit)) // (* ****** ****** *) implement {}(*tmp*) bitvecptr_equal {l1,l2}{n} (bvp1, bvp2, nbit) = ans where { // val (pf1, fpf1 | p1) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp1)) and (pf2, fpf2 | p2) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp2)) val ans = bitvec_equal (!p1, !p2, nbit) // prval () = fpf1 (pf1) and () = fpf2 (pf2) // } (* end of [bitvecptr_equal] *) (* ****** ****** *) // implement {}(*tmp*) bitvecptr_notequal (bvp1, bvp2, nbit) = not(bitvecptr_equal(bvp1, bvp2, nbit)) // (* ****** ****** *) implement {}(*tmp*) bitvec_copy (vec1, vec2, nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // fun loop{n:nat} .. ( p1: ptr, p2: ptr, n: int(n) ) : void = ( // if n > 0 then let val i2 = uintptr_p_get (p2) val () = uintptr_p_set (p1, i2) val p1 = uintptr_p_inc (p1) and p2 = uintptr_p_inc (p2) in loop (p1, p2, n-1) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // in loop (addr@vec1, addr@vec2, asz) end // end of [bitvec_copy] (* ****** ****** *) implement {}(*tmp*) bitvec_lnot (vec, nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // fun loop{n:nat} .. (p: ptr, n: int(n)): ptr = ( // if n > 1 then let val i = uintptr_p_get (p) val () = uintptr_p_set (p, lnot(i)) in loop (uintptr_p_inc (p), n - 1) end // end of [then] else p // end of [else] // ) (* end of [loop] *) // in // if nbit > 0 then let val pz = loop (addr@vec, asz) val extra = $UN.cast{intGte(0)}((asz << log) - nbit) // end of [val] val i = uintptr_p_get (pz) val i2 = lnot(i) land (U_1 >> extra) val () = uintptr_p_set (pz, i2) in // nothing end // end of [then] else () // end of [else] // end // end of [bitvec_lnot] (* ****** ****** *) implement {}(*tmp*) bitvecptr_lnot {l}{n} (bvp, nbit) = let // val (pf, fpf | p) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp)) val ((*void*)) = bitvec_lnot (!p, nbit) prval ((*void*)) = fpf (pf) // in // nothing end // end of [bitvecptr_lnot] (* ****** ****** *) implement {}(*tmp*) bitvec_lor (vec1, vec2, nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // fun loop{n:nat} .. ( p1: ptr, p2: ptr, n: int(n) ) : void = ( // if n > 0 then let val i1 = uintptr_p_get (p1) val i2 = uintptr_p_get (p2) val () = uintptr_p_set (p1, i1 lor i2) val p1 = uintptr_p_inc (p1) and p2 = uintptr_p_inc (p2) in loop (p1, p2, n-1) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // in loop (addr@vec1, addr@vec2, asz) end // end of [bitvec_lor] (* ****** ****** *) implement {}(*tmp*) bitvec_lxor (vec1, vec2, nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // fun loop{n:nat} .. ( p1: ptr, p2: ptr, n: int(n) ) : void = ( // if n > 0 then let val i1 = uintptr_p_get (p1) val i2 = uintptr_p_get (p2) val () = uintptr_p_set (p1, i1 lxor i2) val p1 = uintptr_p_inc (p1) and p2 = uintptr_p_inc (p2) in loop (p1, p2, n-1) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // in loop (addr@vec1, addr@vec2, asz) end // end of [bitvec_lxor] (* ****** ****** *) implement {}(*tmp*) bitvec_land (vec1, vec2, nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // fun loop{n:nat} .. ( p1: ptr, p2: ptr, n: int(n) ) : void = ( // if n > 0 then let val i1 = uintptr_p_get (p1) val i2 = uintptr_p_get (p2) val () = uintptr_p_set (p1, i1 land i2) val p1 = uintptr_p_inc (p1) and p2 = uintptr_p_inc (p2) in loop (p1, p2, n-1) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // in loop (addr@vec1, addr@vec2, asz) end // end of [bitvec_land] (* ****** ****** *) implement {}(*tmp*) bitvecptr_lor {l1,l2}{n}(bvp1, bvp2, nbit) = let // val (pf1, fpf1 | p1) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp1)) and (pf2, fpf2 | p2) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp2)) val ((*void*)) = bitvec_lor (!p1, !p2, nbit) // prval () = fpf1 (pf1) and () = fpf2 (pf2) // in // nothing end // end of [bitvecptr_lor] (* ****** ****** *) implement {}(*tmp*) bitvecptr_lxor {l1,l2}{n} (bvp1, bvp2, nbit) = let // val (pf1, fpf1 | p1) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp1)) and (pf2, fpf2 | p2) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp2)) val ((*void*)) = bitvec_lxor (!p1, !p2, nbit) // prval () = fpf1 (pf1) and () = fpf2 (pf2) // in // nothing end // end of [bitvecptr_lxor] (* ****** ****** *) implement {}(*tmp*) bitvecptr_land {l1,l2}{n} (bvp1, bvp2, nbit) = let // val (pf1, fpf1 | p1) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp1)) and (pf2, fpf2 | p2) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp2)) val ((*void*)) = bitvec_land (!p1, !p2, nbit) // prval () = fpf1 (pf1) and () = fpf2 (pf2) // in // nothing end // end of [bitvecptr_land] (* ****** ****** *) implement {}(*tmp*) fprint_bitvec$word (out, w) = let // fun loop ( w: uintptr, n: int ) : void = ( // if n > 0 then let // val b = $UN.cast{uint}(w land U1) // in fprint_uint(out, b); loop (w >> 1, n - 1) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // in loop (w, bitvec_get_wordsize()) end // end of [fprint_bitvec$word] (* ****** ****** *) implement {}(*tmp*) fprint_bitvec (out, vec, nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // prval [n:int] EQINT() = eqint_make_gint (asz) // implement fprint_val (out, x) = fprint_bitvec$word<> (out, x) // implement fprint_array$sep<> (out) = () // in // fprint_arrayref ( out, $UN.castvwtp1{arrayref(uintptr,n)}(addr@vec), i2sz(asz) ) (* fprint_arrayref *) // end // end of [fprint_bitvec] (* ****** ****** *) implement {}(*tmp*) fprint_bitvecptr {l}{n} (out, bvp, nbit) = let // val (pf, fpf | p) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp)) val ((*void*)) = fprint_bitvec (out, !p, nbit) prval ((*void*)) = fpf (pf) // in // nothing end // end of [fprint_bitvecptr] (* ****** ****** *) implement {}(*tmp*) bitvecptr_tabulate {n}(nbit) = let // val wsz = bitvec_get_wordsize () val log = bitvec_get_wordsize_log () val asz = $UN.cast{intGte(0)}((nbit + wsz - 1) >> log) // val bvp = arrayptr_make_uninitized (i2sz(asz)) // fun loop1 ( p: ptr , i: intGte(0) , nbit: intGte(0) , w: uintptr, i2: intGte(0) ) : void = ( // if nbit > 0 then let // val b = bitvec_tabulate$fopr(i) // in // if b = 0 then ( loop1 (p, i+1, nbit-1, w, i2+1) ) (* end of [then] *) else ( loop1 (p, i+1, nbit-1, w lor (U1 << i2), i2+1) ) (* end of [else] *) // end // end of [then] else (uintptr_p_set (p, w)) // ) (* end of [loop1] *) // fun loop2 ( p: ptr, i: intGte(0), nbit: intGt(0) ) : void = ( if nbit > wsz then let // val () = loop1 (p, i, wsz, U0, 0) // in loop2 (uintptr_p_inc (p), i + wsz, nbit - wsz) end // end of [then] else ( loop1 (p, i, nbit, U0, 0) ) (* end of [else] *) // ) (* end of [loop2] *) // val () = if nbit > 0 then loop2 (ptrcast(bvp), 0, nbit) // end of [if] // in $UN.castvwtp0{bitvecptr(n)}(bvp) end // end of [bitvecptr_tabulate] (* ****** ****** *) implement {}(*tmp*) bitvec_foreach (vec, nbit) = let var env: void = () in bitvec_foreach_env (vec, nbit, env) end // end of [bitvec_foreach] (* ****** ****** *) implement {env}(*tmp*) bitvec_foreach_env (vec, nbit, env) = let // val wsz = bitvec_get_wordsize () // fun loop ( p: ptr, nbit: intGt(0), env: &env ) : void = let // var w = uintptr_p_get(p) // in // if nbit > wsz then let val () = bitvec_foreach$fwork (w, wsz, env) // in loop (uintptr_p_inc(p), nbit - wsz, env) end // end of [then] else bitvec_foreach$fwork (w, nbit, env) // end (* end of [loop] *) // in // if nbit > 0 then loop (addr@vec, nbit, env) else () // end // end of [bitvec_foreach_env] (* ****** ****** *) implement(env) bitvec_foreach$fwork (w, n, env) = let // fun loop ( w: uintptr, n: int, env: &env >> _ ) : void = ( // if n > 0 then let // val b = $UN.cast{bit}(w land U1) val () = bitvec_foreach$fworkbit(b, env) // val wsz = bitvec_get_wordsize() // in loop (w >> 1, n - 1, env) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // val wsz = bitvec_get_wordsize() // in if n <= wsz then loop (w, n, env) else loop (w, wsz, env) end // end of [bitvec_foreach$fwork] (* ****** ****** *) implement {}(*tmp*) bitvecptr_foreach (bvp, nbit) = let var env: void = () in bitvecptr_foreach_env (bvp, nbit, env) end // end of [bitvecptr_foreach] (* ****** ****** *) implement {env}(*tmp*) bitvecptr_foreach_env {l}{n} (bvp, nbit, env) = let // val (pf, fpf | p) = $UN.ptr_vtake{bitvec(n)}(ptrcast(bvp)) val ((*void*)) = bitvec_foreach_env (!p, nbit, env) prval ((*void*)) = fpf (pf) // in // nothing end // end of [bitvecptr_foreach_env] (* ****** ****** *) (* end of [bitvec.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/athread.dats0000644000175000017500000000714013431250607021162 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // An abstract thread interface // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/athread.sats" (* ****** ****** *) implement {}(*tmp*) spin_create_exn() = let // val spn = spin_create() val p_spn = spin2ptr(spn) val () = if p_spn = the_null_ptr then { // val () = fprintln! ( stderr_ref, "libats/athread: [spin_create]: failed." ) (* end of [val] *) val ((*void*)) = assertloc(false) // } // in $UN.cast{spin1}(spn) end // end of [spin_create_exn] (* ****** ****** *) implement {}(*tmp*) mutex_create_exn() = let // val mtx = mutex_create() val p_mtx = mutex2ptr(mtx) val () = if p_mtx = the_null_ptr then { // val () = fprintln! ( stderr_ref, "libats/athread: [mutex_create]: failed." ) (* end of [val] *) val ((*void*)) = assertloc(false) // } (* end of [if] *) // end of [val] // in $UN.cast{mutex1}(mtx) end // end of [mutex_create_exn] (* ****** ****** *) implement {}(*tmp*) condvar_create_exn() = let // val cvr = condvar_create() // val p_cvr = condvar2ptr(cvr) val () = if p_cvr = the_null_ptr then { // val () = fprintln! ( stderr_ref, "libats/athread: [condvar_create]: failed." ) (* end of [val] *) val ((*void*)) = assertloc(false) // } // in $UN.cast{condvar1}(cvr) end // end of [condvar_create_exn] (* ****** ****** *) implement {}(*tmp*) athread_create_cloptr (tid, fwork) = err where { // fun app ( f: () - void ): void = let val () = f () in cloptr_free($UN.castvwtp0{cloptr0}(f)) end // end of [app] // val f = $UN.castvwtp1{ptr}(fwork) val err = athread_create_funenv<>(tid, app, fwork) val () = if (err != 0) then cloptr_free($UN.castvwtp0{cloptr0}(f)) // } (* end of [athread_create_cloptr] *) (* ****** ****** *) implement {}(*tmp*) athread_create_cloptr_exn (fwork) = tid where { // var tid: lint val err = athread_create_cloptr<>(tid, fwork) // val () = if (err != 0) then { // val () = fprintln! ( stderr_ref, "libats/athread: [athread_create_cloptr_exn]: failed." ) (* end of [val] *) // } (* end of [if] *) // } (* end of [athread_create_cloptr_exn] *) (* ****** ****** *) (* end of [athread.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/dllist.dats0000644000175000017500000004353313431250607021053 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2013 *) (* ****** ****** *) // // HX-2013-02: this is a completely new effort // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/gnode.sats" (* ****** ****** *) staload "libats/SATS/dllist.sats" (* ****** ****** *) #define nullp the_null_ptr (* ****** ****** *) // extern fun{a:vt0p} g2node_make_elt (x: a): g2node1 (a) // extern fun{a:t0p} // [a] is nonlinear g2node_free (nx: g2node1 (INV(a))): void extern fun{a:vt0p} g2node_free_elt (nx: g2node1 (INV(a)), res: &(a?) >> a): void // extern fun{a:vt0p} g2node_getfree_elt (nx: g2node1 (INV(a))): (a) // (* ****** ****** *) // extern castfn dllist_encode : {a:vt0p}{f,r:int} (g2node0 (INV(a))) -<> dllist (a, f, r) extern castfn dllist_decode : {a:vt0p}{f,r:int} (dllist (INV(a), f, r)) -<> g2node0 (a) // extern castfn dllist1_encode : {a:vt0p}{f,r:int | r > 0} (g2node1 (INV(a))) -<> dllist (a, f, r) extern castfn dllist1_decode : {a:vt0p}{f,r:int | r > 0} (dllist (INV(a), f, r)) -<> g2node1 (a) // (* ****** ****** *) implement{} dllist_nil () = dllist_encode (gnode_null ()) implement{a} dllist_sing (x) = dllist_cons
(x, dllist_nil ()) (* ****** ****** *) implement{a} dllist_cons (x, xs) = let // val nx = g2node_make_elt (x) in dllist_cons_ngc (nx, xs) // end // end of [dllist_cons] implement{a} dllist_uncons (xs) = let // val nx0 = dllist_uncons_ngc (xs) in g2node_getfree_elt (nx0) // end // end of [dllist_uncons] (* ****** ****** *) implement{a} dllist_snoc (xs, x) = let // val nx = g2node_make_elt (x) in dllist_snoc_ngc (xs, nx) // end // end of [dllist_snoc] implement{a} dllist_unsnoc (xs) = let // val nx0 = dllist_unsnoc_ngc (xs) in g2node_getfree_elt (nx0) // end // end of [dllist_unsnoc] (* ****** ****** *) implement{a} dllist_make_list (xs) = let // fun loop ( nx0: g2node1 (a), xs: List (a) ) : void = let in // case+ xs of | list_cons (x, xs) => let val nx1 = g2node_make_elt (x) // end of [val] val () = gnode_link11 (nx0, nx1) in loop (nx1, xs) end // end of [loop] | list_nil () => let val () = gnode_set_next_null (nx0) in // nothing end // end of [list_nil] // end // end of [loop] // in // case+ xs of | list_cons (x, xs) => let val nx0 = g2node_make_elt (x) val () = $effmask_all (loop (nx0, xs)) in dllist_encode (nx0) end // end of [list_cons] | list_nil () => dllist_nil () // end // end of [dllist_make_list] (* ****** ****** *) implement{} dllist_is_nil {a}{f,r} (xs) = let val nxs = $UN.castvwtp1{g2node0(a)}(xs) in $UN.cast{bool(r==0)}(gnodelst_is_nil (nxs)) end // end of [dllist_is_nil] implement{} dllist_is_cons {a}{f,r} (xs) = let val nxs = $UN.castvwtp1{g2node0(a)}(xs) in $UN.cast{bool(r > 0)}(gnodelst_is_cons (nxs)) end // end of [dllist_is_cons] (* ****** ****** *) (* fun{a:vt0p} dllist_is_atbeg {f,r:int} (xs: !dllist (INV(a), f, r)):<> bool (f==0) // end of [dllist_is_atbeg] *) implement{a} dllist_is_atbeg {f,r} (xs) = let // val nxs = $UN.castvwtp1{g2node0(a)}(xs) val iscons = gnodelst_is_cons (nxs) // val ans = ( if iscons then gnode_is_null (gnode_get_prev (nxs)) else true // end of [if] ) : bool // end of [val] // in $UN.cast{bool(f==0)}(ans) end // end of [dllist_is_atbeg] (* ****** ****** *) (* fun{a:vt0p} dllist_is_atend {f,r:int | r > 0} (xs: !dllist (INV(a), f, r)):<> bool (r==1) // end of [dllist_is_atend] *) implement{a} dllist_is_atend {f,r} (xs) = let // val nxs = $UN.castvwtp1{g2node1(a)}(xs) val ans = gnode_is_null (gnode_get_next (nxs)) // in $UN.cast{bool(r==1)}(ans) end // end of [dllist_is_atend] (* ****** ****** *) implement{a} rdllist_is_atbeg {f,r} (xs) = dllist_is_atend {f,r} (xs) implement{a} rdllist_is_atend {f,r} (xs) = dllist_is_atbeg {f,r} (xs) (* ****** ****** *) implement{a} dllist_getref_elt (xs) = let val nxs = $UN.castvwtp1{g2node1(a)}(xs) in gnode_getref_elt (nxs) // end of [val] end // end of [dllist_getref_elt] (* ****** ****** *) implement{a} dllist_getref_next (xs) = let val nxs = $UN.castvwtp1{g2node1(a)}(xs) in cptr2ptr (gnode_getref_next (nxs)) // end of [val] end // end of [dllist_getref_next] implement{a} dllist_getref_prev (xs) = let val nxs = $UN.castvwtp1{g2node1(a)}(xs) in cptr2ptr (gnode_getref_prev (nxs)) // end of [val] end // end of [dllist_getref_prev] (* ****** ****** *) implement{a} dllist_get_elt (xs) = let val p_elt = dllist_getref_elt (xs) in $UN.cptr_get (p_elt) // end of [val] end // end of [dllist_get_elt] implement{a} dllist_set_elt (xs, x0) = let val p_elt = dllist_getref_elt (xs) in $UN.cptr_set (p_elt, x0) // end of [val] end // end of [dllist_set_elt] (* ****** ****** *) (* fun{a:vt0p} dllist_length {f,r:int} (xs: !dllist (INV(a), f, r)):<> int (r) *) implement{a} dllist_length {f,r} (xs) = let // val nxs = $UN.castvwtp1{g2node0(a)}(xs) // in $UN.cast{int(r)}(gnodelst_length (nxs)) end // end of [dllist_length] (* fun{a:vt0p} rdllist_length {f,r:int} (xs: !dllist (INV(a), f, r)):<> int (f) *) implement{a} rdllist_length {f,r} (xs) = let // val nxs = $UN.castvwtp1{g2node0(a)}(xs) // in $UN.cast{int(f)}(gnodelst_rlength (nxs)) end // end of [rdllist_length] (* ****** ****** *) (* fun{a:vt0p} dllist_move {f,r:int | r > 1} (xs: dllist (INV(a), f, r)):<> dllist (a, f+1, r-1) *) implement{a} dllist_move (xs) = let val nxs = dllist1_decode (xs) in dllist_encode (gnode_get_next (nxs)) end // end of [dllist_move] (* fun{a:vt0p} dllist_move_all {f,r:int | r > 0} (xs: dllist (INV(a), f, r)):<> dllist (a, f+r-1, 1) *) implement{a} dllist_move_all {f,r} (xs) = let // val nxs = dllist1_decode (xs) val nxs_end = gnodelst_next_all (nxs) // in dllist_encode (nxs_end) end // end of [dllist_move_all] (* ****** ****** *) (* fun{a:vt0p} rdllist_move {f,r:int | f > 0} (xs: dllist (INV(a), f, r)):<> dllist (a, f-1, r+1) *) implement{a} rdllist_move (xs) = let // prval ( ) = lemma2_dllist_param (xs) // val nxs = dllist1_decode (xs) // in dllist_encode (gnode_get_prev (nxs)) end // end of [rdllist_move] (* fun{a:vt0p} rdllist_move_all {f,r:int | r >= 0} (xs: dllist (INV(a), f, r)):<> dllist (a, 0(*front*), f+r) *) implement{a} rdllist_move_all {f,r} (xs) = let // val nxs = dllist_decode (xs) val iscons = gnodelst_is_cons (nxs) val nxs_beg = ( if iscons then $effmask_all (gnodelst_prev_all (nxs)) else nxs ) : g2node0 (a) // end of [val] // in dllist_encode (nxs_beg) end // end of [rdllist_move_all] (* ****** ****** *) (* fun{a:vt0p} dllist_insert_next {f,r:int | r > 0} (xs: dllist (INV(a), f, r), x0: a): dllist (a, f, r+1) *) implement{a} dllist_insert_next (xs, x0) = let val nxs = dllist1_decode (xs) val nx0 = g2node_make_elt (x0) val () = gnode_insert_next (nxs, nx0) in dllist_encode (nxs) end // end of [dllist_insert_next] (* fun{a:vt0p} dllist_insert_prev {f,r:int | r > 0} (xs: dllist (INV(a), f, r), x0: a): dllist (a, f, r+1) *) implement{a} dllist_insert_prev (xs, x0) = let val nxs = dllist1_decode (xs) val nx0 = g2node_make_elt (x0) val () = gnode_insert_prev (nxs, nx0) in dllist_encode (nx0) end // end of [dllist_insert_prev] (* ****** ****** *) (* fun{a:vt0p} dllist_takeout {f,r:int | r > 1} (xs: &dllist (INV(a), f, r) >> dllist (a, f, r-1)): (a) *) implement{a} dllist_takeout (xs) = let val nxs = dllist1_decode (xs) val nxs_prev = gnode_get_prev (nxs) val nxs_next = gnode_get_next (nxs) val nxs_next = $UN.cast{g2node1(a)}(nxs_next) val () = gnode_link01 (nxs_prev, nxs_next) val () = (xs := dllist_encode (nxs_next)) in g2node_getfree_elt (nxs) end // end of [dllist_takeout] (* ****** ****** *) (* fun{a:vt0p} dllist_append {f1,r1:int}{f2,r2:int} ( xs1: dllist (INV(a), f1, r1), xs2: dllist (a, f2, r2) ) : dllist (a, f1, r1+f2+r2) // end of [dllist_append] *) implement{a} dllist_append {f1,r1}{f2,r2} (xs1, xs2) = let // prval () = lemma1_dllist_param (xs1) prval () = lemma1_dllist_param (xs2) // val xs2_beg = rdllist_move_all (xs2) // val iscons1 = dllist_is_cons (xs1) // in // if iscons1 then let val iscons2 = dllist_is_cons (xs2_beg) in if iscons2 then let val nxs1 = $UN.castvwtp1{g2node0(a)}(xs1) val xs1_end = dllist_move_all (xs1) val nxs1_end = dllist1_decode (xs1_end) val nxs2_beg = dllist_decode (xs2_beg) val () = gnode_link10 (nxs1_end, nxs2_beg) in dllist_encode (nxs1) end else let prval () = dllist_free_nil (xs2_beg) in xs1 end // end of [if] end else let prval () = lemma3_dllist_param (xs1) prval () = dllist_free_nil (xs1) in xs2_beg end // end of [if] // end // end of [dllist_append] (* ****** ****** *) (* fun{a:vt0p} rdllist_append {f1,r1:int}{f2,r2:int | r2 > 0} ( xs1: dllist (INV(a), f1, r1), xs2: dllist (a, f2, r2) ) : dllist (a, f1+r1+f2, r2) // end of [rdllist_append] *) implement{a} rdllist_append (xs1, xs2) = let // prval () = lemma1_dllist_param (xs1) prval () = lemma1_dllist_param (xs2) // val iscons1 = dllist_is_cons (xs1) // in // if iscons1 then let val nxs2 = $UN.castvwtp1{g2node1(a)}(xs2) val xs1_end = dllist_move_all (xs1) val xs2_beg = rdllist_move_all (xs2) val nxs1_end = dllist_decode (xs1_end) val nxs2_beg = dllist1_decode (xs2_beg) val () = gnode_link01 (nxs1_end, nxs2_beg) in dllist_encode (nxs2) end else let prval () = lemma3_dllist_param (xs1) prval () = dllist_free_nil (xs1) in xs2 end // end of [if] // end // end of [rdllist_append] (* ****** ****** *) implement{a} dllist_reverse (xs) = let // fun loop ( nxs: g2node0 (a), res: g2node1 (a) ) : g2node1 (a) = let val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx0 = nxs val nxs = gnode_get_next (nx0) val () = gnode_link11 (nx0, res) in loop (nxs, nx0) end else res // end of [if] // end // end of [loop] // val iscons = dllist_is_cons (xs) // in // if iscons then let val nxs = dllist1_decode (xs) val nx0 = nxs val nxs = gnode_get_next (nx0) val nxp = gnode_get_prev (nx0) val () = gnode_set_next_null (nx0) val res = $effmask_all (loop (nxs, nx0)) val () = gnode_link01 (nxp, res) in dllist_encode (res) end else (xs) // end of [if] // end // end of [dllist_reverse] (* ****** ****** *) implement{a} dllist_free (xs) = let // fun loop ( nxs: g2node0 (a) ) : void = let // val iscons = gnodelst_is_cons (nxs) // in // if iscons then let val nxs2 = gnode_get_next (nxs) val () = g2node_free (nxs) in loop (nxs2) end else () // end of [if] // end // end of [loop] // val nxs = dllist_decode (xs) // in $effmask_all (loop (nxs)) end // end of [dllist_free] (* ****** ****** *) (* fun{ a:vt0p}{env:vt0p } dllist_foreach_env {f,r:int} (xs: !dllist (INV(a), f, r), env: &env >> _): void *) implement {a}{env} dllist_foreach_env (xs, env) = let // fun loop ( nxs: g2node0 (a), env: &env ) : void = let val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx0 = nxs val nxs = gnode_get_next (nxs) val p_elt = gnode_getref_elt (nx0) val (pf, fpf | p_elt) = $UN.cptr_vtake {a} (p_elt) val test = dllist_foreach$cont (!p_elt, env) in if test then let val () = dllist_foreach$fwork (!p_elt, env) prval () = fpf (pf) in loop (nxs, env) end else let prval () = fpf (pf) in // nothing end // end of [if] end else () // end of [if] // end // end of [loop] // val nxs = $UN.castvwtp1{g2node0(a)}(xs) // in loop (nxs, env) end // end of [dllist_foreach_env] (* ****** ****** *) (* fun{ a:vt0p}{env:vt0p } rdllist_foreach_env {f,r:int} (xs: !dllist (INV(a), f, r), env: &env >> _): void *) implement {a}{env} rdllist_foreach_env (xs, env) = let // fun loop ( nxs: g2node1 (a), env: &env ) : void = let val nxs2 = gnode_get_prev (nxs) val iscons = gnodelst_is_cons (nxs2) in // if iscons then let val nx0 = nxs2 val p_elt = gnode_getref_elt (nx0) val (pf, fpf | p_elt) = $UN.cptr_vtake {a} (p_elt) val test = rdllist_foreach$cont (!p_elt, env) in if test then let val () = rdllist_foreach$fwork (!p_elt, env) prval () = fpf (pf) in loop (nxs2, env) end else let prval () = fpf (pf) in // nothing end // end of [if] end else () // end of [if] // end // end of [loop] // val nxs = $UN.castvwtp1{g2node0(a)}(xs) // in if gnodelst_is_cons (nxs) then loop (nxs, env) else () end // end of [rdllist_foreach_env] (* ****** ****** *) implement{} fprint_dllist$sep (out) = fprint_string (out, "->") implement{a} fprint_dllist (out, xs) = let // fun loop ( out: FILEref, nxs: g2node0 (a), i: int ) : void = let val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx0 = nxs val nxs = gnode_get_next (nx0) val () = if i > 0 then fprint_dllist$sep (out) // end of [val] val p_elt = gnode_getref_elt (nx0) val (pf, fpf | p_elt) = $UN.cptr_vtake {a} (p_elt) val () = fprint_ref (out, !p_elt) prval () = fpf (pf) in loop (out, nxs, i+1) end // end of [if] // end // end of [loop] // val nxs = $UN.castvwtp1{g2node0(a)}(xs) // in loop (out, nxs, 0) end // end of [fprint_dllist] (* ****** ****** *) implement{} fprint_rdllist$sep (out) = fprint_string (out, "<-") implement{a} fprint_rdllist (out, xs) = let // fun loop ( out: FILEref, nxs: g2node0 (a), i: int ) : void = let val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx0 = nxs val nxs = gnode_get_prev (nx0) val () = if i > 0 then fprint_rdllist$sep (out) // end of [val] val p_elt = gnode_getref_elt (nx0) val (pf, fpf | p_elt) = $UN.cptr_vtake {a} (p_elt) val () = fprint_ref (out, !p_elt) prval () = fpf (pf) in loop (out, nxs, i+1) end // end of [if] // end // end of [loop] // val nxs = $UN.castvwtp1{g2node0(a)}(xs) // val iscons = gnodelst_is_cons (nxs) // in if iscons then loop (out, gnode_get_prev (nxs), 0) else () end // end of [fprint_rdllist] (* ****** ****** *) datavtype dlnode_vtype (a:vt@ype+) = | DLNODE of (a, ptr(*next*), ptr(*prev*)) // end of [dlnode_vtype] (* ****** ****** *) vtypedef dlnode (a:vt0p) = dlnode_vtype (a) (* ****** ****** *) extern praxi dlnode_vfree {a:vt0p} (nx: dlnode (a)): void extern castfn g2node_decode {a:vt0p} (nx: g2node1 (INV(a))):<> dlnode (a) extern castfn g2node_encode {a:vt0p} (nx: dlnode (INV(a))):<> g2node1 (a) (* ****** ****** *) implement{a} g2node_make_elt (x) = let in $UN.castvwtp0{g2node1(a)}(DLNODE{a}(x, _, _)) end // end of [g2node_make_elt] (* ****** ****** *) implement{a} g2node_free (nx) = let val nx = g2node_decode (nx) val~DLNODE (_, _, _) = (nx) in (*nothing*) end // end of [g2node_free] implement{a} g2node_free_elt (nx, res) = let val nx = g2node_decode (nx) val~DLNODE (x, _, _) = (nx); val () = res := x in (*nothing*) end // end of [g2node_free_elt] implement{a} g2node_getfree_elt (nx) = let val nx = g2node_decode (nx) val~DLNODE (x, _, _) = (nx) in x end // end of [g2node_getfree_elt] (* ****** ****** *) implement(a) gnode_getref_elt (nx) = let // val nx = g2node_decode (nx) // val+@DLNODE (elt, _, _) = nx val p_elt = addr@ (elt) prval ((*void*)) = fold@ (nx) prval ((*void*)) = dlnode_vfree (nx) // in $UN.cast{cPtr1(a)}(p_elt) end // end of [gnode_getref_elt] (* ****** ****** *) implement(a) gnode_getref_next (nx) = let // val nx = g2node_decode (nx) // val+@DLNODE (_, next, _) = nx val p_next = addr@ (next) prval ((*void*)) = fold@ (nx) prval ((*void*)) = dlnode_vfree (nx) // in $UN.cast{cPtr1(g2node0(a))}(p_next) end // end of [gnode_getref_next] (* ****** ****** *) implement(a) gnode_getref_prev (nx) = let // val nx = g2node_decode (nx) // val+@DLNODE (_, _, prev) = nx val p_prev = addr@ (prev) prval ((*void*)) = fold@ (nx) prval ((*void*)) = dlnode_vfree (nx) // in $UN.cast{cPtr1(g2node0(a))}(p_prev) end // end of [gnode_getref_prev] (* ****** ****** *) implement{a} dllist_cons_ngc (nx0, xs) = let // val () = gnode_set_prev_null (nx0) val nxs = dllist_decode (xs) val () = gnode_link10 (nx0, nxs) // in dllist_encode (nx0) end // end of [dllist_cons_ngc] implement{a} dllist_uncons_ngc (xs) = let // val nxs = dllist1_decode (xs) val nxs2 = gnode_get_next (nxs) val () = gnode0_set_prev_null (nxs2) val () = xs := dllist_encode (nxs2) // in nxs end // end of [dllist_uncons_ngc] (* ****** ****** *) implement{a} dllist_snoc_ngc (xs, nx0) = let // val () = gnode_set_next_null (nx0) val nxs = dllist_decode (xs) val () = gnode_link01 (nxs, nx0) // in dllist_encode (nx0) end // end of [dllist_snoc_ngc] implement{a} dllist_unsnoc_ngc (xs) = let // val nxs = dllist1_decode (xs) val nxs2 = gnode_get_prev (nxs) val () = gnode0_set_next_null (nxs2) val () = xs := dllist_encode (nxs2) // in nxs end // end of [dllist_unsnoc_ngc] (* ****** ****** *) (* end of [dllist.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/stkarray.dats0000644000175000017500000001347413431250607021421 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: September, 2013 *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.stkarray" // #define // HX: no dynloading ATS_DYNLOADFLAG 0 // at run-time // #define // HX: prefix for external ATS_EXTERN_PREFIX "atslib_" // names // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/stkarray.sats" (* ****** ****** *) implement {a}(*tmp*) stkarray_make_cap (cap) = stk where { // val A = arrayptr_make_uninitized(cap) // val (pfat, pfgc | p) = ptr_alloc() // val (pfngc | stk) = stkarray_make_ngc_tsz{a}(pfat | p, A, cap, sizeof) // prval ((*void*)) = mfree_gcngc_v_nullify(pfgc, pfngc) // } // end of [stkarray_make_cap] (* ****** ****** *) local extern fun stkarray_get_size_tsz {a:vt0p}{m,n:int} ( stk: !stkarray (a, m, n), sizeof_t(a) ) :<> size_t(n) = "mac#%" // end-of-fun extern fun stkarray_get_capacity_tsz {a:vt0p}{m,n:int} ( stk: !stkarray (a, m, n), sizeof_t(a) ) :<> size_t(m) = "mac#%" // end-of-fun in (* in of [local] *) // implement {a}(*tmp*) stkarray_get_size (stk) = stkarray_get_size_tsz{a}(stk, sizeof) // implement {a}(*tmp*) stkarray_get_capacity (stk) = stkarray_get_capacity_tsz{a}(stk, sizeof) // end // end of [local] (* ****** ****** *) // implement {}(*tmp*) fprint_stkarray$sep (out) = fprint (out, "<-") // implement {a}(*tmp*) fprint_stkarray (out, stk) = let // val n = stkarray_get_size(stk) // prval [n:int] EQINT() = eqint_make_guint(n) // implement fprint_array$sep<> (out) = fprint_stkarray$sep<>(out) // val p_beg = stkarray_get_ptrbeg{a}(stk) // val (pf,fpf|p_beg) = $UN.ptr_vtake{array(a,n)}(p_beg) // val () = fprint_array(out, !p_beg, n) // prval () = fpf(pf) // end of [prval] // in // nothing end // end of [fprint_stkarray] // (* ****** ****** *) implement {a}(*tmp*) fprint_stkarray_sep (out, stk, sep) = let // implement {}(*tmp*) fprint_stkarray$sep (out) = fprint_string(out, sep) // in fprint_stkarray (out, stk) end // end of [fprint_stkarray_sep] (* ****** ****** *) extern fun stkarray_get_ptrcur{a:vt0p} {m,n:int} (stk: !stkarray (INV(a), m, n)):<> ptr = "mac#%" // end of [stkarray_get_ptrcur] extern fun stkarray_set_ptrcur{a:vt0p} {m,n:int} (stk: !stkarray (INV(a), m, n), ptr): void = "mac#%" // end of [stkarray_set_ptrcur] (* ****** ****** *) implement {a}(*tmp*) stkarray_insert {m,n}(stk, x0) = let // val p_cur = stkarray_get_ptrcur{a}(stk) // val ((*void*)) = $UN.ptr0_set(p_cur, x0) val ((*void*)) = stkarray_set_ptrcur{a}(stk, ptr_succ(p_cur)) // prval () = __assert (stk) where { // extern praxi __assert (!stkarray(a, m, n) >> stkarray(a, m, n+1)): void // } (* end of [prval] *) // in // nothing end // end of [stkarray_insert] (* ****** ****** *) implement {a}(*tmp*) stkarray_insert_opt (stk, x0) = let // val isnot = stkarray_isnot_full{a}(stk) // in // if isnot then let val () = stkarray_insert(stk, x0) in None_vt() end else Some_vt{a}(x0) // end // end of [stkarray_insert_opt] (* ****** ****** *) implement {a}(*tmp*) stkarray_takeout {m,n} (stk) = x0 where { // val p_cur = stkarray_get_ptrcur{a}(stk) // val p1_cur = ptr_pred(p_cur) // val x0 = $UN.ptr0_get(p1_cur) val () = stkarray_set_ptrcur{a}(stk, p1_cur) // prval () = __assert (stk) where { // extern praxi __assert (!stkarray(a, m, n) >> stkarray(a, m, n-1)): void // } (* end of [prval] *) // } // end of [stkarray_takeout] (* ****** ****** *) implement {a}(*tmp*) stkarray_takeout_opt (stk) = let // val isnot = stkarray_isnot_nil{a}(stk) // in // if isnot then let // val x0 = stkarray_takeout(stk) in Some_vt{a}(x0) // end else None_vt((*void*)) // end // end of [stkarray_takeout_opt] (* ****** ****** *) implement {a}{env} stkarray_foreach$cont(x, env) = true implement {a}(*tmp*) stkarray_foreach (stk) = let var env: void = () in stkarray_foreach_env(stk, env) end // end of [stkarray_foreach] (* ****** ****** *) implement {a}{env} stkarray_foreach_env (stk, env) = let // implement array_rforeach$cont (x, env) = stkarray_foreach$cont(x, env) implement array_rforeach$fwork (x, env) = stkarray_foreach$fwork(x, env) // val n = stkarray_get_size(stk) // prval [ n:int ] EQINT() = eqint_make_guint(n) // val p0 = stkarray_get_ptrbeg{a}(stk) val (pf,fpf|p0) = $UN.ptr0_vtake{array(a,n)}(p0) // val res = array_rforeach_env(!p0, n, env) // in let prval () = fpf(pf) in res end end // end of [stkarray_foreach_env] (* ****** ****** *) (* end of [stkarray.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/gflist.dats0000644000175000017500000001500713431250607021043 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // Time: October, 2010 // (* ****** ****** *) // // HX: generic functional lists (fully indexed) // (* ****** ****** *) // // HX-2012-11-28: ported to ATS/Postiats from ATS/Anairiats // (* ****** ****** *) staload "libats/SATS/ilist_prf.sats" (* ****** ****** *) staload "libats/SATS/gflist.sats" staload "libats/SATS/gflist_vt.sats" (* ****** ****** *) implement {a}(*tmp*) gflist_length (xs) = let // val (pf | xs) = gflist2list (xs) // in (pf | list_length (xs)) end // end of [gflist_length] (* ****** ****** *) // implement {a}(*tmp*) gflist_snoc {xs}{x0}(xs, x0) = let // fun loop {xs:ilist} ( xs: gflist (a, xs) , x0: stamped_t (a, x0) , res: &ptr? >> gflist_vt(a, xsx) ) : #[xsx:ilist] (SNOC(xs, x0, xsx) | void) = ( // case+ xs of | gflist_nil() => let val x0 = stamped_t2vt(x0) val () = res := gflist_vt_sing(x0) // end of [val] in (SNOCnil() | ()) end // end of [gflist_nil] | gflist_cons(x, xs) => let val x = stamped_t2vt(x) val () = res := gflist_vt_cons(x, _) // end of [val] val+gflist_vt_cons(_, res1) = res val (pf1 | ()) = loop (xs, x0, res1) prval () = fold@(res) in (SNOCcons(pf1) | ()) end // end of [gflist_cons] // ) (* end of [loop] *) // var res: ptr? // uninitialized val (pfsnoc | ()) = loop (xs, x0, res) // in (pfsnoc | res) end (* end of [gflist_snoc] *) (* ****** ****** *) implement {a}(*tmp*) gflist_copy (xs) = let // fun loop {xs:ilist} .. ( xs: gflist (a, xs), res: &ptr? >> gflist_vt (a, xs) ) : void = let in // case+ xs of | gflist_nil() => (res := gflist_vt_nil()) // end of [gflist_nil] | gflist_cons(x, xs1) => let val x = stamped_t2vt (x) val () = res := gflist_vt_cons(x, _) val+ gflist_vt_cons (_, res1) = res val ((*void*)) = loop (xs1, res1) prval ((*void*)) = fold@ (res) in // nothing end // end of [gflist_vt_cons] end // end of [loop] // var res: ptr // uninitialized // val () = $effmask_wrt (loop (xs, res)) // in res end // end of [gflist_copy] (* ****** ****** *) implement {a}(*tmp*) gflist_append (xs1, xs2) = let // fun loop {xs1:ilist} {xs2:ilist} .. ( xs1: gflist (a, xs1) , xs2: gflist (a, xs2) , res: &ptr? >> gflist (a, ys) ) : #[ys:ilist] (APPEND(xs1, xs2, ys) | void) = let in // case+ xs1 of | gflist_nil() => let val () = res := xs2 in (APPENDnil() | ()) end // end of [gflist_nil] | gflist_cons(x1, xs1) => let val () = res := gflist_cons(x1, _) val+gflist_cons(_, res1) = res val (pf | ()) = loop (xs1, xs2, res1) prval () = fold@ (res) in (APPENDcons(pf) | ()) end // end of [gflist_cons] // end // end of [loop] // var res: ptr // uninitialized // val (pf | ()) = $effmask_wrt(loop (xs1, xs2, res)) // in (pf | res) end // end of [gflist_append] (* ****** ****** *) implement {a}(*tmp*) gflist_revapp (xs1, xs2) = let // fun loop {xs1,xs2:ilist} .. ( xs1: gflist (a, xs1), xs2: gflist (a, xs2) ) :<> [res:ilist] (REVAPP (xs1, xs2, res) | gflist (a, res)) = let in // case+ xs1 of // | gflist_nil() => (REVAPPnil () | xs2) // end of [gflist_nil] // | gflist_cons(x1, xs1) => let val (pf | res) = loop (xs1, gflist_cons(x1, xs2)) in (REVAPPcons (pf) | res) end // end of [gflist_cons] // end // end of [loop] // in loop (xs1, xs2) end // end of [gflist_revapp] (* ****** ****** *) implement {a}(*tmp*) gflist_revapp1_vt (xs1, xs2) = let // val xs2 = __cast (xs2) where { extern castfn __cast{xs2:ilist} (gflist (a, xs2)):<> gflist_vt (a, xs2) // end of [castfn] } (* end of [val] *) val (pf | ys) = gflist_vt_revapp (xs1, xs2) // in (pf | gflist_vt2t{a}(ys)) end // end of [gflist_revapp1_vt] (* ****** ****** *) implement {a}(*tmp*) gflist_revapp2_vt (xs1, xs2) = let // fun loop {xs1,xs2:ilist} .. ( xs1: gflist (a, xs1), xs2: gflist_vt (a, xs2) ) :<> [res:ilist] (REVAPP (xs1, xs2, res) | gflist_vt (a, res)) = let in // case+ xs1 of | gflist_nil() => (REVAPPnil () | xs2) // end of [gflist_nil] | gflist_cons(x1, xs1) => let val x1 = stamped_t2vt (x1) val (pf | res) = loop (xs1, gflist_vt_cons(x1, xs2)) in (REVAPPcons (pf) | res) end // end of [gflist_cons] // end // end of [loop] // in loop (xs1, xs2) end // end of [gflist_revapp2_vt] (* ****** ****** *) implement {a}(*tmp*) gflist_reverse (xs) = $effmask_wrt (gflist_revapp2_vt (xs, gflist_vt_nil)) // end of [gflist_reverse] (* ****** ****** *) implement {a}(*tmp*) gflist_get_at {xs}{x0}{i} (pf | xs, i) = let // fun loop {xs:ilist}{i:int} ( pf: NTH(x0, xs, i) | xs: gflist(a, xs), i: int(i) ) : stamped_t(a, x0) = let // prval ILISTEQ() = lemma_nth_param(pf) // val+gflist_cons(x, xs) = xs // in // if i = 0 then let prval NTHbas() = pf in x end // end of [then] else let prval NTHind(pf) = pf in loop(pf | xs, i-1) end // end of [else] // end // end of [loop] // in loop (pf | xs, i) end (* end of [gflist_get_at] *) (* ****** ****** *) implement {a}(*tmp*) gflist_mergesort (xs) = let // val xs = gflist_copy(xs) // implement(a:t0p) gflist_vt_mergesort$cmp (x1, x2) = gflist_mergesort$cmp(stamped_vt2t_ref(x1), stamped_vt2t_ref(x2)) // in gflist_vt_mergesort(xs) end // end of [gflist_mergesort] (* ****** ****** *) (* end of [gflist.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/funarray_braunt.dats0000644000175000017500000002472413431250607022763 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.funarray" // #define ATS_DYNLOADFLAG 0 // no dynloading // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/integer.dats" (* ****** ****** *) // staload "libats/SATS/funarray.sats" // (* ****** ****** *) datatype brauntree (a:t@ype+, int) = | E(a, 0) of () | {n1,n2:nat | n2 <= n1; n1 <= n2+1} B(a, n1+n2+1) of (a, brauntree(a, n1), brauntree(a, n2)) // end of [brauntree] stadef bt = brauntree (* ****** ****** *) // assume farray_t0ype_int_type (a:t@ype, n:int) = brauntree(a, n) // (* ****** ****** *) implement {}(*tmp*) farray_is_nil(A) = ( case+ A of | E _ => true | B _ => false ) implement {}(*tmp*) farray_isnot_nil(A) = ( case+ A of | E _ => false | B _ => true ) (* ****** ****** *) implement {a}(*tmp*) farray_size (A) = let // fun diff { nl,nr:nat | nr <= nl && nl <= nr+1 } .. ( nr: int(nr), t0: bt(a, nl) ) : int (nl-nr) = ( case+ t0 of | E () => 0 | B (_, tl, tr) => if nr > 0 then let val nr2 = half(nr) in if (nr > nr2+nr2) then diff(nr2, tl) else diff(nr2-1, tr) end // end of [then] else 1 // end of [else] // end of [diff] ) (* end of [diff] *) // fun size {n:nat} .. ( t0: bt(a, n) ) : int(n) = ( case+ t0 of | E () => 0 | B (_, tl, tr) => let val nr = size(tr) val d1 = 1 + diff(nr, tl) in 2 * nr + d1 end // end of [B] // end of [size] ) (* end of [size] *) // prval() = lemma_farray_param(A) // in $effmask_all(size(A)) end // end of [farray_size] // (* ****** ****** *) implement {}(*tmp*) farray_nil((*void*)) = E(*void*) implement {}(*tmp*) farray_make_nil((*void*)) = E(*void*) (* ****** ****** *) implement {a}(*tmp*) farray_make_list (xs) = auxmain(xs) where { // fnx aux01 {n:nat} .. ( xs0: list(a, n) , res0: &ptr? >> list(a, (n+1)/2) , res1: &ptr? >> list(a, (n+0)/2) ) : void = ( case+ xs0 of | list_nil() => { val () = res0 := list_nil() val () = res1 := list_nil() } | list_cons(x0, xs1) => ( case+ xs1 of | list_nil() => { val () = res1 := list_nil() val () = res0 := list_sing(x0) } | list_cons(x1, xs2) => { val () = (res0 := list_cons{a}{0}(x0, _)) val () = (res1 := list_cons{a}{0}(x1, _)) val+list_cons(_, res0_tl) = res0 val+list_cons(_, res1_tl) = res1 val () = aux01(xs2, res0_tl, res1_tl) prval () = fold@(res0) and () = fold@(res1) } ) ) // fun auxmain: $d2ctype ( farray_make_list ) = lam(xs) => ( case+ xs of | list_nil() => E() | list_cons(x0, xs) => let var res0: ptr and res1: ptr val ((*void*)) = $effmask_wrt(aux01(xs, res0, res1)) in B(x0, auxmain(res0), auxmain(res1)) end // end of [list_cons] ) // } (* end of [farray_make_list] *) (* ****** ****** *) implement {a}(*tmp*) farray_get_at {n}(A, i) = let // fun get_at { n,i:nat| i < n } .. ( t0: bt(a, n), i: int i ) : a = ( if i > 0 then let val i2 = half(i) in // if (i > i2 + i2) then let val+B(_, tl, _) = t0 in get_at(tl, i2) end // end of [then] else let val+B(_, _, tr) = t0 in get_at(tr, i2-1) end // end of [else] // end // end of [then] else let val+B(x, _, _) = t0 in x end // end of [else] ) (* end of [get_at] *) // in $effmask_all(get_at(A, i)) end // end of [farray_get_at] (* ****** ****** *) implement {a}(*tmp*) farray_set_at {n}(A, i, x0) = let // fun set_at { n,i:nat | i < n } .. ( t0: bt(a, n), i: int i, x0: a ) :<> bt(a, n) = ( if (i > 0) then let val i2 = half(i) val+B(x, tl, tr) = t0 in if i > i2 + i2 then B(x, set_at(tl, i2, x0), tr) else B(x, tl, set_at(tr, i2-1, x0)) // end of [if] end // end of [then] else let val+B(_, tl, tr) = t0 in B(x0, tl, tr) end // end of [else] // ) (* end of [set_at] *) // in A := set_at(A, i, x0) end // end of [farray_set_at] (* ****** ****** *) implement {a}(*tmp*) farray_getopt_at {n}(A, i) = let // prval () = lemma_farray_param(A) // fun getopt_at {n,i:nat} .. ( t0: bt(a, n), i: int i ) : option_vt(a, i < n) = ( case+ t0 of | E() => None_vt() | B(x0, tl, tr) => ( if (i = 0) then ( Some_vt(x0) ) else let val i2 = half(i) in if i > i2 + i2 then getopt_at(tl, i2) else getopt_at(tr, i2-1) // end of [if] end // end of [else] ) (* end of [B] *) ) (* end of [getopt_at] *) // in $effmask_all(getopt_at(A, i)) end // end of [farray_getopt_at] (* ****** ****** *) implement {a}(*tmp*) farray_setopt_at {n}(A, i, x0) = let // fun setopt_at {n,i:nat} .. ( t0: bt(a, n), i: int(i) , x0: a, opt: &bool? >> bool(i < n) ) : bt(a, n) = ( case+ t0 of | E() => E() where { val () = opt := false } | B(x1, tl, tr) => ( if (i > 0) then let val i2 = half(i) in if (i > i2 + i2) then let val tl = setopt_at(tl, i2, x0, opt) in if opt then B(x1, tl, tr) else t0 end // end of [then] else let val tr = setopt_at(tr, i2-1, x0, opt) in if opt then B(x1, tl, tr) else t0 end // end of [else] end // end of [then] else let val () = opt := true in B(x0, tl, tr) end // end of [else] ) (* end of [B] *) // ) (* end of [set_at] *) // prval () = lemma_farray_param(A) // in let var opt: bool in A := setopt_at(A, i, x0, opt); opt end (* end of [let] *) end // end of [farray_setopt_at] (* ****** ****** *) implement {a}(*tmp*) farray_insert_l {n}(A, x0) = let // fun ins_l {n:nat} .. ( t0: bt(a, n), x0: a ) :<> bt(a, n+1) = ( case+ t0 of | E() => B(x0, E(), E()) | B(x, tl, tr) => B(x0, ins_l (tr, x), tl) ) (* end of [ins_l] *) // prval() = lemma_farray_param(A) // in A := ins_l(A, x0) end // end of [farray_insert_l] (* ****** ****** *) implement {a}(*tmp*) farray_insert_r {n}(A, n, x0) = let // fun ins_r {n:nat} .. ( t0: bt(a, n), n: int n, x0: a ) : bt(a, n+1) = ( // if n > 0 then let val n2 = half(n) val+B(x, tl, tr) = t0 in if n > n2 + n2 then B(x, ins_r (tl, n2, x0), tr) else B(x, tl, ins_r (tr, n2-1, x0)) // end of [if] end // end of [then] else B(x0, E(), E()) // ) (* end of [ins_r] *) // prval() = lemma_farray_param(A) // in A := ins_r(A, n, x0) end // end of [farray_insert_r] (* ****** ****** *) implement {a}(*tmp*) farray_remove_l {n}(A) = let // fun rem_l {n:pos} .. ( t0: &bt(a, n) >> bt(a, n-1) ) : a = ( case+ t0 of | B(x, E(), _) => (t0 := E(); x) | B(xl, tl, tr) =>> let var tl = tl val x0 = rem_l(tl) in (t0 := B(xl, tr, tl); x0) end // end of [lorem] ) // in rem_l(A) end // end of [farray_remove_l] // (* ****** ****** *) implement {a}(*tmp*) farray_remove_r {n}(A, n) = let // fun rem_r {n:pos} .. ( t0: &bt(a, n) >> bt(a, n-1), n: int n ) : a = let // val n2 = half(n); val+B(x, tl, tr) = t0 // in // case+ tl of | E() => (t0 := E(); x) | B _ => if n > n2 + n2 then let var tr = tr val x0 = rem_r(tr, n2) in t0 := B(x, tl, tr); x0 end // end of [then] else let var tl = tl val x0 = rem_r(tl, n2) in t0 := B(x, tl, tr); x0 end // end of [else] // end of [if] // end // end of [rem_r] // in rem_r(A, n) end // end of [farray_remove_r] (* ****** ****** *) // implement {}(*tmp*) fprint_farray$sep (out) = fprint_string(out, ", ") // (* ****** ****** *) implement {a}(*tmp*) fprint_farray (out, A) = let // typedef tenv = int // var env: tenv = (0) // implement(a2) farray_foreach$fwork (x, env) = () where { // val () = if env > 0 then fprint_farray$sep<>(out) // end of [val] // val () = env := env + 1 val () = fprint_val(out, $UN.cast{a}(x)) // } (* end of [farray_foreach$fwork] *) // in farray_foreach_env(A, env) end // end of [fprint_farray] (* ****** ****** *) implement {a}(*tmp*) farray_listize {n}(A) = auxmain(A) where { // fnx aux01 {m,n:nat} ( xs: list_vt(a, m) , ys: list_vt(a, n) , res: &ptr? >> list_vt(a, m+n) ) : void = ( case+ xs of | ~list_vt_nil() => (res := ys) | @list_vt_cons(x, xs_tl) => ( case+ ys of | ~list_vt_nil() => (fold@(xs); res := xs) | @list_vt_cons (y, ys_tl) => { val xs_tl_ = xs_tl val ys_tl_ = ys_tl val () = (res := xs) val () = (xs_tl := ys) val () = aux01(xs_tl_, ys_tl_, ys_tl) prval () = fold@(xs_tl); prval () = fold@(res) } ) ) // fun auxmain: $d2ctype ( farray_listize ) = lam(t0) => ( case+ t0 of | E() => list_vt_nil() | B(x0, tl, tr) => let var res: ptr val ((*void*)) = aux01(auxmain(tl), auxmain(tr), res) in list_vt_cons(x0, res) end // end of [B] ) // } (* end of [farray_listize] *) (* ****** ****** *) implement {a}(*tmp*) farray_foreach (A) = let // var env: void = () // in // farray_foreach_env(A, env) // end // end of [farray_foreach] (* ****** ****** *) implement {a}{env}(*tmp*) farray_foreach_env (A, env) = list_vt_free(xs) where { // implement list_vt_foreach$cont (x, env) = farray_foreach$cont(x, env) // implement list_vt_foreach$fwork (x, env) = farray_foreach$fwork(x, env) // val xs = farray_listize(A) val () = list_vt_foreach_env(xs, env) // } (* end of [farray_foreach_env] *) (* ****** ****** *) // implement {a}{env}(*tmp*) farray_foreach$cont(x, env) = (true) // (* ****** ****** *) (* end of [funarray_braunt.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/dynarray.dats0000644000175000017500000003203213431250607021401 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/dynarray.sats" (* ****** ****** *) // extern fun memcpy : (ptr, ptr, size_t) -<0,!wrt> ptr = "mac#atslib_dynarray_memcpy" extern fun memmove : (ptr, ptr, size_t) -<0,!wrt> ptr = "mac#atslib_dynarray_memmove" // (* ****** ****** *) // // HX: // recapacitizing policy // 0: manual // 1: automatic doubling // implement {}(*tmp*) dynarray$recapacitize () = 1 // default policy // (* ****** ****** *) local datavtype dynarray (a:vt@ype+) = {m,n:int | m > 0; m >= n} DYNARRAY of (arrayptr (a, m), size_t m, size_t n) // end of [dynarray] assume dynarray_vtype (a) = dynarray (a) in (* in of [local] *) implement {a}(*tmp*) dynarray_make_nil (cap) = let // val A = arrayptr_make_uninitized (cap) val A = __cast (A) where { extern castfn __cast {n:int} (arrayptr (a?, n)):<> arrayptr (a, n) } (* end of [val] *) // in DYNARRAY(A, cap, g1i2u(0)) end (* end of [dynarray_make_nil] *) (* ****** ****** *) implement {}(*tmp*) dynarray_getfree_arrayptr (DA, n) = let // val+ ~DYNARRAY{a}{m,n}(A, _, n0) = DA // val () = n := n0 prval () = lemma_g1uint_param (n0) // in $UN.castvwtp0{arrayptr(a,n)}(A) end (* end of [dynarray_getfree_arrayptr] *) (* ****** ****** *) implement {}(*tmp*) dynarray_get_array (DA, n) = let // val+DYNARRAY{a}{m,n}(A, _, n0) = DA // val () = n := n0 val p0 = arrayptr2ptr (A) // val (pf, fpf | p0) = $UN.ptr_vtake{array(a,n)}(p0) // in (pf, fpf | p0) end (* end of [dynarray_get_array] *) (* ****** ****** *) implement {}(*tmp*) dynarray_get_size (DA) = let val+DYNARRAY(_, _, n) = DA in (n) end // end of [dynarray_get_size] implement {}(*tmp*) dynarray_get_capacity (DA) = let val+DYNARRAY(_, m, _) = DA in (m) end // end of [dynarray_get_capacity] (* ****** ****** *) implement {a}(*tmp*) dynarray_getref_at (DA, i0) = let // val i0 = g1ofg0_uint(i0) val+ DYNARRAY(A, m, n) = DA val pi = ( if i0 < n then ptr_add (arrayptr2ptr(A), i0) else the_null_ptr ) : ptr // end of [val] // in $UN.cast{cPtr0(a)}(pi) end // end of [dynarray_getref_at] (* ****** ****** *) implement {a}(*tmp*) dynarray_insert_at (DA, i, x, res) = let // val i = g1ofg0_uint(i) // val+@DYNARRAY(A, m, n) = DA // in // if i <= n then let // // HX: [i] is a valid position // in // if m > n then let val p1 = ptr_add (arrayptr2ptr(A), i) // end of [val] val p2 = ptr_succ(p1) val ptr = memmove (p2, p1, (n-i)*sizeof) // end of [val] val () = $UN.ptr0_set (p1, x) val () = n := succ(n) // prval () = fold@(DA) prval () = opt_none{a}(res) // in false end else let val m = m // prval () = fold@(DA) // val recap = dynarray$recapacitize<>() in // if recap > 0 then let val _(*true*) = dynarray_reset_capacity(DA, m+m) in dynarray_insert_at(DA, i, x, res) end // end of [then] else let val () = res := x // prval () = opt_some{a}(res) // in true end // end of [else] // end // end of [if] // end else let // val () = res := x // prval () = fold@(DA) prval () = opt_some{a}(res) // in true end // end of [if] // end // end of [dynarray_insert_at] (* ****** ****** *) implement {a}(*tmp*) dynarray_insert_atbeg_exn (DA, x) = let in dynarray_insert_at_exn(DA, i2sz(0), x) end // end of [dynarray_insert_atbeg_exn] implement {a}(*tmp*) dynarray_insert_atbeg_opt (DA, x) = let in dynarray_insert_at_opt(DA, i2sz(0), x) end // end of [dynarray_insert_atbeg_opt] (* ****** ****** *) // implement {a}(*tmp*) dynarray_insert_atend_exn (DA, x) = let // val+DYNARRAY(_, _, n) = DA // in dynarray_insert_at_exn(DA, n, x) end // end of [dynarray_insert_atend_exn] // implement {a}(*tmp*) dynarray_insert_atend_opt (DA, x) = let // val+DYNARRAY(_, _, n) = DA // in dynarray_insert_at_opt(DA, n, x) end // end of [dynarray_insert_atend_opt] // (* ****** ****** *) implement {a}(*tmp*) dynarray_insertseq_at (DA, i, xs, n2) = let // fun pow2min ( s1: sizeGte(1), s2: size_t ) : sizeGte(1) = ( if s1 >= s2 then s1 else pow2min (s1+s1, s2) ) (* end of [pow2min] *) // val i = g1ofg0_uint(i) val+@DYNARRAY(A, m, n) = DA // in // if i <= n then let // // HX: [i] is a valid position // in // if n + n2 <= m then let val p1 = ptr_add (arrayptr2ptr(A), i) val p2 = ptr_add (p1, n2) val ptr = memmove (p2, p1, (n-i)*sizeof) val ptr = memcpy (p1, addr@(xs), n2*sizeof) val () = n := n+n2 prval () = fold@ (DA) prval () = __assert (xs) where { extern praxi __assert {n:int} (xs: &array(a, n) >> arrayopt (a, n, false)): void // praxi } (* end of [prval] *) in false end else let val m = m and n = n prval () = fold@ (DA) val recap = dynarray$recapacitize<>() in // if recap > 0 then let val m2 = pow2min (m+m, n+n2) val _(*true*) = dynarray_reset_capacity(DA, m2) in dynarray_insertseq_at(DA, i, xs, n2) end else let prval () = arrayopt_some{a}(xs) in true end (* end of [if] *) // end // end of [if] // end else let prval () = fold@ (DA) prval () = arrayopt_some{a}(xs) in true end // end of [if] // end // end of [dynarray_insertseq_at] (* ****** ****** *) implement {a}(*tmp*) dynarray_takeout_at (DA, i, res) = let // val i = g1ofg0_uint(i) val+@DYNARRAY(A, m, n) = DA // in // if i < n then let val p1 = ptr_add (arrayptr2ptr(A), i) val p2 = ptr_succ (p1) val n1 = pred (n) val x = $UN.ptr0_get (p1) val ptr = memmove (p1, p2, (n1-i)*sizeof) val () = n := n1 prval () = fold@ (DA) val () = res := x prval () = opt_some{a}(res) in true end else let prval () = fold@ (DA) prval () = opt_none{a}(res) in false end // end of [if] // end // end of [dynarray_takeout_at] (* ****** ****** *) implement {a}(*tmp*) dynarray_takeout_atbeg_exn (DA) = let in dynarray_takeout_at_exn(DA, i2sz(0)) end // end of [dynarray_takeout_atbeg_exn] // implement {a}(*tmp*) dynarray_takeout_atbeg_opt (DA) = let in dynarray_takeout_at_opt(DA, i2sz(0)) end // end of [dynarray_takeout_atbeg_opt] (* ****** ****** *) implement {a}(*tmp*) dynarray_takeout_atend_exn (DA) = let // val+DYNARRAY(_, _, n) = DA // in // if n > 0 then ( dynarray_takeout_at_exn(DA, pred(n)) ) else let var res: a? val () = prerr "exit(ATSLIB): [dynarray_takeout_atend_exn] failed." val () = exit_void (1) in $UN.castvwtp0{a}(res) end (* end of [if] *) // end // end of [dynarray_takeout_atend_exn] // implement {a}(*tmp*) dynarray_takeout_atend_opt (DA) = let // val+DYNARRAY(_, _, n) = DA // in // if n > 0 then dynarray_takeout_at_opt(DA, pred(n)) else None_vt{a}() // end // end of [dynarray_takeout_atend_opt] (* ****** ****** *) implement {a}(*tmp*) dynarray_removeseq_at (DA, st, ln) = let // val+DYNARRAY(A, m, n) = DA // in // if st < n then let // val ln1 = n - st val ln2 = min (ln, ln1) val p0 = ptrcast(A) val p1 = ptr_add (p0, st) val p2 = ptr_add (p1, ln2) // val p1 = memmove (p1, p2, (ln1-ln2)*sizeof) // val+@DYNARRAY(A, m, n) = DA val ((*void*)) = n := n - ln2 // prval () = $UN.castview0{void}(view@A) prval () = $UN.castview0{void}(view@m) prval () = $UN.castview0{void}(view@n) prval () = $UN.castview2void{dynarray(a)}(DA) in ln2 // end // end of [then] else i2sz(0) // end of [else] // end // end of [dynarray_removeseq_at] (* ****** ****** *) implement {a}(*tmp*) dynarray_listize0 (DA) = xs where { // var asz: size_t? val (pf, fpf | p0) = dynarray_get_array(DA, asz) // prval () = lemma_array_v_param(pf) // val xs = array_copy_to_list_vt(!p0, asz) // prval ((*returned*)) = $UN.cast2void((pf, fpf | p0)) // val+@DYNARRAY(A,m,n)=DA; val()=(n := i2sz(0)); prval()=fold@(DA) // } // end of [dynarray_listize0] (* ****** ****** *) implement {a}(*tmp*) dynarray_listize1 (DA) = xs where { // var asz: size_t? val (pf, fpf | p0) = dynarray_get_array(DA, asz) // prval () = lemma_array_v_param(pf) // val xs = array_copy_to_list_vt(!p0, asz) // prval ((*returned*)) = fpf(pf) // } // end of [dynarray_listize1] (* ****** ****** *) implement {a}(*tmp*) dynarray_reset_capacity (DA, m2) = let // val+@DYNARRAY(A, m, n) = DA // in // if m2 >= n then let // val A2 = arrayptr_make_uninitized (m2) // val ptr = memcpy ( arrayptr2ptr(A2), arrayptr2ptr(A), n*sizeof ) (* end of [val] *) // extern castfn __cast{n:int}(arrayptr (a, n)):<> arrayptr (a?, n) extern castfn __cast2{n:int} (arrayptr (a?, n)):<> arrayptr (a, n) // val A1 = __cast(A) val A2 = __cast2(A2) // val () = arrayptr_free (A1) // val () = A := A2 val () = m := m2 // prval () = fold@ (DA) // in true end else let // prval () = fold@ (DA) // in false end // end of [if] // end // end of [dynarray_reset_capacity] (* ****** ****** *) // implement {a}(*tmp*) dynarray_quicksort$cmp (x, y) = gcompare_ref_ref (x, y) // (* ****** ****** *) implement {a}(*tmp*) dynarray_quicksort(DA) = let // val+ DYNARRAY{_a_}{m,n}(A, m, n) = DA // val p0 = arrayptr2ptr (A) // prval ( pf, fpf ) = __assert (p0) where { // extern praxi __assert {l:addr} ( p: ptr(l) ) : vtakeout0 (array_v (a, l, n)) // } (* end of [prval] *) // implement {a}(*tmp*) array_quicksort$cmp (x, y) = dynarray_quicksort$cmp (x, y) // val () = array_quicksort (!p0, n) // prval ((*returned*)) = fpf (pf) // in // nothing end // end of [dynarray_quicksort] (* ****** ****** *) end // end of [local] (* ****** ****** *) implement {}(*tmp*) dynarray_free(DA) = let var n: size_t val A = dynarray_getfree_arrayptr (DA, n) in arrayptr_free (A) end (* end of [dynarray_free] *) (* ****** ****** *) implement {a}(*tmp*) fprint_dynarray(out, DA) = let // var n: size_t // val (pf, fpf | p0) = dynarray_get_array(DA, n) // val ((*void*)) = fprint_array (out, !p0, n) // prval ((*returned*)) = fpf(pf) // in // nothing end (* end of [fprint_dynarray] *) (* ****** ****** *) implement {a}(*tmp*) fprint_dynarray_sep (out, DA, sep) = let // implement fprint_array$sep<> (out) = fprint_string(out, sep) // in fprint_dynarray(out, DA) end // end of [fprint_dynarray_sep] (* ****** ****** *) implement {a}(*tmp*) dynarray_get_at_exn (DA, i) = let // val pi = dynarray_getref_at(DA, i) // in // if cptr2ptr(pi) > 0 then $UN.cptr_get(pi) else $raise ArraySubscriptExn() // end // end of [dynarray_get_at_exn] implement {a}(*tmp*) dynarray_set_at_exn (DA, i, x) = let // val pi = dynarray_getref_at(DA, i) // in // if cptr2ptr(pi) > 0 then $UN.cptr_set(pi, x) else $raise ArraySubscriptExn() // end // end of [dynarray_set_at_exn] (* ****** ****** *) implement {a}(*tmp*) dynarray_insert_at_exn (DA, i, x) = let // var res: a? val ans = dynarray_insert_at(DA, i, x, res) // in // if ans then let // prval () = opt_unsome{a}(res) prval () = $UN.cast2void (res) // val () = prerr "exit(ATSLIB): [dynarray_insert_at_exn] failed." // in exit_void (1) end else let // prval () = opt_unnone{a}(res) // in // nothing end // end of [if] // end (* end of [dynarray_insert_at_exn] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_insert_at_opt (DA, i, x) = let // var res: a? // val ans = dynarray_insert_at(DA, i, x, res) // in option_vt_make_opt(ans, res) end (* end of [dynarray_insert_at_opt] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_takeout_at_exn (DA, i) = let // var res: a? // val ans = dynarray_takeout_at(DA, i, res) // in // if ans then let // prval () = opt_unsome{a}(res) // in res end else let // prval () = opt_unnone{a}(res) // val ( ) = prerr "exit(ATSLIB): [dynarray_takeout_at_exn] failed." // val () = exit_void (1) // in $UN.castvwtp0{a}(res) end // end of [if] // end // end of [dynarray_takeout_at_exn] (* ****** ****** *) implement {a}(*tmp*) dynarray_takeout_at_opt (DA, i) = let // var res: a? val ans = dynarray_takeout_at(DA, i, res) // in option_vt_make_opt(ans, res) end // end of [dynarray_takeout_at_opt] (* ****** ****** *) (* end of [dynarray.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/athread_posix.dats0000644000175000017500000001563713431250607022416 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // An abstract thread interface // implemented on top of pthreads // (* ****** ****** *) %{^ // #include // %} // end of [%{^] (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/athread.sats" (* ****** ****** *) // assume locked_v (l:addr) = unit_v // (* ****** ****** *) implement {}(*tmp*) spin_create () = let // typedef pthread_spinlock_t = $extype"pthread_spinlock_t" // val (pfat, pfgc | p) = ptr_alloc () val err = $extfcall (int, "pthread_spin_init", p, 0(*pshared*)) // in // if err = 0 then $UN.castvwtp0{spin1}((pfat, pfgc | p)) else let val () = ptr_free (pfgc, pfat | p) in $UN.castvwtp0{spin0}(0) end // end of [else] // end // end of [spin_create] (* ****** ****** *) implement {}(*tmp*) spin_vt_destroy (spn) = let // val p_spn = spin2ptr_vt (spn) prval () = $UN.castview0 (spn) // in // if p_spn > 0 then let val err = $extfcall (int, "pthread_spin_destroy", p_spn) val ((*freed*)) = $extfcall (void, "atspre_ptr_free", p_spn) in // nothing end // end of [then] else () // end of [else] // end // end of [spin_vt_destroy] (* ****** ****** *) implement {}(*tmp*) spin_lock (spn) = let // val err = $extfcall (int, "pthread_spin_lock", $UN.cast{ptr}(spn)) // (* val ((*void*)) = assertloc (err = 0) *) // in (unit_v () | ()) end // end of [spin_lock] (* ****** ****** *) implement {}(*tmp*) spin_unlock (pf | spn) = let // prval unit_v () = pf // val err = $extfcall (int, "pthread_spin_unlock", $UN.cast{ptr}(spn)) // (* val ((*void*)) = assertloc (err = 0) *) // in // nothing end // end of [spin_unlock] (* ****** ****** *) implement {}(*tmp*) mutex_create () = let // typedef pthread_mutex_t = $extype"pthread_mutex_t" // val (pfat, pfgc | p) = ptr_alloc () val err = $extfcall (int, "pthread_mutex_init", p, 0(*attr*)) // in // if err = 0 then $UN.castvwtp0{mutex1}((pfat, pfgc | p)) else let val () = ptr_free (pfgc, pfat | p) in $UN.castvwtp0{mutex0}(0) end // end of [else] // end // end of [mutex_create] (* ****** ****** *) implement {}(*tmp*) mutex_vt_destroy (mtx) = let // val p_mtx = mutex2ptr_vt (mtx) prval () = $UN.castview0 (mtx) // in // if p_mtx > 0 then let val err = $extfcall (int, "pthread_mutex_destroy", p_mtx) val ((*freed*)) = $extfcall (void, "atspre_ptr_free", p_mtx) in // nothing end // end of [then] else () // end of [else] // end // end of [mutex_vt_destroy] (* ****** ****** *) implement {}(*tmp*) mutex_lock (mtx) = let // val err = $extfcall (int, "pthread_mutex_lock", $UN.cast{ptr}(mtx)) // (* val ((*void*)) = assertloc (err = 0) *) // in (unit_v () | ()) end // end of [mutex_lock] (* ****** ****** *) implement {}(*tmp*) mutex_unlock (pf | mtx) = let // prval unit_v () = pf // val err = $extfcall (int, "pthread_mutex_unlock", $UN.cast{ptr}(mtx)) // (* val ((*void*)) = assertloc (err = 0) *) // in // nothing end // end of [mutex_unlock] (* ****** ****** *) implement {}(*tmp*) condvar_create () = let // typedef pthread_cond_t = $extype"pthread_cond_t" // val (pfat, pfgc | p) = ptr_alloc () val err = $extfcall (int, "pthread_cond_init", p, 0(*attr*)) // in // if err = 0 then $UN.castvwtp0{condvar1}((pfat, pfgc | p)) else let val () = ptr_free (pfgc, pfat | p) in $UN.castvwtp0{condvar0}(0) end // end of [else] // end // end of [condvar_create] (* ****** ****** *) implement {}(*tmp*) condvar_vt_destroy (cvr) = let // val p_cvr = condvar2ptr_vt (cvr) prval () = $UN.castview0 (cvr) // in // if p_cvr > 0 then let val err = $extfcall (int, "pthread_cond_destroy", p_cvr) val ((*freed*)) = $extfcall (void, "atspre_ptr_free", p_cvr) in // nothing end // end of [then] else () // end of [else] // end // end of [condvar_vt_destroy] (* ****** ****** *) implement {}(*tmp*) condvar_signal (cvr) = let // val err = ( $extfcall (int, "pthread_cond_signal", $UN.cast{ptr}(cvr)) ) (* end of [val] *) // (* val ((*void*)) = assertloc (err = 0) *) // in // nothing end // end of [condvar_signal] (* ****** ****** *) implement {}(*tmp*) condvar_broadcast (cvr) = let // val err = ( $extfcall (int, "pthread_cond_broadcast", $UN.cast{ptr}(cvr)) ) (* end of [val] *) // (* val ((*void*)) = assertloc (err = 0) *) // in // nothing end // end of [condvar_broadcast] (* ****** ****** *) implement {}(*tmp*) condvar_wait (pf | cvr, mtx) = let // val err = $extfcall (int, "pthread_cond_wait", $UN.cast{ptr}(cvr), $UN.cast{ptr}(mtx)) // (* val ((*void*)) = assertloc (err = 0) *) // in // nothing end // end of [condvar_wait] (* ****** ****** *) abst@ype pthread_t = $extype"pthread_t" abst@ype pthread_attr_t = $extype"pthread_attr_t" (* ****** ****** *) // implement {}(*tmp*) athread_self ((*void*)) = $extfcall(tid, "pthread_self") // (* ****** ****** *) implement {}(*tmp*) athread_create_funenv (tid, fwork, env) = let // var tid2: pthread_t var attr: pthread_attr_t val _(*err*) = $extfcall(int, "pthread_attr_init", addr@attr) // val _(*err*) = $extfcall( int , "pthread_attr_setdetachstate" , addr@attr, $extval(int, "PTHREAD_CREATE_DETACHED") ) (* end of [val] *) // val err = $extfcall ( int, "pthread_create" , addr@tid2, addr@attr, fwork, $UN.castvwtp0{ptr}(env) ) (* end of [val] *) val () = tid := $UN.cast2lint(tid2) // val _(*err*) = $extfcall (int, "pthread_attr_destroy", addr@attr) // in err end // end of [athread_create_funenv] (* ****** ****** *) (* end of [athread_posix.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/stringbuf.dats0000644000175000017500000004016613431250607021562 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.stringbuf" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_" // prefix for external names (* ****** ****** *) // staload _ = "prelude/DATS/integer.dats" staload _ = "prelude/DATS/integer_size.dats" // (* ****** ****** *) // staload _ = "prelude/DATS/array.dats" staload _ = "prelude/DATS/arrayptr.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload STDIO = "libats/libc/SATS/stdio.sats" (* ****** ****** *) staload "libats/SATS/stringbuf.sats" (* ****** ****** *) extern fun memcpy(ptr, ptr, size_t): ptr = "mac#atslib_stringbuf_memcpy" extern fun memmove(ptr, ptr, size_t): ptr = "mac#atslib_stringbuf_memmove" (* ****** ****** *) // // HX: // recapacitizing policy // 0: manual // 1: automatic doubling // implement {}(*tmp*) stringbuf$recapacitize () = 1 // default policy // (* ****** ****** *) // datavtype stringbuf = {m:pos} STRINGBUF of (arrayptr(char, m+1), ptr(*cur*), size_t(m)) // (* ****** ****** *) assume stringbuf_vtype = stringbuf (* ****** ****** *) // implement {}(*tmp*) stringbuf_make_nil_int (cap) = stringbuf_make_nil_size(i2sz(cap)) // implement {}(*tmp*) stringbuf_make_nil_size (cap) = (sbf) where { // prval [m:int] EQINT() = g1uint_get_index(cap) // val A = arrayptr_make_uninitized(succ(cap)) // val p_A = ptrcast(A) // val sbf = STRINGBUF($UN.castvwtp0{arrayptr(char,m+1)}(A), p_A, cap) // } (* end of [stringbuf_make_cap] *) // (* ****** ****** *) implement {}(*tmp*) stringbuf_free (sbf) = let val+~STRINGBUF (A, _, _) = sbf in arrayptr_free (A) end // end of [stringbuf_free] (* ****** ****** *) implement {}(*tmp*) stringbuf_getfree_strptr (sbf) = let // val+~STRINGBUF(A, p, _) = sbf val () = $UN.ptr0_set(p, '\000') // in $UN.castvwtp0{Strptr1}(A) end // end of [stringbuf_getfree_strptr] (* ****** ****** *) implement {}(*tmp*) stringbuf_getfree_strnptr (sbf, n0) = let // val+~STRINGBUF(A, p, _) = sbf val () = $UN.ptr0_set(p, '\000') val [n:int] n = $UN.cast{sizeGte(0)}(p - ptrcast(A)) val ((*void*)) = n0 := n // in $UN.castvwtp0{strnptr(n)}(A) end // end of [stringbuf_getfree_strnptr] (* ****** ****** *) implement {}(*tmp*) stringbuf_get_size (sbf) = let // val+STRINGBUF(A, p, _) = sbf // in $UN.cast{size_t}(p - ptrcast(A)) end // end of [stringbuf_get_size] implement {}(*tmp*) stringbuf_get_capacity (sbf) = let val+STRINGBUF (_, _, cap) = sbf in cap end // end of [stringbuf_get_capacity] (* ****** ****** *) implement {}(*tmp*) stringbuf_get_bufptr (sbf) = let val+STRINGBUF (A, _, _) = sbf in $UN.castvwtp1{Ptr1}(A) end // end of [stringbuf_get_bufptr] implement {}(*tmp*) stringbuf_get_strptr (sbf) = let val+STRINGBUF (A, p, _) = sbf val () = $UN.ptr0_set (p, '\000') in $UN.castvwtp1{vStrptr1}(A) end // end of [stringbuf_get_strptr] (* ****** ****** *) implement {}(*tmp*) stringbuf_takeout_strbuf (sbf, n0) = let // val+STRINGBUF(A, p1, _) = sbf // val p0 = ptrcast (A) val n = $UN.cast{size_t}(p1 - p0) val [n:int] n = g1ofg0_uint (n) val ((*void*)) = n0 := n // prval (pf, fpf) = __assert (p0) where { extern praxi __assert {l:addr} (ptr(l)): vtakeout0(bytes_v (l, n)) } (* end of [prval] *) // in (pf, fpf | p0) end // end of [stringbuf_takeout_strbuf] (* ****** ****** *) implement {}(*tmp*) stringbuf_reset_capacity (sbf, m2) = let // val n = stringbuf_get_size (sbf) // prval [m2:int] EQINT () = g1uint_get_index (m2) // in // if m2 >= n then let // val+@STRINGBUF(A, p, m) = sbf // val A2 = arrayptr_make_uninitized (succ(m2)) val p_A2 = ptrcast(A2) val _(*ptr*) = memcpy (p_A2, ptrcast(A), n) // val () = arrayptr_free (A) // val () = m := m2 val () = p := add_ptr_bsz (p_A2, n) val () = A := $UN.castvwtp0{arrayptr(char,m2+1)}(A2) prval () = fold@ (sbf) // in true end else false // end of [if] // end // end of [stringbuf_reset_capacity] (* ****** ****** *) implement {}(*tmp*) stringbuf_get_at (sbf, i) = let // var n: size_t val (pf, fpf | p) = stringbuf_takeout_strbuf (sbf, n) // val i = g1ofg0(i) val res = (if i < n then $UN.cast2int(p->[i]) else ~1): int prval () = fpf (pf) // in res end // end of [strigbuf_get_at] (* ****** ****** *) implement {}(*tmp*) stringbuf_rget_at (sbf, i) = let // var n: size_t val (pf, fpf | p) = stringbuf_takeout_strbuf (sbf, n) // val res = (if i <= n then $UN.cast2int(p->[n-i]) else ~1): int // prval () = fpf (pf) // in res end // end of [strigbuf_rget_at] (* ****** ****** *) implement {}(*tmp*) stringbuf_insert_char (sbf, x) = let // val+@STRINGBUF(A, p, m) = sbf // val m = m val n = $UN.cast{size_t}(p - ptrcast(A)) // in // case+ 0 of | _ when n < m => let val () = $UN.ptr0_set (p, x) val () = p := ptr_succ (p) prval () = fold@ (sbf) in 1 end // end of [n < m] | _ (*n >= m*) => let val recap = stringbuf$recapacitize () prval () = fold@ (sbf) in if recap >= 1 then let val _ = stringbuf_reset_capacity (sbf, m+m) in stringbuf_insert_char (sbf, x) end else 0(*~inserted*) // end of [if] end // end of [n >= m] // end // end of [stringbuf_insert_char] (* ****** ****** *) implement {}(*tmp*) stringbuf_insert_string (sbf, x) = let val x = g1ofg0(x) in stringbuf_insert_strlen(sbf, x, string_length(x)) end // end of [stringbuf_insert_string] (* ****** ****** *) // extern fun _stringbuf_pow2min (s1: sizeGte(1), s2: size_t): sizeGte(1) = "mac#%" (* // // HX-2015-11-19: It has been moved to CATS // implement _stringbuf_pow2min (s1, s2) = if s1 >= s2 then s1 else _stringbuf_pow2min(s1+s1, s2) *) // (* ****** ****** *) implement {}(*tmp*) stringbuf_insert_strlen (sbf, x, nx) = let // val+@STRINGBUF(A, p, m) = sbf // val m = m val n = $UN.cast{size_t}(p - ptrcast(A)) val n2 = n + nx // in // case+ 0 of | _ when n2 <= m => let val _(*ptr*) = memcpy (p, string2ptr(x), nx) val () = p := ptr_add (p, nx) prval () = fold@ (sbf) in sz2i(nx) end // end of [n2 <= m] | _ (*n2 >= m*) => let val recap = stringbuf$recapacitize() prval () = fold@ (sbf) in if recap >= 1 then let val m2 = _stringbuf_pow2min(m, n2) val ret = stringbuf_reset_capacity(sbf, m2) in stringbuf_insert_strlen(sbf, x, nx) end else 0(*~inserted*) // end of [if] end // end of [n2 >= m] // end // end of [stringbuf_insert_char] (* ****** ****** *) implement {}(*tmp*) stringbuf_insert_bool (sbf, x) = let in // if (x) then stringbuf_insert_strlen (sbf, "true", i2sz(4)) else stringbuf_insert_strlen (sbf, "false", i2sz(5)) // end of [if] // end // end of [stringbuf_insert_bool] (* ****** ****** *) implement {}(*tmp*) stringbuf_insert_int (sbf, x) = let val sbf = $UN.castvwtp1{ptr}(sbf) val recap = stringbuf$recapacitize() in $extfcall(int, "atslib_stringbuf_insert_snprintf", sbf, recap, "%i", x) end // end of [stringbuf_insert_int] implement {}(*tmp*) stringbuf_insert_uint (sbf, x) = let val sbf = $UN.castvwtp1{ptr}(sbf) val recap = stringbuf$recapacitize () in $extfcall(int, "atslib_stringbuf_insert_snprintf", sbf, recap, "%u", x) end // end of [stringbuf_insert_uint] implement {}(*tmp*) stringbuf_insert_lint (sbf, x) = let val sbf = $UN.castvwtp1{ptr}(sbf) val recap = stringbuf$recapacitize() in $extfcall(int, "atslib_stringbuf_insert_snprintf", sbf, recap, "%li", x) end // end of [stringbuf_insert_lint] implement {}(*tmp*) stringbuf_insert_ulint (sbf, x) = let val sbf = $UN.castvwtp1{ptr}(sbf) val recap = stringbuf$recapacitize() in $extfcall(int, "atslib_stringbuf_insert_snprintf", sbf, recap, "%lu", x) end // end of [stringbuf_insert_ulint] (* ****** ****** *) implement {}(*tmp*) stringbuf_insert_fread (sbf, inp, nb) = let // val+@STRINGBUF(A, p, m) = sbf // val n = $UN.cast{size_t}(p - ptrcast(A)) // val nb = g1ofg0(nb) val nb = ( if nb > 0 then min(i2sz(nb), m - n) else (m - n) ) : size_t val [nb:int] nb = g1ofg0(nb) // val ( pf, fpf | p1 ) = $UN.ptr0_vtake{bytes(nb)}(p) val nread = $STDIO.fread(!p1, i2sz(1), nb, inp) val ((*void*)) = (p := ptr_add(p, nread)) // prval () = fpf(pf) prval () = fold@(sbf) // in sz2i(nread) end // end of [stringbuf_insert_fread] (* ****** ****** *) implement {}(*tmp*) stringbuf_insert_fgets (sbf, inp, last) = let // val+@STRINGBUF(A, p, m) = sbf // val n = $UN.cast{size_t}(p-ptrcast(A)) val [nb:int] nb = g1ofg0(m - n) // val ( pf, fpf | p1 ) = $UN.ptr0_vtake{bytes(nb+1)}(p) val p2 = $STDIO.fgets0 (!p1, sz2i(nb)+1, inp) // prval pf2 = assert (view@last) where { extern praxi assert{l:addr}(char(0)@l): char@l } // val n2 = ( if (p2 > 0) then let val n2 = length($UN.cast{string}(p2)) val n2 = g1ofg0(n2) val () = p := ptr_add (p, n2) val () = if n2 > 0 then last := $UN.ptr0_get (ptr_pred (p)) in sz2i (n2) end // end of [then] else (~1) // HX: failure // end of [if] ) : int // end of [val] // prval () = view@last := pf2 // prval () = fpf(pf) prval () = fold@(sbf) // in n2 end // end of [stringbuf_insert_fgets] (* ****** ****** *) // implement stringbuf_insert_val = stringbuf_insert_int // implement stringbuf_insert_val = stringbuf_insert_bool // implement stringbuf_insert_val = stringbuf_insert_uint implement stringbuf_insert_val = stringbuf_insert_lint implement stringbuf_insert_val = stringbuf_insert_ulint // implement stringbuf_insert_val = stringbuf_insert_string // (* ****** ****** *) implement {a}(*tmp*) stringbuf_insert_list (sbf, xs) = let // fun loop ( sbf: !stringbuf, xs: List(a), res: int ) : int = let in // case+ xs of | list_nil () => res // list_nil | list_cons (x, xs) => let val n = stringbuf_insert_val (sbf, x) // end of [val] in loop (sbf, xs, res + n) end (* end of [list_cons] *) // end // end of [loop] // in loop (sbf, xs, 0) end // end of [stringbuf_insert_list] (* ****** ****** *) implement {}(*tmp*) stringbuf_takeout (sbf, i) = let // val+@STRINGBUF(A, p1, _) = sbf // val p0 = ptrcast(A) val n = $UN.cast{size_t}(p1 - p0) val [n:int] n = g1ofg0_uint(n) val [i:int] i = g1ofg0_uint(i) // val i = min(i, n) val str = string_make_substring($UN.cast{string(n)}(p0), i2sz(0), i) // val ni = (n - i) val p0 = memmove(p0, ptr_add(p0, i), ni) val () = (p1 := ptr_add(p0, ni)) // prval () = fold@(sbf) prval () = lemma_strnptr_param(str) // in strnptr2strptr(str) end // end of [stringbuf_takeout] (* ****** ****** *) implement {}(*tmp*) stringbuf_takeout_all (sbf) = let // val+@STRINGBUF(A, p1, _) = sbf // val p0 = ptrcast(A) // val n = $UN.cast{size_t}(p1 - p0) val [n:int] n = g1ofg0_uint(n) // val str = string_make_substring($UN.cast{string(n)}(p0), i2sz(0), n) // val () = p1 := p0 // prval () = fold@(sbf) prval () = lemma_strnptr_param(str) // in strnptr2strptr(str) end // end of [stringbuf_takeout_all] (* ****** ****** *) implement {}(*tmp*) stringbuf_remove (sbf, i) = () where { // val+@STRINGBUF(A, p1, _) = sbf // val p0 = ptrcast(A) // val n = $UN.cast{size_t}(p1 - p0) val [n:int] n = g1ofg0_uint(n) val [i:int] i = g1ofg0_uint(i) // val i = min(i, n) val ni = n - min(i, n) val p0 = memmove(p0, ptr_add(p0, i), ni) val () = (p1 := ptr_add(p0, ni)) // prval () = fold@(sbf) // } (* end of [stringbuf_remove] *) (* ****** ****** *) implement {}(*tmp*) stringbuf_remove_all (sbf) = () where { // val+ @STRINGBUF(A, p1, _) = sbf // val ((*void*)) = (p1 := ptrcast(A)) // prval ((*void*)) = fold@(sbf) // } (* end of [stringbuf_remove_all] *) (* ****** ****** *) implement {}(*tmp*) stringbuf_truncate (sbf, n2) = let // val+@STRINGBUF(A, p1, _) = sbf // val p0 = ptrcast(A) val n1 = $UN.cast{size_t}(p1 - p0) // in // if (n2 < n1) then let val p2 = ptr_add(p0, n2) val ((*void*)) = (p1 := p2) prval ((*folded*)) = fold@(sbf) in true end // end of [then] else let prval ((*folded*)) = fold@(sbf) in false end // end of [else] // end // end of [stringbuf_truncate] (* ****** ****** *) implement {}(*tmp*) stringbuf_truncout (sbf, n2) = let // fun aux .<>. ( p: ptr, n: size_t ) : Strptr1 = let val [n0:int] str = $UN.cast{String}(p) val n = $UN.cast{sizeLte(n0)}(n) val str2 = string_make_substring(str, i2sz(0), n) // end of [val] prval () = lemma_strnptr_param(str2) in strnptr2strptr(str2) end // end of [aux] // val+@STRINGBUF(A, p1, _) = sbf // val p0 = ptrcast(A) val n1 = $UN.cast{size_t}(p1 - p0) // in // if (n1 >= n2) then let val p2 = ptr_add (p0, n2) val res = aux (p2, n1-n2) val ((*void*)) = (p1 := p2) prval ((*folded*)) = fold@ (sbf) in res end // end of [then] else let prval ((*folded*)) = fold@(sbf) in strptr_null() end // end of [else] // end // end of [stringbuf_truncout] (* ****** ****** *) // implement {}(*tmp*) stringbuf_truncout_all(sbf) = $UN.castvwtp0{Strptr1}(stringbuf_truncout (sbf, i2sz(0))) // (* ****** ****** *) // extern fun _stringbuf_get_size(!stringbuf): size_t = "ext#%" extern fun _stringbuf_get_capacity(!stringbuf): size_t = "ext#%" // extern fun _stringbuf_get_ptrcur(sbf: !stringbuf): ptr = "ext#%" extern fun _stringbuf_set_ptrcur(sbf: !stringbuf, p2: ptr): void = "ext#%" // extern fun _stringbuf_reset_capacity(sbf: !stringbuf, m2: sizeGte(1)): bool = "ext#%" // (* ****** ****** *) // implement _stringbuf_get_size (sbf) = stringbuf_get_size<>(sbf) implement _stringbuf_get_capacity (sbf) = stringbuf_get_capacity<>(sbf) // implement _stringbuf_get_ptrcur (sbf) = let val+STRINGBUF(_, p, _) = sbf in p end implement _stringbuf_set_ptrcur (sbf, p2) = let val+@STRINGBUF(_, p, _) = sbf in p := p2; fold@(sbf) end // end of [_stringbuf_set_ptrcur] // implement _stringbuf_reset_capacity (sbf, m2) = stringbuf_reset_capacity<>(sbf, m2) // (* ****** ****** *) %{$ // atstype_int atslib_stringbuf_insert_snprintf ( atstype_ptr sbf, atstype_int recap, atstype_string fmt, ... ) { int ntot ; va_list ap0 ; va_start(ap0, fmt) ; ntot = atslib_stringbuf_insert_vsnprintf (sbf, recap, fmt, ap0) ; va_end(ap0) ; return (ntot) ; } // end of [atslib_stringbuf_insert_snprintf] // atstype_int atslib_stringbuf_insert_vsnprintf ( atstype_ptr sbf, atstype_int recap, atstype_string fmt, va_list ap0 ) { size_t m ; size_t n ; void *p_cur ; int ntot ; va_list ap1 ; // m = atslib__stringbuf_get_capacity (sbf) ; n = atslib__stringbuf_get_size (sbf) ; p_cur = atslib__stringbuf_get_ptrcur (sbf) ; // va_copy(ap1, ap0) ; ntot = vsnprintf ((char*)p_cur, m-n+1, (char*)fmt, ap1) ; va_end(ap1) ; // if (ntot > m-n && recap >= 1) { m = atslib__stringbuf_pow2min (m, n+ntot) ; atslib__stringbuf_reset_capacity (sbf, m) ; p_cur = atslib__stringbuf_get_ptrcur (sbf) ; ntot = vsnprintf ((char*)p_cur, ntot+1, (char*)fmt, ap0) ; } // if (ntot >= 0) { atslib__stringbuf_set_ptrcur (sbf, (char*)p_cur+ntot) ; } // end of [if] // return (ntot) ; // } // end of [atslib_stringbuf_insert_snprintf] // %} // end of [%{$] (* ****** ****** *) (* end of [stringbuf.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/lindeque_dllist.dats0000644000175000017500000001367113431250607022741 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" // end of [staload] (* ****** ****** *) #define nullp the_null_ptr (* ****** ****** *) staload "libats/SATS/gnode.sats" (* ****** ****** *) staload "libats/SATS/dllist.sats" staload "libats/DATS/dllist.dats" (* ****** ****** *) staload "libats/SATS/lindeque_dllist.sats" (* ****** ****** *) // extern castfn deque_encode : {a:vt0p}{n:int} (g2node0 (INV(a))) -<> deque (a, n) extern castfn deque_decode : {a:vt0p}{n:int} (deque (INV(a), n)) -<> g2node0 (a) // extern castfn deque1_encode : {a:vt0p}{n:int | n > 0} (g2node1 (INV(a))) -<> deque (a, n) extern castfn deque1_decode : {a:vt0p}{n:int | n > 0} (deque (INV(a), n)) -<> g2node1 (a) // (* ****** ****** *) implement{} lindeque_nil{a} () = $UN.castvwtp0{deque(a,0)}(nullp) (* ****** ****** *) // implement{} lindeque_is_nil{a}{n} (dq) = $UN.cast{bool(n==0)}($UN.castvwtp1{ptr}(dq) = nullp) // implement{} lindeque_isnot_nil{a}{n} (dq) = $UN.cast{bool(n > 0)}($UN.castvwtp1{ptr}(dq) > nullp) // (* ****** ****** *) implement{a} lindeque_length {n} (dq) = let // fun loop ( nxs: g2node1 (a), p0: ptr, n: int ) : int = let val nxs2 = gnode_get_next (nxs) val nxs2 = $UN.cast{g2node1(a)}(nxs2) in // if p0 != gnode2ptr (nxs2) then loop (nxs2, p0, n+1) else n // end // end of [loop] // prval () = lemma_deque_param (dq) val isnot = lindeque_isnot_nil (dq) // in // if isnot then let val nxs = $UN.castvwtp1{g2node1(a)}(dq) val len = $effmask_all (loop (nxs, gnode2ptr (nxs), 1)) in $UN.cast{int(n)}(len) end else (0) // end of [if] // end // end of [lindeque_length] (* ****** ****** *) implement{a} lindeque_insert_at (dq, i, x) = let // val nx0 = g2node_make_elt (x) in lindeque_insert_at_ngc (dq, i, nx0) // end // end of [lindeque_insert_at] implement{a} lindeque_insert_atbeg (dq, x) = let // val nx0 = g2node_make_elt (x) in lindeque_insert_atbeg_ngc (dq, nx0) // end // end of [lindeque_insert_atbeg] implement{a} lindeque_insert_atend (dq, x) = let // val nx0 = g2node_make_elt (x) in lindeque_insert_atend_ngc (dq, nx0) // end // end of [lindeque_insert_atend] (* ****** ****** *) implement{a} lindeque_takeout_at (dq, i) = let // val nx = lindeque_takeout_at_ngc (dq, i) in g2node_getfree_elt (nx) // end // end of [lindeque_takeout_at] implement{a} lindeque_takeout_atbeg (dq) = let // val nx = lindeque_takeout_atbeg_ngc (dq) in g2node_getfree_elt (nx) // end // end of [lindeque_takeout_atbeg] implement{a} lindeque_takeout_atend (dq) = let // val nx = lindeque_takeout_atend_ngc (dq) in g2node_getfree_elt (nx) // end // end of [lindeque_takeout_atend] (* ****** ****** *) implement{a} lindeque2dllist {n} (dq) = let // val nxs = deque_decode (dq) val isnot = gnode_isnot_null (nxs) // val () = if isnot then { val nxs2 = gnode_get_prev (nxs) val nxs2 = $UN.cast{g2node1(a)}(nxs2) val () = gnode_set_prev_null (nxs) val () = gnode_set_next_null (nxs2) } // end of [if] in $UN.castvwtp0{dllist(a,0,n)}(nxs) end // end of [lindeque2dllist] (* ****** ****** *) // // HX: ngc-functions should not involve malloc/free! // (* ****** ****** *) implement{a} lindeque_insert_atbeg_ngc (dq, nx0) = let // val nxs = deque_decode (dq) val isnul = gnode_is_null (nxs) // in // if isnul then let val () = gnode_link11 (nx0, nx0) in dq := deque_encode (nx0) end else let val () = gnode_insert_prev (nxs, nx0) in dq := deque_encode (nx0) end // end of [if] // end // end of [lindeque_insert_atbeg_ngc] (* ****** ****** *) implement{a} lindeque_insert_atend_ngc (dq, nx0) = let // val nxs = deque_decode (dq) val isnul = gnode_is_null (nxs) // in // if isnul then let val () = gnode_link11 (nx0, nx0) in dq := deque_encode (nx0) end else let val () = gnode_insert_prev (nxs, nx0) in dq := deque_encode (nxs) end // end of [if] // end // end of [lindeque_insert_atend_ngc] (* ****** ****** *) implement{a} lindeque_takeout_atbeg_ngc (dq) = let // val nxs = deque1_decode (dq) val nxs2 = gnode_get_next (nxs) // val p = gnode2ptr (nxs) val p2 = gnode2ptr (nxs2) // val nxs = gnode_remove (nxs) // in // if (p != p2) then let val () = dq := deque_encode (nxs2) in nxs end else let val () = dq := deque_encode (gnode_null ()) in nxs end // end of [if] // end // end of [lindeque_takeout_atbeg_ngc] (* ****** ****** *) implement{a} lindeque_takeout_atend_ngc (dq) = let // val nxs = deque1_decode (dq) val nxs2 = gnode_remove_prev (nxs) val nxs2 = $UN.cast{g2node1(a)}(nxs2) // val p = gnode2ptr (nxs) val p2 = gnode2ptr (nxs2) // in // if (p != p2) then let val () = dq := deque_encode (nxs) in nxs2 end else let val () = dq := deque_encode (gnode_null ()) in nxs2 end // end of [if] // end // end of [lindeque_takeout_atend_ngc] (* ****** ****** *) (* end of [lindeque_dllist.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/qlist.dats0000644000175000017500000002224613431250607020712 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/qlist.sats" (* ****** ****** *) implement {}(*tmp*) qlist_make_nil () = pq where { // val ( pf, pfgc | p ) = ptr_alloc () // val pq = ptr2ptrlin (p) val () = qstruct_initize (!p) // prval pfngc = qstruct_objfize (pf | pq) prval ((*freed*)) = mfree_gcngc_v_nullify (pfgc, pfngc) // } (* end of [qlist_make] *) implement {}(*tmp*) qlist_free_nil {a}(pq) = () where { // val () = __mfree(pq) where { extern fun __mfree : qlist (a, 0) -<0,!wrt> void = "mac#atspre_mfree_gc" } // end of [where] // end of [val] // } (* end of [qlist_free_nil] *) (* ****** ****** *) implement {a}(*tmp*) qlist_insert (pq, x) = let // val nx = mynode_make_elt(x) in qlist_insert_ngc(pq, nx) // end // end of [qlist_insert] implement {a}(*tmp*) qstruct_insert (que, x) = let // val pq = addr@(que) val pq2 = ptr2ptrlin(pq) // prval pfngc = qstruct_objfize(view@(que)|pq2) // val () = qlist_insert(pq2, x) // prval pfat = qstruct_unobjfize(pfngc | pq, pq2) // prval () = (view@(que) := pfat) // prval () = ptrlin_free(pq2) // in // nothing end // end of [qstruct_insert] (* ****** ****** *) implement {a}(*tmp*) qlist_takeout(pq) = let // val nx0 = qlist_takeout_ngc(pq) in mynode_getfree_elt(nx0) // end // end of [qlist_takeout] implement {a}(*tmp*) qlist_takeout_opt(pq) = ( if qlist_isnot_nil(pq) then Some_vt{a}(qlist_takeout(pq)) else None_vt{a}() // end of [if] ) // end of [qlist_takeout_opt] (* ****** ****** *) implement {a}(*tmp*) qstruct_takeout (que) = res where { // val pq = addr@(que) val pq2 = ptr2ptrlin(pq) // prval pfngc = qstruct_objfize(view@(que)|pq2) // val res = qlist_takeout(pq2) // prval pfat = qstruct_unobjfize(pfngc | pq, pq2) // prval () = (view@(que) := pfat) // prval () = ptrlin_free(pq2) // } // end of [qstruct_takeout] (* ****** ****** *) stadef mykind = $extkind"atslib_qlist" (* ****** ****** *) datavtype qlist_data(a:vt@ype+) = QLIST of (ptr, ptr) (* ****** ****** *) assume qlist_vtype(a: vt0p, n: int) = qlist_data(a) (* ****** ****** *) implement {a}(*tmp*) qlist_is_nil {n} (pq) = let // val+@QLIST (nxf, p_nxr) = pq val isnil = (addr@(nxf) = p_nxr) prval () = fold@ (pq) // in $UN.cast{bool(n==0)}(isnil) end // end of [qlist_is_nil] implement {a}(*tmp*) qlist_isnot_nil {n} (pq) = let // val+@QLIST (nxf, p_nxr) = pq val isnot = (addr@(nxf) != p_nxr) prval ((*prf*)) = fold@ (pq) // in $UN.cast{bool(n > 0)}(isnot) end // end of [qlist_isnot_nil] (* ****** ****** *) implement {a}(*tmp*) qlist_length {n} (pq) = let // implement {a}{ env } qlist_foreach$cont(x, env) = true implement qlist_foreach$fwork(x, env) = env := env+1 // var env: int = (0) // val () = $effmask_all(qlist_foreach_env(pq, env)) // in $UN.cast{int(n)}(env) end // end of [qlist_length] (* ****** ****** *) implement {}(*tmp*) fprint_qlist$sep (out) = fprint_string (out, "->") // implement {a}(*tmp*) fprint_qlist (out, pq) = let // implement {a}{ env } qlist_foreach$cont (x, env) = true // implement qlist_foreach$fwork (x0, env) = let val () = if env > 0 then fprint_qlist$sep<>(out) // end of [if] val () = (env := env + 1) val () = fprint_ref(out, x0) in // nothing end // end of [qlist_foreach$fwork] // var env: int = 0 // in qlist_foreach_env(pq, env) end // end of [fprint_qlist] (* ****** ****** *) implement {a}(*tmp*) fprint_qlist_sep (out, pq, sep) = let // implement {}(* tmp *) fprint_qlist$sep (out) = fprint_string (out, sep) // in fprint_qlist (out, pq) end // end of [fprint_qlist_sep] (* ****** ****** *) implement {a}{ env } qlist_foreach$cont(_x_, env) = true implement {a}(*tmp*) qlist_foreach(pq) = let // var env: void = () in qlist_foreach_env(pq, env) // end // end of [qlist_foreach] implement {a}{ env } qlist_foreach_env (pq, env) = let // fun loop ( p_nxf: ptr, p_nxr: ptr, env: &env ) : void = let in // if p_nxf != p_nxr then let // val xs = $UN.ptr0_get(p_nxf) // end of [val] val+@list_vt_cons(x1, xs2) = xs // val test = qlist_foreach$cont(x1, env) // val () = ( // if test then let // val () = qlist_foreach$fwork(x1, env) // in loop(addr@(xs2), p_nxr, env) end // end of [then] // end of [if] // ) : void // end of [val] // prval ((*proof*)) = fold@ (xs) prval ((*proof*)) = $UN.cast2void(xs) // in // nothing end else () // end of [if] // end // end of [loop] // val+@QLIST(nxf, p_nxr) = pq // val () = loop(addr@(nxf), p_nxr, env) // prval ((*folded*)) = fold@(pq) // in // nothing end // end of [qlist_foreach_env] (* ****** ****** *) implement {}(* tmp *) qstruct_initize {a}(que) = let // val pq = $UN.castvwtp0 {qlist(a,0)}(addr@(que)) // end of [val] // val+@QLIST(nxf, p_nxr) = pq val () = (p_nxr := addr@ (nxf)) // prval () = fold@(pq) // prval () = __assert(que, pq) where { extern praxi __assert (que: &qstruct? >> qstruct(a, 0), pq: qlist(a, 0)): void // end of [extern] } // end of [where] // end of [prval] // in (* DoNothing *) end // end of [qstruct_initize] (* ****** ****** *) extern castfn mynode1_encode {a:vt0p} (xs: List1_vt(INV(a))):<> mynode1(a) // end of [mynode1_encode] extern castfn mynode1_decode {a:vt0p} (nx: mynode1(INV(a))):<> List1_vt(a) // end of [mynode1_decode] (* ****** ****** *) implement {}(*tmp*) mynode_null{a}() = $UN.castvwtp0{mynode(a,null)}(list_vt_nil) // end of [mynode_null] (* ****** ****** *) implement {a}(*tmp*) mynode_make_elt (x) = $UN.castvwtp0{mynode1(a)}(list_vt_cons{a}{0}(x, _)) // end of [mynode_make_elt] implement {a}(*tmp*) mynode_free_elt (nx, res) = () where { // val xs = mynode1_decode(nx) // val+~list_vt_cons(x1, xs2) = xs // val () = (res := x1) // prval () = __assert (xs2) where { extern praxi __assert : {vt:vtype} (vt) - void } // end of [where] // end of [prval] // } (* end of [mynode_free_elt] *) (* ****** ****** *) implement {a}(*tmp*) mynode_getfree_elt (nx) = (x1) where { // val xs = mynode1_decode(nx) // val+~list_vt_cons(x1, xs2) = xs // prval () = __assert(xs2) where { extern praxi __assert : {vt:vtype} (vt) - void } // end of [where] // end of [prval] // } (* end of [mynode_getfree_elt] *) (* ****** ****** *) implement {a}(*tmp*) qlist_insert_ngc (pq, nx0) = let // val+@QLIST(nxf, p_nxr) = pq // val xs = mynode1_decode(nx0) val+@list_vt_cons(_, xs2) = xs // val p2_nxr = addr@(xs2) prval ((*folded*)) = fold@(xs) // val nx0 = mynode1_encode(xs) // val () = $UN.ptr0_set(p_nxr, nx0) // val () = (p_nxr := p2_nxr) // prval ((*folded*)) = fold@ (pq) // in // nothing end // end of [qlist_insert_ngc] (* ****** ****** *) implement {a}(*tmp*) qlist_takeout_ngc (q0) = nx0 where { // val+@QLIST(nxf, p_nxr) = q0 // val nx0 = $UN.castvwtp0{mynode1(a)}(nxf) // val xs = mynode1_decode(nx0) val+@list_vt_cons (_, xs2) = xs // val p2_nxr = addr@(xs2) prval ((*folded*)) = fold@(xs) // val nx0 = mynode1_encode(xs) // val () = ( // if (p_nxr != p2_nxr) then ( nxf := $UN.ptr0_get(p2_nxr) ) (* end of [then] *) else p_nxr := addr@(nxf) // ) : void // end of [val] // prval ((*folded*)) = fold@ (q0) // } // end of [qlist_takeout_ngc] (* ****** ****** *) implement {}(* tmp *) qlist_takeout_list {a}{n}(pq) = xs where { // val+@QLIST(nxf, p_nxr) = pq // val () = $UN.ptr0_set(p_nxr, the_null_ptr) // val xs = $UN.castvwtp0{list_vt(a,n)}(nxf) // val () = p_nxr := addr@(nxf) // prval ((*folded*)) = fold@(pq) // } // end of [qlist_takeout_list] implement {}(* tmp *) qstruct_takeout_list {a}{n}(que) = xs where { // val pq = addr@(que) val pq2 = ptr2ptrlin (pq) // prval pfngc = qstruct_objfize(view@(que)|pq2) // val xs = qlist_takeout_list(pq2) prval pfat = qstruct_unobjfize(pfngc | pq, pq2) // prval () = (view@(que) := pfat) // prval () = ptrlin_free (pq2) // } (* end of [qstruct_takeout_list] *) (* ****** ****** *) (* end of [qlist.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/gflist_vt.dats0000644000175000017500000002115013431250607021550 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // Time: October, 2010 // (* ****** ****** *) // // HX: // generic functional lists (fully indexed) // (* ****** ****** *) // // HX-2012-11-28: // ported to ATS/Postiats from ATS/Anairiats // (* ****** ****** *) // staload "libats/SATS/ilist_prf.sats" // staload "libats/SATS/gflist.sats" staload "libats/SATS/gflist_vt.sats" // (* ****** ****** *) implement {a}(*tmp*) gflist_vt_length(xs) = let // fun loop {xs:ilist}{j:int} .. ( xs: !gflist_vt(a, xs), j: int j ) :<> [i:nat] (LENGTH(xs, i) | int(i+j)) = let in // case+ xs of | gflist_vt_cons (_, xs) => let val (pf | res) = loop(xs, j+1) in (LENGTHcons(pf) | res) end // end of [gflist_vt_cons] | gflist_vt_nil () => (LENGTHnil() | j) // end // end of [loop] // in loop (xs, 0) end // end of [gflist_vt_length] (* ****** ****** *) // implement {a}(*tmp*) gflist_vt_snoc {xs}{x0}(xs, x0) = let // val (pfapp | res) = gflist_vt_append (xs, gflist_vt_sing(x0)) // extern praxi lemma : {xsx:ilist} APPEND(xs, ilist_sing(x0), xsx) -> SNOC(xs, x0, xsx) // in (lemma(pfapp) | res) end // end of [gflist_vt_snoc] (* ****** ****** *) implement {a}(*tmp*) gflist_vt_append (xs, ys) = let // fun loop {xs:ilist} {ys:ilist} .. ( xs: gflist_vt(a, xs) , ys: gflist_vt(a, ys) , res: &ptr? >> gflist_vt(a, zs) ) : #[zs:ilist] (APPEND (xs, ys, zs) | void) = let (* // val () = println!("gflist_vt_append: loop") // *) in // case+ xs of | @gflist_vt_cons (x, xs1) => let val () = res := xs val xs = xs1 val (pf | ()) = loop(xs, ys, xs1) prval () = fold@(res) in (APPENDcons(pf) | ()) end // end of [gflist_vt_cons] | ~gflist_vt_nil () => let val () = res := ys in (APPENDnil() | ()) end // end of [gflist_vt_nil] // end // end of [loop] // var res: ptr // uninitialized // val (pf | ()) = loop(xs, ys, res) // in (pf | res) end // end of [gflist_vt_append] (* ****** ****** *) implement {a}(*tmp*) gflist_vt_revapp (xs, ys) = let in // case+ xs of | @gflist_vt_cons (x, xs1) => let val xs1_ = xs1 val () = xs1 := ys prval () = fold@ (xs) val (pf | res) = gflist_vt_revapp(xs1_, xs) // end of [val] in (REVAPPcons(pf) | res) end // end of [gflist_vt_cons] | ~gflist_vt_nil() => (REVAPPnil() | ys) // end // end of [gflist_vt_append] implement {a}(*tmp*) gflist_vt_reverse(xs) = gflist_vt_revapp(xs, gflist_vt_nil) (* ****** ****** *) local (* // // HX-2012-11-28: // mergesort on gflist_vt // ported from ATS/Anairiats // *) fun{ a:vt0p } split {xs:ilist} {n,i:nat | i <= n} .. ( pflen: LENGTH(xs, n) | xs: &gflist_vt(a, xs) >> gflist_vt(a, xs1), i: int i ) : #[xs1,xs2:ilist] ( APPEND(xs1, xs2, xs), LENGTH(xs1, i) | gflist_vt(a, xs2) ) = ( if (i = 0) then let // val xs2 = xs val () = (xs := gflist_vt_nil()) // end of [val] prval pfapp = append_unit_left() // in (pfapp, LENGTHnil() | xs2) end // end of [else] else let // prval LENGTHcons(pflen) = pflen val @gflist_vt_cons(_, xs1) = xs val (pfapp, pf1len | xs2) = split(pflen | xs1, i-1) prval ((*folded*)) = fold@ (xs) // in (APPENDcons(pfapp), LENGTHcons(pf1len) | xs2) end // end of [then] // ) (* end of [split] *) (* ****** ****** *) // absprop UNION ( ys1: ilist, ys2: ilist, res: ilist ) (* end of [absprop] *) // (* ****** ****** *) extern prfun union_commute {ys1,ys2:ilist} {ys:ilist} (pf: UNION(ys1, ys2, ys)): UNION(ys2, ys1, ys) // end of [union_commute] extern prfun union_nil1{ys:ilist}(): UNION(ilist_nil, ys, ys) extern prfun union_nil2{ys:ilist}(): UNION(ys, ilist_nil, ys) extern prfun union_cons1 {y:int} {ys1,ys2:ilist} {ys:ilist} ( pf: UNION(ys1, ys2, ys) ) : UNION(ilist_cons(y, ys1), ys2, ilist_cons(y, ys)) // end of [union_cons1] extern prfun union_cons2 {y:int} {ys1,ys2:ilist} {ys:ilist} ( pf: UNION(ys1, ys2, ys) ) : UNION(ys1, ilist_cons(y, ys2), ilist_cons(y, ys)) // end of [union_cons2] extern prfun isord_union_cons {y1,y2:int | y1 <= y2} {ys1,ys2:ilist}{ys:ilist} ( pf1: ISORD(ilist_cons(y1, ys1)) , pf2: ISORD(ilist_cons(y2, ys2)) , pf3: UNION(ys1, ilist_cons(y2, ys2), ys) , pf4: ISORD(ys) ) : ISORD(ilist_cons(y1, ys)) (* ****** ****** *) fun{ a:vt0p } merge {ys1,ys2:ilist} ( pf1ord: ISORD(ys1) , pf2ord: ISORD(ys2) | ys1: gflist_vt(a, ys1), ys2: gflist_vt(a, ys2) , ys: &ptr? >> gflist_vt(a, ys) ) : #[ys:ilist] (UNION(ys1, ys2, ys), ISORD(ys) | void) = case+ ys1 of | @gflist_vt_cons (y1, ys1_tl) => ( case+ ys2 of | @gflist_vt_cons (y2, ys2_tl) => let val sgn = gflist_vt_mergesort$cmp (y1, y2) in if sgn <= 0 then let val () = ys := ys1; val ys1 = ys1_tl prval () = fold@ (ys2) prval ISORDcons(pf1ord1, _) = pf1ord val (pfuni, pford | ()) = merge(pf1ord1, pf2ord | ys1, ys2, ys1_tl) prval pford = isord_union_cons(pf1ord, pf2ord, pfuni, pford) prval () = fold@ (ys) prval pfuni = union_cons1 (pfuni) in (pfuni, pford | ()) end else let prval () = fold@ (ys1) val () = ys := ys2; val ys2 = ys2_tl prval ISORDcons(pf2ord1, _) = pf2ord val (pfuni, pford | ()) = merge(pf1ord, pf2ord1 | ys1, ys2, ys2_tl) prval pfuni = union_commute(pfuni) prval pford = isord_union_cons(pf2ord, pf1ord, pfuni, pford) prval () = fold@ (ys) prval pfuni = union_cons1 (pfuni) prval pfuni = union_commute (pfuni) in (pfuni, pford | ()) end // end of [if] end // end of [gflist_vt_cons] | ~gflist_vt_nil () => let val () = fold@ (ys1); val () = ys := ys1 in (union_nil2 (), pf1ord | ()) end // end of [gflist_vt_nil] ) (* end of [gflist_vt_cons] *) | ~gflist_vt_nil () => let val () = ys := ys2 in (union_nil1(), pf2ord | ()) end // end of [gflist_vt_nil] // end of [merge] (* ****** ****** *) extern prfun sort_nilsing {xs:ilist} {n:nat | n <= 1} (pf: LENGTH(xs, n)): SORT(xs, xs) // end of [sort_nilsing] (* ****** ****** *) fun{ a:vt0p } msort {xs:ilist}{n:nat} .. ( pflen: LENGTH(xs, n) | xs: gflist_vt(a, xs), n: int n ) : [ys:ilist] ( SORT(xs, ys) | gflist_vt(a, ys) ) = let in // if (n >= 2) then let var xs = xs val n2 = half(n) val (pfapp, pf1len | xs2) = split(pflen | xs, n2) val xs1 = xs prval pf2len = length_istot() prval pflen_alt = lemma_append_length(pfapp, pf1len, pf2len) prval () = length_isfun(pflen, pflen_alt) val (pf1srt | ys1) = msort (pf1len | xs1, n2) prval (pf1ord, pf1perm) = sort_elim (pf1srt) val (pf2srt | ys2) = msort (pf2len | xs2, n-n2) prval (pf2ord, pf2perm) = sort_elim (pf2srt) val (pfuni, pford | ()) = merge (pf1ord, pf2ord | ys1, ys2, xs) // prval pfperm = lemma ( pfapp, pf1perm, pf2perm, pfuni ) where { extern prfun lemma {xs1,xs2:ilist}{xs:ilist} {ys1,ys2:ilist}{ys:ilist} ( APPEND(xs1, xs2, xs) , PERMUTE(xs1, ys1), PERMUTE(xs2, ys2), UNION(ys1, ys2, ys) ) : PERMUTE(xs, ys) // end of [lemma] } (* end of [where] *) // end of [prval] // prval pfsrt = sort_make(pford, pfperm) // in (pfsrt | xs) end else (sort_nilsing (pflen) | xs) // end of [if] // end // end of [msort] in (* in of [local] *) implement {a}(*tmp*) gflist_vt_mergesort(xs) = let val (pflen | n) = gflist_vt_length(xs) in msort(pflen | xs, n) end // end of [mergesort] end // end of [local] (* ****** ****** *) (* end of [gflist_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/funset_avltree.dats0000644000175000017500000004702213431250607022603 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.funset_avltree" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/funset_avltree.sats" (* ****** ****** *) // #include "./SHARE/funset.hats" // code reuse // (* ****** ****** *) // // HX: maximal height difference of two siblings // #define HTDF 1 #define HTDF1 (HTDF+1) #define HTDF_1 (HTDF-1) // (* ****** ****** *) datatype avltree ( a:t@ype+, int(*height*) ) = | {hl,hr:nat | hl <= hr+HTDF; hr <= hl+HTDF} B (a, 1+max(hl,hr)) of (int (1+max(hl,hr)), a, avltree (a, hl), avltree (a, hr)) | E (a, 0) of ((*void*)) // end of [avltree] typedef avltree_inc (a:t0p, h:int) = [h1:nat | h <= h1; h1 <= h+1] avltree (a, h1) // end of [avltree_inc] // end of [typedef] typedef avltree_dec (a:t0p, h:int) = [h1:nat | h1 <= h; h <= h1+1] avltree (a, h1) // end of [avltree_dec] // end of [typedef] (* ****** ****** *) assume set_type (a:t@ype) = [h:nat] avltree (a, h) (* ****** ****** *) implement{} funset_nil () = E () implement{} funset_make_nil () = E () (* ****** ****** *) implement{a} funset_sing (x) = B{a}(1, x, E, E) implement{a} funset_make_sing (x) = B{a}(1, x, E, E) (* ****** ****** *) implement {a}(*tmp*) funset_size (xs) = aux (xs) where { // fun aux {h:nat} .. (t: avltree (a, h)):<> size_t = ( case+ t of | B (_, _, tl, tr) => succ(aux (tl) + aux (tr)) | E ((*void*)) => i2sz(0) ) (* end of [aux] *) // } // end of [funset_size] (* ****** ****** *) implement{} funset_is_nil (xs) = ( case+ xs of B _ => false | E () => true ) implement{} funset_isnot_nil (xs) = ( case+ xs of B _ => true | E () => false ) (* ****** ****** *) implement{a} funset_is_member (xs, x0) = aux (xs) where { // fun aux {h:nat} .. (t: avltree (a, h)):<> bool = let in // case+ t of | B (_, x, tl, tr) => let val sgn = compare_elt_elt (x0, x) in if sgn < 0 then aux (tl) else (if sgn > 0 then aux (tr) else true) // end of [if] end // end of [B] | E ((*void*)) => false // end // end of [aux] // } // end of [funset_is_member] (* ****** ****** *) macdef avlht (t) = ( case+ ,(t) of B (h, _, _, _) => h | E ((*void*)) => 0 ) // end of [avlht] (* ****** ****** *) fun{a:t0p} avlmax{h:pos} .. (t: avltree (a, h)):<> a = let // val+B{..}{hl,hr}(h, x, tl, tr) = t // in // case+ tr of B _ => avlmax (tr) | E () => x // end // end of [avlmax] (* ****** ****** *) fun{a:t0p} avlmin{h:pos} .. (t: avltree (a, h)):<> a = let // val+B{..}{hl,hr}(h, x, tl, tr) = t // in // case+ tl of B _ => avlmin (tl) | E () => x // end // end of [avlmin] (* ****** ****** *) (* ** left rotation for restoring height invariant *) fn{a:t0p} avltree_lrotate {hl,hr:nat | hl+HTDF1 == hr} ( x: a , hl : int hl , tl: avltree (a, hl) , hr : int hr , tr: avltree (a, hr) ) :<> avltree_inc (a, hr) = let val+B{..}{hrl,hrr}(_, xr, trl, trr) = tr val hrl = avlht(trl) : int hrl and hrr = avlht(trr) : int hrr in // if hrl <= hrr+HTDF_1 then let val hrl1 = hrl + 1 in B{a}(1+max(hrl1,hrr), xr, B{a}(hrl1, x, tl, trl), trr) end else let // [hrl=hrr+2]: deep rotation val+B{..}{hrll,hrlr}(_(*hrl*), xrl, trll, trlr) = trl val hrll = avlht(trll) : int hrll and hrlr = avlht(trlr) : int hrlr in B{a}(hr, xrl, B{a}(1+max(hl,hrll), x, tl, trll), B{a}(1+max(hrlr,hrr), xr, trlr, trr)) end // end of [if] // end // end of [avltree_lrotate] (* ****** ****** *) (* ** right rotation for restoring height invariant *) fn{a:t0p} avltree_rrotate {hl,hr:nat | hl == hr+HTDF1} ( x: a , hl: int hl , tl: avltree (a, hl) , hr: int hr , tr: avltree (a, hr) ) :<> avltree_inc (a, hl) = let val+B{..}{hll,hlr}(_(*hl*), xl, tll, tlr) = tl val hll = avlht(tll) : int hll and hlr = avlht(tlr) : int hlr in // if hll+HTDF_1 >= hlr then let val hlr1 = hlr + 1 in B{a}(1+max(hll,hlr1), xl, tll, B{a}(hlr1, x, tlr, tr)) end else let val+B{..}{hlrl,hlrr}(_(*hlr*), xlr, tlrl, tlrr) = tlr val hlrl = avlht(tlrl) : int hlrl and hlrr = avlht(tlrr) : int hlrr in B{a}(hl, xlr, B{a}(1+max(hll,hlrl), xl, tll, tlrl), B{a}(1+max(hlrr,hr), x, tlrr, tr)) end // end of [if] // end // end of [avltree_rrotate] (* ****** ****** *) implement{a} funset_insert (xs, x0) = found where { // fun insert {h:nat} .. ( t: avltree (a, h), found: &bool? >> bool ) : avltree_inc (a, h) = let in // case+ t of | B {..}{hl,hr} (h, x, tl, tr) => let val sgn = compare_elt_elt (x0, x) in if sgn < 0 then let val [hl:int] tl = insert (tl, found) val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in if hl-hr <= HTDF then B{a}(1+max(hl,hr), x, tl, tr) else avltree_rrotate (x, hl, tl, hr, tr) // end of [if] end else if sgn > 0 then let val [hr:int] tr = insert (tr, found) val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in if hr-hl <= HTDF then B{a}(1+max(hl, hr), x, tl, tr) else avltree_lrotate (x, hl, tl, hr, tr) // end of [if] end else let (* [k0] already exists *) val () = found := true in B{a}(h, x0, tl, tr) end // end of [if] end // end of [B] | E ((*void*)) => let // [x0] is not in [xs] val () = found := false in B{a}(1, x0, E(), E()) end // end of [E] end // end of [insert] // var found: bool // uninitialized val () = (xs := insert (xs, found)) // } // end of [funset_insert] (* ****** ****** *) fun{a:t0p} avlmaxout{h:pos} .. ( t: avltree (a, h), x0: &a? >> a ) : avltree_dec (a, h) = let // val+B{..}{hl,hr}(h, x, tl, tr) = t // in // case+ tr of | B _ => let val [hr:int] tr = avlmaxout (tr, x0) val hl = avlht(tl) : int(hl) and hr = avlht(tr) : int(hr) in if hl-hr <= HTDF then B{a}(1+max(hl,hr), x, tl, tr) else avltree_rrotate (x, hl, tl, hr, tr) // end of [if] end // end of [B] | E () => (x0 := x; tl) // end // end of [avlmaxout] (* ****** ****** *) fun{a:t0p} avlminout{h:pos} .. ( t: avltree (a, h), x0: &a? >> a ) : avltree_dec (a, h) = let // val+B{..}{hl,hr}(h, x, tl, tr) = t // in // case+ tl of | B _ => let val [hl:int] tl = avlminout (tl, x0) val hl = avlht(tl) : int(hl) and hr = avlht(tr) : int(hr) in if hr-hl <= HTDF then B{a}(1+max(hl,hr), x, tl, tr) else avltree_lrotate (x, hl, tl, hr, tr) // end of [if] end // end of [B] | E () => (x0 := x; tr) // end // end of [avlminout] (* ****** ****** *) (* ** left join: height(tl) >= height(tr) *) fun{a:t0p} avltree_ljoin {hl,hr:nat | hl >= hr} .. ( x: a, tl: avltree (a, hl), tr: avltree (a, hr) ) :<> avltree_inc (a, hl) = let val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in // if hl >= hr + HTDF1 then let val+B{..}{hll, hlr}(_, xl, tll, tlr) = tl val [hlr:int] tlr = avltree_ljoin (x, tlr, tr) val hll = avlht(tll) : int hll and hlr = avlht(tlr) : int hlr in if hlr <= hll + HTDF then B{a}(max(hll,hlr)+1, xl, tll, tlr) else avltree_lrotate (xl, hll, tll, hlr, tlr) // end of [if] end else B{a}(hl+1, x, tl, tr) // end of [if] // end // end of [avltree_ljoin] (* ****** ****** *) (* ** right join: height(tl) <= height(tr) *) fun{a:t0p} avltree_rjoin {hl,hr:nat | hl <= hr} .
. ( x: a, tl: avltree (a, hl), tr: avltree (a, hr) ) :<> avltree_inc (a, hr) = let val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in // if hr >= hl + HTDF1 then let val+B{..}{hrl,hrr}(_, xr, trl, trr) = tr val [hrl:int] trl = avltree_rjoin
(x, tl, trl) val hrl = avlht(trl) : int hrl and hrr = avlht(trr) : int hrr in if hrl <= hrr + HTDF then B{a}(max(hrl,hrr)+1, xr, trl, trr) else avltree_rrotate (xr, hrl, trl, hrr, trr) // end of [if] end else B{a}(hr+1, x, tl, tr) // end of [if] // end // end of [avltree_rjoin] (* ****** ****** *) fn{a:t0p} avltree_join3 {hl,hr:nat} ( x: a, tl: avltree (a, hl), tr: avltree (a, hr) ) :<> [ h:int | hl <= h; hr <= h; h <= max(hl,hr)+1 ] avltree (a, h) = let val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in if hl >= hr then avltree_ljoin (x, tl, tr) else avltree_rjoin (x, tl, tr) // end of [if] end // end of [avltree_join3] (* ****** ****** *) fn{a:t0p} avltree_join2 {hl,hr:nat} ( tl: avltree (a, hl), tr: avltree (a, hr) ) :<> [h:nat | h <= max(hl,hr)+1] avltree (a, h) = ( case+ (tl, tr) of | (E (), _) => tr | (_, E ()) => tl | (_, _) =>> let var xmin: a // uninitialized val tr = $effmask_wrt (avlminout (tr, xmin)) in avltree_join3 (xmin, tl, tr) end // end of [_, _] ) // end of [avltree_join2] (* ****** ****** *) fun{a:t@ype} avltree_split_at {h:nat} .. ( t: avltree (a, h), x0: a , tl0: &ptr? >> avltree (a, hl) , tr0: &ptr? >> avltree (a, hr) ) : #[i,hl,hr:nat | i <= 1; hl <= h; hr <= h] int (i) = ( case+ t of | B (_, x, tl, tr) => let val sgn = compare_elt_elt (x0, x) in if sgn < 0 then let val i = avltree_split_at (tl, x0, tl0, tr0) in tr0 := avltree_join3 (x, tr0, tr); i end else if sgn > 0 then let val i = avltree_split_at (tr, x0, tl0, tr0) in tl0 := avltree_join3 (x, tl, tl0); i end else ( tl0 := tl; tr0 := tr; 1 // [x] is found in [t] ) // end of [if] end // end of [B] | E ((*void*)) => (tl0 := E (); tr0 := E (); 0) ) // end of [avltree_split_at] (* ****** ****** *) implement{a} funset_remove (xs, x0) = let // fun remove{h:nat} .. ( t: avltree (a, h), found: &bool? >> bool ) : avltree_dec (a, h) = let in // case+ t of | B {..}{hl,hr} (h, x, tl, tr) => let val sgn = compare_elt_elt (x0, x) in case+ 0 of | _ when sgn < 0 => let val [hl:int] tl = remove (tl, found) val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in if hr-hl <= HTDF then B{a}(1+max(hl,hr), x, tl, tr) else avltree_lrotate (x, hl, tl, hr, tr) // end of [if] end // end of [sgn < 0] | _ when sgn > 0 => let val [hr:int] tr = remove (tr, found) val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in if hl-hr <= HTDF then B{a}(1+max(hl,hr), x, tl, tr) else avltree_rrotate (x, hl, tl, hr, tr) // end of [if] end // end of [sgn > 0] | _ (*sgn = 0*) => let val () = found := true in case+ tr of | B _ => let var xmin: a? // uninitialized val [hr:int] tr = avlminout (tr, xmin) val hl = avlht(tl) : int (hl) and hr = avlht(tr) : int (hr) in if hl-hr <= HTDF then B{a}(1+max(hl,hr), xmin, tl, tr) else avltree_rrotate (xmin, hl, tl, hr, tr) // end of [if] end // end of [B] | E _ => tl end // end of [sgn = 0] end // end of [B] | E ((*void*)) => let val () = found := false in E () end (* end of [E] *) // end // end of [remove] // var found: bool val () = (xs := remove (xs, found)) // in found end // end of [funset_remove] (* ****** ****** *) implement{a} funset_getmax (xs, x0) = let in // case+ xs of | B _ => let val () = x0 := avlmax (xs) prval () = opt_some{a}(x0) in true end // end of [B] | E _ => let prval () = opt_none{a}(x0) in false end // end of [E] // end // end of [funset_getmax] (* ****** ****** *) implement{a} funset_getmin (xs, x0) = let in // case+ xs of | B _ => let val () = x0 := avlmin (xs) prval () = opt_some{a}(x0) in true end // end of [B] | E _ => let prval () = opt_none{a}(x0) in false end // end of [E] // end // end of [funset_getmin] (* ****** ****** *) implement{a} funset_takeoutmax (xs, x0) = let in // case+ xs of | B _ => let val ( ) = xs := avlmaxout (xs, x0) prval ((*void*)) = opt_some{a}(x0) in true end // end of [B] | E _ => let prval () = opt_none{a}(x0) in false end // end of [E] // end // end of [funset_takeoutmax] (* ****** ****** *) implement{a} funset_takeoutmin (xs, x0) = let in // case+ xs of | B _ => let val ( ) = xs := avlminout (xs, x0) prval ((*void*)) = opt_some{a}(x0) in true end // end of [B] | E _ => let prval () = opt_none{a}(x0) in false end // end of [E] // end // end of [funset_takeoutmin] (* ****** ****** *) implement {a}(*tmp*) funset_union (t1, t2) = let // fun aux {h1,h2:nat} .

. ( t1: avltree (a, h1) , t2: avltree (a, h2) ) : [h:nat] avltree (a, h) = ( case+ (t1, t2) of | (E (), _) => t2 | (_, E ()) => t1 | (_, _) =>> let val+B (_, x1, t1l, t1r) = t1 var t2l0: ptr and t2r0: ptr val i = avltree_split_at (t2, x1, t2l0, t2r0) val t12l = aux (t1l, t2l0) and t12r = aux (t1r, t2r0) in avltree_join3 (x1, t12l, t12r) end // end of [_, _] ) // end of [aux] // [aux] is a keyword // in // $effmask_wrt (aux (t1, t2)) // end // end of [funset_union] (* ****** ****** *) implement {a}(*tmp*) funset_intersect (t1, t2) = let // fun aux {h1,h2:nat} .

. ( t1: avltree (a, h1), t2: avltree (a, h2) ) : [h:nat] avltree (a, h) = let in // case+ (t1, t2) of | (E (), _) => E () | (_, E ()) => E () | (_, _) =>> let val+B (_, x1, t1l, t1r) = t1 var t2l0: ptr and t2r0: ptr val i = avltree_split_at (t2, x1, t2l0, t2r0) val t12l = aux (t1l, t2l0) and t12r = aux (t1r, t2r0) in if i = 0 then avltree_join2 (t12l, t12r) else avltree_join3 (x1, t12l, t12r) // end of [if] end // end of [_, _] end // end // end of [aux] // in // $effmask_wrt (aux (t1, t2)) // end // end of [funset_intersect] (* ****** ****** *) implement {a}(*tmp*) funset_differ (t1, t2) = let // fun aux {h1,h2:nat} .

. ( t1: avltree (a, h1), t2: avltree (a, h2) ) : [h:nat] avltree (a, h) = let in // case+ (t1, t2) of | (E (), _) => E () | (_, E ()) => t1 | (_, _) =>> let val+B (_, x1, t1l, t1r) = t1 var t2l0: ptr and t2r0: ptr val i = avltree_split_at (t2, x1, t2l0, t2r0) val t12l = aux (t1l, t2l0) and t12r = aux (t1r, t2r0) in if i > 0 then avltree_join2 (t12l, t12r) else avltree_join3 (x1, t12l, t12r) // end of [if] end // end of [_, _] // end // end of [aux] // in // $effmask_wrt (aux (t1, t2)) // end // end of [funset_differ] (* ****** ****** *) implement {a}(*tmp*) funset_symdiff (t1, t2) = let // fun aux {h1,h2:nat} .

. ( t1: avltree (a, h1), t2: avltree (a, h2) ) : [h:nat] avltree (a, h) = let in // case+ (t1, t2) of | (E (), _) => t2 | (_, E ()) => t1 | (_, _) =>> let val+B (_, x1, t1l, t1r) = t1 var t2l0: ptr and t2r0: ptr val i = avltree_split_at (t2, x1, t2l0, t2r0) val t12l = aux (t1l, t2l0) and t12r = aux (t1r, t2r0) in if i > 0 then avltree_join2 (t12l, t12r) else avltree_join3 (x1, t12l, t12r) // end of [if] end // end of [_, _] // end // end of [aux] // in // $effmask_wrt (aux (t1, t2)) // end // end of [funset_symdiff] (* ****** ****** *) implement{a} funset_equal (t1, t2) = let // fun aux {h1,h2:nat} .

. ( t1: avltree (a, h1), t2: avltree (a, h2) ) : bool = let in // case+ (t1, t2) of | (E _, E _) => true | (E _, B _) => false | (B _, E _) => false | (_, _) =>> let val+B(_, x1, t1l, t1r) = t1 var t2l0: ptr and t2r0: ptr val i = avltree_split_at (t2, x1, t2l0, t2r0) in if i > 0 then (if aux (t1l, t2l0) then aux (t1r, t2r0) else false) else false // end of [if] end // end of [_, _] // end // end of [aux] // in // $effmask_wrt (aux (t1, t2)) // end // end of [funset_equal] (* ****** ****** *) implement{a} funset_compare (t1, t2) = let // fun aux {h1,h2:nat} .

. ( t1: avltree (a, h1), t2: avltree (a, h2) ) : Sgn = let in // case+ (t1, t2) of | (E _, E _) => 0 | (E _, B _) => ~1 | (B _, E _) => 1 | (_, _) =>> let val+B(_, x1, t1l, t1r) = t1 var t2l0: ptr and t2r0: ptr val i = avltree_split_at (t2, x1, t2l0, t2r0) in if i = 0 then let val sgn_r = aux (t1r, t2r0) in if sgn_r >= 0 then 1 else ~1 end else let val sgn_r = aux (t1r, t2r0) in if sgn_r = 0 then aux (t1l, t2l0) else sgn_r end (* end of [if] *) end // end of [_, _] // end // end of [aux] // in // $effmask_wrt (aux (t1, t2)) // end // end of [funset_compare] (* ****** ****** *) implement{a} funset_is_subset (t1, t2) = let // fun aux {h1,h2:nat} .

. ( t1: avltree (a, h1), t2: avltree (a, h2) ) : bool = let in // case+ (t1, t2) of | (E (), _) => true | (_, E ()) => false | (_, _) =>> let val+B(_, x1, t1l, t1r) = t1 var t2l0: ptr and t2r0: ptr val i = avltree_split_at (t2, x1, t2l0, t2r0) in if i > 0 then (if aux (t1l, t2l0) then aux (t1r, t2r0) else false) else false // end of [if] end // end of [_, _] // end // end of [test] // in // $effmask_wrt (aux (t1, t2)) // end // end of [funset_is_subset] (* ****** ****** *) implement {a}{env} funset_foreach_env (xs, env) = let // val p_env = addr@(env) // fun foreach {h:nat} .. ( t: avltree (a, h), p_env: ptr ) : void = let in // case+ t of | B (_, x, tl, tr) => let // val () = foreach (tl, p_env) // val ( pf, fpf | p_env ) = $UN.ptr_vtake (p_env) val () = funset_foreach$fwork (x, !p_env) prval () = fpf (pf) // val () = foreach (tr, p_env) // in // nothing end // end of [B] | E ((*void*)) => () // end // end of [foreach] // in foreach (xs, p_env) end // end of [funset_foreach_env] (* ****** ****** *) implement {a}(*tmp*) funset_listize (xs) = let // fun aux {h:nat} .. ( t: avltree (a, h), res: List0_vt(a) ) :<> List0_vt(a) = let in // case+ t of | B (_, x, tl, tr) => let val res = aux (tr, res) val res = list_vt_cons{a}(x, res) val res = aux (tl, res) in res end // end of [B] | E ((*void*)) => res // end // end of [aux] // in aux (xs, list_vt_nil) end // end of [funset_listize] (* ****** ****** *) implement {a}(*tmp*) funset_streamize (xs) = let // fun auxmain{h:nat} ( t0: avltree (a, h) ) : stream_vt(a) = ( // case+ t0 of // | E () => stream_vt_make_nil() // | B ( _, x, tl, tr ) => stream_vt_append ( auxmain(tl) , $ldelay(stream_vt_cons{a}(x, auxmain(tr))) ) (* stream_vt_append *) // ) (* end of [auxmain] *) // in $effmask_all(auxmain(xs)) end // end of [funset_streamize] (* ****** ****** *) implement {a}(*tmp*) funset_avltree_height (xs) = avlht (xs) (* ****** ****** *) (* end of [funset_avltree.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/Number/0000755000175000017500000000000013431250607020123 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/DATS/Number/float_double.dats0000644000175000017500000000616513431250607023447 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2016-05: // (* ****** ****** *) // staload M = "libc/SATS/math.sats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "libats/SATS/NUMBER/float.sats" // (* ****** ****** *) // abst@ype float_float_t0ype(float) = double // typedef float(f:float) = float_float_t0ype(f) (* ****** ****** *) typedef float0 = [f:float] float_float_t0ype(f) (* ****** ****** *) // #include "./SHARE/float.dats" // (* ****** ****** *) assume float_float_t0ype(r:float) = double (* ****** ****** *) implement {}(*tmp*) neg_float(r) = g0float_neg_double(r) (* ****** ****** *) // implement {}(*tmp*) add_float_float(x, y) = g0float_add(x, y) implement {}(*tmp*) sub_float_float(x, y) = g0float_sub(x, y) implement {}(*tmp*) mul_float_float(x, y) = g0float_mul(x, y) implement {}(*tmp*) div_float_float(x, y) = g0float_div(x, y) // (* ****** ****** *) // implement {}(*tmp*) lt_float_float(x, y) = $UN.cast(g0float_lt(x, y)) implement {}(*tmp*) lte_float_float(x, y) = $UN.cast(g0float_lte(x, y)) // (* ****** ****** *) // implement {}(*tmp*) gt_float_float(x, y) = $UN.cast(g0float_gt(x, y)) implement {}(*tmp*) gte_float_float(x, y) = $UN.cast(g0float_gte(x, y)) // (* ****** ****** *) // implement {}(*tmp*) eq_float_float(x, y) = $UN.cast(g0float_eq(x, y)) implement {}(*tmp*) neq_float_float(x, y) = $UN.cast(g0float_neq(x, y)) // (* ****** ****** *) // implement {}(*tmp*) int2float(i) = g0int2float_int_double(i) // (* ****** ****** *) implement {}(*tmp*) abs_float(x) = g0float_abs(x) (* ****** ****** *) implement {}(*tmp*) sqrt_float(x) = $M.sqrt_double(x) (* ****** ****** *) implement {}(*tmp*) print_float0(x) = fprint_float0(stdout_ref, x) implement {}(*tmp*) prerr_float0(x) = fprint_float0(stderr_ref, x) (* ****** ****** *) implement {}(*tmp*) fprint_float0(out, x) = fprint_double(out, x) (* ****** ****** *) (* end of [float_double.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/Number/.keeper0000644000175000017500000000000013431250607021365 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/DATS/Number/real_double.dats0000644000175000017500000001030313431250607023252 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2016-05: // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload Math = "libats/libc/SATS/math.sats" // (* ****** ****** *) // #staload "libats/SATS/Number/real.sats" // (* ****** ****** *) // abst@ype real_real_t0ype(real) = double // typedef real(r:real) = real_real_t0ype(r) // typedef real0 = [r:real] real_real_t0ype(r) // (* ****** ****** *) // #include "./SHARE/real.dats" // (* ****** ****** *) // assume real_real_t0ype(r:real) = double // (* ****** ****** *) // implement neg_real<> = g0float_neg_double // (* ****** ****** *) // implement abs_real<> = g0float_abs_double // (* ****** ****** *) // implement add_real_real<> = g0float_add_double implement sub_real_real<> = g0float_sub_double implement mul_real_real<> = g0float_mul_double implement div_real_real<> = g0float_div_double // (* ****** ****** *) // implement {}(*tmp*) add_int_real(i, x) = add_real_real(int2real(i), x) implement {}(*tmp*) add_real_int(x, i) = add_real_real(x, int2real(i)) // implement {}(*tmp*) sub_int_real(i, x) = sub_real_real(int2real(i), x) implement {}(*tmp*) sub_real_int(x, i) = sub_real_real(x, int2real(i)) // implement {}(*tmp*) mul_int_real(i, x) = mul_real_real(int2real(i), x) implement {}(*tmp*) div_real_int(x, i) = div_real_real(x, int2real(i)) // (* ****** ****** *) // implement {}(*tmp*) lt_real_real(x, y) = $UN.cast(g0float_lt(x, y)) implement {}(*tmp*) lte_real_real(x, y) = $UN.cast(g0float_lte(x, y)) // (* ****** ****** *) // implement {}(*tmp*) gt_real_real(x, y) = $UN.cast(g0float_gt(x, y)) implement {}(*tmp*) gte_real_real(x, y) = $UN.cast(g0float_gte(x, y)) // (* ****** ****** *) // implement {}(*tmp*) eq_real_real(x, y) = $UN.cast(g0float_eq(x, y)) implement {}(*tmp*) neq_real_real(x, y) = $UN.cast(g0float_neq(x, y)) // (* ****** ****** *) // implement {}(*tmp*) lt_real_int(x, i) = $UN.cast(g0float_lt(x, int2real(i))) implement {}(*tmp*) lte_real_int(x, i) = $UN.cast(g0float_lte(x, int2real(i))) // (* ****** ****** *) // implement {}(*tmp*) gt_real_int(x, i) = $UN.cast(g0float_gt(x, int2real(i))) implement {}(*tmp*) gte_real_int(x, i) = $UN.cast(g0float_gte(x, int2real(i))) // (* ****** ****** *) // implement {}(*tmp*) eq_real_int(x, i) = $UN.cast(g0float_eq(x, int2real(i))) implement {}(*tmp*) neq_real_int(x, i) = $UN.cast(g0float_neq(x, int2real(i))) // (* ****** ****** *) // implement {}(*tmp*) int2real(i) = g0int2float_int_double(i) // (* ****** ****** *) implement {}(*tmp*) sqrt_real(r) = $Math.sqrt_double(r) (* ****** ****** *) // implement {}(*tmp*) sin_real(x) = $Math.sin(x) implement {}(*tmp*) cos_real(x) = $Math.cos(x) // implement {}(*tmp*) tan_real(x) = $Math.tan(x) // (* ****** ****** *) implement {}(*tmp*) print_real0(r) = fprint_real0(stdout_ref, r) implement {}(*tmp*) prerr_real0(r) = fprint_real0(stderr_ref, r) (* ****** ****** *) implement {}(*tmp*) fprint_real0(out, r) = fprint_double(out, r) (* ****** ****** *) (* end of [real_double.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/Number/SHARE/0000755000175000017500000000000013431250607020765 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/DATS/Number/SHARE/real.dats0000644000175000017500000001204413431250607022566 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2016-05: // (* ****** ****** *) // extern fun{} neg_real: {x:real} (real(x)) - real(~x) // extern fun{} abs_real: {x:real} (real(x)) - real(abs(x)) // (* ****** ****** *) // overload ~ with neg_real overload neg with neg_real overload abs with abs_real // (* ****** ****** *) // extern fun{} add_real_real {x,y:real} (real(x), real(y)):<> real(x+y) // extern fun{} sub_real_real {x,y:real} (real(x), real(y)):<> real(x-y) // extern fun{} mul_real_real {x,y:real} (real(x), real(y)):<> real(x*y) // extern fun{} div_real_real {x,y:real} (real(x), real(y)):<> real(x/y) // (* ****** ****** *) // overload + with add_real_real overload - with sub_real_real overload * with mul_real_real overload / with div_real_real // (* ****** ****** *) // extern fun{} add_int_real {i:int;x:real} (int(i), real(x)):<> real(i2r(i)+x) extern fun{} add_real_int {x:real;i:int} (real(x), int(i)):<> real(x+i2r(i)) // extern fun{} sub_int_real {i:int;x:real} (int(i), real(x)):<> real(i2r(i)-x) extern fun{} sub_real_int {x:real;i:int} (real(x), int(i)):<> real(x-i2r(i)) // extern fun{} mul_int_real {i:int;x:real} (int(i), real(x)):<> real(i2r(i)*x) // extern fun{} div_real_int {x:real;i:int} (real(x), int(i)):<> real(x/i2r(i)) // (* ****** ****** *) // overload + with add_int_real overload + with add_real_int overload - with sub_int_real overload - with sub_real_int // overload * with mul_int_real overload / with div_real_int // (* ****** ****** *) // extern fun{} lt_real_real {x,y:real} (real(x), real(y)):<> bool(x < y) extern fun{} lte_real_real {x,y:real} (real(x), real(y)):<> bool(x <= y) // extern fun{} gt_real_real {x,y:real} (real(x), real(y)):<> bool(x > y) extern fun{} gte_real_real {x,y:real} (real(x), real(y)):<> bool(x >= y) // extern fun{} eq_real_real {x,y:real} (real(x), real(y)):<> bool(x == y) extern fun{} neq_real_real {x,y:real} (real(x), real(y)):<> bool(x != y) // (* ****** ****** *) // overload < with lt_real_real overload <= with lte_real_real // overload > with gt_real_real overload >= with gte_real_real // overload = with eq_real_real overload != with neq_real_real // (* ****** ****** *) // extern fun{} lt_real_int {x:real;i:int} (real(x), int(i)):<> bool(x < i2r(i)) extern fun{} lte_real_int {x:real;i:int} (real(x), int(i)):<> bool(x <= i2r(i)) // extern fun{} gt_real_int {x:real;i:int} (real(x), int(i)):<> bool(x > i2r(i)) extern fun{} gte_real_int {x:real;i:int} (real(x), int(i)):<> bool(x >= i2r(i)) // extern fun{} eq_real_int {x:real;i:int} (real(x), int(i)):<> bool(x == i2r(i)) extern fun{} neq_real_int {x:real;i:int} (real(x), int(i)):<> bool(x != i2r(i)) // (* ****** ****** *) // overload < with lt_real_int overload <= with lte_real_int // overload > with gt_real_int overload >= with gte_real_int // overload = with eq_real_int overload != with neq_real_int // (* ****** ****** *) // extern fun{} int2real {i:int}(x: int(i)):<> real(i2r(i)) // (* extern fun{} double2real {f:float}(x: double(f)):<> real(f2r(f)) *) // (* ****** ****** *) // extern fun{} sqrt_real: {x:real | x >= i2r(0)} (real(x)) - real(sqrt(x)) // overload sqrt with sqrt_real // (* ****** ****** *) // extern fun{} sin_real{x:real}(real(x)):<> real(sin(x)) extern fun{} cos_real{x:real}(real(x)):<> real(cos(x)) extern fun{} tan_real{x:real}(real(x)):<> real(tan(x)) extern fun{} cot_real{x:real}(real(x)):<> real(cot(x)) // overload sin with sin_real; overload cos with cos_real overload tan with tan_real; overload cot with cot_real // (* ****** ****** *) // extern fun{} print_real0(real0): void extern fun{} prerr_real0(real0): void extern fun{} fprint_real0(FILEref, real0): void // overload print with print_real0 overload prerr with prerr_real0 overload fprint with fprint_real0 // (* ****** ****** *) (* end of [real.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/Number/SHARE/.keeper0000644000175000017500000000000013431250607022227 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/DATS/Number/SHARE/float.dats0000644000175000017500000000617013431250607022753 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2016-05: // (* ****** ****** *) // extern fun{} neg_float: {x:float} (float(x)) - float(~x) // (* ****** ****** *) // extern fun{} add_float_float {x,y:float} (float(x), float(y)):<> float(x+y) // extern fun{} sub_float_float {x,y:float} (float(x), float(y)):<> float(x-y) // extern fun{} mul_float_float {x,y:float} (float(x), float(y)):<> float(x*y) // extern fun{} div_float_float {x,y:float} (float(x), float(y)):<> float(x/y) // overload + with add_float_float overload - with sub_float_float overload * with mul_float_float overload / with div_float_float // (* ****** ****** *) // extern fun{} lt_float_float {x,y:float} (float(x), float(y)):<> bool(x < y) extern fun{} lte_float_float {x,y:float} (float(x), float(y)):<> bool(x <= y) // extern fun{} gt_float_float {x,y:float} (float(x), float(y)):<> bool(x > y) extern fun{} gte_float_float {x,y:float} (float(x), float(y)):<> bool(x >= y) // extern fun{} eq_float_float {x,y:float} (float(x), float(y)):<> bool(x == y) extern fun{} neq_float_float {x,y:float} (float(x), float(y)):<> bool(x != y) // overload < with lt_float_float overload <= with lte_float_float // overload > with gt_float_float overload >= with gte_float_float // overload = with eq_float_float overload != with neq_float_float // (* ****** ****** *) // extern fun{} int2float {i:int}(i: int(i)): float(i2f(i)) // (* ****** ****** *) // extern fun{} abs_float: {x:float} (float(x)) - float(abs(x)) // (* ****** ****** *) // extern fun{} sqrt_float: {x:float | x >= i2f(0)} (float(x)) - float(sqrt(x)) // (* ****** ****** *) // extern fun{} print_float0(float0): void extern fun{} prerr_float0(float0): void extern fun{} fprint_float0(FILEref, float0): void // overload print with print_float0 overload prerr with prerr_float0 overload fprint with fprint_float0 // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/hashtbl_linprb.dats0000644000175000017500000003465313431250607022556 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2014 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.hashtbl_linprb" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_" // prefix for external names (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // staload STRING = "libats/libc/SATS/string.sats" // (* ****** ****** *) staload "libats/SATS/hashfun.sats" (* ****** ****** *) staload "libats/SATS/hashtbl_linprb.sats" (* ****** ****** *) #include "./SHARE/hashtbl.hats" // code reuse (* ****** ****** *) implement {key,itm} hashtbl_linprb_keyitm_nullize (kx) = let vtypedef ki = @(key, itm) val _(*ptr*) = $STRING.memset_unsafe(addr@(kx), 0, sizeof) prval () = __assert (kx) where { extern praxi __assert (&(ki)? >> _): void } (* end of [prval] *) in // nothing end // end of [hashtbl_linprb_keyitm_nullize] (* ****** ****** *) implement(itm) hashtbl_linprb_keyitm_is_null (kx) = (string2ptr(kx.0) = 0) (* ****** ****** *) extern fun{ key:t0p; itm:vt0p } keyitmarr_linprb{m:int} ( A: &array((key,itm), m), cap: size_t(m), k0: key, ans: &bool? >> _ ) : Ptr0 // end of [keyitmarr_linprb] (* ****** ****** *) implement {key,itm} keyitmarr_linprb {m}(A, cap, k0, ans) = let // val p0 = addr@(A) vtypedef ki = @(key, itm) val p_end = ptr_add (p0, cap) // fun loop ( p: ptr, ans: &bool? >> _ ) : ptr = ( if p < p_end then let val (pf, fpf | p) = $UN.ptr0_vtake{ki}(p) val isnul = hashtbl_linprb_keyitm_is_null (!p) prval ((*void*)) = fpf (pf) in if isnul then let val () = ans := false in p end // end of [then] else let val (pf, fpf | p) = $UN.ptr0_vtake{ki}(p) val keq = equal_key_key (k0, p->0) prval ((*void*)) = fpf (pf) in if keq then let val () = ans := true in p end // end of [then] else loop (ptr_succ (p), ans) // end of [if] end // end of [else] // end of [if] end // end of [then] else let val () = ans := false in the_null_ptr end // end of [else] ) // val p_kx = loop(addr@(A), ans) // in g1ofg0 (p_kx) // it needs to be of the type [Ptr0] end // end of [keyitmarr_linprb] (* ****** ****** *) extern fun{ key:t0p; itm:vt0p } keyitmarr_linprb2 {m:int}{ofs:int | ofs <= m} ( A: &array((key,itm), m), cap: size_t(m), ofs: size_t(ofs), k0: key, ans: &bool? >> _ ) : Ptr0 // end of [keyitmarr_linprb2] (* ****** ****** *) implement {key,itm} keyitmarr_linprb2 {m}{ofs} ( A, cap, ofs, k0, ans ) = let // val p0 = addr@(A) vtypedef ki = @(key, itm) val p1 = ptr_add (p0, ofs) // stadef n1 = ofs and n2 = m - ofs // val (pf, fpf | p1) = $UN.ptr0_vtake{array(ki,n2)}(p1) val p_kx = keyitmarr_linprb (!p1, cap - ofs, k0, ans) prval () = fpf (pf) // in // if p_kx > 0 then p_kx else let val (pf, fpf | p0) = $UN.ptr0_vtake{array(ki,n1)}(p0) val p_kx = keyitmarr_linprb (!p0, ofs, k0, ans) prval () = fpf (pf) in p_kx end // end of [else] // end of [if] // end // end of [keyitmarr_linprb2] (* ****** ****** *) extern fun{ key:t0p; itm:vt0p } keyitmarr_reinserts {m:int} ( A: &array((key,itm), m) >> _, cap: size_t(m), p_kx: ptr ) : void // end of [keyitmarr_reinserts] (* ****** ****** *) implement {key,itm} keyitmarr_reinserts {m}(A, cap, p_kx) = let // val p0 = addr@(A) vtypedef ki = @(key, itm) val p_end = ptr_add (p0, cap) // fun loop ( A: &array(ki, m) >> _, cap: size_t(m), p_kx: ptr ) : bool = let in // if p_kx < p_end then let // val (pf, fpf | p_kx) = $UN.ptr0_vtake{ki}(p_kx) val isnul = hashtbl_linprb_keyitm_is_null (!p_kx) // in if isnul then let prval () = fpf (pf) in true(*stopped*) end // end of [then] else let val k = p_kx->0 val hk = hash_key (k) val ofs = g0uint_mod (hk, $UN.cast{ulint}(cap)) val ofs = $UN.cast{sizeLt(m)}(ofs) // var ans: bool // uninitized val p2_kx = keyitmarr_linprb2 (A, cap, ofs, k, ans) // in if ans then let prval () = fpf (pf) in loop (A, cap, ptr_succ (p_kx)) end // end of [then] else let val (pf2, fpf2 | p2_kx) = $UN.ptr0_vtake{ki?}(p2_kx) val () = p2_kx->0 := p_kx->0 val () = p2_kx->1 := p_kx->1 val () = hashtbl_linprb_keyitm_nullize (!p_kx) prval () = $UN.castview0((pf, fpf)) prval () = $UN.castview0((pf2, fpf2)) in loop (A, cap, ptr_succ (p_kx)) end // end of [else] // end of [if] end // end of [else] // end of [if] end // end of [then] else false (*~stopped*) // end // end of [loop] // val stopped = loop (A, cap, p_kx) val _(*true*) = ( if not(stopped) then loop (A, cap, p0) else true ) : bool // end of [val] // in // nothing end // end of [keyitmarr_reinserts] (* ****** ****** *) datavtype hashtbl ( key:t@ype, itm:vt@ype+ ) = {m:int | m >= 1} HASHTBL of ( arrayptr ((key, itm), m), size_t m, size_t(*ntot*) ) (* end of [HASHTBL] *) // end of [hashtbl] (* ****** ****** *) assume hashtbl_vtype (key:t0p, itm:vt0p) = hashtbl (key, itm) (* ****** ****** *) implement {key,itm} hashtbl_make_nil (cap) = let // vtypedef ki = @(key, itm) // prval [m:int] EQINT () = eqint_make_guint (cap) // val A0 = arrayptr_make_uninitized (cap) val p_A0 = ptrcast(A0) val _(*ptr*) = $STRING.memset_unsafe (p_A0, 0, cap*sizeof) val A0 = $UN.castvwtp0{arrayptr(ki,m)}(A0) // in HASHTBL (A0, cap, i2sz(0)) end // end of [hashtbl_make_nil] (* ****** ****** *) implement {}(*tmp*) hashtbl_get_size (tbl) = let // val+ HASHTBL (A, cap, ntot) = tbl in g1ofg0(ntot) // end // end of [hashtbl_get_size] (* ****** ****** *) implement {}(*tmp*) hashtbl_get_capacity (tbl) = let // val+HASHTBL(A, cap, _) = tbl in (cap) // end // end of [hashtbl_get_capacity] (* ****** ****** *) implement {key,itm} hashtbl_search_ref (tbl, k0) = let // val+HASHTBL{..}{m}(A, cap, ntot) = tbl // val hk = hash_key (k0) val ofs = g0uint_mod (hk, $UN.cast{ulint}(cap)) val ofs = $UN.cast{sizeLt(m)}(ofs) // val p_A = ptrcast(A) prval pf_A = arrayptr_takeout(A) var ans: bool // uninitalized val p_kx = keyitmarr_linprb2 (!p_A, cap, ofs, k0, ans) prval ((*void*)) = arrayptr_addback (pf_A | A) // in // if ans then let vtypedef ki = @(key, itm) val (pf, fpf | p_kx) = $UN.ptr0_vtake{ki}(p_kx) val p_itm = addr@(p_kx->1) prval ((*void*)) = fpf (pf) in $UN.cast{cPtr1(itm)}(p_itm) end else cptr_null{itm}((*void*)) // end // end of [hashtbl_search_ref] (* ****** ****** *) implement {key,itm} hashtbl_insert (tbl, k, x, res) = let // vtypedef ki = @(key, itm) // val+@HASHTBL{..}{m}(A, cap, ntot) = tbl // val hk = hash_key (k) val ofs = g0uint_mod (hk, $UN.cast{ulint}(cap)) val ofs = $UN.cast{sizeLt(m)}(ofs) // val p_A = ptrcast(A) prval pf_A = arrayptr_takeout(A) var ans: bool // uninitalized val p_kx = keyitmarr_linprb2 (!p_A, cap, ofs, k, ans) prval ((*void*)) = arrayptr_addback (pf_A | A) // in // if ans then let val (pf, fpf | p_kx) = $UN.ptr0_vtake{ki}(p_kx) val x2 = p_kx->1 val () = p_kx->1 := x prval ((*void*)) = fpf (pf) val () = res := x2 prval () = opt_some{itm}(res) prval () = fold@ (tbl) in true end // end of [then] else let // // HX-2013-05: [k] is not found // in if p_kx > 0 then let val (pf, fpf | p_kx) = $UN.ptr0_vtake{ki?}(p_kx) val () = p_kx->0 := k val () = p_kx->1 := x val () = ntot := succ(ntot) prval () = $UN.castview0((pf, fpf)) prval () = opt_none{itm}(res) prval () = fold@ (tbl) val () = if hashtbl$recapacitize() > 0 then ignoret(hashtbl_adjust_capacity (tbl)) // end of [if] // end of [val] in false end else let val () = res := x prval () = opt_some{itm}(res) prval () = fold@ (tbl) in true end // end of [if] end // end of [else] // end // end of [hashtbl_insert] (* ****** ****** *) implement {key,itm} hashtbl_takeout (tbl, k, res) = let // val+@HASHTBL{..}{m}(A, cap, ntot) = tbl // val hk = hash_key (k) val ofs = g0uint_mod (hk, $UN.cast{ulint}(cap)) val ofs = $UN.cast{sizeLt(m)}(ofs) // val p_A = ptrcast(A) prval pf_A = arrayptr_takeout(A) var ans: bool // uninitalized val p_kx = keyitmarr_linprb2 (!p_A, cap, ofs, k, ans) prval ((*void*)) = arrayptr_addback (pf_A | A) // in // if ans then let vtypedef ki = @(key, itm) val (pf, fpf | p_kx) = $UN.ptr0_vtake{ki}(p_kx) val () = res := p_kx->1 val () = hashtbl_linprb_keyitm_nullize (!p_kx) val () = ntot := pred (ntot) prval () = $UN.castview0 ((pf, fpf)) prval pf_A = arrayptr_takeout(A) val () = keyitmarr_reinserts (!p_A, cap, ptr_succ (p_kx)) prval ((*void*)) = arrayptr_addback (pf_A | A) prval () = fold@ (tbl) prval () = opt_some{itm}(res) in true end // end of [then] else let prval () = fold@ (tbl) prval () = opt_none{itm}(res) in false end // end of [else] // end // end of [hashtbl_takeout] (* ****** ****** *) implement {key,itm} hashtbl_reset_capacity (tbl, cap2) = let // val+@HASHTBL{..}{m}(A, cap, ntot) = tbl // in // if ntot <= cap2 then let // val p0 = ptrcast(A) vtypedef ki = @(key, itm) val p_end = ptr_add (p0, cap) // fun loop{m2:int} ( p_A2: ptr, cap2: size_t(m2), p: ptr ) : void = let in // if p < p_end then let val (pf, fpf | p) = $UN.ptr0_vtake{ki}(p) val isnul = hashtbl_linprb_keyitm_is_null (!p) in if isnul then let prval ((*void*)) = fpf (pf) in loop (p_A2, cap2, ptr_succ (p)) end // end of [then] else let val k = p->0 val hk = hash_key (k) var ans: bool // uninitalized val ofs = g0uint_mod (hk, $UN.cast{ulint}(cap2)) val ofs = $UN.cast{sizeLt(m2)}(ofs) val (pf_A2, fpf_A2 | p_A2) = $UN.ptr0_vtake{array(ki,m2)}(p_A2) val p_kx = keyitmarr_linprb2 (!p_A2, cap2, ofs, k, ans) prval ((*void*)) = fpf_A2 (pf_A2) val (pf_kx, fpf_kx | p_kx) = $UN.ptr0_vtake{ki?}(p_kx) val () = p_kx->0 := k val () = p_kx->1 := p->1 prval () = $UN.castview0((pf, fpf)) prval () = $UN.castview0((pf_kx, fpf_kx)) in loop (p_A2, cap2, ptr_succ (p)) end // end of [else] end // end of [then] else () // end of [else] // end // end of [loop] // prval [m2:int] EQINT () = eqint_make_guint (cap2) // val A2 = arrayptr_make_uninitized (cap2) val p_A2 = ptrcast(A2) val _(*ptr*) = $STRING.memset_unsafe (p_A2, 0, cap2*sizeof) val ((*void*)) = loop (p_A2, cap2, p0) val A2 = $UN.castvwtp0{arrayptr(ki,m2)}(A2) // val () = arrayptr_free ($UN.castvwtp0{arrayptr(ki?,m)}(A)) // val () = A := A2 val () = cap := cap2 prval () = fold@ (tbl) // in true end // end of [then] else let prval () = fold@ (tbl) in false end // end of [else] // end // end of [hashtbl_reset_capacity] (* ****** ****** *) // // HX: please reimplement it if needed // implement {key,itm} hashtbl_adjust_capacity (tbl) = let // val+HASHTBL (A, cap, ntot) = tbl // in // if ntot + ntot >= cap then hashtbl_reset_capacity (tbl, cap + cap) else false // end // end of [hashtbl_adjust_capacity] (* ****** ****** *) implement {key,itm}{env} hashtbl_foreach_env (tbl, env) = let // val+HASHTBL (A, cap, _) = tbl // val p0 = ptrcast(A) vtypedef ki = @(key, itm) val p_end = ptr_add (p0, cap) // fun loop ( p: ptr, env: &env >> _ ) : void = let in // if p < p_end then let val (pf, fpf | p) = $UN.ptr0_vtake{ki}(p) val isnul = hashtbl_linprb_keyitm_is_null (!p) in if isnul then let prval () = fpf (pf) in loop (ptr_succ (p), env) end // end of [then] else let val () = hashtbl_foreach$fwork (p->0, p->1, env) prval () = fpf (pf) in loop (ptr_succ (p), env) end // end of [else] // end of [if] end // end of [then] else ((*exit*)) // end of [else] // end // end of [loop] // in loop (p0, env) end // end of [hashtbl_foreach_env] (* ****** ****** *) implement {key,itm} hashtbl_free (tbl) = let // typedef ki = @(key, itm) // val+~HASHTBL (A, cap, ntot) = tbl in arrayptr_free{ki}(A) // end // end of [hashtbl_free] (* ****** ****** *) implement {key,itm}{ki2} hashtbl_flistize (tbl) = let // val+~HASHTBL (A, cap, _) = tbl // val p0 = ptrcast(A) vtypedef ki = @(key, itm) val p_end = ptr_add (p0, cap) // fun loop ( p: ptr , res: List0_vt(ki2) ) : List0_vt(ki2) = let in // if p > p0 then let val p = ptr_pred (p) val (pf, fpf | p) = $UN.ptr0_vtake{ki}(p) val isnul = hashtbl_linprb_keyitm_is_null (!p) in if isnul then let prval ((*void*)) = fpf (pf) in loop (p, res) end // end of [then] else let val kx2 = hashtbl_flistize$fopr (p->0, p->1) val res = list_vt_cons{ki2}(kx2, res) val ((*void*)) = hashtbl_linprb_keyitm_nullize (!p) prval ((*void*)) = $UN.castview0 ((pf, fpf)) in loop (p, res) end // end of [else] // end of [if] end // end of [then] else res // end of [else] // end // end of [loop] // val res = $effmask_all(loop (p_end, list_vt_nil(*void*))) // val ((*freed*)) = arrayptr_free($UN.castvwtp0{arrayptr(ki?,0)}(A)) // in res end // end of [hashtbl_flistize] (* ****** ****** *) (* end of [hashtbl_linprb.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/theGetters.dats0000644000175000017500000001336013431250607021671 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2015 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2015-09-28: // Some templates for getters // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/theGetters.sats" (* ****** ****** *) // implement {}(*tmp*) the_getall_asz_hint((*void*)) = i2sz(64) // (* ****** ****** *) implement {a}(*tmp*) the_getall_list ((*void*)) = let // vtypedef res_vt = List0_vt(a) // fun loop ( res: &ptr? >> res_vt ) : void = let // val () = res := list_vt_cons{a}{0}(_, _) // val+list_vt_cons(x, res1) = res // val ans = the_get_elt(x) // in // if ans then let prval () = opt_unsome(x) // end of [prval] val () = loop(res1) prval () = fold@(res) in // nothing end // end of [then] else let prval () = opt_unnone(x) // end of [prval] val () = free@{a}{0}(res) val () = res := list_vt_nil() in // nothing end // end of [else] // end // end of [loop] // var res: ptr // uninitized // in loop(res); res end // end of [the_getall_list] (* ****** ****** *) implement {a}(*tmp*) the_getall_arrayptr (asz) = let // fun loop ( pp: ptr, pa: ptr, pz: ptr, asz: &size_t? >> _ ) : ptr = ( // if pp < pz then let // val ( pf, fpf | pp ) = $UN.ptr0_vtake{a?}(pp) val ans = the_get_elt(!pp) prval () = $UN.cast2void((fpf, pf | pp)) // in // if ans then loop(ptr0_succ(pp), pa, pz, asz) // end of [then] else let val () = asz := $UN.cast2size(pp-pa)/sizeof in pa end // end of [else] // end of [if] // end // end of [then] else let // val n = $UN.cast2size(pz-pa)/sizeof val n = $UN.cast{sizeGte(1)}(n) val n2 = n + n // val pa2 = $UN.castvwtp0{ptr} ( arrayptr_make_uninitized(n2) ) // extern fun memcpy ( dst: ptr, src: ptr, bsz: size_t ) : ptr = "atslib_memcpy" val _ = memcpy(pa2, pa, n*sizeof) // val pp2 = ptr_add(pa2, n) val pz2 = ptr_add(pa2, n2) // in loop (pp2, pa2, pz2, asz) end // end of [else] // ) (* end of [loop] *) // val n = the_getall_asz_hint() // val pa = $UN.castvwtp0{ptr} (arrayptr_make_uninitized(n)) // val pz = ptr_add (pa, n) // val pa = loop(pa, pa, pz, asz) // val [n:int] n = g1ofg0_uint(asz) // prval [l:addr] EQADDR() = eqaddr_make_ptr(addr@asz) prval () = view@asz := $UN.castview0{size_t(n)@l}(view@asz) // in $UN.castvwtp0{arrayptr(a, n)}(asz) end // end of [the_getall_arrayptr] (* ****** ****** *) implement {a}(*tmp*) the_get_elt_exn ((*void*)) = let // var x: a? // uninitized val ans = the_get_elt (x) // in // if ans then let prval () = opt_unsome(x) in x end // end of [then] else let prval () = opt_unnone(x) in $raise Exception_the_get_elt_exn() end // end of [else] // end // end of [the_get_elt_exn] (* ****** ****** *) implement {a}(*tmp*) the_getall_list_exn ((*void*)) = ( list_vt_reverse(the_getall_rlist_exn()) ) (* end of [the_getall_list_exn] *) (* ****** ****** *) implement {a}(*tmp*) the_getall_rlist_exn ((*void*)) = let // vtypedef res_vt = List0_vt(a) // fun loop ( p: ptr ) : void = loop(p) where { val x = the_get_elt_exn() val xs = $UN.ptr0_get(p) val () = $UN.ptr0_set(p, cons_vt{a}(x, xs)) } (* end of [loop] *) // var res: ptr = list_vt_nil() val p_res = addr@res // val () = ptr_as_volatile (p_res) // longjmp/setjmp bug // val ((*void*)) = ( try loop(p_res) with ~Exception_the_get_elt_exn() => () ) : void // end of [val] // in res end // end of [the_getall_rlist_exn] (* ****** ****** *) local // staload "libats/SATS/dynarray.sats" // (* staload _ = "libats/DATS/dynarray.dats" *) in (* in-of-local *) // implement {a}(*tmp*) the_getall_arrayptr_exn (asz) = let // vtypedef DA = dynarray(a) // fun loop ( DA: ptr ) : void = loop(DA) where { val x = the_get_elt_exn() // end of [val] val DA = $UN.castvwtp0{DA}(DA) // end of [val] val () = dynarray_insert_atend_exn(DA, x) // end of [val] val DA = $UN.castvwtp0{ptr}(DA) } (* end of [loop] *) // val n0 = the_getall_asz_hint() val DA = dynarray_make_nil(n0) val p_DA = $UN.castvwtp1{ptr}(DA) // val () = ptr_as_volatile (p_DA) // longjmp/setjmp bug // val ((*void*)) = ( try loop(p_DA) with ~Exception_the_get_elt_exn() => () ) : void // end of [val] // in dynarray_getfree_arrayptr{a}(DA, asz) end // end of [the_getall_arrayptr_exn] // end // end of [local] (* ****** ****** *) (* end of [theGetters.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/refcount.dats0000644000175000017500000000640213431250607021377 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) // // HX: For supporting ref-counted resourse. // HX: This implementation does not support locked counting // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/refcount.sats" (* ****** ****** *) // datavtype refcnt(a:vt@ype) = | REFCNT (a) of (uint, a) // (* ****** ****** *) assume refcnt_vt0ype_vtype(a) = refcnt(a) (* ****** ****** *) implement {a}(*tmp*) refcnt (x) = REFCNT (1u, x) implement {a}(*tmp*) refcnt_make_elt (x) = REFCNT (1u, x) (* ****** ****** *) implement {a}(*tmp*) refcnt_get_count (rfc) = let // val+REFCNT (u, _) = rfc // in $UN.cast{intGte(1)}(u) end // end of [refcnt_get_count] (* ****** ****** *) implement {a}(*tmp*) refcnt_incref (rfc) = let // val+@REFCNT (u, _) = rfc val ((*void*)) = u := succ (u) prval () = fold@(rfc) // in $UN.castvwtp1{refcnt(a)}(rfc) end // end of [refcnt_incref] (* ****** ****** *) implement {a}(*tmp*) refcnt_decref (rfc, x0) = let // val+@REFCNT (u, x) = rfc val u1 = pred (u) // in // if isgtz(u1) then let val ((*void*)) = u := u1 prval () = fold@(rfc) prval () = $UN.cast2void (rfc) prval () = opt_none{a}(x0) in false end else let val () = x0 := x val ((*freed*)) = free@(rfc) prval () = opt_some{a}(x0) in true end // end of [if] // end // end of [refcnt_decref] implement {a}(*tmp*) refcnt_decref_opt (rfc) = let // var x0: a? val ans = refcnt_decref (rfc, x0) // in (* in of [let] *) // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt{a}((*void*)) end // end of [if] // end // end of [refcnt_decref_opt] (* ****** ****** *) implement {a}(*tmp*) refcnt_vtakeout (rfc) = let // val+@REFCNT (_, x) = rfc val p_x = addr@x prval () = fold@(rfc) // val (pf, fpf | p_x) = $UN.ptr_vtake{a}(p_x) // in (pf, fpf | p_x) end // end of [refcnt_vtakeout] (* ****** ****** *) (* end of [refcount.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/ilist_prf.dats0000644000175000017500000004115313431250607021547 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Time: October, 2010 // (* ****** ****** *) // // HX: reasoning about integer sequences // (* ****** ****** *) // // HX-2012-12: starting to implement proofs // (* ****** ****** *) staload "libats/SATS/ilist_prf.sats" (* ****** ****** *) (* prfun ILISTEQ2_elim {xs1,xs2:ilist} (pf: ILISTEQ2(xs1, xs2)): ILISTEQ(xs1, xs2) // end of [ILISTEQ2_elim] *) primplmnt ILISTEQ2_elim (pf) = let // prfun lemma {xs1,xs2:ilist} .. ( pf: ILISTEQ2(xs1, xs2) ) : ILISTEQ(xs1, xs2) = let in // case+ pf of | ILISTEQ2nil() => ILISTEQ() | ILISTEQ2cons(pf) => let prval ILISTEQ () = lemma (pf) in ILISTEQ () end // end of [ILISTEQ_cons] // end // end of [lemma] // in lemma (pf) end // end of [ILISTEQ2_elim] (* ****** ****** *) (* prfun length_istot {xs:ilist} (): [n:nat] LENGTH (xs, n) *) primplmnt length_istot {xs} () = let // prfun lemma {xs:ilist} .. (): [n:nat] LENGTH (xs, n) = ( scase xs of | ilist_cons (x, xs) => LENGTHcons (lemma {xs} ()) | ilist_nil () => LENGTHnil () ) // end of [lemma] // in lemma {xs} () end // end of [length_istot] (* ****** ****** *) (* prfun length_isfun {xs:ilist} {n1,n2:int} (pf1: LENGTH (xs, n1), pf2: LENGTH (xs, n2)): [n1==n2] void // end of [length_isfun] *) primplmnt length_isfun {xs} (pf1, pf2) = let // prfun lemma {xs:ilist} {n1,n2:int} .. ( pf1: LENGTH (xs, n1), pf2: LENGTH (xs, n2) ) : [n1==n2] void = let in // case+ (pf1, pf2) of | (LENGTHcons (pf1), LENGTHcons (pf2)) => lemma (pf1, pf2) | (LENGTHnil (), LENGTHnil ()) => () // end // end of [length_isfun] // in lemma (pf1, pf2) end // end of [length_isfun] (* ****** ****** *) (* prfun length_isnat {xs:ilist} {n:int} (pf: LENGTH (xs, n)): [n>=0] void // end of [length_isnat] *) primplmnt length_isnat (pf) = ( case+ pf of LENGTHcons _ => () | LENGTHnil () => () ) // end of [length_isnat] (* ****** ****** *) (* prfun lemma_snoc_length {xs:ilist}{x:int}{xsx:ilist}{n:int} (pf1: SNOC (xs, x, xsx), pf2: LENGTH (xs, n)): LENGTH (xsx, n+1) // end of [lemma_snoc_length] *) primplmnt lemma_snoc_length (pf1, pf2) = let // prfun lemma {xs:ilist} {x:int} {xsx:ilist} {n:int} .. ( pf1: SNOC (xs, x, xsx), pf2: LENGTH (xs, n) ) : LENGTH (xsx, n+1) = let in // case+ pf1 of // | SNOCnil () => let prval LENGTHnil () = pf2 in LENGTHcons (LENGTHnil ()) end // end of [SNOCnil] // | SNOCcons (pf1) => let prval LENGTHcons (pf2) = pf2 in LENGTHcons (lemma (pf1, pf2)) end // end of [SNOCcons] // end // end of [lemma] // in lemma (pf1, pf2) end // end of [lemma_snoc_length] (* ****** ****** *) primplmnt append_istot {xs,ys} () = let // prfun istot {xs,ys:ilist} .. () : [zs:ilist] APPEND (xs, ys, zs) = scase xs of | ilist_nil () => APPENDnil () | ilist_cons (x, xs) => APPENDcons (istot {xs,ys} ()) // end of [istot] in istot {xs,ys} () end // end of [append_istot] primplmnt append_isfun (pf1, pf2) = let // prfun isfun {xs,ys:ilist} {zs1,zs2:ilist} .. ( pf1: APPEND (xs, ys, zs1), pf2: APPEND (xs, ys, zs2) ) : ILISTEQ (zs1, zs2) = ( case+ (pf1, pf2) of | (APPENDnil (), APPENDnil ()) => ILISTEQ () | (APPENDcons (pf1), APPENDcons (pf2)) => let prval ILISTEQ () = isfun (pf1, pf2) in ILISTEQ () end // end of [...] ) // end of [isfun] in isfun (pf1, pf2) end // end of [append_isfun] (* ****** ****** *) primplmnt append_unit_left () = APPENDnil () primplmnt append_unit_right {xs} () = let // prfun lemma {xs:ilist} .. ( ) : APPEND (xs, ilist_nil, xs) = scase xs of | ilist_cons (x, xs) => APPENDcons (lemma {xs} ()) | ilist_nil () => APPENDnil () // in lemma {xs} () end // end of [append_unit_right] (* ****** ****** *) primplmnt append_sing () = APPENDcons (APPENDnil ()) (* ****** ****** *) (* prfun lemma_append_length {xs1,xs2:ilist} {xs:ilist} {n1,n2:int} ( pf: APPEND (xs1, xs2, xs), pf1len: LENGTH (xs1, n1), pf2len: LENGTH (xs2, n2) ) : LENGTH (xs, n1+n2) // end of [lemma_append_length] *) primplmnt lemma_append_length (pf, pf1len, pf2len) = let // prfun lemma {xs1,xs2:ilist} {xs:ilist} {n1,n2:nat} .. ( pf: APPEND (xs1, xs2, xs), pf1len: LENGTH (xs1, n1), pf2len: LENGTH (xs2, n2) ) : LENGTH (xs, n1+n2) = let in // case+ pf of | APPENDnil () => let prval LENGTHnil () = pf1len in pf2len end // end of [APPENDnil] | APPENDcons (pf) => let prval LENGTHcons (pf1len) = pf1len in LENGTHcons (lemma (pf, pf1len, pf2len)) end // end of [APPENDcons] // end // end of [lemma] // prval () = length_isnat (pf1len) prval () = length_isnat (pf2len) // in lemma (pf, pf1len, pf2len) end // end of [lemma_append_length] (* ****** ****** *) (* prfun lemma_append_snoc {xs1:ilist} {x:int} {xs2:ilist} {xs1x:ilist} {xs:ilist} ( pf1: APPEND (xs1, ilist_cons (x, xs2), xs) , pf2: SNOC (xs1, x, xs1x) ) : APPEND (xs1x, xs2, xs) // end of [lemma_append_snoc] *) primplmnt lemma_append_snoc (pf1, pf2) = let // prfun lemma {xs1:ilist} {x:int} {xs2:ilist} {xs1x:ilist} {xs:ilist} .. ( pf1: APPEND (xs1, ilist_cons (x, xs2), xs) , pf2: SNOC (xs1, x, xs1x) ) : APPEND (xs1x, xs2, xs) = let in // case+ pf1 of | APPENDnil () => let prval SNOCnil () = pf2 in APPENDcons (APPENDnil) end // end of [APPENDnil] | APPENDcons (pf1) => let prval SNOCcons (pf2) = pf2 in APPENDcons (lemma (pf1, pf2)) end // end of [APPENDcons] // end // end of [lemma] // in lemma (pf1, pf2) end // end of [lemma_append_snoc] (* ****** ****** *) (* prfun lemma_append_assoc {xs1,xs2,xs3:ilist} {xs12,xs23:ilist} {xs12_3,xs1_23:ilist} ( pf12: APPEND (xs1, xs2, xs12), pf23: APPEND (xs2, xs3, xs23) , pf12_3: APPEND (xs12, xs3, xs12_3), pf1_23: APPEND (xs1, xs23, xs1_23) ) : ILISTEQ (xs12_3, xs1_23) // end of [lemma_append_assoc] *) primplmnt lemma_append_assoc ( pf12, pf23, pf12_3, pf1_23 ) = let // prfun lemma {xs1,xs2,xs3:ilist} {xs12,xs23:ilist} {xs12_3,xs1_23:ilist} .. ( pf12: APPEND (xs1, xs2, xs12), pf23: APPEND (xs2, xs3, xs23) , pf12_3: APPEND (xs12, xs3, xs12_3), pf1_23: APPEND (xs1, xs23, xs1_23) ) : ILISTEQ (xs12_3, xs1_23) = let in // case+ pf12 of | APPENDnil () => let prval APPENDnil () = pf1_23 prval ILISTEQ () = append_isfun (pf23, pf12_3) in ILISTEQ () end // end of [APPENDnil] | APPENDcons (pf12) => let prval APPENDcons (pf12_3) = pf12_3 prval APPENDcons (pf1_23) = pf1_23 prval ILISTEQ () = lemma (pf12, pf23, pf12_3, pf1_23) in ILISTEQ () end // end of [APPENDcons] // end // end of [lemma] // in lemma (pf12, pf23, pf12_3, pf1_23) end // end of [lemma_append_assoc] (* ****** ****** *) (* prfun lemma_nth_ilisteq {xs1,xs2:ilist}{n:int} ( pf1len: LENGTH (xs1, n), pf2len: LENGTH (xs2, n) , fpf: {x:int}{i:int | i < n} NTH (x, xs1, i) -> NTH (x, xs2, i) ) : ILISTEQ (xs1, xs2) = *) primplmnt lemma_nth_ilisteq (pf1len, pf2len, fpf) = let // prval () = length_isnat(pf1len) // prfun lemma {xs1,xs2:ilist} {n:nat} .. ( pf1len: LENGTH (xs1, n) , pf2len: LENGTH (xs2, n) , fpf: {x:int}{i:int | i < n} NTH (x, xs1, i) -> NTH (x, xs2, i) ) : ILISTEQ (xs1, xs2) = let in // sif n > 0 then let prval LENGTHcons{x1}{xs11} pf11len = pf1len prval LENGTHcons{x2}{xs21} pf21len = pf2len prval NTHbas () = fpf {x1}{0} (NTHbas ()) prfn fpf1 {x:int}{i:int | i < n-1} (pf: NTH (x, xs11, i)): NTH (x, xs21, i) = let prval _ = lemma_nth_param(pf) prval NTHind (pfres) = fpf(NTHind(pf)) in pfres end // end of [fpf1] prval ILISTEQ () = lemma (pf11len, pf21len, fpf1) in ILISTEQ () end else let prval LENGTHnil () = pf1len and LENGTHnil () = pf2len in ILISTEQ () end // end of [sif] // end // end of [lemma] // in lemma (pf1len, pf2len, fpf) end // end of [lemma_nth_ilisteq] (* ****** ****** *) primplmnt lemma_length_nth (pflen) = let // prfun lemma {xs:ilist} {n:int}{i:nat | i < n} .. ( pflen: LENGTH(xs, n) ) : [x:int] NTH(x, xs, i) = let // prval LENGTHcons(pflen1) = pflen // in // sif (i==0) then NTHbas() else NTHind(lemma{..}{..}{i-1}(pflen1)) // end (* end of [lemma] *) // in lemma(pflen) end // end of [lemma_length_nth] (* ****** ****** *) primplmnt revapp_istot {xs,ys} () = let // prfun istot {xs,ys:ilist} .. ( // argumentless ) : [zs:ilist] REVAPP (xs, ys, zs) = scase xs of | ilist_nil () => REVAPPnil () | ilist_cons (x, xs) => REVAPPcons (istot {xs,ilist_cons (x,ys)} ()) // end of [ilist_cons] // end of [istot] in istot {xs,ys} () end // end of [revapp_istot] primplmnt revapp_isfun (pf1, pf2) = let // prfun isfun {xs,ys:ilist} {zs1,zs2:ilist} .. ( pf1: REVAPP (xs, ys, zs1), pf2: REVAPP (xs, ys, zs2) ) : ILISTEQ (zs1, zs2) = ( case+ (pf1, pf2) of | (REVAPPnil (), REVAPPnil ()) => ILISTEQ () | (REVAPPcons (pf1), REVAPPcons (pf2)) => let prval ILISTEQ () = isfun (pf1, pf2) in ILISTEQ () end // end of [...] ) // end of [isfun] in isfun (pf1, pf2) end // end of [revapp_isfun] (* ****** ****** *) (* prfun lemma_revapp_length {xs,ys,zs:ilist}{m,n:int} .. ( pf1: REVAPP (xs, ys, zs), pf2: LENGTH (xs, m), pf3: LENGTH (ys, n) ) : LENGTH (zs, m+n) // end of [lemma_revapp_length] *) primplmnt lemma_revapp_length (pf, pf1len, pf2len) = let // prfun lemma {xs,ys,zs:ilist} {m,n:nat} .. ( pf: REVAPP (xs, ys, zs) , pf1len: LENGTH (xs, m), pf2len: LENGTH (ys, n) ) : LENGTH (zs, m+n) = let in // case+ pf of | REVAPPnil () => let prval LENGTHnil () = pf1len in pf2len end // end of[REVAPPnil] | REVAPPcons (pf) => let prval LENGTHcons(pf1len) = pf1len in lemma (pf, pf1len, LENGTHcons(pf2len)) end // end of [REVAPPcons] // end // end of [revapp_length_lemma] // prval () = length_isnat (pf1len) prval () = length_isnat (pf2len) // in lemma (pf, pf1len, pf2len) end // end of [lemma_revapp_length] (* ****** ****** *) primplmnt reverse_istot() = revapp_istot() primplmnt reverse_isfun(pf1, pf2) = revapp_isfun(pf1, pf2) (* ****** ****** *) // primplmnt lemma_reverse_length (pfrev, pflen) = lemma_revapp_length(pfrev, pflen, LENGTHnil()) // (* ****** ****** *) (* prfun lemma1_revapp_nth {xs,ys,zs:ilist}{n:int}{x:int}{i:int} ( pf: REVAPP (xs, ys, zs), pflen: LENGTH (xs, n), pfnth: NTH (x, ys, i) ) : NTH (x, zs, n+i) // end of [lemma1_revapp_nth] *) primplmnt lemma1_revapp_nth (pf, pflen, pfnth) = let // prfun lemma {xs,ys,zs:ilist} {n:int}{x:int}{i:int} .. ( pf: REVAPP (xs, ys, zs), pflen: LENGTH (xs, n), pfnth: NTH (x, ys, i) ) : NTH (x, zs, n+i) = let // prval _ = lemma_nth_param(pfnth) // in // case+ pf of | REVAPPnil () => let prval LENGTHnil () = pflen in pfnth end // end of [REVAPPnil] | REVAPPcons (pf) => let prval LENGTHcons (pflen) = pflen in lemma (pf, pflen, NTHind (pfnth)) end // end of[REVAPPcons] // end // end of [lemma1_revapp_nth] // in lemma (pf, pflen, pfnth) end // end of [lemma1_revapp_nth] (* ****** ****** *) (* prfun lemma2_revapp_nth {xs,ys,zs:ilist}{n:int}{x:int}{i:int} ( pf: REVAPP (xs, ys, zs), pflen: LENGTH (xs, n), pfnth: NTH (x, xs, i) ) : NTH (x, zs, n-1-i) // end of [lemma2_revapp_nth] *) primplmnt lemma2_revapp_nth (pf, pflen, pfnth) = let // prval _ = lemma_nth_param(pfnth) // prfun lemma {xs,ys,zs:ilist} {n:int}{x:int}{i:nat} .. ( pf: REVAPP (xs, ys, zs) , pflen: LENGTH (xs, n), pfnth: NTH (x, xs, i) ) : NTH (x, zs, n-1-i) = let in // case+ pfnth of // | NTHbas () => let prval REVAPPcons (pf) = pf prval LENGTHcons pflen = pflen in lemma1_revapp_nth (pf, pflen, NTHbas ()) end // end of [NTHbas] // | NTHind (pfnth) => let prval REVAPPcons (pf) = pf prval LENGTHcons (pflen) = pflen in lemma (pf, pflen, pfnth) end // end of [NTHind] // end // end of [lemma] // in lemma (pf, pflen, pfnth) end // end of [lemma2_revapp_nth] (* ****** ****** *) primplmnt lemma_reverse_nth (pf, pflen, pfnth) = lemma2_revapp_nth (pf, pflen, pfnth) // end of [lemma_reverse_nth] (* ****** ****** *) primplmnt lemma_reverse_symm{xs,ys}(pf) = let // prval [n:int] pflen_xs = length_istot {xs} () prval pflen_ys = lemma_revapp_length (pf, pflen_xs, LENGTHnil ()) prval [zs:ilist] pfrev_zs = revapp_istot {ys,ilist_nil} () prval pflen_zs = lemma_revapp_length (pfrev_zs, pflen_ys, LENGTHnil ()) // prfun fpf {x:int} {i:int | i < n} .<>. (pfnth: NTH (x, xs, i)): NTH (x, zs, i) = let prval pf2nth = lemma_reverse_nth (pf, pflen_xs, pfnth) in lemma_reverse_nth (pfrev_zs, pflen_ys, pf2nth) end // end of [fpf] // prval ILISTEQ () = lemma_nth_ilisteq (pflen_xs, pflen_zs, fpf) // in pfrev_zs end // end of [lemma_reverse_symm] (* ****** ****** *) (* prfun lemma_insert_length {x0:int}{xs:ilist}{i:int}{ys:ilist}{n:int} (pf1: INSERT (x0, xs, i, ys), pf2: LENGTH (xs, n)): LENGTH (ys, n+1) // end of [lemma_insert_length] *) primplmnt lemma_insert_length (pf1, pf2) = let // prfun lemma {x0:int}{xs:ilist}{i:int}{ys:ilist}{n:int} .. (pf1: INSERT (x0, xs, i, ys), pf2: LENGTH (xs, n)): LENGTH (ys, n+1) = let in // case+ pf1 of | INSERTbas () => let prval () = length_isnat (pf2) in LENGTHcons (pf2) end // end of [INSERTbas] | INSERTind (pf1) => let prval LENGTHcons (pf2) = pf2 in LENGTHcons (lemma (pf1, pf2)) end // end of [INSERTind] // end // end of [lemma] // in lemma (pf1, pf2) end // end of [lemma_insert_length] (* ****** ****** *) (* prfun lemma_insert_nth_at {x0:int}{xs:ilist}{i:int}{ys:ilist} (pf: INSERT (x0, xs, i, ys)): NTH (x0, ys, i) // end of [lemma_insert_nth_eq] *) primplmnt lemma_insert_nth_at (pf) = let // prfun lemma {x0:int}{xs:ilist}{i:int}{ys:ilist} .. (pf: INSERT (x0, xs, i, ys)): NTH (x0, ys, i) = let in case+ pf of | INSERTbas () => NTHbas () | INSERTind (pf) => NTHind (lemma (pf)) end // end of [lemma] // in lemma (pf) end // end of [lemma_insert_nth_at] (* ****** ****** *) (* prfun lemma_insert_nth_lt {x0:int}{xs:ilist}{i:int}{ys:ilist}{x:int}{j:int | j < i} (pf1: INSERT (x0, xs, i, ys), pf2: NTH (x, xs, j)): NTH (x, ys, j) // end of [lemma_insert_nth_lt] *) primplmnt lemma_insert_nth_lt (pf1, pf2) = let // prfun lemma {x0:int}{xs:ilist}{i:int}{ys:ilist}{x:int}{j:int | j < i} .. (pf1: INSERT (x0, xs, i, ys), pf2: NTH (x, xs, j)): NTH (x, ys, j) = let in // case+ pf2 of | NTHbas () => let prval INSERTind (pf1) = pf1 in NTHbas () end // end of [NTHbas] | NTHind (pf2) => let prval INSERTind (pf1) = pf1 in NTHind (lemma (pf1, pf2)) end // end of [NTHind] // end // end of [lemma] // in lemma (pf1, pf2) end // end of [lemma_insert_nth_lt] (* ****** ****** *) (* prfun lemma_insert_nth_gte {x0:int}{xs:ilist}{i:int}{ys:ilist}{x:int}{j:int | j >= i} (pf1: INSERT (x0, xs, i, ys), pf2: NTH (x, xs, j)): NTH (x, ys, j+1) // end of [lemma_insert_nth_lt] *) primplmnt lemma_insert_nth_gte (pf1, pf2) = let // prfun lemma {x0:int}{xs:ilist}{i:int}{ys:ilist}{x:int}{j:int | j >= i} .. (pf1: INSERT (x0, xs, i, ys), pf2: NTH (x, xs, j)): NTH (x, ys, j+1) = let // in // case+ pf1 of | INSERTbas () => NTHind (pf2) | INSERTind (pf1) => let prval NTHind (pf2) = pf2 in NTHind (lemma (pf1, pf2)) end // end of [INSERTind] // end // end of [lemma] // in lemma (pf1, pf2) end // end of [lemma_insert_nth_gte] (* ****** ****** *) (* prfun lemma_nth_insert {x:int} {xs:ilist} {n:int} (pf: NTH (x, xs, n)): [ys:ilist] INSERT (x, ys, n, xs) // end of [lemma_nth_insert] *) primplmnt lemma_nth_insert (pf) = let // prfun lemma {x:int} {xs:ilist} {n:int} .. (pf: NTH (x, xs, n)): [ys:ilist] INSERT (x, ys, n, xs) = let in // case+ pf of | NTHbas () => INSERTbas () | NTHind (pf) => INSERTind (lemma (pf)) // end // in lemma (pf) end // end of [lemma_nth_insert] (* ****** ****** *) (* end of [ilist_prf.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/gmatrix.dats0000644000175000017500000001363613431250607021234 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/gvector.sats" staload "libats/SATS/gmatrix.sats" staload "libats/SATS/gmatrix_col.sats" staload "libats/SATS/gmatrix_row.sats" (* ****** ****** *) // implement{} fprint_gmatrix$sep1 (out) = fprint (out, ", ") implement{} fprint_gmatrix$sep2 (out) = fprint (out, "; ") // implement{a} fprint_gmatrix {mo}{m,n}{ld} (out, M, mo, m0, n0, ld) = let // implement fprint_gvector$sep<> (out) = fprint_gmatrix$sep1 (out) // fun loop_row {l:addr}{m:nat}.. ( pf: !GMR(a, l, m, n, ld) | p: ptr l, m: int m ) : void = ( if m > 0 then let // val ( ) = ( if m < m0 then fprint_gmatrix$sep2 (out) ) (* end of [val] *) // prval (pf1, pf2) = gmatrow_v_uncons0 (pf) val () = fprint_gvector (out, !p, n0, 1) val ( ) = loop_row (pf2 | ptr_add (p, ld), pred(m)) prval () = pf := gmatrow_v_cons0 (pf1, pf2) // in // nothing end else () // end of [if] ) // fun loop_col {l:addr}{m:nat}.. ( pf: !GMC(a, l, m, n, ld) | p: ptr l, m: int m ) : void = ( if m > 0 then let // val ( ) = ( if m < m0 then fprint_gmatrix$sep2 (out) ) (* end of [val] *) // prval (pf1, pf2) = gmatcol_v_uncons0 (pf) val () = fprint_gvector (out, !p, n0, ld) val () = loop_col (pf2 | ptr_succ (p), pred(m)) prval () = pf := gmatcol_v_cons0 (pf1, pf2) // in // nothing end else () // end of [if] ) // prval () = lemma_gmatrix_param (M) // in // case+ mo of | MORDrow () => loop_row (view@M | addr@M, m0) | MORDcol () => loop_col (view@M | addr@M, m0) // end // end of [fprint_gmatrix] (* ****** ****** *) implement{a} fprint_gmatrix_sep (out, M, mo, m, n, ld, sep1, sep2) = let // implement fprint_gmatrix$sep1<> (out) = fprint (out, sep1) implement fprint_gmatrix$sep2<> (out) = fprint (out, sep2) // in fprint_gmatrix (out, M, mo, m, n, ld) end // end of [fprint_gmatrix_sep] (* ****** ****** *) implement {a}(*tmp*) gmatrix_iforeach (M, mo, m, n, ld) = let var env: void = () in gmatrix_iforeach_env (M, mo, m, n, ld, env) end // end of [gmatrix_iforeach] (* ****** ****** *) implement {a}{env} gmatrix_iforeach_env (M, mo, m, n, ld, env) = let // in // case mo of | MORDrow () => let var i: int = 0 and j: int = 0 var p_i: ptr = addr@(M) var p_ij: ptr = the_null_ptr in for (i := 0; i < m; i := i+1) { val () = p_ij := p_i val ( ) = for (j := 0; j < n; j := j+1) { val (pf, fpf | p) = $UN.ptr0_vtake (p_ij) val () = gmatrix_iforeach$fwork (i, j, !p, env) prval () = fpf (pf) val () = p_ij := ptr_succ (p) } val () = p_i := ptr_add (p_i, ld) } end // end of [MORDrow] | MORDcol () => let var i: int = 0 and j: int = 0 var p_j: ptr = addr@(M) var p_ij: ptr = the_null_ptr in for (j := 0; j < n; j := j+1) { val () = p_ij := p_j val ( ) = for (i := 0; i < m; i := i+1) { val (pf, fpf | p) = $UN.ptr0_vtake (p_ij) val () = gmatrix_iforeach$fwork (i, j, !p, env) prval () = fpf (pf) val () = p_ij := ptr_succ (p) } val () = p_j := ptr_add (p_j, ld) } end // end of [MORDcol] // end // end of [gmatrix_iforeach_env] (* ****** ****** *) implement{a} gmatrix_imake$fopr (i, j, x) = x implement{a} gmatrix_imake_arrayptr {mo}{m,n}{ld} (M, mo, m, n, ld) = let // prval ( ) = lemma_gmatrix_param (M) prval () = mul_gte_gte_gte{m,n}() val (pf, pfgc | p) = array_ptr_alloc (i2sz(m*n)) // typedef tenv = ptr // implement gmatrix_iforeach$fwork (i, j, x, env) = let val x2 = gmatrix_imake$fopr (i, j, x) val p_ij = env val () = env := ptr_succ (p_ij) val () = $UN.ptr0_set (p_ij, x2) in // nothing end // end of [gmatrix_iforeach$fwork] // var env: tenv = p val () = gmatrix_iforeach_env (M, mo, m, n, ld, env) // in $UN.castvwtp0{arrayptr(a,m*n)}((pf, pfgc | p)) end // end of [gmatrix_imake_arrayptr] implement{a} gmatrix_imake_matrixptr {mo}{m,n}{ld} (M, mo, m, n, ld) = let // prval ( ) = lemma_gmatrix_param (M) val (pf, pfgc | p) = matrix_ptr_alloc (i2sz(m), i2sz(n)) prval () = matrix2gmatrow (!p) // implement(env) gmatrix_iforeach$fwork (i, j, x, env) = let val x2 = gmatrix_imake$fopr (i, j, x) val p_ij = ptr_add (p, i*n+j) val () = $UN.ptr0_set (p_ij, x2) in // nothing end // end of [gmatrix_iforeach$fwork] // val () = gmatrix_iforeach (M, mo, m, n, ld) // prval () = gmatrow2matrix (!p) // in $UN.castvwtp0{matrixptr(a,m,n)}((pf, pfgc | p)) end // end of [gmatrix_imake_matrixptr] (* ****** ****** *) (* end of [gmatrix.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/sllist.dats0000644000175000017500000003761513431250607021076 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/gnode.sats" (* ****** ****** *) staload "libats/SATS/sllist.sats" (* ****** ****** *) #define nullp the_null_ptr (* ****** ****** *) // extern fun{a:vt0p} g2node_make_elt (x: a): g2node1(a) // (* ****** ****** *) // extern fun{a:t0p} // [a] is nonlinear g2node_free (nx: g2node1(INV(a))): void // extern fun{a:vt0p} // [a] may be linear g2node_freelin (nx: g2node1(INV(a))): void // (* ****** ****** *) // extern fun{a:vt0p} g2node_free_elt ( nx: g2node1(INV(a)), res: &(a?) >> a ) : void // end-of-function // extern fun{a:vt0p} g2node_getfree_elt(nx: g2node1(INV(a))):(a) // (* ****** ****** *) // extern castfn sllist0_encode {a:vt0p}{n:int} (nx: g2node0(INV(a))) :<> sllist(a, n) extern castfn sllist0_decode {a:vt0p}{n:int} (xs: sllist(INV(a), n)) :<> g2node0(a) // extern castfn sllist1_encode {a:vt0p}{n:int | n > 0} (nx: g2node1(INV(a))) :<> sllist(a, n) extern castfn sllist1_decode {a:vt0p}{n:int | n > 0} (xs: sllist(INV(a), n)) :<> g2node1(a) // (* ****** ****** *) // implement {}(*tmp*) sllist_nil() = sllist0_encode(gnode_null()) // implement {a}(*tmp*) sllist_sing(x) = sllist_cons(x, sllist_nil()) // (* ****** ****** *) implement {a}(*tmp*) sllist_cons (x, xs) = let // val nx = g2node_make_elt(x) in sllist_cons_ngc(nx, xs) // end // end of [sllist_cons] implement{a} sllist_uncons (xs) = let // val nx0 = sllist_uncons_ngc(xs) in g2node_getfree_elt(nx0) // end // end of [sllist_uncons] (* ****** ****** *) implement {a}(*tmp*) sllist_snoc (xs, x) = let // val nx = g2node_make_elt (x) in sllist_snoc_ngc (xs, nx) // end // end of [sllist_snoc] implement{a} sllist_unsnoc (xs) = let // val nx0 = sllist_unsnoc_ngc (xs) in g2node_getfree_elt (nx0) // end // end of [sllist_unsnoc] (* ****** ****** *) implement {a}(*tmp*) sllist_make_list {n}(xs) = let // fun loop ( nx0: g2node1 (a), xs: List (a) ) : void = let in // case+ xs of | list_cons (x, xs) => let val nx1 = g2node_make_elt (x) val () = gnode_link11 (nx0, nx1) in loop (nx1, xs) end // end of [loop] | list_nil () => let val () = gnode_set_next_null (nx0) in // nothing end // end of [list_nil] // end // end of [loop] // in // case+ xs of | list_cons (x, xs) => let val nx0 = g2node_make_elt (x) val () = $effmask_all (loop (nx0, xs)) in sllist0_encode (nx0) end // end of [list_cons] | list_nil () => sllist_nil () // end // end of [sllist_make_list] (* ****** ****** *) // implement {a}(*tmp*) sllist_make_list_vt {n}(xs) = $UN.castvwtp0{sllist(a,n)}(xs) // (* ****** ****** *) implement {}(*tmp*) sllist_is_nil {a}{n} (xs) = let val nxs = $UN.castvwtp1{g2node0(a)}(xs) in $UN.cast{bool(n==0)}(gnodelst_is_nil (nxs)) end // end of [sllist_is_nil] implement {}(*tmp*) sllist_is_cons {a}{n} (xs) = let val nxs = $UN.castvwtp1{g2node0(a)}(xs) in $UN.cast{bool(n > 0)}(gnodelst_is_cons (nxs)) end // end of [sllist_is_cons] (* ****** ****** *) (* fun{a:vt0p} sllist_length {n:int} (xs: !sllist (INV(a), n)):<> int (n) *) implement {a}(*tmp*) sllist_length {n} (xs) = let // val nxs = $UN.castvwtp1{g2node0(a)}(xs) // in $UN.cast{int(n)}(gnodelst_length (nxs)) end // end of [sllist_length] (* ****** ****** *) implement {a}(*tmp*) sllist_get_elt (xs) = let val p_elt = sllist_getref_elt (xs) in $UN.cptr_get (p_elt) // end of [val] end // end of [sllist_get_elt] implement {a}(*tmp*) sllist_set_elt (xs, x0) = let val p_elt = sllist_getref_elt (xs) in $UN.cptr_set (p_elt, x0) // end of [val] end // end of [sllist_set_elt] implement {a}(*tmp*) sllist_getref_elt (xs) = let val nxs = $UN.castvwtp1{g2node1(a)}(xs) in gnode_getref_elt (nxs) // end of [val] end // end of [sllist_getref_elt] (* ****** ****** *) implement {a}(*tmp*) sllist_getref_next (xs) = let val nxs = $UN.castvwtp1{g2node1(a)}(xs) in cptr2ptr (gnode_getref_next (nxs)) // end of [val] end // end of [sllist_getref_next] (* ****** ****** *) implement {a}(*tmp*) sllist_get_elt_at (xs, i) = let val p_elt = sllist_getref_elt_at (xs, i) in $UN.cptr_get (p_elt) // end of [val] end // end of [sllist_get_elt_at] implement {a}(*tmp*) sllist_set_elt_at (xs, i, x0) = let val p_elt = sllist_getref_elt_at (xs, i) in $UN.cptr_set (p_elt, x0) // end of [val] end // end of [sllist_set_elt_at] implement {a}(*tmp*) sllist_getref_elt_at (xs, i) = let // fun loop ( nxs: g2node1 (a), i: int ) : g2node1 (a) = if i > 0 then let val nxs = gnode_get_next (nxs) in loop ($UN.cast{g2node1(a)}(nxs), i-1) end else nxs // end of [if] // val nxs0 = $UN.castvwtp1{g2node1(a)}(xs) val nxs_i = $effmask_all (loop (nxs0, i)) // in gnode_getref_elt (nxs_i) end // end of [sllist_getref_elt_at] (* ****** ****** *) implement {a}(*tmp*) sllist_getref_at (xs, i) = let // fun loop ( p: Ptr1, i: int ) : Ptr1 = let in if i > 0 then let val nx = $UN.ptr1_get (p) // end of [val] val p2 = gnode_getref_next (nx) in loop (cptr2ptr (p2), i-1) end else (p) // end of [if] end // end of [loop] // val p0 = $UN.cast{Ptr1}(addr@(xs)) // in $effmask_all (loop (p0, i)) end // end of [sllist_getref_at] (* ****** ****** *) implement {a}(*tmp*) sllist_insert_at {n} (xs, i, x0) = let var xs = xs val p_i = sllist_getref_at (xs, i) val nx0 = g2node_make_elt (x0) val nxs = $UN.ptr1_get (p_i) val () = gnode_link10 (nx0, nxs) val () = $UN.ptr1_set (p_i, nx0) in $UN.castvwtp0{sllist(a, n+1)}(xs) end // end of [sllist_insert_at] (* ****** ****** *) implement {a}(*tmp*) sllist_takeout_at {n} (xs, i) = let val p_i = sllist_getref_at (xs, i) val nxs = $UN.ptr1_get (p_i) val nx0 = nxs val nxs = gnode_get_next (nx0) val () = $UN.ptr1_set (p_i, nxs) prval ( ) = __assert (xs) where { extern praxi __assert (xs: &sllist (a, n) >> sllist (a, n-1)): void } // end of [where] // end of [prval] in g2node_getfree_elt (nx0) end // end of [sllist_takeout_at] (* ****** ****** *) implement {a}(*tmp*) sllist_append {n1,n2} (xs1, xs2) = let // prval() = lemma_sllist_param(xs1) prval() = lemma_sllist_param(xs2) // val iscons1 = sllist_is_cons(xs1) // in // if iscons1 then let val iscons2 = sllist_is_cons(xs2) in // if iscons2 then let val nxs1 = sllist1_decode (xs1) val nxs2 = sllist0_decode (xs2) val nxs1_end = gnodelst_next_all (nxs1) val _void_ = gnode_link10 (nxs1_end, nxs2) in sllist0_encode (nxs1) end else let prval () = sllist_free_nil (xs2) in xs1 end // end of [if] // end else let prval () = sllist_free_nil (xs1) in xs2 end // end of [if] // end // end of [sllist_append] (* ****** ****** *) implement {a}(*tmp*) sllist_reverse (xs) = let in sllist_reverse_append (xs, sllist_nil ()) end // end of [sllist_reverse] (* ****** ****** *) implement {a}(*tmp*) sllist_reverse_append (xs1, xs2) = let // fun loop ( nxs: g2node0 (a), res: g2node1 (a) ) : g2node1 (a) = let val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx0 = nxs val nxs = gnode_get_next (nx0) val () = gnode_link11 (nx0, res) in loop (nxs, nx0) end else res // end of [if] // end // end of [loop] // prval ( ) = lemma_sllist_param (xs1) // val iscons = sllist_is_cons (xs1) // in // if iscons then let val nxs1 = sllist1_decode (xs1) val nx0 = nxs1 val nxs1 = gnode_get_next (nx0) val () = gnode_link10 (nx0, sllist0_decode (xs2)) in sllist0_encode ($effmask_all (loop (nxs1, nx0))) end else let prval () = sllist_free_nil (xs1) in xs2 end // end of [if] // end // end of [sllist_reverse_append] (* ****** ****** *) implement {a}(*tmp*) sllist_free (xs) = let // fun loop ( nxs: g2node0(a) ) : void = let // val iscons = gnodelst_is_cons(nxs) // in // if iscons then let val nxs2 = gnode_get_next(nxs) // end of [val] val () = g2node_free(nxs) in loop(nxs2) end else () // end of [if] // end // end of [loop] // val nxs = sllist0_decode(xs) // in $effmask_all (loop(nxs)) end // end of [sllist_free] (* ****** ****** *) implement {a}(*tmp*) sllist_freelin (xs) = let // implement (a2)(*tmp*) gclear_ref(x0) = { prval () = $UN.castview2void_at(view@x0) val () = sllist_freelin$clear(x0) prval () = $UN.castview2void_at(view@x0) } (* gclear_ref *) // fun loop ( nxs: g2node0(a) ) : void = let // val iscons = gnodelst_is_cons(nxs) // in // if iscons then let val nxs2 = gnode_get_next(nxs) // end of [val] val () = g2node_freelin(nxs) in loop(nxs2) end else () // end of [if] // end // end of [loop] // val nxs = sllist0_decode(xs) // in $effmask_all(loop(nxs)) end // end of [sllist_freelin] (* ****** ****** *) implement {a}{b} sllist_map{n}(xs) = let // fun loop ( nxs: g2node0(a), p_res: ptr ) : void = let // val iscons = gnodelst_is_cons(nxs) // in // if iscons then let val nx = nxs val nxs = gnode_get_next(nx) val p_x = gnode_getref_elt(nx) val (pf, fpf | p_x) = $UN.cptr_vtake{a}(p_x) val y = sllist_map$fopr(!p_x) prval ((*returned*)) = fpf(pf) val ny = g2node_make_elt(y) val () = $UN.ptr0_set(p_res, ny) val p_res = gnode_getref_next(ny) in loop (nxs, cptr2ptr(p_res)) end else () // end of [if] // end (* end of [loop] *) // var res: ptr val () = loop ($UN.castvwtp1{g2node0(a)}(xs), addr@(res)) // in $UN.castvwtp0{sllist(b,n)}(res) end (* end of [sllist_map] *) (* ****** ****** *) (* fun{ a:vt0p}{env:vt0p } sllist_foreach_env (xs: !Sllist (INV(a)), env: &env >> _): void *) implement {a}{env} sllist_foreach_env (xs, env) = let // fun loop ( nxs: g2node0 (a), env: &env ) : void = let val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx0 = nxs val nxs = gnode_get_next (nxs) val p_elt = gnode_getref_elt (nx0) val (pf, fpf | p_elt) = $UN.cptr_vtake {a} (p_elt) val test = sllist_foreach$cont (!p_elt, env) in if test then let val () = sllist_foreach$fwork (!p_elt, env) prval () = fpf (pf) in loop (nxs, env) end else let prval () = fpf (pf) in // nothing end // end of [if] end else () // end of [if] // end // end of [loop] // val nxs = $UN.castvwtp1{g2node0(a)}(xs) // in loop (nxs, env) end // end of [sllist_foreach_env] (* ****** ****** *) implement {}(*tmp*) fprint_sllist$sep (out) = fprint_string (out, "->") implement {a}(*tmp*) fprint_sllist (out, xs) = let // fun loop ( out: FILEref, nxs: g2node0 (a), i: int ) : void = let val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx0 = nxs val nxs = gnode_get_next (nx0) val () = if i > 0 then fprint_sllist$sep (out) // end of [val] val p_elt = gnode_getref_elt (nx0) val (pf, fpf | p_elt) = $UN.cptr_vtake {a} (p_elt) val () = fprint_ref (out, !p_elt) prval () = fpf (pf) in loop (out, nxs, i+1) end // end of [if] // end // end of [loop] // val nxs = $UN.castvwtp1{g2node0(a)}(xs) // in loop (out, nxs, 0) end // end of [fprint_sllist] (* ****** ****** *) datavtype slnode_vtype (a:vt@ype+) = SLNODE of (a, ptr(*next*)) // end of [slnode_vtype] (* ****** ****** *) vtypedef slnode (a:vt0p) = slnode_vtype (a) (* ****** ****** *) extern praxi slnode_vfree {a:vt0p} (nx: slnode (a)): void extern castfn g2node_decode {a:vt0p} (nx: g2node1 (INV(a))):<> slnode (a) extern castfn g2node_encode {a:vt0p} (nx: slnode (INV(a))):<> g2node1 (a) (* ****** ****** *) implement {a}(*tmp*) g2node_make_elt (x) = let in $UN.castvwtp0{g2node1(a)}(SLNODE{a}(x, _)) end // end of [g2node_make_elt] (* ****** ****** *) // implement {a}(*tmp*) g2node_free(nx) = let val nx = g2node_decode (nx) // end of [val] val+~SLNODE (_, _) = (nx) in (*nothing*) end // end of [g2node_free] // implement {a}(*tmp*) g2node_freelin(nx) = let val nx = g2node_decode (nx) // end of [val] val+@SLNODE(x0, _) = (nx) val ((*freed*)) = gclear_ref(x0) in free@{a}(nx) end // end of [g2node_free] // (* ****** ****** *) implement {a}(*tmp*) g2node_free_elt (nx, res) = let val nx = g2node_decode (nx) val~SLNODE (x, _) = (nx); val () = res := x in (*nothing*) end // end of [g2node_free_elt] implement {a}(*tmp*) g2node_getfree_elt (nx) = let val nx = g2node_decode (nx) val~SLNODE (x, _) = (nx) in x end // end of [g2node_getfree_elt] (* ****** ****** *) implement(a) gnode_getref_elt (nx) = let // val nx = g2node_decode (nx) // val+@SLNODE (elt, _) = nx val p_elt = addr@ (elt) prval () = fold@ (nx) prval () = slnode_vfree (nx) // in $UN.cast{cPtr1(a)}(p_elt) end // end of [gnode_getref_elt] (* ****** ****** *) implement(a) gnode_getref_next (nx) = let // val nx = g2node_decode (nx) // val+@SLNODE (_, next) = nx val p_next = addr@ (next) prval () = fold@ (nx) prval () = slnode_vfree (nx) // in $UN.cast{cPtr1(g2node0(a))}(p_next) end // end of [gnode_getref_next] (* ****** ****** *) implement(a) gnode_link10 (nx1, nx2) = gnode_set_next (nx1, nx2) // end of [gnode_link10] implement(a) gnode_link11 (nx1, nx2) = gnode_set_next (nx1, nx2) // end of [gnode_link11] (* ****** ****** *) implement {a}(*tmp*) sllist_cons_ngc (nx0, xs) = let // val nxs = sllist0_decode (xs) val _void_ = gnode_link10 (nx0, nxs) // in sllist0_encode (nx0) end // end of [sllist_cons_ngc] implement {a}(*tmp*) sllist_uncons_ngc (xs) = let // val nxs = sllist1_decode (xs) val nxs2 = gnode_get_next (nxs) val _void_ = xs := sllist0_encode (nxs2) // in nxs end // end of [sllist_uncons_ngc] (* ****** ****** *) implement {a}(*tmp*) sllist_snoc_ngc {n} (xs, nx0) = let // vtypedef res = sllist(a,n+1) // val () = gnode_set_next_null (nx0) // val nxs = sllist0_decode (xs) val iscons = gnodelst_is_cons (nxs) // in // if iscons then let // val nx_end = gnodelst_next_all (nxs) val _void_ = gnode_link11 (nx_end, nx0) // in $UN.castvwtp0{res}(nxs) end else $UN.castvwtp0{res}(nx0) // end of [if] // end // end of [sllist_snoc_ngc] (* ****** ****** *) implement {a}(*tmp*) sllist_unsnoc_ngc {n} (xs) = let // fun loop ( xs: &Sllist1 (a) >> Sllist0(a) ) : g2node1(a) = let // val p = sllist_getref_next (xs) // val (pf, fpf | p) = $UN.ptr_vtake{Sllist0(a)}(p) // val iscons = sllist_is_cons (!p) // in // if iscons then let val res = loop (!p) prval () = fpf (pf) in res end // end of [then] else let prval () = fpf (pf) val nx = $UN.castvwtp0{g2node1(a)}(xs) val () = xs := sllist_nil{a}((*void*)) in nx end // end of [else] // end of [if] // end (* end of [loop] *) // val res = $effmask_all (loop (xs)) // prval [l:addr] EQADDR () = eqaddr_make_ptr (addr@xs) // prval () = view@xs := $UN.castview0{sllist(a,n-1)@l}(view@xs) // in res end // end of [sllist_unsnoc_ngc] (* ****** ****** *) (* end of [sllist.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/gfarray.dats0000644000175000017500000001476413431250607021217 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Time: December, 2012 // (* ****** ****** *) // // HX: generic arrays (fully indexed) // (* ****** ****** *) // // HX-2012-11-30: ported to ATS/Postiats from ATS/Anairiats // (* ****** ****** *) // // HX: // for integer sequences // staload "libats/SATS/ilist_prf.sats" // (* ****** ****** *) staload "libats/SATS/gfarray.sats" (* ****** ****** *) primplmnt gfarray_v_sing (pfat) = gfarray_v_cons (pfat, gfarray_v_nil ()) primplmnt gfarray_v_unsing (pfarr) = let prval gfarray_v_cons (pfat, gfarray_v_nil ()) = pfarr in pfat end // end of [gfarray_v_unsing] (* ****** ****** *) (* prfun gfarray_v_split {a:vt0p} {l:addr} {xs:ilist} {n:int} {i:nat | i <= n} ( pflen: LENGTH (xs, n) , pfarr: gfarray_v (a, l, xs) ) : [ xs1,xs2:ilist ] ( LENGTH (xs1, i) , APPEND (xs1, xs2, xs) , gfarray_v (a, l, xs1) , gfarray_v (a, l+i*sizeof(a), xs2) ) // end of [gfarray_v_split] *) primplmnt gfarray_v_split {a}{l}{xs}{n}{i} (pflen, pfarr) = let // prfun split {l:addr} {xs:ilist} {n:int} {i:nat | i <= n} .. ( pflen: LENGTH (xs, n), pfarr: gfarray_v (a, l, xs) ) : [xs1,xs2:ilist] ( LENGTH (xs1, i) , APPEND (xs1, xs2, xs) , gfarray_v (a, l, xs1) , gfarray_v (a, l+i*sizeof(a), xs2) ) = let in // sif i > 0 then let prval LENGTHcons (pflen) = pflen prval gfarray_v_cons (pf1at, pf2arr) = pfarr prval (pfres_len, pfres_app, pfres1, pfres2) = split {..}{..}{n-1}{i-1} (pflen, pf2arr) in (LENGTHcons (pfres_len), APPENDcons (pfres_app), gfarray_v_cons (pf1at, pfres1), pfres2) end else let prval EQINT () = eqint_make {i,0} () in (LENGTHnil (), APPENDnil (), gfarray_v_nil (), pfarr) end // end of [sif] // end // end of [split] // val [ xs1:ilist,xs2:ilist ] ( pf1len, pfapp, pf1arr, pf2arr ) = split {l}{xs}{n}{i} (pflen, pfarr) prval pf2len = length_istot {xs2} () prval pflen2 = lemma_append_length (pfapp, pf1len, pf2len) prval () = length_isfun (pflen, pflen2) // in (pf1len, pf2len, pfapp, pf1arr, pf2arr) end // end of [gfarray_v_split] (* ****** ****** *) (* prfun gfarray_v_unsplit {a:vt0p} {l:addr} {xs1,xs2:ilist} {n1:int} ( pflen: LENGTH (xs1, n1) , pfarr1: gfarray_v (a, l, xs1) , pfarr2: gfarray_v (a, l+n1*sizeof(a), xs2) ) : [xs:ilist] ( APPEND (xs1, xs2, xs), gfarray_v (a, l, xs) ) // end of [gfarray_v_unsplit] *) primplmnt gfarray_v_unsplit {a}{l}{xs1,xs2}{n1} (pflen, pfarr1, pfarr2) = let // prfun unsplit {l:addr} {xs1,xs2:ilist} {n1:int} .. ( pflen: LENGTH (xs1, n1) , pfarr1: gfarray_v (a, l, xs1) , pfarr2: gfarray_v (a, l+n1*sizeof(a), xs2) ) : [xs:ilist] ( APPEND (xs1, xs2, xs), gfarray_v (a, l, xs) ) = let in // case+ pflen of | LENGTHcons (pflen) => let prval gfarray_v_cons (pf1at, pf2arr1) = pfarr1 prval (pfres_app, pfres_arr) = unsplit (pflen, pf2arr1, pfarr2) in (APPENDcons (pfres_app), gfarray_v_cons (pf1at, pfres_arr)) end // end of [LENGTHcons] | LENGTHnil () => let prval gfarray_v_nil () = pfarr1 in (APPENDnil (), pfarr2) end // end of [LENGTHnil] // end // end of [unsplit] // in unsplit (pflen, pfarr1, pfarr2) end // end of [gfarray_v_unsplit] (* ****** ****** *) (* prfun gfarray_v_extend {a:vt0p} {l:addr} {xs:ilist}{x:int}{xsx:ilist} {n:nat} ( pflen: LENGTH (xs, n) , pfsnoc: SNOC (xs, x, xsx) , pfat: stamped_vt (a, x) @ l+n*sizeof(a) , pfarr: gfarray_v (a, l, xs) ) : gfarray_v (a, l, xsx) // end of [gfarray_v_extend] *) primplmnt gfarray_v_extend {a}{l}{xs}{x}{xsx}{n} ( pflen, pfsnoc, pfat, pfarr ) = let // stadef xs1 = xs stadef xs2 = ilist_sing (x) // prval pfapp = lemma (pfsnoc) where { extern praxi lemma : SNOC (xs, x, xsx) - APPEND (xs1, xs2, xsx) } // end of [prval] // prval pf1arr = pfarr prval pf2arr = gfarray_v_sing (pfat) // prval (pfapp2, pfarr) = gfarray_v_unsplit {a}{l}{xs1,xs2}{n} (pflen, pf1arr, pf2arr) // end of [prval] // prval ILISTEQ () = append_isfun (pfapp, pfapp2) // in pfarr end // end of [gfarray_v_extend] (* ****** ****** *) (* prfun gfarray_v_unextend {a:vt0p} {l:addr} {xs:ilist} {n:int | n > 0} ( pflen: LENGTH (xs, n) , pfarr: gfarray_v (a, l, xs) ) : [xsf:ilist;x:int] ( // xsf: the front SNOC (xsf, x, xs), stamped_vt (a, x) @ l+(n-1)*sizeof(a), gfarray_v (a, l, xsf) ) // end of [gfarray_v_unextend] *) primplmnt gfarray_v_unextend {a}{l}{xs}{n} (pflen, pfarr) = let // prval [ xs1:ilist,xs2:ilist ] ( pf1len, pf2len, pfapp, pf1arr, pf2arr ) = gfarray_v_split {a}{l}{xs}{n}{n-1} (pflen, pfarr) // prval LENGTHcons (LENGTHnil()) = pf2len prval pf2at = gfarray_v_unsing (pf2arr) // prval pfsnoc = lemma (pfapp) where { extern praxi lemma : {xs:ilist}{x:int}{xsx:ilist} APPEND (xs, ilist_sing(x), xsx) - SNOC (xs, x, xsx) // end of [extern] } // end of [prval] // in (pfsnoc, pf2at, pf1arr) end // end of [gfarray_v_unextend] (* ****** ****** *) local staload UN = "prelude/SATS/unsafe.sats" in (* in-of-local *) // implement {a}(*tmp*) gfarray_get_at {l}{x0}{xs}{i0} (pf1, pf2 | gp0, i0) = $UN.ptr0_get_at(gp0, i0) // implement {a}(*tmp*) gfarray_set_at {l}{x0}{xs1}{xs2}{i0} (pf1, pf2 | gp0, i0, x0) = let // prval () = pf2 := $UN.castview0(pf2) // in $UN.ptr0_set_at(gp0, i0, x0) end // end of [gfarray_set_at] // end // end of [local] (* ****** ****** *) (* end of [gfarray.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/gmatrix_col.dats0000644000175000017500000001627113431250607022067 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/gvector.sats" staload "libats/SATS/gmatrix.sats" staload "libats/SATS/gmatrix_col.sats" (* ****** ****** *) implement{a} gmatcol_get_at (M, ld, i, j) = let // val pij = gmatcol_getref_at (M, ld, i, j) in $UN.cptr_get (pij) // end // end of [gmatcol_get_at] implement{a} gmatcol_set_at (M, ld, i, j, x) = let // val pij = gmatcol_getref_at (M, ld, i, j) in $UN.cptr_set (pij, x) // end // end of [gmatcol_set_at] (* ****** ****** *) implement{a} gmatcol_getref_at (M, ld, i, j) = let // val p = $UN.cast2Ptr1(ptr_add (addr@M, i+j*ld)) // in $UN.ptr2cptr{a}(p) end // end of [gmatcol_getref_at] (* ****** ****** *) implement{a} gmatcol_getref_row_at {m,n}{ld}(M, ld, i) = let // val prow = $UN.cast2Ptr1(ptr_add (addr@M, i)) // in $UN.ptr2cptr{GVT(a,n,ld)}(prow) end // end of [gmatcol_getref_row_at] implement{a} gmatcol_getref_col_at {m,n}{ld}(M, ld, j) = let // val pcol = $UN.cast2Ptr1(ptr_add (addr@M, j*ld)) // in $UN.ptr2cptr{GVT(a,m,1(*d*))}(pcol) end // end of [gmatcol_getref_col_at] (* ****** ****** *) implement{a} gmatcol_interchange_row {m,n}{ld} ( M, n, ld, i1, i2 ) = let in // if i1 != i2 then let // val cp1 = gmatcol_getref_row_at (M, ld, i1) val cp2 = gmatcol_getref_row_at (M, ld, i2) // val (pf1, fpf1 | p1) = $UN.cptr_vtake (cp1) val (pf2, fpf2 | p2) = $UN.cptr_vtake (cp2) // val () = gvector_exchange (!p1, !p2, n, ld, ld) // prval () = fpf1 (pf1) and () = fpf2 (pf2) // in // nothing end else () // end of [if] // end (* end of [gmatcol_interchange_row] *) (* ****** ****** *) implement{a} gmatcol_interchange_col {m,n}{ld} ( M, m, ld, j1, j2 ) = let in // if j1 != j2 then let // val cp1 = gmatcol_getref_col_at (M, ld, j1) val cp2 = gmatcol_getref_col_at (M, ld, j2) // val (pf1, fpf1 | p1) = $UN.cptr_vtake (cp1) val (pf2, fpf2 | p2) = $UN.cptr_vtake (cp2) // val () = gvector_exchange (!p1, !p2, m, 1, 1) // prval () = fpf1 (pf1) and () = fpf2 (pf2) // in // nothing end else () // end of [if] // end (* end of [gmatcol_interchange_col] *) (* ****** ****** *) implement {a}(*tmp*) gmatcol_copyto {m,n}{ldx,ldy} ( X2, Y2, m, n, ldx, ldy ) = let // prval ( ) = __initize (Y2) where { extern praxi __initize (&GMC(a?, m, n, ldy) >> GMC(a, m, n, ldy)): void } (* end of [where] *) // end of [prval] // implement(env) gmatcol_foreachcol2$fwork (X, Y, m, env) = let prval () = gvector_uninitize (Y) in gvector_copyto (X, Y, m, 1, 1) end // end of [gmatcol_foreachcol2$fwork] // val () = gmatcol_foreachcol2 (X2, Y2, m, n, ldx, ldy) // in // nothing end // end of [gmatcol_copyto] (* ****** ****** *) implement {a}(*tmp*) gmatcol_transpto {m,n}{ldx,ldy} ( X2, Y2, m, n, ldx, ldy ) = let typedef tenv = ptr implement gmatcol_foreachcol$fwork {m} (X, m, env) = () where { // typedef tYcol = gvector(a,m,ldy) // val pY = env val () = env := ptr_succ (env) // val (pf, fpf | pY) = $UN.ptr_vtake{tYcol}(pY) // prval ( ) = gvector_uninitize{a}(!pY) val () = gvector_copyto (X, !pY, m, 1, ldy) // prval ((*void*)) = fpf (pf) // } // end of [gmatcol_foreachcol$fwork] // var env: ptr = addr@Y2 val () = gmatcol_foreachcol_env (X2, m, n, ldx, env) // prval () = gmatrix_initize{a}(Y2) // in // nothing end // end of [gmatcol_transpto] (* ****** ****** *) implement{a} gmatcol_ptr_split_2x2 (pf | p, ld, i, j) = let // val j_ld = j * ld val p01 = ptr_add (p, j_ld ) val p10 = ptr_add (p, i ) val p11 = ptr_add (p, i+j_ld) prval (pf00, pf01, pf10, pf11) = gmatcol_v_split_2x2 (pf, i, j) // in (pf00, pf01, pf10, pf11, gmatcol_v_unsplit_2x2 | p01, p10, p11) end // end of [gmatcol_ptr_split_2x2] (* ****** ****** *) implement{a} gmatcol_foreachcol (M, m, n, ld) = let var env: void = () in gmatcol_foreachcol_env (M, m, n, ld, env) end // end of [gmatcol_foreachcol] (* ****** ****** *) implement {a}{env} gmatcol_foreachcol_env {m,n}{ld} (M, m, n, ld, env) = let fun loop {l:addr}{n:nat} .. ( pfM: !GMC(a, l, m, n, ld) | p: ptr l, n: int n, env: &env ) : void = let in // if n > 0 then let // prval (pfM1, pfM2) = gmatcol_v_uncons1 (pfM) val () = gmatcol_foreachcol$fwork (!p, m, env) val () = loop (pfM2 | ptr_add (p, ld), pred(n), env) prval ((*void*)) = pfM := gmatcol_v_cons1 (pfM1, pfM2) // in // nothing end else let // (* prval () = (pfM := gmatcol_v_renil0 {a,a} (pfM)) *) // in // nothing end // end of [if] // end // end of [loop] // prval () = lemma_gmatcol_param (M) // in loop (view@M | addr@M, n, env) end // end of [gmatcol_foreachcol_env] (* ****** ****** *) implement{a1,a2} gmatcol_foreachcol2 (A, B, m, n, ld1, ld2) = let var env: void = () in gmatcol_foreachcol2_env (A, B, m, n, ld1, ld2, env) end // end of [gmatrix_foreachcol2] implement {a1,a2}{env} gmatcol_foreachcol2_env {m,n}{lda,ldb} ( A, B, m, n, lda, ldb, env ) = let // fun loop {l1,l2:addr}{n:nat} .. ( pfA: !GMC(a1, l1, m, n, lda) , pfB: !GMC(a2, l2, m, n, ldb) | p1: ptr l1, p2: ptr l2, n: int n, env: &env ) : void = let in // if n > 0 then let // prval (pfA1, pfA2) = gmatcol_v_uncons1 (pfA) prval (pfB1, pfB2) = gmatcol_v_uncons1 (pfB) // val () = gmatcol_foreachcol2$fwork (!p1, !p2, m, env) // val () = loop ( pfA2, pfB2 | ptr_add (p1, lda), ptr_add (p2, ldb), pred(n), env ) (* end of [val] *) // prval () = pfA := gmatcol_v_cons1 (pfA1, pfA2) prval () = pfB := gmatcol_v_cons1 (pfB1, pfB2) // in // nothing end else let // (* prval () = (pfA := gmatrow_v_renil0 {a,a} (pfA)) prval () = (pfB := gmatrow_v_renil0 {a,a} (pfB)) *) // in // nothing end // end of [if] // end // end of [loop] // prval () = lemma_gmatcol_param (A) prval () = lemma_gmatcol_param (B) // in loop (view@A, view@B | addr@A, addr@B, n, env) end // end of [gmatcol_foreachcol2] (* ****** ****** *) (* end of [gmatrix_col.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/linheap_binomial.dats0000644000175000017500000003257513431250607023056 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: November, 2011 *) (* ****** ****** *) // // HX: Note that this implementation is largely of // functional-style and only supports mergeable-heap // operations; it particular it does not support the // decrease-key operation. // (* ****** ****** *) // // HX-2012-12: ported to ATS/Postiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linheap_binomial" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/linheap_binomial.sats" (* ****** ****** *) #define nullp the_null_ptr (* ****** ****** *) // // HX-2012-12-21: // the file should be included here // before [heap_vtype] is assumed // #include "./SHARE/linheap.hats" // code reuse // (* ****** ****** *) // // binomial trees: // btree(a, n) is for a binomial tree of rank(n) // datavtype btree ( a:vt@ype+, int(*rank*) ) = // btree | {n:nat} btnode (a, n) of (int (n), a, btreelst (a, n)) // end of [btree] and btreelst ( a:vt@ype+, int(*rank*) ) = | {n:nat} btlst_cons (a, n+1) of (btree (a, n), btreelst (a, n)) | btlst_nil (a, 0) // end of [btreelst] (* ****** ****** *) datavtype bheap ( a:vt@ype+, int(*rank*), int(*size*) ) = // bheap | {n:nat} bheap_nil (a, n, 0) of () | {n:nat}{p:int}{sz:nat}{n1:int | n1 > n} bheap_cons (a, n, p+sz) of (EXP2 (n, p) | btree (a, n), bheap (a, n1, sz)) // end of [bheap] (* ****** ****** *) fun{ a:vt0p } btree_rank {n:int} .<>. ( bt: !btree (a, n) ) :<> int (n) = let val btnode (n, _, _) = bt in n end // end of [btree_rank] (* ****** ****** *) extern fun{ } pow2 {n:nat} (n: int n):<> [p:int] (EXP2 (n, p) | size_t p) // end of [pow2] implement{} pow2 {n} (n) = let val res = g0uint_lsl_size ((i2sz)1, n) val [p:int] res = g1ofg0_uint (res) prval pf = __assert () where { extern praxi __assert (): EXP2 (n, p) } // end of [where] // end of [prval] in (pf | res) end // end of [pow2] (* ****** ****** *) fun{ a:vt0p } btree_size {n:int} .<>. ( bt: !btree (a, n) ) :<> [p:int] ( EXP2 (n, p) | size_t (p) ) = let val btnode (n, _, _) = bt in pow2 (n) end // end of [btree_size] (* ****** ****** *) fun{ a:vt0p } bheap_size {n:int}{sz:int} ( hp: !bheap (a, n, sz) ) : size_t (sz) = let in // case+ hp of | bheap_cons (pf | bt, hp) => let val (pf2 | p) = btree_size (bt) prval () = exp2_isfun (pf, pf2) in p + bheap_size (hp) end // end of [bheap_cons] | bheap_nil ((*void*)) => g1int2uint (0) // end // end of [bheap_size] (* ****** ****** *) fun{ a:t0p } btree_free {n:nat} .. (bt: btree (a, n)) : void = let val ~btnode (_, _, bts) = bt in btreelst_free (bts) end // end of [btree_free] and btreelst_free {n:nat} .. ( bts: btreelst (a, n) ) : void = let in // case+ bts of | ~btlst_cons (bt, bts) => let val () = btree_free (bt) in btreelst_free (bts) end // end of [btlst_cons] | ~btlst_nil () => () end // end of [btreelst_free] (* ****** ****** *) fun{a:vt0p} btree_btree_merge {n:nat} .<>. ( bt1: btree (a, n) , bt2: btree (a, n) ) : btree (a, n+1) = let val @btnode (n1, x1, bts1) = bt1 val @btnode (n2, x2, bts2) = bt2 val sgn = compare_elt_elt (x1, x2) in if sgn <= 0 then let prval () = fold@ (bt2) val () = n1 := n1 + 1 val () = bts1 := btlst_cons{a}(bt2, bts1) in fold@ (bt1); bt1 end else let prval () = fold@ (bt1) val () = n2 := n2 + 1 val () = bts2 := btlst_cons{a}(bt1, bts2) in fold@ (bt2); bt2 end // end of [if] end // end of [btree_btree_merge] (* ****** ****** *) fun{a:vt0p} btree_bheap_merge {n:nat} {n1:int | n <= n1} {sz:nat}{p:int} .. ( pf: EXP2 (n, p) | bt: btree (a, n), n: int (n), hp: bheap (a, n1, sz) ) : [n2:int | n2 >= min(n, n1)] bheap (a, n2, sz+p) = case+ hp of | ~bheap_nil () => bheap_cons{a}(pf | bt, bheap_nil {a} {n+1} ()) // end of [bheap_nil] | @bheap_cons (pf1 | bt1, hp1) => let val n1 = btree_rank (bt1) in if n < n1 then let prval () = fold@ (hp) in bheap_cons{a}(pf | bt, hp) end else if n > n1 then let val () = hp1 := btree_bheap_merge (pf | bt, n, hp1) prval () = fold@ (hp) in hp end else let prval () = exp2_ispos (pf1) prval () = exp2_isfun (pf, pf1) val bt = btree_btree_merge (bt, bt1) val hp1 = hp1 val () = free@{a}{0}{0}{0}{1}(hp) in btree_bheap_merge (EXP2ind (pf) | bt, n+1, hp1) end // end of [if] end (* end of [bheap_cons] *) // end of [btree_bheap_merge] (* ****** ****** *) fun{a:vt0p} bheap_bheap_merge {n1,n2:nat} {sz1,sz2:nat} .. ( hp1: bheap (a, n1, sz1), hp2: bheap (a, n2, sz2) ) : [n:int | n >= min(n1, n2)] bheap (a, n, sz1+sz2) = let in // case+ hp1 of | ~bheap_nil () => hp2 | @bheap_cons (pf1 | bt1, hp11) => ( case+ hp2 of | ~bheap_nil () => (fold@ (hp1); hp1) | @bheap_cons (pf2 | bt2, hp21) => let // prval pf1 = pf1 and pf2 = pf2 prval () = exp2_ispos (pf1) and () = exp2_ispos (pf2) // val n1 = btree_rank (bt1) and n2 = btree_rank (bt2) in if n1 < n2 then let prval () = fold@ (hp2) val () = hp11 := bheap_bheap_merge (hp11, hp2) prval () = fold@ (hp1) in hp1 end else if n1 > n2 then let prval () = fold@ (hp1) val () = hp21 := bheap_bheap_merge (hp1, hp21) prval () = fold@ (hp2) in hp2 end else let prval () = exp2_isfun (pf1, pf2) val bt12 = btree_btree_merge (bt1, bt2) val hp11 = hp11 and hp21 = hp21 val () = free@{a}{0}{0}{0}{1}(hp1) val () = free@{a}{0}{0}{0}{1}(hp2) in btree_bheap_merge (EXP2ind (pf1) | bt12, n1+1, bheap_bheap_merge (hp11, hp21)) end // end of [if] end (* end of [bheap_cons] *) ) // end of [bheap_cons] end // end of [bheap_bheap_merge] (* ****** ****** *) fun{a:vt0p} bheap_search_ref {n:nat}{sz:pos} .<>. ( hp0: !bheap (a, n, sz) ) :<> cPtr1(a) = let // fun search {n:nat}{sz:nat} .. ( hp0: !bheap (a, n, sz), p_x0: Ptr1 ) :<> Ptr1 = let in // case+ hp0 of | @bheap_cons (pf | bt, hp) => let prval () = exp2_ispos (pf) val @btnode (_, x, _) = bt val ( pf, fpf | p_x0 ) = $UN.ptr_vtake{a}(p_x0) val sgn = compare_elt_elt (!p_x0, x) prval () = fpf (pf) val res = ( if sgn > 0 then search (hp, addr@(x)) else search (hp, p_x0) ) : Ptr1 // end of [val] prval () = fold@ (bt) prval () = fold@ (hp0) in res end // end of [bheap_cons] | bheap_nil () => p_x0 // end (* end of [search] *) // val+ @bheap_cons (pf0 | bt0, hp1) = hp0 val+ @btnode (_, x0, _) = bt0 prval () = fold@ (bt0) val res = search (hp1, addr@(x0)) prval () = fold@ (hp0) // in $UN.ptr2cptr{a}(res) end // end of [bheap_search_ref] (* ****** ****** *) fun{a:vt0p} bheap_remove {n:nat}{sz:pos} .<>. ( hp0: &bheap (a, n, sz) >> bheap (a, n1, sz-p) ) : #[ n1,n2,p:int | n1 >= n; n2 >= n; sz >= p ] ( EXP2 (n2, p) | btree (a, n2) ) = let // // HX: [search] and [remove] can be merged into one // fun search {n:nat}{sz:nat} .. ( hp0: !bheap (a, n, sz), x0: &a, pos: &Nat >> _ ) : void = let in // case+ hp0 of | @bheap_cons (pf | bt, hp) => let prval () = exp2_ispos (pf) val+ @btnode (_, x, _) = bt val sgn = compare_elt_elt (x0, x) val () = if sgn > 0 then let val p_x0 = addr@ (x0) and p_x = addr@ (x) val () = $UN.ptr0_set (p_x0, $UN.ptr0_get(p_x)) val () = pos := pos + 1 in // nothing end // end of [val] prval () = fold@ (bt) val () = search (hp, x0, pos) prval () = fold@ (hp0) in // nothing end // [bheap_cons] | bheap_nil () => () // end // end of [search] // val+ @bheap_cons (pf0 | bt0, hp1) = hp0 val+ @btnode (_, x, _) = bt0 val p_x = addr@ (x); prval () = fold@ {a} (bt0) var x0: a = $UN.ptr0_get (p_x) and pos: Nat = 0 val () = search (hp1, x0, pos) prval () = __clear (x0) where { extern praxi __clear (x: &a >> a?): void } (* end of [prval] *) prval () = fold@ {a} (hp0) // fun remove {n:nat}{sz:nat} {pos:nat} .. ( hp0: &bheap (a, n, sz) >> bheap (a, n1, sz-p) , pos: int (pos) , btmin: &btree(a, 0)? >> btree (a, n2) ) : #[ n1,n2,p:int | n1 >= n; n2 >= n; sz >= p ] ( EXP2 (n2, p) | void ) = let // prval ( ) = __assert () where { extern praxi __assert (): [sz > 0] void } // end of [prval] // val+ @bheap_cons (pf | bt, hp) = hp0 // prval pf = pf prval () = exp2_ispos (pf) in // if pos > 0 then let val (pfmin | ()) = remove (hp, pos-1, btmin) prval () = fold@ (hp0) in (pfmin | ()) end else let val () = btmin := bt val hp = hp val () = free@{a}{0}{0}{0}{1}(hp0) val () = hp0 := hp in (pf | ()) end // end of [if] // end (* end of [remove] *) // var btmin: btree (a, 0)? val (pf | ()) = remove (hp0, pos, btmin) // in (pf | btmin) end // end of [bheap_remove] (* ****** ****** *) assume heap_vtype (a:vt0p) = [n,sz:nat] bheap (a, n, sz) // end of [heap_vtype] (* ****** ****** *) implement{} linheap_nil {a} () = bheap_nil{a}{0}() implement{} linheap_make_nil {a} () = bheap_nil{a}{0}() (* ****** ****** *) implement{} linheap_is_nil (hp) = let in // case+ hp of | bheap_cons (_ | _, _) => false | bheap_nil () => true // end // end of [linheap_is_nil] implement{} linheap_isnot_nil (hp) = let in // case+ hp of | bheap_cons (_ | _, _) => true | bheap_nil () => false // end // end of [linheap_is_cons] (* ****** ****** *) implement{a} linheap_size (hp) = $effmask_all (bheap_size (hp)) (* ****** ****** *) implement{a} linheap_insert (hp0, x0) = let val bt = btnode{a}(0, x0, btlst_nil()) in hp0 := btree_bheap_merge (EXP2bas () | bt, 0, hp0) end // end of [linheap_insert] (* ****** ****** *) implement{a} linheap_getmin_ref (hp0) = let (* val () = ( print ("linheap_getmin_ref: enter"); print_newline () ) // end of [val] *) in // case+ hp0 of | bheap_cons (pf | _, _) => let prval ( ) = exp2_ispos (pf) in bheap_search_ref (hp0) end // end of [bheap_cons] | bheap_nil ((*void*)) => cptr_null{a}((*void*)) // end // end of [linheap_getmin_ref] (* ****** ****** *) implement{a} linheap_delmin (hp0, res) = let (* val () = ( print ("linheap_delmin: enter"); print_newline () ) // end of [val] *) in // case+ hp0 of | bheap_cons (pf0 | _, _) => let prval () = exp2_ispos (pf0) val (_(*pf*) | btmin) = bheap_remove (hp0) val ~btnode (_, x, bts) = btmin val () = res := x prval () = opt_some{a}(res) val hp1 = hp1 where { fun loop {n:nat}{sz:nat} .. ( bts: btreelst (a, n), hp: bheap (a, n, sz) ) :<> [sz:nat] bheap (a, 0, sz) = case+ bts of | ~btlst_cons (bt, bts) => let prval pf = exp2_istot () in loop (bts, bheap_cons{a}(pf | bt, hp)) end // end of [btlst_cons] | ~btlst_nil () => hp // end of [loop] val hp1 = loop (bts, bheap_nil) } // end of [val] val () = hp0 := bheap_bheap_merge (hp0, hp1) in true end // end of [bheap_cons] | bheap_nil () => let prval () = opt_none{a}(res) in false end // end of [bheap_nil] // end of [case] // end // end of [linheap_delmin] (* ****** ****** *) implement{a} linheap_merge (hp1, hp2) = bheap_bheap_merge (hp1, hp2) // end of [linheap_merge] (* ****** ****** *) implement{a} linheap_free (hp0) = let in // case+ hp0 of | ~bheap_cons (_ | bt, hp) => let val () = btree_free (bt) in linheap_free (hp) end // end of [bheap] | ~bheap_nil () => () // end // end of [linheap_free] (* ****** ****** *) implement{a} linheap_free_ifnil (hp0) = let vtypedef hp = heap (a) in // case+ hp0 of | bheap_cons (_ | _, _) => let prval () = opt_some{hp}(hp0) in true end // end of [bheap_cons] | bheap_nil () => let prval () = __assert (hp0) where { extern praxi __assert {n:int} (hp: !bheap (a, n, 0) >> ptr): void } // end of [prval] prval () = opt_none{hp}(hp0) in false end // end of [bheap_nil] // end // end of [linheap_free_vt] (* ****** ****** *) (* linheap_binomial.dats *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/typeval.dats0000644000175000017500000000713613431250607021243 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmmhwxiATgmailDOTcom // Start Time: March, 2015 // (* ****** ****** *) staload "libats/SATS/typeval.sats" (* ****** ****** *) // implement tieq2int (pf | (*void*)) = let prval TIEQZ() = pf in 0 end // implement (t)(*tmp*) tieq2int (pf | (*void*)) = ( let prval TIEQS(pf) = pf in succ(tieq2int(pf | (*void*))) end // end of [tieq2int] ) // (* ****** ****** *) // implement ti2eq2int (pf | (*void*)) = let prval TI2EQZ() = pf in 0 end // implement (t)(*tmp*) ti2eq2int (pf | (*void*)) = ( let prval TI2EQB0(pf) = pf in 2*(ti2eq2int(pf | (*void*))) end // end of [ti2eq2int] ) // implement (t)(*tmp*) ti2eq2int (pf | (*void*)) = ( let prval TI2EQB1(pf) = pf in 2*(ti2eq2int(pf | (*void*)))+1 end // end of [ti2eq2int] ) // (* ****** ****** *) // implement (a)(*tmp*) sarray_foreach (pf | A, env) = () // implement (a,t)(*tmp*) sarray_foreach (pf | A, env) = let // val p0 = addr@A // prval TIEQS(pf1) = pf // prval pfarr = view@(A) prval ( pfat, pfarr1 ) = array_v_uncons(pfarr) // val () = sarray_foreach$fwork (!p0, env) // val p1 = ptr1_succ (p0) val (pfarr1 | p1) = viewptr_match(pfarr1 | p1) val () = sarray_foreach (pf1 | !p1, env) // prval () = view@A := array_v_cons (pfat, pfarr1) // in ignoret(0) // HX: for circumventing a tail-call bug! end // end of [sarray_foreach] // (* ****** ****** *) // implement (a)(*tmp*) sarray_foreach2 (pf | A0, A1, env) = () // implement (a,t)(*tmp*) sarray_foreach2 (pf | A0, A1, env) = let // val p0 = addr@A0 val p1 = addr@A1 // prval TIEQS(pf1) = pf // prval pf0arr = view@(A0) prval ( pf0at, pf0arr1 ) = array_v_uncons(pf0arr) // prval pf1arr = view@(A1) prval ( pf1at, pf1arr1 ) = array_v_uncons(pf1arr) // val () = sarray_foreach2$fwork (!p0, !p1, env) // val p0_1 = ptr1_succ (p0) val (pf0arr1 | p0_1) = viewptr_match(pf0arr1 | p0_1) val p1_1 = ptr1_succ (p1) val (pf1arr1 | p1_1) = viewptr_match(pf1arr1 | p1_1) // val () = sarray_foreach2 (pf1 | !p0_1, !p1_1, env) // prval () = view@A0 := array_v_cons (pf0at, pf0arr1) prval () = view@A1 := array_v_cons (pf1at, pf1arr1) // in ignoret(0) // HX: for circumventing a tail-call bug! end // end of [sarray_foreach2] // (* ****** ****** *) (* end of [typeval.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/linset_avltree.dats0000644000175000017500000004006413431250607022574 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/linset_avltree.sats" (* ****** ****** *) // #include "./SHARE/linset.hats" // code reuse #include "./SHARE/linset_node.hats" // code reuse // (* ****** ****** *) stadef mytkind = $extkind"atslib_linset_avltree" (* ****** ****** *) // // HX: maximal height difference of two siblings // #define HTDF 1 #define HTDF1 (HTDF+1) #define HTDF_1 (HTDF-1) // (* ****** ****** *) datavtype avltree ( a:t@ype+, int(*height*) ) = | {hl,hr:nat | hl <= hr+HTDF; hr <= hl+HTDF} B (a, 1+max(hl,hr)) of (int (1+max(hl,hr)), a, avltree (a, hl), avltree (a, hr)) | E (a, 0) of ((*void*)) // end of [avltree] vtypedef avltree_inc (a:t0p, h:int) = [h1:nat | h <= h1; h1 <= h+1] avltree (a, h1) // end of [avltree_inc] vtypedef avltree_dec (a:t0p, h:int) = [h1:nat | h1 <= h; h <= h1+1] avltree (a, h1) // end of [avltree_dec] (* ****** ****** *) assume set_vtype (a:t@ype) = [h:nat] avltree (a, h) (* ****** ****** *) implement{} linset_nil () = E () implement{} linset_make_nil () = E () (* ****** ****** *) implement{a} linset_sing (x) = B{a}(1, x, E, E) implement{a} linset_make_sing (x) = B{a}(1, x, E, E) (* ****** ****** *) implement {a}(*tmp*) linset_size (xs) = aux (xs) where { // fun aux {h:nat} .. (t: !avltree (a, h)):<> size_t = ( case+ t of | B (h, x, tl, tr) => succ(aux (tl) + aux (tr)) | E ((*void*)) => i2sz(0) ) (* end of [aux] *) // } // end of [linset_size] (* ****** ****** *) implement{} linset_is_nil (xs) = ( case+ xs of B _ => false | E () => true ) implement{} linset_isnot_nil (xs) = ( case+ xs of B _ => true | E () => false ) (* ****** ****** *) implement{a} linset_is_member (xs, x0) = aux (xs) where { // fun aux {h:nat} .. (t: !avltree (a, h)):<> bool = let in // case+ t of | B (h, x, tl, tr) => let val sgn = compare_elt_elt (x0, x) in if sgn < 0 then aux (tl) else (if sgn > 0 then aux (tr) else true) // end of [if] end // end of [B] | E ((*void*)) => false // end // end of [aux] // } // end of [linset_is_member] (* ****** ****** *) implement{a} linset_copy (xs) = let // fun copy {h:nat} .. (t: !avltree (a, h)): avltree (a, h) = ( case+ t of | B (h, x, tl, tr) => B{a}(h, x, copy (tl), copy (tr)) | E () => E () ) // end of [copy] in copy (xs) end // end of [linset_copy] (* ****** ****** *) implement{a} linset_free (xs) = let // fun free {h:nat} .. (t: avltree (a, h)): void = ( case+ t of | ~B (h, x, tl, tr) => (free (tl); free (tr)) | ~E () => () ) // end of [free] in free (xs) end // end of [linset_free] (* ****** ****** *) macdef avlht (t) = ( case+ ,(t) of B (h, _, _, _) => h | E ((*void*)) => 0 ) // end of [avlht] (* ****** ****** *) fn{a:t0p} avltree_height{h:int}(t: !avltree (a, h)):<> int (h) = avlht(t) (* ****** ****** *) (* ** left rotation for restoring height invariant *) fn{a:t0p} avltree_lrotate {hl,hr:nat | hl+HTDF1 == hr} {l,l_h,l_x,l_tl,l_tr:addr} ( pf_h: (int?)@l_h, pf_x: a@l_x , pf_tl: avltree (a, hl) @ l_tl , pf_tr: avltree (a, hr) @ l_tr | p_h: ptr l_h , hl: int hl, p_tl: ptr l_tl , hr: int hr, p_tr: ptr l_tr , t0: B_unfold (l, l_h, l_x, l_tl, l_tr) ) : avltree_inc (a, hr) = let val tr = !p_tr val+@B{..}{hrl,hrr} (hr2, _, trl, trr) = tr val hrl = avlht(trl): int(hrl) and hrr = avlht(trr): int(hrr) in if hrl <= hrr+HTDF_1 then let val hrl1 = hrl + 1 val () = !p_h := hrl1 val () = !p_tr := trl prval () = fold@ (t0) val () = hr2 := 1+max(hrl1, hrr) val () = trl := t0 prval () = fold@ (tr) in tr // B (1+max(hrl1,hrr), xr, B (hrl1, x, tl, trl), trr) end else let // [hrl==hrr+HTDF1]: deep rotation val trl_ = trl val+@B{..}{hrll,hrlr} (hrl, _, trll, trlr) = trl_ val hrll = avlht (trll) : int(hrll) and hrlr = avlht (trlr) : int(hrlr) val () = !p_h := 1+max(hl,hrll) val () = !p_tr := trll prval () = fold@ (t0) val () = hr2 := 1+max(hrlr, hrr) val () = trl := trlr prval () = fold@ (tr) val () = hrl := hr val () = trll := t0 val () = trlr := tr prval () = fold@ (trl_) in trl_ // B (hr, xrl, B (1+max(hl,hrll) x, tl, trll), B (1+max(hrlr,hrr), xr, trlr, trr)) end // end of [if] end // end of [avltree_lrotate] (* ****** ****** *) (* ** right rotation for restoring height invariant *) fn{a:t0p} avltree_rrotate {hl,hr:nat | hl == hr+HTDF1} {l,l_h,l_x,l_tl,l_tr:addr} ( pf_h: (int?)@l_h, pf_x: a@l_x , pf_tl: avltree (a, hl) @ l_tl , pf_tr: avltree (a, hr) @ l_tr | p_h: ptr l_h , hl : int hl, p_tl: ptr l_tl , hr : int hr, p_tr: ptr l_tr , t0: B_unfold (l, l_h, l_x, l_tl, l_tr) ) : avltree_inc (a, hl) = let val tl = !p_tl val+@B{..}{hll,hlr} (hl2, _, tll, tlr) = tl val hll = avlht(tll): int(hll) and hlr = avlht(tlr): int(hlr) in if hll+HTDF_1 >= hlr then let val hlr1 = hlr + 1 val () = !p_h := hlr1 val () = !p_tl := tlr prval () = fold@ (t0) val () = hl2 := 1+max(hll,hlr1) val () = tlr := t0 prval () = fold@ (tl) in tl // B (1+max(hll,hlr1), xl, tll, B (hlr1, x, tlr, tr)) end else let val tlr_ = tlr val+@B{..}{hlrl,hlrr} (hlr, _, tlrl, tlrr) = tlr_ val hlrl = avlht (tlrl): int(hlrl) val hlrr = avlht (tlrr): int(hlrr) val () = !p_h := 1+max(hlrr,hr) val () = !p_tl := tlrr prval () = fold@ (t0) val () = hl2 := 1+max(hll,hlrl) val () = tlr := tlrl prval () = fold@ (tl) val () = hlr := hl val () = tlrl := tl val () = tlrr := t0 prval () = fold@ (tlr_) in tlr_ // B (hl, xlr, B (1+max(hll,hlrl), xl, tll, tlrl), B (1+max(hlrr,hr), x, tlrr, tr)) end // end of [if] end // end of [avltree_rrotate] (* ****** ****** *) implement{a} linset_insert (xs, x0) = insert (xs) where { // fun insert {h:nat} .. ( t0: &avltree (a, h) >> avltree_inc (a, h) ) : bool = let in // case+ t0 of // | @B{..}{hl,hr} (h, x, tl, tr) => let prval pf_h = view@h prval pf_x = view@x prval pf_tl = view@tl prval pf_tr = view@tr val sgn = compare_elt_elt (x0, x) in case+ 0 of | _ when sgn < 0 => let val ans = insert (tl) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hl-hr <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) in ans // B (1+max(hl,hr), x, tl, tr) end else let // hl==hr+HTDF1 val p_h = addr@(h) val p_tl = addr@(tl) val p_tr = addr@(tr) val () = t0 := avltree_rrotate (pf_h, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in ans end // end of [if] end // end of [sgn < 0] | _ when sgn > 0 => let val ans = insert (tr) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hr-hl <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) in ans // B (1+max(hl, hr), x, tl, tr) end else let // hl+HTDF1==hr val p_h = addr@(h) val p_tl = addr@(tl) val p_tr = addr@(tr) val () = t0 := avltree_lrotate (pf_h, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in ans end // end of [if] end // end of [sgn > 0] | _ (*[x0] is found*) => let prval () = fold@ (t0) in true // B (h, x0, tl, tr) end // end of [sgn = 0] end // end of [B] // | ~E () => let val () = t0 := B{a}(1, x0, E (), E ()) in false end // end of [E] // end // end of [insert] // } // end of [linset_insert] (* ****** ****** *) fun{a:t0p} avltree_maxout {h:pos} .. ( t0: &avltree (a, h) >> avltree_dec (a, h) ) : mynode1 (a) = let val+@B{..}{hl,hr}(h, x, tl, tr) = t0 prval pf_h = view@h prval pf_x = view@x prval pf_tl = view@tl prval pf_tr = view@tr in case+ tr of | B _ => let val nx = avltree_maxout (tr) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hl-hr <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) // B (1+max(hl,hr), x, tl, tr) in nx end else let val p_h = addr@h val p_tl = addr@tl val p_tr = addr@tr val () = t0 := avltree_rrotate (pf_h, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in nx end // end of [if] end // end of [B] | ~E () => let val t0_ = t0 val () = t0 := tl in $UN.castvwtp0{mynode1(a)}((pf_h, pf_x, pf_tl, pf_tr | t0_)) end // end of [E] end // end of [avltree_maxout] (* ****** ****** *) fun{a:t0p} avltree_minout {h:pos} .. ( t0: &avltree (a, h) >> avltree_dec (a, h) ) : mynode1 (a) = let val+@B{..}{hl,hr}(h, x, tl, tr) = t0 prval pf_h = view@h prval pf_x = view@x prval pf_tl = view@tl prval pf_tr = view@tr in case+ tl of | B _ => let val nx = avltree_minout (tl) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hr-hl <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) // B (1+max(hl,hr), x, tl, tr) in nx end else let val p_h = addr@h val p_tl = addr@tl val p_tr = addr@tr val () = t0 := avltree_lrotate (pf_h, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in nx end // end of [if] end // end of [B] | ~E () => let val t0_ = t0 val () = t0 := tr in $UN.castvwtp0{mynode1(a)}((pf_h, pf_x, pf_tl, pf_tr | t0_)) end // end of [E] end // end of [avltree_minout] (* ****** ****** *) extern castfn mynode_decode {a:t0p}{l:agz} (nx: mynode(INV(a), l)):<> B_pstruct (int?, a, ptr?, ptr?) // end of [mynode_decode] (* ****** ****** *) fn{a:t0p} avltree_lrcon {hl,hr:nat | hl <= hr+HTDF; hr <= hl+HTDF} ( tl: avltree (a, hl) , tr: avltree (a, hr) ) : avltree_dec (a, 1+max(hl,hr)) = ( case+ tr of | B _ => let var tr = tr val nx = avltree_minout (tr) // end of [val] val t1 = mynode_decode (nx) val+B(h1, x1, tl1, tr1) = t1 prval pf_h1 = view@h1 prval pf_x1 = view@x1 prval pf_tl1 = view@tl1 prval pf_tr1 = view@tr1 val hl = avltree_height (tl) and hr = avltree_height (tr) val () = tl1 := tl and () = tr1 := tr in if hl-hr <= HTDF then let val () = h1 := 1+max(hl,hr) prval () = fold@ (t1) in t1 end else let val p_h1 = addr@h1 val p_tl1 = addr@tl1 val p_tr1 = addr@tr1 in avltree_rrotate (pf_h1, pf_x1, pf_tl1, pf_tr1 | p_h1, hl, p_tl1, hr, p_tr1, t1) end // end of [if] end // end of [B] | ~E ((*void*)) => tl ) (* end of [avltree_lrcon] *) (* ****** ****** *) implement {a}(*tmp*) linset_takeout_ngc (xs, x0) = let // fun takeout{h:nat} .. ( t0: &avltree (a, h) >> avltree_dec (a, h) ) : mynode0(a) = let // in // case+ t0 of | @B{..}{hl,hr} (h, x, tl, tr) => let prval pf_h = view@h prval pf_x = view@x prval pf_tl = view@tl prval pf_tr = view@tr val sgn = compare_elt_elt (x0, x) in case+ 0 of | _ when sgn < 0 => let val nx = takeout (tl) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hr-hl <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) in nx end else let val p_h = addr@(h) val p_tl = addr@(tl) val p_tr = addr@(tr) val () = t0 := avltree_lrotate (pf_h, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in nx end // end of [if] end // end of [sgn < 0] | _ when sgn > 0 => let val nx = takeout (tr) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hl-hr <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) in nx end else let val p_h = addr@(h) val p_tl = addr@(tl) val p_tr = addr@(tr) val () = t0 := avltree_rrotate (pf_h, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in nx end // end of [if] end // end of [sgn > 0] | _ (*[x0] is found*) => let val t0_ = t0 val () = t0 := avltree_lrcon (tl, tr) in $UN.castvwtp0{mynode1(a)}((pf_h, pf_x, pf_tl, pf_tr | t0_)) end // end of [sgn = 0] // end of [case] end // end of [B] | E ((*void*)) => mynode_null () // end // end of [takeout] // in takeout (xs) end // end of [linset_takeout_ngc] (* ****** ****** *) implement {a}{env} linset_foreach_env (xs, env) = let // val p_env = addr@env // fun foreach {h:nat} .. ( t0: !avltree (a, h), p_env: ptr ) : void = let in // case+ t0 of | B (h, x, tl, tr) => let // val () = foreach (tl, p_env) // val ( pf, fpf | p_env ) = $UN.ptr_vtake{env}(p_env) val () = linset_foreach$fwork (x, !p_env) prval () = fpf (pf) // val () = foreach (tr, p_env) // in // nothing end // end of [B] | E ((*void*)) => () // end // end of [foreach] // in foreach (xs, p_env) end // end of [linset_foreach_env] (* ****** ****** *) implement {a}(*tmp*) linset_listize (xs) = let // fun aux {h:nat} .. ( t: avltree (a, h), res: List0_vt(a) ) :<> List0_vt(a) = let in // case+ t of | ~B (_, x, tl, tr) => let val res = aux (tr, res) val res = list_vt_cons{a}(x, res) val res = aux (tl, res) in res end // end of [B] | ~E ((*void*)) => res // end // end of [aux] // in aux (xs, list_vt_nil) end // end of [linset_listize] (* ****** ****** *) implement{a} linset_avltree_height (xs) = avlht (xs) (* ****** ****** *) // // HX: functions for handling mynodes // (* ****** ****** *) implement{ } mynode_null{a} () = $UN.castvwtp0{mynode(a,null)}(the_null_ptr) // end of [mynode_null] (* ****** ****** *) implement{ } mynode_free{a} (nx) = { // val+~B(_, _, tl, tr) = $UN.castvwtp0{avltree(a,1)}(nx) // prval ((*void*)) = $UN.cast2void (tl) prval ((*void*)) = $UN.cast2void (tr) // } (* end of [mynode_free] *) (* ****** ****** *) implement {a}(*tmp*) mynode_getfree_elt (nx) = x where { // val+~B(_, x, tl, tr) = $UN.castvwtp0{avltree(a,1)}(nx) // prval ((*void*)) = $UN.cast2void (tl) prval ((*void*)) = $UN.cast2void (tr) // } (* end of [mynode_getfree_elt] *) (* ****** ****** *) implement {a}(*tmp*) linset_takeoutmax_ngc (xs) = let in // case+ xs of | B _ => avltree_maxout (xs) | E _ => mynode_null{a}((*void*)) // end // end of [linset_takeoutmax] (* ****** ****** *) implement {a}(*tmp*) linset_takeoutmin_ngc (xs) = let in // case+ xs of | B _ => avltree_minout (xs) | E _ => mynode_null{a}((*void*)) // end // end of [linset_takeoutmin] (* ****** ****** *) (* end of [linset_avltree.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/linmap_list.dats0000644000175000017500000002120013431250607022056 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linmap_list" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/linmap_list.sats" (* ****** ****** *) #include "./SHARE/linmap.hats" // code reuse #include "./SHARE/linmap_node.hats" // code reuse (* ****** ****** *) stadef mytkind = $extkind"atslib_linmap_list" (* ****** ****** *) assume map_vtype (k:t0p, i:vt0p) = List0_vt @(k, i) (* ****** ****** *) implement{} linmap_nil () = list_vt_nil () implement{} linmap_make_nil () = list_vt_nil () (* ****** ****** *) implement{} linmap_is_nil (map) = ans where { val ans = ( case+ map of list_vt_nil _ => true | list_vt_cons _ => false ) : bool // end of [val] } // end of [linmap_is_nil] implement{} linmap_isnot_nil (map) = ans where { val ans = ( case+ map of list_vt_nil _ => false | list_vt_cons _ => true ) : bool // end of [val] } // end of [linmap_isnot_nil] (* ****** ****** *) implement {key,itm} linmap_size (map) = g1int2uint (list_vt_length (map)) (* ****** ****** *) implement {key,itm} linmap_free (map) = list_vt_free<(key,itm)> (map) implement {key,itm} linmap_freelin (map) = let // vtypedef ki = @(key, itm) fun aux (kxs: List_vt(ki)): void = ( case+ kxs of | @list_vt_cons (kx, kxs1) => let val kxs1 = kxs1 val () = linmap_freelin$clear (kx.1) val () = free@{ki}{0}(kxs) in aux (kxs1) end // end of [list_vt_cons] | ~list_vt_nil ((*void*)) => () ) // in $effmask_all (aux (map)) end // end of [linmap_freelin] (* ****** ****** *) implement {key,itm} linmap_insert (map, k0, x0, res) = let // val nx0 = mynode_make_keyitm (k0, x0) // val nx1 = linmap_insert_ngc (map, nx0) // val p1 = mynode2ptr (nx1) // in // if p1 > 0 then let val () = res := mynode_getfree_itm (nx1) prval () = opt_some{itm}(res) in true end else let prval () = mynode_free_null (nx1) prval () = opt_none{itm}(res) in false end (* end of [if] *) // end // end of [linmap_insert] (* ****** ****** *) implement {key,itm} linmap_insert_any (map, k0, x0) = let // vtypedef ki = @(key, itm) val () = map := list_vt_cons{ki}( @(k0, x0), map ) // in // nothing end // end of [linmap_insert_any] (* ****** ****** *) implement {key,itm}{env} linmap_foreach_env (map, env) = let // vtypedef ki = @(key, itm) // implement{ki}{env} list_vt_foreach$cont (kx, env) = true implement list_vt_foreach$fwork (kx, env) = linmap_foreach$fwork (kx.0, kx.1, env) // in list_vt_foreach_env (map, env) end // end of [linmap_foreach_env] (* ****** ****** *) // // HX: [map] is just a list // implement {key,itm} linmap_listize (map) = map implement {key,itm}{ki2} linmap_flistize (map) = let // vtypedef ki = @(key, itm) implement list_vt_mapfree$fopr (kx) = linmap_flistize$fopr (kx.0, kx.1) // in list_vt_mapfree (map) end // end of [linmap_flistize] (* ****** ****** *) implement {key,itm} linmap_listize1 (map) = list_vt_copy<(key,itm)> (map) (* ****** ****** *) // // HX: functions for processing mynodes // (* ****** ****** *) implement{ } mynode_null {key,itm} () = let // vtypedef mynode = mynode(key,itm,null) // in $UN.castvwtp0{mynode}(the_null_ptr) end // end of [mynode_null] (* ****** ****** *) implement {key,itm} mynode_make_keyitm (k, x) = let // vtypedef ki = @(key, itm) val nx = list_vt_cons{ki}{0}( @(k, x), _ ) // in $UN.castvwtp0{mynode1(key,itm)}(nx) end // end of [mynode_make_keyitm] (* ****** ****** *) implement {key,itm} mynode_get_key (nx) = k where { // vtypedef ki = @(key, itm) // val nx2 = $UN.castvwtp1{List1_vt(ki)}(nx) // val+@list_vt_cons (kx, _) = nx2 // val k = kx.0 // prval () = fold@ (nx2) prval () = __assert (nx2) where { extern praxi __assert : List1_vt(ki) - void } // end of [where] // end of [prval] // } // end of [mynode_get_key] implement {key,itm} mynode_getref_itm (nx) = p_x where { // vtypedef ki = @(key, itm) // val nx2 = $UN.castvwtp1{List1_vt(ki)}(nx) // val+@list_vt_cons (kx, _) = nx2 // val p_x = addr@ (kx.1) val p_x = $UN.cast{cPtr1(itm)}(p_x) // prval () = fold@ (nx2) prval () = __assert (nx2) where { extern praxi __assert : List1_vt(ki) - void } // end of [where] // end of [prval] // } // end of [mynode_getref_itm] (* ****** ****** *) implement {key,itm} mynode_free_keyitm (nx, k0, x0) = () where { // vtypedef ki = @(key, itm) // val nx = $UN.castvwtp0{List1_vt(ki)}(nx) // val+~list_vt_cons (kx, nx2) = nx val () = k0 := kx.0 and () = x0 := kx.1 prval () = __assert (nx2) where { extern praxi __assert : List0_vt(ki) - void } // end of [where] // end of [prval] // } // end of [mynode_free_keyitm] (* ****** ****** *) implement {key,itm} mynode_getfree_itm (nx) = kx.1 where { // vtypedef ki = @(key, itm) // val nx = $UN.castvwtp0{List1_vt(ki)}(nx) // val+~list_vt_cons (kx, nx2) = nx // prval ((*void*)) = $UN.cast2void (nx2) // } // end of [mynode_getfree_itm] (* ****** ****** *) implement {key,itm} linmap_search_ngc (map, k0) = let // vtypedef ki = @(key, itm) // fun loop {n:nat} .. ( kxs: !list_vt (ki, n), k0: key ) :<> Ptr0 = let in // case+ kxs of | @list_vt_cons (kx, kxs1) => let val iseq = equal_key_key (kx.0, k0) in if iseq then let prval () = fold@ (kxs) in $UN.castvwtp1{Ptr1} (kxs) end else let val res = loop (kxs1, k0) prval () = fold@ (kxs) in res end // end of [if] end // end of [list_vt_cons] | @list_vt_nil () => let prval () = fold@ (kxs) in the_null_ptr end // end of [list_vt_cons] // end // end of [loop] // in loop (map, k0) // HX: Ptr1 end // end of [linmap_search_ngc] (* ****** ****** *) implement {key,itm} linmap_insert_ngc (map, nx0) = let // val k0 = mynode_get_key (nx0) val nx1 = linmap_takeout_ngc (map, k0) val () = linmap_insert_any_ngc (map, nx0) // in nx1 end // end of [linmap_insert_ngc] (* ****** ****** *) implement {key,itm} linmap_insert_any_ngc (map, nx0) = let // vtypedef ki = @(key, itm) // val nx0 = $UN.castvwtp0{List1_vt(ki)}(nx0) // val+@list_vt_cons (_, kxs) = nx0 prval () = __assert (kxs) where { extern praxi __assert : List0_vt(ki) - void } // end of [where] // end of [prval] // in kxs := map; fold@ (nx0); map := nx0 end // end of [linmap_insert_any_ngc] (* ****** ****** *) implement {key,itm} linmap_takeout_ngc (map, k0) = let // vtypedef ki = @(key, itm) vtypedef mynode0 = mynode0 (key, itm) vtypedef mynode1 = mynode1 (key, itm) // fun loop ( kxs: &List0_vt (ki) >> _, k0: key ) : mynode0 = let // vtypedef kis = List0_vt (ki) // in // case+ kxs of | @list_vt_cons (kx, kxs1) => let val iseq = equal_key_key (kx.0, k0) // end of [val] in if iseq then let val p1 = $UN.castvwtp1{ptr}(kxs1) prval () = fold@ (kxs) val res = $UN.castvwtp0{mynode1}(kxs) val () = kxs := $UN.castvwtp0{kis}(p1) in res end else let val res = loop (kxs1, k0) prval () = fold@ (kxs) in res end // end of [if] end // end of [list_vt_cons] | @list_vt_nil () => let prval () = fold@ (kxs) in mynode_null () end // end of [list_vt_cons] // end // end of [loop] // in loop (map, k0) // HX: mynode0 end // end of [linmap_takeout_ngc] (* ****** ****** *) (* end of [linmap_list.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/.keeper0000644000175000017500000000000013431250607020135 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/DATS/fundeque_fngtree.dats0000644000175000017500000011164213431250607023103 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A functional concatenable deque implementation ** based on finger-trees. Please see the JFP paper ** by Hinze and Paterson on finger-trees for more ** details on this interesting data structure. ** ** Contributed by Hongwei Xi (hwxiATcsDOTbuDOTedu) ** Contributed by Robbie Harwood (rharwoodATcsDOTbuDOTedu) ** ** Time: November, 2010 ** *) (* ****** ****** *) (* ** Ported to ATS2 ** by Hongwei Xi (gmhwxiATgmailDOTcom) ** Time: May, 2012 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.fundeque_fngtree" #define ATS_DYNLOADFLAG 0 // no dynamic loading // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload _(*anon*) = "prelude/DATS/integer.dats" staload _(*anon*) = "prelude/DATS/integer_size.dats" (* ****** ****** *) // staload "libats/SATS/fundeque_fngtree.sats" // (* ****** ****** *) // #include "./SHARE/fundeque.hats" // code reuse // (* ****** ****** *) datatype ftnode ( a:t@ype+, int(*dpth*), int(*size*) ) = (* ftnode *) | FTN1(a, 0, 1) of (a) // singleton | {d:nat} {n1,n2:nat} FTN2(a, d+1, n1+n2) of ( ftnode(a, d, n1), ftnode(a, d, n2) ) // end of [FTN2] | {d:nat} {n1,n2,n3:nat} FTN3(a, d+1, n1+n2+n3) of ( ftnode(a, d, n1), ftnode(a, d, n2), ftnode(a, d, n3) ) // end of [FTN3] // end of [ftnode] // end of [datatype] (* ****** ****** *) datatype ftdigit ( a:t@ype+, int(*dpth*), int(*size*) ) = (* ftdigit *) | {d:nat} {n:nat} FTD1 ( a, d, n ) of ftnode(a, d, n) | {d:nat} {n1,n2:nat} FTD2 ( a, d, n1+n2 ) of ( ftnode(a, d, n1), ftnode(a, d, n2) ) (* end of [FTD2] *) | {d:nat} {n1,n2,n3:nat} FTD3 ( a, d, n1+n2+n3 ) of ( ftnode(a, d, n1), ftnode(a, d, n2), ftnode(a, d, n3) ) (* end of [FTD3] *) | {d:nat} {n1,n2,n3,n4:nat} FTD4 ( a, d, n1+n2+n3+n4 ) of ( ftnode(a, d, n1), ftnode(a, d, n2), ftnode(a, d, n3), ftnode(a, d, n4) ) (* end of [FTD4] *) // end of [ftdigit] (* ****** ****** *) datatype fngtree ( a:t@ype, int(*d*), int(*n*) ) = (* fngtree *) | {d:nat} FTemp(a, d, 0) of () | {d:nat} {n:int} FTsing(a, d, n) of ftnode(a, d, n) | {d:nat} {npr,nm,nsf:nat} FTdeep(a, d, npr+nm+nsf) of ( ftdigit(a, d, npr), fngtree(a, d+1, nm), ftdigit(a, d, nsf) ) // end of [FTdeep] // end of [fngtree] (* ****** ****** *) // extern fun {a:t0p} fprint_fngtree {d:int}{n:int} (out: FILEref, xt: fngtree (INV(a), d, n)): void // (* ****** ****** *) local fun {a:t0p} fprint_ftnode {d:int}{n:int} ( out: FILEref, xn: ftnode (INV(a), d, n) ) : void = let // macdef prstr (str) = fprint_string (out, ,(str)) // in // case+ xn of | FTN1 (x) => { val () = prstr "FTN1(" val () = fprint_val (out, x) val () = prstr ")" } | FTN2 (xn1, xn2) => { val () = prstr "FTN2(" val () = fprint_ftnode (out, xn1) val () = prstr ", " val () = fprint_ftnode (out, xn2) val () = prstr ")" } | FTN3 (xn1, xn2, xn3) => { val () = prstr "FTN3(" val () = fprint_ftnode (out, xn1) val () = prstr ", " val () = fprint_ftnode (out, xn2) val () = prstr ", " val () = fprint_ftnode (out, xn3) val () = prstr ")" } // end // end of [fprint_ftnode] fun{a:t0p} fprint_ftdigit {d:int}{n:int} ( out: FILEref, xn: ftdigit (INV(a), d, n) ) : void = let // macdef prstr (str) = fprint_string (out, ,(str)) // in // case+ xn of | FTD1 (xn1) => { val () = prstr "FTD1(" val () = fprint_ftnode (out, xn1) val () = prstr ")" } | FTD2 (xn1, xn2) => { val () = prstr "FTD2(" val () = fprint_ftnode (out, xn1) val () = prstr ", " val () = fprint_ftnode (out, xn2) val () = prstr ")" } | FTD3 (xn1, xn2, xn3) => { val () = prstr "FTD2(" val () = fprint_ftnode (out, xn1) val () = prstr ", " val () = fprint_ftnode (out, xn2) val () = prstr ", " val () = fprint_ftnode (out, xn3) val () = prstr ")" } | FTD4 (xn1, xn2, xn3, xn4) => { val () = prstr "FTD2(" val () = fprint_ftnode (out, xn1) val () = prstr ", " val () = fprint_ftnode (out, xn2) val () = prstr ", " val () = fprint_ftnode (out, xn3) val () = prstr ", " val () = fprint_ftnode (out, xn4) val () = prstr ")" } // end // end of [fprint_ftdigit] in (* in of [local] *) implement {a}(*tmp*) fprint_fngtree (out, xt) = let // macdef prstr(str) = fprint_string(out, ,(str)) // in // case+ xt of | FTemp () => prstr "FTemp()" | FTsing (xn) => { val () = prstr "FTsing(" val () = fprint_ftnode (out, xn) val () = prstr ")" } | FTdeep (xn1, xt2, xn3) => { val () = prstr "FTdeep(" val () = fprint_ftdigit (out, xn1) val () = prstr ", " val () = fprint_fngtree (out, xt2) val () = prstr ", " val () = fprint_ftdigit (out, xn3) val () = prstr ")" } // end // end of [fprint_fngtree] end // end of [local] (* ****** ****** *) prfun ftnode_prop_szpos {a:t0p} {d:int} {n:int} .. (xn: ftnode (a, d, n)): [n > 0] void = case+ xn of | FTN1 _ => () | FTN2(xn1, xn2) => { prval () = ftnode_prop_szpos(xn1) prval () = ftnode_prop_szpos(xn2) } (* end of [FTN2] *) | FTN3(xn1, xn2, xn3) => { prval () = ftnode_prop_szpos(xn1) prval () = ftnode_prop_szpos(xn2) prval () = ftnode_prop_szpos(xn3) } (* end of [FTN3] *) // end of [ftnode_prop_szpos] (* ****** ****** *) prfun ftdigit_prop_szpos {a:t0p} {d:int} {n:int} .<>. (xd: ftdigit(a, d, n)): [n > 0] void = case+ xd of | FTD1(xn1) => ftnode_prop_szpos(xn1) | FTD2(xn1, _) => ftnode_prop_szpos(xn1) | FTD3(xn1, _, _) => ftnode_prop_szpos(xn1) | FTD4(xn1, _, _, _) => ftnode_prop_szpos(xn1) // end of [ftdigit_prop_szpos] (* ****** ****** *) prfun fngtree_prop1_sznat {a:t0p} {d:int} {n:int} .<>. (xt: fngtree(a, d, n)): [n >= 0] void = case+ xt of | FTemp() => () | FTsing(xn) => ftnode_prop_szpos(xn) | FTdeep(pr, m, sf) => { val () = ftdigit_prop_szpos(pr) and () = ftdigit_prop_szpos(sf) } (* end of [FTdeep] *) // end of [fngtree_prop1_sznat] (* ****** ****** *) // extern fun ftnode_size {a:t0p} {d:int} {n:nat} // .. (xn: ftnode(a, d, n)) :<> size_t(n) // implement ftnode_size(xn) = let // #define nsz(x) ftnode_size(x) // in // case+ xn of | FTN1 _ => g1i2u(1) | FTN2(xn1, xn2) => let prval () = ftnode_prop_szpos(xn1) prval () = ftnode_prop_szpos(xn2) in nsz(xn1) + nsz(xn2) end // end of [FTN2] | FTN3(xn1, xn2, xn3) => let prval () = ftnode_prop_szpos(xn1) prval () = ftnode_prop_szpos(xn2) prval () = ftnode_prop_szpos(xn3) in nsz(xn1) + nsz(xn2) + nsz(xn3) end // endof [FTN3] // end // end of [ftnode_size] // (* ****** ****** *) // extern fun ftdigit_size {a:t0p} {d:int} {n:int} // .<>. (xd: ftdigit (a, d, n)):<> size_t(n) // implement ftdigit_size(xd) = let // #define nsz(x) ftnode_size(x) // in // case+ xd of | FTD1(xn1) => nsz(xn1) | FTD2(xn1, xn2) => nsz(xn1) + nsz(xn2) | FTD3(xn1, xn2, xn3) => nsz(xn1) + nsz(xn2) + nsz(xn3) | FTD4(xn1, xn2, xn3, xn4) => nsz(xn1) + nsz(xn2) + nsz(xn3) + nsz(xn4) // end // end of [ftdigit_size] // (* ****** ****** *) // extern fun ftnode2ftdigit {a:t0p}{d:pos}{n:int} // .<>. (xn: ftnode(a, d, n)):<> ftdigit(a, d-1, n) // implement ftnode2ftdigit(xn) = ( case+ xn of | FTN2(xn1, xn2) => FTD2(xn1, xn2) | FTN3(xn1, xn2, xn3) => FTD3(xn1, xn2, xn3) ) (* end of [ftnode2ftdigit] *) // (* ****** ****** *) // extern fun ftdigit2fngtree {a:t0p}{d:nat}{n:int} // .<>. (xd: ftdigit(a, d, n)):<> fngtree(a, d, n) // implement ftdigit2fngtree (xd) = ( case+ xd of | FTD1(xn1) => FTsing(xn1) | FTD2(xn1, xn2) => FTdeep(FTD1(xn1), FTemp(), FTD1(xn2)) | FTD3(xn1, xn2, xn3) => FTdeep(FTD2(xn1, xn2), FTemp(), FTD1(xn3)) | FTD4(xn1, xn2, xn3, xn4) => FTdeep(FTD2(xn1, xn2), FTemp(), FTD2(xn3, xn4)) ) (* end of [ftdigit2fngtree] *) // (* ****** ****** *) // extern fun fngtree_cons {a:t0p}{d:nat}{n1,n2:int} ( xn: ftnode (a, d, n1), xt: fngtree (a, d, n2) ) :<> fngtree (a, d, n1+n2) // end of [fngtree_cons] // implement fngtree_cons{a} (xn, xt) = cons(xn, xt) where { // fun cons{d:nat} {n1,n2:int | n2 >= 0} .. ( xn: ftnode(a, d, n1), xt: fngtree(a, d, n2) ) :<> fngtree(a, d, n1+n2) = let // prval () = ftnode_prop_szpos (xn) // in // case+ xt of | FTemp() => FTsing(xn) | FTsing(xn1) => let prval () = ftnode_prop_szpos (xn1) // end of [prval] in FTdeep(FTD1(xn), FTemp(), FTD1(xn1)) end // end [FTsing] | FTdeep(pr, m, sf) => ( case+ pr of | FTD1(xn1) => FTdeep(FTD2(xn, xn1), m, sf) | FTD2(xn1, xn2) => FTdeep(FTD3(xn, xn1, xn2), m, sf) | FTD3(xn1, xn2, xn3) => FTdeep(FTD4(xn, xn1, xn2, xn3), m, sf) | FTD4(xn1, xn2, xn3, xn4) => let // val pr = FTD2(xn, xn1) // prval () = ftdigit_prop_szpos(sf) prval () = fngtree_prop1_sznat(m) // val m2 = cons(FTN3(xn2, xn3, xn4), m) in FTdeep(pr, m2, sf) end // end of [FTD4] // end of [case] ) (* end of [FTdeep] *) // end // end of [cons] // prval () = fngtree_prop1_sznat(xt) // } (* end of [fngtree_cons] *) // (* ****** ****** *) // extern fun fngtree_uncons {a:t0p}{d:nat}{n:pos} ( xt: fngtree(a, d, n), r: &ptr? >> ftnode(a, d, n1) ) : #[n1:nat] fngtree(a, d, n-n1) // implement fngtree_uncons{a} (xt, r) = uncons(xt, r) where { // fun uncons {d:nat}{n:pos} .. ( xt: fngtree (a, d, n) , r: &ptr? >> ftnode (a, d, n1) ) : #[n1:nat | n1 <= n] fngtree (a, d, n-n1) = case+ xt of | FTsing (xn) => let val () = r := xn in FTemp () end // end of [Single] | FTdeep (pr, m, sf) => (case+ pr of | FTD1 (xn) => let val () = r := xn prval () = ftdigit_prop_szpos(pr) prval () = ftdigit_prop_szpos(sf) in case+ m of | FTemp () => ftdigit2fngtree(sf) | FTsing (xn1) => FTdeep(ftnode2ftdigit(xn1), FTemp(), sf) | FTdeep (pr1, m1, sf1) => let var r1: ptr? prval () = ftdigit_prop_szpos (pr1) prval () = fngtree_prop1_sznat (m1) prval () = ftdigit_prop_szpos (sf1) val m = uncons (m, r1) in FTdeep(ftnode2ftdigit(r1), m, sf) end // end of [_] end // end of [FTD1] | FTD2 (xn, xn1) => let val () = r := xn in FTdeep (FTD1 (xn1), m, sf) end // end of [FTD2] | FTD3 (xn, xn1, xn2) => let val () = r := xn in FTdeep (FTD2 (xn1, xn2), m, sf) end // end of [FTD3] | FTD4 (xn, xn1, xn2, xn3) => let val () = r := xn in FTdeep (FTD3 (xn1, xn2, xn3), m, sf) end // end of [FTD4] ) // end of [FTdeep] // end of [uncons] } (* end of [fngtree_uncons] *) // (* ****** ****** *) // extern fun fngtree_get_atbeg {a:t0p}{d:nat}{n:pos} ( xt: fngtree (a, d, n) ) :<> [n1:nat] ftnode (a, d, n1) // implement fngtree_get_atbeg (xt) = (case+ xt of | FTsing (xn) => xn | FTdeep (pr, m, sf) => ( case+ pr of | FTD1 (xn) => xn | FTD2 (xn, xn1) => xn | FTD3 (xn, xn1, xn2) => xn | FTD4 (xn, xn1, xn2, xn3) => xn ) (* end of [FTdeep] *) ) (* end of [fngtree_get_atbeg] *) // (* ****** ****** *) // extern fun fngtree_snoc {a:t0p}{d:nat}{n1,n2:int} ( xt: fngtree (a, d, n2), xn: ftnode (a, d, n1) ) :<> fngtree (a, d, n1+n2) // end of [fngtree_snoc] // implement fngtree_snoc{a} (xt, xn) = snoc(xt, xn) where { // fun snoc{d:nat} {n1,n2:int | n2 >= 0} .. ( xt: fngtree (a, d, n2), xn: ftnode (a, d, n1) ) :<> fngtree (a, d, n1+n2) = let // prval () = ftnode_prop_szpos (xn) // in // case+ xt of | FTemp() => FTsing(xn) | FTsing(xn1) => let prval () = ftnode_prop_szpos (xn1) // end of [prval] in FTdeep(FTD1(xn1), FTemp(), FTD1(xn)) end // end [FTsing] | FTdeep(pr, m, sf) => ( case+ sf of | FTD1(xn1) => FTdeep(pr, m, FTD2(xn1, xn)) | FTD2(xn1, xn2) => FTdeep(pr, m, FTD3(xn1, xn2, xn)) | FTD3(xn1, xn2, xn3) => FTdeep(pr, m, FTD4(xn1, xn2, xn3, xn)) | FTD4(xn1, xn2, xn3, xn4) => let val sf = FTD2 (xn4, xn) // prval () = ftdigit_prop_szpos(pr) prval () = fngtree_prop1_sznat(m) // val m2 = snoc(m, FTN3 (xn1, xn2, xn3)) in FTdeep (pr, m2, sf) end // end of [FTD4] // end of [case] ) (* end of [FTdeep] *) // end // end of [snoc] // prval () = fngtree_prop1_sznat (xt) // } (* end of [fngtree_snoc] *) (* ****** ****** *) extern fun fngtree_unsnoc {a:t0p}{d:nat}{n:pos} ( xt: fngtree (a, d, n), r: &ptr? >> ftnode (a, d, n1) ) : #[n1:nat] fngtree (a, d, n-n1) // end of [fngtree_unsnoc] implement fngtree_unsnoc{a} (xt, r) = unsnoc (xt, r) where { // fun unsnoc {d:nat}{n:pos} .. ( xt: fngtree(a, d, n) , r: &ptr? >> ftnode(a, d, n1) ) : #[n1:nat | n1 <= n] fngtree(a, d, n-n1) = ( // case+ xt of | FTsing(xn) => let val () = r := xn in FTemp () end // end of [FTsing] | FTdeep(pr, m, sf) => ( case+ sf of | FTD1(xn) => let val () = r := xn prval () = ftdigit_prop_szpos(pr) prval () = ftdigit_prop_szpos(sf) in case+ m of | FTemp() => ftdigit2fngtree(pr) | FTsing(xn1) => FTdeep(pr, FTemp(), ftnode2ftdigit(xn1)) | FTdeep(pr1, m1, sf1) => let var r1: ptr? prval () = ftdigit_prop_szpos(pr1) prval () = fngtree_prop1_sznat(m1) prval () = ftdigit_prop_szpos(sf1) in let val m = unsnoc(m, r1) in FTdeep(pr, m, ftnode2ftdigit(r1)) end end // end of [FTdeep] end // end of [FTD1] | FTD2 (xn1, xn) => let val () = r := xn in FTdeep(pr, m, FTD1(xn1)) end // end of [FTD2] | FTD3 (xn1, xn2, xn) => let val () = r := xn in FTdeep(pr, m, FTD2(xn1, xn2)) end // end of [FTD3] | FTD4 (xn1, xn2, xn3, xn) => let val () = r := xn in FTdeep(pr, m, FTD3(xn1, xn2, xn3)) end // end of [FTD4] ) (* end of [FTdeep] *) // ) (* end of [unsnoc] *) } (* end of [fngtree_unsnoc] *) (* ****** ****** *) // extern fun fngtree_get_atend {a:t0p}{d:nat}{n:pos} ( xt: fngtree (a, d, n) ) :<> [n1:nat] ftnode (a, d, n1) // implement fngtree_get_atend {a}(xt) = ( case+ xt of | FTsing (xn) => xn | FTdeep (pr, m, sf) => ( case+ sf of | FTD1 (xn) => xn | FTD2 (xn1, xn) => xn | FTD3 (xn1, xn2, xn) => xn | FTD4 (xn1, xn2, xn3, xn) => xn ) (* end of [FTdeep] *) ) (* end of [fngtree_get_atend] *) // (* ****** ****** *) // assume deque_type (a:t@ype, n:int) = fngtree(a, 0(*depth*), n) // (* ****** ****** *) primplmnt lemma_deque_param (xs) = fngtree_prop1_sznat(xs) // end of [lemma_deque_param] (* ****** ****** *) // implement {}(*tmp*) fundeque_nil () = FTemp((*void*)) implement {}(*tmp*) fundeque_make_nil () = FTemp((*void*)) // (* ****** ****** *) implement {a}(*tmp*) fundeque_cons (x0, xs) = fngtree_cons (FTN1{a}(x0), xs) // end of [fundeque_cons] implement {a}(*tmp*) fundeque_uncons (xs) = x0 where { var xn: ptr? val () = xs := fngtree_uncons(xs, xn) val+FTN1 (x0) = xn } // end of [fundeque_uncons] (* ****** ****** *) implement {a}(*tmp*) fundeque_snoc (xs, xn) = fngtree_snoc (xs, FTN1{a}(xn)) // end of [fundeque_snoc] implement {a}(*tmp*) fundeque_unsnoc (xs) = x0 where { var xn: ptr? val () = xs := fngtree_unsnoc(xs, xn) val+FTN1 (x0) = xn } // end of [fundeque_unsnoc] (* ****** ****** *) implement {}(*tmp*) fundeque_is_nil (xs) = let in // case+ xs of | FTemp () => true | FTsing (xn) => let prval () = ftnode_prop_szpos (xn) in false end // end of [FTsing] | FTdeep (pr, _, _) => let prval () = ftdigit_prop_szpos (pr) in false end // end of [FTdeep] // end // end of [fundeque_is_nil] implement {}(*tmp*) fundeque_is_cons (xs) = let prval () = lemma_deque_param (xs) in ~fundeque_is_nil<> (xs) end // end of [fundeque_is_cons] (* ****** ****** *) extern fun fngtree_size {a:t0p} {d:int} {n:nat} (xt: fngtree(a, d, n)):<> size_t(n) // implement {a}(*tmp*) fundeque_size (xs) = let // prval () = lemma_deque_param(xs) // in fngtree_size(xs) end // end of [fundeque_size] // implement fngtree_size (xt) = ( // case+ xt of | FTemp () => g1i2u(0) | FTsing (xn) => ftnode_size(xn) | FTdeep (pr, m, sf) => let prval () = ftdigit_prop_szpos(pr) in ftdigit_size(pr) + fngtree_size(m) + ftdigit_size(sf) end // end of [FTdeep] // ) (* end of [fngtree_size] *) (* ****** ****** *) implement {a}(*tmp*) fundeque_get_atbeg (xs) = let val+FTN1 (x) = fngtree_get_atbeg{a}(xs) in (x) end // end of [fundeque_get_atbeg] implement {a}(*tmp*) fundeque_get_atend (xs) = let val+FTN1 (x) = fngtree_get_atend{a}(xs) in (x) end // end of [fundeque_get_atend] (* ****** ****** *) // extern fun fngtree_append {a:t0p} {d:int} {n1,n2:nat} ( fngtree(a, d, n1), fngtree(a, d, n2) ) : fngtree(a, d, n1+n2) // end-of-function // implement {a}(*tmp*) fundeque_append (xs1, xs2) = let // prval () = lemma_deque_param(xs1) prval () = lemma_deque_param(xs2) // in $effmask_all(fngtree_append(xs1, xs2)) end // end of [fundeque_append] // (* ****** ****** *) local // symintr ++ // infix (+) ++ // overload ++ with fngtree_cons overload ++ with fngtree_snoc fun ftapp0 {a:t0p} {d:int} {n1,n2:nat} ( xt1: fngtree (a, d, n1) , xt2: fngtree (a, d, n2) ) : fngtree (a, d, n1+n2) = ( case+ (xt1, xt2) of | (FTemp(), _) => xt2 | (_, FTemp()) => xt1 | (FTsing xn1, _) => xn1 ++ xt2 | (_, FTsing xn2) => xt1 ++ xn2 | (FTdeep(pr1, m1, sf1), FTdeep(pr2, m2, sf2)) => FTdeep(pr1, ftadd0(m1, sf1, pr2, m2), sf2) ) // end of [ftapp0] and ftadd0 {a:t0p} {d:int} {nm1,nm2:nat} {nsf1,npr2:nat} ( m1: fngtree (a, d+1, nm1) , sf1: ftdigit (a, d, nsf1) , pr2: ftdigit (a, d, npr2) , m2: fngtree (a, d+1, nm2) ) : fngtree (a, d+1, nm1+nsf1+npr2+nm2) = let in // case+ sf1 of | FTD1 (xn1) => ( case+ pr2 of | FTD1(xn_1) => ftapp1 (m1, FTN2(xn1, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp1 (m1, FTN3(xn1, xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp2 (m1, FTN2(xn1, xn_1), FTN2(xn_2, xn_3), m2) | FTD4 (xn_1, xn_2, xn_3, xn_4) => ftapp2 (m1, FTN3(xn1, xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD1] | FTD2 (xn1, xn2) => ( case+ pr2 of | FTD1(xn_1) => ftapp1(m1, FTN3(xn1, xn2, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp2(m1, FTN2(xn1, xn2), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp2(m1, FTN3(xn1, xn2, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp2(m1, FTN3(xn1, xn2, xn_1), FTN3(xn_2, xn_3, xn_4), m2) ) // end of [FTD2] | FTD3(xn1, xn2, xn3) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN2(xn1, xn2), FTN2(xn3, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp2(m1, FTN3(xn1, xn2, xn3), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp2(m1, FTN3(xn1, xn2, xn3), FTN3(xn_1, xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN2(xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD3] | FTD4(xn1, xn2, xn3, xn4) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN3(xn1, xn2, xn3), FTN2(xn4, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp2(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN2(xn4, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD4] // end // end of [ftadd0] and ftapp1 {a:t0p} {d:int} {n1,n2:nat} {na:nat} ( xt1: fngtree (a, d, n1) , xna: ftnode (a, d, na) , xt2: fngtree (a, d, n2) ) : fngtree (a, d, n1+na+n2) = ( // case+ (xt1, xt2) of | (FTemp(), _) => xna ++ xt2 | (_, FTemp()) => xt1 ++ xna | (FTsing xn1, _) => xn1 ++ (xna ++ xt2) | (_, FTsing xn2) => (xt1 ++ xna) ++ xn2 | (FTdeep(pr1, m1, sf1), FTdeep(pr2, m2, sf2)) => FTdeep(pr1, ftadd1(m1, sf1, xna, pr2, m2), sf2) // ) (* end of [ftapp1] *) and ftadd1 {a:t0p} {d:int} {nm1,nm2:nat} {nsf1,npr2:nat} {na:nat} ( m1: fngtree (a, d+1, nm1) , sf1: ftdigit (a, d, nsf1) , xna: ftnode (a, d, na) , pr2: ftdigit (a, d, npr2) , m2: fngtree (a, d+1, nm2) ) : fngtree (a, d+1, nm1+nsf1+na+npr2+nm2) = let in // case+ sf1 of | FTD1(xn1) => ( case+ pr2 of | FTD1(xn_1) => ftapp1(m1, FTN3(xn1, xna, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp2(m1, FTN2(xn1, xna), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp2(m1, FTN3(xn1, xna, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp2(m1, FTN3(xn1, xna, xn_1), FTN3(xn_2, xn_3, xn_4), m2) ) // end of [FTD1] | FTD2(xn1, xn2) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN2(xn1, xn2), FTN2(xna, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp2(m1, FTN3(xn1, xn2, xna), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp2(m1, FTN3(xn1, xn2, xna), FTN3(xn_1, xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xn2, xna), FTN2(xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD2] | FTD3(xn1, xn2, xn3) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN3(xn1, xn2, xn3), FTN2(xna, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp2(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN2(xna, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD3] | FTD4(xn1, xn2, xn3, xn4) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN2(xn4, xna), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xn_1), FTN3(xn_2, xn_3, xn_4), m2) ) // end of [FTD4] // end // end of [ftadd1] and ftapp2 {a:t0p} {d:int} {n1,n2:nat} {na,nb:nat} ( xt1: fngtree (a, d, n1) , xna: ftnode (a, d, na) , xnb: ftnode (a, d, nb) , xt2: fngtree (a, d, n2) ) : fngtree (a, d, n1+na+nb+n2) = ( case+ (xt1, xt2) of | (FTemp (), _) => xna ++ (xnb ++ xt2) | (_, FTemp ()) => (xt1 ++ xna) ++ xnb | (FTsing xn1, _) => xn1 ++ (xna ++ (xnb ++ xt2)) | (_, FTsing xn2) => ((xt1 ++ xna) ++ xnb) ++ xn2 | (FTdeep (pr1, m1, sf1), FTdeep (pr2, m2, sf2)) => FTdeep (pr1, ftadd2(m1, sf1, xna, xnb, pr2, m2), sf2) ) // end of [ftapp2] and ftadd2 {a:t0p} {d:int} {nm1,nm2:nat} {nsf1,npr2:nat} {na,nb:nat} ( m1: fngtree (a, d+1, nm1) , sf1: ftdigit (a, d, nsf1) , xna: ftnode (a, d, na) , xnb: ftnode (a, d, nb) , pr2: ftdigit (a, d, npr2) , m2: fngtree (a, d+1, nm2) ) : fngtree (a, d+1, nm1+nsf1+na+nb+npr2+nm2) = let in // case+ sf1 of | FTD1(xn1) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN2(xn1, xna), FTN2(xnb, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp2(m1, FTN3(xn1, xna, xnb), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp2(m1, FTN3(xn1, xna, xnb), FTN3(xn_1, xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xna, xnb), FTN2(xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD1] | FTD2(xn1, xn2) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN3(xn1, xn2, xna), FTN2(xnb, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp2(m1, FTN3(xn1, xn2, xna), FTN3(xnb, xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xn2, xna), FTN2(xnb, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xn2, xna), FTN3(xnb, xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD2] | FTD3(xn1, xn2, xn3) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN2(xna, xnb), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xn_1), FTN3(xn_2, xn_3, xn_4), m2) ) // end of [FTD3] | FTD4(xn1, xn2, xn3, xn4) => ( case+ pr2 of | FTD1(xn_1) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN2(xn4, xna), FTN2(xnb, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN3(xn_1, xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp4(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN2(xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD4] // end // end of [ftadd2] and ftapp3 {a:t0p} {d:int} {n1,n2:nat} {na,nb,nc:nat} ( xt1: fngtree (a, d, n1) , xna: ftnode (a, d, na) , xnb: ftnode (a, d, nb) , xnc: ftnode (a, d, nc) , xt2: fngtree (a, d, n2) ) : fngtree (a, d, n1+na+nb+nc+n2) = ( case+ (xt1, xt2) of | (FTemp(), _) => xna ++ (xnb ++ (xnc ++ xt2)) | (_, FTemp()) => ((xt1 ++ xna) ++ xnb) ++ xnc | (FTsing xn1, _) => xn1 ++ (xna ++ (xnb ++ (xnc ++ xt2))) | (_, FTsing xn2) => (((xt1 ++ xna) ++ xnb) ++ xnc) ++ xn2 | (FTdeep(pr1, m1, sf1), FTdeep (pr2, m2, sf2)) => FTdeep(pr1, ftadd3(m1, sf1, xna, xnb, xnc, pr2, m2), sf2) ) // end of [ftapp3] and ftadd3 {a:t0p} {d:int} {nm1,nm2:nat} {nsf1,npr2:nat} {na,nb,nc:nat} ( m1: fngtree (a, d+1, nm1) , sf1: ftdigit (a, d, nsf1) , xna: ftnode (a, d, na) , xnb: ftnode (a, d, nb) , xnc: ftnode (a, d, nc) , pr2: ftdigit (a, d, npr2) , m2: fngtree (a, d+1, nm2) ) : fngtree (a, d+1, nm1+nsf1+na+nb+nc+npr2+nm2) = let in // case+ sf1 of | FTD1(xn1) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN3(xn1, xna, xnb), FTN2(xnc, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp2(m1, FTN3(xn1, xna, xnb), FTN3(xnc, xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xna, xnb), FTN2(xnc, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xna, xnb), FTN3(xnc, xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD1] | FTD2(xn1, xn2) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN3(xn1, xn2, xna), FTN3(xnb, xnc, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp3(m1, FTN3(xn1, xn2, xna), FTN2(xnb, xnc), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xn2, xna), FTN3(xnb, xnc, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xn2, xna), FTN3(xnb, xnc, xn_1), FTN3(xn_2, xn_3, xn_4), m2) ) // end of [FTD2] | FTD3(xn1, xn2, xn3) => ( case+ pr2 of | FTD1(xn_1) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN2(xna, xnb), FTN2(xnc, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xnc), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xnc), FTN3(xn_1, xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp4(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xnc), FTN2(xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD3] | FTD4(xn1, xn2, xn3, xn4) => ( case+ pr2 of | FTD1(xn_1) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN2(xnc, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN3(xnc, xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp4(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN2(xnc, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp4(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN3(xnc, xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD4] // end // end of [ftadd3] and ftapp4 {a:t0p} {d:int} {n1,n2:nat} {na,nb,nc,nd:nat} ( xt1: fngtree (a, d, n1) , xna: ftnode (a, d, na) , xnb: ftnode (a, d, nb) , xnc: ftnode (a, d, nc) , xnd: ftnode (a, d, nd) , xt2: fngtree (a, d, n2) ) : fngtree (a, d, n1+na+nb+nc+nd+n2) = ( case+ (xt1, xt2) of | (FTemp(), _) => xna ++ (xnb ++ (xnc ++ (xnd ++ xt2))) | (_, FTemp()) => (((xt1 ++ xna) ++ xnb) ++ xnc) ++ xnd | (FTsing xn1, _) => xn1 ++ (xna ++ (xnb ++ (xnc ++ (xnd ++ xt2)))) | (_, FTsing xn2) => ((((xt1 ++ xna) ++ xnb) ++ xnc) ++ xnd) ++ xn2 | (FTdeep(pr1, m1, sf1), FTdeep (pr2, m2, sf2)) => FTdeep(pr1, ftadd4(m1, sf1, xna, xnb, xnc, xnd, pr2, m2), sf2) ) // end of [ftapp4] and ftadd4 {a:t0p} {d:int} {nm1,nm2:nat} {nsf1,npr2:nat} {na,nb,nc,nd:nat} ( m1: fngtree (a, d+1, nm1) , sf1: ftdigit (a, d, nsf1) , xna: ftnode (a, d, na) , xnb: ftnode (a, d, nb) , xnc: ftnode (a, d, nc) , xnd: ftnode (a, d, nd) , pr2: ftdigit (a, d, npr2) , m2: fngtree (a, d+1, nm2) ) : fngtree (a, d+1, nm1+nsf1+na+nb+nc+nd+npr2+nm2) = let in // case+ sf1 of | FTD1(xn1) => ( case+ pr2 of | FTD1(xn_1) => ftapp2(m1, FTN3(xn1, xna, xnb), FTN3(xnc, xnd, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp3(m1, FTN3(xn1, xna, xnb), FTN2(xnc, xnd), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xna, xnb), FTN3(xnc, xnd, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp3(m1, FTN3(xn1, xna, xnb), FTN3(xnc, xnd, xn_1), FTN3(xn_2, xn_3, xn_4), m2) ) // end of [FTD1] | FTD2(xn1, xn2) => ( case+ pr2 of | FTD1(xn_1) => ftapp3(m1, FTN3(xn1, xn2, xna), FTN2(xnb, xnc), FTN2(xnd, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp3(m1, FTN3(xn1, xn2, xna), FTN3(xnb, xnc, xnd), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp3(m1, FTN3(xn1, xn2, xna), FTN3(xnb, xnc, xnd), FTN3(xn_1, xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp4(m1, FTN3(xn1, xn2, xna), FTN3(xnb, xnc, xnd), FTN2(xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD2] | FTD3(xn1, xn2, xn3) => ( case+ pr2 of | FTD1(xn_1) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xnc), FTN2(xnd, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xnc), FTN3(xnd, xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp4(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xnc), FTN2(xnd, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp4(m1, FTN3(xn1, xn2, xn3), FTN3(xna, xnb, xnc), FTN3(xnd, xn_1, xn_2), FTN2(xn_3, xn_4), m2) ) // end of [FTD3] | FTD4(xn1, xn2, xn3, xn4) => ( case+ pr2 of | FTD1(xn_1) => ftapp3(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN3(xnc, xnd, xn_1), m2) | FTD2(xn_1, xn_2) => ftapp4(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN2(xnc, xnd), FTN2(xn_1, xn_2), m2) | FTD3(xn_1, xn_2, xn_3) => ftapp4(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN3(xnc, xnd, xn_1), FTN2(xn_2, xn_3), m2) | FTD4(xn_1, xn_2, xn_3, xn_4) => ftapp4(m1, FTN3(xn1, xn2, xn3), FTN3(xn4, xna, xnb), FTN3(xnc, xnd, xn_1), FTN3(xn_2, xn_3, xn_4), m2) ) // end of [FTD4] // end // end of [ftadd4] in (* in of [local] *) implement fngtree_append(xt1, xt2) = ftapp0(xt1, xt2) end // end of [local] (* ****** ****** *) // typedef ftnode(a:t0p, d:int) = [n:int] ftnode(a, d, n) // (* ****** ****** *) local extern fun __free(p: ptr): void = "mac#ATS_MFREE" extern fun foreach {a:t0p}{d:nat}{n:nat} ( xt: fngtree(a, d, n), f: ftnode(a, d) - void ) :<> void // end of [foreach] implement foreach {a}{d}{n} (xt, fopr) = let in // case+ xt of | FTemp() => () | FTsing(xn) => fopr(xn) | FTdeep(pr, m, sf) => let // prval () = ftdigit_prop_szpos(pr) prval () = ftdigit_prop_szpos(sf) // val () = ( case+ pr of | FTD1(xn1) => fopr(xn1) | FTD2(xn1, xn2) => (fopr(xn1); fopr(xn2)) | FTD3(xn1, xn2, xn3) => (fopr(xn1); fopr(xn2); fopr(xn3)) | FTD4(xn1, xn2, xn3, xn4) => (fopr(xn1); fopr(xn2); fopr(xn3); fopr(xn4)) ) : void // end of [val] // val () = ( case+ m of | FTemp() => () | _ (*non-FTemp*) => let val fopr1 = lam (xn_1: ftnode(a, d+1)): void = let in case+ xn_1 of | FTN2(xn1, xn2) => (fopr(xn1); fopr(xn2)) | FTN3(xn1, xn2, xn3) => (fopr(xn1); fopr(xn2); fopr(xn3)) end // end of [lam] // end of [val] val () = foreach(m, fopr1) val () = $effmask_wrt(__free ($UN.cast2ptr(fopr1))) in // nothing end // end of [_] ) : void // end of [val] val () = ( case+ sf of | FTD1(xn1) => fopr(xn1) | FTD2(xn1, xn2) => (fopr(xn1); fopr(xn2)) | FTD3(xn1, xn2, xn3) => (fopr(xn1); fopr(xn2); fopr(xn3)) | FTD4(xn1, xn2, xn3, xn4) => (fopr(xn1); fopr(xn2); fopr(xn3); fopr(xn4)) ) : void // end of [val] in // nothing end // end of [FTdeep] end // end of [foreach] in (* in of [local] *) implement {a}(*tmp*) fundeque_foreach(xs) = let var env: void = () in fundeque_foreach_env(xs, env) end // end of [fundeque_foreach] implement {a}{env} fundeque_foreach_env (xs, env) = let // typedef ftnode0 = ftnode(a, 0) // prval () = fngtree_prop1_sznat (xs) // val p_env = addr@(env) // val fopr = lam ( xn: ftnode0 ) : void = let // val+FTN1(x) = xn // val ( pf, fpf | p_env ) = $UN.ptr_vtake{env}(p_env) // val () = $effmask_all ( fundeque_foreach$fwork(x, !p_env) ) (* end of [val] *) // prval((*returned*)) = fpf (pf) // in // nothing end // end of [val] // val () = foreach(xs, fopr) val () = $effmask_wrt(__free($UN.cast2ptr(fopr))) // in // nothing end // end of [fundeque_foreach_env] end // end of [local] (* ****** ****** *) local extern fun __free(p: ptr): void = "mac#ATS_MFREE" extern fun rforeach {a:t0p}{d:nat}{n:nat} ( xt: fngtree(a, d, n), fopr: (ftnode(a, d)) - void ) :<> void // end of [rforeach] implement rforeach {a}{d}{n} (xt, fopr) = let in // case+ xt of | FTemp() => () | FTsing(xn) => fopr(xn) | FTdeep(pr, m, sf) => let // prval () = ftdigit_prop_szpos(pr) prval () = ftdigit_prop_szpos(sf) // val () = ( case+ sf of | FTD1(xn1) => fopr(xn1) | FTD2(xn1, xn2) => (fopr(xn2); fopr(xn1)) | FTD3(xn1, xn2, xn3) => (fopr(xn3); fopr(xn2); fopr(xn1)) | FTD4(xn1, xn2, xn3, xn4) => (fopr(xn4); fopr(xn3); fopr(xn2); fopr(xn1)) ) : void // end of [val] val () = ( case+ m of | FTemp() => () | _ (*non-FTemp*) => let val fopr1 = lam (xn_1: ftnode (a, d+1)): void = let in case+ xn_1 of | FTN2(xn1, xn2) => (fopr(xn2); fopr(xn1)) | FTN3(xn1, xn2, xn3) => (fopr(xn3); fopr(xn2); fopr(xn1)) end // end of [val] val () = rforeach(m, fopr1) val () = $effmask_wrt(__free($UN.cast2ptr(fopr1))) in // nothing end // end of [_] ) : void // end of [val] val () = ( case+ pr of | FTD1(xn1) => fopr(xn1) | FTD2(xn1, xn2) => (fopr(xn2); fopr(xn1)) | FTD3(xn1, xn2, xn3) => (fopr(xn3); fopr(xn2); fopr(xn1)) | FTD4(xn1, xn2, xn3, xn4) => (fopr(xn4); fopr(xn3); fopr(xn2); fopr(xn1)) ) : void // end of [val] in // nothing end // end of [FTdeep] // end // end of [rforeach] in (* in of [local] *) implement{a} fundeque_rforeach(xs) = let var env: void = () in fundeque_rforeach_env(xs, env) end // end of [fundeque_rforeach] implement {a}{env} fundeque_rforeach_env (xs, env) = let // typedef ftnode0 = ftnode(a, 0) // prval () = fngtree_prop1_sznat(xs) // val p_env = addr@(env) // val fopr = lam ( xn: ftnode0 ) : void = let // val+FTN1 (x) = xn // val ( pf, fpf | p_env ) = $UN.ptr_vtake{env}(p_env) // val () = $effmask_all ( fundeque_rforeach$fwork(x, !p_env) ) (* end of [val] *) // prval ((*returned*)) = fpf(pf) // in // nothing end // end of [val] // val () = rforeach(xs, fopr) val () = $effmask_wrt(__free($UN.cast2ptr(fopr))) // in // nothing end // end of [fundeque_rforeach_env] end // end of [local] (* ****** ****** *) (* end of [fundeque_fngtree.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/gvector.dats0000644000175000017500000001236213431250607021225 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/gvector.sats" (* ****** ****** *) implement{a} gvector_getref_at (V, d, i) = let val p = $UN.cast2Ptr1(ptr_add (addr@(V), i*d)) in $UN.ptr2cptr{a}(p) end // end of [gvector_getref_at] (* ****** ****** *) implement{} fprint_gvector$sep (out) = fprint_string (out, ", ") // end of [fprint_gvector$sep] (* ****** ****** *) implement{a} fprint_gvector (out, V, n, d) = let // typedef tenv = int implement gvector_foreach$fwork (x, env) = let val i = env val () = if i > 0 then fprint_gvector$sep<> (out) val () = env := i + 1 in fprint_ref (out, x) end // end of [gvector_foreach$fwork] // var env: tenv = 0 val _(*n*) = gvector_foreach_env (V, n, d, env) // in // nothing end // end of [fprint_gvector] (* ****** ****** *) implement {a}(*tmp*) gvector_copyto {n}{d1,d2} (V1, V2, n, d1, d2) = let // prval ( ) = __initize (V2) where { extern praxi __initize (&GVT(a?, n, d2) >> GVT(a, n, d2)): void } (* end of [where] *) // end of [prval] // implement {a1,a2}{env} gvector_foreach2$cont (x, y, env) = true implement(env) gvector_foreach2$fwork (x, y, env) = y := x // val _(*n*) = gvector_foreach2 (V1, V2, n, d1, d2) // in // nothing end // end of [gvector_copyto] (* ****** ****** *) implement{a} gvector_exchange (V1, V2, n, d1, d2) = let // implement {a1,a2}{env} gvector_foreach2$cont (x, y, env) = true // implement(env) gvector_foreach2$fwork (x, y, env) = let val t = x in x := y; y := t end // val _(*n*) = gvector_foreach2 (V1, V2, n, d1, d2) // in // nothing end // end of [gvector_exchange] (* ****** ****** *) implement{a}{env} gvector_foreach$cont (x, env) = true (* implement{a}{env} gvector_foreach$fwork (x, env) = ((*void*)) *) implement{a} gvector_foreach (V, n, d) = let var env: void = () in gvector_foreach_env (V, n, d, env) end // end of [gvector_foreach] implement {a}{env} gvector_foreach_env {n}{d}(V, n, d, env) = let // fun loop {i:nat | i <= n} ( p: ptr, i: int i, env: &env >> _ ) : natLte(n) = let in // if i > 0 then let val p = g1ofg0(p) val (pf, fpf | p) = $UN.ptr_vtake{a}(p) val cont = gvector_foreach$cont (!p, env) prval () = fpf (pf) in if cont then let val (pf, fpf | p) = $UN.ptr_vtake{a}(p) val () = gvector_foreach$fwork (!p, env) prval () = fpf (pf) in loop (ptr_add (p, d), pred(i), env) end else i // end of [if] end else (0) // end of [if] // end // end of [loop] // prval ( ) = lemma_gvector_param (V) val i = loop (addr@(V), n, env) // in (n - i) end // end of [gvector_foreach_env] (* ****** ****** *) implement{a,b}{env} gvector_foreach2$cont (x, y, env) = true implement{a,b} gvector_foreach2 ( V1, V2, n, d1, d2 ) = let var env: void = () in gvector_foreach2_env (V1, V2, n, d1, d2, env) end // end of [gvector_foreach2] implement {a,b}{env} gvector_foreach2_env {n}{d1,d2}(V1, V2, n, d1, d2, env) = let // fun loop {i:nat | i <= n} ( p1: ptr, p2: ptr, i: int i, env: &env >> _ ) : natLte(n) = let in // if i > 0 then let val p1 = g1ofg0(p1) val p2 = g1ofg0(p2) val (pf1, fpf1 | p1) = $UN.ptr_vtake{a}(p1) val (pf2, fpf2 | p2) = $UN.ptr_vtake{b}(p2) val cont = gvector_foreach2$cont (!p1, !p2, env) prval () = fpf1 (pf1) and () = fpf2 (pf2) in if cont then let val (pf1, fpf1 | p1) = $UN.ptr_vtake{a}(p1) val (pf2, fpf2 | p2) = $UN.ptr_vtake{b}(p2) val () = gvector_foreach2$fwork (!p1, !p2, env) prval () = fpf1 (pf1) and () = fpf2 (pf2) in loop (ptr_add (p1, d1), ptr_add (p2, d2), pred(i), env) end else i // end of [if] end else (0) // end of [if] // end // end of [loop] // prval ( ) = lemma_gvector_param (V1) val i = loop (addr@(V1), addr@(V2), n, env) // in (n - i) end // end of [gvector_foreach2_env] (* ****** ****** *) (* end of [gvector.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/linheap_binomial2.dats0000644000175000017500000003707613431250607023141 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // // HX: This implementation is of imperative style; // it supports mergeable-heap operations and also // the decrease-key operation. // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linheap_binomial2" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/gnode.sats" staload "libats/SATS/linheap_binomial.sats" (* ****** ****** *) #define nullp the_null_ptr (* ****** ****** *) // // HX-2012-12-21: // the file should be included here // before [heap_vtype] is assumed // #include "./SHARE/linheap.hats" // code reuse // (* ****** ****** *) macdef assertloc_debug (x) = () (* ****** ****** *) stadef mytkind = $extkind"atslib_linheap_binomial2" (* ****** ****** *) typedef g2node (a:vt0p, l:addr) = gnode (mytkind, a, l) typedef g2node0 (a:vt0p) = gnode0 (mytkind, a) typedef g2node1 (a:vt0p) = gnode1 (mytkind, a) (* ****** ****** *) extern fun{a:vt0p} g2node_make_elt (x: a): g2node1 (a) (* ****** ****** *) extern fun{a:t0p} g2node_free (nx: g2node1 (INV(a))): void (* ****** ****** *) extern fun{a:vt0p} g2node_free_elt (nx: g2node1 (INV(a)), res: &a? >> a): void // end of [g2node_free_elt] (* ****** ****** *) extern fun{a:vt0p} g2node_get_rank (nx: g2node1 (INV(a))):<> int extern fun{a:vt0p} g2node_set_rank (nx: g2node1 (INV(a)), r: int): void extern fun{a:vt0p} g2node_get_parent (nx: g2node1 (INV(a))):<> g2node0 (a) extern fun{a:vt0p} g2node_set_parent (nx: g2node1 (INV(a)), par: g2node0 (a)): void extern fun{a:vt0p} g2node_set_parent_null (nx: g2node1 (INV(a))): void extern fun{a:vt0p} g2node_get_children (nx: g2node1 (INV(a))):<> g2node0 (a) extern fun{a:vt0p} g2node_set_children (nx: g2node1 (INV(a)), nxs: g2node0 (a)): void extern fun{a:vt0p} g2node_set_children_null (nx: g2node1 (INV(a))): void (* ****** ****** *) extern fun{a:vt0p} g2nodelst_cons (nx: g2node1 (INV(a)), nxs: g2node0 (a)): g2node1 (a) (* ****** ****** *) extern fun{a:vt0p} gnode_compare (nx1: g2node1 (a), nx2: g2node1 (a)):<> int implement{a} gnode_compare (nx1, nx2) = sgn where { val p_x1 = gnode_getref_elt (nx1) val ( pf1, fpf1 | p_x1 ) = $UN.cptr_vtake (p_x1) val p_x2 = gnode_getref_elt (nx2) val ( pf2, fpf2 | p_x2 ) = $UN.cptr_vtake (p_x2) val sgn = compare_elt_elt (!p_x1, !p_x2) prval () = fpf1 (pf1) and () = fpf2 (pf2) } // end of [gnode_compare] (* ****** ****** *) extern fun{a:vt0p} gnode_compare01 (nx1: g2node0 (a), nx2: g2node1 (a)):<> int implement{a} gnode_compare01 (nx1, nx2) = if gnode_isnot_null (nx1) then gnode_compare (nx1, nx2) else 1 // end of [gnode_compare01] extern fun{a:vt0p} gnode_compare10 (nx1: g2node1 (a), nx2: g2node0 (a)):<> int implement{a} gnode_compare10 (nx1, nx2) = if gnode_isnot_null (nx2) then gnode_compare (nx1, nx2) else ~1 // end of [gnode_compare10] (* ****** ****** *) // // HX-2013-08: // [nx1] and [nx2] are of the same rank // extern fun{a:vt0p} join_gnode_gnode (nx1: g2node1 (a), nx2: g2node1 (a)): void implement{a} join_gnode_gnode (nx1, nx2) = let val r = g2node_get_rank (nx1) val () = g2node_set_rank (nx1, r+1) val () = g2node_set_parent (nx2, nx1) val () = gnode_link10 (nx2, g2node_get_children (nx1)) val () = g2node_set_children (nx1, nx2) in // nothing end // end of [join_gnode_gnode] (* ****** ****** *) extern fun{a:vt0p} merge_gnode_gnode ( nx1: g2node1 (a), nx2: g2node1 (a) ) : g2node1 (a) // endfun implement{a} merge_gnode_gnode (nx1, nx2) = let val sgn = gnode_compare (nx1, nx2) in if sgn < 0 then let val () = join_gnode_gnode (nx1, nx2) in nx1 end else let val () = join_gnode_gnode (nx2, nx1) in nx2 end // end of [if] end // end of [merge_gnode_gnode] (* ****** ****** *) extern fun{a:vt0p} merge_gnode_gnodelst ( nx1: g2node1 (a), r1: int, nxs2: g2node0 (a) ) : g2node1 (a) // endfun implement{a} merge_gnode_gnodelst (nx1, r1, nxs2) = let // val iscons = gnodelst_is_cons (nxs2) // in // if iscons then let val nx2 = nxs2 val r2 = g2node_get_rank (nx2) in if r1 < r2 then g2nodelst_cons (nx1, nxs2) else let // HX: r1 = r2 val nxs2 = gnode_get_next (nx2) val nx1 = merge_gnode_gnode (nx1, nx2) in merge_gnode_gnodelst (nx1, r1+1, nxs2) end // end of [if] end else g2nodelst_cons (nx1, nxs2) // end of [if] // end // end of [merge_gnode_gnodelst] (* ****** ****** *) (* ** HX-2012-12: ** pre-condition for merging_gnodelst_gnodelst: ** both [nxs1] and [nxs2] are sorted ascendingly ** according to ranks of binomial trees *) extern fun{a:vt0p} merge_gnodelst_gnodelst ( nxs1: g2node0 (a), nxs2: g2node0 (a) ) : g2node0 (a) // endfun implement{a} merge_gnodelst_gnodelst (nxs1, nxs2) = let // fun loop ( nxs1: g2node0 (a), nxs2: g2node0 (a), res: Ptr1 ) : void = let in // if gnode_isnot_null (nxs1) then ( if gnode_isnot_null (nxs2) then let val nx1 = nxs1 val r1 = g2node_get_rank (nx1) val nx2 = nxs2 val r2 = g2node_get_rank (nx2) in if r1 < r2 then let val () = $UN.ptr1_set (res, nx1) val res = gnode_getref_next (nx1) val nxs1 = $UN.cptr_get (res) in loop (nxs1, nxs2, cptr2ptr (res)) end else if r1 > r2 then let val () = $UN.ptr1_set (res, nx2) val res = gnode_getref_next (nx2) val nxs2 = $UN.cptr_get (res) in loop (nxs1, nxs2, cptr2ptr (res)) end else let // r1 = r2 val nxs1 = gnode_get_next (nx1) val nxs2 = gnode_get_next (nx2) val nx1 = merge_gnode_gnode (nx1, nx2) val nxs1 = merge_gnode_gnodelst (nx1, r1+1, nxs1) in loop (nxs1, nxs2, res) end // end of [if] end else $UN.ptr1_set (res, nxs1) ) else $UN.ptr1_set (res, nxs2) // end // end of [loop] // var res: g2node0(a) val () = $effmask_all (loop (nxs1, nxs2, addr@(res))) // in $UN.cast{g2node0(a)} (res) end // end of [merge_gnodelst_gnodelst] (* ****** ****** *) (* assume heap_vtype (a:vt0p) = g2node0 (a) *) (* ****** ****** *) implement{} linheap_nil{a} () = $UN.castvwtp1{heap(a)}(gnode_null()) // end of [linheap_nil] (* ****** ****** *) // implement{} linheap_is_nil{a} (hp) = gnodelst_is_nil ($UN.castvwtp1{g2node0(a)}(hp)) implement{} linheap_isnot_nil{a} (hp) = gnodelst_is_cons ($UN.castvwtp1{g2node0(a)}(hp)) // (* ****** ****** *) implement{a} linheap_size (hp) = let // fun loop ( nxs: g2node0(a), res: size_t ) : size_t = let // val iscons = gnodelst_is_cons (nxs) // in // if iscons then let val nx = nxs val r = g2node_get_rank (nx) val r = $UN.cast{intGte(0)}(r) val nsz = g0uint_lsl_size ((i2sz)1, r) val nxs = gnode_get_next (nx) in loop (nxs, res + nsz) end else res // end of [if] // end // end of [loop] // in $effmask_all (loop ($UN.castvwtp1{g2node0(a)}(hp), i2sz(0))) end // end of [linheap_size] (* ****** ****** *) implement{a} linheap_insert (hp0, x0) = let // val nx = g2node_make_elt (x0) // val () = gnode_set_next_null (nx) // val () = g2node_set_rank (nx, 0) val () = g2node_set_parent_null (nx) val () = g2node_set_children_null (nx) // val nxs = $UN.castvwtp0{g2node0(a)}(hp0) val nxs = merge_gnode_gnodelst (nx, 0, nxs) val () = hp0 := $UN.castvwtp0{heap(a)}(nxs) // in // nothing end // end of [linheap_insert] (* ****** ****** *) implement{a} linheap_getmin_ref (hp0) = let // fun loop ( nx0: g2node1 (a), nxs: g2node0 (a) ) : g2node0 (a) = let val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx = nxs val nxs = gnode_get_next (nx) val sgn = gnode_compare (nx0, nx) in if sgn <= 0 then loop (nx0, nxs) else loop (nx, nxs) end else nx0 // end of [if] // end // end of [loop] // var nxs = $UN.castvwtp1{g2node0(a)}(hp0) val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx = nxs val nxs = gnode_get_next (nx) val nx_min = loop (nx, nxs) in $UN.cast{cPtr1(a)}(nx_min) end else $UN.cast{cPtr0(a)}(the_null_ptr) // end of [if] // end // end of [linheap_getmin_ref] (* ****** ****** *) implement{a} linheap_delmin (hp0, res) = let // fun loop ( nxs_ref: Ptr1, nx0_ref: Ptr1, nx0: g2node1 (a) ) : g2node1 (a) = let val nxs = $UN.ptr1_get (nxs_ref) val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nx = nxs val nx_ref = nxs_ref val nxs_ref = gnode_getref_next (nx) val nxs_ref = cptr2ptr (nxs_ref) val sgn = gnode_compare01 (nx0, nx) in if sgn <= 0 then loop (nxs_ref, nx0_ref, nx0) else loop (nxs_ref, nx_ref, nx) // end of [if] end else let val () = $UN.ptr1_set (nx0_ref, gnode_get_next (nx0)) in nx0 end // end of [if] // end // end of [loop] // fun auxrev ( nxs: g2node0 (a) ) : g2node0 (a) = let // fun loop ( nxs: g2node0 (a), res: g2node0 (a) ) : g2node0 (a) = let val isnot = gnode_isnot_null (nxs) in // if isnot then let val nx = nxs val () = g2node_set_parent_null (nx) val nxs = gnode_get_next (nx) in loop (nxs, g2nodelst_cons (nx, res)) end else res // end of [if] // end // end of [loop] // in $effmask_all (loop (nxs, gnode_null ())) end // end of [auxrev] // var nxs0 = $UN.castvwtp0{g2node0(a)}(hp0) val iscons = gnodelst_is_cons (nxs0) // in // if iscons then let val nx0 = nxs0 val nx0_ref = addr@(nxs0) val nxs_ref = gnode_getref_next (nx0) val nxs_ref = cptr2ptr (nxs_ref) // val nx_min = loop (nxs_ref, nx0_ref, nx0) // val nxs_min = g2node_get_children (nx_min) val ((*void*)) = g2node_free_elt (nx_min, res) // val nxs_min = auxrev (nxs_min) val nxs0 = merge_gnodelst_gnodelst (nxs0, nxs_min) val () = hp0 := $UN.castvwtp0{heap(a)}(nxs0) // prval () = opt_some{a}(res) // in true end else let // val () = hp0 := $UN.castvwtp0{heap(a)}(the_null_ptr) // prval () = opt_none{a}(res) // in false end // end of [if] // end // end of [linheap_delmin] (* ****** ****** *) implement {a}(*tmp*) linheap_merge (hp1, hp2) = let val nxs1 = $UN.castvwtp0{g2node0(a)}(hp1) val nxs2 = $UN.castvwtp0{g2node0(a)}(hp2) val nxs12 = merge_gnodelst_gnodelst (nxs1, nxs2) in $UN.castvwtp0{heap(a)}(nxs12) end // end of [linheap_merge] (* ****** ****** *) implement {a}(*tmp*) linheap_freelin (hp) = let // fun auxfree ( nx: g2node0(a) ) : void = let // val isnot = gnode_isnot_null (nx) // in // if isnot then let val nxs = g2node_get_children (nx) val ((*void*)) = auxfree (nxs) val nx2 = gnode_get_next (nx) val cp = gnode_getref_elt (nx) val (pf, fpf | p) = $UN.cptr_vtake (cp) val ((*void*)) = linheap_freelin$clear (!p) val ((*void*)) = $extfcall (void, "ATS_MFREE", $UN.castvwtp0{ptr}((pf, fpf | p))) in auxfree (nx2) end else () // end of [if] // end // end of [auxfree] // in $effmask_all (auxfree ($UN.castvwtp0{g2node0(a)}(hp))) end // end of [linheap_freelin] (* ****** ****** *) // // HX: functions for processing g2nodes // (* ****** ****** *) vtypedef hpnode_struct ( elt: vt0p ) = // sknode_struct @{ elt= elt, rank= int, next= ptr, parent= ptr, children= ptr } (* end of [hpnode_struct] *) (* ****** ****** *) extern castfn __cast_hpnode {a:vt0p}{l:agz} ( nx: g2node (INV(a), l) ) :<> [l:addr] ( hpnode_struct (a) @ l , hpnode_struct (a) @ l - void | ptr l ) // end of [__cast_hpnode] (* ****** ****** *) implement{a} g2node_make_elt (x) = let // val ( pf, pfgc | p ) = ptr_alloc () // val () = p->elt := x // in $UN.castvwtp0{g2node1(a)}((pf, pfgc | p)) end // end of [g2node_make_elt] (* ****** ****** *) implement{a} g2node_free (nx) = ( $extfcall (void, "ATS_MFREE", $UN.cast{ptr}(nx)) ) // end of [g2node_free] (* ****** ****** *) implement{a} g2node_free_elt (nx, res) = let // val (pf, fpf | p) = __cast_hpnode (nx) val () = res := p->elt // in $extfcall (void, "ATS_MFREE", $UN.castvwtp0{ptr}((pf, fpf | p))) end // end of [g2node_free_elt] (* ****** ****** *) implement{a} g2node_get_rank (nx) = r where { // val (pf, fpf | p) = __cast_hpnode (nx) val r = p->rank prval () = fpf (pf) } // end of [g2node_get_rank] implement{a} g2node_set_rank (nx, r) = let // val (pf, fpf | p) = __cast_hpnode (nx) val () = p->rank := r prval () = fpf (pf) // in // nothing end // end of [g2node_set_rank] (* ****** ****** *) implement{a} g2node_get_parent (nx) = let val (pf, fpf | p) = __cast_hpnode (nx) val p_parent = p->parent prval () = fpf (pf) // in $UN.cast{g2node0(a)}(p_parent) end // end of [g2node_get_parent] implement{a} g2node_set_parent (nx, nx2) = let val (pf, fpf | p) = __cast_hpnode (nx) val () = p->parent := $UN.cast{ptr}(nx2) prval () = fpf (pf) // in // nothing end // end of [g2node_set_parent] implement{a} g2node_set_parent_null (nx) = let val (pf, fpf | p) = __cast_hpnode (nx) val () = p->parent := $UN.cast{ptr}(the_null_ptr) prval () = fpf (pf) // in // nothing end // end of [g2node_set_parent_null] (* ****** ****** *) implement{a} g2node_get_children (nx) = let val (pf, fpf | p) = __cast_hpnode (nx) val p_children = p->children prval () = fpf (pf) // in $UN.cast{g2node0(a)}(p_children) end // end of [g2node_get_children] implement{a} g2node_set_children (nx, nx2) = let val (pf, fpf | p) = __cast_hpnode (nx) val () = p->children := $UN.cast{ptr}(nx2) prval () = fpf (pf) // in // nothing end // end of [g2node_set_children] implement{a} g2node_set_children_null (nx) = let val (pf, fpf | p) = __cast_hpnode (nx) val () = p->children := $UN.cast{ptr}(the_null_ptr) prval () = fpf (pf) // in // nothing end // end of [g2node_set_children_null] (* ****** ****** *) implement{a} g2nodelst_cons (nx, nxs) = let val () = gnode_link10 (nx, nxs) in nx end // end of [g2nodelst_cons] (* ****** ****** *) implement(a) gnode_getref_elt (nx) = let val (pf, fpf | p) = __cast_hpnode (nx) val p_elt = addr@(p->elt) prval () = fpf (pf) // in $UN.cast{cPtr1(a)}(p_elt) end // end of [gnode_getref_elt] (* ****** ****** *) implement(a) gnode_getref_next (nx) = let val (pf, fpf | p) = __cast_hpnode (nx) val p_next = addr@(p->next) prval () = fpf (pf) // in $UN.cast{cPtr1(g2node0(a))}(p_next) end // end of [g2node_getref_next] (* ****** ****** *) implement(a) gnode_link10 (nx1, nx2) = gnode_set_next (nx1, nx2) // end of [gnode_link10] implement(a) gnode_link11 (nx1, nx2) = gnode_set_next (nx1, nx2) // end of [gnode_link11] (* ****** ****** *) (* linheap_binomial2.dats *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/linmap_randbst.dats0000644000175000017500000003335213431250607022553 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linmap_randbst" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_" // prefix for external names (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload TIME = "libats/libc/SATS/time.sats" staload STDLIB = "libats/libc/SATS/stdlib.sats" (* ****** ****** *) staload "libats/SATS/linmap_randbst.sats" (* ****** ****** *) #include "./SHARE/linmap.hats" // code reuse (* ****** ****** *) stadef mytkind = $extkind"atslib_linmap_randbst" (* ****** ****** *) // // HX: for linear binary search trees // datavtype bstree ( key:t@ype, itm: vt@ype+, int(*size*) ) = | BSTnil ( key, itm, 0 ) of ( // argmentless ) // end of [BSTnil] | {nl,nr:nat} BSTcons ( key, itm, 1+nl+nr ) of ( int (1+nl+nr), key, itm, bstree (key, itm, nl), bstree (key, itm, nr) ) // end of [BSTcons] // end of [bstree] // (* ****** ****** *) vtypedef bstree0 (k:t0p, i:vt0p) = [n:nat] bstree (k, i, n) (* ****** ****** *) assume map_vtype (key:t0p, itm:vt0p) = bstree0 (key, itm) (* ****** ****** *) fun{ key:t0p;itm:vt0p } bstree_size {n:int} .<>. ( t: !bstree (key, INV(itm), n) ) :<> int n = ( case+ t of BSTcons (n, _, _, _, _) => n | BSTnil _ => 0 ) // end of [bstree_size] (* ****** ****** *) implement{ } linmap_nil () = BSTnil () implement{ } linmap_make_nil () = BSTnil () (* ****** ****** *) implement{ } linmap_is_nil (map) = ans where { val ans = ( case+ map of BSTnil _ => true | BSTcons _ => false ) : bool // end of [val] } // end of [linmap_is_nil] implement{ } linmap_isnot_nil (map) = ans where { val ans = ( case+ map of BSTnil _ => false | BSTcons _ => true ) : bool // end of [val] } // end of [linmap_isnot_nil] (* ****** ****** *) implement {key,itm} linmap_size (map) = g1int2uint (bstree_size (map)) (* ****** ****** *) local fun{ key:t0p;itm:t0p } auxfree{n:nat} .. ( t0: bstree (key, INV(itm), n) ) : void = let in // case+ t0 of | ~BSTcons ( _, _, _, tl, tr ) => let val () = auxfree (tl) and () = auxfree (tr) in (*nothing*) end // end of [BSTcons] | ~BSTnil () => () // end // end of [auxfree] in (* in of [local] *) implement {key,itm} linmap_free (map) = auxfree (map) end // end of [local] (* ****** ****** *) fun{ key:t0p;itm:vt0p } bstree_search_ref {n:nat} .. ( t: !bstree (key, INV(itm), n), k0: key ) :<> cPtr0 (itm) = let in // case+ t of | @BSTcons ( _(*sz*), k, x, tl, tr ) => let val sgn = compare_key_key (k0, k) in case+ 0 of | _ when sgn < 0 => let val res = bstree_search_ref (tl, k0) in fold@ (t); res end // end of [_] | _ when sgn > 0 => let val res = bstree_search_ref (tr, k0) in fold@ (t); res end // end of [_] | _ (*sgn = 0*) => let val res = addr@ (x) in fold@ (t); $UN.cast{cPtr1(itm)}(res) end // end of [_] end // end of [BSTcons] | BSTnil () => cptr_null {itm} () // end // end of [bstree_search_ref] (* ****** ****** *) implement {key,itm} linmap_search_ref (map, k0) = bstree_search_ref (map, k0) // end of [linmap_search_ref] (* ****** ****** *) fun{ key:t0p;itm:vt0p } bstree_insert_atroot{n:nat} .. ( t: &bstree (key, INV(itm), n) >> bstree (key, itm, n+1-i), k0: key, x0: &itm >> opt (itm, i>0) ) : #[i:nat2] int (i) = let in // case+ t of | @BSTcons ( n, k, x, tl, tr ) => let val sgn = compare_key_key (k0, k) in if sgn < 0 then let val ans = bstree_insert_atroot (tl, k0, x0) in if ans = 0 then let val tl_ = tl val+ @BSTcons (nl, _, _, tll, tlr) = tl_ // end of [val] val n_ = n; val nll = bstree_size (tll) val () = tl := tlr val () = n := n_ - nll prval () = fold@ (t) val () = tlr := t val () = nl := n_ + 1 prval () = fold@ (tl_) val () = t := tl_ in ans end else let prval () = fold@ (t) in ans // [x0] is alreay in the tree [t] end // end of [if] end else if sgn > 0 then let val ans = bstree_insert_atroot (tr, k0, x0) in if ans = 0 then let val tr_ = tr val+ @BSTcons (nr, _, _, trl, trr) = tr_ // end of [val] val n_ = n val nrr = bstree_size (trr) val () = tr := trl val () = n := n_ - nrr prval () = fold@ (t) val () = trl := t val () = nr := n_ + 1 prval () = fold@ (tr_) val () = t := tr_ in ans end else let prval () = fold@ (t) in ans // [k0] alreay in [t] end // end of [if] end else let (* sgn = 0 *) val x_ = x val () = x := x0 val () = x0 := x_ prval () = fold@ (t) prval () = opt_some{itm}(x0) in 1 // replaced end // end of [if] end (* end of [BSTcons] *) | ~BSTnil () => let val x0_ = x0 val () = t := BSTcons{key,itm}(1, k0, x0_, BSTnil (), BSTnil ()) prval () = opt_none{itm}(x0) in 0 // inserted end // end of [BSTnil] // end // end of [bstree_insert_atroot] fun {key:t0p ;itm:vt0p} bstree_insert_random {n:nat} .. ( t: &bstree (key, INV(itm), n) >> bstree (key, itm, n+1-i), k0: key, x0: &itm >> opt(itm, i>0) ) : #[i:nat2] int (i) = let in // case+ t of | @BSTcons ( n, k, x, tl, tr ) => let val randbit = linmap_randbst_random_m_n (1, n) // end of [val] in if randbit = 0 then let prval () = fold@ (t) in bstree_insert_atroot (t, k0, x0) end else let val sgn = compare_key_key (k0, k) in if sgn < 0 then let val ans = bstree_insert_random (tl, k0, x0) in if ans = 0 then (n := n + 1; fold@ (t); ans) else (fold@ (t); ans) end else if sgn > 0 then let val ans = bstree_insert_random (tr, k0, x0) in if ans = 0 then (n := n + 1; fold@ (t); ans) else (fold@ (t); ans) end else let // sgn = 0 val x_ = x val () = x := x0 val () = x0 := x_ prval () = opt_some {itm} (x0) in fold@ (t); 1 // [k0] is at the root of [t] end // end of [if] end // end of [if] end (* end of [BSTcons] *) | ~BSTnil () => let val x0_ = x0 val () = t := BSTcons{key,itm}(1, k0, x0_, BSTnil (), BSTnil ()) prval () = opt_none {itm} (x0) in 0 // inserted end (* end of [BSTnil] *) // end (* end of [bstree_insert_random] *) (* ****** ****** *) implement {key,itm} linmap_insert ( map, k0, x0, res ) = let val () = res := x0 val i = bstree_insert_random (map, k0, res) in if i > 0 then true else false end // end of [linmap_insert] (* ****** ****** *) fun {key:t0p ;itm:vt0p} bstree_join_random {nl,nr:nat} .. ( tl: bstree (key, INV(itm), nl), tr: bstree (key, itm, nr) ) : bstree (key, itm, nl+nr) = let in // case+ tl of // | @BSTcons ( nl, _, _, tll, tlr ) => ( case+ tr of | @BSTcons ( nr, _, _, trl, trr ) => let val n = nl + nr val randbit = linmap_randbst_random_m_n (nl, nr) // end of [val] in if randbit = 0 then let prval () = fold@ (tr) val () = tlr := bstree_join_random (tlr, tr) val () = nl := n prval () = fold@ (tl) in tl end else let prval () = fold@ tl val () = trl := bstree_join_random (tl, trl) val () = nr := n prval () = fold@ (tr) in tr end // end of [if] end (* end of [BSTcons] *) | ~BSTnil () => let val () = fold@ (tl) in tl end // end of [BSTnil] ) (* end of [BSTcons] *) // | ~BSTnil () => tr // end // end of [bstree_join_random] (* ****** ****** *) fun {key:t0p ;itm:vt0p} bstree_takeout_random {n:nat} .. ( t: &bstree (key, INV(itm), n) >> bstree (key, itm, n-i), k0: key, x0: &(itm?) >> opt (itm, i>0) ) : #[i:nat2 | i <= n] int (i) = let in // case+ t of | @BSTcons {..} {nl,nr} (n, k, x, tl, tr) => let val sgn = compare_key_key (k0, k) in if sgn < 0 then let val ans = bstree_takeout_random (tl, k0, x0) val () = n := n - ans prval () = fold@ (t) in ans end else if sgn > 0 then let val ans = bstree_takeout_random (tr, k0, x0) val () = n := n - ans prval () = fold@ (t) in ans end else let val () = x0 := x prval () = opt_some (x0) val t_new = bstree_join_random (tl, tr) val () = free@ {key,itm} {0,0} (t) val () = t := t_new in 1 (* removed *) end // end of [0] end (* end of [BSTcons] *) | BSTnil () => let prval () = opt_none {itm} (x0) in 0 // not(removed) end // end of [BSTnil] // end // end of [bstree_takeout_random] (* ****** ****** *) implement {key,itm} linmap_takeout (map, k0, res) = let val i = bstree_takeout_random (map, k0, res) in if i > 0 then true else false end // end of [linmap_takeout] (* ****** ****** *) implement {key,itm}{env} linmap_foreach_env (map, env) = let // fun aux {n:nat} .. ( t: !bstree (key, itm, n), env: &(env) >> _ ) : void = let in // case+ t of | @BSTcons ( n, k, x, tl, tr ) => let val () = aux (tl, env) val () = linmap_foreach$fwork (k, x, env) val () = aux (tr, env) prval () = fold@ (t) in // nothing end // end of [BSTcons] | BSTnil ((*void*)) => () // end // end of [aux] // fun aux2 ( t: ptr, env: &(env) >> _ ) : void = let // stadef bst = bstree0 (key, itm) // end of [stadef] val t = $UN.castvwtp0{bst}(t) val () = aux (t, env) val t = $UN.castvwtp0{ptr}(t) // in // nothing end // end of [aux2] // val map = $UN.castvwtp1{ptr}(map) // in aux2 (map, env) end // end of [linmap_foreach_env] (* ****** ****** *) implement {key,itm} linmap_freelin (map) = let // fun aux {n:nat} .. ( t: bstree (key, itm, n) ) : void = let in // case+ t of | @BSTcons ( _, k, x, tl, tr ) => let val () = linmap_freelin$clear (x) val tl = tl and tr = tr val () = free@ {..}{0,0} (t) val () = aux (tl) and () = aux (tr) in // nothing end // end of [BSTcons] | ~BSTnil ((*void*)) => () // end // end of [aux] // in $effmask_all (aux (map)) end // end of [linmap_freelin] (* ****** ****** *) implement {key,itm} linmap_free_ifnil (map) = let // vtypedef map = map (key, itm) // val map2 = __cast (map) where { extern castfn __cast : (!map >> map?) -<> map } // end of [where] // end of [val] // in // case+ map2 of | ~BSTnil () => let prval () = opt_none {map} (map) in false end // end of [BSTnil] | @BSTcons _ => let prval () = fold@ (map2) prval () = __assert (map, map2) where { extern praxi __assert : (!map? >> map, map) - void } // end of [val] prval () = opt_some {map} (map) in true end // end of [BSTcons] // end // end of [linmap_free_ifnil] (* ****** ****** *) implement {key,itm}{ki2} linmap_flistize (map) = let // vtypedef ki = @(key, itm) // fun aux {m,n:nat} .. ( t: bstree (key, itm, n), res: list_vt (ki2, m) ) : list_vt (ki2, m+n) = let in // case+ t of | ~BSTcons ( _, k, x, tl, tr ) => res where { val res = aux (tl, res) val kx2 = linmap_flistize$fopr (k, x) val res = list_vt_cons{ki2}(kx2, res) val res = aux (tr, res) } // end of [BSTcons] | ~BSTnil ((*void*)) => res // end // end of [aux] // val res = aux (map, list_vt_nil ()) // in list_vt_reverse (res) end // end of [linmap_flistize] (* ****** ****** *) (* implement {key,itm} linmap_listize1 (map) = let // vtypedef ki = @(key, itm) // fun aux {m,n:nat} .. ( t0: !bstree (key, itm, n), res: list_vt (ki, m) ) : list_vt (ki, m+n) = let in // case+ t0 of | @BSTcons ( _, k, x, tl, tr ) => res where { val res = aux (tl, res) val res = list_vt_cons{ki}((k, x), res) val res = aux (tr, res) prval ((*void*)) = fold@ (t0) } // end of [BSTcons] | BSTnil () => (res) // end // end of [aux] // val res = aux (map, list_vt_nil ()) // in list_vt_reverse (res) end // end of [linmap_listize1] *) (* ****** ****** *) implement{} linmap_randbst_initize () = ( $STDLIB.srand48 ($UN.cast{lint}($TIME.time_get())) ) // end of [linmap_randbst_initize] (* ****** ****** *) implement{} linmap_randbst_random_m_n (m, n) = let val r = $STDLIB.drand48 () in if g0i2f (m+n) * r <= g0i2f (m) then 0 else 1 end // end of [linmap_random_m_n] (* ****** ****** *) (* end of [linmap_randbst.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/funralist_nested.dats0000644000175000017500000002350213431250607023123 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2012 *) (* ****** ****** *) // // HX-2013-01: // // this data structure is essentially based on // Chris Okasaki's random-access list (formulated // as a nested datatype). However, unlike Okasaki's // formulation, [ralist] is *not* a nested datatype. // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.funralist_nested" #define ATS_DYNLOADFLAG 0 // no dynamic loading at run-time (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload _(*anon*) = "prelude/DATS/integer.dats" (* ****** ****** *) // staload "libats/SATS/funralist_nested.sats" // (* ****** ****** *) // #include "./SHARE/funralist.hats" // code reuse // (* ****** ****** *) datatype node (a:t@ype+, int(*d*)) = | N1 (a, 0) of (a) // singleton | {d:nat} N2 (a, d+1) of (node (a, d), node (a, d)) // end of [node] datatype myralist (a:t@ype+, int(*d*), int(*n*)) = | {d:nat} RAnil (a, d, 0) of () | {d:nat}{n:pos} RAevn (a, d, n+n) of myralist (a, d+1, n) | {d:nat}{n:nat} RAodd (a, d, n+n+1) of (node (a, d), myralist (a, d+1, n)) // end of [myralist] (* ****** ****** *) assume ralist_type (a:t0p, n:int) = myralist (a, 0, n) // end of [ralist_type] (* ****** ****** *) primplmnt lemma_ralist_param (xs) = let in // case+ xs of | RAevn _ => () | RAodd _ => () | RAnil () => () // end // end of [lemma_ralist_param] (* ****** ****** *) implement{} funralist_nil{a} () = RAnil{a}{0}((*void*)) implement{} funralist_make_nil{a} () = RAnil{a}{0}((*void*)) (* ****** ****** *) local extern fun cons {a:t0p}{d:nat}{n:nat} ( x0: node (a, d), xs: myralist (a, d, n) ) :<> myralist (a, d, n+1) implement cons{a}{d}{n} (x0, xs) = let in // case+ xs of | RAevn (xxs) => RAodd (x0, xxs) | RAodd (x1, xxs) => let val x0x1 = N2 (x0, x1) in RAevn (cons (x0x1, xxs)) end // end of [RAodd] | RAnil () => RAodd (x0, RAnil) // end // end of [cons] in (* in of [local] *) implement{a} funralist_cons (x, xs) = let // prval () = lemma_ralist_param (xs) // in cons{a} (N1{a}(x), xs) end // end of [funralist_cons] end // end of [local] (* ****** ****** *) implement{} funralist_is_nil (xs) = case+ xs of RAnil () => true | _ =>> false // end of [funralist_is_nil] implement{} funralist_is_cons (xs) = case+ xs of RAnil () => false | _ =>> true // end of [funralist_is_cons] (* ****** ****** *) local extern fun length {a:t0p}{d:nat}{n:nat} (xs: myralist (a, d, n)):<> int (n) implement length{a}{d}{n} (xs) = let in // case+ xs of | RAevn (xxs) => let val n2 = length (xxs) in 2 * n2 end // end of [RAevn] | RAodd (_, xxs) => let val n2 = length (xxs) in 2 * n2 + 1 end // end of [RAodd] | RAnil ((*void*)) => (0) // end // end of [length] in (* in of [local] *) implement{} funralist_length{a} (xs) = let // prval () = lemma_ralist_param (xs) // in length{a} (xs) end // end of [funralist_length] end // end of [local] (* ****** ****** *) local extern fun head {a:t0p}{d:nat}{n:pos} (xs: myralist (a, d, n)):<> node (a, d) implement head{a}{d}{n} (xs) = let in // case+ xs of | RAevn (xxs) => let val+N2 (x, _) = head (xxs) in x end // end of [RAevn] | RAodd (x, _) => x // end // end of [head] in (* in of [local] *) implement{a} funralist_head (xs) = let val+N1 (x) = head{a} (xs) in x end // end of [funralist_head] end // end of [local] (* ****** ****** *) implement{a} funralist_tail (xs) = xs1 where { var xs1 = xs val _(*hd*) = $effmask_wrt (funralist_uncons (xs1)) } // end of [funralist_tail] (* ****** ****** *) local extern fun uncons {a:t0p}{d:nat}{n:pos} ( xs: myralist (a, d, n), x: &ptr? >> node (a, d) ) : myralist (a, d, n-1) implement uncons{a}{d}{n} (xs, x) = let in // case+ xs of | RAevn (xxs) => let var nxx: ptr val xxs = uncons (xxs, nxx) val+N2 (x0, x1) = nxx prval () = topize (nxx) // HX: this is not necessary val () = x := x0 in RAodd (x1, xxs) end // end of [RAevn] | RAodd (x0, xxs) => let val () = x := x0 in case+ xxs of | RAnil () => RAnil () | _ =>> RAevn (xxs) end // end of [RAodd] // end // end of [uncons] in (* in of [local] *) implement{a} funralist_uncons (xs) = let // var nx: ptr // unintialized val () = (xs := uncons{a} (xs, nx)) val+N1 (x0) = nx prval () = topize (nx) // HX: this is not necessary // in x0 end // end of [funralist_uncons] end // end of [local] (* ****** ****** *) local extern fun get_at {a:t0p}{d:nat}{n:nat} ( xs: myralist (a, d, n), i: natLt n ) :<> node (a, d) // endfun implement get_at{a}{d}{n} (xs, i) = let in // case+ xs of | RAevn (xxs) => let val x01 = get_at (xxs, half i) in if i mod 2 = 0 then let val+N2 (x0, _) = x01 in x0 end else let val+N2 (_, x1) = x01 in x1 end // end of [if] end // end of [RAevn] | RAodd (x, xxs) => ( if i = 0 then x else let val x01 = get_at (xxs, half (i-1)) in if i mod 2 = 0 then let val+N2 (_, x1) = x01 in x1 end else let val+N2 (x0, _) = x01 in x0 end // end of [if] end // end of [if] ) // end of [RAodd] // end // end of [get_at] in (* in of [local] *) implement{a} funralist_get_at (xs, i) = let // val+N1 (x) = get_at{a} (xs, i) in x (*return*) // end // end of [funralist_get_at] implement{a} funralist_lookup = funralist_get_at end // end of [local] (* ****** ****** *) local extern fun __free (p: ptr): void = "mac#ATS_MFREE" extern fun fset_at {a:t0p}{d:nat}{n:nat} ( xs: myralist (a, d, n) , i: natLt (n), f: node (a, d) - node (a, d) ) :<> myralist (a, d, n) extern fun fset2_at {a:t0p}{d:nat}{n2:pos} ( xxs: myralist (a, d+1, n2) , i: natLt (2*n2), f: node (a, d) - node (a, d) ) :<> myralist (a, d+1, n2) implement fset_at{a}{d}{n} (xs, i, f) = let in case+ xs of | RAevn (xxs) => RAevn (fset2_at (xxs, i, f)) | RAodd (x, xxs) => if i = 0 then RAodd (f x, xxs) else RAodd (x, fset2_at (xxs, i-1, f)) // end of [RAodd] end // end of [fset_at] implement fset2_at{a}{d}{n} (xxs, i, f) = let typedef node = node (a, d+1) in // if i mod 2 = 0 then let val f1 = lam (xx: node): node = let val+N2 (x0, x1) = xx in N2 (f x0, x1) end // end of [val] val xxs = fset_at (xxs, half(i), f1) val () = $effmask_wrt (__free ($UN.cast2ptr(f1))) in xxs end else let val f1 = lam (xx: node): node = let val+N2 (x0, x1) = xx in N2 (x0, f x1) end // end of [val] val xxs = fset_at (xxs, half(i), f1) val () = $effmask_wrt (__free ($UN.cast2ptr(f1))) in xxs end // end of [if] // end // end of [fset2_at] in (* in of [local] *) implement{a} funralist_set_at (xs, i, x0) = let // typedef node = node (a, 0) // val f = lam (_: node): node = N1{a}(x0) val xs = fset_at{a} (xs, i, f) val () = $effmask_wrt (__free ($UN.cast2ptr(f))) // in xs end // end of [funralist_set_at] end // end of [local] (* ****** ****** *) local extern fun __free (p: ptr): void = "mac#ATS_MFREE" extern fun foreach{a:t0p}{d:nat}{n:nat} ( xs: myralist (a, d, n), f: node (a, d) - void ) :<> void // end of [foreach] extern fun foreach2{a:t0p}{d:nat}{n2:pos} ( xxs: myralist (a, d+1, n2), f: node (a, d) - void ) :<> void // end of [foreach2] implement foreach {a}{d}{n}(xs, f) = let in // case+ xs of | RAevn (xxs) => foreach2 (xxs, f) // end of [RAevn] | RAodd (x, xxs) => let val () = f (x) in case+ xxs of | RAnil () => () | _ =>> foreach2 (xxs, f) end // end of [RAodd] | RAnil ((*void*)) => () // end // end of [foreach] implement foreach2 {a}{d}{n2}(xxs, f) = let // typedef node = node (a, d+1) // val f1 = lam (xx: node): void = let val+N2 (x0, x1) = xx in f (x0); f (x1) end // end of [val] // val () = foreach (xxs, f1) val () = $effmask_wrt (__free ($UN.cast2ptr(f1))) // in // nothing end // end of [foreach2] in (* in of [local] *) implement{a} funralist_foreach (xs) = let var env: void = () in funralist_foreach_env (xs, env) end // end of [funralist_foreach] implement{a}{env} funralist_foreach_env (xs, env) = let // typedef node = node (a, 0) // prval () = lemma_ralist_param (xs) // val p_env = addr@ (env) // val f = lam (x0: node): void = let val+N1 (x) = x0 val ( pf, fpf | p_env ) = $UN.ptr_vtake{env}(p_env) val () = $effmask_all (funralist_foreach$fwork (x, !p_env)) prval ((*void*)) = fpf (pf) in // nothing end // end of [val] // val () = foreach (xs, f) // val () = $effmask_wrt (__free ($UN.cast2ptr(f))) // in // nothing end // end of [funralist_foreach_env] end // end of [local] (* ****** ****** *) (* end of [funralist_nested.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/gmatrix_row.dats0000644000175000017500000001630513431250607022117 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/gvector.sats" staload "libats/SATS/gmatrix.sats" staload "libats/SATS/gmatrix_row.sats" (* ****** ****** *) implement{a} gmatrow_get_at (M, ld, i, j) = let // val pij = gmatrow_getref_at (M, ld, i, j) in $UN.cptr_get (pij) // end // end of [gmatrow_get_at] implement{a} gmatrow_set_at (M, ld, i, j, x) = let // val pij = gmatrow_getref_at (M, ld, i, j) in $UN.cptr_set (pij, x) // end // end of [gmatrow_set_at] (* ****** ****** *) implement{a} gmatrow_getref_at (M, ld, i, j) = let // val p = $UN.cast2Ptr1(ptr_add (addr@M, i*ld+j)) // in $UN.ptr2cptr{a}(p) end // end of [gmatrow_getref_at] (* ****** ****** *) implement{a} gmatrow_getref_col_at {m,n}{ld}(M, ld, j) = let // val pcol = $UN.cast2Ptr1(ptr_add (addr@M, j)) // in $UN.ptr2cptr{GVT(a,m,ld)}(pcol) end // end of [gmatrow_getref_col_at] implement{a} gmatrow_getref_row_at {m,n}{ld}(M, ld, i) = let // val prow = $UN.cast2Ptr1(ptr_add (addr@M, i*ld)) // in $UN.ptr2cptr{GVT(a,n,1(*d*))}(prow) end // end of [gmatrow_getref_row_at] (* ****** ****** *) implement{a} gmatrow_interchange_row {m,n}{ld} ( M, n, ld, i1, i2 ) = let in // if i1 != i2 then let // val cp1 = gmatrow_getref_row_at (M, ld, i1) val cp2 = gmatrow_getref_row_at (M, ld, i2) // val (pf1, fpf1 | p1) = $UN.cptr_vtake (cp1) val (pf2, fpf2 | p2) = $UN.cptr_vtake (cp2) // val () = gvector_exchange (!p1, !p2, n, 1, 1) // prval () = fpf1 (pf1) and () = fpf2 (pf2) // in // nothing end else () // end of [if] // end (* end of [gmatrow_interchange_row] *) (* ****** ****** *) implement{a} gmatrow_interchange_col {m,n}{ld} ( M, m, ld, j1, j2 ) = let in // if j1 != j2 then let // val cp1 = gmatrow_getref_col_at (M, ld, j1) val cp2 = gmatrow_getref_col_at (M, ld, j2) // val (pf1, fpf1 | p1) = $UN.cptr_vtake (cp1) val (pf2, fpf2 | p2) = $UN.cptr_vtake (cp2) // val () = gvector_exchange (!p1, !p2, m, ld, ld) // prval () = fpf1 (pf1) and () = fpf2 (pf2) // in // nothing end else () // end of [if] // end (* end of [gmatrow_interchange_col] *) (* ****** ****** *) implement {a}(*tmp*) gmatrow_copyto {m,n}{ldx,ldy} ( X2, Y2, m, n, ldx, ldy ) = let // prval ( ) = __initize (Y2) where { extern praxi __initize (&GMR(a?, m, n, ldy) >> GMR(a, m, n, ldy)): void } (* end of [where] *) // end of [prval] // implement(env) gmatrow_foreachrow2$fwork (X, Y, n, env) = let prval () = gvector_uninitize (Y) in gvector_copyto (X, Y, n, 1, 1) end // end of [gmatrow_foreachrow2$fwork] // val () = gmatrow_foreachrow2 (X2, Y2, m, n, ldx, ldy) // in // nothing end // end of [gmatrow_copyto] (* ****** ****** *) implement {a}(*tmp*) gmatrow_transpto {m,n}{ldx,ldy} ( X2, Y2, m, n, ldx, ldy ) = let typedef tenv = ptr implement gmatrow_foreachrow$fwork {n} (X, n, env) = () where { // typedef tYcol = gvector(a,n,ldy) // val pY = env val () = env := ptr_succ (env) // val (pf, fpf | pY) = $UN.ptr_vtake{tYcol}(pY) // prval ( ) = gvector_uninitize{a}(!pY) val () = gvector_copyto (X, !pY, n, 1, ldy) // prval ((*void*)) = fpf (pf) // } // end of [gmatrow_foreachrow$fwork] // var env: ptr = addr@Y2 val () = gmatrow_foreachrow_env (X2, m, n, ldx, env) // prval () = gmatrix_initize{a}(Y2) // in // nothing end // end of [gmatrow_transpto] (* ****** ****** *) implement{a} gmatrow_ptr_split_2x2 (pf | p, ld, i, j) = let // val i_ld = i * ld val p01 = ptr_add (p, j ) val p10 = ptr_add (p, i_ld ) val p11 = ptr_add (p, i_ld+j) prval (pf00, pf01, pf10, pf11) = gmatrow_v_split_2x2 (pf, i, j) // in (pf00, pf01, pf10, pf11, gmatrow_v_unsplit_2x2 | p01, p10, p11) end // end of [gmatrow_ptr_split_2x2] (* ****** ****** *) implement {a}(*tmp*) gmatrow_foreachrow (M, m, n, ld) = let var env: void = () in gmatrow_foreachrow_env (M, m, n, ld, env) end // end of [gmatrix_foreachrow] (* ****** ****** *) implement {a}{env} gmatrow_foreachrow_env {m,n}{ld} (M, m, n, ld, env) = let fun loop {l:addr}{m:nat} .. ( pfM: !GMR(a, l, m, n, ld) | p: ptr l, m: int m, env: &env ) : void = let in // if m > 0 then let // prval (pfM1, pfM2) = gmatrow_v_uncons0 (pfM) val () = gmatrow_foreachrow$fwork (!p, n, env) val () = loop (pfM2 | ptr_add (p, ld), pred(m), env) prval ((*void*)) = pfM := gmatrow_v_cons0 (pfM1, pfM2) // in // nothing end else let // (* prval () = (pfM := gmatrow_v_renil0 {a,a} (pfM)) *) // in // nothing end // end of [if] // end // end of [loop] // prval () = lemma_gmatrow_param (M) // in loop (view@M | addr@M, m, env) end // end of [gmatrow_foreachrow_env] (* ****** ****** *) implement {a1,a2} gmatrow_foreachrow2 (A, B, m, n, ld1, ld2) = let var env: void = () in gmatrow_foreachrow2_env (A, B, m, n, ld1, ld2, env) end // end of [gmatrix_foreachrow2] implement {a1,a2}{env} gmatrow_foreachrow2_env {m,n}{lda,ldb} ( A, B, m, n, lda, ldb, env ) = let // fun loop {l1,l2:addr}{m:nat} .. ( pfA: !GMR(a1, l1, m, n, lda) , pfB: !GMR(a2, l2, m, n, ldb) | p1: ptr l1, p2: ptr l2, m: int m, env: &env ) : void = let in // if m > 0 then let // prval (pfA1, pfA2) = gmatrow_v_uncons0 (pfA) prval (pfB1, pfB2) = gmatrow_v_uncons0 (pfB) // val () = gmatrow_foreachrow2$fwork (!p1, !p2, n, env) // val () = loop ( pfA2, pfB2 | ptr_add (p1, lda), ptr_add (p2, ldb), pred(m), env ) (* end of [val] *) // prval () = pfA := gmatrow_v_cons0 (pfA1, pfA2) prval () = pfB := gmatrow_v_cons0 (pfB1, pfB2) // in // nothing end else let // (* prval () = (pfA := gmatrow_v_renil0 {a,a} (pfA)) prval () = (pfB := gmatrow_v_renil0 {a,a} (pfB)) *) // in // nothing end // end of [if] // end // end of [loop] // prval () = lemma_gmatrow_param (A) prval () = lemma_gmatrow_param (B) // in loop (view@A, view@B | addr@A, addr@B, m, env) end // end of [gmatrow_foreachrow2] (* ****** ****** *) (* end of [gmatrix_row.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/deqarray.dats0000644000175000017500000002451213431250607021364 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: October, 2013 *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.deqarray" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_" // prefix for external names (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/deqarray.sats" (* ****** ****** *) implement {a}(*tmp*) deqarray_make_cap (cap) = deq where { // val cap1 = succ (cap) // val A = arrayptr_make_uninitized(cap1) // val (pfat,pfgc|p) = ptr_alloc () // val (pfngc | deq) = deqarray_make_ngc__tsz{a}(pfat | p,A,cap,sizeof) // prval ((*freed*)) = mfree_gcngc_v_nullify(pfgc, pfngc) // } // end of [deqarray_make_cap] (* ****** ****** *) local // extern fun deqarray_get_size__tsz {a:vt0p}{m,n:int} ( deq: !deqarray(a, m, n), tsz: sizeof_t(a) ) :<> size_t(n) = "mac#%" // end-of-function extern fun deqarray_get_capacity__tsz {a:vt0p}{m,n:int} ( deq: !deqarray(a, m, n), tsz: sizeof_t(a) ) :<> size_t(m) = "mac#%" // end-of-function // in (* in of [local] *) // implement {a}(*tmp*) deqarray_get_size (deq) = deqarray_get_size__tsz{a}(deq, sizeof) implement {a}(*tmp*) deqarray_get_capacity (deq) = deqarray_get_capacity__tsz{a}(deq, sizeof) // end // end of [local] (* ****** ****** *) // extern fun deqarray_get_ptrbeg {a:vt0p}{m,n:int} (deq: !deqarray (a, m, n)):<> Ptr1 = "mac#%" extern fun deqarray_get_ptrend {a:vt0p}{m,n:int} (deq: !deqarray (a, m, n)):<> Ptr1 = "mac#%" // (* ****** ****** *) // extern fun deqarray_get_ptrfrnt {a:vt0p}{m,n:int} (deq: !deqarray (a, m, n)):<> Ptr1 = "mac#%" extern fun deqarray_set_ptrfrnt {a:vt0p}{m,n:int} (deq: !deqarray (a, m, n), p: ptr): void = "mac#%" // extern fun deqarray_get_ptrrear {a:vt0p}{m,n:int} (deq: !deqarray(a, m, n)):<> Ptr1 = "mac#%" extern fun deqarray_set_ptrrear {a:vt0p}{m,n:int} (deq: !deqarray(a, m, n), p: ptr): void = "mac#%" // (* ****** ****** *) // extern fun{a:vt0p} deqarray_ptr_succ {m,n:int} (deq: !deqarray (INV(a), m, n), p: ptr):<> ptr // extern fun{a:vt0p} deqarray_ptr_pred {m,n:int} (deq: !deqarray (INV(a), m, n), p: ptr):<> ptr // (* ****** ****** *) local // extern fun deqarray_ptr_succ__tsz {a:vt0p}{m,n:int} ( !deqarray(INV(a), m, n) , p0: ptr, tsz: sizeof_t(a) ) :<> ptr = "mac#%" // end-of-function extern fun deqarray_ptr_pred__tsz {a:vt0p}{m,n:int} ( !deqarray(INV(a), m, n) , p0: ptr, tsz: sizeof_t(a) ) :<> ptr = "mac#%" // end-of-function // in (* in of [local] *) // implement {a}(*tmp*) deqarray_ptr_succ (deq, p0) = deqarray_ptr_succ__tsz{a}(deq, p0, sizeof) implement {a}(*tmp*) deqarray_ptr_pred (deq, p0) = deqarray_ptr_pred__tsz{a}(deq, p0, sizeof) // end // end of [local] (* ****** ****** *) local // extern fun deqarray_is_full__tsz {a:vt0p}{m,n:int} ( !deqarray(INV(a), m, n), sizeof_t(a) ) :<> bool (m==n) = "mac#%" // endfun // in (* in of [local] *) // implement {a}(*tmp*) deqarray_is_full (deq) = deqarray_is_full__tsz{a}(deq, sizeof) // implement {a}(*tmp*) deqarray_isnot_full(deq) = let // prval () = lemma_deqarray_param(deq) // in not(deqarray_is_full__tsz{a}(deq, sizeof)) end // end of [deqarray_isnot_full] // end // end of [local] (* ****** ****** *) implement {a}(*tmp*) deqarray_insert_atbeg {m,n}(deq, x0) = let // val p_rear = deqarray_get_ptrrear{a}(deq) val p1_rear = deqarray_ptr_pred(deq, p_rear) // val ((*void*)) = $UN.ptr0_set(p1_rear, x0) val ((*void*)) = deqarray_set_ptrrear{a}(deq, p1_rear) // prval () = __assert(deq) where { extern praxi __assert (!deqarray(a, m, n) >> deqarray(a, m, n+1)): void } (* end of [prval] *) // in // nothing end // end of [deqarray_insert_atbeg] implement {a}(*tmp*) deqarray_insert_atbeg_opt (deq, x0) = let // val isnot = deqarray_isnot_full(deq) // in // if isnot then let val () = deqarray_insert_atbeg(deq, x0) in None_vt() end // end of [then] else Some_vt{a}(x0) // end of [else] // end // end of [deqarray_insert_atbeg_opt] (* ****** ****** *) implement {a}(*tmp*) deqarray_insert_atend {m,n} (deq, x0) = let // val p_frnt = deqarray_get_ptrfrnt{a}(deq) val ((*void*)) = $UN.ptr0_set(p_frnt, x0) val ((*void*)) = deqarray_set_ptrfrnt{a}(deq, deqarray_ptr_succ(deq, p_frnt)) // prval () = __assert (deq) where { extern praxi __assert (!deqarray(a, m, n) >> deqarray(a, m, n+1)): void } (* end of [prval] *) // in // nothing end // end of [deqarray_insert_atend] implement {a}(*tmp*) deqarray_insert_atend_opt (deq, x0) = let // val isnot = deqarray_isnot_full(deq) // in // if isnot then let val () = deqarray_insert_atend(deq, x0) in None_vt() end // end of [then] else Some_vt{a}(x0) // end of [else] // end // end of [deqarray_insert_atend_opt] (* ****** ****** *) implement {a}(*tmp*) deqarray_takeout_atbeg {m,n} (deq) = (x0) where { // val p_rear = deqarray_get_ptrrear{a}(deq) // val ( pf, fpf | p ) = $UN.ptr0_vtake{a}(p_rear) val x0 = !p prval () = $UN.castview0((fpf, pf)) // val ((*void*)) = deqarray_set_ptrrear{a} (deq, deqarray_ptr_succ(deq, p_rear)) // prval () = __assert (deq) where { extern praxi __assert(!deqarray(a, m, n) >> deqarray(a, m, n-1)): void } (* end of [where] *) // end of [prval] // } (* end of [deqarray_takeout_atbeg] *) (* ****** ****** *) implement {a}(*tmp*) deqarray_takeout_atbeg_opt (deq) = let // val isnot = deqarray_isnot_nil{a}(deq) // in // if isnot then let val x0 = deqarray_takeout_atbeg(deq) in Some_vt{a}(x0) end // end of [then] else None_vt((*void*)) // end of [else] // end // end of [deqarray_takeout_atbeg_opt] (* ****** ****** *) implement {a}(*tmp*) deqarray_takeout_atend {m,n}(deq) = (x0) where { // val p_frnt = deqarray_get_ptrfrnt{a}(deq) val p1_frnt = deqarray_ptr_pred(deq, p_frnt) // val ( pf, fpf | p ) = $UN.ptr0_vtake{a}(p1_frnt) val x0 = !p prval () = $UN.castview0((fpf, pf)) // val () = deqarray_set_ptrfrnt{a}(deq, p1_frnt) // prval () = __assert(deq) where { // extern praxi __assert(!deqarray(a, m, n) >> deqarray(a, m, n-1)): void // } (* end of [where] *) // end of [prval] // } (* end of [deqarray_takeout_atend] *) (* ****** ****** *) implement {a}(*tmp*) deqarray_takeout_atend_opt (deq) = let // val isnot = deqarray_isnot_nil{a}(deq) // in // if isnot then let val x0 = deqarray_takeout_atend(deq) in Some_vt{a}(x0) end else None_vt((*void*)) // end // end of [deqarray_takeout_atend_opt] (* ****** ****** *) implement {a}(*tmp*) deqarray_get_at (deq, i) = ( $UN.cptr_get(deqarray_getref_at(deq, i)) ) (* end of [deqarray_get_at] *) implement {a}(*tmp*) deqarray_set_at (deq, i, x) = ( $UN.cptr_set(deqarray_getref_at(deq, i), x) ) (* end of [deqarray_set_at] *) (* ****** ****** *) local // extern fun deqarray_getref_at__tsz {a:vt0p}{m,n:int} ( deq: !deqarray(a, m, n), i: sizeLt(n), tsz: sizeof_t(a) ) :<> cPtr1(a) = "mac#%" // end-of-fun // in (* in of [local] *) // implement {a}(*tmp*) deqarray_getref_at (deq, i) = deqarray_getref_at__tsz{a}(deq, i, sizeof) // end // end of [local] (* ****** ****** *) implement {a}(*tmp*) fprint_deqarray (out, deq) = let // typedef tenv = int // implement deqarray_foreach$fwork (x, env) = let // val n0 = env val () = if n0 > 0 then fprint_deqarray$sep<>(out) val () = env := n0 + 1 // in fprint_ref(out, x) end // end of [deqarray_foreach$fwork] // var env: tenv = 0 val ((*void*)) = deqarray_foreach_env(deq, env) // in // nothing end // end of [fprint_deqarray] (* ****** ****** *) // implement {}(*tmp*) fprint_deqarray$sep (out) = fprint_string(out, ", ") // (* ****** ****** *) implement {a}(*tmp*) fprint_deqarray_sep (out, deq, sep) = let // implement fprint_deqarray$sep<> (out) = fprint_string( out, sep ) // in fprint_deqarray(out, deq) end // end of [fprint_deqarray_sep] (* ****** ****** *) implement {a}{env} deqarray_foreach$cont(x, env) = true (* ****** ****** *) implement {a}(*tmp*) deqarray_foreach(deq) = let // var env: void = () in deqarray_foreach_env(deq, env) // end // end of [deqarray_foreach] (* ****** ****** *) implement {a}{env} deqarray_foreach_env (deq, env) = let // fun foreach ( p0: ptr, p1: ptr, env: &env ) : void = let in // if p0 < p1 then let val ( pf, fpf | p0 ) = $UN.ptr_vtake{a}(p0) val cont = deqarray_foreach$cont(!p0, env) prval ((*returned*)) = fpf(pf) in if cont then let val ( pf, fpf | p0 ) = $UN.ptr_vtake{a}(p0) val () = deqarray_foreach$fwork(!p0, env) prval () = fpf (pf) in foreach(ptr_succ(p0), p1, env) end // end of [then] else () // end of [else] // end of [if] end // end of [then] else () // end of [else] // end // end of [foreach] // val p_frnt = deqarray_get_ptrfrnt{a}(deq) val p_rear = deqarray_get_ptrrear{a}(deq) // in // if p_frnt > p_rear then foreach(p_rear, p_frnt, env) else let val p_beg = deqarray_get_ptrbeg{a}(deq) val p_end = deqarray_get_ptrend{a}(deq) in foreach(p_rear, p_end, env); foreach(p_beg, p_frnt, env) end // end of [else] // end // end of [deqarray_foreach_env] (* ****** ****** *) (* end of [deqarray.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/linset_listord.dats0000644000175000017500000002262313431250607022613 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2013 *) (* ****** ****** *) // // HX-2013-08: // a set is represented as a sorted list in descending order; // note that descending order is chosen to faciliate set comparison // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/linset_listord.sats" (* ****** ****** *) #include "./SHARE/linset.hats" // code reuse #include "./SHARE/linset_node.hats" // code reuse (* ****** ****** *) assume set_vtype (elt:t@ype) = List0_vt (elt) (* ****** ****** *) implement{} linset_nil () = list_vt_nil () implement{} linset_make_nil () = list_vt_nil () (* ****** ****** *) implement {a}(*tmp*) linset_sing (x) = list_vt_cons{a}(x, list_vt_nil) // end of [linset_sing] implement{a} linset_make_sing (x) = list_vt_cons{a}(x, list_vt_nil) // end of [linset_make_sing] (* ****** ****** *) implement{} linset_is_nil (xs) = list_vt_is_nil (xs) implement{} linset_isnot_nil (xs) = list_vt_is_cons (xs) (* ****** ****** *) implement{a} linset_size (xs) = let val n = list_vt_length(xs) in i2sz(n) end // end of [linset_size] (* ****** ****** *) implement{a} linset_is_member (xs, x0) = let // fun aux {n:nat} .. ( xs: !list_vt (a, n) ) :<> bool = let in // case+ xs of | list_vt_cons (x, xs) => let val sgn = compare_elt_elt (x0, x) in if sgn > 0 then false else (if sgn < 0 then aux (xs) else true) end // end of [list_vt_cons] | list_vt_nil ((*void*)) => false // end // end of [aux] // in aux (xs) end // end of [linset_is_member] (* ****** ****** *) implement{a} linset_copy (xs) = list_vt_copy (xs) implement{a} linset_free (xs) = list_vt_free (xs) (* ****** ****** *) implement{a} linset_insert (xs, x0) = let // fun mynode_cons {n:nat} .<>. ( nx: mynode1 (a), xs: list_vt (a, n) ) : list_vt (a, n+1) = let // val xs1 = $UN.castvwtp0{List1_vt(a)}(nx) val+@list_vt_cons (_, xs2) = xs1 prval () = $UN.cast2void (xs2); val () = (xs2 := xs) // in fold@ (xs1); xs1 end // end of [mynode_cons] // fun ins {n:nat} .. // tail-recursive ( xs: &list_vt (a, n) >> list_vt (a, n1) ) : #[n1:nat | n <= n1; n1 <= n+1] bool = ( case+ xs of | @list_vt_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x) // end of [val] in if sgn > 0 then let prval () = fold@ (xs) val nx = mynode_make_elt (x0) val ((*void*)) = xs := mynode_cons (nx, xs) in false end else if sgn < 0 then let val ans = ins (xs1) prval () = fold@ (xs) in ans end else let // [x0] is found prval () = fold@ (xs) in true (* [x0] in [xs] *) end (* end of [if] *) end // end of [list_vt_cons] | list_vt_nil () => let val nx = mynode_make_elt (x0) val ((*void*)) = xs := mynode_cons (nx, xs) in false end // end of [list_vt_nil] ) (* end of [ins] *) // in $effmask_all (ins (xs)) end // end of [linset_insert] (* ****** ****** *) (* // HX-2013-08: [linset_remove] moved up // implement{a} linset_remove (xs, x0) = let // fun rem {n:nat} .. // tail-recursive ( xs: &list_vt (a, n) >> list_vt (a, n1) ) : #[n1:nat | n1 <= n; n <= n1+1] bool = ( case+ xs of | @list_vt_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x) // end of [val] in if sgn > 0 then let prval () = fold@ (xs) in false end else if sgn < 0 then let val ans = rem (xs1) prval () = fold@ (xs) in ans end else let // x0 = x val xs1_ = xs1 val ((*void*)) = free@{a}{0}(xs) val () = xs := xs1_ in true // [x0] in [xs] end (* end of [if] *) end // end of [list_vt_cons] | list_vt_nil () => false ) (* end of [rem] *) // in $effmask_all (rem (xs)) end // end of [linset_remove] *) (* ****** ****** *) (* ** By Brandon Barker *) implement {a}(*tmp*) linset_choose (xs, x0) = let in // case+ xs of | list_vt_cons (x, xs1) => let val () = x0 := x prval () = opt_some{a}(x0) in true end // end of [list_vt_cons] | list_vt_nil () => let prval () = opt_none{a}(x0) in false end // end of [list_vt_nil] // end // end of [linset_choose] (* ****** ****** *) implement {a}{env} linset_foreach_env (xs, env) = let // implement list_vt_foreach$fwork (x, env) = linset_foreach$fwork (x, env) // in list_vt_foreach_env (xs, env) end // end of [linset_foreach_env] (* ****** ****** *) implement{a} linset_listize (xs) = xs (* ****** ****** *) implement{a} linset_listize1 (xs) = list_vt_copy (xs) (* ****** ****** *) // // HX: functions for processing mynodes // (* ****** ****** *) implement{ } mynode_null{a} () = $UN.castvwtp0{mynode(a,null)}(the_null_ptr) // end of [mynode_null] (* ****** ****** *) implement {a}(*tmp*) mynode_make_elt (x) = let // val nx = list_vt_cons{a}{0}(x, _ ) // in $UN.castvwtp0{mynode1(a)}(nx) end // end of [mynode_make_elt] (* ****** ****** *) implement{ } mynode_free {a}(nx) = () where { val nx = $UN.castvwtp0{List1_vt(a)}(nx) // val+~list_vt_cons (_, nx2) = nx // prval ((*void*)) = $UN.cast2void (nx2) // } (* end of [mynode_free] *) (* ****** ****** *) implement {a}(*tmp*) mynode_get_elt (nx) = (x) where { // val nx1 = $UN.castvwtp1{List1_vt(a)}(nx) // val+list_vt_cons (x, _) = nx1 // prval ((*void*)) = $UN.cast2void (nx1) // } (* end of [mynode_get_elt] *) (* ****** ****** *) implement {a}(*tmp*) mynode_set_elt {l} (nx, x0) = { // val nx1 = $UN.castvwtp1{List1_vt(a)}(nx) // val+@list_vt_cons (x, _) = nx1 // val () = x := x0 // prval () = fold@ (nx1) prval () = $UN.cast2void (nx1) // prval () = __assert (nx) where { extern praxi __assert (nx: !mynode(a?, l) >> mynode (a, l)): void } (* end of [prval] *) // } (* end of [mynode_set_elt] *) (* ****** ****** *) implement {a}(*tmp*) mynode_getfree_elt (nx) = (x) where { // val nx = $UN.castvwtp0{List1_vt(a)}(nx) // val+~list_vt_cons (x, nx2) = nx // prval ((*void*)) = $UN.cast2void (nx2) // } (* end of [mynode_getfree_elt] *) (* ****** ****** *) (* fun{a:t0p} linset_takeout_ngc (set: &set(INV(a)) >> _, x0: a): mynode0 (a) // end of [linset_takeout_ngc] *) implement {a}(*tmp*) linset_takeout_ngc (set, x0) = let // fun takeout ( xs: &List0_vt (a) >> _ ) : mynode0(a) = let in // case+ xs of | @list_vt_cons (x, xs1) => let prval pf_x = view@x prval pf_xs1 = view@xs1 val sgn = compare_elt_elt (x0, x) // end of [val] in if sgn > 0 then let prval () = fold@ (xs) in mynode_null{a}((*void*)) end else if sgn < 0 then let val res = takeout (xs1) prval ((*void*)) = fold@ (xs) in res end else let // x0 = x val xs1_ = xs1 val res = $UN.castvwtp0{mynode1(a)}((pf_x, pf_xs1 | xs)) val () = xs := xs1_ in res // [x0] in [xs] end (* end of [if] *) end // end of [list_vt_cons] | list_vt_nil () => mynode_null{a}((*void*)) // end (* end of [takeout] *) // in $effmask_all (takeout (set)) end // end of [linset_takeout_ngc] (* ****** ****** *) implement {a}(*tmp*) linset_takeoutmax_ngc (xs) = let in // case+ xs of | @list_vt_cons (x, xs1) => let prval pf_x = view@x prval pf_xs1 = view@xs1 val xs_ = xs val () = xs := xs1 in $UN.castvwtp0{mynode1(a)}((pf_x, pf_xs1 | xs_)) end // end of [list_vt_cons] | @list_vt_nil () => let prval () = fold@ (xs) in mynode_null{a}((*void*)) end // end of [list_vt_nil] // end // end of [linset_takeoutmax_ngc] (* ****** ****** *) implement {a}(*tmp*) linset_takeoutmin_ngc (xs) = let // fun unsnoc {n:pos} .. ( xs: &list_vt (a, n) >> list_vt (a, n-1) ) : mynode1 (a) = let // val+@list_vt_cons (x, xs1) = xs // prval pf_x = view@x and pf_xs1 = view@xs1 // in // case+ xs1 of | list_vt_cons _ => let val res = unsnoc(xs1) in fold@xs; res end // end of [list_vt_cons] | list_vt_nil () => let val xs_ = xs val () = xs := list_vt_nil{a}() in $UN.castvwtp0{mynode1(a)}((pf_x, pf_xs1 | xs_)) end // end of [list_vt_nil] // end // end of [unsnoc] // in // case+ xs of | list_vt_cons _ => unsnoc (xs) | list_vt_nil () => mynode_null{a}((*void*)) // end // end of [linset_takeoutmin_ngc] (* ****** ****** *) (* end of [linset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/linmap_skiplist.dats0000644000175000017500000005046213431250607022761 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linmap_skiplist" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_" // prefix for external names (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/linmap_skiplist.sats" (* ****** ****** *) #include "./SHARE/linmap.hats" // code reuse (* ****** ****** *) stadef mytkind = $extkind"atslib_linmap_skiplist" (* ****** ****** *) // %{^ // #include // // HX: it is in stdlib.h // extern void srand48 (long int); // %} typedef time_t = $extype"time_t" // (* ****** ****** *) implement linmap_skiplist_initize ((*void*)) = let // val seed = $extfcall (time_t, "time", 0) // in $extfcall (void, "srand48", seed) end // end of [linmap_skiplist_initize] (* ****** ****** *) #define lgMAX 40 // HX: 2^40 >= 10^12 (* ****** ****** *) extern fun linmap_random_lgN {n:int | n >= 1} (lgMAX: int(n)): intBtwe(1, n) // end of [linmap_random_lgN] (* ****** ****** *) abstype sknode_type ( key:t@ype, itm:vt@ype+, l:addr, n:int ) = ptr (l) // end of [sknode_type] (* ****** ****** *) stadef sknode = sknode_type // HX: a shorthand (* ****** ****** *) typedef sknode0 ( key:t0p , itm:vt0p , n:int ) = [l:addr] sknode (key, itm, l, n) typedef sknode0 ( key:t0p , itm:vt0p ) = [l:addr;n:nat] sknode (key, itm, l, n) (* ****** ****** *) typedef sknode1 ( key:t0p , itm:vt0p , n:int ) = [l:agz] sknode (key, itm, l, n) typedef sknode1 ( key:t0p , itm:vt0p ) = [l:agz;n:nat] sknode (key, itm, l, n) (* ****** ****** *) typedef sknodeGt0 ( key:t0p, itm:vt0p, ni:int ) = [n:int | n > ni] sknode0 (key, itm, n) (* ****** ****** *) extern castfn sknode2ptr {key:t0p;itm:vt0p}{l:addr}{n:int} (nx: sknode (key, INV(itm), l, n)):<> ptr (l) // end of [sknode2ptr] (* ****** ****** *) #define nullp the_null_ptr (* ****** ****** *) extern fun{ } sknode_null {key:t0p;itm:vt0p} {n:nat} (n: int n):<> sknode (key, itm, null, n) implement{} sknode_null (n) = $UN.castvwtp0 (nullp) (* ****** ****** *) extern fun {key:t0p ;itm:vt0p} sknode_make {lgN:int | lgN > 0} (k0: key, x0: itm, lgN: int lgN): sknode1 (key, itm, lgN) // end of [sknode_make] extern fun {key:t0p ;itm:vt0p} sknode_free {lgN:int | lgN > 0} (nx: sknode1 (key, INV(itm), lgN), res: &itm? >> itm): void // end of [sknode_free] (* ****** ****** *) extern fun{ key:t0p;itm:vt0p } sknode_get_key (nx: sknode1 (key, INV(itm))):<> key extern fun{ key:t0p;itm:vt0p } sknode_getref_item (nx: sknode1 (key, INV(itm))):<> cPtr1 (itm) (* ****** ****** *) // abstype sknodelst_type (key:t@ype, itm:vt@ype+, int(*size*)) = ptr // (* ****** ****** *) stadef sknodelst = sknodelst_type // HX: a shorthand (* ****** ****** *) // // HX: initized with nulls // extern fun{} sknodelst_make {key:t0p;itm:vt0p}{n:nat} (n: int n): sknodelst (key, itm, n) // end of [sknodelst_make] (* ****** ****** *) // extern fun{} sknodelst_get_at {key:t0p;itm:vt0p} {n:int}{i:nat | i < n} (nxa: sknodelst (key, INV(itm), n), i: int i):<> sknodeGt0 (key, itm, i) // end of [sknodelst_get_at] extern fun{} sknodelst_set_at {key:t0p;itm:vt0p} {n:int}{i:nat | i < n} ( nxa: sknodelst (key, INV(itm), n), i: int i, nx0: sknodeGt0 (key, itm, i) ) : void // end of [sknodelst_set_at] // overload [] with sknodelst_get_at overload [] with sknodelst_set_at // (* ****** ****** *) extern fun{ key:t0p;itm:vt0p } sknode_get_sknodelst{n:nat} (nx: sknode1 (key, INV(itm), n)) :<> sknodelst (key, itm, n) // end of [sknode_get_sknodelst] extern fun{ key:t0p;itm:vt0p } sknode_get_sknodelen{n:nat} (nx: sknode1 (key, INV(itm), n)):<> int (n) (* ****** ****** *) // // HX: internal representation of a sknode // vtypedef sknode_struct ( key: t0p, itm: vt0p ) = // sknode_struct @{ key= key, item=itm, sknodelst=ptr, sknodelen= int } (* end of [sknode_struct] *) (* ****** ****** *) implement {key,itm} sknode_make {lgN} ( k0, x0, lgN ) = let vtypedef VT = sknode_struct (key, itm) val (pfat, pfgc | p) = ptr_alloc () val () = p->key := k0 val () = p->item := $UN.castvwtp0{itm?}{itm}(x0) val () = p->sknodelst := $UN.cast{ptr}(sknodelst_make(lgN)) val () = p->sknodelen := lgN in $UN.castvwtp0 {sknode1(key,itm,lgN)}((pfat, pfgc | p)) end // end of [sknode_make] (* ****** ****** *) implement {key,itm} sknode_free (nx, res) = let // vtypedef VT = sknode_struct (key, itm) // val ( pfat, pfgc | p ) = __cast (nx) where { extern castfn __cast ( nx: sknode1 (key, itm) ) :<> [l:addr] (VT @ l, mfree_gc_v l | ptr l) } // end of [prval] // val () = res := p->item val ( ) = $extfcall (void, "ATS_MFREE", p->sknodelst) val () = ptr_free {VT?} (pfgc, pfat | p) // in // nothing end // end of [sknode_free] (* ****** ****** *) extern castfn __cast_sknode {key:t0p;itm:vt0p} ( nx: sknode1 (key, INV(itm)) ) :<> [l:addr] ( sknode_struct (key, itm) @ l , sknode_struct (key, itm) @ l - void | ptr l ) // end of [__cast_sknode] (* ****** ****** *) implement {key,itm} sknode_get_key (nx) = let // val (pf, fpf | p) = __cast_sknode (nx) val key = p->key prval () = fpf (pf) // in key end // end of [sknode_get_key] implement {key,itm} sknode_getref_item (nx) = let // val (pf, fpf | p) = __cast_sknode (nx) val p2 = addr@(p->item) prval () = fpf (pf) // in $UN.cast{cPtr1(itm)}(p2) end // end of [sknode_getref_item] implement {key,itm} sknode_get_sknodelst {n} (nx) = let // val (pf, fpf | p) = __cast_sknode (nx) val nxa = p->sknodelst prval () = fpf (pf) // in $UN.cast{sknodelst(key,itm,n)}(nxa) end // end of [sknode_get_sknodelst] implement {key,itm} sknode_get_sknodelen {n} (nx) = let // val (pf, fpf | p) = __cast_sknode (nx) val len = p->sknodelen prval () = fpf (pf) // in $UN.cast{int(n)}(len) end // end of [sknode_get_sknodelen] (* ****** ****** *) local assume sknodelst_type (key:t0p, itm:vt0p, n:int) = arrayref (ptr, n) // end of [sknodelst_type] in (* in of [local] *) implement{} sknodelst_make (n) = let val asz = i2sz(n) in arrayref_make_elt (asz, nullp) end // end of [sknodelst] implement{} sknodelst_get_at {key,itm}{i} (nxa, i) = let typedef T = sknodeGt0 (key, itm, i) val nx0 = $effmask_ref (arrayref_get_at (nxa, i)) in $UN.cast{T}(nx0) end // end of [sknodelst_get_at] implement{} sknodelst_set_at {key,itm}{i} (nxa, i, nx0) = let val nx0 = $UN.cast{ptr} (nx0) in $effmask_ref (arrayref_set_at (nxa, i, nx0)) end // end of [sknodelst_set_at] end // end of [local] (* ****** ****** *) extern fun{ key:t0p;itm:vt0p } sknode_get_next {n:int}{ni:nat | ni < n} (nx: sknode1 (key, INV(itm), n), ni: int ni):<> sknodeGt0 (key, itm, ni) // end of [sknode_get_next] extern fun{ key:t0p;itm:vt0p } sknode_set_next {n,n1:int}{ni:nat | ni < n} ( nx: sknode1 (key, INV(itm), n), ni: int ni, nx0: sknodeGt0 (key, itm, ni) ) : void // end of [sknode_set_next] (* ****** ****** *) implement {key,itm} sknode_get_next (nx, ni) = let val nxa = sknode_get_sknodelst (nx) in nxa[ni] end // end of [sknode_get_next] implement {key,itm} sknode_set_next (nx, ni, nx0) = let val nxa = sknode_get_sknodelst (nx) in nxa[ni] := nx0 end // end of [sknode_set_next] (* ****** ****** *) datavtype skiplist ( key:t@ype, itm:vt@ype+ ) = // HX: [lgN] is the *current* highest level | {N:nat}{lgN:nat | lgN <= lgMAX} SKIPLIST (key, itm) of (size_t(N), int(lgN), sknodelst(key, itm, lgMAX)) // end of [skiplist] (* ****** ****** *) assume map_vtype (key:t0p, itm:vt0p) = skiplist (key, itm) // end of [map_vtype] (* ****** ****** *) implement{} linmap_make_nil () = SKIPLIST (i2sz(0), 0, sknodelst_make (lgMAX)) // end of [linmap_make_nil] (* ****** ****** *) implement{} linmap_is_nil (map) = let // val+SKIPLIST (N, _, _) = map // in if N = i2sz(0) then true else false end // end of [linmap_is_nil] implement{} linmap_isnot_nil (map) = let // val+SKIPLIST (N, _, _) = map // in if N > i2sz(0) then true else false end // end of [linmap_isnot_nil] (* ****** ****** *) implement {key,itm} linmap_size (map) = let val+SKIPLIST (N, _, _) = map in N end // end of [linmap_size] (* ****** ****** *) // // HX: // for [sknode_search] to be called, k0 > the key contained in it // extern fun{ key:t0p;itm:vt0p } sknode_search {n:int} (nx: sknode1 (key, INV(itm), n), k0: key, ni: natLte n):<> sknode0 (key, itm) // end of [sknode_search] extern fun{ key:t0p;itm:vt0p } sknodelst_search {n:int} (nxa: sknodelst (key, INV(itm), n), k0: key, ni: natLte n):<> sknode0 (key, itm) // end of [sknodelst_search] // (* ****** ****** *) implement {key,itm} sknode_search (nx, k0, ni) = let in // if ni > 0 then let val ni1 = pred(ni) val nx1 = sknode_get_next (nx, ni1) val p_nx1 = sknode2ptr (nx1) in // if p_nx1 > 0 then let val k1 = sknode_get_key (nx1) val sgn = compare_key_key (k0, k1) in if sgn < 0 then sknode_search (nx, k0, ni1) else if sgn > 0 then sknode_search (nx1, k0, ni) else nx1 // end of [if] end else sknode_search (nx, k0, ni1) // end of [if] // end else sknode_null (0) // end // end of [sknode_search] (* ****** ****** *) implement {key,itm} sknodelst_search (nxa, k0, ni) = let in // if ni > 0 then let val ni1 = pred(ni) val nx = nxa[ni1] val p_nx = sknode2ptr (nx) in if p_nx > 0 then let val k = sknode_get_key (nx) val sgn = compare_key_key (k0, k) in if sgn < 0 then sknodelst_search (nxa, k0, ni1) else if sgn > 0 then sknode_search (nx, k0, ni) else nx // end of [if] end else sknodelst_search (nxa, k0, ni1) // end of [if] end else sknode_null (0) // end of [if] // end // end of [sknodelst_search] (* ****** ****** *) implement {key,itm} linmap_search_ref (map, k0) = let in // case+ map of | SKIPLIST (N, lgN, nxa) => let val nx = sknodelst_search (nxa, k0, lgN) val p_nx = sknode2ptr (nx) in if p_nx > 0 then sknode_getref_item (nx) else cptr_null () // end of [if] end // end of [SKIPLIST] // end // end of [linmap_search_ref] (* ****** ****** *) // // HX: // for [sknode_insert] to be called, k0 > the key contained in it // extern fun{ key:t0p;itm:vt0p } sknode_insert {n:int}{ni:nat | ni <= n} ( nx: sknode1 (key, INV(itm), n), k0: key, ni: int ni, nx0: sknode1 (key, itm) ) : void // end of [sknode_insert] extern fun{ key:t0p;itm:vt0p } sknodelst_insert {n:int}{ni:nat | ni <= n} ( nxa: sknodelst (key, INV(itm), n), k0: key, ni: int ni, nx0: sknode1 (key, itm) ) : void // end of [sknodelst_insert] // (* ****** ****** *) implement {key,itm} sknode_insert (nx, k0, ni, nx0) = let in // if ni > 0 then let val ni1 = pred(ni) val nx1 = sknode_get_next (nx, ni1) val p_nx1 = sknode2ptr (nx1) in if p_nx1 > 0 then let val k1 = sknode_get_key (nx1) val sgn = compare_key_key (k0, k1) in if sgn <= 0 then let val n0 = sknode_get_sknodelen (nx0) val () = if (n0 >= ni) then { val () = sknode_set_next (nx, ni1, nx0) val () = sknode_set_next (nx0, ni1, nx1) } // end of [if] // end of [val] in sknode_insert (nx, k0, ni1, nx0) end else sknode_insert (nx1, k0, ni, nx0) // end of [if] end else let val n0 = sknode_get_sknodelen (nx0) val () = if (n0 >= ni) then sknode_set_next (nx, ni1, nx0) // end of [val] in sknode_insert (nx, k0, ni1, nx0) end // end of [if] end else ( // nothing ) // end of [if] // end // end of [sknode_insert] (* ****** ****** *) implement {key,itm} sknodelst_insert (nxa, k0, ni, nx0) = let in // if ni > 0 then let val ni1 = pred(ni) val nx = nxa[ni1] val p_nx = sknode2ptr (nx) in if p_nx > 0 then let val k = sknode_get_key (nx) val sgn = compare_key_key (k0, k) in if sgn <= 0 then let val n0 = sknode_get_sknodelen (nx0) val () = if (n0 >= ni) then { val () = nxa[ni1] := nx0 val () = sknode_set_next (nx0, ni1, nx) } // end of [if] // end of [val] in sknodelst_insert (nxa, k0, ni1, nx0) end else sknode_insert (nx, k0, ni, nx0) // end of [if] end else let val n0 = sknode_get_sknodelen (nx0) val () = if (n0 >= ni) then nxa[ni1] := nx0 in sknodelst_insert (nxa, k0, ni1, nx0) end // end of [if] end else ( // nothing ) // end of [if] // end // end of [sknodelst_insert] (* ****** ****** *) implement {key,itm} linmap_insert (map, k0, x0, res) = let // val p_itm = linmap_search_ref (map, k0) val isnot = cptr2ptr(p_itm) > 0 // in // if isnot then let val (pf, fpf | p_itm) = $UN.cptr_vtake (p_itm) val () = res := !p_itm prval () = opt_some{itm}(res) val () = (!p_itm := x0) prval () = fpf (pf) in true end else let val () = linmap_insert_any (map, k0, x0) prval () = opt_none{itm}(res) in false end // end of [if] // end // end of [linmap_insert] (* ****** ****** *) implement {key,itm} linmap_insert_any (map, k0, x0) = let // val lgN0 = linmap_random_lgN (lgMAX) val nx_new = sknode_make (k0, x0, lgN0) // in // case+ map of | @SKIPLIST (N, lgN, nxa) => let val () = N := succ (N) val () = ( if :( lgN: natLte (lgMAX) ) => (lgN < lgN0) then lgN := lgN0 // end of [if] ) : void // end of [val] val () = sknodelst_insert (nxa, k0, lgN0, nx_new) prval () = pridentity_vt (lgN) // for opening the type of [lgN] prval () = fold@ (map) in // nothing end // end of [SKIPLIST] // end // end of [linmap_insert_any] (* ****** ****** *) // // HX: // for [sknode_takeout] to be called, k0 > the key contained in it // extern fun{ key:t0p;itm:vt0p } sknode_takeout {n:int}{ni:nat | ni <= n} (nx: sknode1 (key, INV(itm), n), k0: key, ni: int ni): sknodeGt0 (key, itm, 0) // end of [sknode_takeout] extern fun{ key:t0p;itm:vt0p } sknodelst_takeout {n:int}{ni:nat | ni <= n} (nxa: sknodelst (key, INV(itm), n), k0: key, ni: int ni): sknodeGt0 (key, itm, 0) // end of [sknodelst_takeout] // (* ****** ****** *) implement {key,itm} sknode_takeout (nx, k0, ni) = let in // if ni > 0 then let val ni1 = pred(ni) val nx1 = sknode_get_next (nx, ni1) val p_nx1 = sknode2ptr (nx1) in if p_nx1 > 0 then let val k1 = sknode_get_key (nx1) val sgn = compare_key_key (k0, k1) in if sgn < 0 then sknode_takeout (nx, k0, ni1) else if sgn > 0 then sknode_takeout (nx1, k1, ni) else let // sgn = 0 val () = sknode_set_next (nx, ni1, sknode_get_next (nx1, ni1)) // end of [val] in if ni1 > 0 then sknode_takeout (nx, k0, ni1) else nx1 end // end of [if] end else sknode_takeout (nx, k0, ni1) // end of [if] end else sknode_null (1) // end of [of] // end // end of [sknode_takeout] (* ****** ****** *) implement {key,itm} sknodelst_takeout (nxa, k0, ni) = let in // if ni > 0 then let val ni1 = pred(ni) val nx = nxa[ni1] val p_nx = sknode2ptr (nx) in if p_nx > 0 then let val k = sknode_get_key (nx) val sgn = compare_key_key (k0, k) in if sgn < 0 then sknodelst_takeout (nxa, k0, ni1) else if sgn > 0 then sknode_takeout (nx, k0, ni) else let // sgn = 0 val () = nxa[ni1] := sknode_get_next (nx, ni1) in if ni1 > 0 then sknodelst_takeout (nxa, k0, ni1) else nx end end else sknodelst_takeout (nxa, k0, ni1) // end of [if] end else sknode_null (1) // end of [if] // end // end of [sknodelst_takeout] (* ****** ****** *) implement {key,itm} linmap_takeout (map, k0, res) = let in // case+ map of | @SKIPLIST (N, lgN, nxa) => let val nx = sknodelst_takeout (nxa, k0, lgN) val p_nx = sknode2ptr (nx) in if p_nx > 0 then let prval ( ) = __assert (N) where { extern praxi __assert {N:int} (N: size_t N): [N>0] void } // end of [where] // end of [prval] val () = N := pred (N) prval () = fold@ (map) val () = sknode_free (nx, res) prval () = opt_some{itm}(res) in true end else let prval () = fold@ (map) prval () = opt_none{itm}(res) in false end // end of [if] end // end of [SKIPLIST] // end // end of [linmap_takeout] (* ****** ****** *) implement {key,itm}{env} linmap_foreach_env (map, env) = let // fun sknode_foreach_env ( nx: sknodeGt0 (key, itm, 0), env: &env ) : void = let // val p_nx = sknode2ptr (nx) // in // if p_nx > 0 then let val k = sknode_get_key (nx) val p_i = sknode_getref_item (nx) val nx1 = sknode_get_next (nx, 0) // val (pf, fpf | p_i) = $UN.cptr_vtake{itm}(p_i) val () = linmap_foreach$fwork (k, !p_i, env) prval () = fpf (pf) // in sknode_foreach_env (nx1, env) end else () // end of [if] // end // end of [sknode_foreach_env] // in // case+ map of | SKIPLIST (N, lgN, nxa) => let val nx = nxa[0] val () = sknode_foreach_env (nx, env) in // nothing end // end of [SKIPLIST] // end // end of [linmap_foreach_env] (* ****** ****** *) implement {key,itm} linmap_freelin (map) = let // fun sknode_freelin ( nx: sknodeGt0 (key, itm, 0) ) : void = let // val p_nx = sknode2ptr (nx) // in // if p_nx > 0 then let // val cp = sknode_getref_item (nx) val nx1 = sknode_get_next (nx, 0) // prval (pf, fpf) = __assert (cp) where { extern praxi __assert{l:addr} (cp: cptr (itm, l)): (itm @ l, itm? @ l - void) } // end of [prval] val p_i = cptr2ptr (cp) val () = linmap_freelin$clear (!p_i) prval () = fpf (pf) // val () = $extfcall (void, "ATS_MFREE", nx) // in sknode_freelin (nx1) end else () // end of [if] // end // end of [sknode_freelin] // in // case+ map of | ~SKIPLIST (N, lgN, nxa) => let val nx0 = nxa[0] val () = $extfcall (void, "ATS_MFREE", nxa) in $effmask_all (sknode_freelin (nx0)) end // end of [SKIPLIST] // end // end of [linmap_freelin] (* ****** ****** *) implement {key,itm} linmap_free_ifnil (map) = let // vtypedef map = map (key, itm) val map2 = __cast (map) where { extern castfn __cast : (!map >> map?) -<> map } // end of [where] // end of [val] // in // case+ map2 of | @SKIPLIST (N, lgN, nxa) => let in if N = i2sz(0) then let val nxa_ = nxa val () = free@{..}{0}{0}(map2) val () = $extfcall (void, "ATS_MFREE", nxa_) prval () = opt_none{map}(map) in false end else let prval () = fold@ (map2) prval ( ) = __assert (map, map2) where { extern praxi __assert : (!map? >> map, map) - void } // end of [prval] prval () = opt_some{map}(map) in true end // end of [if] end // end of [SKIPLIST] // end // end of [linmap_free_ifnil] (* ****** ****** *) local // staload "libats/libc/SATS/stdlib.sats" // staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" // in (* in of [local] *) implement linmap_random_lgN (n) = let // fun loop {n:int} {i:int | 1 <= i; i <= n} .. ( n: int n, i: int i, r: double ) :<> intBtwe (1, n) = let in // if i < n then if (r <= 0.5) then loop (n, i+1, r+r) else i else n // end of [if] // end // end of [loop] // val r = drand48 () // HX: containing ref-effect! // in loop (n, 1, r) end // end of [linmap_random_lgN] end // end of [local] (* ****** ****** *) (* end of [linmap_skiplist.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/0000755000175000017500000000000013431250607017535 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/funmap.hats0000644000175000017500000001130013431250607021677 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) implement{key} equal_key_key = gequal_val_val implement{key} compare_key_key = gcompare_val_val (* ****** ****** *) // implement{} funmap_isnot_nil (xs) = not (funmap_is_nil<> (xs)) // (* ****** ****** *) implement {key,itm} funmap_search_opt (map, k0) = let // var res: itm? val ans = funmap_search (map, k0, res) // in // if ans then let prval () = opt_unsome{itm}(res) in Some_vt{itm}(res) end else let prval () = opt_unnone{itm}(res) in None_vt{itm}((*void*)) end // end of [if] // end // end of [funmap_search_opt] (* ****** ****** *) implement {key,itm} funmap_insert_opt (map, k0, x0) = let var res: itm? val ans = funmap_insert (map, k0, x0, res) in // if ans then let prval () = opt_unsome {itm} (res) in Some_vt{itm}(res) end else let prval () = opt_unnone {itm} (res) in None_vt{itm}((*void*)) end // end of [if] // end // end of [funmap_insert_opt] (* ****** ****** *) implement {key,itm} funmap_takeout_opt (map, k0) = let var res: itm? val ans = funmap_takeout (map, k0, res) in // if ans then let prval () = opt_unsome {itm} (res) in Some_vt{itm}(res) end else let prval () = opt_unnone {itm} (res) in None_vt{itm}((*void*)) end // end of [if] // end // end of [funmap_takeout_opt] (* ****** ****** *) implement {key,itm} funmap_remove (map, k0) = let var res: itm val takeout = funmap_takeout (map, k0, res) prval () = opt_clear (res) in takeout(*removed*) end // end of [funmap_remove] (* ****** ****** *) implement {key,itm} funmap_foreach (map) = let // var env: void = () in funmap_foreach_env (map, env) // end // end of [funmap_foreach] (* ****** ****** *) implement{} fprint_funmap$sep (out) = fprint_string (out, "; ") implement{} fprint_funmap$mapto (out) = fprint_string (out, "->") implement {key,itm} fprint_funmap (out, map) = let // implement funmap_foreach$fwork (k, x, env) = { val () = if env > 0 then fprint_funmap$sep (out) val () = env := env + 1 val () = fprint_val (out, k) val () = fprint_funmap$mapto (out) val () = fprint_val (out, x) } (* end of [funmap_foreach$fwork] *) // var env: int = 0 // in funmap_foreach_env (map, env) end // end of [fprint_funmap] (* ****** ****** *) implement {key,itm} funmap_listize (xs) = let // typedef ki = @(key, itm) // implement funmap_flistize$fopr (k, x) = @(k, x) // in $effmask_all (funmap_flistize (xs)) end // end of [funmap_listize] (* ****** ****** *) local staload Q = "libats/SATS/qlist.sats" in (* in of [local] *) implement {key,itm}{ki2} funmap_flistize (map) = res where { // typedef ki = @(key, itm) // vtypedef tenv = $Q.qstruct (ki2) // implement (env)(*tmp*) funmap_foreach$fwork (k, x, env) = let // val (pf, fpf | p) = $UN.ptr_vtake{tenv}(addr@(env)) // val ki2 = funmap_flistize$fopr(k, x) // val () = $Q.qstruct_insert (!p, ki2) // prval ((*returned*)) = fpf (pf) // in // nothing end // end of [funmap_foreach$fwork] // var env: $Q.qstruct // val () = $Q.qstruct_initize{ki2}(env) val () = funmap_foreach_env(map, env) // val res = $Q.qstruct_takeout_list(env) // prval () = lemma_list_vt_param(res) prval () = $Q.qstruct_uninitize{ki2}(env) // } (* end of [funmap_flistize] *) end // end of [local] (* ****** ****** *) (* end of [funmap.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/funset.hats0000644000175000017500000001402313431250607021722 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) implement {a}(*tmp*) compare_elt_elt = gcompare_val_val (* ****** ****** *) implement {}(*tmp*) funset_isnot_nil (xs) = not(funset_is_nil (xs)) (* ****** ****** *) implement {a}(*tmp*) funset_make_list (xs) = set where { // typedef set = set (a) // fun loop ( set: &set >> _, xs: List (a) ) : void = let in case+ xs of | list_cons (x, xs) => let val _(*exi*) = funset_insert (set, x) in loop (set, xs) end // end of [list_cons] | list_nil () => () end // end of [loop] // var set: set = funset_make_nil () // val ((*void*)) = $effmask_all (loop (set, xs)) // } // end of [funset_make_list] (* ****** ****** *) implement {a}(*tmp*) funset_isnot_member (xs, x0) = not (funset_is_member (xs, x0)) // end of [funset_isnot_member] (* ****** ****** *) implement {a}(*tmp*) funset_getmax_opt (xs) = let // var x0: a? val ans = $effmask_wrt (funset_getmax (xs, x0)) // in // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt(*void*) end (* end of [if] *) // end // end of [funset_getmax_opt] (* ****** ****** *) implement {a}(*tmp*) funset_getmin_opt (xs) = let // var x0: a? val ans = $effmask_wrt (funset_getmin (xs, x0)) // in // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt(*void*) end (* end of [if] *) // end // end of [funset_getmin_opt] (* ****** ****** *) implement {a}(*tmp*) funset_takeoutmax_opt (xs) = let // var x0: a? val ans = $effmask_wrt (funset_takeoutmax (xs, x0)) // in // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt(*void*) end (* end of [if] *) // end // end of [funset_takeoutmax_opt] (* ****** ****** *) implement {a}(*tmp*) funset_takeoutmin_opt (xs) = let // var x0: a? val ans = $effmask_wrt (funset_takeoutmin (xs, x0)) // in // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt(*void*) end (* end of [if] *) // end // end of [funset_takeoutmin_opt] (* ****** ****** *) implement {a}(*tmp*) funset_equal (xs1, xs2) = let val sgn = funset_compare (xs1, xs2) in sgn = 0 end // end of [funset_equal] (* ****** ****** *) // implement {a}(*tmp*) funset_is_supset (xs1, xs2) = funset_is_subset(xs2, xs1) // (* ****** ****** *) implement {a}(*tmp*) funset_foreach (xs) = let // var env: void = () in funset_foreach_env (xs, env) // end // end of [funset_foreach] (* ****** ****** *) // implement {}(*tmp*) fprint_funset$sep (out) = fprint_string (out, ", ") // implement {a}(*tmp*) fprint_funset (out, xs) = let // implement funset_foreach$fwork (x, env) = { val () = if env > 0 then fprint_funset$sep (out) // end of [val] val () = env := env + 1 val () = fprint_val (out, x) } (* end of [funset_foreach$fwork] *) // var env: int = 0 // in funset_foreach_env (xs, env) end // end of [fprint_funset] // implement {a}(*tmp*) fprint_funset_sep (out, xs, sep) = let // implement{} fprint_funset$sep(out) = fprint_string(out, sep) // in fprint_funset (out, xs) end // end of [fprint_set] // (* ****** ****** *) implement {a}(*tmp*) funset_tabulate {n}(n) = res where { // fun loop { i:nat | i <= n } .. ( i: int(i), n: int(n), res: &set(a) >> _ ) : void = ( // if i < n then let // val x(*a*) = funset_tabulate$fopr (i) // val _(*bool*) = funset_insert(res, x) // in loop(i+1, n, res) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // var res: set(a) = funset_make_nil() // val ((*void*)) = loop(0, n, res) // } (* end of [funset_tabulate] *) (* ****** ****** *) implement {a}(*tmp*) funset_listize (xs) = let // implement funset_flistize$fopr(x) = x // in $effmask_all(funset_flistize(xs)) end // end of [funset_listize] (* ****** ****** *) local // staload Q = "libats/SATS/qlist.sats" // in (* in of [local] *) implement {a}{b}(*tmp*) funset_flistize (xs) = res where { // vtypedef tenv = $Q.qstruct(b) // implement (env)(*tmp*) funset_foreach$fwork (x, env) = let // val (pf, fpf | p) = $UN.ptr_vtake{tenv}(addr@(env)) // val y = funset_flistize$fopr(x) // val () = $Q.qstruct_insert(!p, y) // prval ((*returned*)) = fpf( pf ) // in // nothing end (* end of [funset_foreach$fwork] *) // var env: $Q.qstruct // val () = $Q.qstruct_initize{b}(env) val () = funset_foreach_env(xs, env) // val res = $Q.qstruct_takeout_list(env) // prval () = lemma_list_vt_param(res) prval () = $Q.qstruct_uninitize{b}(env) // } (* end of [funset_flistize] *) end // end of [local] (* ****** ****** *) (* end of [funset.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/linmap.hats0000644000175000017500000001325213431250607021701 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // // HX: shared by linmap_list // HX: shared by linmap_avltree // HX: shared by linmap_randbst // HX: shared by linmap_skiplist // (* ****** ****** *) // implement {key}(*tmp*) equal_key_key = gequal_val_val // implement {key}(*tmp*) compare_key_key = gcompare_val_val // (* ****** ****** *) implement {key,itm} linmap_search (t, k0, res) = let // val p = linmap_search_ref(t, k0) // in // if (cptr2ptr(p) > 0) then let // val (pf, fpf | p) = $UN.cptr_vtake(p) // val () = res := !p prval () = fpf(pf) prval () = opt_some{itm}(res) in true end else let prval () = opt_none{itm}(res) in false end // end of [if] // end // end of [linmap_search] (* ****** ****** *) implement {key,itm} linmap_search_opt (map, k0) = let // var res: itm? // val ans = linmap_search (map, k0, res) // in // if ans then let prval () = opt_unsome{itm}(res) in Some_vt{itm}(res) end else let prval () = opt_unnone{itm}(res) in None_vt{itm}((*void*)) end // end of [if] // end // end of [linmap_search_opt] (* ****** ****** *) implement {key,itm} linmap_insert_any (map, k0, x0) = () where { // val-~None_vt() = linmap_insert_opt(map, k0, x0) // } (* end of [linmap_insert_any] *) (* ****** ****** *) implement {key,itm} linmap_insert_opt (map, k0, x0) = let // var res: itm? val ans = linmap_insert (map, k0, x0, res) // in // if ans then let prval () = opt_unsome{itm}(res) in Some_vt{itm}(res) end else let prval () = opt_unnone{itm}(res) in None_vt{itm}((*void*)) end // end of [if] // end // end of [linmap_insert_opt] (* ****** ****** *) implement {key,itm} linmap_takeout_opt (map, k0) = let // var res: itm? val ans = linmap_takeout (map, k0, res) // in // if ans then let prval () = opt_unsome{itm}(res) in Some_vt{itm}(res) end else let prval () = opt_unnone{itm}(res) in None_vt{itm}((*void*)) end // end of [if] // end // end of [linmap_takeout_opt] (* ****** ****** *) implement {key,itm} linmap_remove (map, k0) = let // var res: itm val takeout = linmap_takeout(map, k0, res) // prval () = opt_clear (res) // in takeout(*removed*) end // end of [linmap_remove] (* ****** ****** *) implement {key,itm} linmap_free(map) = let // implement linmap_freelin$clear (x) = () // in linmap_freelin (map) end // end of [linmap_free] (* ****** ****** *) implement {}(*tmp*) fprint_linmap$sep(out) = fprint(out, "; ") implement {}(*tmp*) fprint_linmap$mapto(out) = fprint(out, "->") implement {key,itm} fprint_linmap (out, map) = let // implement linmap_foreach$fwork (k, x, env) = { val () = if env > 0 then fprint_linmap$sep<>(out) // end of [if] val () = env := env + 1 val () = fprint_val (out, k) val () = fprint_linmap$mapto (out) val () = fprint_val (out, x) } (* end of [linmap_foreach$fwork] *) // var env: int = 0 // in linmap_foreach_env (map, env) end // end of [fprint_linmap] (* ****** ****** *) implement {key,itm} linmap_foreach (map) = let var env: void = () in linmap_foreach_env(map, env) end // end of [linmap_foreach] (* ****** ****** *) implement {key,itm} linmap_listize (map) = let // vtypedef ki2 = @(key, itm) // implement (k2,i2)(*tmp*) linmap_flistize$fopr (k, x) = ($UN.castvwtp0{key}(k), $UN.castvwtp0{itm}(x)) // in $effmask_all(linmap_flistize(map)) end // end of [linmap_listize] (* ****** ****** *) local // staload Q = "libats/SATS/qlist.sats" // in (* in of [local] *) implement {key,itm} linmap_listize1 (map) = let // vtypedef ki = @(key, itm) vtypedef tenv = $Q.qstruct (ki) // implement (env)(*tmp*) linmap_foreach$fwork (k, x, env) = let // val ( pf, fpf | p ) = $UN.ptr_vtake{tenv}(addr@(env)) val () = $Q.qstruct_insert(env, @(k, x)) prval ((*returned*)) = fpf(pf) // in // nothing end // end of [linmap_foreach$fwork] // var env: $Q.qstruct val () = $Q.qstruct_initize{ki}(env) // val () = $effmask_all ( linmap_foreach_env(map, env) ) (* $effmask_all *) // in res where { val res = $Q.qstruct_takeout_list(env) prval ((*void*)) = lemma_list_vt_param(res) prval ((*void*)) = $Q.qstruct_uninitize{ki}(env) } end // end of [linmap_listize1] end // end of [local] (* ****** ****** *) (* end of [linmap.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/linheap.hats0000644000175000017500000000534613431250607022046 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) implement{a} compare_elt_elt = gcompare_ref_ref (* ****** ****** *) implement{a} linheap_getmin (hp0, res) = let // val cp = linheap_getmin_ref (hp0) // in // if isneqz(cp) then let val ( pf, fpf | p ) = $UN.cptr_vtake{a}(cp) val () = res := !p prval () = fpf (pf) prval () = opt_some{a}(res) in true end else let prval () = opt_none{a}(res) in false end // end of [if] // end // end of [linheap_getmin] (* ****** ****** *) implement{a} linheap_getmin_opt (hp0) = let // var res: a? // unintialized val ans = linheap_getmin (hp0, res) (* val () = println! ("linheap_getmin_opt: ans = ", ans) *) in // if ans then let prval () = opt_unsome{a}(res) in Some_vt{a}(res) end else let prval () = opt_unnone{a}(res) in None_vt{a}((*void*)) end // end of [if] // end // end of [linheap_getmin_opt] (* ****** ****** *) implement{a} linheap_delmin_opt (hp0) = let // var res: a? // unintialized val ans = linheap_delmin (hp0, res) // in // if ans then let prval () = opt_unsome{a}(res) in Some_vt{a}(res) end else let prval () = opt_unnone{a}(res) in None_vt{a}((*void*)) end // end of [if] // end // end of [linheap_delmin_opt] (* ****** ****** *) implement {a}(*tmp*) linheap_free (hp) = let // implement linheap_freelin$clear (x) = () // in linheap_freelin (hp) end // end of [linheap_free] (* ****** ****** *) (* end of [linheap.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/funmset.hats0000644000175000017500000000614713431250607022107 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2015 *) (* ****** ****** *) implement {a}(*tmp*) compare_elt_elt = gcompare_val_val (* ****** ****** *) // implement {}(*tmp*) funmset_isnot_nil (xs) = not(funmset_is_nil<> (xs)) // (* ****** ****** *) implement {a}(*tmp*) funmset_size(xs) = let // typedef tenv = size_t // implement(a) funmset_foreach$fwork (n, x, env) = (env := env + i2sz(n)) // var env: tenv = i2sz(0) // in // $effmask_all(funmset_foreach_env (xs, env)); env // end // end of [funmset_size] // (* ****** ****** *) // implement {a}(*tmp*) funmset_isnot_member (xs, x0) = not(funmset_is_member (xs, x0)) // (* ****** ****** *) // implement {a}(*tmp*) funmset_insert (xs, x0) = funmset_insert2(xs, 1, x0) implement {a}(*tmp*) funmset_remove (xs, x0) = funmset_remove2(xs, 1, x0) // (* ****** ****** *) implement {a}(*tmp*) funmset_foreach (nxs) = let // var env: void = () // in funmset_foreach_env (nxs, env) end // end of [funmset_foreach] (* ****** ****** *) // implement {}(*tmp*) fprint_funmset$sep (out) = fprint_string (out, ", ") // implement {a}(*tmp*) fprint_funmset_sep (out, xs, sep) = let // implement{} fprint_funmset$sep(out) = fprint_string(out, sep) // in fprint_funmset (out, xs) end // end of [fprint_funmset] // (* ****** ****** *) implement {a}(*tmp*) fprint_funmset (out, xs) = let // typedef tenv = int // implement funmset_foreach$fwork (n, x, env) = () where { // val () = if env > 0 then fprint_funmset$sep(out) // end of [if] val () = env := env + 1 val () = fprint_val (out, x) val () = fprint! (out, "(", n, ")") } (* end of [fprint_funmset$fwork] *) // var env: tenv = 0 // in funmset_foreach_env (xs, env) end // end of [fprint_funmset] (* ****** ****** *) (* end of [funmset.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/linset.hats0000644000175000017500000000722313431250607021720 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2013 *) (* ****** ****** *) // // HX: shared by linset_listord (* ordered list *) // HX: shared by linset_avltree (* AVL-tree-based *) // (* ****** ****** *) implement{a} compare_elt_elt = gcompare_val_val (* ****** ****** *) implement{a} linset_make_list (xs) = res where { // fun loop ( xs: List (a), res: &set(a) >> _ ) : void = ( case+ xs of | list_cons (x, xs) => let val _(*exi*) = linset_insert (res, x) in loop (xs, res) // end of [val] end // end of [list_cons] | list_nil () => () ) // var res: set(a) = linset_nil () val () = $effmask_all (loop (xs, res)) // } // end of [linset_make_list] (* ****** ****** *) implement{a} linset_isnot_member (xs, x0) = ~linset_is_member (xs, x0) (* ****** ****** *) implement{a} linset_choose_opt (xs) = let // var x0: a? val ans = linset_choose (xs, x0) // in // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt(*void*) end (* end of [if] *) // end // end of [linset_choose_opt] (* ****** ****** *) implement{a} linset_takeoutmax_opt (xs) = let // var x0: a? val ans = linset_takeoutmax (xs, x0) // in // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt(*void*) end (* end of [if] *) // end // end of [linset_takeoutmax_opt] (* ****** ****** *) implement{a} linset_takeoutmin_opt (xs) = let // var x0: a? val ans = $effmask_wrt (linset_takeoutmin (xs, x0)) // in // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt(*void*) end (* end of [if] *) // end // end of [linset_takeoutmin_opt] (* ****** ****** *) implement{} fprint_linset$sep (out) = fprint_string (out, ", ") implement {a}(*tmp*) fprint_linset (out, xs) = let // implement linset_foreach$fwork (x, env) = { val () = if env > 0 then fprint_linset$sep (out) val () = env := env + 1 val () = fprint_val (out, x) } (* end of [linset_foreach$fwork] *) // var env: int = 0 // in linset_foreach_env (xs, env) end // end of [fprint_linset] (* ****** ****** *) implement {a}(*tmp*) linset_foreach (xs) = let // var env: void = () in linset_foreach_env (xs, env) // end // end of [linset_foreach] (* ****** ****** *) (* end of [linset.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/hashtbl.hats0000644000175000017500000001434213431250607022047 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2013 *) (* ****** ****** *) // // HX: shared by hashtbl_chain // HX: shared by hashtbl_linprb // (* ****** ****** *) (* implement {key}(*tmp*) hash_key = ghash_val_val *) (* ****** ****** *) implement {key}(*tmp*) equal_key_key = gequal_val_val (* ****** ****** *) // // HX: 31 and 37 are top choices // implement hash_key (str) = string_hash_multiplier (31UL, 618033989UL, str) (* implement hash_key (str) = string_hash_multiplier (31UL, 61803398875UL, str) *) // (* ****** ****** *) implement{} hashtbl$recapacitize () = 1 // HX: default: resizable (* ****** ****** *) implement {key,itm} hashtbl_search (t, k0, res) = let // val p = hashtbl_search_ref(t, k0) // in // if (cptr2ptr(p) > 0) then let // val (pf, fpf | p) = $UN.cptr_vtake(p) // val () = res := !p prval () = fpf (pf) prval () = opt_some {itm} (res) in true end else let prval () = opt_none {itm} (res) in false end // end of [if] // end // end of [hashtbl_search] (* ****** ****** *) implement {key,itm} hashtbl_search_opt (tbl, k0) = let // var res: itm? val ans = hashtbl_search (tbl, k0, res) // in // if ans then let prval () = opt_unsome{itm}(res) in Some_vt{itm}(res) end else let prval () = opt_unnone{itm}(res) in None_vt{itm}((*void*)) end // end of [if] // end // end of [hashtbl_search_opt] (* ****** ****** *) implement {key,itm} hashtbl_insert_opt (tbl, k0, x0) = let // var res: itm? val ans = hashtbl_insert (tbl, k0, x0, res) // in // if ans then let prval () = opt_unsome{itm}(res) in Some_vt{itm}(res) end else let prval () = opt_unnone{itm}(res) in None_vt{itm}((*void*)) end // end of [if] // end // end of [hashtbl_insert_opt] (* ****** ****** *) implement {key,itm} hashtbl_takeout_opt (tbl, k0) = let // var res: itm? val ans = hashtbl_takeout (tbl, k0, res) // in // if ans then let prval () = opt_unsome{itm}(res) in Some_vt{itm}(res) end else let prval () = opt_unnone{itm}(res) in None_vt{itm}((*void*)) end // end of [if] // end // end of [hashtbl_takeout_opt] (* ****** ****** *) implement {key,itm} hashtbl_remove (tbl, k0) = let // var res: itm val takeout = hashtbl_takeout(tbl, k0, res) prval () = opt_clear (res) // in takeout(*removed*) end // end of [hashtbl_remove] (* ****** ****** *) implement {key,itm} hashtbl_exchange (tbl, k0, x0) = let // val p_x1 = hashtbl_search_ref(tbl, k0) // val p_x1 = cptr2ptr(p_x1) // in // if isneqz(p_x1) then ($UN.ptr1_exch(p_x1, x0); true) else false // end // end of [hashtbl_exchange] (* ****** ****** *) implement {key,itm} fprint_hashtbl (out, tbl) = let // implement hashtbl_foreach$fwork (k, x, env) = { val () = if env > 0 then fprint_hashtbl$sep<>(out) // end of [if] val () = env := env + 1 val () = fprint_val (out, k) val () = fprint_hashtbl$mapto<>(out) val () = fprint_val (out, x) } (* end of [hashtbl_foreach$fwork] *) // var env: int = 0 // in hashtbl_foreach_env (tbl, env) end // end of [fprint_hashtbl] (* ****** ****** *) implement{} fprint_hashtbl$sep (out) = fprint (out, "; ") implement{} fprint_hashtbl$mapto (out) = fprint (out, "->") (* ****** ****** *) implement {key,itm} hashtbl_foreach (tbl) = let var env: void = () in hashtbl_foreach_env (tbl, env) end // end of [hashtbl_foreach] (* ****** ****** *) implement {key,itm} hashtbl_foreach_cloref (tbl, fwork) = let // implement {key,itm}{env} hashtbl_foreach$fwork (k, x, env) = let // typedef fwork_t = (key, &itm >> _) - void // in $UN.cast{fwork_t}(fwork)(k, x) end // end of [hashtbl_foreach$fwork] // in hashtbl_foreach(tbl) end // end of [hashtbl_foreach_cloref] (* ****** ****** *) implement {key,itm} hashtbl_listize (tbl) = let // vtypedef ki2 = @(key, itm) // implement hashtbl_flistize$fopr (k, x) = @(k, x) // in hashtbl_flistize (tbl) end // end of [hashtbl_listize] (* ****** ****** *) // implement {key,itm} streamize_hashtbl(tbl) = streamize_list_vt_elt<@(key,itm)>(hashtbl_listize(tbl)) // (* ****** ****** *) local staload Q = "libats/SATS/qlist.sats" in (* in of [local] *) implement {key,itm} hashtbl_listize1 (tbl) = let // vtypedef ki = @(key, itm) vtypedef tenv = $Q.qstruct (ki) // implement(env) hashtbl_foreach$fwork (k, x, env) = let // val ( pf, fpf | p ) = $UN.ptr_vtake{tenv}(addr@(env)) val () = $Q.qstruct_insert (env, @(k, x)) prval () = fpf (pf) // in // nothing end // end of [hashtbl_foreach$fwork] // var env: $Q.qstruct val () = $Q.qstruct_initize{ki}(env) val () = $effmask_all (hashtbl_foreach_env (tbl, env)) val res = $Q.qstruct_takeout_list (env) prval () = $Q.qstruct_uninitize{ki}(env) // prval () = lemma_list_vt_param (res) // in res end // end of [hashtbl_listize1] end // end of [local] (* ****** ****** *) (* end of [hashtbl.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/.keeper0000644000175000017500000000000013431250607020777 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/linmap_node.hats0000644000175000017500000000466213431250607022713 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // // HX: shared by linmap_list // HX: shared by linmap_avltree // (* ****** ****** *) implement{key} equal_key_key = gequal_val_val implement{key} compare_key_key = gcompare_val_val (* ****** ****** *) implement {key,itm} linmap_search_ref (map, k0) = let // val p0 = linmap_search_ngc (map, k0) // viewtypedef mynode1 = mynode1 (key,itm) // in // if p0 > 0 then let // val nx = $UN.castvwtp0{mynode1}{ptr}(p0) val p_elt = mynode_getref_itm (nx) val p0 = $UN.castvwtp0{ptr}{mynode1}(nx) // in p_elt end else cptr_null () // end of [if] // end // end of [linmap_search_ref] (* ****** ****** *) implement {key,itm} linmap_takeout (map, k0, res) = let // val nx = linmap_takeout_ngc (map, k0) val p_nx = mynode2ptr (nx) // in // if p_nx > 0 then let val () = res := mynode_getfree_itm (nx) // end of [val] prval () = opt_some{itm}(res) in true end else let prval () = mynode_free_null (nx) prval () = opt_none{itm}(res) in false end // end of [if] // end // end of [linmap_takeout] (* ****** ****** *) (* end of [linmap_node.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/linset_node.hats0000644000175000017500000000701313431250607022722 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2013 *) (* ****** ****** *) // // HX: shared by linset_listord (* ordered list *) // HX: shared by linset_avltree (* AVL-tree-based *) // (* ****** ****** *) implement{a} linset_insert_ngc (set, nx0) = let // val p = mynode2ptr (nx0) // implement{a} mynode_make_elt (x0) = $UN.castvwtp0{mynode1(a)}(p) // val x0 = mynode_get_elt (nx0) val ans = linset_insert (set, x0) // in (* in of [let] *) // if ans then nx0 else let prval () = $UN.cast2void(nx0) in mynode_null{a}((*void*)) end // end of [if] // end // end of [linset_insert_ngc] (* ****** ****** *) implement {a}(*tmp*) linset_remove (xs, x0) = let // val nx = linset_takeout_ngc (xs, x0) val p_nx = mynode2ptr (nx) // in // if p_nx > 0 then let val () = mynode_free (nx) in true end // end of [then] else let prval () = mynode_free_null (nx) in false end // end of [else] // end of [if] // end // end of [linset_remove] (* ****** ****** *) implement {a}(*tmp*) linset_takeout (xs, x0, res) = let // val nx = linset_takeout_ngc (xs, x0) val p_nx = mynode2ptr (nx) // in // if p_nx > 0 then let val () = res := mynode_getfree_elt (nx) // end of [val] prval () = opt_some{a}(res) in true end else let prval () = mynode_free_null (nx) prval () = opt_none{a}(res) in false end // end of [if] // end // end of [linset_takeout] (* ****** ****** *) implement {a}(*tmp*) linset_takeoutmax (xs, res) = let // val nx = linset_takeoutmax_ngc (xs) val p_nx = mynode2ptr (nx) // in // if p_nx > 0 then let val () = res := mynode_getfree_elt (nx) // end of [val] prval () = opt_some{a}(res) in true end else let prval () = mynode_free_null (nx) prval () = opt_none{a}(res) in false end // end of [if] // end // end of [linset_takeoutmax] (* ****** ****** *) implement {a}(*tmp*) linset_takeoutmin (xs, res) = let // val nx = linset_takeoutmin_ngc (xs) val p_nx = mynode2ptr (nx) // in // if p_nx > 0 then let val () = res := mynode_getfree_elt (nx) // end of [val] prval () = opt_some{a}(res) in true end else let prval () = mynode_free_null (nx) prval () = opt_none{a}(res) in false end // end of [if] // end // end of [linset_takeoutmin] (* ****** ****** *) (* end of [linset_node.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/fundeque.hats0000644000175000017500000000640313431250607022235 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement{a} fundeque_get_atbeg_opt (xs) = ( if fundeque_is_cons (xs) then Some_vt{a}(fundeque_get_atbeg (xs)) else None_vt{a}((*void*)) ) // end of [fundeque_get_atbeg_opt] implement{a} fundeque_get_atend_opt (xs) = ( if fundeque_is_cons (xs) then Some_vt{a}(fundeque_get_atend (xs)) else None_vt{a}((*void*)) ) // end of [fundeque_get_atend_opt] (* ****** ****** *) implement{a} fundeque_takeout_atbeg_opt (xs) = ( if fundeque_is_cons (xs) then Some_vt{a}(fundeque_uncons (xs)) else None_vt{a}((*void*)) ) // end of [fundeque_get_atbeg_opt] implement{a} fundeque_takeout_atend_opt (xs) = ( if fundeque_is_cons (xs) then Some_vt{a}(fundeque_unsnoc (xs)) else None_vt{a}((*void*)) ) // end of [fundeque_get_atend_opt] (* ****** ****** *) implement{a} fprint_fundeque (out, xs) = let // typedef tenv = int // implement fundeque_foreach$fwork (x, env) = let // val () = if env > 0 then fprint_fundeque$sep (out) // end of [val] val () = fprint_val (out, x) val () = env := env + 1 // in // nothing end // end of [fundeque_foreach$fwork] // var env: tenv = 0 val () = fundeque_foreach_env (xs, env) // in // nothing end // end of [fprint_fundeque] implement{} fprint_fundeque$sep (out) = fprint (out, ", ") (* ****** ****** *) local staload Q = "libats/SATS/qlist.sats" in (* in of [local] *) implement{a} fundeque_listize {n} (xs) = let // viewtypedef tenv = $Q.qstruct (a) // implement fundeque_foreach$fwork (x, env) = $Q.qstruct_insert (env, x) // var env: $Q.qstruct val () = $Q.qstruct_initize {a} (env) val () = $effmask_all (fundeque_foreach_env (xs, env)) val res = $Q.qstruct_takeout_list (env) val () = $Q.qstruct_uninitize {a} (env) // in $UN.castvwtp0{list_vt(a,n)}(res) end // end of [fundeque_listize] end // end of [local] (* ****** ****** *) (* end of [fundeque.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/SHARE/funralist.hats0000644000175000017500000000566513431250607022441 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement{a} funralist_make_list (xs) = let // fun loop {m,n:nat} .. ( xs: list_vt (a, m), res: ralist (a, n) ) : ralist (a, m+n) = ( case+ xs of | ~list_vt_cons (x, xs) => loop (xs, funralist_cons (x, res)) | ~list_vt_nil ((*void*)) => res ) // end of [loop] // prval () = lemma_list_param (xs) // in loop (list_reverse (xs), funralist_nil ()) end // end of [funralist_make_list] (* ****** ****** *) implement{a} fprint_funralist (out, xs) = let // typedef tenv = int // implement funralist_foreach$fwork (x, env) = let // val () = if env > 0 then fprint_funralist$sep (out) // end of [val] val () = fprint_val (out, x) val () = env := env + 1 // in // nothing end // end of [funralist_foreach$fwork] // var env: tenv = 0 val () = funralist_foreach_env (xs, env) // in // nothing end // end of [fprint_funralist] implement{} fprint_funralist$sep (out) = fprint (out, ", ") (* ****** ****** *) local staload Q = "libats/SATS/qlist.sats" in (* in of [local] *) implement{a} funralist_listize {n} (xs) = let // viewtypedef tenv = $Q.qstruct (a) // implement funralist_foreach$fwork (x, env) = $Q.qstruct_insert (env, x) // var env: $Q.qstruct val () = $Q.qstruct_initize {a} (env) val () = $effmask_all (funralist_foreach_env (xs, env)) val res = $Q.qstruct_takeout_list (env) val () = $Q.qstruct_uninitize {a} (env) // in $UN.castvwtp0{list_vt(a,n)}(res) end // end of [funralist_listize] end // end of [local] (* ****** ****** *) (* end of [funralist.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/hashfun.dats0000644000175000017500000000465713431250607021220 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2013-09: // A collection of hash functions // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/hashfun.sats" (* ****** ****** *) (* fun{} inthash_jenkins (uint32): uint32 *) (* ** HX-2013-08: ** This one by Robert Jenkins ** is a full-avalanche hash function *) /* uint32_t atslib_inthash_jenkins (uint32_t a) { a = (a+0x7ed55d16) + (a<<12); a = (a^0xc761c23c) ^ (a>>19); a = (a+0x165667b1) + (a<< 5); a = (a+0xd3a2646c) ^ (a<< 9); a = (a+0xfd7046c5) + (a<< 3); a = (a^0xb55a4f09) ^ (a>>16); return a; } */ implement {}(*tmp*) inthash_jenkins (a) = $extfcall (uint32, "atslib_inthash_jenkins", a) // (* ****** ****** *) (* fun{} string_hash_multiplier ( K: ulint, H0: ulint, str: string ) :<> ulint // endfun *) implement {}(*tmp*) string_hash_multiplier (K, H0, str) = let // fun loop ( p: ptr, res: ulint ) : ulint = let val c = $UN.ptr0_get (p) in // if isneqz(c) then loop (ptr_succ (p), K*res + $UN.cast{ulint}(c)) else (res) // end // end of [loop] // in $effmask_all(loop (string2ptr(str), H0)) end // end of [string_hash_multiplier] (* ****** ****** *) (* end of [hashfun.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/hashtbl_chain.dats0000644000175000017500000003257213431250607022350 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.hashtbl_chain" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_" // prefix for external names (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/hashfun.sats" (* ****** ****** *) staload "libats/SATS/hashtbl_chain.sats" (* ****** ****** *) #include "./SHARE/hashtbl.hats" // code reuse (* ****** ****** *) extern fun{} chain_nil {key:t0p;itm:vt0p}(): chain(key, itm) // end of [chain_nil] extern fun{ key:t0p;itm:vt0p } chain_search_ref (kxs: !chain(key, itm), k0: key): cPtr0(itm) // end of [chain_search_ref] (* ****** ****** *) extern fun{ key:t0p;itm:vt0p } chain_insert ( &chain(key, INV(itm)) >> _ , k0: key, x0: itm, res: &itm? >> opt(itm, b) ) : #[b:bool] bool (b) // endfun extern fun{ key:t0p;itm:vt0p } chain_insert_any (kxs: &chain(key, itm) >> _, key, itm): void // end of [chain_insert_any] (* ****** ****** *) extern fun{ key:t0p;itm:vt0p } chain_takeout ( &chain(key, INV(itm)) >> _, k0: key, res: &itm? >> opt(itm, b) ) : #[b:bool] bool (b) // endfun (* ****** ****** *) extern fun {key:t0p ;itm:vt0p} {env:vt0p} chain_foreach_env ( kxs: !chain(key, itm) >> _, env: &env >> _ ) : void // end of [chain_foreach_env] (* ****** ****** *) extern fun {key:t0p ;itm:vt0p} chain_listize (chain(key, itm)): List_vt @(key, itm) extern fun {key:t0p ;itm:vt0p} {ki2:vt0p} chain_flistize (kxs: chain(key, itm)): List_vt (ki2) (* ****** ****** *) staload LM = "libats/SATS/linmap_list.sats" (* ****** ****** *) implement {key}(*tmp*) $LM.equal_key_key (x, y) = equal_key_key (x, y) (* ****** ****** *) local // assume chain_vtype (key:t0p, itm:vt0p) = $LM.map (key, itm) // in (* in of [local] *) (* ****** ****** *) implement {}(*tmp*) chain_nil () = $LM.linmap_nil () (* ****** ****** *) implement {key,itm} chain_search_ref = $LM.linmap_search_ref (* ****** ****** *) implement {key,itm} chain_insert = $LM.linmap_insert implement {key,itm} chain_insert_any = $LM.linmap_insert_any (* ****** ****** *) implement {key,itm} chain_takeout = $LM.linmap_takeout (* ****** ****** *) implement {key,itm}{env} chain_foreach_env (kxs, env) = let // implement $LM.linmap_foreach$fwork = hashtbl_foreach$fwork // in $LM.linmap_foreach_env (kxs, env) end // end of [chain_foreach_env] (* ****** ****** *) implement {key,itm} chain_listize (kxs) = $LM.linmap_listize (kxs) implement {key,itm}{ki2} chain_flistize (kxs) = let // implement $LM.linmap_flistize$fopr = hashtbl_flistize$fopr // in $LM.linmap_flistize (kxs) end // end of [chain_flistize] end // end of [local] (* ****** ****** *) extern fun{ key:t0p;itm:vt0p } chainarr_insert_any {m:int | m >= 1} ( A: !arrayptr (chain(key, itm), m), m: size_t m, k: key, x: itm ) : void // end of [chainarr_insert_any] extern fun{ key:t0p;itm:vt0p } chainarr_insert_chain {m:int | m >= 1} ( A: !arrayptr (chain(key, itm), m), m: size_t m, kxs: chain(key, itm) ) : void // end of [chainarr_insert_chain] (* ****** ****** *) implement {key,itm} chainarr_insert_any (A, m, k, x) = let // val h = hash_key (k) val h = g0uint2uint_ulint_size(h) val i = g1uint_mod (g1ofg0(h), m) // val ( pf0 | p0 ) = arrayptr_takeout_viewptr (A) val ( pf, fpf | pi ) = array_ptr_takeout (pf0 | p0, i) val (pf | pi) = viewptr_match (pf | pi) val () = chain_insert_any (!pi, k, x) prval () = pf0 := fpf (pf) prval () = arrayptr_addback (pf0 | A) // in // nothing end // end of [chainarr_insert_any] (* ****** ****** *) implement {key,itm} chainarr_insert_chain {m}(A, m, kxs) = let // vtypedef chain = chain(key, itm) // fun loop ( A: !arrayptr (chain, m), m: size_t m, kxs: List_vt @(key, itm) ) : void = let in // case+ kxs of | ~list_vt_cons ((k, x), kxs) => let val () = chainarr_insert_any (A, m, k, x) in loop (A, m, kxs) end // end of [list_vt_cons] | ~list_vt_nil ((*void*)) => () // end // end of [loop] // val kxs = chain_listize (kxs) val kxs = list_vt_reverse (kxs) // in loop (A, m, kxs) end // end of [chainarr_insert_chain] (* ****** ****** *) datavtype hashtbl ( key:t@ype, itm:vt@ype+ ) = {m:int | m >= 1} HASHTBL of ( arrayptr (chain(key, itm), m), size_t m, size_t ) (* end of [HASHTBL] *) // end of [hashtbl] (* ****** ****** *) assume hashtbl_vtype (key:t0p, itm:vt0p) = hashtbl (key, itm) (* ****** ****** *) implement {key,itm} hashtbl_make_nil (cap) = let // vtypedef chain = chain(key, itm) // prval [m:int] EQINT () = eqint_make_guint (cap) // val p0 = $UN.castvwtp0{ptr}(chain_nil{key,itm}()) val A0 = arrayptr_make_elt (cap, p0) val A0 = $UN.castvwtp0{arrayptr(chain, m)}(A0) // in HASHTBL(A0, cap, i2sz(0)) end // end of [hashtbl_make_nil] (* ****** ****** *) implement {}(*tmp*) hashtbl_get_size (tbl) = let // val+ HASHTBL (A, cat, ntot) = tbl in g1ofg0(ntot) // end // end of [hashtbl_get_size] (* ****** ****** *) implement {}(*tmp*) hashtbl_get_capacity (tbl) = let // val+HASHTBL(A, cap, _) = tbl in (cap) // end // end of [hashtbl_get_capacity] (* ****** ****** *) implement {key,itm} hashtbl_search_ref (tbl, k) = let // val+HASHTBL(A, cap, n) = tbl // val h = hash_key (k) val h = g0uint2uint_ulint_size(h) val i = g1uint_mod (g1ofg0(h), cap) // val ( pf0 | p0 ) = arrayptr_takeout_viewptr (A) val ( pf, fpf | pi ) = array_ptr_takeout (pf0 | p0, i) val (pf | pi) = viewptr_match (pf | pi) val cptr = chain_search_ref (!pi, k) prval () = pf0 := fpf (pf) prval () = arrayptr_addback (pf0 | A) // in cptr end // end of [hashtbl_search_ref] (* ****** ****** *) implement {key,itm} hashtbl_insert (tbl, k, x, res) = let // val+@HASHTBL(A, cap, n) = tbl // val h = hash_key (k) val h = g0uint2uint_ulint_size(h) val i = g1uint_mod (g1ofg0(h), cap) // val ( pf0 | p0 ) = arrayptr_takeout_viewptr (A) val ( pf, fpf | pi ) = array_ptr_takeout (pf0 | p0, i) val (pf | pi) = viewptr_match (pf | pi) val ans = chain_insert (!pi, k, x, res) prval () = pf0 := fpf (pf) prval () = arrayptr_addback (pf0 | A) // val () = if not(ans) then n := succ(n) // inserted // prval () = fold@ (tbl) // val () = if not(ans) then ( if hashtbl$recapacitize() > 0 then ignoret(hashtbl_adjust_capacity (tbl)) ) (* end of [if] *) // in ans end // end of [hashtbl_insert] (* ****** ****** *) implement {key,itm} hashtbl_insert_any (tbl, k, x) = let // val+@HASHTBL(A, cap, n) = tbl // val h = hash_key (k) val h = g0uint2uint_ulint_size(h) val i = g1uint_mod (g1ofg0(h), cap) // val ( pf0 | p0 ) = arrayptr_takeout_viewptr (A) val ( pf, fpf | pi ) = array_ptr_takeout (pf0 | p0, i) val (pf | pi) = viewptr_match (pf | pi) val () = chain_insert_any (!pi, k, x) prval () = pf0 := fpf (pf) prval () = arrayptr_addback (pf0 | A) // val () = n := succ(n) // insertion is always done // prval () = fold@ (tbl) // val () = if hashtbl$recapacitize() > 0 then ignoret(hashtbl_adjust_capacity (tbl)) // in // nothing end // end of [hashtbl_insert_any] (* ****** ****** *) implement {key,itm} hashtbl_takeout (tbl, k, res) = let // val+@HASHTBL(A, cap, n) = tbl // val h = hash_key (k) val h = g0uint2uint_ulint_size(h) val i = g1uint_mod (g1ofg0(h), cap) // val ( pf0 | p0 ) = arrayptr_takeout_viewptr (A) val ( pf, fpf | pi ) = array_ptr_takeout (pf0 | p0, i) val (pf | pi) = viewptr_match (pf | pi) val ans = chain_takeout (!pi, k, res) prval () = pf0 := fpf (pf) prval () = arrayptr_addback (pf0 | A) // val () = if ans then n := pred(n) // removed // prval () = fold@ (tbl) // in ans end // end of [hashtbl_takeout] (* ****** ****** *) implement {key,itm} hashtbl_takeout_all (tbl) = let // vtypedef chain = chain(key, itm) // typedef tenv = ptr // vtypedef ki = @(key, itm) vtypedef tenv2 = List0_vt (ki) // val+@HASHTBL(A, cap, n) = tbl // local implement {a}{env} array_rforeach$cont(x, env) = true implement (a:viewtype) array_rforeach$fwork (kxs, env) = let val kxs2 = $UN.castvwtp0{chain}(kxs) val () = kxs := $UN.castvwtp0{a}(chain_nil()) val kxs2 = chain_listize (kxs2) val kxs2 = list_vt_append (kxs2, $UN.castvwtp0{tenv2}(env)) val () = env := $UN.castvwtp0{ptr}(kxs2) in // nothing end // end of [array_rforeach$fwork] in (* in of [local] *) var env: ptr val () = env := $UN.castvwtp0{ptr}(list_vt_nil) val _(*cap*) = $effmask_all (arrayptr_rforeach_env (A, cap, env)) end // end of [local] // val () = n := i2sz(0) // prval () = fold@ (tbl) // in $UN.castvwtp0{tenv2}(env) end // end of [hashtbl_takeout_all] (* ****** ****** *) implement {key,itm} hashtbl_reset_capacity (tbl, cap2) = let // vtypedef chain = chain(key, itm) // val+@HASHTBL(A0, cap0, n) = tbl // prval [m2:int] EQINT () = eqint_make_guint (cap2) // val p0 = $UN.castvwtp0{ptr}(chain_nil{key,itm}()) val A2 = arrayptr_make_elt (cap2, p0) val A2 = $UN.castvwtp0{arrayptr(chain, m2)}(A2) // fun loop ( p: ptr, m: size_t , A2: !arrayptr (chain, m2) ) : void = let in // if m > 0 then let // val kxs = $UN.ptr0_get (p) val () = chainarr_insert_chain (A2, cap2, kxs) // in loop (ptr0_succ (p), pred(m), A2) end // end of [if] // end // end of [loop] // val A = A0 val cap = cap0 val () = loop (ptrcast(A), cap, A2) val () = arrayptr_free ($UN.castvwtp0{arrayptr(ptr,0)}(A)) // val () = A0 := A2 val () = cap0 := cap2 // prval () = fold@ (tbl) // in true(*always*) end // end of [hashtbl_reset_capacity] (* ****** ****** *) // // HX: please reimplement it if needed // implement {key,itm} hashtbl_adjust_capacity (tbl) = let // val+HASHTBL(A, cap, n) = tbl // in // if i2sz(5) * cap <= n then hashtbl_reset_capacity (tbl, cap + cap) else false // end // end of [hashtbl_adjust_capacity] (* ****** ****** *) implement {key,itm}{env} hashtbl_foreach_env (tbl, env) = let // vtypedef chain = chain(key, itm) // val+HASHTBL(A, cap, _) = tbl // local implement {a}{env} array_foreach$cont(kxs, env) = true implement array_foreach$fwork (kxs, env) = chain_foreach_env (kxs, env) in(* in of [local]*) val _(*asz*) = arrayptr_foreach_env (A, cap, env) end // end of [local] // in // nothing end // end of [hashtbl_foreach_env] (* ****** ****** *) implement {key,itm} hashtbl_listize (tbl) = let // vtypedef chain = chain(key, itm) // val+~HASHTBL(A, cap, _) = tbl // typedef tenv = ptr // vtypedef ki = @(key, itm) vtypedef tenv2 = List0_vt (ki) // local implement {a}{env} array_rforeach$cont(x, env) = true implement array_rforeach$fwork (kxs, env) = let val kxs = $UN.castvwtp1{chain}(kxs) val kxs2 = chain_listize (kxs) val kxs2 = list_vt_append(kxs2, $UN.castvwtp0{tenv2}(env)) val ((*set*)) = env := $UN.castvwtp0{ptr}(kxs2) in // nothing end // end of [array_rforeach$fwork] in(* in of [local] *) var env: ptr val () = env := $UN.castvwtp0{ptr}(list_vt_nil) val _(*cap*) = $effmask_all (arrayptr_rforeach_env (A, cap, env)) end // end of [local] // val () = arrayptr_free($UN.castvwtp0{arrayptr(ptr,0)}(A)) // in $UN.castvwtp0{tenv2}(env) end // end of [hashtbl_listize] (* ****** ****** *) implement {key,itm}{ki2} hashtbl_flistize (tbl) = let // vtypedef chain = chain(key, itm) // val+~HASHTBL(A, cap, n) = tbl // typedef tenv = ptr // vtypedef tenv2 = List0_vt (ki2) // local // implement {a}{env} array_rforeach$cont(x, env) = true implement array_rforeach$fwork (kxs, env) = let val kxs = $UN.castvwtp1{chain}(kxs) val kxs2 = chain_flistize (kxs) val kxs2 = list_vt_append (kxs2, $UN.castvwtp0{tenv2}(env)) val ((*void*)) = env := $UN.castvwtp0{ptr}(kxs2) in // nothing end // end of [array_rforeach$fwork] // in(* in of [local] *) // var env: ptr // val () = (env := $UN.castvwtp0{ptr}(list_vt_nil)) // val _(*cap*) = $effmask_all (arrayptr_rforeach_env (A, cap, env)) // end // end of [local] // val () = arrayptr_free ($UN.castvwtp0{arrayptr(ptr,0)}(A)) // in $UN.castvwtp0{tenv2}(env) end // end of [hashtbl_flistize] (* ****** ****** *) (* end of [hashtbl_chain.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/linralist_nested.dats0000644000175000017500000001621013431250607023113 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2012 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.funralist_nested" #define ATS_DYNLOADFLAG 0 // no dynamic loading at run-time (* ****** ****** *) staload _(*anon*) = "prelude/DATS/integer.dats" (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) staload "libats/SATS/linralist_nested.sats" (* ****** ****** *) // // HX-2013-01: // // this data structure is essentially based on // Chris Okasaki's random-access list (formulated // as a nested datatype). However, unlike Okasaki's // formulation, [ralist] is *not* a nested datatype. // (* ****** ****** *) datavtype node (a:vt@ype+, int(*d*)) = | N1 (a, 0) of (a) // singleton | {d:nat} N2 (a, d+1) of (node (a, d), node (a, d)) // end of [node] datavtype myralist (a:vt@ype+, int(*d*), int(*n*)) = | {d:nat} RAnil (a, d, 0) of () | {d:nat}{n:pos} RAevn (a, d, n+n) of myralist (a, d+1, n) | {d:nat}{n:nat} RAodd (a, d, n+n+1) of (node (a, d), myralist (a, d+1, n)) // end of [myralist] (* ****** ****** *) assume ralist_vtype (a:vt0p, n:int) = myralist (a, 0, n) // end of [ralist_vtype] (* ****** ****** *) primplmnt lemma_ralist_param (xs) = let in // case+ xs of | RAevn _ => () | RAodd _ => () | RAnil () => () // end // end of [lemma_ralist_param] (* ****** ****** *) implement{} linralist_nil{a} () = RAnil{a}{0}((*void*)) implement{} linralist_make_nil{a} () = RAnil{a}{0}((*void*)) (* ****** ****** *) local extern fun cons {a:vt0p}{d:nat}{n:nat} ( x0: node (a, d), xs: myralist (a, d, n) ) :<> myralist (a, d, n+1) implement cons{a}{d}{n} (x0, xs) = let in // case+ xs of | ~RAevn (xxs) => RAodd (x0, xxs) | ~RAodd (x1, xxs) => let val x0x1 = N2 (x0, x1) in RAevn (cons (x0x1, xxs)) end // end of [RAodd] | ~RAnil () => RAodd (x0, RAnil) // end // end of [cons] in (* in of [local] *) implement{a} linralist_cons (x, xs) = let // prval () = lemma_ralist_param (xs) // in cons{a} (N1{a}(x), xs) end // end of [linralist_cons] end // end of [local] (* ****** ****** *) implement{} linralist_is_nil (xs) = case+ xs of RAnil () => true | _ =>> false // end of [linralist_is_nil] implement{} linralist_is_cons (xs) = case+ xs of RAnil () => false | _ =>> true // end of [linralist_is_cons] (* ****** ****** *) local extern fun length {a:vt0p}{d:nat}{n:nat} (xs: !myralist (a, d, n)):<> int (n) implement length{a}{d}{n} (xs) = let in // case+ xs of | RAevn (xxs) => let val n2 = length (xxs) in 2 * n2 end // end of [RAevn] | RAodd (_, xxs) => let val n2 = length (xxs) in 2 * n2 + 1 end // end of [RAodd] | RAnil ((*void*)) => (0) // end // end of [length] in (* in of [local] *) implement linralist_length {a} (xs) = let // prval () = lemma_ralist_param (xs) // in length{a} (xs) end // end of [linralist_length] end // end of [local] (* ****** ****** *) implement{a} linralist_head (xs) = linralist_get_at (xs, 0) (* ****** ****** *) implement{a} linralist_tail (xs) = xs1 where { var xs1 = xs val _(*hd*) = linralist_uncons (xs1) } // end of [linralist_tail] (* ****** ****** *) local extern fun uncons{a:vt0p}{d:nat}{n:pos} ( xs: myralist (a, d, n), x: &ptr? >> node (a, d) ) : myralist (a, d, n-1) implement uncons{a}{d}{n} (xs, x) = let in // case+ xs of | ~RAevn (xxs) => let var nxx: ptr val xxs = uncons (xxs, nxx) // end of [val] val+ ~N2 (x0, x1) = nxx val () = x := x0 in RAodd (x1, xxs) end // end of [RAevn] | ~RAodd (x0, xxs) => let val () = x := x0 in case+ xxs of ~RAnil () => RAnil () | _ =>> RAevn (xxs) end // end of [RAodd] // end // end of [uncons] in (* in of [local] *) implement{a} linralist_uncons (xs) = let // var nx: ptr // unintialized val () = (xs := uncons{a} (xs, nx)) val+ ~N1 (x0) = nx // in x0 end // end of [linralist_uncons] end // end of [local] (* ****** ****** *) local extern fun getref_at {a:vt0p}{d:nat}{n:nat} ( xs: !myralist (a, d, n), i: natLt n ) :<> Ptr1 // end of [getref_at] implement getref_at {a}{d}{n} (xs, i) = let // extern praxi __vfree : node (a,d+1) - void // in // case+ xs of | RAevn (xxs) => let val p_x01 = getref_at (xxs, half i) val x01 = $UN.ptr1_get(p_x01) in if i mod 2 = 0 then let val+ @N2 (x0, _) = x01 val p_x0 = addr@ (x0) prval () = fold@ (x01) prval () = __vfree (x01) in p_x0 end else let val+ @N2 (_, x1) = x01 val p_x1 = addr@ (x1) prval () = fold@ (x01) prval () = __vfree (x01) in p_x1 end // end of [if] end // end of [RAevn] | @RAodd (x, xxs) => ( if i = 0 then let val p_x = addr@ (x) prval () = fold@ (xs) in p_x end else let val i1 = i - 1 val p_x01 = getref_at (xxs, half i1) prval () = fold@ (xs) val x01 = $UN.ptr1_get(p_x01) in if i mod 2 = 0 then let val+ @N2 (_, x1) = x01 val p_x1 = addr@ (x1) prval () = fold@ (x01) prval () = __vfree (x01) in p_x1 end else let val+ @N2 (x0, _) = x01 val p_x0 = addr@ (x0) prval () = fold@ (x01) prval () = __vfree (x01) in p_x0 end // end of [if] end // end of [if] ) // end of [RAodd] // end // end of [getref_at] in (* in of [local] *) implement{a} linralist_getref_at (xs, i) = let val p_i = getref_at {a} (xs, i) in $UN.cast{cPtr1(a)}(p_i) end // end of [linralist_getref_at] end // end of [local] (* ****** ****** *) implement{a} linralist_get_at (xs, i) = let val p = linralist_getref_at (xs, i) in $UN.cptr_get (p) end // end of [linralist_get_at] implement{a} linralist_set_at (xs, i, x) = let val p = linralist_getref_at (xs, i) in $UN.cptr_set (p, x) end // end of [linralist_set_at] (* ****** ****** *) (* end of [linralist_nested.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/funmap_rbtree.dats0000644000175000017500000004152213431250607022405 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: June, 2015 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.funmap_rbtree" // #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "libats/SATS/funmap_rbtree.sats" (* ****** ****** *) implement {key} compare_key_key (k1, k2) = gcompare_val_val (k1, k2) // end of [compare_key_key] (* ****** ****** *) // #define BLK 0; #define RED 1 // sortdef two = {c:nat | c < 2} sortdef clr = {c:nat | c < 2} // typedef color(c:int) = int(c) typedef color = [c:clr] color(c) // (* ****** ****** *) // // HX-2012-12-26: // the file should be included here // before [map_type] is assumed // #include "./SHARE/funmap.hats" // code reuse // (* ****** ****** *) // datatype rbtree ( key:t@ype, itm: t@ype , int(*color*), int(*bheight*), int(*violation*) ) = | E (key, itm, BLK, 0, 0) | {c,cl,cr:clr}{bh:nat}{v:int} {c == BLK && v == 0 || c == RED && v == cl+cr} T (key, itm, c, bh+1-c, v) of ( color c, key, itm , rbtree0 (key, itm, cl, bh), rbtree0 (key, itm, cr, bh) ) (* end of [T] *) // end of [datatype rbtree] // where rbtree0 ( key:t@ype, itm:t@ype, c:int, bh:int ) = rbtree (key, itm, c, bh, 0(*violation*)) // end of [rbtree0] // (* ****** ****** *) // assume map_type ( key:t0p, itm:t0p ) = [c:clr;bh:nat] rbtree0 (key, itm, c, bh) // end of [map_type] // (* ****** ****** *) implement{} funmap_nil () = E () implement{} funmap_make_nil () = E () (* ****** ****** *) implement {}(*tmp*) funmap_is_nil (map) = case+ map of E _ => true | T _ => false // end of [funmap_is_nil] implement {}(*tmp*) funmap_isnot_nil (map) = case+ map of T _ => true | E _ => false // end of [funmap_isnot_nil] (* ****** ****** *) implement {key,itm} funmap_size (map) = let // typedef rbtree0 ( c:int, bh:int ) = rbtree0(key, itm, c, bh) // fun aux {c:clr} {bh:nat} ( t0: rbtree0(c, bh), res: size_t ) : size_t = let in // case+ t0 of | E((*void*)) => res | T(_, _, _, tl, tr) => let val res = succ(res) val res = aux (tl, res) val res = aux (tr, res) in res end // end of [T] // end // end of [aux] // in $effmask_all (aux (map, i2sz(0))) end // end of [funmap_size] (* ****** ****** *) implement {key,itm} funmap_search (map, k0, res) = let // typedef rbtree0 ( c:int, bh:int ) = rbtree0(key, itm, c, bh) // fun search {c:clr} {bh:nat} .. ( t0: rbtree0(c, bh) , res: &itm? >> opt (itm, b) ) : #[b:bool] bool(b) = let in // case+ t0 of | E ( ) => let prval () = opt_none{itm}(res) in false end // end of [E] | T ( _(*h*), k, x, tl, tr ) => let val sgn = compare_key_key (k0, k) // end of [val] in case+ 0 of | _ when sgn < 0 => search (tl, res) | _ when sgn > 0 => search (tr, res) | _ => let val () = res := x prval () = opt_some{itm}(res) in true end // end of [_] end // end of [T] // end // end of [search] // in search (map, res) end // end of [funmap_search] (* ****** ****** *) // // HX: right rotation // fn{ key, itm:t0p } insfix_l {cl,cr:clr} {bh:nat}{v:nat} ( k: key, x: itm , tl: rbtree (key, itm, cl, bh, v) , tr: rbtree (key, itm, cr, bh, 0) ) :<> [c:clr] rbtree0 (key, itm, c, bh+1) = ( // let #define B BLK; #define R RED in case+ (tl) of | T (R, kl, xl, T (R, kll, xll, tlll, tllr), tlr) => T (R, kl, xl, T (B, kll, xll, tlll, tllr), T (B, k, x, tlr, tr)) | T (R, kl, xl, tll, T (R, klr, xlr, tlrl, tlrr)) => T (R, klr, xlr, T (B, kl, xl, tll, tlrl), T (B, k, x, tlrr, tr)) | _ (*non-R-rooted*) =>> T (B, k, x, tl, tr) end // ) (* end of [insfix_l] *) // (* ****** ****** *) // // HX: left rotation // fn{ key, itm:t0p} insfix_r {cl,cr:clr} {bh:nat}{v:nat} ( k: key, x: itm , tl: rbtree (key, itm, cl, bh, 0) , tr: rbtree (key, itm, cr, bh, v) ) :<> [c:clr] rbtree0 (key, itm, c, bh+1) = ( // let #define B BLK; #define R RED in case+ (tr) of | T (R, kr, xr, trl, T (R, krr, xrr, trrl, trrr)) => T (R, kr, xr, T (B, k, x, tl, trl), T (B, krr, xrr, trrl, trrr)) | T (R, kr, xr, T (R, krl, xrl, trll, trlr), trr) => T (R, krl, xrl, T (B, k, x, tl, trll), T (B, kr, xr, trlr, trr)) | _ (*non-R-rooted*) =>> T (B, k, x, tl, tr) end // ) (* end of [insfix_r] *) // (* ****** ****** *) implement {key,itm} funmap_insert ( map, k0, x0, res2 ) = res where { // #define B BLK; #define R RED // typedef rbtree0 ( c:int, bh:int ) = rbtree0(key, itm, c, bh) // fun insert {c:clr} {bh:nat} .. ( t0: rbtree0 (c, bh) , res: &bool? >> bool (b) , res2: &itm? >> opt (itm, b) ) : #[b:bool] [ c1:clr; v:nat | v <= c ] rbtree (key, itm, c1, bh, v) = ( case+ t0 of // | E((*void*)) => let val () = res := false prval () = opt_none{itm}(res2) in T{..}{..}{..}{0} (R, k0, x0, E, E) end // end of [E] // | T (c, k, x, tl, tr) => let val sgn = compare_key_key (k0, k) in if sgn < 0 then let val [cl:int,v:int] tl = insert (tl, res, res2) in if c = B then insfix_l(k, x, tl, tr) else T{..}{..}{..}{cl}(R, k, x, tl, tr) // end of [if] end // end of [then] else ( if sgn > 0 then let val [cr:int,v:int] tr = insert (tr, res, res2) in if c = B then insfix_r(k, x, tl, tr) else T{..}{..}{..}{cr}(R, k, x, tl, tr) // end of [if] end // end of [then] else let val () = res := true val () = res2 := x; prval () = opt_some{itm}(res2) in T{..}{..}{..}{0}(c, k, x0, tl, tr) end // end of [else] // end of [if] ) (* end of [else] *) // end of [if] end // end of [let] // end of [T] // ) (* end of [insert] *) // var res: bool val map1 = insert (map, res, res2) val () = ( case+ map1 of | T (R, k, x, tl, tr) => map := T (B, k, x, tl, tr) | _ =>> map := map1 ) (* end of [val] *) // } (* end of [funmap_insert] *) (* ****** ****** *) fn {key ,itm:t0p } rbtree_redden {bh:pos} ( t0: rbtree0 (key, itm, BLK, bh) ) :<> [ v:nat | v <= 2 ] rbtree (key, itm, RED, bh-1, v) = let val+T{..}{c,cl,cr}(_, k, x, tl, tr) = t0 in T{..}{..}{..}{cl+cr} (RED, k, x, tl, tr) end // end of [let] // end of [rbtree_redden] (* ****** ****** *) fn {key ,itm:t0p } remfix_l {cl,cr:clr} {bh:nat}{v:nat} ( k: key, x: itm , tl: rbtree (key, itm, cl, bh , v) , tr: rbtree (key, itm, cr, bh+1, 0) ) :<> [ c:clr;v:nat | v <= cr ] rbtree (key, itm, c, bh+1, v) = let #define B BLK; #define R RED in // case+ tl of | T(R, kl, xl, tll, tlr) => T{..}{..}{..}{cr}(R, k, x, T (B, kl, xl, tll, tlr), tr) | _ (*non-red-tree*) =>> ( case+ tr of | T{..}{cr,crl,crr} ( B, kr, xr, trl, trr ) => insfix_r ( k, x, tl, T{..}{..}{..}{crl+crr}(R, kr, xr, trl, trr) ) (* end of [T (B, ...)] *) | T(R, kr, xr, trl, trr) => let val+T(B, krl, xrl, trll, trlr) = trl val [cr2:int] tr2 = insfix_r (kr, xr, trlr, rbtree_redden trr) in T{..}{..}{..}{cr2}(R, krl, xrl, T (B, k, x, tl, trll), tr2) end (* end of [T (R, ...)] *) ) (* end of [_(*non-red-tree*)] *) // end // end of [remfix_l] (* ****** ****** *) fn {key ,itm:t0p } remfix_r {cl,cr:clr} {bh:nat}{v:nat} ( k: key, x: itm , tl: rbtree (key, itm, cl, bh+1, 0) , tr: rbtree (key, itm, cr, bh , v) ) :<> [ c:clr;v:nat | v <= cl ] rbtree (key, itm, c, bh+1, v) = let #define B BLK; #define R RED in // case+ tr of | T(R, kr, xr, trl, trr) => T{..}{..}{..}{cl}(R, k, x, tl, T (B, kr, xr, trl, trr)) | _(*non-red-tree*) =>> ( case+ tl of | T{..}{cl,cll,clr} ( B, kl, xl, tll, tlr ) => insfix_l ( k, x, T {..}{..}{..}{cll+clr}(R, kl, xl, tll, tlr), tr ) (* end of [T (B, ...)] *) | T(R, kl, xl, tll, tlr) => let val+ T (B, klr, xlr, tlrl, tlrr) = tlr val [cl2:int] tl2 = insfix_l (kl, xl, rbtree_redden tll, tlrl) in T{..}{..}{..}{cl2}(R, klr, xlr, tl2, T(B, k, x, tlrr, tr)) end (* end of [T (R, ...)] *) ) (* end of [_(*non-red-tree*)] *) end // end of [remfix_r] (* ****** ****** *) fun {key ,itm:t@ype} rbtree_remove_min {c:clr} {bh:nat | bh+c > 0} .. ( t0: rbtree0 (key, itm, c, bh) , k0: &key? >> key, x0: &itm? >> itm , dfbh: &int? >> int (d) ) : #[d:two | d <= bh] [c1:clr | c1 <= c+d] rbtree0 (key, itm, c1, bh-d) = ( // let #define B BLK; #define R RED in case+ t0 of | T (B, k, x, tl, tr) => ( case+ tl of | T _ => let val tl = rbtree_remove_min(tl, k0, x0, dfbh) // end of [val] in if dfbh = 0 then ( T{..}{..}{..}{0}(B, k, x, tl, tr) ) (* end of [then] *) else let val t2 = remfix_l (k, x, tl, tr) in case+ t2 of | T (R, k, x, tl, tr) => (dfbh := 0; T (B, k, x, tl, tr)) | _ (* non-red-tree *) =>> t2 end (* end of [else] *) // end of [if] end // end of [T] | E _ => (k0 := k; x0 := x; dfbh := 1; tr) ) (* end of [T (B, ...)] *) | T (R, k, x, tl, tr) => ( case+ tl of | T _ => let val tl = rbtree_remove_min(tl, k0, x0, dfbh) // end of [val] in if dfbh = 0 then ( T{..}{..}{..}{0}(R, k, x, tl, tr) ) (* end of [then] *) else let // dfbh = 1 val () = dfbh := 0 in insfix_r (k, x, tl, rbtree_redden tr) end (* end of [else] *) // end of [if] end // end of [T (B, ...)] | E () => (k0 := k; x0 := x; dfbh := 0; tr) ) (* end of [T (R, ...)] *) end // end of [let] // ) (* end of [rbtree_remove_min] *) (* ****** ****** *) fn {key ,itm:t@ype } rbtree_join {cl,cr:clr}{bh:nat} ( tl: rbtree0 (key, itm, cl, bh) , tr: rbtree0 (key, itm, cr, bh) ) : [ c:clr;v:nat | v <= cl+cr ] rbtree (key, itm, c, bh, v) = ( // case+ tr of | E _ => tl | T _ => let var k0: key and x0: itm var dfbh: int // uninitialized val [cr:int] tr = rbtree_remove_min(tr, k0, x0, dfbh) in if dfbh = 0 then T{..}{..}{..}{cl+cr}(RED, k0, x0, tl, tr) else remfix_r(k0, x0, tl, tr) // end of [if] end // end of [T] // ) (* end of [rbtree_join] *) (* ****** ****** *) // // HX-2011-09-24: // the pointer [pres] is assumed to be // associated with a proof of at-view if non-null // extern fun {key ,itm:t0p} funmap_takeout_ref ( &map (key, itm) >> _, k0: key, pres: ptr ) : bool // end of [funmap_takeout_ref] implement {key,itm} funmap_takeout_ref ( map, k0, pres ) = taken where { // #define B BLK; #define R RED // fun takeout {c:clr} {bh:nat} .. ( t0: rbtree0 (key, itm, c, bh) // rbtree0 , pres: ptr , dfbh: &int? >> int(d) , taken: &bool? >> bool ) : #[d:two | d <= bh] [c1:clr | c1 <= c+d] rbtree0 (key, itm, c1, bh-d) = ( // case+ t0 of // | E () => (dfbh := 0; taken := false; t0) // | T (B, k, x, tl, tr) => let val sgn = compare_key_key (k0, k) // end of [val] in if sgn < 0 then let val tl = takeout(tl, pres, dfbh, taken) // end of [val] in if dfbh = 0 then ( T{..}{..}{..}{0}(B, k, x, tl, tr) ) (* end of [then] *) else let // dfbh = 1 val t2 = remfix_l (k, x, tl, tr) in case+ t2 of | T (R, k, x, tl, tr) => (dfbh := 0; T (B, k, x, tl, tr)) | _ (* non-red-tree *) =>> t2 end (* end of [else] *) // end of [if] end else if sgn > 0 then let val tr = takeout (tr, pres, dfbh, taken) // end of [val] in if dfbh = 0 then ( T{..}{..}{..}{0}(B, k, x, tl, tr) ) (* end of [then] *) else let // dfbh = 1 val t2 = remfix_r (k, x, tl, tr) in case+ t2 of | T (R, k, x, tl, tr) => (dfbh := 0; T (B, k, x, tl, tr)) | _ (* non-red-tree *) =>> t2 end (* end of [else] *) end else let // x0 = x val () = if (pres > 0) then $UN.ptr0_set(pres, x) val () = taken := true val t2 = rbtree_join (tl, tr) in case+ t2 of | T (R, k, x, tl, tr) => (dfbh := 0; T (B, k, x, tl, tr)) | _ (* non-red-tree *) =>> (dfbh := 1; t2) end (* end of [if] *) end // end of [T (B, ...)] // | T (R, k, x, tl, tr) => let val sgn = compare_key_key (k0, k) // end of [val] in if sgn < 0 then let val tl = takeout(tl, pres, dfbh, taken) // end of [val] in if dfbh = 0 then ( T{..}{..}{..}{0}(R, k, x, tl, tr) ) (* end of [then] *) else let // dfbh = 1 val () = dfbh := 0 in remfix_l (k, x, tl, tr) end (* end of [else] *) // end of [if] end else if sgn > 0 then let val tr = takeout(tr, pres, dfbh, taken) in if dfbh = 0 then ( T{..}{..}{..}{0}(R, k, x, tl, tr) ) (* end of [then] *) else let // dfbh = 1 val () = dfbh := 0 in remfix_r (k, x, tl, tr) end (* end of [else] *) // end of [if] end else let // x0 = x val () = dfbh := 0 val () = if (pres > 0) then $UN.ptr0_set (pres, x) val () = taken := true in rbtree_join (tl, tr) end (* end of [if] *) end // end of [T (R, ...)] // ) (* end of [takeout] *) // var dfbh: int and taken: bool // val () = ( map := takeout (map, pres, dfbh, taken) ) (* end of [val] *) // } (* end of [funmap_takeout_ref] *) (* ****** ****** *) implement {key,itm} funmap_takeout ( map, k0, res ) = ans where { // val ans = funmap_takeout_ref (map, k0, addr@res) // val [b:bool] ans = g1ofg0(ans) // prval pfres = __assert ( view@ res ) where { extern praxi __assert{l_res:addr} (pf: itm? @ l_res):<> (opt (itm, b) @ l_res) } (* end of [prval] *) // prval () = view@res := pfres // } (* end of [funmap_takeout] *) (* ****** ****** *) // implement {key,itm} funmap_remove (map, k0) = funmap_takeout_ref (map, k0, the_null_ptr) // (* ****** ****** *) implement {key,itm}{env} funmap_foreach_env (xs, env) = let // typedef rbtree0 ( c:int, bh:int ) = rbtree0(key, itm, c, bh) // val p_env = addr@ (env) // fun foreach {c:clr} {bh:nat} .. ( t0: rbtree0 (c, bh), p_env: ptr ) : void = let in // case+ t0 of // | E ((*void*)) => () // | T (_, k, x, tl, tr) => let // val () = foreach (tl, p_env) // val ( pf, fpf | p_env ) = $UN.ptr_vtake (p_env) val ((*void*)) = funmap_foreach$fwork (k, x, !p_env) prval ((*void*)) = fpf (pf) // val () = foreach (tr, p_env) // in // nothing end // end of [T] // end // end of [foreach] // in foreach (xs, p_env) end // end of [funmap_foreach_env] (* ****** ****** *) implement {key,itm} funmap_rbtree_height (t0) = let // typedef rbtree0 ( c:int, bh:int ) = rbtree0(key, itm, c, bh) // fun aux {c:clr} {bh:nat} .. ( t0: rbtree0 (c, bh) ) :<> intGte(0) = ( // case+ t0 of | E ((*void*)) => 0 | T (_, _, _, tl, tr) => 1 + max (aux(tl), aux(tr)) // ) (* end of [aux] *) // in aux(t0) end // end of [funmap_rbtree_height] (* ****** ****** *) implement {key,itm} funmap_rbtree_bheight (t0) = let // typedef rbtree0 ( c:int, bh:int ) = rbtree0(key, itm, c, bh) // fun aux {c:clr} {bh,n:nat} .. ( t0: rbtree0 (c, bh), n: int(n) ) :<> int(bh+n) = ( // case+ t0 of | E ((*void*)) => n | T (c, _, _, tl, tr) => aux(tl, n+1-c) // ) (* end of [aux] *) // in aux(t0, 0) end // end of [funmap_rbtree_bheight] (* ****** ****** *) (* end of [funmap_rbtree.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/funmap_avltree.dats0000644000175000017500000003516713431250607022574 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: August, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.funmap_avltree" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/funmap_avltree.sats" (* ****** ****** *) implement {key} compare_key_key (k1, k2) = gcompare_val_val (k1, k2) // end of [compare_key_key] (* ****** ****** *) // // HX-2012-12-26: // the file should be included here // before [map_type] is assumed // #include "./SHARE/funmap.hats" // code reuse // (* ****** ****** *) // // HX: maximal height difference of two siblings // #define HTDF 1 #define HTDF1 (HTDF+1) #define HTDF_1 (HTDF-1) // (* ****** ****** *) datatype avltree ( key:t@ype, itm:t@ype+, int(*height*) ) = | {hl,hr:nat | hl <= hr+HTDF; hr <= hl+HTDF} B (key, itm, 1+max(hl,hr)) of ( int(1+max(hl,hr)), key, itm, avltree(key, itm, hl), avltree(key, itm, hr) ) | E (key, itm, 0) of ((*void*)) // end of [datatype avltree] (* ****** ****** *) typedef avltree (key:t0p, itm:t0p) = [h:nat] avltree (key, itm, h) // end of [avltree] typedef avltree_inc (key:t0p, itm:t0p, h:int) = [h1:nat | h <= h1; h1 <= h+1] avltree (key, itm, h1) // end of [avltree_inc] typedef avltree_dec (key:t0p, itm:t0p, h:int) = [h1:nat | h1 <= h; h <= h1+1] avltree (key, itm, h1) // end of [avltree_dec] (* ****** ****** *) assume map_type (key:t0p, itm:t0p) = avltree (key, itm) // end of [map_type] (* ****** ****** *) implement{} funmap_nil () = E () implement{} funmap_make_nil () = E () (* ****** ****** *) implement{} funmap_is_nil (map) = case+ map of E _ => true | B _ => false // end of [funmap_is_nil] implement{} funmap_isnot_nil (map) = case+ map of B _ => true | E _ => false // end of [funmap_isnot_nil] (* ****** ****** *) implement {key,itm} funmap_size (map) = let // fun aux ( t0: avltree (key, itm), res: size_t ) : size_t = let in // case+ t0 of | B ( _, _, _, tl, tr ) => let val res = succ(res) val res = aux (tl, res) val res = aux (tr, res) in res end // end of [B] | E ((*void*)) => res // end // end of [aux] // in $effmask_all (aux (map, i2sz(0))) end // end of [funmap_size] (* ****** ****** *) implement {key,itm} funmap_search (map, k0, res) = let // fun search{h:nat} .. ( t0: avltree (key, itm, h) , res: &itm? >> opt (itm, b) ) : #[b:bool] bool(b) = let in // case+ t0 of | B ( _(*h*), k, x, tl, tr ) => let val sgn = compare_key_key (k0, k) // end of [val] in case+ 0 of | _ when sgn < 0 => search (tl, res) | _ when sgn > 0 => search (tr, res) | _ => let val () = res := x prval () = opt_some{itm}(res) in true end // end of [_] end // end of [B] | E () => let prval () = opt_none{itm}(res) in false end // end of [E] // end // end of [search] // in search (map, res) end // end of [funmap_search] (* ****** ****** *) macdef avlht (t) = ( case+ ,(t) of B (h, _, _, _, _) => h | E ((*void*)) => 0 ) // end of [avlht] (* ****** ****** *) (* ** left rotation for restoring height invariant *) fn{ key,itm:t0p } avltree_lrotate {hl,hr:nat | hl+HTDF1 == hr} ( k: key, x: itm , hl : int hl , tl: avltree (key, itm, hl) , hr : int hr , tr: avltree (key, itm, hr) ) :<> avltree_inc (key, itm, hr) = let val+B{..}{hrl,hrr}(_, kr, xr, trl, trr) = tr val hrl = avlht(trl) : int hrl and hrr = avlht(trr) : int hrr in // if hrl <= hrr+HTDF_1 then let val hrl1 = hrl + 1 in B{key,itm} ( 1+max(hrl1,hrr), kr, xr , B{key,itm}(hrl1, k, x, tl, trl), trr ) end else let // [hrl=hrr+2]: deep rotation val+B{..}{hrll,hrlr}(_(*hrl*), krl, xrl, trll, trlr) = trl val hrll = avlht(trll) : int hrll and hrlr = avlht(trlr) : int hrlr in B{key,itm} ( hr, krl, xrl , B{key,itm}(1+max(hl,hrll), k, x, tl, trll) , B{key,itm}(1+max(hrlr,hrr), kr, xr, trlr, trr) ) end // end of [if] // end // end of [avltree_lrotate] (* ****** ****** *) (* ** right rotation for restoring height invariant *) fn{key,itm:t0p} avltree_rrotate {hl,hr:nat | hl == hr+HTDF1} ( k: key, x: itm , hl: int hl , tl: avltree (key, itm, hl) , hr: int hr , tr: avltree (key, itm, hr) ) :<> avltree_inc (key, itm, hl) = let val+B{..}{hll,hlr}(_(*hl*), kl, xl, tll, tlr) = tl val hll = avlht(tll) : int hll and hlr = avlht(tlr) : int hlr in // if hll+HTDF_1 >= hlr then let val hlr1 = hlr + 1 in B{key,itm} ( 1+max(hll,hlr1), kl, xl , tll, B{key,itm}(hlr1, k, x, tlr, tr) ) end else let val+B{..}{hlrl,hlrr}(_(*hlr*), klr, xlr, tlrl, tlrr) = tlr val hlrl = avlht(tlrl) : int hlrl and hlrr = avlht(tlrr) : int hlrr in B{key,itm} ( hl, klr, xlr , B{key,itm}(1+max(hll,hlrl), kl, xl, tll, tlrl) , B{key,itm}(1+max(hlrr,hr), k, x, tlrr, tr) ) end // end of [if] // end // end of [avltree_rrotate] (* ****** ****** *) implement {key,itm} funmap_insert ( map, k0, x0, res2 ) = res where { // fun insert {h:nat} .. ( t0: avltree (key, itm, h) , res: &bool? >> bool (b) , res2: &itm? >> opt (itm, b) ) : #[b:bool] avltree_inc (key, itm, h) = let in // case+ t0 of | B{..}{hl,hr} (h, k, x, tl, tr) => let val sgn = compare_key_key (k0, k) in case+ 0 of | _ when sgn < 0 => let val [hl:int] tl = insert (tl, res, res2) val hl = avlht(tl) : int (hl) and hr = avlht(tr) : int (hr) in if hl - hr <= HTDF then B{key,itm}(1+max(hl,hr), k, x, tl, tr) else // hl = hr+HTDF1 avltree_rrotate (k, x, hl, tl, hr, tr) // end of [if] end // end of [sgn < 0] | _ when sgn > 0 => let val [hr:int] tr = insert (tr, res, res2) val hl = avlht(tl) : int (hl) and hr = avlht(tr) : int (hr) in if hr - hl <= HTDF then B{key,itm}(1+max(hl, hr), k, x, tl, tr) else // hl+HTDF1 = hr avltree_lrotate (k, x, hl, tl, hr, tr) // end of [if] end // end of [sgn > 0] | _ (* sgn=0 *) => let val () = res := true val () = res2 := x prval () = opt_some{itm}(res2) in B{key,itm}(h, k, x0, tl, tr) end // end of [sgn = 0] end (* end of [B] *) | E ((*void*)) => let val () = res := false prval () = opt_none{itm}(res2) in B{key,itm}(1, k0, x0, E (), E ()) end (* end of [E] *) // end // end of [insert] // var res: bool // uninitialized val ((*void*)) = map := insert (map, res, res2) // } // end of [funmap_insert] (* ****** ****** *) fun{ key,itm:t0p } avlmaxout{h:pos} .. ( t: avltree (key, itm, h) , k0: &key? >> key, x0: &itm? >> itm ) : avltree_dec (key, itm, h) = let // val+B{..}{hl,hr}(h, k, x, tl, tr) = t // in // case+ tr of | B _ => let val [hr:int] tr = avlmaxout (tr, k0, x0) val hl = avlht(tl) : int(hl) and hr = avlht(tr) : int(hr) in if hl - hr <= HTDF then B{key,itm}(1+max(hl,hr), k, x, tl, tr) else avltree_rrotate (k, x, hl, tl, hr, tr) // end of [if] end // end of [B] | E () => (k0 := k; x0 := x; tl) // end // end of [avlmaxout] (* ****** ****** *) fun{ key,itm:t0p } avlminout{h:pos} .. ( t: avltree (key, itm, h) , k0: &key? >> key, x0: &itm? >> itm ) : avltree_dec (key, itm, h) = let // val+B{..}{hl,hr}(h, k, x, tl, tr) = t // in // case+ tl of | B _ => let val [hl:int] tl = avlminout (tl, k0, x0) val hl = avlht(tl) : int(hl) and hr = avlht(tr) : int(hr) in if hr - hl <= HTDF then B{key,itm}(1+max(hl,hr), k, x, tl, tr) else avltree_lrotate (k, x, hl, tl, hr, tr) // end of [if] end // end of [B] | E () => (k0 := k; x0 := x; tr) // end // end of [avlminout] (* ****** ****** *) (* ** left join: height(tl) >= height(tr) *) fun{ key,itm:t0p } avltree_ljoin {hl,hr:nat | hl >= hr} .. ( k: key, x: itm , tl: avltree (key, itm, hl) , tr: avltree (key, itm, hr) ) :<> avltree_inc (key, itm, hl) = let val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in // if hl >= hr + HTDF1 then let val+B{..}{hll, hlr}(_, kl, xl, tll, tlr) = tl val [hlr:int] tlr = avltree_ljoin (k, x, tlr, tr) val hll = avlht(tll) : int hll and hlr = avlht(tlr) : int hlr in if hlr <= hll + HTDF then B{key,itm}(1+max(hll,hlr), kl, xl, tll, tlr) else avltree_lrotate (kl, xl, hll, tll, hlr, tlr) // end of [if] end else B{key,itm}(hl+1, k, x, tl, tr) // end of [if] // end // end of [avltree_ljoin] (* ****** ****** *) (* ** right join: height(tl) <= height(tr) *) fun{ key,itm:t0p } avltree_rjoin {hl,hr:nat | hl <= hr} .
. ( k: key, x: itm , tl: avltree (key, itm, hl) , tr: avltree (key, itm, hr) ) :<> avltree_inc (key, itm, hr) = let val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in // if hr >= hl + HTDF1 then let val+B{..}{hrl,hrr}(_, kr, xr, trl, trr) = tr val [hrl:int] trl = avltree_rjoin (k, x, tl, trl) val hrl = avlht(trl) : int hrl and hrr = avlht(trr) : int hrr in if hrl <= hrr + HTDF then B{key,itm}(1+max(hrl,hrr), kr, xr, trl, trr) else avltree_rrotate (kr, xr, hrl, trl, hrr, trr) // end of [if] end else B{key,itm}(hr+1, k, x, tl, tr) // end of [if] // end // end of [avltree_rjoin] (* ****** ****** *) fn{ key,itm:t0p } avltree_join3 {hl,hr:nat} ( k: key, x: itm , tl: avltree (key, itm, hl) , tr: avltree (key, itm, hr) ) :<> [ h:int | hl <= h ; hr <= h ; h <= 1+max(hl,hr) ] avltree (key, itm, h) = let val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in if hl >= hr then avltree_ljoin (k, x, tl, tr) else avltree_rjoin (k, x, tl, tr) // end of [if] end // end of [avltree_join3] (* ****** ****** *) fn{ key,itm:t0p } avltree_join2 {hl,hr:nat} ( tl: avltree (key, itm, hl) , tr: avltree (key, itm, hr) ) :<> [ h:nat | h <= 1+max(hl,hr) ] avltree (key, itm, h) = ( case+ (tl, tr) of | (E (), _) => tr | (_, E ()) => tl | (_, _) =>> let var kmin: key // uninitialized var xmin: itm // uninitialized val tr = $effmask_wrt (avlminout (tr, kmin, xmin)) // end of [val] in avltree_join3 (kmin, xmin, tl, tr) end // end of [_, _] ) // end of [avltree_join2] (* ****** ****** *) implement {key,itm} funmap_takeout ( map, k0, res2 ) = res where { // fun takeout {h:nat} .. ( t0: avltree (key, itm, h) , res: &bool? >> bool(b) , res2: &itm? >> opt(itm, b) ) : #[b:bool] avltree_dec (key, itm, h) = let in // case+ t0 of | B {..}{hl,hr} (h, k, x, tl, tr) => let val sgn = compare_key_key (k0, k) in case+ 0 of | _ when sgn < 0 => let val [hl:int] tl = takeout (tl, res, res2) val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in if hr - hl <= HTDF then B{key,itm}(1+max(hl,hr), k, x, tl, tr) else avltree_lrotate (k, x, hl, tl, hr, tr) // end of [if] end // end of [sgn < 0] | _ when sgn > 0 => let val [hr:int] tr = takeout (tr, res, res2) val hl = avlht(tl) : int hl and hr = avlht(tr) : int hr in if hl - hr <= HTDF then B{key,itm}(1+max(hl,hr), k, x, tl, tr) else avltree_rrotate (k, x, hl, tl, hr, tr) // end of [if] end // end of [sgn > 0] | _ (* sgn = 0 *) => let val () = res := true // found val () = res2 := x prval () = opt_some{itm}(res2) in case+ tr of | B _ => let var kmin: key? var xmin: itm? val [hr:int] tr = avlminout (tr, kmin, xmin) val hl = avlht(tl) : int (hl) and hr = avlht(tr) : int (hr) in if hl - hr <= HTDF then B{key,itm}(1+max(hl,hr), kmin, xmin, tl, tr) else avltree_rrotate (kmin, xmin, hl, tl, hr, tr) // end of [if] end // end of [B] | E _ => tl end // end of [sgn = 0] end // end of [B] | E ((*void*)) => let val () = res := false prval () = opt_none{itm}(res2) in t0 end // end of [E] // end // end of [takeout] // var res: bool val ((*void*)) = map := takeout (map, res, res2) // } // end of [funmap_takeout] (* ****** ****** *) implement {key,itm}{env} funmap_foreach_env (xs, env) = let // val p_env = addr@ (env) // fun foreach {h:nat} .. ( t: avltree (key, itm, h), p_env: ptr ) : void = let in // case+ t of | B (_, k, x, tl, tr) => let // val () = foreach (tl, p_env) // val ( pf, fpf | p_env ) = $UN.ptr_vtake (p_env) val ((*void*)) = funmap_foreach$fwork (k, x, !p_env) prval ((*void*)) = fpf (pf) // val () = foreach (tr, p_env) // in // nothing end // end of [B] | E ((*void*)) => () // end // end of [foreach] // in foreach (xs, p_env) end // end of [funmap_foreach_env] (* ****** ****** *) implement {key,itm} funmap_streamize (map) = let // typedef ki = @(key, itm) // fun auxmain{h:nat} ( t0: avltree(key, itm, h) ) : stream_vt(@(key, itm)) = ( // case+ t0 of // | E () => stream_vt_make_nil() // | B ( _, k, x, tl, tr ) => stream_vt_append ( auxmain(tl) , $ldelay(stream_vt_cons{ki}((k, x), auxmain(tr))) ) (* stream_vt_append *) // ) (* end of [auxmain] *) // in $effmask_all(auxmain(map)) end // end of [funmap_streamize] (* ****** ****** *) // implement {key,itm} funmap_avltree_height (map) = avlht (map) // (* ****** ****** *) (* end of [funmap_avltree.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/funmset_listord.dats0000644000175000017500000002013513431250607022772 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** Functional mset based on ordered lists ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: May 18, 2011 ** *) (* ****** ****** *) // // HX-2015-09: ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.funmset_listord" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_" // prefix for external names (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/funmset_listord.sats" (* ****** ****** *) // #include "./SHARE/funmset.hats" // code reuse // (* ****** ****** *) assume mset_type (a: t0p) = List0 @(intGt(0), a) (* ****** ****** *) // // HX: // A mset is represented as a sorted list in descending order; // note that descending order is chosen to faciliate set comparison // (* ****** ****** *) implement {}(*tmp*) funmset_nil () = list_nil() implement {}(*tmp*) funmset_make_nil () = list_nil() (* ****** ****** *) // implement {a}(*tmp*) funmset_sing (x) = list_cons((1, x), list_nil) implement {a}(*tmp*) funmset_make_sing (x) = list_cons((1, x), list_nil) // (* ****** ****** *) implement {a}(*tmp*) funmset_make_list (xs) = let // fun loop1 ( xs: List_vt(a) ) : mset(a) = ( case+ xs of | ~nil_vt() => list_nil() | ~cons_vt(x, xs) => loop2(xs, x, 1, list_nil) ) (* end of [loop1] *) // and loop2 ( xs: List_vt(a), x0: a, n: intGt(0), res: mset(a) ) : mset(a) = ( case+ xs of | ~nil_vt() => list_cons ((n, x0), res) // end of [list_nil] | ~cons_vt(x1, xs) => let val sgn = compare_elt_elt
(x0, x1) in if sgn = 0 then loop2(xs, x0, n+1, res) else loop2(xs, x1, 1, list_cons ((n, x0), res)) // end of [if] end // end of [list_cons] ) // implement list_mergesort$cmp (x1, x2) = compare_elt_elt (x1, x2) // in $effmask_all(loop1(list_mergesort(xs))) end // end of [funmset_make_list] (* ****** ****** *) // implement {}(*tmp*) funmset_is_nil(nxs) = list_is_nil(nxs) implement {}(*tmp*) funmset_isnot_nil(nxs) = list_is_cons(nxs) // (* ****** ****** *) implement {a}(*tmp*) funmset_size(nxs) = let // fun loop ( nxs: List0 @(intGt(0), a), res: size_t ) : size_t = ( case+ nxs of | list_nil ((*void*)) => res | list_cons ((n, x), nxs) => loop (nxs, res+i2sz(n)) // end of [list_cons] ) // in $effmask_all(loop(nxs, i2sz(0))) end // end of [funmset_size] (* ****** ****** *) // implement {a}(*tmp*) funmset_is_member (nxs, x0) = funmset_get_ntime(nxs, x0) > 0 implement {a}(*tmp*) funmset_isnot_member (nxs, x0) = funmset_get_ntime(nxs, x0) = 0 // (* ****** ****** *) implement {a}(*tmp*) funmset_get_ntime (nxs, x0) = let // fun loop ( nxs: List0 @(intGt(0), a), x0: a ) : intGte(0) = ( case+ nxs of | list_nil ((*void*)) => 0 | list_cons ((n, x), nxs) => let val sgn = compare_elt_elt (x0, x) in if sgn < 0 then loop(nxs, x0) else (if sgn > 0 then 0 else n) // end of [if] end // end of [list_cons] ) (* end of [loop] *) // in loop(nxs, x0) end // end of [funmset_get_ntime] (* ****** ****** *) implement {a}(*tmp*) funmset_insert2 (nxs, n0, x0) = let // typedef nx = @(intGt(0), a) // fun loop ( nxs: List(nx) , nbef: &int? >> intGte(0) ) : List0 nx = ( // case+ nxs of | list_nil() => let val () = nbef := 0 in list_cons((n0, x0), list_nil) end // end of [list_nil] | list_cons (nx, nxs2) => let val x1 = nx.1 val sgn = compare_elt_elt (x0, nx.1) // end of [val] in if sgn < 0 then list_cons(nx, loop(nxs2, nbef)) else ( if sgn > 0 then (nbef := 0; list_cons((n0, x0), nxs)) else (nbef := nx.0; list_cons((nbef+n0, x1), nxs2)) // end of [if] ) (* end of [else] *) // end of [if] end // end of [list_cons] ) (* end of [loop] *) // var nbef: int // uninitized // in nxs := loop(nxs, nbef); nbef end // end of [funmset_insert2] (* ****** ****** *) implement {a}(*tmp*) funmset_remove2 (nxs, n0, x0) = let // typedef nx = @(intGt(0), a) // fun loop ( nxs: List(nx), nbef: &int? >> intGte(0) ) : List0 nx = ( // case+ nxs of | list_nil() => ( nbef := 0; list_nil() ) // end of [list_nil] | list_cons (nx, nxs2) => let val x1 = nx.1 val sgn = compare_elt_elt (x0, nx.1) // end of [val] in if sgn < 0 then list_cons(nx, loop(nxs2, nbef)) else ( if sgn > 0 then (nbef := 0; nxs) else let val () = nbef := nx.0 in if n0 <= nbef then nxs2 else list_cons((n0-nbef, nx.1), nxs2) // end of [if] end // end of [else] // end of [if] ) (* end of [else] *) // end of [if] end // end of [list_cons] ) (* end of [loop] *) // var nbef: int // uninitized // in nxs := loop(nxs, nbef); nbef end // end of [funmset_remove2] (* ****** ****** *) implement {a}(*tmp*) funmset_union (nxs, nys) = let // typedef nx = (intGt(0), a) // prval () = lemma_list_param(nxs) prval () = lemma_list_param(nys) // fun union ( nxs: List0(nx) , nys: List0(nx) ) : List0(nx) = ( // case+ (nxs, nys) of // case+ | (list_nil(), _) => nys | (_, list_nil()) => nxs | (list_cons(nx, nxs2), list_cons(ny, nys2)) => let val x = nx.1 and y = ny.1 val sgn = compare_elt_elt (x, y) in if sgn < 0 then list_cons(ny, union(nxs, nys2)) else ( if sgn > 0 then list_cons(nx, union(nxs2, nys)) else list_cons((nx.0+ny.0, x), union(nxs2, nys2)) // end of [if] ) (* end of [if] *) // end of [if] end // end of [cons, cons] // ) (* end of [union] *) // in union(nxs, nys) end // end of [funmset_union] (* ****** ****** *) implement {a}(*tmp*) funmset_intersect (nxs, nys) = let // typedef nx = (intGt(0), a) // prval () = lemma_list_param(nxs) prval () = lemma_list_param(nys) // fun intersect ( nxs: List0(nx) , nys: List0(nx) ) : List0(nx) = ( // case+ (nxs, nys) of // case+ | (list_nil(), _) => list_nil() | (_, list_nil()) => list_nil() | (list_cons(nx, nxs2), list_cons(ny, nys2)) => let val x = nx.1 and y = ny.1 val sgn = compare_elt_elt (x, y) in if sgn < 0 then intersect(nxs, nys2) else ( if sgn > 0 then intersect(nxs2, nys) else list_cons((min(nx.0,ny.0), x), intersect(nxs2, nys2)) // end of [if] ) (* end of [if] *) // end of [if] end // end of [cons, cons] // ) (* end of [intersect] *) // in intersect(nxs, nys) end // end of [funmset_intersect] (* ****** ****** *) implement {a}{env} funmset_foreach_env (nxs, env) = let // fun loop: $d2ctype ( funmset_foreach_env ) = lam(nxs, env) => ( case+ nxs of | list_nil ((*void*)) => () | list_cons ((n, x), nxs) => let val () = funmset_foreach$fwork(n, x, env) in loop(nxs, env) end // end of [list_cons] ) // in loop(nxs, env) end // end of [funmset_foreach_env] (* ****** ****** *) (* end of [funmset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/funmap_list.dats0000644000175000017500000001106013431250607022067 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: December, 2012 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "libats/SATS/funmap_list.sats" (* ****** ****** *) // #include "./SHARE/funmap.hats" // code reuse // (* ****** ****** *) // assume map_type (key:t0p, itm: vt0p) = List0 @(key, itm) // end of [map_type] // (* ****** ****** *) implement{} funmap_nil () = list_nil () implement{} funmap_make_nil () = list_nil () (* ****** ****** *) implement{} funmap_is_nil (map) = case+ map of list_nil _ => true | list_cons _ => false // end of [funmap_is_nil] implement{} funmap_isnot_nil (map) = case+ map of list_nil _ => false | list_cons _ => true // end of [funmap_isnot_nil] (* ****** ****** *) implement {key,itm} funmap_size (map) = g1int2uint (list_length (map)) // end of [funmap_size] (* ****** ****** *) implement {key,itm} funmap_search (map, k0, res) = let // fun search ( kxs: List @(key, itm) , k0: key, res: &itm? >> opt (itm, b) ) : #[b:bool] bool (b) = let in // case+ kxs of | list_cons (kx, kxs) => let val iseq = equal_key_key (k0, kx.0) // end of [val] in if iseq then let val () = res := kx.1 prval () = opt_some {itm} (res) in true end else search (kxs, k0, res) // end of [if] end // end of [list_cons] | list_nil () => let prval () = opt_none {itm} (res) in false end // end of [list_nil] // end // end of [search] // in // $effmask_all (search (map, k0, res)) // end // end of [funmap_search] (* ****** ****** *) implement {key,itm} funmap_insert ( map, k0, x0, res ) = let // typedef ki = @(key, itm) // val ans = funmap_takeout(map, k0, res) val () = (map := list_cons{ki}( @(k0, x0), map )) // end of [val] // in ans end // end of [funmap_insert] (* ****** ****** *) implement {key,itm} funmap_insert_any (map, k0, x0) = let // typedef ki = @(key, itm) // in map := list_cons{ki}( @(k0, x0), map ) end // end of [funmap_insert_any] (* ****** ****** *) implement {key,itm} funmap_takeout (map, k0, res) = let // typedef map = map (key, itm) // fun loop ( map: &map >> _ , kxs1: List0 @(key, itm) , kxs2: List0_vt @(key, itm) , k0: key, res: &itm? >> opt (itm, b) ) : #[b:bool] bool (b) = let // typedef ki = @(key, itm) // in // case+ kxs1 of | list_cons (kx, kxs1) => let val iseq = equal_key_key (k0, kx.0) in if iseq then let val () = res := kx.1 prval () = opt_some {itm} (res) val () = map := list_reverse_append1_vt (kxs2, kxs1) in true end else loop (map, kxs1, list_vt_cons{ki}(kx, kxs2), k0, res) // end of [if] end // end of [list_cons] | list_nil () => let val () = list_vt_free (kxs2) prval () = opt_none {itm} (res) in false end // end of [list_nil] // end // end of [loop] // in loop (map, map, list_vt_nil (), k0, res) end // end of [funmap_takeout] (* ****** ****** *) implement {key,itm}{env} funmap_foreach_env (map, env) = let // vtypedef ki = @(key, itm) // implement{ki}{env} list_foreach$cont (kx, env) = true implement list_foreach$fwork (kx, env) = funmap_foreach$fwork (kx.0, kx.1, env) // in list_foreach_env (map, env) end // end of [funmap_foreach_env] (* ****** ****** *) (* end of [funmap_list.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/linmap_avltree.dats0000644000175000017500000004404613431250607022562 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.linmap_avltree" // #define ATS_DYNLOADFLAG 0 // no dynloading // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "libats/SATS/linmap_avltree.sats" // (* ****** ****** *) // #include "./SHARE/linmap.hats" // code reuse #include "./SHARE/linmap_node.hats" // code reuse // (* ****** ****** *) // stadef mytkind = $extkind"atslib_linmap_avltree" // (* ****** ****** *) // // HX: maximal height difference of two siblings // #define HTDF 1 #define HTDF1 (HTDF+1) #define HTDF_1 (HTDF-1) // (* ****** ****** *) // datavtype avltree ( key: t@ype, itm:vt@ype+, int(*height*) ) = | {hl,hr:nat | hl <= hr+HTDF; hr <= hl+HTDF} B (key, itm, 1+max(hl,hr)) of ( int (1+max(hl,hr)), key, itm, avltree (key, itm, hl), avltree (key, itm, hr) ) | E (key, itm, 0) of ((*void*)) // end of [datavtype avltree] // (* ****** ****** *) // vtypedef avltree( key:t0p, itm:vt0p ) = [h:nat] avltree(key, itm, h) // vtypedef avltree_inc (key:t0p, itm:vt0p, h:int) = [h1:nat | h <= h1; h1 <= h+1] avltree (key, itm, h1) // vtypedef avltree_dec (key:t0p, itm:vt0p, h:int) = [h1:nat | h1 <= h; h <= h1+1] avltree (key, itm, h1) // (* ****** ****** *) // assume map_vtype ( key:t0p, itm: vt0p ) = avltree (key, itm) // (* ****** ****** *) // implement {}(*tmp*) linmap_nil() = E() implement {}(*tmp*) linmap_make_nil() = E() // (* ****** ****** *) implement {}(*tmp*) linmap_is_nil (map) = case+ map of E _ => true | B _ => false // end of [linmap_is_nil] implement {}(*tmp*) linmap_isnot_nil (map) = case+ map of B _ => true | E _ => false // end of [linmap_isnot_nil] (* ****** ****** *) implement {key,itm} linmap_size (map) = let // fun aux ( t0: !avltree (key, itm), res: size_t ) : size_t = let in // case+ t0 of | B ( _, _, _, tl, tr ) => let val res = succ(res) val res = aux (tl, res) val res = aux (tr, res) in res end // end of [B] | E ((*void*)) => res // end // end of [aux] // in $effmask_all (aux (map, i2sz(0))) end // end of [linmap_size] (* ****** ****** *) implement {key,itm} linmap_search_ref (map, k0) = let // fun search {h:nat} .. ( t0: !avltree (key, itm, h) ) : cPtr0(itm) = let in // case+ t0 of // | @B ( _(*h*), k, x, tl, tr ) => let val sgn = compare_key_key (k0, k) // end of [val] in case+ 0 of | _ when sgn < 0 => let val res = search (tl) prval () = fold@ (t0) in res end // end of [sgn < 0] | _ when sgn > 0 => let val res = search (tr) prval () = fold@ (t0) in res end // end of [sgn > 0] | _ (*sgn = 0*) => let val p_x = addr@x prval () = fold@ (t0) in $UN.ptr2cptr(p_x) end // end of [sgn = 0] end // end of [let] // end of [B] // | E ((*void*)) => cptr_null{itm}() // end // end of [search] // in search (map) end // end of [linmap_search_ref] (* ****** ****** *) implement {key,itm} linmap_freelin (map) = let // fun aux {h:nat} .. ( t: avltree (key, itm, h) ) : void = let in // case+ t of | @B ( _, k, x, tl, tr ) => let val () = linmap_freelin$clear (x) val tl = tl and tr = tr val () = free@ {..}{0,0} (t) val () = aux (tl) and () = aux (tr) in // nothing end // end of [BSTcons] | ~E ((*void*)) => () // end // end of [aux] // in $effmask_all (aux (map)) end // end of [linmap_freelin] (* ****** ****** *) macdef avlht (t) = ( case+ ,(t) of | B (h, _, _, _, _) => h | E ((*void*)) => 0 ) // end of [avlht] (* ****** ****** *) // fn {key:t0p ;itm:vt0p} avltree_height{h:int} (t: !avltree (key, itm, h)):<> int (h) = avlht(t) // (* ****** ****** *) (* ** left rotation for restoring height invariant *) fn {key:t0p ;itm:vt0p} avltree_lrotate {hl,hr:nat | hl+HTDF1 == hr} {l,l_h,l_k,l_x,l_tl,l_tr:addr} ( pf_h: (int?)@l_h , pf_k: key@l_k, pf_x: itm@l_x , pf_tl: avltree (key, itm, hl) @ l_tl , pf_tr: avltree (key, itm, hr) @ l_tr | p_h: ptr l_h , hl: int hl, p_tl: ptr l_tl , hr: int hr, p_tr: ptr l_tr , t0: B_unfold (l, l_h, l_k, l_x, l_tl, l_tr) ) : avltree_inc (key, itm, hr) = let val tr = !p_tr val+@B{..}{hrl,hrr} (hr2, _, _, trl, trr) = tr val hrl = avlht(trl): int(hrl) and hrr = avlht(trr): int(hrr) in if hrl <= hrr+HTDF_1 then let val hrl1 = hrl + 1 val () = !p_h := hrl1 val () = !p_tr := trl prval () = fold@ (t0) val () = hr2 := 1+max(hrl1, hrr) val () = trl := t0 prval () = fold@ (tr) in tr // B (1+max(hrl1,hrr), kr, xr, B (hrl1, k, x, tl, trl), trr) end else let // [hrl==hrr+HTDF1]: deep rotation val trl_ = trl val+@B{..}{hrll,hrlr} (hrl, _, _, trll, trlr) = trl_ val hrll = avlht (trll) : int(hrll) and hrlr = avlht (trlr) : int(hrlr) val () = !p_h := 1+max(hl,hrll) val () = !p_tr := trll prval () = fold@ (t0) val () = hr2 := 1+max(hrlr, hrr) val () = trl := trlr prval () = fold@ (tr) val () = hrl := hr val () = trll := t0 val () = trlr := tr prval () = fold@ (trl_) in trl_ // B (hr, krl, xrl, // B (1+max(hl,hrll), k, x, tl, trll), // B (1+max(hrlr,hrr), kr, xr, trlr, trr)) end // end of [if] end // end of [avltree_lrotate] (* ****** ****** *) (* ** right rotation for restoring height invariant *) fn {key:t0p ;itm:vt0p} avltree_rrotate {hl,hr:nat | hl == hr+HTDF1} {l,l_h,l_k,l_x,l_tl,l_tr:addr} ( pf_h: (int?)@l_h , pf_k: key@l_k, pf_x: itm@l_x , pf_tl: avltree (key, itm, hl) @ l_tl , pf_tr: avltree (key, itm, hr) @ l_tr | p_h: ptr l_h , hl : int hl, p_tl: ptr l_tl , hr : int hr, p_tr: ptr l_tr , t0: B_unfold (l, l_h, l_k, l_x, l_tl, l_tr) ) : avltree_inc (key, itm, hl) = let val tl = !p_tl val+@B{..}{hll,hlr} (hl2, _, _, tll, tlr) = tl val hll = avlht(tll): int(hll) and hlr = avlht(tlr): int(hlr) in if hll+HTDF_1 >= hlr then let val hlr1 = hlr + 1 val () = !p_h := hlr1 val () = !p_tl := tlr prval () = fold@ (t0) val () = hl2 := 1+max(hll,hlr1) val () = tlr := t0 prval () = fold@ (tl) in tl // B (1+max(hll,hlr1), kl, xl, tll, B (hlr1, x, tlr, tr)) end else let val tlr_ = tlr val+@B{..}{hlrl,hlrr} (hlr, _, _, tlrl, tlrr) = tlr_ val hlrl = avlht (tlrl): int(hlrl) val hlrr = avlht (tlrr): int(hlrr) val () = !p_h := 1+max(hlrr,hr) val () = !p_tl := tlrr prval () = fold@ (t0) val () = hl2 := 1+max(hll,hlrl) val () = tlr := tlrl prval () = fold@ (tl) val () = hlr := hl val () = tlrl := tl val () = tlrr := t0 prval () = fold@ (tlr_) in tlr_ // B (hl, klr, xlr, // B (1+max(hll,hlrl), kl, xl, tll, tlrl), // B (1+max(hlrr,hr), k, x, tlrr, tr)) end // end of [if] end // end of [avltree_rrotate] (* ****** ****** *) implement {key,itm} linmap_insert (map, k0, x0, res) = let // fun insert {h:nat} .. ( t0: &avltree (key, itm, h) >> avltree_inc (key, itm, h), k0: key, x0: &(itm) >> opt(itm, b) ) : #[b:bool] bool(b) = let in // case+ t0 of // | @B{..}{hl,hr} (h, k, x, tl, tr) => let prval pf_h = view@h prval pf_k = view@k prval pf_x = view@x prval pf_tl = view@tl prval pf_tr = view@tr val sgn = compare_key_key (k0, k) in case+ 0 of | _ when sgn < 0 => let val ans = insert (tl, k0, x0) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hl-hr <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) in ans // B (1+max(hl,hr), k, x, tl, tr) end else let // hl==hr+HTDF1 val p_h = addr@(h) val p_tl = addr@(tl) val p_tr = addr@(tr) val () = t0 := avltree_rrotate (pf_h, pf_k, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in ans end // end of [if] end // end of [sgn < 0] | _ when sgn > 0 => let val ans = insert (tr, k0, x0) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hr-hl <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) in ans // B (1+max(hl, hr), k, x, tl, tr) end else let // hl+HTDF1==hr val p_h = addr@(h) val p_tl = addr@(tl) val p_tr = addr@(tr) val () = t0 := avltree_lrotate (pf_h, pf_k, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in ans end // end of [if] end // end of [sgn > 0] | _ (*[k0] is found*) => let val x_ = x val () = x := x0 val () = x0 := x_ prval () = fold@ (t0) prval () = opt_some{itm}(x0) in true // B (h, k, x, tl, tr) end // end of [sgn = 0] end // end of [B] // | ~E () => let val x0_ = x0 val () = t0 := B{key,itm}(1, k0, x0_, E (), E ()) prval () = opt_none{itm}(x0) in false end // end of [E] // end // end of [insert] // val () = res := x0 // in insert (map, k0, res) end // end of [linmap_insert] (* ****** ****** *) fun {key:t0p ;itm:vt0p} avltree_maxout {h:pos} .. ( t0: &avltree (key, itm, h) >> avltree_dec (key, itm, h) ) : mynode1 (key, itm) = let val+@B{..}{hl,hr}(h, k, x, tl, tr) = t0 prval pf_h = view@h prval pf_k = view@k prval pf_x = view@x prval pf_tl = view@tl prval pf_tr = view@tr in case+ tr of | B _ => let val nx = avltree_maxout (tr) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hl-hr <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) // B (1+max(hl,hr), x, tl, tr) in nx end else let val p_h = addr@h val p_tl = addr@tl val p_tr = addr@tr val () = t0 := avltree_rrotate (pf_h, pf_k, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in nx end // end of [if] end // end of [B] | ~E () => let val t0_ = t0 val () = t0 := tl in $UN.castvwtp0{mynode1(key,itm)}((pf_h, pf_k, pf_x, pf_tl, pf_tr | t0_)) end // end of [E] end // end of [avltree_maxout] (* ****** ****** *) fun {key:t0p ;itm:vt0p} avltree_minout {h:pos} .. ( t0: &avltree (key, itm, h) >> avltree_dec (key, itm, h) ) : mynode1 (key, itm) = let val+@B{..}{hl,hr}(h, k, x, tl, tr) = t0 prval pf_h = view@h prval pf_k = view@k prval pf_x = view@x prval pf_tl = view@tl prval pf_tr = view@tr in case+ tl of | B _ => let val nx = avltree_minout (tl) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hr-hl <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) // B (1+max(hl,hr), x, tl, tr) in nx end else let val p_h = addr@h val p_tl = addr@tl val p_tr = addr@tr val () = t0 := avltree_lrotate (pf_h, pf_k, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in nx end // end of [if] end // end of [B] | ~E () => let val t0_ = t0 val () = t0 := tr in $UN.castvwtp0{mynode1(key,itm)}((pf_h, pf_k, pf_x, pf_tl, pf_tr | t0_)) end // end of [E] end // end of [avltree_minout] (* ****** ****** *) extern castfn mynode_decode {key:t0p;itm:vt0p}{l:agz} (nx: mynode(key, INV(itm), l)):<> B_pstruct (int?, key, itm, ptr?, ptr?) // end of [mynode_decode] (* ****** ****** *) fn {key:t0p ;itm:vt0p} avltree_lrcon {hl,hr:nat | hl <= hr+HTDF; hr <= hl+HTDF} ( tl: avltree (key, itm, hl) , tr: avltree (key, itm, hr) ) : avltree_dec (key, itm, 1+max(hl,hr)) = ( case+ tr of | B _ => let var tr = tr val nx = avltree_minout (tr) // end of [val] val t1 = mynode_decode (nx) val+B(h1, k1, x1, tl1, tr1) = t1 prval pf_h1 = view@h1 prval pf_k1 = view@k1 prval pf_x1 = view@x1 prval pf_tl1 = view@tl1 prval pf_tr1 = view@tr1 val hl = avltree_height (tl) and hr = avltree_height (tr) val () = tl1 := tl and () = tr1 := tr in if hl-hr <= HTDF then let val () = h1 := 1+max(hl,hr) prval () = fold@ (t1) in t1 end else let val p_h1 = addr@h1 val p_tl1 = addr@tl1 val p_tr1 = addr@tr1 in avltree_rrotate (pf_h1, pf_k1, pf_x1, pf_tl1, pf_tr1 | p_h1, hl, p_tl1, hr, p_tr1, t1) end // end of [if] end // end of [B] | ~E ((*void*)) => tl ) (* end of [avltree_lrcon] *) (* ****** ****** *) implement {key,itm} linmap_takeout_ngc (xs, k0) = let // fun takeout{h:nat} .. ( t0: &avltree (key, itm, h) >> avltree_dec (key, itm, h) ) : mynode0(key, itm) = let // in // case+ t0 of | @B{..}{hl,hr} (h, k, x, tl, tr) => let prval pf_h = view@h prval pf_k = view@k prval pf_x = view@x prval pf_tl = view@tl prval pf_tr = view@tr val sgn = compare_key_key (k0, k) in case+ 0 of | _ when sgn < 0 => let val nx = takeout (tl) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hr-hl <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) in nx end else let val p_h = addr@(h) val p_tl = addr@(tl) val p_tr = addr@(tr) val () = t0 := avltree_lrotate (pf_h, pf_k, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in nx end // end of [if] end // end of [sgn < 0] | _ when sgn > 0 => let val nx = takeout (tr) val hl = avltree_height (tl) and hr = avltree_height (tr) in if hl-hr <= HTDF then let val () = h := 1+max(hl,hr) prval () = fold@ (t0) in nx end else let val p_h = addr@(h) val p_tl = addr@(tl) val p_tr = addr@(tr) val () = t0 := avltree_rrotate (pf_h, pf_k, pf_x, pf_tl, pf_tr | p_h, hl, p_tl, hr, p_tr, t0) in nx end // end of [if] end // end of [sgn > 0] | _ (*[x0] is found*) => let val t0_ = t0 val () = t0 := avltree_lrcon (tl, tr) in $UN.castvwtp0{mynode1(key,itm)}((pf_h, pf_k, pf_x, pf_tl, pf_tr | t0_)) end // end of [sgn = 0] // end of [case] end // end of [B] | E ((*void*)) => mynode_null () // end // end of [takeout] // in takeout (xs) end // end of [linmap_takeout_ngc] (* ****** ****** *) implement {key,itm}{env} linmap_foreach_env (xs, env) = let // val p_env = addr@env // fun foreach {h:nat} .. ( t0: !avltree (key, itm, h), p_env: ptr ) : void = let in // case+ t0 of | @B (h, k, x, tl, tr) => let // val () = foreach (tl, p_env) // val ( pf, fpf | p_env ) = $UN.ptr_vtake{env}(p_env) val () = linmap_foreach$fwork (k, x, !p_env) prval () = fpf (pf) // val () = foreach (tr, p_env) // prval () = fold@ (t0) // in // nothing end // end of [B] | E ((*void*)) => () // end // end of [foreach] // in foreach (xs, p_env) end // end of [linmap_foreach_env] (* ****** ****** *) implement {key,itm}{ki2} linmap_flistize (map) = let // vtypedef ki = @(key, itm) // fun aux {h:nat} .. ( t: avltree (key, itm, h), res: List0_vt (ki2) ) : List0_vt (ki2) = let in // case+ t of | ~B ( _, k, x, tl, tr ) => res where { val res = aux (tl, res) val kx2 = linmap_flistize$fopr (k, x) val res = list_vt_cons{ki2}(kx2, res) val res = aux (tr, res) } // end of [BSTcons] | ~E ((*void*)) => res // end // end of [aux] // val res = aux (map, list_vt_nil ()) // in list_vt_reverse (res) end // end of [linmap_flistize] (* ****** ****** *) // // HX: functions for processing mynodes // (* ****** ****** *) implement {}(*tmp*) mynode_null{key,itm} () = $UN.castvwtp0{mynode(key,itm,null)}(the_null_ptr) // end of [mynode_null] (* ****** ****** *) implement {key,itm} mynode_getref_itm (nx) = let // val t0 = $UN.castvwtp1{avltree(key,itm,1)}(nx) val+@B(_, k, x, tl, tr) = t0; val p_x = addr@(x) prval ((*void*)) = fold@(t0) prval ((*void*)) = $UN.cast2void (t0) // in $UN.ptr2cptr{itm}(p_x) end (* end of [mynode_getfree_itm] *) (* ****** ****** *) implement {key,itm} mynode_free_keyitm (nx, k0, x0) = () where { // val+~B(_, k, x, tl, tr) = $UN.castvwtp0{avltree(key,itm,1)}(nx) val () = k0 := k and () = x0 := x prval ((*void*)) = $UN.cast2void (tl) prval ((*void*)) = $UN.cast2void (tr) // } (* end of [mynode_free_keyitm] *) (* ****** ****** *) implement {key,itm} mynode_getfree_itm (nx) = x where { // val+~B(_, k, x, tl, tr) = $UN.castvwtp0{avltree(key,itm,1)}(nx) // prval ((*void*)) = $UN.cast2void (tl) prval ((*void*)) = $UN.cast2void (tr) // } (* end of [mynode_getfree_itm] *) (* ****** ****** *) (* end of [linmap_avltree.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/gnode.dats0000644000175000017500000001662513431250607020656 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Time: December, 2012 // (* ****** ****** *) // // HX: generic nodes: singly-linked, doubly-linked, ... // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/gnode.sats" (* ****** ****** *) #define nullp the_null_ptr (* ****** ****** *) implement{ } gnode_null {tk}{a}() = $UN.cast{gnode(tk,a,null)}(nullp) // end of [gnode_null] (* ****** ****** *) implement{ } gnode_is_null {tk}{a}{l}(nx) = let val p = $UN.cast{ptr}(nx) in $UN.cast{bool(l==null)}(p = nullp) end // end of [gnode_is_null] implement{} gnode_isnot_null {tk}{a}{l}(nx) = let val p = $UN.cast{ptr}(nx) in $UN.cast{bool(l > null)}(p > nullp) end // end of [gnode_isnot_null] (* ****** ****** *) implement {tk}{elt} gnode_get_elt (nx) = let val p = gnode_getref_elt (nx) in $UN.cptr_get (p) end // end of [gnode_get_elt] implement {tk}{elt} gnode_set_elt (nx, x0) = let val p = gnode_getref_elt (nx) in $UN.cptr_set (p, x0) end // end of [gnode_set_elt] (* ****** ****** *) implement {tk}{elt} gnode_get_next (nx) = nx2 where { val p = gnode_getref_next (nx) val nx2 = $UN.cptr_get (p) } // end of [gnode_get_next] implement {tk}{elt} gnode_set_next (nx, nx2) = () where { val p = gnode_getref_next (nx) val () = $UN.cptr_set (p, nx2) } // end of [gnode_set_next] implement {tk}{elt} gnode0_set_next (nx, nx2) = let in if gnode_isnot_null (nx) then gnode_set_next (nx, nx2) end // end of [gnode0_set_next] (* ****** ****** *) implement {tk}{elt} gnode_set_next_null (nx) = gnode_set_next (nx, gnode_null ()) // end of [gnode_set_next_null] implement {tk}{elt} gnode0_set_next_null (nx) = let in if gnode_isnot_null (nx) then gnode_set_next_null (nx) end // end of [gnode0_set_next_null] (* ****** ****** *) implement {tk}{elt} gnode_get_prev (nx) = nx2 where { val p = gnode_getref_prev (nx) val nx2 = $UN.cptr_get (p) } // end of [gnode_get_prev] implement {tk}{elt} gnode_set_prev (nx, nx2) = () where { val p = gnode_getref_prev (nx) val () = $UN.cptr_set (p, nx2) } // end of [gnode_set_prev] implement {tk}{elt} gnode0_set_prev (nx, nx2) = let in if gnode_isnot_null (nx) then gnode_set_prev (nx, nx2) end // end of [gnode0_set_prev] (* ****** ****** *) implement {tk}{elt} gnode_set_prev_null (nx) = gnode_set_prev (nx, gnode_null ()) // end of [gnode_set_prev_null] implement {tk}{elt} gnode0_set_prev_null (nx) = let in if gnode_isnot_null (nx) then gnode_set_prev_null (nx) end // end of [gnode0_set_prev_null] (* ****** ****** *) (* implement {tk}{elt} gnode_link = gnode_link11 *) implement {tk}{elt} gnode_link00 (nx1, nx2) = let val () = gnode0_set_next (nx1, nx2) val () = gnode0_set_prev (nx2, nx1) in // nothing end // end of [gnode_link00] implement {tk}{elt} gnode_link01 (nx1, nx2) = let val () = gnode0_set_next (nx1, nx2) val () = gnode_set_prev (nx2, nx1) in // nothing end // end of [gnode_link01] implement {tk}{elt} gnode_link10 (nx1, nx2) = let val () = gnode_set_next (nx1, nx2) val () = gnode0_set_prev (nx2, nx1) // end of [val] in // nothing end // end of [gnode_link10] implement {tk}{elt} gnode_link11 (nx1, nx2) = let val () = gnode_set_next (nx1, nx2) val () = gnode_set_prev (nx2, nx1) in // nothing end // end of [gnode_link11] (* ****** ****** *) implement {tk}{elt} gnode_insert_next (nx1, nx2) = let val nx1_next = gnode_get_next (nx1) val () = gnode_link11 (nx1, nx2) val () = gnode_link10 (nx2, nx1_next) in // nothing end // end of [gnode_insert_next] implement {tk}{elt} gnode_insert_prev (nx1, nx2) = let val nx1_prev = gnode_get_prev (nx1) val () = gnode_link11 (nx2, nx1) val () = gnode_link01 (nx1_prev, nx2) in // nothing end // end of [gnode_insert_prev] (* ****** ****** *) implement {tk}{elt} gnode_remove (nx) = nx where { // val nx_prev = gnode_get_prev (nx) val nx_next = gnode_get_next (nx) // val () = gnode_link00 (nx_prev, nx_next) // } // end of [gnode_remove] implement {tk}{elt} gnode_remove_next (nx) = let // val nx_next = gnode_get_next (nx) val isnot = gnode_isnot_null (nx_next) val () = if isnot then let val nx_next2 = gnode_get_next (nx_next) in gnode_link10 (nx, nx_next2) end // end of [of] // end of [val] // in nx_next end // end of [gnode_remove_next] implement {tk}{elt} gnode_remove_prev (nx) = let // val nx_prev = gnode_get_prev (nx) val isnot = gnode_isnot_null (nx_prev) val () = if isnot then let val nx_prev2 = gnode_get_prev (nx_prev) in gnode_link01 (nx_prev2, nx) end // end of [of] // end of [val] // in nx_prev end // end of [gnode_remove_prev] (* ****** ****** *) implement {tk}{elt} gnodelst_length (nxs) = let // typedef gnode0 = gnode0 (tk, elt) // fun loop ( nxs: gnode0, len: intGte(0) ) : intGte(0) = let val iscons = gnodelst_is_cons (nxs) in // if iscons then let val nxs = gnode_get_next (nxs) in loop (nxs, succ (len)) end else (len) // end of [if] // end // end of [loop] // in $effmask_all (loop (nxs, 0)) end // end of [gnodelst_length] (* ****** ****** *) implement {tk}{elt} gnodelst_rlength (nxs) = let // typedef gnode1 = gnode1 (tk, elt) // fun loop ( nxs: gnode1, len: intGte(0) ) : intGte(0) = let val nxs2 = gnode_get_prev (nxs) val iscons = gnodelst_is_cons (nxs2) in if iscons then loop (nxs2, succ (len)) else len end // end of [loop] // val iscons = gnodelst_is_cons (nxs) // in if iscons then $effmask_all (loop (nxs, 0)) else 0 end // end of [gnodelst_rlength] (* ****** ****** *) implement {tk}{elt} gnodelst_next_all (nxs) = let // fun loop ( nxs: gnode1 (tk, elt) ) : gnode1 (tk, elt) = let val nxs_next = gnode_get_next (nxs) in if gnodelst_is_cons (nxs_next) then loop (nxs_next) else nxs end // end of [loop] // in $effmask_all (loop (nxs)) end // end of [gnodelst_next_all] implement {tk}{elt} gnodelst_prev_all (nxs) = let // fun loop ( nxs: gnode1 (tk, elt) ) : gnode1 (tk, elt) = let val nxs_prev = gnode_get_prev (nxs) in if gnodelst_is_cons (nxs_prev) then loop (nxs_prev) else nxs end // end of [loop] // in $effmask_all (loop (nxs)) end // end of [gnodelst_prev_all] (* ****** ****** *) (* end of [gnode.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/DATS/funset_listord.dats0000644000175000017500000003024413431250607022617 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** Functional set based on ordered lists ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: May 18, 2011 ** *) (* ****** ****** *) // // HX-2012-12: ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.funset_listord" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_" // prefix for external names (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/funset_listord.sats" (* ****** ****** *) // #include "./SHARE/funset.hats" // code reuse // (* ****** ****** *) assume set_type (a: t0p) = List0 (a) (* ****** ****** *) // // HX: // A set is represented as a sorted list in descending order; // note that descending order is chosen to faciliate set comparison // (* ****** ****** *) implement{ } funset_nil () = list_nil () implement{ } funset_make_nil () = list_nil () (* ****** ****** *) implement{a} funset_sing (x) = list_cons{a}(x, list_nil) implement{a} funset_make_sing (x) = list_cons{a}(x, list_nil) (* ****** ****** *) (* ** HX-2012-12: ** it supersedes the one in [./SHARE/funset.hats] *) implement{a} funset_make_list (xs) = let // val xs = let // implement list_mergesort$cmp (x, y) = compare_elt_elt (x, y) // in $effmask_wrt (list_mergesort (xs)) end // end of [let] // [val] // fnx loop1 {m:pos;n:nat} .. ( xs: list_vt (a, m), ys: list_vt (a, n) ) : listLte_vt (a, m+n) = let // val-@cons_vt (x, xs1) = xs val x_ = x val xs1_ = xs1; val () = (xs1 := ys) prval () = fold@ (xs) // in loop2 (x_, xs1_, xs) end // end of [loop1] // and loop2 {m:nat;n:nat} .. ( x0: a, xs: list_vt (a, m), ys: list_vt (a, n) ) : listLte_vt (a, m+n) = let in // case+ xs of | @cons_vt (x, xs1) => let val sgn = compare_elt_elt (x0, x) in if (sgn < 0) then let // [xs] ascending! prval () = fold@ (xs) in loop1 (xs, ys) end // end of [then] else let val xs1_ = xs1 val () = free@{a}{0}(xs) in loop2 (x0, xs1_, ys) end // end of [else] // end of [if] end (* end of [cons_vt] *) | ~nil_vt ((*void*)) => ys // end // end of [loop2] // in (* in of [let] *) // case+ xs of | cons_vt _ => ( $effmask_wrt (list_of_list_vt(loop1 (xs, nil_vt()))) ) // end of [cons_vt] | ~nil_vt () => list_nil () // end // end of [funset_make_list] (* ****** ****** *) implement{} funset_is_nil (xs) = list_is_nil (xs) implement{} funset_isnot_nil (xs) = list_is_cons (xs) (* ****** ****** *) implement{a} funset_size (xs) = g1int2uint (list_length (xs)) (* ****** ****** *) implement{a} funset_is_member (xs, x0) = let // fun aux {n:nat} .. ( xs: list (a, n) ) :<> bool = let in // case+ xs of | list_cons (x, xs) => let val sgn = compare_elt_elt (x0, x) in if sgn > 0 then false else (if sgn < 0 then aux (xs) else true) end // end of [list_cons] | list_nil () => false // end // end of [aux] in aux (xs) end // end of [funset_is_member] (* ****** ****** *) implement{a} funset_insert (xs, x0) = let // fun aux {n:nat} .. ( xs: list (a, n), flag: &int >> _ ) : List0 (a) = let in // case+ xs of | list_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x) in if sgn > 0 then let val () = flag := flag + 1 in list_cons{a}(x0, xs) end else if sgn < 0 then let val flag0 = flag val xs1 = aux (xs1, flag) in if flag = flag0 then xs else list_cons{a}(x, xs1) end else xs // end of [if] end // end of [list_cons] | list_nil () => let val () = flag := flag + 1 in list_cons{a}(x0, list_nil) end // end of [val] // end // end of [aux] // var flag: int = 0 val () = xs := $effmask_all (aux (xs, flag)) // in if flag = 0 then true else false end // end of [funset_insert] (* ****** ****** *) implement{a} funset_remove (xs, x0) = let // fun aux {n:nat} .. ( xs: list (a, n), flag: &int >> _ ) : List0 (a) = let in // case xs of | list_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x) in if sgn > 0 then xs else if sgn < 0 then let val flag0 = flag val xs1 = aux (xs1, flag) in if flag = flag0 then xs else list_cons{a}(x, xs1) end else let val () = flag := flag + 1 in xs1 end (* end of [if] *) end // end of [list_cons] | list_nil () => list_nil () // end // end of [aux] // var flag: int = 0 val () = xs := $effmask_all (aux (xs, flag)) // in if flag > 0 then true else false end // end of [funset_remove] (* ****** ****** *) implement{a} funset_getmax (xs, x0) = let in // case+ xs of | list_cons (x, _) => let val () = x0 := x prval () = opt_some{a}(x0) in true end // end of [list_cons] | list_nil () => let prval () = opt_none{a}(x0) in false end // end of [list_nil] // end // end of [funset_getmax] (* ****** ****** *) implement{a} funset_getmin (xs, x0) = let in // case+ xs of | list_cons _ => let val () = x0 := list_last (xs) prval () = opt_some{a}(x0) in true end // end of [list_cons] | list_nil () => let prval () = opt_none{a}(x0) in false end // end of [list_nil] // end // end of [funset_getmin] (* ****** ****** *) implement{a} funset_takeoutmax (xs, x0) = let in // case+ xs of | list_cons (x, xs2) => let val () = (x0 := x) val () = (xs := xs2) prval () = opt_some{a}(x0) in true end // end of [list_cons] | list_nil () => let prval () = opt_none{a}(x0) in false end // end of [list_nil] // end // end of [funset_takeoutmax] (* ****** ****** *) implement{a} funset_takeoutmin (xs, x0) = let // fun aux{n:pos} .. ( xs: list (a, n), x0: &a? >> a ) : list (a, n-1) = let // val+list_cons (x, xs2) = xs // in // case+ xs2 of | list_cons _ => let val xs2 = aux (xs2, x0) in list_cons{a}(x, xs2) end // end of [list_cons] | list_nil () => let val () = x0 := x in list_nil () end // end of [list_nil] // end // end of [aux] // in // case+ xs of | list_cons _ => let val () = xs := aux (xs, x0) prval () = opt_some{a}(x0) in true end // end of [list_cons] | list_nil () => let prval () = opt_none{a}(x0) in false end // end of [list_nil] // end // end of [funset_takeoutmin] (* ****** ****** *) implement {a}(*tmp*) funset_union (xs1, xs2) = let // fun aux // non-tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) :<> List0 (a) = let in // case xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2) in if sgn > 0 then list_cons{a}(x1, aux (xs11, xs2)) else if sgn < 0 then list_cons{a}(x2, aux (xs1, xs21)) else list_cons{a}(x1, aux (xs11, xs21)) // end of [if] end // end of [list_cons] | list_nil () => xs1 ) // end of [list_cons] | list_nil () => xs2 // end // end of [aux] // in aux (xs1, xs2) end // end of [funset_union] (* ****** ****** *) implement {a}(*tmp*) funset_intersect (xs1, xs2) = let // fun aux // non-tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) :<> List0 (a) = let in // case xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2) in if sgn > 0 then aux (xs11, xs2) else if sgn < 0 then aux (xs1, xs21) else list_cons{a}(x1, aux (xs11, xs21)) // end of [if] end // end of [list_cons] | list_nil () => list_nil () ) // end of [list_cons] | list_nil () => list_nil () // end // end of [aux] // in aux (xs1, xs2) end // end of [funset_intersect] (* ****** ****** *) implement {a}(*tmp*) funset_differ (xs1, xs2) = let // fun aux // non-tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : List0 (a) = let in // case xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2) in if sgn > 0 then list_cons{a}(x1, aux (xs11, xs2)) else ( if sgn < 0 then aux (xs1, xs21) else aux (xs11, xs21) ) (* end of [else] *) // end of [if] end // end of [list_cons] | list_nil () => xs1 ) // end of [list_cons] | list_nil () => xs2 // end // end of [aux] // in aux (xs1, xs2) end // end of [funset_differ] (* ****** ****** *) implement {a}(*tmp*) funset_symdiff (xs1, xs2) = let // fun aux // non-tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) :<> List0 (a) = let in // case xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2) // end of [val] in if sgn > 0 then list_cons{a}(x1, aux (xs11, xs2)) else if sgn < 0 then list_cons{a}(x2, aux (xs1, xs21)) else aux (xs11, xs21) // end of [if] end // end of [list_cons] | list_nil () => xs1 ) // end of [list_cons] | list_nil () => xs2 // end // end of [aux] // in aux (xs1, xs2) end // end of [funset_symdiff] (* ****** ****** *) implement{a} funset_compare (xs1, xs2) = let // fun aux // tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) :<> Sgn = ( case+ xs1 of | list_cons (x1, xs1) => ( case+ xs2 of | list_cons (x2, xs2) => let val sgn = compare_elt_elt (x1, x2) in if sgn > 0 then 1 else ( if sgn < 0 then ~1 else aux (xs1, xs2) ) // end of [if] end // end of [list_cons] | list_nil () => 1 ) // end of [list_cons] | list_nil () => ( case+ xs2 of list_cons _ => ~1 | list_nil _ => 0 ) ) // end of [aux] // in aux (xs1, xs2) end // end of [funset_compare] (* ****** ****** *) implement{a} funset_is_subset (xs1, xs2) = let // fun aux // tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) :<> bool = let in // case+ xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2) in if sgn > 0 then false else (if sgn < 0 then aux (xs1, xs21) else aux (xs11, xs21)) // end of [if] end // end of [list_cons] | list_nil () => false ) // end of [list_cons] | list_nil () => true // end // end of [aux] // in aux (xs1, xs2) end // end of [funset_is_subset] (* ****** ****** *) implement {a}{env} funset_foreach_env (xs, env) = let // val xs = list_reverse (xs) // implement{a}{env} list_vt_foreach$cont (x, env) = true implement list_vt_foreach$fwork (x, env) = funset_foreach$fwork (x, env) // val () = list_vt_foreach_env (xs, env) // val () = list_vt_free (xs) // in // nothing end // end of [funset_foreach_env] (* ****** ****** *) implement{a} funset_listize (xs) = list_reverse (xs) (* ****** ****** *) (* // // HX: this is now a cast funciton // implement{} funset2list (xs) = xs // HX: [xs] in decending order *) (* ****** ****** *) (* end of [funset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/.keeper0000644000175000017500000000000013431250607017402 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/0000755000175000017500000000000013431250607017051 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/0000755000175000017500000000000013431250607017604 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/time.dats0000644000175000017500000000414713431250607021425 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: May, 2012 // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "libats/libc/SATS/time.sats" // (* ****** ****** *) implement {}(*tmp*) ctime_r_gc(tval) = let // val bsz = g1i2u(CTIME_BUFSZ) val (pf, pfgc | p) = malloc_gc (bsz) // val p1 = ctime_r (pf | tval, p) // in // if p1 > 0 then let prval ctime_v_succ (pf) = pf in $UN.castvwtp0{Strptr1}((pf, pfgc | p)) end else let prval ctime_v_fail (pf) = pf val () = mfree_gc (pf, pfgc | p) in strptr_null () end // end of [if] // end // end of [ctime_r_gc] (* ****** ****** *) (* end of [time.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/stdio.dats0000644000175000017500000001311213431250607021601 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: May, 2012 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) %{^ #include "share/H/pats_atslib.h" %} // end of [%{^] (* ****** ****** *) // staload "libats/libc/SATS/stdio.sats" // (* ****** ****** *) %{$ // extern atstype_ptr atslib_libats_libc_fopen_exn ( atstype_string path , atstype_string mode ) { FILE *filp ; filp = fopen ((char*)path, (char*)mode) ; if (!filp) ATSLIBfailexit("fopen") ; // HX: failure return filp ; } /* end of [atslib_libats_libc_fopen_exn] */ // %} (* ****** ****** *) %{$ // extern atsvoid_t0ype atslib_libats_libc_fclose_exn (atstype_ptr filp) { int err ; err = fclose ((FILE*)filp) ; if (0 > err) ATSLIBfailexit("fclose") ; return ; } /* end of [atslib_libats_libc_fclose_exn] */ // %} (* ****** ****** *) %{$ // extern atsvoid_t0ype atslib_libats_libc_fflush_exn ( atstype_ptr filp ) { int err = fflush((FILE*)filp) ; if (0 > err) ATSLIBfailexit("fflush") ; return ; } /* end of [atslib_libats_libc_fflush_exn] */ // %} (* ****** ****** *) %{$ // extern atsvoid_t0ype atslib_libats_libc_fputc_exn ( atstype_int c, atstype_ptr filp ) { int err ; err = fputc(c, (FILE*)filp) ; if (0 > err) { ATSLIBfailexit("fputc") ; // abnormal exit } // end of [if] return ; } /* end of [atslib_libats_libc_fputc_exn] */ // %} (* ****** ****** *) %{$ // extern atsvoid_t0ype atslib_libats_libc_fgets_exn ( atstype_ptr buf0 , atstype_int bsz0 , atstype_ptr filp ) { char *buf, *pres ; buf = (char*)buf0 ; pres = fgets(buf, (int)bsz0, (FILE*)filp) ; if (!pres) { if (feof((FILE*)filp)) { buf[0] = '\000' ; // EOF is reached } else { ATSLIBfailexit("fgets") ; // abnormal exit } // end of [if] } // end of [if] return ; } /* end of [atslib_libats_libc_fgets_exn] */ // %} (* ****** ****** *) %{$ // extern atstype_ptr atslib_libats_libc_fgets_gc ( atstype_int bsz0 , atstype_ptr filp0 ) { int bsz = bsz0 ; FILE *filp = (FILE*)filp0 ; int ofs = 0, ofs2 ; char *buf, *buf2, *pres ; buf = atspre_malloc_gc(bsz) ; while (1) { buf2 = buf+ofs ; pres = fgets(buf2, bsz-ofs, filp) ; if (!pres) { if (feof(filp)) { *buf2 = '\000' ; return buf ; } else { atspre_mfree_gc(buf) ; return (char*)0 ; } // end of [if] } ofs2 = strlen(buf2) ; if (ofs2==0) return buf ; ofs += ofs2 ; // HX: ofs > 0 if (buf[ofs-1]=='\n') return buf ; bsz *= 2 ; buf2 = buf ; buf = atspre_malloc_gc(bsz) ; memcpy(buf, buf2, ofs) ; atspre_mfree_gc(buf2) ; } // end of [while] return buf ; // HX: deadcode } /* end of [atslib_libats_libc_fgets_gc] */ // %} (* ****** ****** *) %{$ // extern atsvoid_t0ype atslib_libats_libc_fputs_exn ( atstype_string str, atstype_ptr filp ) { int err ; err = fputs((char*)str, (FILE*)filp) ; if (0 > err) { ATSLIBfailexit("fputs") ; // abnormal exit } // end of [if] return ; } /* end of [atslib_libats_libc_fputs_exn] */ // %} (* ****** ****** *) %{$ // extern atsvoid_t0ype atslib_libats_libc_puts_exn ( atstype_string str ) { int err ; err = puts((char*)str) ; if (0 > err) { ATSLIBfailexit("puts") ; // abnormal exit } // end of [if] return ; } /* end of [atslib_libats_libc_puts_exn] */ // %} (* ****** ****** *) %{$ // extern atstype_ptr atslib_libats_libc_popen_exn ( atstype_string cmd , atstype_string type ) { FILE *filp ; filp = popen((char*)cmd, (char*)type) ; if (!filp) { ATSLIBfailexit("popen") ; // abnormal exit } // end of [if] return filp ; } /* end of [atslib_libats_libc_popen_exn] */ // %} (* ****** ****** *) %{$ // extern atstype_int atslib_libats_libc_pclose_exn ( atstype_ptr filp ) { int res ; res = pclose((FILE*)filp) ; if (0 > res) { ATSLIBfailexit("pclose") ; // abnormal exit } // end of [if] return res ; } /* end of [atslib_libats_libc_pclose_exn] */ // %} (* ****** ****** *) %{$ // extern atstype_ptr atslib_libats_libc_tmpfile_exn ( // argumentless ) { FILE *filp = tmpfile() ; if (!filp) ATSLIBfailexit("tmpfile") ; return (filp) ; } /* end of [atslib_libats_libc_tmpfile_exn] */ // %} (* ****** ****** *) (* end of [stdio.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/arpa/0000755000175000017500000000000013431250607020527 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/arpa/.keeper0000644000175000017500000000000013431250607021771 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/unistd.dats0000644000175000017500000001224113431250607021767 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2013 // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) %{^ #include"share/H/pats_atslib.h" %} // end of [%{^] (* ****** ****** *) // staload "libats/libc/SATS/errno.sats" staload "libats/libc/SATS/fcntl.sats" staload "libats/libc/SATS/unistd.sats" // (* ****** ****** *) %{$ extern atsvoid_t0ype atslib_libats_libc_close_exn ( atstype_int fd ) { int err ; err = atslib_libats_libc_close(fd) ; if (0 > err) ATSLIBfailexit("close") ; return ; } /* end of [atslib_libats_libc_close_exn] */ %} (* ****** ****** *) %{$ extern atstype_int atslib_libats_libc_dup2_fildes ( atstype_int fd, atstype_int fd2 ) { int flags ; // flags = fcntl(fd, F_GETFD) ; // if (flags >= 0) { errno = EINVAL ; return -1 ; // [fd2] in use } /* end of [if] */ // return atslib_libats_libc_dup2(fd, fd2) ; // } /* end of [atslib_libats_libc_dup2_fildes] */ %} (* ****** ****** *) %{$ extern atstype_strptr atslib_libats_libc_getcwd_gc ( ) { char *p_cwd ; int bsz ; int myeno ; char *p2_cwd ; // // HX: [64] is chosen nearly randomly // bsz = 64 ; p_cwd = (char*)0 ; // while (1) { p_cwd = atspre_malloc_gc(bsz) ; p2_cwd = atslib_libats_libc_getcwd(p_cwd, bsz) ; myeno = errno ; if (p2_cwd != 0) return p_cwd ; else atspre_mfree_gc(p_cwd) ; if (myeno != ERANGE) break ; bsz = 2 * bsz ; } // return (char*)0 ; // } /* end of [atslib_libats_libc_getcwd_gc] */ %} (* ****** ****** *) %{$ extern atstype_strptr atslib_libats_libc_getlogin_r_gc ( ) { char *p_uid ; int bsz ; int err, myeno ; // // HX: [16] is chosen nearly randomly // bsz = 16 ; p_uid = (char*)0 ; // while (1) { p_uid = atspre_malloc_gc(bsz) ; err = atslib_libats_libc_getlogin_r(p_uid, bsz) ; myeno = errno ; if (err==0) return p_uid ; else atspre_mfree_gc(p_uid) ; if (myeno != ERANGE) break ; bsz = 2 * bsz ; } // return (char*)0 ; // } /* end of [atslib_libats_libc_getlogin_r_gc] */ %} (* ****** ****** *) %{$ extern atsvoid_t0ype atslib_libats_libc_rmdir_exn ( atstype_string path ) { int err ; err = atslib_libats_libc_rmdir(path) ; if (0 > err) ATSLIBfailexit("rmdir") ; return ; } /* end of [atslib_libats_libc_rmdir_exn] */ %} (* ****** ****** *) %{$ extern atsvoid_t0ype atslib_libats_libc_link_exn ( atstype_string old, atstype_string new ) { int err ; err = atslib_libats_libc_link(old, new) ; if (0 > err) ATSLIBfailexit("link") ; return ; } /* end of [atslib_libats_libc_link_exn] */ %} (* ****** ****** *) %{$ extern atsvoid_t0ype atslib_libats_libc_unlink_exn ( atstype_string path ) { int err ; err = atslib_libats_libc_unlink(path) ; if (0 > err) ATSLIBfailexit("unlink") ; return ; } /* end of [atslib_libats_libc_unlink_exn] */ %} (* ****** ****** *) %{$ extern atsvoid_t0ype atslib_libats_libc_symlink_exn ( atstype_string old, atstype_string new ) { int err ; err = atslib_libats_libc_symlink(old, new) ; if (0 > err) ATSLIBfailexit("symlink") ; return ; } /* end of [atslib_libats_libc_symlink_exn] */ %} (* ****** ****** *) %{$ extern atstype_strptr atslib_libats_libc_readlink_gc ( atstype_string path ) { char *bfp ; // // HX: [64] is chosen nearly randomly // int bsz = 64 ; ssize_t bsz2 ; bfp = (char*)0 ; // while (1) { bfp = atspre_malloc_gc(bsz) ; bsz2 = atslib_libats_libc_readlink(path, bfp, bsz) ; /* fprintf(stderr, "atslib_libats_libc_readlink_gc: bsz2 = %li\n", bsz2) ; */ if (bsz2 < 0) { atspre_mfree_gc(bfp) ; break ; } if (bsz2 < bsz) { bfp[bsz2] = '\000' ; return bfp ; } atspre_mfree_gc(bfp) ; bsz *= 2 ; } // return (char*)0 ; // HX: deadcode // } /* end of [atslib_libats_libc_readlink_gc] */ %} (* ****** ****** *) (* end of [unistd.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/errno.dats0000644000175000017500000000321513431250607021607 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: January, 2014 // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) staload "libats/libc/SATS/errno.sats" (* ****** ****** *) (* end of [errno.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/fcntl.dats0000644000175000017500000000362313431250607021573 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: March, 2013 // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) staload "libats/libc/SATS/fcntl.sats" (* ****** ****** *) %{$ extern atstype_int atslib_libats_libc_fildes_iget_int ( atstype_int fd ) { int flags ; flags = fcntl (fd, F_GETFD) ; if (flags < 0) return -1 ; // [fd2] not in use return fd ; } // end of [atslib_libats_libc_fildes_iget_int] %} (* ****** ****** *) (* end of [fcntl.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/gdbm/0000755000175000017500000000000013431250607020515 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/gdbm/.keeper0000644000175000017500000000000013431250607021757 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/sys/0000755000175000017500000000000013431250607020422 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/sys/types.dats0000644000175000017500000000337413431250607022452 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: April, 2014 // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) // staload "libats/libc/SATS/sys/types.sats" // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // // HX-2014-04-29: it is still empty // (* ****** ****** *) (* end of [types.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/sys/socket.dats0000644000175000017500000000710413431250607022571 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: November, 2014 // (* ****** ****** *) %{^ // #include "share/H/pats_atslib.h" // %} // end of [%{^] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no staloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) // staload "libats/libc/SATS/sys/socket.sats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) %{$ ATSextern() atstype_int atslib_libats_libc_socket_AF_type_exn ( sa_family_t af, atstype_int tp ) { int fildes; fildes = socket(af, tp, 0); if(0 > fildes) ATSLIBfailexit("socket") ; // HX: failure return fildes; } // end of [atslib_libats_libc_socket_AF_type_exn] %} // end of [%{] (* ****** ****** *) %{$ ATSextern() atsvoid_t0ype atslib_libats_libc_bind_exn ( atstype_int fd , atstype_ptr addr, socklen_t addrlen ) { int err; err = bind(fd, addr, addrlen); if(0 > err) ATSLIBfailexit("bind") ; // HX: failure return; } // end of [atslib_libats_libc_bind_exn] %} // end of [%{] (* ****** ****** *) %{$ ATSextern() atsvoid_t0ype atslib_libats_libc_listen_exn ( atstype_int fd, atstype_int nq ) { int err; err = listen(fd, nq); if(0 > err) ATSLIBfailexit("listen") ; // HX: failure return; } // end of [atslib_libats_libc_listen_exn] %} // end of [%{] (* ****** ****** *) %{$ ATSextern() atsvoid_t0ype atslib_libats_libc_connect_exn ( atstype_int fd , atstype_ptr addr, socklen_t addrlen ) { int err; err = connect(fd, addr, addrlen); if(0 > err) ATSLIBfailexit("connect") ; // HX: failure return; } // end of [atslib_libats_libc_connect_exn] %} // end of [%{] (* ****** ****** *) %{$ ATSextern() atsvoid_t0ype atslib_libats_libc_socket_close_exn ( atstype_int fd ) { int err; err = close(fd); if(0 > err) ATSLIBfailexit("socket_close") ; // HX: failure return; } // end of [atslib_libats_libc_socket_close_exn] %} // end of [%{] (* ****** ****** *) %{$ ATSextern() atsvoid_t0ype atslib_libats_libc_shutdown_exn ( atstype_int fd, atstype_int how ) { int err; err = shutdown(fd, how); if(0 > err) ATSLIBfailexit("shutdown") ; // HX: failure return; } // end of [atslib_libats_libc_shutdown_exn] %} // end of [%{] (* ****** ****** *) (* end of [socket.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/sys/stat.dats0000644000175000017500000000563213431250607022260 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: April, 2014 // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names (* ****** ****** *) // staload "libats/libc/SATS/sys/stat.sats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) implement {(*tmp*)} mkdirp (path, mode) = let // #define NUL '\000' val dirsep = dirsep_get<> () // fun auxmk ( path: string, mode: mode_t ) : int = let var st: stat? val ret = stat (path, st) prval () = opt_clear{stat}(st) in if ret < 0 then mkdir (path, mode) else 0(*isexi*) end // end of [auxmk] // fnx loop (p0: ptr, p1: ptr): int = let val c = $UN.ptr0_get (p1) in // if ( c != NUL ) then ( if c = dirsep then loop2 (p0, p1) else loop (p0, ptr_succ (p1)) // end of [if] ) else ( auxmk ($UN.cast{string}(p0), mode) ) (* end of [if] *) // end // end of [loop] // and loop2 (p0: ptr, p1: ptr): int = let val () = $UN.ptr0_set (p1, NUL) val ret = auxmk ($UN.cast{string}(p0), mode) val () = $UN.ptr0_set (p1, dirsep) in if ret >= 0 then loop (p0, ptr_succ (p1)) else ret end // end of [loop2] // val path = string0_copy (path) // val p0 = $UN.castvwtp1{ptr}(path) // val c0 = $UN.ptr0_get (p0) val ret = ( if ( c0 != NUL ) then ( if c0 = dirsep then loop (p0, ptr_succ (p0)) else loop (p0, p0) // end of [if] ) else (0) ) : int // end of [val] // val ((*freed*)) = strptr_free (path) // in ret end // end of [mkdirp] (* ****** ****** *) (* end of [stat.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/sys/.keeper0000644000175000017500000000000013431250607021664 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/sys/socket_in.dats0000644000175000017500000000500413431250607023254 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: November, 2014 // (* ****** ****** *) %{^ // #include "share/H/pats_atslib.h" // %} // end of [%{^] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "libats/libc/SATS/sys/socket_in.sats" // (* ****** ****** *) %{$ ATSextern() atsvoid_t0ype atslib_libats_libc_bind_in_exn ( atstype_int fd, atstype_ptr addr ) { int err; err = bind( fd, (const struct sockaddr*)addr, sizeof(struct sockaddr_in) ); // end of [connent] if(0 > err) ATSLIBfailexit("bind"); return; } // end of [atslib_libats_libc_bind_in_exn] %} // end of [%{] (* ****** ****** *) %{$ ATSextern() atsvoid_t0ype atslib_libats_libc_connect_in_exn ( atstype_int fd, atstype_ptr addr ) { int err; err = connect( fd, (const struct sockaddr*)addr, sizeof(struct sockaddr_in) ); // end of [connent] if(0 > err) ATSLIBfailexit("connect"); return; } // end of [atslib_libats_libc_connect_in_exn] %} // end of [%{] (* ****** ****** *) (* end of [socket_in.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/netinet/0000755000175000017500000000000013431250607021252 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/netinet/.keeper0000644000175000017500000000000013431250607022514 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/string.dats0000644000175000017500000000426313431250607021774 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2013 // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) // staload "libats/libc/SATS/string.sats" // (* ****** ****** *) %{$ extern atstype_ptr atslib_libats_libc_strerror_r_gc ( atstype_int errnum ) { char *p_err ; int bsz ; int myerr, myeno ; // // HX: [64] is chosen nearly randomly // bsz = 64 ; p_err = (char*)0 ; // while (1) { p_err = atspre_malloc_gc(bsz) ; myerr = atslib_libats_libc_strerror_r(errnum, p_err, bsz) ; myeno = errno ; if (!myerr) return p_err ; if (myeno != ERANGE) break ; atspre_mfree_gc(p_err) ; bsz = 2 * bsz ; } // return p_err ; // } /* end of [atslib_libats_libc_strerror_r_gc] */ %} (* ****** ****** *) (* end of [string.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/stdlib.dats0000644000175000017500000000440713431250607021747 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: May, 2012 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) %{^ // #include "share/H/pats_atslib.h" // %} // end of [%{^] (* ****** ****** *) // staload "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) implement {}(*tmp*) getenv_gc (name) = str2 where { // val fpfstr = getenv(name) // val str2 = strptr0_copy(fpfstr.1) // prval ((*void*)) = fpfstr.0(fpfstr.1) // } (* end of [getenv_gc] *) (* ****** ****** *) %{$ // extern atstype_ptr atslib_libats_libc_malloc_libc_exn (atstype_size bsz) { void *p0 ; p0 = atslib_libats_libc_malloc_libc(bsz) ; if (!p0) { fprintf(stderr, "exit(ATSLIB): [malloc] failed\n") ; exit(1) ; } // end of [if] return p0 ; } /* end of [atslib_libats_libc_malloc_libc_exn] */ // %} (* ****** ****** *) (* end of [stdlib.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/dirent.dats0000644000175000017500000001077113431250607021754 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: March, 2013 // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "libats/libc/SATS/dirent.sats" // (* ****** ****** *) // implement {}(*tmp*) dirent$PC_NAME_MAX((*void*)) = 256 // (* ****** ****** *) implement {}(*tmp*) dirent_get_d_name_gc (ent) = let // val ( fpf | str ) = dirent_get_d_name (ent) val str2 = strptr1_copy (str) // prval ((*returned*)) = fpf(str) // in str2 end // end of [dirent_get_d_name_gc] implement {}(*tmp*) direntp_get_d_name_gc (entp) = let // val ( pf, fpf | p ) = direntp_get_viewptr (entp) val str2 = dirent_get_d_name_gc<> (!p) prval () = minus_addback (fpf, pf | entp) // in str2 end // end of [direntp_get_d_name_gc] (* ****** ****** *) implement {}(*tmp*) compare_dirent_string (ent1, str2) = sgn where { // val ( fpf1 | str1 ) = dirent_get_d_name (ent1) val sgn = compare_string_string ($UN.strptr2string(str1), str2) prval () = fpf1 (str1) // } (* end of [compare_dirent_string] *) (* ****** ****** *) %{ extern atstype_ptr atslib_libats_libc_opendir_exn ( atstype_string dname ) { DIR *dirp ; dirp = opendir((char*)dname) ; if (!dirp) ATSLIBfailexit("opendir") ; return dirp ; // [opendir] succeeded } // end of [atslib_libats_libc_opendir_exn] %} (* ****** ****** *) %{ extern atsvoid_t0ype atslib_libats_libc_closedir_exn ( atstype_ptr dirp ) { int err = closedir((DIR*)dirp) ; if (err < 0) ATSLIBfailexit("closedir") ; return ; // [closedir] succeeded } // end of [atslib_libats_libc_closedir_exn] %} (* ****** ****** *) implement {}(*tmp*) readdir_r_gc (dirp) = let // val ofs = $extfcall ( Size_t , "offsetof" , $extval (int, "atslib_libats_libc_dirent_type") , $extval (int, "d_name") ) // val bsz = ofs + i2sz(dirent$PC_NAME_MAX()+1) // val [l:addr](pf, pfgc | p) = malloc_gc(bsz) // prval(pf) = $UN.castview0{(dirent?)@l}(pf) var res: ptr val err = readdir_r (dirp, !p, res) // in // if res > 0 then ( // $UN.castvwtp0{Direntp1}@(pf, pfgc | p) // ) (* end of [then] *) else let prval() = opt_clear{dirent}(!p) val ((*freed*)) = ptr_free{dirent?}(pfgc, pf | p) in $UN.castvwtp0{Direntp0}(the_null_ptr) end (* end of [else] *) // end // end of [readdir_r_gc] (* ****** ****** *) // // HX-2016-07-17: Extension // (* ****** ****** *) implement {}(*tmp*) streamize_DIRptr_dirent (dirp) = auxmain(dirp) where { // fun auxmain ( dirp: DIRptr1 ) : stream_vt(dirent) = $ldelay ( let // val x0_con = stream_vt_cons{dirent}(_, _) // val+stream_vt_cons(ent, xs) = x0_con // var res: ptr val err = readdir_r (dirp, ent, res) // in // if res > 0 then let prval() = opt_unsome(ent) in xs := auxmain(dirp); fold@(x0_con); x0_con end // end of [then] else let prval() = opt_unnone(ent) in free@(x0_con); closedir_exn(dirp); stream_vt_nil((*void*)) end // end of [else] // end : stream_vt_con(dirent) // end of [let] // , // let val () = closedir_exn(dirp) in (*closing*) end // ) (* end of [auxmain] *) // } (* end of [streamize_DIRptr_dirent] *) (* ****** ****** *) (* end of [dirent.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/.keeper0000644000175000017500000000000013431250607021046 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/math.dats0000644000175000017500000001410713431250607021415 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: March, 2013 // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "libats/libc/SATS/math.sats" (* ****** ****** *) implement isfinite = isfinite_float implement isfinite = isfinite_double implement isfinite = isfinite_ldouble (* ****** ****** *) implement isnormal = isnormal_float implement isnormal = isnormal_double implement isnormal = isnormal_ldouble (* ****** ****** *) implement fpclassify = fpclassify_float implement fpclassify = fpclassify_double implement fpclassify = fpclassify_ldouble (* ****** ****** *) // implement isinf = isinf_float implement isinf = isinf_double implement isinf = isinf_ldouble // implement isnan = isnan_float implement isnan = isnan_double implement isnan = isnan_ldouble // (* ****** ****** *) implement ceil = ceil_float implement ceil = ceil_double implement ceil = ceil_ldouble (* ****** ****** *) implement floor = floor_float implement floor = floor_double implement floor = floor_ldouble (* ****** ****** *) implement round = round_float implement round = round_double implement round = round_ldouble (* ****** ****** *) implement trunc = trunc_float implement trunc = trunc_double implement trunc = trunc_ldouble (* ****** ****** *) implement fmod = fmod_float implement fmod = fmod_double implement fmod = fmod_ldouble (* ****** ****** *) // implement fmax = fmax_float implement fmax = fmax_double implement fmax = fmax_ldouble // implement fmin = fmin_float implement fmin = fmin_double implement fmin = fmax_ldouble // (* ****** ****** *) implement fdim = fdim_float implement fdim = fdim_double implement fdim = fdim_ldouble (* ****** ****** *) implement fma = fma_float implement fma = fma_double implement fma = fma_ldouble (* ****** ****** *) // implement sqrt = sqrt_float implement sqrt = sqrt_double implement sqrt = sqrt_ldouble // implement cbrt = cbrt_float implement cbrt = cbrt_double implement cbrt = cbrt_ldouble // (* ****** ****** *) // implement intsqrt<>{n}(x) = $UN.cast{natLte(n)} (sqrt_double(g0int2float_int_double(x))) // implement intcbrt<>{n}(x) = $UN.cast{natLte(n)} (cbrt_double(g0int2float_int_double(x))) // (* ****** ****** *) implement pow = pow_float implement pow = pow_double implement pow = pow_ldouble (* ****** ****** *) implement exp = exp_float implement exp = exp_double implement exp = exp_ldouble (* ****** ****** *) implement log = log_float implement log = log_double implement log = log_ldouble implement log10 = log10_float implement log10 = log10_double implement log10 = log10_ldouble (* ****** ****** *) // implement sin = sin_float implement sin = sin_double implement sin = sin_ldouble // implement cos = cos_float implement cos = cos_double implement cos = cos_ldouble // implement tan = tan_float implement tan = tan_double implement tan = tan_ldouble // (* ****** ****** *) // implement asin = asin_float implement asin = asin_double implement asin = asin_ldouble // implement acos = acos_float implement acos = acos_double implement acos = acos_ldouble // implement atan = atan_float implement atan = atan_double implement atan = atan_ldouble // implement atan2 = atan2_float implement atan2 = atan2_double implement atan2 = atan2_ldouble // (* ****** ****** *) // implement sinh = sinh_float implement sinh = sinh_double implement sinh = sinh_ldouble // implement cosh = cosh_float implement cosh = cosh_double implement cosh = cosh_ldouble // implement tanh = tanh_float implement tanh = tanh_double implement tanh = tanh_ldouble // (* ****** ****** *) // implement asinh = asinh_float implement asinh = asinh_double implement asinh = asinh_ldouble // implement acosh = acosh_float implement acosh = acosh_double implement acosh = acosh_ldouble // implement atanh = atanh_float implement atanh = atanh_double implement atanh = atanh_ldouble // (* ****** ****** *) (* end of [math.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/float.dats0000644000175000017500000000321513431250607021567 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: October, 2014 // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names (* ****** ****** *) // staload "libats/libc/SATS/float.sats" // (* ****** ****** *) (* end of [float.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/DATS/strings.dats0000644000175000017500000000330413431250607022152 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2013 // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // prefix for external names // (* ****** ****** *) // staload "libats/libc/SATS/strings.sats" // (* ****** ****** *) // // HX-2013-03: it is still empty // (* ****** ****** *) (* end of [strings.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/.keeper0000644000175000017500000000000013431250607020313 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/0000755000175000017500000000000013431250607017603 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/math.cats0000644000175000017500000001507613431250607021421 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_MATH #define ATSLIB_LIBATS_LIBC_CATS_MATH /* ****** ****** */ #include /* ****** ****** */ #define \ atslib_libats_libc_isfinite_float isfinite #define \ atslib_libats_libc_isfinite_double isfinite #define \ atslib_libats_libc_isfinite_ldouble isfinite /* ****** ****** */ #define \ atslib_libats_libc_isnormal_float isnormal #define \ atslib_libats_libc_isnormal_double isnormal #define \ atslib_libats_libc_isnormal_ldouble isnormal /* ****** ****** */ #define atslib_libats_libc_isinf_float isinf #define atslib_libats_libc_isinf_double isinf #define atslib_libats_libc_isinf_ldouble isinf /* ****** ****** */ #define atslib_libats_libc_isnan_float isnan #define atslib_libats_libc_isnan_double isnan #define atslib_libats_libc_isnan_ldouble isnan /* ****** ****** */ #define atslib_libats_libc_fpclassify_float fpclassify #define atslib_libats_libc_fpclassify_double fpclassify #define atslib_libats_libc_fpclassify_ldouble fpclassify /* ****** ****** */ #define atslib_libats_libc_ceil_float ceilf #define atslib_libats_libc_ceil_double ceil #define atslib_libats_libc_ceil_ldouble ceill /* ****** ****** */ #define atslib_libats_libc_floor_float floorf #define atslib_libats_libc_floor_double floor #define atslib_libats_libc_floor_ldouble floorl /* ****** ****** */ #define atslib_libats_libc_round_float roundf #define atslib_libats_libc_round_double round #define atslib_libats_libc_round_ldouble roundl /* ****** ****** */ #define atslib_libats_libc_trunc_float truncf #define atslib_libats_libc_trunc_double trunc #define atslib_libats_libc_trunc_ldouble truncl /* ****** ****** */ #define atslib_libats_libc_fmod_float fmodf #define atslib_libats_libc_fmod_double fmod #define atslib_libats_libc_fmod_ldouble fmodl /* ****** ****** */ #define atslib_libats_libc_fmax_float fmaxf #define atslib_libats_libc_fmax_double fmax #define atslib_libats_libc_fmax_ldouble fmaxl /* ****** ****** */ #define atslib_libats_libc_fmin_float fminf #define atslib_libats_libc_fmin_double fmin #define atslib_libats_libc_fmin_ldouble fminl /* ****** ****** */ #define atslib_libats_libc_fdim_float fdimf #define atslib_libats_libc_fdim_double fdim #define atslib_libats_libc_fdim_ldouble fdiml /* ****** ****** */ #define atslib_libats_libc_fma_float fmaf #define atslib_libats_libc_fma_double fma #define atslib_libats_libc_fma_ldouble fmal /* ****** ****** */ #define atslib_libats_libc_sqrt_float sqrtf #define atslib_libats_libc_sqrt_double sqrt #define atslib_libats_libc_sqrt_ldouble sqrtl /* ****** ****** */ #define atslib_libats_libc_cbrt_float cbrtf #define atslib_libats_libc_cbrt_double cbrt #define atslib_libats_libc_cbrt_ldouble cbrtl /* ****** ****** */ #define atslib_libats_libc_pow_float powf #define atslib_libats_libc_pow_double pow #define atslib_libats_libc_pow_ldouble powl /* ****** ****** */ #define atslib_libats_libc_exp_float expf #define atslib_libats_libc_exp_double exp #define atslib_libats_libc_exp_ldouble expl /* ****** ****** */ // #define atslib_libats_libc_log_float logf #define atslib_libats_libc_log_double log #define atslib_libats_libc_log_ldouble logl // #define atslib_libats_libc_log10_float log10f #define atslib_libats_libc_log10_double log10 #define atslib_libats_libc_log10_ldouble log10l // /* ****** ****** */ // #define atslib_libats_libc_sin_float sinf #define atslib_libats_libc_sin_double sin #define atslib_libats_libc_sin_ldouble sinl // #define atslib_libats_libc_cos_float cosf #define atslib_libats_libc_cos_double cos #define atslib_libats_libc_cos_ldouble cosl // #define atslib_libats_libc_tan_float tanf #define atslib_libats_libc_tan_double tan #define atslib_libats_libc_tan_ldouble tanl // /* ****** ****** */ // #define atslib_libats_libc_asin_float asinf #define atslib_libats_libc_asin_double asin #define atslib_libats_libc_asin_ldouble asinl // #define atslib_libats_libc_acos_float acosf #define atslib_libats_libc_acos_double acos #define atslib_libats_libc_acos_ldouble cosl // #define atslib_libats_libc_atan_float atanf #define atslib_libats_libc_atan_double atan #define atslib_libats_libc_atan_ldouble atanl // #define atslib_libats_libc_atan2_float atan2f #define atslib_libats_libc_atan2_double atan2 #define atslib_libats_libc_atan2_ldouble atan2l // /* ****** ****** */ // #define atslib_libats_libc_sinh_float sinhf #define atslib_libats_libc_sinh_double sinh #define atslib_libats_libc_sinh_ldouble sinhl // #define atslib_libats_libc_cosh_float coshf #define atslib_libats_libc_cosh_double cosh #define atslib_libats_libc_cosh_ldouble coshl // #define atslib_libats_libc_tanh_float tanhf #define atslib_libats_libc_tanh_double tanh #define atslib_libats_libc_tanh_ldouble tanhl // /* ****** ****** */ #define atslib_libats_libc_asinh_float asinhf #define atslib_libats_libc_asinh_double asinh #define atslib_libats_libc_asinh_ldouble asinhl // #define atslib_libats_libc_acosh_float acoshf #define atslib_libats_libc_acosh_double acosh #define atslib_libats_libc_acosh_ldouble acoshl // #define atslib_libats_libc_atanh_float atanhf #define atslib_libats_libc_atanh_double atanh #define atslib_libats_libc_atanh_ldouble atanhl // /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_MATH /* ****** ****** */ /* end of [math.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/float.cats0000644000175000017500000000315013431250607021563 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: October, 2014 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_FLOAT #define ATSLIB_LIBATS_LIBC_CATS_FLOAT /* ****** ****** */ #include /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_FLOAT /* ****** ****** */ /* end of [float.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/arpa/0000755000175000017500000000000013431250607020526 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/arpa/.keeper0000644000175000017500000000000013431250607021770 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/arpa/inet.cats0000644000175000017500000000544313431250607022347 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: November, 2014 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_ARPA_INET #define ATSLIB_LIBATS_LIBC_CATS_ARPA_INET /* ****** ****** */ // #include #include // /* ****** ****** */ #ifndef EXIT_SUCCESS #define EXIT_SUCCESS 0 #endif // EXIT_SUCCESS #ifndef EXIT_FAILURE #define EXIT_FAILURE 1 #endif // EXIT_FAILURE /* ****** ****** */ // #define atslib_libats_libc_htons htons #define atslib_libats_libc_ntohs ntohs // #define atslib_libats_libc_htonl htonl #define atslib_libats_libc_ntohl ntohl // /* ****** ****** */ extern int inet_aton ( const char *cp, struct in_addr *inp ) ; // end of [inet_aton] ATSinline() atstype_bool atslib_libats_libc_inet_aton ( atstype_ptr cp, atstype_ref inp ) { // int rtn ; // rtn = inet_aton((char*)cp, (struct in_addr*)inp) ; // return (rtn ? atsbool_true : atsbool_false) ; // } // end of [atslib_libats_libc_inet_aton] /* ****** ****** */ #define \ atslib_libats_libc_inet_addr inet_addr #define \ atslib_libats_libc_inet_network inet_network /* ****** ****** */ #define \ atslib_libats_libc_inet_makeaddr inet_makeaddr /* ****** ****** */ #define atslib_libats_libc_inet_ntoa inet_ntoa /* ****** ****** */ #define \ atslib_libats_libc_inet4_pton(cp, inp) inet_pton(AF_INET4, cp, inp) #define \ atslib_libats_libc_inet6_pton(cp, inp) inet_pton(AF_INET6, cp, inp) /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_ARPA_INET /* ****** ****** */ /* end of [inet.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/unistd.cats0000644000175000017500000001076013431250607021771 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: April, 2012 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_UNISTD #define ATSLIB_LIBATS_LIBC_CATS_UNISTD /* ****** ****** */ #include /* ****** ****** */ #define atslib_libats_libc_close close #define atslib_libats_libc_close0 atslib_libats_libc_close #define atslib_libats_libc_close1 atslib_libats_libc_close #define atslib_libats_libc_close0_exn atslib_libats_libc_close_exn #define atslib_libats_libc_close1_exn atslib_libats_libc_close_exn /* ****** ****** */ #define atslib_libats_libc_dup dup #define atslib_libats_libc_dup_fildes dup #define atslib_libats_libc_dup2 dup2 #define atslib_libats_libc_dup3 dup3 /* ****** ****** */ #define atslib_libats_libc_execv(path, argv) execv((char*)path, (char**)argv) #define atslib_libats_libc_execvp(path, argv) execvp((char*)path, (char**)argv) /* ****** ****** */ #define atslib_libats_libc_encrypt encrypt /* ****** ****** */ #define atslib_libats_libc_fork fork /* ****** ****** */ #define atslib_libats_libc_getcwd getcwd /* ****** ****** */ #define atslib_libats_libc_getlogin getlogin #define atslib_libats_libc_getlogin_r getlogin_r /* ****** ****** */ #define atslib_libats_libc_getpid getpid #define atslib_libats_libc_getppid getppid /* ****** ****** */ #define atslib_libats_libc_getuid getuid #define atslib_libats_libc_setuid setuid #define atslib_libats_libc_geteuid geteuid #define atslib_libats_libc_seteuid seteuid /* ****** ****** */ #define atslib_libats_libc_getgid getgid #define atslib_libats_libc_setgid setgid #define atslib_libats_libc_getegid getegid #define atslib_libats_libc_setegid setegid /* ****** ****** */ #define atslib_libats_libc_setreuid setreuid #define atslib_libats_libc_setregid setregid #define atslib_libats_libc_setresuid setresuid #define atslib_libats_libc_setresgid setresgid /* ****** ****** */ #define atslib_libats_libc_setfsuid setfsuid #define atslib_libats_libc_setfsgid setfsgid /* ****** ****** */ #define atslib_libats_libc_pause pause /* ****** ****** */ #define atslib_libats_libc_read_err read #define atslib_libats_libc_write_err write /* ****** ****** */ #define atslib_libats_libc_pread pread #define atslib_libats_libc_pwrite pwrite /* ****** ****** */ #define atslib_libats_libc_alarm alarm #define atslib_libats_libc_alarm_set alarm #define atslib_libats_libc_alarm_cancel() alarm(0) /* ****** ****** */ #define atslib_libats_libc_sleep_int sleep #define atslib_libats_libc_sleep_uint sleep /* ****** ****** */ #define atslib_libats_libc_usleep_int usleep #define atslib_libats_libc_usleep_uint usleep /* ****** ****** */ #define atslib_libats_libc_rmdir rmdir /* ****** ****** */ #define atslib_libats_libc_link link #define atslib_libats_libc_unlink unlink /* ****** ****** */ #define atslib_libats_libc_symlink symlink #define atslib_libats_libc_readlink readlink /* ****** ****** */ #define atslib_libats_libc_sync sync #define atslib_libats_libc_fsync fsync #define atslib_libats_libc_fdatasync fdatasync /* ****** ****** */ #define atslib_libats_libc_truncate truncate #define atslib_libats_libc_ftruncate ftruncate /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_UNISTD /* ****** ****** */ /* end of [unistd.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/malloc.cats0000644000175000017500000000371713431250607021736 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_MALLOC #define ATSLIB_LIBATS_LIBC_CATS_MALLOC /* ****** ****** */ #include /* ****** ****** */ #define atslib_libats_libc_mallopt mallopt #define atslib_libats_libc_malloc_trim malloc_trim #define atslib_libats_libc_malloc_usable_size malloc_usable_size #define atslib_libats_libc_malloc_stats malloc_stats #define atslib_libats_libc_malloc_get_state malloc_get_state #define atslib_libats_libc_malloc_set_state malloc_set_state /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_MALLOC /* ****** ****** */ /* end of [malloc.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/gdbm/0000755000175000017500000000000013431250607020514 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/gdbm/datum.cats0000644000175000017500000000551013431250607022503 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: July, 2013 // /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_GDBM_DATUM #define \ ATSLIB_LIBATS_LIBC_CATS_GDBM_DATUM /* ****** ****** */ // #include \ "libats/libc/CATS/string.cats" // /* ****** ****** */ // typedef datum atslib_libats_libc_datum_type ; // /* ****** ****** */ ATSinline() atstype_bool atslib_libats_libc_gdbm_datum_is_valid (datum x) { return (x.dptr != 0) ; } // end of [atslib_libats_libc_gdbm_datum_is_valid] ATSinline() atstype_ptr atslib_libats_libc_gdbm_datum_takeout_ptr (datum x) { return x.dptr ; } // end of [atslib_libats_libc_gdbm_datum_takeout_ptr] /* ****** ****** */ ATSinline() datum atslib_libats_libc_gdbm_datum_make0_string ( char *str ) { datum res ; res.dptr = str ; res.dsize = (int)(atslib_libats_libc_strlen(str) + 1) ; // HX: account for the trailing null char! return res ; } // end of [atslib_libats_libc_gdbm_datum_make0_string] ATSinline() datum atslib_libats_libc_gdbm_datum_make1_string ( char *str ) { datum res ; res.dptr = (char*)atslib_libats_libc_strdup_gc(str) ; res.dsize = (int)(atslib_libats_libc_strlen(str) + 1) ; // HX: account for the trailing null char! return res ; } // end of [atslib_libats_libc_gdbm_datum_make1_string] /* ****** ****** */ ATSinline() atsvoid_t0ype atslib_libats_libc_gdbm_datum_free (datum x) { if (x.dptr) atspre_mfree_gc(x.dptr) ; return ; } // end of [atslib_libats_libc_gdbm_datum_free] /* ****** ****** */ #endif // ifndeg ATSLIB_LIBATS_LIBC_CATS_GDBM_DATUM /* ****** ****** */ /* end of [datum.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/gdbm/.keeper0000644000175000017500000000000013431250607021756 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/gdbm/gdbm.cats0000644000175000017500000000614513431250607022307 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: July, 2013 // /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_GDBM_GDBM #define \ ATSLIB_LIBATS_LIBC_CATS_GDBM_GDBM /* ****** ****** */ #include /* ****** ****** */ // #include \ "libats/libc/CATS/gdbm/datum.cats" // /* ****** ****** */ // ATSinline() gdbm_error atslib_libats_libc_gdbm_errno_get (/*void*/) { return gdbm_errno ; } // /* ****** ****** */ #define atslib_libats_libc_gdbm_open gdbm_open #define atslib_libats_libc_gdbm_close gdbm_close #define atslib_libats_libc_gdbm_store gdbm_store #define atslib_libats_libc_gdbm_fetch gdbm_fetch #define atslib_libats_libc_gdbm_exists gdbm_exists #define atslib_libats_libc_gdbm_delete gdbm_delete #define atslib_libats_libc_gdbm_nextkey gdbm_nextkey #define atslib_libats_libc_gdbm_firstkey gdbm_firstkey #define atslib_libats_libc_gdbm_sync gdbm_sync #define atslib_libats_libc_gdbm_export gdbm_export #define atslib_libats_libc_gdbm_import gdbm_import #define atslib_libats_libc_gdbm_reorganize gdbm_reorganize /* ****** ****** */ #define \ atslib_libats_libc_gdbm_strerror(ec) ((char*)gdbm_strerror(ec)) /* ****** ****** */ #define atslib_libats_libc_gdbm_setopt gdbm_setopt #define atslib_libats_libc_gdbm_getopt gdbm_getopt /* ****** ****** */ #ifdef \ GDBM_GETDBNAME // ATSinline() atstype_string atslib_libats_libc_gdbm_getdbname ( atstype_ptr dbf ) { int err ; char *dbname ; err = gdbm_setopt ( (GDBM_FILE)dbf , GDBM_GETDBNAME, &dbname, sizeof(void*) ) ; // gdbm_setopt if(err >= 0) return dbname ; else return (char*)0 ; } // end of [atslib_libats_libc_gdbm_getdbname] // #endif // end of [GDBM_GETDBNAME] /* ****** ****** */ #define atslib_libats_libc_gdbm_fdesc gdbm_fdesc /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_GDBM_GDBM /* ****** ****** */ /* end of [gdbm.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/sys/0000755000175000017500000000000013431250607020421 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/sys/socket_in.cats0000644000175000017500000000422513431250607023256 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: November, 2014 *) */ /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET_IN #define \ ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET_IN /* ****** ****** */ // #include #include // /* ****** ****** */ // #ifdef memset #else extern void *memset (void *p, int c, size_t n) ; #endif // ifdef(memset) // /* ****** ****** */ ATSinline() atsvoid_t0ype atslib_libats_libc_sockaddr_in_init ( atstype_ptr sa , sa_family_t af, in_addr_t inp, in_port_t port ) { struct sockaddr_in *sa2 = sa ; (void)memset(sa2, 0, sizeof(struct sockaddr_in)) ; sa2->sin_family = af ; sa2->sin_addr.s_addr = inp ; sa2->sin_port = port ; } // end of [atslib_libats_libc_sockaddr_in_init] /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET_IN /* ****** ****** */ /* end of [socket_in.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/sys/wait.cats0000644000175000017500000000340613431250607022244 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: October, 2013 *) */ /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_SYS_WAIT #define \ ATSLIB_LIBATS_LIBC_CATS_SYS_WAIT /* ****** ****** */ // #include // /* ****** ****** */ // #define \ atslib_libats_libc_wait_void() wait((int*)0) #define \ atslib_libats_libc_wait_status(x) wait((int*)x) // /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_WAIT /* ****** ****** */ /* end of [wait.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/sys/stat.cats0000644000175000017500000000415213431250607022252 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_SYS_STAT #define \ ATSLIB_LIBATS_LIBC_CATS_SYS_STAT /* ****** ****** */ #include /* ****** ****** */ typedef struct stat atslib_libats_libc_stat_struct ; /* ****** ****** */ #define atslib_libats_libc_umask umask /* ****** ****** */ #define atslib_libats_libc_chmod chmod /* ****** ****** */ #define atslib_libats_libc_mkdir mkdir #define atslib_libats_libc_mkdirat mkdirat /* ****** ****** */ #define atslib_libats_libc_mkfifo mkfifo /* ****** ****** */ #define atslib_libats_libc_stat stat #define atslib_libats_libc_fstat fstat #define atslib_libats_libc_lstat lstat /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_STAT /* ****** ****** */ /* end of [stat.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/sys/time.cats0000644000175000017500000000506313431250607022237 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: August, 2013 *) */ /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_SYS_TIME #define \ ATSLIB_LIBATS_LIBC_CATS_SYS_TIME /* ****** ****** */ #include /* ****** ****** */ // typedef struct timeval atslib_libats_libc_timeval_type ; typedef struct timezone atslib_libats_libc_timezone_type ; // typedef struct itimerval atslib_libats_libc_itimerval_type ; // /* ****** ****** */ #define \ atslib_libats_libc_gettimeofday_tv(tv) gettimeofday(tv, NULL) #define \ atslib_libats_libc_gettimeofday_tz(tz) gettimeofday(NULL, tz) #define \ atslib_libats_libc_settimeofday_tv(tv) settimeofday(tv, NULL) #define \ atslib_libats_libc_settimeofday_tz(tz) settimeofday(NULL, tz) #define \ atslib_libats_libc_settimeofday_tvtz(tv, tz) settimeofday(tv, tz) /* ****** ****** */ #define atslib_libats_libc_utimes utimes #define atslib_libats_libc_futimes futimes #define atslib_libats_libc_futimesat futimesat /* ****** ****** */ // #define atslib_libats_libc_getitimer getitimer // #define atslib_libats_libc_setitimer setitimer #define \ atslib_libats_libc_setitimer_null(which, itval) setitimer(which, itval, NULL) // /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_TIME /* ****** ****** */ /* end of [time.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/sys/mman.cats0000644000175000017500000000343013431250607022225 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: October, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_MMAN #define ATSLIB_LIBATS_LIBC_CATS_SYS_MMAN /* ****** ****** */ // #include #include // #include // /* ****** ****** */ #define atslib_libats_libc_shm_open shm_open #define atslib_libats_libc_shm_unlink shm_unlink /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_MMAN /* ****** ****** */ /* end of [mman.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/sys/types.cats0000644000175000017500000000776313431250607022456 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_SYS_TYPES #define \ ATSLIB_LIBATS_LIBC_CATS_SYS_TYPES /* ****** ****** */ #include /* ****** ****** */ typedef mode_t atslib_libats_libc_mode_type ; /* ****** ****** */ // // HX-2013-8: // [atslib_libats_libc_time_type] is already // defined in [libats/libc/CATS/time.cats] // typedef time_t atslib_libats_libc_types_time_type ; // /* ****** ****** */ #if(0) // // HX-2013-05: where are they? // HX-2013-06: they are declared in [time.h] // typedef clock_t atslib_libats_libc_clock_type ; typedef clockid_t atslib_libats_libc_clockid_type ; #endif /* ****** ****** */ typedef ino_t atslib_libats_libc_ino_type ; typedef off_t atslib_libats_libc_off_type ; /* ****** ****** */ typedef pid_t atslib_libats_libc_pid_type ; typedef uid_t atslib_libats_libc_uid_type ; typedef gid_t atslib_libats_libc_gid_type ; /* ****** ****** */ ATSinline() atslib_libats_libc_mode_type atslib_libats_libc_lor_mode_mode ( atslib_libats_libc_mode_type m1 , atslib_libats_libc_mode_type m2 ) { return (m1 | m2) ; } // end of [atslib_libats_libc_lor_mode_mode] ATSinline() atslib_libats_libc_mode_type atslib_libats_libc_land_mode_mode ( atslib_libats_libc_mode_type m1 , atslib_libats_libc_mode_type m2 ) { return (m1 & m2) ; } // end of [atslib_libats_libc_land_mode_mode] /* ****** ****** */ ATSinline() atstype_bool atslib_libats_libc_lt_time_time ( atslib_libats_libc_types_time_type t1 , atslib_libats_libc_types_time_type t2 ) { return \ (t1 < t2 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_lt_time_time] ATSinline() atstype_bool atslib_libats_libc_lte_time_time ( atslib_libats_libc_types_time_type t1 , atslib_libats_libc_types_time_type t2 ) { return \ (t1 <= t2 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_lte_time_time] /* ****** ****** */ #define \ atslib_libats_libc_gt_time_time(t1, t2) \ atslib_libats_libc_lt_time_time(t2, t1) #define \ atslib_libats_libc_gte_time_time(t1, t2) \ atslib_libats_libc_lte_time_time(t2, t1) /* ****** ****** */ ATSinline() atstype_bool atslib_libats_libc_eq_time_time ( atslib_libats_libc_types_time_type t1 , atslib_libats_libc_types_time_type t2 ) { return (t1 == t2 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_eq_time_time] ATSinline() atstype_bool atslib_libats_libc_neq_time_time ( atslib_libats_libc_types_time_type t1 , atslib_libats_libc_types_time_type t2 ) { return (t1 != t2 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_neq_time_time] /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_TYPES /* ****** ****** */ /* end of [types.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/sys/.keeper0000644000175000017500000000000013431250607021663 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/sys/socket.cats0000644000175000017500000000631513431250607022572 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: November, 2014 *) */ /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET #define \ ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET /* ****** ****** */ // #include #include // /* ****** ****** */ // /* // // socket address family // typedef unsigned short int sa_family_t; */ // // socket protocol family // typedef unsigned short int sp_family_t; // /* ****** ****** */ #define \ atslib_libats_libc_socket_AF_type socket_AF_type #define \ atslib_libats_libc_socket_PF_type socket_PF_type /* ****** ****** */ // #define \ atslib_libats_libc_bind_err(fd, sa, len) \ bind(fd, (const struct sockaddr*)sa, len) // extern void atslib_libats_libc_bind_exn ( int sockfd, atstype_ptr sa, socklen_t salen ); // end of [atslib_libats_libc_bind_exn] // /* ****** ****** */ // #define \ atslib_libats_libc_listen_err(fd, qsz) listen(fd, qsz) // extern void atslib_libats_libc_listen_exn(int sockfd, int listenqsz); // /* ****** ****** */ // #define \ atslib_libats_libc_connect_err(fd, sa, len) \ connect(fd, (const struct sockaddr*)sa, len) // extern void atslib_libats_libc_connect_exn ( int sockfd, atstype_ptr sa, socklen_t salen ); // end of [atslib_libats_libc_connect_exn] // /* ****** ****** */ // #define \ atslib_libats_libc_accept_err(fd, sa, len) \ accept(fd, (struct sockaddr*)sa, (socklen_t*)len) // #define \ atslib_libats_libc_accept_null_err(fd) atslib_libats_libc_accept_err(fd, 0, 0) // /* ****** ****** */ #define atslib_libats_libc_socket_close(fd) close(fd) /* ****** ****** */ #define atslib_libats_libc_shutdown(fd, how) shutdown(fd, how) /* ****** ****** */ #define \ atslib_libats_libc_socket_read(fd, bufp, bsz) read(fd, (char*)bufp, bsz) #define \ atslib_libats_libc_socket_write(fd, bufp, bsz) write(fd, (const char*)bufp, bsz) /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET /* ****** ****** */ /* end of [socket.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/netinet/0000755000175000017500000000000013431250607021251 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/netinet/.keeper0000644000175000017500000000000013431250607022513 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/netinet/in.cats0000644000175000017500000000454313431250607022541 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: November, 2014 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_NETINET_IN_CATS #define ATSLIB_LIBATS_LIBC_NETINET_IN_CATS /* ****** ****** */ // #include #include // /* ****** ****** */ // typedef struct in_addr in_addr_struct; typedef struct in6_addr in6_addr_struct; // /* ****** ****** */ // typedef struct sockaddr_in sockaddr_in_struct ; typedef struct sockaddr_in6 sockaddr_in6_struct ; // #define \ atslib_libats_libc_socklen_in \ (sizeof(sockaddr_in_struct)) #define \ atslib_libats_libc_socklen_in6 \ (sizeof(sockaddr_in6_struct)) // /* ****** ****** */ #define \ atslib_libats_libc_in_port_nbo_int(nport) htons(nport) #define \ atslib_libats_libc_in_port_nbo_uint(nport) htons(nport) /* ****** ****** */ ATSinline() in_addr_t atslib_libats_libc_in_addr_hbo2nbo (in_addr_t addr_hbo) { return htonl(addr_hbo) ; } /* end of [atslib_libats_libc_in_addr_hbo2nbo] */ /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_NETINET_IN_CATS /* ****** ****** */ /* end of [in.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/stdlib.cats0000644000175000017500000001177613431250607021754 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_STDLIB #define \ ATSLIB_LIBATS_LIBC_CATS_STDLIB /* ****** ****** */ #include /* ****** ****** */ #define \ atslib_libats_libc_abort abort /* ****** ****** */ #define \ atslib_libats_libc__Exit _Exit /* ****** ****** */ #define \ atslib_libats_libc_atexit atexit /* ****** ****** */ #define atslib_libats_libc_abs abs #define atslib_libats_libc_labs labs #define atslib_libats_libc_llabs llabs /* ****** ****** */ #define atslib_libats_libc_div div #define atslib_libats_libc_ldiv ldiv #define atslib_libats_libc_lldiv lldiv /* ****** ****** */ #define atslib_libats_libc_a64l a64l #define atslib_libats_libc_l64a l64a /* ****** ****** */ #define atslib_libats_libc_atoi atoi #define atslib_libats_libc_atol atol #define atslib_libats_libc_atoll atoll /* ****** ****** */ #define atslib_libats_libc_atof atof /* ****** ****** */ #define \ atslib_libats_libc_strtol0(nptr, base) \ atslib_libats_libc_strtol_unsafe(nptr, 0, base) #define \ atslib_libats_libc_strtol1(nptr, endptr, base) \ atslib_libats_libc_strtol_unsafe(nptr, endptr, base) #define \ atslib_libats_libc_strtol_unsafe(nptr, endptr, base) \ strtol((char*)(nptr), (char**)(endptr), base) /* ****** ****** */ #define \ atslib_libats_libc_strtoll0(nptr, base) \ atslib_libats_libc_strtoll_unsafe(nptr, 0, base) #define \ atslib_libats_libc_strtoll1(nptr, endptr, base) \ atslib_libats_libc_strtoll_unsafe(nptr, endptr, base) #define \ atslib_libats_libc_strtoll_unsafe(nptr, endptr, base) \ strtoll((char*)(nptr), (char**)(endptr), base) /* ****** ****** */ #define \ atslib_libats_libc_strtof0(nptr) \ atslib_libats_libc_strtof_unsafe(nptr, 0) #define \ atslib_libats_libc_strtof1(nptr, endptr) \ atslib_libats_libc_strtof_unsafe(nptr, endptr) #define \ atslib_libats_libc_strtof_unsafe(nptr, endptr) \ strtof((char*)(nptr), (char**)(endptr)) /* ****** ****** */ #define \ atslib_libats_libc_strtod0(nptr) \ atslib_libats_libc_strtod_unsafe(nptr, 0) #define \ atslib_libats_libc_strtod1(nptr, endptr) \ atslib_libats_libc_strtod_unsafe(nptr, endptr) #define \ atslib_libats_libc_strtod_unsafe(nptr, endptr) \ strtod((char*)(nptr), (char**)(endptr)) /* ****** ****** */ #define atslib_libats_libc_getenv getenv #define atslib_libats_libc_putenv putenv #define atslib_libats_libc_setenv setenv #define atslib_libats_libc_unsetenv unsetenv /* ****** ****** */ #define atslib_libats_libc_rand rand #define atslib_libats_libc_srand srand #define atslib_libats_libc_rand_r rand_r /* ****** ****** */ #define atslib_libats_libc_random random #define atslib_libats_libc_srandom srandom /* ****** ****** */ // #define atslib_libats_libc_seed48 seed48 #define atslib_libats_libc_srand48 srand48 // #define atslib_libats_libc_drand48 drand48 #define atslib_libats_libc_erand48 erand48 #define atslib_libats_libc_lrand48 lrand48 #define atslib_libats_libc_nrand48 nrand48 #define atslib_libats_libc_mrand48 mrand48 #define atslib_libats_libc_jrand48 jrand48 #define atslib_libats_libc_lcong48 lcong48 // /* ****** ****** */ #define \ atslib_libats_libc_qsort\ (base, nmemb, size, compar) \ qsort(base, nmemb, size, (void*)compar) /* ****** ****** */ #define \ atslib_libats_libc_bsearch\ (key, base, nmemb, size, compar) \ bsearch(key, base, nmemb, size, (void*)compar) /* ****** ****** */ #define \ atslib_libats_libc_mkstemp mkstemp #define \ atslib_libats_libc_mkostemp mkostemp /* ****** ****** */ #define \ atslib_libats_libc_mfree_libc free #define \ atslib_libats_libc_malloc_libc malloc /* ****** ****** */ #define atslib_libats_libc_system system /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STDLIB /* ****** ****** */ /* end of [stdlib.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/time.cats0000644000175000017500000001061513431250607021420 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_TIME #define ATSLIB_LIBATS_LIBC_CATS_TIME /* ****** ****** */ #include /* ****** ****** */ // typedef time_t atslib_libats_libc_time_type ; // typedef struct tm atslib_libats_libc_tm_struct_type ; // /* ****** ****** */ typedef clock_t atslib_libats_libc_clock_type ; /* ****** ****** */ typedef struct timespec atslib_libats_libc_timespec_type ; /* ****** ****** */ #define \ atslib_libats_libc_difftime difftime /* ****** ****** */ #define \ atslib_libats_libc_time_get() time((time_t*)0) ATSinline() atstype_bool atslib_libats_libc_time_getset ( atstype_ref tval ) { return (time((time_t*)tval) >= 0 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_time_getset] /* ****** ****** */ #define \ atslib_libats_libc_ctime ctime #define \ atslib_libats_libc_ctime_r ctime_r /* ****** ****** */ ATSinline() atstype_int atslib_libats_libc_tm_get_sec (atstype_ptr tm) { return ((struct tm*)tm)->tm_sec ; } // end of [atslib_libats_libc_tm_get_sec] ATSinline() atstype_int atslib_libats_libc_tm_get_min (atstype_ptr tm) { return ((struct tm*)tm)->tm_min ; } // end of [atslib_libats_libc_tm_get_min] ATSinline() atstype_int atslib_libats_libc_tm_get_hour (atstype_ptr tm) { return ((struct tm*)tm)->tm_hour ; } // end of [atslib_libats_libc_tm_get_hour] ATSinline() atstype_int atslib_libats_libc_tm_get_mday (atstype_ptr tm) { return ((struct tm*)tm)->tm_mday ; } // end of [atslib_libats_libc_tm_get_mday] ATSinline() atstype_int atslib_libats_libc_tm_get_mon (atstype_ptr tm) { return ((struct tm*)tm)->tm_mon ; } // end of [atslib_libats_libc_tm_get_mon] ATSinline() atstype_int atslib_libats_libc_tm_get_year (atstype_ptr tm) { return ((struct tm*)tm)->tm_year ; } // end of [atslib_libats_libc_tm_get_year] ATSinline() atstype_int atslib_libats_libc_tm_get_wday (atstype_ptr tm) { return ((struct tm*)tm)->tm_wday ; } // end of [atslib_libats_libc_tm_get_wday] ATSinline() atstype_int atslib_libats_libc_tm_get_yday (atstype_ptr tm) { return ((struct tm*)tm)->tm_yday ; } // end of [atslib_libats_libc_tm_get_yday] ATSinline() atstype_int atslib_libats_libc_tm_get_isdst (atstype_ptr tm) { return ((struct tm*)tm)->tm_isdst ; } // end of [atslib_libats_libc_tm_get_isdst] /* ****** ****** */ #define \ atslib_libats_libc_mktime mktime /* ****** ****** */ #define \ atslib_libats_libc_asctime asctime /* ****** ****** */ #define \ atslib_libats_libc_gmtime gmtime #define \ atslib_libats_libc_gmtime_r gmtime_r /* ****** ****** */ #define \ atslib_libats_libc_localtime localtime #define \ atslib_libats_libc_localtime_r localtime_r /* ****** ****** */ #define atslib_libats_libc_tzset tzset /* ****** ****** */ #define atslib_libats_libc_clock clock #define \ atslib_libats_libc_clock_getres clock_getres /* ****** ****** */ #define \ atslib_libats_libc_clock_gettime clock_gettime #define \ atslib_libats_libc_clock_settime clock_settime /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_TIME /* ****** ****** */ /* end of [time.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/strings.cats0000644000175000017500000000371413431250607022155 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_STRINGS #define ATSLIB_LIBATS_LIBC_CATS_STRINGS /* ****** ****** */ #include /* ****** ****** */ #define atslib_libats_libc_index_int index #define atslib_libats_libc_index_char(c) index((int)c) #define atslib_libats_libc_rindex_int rindex #define atslib_libats_libc_rindex_char(c) rindex((int)c) /* ****** ****** */ #define atslib_libats_libc_strcasecmp strcasecmp #define atslib_libats_libc_strncasecmp strncasecmp /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STRINGS /* ****** ****** */ /* end of [strings.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/fnmatch.cats0000644000175000017500000000350613431250607022103 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_FNMATCH #define ATSLIB_LIBATS_LIBC_CATS_FNMATCH /* ****** ****** */ #include /* ****** ****** */ #define \ atslib_libats_libc_fnmatch_null(pat, str) fnmatch((char*)pat, (char*)str, 0) #define \ atslib_libats_libc_fnmatch_flags(pat, str, flags) fnmatch((char*)pat, (char*)str, flags) /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_FNMATCH /* ****** ****** */ /* end of [fnmatch.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/.keeper0000644000175000017500000000000013431250607021045 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/dirent.cats0000644000175000017500000000604013431250607021744 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_DIRENT #define ATSLIB_LIBATS_LIBC_CATS_DIRENT /* ****** ****** */ #include #include // HX: after sys/types /* ****** ****** */ #include "share/H/pats_atslib.h" /* ****** ****** */ // typedef DIR atslib_libats_libc_DIR_type ; // typedef struct dirent atslib_libats_libc_dirent_type ; // /* ****** ****** */ #define \ atslib_libats_libc_dirent_get_d_ino(ent) \ (((atslib_libats_libc_dirent_type*)ent)->d_ino) #define \ atslib_libats_libc_dirent_get_d_name(ent) \ (((atslib_libats_libc_dirent_type*)ent)->d_name) /* ****** ****** */ #define \ atslib_libats_libc_direntp_get_d_name(entp) \ (((atslib_libats_libc_dirent_type*)entp)->d_name) /* ****** ****** */ #define \ atslib_libats_libc_direntp_free(x) atspre_mfree_gc(x) /* ****** ****** */ #define atslib_libats_libc_alphasort alphasort #define atslib_libats_libc_versionsort versionsort /* ****** ****** */ #define atslib_libats_libc_opendir opendir /* ****** ****** */ #define atslib_libats_libc_closedir closedir /* ****** ****** */ #define \ atslib_libats_libc_readdir readdir #define \ atslib_libats_libc_readdir_r(dirp, ent, res) \ readdir_r((DIR*)dirp, (struct dirent*)ent, (struct dirent**)res) /* ****** ****** */ #define \ atslib_libats_libc_scandir(dirp, namelst, filter, compar) \ scandir((char*)dirp, (struct dirent***)namelst, (void*)filter, (void*)compar) /* ****** ****** */ #define \ atslib_libats_libc_rewinddir rewinddir /* ****** ****** */ #define atslib_libats_libc_seekdir seekdir #define atslib_libats_libc_telldir telldir /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_DIRENT /* ****** ****** */ /* end of [dirent.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/signal.cats0000644000175000017500000000612713431250607021742 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: April, 2014 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_SIGNAL #define ATSLIB_LIBATS_LIBC_CATS_SIGNAL /* ****** ****** */ #include /* ****** ****** */ // typedef int signum_t ; // typedef void (*sighandler_t)(signum_t) ; // /* ****** ****** */ typedef struct sigaction atslib_libats_libc_sigaction_struct ; /* ****** ****** */ #define atslib_libats_libc_signal signal /* ****** ****** */ #define atslib_libats_libc_sigaddset sigaddset #define atslib_libats_libc_sigdelset sigdelset #define atslib_libats_libc_sigemptyset sigemptyset #define atslib_libats_libc_sigfillset sigfillset /* ****** ****** */ #define \ atslib_libats_libc_sigaction sigaction #define \ atslib_libats_libc_sigaction_null(sgn, act) \ atslib_libats_libc_sigaction(sgn, act, (atslib_libats_libc_sigaction_struct*)0) /* ****** ****** */ #define atslib_libats_libc_kill kill #define atslib_libats_libc_killpg killpg #define atslib_libats_libc_raise raise /* ****** ****** */ #define atslib_libats_libc_sigset sigset #define atslib_libats_libc_sighold sighold #define atslib_libats_libc_sigignore sigignore #define atslib_libats_libc_sigrelse sigrelse /* ****** ****** */ #define atslib_libats_libc_sigwait sigwait /* ****** ****** */ #define atslib_libats_libc_sigpause sigpause #define atslib_libats_libc_sigsuspend sigsuspend /* ****** ****** */ #define atslib_libats_libc_sigpending sigpending #define atslib_libats_libc_siginterrupt siginterrupt /* ****** ****** */ #define atslib_libats_libc_psignal psignal /* ****** ****** */ /* // // declared in // extern char* strsignal (int signum) ; */ #define atslib_libats_libc_strsignal strsignal /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SIGNAL /* ****** ****** */ /* end of [signal.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/alloca.cats0000644000175000017500000000354113431250607021715 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2014 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_ALLOCA #define ATSLIB_LIBATS_LIBC_CATS_ALLOCA /* ****** ****** */ #include /* ****** ****** */ // #define atslib_libats_libc_alloca(bsz) alloca(bsz) // /* ****** ****** */ // #define atslib_libats_libc_ptr_alloca_tsz(tsz) alloca(tsz) // #define atslib_libats_libc_array_ptr_alloca_tsz(asz, tsz) alloca((asz)*(tsz)) // /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_ALLOCA /* ****** ****** */ /* end of [alloca.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/dlfcn.cats0000644000175000017500000000372513431250607021554 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: December, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_DLFCN #define ATSLIB_LIBATS_LIBC_CATS_DLFCN /* ****** ****** */ #include /* ****** ****** */ #define \ atslib_libats_libc_dlopen dlopen /* ****** ****** */ #define \ atslib_libats_libc_dlclose dlclose /* ****** ****** */ #define \ atslib_libats_libc_dlerror dlerror /* ****** ****** */ #define atslib_libats_libc_dlsym dlsym /* ****** ****** */ #define atslib_libats_libc_dladdr dladdr #define atslib_libats_libc_dlvsym dlvsym /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_DLFCN /* ****** ****** */ /* end of [dlfcn.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/string.cats0000644000175000017500000000706513431250607021775 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_STRING #define ATSLIB_LIBATS_LIBC_CATS_STRING /* ****** ****** */ #include #include /* ****** ****** */ #define atslib_libats_libc_strcmp strcmp #define atslib_libats_libc_strncmp strncmp /* ****** ****** */ #define atslib_libats_libc_strcoll strcoll /* ****** ****** */ #define atslib_libats_libc_strspn strspn #define atslib_libats_libc_strcspn strcspn /* ****** ****** */ #define atslib_libats_libc_strlen strlen #define atslib_libats_libc_strnlen strnlen /* ****** ****** */ #define atslib_libats_libc_strcat strcat #define atslib_libats_libc_strcat_unsafe strcat #define atslib_libats_libc_strncat_unsafe strncat /* ****** ****** */ #define atslib_libats_libc_strcpy strcpy #define atslib_libats_libc_strcpy_unsafe strcpy #define atslib_libats_libc_strncpy_unsafe strncpy /* ****** ****** */ #define atslib_libats_libc_strdup strdup #define atslib_libats_libc_strndup strndup #define atslib_libats_libc_strdup_free atsruntime_mfree_libc #define atslib_libats_libc_strdupa strdupa #define atslib_libats_libc_strndupa strndupa #define atslib_libats_libc_strdupa_free atsruntime_afree_libc /* ****** ****** */ #define atslib_libats_libc_strfry strfry /* ****** ****** */ #define atslib_libats_libc_memcpy memcpy #define atslib_libats_libc_memcpy_unsafe memcpy /* ****** ****** */ #define atslib_libats_libc_memccpy_unsafe memccpy /* ****** ****** */ #define atslib_libats_libc_mempcpy mempcpy #define atslib_libats_libc_mempcpy_unsafe mempcpy /* ****** ****** */ #define atslib_libats_libc_memset_unsafe memset /* ****** ****** */ #define atslib_libats_libc_memmove_unsafe memmove /* ****** ****** */ #define atslib_libats_libc_strerror strerror #define atslib_libats_libc_strerror_r strerror_r /* ****** ****** */ ATSinline() atstype_ptr atslib_libats_libc_strdup_gc (atstype_string src) { char *dst ; size_t len, len1 ; len = atslib_libats_libc_strlen((char*)src) ; len1 = len + 1; dst = atspre_malloc_gc(len1) ; return atslib_libats_libc_memcpy(dst, src, len1) ; } // end of [atslib_libats_libc_strdup_gc] /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STRING /* ****** ****** */ /* end of [string.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/fcntl.cats0000644000175000017500000000454513431250607021575 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_FCNTL #define ATSLIB_LIBATS_LIBC_CATS_FCNTL /* ****** ****** */ #include #include // HX: after sys/types /* ****** ****** */ #define atslib_libats_libc_fildes_get_int(fd) (fd) /* ****** ****** */ ATSinline() atstype_bool atslib_libats_libc_fildes_isgtez (atstype_int fd) { return (fd >= 0 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_fildes_isgtez] /* ****** ****** */ #define \ atslib_libats_libc_fcntlflags_lor(x1, x2) ((x1)|(x2)) /* ****** ****** */ #define \ atslib_libats_libc_fcntl_getfl(fd) fcntl(fd, F_GETFL) #define \ atslib_libats_libc_fcntl_setfl(fd, flags) fcntl(fd, F_SETFL, flags) /* ****** ****** */ #define \ atslib_libats_libc_open_flags(path, flags) open((char*)path, flags) #define \ atslib_libats_libc_open_flags_mode(path, flags, mode) open((char*)path, flags, mode) /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_FCNTL /* ****** ****** */ /* end of [fcntl.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/stdio.cats0000644000175000017500000001561013431250607021604 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: September, 2011 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_STDIO #define ATSLIB_LIBATS_LIBC_CATS_STDIO /* ****** ****** */ #include /* extern void perror (const char* str) ; // in [stdio.h] */ extern void exit (int status) ; // in [stdlib.h] /* ****** ****** */ // #define \ atslib_libats_libc_FILEptr_is_null(p) (p == 0) #define \ atslib_libats_libc_FILEptr_isnot_null(p) (p != 0) // /* ****** ****** */ #define \ atslib_libats_libc_clearerr(p) clearerr(((FILE*)p)) /* ****** ****** */ #define atslib_libats_libc_fopen fopen #define atslib_libats_libc_fopen_ref_exn atslib_libats_libc_fopen_exn /* ****** ****** */ #define atslib_libats_libc_fclose fclose #define atslib_libats_libc_fclose0 atslib_libats_libc_fclose #define atslib_libats_libc_fclose1 atslib_libats_libc_fclose #define atslib_libats_libc_fclose0_exn atslib_libats_libc_fclose_exn #define atslib_libats_libc_fclose1_exn atslib_libats_libc_fclose_exn /* #define atslib_libats_libc_fclose_stdin() atslib_libats_libc_fclose_exn(stdin) #define atslib_libats_libc_fclose_stdout() atslib_libats_libc_fclose_exn(stdout) #define atslib_libats_libc_fclose_stderr() atslib_libats_libc_fclose_exn(stderr) */ /* ****** ****** */ // #define atslib_libats_libc_fflush fflush #define atslib_libats_libc_fflush0 atslib_libats_libc_fflush #define atslib_libats_libc_fflush1 atslib_libats_libc_fflush #define atslib_libats_libc_fflush0_exn atslib_libats_libc_fflush_exn #define atslib_libats_libc_fflush1_exn atslib_libats_libc_fflush_exn // #define atslib_libats_libc_fflush_all() atslib_libats_libc_fclose_exn((FILE*)0) #define atslib_libats_libc_fflush_stdout() atslib_libats_libc_fclose_exn(stdout) // /* ****** ****** */ #define atslib_libats_libc_fileno fileno #define atslib_libats_libc_fileno0 atslib_libats_libc_fileno #define atslib_libats_libc_fileno1 atslib_libats_libc_fileno /* ****** ****** */ #define atslib_libats_libc_fdopen fdopen /* ****** ****** */ #define \ atslib_libats_libc_feof(p) feof(((FILE*)p)) #define atslib_libats_libc_feof0 atslib_libats_libc_feof #define atslib_libats_libc_feof1 atslib_libats_libc_feof /* ****** ****** */ #define \ atslib_libats_libc_ferror(p) ferror(((FILE*)p)) #define atslib_libats_libc_ferror0 atslib_libats_libc_ferror #define atslib_libats_libc_ferror1 atslib_libats_libc_ferror /* ****** ****** */ #define atslib_libats_libc_fgetc fgetc #define atslib_libats_libc_fgetc0 atslib_libats_libc_fgetc #define atslib_libats_libc_fgetc1 atslib_libats_libc_fgetc /* ****** ****** */ #define atslib_libats_libc_getchar getchar #define atslib_libats_libc_getchar0 atslib_libats_libc_getchar #define atslib_libats_libc_getchar1 atslib_libats_libc_getchar /* ****** ****** */ #define atslib_libats_libc_fputc fputc #define atslib_libats_libc_fputc0_int atslib_libats_libc_fputc #define atslib_libats_libc_fputc0_char(c, fp) atslib_libats_libc_fputc((int)c, fp) #define atslib_libats_libc_fputc1_int atslib_libats_libc_fputc #define atslib_libats_libc_fputc1_char(c, fp) atslib_libats_libc_fputc((int)c, fp) #define atslib_libats_libc_fputc0_exn_int atslib_libats_libc_fputc_exn #define atslib_libats_libc_fputc0_exn_char atslib_libats_libc_fputc_exn /* ****** ****** */ #define atslib_libats_libc_putchar putchar #define atslib_libats_libc_putchar0 atslib_libats_libc_putchar #define atslib_libats_libc_putchar1 atslib_libats_libc_putchar /* ****** ****** */ #define atslib_libats_libc_fgets fgets #define atslib_libats_libc_fgets0 atslib_libats_libc_fgets #define atslib_libats_libc_fgets1 atslib_libats_libc_fgets #define atslib_libats_libc_fgets1_err atslib_libats_libc_fgets #define atslib_libats_libc_fgets0_gc atslib_libats_libc_fgets_gc #define atslib_libats_libc_fgets1_gc atslib_libats_libc_fgets_gc /* ****** ****** */ #define atslib_libats_libc_fputs fputs #define atslib_libats_libc_fputs0 atslib_libats_libc_fputs #define atslib_libats_libc_fputs1 atslib_libats_libc_fputs #define atslib_libats_libc_fputs0_exn atslib_libats_libc_fputs_exn #define atslib_libats_libc_fputs1_exn atslib_libats_libc_fputs_exn /* ****** ****** */ #define atslib_libats_libc_puts puts /* ****** ****** */ #define atslib_libats_libc_fread fread #define atslib_libats_libc_fread0 atslib_libats_libc_fread #define atslib_libats_libc_fread1 atslib_libats_libc_fread /* ****** ****** */ #define atslib_libats_libc_fwrite fwrite #define atslib_libats_libc_fwrite0 atslib_libats_libc_fwrite #define atslib_libats_libc_fwrite1 atslib_libats_libc_fwrite /* ****** ****** */ #define atslib_libats_libc_fseek fseek #define atslib_libats_libc_fseek0 atslib_libats_libc_fseek #define atslib_libats_libc_fseek1 atslib_libats_libc_fseek /* ****** ****** */ #define atslib_libats_libc_ftell ftell #define atslib_libats_libc_ftell0 atslib_libats_libc_ftell #define atslib_libats_libc_ftell1 atslib_libats_libc_ftell /* ****** ****** */ #define atslib_libats_libc_perror perror /* ****** ****** */ #define atslib_libats_libc_popen popen /* ****** ****** */ #define atslib_libats_libc_pclose0_exn atslib_libats_libc_pclose_exn #define atslib_libats_libc_pclose1_exn atslib_libats_libc_pclose_exn /* ****** ****** */ #define atslib_libats_libc_remove remove #define atslib_libats_libc_rename rename /* ****** ****** */ #define atslib_libats_libc_rewind rewind #define atslib_libats_libc_rewind0 atslib_libats_libc_rewind #define atslib_libats_libc_rewind1 atslib_libats_libc_rewind /* ****** ****** */ #define atslib_libats_libc_tmpfile tmpfile #define atslib_libats_libc_tmpfile_ref_exn atslib_libats_libc_tmpfile_exn /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_STDIO /* ****** ****** */ /* end of [stdio.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/CATS/errno.cats0000644000175000017500000000431213431250607021604 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/libc/CATS/CODEGEN/errno.atxt ** Time of generation: Mon Sep 5 20:36:41 2016 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_LIBC_CATS_ERRNO #define ATSLIB_LIBATS_LIBC_CATS_ERRNO /* ****** ****** */ #include /* ****** ****** */ typedef int errno_t ; /* ****** ****** */ #define ENONE 0 /* ****** ****** */ #define \ atslib_libats_libc_the_errno_get() (errno) #define \ atslib_libats_libc_the_errno_set(x) (errno = (x)) #define \ atslib_libats_libc_the_errno_reset() (errno = ENONE) /* ****** ****** */ ATSinline() atstype_bool atslib_libats_libc_the_errno_test(errno_t x) { return (errno==(x)) ? atsbool_true : atsbool_false ; } /* end of [atslib_libats_libc_the_errno_test] */ /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_ERRNO /* ****** ****** */ /* end of [errno.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/0000755000175000017500000000000013431250607017623 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/stddef.sats0000644000175000017500000000336613431250607022000 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: July, 2012 // (* ****** ****** *) typedef size_t0ype = g0uint(size_kind) (* ****** ****** *) abst@ype wchar_t0ype = $extype"wchar_t" abst@ype ptrdiff_t0ype = $extype"ptrdiff_t" (* ****** ****** *) typedef size = size_t0ype typedef size_t = size_t0ype typedef wchar = wchar_t0ype typedef wchar_t = wchar_t0ype typedef ptrdiff = ptrdiff_t0ype typedef ptrdiff_t = ptrdiff_t0ype (* ****** ****** *) (* end of [stddef.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/math.sats0000644000175000017500000002201513431250607021450 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: April, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/math.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define RD(x) x // for commenting: read-only #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) macdef M_E = 2.7182818284590452354 // e macdef M_PI = 3.14159265358979323846 // pi macdef M_PI_2 = 1.57079632679489661923 // pi/2 macdef M_PI_4 = 0.78539816339744830962 // pi/4 (* ****** ****** *) macdef INFINITY = $extval (float, "INFINITY") (* ****** ****** *) // // _XOPEN_SOURCE >= 600 || ... // fun {a:t0p} isfinite (x: INV(a)):<> int fun isfinite_float (x: float):<> int = "mac#%" fun isfinite_double (x: double):<> int = "mac#%" fun isfinite_ldouble (x: ldouble):<> int = "mac#%" // fun {a:t0p} isnormal (x: INV(a)):<> int fun isnormal_float (x: float):<> int = "mac#%" fun isnormal_double (x: double):<> int = "mac#%" fun isnormal_ldouble (x: ldouble):<> int = "mac#%" // fun {a:t0p} fpclassify (x: INV(a)):<> int fun fpclassify_float (x: float):<> int = "mac#%" fun fpclassify_double (x: double):<> int = "mac#%" fun fpclassify_ldouble (x: ldouble):<> int = "mac#%" // (* ****** ****** *) // // _BSD_SOURCE || _XOPEN_SOURCE || ... // fun{ a:t0p } isnan (x: INV(a)):<> int fun isnan_float (x: float):<> int = "mac#%" fun isnan_double (x: double):<> int = "mac#%" fun isnan_ldouble (x: ldouble):<> int = "mac#%" // (* ****** ****** *) // // _BSD_SOURCE || _XOPEN_SOURCE >= 600 || ... // fun{ a:t0p } isinf (x: INV(a)):<> int fun isinf_float (x: float):<> int = "mac#%" fun isinf_double (x: double):<> int = "mac#%" fun isinf_ldouble (x: ldouble):<> int = "mac#%" // (* ****** ****** *) // fun{ a:t0p } ceil (x: INV(a)):<> a // fun ceil_float (x: float):<> float = "mac#%" fun ceil_double (x: double):<> double = "mac#%" fun ceil_ldouble (x: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun{ a:t0p } floor (x: INV(a)):<> a // fun floor_float (x: float):<> float = "mac#%" fun floor_double (x: double):<> double = "mac#%" fun floor_ldouble (x: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun{ a:t0p } round (x: INV(a)):<> a // fun round_float (x: float):<> float = "mac#%" fun round_double (x: double):<> double = "mac#%" fun round_ldouble (x: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun{a:t0p} trunc (x: INV(a)):<> a // fun trunc_float (x: float):<> float = "mac#%" fun trunc_double (x: double):<> double = "mac#%" fun trunc_ldouble (x: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) fun{ a:t0p } fmod (x1: INV(a), x2: a):<> a fun fmod_float (x1: float, x2: float):<> float = "mac#%" fun fmod_double (x1: double, x2: double):<> double = "mac#%" fun fmod_ldouble (x1: ldouble, x2: ldouble):<> ldouble = "mac#%" (* ****** ****** *) // fun{ a:t0p } fmax (x1: INV(a), x2: a):<> a fun fmax_float (x1: float, x2: float):<> float = "mac#%" fun fmax_double (x1: double, x2: double):<> double = "mac#%" fun fmax_ldouble (x1: ldouble, x2: ldouble):<> ldouble = "mac#%" // fun{ a:t0p } fmin (x1: INV(a), x2: a):<> a fun fmin_float (x1: float, x2: float):<> float = "mac#%" fun fmin_double (x1: double, x2: double):<> double = "mac#%" fun fmin_ldouble (x1: ldouble, x2: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) fun{ a:t0p } fdim (x1: INV(a), x2: a):<> a fun fdim_float (x1: float, x2: float):<> float = "mac#%" fun fdim_double (x1: double, x2: double):<> double = "mac#%" fun fdim_ldouble (x1: ldouble, x2: ldouble):<> ldouble = "mac#%" (* ****** ****** *) // // HX: fma (x, y, z) = x * y + z // fun {a:t0p} fma (x1: INV(a), x2: a, x3: a):<> a // fun fma_float (x1: float, x2: float, x3: float):<> float = "mac#%" fun fma_double (x1: double, x2: double, x3: double):<> double = "mac#%" fun fma_ldouble (x1: ldouble, x2: ldouble, x3: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun {a:t0p} sqrt (x: INV(a)):<> a // fun sqrt_float (f: float):<> float = "mac#%" fun sqrt_double (d: double):<> double = "mac#%" fun sqrt_ldouble (ld: ldouble):<> ldouble = "mac#%" // fun {a:t0p} cbrt (x: INV(a)):<> a // fun cbrt_float (f: float):<> float = "mac#%" fun cbrt_double (d: double):<> double = "mac#%" fun cbrt_ldouble (ld: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun{} intsqrt{n:nat}(n: int(n)): natLte(n) // = "mac#%" fun{} intcbrt{n:nat}(n: int(n)): natLte(n) // = "mac#%" // (* ****** ****** *) // fun {a:t0p} pow (x1: INV(a), x2: a):<> a // fun pow_float (x1: float, x2: float):<> float = "mac#%" fun pow_double (x1: double, x2: double):<> double = "mac#%" fun pow_ldouble (x1: ldouble, x2: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun {a:t0p} exp (x: INV(a)):<> a // fun exp_float (f: float):<> float = "mac#%" fun exp_double (d: double):<> double = "mac#%" fun exp_ldouble (ld: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun {a:t0p} log (x: INV(a)):<> a fun log_float (f: float):<> float = "mac#%" fun log_double (d: double):<> double = "mac#%" fun log_ldouble (ld: ldouble):<> ldouble = "mac#%" // fun {a:t0p} log10 (x: INV(a)):<> a // fun log10_float (f: float):<> float = "mac#%" fun log10_double (d: double):<> double = "mac#%" fun log10_ldouble (ld: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun {a:t0p} sin (x: INV(a)):<> a // fun sin_float (x: float):<> float = "mac#%" fun sin_double (x: double):<> double = "mac#%" fun sin_ldouble (x: ldouble):<> ldouble = "mac#%" // fun {a:t0p} cos (x: INV(a)):<> a fun cos_float (x: float):<> float = "mac#%" fun cos_double (x: double):<> double = "mac#%" fun cos_ldouble (x: ldouble):<> ldouble = "mac#%" // fun {a:t0p} tan (x: INV(a)):<> a fun tan_float (x: float):<> float = "mac#%" fun tan_double (x: double):<> double = "mac#%" fun tan_ldouble (x: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun {a:t0p} asin (x: INV(a)):<> a // fun asin_float (x: float):<> float = "mac#%" fun asin_double (x: double):<> double = "mac#%" fun asin_ldouble (x: ldouble):<> ldouble = "mac#%" // fun {a:t0p} acos (x: INV(a)):<> a fun acos_float (x: float):<> float = "mac#%" fun acos_double (x: double):<> double = "mac#%" fun acos_ldouble (x: ldouble):<> ldouble = "mac#%" // fun {a:t0p} atan (x: INV(a)):<> a fun atan_float (x: float):<> float = "mac#%" fun atan_double (x: double):<> double = "mac#%" fun atan_ldouble (x: ldouble):<> ldouble = "mac#%" // fun {a:t0p} atan2 (x1: INV(a), x2: a):<> a fun atan2_float (x1: float, x2: float):<> float = "mac#%" fun atan2_double (x1: double, x2: double):<> double = "mac#%" fun atan2_ldouble (x1: ldouble, x2: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun {a:t0p} sinh (x: INV(a)):<> a fun sinh_float (x: float):<> float = "mac#%" fun sinh_double (x: double):<> double = "mac#%" fun sinh_ldouble (x: ldouble):<> ldouble = "mac#%" // fun {a:t0p} cosh (x: INV(a)):<> a fun cosh_float (x: float):<> float = "mac#%" fun cosh_double (x: double):<> double = "mac#%" fun cosh_ldouble (x: ldouble):<> ldouble = "mac#%" // fun {a:t0p} tanh (x: INV(a)):<> a fun tanh_float (x: float):<> float = "mac#%" fun tanh_double (x: double):<> double = "mac#%" fun tanh_ldouble (x: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) // fun {a:t0p} asinh (x: INV(a)):<> a fun asinh_float (x: float):<> float = "mac#%" fun asinh_double (x: double):<> double = "mac#%" fun asinh_ldouble (x: ldouble):<> ldouble = "mac#%" // fun {a:t0p} acosh (x: INV(a)):<> a fun acosh_float (x: float):<> float = "mac#%" fun acosh_double (x: double):<> double = "mac#%" fun acosh_ldouble (x: ldouble):<> ldouble = "mac#%" // fun {a:t0p} atanh (x: INV(a)):<> a fun atanh_float (x: float):<> float = "mac#%" fun atanh_double (x: double):<> double = "mac#%" fun atanh_ldouble (x: ldouble):<> ldouble = "mac#%" // (* ****** ****** *) (* end of [math.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/alloca.sats0000644000175000017500000000510413431250607021752 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: February, 2014 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/alloca.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) fun alloca {dummy:addr}{n:int} ( pf: void@dummy | n: size_t(n) ) : [l:addr] ( bytes(n) @ l, bytes(n) @ l -> void@dummy | ptr(l) ) = "mac#%" // end of [alloca] (* ****** ****** *) (* fun{ a:vt0p } ptr_alloca {dummy:addr} ( pf: void@dummy | (*void*) ) : [l:addr] (a? @ l, a? @ l -> void@dummy | ptr(l)) *) fun ptr_alloca_tsz {a:vt0p}{dummy:addr} (pf: void@dummy | tsz: sizeof_t(a)) : [l:addr] (a? @ l, a? @ l -> void@dummy | ptr(l)) = "mac#%" (* ****** ****** *) (* fun{ a:vt0p } array_ptr_alloca {dummy:addr}{n:int} ( pf: void@dummy | asz: size_t(n) ) : [l:addr] (array(a?,n)@l, array(a?,n)@l -> void@dummy | ptr(l)) *) fun array_ptr_alloca_tsz {a:vt0p}{dummy:addr}{n:int} ( pf: void@dummy | asz: size_t(n), tsz: sizeof_t(a) ) : [l:addr] (array(a?,n)@l, array(a?,n)@l -> void@dummy | ptr(l)) = "mac#%" (* ****** ****** *) (* end of [alloca.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/unistd_sysconf.sats0000644000175000017500000004047513431250607023603 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2012 *) (* ****** ****** *) typedef sysconfname = int (* ****** ****** *) // // HX: error reporting: // -1 is returned and errno is set // fun sysconf (name: sysconfname): lint = "mac#%" // (* ****** ****** *) macdef _SC_ARG_MAX = $extval (sysconfname, "_SC_ARG_MAX") macdef _SC_CHILD_MAX = $extval (sysconfname, "_SC_CHILD_MAX") macdef _SC_CLK_TCK = $extval (sysconfname, "_SC_CLK_TCK") macdef _SC_NGROUPS_MAX = $extval (sysconfname, "_SC_NGROUPS_MAX") macdef _SC_OPEN_MAX = $extval (sysconfname, "_SC_OPEN_MAX") macdef _SC_STREAM_MAX = $extval (sysconfname, "_SC_STREAM_MAX") macdef _SC_TZNAME_MAX = $extval (sysconfname, "_SC_TZNAME_MAX") macdef _SC_JOB_CONTROL = $extval (sysconfname, "_SC_JOB_CONTROL") macdef _SC_SAVED_IDS = $extval (sysconfname, "_SC_SAVED_IDS") macdef _SC_REALTIME_SIGNALS = $extval (sysconfname, "_SC_REALTIME_SIGNALS") macdef _SC_PRIORITY_SCHEDULING = $extval (sysconfname, "_SC_PRIORITY_SCHEDULING") macdef _SC_TIMERS = $extval (sysconfname, "_SC_TIMERS") macdef _SC_ASYNCHRONOUS_IO = $extval (sysconfname, "_SC_ASYNCHRONOUS_IO") macdef _SC_PRIORITIZED_IO = $extval (sysconfname, "_SC_PRIORITIZED_IO") macdef _SC_SYNCHRONIZED_IO = $extval (sysconfname, "_SC_SYNCHRONIZED_IO") macdef _SC_FSYNC = $extval (sysconfname, "_SC_FSYNC") macdef _SC_MAPPED_FILES = $extval (sysconfname, "_SC_MAPPED_FILES") macdef _SC_MEMLOCK = $extval (sysconfname, "_SC_MEMLOCK") macdef _SC_MEMLOCK_RANGE = $extval (sysconfname, "_SC_MEMLOCK_RANGE") macdef _SC_MEMORY_PROTECTION = $extval (sysconfname, "_SC_MEMORY_PROTECTION") macdef _SC_MESSAGE_PASSING = $extval (sysconfname, "_SC_MESSAGE_PASSING") macdef _SC_SEMAPHORES = $extval (sysconfname, "_SC_SEMAPHORES") macdef _SC_SHARED_MEMORY_OBJECTS = $extval (sysconfname, "_SC_SHARED_MEMORY_OBJECTS") macdef _SC_AIO_LISTIO_MAX = $extval (sysconfname, "_SC_AIO_LISTIO_MAX") macdef _SC_AIO_MAX = $extval (sysconfname, "_SC_AIO_MAX") macdef _SC_AIO_PRIO_DELTA_MAX = $extval (sysconfname, "_SC_AIO_PRIO_DELTA_MAX") macdef _SC_DELAYTIMER_MAX = $extval (sysconfname, "_SC_DELAYTIMER_MAX") macdef _SC_MQ_OPEN_MAX = $extval (sysconfname, "_SC_MQ_OPEN_MAX") macdef _SC_MQ_PRIO_MAX = $extval (sysconfname, "_SC_MQ_PRIO_MAX") macdef _SC_VERSION = $extval (sysconfname, "_SC_VERSION") macdef _SC_PAGESIZE = $extval (sysconfname, "_SC_PAGESIZE") macdef _SC_PAGE_SIZE = $extval (sysconfname, "_SC_PAGE_SIZE") macdef _SC_RTSIG_MAX = $extval (sysconfname, "_SC_RTSIG_MAX") macdef _SC_SEM_NSEMS_MAX = $extval (sysconfname, "_SC_SEM_NSEMS_MAX") macdef _SC_SEM_VALUE_MAX = $extval (sysconfname, "_SC_SEM_VALUE_MAX") macdef _SC_SIGQUEUE_MAX = $extval (sysconfname, "_SC_SIGQUEUE_MAX") macdef _SC_TIMER_MAX = $extval (sysconfname, "_SC_TIMER_MAX") // macdef _SC_BC_BASE_MAX = $extval (sysconfname, "_SC_BC_BASE_MAX") macdef _SC_BC_DIM_MAX = $extval (sysconfname, "_SC_BC_DIM_MAX") macdef _SC_BC_SCALE_MAX = $extval (sysconfname, "_SC_BC_SCALE_MAX") macdef _SC_BC_STRING_MAX = $extval (sysconfname, "_SC_BC_STRING_MAX") macdef _SC_COLL_WEIGHTS_MAX = $extval (sysconfname, "_SC_COLL_WEIGHTS_MAX") macdef _SC_EQUIV_CLASS_MAX = $extval (sysconfname, "_SC_EQUIV_CLASS_MAX") macdef _SC_EXPR_NEST_MAX = $extval (sysconfname, "_SC_EXPR_NEST_MAX") macdef _SC_LINE_MAX = $extval (sysconfname, "_SC_LINE_MAX") macdef _SC_RE_DUP_MAX = $extval (sysconfname, "_SC_RE_DUP_MAX") macdef _SC_CHARCLASS_NAME_MAX = $extval (sysconfname, "_SC_CHARCLASS_NAME_MAX") // macdef _SC_2_VERSION = $extval (sysconfname, "_SC_2_VERSION") macdef _SC_2_C_BIND = $extval (sysconfname, "_SC_2_C_BIND") macdef _SC_2_C_DEV = $extval (sysconfname, "_SC_2_C_DEV") macdef _SC_2_FORT_DEV = $extval (sysconfname, "_SC_2_FORT_DEV") macdef _SC_2_FORT_RUN = $extval (sysconfname, "_SC_2_FORT_RUN") macdef _SC_2_SW_DEV = $extval (sysconfname, "_SC_2_SW_DEV") macdef _SC_2_LOCALEDEF = $extval (sysconfname, "_SC_2_LOCALEDEF") // macdef _SC_PII = $extval (sysconfname, "_SC_PII") macdef _SC_PII_XTI = $extval (sysconfname, "_SC_PII_XTI") macdef _SC_PII_SOCKET = $extval (sysconfname, "_SC_PII_SOCKET") macdef _SC_PII_INTERNET = $extval (sysconfname, "_SC_PII_INTERNET") macdef _SC_PII_OSI = $extval (sysconfname, "_SC_PII_OSI") macdef _SC_POLL = $extval (sysconfname, "_SC_POLL") macdef _SC_SELECT = $extval (sysconfname, "_SC_SELECT") macdef _SC_UIO_MAXIOV = $extval (sysconfname, "_SC_UIO_MAXIOV") macdef _SC_IOV_MAX = _SC_UIO_MAXIOV = $extval (sysconfname, "_SC_IOV_MAX = _SC_UIO_MAXIOV") macdef _SC_PII_INTERNET_STREAM = $extval (sysconfname, "_SC_PII_INTERNET_STREAM") macdef _SC_PII_INTERNET_DGRAM = $extval (sysconfname, "_SC_PII_INTERNET_DGRAM") macdef _SC_PII_OSI_COTS = $extval (sysconfname, "_SC_PII_OSI_COTS") macdef _SC_PII_OSI_CLTS = $extval (sysconfname, "_SC_PII_OSI_CLTS") macdef _SC_PII_OSI_M = $extval (sysconfname, "_SC_PII_OSI_M") macdef _SC_T_IOV_MAX = $extval (sysconfname, "_SC_T_IOV_MAX") // macdef _SC_THREADS = $extval (sysconfname, "_SC_THREADS") macdef _SC_THREAD_SAFE_FUNCTIONS = $extval (sysconfname, "_SC_THREAD_SAFE_FUNCTIONS") macdef _SC_GETGR_R_SIZE_MAX = $extval (sysconfname, "_SC_GETGR_R_SIZE_MAX") macdef _SC_GETPW_R_SIZE_MAX = $extval (sysconfname, "_SC_GETPW_R_SIZE_MAX") macdef _SC_LOGIN_NAME_MAX = $extval (sysconfname, "_SC_LOGIN_NAME_MAX") macdef _SC_TTY_NAME_MAX = $extval (sysconfname, "_SC_TTY_NAME_MAX") macdef _SC_THREAD_DESTRUCTOR_ITERATIONS = $extval (sysconfname, "_SC_THREAD_DESTRUCTOR_ITERATIONS") macdef _SC_THREAD_KEYS_MAX = $extval (sysconfname, "_SC_THREAD_KEYS_MAX") macdef _SC_THREAD_STACK_MIN = $extval (sysconfname, "_SC_THREAD_STACK_MIN") macdef _SC_THREAD_THREADS_MAX = $extval (sysconfname, "_SC_THREAD_THREADS_MAX") macdef _SC_THREAD_ATTR_STACKADDR = $extval (sysconfname, "_SC_THREAD_ATTR_STACKADDR") macdef _SC_THREAD_ATTR_STACKSIZE = $extval (sysconfname, "_SC_THREAD_ATTR_STACKSIZE") macdef _SC_THREAD_PRIORITY_SCHEDULING = $extval (sysconfname, "_SC_THREAD_PRIORITY_SCHEDULING") macdef _SC_THREAD_PRIO_INHERIT = $extval (sysconfname, "_SC_THREAD_PRIO_INHERIT") macdef _SC_THREAD_PRIO_PROTECT = $extval (sysconfname, "_SC_THREAD_PRIO_PROTECT") macdef _SC_THREAD_PROCESS_SHARED = $extval (sysconfname, "_SC_THREAD_PROCESS_SHARED") // macdef _SC_NPROCESSORS_CONF = $extval (sysconfname, "_SC_NPROCESSORS_CONF") macdef _SC_NPROCESSORS_ONLN = $extval (sysconfname, "_SC_NPROCESSORS_ONLN") macdef _SC_PHYS_PAGES = $extval (sysconfname, "_SC_PHYS_PAGES") macdef _SC_AVPHYS_PAGES = $extval (sysconfname, "_SC_AVPHYS_PAGES") macdef _SC_ATEXIT_MAX = $extval (sysconfname, "_SC_ATEXIT_MAX") macdef _SC_PASS_MAX = $extval (sysconfname, "_SC_PASS_MAX") // macdef _SC_XOPEN_VERSION = $extval (sysconfname, "_SC_XOPEN_VERSION") macdef _SC_XOPEN_XCU_VERSION = $extval (sysconfname, "_SC_XOPEN_XCU_VERSION") macdef _SC_XOPEN_UNIX = $extval (sysconfname, "_SC_XOPEN_UNIX") macdef _SC_XOPEN_CRYPT = $extval (sysconfname, "_SC_XOPEN_CRYPT") macdef _SC_XOPEN_ENH_I18N = $extval (sysconfname, "_SC_XOPEN_ENH_I18N") macdef _SC_XOPEN_SHM = $extval (sysconfname, "_SC_XOPEN_SHM") // macdef _SC_2_CHAR_TERM = $extval (sysconfname, "_SC_2_CHAR_TERM") macdef _SC_2_C_VERSION = $extval (sysconfname, "_SC_2_C_VERSION") macdef _SC_2_UPE = $extval (sysconfname, "_SC_2_UPE") // macdef _SC_XOPEN_XPG2 = $extval (sysconfname, "_SC_XOPEN_XPG2") macdef _SC_XOPEN_XPG3 = $extval (sysconfname, "_SC_XOPEN_XPG3") macdef _SC_XOPEN_XPG4 = $extval (sysconfname, "_SC_XOPEN_XPG4") // macdef _SC_CHAR_BIT = $extval (sysconfname, "_SC_CHAR_BIT") macdef _SC_CHAR_MAX = $extval (sysconfname, "_SC_CHAR_MAX") macdef _SC_CHAR_MIN = $extval (sysconfname, "_SC_CHAR_MIN") macdef _SC_INT_MAX = $extval (sysconfname, "_SC_INT_MAX") macdef _SC_INT_MIN = $extval (sysconfname, "_SC_INT_MIN") macdef _SC_LONG_BIT = $extval (sysconfname, "_SC_LONG_BIT") macdef _SC_WORD_BIT = $extval (sysconfname, "_SC_WORD_BIT") macdef _SC_MB_LEN_MAX = $extval (sysconfname, "_SC_MB_LEN_MAX") macdef _SC_NZERO = $extval (sysconfname, "_SC_NZERO") macdef _SC_SSIZE_MAX = $extval (sysconfname, "_SC_SSIZE_MAX") macdef _SC_SCHAR_MAX = $extval (sysconfname, "_SC_SCHAR_MAX") macdef _SC_SCHAR_MIN = $extval (sysconfname, "_SC_SCHAR_MIN") macdef _SC_SHRT_MAX = $extval (sysconfname, "_SC_SHRT_MAX") macdef _SC_SHRT_MIN = $extval (sysconfname, "_SC_SHRT_MIN") macdef _SC_UCHAR_MAX = $extval (sysconfname, "_SC_UCHAR_MAX") macdef _SC_UINT_MAX = $extval (sysconfname, "_SC_UINT_MAX") macdef _SC_ULONG_MAX = $extval (sysconfname, "_SC_ULONG_MAX") macdef _SC_USHRT_MAX = $extval (sysconfname, "_SC_USHRT_MAX") // macdef _SC_NL_ARGMAX = $extval (sysconfname, "_SC_NL_ARGMAX") macdef _SC_NL_LANGMAX = $extval (sysconfname, "_SC_NL_LANGMAX") macdef _SC_NL_MSGMAX = $extval (sysconfname, "_SC_NL_MSGMAX") macdef _SC_NL_NMAX = $extval (sysconfname, "_SC_NL_NMAX") macdef _SC_NL_SETMAX = $extval (sysconfname, "_SC_NL_SETMAX") macdef _SC_NL_TEXTMAX = $extval (sysconfname, "_SC_NL_TEXTMAX") // macdef _SC_XBS5_ILP32_OFF32 = $extval (sysconfname, "_SC_XBS5_ILP32_OFF32") macdef _SC_XBS5_ILP32_OFFBIG = $extval (sysconfname, "_SC_XBS5_ILP32_OFFBIG") macdef _SC_XBS5_LP64_OFF64 = $extval (sysconfname, "_SC_XBS5_LP64_OFF64") macdef _SC_XBS5_LPBIG_OFFBIG = $extval (sysconfname, "_SC_XBS5_LPBIG_OFFBIG") // macdef _SC_XOPEN_LEGACY = $extval (sysconfname, "_SC_XOPEN_LEGACY") macdef _SC_XOPEN_REALTIME = $extval (sysconfname, "_SC_XOPEN_REALTIME") macdef _SC_XOPEN_REALTIME_THREADS = $extval (sysconfname, "_SC_XOPEN_REALTIME_THREADS") // macdef _SC_ADVISORY_INFO = $extval (sysconfname, "_SC_ADVISORY_INFO") macdef _SC_BARRIERS = $extval (sysconfname, "_SC_BARRIERS") macdef _SC_BASE = $extval (sysconfname, "_SC_BASE") macdef _SC_C_LANG_SUPPORT = $extval (sysconfname, "_SC_C_LANG_SUPPORT") macdef _SC_C_LANG_SUPPORT_R = $extval (sysconfname, "_SC_C_LANG_SUPPORT_R") macdef _SC_CLOCK_SELECTION = $extval (sysconfname, "_SC_CLOCK_SELECTION") macdef _SC_CPUTIME = $extval (sysconfname, "_SC_CPUTIME") macdef _SC_THREAD_CPUTIME = $extval (sysconfname, "_SC_THREAD_CPUTIME") macdef _SC_DEVICE_IO = $extval (sysconfname, "_SC_DEVICE_IO") macdef _SC_DEVICE_SPECIFIC = $extval (sysconfname, "_SC_DEVICE_SPECIFIC") macdef _SC_DEVICE_SPECIFIC_R = $extval (sysconfname, "_SC_DEVICE_SPECIFIC_R") macdef _SC_FD_MGMT = $extval (sysconfname, "_SC_FD_MGMT") macdef _SC_FIFO = $extval (sysconfname, "_SC_FIFO") macdef _SC_PIPE = $extval (sysconfname, "_SC_PIPE") macdef _SC_FILE_ATTRIBUTES = $extval (sysconfname, "_SC_FILE_ATTRIBUTES") macdef _SC_FILE_LOCKING = $extval (sysconfname, "_SC_FILE_LOCKING") macdef _SC_FILE_SYSTEM = $extval (sysconfname, "_SC_FILE_SYSTEM") macdef _SC_MONOTONIC_CLOCK = $extval (sysconfname, "_SC_MONOTONIC_CLOCK") macdef _SC_MULTI_PROCESS = $extval (sysconfname, "_SC_MULTI_PROCESS") macdef _SC_SINGLE_PROCESS = $extval (sysconfname, "_SC_SINGLE_PROCESS") macdef _SC_NETWORKING = $extval (sysconfname, "_SC_NETWORKING") macdef _SC_READER_WRITER_LOCKS = $extval (sysconfname, "_SC_READER_WRITER_LOCKS") macdef _SC_SPIN_LOCKS = $extval (sysconfname, "_SC_SPIN_LOCKS") macdef _SC_REGEXP = $extval (sysconfname, "_SC_REGEXP") macdef _SC_REGEX_VERSION = $extval (sysconfname, "_SC_REGEX_VERSION") macdef _SC_SHELL = $extval (sysconfname, "_SC_SHELL") macdef _SC_SIGNALS = $extval (sysconfname, "_SC_SIGNALS") macdef _SC_SPAWN = $extval (sysconfname, "_SC_SPAWN") macdef _SC_SPORADIC_SERVER = $extval (sysconfname, "_SC_SPORADIC_SERVER") macdef _SC_THREAD_SPORADIC_SERVER = $extval (sysconfname, "_SC_THREAD_SPORADIC_SERVER") macdef _SC_SYSTEM_DATABASE = $extval (sysconfname, "_SC_SYSTEM_DATABASE") macdef _SC_SYSTEM_DATABASE_R = $extval (sysconfname, "_SC_SYSTEM_DATABASE_R") macdef _SC_TIMEOUTS = $extval (sysconfname, "_SC_TIMEOUTS") macdef _SC_TYPED_MEMORY_OBJECTS = $extval (sysconfname, "_SC_TYPED_MEMORY_OBJECTS") macdef _SC_USER_GROUPS = $extval (sysconfname, "_SC_USER_GROUPS") macdef _SC_USER_GROUPS_R = $extval (sysconfname, "_SC_USER_GROUPS_R") macdef _SC_2_PBS = $extval (sysconfname, "_SC_2_PBS") macdef _SC_2_PBS_ACCOUNTING = $extval (sysconfname, "_SC_2_PBS_ACCOUNTING") macdef _SC_2_PBS_LOCATE = $extval (sysconfname, "_SC_2_PBS_LOCATE") macdef _SC_2_PBS_MESSAGE = $extval (sysconfname, "_SC_2_PBS_MESSAGE") macdef _SC_2_PBS_TRACK = $extval (sysconfname, "_SC_2_PBS_TRACK") macdef _SC_SYMLOOP_MAX = $extval (sysconfname, "_SC_SYMLOOP_MAX") macdef _SC_STREAMS = $extval (sysconfname, "_SC_STREAMS") macdef _SC_2_PBS_CHECKPOINT = $extval (sysconfname, "_SC_2_PBS_CHECKPOINT") // macdef _SC_V6_ILP32_OFF32 = $extval (sysconfname, "_SC_V6_ILP32_OFF32") macdef _SC_V6_ILP32_OFFBIG = $extval (sysconfname, "_SC_V6_ILP32_OFFBIG") macdef _SC_V6_LP64_OFF64 = $extval (sysconfname, "_SC_V6_LP64_OFF64") macdef _SC_V6_LPBIG_OFFBIG = $extval (sysconfname, "_SC_V6_LPBIG_OFFBIG") // macdef _SC_HOST_NAME_MAX = $extval (sysconfname, "_SC_HOST_NAME_MAX") macdef _SC_TRACE = $extval (sysconfname, "_SC_TRACE") macdef _SC_TRACE_EVENT_FILTER = $extval (sysconfname, "_SC_TRACE_EVENT_FILTER") macdef _SC_TRACE_INHERIT = $extval (sysconfname, "_SC_TRACE_INHERIT") macdef _SC_TRACE_LOG = $extval (sysconfname, "_SC_TRACE_LOG") // macdef _SC_LEVEL1_ICACHE_SIZE = $extval (sysconfname, "_SC_LEVEL1_ICACHE_SIZE") macdef _SC_LEVEL1_ICACHE_ASSOC = $extval (sysconfname, "_SC_LEVEL1_ICACHE_ASSOC") macdef _SC_LEVEL1_ICACHE_LINESIZE = $extval (sysconfname, "_SC_LEVEL1_ICACHE_LINESIZE") macdef _SC_LEVEL1_DCACHE_SIZE = $extval (sysconfname, "_SC_LEVEL1_DCACHE_SIZE") macdef _SC_LEVEL1_DCACHE_ASSOC = $extval (sysconfname, "_SC_LEVEL1_DCACHE_ASSOC") macdef _SC_LEVEL1_DCACHE_LINESIZE = $extval (sysconfname, "_SC_LEVEL1_DCACHE_LINESIZE") macdef _SC_LEVEL2_CACHE_SIZE = $extval (sysconfname, "_SC_LEVEL2_CACHE_SIZE") macdef _SC_LEVEL2_CACHE_ASSOC = $extval (sysconfname, "_SC_LEVEL2_CACHE_ASSOC") macdef _SC_LEVEL2_CACHE_LINESIZE = $extval (sysconfname, "_SC_LEVEL2_CACHE_LINESIZE") macdef _SC_LEVEL3_CACHE_SIZE = $extval (sysconfname, "_SC_LEVEL3_CACHE_SIZE") macdef _SC_LEVEL3_CACHE_ASSOC = $extval (sysconfname, "_SC_LEVEL3_CACHE_ASSOC") macdef _SC_LEVEL3_CACHE_LINESIZE = $extval (sysconfname, "_SC_LEVEL3_CACHE_LINESIZE") macdef _SC_LEVEL4_CACHE_SIZE = $extval (sysconfname, "_SC_LEVEL4_CACHE_SIZE") macdef _SC_LEVEL4_CACHE_ASSOC = $extval (sysconfname, "_SC_LEVEL4_CACHE_ASSOC") macdef _SC_LEVEL4_CACHE_LINESIZE = $extval (sysconfname, "_SC_LEVEL4_CACHE_LINESIZE") // macdef _SC_IPV6 = $extval (sysconfname, "_SC_IPV6") macdef _SC_RAW_SOCKETS = $extval (sysconfname, "_SC_RAW_SOCKETS") // macdef _SC_V7_ILP32_OFF32 = $extval (sysconfname, "_SC_V7_ILP32_OFF32") macdef _SC_V7_ILP32_OFFBIG = $extval (sysconfname, "_SC_V7_ILP32_OFFBIG") macdef _SC_V7_LP64_OFF64 = $extval (sysconfname, "_SC_V7_LP64_OFF64") macdef _SC_V7_LPBIG_OFFBIG = $extval (sysconfname, "_SC_V7_LPBIG_OFFBIG") // macdef _SC_SS_REPL_MAX = $extval (sysconfname, "_SC_SS_REPL_MAX") // macdef _SC_TRACE_EVENT_NAME_MAX = $extval (sysconfname, "_SC_TRACE_EVENT_NAME_MAX") macdef _SC_TRACE_NAME_MAX = $extval (sysconfname, "_SC_TRACE_NAME_MAX") macdef _SC_TRACE_SYS_MAX = $extval (sysconfname, "_SC_TRACE_SYS_MAX") macdef _SC_TRACE_USER_EVENT_MAX = $extval (sysconfname, "_SC_TRACE_USER_EVENT_MAX") // macdef _SC_XOPEN_STREAMS = $extval (sysconfname, "_SC_XOPEN_STREAMS") // macdef _SC_THREAD_ROBUST_PRIO_INHERIT = $extval (sysconfname, "_SC_THREAD_ROBUST_PRIO_INHERIT") macdef _SC_THREAD_ROBUST_PRIO_PROTEC = $extval (sysconfname, "_SC_THREAD_ROBUST_PRIO_PROTEC") (* ****** ****** *) (* end of [unistd_sysconf.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/float.sats0000644000175000017500000000337113431250607021630 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: October, 2014 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/float.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) macdef FLT_EPSILON = $extval (float, "FLT_EPSILON") macdef DBL_EPSILON = $extval (double, "DBL_EPSILON") (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/stdlib.sats0000644000175000017500000002653213431250607022010 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: June, 2012 // (* ****** ****** *) %{# // #include \ "libats/libc/CATS/stdlib.cats" // %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) vtypedef RD(a:vt0p) = a // for commenting: read-only #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) // staload STDDEF = "libats/libc/SATS/stddef.sats" // typedef wchar_t = $STDDEF.wchar_t // (* ****** ****** *) macdef EXIT_FAILURE = $extval(int, "EXIT_FAILURE") macdef EXIT_SUCCESS = $extval(int, "EXIT_SUCCESS") (* ****** ****** *) abst@ype div_t = $extype"div_t" abst@ype ldiv_t = $extype"ldiv_t" abst@ype lldiv_t = $extype"lldiv_t" (* ****** ****** *) /* void _Exit(int); */ fun _Exit (int): void = "mac#%" /* int atexit(void (*)(void)); */ fun atexit (f: ((*void*)) -> void): int(*err*) = "mac#%" // end of [atexit] (* ****** ****** *) /* void abort(void); */ fun abort((*void*)): void = "mac#%" (* ****** ****** *) /* int abs(int) */ fun abs(int):<> int = "mac#%" /* long int labs(long int j); */ fun labs(lint):<> lint = "mac#%" /* long long int llabs(long long int j); */ fun llabs(lint):<> llint = "mac#%" (* ****** ****** *) /* div_t div(int, int); */ fun div(int, int):<> div_t /* ldiv_t ldiv(long, long); */ fun ldiv(lint, lint):<> ldiv_t /* lldiv_t lldiv(long long, long long); */ fun lldiv(llint, llint):<> lldiv_t (* ****** ****** *) /* long a64l(const char *); */ fun a64l(x: NSH(string)):<> lint = "mac#%" /* char *l64a(long value); // not defined for a negative value */ fun l64a {i:nat} ( x: lint i ) : [l:agz] vttakeout0(strptr(l)) = "mac#%" // end of [l64a] (* ****** ****** *) /* int atoi(const char *); */ fun atoi(x: NSH(string)):<> int = "mac#%" /* long atol(const char *); */ fun atol(x: NSH(string)):<> lint = "mac#%" /* long long atoll(const char *); */ fun atoll(x: NSH(string)):<> llint = "mac#%" (* ****** ****** *) /* double atof(const char *); */ fun atof(x: NSH(string)):<> double = "mac#%" (* ****** ****** *) // /* long int strtol(const char *nptr, char **endptr, int base); */ fun strtol0 (nptr: string, base: intBtwe(2, 36)): lint = "mac#%" fun strtol1 (nptr: string, endptr: &ptr? >> _, base: intBtwe(2, 36)): lint = "mac#%" fun strtol_unsafe (nptr: string, endptr: ptr, base: int): lint = "mac#%" // end of [strtol_unsafe] // symintr strtol overload strtol with strtol0 overload strtol with strtol1 // /* long long int strtoll(const char *nptr, char **endptr, int base); */ fun strtoll0 (nptr: string, base: intBtwe(2, 36)): llint fun strtoll1 (nptr: string, endptr: &ptr? >> _, base: intBtwe(2, 36)): llint fun strtoll_unsafe (nptr: string, endptr: ptr, base: int): llint // end of [strtoll_unsafe] // symintr strtoll overload strtoll with strtoll0 overload strtoll with strtoll1 // (* ****** ****** *) // /* unsigned long strtoul(const char *nptr, char **endptr, int base); */ fun strtoul0 (nptr: string, base: intBtwe(2, 36)): ulint fun strtoul1 (nptr: string, endptr: &ptr? >> _, base: intBtwe(2, 36)): ulint fun strtoul_unsafe (nptr: string, endptr: ptr, base: int): ulint // end of [strtoul_unsafe] // symintr strtoul overload strtoul with strtoul0 overload strtoul with strtoul1 // /* unsigned long long strtoull(const char *nptr, char **endptr, int base); */ fun strtoull0 (nptr: string, base: intBtwe(2, 36)): ullint fun strtoull1 (nptr: string, endptr: &ptr? >> _, base: intBtwe(2, 36)): ullint fun strtoull_unsafe (nptr: string, endptr: ptr, base: int): ullint // end of [strtoull_unsafe] // symintr strtoull overload strtoull with strtoull0 overload strtoull with strtoull1 // (* ****** ****** *) /* float strtof(const char *nptr, char **endptr); */ fun strtof0 (nptr: string): float = "mac#%" fun strtof1 (nptr: string, endptr: &ptr? >> _): float = "mac#%" fun strtof_unsafe (nptr: string, endptr: ptr): float = "mac#%" // end of [strtof_unsafe] // symintr strtof overload strtof with strtof0 overload strtof with strtof1 // (* ****** ****** *) /* double strtod(const char *nptr, char **endptr); */ fun strtod0 (nptr: string): double = "mac#%" fun strtod1 (nptr: string, endptr: &ptr? >> _): double = "mac#%" fun strtod_unsafe (nptr: string, endptr: ptr): double = "mac#%" // end of [strtod_unsafe] // symintr strtod overload strtod with strtod0 overload strtod with strtod1 // (* ****** ****** *) /* long double strtold(const char *nptr, char **endptr); */ fun strtold0 (nptr: string): ldouble = "mac#%" fun strtold1 (nptr: string, endptr: &ptr? >> _): ldouble = "mac#%" fun strtold_unsafe (nptr: string, endptr: ptr): ldouble = "mac#%" // end of [strtold_unsafe] // symintr strtold overload strtold with strtold0 overload strtold with strtold1 // (* ****** ****** *) (* // // HX: these env-functions may not be reentrant! // *) (* ****** ****** *) /* char *getenv(char *); */ fun getenv ( name: NSH(string) ) : [l:addr] vttakeout0(strptr(l)) = "mac#%" fun{} getenv_gc(name: NSH(string)): Strptr0 (* ****** ****** *) /* int putenv(char *); */ // // HX: [nameval] is shared! // fun putenv (nameval: SHR(string)): int = "mac#%" // end of [putenv] (* ****** ****** *) /* int setenv ( const char *name, const char *value, int overwrite ) ; */ fun setenv ( name: NSH(string), value: NSH(string), overwrite: int ) : int = "mac#%" /* int unsetenv(const char *name); */ fun unsetenv (name: NSH(string)): int = "mac#%" // end of [unsetenv] (* ****** ****** *) /* int clearenv(void); */ fun clearenv ((*void*)): int = "mac#%" (* ****** ****** *) // // HX: // these funs seem to have become obsolete // fun rand ((*void*)): int = "mac#%" fun srand (seed: uint): void = "mac#%" fun rand_r (seed: &uint >> _):<> int = "mac#%" (* ****** ****** *) // /* long int random(void); */ fun random((*void*)): lint = "mac#%" // /* void srandom(unsigned int seed); */ fun srandom(seed: uint): void = "mac#%" // /* char *initstate ( unsigned int seed, char *state, size_t n ) ; */ fun initstate_unsafe ( seed: uint, state: cPtr1(char), n: sizeGte(8) ) : cPtr0(char) = "mac#%" // end of [initstate_unsafe] // /* char *setstate(char *state); */ fun setstate_unsafe (state: cPtr1(char)): cPtr0(char) = "mac#%" // end of [setstate_unsafe] // (* ****** ****** *) /* double drand48(void); // obsolete */ fun drand48 ((*void*)): double = "mac#%" /* double erand48(unsigned short xsubi[3]); // obsolete */ fun erand48 (xsubi: &(@[usint][3])): double = "mac#%" // end of [erand48] /* long int lrand48(void); // obsolete */ fun lrand48 ((*void*)): lint = "mac#%" /* long int nrand48(unsigned short xsubi[3]); // obsolete */ fun nrand48 (xsubi: &(@[usint][3])): lint = "mac#%" // end of [nrand48] /* long int mrand48(void); // obsolete */ fun mrand48 ((*void*)): lint = "mac#%" /* long int jrand48(unsigned short xsubi[3]); // obsolete */ fun jrand48 (xsubi: &(@[usint][3])): lint = "mac#%" // end of [jrand48] /* void srand48(long int seedval); // obsolete */ fun srand48 (seedval: lint): void = "mac#%" /* unsigned short *seed48(unsigned short seed16v[3]); // obsolete */ // HX: returning pointer to some internal buffer fun seed48 (seed16v: &(@[usint][3])): Ptr1 = "mac#%" /* void lcong48(unsigned short param[7]); // obsolete */ fun lcong48 (param: &(@[usint][7])): void = "mac#%" (* ****** ****** *) /* void *bsearch ( const void *key , const void *base , size_t nmemb, size_t size , int (*compar)(const void *, const void *) ) ; // end of [bsearch] */ fun bsearch {a:vt0p}{n:int} ( key: &RD(a) , arr: &RD(@[INV(a)][n]) , asz: size_t (n), tsz: sizeof_t (a) , cmp: cmpref (a) ) :<> Ptr0 = "mac#%" // end of [bsearch] (* ****** ****** *) /* void qsort ( void *base, size_t nmemb, size_t size , int(*compar)(const void *, const void *) ) ; // end of [qsort] */ fun qsort {a:vt0p}{n:int} ( A: &(@[INV(a)][n]), asz: size_t (n), tsz: sizeof_t (a), cmp: cmpref (a) ) : void = "mac#%" // end of [qsort] (* ****** ****** *) /* int mblen(const char *s, size_t); */ fun mblen_unsafe (s: cPtr0(char), n: size_t): int = "mac#%" // end of [mblen_unsafe] /* int wctomb(char *s, wchar_t wc); */ fun wctomb_unsafe (s: cPtr0(char), wc: wchar_t): int = "mac#%" // end of [wctomb_unsafe] /* size_t wcstombs(char *dest, const wchar_t *src, size_t); */ fun wcstombs_unsafe ( dest: cPtr0(char), src: cPtr1(wchar_t), n: size_t ) : ssize_t = "mac#%" // endfun (* ****** ****** *) /* void setkey(const char *key); */ fun setkey_unsafe (key: cPtr1(char)): void = "mac#%" (* ****** ****** *) /* int mkstemp(char *template); */ fun mkstemp {n:int | n >= 6} (template: !strnptr(n)): int = "mac#%" // end of [mkstemp] // endfun // /* int mkostemp(char *template, int flags); */ fun mkostemp {n:int | n >= 6} (template: !strnptr(n), flags: int): int = "mac#%" // end of [mkostemp] // endfun // (* ****** ****** *) /* int grantpt(int fd); */ fun grantpt (fd: int): int = "mac#%" // (* ****** ****** *) dataview malloc_libc_v (addr, int) = | {n:int} malloc_libc_v_fail (null, n) // malloc_libc_v_fail | {l:agz}{n:int} malloc_libc_v_succ (l(*addr*), n) of (b0ytes(n) @ l, mfree_libc_v(l)) // malloc_libc_v_succ // end of [malloc_libc_v] (* ****** ****** *) fun malloc_libc {n:int} ( bsz: size_t n ) : [ l:addr ] ( malloc_libc_v(l, n) | ptr(l) ) = "mac#%" // end of [malloc] fun malloc_libc_exn {n:int} ( bsz: size_t(n) ) : [ l:addr | l > null ] ( b0ytes(n)@l, mfree_libc_v(l) | ptr(l) ) = "mac#%" // end of [malloc_exn] (* ****** ****** *) fun mfree_libc {l:addr}{n:int} ( b0ytes(n)@l, mfree_libc_v(l) | ptr(l) ) : void = "mac#%" // end-of-fun (* ****** ****** *) // /* int system(const char *command); */ fun system(command: NSH(string)): int = "mac#%" // (* ****** ****** *) (* end of [stdlib.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/arpa/0000755000175000017500000000000013431250607020546 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/arpa/.keeper0000644000175000017500000000000013431250607022010 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/arpa/inet.sats0000644000175000017500000000714213431250607022405 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: November, 2014 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/arpa/inet.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) // staload IN = "libats/libc/SATS/netinet/in.sats" // typedef in_port_nbo_t = $IN.in_port_nbo_t typedef in_addr_hbo_t = $IN.in_addr_hbo_t typedef in_addr_nbo_t = $IN.in_addr_nbo_t typedef in_addr_struct = $IN.in_addr_struct // (* ****** ****** *) // abst@ype uint16_t0ype_netbyteord = uint16 typedef uint16_nbo = uint16_t0ype_netbyteord // fun htons (i: uint16): uint16_nbo = "mac#%" fun ntohs (i: uint16_nbo): uint16 = "mac#%" // (* ****** ****** *) // abst@ype uint32_t0ype_netbyteord = uint32 typedef uint32_nbo = uint32_t0ype_netbyteord // fun htonl (i: uint32): uint32_nbo = "mac#%" fun ntohl (i: uint32_nbo): uint32 = "mac#%" // (* ****** ****** *) // castfn in_port_of_uint16_nbo (x: uint16_nbo): in_port_nbo_t castfn uint16_of_in_port_nbo (x: in_port_nbo_t): uint16_nbo // (* ****** ****** *) fun inet_aton ( cp: string , inp: &in_addr_struct? >> opt(in_addr_struct, b) ) : #[b:bool] bool(b) = "mac#%" // end-of-function (* ****** ****** *) // // HX: note that this one cannot tell // -1 from 255.255.255.255 (a valid address) // fun inet_addr (cp: string): in_addr_nbo_t = "mac#%" fun inet_network (cp: string): in_addr_hbo_t = "mac#%" // (* ****** ****** *) // fun inet_makeaddr (net: int, host: int): in_addr_struct = "mac#%" // end of [inet_makeaddr] // (* ****** ****** *) // // HX: this function is not reentrant // fun inet_ntoa (inp: in_addr_struct) : vStrptr1 = "mac#%" // (* ****** ****** *) // fun inet_lnaof (addr: in_addr_struct): in_addr_hbo_t = "mac#%" // fun inet_netof (addr: in_addr_struct): in_addr_hbo_t = "mac#%" // (* ****** ****** *) fun inet4_pton ( cp: string // af=AF_INET , inp: &in_addr_struct? >> opt (in_addr_struct, i > 0) ) : #[i:int] int (i) = "mac#%" // end-of-fun fun inet6_pton ( cp: string // af= AF_INET6 , inp: &in_addr_struct? >> opt (in_addr_struct, i > 0) ) : #[i:int] int (i) = "mac#%" // end-of-fun (* ****** ****** *) (* end of [inet.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/malloc.sats0000644000175000017500000000526013431250607021771 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/malloc.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) // abst@ype mallopt_param = int // macdef M_MXFAST = $extval (mallopt_param, "M_MXFAST") macdef M_TRIM_THRESHOLD = $extval (mallopt_param, "M_TRIM_THRESHOLD") macdef M_TOP_PAD = $extval (mallopt_param, "M_TOP_PAD") macdef M_MMAP_THRESHOLD = $extval (mallopt_param, "M_MMAP_THRESHOLD") macdef M_MMAP_MAX = $extval (mallopt_param, "M_MMAP_MAX") macdef M_CHECK_ACTION = $extval (mallopt_param, "M_CHECK_ACTION") // (* ****** ****** *) fun mallopt ( param: mallopt_param, value: int(*bsz*) ) : int = "mac#%" // endfun // succ/fail: 1/0 (* ****** ****** *) fun malloc_trim (pad: size_t): int (*1/0:some/none*) = "mac#%" (* ****** ****** *) fun malloc_usable_size {l:addr} (!mfree_libc_v l | ptr l): size_t = "mac#%" // end of [malloc_usable_size] (* ****** ****** *) fun malloc_stats (): void = "mac#%" // it outputs to stderr (* ****** ****** *) (* fun malloc_get_state (): ptr = "mac#%" fun malloc_set_state (ptr: ptr): int = "mac#%" *) (* ****** ****** *) (* end of [malloc.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/fcntl.sats0000644000175000017500000000671613431250607021637 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/fcntl.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) vtypedef RD(a:vt0p) = a // for commenting: read-only #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) // staload TYPES = "libats/libc/SATS/sys/types.sats" // typedef mode_t = $TYPES.mode_t // vtypedef fildes (i:int) = $TYPES.fildes (i) // vtypedef Fildes = $TYPES.Fildes vtypedef Fildes0 = $TYPES.Fildes0 // (* ****** ****** *) // praxi fildes_neg_elim {fd:int | fd < 0}(fd: fildes(fd)): void // (* ****** ****** *) // // HX: this is just a castfn // fun fildes_get_int {fd:int} (fd: !fildes (fd)):<> int (fd) = "mac#%" // fun fildes_isgtez {fd:int} (fd: !fildes (fd)):<> bool (fd >= 0) = "mac#%" // (* ****** ****** *) // fun fildes_iget_int (fd: int):<> [fd:int] vttakeout0 (fildes (fd)) = "ext#%" // (* ****** ****** *) abst@ype fcntlflags = int // macdef O_CREAT = $extval (fcntlflags, "O_CREAT") macdef O_EXCL = $extval (fcntlflags, "O_EXCL") macdef O_TRUNC = $extval (fcntlflags, "O_TRUNC") macdef O_APPEND = $extval (fcntlflags, "O_APPEND") // macdef O_RDWR = $extval (fcntlflags, "O_RDWR") macdef O_RDONLY = $extval (fcntlflags, "O_RDONLY") macdef O_WRONLY = $extval (fcntlflags, "O_WRONLY") // macdef O_SYNC = $extval (fcntlflags, "O_SYNC") macdef O_ASYNC = $extval (fcntlflags, "O_ASYNC") // macdef O_NOCTTY = $extval (fcntlflags, "O_NOCTTY") // (* ****** ****** *) fun lor_fcntlflags_fcntlflags : (fcntlflags, fcntlflags) -<> fcntlflags = "ext#atspre_lor_int_int" overload lor with lor_fcntlflags_fcntlflags (* ****** ****** *) fun open_flags ( path: NSH(string), flags: fcntlflags ) : Fildes = "mac#%" // endfun fun open_flags_mode ( path: NSH(string), flags: fcntlflags, mode: mode_t ) : Fildes = "mac#%" // endfun (* ****** ****** *) fun fcntl_getfl (fd: !Fildes0): fcntlflags = "mac#%" fun fcntl_setfl (fd: !Fildes0, flags: fcntlflags): int = "mac#%" (* ****** ****** *) (* end of [fcntl.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/gdbm/0000755000175000017500000000000013431250607020534 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/gdbm/gdbm.sats0000644000175000017500000002306313431250607022345 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: July, 2013 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // %{# #include \ "libats/libc/CATS/gdbm/gdbm.cats" %} // end of [%{#] // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc.gdbm" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) // staload FCNTL = "libats/libc/SATS/fcntl.sats" staload TYPES = "libats/libc/SATS/sys/types.sats" // typedef mode_t = $TYPES.mode_t // (* ****** ****** *) #include "./SHARE/datum.hats" (* ****** ****** *) // absvtype GDBMfilptr_vtype (lf:addr) = ptr vtypedef GDBMfilptr(lf:addr) = GDBMfilptr_vtype(lf) // vtypedef GDBMfilptr = [lf:addr] GDBMfilptr(lf) vtypedef GDBMfilptr0 = [lf:addr | lf >= null] GDBMfilptr(lf) vtypedef GDBMfilptr1 = [lf:addr | lf > null] GDBMfilptr(lf) // (* ****** ****** *) // praxi GDBMfilptr_free_null (GDBMfilptr(null)): void // castfn GDBMfilptr2ptr {lf:addr} (!GDBMfilptr(lf)):<> ptr(lf) // overload ptrcast with GDBMfilptr2ptr // (* ****** ****** *) // typedef GDBMerror = int // macdef GDBM_NO_ERROR = $extval (GDBMerror, "GDBM_NO_ERROR") macdef GDBM_MALLOC_ERROR = $extval (GDBMerror, "GDBM_MALLOC_ERROR") macdef GDBM_BLOCK_SIZE_ERROR = $extval (GDBMerror, "GDBM_BLOCK_SIZE_ERROR") macdef GDBM_FILE_OPEN_ERROR = $extval (GDBMerror, "GDBM_FILE_OPEN_ERROR") macdef GDBM_FILE_WRITE_ERROR = $extval (GDBMerror, "GDBM_FILE_WRITE_ERROR") macdef GDBM_FILE_SEEK_ERROR = $extval (GDBMerror, "GDBM_FILE_SEEK_ERROR") macdef GDBM_FILE_READ_ERROR = $extval (GDBMerror, "GDBM_FILE_READ_ERROR") macdef GDBM_BAD_MAGIC_NUMBER = $extval (GDBMerror, "GDBM_BAD_MAGIC_NUMBER") macdef GDBM_EMPTY_DATABASE = $extval (GDBMerror, "GDBM_EMPTY_DATABASE") macdef GDBM_CANT_BE_READER = $extval (GDBMerror, "GDBM_CANT_BE_READER") macdef GDBM_CANT_BE_WRITER = $extval (GDBMerror, "GDBM_CANT_BE_WRITER") macdef GDBM_READER_CANT_DELETE = $extval (GDBMerror, "GDBM_READER_CANT_DELETE") macdef GDBM_READER_CANT_STORE = $extval (GDBMerror, "GDBM_READER_CANT_STORE") macdef GDBM_READER_CANT_REORGANIZE = $extval (GDBMerror, "GDBM_READER_CANT_REORGANIZE") macdef GDBM_UNKNOWN_UPDATE = $extval (GDBMerror, "GDBM_UNKNOWN_UPDATE") macdef GDBM_ITEM_NOT_FOUND = $extval (GDBMerror, "GDBM_ITEM_NOT_FOUND") macdef GDBM_REORGANIZE_FAILED = $extval (GDBMerror, "GDBM_REORGANIZE_FAILED") macdef GDBM_CANNOT_REPLACE = $extval (GDBMerror, "GDBM_CANNOT_REPLACE") macdef GDBM_ILLEGAL_DATA = $extval (GDBMerror, "GDBM_ILLEGAL_DATA") macdef GDBM_OPT_ALREADY_SET = $extval (GDBMerror, "GDBM_OPT_ALREADY_SET") macdef GDBM_OPT_ILLEGAL = $extval (GDBMerror, "GDBM_OPT_ILLEGAL") macdef GDBM_BYTE_SWAPPED = $extval (GDBMerror, "GDBM_BYTE_SWAPPED") macdef GDBM_BAD_FILE_OFFSET = $extval (GDBMerror, "GDBM_BAD_FILE_OFFSET") macdef GDBM_BAD_OPEN_FLAGS = $extval (GDBMerror, "GDBM_BAD_OPEN_FLAGS") // (* ****** ****** *) // fun gdbm_errno_get (): GDBMerror = "mac#%" // (* ****** ****** *) // // statically-allocated // val gdbm_version : string = "mac#%" val gdbm_version_number : arrayref(int, 3) = "mac#mac%" // (* ****** ****** *) fun gdbm_version_cmp (v1: &(@[int][3]), v2: &(@[int][3])):<> int = "mac#%" // end of [gdbm_version_cmp] (* ****** ****** *) (* #define GDBM_READER 0 /* A reader. */ #define GDBM_WRITER 1 /* A writer. */ #define GDBM_WRCREAT 2 /* A writer. Create the db if needed. */ #define GDBM_NEWDB 3 /* A writer. Always create a new db. */ *) macdef GDBM_READER = $extval (int, "GDBM_READER") macdef GDBM_WRITER = $extval (int, "GDBM_WRITER") macdef GDBM_WRCREAT = $extval (int, "GDBM_WRCREAT") macdef GDBM_NEWDB = $extval (int, "GDBM_NEWDB") (* #define GDBM_FAST 0x10 /* Write fast! => No fsyncs. OBSOLETE. */ #define GDBM_SYNC 0x20 /* Sync operations to the disk. */ #define GDBM_NOLOCK 0x40 /* Don't do file locking operations. */ *) macdef GDBM_FAST = $extval (int, "GDBM_FAST") macdef GDBM_SYNC = $extval (int, "GDBM_SYNC") macdef GDBM_NOLOCK = $extval (int, "GDBM_NOLOCK") (* ****** ****** *) (* GDBM_FILE gdbm_open (name, block_size, flags, mode, fatal_func); *) // // fatal_func: (string) -> void // fun gdbm_open ( name: string , block_size: int, flags: int, mode: mode_t, fatal_func: ptr ) : GDBMfilptr0 = "mac#%" // end of [gdbm_open] (* ****** ****** *) (* void gdbm_close(dbf); *) fun gdbm_close (dbf: GDBMfilptr) : void = "mac#%" (* ****** ****** *) (* int gdbm_store(dbf, key, content, flag); *) (* #define GDBM_INSERT 0 /* Never replace old data with new. */ #define GDBM_REPLACE 1 /* Always replace old data with new. */ *) macdef GDBM_INSERT = $extval (int, "GDBM_INSERT") macdef GDBM_REPLACE = $extval (int, "GDBM_REPLACE") fun gdbm_store {l1,l2:addr}{n1,n2:nat} ( dbf: !GDBMfilptr1, key: !datum(l1, n1), content: !datum(l2, n2), flag: int ) : int(*err*) = "mac#%" // end of [gdbm_store] (* ****** ****** *) (* datum gdbm_fetch(dbf, key); *) // // HX: the return value is allocated // fun gdbm_fetch {l:agz}{n:int} (dbf: !GDBMfilptr1, key: !datum (l, n)): datum0 = "mac#%" // end of [gdbm_fetch] (* ****** ****** *) (* int gdbm_exists(dbf, key); *) fun gdbm_exists {l:agz}{n:int} // true/false: 0/1 (dbf: !GDBMfilptr1, key: !datum (l, n)): int = "mac#%" // end of [gdbm_exists] (* ****** ****** *) (* int gdbm_delete(dbf, key); *) fun gdbm_delete {l:agz}{n:int} // succ/fail: 0/-1 (dbf: !GDBMfilptr1, key: !datum (l, n)) : int = "mac#%" // end of [gdbm_delete] (* ****** ****** *) (* datum gdbm_firstkey(dbf); *) fun gdbm_firstkey (dbf: !GDBMfilptr1): datum0 = "mac#%" (* ****** ****** *) (* datum gdbm_nextkey(dbf, key); *) fun gdbm_nextkey {l:agz}{n:int} (dbf: !GDBMfilptr, key: !datum(l, n) >> _): datum0 = "mac#%" // end of [gdbm_nextkey] (* ****** ****** *) // (* int gdbm_reorganize(dbf); *) fun gdbm_reorganize (!GDBMfilptr1): int = "mac#%" // (* ****** ****** *) (* void gdbm_sync(dbf); *) fun gdbm_sync (dbf: !GDBMfilptr1): void = "mac#%" (* ****** ****** *) (* int gdbm_export ( GDBM FILE dbf , const char *exportfile,int flag, int mode ) ; *) fun gdbm_export ( dbf: !GDBMfilptr1 , exportfile: string, flag: int, mode: mode_t ) : int = "mac#%" // end of [gdbm_export] (* ****** ****** *) (* int gdbm_import ( GDBM FILE dbf , const char *importfile , int flag ) ; *) fun gdbm_import ( dbf: !GDBMfilptr1, importfile: string, flag: int ) : int = "mac#%" // end of [gdbm_import] (* ****** ****** *) (* char *gdbm_strerror(int errno); *) fun gdbm_strerror (errno: GDBMerror): string(*pre-allocated*) = "mac#%" // end of [gdbm_strerror] (* ****** ****** *) (* int gdbm_setopt(dbf, option, value, size); *) abst@ype gdbmsetopt_t0ype (a:t@ype) = int stadef gdbmsetopt = gdbmsetopt_t0ype abst@ype gdbmgetopt_t0ype (a:t@ype) = int stadef gdbmgetopt = gdbmgetopt_t0ype // macdef GDBM_CACHESIZE = $extval (gdbmsetopt(size_t), "GDBM_CACHESIZE") macdef GDBM_SETCACHESIZE = $extval (gdbmsetopt(size_t), "GDBM_SETCACHESIZE") macdef GDBM_GETCACHESIZE = $extval (gdbmgetopt(size_t), "GDBM_GETCACHESIZE") // macdef GDBM_GETFLAGS = $extval (gdbmgetopt(int), "GDBM_GETFLAGS") // macdef GDBM_FASTMODE = $extval (gdbmsetopt(int), "GDBM_FASTMODE") // macdef GDBM_SYNCMODE = $extval (gdbmsetopt(int), "GDBM_SYNCMODE") macdef GDBM_SETSYNCMODE = $extval (gdbmsetopt(int), "GDBM_SETSYNCMODE") macdef GDBM_GETSYNCMODE = $extval (gdbmgetopt(int), "GDBM_GETSYNCMODE") // macdef GDBM_COALESCEBLKS = $extval (gdbmsetopt(int), "GDBM_COALESCEBLKS") macdef GDBM_SETCOALESCEBLKS = $extval (gdbmsetopt(int), "GDBM_SETCOALESCEBLKS") macdef GDBM_GETCOALESCEBLKS = $extval (gdbmgetopt(int), "GDBM_GETCOALESCEBLKS") // macdef GDBM_SETMAXMAPSIZE = $extval (gdbmsetopt(size_t), "GDBM_SETMAXMAPSIZE") macdef GDBM_GETMAXMAPSIZE = $extval (gdbmgetopt(size_t), "GDBM_GETMAXMAPSIZE") // macdef GDBM_SETMMAP = $extval (gdbmsetopt(int), "GDBM_SETMMAP") macdef GDBM_GETMMAP = $extval (gdbmgetopt(int), "GDBM_GETMMAP") // macdef GDBM_GETDBNAME = $extval (gdbmgetopt(ptr), "GDBM_GETDBNAME") // (* ****** ****** *) // fun gdbm_setopt {a:t@ype} ( dbf: !GDBMfilptr1 , option: gdbmsetopt(a), value: &a, size: sizeof_t(a) ) : int(*err*) = "mac#%" // end of [gdbm_setopt] // fun gdbm_getopt {a:t@ype} ( dbf: !GDBMfilptr1 , option: gdbmgetopt(a), value: &a? >> a, size: sizeof_t(a) ) : int(*err*) = "mac#%" // end of [gdbm_getopt] // fun gdbm_getdbname(dbf: !GDBMfilptr1): Strptr0 = "mac#%" // (* ****** ****** *) // (* int gdbm_fdesc(dbf); *) fun gdbm_fdesc(dbf: !GDBMfilptr1): int(*fd*) = "mac#%" // no failure // (* ****** ****** *) (* end of [gdbm.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/gdbm/.keeper0000644000175000017500000000000013431250607021776 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/gdbm/SHARE/0000755000175000017500000000000013431250607021376 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/gdbm/SHARE/datum.hats0000644000175000017500000000550613431250607023377 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: July, 2013 // (* ****** ****** *) absvtype dptr_addr_int_vtype (addr, int) // vtypedef dptr (l:addr, n:int) = dptr_addr_int_vtype (l, n) // (* ****** ****** *) // viewdef dptrout (l:addr, n:int) = dptr (l, n) - void // (* ****** ****** *) // castfn dptr2ptr{l:addr}{n:int}(x: !dptr(l, n)):<> ptr(l) // overload ptrcast with dptr2ptr // (* ****** ****** *) vtypedef datum_vtype ( l:addr, n:int ) = (* datum *) $extype_struct "atslib_libats_libc_datum_type" of { dptr= dptr(l, n), dsize= int(n) } // end of [datum] // stadef datum = datum_vtype // (* ****** ****** *) // vtypedef datum = [l:addr;n:int] datum(l, n) vtypedef datum0 = [l:agez;n:int] datum(l, n) vtypedef // for valid data datum1 = [l:addr;n:int | l > null; n >= 0] datum(l, n) // (* ****** ****** *) fun datum_is_valid {l:addr}{n:int} ( x0: datum(l, n) ) : bool (l > null) = "mac#atslib_libats_libc_gdbm_datum_is_valid" // end of [datum_is_valid] fun datum_takeout_ptr {l:addr}{n:int} ( x0: datum(l, n) ) :<> dptr (l, n) = "mac#atslib_libats_libc_gdbm_datum_takeout_ptr" // end of [datum_takeout_ptr] (* ****** ****** *) // // HX: implemented in [gdbm.cats] // fun datum_make0_string (string) : [l:agz;n:nat] ( dptrout (l, n) | datum (l, n) ) = "mac#atslib_libats_libc_gdbm_datum_make0_string" // fun datum_make1_string (string): datum1 = "mac#atslib_libats_libc_gdbm_datum_make1_string" // (* ****** ****** *) // fun datum_free(datum0): void = "mac#atslib_libats_libc_gdbm_datum_free" // (* ****** ****** *) (* end of [datum.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/gdbm/SHARE/.keeper0000644000175000017500000000000013431250607022640 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/sys/0000755000175000017500000000000013431250607020441 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/sys/stat.sats0000644000175000017500000001360713431250607022317 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/sys/stat.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) // staload TYPES = "libats/libc/SATS/sys/types.sats" // (* ****** ****** *) // typedef dev_t = $TYPES.dev_t typedef ino_t = $TYPES.ino_t typedef mode_t = $TYPES.mode_t typedef nlink_t = $TYPES.nlink_t // typedef uid_t = $TYPES.uid_t typedef gid_t = $TYPES.gid_t // typedef off_t = $TYPES.off_t // typedef blkcnt_t = $TYPES.blkcnt_t typedef blksize_t = $TYPES.blksize_t // typedef time_t = $TYPES.time_t // vtypedef fildes (i:int) = $TYPES.fildes (i) // vtypedef Fildes = $TYPES.Fildes vtypedef Fildes0 = $TYPES.Fildes0 // (* ****** ****** *) // typedef stat_struct = $extype_struct "atslib_libats_libc_stat_struct" of { st_dev= dev_t // device , st_ino= ino_t // 32-bit file serial number , st_mode= mode_t // file mode , st_nlink= nlink_t // link count , st_uid= uid_t // user ID of the file's owner , st_gid= gid_t // group ID of the file's group , st_rdev= dev_t // device number if device , st_size= off_t // size of file in bytes , st_blksize= blksize_t // optimal block size for I/O , st_blocks= blkcnt_t // number 512-byte blocks allocated , st_atime= time_t // time of last access , st_mtime= time_t // time of last modification , st_ctime= time_t // time of last status change // , _rest= undefined_t0ype // ... // } // end of [stat_struct] typedef stat = stat_struct // (* ****** ****** *) macdef S_IFMT = $extval (mode_t, "S_IFMT") macdef S_IFBLK = $extval (mode_t, "S_IFBLK") macdef S_IFCHR = $extval (mode_t, "S_IFCHR") macdef S_IFDIR = $extval (mode_t, "S_IFDIR") macdef S_IFIFO = $extval (mode_t, "S_IFIFO") macdef S_IFLNK = $extval (mode_t, "S_IFLNK") macdef S_IFREG = $extval (mode_t, "S_IFREG") macdef S_IFSOCK = $extval (mode_t, "S_IFSOCK") (* ****** ****** *) // macdef S_IRWXU = $extval (mode_t, "S_IRWXU") macdef S_IRUSR = $extval (mode_t, "S_IRUSR") macdef S_IWUSR = $extval (mode_t, "S_IWUSR") macdef S_IXUSR = $extval (mode_t, "S_IXUSR") // macdef S_IRWXG = $extval (mode_t, "S_IRWXG") macdef S_IRGRP = $extval (mode_t, "S_IRGRP") macdef S_IWGRP = $extval (mode_t, "S_IWGRP") macdef S_IXGRP = $extval (mode_t, "S_IXGRP") // macdef S_IRWXO = $extval (mode_t, "S_IRWXO") macdef S_IROTH = $extval (mode_t, "S_IROTH") macdef S_IWOTH = $extval (mode_t, "S_IWOTH") macdef S_IXOTH = $extval (mode_t, "S_IXOTH") // macdef S_ISUID = $extval (mode_t, "S_ISUID") macdef S_ISGID = $extval (mode_t, "S_ISGID") macdef S_ISVTX = $extval (mode_t, "S_ISVTX") // (* ****** ****** *) // // HX: macros // fun S_ISBLK (m: mode_t): bool = "mac#%" fun S_ISCHR (m: mode_t): bool = "mac#%" fun S_ISDIR (m: mode_t): bool = "mac#%" fun S_ISFIFO (m: mode_t): bool = "mac#%" fun S_ISREG (m: mode_t): bool = "mac#%" fun S_ISLNK (m: mode_t): bool = "mac#%" fun S_ISSOCK (m: mode_t): bool = "mac#%" // (* ****** ****** *) // // HX: (0/1/-1 : false/true/error) // fun isfdtype (fildes: int, fdtype: mode_t): int // (* ****** ****** *) // fun chmod (path: NSH(string), mode: mode_t): int = "mac#%" fun chmod_exn (path: NSH(string), mode: mode_t): void = "ext#%" // fun fchmod (fd: !Fildes0, mode: mode_t): int = "mac#%" // (* ****** ****** *) // fun mkdir (path: NSH(string), mode: mode_t): int = "mac#%" fun mkdir_exn (path: NSH(string), mode: mode_t): void = "ext#%" // (* ****** ****** *) // // HX-2014-04: this one is like [mkdir -p] // fun{ } mkdirp (path: NSH(string), mode: mode_t): int = "mac#%" // (* ****** ****** *) // fun mkdirat (dirfd: int, path: NSH(string), mode: mode_t): int = "mac#%" // (* ****** ****** *) // fun mkfifo // 0/-1 : succ/fail // errno set (path: NSH(string), perm: mode_t): int = "mac#%" // (* ****** ****** *) // fun stat ( path: NSH(string), st: &stat? >> opt (stat, i==0) ) : #[i:int | i <= 0] int (i) = "mac#%" fun stat_exn (path: NSH(string), st: &stat? >> stat): void = "ext#%" // (* ****** ****** *) // fun fstat ( fd: !Fildes0, st: &stat? >> opt (stat, i==0) ) : #[i:int | i <= 0] int (i) = "mac#%" fun fstat_exn (fd: !Fildes0, st: &stat? >> stat): void = "ext#%" // (* ****** ****** *) // fun lstat ( path: NSH(string), st: &stat? >> opt (stat, i==0) ) : #[i:int | i <= 0] int (i) = "mac#%" fun lstat_exn (path: NSH(string), st: &stat? >> stat): void = "ext#%" // (* ****** ****** *) fun umask (mask_new: mode_t): mode_t(*old*) = "mac#%" // end of [umask] (* ****** ****** *) (* end of [stat.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/sys/wait.sats0000644000175000017500000000741513431250607022310 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: May, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/sys/wait.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) // staload TYPES = "libats/libc/SATS/sys/types.sats" // typedef pid_t = $TYPES.pid_t // (* ****** ****** *) // absprop WIFEXITED_p (s:int, b:bool) // fun WEXITSTATUS{s:int} ( pf: WIFEXITED_p (s, true) | status: int s ) : int = "mac#%" // end of [WEXITSTATUS] fun WIFEXITED{s:int} (status: int s): [b:bool] (WIFEXITED_p(s, b) | bool b) = "mac#%" // end of [WIFEXITED] // (* ****** ****** *) // absprop WIFSIGNALED_p(s:int, b:bool) // fun WTERMSIG{s:int} ( pf: WIFSIGNALED_p (s, true) | status: int s ) : int = "mac#%" // end of [WTERMSIG] fun WIFSIGNALED {s:int} ( status: int(s) ) : [b:bool] (WIFSIGNALED_p(s, b) | bool b) = "mac#%" // end of [WIFSIGNALED] // (* ****** ****** *) // absprop WIFSTOPPED_p(s:int, b:bool) // fun WSTOPSIG{s:int} ( pf: WIFSTOPPED_p(s, true) | status: int s ) : int = "mac#%" // end of [WSTOPSIG] fun WIFSTOPPED {s:int} ( status: int(s) ) : [b:bool] (WIFSTOPPED_p(s, b) | bool b) = "mac#%" // end of [WIFSTOPPED] // (* ****** ****** *) // absprop WCOREDUMP_p (s:int, b:bool) // fun WCOREDUMP {s:int} ( status: int(s) ) : [b:bool] (WCOREDUMP_p(s, b) | bool(b)) = "mac#%" // end of [WCOREDUMP] // (* ****** ****** *) // absprop WIFCONTINUED_p(s:int, b:bool) // fun WIFCONTINUED {s:int}(status: int s) : [b:bool] (WIFCONTINUED_p(s, b) | bool b) = "mac#%" // end of [WIFCONTINUED] // (* ****** ****** *) // fun wait_void(): pid_t = "mac#%" fun wait_status(status: &int? >> int): pid_t = "mac#%" // symintr wait overload wait with wait_void overload wait with wait_status // (* ****** ****** *) // abst@ype waitopt_t0ype = $extype"ats_int_type" typedef waitopt = waitopt_t0ype // macdef WNONE = $extval (waitopt, "0") macdef WNOHANG = $extval (waitopt, "WNOHANG") macdef WUNTRACED = $extval (waitopt, "WUNTRACED") macdef WCONTINUED = $extval (waitopt, "WCONTINUED") // fun lor_waitopt_waitopt (opt1: waitopt, opt2: waitopt): waitopt // overload lor with lor_waitopt_waitopt // (* ****** ****** *) // fun waitpid ( chldpid: pid_t, status: &int? >> int, opt: waitopt ) : pid_t = "mac#%" // end of [waitpid] // (* ****** ****** *) (* end of [wait.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/sys/.keeper0000644000175000017500000000000013431250607021703 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/sys/types.sats0000644000175000017500000001373213431250607022507 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/sys/types.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) // abst@ype time_t0ype = $extype"atslib_libats_libc_time_type" typedef time_t = time_t0ype // = its C-counterpart // (* ****** ****** *) // fun time2lint (t: time_t):<> lint = "mac#%" fun time2double (t: time_t):<> double = "mac#%" // (* ****** ****** *) // fun lt_time_time (t1: time_t, t2: time_t):<> bool = "mac#%" fun lte_time_time (t1: time_t, t2: time_t):<> bool = "mac#%" fun gt_time_time (t1: time_t, t2: time_t):<> bool = "mac#%" fun gte_time_time (t1: time_t, t2: time_t):<> bool = "mac#%" // overload < with lt_time_time overload <= with lte_time_time overload > with gt_time_time overload >= with gte_time_time // fun eq_time_time (t1: time_t, t2: time_t):<> bool = "mac#%" fun neq_time_time (t1: time_t, t2: time_t):<> bool = "mac#%" // overload = with eq_time_time overload <> with neq_time_time overload != with neq_time_time // (* ****** ****** *) // abst@ype clock_t0ype = $extype"atslib_libats_libc_clock_type" abst@ype clockid_t0ype = $extype"atslib_libats_libc_clockid_type" // typedef clock_t = clock_t0ype // = its C-counterpart typedef clockid_t = clockid_t0ype // = its C-counterpart // (* ****** ****** *) fun clock2lint (t: clock_t):<> lint = "mac#%" fun clock2double (t: clock_t):<> double = "mac#%" (* ****** ****** *) abst@ype mode_t0ype = $extype"atslib_libats_libc_mode_type" typedef mode_t = mode_t0ype // = its C-counterpart (* ****** ****** *) // fun mode2int (m: mode_t):<> int = "mac#%" fun mode2uint (m: mode_t):<> uint = "mac#%" // (* ****** ****** *) // fun eq_mode_mode (m1: mode_t, m2: mode_t):<> bool = "mac#%" fun neq_mode_mode (m1: mode_t, m2: mode_t):<> bool = "mac#%" // overload = with eq_mode_mode overload != with neq_mode_mode overload <> with neq_mode_mode // (* ****** ****** *) fun lor_mode_mode (m1: mode_t, m2: mode_t):<> mode_t = "mac#%" overload lor with lor_mode_mode fun land_mode_mode (m1: mode_t, m2: mode_t):<> mode_t = "mac#%" overload land with land_mode_mode (* ****** ****** *) abst@ype dev_t0ype = $extype"atslib_libats_libc_dev_type" typedef dev_t = dev_t0ype // = its C-counterpart (* ****** ****** *) abst@ype ino_t0ype = $extype"atslib_libats_libc_ino_type" typedef ino_t = ino_t0ype // = its C-counterpart (* ****** ****** *) abst@ype nlink_t0ype = $extype"atslib_libats_libc_nlink_type" typedef nlink_t = nlink_t0ype // = its C-counterpart (* ****** ****** *) abst@ype pid_t0ype = $extype"atslib_libats_libc_pid_type" typedef pid_t = pid_t0ype // = its C-counterpart castfn pid2int (x: pid_t):<> int castfn pid2lint (x: pid_t):<> lint (* ****** ****** *) // abst@ype uid_t0ype = $extype"atslib_libats_libc_uid_type" abst@ype gid_t0ype = $extype"atslib_libats_libc_gid_type" // typedef uid_t = uid_t0ype // = its C-counterpart typedef gid_t = gid_t0ype // = its C-counterpart // (* ****** ****** *) abst@ype off_t0ype = $extype"atslib_libats_libc_off_type" typedef off_t = off_t0ype // = its C-counterpart (* ****** ****** *) abst@ype blkcnt_t0ype = $extype"atslib_libats_libc_blkcnt_type" typedef blkcnt_t = blkcnt_t0ype // = its C-counterpart (* ****** ****** *) abst@ype blksize_t0ype = $extype"atslib_libats_libc_blksize_type" typedef blksize_t = blksize_t0ype // = its C-counterpart (* ****** ****** *) fun lint2off (x: lint):<> off_t = "mac#%" fun off2lint (x: off_t):<> lint = "mac#%" fun size2off (x: size_t):<> off_t = "mac#%" fun off2size (x: off_t):<> size_t = "mac#%" (* ****** ****** *) // absview fildes_view (fd: int) viewdef fildes_v (i:int) = fildes_view (i) // absvt@ype fildes_vtype (fd: int) = int // vtypedef fildes (fd: int) = fildes_vtype (fd) // vtypedef Fildes = [fd:int] fildes (fd) vtypedef Fildes0 = [fd:int | fd >= 0] fildes (fd) // (* ****** ****** *) castfn fildes_decode {fd:nat} (fd: fildes (fd)):<> (fildes_v (fd) | int fd) // end of [fildes_decode] castfn fildes_encode {fd:nat} (pf: fildes_v (fd) | fd: int fd):<> fildes (fd) // end of [fildes_encode] (* ****** ****** *) abst@ype useconds_t = // microseconds $extype"atslib_libats_libc_useconds_type" castfn usec2lint (x: useconds_t):<> lint abst@ype suseconds_t = // microseconds $extype"atslib_libats_libc_suseconds_type" castfn susec2lint (x: suseconds_t):<> lint (* ****** ****** *) abst@ype pthread_t = $extype"atslib_libats_libc_pthread_type" castfn pthread2lint (x: pthread_t):<> lint (* ****** ****** *) (* end of [types.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/sys/socket_in.sats0000644000175000017500000000647213431250607023324 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: November, 2014 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/sys/socket_in.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) // staload "libats/libc/SATS/sys/socket.sats" staload IN = "libats/libc/SATS/netinet/in.sats" // (* ****** ****** *) // typedef in_port_t = $IN.in_port_t typedef in_port_nbo_t = $IN.in_port_nbo_t // (* ****** ****** *) // typedef in_addr_hbo_t = $IN.in_addr_hbo_t typedef in_addr_nbo_t = $IN.in_addr_nbo_t // (* ****** ****** *) // typedef in_addr_struct = $IN.in_addr_struct // (* ****** ****** *) // typedef sockaddr_in_struct = $extype_struct "sockaddr_in_struct" of { sin_family = sa_family_t , sin_port(**) = in_port_nbo_t // uint16 , sin_addr(**) = in_addr_struct } // end of [sockaddr_in_struct] // typedef SA_in = sockaddr_in_struct typedef sockaddr_in = sockaddr_in_struct // stacst socklen_in : int // HX: length of [sockaddr_in] (* stadef socklen_in = sizeof (sockaddr_in_struct) *) macdef socklen_in = $extval(socklen_t(socklen_in), "atslib_libats_libc_socklen_in") // praxi socklen_lte_in (): [socklen_in <= socklen_max] void praxi sockaddr_in_trans {l:addr} (pf: !sockaddr_in_struct @ l >> sockaddr_struct(socklen_in) @ l): void praxi sockaddr_trans_in {l:addr} (pf: !sockaddr_struct(socklen_in) @ l >> sockaddr_in_struct @ l): void // (* ****** ****** *) // fun sockaddr_in_init ( sa: &SA_in? >> SA_in , af: sa_family_t, inp: in_addr_nbo_t, port: in_port_nbo_t ) :<> void = "mac#%" // end of [sockaddr_in_init] (* ****** ****** *) fun bind_in_exn {fd:int} ( pf: !socket_v(fd, init) >> socket_v(fd, bind) | fd: int fd, sa: &SA_in ) : void = "ext#%" // end of [bind_in_exn] (* ****** ****** *) fun connect_in_exn {fd:int} ( pf: !socket_v(fd, init) >> socket_v(fd, conn) | fd: int fd, sa: &SA_in ) : void = "ext#%" // end of [connect_in_exn] (* ****** ****** *) (* end of [socket_in.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/sys/time.sats0000644000175000017500000001107713431250607022301 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: August, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/sys/time.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) // staload TYPES = "libats/libc/SATS/sys/types.sats" // typedef time_t = $TYPES.time_t typedef suseconds_t = $TYPES.suseconds_t // (* ****** ****** *) // typedef timeval_struct = $extype_struct "atslib_libats_libc_timeval_type" of { // = struct timeval tv_sec= time_t // seconds , tv_usec= suseconds_t // microseconds } // end of [timeval_struct] // typedef timeval = timeval_struct // (* ****** ****** *) (* // // HX: these macros seem only available in BSD // fun timerisset (tv: &timeval):<> bool = "mac#%" fun timerclear (tv: &timeval >> _):<> bool = "mac#%" *) (* ****** ****** *) typedef timezone_struct = $extype_struct "atslib_libats_libc_timezone_type" of { // = struct timezone tz_minuteswest= int // minutes west of GMT , tz_dsttime= int // nonzero if DST is ever in effect } // end of [timezone_struct] typedef timezone = timezone_struct (* ****** ****** *) // symintr gettimeofday // fun gettimeofday_tv ( tv: &timeval? >> opt (timeval, i==0) ) :<> #[i:int | i <= 0] int(i) = "mac#%" overload gettimeofday with gettimeofday_tv // fun gettimeofday_tz ( tz: &timezone? >> opt (timezone, i==0) ) :<> #[i:int | i <= 0] int(i) = "mac#%" overload gettimeofday with gettimeofday_tz // (* ****** ****** *) // symintr settimeofday // fun settimeofday_tv (tv: &timeval):<> [i:int | i <= 0] int(i) = "mac#%" overload settimeofday with settimeofday_tv // fun settimeofday_tz (tz: &timezone):<> [i:int | i <= 0] int(i) = "mac#%" overload settimeofday with settimeofday_tz // fun settimeofday_tvtz (tv: &timeval, tz: &timezone):<> [i:int | i <= 0] int(i) = "mac#%" overload settimeofday with settimeofday_tvtz // (* ****** ****** *) fun utimes ( // -1 on error // errno set path: string, buf: &(@[timeval][2]) ) : int = "mac#%" // end of [utimes] fun futimes {fd:nat} ( // -1 on error // errno set fd: int (fd), buf: &(@[timeval][2]) ) : int = "mac#%" // end of [futimes] fun futimesat ( // -1 on error // errno set dirfd: int, path: string, buf: &(@[timeval][2]) ) : int = "mac#%" // end of [futimesat] (* ****** ****** *) // abst@ype itimerknd_t0ype = int typedef itimerknd = itimerknd_t0ype macdef ITIMER_REAL = $extval (itimerknd, "ITIMER_REAL") macdef ITIMER_VIRTUAL = $extval (itimerknd, "ITIMER_VIRTUAL") macdef ITIMER_PROF = $extval (itimerknd, "ITIMER_PROF") // (* ****** ****** *) // typedef itimerval_struct = $extype_struct "atslib_libats_libc_itimerval_type" of { it_interval= timeval, it_value= timeval } // end of [itimerval_struct] // end of [typedef] // typedef itimerval = itimerval_struct // (* ****** ****** *) // // HX: -1/0 : succ/fail // errno set // fun getitimer ( which: itimerknd , itval: &itimerval? >> opt (itimerval, i==0) ) : #[i:int | i <= 0] int(i) = "mac#%" // endfun fun setitimer ( which: itimerknd, itval: &itimerval , itval_old: &itimerval? >> opt (itimerval, i==0) ) : #[i:int | i <= 0] int(i) = "mac#%" // endfun fun setitimer_null (which: itimerknd, itval: &itimerval): int = "mac#%" // end of [setitimer_null] (* ****** ****** *) (* end of [time.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/sys/mman.sats0000644000175000017500000000634713431250607022277 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: October, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/sys/mman.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) // staload FCNTL = "libats/libc/SATS/fcntl.sats" // typedef mode_t = $FCNTL.mode_t typedef fcntlflags = $FCNTL.fcntlflags stadef fildes = $FCNTL.fildes vtypedef Fildes = $FCNTL.Fildes // (* ****** ****** *) // abst@ype protflags = int // macdef PROT_NONE = $extval (protflags, "PROT_NONE") macdef PROT_EXEC = $extval (protflags, "PROT_EXEC") macdef PROT_READ = $extval (protflags, "PROT_READ") macdef PROT_WRITE = $extval (protflags, "PROT_WRITE") // fun lor_protflags_protflags : (protflags, protflags) -<> protflags = "ext#atspre_lor_int_int" overload lor with lor_protflags_protflags // (* ****** ****** *) // abst@ype mmapflags = int // macdef MAP_SHARED = $extval (mmapflags, "MAP_SHARED") macdef MAP_PRIVATE = $extval (mmapflags, "MAP_PRIVATE") // macdef MAP_ANONYMOUS = $extval (mmapflags, "MAP_ANONYMOUS") // fun lor_mmapflags_mmapflags : (mmapflags, mmapflags) -<> mmapflags = "ext#atspre_lor_int_int" overload lor with lor_mmapflags_mmapflags // (* ****** ****** *) macdef MAP_FAILED = $extval (ptr, "MAP_FAILED") // = (void*)-1 (* ****** ****** *) (* /* ** Open shared memory segment */ extern int shm_open ( __const char *__name, int __oflag, mode_t __mode ) ; // end of [shm_open] *) fun shm_open ( path: NSH(string), flags: fcntlflags, mode: mode_t ) : Fildes = "mac#%" // endfun (* ****** ****** *) (* /* ** Remove shared memory segment */ extern int shm_unlink (__const char *__name); *) fun shm_unlink (path: NSH(string)): intLte(0) = "mac#%" (* ****** ****** *) (* end of [mman.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/sys/socket.sats0000644000175000017500000002162313431250607022631 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: November, 2014 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/sys/socket.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) abst@ype sa_family_t = $extype"sa_family_t" // // HX: these are the primary ones: // macdef AF_UNIX = $extval (sa_family_t, "AF_UNIX") macdef AF_INET = $extval (sa_family_t, "AF_INET") macdef AF_INET6 = $extval (sa_family_t, "AF_INET6") macdef AF_UNSPEC = $extval (sa_family_t, "AF_UNSPEC") // macdef AF_LOCAL = $extval (sa_family_t, "AF_LOCAL") macdef AF_FILE = $extval (sa_family_t, "AF_FILE") macdef AF_AX25 = $extval (sa_family_t, "AF_AX25") macdef AF_IPX = $extval (sa_family_t, "AF_IPX") macdef AF_APPLETALK = $extval (sa_family_t, "AF_APPLETALK") macdef AF_NETROM = $extval (sa_family_t, "AF_NETROM") macdef AF_BRIDGE = $extval (sa_family_t, "AF_BRIDGE") macdef AF_ATMPVC = $extval (sa_family_t, "AF_ATMPVC") macdef AF_X25 = $extval (sa_family_t, "AF_X25") macdef AF_ROSE = $extval (sa_family_t, "AF_ROSE") macdef AF_DECnet = $extval (sa_family_t, "AF_DECnet") macdef AF_NETBEUI = $extval (sa_family_t, "AF_NETBEUI") macdef AF_SECURITY = $extval (sa_family_t, "AF_SECURITY") macdef AF_KEY = $extval (sa_family_t, "AF_KEY") macdef AF_NETLINK = $extval (sa_family_t, "AF_NETLINK") macdef AF_ROUTE = $extval (sa_family_t, "AF_ROUTE") macdef AF_PACKET = $extval (sa_family_t, "AF_PACKET") macdef AF_ASH = $extval (sa_family_t, "AF_ASH") macdef AF_ECONET = $extval (sa_family_t, "AF_ECONET") macdef AF_ATMSVC = $extval (sa_family_t, "AF_ATMSVC") macdef AF_RDS = $extval (sa_family_t, "AF_RDS") macdef AF_SNA = $extval (sa_family_t, "AF_SNA") macdef AF_IRDA = $extval (sa_family_t, "AF_IRDA") macdef AF_PPPOX = $extval (sa_family_t, "AF_PPPOX") macdef AF_WANPIPE = $extval (sa_family_t, "AF_WANPIPE") macdef AF_LLC = $extval (sa_family_t, "AF_LLC") macdef AF_CAN = $extval (sa_family_t, "AF_CAN") macdef AF_TIPC = $extval (sa_family_t, "AF_TIPC") macdef AF_BLUETOOTH = $extval (sa_family_t, "AF_BLUETOOTH") macdef AF_IUCV = $extval (sa_family_t, "AF_IUCV") macdef AF_RXRPC = $extval (sa_family_t, "AF_RXRPC") macdef AF_ISDN = $extval (sa_family_t, "AF_ISDN") macdef AF_PHONET = $extval (sa_family_t, "AF_PHONET") macdef AF_IEEE802154 = $extval (sa_family_t, "AF_IEEE802154") macdef AF_MAX = $extval (sa_family_t, "AF_MAX") // (* ****** ****** *) // abst@ype sp_family_t = $extype"sp_family_t" // macdef PF_UNIX = $extval (sp_family_t, "PF_UNIX") macdef PF_INET = $extval (sp_family_t, "PF_INET") macdef PF_INET6 = $extval (sp_family_t, "PF_INET6") // (* ****** ****** *) // abst@ype socktype_t = int // macdef SOCK_RAW = $extval (socktype_t, "SOCK_RAW") macdef SOCK_RDM = $extval (socktype_t, "SOCK_RDM") macdef SOCK_DCCP = $extval (socktype_t, "SOCK_DCCP") macdef SOCK_DGRAM = $extval (socktype_t, "SOCK_DGRAM") macdef SOCK_PACKET = $extval (socktype_t, "SOCK_PACKET") macdef SOCK_STREAM = $extval (socktype_t, "SOCK_STREAM") macdef SOCK_SEQPACKET = $extval (socktype_t, "SOCK_SEQPACKET") // (* ****** ****** *) // abst@ype socklen_t(n:int) = $extype"socklen_t" // castfn int2socklen : {n:nat} (int n) -<> socklen_t(n) castfn size2socklen : {n:int} (size_t n) -<> socklen_t(n) // (* ****** ****** *) stacst socklen_max : int // HX: sockaddr length (* ****** ****** *) // abst@ype sockaddr_struct(n:int) = $extype"sockaddr_struct" stadef SA = sockaddr_struct // (* ****** ****** *) // // HX: // client: init -> connect // server: // init -> bind -> listen -> accept // datasort status = | init | conn | bind | listen // absview socket_v (int, status) // (* ****** ****** *) fun socket_AF_type ( af: sa_family_t, st: socktype_t ) : [fd:int] ( option_v (socket_v (fd, init), fd >= 0) | int fd ) = "mac#%" // end-of-function fun socket_AF_type_exn ( af: sa_family_t, st: socktype_t ) : [fd:nat] (socket_v(fd, init) | int fd) = "ext#%" (* ****** ****** *) // dataview bind_v (fd:int, int) = | bind_v_succ (fd, 0) of socket_v (fd, bind) | bind_v_fail (fd, ~1) of socket_v (fd, init) // end of [bind_v] // fun bind_err {fd:int}{n:int} ( pf: socket_v (fd, init) | fd: int fd, sockaddr: &SA(n), salen: socklen_t(n) ) : [i:int] (bind_v (fd, i) | int i) = "mac#%" // fun bind_exn {fd:int}{n:int} ( pf: !socket_v(fd, init) >> socket_v(fd, bind) | fd: int fd, sockaddr: &SA(n), salen: socklen_t(n) ) : void = "exn#%" // end of [bind_exn] // (* ****** ****** *) // dataview listen_v (fd:int, int) = | listen_v_succ (fd, 0) of socket_v (fd, listen) | listen_v_fail (fd, ~1(*err*)) of socket_v (fd, bind) // end of [listen_v] // fun listen_err {fd:int} ( pf: socket_v(fd, bind) | fd: int fd, backlog: intGt(0) ) : [i:int] (listen_v (fd, i) | int i) = "mac#%" // fun listen_exn {fd:int} ( pf: !socket_v(fd, bind) >> socket_v(fd, listen) | fd: int fd, backlog: intGt(0) ) : void = "ext#%" // end of [listen_exn] // (* ****** ****** *) // dataview connect_v ( fd:int, int ) = | connect_v_succ (fd, 0) of socket_v (fd, conn) | connect_v_fail (fd, ~1(*err*)) of socket_v (fd, init) // end of [connect_v] // fun connect_err {fd:int}{n:int} ( pf: socket_v (fd, init) | fd: int fd, sockaddr: &SA(n), salen: socklen_t(n) ) : [i:int] (connect_v (fd, i) | int i) = "mac#%" // fun connect_exn {fd:int}{n:int} ( pf: !socket_v(fd, init) >> socket_v(fd, conn) | fd: int fd, sockaddr: &SA(n), salen: socklen_t(n) ) : void = "exn#%" // end of [connect_exn] // (* ****** ****** *) // dataview accept_v (fd1: int, int) = | {fd2:nat} accept_v_succ (fd1, fd2) of socket_v (fd2, conn) | accept_v_fail (fd1, ~1(*err*)) of () // failed attempt // end of [accept_v] fun accept_err {fd1:int}{n:int} ( pf: !socket_v(fd1, listen) | fd1: int fd1 , sa: &SA(n)? >> opt(SA(n), fd2 >= 0) , salen: &socklen_t(n) >> socklen_t(n2) ) : #[fd2:int;n2:nat] (accept_v (fd1, fd2) | int fd2) = "mac#%" fun accept_null_err {fd1:int} ( pf: !socket_v(fd1, listen) | fd1: int fd1 ) : [fd2:int] ( option_v (socket_v (fd2, conn), fd2 >= 0) | int fd2 ) = "mac#%" // end-of-function (* ****** ****** *) // fun socket_close {fd:int}{s:status} ( pf: socket_v (fd, s) | fd: int fd ) : [i:int | i <= 0] ( option_v (socket_v (fd, s), i < 0) | int i ) = "mac#%" // end of [socket_close_err] // fun socket_close_exn {fd:int}{s:status} (pf: socket_v (fd, s) | fd: int fd): void = "ext#%" // end of [socket_close_exn] // (* ****** ****** *) abst@ype shutkind_t = int macdef SHUT_RD = $extval(shutkind_t, "SHUT_RD") macdef SHUT_WR = $extval(shutkind_t, "SHUT_WR") macdef SHUT_RDWR = $extval(shutkind_t, "SHUT_RDWR") (* ****** ****** *) // // HX: what error can occur? // fun shutdown {fd:int} // 0/-1 : succ/fail // errno set ( pf: socket_v (fd, conn) | fd: int fd, how: shutkind_t ) : [i:int | i <= 0] ( option_v (socket_v (fd, conn), i < 0) | int i ) = "mac#%" // end of [shutdown] // fun shutdown_exn {fd:int} // 0/-1 : succ/fail // errno set ( pf: socket_v (fd, conn) | fd: int fd, how: shutkind_t ) : void = "ext#%" // end of [shutdown_exn] // (* ****** ****** *) // // HX: it is just [read] in [unistd] // fun socket_read {fd:int} {n,sz:int | 0 <= n; n <= sz} ( pf: !socket_v(fd, conn) | fd: int fd, buf: &bytes(sz), ntot: size_t(n) ) : ssizeBtwe(~1, n) = "mac#%" // end of [socket_read] (* ****** ****** *) // // HX: it is just [write] in [unistd] // fun socket_write {fd:int} {n,sz:int | 0 <= n; n <= sz} ( pf: !socket_v(fd, conn) | fd: int fd, buf: &bytes(sz), ntot: size_t(n) ) : ssizeBtwe(~1, n) = "mac#%" // end of [socket_write] // (* ****** ****** *) (* end of [socket.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/netinet/0000755000175000017500000000000013431250607021271 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/netinet/.keeper0000644000175000017500000000000013431250607022533 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/netinet/in.sats0000644000175000017500000001700313431250607022574 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: November, 2014 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/netinet/in.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) // staload SOCKET = "libats/libc/SATS/sys/socket.sats" // typedef sa_family_t = $SOCKET.sa_family_t typedef socklen_t(n:int) = $SOCKET.socklen_t(n) typedef sockaddr_struct(n:int) = $SOCKET.sockaddr_struct(n) // (* ****** ****** *) stadef socklen_max = $SOCKET.socklen_max (* ****** ****** *) // abst@ype in_port_t = $extype"in_port_t" // abst@ype in_port_nbo_t = $extype"in_port_t" // (* ****** ****** *) // abst@ype in_addr_hbo_t = $extype"in_addr_t" abst@ype in_addr_nbo_t = $extype"in_addr_t" // (* ****** ****** *) // abst@ype ipproto_t = int // macdef IPPROTO_IP = $extval (ipproto_t, "IPPROTO_IP") macdef IPPROTO_HOPOPTS = $extval (ipproto_t, "IPPROTO_HOPOPTS") macdef IPPROTO_ICMP = $extval (ipproto_t, "IPPROTO_ICMP") macdef IPPROTO_IGMP = $extval (ipproto_t, "IPPROTO_IGMP") macdef IPPROTO_IPIP = $extval (ipproto_t, "IPPROTO_IPIP") macdef IPPROTO_TCP = $extval (ipproto_t, "IPPROTO_TCP") macdef IPPROTO_EGP = $extval (ipproto_t, "IPPROTO_EGP") macdef IPPROTO_PUP = $extval (ipproto_t, "IPPROTO_PUP") macdef IPPROTO_UDP = $extval (ipproto_t, "IPPROTO_UDP") macdef IPPROTO_IDP = $extval (ipproto_t, "IPPROTO_IDP") macdef IPPROTO_TP = $extval (ipproto_t, "IPPROTO_TP") macdef IPPROTO_DCCP = $extval (ipproto_t, "IPPROTO_DCCP") macdef IPPROTO_IPV6 = $extval (ipproto_t, "IPPROTO_IPV6") macdef IPPROTO_ROUTING = $extval (ipproto_t, "IPPROTO_ROUTING") macdef IPPROTO_FRAGMENT = $extval (ipproto_t, "IPPROTO_FRAGMENT") macdef IPPROTO_RSVP = $extval (ipproto_t, "IPPROTO_RSVP") macdef IPPROTO_GRE = $extval (ipproto_t, "IPPROTO_GRE") macdef IPPROTO_ESP = $extval (ipproto_t, "IPPROTO_ESP") macdef IPPROTO_AH = $extval (ipproto_t, "IPPROTO_AH") macdef IPPROTO_ICMPV6 = $extval (ipproto_t, "IPPROTO_ICMPV6") macdef IPPROTO_NONE = $extval (ipproto_t, "IPPROTO_NONE") macdef IPPROTO_DSTOPTS = $extval (ipproto_t, "IPPROTO_DSTOPTS") macdef IPPROTO_MTP = $extval (ipproto_t, "IPPROTO_MTP") macdef IPPROTO_ENCAP = $extval (ipproto_t, "IPPROTO_ENCAP") macdef IPPROTO_PIM = $extval (ipproto_t, "IPPROTO_PIM") macdef IPPROTO_COMP = $extval (ipproto_t, "IPPROTO_COMP") macdef IPPROTO_SCTP = $extval (ipproto_t, "IPPROTO_SCTP") macdef IPPROTO_UDPLITE = $extval (ipproto_t, "IPPROTO_UDPLITE") macdef IPPROTO_RAW = $extval (ipproto_t, "IPPROTO_RAW") macdef IPPROTO_MAX = $extval (ipproto_t, "IPPROTO_MAX") // (* ****** ****** *) // macdef IPPORT_ECHO = $extval (in_port_t, "IPPORT_ECHO") macdef IPPORT_DISCARD = $extval (in_port_t, "IPPORT_DISCARD") macdef IPPORT_SYSTAT = $extval (in_port_t, "IPPORT_SYSTAT") macdef IPPORT_DAYTIME = $extval (in_port_t, "IPPORT_DAYTIME") macdef IPPORT_NETSTAT = $extval (in_port_t, "IPPORT_NETSTAT") macdef IPPORT_FTP = $extval (in_port_t, "IPPORT_FTP") macdef IPPORT_TELNET = $extval (in_port_t, "IPPORT_TELNET") macdef IPPORT_SMTP = $extval (in_port_t, "IPPORT_SMTP") macdef IPPORT_TIMESERVER = $extval (in_port_t, "IPPORT_TIMESERVER") macdef IPPORT_NAMESERVER = $extval (in_port_t, "IPPORT_NAMESERVER") macdef IPPORT_WHOIS = $extval (in_port_t, "IPPORT_WHOIS") macdef IPPORT_MTP = $extval (in_port_t, "IPPORT_MTP") macdef IPPORT_TFTP = $extval (in_port_t, "IPPORT_TFTP") macdef IPPORT_RJE = $extval (in_port_t, "IPPORT_RJE") macdef IPPORT_FINGER = $extval (in_port_t, "IPPORT_FINGER") macdef IPPORT_TTYLINK = $extval (in_port_t, "IPPORT_TTYLINK") macdef IPPORT_SUPDUP = $extval (in_port_t, "IPPORT_SUPDUP") macdef IPPORT_EXECSERVER = $extval (in_port_t, "IPPORT_EXECSERVER") macdef IPPORT_LOGINSERVER = $extval (in_port_t, "IPPORT_LOGINSERVER") macdef IPPORT_CMDSERVER = $extval (in_port_t, "IPPORT_CMDSERVER") macdef IPPORT_EFSSERVER = $extval (in_port_t, "IPPORT_EFSSERVER") macdef IPPORT_BIFFUDP = $extval (in_port_t, "IPPORT_BIFFUDP") macdef IPPORT_WHOSERVER = $extval (in_port_t, "IPPORT_WHOSERVER") macdef IPPORT_ROUTESERVER = $extval (in_port_t, "IPPORT_ROUTESERVER") macdef IPPORT_RESERVED = $extval (in_port_t, "IPPORT_RESERVED") macdef IPPORT_USERRESERVED = $extval (in_port_t, "IPPORT_USERRESERVED") // (* ****** ****** *) (* // // for IPv4 dotted-decimal macdef INET_ADDRSTRLEN = 16 // string // macdef INET6_ADDRSTRLEN = 46 // for IPv6 hex string // *) (* ****** ****** *) // fun in_port_nbo_int (int): in_port_nbo_t = "mac#%" fun in_port_nbo_uint (uint): in_port_nbo_t = "mac#%" // symintr in_port_nbo overload in_port_nbo with in_port_nbo_int overload in_port_nbo with in_port_nbo_uint // (* ****** ****** *) // fun in_addr_hbo2nbo (in_addr_hbo_t): in_addr_nbo_t = "mac#%" // (* ****** ****** *) // (* constant addresses in host-byte-order *) // // Address to accept any incoming messages: 0x00000000 // macdef INADDR_ANY = $extval (in_addr_hbo_t, "INADDR_ANY") // // Address to send to all hosts: 0xffffffff // macdef INADDR_BROADCAST = $extval (in_addr_hbo_t, "INADDR_BROADCAST") // // Address indicating an error return: 0xffffffff // macdef INADDR_NONE = $extval (in_addr_hbo_t, "INADDR_NONE") // // Network number for local host loopback // #define IN_LOOPBACKNET 127 // // Address to loopback in software to local host: 127.0.0.1 // macdef INADDR_LOOPBACK = $extval (in_addr_hbo_t, "INADDR_LOOPBACK") // (* ****** ****** *) // (* ** Defined for Multicast *) // // 0xe0000000 // 224.0.0.0 // macdef INADDR_UNSPEC_GROUP = $extval (in_addr_hbo_t, "INADDR_UNSPEC_GROUP") // // 0xe0000001 // 224.0.0.1 // macdef INADDR_ALLHOSTS_GROUP = $extval (in_addr_hbo_t, "INADDR_ALLHOSTS_GROUP") // // 0xe0000002 // 224.0.0.2 // macdef INADDR_ALLRTRS_GROUP = $extval (in_addr_hbo_t, "INADDR_ALLRTRS_GROUP") // // 0xe00000ff // 224.0.0.255 // macdef INADDR_MAX_LOCAL_GROUP = $extval (in_addr_hbo_t, "INADDR_MAX_LOCAL_GROUP") // (* ****** ****** *) // (* ** HX: [in_addr_struct] is taken by C++ *) typedef in_addr_struct = $extype_struct "in_addr_struct" of { s_addr= in_addr_nbo_t // IPv4 address of ulint } (* end of [in_addr_struct] *) // (* ****** ****** *) // (* ** HX: [in6_addr_struct] may be taken by C++ *) typedef in6_addr_struct = $extype_struct "in6_addr_struct" of { s6_addr= @[uint8][16] // IPv6 address of 16 bytes } (* end of [in6_addr_struct] *) (* ****** ****** *) (* end of [in.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/dirent.sats0000644000175000017500000001267213431250607022014 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/dirent.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define RD(x) x // for commenting: read-only #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) // staload TYPES = "libats/libc/SATS/sys/types.sats" // typedef ino_t = $TYPES.ino_t typedef off_t = $TYPES.off_t // (* ****** ****** *) // (* abst@ype DIR_t0ype = $extype"atslib_libats_libc_DIR_type" // = DIR // typedef DIR = DIR_t0ype *) absvtype DIRptr_vtype(l:addr) = ptr vtypedef DIRptr(l:addr) = DIRptr_vtype(l) vtypedef DIRptr0 = [l:addr | l >= null] DIRptr(l) vtypedef DIRptr1 = [l:addr | l > null] DIRptr(l) // absview DIR_view(l:addr) viewdef DIR_v(l:addr) = DIR_view(l) // (* ****** ****** *) // praxi DIRptr_free_null (dirp: DIRptr(null)): void // (* ****** ****** *) // castfn DIRptr2ptr {l:addr} (dirp: !DIRptr(l)):<> ptr(l) // overload ptrcast with DIRptr2ptr // (* ****** ****** *) // abst@ype dirent_t0ype = $extype"atslib_libats_libc_dirent_type" // typedef dirent = dirent_t0ype // (* ****** ****** *) fun{} dirent$PC_NAME_MAX(): intGte(0) // HX: default=256 (* ****** ****** *) // absvtype direntp_vtype(l:addr) = ptr vtypedef direntp(l:addr) = direntp_vtype(l) // vtypedef direntp = [l:addr] direntp(l) vtypedef Direntp0 = [l:agez] direntp(l) vtypedef Direntp1 = [l:addr | l > null] direntp(l) // (* ****** ****** *) // castfn direntp2ptr {l:addr} (x: !direntp(l)):<> ptr(l) // overload ptrcast with direntp2ptr // (* ****** ****** *) castfn direntp_get_viewptr {l:agz} ( x: !direntp l ) :<> ( dirent@l, minus_v(direntp l, dirent@l) | ptr(l) ) // end of [direntp_get_viewptr] (* ****** ****** *) // praxi direntp_free_null(direntp (null)): void // fun direntp_free(x: Direntp0): void = "mac#%" // (* ****** ****** *) // fun dirent_get_d_ino(ent: &RD(dirent)):<> ino_t = "mac#%" // (* ****** ****** *) // fun dirent_get_d_name (ent: &RD(dirent)):<> vStrptr1 = "mac#%" // fun{} dirent_get_d_name_gc(ent: &RD(dirent)): Strptr1 // (* ****** ****** *) // fun direntp_get_d_name (entp: !Direntp1):<> vStrptr1 = "mac#%" // fun{} direntp_get_d_name_gc(entp: !Direntp1): Strptr1 // (* ****** ****** *) // fun{} compare_dirent_string (ent: &RD(dirent), str: NSH(string)):<> int // (* ****** ****** *) // fun opendir(dname: NSH(string)): DIRptr0 = "mac#%" fun opendir_exn(dname: NSH(string)): DIRptr1 = "ext#%" // (* ****** ****** *) // fun closedir{l:agz} ( dirp: !DIRptr (l) >> ptr l ) : [i:int | i <= 0] ( option_v (DIR_v (l), i < 0) | int i ) = "mac#%" // end of [closedir] // fun closedir_exn(dirp: DIRptr1): void = "ext#%" // (* ****** ****** *) fun readdir ( dirp: !DIRptr1 ) : [l:addr] ( option_v(vtakeout0 (dirent@l), l > null) | ptr (l) ) = "mac#%" // end of [readdir] (* ****** ****** *) fun readdir_r ( dirp: !DIRptr1 , ent0: &dirent? >> opt (dirent, l > null) , result: &ptr? >> ptr(l) ) : #[l:addr;i:int | i >= 0] int(i) = "mac#%" fun{} readdir_r_gc (dirp: !DIRptr1): Direntp0 (* ****** ****** *) /* int scandir ( const char *dirp , struct dirent ***namelist , int (*filter)(const struct dirent *) , int (*compar)(const struct dirent **, const struct dirent**) ) ; // end of [scandir] */ fun scandir ( dirp: NSH(string) , names: &(ptr?) >> ptr(*direntpp*) , filter: (&dirent) -> int , compar: (&ptr(*direntp*), &ptr(*direntp*)) -> int ) : int = "mac#%" // end-of-function // fun alphasort // POSIX-2008 (entp1: &ptr, entp2: &ptr):<> int = "mac#%" fun versionsort // GNU-extension (entp1: &ptr, entp2: &ptr):<> int = "mac#%" // (* ****** ****** *) // fun rewinddir (dirp: !DIRptr1): void = "mac#%" // (* ****** ****** *) // fun telldir (dirp: !DIRptr1): off_t = "mac#%" // (* ****** ****** *) // fun seekdir (dirp: !DIRptr1, off: off_t): void = "mac#%" // end of [seekdir] // (* ****** ****** *) // // HX-2016-07-17: Extension // (* ****** ****** *) // fun{} streamize_DIRptr_dirent(DIRptr1): stream_vt(dirent) // (* ****** ****** *) (* end of [dirent.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/string.sats0000644000175000017500000001271513431250607022033 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/string.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) vtypedef RD(a:vt0p) = a // for commenting: read-only #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) fun strcmp (x1: string, x2: string):<> int = "mac#%" fun strncmp (x1: string, x2: string, n: size_t):<> int = "mac#%" (* ****** ****** *) fun strcoll (x1: string, x2: string):<> int = "mac#%" (* ****** ****** *) fun strspn (x1: string, x2: string):<> size_t = "mac#%" fun strcspn (x1: string, x2: string):<> size_t = "mac#%" (* ****** ****** *) // fun strlen {n:int} (x: string n):<> size_t (n) = "mac#%" fun strnlen {m,n:int} (x: string n, max: size_t m):<> size_t (min(m,n)) = "mac#%" // (* ****** ****** *) fun strcat {l:addr}{m:int}{n1,n2:int | n1+n2 < m} ( !strbuf_v (l, m, n1) >> strbuf_v (l, m, n1+n2) | ptr (l), string (n2) ) : ptr (l) = "mac#%" // end of [strcat] fun strcat_unsafe {l:addr} (x1: ptr (l), x2: string): ptr (l) = "mac#%" fun strncat_unsafe {l:addr} (x1: ptr (l), x2: string, n: size_t): ptr (l) = "mac#%" (* ****** ****** *) fun strcpy {l:addr}{m:int}{n:int | n < m} ( !b0ytes(m) @ l >> strbuf_v (l, m, n) | ptr (l), string (n) ) : ptr (l) = "mac#%" // endfun fun strcpy_unsafe {l:addr} (dst: ptr (l), src: string): ptr (l) = "mac#%" fun strncpy_unsafe {l:addr} (dst: ptr (l), src: string, n: size_t): ptr (l) = "mac#%" (* ****** ****** *) absview strdup_view (l:addr) viewdef strdup_v (l:addr) = strdup_view (l) fun strdup ( str: string ) : [l:addr] (strdup_v (l) | strptr (l)) = "mac#%" fun strndup ( str: string ) : [l:addr] (strdup_v (l) | strptr (l)) = "mac#%" fun strdup_free {l:addr} (pf: strdup_v (l) | x: strptr l): void = "mac#%" // end of [strdup_free] (* ****** ****** *) // // HX-2013-03: // strdupa-functions are gcc-functions; // they use alloca for memory allocation // absview strdupa_view (l:addr) viewdef strdupa_v (l:addr) = strdupa_view (l) fun strdupa ( str: string ) : [l:addr] (strdupa_v (l) | strptr (l)) = "mac#%" fun strndupa ( str: string ) : [l:addr] (strdupa_v (l) | strptr (l)) = "mac#%" fun strdupa_free {l:addr} (pf: strdupa_v (l) | x: strptr l): void = "mac#%" // end of [strdupa_free] (* ****** ****** *) fun strfry {l:agz} (x: !strptr (l) >> _): ptr (l) = "mac#%" (* ****** ****** *) // fun memcpy {l:addr} {n1,n2:int} {n:int | n <= n1; n <= n2} ( pf: !b0ytes(n1) @ l >> bytes(n1) @ l | dst: ptr(l), src: &RD(@[byte][n2]), n: size_t(n) ) : ptr (l) = "mac#%" // end of [memcpy] // fun memcpy_unsafe{l:addr} (dst: ptr(l), src: ptr, n: size_t): ptr(l) = "mac#%" // (* ****** ****** *) /* void *memset(void *s, int c, size_t n); */ fun memset_unsafe{l:addr} (dst: ptr (l), c: int, n: size_t): ptr (l) = "mac#%" // (* ****** ****** *) /* void *memmove(void *dest, const void *src, size_t n); */ fun memmove_unsafe{l:addr} (dst: ptr (l), src: ptr, n: size_t): ptr (l) = "mac#%" // (* ****** ****** *) /* void *memccpy(void *dest, const void *src, int c, size_t n); */ fun memccpy_unsafe{l:addr} (dst: ptr (l), src: ptr, c: int, n: size_t): Ptr0 = "mac#%" // (* ****** ****** *) // fun mempcpy {l:addr} {n1,n2:int} {n:int | n <= n1; n <= n2} ( pf: !b0ytes(n1) @ l >> bytes(n1) @ l | dst: ptr (l), src: &RD(@[byte][n2]), n: size_t (n) ) : ptr (l+n) = "mac#%" // end of [mempcpy] // fun mempcpy_unsafe{l:addr}{n:int} (dst: ptr (l), src: ptr, n: size_t (n)): ptr (l+n) = "mac#%" // (* ****** ****** *) // // HX: This one is non-reentrant: // fun strerror (errnum: int): [l:agz] vttakeout0 (strptr l) = "mac#%" // end of [strerror] (* ****** ****** *) /* int strerror_r(int errnum, char *buf, size_t buflen); */ fun strerror_r{n:int} (errnum: int, buf: &bytes(n), n: size_t (n)):<> int = "mac#%" // end of [strerror_r] (* ****** ****** *) fun strerror_r_gc (errnum: int):<> Strptr1 = "ext#%" (* ****** ****** *) (* end of [string.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/stdio.sats0000644000175000017500000006011013431250607021637 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: April, 2011 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/stdio.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define RD(x) x // for commenting: read-only typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) sortdef fm = file_mode (* ****** ****** *) stadef r() = file_mode_r() stadef w() = file_mode_w() stadef rw() = file_mode_rw() (* ****** ****** *) // staload TYPES = "libats/libc/SATS/sys/types.sats" // stadef fildes = $TYPES.fildes stadef fildes_v = $TYPES.fildes_v // (* ****** ****** *) (* abstype FILEref = ptr // declared in [prelude/basic_dyn.sats] *) (* ****** ****** *) // // HX-2011-04-02: // absview FILE_view(l:addr, m:fm) absvtype FILEptr_vtype(addr, fm) = ptr // viewdef FILE_v(l:addr, m:fm) = FILE_view(l, m) vtypedef FILEptr(l:addr, m: fm) = FILEptr_vtype(l, m) // (* ****** ****** *) // vtypedef FILEptr0(m:fm) = [l:addr | l >= null] FILEptr(l, m) // vtypedef FILEptr1(m:fm) = [l:agz] FILEptr(l, m) vtypedef FILEptr1(*none*) = [l:agz;m:fm] FILEptr(l, m) // (* ****** ****** *) stadef fmlte = file_mode_lte (* ****** ****** *) // castfn FILEptr2ptr {l:addr}{m:fm}(filp: !FILEptr(l, m)):<> ptr(l) // overload ptrcast with FILEptr2ptr // (* ****** ****** *) // fun // macro FILEptr_is_null {l:addr}{m:fm} (filp: !FILEptr(l, m)):<> bool(l == null) = "mac#%" fun // macro FILEptr_isnot_null {l:addr}{m:fm} (filp: !FILEptr(l, m)):<> bool(l != null) = "mac#%" // overload iseqz with FILEptr_is_null overload isneqz with FILEptr_isnot_null // (* ****** ****** *) castfn FILEptr_encode {l:addr}{m:fm} ( pf: FILE_v(l, m) | p: ptr(l) ) : FILEptr(l, m) overload encode with FILEptr_encode castfn FILEptr_decode {l:agz}{m:fm} ( p0: FILEptr(l, m) ) : (FILE_v(l, m) | ptr(l)) overload decode with FILEptr_decode (* ****** ****** *) praxi FILEptr_free_null {l:alez}{m:fm}(p0: FILEptr(l, m)): void // end of [FILEptr_free_null] (* ****** ****** *) castfn FILEptr_refize(filp: FILEptr1):<> FILEref (* ****** ****** *) // // HX: // A lock is associated with each FILEref-value // castfn FILEref_vttakeout {m:fm} (filr: FILEref):<> [l:agz] vttakeout0(FILEptr(l, m)) // end of [FILEref_vttakeout] // (* ****** ****** *) // abst@ype whence_type = int // typedef whence = whence_type // macdef SEEK_SET = $extval(whence, "SEEK_SET") macdef SEEK_CUR = $extval(whence, "SEEK_CUR") macdef SEEK_END = $extval(whence, "SEEK_END") // (* ****** ****** *) (* // // FILE *fopen (const char *path, const char *mode); // The fopen function opens the file whose name is the string pointed to by path and associates a stream with it. The argument mode points to a string beginning with one of the follow ing sequences (Additional characters may follow these sequences.): r Open text file for reading. The stream is positioned at the beginning of the file. r+ Open for reading and writing. The stream is positioned at the beginning of the file. w Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file. w+ Open for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file. a Open for appending (writing at end of file). The file is created if it does not exist. The stream is positioned at the end of the file. a+ Open for reading and appending (writing at end of file). The file is created if it does not exist. The stream is positioned at the end of the file. *) fun fopen{m:fm} ( path: NSH(string), fmode(m) ) : FILEptr0(m) = "mac#%" fun fopen_exn{m:fm} ( path: NSH(string), fmode(m) ) : FILEptr1(m) = "ext#%" fun fopen_ref_exn{m:fm} ( path: NSH(string), fmode(m) ) : FILEref(*none*) = "ext#%" (* ****** ****** *) // symintr fclose symintr fclose_exn // fun fclose0 ( filr: FILEref ) : int = "mac#%" fun fclose1 {l:addr}{m:fm} ( filp: !FILEptr(l, m) >> ptr(l) ) : [i:int | i <= 0] ( option_v (FILE_v (l, m), i < 0) | int i ) = "mac#%" // endfun // overload fclose with fclose0 overload fclose with fclose1 // fun fclose0_exn (filr: FILEref): void = "ext#%" fun fclose1_exn (filp: FILEptr1(*none*)): void = "ext#%" // overload fclose_exn with fclose0_exn overload fclose_exn with fclose1_exn // (* ****** ****** *) (* fun fclose_stdin (): void = "ext#%" fun fclose_stdout (): void = "ext#%" fun fclose_stderr (): void = "ext#%" *) (* ****** ****** *) (* // // FILE *freopen (const char *path, const char *mode, FILE *stream); // The [freopen] function opens the file whose name is the string pointed to by path and associates the stream pointed to by stream with it. The original stream (if it exists) is closed. The mode argument is used just as in the fopen function. The primary use of the freopen function is to change the file associated with a standard text stream (stderr, stdin, or stdout). // *) // symintr freopen symintr freopen_exn // fun freopen0{m2:fm} ( path: NSH(string) , mode: fmode(m2), filr: FILEref ) : Ptr0 = "mac#%" // // HX-2012-07: // the original stream is closed even if [freopen] fails. // fun freopen1 {m1,m2:fm}{l0:addr} ( path: NSH(string) , mode: fmode(m2), filp: FILEptr(l0, m1) ) : [ l:addr | l==null || l==l0 ] ( option_v(FILE_v(l, m2), l > null) | ptr(l) ) = "mac#%" // end of [freopen1] // fun freopen0_exn{m2:fm} ( path: NSH(string), mode: fmode(m2), filr: FILEref ) : void = "ext#%" // end of [freopen0_exn] // overload freopen with freopen0 overload freopen with freopen1 overload freopen_exn with freopen0_exn // (* ****** ****** *) (* fun freopen_stdin (path: NSH(string)): void = "ext#%" // end of [freopen_stdin] fun freopen_stdout (path: NSH(string)): void = "ext#%" // end of [freopen_stdout] fun freopen_stderr (path: NSH(string)): void = "ext#%" // end of [freopen_stderr] *) (* ****** ****** *) (* // // int fileno (FILE* filp) ; // The function fileno examines the argument stream and returns its integer descriptor. In case fileno detects that its argument is not a valid stream, it must return -1 and set errno to EBADF. *) // fun fileno0(filr: FILEref):<> int = "mac#%" fun fileno1(filp: !FILEptr1(*none*)):<> int = "mac#%" // symintr fileno overload fileno with fileno0 overload fileno with fileno1 // (* ****** ****** *) // (* // // HX-2011-08 // *) dataview fdopen_v ( fd:int, addr, m: fmode ) = (* fdopen_v *) | {l:agz} fdopen_v_succ(fd, l, m) of FILE_v(l, m) | fdopen_v_fail(fd, null, m) of fildes_v(fd) // end of [fdopen_v] // fun fdopen {fd:int}{m:fm} ( fd: fildes(fd), m: fmode(m) ) : [l:agez] ( fdopen_v(fd, l, m) | ptr(l) ) = "mac#%" // end of [fdopen] // fun fdopen_exn {fd:int}{m:fm} (fd: fildes(fd), m: fmode (m)): FILEptr1(m) = "ext#%" // end of [fdopen_exn] // (* ****** ****** *) (* // // int feof (FILE *stream); // The function feof() returns a nonzero value if the end of the given file stream has been reached. // *) // fun feof0 (filr: FILEref):<> int = "mac#%" fun feof1 (filp: !FILEptr1(*none*)):<> int = "mac#%" // symintr feof overload feof with feof0 overload feof with feof1 // (* ****** ****** *) (* // // int ferror (FILE *stream); // The function [ferror] tests the error indicator for the stream pointed to by stream, returning non-zero if it is set. The error indicator can only be reset by the [clearerr] function. *) // fun ferror0 (filr: FILEref):<> int = "mac#%" fun ferror1 (filp: !FILEptr1(*none*)):<> int = "mac#%" // symintr ferror overload ferror with ferror0 overload ferror with ferror1 // (* ****** ****** *) (* // // void clearerr (FILE *stream); // The function [clearerr] clears the end-of-file and error indicators for the stream pointed to by stream. // *) // fun clearerr0 (filr: FILEref): void = "mac#%" fun clearerr1 (filp: !FILEptr1(*none*)): void = "mac#%" // symintr clearerr overload clearerr with clearerr0 overload clearerr with clearerr1 // (* ****** ****** *) (* // // int fflush (FILE *stream); // The function fflush forces a write of all user-space buffered data for the given output or update stream via the streams underlying write function. The open status of the stream is unaffected. // Upon successful completion 0 is returned. Otherwise, EOF is returned and the global variable errno is set to indicate the error. *) // fun fflush0 (out: FILEref): int = "mac#%" fun fflush1{m:fm} ( pf: fmlte(m, w) | out: !FILEptr1(m) ) : [i:int | i <= 0] int(i) = "mac#%" // fun fflush0_exn (out: FILEref): void = "ext#%" // symintr fflush symintr fflush_exn overload fflush with fflush0 overload fflush with fflush1 overload fflush_exn with fflush0_exn // (* ****** ****** *) // fun fflush_all (): void = "ext#%" fun fflush_stdout (): void = "ext#%" // (* ****** ****** *) (* // // int fgetc (FILE *stream) // [fgetc] reads the next character from stream and returns it as an unsigned char cast to an int, or EOF on end of file or error. Note that EOF must be a negative number! // *) // fun fgetc0 (inp: FILEref): int = "mac#%" fun fgetc1 {m:fm} ( pf: fmlte(m, r()) | inp: !FILEptr1(m) ) : intLte (UCHAR_MAX) = "mac#%" // symintr fgetc overload fgetc with fgetc0 overload fgetc with fgetc1 // (* ****** ****** *) macdef getc = fgetc (* ****** ****** *) fun getchar0(): int = "mac#%" fun getchar1(): [i:int|i <= UCHAR_MAX] int(i) = "mac#%" (* ****** ****** *) // fun fgets0 {sz:int}{n0:pos | n0 <= sz} ( buf: &b0ytes(sz) >> bytes(sz), n0: int n0, inp: FILEref ) : Ptr0 = "mac#%" // = addr@(buf) or NULL fun fgets1 {sz:int}{n0:pos | n0 <= sz}{m:fm} ( pfm: fmlte (m, r) | buf: &b0ytes(sz) >> bytes(sz), n0: int n0, inp: !FILEptr1(m) ) : Ptr0 = "mac#%" // = addr@(buf) or NULL // symintr fgets overload fgets with fgets0 overload fgets with fgets1 // (* ****** ****** *) // dataview fgets_v ( sz:int, n0: int, addr, addr ) = (* fgets_v *) | {l0:addr} fgets_v_fail (sz, n0, l0, null) of b0ytes(sz) @ l0 | {n:nat | n < n0} {l0:agz} fgets_v_succ (sz, n0, l0, l0) of strbuf(sz, n) @ l0 // end of [fgets_v] // fun fgets1_err {sz,n0:int | 0 < n0 ; n0 <= sz} {l0:addr}{m:fm} ( pf_mod: fmlte(m, r) , pf_buf: b0ytes(sz)@l0 | p0: ptr(l0), n0: int(n0), inp: !FILEptr1(m) ) :<> [l1:addr] (fgets_v(sz, n0, l0, l1) | ptr(l1)) = "mac#%" // end of [fgets_err] // overload fgets with fgets1_err // (* ****** ****** *) // // HX-2013-05: // A complete line is read each time // [nullp] for error // fun fgets0_gc (bsz: intGte(1), inp: FILEref): Strptr0 = "ext#%" fun fgets1_gc{m:fm} ( pf_mod: fmlte (m, r) | bsz: intGte(1), inp: FILEptr1(m) ) : Strptr0 = "ext#%" // end of [fget1_gc] // (* ****** ****** *) (* // // int fgetpos(FILE *stream, fpos_t *pos); // The [fgetpos] function stores the file position indicator of the given file stream in the given position variable. The position variable is of type fpos_t (which is defined in stdio.h) and is an object that can hold every possible position in a FILE. [fgetpos] returns zero upon success, and a non-zero value upon failure. // *) // abst@ype fpos_t = $extype"ats_fpos_type" // fun fgetpos0 ( filp: FILEref, pos: &fpos_t? >> opt (fpos_t, i==0) ) : #[i:int | i <= 0] int (i) = "mac#%" fun fgetpos1 ( filp: !FILEptr1, pos: &fpos_t? >> opt (fpos_t, i==0) ) : #[i:int | i <= 0] int (i) = "mac#%" // fun fgetpos0_exn (filp: FILEref, pos: &fpos_t? >> _) : void = "ext#%" // symintr fgetpos symintr fgetpos_exn overload fgetpos with fgetpos0 overload fgetpos with fgetpos1 overload fgetpos_exn with fgetpos0_exn // (* ****** ****** *) (* // // int fputc (int c, FILE *stream) // The function [fputc] writes the given character [c] to the given output stream. The return value is the character, unless there is an error, in which case the return value is EOF. // *) // typedef fputc0_type (a:t0p) = (a, FILEref) -<0,!wrt> int // fun fputc0_int : fputc0_type (int) = "mac#%" fun fputc0_char : fputc0_type (char) = "mac#%" // symintr fputc overload fputc with fputc0_int of 0 overload fputc with fputc0_char of 0 // typedef fputc1_type (a:t0p) = {m:fm} ( fmlte (m, w()) | a, !FILEptr1 (m) ) -<0,!wrt> intLte (UCHAR_MAX) fun fputc1_int : fputc1_type (int) = "mac#%" fun fputc1_char : fputc1_type (char) = "mac#%" overload fputc with fputc1_int of 10 overload fputc with fputc1_char of 10 // typedef fputc0_exn_type (a:t0p) = (a, FILEref) -<0,!exnwrt> void // fun fputc0_exn_int : fputc0_exn_type (int) = "ext#%" fun fputc0_exn_char : fputc0_exn_type (char) = "ext#%" // symintr fputc_exn overload fputc_exn with fputc0_exn_int of 0 overload fputc_exn with fputc0_exn_char of 0 // (* ****** ****** *) macdef putc = fputc (* ****** ****** *) // fun putchar0 (c: int): int = "mac#%" fun putchar1 (c: int): [i:int|i <= UCHAR_MAX] int(i) = "mac#%" // end of [putchar1] // (* ****** ****** *) (* // // int fputs (const char* s, FILE *stream) // The function [fputs] writes a string to a file. it returns a non-negative number on success, or EOF on error. *) // // fun fputs0 ( str: NSH(string), fil: FILEref ) : int = "mac#%" fun fputs1{m:fm} ( pf: fmlte(m, w()) | str: NSH(string), out: !FILEptr1(m) ) : int = "mac#%" // fun fputs0_exn (str: NSH(string), fil: FILEref): void = "ext#%" // symintr fputs symintr fputs_exn overload fputs with fputs0 overload fputs with fputs1 overload fputs_exn with fputs0_exn // (* ****** ****** *) // // [puts] puts a newline at the end // fun puts(inp: NSH(string)): int = "mac#%" // fun puts_exn(inp: NSH(string)): void = "ext#%" // (* ****** ****** *) (* // // size_t fread (void *ptr, size_t size, size_t nmemb, FILE *stream); // The function [fread] reads [nmemb] elements of data, each [size] bytes long, from the stream pointed to by stream, storing them at the location given by ptr. The return value is the number of items that are actually read. // [fread] does not distinguish between end-of-file and error, and callers must use [feof] and [ferror] to determine which occurred. // *) // fun fread0 // [isz]: the size of each item {isz:pos} {nbf:int} {n:int | n*isz <= nbf} ( buf: &bytes(nbf) >> _ , isz: size_t isz, n: size_t n , inp: FILEref(*none*) ) : sizeLte n = "mac#%" fun fread1 // [isz]: the size of each item {isz:pos} {nbf:int} {n:int | n*isz <= nbf} {m:fm} ( pfm: fmlte (m, r) | buf: &bytes(nbf) >> _ , isz: size_t isz, n: size_t n , inp: !FILEptr1 (m) ) : sizeLte n = "mac#%" // fun fread0_exn // [isz]: the size of each item {isz:pos} {nbf:int} {n:int | n*isz <= nbf} ( buf: &bytes(nbf) >> _, isz: size_t isz, n: size_t n, inp: FILEref ) : sizeLte n = "ext#%" // endfun // symintr fread symintr fread_exn overload fread with fread0 overload fread with fread1 overload fread_exn with fread0_exn // (* ****** ****** *) (* // // size_t fwrite ( // const void *ptr, size_t size, size_t nmemb, FILE *stream // ) ; // The function [fwrite] writes [nmemb] elements of data, each [size] bytes long, to the stream pointed to by stream, obtaining them from the location given by [ptr]. The return value is the number of items that are actually written. // *) // fun fwrite0 // [isz]: the size of each item {isz:pos} {nbf:int} {n:int | n*isz <= nbf} ( buf: &RD(bytes(nbf)) , isz: size_t isz, n: size_t n , out: FILEref ) : sizeLte (n) = "mac#%" fun fwrite1 // [isz]: the size of each item {isz:pos} {nbf:int} {n:int | n*isz <= nbf} {m:fm} ( pfm: fmlte(m, w()) | buf: &RD(bytes(nbf)) , isz: size_t isz, n: size_t n , out: !FILEptr1 (m) ) : sizeLte (n) = "mac#%" // fun fwrite0_exn // [isz]: the size of each item {isz:pos} {nbf:int} {n:int | n*isz <= nbf} ( buf: &RD(bytes(nbf)) , isz: size_t isz, n: size_t n , out: FILEref(*none*) ) : sizeLte (n) = "ext#%" // symintr fwrite symintr fwrite_exn overload fwrite with fwrite0 overload fwrite with fwrite1 overload fwrite_exn with fwrite0_exn // (* ****** ****** *) (* // // int fseek (FILE *stream, long offset, int whence) // The [fseek] function sets the file position indicator for the stream pointed to by stream. The new position, measured in bytes, is obtained by adding offset bytes to the position specified by whence. If whence is set to [SEEK_SET], [SEEK_CUR], or [SEEK_END], the offset is relative to the start of the file, the current position indicator, or end-of-file, respectively. A successful call to the [fseek] function clears the end- of-file indicator for the stream and undoes any effects of the [ungetc] function on the same stream. Upon success, [fseek] returns 0. Otherwise, it returns -1. // *) // fun fseek0 ( filr: FILEref, offset: lint, whence: whence ) : int = "mac#%" fun fseek1 ( filp: !FILEptr1, offset: lint, whence: whence ) : int = "mac#%" // fun fseek0_exn ( filr: FILEref, offset: lint, whence: whence ) : void = "ext#%" // symintr fseek symintr fseek_exn overload fseek with fseek0 overload fseek with fseek1 overload fseek_exn with fseek0_exn // (* ****** ****** *) (* // // void fsetpos(FILE *stream, const fpos_t *pos); // The [fsetpos] function moves the file position indicator for the given stream to a location specified by the position object. The type fpos_t is defined in stdio.h. The return value for fsetpos() is zero upon success, non-zero on failure. // *) // fun fsetpos0 (filp: FILEref(*none*), pos: &RD(fpos_t)): int = "mac#%" fun fsetpos1 (filp: !FILEptr1(*none*), pos: &RD(fpos_t)): int = "mac#%" // fun fsetpos0_exn (filp: FILEref(*none*), pos: &RD(fpos_t)): void = "ext#%" // symintr fsetpos symintr fsetpos_exn overload fsetpos with fsetpos0 overload fsetpos with fsetpos1 overload fsetpos_exn with fsetpos0_exn // (* ****** ****** *) (* // // long ftell (FILE *stream) // [ftell] returns the current offset of the given file stream upon on success. Otherwise, -1 is returned and the global variable errno is set to indicate the error. // *) // fun ftell0 (filr: FILEref): lint = "mac#%" fun ftell1 (filp: !FILEptr1): lint = "mac#%" // fun ftell0_exn (filr: FILEref): lint = "ext#%" // symintr ftell symintr ftell_exn overload ftell with ftell0 overload ftell with ftell1 overload ftell_exn with ftell0_exn // (* ****** ****** *) (* // // perror - print a system error message // The routine [perror(s)] produces a message on the standard error output, describing the last error encountered during a call to a system or library function. First (if s is not NULL and *s is not NULL) the argument string s is printed, followed by a colon and a blank. Then the message and a newline. // *) fun perror (msg: NSH(string)): void = "mac#%" // end of [perror] // (* ****** ****** *) // abstype pmode_type(m:fm) = string typedef pmode(m:fm) = pmode_type(m) // absview popen_view(l:addr) viewdef popen_v(l:addr) = popen_view(l) // praxi popen_v_free_null (pf: popen_v (null)): void // fun popen{m:fm} ( cmd: NSH(string), mode: pmode (m) ) : [l:addr] (popen_v (l) | FILEptr (l, m)) // fun popen_exn{m:fm} ( cmd: NSH(string), mode: pmode (m) ) : FILEref = "ext#%" // endfun // fun pclose0_exn (filr: FILEref): int = "ext#%" fun pclose1_exn {l:agz}{m:fm} (pf: popen_v l | filr: FILEptr (l, m)): int= "ext#%" // end of [pclose1_exn] // (* ****** ****** *) // fun remove (inp: NSH(string)): int = "mac#%" fun remove_exn (inp: NSH(string)): void = "ext#%" // (* ****** ****** *) fun rename ( oldpath: NSH(string), newpath: NSH(string) ) : int = "mac#%" // end of [fun] fun rename_exn ( oldpath: NSH(string), newpath: NSH(string) ) : void = "ext#%" // end of [fun] (* ****** ****** *) (* // HX: [rewind] generates no error *) // fun rewind0 (fil: FILEref): void = "mac#%" // fun rewind1 (fil: !FILEptr1(*none*)): void = "mac#%" // symintr rewind overload rewind with rewind0 overload rewind with rewind1 // (* ****** ****** *) // fun tmpfile() : FILEptr0 (rw()) = "mac#%" // fun tmpfile_exn() : FILEptr1 (rw()) = "ext#%" // fun tmpfile_ref_exn() : FILEref(*none*) = "ext#%" // (* ****** ****** *) (* // // int ungetc(int c, FILE *stream); // [ungetc] pushes [c] back to stream, cast to unsigned char, where it is available for subsequent read operations. Pushed-back characters will be returned in reverse order; only one pushback is guaranteed. // *) // fun ungetc0 (c: char, f: FILEref): int = "mac#%" fun ungetc1 {l:agz}{m:fm} ( pfm: fmlte (m, rw()) | c: char, f: !FILEptr (l, m) ) : [i:int | i <= UCHAR_MAX] int (i) = "mac#%" // fun ungetc0_exn (c: char, f: FILEref) : void = "ext#%" // symintr ungetc symintr ungetc_exn overload ungetc with ungetc0 overload ungetc with ungetc1 overload ungetc_exn with ungetc0_exn // (* ****** ****** *) // stacst BUFSIZ : int // praxi BUFSIZ_gtez (): [BUFSIZ >= 0] void // macdef BUFSIZ = $extval(int(BUFSIZ), "BUFSIZ") // (* ****** ****** *) // abst@ype bufmode_t = int // macdef _IOFBF = $extval(bufmode_t, "_IOFBF") // fully buffered macdef _IOLBF = $extval(bufmode_t, "_IOLBF") // buffered by line macdef _IONBF = $extval(bufmode_t, "_IONBF") // there is no buffering // (* ****** ****** *) // fun setbuf0_null (f: FILEref): void = "mac#%" fun setbuf1_null (f: !FILEptr1(*none*)): void = "mac#%" // symintr setbuf_null overload setbuf_null with setbuf0_null overload setbuf_null with setbuf1_null // (* ****** ****** *) (* // // HX-2010-10-03: // the buffer can be freed only after it is no longer used by // the stream to which it is attached!!! *) // fun setbuffer0 {n1,n2:nat | n2 <= n1}{l:addr} ( pf_buf: !b0ytes(n1)@l | filr: FILEref, p_buf: ptr(l), n2: size_t(n2) ) : void = "mac#%" // fun setbuffer1 { n1 , n2: nat | n2 <= n1 }{lbf:addr} ( pf_buf: !b0ytes(n1)@lbf | filp: !FILEptr1(*none*), p_buf: ptr(lbf), n2: size_t(n2) ) : void = "mac#%" // symintr setbuffer overload setbuffer with setbuffer0 overload setbuffer with setbuffer1 // (* ****** ****** *) // fun setlinebuf0 (f: FILEref): void = "mac#%" fun setlinebuf1 (f: !FILEptr1(*none*)): void = "mac#%" // symintr setlinebuf overload setlinebuf with setlinebuf0 overload setlinebuf with setlinebuf1 // (* ****** ****** *) // fun setvbuf0_null (f: FILEref, mode: bufmode_t): int = "mac#%" fun setvbuf1_null (f: !FILEptr1(*none*), mode: bufmode_t): int = "mac#%" // symintr setvbuf_null overload setvbuf_null with setvbuf0_null overload setvbuf_null with setvbuf1_null // (* ****** ****** *) // fun setvbuf0 { n1 , n2:nat | n2 <= n1 }{lbf:addr} ( pf: !b0ytes(n1)@lbf | filr: FILEref, mode: bufmode_t, n2: size_t(n2) ) : int = "mac#%" fun setvbuf1 { n1 , n2 : nat | n2 <= n1 }{lbf:addr} ( pf: !b0ytes(n1) @ lbf | filp: !FILEptr1(*none*), mode: bufmode_t, n2: size_t(n2) ) : int = "mac#%" // symintr setvbuf overload setvbuf with setvbuf0 overload setvbuf with setvbuf1 // (* ****** ****** *) (* end of [stdio.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/dlfcn.sats0000644000175000017500000000545113431250607021612 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: December, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/dlfcn.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define RD(x) x // for commenting: read-only #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) // macdef RTLD_NOW = $extval (uint, "RTLD_NOW") macdef RTLD_LAZY = $extval (uint, "RTLD_LAZY") // (* ****** ****** *) // macdef RTLD_LOCAL = $extval (uint, "RTLD_LOCAL") macdef RTLD_GLOBAL = $extval (uint, "RTLD_GLOBAL") macdef RTLD_NOLOAD = $extval (uint, "RTLD_NOLOAD") // glibc-2.2 macdef RTLD_NODELETE = $extval (uint, "RTLD_NODELETE") // glibc-2.2 macdef RTLD_DEEPBIND = $extval (uint, "RTLD_DEEPBIND") // glibc-2.3.4 // (* ****** ****** *) absview dlopen_v (l:addr) (* ****** ****** *) fun dlopen ( filename: NSH(stropt), flag: uint ) : [l:addr] (option_v (dlopen_v(l), l > null) | ptr l) = "mac#%" (* ****** ****** *) fun dlclose{l:agz} (pf: dlopen_v (l) | p: ptr (l)): [i:int | i >= 0] int(i) = "mac#%" // end of [dlclose] (* ****** ****** *) // praxi dlopen_v_elim_null{l:addr | l <= null} (pf: dlopen_v (l)): void // (* ****** ****** *) fun dlerror ((*void*)): vStrptr0 = "mac#%" (* ****** ****** *) // fun dlsym{l:agz} (pf: !dlopen_v l | handle: ptr l, sym: NSH(string)): Ptr0 = "mac#%" // (* ****** ****** *) (* end of [dlfcn.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/fnmatch.sats0000644000175000017500000000752113431250607022144 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/fnmatch.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define RD(x) x // for commenting: read-only #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) // macdef FNM_MATCH = 0 // HX: match is found macdef FNM_NOMATCH = $extval(int, "FNM_NOMATCH") // HX: no match is found // (* ****** ****** *) typedef fnmflags = int (* ****** ****** *) (* FNM_NOESCAPE If this flag is set, treat backslash as an ordinary character, instead of an escape character. *) macdef FNM_NOESCAPE = $extval(fnmflags, "FNM_NOESCAPE") (* FNM_PATHNAME If this flag is set, match a slash in string only with a slash in pattern and not by an asterisk '*' or a question mark (?) metacharacter, nor by a bracket expression ([]) containing a slash. *) macdef FNM_PATHNAME = $extval(fnmflags, "FNM_PATHNAME") (* FNM_PERIOD If this flag is set, a leading period in string has to be matched exactly by a period in pattern. A period is considered to be leading if it is the first character in string, or if both FNM_PATHNAME is set and the period immediately follows a slash. *) macdef FNM_PERIOD = $extval(fnmflags, "FNM_PERIOD") (* FNM_FILE_NAME This is a GNU synonym for FNM_PATHNAME. *) macdef FNM_FILE_NAME = $extval(fnmflags, "FNM_FILE_NAME") (* FNM_LEADING_DIR If this flag (a GNU extension) is set, the pattern is considered to be matched if it matches an initial segment of string which is followed by a slash. This flag is mainly for the internal use of glibc and is only implemented in certain cases. *) macdef FNM_LEADING_DIR = $extval(fnmflags, "FNM_LEADING_DIR") (* FNM_CASEFOLD If this flag (a GNU extension) is set, the pattern is matched case-insensitively. *) macdef FNM_CASEFOLD = $extval(fnmflags, "FNM_CASEFOLD") (* ****** ****** *) // fun fnmatch_null ( pattern: NSH(string), fname: NSH(string) ) :<> int = "mac#%" // end of [fnmatch] // fun fnmatch_flags ( pattern: NSH(string), fname: NSH(string), flags: fnmflags ) :<> int = "mac#%" // end of [fnmatch] // symintr fnmatch overload fnmatch with fnmatch_null overload fnmatch with fnmatch_flags // (* ****** ****** *) (* end of [fnmatch.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/.keeper0000644000175000017500000000000013431250607021065 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/unistd_pathconf.sats0000644000175000017500000000577213431250607023722 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2012 *) (* ****** ****** *) typedef pathconfname = int (* ****** ****** *) // fun pathconf (path: NSH(string), name: pathconfname): lint = "mac#%" // fun fpathconf (fd: int, name: pathconfname): lint = "mac#%" // (* ****** ****** *) macdef _PC_LINK_MAX = $extval (pathconfname, "_PC_LINK_MAX") macdef _PC_MAX_CANON = $extval (pathconfname, "_PC_MAX_CANON") macdef _PC_MAX_INPUT = $extval (pathconfname, "_PC_MAX_INPUT") macdef _PC_NAME_MAX = $extval (pathconfname, "_PC_NAME_MAX") macdef _PC_PATH_MAX = $extval (pathconfname, "_PC_PATH_MAX") macdef _PC_PIPE_BUF = $extval (pathconfname, "_PC_PIPE_BUF") macdef _PC_CHOWN_RESTRICTED = $extval (pathconfname, "_PC_CHOWN_RESTRICTED") macdef _PC_NO_TRUNC = $extval (pathconfname, "_PC_NO_TRUNC") macdef _PC_VDISABLE = $extval (pathconfname, "_PC_VDISABLE") macdef _PC_SYNC_IO = $extval (pathconfname, "_PC_SYNC_IO") macdef _PC_ASYNC_IO = $extval (pathconfname, "_PC_ASYNC_IO") macdef _PC_PRIO_IO = $extval (pathconfname, "_PC_PRIO_IO") macdef _PC_SOCK_MAXBUF = $extval (pathconfname, "_PC_SOCK_MAXBUF") macdef _PC_FILESIZEBITS = $extval (pathconfname, "_PC_FILESIZEBITS") macdef _PC_REC_INCR_XFER_SIZE = $extval (pathconfname, "_PC_REC_INCR_XFER_SIZE") macdef _PC_REC_MAX_XFER_SIZE = $extval (pathconfname, "_PC_REC_MAX_XFER_SIZE") macdef _PC_REC_MIN_XFER_SIZE = $extval (pathconfname, "_PC_REC_MIN_XFER_SIZE") macdef _PC_REC_XFER_ALIGN = $extval (pathconfname, "_PC_REC_XFER_ALIGN") macdef _PC_ALLOC_SIZE_MIN = $extval (pathconfname, "_PC_ALLOC_SIZE_MIN") macdef _PC_SYMLINK_MAX = $extval (pathconfname, "_PC_SYMLINK_MAX") macdef _PC_2_SYMLINK = $extval (pathconfname, "_PC_2_SYMLINK") (* ****** ****** *) (* end of [unistd_pathconf.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/strings.sats0000644000175000017500000000451713431250607022217 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/strings.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) // fun index_int(cs: string, c0: int):<> Ptr0 = "mac#%" fun index_char(cs: string, c0: char):<> Ptr0 = "mac#%" // symintr index overload index with index_int overload index with index_char // (* ****** ****** *) // fun rindex_int(cs: string, c0: int):<> Ptr0 = "mac#%" fun rindex_char(cs: string, c0: char):<> Ptr0 = "mac#%" // symintr rindex overload rindex with rindex_int overload rindex with rindex_char // (* ****** ****** *) // fun strcasecmp (x1: string, x2: string):<> int = "mac#%" fun strncasecmp (x1: string, x2: string, n: size_t):<> int = "mac#%" // (* ****** ****** *) (* end of [strings.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/unistd.sats0000644000175000017500000002213513431250607022030 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: April, 2012 *) (* ****** ****** *) %{# #include \ "libats/libc/CATS/unistd.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) #define SHR(x) x // SHARED // HX: for commenting #define NSH(x) x // NSHARED // HX: for commenting (* ****** ****** *) typedef interr = int (* ****** ****** *) // staload TYPES = "libats/libc/SATS/sys/types.sats" // typedef off_t = $TYPES.off_t // typedef pid_t = $TYPES.pid_t typedef uid_t = $TYPES.uid_t typedef gid_t = $TYPES.gid_t // stadef fildes_v = $TYPES.fildes_v // vtypedef fildes (i:int) = $TYPES.fildes (i) // vtypedef Fildes = $TYPES.Fildes vtypedef Fildes0 = $TYPES.Fildes0 // (* ****** ****** *) macdef STDIN_FILENO = $extval(int, "STDIN_FILENO") macdef STDOUT_FILENO = $extval(int, "STDOUT_FILENO") macdef STDERR_FILENO = $extval(int, "STDERR_FILENO") (* ****** ****** *) /* int close (int); */ symintr close symintr close_exn // fun close0 (fd: int): interr = "mac#%" // // HX-2013-03-25: should this be moved to unistd.sats? // dataview close_v (fd:int, int) = | close_v_succ (fd, 0) of () | {i:int | i < 0} close_v_fail (fd, i) of fildes_v (fd) // fun close1{fd:nat} (fd: fildes (fd)): [i:int] (close_v (fd, i) | int i) = "mac#%" // overload close with close0 overload close with close1 // fun close0_exn (fd: int): void = "ext#%" fun close1_exn (fd: Fildes0): void = "ext#%" // overload close_exn with close0_exn overload close_exn with close1_exn // (* ****** ****** *) fun dup (fildes: int): int = "mac#%" fun dup_fildes (fd: !Fildes0): Fildes = "mac#%" (* ****** ****** *) // fun dup2 (fildes: int, fildes2: int): int = "mac#%" // // HX-2013-05: // this one requires that [fd2] be not in use // fun dup2_fildes{fd2:nat} (fd: !Fildes0, fd2: int (fd2)): Fildes = "mac#%" // (* ****** ****** *) // // HX: this one requires -D_GNU_SOURCE // fun dup3 (fildes: int, fildes2: int, flags: int): int = "mac#%" // (* ****** ****** *) // fun execv {n:pos}{l:addr} ( pf: !parray_v (string, l, n) | path: NSH(string), argv: ptr l ) : intLt(0) = "mac#atslib_libats_libc_execv" fun execv_unsafe // HX: for failure, ~1 is returned (path: NSH(string), argv: ptr): intLt(0) = "mac#atslib_libats_libc_execv" // fun execvp {n:pos}{l:addr} ( pf: !parray_v (string, l, n) | fname: NSH(string), argv: ptr l ) : intLt(0) = "mac#atslib_libats_libc_execvp" fun execvp_unsafe // HX: for failure, ~1 is returned (fname: NSH(string), argv: ptr): intLt(0) = "mac#atslib_libats_libc_execvp" // (* ****** ****** *) /* // // HX: for failure, ~1 is returned // int execve ( const char *filename , char *const argv[], char *const envp[] ) ; */ fun execve {n1,n2:pos} {l1,l2:addr} ( pf1: !parray_v(string, l1, n1) , pf2: !parray_v(string, l2, n2) | fname: NSH(string), argv: ptr(l1), envp: ptr(l2) ) : intLt(0) = "mac#atslib_libats_libc_execve" fun execve_unsafe ( fname: NSH(string), argv: ptr(*parray*), envp: ptr(*parray*) ) : intLt(0) = "mac#atslib_libats_libc_execve" // end of [execve_unsafe] (* ****** ****** *) /* void encrypt(char block[64], int edflag); */ fun encrypt ( block: &(@[char][64]), edflag: int ) : void = "mac#%" // endfun (* ****** ****** *) fun fork ((*void*)): pid_t = "mac#%" (* ****** ****** *) // dataview getcwd_v ( m:int, l:addr, addr ) = | {l>null}{n:nat} getcwd_v_succ(m, l, l) of strbuf_v(l, m, n) | getcwd_v_fail(m, l, null) of b0ytes(m) @ (l) // end of [getcwd_v] // fun getcwd {m:nat} {l:addr} ( pf: !b0ytes(m)@l >> getcwd_v(m, l, l1) | p: ptr(l), m: size_t(m) ) : #[l1:addr] ptr (l1) = "mac#%" // end of [getcwd] // fun getcwd_gc (): Strptr0 = "ext#%" // HX: this is a convenient wrapper // (* ****** ****** *) // /* pid_t getpid(void); pid_t getppid(void); */ fun getpid ((*void*)): pid_t = "mac#%" fun getppid ((*void*)): pid_t = "mac#%" // (* ****** ****** *) fun getuid(): uid_t = "mac#%" fun setuid(uid: uid_t): int = "mac#%" fun geteuid(): uid_t = "mac#%" fun seteuid(uid: uid_t): int = "mac#%" (* ****** ****** *) fun getgid(): gid_t = "mac#%" fun setgid(gid: gid_t): int = "mac#%" fun getegid(): gid_t = "mac#%" fun setegid(gid: gid_t): int = "mac#%" (* ****** ****** *) fun setreuid(ruid: uid_t, euid: uid_t): int = "mac#%" fun setregid(rgid: gid_t, egid: gid_t): int = "mac#%" (* ****** ****** *) fun setresuid(ruid: uid_t, euid: uid_t, suid: uid_t): int = "mac#%" fun setresgid(rgid: gid_t, egid: gid_t, sgid: gid_t): int = "mac#%" (* ****** ****** *) // // HX: these are linux-specific! // fun setfsuid(fsuid: uid_t): int = "mac#%" fun setfsgid(fsgid: gid_t): int = "mac#%" // (* ****** ****** *) // fun getlogin(): vStrptr0 = "mac#%" // fun getlogin_r {n:int | n >= 2} (buf: &bytes(n), size_t(n)): int = "mac#%" // fun getlogin_r_gc((*void*)): Strptr0 = "ext#%" // (* ****** ****** *) // // HX: [pause] can only returns -1 // fun pause ((*void*)): int = "mac#%" // (* ****** ****** *) fun read_err {sz,n:nat | n <= sz} ( fd: !Fildes0 , buf: &b0ytes(sz) >> bytes(sz), ntotal: size_t(n) ) : ssizeBtw(~1, n+1) = "mac#%" // end-of-fun fun write_err {sz,n:nat | n <= sz} ( fd: !Fildes0, buf: &RD(bytes(sz)), ntotal: size_t(n) ) : ssizeBtw(~1, n+1) = "mac#%" // end-of-fun (* ****** ****** *) fun pread{n:int} ( fd: !Fildes0, buf: &(@[byte][n])>>_, n: size_t (n), ofs: off_t ) : ssize_t = "mac#%" // end of [pread] fun pwrite{n:int} ( fd: !Fildes0, buf: &RD(array(byte, n)), n: size_t (n), ofs: off_t ) : ssize_t = "mac#%" // end of [pwrite] (* ****** ****** *) // absview alarm_v(n: int) // n: remaining seconds // praxi alarm_v_elim (pfrem: alarm_v(0)): void // fun alarm_set{i:int} (t: uint(i)): (alarm_v(i) | uInt) = "mac#%" // end of [alarm_set] fun alarm_cancel{i:int} (pf: alarm_v(i) | (*none*)): uInt = "mac#%" // end of [alarm_cancel] // (* ****** ****** *) // // HX: [sleep] may be implemented using SIGARM // fun sleep_int {i:nat} (t: int i): [j:nat | j <= i] int j = "mac#%" fun sleep_uint {i:int} (t: uint i): [j:nat | j <= i] uint j = "mac#%" // symintr sleep overload sleep with sleep_int overload sleep with sleep_uint // (* ****** ****** *) // // HX: some systems require that the argument <= 1 million // fun usleep_int // succ/fail: 0/~1 {i:nat | i <= 1000000} (n: int i): intLte(0) = "mac#%" fun usleep_uint // succ/fail: 0/~1 {i:int | i <= 1000000} (n: uint i): intLte(0) = "mac#%" // symintr usleep overload usleep with usleep_int overload usleep with usleep_uint // (* ****** ****** *) /* int rmdir(const char *pathname); */ fun rmdir (path: NSH(string)): int = "mac#%" fun rmdir_exn (path: NSH(string)): void = "ext#%" (* ****** ****** *) /* int link(const char *old, const char *new) */ fun link ( old: NSH(string) , new: NSH(string) ) : intLte(0) = "mac#%" fun link_exn (old: NSH(string), new: NSH(string)): void = "ext#%" // (* ****** ****** *) /* int symlink(const char *old, const char *new) */ fun symlink ( old: NSH(string) , new: NSH(string) ) : intLte(0) = "mac#%" fun symlink_exn (old: NSH(string), new: NSH(string)): void = "ext#%" // (* ****** ****** *) /* int unlink(const char *pathname); */ fun unlink (path: NSH(string)): intLte(0) = "mac#%" fun unlink_exn (path: NSH(string)): void = "ext#%" (* ****** ****** *) fun readlink{n:int} ( path: NSH(string), buf: &(@[byte][n]) >> _, n: size_t (n) ) : ssizeLte(n) = "mac#%" // end of [readlink] fun readlink_gc (path: NSH(string)): Strptr0 = "ext#%" (* ****** ****** *) fun sync ((*void*)): void = "mac#%" fun fsync (fd: !Fildes0): int = "mac#%" fun fdatasync (fd: !Fildes0): int = "mac#%" (* ****** ****** *) // fun truncate (path: NSH(string), ofs: off_t): int = "mac#%" // fun ftruncate (fd: !Fildes0, ofs: off_t): int = "mac#%" // (* ****** ****** *) #include "./unistd_sysconf.sats" #include "./unistd_pathconf.sats" (* ****** ****** *) (* end of [unistd.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/errno.sats0000644000175000017500000001647313431250607021657 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/errno.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) vtypedef RD(a:vt0p) = a // for commenting: read-only #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) typedef errno_t = int (* ****** ****** *) // macdef ENONE = $extval (errno_t, "ENONE") // = 0 // macdef E2BIG = $extval (errno_t, "E2BIG") // POSIX.1 macdef EACCES = $extval (errno_t, "EACCES") // POSIX.1 macdef EADDRINUSE = $extval (errno_t, "EADDRINUSE") // POSIX.1 macdef EADDRNOTAVAIL = $extval (errno_t, "EADDRNOTAVAIL") // POSIX.1 macdef EAGAIN = $extval (errno_t, "EAGAIN") // POSIX.1 macdef EALREADY = $extval (errno_t, "EALREADY") // POSIX.1 macdef EBADE = $extval (errno_t, "EBADE") macdef EBADF = $extval (errno_t, "EBADF") // POSIX.1 macdef EBADFD = $extval (errno_t, "EBADFD") macdef EBADMSG = $extval (errno_t, "EBADMSG") // POSIX.1 macdef EBADR = $extval (errno_t, "EBADR") macdef EBUSY = $extval (errno_t, "EBUSY") // POSIX.1 macdef ECANCELED = $extval (errno_t, "ECANCELED") // POSIX.1 macdef ECHILD = $extval (errno_t, "ECHILD") // POSIX.1 macdef ECONNABORTED = $extval (errno_t, "ECONNABORTED") // POSIX.1 macdef ECONNREFUSED = $extval (errno_t, "ECONNREFUSED") // POSIX.1 macdef ECONNRESET = $extval (errno_t, "ECONNRESET") // POSIX.1 macdef EDEADLK = $extval (errno_t, "EDEADLK") // POSIX.1 macdef EDEADLOCK = $extval (errno_t, "EDEADLOCK") // POSIX.1 macdef EDESTADDRREQ = $extval (errno_t, "EDESTADDRREQ") // POSIX.1 macdef EDOM = $extval (errno_t, "EDOM") // POSIX.1 // C99 macdef EDQUOT = $extval (errno_t, "EDQUOT") // POSIX.1 macdef EEXIST = $extval (errno_t, "EEXIST") // POSIX.1 macdef EFAULT = $extval (errno_t, "EFAULT") // POSIX.1 macdef EFBIG = $extval (errno_t, "EFBIG") // POSIX.1 macdef EHOSTDOWN = $extval (errno_t, "EHOSTDOWN") macdef EHOSTUNREACH = $extval (errno_t, "EHOSTUNREACH") // POSIX.1 macdef EIDRM = $extval (errno_t, "EIDRM") // POSIX.1 macdef EILSEQ = $extval (errno_t, "EILSEQ") // POSIX.1 // C99 macdef EINPROGRESS = $extval (errno_t, "EINPROGRESS") // POSIX.1 macdef EINTR = $extval (errno_t, "EINTR") // POSIX.1 macdef EINVAL = $extval (errno_t, "EINVAL") // POSIX.1 macdef EIO = $extval (errno_t, "EIO") // POSIX.1 macdef EISCONN = $extval (errno_t, "EISCONN") // POSIX.1 macdef EISDIR = $extval (errno_t, "EISDIR") // POSIX.1 macdef ELOOP = $extval (errno_t, "ELOOP") // POSIX.1 macdef EMFILE = $extval (errno_t, "EMFILE") // POSIX.1 macdef EMLINK = $extval (errno_t, "EMLINK") // POSIX.1 macdef EMSGSIZE = $extval (errno_t, "EMSGSIZE") // POSIX.1 macdef EMULTIHOP = $extval (errno_t, "EMULTIHOP") // POSIX.1 macdef ENAMETOOLONG = $extval (errno_t, "ENAMETOOLONG") // POSIX.1 macdef ENETDOWN = $extval (errno_t, "ENETDOWN") // POSIX.1 macdef ENETRESET = $extval (errno_t, "ENETRESET") // POSIX.1 macdef ENETUNREACH = $extval (errno_t, "ENETUNREACH") // POSIX.1 macdef ENFILE = $extval (errno_t, "ENFILE") // POSIX.1 macdef ENOBUFS = $extval (errno_t, "ENOBUFS") // POSIX.1 macdef ENODATA = $extval (errno_t, "ENODATA") // POSIX.1 macdef ENODEV = $extval (errno_t, "ENODEV") // POSIX.1 macdef ENOENT = $extval (errno_t, "ENOENT") // POSIX.1 macdef ENOEXEC = $extval (errno_t, "ENOEXEC") // POSIX.1 macdef ENOLCK = $extval (errno_t, "ENOLCK") // POSIX.1 macdef ENOLINK = $extval (errno_t, "ENOLINK") // POSIX.1 macdef ENOMEM = $extval (errno_t, "ENOMEM") // POSIX.1 macdef ENOMSG = $extval (errno_t, "ENOMSG") // POSIX.1 macdef ENOPROTOOPT = $extval (errno_t, "ENOPROTOOPT") // POSIX.1 macdef ENOSPC = $extval (errno_t, "ENOSPC") // POSIX.1 macdef ENOSR = $extval (errno_t, "ENOSR") // POSIX.1 macdef ENOSTR = $extval (errno_t, "ENOSTR") // POSIX.1 macdef ENOSYS = $extval (errno_t, "ENOSYS") // POSIX.1 macdef ENOTCONN = $extval (errno_t, "ENOTCONN") // POSIX.1 macdef ENOTDIR = $extval (errno_t, "ENOTDIR") // POSIX.1 macdef ENOTEMPTY = $extval (errno_t, "ENOTEMPTY") // POSIX.1 macdef ENOTSOCK = $extval (errno_t, "ENOTSOCK") // POSIX.1 macdef ENOTSUP = $extval (errno_t, "ENOTSUP") // POSIX.1 macdef ENOTTY = $extval (errno_t, "ENOTTY") // POSIX.1 macdef ENXIO = $extval (errno_t, "ENXIO") // POSIX.1 macdef EOPNOTSUPP = $extval (errno_t, "EOPNOTSUPP") // POSIX.1 macdef EOVERFLOW = $extval (errno_t, "EOVERFLOW") // POSIX.1 macdef EPERM = $extval (errno_t, "EPERM") // POSIX.1 macdef EPIPE = $extval (errno_t, "EPIPE") // POSIX.1 macdef EPFNOSUPPORT = $extval (errno_t, "EPFNOSUPPORT") macdef EPROTO = $extval (errno_t, "EPROTO") // POSIX.1 macdef EPROTONOSUPPORT = $extval (errno_t, "EPROTONOSUPPORT") // POSIX.1 macdef EPROTOTYPE = $extval (errno_t, "EPROTOTYPE") // POSIX.1 macdef ERANGE = $extval (errno_t, "ERANGE") // C99 // POSIX.1 macdef EREMCHG = $extval (errno_t, "EREMCHG") macdef EREMOTE = $extval (errno_t, "EREMOTE") macdef EREMOTEIO = $extval (errno_t, "EREMOTEIO") macdef ERESTART = $extval (errno_t, "ERESTART") macdef EROFS = $extval (errno_t, "EROFS") // POSIX.1 macdef ESHUTDOWN = $extval (errno_t, "ESHUTDOWN") macdef ESPIPE = $extval (errno_t, "ESPIPE") // POSIX.1 macdef ESOCKTNOSUPPORT = $extval (errno_t, "ESOCKTNOSUPPORT") macdef ESRCH = $extval (errno_t, "ESRCH") // POSIX.1 macdef ESTALE = $extval (errno_t, "ESTALE") // POSIX.1 macdef ESTRPIPE = $extval (errno_t, "ESTRPIPE") macdef ETIME = $extval (errno_t, "ETIME") macdef ETIMEDOUT = $extval (errno_t, "ETIMEDOUT") macdef ETXTBSY = $extval (errno_t, "ETXTBSY") macdef EUCLEAN = $extval (errno_t, "EUCLEAN") macdef EUNATCH = $extval (errno_t, "EUNATCH") macdef EUSERS = $extval (errno_t, "EUSERS") macdef EWOULDBLOCK = $extval (errno_t, "EWOULDBLOCK") // POSIX.1 macdef EXDEV = $extval (errno_t, "EXDEV") macdef EXFULL = $extval (errno_t, "EXFULL") (* ****** ****** *) // // HX: these functions are reentrant! // fun the_errno_get ():<> errno_t = "mac#%" fun the_errno_set (eno: errno_t):<> void = "mac#%" // fun the_errno_reset ():<> void = "mac#%" // fun the_errno_test (errno_t):<> bool = "mac#%" // (* ****** ****** *) (* end of [errno.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/time.sats0000644000175000017500000001465713431250607021472 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2013 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/time.cats" %} // end of [%{#] (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" (* ****** ****** *) #define RD(x) x // for commenting: read-only #define NSH(x) x // for commenting: no sharing #define SHR(x) x // for commenting: it is shared (* ****** ****** *) // staload TYPES = "libats/libc/SATS/sys/types.sats" // typedef time_t = $TYPES.time_t typedef clock_t = $TYPES.clock_t typedef clockid_t = $TYPES.clockid_t // macdef CLOCKS_PER_SEC = $extval (clock_t, "CLOCKS_PER_SEC") // macdef CLOCK_REALTIME = $extval (clockid_t, "CLOCK_REALTIME") macdef CLOCK_MONOTONIC = $extval (clockid_t, "CLOCK_MONOTONIC") // macdef CLOCK_THREAD_CPUTIME_ID = $extval (clockid_t, "CLOCK_THREAD_CPUTIME_ID") macdef CLOCK_PROCESS_CPUTIME_ID = $extval (clockid_t, "CLOCK_PROCESS_CPUTIME_ID") // (* ****** ****** *) fun difftime ( t1: time_t , t2: time_t ) :<> double = "mac#%" // endfun (* ****** ****** *) // fun time_get(): time_t = "mac#%" // fun time_getset ( t0: &time_t? >> opt(time_t, b) ) : #[b:bool] bool (b) = "mac#%" // symintr time overload time with time_get overload time with time_getset // (* ****** ****** *) // fun ctime // non-reentrant ( t0: &RD(time_t) // read-only ) : [l:agez] vttakeout0(strptr(l)) = "mac#%" // (* ****** ****** *) // #define CTIME_BUFSZ 26 // dataview ctime_v(m:int, addr, addr) = | {l:addr} ctime_v_fail (m, l, null) of b0ytes_v (l, m) | {l:agz} ctime_v_succ (m, l, l) of strbuf_v (l, m, CTIME_BUFSZ-1) // fun ctime_r // reentrant-version {l:addr}{m:int | m >= CTIME_BUFSZ} ( !b0ytes_v (l, m) >> ctime_v (m, l, l1) | &RD(time_t), ptr (l) ) : #[l1:addr] ptr (l1) = "mac#%" // end of [ctime_r] // fun{ } ctime_r_gc (&RD(time_t)): Strptr0 // end of [ctime_r_gc] // (* ****** ****** *) typedef tm_struct = $extype_struct "atslib_libats_libc_tm_struct_type" of { tm_sec= int // natLt(60) , tm_min= int // natLt(60) , tm_hour= int // natLt(24) , tm_mon= int (* month *) // natLt(12) , tm_year= int (* year *) // starting from 1900 , tm_wday= int (* day of the week *) // natLt(7) , tm_mday= int (* day of the month *) , tm_yday= int (* day in the year *) , tm_isdst= int (* daylight saving time *) // yes/no: 1/0 } // end of [tm_struct] // end of [typedef] (* ****** ****** *) // (* ** HX (2010-01-15): ** These functions are now kept for backward compatibility *) fun tm_get_sec (tm: &READ(tm_struct)):<> int = "mac#%" fun tm_get_min (tm: &READ(tm_struct)):<> int = "mac#%" fun tm_get_hour (tm: &READ(tm_struct)):<> int = "mac#%" fun tm_get_mday (tm: &READ(tm_struct)):<> int = "mac#%" fun tm_get_mon (tm: &READ(tm_struct)):<> int = "mac#%" fun tm_get_year (tm: &READ(tm_struct)):<> int = "mac#%" fun tm_get_wday (tm: &READ(tm_struct)):<> int = "mac#%" fun tm_get_yday (tm: &READ(tm_struct)):<> int = "mac#%" fun tm_get_isdst (tm: &READ(tm_struct)):<> int = "mac#%" // (* ****** ****** *) fun mktime (tm: &RD(tm_struct)):<> time_t = "mac#%" (* ****** ****** *) fun asctime ( tm: &RD(tm_struct) ) : [l:addr] vttakeout0 (strptr l) = "mac#%" (* ****** ****** *) /* size_t strftime ( char *s, size_t max, const char *format, const struct tm *tm ) ; // end of [strftime] */ fun strftime {l:addr}{m:pos} ( pf: !b0ytes(m) @ l >> strbuf(m, n) @ l | p: ptr l, m: size_t m, fmt: string, tm: &RD(tm_struct) ) :<> #[n:nat | n < m] size_t n = "mac#%" // endfun (* ****** ****** *) fun gmtime // non-reentrant ( tval: &RD(time_t) ) : [ l:addr ] ( option_v(vtakeout0(tm_struct@l), l > null) | ptr(l) ) = "mac#%" // end of [gmtime] fun gmtime_r // reentrant-version ( tval: &RD(time_t) , tm: &tm_struct? >> opt(tm_struct, l > null) ) :<> #[l:addr] ptr (l) = "mac#%" // endfun (* ****** ****** *) fun localtime // non-reentrant ( tval: &RD(time_t) // read-only ) : [ l:addr ] ( option_v(vtakeout0(tm_struct@l), l > null) | ptr(l) ) = "mac#%" // end of [localtime] fun localtime_r // reentrant-version ( tval: &RD(time_t), tm: &tm_struct? >> opt(tm_struct, l > null) ) :<> #[l:addr] ptr (l) = "mac#%" // endfun (* ****** ****** *) fun tzset(): void = "mac#%" // endfun (* ****** ****** *) fun clock(): clock_t = "mac#%" // err: -1 (* ****** ****** *) typedef timespec = $extype_struct "atslib_libats_libc_timespec_type" of { tv_sec= time_t(*secs*), tv_nsec= lint(*nanosecs*) } // end of [extype_struct] // end of [timespec] (* ****** ****** *) fun nanosleep ( tms: &RD(timespec) , rem: ×pec? >> opt(timespec, i==0) ) : #[i:int | i <= 0] int(i) = "mac#%" fun nanosleep_null(tms: &RD(timespec)): int = "mac#%" (* ****** ****** *) // // HX: // librt is needed for these functions // fun clock_getres ( id: clockid_t , res: ×pec? >> opt(timespec, i==0) ) : #[i:int | i <= 0] int(i) = "mac#%" // fun clock_gettime ( id: clockid_t , tms: ×pec? >> opt(timespec, i==0) ) : #[i:int | i <= 0] int(i) = "mac#%" // // HX: this one requires SUPERUSER previlege // fun clock_settime (id: clockid_t, tms: &RD(timespec)): int = "mac#%" // (* ****** ****** *) (* end of [time.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/libc/SATS/signal.sats0000644000175000017500000002014713431250607022000 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: April, 2014 // (* ****** ****** *) %{# #include \ "libats/libc/CATS/signal.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.libc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_libats_libc_" // (* ****** ****** *) // staload TYPES = "libats/libc/SATS/sys/types.sats" // typedef pid_t = $TYPES.pid_t typedef uid_t = $TYPES.uid_t typedef clock_t = $TYPES.clock_t // (* staload PTHREAD = "libats/libc/SATS/pthread.sats" typedef pthread_t = $PTHREAD.pthread_t *) abst@ype pthread_t0ype = $extype "pthread_t" // typedef pthread_t = pthread_t0ype // (* ****** ****** *) // // HX: defined in // [libats/libc/CATS/signal.cats] // abst@ype signum_t0ype = $extype"signum_t" // typedef signum_t = signum_t0ype // macdef SIGHUP = $extval (signum_t, "SIGHUP") // 1 macdef SIGINT = $extval (signum_t, "SIGINT") // 2 macdef SIGQUIT = $extval (signum_t, "SIGQUIT") // 3 macdef SIGILL = $extval (signum_t, "SIGILL") // 4 macdef SIGABRT = $extval (signum_t, "SIGABRT") // 6 macdef SIGFPE = $extval (signum_t, "SIGFPE") // 8 macdef SIGKILL = $extval (signum_t, "SIGKILL") // 9 macdef SIGSEGV = $extval (signum_t, "SIGSEGV") // 11 macdef SIGPIPE = $extval (signum_t, "SIGPIPE") // 13 macdef SIGALRM = $extval (signum_t, "SIGALRM") // 14 macdef SIGTERM = $extval (signum_t, "SIGTERM") // 15 macdef SIGUSR1 = $extval (signum_t, "SIGUSR1") macdef SIGUSR2 = $extval (signum_t, "SIGUSR2") macdef SIGCHLD = $extval (signum_t, "SIGCHLD") macdef SIGCONT = $extval (signum_t, "SIGCONT") macdef SIGSTOP = $extval (signum_t, "SIGSTOP") macdef SIGTSTP = $extval (signum_t, "SIGTSTP") macdef SIGTTIN = $extval (signum_t, "SIGTTIN") macdef SIGTTOU = $extval (signum_t, "SIGTTOU") // macdef SIGBUS = $extval (signum_t, "SIGBUS") macdef SIGTRAP = $extval (signum_t, "SIGTRAP") // 5 // macdef SIGIO = $extval (signum_t, "SIGIO") // (* ****** ****** *) // abstype sighandler_type = ptr typedef sighandler_t = sighandler_type // macdef SIG_DFL = $extval (sighandler_t, "SIG_DFL") macdef SIG_IGN = $extval (sighandler_t, "SIG_IGN") macdef SIG_HOLD = $extval (sighandler_t, "SIG_HOLD") macdef SIG_ERR = $extval (sighandler_t, "SIG_ERR") // castfn sighandler(f: (signum_t) - void): sighandler_t // (* ****** ****** *) // abst@ype sigset_t0ype = $extype"sigset_t" // typedef sigset_t = sigset_t0ype // // HX-2014-04-07: // errno [EINVAL] is set in case of failure // fun sigemptyset // 0/-1 : succ/fail ( set: &sigset_t? >> opt (sigset_t, i==0) ) : #[i:int | i <= 0] int (i) = "mac#%" // fun sigfillset // 0/-1 : succ/fail ( set: &sigset_t? >> opt (sigset_t, i==0) ) : #[i:int | i <= 0] int (i) = "mac#%" // fun sigaddset // 0/-1 : succ/fail (set: &sigset_t, sgn: signum_t): int = "mac#%" // fun sigdelset // 0/-1 : succ/fail (set: &sigset_t, sgn: signum_t): int = "mac#%" // fun sigismember // 0/1/-1 : false/true/error (set: &sigset_t, sgn: signum_t): int = "mac#%" // (* ****** ****** *) // abst@ype sigmaskhow_t0ype = int // typedef sigmaskhow_t = sigmaskhow_t0ype // macdef SIG_BLOCK = $extval (sigmaskhow_t, "SIG_BLOCK") macdef SIG_UNBLOCK = $extval (sigmaskhow_t, "SIG_UNBLOCK") macdef SIG_SETMASK = $extval (sigmaskhow_t, "SIG_SETMASK") // (* ****** ****** *) // abst@ype sigval_t0ype = $extype"sigval_t" typedef sigval_t = sigval_t0ype // abst@ype saflag_t0ype = uint typedef saflag_t = saflag_t0ype // macdef SA_NOCLDSTOP = $extval (saflag_t, "SA_NOCLDSTOP") macdef SA_NOCLDWAIT = $extval (saflag_t, "SA_NOCLDWAIT") macdef SA_NODEFER = $extval (saflag_t, "SA_NODEFER") macdef SA_ONSTACK = $extval (saflag_t, "SA_ONSTACK") macdef SA_RESETHAND = $extval (saflag_t, "SA_RESETHAND") macdef SA_RESTART = $extval (saflag_t, "SA_RESTART") macdef SA_SIGINFO = $extval (saflag_t, "SA_SIGINFO") // (* ****** ****** *) // // HX: this one is deprecated; please use [sigaction] // fun signal (sgn: signum_t, act: sighandler_t): sighandler_t = "mac#%" // end of [signal] // (* ****** ****** *) // typedef siginfo_struct = $extype_struct"siginfo_t" of { si_signo= int // signal number , si_sigerror= int // error value , si_code= int // signal code , si_trapno= int // trap number that caused HW signal , si_pid= pid_t // proc ID of the sending process , si_uid= uid_t // real user ID of the sending process , si_status= int // exit value or signal , si_utime= clock_t // user time consumed , si_stime= clock_t // system time consumed , si_value= sigval_t // signal value , si_int= int // signal (POSIX.1b) , si_ptr= ptr // signal (POSIX.1b) , si_overrun= int // timer overrun count (POSIX.1b) , si_timerid= int // timer ID (POSIX.1b) , si_addr= ptr // memory location that caused fault , si_band= int // band event , si_fd= int // file descriptor } (* end of [siginfo_struct] *) // typedef siginfo = siginfo_struct // (* ****** ****** *) // typedef sigaction_struct = $extype_struct "atslib_libats_libc_sigaction_struct" of { sa_handler= sighandler_t , sa_sigaction= (int, &siginfo, ptr) - void , sa_mask= sigset_t , sa_flags= saflag_t , sa_restorer= ((*void*)) - void } (* end of [sigaction_struct] *) // typedef sigaction = sigaction_struct // fun sigaction ( sgn: signum_t , newact: &RD(sigaction) , oldact: &sigaction? >> opt (sigaction, i==0) ) : #[i:int | i <= 0] int i = "mac#%" // 0/-1 : succ/fail // fun sigaction_null (sgn: signum_t, newact: &RD(sigaction)): int = "mac#%" // (* ****** ****** *) // fun kill // 0/-1 : succ/fail // errno set (proc: pid_t, sgn: signum_t): int = "mac#%" // // HX: killpg (pgrp, sgn) = kill (-pgrp, sgn) // fun killpg // 0/-1 : succ/fail // errno set (pgrp: pid_t, sgn: signum_t): int = "mac#%" // (* ****** ****** *) // // HX-2014-04: // raise(sgn) = // pthread_kill (pthread_self, sgn) // fun raise (signum_t): int = "mac#%" // fun pthread_kill // 0/errno : succ/fail (tid: pthread_t, sgn: signum_t): int = "mac#%" // (* ****** ****** *) // // HX-2014-04-07: 0/errno : succ/fail // fun sigwait ( set: &sigset_t , sgn: &signum_t? >> opt (signum_t, i==0) ) : #[i:int | i >= 0] int(i) = "mac#%" // (* ****** ****** *) // // HX-2014-04-07: // [sigpause] is deprecated // please use [sigsuspend] instead // // always -1: fail // errno set fun sigpause (sgn: signum_t): int = "mac#%" // // HX-2014-04-07: // always -1: fail // errno set // EINTR is set normally // fun sigsuspend (mask: &sigset_t): int = "mac#%" // (* ****** ****** *) // // HX-2014-04-07: // 0/-1 : succ/fail // errno set // fun sigpending ( set: &sigset_t? >> opt (sigset_t, i==0) ) : #[i:int | i <= 0] int (i) = "mac#%" // // // HX-2014-04-07: // 0/-1 : succ/fail // errno set // fun siginterrupt(sgn: signum_t, flag: int): int = "mac#%" // (* ****** ****** *) // (* // // HX: print onto stderr // *) fun psignal (sgn: signum_t, msg: string): void = "mac#%" // end of [psignal] fun strsignal (sgn: signum_t) // HX: errno set? : [l:addr] (strptr(l) - void | strptr(l)) = "mac#%" // end of [strsignal] // (* ****** ****** *) (* end of [signal.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/CATS/0000755000175000017500000000000013431250607016672 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/CATS/deqarray.cats0000644000175000017500000001565613431250607021373 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_CATS_DEQARRAY #define ATSLIB_LIBATS_CATS_DEQARRAY /* ****** ****** */ typedef struct { atstype_ptr deqarray_beg ; // the beg pointer atstype_ptr deqarray_end ; // the end pointer atstype_ref deqarray_frnt ; // the frontal pointer atstype_ref deqarray_rear ; // the rear pointer } atslib_deqarray_struct ; /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_make_ngc__tsz ( atstype_ptr p , atstype_ptr A , atstype_size m , atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; // p_deq->deqarray_beg = A ; p_deq->deqarray_end = (char*)A + (m+1) * tsz ; p_deq->deqarray_frnt = A ; p_deq->deqarray_rear = A ; // return p_deq ; // } // end of [atslib_deqarray_make_ngc__tsz] /* ****** ****** */ ATSinline() atstype_size atslib_deqarray_get_size__tsz ( atstype_ptr p, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; // void *p_frnt = p_deq->deqarray_frnt ; void *p_rear = p_deq->deqarray_rear ; // if (p_frnt >= p_rear) { return ((char*)p_frnt-(char*)p_rear)/tsz ; } else { return ((char*)p_frnt-(char*)p_deq->deqarray_beg+(char*)p_deq->deqarray_end-(char*)p_rear)/tsz ; } /* end of [if] */ } // end of [atslib_deqarray_get_size__tsz] /* ****** ****** */ ATSinline() atstype_size atslib_deqarray_get_capacity__tsz ( atstype_ptr p, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; return (((char*)(p_deq->deqarray_end)-(char*)(p_deq->deqarray_beg))/tsz)-1; } // end of [atslib_deqarray_get_capacity__tsz] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_get_ptrbeg (atstype_ptr p) { return ((atslib_deqarray_struct*)p)->deqarray_beg ; } // end of [atslib_deqarray_get_ptrbeg] ATSinline() atstype_ptr atslib_deqarray_get_ptrend (atstype_ptr p) { return ((atslib_deqarray_struct*)p)->deqarray_end ; } // end of [atslib_deqarray_get_ptrend] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_get_ptrfrnt (atstype_ptr p) { return ((atslib_deqarray_struct*)p)->deqarray_frnt ; } // end of [atslib_deqarray_get_ptrfrnt] ATSinline() atsvoid_t0ype atslib_deqarray_set_ptrfrnt (atstype_ptr p, atstype_ptr p2) { ((atslib_deqarray_struct*)p)->deqarray_frnt = p2 ; return ; } // end of [atslib_deqarray_set_ptrfrnt] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_get_ptrrear (atstype_ptr p) { return ((atslib_deqarray_struct*)p)->deqarray_rear ; } // end of [atslib_deqarray_get_ptrrear] ATSinline() atsvoid_t0ype atslib_deqarray_set_ptrrear (atstype_ptr p, atstype_ptr p2) { ((atslib_deqarray_struct*)p)->deqarray_rear = p2 ; return ; } // end of [atslib_deqarray_set_ptrrear] /* ****** ****** */ ATSinline() atsvoid_t0ype atslib_deqarray_free_nil (atstype_ptr p) { atstype_ptr p_beg ; p_beg = ((atslib_deqarray_struct*)p)->deqarray_beg ; ATS_MFREE(p) ; ATS_MFREE(p_beg) ; return ; } // end of [atslib_deqarray_free_nil] /* ****** ****** */ ATSinline() atstype_bool atslib_deqarray_is_nil (atstype_ptr p) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; return (p_deq->deqarray_frnt == p_deq->deqarray_rear ? atsbool_true : atsbool_false) ; } // end of [atslib_deqarray_is_nil] ATSinline() atstype_bool atslib_deqarray_isnot_nil (atstype_ptr p) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; return (p_deq->deqarray_frnt != p_deq->deqarray_rear ? atsbool_true : atsbool_false) ; } // end of [atslib_deqarray_isnot_nil] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_ptr_succ__tsz ( atstype_ptr p , atstype_ptr p_elt, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; char *p1_elt = (char*)p_elt+tsz ; return (p1_elt < (char*)p_deq->deqarray_end) ? p1_elt : p_deq->deqarray_beg ; } // end of [atslib_deqarray_ptr_succ__tsz] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_ptr_pred__tsz ( atstype_ptr p , atstype_ptr p_elt, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; char *p_beg = (char*)p_deq->deqarray_beg ; return ((char*)p_elt > p_beg) ? (char*)p_elt-tsz : (char*)p_deq->deqarray_end-tsz ; } // end of [atslib_deqarray_ptr_pred__tsz] /* ****** ****** */ ATSinline() atstype_bool atslib_deqarray_is_full__tsz (atstype_ptr p, atstype_size tsz) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; // /* fprintf ( stdout , "atslib_deqarray_is_full__tsz: tsz = %lu\n", tsz ) ; // fprintf */ void *p_frnt = p_deq->deqarray_frnt ; void *p_rear = p_deq->deqarray_rear ; // void *p1_frnt = atslib_deqarray_ptr_succ__tsz(p_deq, p_frnt, tsz) ; // return (p1_frnt==p_rear ? atsbool_true : atsbool_false) ; } // end of [atslib_deqarray_is_full__tsz] #if(0) ATSinline() atstype_bool atslib_deqarray_isnot_full__tsz (atstype_ptr p, atstype_size tsz) { return (atslib_deqarray_is_full__tsz(p, tsz)) ? atsbool_false : atsbool_true ; } // end of [atslib_deqarray_isnot_full__tsz] #endif /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_getref_at__tsz ( atstype_ptr p , atstype_size i, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; // void *p_rear_i = (char*)p_deq->deqarray_rear + i * tsz ; // if (p_rear_i >= p_deq->deqarray_end) p_rear_i = (char*)p_deq->deqarray_beg + (p_rear_i - p_deq->deqarray_end) ; // return p_rear_i ; // } // end of [atslib_deqarray_getref_at__tsz] /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_CATS_DEQARRAY /* ****** ****** */ /* end of [deqarray.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/CATS/dynarray.cats0000644000175000017500000000331213431250607021376 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_CATS_DYNARRAY #define ATSLIB_LIBATS_CATS_DYNARRAY /* ****** ****** */ #include /* ****** ****** */ #define atslib_dynarray_memcpy memcpy #define atslib_dynarray_memmove memmove /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_CATS_DYNARRAY /* ****** ****** */ /* end of [dynarray.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/CATS/hashfun.cats0000644000175000017500000000360513431250607021206 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2014 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_CATS_HASHFUN #define ATSLIB_LIBATS_CATS_HASHFUN /* ****** ****** */ ATSinline() atstype_uint32 atslib_inthash_jenkins (atstype_uint32 a) { a = (a+0x7ed55d16) + (a<<12); a = (a^0xc761c23c) ^ (a>>19); a = (a+0x165667b1) + (a<< 5); a = (a+0xd3a2646c) ^ (a<< 9); a = (a+0xfd7046c5) + (a<< 3); a = (a^0xb55a4f09) ^ (a>>16); return a; } /* end of [atslib_inthash_jenkins] */ /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_CATS_HASHFUN /* ****** ****** */ /* end of [hashfun.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/CATS/.keeper0000644000175000017500000000000013431250607020134 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/CATS/stkarray.cats0000644000175000017500000001161113431250607021406 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_CATS_STKARRAY #define ATSLIB_LIBATS_CATS_STKARRAY /* ****** ****** */ typedef struct { atstype_ptr stkarray_beg ; // the beg pointer atstype_ptr stkarray_end ; // the end pointer atstype_ref stkarray_cur ; // the current pointer } atslib_stkarray_struct ; /* ****** ****** */ ATSinline() atstype_ptr atslib_stkarray_make_ngc_tsz ( atstype_ptr p , atstype_ptr A , atstype_size m , atstype_size tsz ) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; p_stk->stkarray_beg = A ; p_stk->stkarray_end = (char*)A + m * tsz ; p_stk->stkarray_cur = A ; return p_stk ; } // end of [atslib_stkarray_make_ngc_tsz] /* ****** ****** */ ATSinline() atstype_size atslib_stkarray_get_size_tsz ( atstype_ptr p, atstype_size tsz ) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return ((char*)(p_stk->stkarray_cur) - (char*)(p_stk->stkarray_beg)) / tsz ; } // end of [atslib_stkarray_get_size_tsz] ATSinline() atstype_size atslib_stkarray_get_capacity_tsz ( atstype_ptr p, atstype_size tsz ) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return ((char*)(p_stk->stkarray_end) - (char*)(p_stk->stkarray_beg)) / tsz ; } // end of [atslib_stkarray_get_capacity_tsz] /* ****** ****** */ ATSinline() atstype_ptr atslib_stkarray_get_ptrbeg (atstype_ptr p) { return ((atslib_stkarray_struct*)p)->stkarray_beg ; } // end of [atslib_stkarray_get_ptrbeg] /* ****** ****** */ ATSinline() atstype_ptr atslib_stkarray_get_ptrcur (atstype_ptr p) { return ((atslib_stkarray_struct*)p)->stkarray_cur ; } // end of [atslib_stkarray_get_ptrcur] ATSinline() atsvoid_t0ype atslib_stkarray_set_ptrcur (atstype_ptr p, atstype_ptr p2) { ((atslib_stkarray_struct*)p)->stkarray_cur = p2 ; return ; } // end of [atslib_stkarray_set_ptrcur] /* ****** ****** */ ATSinline() atsvoid_t0ype atslib_stkarray_free_nil (atstype_ptr p) { atstype_ptr p_beg ; p_beg = ((atslib_stkarray_struct*)p)->stkarray_beg ; ATS_MFREE(p) ; ATS_MFREE(p_beg) ; return ; } // end of [atslib_stkarray_free_nil] /* ****** ****** */ ATSinline() atstype_ptr atslib_stkarray_getfree_arrayptr (atstype_ptr p) { atstype_ptr p_beg ; p_beg = ((atslib_stkarray_struct*)p)->stkarray_beg ; ATS_MFREE(p) ; return p_beg ; } // end of [atslib_stkarray_getfree_arrayptr] /* ****** ****** */ ATSinline() atstype_bool atslib_stkarray_is_nil (atstype_ptr p) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return (p_stk->stkarray_beg==p_stk->stkarray_cur ? atsbool_true : atsbool_false) ; } // end of [atslib_stkarray_is_nil] ATSinline() atstype_bool atslib_stkarray_isnot_nil (atstype_ptr p) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return (p_stk->stkarray_beg < p_stk->stkarray_cur ? atsbool_true : atsbool_false) ; } // end of [atslib_stkarray_isnot_nil] /* ****** ****** */ ATSinline() atstype_bool atslib_stkarray_is_full (atstype_ptr p) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return (p_stk->stkarray_cur==p_stk->stkarray_end ? atsbool_true : atsbool_false) ; } // end of [atslib_stkarray_is_full] ATSinline() atstype_bool atslib_stkarray_isnot_full (atstype_ptr p) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return (p_stk->stkarray_cur < p_stk->stkarray_end ? atsbool_true : atsbool_false) ; } // end of [atslib_stkarray_isnot_full] /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_CATS_STKARRAY /* ****** ****** */ /* end of [stkarray.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/CATS/qlist.cats0000644000175000017500000000332713431250607020707 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_CATS_QLIST #define ATSLIB_LIBATS_CATS_QLIST /* ****** ****** */ typedef struct { atstype_ptr qlist_nxf ; // the front pointer atstype_ref qlist_nxr ; // the address of rear pointer } atslib_qlist_struct ; /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_CATS_QLIST /* ****** ****** */ /* end of [qlist.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/CATS/stringbuf.cats0000644000175000017500000000466113431250607021560 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: November, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_CATS_STRINGBUF #define ATSLIB_LIBATS_CATS_STRINGBUF /* ****** ****** */ #include #include /* ****** ****** */ #define atslib_stringbuf_memcpy memcpy #define atslib_stringbuf_memmove memmove /* ****** ****** */ /* extern fun _stringbuf_pow2min (sizeGte(1), size_t): sizeGte(1) = "mac#%" implement _stringbuf_pow2min (s1, s2) = if s1 >= s2 then s1 else _stringbuf_pow2min (s1+s1, s2) // end of [if] */ ATSinline() atstype_size atslib__stringbuf_pow2min ( atstype_size s1, atstype_size s2 ) { while (s1 < s2) { s1 = s1 + s1 ; } ; return s1 ; } // end of [atslib__stringbuf_pow2min] /* ****** ****** */ extern atstype_int atslib_stringbuf_insert_snprintf (atstype_ptr sbf, atstype_int recap, atstype_string fmt, ...) ; extern atstype_int atslib_stringbuf_insert_vsnprintf ( atstype_ptr sbf, atstype_int recap, atstype_string fmt, va_list ap ) ; // end of [atslib_stringbuf_insert_vsnprintf] /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_CATS_STRINGBUF /* ****** ****** */ /* end of [stringbuf.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/SATS/0000755000175000017500000000000013431250607016712 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/SATS/linmap_list.sats0000644000175000017500000000307313431250607022124 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linmap_list" (* ****** ****** *) #include "./SHARE/linmap.hats" #include "./SHARE/linmap_node.hats" (* ****** ****** *) (* end of [linmap_list.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/funset_listord.sats0000644000175000017500000000341113431250607022651 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // (* ** ** A functional ** set implementation ** based on ordered lists ** ** Contributed by ** Hongwei Xi (hwxiATcsDOTbuDOTedu) ** Time: May 18, 2011 ** *) // (* ****** ****** *) // // HX-2012-12: // It is ported // to ATS/Postitats // from ATS/Anairiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.funset_listord" (* ****** ****** *) #include "./SHARE/funset.hats" (* ****** ****** *) // castfn funset2list{a:t0p}(xs: set(INV(a))):<> List0(a) // (* ****** ****** *) (* end of [funset_listord.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/stringbuf.sats0000644000175000017500000001307213431250607021614 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.stringbuf" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_" // (* ****** ****** *) %{# #include "libats/CATS/stringbuf.cats" %} // end of [%{#] (* ****** ****** *) absvtype stringbuf_vtype = ptr vtypedef stringbuf = stringbuf_vtype (* ****** ****** *) // // HX: for recapacitizing policy // fun{} stringbuf$recapacitize ((*void*)): int // (* ****** ****** *) // (* fun{} stringbuf_make_nil(cap: sizeGte(1)): stringbuf *) // fun{} stringbuf_make_nil_int(cap: intGte(1)): stringbuf fun{} stringbuf_make_nil_size(cap: sizeGte(1)): stringbuf // overload stringbuf_make_nil with stringbuf_make_nil_int overload stringbuf_make_nil with stringbuf_make_nil_size // (* ****** ****** *) fun{} stringbuf_free(sbf: stringbuf): void fun{} stringbuf_getfree_strptr(sbf: stringbuf): Strptr1 fun{} stringbuf_getfree_strnptr (sbf: stringbuf, n: &size_t? >> size_t(n)): #[n:nat] strnptr(n) // end of [stringbuf_getfree_strnptr] (* ****** ****** *) fun{} stringbuf_get_size(sbf: !stringbuf):<> size_t fun{} stringbuf_get_capacity(sbf: !stringbuf):<> size_t (* ****** ****** *) fun{} stringbuf_get_bufptr(sbf: !stringbuf):<> Ptr1 fun{} stringbuf_get_strptr(sbf: !stringbuf): vStrptr1 (* ****** ****** *) fun{} stringbuf_takeout_strbuf ( sbf: !stringbuf, n: &size_t? >> size_t(n) ) : #[l:addr;n:nat] ( bytes_v (l, n), bytes_v (l, n) - void | ptr(l) ) (* end of [stringbuf_takeout_strbuf] *) (* ****** ****** *) fun{} stringbuf_reset_capacity (sbf: !stringbuf, m2: sizeGte(1)): bool(*done/ignored*) // end of [stringbuf_reset_capacity] (* ****** ****** *) // // HX: (-1) indicates error of bounds-checking // fun{} stringbuf_get_at(sbf: !stringbuf, i: size_t): int fun{} stringbuf_rget_at(sbf: !stringbuf, i: sizeGte(1)): int (* ****** ****** *) symintr stringbuf_insert (* ****** ****** *) fun{} stringbuf_insert_char(!stringbuf, x: charNZ): int fun{} stringbuf_insert_string(!stringbuf, x: string): int fun{} stringbuf_insert_strlen {n:int}(buf: !stringbuf, string n, size_t n): int fun{} stringbuf_insert_bool(sbf: !stringbuf, x: bool): int (* ****** ****** *) overload stringbuf_insert with stringbuf_insert_char overload stringbuf_insert with stringbuf_insert_string overload stringbuf_insert with stringbuf_insert_bool (* ****** ****** *) fun{} stringbuf_insert_int(sbf: !stringbuf, x: int): int fun{} stringbuf_insert_uint(sbf: !stringbuf, x: uint): int fun{} stringbuf_insert_lint(sbf: !stringbuf, x: lint): int fun{} stringbuf_insert_ulint(sbf: !stringbuf, x: ulint): int (* ****** ****** *) overload stringbuf_insert with stringbuf_insert_int overload stringbuf_insert with stringbuf_insert_uint overload stringbuf_insert with stringbuf_insert_lint overload stringbuf_insert with stringbuf_insert_ulint (* ****** ****** *) fun{} stringbuf_insert_fread (sbf: !stringbuf, inp: FILEref, nbyte: int): int // end of [stringbuf_insert_fread] (* ****** ****** *) fun{} stringbuf_insert_fgets ( sbf: !stringbuf, inp: FILEref, last: &char(0) >> char ) : int // end of [stringbuf_insert_fgets] (* ****** ****** *) (* // fun stringbuf_insert_snprintf (sbf: !stringbuf, recap: int, fmt: string, ...) = "mac#%" // *) (* ****** ****** *) fun{a:t0p} stringbuf_insert_val(sbf: !stringbuf, x: a): int (* ****** ****** *) fun{a:t0p} stringbuf_insert_list(sbf: !stringbuf, x: List(a)): int (* ****** ****** *) // // HX-2014-07: // taking out the first [i] chars, and // moving the rest of chars to the front // fun{} stringbuf_takeout (sbf: !stringbuf, i: size_t): Strptr1 // fun{} stringbuf_takeout_all(sbf: !stringbuf): Strptr1 // (* ****** ****** *) // fun{} stringbuf_remove (sbf: !stringbuf, i: size_t): void // fun{} stringbuf_remove_all(sbf: !stringbuf): void // (* ****** ****** *) fun{} stringbuf_truncate (sbf: !stringbuf, n2: size_t): bool(*done/ignored*) // end of [stringbuf_truncate] (* ****** ****** *) // // HX-2014: // taking out the truncated porting // fun{} stringbuf_truncout (sbf: !stringbuf, n2: size_t): Strptr0 // // HX-2014: // it does the same as [stringbuf_takeout_all] // fun{} stringbuf_truncout_all(sbf: !stringbuf): Strptr1 // (* ****** ****** *) (* end of [stringbuf.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/theGetters.sats0000644000175000017500000000432613431250607021731 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmmhwxiATgmailDOTcom // Start Time: September, 2015 // (* ****** ****** *) // (* // HX-2015-09-28: // Some templates for getters *) // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.theGetters" // (* ****** ****** *) // // HX: it is to be implemented! // fun {a:vt0p} the_get_elt (&a? >> opt(a,b)): #[b:bool] bool(b) // (* ****** ****** *) // exception Exception_the_get_elt_exn of ((*void*)) // (* ****** ****** *) // fun{} the_getall_asz_hint((*void*)): sizeGte(1) // (* ****** ****** *) // fun{a:vt0p} the_getall_list(): List0_vt(a) fun{a:vt0p} the_getall_arrayptr (asz: &size_t? >> size_t(n)): #[n:int] arrayptr(a, n) // (* ****** ****** *) // fun{a:vt0p} the_get_elt_exn(): (a) fun{a:vt0p} the_getall_list_exn(): List0_vt(a) fun{a:vt0p} the_getall_rlist_exn(): List0_vt(a) // fun{a:vt0p} the_getall_arrayptr_exn (asz: &size_t? >> size_t(n)): #[n:int] arrayptr(a, n) // (* ****** ****** *) (* end of [theGetters.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/gmatrix_col.sats0000644000175000017500000001724413431250607022126 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) // // HX-2013-07: // For matrices // (that is, 2D-arrays) of column-major style // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.gmatcol" (* ****** ****** *) staload "libats/SATS/gvector.sats" staload "libats/SATS/gmatrix.sats" (* ****** ****** *) praxi lemma_gmatcol_param {a:t0p}{m,n:int}{ld:int} (M: &GMC(a, m, n, ld)): [m >= 1; n >= 0; ld >= m] void praxi lemma_gmatcol_v_param {a:t0p}{l:addr}{m,n:int}{ld:int} (pf: !GMC(a, l, m, n, ld)): [m >= 1; n >= 0; ld >= m] void (* ****** ****** *) // // HX: 0 for row // praxi gmatcol_v_renil0 {a1,a2:t0p} {l:addr}{n:int}{ld:int} (GMC(a1, l, 0, n, ld)): GMC(a2, l, 0, n, ld) // praxi gmatcol_v_cons0 {a:t0p}{l:addr} {m,n:int}{ld:int} ( GVT(a, l, n, ld) , GMC(a, l+sizeof(a), m, n, ld) ) : GMC(a, l, m+1, n, ld) praxi gmatcol_v_uncons0 {a:t0p}{l:addr} {m,n:int | m > 0}{ld:int} ( pf: GMC(a, l, m, n, ld) ) : ( GVT(a, l, n, ld), GMC(a, l+sizeof(a), m-1, n, ld) ) (* end of [gmatcol_v_uncons0] *) // (* ****** ****** *) // // HX: 1 for col // praxi gmatcol_v_renil1 {a1,a2:t0p} {l:addr}{m:int}{ld:int} (GMC(a1, l, m, 0, ld)): GMC(a2, l, m, 0, ld) // praxi gmatcol_v_cons1 {a:t0p}{l:addr} {m,n:int}{ld:int} ( GVT(a, l, m, 1) , GMC(a, l+ld*sizeof(a), m, n, ld) ) : GMC(a, l, m, n+1, ld) praxi gmatcol_v_uncons1 {a:t0p}{l:addr} {m,n:int | n > 0}{ld:int} ( pf: GMC(a, l, m, n, ld) ) : ( GVT(a, l, m, 1), GMC(a, l+ld*sizeof(a), m, n-1, ld) ) (* end of [gmatcol_v_uncons1] *) // (* ****** ****** *) praxi gmatcol_v_split_2x1 {a:t0p}{l:addr} {m,n:int}{ld:int} {i,j:nat | i <= m} ( GMC(a, l, m, n, ld), int i ) : ( GMC(a, l , i , n, ld) , GMC(a, l+i*sizeof(a), m-i, n, ld) ) (* end of [gmatcol_v_split_2x1] *) praxi gmatcol_v_unsplit_2x1 {a:t0p}{l:addr} {i,i2,n:int}{ld:int} ( GMC(a, l , i , n, ld) , GMC(a, l+i*sizeof(a), i2, n, ld) ) : GMC(a, l, i+i2, n, ld) // end of [praxi] (* ****** ****** *) praxi gmatcol_v_split1x2 {a:t0p}{l:addr} {m,n:int}{ld:int} {j:nat | j <= n} ( GMC(a, l, m, n, ld), int j ) : ( GMC(a, l , m, j , ld) , GMC(a, l+j*ld*sizeof(a), m, n-j, ld) ) (* end of [gmatcol_v_split1x2] *) praxi gmatcol_v_unsplit1x2 {a:t0p}{l:addr} {m,j,j2:int}{ld:int} ( GMC(a, l , m, j , ld) , GMC(a, l+j*ld*sizeof(a), m, j2, ld) ) : GMC(a, l, m, j+j2, ld) // end of [praxi] (* ****** ****** *) praxi gmatcol_v_split_2x2 {a:t0p}{l:addr} {m,n:int}{ld:int} {i,j:nat | i <= m; j <= n} ( GMC(a, l, m, n, ld), int i, int j ) : ( GMC(a, l , i , j , ld) , GMC(a, l +j*ld*sizeof(a), i , n-j, ld) , GMC(a, l+i*sizeof(a) , m-i, j , ld) , GMC(a, l+i*sizeof(a)+j*ld*sizeof(a), m-i, n-j, ld) ) (* end of [gmatcol_v_split_2x2] *) praxi gmatcol_v_unsplit_2x2 {a:t0p}{l:addr} {i,i2,j,j2:int}{ld:int} ( GMC(a, l , i , j , ld) , GMC(a, l +j*ld*sizeof(a), i , j2, ld) , GMC(a, l+i*sizeof(a) , i2, j , ld) , GMC(a, l+i*sizeof(a)+j*ld*sizeof(a), i2, j2, ld) ) : GMC(a, l, i+i2, j+j2, ld) // end of [praxi] (* ****** ****** *) fun{a:t0p} gmatcol_get_at {m,n:int}{ld:int} ( M: &GMC(a, m, n, ld), int(ld), i: natLt(m), j: natLt(n) ) : (a) // end of [gmatcol_get_at] fun{a:t0p} gmatcol_set_at {m,n:int}{ld:int} ( M: &GMC(a, m, n, ld), int(ld), i: natLt(m), j: natLt(n), x: a ) : void // end of [gmatcol_set_at] (* ****** ****** *) fun{a:t0p} gmatcol_getref_at {m,n:int}{ld:int} ( M: &GMC(a, m, n, ld), int(ld), i: natLt(m), j: natLt(n) ) : cPtr1(a) // end of [gmatcol_getref_at] (* ****** ****** *) fun{a:t0p} gmatcol_getref_row_at {m,n:int}{ld:int} ( M: &GMC(a, m, n, ld), int(ld), i: natLt(m) ) : cPtr1(GVT(a, n, ld)) // endfun fun{a:t0p} gmatcol_getref_col_at {m,n:int}{ld:int} ( M: &GMC(a, m, n, ld), int(ld), j: natLt(n) ) : cPtr1(GVT(a, m, 1(*d*))) // endfun (* ****** ****** *) fun{a:t0p} gmatcol_interchange_row {m,n:int}{ld:int} ( M: &GMC(a, m, n, ld) , n: int n, int(ld), i1: natLt(m), i2: natLt(m) ) : void // end of [gmatcol_interchange_row] fun{a:t0p} gmatcol_interchange_col {m,n:int}{ld:int} ( M: &GMC(a, m, n, ld) , m: int m, int(ld), j1: natLt(n), j2: natLt(n) ) : void // end of [gmatcol_interchange_col] (* ****** ****** *) fun{a:t0p} gmatcol_copyto {m,n:int}{ld1,ld2:int} ( M1: &GMC(a, m, n, ld1) , M2: &GMC(a?, m, n, ld2) >> GMC(a, m, n, ld2) , int(m), int(n), int(ld1), int(ld2) ) : void // end of [gmatcol_copyto] fun{a:t0p} gmatcol_transpto {m,n:int}{ld1,ld2:int} ( M1: &GMC(a, m, n, ld1) , M2: &GMC(a?, n, m, ld2) >> GMC(a, n, m, ld2) , int(m), int(n), int(ld1), int(ld2) ) : void // end of [gmatcol_transpto] (* ****** ****** *) fun{a:t0p} gmatcol_ptr_split_2x2 {l:addr} {m,n:int}{ld:int} {i,j:nat | i <= m; j <= n} ( pf: GMC(a, l, m, n, ld) | ptr(l), int(ld), int(i), int(j) ) : [l01,l10,l11:addr] ( GMC(a, l , i , j , ld) , GMC(a, l01, i , n-j, ld) , GMC(a, l10, m-i, j , ld) , GMC(a, l11, m-i, n-j, ld) , ( GMC(a, l , i , j , ld) , GMC(a, l01, i , n-j, ld) , GMC(a, l10, m-i, j , ld) , GMC(a, l11, m-i, n-j, ld) ) - GMC(a, l, m, n, ld) | ptr(l01), ptr(l10), ptr(l11) ) (* end of [gmatcol_ptr_split_2x2] *) (* ****** ****** *) fun{ a:t0p}{env:vt0p } gmatcol_foreachcol$fwork{m:int} ( col: &GVT (a, m, 1) >> _, m: int m, env: &(env) >> _ ) : void // end of [gmatcol_foreachcol$fwork] fun{ a:t0p } gmatcol_foreachcol{m,n:int}{ld:int} ( M: &gmatcol(a, m, n, ld) >> _, int(m), int(n), int(ld) ) : void // end of [gmatcol_foreachcol] fun{ a:t0p}{env:vt0p } gmatcol_foreachcol_env{m,n:int}{ld:int} ( M: &gmatcol(a, m, n, ld) >> _, int(m), int(n), int(ld), env: &(env) >> _ ) : void // end of [gmatcol_foreachcol_env] (* ****** ****** *) fun{ a1,a2:t0p}{env:vt0p } gmatcol_foreachcol2$fwork{m:int} ( col1: &GVT (a1, m, 1) >> _ , col2: &GVT (a2, m, 1) >> _ , m: int (m), env: &(env) >> _ ) : void // end of [gmatcol_foreachcol$fwork] fun{ a1,a2:t0p } gmatcol_foreachcol2 {m,n:int}{ld1,ld2:int} ( M1: &gmatcol(a1, m, n, ld1) >> _ , M2: &gmatcol(a2, m, n, ld2) >> _ , int(m), int(n), int(ld1), int(ld2) ) : void // end of [gmatcol_foreachcol] fun{ a1,a2:t0p}{env:vt0p } gmatcol_foreachcol2_env {m,n:int}{ld1,ld2:int} ( M1: &gmatcol(a1, m, n, ld1) >> _ , M2: &gmatcol(a2, m, n, ld2) >> _ , int(m), int(n), int(ld1), int(ld2) , env: &(env) >> _ ) : void // end of [gmatcol_foreachcol2_env] (* ****** ****** *) (* end of [gmatrix_col.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/linmap_skiplist.sats0000644000175000017500000000317613431250607023017 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linmap_skiplist" (* ****** ****** *) #include "./SHARE/linmap.hats" #include "./SHARE/linmap_node.hats" (* ****** ****** *) fun linmap_skiplist_initize (): void (* ****** ****** *) (* end of [linmap_skiplist.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/hashtbl_chain.sats0000644000175000017500000000364413431250607022404 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A hashtable implementation where the buckets ** associated with keys are represented as doubly-linked lists ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: March, 2010 // based on a version done in October, 2008 ** *) (* ****** ****** *) // // HX-2013-01: // // ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.hashtbl_chain" // (* ****** ****** *) #include "./SHARE/hashtbl.hats" (* ****** ****** *) absvtype chain_vtype(key:t@ype, itm:vt@ype+) = ptr (* ****** ****** *) vtypedef chain(key:t0p, itm:vt0p) = chain_vtype(key, itm) (* ****** ****** *) (* end of [hashtbl_chain.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/funralist_nested.sats0000644000175000017500000000303513431250607023160 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: May, 2012 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.funralist_nested" // (* ****** ****** *) #include "./SHARE/funralist.hats" (* ****** ****** *) (* end of [funralist_nested.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/refcount.sats0000644000175000017500000000424113431250607021434 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.refcount" (* ****** ****** *) // absvtype // invariant refcnt_vt0ype_vtype(a:vt@ype) = ptr // stadef refcnt = refcnt_vt0ype_vtype // (* ****** ****** *) fun {a:vt0p} refcnt(x0: a): refcnt(a) fun{a:vt0p} refcnt_make_elt(x0: a): refcnt(a) (* ****** ****** *) // fun{a:vt0p} refcnt_get_count(!refcnt(a)): intGte(1) // (* ****** ****** *) fun{a:vt0p} refcnt_incref (!refcnt(a)): refcnt(a) (* ****** ****** *) fun{a:vt0p} refcnt_decref ( rfc: refcnt(a), x: &a? >> opt(a, b) ) : #[b:bool] bool(b) // end-of-fun fun{a:vt0p} refcnt_decref_opt (rfc: refcnt(a)): Option_vt(a) (* ****** ****** *) fun{a:vt0p} refcnt_vtakeout (rfc: !refcnt(a)) : [l:addr] (a @ l, a @ l - void | ptr l) // end of [refcnt_vtakeout] (* ****** ****** *) (* end of [refcount.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/gnode.sats0000644000175000017500000001260613431250607020707 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // AuthorEmail: hwxi AT cs DOT bu DOT edu // Start time: December, 2012 // (* ****** ****** *) // // HX: there is no involvement of malloc/free // HX: generic nodes: singly-linked, doubly-linked, ... // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.gnode" (* ****** ****** *) sortdef tk = tkind sortdef t0p = t@ype and vt0p = vt@ype (* ****** ****** *) // abstype gnode (tk:tk, a:vt@ype+, l:addr) = ptr // typedef gnode (tk:tk, a:vt0p) = [l:addr] gnode (tk, a, l) typedef gnode0 (tk:tk, a:vt0p) = [l:addr | l >= null] gnode (tk, a, l) typedef gnode1 (tk:tk, a:vt0p) = [l:addr | l > null] gnode (tk, a, l) // (* ****** ****** *) praxi lemma_gnode {tk:tk}{a:vt0p}{l:addr} (nx: gnode (tk, a, l)): [l >= null] void // end of [lemma_gnode] (* ****** ****** *) castfn gnode2ptr {tk:tk}{a:vt0p}{l:addr} (nx: gnode (tk, a, l)):<> ptr (l) (* ****** ****** *) fun{ } gnode_null {tk:tk}{a:vt0p} ():<> gnode (tk, a, null) // end of [gnode_null] (* ****** ****** *) fun{ } gnode_is_null {tk:tk}{a:vt0p}{l:addr} (nx: gnode (tk, INV(a), l)):<> bool (l==null) // end of [gnode_is_null] fun{ } gnode_isnot_null {tk:tk}{a:vt0p}{l:addr} (nx: gnode (tk, INV(a), l)):<> bool (l > null) // end of [gnode_isnot_null] (* ****** ****** *) fun{ tk:tk}{a:t0p } gnode_get_elt (nx: gnode1 (tk, INV(a))):<> (a) fun{ tk:tk}{a:t0p } gnode_set_elt (nx: gnode1 (tk, INV(a)), x0: a): void fun{ tk:tk}{a:vt0p } gnode_getref_elt (nx: gnode1 (tk, INV(a))):<> cPtr1 (a) (* ****** ****** *) fun{ tk:tk}{a:vt0p // implemented } gnode_get_next (nx: gnode1 (tk, INV(a))):<> gnode0 (tk, a) fun{ tk:tk}{a:vt0p // implemented } gnode_set_next (nx: gnode1 (tk, INV(a)), nx2: gnode (tk, a)): void fun{ tk:tk}{a:vt0p // implemented } gnode0_set_next (nx: gnode0 (tk, INV(a)), nx2: gnode (tk, a)): void fun{ tk:tk}{a:vt0p } gnode_set_next_null (nx: gnode1 (tk, INV(a))): void fun{ tk:tk}{a:vt0p } gnode0_set_next_null (nx: gnode0 (tk, INV(a))): void fun{ tk:tk}{a:vt0p } gnode_getref_next (nx: gnode1 (tk, INV(a))):<> cPtr1 (gnode0(tk, a)) (* ****** ****** *) fun{ tk:tk}{a:vt0p } gnode_get_prev (nx: gnode1 (tk, INV(a))):<> gnode0 (tk, a) fun{ tk:tk}{a:vt0p } gnode_set_prev (nx: gnode1 (tk, INV(a)), nx2: gnode (tk, a)): void fun{ tk:tk}{a:vt0p } gnode0_set_prev (nx: gnode0 (tk, INV(a)), nx2: gnode (tk, a)): void fun{ tk:tk}{a:vt0p } gnode_set_prev_null (nx: gnode1 (tk, INV(a))): void fun{ tk:tk}{a:vt0p } gnode0_set_prev_null (nx: gnode0 (tk, INV(a))): void fun{ tk:tk}{a:vt0p } gnode_getref_prev (nx: gnode1 (tk, INV(a))):<> cPtr1 (gnode0 (tk, a)) (* ****** ****** *) (* fun{ tk:tk}{a:vt0p } gnode_link (nx1: gnode1 (tk, INV(a)), nx2: gnode1 (tk, a)): void *) fun{ tk:tk}{a:vt0p } gnode_link00 (nx1: gnode0 (tk, INV(a)), nx2: gnode0 (tk, a)): void fun{ tk:tk}{a:vt0p } gnode_link01 (nx1: gnode0 (tk, INV(a)), nx2: gnode1 (tk, a)): void fun{ tk:tk}{a:vt0p } gnode_link10 (nx1: gnode1 (tk, INV(a)), nx2: gnode0 (tk, a)): void fun{ tk:tk}{a:vt0p } gnode_link11 (nx1: gnode1 (tk, INV(a)), nx2: gnode1 (tk, a)): void (* ****** ****** *) fun{ tk:tk}{a:vt0p } gnode_insert_next (nx1: gnode1 (tk, INV(a)), nx2: gnode1 (tk, a)): void // end of [gnode_insert_next] fun{ tk:tk}{a:vt0p } gnode_insert_prev (nx1: gnode1 (tk, INV(a)), nx2: gnode1 (tk, a)): void // end of [gnode_insert_prev] (* ****** ****** *) fun{ tk:tk}{a:vt0p } gnode_remove (nx: gnode1 (tk, INV(a))): gnode1 (tk, a) fun{ tk:tk}{a:vt0p } gnode_remove_next (nx: gnode1 (tk, INV(a))): gnode0 (tk, a) fun{ tk:tk}{a:vt0p } gnode_remove_prev (nx: gnode1 (tk, INV(a))): gnode0 (tk, a) (* ****** ****** *) macdef gnodelst_is_nil (nxs) = gnode_is_null (,(nxs)) macdef gnodelst_is_cons (nxs) = gnode_isnot_null (,(nxs)) (* ****** ****** *) fun{ tk:tk}{a:vt0p } gnodelst_length (nxs: gnode0 (tk, INV(a))):<> intGte(0) fun{ tk:tk}{a:vt0p } gnodelst_rlength (nxs: gnode0 (tk, INV(a))):<> intGte(0) (* ****** ****** *) fun{ tk:tk}{a:vt0p } gnodelst_next_all (nxs: gnode1 (tk, INV(a))):<> gnode1 (tk, a) fun{ tk:tk}{a:vt0p } gnodelst_prev_all (nxs: gnode1 (tk, INV(a))):<> gnode1 (tk, a) (* ****** ****** *) (* end of [gnode.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/fundeque_fngtree.sats0000644000175000017500000000265213431250607023141 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.fundeque_fngtree" // (* ****** ****** *) #include "./SHARE/fundeque.hats" (* ****** ****** *) (* end of [fundeque_fngtree.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/bitvec.sats0000644000175000017500000001314513431250607021066 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A standard bit-vector implementation ** *) (* ****** ****** *) // // HX-2014-12: // ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.bitvec" // (* ****** ****** *) // abst@ype bitvec_t0ype(n:int) // typedef bitvec (n:int) = bitvec_t0ype(n) // (* ****** ****** *) typedef bit = natLt(2) (* ****** ****** *) // absvtype bitvecptr_vtype(l:addr, n:int) = ptr(l) vtypedef bitvecptr (l:addr, n:int) = bitvecptr_vtype(l, n) // (* ****** ****** *) // vtypedef bitvecptr (n:int) = [l:addr] bitvecptr(l, n) // (* ****** ****** *) // castfn bitvecptr2ptr {l:addr}{n:int} (bvp: !bitvecptr(l, n)):<> ptr(l) // overload ptrcast with bitvecptr2ptr // (* ****** ****** *) // fun{} bitvec_get_wordsize ():<> intGt(0) fun{} bitvec_get_wordsize_log ():<> intGte(0) // (* ****** ****** *) // fun{} bitvecptr_make_none {n:nat}(n: int(n)): bitvecptr(n) fun{} bitvecptr_make_full {n:nat}(n: int(n)): bitvecptr(n) // (* ****** ****** *) fun{} bitvecptr_free{n:int}(bitvecptr(n)): void (* ****** ****** *) // fun{} bitvec_get_at{n:int} (vec: &bitvec(n), i: natLt(n)): bit fun{} bitvec_set_at{n:int} (vec: &bitvec(n) >> _, i: natLt(n), b: bit): void fun{} bitvec_flip_at{n:int} (vec: &bitvec(n) >> _, i: natLt(n)): void // (* ****** ****** *) // fun{} bitvecptr_get_at {l:addr}{n:int} (bvp: !bitvecptr(l, n), i: natLt(n)): bit fun{} bitvecptr_set_at {l:addr}{n:int} (bvp: !bitvecptr(l, n) >> _, i: natLt(n), b: bit): void fun{} bitvecptr_flip_at {l:addr}{n:int} (bvp: !bitvecptr(l, n) >> _, i: natLt(n)): void // (* ****** ****** *) overload [] with bitvec_get_at overload [] with bitvec_set_at overload [] with bitvecptr_get_at overload [] with bitvecptr_set_at (* ****** ****** *) // fun{} bitvec_is_none {n:int}(&bitvec(n), int(n)):<> bool fun{} bitvecptr_is_none {l:addr}{n:int}(!bitvecptr(n), int(n)):<> bool // fun{} bitvec_is_full {n:int}(&bitvec(n), int(n)):<> bool fun{} bitvecptr_is_full {l:addr}{n:int}(!bitvecptr(l,n), int(n)):<> bool // (* ****** ****** *) // fun{} bitvec_equal{n:int} (&bitvec(n), &bitvec(n), int(n)):<> bool fun{} bitvec_notequal{n:int} (&bitvec(n), &bitvec(n), int(n)):<> bool // fun{} bitvecptr_equal {l1,l2:addr}{n:int} (x1: !bitvecptr(l1, n), x2: !bitvecptr(l2, n), int(n)):<> bool fun{} bitvecptr_notequal {l1,l2:addr}{n:int} (x1: !bitvecptr(l1, n), x2: !bitvecptr(l2, n), int(n)):<> bool // (* ****** ****** *) // fun{} bitvec_copy{n:int} (x1: &bitvec(n) >> _, x2: &bitvec(n), int(n)): void // (* ****** ****** *) // fun{} bitvec_lnot {n:int}(x: &bitvec(n) >> _, int(n)): void fun{} bitvecptr_lnot{l:addr} {n:int}(x: !bitvecptr(l, n) >> _, int(n)): void // (* ****** ****** *) // fun{} bitvec_lor{n:int} (x1: &bitvec(n) >> _, x2: &bitvec(n), int(n)): void fun{} bitvec_lxor{n:int} (x1: &bitvec(n) >> _, x2: &bitvec(n), int(n)): void fun{} bitvec_land{n:int} (x1: &bitvec(n) >> _, x2: &bitvec(n), int(n)): void // fun{} bitvecptr_lor{l1,l2:addr}{n:int} ( x1: !bitvecptr(l1, n) >> _, x2: !bitvecptr(l2, n), int(n) ) : void // end-of-function fun{} bitvecptr_lxor{l1,l2:addr}{n:int} ( x1: !bitvecptr(l1, n) >> _, x2: !bitvecptr(l2, n), int(n) ) : void // end-of-function fun{} bitvecptr_land{l1,l2:addr}{n:int} ( x1: !bitvecptr(l1, n) >> _, x2: !bitvecptr(l2, n), int(n) ) : void // end-of-function // (* ****** ****** *) // fun{} fprint_bitvec$word(out: FILEref, w: uintptr): void fun{} fprint_bitvec{n:int} (out: FILEref, vec: &bitvec(n), n: int(n)): void fun{} fprint_bitvecptr{l:addr}{n:int} (out: FILEref, bvp: !bitvecptr(l, n), n: int(n)): void // (* ****** ****** *) // fun{} bitvec_tabulate$fopr(i: intGte(0)): bit fun{} bitvecptr_tabulate{n:nat}(nbit: int(n)): bitvecptr(n) // (* ****** ****** *) // fun{} bitvec_foreach{n:int} (vec: &bitvec(n), n: int(n)): void fun{ env:vt0p } bitvec_foreach_env{n:int} (vec: &bitvec(n), n: int(n), env: &env >> _): void // fun{ env:vt0p } bitvec_foreach$fwork{n:nat} (w: &uintptr >> _, n: int(n), env: &(env) >> _): void fun{ env:vt0p } bitvec_foreach$fworkbit (b: bit, env: &(env) >> _): void // (* ****** ****** *) // fun{} bitvecptr_foreach {l:addr}{n:int} (bvp: !bitvecptr(l, n) >> _, n: int(n)): void fun{ env:vt0p } bitvecptr_foreach_env {l:addr}{n:int} (bvp: !bitvecptr(l, n) >> _, n: int(n), env: &env >> _): void // (* ****** ****** *) (* end of [bitvec.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/gvector.sats0000644000175000017500000001320313431250607021256 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.gvector" (* ****** ****** *) // // HX-2013-07: // generic vector: // element type, length/size, delta // abst@ype gvector_t0ype (a:t@ype, n:int, d:int) (*irregular*) // typedef gvector (a:t0p, n:int, d:int) = gvector_t0ype (a, n, d) // (* ****** ****** *) // viewdef gvector_v (a:t0p, l:addr, n:int, d:int) = gvector (a, n, d) @ l // (* ****** ****** *) stadef GVT = gvector stadef GVT = gvector_v (* ****** ****** *) // praxi lemma_gvector_param {a:t0p}{n:int}{d:int} (v: &GVT(a, n, d)): [n >= 0; d >= 1] void praxi lemma_gvector_v_param {a:t0p}{l:addr}{n:int}{d:int} (pf: !GVT(a, l, n, d)): [n >= 0; d >= 1] void // (* ****** ****** *) // (* // HX-2013-07: // Don't use [gmatrix_initize] // unless you know what you are doing *) praxi gvector_initize {a:t0p}{n:int}{d:int} (&GVT(a?, n, d) >> GVT(a, n, d)): void praxi gvector_uninitize {a:t0p}{n:int}{d:int} (&GVT(a, n, d) >> GVT(a?, n, d)): void // (* ****** ****** *) praxi array2gvector {a:t0p}{l:addr}{n:int} (A: &array(INV(a), n) >> GVT(a, n, 1)): void // end [array2gvector] praxi array2gvector_v {a:t0p}{l:addr}{n:int} (pf: array_v(INV(a), l, n)): GVT(a, l, n, 1) // end [array2gvector_v] (* ****** ****** *) praxi gvector2array {a:t0p}{l:addr}{n:int} (V: &GVT(a, n, 1) >> array (a, n)): void // end [gvector2array] praxi gvector2array_v {a:t0p}{l:addr}{n:int} (pf: GVT(a, l, n, 1)): array_v (a, l, n) // end [gvector2array_v] (* ****** ****** *) // praxi gvector_v_renil {a1,a2:t0p} {l:addr}{n:int}{d:int} (pf: GVT(a1, l, 0, d)): GVT(a2, l, 0, d) // praxi gvector_v_cons {a:t0p}{l:addr}{n:int}{d:int} ( pf1: a @ l, pf2: GVT(a, l+d*sizeof(a), n, d) ) : GVT(a, l, n+1, d) // endfun praxi gvector_v_uncons {a:t0p}{l:addr} {n:int | n > 0}{d:int} (pf: GVT(a, l, n, d)): (a @ l, GVT(a, l+d*sizeof(a), n-1, d)) // (* ****** ****** *) praxi gvector_v_split {a:t0p} {l:addr} {n:int}{d:int} {i:nat | i <= n} (GVT(a, l, n, d)): (GVT(a, l, i, d), GVT(a, l+i*d*sizeof(a), n-i, d)) // end of [gvector_v_split] praxi gvector_v_unsplit {a:t0p} {l:addr} {n1,n2:int}{d:int} (GVT(a, l, n1, d), GVT(a, l+n1*d*sizeof(a), n2, d)): GVT(a, l, n1+n2, d) // end of [gvector_v_unsplit] (* ****** ****** *) fun{a:t0p} gvector_get_at {n:int}{d:int} ( V: &GVT(a, n, d), d: int d, i: natLt(n) ) : a // end of [gvector_get_at] fun{a:t0p} gvector_set_at {n:int}{d:int} ( V: &GVT(a, n, d), d: int d, i: natLt(n), x: a ) : void // end of [gvector_set_at] fun{a:t0p} gvector_getref_at {n:int}{d:int} (V: &GVT(a, n, d), d: int d, i: natLt(n)): cPtr1(a) // end of [gvector_getref_at] (* ****** ****** *) fun{} fprint_gvector$sep (out: FILEref): void fun{a:t0p} fprint_gvector{n:int}{d:int} ( out: FILEref, V: &GVT(a, n, d), int n, int d ) : void // end of [fprint_gvector] (* ****** ****** *) fun{a:t0p} gvector_copyto {n:int}{d1,d2:int} ( V1: &GVT(a, n, d1) , V2: &GVT(a?, n, d2) >> GVT(a, n, d2), int(n), int(d1), int(d2) ) : void // end of [gvector_copyto] fun{a:t0p} gvector_exchange {n:int}{d1,d2:int} ( V1: &GVT(a, n, d1), V2: &GVT(a, n, d2), int(n), int(d1), int(d2) ) : void // end of [gvector_exchange] (* ****** ****** *) // fun{ a:t0p}{env:vt0p } gvector_foreach$cont {n:int}{d:int} (x: &a, env: &env): bool fun{ a:t0p}{env:vt0p } gvector_foreach$fwork {n:int}{d:int} (x: &a >> _, env: &env >> _): void // fun{a:t0p} gvector_foreach{n:int}{d:int} (V: &GVT(a, n, d) >> _, n: int n, d: int d): natLte(n) fun{ a:t0p}{env:vt0p } gvector_foreach_env{n:int}{d:int} ( V: &GVT(a, n, d) >> _, n: int n, d: int d, env: &(env) >> _ ) : natLte(n) // end of [gvector_foreach_env] // (* ****** ****** *) // fun{ a,b:t0p}{env:vt0p } gvector_foreach2$cont {n:int}{d:int} (x: &a, y: &b, env: &env): bool fun{ a,b:t0p}{env:vt0p } gvector_foreach2$fwork {n:int}{d:int} (x: &a >> _, y: &b >> _, env: &env >> _): void // fun{a,b:t0p} gvector_foreach2 {n:int}{d1,d2:int} ( V1: &GVT(a, n, d1) >> _ , V2: &GVT(b, n, d2) >> _ , n: int (n), d1: int (d1), d2: int (d2) ) : natLte(n) // end of [gvector_foreach2] fun{ a,b:t0p}{env:vt0p } gvector_foreach2_env {n:int}{d1,d2:int} ( V1: &GVT(a, n, d1) >> _ , V2: &GVT(b, n, d2) >> _ , n: int (n), d1: int (d1), d2: int (d2) , env: &env >> _ ) : natLte(n) // end of [gvector_foreach2_env] // (* ****** ****** *) (* end of [gvector.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/gfarray.sats0000644000175000017500000001107413431250607021244 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Time: December, 2012 // (* ****** ****** *) // // HX: generic arrays (fully indexed) // (* ****** ****** *) // // HX-2012-11-30: ported to ATS/Postiats from ATS/Anairiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.gfarray" (* ****** ****** *) staload "libats/SATS/ilist_prf.sats" // for handling integer sequences (* ****** ****** *) (* // HX: [stamped_vt] is introduced in prelude/basics_pre.sats *) (* ****** ****** *) dataview gfarray_v ( a:vt@ype+, addr, ilist ) = | {l:addr} gfarray_v_nil (a, l, ilist_nil) of () | {x:int}{xs:ilist}{l:addr} gfarray_v_cons (a, l, ilist_cons (x, xs)) of (stamped_vt (a, x) @ l, gfarray_v (a, l+sizeof(a), xs)) // end of [gfarray_v_cons] // end of [gfarray_v] (* ****** ****** *) prfun gfarray2array_v {a:vt@ype}{xs:ilist}{l:addr} (pf: gfarray_v (a, l, xs)): [n:nat] (LENGTH (xs, n), array_v (a, l, n)) // end of [gfarray2array_v] (* ****** ****** *) prfun gfarray_v_sing {a:vt@ype}{l:addr}{x:int} (pf: stamped_vt (a, x) @ l): gfarray_v (a, l, ilist_sing(x)) // end of [gfarray_v_sing] prfun gfarray_v_unsing {a:vt@ype}{l:addr}{x:int} (pf: gfarray_v (a, l, ilist_sing(x))): stamped_vt (a, x) @ l // end of [gfarray_v_unsing] (* ****** ****** *) prfun gfarray_v_split {a:vt0p} {l:addr} {xs:ilist} {n:int} {i:nat | i <= n} ( pflen: LENGTH (xs, n) , pfarr: gfarray_v (a, l, xs) ) : [xs1,xs2:ilist] ( LENGTH (xs1, i) , LENGTH (xs2, n-i) , APPEND (xs1, xs2, xs) , gfarray_v (a, l, xs1) , gfarray_v (a, l+i*sizeof(a), xs2) ) // end of [gfarray_v_split] (* ****** ****** *) prfun gfarray_v_unsplit {a:vt0p} {l:addr} {xs1,xs2:ilist} {n1:int} ( pflen: LENGTH (xs1, n1) , pfarr1: gfarray_v (a, l, xs1) , pfarr2: gfarray_v (a, l+n1*sizeof(a), xs2) ) : [xs:ilist] ( APPEND (xs1, xs2, xs), gfarray_v (a, l, xs) ) // end of [gfarray_v_unsplit] (* ****** ****** *) prfun gfarray_v_extend {a:vt0p} {l:addr} {xs:ilist}{x:int}{xsx:ilist} {n:nat} ( pflen: LENGTH (xs, n) , pfsnoc: SNOC (xs, x, xsx) , pfat: stamped_vt (a, x) @ l+n*sizeof(a) , pfarr: gfarray_v (a, l, xs) ) : gfarray_v (a, l, xsx) // endfun (* ****** ****** *) prfun gfarray_v_unextend {a:vt0p} {l:addr} {xs:ilist} {n:int | n > 0} ( pflen: LENGTH (xs, n) , pfarr: gfarray_v (a, l, xs) ) : [xsf:ilist;x:int] // xsf: the front ( SNOC (xsf, x, xs) , stamped_vt (a, x) @ l+(n-1)*sizeof(a), gfarray_v (a, l, xsf) ) (* end of [gfarray_v_unextend] *) (* ****** ****** *) fun {a:t0p} gfarray_get_at {l:addr} {x0:int}{xs:ilist} {i0:int} ( pf1: NTH(x0, xs, i0) , pf2: !gfarray_v (a, l, xs) | gp0: ptr (l), i0: size_t (i0) ) :<> stamped_t (a, x0) // end (* ****** ****** *) fun {a:t0p} gfarray_set_at {l:addr} {x0:int}{xs1:ilist}{xs2:ilist} {i0:int} ( pf1: UPDATE(x0, xs1, i0, xs2) , pf2: !gfarray_v(a, l, xs1) >> gfarray_v(a, l, xs2) | gp0: ptr (l), i0: size_t (i0), x0: stamped_t (a, x0) ) : void // end of [gfarray_set_at] (* ****** ****** *) fun {a:vt0p} gfarray_exch_at {l:addr} {x0:int}{x1:int} {xs1:ilist}{xs2:ilist} {i:int} ( pf1: NTH(x1, xs1, i) , pf2: UPDATE(x0, xs1, i, xs2) , pf3: !gfarray_v (a, l, xs1) >> gfarray_v (a, l, xs2) | p: ptr l, i: size_t i, x0: &stamped_vt (a, x0) >> stamped_vt (a, x1) ) : void // end of [gfarray_exch_at] (* ****** ****** *) (* end of [gfarray.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/funmset_listord.sats0000644000175000017500000000337613431250607023040 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** Functional mset ** based on ordered lists ** ** Contributed by ** Hongwei Xi (hwxiATcsDOTbuDOTedu) ** Time: May 18, 2011 ** *) (* ****** ****** *) // // HX-2015-09: // ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.funmset_listord" // (* ****** ****** *) #include "./SHARE/funmset.hats" (* ****** ****** *) // castfn funmset2list{a:t0p} (xs: mset(INV(a))):<> List0 @(intGt(1), a) // (* ****** ****** *) (* end of [funmset_listord.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/gflist.sats0000644000175000017500000001213013431250607021073 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmmhwxiATgmailDOTcom // Time: October, 2010 // (* ****** ****** *) // // HX: generic lists (fully indexed) // (* ****** ****** *) // // HX-2012-11-27: // ported to ATS/Postiats from ATS/Anairiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.gflist" (* ****** ****** *) staload "libats/SATS/ilist_prf.sats" // for intseqs (* ****** ****** *) (* // HX: [stamped_t] is introduced in prelude/basics_pre.sats // HX: [stamped_vt] is introduced in prelude/basics_pre.sats *) (* ****** ****** *) datatype gflist ( a:t@ype+, ilist(*ind*) ) = // gflist | gflist_nil (a, ilist_nil) of () // end of [gflist_nil] | {x:int} {xs:ilist} gflist_cons (a, ilist_cons(x, xs)) of (stamped_t(a, x), gflist(a, xs)) // end of [gflist_cons] // end of [gflist] (* ****** ****** *) datavtype gflist_vt ( a:vt@ype+, ilist(*ind*) ) = | gflist_vt_nil (a, ilist_nil) of () // end of [gflis_vt_nil] | {x:int} {xs:ilist} gflist_vt_cons (a, ilist_cons (x, xs)) of (stamped_vt (a, x), gflist_vt (a, xs)) // end of [gflist_vt_cons] // end of [gflist_vt] (* ****** ****** *) // #define gflist_sing(x) gflist_cons(x, gflist_nil()) #define gflist_vt_sing(x) gflist_vt_cons(x, gflist_vt_nil()) // (* ****** ****** *) castfn gflist2list {a:t@ype}{xs:ilist} ( gflist(INV(a), xs) ) :<> [n:nat] (LENGTH (xs, n) | list(a, n)) // end of [gflist2list] castfn list2gflist {a:t@ype}{n:int} ( xs: list(INV(a), n) ) :<> [xs:ilist] (LENGTH(xs, n) | gflist(a, xs)) // end of [list2gflist] (* ****** ****** *) castfn gflist2list_vt {a:vt@ype}{xs:ilist} ( gflist_vt(INV(a), xs) ) :<> [n:nat] (LENGTH (xs, n) | list_vt (a, n)) // end of [gflist2list_vt] castfn list2gflist_vt {a:vt@ype}{n:int} ( xs: list_vt(INV(a), n) ) :<> [xs:ilist] (LENGTH(xs, n) | gflist_vt (a, xs)) // end of [list2gflist_vt] (* ****** ****** *) castfn gflist_vt2t {a:t@ype}{xs:ilist} (xs: gflist_vt(INV(a), xs)): gflist(a, xs) // end of [gflist_vt2t] (* ****** ****** *) // fun{a:t0p} gflist_length {xs:ilist} ( xs: gflist(INV(a), xs) ) :<> [n:nat] (LENGTH(xs, n) | int(n)) // end of [gflist_length] // (* ****** ****** *) fun{a:t0p} gflist_snoc {xs:ilist}{x0:int} ( xs: gflist(a, xs), x0: stamped_t(a, x0) ) : [xsx:ilist] (SNOC(xs, x0, xsx) | gflist_vt(a, xsx)) (* ****** ****** *) // fun{a:t0p} gflist_copy {xs:ilist} (xs: gflist(INV(a), xs)):<> gflist_vt (a, xs) // (* ****** ****** *) fun{a:t0p} gflist_append {xs1,xs2:ilist} ( xs1: gflist(INV(a), xs1), xs2: gflist(a, xs2) ) :<> [res:ilist] (APPEND(xs1, xs2, res) | gflist(a, res)) // end of [gflist_append] (* ****** ****** *) fun{a:t0p} gflist_revapp {xs1,xs2:ilist} ( xs1: gflist(INV(a), xs1), xs2: gflist(a, xs2) ) :<> [res:ilist] (REVAPP(xs1, xs2, res) | gflist(a, res)) // end of [gflist_revapp] (* ****** ****** *) fun{a:t0p} gflist_revapp1_vt {xs1,xs2:ilist} ( xs1: gflist_vt(INV(a), xs1), xs2: gflist(a, xs2) ) : [res:ilist] (REVAPP(xs1, xs2, res) | gflist(a, res)) // end of [gflist_revapp1_vt] fun{a:t0p} gflist_revapp2_vt {xs1,xs2:ilist} ( xs1: gflist(INV(a), xs1), xs2: gflist_vt(a, xs2) ) : [res:ilist] (REVAPP(xs1, xs2, res) | gflist_vt(a, res)) // end of [gflist_revapp2_vt] (* ****** ****** *) fun{a:t0p} gflist_reverse {xs:ilist} ( xs: gflist(INV(a), xs) ) :<> [ys:ilist] (REVERSE(xs, ys) | gflist_vt(a, ys)) // end of [gflist_reverse] (* ****** ****** *) // fun{a:t0p} gflist_get_at {xs:ilist}{x0:int}{i:int} ( pf: NTH(x0, xs, i) | xs: gflist(INV(a), xs), i: int(i) ) : stamped_t(a, x0) // end-of-function // (* ****** ****** *) // fun{a:t0p} gflist_mergesort {xs:ilist} ( xs: gflist(INV(a), xs) ) : [ys:ilist] (SORT(xs, ys) | gflist_vt(a, ys)) // fun{a:t0p} gflist_mergesort$cmp {x1,x2:int} (x1: stamped_t(a, x1), x2: stamped_t(a, x2)): int(sgn(x1-x2)) // (* ****** ****** *) (* end of [gflist.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/funmap_list.sats0000644000175000017500000000315213431250607022130 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** A functional map ** implementation based on lists *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: December, 2012 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.funmap_list" // (* ****** ****** *) // #include "./SHARE/funmap.hats" // (* ****** ****** *) (* end of [funmap_list.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/Number/0000755000175000017500000000000013431250607020142 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/SATS/Number/float.sats0000644000175000017500000000464613431250607022155 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2016-05: // (* ****** ****** *) // stacst neg_float: float -> float stadef ~ = neg_float // (* ****** ****** *) // stacst add_float_float: (float, float) -> float stacst sub_float_float: (float, float) -> float stacst mul_float_float: (float, float) -> float stacst div_float_float: (float, float) -> float // stadef + = add_float_float stadef - = sub_float_float stadef * = mul_float_float stadef / = div_float_float // (* ****** ****** *) // stacst lt_float_float: (float, float) -> bool stacst lte_float_float: (float, float) -> bool stacst gt_float_float: (float, float) -> bool stacst gte_float_float: (float, float) -> bool stacst eq_float_float: (float, float) -> bool stacst neq_float_float: (float, float) -> bool // stadef < = lt_float_float stadef <= = lte_float_float stadef > = gt_float_float stadef >= = gte_float_float stadef == = eq_float_float stadef != = neq_float_float // (* ****** ****** *) // stacst int2float : int -> float stadef i2f = int2float // (* ****** ****** *) // stacst abs_float: float -> float stadef abs = abs_float // stacst sqrt_float: float -> float stadef sqrt = sqrt_float // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/Number/real.sats0000644000175000017500000001142313431250607021762 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2016-05: // (* ****** ****** *) // (* // HX: // it is built-in datasort real = // // abstract sort for real numbers *) // (* ****** ****** *) // stacst neg_real : real -> real = "ext#" // stadef ~ = neg_real // (* ****** ****** *) // stacst add_real_real: (real, real) -> real = "ext#" stacst sub_real_real: (real, real) -> real = "ext#" stacst mul_real_real: (real, real) -> real = "ext#" stacst div_real_real: (real, real) -> real = "ext#" // stadef + = add_real_real stadef - = sub_real_real stadef * = mul_real_real stadef / = div_real_real // (* ****** ****** *) // stacst int2real: int -> real = "ext#" stacst intint2real: (int, int) -> real = "ext#" // stadef i2r = int2real stadef ii2r = intint2real // (* ****** ****** *) // stacst sgn_real : real -> int = "ext#" // (* ****** ****** *) // stacst floor_real : real -> int = "ext#" // (* ****** ****** *) // (* stacst add_int_real: (int, real) -> real stacst add_real_int: (real, int) -> real stacst sub_int_real: (int, real) -> real stacst sub_real_int: (real, int) -> real stacst mul_int_real: (int, real) -> real stacst div_real_int: (real, int) -> real *) // stadef add_int_real (i: int, x: real) = add_real_real(i2r(i), x) stadef add_real_int (x: real, i: int) = add_real_real(x, i2r(i)) // stadef sub_int_real (i: int, x: real) = sub_real_real(i2r(i), x) stadef sub_real_int (x: real, i: int) = sub_real_real(x, i2r(i)) // stadef mul_int_real (i: int, x: real) = mul_real_real(i2r(i), x) stadef div_real_int (x: real, i: int) = div_real_real(x, i2r(i)) // stadef + = add_int_real stadef + = add_real_int stadef - = sub_int_real stadef - = sub_real_int stadef * = mul_int_real stadef / = div_real_int // (* ****** ****** *) // stacst lt_real_real: (real, real) -> bool = "ext#" stacst lte_real_real: (real, real) -> bool = "ext#" stacst gt_real_real: (real, real) -> bool = "ext#" stacst gte_real_real: (real, real) -> bool = "ext#" stacst eq_real_real: (real, real) -> bool = "ext#" stacst neq_real_real: (real, real) -> bool = "ext#" // stadef < = lt_real_real stadef <= = lte_real_real stadef > = gt_real_real stadef >= = gte_real_real stadef == = eq_real_real stadef != = neq_real_real // (* ****** ****** *) // stadef lt_real_int (x: real, i: int) = lt_real_real(x, i2r(i)) stadef lte_real_int (x: real, i: int) = lte_real_real(x, i2r(i)) stadef gt_real_int (x: real, i: int) = gt_real_real(x, i2r(i)) stadef gte_real_int (x: real, i: int) = gte_real_real(x, i2r(i)) stadef eq_real_int (x: real, i: int) = eq_real_real(x, i2r(i)) stadef neq_real_int (x: real, i: int) = neq_real_real(x, i2r(i)) // stadef < = lt_real_int stadef <= = lte_real_int stadef > = gt_real_int stadef >= = gte_real_int stadef == = eq_real_int stadef != = neq_real_int // (* ****** ****** *) stacst float2real: float -> real = "ext#" stadef f2r = float2real (* ****** ****** *) // stacst abs_real: real -> real = "ext#" // stadef abs = abs_real // stacst sqrt_real: real -> real = "ext#" stacst cbrt_real: real -> real = "ext#" // stadef sqrt = sqrt_real stadef cbrt = cbrt_real // (* ****** ****** *) // praxi lemma_sqrt_def {x:real|x >= 0}(): [x==sqrt(x)*sqrt(x)] unit_p // praxi lemma_cbrt_def {x:real}((*void*)): [x==cbrt(x)*cbrt(x)*cbrt(x)] unit_p // (* ****** ****** *) // stacst sin_real: real -> real = "ext#" stacst cos_real: real -> real = "ext#" stacst tan_real: real -> real = "ext#" stacst cot_real: real -> real = "ext#" // stadef sin = sin_real and cos = cos_real stadef tan = tan_real and cot = cot_real // (* ****** ****** *) (* end of [real.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/Number/.keeper0000644000175000017500000000000013431250607021404 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/SATS/linset_avltree.sats0000644000175000017500000000320313431250607022624 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // Time: October, 2010 // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linset_avltree" (* ****** ****** *) #include "./SHARE/linset.hats" #include "./SHARE/linset_node.hats" (* ****** ****** *) fun{a:t0p} linset_avltree_height (!set(INV(a))):<> intGte (0) (* ****** ****** *) (* end of [linset_avltree.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/linmap_avltree.sats0000644000175000017500000000325313431250607022613 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.linmap_avltree" // (* ****** ****** *) #include "./SHARE/linmap.hats" #include "./SHARE/linmap_node.hats" (* ****** ****** *) fun {key:t0p;itm:vt0p} linmap_avltree_height(map: !map (key, itm)):<> intGte(0) (* ****** ****** *) (* end of [linmap_avltree.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/hashfun.sats0000644000175000017500000000326413431250607021247 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2013-09: // A collection of hash functions // (* ****** ****** *) %{# #include "libats/CATS/hashfun.cats" %} // end of [%{#] (* ****** ****** *) fun{} inthash_jenkins (uint32):<> uint32 (* ****** ****** *) /* ** HX: ** res(0) = H0 ** res(i+1) = K*res(i) + str[i] */ fun{} string_hash_multiplier (K: ulint, H0: ulint, str: string):<> ulint // end of [string_hash_multiplier] (* ****** ****** *) (* end of [hashfun.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/hashtbl_linprb.sats0000644000175000017500000000362213431250607022604 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A hashtable implementation based on linear probing ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: March, 2010 ** *) (* ****** ****** *) // // HX-2014-05: // ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.hashtbl_linprb" (* ****** ****** *) #include "./SHARE/hashtbl.hats" (* ****** ****** *) // // HX-2014-05: // these functions are special for hashtbl_linprb // fun{ key,itm:vt0p } hashtbl_linprb_keyitm_nullize(&(key,itm)? >> _): void fun{ key,itm:vt0p } hashtbl_linprb_keyitm_is_null(kx: &(key, itm)): bool // (* ****** ****** *) (* end of [hashtbl_linprb.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/funset_avltree.sats0000644000175000017500000000344613431250607022643 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A functional set ** implementation based on AVL trees ** ** Contributed by ** Hongwei Xi (hwxiATcsDOTbuDOTedu) ** Time: May, 2011 // based on a version done in October, 2008 ** *) (* ****** ****** *) // // HX-2012-12: // it is ported // to ATS/Postitats // from ATS/Anairiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.funset_avltree" (* ****** ****** *) #include "./SHARE/funset.hats" (* ****** ****** *) fun{a:t0p} funset_avltree_height(xs: set(a)):<> intGte(0) (* ****** ****** *) (* end of [funset_avltree.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/dllist.sats0000644000175000017500000002216613431250607021110 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) (* ****** ****** *) // // HX-2012-12: ported to ATS/Postiats from ATS/Anairiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.dllist" (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) (* ** ** HX-2012-02-29: ** dllist (a, f, r) means that there are f elements in ** front of the current one while r-1 elements after it. So the ** total number of elements is f+r. If f=r=0, then the list is ** empty. ** *) absvtype dllist_vtype (a: viewt@ype+, f: int, r: int) = ptr // HX: f: front; r: rear stadef dllist = dllist_vtype // vtypedef Dllist (a) = [f,r:int] dllist (a, f, r) vtypedef Dllist0 (a) = [f,r:int | r >= 0] dllist (a, f, r) vtypedef Dllist1 (a) = [f,r:int | r >= 1] dllist (a, f, r) // (* ****** ****** *) castfn dllist2ptr {a:vt0p} (xs: !Dllist (INV(a))):<> Ptr0 castfn dllist2ptr1 {a:vt0p} (xs: !Dllist1 (INV(a))):<> Ptr1 (* ****** ****** *) praxi lemma1_dllist_param {a:vt0p} {f,r:int} (xs: !dllist (INV(a), f, r)): [f >= 0;r >= 0] void // end of [lemma_dllist_param] praxi lemma2_dllist_param {a:vt0p} {f,r:int | f > 0} (xs: !dllist (INV(a), f, r)): [r > 0] void // end of [lemma2_dllist_param] praxi lemma3_dllist_param {a:vt0p} {f,r:int | r <= 0} (xs: !dllist (INV(a), f, r)): [f == 0] void // end of [lemma3_dllist_param] (* ****** ****** *) fun{} dllist_nil {a:vt0p} ():<> dllist (a, 0, 0) (* ****** ****** *) praxi dllist_free_nil {a:vt0p}{f:int} (xs: dllist (INV(a), f, 0)): void // end of [dllist_free_nil] (* ****** ****** *) fun{a:vt0p} dllist_sing (x: a): dllist (a, 0, 1) (* ****** ****** *) fun{a:vt0p} dllist_cons{r:int} (x: a, xs: dllist (INV(a), 0, r)): dllist (a, 0, r+1) // end of [dllist_cons] fun{a:vt0p} dllist_uncons{r:int | r > 0} (xs: &dllist (INV(a), 0, r) >> dllist (a, 0, r-1)): (a) // end of [dllist_uncons] (* ****** ****** *) fun{a:vt0p} dllist_snoc{f:int} (xs: dllist (INV(a), f, 1), x: a): dllist (a, f+1, 1) // end of [dllist_snoc] fun{a:vt0p} dllist_unsnoc{f:int | f > 0} (xs: &dllist (INV(a), f, 1) >> dllist (a, f-1, 1)): (a) // end of [dllist_unsnoc] (* ****** ****** *) fun{a:t0p} dllist_make_list {n:int} (xs: list (INV(a), n)): dllist (a, 0, n) // end of [dllist_make_list] (* ****** ****** *) fun{ } dllist_is_nil {a:vt0p}{f,r:int} (xs: !dllist (INV(a), f, r)):<> bool (r==0) // end of [dllist_is_nil] fun{ } dllist_is_cons {a:vt0p}{f,r:int} (xs: !dllist (INV(a), f, r)):<> bool (r > 0) // end of [dllist_is_cons] (* ****** ****** *) fun{a:vt0p} dllist_is_atbeg {f,r:int} (xs: !dllist (INV(a), f, r)):<> bool (f==0) // end of [dllist_is_atbeg] fun{a:vt0p} dllist_is_atend {f,r:int | r > 0} (xs: !dllist (INV(a), f, r)):<> bool (r==1) // end of [dllist_is_atend] fun{a:vt0p} rdllist_is_atbeg {f,r:int | r > 0} (xs: !dllist (INV(a), f, r)):<> bool (r==1) // end of [rdllist_is_atend] fun{a:vt0p} rdllist_is_atend {f,r:int} (xs: !dllist (INV(a), f, r)):<> bool (f==0) // end of [rdllist_is_atend] (* ****** ****** *) fun{a:vt0p} dllist_getref_elt (xs: !Dllist1 (INV(a))):<> cPtr1 (a) (* ****** ****** *) fun{a:vt0p} dllist_getref_next (xs: !Dllist1 (INV(a))):<> Ptr1 fun{a:vt0p} dllist_getref_prev (xs: !Dllist1 (INV(a))):<> Ptr1 (* ****** ****** *) fun{a:t0p} dllist_get_elt (xs: !Dllist1 (INV(a))): a fun{a:t0p} dllist_set_elt (xs: !Dllist1 (INV(a)), x0: a): void (* ****** ****** *) fun{a:vt0p} dllist_length {f,r:int} (xs: !dllist (INV(a), f, r)):<> int (r) // end of [dllist_length] fun{a:vt0p} rdllist_length {f,r:int} (xs: !dllist (INV(a), f, r)):<> int (f) // end of [rdllist_length] (* ****** ****** *) fun{a:vt0p} dllist_move {f,r:int | r > 1} (xs: dllist (INV(a), f, r)):<> dllist (a, f+1, r-1) fun{a:vt0p} dllist_move_all {f,r:int | r > 0} (xs: dllist (INV(a), f, r)):<> dllist (a, f+r-1, 1) // end of [dllist_move_all] (* ****** ****** *) fun{a:vt0p} rdllist_move {f,r:int | f > 0} (xs: dllist (INV(a), f, r)):<> dllist (a, f-1, r+1) fun{a:vt0p} rdllist_move_all {f,r:int | r >= 0} (xs: dllist (INV(a), f, r)):<> dllist (a, 0(*front*), f+r) // end of [rdllist_move_all] (* ****** ****** *) fun{a:vt0p} dllist_insert_next {f,r:int | r > 0} (xs: dllist (INV(a), f, r), x0: a): dllist (a, f, r+1) // end of [dllist_insert_next] fun{a:vt0p} dllist_insert_prev {f,r:int | r > 0} (xs: dllist (INV(a), f, r), x0: a): dllist (a, f, r+1) // end of [dllist_insert] (* ****** ****** *) fun{a:vt0p} dllist_takeout {f,r:int | r > 1} (xs: &dllist (INV(a), f, r) >> dllist (a, f, r-1)): (a) // end of [dllist_takeout] fun{a:vt0p} dllist_takeout_next {f,r:int | r > 1} (xs: &dllist (INV(a), f, r) >> dllist (a, f, r-1)): (a) // end of [dllist_takeout_next] (* ****** ****** *) fun{a:vt0p} rdllist_insert {f,r:int | r > 0} (xs: dllist (INV(a), f, r), x0: a): dllist (a, f+1, r) // end of [rdllist_insert] fun{a:vt0p} rdllist_takeout {f,r:int | f > 0} (xs: &dllist (INV(a), f, r) >> dllist (a, f-1, r)): (a) // end of [rdllist_takeout] (* ****** ****** *) fun{a:vt0p} dllist_append {f1,r1:int}{f2,r2:int} ( xs1: dllist (INV(a), f1, r1), xs2: dllist (a, f2, r2) ) : dllist (a, f1, r1+f2+r2) // end of [dllist_append] fun{a:vt0p} rdllist_append {f1,r1:int}{f2,r2:int | r2 > 0} ( xs1: dllist (INV(a), f1, r1), xs2: dllist (a, f2, r2) ) : dllist (a, f1+r1+f2, r2) // end of [rdllist_append] (* ****** ****** *) fun{a:vt0p} dllist_reverse {f,r:int} (xs: dllist (INV(a), f, r)): dllist (a, f, r) // end of [dllist_reverse] fun{a:vt0p} rdllist_reverse {f,r:int} (xs: dllist (INV(a), f, r)): dllist (a, f, r) // end of [rdllist_reverse] (* ****** ****** *) fun{a:t0p} dllist_free {r:int} (xs: dllist (INV(a), 0, r)): void // end of [dllist_free] fun{a:vt0p} dllist_freelin$clear (x: &a >> a?): void fun{a:vt0p} dllist_freelin {r:int} (xs: dllist (INV(a), 0, r)): void (* ****** ****** *) fun{ a:vt0p}{env:vt0p } dllist_foreach$cont (x: &a, env: &env): bool fun{ a:vt0p}{env:vt0p } dllist_foreach$fwork (x: &a, env: &env >> _): void fun{a:vt0p} dllist_foreach (xs: !Dllist (INV(a))): void fun{ a:vt0p}{env:vt0p } dllist_foreach_env (xs: !Dllist (INV(a)), env: &env >> _): void // end of [dllist_foreach_env] (* ****** ****** *) fun{ a:vt0p}{env:vt0p } rdllist_foreach$cont (x: &a, env: &env): bool fun{ a:vt0p}{env:vt0p } rdllist_foreach$fwork (x: &a, env: &env >> _): void fun{a:vt0p} rdllist_foreach (xs: !Dllist (INV(a))): void fun{ a:vt0p}{env:vt0p } rdllist_foreach_env (xs: !Dllist (INV(a)), env: &env >> _): void // end of [rdllist_foreach_env] (* ****** ****** *) // fun{} fprint_dllist$sep (out: FILEref): void fun{a:vt0p} fprint_dllist (out: FILEref, xs: !Dllist (INV(a))): void // overload fprint with fprint_dllist // (* ****** ****** *) // fun{} fprint_rdllist$sep (out: FILEref): void fun{a:vt0p} fprint_rdllist (out: FILEref, xs: !Dllist (INV(a))): void // (* ****** ****** *) // // HX-2013-05: functions of ngc-version // (* ****** ****** *) staload "libats/SATS/gnode.sats" (* ****** ****** *) stadef mytkind = $extkind"libats_dllist" (* ****** ****** *) typedef g2node0 (a:vt0p) = gnode0 (mytkind, a) typedef g2node1 (a:vt0p) = gnode1 (mytkind, a) (* ****** ****** *) fun{a:vt0p} dllist_cons_ngc{r:int} (x: g2node1 (a), xs: dllist (INV(a), 0, r)): dllist (a, 0, r+1) // end of [dllist_cons_ngc] fun{a:vt0p} dllist_uncons_ngc{r:int | r > 0} (xs: &dllist (INV(a), 0, r) >> dllist (a, 0, r-1)): g2node1 (a) // end of [dllist_uncons_ngc] (* ****** ****** *) fun{a:vt0p} dllist_snoc_ngc{f:int} (xs: dllist (INV(a), f, 1), nx: g2node1 (a)): dllist (a, f+1, 1) // end of [dllist_snoc_ngc] fun{a:vt0p} dllist_unsnoc_ngc{f:int | f > 0} (xs: &dllist (INV(a), f, 1) >> dllist (a, f-1, 1)): g2node1 (a) // end of [dllist_unsnoc_ngc] (* ****** ****** *) (* end of [dllist.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/funmap_avltree.sats0000644000175000017500000000355513431250607022626 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A functional map implementation based on AVL trees ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: May, 2011 // based on a version done in October, 2008 ** *) (* ****** ****** *) // // HX-2012-12: // It is ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.funmap_avltree" // (* ****** ****** *) #include "./SHARE/funmap.hats" (* ****** ****** *) // // HX: for the purpose of gathering statics // fun{ key:t0p;itm:t0p } funmap_avltree_height (map: map (key, itm)):<> intGte(0) // (* ****** ****** *) (* end of [funmap_avltree.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/.keeper0000644000175000017500000000000013431250607020154 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/SATS/dynarray.sats0000644000175000017500000001376513431250607021453 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: May, 2013 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.dynarray" // (* ****** ****** *) %{# #include \ "libats/CATS/dynarray.cats" %} // end of [%{#] (* ****** ****** *) absvtype dynarray_vtype(a:vt@ype+) = ptr vtypedef dynarray(a:vt0p) = dynarray_vtype(a) (* ****** ****** *) // // HX: for recapacitizing policy // fun{} dynarray$recapacitize ((*void*)): int // (* ****** ****** *) fun{a:vt0p} dynarray_make_nil(cap: sizeGte(1)): dynarray(a) (* ****** ****** *) fun{} dynarray_free {a:t0p}(DA: dynarray(INV(a))): void // end of [dynarray_free] (* ****** ****** *) // fun{a:vt0p} fprint_dynarray (out: FILEref, DA: !dynarray(INV(a))): void // end of [fprint_dynarray] // fun{a:vt0p} fprint_dynarray_sep (out: FILEref, DA: !dynarray(INV(a)), sep: string): void // end of [fprint_dynarray_sep] // (* ****** ****** *) // fun{} dynarray_get_size {a:vt0p}(DA: !RD(dynarray(INV(a)))): size_t fun{} dynarray_get_capacity {a:vt0p}(DA: !RD(dynarray(INV(a)))): size_t // (* ****** ****** *) fun{} dynarray_get_array {a:vt0p} ( DA: !dynarray(INV(a)), n: &size_t? >> size_t(n) ) : #[l:addr;n:int] ( array_v(a, l, n), array_v(a, l, n) - void | ptr l ) // end of [dynarray_get_array] (* ****** ****** *) fun{} dynarray_getfree_arrayptr {a:vt0p} ( DA: dynarray(INV(a)), n: &size_t? >> size_t(n) ) : #[n:nat] arrayptr(a, n) (* ****** ****** *) // fun{a:t0p} dynarray_get_at_exn (DA: !dynarray(INV(a)), i: size_t): a fun{a:t0p} dynarray_set_at_exn (DA: !dynarray(INV(a)), i: size_t, x: a): void // overload [] with dynarray_get_at_exn overload [] with dynarray_set_at_exn // (* ****** ****** *) // fun{a:vt0p} dynarray_getref_at (DA: !RD(dynarray(INV(a))), i: size_t):<> cPtr0(a) // (* ****** ****** *) fun{a:vt0p} dynarray_insert_at ( DA: !dynarray(INV(a)), i: size_t, x: a, res: &a? >> opt(a, b) ) : #[b:bool] bool(b) // end of [dynarray_insert_at] (* ****** ****** *) // fun{a:vt0p} dynarray_insert_at_exn (DA: !dynarray(INV(a)), i: size_t, x: a): void fun{a:vt0p} dynarray_insert_at_opt (DA: !dynarray(INV(a)), i: size_t, x: a): Option_vt(a) // (* ****** ****** *) // fun{a:vt0p} dynarray_insert_atbeg_exn (DA: !dynarray(INV(a)), x: a): void fun{a:vt0p} dynarray_insert_atbeg_opt (DA: !dynarray(INV(a)), x: a): Option_vt(a) // fun{a:vt0p} dynarray_insert_atend_exn (DA: !dynarray(INV(a)), x: a): void fun{a:vt0p} dynarray_insert_atend_opt (DA: !dynarray(INV(a)), x: a): Option_vt(a) // (* ****** ****** *) fun{a:vt0p} dynarray_insertseq_at {n2:int} ( DA: !dynarray(INV(a)), i: size_t , xs: &array(a, n2) >> arrayopt(a, n2, b), n2: size_t(n2) ) : #[b:bool] bool(b) // end-of-fun (* ****** ****** *) fun{a:vt0p} dynarray_takeout_at ( DA: !dynarray(INV(a)), i: size_t, res: &a? >> opt(a, b) ) : #[b:bool] bool(b) // end of [dynarray_takeout_at] (* ****** ****** *) // fun{a:vt0p} dynarray_takeout_at_exn (DA: !dynarray(INV(a)), i: size_t): (a) fun{a:vt0p} dynarray_takeout_at_opt (DA: !dynarray(INV(a)), i: size_t): Option_vt(a) // (* ****** ****** *) fun{a:vt0p} dynarray_takeout_atbeg_exn (DA: !dynarray(INV(a))): (a) fun{a:vt0p} dynarray_takeout_atbeg_opt (DA: !dynarray(INV(a))): Option_vt(a) (* ****** ****** *) fun{a:vt0p} dynarray_takeout_atend_exn (DA: !dynarray(INV(a))): (a) fun{a:vt0p} dynarray_takeout_atend_opt (DA: !dynarray(INV(a))): Option_vt(a) (* ****** ****** *) fun{a:vt0p} dynarray_takeoutseq_at {n2:int} ( DA: !dynarray(INV(a)), i: size_t , xs: &array(a?, n2) >> arrayopt(a, n2, b), n2: size_t (n2) ) : #[b:bool] bool(b) // end-of-fun (* ****** ****** *) // fun{a:t@ype} dynarray_removeseq_at (DA: !dynarray(INV(a)), st: size_t, ln: size_t): size_t // (* ****** ****** *) // fun{a:vt0p} dynarray_listize0(DA: !dynarray(INV(a))): List0_vt(a) fun{a:t@ype} dynarray_listize1(DA: !dynarray(INV(a))): List0_vt(a) // (* ****** ****** *) fun{a:vt0p} dynarray_reset_capacity (DA: !dynarray(INV(a)), m2: sizeGte(1)): bool(*done/ignored*) // end of [dynarray_reset_capacity] (* ****** ****** *) fun{a:vt0p} dynarray_quicksort$cmp (x1: &RD(a), x2: &RD(a)):<> int fun{a:vt0p} dynarray_quicksort (DA: !dynarray(INV(a))): void (* ****** ****** *) abst@ype dynarray_struct = $extype"atslib_dynarray_struct" (* ****** ****** *) fun{} dynarray_make2_nil {a:vt0p}{l:addr} ( pf: dynarray_struct? @ l | p0: ptr(l), cap: sizeGte(1) ) : (mfree_ngc_v (l) | dynarray(a)) (* ****** ****** *) fun{} dynarray_getfree2_arrayptr {a:vt0p}{l:addr} ( pf: mfree_ngc_v (l) | p0: ptr l , DA: dynarray(a), n: &size_t? >> size_t(n) ) : #[n:int] (dynarray_struct? @ l | arrayptr(a, n)) (* ****** ****** *) overload .size with dynarray_get_size overload .capacity with dynarray_get_capacity (* ****** ****** *) (* end of [dynarray.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/linmap_randbst.sats0000644000175000017500000000340513431250607022605 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linmap_randbst" (* ****** ****** *) #include "./SHARE/linmap.hats" #include "./SHARE/linmap_node.hats" (* ****** ****** *) fun{} linmap_randbst_initize (): void (* ****** ****** *) fun{} linmap_randbst_random_m_n {m,n:nat} (m: int m, n: int n): natLt (2) // end of [linmap_randbst_random_m_n] (* ****** ****** *) (* end of [linmap_randbst.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/gmatrix.sats0000644000175000017500000001566313431250607021274 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.gmatrix" (* ****** ****** *) staload "libats/SATS/gvector.sats" (* ****** ****** *) // sortdef mord = int // stadef mrow: mord = 0 // row-major stadef mcol: mord = 1 // col-major // datatype MORD (int) = | MORDrow (mrow) of () | MORDcol (mcol) of () // typedef MORD = [mo:mord] MORD(mo) // (* ****** ****** *) // datasort transp = tpn | tpt | tpc datatype TRANSP (transp) = | TPN (tpn) of () | TPT (tpt) of () | TPC (tpc) of () // typedef TRANSP = [tp:transp] TRANSP(tp) // (* ****** ****** *) dataprop transpdim ( transp , int // row , int // col , int // row_new , int // col_new ) = | {m,n:int} TPDIM_N (tpn, m, n, m, n) of () | {m,n:int} TPDIM_T (tpt, m, n, n, m) of () | {m,n:int} TPDIM_C (tpc, m, n, n, m) of () // end of [transpdim] (* ****** ****** *) // // HX: [transp] is inverse // prfun transpdim_transp {tp:transp}{m1,n1:int}{m2,n2:int} (pf: transpdim (tp, m1, n1, m2, n2)): transpdim (tp, n1, m1, n2, m2) // end of [transpdim_transp] (* ****** ****** *) sortdef uplo = int stadef uplo_l: uplo = 0 // lo stadef uplo_u: uplo = 1 // up datatype UPLO (uplo) = UPLO_L (uplo_l) | UPLO_U (uplo_u) of () (* ****** ****** *) sortdef diag = int stadef diag_n: diag = 0 // non stadef diag_u: diag = 1 // unit datatype DIAG (diag) = DIAG_N (diag_n) | DIAG_U (diag_u) of () (* ****** ****** *) sortdef side = int stadef side_l: side = 0 // left stadef side_r: side = 1 // right datatype SIDE (side) = SIDE_L (side_l) | SIDE_R (side_r) of () (* ****** ****** *) // // HX-2013-07: // generic matrix: // element, row, col, ord, ld // abst@ype gmatrix_t0ype (a:t@ype, mo:mord, m:int, n:int, ld:int) (* irregular *) // typedef gmatrix (a:t0p, mo:mord, m:int, n:int, ld:int) = gmatrix_t0ype (a, mo, m, n, ld) viewdef gmatrix_v (a:t0p, mo:mord, l:addr, m:int, n:int, ld:int) = gmatrix_t0ype (a, mo, m, n, ld) @ l // stadef GMX = gmatrix stadef GMX = gmatrix_v // (* ****** ****** *) // typedef gmatrow (a:t0p, m:int, n:int, ld:int) = gmatrix_t0ype (a, mrow, m, n, ld) viewdef gmatrow_v (a:t0p, l:addr, m:int, n:int, ld:int) = gmatrix_t0ype (a, mrow, m, n, ld) @ l // stadef GMR = gmatrow stadef GMR = gmatrow_v // (* ****** ****** *) // typedef gmatcol (a:t0p, m:int, n:int, ld:int) = gmatrix_t0ype (a, mcol, m, n, ld) viewdef gmatcol_v (a:t0p, l:addr, m:int, n:int, ld:int) = gmatrix_t0ype (a, mcol, m, n, ld) @ l // stadef GMC = gmatcol stadef GMC = gmatcol_v // (* ****** ****** *) praxi lemma_gmatrix_param {a:t0p}{mo:mord} {m,n:int}{ld:int} (M: &GMX (a, mo, m, n, ld)) : [0 <= mo; mo <= 1; 0 <= m; 0 <= n; 0 <= ld] void praxi lemma_gmatrix_v_param {a:t0p}{mo:mord} {l:addr}{m,n:int}{ld:int} (pf: !GMX (a, mo, l, m, n, ld)) : [0 <= mo; mo <= 1; 0 <= m; 0 <= n; 0 <= ld] void (* ****** ****** *) // (* // HX-2013-07: // Don't use [gmatrix_initize] // unless you know what you are doing *) praxi gmatrix_initize {a:t0p}{mo:mord}{m,n:int}{ld:int} (&GMX(a?, mo, m, n, ld) >> GMX(a, mo, m, n, ld)): void praxi gmatrix_uninitize {a:t0p}{mo:mord}{m,n:int}{ld:int} (&GMX(a, mo, m, n, ld) >> GMX(a?, mo, m, n, ld)): void // (* ****** ****** *) // praxi gmatrix_flipord {a:t0p}{mo:mord} {m,n:int}{ld:int} (M: &GMX(a, mo, m, n, ld) >> GMX(a, 1-mo, n, m, ld)): void praxi gmatrix_v_flipord {a:t0p}{mo:mord} {l:addr}{m,n:int}{ld:int} (pf: !GMX(a, mo, l, m, n, ld) >> GMX(a, 1-mo, l, n, m, ld)): void // (* ****** ****** *) fun{} fprint_gmatrix$sep1 (out: FILEref): void fun{} fprint_gmatrix$sep2 (out: FILEref): void fun{a:t0p} fprint_gmatrix {mo:mord}{m,n:int}{ld:int} ( FILEref , V: &GMX(a, mo, m, n, ld), MORD(mo), int(m), int(n), int(ld) ) : void // end of [fprint_gmatrix] fun{a:t0p} fprint_gmatrix_sep {mo:mord}{m,n:int}{ld:int} ( FILEref , V: &GMX(a, mo, m, n, ld) , MORD(mo), int(m), int(n), int(ld), sep1: string, sep: string ) : void // end of [fprint_gmatrix_sep] (* ****** ****** *) fun{ a:t0p}{env:vt0p } gmatrix_iforeach$fwork{n:int} ( i: int, j: int, x: &(a) >> _, env: &(env) >> _ ) : void // end of [gmatrix_iforeach$fwork] fun{ a:t0p } gmatrix_iforeach {mo:mord}{m,n:int}{ld:int} ( M: &GMX(a, mo, m, n, ld) >> _, MORD(mo), int m, int n, int ld ) : void // end of [gmatrix_iforeach] fun{ a:t0p}{env:vt0p } gmatrix_iforeach_env {mo:mord}{m,n:int}{ld:int} ( M: &GMX(a, mo, m, n, ld) >> _, MORD(mo), int m, int n, int ld, env: &(env) >> _ ) : void // end of [gmatrix_iforeach_env] (* ****** ****** *) fun{a:t0p} gmatrix_imake$fopr (i: int, j: int, x: a): a fun{a:t0p} gmatrix_imake_arrayptr {mo:mord}{m,n:int}{ld:int} ( M: &GMX(a, mo, m, n, ld), mo: MORD(mo), int m, int n, int(ld) ) : arrayptr (a, m*n) // end of [gmatrix_imake_arrayptr] fun{a:t0p} gmatrix_imake_matrixptr {mo:mord}{m,n:int}{ld:int} ( M: &GMX(a, mo, m, n, ld), mo: MORD(mo), int m, int n, int(ld) ) : matrixptr (a, m, n) // end of [gmatrix_imake_matrixptr] (* ****** ****** *) abst@ype trmatrix_t0ype ( a:t@ype , mo: mord, ul: uplo, dg: diag, n:int, ld: int ) typedef trmatrix ( a:t0p, mo:mord, ul: uplo, dg: diag, n:int, ld:int ) = trmatrix_t0ype (a, mo, ul, dg, n, ld) viewdef trmatrix_v ( a:t0p, mo:mord, ul: uplo, dg: diag, l:addr, n:int, ld:int ) = trmatrix_t0ype (a, mo, ul, dg, n, ld) @ l // stadef TRMX = trmatrix stadef TRMX = trmatrix_v // (* ****** ****** *) // praxi trmatrix_flipord {a:t0p} {mo:mord} {ul:uplo} {dg:diag} {n:int}{ld:int} (M: &TRMX(a, mo, ul, dg, n, ld) >> TRMX(a, 1-mo, 1-ul, dg, n, ld)): void praxi trmatrix_v_flipord {a:t0p} {mo:mord} {ul:uplo} {dg:diag} {l:addr} {n:int}{ld:int} (pf: !TRMX(a, mo, ul, dg, l, n, ld) >> TRMX(a, 1-mo, 1-ul, dg, l, n, ld)): void // (* ****** ****** *) (* end of [gmatrix.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/sllist.sats0000644000175000017500000001603513431250607021125 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.sllist" (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) (* ** ** HX-2013-03: ** sllist (a, n) means that there are n elements in the list. ** *) absvtype sllist_vtype (a:viewt@ype+, n:int) = ptr stadef sllist = sllist_vtype // HX: shorthand // vtypedef Sllist (a:vt0p) = [n:int] sllist (a, n) vtypedef Sllist0 (a:vt0p) = [n:int | n >= 0] sllist (a, n) vtypedef Sllist1 (a:vt0p) = [n:int | n >= 1] sllist (a, n) // (* ****** ****** *) castfn sllist2ptr {a:vt0p} (xs: !Sllist (INV(a))):<> Ptr0 castfn sllist2ptr1 {a:vt0p} (xs: !Sllist1 (INV(a))):<> Ptr1 (* ****** ****** *) praxi lemma_sllist_param {a:vt0p} {n:int} (xs: !sllist (INV(a), n)): [n >= 0] void // end of [lemma_sllist_param] (* ****** ****** *) fun{} sllist_nil {a:vt0p} ():<> sllist (a, 0) (* ****** ****** *) praxi sllist_free_nil {a:vt0p} (xs: sllist (INV(a), 0)): void (* ****** ****** *) fun{a:vt0p} sllist_sing (x: a): sllist (a, 1) (* ****** ****** *) fun{a:vt0p} sllist_cons{n:int} (x: a, xs: sllist (INV(a), n)): sllist (a, n+1) // end of [sllist_cons] fun{a:vt0p} sllist_uncons{n:int | n > 0} (xs: &sllist (INV(a), n) >> sllist (a, n-1)): (a) // end of [sllist_uncons] (* ****** ****** *) fun{a:vt0p} sllist_snoc{n:int} (xs: sllist (INV(a), n), x: a): sllist (a, n+1) // end of [sllist_snoc] fun{a:vt0p} sllist_unsnoc{n:int | n > 0} (xs: &sllist (INV(a), n) >> sllist (a, n-1)): (a) // end of [sllist_unsnoc] (* ****** ****** *) fun{a:t0p} sllist_make_list {n:int} (xs: list (INV(a), n)): sllist (a, n) // end of [sllist_make_list] (* ****** ****** *) fun{a:t0p} sllist_make_list_vt {n:int} (xs: list_vt (INV(a), n)): sllist (a, n) // end of [sllist_make_list_vt] (* ****** ****** *) fun{ } sllist_is_nil {a:vt0p}{n:int} (xs: !sllist (INV(a), n)):<> bool (n==0) fun{ } sllist_is_cons {a:vt0p}{n:int} (xs: !sllist (INV(a), n)):<> bool (n > 0) // overload iseqz with sllist_is_nil overload isneqz with sllist_is_cons // (* ****** ****** *) fun{a:vt0p} sllist_length {n:int} (xs: !sllist (INV(a), n)):<> int (n) // overload length with sllist_length // (* ****** ****** *) fun{a:t0p} sllist_get_elt (xs: !Sllist1 (INV(a))): (a) fun{a:t0p} sllist_set_elt (xs: !Sllist1 (INV(a)), x0: a): void fun{a:vt0p} sllist_getref_elt (xs: !Sllist1 (INV(a))):<> cPtr1 (a) (* ****** ****** *) fun{a:vt0p} sllist_getref_next (xs: !Sllist1 (INV(a))):<> Ptr1 (* ****** ****** *) fun{a:vt0p} sllist_getref_elt_at {n:int} (xs: !sllist (INV(a), n), i: natLt(n)):<> cPtr1 (a) // end of [sllist_getref_elt_at] (* ****** ****** *) fun{a:t0p} sllist_get_elt_at {n:int} (xs: !sllist (INV(a), n), i: natLt(n)):<> (a) overload [] with sllist_get_elt_at fun{a:t0p} sllist_set_elt_at {n:int} (xs: !sllist (INV(a), n), i: natLt(n), x0: a): void overload [] with sllist_set_elt_at (* ****** ****** *) fun{a:vt0p} sllist_getref_at{n:int} (xs: &sllist (INV(a), n), i: natLte(n)):<> Ptr1 // end of [sllist_getref_at] fun{a:vt0p} sllist_insert_at {n:int} (xs: sllist (INV(a), n), i: natLte(n), x0: a): sllist (a, n+1) // end of [sllist_insert_at] fun{a:vt0p} sllist_takeout_at {n:int} (xs: &sllist (INV(a), n) >> sllist (a, n-1), i: natLt(n)): (a) // end of [sllist_takeout_at] (* ****** ****** *) fun{a:vt0p} sllist_append {n1,n2:int} ( xs1: sllist (INV(a), n1), xs2: sllist (a, n2) ) : sllist (a, n1+n2) // end of [sllist_append] (* ****** ****** *) fun{a:vt0p} sllist_reverse {n:int} (xs: sllist (INV(a), n)): sllist (a, n) // end of [sllist_reverse] (* ****** ****** *) fun{a:vt0p} sllist_reverse_append {n1,n2:int} ( xs1: sllist (INV(a), n1), xs2: sllist (a, n2) ) : sllist (a, n1+n2) // end of [sllist_reverse_append] (* ****** ****** *) fun{a:t0p} sllist_free (xs: Sllist (INV(a))): void fun{a:vt0p} sllist_freelin$clear (x: &a >> a?): void fun{a:vt0p} sllist_freelin (xs: Sllist (INV(a))): void (* ****** ****** *) fun{ a:vt0p}{b:vt0p } sllist_map$fopr (x: &a): b fun{ a:vt0p}{b:vt0p } sllist_map {n:int} (xs: !sllist (a, n)): sllist (b, n) (* ****** ****** *) // fun{ a:vt0p}{env:vt0p } sllist_foreach$cont (x: &a, env: &env): bool fun{ a:vt0p}{env:vt0p } sllist_foreach$fwork (x: &a, env: &env >> _): void // fun{a:vt0p} sllist_foreach (xs: !Sllist (INV(a))): void fun{ a:vt0p}{env:vt0p } sllist_foreach_env (xs: !Sllist (INV(a)), env: &env >> _): void // end of [sllist_foreach_env] // (* ****** ****** *) // fun{} fprint_sllist$sep (out: FILEref): void // fun{a:vt0p} fprint_sllist (out: FILEref, xs: !Sllist (INV(a))): void // end of [fprint_sllist] // overload fprint with fprint_sllist // (* ****** ****** *) // // HX-2013-05: functions of ngc-version // (* ****** ****** *) staload "libats/SATS/gnode.sats" (* ****** ****** *) stadef mytkind = $extkind"libats_sllist" (* ****** ****** *) typedef g2node0 (a:vt0p) = gnode0 (mytkind, a) typedef g2node1 (a:vt0p) = gnode1 (mytkind, a) (* ****** ****** *) (* ** HX: this is O(1)-time *) fun{a:vt0p} sllist_cons_ngc{n:int} (nx: g2node1(a), xs: sllist(INV(a), n)): sllist (a, n+1) // end of [sllist_cons_ngc] (* ** HX: this is O(1)-time *) fun{a:vt0p} sllist_uncons_ngc{n:pos} (xs: &sllist (INV(a), n) >> sllist (a, n-1)): g2node1 (a) // end of [sllist_uncons_ngc] (* ****** ****** *) (* ** HX: this is O(n)-time *) fun{a:vt0p} sllist_snoc_ngc{n:int} (xs: sllist(INV(a), n), nx: g2node1(a)): sllist (a, n+1) // end of [sllist_snoc_ngc] (* ** HX: this is O(n)-time *) fun{a:vt0p} sllist_unsnoc_ngc{n:pos} (xs: &sllist (INV(a), n) >> sllist (a, n-1)): g2node1 (a) // end of [sllist_unsnoc_ngc] (* ****** ****** *) (* end of [sllist.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/gmatrix_row.sats0000644000175000017500000002024713431250607022155 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) // // HX-2013-07: // For matrices // (that is, 2D-arrays) of column-major style // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.gmatrow" (* ****** ****** *) staload "libats/SATS/gvector.sats" staload "libats/SATS/gmatrix.sats" (* ****** ****** *) praxi lemma_gmatrow_param {a:t0p}{m,n:int}{ld:int} (M: &GMR(a, m, n, ld)): [m >= 0; n >= 1; ld >= n] void praxi lemma_gmatrow_v_param {a:t0p}{l:addr}{m,n:int}{ld:int} (pf: !GMR(a, l, m, n, ld)): [m >= 0; n >= 1; ld >= n] void (* ****** ****** *) praxi matrix2gmatrow {a:t0p}{l:addr}{m,n:int} (A: &matrix (INV(a), m, n) >> GMR(a, m, n, n)): void praxi matrix2gmatrow_v {a:t0p}{l:addr}{m,n:int} (pf: matrix_v (INV(a), l, m, n)): GMR(a, l, m, n, n) // end [matrix2gmatrow_v] (* ****** ****** *) praxi gmatrow2matrix {a:t0p}{l:addr}{m,n:int} (V: &GMR(a, m, n, n) >> matrix (a, m, n)): void // end [gmatrow2matrix] praxi gmatrow2matrix_v {a:t0p}{l:addr}{m,n:int} (pf: GMR(a, l, m, n, n)): matrix_v (a, l, m, n) // end [gmatrow2matrix_v] (* ****** ****** *) // // HX: 0 for row // praxi gmatrow_v_renil0 {a1,a2:t0p} {l:addr}{n:int}{ld:int} (GMR(a1, l, 0, n, ld)): GMR(a2, l, 0, n, ld) // praxi gmatrow_v_cons0 {a:t0p}{l:addr} {m,n:int}{ld:int} ( GVT(a, l, n, 1) , GMR(a, l+ld*sizeof(a), m, n, ld) ) : GMR(a, l, m+1, n, ld) praxi gmatrow_v_uncons0 {a:t0p}{l:addr} {m,n:int | m > 0}{ld:int} (GMR(a, l, m, n, ld)) : ( GVT(a, l, n, 1), GMR(a, l+ld*sizeof(a), m-1, n, ld) ) (* end of [gmatrow_v_uncons0] *) // (* ****** ****** *) // // HX: 1 for col // praxi gmatrow_v_renil1 {a1,a2:t0p} {l:addr}{m:int}{ld:int} (GMR(a1, l, m, 0, ld)): GMR(a2, l, m, 0, ld) // praxi gmatrow_v_cons1 {a:t0p}{l:addr} {m,n:int}{ld:int} ( GVT(a, l, m, ld) , GMR(a, l+sizeof(a), m, n, ld) ) : GMR(a, l, m, n+1, ld) // end of [gmatrow_v_cons2] praxi gmatrow_v_uncons1 {a:t0p}{l:addr} {m,n:int | n > 0}{ld:int} (GMR(a, l, m, n, ld)) : (GVT(a, l, m, ld), GMR(a, l+sizeof(a), m, n-1, ld)) // (* ****** ****** *) praxi gmatrow_v_split1x2 {a:t0p}{l:addr} {m,n:int}{ld:int} {j:nat | j <= n} ( GMR(a, l, m, n, ld), int j ) : ( GMR(a, l , m, j , ld) , GMR(a, l+j*sizeof(a), m, n-j, ld) ) (* end of [gmatrow_v_split1x2] *) praxi gmatrow_v_unsplit1x2 {a:t0p}{l:addr} {m,j,j2:int}{ld:int} ( GMR(a, l , m, j , ld) , GMR(a, l+j*sizeof(a), m, j2, ld) ) : GMR(a, l, m, j+j2, ld) // end of [praxi] (* ****** ****** *) praxi gmatrow_v_split_2x1 {a:t0p}{l:addr} {m,n:int}{ld:int} {i,j:nat | i <= m} ( GMR(a, l, m, n, ld), int i ) : ( GMR(a, l , i , n, ld) , GMR(a, l+i*ld*sizeof(a), m-i, n, ld) ) (* end of [gmatrow_v_split_2x1] *) praxi gmatrow_v_unsplit_2x1 {a:t0p}{l:addr} {i,i2,n:int}{ld:int} ( GMR(a, l , i , n, ld) , GMR(a, l+i*ld*sizeof(a), i2, n, ld) ) : GMR(a, l, i+i2, n, ld) // end of [praxi] (* ****** ****** *) praxi gmatrow_v_split_2x2 {a:t0p}{l:addr} {m,n:int}{ld:int} {i,j:nat | i <= m; j <= n} ( GMR(a, l, m, n, ld), int i, int j ) : ( GMR(a, l , i , j , ld) , GMR(a, l +j*sizeof(a), i , n-j, ld) , GMR(a, l+i*ld*sizeof(a) , m-i, j , ld) , GMR(a, l+i*ld*sizeof(a)+j*sizeof(a), m-i, n-j, ld) ) (* end of [gmatrow_v_split_2x2] *) praxi gmatrow_v_unsplit_2x2 {a:t0p}{l:addr} {i,i2,j,j2:int}{ld:int} ( GMR(a, l , i , j , ld) , GMR(a, l +j*sizeof(a), i , j2, ld) , GMR(a, l+i*ld*sizeof(a) , i2, j , ld) , GMR(a, l+i*ld*sizeof(a)+j*sizeof(a), i2, j2, ld) ) : GMR(a, l, i+i2, j+j2, ld) // end of [praxi] (* ****** ****** *) fun{a:t0p} gmatrow_get_at {m,n:int}{ld:int} ( M: &GMR(a, m, n, ld), int(ld), i: natLt(m), j: natLt(n) ) : (a) // end of [gmatrow_get_at] fun{a:t0p} gmatrow_set_at {m,n:int}{ld:int} ( M: &GMR(a, m, n, ld), int(ld), i: natLt(m), j: natLt(n), x: a ) : void // end of [gmatrow_set_at] (* ****** ****** *) fun{a:t0p} gmatrow_getref_at {m,n:int}{ld:int} ( M: &GMR(a, m, n, ld), int(ld), i: natLt(m), j: natLt(n) ) : cPtr1(a) // end of [gmatrow_getref_at] (* ****** ****** *) fun{a:t0p} gmatrow_getref_row_at {m,n:int}{ld:int} ( M: &GMR(a, m, n, ld), int(ld), i: natLt(m) ) : cPtr1(GVT(a, n, 1(*d*))) // endfun fun{a:t0p} gmatrow_getref_col_at {m,n:int}{ld:int} ( M: &GMR(a, m, n, ld), int(ld), j: natLt(n) ) : cPtr1(GVT(a, m, ld)) // endfun (* ****** ****** *) fun{a:t0p} gmatrow_interchange_row {m,n:int}{ld:int} ( M: &GMR(a, m, n, ld) , n: int n, int(ld), i1: natLt(m), i2: natLt(m) ) : void // end of [gmatrow_interchange_row] fun{a:t0p} gmatrow_interchange_col {m,n:int}{ld:int} ( M: &GMR(a, m, n, ld) , m: int m, int(ld), j1: natLt(n), j2: natLt(n) ) : void // end of [gmatrow_interchange_col] (* ****** ****** *) fun{a:t0p} gmatrow_copyto {m,n:int}{ld1,ld2:int} ( M1: &GMR(a, m, n, ld1) , M2: &GMR(a?, m, n, ld2) >> GMR(a, m, n, ld2) , int(m), int(n), int(ld1), int(ld2) ) : void // end of [gmatrow_copyto] fun{a:t0p} gmatrow_transpto {m,n:int}{ld1,ld2:int} ( M1: &GMR(a, m, n, ld1) , M2: &GMR(a?, n, m, ld2) >> GMR(a, n, m, ld2) , int(m), int(n), int(ld1), int(ld2) ) : void // end of [gmatrow_transpto] (* ****** ****** *) fun{a:t0p} gmatrow_ptr_split_2x2 {l:addr} {m,n:int}{ld:int} {i,j:nat | i <= m; j <= n} ( pf: GMR(a, l, m, n, ld) | ptr(l), int(ld), int(i), int(j) ) : [l01,l10,l11:addr] ( GMR(a, l , i , j , ld) , GMR(a, l01, i , n-j, ld) , GMR(a, l10, m-i, j , ld) , GMR(a, l11, m-i, n-j, ld) , ( GMR(a, l , i , j , ld) , GMR(a, l01, i , n-j, ld) , GMR(a, l10, m-i, j , ld) , GMR(a, l11, m-i, n-j, ld) ) - GMR(a, l, m, n, ld) | ptr(l01), ptr(l10), ptr(l11) ) (* end of [gmatrow_ptr_split_2x2] *) (* ****** ****** *) fun{ a:t0p}{env:vt0p } gmatrow_foreachrow$fwork{n:int} ( row: &GVT (a, n, 1) >> _, n: int n, env: &(env) >> _ ) : void // end of [gmatrow_foreachrow$fwork] fun{ a:t0p } gmatrow_foreachrow{m,n:int}{ld:int} ( M: &gmatrow(a, m, n, ld) >> _, int(m), int(n), int(ld) ) : void // end of [gmatrow_foreachrow] fun{ a:t0p}{env:vt0p } gmatrow_foreachrow_env{m,n:int}{ld:int} ( M: &gmatrow(a, m, n, ld) >> _, int(m), int(n), int(ld), env: &(env) >> _ ) : void // end of [gmatrow_foreachrow_env] (* ****** ****** *) fun{ a1,a2:t0p}{env:vt0p } gmatrow_foreachrow2$fwork{n:int} ( row1: &GVT (a1, n, 1) >> _ , row2: &GVT (a2, n, 1) >> _ , n: int (n), env: &(env) >> _ ) : void // end of [gmatrow_foreachrow$fwork] fun{ a1,a2:t0p } gmatrow_foreachrow2 {m,n:int}{ld1,ld2:int} ( M1: &gmatrow(a1, m, n, ld1) >> _ , M2: &gmatrow(a2, m, n, ld2) >> _ , int(m), int(n), int(ld1), int(ld2) ) : void // end of [gmatrow_foreachrow] fun{ a1,a2:t0p}{env:vt0p } gmatrow_foreachrow2_env {m,n:int}{ld1,ld2:int} ( M1: &gmatrow(a1, m, n, ld1) >> _ , M2: &gmatrow(a2, m, n, ld2) >> _ , int(m), int(n), int(ld1), int(ld2) , env: &(env) >> _ ) : void // end of [gmatrow_foreachrow2_env] (* ****** ****** *) (* end of [gmatrix_row.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/stkarray.sats0000644000175000017500000001255713431250607021460 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** An array-based stack implementation ** *) (* ****** ****** *) (* ** ** Author: Hongwei Xi ** Start time: September, 2013 ** Authoremail: gmhwxiATgmailDOTcom ** *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.stkarray" // // HX-2017-03-28: #define // prefix for external ATS_EXTERN_PREFIX "atslib_" // names // (* ****** ****** *) %{# // #include "libats/CATS/stkarray.cats" // %} // end of [%{#] (* ****** ****** *) // absvtype stkarray_vtype (a: vt@ype+, m: int, n: int) = ptr // (* ****** ****** *) // stadef stkarray = stkarray_vtype // vtypedef stkarray ( a:vt0p ) = [m,n:int] stkarray_vtype (a, m, n) // (* ****** ****** *) abst@ype stkarray_tsize = $extype"atslib_stkarray_struct" (* ****** ****** *) praxi lemma_stkarray_param {a:vt0p}{m,n:int} (!stkarray(INV(a), m, n)): [m >= n; n >= 0] void // end of [lemma_stkarray_param] (* ****** ****** *) fun{a:vt0p} stkarray_make_cap {m:int} (cap: size_t(m)): stkarray(a, m, 0) // end of [stkarray_make_cap] (* ****** ****** *) fun stkarray_make_ngc_tsz {a:vt0p} {l:addr}{m:int} ( stkarray_tsize? @ l | ptr(l), arrayptr(a?, m), size_t(m), sizeof_t(a) ) : (mfree_ngc_v (l) | stkarray(a, m, 0)) = "mac#%" (* ****** ****** *) // fun stkarray_free_nil {a:vt0p}{m:int} (stk: stkarray(a, m, 0)): void = "mac#%" // end of [stkarray_free_nil] // fun stkarray_getfree_arrayptr {a:vt0p}{m,n:int} (stkarray(INV(a), m, n)): arrayptr(a, n) = "mac#%" // end of [stkarray_getfree_arrayptr] // (* ****** ****** *) // fun{a:vt0p} stkarray_get_size {m,n:int} (stk: !stkarray(INV(a), m, n)):<> size_t(n) fun{a:vt0p} stkarray_get_capacity {m,n:int} (stk: !stkarray(INV(a), m, n)):<> size_t(m) // (* ****** ****** *) fun stkarray_get_ptrbeg{a:vt0p} {m,n:int} (stk: !stkarray(INV(a), m, n)):<> Ptr1 = "mac#%" // end of [stkarray_get_ptrbeg] (* ****** ****** *) // fun stkarray_is_nil {a:vt0p}{m,n:int} (stk: !stkarray(INV(a), m, n)):<> bool(n==0) = "mac#%" fun stkarray_isnot_nil {a:vt0p}{m,n:int} (stk: !stkarray(INV(a), m, n)):<> bool(n > 0) = "mac#%" // (* ****** ****** *) // fun stkarray_is_full {a:vt0p}{m,n:int} (stk: !stkarray(INV(a), m, n)):<> bool(m==n) = "mac#%" fun stkarray_isnot_full {a:vt0p}{m,n:int} (stk: !stkarray(INV(a), m, n)):<> bool(m > n) = "mac#%" // (* ****** ****** *) fun{} fprint_stkarray$sep(out: FILEref): void fun{a:vt0p} fprint_stkarray (out: FILEref, stk: !stkarray(INV(a))): void fun{a:vt0p} fprint_stkarray_sep (out: FILEref, stk: !stkarray(INV(a)), sep: string): void overload fprint with fprint_stkarray overload fprint with fprint_stkarray_sep (* ****** ****** *) fun{a:vt0p} stkarray_insert {m,n:int | m > n} ( stk: !stkarray(INV(a), m, n) >> stkarray(a, m, n+1) , elt: a ) : void // stkarray_insert (* ****** ****** *) fun{a:vt0p} stkarray_insert_opt (stk: !stkarray(INV(a)) >> _, x0: a): Option_vt(a) // end of [stkarray_insert_opt] (* ****** ****** *) fun{a:vt0p} stkarray_takeout {m,n:int | n > 0} ( stk: !stkarray(INV(a), m, n) >> stkarray(a, m, n-1) ) : (a) // endfun fun{a:vt0p} stkarray_takeout_opt (stk: !stkarray(INV(a)) >> _): Option_vt(a) // end of [stkarray_takeout_opt] (* ****** ****** *) fun{a:vt0p} stkarray_getref_top {m,n:int | n > 0} (stk: !stkarray(INV(a), m, n)):<> cPtr1(a) // end of [stkarray_getref_top] (* ****** ****** *) // symintr stkarray_getref_at // fun{a:vt0p} stkarray_getref_at_int {m,n:int}{i:nat | i < n} (stk: !stkarray(INV(a), m, n), i: int(i)):<> cPtr1(a) // fun{a:vt0p} stkarray_getref_at_size {m,n:int}{i:nat | i < n} (stk: !stkarray(INV(a), m, n), i: size_t(i)):<> cPtr1(a) // overload stkarray_getref_at with stkarray_getref_at_int overload stkarray_getref_at with stkarray_getref_at_size // (* ****** ****** *) // fun{ a:vt0p}{env:vt0p } stkarray_foreach$cont(x: &a, env: &env): bool fun{ a:vt0p}{env:vt0p } stkarray_foreach$fwork(x: &a >> _, env: &(env) >> _): void fun{ a:vt0p } stkarray_foreach{m,n:int} (stk: !stkarray(INV(a), m, n)): sizeLte(n) fun{ a:vt0p}{env:vt0p } stkarray_foreach_env{m,n:int} (stk: !stkarray(INV(a), m, n), env: &(env) >> _): sizeLte(n) // (* ****** ****** *) (* end of [stkarray.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/athread.sats0000644000175000017500000001220313431250607021214 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmmhwxiATgmailDOTcom // Start Time: May, 2014 // (* ****** ****** *) // // An abstract thread interface // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.athread" // (* ****** ****** *) absview locked_v(l:addr) (* ****** ****** *) // abstype spin_type(l:addr) = ptr(l) // typedef spin (l:addr) = spin_type(l) typedef spin0 = [l:agez] spin_type(l) typedef spin1 = [l:addr | l > null] spin_type(l) // (* ****** ****** *) // absvtype spin_vtype(l:addr) = ptr(l) // vtypedef spin_vt (l:addr) = spin_vtype(l) vtypedef spin0_vt = [l:agez] spin_vtype(l) vtypedef spin1_vt = [l:addr | l > null] spin_vtype(l) // (* ****** ****** *) // castfn spin2ptr{l:addr} (spin(l)):<> ptr(l) castfn spin2ptr_vt{l:addr} (!spin_vt(l)):<> ptr(l) // overload ptrcast with spin2ptr overload ptrcast with spin2ptr_vt // (* ****** ****** *) // castfn unsafe_spin_t2vt{l:addr}(spin(l)): spin_vt(l) castfn unsafe_spin_vt2t{l:addr}(!spin_vt(l)): spin(l) // (* ****** ****** *) // fun{} spin_create ((*void*)): spin0 fun{} spin_create_exn ((*void*)): spin1 // (* ****** ****** *) fun{} spin_vt_destroy{l:addr}(spin_vt(l)): void (* ****** ****** *) // fun{} spin_lock{l:agz} (spin(l)): (locked_v(l) | void) fun{} spin_unlock{l:addr} (pf: locked_v(l) | spin(l)): void // fun{} spin_trylock{l:agz} (spin(l)): [b:bool] (option_v(locked_v(l), b) | bool(b)) // (* ****** ****** *) abstype mutex_type(l:addr) = ptr(l) typedef mutex (l:addr) = mutex_type(l) typedef mutex0 = [l:agez] mutex_type(l) typedef mutex1 = [l:addr | l > null] mutex_type(l) (* ****** ****** *) absvtype mutex_vtype (l:addr) = ptr(l) vtypedef mutex_vt (l:addr) = mutex_vtype(l) (* ****** ****** *) // castfn mutex2ptr{l:addr} (mutex(l)):<> ptr (l) castfn mutex2ptr_vt{l:addr} (!mutex_vt(l)):<> ptr (l) // overload ptrcast with mutex2ptr overload ptrcast with mutex2ptr_vt // (* ****** ****** *) castfn unsafe_mutex_t2vt{l:addr}(mutex(l)): mutex_vt(l) castfn unsafe_mutex_vt2t{l:addr}(!mutex_vt(l)): mutex(l) (* ****** ****** *) // fun{} mutex_create ((*void*)): mutex0 fun{} mutex_create_exn ((*void*)): mutex1 // (* ****** ****** *) fun{} mutex_vt_destroy{l:addr}(mutex_vt(l)): void (* ****** ****** *) // fun{} mutex_lock{l:agz} (m: mutex(l)): (locked_v(l) | void) fun{} mutex_trylock{l:agz} (m: mutex(l)): [b:bool] (option_v(locked_v(l), b) | bool(b)) fun{} mutex_unlock{l:addr} (pf: locked_v(l) | m: mutex(l)): void // (* ****** ****** *) // abstype condvar_type(l:addr) = ptr(l) typedef condvar (l:addr) = condvar_type(l) typedef condvar0 = [l:agez] condvar_type(l) typedef condvar1 = [l:addr | l > null] condvar_type(l) // (* ****** ****** *) absvtype condvar_vtype (l:addr) = ptr(l) vtypedef condvar_vt (l:addr) = condvar_vtype(l) (* ****** ****** *) castfn condvar2ptr{l:addr} (condvar(l)):<> ptr (l) overload ptrcast with condvar2ptr castfn condvar2ptr_vt{l:addr} (!condvar_vt(l)):<> ptr (l) overload ptrcast with condvar2ptr_vt (* ****** ****** *) castfn unsafe_condvar_t2vt{l:addr}(condvar(l)): condvar_vt(l) castfn unsafe_condvar_vt2t{l:addr}(!condvar_vt(l)): condvar(l) (* ****** ****** *) // fun{} condvar_create (): condvar0 fun{} condvar_create_exn (): condvar1 // (* ****** ****** *) fun{} condvar_vt_destroy{l:addr}(condvar_vt(l)): void (* ****** ****** *) // fun{} condvar_signal (cvr: condvar1): void fun{} condvar_broadcast (cvr: condvar1): void // fun{} condvar_wait{l:addr} (pf: !locked_v(l) | cvr: condvar1, p: mutex (l)): void // (* ****** ****** *) typedef tid = lint (* ****** ****** *) // fun{} athread_self((*void*)): tid // (* ****** ****** *) // fun{} athread_create_funenv {env:vtype} ( tid: &tid? >> _ , fwork: (env) -> void, env: env ) : int(*err*) // fun{} athread_create_cloptr ( tid: &tid? >> _, fwork: () - void ) : int(*err*) fun{} athread_create_cloptr_exn (fwork: ((*void*)) - void): lint(*tid*) // (* ****** ****** *) (* end of [athread.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/linralist_nested.sats0000644000175000017500000000304313431250607023151 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linralist_nested" (* ****** ****** *) #include "./SHARE/linralist.hats" (* ****** ****** *) (* end of [linralist_nested.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/linset_listord.sats0000644000175000017500000000320313431250607022642 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // Time: October, 2010 // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linset_listord" (* ****** ****** *) #include "./SHARE/linset.hats" #include "./SHARE/linset_node.hats" (* ****** ****** *) castfn linset2list {a:t0p} (xs: set (INV(a))):<> List0_vt (a) (* ****** ****** *) (* end of [linset_listord.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/funmap_rbtree.sats0000644000175000017500000000436613431250607022450 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** A red-black tree implementation ** ** The insertion operation is based on the algorithm in the following ** paper by Chris Okasaki: ** ** Red-Black Trees in a Functional Setting (Functional Pearls) ** ** J. of Functional Programming, vol. 9 (4), pp. 471-477, January, 1993 ** ** The removal operation, which seems novel in its implementation, is by ** Hongwei Xi ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: September, 2011 // based on a version done in October, 2008 *) (* ****** ****** *) // // HX-2015-06: // It is ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.funmap_rbtree" // (* ****** ****** *) #include "./SHARE/funmap.hats" (* ****** ****** *) // // HX: for the purpose of gathering statics // fun{ key:t0p;itm:t0p } funmap_rbtree_height (map: map (key, itm)):<> intGte(0) // fun{ key:t0p;itm:t0p } funmap_rbtree_bheight (map: map (key, itm)):<> intGte(0) // (* ****** ****** *) (* end of [funmap_avltree.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/ilist_prf.sats0000644000175000017500000003763113431250607021613 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // Time: October, 2010 // (* ****** ****** *) // // HX: reasoning about integer sequences // (* ****** ****** *) // // HX-2012-11-26: ported to ATS/Postiats // (* ****** ****** *) datasort ilist = | ilist_nil of () | ilist_cons of (int, ilist) // end of [ilist] (* ****** ****** *) stadef ilist_sing (x:int) = ilist_cons (x, ilist_nil) (* ****** ****** *) dataprop ILISTEQ (ilist, ilist) = {xs:ilist} ILISTEQ (xs, xs) of () // end of [ILISTEQ] (* ****** ****** *) // prfun ILISTEQ_refl{xs:ilist}(): ILISTEQ(xs, xs) // prfun ILISTEQ_symm {xs,ys:ilist}(ILISTEQ(xs, ys)): ILISTEQ(ys, xs) // prfun ILISTEQ_tran {xs,ys,zs:ilist} (ILISTEQ(xs, ys), ILISTEQ(ys, zs)): ILISTEQ(xs, zs) // (* ****** ****** *) dataprop ILISTEQ2 ( ilist, ilist ) = | ILISTEQ2nil ( ilist_nil, ilist_nil ) of ((*void*)) | {x:int} {xs1,xs2:ilist} ILISTEQ2cons ( ilist_cons (x, xs1) , ilist_cons (x, xs2) ) of ( ILISTEQ2 (xs1, xs2) ) // end of [ILISTEQ2cons] // end of [ILISTEQ2] (* ****** ****** *) prfun ILISTEQ2_elim {xs1,xs2:ilist} (pf: ILISTEQ2(xs1, xs2)): ILISTEQ (xs1, xs2) // end of [ILISTEQ2_elim] (* ****** ****** *) dataprop ISCONS (ilist) = {x:int}{xs:ilist} ISCONS (ilist_cons (x, xs)) // end of [ISCONS] dataprop ISEMP (ilist, bool) = | ISEMPnil (ilist_nil, true) | {x:int} {xs:ilist} ISEMPcons (ilist_cons (x, xs), false) // end of [ISEMP] (* ****** ****** *) dataprop LENGTH (ilist, int) = | LENGTHnil(ilist_nil, 0) of () | {x:int}{xs:ilist}{n:nat} LENGTHcons(ilist_cons (x, xs), n+1) of LENGTH (xs, n) // end of [LENGTH] prfun length_istot {xs:ilist} (): [n:nat] LENGTH (xs, n) prfun length_isfun {xs:ilist} {n1,n2:int} (pf1: LENGTH (xs, n1), pf2: LENGTH (xs, n2)): [n1==n2] void // end of [length_isfun] prfun length_isnat {xs:ilist} {n:int} (pf: LENGTH (xs, n)): [n>=0] void // end of [length_isnat] (* ****** ****** *) dataprop SNOC (ilist, int, ilist) = | {x:int} SNOCnil (ilist_nil, x, ilist_sing (x)) of () | {x0:int} {xs1:ilist} {x:int} {xs2:ilist} SNOCcons (ilist_cons (x0, xs1), x, ilist_cons (x0, xs2)) of SNOC (xs1, x, xs2) // end of [SNOC] (* ****** ****** *) prfun snoc_istot{xs:ilist}{x:int} (): [xsx:ilist] SNOC (xs, x, xsx) prfun snoc_isfun{xs:ilist}{x:int} {xsx1,xsx2:ilist} (pf1: SNOC (xs, x, xsx1), pf2: SNOC (xs, x, xsx2)): ILISTEQ (xsx1, xsx2) // end of [snoc_isfun] (* // HX-2012-12-13: proven *) prfun lemma_snoc_length {xs:ilist}{x:int}{xsx:ilist}{n:int} (pf1: SNOC (xs, x, xsx), pf2: LENGTH (xs, n)): LENGTH (xsx, n+1) // end of [lemma_snoc_length] (* ****** ****** *) dataprop APPEND (ilist, ilist, ilist) = | {ys:ilist} APPENDnil (ilist_nil, ys, ys) of () | {x:int} {xs:ilist} {ys:ilist} {zs:ilist} APPENDcons (ilist_cons (x, xs), ys, ilist_cons (x, zs)) of APPEND (xs, ys, zs) // end of [APPEND] (* ****** ****** *) // prfun append_istot {xs,ys:ilist}(): [zs:ilist] APPEND(xs, ys, zs) prfun append_isfun {xs,ys:ilist}{zs1,zs2:ilist} (pf1: APPEND(xs, ys, zs1), pf2: APPEND(xs, ys, zs2)): ILISTEQ(zs1, zs2) // (* ****** ****** *) (* // HX-2012-12-13: proven *) prfun append_unit_left {xs:ilist}(): APPEND (ilist_nil, xs, xs) prfun append_unit_right {xs:ilist}(): APPEND (xs, ilist_nil, xs) (* ****** ****** *) (* // HX-2012-12-17: proven *) prfun append_sing {x:int}{xs:ilist} ( // argumentless ) : APPEND (ilist_sing(x), xs, ilist_cons (x, xs)) // end of [append_sing] (* ****** ****** *) (* // HX-2012-12-13: proven *) prfun lemma_append_length {xs1,xs2:ilist} {xs:ilist} {n1,n2:int} ( pf: APPEND (xs1, xs2, xs) , pf1len: LENGTH (xs1, n1), pf2len: LENGTH (xs2, n2) ) : LENGTH (xs, n1+n2) // end of [lemma_append_length] (* ****** ****** *) (* // HX-2012-12-13: proven *) prfun lemma_append_snoc {xs1:ilist} {x:int} {xs2:ilist} {xs1x:ilist} {res:ilist} ( pf1: APPEND(xs1, ilist_cons(x, xs2), res), pf2: SNOC (xs1, x, xs1x) ) : APPEND (xs1x, xs2, res) // end-of-prfun (* ****** ****** *) (* // HX-2012-12-14: proven *) prfun lemma_append_assoc {xs1,xs2,xs3:ilist} {xs12,xs23:ilist} {xs12_3,xs1_23:ilist} ( pf12: APPEND (xs1, xs2, xs12), pf23: APPEND (xs2, xs3, xs23) , pf12_3: APPEND (xs12, xs3, xs12_3), pf1_23: APPEND (xs1, xs23, xs1_23) ) : ILISTEQ (xs12_3, xs1_23) // end of [lemma_append_assoc] (* ****** ****** *) dataprop REVAPP(ilist, ilist, ilist) = | {ys:ilist} REVAPPnil (ilist_nil, ys, ys) of () | {x:int}{xs:ilist}{ys:ilist}{zs:ilist} REVAPPcons (ilist_cons (x, xs), ys, zs) of REVAPP (xs, ilist_cons (x, ys), zs) // end of [REVAPP] propdef REVERSE (xs: ilist, ys: ilist) = REVAPP (xs, ilist_nil, ys) (* ****** ****** *) // prfun revapp_istot {xs,ys:ilist} (): [zs:ilist] REVAPP (xs, ys, zs) // prfun revapp_isfun {xs,ys:ilist}{zs1,zs2:ilist} (pf1: REVAPP (xs, ys, zs1), pf2: REVAPP (xs, ys, zs2)): ILISTEQ (zs1, zs2) // (* ****** ****** *) prfun lemma_revapp_length {xs,ys,zs:ilist}{m,n:int} ( pf: REVAPP (xs, ys, zs), pf1len: LENGTH (xs, m), pf2len: LENGTH (ys, n) ) : LENGTH (zs, m+n) // end of [lemma_revapp_length] (* ****** ****** *) // prfun reverse_istot {xs:ilist}(): [ys:ilist] REVERSE(xs, ys) // prfun reverse_isfun {xs:ilist}{ys1,ys2:ilist} (REVERSE(xs, ys1), REVERSE(xs, ys2)): ILISTEQ(ys1, ys2) // (* ****** ****** *) // prfun lemma_reverse_length {xs,ys:ilist}{n:int}(REVERSE(xs, ys), LENGTH(xs, n)): LENGTH(ys, n) // (* ****** ****** *) dataprop NTH (x0:int, ilist, int) = | {xs:ilist} NTHbas (x0, ilist_cons (x0, xs), 0) | {x1:int}{xs:ilist}{n:nat} NTHind (x0, ilist_cons (x1, xs), n+1) of NTH (x0, xs, n) // end of [NTH] // // HX: reverse NTH // dataprop RNTH (x0:int, ilist, int) = | {xs:ilist}{n:nat} RNTHbas (x0, ilist_cons (x0, xs), n) of LENGTH (xs, n) | {x1:int}{xs:ilist}{n:nat} RNTHind (x0, ilist_cons (x1, xs), n) of RNTH (x0, xs, n) // end of [RNTH] (* ****** ****** *) prfun lemma_nth_param {x0:int} {xs:ilist}{i:int} ( pf: NTH(x0, xs, i) ) : [y:int;ys:ilist | i >= 0] ILISTEQ(xs, ilist_cons(y, ys)) prfun lemma_rnth_param {x0:int} {xs:ilist}{i:int} ( pf: RNTH(x0, xs, i) ) : [y:int;ys:ilist | i >= 0] ILISTEQ(xs, ilist_cons(y, ys)) (* ****** ****** *) prfun lemma_nth_rnth {x:int}{xs:ilist} {n:int}{i:int | i < n} (pf1: NTH (x, xs, i), pf2: LENGTH (xs, n)): RNTH (x, xs, n-1-i) // end of [lemma_nth_rnth] prfun lemma_rnth_nth {x:int}{xs:ilist} {n:int}{i:int | i < n} (pf1: RNTH (x, xs, i), pf2: LENGTH (xs, n)): NTH (x, xs, n-1-i) // end of [lemma_rnth_nth] (* ****** ****** *) (* // HX-2012-12-14: proven *) prfun lemma_nth_ilisteq {xs1,xs2:ilist}{n:int} ( pf1len: LENGTH (xs1, n), pf2len: LENGTH (xs2, n) , fpf: {x:int}{i:int | i < n} NTH (x, xs1, i) -> NTH (x, xs2, i) ) : ILISTEQ (xs1, xs2) // end of [lemma_nth_ilisteq] (* ****** ****** *) // (* // HX-2015-08-24: proven *) // prfun lemma_length_nth {xs:ilist} {n:int}{i:nat | i < n} (pflen: LENGTH(xs, n)): [x:int] NTH(x, xs, i) // (* ****** ****** *) (* // HX-2012-12-14: proven *) prfun lemma1_revapp_nth {xs,ys,zs:ilist} {n:int}{x:int}{i:int} ( REVAPP (xs, ys, zs), LENGTH (xs, n), NTH (x, ys, i) ) : NTH (x, zs, n+i) // end of [lemma1_revapp_nth] (* ****** ****** *) (* // HX-2012-12-14: proven *) prfun lemma2_revapp_nth {xs,ys,zs:ilist} {n:int}{x:int}{i:int} ( REVAPP (xs, ys, zs), LENGTH (xs, n), NTH (x, xs, i) ) : NTH (x, zs, n-1-i) // end of [lemma2_revapp_nth] (* ****** ****** *) (* // HX-2012-12-14: proven *) prfun lemma_reverse_nth {xs,ys:ilist} {n:int}{x:int}{i:int} ( pf: REVERSE(xs, ys), pf2: LENGTH(xs, n), pf3: NTH(x, xs, i) ) : NTH (x, ys, n-1-i) // end of [lemma_reverse_nth] (* ****** ****** *) (* // HX-2012-12-14: proven *) prfun lemma_reverse_symm{xs,ys:ilist}(REVERSE(xs, ys)): REVERSE(ys, xs) // end of [lemma_reverse_symm] (* ****** ****** *) dataprop INSERT ( xi:int, ilist, int, ilist ) = // INSERT (xi, xs, i, ys): insert xi in xs at i = ys | {xs:ilist} INSERTbas ( xi, xs, 0, ilist_cons (xi, xs) ) of () // end of [INSERTbas] | {x:int}{xs:ilist}{i:nat}{ys:ilist} INSERTind ( xi, ilist_cons (x, xs), i+1, ilist_cons (x, ys) ) of INSERT (xi, xs, i, ys) // end of [INSERTind] // end of [INSERT] (* ****** ****** *) (* // HX-2012-12-14: proven *) prfun lemma_insert_length {xi:int}{xs:ilist}{i:int}{ys:ilist}{n:int} (pf1: INSERT (xi, xs, i, ys), pf2: LENGTH (xs, n)): LENGTH (ys, n+1) // end of [lemma_insert_length] (* ****** ****** *) (* // HX-2012-12-14: proven *) prfun lemma_insert_nth_at {xi:int}{xs:ilist}{i:int}{ys:ilist} (pf: INSERT (xi, xs, i, ys)): NTH (xi, ys, i) // end of [lemma_insert_nth_eq] (* // HX-2012-12-14: proven *) prfun lemma_insert_nth_lt {xi:int}{xs:ilist}{i:int}{ys:ilist}{x:int}{j:int | j < i} (pf1: INSERT (xi, xs, i, ys), pf2: NTH (x, xs, j)): NTH (x, ys, j) // end of [lemma_insert_nth_lt] (* // HX-2012-12-14: proven *) prfun lemma_insert_nth_gte {xi:int}{xs:ilist}{i:int}{ys:ilist}{x:int}{j:int | j >= i} (pf1: INSERT (xi, xs, i, ys), pf2: NTH (x, xs, j)): NTH (x, ys, j+1) // end of [lemma_insert_nth_lt] (* ****** ****** *) (* // HX-2012-12-14: proven *) prfun lemma_nth_insert {x:int}{xs:ilist}{n:int} (pf: NTH (x, xs, n)): [ys:ilist] INSERT (x, ys, n, xs) // end of [lemma_nth_insert] (* ****** ****** *) // // UPDATE ( // yi, xs, i, ys // ): ys[i]=yi; xs[k]=ys[k] if k != i // dataprop UPDATE ( yi: int, ilist, int, ilist ) = // UPDATE | {x0:int}{xs:ilist} UPDATEbas ( yi, ilist_cons (x0, xs), 0, ilist_cons (yi, xs) ) of () // end of [UPDATEbas] | {x:int}{xs:ilist}{i:nat}{ys:ilist} UPDATEind ( yi, ilist_cons (x, xs), i+1, ilist_cons (x, ys) ) of UPDATE (yi, xs, i, ys) // end of [UPDATEind] // end of [UPDATE] (* ****** ****** *) // // INTERCHANGE (xs, i, j, ys) means: // ys[i]=xs[j]; ys[j]=xs[i]; ys[k]=xs[k] for k != i or j // absprop INTERCHANGE ( xs:ilist, i:int, j:int, ys:ilist ) (* INTERCHANGE *) (* ****** ****** *) prfun lemma_interchange_inv {xs:ilist}{i,j:int}{ys:ilist} (pf: INTERCHANGE (xs, i, j, ys)): INTERCHANGE (xs, j, i, ys) // end of [lemma_interchange_inv] prfun lemma_interchange_symm {xs:ilist}{i,j:int}{ys:ilist} (pf: INTERCHANGE (xs, i, j, ys)): INTERCHANGE (ys, i, j, xs) // end of [lemma_interchange_symm] (* ****** ****** *) // // PERMUTE (xs, ys): // [ys] is a permutation of [xs] // absprop PERMUTE ( xs1:ilist, xs2:ilist ) (* PERMUTE *) // prfun permute_refl {xs:ilist} (): PERMUTE (xs, xs) prfun permute_symm {xs1,xs2:ilist} (pf: PERMUTE (xs1, xs2)): PERMUTE (xs2, xs1) prfun permute_trans {xs1,xs2,xs3:ilist} (pf1: PERMUTE (xs1, xs2), pf2: PERMUTE (xs2, xs3)): PERMUTE (xs1, xs3) // (* ****** ****** *) prfun lemma_permute_length {xs1,xs2:ilist}{n:int} (pf1: PERMUTE (xs1, xs2), pf2: LENGTH (xs1, n)): LENGTH (xs2, n) // end of [lemma_permute_length] (* ****** ****** *) prfun lemma_permute_insert {x:int} {xs:ilist} {ys:ilist} (pf: PERMUTE (ilist_cons (x, xs), ys)): [ys1:ilist;i:nat] INSERT (x, ys1, i, ys) // end of [lemma_permute_insert] (* ****** ****** *) prfun lemma_interchange_permute {xs:ilist}{i,j:int}{ys:ilist} (pf: INTERCHANGE (xs, i, j, ys)): PERMUTE (xs, ys) // end of [lemma_interchange_permute] (* ****** ****** *) // absprop LTB (x: int, xs: ilist) // [x] is a strict lower bound for [xs] // end of [LTB] // prfun ltb_istot {xs:ilist} (): [x:int] LTB(x, xs) // prfun ltb_nil {x:int} (): LTB(x, ilist_nil) // prfun ltb_cons {x0:int} {x:int | x0 < x} {xs:ilist} (pf: LTB(x0, xs)): LTB(x0, ilist_cons(x, xs)) // end of [ltb_cons] // prfun ltb_cons_elim {x0:int} {x:int} {xs:ilist} (pf: LTB(x0, ilist_cons(x, xs))): [x0 < x] LTB(x0, xs) // end of [ltb_cons_elim] // prfun ltb_dec {x1:int}{x2:int | x2 <= x1}{xs:ilist} (pf: LTB(x1, xs)): LTB(x2, xs) // end of [ltb_dec] // (* ****** ****** *) // absprop LTEB (x: int, xs: ilist) // [x] is a lower bound for [xs] // end of [LTEB] // prfun lteb_istot {xs:ilist} (): [x:int] LTEB(x, xs) // prfun lteb_nil {x:int} (): LTEB(x, ilist_nil) // prfun lteb_cons {x0:int} {x:int | x0 <= x} {xs:ilist} (pf: LTEB(x0, xs)): LTEB(x0, ilist_cons(x, xs)) // end of [lteb_cons] // prfun lteb_cons_elim {x0:int} {x:int} {xs:ilist} (pf: LTEB(x0, ilist_cons(x, xs))): [x0 <= x] LTEB(x0, xs) // end of [lteb_cons_elim] // prfun lteb_dec {x1:int}{x2:int | x2 <= x1}{xs:ilist}(pf: LTEB(x1, xs)): LTEB(x2, xs) // end of [lteb_dec] // (* ****** ****** *) dataprop ISORD (ilist) = | ISORDnil(ilist_nil) of () | {x:int} {xs:ilist} ISORDcons(ilist_cons(x, xs)) of (ISORD(xs), LTEB(x, xs)) // end of [ISORD] (* ****** ****** *) prfun lemma_ltb_permute{x:int} {xs1,xs2:ilist} (pf1: LTB(x, xs1), pf2: PERMUTE(xs1, xs2)): LTB(x, xs2) // end of [lemma_ltb_permute] prfun lemma_lteb_permute{x:int} {xs1,xs2:ilist} (pf1: LTEB(x, xs1), pf2: PERMUTE(xs1, xs2)): LTEB(x, xs2) // end of [lemma_lteb_permute] (* ****** ****** *) // // SORT (xs, ys): // [ys] is a sorted version of [xs] // absprop SORT (xs:ilist, ys:ilist) // prfun sort_elim {xs,ys:ilist} (pf: SORT (xs, ys)): @(ISORD ys, PERMUTE (xs, ys)) prfun sort_make {xs,ys:ilist} (pf1: ISORD ys, pf2: PERMUTE (xs, ys)): SORT (xs, ys) // (* ****** ****** *) // // HX-2016-02-09: // static functions // for external solvers (such as Z3) // (* ****** ****** *) // stacst ilist_head : (ilist) -> int stacst ilist_tail : (ilist) -> ilist // stacst ilist_take : (ilist, int) -> ilist stacst ilist_drop : (ilist, int) -> ilist // (* ****** ****** *) // stacst ilist_get_at : (ilist, int) -> int stacst ilist_set_at : (ilist, int, int) -> ilist // (* ****** ****** *) // stacst ilist_length : (ilist) -> int // praxi lemma_length_f2p {xs:ilist} ( // argumentless ) : LENGTH(xs, ilist_length(xs)) // praxi lemma_length_p2f {xs:ilist}{n:int} ( pf: LENGTH(xs, n) ) : [ilist_length(xs) == n] unit_p // (* ****** ****** *) // stacst ilist_append : (ilist, ilist) -> ilist // praxi lemma_append_f2p {xs,ys:ilist} ( // argumentless ) : APPEND(xs,ys,ilist_append(xs, ys)) // praxi lemma_append_p2f {xs,ys,zs:ilist} ( pf: APPEND(xs, ys, zs) ) : [ilist_append(xs, ys) == zs] unit_p // (* ****** ****** *) prfun lemma_append_length_eq {xs,ys:ilist} ( // argumentless ) : [ ilist_length(ilist_append(xs,ys)) == ilist_length(xs)+ilist_length(ys) ] void // end of [lemma_append_length_eq] (* ****** ****** *) // stacst ilist_revapp : (ilist, ilist) -> ilist // stacst ilist_reverse : (ilist) -> ilist // (* ****** ****** *) // prfun lemma_revapp_append_eq {xs,ys:ilist} ( // argumentless ) : ILISTEQ ( ilist_revapp(xs, ys) , ilist_append(ilist_reverse(xs), ys) ) (* ILISTEQ *) // lemma_revapp_append_eq // prfun lemma_reverse_reverse_eq {xs:ilist} ( // argumentless ) : ILISTEQ(xs, ilist_reverse(ilist_reverse(xs))) // (* ****** ****** *) // stacst ilist_snoc : (ilist, int) -> ilist // (* ****** ****** *) // stacst ilist_isord : (ilist) -> bool // stacst ilist_sort : (ilist) -> ilist // (* ****** ****** *) (* end of [ilist_prf.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/0000755000175000017500000000000013431250607017554 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/funmap.hats0000644000175000017500000001110413431250607021720 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) sortdef t0p = t@ype (* ****** ****** *) // // HX-2012-12: // for maps associating keys with items // of types [key] and [itm], respectively // abstype map_type (key:t@ype, itm:t@ype+) = ptr typedef map(key:t0p, itm:t0p) = map_type(key, itm) (* ****** ****** *) fun{key:t0p} equal_key_key (x1: key, x2: key):<> bool fun{key:t0p} compare_key_key (x1: key, x2: key):<> int (* ****** ****** *) fun{ } funmap_nil {key,itm:t0p}():<> map(key, itm) fun{ } funmap_make_nil{key,itm:t0p}():<> map(key, itm) (* ****** ****** *) fun{ } funmap_is_nil {key,itm:t0p}(map: map(key, INV(itm))):<> bool fun{ } funmap_isnot_nil {key,itm:t0p}(map: map(key, INV(itm))):<> bool (* ****** ****** *) // // HX-2012-12: this function is O(n)-time // fun{ key,itm:t@ype } funmap_size(map: map(key, INV(itm))):<> size_t // (* ****** ****** *) fun{ key,itm:t0p } funmap_search ( map: map(key, INV(itm)) , key: key, res: &itm? >> opt(itm, b) ) : #[b:bool] bool(b) fun{ key,itm:t0p } funmap_search_opt (map: map(key, INV(itm)), k0: key): Option_vt(itm) // end of [funmap_search_opt] (* ****** ****** *) // // HX-2012-12: // if [k0] occurs in [map], [x0] replaces the // item associated with [k0] in [map] while the // item is stored in [res] instead. // fun{ key,itm:t0p } funmap_insert ( map: &map(key, INV(itm)) >> _ , key: key, x0: itm, res: &itm? >> opt(itm, b) ) : #[b:bool] bool(b) fun{ key,itm:t0p } funmap_insert_opt ( map: &map(key, INV(itm)) >> _, k0: key, x0: itm ) : Option_vt(itm) // endfun (* ****** ****** *) // // HX-2012-12: // insertion always happens regardless whether // [k0] is associated with some item in [map] // fun{ key,itm:t0p } funmap_insert_any (map: &map(key, INV(itm)) >> _, k0: key, x0: itm): void // end of [funmap_insert_any] (* ****** ****** *) // fun{ key,itm:t0p } funmap_takeout ( &map(key, INV(itm)) >> _, k0: key, res: &itm? >> opt (itm, b) ) : #[b:bool] bool (b) // end-of-function // fun{ key,itm:t0p } funmap_takeout_opt (map: &map(key, INV(itm)) >> _, k0: key) : Option_vt (itm) // (* ****** ****** *) fun{ key,itm:t0p } funmap_remove (map: &map(key, INV(itm)) >> _, k0: key): bool // end of [funmap_remove] (* ****** ****** *) // fun{} fprint_funmap$sep (out: FILEref): void // "; " fun{} fprint_funmap$mapto (out: FILEref): void // "->" // fun{ key,itm:t@ype } fprint_funmap (out: FILEref, map: map(key, INV(itm))): void // overload fprint with fprint_funmap // (* ****** ****** *) // fun {key:t0p ;itm:t0p} {env:vt0p} funmap_foreach$fwork (k: key, x: itm, env: &(env) >> _): void // end of [funmap_foreach$fwork] // fun{ key,itm:t0p } funmap_foreach(map: map(key, INV(itm))): void // fun {key:t0p ;itm:t0p} {env:vt0p} funmap_foreach_env (map: map(key, INV(itm)), env: &(env) >> _): void // end of [funmap_foreach_env] // (* ****** ****** *) fun{ key,itm:t0p } funmap_listize (map: map(key, INV(itm))): List0_vt(@(key,itm)) // end of [funmap_listize] (* ****** ****** *) // fun {key:t0p ;itm:t0p} {ki2:t0p} funmap_flistize$fopr(key, itm): ki2 fun {key:t0p ;itm:t0p} {ki2:t0p} funmap_flistize(map: map(key, INV(itm))): List0_vt(ki2) // (* ****** ****** *) // fun {key:t0p ;itm:t0p} funmap_streamize (map: map(key, INV(itm))): stream_vt(@(key,itm)) // (* ****** ****** *) (* end of [funmap.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/funset.hats0000644000175000017500000001137213431250607021745 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) sortdef t0p = t@ype (* ****** ****** *) // abstype set_type (a:t@ype+) = ptr typedef set (a:t0p) = set_type (a) // (* ****** ****** *) fun{a:t0p} compare_elt_elt (x1: a, x2: a):<> int (* ****** ****** *) fun{} funset_nil {a:t0p} ():<> set(a) fun{} funset_make_nil {a:t0p} ():<> set(a) fun{a:t0p} funset_sing (x0: a):<> set(a) // singleton set fun{a:t0p} funset_make_sing (x0: a):<> set(a) // singleton set (* ****** ****** *) fun{a:t0p} funset_make_list (xs: List(INV(a))):<> set(a) (* ****** ****** *) fun{} funset_is_nil {a:t0p} (xs: set(INV(a))):<> bool fun{} funset_isnot_nil {a:t0p} (xs: set(INV(a))):<> bool (* ****** ****** *) fun{a:t0p} funset_size (xs: set(INV(a))):<> size_t (* ****** ****** *) fun{a:t0p} funset_is_member (xs: set(INV(a)), x0: a):<> bool fun{a:t0p} funset_isnot_member (xs: set(INV(a)), x0: a):<> bool (* ****** ****** *) fun{a:t0p} funset_insert (xs: &set(INV(a)) >> _, x0: a): bool(*[x0] in [xs]*) // end of [funset_insert] fun{a:t0p} funset_remove (xs: &set(INV(a)) >> _, x0: a): bool(*[x0] in [xs]*) // end of [funset_remove] (* ****** ****** *) fun{a:t0p} funset_getmax ( xs: set(INV(a)), x0: &a? >> opt(a, b) ) : #[b:bool] bool(b) // endfun fun{a:t0p} funset_getmax_opt(xs: set(INV(a))):<> Option_vt(a) fun{a:t0p} funset_getmin ( xs: set(INV(a)), x0: &a? >> opt(a, b) ) : #[b:bool] bool(b) // endfun fun{a:t0p} funset_getmin_opt(xs: set(INV(a))):<> Option_vt(a) (* ****** ****** *) fun{a:t0p} funset_takeoutmax ( xs: &set(INV(a)) >> _, x0: &a? >> opt(a, b) ) : #[b:bool] bool (b) fun{a:t0p} funset_takeoutmax_opt (xs: &set(INV(a)) >> _):<> Option_vt(a) (* ****** ****** *) fun{a:t0p} funset_takeoutmin ( xs: &set(INV(a)) >> _, x0: &a? >> opt(a, b) ) : #[b:bool] bool (b) fun{a:t0p} funset_takeoutmin_opt (xs: &set(INV(a)) >> _):<> Option_vt(a) (* ****** ****** *) fun{a:t0p} funset_union (xs1: set(INV(a)), xs2: set(a)):<> set(a) fun{a:t0p} funset_intersect (xs1: set(INV(a)), xs2: set(a)):<> set(a) fun{a:t0p} funset_differ (xs1: set(INV(a)), xs2: set(a)):<> set(a) fun{a:t0p} funset_symdiff (xs1: set(INV(a)), xs2: set(a)):<> set(a) (* ****** ****** *) fun{a:t0p} funset_equal (xs1: set(INV(a)), xs2: set(a)):<> bool (* ****** ****** *) // // set ordering induced by the ordering on elements // fun{a:t0p} funset_compare (xs1: set(INV(a)), xs2: set(a)):<> Sgn // (* ****** ****** *) fun{a:t0p} funset_is_subset (xs1: set(INV(a)), xs2: set(a)):<> bool fun{a:t0p} funset_is_supset (xs1: set(INV(a)), xs2: set(a)):<> bool (* ****** ****** *) // fun{} fprint_funset$sep (out: FILEref): void // ", " // fun{a:t0p} fprint_funset (out: FILEref, xs: set(INV(a))): void fun{a:t0p} fprint_funset_sep (out: FILEref, xs: set(INV(a)), sep: string): void // overload fprint with fprint_funset // (* ****** ****** *) // fun{ a:t0p}{env:vt0p } funset_foreach$fwork (x: a, env: &(env) >> _): void // fun{a:t0p} funset_foreach (set: set(INV(a))): void fun{ a:t0p}{env:vt0p } funset_foreach_env (set: set(INV(a)), env: &(env) >> _): void // end of [funset_foreach_env] // (* ****** ****** *) // fun {a:t0p} funset_tabulate{n:nat}(n: int(n)): set(a) fun {a:t0p} funset_tabulate$fopr (index: intGte(0)): (a) // (* ****** ****** *) fun{a:t0p} funset_listize(xs: set(INV(a))): List0_vt(a) (* ****** ****** *) // fun{ a:t0p}{b:t0p } funset_flistize$fopr(x: a): b fun{ a:t0p}{b:t0p } funset_flistize (xs: set(INV(a))): List0_vt(b) // (* ****** ****** *) // fun{a:t0p} funset_streamize(xs: set(INV(a))): stream_vt(a) // (* ****** ****** *) (* end of [funset.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/linmap.hats0000644000175000017500000001302213431250607021713 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // // HX: shared by linmap_avltree // HX: shared by linmap_list (* unordered list *) // HX: shared by linmap_randbst // HX: shared by linmap_skiplst // (* ****** ****** *) absvtype map_vtype (key:t@ype, itm:vt@ype+) = ptr stadef map = map_vtype (* ****** ****** *) sortdef t0p = t@ype and vt0p = vt@ype (* ****** ****** *) fun{key:t0p} equal_key_key (x1: key, x2: key):<> bool fun{key:t0p} compare_key_key (x1: key, x2: key):<> int (* ****** ****** *) fun{} linmap_nil {key:t0p;itm:vt0p} ():<> map (key, itm) fun{} linmap_make_nil {key:t0p;itm:vt0p} (): map (key, itm) (* ****** ****** *) fun{ } linmap_is_nil {key:t0p;itm:vt0p} (map: !map (key, INV(itm))):<> bool // end of [listmap_is_nil] fun{ } linmap_isnot_nil {key:t0p;itm:vt0p} (map: !map (key, INV(itm))):<> bool // end of [listmap_isnot_nil] (* ****** ****** *) // // HX: this function is O(1) // fun{ key:t0p;itm:vt0p } linmap_size (map: !map (key, INV(itm))):<> size_t // (* ****** ****** *) fun{ key:t0p;itm:t0p } linmap_search ( !map (key, INV(itm)), key, res: &itm? >> opt (itm, b) ) : #[b:bool] bool(b) (*found*) // endfun fun{ key:t0p;itm:vt0p } linmap_search_ref (map: !map (key, INV(itm)), k0: key): cPtr0 (itm) // end of [linmap_search_ref] fun{ key:t0p;itm:t0p } linmap_search_opt (map: !map (key, INV(itm)), k0: key): Option_vt (itm) // end of [linmap_search_opt] (* ****** ****** *) // // HX-2012-12: // if [k0] occurs in [map], [x0] replaces the // item associated with [k0] in [map] while the // item is stored in [res] instead. // fun{ key:t0p;itm:vt0p } linmap_insert ( &map (key, INV(itm)) >> _, key, itm, res: &itm? >> opt(itm, b) ) : #[b:bool] bool(b) // endfun fun{ key:t0p;itm:vt0p } linmap_insert_opt (map: &map(key, INV(itm)) >> _, k0: key, x0: itm): Option_vt(itm) // end of [linmap_insert_opt] (* ****** ****** *) // // HX-2012-12: // insertion always happens regardless whether // [k0] is associated with some item in [map] // fun{ key:t0p;itm:vt0p } linmap_insert_any (map: &map (key, INV(itm)) >> _, k0: key, x0: itm): void // end of [linmap_insert_any] (* ****** ****** *) fun{ key:t0p;itm:vt0p } linmap_takeout ( &map (key, INV(itm)) >> _, key, res: &itm? >> opt (itm, b) ) : #[b:bool] bool(b) // endfun fun{ key:t0p;itm:vt0p } linmap_takeout_opt (map: &map (key, INV(itm)) >> _, k0: key): Option_vt (itm) // end of [linmap_takeout_opt] (* ****** ****** *) fun{ key:t0p;itm:t0p } linmap_remove ( map: &map (key, INV(itm)) >> _, k0: key): bool // end of [linmap_remove] (* ****** ****** *) // fun{ } fprint_linmap$sep (out: FILEref): void // "; " fun{ } fprint_linmap$mapto (out: FILEref): void // "->" // fun{ key,itm:t@ype } fprint_linmap (out: FILEref, map: !map (key, INV(itm))): void // overload fprint with fprint_linmap // (* ****** ****** *) fun {key:t0p ;itm:vt0p} {env:vt0p} linmap_foreach$fwork (k: key, x: &itm >> _, env: &(env) >> _): void // end of [linmap_foreach$fwork] fun{ key:t0p;itm:vt0p } linmap_foreach (map: !map (key, INV(itm))): void // end of [linmap_foreach] fun {key:t0p ;itm:vt0p} {env:vt0p} linmap_foreach_env (map: !map (key, INV(itm)), env: &(env) >> _): void // end of [linmap_foreach_env] (* ****** ****** *) fun{ key:t0p;itm:t0p } linmap_free (map: map (key, INV(itm))): void (* ****** ****** *) fun{ itm:vt0p } linmap_freelin$clear (x: &itm >> _?): void fun{ key:t0p;itm:vt0p } linmap_freelin (map: map (key, INV(itm))): void (* ****** ****** *) // // HX-2013: // a linmap can be properly freed only if it is empty // fun{ key:t0p;itm:vt0p } linmap_free_ifnil ( map: !map (key, INV(itm)) >> opt(map(key, itm), b) ) : #[b:bool] bool(b) (*~freed*) // endfun // (* ****** ****** *) // // HX: traversal fashion is unspecified // (* ****** ****** *) // fun {key:t0p ;itm:vt0p} {ki2:vt0p} linmap_flistize$fopr (k: key, x: itm): ki2 fun {key:t0p ;itm:vt0p} {ki2:vt0p} linmap_flistize (map: map (key, INV(itm))): List0_vt(ki2) // (* ****** ****** *) fun {key:t0p ;itm:vt0p} linmap_listize (map: map (key, INV(itm))): List0_vt@(key, itm) // end of [linmap_listize] fun{ key,itm:t0p } linmap_listize1 (map: !map (key, INV(itm))): List0_vt@(key, itm) // end of [linmap_listize1] (* ****** ****** *) (* end of [linmap.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/linheap.hats0000644000175000017500000000572413431250607022065 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: November, 2011 *) (* ****** ****** *) absvtype heap_vtype (a:vt@ype+) = ptr vtypedef heap (a:vt0p) = heap_vtype (a) (* ****** ****** *) fun{a:vt0p} compare_elt_elt (x1: &a, x2: &a):<> int (* ****** ****** *) fun{} linheap_nil {a:vt0p} ():<> heap (a) fun{} linheap_make_nil {a:vt0p} ():<> heap (a) (* ****** ****** *) fun{ } linheap_is_nil{a:vt0p}(hp: !heap (INV(a))):<> bool fun{ } linheap_isnot_nil{a:vt0p}(hp: !heap (INV(a))):<> bool (* ****** ****** *) fun{a:vt0p} linheap_size (hp: !heap (INV(a))):<> size_t (* ****** ****** *) fun{a:vt0p} linheap_insert (hp: &heap (INV(a)) >> _, x: a): void (* ****** ****** *) fun{a:t0p} linheap_getmin ( hp: !heap (INV(a)), res: &a? >> opt (a, b) ) : #[b:bool] bool (b) // endfun fun{a:vt0p} linheap_getmin_ref (hp: !heap (INV(a))): cPtr0 (a) fun{a:t0p} linheap_getmin_opt (hp: !heap (INV(a))): Option_vt (a) (* ****** ****** *) fun{a:vt0p} linheap_delmin ( hp: &heap (INV(a)) >> _, res: &a? >> opt (a, b) ) : #[b:bool] bool b // endfun fun{a:vt0p} linheap_delmin_opt (hp: &heap (INV(a)) >> _): Option_vt (a) (* ****** ****** *) fun{a:vt0p} linheap_merge (hp1: heap (INV(a)), hp2: heap (a)): heap (a) // end of [linheap_merge] (* ****** ****** *) fun{a:t0p} linheap_free (hp: heap (INV(a))): void (* ****** ****** *) fun{x:vt0p} linheap_freelin$clear (x: &x >> x?): void fun{a:vt0p} linheap_freelin (hp: heap (INV(a))): void (* ****** ****** *) // // HX: a heap is freed only if it is empty // fun{a:vt0p} linheap_free_ifnil (hp: !heap (INV(a)) >> opt (heap (a), b)) :<> #[b:bool] bool(b) // end of [linheap_free_ifnil] (* ****** ****** *) (* end of [linheap.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/funmset.hats0000644000175000017500000000641413431250607022123 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) sortdef t0p = t@ype (* ****** ****** *) // abstype mset_type (a:t@ype+) = ptr typedef mset (a:t0p) = mset_type (a) // (* ****** ****** *) fun{a:t0p} compare_elt_elt (x1: a, x2: a):<> int (* ****** ****** *) fun{} funmset_nil {a:t0p} ():<> mset(a) fun{} funmset_make_nil {a:t0p} ():<> mset(a) (* ****** ****** *) // fun{a:t0p} funmset_sing (x0: a):<> mset(a) // singleton mset fun{a:t0p} funmset_make_sing (x0: a):<> mset(a) // singleton mset // (* ****** ****** *) fun{a:t0p} funmset_make_list (xs: List(INV(a))):<> mset(a) (* ****** ****** *) fun{} funmset_is_nil {a:t0p} (xs: mset(INV(a))):<> bool fun{} funmset_isnot_nil {a:t0p} (xs: mset(INV(a))):<> bool (* ****** ****** *) fun{a:t0p} funmset_size (xs: mset(INV(a))):<> size_t (* ****** ****** *) // fun{a:t0p} funmset_get_ntime (xs: mset(INV(a)), x0: a): intGte(0) // fun{a:t0p} funmset_is_member(xs: mset(INV(a)), x0: a): bool fun{a:t0p} funmset_isnot_member(xs: mset(INV(a)), x0: a): bool // (* ****** ****** *) // fun{a:t0p} funmset_insert(xs: &mset(INV(a)) >> _, x0: a): intGte(0) fun{a:t0p} funmset_remove(xs: &mset(INV(a)) >> _, x0: a): intGte(0) // (* ****** ****** *) // fun{a:t0p} funmset_insert2 (xs: &mset(INV(a)) >> _, n0: intGt(0), x0: a): intGte(0) fun{a:t0p} funmset_remove2 (xs: &mset(INV(a)) >> _, n0: intGt(0), x0: a): intGte(0) // (* ****** ****** *) // fun{a:t0p} funmset_union(xs: mset(INV(a)), ys: mset(a)): mset(a) fun{a:t0p} funmset_intersect(xs: mset(INV(a)), ys: mset(a)): mset(a) // (* ****** ****** *) // fun {a:t0p} funmset_foreach(xs: mset(INV(a))): void fun {a:t0p} {env:vt0p} funmset_foreach_env(xs: mset(INV(a)), env: &(env) >> _): void // fun{ a:t0p}{env:vt0p } funmset_foreach$fwork (n: intGt(0), x: a, env: &(env) >> _): void // (* ****** ****** *) // fun{} fprint_funmset$sep (out: FILEref): void // ", " // fun{a:t0p} fprint_funmset(out: FILEref, xs: mset(INV(a))): void fun{a:t0p} fprint_funmset_sep(out: FILEref, xs: mset(INV(a)), sep: string): void // overload fprint with fprint_funmset // (* ****** ****** *) (* end of [funmset.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/linset.hats0000644000175000017500000001025113431250607021732 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // // HX: shared by linset_listord (* ordered list *) // HX: shared by linset_avltree (* AVL-tree-based *) // (* ****** ****** *) // // HX-2013-02: // for sets of nonlinear elements // absvtype set_vtype (a:t@ype+) = ptr // (* ****** ****** *) vtypedef set (a:t0p) = set_vtype (a) (* ****** ****** *) fun{a:t0p} compare_elt_elt (x1: a, x2: a):<> int (* ****** ****** *) fun{} linset_nil{a:t0p} ():<> set(a) fun{} linset_make_nil{a:t0p} ():<> set(a) (* ****** ****** *) fun{a:t0p} linset_sing (x: a): set(a) fun{a:t0p} linset_make_sing (x: a): set(a) (* ****** ****** *) fun{a:t0p} linset_make_list (xs: List(INV(a))): set(a) (* ****** ****** *) fun{} linset_is_nil {a:t0p} (xs: !set(INV(a))):<> bool fun{} linset_isnot_nil {a:t0p} (xs: !set(INV(a))):<> bool (* ****** ****** *) fun{a:t0p} linset_size (!set(INV(a))): size_t (* ****** ****** *) fun{a:t0p} linset_is_member (xs: !set(INV(a)), x0: a):<> bool fun{a:t0p} linset_isnot_member (xs: !set(INV(a)), x0: a):<> bool (* ****** ****** *) fun{a:t0p} linset_copy (!set(INV(a))): set(a) fun{a:t0p} linset_free (xs: set(INV(a))): void (* ****** ****** *) // fun{a:t0p} linset_insert (xs: &set(INV(a)) >> _, x0: a): bool // (* ****** ****** *) // fun{a:t0p} linset_takeout ( &set(INV(a)) >> _, a, res: &(a?) >> opt(a, b) ) : #[b:bool] bool(b) // endfun fun{a:t0p} linset_takeout_opt (&set(INV(a)) >> _, a): Option_vt(a) // (* ****** ****** *) // fun{a:t0p} linset_remove (xs: &set(INV(a)) >> _, x0: a): bool // (* ****** ****** *) // // HX: choosing an element in an unspecified manner // fun{a:t0p} linset_choose ( xs: !set(INV(a)), x: &a? >> opt (a, b) ) : #[b:bool] bool(b) // fun{a:t0p} linset_choose_opt (xs: !set(INV(a))): Option_vt(a) // (* ****** ****** *) fun{a:t0p} linset_takeoutmax ( xs: &set(INV(a)) >> _, res: &a? >> opt(a, b) ) : #[b:bool] bool (b) fun{a:t0p} linset_takeoutmax_opt (xs: &set(INV(a)) >> _): Option_vt(a) (* ****** ****** *) fun{a:t0p} linset_takeoutmin ( xs: &set(INV(a)) >> _, res: &a? >> opt(a, b) ) : #[b:bool] bool (b) fun{a:t0p} linset_takeoutmin_opt (xs: &set(INV(a)) >> _): Option_vt(a) (* ****** ****** *) // fun{} fprint_linset$sep (FILEref): void // ", " // fun{a:t0p} fprint_linset (out: FILEref, xs: !set(INV(a))): void // overload fprint with fprint_linset // (* ****** ****** *) // fun{ a:t0p}{env:vt0p } linset_foreach$fwork (x: a, env: &(env) >> _): void // fun{a:t0p} linset_foreach (set: !set(INV(a))): void fun{ a:t0p}{env:vt0p } linset_foreach_env (set: !set(INV(a)), env: &(env) >> _): void // end of [linset_foreach_env] // (* ****** ****** *) fun{a:t0p} linset_listize (xs: set(INV(a))): List0_vt (a) (* ****** ****** *) fun{a:t0p} linset_listize1 (xs: !set(INV(a))): List0_vt (a) (* ****** ****** *) (* end of [linset.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/hashtbl.hats0000644000175000017500000001306313431250607022065 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2013 *) (* ****** ****** *) // absvtype hashtbl_vtype (k:t@ype, i:vt@ype+) = ptr // vtypedef hashtbl (k:t0p, i:vt0p) = hashtbl_vtype(k, i) // (* ****** ****** *) fun{key:t0p} hash_key(x: key):<> ulint fun{key:t0p} equal_key_key(x1: key, x2: key):<> bool (* ****** ****** *) // // HX: for recapacitizing policy // fun{} hashtbl$recapacitize((*void*)): int // (* ****** ****** *) fun{ key:t0p;itm:vt0p } hashtbl_make_nil (cap: sizeGte(1)): hashtbl(key, itm) (* ****** ****** *) // // HX: the number of stored elements // fun{} hashtbl_get_size {key:t0p;itm:vt0p} (tbl: !hashtbl(key, INV(itm))):<> sizeGte(0) // end of [hashtbl_get_size] (* ****** ****** *) // // HX: the array size of the hashtable // fun{} hashtbl_get_capacity {key:t0p;itm:vt0p} (tbl: !hashtbl(key, INV(itm))):<> sizeGte(1) // end of [hashtbl_get_capacity] (* ****** ****** *) fun{ key:t0p;itm:t0p } hashtbl_search ( tbl: !hashtbl(key, INV(itm)) , key: key, res: &itm? >> opt (itm, b) ) : #[b:bool] bool(b)(*found*) // end of [hashtbl_search] fun{ key:t0p;itm:vt0p } hashtbl_search_ref (tbl: !hashtbl(key, INV(itm)), key: key): cPtr0 (itm) // end of [hashtbl_search_ref] fun{ key:t0p;itm:t0p } hashtbl_search_opt (tbl: !hashtbl(key, INV(itm)), key: key): Option_vt(itm) // end of [hashtbl_search_opt] (* ****** ****** *) fun{ key:t0p;itm:vt0p } hashtbl_insert ( tbl: !hashtbl(key, INV(itm)) , key: key, x0: itm, res: &itm? >> opt (itm, b) ) : #[b:bool] bool (b) // endfun fun{ key:t0p;itm:vt0p } hashtbl_insert_opt (tbl: !hashtbl(key, INV(itm)), key, itm): Option_vt(itm) // end of [hashtbl_insert_opt] (* ****** ****** *) fun{ key:t0p;itm:vt0p } hashtbl_insert_any (!hashtbl(key, INV(itm)), key, itm): void // end of [hashtbl_insert_any] (* ****** ****** *) fun{ key:t0p;itm:vt0p } hashtbl_takeout ( tbl: !hashtbl(key, INV(itm)) , key: key, res: &itm? >> opt (itm, b) ) : #[b:bool] bool (b) // endfun fun{ key:t0p;itm:vt0p } hashtbl_takeout_opt (!hashtbl(key, INV(itm)), key): Option_vt(itm) // end of [hashtbl_takeout_opt] (* ****** ****** *) fun{ key:t0p;itm:t0p } hashtbl_remove (tbl: !hashtbl(key, INV(itm)), key: key): bool // end of [hashtbl_remove] (* ****** ****** *) fun{ key:t0p;itm:vt0p } hashtbl_exchange (tbl: !hashtbl(key, INV(itm)), key: key, x0: &itm >> _): bool // end of [hashtbl_exchange] (* ****** ****** *) fun{ key:t0p;itm:vt0p } hashtbl_takeout_all (tbl: !hashtbl(key, INV(itm))): List0_vt @(key, itm) // end of [hashtbl_takeout_all] (* ****** ****** *) fun{ key:t0p;itm:vt0p } hashtbl_reset_capacity (tbl: !hashtbl(key, INV(itm)), cap2: sizeGte(1)): bool // end of [hashtbl_reset_capacity] (* ****** ****** *) fun{ key:t0p;itm:vt0p } hashtbl_adjust_capacity (!hashtbl(key, INV(itm))): bool (* ****** ****** *) // fun{ key,itm:t@ype } fprint_hashtbl (out: FILEref, tbl: !hashtbl(key, INV(itm))): void // overload fprint with fprint_hashtbl // fun{} fprint_hashtbl$sep (out: FILEref): void // default: fprint("; ") fun{} fprint_hashtbl$mapto (out: FILEref): void // default: fprint("->") // (* ****** ****** *) // fun {key:t0p ;itm:vt0p} hashtbl_foreach(tbl: !hashtbl(key, INV(itm))): void fun {key:t0p ;itm:vt0p} {env:vt0p} hashtbl_foreach_env (tbl: !hashtbl(key, INV(itm)), env: &env >> _): void // fun {key:t0p ;itm:vt0p} {env:vt0p} hashtbl_foreach$fwork(k: key, x: &itm >> _, &env >> _): void // (* ****** ****** *) // fun {key:t0p ;itm:vt0p} hashtbl_foreach_cloref ( tbl: !hashtbl(key, INV(itm)), fwork: (key, &itm >> _) - void ) : void // end-of-function // (* ****** ****** *) fun {key:t0p ;itm:t0p} hashtbl_free (tbl: hashtbl(key, INV(itm))): void (* ****** ****** *) // fun {key:t0p ;itm:vt0p} {ki2:vt0p} hashtbl_flistize$fopr(k: key, x: itm): ki2 fun {key:t0p ;itm:vt0p} {ki2:vt0p} hashtbl_flistize (tbl: hashtbl(key, INV(itm))): List0_vt(ki2) // (* ****** ****** *) fun {key:t0p ;itm:vt0p} hashtbl_listize (tbl: hashtbl(key, INV(itm))): List0_vt @(key, itm) // end of [hashtbl_listize] fun{ key,itm:t0p } hashtbl_listize1 (tbl: !hashtbl(key, INV(itm))): List0_vt @(key, itm) // end of [hashtbl_listize1] (* ****** ****** *) // fun {key:t0p ;itm:vt0p} streamize_hashtbl (tbl: hashtbl(key, INV(itm))): stream_vt @(key, itm) // end of [streamize_hashtbl] // (* ****** ****** *) (* end of [hashtbl.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/.keeper0000644000175000017500000000000013431250607021016 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/linmap_node.hats0000644000175000017500000000657313431250607022735 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // // HX: shared by linmap_list // (* ****** ****** *) absvtype linmap_node_vtype (key:t@ype, itm:vt@ype+, l:addr) = ptr(l) // end of [linmap_node_vtype] (* ****** ****** *) // stadef mynode = linmap_node_vtype // HX: local shorthand // vtypedef mynode (key:t0p, itm:vt0p) = [l:addr] mynode (key, itm, l) vtypedef mynode0 (key:t0p, itm:vt0p) = [l:addr | l >= null] mynode (key, itm, l) vtypedef mynode1 (key:t0p, itm:vt0p) = [l:addr | l > null] mynode (key, itm, l) // (* ****** ****** *) castfn mynode2ptr {key:t0p;itm:vt0p} {l:addr} (nx: !mynode (key, INV(itm), l)):<> ptr (l) // end of [mynode2ptr] (* ****** ****** *) // fun{} mynode_null {key:t0p;itm:vt0p} ():<> mynode (key, itm, null) // praxi mynode_free_null {key:t0p;itm:vt0p} (nx: mynode (key, itm, null)): void // (* ****** ****** *) fun{ key:t0p;itm:vt0p } mynode_make_keyitm (k: key, x: itm): mynode1 (key, itm) // end of [mynode_make_keyitm] (* ****** ****** *) fun{ key:t0p;itm:vt0p } mynode_get_key (nx: !mynode1 (key, INV(itm))):<> key fun{ key:t0p;itm:vt0p } mynode_getref_itm (nx: !mynode1 (key, INV(itm))):<> cPtr1 (itm) (* ****** ****** *) fun{ key:t0p;itm:vt0p } mynode_free_keyitm ( nx: mynode1(key, INV(itm)), k0: &key? >> _, x0: &itm? >> _ ) : void // end of [mynode_free_keyitm] fun{ key:t0p;itm:vt0p } mynode_getfree_itm (nx: mynode1 (key, INV(itm))): itm (* ****** ****** *) fun{ key:t0p;itm:vt0p } linmap_search_ngc (map: !map (key, INV(itm)), k0: key): Ptr0(*mynode*) // end of [linmap_search_ngc] (* ****** ****** *) fun{ key:t0p;itm:vt0p } linmap_insert_ngc ( map: &map (key, INV(itm)) >> _, nx: mynode1 (key, itm) ) : mynode0 (key, itm) // endfun fun{ key:t0p;itm:vt0p } linmap_insert_any_ngc ( map: &map (key, INV(itm)) >> _, nx: mynode1 (key, itm) ) : void // end of [linmap_insert_any_ngc] (* ****** ****** *) fun{ key:t0p;itm:vt0p } linmap_takeout_ngc (map: &map (key, INV(itm)) >> _, k0: key): mynode0 (key, itm) // end of [linmap_takeout_ngc] (* ****** ****** *) (* end of [linmap_node.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/linralist.hats0000644000175000017500000000721013431250607022436 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) (* ****** ****** *) // // HX: shared by linralist_nested // (* ****** ****** *) // // HX-2013-01: // the time-complexity for various functions operating on // random-access lists: // // linralist_cons: O(1) // amortized // linralist_uncons: O(1) // amortized // // linralist_length: O(log(n)) // // linralist_get_at: O(log(n)) // linralist_set_at: O(log(n)) // (* ****** ****** *) // // HX: indexed by list length // absvtype ralist_vtype (a:vt@ype+, n:int) // stadef ralist = ralist_vtype // vtypedef ralist (a:vt0p) = [n:int] ralist (a, n) vtypedef Ralist (a:vt0p) = [n:int] ralist (a, n) // (* ****** ****** *) prfun lemma_ralist_param {a:vt0p}{n:int} (xs: !ralist (INV(a), n)): [n >= 0] void // end of [lemma_ralist_param] (* ****** ****** *) fun{} linralist_nil{a:vt0p}():<> ralist (a, 0) fun{} linralist_make_nil{a:vt0p}():<> ralist (a, 0) (* ****** ****** *) fun{a:vt0p} linralist_cons {n:int} (x: a, xs: ralist (INV(a), n)):<> ralist (a, n+1) // end of [linralist_cons] fun{a:vt0p} linralist_uncons {n:pos} (xs: &ralist (INV(a), n) >> ralist (a, n-1)): a // end of [linralist_uncons] (* ****** ****** *) // fun{a:t0p} linralist_head {n:pos} (xs: !ralist (INV(a), n)):<> a fun{a:t0p} linralist_tail {n:pos} (xs: ralist (INV(a), n)): ralist (a, n-1) // (* ****** ****** *) // fun{} linralist_is_nil{a:vt0p} {n:int} (xs: !ralist (INV(a), n)):<> bool(n==0) fun{} linralist_is_cons{a:vt0p} {n:int} (xs: !ralist (INV(a), n)):<> bool(n > 0) // (* ****** ****** *) fun linralist_length{a:vt0p} {n:nat} (xs: !ralist (INV(a), n)):<> int (n) // end of [linralist_length] (* ****** ****** *) fun{a:vt0p} linralist_getref_at{n:int} (xs: !ralist (INV(a), n), i: natLt n):<> cPtr1 (a) // end of [linralist_getref_at] (* ****** ****** *) // fun{a:t0p} linralist_get_at{n:int} (xs: !ralist (INV(a), n), i: natLt n):<> a overload [] with linralist_get_at // fun{a:t0p} linralist_set_at{n:int} (xs: !ralist (INV(a), n), i: natLt n, x: a): void overload [] with linralist_set_at // (* ****** ****** *) fun{a:t0p} linralist_listize {n:int} (xs: !ralist (INV(a), n)): list_vt (a, n) // end of [linralist_listize] fun{a:vt0p} linralist_listize_free {n:int} (xs: ralist (INV(a), n)): list_vt (a, n) // end of [linralist_listize_free] (* ****** ****** *) (* end of [linralist.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/linset_node.hats0000644000175000017500000000611013431250607022736 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // // HX: shared by linset_listord (* ordered list *) // HX: shared by linset_avltree (* AVL-tree-based *) // (* ****** ****** *) absvtype linset_node_vtype (a:t@ype+, l:addr) = ptr (* ****** ****** *) // // HX: local shorthand // stadef mynode = linset_node_vtype // vtypedef mynode (a:t0p) = [l:addr] mynode (a, l) vtypedef mynode0 (a:t0p) = [l:addr | l >= null] mynode (a, l) vtypedef mynode1 (a:t0p) = [l:addr | l > null] mynode (a, l) // (* ****** ****** *) castfn mynode2ptr {a:t0p}{l:addr} (nx: !mynode (INV(a), l)):<> ptr (l) // end of [mynode2ptr] overload ptrcast with mynode2ptr (* ****** ****** *) // fun{} mynode_null{a:t0p} ():<> mynode (a, null) // praxi mynode_free_null{a:t0p} (nx: mynode (a, null)): void // (* ****** ****** *) fun{a:t0p} mynode_make_elt (x: a): mynode1 (a) (* ****** ****** *) fun{} mynode_free{a:t0p} (mynode1 (a)): void (* ****** ****** *) fun{a:t0p} mynode_get_elt (nx: !mynode1 (INV(a))):<> a fun{a:t0p} mynode_set_elt{l:agz} (nx: !mynode (a?, l) >> mynode (a, l), x0: a): void // end of [mynode_set_elt] (* ****** ****** *) fun{a:t0p} mynode_getfree_elt (nx: mynode1 (INV(a))): a (* ****** ****** *) fun{a:t0p} linset_insert_ngc ( set: &set(INV(a)) >> _, nx0: mynode1 (a) ) : mynode0 (a) // endfun (* ****** ****** *) fun{a:t0p} linset_takeout_ngc (set: &set(INV(a)) >> _, x0: a): mynode0 (a) // end of [linset_takeout_ngc] (* ****** ****** *) fun{a:t0p} linset_takeoutmax_ngc (set: &set(INV(a)) >> _): mynode0 (a) // end of [linset_takeoutmax] (* ****** ****** *) fun{a:t0p} linset_takeoutmin_ngc (set: &set(INV(a)) >> _): mynode0 (a) // end of [linset_takeoutmin] (* ****** ****** *) (* end of [linset_node.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/lindeque.hats0000644000175000017500000000542213431250607022246 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) absvtype deque_vtype (a:vt@ype+, n:int) = ptr (* ****** ****** *) stadef deque = deque_vtype vtypedef deque (a:vt0p, n:int) = deque_vtype (a, n) vtypedef Deque (a:vt0p) = [n:int] deque (a, n) (* ****** ****** *) praxi lemma_deque_param {a:vt0p}{n:int} (dq: !deque (INV(a), n)): [n >= 0] void // end of [lemma_deque_param] (* ****** ****** *) fun{} lindeque_nil{a:vt0p} ():<> deque (a, 0) (* ****** ****** *) prfun lindeque_free_nil{a:vt0p} (dq: deque (a, 0)): void (* ****** ****** *) // fun{} lindeque_is_nil {a:vt0p}{n:int} (dq: !deque (INV(a), n)):<> bool (n==0) fun{} lindeque_isnot_nil {a:vt0p}{n:int} (dq: !deque (INV(a), n)):<> bool (n > 0) // (* ****** ****** *) fun{a:vt0p} lindeque_length {n:int} (dq: !deque (INV(a), n)):<> int (n) (* ****** ****** *) // fun{a:vt0p} lindeque_insert_at {n:int}{i:nat | i <= n} ( dq: &deque (INV(a), n) >> deque (a, n+1), i: int i, x: a ) : void // end of [lindeque_insert_at] // fun{a:vt0p} lindeque_insert_atbeg{n:int} (dq: &deque (INV(a), n) >> deque (a, n+1), x: a): void fun{a:vt0p} lindeque_insert_atend{n:int} (dq: &deque (INV(a), n) >> deque (a, n+1), x: a): void // (* ****** ****** *) // fun{a:vt0p} lindeque_takeout_at {n:int}{i:nat | i < n} ( dq: &deque (INV(a), n) >> deque (a, n-1), i: int i ) : a // end of [lindeque_takeout_at] // fun{a:vt0p} lindeque_takeout_atbeg{n:pos} (dq: &deque (INV(a), n) >> deque (a, n-1)): (a) fun{a:vt0p} lindeque_takeout_atend{n:pos} (dq: &deque (INV(a), n) >> deque (a, n-1)): (a) // (* ****** ****** *) (* end of [lindeque.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/fundeque.hats0000644000175000017500000001106613431250607022255 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX: shared by fundeque_fngtree // (* ****** ****** *) // // HX: indexed by deque size // abstype deque_type (elt:t@ype+, n:int) = ptr // (* ****** ****** *) // stadef deque = deque_type // typedef deque(a:t0p) = [n:int] deque(a, n) typedef Deque(a:t0p) = [n:int] deque(a, n) // (* ****** ****** *) prfun lemma_deque_size {a:t0p}{n:int} (xs: deque(INV(a), n)): int(n) // end of [lemma_deque_size] prfun lemma_deque_param {a:t0p}{n:int} (xs: deque(INV(a), n)): [n >= 0] void // end of [lemma_deque_param] (* ****** ****** *) fun{} fundeque_nil{a:t0p} ():<> deque(a, 0) fun{} fundeque_make_nil{a:t0p} ():<> deque(a, 0) (* ****** ****** *) // fun {a:t0p} fundeque_cons{n:int} (x: a, xs: deque(INV(a), n)):<> deque(a, n+1) // end of [fundeque_cons] // fun {a:t0p} fundeque_uncons{n:pos} (xs: &deque(INV(a), n) >> deque(a, n-1)): (a) // end of [fundeque_uncons] // (* ****** ****** *) // fun {a:t0p} fundeque_snoc{n:int} (xs: deque(INV(a), n), x: a):<> deque(a, n+1) // end of [fundeque_snoc] // fun {a:t0p} fundeque_unsnoc{n:pos} (xs: &deque(INV(a), n) >> deque(a, n-1)): (a) // end of [fundeque_unsnoc] // (* ****** ****** *) // fun {a:t0p} fundeque_size {n:int}(xs: deque(INV(a), n)):<> size_t(n) // (* ****** ****** *) // fun{} fundeque_is_nil {a:t0p}{n:int}(xs: deque(INV(a), n)):<> bool(n==0) // end of [fundeque_is_nil] // fun{} fundeque_is_cons {a:t0p}{n:int}(xs: deque(INV(a), n)):<> bool(n > 0) // end of [fundeque_is_cons] // (* ****** ****** *) // fun {a:t0p} fundeque_get_atbeg{n:pos}(xs: deque(INV(a), n)):<> (a) fun {a:t0p} fundeque_get_atend{n:pos}(xs: deque(INV(a), n)):<> (a) // fun {a:t0p} fundeque_get_atbeg_opt(xs: Deque(INV(a))):<> Option_vt(a) fun {a:t0p} fundeque_get_atend_opt(xs: Deque(INV(a))):<> Option_vt(a) // (* ****** ****** *) // fun {a:t0p} fundeque_takeout_atbeg_opt (xs: &Deque (INV(a)) >> _): Option_vt (a) // end of [fundeque_takeout_atbeg_opt] // fun {a:t0p} fundeque_takeout_atend_opt (xs: &Deque (INV(a)) >> _): Option_vt (a) // end of [fundeque_takeout_atend_opt] // (* ****** ****** *) // fun {a:t0p} fundeque_append {n1,n2:int} (deque(INV(a), n1), deque(a, n2)):<> deque(a, n1+n2) // (* ****** ****** *) // fun{} fprint_fundeque$sep(out: FILEref): void // fun{a:t0p} fprint_fundeque (out: FILEref, xs: Deque(INV(a))): void // (* ****** ****** *) // fun {a:t0p} fundeque_foreach(xs: Deque(INV(a))): void // fun {a:t0p} {env:vt0p} fundeque_foreach$fwork(x: a, env: &env>>_): void fun {a:t0p} {env:vt0p} fundeque_foreach_env(xs: Deque(INV(a)), env: &(env)>>_): void // (* ****** ****** *) // fun {a:t0p} fundeque_rforeach(xs: Deque(INV(a))): void // fun {a:t0p} {env:vt0p} fundeque_rforeach$fwork(x: a, env: &env>>_): void fun {a:t0p} {env:vt0p} fundeque_rforeach_env(xs: Deque(INV(a)), env: &(env)>>_): void // (* ****** ****** *) // fun {a:t0p} fundeque_listize {n:int}(xs: deque(INV(a), n)): list_vt(a, n) // end of [fundeque_listize] // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) // overload iseqz with fundeque_is_nil overload isneqz with fundeque_is_cons // (* ****** ****** *) // overload fprint with fprint_fundeque // (* ****** ****** *) // overload .size with fundeque_size // (* ****** ****** *) // overload .head with fundeque_get_atbeg overload .last with fundeque_get_atend // (* ****** ****** *) (* end of [fundeque.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/SHARE/funralist.hats0000644000175000017500000001026713431250607022452 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2012 *) (* ****** ****** *) // // HX: shared by funralist_nested // (* ****** ****** *) // // HX-2013-01: // the time-complexity for various functions operating on // random-access lists: // // funralist_cons: O(1) // amortized // funralist_uncons: O(1) // amortized // // funralist_length: O(log(n)) // // funralist_lookup: O(log(n)) // funralist_update: O(log(n)) // (* ****** ****** *) // // HX: indexed by list length // abstype ralist_type (a:t@ype+, n:int) = ptr // (* ****** ****** *) // stadef ralist = ralist_type typedef ralist (a:t0p) = [n:int] ralist (a, n) typedef Ralist (a:t0p) = [n:int] ralist (a, n) // (* ****** ****** *) prfun lemma_ralist_param {a:t0p}{n:int} (xs: ralist (INV(a), n)): [n >= 0] void // end of [lemma_ralist_param] (* ****** ****** *) fun{} funralist_nil{a:t0p}():<> ralist (a, 0) fun{} funralist_make_nil{a:t0p}():<> ralist (a, 0) (* ****** ****** *) fun{a:t0p} funralist_make_list {n:int}(xs: list (INV(a), n)): ralist (a, n) // end of [funralist_make_list] (* ****** ****** *) fun{a:t0p} funralist_cons{n:int} (x: a, xs: ralist (INV(a), n)):<> ralist (a, n+1) // end of [funralist_cons] fun{a:t0p} funralist_uncons{n:pos} (xs: &ralist (INV(a), n) >> ralist (a, n-1)): a // end of [funralist_uncons] (* ****** ****** *) fun{ } funralist_is_nil {a:t0p}{n:int} (xs: ralist (INV(a), n)):<> bool(n==0) // end of [funralist_is_nil] fun{ } funralist_is_cons {a:t0p}{n:int} (xs: ralist (INV(a), n)):<> bool(n > 0) // end of [funralist_is_cons] (* ****** ****** *) fun{ } funralist_length {a:t0p}{n:nat} (xs: ralist (INV(a), n)):<> int (n) // end of [funralist_length] (* ****** ****** *) fun{a:t0p} funralist_head {n:pos} (xs: ralist (INV(a), n)):<> a fun{a:t0p} funralist_tail {n:pos} (xs: ralist (INV(a), n)):<> ralist (a, n-1) // end of [funralist_tail] (* ****** ****** *) fun{a:t0p} funralist_get_at{n:int} (xs: ralist (INV(a), n), i: natLt n):<> a fun{a:t0p} funralist_lookup{n:int} (xs: ralist (INV(a), n), i: natLt n):<> a // overload [] with funralist_get_at // (* ****** ****** *) fun{a:t0p} funralist_set_at{n:int} ( xs: ralist (INV(a), n), i: natLt n, x0: a ) :<> ralist (a, n) // endfun fun{a:t0p} funralist_update{n:int} ( xs: ralist (INV(a), n), i: natLt n, x0: a ) :<> ralist (a, n) // endfun (* ****** ****** *) fun{} fprint_funralist$sep (out: FILEref): void fun{a:t0p} fprint_funralist (out: FILEref, xs: Ralist(INV(a))): void overload fprint with fprint_funralist (* ****** ****** *) // fun{a:t0p}{env:vt0p} funralist_foreach$fwork (x: a, env: &(env) >> _): void // fun{a:t0p} funralist_foreach (xs: Ralist (INV(a))): void fun{a:t0p}{env:vt0p} funralist_foreach_env (xs: Ralist (INV(a)), env: &(env)>>env): void // (* ****** ****** *) fun{a:t0p} funralist_listize {n:int} (xs: ralist (INV(a), n)): list_vt (a, n) // end of [funralist_listize] (* ****** ****** *) (* end of [funralist.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/lindeque_dllist.sats0000644000175000017500000000524013431250607022770 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2013-05: linear deque based on circular doubly-linked list (dllist) // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.lindeque_dllist" (* ****** ****** *) #include "./SHARE/lindeque.hats" (* ****** ****** *) // // HX-2013-05: functions of ngc-version // (* ****** ****** *) staload "libats/SATS/dllist.sats" (* ****** ****** *) // fun{a:vt0p} lindeque_insert_at_ngc {n:int}{i:nat | i <= n} ( dq: &deque (INV(a), n) >> deque (a, n+1), i: int i, x: g2node1(a) ) : void // end of [lindeque_insert_at_ngc] // fun{a:vt0p} lindeque_insert_atbeg_ngc{n:int} ( dq: &deque (INV(a), n) >> deque (a, n+1), nx: g2node1(a) ) : void // end of [lindeque_insert_atbeg_ngc] fun{a:vt0p} lindeque_insert_atend_ngc{n:int} ( dq: &deque (INV(a), n) >> deque (a, n+1), nx: g2node1(a) ) : void // end of [lindeque_insert_atend_ngc] // (* ****** ****** *) // fun{a:vt0p} lindeque_takeout_at_ngc{n:int}{i:nat | i < n} ( dq: &deque (INV(a), n) >> deque (a, n-1), i: int i ) : g2node1(a) // end of [lindeque_takeout_at_ngc] // fun{a:vt0p} lindeque_takeout_atbeg_ngc{n:pos} (dq: &deque (INV(a), n) >> deque (a, n-1)): g2node1(a) fun{a:vt0p} lindeque_takeout_atend_ngc{n:pos} (dq: &deque (INV(a), n) >> deque (a, n-1)): g2node1(a) // (* ****** ****** *) fun{a:vt0p} lindeque2dllist{n:int} (dq: deque (INV(a), n)): dllist (a, 0, n) // end of [fun] (* ****** ****** *) (* end of [lindeque_dllist.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/funarray.sats0000644000175000017500000000765513431250607021452 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.funarray" // (* ****** ****** *) // abstype farray_t0ype_int_type (a:t@ype+, n:int) = ptr(*boxed*) // typedef farray ( a:t0p, n:int ) = farray_t0ype_int_type(a, n) // typedef farray(a:t0p) = [n:int] farray(a, n) // (* ****** ****** *) // praxi lemma_farray_param {a:t0p}{n:int} (A: farray(a, n)): [n >= 0] void // (* ****** ****** *) // fun{} farray_is_nil {a:t0p}{n:int} (farray(a, n)):<> bool(n==0) fun{} farray_isnot_nil {a:t0p}{n:int} (farray(a, n)):<> bool(n > 0) // (* ****** ****** *) // fun {a:t0p} farray_size {n:int}(A: farray(INV(a), n)):<> int(n) // overload size with farray_size overload .size with farray_size // (* ****** ****** *) // fun{} farray_nil {a:t0p}((*void*)):<> farray(a, 0) fun{} farray_make_nil {a:t0p}((*void*)):<> farray(a, 0) // (* ****** ****** *) // fun {a:t0p} farray_make_list {n:int}(xs: list(a, n)):<> farray(a, n) // (* ****** ****** *) // fun {a:t0p} farray_get_at{n:int} (A: farray(INV(a), n), i: natLt(n)):<> (a) // fun {a:t0p} farray_set_at{n:int} (A: &farray(INV(a), n) >> _, i: natLt(n), x: a): void // overload [] with farray_get_at overload [] with farray_set_at // (* ****** ****** *) // fun {a:t0p} farray_getopt_at {n:int}{i:nat} (A: farray(INV(a), n), i: int(i)):<> option_vt(a, i < n) // fun {a:t0p} farray_setopt_at {n:int}{i:nat} (A: &farray(INV(a), n) >> _, i: int(i), x: a): bool(i < n) // overload getopt_at with farray_getopt_at overload setopt_at with farray_setopt_at // (* ****** ****** *) // fun {a:t0p} farray_insert_l{n:int} ( A: &farray(INV(a), n) >> farray(a, n+1), x: a ) : void // end-of-function fun {a:t0p} farray_insert_r{n:int} ( A: &farray(INV(a), n) >> farray(a, n+1), n: int(n), x: a ) : void // end-of-function // (* ****** ****** *) // fun {a:t0p} farray_remove_l{n:pos} (A: &farray(INV(a), n) >> farray(a, n-1)): a // end of [farray_remove_l] // fun {a:t0p} farray_remove_r{n:pos} (A: &farray(INV(a), n) >> farray(a, n-1), n: int(n)): a // end of [farray_remove_r] // (* ****** ****** *) // fun{} fprint_farray$sep (out: FILEref): void // ", " // fun{a:t0p} fprint_farray(FILEref, farray(INV(a))): void fun{a:t0p} fprint_farray_sep (FILEref, farray(INV(a)), sep: string): void // overload fprint with fprint_farray // (* ****** ****** *) // fun{ x:t0p } farray_listize {n:int}(xs: farray(x, n)): list_vt(x, n) // (* ****** ****** *) // fun{ x:t0p } farray_foreach(xs: farray(INV(x))): void fun{ x:t0p}{env:vt0p } farray_foreach_env (xs: farray(INV(x)), env: &(env) >> _): void // fun{ x:t0p}{env:vt0p } farray_foreach$cont(x: x, env: &env): bool fun{ x:t0p}{env:vt0p } farray_foreach$fwork(x: x, env: &(env) >> _): void // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/typeval.sats0000644000175000017500000000474713431250607021306 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmmhwxiATgmailDOTcom // Start Time: March, 2015 // (* ****** ****** *) // abstype Z() // 0 abstype S(type) // n+1 // (* ****** ****** *) // #define fS(n) if n > 0 then S(fS(n-1)) else Z() // (* ****** ****** *) // dataprop tieq(type, int) = | TIEQZ (Z(), 0) | {t:type}{n:nat} TIEQS(S(t), n+1) of tieq(t, n) // fun {t:type} tieq2int {n:int} (pf: tieq(t, n) | (*void*)): int(n) // (* ****** ****** *) // abstype B0(type) // 2*n+0 abstype B1(type) // 2*n+1 // dataprop ti2eq(type, int) = | TI2EQZ (Z(), 0) | {t:type}{n:nat} TI2EQB0(B0(t), 2*n) of ti2eq(t, n) | {t:type}{n:nat} TI2EQB1(B1(t), 2*n+1) of ti2eq(t, n) // fun {t:type} ti2eq2int {n:int} (pf: ti2eq(t, n) | (*void*)): int(n) // (* ****** ****** *) // fun {a:vt0p} {t:type} sarray_foreach {n:int} ( pf: tieq(t, n)| A0: &array(a, n), env: ptr ) : void // end-of-fun // fun {a:vt0p} sarray_foreach$fwork(x: &a >> _, env: ptr): void // (* ****** ****** *) // fun {a:vt0p} {t:type} sarray_foreach2 {n:int} ( pf: tieq(t, n) | A0: &array(a, n), A1: &array(a, n), env: ptr ) : void // end-of-fun // fun {a:vt0p} sarray_foreach2$fwork(x0: &a >> _, x1: &a >> _, env: ptr): void // (* ****** ****** *) (* end of [typeval.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/deqarray.sats0000644000175000017500000001265713431250607021431 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** An array-based deque implementation ** *) (* ****** ****** *) (* ** ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start time: September, 2013 ** *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.deqarray" // // prefix for external names // #define ATS_EXTERN_PREFIX "atslib_" (* ****** ****** *) %{# #include \ "libats/CATS/deqarray.cats" %} // end of [%{#] (* ****** ****** *) // absvtype deqarray_vtype (a:vt@ype+, m:int, n:int) = ptr // (* ****** ****** *) // stadef deqarray = deqarray_vtype // vtypedef deqarray(a:vt0p) = [m,n:int] deqarray_vtype (a, m, n) // (* ****** ****** *) abst@ype deqarray_tsize = $extype"atslib_deqarray_struct" (* ****** ****** *) praxi lemma_deqarray_param {a:vt0p}{m,n:int} (!deqarray(INV(a), m, n)): [m >= n; n >= 0] void // end of [lemma_deqarray_param] (* ****** ****** *) fun{a:vt0p} deqarray_make_cap {m:int} (cap: size_t(m)): deqarray(a, m, 0) // end of [deqarray_make_cap] (* ****** ****** *) fun deqarray_make_ngc__tsz {a:vt0p} {l:addr}{m:int} ( deqarray_tsize? @ l | ptr(l), arrayptr(a?, m+1), size_t(m), sizeof_t(a) ) : (mfree_ngc_v (l) | deqarray(a, m, 0)) = "mac#%" (* ****** ****** *) fun deqarray_free_nil {a:vt0p}{m:int} (deq: deqarray(a, m, 0)): void = "mac#%" // end of [deqarray_free_nil] (* ****** ****** *) // fun {a:vt0p} deqarray_get_size {m,n:int} (deq: !deqarray(INV(a), m, n)):<> size_t(n) fun {a:vt0p} deqarray_get_capacity {m,n:int} (deq: !deqarray(INV(a), m, n)):<> size_t(m) // (* ****** ****** *) // fun deqarray_is_nil {a:vt0p}{m,n:int} (deq: !deqarray(INV(a), m, n)):<> bool(n==0) = "mac#%" fun deqarray_isnot_nil {a:vt0p}{m,n:int} (deq: !deqarray(INV(a), m, n)):<> bool(n > 0) = "mac#%" // (* ****** ****** *) // fun {a:vt0p} deqarray_is_full{m,n:int} (deq: !deqarray(INV(a), m, n)):<> bool(m==n) = "mac#%" fun {a:vt0p} deqarray_isnot_full{m,n:int} (deq: !deqarray(INV(a), m, n)):<> bool(m > n) = "mac#%" // (* ****** ****** *) // fun{} fprint_deqarray$sep (out: FILEref): void fun{a:vt0p} fprint_deqarray (out: FILEref, q: !deqarray(INV(a))): void fun{a:vt0p} fprint_deqarray_sep (out: FILEref, q: !deqarray(INV(a)), sep: string): void // overload fprint with fprint_deqarray overload fprint with fprint_deqarray_sep // (* ****** ****** *) fun{a:vt0p} deqarray_insert_atbeg {m,n:int | m > n} ( deq: !deqarray(INV(a),m,n) >> deqarray(a,m,n+1), x0: a ) : void // endfun fun{a:vt0p} deqarray_insert_atbeg_opt (deq: !deqarray(INV(a)) >> _, x0: a): Option_vt(a) // end of [deqarray_insert_atbeg_opt] (* ****** ****** *) // fun {a:vt0p} deqarray_insert_atend {m,n:int | m > n} ( deq: !deqarray(INV(a),m,n) >> deqarray(a,m,n+1), x0: a ) : void // end-of-fun // fun {a:vt0p} deqarray_insert_atend_opt (deq: !deqarray(INV(a)) >> _, x0: a): Option_vt(a) // end of [deqarray_insert_atend_opt] // (* ****** ****** *) // fun {a:vt0p} deqarray_takeout_atbeg {m,n:int | n > 0} ( deq: !deqarray(INV(a),m,n) >> deqarray(a,m,n-1) ) : (a) // end-of-fun // fun {a:vt0p} deqarray_takeout_atbeg_opt (deq: !deqarray(INV(a)) >> _): Option_vt(a) // end of [deqarray_takeout_atbeg_opt] // (* ****** ****** *) fun {a:vt0p} deqarray_takeout_atend {m,n:int | n > 0} ( deq: !deqarray(INV(a),m,n) >> deqarray(a,m,n-1) ) : (a) // end-of-fun fun {a:vt0p} deqarray_takeout_atend_opt (deq: !deqarray(INV(a)) >> _): Option_vt(a) // end of [deqarray_takeout_atend_opt] (* ****** ****** *) // fun {a:t0p} deqarray_get_at {m,n:int} (deq: !deqarray(INV(a), m, n), i: sizeLt(n)):<> (a) // fun {a:t0p} deqarray_set_at {m,n:int} (deq: !deqarray(INV(a), m, n), i: sizeLt(n), x: a): void // (* ****** ****** *) // fun {a:vt0p} deqarray_getref_at {m,n:int} (deq: !deqarray(INV(a), m, n), i: sizeLt(n)):<> cPtr1(a) // (* ****** ****** *) // fun{ a:vt0p } deqarray_foreach{m,n:int} (deq: !deqarray(INV(a), m, n)): void fun{ a:vt0p}{env:vt0p } deqarray_foreach_env{m,n:int} (deq: !deqarray(INV(a), m, n), env: &(env) >> _): void // fun{ a:vt0p}{env:vt0p } deqarray_foreach$cont(x: &a, env: &env): bool fun{ a:vt0p}{env:vt0p } deqarray_foreach$fwork(x: &a >> _, env: &(env) >> _): void // (* ****** ****** *) (* end of [deqarray.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/qlist.sats0000644000175000017500000001511413431250607020744 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A list-based queue implementation ** *) (* ****** ****** *) (* ** ** Author: Hongwei Xi ** Authoremail: hwxiATcsDOTbuDOTedu ** Time: July, 2010 ** It is based on an earlier version done in October, 2008 ** *) (* ****** ****** *) // // HX-2012-12: ported to ATS/Postitats from ATS/Anairiats // (* ****** ****** *) %{# #include "libats/CATS/qlist.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.qlist" // (* ****** ****** *) // absvtype qlist_vtype(a:vt@ype+, n:int) = ptr // vtypedef qlist(a:vt0p, n:int) = qlist_vtype(a, n) // vtypedef qlist(a:vt0p) = [n:int] qlist_vtype(a, n) // vtypedef qlist0(a:vt0p) = [n:int | n >= 0] qlist(a, n) // (* ****** ****** *) praxi lemma_qlist_param {a:vt0p}{n:int} (q0: !qlist(INV(a), n)): [n >= 0] void // end of [lemma_qlist_param] (* ****** ****** *) // fun{} qlist_make_nil{a:vt0p}(): qlist(a, 0) // fun{} qlist_free_nil{a:vt0p}(qlist(a, 0)): void // (* ****** ****** *) // fun {a:vt0p} qlist_length {n:int}(q0: !qlist(INV(a), n)):<> int(n) // (* ****** ****** *) // fun{a:vt0p} qlist_is_nil {n:int}(q0: !qlist(a, n)):<> bool(n == 0) fun{a:vt0p} qlist_isnot_nil {n:int}(q0: !qlist(INV(a), n)):<> bool(n > 0) // (* ****** ****** *) // fun{} fprint_qlist$sep (out: FILEref): void // fun{a:vt0p} fprint_qlist ( out: FILEref, que: !qlist(INV(a)) ) : void // end of [fprint_qlist] fun{a:vt0p} fprint_qlist_sep ( out: FILEref, que: !qlist(INV(a)), sep: string ) : void // end of [fprint_qlist_sep] // (* ****** ****** *) fun{a:vt0p} qlist_insert{n:int} ( que: !qlist(INV(a), n) >> qlist(a, n+1) , elt: a ) : void // end of [qlist_insert] (* ****** ****** *) // fun{a:vt0p} qlist_takeout{n:pos} ( q0: !qlist(INV(a), n) >> qlist(a, n-1) ) : (a) // end-of-function // fun{a:vt0p} qlist_takeout_opt (q0: !qlist(INV(a)) >> _): Option_vt(a) // (* ****** ****** *) // (* ** HX: this operation is O(1) *) // fun{} qlist_takeout_list{a:vt0p}{n:int} (q0: !qlist(INV(a), n) >> qlist(a, 0)): list_vt(a, n) // end of [qlist_takeout_list] // (* ****** ****** *) // fun {a:vt0p} qlist_foreach(q0: !qlist(INV(a))): void fun {a:vt0p} {env:vt0p} qlist_foreach_env (q0: !qlist(INV(a)), env: &(env) >> _): void // fun {a:vt0p} {env:vt0p} qlist_foreach$cont(x0: &a, env: &env): bool fun {a:vt0p} {env:vt0p} qlist_foreach$fwork(x0: &a >> _, env: &(env) >> _): void // (* ****** ****** *) // abst@ype qstruct_tsize = $extype"atslib_qlist_struct" absvt@ype qstruct_vt0ype (a:vt@ype+, n:int) = qstruct_tsize // stadef qstruct = qstruct_vt0ype // stadef qstruct = qstruct_tsize // HX: order significant // viewtypedef qstruct(a:vt0p) = [n:int] qstruct(a, n) viewtypedef qstruct0(a:vt0p) = [n:nat] qstruct(a, n) // (* ****** ****** *) // fun{} qstruct_initize {a:vt0p} (q0: &qstruct? >> qstruct(a, 0)): void // end of [qstruct_initize] // praxi qstruct_uninitize {a:vt0p} ( q0: &qstruct(a, 0) >> qstruct? ): void // end of [qstruct_uninitize] // (* ****** ****** *) praxi qstruct_objfize {a:vt0p} {l:addr}{n:int} ( pf: qstruct (INV(a), n) @ l | p0: !ptrlin(l) >> qlist(a, n) ) : mfree_ngc_v(l) // end of [qstruct_objfize] praxi qstruct_unobjfize {a:vt0p} {l:addr}{n:int} ( pf: mfree_ngc_v(l) | p0: ptr(l), q0: !qlist(INV(a), n) >> ptrlin(l) ) : qstruct(a, n) @ l // end of [qstruct_unobjfize] (* ****** ****** *) // fun{a:vt0p} qstruct_insert{n:int} ( q0: &qstruct(INV(a), n) >> qstruct(a, n+1), x0: a ) : void // end of [qstruct_insert] // (* ****** ****** *) // fun{a:vt0p} qstruct_takeout{n:pos} (q0: &qstruct(INV(a), n) >> qstruct(a, n-1)): (a) // (* ****** ****** *) // (* ** HX: this operation is O(1) *) // fun{} qstruct_takeout_list{a:vt0p}{n:int} (q0: &qstruct(INV(a), n) >> qstruct(a, 0)): list_vt(a, n) // end of [qstruct_takeout_list] // (* ****** ****** *) // // HX: ngc-functions do not make use of malloc/free // (* ****** ****** *) absvtype qlist_node_vtype(a:vt@ype+, l:addr) = ptr (* ****** ****** *) // stadef mynode = qlist_node_vtype // vtypedef mynode(a) = [l:addr] mynode(a, l) vtypedef mynode0(a) = [l:addr | l >= null] mynode(a, l) vtypedef mynode1(a) = [l:addr | l > null] mynode(a, l) // (* ****** ****** *) castfn mynode2ptr {a:vt0p} {l:addr} (nx: !mynode(INV(a), l)):<> ptr(l) // end of [mynode2ptr] (* ****** ****** *) // fun{} mynode_null{a:vt0p}(): mynode(a, null) // praxi mynode_free_null{a:vt0p}(nx: mynode(a, null)): void // (* ****** ****** *) // fun{a:vt0p} mynode_make_elt(x: a): mynode1(a) // fun{a:vt0p} mynode_getref_elt(nx: !mynode1(INV(a))):<> cPtr1(a) // fun{a:vt0p} mynode_free_elt (nx: mynode1(INV(a)), res: &(a?) >> a): void // end of [mynode_free_elt] // fun{a:vt0p} mynode_getfree_elt(node: mynode1(INV(a))): (a) // (* ****** ****** *) fun{a:vt0p} qlist_insert_ngc (*last*) {n:int} ( q0: !qlist(INV(a), n) >> qlist(a, n+1), nx: mynode1(a) ) : void // end of [qlist_insert_ngc] (* ****** ****** *) fun{a:vt0p} qlist_takeout_ngc (*first*) {n:int | n > 0} (q0: !qlist(INV(a), n) >> qlist(a, n-1)): mynode1(a) // end of [qlist_takeout_ngc] (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) // overload iseqz with qlist_is_nil overload isneqz with qlist_isnot_nil // overload length with qlist_length // overload fprint with fprint_qlist overload fprint with fprint_qlist_sep // (* ****** ****** *) (* end of [qlist.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/linheap_binomial.sats0000644000175000017500000000314213431250607023100 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: November, 2011 *) (* ****** ****** *) // // HX-2012-12: ported to ATS/Postiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.linheap_binomial" (* ****** ****** *) #include "./SHARE/linheap.hats" (* ****** ****** *) (* end of [linheap_binomial.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/SATS/gflist_vt.sats0000644000175000017500000000575313431250607021621 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // Time: October, 2010 // (* ****** ****** *) // // HX: generic linear lists (fully indexed) // (* ****** ****** *) // // HX-2012-11-27: // ported to ATS/Postiats from ATS/Anairiats // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.gflist_vt" (* ****** ****** *) // // HX: for handling // integer sequences // staload "libats/SATS/ilist_prf.sats" // staload "libats/SATS/gflist.sats" // (* ****** ****** *) // fun{a:vt0p} gflist_vt_length {xs:ilist} ( xs: !gflist_vt(INV(a), xs) ) :<> [n:nat] (LENGTH(xs, n) | int(n)) // end of [gflist_vt_length] // (* ****** ****** *) // fun{a:vt0p} gflist_vt_snoc {xs:ilist}{x0:int} ( xs: gflist_vt(a, xs), x0: stamped_vt(a, x0) ) : [xsx:ilist] (SNOC(xs, x0, xsx) | gflist_vt(a, xsx)) // (* ****** ****** *) // fun{a:vt0p} gflist_vt_append {xs1,xs2:ilist} ( xs1: gflist_vt(INV(a), xs1), xs2: gflist_vt(a, xs2) ) : [res:ilist] (APPEND(xs1, xs2, res) | gflist_vt(a, res)) // end of [gflist_vt_append] // (* ****** ****** *) fun{a:vt0p} gflist_vt_revapp {xs1,xs2:ilist} ( xs1: gflist_vt(INV(a), xs1), xs2: gflist_vt(a, xs2) ) : [res:ilist] (REVAPP(xs1, xs2, res) | gflist_vt(a, res)) // end of [gflist_vt_revapp] // fun{a:vt0p} gflist_vt_reverse {xs:ilist} ( xs: gflist_vt(INV(a), xs) ) : [ys:ilist] (REVERSE(xs, ys) | gflist_vt(a, ys)) // end of [gflist_vt_reverse] // (* ****** ****** *) // fun{a:vt0p} gflist_vt_mergesort {xs:ilist} ( xs: gflist_vt(INV(a), xs) ) : [ys:ilist] (SORT(xs, ys) | gflist_vt(a, ys)) // end of [gflist_vt_mergesort] // fun{a:vt0p} gflist_vt_mergesort$cmp {x1,x2:int} (x1: &stamped_vt(a, x1), x2: &stamped_vt(a, x2)): int(sgn(x1-x2)) // (* ****** ****** *) (* end of [gflist_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/0000755000175000017500000000000013431250607016650 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS1/DATS/0000755000175000017500000000000013431250607017403 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS1/DATS/funheap_braun.dats0000644000175000017500000001511013431250607023073 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A functional heap implementation based on Braun trees ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: April, 2010 // based on a version done in November, 2008 ** *) (* ****** ****** *) // // HX-2014-01-15: Porting to ATS2 // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) staload "libats/ATS1/SATS/funheap_braun.sats" (* ****** ****** *) // implement{a} compare_elt_elt (x1, x2, cmp) = cmp (x1, x2) // (* ****** ****** *) datatype brauntree (a:t@ype+, int) = | {n1,n2:nat | n2 <= n1; n1 <= n2+1} B (a, n1+n2+1) of (a, brauntree (a, n1), brauntree (a, n2)) | E (a, 0) of ((*void*)) // end of [brauntree] stadef bt = brauntree // an abbreviation (* ****** ****** *) assume heap_t0ype_type (a:t@ype) = [n:nat] brauntree (a, n) (* ****** ****** *) implement{} funheap_make_nil () = E () (* ****** ****** *) implement{a} funheap_size (hp) = size (hp) where { // // this algorithm is taken from a paper by Chris Okasaki // fun diff {nl,nr:nat | nr <= nl && nl <= nr+1} .. (nr: size_t nr, t: bt (a, nl)):<> int (nl-nr) = ( case+ t of | B (_, tl, tr) => ( if nr > 0 then let val nr2 = half (nr) in if nr > nr2 + nr2 then diff (nr2, tl) else diff (nr2-1, tr) end else begin 1 // return value end // end of [if] ) (* end of [B] *) | E ((*void*)) => 0 ) (* end of [diff] *) // fun size {n:nat} .. (t: bt (a, n)):<> size_t n = case+ t of | B (_, tl, tr) => let val nr = size tr; val d1 = diff (nr, tl) + 1 in nr + nr + i2sz(d1) end // end of [B] | E ((*void*)) => i2sz(0) // end of [size] } // end of [funheap_size] (* ****** ****** *) implement{a} funheap_height (hp) = loop (hp, 0) where { // fun loop {n:nat} .. (t: bt (a, n), res: intGte(0)):<> intGte(0) = ( case+ t of B (_, tl, _) => loop (tl, res + 1) | E () => res ) (* end of [loop] *) // } (* end of [funheap_height] *) (* ****** ****** *) implement{a} funheap_insert (hp, x, cmp) = () where { // fun insert {n:nat} .. (t: bt (a, n), x: a): bt (a, n+1) = case+ t of | E () => B{a}(x, E (), E ()) | B (x0, t1, t2) => let val sgn = compare_elt_elt (x0, x, cmp) in if sgn >= 0 then B{a}(x, insert (t2, x0), t1) else B{a}(x0, insert (t2, x), t1) // end of [if] end // end of [B] // end of [insert] // val () = hp := insert (hp, x) // } (* end of [funheap_insert] *) (* ****** ****** *) fun{a:t@ype} brauntree_leftrem{n:pos} .. (t: bt (a, n), x_r: &a? >> a): bt (a, n-1) = let // val+B (x, t1, t2) = t // in // case+ t1 of | B _ => let val t1 = brauntree_leftrem (t1, x_r) in B{a}(x, t2, t1) end // end of [B] | E () => (x_r := x; E ()) // end // end of [brauntree_leftrem] (* ****** ****** *) fn{a:t@ype} brauntree_siftdn {nl,nr:nat | nr <= nl; nl <= nr+1} ( x: a , tl: bt (a, nl), tr: bt (a, nr) , cmp: cmp a ) :<> bt (a, nl+nr+1) = siftdn (x, tl, tr) where { // fun siftdn {nl,nr:nat | nr <= nl; nl <= nr+1} .. (x: a, tl: bt (a, nl), tr: bt (a, nr)) : bt (a, nl+nr+1) = case+ (tl, tr) of | (B (xl, tll, tlr), B (xr, trl, trr)) => ( if compare_elt_elt (xl, x, cmp) >= 0 then begin // xl >= x if compare_elt_elt (xr, x, cmp) >= 0 then B{a}(x, tl, tr) else B{a}(xr, tl, siftdn (x, trl, trr)) // end of [if] end else begin // xl < x if compare_elt_elt (xr, x, cmp) >= 0 then B{a}(xl, siftdn (x, tll, tlr), tr) else begin // xr < x if compare_elt_elt (xl, xr, cmp) >= 0 then B{a}(xr, tl, siftdn (x, trl, trr)) else B{a}(xl, siftdn (x, tll, tlr), tr) // end of [if] end // end of [if] end (* end of [if] *) ) (* end of [B _, B _] *) | (_, _) =>> ( case+ tl of | B (xl, _, _) => if compare_elt_elt (xl, x, cmp) >= 0 then B{a}(x, tl, E) else B{a}(xl, B{a}(x, E, E), E) // end of [B] | E ((*void*)) => B{a}(x, E (), E ()) ) (* end of [_, _] *) // end of [siftdn] // } (* end of [brauntree_siftdn] *) (* ****** ****** *) implement{a} funheap_delmin (hp0, cmp, res) = let // fun delmin{n:pos} .<>. ( t: bt (a, n), res: &a? >> a ) : bt (a, n-1) = let val+B (x, t1, t2) = t; val () = res := x in case+ t1 of | B _ => let var x_lrm: a // uninitialized val t1 = brauntree_leftrem (t1, x_lrm) in brauntree_siftdn (x_lrm, t2, t1, cmp) end // end of [B] | E ((*void*)) => E () end // end of [demin] // in // case+ hp0 of | B _ => let val () = hp0 := delmin (hp0, res) prval () = opt_some {a} (res) in true (*removed*) end // end of [B_] | E _ => let prval () = opt_none {a} (res) in false(*notremoved*) end // end of [E] // end // end of [funheap_delmin] (* ****** ****** *) implement{a} funheap_delmin_opt (hp0, cmp) = let // var res: a? // uninitized val ans = funheap_delmin (hp0, cmp, res) // in // if ans then let prval () = opt_unsome{a}(res) in Some_vt{a}(res) end // end of [then] else let prval () = opt_unnone{a}(res) in None_vt{a}(*void*) end // end of [else] // end of [if] // end // end of [funheap_delmin_opt] (* ****** ****** *) (* end of [funheap_brauntree.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/DATS/funheap_binomial.dats0000644000175000017500000002537613431250607023575 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ATS1/SATS/funheap_binomial.sats" (* ****** ****** *) // implement{a} compare_elt_elt (x1, x2, cmp) = cmp (x1, x2) // (* ****** ****** *) (* ** binomial trees: ** btree(a, n) is for a binomial tree of rank(n) *) datatype btree (a:t@ype+, int(*rank*)) = | {n:nat} btnode (a, n) of (int (n), a, btreelst (a, n)) // end of [btree] and btreelst (a:t@ype+, int(*rank*)) = | btlst_nil (a, 0) of ((*void*)) | {n:nat} btlst_cons (a, n+1) of (btree (a, n), btreelst (a, n)) // end of [btreelst] (* ****** ****** *) fun{ a:t0p } btree_rank {n:nat} .<>. ( bt: btree (a, n) ) :<> int (n) = let val btnode (n, _, _) = bt in n end // end of [btree_rank] (* ****** ****** *) datatype bheap ( a:t@ype+, int(*rank*), int(*size*) ) = | {n:nat} bheap_nil (a, n, 0) of () | {n:nat}{p:int}{sz:nat}{n1:int | n1 > n} bheap_cons (a, n, p+sz) of (EXP2 (n, p) | btree (a, n), bheap (a, n1, sz)) // end of [bheap] (* ****** ****** *) fun{a:t0p} btree_btree_merge {n:nat} .<>. ( bt1: btree (a, n) , bt2: btree (a, n) , cmp: cmp a ) :<> btree (a, n+1) = let val+btnode (n, x1, bts1) = bt1 val+btnode (n, x2, bts2) = bt2 val sgn = compare_elt_elt (x1, x2, cmp) in if sgn <= 0 then btnode{a}(n+1, x1, btlst_cons{a}(bt2, bts1)) else btnode{a}(n+1, x2, btlst_cons{a}(bt1, bts2)) // end of [if] end // end of [btree_btree_merge] (* ****** ****** *) fun{a:t0p} btree_bheap_merge{sz:nat} {n,n1:nat | n <= n1}{p:int} .. ( pf: EXP2 (n, p) | bt: btree (a, n), n: int (n), hp: bheap (a, n1, sz) , cmp: cmp (a) ) :<> [n2:int | n2 >= min(n, n1)] bheap (a, n2, sz+p) = case+ hp of | bheap_cons (pf1 | bt1, hp1) => let val n1 = btree_rank (bt1) in if n < n1 then let // nothing in bheap_cons{a}(pf | bt, hp) end else if n > n1 then let val hp1 = btree_bheap_merge (pf | bt, n, hp1, cmp) // end of [val] in bheap_cons{a}(pf1 | bt1, hp1) end else let prval () = exp2_ispos (pf1) prval () = exp2_isfun (pf, pf1) val bt = btree_btree_merge (bt, bt1, cmp) in btree_bheap_merge (EXP2ind (pf) | bt, n+1, hp1, cmp) end // end of [if] end (* end of [bheap_cons] *) | bheap_nil () => bheap_cons{a}(pf | bt, bheap_nil{a}{n+1}()) // end of [bheap_nil] // end of [btree_bheap_merge] (* ****** ****** *) fun{a:t0p} bheap_bheap_merge {n1,n2:nat} {sz1,sz2:nat} .. ( hp1: bheap (a, n1, sz1) , hp2: bheap (a, n2, sz2) , cmp: cmp a ) :<> [n:int | n >= min(n1, n2)] bheap (a, n, sz1+sz2) = ( case+ hp1 of | bheap_cons (pf1 | bt1, hp11) => ( case+ hp2 of | bheap_nil () => hp1 | bheap_cons (pf2 | bt2, hp21) => let // prval () = exp2_ispos (pf1) prval () = exp2_ispos (pf2) // val n1 = btree_rank (bt1) val n2 = btree_rank (bt2) in if n1 < n2 then bheap_cons{a}(pf1 | bt1, bheap_bheap_merge (hp11, hp2, cmp)) else if n1 > n2 then bheap_cons{a}(pf2 | bt2, bheap_bheap_merge (hp1, hp21, cmp)) else let prval () = exp2_isfun (pf1, pf2) val bt12 = btree_btree_merge (bt1, bt2, cmp) in btree_bheap_merge (EXP2ind (pf1) | bt12, n1+1, bheap_bheap_merge (hp11, hp21, cmp), cmp) end // end of [if] end (* end of [bheap_cons] *) ) // end of [bheap_cons] | bheap_nil ((*void*)) => hp2 ) (* end of [bheap_bheap_merge] *) (* ****** ****** *) fun{a:t0p} bheap_find_min {n:nat}{sz:pos} .<>. ( hp0: bheap (a, n, sz), cmp: cmp a ) : a = x0 where { // fun find {n:nat} {sz:nat} .. ( hp: bheap (a, n, sz), x0: &a, cmp: cmp a ) : void = ( case+ hp of | bheap_cons (pf | bt, hp) => let prval () = exp2_ispos (pf) val+btnode (_, x, _) = bt val ((*void*)) = if compare_elt_elt (x0, x, cmp) > 0 then (x0 := x) // end of [val] in find (hp, x0, cmp) end | bheap_nil ((*void*)) => () ) (* end of [find] *) // val+bheap_cons (pf0 | bt0, hp1) = hp0 val+btnode (_, x0, _) = bt0 var x0: a = x0 val () = find (hp1, x0, cmp) // } (* end of [bheap_find_min] *) (* ****** ****** *) fun{a:t0p} bheap_remove_min {n:nat}{sz:pos} .<>. ( hp0: bheap (a, n, sz), cmp: cmp a ) : [ n1,n2,p:int | n1 >= n; n2 >= n;sz >= p ] ( EXP2 (n2, p) | bheap (a, n1, sz-p), btree (a, n2) ) = let // val+bheap_cons (pf0 | bt0, hp1) = hp0 val+btnode (_, x0, _) = bt0 // // HX: [find] and [remove] can be merged into one // fun find {n:nat}{sz:nat} .. ( hp0: bheap (a, n, sz) , x0: &a, pos: &intGte(0) >> _, cmp: cmp a ) : void = case+ hp0 of | bheap_cons (pf | bt, hp) => let prval () = exp2_ispos (pf) val+ btnode (_, x, _) = bt val sgn = compare_elt_elt (x0, x, cmp) val () = if sgn > 0 then (x0 := x; pos := pos+1) in find (hp, x0, pos, cmp) end // [bheap_cons] | bheap_nil ((*void*)) => () (* end of [find] *) // var x0: a = x0 and pos: Nat = 0 val () = find (hp1, x0, pos, cmp) // fun remove {n:nat}{sz:nat} {pos:nat} .. ( hp0: bheap (a, n, sz), pos: int (pos) , btmin: &btree(a, 0)? >> btree (a, n2) ) : #[ n1,n2,p:int | n1 >= n; n2 >= n; sz >= p ] ( EXP2 (n2, p) | bheap (a, n1, sz-p) ) = let // prval () = __assert () where { extern praxi __assert (): [sz > 0] void } // end of [prval] // val+ bheap_cons (pf | bt, hp) = hp0 prval () = exp2_ispos (pf) in if pos > 0 then let val (pfmin | hp) = remove (hp, pos-1, btmin) in (pfmin | bheap_cons{a}(pf | bt, hp)) end else let val () = btmin := bt in (pf | hp) end // end of [if] end (* end of [remove] *) // var btmin: btree (a, 0)? val (pf | hp) = remove (hp0, pos, btmin) // in (pf | hp, btmin) end // end of [bheap_remove_min] (* ****** ****** *) assume heap_t0ype_type (a:t0p) = [n,sz:nat] bheap (a, n, sz) (* ****** ****** *) implement{} funheap_make_nil{a}((*void*)) = bheap_nil{a}{0}() (* ****** ****** *) local fun{} pow2{n:nat} .<>. ( n: int n ) :<> [p:pos] (EXP2 (n, p) | size_t (p)) = let // val res = (1 << n) val [p:int] res = $UN.cast{sizeGt(0)}(res) // in ($UN.castview0{EXP2(n, p)}(0) | res) end // end of [pow2] in (* in of [local] *) implement{a} funheap_size (hp) = let // fun aux {n:nat}{sz:nat} .. (hp: bheap (a, n, sz)):<> size_t (sz) = case+ hp of | bheap_cons (pf | bt, hp) => let val btnode (n, _, _) = bt; val (pf1 | p) = pow2 (n) prval () = exp2_isfun (pf, pf1) in p + aux (hp) end // end of [bheap_cons] | bheap_nil ((*void*)) => i2sz(0) (* end of [aux] *) // in aux (hp) end // end of [funheap_size] end // end of [local] (* ****** ****** *) implement{a} funheap_insert (hp, x0, cmp) = let val bt = btnode{a}(0, x0, btlst_nil ()) in hp := btree_bheap_merge (EXP2bas () | bt, 0, hp, cmp) end // end of [funheap_insert] (* ****** ****** *) implement funheap_is_empty{a}(hp) = ( case+ hp of | bheap_cons (_ | _, _) => false | bheap_nil () => true ) // end of [funheap_is_empty] implement funheap_isnot_empty{a}(hp) = ( case+ hp of | bheap_cons (_ | _, _) => true | bheap_nil () => false ) // end of [funheap_isnot_empty] (* ****** ****** *) implement{a} funheap_getmin (hp0, cmp, res) = let in // case+ hp0 of | bheap_cons (pf0 | _, _) => let prval () = exp2_ispos (pf0) val () = res := bheap_find_min (hp0, cmp) prval () = opt_some{a}(res) in true end // end of [bheap_cons] | bheap_nil () => let prval () = opt_none{a}(res) in false end // end of [bheap_nil] // end // end of [funheap_getmin] (* ****** ****** *) implement{a} funheap_delmin (hp0, cmp, res) = let in // case+ hp0 of | bheap_cons (pf0 | _, _) => let prval () = exp2_ispos (pf0) val (_ | hp_new, btmin) = bheap_remove_min (hp0, cmp) val btnode (_, x, bts) = btmin val ((*void*)) = res := x prval ((*void*)) = opt_some{a}(res) val hp1 = let fun loop {n:nat}{sz:nat} .. ( bts: btreelst (a, n), hp: bheap (a, n, sz) ) :<> [sz:nat] bheap (a, 0, sz) = ( case+ bts of | btlst_cons (bt, bts) => let prval pf = exp2_istot () in loop (bts, bheap_cons{a}(pf | bt, hp)) end // end of [btlst_cons] | btlst_nil ((*void*)) => (hp) ) (* end of [loop] *) in loop (bts, bheap_nil) end // end of [val] val ((*void*)) = hp0 := bheap_bheap_merge (hp_new, hp1, cmp) // end of [val] in true end // end of [bheap_cons] | bheap_nil () => let prval () = opt_none{a}(res) in false end // end of [bheap_nil] // end of [case] // end // end of [funheap_delmin] (* ****** ****** *) implement{a} funheap_delmin_opt (hp0, cmp) = let // var res: a? // uninitized val ans = funheap_delmin (hp0, cmp, res) // in // if ans then let prval () = opt_unsome{a}(res) in Some_vt{a}(res) end // end of [then] else let prval () = opt_unnone{a}(res) in None_vt{a}(*void*) end // end of [else] // end of [if] // end // end of [funheap_delmin_opt] (* ****** ****** *) implement{a} funheap_merge (hp1, hp2, cmp) = bheap_bheap_merge (hp1, hp2, cmp) // end of [funheap_merge] (* ****** ****** *) (* end of [funheap_binomail.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/DATS/.keeper0000644000175000017500000000000013431250607020645 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS1/DATS/linset_listord.dats0000644000175000017500000002357713431250607023334 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A linear set implementation based on ordered lists ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: February 17, 2012 ** *) (* ****** ****** *) // // HX-2014-01-17: Porting to ATS2 // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/ATS1/SATS/linset_listord.sats" // (* ****** ****** *) // implement{a} compare_elt_elt (x1, x2, cmp) = cmp (x1, x2) // (* ****** ****** *) assume set_t0ype_vtype (a:t0p) = List0_vt (a) (* ****** ****** *) // // HX: // a set is represented as a sorted list in descending order; // note that descending order is chosen to faciliate set comparison // (* ****** ****** *) implement{} linset_nil () = list_vt_nil () implement{} linset_make_nil () = list_vt_nil () (* ****** ****** *) implement{a} linset_make_sing (x) = list_make_sing (x) (* ****** ****** *) implement{a} linset_size (xs) = i2sz(list_vt_length (xs)) (* ****** ****** *) implement{a} linset_is_member (xs, x0, cmp) = let // fun loop {n:nat} .. ( xs: !list_vt (a, n) ) : bool = ( case+ xs of | list_vt_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x, cmp) // end of [val] in if sgn > 0 then false else (if sgn < 0 then loop (xs1) else true) // end of [if] end // end of [list_vt_cons] | list_vt_nil () => false ) (* end of [loop] *) // in loop (xs) end // end of [linset_is_member] (* ****** ****** *) implement{a} linset_isnot_member (xs, x0, cmp) = ~linset_is_member (xs, x0, cmp) // end of [linset_isnot_member] (* ****** ****** *) implement{a} linset_is_subset (xs1, xs2, cmp) = let // fun loop {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : bool = ( case+ xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2, cmp) // end of [val] in if sgn > 0 then false else if sgn < 0 then loop (xs1, xs21) else loop (xs11, xs21) end | list_nil ((*void*)) => false ) // end of [list_cons] | list_nil ((*void*)) => true ) (* end of [loop] *) // in loop ($UN.list_vt2t(xs1), $UN.list_vt2t(xs2)) end // end of [linset_is_subset] (* ****** ****** *) implement{a} linset_is_supset (xs1, xs2, cmp) = linset_is_subset (xs2, xs1, cmp) // end of [linset_is_supset] (* ****** ****** *) implement{a} linset_is_equal (xs1, xs2, cmp) = let // fun loop {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : bool = ( case+ xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2, cmp) // end of [val] in if sgn = 0 then loop (xs11, xs21) else false end // end of [list_cons] | list_nil ((*void*)) => false ) // end of [list_cons] | list_nil ((*void*)) => ( case+ xs2 of list_cons _ => false | list_nil () => true ) (* end of [list_nil] *) ) (* end of [loop] *) // in loop ($UN.list_vt2t(xs1), $UN.list_vt2t(xs2)) end // end of [linset_is_equal] (* ****** ****** *) // implement{a} linset_copy (xs) = list_vt_copy (xs) // implement{a} linset_free (xs) = list_vt_free (xs) // (* ****** ****** *) implement{a} linset_insert (xs, x0, cmp) = let // fun ins{n:nat} .. ( // tail-recursive xs: &list_vt (a, n) >> list_vt (a, n1) ) : #[n1:nat | n <= n1; n1 <= n+1] bool = ( case+ xs of | @list_vt_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x, cmp) // end of [val] in if sgn > 0 then let prval () = fold@ (xs) val () = xs := list_vt_cons{a}(x0, xs) in false end else if sgn < 0 then let val res = ins (xs1); prval () = fold@ (xs) in res end else let // x0 = x prval () = fold@ (xs) in true // [x0] is already in [xs] end // end of [if] end (* end of [list_vt_cons] *) | ~list_vt_nil () => let val () = xs := list_make_sing (x0) in false end // end of [list_vt_nil] ) (* end of [ins] *) // in ins (xs) end // end of [linset_insert] (* ****** ****** *) implement{a} linset_remove (xs, x0, cmp) = let // fun rem {n:nat} .. ( // tail-recursive xs: &list_vt (a, n) >> list_vt (a, n1) ) : #[n1:nat | n1 <= n; n <= n1+1] bool = ( case+ xs of | @list_vt_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x, cmp) // end of [val] in if sgn > 0 then let prval () = fold@{a}(xs) in false end else if sgn < 0 then let val res = rem (xs1); prval () = fold@{a}(xs) in res end else let // x0 = x val xs1_ = xs1 val () = free@{a}{0}(xs) val () = xs := xs1_ in true // [x0] is removed from [xs] end // end of [if] end (* end of [list_vt_cons] *) | list_vt_nil ((*void*)) => false ) (* end of [rem] *) // in rem (xs) end // end of [linset_remove] (* ****** ****** *) (* ** By Brandon Barker *) implement {a}(*tmp*) linset_choose (xs, x0) = let in // case+ xs of | list_vt_cons (x, xs1) => let val () = x0 := x prval () = opt_some{a}(x0) in true end // end of [list_vt_cons] | list_vt_nil () => let prval () = opt_none{a}(x0) in false end // end of [list_vt_nil] // end // end of [linset_choose] (* ****** ****** *) implement{a} linset_choose_opt (xs) = let // var x0: a? val ans = linset_choose (xs, x0) // in // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt(*void*) end (* end of [if] *) // end // end of [linset_choose_opt] (* ****** ****** *) implement{a} linset_chooseout (xs0, x0) = let in // case+ xs0 of | ~list_vt_cons (x, xs) => let val () = x0 := x prval () = opt_some{a}(x0) val () = xs0 := xs in true end // end of [list_vt_cons] | list_vt_nil () => let prval () = opt_none{a}(x0) in false end // end of [list_vt_nil] // end // end of [linset_chooseout] (* ****** ****** *) implement{a} linset_chooseout_opt (xs) = let // var x0: a? val ans = linset_chooseout (xs, x0) // in // if ans then let prval () = opt_unsome{a}(x0) in Some_vt{a}(x0) end else let prval () = opt_unnone{a}(x0) in None_vt(*void*) end (* end of [if] *) // end // end of [linset_chooseout_opt] (* ****** ****** *) implement {a}(*tmp*) linset_union (xs1, xs2, cmp) = let // vtypedef res = List0_vt (a) // fun loop {n1,n2:nat} .. ( xs1: list_vt (a, n1) , xs2: list_vt (a, n2), res: &res? >> res ) : void = ( case+ xs1 of | @list_vt_cons (x1, xs11) => ( case+ xs2 of | @list_vt_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2, cmp) // end of [val] in if sgn > 0 then let val xs11_ = xs11 prval () = fold@{a}(xs2) val () = loop (xs11_, xs2, xs11) prval () = fold@{a}(xs1) in res := xs1 end else if sgn < 0 then let prval () = fold@{a}(xs1) val xs21_ = xs21 val () = loop (xs1, xs21_, xs21) prval () = fold@{a}(xs2) in res := xs2 end else let // x1 = x2 val xs11_ = xs11 val xs21_ = xs21 val () = free@{a}{0}(xs2) val () = loop (xs11_, xs21_, xs11) prval () = fold@{a}(xs1) in res := xs1 end // end of [if] end // end of [list_vt_cons] | ~list_vt_nil ((*void*)) => let prval () = fold@{a}(xs1) in res := xs1 end ) // end of [list_vt_cons] | ~list_vt_nil ((*void*)) => (res := xs2) ) (* end of [loop] *) // var res: res // uninitialized val ((*void*)) = loop (xs1, xs2, res) // in res end // end of [linset_union] (* ****** ****** *) implement{a} fprint_linset_sep (out, xs, sep) = fprint_list_vt_sep (out, xs, sep) // end of [fprint_linset_sep] (* ****** ****** *) implement{a} linset_foreach_funenv {v}{vt}(pf | xs, f, env) = let // fun loop ( pf: !v | xs: !set(INV(a)) , f: (!v | a, !vt) -> void, env: !vt ) : void = ( // case+ xs of | list_vt_cons (x, xs) => (f (pf | x, env); loop (pf | xs, f, env)) | list_vt_nil ((*void*)) => () // ) (* end of [loop] *) // in loop (pf | xs, f, env) end (* end of [linset_foreach_funenv] *) (* ****** ****** *) implement{a} linset_listize (xs) = xs (* ****** ****** *) implement{a} linset_listize1 (xs) = list_vt_copy (xs) (* ****** ****** *) (* end of [linset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/DATS/funmset_listord.dats0000644000175000017500000003066113431250607023507 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A functional map implementation based on ordered lists ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: May 18, 2011 ** *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // // (* ****** ****** *) // staload "libats/ML/SATS/atspre.sats" // staload "libats/ATS1/SATS/funmset_listord.sats" // (* ****** ****** *) // implement {a}(*tmp*) compare_elt_elt(x1, x2, cmp) = cmp(x1, x2) // (* ****** ****** *) typedef intGt0 = intGt(0) (* ****** ****** *) assume mset_t0ype_type(a: t@ype) = List0(@(intGt0, a)) (* ****** ****** *) // // HX: // mset is represented as a sorted mlist in descending order; // note that desending order is chosen to facilitate mset comparion // (* ****** ****** *) implement{} funmset_make_nil () = list_nil () (* ****** ****** *) implement{a} funmset_make_sing (x) = let typedef nx = (intGt0, a) in list_vt2t(list_make_sing((1, x))) end // end of [funmset_make_sing] implement{a} funmset_make_pair (x1, x2, cmp) = let // typedef nx = (intGt0, a) // val sgn = compare_elt_elt (x1, x2, cmp) // in // if sgn > 0 then let val nx1 = (1, x1) and nx2 = (1, x2) in list_vt2t(list_make_pair (nx1, nx2)) end else if sgn < 0 then let val nx1 = (1, x1) and nx2 = (1, x2) in list_vt2t(list_make_pair (nx2, nx1)) end else let val nx = @(2, x1) in list_vt2t(list_make_sing (nx)) end // end of [if] // end // end of [funmset_make_pair] (* ****** ****** *) implement{a} funmset_make_list (xs, cmp) = let // typedef nx = (intGt0, a) // fun ntimes {k:nat} .. ( xs: list_vt (a, k), x0: a, n: &intGt0 >> _ ) : [k1:nat | k1 <= k] list_vt (a, k1) = ( case+ xs of | @list_vt_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x, cmp) // end of [val] in if sgn > 0 then let prval () = fold@ (xs) in xs end else let val xs1 = xs1 val () = n := n + 1 val () = free@{a}{0}(xs) in ntimes (xs1, x0, n) end // end of [if] end // end of [list_vt_cons] | list_vt_nil ((*void*)) => xs ) (* end of [ntimes] *) // fun loop{k:nat} .. ( xs: list_vt (a, k), res: &mset(a)? >> mset(a) ) : void = ( case+ xs of | ~list_vt_cons (x0, xs) => let var n: intGt0 = 1 val xs = ntimes (xs, x0, n) val nx0 = @(n, x0) val () = res := list_cons{nx}{0} (nx0, _) val+list_cons (_, res1) = res val ((*void*)) = loop (xs, res1) prval ((*void*)) = fold@ (res) in // nothing end // end of [list_vt_cons] | ~list_vt_nil () => let val () = res := list_nil () in (*nothing*) end // end of [list_vt_nil] ) (* end of [loop] *) // val xs = list_copy (xs) prval () = lemma_list_vt_param (xs) // // HX: ~cmp: descending order // val xs = list_vt_mergesort_fun (xs, lam (x1, x2) => ~cmp (x1, x2)) // var res: mset(a) val () = loop (xs, res) // in res end // end of [funmset_make_list] (* ****** ****** *) implement{a} funmset_size (nxs) = let typedef nx = @(intGt0, a) fun loop {k:nat} .. (nxs: list (nx, k), res: Size):<> Size = case+ nxs of | list_cons (nx, nxs) => loop (nxs, res + nx.0) | list_nil () => res // end of [loop] in loop (nxs, i2sz(0)) end // end of [funmset_size] (* ****** ****** *) implement{a} funmset_get_ntime (nxs, x0, cmp) = let // typedef nx = @(intGt0, a) // fun loop {k:nat} .. ( nxs: list (nx, k) ) :<> intGte(0) = case+ nxs of | list_nil ((*void*)) => 0 | list_cons (nx, nxs) => let val sgn = compare_elt_elt (x0, nx.1, cmp) in if sgn > 0 then 0 else (if sgn < 0 then loop (nxs) else nx.0) end // end of [list_cons] // end of [loop] // in loop (nxs) end // end of [funmset_get_ntime] (* ****** ****** *) implement{a} funmset_is_member (xs, x0, cmp) = funmset_get_ntime (xs, x0, cmp) > 0 // end of [funmset_is_member] implement{a} funmset_isnot_member (xs, x0, cmp) = funmset_get_ntime (xs, x0, cmp) = 0 // end of [funmset_isnot_member] (* ****** ****** *) implement{a} funmset_is_subset (nxs1, nxs2, cmp) = let // typedef nx = (int, a) fun aux // tail-recursive {k1,k2:nat} .. ( nxs1: list (nx, k1), nxs2: list (nx, k2) ) : bool = case+ nxs1 of | list_cons (nx1, nxs11) => ( case+ nxs2 of | list_cons (nx2, nxs21) => let val sgn = compare_elt_elt (nx1.1, nx2.1, cmp) in if sgn > 0 then false else if sgn < 0 then aux (nxs1, nxs21) else ( if nx1.0 <= nx2.0 then aux (nxs11, nxs21) else false ) // end of [if] end // end of [list_cons] | list_nil ((*void*)) => false ) // end of [list_cons] | list_nil ((*void*)) => true // end of [aux] in aux (nxs1, nxs2) end // end of [funmset_is_subset] implement{a} funmset_is_equal (nxs1, nxs2, cmp) = let // typedef nx = (int, a) fun aux // tail-recursive {k1,k2:nat} .. ( nxs1: list (nx, k1), nxs2: list (nx, k2) ) : bool = ( case+ nxs1 of | list_cons (nx1, nxs1) => ( case+ nxs2 of | list_cons (nx2, nxs2) => let val sgn = compare_elt_elt (nx1.1, nx2.1, cmp) in if sgn = 0 then ( if nx1.0 = nx2.0 then aux (nxs1, nxs2) else false ) else false // end of [if] end // end of [list_cons] | list_nil ((*void*)) => false ) // end of [list_cons] | list_nil ((*void*)) => ( case+ nxs2 of | list_cons _ => false | list_nil () => true ) (* end of [list_nil] *) ) (* end of [aux] *) // in aux (nxs1, nxs2) end // end of [funmset_is_equal] (* ****** ****** *) implement{a} funmset_compare (nxs1, nxs2, cmp) = let // typedef nx = (int, a) // fun aux // tail-recursive {k1,k2:nat} .. ( nxs1: list (nx, k1), nxs2: list (nx, k2) ) : int = ( case+ nxs1 of | list_cons (nx1, nxs1) => ( case+ nxs2 of | list_cons (nx2, nxs2) => let val sgn = compare_elt_elt (nx1.1, nx2.1, cmp) // end of [val] in if sgn > 0 then 1 else if sgn < 0 then ~1 else let val n1 = nx1.0 and n2 = nx2.0 in if n1 > n2 then 1 else if n1 < n2 then ~1 else aux (nxs1, nxs2) end (* end of [if] *) end // end of [list_cons] | list_nil ((*void*)) => 1 ) // end of [list_cons] | list_nil ((*void*)) => ( case+ nxs2 of list_cons _ => ~1 | list_nil _ => 0 ) (* end of [list_nil] *) ) (* end of [aux] *) // in aux (nxs1, nxs2) end // end of [funmset_compare] (* ****** ****** *) implement{a} funmset_insert (nxs, x0, cmp) = let // typedef nx = @(intGt0, a) // fun loop {k:nat} .. ( nxs: list (nx, k) ) : List0 (nx) = case+ nxs of | list_cons (nx, nxs1) => let val sgn = compare_elt_elt (x0, nx.1, cmp) in if sgn > 0 then list_cons{nx}((1, x0), nxs) else if sgn < 0 then let val nxs1 = loop (nxs1) in list_cons{nx}(nx, nxs1) end else let val nx = (nx.0 + 1, nx.1) in list_cons{nx}(nx, nxs1) end (* end of [if] *) end // end of [list_cons] | list_nil () => list_cons{nx}((1, x0), list_nil()) // end of [loop] // in nxs := loop (nxs) end // end of [funmset_insert] (* ****** ****** *) implement{a} funmset_remove (nxs, x0, cmp) = let // typedef nx = @(intGt0, a) // fun loop {k:nat} .. ( nxs: list (nx, k), flag: &int >> _ ) : List0 (nx) = case nxs of | list_cons (nx, nxs1) => let val sgn = compare_elt_elt (x0, nx.1, cmp) in if sgn > 0 then nxs else if sgn < 0 then let val flag0 = flag val nxs1 = loop (nxs1, flag) in if flag = flag0 then nxs else list_cons{nx}(nx, nxs1) end else let val n1 = nx.0 - 1 val () = flag := flag + 1 in if n1 > 0 then list_cons{nx}((n1, nx.1), nxs1) else nxs1 end (* end of [if] *) end // end of [list_cons] | list_nil () => list_nil () // end of [aux] // var flag: int = 0 val () = nxs := loop (nxs, flag) // in if flag > 0 then true else false end // end of [funmset_remove] (* ****** ****** *) implement{a} funmset_union (nxs1, nxs2, cmp) = let // typedef nx = @(intGt0, a) // fun aux {k1,k2:nat} .. ( nxs1: list (nx, k1) , nxs2: list (nx, k2) ) : List0 (nx) = ( case nxs1 of | list_cons (nx1, nxs11) => ( case+ nxs2 of | list_cons (nx2, nxs21) => let val sgn = compare_elt_elt (nx1.1, nx2.1, cmp) // end of [val] in if sgn > 0 then list_cons{nx}(nx1, aux (nxs11, nxs2)) else if sgn < 0 then list_cons{nx}(nx2, aux (nxs1, nxs21)) else let val nx12 = (nx1.0 + nx2.0, nx1.1) in list_cons{nx}(nx12, aux (nxs11, nxs21)) end (* end of [if] *) end // end of [list_cons] | list_nil ((*void*)) => nxs1 ) (* end of [list_cons] *) | list_nil ((*void*)) => nxs2 ) (* end of [aux] *) in aux (nxs1, nxs2) end // end of [funmset_union] (* ****** ****** *) implement{a} funmset_intersect (nxs1, nxs2, cmp) = let // typedef nx = @(intGt0, a) // fun aux {k1,k2:nat} .. ( nxs1: list (nx, k1) , nxs2: list (nx, k2) ) : List0 (nx) = let in // case nxs1 of | list_cons (nx1, nxs11) => ( case+ nxs2 of | list_cons (nx2, nxs21) => let val sgn = compare_elt_elt (nx1.1, nx2.1, cmp) // end of [val] in if sgn > 0 then aux (nxs11, nxs2) else if sgn < 0 then aux (nxs1, nxs21) else let val nx12 = ( if nx1.0 <= nx2.0 then nx1 else nx2 ) : nx // end of [val] in list_cons{nx}(nx1, aux (nxs11, nxs21)) end // end of [if] end // end of [list_cons] | list_nil ((*void*)) => list_nil () ) (* end of [list_cons] *) | list_nil ((*void*)) => list_nil () // end (* end of [aux] *) // in aux (nxs1, nxs2) end // end of [funmset_intersect] (* ****** ****** *) // (* ** HX: the returned list is in descending order *) implement{a} funmset_listize (nxs) = let typedef nx = @(intGt0, a) viewtypedef res = List_vt (a) in list_map_fun (nxs, lam (nx) =<0> nx.1) end // end of [funmset_listize] // (* ****** ****** *) // (* ** HX: the returned list is in descending order *) // implement{a} funmset_mlistize (nxs) = res where { // typedef nx = @(intGt0, a) vtypedef res = List0_vt (a) // fnx loop1{k:nat} .. ( nxs: list (nx, k), res: &res? >> res ) : void = ( case+ nxs of | list_cons (nx, nxs) => loop2 (nx.0, nx.1, nxs, res) | list_nil ((*void*)) => (res := list_vt_nil) ) (* end of [loop1] *) // and loop2{k,n:nat} .. ( n: int n, x: a, nxs: list (nx, k), res: &res? >> res ) : void = ( if n > 0 then let val () = res := list_vt_cons{a}{0}(x, _) // end of [val] val+list_vt_cons (_, res1) = res val () = loop2 (n-1, x, nxs, res1) prval ((*void*)) = fold@{a}(res) in // nothing end else loop1 (nxs, res) // end of [if] ) (* end of [loop2] *) // var res: ptr val () = loop1 (nxs, res) // } (* end of [funmset_mlistize] *) // (* ****** ****** *) (* end of [funmset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/DATS/funset_listord.dats0000644000175000017500000002634313431250607023334 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A functional map implementation based on ordered lists ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: May 18, 2011 ** *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) staload "libats/ATS1/SATS/funset_listord.sats" (* ****** ****** *) // implement{a} compare_elt_elt (x1, x2, cmp) = cmp (x1, x2) // (* ****** ****** *) assume set_t0ype_type (a:t0p) = List0 (a) (* ****** ****** *) // // HX: // a set is represented as a sorted list in descending order; // note that descending order is chosen to faciliate set comparison // (* ****** ****** *) implement{} funset_make_nil () = list_nil () (* ****** ****** *) implement{a} funset_make_sing (x) = list_cons{a}(x, list_nil) (* ****** ****** *) implement{a} funset_make_list (xs, cmp) = let // fun loop1 {m:pos} .. ( xs: list_vt (a, m) , ys: List0_vt (a), cmp: cmp a ) : List0_vt (a) = let val-@list_vt_cons (x, xs1) = xs val x_ = x and xs1_ = xs1 val ((*void*)) = xs1 := ys prval ((*void*)) = fold@ (xs) in loop2 (x_, xs1_, xs, cmp) end // end of [loop1] // and loop2 {n:nat} .. ( x0: a , xs: list_vt (a, n) , ys: List0_vt (a), cmp: cmp a ) : List0_vt (a) = let in // case+ xs of | @list_vt_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x, cmp) // end of [val] in if sgn < 0 then let // HX: [xs] is ascending! prval () = fold@ (xs) in loop1 (xs, ys, cmp) end else let val xs1_ = xs1 val () = free@{a}{0}(xs) in loop2 (x0, xs1_, ys, cmp) end // end of [if] end (* end of [list_vt_cons] *) | ~list_vt_nil ((*void*)) => ys // end (* end of [loop2] *) // local implement list_mergesort$cmp (x1, x2) = compare_elt_elt (x1, x2, cmp) in(*in-of-local*) val xs2 = list_mergesort (xs) // [xs2] is ascending! end // end of [local] // in // case+ xs2 of | list_vt_cons _ => let val ys = loop1 (xs2, list_vt_nil, cmp) in list_vt2t (ys) end // end of [list_vt_cons] | ~list_vt_nil () => list_nil () // end // end of [funset_make_list] (* ****** ****** *) implement{a} funset_size (xs) = i2sz(list_length(xs)) (* ****** ****** *) implement{a} funset_is_member (xs, x0, cmp) = let // fun loop {n:nat} .. ( xs: list (a, n) ) : bool = ( case+ xs of | list_cons (x, xs) => let val sgn = compare_elt_elt (x0, x, cmp) // end of [val] in if sgn > 0 then false else (if sgn < 0 then loop (xs) else true) // end of [if] end // end of [list_cons] | list_nil ((*void*)) => false ) (* end of [loop] *) // in loop (xs) end // end of [funset_is_member] implement{a} funset_isnot_member (xs, x0, cmp) = not (funset_is_member (xs, x0, cmp)) // end of [funset_isnot_member] (* ****** ****** *) implement{a} funset_is_equal (xs1, xs2, cmp) = let // fun aux // tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : bool = ( case+ xs1 of | list_cons (x1, xs1) => ( case+ xs2 of | list_cons (x2, xs2) => let val sgn = compare_elt_elt (x1, x2, cmp) in if sgn = 0 then aux (xs1, xs2) else false end | list_nil () => false ) // end of [list_cons] | list_nil () => ( case+ xs2 of list_cons _ => false | list_nil () => true // end of [case] ) // end of [list_nil] ) (* end of [aux] *) in aux (xs1, xs2) end // end of [funset_is_equal] (* ****** ****** *) implement{a} funset_is_subset (xs1, xs2, cmp) = let // fun aux // tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : bool = ( case+ xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2, cmp) // end of [val] in if sgn > 0 then false else if sgn < 0 then aux (xs1, xs21) else aux (xs11, xs21) end | list_nil () => false ) // end of [list_cons] | list_nil ((*void*)) => true ) (* end of [aux] *) // in aux (xs1, xs2) end // end of [funset_is_subset] (* ****** ****** *) implement{a} funset_compare (xs1, xs2, cmp) = let // fun aux // tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : int = ( case+ xs1 of | list_cons (x1, xs1) => ( case+ xs2 of | list_cons (x2, xs2) => let val sgn = compare_elt_elt (x1, x2, cmp) in if sgn > 0 then 1 else ( if sgn < 0 then ~1 else aux (xs1, xs2) ) // end of [if] end // end of [list_cons] | list_nil () => 1 ) // end of [list_cons] | list_nil ((*void*)) => ( case+ xs2 of list_cons _ => ~1 | list_nil _ => 0 ) (* end of [list_nil] *) ) (* end of [aux] *) // in aux (xs1, xs2) end // end of [funset_compare] (* ****** ****** *) implement{a} funset_insert (xs, x0, cmp) = let // fun ins {n:nat} .. ( xs: list (a, n), flag: &int ) : List0 (a) = ( case+ xs of | list_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x, cmp) // end of [val] in if sgn > 0 then let val () = flag := flag + 1 in list_cons{a}(x0, xs) end else if sgn < 0 then let val flag0 = flag val xs1 = ins (xs1, flag) in if flag = flag0 then xs else list_cons{a}(x, xs1) end else xs // end of [if] end // end of [list_cons] | list_nil () => let val () = flag := flag + 1 in list_cons{a}(x0, list_nil) end // end of [val] ) (* end of [ins] *) // var flag: int = 0 val () = xs := ins (xs, flag) // in if flag = 0 then true else false end // end of [funset_insert] (* ****** ****** *) implement{a} funset_remove (xs, x0, cmp) = let // fun rem {n:nat} .. ( xs: list (a, n), flag: &int ) : List0 (a) = ( case xs of | list_cons (x, xs1) => let val sgn = compare_elt_elt (x0, x, cmp) // end of [val] in if sgn > 0 then xs else if sgn < 0 then let val flag0 = flag val xs1 = rem (xs1, flag) in if flag = flag0 then xs else list_cons{a}(x, xs1) end else let val () = flag := flag + 1 in xs1 end (* end of [if] *) end // end of [list_cons] | list_nil () => list_nil () ) (* end of [rem] *) // var flag: int = 0 val () = xs := rem (xs, flag) // in if flag > 0 then true else false end // end of [funset_remove] (* ****** ****** *) implement{a} funset_union (xs1, xs2, cmp) = let // fun aux // non-tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : List0 (a) = ( case xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2, cmp) in if sgn > 0 then list_cons{a}(x1, aux (xs11, xs2)) else if sgn < 0 then list_cons{a}(x2, aux (xs1, xs21)) else list_cons{a}(x1, aux (xs11, xs21)) // end of [if] end // end of [list_cons] | list_nil () => xs1 ) // end of [list_cons] | list_nil ((*void*)) => xs2 ) (* end of [aux] *) // in aux (xs1, xs2) end // end of [funset_union] (* ****** ****** *) implement{a} funset_intersect (xs1, xs2, cmp) = let // fun aux // non-tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : List0 (a) = ( case xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2, cmp) in if sgn > 0 then aux (xs11, xs2) else if sgn < 0 then aux (xs1, xs21) else list_cons{a}(x1, aux (xs11, xs21)) // end of [if] end // end of [list_cons] | list_nil () => list_nil () ) // end of [list_cons] | list_nil ((*void*)) => list_nil () ) (* end of [aux] *) // in aux (xs1, xs2) end // end of [funset_intersect] (* ****** ****** *) implement{a} funset_diff (xs1, xs2, cmp) = let // fun aux // non-tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : List0 (a) = ( case xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2, cmp) // end of [val] in if sgn > 0 then list_cons{a}(x1, aux (xs11, xs2)) else if sgn < 0 then aux (xs1, xs21) else aux (xs11, xs21) // end of [if] end // end of [list_cons] | list_nil () => xs1 ) // end of [list_cons] | list_nil ((*void*)) => xs2 ) (* end of [aux] *) // in aux (xs1, xs2) end // end of [funset_diff] (* ****** ****** *) implement{a} funset_symdiff (xs1, xs2, cmp) = let // fun aux // non-tail-recursive {n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : List0 (a) = ( case xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val sgn = compare_elt_elt (x1, x2, cmp) // end of [val] in if sgn > 0 then list_cons{a}(x1, aux (xs11, xs2)) else if sgn < 0 then list_cons{a}(x2, aux (xs1, xs21)) else aux (xs11, xs21) // end of [if] end // end of [list_cons] | list_nil () => xs1 ) // end of [list_cons] | list_nil ((*void*)) => xs2 ) (* end of [aux] *) // in aux (xs1, xs2) end // end of [funset_symdiff] (* ****** ****** *) implement{a} funset_foreach_funenv {v}{vt}(pf | xs, f, env) = let // fun loop ( pf: !v | xs: set(INV(a)) , f: (!v | a, !vt) -> void, env: !vt ) : void = ( // case+ xs of | list_cons (x, xs) => (f (pf | x, env); loop (pf | xs, f, env)) | list_nil ((*void*)) => () // ) (* end of [loop] *) // in loop (pf | xs, f, env) end (* end of [funset_foreach_funenv] *) (* ****** ****** *) implement{a} funset_listize (xs) = list_copy (xs) (* ****** ****** *) (* end of [funset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/SATS/0000755000175000017500000000000013431250607017422 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS1/SATS/funset_listord.sats0000644000175000017500000000717213431250607023371 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A functional map implementation based on ordered lists ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: May 18, 2011 ** *) (* ****** ****** *) abstype set_t0ype_type (a:t@ype+) = ptr typedef set (a:t0p) = set_t0ype_type (a) (* ****** ****** *) typedef cmp (a:t0p) = (a, a) - int fun{a:t0p} compare_elt_elt (x1: a, x2: a, cmp: cmp(a)):<> int (* ****** ****** *) fun{} funset_make_nil{a:t0p} ():<> set (a) fun{a:t0p} funset_make_sing (x0: a):<> set (a) // singleton set fun{a:t0p} funset_make_list (xs: List(INV(a)), cmp: cmp a): set (a) (* ****** ****** *) fun{a:t0p} funset_size (xs: set(INV(a))):<> sizeGte(0) (* ****** ****** *) fun{a:t0p} funset_is_member (xs: set(INV(a)), x0: a, cmp: cmp a):<> bool fun{a:t0p} funset_isnot_member (xs: set(INV(a)), x0: a, cmp: cmp a):<> bool (* ****** ****** *) fun{a:t0p} funset_is_equal (xs1: set(INV(a)), xs2: set (a), cmp: cmp (a)):<> bool // end of [funset_is_equal] fun{a:t0p} funset_is_subset (xs1: set(INV(a)), xs2: set (a), cmp: cmp (a)):<> bool // end of [funset_is_subset] (* ****** ****** *) (* ** set ordering induced by the ordering on elements *) fun{a:t0p} funset_compare (xs1: set(INV(a)), xs2: set(a), cmp: cmp (a)):<> int // end of [funset_compare] (* ****** ****** *) fun{a:t0p} funset_insert ( xs: &set(INV(a)) >> _, x0: a, cmp: cmp (a) ) : bool (* [x0] alreay exists in [xs] *) fun{a:t0p} funset_remove ( xs: &set(INV(a)) >> _, x0: a, cmp: cmp (a) ) : bool(* removed/~removed: true/false *) (* ****** ****** *) fun{a:t0p} funset_union (xs1: set(INV(a)), xs2: set(a), cmp: cmp (a)):<> set (a) fun{a:t0p} funset_intersect (xs1: set(INV(a)), xs2: set(a), cmp: cmp (a)):<> set (a) fun{a:t0p} funset_diff (xs1: set(INV(a)), xs2: set(a), cmp: cmp (a)):<> set (a) fun{a:t0p} funset_symdiff (xs1: set(INV(a)), xs2: set(a), cmp: cmp (a)):<> set (a) (* ****** ****** *) fun{a:t0p} funset_foreach_funenv {v:view}{vt:vtype} ( pf: !v | xs: set(INV(a)), f: (!v | a, !vt) -> void, env: !vt ) : void // end of [funset_foreach_funenv] (* ****** ****** *) // castfn funset2list {a:t0p}(xs: set(INV(a))):<> List (a) // fun{a:t0p} funset_listize(xs: set(a)): List0_vt (a) // = list_copy // (* ****** ****** *) (* end of [funset_listord.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/SATS/funmset_listord.sats0000644000175000017500000000745413431250607023551 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A functional map implementation based on ordered lists ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: May 18, 2011 ** *) (* ****** ****** *) // // HX-2014-01-15: Porting to ATS2 // (* ****** ****** *) // abstype mset_t0ype_type (a:t@ype+) = ptr // typedef mset(a:t@ype) = mset_t0ype_type(a) // (* ****** ****** *) // typedef cmp(a:t@ype) = (a, a) - int // fun{a:t@ype} compare_elt_elt(x1: a, x2: a, cmp: cmp(a)):<> int // (* ****** ****** *) // fun{} funmset_make_nil {a:t@ype} ((*void*)):<> mset (a) // fun{a:t@ype} funmset_make_sing(x: a): mset (a) fun{a:t@ype} funmset_make_pair (x1: a, x2: a, cmp: cmp a): mset (a) // fun{a:t@ype} funmset_make_list(xs: List a, cmp: cmp a): mset (a) // (* ****** ****** *) fun{a:t@ype} funmset_size(xs: mset(INV(a))):<> Size (* ****** ****** *) fun{a:t@ype} funmset_get_ntime (xs: mset(INV(a)), x0: a, cmp: cmp a):<> intGte(0) // end of [funmset_get_ntime] (* ****** ****** *) // fun{a:t@ype} funmset_is_member (xs: mset(INV(a)), x0: a, cmp: cmp a):<> bool fun{a:t@ype} funmset_isnot_member (xs: mset(INV(a)), x0: a, cmp: cmp a):<> bool // (* ****** ****** *) fun{a:t@ype} funmset_is_equal ( xs1: mset(INV(a)), mxs2: mset(a), cmp: cmp(a) ) :<> bool // end of [funmset_is_equal] (* ****** ****** *) fun{a:t@ype} funmset_is_subset ( xs1: mset(INV(a)), xs2: mset(a), cmp: cmp(a) ) :<> bool // end of [funmset_is_subset] (* ****** ****** *) (* ** HX: ** multiset ordering ** induced by the ordering on elements *) fun{a:t@ype} funmset_compare ( xs1: mset(INV(a)), xs2: mset(a), cmp: cmp (a) ) :<> int // end of [funmset_compare] (* ****** ****** *) fun{a:t@ype} funmset_insert ( xs: &mset(INV(a)) >> _, x0: a, cmp: cmp(a) ) : void // end of [funmset_insert] fun{a:t@ype} funmset_remove ( xs: &mset(INV(a)) >> _, x0: a, cmp: cmp(a) ) : bool(*removed/not: true/false*) // end of [funmset_remove] (* ****** ****** *) // fun{a:t@ype} funmset_union ( xs1: mset(INV(a)), xs2: mset(a), cmp: cmp(a) ) : mset(a) // end of [funmset_union] // fun{a:t@ype} funmset_intersect ( xs1: mset(INV(a)), xs2: mset(a), cmp: cmp(a) ) : mset(a) // end of [funmset_intersect] // (* ****** ****** *) // fun{a:t@ype} funmset_listize (xs: mset(INV(a))): List0_vt(a) // no repeats // fun{a:t@ype} // if an element occurs n times, then it is repeated funmset_mlistize (xs: mset(INV(a))): List0_vt(a) // n times in the output // (* ****** ****** *) (* end of [funmset_listord.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/SATS/funheap_braun.sats0000644000175000017500000000607613431250607023144 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A functional heap implementation based on Braun trees ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: April, 2010 // based on a version done in November, 2008 ** *) (* ****** ****** *) // // HX-2011-11-13: // This style of heap is VERY inefficient! Please use funheap_binomial // instead, which is about 20 times faster for a heap of the size 1M. // (* ****** ****** *) // // HX-2014-01-15: // Porting to ATS2 from ATS1 // (* ****** ****** *) // abstype heap_t0ype_type (a:t@ype+) = ptr // typedef heap(a:t0p) = heap_t0ype_type (a) // (* ****** ****** *) typedef cmp (a:t0p) = (a, a) - int (* ****** ****** *) fun{a:t0p} compare_elt_elt (x1: a, x2: a, cmp: cmp a):<> int // end of [compare_elt_elt] (* ****** ****** *) fun{} funheap_make_nil{a:t0p} ():<> heap (a) (* ****** ****** *) // fun{a:t0p} funheap_size (heap(INV(a))):<> Size // (* ****** ****** *) // // HX: primarily for statistics // fun{a:t0p} funheap_height (hp: heap(INV(a))):<> intGte(0) // (* ****** ****** *) fun{a:t0p} funheap_insert (hp: &heap(INV(a)) >> _, x: a, cmp: cmp a): void (* ****** ****** *) fun{a:t@ype} funheap_getmin ( hp: heap (INV(a)), cmp: cmp a, res: &a? >> opt (a, b) ) : #[b:bool] bool b // end of [funheap_getmin] fun{a:t0p} funheap_getmin_opt (hp: heap(INV(a)), cmp: cmp a): Option_vt (a) // end of [funheap_getmin_opt] (* ****** ****** *) fun{a:t0p} funheap_delmin ( hp: &heap(INV(a)) >> _, cmp: cmp a, res: &a? >> opt (a, b) ) : #[b:bool] bool b // end of [funheap_delim] fun{a:t0p} funheap_delmin_opt (hp: &heap(INV(a)) >> _, cmp: cmp a): Option_vt (a) // end of [funheap_delmin_opt] (* ****** ****** *) (* end of [funheap_braun.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/SATS/.keeper0000644000175000017500000000000013431250607020664 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS1/SATS/linset_listord.sats0000644000175000017500000001174713431250607023366 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** ** A linear map implementation based on ordered lists ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: February 17, 2012 ** *) (* ****** ****** *) // // HX-2014-01-17: // Porting to ATS2 from ATS1 // (* ****** ****** *) absvtype set_t0ype_vtype (a:t@ype+) = ptr vtypedef set (a:t0p) = set_t0ype_vtype (a) (* ****** ****** *) typedef cmp (a:t0p) = (a, a) - int (* ****** ****** *) fun{a:t0p} compare_elt_elt (x1: a, x2: a, cmp: cmp (a)):<> int // end of [compare_elt_elt] (* ****** ****** *) fun{} linset_nil{a:t0p} ():<> set (a) fun{} linset_make_nil{a:t0p} ():<> set (a) (* ****** ****** *) fun{a:t0p} linset_make_sing (x: a): set (a) // singleton set (* ****** ****** *) fun{ } linset_is_empty {a:t0p} (xs: !set(INV(a))):<> bool fun{ } linset_isnot_empty {a:t0p} (xs: !set(INV(a))):<> bool (* ****** ****** *) // // HX: the time complexity of this function is O(n) // fun{a:t0p} linset_size (xs: !set(INV(a))):<> sizeGte(0) // (* ****** ****** *) fun{a:t0p} linset_is_member (xs: !set(INV(a)), x0: a, cmp: cmp a):<> bool fun{a:t0p} linset_isnot_member (xs: !set(INV(a)), x0: a, cmp: cmp a):<> bool (* ****** ****** *) fun{a:t0p} linset_is_subset // xs2 contains xs1 (xs1: !set(INV(a)), xs2: !set(a), cmp: cmp a):<> bool // end of [linset_is_subset] fun{a:t0p} linset_is_supset // xs1 contains xs2 (xs1: !set(INV(a)), xs2: !set(a), cmp: cmp a):<> bool // end of [linset_is_supset] fun{a:t0p} linset_is_equal (xs1: !set(INV(a)), xs2: !set(a), cmp: cmp a):<> bool // end of [linset_is_equal] (* ****** ****** *) // fun{a:t0p} linset_copy (!set(INV(a))): set (a) // fun{a:t0p} linset_free (xs: set(INV(a))): void // (* ****** ****** *) fun{a:t0p} linset_insert (xs: &set(INV(a)) >> _, x0: a, cmp: cmp a) : bool // end of [linset_insert] (* ****** ****** *) fun{a:t0p} linset_remove (xs: &set(INV(a)) >> _, x0: a, cmp: cmp (a)): bool // end of [linset_remove] (* ****** ****** *) // // HX: choosing an element in an unspecified manner // fun{a:t0p} linset_choose ( xs: !set(INV(a)), x: &a? >> opt (a, b) ) : #[b:bool] bool (b) // end of [linset_choose] fun{a:t0p} linset_choose_opt (xs: !set(INV(a))): Option_vt(a) (* ****** ****** *) // // HX: removing an element chosen in an unspecified manner // fun{a:t0p} linset_chooseout ( xs: &set(INV(a)) >> _, x: &a? >> opt (a, b) ) : #[b:bool] bool (b) // end of [linset_chooseout] // fun{a:t0p} linset_chooseout_opt (xs: &set(INV(a)) >> _): Option_vt(a) // (* ****** ****** *) fun{a:t0p} linset_union (xs1: set(INV(a)), xs2: set(a), cmp: cmp a): set (a) (* fun{a:t0p} linset_intersect (xs1: set(INV(a)), xs2: set(a), cmp: cmp a): set (a) fun{a:t0p} linset_diff (xs1: set(INV(a)), xs2: set(a), cmp: cmp a): set (a) fun{a:t0p} linset_symdiff (xs1: set(INV(a)), xs2: set(a), cmp: cmp a): set (a) *) (* ****** ****** *) fun{a:t0p} linset_listize (xs: set(INV(a))): List0_vt (a) fun{a:t0p} linset_listize1 (xs: !set(INV(a))): List0_vt (a) (* ****** ****** *) fun{a:t0p} fprint_linset_sep (out: FILEref, xs: !set(INV(a)), sep: string): void // end of [fprint_linset_sep] (* ****** ****** *) fun{a:t0p} linset_foreach_funenv {v:view}{vt:viewtype} ( pf: !v | xs: !set(INV(a)), f: (!v | a, !vt) -> void, env: !vt ) : void // end of [linset_foreach_funenv] (* ****** ****** *) fun{a:t0p} linset_foreach_fun ( xs: !set(INV(a)), f: (a) - void ) : void // end of [linset_foreach_fun] fun{a:t0p} linset_foreach_cloref ( xs: !set(INV(a)), f: (a) - void ) : void // end of [linset_foreach_cloref] (* ****** ****** *) (* end of [linset_listord.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS1/SATS/funheap_binomial.sats0000644000175000017500000000527413431250607023626 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (* Hongwei Xi *) (* *) (***********************************************************************) (* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2011 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2014-01-15: // Porting to ATS2 from ATS1 // (* ****** ****** *) // abstype heap_t0ype_type (a:t@ype+) = ptr // typedef heap(a:t0p) = heap_t0ype_type(a) // (* ****** ****** *) // typedef cmp (a:t0p) = (a, a) - int // fun{a:t0p} compare_elt_elt (x1: a, x2: a, cmp: cmp a):<> int // (* ****** ****** *) fun{} funheap_make_nil{a:t0p} ():<> heap (a) (* ****** ****** *) fun{a:t0p} funheap_size (hp: heap(INV(a))):<> Size (* ****** ****** *) fun funheap_is_empty{a:t0p} (hp: heap(INV(a))):<> bool fun funheap_isnot_empty{a:t0p} (hp: heap(INV(a))):<> bool (* ****** ****** *) fun{a:t0p} funheap_insert (hp: &heap(INV(a)) >> _, x: a, cmp: cmp a): void // end of [funheap_insert] (* ****** ****** *) fun{a:t0p} funheap_getmin ( hp: heap(INV(a)), cmp: cmp a, res: &a? >> opt (a, b) ) : #[b:bool] bool b // end of [funheap_getmin] (* ****** ****** *) fun{a:t0p} funheap_delmin ( hp: &heap(INV(a)) >> _, cmp: cmp a, res: &a? >> opt (a, b) ) : #[b:bool] bool b // end of [funheap_delmin] fun{a:t0p} funheap_delmin_opt (hp: &heap(INV(a)) >> _, cmp: cmp a): Option_vt (a) // end of [funheap_delmin_opt] (* ****** ****** *) fun{a:t0p} funheap_merge (hp1: heap(INV(a)), hp2: heap (a), cmp: cmp a):<> heap (a) // end of [funheap_merge] (* ****** ****** *) (* end of [funheap_binomial.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/0000755000175000017500000000000013431250607017121 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/DivideConquer/0000755000175000017500000000000013431250607021662 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/DivideConquer/DATS/0000755000175000017500000000000013431250607022415 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/DivideConquer/DATS/DivideConquer.dats0000644000175000017500000000731013431250607026034 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: February, 2017 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats\ .BUCS320.DivideConquer" // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/list0.sats" // (* ****** ****** *) // abst@ype input_t0ype abst@ype output_t0ype // (* ****** ****** *) // typedef input = input_t0ype typedef output = output_t0ype // (* ****** ****** *) // extern fun{} DivideConquer$solve(input): output and DivideConquer$solve_rec(input): output // extern fun{} DivideConquer$solve$eval : (input) -> output // (* ****** ****** *) // extern fun{} DivideConquer$base_test(x0: input): bool // extern fun{} DivideConquer$base_solve(x0: input): output // (* ****** ****** *) // extern fun{} DivideConquer$divide(x0: input): list0(input) // (* ****** ****** *) // extern fun{} DivideConquer$conquer (x0: input, xs: list0(input)): output // extern fun{} DivideConquer$conquer$combine (x0: input, rs: list0(output)): output // (* ****** ****** *) // extern fun{} DivideConquer$solve$memo_get : (input) -> Option_vt(output) extern fun{} DivideConquer$solve$eval$memo_set : (input, output) -> void // (* ****** ****** *) implement {}(*tmp*) DivideConquer$solve (x0) = let // val opt = DivideConquer$solve$memo_get<>(x0) // in case+ opt of | ~Some_vt(r0) => r0 | ~None_vt((*void*)) => DivideConquer$solve$eval<>(x0) end // end of [DivideConquer$solve] (* ****** ****** *) // implement {}(*tmp*) DivideConquer$solve_rec (x0) = DivideConquer$solve<>(x0) // (* ****** ****** *) implement {}(*tmp*) DivideConquer$solve$eval (x0) = let // val test = DivideConquer$base_test<>(x0) // in (* in-of-let *) // if (test) then DivideConquer$base_solve<>(x0) else r0 where { val xs = DivideConquer$divide<>(x0) val r0 = DivideConquer$conquer<>(x0, xs) val () = DivideConquer$solve$eval$memo_set<>(x0, r0) } (* end of [else] *) // end // end of [DivideConquer$solve$eval] (* ****** ****** *) // implement {}(*tmp*) DivideConquer$solve$memo_get (x0) = None_vt() // implement {}(*tmp*) DivideConquer$solve$eval$memo_set (x0, r0) = ((*void*)) // (* ****** ****** *) // implement {}(*tmp*) DivideConquer$conquer (x0, xs) = r0 where { // val rs = list0_map ( xs , lam(x) => DivideConquer$solve_rec<>(x) ) (* end of [val] *) // val r0 = DivideConquer$conquer$combine<>(x0, rs) // } (* end of [DivideConquer$conquer] *) // (* ****** ****** *) (* end of [DivideConquer.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/DivideConquer/DATS/DivideConquer_memo.dats0000644000175000017500000000457713431250607027065 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: February, 2017 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats\ .BUCS320.DivideConquer" // (* ****** ****** *) #staload "./DivideConquer.dats" (* ****** ****** *) #staload "libats/ML/SATS/hashtblref.sats" (* ****** ****** *) // extern fun{} DivideConquer_memo$table_get ((*void*)): hashtbl(input, output) extern fun{} DivideConquer_memo$table_set (tbl: hashtbl(input, output)): void // (* ****** ****** *) // implement DivideConquer$solve$memo_get<> (x0) = opt where { // val theTable = DivideConquer_memo$table_get<>() // val opt = hashtbl_search(theTable, x0) // val ((*void*)) = DivideConquer_memo$table_set<>(theTable) // } (* DivideConquer$solve$memo_get *) (* ****** ****** *) // implement DivideConquer$solve$eval$memo_set<> (x0, r0) = () where { // val theTable = DivideConquer_memo$table_get<>() // val () = hashtbl_insert_any(theTable, x0, r0) // val ((*void*)) = DivideConquer_memo$table_set<>(theTable) // } (* DivideConquer$solve$memo_set *) // (* ****** ****** *) (* end of [DivideConquer_memo.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/DivideConquer/DATS/DivideConquer_cont.dats0000644000175000017500000000742313431250607027064 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: February, 2017 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // // HX: // DivideConquer_cont: // This one is of CPS-style // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats\ .BUCS320.DivideConquer" // (* ****** ****** *) // #staload UNSAFE = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/list0.sats" // (* ****** ****** *) #staload "./DivideConquer.dats" (* ****** ****** *) // extern fun{} DivideConquer_cont$solve (x0: input, k0: output - void): void // extern fun{} DivideConquer_cont$solve$eval (x0: input, k0: output - void): void // (* ****** ****** *) // extern fun{} DivideConquer_cont$conquer ( x0: input, xs: list0(input), k0: list0(output) - void ) : void // end of [DivideConquer_cont$conquer] // (* ****** ****** *) implement {}(*tmp*) DivideConquer$solve (x0) = let // var res: output // val ((*void*)) = DivideConquer_cont$solve<> ( x0 , lam(r0) => $UNSAFE.ptr0_set (addr@res, r0) // end of [$UNSAFE.ptr0_set] ) (* end of [val] *) // in $UNSAFE.ptr0_get(addr@res) end // end of [DivideConquer$solve] (* ****** ****** *) implement {}(*tmp*) DivideConquer_cont$solve (x0, k0) = let // val opt = DivideConquer$solve$memo_get<>(x0) // in case+ opt of | ~Some_vt(r0) => k0(r0) | ~None_vt((*void*)) => DivideConquer_cont$solve$eval<>(x0, k0) end // end of [DivideConquer_cont$solve] (* ****** ****** *) implement {}(*tmp*) DivideConquer_cont$solve$eval (x0, k0) = let // val test = DivideConquer$base_test<>(x0) // in (* in-of-let *) // if (test) then k0(DivideConquer$base_solve(x0)) else () where { val xs = DivideConquer$divide<>(x0) val () = DivideConquer_cont$conquer<> ( x0, xs , lam(rs) => k0(r0) where { val r0 = DivideConquer$conquer$combine<>(x0, rs) val () = DivideConquer$solve$eval$memo_set<>(x0, r0) } // end of [where] // end of [lam] ) // end of [val] } (* end of [else] *) // end // end of [DivideConquer_cont$solve] (* ****** ****** *) // implement {}(*tmp*) DivideConquer_cont$conquer (x0, xs, k0) = let // fun conquer: $d2ctype ( DivideConquer_cont$conquer<> ) = lam(x0, xs, k0) => ( case+ xs of | list0_nil() => k0(list0_nil()) | list0_cons(x, xs) => DivideConquer_cont$solve<> ( x , lam(r) => conquer(x0, xs, lam(rs) => k0(list0_cons(r, rs))) ) ) in conquer(x0, xs, k0) end (* end of [DivideConquer_cont$conquer] *) // (* ****** ****** *) (* end of [DivideConquer_cont.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/DivideConquer/DATS/.keeper0000644000175000017500000000000013431250607023657 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/DivideConquer/mylibies.hats0000644000175000017500000000077213431250607024366 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-02-01: // // Generic Divide-Conquer // (* ****** ****** *) // #staload DivideConquer = "./DATS/DivideConquer.dats" // (* ****** ****** *) // #ifdef DIVIDECONQUER_MEMO #staload DivideConquer_memo = "./DATS/DivideConquer_memo.dats" #endif // #ifdef(DIVIDECONQUER_MEMO) // (* ****** ****** *) // #ifdef DIVIDECONQUER_CONT #staload DivideConquer_cont = "./DATS/DivideConquer_cont.dats" #endif // #ifdef(DIVIDECONQUER_CONT) // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/DivideConquer/.keeper0000644000175000017500000000000013431250607023124 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/parcomb/0000755000175000017500000000000013431250607020544 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/parcomb/DATS/0000755000175000017500000000000013431250607021277 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/parcomb/DATS/parcomb.dats0000644000175000017500000002224713431250607023606 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2016 *) (* ****** ****** *) // typedef cfun0 (r:vt@ype) = () - r typedef cfun1 (a:t@ype, r:vt@ype) = (a) - r // typedef cfun2 ( a1:t@ype , a2:t@ype, r:vt@ype ) = (a1, a2) - r typedef cfun3 ( a1:t@ype , a2:t@ype , a3: t@ype, r:vt@ype ) = (a1, a2, a3) - r typedef cfun4 ( a1:t@ype , a2:t@ype , a3:t@ype , a4: t@ype, r:vt@ype ) = (a1, a2, a3, a4) - r // stadef cfun = cfun0 stadef cfun = cfun1 stadef cfun = cfun2 stadef cfun = cfun3 stadef cfun = cfun4 // (* ****** ****** *) // typedef parinp(a:t@ype) = stream(a) // (* ****** ****** *) // datatype parout (a:t@ype, res:t@ype) = | PAROUT of (Option(res), parinp(a)) // (* ****** ****** *) // typedef parser( a:t@ype, res:t@ype ) = parinp(a) - parout(a, res) // (* ****** ****** *) // // HX-2016-12: interface // (* ****** ****** *) // extern fun {a:t@ype} {t:t@ype} parser_fail(): parser(a, t) // extern fun {a:t@ype} {t:t@ype} parser_succeed(x0: t): parser(a, t) // (* ****** ****** *) // extern fun {a:t@ype} parser_anyone((*void*)): parser(a, a) // (* ****** ****** *) // extern fun {a:t@ype} parser_satisfy (test: cfun(a, bool)): parser(a, a) // (* ****** ****** *) // extern fun {a:t@ype} {t:t@ype} {u:t@ype} parser_map (parser(a, t), cfun(t, u)): parser(a, u) // extern fun {a:t@ype} {t1,t2:t@ype} {u:t@ype} parser_map2 ( parser(a, t1), parser(a, t2), cfun(t1, t2, u) ) : parser(a, u) // end of [parser_map2] // extern fun {a:t@ype} {t1,t2,t3:t@ype} {u:t@ype} parser_map3 ( parser(a, t1), parser(a, t2), parser(a, t3), cfun(t1, t2, t3, u) ) : parser(a, u) // end of [parser_map3] // (* ****** ****** *) // extern fun {a:t@ype} {t1,t2:t@ype} parser_join2 ( parser(a, t1) , parser(a, t2) ) : parser(a, @(t1, t2)) extern fun {a:t@ype} {t1,t2,t3:t@ype} parser_join3 ( parser(a, t1) , parser(a, t2) , parser(a, t3) ) : parser(a, @(t1, t2, t3)) // (* ****** ****** *) // extern fun {a:t@ype} {t1,t2:t@ype} parser_tup2_fst ( p1: parser(a, t1), p2: parser(a, t2) ) : parser(a, t1) // end-of-function extern fun {a:t@ype} {t1,t2:t@ype} parser_tup2_snd ( p1: parser(a, t1), p2: parser(a, t2) ) : parser(a, t2) // end-of-function // (* ****** ****** *) // extern fun {a:t@ype} {t:t@ype} parser_orelse ( p1: parser(a, t), p2: parser(a, t) ) : parser(a, t) = "mac#%" // end-of-function // (* ****** ****** *) // extern fun {a:t@ype} {t:t@ype} parser_repeat0 (parser(a, t)): parser(a, List0(t)) = "mac#%" // (* ****** ****** *) // extern fun {a:t@ype} {t:t@ype} parser_repeat1 (parser(a, t)): parser(a, List1(t)) = "mac#%" // (* ****** ****** *) // extern fun {a:t@ype} {t:t@ype} parser_lazy (lp: lazy(parser(a, t))): parser(a, t) = "mac#%" // (* ****** ****** *) // // HX-2016-12: implementation // (* ****** ****** *) // implement {a}{t} parser_fail() = lam(inp) => PAROUT(None(), inp) // (* ****** ****** *) // implement {a}{t} parser_succeed(x0) = lam(inp) => PAROUT(Some(x0), inp) // (* ****** ****** *) // implement {a}(*tmp*) parser_anyone ((*void*)) = lam(xs0) => ( case+ !xs0 of | stream_nil() => PAROUT(None{a}(), xs0) | stream_cons(x1, xs1) => PAROUT(Some{a}(x1), xs1) ) (* end of [parse_anyone] *) // (* ****** ****** *) // implement {a}(*tmp*) parser_satisfy (pred) = lam(xs0) => ( case+ !xs0 of | stream_nil() => PAROUT(None{a}(), xs0) | stream_cons(x1, xs1) => if pred(x1) then PAROUT(Some(x1), xs1) else PAROUT(None{a}(), xs0) // end of [if[ ) (* end of [parse_satisfy] *) // (* ****** ****** *) implement {a}{t}{u} parser_map ( p0, fopr ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p0(inp0) // in case+ opt of | None() => PAROUT(None{u}(), inp0) | Some(x) => PAROUT(Some(fopr(x)), inp1) end // end of [parser_map] (* ****** ****** *) implement {a}(*tmp*) {t1,t2}{u3} parser_map2 ( p1, p2, fopr ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{u3}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{u3}(), inp0) | Some(x2) => PAROUT(Some(fopr(x1, x2)), inp2) end // end of [Some] // end // end of [parser_map2] (* ****** ****** *) implement {a}(*tmp*) {t1,t2,t3}{u4} parser_map3 ( p1, p2, p3, fopr ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{u4}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{u4}(), inp0) | Some(x2) => let val+ PAROUT(opt, inp3) = p3(inp2) in case+ opt of | None() => PAROUT(None{u4}(), inp0) | Some(x3) => PAROUT(Some(fopr(x1, x2, x3)), inp3) end end // end of [Some] // end // end of [parser_map3] (* ****** ****** *) implement {a}{t1,t2} parser_join2 ( p1, p2 ) = lam(inp0) => let // typedef t12 = @(t1, t2) // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t12}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t12}(), inp0) | Some(x2) => PAROUT(Some(@(x1, x2)), inp2) end // end of [Some] // end // end of [parser_join2] (* ****** ****** *) implement {a}(*tmp*) {t1,t2,t3} parser_join3 ( p1, p2, p3 ) = lam(inp0) => let // typedef t123 = @(t1, t2, t3) // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t123}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t123}(), inp0) | Some(x2) => let val+ PAROUT(opt, inp3) = p3(inp2) in case+ opt of | None() => PAROUT(None{t123}(), inp0) | Some(x3) => PAROUT(Some{t123}(@(x1, x2, x3)), inp3) end // end of [Some] end // end of [Some] // end // end of [parser_join3] (* ****** ****** *) implement {a}{t1,t2} parser_tup2_fst ( p1, p2 ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t1}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t1}(), inp0) | Some(x2) => PAROUT(Some{t1}(x1), inp2) end // end of [Some] // end // end of [parser_tup2_fst] (* ****** ****** *) implement {a}{t1,t2} parser_tup2_snd ( p1, p2 ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t2}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t2}(), inp0) | Some(x2) => PAROUT(Some{t2}(x2), inp2) end // end of [Some] // end // end of [parser_tup2_snd] (* ****** ****** *) implement {a}{t}(*tmp*) parser_repeat0 (p0) = lam(inp0) => let // fun auxlst ( inp: parinp(a), xs: List0_vt(t) ) : parout(a, List0(t)) = let // val+PAROUT(opt, inp) = p0(inp) // in case+ opt of | None() => let val xs = list_vt_reverse(xs) in PAROUT(Some(list_vt2t(xs)), inp) end // end of [None_vt] | Some(x) => auxlst(inp, list_vt_cons(x, xs)) end // end of [auxlst] // in auxlst(inp0, list_vt_nil((*void*))) end // end of [parse_repeat0] (* ****** ****** *) implement {a}{t}(*tmp*) parser_repeat1 (p0) = lam(inp0) => let // typedef ts = List1(t) // val+ PAROUT(opt, inp1) = p0(inp0) // in // case+ opt of | None() => PAROUT(None{ts}(), inp0) // end of [None_vt] | Some(x) => let val+ PAROUT (opt, inp2) = parser_repeat0(p0)(inp1) val-Some(xs) = opt in PAROUT(Some(list_cons(x, xs)), inp2) end // end of [Some] // end // end of [parse_repeat1] (* ****** ****** *) // implement {a}{t}(*tmp*) parser_lazy(lp) = lam(inp0) => (!lp)(inp0) // (* ****** ****** *) (* end of [parcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/parcomb/DATS/.keeper0000644000175000017500000000000013431250607022541 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/parcomb/.keeper0000644000175000017500000000000013431250607022006 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/GraphSearch/0000755000175000017500000000000013431250607021310 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/GraphSearch/DATS/0000755000175000017500000000000013431250607022043 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/GraphSearch/DATS/GraphSearch_dfs.dats0000644000175000017500000000504013431250607025742 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: November, 2016 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats\ .BUCS320.GraphSearch_dfs" // (* ****** ****** *) // staload "./GraphSearch.dats" // (* ****** ****** *) // staload "libats/ML/SATS/slistref.sats" staload "libats/ML/SATS/stream_vt.sats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theSearchStore_get ((*void*)): slistref(node) // (* ****** ****** *) // implement theSearchStore_insert<> (nx) = let // val theStore = theSearchStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); slistref_insert(theStore, nx) ) // end (* end of [theSearchStore_insert] *) // implement theSearchStore_choose<> ((*void*)) = let // val theStore = theSearchStore_get() // in slistref_takeout_opt(theStore) end // end of [theSearchStore_choose] // (* ****** ****** *) // extern fun{} GraphSearch_dfs (store: slistref(node)): void // implement {}(*tmp*) GraphSearch_dfs(store) = GraphSearch<>() where { implement theSearchStore_get<>() = store } (* GraphSearch_dfs *) // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/GraphSearch/DATS/.keeper0000644000175000017500000000000013431250607023305 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/GraphSearch/DATS/GraphSearch_bfs.dats0000644000175000017500000000503513431250607025744 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: November, 2016 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats\ .BUCS320.GraphSearch_bfs" // (* ****** ****** *) // staload "./GraphSearch.dats" // (* ****** ****** *) // staload "libats/ML/SATS/qlistref.sats" staload "libats/ML/SATS/stream_vt.sats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theSearchStore_get ((*void*)): qlistref(node) // (* ****** ****** *) // implement theSearchStore_insert<> (nx) = let // val theStore = theSearchStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); qlistref_insert(theStore, nx) ) // end (* end of [theSearchStore_insert] *) // implement theSearchStore_choose<> ((*void*)) = let // val theStore = theSearchStore_get() // in qlistref_takeout_opt(theStore) end // end of [theSearchStore_choose] // (* ****** ****** *) // extern fun{} GraphSearch_bfs (store: qlistref(node)): void implement {}(*tmp*) GraphSearch_bfs(store) = GraphSearch<>() where { implement theSearchStore_get<>() = store } (* GraphSearch_bfs *) // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/GraphSearch/DATS/GraphSearch.dats0000644000175000017500000000515613431250607025116 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: November, 2016 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.BUCS320.GraphSearch" // (* ****** ****** *) abstype node_type = ptr absvtype nodelst_vtype = ptr (* ****** ****** *) typedef node = node_type vtypedef nodelst = nodelst_vtype (* ****** ****** *) // extern fun{} node_get_neighbors(nx: node): nodelst // (* ****** ****** *) // extern fun{} process_node(nx: node): bool // (* ****** ****** *) // extern fun{} theSearchStore_insert(node): void extern fun{} theSearchStore_insert_lst(nodelst): void // (* ****** ****** *) // extern fun{} theSearchStore_choose((*void*)): Option_vt(node) // (* ****** ****** *) // extern fun{} GraphSearch(): void // (* ****** ****** *) implement {}(*tmp*) GraphSearch ((*void*)) = let // fun search ( // argless ): void = let // val opt = theSearchStore_choose<>() // in // case+ opt of | ~None_vt() => () | ~Some_vt(nx) => let val cont = process_node<>(nx) in if cont then let val nxs = node_get_neighbors<>(nx) // end of [val] in theSearchStore_insert_lst<>(nxs); search((*void*)) end // end of [then] // end of [if] end (* end of [Some_vt] *) // end (* end of [search] *) // in search((*void*)) end // end of [GraphSearch] (* ****** ****** *) (* end of [GraphSearch.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/GraphSearch/mylibies.hats0000644000175000017500000000101013431250607023776 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-28: // // Generic Graph Search // Depth-first and Breath-first // (* ****** ****** *) // #staload GraphSearch = "./DATS/GraphSearch.dats" // (* ****** ****** *) // #ifdef // GRAPHSEARCH_BFS #staload GraphSearch_bfs = "./DATS/GraphSearch_bfs.dats" // #endif // #ifdef(GRAPHSEARCH_BFS) // (* ****** ****** *) // #ifdef GRAPHSEARCH_DFS // #staload GraphSearch_dfs = "./DATS/GraphSearch_dfs.dats" // #endif // #ifdef(GRAPHSEARCH_DFS) // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/BUCS320/GraphSearch/.keeper0000644000175000017500000000000013431250607022552 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/BUCS320/GraphSearch/mylibies.dats0000644000175000017500000000041013431250607023775 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-28: // // Generic Graph Search // Depth-first and Breath-first // (* ****** ****** *) // // It is kept to be empty intensionally // as this is a fully template-based package // (* ****** ****** *) (* end of [mylibies.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS2/0000755000175000017500000000000013431250607016651 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS2/DATS/0000755000175000017500000000000013431250607017404 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS2/DATS/.keeper0000644000175000017500000000000013431250607020646 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS2/DATS/fcntainer/0000755000175000017500000000000013431250607021355 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS2/DATS/fcntainer/main.dats0000644000175000017500000002562513431250607023170 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: December, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) typedef N0 = intGte(0) (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // #staload "libats/ML/SATS/atspre.sats" #staload "libats/ATS2/SATS/fcntainer.sats" // (* ****** ****** *) implement {xs}{x0} forall(xs) = loop(xs) where { // val xs = streamize_vt(xs) // fun loop (xs: stream_vt(x0)): bool = ( case+ !xs of | ~stream_vt_nil() => true | ~stream_vt_cons(x0, xs) => ( if forall$test(x0) then loop(xs) else (~xs; false) ) ) // } (* end of [forall] *) (* ****** ****** *) implement {xs}{x0} iforall(xs) = let // var i0: Nat = 0 val p0 = addr@(i0) // implement forall$test(x0) = iforall$test(i0, x0) where { val i0 = $UN.ptr0_get(p0) val () = $UN.ptr0_set(p0, i0+1) } // in forall(xs) end // end of [iforall] implement {xs}{x0} iforall_cloref (xs, ftest) = let // implement iforall$test (i0, x0) = ftest(i0, x0) // in $effmask_all(iforall(xs)) end // end of [iforall_cloref] (* ****** ****** *) implement {xs}{x0} exists(xs) = let // implement forall$test(x0) = not(exists$test(x0)) // in // not(forall(xs)) // end // end of [exists] (* ****** ****** *) implement {xs}{x0} rexists(xs) = let // implement rforall$test(x0) = not(rexists$test(x0)) // in // not(rforall(xs)) // end // end of [rexists] (* ****** ****** *) implement {xs}{x0} foreach(xs) = let // implement forall$test(x0) = let val () = foreach$work(x0) in true end // end of [forall$test] // in ignoret(forall(xs)) end // end of [foreach] implement {xs}{x0} foreach_cloref (xs, fwork) = let // implement foreach$work (x0) = fwork(x0) // in $effmask_all(foreach(xs)) end // end of [foreach_cloref] (* ****** ****** *) implement {xs}{x0} iforeach(xs) = let // var i0: N0 = 0 val p0 = addr@(i0) // implement foreach$work(x0) = iforeach$work(i0, x0) where { val i0 = $UN.ptr0_get(p0) val () = $UN.ptr0_set(p0, i0+1) } // in foreach(xs) end // end of [iforeach] implement {xs}{x0} iforeach_cloref (xs, fwork) = let // implement iforeach$work (i0, x0) = fwork(i0, x0) // in $effmask_all(iforeach(xs)) end // end of [iforeach_cloref] (* ****** ****** *) implement {xs}{x0} rforeach(xs) = let // implement rforall$test(x0) = let val () = rforeach$work(x0) in true end // end of [rforall$test] // in ignoret(rforall(xs)) end // end of [rforeach] implement {xs}{x0} rforeach_cloref (xs, fwork) = let // implement rforeach$work(x0) = fwork(x0) // in $effmask_all(rforeach(xs)) end // end of [rforeach_cloref] (* ****** ****** *) implement {xs}{r0}{x0} foldleft (xs, ini) = let // var rr: r0 = ini val pr = addr@(rr) // implement foreach$work(x0) = { val rr = $UN.ptr0_get(pr) val rr = foldleft$fopr(rr, x0) val ((*void*)) = $UN.ptr0_set(pr, rr) } // end of [foreach$work] // in let val () = foreach(xs) in rr end end // end of [foldleft] implement {xs}{r0}{x0} foldleft_cloref (xs, ini, fopr) = let // implement foldleft$fopr (r0, x0) = fopr(r0, x0) // in $effmask_all(foldleft(xs, ini)) end // end of [foldleft_cloref] (* ****** ****** *) implement {xs}{r0}{x0} ifoldleft (xs, ini) = let // var ii: N0 = 0 var rr: r0 = ini val pi = addr@(ii) val pr = addr@(rr) // implement foreach$work(x0) = { // val i0 = $UN.ptr0_get(pi) val r0 = $UN.ptr0_get(pr) // val r0 = ifoldleft$fopr(r0, i0, x0) // val i0 = i0 + 1 val ((*void*)) = $UN.ptr0_set(pi, i0) val ((*void*)) = $UN.ptr0_set(pr, r0) // } // end of [foreach$work] // in let val () = foreach(xs) in rr end end // end of [foldleft] implement {xs}{r0}{x0} ifoldleft_cloref (xs, ini, fopr) = let // implement ifoldleft$fopr (r0, i0, x0) = fopr(r0, i0, x0) // in // $effmask_all(ifoldleft(xs, ini)) // end // end of [ifoldleft_cloref] (* ****** ****** *) implement {xs}{x0} listize(xs) = let // vtypedef res = List0_vt(x0) // var r0: res var r1: ptr = addr@r0 // val pp = addr@r1 // implement foreach$work(x0) = { // val nx0 = list_vt_cons{x0}{0}(x0, _) val+ list_vt_cons(x1, nx1) = nx0 // val pr = $UN.ptr0_get(pp) val () = $UN.ptr0_set(pp, addr@nx1) // val xs = $UN.castvwtp0{res} ((view@x1, view@nx1 | nx0)) // end of [castvwtp0] val () = $UN.ptr0_set(pr, xs) // } (* end of [foreach$work] *) // val () = (r0 := list_vt_nil()) // in // r0 where { val () = $effmask_all (foreach(xs)) val pr = $UN.ptr0_get(pp) val () = $UN.ptr0_set (pr, $UN.castvwtp0{res}(list_vt_nil())) // end of [val] } (* end of [where] *) end // end of [listize] (* ****** ****** *) implement {xs}{x0} rlistize(xs) = let // vtypedef res = List0_vt(x0) // var r0: res val pr: ptr = addr@r0 // implement foreach$work(x0) = { val xs = $UN.ptr0_get(pr) val () = $UN.ptr0_set (pr, list_vt_cons(x0, xs)) // end of [val] } // val () = r0 := list_vt_nil() // in $effmask_all ( let val () = foreach(xs) in r0 end // end of [let] ) end // end of [rlistize] (* ****** ****** *) // implement {xs}{x0} streamize(xs) = $effmask_all ( stream_vt2t(streamize_vt(xs)) ) (* end of [streamize] *) // (* ****** ****** *) implement {xs} {x0,y0} map_forall (xs, f0) = loop(xs) where { // val xs = streamize_vt(xs) // fun loop (xs: stream_vt(x0)): bool = ( case+ !xs of | ~stream_vt_nil() => true | ~stream_vt_cons(x0, xs) => ( if map_forall$test(f0(x0)) then loop(xs) else (~xs; false) ) ) // } (* end of [map_forall] *) (* ****** ****** *) implement {xs,ys} {x0,y0} zip_forall (xs, ys) = let // fun loop ( xs: stream_vt(x0) , ys: stream_vt(y0) ) : bool = ( case+ !xs of | ~stream_vt_nil() => ( let val () = ~ys in true end ) | ~stream_vt_cons(x0, xs) => ( case+ !ys of | ~stream_vt_nil() => ( let val () = ~xs in true end ) | ~stream_vt_cons(y0, ys) => ( if zip_forall$test(x0, y0) then loop(xs, ys) else (~xs; ~ys; false) ) ) ) (* end of [loop] *) // in // loop (streamize_vt(xs), streamize_vt(ys)) // end // end of [zip_forall] (* ****** ****** *) implement ( xs:t@ype , ys:t@ype , x0:t@ype , y0:t@ype) forall<(x0,y0)> (ZIP(xs, ys)) = let // implement zip_forall$test (x0, y0) = forall$test<(x0,y0)>((x0, y0)) // in zip_forall(xs, ys) end // end of [forall] (* ****** ****** *) implement {xs,ys} {x0,y0} zip_streamize_vt (xs, ys) = let // typedef xy0 = (x0, y0) // fun auxmain ( xs: stream_vt(x0) , ys: stream_vt(y0) ) : stream_vt(xy0) = $ldelay ( // case+ !xs of | ~stream_vt_nil () => (~ys; stream_vt_nil()) | ~stream_vt_cons (x0, xs) => ( case+ !ys of | ~stream_vt_nil () => (~xs; stream_vt_nil()) | ~stream_vt_cons (y0, ys) => let val xy0 = (x0, y0) in stream_vt_cons(xy0, auxmain(xs, ys)) end // end of [stream_vt_cons] ) (* end of [stream_vt_cons] *) , (lazy_vt_free(xs); lazy_vt_free(ys)) // ) (* end of [auxmain] *) // in // $effmask_all ( auxmain (streamize_vt(xs), streamize_vt(ys)) ) // $effmask_all // end // end of [zip_streamize_vt] (* ****** ****** *) // implement ( xs:t@ype , ys:t@ype , x0:t@ype , y0:t@ype) streamize_vt<(x0,y0)> (ZIP(xs, ys)) = ( zip_streamize_vt(xs, ys) ) // (* ****** ****** *) implement {xs,ys} {x0,y0} cross_forall (xs, ys) = let // fun loop1 ( x0: x0 , ys: !List0_vt(y0) ) : bool = ( case+ ys of | list_vt_nil() => true | list_vt_cons(y0, ys) => if cross_forall$test (x0, y0) then loop1(x0, ys) else false ) // fun loop2 ( xs: stream_vt(x0) , ys: (List0_vt(y0)) ) : bool = ( case+ !xs of | ~stream_vt_nil() => ( list_vt_free(ys); true ) | ~stream_vt_cons(x0, xs) => ( if loop1(x0, ys) then loop2(xs, ys) else ( ~(xs); list_vt_free(ys); false ) ) (* end of [stream_vt_cons] *) ) // in // loop2 (streamize_vt(xs), listize(ys)) // end // end of [cross_forall] (* ****** ****** *) implement ( xs:t@ype , ys:t@ype , x0:t@ype , y0:t@ype) forall<(x0,y0)> (CROSS(xs, ys)) = let // implement cross_forall$test (x0, y0) = forall$test<(x0,y0)>((x0, y0)) // in cross_forall(xs, ys) end // end of [forall] (* ****** ****** *) implement {xs,ys} {x0,y0} cross_streamize_vt (xs, ys) = let // typedef xy0 = (x0, y0) // fun concat ( ps: List_vt(xy0) , qs: stream_vt(xy0) ) : stream_vt(xy0) = $ldelay ( ( case+ ps of | ~list_vt_nil() => !(qs) | ~list_vt_cons(p, ps) => stream_vt_cons(p, concat(ps, qs)) ) , (list_vt_free(ps); lazy_vt_free(qs)) ) // fun auxelt ( x0: x0 , ys: !List0_vt(y0)): List0_vt(xy0) = ( list_vt_map_cloptr(ys, lam(y) => (x0, y)) ) // fun auxlst ( xs: stream_vt(x0) , ys: List0_vt(y0) ) : stream_vt(xy0) = $ldelay ( ( case+ !xs of | ~stream_vt_nil() => stream_vt_nil() where { val () = list_vt_free(ys) } (* end of [stream_vt_nil] *) | ~stream_vt_cons(x0, xs) => !(concat(xys0, xys1)) where { val xys0 = auxelt(x0, ys) val xys1 = auxlst(xs, ys) } (* end of [stream_vt_cons] *) ) , (lazy_vt_free(xs); list_vt_free(ys)) ) // in // $effmask_all (auxlst(streamize_vt(xs), listize(ys))) // end // end of [cross_streamize_vt] (* ****** ****** *) // implement ( xs:t@ype , ys:t@ype , x0:t@ype , y0:t@ype) streamize_vt<(x0,y0)> (CROSS(xs, ys)) = ( cross_streamize_vt(xs, ys) ) // (* ****** ****** *) (* end of [fcntainer_main.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS2/DATS/fcntainer/intrange.dats0000644000175000017500000000540013431250607024040 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: December, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // #staload FC = "libats/ATS2/SATS/fcntainer.sats" // (* ****** ****** *) // typedef intrange = $FC.intrange // (* ****** ****** *) // implement {}(*tmp*) $FC.intrange_make_int (x) = $FC.INTRANGE(0, x) implement {}(*tmp*) $FC.intrange_make_int2 (l, r) = $FC.INTRANGE(l, r) // (* ****** ****** *) implement $FC.streamize_vt (xs) = let // val $FC.INTRANGE (l, r) = xs // fun auxmain ( l: int , r: int ) : stream_vt(int) = $ldelay ( if (l < r) then ( stream_vt_cons(l, auxmain(l+1, r)) ) else stream_vt_nil() ) // in $effmask_all(auxmain(l, r)) end (* end of [$FC.streamize_vt] *) (* ****** ****** *) // implement $FC.forall (xs) = loop(l, r) where { // val $FC.INTRANGE (l, r) = xs // fun loop ( l: int , r: int): bool = ( if ( l < r ) then ( if $FC.forall$test(l) then loop(l+1, r) else false ) else true // end of [if] ) // } (* end of [$FC.forall] *) // (* ****** ****** *) // implement $FC.rforall (xs) = loop(l, r) where { // val $FC.INTRANGE (l, r) = xs // fun loop ( l: int , r: int): bool = ( if ( l < r ) then let // val r1 = r-1 // in if $FC.rforall$test(r1) then loop(l, r1) else false end else true // end of [if] ) // } (* end of [$FC.rforall] *) // (* ****** ****** *) (* end of [fcntainer_intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS2/DATS/fcntainer/list0.dats0000644000175000017500000000424713431250607023274 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: December, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // #staload FC = "libats/ATS2/SATS/fcntainer.sats" // (* ****** ****** *) implement (a:t@ype) $FC.forall (xs) = loop(xs) where { // fun loop(xs: list0(a)): bool = ( case+ xs of | list0_nil() => true | list0_cons(x, xs) => ( if $FC.forall$test(x) then loop(xs) else false ) (* list0_cons *) ) // } (* end of [$FC.forall] *) (* ****** ****** *) implement (a)(*tmp*) $FC.rforall (xs) = auxlst(xs) where { // fun auxlst(xs: list0(a)): bool = ( case+ xs of | list0_nil() => true | list0_cons(x, xs) => ( if auxlst(xs) then $FC.rforall$test(x) else false ) (* list0_cons *) ) // } (* end of [$FC.rforall] *) (* ****** ****** *) (* end of [fcntainer_list0.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS2/DATS/fcntainer/.keeper0000644000175000017500000000000013431250607022617 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS2/DATS/fcntainer/array0.dats0000644000175000017500000000500613431250607023431 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: December, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/array0.sats" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // #staload FC = "libats/ATS2/SATS/fcntainer.sats" // (* ****** ****** *) implement (a:t@ype) $FC.forall (xs) = loop(p0,i2sz(0)) where { // val (p0, n0) = array0_get_refsize{a}(xs) val p0 = arrayref2ptr(p0) // fun loop (p0: ptr, i: Size): bool = ( if i >= n0 then true else let // val x0 = $UN.ptr0_get(p0) // in // if $FC.forall$test(x0) then loop(ptr0_succ(p0), i+1) else false // end // end of [else] // ) (* end of [loop] *) // } (* end of [$FC.forall] *) (* ****** ****** *) implement (a:t@ype) $FC.rforall (xs) = loop(pz,i2sz(0)) where { // val (p0, n0) = array0_get_refsize{a}(xs) val p0 = arrayref2ptr(p0) val pz = ptr0_add_guint(p0, n0) // fun loop (pz: ptr, i: Size): bool = ( if i >= n0 then true else let // val pz = ptr0_pred(pz) val x0 = $UN.ptr0_get(pz) // in // if $FC.rforall$test(x0) then loop(pz, i+1) else false // end // end of [else] // ) (* end of [loop] *) // } (* end of [$FC.rforall] *) (* ****** ****** *) (* end of [fcntainer_array0.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS2/DATS/fcntainer/integer.dats0000644000175000017500000000467113431250607023677 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: December, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // #staload FC = "libats/ATS2/SATS/fcntainer.sats" // (* ****** ****** *) implement $FC.streamize_vt (xs) = let // fun auxmain ( l: int , r: int ) : stream_vt(int) = $ldelay ( if (l < r) then ( stream_vt_cons(l, auxmain(l+1, r)) ) else stream_vt_nil() ) // in $effmask_all(auxmain(0, xs(*r*))) end (* end of [$FC.streamize_vt] *) (* ****** ****** *) // implement $FC.forall (xs) = loop (0, xs(*r*)) where { // fun loop ( l: int , r: int): bool = ( if ( l < r ) then ( if $FC.forall$test(l) then loop(l+1, r) else false ) else true // end of [if] ) // } (* end of [$FC.forall] *) // (* ****** ****** *) // implement $FC.rforall (xs) = loop(xs(*r*)) where { // fun loop (r: int): bool = ( if ( r > 0 ) then ( let val r1 = r-1 in if $FC.rforall$test(r1) then loop(r1) else false end // end of [let] ) else true // end of [if] ) // } (* end of [$FC.rforall] *) // (* ****** ****** *) (* end of [fcntainer_integer.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS2/SATS/0000755000175000017500000000000013431250607017423 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ATS2/SATS/fcntainer.sats0000644000175000017500000001556013431250607022277 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: December, 2017 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) typedef cfun ( x0:t@ype , y0:t@ype ) = (x0) - y0 (* ****** ****** *) // datatype intrange = INTRANGE of (int, int) // (* ****** ****** *) // fun{} intrange_make_int(int): intrange fun{} intrange_make_int2(int, int): intrange // overload intrange with intrange_make_int overload intrange with intrange_make_int2 // (* ****** ****** *) datatype map( xs: t@ype , x0: t@ype , y0: t@ype ) = MAP of (xs, cfun(x0, y0)) (* ****** ****** *) datatype zip(xs:t@ype, ys:t@ype) = ZIP of (xs, ys) (* ****** ****** *) datatype cross(xs:t@ype, ys:t@ype) = CROSS of (xs, ys) (* ****** ****** *) (* ** ** HX-2012-02: ** The basic idea is to implement "everything" else in ** terms of [forall] so that they become available for ** a container-type whenever [forall] is made available ** for that type. ** ** HX-2018-01: ** It seems that [forall] is not enough and [streamize] ** is needed after all. ** *) (* ****** ****** *) // fun {xs:t0p} {x0:t0p} forall(xs: xs): bool fun {x0:t0p} forall$test(x0: x0): bool // (* ****** ****** *) // fun {xs:t0p} {x0:t0p} forall_fun{fe:eff} ( xs: xs , fopr: (x0) - bool): bool // end of [forall_fun] // fun {xs:t0p} {x0:t0p} forall_clo{fe:eff} ( xs: xs , fopr: &(x0) - bool): bool // end of [forall_clo] fun {xs:t0p} {x0:t0p} forall_vclo{v:view}{fe:eff} ( pf: !v | xs: xs , fopr: &(!v | x0) - bool): bool // end of [forall_vclo] // fun {xs:t0p} {x0:t0p} forall_cloptr{fe:eff} ( xs: xs , fopr: (x0) - bool): bool fun {xs:t0p} {x0:t0p} forall_vcloptr{v:view}{fe:eff} ( pf: !v | xs: xs , fopr: (!v | x0) - bool): bool // end of [forall_vcloptr] // fun {xs:t0p} {x0:t0p} forall_cloref{fe:eff} ( xs: xs , fopr: (x0) - bool): bool // end of [forall_cloref] // (* ****** ****** *) // fun {xs:t0p} {x0:t0p} rforall(xs: xs): bool fun {x0:t0p} rforall$test(x0: x0): bool // fun {xs:t0p} {x0:t0p} rforall_cloref{fe:eff} ( xs: xs , fopr: (x0) - bool): bool // end of [rforall_cloref] // (* ****** ****** *) // fun {xs:t0p} {x0:t0p} iforall(xs: xs): bool fun {x0:t0p} iforall$test(i: Nat, x0: x0): bool // fun {xs:t0p} {x0:t0p} iforall_cloref{fe:eff} ( xs: xs , fopr: (int, x0) - bool): bool // end of [iforall_cloref] // (* ****** ****** *) // fun {xs:t0p} {x0:t0p} exists(xs: xs): bool fun {x0:t0p} exists$test(x0: x0): bool // fun {xs:t0p} {x0:t0p} rexists(xs: xs): bool fun {x0:t0p} rexists$test(x0: x0): bool // fun {xs:t0p} {x0:t0p} rexists_cloref{fe:eff} ( xs: xs , fopr: (x0) - bool): bool // end of [rexists_cloref] // (* ****** ****** *) // fun {xs:t0p} {x0:t0p} foreach(xs: xs): void fun {x0:t0p} foreach$work(x0: x0): void // fun {xs:t0p} {x0:t0p} foreach_cloref{fe:eff} ( xs: xs , fwork: (x0) - void): void // end of [foreach_cloref] // (* ****** ****** *) // fun {xs:t0p} {x0:t0p} rforeach(xs: xs): void fun {x0:t0p} rforeach$work(x0: x0): void // fun {xs:t0p}{x0:t0p} rforeach_cloref{fe:eff} ( xs: xs , fwork: (x0) - void): void // end of [rforeach_cloref] // (* ****** ****** *) // fun {xs:t0p} {x0:t0p} iforeach(xs: xs): void fun {x0:t0p} iforeach$work(i: Nat, x0: x0): void // fun {xs:t0p} {x0:t0p} iforeach_cloref{fe:eff} ( xs: xs , fwork: (Nat, x0) - void): void // end of [foreach_cloref] // (* ****** ****** *) // fun {xs:t0p} {r0:t0p} {x0:t0p} foldleft(xs: xs, ini: r0): r0 fun {r0:t0p} {x0:t0p} foldleft$fopr(r0: r0, x0: x0): r0 // fun {xs:t0p} {r0:t0p} {x0:t0p} foldleft_cloref{fe:eff} ( xs: xs , ini: r0 , fopr: (r0, x0) - r0): r0 // end of [foldleft_cloref] // (* ****** ****** *) // fun {xs:t0p} {x0:t0p} {r0:t0p} foldright(xs: xs, snk: r0): r0 fun {x0:t0p} {r0:t0p} foldright$fopr(x0: x0, r0: r0): r0 fun {xs:t0p} {x0:t0p} {r0:t0p} foldright_cloref{fe:eff} ( xs: xs , snk: r0 , fopr: (x0, r0) - r0): r0 // end of [foldright_cloref] // (* ****** ****** *) // fun {xs:t0p} {r0:t0p} {x0:t0p} ifoldleft(xs: xs, ini: r0): r0 fun {r0:t0p} {x0:t0p} ifoldleft$fopr(r0: r0, i: Nat, x0: x0): r0 // fun {xs:t0p} {r0:t0p} {x0:t0p} ifoldleft_cloref{fe:eff} ( xs: xs , ini: r0 , fopr: (r0, Nat, x0) - r0): r0 // end of [ifoldleft_cloref] // (* ****** ****** *) // fun {r0:t0p} {xs:t0p} {x0:t0p} ifoldright(xs: xs, snk: r0): r0 fun {r0:t0p} {x0:t0p} ifoldright$fopr(r0: r0, i: Nat, x0: x0): r0 // fun {r0:t0p} {xs:t0p} {x0:t0p} ifoldright_cloref{fe:eff} ( xs: xs , snk: r0 , fopr: (r0, Nat, x0) - r0): r0 // end of [ifoldright_cloref] // (* ****** ****** *) // fun {xs:t0p} {x0:t0p} listize(xs: xs): List0_vt(x0) // fun {xs:t0p} {x0:t0p} rlistize(xs: xs): List0_vt(x0) // (* ****** ****** *) fun {xs:t0p} {x0:t0p} {y0:t0p} list_map(xs: xs): List0_vt(y0) fun {xs:t0p} {x0:t0p} {y0:t0p} rlist_map(xs: xs): List0_vt(y0) (* ****** ****** *) fun {xs:t0p} {x0:t0p} streamize(xs: xs):<> stream(x0) fun {xs:t0p} {x0:t0p} streamize_vt(xs: xs): stream_vt(x0) (* ****** ****** *) // fun {xs:t0p} {x0 ,y0:t0p} map_forall ( xs: xs , f0: cfun(x0, y0)): bool fun {y0:t0p} map_forall$test(y0: y0): bool // (* ****** ****** *) // fun {xs ,ys:t0p} {x0 ,y0:t0p} zip_forall(xs: xs, ys: ys): bool fun {x0,y0:t0p} zip_forall$test(x0: x0, y0: y0): bool // fun {xs ,ys:t0p} {x0 ,y0:t0p} zip_streamize_vt (xs: xs, ys: ys): stream_vt(@(x0, y0)) // (* ****** ****** *) // fun {xs ,ys:t0p} {x0 ,y0:t0p} cross_forall(xs: xs, ys: ys): bool fun {x0,y0:t0p} cross_forall$test(x0: x0, y0: y0): bool // fun {xs ,ys:t0p} {x0 ,y0:t0p} cross_streamize_vt (xs: xs, ys: ys): stream_vt(@(x0, y0)) // (* ****** ****** *) (* end of [fcntainer.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ATS2/SATS/.keeper0000644000175000017500000000000013431250607020665 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/0000755000175000017500000000000013431250607016450 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/HATS/0000755000175000017500000000000013431250607017207 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/HATS/myfunmap.hats0000644000175000017500000001154413431250607021731 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2015 *) (* ****** ****** *) // // HX-2015-03-15: // For quickly building a funmap interface // (* ****** ****** *) // (* typedef key = int/string typedef itm = int/string/... *) // (* ****** ****** *) // typedef mymap = map(key, itm) typedef mymap_modtype = map_modtype(key, itm) // (* ****** ****** *) // extern fun myfunmap_nil():<> mymap and myfunmap_make_nil():<> mymap // (* ****** ****** *) // extern fun myfunmap_is_nil(mymap):<> bool and myfunmap_isnot_nil(mymap):<> bool // overload .is_nil with myfunmap_is_nil overload .isnot_nil with myfunmap_isnot_nil // (* ****** ****** *) // extern fun myfunmap_size(mymap): size_t // overload .size with myfunmap_size // (* ****** ****** *) // extern fun myfunmap_search (mymap, key): Option_vt(itm) // overload .search with myfunmap_search // (* ****** ****** *) // extern fun myfunmap_insert (&mymap >> _, key, itm): Option_vt(itm) // overload .insert with myfunmap_insert // (* ****** ****** *) // extern fun myfunmap_remove (&mymap >> _, k: key): bool // overload .remove with myfunmap_remove // extern fun myfunmap_takeout (&mymap >> _, k: key): Option_vt(itm) // overload .takeout with myfunmap_takeout // (* ****** ****** *) // extern fun fprint_myfunmap (out: FILEref, mymap): void // overload fprint with fprint_myfunmap of 10 // (* ****** ****** *) // extern fun myfunmap_foreach_cloref ( mymap, fwork: (key, itm) - void ) : void // end-of-function // extern fun myfunmap_foreach_method (mymap) (fwork: (key, itm) - void): void // overload .foreach with myfunmap_foreach_method // (* ****** ****** *) // extern fun myfunmap_listize (map: mymap): list0 @(key, itm) // overload .listize with myfunmap_listize // (* ****** ****** *) // extern fun myfunmap_streamize (map: mymap): stream_vt @(key, itm) // overload .streamize with myfunmap_streamize // (* ****** ****** *) // extern fun myfunmap_make_module((*void*)): mymap_modtype // (* ****** ****** *) local // staload UN = "prelude/SATS/unsafe.sats" // staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/funmap.sats" // staload _ = "libats/DATS/qlist.dats" // staload _ = "libats/DATS/funmap_avltree.dats" // staload _(*anon*) = "libats/ML/DATS/funmap.dats" // in (* in-of-local *) // (* ****** ****** *) // implement myfunmap_nil ((*void*)) = funmap_nil{key,itm}() implement myfunmap_make_nil ((*void*)) = funmap_make_nil{key,itm}() // (* ****** ****** *) // implement myfunmap_size(map) = funmap_size(map) // implement myfunmap_search (map, k) = funmap_search(map, k) // implement myfunmap_insert (map, k, x) = funmap_insert(map, k, x) // (* ****** ****** *) // implement myfunmap_remove (map, k) = funmap_remove(map, k) implement myfunmap_takeout (map, k) = funmap_takeout(map, k) // implement fprint_myfunmap (out, map) = fprint_funmap(out, map) // (* ****** ****** *) // implement myfunmap_foreach_cloref (map, fwork) = funmap_foreach_cloref(map, fwork) implement myfunmap_foreach_method (map) = ( lam(fwork) => myfunmap_foreach_cloref(map, fwork) ) (* myfunmap_foreach_method *) // (* ****** ****** *) // implement myfunmap_listize (map) = funmap_listize(map) // (* ****** ****** *) // implement myfunmap_streamize (map) = funmap_streamize(map) // (* ****** ****** *) // // HX-2016-07-31: // creating a module(record): // implement myfunmap_make_module ((*void*)) = funmap_make_module() // (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [myfunmap.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/HATS/.keeper0000644000175000017500000000000013431250607020451 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/HATS/myfunset.hats0000644000175000017500000002303113431250607021741 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2015 *) (* ****** ****** *) // // HX-2015-03-14: // For quickly building a funset interface // (* ****** ****** *) // (* typedef elt = int //... *) // (* ****** ****** *) // typedef myset = set_type(elt) typedef myset_modtype = set_modtype(elt) // (* ****** ****** *) // extern fun myfunset_nil():<> myset and myfunset_make_nil():<> myset // (* ****** ****** *) // extern fun myfunset_sing(elt): myset and myfunset_make_sing(elt): myset // (* ****** ****** *) // extern fun myfunset_make_list0(list0(elt)): myset extern fun myfunset_make_list1(List0(elt)): myset // overload myfunset_make_list with myfunset_make_list0 overload myfunset_make_list with myfunset_make_list1 // (* ****** ****** *) // extern fun fprint_myfunset (out: FILEref, xs: myset): void // overload fprint with fprint_myfunset of 10 // (* ****** ****** *) // extern fun myfunset_size(myset):<> size_t // overload .size with myfunset_size // (* ****** ****** *) // extern fun myfunset_is_nil(myset):<> bool extern fun myfunset_isnot_nil(myset):<> bool // overload is_nil with myfunset_is_nil overload isnot_nil with myfunset_isnot_nil // overload .is_nil with myfunset_is_nil overload .isnot_nil with myfunset_isnot_nil // (* ****** ****** *) // extern fun myfunset_is_member(myset, elt): bool and myfunset_isnot_member(myset, elt): bool // overload is_member with myfunset_is_member overload isnot_member with myfunset_isnot_member // overload .is_member with myfunset_is_member overload .isnot_member with myfunset_isnot_member // (* ****** ****** *) // extern fun myfunset_insert (xs: &myset >> _, x0: elt): bool // overload .insert with myfunset_insert // (* ****** ****** *) // extern fun myfunset_remove (xs: &myset >> _, x0: elt): bool // overload .remove with myfunset_remove // (* ****** ****** *) // extern fun myfunset_union(myset, myset):<> myset and myfunset_union2(&myset >> _, myset): void // overload union with myfunset_union overload .union with myfunset_union2 // extern fun myfunset_intersect(myset, myset):<> myset and myfunset_intersect2(&myset >> _, myset): void // overload intersect with myfunset_intersect overload .intersect with myfunset_intersect2 // (* ****** ****** *) // extern fun myfunset_differ (xs: myset, ys: myset):<> myset and myfunset_differ2 (xs: &myset >> _, ys: myset): void // overload differ with myfunset_differ overload .differ with myfunset_differ2 // extern fun myfunset_symdiff (xs: myset, ys: myset):<> myset and myfunset_symdiff2 (xs: &myset >> _, ys: myset): void // overload symdiff with myfunset_symdiff overload .symdiff with myfunset_symdiff2 // (* ****** ****** *) // extern fun myfunset_equal(myset, myset):<> bool and myfunset_notequal(myset, myset):<> bool // overload = with myfunset_equal overload != with myfunset_notequal // (* ****** ****** *) // extern fun myfunset_compare(myset, myset):<> int // overload compare with myfunset_compare // (* ****** ****** *) // extern fun myfunset_is_subset(myset, myset):<> bool and myfunset_is_supset(myset, myset):<> bool // (* ****** ****** *) // overload is_subset with myfunset_is_subset overload is_supset with myfunset_is_supset // overload .is_subset with myfunset_is_subset overload .is_supset with myfunset_is_supset // (* ****** ****** *) // extern fun myfunset_foreach_cloref (myset, fwork: (elt) - void): void // extern fun myfunset_foreach_method (myset) (fwork: (elt) - void): void // overload .foreach with myfunset_foreach_method // (* ****** ****** *) // extern fun {res:t@ype} myfunset_foldleft_cloref ( xs: myset , ini: res, fopr: (res, elt) - res ) : res // end of [myfunset_foldleft_cloref] // extern fun {res:t@ype} myfunset_foldleft_method ( myset, TYPE(res) ) (ini: res, fopr: (res, elt) - res): res // overload .foldleft with myfunset_foldleft_method // (* ****** ****** *) // extern fun myfunset_tabulate_cloref {n:nat} ( n: int(n), fopr: (natLt(n)) - elt ) : myset // end of [myfunset_tabulate_cloref] // extern fun myfunset_tabulate_method {n:nat} (n: int(n)) (fopr: (natLt(n)) - elt): myset // overload .tabulate with myfunset_tabulate_method // (* ****** ****** *) // extern fun myfunset_listize(myset):<> list0(elt) // overload listize with myfunset_listize overload .listize with myfunset_listize // (* ****** ****** *) // extern fun myfunset_streamize(myset):<> stream_vt(elt) // overload streamize with myfunset_streamize overload .streamize with myfunset_streamize // (* ****** ****** *) // extern fun myfunset_make_module((*void*)): myset_modtype // (* ****** ****** *) local // staload UN = "prelude/SATS/unsafe.sats" // staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/funset.sats" // staload _ = "libats/DATS/funset_avltree.dats" // staload _(*anon*) = "libats/ML/DATS/funset.dats" // // in (* in-of-local *) (* ****** ****** *) // implement myfunset_nil() = funset_make_nil{elt}() implement myfunset_make_nil() = funset_make_nil{elt}() // implement myfunset_sing (x) = funset_make_sing(x) implement myfunset_make_sing (x) = funset_make_sing(x) // implement myfunset_make_list0 (xs) = funset_make_list(xs) implement myfunset_make_list1 (xs) = funset_make_list(g0ofg1_list(xs)) // (* ****** ****** *) // implement fprint_myfunset (out, xs) = fprint_funset(out, xs) // (* ****** ****** *) // implement myfunset_size(xs) = funset_size(xs) // (* ****** ****** *) implement myfunset_is_nil(xs) = funset_is_nil(xs) implement myfunset_isnot_nil(xs) = funset_isnot_nil(xs) (* ****** ****** *) // implement myfunset_is_member (xs, x0) = funset_is_member(xs, x0) implement myfunset_isnot_member (xs, x0) = funset_isnot_member(xs, x0) // (* ****** ****** *) // implement myfunset_insert (xs, x0) = funset_insert(xs, x0) // implement myfunset_remove (xs, x0) = funset_remove(xs, x0) // (* ****** ****** *) // implement myfunset_union (xs, ys) = funset_union(xs, ys) implement myfunset_union2 (xs, ys) = (xs := funset_union(xs, ys)) implement myfunset_intersect (xs, ys) = funset_intersect(xs, ys) implement myfunset_intersect2 (xs, ys) = (xs := funset_intersect(xs, ys)) // (* ****** ****** *) // implement myfunset_differ (xs, ys) = funset_differ(xs, ys) implement myfunset_differ2 (xs, ys) = (xs := funset_differ(xs, ys)) implement myfunset_symdiff (xs, ys) = funset_symdiff(xs, ys) implement myfunset_symdiff2 (xs, ys) = (xs := funset_symdiff(xs, ys)) // (* ****** ****** *) // implement myfunset_equal (xs, ys) = funset_equal(xs, ys) implement myfunset_notequal (xs, ys) = ~(funset_equal(xs, ys)) // implement myfunset_compare (xs, ys) = funset_compare(xs, ys) // (* ****** ****** *) // implement myfunset_is_subset (xs, ys) = funset_is_subset(xs, ys) implement myfunset_is_supset (xs, ys) = funset_is_supset(xs, ys) // (* ****** ****** *) // implement myfunset_foreach_cloref ( xs, fwork ) = funset_foreach_cloref(xs, fwork) // implement myfunset_foreach_method (xs) = ( lam (fwork) => myfunset_foreach_cloref(xs, fwork) ) (* myfunset_foreach_method *) // (* ****** ****** *) implement {tres}(*tmp*) myfunset_foldleft_cloref (xs0, ini, fopr) = res where { // var res: tres = ini // val p_res = addr@res // val ((*void*)) = myfunset_foreach_cloref ( xs0 , lam(x) => $UN.ptr0_set (p_res, fopr($UN.ptr0_get(p_res), x)) // end of [lam] ) (* end of [myfunset_foreach_cloref] *) // } (* end of [myfunset_foldleft_cloref] *) // (* ****** ****** *) // implement {tres}(*tmp*) myfunset_foldleft_method (xs0, tres) = ( lam (int, fopr) => myfunset_foldleft_cloref (xs0, int, fopr) ) (* end of [myfunset_foldleft_method] *) // (* ****** ****** *) // implement myfunset_tabulate_cloref (n, fopr) = funset_tabulate_cloref(n, fopr) // implement myfunset_tabulate_method(n) = lam(fopr) => myfunset_tabulate_cloref(n, fopr) // (* ****** ****** *) // implement myfunset_listize(xs) = funset_listize(xs) // (* ****** ****** *) // implement myfunset_streamize(xs) = funset_streamize(xs) // (* ****** ****** *) // // HX-2016-07-31: // creating a module(record): // implement myfunset_make_module() = funset_make_module() // (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [myfunset.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/HATS/myhashtblref.hats0000644000175000017500000001261113431250607022561 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2015 *) (* ****** ****** *) // // HX-2015-03-12: // For quickly building a hashmap interface // (* ****** ****** *) // (* typedef key = int/string typedef itm = int/string/... *) // (* ****** ****** *) // abstype myhashtbl_type = ptr // typedef myhashtbl = myhashtbl_type // (* ****** ****** *) // extern fun myhashtbl_make_nil (cap: intGte(1)): myhashtbl // (* ****** ****** *) // extern fun myhashtbl_get_size(myhashtbl): intGte(0) // overload .size with myhashtbl_get_size overload .get_size with myhashtbl_get_size // extern fun myhashtbl_get_capacity(myhashtbl): intGte(1) // overload .capacity with myhashtbl_get_capacity overload .get_capacity with myhashtbl_get_capacity // (* ****** ****** *) // extern fun myhashtbl_search (myhashtbl, key): Option_vt(itm) // overload .search with myhashtbl_search // extern fun myhashtbl_search_ref (tbl: myhashtbl, k: key): cPtr0(itm) // overload .search_ref with myhashtbl_search_ref // (* ****** ****** *) // extern fun myhashtbl_insert (myhashtbl, key, itm): Option_vt(itm) // overload .insert with myhashtbl_insert // extern fun myhashtbl_insert_any (tbl: myhashtbl, k: key, x: itm): void // overload .insert_any with myhashtbl_insert_any // (* ****** ****** *) // extern fun myhashtbl_remove (myhashtbl, k: key): bool // overload .remove with myhashtbl_remove // extern fun myhashtbl_takeout (myhashtbl, k: key): Option_vt(itm) // overload .takeout with myhashtbl_takeout // (* ****** ****** *) // extern fun myhashtbl_takeout_all (tbl: myhashtbl): List0 @(key, itm) // overload .takeout_all with myhashtbl_takeout_all // (* ****** ****** *) // extern fun fprint_myhashtbl (out: FILEref, myhashtbl): void // overload fprint with fprint_myhashtbl // (* ****** ****** *) // extern fun myhashtbl_foreach_cloref ( tbl: myhashtbl , fwork: (key, &(itm) >> _) - void ) : void // end-of-function // extern fun myhashtbl_foreach_method ( tbl: myhashtbl ) (fwork: (key, &(itm) >> _) - void): void // overload .foreach with myhashtbl_foreach_method // (* ****** ****** *) // extern fun myhashtbl_listize1 (tbl: myhashtbl): List0 @(key, itm) // overload .listize1 with myhashtbl_listize1 // (* ****** ****** *) local // staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/hashtblref.sats" // staload _(*anon*) = "libats/DATS/qlist.dats" // staload _(*anon*) = "libats/DATS/hashfun.dats" staload _(*anon*) = "libats/DATS/linmap_list.dats" staload _(*anon*) = "libats/DATS/hashtbl_chain.dats" staload _(*anon*) = "libats/ML/DATS/hashtblref.dats" // assume myhashtbl_type = hashtbl_type(key, itm) // in (* in-of-local *) // macdef sz2n(sz) = sz2i(g1ofg0(,(sz))) // implement myhashtbl_make_nil(cap) = hashtbl_make_nil(i2sz(cap)) // (* ****** ****** *) // implement myhashtbl_get_size (tbl) = sz2n(hashtbl_get_size<>(tbl)) implement myhashtbl_get_capacity (tbl) = sz2i(hashtbl_get_capacity<>(tbl)) // (* ****** ****** *) // implement myhashtbl_search (tbl, k) = hashtbl_search(tbl, k) implement myhashtbl_search_ref (tbl, k) = hashtbl_search_ref(tbl, k) // (* ****** ****** *) // implement myhashtbl_insert (tbl, k, x) = hashtbl_insert(tbl, k, x) implement myhashtbl_insert_any (tbl, k, x) = hashtbl_insert_any(tbl, k, x) // (* ****** ****** *) // implement myhashtbl_remove (tbl, k) = hashtbl_remove(tbl, k) implement myhashtbl_takeout (tbl, k) = hashtbl_takeout(tbl, k) // implement myhashtbl_takeout_all (tbl) = ( g1ofg0_list(hashtbl_takeout_all(tbl)) ) (* myhashtbl_takeout_all *) // (* ****** ****** *) // implement fprint_myhashtbl (out, tbl) = fprint_hashtbl(out, tbl) // (* ****** ****** *) // implement myhashtbl_foreach_cloref (tbl, fwork) = hashtbl_foreach_cloref(tbl, fwork) // implement myhashtbl_foreach_method(tbl) = ( lam(fwork) => myhashtbl_foreach_cloref(tbl, fwork) ) (* myhashtbl_foreach_method *) // (* ****** ****** *) // implement myhashtbl_listize1 (tbl) = g1ofg0_list(hashtbl_listize1(tbl)) // end // end of [local] (* ****** ****** *) (* end of [myhashtblref.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/0000755000175000017500000000000013431250607017203 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/qlistref.dats0000644000175000017500000000646313431250607021722 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: October, 2016 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/SATS/qlist.sats" // staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/qlistref.sats" // (* ****** ****** *) // #define qencode qlist_encode #define qdecode qlist_decode // extern castfn qlist_encode {a:vt0p}: qlist(a) -<> qlistref(a) extern castfn qlist_decode {a:vt0p}: qlistref(a) -<> qlist(a) // (* ****** ****** *) // implement {}(*tmp*) qlistref_make_nil {a}((*void*)) = qencode(qlist_make_nil()) // (* ****** ****** *) implement {a}(*tmp*) qlistref_is_nil (q0) = ans where { // val q0 = qdecode(q0) // val ans = qlist_is_nil(q0) // prval () = $UN.cast2void(q0) // } (* end of [qlistref_is_nil] *) implement {a}(*tmp*) qlistref_isnot_nil (q0) = ans where { // val q0 = qdecode(q0) // val ans = qlist_isnot_nil(q0) // prval () = $UN.cast2void(q0) // } (* end of [qlistref_is_cons] *) (* ****** ****** *) implement {a}(*tmp*) qlistref_length (q0) = n0 where { // val q0 = qdecode(q0) // val n0 = qlist_length(q0) // prval () = lemma_qlist_param(q0) // prval () = $UN.cast2void(q0) // } (* end of [qlistref_length] *) (* ****** ****** *) implement {a}(*tmp*) qlistref_insert (q0, x) = () where { // val q0 = qdecode(q0) // val () = $effmask_wrt (qlist_insert(q0, x)) // prval () = $UN.cast2void(q0) // } (* end of [qlistref_insert] *) (* ****** ****** *) // implement {a}(*tmp*) qlistref_takeout_opt (q0) = opt where { // val q0 = qdecode(q0) // val opt = $effmask_wrt (qlist_takeout_opt(q0)) // prval () = $UN.cast2void(q0) // } (* end of [qlistref_takeout_opt] *) // (* ****** ****** *) // implement {a}(*tmp*) qlistref_takeout_list (q0) = xs where { // val q0 = qdecode(q0) // val xs = $effmask_wrt (qlist_takeout_list(q0)) // prval () = $UN.cast2void(q0) // prval () = lemma_list_vt_param(xs) // } (* end of [qlistref_takeout_list] *) // (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/list0_vt.dats0000644000175000017500000000416513431250607021632 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: January, 2018 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/list0_vt.sats" (* ****** ****** *) implement {a}(*tmp*) list0_vt_free (xs) = ( list_vt_free(xs) ) where { val xs = $UN.castvwtp0(xs) } (* ****** ****** *) implement {a}(*tmp*) list0_vt_append (xs, ys) = let // val xs = $UN.castvwtp0(xs) val ys = $UN.castvwtp0(ys) // in $UN.castvwtp0 (list_vt_append(xs, ys)) end // end of [list0_vt_append] (* ****** ****** *) implement {a}(*tmp*) list0_vt_reverse (xs) = let // val xs = $UN.castvwtp0(xs) // in $UN.castvwtp0(list_vt_reverse(xs)) end // end of [list0_vt_append] (* ****** ****** *) (* end of [list0_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/gvalue.dats0000644000175000017500000002274013431250607021350 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: December, 2015 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/ML/SATS/basis.sats" // staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/array0.sats" staload "libats/ML/SATS/dynarray.sats" staload "libats/ML/SATS/hashtblref.sats" // staload "libats/ML/SATS/gvalue.sats" // (* ****** ****** *) // staload _ = "prelude/DATS/basics.dats" // staload _ = "prelude/DATS/integer.dats" staload _ = "prelude/DATS/pointer.dats" // staload _ = "prelude/DATS/integer_long.dats" staload _ = "prelude/DATS/integer_size.dats" // staload _ = "prelude/DATS/string.dats" // staload _ = "prelude/DATS/reference.dats" // staload _ = "prelude/DATS/list.dats" staload _ = "prelude/DATS/list_vt.dats" // staload _ = "prelude/DATS/option.dats" staload _ = "prelude/DATS/option_vt.dats" // staload _ = "prelude/DATS/array.dats" staload _ = "prelude/DATS/arrayptr.dats" staload _ = "prelude/DATS/arrayref.dats" // staload _ = "prelude/DATS/gorder.dats" staload _ = "prelude/DATS/gnumber.dats" // staload _(*UN*) = "prelude/DATS/unsafe.dats" // (* ****** ****** *) // staload _(*anon*) = "libats/DATS/qlist.dats" // staload _(*anon*) = "libats/DATS/dynarray.dats" // staload _(*anon*) = "libats/DATS/hashfun.dats" staload _(*anon*) = "libats/DATS/linmap_list.dats" staload _(*anon*) = "libats/DATS/hashtbl_chain.dats" // staload _(*anon*) = "libats/ML/DATS/list0.dats" staload _(*anon*) = "libats/ML/DATS/array0.dats" staload _(*anon*) = "libats/ML/DATS/dynarray.dats" staload _(*anon*) = "libats/ML/DATS/hashtblref.dats" // (* ****** ****** *) // implement print_gvalue(x0) = fprint_gvalue(stdout_ref, x0) implement prerr_gvalue(x0) = fprint_gvalue(stderr_ref, x0) // (* ****** ****** *) implement fprint_gvalue (out, gv0) = let (* // fprint_gvalue: enter *) in // case+ gv0 of // | GVnil() => fprint! (out, "GVnil(", ")") // | GVint(i) => fprint! (out, "GVint(", i, ")") // | GVptr(p) => fprint! (out, "GVptr(", p, ")") // | GVbool(b) => fprint! (out, "GVbool(", b, ")") | GVchar(c) => fprint! (out, "GVchar(", c, ")") // | GVfloat(x) => fprint! (out, "GVfloat(", x, ")") | GVstring(x) => fprint! (out, "GVstring(", x, ")") // | GVref(r) => fprint! (out, "GVref(", "...", ")") // | GVlist(xs) => fprint! (out, "GVlist(", xs, ")") // | GVarray(xs) => fprint! (out, "GVarray(", "...", ")") // | GVdynarr(xs) => fprint! (out, "GVdynarr(", "...", ")") // | GVhashtbl(kxs) => fprint! (out, "GVhashtbl(", "...", ")") // | GVfunclo_fun _ => fprint! (out, "GVfunclo_fun(", "...", ")") | GVfunclo_clo _ => fprint! (out, "GVfunclo_clo(", "...", ")") // end // end of [fprint_gvalue] (* ****** ****** *) implement fprint_gvlist (out, xs) = let // implement fprint_val = fprint_gvalue // in fprint_list0_sep(out, xs, ", ") end // end of [fprint_gvlist] (* ****** ****** *) implement fprint_gvarray (out, xs) = let // implement fprint_val = fprint_gvalue // in fprint_array0_sep(out, xs, ", ") end // end of [fprint_gvarray] (* ****** ****** *) implement fprint_gvdynarr (out, xs) = let // implement fprint_val = fprint_gvalue // in fprint_dynarray_sep(out, xs, ", ") end // end of [fprint_gvdynarr] (* ****** ****** *) implement fprint_gvhashtbl (out, kxs) = let // implement fprint_val = fprint_gvalue // in fprint_hashtbl_sep_mapto(out, kxs, "; ", "->") end // end of [fprint_gvhashtbl] (* ****** ****** *) implement fprint_val = fprint_gvalue (* ****** ****** *) // implement {}(*tmp*) gvalue_nil() = GVnil() // implement {}(*tmp*) gvalue_int(i) = GVint(i) // implement {}(*tmp*) gvalue_ptr(p) = GVptr(p) // implement {}(*tmp*) gvalue_bool(x) = GVbool(x) implement {}(*tmp*) gvalue_char(x) = GVchar(x) // implement {}(*tmp*) gvalue_float(x) = GVfloat(x) implement {}(*tmp*) gvalue_string(x) = GVstring(x) // (* ****** ****** *) implement {}(*tmp*) gvalue_box(x) = GVptr($UN.cast2ptr(x)) (* ****** ****** *) // implement {}(*tmp*) gvalue_ref(r) = GVref(r) // implement {}(*tmp*) gvalue_list(xs) = GVlist(xs) // implement {}(*tmp*) gvalue_array(xs) = GVarray(xs) // implement {}(*tmp*) gvalue_hashtbl(kxs) = GVhashtbl(kxs) // (* ****** ****** *) // implement {}(*tmp*) gvalue_is_nil(gv) = ( case+ gv of GVnil() => true | _ => false ) (* gvalue_is_nil *) // implement {}(*tmp*) gvalue_isnot_nil(gv) = ( case+ gv of GVnil() => false | _ => true ) (* gvalue_isnot_nil *) // (* ****** ****** *) // implement gvref_make_elt (x0) = ref_make_elt(x0) // (* ****** ****** *) // implement gvarray_make_nil (asz) = ( array0_make_elt(i2sz(asz), GVnil()) ) (* gvarray_make_nil *) // (* ****** ****** *) local typedef elt = gvalue in (* in-of-local *) implement gvdynarr_make_nil (cap) = let (* val () = println! ("gvdynarr_make_nil") *) in // dynarray_make_nil(i2sz(cap)) // end // end of [gvdynarr_make_nil] (* ****** ****** *) implement gvdynarr_get_at (DA, i) = let // val p0 = dynarray_getref_at(DA, i2sz(i)) // in // if isneqz(p0) then $UN.cptr_get(p0) else GVnil() // end // end of [gvdynarr_get_at] implement gvdynarr_set_at (DA, i, x) = let // val p0 = dynarray_getref_at(DA, i2sz(i)) // in // if isneqz(p0) then $UN.cptr_set(p0, x) else ((*void*)) // end // end of [gvdynarr_set_at] (* ****** ****** *) implement gvdynarr_insert_atbeg (DA, x0) = let // val opt = dynarray_insert_atbeg(DA, x0) // in // case+ opt of | ~None_vt() => () | ~Some_vt(x0) => ( let val () = assertloc(false) in (*void*) end ) (* end of [Some_vt] *) // end // end of [gvdynarr_insert_atbeg] implement gvdynarr_insert_atend (DA, x0) = let // val opt = dynarray_insert_atend(DA, x0) // in // case+ opt of | ~None_vt() => () | ~Some_vt(x0) => let val () = assertloc(false) in (*void*) end // end // end of [gvdynarr_insert_atend] (* ****** ****** *) implement gvdynarr_listize0(DA) = dynarray_listize0(DA) implement gvdynarr_listize1(DA) = dynarray_listize1(DA) (* ****** ****** *) end // end of [local] (* ****** ****** *) local // typedef key = string typedef itm = gvalue // in (* in-of-local *) implement gvhashtbl_make_nil (cap) = let (* val () = println! ("gvhashtbl_make_nil") *) in hashtbl_make_nil(i2sz(cap)) end // end of [gvhashtbl_make_nil] implement gvhashtbl_get_atkey (tbl, k0) = let // val cp = hashtbl_search_ref(tbl, k0) // in if isneqz(cp) then $UN.cptr_get(cp) else GVnil() end // end of [gvhashtbl_get_atkey] implement gvhashtbl_set_atkey (tbl, k0, x0) = let // val opt = hashtbl_insert(tbl, k0, x0) // in case+ opt of ~None_vt() => () | ~Some_vt _ => () end // end of [gvhashtbl_set_atkey] implement gvhashtbl_exch_atkey (tbl, k0, x0) = let // val opt = hashtbl_insert(tbl, k0, x0) // in // case+ opt of ~None_vt() => GVnil() | ~Some_vt(x1) => x1 // end // end of [gvhashtbl_set_atkey] (* ****** ****** *) implement gvhashtbl_pop_atkey (tbl, k) = let (* // val () = println! (gvhashtbl_pop_atkey) // *) // in // case+ tbl[k] of // case+ | GVnil() => GVnil() | GVlist(xs) => ( case+ xs of | list0_nil() => GVnil() | list0_cons(x, xs) => (tbl[k] := GVlist(xs); x) // end of [list0_cons] ) | _(*non-list*) => let val () = prerrln! ("gvhashtbl_pop_atkey") // end of [val] val () = assertloc(false) in GVnil(*void*) end // end of [_] // end // end of [gvhashtbl_push_atkey] (* ****** ****** *) implement gvhashtbl_push_atkey (tbl, k, x) = let (* // val () = println! (gvhashtbl_push_atkey) // *) // in // case+ tbl[k] of // case+ | GVnil() => tbl[k] := GVlist(list0_sing(x)) | GVlist(xs) => tbl[k] := GVlist(list0_cons(x, xs)) | _(*non-list*) => let val () = prerrln! ("gvhashtbl_push_atkey") // end of [val] val () = assertloc(false) in (*void*) end // end of [_] // end // end of [gvhashtbl_push_atkey] (* ****** ****** *) // implement{} gvhashtbl_foreach_cloref (tbl, fwork) = hashtbl_foreach_cloref(tbl, fwork) // implement{} gvhashtbl_foreach_method(tbl) = lam(fwork) => hashtbl_foreach_cloref(tbl, fwork) // (* ****** ****** *) // implement{} gvhashtbl_listize1(tbl) = hashtbl_listize1(tbl) // (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [gvalue.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/option0.dats0000644000175000017500000000657013431250607021460 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: July, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/option0.sats" (* ****** ****** *) // implement {a}(*tmp*) option0_some(x) = Some0{a}(x) // implement{} option0_none((*void*)) = None0((*void*)) // (* ****** ****** *) implement{} option0_is_some(opt) = ( // case+ opt of | Some0 _ => true | None0 _ => false // ) // end of [option0_is_some] implement{} option0_is_none(opt) = ( // case+ opt of | Some0 _ => false | None0 _ => true // ) // end of [option0_is_none] (* ****** ****** *) implement {a}(*tmp*) option0_unsome_exn (opt) = ( // case+ opt of | Some0(x) => x | None0 _ => $raise NotSomeExn() // ) // end of [option0_unsome_exn] (* ****** ****** *) // implement {a}{b} option0_map (opt, fopr) = ( case+ opt of | None0() => None0() | Some0(x) => Some0(fopr(x)) ) (* end of [option0_map] *) // implement {a}{b} option0_map_method ( opt, _(*TYPE*) ) = ( lam(fopr) => option0_map(opt, fopr) ) // (* ****** ****** *) // implement {a}(*tmp*) option0_filter(opt, pred) = ( case+ opt of | None0 _ => None0((*void*)) | Some0 x => if pred(x) then opt else None0() ) (* end of [option0_map] *) // implement {a}(*tmp*) option0_filter_method ( opt ) = ( lam(pred) => option0_filter(opt, pred) ) // (* ****** ****** *) // implement {a}(*tmp*) option0_foreach (opt, fwork) = ( case+ opt of | None0() => () | Some0(x) => fwork(x) ) implement {a}(*tmp*) option0_foreach_method ( opt ) = ( lam(fwork) => option0_foreach(opt, fwork) ) // (* ****** ****** *) // implement {a}(*tmp*) print_option0 (opt) = fprint_option0(stdout_ref, opt) implement {a}(*tmp*) prerr_option0 (opt) = fprint_option0(stderr_ref, opt) // (* ****** ****** *) // implement {a}(*tmp*) fprint_option0 ( out, opt ) = let // val opt = g1ofg0_option(opt) // in fprint_option(out, opt) end // end of [fprint_option0] // (* ****** ****** *) // implement (a)(*tmp*) fprint_val (out, x) = fprint_option0(out, x) // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/hashtblref.dats0000644000175000017500000001507013431250607022205 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: August, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload HT = "libats/SATS/hashtbl_chain.sats" // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) staload "libats/ML/SATS/list0.sats" (* ****** ****** *) staload "libats/SATS/hashfun.sats" staload "libats/ML/SATS/hashtblref.sats" (* ****** ****** *) (* implement {key}(*tmp*) hash_key = ghash_val *) (* ****** ****** *) implement {key}(*tmp*) equal_key_key = gequal_val_val (* ****** ****** *) // implement hash_key (key) = let val key = $UN.cast{uint32}(key) in $UN.cast{ulint}(inthash_jenkins<>(key)) end // end of [hash_key] // implement hash_key (key) = let val key = $UN.cast{uint32}(key) in $UN.cast{ulint}(inthash_jenkins<>(key)) end // end of [hash_key] // (* ****** ****** *) // // HX: 31 and 37 are top choices // implement hash_key (key) = string_hash_multiplier (31UL, 31415926536UL, key) // (* ****** ****** *) // implement {key}(*tmp*) $HT.hash_key = hash_key // implement {key}(*tmp*) $HT.equal_key_key = equal_key_key // (* ****** ****** *) // extern castfn hashtbl_encode {key,itm:t0p} ( $HT.hashtbl(key, INV(itm)) ) : hashtbl(key, itm) // extern castfn hashtbl_decode {key,itm:t0p} (hashtbl(key, INV(itm))): $HT.hashtbl(key, itm) // (* ****** ****** *) #define htencode hashtbl_encode #define htdecode hashtbl_decode (* ****** ****** *) // implement {key,itm} hashtbl_make_nil(cap) = htencode ( $HT.hashtbl_make_nil(cap) ) (* end of [htencode] *) // (* ****** ****** *) implement {}(*tmp*) hashtbl_get_size (tbl) = nitm where { // val tbl = htdecode(tbl) val nitm = $HT.hashtbl_get_size<>(tbl) // prval () = $UN.cast2void(tbl) // } (* end of [hashtbl_get_size] *) (* ****** ****** *) implement {}(*tmp*) hashtbl_get_capacity (tbl) = cap where { // val tbl = htdecode(tbl) val cap = $HT.hashtbl_get_capacity<>(tbl) // prval () = $UN.cast2void(tbl) // } (* end of [hashtbl_get_capacity] *) (* ****** ****** *) implement {key,itm} hashtbl_search (tbl, k) = opt where { // val tbl = htdecode(tbl) val opt = $HT.hashtbl_search_opt(tbl, k) // prval () = $UN.cast2void(tbl) // } (* end of [hashtbl_search] *) (* ****** ****** *) implement {key,itm} hashtbl_search_ref (tbl, k) = cptr where { // val tbl = htdecode(tbl) // val cptr = $HT.hashtbl_search_ref(tbl, k) // prval () = $UN.cast2void(tbl) // } (* end of [hashtbl_search_ref] *) (* ****** ****** *) implement {key,itm} hashtbl_insert (tbl, k, x) = opt where { // val tbl = htdecode(tbl) // val opt = $HT.hashtbl_insert_opt(tbl, k, x) // prval () = $UN.cast2void (tbl) // } (* hashtbl_insert *) (* ****** ****** *) implement {key,itm} hashtbl_insert_any (tbl, k, x) = () where { // val tbl = htdecode(tbl) // val () = $HT.hashtbl_insert_any(tbl, k, x) // prval () = $UN.cast2void (tbl) // } (* hashtbl_insert_any *) (* ****** ****** *) implement {key,itm} hashtbl_takeout (tbl, k) = opt where { // val tbl = htdecode(tbl) // val opt = $HT.hashtbl_takeout_opt(tbl, k) // prval () = $UN.cast2void(tbl) // } (* end of [hashtbl_takeout] *) (* ****** ****** *) implement {key,itm} hashtbl_remove (tbl, k) = ans where { // val tbl = htdecode(tbl) val ans = $HT.hashtbl_remove(tbl, k) // prval () = $UN.cast2void(tbl) // } (* end of [hashtbl_remove] *) (* ****** ****** *) implement {key,itm} hashtbl_takeout_all (tbl) = kxs where { // val tbl = htdecode(tbl) val kxs = $HT.hashtbl_takeout_all(tbl) val kxs = list0_of_list_vt{(key,itm)}(kxs) // prval () = $UN.cast2void(tbl) // } (* end of [hashtbl_takeout_all] *) (* ****** ****** *) implement {key,itm} fprint_hashtbl (out, tbl) = let // implement $HT.fprint_hashtbl$sep<> = fprint_hashtbl$sep<> implement $HT.fprint_hashtbl$mapto<> = fprint_hashtbl$mapto<> // val tbl = htdecode (tbl) val () = $HT.fprint_hashtbl (out, tbl) prval () = $UN.cast2void (tbl) // in // nothing end // end of [fprint_hashtbl] (* ****** ****** *) // implement{} fprint_hashtbl$sep(out) = fprint(out, "; ") implement{} fprint_hashtbl$mapto(out) = fprint(out, "->") // (* ****** ****** *) implement {key,itm} fprint_hashtbl_sep_mapto (out, tbl, sep, mapto) = let // implement fprint_hashtbl$sep<>(out) = fprint(out, sep) implement fprint_hashtbl$mapto<>(out) = fprint(out, mapto) // in fprint_hashtbl(out, tbl) end // end of [fprint_hashtbl_sep_mapto] (* ****** ****** *) implement {key,itm} hashtbl_foreach_cloref (tbl, fwork) = () where { // var env: void = ((*void*)) // implement (env)(*tmp*) $HT.hashtbl_foreach$fwork (k, x, env) = fwork(k, x) // val tbl = htdecode(tbl) // val ((*void*)) = $HT.hashtbl_foreach_env (tbl, env) // prval ((*returned*)) = $UN.cast2void(tbl) // } (* end of [hashtbl_foreach_cloref] *) (* ****** ****** *) // implement {key,itm} hashtbl_listize0 (tbl) = ( hashtbl_takeout_all(tbl) ) // (* ****** ****** *) implement {key,itm} hashtbl_listize1 (tbl) = kxs where { // typedef ki = @(key, itm) // val tbl = htdecode(tbl) // val kxs = $HT.hashtbl_listize1(tbl) // prval ((*returned*)) = $UN.cast2void(tbl) // val kxs = list0_of_list_vt{(key,itm)}(kxs) // } (* end of [hashtbl_listize1] *) (* ****** ****** *) (* end of [hashtblref.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/dynarray.dats0000644000175000017500000001267113431250607021720 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: December, 2015 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload DA = "libats/SATS/dynarray.sats" // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" (* ****** ****** *) staload "libats/ML/SATS/dynarray.sats" (* ****** ****** *) // extern castfn dynarray_encode {a:vt@ype} ($DA.dynarray(a)): dynarray(a) // extern castfn dynarray_decode {a:vt@ype} (DA: dynarray(a)): $DA.dynarray(a) // (* ****** ****** *) implement {a}(*tmp*) dynarray_make_nil (cap) = let // val DA = $DA.dynarray_make_nil(cap) // in dynarray_encode(DA) end // end of [dynarray_make_nil] (* ****** ****** *) implement {a}(*tmp*) fprint_dynarray (out, DA) = { // val DA = dynarray_decode(DA) val () = $DA.fprint_dynarray (out, DA) prval () = $UN.cast2void(DA) // } (* end of [fprint_dynarray] *) (* ****** ****** *) implement {a}(*tmp*) fprint_dynarray_sep (out, DA, sep) = { // val DA = dynarray_decode(DA) val () = $DA.fprint_dynarray_sep (out, DA, sep) prval () = $UN.cast2void(DA) // } (* end of [fprint_dynarray_sep] *) (* ****** ****** *) implement{} dynarray_get_size (DA) = asz where { // val DA = dynarray_decode(DA) val asz = $DA.dynarray_get_size<> (DA) prval () = $UN.cast2void(DA) // } (* end of [dynarray_get_size] *) implement{} dynarray_get_capacity (DA) = cap where { // val DA = dynarray_decode(DA) val cap = $DA.dynarray_get_capacity<> (DA) prval () = $UN.cast2void(DA) // } (* end of [dynarray_get_capacity] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_get_at_exn (DA, i) = x0 where { // val DA = dynarray_decode(DA) val x0 = $DA.dynarray_get_at_exn(DA, i) prval () = $UN.cast2void(DA) // } (* end of [dynarray_get_at_exn] *) implement {a}(*tmp*) dynarray_set_at_exn (DA, i, x0) = () where { // val DA = dynarray_decode(DA) val () = $DA.dynarray_set_at_exn(DA, i, x0) prval () = $UN.cast2void(DA) // } (* end of [dynarray_set_at_exn] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_getref_at (DA, i) = p0 where { // val DA = dynarray_decode(DA) val p0 = $DA.dynarray_getref_at(DA, i) prval () = $UN.cast2void(DA) // } (* end of [dynarray_getref_at] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_insert_atbeg (DA, x0) = opt where { // val DA = dynarray_decode(DA) val opt = $DA.dynarray_insert_atbeg_opt (DA, x0) prval () = $UN.cast2void(DA) // } (* end of [dynarray_insert_atbeg] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_insert_atend (DA, x0) = opt where { // val DA = dynarray_decode(DA) val opt = $DA.dynarray_insert_atend_opt (DA, x0) prval () = $UN.cast2void(DA) // } (* end of [dynarray_insert_atend] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_insert_at (DA, i, x0) = opt where { // val DA = dynarray_decode(DA) // val opt = $DA.dynarray_insert_at_opt (DA, i, x0) // prval () = $UN.cast2void(DA) // } (* end of [dynarray_insert_at] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_takeout_atbeg (DA) = opt where { // val DA = dynarray_decode(DA) // val opt = $DA.dynarray_takeout_atbeg_opt (DA) // prval () = $UN.cast2void(DA) // } (* end of [dynarray_takeout_atbeg] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_takeout_atend (DA) = opt where { // val DA = dynarray_decode(DA) // val opt = $DA.dynarray_takeout_atend_opt (DA) // prval () = $UN.cast2void(DA) // } (* end of [dynarray_takeout_atend] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_takeout_at (DA, i) = opt where { // val DA = dynarray_decode(DA) val opt = $DA.dynarray_takeout_at_opt (DA, i) prval () = $UN.cast2void(DA) // } (* end of [dynarray_takeout_at] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_listize0 (DA) = list0_of_list_vt(xs) where { // val DA = dynarray_decode(DA) val xs = $DA.dynarray_listize0(DA) prval () = $UN.cast2void(DA) // } (* end of [dynarray_listize0] *) (* ****** ****** *) implement {a}(*tmp*) dynarray_listize1 (DA) = list0_of_list_vt(xs) where { // val DA = dynarray_decode(DA) val xs = $DA.dynarray_listize1(DA) prval () = $UN.cast2void(DA) // } (* end of [dynarray_listize1] *) (* ****** ****** *) (* end of [dynarray.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/intrange.dats0000644000175000017500000001772113431250607021677 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: September, 2014 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/array0.sats" staload "libats/ML/SATS/intrange.sats" (* ****** ****** *) // implement {}(*tmp*) int_repeat_lazy (n, f) = ( int_repeat_cloref<>(n, lazy2cloref(f)) ) // (* ****** ****** *) implement {}(*tmp*) int_repeat_cloref (n, f) = loop(n, f) where { // fun loop ( n: int, f: cfun0(void) ) : void = ( // if n > 0 then ( let val () = f() in loop(n-1, f) end ) else ((*void*)) // ) (* end of [loop] *) // } // end of [int_repeat_cloref] (* ****** ****** *) // implement {}(*tmp*) int_repeat_method (n) = ( lam(f) => int_repeat_cloref<>(n, f) ) // (* ****** ****** *) // implement {}(*tmp*) int_forall_cloref (n, f) = intrange_forall_cloref<>(0, n, f) // implement {}(*tmp*) int_forall_method (n) = ( lam(f) => int_forall_cloref<>(n, f) ) // (* ****** ****** *) // implement {}(*tmp*) int_foreach_cloref (n, f) = intrange_foreach_cloref<>(0, n, f) // implement {}(*tmp*) int_foreach_method (n) = ( lam(f) => int_foreach_cloref<>(n, f) ) // (* ****** ****** *) // implement {}(*tmp*) int_rforeach_cloref (n, f) = intrange_rforeach_cloref<>(0, n, f) // implement {}(*tmp*) int_rforeach_method (n) = lam(f) => int_rforeach_cloref<>(n, f) // (* ****** ****** *) // implement {res}(*tmp*) int_foldleft_cloref (n, ini, f) = intrange_foldleft_cloref(0, n, ini, f) // implement {res}(*tmp*) int_foldleft_method (n, tres) = ( lam(ini, f) => int_foldleft_cloref(n, ini, f) ) // (* ****** ****** *) // implement {res}(*tmp*) int_foldright_cloref (n, f, snk) = intrange_foldright_cloref(0, n, f, snk) // implement {res}(*tmp*) int_foldright_method (n, tres) = ( lam(f, snk) => int_foldright_cloref(n, f, snk) ) // (* ****** ****** *) implement {}(*tmp*) intrange_forall_cloref (l, r, f) = let // fun loop ( l: int, r: int , f: cfun1(int, bool) ) : bool = ( // if l < r then ( if f(l) then loop(l+1, r, f) else false ) else true // ) (* end of [loop] *) // in loop (l, r, f) end // end of [intrange_forall_cloref] // implement {}(*tmp*) intrange_forall_method ( @(l, r) ) = lam(f) => intrange_forall_cloref<>(l, r, f) // (* ****** ****** *) // implement {}(*tmp*) intrange_foreach_cloref (l, r, f) = let // fun loop ( l: int, r: int, f: cfun1(int, void) ) : void = ( // if (l < r) then ( let val () = f(l) in loop(l+1, r, f) end ) else ((*void*)) // ) (* end of [loop] *) // in loop (l, r, f) end // end of [intrange_foreach_cloref] // implement {}(*tmp*) intrange_foreach_method ( @(l, r) ) = lam(f) => intrange_foreach_cloref<>(l, r, f) // (* ****** ****** *) // implement {}(*tmp*) intrange_rforeach_cloref (l, r, f) = let // fun loop ( l: int, r: int, f: cfun1(int, void) ) : void = ( // if (l < r) then ( let val () = f(r-1) in loop(l, r-1, f) end ) else ((*void*)) // ) (* end of [loop] *) // in loop (l, r, f) end // end of [intrange_rforeach_cloref] // implement {}(*tmp*) intrange_rforeach_method ( @(l, r) ) = lam(f) => intrange_rforeach_cloref<>(l, r, f) // (* ****** ****** *) implement {res}(*tmp*) intrange_foldleft_cloref (l, r, ini, fopr) = let // fun loop ( l: int, r: int , ini: res, f: cfun2(res, int, res) ) : res = ( // if (l < r) then loop(l+1, r, f(ini, l), f) else ini // end of [if] // ) (* end of [loop] *) // in loop(l, r, ini, fopr) end // end of [intrange_foldleft_cloref] (* ****** ****** *) // implement {res}(*tmp*) intrange_foldleft_method ( @(l, r), tres ) = ( // lam(ini, f) => intrange_foldleft_cloref(l, r, ini, f) // ) (* end of [intrange_foldleft_method] *) // (* ****** ****** *) implement {res}(*tmp*) intrange_foldright_cloref (l, r, f, snk) = let // fun loop ( l: int, r: int , f: cfun2(int, res, res), snk: res ) : res = ( // if (l < r) then let val r1 = r-1 in loop(l, r1, f, f(r1, snk)) end // end of [then] else snk // end of [else] // ) (* end of [loop] *) // in loop(l, r, f, snk) end // end of [intrange_foldright_cloref] (* ****** ****** *) // implement {res}(*tmp*) intrange_foldright_method ( @(l, r), tres ) = ( // lam(f, snk) => intrange_foldright_cloref(l, r, f, snk) // ) (* end of [intrange_foldright_method] *) // (* ****** ****** *) // implement {}(*tmp*) int_streamGte(n) = ( fix aux ( n: int ) : stream(int) => $delay(stream_cons(n, aux(n+1))) ) (n) // end of [int_streamGte] // implement {}(*tmp*) int_streamGte_vt(n) = ( fix aux ( n: int ) : stream_vt(int) => $ldelay(stream_vt_cons(n, aux(n+1))) ) (n) // end of [int_streamGte_vt] // (* ****** ****** *) // implement {a}(*tmp*) int_list0_map_cloref (n, f) = list0_tabulate(n, f) // implement {a}(*tmp*) int_list0_map_method (n, tres) = lam(f) => int_list0_map_cloref(n, f) // (* ****** ****** *) // implement {a}(*tmp*) int_array0_map_cloref (n, fopr) = ( array0_tabulate (i2sz(n), lam(i) => fopr(sz2i(i))) ) // implement {a}(*tmp*) int_array0_map_method (n, tres) = lam(f) => int_array0_map_cloref(n, f) // (* ****** ****** *) // implement {a}(*tmp*) int_stream_map_cloref (n, f) = auxmain(0) where { // fun auxmain ( i: Nat ) : stream(a) = $delay ( if (i >= n) then stream_nil((*void*)) else stream_cons(f(i), auxmain(i+1)) ) (* end of [auxmain] *) // } (* end of [int_stream_map_cloref] *) // implement {a}(*tmp*) int_stream_map_method (n, tres) = ( // lam(f) => int_stream_map_cloref(n, f) // ) (* int_stream_map_method *) // (* ****** ****** *) // implement {a}(*tmp*) int_stream_vt_map_cloref (n, f) = auxmain(0) where { // fun auxmain ( i: Nat ) : stream_vt(a) = $ldelay ( if (i >= n) then stream_vt_nil((*void*)) else stream_vt_cons(f(i), auxmain(i+1)) // end of [then] // ) : stream_vt_con(a) // [auxmain] // } (* end of [int_stream_vt_map_cloref] *) // implement {a}(*tmp*) int_stream_vt_map_method (n, tres) = ( // lam(f) => int_stream_vt_map_cloref(n, f) // ) // (* ****** ****** *) // implement {}(*tmp*) int2_foreach_cloref (n1, n2, f0) = ( intrange2_foreach_cloref<> ( 0(*l1*), n1(*r1*) , 0(*l2*), n2(*r2*), f0 ) ) // implement {}(*tmp*) intrange2_foreach_cloref (l1, r1, l2, r2, f0) = let // fnx loop1 ( m1: int, r1: int , l2: int, r2: int , f0: cfun2(int, int, void) ) : void = ( // if m1 < r1 then loop2(m1, r1, l2, l2, r2, f0) else ((*void*)) // end of [if] // ) (* end of [loop1] *) // and loop2 ( m1: int, r1: int , l2: int, m2: int, r2: int , f0: cfun2(int, int, void) ) : void = ( // if m2 < r2 then let // val () = f0(m1, m2) // in loop2 (m1, r1, l2, m2+1, r2, f0) end // end of [then] else ( loop1(m1+1, r1, l2, r2, f0) ) (* end of [else] *) // ) (* end of [loop2] *) // in loop1(l1, r1, l2, r2, f0) end // end of [intrange2_foreach_cloref] // (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/monad_maybe.dats0000644000175000017500000000623413431250607022340 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2013 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // staload "libats/ML/SATS/basis.sats" // staload "libats/ML/SATS/monad_maybe.sats" // (* ****** ****** *) #include "./SHARE/monad.hats" (* ****** ****** *) assume monad_type(a:t0p) = Option(a) (* ****** ****** *) implement {a}{b} monad_bind (opt, fopr) = let (* val () = println! ("monad_bind") *) in // case+ opt of | Some (x) => fopr(x) | None() => None() // end // end of [monad_bind] (* ****** ****** *) implement {a1,a2}{b} monad_bind2 (opt1, opt2, fopr) = let (* val () = println! ("monad_bind2") *) in // case+ opt1 of | Some(x1) => ( case+ opt2 of | Some(x2) => fopr(x1, x2) | None() => None() ) (* end of [Some] *) | None((*void*)) => None() // end // end of [monad_bind2] (* ****** ****** *) implement {a1,a2,a3} {b}(*tmp*) monad_bind3 ( opt1, opt2, opt3, fopr ) = let (* val () = println! ("monad_bind3") *) in // case+ opt1 of | Some(x1) => ( case+ opt2 of | Some(x2) => ( case+ opt3 of | Some(x3) => fopr(x1, x2, x3) | None() => None() ) | None((*void*)) => None() ) (* end of [Some] *) | None((*void*)) => None() // end // end of [monad_bind3] (* ****** ****** *) implement{a} monad_return (x) = Some{a}(x) (* ****** ****** *) implement {a}(*tmp*) monad_cons (mx, mxs) = let (* // val () = println! ("monad_cons") // *) in // case+ mx of | Some (x) => ( case+ mxs of | Some (xs) => Some{list0(a)}(list0_cons{a}(x, xs)) | None ((*void*)) => None() ) | None () => None () // end // end of [monad_cons] (* ****** ****** *) implement {a}(*tmp*) monad_maybe_none() = None{a}() implement {a}(*tmp*) monad_maybe_some(x) = Some{a}(x) (* ****** ****** *) implement {a}(*tmp*) monad_maybe_optize(m) = (m) (* ****** ****** *) // implement {a}(*tmp*) fprint_monad(out, m) = fprint_option(out, m) // (* ****** ****** *) (* end of [monad_maybe.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/filebas_dirent.dats0000644000175000017500000001006113431250607023030 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: September, 2013 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*UN*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) staload _(*INT*) = "prelude/DATS/integer.dats" staload _(*INT*) = "prelude/DATS/integer_size.dats" (* ****** ****** *) staload _(*STRING*) = "prelude/DATS/string.dats" staload _(*STRPTR*) = "prelude/DATS/strptr.dats" staload _(*STREAM*) = "prelude/DATS/stream.dats" staload _(*STREAM_VT*) = "prelude/DATS/stream_vt.dats" (* ****** ****** *) // staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/string.sats" // staload "libats/ML/SATS/filebas.sats" // (* ****** ****** *) // staload DIR = "libats/libc/SATS/dirent.sats" staload _(*anon*) = "libats/libc/DATS/dirent.dats" // (* ****** ****** *) staload QUE = "libats/SATS/qlist.sats" staload _(*anon*) = "libats/DATS/qlist.dats" (* ****** ****** *) stadef dirent = $DIR.dirent stadef DIRptr1 = $DIR.DIRptr1 stadef qstruct0 = $QUE.qstruct0 (* ****** ****** *) implement dirname_get_fnamelst (dirname) = let // vtypedef res = $QUE.qstruct0(string) // fun loop ( dirp: !DIRptr1, res: &res >> _ ) : void = let // var ent: dirent? var result: ptr? // val err = $DIR.readdir_r(dirp, ent, result) // in // if result > 0 then let // prval() = opt_unsome{dirent}(ent) // val d_name = $DIR.dirent_get_d_name_gc(ent) val ((*inserted*)) = $QUE.qstruct_insert(res, strptr2string(d_name)) // in loop (dirp, res) end // end of [then] else let prval() = opt_unnone{dirent}(ent) in // nothing end // end of [else] // end // end of [loop] // val dirp = $DIR.opendir(dirname) // in // if $DIR.DIRptr2ptr(dirp) > 0 then let var res: $QUE.qstruct // val () = $QUE.qstruct_initize{string}(res) // val () = loop(dirp, res) // val () = $DIR.closedir_exn (dirp) // val res2 = $QUE.qstruct_takeout_list(res) // val // prval() = $QUE.qstruct_uninitize{string}(res) // prval // in // g0ofg1_list(list_vt2t(res2)) // end // end of [then] else let prval() = $DIR.DIRptr_free_null(dirp) in list0_nil() // end of [prval] end // end of [else] // end // end of [dirname_get_fnamelst] (* ****** ****** *) implement {}(*tmp*) streamize_dirname_fname (dirname) = let // val dirp = $DIR.opendir(dirname) // val ents = ( if $DIR.DIRptr2ptr(dirp) > 0 then $DIR.streamize_DIRptr_dirent<>(dirp) else let prval() = $DIR.DIRptr_free_null(dirp) in stream_vt_make_nil() end // end of [else] ) : stream_vt(dirent) // in // stream_vt_map_cloptr ( ents , lam(ent) =>strptr2string($DIR.dirent_get_d_name_gc<>(ent)) ) (* end of [stream_vt_map_cloptr] *) // end // end of [streamize_dirname_fname] (* ****** ****** *) (* end of [filebas_dirent.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/stream.dats0000644000175000017500000001025613431250607021357 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: October, 2016 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/stream.sats" (* ****** ****** *) // implement {}(*tmp*) intgte_stream(n) = f(n) where { fun f(n:int): stream(int) = $delay(stream_cons(n, f(n+1))) } // (* ****** ****** *) // implement {a}(*tmp*) stream2list0(xs) = list0_of_list_vt(stream2list(xs)) // (* ****** ****** *) implement {a}(*tmp*) stream_make_list0 (xs) = auxmain(xs) where { // fun auxmain: $d2ctype ( stream_make_list0 ) = lam(xs) => $delay ( case+ xs of | list0_nil() => stream_nil() | list0_cons(x, xs) => stream_cons(x, auxmain(xs)) ) // } (* end of [stream_make_list0] *) (* ****** ****** *) // implement {}(*tmp*) stream_make_intrange_lr (l, r) = ( stream_make_intrange_lrd<>(l, r, 1) ) // implement {}(*tmp*) stream_make_intrange_lrd (l, r, d) = let // fun auxmain ( l: int , r: int , d: int ) : stream(int) = $delay ( if (l >= r) then stream_nil() else stream_cons(l, auxmain(l+d, r, d)) ) // in auxmain(l, r, d) end // end of [stream_make_intrange_lrd] // (* ****** ****** *) // implement {a}{b} stream_map (xs, fopr) = ( stream_map_cloref(xs, fopr) ) // implement {a}{b} stream_map_method (xs, _) = ( lam(fopr) => stream_map_cloref(xs, fopr) ) // (* ****** ****** *) // implement {a}{b} stream_imap (xs, fopr) = ( stream_imap_cloref(xs, fopr) ) // implement {a}{b} stream_imap_method (xs, _) = ( lam(fopr) => stream_imap_cloref(xs, fopr) ) // (* ****** ****** *) // implement {a}(*tmp*) stream_filter (xs, pred) = stream_filter_cloref(xs, pred) implement {a}(*tmp*) stream_filter_method (xs) = ( lam(pred) => stream_filter_cloref(xs, pred) ) // (* ****** ****** *) // implement {res}{x} stream_scan (xs, res, fopr) = ( stream_scan_cloref(xs, res, fopr) ) // implement {res}{x} stream_scan_method(xs, _) = ( lam(res, fopr) => stream_scan_cloref(xs, res, fopr) ) // (* ****** ****** *) // implement {a}(*tmp*) stream_foreach (xs, fwork) = stream_foreach_cloref(xs, fwork) // implement {a}(*tmp*) stream_foreach_method(xs) = ( lam(fwork) => stream_foreach_cloref(xs, fwork) // end of [lam] ) // (* ****** ****** *) // implement {a}(*tmp*) stream_iforeach (xs, fwork) = stream_iforeach_cloref(xs, fwork) // implement {a}(*tmp*) stream_iforeach_method(xs) = ( lam(fwork) => stream_iforeach_cloref(xs, fwork) // end of [lam] ) // (* ****** ****** *) // implement {res}{a} stream_foldleft (xs, ini, fopr) = stream_foldleft_cloref(xs, ini, fopr) // implement {res}{a} stream_foldleft_method (xs, _(*TYPE*)) = lam(ini, fopr) => stream_foldleft_cloref(xs, ini, fopr) // end of [lam] // (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/list0.dats0000644000175000017500000011256213431250607021122 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: June, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/list0_vt.sats" (* ****** ****** *) // implement {a}(*tmp*) list0_tuple_0() = list0_nil() // implement {a}(*tmp*) list0_tuple_1(x0) = g0ofg1($list{a}(x0)) implement {a}(*tmp*) list0_tuple_2(x0, x1) = g0ofg1($list{a}(x0, x1)) implement {a}(*tmp*) list0_tuple_3(x0, x1, x2) = g0ofg1($list{a}(x0, x1, x2)) // implement {a}(*tmp*) list0_tuple_4 (x0, x1, x2, x3) = g0ofg1($list{a}(x0, x1, x2, x3)) implement {a}(*tmp*) list0_tuple_5 (x0, x1, x2, x3, x4) = g0ofg1($list{a}(x0, x1, x2, x3, x4)) implement {a}(*tmp*) list0_tuple_6 (x0, x1, x2, x3, x4, x5) = g0ofg1($list{a}(x0, x1, x2, x3, x4, x5)) // (* ****** ****** *) // implement {a}(*tmp*) list0_make_sing(x) = list0_cons{a}(x, list0_nil) implement {a}(*tmp*) list0_make_pair(x1, x2) = list0_cons{a}(x1, list0_cons{a}(x2, list0_nil)) // (* ****** ****** *) implement {a}(*tmp*) list0_make_elt (n, x) = let // val n = g1ofg0(n) // in // if n >= 0 then let val xs = $effmask_wrt(list_make_elt(n, x)) // end of [val] in list0_of_list_vt{a}(xs) end // end of [then] else let in $raise (IllegalArgExn"list0_make_elt:n") end // end of [else] // end // end of [list0_make_elt] (* ****** ****** *) implement {}(*tmp*) list0_make_intrange_lr (l, r) = let val d = ( if l <= r then 1 else ~1 ) : int // end of [val] in $effmask_exn(list0_make_intrange_lrd(l, r, d)) end // end of [list0_make_intrange_lr] (* ****** ****** *) implement {}(*tmp*) list0_make_intrange_lrd (l, r, d) = let // typedef res = list0 (int) // fun loop1 // d > 0 ( l: int, r: int , d: int, res: &ptr? >> res ) : void = let in // if l < r then let val () = ( res := list0_cons{int}(l, _) ) val+list0_cons (_, res1) = res val () = loop1 (l+d, r, d, res1) prval () = fold@ (res) in // nothing end else (res := list0_nil) // end // end of [loop1] // fun loop2 // d < 0 ( l: int, r: int , d: int, res: &ptr? >> res ) : void = let in // if l > r then let val () = ( res := list0_cons{int}(l, _) ) val+ list0_cons (_, res1) = res val () = loop2 (l+d, r, d, res1) prval () = fold@ (res) in // nothing end else (res := list0_nil) // end // end of [loop2] // in // $effmask_all ( if d > 0 then ( if l < r then let var res: ptr? // uninitialized val () = loop1 (l, r, d, res) in res end else list0_nil () ) else if d < 0 then ( if l > r then let var res: ptr? // uninitialized val () = loop2 (l, r, d, res) in res end else list0_nil () ) else ( $raise IllegalArgExn("list0_make_intrange_lrd:d") ) // end of [if] ) (* end of [$effmask_all] *) // end // end of [list0_make_intrange_lrd] (* ****** ****** *) // implement {a}(*tmp*) list0_make_arrpsz (psz) = list0_of_list_vt{a}(list_make_arrpsz(psz)) // end of [list0_make_arrpsz] // (* ****** ****** *) // implement {a}(*tmp*) print_list0 (xs) = fprint_list0 (stdout_ref, xs) implement {a}(*tmp*) prerr_list0 (xs) = fprint_list0 (stderr_ref, xs) // implement {a}(*tmp*) fprint_list0 (out, xs) = fprint_list (out, g1ofg0(xs)) // implement {a}(*tmp*) fprint_list0_sep (out, xs, sep) = ( fprint_list_sep (out, g1ofg0(xs), sep) ) (* end of [fprint_list0_sep] *) // implement {a}(*tmp*) fprint_listlist0_sep (out, xss, sep1, sep2) = ( fprint_listlist_sep (out, $UN.cast{List(List(a))}(xss), sep1, sep2) ) (* end of [fprint_listlist0_sep] *) // (* ****** ****** *) // (* // // HX: these have been declared as macros: // implement {a}(*tmp*) list0_sing (x) = list0_cons{a}(x, list0_nil) implement {a}(*tmp*) list0_pair (x1, x2) = list0_cons{a}(x1, list0_cons{a}(x2, list0_nil)) // *) // (* ****** ****** *) implement {a}(*tmp*) list0_is_nil(xs) = ( // case+ xs of | list0_cons _ => false | list0_nil() => true // ) (* end of [list0_is_nil] *) implement {a}(*tmp*) list0_is_cons(xs) = ( // case+ xs of | list0_cons _ => true | list0_nil() => false // ) (* end of [list0_is_cons] *) (* ****** ****** *) // implement {a}(*tmp*) list0_is_empty(xs) = list0_is_nil (xs) // implement {a}(*tmp*) list0_isnot_empty(xs) = list0_is_cons (xs) // (* ****** ****** *) implement {a}(*tmp*) list0_head_exn (xs) = let in // case+ xs of | list0_cons (x, _) => (x) // list0_cons | list0_nil _ => $raise ListSubscriptExn() // list0_nil end // end of [list0_head_exn] implement {a}(*tmp*) list0_head_opt (xs) = let in // case+ xs of | list0_nil() => None_vt() | list0_cons(x, _) => Some_vt{a}(x) // end // end of [list0_head_opt] (* ****** ****** *) implement {a}(*tmp*) list0_tail_exn (xs) = let in // case+ xs of | list0_cons (_, xs) => (xs) // list0_cons | list0_nil _ => $raise ListSubscriptExn() // list0_nil // end // end of [list0_tail_exn] implement {a}(*tmp*) list0_tail_opt (xs) = let in // case+ xs of | list0_nil() => None_vt() | list0_cons(_, xs) => Some_vt{list0(a)}(xs) // end // end of [list0_tail_opt] (* ****** ****** *) implement {a}(*tmp*) list0_last_exn (xs) = let // val xs = g1ofg0_list(xs) // in // case+ xs of | list_cons _ => list_last(xs) | list_nil () => $raise ListSubscriptExn() // end // end of [list0_last_exn] implement {a}(*tmp*) list0_last_opt (xs) = let // val xs = g1ofg0_list(xs) // in // case+ xs of | list_nil() => None_vt() | list_cons _ => Some_vt{a}(list_last(xs)) // end // end of [list0_last_opt] (* ****** ****** *) implement {a}(*tmp*) list0_init_exn (xs) = let // fun aux {n:nat} .. ( x0: a, xs: list(a, n) ) :<> list(a, n) = ( case+ xs of | list_nil() => list_nil() | list_cons(x, xs) => list_cons(x0, aux(x, xs)) ) // in case+ xs of | list0_cons (x, xs) => ( g0ofg1(aux(x, g1ofg0(xs))) ) (* end of [list0_cons] *) | list0_nil() => $raise ListSubscriptExn() end // end of [list0_init_exn] (* ****** ****** *) implement {a}(*tmp*) list0_init_opt (xs) = let // fun aux {n:nat} .. ( x0: a, xs: list(a, n) ) :<> list(a, n) = ( case+ xs of | list_nil() => list_nil() | list_cons(x, xs) => list_cons(x0, aux(x, xs)) ) // in // case+ xs of | list0_nil() => None_vt(*void*) | list0_cons(x, xs) => Some_vt(g0ofg1(aux(x, g1ofg0(xs)))) // end // end of [list0_init_opt] (* ****** ****** *) // implement {a}(*tmp*) list0_nth_exn (xs, i0) = let // fun loop {i:nat} .. ( xs: list0(a), i: int i ) : (a) = ( // case+ xs of | list0_cons (x, xs) => ( if i > 0 then loop(xs, i-1) else x ) // end of [list0_cons] | list0_nil() => ( $raise ListSubscriptExn(*void*) ) (* end of [list0_nil] *) // ) (* end of [loop] *) // val i0 = g1ofg0_int(i0) // in // if i0 >= 0 then loop(xs, i0) else $raise ListSubscriptExn(*void*) // end of [if] // end // end of [list0_nth_exn] // implement {a}(*tmp*) list0_nth_opt ( xs, i0 ) = $effmask_exn ( try Some_vt{a} ( list0_nth_exn(xs, i0) ) with ~ListSubscriptExn() => None_vt(*void*) ) (* $effmask_exn *) // (* ****** ****** *) // implement {a}(*tmp*) list0_get_at_exn (xs, i0) = list0_nth_exn(xs, i0) implement {a}(*tmp*) list0_get_at_opt (xs, i0) = list0_nth_opt(xs, i0) // (* ****** ****** *) // implement {a}(*tmp*) list0_fset_at_exn (xs, i0, x0) = let // fun fset {i:nat} .. ( xs: list0(a), i: int i ) : list0(a) = ( // case+ xs of | list0_cons (x, xs) => ( if i > 0 then cons0(x, fset(xs, i-1)) else cons0(x0, xs) // end of [if] ) // end of [list0_cons] | list0_nil() => $raise ListSubscriptExn() // ) (* end of [fset] *) // val i0 = g1ofg0(i0) // in // if i0 >= 0 then fset(xs, i0) else $raise ListSubscriptExn() // end // end of [list0_fset_at_exn] // (* ****** ****** *) implement {a}(*tmp*) list0_fset_at_opt ( xs, i0, x0 ) = $effmask_exn ( try Some_vt{list0(a)} ( list0_fset_at_exn(xs, i0, x0) ) with ~ListSubscriptExn((*void*)) => None_vt() ) (* $effmask_exn *) (* ****** ****** *) implement {a}(*tmp*) list0_fexch_at_exn (xs, i0, x0) = let // val p0 = addr@(x0) // fun fexch {i:nat} .. ( xs: list0(a), i: int(i), visited: List0_vt(a) ) : list0(a) = ( case+ xs of | list0_cons (x1, xs) => ( if (i > 0) then ( fexch (xs, i-1, list_vt_cons(x1, visited)) ) else let val x2 = $UN.ptr0_get(p0) val () = $UN.ptr0_set(p0, x1) val x2_xs = g1ofg0(list0_cons(x2, xs)) in g0ofg1(list_reverse_append1_vt(visited, x2_xs)) end // end of [else] ) | list0_nil() => let val () = list_vt_free(visited) in $raise ListSubscriptExn() end // end of [list0_nil] ) // val i0 = g1ofg0(i0) // in if i0 >= 0 then fexch(xs, i0, list_vt_nil()) else $raise ListSubscriptExn() // end of [if] end // end of [list0_fexch_at_exn] (* ****** ****** *) implement {a}(*tmp*) list0_fexch_at_opt ( xs, i0, x0 ) = let // val p0 = addr@x0 // in // $effmask_exn ( try Some_vt{list0(a)} ( let val (pf, fpf | p0) = $UN.ptr_vtake{a}(p0) val res = list0_fexch_at_exn(xs, i0, !p0) prval ((*returned*)) = fpf(pf) in res end // end of [let] ) with ~ListSubscriptExn((*void*)) => None_vt() ) (* $effmask_exn *) // end // end of [list0_fexch_at_opt] (* ****** ****** *) implement {a}(*tmp*) list0_insert_at_exn (xs, i, x0) = let // fun aux {i:nat} .. ( xs: list0 a, i: int i, x0: a ) : list0 a = let in // if i > 0 then ( // case+ xs of | list0_cons (x, xs) => ( list0_cons{a}(x, aux (xs, i-1, x0)) ) | list0_nil() => $raise ListSubscriptExn() // ) else ( list0_cons{a}(x0, xs) ) (* end of [if] *) // end // end of [aux] // val i = g1ofg0_int(i) // in // if i >= 0 then aux (xs, i, x0) else $raise IllegalArgExn("list0_insert_at_exn:i") // end // end of [list0_insert_at_exn] (* ****** ****** *) local fun{ a:t0p } auxlst {i:nat} .. ( xs: list0 (a), i: int i, x0: &a? >> a ) : list0 a = let // extern praxi __assert : (&a? >> a) - void // in // case+ xs of | list0_cons (x, xs) => let in if i > 0 then list0_cons{a}(x, auxlst (xs, i-1, x0)) else let val () = x0 := x in xs end (* end of [if] *) end // end of [list0_cons] | list0_nil () => let prval () = __assert (x0) in $raise ListSubscriptExn() end // end of [list0_nil] // end // end of [auxlst] in (* in of [local] *) implement {a}(*tmp*) list0_remove_at_exn (xs, i) = let // var x0: a? val i = g1ofg0_int (i) // in $effmask_wrt ( if i >= 0 then auxlst (xs, i, x0) else ( $raise IllegalArgExn("list0_remove_at_exn:i") ) (* end of [else] *) ) end // end of [list0_remove_at_exn] (* ****** ****** *) implement {a}(*tmp*) list0_takeout_at_exn (xs, i, x0) = let // val i = g1ofg0_int (i) // extern praxi __assert : (&a? >> a) - void // in // if i >= 0 then auxlst (xs, i, x0) else let prval () = __assert (x0) in $raise IllegalArgExn("list0_takeout_at_exn:i") end // end of [if] // end // end of [list0_takeout_at_exn] end // end of [local] (* ****** ****** *) // implement {a}(*tmp*) list0_length (xs) = list_length(g1ofg0(xs)) // (* ****** ****** *) implement {a}(*tmp*) list0_append (xs, ys) = let val xs = g1ofg0(xs) and ys = g1ofg0(ys) in // list0_of_list(list_append(xs, ys)) // end // end of [list0_append] (* ****** ****** *) implement {a}(*tmp*) list0_extend (xs, x) = let // val xs = g1ofg0(xs) // in // $effmask_wrt ( list0_of_list_vt(list_extend(xs, x)) ) (* $effmask_wrt *) // end // end of [list0_extend] (* ****** ****** *) // implement {a}(*tmp*) mul_int_list0 (m, xs) = $effmask_wrt ( list0_of_list_vt (mul_int_list(m, g1ofg0(xs))) ) (* end of [mul_int_list0] *) // (* ****** ****** *) implement {a}(*tmp*) list0_reverse(xs) = list0_reverse_append(xs, list0_nil) // end of [list0_reverse] implement {a}(*tmp*) list0_reverse_append (xs, ys) = let val xs = g1ofg0(xs) and ys = g1ofg0(ys) in list0_of_list(list_reverse_append(xs, ys)) end // end of [list0_reverse_append] (* ****** ****** *) implement {a}(*tmp*) list0_concat (xss) = let // typedef xss = List(List(a)) // in // $effmask_wrt ( list0_of_list_vt{a} (list_concat($UN.cast{xss}(xss))) ) (* $effmask_wrt *) end // end of [list0_concat] (* ****** ****** *) implement {a}(*tmp*) list0_take_exn (xs, i) = let // val i = g1ofg0_int(i) val xs = g1ofg0_list(xs) // in // if (i >= 0) then let // val res = $effmask_wrt(list_take_exn(xs, i)) // in list0_of_list_vt(res) end else ( $raise(IllegalArgExn"list0_take_exn:i") ) (* end of [if] *) end // end of [list0_take_exn] (* ****** ****** *) implement {a}(*tmp*) list0_drop_exn (xs, i) = let // val i = g1ofg0_int (i) val xs = g1ofg0_list (xs) // in // if (i >= 0) then g0ofg1(list_drop_exn(xs, i)) else $raise(IllegalArgExn"list0_drop_exn:i") // end // end of [list0_drop_exn] (* ****** ****** *) // implement {a}{b}//tmp list0_cata (xs, fnil, fcons) = ( case+ xs of | list0_nil() => fnil() | list0_cons(x, xs) => fcons(x, xs) ) // (* ****** ****** *) // implement {a}(*tmp*) list0_app (xs, fopr) = list0_foreach(xs, fopr) // (* ****** ****** *) // implement {a}(*tmp*) list0_foreach ( xs, fwork ) = loop(xs) where { // fun loop(xs: list0(a)): void = ( case+ xs of | list0_nil() => () | list0_cons (x, xs) => (fwork(x); loop(xs)) // end of [list0_cons] ) // } (* end of [list0_foreach] *) // implement {a}(*tmp*) list0_foreach_method(xs) = lam(fwork) => list0_foreach(xs, fwork) // (* ****** ****** *) // implement {a}(*tmp*) list0_rforeach ( xs, fwork ) = aux0(xs) where { // fun aux0(xs: list0(a)): void = ( case+ xs of | list0_nil() => () | list0_cons(x, xs) => (aux0(xs); fwork(x)) ) // } (* end of [list0_rforeach] *) // implement {a}(*tmp*) list0_rforeach_method(xs) = lam(fwork) => list0_rforeach(xs, fwork) // (* ****** ****** *) implement {a}(*tmp*) list0_iforeach (xs, fwork) = let // fun loop ( i0: intGte(0), xs: list0(a) ) : intGte(0) = ( case+ xs of | list0_nil() => i0 | list0_cons(x, xs) => (fwork(i0, x); loop (i0+1, xs)) // end of [list0_cons] ) (* end of [loop] *) // in loop (0, xs) end // end of [list0_iforeach] // implement {a}(*tmp*) list0_iforeach_method(xs) = lam(fwork) => list0_iforeach(xs, fwork) // (* ****** ****** *) implement {a1,a2} list0_foreach2 (xs1, xs2, fwork) = let var sgn: int // uninitialized in list0_foreach2_eq (xs1, xs2, fwork, sgn) end // end of [list0_foreach2] implement {a1,a2} list0_foreach2_eq ( xs1, xs2, fwork, sgn ) = loop(xs1, xs2, sgn) where { // fun loop ( xs1: list0(a1) , xs2: list0(a2) , sgn: &int? >> int ) : void = ( case+ xs1 of | list0_nil() => ( case+ xs2 of | list0_nil() => (sgn := 0) | list0_cons _ => (sgn := ~1) ) | list0_cons(x1, xs1) => ( case+ xs2 of | list0_nil () => (sgn := 1) | list0_cons(x2, xs2) => (fwork(x1, x2); loop(xs1, xs2, sgn)) ) ) // } (* end of [list0_foreach2_eq] *) (* ****** ****** *) implement {res}{a} list0_foldleft (xs, ini, fopr) = let // fun loop ( xs: list0(a), res: res ) : res = ( case+ xs of | list0_nil () => res | list0_cons(x, xs) => loop(xs, fopr(res, x)) ) in loop(xs, ini) end // end of [list0_foldleft] // implement {res}{a} list0_foldleft_method(xs, _) = lam(ini, fopr) =>list0_foldleft(xs, ini, fopr) // (* ****** ****** *) implement {res}{a} list0_ifoldleft (xs, ini, fopr) = let // fun loop ( i: int, xs: list0 (a), res: res ) : res = ( case+ xs of | list0_nil () => res | list0_cons(x, xs) => loop(i+1, xs, fopr(res, i, x)) ) (* end of [loop] *) in loop (0, xs, ini) end // end of [list0_ifoldleft] // implement {res}{a} list0_ifoldleft_method(xs, _) = ( lam(ini, fopr) => list0_ifoldleft(xs, ini, fopr) // end of [lam ) // (* ****** ****** *) implement {res}{a1,a2} list0_foldleft2 ( xs1, xs2, ini, fopr ) = let // fun loop ( xs1: list0(a1) , xs2: list0(a2), res: res ) : res = ( case+ xs1 of | list0_nil() => res | list0_cons(x1, xs1) => ( case+ xs2 of | list0_nil() => res | list0_cons (x2, xs2) => ( loop(xs1, xs2, fopr(res, x1, x2)) ) (* end of [list0_cons] *) ) ) (* end of [loop] *) // in loop(xs1, xs2, ini) end (* end of [list0_foldleft2] *) (* ****** ****** *) implement {a}{res} list0_foldright ( xs, fopr, snk ) = loop(xs) where { // fun loop(xs: list0(a)): res = case+ xs of | list0_nil() => snk | list0_cons (x, xs) => fopr(x, loop(xs)) // } (* end of [list0_foldright] *) // implement {a}{res} list0_foldright_method(xs, _) = lam(f, snk) => list0_foldright(xs, f, snk) // (* ****** ****** *) implement {a}(*tmp*) list0_exists ( xs, pred ) = loop(xs) where { // fun loop(xs: list0(a)): bool = ( case+ xs of | list0_nil() => false | list0_cons (x, xs) => if pred(x) then true else loop(xs) // list0_cons ) (* end of [loop] *) // } (* end of [list0_exists] *) // implement {a}(*tmp*) list0_exists_method(xs) = lam(p) => list0_exists(xs, p) // (* ****** ****** *) implement {a}(*tmp*) list0_iexists ( xs, pred ) = loop(0, xs) where { // fun loop(i: intGte(0), xs: list0(a)): bool = ( case+ xs of | list0_nil() => false | list0_cons(x, xs) => if pred(i, x) then true else loop(i+1, xs) // list0_cons ) (* end of [loop] *) // } (* end of [list0_iexists] *) // implement {a}(*tmp*) list0_iexists_method(xs) = lam(p) => list0_iexists (xs, p) // (* ****** ****** *) implement {a1,a2} list0_exists2 (xs1, xs2, p0) = let // var sgn: int // uninitized // in list0_exists2_eq(xs1, xs2, p0, sgn) end // end of [list0_exists2] implement {a1,a2} list0_exists2_eq ( xs1, xs2, pred, sgn ) = loop(xs1, xs2, sgn) where { // fun loop ( xs1: list0(a1) , xs2: list0(a2) , sgn: &int? >> _ ) : bool = ( case+ xs1 of | list0_nil() => ( case+ xs2 of | list0_nil() => (sgn := 0; false) | list0_cons _ => (sgn := ~1; false) ) | list0_cons (x1, xs1) => ( case+ xs2 of | list0_nil() => (sgn := 1; false) | list0_cons (x2, xs2) => ( if pred(x1, x2) then (sgn := 0; true) else loop(xs1, xs2, sgn) // end of [if] ) (* end of [list0_cons] *) ) ) } (* end of [list0_exists2_eq] *) (* ****** ****** *) implement {a}(*tmp*) list0_forall ( xs, pred ) = loop(xs) where { // fun loop(xs: list0(a)): bool = ( case+ xs of | list0_nil() => true | list0_cons(x, xs) => if pred(x) then loop(xs) else false // list0_cons ) (* end of [loop] *) // } (* end of [list0_forall] *) // implement {a}(*tmp*) list0_forall_method(xs) = lam(p) => list0_forall (xs, p) // (* ****** ****** *) implement {a}(*tmp*) list0_iforall ( xs, pred ) = loop(0, xs) where { // fun loop(i: intGte(0), xs: list0(a)): bool = ( case+ xs of | list0_nil() => true | list0_cons(x, xs) => if pred(i, x) then loop(i+1, xs) else false // list0_cons ) (* end of [loop] *) // } (* end of [list0_iforall] *) // implement {a}(*tmp*) list0_iforall_method(xs) = lam(p) => list0_iforall (xs, p) // (* ****** ****** *) implement {a1,a2} list0_forall2 (xs1, xs2, p0) = let // var sgn: int // uninitized // in list0_forall2_eq(xs1, xs2, p0, sgn) end // end of [list0_forall2] implement {a1,a2} list0_forall2_eq ( xs1, xs2, pred, sgn ) = loop(xs1, xs2, sgn) where { // fun loop ( xs1: list0(a1) , xs2: list0(a2) , sgn: &int? >> _ ) : bool = ( case+ xs1 of | list0_nil() => ( case+ xs2 of | list0_nil() => (sgn := 0; true) | list0_cons _ => (sgn := ~1; true) ) | list0_cons (x1, xs1) => ( case+ xs2 of | list0_nil() => (sgn := 1; true) | list0_cons (x2, xs2) => ( if pred(x1, x2) then loop(xs1, xs2, sgn) else (sgn := 0; false) // end of [if] ) (* end of [list0_cons] *) ) ) } (* end of [list0_forall2_eq] *) (* ****** ****** *) implement {a}(*tmp*) list0_equal ( xs1, xs2, eqfn ) = loop(xs1, xs2) where { // fun loop ( xs1: list0(a), xs2: list0(a) ) : bool = ( case+ xs1 of | list0_nil() => ( case+ xs2 of | list0_nil() => true | list0_cons _ => false ) | list0_cons (x1, xs1) => ( case+ xs2 of | list0_nil () => false // list0_nil | list0_cons (x2, xs2) => if eqfn(x1, x2) then loop(xs1, xs2) else false // end of [if] // end of [list0_cons] ) ) (* end of [loop] *) // } (* end of [list0_equal] *) (* ****** ****** *) implement {a}(*tmp*) list0_compare ( xs1, xs2, cmpfn ) = loop(xs1, xs2) where { // fun loop ( xs1: list0(a), xs2: list0(a) ) : int = ( case+ xs1 of | list0_nil() => ( case+ xs2 of | list0_nil() => 0 | list0_cons _ => ~1 ) | list0_cons (x1, xs1) => ( case+ xs2 of | list0_nil() => (1) | list0_cons (x2, xs2) => let val sgn = cmpfn(x1, x2) in if sgn != 0 then sgn else loop(xs1, xs2) end // end of [list0_cons] ) ) (* end of [loop] *) // } (* end of [list0_compare] *) (* ****** ****** *) implement {a}(*tmp*) list0_find_exn ( xs, pred ) = loop(xs) where { // fun loop(xs: list0(a)): a = ( case+ xs of | list0_nil() => $raise NotFoundExn() // list0_nil | list0_cons(x, xs) => if pred(x) then x else loop(xs) // list0_cons ) // } (* end of [list0_find_exn] *) (* ****** ****** *) implement {a}(*tmp*) list0_find_opt ( xs, pred ) = loop(xs) where { // fun loop ( xs: list0(a) ) : Option_vt(a) = // case+ xs of | list0_nil() => None_vt(*void*) // list0_nil | list0_cons(x, xs) => ( if pred(x) then Some_vt{a}(x) else loop(xs) // end of [if] ) (* end of [list_cons] *) // } (* end of [list0_find_opt] *) (* ****** ****** *) // implement {a}(*tmp*) list0_find_exn_method (xs) = lam(pred) => list0_find_exn(xs, pred) // implement {a}(*tmp*) list0_find_opt_method (xs) = lam(pred) => list0_find_opt(xs, pred) // (* ****** ****** *) implement {a}(*tmp*) list0_find_index ( xs, pred ) = loop(xs, 0) where { // fun loop ( xs: list0(a), i: intGte(0) ) : intGte(~1) = // case+ xs of | list0_nil() => (~1) | list0_cons(x, xs) => ( if pred(x) then (i) else loop(xs, i+1) // end of [if] ) (* end of [list0_cons] *) // } (* end of [list0_find_index] *) (* ****** ****** *) implement {a}(*tmp*) list0_find_suffix ( xs, pred ) = loop(xs) where { // fun loop(xs: list0(a)): list0(a) = ( case+ xs of | list0_nil() => list0_nil() | list0_cons(_, xs2) => if pred(xs) then xs else loop(xs2) ) // } (* end of [list0_find_suffix] *) (* ****** ****** *) implement {a}(*tmp*) list0_skip_while (xs, pred) = auxmain(xs) where { // fun auxmain ( xs: list0(a) ) : list0(a) = ( case+ xs of | list0_nil() => list0_nil() | list0_cons(x0, xs1) => if pred(x0) then auxmain(xs1) else xs ) // } // end of [list0_skip_while] implement {a}(*tmp*) list0_skip_until (xs, pred) = auxmain(xs) where { // fun auxmain ( xs: list0(a) ) : list0(a) = ( case+ xs of | list0_nil() => list0_nil() | list0_cons(x0, xs1) => if pred(x0) then xs else auxmain(xs1) ) // } // end of [list0_skip_until] (* ****** ****** *) implement {a}(*tmp*) list0_take_while (xs, pred) = let // fun auxmain ( xs: list0(a), res: List0_vt(a) ) : List0_vt(a) = ( case+ xs of | list0_nil() => res | list0_cons(x0, xs1) => if pred(x0) then auxmain(xs1, list_vt_cons(x0, res)) else res // end of [if] ) // in // list0_vt2t (g0ofg1(list_vt_reverse(auxmain(xs, list_vt_nil())))) // end // end of [list0_take_while] implement {a}(*tmp*) list0_take_until (xs, pred) = let // fun auxmain ( xs: list0(a), res: List0_vt(a) ) : List0_vt(a) = ( case+ xs of | list0_nil() => res | list0_cons(x0, xs1) => if pred(x0) then res else auxmain(xs1, list_vt_cons(x0, res)) // end of [if] ) // in // list0_vt2t (g0ofg1(list_vt_reverse(auxmain(xs, list_vt_nil())))) // end // end of [list0_take_until] (* ****** ****** *) implement {a,b}(*tmp*) list0_assoc_exn ( xys, x0, eq ) = loop(xys, x0, eq) where { // fun loop: $d2ctype ( list0_assoc_exn ) = lam(xys, x0, eq) => // case+ xys of | list0_nil() => $raise NotFoundExn() | list0_cons(xy, xys) => if eq (x0, xy.0) then xy.1 else loop(xys, x0, eq) // end of [list0_cons] // } (* end of [list0_assoc_exn] *) (* ****** ****** *) implement {a,b}(*tmp*) list0_assoc_opt ( xys, x0, eq ) = loop(xys, x0, eq) where { fun loop: $d2ctype( list0_assoc_opt ) = lam(xys, x0, eq) => // case+ xys of | list0_nil() => None_vt(*void*) // list0_nil | list0_cons(xy, xys) => ( if eq (x0, xy.0) then Some_vt{b}(xy.1) else loop(xys, x0, eq) // end of [if] ) (* end of [list_cons] *) // } (* end of [list0_assoc_opt] *) (* ****** ****** *) // implement {a}(*tmp*) list0_filter (xs, pred) = let // implement{a2} list_filter$pred (x) = pred($UN.cast{a}(x)) // val ys = list_filter(g1ofg0(xs)) // in list0_of_list_vt (ys) end // end of [list0_filter] // implement {a}(*tmp*) list0_filter_method (xs) = lam(pred) => list0_filter(xs, pred) // (* ****** ****** *) // (* implement {a}{b} list0_map (xs, fopr) = let viewdef v = unit_v viewtypedef fun_vt = cfun (a, b) fun app .<>. (pfu: !unit_v | x: a, fopr: !fun_vt): b = fopr (x) // end of [fun] prval pfu = unit_v () var fopr = fopr val ys = list_map_funenv {v}{vt} (pfu | g1ofg0(xs), app, fopr) prval () = topize(fopr) prval unit_v((*void*)) = pfu in list0_of_list_vt (ys) end // end of [list0_map] *) // implement {a}{b} list0_map(xs, fopr) = let // implement {a2}{b2} list_map$fopr(x) = $UN.castvwtp0{b2}(fopr($UN.cast{a}(x))) // val ys = list_map(g1ofg0_list(xs)) // in list0_of_list_vt{b}(ys) end // end of [list0_map] (* ****** ****** *) implement {a}{b} list0_mapopt (xs, fopr) = res where { // fun loop ( xs: list0 (a) , res: &ptr? >> List0_vt(b) ) : void = let in // case+ xs of | list0_nil () => ( res := list_vt_nil () ) (* end of [list0_nil] *) | list0_cons (x, xs) => ( case+ fopr(x) of | ~Some_vt(y) => let val () = ( res := list_vt_cons{b}{0}(y, _) ) val+ list_vt_cons(_, res1) = res val () = loop(xs, res1) prval ((*folded*)) = fold@(res) in // nothing end // end of [Some0] | ~None_vt((*void*)) => loop(xs, res) ) (* end of [list0_cons] *) // end // end of [loop] // var res: ptr val () = loop (xs, res) val res = list0_of_list_vt (res) // } // end of [list0_mapopt] (* ****** ****** *) // implement {a}{b} list0_map_method (xs, _) = lam(fopr) => list0_map(xs, fopr) implement {a}{b} list0_mapopt_method (xs, _) = lam(fopr) => list0_mapopt(xs, fopr) // (* ****** ****** *) implement {a}(*tmp*) list0_mapcons (x0, xss) = let // implement list_map$fopr (xs) = list0_cons(x0, xs) // val xss = g1ofg0 (xss) val res = list_map (xss) // in list0_of_list_vt (res) end // end of [list0_mapcons] (* ****** ****** *) // implement {a}{b} list0_mapjoin ( xs , fopr ) = list0_concat (list0_map(xs, fopr)) // implement {a}{b} list0_mapjoin_method (xs) = lam(fopr) => list0_mapjoin(xs, fopr) // (* ****** ****** *) implement {a}{b} list0_imap (xs, fopr) = let // implement {a2}{b2} list_imap$fopr(i, x) = let val x = $UN.cast{a}(x) in $UN.castvwtp0{b2}(fopr(i, x)) end // end of [list_imap$fopr] // val ys = list_imap(g1ofg0_list(xs)) // in list0_of_list_vt{b}(ys) end // end of [list0_imap] (* ****** ****** *) implement {a}{b} list0_imapopt (xs, fopr) = res where { // fun loop ( i0: int , xs: list0 (a) , res: &ptr? >> List0_vt(b) ) : void = let in // case+ xs of | list0_nil () => ( res := list_vt_nil () ) (* end of [list0_nil] *) | list0_cons (x, xs) => ( case+ fopr(i0, x) of | ~Some_vt(y) => let val () = ( res := list_vt_cons{b}{0}(y, _) ) val+ list_vt_cons(_, res1) = res val () = loop(i0+1, xs, res1) prval ((*folded*)) = fold@(res) in // nothing end // end of [Some0] | ~None_vt((*void*)) => loop(i0+1, xs, res) ) (* end of [list0_cons] *) // end // end of [loop] // var res: ptr val () = loop(0, xs, res) val res = list0_of_list_vt(res) // } // end of [list0_imapopt] (* ****** ****** *) // implement {a}{b} list0_imap_method (xs, _(*TYPE*)) = lam(fopr) => list0_imap(xs, fopr) // implement {a}{b} list0_imapopt_method (xs, _(*TYPE*)) = lam(fopr) => list0_imapopt(xs, fopr) // (* ****** ****** *) // (* implement {a1,a2}{b} list0_map2 (xs1, xs2, fopr) = let viewdef v0 = unit_v viewtypedef fun_vt = cfun2 (a1, a2, b) val xs1 = g1ofg0_list(xs1) val xs2 = g1ofg0_list(xs2) fun app .<>. (pfu: !v0 | x1: a1, x2: a2, f: !fun_vt): b = fopr(x1, x2) // end of [fun] prval pfu = unit_v () var fopr = fopr val ys = list_map2_funenv {v0}{vt} (pfu | xs1, xs2, app, fopr) prval () = topize(fopr) prval unit_v((*void*)) = pfu in list0_of_list_vt (ys) end // end of [list0_map2] *) // implement {a1,a2}{b} list0_map2 (xs1, xs2, fopr) = let // implement {a11,a12}{b2} list_map2$fopr (x1, x2) = $UN.castvwtp0{b2} (fopr($UN.cast{a1}(x1), $UN.cast{a2}(x2))) // in list0_of_list_vt{b}(list_map2(g1ofg0(xs1), g1ofg0(xs2))) end // end of [list0_map2] // (* ****** ****** *) // implement {a1,a2}{b} list0_imap2 (xs1, xs2, fopr) = let // var _n_: int = 0 val nptr = addr@(_n_) // implement {a11,a12}{b2} list_map2$fopr (x1, x2) = let // val n0 = $UN.ptr0_get(nptr) val res = $UN.castvwtp0{b2} (fopr(n0, $UN.cast{a1}(x1), $UN.cast{a2}(x2))) in $UN.ptr0_set(nptr, n0+1); res end // end of [list_map2$fopr] // in list0_of_list_vt{b}(list_map2(g1ofg0(xs1), g1ofg0(xs2))) end // end of [list0_imap2] // (* ****** ****** *) implement {a}(*tmp*) list0_tabulate {n}(n, fopr) = let // implement{a2} list_tabulate$fopr (i) = let val i = $UN.cast{natLt(n)}(i) in $UN.castvwtp0{a2}(fopr(i)) end // list_tabulate$fopr // val n = g1ofg0_int(n) // in // if (n >= 0) then list0_of_list_vt(list_tabulate(n)) else $raise IllegalArgExn("list0_tabulate:n") // end of [if] end // end of [list0_tabulate] (* ****** ****** *) implement {a}(*tmp*) list0_tabulate_opt (n, fopr) = res where { // fun loop ( i: Nat , res: &ptr? >> List0_vt(a) ) : void = let in // if (n > i) then ( case+ fopr(i) of | ~None_vt() => loop(i+1, res) // end of [None_vt] | ~Some_vt(x) => let // val () = ( res := list_vt_cons{a}{0}(x, _) ) (* end of [val] *) // val+list_vt_cons(_, res1) = res // val () = loop (i+1, res1) // prval ((*folded*)) = fold@ (res) in // nothing end // end of [Some0] ) else ( res := list_vt_nil((*void*)) ) (* end of [if] *) // end // end of [loop] // var res: ptr val () = loop (0, res) val res = list0_of_list_vt (res) // } // end of [list0_tabulate_opt] (* ****** ****** *) implement {x,y} list0_zip (xs, ys) = let // val xs = g1ofg0(xs) and ys = g1ofg0(ys) val xys = $effmask_wrt(list_zip (xs, ys)) // in list0_of_list_vt{(x,y)}(xys) end // end of [list0_zip] (* ****** ****** *) implement {x,y} list0_cross (xs, ys) = let // val xs = g1ofg0(xs) and ys = g1ofg0(ys) val xys = $effmask_wrt(list_cross (xs, ys)) // in list0_of_list_vt{(x,y)}(xys) end // end of [list0_cross] (* ****** ****** *) implement {x,y}{z} list0_crosswith (xs, ys, fopr) = let // implement {x2,y2}{z2} list_crosswith$fopr(x, y) = $UN.castvwtp0{z2} (fopr($UN.cast{x}(x), $UN.cast{y}(y))) // val xs = g1ofg0(xs) and ys = g1ofg0(ys) val zs = $effmask_wrt(list_crosswith (xs, ys)) // in list0_of_list_vt{z}(zs) end // end of [list0_crosswith] (* ****** ****** *) implement {x}(*tmp*) list0_choose2_foreach ( xs, fwork ) = loop(xs) where { // fnx loop(xs: list0(x)): void = ( case+ xs of | list0_nil() => () | list0_cons (x, xs) => loop2(x, xs, xs) // end of [list0_cons] ) and loop2 ( x0: x, xs: list0(x), ys: list0(x) ) : void = ( case+ ys of | list0_nil () => loop(xs) | list0_cons (y, ys) => let val () = fwork(x0, y) in loop2(x0, xs, ys) end // end of [list_cons] ) // } (* end of [list0_choose2_foreach] *) // implement {x}(*tmp*) list0_choose2_foreach_method(xs) = lam(fwork) => list0_choose2_foreach(xs, fwork) // (* ****** ****** *) implement {x,y}(*tmp*) list0_xprod2_foreach ( xs0, ys0, fwork ) = loop(xs0) where { // fnx loop(xs: list0(x)): void = ( case+ xs of | list0_nil() => () | list0_cons(x, xs) => loop2(x, xs, ys0) ) and loop2 ( x0: x, xs: list0(x), ys: list0(y) ) : void = ( case+ ys of | list0_nil() => loop(xs) | list0_cons(y, ys) => (fwork(x0, y); loop2(x0, xs, ys)) ) // } (* end of [list0_xprod2_foreach] *) // implement {x,y}(*tmp*) list0_xprod2_foreach_method (xs, ys) = ( lam(fwork) => list0_xprod2_foreach(xs, ys, fwork) ) // (* ****** ****** *) implement {x,y}(*tmp*) list0_xprod2_iforeach ( xs0, ys0, fwork ) = loop(0, xs0) where { // typedef int = intGte(0) // fnx loop ( i: int, xs: list0(x) ) : void = ( case+ xs of | list0_nil() => () | list0_cons (x, xs) => loop2(i, x, xs, 0, ys0) // end of [list_cons] ) and loop2 ( i0: int, x0: x , xs: list0(x), j: int, ys: list0(y) ) : void = ( case+ ys of | list0_nil() => loop(i0+1, xs) | list0_cons(y, ys) => (fwork(i0, x0, j, y); loop2(i0, x0, xs, j+1, ys)) // end of [list0_cons] ) // } (* end of [list0_xprod2_iforeach] *) // implement {x,y}(*tmp*) list0_xprod2_iforeach_method (xs, ys) = ( lam(fwork) => list0_xprod2_iforeach(xs, ys, fwork) ) (* list0_xprod2_iforeach_method *) // (* ****** ****** *) // implement {a}(*tmp*) streamize_list0_elt (xs) = streamize_list_elt(g1ofg0(xs)) // (* ****** ****** *) // implement {a}(*tmp*) un_streamize_list0_elt (xs) = ( list0_of_list_vt{a}(stream2list_vt(xs)) ) // (* ****** ****** *) implement {a}(*tmp*) streamize_list0_suffix (xs) = let // fun auxmain: $d2ctype ( streamize_list0_suffix ) = lam(xs) => $ldelay ( case+ xs of | list0_nil() => stream_vt_nil() | list0_cons(x0, xs1) => stream_vt_cons(xs, auxmain(xs1)) ) // in auxmain(xs) end (* end of [streamize_list0_suffix] *) (* ****** ****** *) // implement {a}(*tmp*) streamize_list0_choose2 (xs) = streamize_list_choose2(g1ofg0(xs)) // (* ****** ****** *) implement {a}(*tmp*) streamize_list0_nchoose (xs, n) = let // fun auxmain ( xs: list0(a), n: intGte(0) ) : stream_vt(list0(a)) = $ldelay ( // if (n > 0) then ( case+ xs of | list0_nil() => stream_vt_nil() | list0_cons(x0, xs1) => let val res1 = auxmain(xs1, n-1) // end of [val] val res2 = auxmain(xs1, n) in !(stream_vt_append ( stream_vt_map_cloptr(res1, lam(ys) => list0_cons(x0, ys)), res2 ) // stream_vt_append ) end // end of [list0_cons] ) (* end of [then] *) else ( stream_vt_cons(list0_nil, stream_vt_make_nil()) ) (* end of [else] *) // ) : stream_vt_con(list0(a)) // auxmain // in $effmask_all(auxmain(xs, n)) end // end of [streamize_list0_nchoose] (* ****** ****** *) // implement {a,b}(*tmp*) streamize_list0_zip (xs, ys) = streamize_list_zip(g1ofg0(xs), g1ofg0(ys)) // implement {a,b}(*tmp*) streamize_list0_cross (xs, ys) = streamize_list_cross(g1ofg0(xs), g1ofg0(ys)) // (* ****** ****** *) implement {a}(*tmp*) list0_is_ordered (xs, cmp) = let // implement gcompare_val_val(x, y) = cmp(x, y) // in list_is_ordered(g1ofg0_list{a}(xs)) end // end of [list0_is_ordered] (* ****** ****** *) implement {a}(*tmp*) list0_mergesort(xs, cmp) = let // implement list_mergesort$cmp(x, y) = cmp(x, y) // val ys = $effmask_wrt(list_mergesort(g1ofg0(xs))) // in list0_of_list_vt (ys) end // end of [list0_mergesort] (* ****** ****** *) implement {a}(*tmp*) list0_quicksort(xs, cmp) = let // implement list_quicksort$cmp(x, y) = cmp(x, y) // val ys = $effmask_wrt(list_quicksort(g1ofg0(xs))) // in list0_of_list_vt (ys) end // end of [list0_quicksort] (* ****** ****** *) // // HX: some common generic functions // (* ****** ****** *) // implement (a)(*tmp*) fprint_val = fprint_list0 // (* ****** ****** *) implement (a)(*tmp*) gcompare_val_val (xs, ys) = let // fun auxlst ( xs: list0(a), ys: list0(a) ) : int = ( case+ xs of | list0_nil() => ( case+ ys of | list0_nil() => 0 | list0_cons _ => ~1 ) (* list0_nil *) | list0_cons(x, xs) => ( case+ ys of | list0_nil() => 1 | list0_cons(y, ys) => let val sgn = gcompare_val_val(x, y) // end of [val] in if sgn != 0 then sgn else auxlst(xs, ys) end // end of [list0_cons] ) (* list0_cons *) ) (* end of [auxlst] *) // in $effmask_all(auxlst(xs, ys)) end (* end of [gcompare_val_val] *) (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/string.dats0000644000175000017500000003101513431250607021366 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX: // no need for // dynloading at run-time // #define ATS_DYNLOADFLAG 0 // // HX: // prefix for external names // #define ATS_EXTERN_PREFIX "atslib_ML_" // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // extern fun memcpy ( d0: ptr , s0: ptr , n0: size_t ) : ptr = "mac#atspre_string_memcpy" // end of [memcpy] // (* ****** ****** *) // macdef prelude_string_sing = string_sing // macdef prelude_string_is_empty = string_is_empty macdef prelude_string_isnot_empty = string_isnot_empty // macdef prelude_string0_copy = string0_copy // macdef prelude_string_make_list = string_make_list macdef prelude_string_make_rlist = string_make_rlist // macdef prelude_string_make_substring = string_make_substring // macdef prelude_string0_length = string0_length macdef prelude_string1_length = string1_length // macdef prelude_string0_append = string0_append macdef prelude_string0_append3 = string0_append3 macdef prelude_string0_append4 = string0_append4 macdef prelude_string0_append5 = string0_append5 macdef prelude_string0_append6 = string0_append6 // macdef prelude_stringlst_concat = stringlst_concat // macdef prelude_string_implode = string_implode macdef prelude_string_explode = string_explode // macdef prelude_string_tabulate = string_tabulate // macdef prelude_string_forall = string_forall macdef prelude_string_iforall = string_iforall // macdef prelude_string_foreach = string_foreach // macdef prelude_streamize_string_char = streamize_string_char macdef prelude_un_streamize_string_char = un_streamize_string_char // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/string.sats" (* ****** ****** *) macdef castvwtp_trans = $UN.castvwtp0 // former name (* ****** ****** *) implement {}(*tmp*) itoa(int) = $effmask_wrt (strptr2string(g0int2string_int(int))) // end of [iota] (* ****** ****** *) // implement {}(*tmp*) string_sing(c) = strnptr2string ($effmask_wrt(prelude_string_sing(c))) // (* ****** ****** *) // implement {}(*tmp*) string_is_empty (str) = ( prelude_string_is_empty(g1ofg0(str)) ) implement {}(*tmp*) string_isnot_empty (str) = ( prelude_string_isnot_empty(g1ofg0(str)) ) // (* ****** ****** *) implement {}(*tmp*) string_is_prefix ( str1, str2 ) = let // #define NUL '\000' // fun loop ( p1: ptr, p2: ptr ) : bool = let // val c1 = $UN.ptr0_get(p1) // in // if (c1 != NUL) then let val c2 = $UN.ptr0_get(p2) in // if c1 = c2 then loop(ptr_succ(p1), ptr_succ(p2)) else false // end // end of [then] else (true) // end of [else] // end // end of [loop] // in $effmask_all(loop(string2ptr(str1), string2ptr(str2))) end // end of [string_is_prefix] (* ****** ****** *) implement {}(*tmp*) string_is_suffix ( str1, str2 ) = let // val n1 = length(str1) val n2 = length(str2) // in (* in-of-let *) // if (n1 >= n2) then let val p1 = string2ptr(str1) in // $UN.cast{string} (ptr_add(p1, n1-n2)) = str2 // end // end of [then] else false // end of [else] // end // end of [string_is_suffix] (* ****** ****** *) implement {}(*tmp*) string_copy (str) = ( // strptr2string ($effmask_wrt(prelude_string0_copy(str))) // ) // end of [string_copy] (* ****** ****** *) // implement {}(*tmp*) string_make_list (cs) = let // val cs = $UN.cast {List0(charNZ)}(cs) // val str = $effmask_wrt (prelude_string_make_list(cs)) // in strnptr2string(str) end // end of [string_make_list] implement {}(*tmp*) string_make_list0 (cs) = string_make_list<>(g1ofg0_list(cs)) implement {}(*tmp*) string_make_list_vt (cs) = res where { val res = string_make_list<>($UN.list_vt2t(cs)) val ((*freed*)) = list_vt_free(cs) } // (* ****** ****** *) // implement {}(*tmp*) string_make_rlist (cs) = let // val cs = $UN.cast {List0(charNZ)}(cs) // val str = $effmask_wrt (prelude_string_make_rlist(cs)) // in strnptr2string(str) end // end of [string_make_rlist0] implement {}(*tmp*) string_make_rlist0 (cs) = string_make_rlist<>(g1ofg0_list(cs)) implement {}(*tmp*) string_make_rlist_vt (cs) = res where { val res = string_make_rlist<>($UN.list_vt2t(cs)) val ((*freed*)) = list_vt_free(cs) } // (* ****** ****** *) // implement {}(*tmp*) string_make_prefix (x, ln) = let val st = i2sz(0) in string_make_substring<>(x, st, ln) end // end of [string_make_prefix] // implement {}(*tmp*) string_make_substring (x, st, ln) = let // val x = g1ofg0_string(x) val st = g1ofg0_uint(st) and ln = g1ofg0_uint(ln) val lnx = prelude_string1_length(x) // val st = min(st, lnx) // val substr = $effmask_wrt ( prelude_string_make_substring(x, st, min(ln, lnx-st)) ) (* end of [val] *) // in $UN.castvwtp0{string}(substr) end // end of [string_make_substring] // (* ****** ****** *) implement {}(*tmp*) string_append (str1, str2) = let // val res = $effmask_wrt (prelude_string0_append(str1, str2)) // in strptr2string(res) end // end of [string_append] (* ****** ****** *) implement {}(*tmp*) string_append3 ( str1, str2, str3 ) = let // val res = $effmask_wrt (prelude_string0_append3(str1, str2, str3)) // in strptr2string(res) end // end of [string_append3] (* ****** ****** *) implement {}(*tmp*) string_append4 ( str1, str2 , str3, str4 ) = let // val res = $effmask_wrt (prelude_string0_append4(str1, str2, str3, str4)) // in strptr2string(res) end // end of [string_append4] (* ****** ****** *) implement {}(*tmp*) string_append5 ( str1, str2 , str3, str4, str5) = let // val res = $effmask_wrt ( prelude_string0_append5(str1, str2, str3, str4, str5) ) (* end of [val] *) // in strptr2string(res) end // end of [string_append5] (* ****** ****** *) implement {}(*tmp*) string_append6 ( str1, str2, str3 , str4, str5, str6 ) = let // val res = $effmask_wrt ( prelude_string0_append6(str1, str2, str3, str4, str5, str6) ) (* end of [val] *) // in strptr2string(res) end // end of [string_append6] (* ****** ****** *) implement {}(*tmp*) mul_int_string ( n, x0 ) = let // val n = g1ofg0(n) val x0 = g1ofg0(x0) // in // if (n > 0) then let // val nx0 = length(x0) val ( pf, pfgc | p0 ) = $effmask_wrt ( malloc_gc(n*nx0) ) // val () = loop(p0, n) where { // val x0 = string2ptr(x0) // fun loop {n:nat} .. ( p0: ptr, n: int(n) ) :<> void = ( if (n > 0) then let val _(*p0*) = $effmask_all(memcpy(p0, x0, nx0)) in loop(ptr_add(p0, nx0), pred(n)) end // end of [then] ) (* end of [loop] *) // } (* end of [val] *) // in $UN.castvwtp0{string}((pf, pfgc | p0)) end // end of [then] else "" // end of [else] // end (* end of [mul_int_string] *) (* ****** ****** *) implement {}(*tmp*) stringlst_concat (xs) = strptr2string(res) where { // val res = $effmask_wrt ( prelude_stringlst_concat(g1ofg0_list(xs)) ) (* $effmask_wrt *) } (* end of [stringlst_concat] *) (* ****** ****** *) // implement {}(*tmp*) string_implode (cs) = string_make_list0<>(cs) // (* ****** ****** *) implement {}(*tmp*) string_explode (str) = let // val str = g1ofg0_string(str) // val res = $effmask_wrt (prelude_string_explode(str)) // in list0_of_list_vt(res) end // end of [string_explode] (* ****** ****** *) implement {}(*tmp*) string_copywith (cs, fopr) = let // val cs = g1ofg0(cs) // in // string_tabulate<> (length(cs), lam(i) => fopr(cs[i])) // end // end of [string_copywith] (* ****** ****** *) implement {}(*tmp*) string_tabulate {n}(n0, fopr) = let // val n0 = g1ofg0_uint(n0) // implement string_tabulate$fopr<> (i) = fopr($UN.cast{sizeLt(n)}(i)) // in strnptr2string (prelude_string_tabulate(n0)) end // end of [string_tabulate] (* ****** ****** *) // implement {}(*tmp*) string_find_index (str, c0) = strchr<>(g1ofg0(str), c0) // (* ****** ****** *) implement {}(*tmp*) string_exists (str, pred) = let // val str = g1ofg0_string(str) // implement string_forall$pred<> (c) = not(pred(c)) // in not(prelude_string_forall(str)) end // end of [string_exists] implement {}(*tmp*) string_iexists (str, pred) = let // val str = g1ofg0_string(str) // implement string_iforall$pred<>(i, c) = not(pred(i, c)) // in not(prelude_string_iforall(str)) end // end of [string_iexists] (* ****** ****** *) // implement{} string_exists_method (cs) = lam(pred) => string_exists<>(cs, pred) implement{} string_iexists_method (cs) = lam(pred) => string_iexists<>(cs, pred) // (* ****** ****** *) implement {}(*tmp*) string_forall (str, pred) = let // val str = g1ofg0_string(str) // implement string_forall$pred<>(c) = pred(c) // in prelude_string_forall(str) end // end of [string_forall] implement {}(*tmp*) string_iforall (str, pred) = let // val str = g1ofg0_string(str) // implement string_iforall$pred<>(i, c) = pred(i, c) // in prelude_string_iforall(str) end // end of [string_iforall] (* ****** ****** *) // implement{} string_forall_method (cs) = lam(pred) => string_forall<>(cs, pred) implement{} string_iforall_method (cs) = lam(pred) => string_iforall<>(cs, pred) // (* ****** ****** *) implement {}(*tmp*) string_foreach (cs, f) = let // fun loop ( p0: ptr ) : void = let val c = $UN.ptr0_get(p0) in // if isneqz(c) then (f(c); loop(ptr_succ(p0))) else () // end // end of [loop] // in loop(string2ptr(cs)) end // end of [string_foreach] (* ****** ****** *) implement {}(*tmp*) string_iforeach (cs, f) = let // fun loop ( i: intGte(0), p0: ptr ) : void = let val c = $UN.ptr0_get(p0) in // if isneqz(c) then (f(i, c); loop(i+1, ptr_succ(p0))) else () // end // end of [loop] // in loop(0, string2ptr(cs)) end // end of [string_iforeach] (* ****** ****** *) // implement{} string_foreach_method (cs) = lam(f) => string_foreach<>(cs, f) implement{} string_iforeach_method (cs) = lam(f) => string_iforeach<>(cs, f) // (* ****** ****** *) // implement {res}(*tmp*) string_foldleft (cs, ini, fopr) = let // fun loop ( p0: ptr, res: res ) : res = let val c = $UN.ptr0_get(p0) in // if isneqz(c) then loop(ptr_succ(p0), fopr(res, c)) else res // end // end of [loop] // in loop(string2ptr(cs), ini) end // end of [string_foldleft] // implement {res}(*tmp*) string_foldleft_method (cs, _) = ( lam(ini,fopr) => string_foldleft(cs, ini, fopr) ) // (* ****** ****** *) implement {a}(*tmp*) string_list0_map (cs, fopr) = let // fun loop ( p0: ptr, res: &ptr? >> list0(a) ) : void = let val c0 = $UN.ptr0_get(p0) in if isneqz(c0) then { val x0 = fopr($UN.cast{charNZ}(c0)) // end of [val] val () = (res := list0_cons(x0, _)) // end of [val] val+list0_cons(_, res1) = res val () = loop(ptr_succ(p0), res1) prval ((*folded*)) = fold@(res) } (* end of [then] *) else (res := list0_nil(*void*)) end // end of [loop] // in // let var res: ptr in loop(string2ptr(cs), res); res end // end (* end of [string_list0_map] *) (* ****** ****** *) implement {a}(*tmp*) string_list0_map_method ( cs , _(*type*) ) = ( lam(fopr) => string_list0_map(cs, fopr) ) (* end of [string_list0_map_method] *) (* ****** ****** *) // implement{} streamize_string_char (cs) = prelude_streamize_string_char(cs) // implement{} un_streamize_string_char (cs) = ( strptr2string(prelude_un_streamize_string_char(cs)) ) (* un_streamize_string_char *) // (* ****** ****** *) (* end of [string.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/argvec.dats0000644000175000017500000000407013431250607021330 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: March, 2018 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/argvec.sats" (* ****** ****** *) staload _ = "prelude/DATS/integer.dats" (* ****** ****** *) implement listize_argc_argv {n}(argc, argv) = let // fun loop {i:nat | i <= n} ( i: int(i) , argv: !argv(n) , args: list0(string)): list0(string) = if (i >= 1) then let val arg = argv[i-1] in loop (i-1, argv, list0_cons(arg, args)) end else args // in loop(argc, argv, list0_nil((*void*))) end // end of [listize_argc_argv] (* ****** ****** *) (* end of [argvec.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/strarr.dats0000644000175000017500000002225613431250607021404 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/array0.sats" staload _(*anon*) = "libats/ML/DATS/array0.dats" (* ****** ****** *) staload "libats/ML/SATS/strarr.sats" (* ****** ****** *) implement {}(*tmp*) strarr_get_ref (str) = array0_get_ref (strarr2array (str)) // end of [strarr_get_ref] implement {}(*tmp*) strarr_get_size (str) = array0_get_size (strarr2array (str)) // end of [strarr_get_size] implement {}(*tmp*) strarr_get_refsize (str) = array0_get_refsize (strarr2array (str)) // end of [strarr_get_refsize] (* ****** ****** *) implement strarr_make_string (str) = let // val [n:int] str = g1ofg0_string (str) val n = string1_length (str) // val ( pfarr, pfgc | p ) = array_ptr_alloc (n) // // [memcpy] declared in [string.h] // val _ = $extfcall ( ptr, "atslib_ML_strarr_memcpy", p, string2ptr(str), n ) (* end of [val] *) // typedef A = arrayref (char, n) // val A = $UN.castvwtp0 {A} @(pfarr, pfgc | p) // in array2strarr (array0_make_arrayref (A, n)) end // end of [strarr_make_string] (* ****** ****** *) implement strarr_imake_string (str) = let // val p = strarr_get_ref (str) val sz = g1ofg0_uint (strarr_get_size (str)) val (pfgc, pfarr | p2) = malloc_gc (succ (sz)) // // [memcpy] declared in [string.h] // val _ = $extfcall (ptr, "atslib_ML_strarr_memcpy", p2, p, sz) // val () = $UN.ptr0_set (ptr_add (p2, sz), '\000') // in $UN.castvwtp0 {string} @(pfgc, pfarr | p2) end // end of [strarr_imake_string] (* ****** ****** *) implement {}(*tmp*) strarr_is_empty (str) = strarr_get_size (str) = 0 implement {}(*tmp*) strarr_isnot_empty (str) = strarr_get_size (str) > 0 (* ****** ****** *) implement {tk}(*tmp*) strarr_get_at_gint (str, i) = let val str = strarr2array (str) in $effmask_ref (array0_get_at_gint (str, i)) end // end of [strarr_get_at_gint] implement {tk}(*tmp*) strarr_get_at_guint (str, i) = let val str = strarr2array (str) in $effmask_ref (array0_get_at_guint (str, i)) end // end of [strarr_get_at_guint] (* ****** ****** *) implement strarr_get_range (str, i0, i1) = let // #define CNUL '\000' // val n = strarr_get_size (str) val i0 = min (i0, n) and i1 = min (i1, n) // val pa = strarr_get_ref (str) val p0 = add_ptr_bsz (pa, i0) val p1 = add_ptr_bsz (pa, i1) // fun loop_inc ( p0: ptr, p1: ptr, pb: ptr ) : void = ( if p0 < p1 then let val c = $UN.ptr0_get (p0) val p0 = ptr_succ (p0) val () = $UN.ptr0_set (pb, c) val pb = ptr_succ (pb) in loop_inc (p0, p1, pb) end else let val () = $UN.ptr0_set (pb, CNUL) in // nothing end (* end of [if] *) ) fun loop_dec ( p0: ptr, p1: ptr, pb: ptr ) : void = ( if p0 > p1 then let val p0 = ptr_pred (p0) val c = $UN.ptr0_get (p0) val () = $UN.ptr0_set (pb, c) val pb = ptr_succ (pb) in loop_dec (p0, p1, pb) end else let val () = $UN.ptr0_set (pb, CNUL) in // nothing end (* end of [if] *) ) // in // if i0 <= i1 then let val df = g1ofg0(i1 - i0) val (pf, pfgc | pb) = malloc_gc (df) val () = loop_inc (p0, p1, pb) in $UN.castvwtp0{string}((pf, pfgc | pb)) end else let val df = g1ofg0(i0 - i1) val (pf, pfgc | pb) = malloc_gc (df) val () = loop_dec (p0, p1, pb) in $UN.castvwtp0{string}((pf, pfgc | pb)) end // end of [if] // end // end of [strarr_get_range] (* ****** ****** *) implement lt_strarr_strarr (str1, str2) = (strarr_compare (str1, str2) < 0) implement lte_strarr_strarr (str1, str2) = (strarr_compare (str1, str2) <= 0) implement gt_strarr_strarr (str1, str2) = (strarr_compare (str1, str2) > 0) implement gte_strarr_strarr (str1, str2) = (strarr_compare (str1, str2) >= 0) implement eq_strarr_strarr (str1, str2) = (strarr_compare (str1, str2) = 0) implement neq_strarr_strarr (str1, str2) = (strarr_compare (str1, str2) != 0) (* ****** ****** *) implement strarr_compare (str1, str2) = let // val (A1, n1) = strarr_get_refsize (str1) and (A2, n2) = strarr_get_refsize (str2) // extern fun strncmp : (ptr, ptr, size_t) - int = "strncmp" // val n = g0uint_min_size (n1, n2) // // [strncmp] declared in [string.h] // val sgn = $extfcall ( int, "atslib_ML_strarr_strncmp", $UN.cast2ptr(A1), $UN.cast2ptr(A2), n ) (* end of [val] *) // in // if sgn = 0 then (if n1 < n2 then ~1 else if n1 > n2 then 1 else 0) else sgn // end of [if] // end // end of [strarr_compare] (* ****** ****** *) implement strarr_length (str) = strarr_get_size (str) (* ****** ****** *) // implement print_strarr (x) = fprint_strarr (stdout_ref, x) implement prerr_strarr (x) = fprint_strarr (stderr_ref, x) // (* ****** ****** *) implement fprint_strarr (out, str) = let // extern fun fwrite ( bufp: ptr , tsz: size_t, asz: size_t, out: FILEref ) : size_t = "mac#atslib_ML_strarr_fwrite" // fun loop ( out: FILEref, bufp: ptr, n: size_t ) : void = let in // if n > 0 then let val n1 = fwrite (bufp, sizeof, n, out) in if n1 > 0 then loop (out, add_ptr_bsz (bufp, n1), n - n1) else ((*error*)) end // end of of [if] // end // end of [loop] // in loop (out, strarr_get_ref (str), strarr_get_size (str)) end // end of [fprint_strarr] (* ****** ****** *) implement strarr_contains (str, c0) = $effmask_all let // val (A, asz) = strarr_get_refsize (str) // // [memcpy] declared in [string.h] // val p = $extfcall ( ptr, "atslib_ML_strarr_memchr", $UN.cast2ptr(A), char2int0(c0), asz ) (* end of [val] *) // in (p > the_null_ptr) end // end of [strarr_contains] (* ****** ****** *) implement strarr_copy (str) = let val str = strarr2array (str) val str2 = $effmask_ref (array0_copy (str)) in array2strarr (str2) end // end of [strarr_copy] (* ****** ****** *) implement strarr_append (str1, str2) = let // val str1 = strarr2array (str1) val str2 = strarr2array (str2) // val str12 = $effmask_ref (array0_append (str1, str2)) // in array2strarr (str12) end // end of [strarr_append] (* ****** ****** *) // implement strarr_tabulate (n, fopr) = ( array2strarr(array0_tabulate(n, fopr)) ) // (* ****** ****** *) implement strarr_foreach (str, fwork) = let // fun loop ( p: ptr, n: size_t , fwork: cfun(char, void) ) : void = let in // if (n > 0) then let // val () = fwork($UN.ptr0_get(p)) // in loop(ptr0_succ(p), pred(n), fwork) end // end of [then] else () // end of [else] // end // end of [loop] // val p0 = strarr_get_ref(str) val n0 = strarr_get_size(str) // in loop(p0, n0, fwork) end // end of [strarr_foreach] (* ****** ****** *) implement strarr_iforeach (str, fwork) = let // fun loop ( p: ptr , n: size_t, i: size_t , fwork: cfun (size_t, char, void) ) : void = let in // if (n > i) then let val () = fwork(i, $UN.ptr0_get(p)) // in loop(ptr0_succ(p), n, succ(i), fwork) end // end of [then] else () // end of [else] // end // end of [loop] // val p0 = strarr_get_ref(str) val n0 = strarr_get_size(str) // in loop(p0, n0, i2sz(0), fwork) end // end of [strarr_iforeach] (* ****** ****** *) implement strarr_rforeach (str, fwork) = let // fun loop ( p: ptr, n: size_t , fwork: cfun(char, void) ) : void = let in // if (n > 0) then let // val p1 = ptr0_pred(p) val () = fwork($UN.ptr0_get(p1)) // in loop(p1, pred(n), fwork) end // end of [then] else () // end of [else] // end // end of [loop] // val p0 = strarr_get_ref(str) val n0 = strarr_get_size(str) // in // loop ( ptr0_add_guint(p0, n0), n0, fwork ) (* end of [loop] *) // end // end of [strarr_rforeach] (* ****** ****** *) // implement fprint_val (out, str) = fprint_strarr(out, str) // (* ****** ****** *) (* end of [strarr.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/monad_list.dats0000644000175000017500000000537413431250607022222 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2013 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" // staload "libats/ML/SATS/monad_list.sats" // (* ****** ****** *) #include "./SHARE/monad.hats" (* ****** ****** *) assume monad_type(a:t0p) = list0(a) (* ****** ****** *) implement {a}{b} monad_bind (xs, fopr) = let // implement list_map$fopr(x) = fopr(x) // val xss = list_map(g1ofg0(xs)) val res = list_concat ($UN.castvwtp1{List(List(b))}(xss)) // val ((*freed*)) = list_vt_free(xss) // in list0_of_list_vt{b}(res) end // end of [monad_bind] (* ****** ****** *) implement {a1,a2}{b} monad_bind2 (xs, ys, fopr) = let // implement list_crosswith$fopr (x, y) = fopr(x, y) // val xss = list_crosswith (g1ofg0(xs), g1ofg0(ys)) // val res = list_concat ($UN.castvwtp1{List(List(b))}(xss)) // val ((*freed*)) = list_vt_free(xss) // in list0_of_list_vt{b}(res) end // end of [monad_bind2] (* ****** ****** *) // implement {a}(*tmp*) monad_return(x) = list0_cons{a}(x, list0_nil) // (* ****** ****** *) implement {a}(*tmp*) monad_list_list(xs) = (xs) (* ****** ****** *) implement {a}(*tmp*) monad_list_listize(m0) = (m0) (* ****** ****** *) // implement {a}(*tmp*) fprint_monad(out, m0) = fprint_list0(out, m0) // (* ****** ****** *) (* end of [monad_list.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/stdlib.dats0000644000175000017500000000667413431250607021356 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: June, 2013 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) staload "libats/ML/SATS/stdlib.sats" (* ****** ****** *) implement {}(*tmp*) getenv_exn (name) = let // val str = $STDLIB.getenv_gc (name) // in // if isneqz (str) then strptr2string (str) else let prval ( ) = strptr_free_null (str) val () = prerrln! "exit(ATS): [getenv_exn]: variable [" name "] is undefined." in exit (1) end // end of [if] // end // end of [getenv_exn] (* ****** ****** *) implement {}(*tmp*) getenv_opt (name) = let // val str = $STDLIB.getenv_gc (name) // in // if isneqz (str) then Some0 (strptr2string (str)) else let prval () = strptr_free_null (str) in None0 () end (* end of [if] *) // end // end of [getenv_opt] (* ****** ****** *) // implement {}(*tmp*) setenv_exn (name, value, ow) = let // val err = $STDLIB.setenv (name, value, ow) // in // if err < 0 then let // val () = prerrln! ( "exit(ATS): [setenv_exn]: variable: [")(name)("] cannot be set." ) (* prerrln! *) // in exit (1) end else () // end of [if] // end // end of [setenv_exn] // implement {}(*tmp*) setenv_err ( name, value, ow ) = $STDLIB.setenv (name, value, ow) // end of [setenv_err] // (* ****** ****** *) // implement {}(*tmp*) randint(n) = $UN.cast($UN.cast2int($STDLIB.random()) % n) // (* ****** ****** *) implement {}(*tmp*) streamize_random () = auxmain() where { // fun auxmain ( // argless ) : stream_vt(Nat) = $ldelay ( // let // val r = $STDLIB.random() val r = $UN.cast{intGte(0)}(r) // in // stream_vt_cons(r, auxmain()) // end // end of [let] // ) (* end of [auxmain] *) // } (* end of [streamize_random] *) (* ****** ****** *) implement {}(*tmp*) streamize_randint {n}(n) = auxmain() where { // fun auxmain ( // argless ) : stream_vt(natLt(n)) = $ldelay ( // let // val r = $STDLIB.random() val r = $UN.cast{intGte(0)}(r) // in stream_vt_cons(nmod(r, n), auxmain()) end // end of [let] // ) (* end of [auxmain] *) // } (* end of [streamize_randint] *) (* ****** ****** *) (* end of [stdlib.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/filebas.dats0000644000175000017500000001512113431250607021465 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: January, 2013 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // // no dynloading at run-time // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload _(*anon*) = "prelude/DATS/integer.dats" staload _(*anon*) = "prelude/DATS/integer_size.dats" (* ****** ****** *) staload _(*anon*) = "prelude/DATS/filebas.dats" (* ****** ****** *) // macdef prelude_fileref_get_line_charlst = fileref_get_line_charlst // macdef prelude_fileref_get_lines_charlstlst = fileref_get_lines_charlstlst // (* ****** ****** *) macdef prelude_fileref_get_line_string = fileref_get_line_string macdef prelude_fileref_get_lines_stringlst = fileref_get_lines_stringlst (* ****** ****** *) // macdef prelude_streamize_fileref_char = streamize_fileref_char macdef prelude_streamize_fileptr_char = streamize_fileptr_char // macdef prelude_streamize_fileref_line = streamize_fileref_line macdef prelude_streamize_fileptr_line = streamize_fileptr_line // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/option0.sats" (* ****** ****** *) staload "libats/ML/SATS/filebas.sats" (* ****** ****** *) (* implement fileref_open_opt (path, mode) = let // val opt = prelude_fileref_open_opt (path, mode) // in option0_of_option_vt{FILEref}(opt) end // end of [fileref_open_opt] *) (* ****** ****** *) implement fileref_get_line_charlst (filr) = ( list0_of_list_vt (prelude_fileref_get_line_charlst(filr)) ) // end of [fileref_get_line_charlst] implement fileref_get_lines_charlstlst (filr) = ( $UN.castvwtp0{list0(charlst0)} (prelude_fileref_get_lines_charlstlst(filr)) ) // end of [fileref_get_lines_charlstlst] (* ****** ****** *) local // staload _(*anon*) = "prelude/DATS/strptr.dats" // in (* in of [local] *) implement fileref_get_line_string (filr) = ( strptr2string (prelude_fileref_get_line_string(filr)) ) // end of [fileref_get_line_string] implement fileref_get_lines_stringlst (filr) = ( $UN.castvwtp0{list0(string)} (prelude_fileref_get_lines_stringlst(filr)) ) // end of [fileref_get_lines_stringlst] end // end of [local] (* ****** ****** *) implement {}(*tmp*) filename_get_lines_stringlst_opt (path) = let // val opt = fileref_open_opt(path, file_mode_r) // in // case+ opt of | ~None_vt() => None_vt() | ~Some_vt(inp) => Some_vt(lines) where { val lines = fileref_get_lines_stringlst(inp) // end of [val] val ((*void*)) = fileref_close(inp) } (* end of [Some_vt] *) // end // end of [filename_get_lines_stringlst_opt] (* ****** ****** *) // implement {}(*tmp*) streamize_fileref_char (filr) = prelude_streamize_fileref_char(filr) implement {}(*tmp*) streamize_fileptr_char (filp) = prelude_streamize_fileptr_char(filp) // (* ****** ****** *) // implement {}(*tmp*) streamize_fileref_line (filr) = ( $UN.castvwtp0{stream_vt(string)} (prelude_streamize_fileref_line(filr)) ) // end of [streamize_fileref_line] implement {}(*tmp*) streamize_fileptr_line (filp) = ( $UN.castvwtp0{stream_vt(string)} (prelude_streamize_fileptr_line(filp)) ) // end of [streamize_fileptr_line] // (* ****** ****** *) implement {}(*tmp*) streamize_fileref_word (filr) = auxmain(filr) where { // fun auxmain ( filr: FILEref ) : stream_vt(string) = $ldelay ( // let // val word = fileref_get_word<>(filr) val test = strptr_is_null(word) // prval () = lemma_strptr_param(word) // in if test then let prval () = strptr_free_null(word) in stream_vt_nil() // end of [prval] end // end of [then] else stream_vt_cons(strptr2string(word), auxmain(filr)) // end of [if] end // end of [let] // ) (* end of [auxmain] *) // } (* end of [streamize_fileref_word] *) (* ****** ****** *) implement {}(*tmp*) streamize_fileptr_word (filp) = let // fun auxmain ( filr: FILEref ) : stream_vt(string) = $ldelay ( // let // val word = fileref_get_word<>(filr) val test = strptr_is_null(word) // prval () = lemma_strptr_param(word) // in if test then stream_vt_nil() where { val () = fileref_close(filr) prval () = strptr_free_null(word) } (* end of [then] *) else stream_vt_cons(strptr2string(word), auxmain(filr)) // end of [if] end // end of [let] // ) (* end of [auxmain] *) // in auxmain($UN.castvwtp0{FILEref}(filp)) end (* end of [streamize_fileptr_word] *) (* ****** ****** *) implement {}(*tmp*) streamize_filename_char (fname) = let // val opt = fileref_open_opt(fname, file_mode_r) // in // case+ opt of | ~None_vt() => None_vt() | ~Some_vt(filr) => Some_vt(streamize_fileptr_char($UN.castvwtp0{FILEptr1}(filr))) // end // end of [streamize_filename_char] (* ****** ****** *) implement {}(*tmp*) streamize_filename_line (fname) = let // val opt = fileref_open_opt(fname, file_mode_r) // in // case+ opt of | ~None_vt() => None_vt() | ~Some_vt(filr) => Some_vt(streamize_fileptr_line($UN.castvwtp0{FILEptr1}(filr))) // end // end of [streamize_filename_line] (* ****** ****** *) implement {}(*tmp*) streamize_filename_word (fname) = let // val opt = fileref_open_opt(fname, file_mode_r) // in // case+ opt of | ~None_vt() => None_vt() | ~Some_vt(filr) => Some_vt(streamize_fileptr_word($UN.castvwtp0{FILEptr1}(filr))) // end // end of [streamize_filename_word] (* ****** ****** *) (* end of [filebas.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/.keeper0000644000175000017500000000000013431250607020445 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/array0.dats0000644000175000017500000004523213431250607021264 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: July, 2012 *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/array0.sats" (* ****** ****** *) // extern fun memcpy ( d:ptr, s:ptr, n:size_t ) : ptr = "mac#atslib_ML_array0_memcpy" // end of [memcpy] // (* ****** ****** *) // implement {a}(*tmp*) array0_tuple_0 () = array0($arrpsz{a}()) // implement {a}(*tmp*) array0_tuple_1 (x0) = array0($arrpsz{a}(x0)) implement {a}(*tmp*) array0_tuple_2 (x0, x1) = array0($arrpsz{a}(x0, x1)) implement {a}(*tmp*) array0_tuple_3 (x0, x1, x2) = array0($arrpsz{a}(x0, x1, x2)) // implement {a}(*tmp*) array0_tuple_4 (x0, x1, x2, x3) = array0($arrpsz{a}(x0, x1, x2, x3)) implement {a}(*tmp*) array0_tuple_5 (x0, x1, x2, x3, x4) = array0($arrpsz{a}(x0, x1, x2, x3, x4)) implement {a}(*tmp*) array0_tuple_6 (x0, x1, x2, x3, x4, x5) = array0($arrpsz{a}(x0, x1, x2, x3, x4, x5)) // (* ****** ****** *) // implement {}(*tmp*) array0_of_arrszref {a}(A) = $UN.cast{array0(a)}(A) // implement {}(*tmp*) arrszref_of_array0 {a}(A) = $UN.cast{arrszref(a)}(A) // (* ****** ****** *) implement {}(*tmp*) array0_get_ref (A0) = let // val ASZ = arrszref_of_array0(A0) in arrszref_get_ref(ASZ) // end of [val] end // end of [array0_get_ref] (* ****** ****** *) implement {}(*tmp*) array0_get_size (A0) = let // val ASZ = arrszref_of_array0(A0) in arrszref_get_size(ASZ) // end of [val] end // end of [array0_get_size] (* ****** ****** *) // implement {}(*tmp*) array0_get_length (A0) = sz2i(g1ofg0_uint(array0_get_size<>(A0))) // (* ****** ****** *) implement {}(*tmp*) array0_get_refsize (A0) = let // var asz: size_t val ASZ = arrszref_of_array0(A0) val A = $effmask_wrt(arrszref_get_refsize(ASZ, asz)) // in @(A, asz) end // end of [array0_get_refsize] (* ****** ****** *) // implement {}(*tmp*) array0_make_arrpsz (psz) = let // val ASZ = arrszref_make_arrpsz(psz) in array0_of_arrszref(ASZ) // end of [val] end // end of [array0_make_arrpsz] // implement {}(*tmp*) array0_make_arrayref (A, n) = let val ASZ = arrszref_make_arrayref(A, n) in array0_of_arrszref(ASZ) // end of [val] end // end of [array0_make_arrpsz] // (* ****** ****** *) // implement {a}(*tmp*) array0_make_elt_int (asz, x0) = let // val asz = i2sz(max(g1ofg0(asz), 0)) // in // array0_of_arrszref(arrszref_make_elt(asz, x0)) // end // end of [array0_make_elt_int] // implement {a}(*tmp*) array0_make_elt_size (asz, x0) = ( array0_of_arrszref(arrszref_make_elt(asz, x0)) ) (* end of [array0_make_elt_size] *) // (* ****** ****** *) implement {a}(*tmp*) array0_make_list (xs) = ( array0_of_arrszref{a}(arrszref_make_list(xs)) ) implement {a}(*tmp*) array0_make_list0 (xs) = let val xs = g1ofg0(xs) in array0_of_arrszref{a}(arrszref_make_list(xs)) end // end of [array0_make_list0] (* ****** ****** *) implement {a}(*tmp*) array0_make_rlist (xs) = ( array0_of_arrszref{a}(arrszref_make_rlist(xs)) ) implement {a}(*tmp*) array0_make_rlist0 (xs) = let val xs = g1ofg0(xs) in array0_of_arrszref{a}(arrszref_make_rlist(xs)) end // end of [array0_make_rlist0] (* ****** ****** *) implement {a}(*tmp*) array0_make_subarray (A0, st, ln) = let // val st = g1ofg0(st) val ln = g1ofg0(ln) // val [n:int] (A, asz) = array0_get_refsize(A0) // val [st:int] st = (if st <= asz then st else asz): sizeLte(n) val [ln:int] ln = (if st + ln <= asz then ln else asz - st): sizeLte(n-st) // val A2 = arrayptr_make_uninitized(ln) val p2 = memcpy (ptrcast(A2), ptr_add(ptrcast(A), st), ln*sizeof) val A2 = $UN.castvwtp0{arrayref(a,ln)}(A2) // in array0_make_arrayref{a}(A2, ln) end // end of [array0_make_subarray] (* ****** ****** *) implement {a}(*tmp*) array0_make_stream (xs) = let // implement arrayptr_make_stream$bufsize<> ( // argless ) = array0_make_stream$bufsize<>() // var n0: size_t val A0 = arrayptr_make_stream(xs, n0) // in let val A0 = arrayptr_refize(A0) in array0_make_arrayref{a}(A0, n0) end end // end of [array0_make_stream] implement {a}(*tmp*) array0_make_stream_vt (xs) = let // implement arrayptr_make_stream$bufsize<> ( // argless ) = array0_make_stream$bufsize<>() // var n0: size_t val A0 = arrayptr_make_stream_vt(xs, n0) // in let val A0 = arrayptr_refize(A0) in array0_make_arrayref{a}(A0, n0) end end // end of [array0_make_stream_vt] implement array0_make_stream$bufsize<>() = 16 (* ****** ****** *) // implement {a}(*tmp*) print_array0(A) = fprint_array0(stdout_ref, A) // implement {a}(*tmp*) prerr_array0(A) = fprint_array0(stderr_ref, A) // implement {a}(*tmp*) fprint_array0(out, A) = fprint_arrszref(out, arrszref_of_array0(A)) // implement {a}(*tmp*) fprint_array0_sep (out, A, sep) = fprint_arrszref_sep(out, arrszref_of_array0(A), sep) // (* ****** ****** *) implement {a}{tk} array0_get_at_gint (A0, i) = let in // if i >= 0 then array0_get_at_size(A0, g0i2u(i)) else $raise ArraySubscriptExn() // neg index // end // end of [array0_get_at_gint] implement {a}{tk} array0_get_at_guint (A0, i) = let in array0_get_at_size(A0, g0u2u(i)) end // end of [array0_get_at_guint] implement {a}(*tmp*) array0_get_at_size (A0, i) = ( arrszref_get_at_size(arrszref_of_array0(A0), i) ) // end of [array0_get_at_size] (* ****** ****** *) implement {a}{tk} array0_set_at_gint (A0, i, x) = ( // if i >= 0 then array0_set_at_size(A0, g0i2u(i), x) else $raise ArraySubscriptExn() // neg index // ) // end of [array0_set_at_gint] implement {a}{tk} array0_set_at_guint (A0, i, x) = ( array0_set_at_size(A0, g0u2u(i), x) ) // end of [array0_set_at_guint] implement {a}(*tmp*) array0_set_at_size (A0, i, x) = ( arrszref_set_at_size(arrszref_of_array0(A0), i, x) ) // end of [array0_set_at_size] (* ****** ****** *) implement {a}{tk} array0_exch_at_gint (A0, i, x) = let in // if i >= 0 then array0_exch_at_size(A0, g0i2u(i), x) else $raise ArraySubscriptExn() // neg index // end // end of [array0_exch_at_gint] implement {a}{tk} array0_exch_at_guint (A0, i, x) = ( array0_exch_at_size(A0, g0u2u(i), x) ) // end of [array0_exch_at_guint] implement {a}(*tmp*) array0_exch_at_size (A0, i, x) = ( arrszref_exch_at_size(arrszref_of_array0(A0), i, x) ) // end of [array0_exch_at_size] (* ****** ****** *) implement {a}(*tmp*) array0_interchange (A0, i, j) = let val ASZ = arrszref_of_array0(A0) in arrszref_interchange(ASZ, i, j) // end of [val] end // end of [array0_interchange] (* ****** ****** *) implement {a}(*tmp*) array0_subcirculate (A0, i, j) = let val ASZ = arrszref_of_array0(A0) in arrszref_subcirculate(ASZ, i, j) // end of [val] end // end of [array0_subcirculate] (* ****** ****** *) implement {a}(*tmp*) array0_copy (A0) = let // val ASZ = arrszref_of_array0(A0) // var asz: size_t // val A = arrszref_get_refsize(ASZ, asz) // val (vbox pf | p) = arrayref_get_viewptr(A) val (pfarr, pfgc | q) = array_ptr_alloc(asz) // val () = array_copy(!q, !p, asz) // val A2 = arrayptr_encode(pfarr, pfgc | q) val A2 = arrayptr_refize(A2) // non-linearizing val ASZ2 = arrszref_make_arrayref(A2, asz) // in array0_of_arrszref{a}(ASZ2) end // end of [array0_copy] (* ****** ****** *) implement {a}(*tmp*) array0_append (A01, A02) = let // val ASZ1 = arrszref_of_array0(A01) and ASZ2 = arrszref_of_array0(A02) // var asz1: size_t and asz2: size_t // val A1 = arrszref_get_refsize(ASZ1, asz1) and A2 = arrszref_get_refsize(ASZ2, asz2) // val (pf1box | p1) = arrayref_get_viewptr(A1) and (pf2box | p2) = arrayref_get_viewptr(A2) // extern praxi unbox{v:view} : vbox(v) - (v, v - void) // prval (pf1, fpf1) = unbox(pf1box) and (pf2, fpf2) = unbox(pf2box) // val asz = asz1 + asz2 // val (pfarr,pfgc|q) = array_ptr_alloc(asz) // prval (pf1arr, pf2arr) = array_v_split_at(pfarr | asz1) // val () = array_copy(!q, !p1, asz1) val q2 = ptr1_add_guint(q, asz1) val (pf2arr | q2) = viewptr_match(pf2arr | q2) val () = array_copy(!q2, !p2, asz2) // prval () = fpf1(pf1) and () = fpf2(pf2) // prval pfarr = array_v_unsplit(pf1arr, pf2arr) // val A12 = arrayptr_encode(pfarr, pfgc | q) val A12 = arrayptr_refize(A12) val ASZ12 = arrszref_make_arrayref(A12, asz) // in array0_of_arrszref{a}(ASZ12) end // end of [array0_append] (* ****** ****** *) // implement {a}{b} array0_map (A, fopr) = let // val p0 = array0_get_ref(A) val asz = array0_get_size(A) // val fopr = $UN.cast{cfun1(ptr, b)}(fopr) // in // array0_tabulate (g1ofg0(asz), lam i => fopr(ptr_add(p0, i))) // end // end of [array0_map] // implement {a}{b} array0_map_method (A0, _(*TYPE*)) = lam(fopr) => array0_map(A0, fopr) // (* ****** ****** *) implement {a}(*tmp*) array0_tabulate {n}(asz, fopr) = let // implement{a2} array_tabulate$fopr (i) = let // val i = $UN.cast{sizeLt(n)}(i) // in $UN.castvwtp0{a2}(fopr(i)) end // array_tabulate$fopr // in // array0_of_arrszref(arrszref_tabulate(asz)) // end // end of [array0_tabulate] (* ****** ****** *) // implement {a}(*tmp*) array0_tabulate_method_int (asz) = ( lam(fopr) => array0_tabulate (i2sz(asz), lam(i) => fopr(sz2i(i))) ) // implement {a}(*tmp*) array0_tabulate_method_size (asz) = ( lam(fopr) => array0_tabulate(asz, fopr) ) // (* ****** ****** *) implement {a}(*tmp*) array0_find_exn (A0, p) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement(tenv) array_foreach$cont(x, env) = ~p(x) implement(tenv) array_foreach$fwork(x, env) = ((*nothing*)) // val idx = arrayref_foreach(A, asz) // in if idx < asz then idx else $raise NotFoundExn() end // end of [array0_find_exn] (* ****** ****** *) (* /* implement {a}(*tmp*) array0_find_opt (A0, p) = try Some_vt(array0_find_exn (A0, p)) with ~NotFoundExn() => None_vt() // end of [array0_find_opt] */ *) (* ****** ****** *) // implement {a}(*tmp*) array0_exists (A0, pred) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement array_foreach$cont (x, env) = not(env) implement array_foreach$fwork (x, env) = if pred(x) then env := true else () // in // env where { // var env:bool = false val _(*asz*) = arrayref_foreach_env(A, asz, env) // } (* end of [where] *) // end // end of [array0_exists] // implement {a}(*tmp*) array0_exists_method(A0) = lam(pred) => array0_exists(A0, pred) // (* ****** ****** *) // implement {a}(*tmp*) array0_iexists (A0, pred) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement array_iforeach$cont (i, x, env) = not(env) implement array_iforeach$fwork (i, x, env) = if pred(i, x) then env := true else () // in // env where { // var env:bool = false val _(*asz*) = arrayref_iforeach_env(A, asz, env) // } (* end of [where] *) // end // end of [array0_iexists] // implement {a}(*tmp*) array0_iexists_method(A0) = lam(pred) => array0_iexists(A0, pred) // (* ****** ****** *) // implement {a}(*tmp*) array0_forall (A0, pred) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement array_foreach$cont (x, env) = (env) implement array_foreach$fwork (x, env) = if pred(x) then () else env := false // in // env where { // var env:bool = true val _(*asz*) = arrayref_foreach_env(A, asz, env) // } (* end of [where] *) // end // end of [array0_forall] // implement {a}(*tmp*) array0_forall_method(A0) = lam(pred) => array0_forall(A0, pred) // (* ****** ****** *) // implement {a}(*tmp*) array0_iforall (A0, pred) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement array_iforeach$cont (i, x, env) = (env) implement array_iforeach$fwork (i, x, env) = if pred(i, x) then () else env := false // in // env where { // var env:bool = true val _(*asz*) = arrayref_iforeach_env(A, asz, env) // } (* end of [where] *) // end // end of [array0_iforall] // implement {a}(*tmp*) array0_iforall_method(A0) = lam(pred) => array0_iforall(A0, pred) // (* ****** ****** *) implement {a}(*tmp*) array0_foreach (A0, fwork) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement(tenv) array_foreach$cont(x, env) = true implement(tenv) array_foreach$fwork(x, env) = fwork(x) // val _(*asz*) = arrayref_foreach(A, asz) // in // nothing end // end of [array0_foreach] // implement {a}(*tmp*) array0_foreach_method(A0) = lam(fwork) => array0_foreach(A0, fwork) // (* ****** ****** *) implement {a}(*tmp*) array0_iforeach (A0, fwork) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement(tenv) array_iforeach$cont(i, x, env) = true implement(tenv) array_iforeach$fwork(i, x, env) = fwork(i, x) // val _(*asz*) = arrayref_iforeach (A, asz) // in // nothing end // end of [array0_iforeach] // implement {a}(*tmp*) array0_iforeach_method(A0) = lam(fwork) => array0_iforeach(A0, fwork) // (* ****** ****** *) implement {a}(*tmp*) array0_rforeach (A0, fwork) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement(tenv) array_rforeach$cont(x, env) = true implement(tenv) array_rforeach$fwork(x, env) = fwork(x) // val _(*asz*) = arrayref_rforeach (A, asz) // in // nothing end // end of [array0_rforeach] // implement {a}(*tmp*) array0_rforeach_method(A0) = lam(fwork) => array0_rforeach(A0, fwork) // (* ****** ****** *) implement {tres}{a} array0_foldleft ( A0, ini, fopr ) = res where { // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement array_foreach$cont (x, env) = true implement array_foreach$fwork (x, env) = env := fopr(env, x) // var res: tres = ini val _(*asz*) = arrayref_foreach_env(A, asz, res) // } (* end of [array0_foldleft] *) // implement {tres}{a} array0_foldleft_method(A0, _) = lam(ini, fopr) => array0_foldleft(A0, ini, fopr) // (* ****** ****** *) implement {tres}{a} array0_ifoldleft ( A0, ini, fopr ) = res where { // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement array_iforeach$cont(i, x, env) = true implement array_iforeach$fwork(i, x, env) = (env := fopr(env, i, x)) // var res: tres = ini val _(*asz*) = arrayref_iforeach_env(A, asz, res) // } (* end of [array0_ifoldleft] *) // implement {tres}{a} array0_ifoldleft_method(A0, _) = lam(ini, fopr) => array0_ifoldleft(A0, ini, fopr) // (* ****** ****** *) implement {a}{tres} array0_foldright ( A0, fopr, snk ) = res where { // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement array_rforeach$cont (x, env) = true implement array_rforeach$fwork (x, env) = env := fopr(x, env) // var res: tres = snk // val _(*asz*) = arrayref_rforeach_env(A, asz, res) // } (* end of [array0_foldright] *) // implement {a}{tres} array0_foldright_method (A0, _) = ( lam(fopr, snk) => array0_foldright(A0, fopr, snk) ) (* end of [lam] *) // (* ****** ****** *) implement {a}(*tmp*) array0_is_ordered (A0, cmp) = let // implement gcompare_ref_ref (x, y) = $effmask_all(cmp(x, y)) // in (* in-of-let *) // let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // in // arrayref_is_ordered(A, asz) // end // end of [let] // end // end of [array0_is_ordered] (* ****** ****** *) implement {a}(*tmp*) array0_bsearch (A0, f0) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement {a}(*tmp*) array_bsearch$ford ( x ) = let // val ford = $UN.cast{(&a)-int}(f0) // in ford(x) end // end of [array_bsearch$ford] // in arrayref_bsearch(A, asz) end // end of [array0_bsearch] (* ****** ****** *) implement {a}(*tmp*) array0_quicksort (A0, cmp) = let // val ASZ = arrszref_of_array0(A0) // var asz : size_t val A = arrszref_get_refsize(ASZ, asz) // implement {a}(*tmp*) array_quicksort$cmp (x1, x2) = let // val cmp = $UN.cast{(&a,&a)-int}(cmp) // in cmp(x1, x2) end // end of [array_quicksort$cmp] // in arrayref_quicksort (A, asz) end // end of [array0_quicksort] (* ****** ****** *) // // HX: some common generic functions // (* ****** ****** *) implement (a)(*tmp*) fprint_val = fprint_array0 (* ****** ****** *) implement (a)(*tmp*) gcompare_val_val (xs, ys) = let // val m = array0_get_size{a}(xs) val n = array0_get_size{a}(ys) // fun loop ( px: ptr, py: ptr, i: size_t, j: size_t ) : int = ( if ( i < m ) then ( // if j < n then let val (pfx, fpfx | px) = $UN.ptr_vtake{a}(px) val (pfy, fpfy | py) = $UN.ptr_vtake{a}(py) val sgn = gcompare_ref_ref(!px, !py) prval () = fpfx(pfx) and () = fpfy(pfy) in if sgn != 0 then (sgn) else loop(ptr_succ(px), ptr_succ(py), succ(i), succ(j)) // end of [if] end else (1) // end of [else] // ) else ( // if j < n then (~1) else (0) // ) (* end of [else] *) ) (* end of [loop] *) // in $effmask_all(loop(array0_get_ref{a}(xs), array0_get_ref{a}(xs), i2sz(0), i2sz(0))) end // end of [gcompare_val_val] (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/matrix0.dats0000644000175000017500000001631713431250607021454 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2014 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/matrix0.sats" (* ****** ****** *) // implement {}(*tmp*) matrix0_of_mtrxszref{a}(A) = $UN.cast{matrix0(a)}(A) // implement {}(*tmp*) mtrxszref_of_matrix0{a}(A) = $UN.cast{mtrxszref(a)}(A) // (* ****** ****** *) // implement{ } matrix0_get_ref (M) = mtrxszref_get_ref (mtrxszref_of_matrix0(M)) // implement {}(*tmp*) matrix0_get_nrow(M) = mtrxszref_get_nrow(mtrxszref_of_matrix0(M)) implement {}(*tmp*) matrix0_get_ncol (M) = mtrxszref_get_ncol(mtrxszref_of_matrix0(M)) // (* ****** ****** *) implement{ } matrix0_get_refsize (M) = let // var nrow: size_t // uninitized and ncol: size_t // uninitized // val Mref = $effmask_wrt ( mtrxszref_get_refsize(mtrxszref_of_matrix0(M), nrow, ncol) ) (* end of [val] *) // in (Mref, nrow, ncol) end // end of [matrix0_get_refsize] (* ****** ****** *) // implement {a}(*tmp*) matrix0_make_elt_int (nrow, ncol, x0) = let // val nrow = i2sz(max(0, g1ofg0(nrow))) and ncol = i2sz(max(0, g1ofg0(ncol))) // in matrix0_of_mtrxszref(mtrxszref_make_elt(nrow, ncol, x0)) end // end of [matrix0_make_elt_int] // implement {a}(*tmp*) matrix0_make_elt_size (nrow, ncol, x0) = ( matrix0_of_mtrxszref(mtrxszref_make_elt(nrow, ncol, x0)) ) (* end of [matrix0_make_elt_size] *) // (* ****** ****** *) implement {a}(*tmp*) matrix0_get_at_int (M0, i, j) = let val i = g1ofg0_int(i) and j = g1ofg0_int(j) in // if i >= 0 then ( if j >= 0 then matrix0_get_at_size(M0, i2sz(i), i2sz(j)) else $raise MatrixSubscriptExn((*void*)) // neg index // end of [if] ) else $raise MatrixSubscriptExn((*void*)) // neg index // end of [if] // end // end of [matrix0_get_at_int] (* ****** ****** *) implement {a}(*tmp*) matrix0_get_at_size (M0, i, j) = let // val MSZ = mtrxszref_of_matrix0(M0) // in mtrxszref_get_at_size(MSZ, i, j) // end of [val] end // end of [matrix0_get_at_size] (* ****** ****** *) implement {a}(*tmp*) matrix0_set_at_int (M0, i, j, x) = let val i = g1ofg0_int(i) and j = g1ofg0_int(j) in // if i >= 0 then ( if j >= 0 then matrix0_set_at_size(M0, i2sz(i), i2sz(j), x) else $raise MatrixSubscriptExn((*void*)) (* neg index *) // end of [if] ) else $raise MatrixSubscriptExn((*void*)) (* neg index *) // end of [if] // end // end of [matrix0_set_at_int] (* ****** ****** *) implement {a}(*tmp*) matrix0_set_at_size (M0, i, j, x) = let // val MSZ = mtrxszref_of_matrix0{a}(M0) // in mtrxszref_set_at_size(MSZ, i, j, x) end // end of [matrix0_set_at_size] (* ****** ****** *) // implement {a}(*tmp*) print_matrix0 (A) = fprint_matrix0(stdout_ref, A) // implement {a}(*tmp*) prerr_matrix0 (A) = fprint_matrix0(stderr_ref, A) // implement {a}(*tmp*) fprint_matrix0(out, M) = fprint_mtrxszref(out, mtrxszref_of_matrix0(M)) // implement {a}(*tmp*) fprint_matrix0_sep(out, M, sep1, sep2) = fprint_mtrxszref_sep(out, mtrxszref_of_matrix0(M), sep1, sep2) // (* ****** ****** *) implement {a}(*tmp*) matrix0_copy(M0) = let // val M = matrix0_get_ref(M0) // val [m:int] m = g1ofg0(M0.nrow()) val [n:int] n = g1ofg0(M0.ncol()) // val M = matrixref_copy($UN.cast{matrixref(a,m,n)}(M), m, n) // end of [val] in // matrix0_of_mtrxszref (mtrxszref_make_matrixref{a}(matrixptr_refize{a}(M), m, n)) // end // end of [matrix0_copy] (* ****** ****** *) implement {a}(*tmp*) matrix0_tabulate {m,n} (nrow, ncol, fopr) = let // implement {a2}(*tmp*) matrix_tabulate$fopr (i, j) = let val i = $UN.cast{sizeLt(m)}(i) val j = $UN.cast{sizeLt(n)}(j) in $UN.castvwtp0{a2}(fopr(i,j)) end // end of [matrix_tabulate$fopr] // in matrix0_of_mtrxszref{a}(mtrxszref_tabulate(nrow, ncol)) end // end of [matrix0_tabulate] (* ****** ****** *) // implement {a}(*tmp*) matrix0_tabulate_method_int (nrow, ncol) = ( lam(fopr) => matrix0_tabulate ( i2sz(nrow) , i2sz(ncol), lam(i, j) => fopr(sz2i(i), sz2i(j)) ) ) // implement {a}(*tmp*) matrix0_tabulate_method_size (nrow, ncol) = ( lam(fopr) => matrix0_tabulate(nrow, ncol, fopr) ) // (* ****** ****** *) implement {a}(*tmp*) matrix0_foreach (M0, fwork) = let // fun loop ( p: ptr, i: size_t ) : void = ( if (i > 0) then let // val (pf, fpf | p) = $UN.ptr0_vtake(p) // val ((*void*)) = fwork(!p) // prval ((*returned*)) = fpf(pf) // in loop(ptr_succ(p), pred(i)) end else ((*void*)) // end of [if] ) (* end of [loop] *) // val (M, m, n) = matrix0_get_refsize(M0) // in loop(ptrcast(M), m * n) end // end of [matrix0_foreach] (* ****** ****** *) implement {a}(*tmp*) matrix0_iforeach (M0, fwork) = let // val (M, m, n) = matrix0_get_refsize (M0) // fun loop ( p: ptr , k: size_t, i: size_t, j: size_t ) : void = ( if (k > 0) then let // val (pf, fpf | p) = $UN.ptr0_vtake (p) // val () = fwork(i, j, !p) // prval ((*returned*)) = fpf(pf) // val p = ptr_succ(p) val k = pred(k) and j = succ(j) // in // if j < n then loop(p, k, i, j) else loop(p, k, succ(i), i2sz(0)) // end of [if] // end else ((*void*)) // end of [if] ) (* end of [loop] *) // in loop(ptrcast(M), m * n, i2sz(0), i2sz(0)) end // end of [matrix0_iforeach] (* ****** ****** *) implement {res}{a}(*tmp*) matrix0_foldleft ( M0, ini, fopr ) = ini where { // var ini: res = ini val p_ini = addr@(ini) // var fopr2 = lam@(x: &a): void => $UN.ptr0_set(p_ini, fopr($UN.ptr0_get(p_ini), x)) // val () = matrix0_foreach(M0, $UN.cast{(&a)-void}(addr@fopr2)) // } (* end of [matrix0_foldleft] *) (* ****** ****** *) implement {res}{a}(*tmp*) matrix0_ifoldleft ( M0, ini, fopr ) = ini where { // var ini: res = ini val p_ini = addr@(ini) // var fopr2 = lam@(i: size_t, j: size_t, x: &a): void => $UN.ptr0_set (p_ini, fopr($UN.ptr0_get(p_ini), i, j, x)) // val () = matrix0_iforeach (M0, $UN.cast{(size_t,size_t,&a)-void}(addr@fopr2)) // } (* end of [matrix0_ifoldleft] *) (* ****** ****** *) (* end of [matrix0.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/slistref.dats0000644000175000017500000000621013431250607021712 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* Start time: November, 2016 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/slistref.sats" // (* ****** ****** *) // stadef slist = lam(a:vt0ype) => List_vt(a) // (* ****** ****** *) // assume slistref_vt0ype_type (a:vt0ype) = ref(slist(a)) // (* ****** ****** *) // implement {}(*tmp*) slistref_make_nil {a}((*void*)) = ref(list_vt_nil()) // (* ****** ****** *) // implement {a}(*tmp*) slistref_is_nil (stk) = list_vt_is_nil(!p) where { // val ( vbox(pf) | p ) = ref_get_viewptr(stk) // } (* end of [slistref_is_nil] *) // implement {a}(*tmp*) slistref_is_cons (stk) = list_vt_is_cons(!p) where { // val ( vbox(pf) | p ) = ref_get_viewptr(stk) // } (* end of [slistref_is_cons] *) implement {a}(*tmp*) slistref_isnot_nil (stk) = list_vt_is_cons(!p) where { // val ( vbox(pf) | p ) = ref_get_viewptr(stk) // } (* end of [slistref_isnot_nil] *) // (* ****** ****** *) implement {a}(*tmp*) slistref_length (stk) = list_vt_length(!p) where { // val ( vbox(pf) | p ) = ref_get_viewptr(stk) // prval() = lemma_list_vt_param(!p) // } (* end of [slistref_length] *) (* ****** ****** *) // implement {a}(*tmp*) slistref_insert (stk, x0) = () where { // val ( vbox(pf) | p ) = ref_get_viewptr(stk) // prval ( // argless ) = lemma_list_vt_param(!p) // val () = $effmask_wrt (!p := list_vt_cons(x0, !p)) // } (* end of [slistref_insert] *) (* ****** ****** *) // implement {a}(*tmp*) slistref_takeout_opt (stk) = let // val ( vbox(pf) | p ) = ref_get_viewptr(stk) // in // case+ !p of | list_vt_nil() => None_vt() | ~list_vt_cons(x0, xs) => $effmask_wrt(!p := xs; Some_vt(x0)) // end (* end of [slistref_takeout_opt] *) // (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/funmap.dats0000644000175000017500000001033013431250607021343 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: August, 2013 *) (* ****** ****** *) // // HX-2012-12: // the map implementation is based on AVL trees // (* ****** ****** *) // staload FM = "libats/SATS/funmap_avltree.sats" // (* ****** ****** *) staload "libats/ML/SATS/list0.sats" (* ****** ****** *) staload "libats/ML/SATS/funmap.sats" (* ****** ****** *) // assume map_type(key, itm) = $FM.map (key, itm) // (* ****** ****** *) implement{a} compare_key_key = gcompare_val_val implement{a} $FM.compare_key_key = compare_key_key (* ****** ****** *) implement {}(*tmp*) funmap_nil() = $FM.funmap_nil<>() implement {}(*tmp*) funmap_make_nil() = $FM.funmap_make_nil<>() (* ****** ****** *) implement {}(*tmp*) funmap_is_nil(map) = $FM.funmap_is_nil<>(map) implement {}(*tmp*) funmap_isnot_nil(map) = $FM.funmap_isnot_nil<>(map) (* ****** ****** *) // implement {key,itm} funmap_size (map) = $FM.funmap_size(map) // (* ****** ****** *) // implement {key,itm} funmap_search (map, k) = $FM.funmap_search_opt(map, k) // (* ****** ****** *) // implement {key,itm} funmap_insert (map, k, x) = $FM.funmap_insert_opt(map, k, x) // (* ****** ****** *) // implement {key,itm} funmap_takeout (map, k) = $FM.funmap_takeout_opt(map, k) // (* ****** ****** *) // implement {key,itm} funmap_remove (map, k) = $FM.funmap_remove(map, k) // (* ****** ****** *) implement {key,itm} fprint_funmap (out, map) = let // implement $FM.fprint_funmap$sep<> = fprint_funmap$sep<> implement $FM.fprint_funmap$mapto<> = fprint_funmap$mapto<> // val () = $FM.fprint_funmap(out, map) // in // nothing end // end of [fprint_funmap] (* ****** ****** *) implement{} fprint_funmap$sep(out) = fprint(out, "; ") implement{} fprint_funmap$mapto(out) = fprint(out, "->") (* ****** ****** *) implement {key,itm} funmap_foreach_cloref (map, fwork) = () where { // var env: void = ((*void*)) // implement (env)(*tmp*) $FM.funmap_foreach$fwork (k, x, env) = fwork(k, x) // val ((*void*)) = $FM.funmap_foreach_env(map, env) // } (* end of [funmap_foreach_cloref] *) (* ****** ****** *) // implement {key,itm} funmap_listize (map) = ( $effmask_wrt ( list0_of_list_vt ($FM.funmap_listize(map)) ) ) (* end of [funmap_listize] *) // (* ****** ****** *) implement {key,itm} funmap_streamize (map) = ( $effmask_wrt ($FM.funmap_streamize(map)) ) (* end of [funmap_streamize] *) (* ****** ****** *) // implement {key,itm} funmap_make_module ((*void*)) = $rec { // nil = funmap_nil{key,itm} , size = funmap_size , is_nil = funmap_is_nil{key,itm} , isnot_nil = funmap_isnot_nil{key,itm} , search = funmap_search , insert = funmap_insert , remove = funmap_remove , takeout = funmap_takeout , listize = funmap_listize , streamize = funmap_streamize // } (* end of [funmap_make_module] *) // (* ****** ****** *) (* end of [funmap.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/SHARE/0000755000175000017500000000000013431250607020045 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/SHARE/.keeper0000644000175000017500000000000013431250607021307 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/SHARE/monad.hats0000644000175000017500000000675413431250607022040 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2013 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX: shared by monad_list // HX: shared by monad_maybe // (* ****** ****** *) implement {}(*tmp*) monad_unit() = monad_return(unit) (* ****** ****** *) implement {a}(*tmp*) monad_nil((*void*)) = monad_return(list0_nil{a}()) // end of [monad_nil] implement {a}(*tmp*) monad_cons(m, ms) = ( monad_liftm2 (lam (x, xs) => list0_cons{a}(x, xs), m, ms) ) // end of [monad_cons] (* ****** ****** *) // implement {a1,a2} monad_seq (m1, m2) = monad_bind (m1, lam _ => m2) // (* ****** ****** *) implement {a}(*tmp*) monad_join(mm) = monad_bind(mm, lam m => m) (* ****** ****** *) implement {a}{b} monad_fmap(f, m) = ( monad_bind (m, lam x => monad_return(f(x))) // monad_bind ) // end of [monad_fmap] (* ****** ****** *) implement {a}{b} monad_liftm(f, m) = monad_bind (m, lam x => monad_return(f(x))) // end of [monad_liftm] (* ****** ****** *) implement {a1,a2}{b} monad_liftm2 (f, m1, m2) = ( monad_bind2 ( m1, m2 , lam (x1, x2) => monad_return(f(x1, x2)) ) (* monad_liftm2 *) ) // end of [monad_liftm2] implement {a1,a2,a3}{b} monad_liftm3 (f, m1, m2, m3) = ( monad_bind3 ( m1, m2, m3 , lam (x1, x2, x3) => monad_return(f(x1, x2, x3)) ) (* monad_bind3 *) ) // end of [monad_liftm3] (* ****** ****** *) implement {a}{b} monad_mapm(f, ms) = let in // case+ ms of | list0_nil () => monad_nil() | list0_cons (m, ms) => let val m = monad_fmap(f, m) val ms = monad_mapm(f, ms) in monad_cons (m, ms) end // list0_cons // end // end of [monad_mapm] (* ****** ****** *) implement {a}{b} monad_mapm_(f, xs) = let in // case+ xs of | list0_nil () => monad_unit() | list0_cons (x, xs) => let val m = f(x) val mu = monad_mapm_(f, xs) in monad_seq(m, mu) end // end of [list0_cons] // end // end of [monad_mapm_] (* ****** ****** *) implement {a}(*tmp*) monad_seqlist(ms) = monad_mapm(lam x => x, ms) implement {a}(*tmp*) monad_seqlist_(ms) = monad_mapm_(lam m => m, ms) (* ****** ****** *) (* end of [monad.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/stream_vt.dats0000644000175000017500000000717713431250607022100 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: October, 2016 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/list0.sats" #staload "libats/ML/SATS/list0_vt.sats" #staload "libats/ML/SATS/stream_vt.sats" // (* ****** ****** *) // implement {a}(*tmp*) stream2list0_vt (xs) = ( list0_vt2t (g0ofg1(stream2list_vt(xs))) ) // (* ****** ****** *) // implement {}(*tmp*) intGte_stream_vt(n) = f(n) where { fun f(n:int): stream_vt(int) = $ldelay(stream_vt_cons(n, f(n+1))) } // (* ****** ****** *) implement {a}(*tmp*) stream_vt_make_list0 (xs) = auxmain(xs) where { // fun auxmain: $d2ctype ( stream_vt_make_list0 ) = lam(xs) => $ldelay ( case+ xs of | list0_nil() => stream_vt_nil() | list0_cons(x, xs) => stream_vt_cons(x, auxmain(xs)) ) // } (* end of [stream_vt_make_list0] *) (* ****** ****** *) // implement {}(*tmp*) stream_vt_make_intrange_lr (l, r) = ( stream_vt_make_intrange_lrd<>(l, r, 1) ) // implement {}(*tmp*) stream_vt_make_intrange_lrd (l, r, d) = let // fun auxmain ( l: int , r: int , d: int ) : stream_vt(int) = $ldelay ( if (l >= r) then stream_vt_nil() else stream_vt_cons(l, auxmain(l+d, r, d)) ) // in auxmain(l, r, d) end // end of [stream_vt_make_intrange_lrd] // (* ****** ****** *) // implement {a}{b} stream_vt_map_method (xs, _) = ( llam(fopr) => stream_vt_map_cloptr(xs, fopr) ) // (* ****** ****** *) // implement {a}(*tmp*) stream_vt_filter_method (xs) = ( llam(pred) => stream_vt_filter_cloptr(xs, pred) ) // (* ****** ****** *) // implement {a}(*tmp*) stream_vt_foreach_method (xs) = ( llam(fwork) => stream_vt_foreach_cloptr(xs, fwork) ) // implement {a}(*tmp*) stream_vt_rforeach_method (xs) = ( llam(fwork) => stream_vt_rforeach_cloptr(xs, fwork) ) // (* ****** ****** *) // implement {a}(*tmp*) stream_vt_iforeach_method (xs) = ( llam(fwork) => stream_vt_iforeach_cloptr(xs, fwork) ) // (* ****** ****** *) // implement {res}{a} stream_vt_foldleft_method (xs, _(*TYPE*)) = ( llam(ini, fwork) => stream_vt_foldleft_cloptr(xs, ini, fwork) ) // implement {res}{a} stream_vt_ifoldleft_method (xs, _(*TYPE*)) = ( llam(ini, fwork) => stream_vt_ifoldleft_cloptr(xs, ini, fwork) ) // (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/funset.dats0000644000175000017500000001631513431250607021372 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: December, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX-2012-12: // this set implementation // is based on the AVL trees // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload FS = "libats/SATS/funset_avltree.sats" // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) staload "libats/ML/SATS/list0.sats" (* ****** ****** *) staload "libats/ML/SATS/funset.sats" (* ****** ****** *) implement {a}(*tmp*) compare_elt_elt = gcompare_val_val implement {a}(*tmp*) $FS.compare_elt_elt = compare_elt_elt (* ****** ****** *) assume set_type(a:t0p) = $FS.set(a) (* ****** ****** *) // implement {}(*tmp*) funset_nil ((*void*)) = $FS.funset_nil() implement {}(*tmp*) funset_make_nil ((*void*)) = $FS.funset_make_nil() // (* ****** ****** *) // implement {a}(*tmp*) funset_sing (x0) = $FS.funset_sing(x0) implement {a}(*tmp*) funset_make_sing (x0) = $FS.funset_make_sing(x0) // (* ****** ****** *) implement {a}(*tmp*) funset_make_list (xs) = let // val xs = g1ofg0_list(xs) // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_make_list(xs) end // end of [funset_make_list] (* ****** ****** *) // implement {}(*tmp*) fprint_funset$sep (out) = fprint_string (out, ", ") // implement {a}(*tmp*) fprint_funset (out, xs) = let // implement $FS.fprint_funset$sep<> (out) = fprint_funset$sep<>(out) // in $FS.fprint_funset(out, xs) end // end of [fprint_funset] // (* ****** ****** *) // implement {}(*tmp*) funset_is_nil (xs) = $FS.funset_is_nil<>(xs) implement {}(*tmp*) funset_isnot_nil (xs) = $FS.funset_isnot_nil<>(xs) // (* ****** ****** *) // implement {a}(*tmp*) funset_size(xs) = $FS.funset_size(xs) // (* ****** ****** *) // implement {a}(*tmp*) funset_is_member (xs, x0) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_is_member(xs, x0) end // end of [funset_is_member] // implement {a}(*tmp*) funset_isnot_member (xs, x0) = ~funset_is_member(xs, x0) // (* ****** ****** *) implement {a}(*tmp*) funset_insert (xs, x0) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_insert(xs, x0) end // end of [funset_insert] (* ****** ****** *) implement {a}(*tmp*) funset_remove (xs, x0) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_remove(xs, x0) end // end of [funset_remove] (* ****** ****** *) // implement {a}(*tmp*) funset_getmax_opt = $FS.funset_getmax_opt implement {a}(*tmp*) funset_getmin_opt = $FS.funset_getmin_opt // (* ****** ****** *) // implement {a}(*tmp*) funset_takeoutmax_opt = $FS.funset_takeoutmax_opt implement {a}(*tmp*) funset_takeoutmin_opt = $FS.funset_takeoutmin_opt // (* ****** ****** *) implement {a}(*tmp*) funset_union (xs1, xs2) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_union(xs1, xs2) end // end of [funset_union] (* ****** ****** *) // implement {a}(*tmp*) funset_intersect (xs1, xs2) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_intersect(xs1, xs2) end // end of [funset_intersect] // (* ****** ****** *) // implement {a}(*tmp*) funset_differ (xs1, xs2) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_differ(xs1, xs2) end // end of [funset_differ] (* ****** ****** *) // implement {a}(*tmp*) funset_symdiff (xs1, xs2) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_symdiff(xs1, xs2) end // end of [funset_symdiff] // (* ****** ****** *) // implement {a}(*tmp*) funset_equal (xs1, xs2) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_equal(xs1, xs2) end // end of [funset_equal] // (* ****** ****** *) // implement {a}(*tmp*) funset_compare (xs1, xs2) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_compare(xs1, xs2) end // end of [funset_compare] // (* ****** ****** *) // implement {a}(*tmp*) funset_is_subset (xs1, xs2) = let // implement $FS.compare_elt_elt = compare_elt_elt // in $FS.funset_is_subset(xs1, xs2) end // end of [funset_is_subset] // implement {a}(*tmp*) funset_is_supset (xs1, xs2) = funset_is_subset(xs2, xs1) // (* ****** ****** *) implement {a}(*tmp*) funset_foreach(xs) = let // var env: void = ((*void*)) // in funset_foreach_env(xs, env) end // end of [funset_foreach] implement {a}{env} funset_foreach_env(xs, env) = let // implement $FS.funset_foreach$fwork (x, env) = funset_foreach$fwork(x, env) // in $FS.funset_foreach_env(xs, env) end // end of [funset_foreach_env] implement {a}(*tmp*) funset_foreach_cloref (xs, fwork) = let // var env: void = ((*void*)) // implement (env)(*tmp*) $FS.funset_foreach$fwork(x, env) = fwork(x) // in $FS.funset_foreach_env (xs, env) end // end of [funset_foreach_cloref] (* ****** ****** *) implement {a}(*tmp*) funset_tabulate_cloref {n}(n, fopr) = let // implement $FS.funset_tabulate$fopr(i) = fopr($UN.cast{natLt(n)}(i)) // in $FS.funset_tabulate (n) end // end of [funset_tabulate] (* ****** ****** *) // implement {a}(*tmp*) funset_listize (xs) = ( // $effmask_wrt ( list0_of_list_vt{a}($FS.funset_listize(xs)) ) (* $effmask_wrt *) // ) (* funset_listize *) // (* ****** ****** *) // implement {a}(*tmp*) funset_streamize (xs) = $effmask_wrt($FS.funset_streamize(xs)) // (* ****** ****** *) // implement {a}(*tmp*) funset_make_module ((*void*)) = $rec { // nil = funset_nil{a} , sing = funset_sing , make_list = funset_make_list , size = funset_size , is_nil = funset_is_nil{a} , isnot_nil = funset_isnot_nil{a} , insert= funset_insert , remove= funset_remove , union= funset_union , intersect= funset_intersect , listize = funset_listize , streamize = funset_streamize // } (* end of [funset_make_module] *) // (* ****** ****** *) (* end of [funset.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/DATS/atspre.dats0000644000175000017500000005215313431250607021364 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: December, 2017 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/atspre.sats" (* ****** ****** *) // // HX-2017-12-30: // prelude/intrange // (* ****** ****** *) // implement {}(*tmp*) int_forall_cloptr (n, pred) = ( intrange_forall_cloptr<>(0, n, pred) ) (* end of [int_forall_cloref] *) implement {}(*tmp*) int_forall_cloref (n, pred) = ( intrange_forall_cloref<>(0, n, pred) ) (* end of [int_forall_cloref] *) // (* ****** ****** *) // implement {}(*tmp*) intrange_forall_cloptr ( l, r, pred ) = res where { // val res = intrange_forall_cloref<> (l, r, $UN.castvwtp1(pred)) val ((*void*)) = cloptr_free{void}($UN.castvwtp0(pred)) } // end of [intrange_forall_cloptr] // implement {}(*tmp*) intrange_forall_cloref (l, r, pred) = loop(l, r) where { // fun loop (l: int, r: int): bool = if (l < r) then ( if pred(l) then loop(l+1, r) else false ) else true // } // end of [intrange_forall_cloref] // (* ****** ****** *) // implement {}(*tmp*) int_foreach_cloptr (n, fwork) = ( intrange_foreach_cloptr<>(0, n, fwork) ) (* end of [int_foreach_cloref] *) implement {}(*tmp*) int_foreach_cloref (n, fwork) = ( intrange_foreach_cloref<>(0, n, fwork) ) (* end of [int_foreach_cloref] *) // (* ****** ****** *) // implement {}(*tmp*) intrange_foreach_cloptr ( l, r, fwork ) = res where { // val res = intrange_foreach_cloref<> (l, r, $UN.castvwtp1(fwork)) val ((*void*)) = cloptr_free{void}($UN.castvwtp0(fwork)) } // end of [intrange_foreach_cloptr] // implement {}(*tmp*) intrange_foreach_cloref (l, r, fwork) = let // implement (env)(*tmp*) intrange_foreach$cont(i, env) = true implement (env)(*tmp*) intrange_foreach$fwork(i, env) = fwork(i) // var env: void = () // in intrange_foreach_env(l, r, env) end // end of [intrange_foreach_cloref] // (* ****** ****** *) // implement {}(*tmp*) int_rforeach_cloptr (n, fwork) = ( intrange_rforeach_cloptr<>(0, n, fwork) ) (* end of [int_rforeach_cloptr] *) implement {}(*tmp*) int_rforeach_cloref (n, fwork) = ( intrange_rforeach_cloref<>(0, n, fwork) ) (* end of [int_rforeach_cloref] *) // // implement {}(*tmp*) intrange_rforeach_cloptr ( l, r, fwork ) = res where { // val res = intrange_rforeach_cloref<> (l, r, $UN.castvwtp1(fwork)) val ((*void*)) = cloptr_free{void}($UN.castvwtp0(fwork)) } // end of [intrange_rforeach_cloptr] implement {}(*tmp*) intrange_rforeach_cloref (l, r, fwork) = let // implement (env)(*tmp*) intrange_rforeach$cont(i, env) = true implement (env)(*tmp*) intrange_rforeach$fwork(i, env) = fwork(i) // var env: void = () // in intrange_rforeach_env(l, r, env) end // end of [intrange_rforeach_cloref] // (* ****** ****** *) // // HX: prelude/list // (* ****** ****** *) // implement {x}(*tmp*) list_exists_cloptr (xs, p0) = res where { // val p1 = $UN.castvwtp1(p0) val res = list_exists_cloref(xs, p1) // val ((*freed*)) = cloptr_free($UN.castvwtp0{cloptr(void)}(p0)) // } // end of [list_exists_cloptr] // implement {x}(*tmp*) list_exists_cloref (xs, pred) = let // implement(x2) list_exists$pred(x2) = pred($UN.cast{x}(x2)) // in list_exists(xs) end // end of [list_exists_cloref] // (* ****** ****** *) // implement {x}(*tmp*) list_iexists_cloptr (xs, p0) = res where { // val p1 = $UN.castvwtp1(p0) val res = list_iexists_cloref(xs, p1) // val ((*freed*)) = cloptr_free($UN.castvwtp0{cloptr(void)}(p0)) // } // end of [list_iexists_cloptr] // implement {x}(*tmp*) list_iexists_cloref {n}(xs, pred) = let // prval() = lemma_list_param(xs) // fun loop { i,j:nat | i+j == n } .. ( i: int(i), xs: list(x, j) ) :<> bool = ( case+ xs of | list_nil() => false | list_cons(x, xs) => if pred(i, x) then true else loop(i+1, xs) // end of [list_cons] ) // in loop(0, xs) end // end of [list_iexists_cloref] // (* ****** ****** *) // implement {x}(*tmp*) list_forall_cloptr (xs, p0) = res where { // val p1 = $UN.castvwtp1(p0) val res = list_forall_cloref(xs, p1) // val ((*freed*)) = cloptr_free($UN.castvwtp0{cloptr(void)}(p0)) // } // end of [list_forall_cloptr] // implement {x}(*tmp*) list_forall_cloref (xs, pred) = let // implement(x2) list_forall$pred(x2) = pred($UN.cast{x}(x2)) // in list_forall(xs) end // end of [list_forall_cloref] // (* ****** ****** *) // implement {x}(*tmp*) list_iforall_cloptr (xs, p0) = res where { // val p1 = $UN.castvwtp1(p0) val res = list_iforall_cloref(xs, p1) // val ((*freed*)) = cloptr_free($UN.castvwtp0{cloptr(void)}(p0)) // } // end of [list_iforall_cloptr] // implement {x}(*tmp*) list_iforall_cloref {n}(xs, pred) = let // prval() = lemma_list_param(xs) // fun loop { i,j:nat | i+j == n } .. ( i: int(i), xs: list(x, j) ) :<> bool = ( case+ xs of | list_nil() => true | list_cons(x, xs) => if pred(i, x) then loop(i+1, xs) else false // end of [list_cons] ) // in loop(0, xs) end // end of [list_iforall_cloref] // (* ****** ****** *) implement {x}(*tmp*) list_equal_cloref (xs1, xs2, eqfn) = list_equal(xs1, xs2) where { // implement{y} list_equal$eqfn (x1, x2) = eqfn($UN.cast(x1), $UN.cast(x2)) // } (* end of [list_equal_cloref] *) (* ****** ****** *) implement {x}(*tmp*) list_compare_cloref (xs1, xs2, cmpfn) = list_compare(xs1, xs2) where { // implement{y} list_compare$cmpfn (x1, x2) = cmpfn($UN.cast(x1), $UN.cast(x2)) // } (* end of [list_compare_cloref] *) (* ****** ****** *) implement {x}(*tmp*) list_app_fun (xs, fwork) = list_app(xs) where { // implement {x2}(*tmp*) list_app$fwork(x2) = fwork($UN.cast{x}(x2)) // } (* end of [list_app_fun] *) implement {x}(*tmp*) list_app_clo (xs, fwork) = list_app(xs) where { // val fwork = $UN.cast{cfun(x,void)}(addr@fwork) // implement {x2}(*tmp*) list_app$fwork(x2) = fwork($UN.cast{x}(x2)) // } (* end of [list_app_clo] *) implement {x}(*tmp*) list_app_cloref (xs, fwork) = let // fun loop {n:nat} .. ( xs: list(x, n) , fwork: (x) - void ) : void = ( // case+ xs of | list_nil() => () | list_cons(x, xs) => (fwork(x); loop(xs, fwork)) // ) (* end of [loop] *) // prval() = lemma_list_param(xs) // in loop(xs, fwork) end // end of [list_app_cloref] (* ****** ****** *) implement {x}{y}(*tmp*) list_map_fun (xs, fopr) = let // implement {x2}{y2} list_map$fopr(x2) = $UN.castvwtp0{y2}(fopr($UN.cast{x}(x2))) // in list_map(xs) end // end of [list_map_fun] implement {x}{y}(*tmp*) list_map_clo (xs, fopr) = let // val fopr = $UN.cast{(x) - y}(addr@fopr) // implement {x2}{y2} list_map$fopr(x2) = $UN.castvwtp0{y2}(fopr($UN.cast{x}(x2))) // in list_map(xs) end // end of [list_map_clo] implement {x}{y}(*tmp*) list_map_cloref (xs, fopr) = let // implement {x2}{y2} list_map$fopr(x2) = $UN.castvwtp0{y2}(fopr($UN.cast{x}(x2))) // in list_map(xs) end // end of [list_map_cloref] (* ****** ****** *) implement {a}(*tmp*) list_tabulate_fun (n, fopr) = list_tabulate(n) where { // val fopr = $UN.cast{int->a}(fopr) // implement(a2) list_tabulate$fopr(n) = $UN.castvwtp0{a2}(fopr(n)) // } (* end of [list_tabulate_fun] *) implement {a}(*tmp*) list_tabulate_clo (n, fopr) = list_tabulate(n) where { // val fopr = $UN.cast{cfun(int,a)}(addr@fopr) // implement(a) list_tabulate$fopr(n) = $UN.castvwtp0{a}(fopr(n)) // } (* end of [list_tabulate_clo] *) implement {a}(*tmp*) list_tabulate_cloref (n, fopr) = let // val fopr = $UN.cast{int - a}(fopr) // implement(a) list_tabulate$fopr(n) = $UN.castvwtp0{a}(fopr(n)) // in list_tabulate(n) end // end of [list_tabulate_cloref] (* ****** ****** *) implement {x}(*tmp*) list_foreach_fun (xs, fwork) = let // fun loop(xs: List(x)): void = // case+ xs of | list_nil() => () | list_cons(x, xs) => (fwork(x); loop(xs)) // in $effmask_all (loop(xs)) end // end of [list_foreach_fun] (* ****** ****** *) // implement {x}(*tmp*) list_foreach_clo (xs, fwork) = ( $effmask_all (list_foreach_cloref(xs, $UN.cast(addr@fwork))) ) (* list_foreach_clo *) implement {x}(*tmp*) list_foreach_vclo (pf | xs, fwork) = ( $effmask_all (list_foreach_cloref(xs, $UN.cast(addr@fwork))) ) (* list_foreach_vclo *) // (* ****** ****** *) implement {x}(*tmp*) list_foreach_cloptr (xs, fwork) = cloptr_free ($UN.castvwtp0{cloptr(void)}(fwork)) where { val () = $effmask_all (list_foreach_cloref(xs, $UN.castvwtp1(fwork))) } (* list_foreach_cloptr *) implement {x}(*tmp*) list_foreach_vcloptr (pf | xs, fwork) = cloptr_free ($UN.castvwtp0{cloptr(void)}(fwork)) where { val () = $effmask_all (list_foreach_cloref(xs, $UN.castvwtp1(fwork))) } (* list_foreach_vcloptr *) (* ****** ****** *) implement {x}(*tmp*) list_foreach_cloref (xs, fwork) = let // fun loop(xs: List(x)): void = // case+ xs of | list_nil() => () | list_cons(x, xs) => (fwork(x); loop(xs)) // in $effmask_all (loop(xs)) end // end of [list_foreach_cloref] (* ****** ****** *) // implement {a}(*tmp*) list_foreach_method(xs) = lam(fwork) => list_foreach_cloref(xs, fwork) // (* ****** ****** *) implement {x}(*tmp*) list_iforeach_cloref {n}(xs, fwork) = let // prval() = lemma_list_param(xs) // fun loop { i,j:nat | i+j == n } .. ( i: int(i), xs: list(x, j) ) : void = // case+ xs of | list_nil() => () | list_cons(x, xs) => (fwork (i, x); loop(i+1, xs)) // in loop(0, xs) end // end of [list_iforeach_cloref] (* ****** ****** *) // implement {a}(*tmp*) list_iforeach_method(xs) = lam(fwork) => list_iforeach_cloref(xs, fwork) // (* ****** ****** *) implement {res}{x} list_foldleft_cloptr ( xs, ini, f0 ) = res where { // val f1 = $UN.castvwtp1(f0) val res = list_foldleft_cloref(xs, ini, f1) // val ((*freed*)) = cloptr_free($UN.castvwtp0{cloptr(void)}(f0)) // } // end of [list_foldleft_cloptr] implement {res}{x} list_foldleft_cloref (xs, ini, fopr) = let // implement {res2}{x2} list_foldleft$fopr (res2, x2) = ( $UN.castvwtp0{res2} (fopr($UN.castvwtp0{res}(res2), $UN.cast{x}(x2))) ) // in list_foldleft(xs, ini) end // end of [list_foldleft_cloref] (* ****** ****** *) implement {x}{res} list_foldright_cloptr ( xs, f0, snk ) = res where { // val f1 = $UN.castvwtp1(f0) val res = list_foldright_cloref(xs, f1, snk) // val ((*freed*)) = cloptr_free($UN.castvwtp0{cloptr(void)}(f0)) // } // end of [list_foldright_cloptr] implement {x}{res} list_foldright_cloref (xs, fopr, snk) = let // implement {x2}{res2} list_foldright$fopr (x2, res2) = ( $UN.castvwtp0{res2} (fopr($UN.cast{x}(x2), $UN.castvwtp0{res}(res2))) ) // in list_foldright(xs, snk) end // end of [list_foldright_cloref] (* ****** ****** *) // // HX: prelude/list_vt // (* ****** ****** *) implement {x}{y}(*tmp*) list_vt_map_fun (xs, f0) = let // implement {x2}{y2} list_vt_map$fopr(x2) = let // val f0 = $UN.cast{(&x2)->y}(f0) in $UN.castvwtp0{y2}(f0(x2)) // end // end of [list_vt_map$fopr] // in list_vt_map(xs) end // end of [list_vt_map_fun] implement {x}{y}(*tmp*) list_vt_map_clo (xs, f0) = let // val f0 = $UN.cast{(&x) - y}(addr@f0) // implement {x2}{y2} list_vt_map$fopr(x2) = let // val f0 = $UN.cast{(&x2)-y}(f0) in $UN.castvwtp0{y2}(f0(x2)) // end // end of [list_vt_map$fopr] // in list_vt_map(xs) end // end of [list_vt_map_clo] implement {x}{y}(*tmp*) list_vt_map_cloptr (xs, f0) = ys where { // val f1 = $UN.castvwtp1(f0) val ys = list_vt_map_cloref(xs, f1) val () = cloptr_free($UN.castvwtp0{cloptr(void)}(f0)) // } (* end of [list_vt_map_cloptr] *) implement {x}{y}(*tmp*) list_vt_map_cloref (xs, f0) = let // implement {x2}{y2} list_vt_map$fopr(x2) = let // val f0 = $UN.cast{(&x2)-y}(f0) in $UN.castvwtp0{y2}(f0(x2)) // end // end of [list_vt_map$fopr] // in list_vt_map(xs) end // end of [list_vt_map_cloref] (* ****** ****** *) implement {x}{y}(*tmp*) list_vt_mapfree_fun (xs, f0) = let // implement {x2}{y2} list_vt_mapfree$fopr (x2) = let // val f0 = $UN.cast{(&x2>>_?)->y}(f0) in $UN.castvwtp0{y2}(f0(x2)) // end // end of [list_vt_mapfree$fopr] // in list_vt_mapfree(xs) end // end of [list_vt_mapfree_fun] implement {x}{y}(*tmp*) list_vt_mapfree_clo (xs, f0) = let // val f0 = $UN.cast{(&x>>_?) - y}(addr@f0) // implement {x2}{y2} list_vt_mapfree$fopr(x2) = let // val f0 = $UN.cast{(&x2>>_?)-y}(f0) in $UN.castvwtp0{y2}(f0(x2)) // end // end of [list_vt_mapfree$fopr] // in list_vt_mapfree(xs) end // end of [list_vt_mapfree_clo] implement {x}{y}(*tmp*) list_vt_mapfree_cloptr (xs, f0) = ys where { // val f1 = $UN.castvwtp1(f0) val ys = list_vt_mapfree_cloref(xs, f1) val () = cloptr_free($UN.castvwtp0{cloptr(void)}(f0)) // } (* end of [list_vt_mapfree_cloptr] *) implement {x}{y}(*tmp*) list_vt_mapfree_cloref (xs, f0) = let // implement {x2}{y2} list_vt_mapfree$fopr(x2) = let // val f0 = $UN.cast{(&x2>>_?)-y}(f0) in $UN.castvwtp0{y2}(f0(x2)) // end // end of [list_vt_mapfree$fopr] // in list_vt_mapfree(xs) end // end of [list_vt_mapfree_cloref] (* ****** ****** *) implement {a}{b} list_vt_mapfree_method (xs, _(*type*)) = ( llam(fopr) => list_vt_mapfree_cloptr(xs, fopr) ) (* list_vt_mapfree_method *) (* ****** ****** *) implement {a}(*tmp*) list_vt_foreach_fun {fe}(xs, f0) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat} .. ( xs: !list_vt(a, n), f0: (&a) - void ) : void = case+ xs of | @list_vt_cons (x, xs1) => let val () = f0(x) val () = loop(xs1, f0) in fold@ (xs) end // end of [cons] | list_vt_nil((*void*)) => () // end of [loop] in loop(xs, f0) end // end of [list_vt_foreach_fun] (* ****** ****** *) implement {a}(*tmp*) list_vt_foreach_cloptr ( xs, f0 ) = () where { // val f1 = $UN.castvwtp1(f0) val () = list_vt_foreach_cloref(xs, f1) val () = cloptr_free($UN.castvwtp0{cloptr(void)}(f0)) // } // end of [list_vt_foreach_cloptr] implement {a}(*tmp*) list_vt_foreach_cloref (xs, f0) = loop(xs, f0) where { // fun loop{n:nat} .. ( xs: !list_vt(a, n), f0: (&a) - void ) : void = case+ xs of | @list_vt_cons (x, xs1) => fold@(xs) where { val () = f0(x) val () = loop(xs1, f0) } // end of [cons] | list_vt_nil((*void*)) => () // end of [loop] // prval() = lemma_list_vt_param(xs) // } // end of [list_vt_foreach_cloref] (* ****** ****** *) implement {r}{x}//tmp list_vt_foldleft_cloptr ( xs, r0, f0 ) = res where { // val f1 = $UN.castvwtp1(f0) val res = list_vt_foldleft_cloref(xs, r0, f1) val ((*freed*)) = cloptr_free($UN.castvwtp0{cloptr(void)}(f0)) // } // end of [list_vt_foldleft_cloptr] implement {r}{x}//tmp list_vt_foldleft_cloref (xs, r0, f0) = let // fun auxlst: $d2ctype ( list_vt_foldleft_cloref ) = lam(xs, r0, f0) => ( case+ xs of | @list_vt_nil () => (fold@(xs); r0) | @list_vt_cons (x0, xs1) => res where { val res = auxlst(xs1, f0(r0, x0), f0) prval ((*folded*)) = fold@(xs) } (* end of [list_vt_cons] *) ) // in auxlst(xs, r0, f0) end // end of [list_vt_foldleft_cloref] (* ****** ****** *) // // HX: prelude/array // (* ****** ****** *) implement {a}(*tmp*) array_foreach_fun {n}{fe} ( A0, asz, fwork ) = let // typedef fwork_t = (!unit_v | &a, !ptr) - void // end of [typedef] // prval pfu = unit_v() // var env: ptr = the_null_ptr val fwork = $UN.cast{fwork_t}(fwork) // val ((*void*)) = array_foreach_funenv(pfu | A0, asz, fwork, env) // prval ((*freed*)) = unit_v_elim(pfu) // in // nothing end // end of [array_foreach_fun] implement {a}(*tmp*) array_foreach_cloref {n}{fe} ( A0, asz, fwork ) = let // viewdef v = unit_v typedef tenv = (&a) - void // fun app .<>. (pf: !v | x: &a, fwork: !tenv): void = fwork(x) // end of [fun] // var env = fwork prval pfu = unit_v() // val ((*void*)) = array_foreach_funenv{v}{tenv}(pfu | A0, asz, app, env) // prval ((*freed*)) = unit_v_elim(pfu) // in // nothing end // end of [array_foreach_cloref] (* ****** ****** *) // // HX: prelude/arrayptr // (* ****** ****** *) implement {a}(*tmp*) arrayptr_tabulate_cloref {n}(asz, f0) = let // implement(a2) array_tabulate$fopr(i) = $UN.castvwtp0{a2} (f0($UN.cast{sizeLt(n)}(i))) // in arrayptr_tabulate(asz) end // end of [arrayptr_tabulate_cloref] (* ****** ****** *) // // HX: prelude/arrayref // (* ****** ****** *) implement {a}(*tmp*) arrayptr_foreach_fun ( A0, asz, f0 ) = ((*void*)) where { // val p0 = ptrcast(A0) prval pf0 = arrayptr_takeout(A0) // val () = array_foreach_fun(!p0, asz, f0) // prval () = arrayptr_addback{a}(pf0 | A0) // } // end of [arrayptr_foreach_fun] (* ****** ****** *) // implement {a}(*tmp*) arrayref_tabulate_cloref {n}(asz, f0) = let // implement(a2) array_tabulate$fopr(i) = $UN.castvwtp0{a2} (f0($UN.cast{sizeLt(n)}(i))) // in arrayref_tabulate(asz) end // end of [arrayptr_tabulate_cloref] // (* ****** ****** *) // implement {a}(*tmp*) arrszref_tabulate_cloref (asz, f0) = ( arrszref_make_arrayref (arrayref_tabulate_cloref(asz, f0), asz) ) // (* ****** ****** *) // implement {x}{y} option_map_fun (opt, fopr) = ( // case+ opt of | None() => None_vt() | Some(x0) => Some_vt(fopr(x0)) // ) // end of [option_map_fun] // implement {x}{y} option_map_clo (opt, fopr) = let // val fopr = $UN.cast{cfun(x,y)}(addr@fopr) // in option_map_cloref(opt, fopr) end // end of [option_map_clo] // implement {x}{y} option_map_cloref (opt, fopr) = ( // case+ opt of | None() => None_vt() | Some(x0) => Some_vt(fopr(x0)) // ) // end of [option_map_cloref] // implement {x}{y} option_map_cloptr (xs, f0) = res where { // val f1 = $UN.castvwtp1(f0) val res = option_map_cloref(xs, f1) // val ((*freed*)) = cloptr_free($UN.castvwtp0{cloptr(void)}(f0)) // } // end of [option_map_cloptr] // (* ****** ****** *) // // HX: prelude/matrixptr // (* ****** ****** *) // implement {a}(*tmp*) matrixptr_tabulate_cloptr (nrow, ncol, f0) = mat where { // val mat = matrixptr_tabulate_cloref (nrow, ncol, $UN.castvwtp1(f0)) // val ((*freed*)) = cloptr_free($UN.castvwtp0{cloptr(void)}(f0)) // } // end of [matrixptr_tabulate_cloptr] // implement {a}(*tmp*) matrixptr_tabulate_cloref {m,n}(nrow, ncol, fopr) = let // implement(a2) matrix_tabulate$fopr(i, j) = $UN.castvwtp0{a2} (fopr($UN.cast{sizeLt(m)}(i), $UN.cast{sizeLt(n)}(j))) // in matrixptr_tabulate(nrow, ncol) end // end of [matrixptr_tabulate_cloref] (* ****** ****** *) // // HX: prelude/matrixref // (* ****** ****** *) // implement {a}(*tmp*) matrixref_tabulate_cloref {m,n}(nrow, ncol, fopr) = let // implement(a2) matrix_tabulate$fopr(i, j) = $UN.castvwtp0{a2} (fopr($UN.cast{sizeLt(m)}(i), $UN.cast{sizeLt(n)}(j))) // in matrixptr_refize (matrixptr_tabulate(nrow, ncol)) end // end of [matrixref_tabulate_cloref] // (* ****** ****** *) implement {a}(*tmp*) mtrxszref_tabulate_cloref ( nrow, ncol, fopr ) = let // val M = matrixref_tabulate_cloref (nrow, ncol, fopr) // in // mtrxszref_make_matrixref(M, nrow, ncol) // end // end of [mtrxszref_tabulate_cloref] (* ****** ****** *) implement {a}(*tmp*) matrixref_foreach_cloref (A, m, n, fwork) = let // implement {a2}{env} matrix_foreach$fwork (x, env) = let val (pf,fpf|p) = $UN.ptr_vtake{a}(addr@x) // end of [val] val ((*void*)) = fwork(!p) prval ((*returned*)) = fpf(pf) in // nothing end // end of [matrix_foreach$work] // in matrixref_foreach(A, m, n) end // end of [matrixref_foreach_cloref] (* ****** ****** *) implement {a}(*tmp*) mtrxszref_foreach_cloref (MSZ, fwork) = let // implement {a2}{env} matrix_foreach$fwork (x, env) = let val (pf,fpf|p) = $UN.ptr_vtake{a}(addr@x) // end of [val] val ((*void*)) = fwork(!p) prval ((*returned*)) = fpf(pf) in // nothing end // end of [matrix_foreach$work] // in mtrxszref_foreach(MSZ) end // end of [mtrxszref_foreach_cloref] (* ****** ****** *) implement {}(*tmp*) string_tabulate_cloref {n}(n, fopr) = let // implement string_tabulate$fopr<>(i) = fopr($UN.cast{sizeLt(n)}(i)) // in string_tabulate<>(n) end // end of [string_tabulate_cloref] (* ****** ****** *) (* end of [atspre.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/0000755000175000017500000000000013431250607017540 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/DATS/0000755000175000017500000000000013431250607020273 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/DATS/hashtblref.dats0000644000175000017500000001071113431250607023272 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-10-28: // For supporting // "unityped" programming // (* ****** ****** *) // (* #define ATS_DYNLOADFLAG 1 *) #define ATS_PACKNAME "ATSLIB.libats.ML.COMPILE" // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/list0.sats" // (* ****** ****** *) // #staload HT = "libats/ML/SATS/hashtblref.sats" #staload _(*HT*) = "libats/ML/DATS/hashtblref.dats" // #staload _(*HT*) = "libats/DATS/qlist.dats" #staload _(*HT*) = "libats/DATS/hashfun.dats" #staload _(*HT*) = "libats/DATS/linmap_list.dats" #staload _(*HT*) = "libats/DATS/hashtbl_chain.dats" // (* ****** ****** *) // // HX: Interface // (* ****** ****** *) // // HX: invariant // abstype hashtbl_type(itm:t@ype) // typedef hashtbl (itm:t@ype) = hashtbl_type(itm) // (* ****** ****** *) // extern fun hashtbl_make_nil {itm:type} (cap: intGte(1)): hashtbl(itm) // (* ****** ****** *) // extern fun hashtbl_get_size {itm:type} (kxs: hashtbl(itm)): intGte(0) and hashtbl_get_capacity {itm:type} (kxs: hashtbl(itm)): intGte(1) // overload .size with hashtbl_get_size overload .capacity with hashtbl_get_capacity // (* ****** ****** *) // extern fun hashtbl_search {itm:type} ( kxs: hashtbl(INV(itm)), k0: string ) : Option_vt(itm) // end-of-function // overload .search with hashtbl_search // (* ****** ****** *) // extern fun hashtbl_search_ref {itm:type} ( kxs: hashtbl(INV(itm)), k0: string ) : cPtr0(itm) // end-of-function // overload .search_ref with hashtbl_search_ref // (* ****** ****** *) // extern fun hashtbl_insert {itm:type} ( kxs: hashtbl(INV(itm)) , key: string, itm: itm): Option_vt(itm) // overload .insert with hashtbl_insert // (* ****** ****** *) // extern fun hashtbl_insert_any {itm:type} ( kxs: hashtbl(INV(itm)) , key: string, itm: itm): void // overload .insert_any with hashtbl_insert_any // (* ****** ****** *) // extern fun hashtbl_takeout {itm:type} ( kxs: hashtbl(INV(itm)), k0: string ) : Option_vt(itm) // end-of-function // overload .takeout with hashtbl_takeout // (* ****** ****** *) // extern fun hashtbl_listize0 {itm:type} (kxs: hashtbl(itm)): list0(@(string, itm)) extern fun hashtbl_listize1 {itm:type} (kxs: hashtbl(itm)): list0(@(string, itm)) // overload listize0 with hashtbl_listize0 overload listize1 with hashtbl_listize1 // (* ****** ****** *) // extern fun hashtbl_foreach_cloref {itm:type} ( kxs: hashtbl(itm) , fwork: (string, &itm >> _) - void ) : void // end of [hashtbl_foreach_cloref] // extern fun hashtbl_foreach_method {itm:type} ( kxs: hashtbl(itm) ) ( fwork: (string, &itm >> _) - void ) : void // end of [hashtbl_foreach_method] // overload .foreach with hashtbl_foreach_method // (* ****** ****** *) // // HX: Implementation // (* ****** ****** *) // assume hashtbl_type (itm:t@ype) = $HT.hashtbl(string, itm) // (* ****** ****** *) // implement hashtbl_make_nil {itm}(cap) = let val cap = i2sz(cap) in $HT.hashtbl_make_nil(cap) end // end of [hashtbl_make_nil] // (* ****** ****** *) // implement hashtbl_get_size {itm}(kxs) = sz2i(sz) where { val sz = $HT.hashtbl_get_size<>(kxs) } (* end of [hashtbl_get_size] *) // (* ****** ****** *) // implement hashtbl_get_capacity {itm}(kxs) = sz2i(cap) where { val cap = $HT.hashtbl_get_capacity<>(kxs) } (* end of [hashtbl_get_capacity] *) // (* ****** ****** *) // implement hashtbl_search {itm}(kxs, k0) = ( $HT.hashtbl_search(kxs, k0) ) // implement hashtbl_search_ref {itm}(kxs, k0) = ( $HT.hashtbl_search_ref(kxs, k0) ) // (* ****** ****** *) // implement hashtbl_insert {itm}(kxs, k0, x0) = ( $HT.hashtbl_insert(kxs,k0,x0) ) (* end of [hashtbl_insert] *) // implement hashtbl_insert_any {itm}(kxs, k0, x0) = ( $HT.hashtbl_insert_any(kxs,k0,x0) ) (* end of [hashtbl_insert_any] *) // (* ****** ****** *) // implement hashtbl_takeout {itm}(kxs, k0) = ( $HT.hashtbl_takeout(kxs, k0) ) // (* ****** ****** *) // implement hashtbl_foreach_method {itm}(kxs) = ( lam(fwork) => hashtbl_foreach_cloref(kxs, fwork) ) (* end of [hashtbl_foreach_method] *) // implement hashtbl_foreach_cloref {itm}(kxs, fwork) = ( // $HT.hashtbl_foreach_cloref (kxs, fwork) // ) (* end of [hashtbl_foreach_cloref] *) // (* ****** ****** *) // implement hashtbl_listize0 {itm}(kxs) = $HT.hashtbl_listize0(kxs) implement hashtbl_listize1 {itm}(kxs) = $HT.hashtbl_listize1(kxs) // (* ****** ****** *) (* end of [hashtblref.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/DATS/string.dats0000644000175000017500000000201213431250607022451 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-10-28: // For supporting // "unityped" programming // (* ****** ****** *) // (* #define ATS_DYNLOADFLAG 1 *) #define ATS_PACKNAME "ATSLIB.libats.ML.COMPILE" // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #staload UN = $UNSAFE (* ****** ****** *) // #staload "libats/ML/SATS/string.sats" #staload _(*anon*) = "libats/ML/DATS/string.dats" // (* ****** ****** *) // // HX: Interface // (* ****** ****** *) // extern fun string_tolower(string): string and string_toupper(string): string // overload tolower with string_tolower overload toupper with string_toupper // (* ****** ****** *) // // HX: Implementation // (* ****** ****** *) implement string_tolower (cs) = string_copywith ( cs , lam(c) => $UN.cast{charNZ}(tolower(c)) ) (* end of [string_tolower] *) (* ****** ****** *) implement string_toupper (cs) = string_copywith ( cs , lam(c) => $UN.cast{charNZ}(toupper(c)) ) (* end of [string_toupper] *) (* ****** ****** *) (* end of [string.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/DATS/.keeper0000644000175000017500000000000013431250607021535 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/DATS/array0.dats0000644000175000017500000000372513431250607022355 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-10-28: // For supporting // "unityped" programming // (* ****** ****** *) // (* #define ATS_DYNLOADFLAG 1 *) #define ATS_PACKNAME "ATSLIB.libats.ML.COMPILE" // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #staload UN = $UNSAFE (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" // (* ****** ****** *) // #staload "libats/SATS/dynarray.sats" #staload _(*DA*) = "libats/DATS/dynarray.dats" // #staload "libats/ML/SATS/array0.sats" #staload _(*anon*) = "libats/ML/DATS/array0.dats" // // // HX: Interface // (* ****** ****** *) // extern fun array0_make_stream {a:type}(xs: stream(a)): array0(a) // extern fun array0_make_stream_vt {a:vtype}(xs: stream_vt(a)): array0(a) // (* ****** ****** *) // // HX: Implementation // (* ****** ****** *) implement array0_make_stream {a}(xs) = let // fun loop ( DA: dynarray(a), xs: stream(a) ) : dynarray(a) = ( case+ !xs of | stream_nil() => DA | stream_cons(x, xs) => loop(DA, xs) where { val () = dynarray_insert_atend_exn(DA, x) } (* end of [stream_cons] *) ) // implement dynarray$recapacitize<>() = 1 // val DA = dynarray_make_nil(i2sz(16)) // var n0 : size_t val DA = loop(DA, xs) val A0 = dynarray_getfree_arrayptr<>(DA, n0) // in array0_make_arrayref(arrayptr_refize{a}(A0), n0) end // end of [array0_make_stream] (* ****** ****** *) implement array0_make_stream_vt {a}(xs) = let // fun loop ( DA: dynarray(a), xs: stream_vt(a) ) : dynarray(a) = ( case+ !xs of | ~stream_vt_nil() => DA | ~stream_vt_cons(x, xs) => loop(DA, xs) where { val () = dynarray_insert_atend_exn(DA, x) } (* end of [stream_cons] *) ) // implement dynarray$recapacitize<>() = 1 // val DA = dynarray_make_nil(i2sz(16)) // var n0 : size_t val DA = loop(DA, xs) val A0 = dynarray_getfree_arrayptr<>(DA, n0) // in array0_make_arrayref(arrayptr_refize{a}(A0), n0) end // end of [dynarray$recapacitize] (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/DATS/funmap.dats0000644000175000017500000000703013431250607022436 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-10-28: // For supporting // "unityped" programming // (* ****** ****** *) // (* #define ATS_DYNLOADFLAG 1 *) #define ATS_PACKNAME "ATSLIB.libats.ML.COMPILE" // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/list0.sats" // (* ****** ****** *) // #staload FM = "libats/ML/SATS/funmap.sats" // #staload _(*FM*) = "libats/ML/DATS/funmap.dats" #staload _(*FM*) = "libats/DATS/funmap_avltree.dats" // (* ****** ****** *) // // HX: Interface // (* ****** ****** *) // // HX: covariant // abstype map_type(itm:t@ype+) // typedef map(a:t@ype) = map_type(a) // (* ****** ****** *) // extern fun funmap_nil {itm:type}((*void*)):<> map(itm) and funmap_make_nil {itm:type}((*void*)):<> map(itm) // (* ****** ****** *) // extern fun funmap_size {itm:type}(map(itm)):<> intGte(0) // overload size with funmap_size // extern fun funmap_is_nil {itm:type}(kxs: map(itm)):<> bool and funmap_isnot_nil {itm:type}(kxs: map(itm)):<> bool // overload iseqz with funmap_is_nil overload isneqz with funmap_isnot_nil // (* ****** ****** *) // extern fun funmap_search {itm:type} ( kxs: map(INV(itm)), k0: string ) : Option_vt(itm) // end of [funmap_search] // overload .search with funmap_search // (* ****** ****** *) // extern fun funmap_insert {itm:type} ( &map(INV(itm)) >> _, k0: string, x0: itm ) : Option_vt(itm) // end of [funmap_insert] // overload .insert with funmap_insert // (* ****** ****** *) // extern fun funmap_remove {itm:type} (kxs: &map(INV(itm)) >> _, k0: string): bool and funmap_takeout {itm:type} (kxs: &map(INV(itm)) >> _, k0: string): Option_vt(itm) // overload .remove with funmap_remove overload .takeout with funmap_takeout // (* ****** ****** *) // extern fun funmap_foreach_cloref {itm:type} ( kxs: map(INV(itm)) , fwork: (string, itm) - void ) : void // end of [funmap_foreach_cloref] // extern fun funmap_foreach_method {itm:type} ( kxs: map(INV(itm)) ) ( fwork: (string, itm) - void ) : void // end of [funmap_foreach_method] // overload .foreach with funmap_foreach_method // (* ****** ****** *) // // HX: Implementation // (* ****** ****** *) // assume map_type (itm:t@ype) = $FM.map(string, itm) // (* ****** ****** *) // implement funmap_nil {itm}((*void*)) = $FM.funmap_nil<>{string,itm}() // implement funmap_make_nil {itm}((*void*)) = $FM.funmap_make_nil<>{string,itm}() // (* ****** ****** *) // implement funmap_size {itm}(kxs) = sz2i(g1ofg0(msz)) where { val msz = $FM.funmap_size(kxs) // end of [val] } (* funmap_size *) // (* ****** ****** *) // implement funmap_is_nil {itm}(kxs) = $FM.funmap_is_nil<>{string,itm}(kxs) implement funmap_isnot_nil {itm}(kxs) = $FM.funmap_isnot_nil<>{string,itm}(kxs) // (* ****** ****** *) // implement funmap_search {itm:type} (kxs, k0) = $FM.funmap_search(kxs, k0) // (* ****** ****** *) // implement funmap_insert {itm:type} (kxs, k0, x0) = $FM.funmap_insert(kxs, k0, x0) // (* ****** ****** *) // implement funmap_remove {itm:type} (kxs, k0) = ( $FM.funmap_remove(kxs, k0) ) implement funmap_takeout {itm:type} (kxs, k0) = ( $FM.funmap_takeout(kxs, k0) ) // (* ****** ****** *) // implement funmap_foreach_method {itm}(kxs) = ( lam(fwork) => funmap_foreach_cloref(kxs, fwork) ) (* end of [funmap_foreach_method] *) // implement funmap_foreach_cloref {itm}(kxs, fwork) = ( $FM.funmap_foreach_cloref (kxs, fwork) ) (* end of [funmap_foreach_cloref] *) // (* ****** ****** *) (* end of [funmap.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/DATS/funarray.dats0000644000175000017500000001462613431250607023010 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-10-26: // For supporting // "unityped" programming // (* ****** ****** *) // (* #define ATS_DYNLOADFLAG 1 *) #define ATS_PACKNAME "ATSLIB.libats.ML.COMPILE" // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/list0.sats" // (* ****** ****** *) // #staload FA = "libats/SATS/funarray.sats" #staload _(*FA*) = "libats/DATS/funarray_braunt.dats" // (* ****** ****** *) // // HX: Interface // (* ****** ****** *) // // HX: covariant // abstype farray_type ( a:t@ype+ ) = ptr // typedef farray(a:t@ype) = farray_type(a) // (* ****** ****** *) // exception FarraySubscriptExn of ((*void*)) // (* ****** ****** *) // extern fun farray_nil {a:type}((*void*)):<> farray(a) extern fun farray_make_nil {a:type}((*void*)):<> farray(a) // (* ****** ****** *) // extern fun farray_make_list {a:type}(list0(INV(a))): farray(a) // (* ****** ****** *) // extern fun farray_size {a:type}(xs: farray(a)):<> intGte(0) // overload size with farray_size // (* ****** ****** *) // extern fun farray_is_nil {a:type}(xs: farray(a)): bool extern fun farray_isnot_nil {a:type}(xs: farray(a)): bool // overload iseqz with farray_is_nil overload isneqz with farray_isnot_nil // (* ****** ****** *) // extern fun farray_get_at_exn {a:type} (xs: farray(INV(a)), i: int): (a) extern fun farray_set_at_exn {a:type} (xs: &farray(INV(a)) >> _, i: int, x: a): void // overload [] with farray_get_at_exn overload [] with farray_set_at_exn // (* ****** ****** *) // extern fun farray_get_at_opt {a:type} (xs: farray(INV(a)), i: int):<> Option_vt(a) extern fun farray_set_at_opt {a:type} (xs: &farray(INV(a)) >> _, i: int, x0: a): bool // overload get_at_opt with farray_get_at_opt overload set_at_opt with farray_set_at_opt // (* ****** ****** *) // extern fun farray_foreach_cloref {a:type} ( xs: farray(INV(a)) , fwork: cfun(a, void) ): void and farray_foreach_method {a:type} ( xs: farray(INV(a)) ) ( fwork: cfun(a, void) ): void // overload .foreach with farray_foreach_method // (* ****** ****** *) // extern fun farray_iforeach_cloref {a:type} ( xs: farray(INV(a)) , fwork: cfun(int, a, void) ): void and farray_iforeach_method {a:type} ( xs: farray(INV(a)) ) ( fwork: cfun(int, a, void) ): void // overload .iforeach with farray_iforeach_method // (* ****** ****** *) // extern fun farray_foldleft_cloref {res:type}{a:type} ( xs: farray(INV(a)) , r0: res, fwork: cfun(res, a, res) ): res and farray_foldleft_method {res:type}{a:type} ( xs: farray(INV(a)) , _(*type*): TYPE(res) ) ( r0: res, fwork: cfun(res, a, res) ): res // overload .foldleft with farray_foldleft_method // (* ****** ****** *) // extern fun farray_ifoldleft_cloref {res:type}{a:type} ( xs: farray(INV(a)) , r0: res, fwork: cfun(res, int, a, res) ): res and farray_ifoldleft_method {res:type}{a:type} ( xs: farray(INV(a)) , _(*type*): TYPE(res) ) ( r0: res, fwork: cfun(res, int, a, res) ): res // overload .ifoldleft with farray_ifoldleft_method // (* ****** ****** *) // // HX: Implementation // (* ****** ****** *) // assume farray_type (a:t@ype) = $FA.farray(a) // (* ****** ****** *) // implement farray_nil() = $FA.farray_nil((*void*)) implement farray_make_nil() = $FA.farray_make_nil((*void*)) // (* ****** ****** *) // implement farray_make_list {a}(xs) = let val xs = g1ofg0_list(xs) in $FA.farray_make_list(xs) end // end of [farray_make_list] // (* ****** ****** *) // implement farray_size(xs) = $FA.farray_size(xs) where { // prval() = $FA.lemma_farray_param(xs) // end of [prval] } // (* ****** ****** *) // implement farray_is_nil (xs) = $FA.farray_is_nil(xs) implement farray_isnot_nil (xs) = $FA.farray_isnot_nil(xs) // (* ****** ****** *) implement farray_get_at_exn (xs, i) = let // val opt = farray_get_at_opt(xs, i) // in case+ opt of | ~Some_vt(x) => x | ~None_vt((*void*)) => $raise FarraySubscriptExn() end // end of [farray_get_at_exn] implement farray_set_at_exn (xs, i, x0) = let // val opt = farray_set_at_opt(xs, i, x0) // in case+ opt of | true(*void*) => () | false(*void*) => $raise FarraySubscriptExn() end // end of [farray_set_at_exn] (* ****** ****** *) implement farray_get_at_opt {a}(xs, i) = let // val i = g1ofg0(i) // in // if ( i >= 0 ) then ( $FA.farray_getopt_at(xs, i) ) else None_vt() // end of [if] // end // end of [farray_get_at_opt] (* ****** ****** *) implement farray_set_at_opt {a}(xs, i, x0) = let // val i = g1ofg0(i) // in // if ( i >= 0 ) then ( $FA.farray_setopt_at(xs, i, x0) ) else false(*fail*) // end of [if] // end // end of [farray_set_at_opt] // (* ****** ****** *) // implement farray_foreach_cloref {a}(xs, fwork) = let // implement $FA.farray_foreach$fwork (x, env) = fwork(x) // in $FA.farray_foreach(xs) end // end of [farray_foreach_cloref] // implement farray_foreach_method {a}(xs) = ( lam(fwork) => farray_foreach_cloref{a}(xs, fwork) ) // (* ****** ****** *) // implement farray_iforeach_cloref {a}(xs, fwork) = let // implement $FA.farray_foreach$fwork (x, env) = ( let val i = env val () = env := i + 1 in fwork(i, x) end ) // var env: int = 0 // in // $FA.farray_foreach_env(xs, env) // end // end of [farray_iforeach_cloref] // implement farray_iforeach_method {a}(xs) = ( lam(fdo) => farray_iforeach_cloref{a}( xs, fdo ) // end of [lam] ) // (* ****** ****** *) // implement farray_foldleft_cloref {res}{a} (xs, r0, fwork) = let // implement $FA.farray_foreach$fwork (x, env) = ( let val r0 = env in env := fwork(r0, x) end ) // var env: res = r0 // in // $FA.farray_foreach_env(xs, env); env // end // end of [farray_foldleft_cloref] // implement farray_foldleft_method {res}{a} (xs, type) = ( lam(r0, fdo) => farray_foldleft_cloref{res}{a}(xs, r0, fdo) // end of [lam] ) // (* ****** ****** *) // implement farray_ifoldleft_cloref {res}{a} (xs, r0, fwork) = let // typedef ires = @(int, res) // implement $FA.farray_foreach$fwork (x, env) = ( let // val i0 = env.0 and r0 = env.1 // in env.0 := i0 + 1; env.1 := fwork(r0, i0, x) end ) // var env: ires val ((*init*)) = env.0 := 0 val ((*init*)) = env.1 := r0 // in // $FA.farray_foreach_env(xs, env); env.1 // end // end of [farray_foldleft_cloref] // implement farray_ifoldleft_method {res}{a} (xs, type) = ( lam(r0, fdo) => farray_ifoldleft_cloref{res}{a}(xs, r0, fdo) // end of [lam] ) // (* ****** ****** *) (* end of [funarray.dats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/mylibies.hats0000644000175000017500000000137013431250607022237 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-10-30: // For dynloading // ATSLIB/libats/ML/COMPILE // (* ****** ****** *) // #dynload "libats/ML/COMPILE/DATS/array0.dats" #dynload "libats/ML/COMPILE/DATS/string.dats" // #dynload "libats/ML/COMPILE/DATS/funmap.dats" #dynload "libats/ML/COMPILE/DATS/funarray.dats" #dynload "libats/ML/COMPILE/DATS/hashtblref.dats" // (* ****** ****** *) // // HX-2017-10-30: // For staloading // ATSLIB/libats/ML/COMPILE // (* ****** ****** *) // #staload "libats/ML/COMPILE/DATS/array0.dats" #staload "libats/ML/COMPILE/DATS/string.dats" // #staload "libats/ML/COMPILE/DATS/funmap.dats" #staload "libats/ML/COMPILE/DATS/funarray.dats" #staload "libats/ML/COMPILE/DATS/hashtblref.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/COMPILE/.keeper0000644000175000017500000000000013431250607021002 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/.keeper0000644000175000017500000000000013431250607017712 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/CATS/0000755000175000017500000000000013431250607017202 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/CATS/.keeper0000644000175000017500000000000013431250607020444 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/CATS/array0.cats0000644000175000017500000000316713431250607021263 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: December, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_ML_ARRAY0_CATS #define ATSLIB_LIBATS_ML_ARRAY0_CATS /* ****** ****** */ #define atslib_ML_array0_memcpy memcpy /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_ML_ARRAY0_CATS /* ****** ****** */ /* end of [array0.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/ML/CATS/strarr.cats0000644000175000017500000000436013431250607021376 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: April, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_ML_STRARR_CATS #define ATSLIB_LIBATS_ML_STRARR_CATS /* ****** ****** */ #ifndef strncmp extern int strncmp ( const char *s1, const char *s2, size_t n ) ; // strncmp #endif // ifndef(strncmp) /* ****** ****** */ #ifndef memchr extern // C++: const void *memchr(const void *s, int c, size_t n) ; #endif // ifndef(memchr) #ifndef memcpy extern void *memcpy(void *dst, const void *src, size_t n) ; #endif // ifndef(memcpy) /* ****** ****** */ extern size_t fwrite ( const void *ptr, size_t size, size_t nmemb, FILE *stream ) ; // end of [fwrite] // in [stdio.h] /* ****** ****** */ #define atslib_ML_strarr_memchr memchr #define atslib_ML_strarr_memcpy memcpy #define atslib_ML_strarr_strncmp strncmp #define atslib_ML_strarr_fwrite fwrite /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_ML_STRARR_CATS /* ****** ****** */ /* end of [strarr.cats] */ ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/0000755000175000017500000000000013431250607017222 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/funmap.sats0000644000175000017500000001060513431250607021406 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: August, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) // // HX: for maps of elements of type (a) // abstype map_type ( key:t@ype , itm:t0ype+ ) = ptr(*boxed*) // typedef map(key:t0p , itm:t0p) = map_type(key, itm) // (* ****** ****** *) // fun {key:t0p} compare_key_key(x1: key, x2: key):<> int // (* ****** ****** *) // fun{} funmap_nil {key,itm:t0p}():<> map(key, itm) fun{} funmap_make_nil {key,itm:t0p}():<> map(key, itm) // (* ****** ****** *) // fun{ key,itm:t0p } funmap_size (map: map(key, INV(itm))):<> size_t // overload size with funmap_size // (* ****** ****** *) // fun{} funmap_is_nil {key,itm:t0p}(map: map(key, INV(itm))):<> bool fun{} funmap_isnot_nil {key,itm:t0p}(map: map(key, INV(itm))):<> bool // overload iseqz with funmap_is_nil overload isneqz with funmap_isnot_nil // (* ****** ****** *) fun{ key,itm:t0p } funmap_search ( map: map(key, INV(itm)), k0: key ) : Option_vt(itm) // end of [funmap_search] (* ****** ****** *) // fun{ key,itm:t0p } funmap_insert ( &map(key, INV(itm)) >> _, key, itm ) : Option_vt(itm) // end of [funmap_insert] // (* ****** ****** *) // fun{ key,itm:t0p } funmap_takeout ( map: &map(key, INV(itm)) >> _, k0: key ) : Option_vt(itm) // end of [funmap_takeout] // (* ****** ****** *) // fun{ key,itm:t0p } funmap_remove (map: &map(key, INV(itm)) >> _, k0: key): bool // (* ****** ****** *) // fun{} fprint_funmap$sep (out: FILEref): void // fprint("; ") fun{} fprint_funmap$mapto (out: FILEref): void // fprint("->") // fun {key ,itm:t0p} fprint_funmap (out: FILEref, map: map(key, itm)): void // overload fprint with fprint_funmap // (* ****** ****** *) // fun{ key,itm:t0p } funmap_foreach (map: map(key, itm)): void fun {key:t0p ;itm:t0p} {env:vt0p} funmap_foreach_env (map: map(key, itm), env: &(env) >> _): void // fun {key:t0p ;itm:t0p} {env:vt0p} funmap_foreach$fwork (key: key, itm: &itm >> _, env: &(env) >> _): void // (* ****** ****** *) // fun{ key,itm:t0p } funmap_foreach_cloref ( map: map(key, itm) , fwork: (key, itm) - void ) : void // end-of-function // (* ****** ****** *) // fun{ key,itm:t0p } funmap_listize (map: map(key, INV(itm))): list0 @(key, itm) // (* ****** ****** *) // fun{ key,itm:t0p } funmap_streamize (map: map(key, INV(itm))): stream_vt @(key, itm) // (* ****** ****** *) typedef map_modtype ( key: t0p, itm: t0p ) = $rec{ // nil = () -<> map(key,itm) , size = $d2ctype(funmap_size) , is_nil = (map(key,itm)) -<> bool , isnot_nil = (map(key,itm)) -<> bool , search = $d2ctype(funmap_search) , insert = $d2ctype(funmap_insert) , remove = $d2ctype(funmap_remove) , takeout = $d2ctype(funmap_takeout) , listize = $d2ctype(funmap_listize) , streamize = $d2ctype(funmap_streamize) // } (* end of [set_modtype] *) (* ****** ****** *) // fun {key:t0p ;itm:t0p} funmap_make_module((*void*)): map_modtype(key,itm) // (* ****** ****** *) (* end of [funmap.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/gvalue.sats0000644000175000017500000001474513431250607021414 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Starting time: December, 2015 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) (* typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose *) (* ****** ****** *) macdef GVint_uncons(x0) = ( case+ ,(x0) of // case+ | GVint(i) => i | _(*non-int*) => let val () = assertloc(false) in exit(1) end ) : int // end of [GVint_uncons] macdef GVptr_uncons(x0) = ( case+ ,(x0) of // case+ | GVptr(i) => i | _(*non-ptr*) => let val () = assertloc(false) in exit(1) end ) : ptr // end of [GVptr_uncons] (* ****** ****** *) macdef GVbool_uncons(x0) = ( case+ ,(x0) of // case+ | GVbool(i) => i | _(*non-bool*) => let val () = assertloc(false) in exit(1) end ) : bool // end of [GVbool_uncons] macdef GVchar_uncons(x0) = ( case+ ,(x0) of // case+ | GVchar(i) => i | _(*non-char*) => let val () = assertloc(false) in exit(1) end ) : char // end of [GVchar_uncons] (* ****** ****** *) macdef GVfloat_uncons(x0) = ( case+ ,(x0) of // case+ | GVfloat(f) => f | _(*non-float*) => let val () = assertloc(false) in exit(1) end ) : double // end of [GVfloat_uncons] (* ****** ****** *) macdef GVstring_uncons(x0) = ( case+ ,(x0) of // case+ | GVstring(s) => s | _(*non-string*) => let val () = assertloc(false) in exit(1) end ) : string // end of [GVstring_uncons] (* ****** ****** *) macdef GVlist_uncons(x0) = ( case+ ,(x0) of // case+ | GVlist(xs) => xs | _(*non-string*) => let val () = assertloc(false) in exit(1) end ) : gvlist // end of [GVlist_uncons] (* ****** ****** *) macdef GVarray_uncons(x0) = ( case+ ,(x0) of // case+ | GVarray(xs) => xs | _(*non-string*) => let val () = assertloc(false) in exit(1) end ) : gvarray // end of [GVarray_uncons] (* ****** ****** *) macdef GVhashtbl_uncons(x0) = ( case+ ,(x0) of // case+ | GVhashtbl(kxs) => kxs | _(*non-string*) => let val () = assertloc(false) in exit(1) end ) : gvhashtbl // end of [GVhashtbl_uncons] (* ****** ****** *) // fun print_gvalue : gvalue -> void fun prerr_gvalue : gvalue -> void fun fprint_gvalue : fprint_type(gvalue) // overload print with print_gvalue overload prerr with prerr_gvalue overload fprint with fprint_gvalue // (* ****** ****** *) // fun fprint_gvlist : fprint_type(gvlist) fun fprint_gvarray : fprint_type(gvarray) fun fprint_gvdynarr : fprint_type(gvdynarr) fun fprint_gvhashtbl : fprint_type(gvhashtbl) // overload fprint with fprint_gvlist of 10 overload fprint with fprint_gvarray of 10 overload fprint with fprint_gvdynarr of 10 overload fprint with fprint_gvhashtbl of 20 // (* ****** ****** *) // fun{} gvalue_nil(): gvalue // fun{} gvalue_int(int): gvalue // fun{} gvalue_ptr(ptr): gvalue // fun{} gvalue_bool(bool): gvalue fun{} gvalue_char(char): gvalue // fun{} gvalue_float(double): gvalue fun{} gvalue_string(string): gvalue // (* ****** ****** *) // fun{} gvalue_box{a:type}(x: a): gvalue // (* ****** ****** *) // fun{} gvalue_ref(gvref): gvalue // fun{} gvalue_list(xs: gvlist): gvalue // fun{} gvalue_array(xs: gvarray): gvalue // fun{} gvalue_hashtbl(kxs: gvhashtbl): gvalue // (* ****** ****** *) // fun{} gvalue_is_nil(gvalue): bool fun{} gvalue_isnot_nil(gvalue): bool // overload iseqz with gvalue_is_nil overload isneqz with gvalue_isnot_nil // (* ****** ****** *) // fun gvref_make_elt(ini: gvalue): gvref // (* ****** ****** *) // fun gvarray_make_nil(asz: intGte(0)): gvarray // (* ****** ****** *) // fun gvdynarr_make_nil(cap: intGte(1)): gvdynarr // (* ****** ****** *) // fun gvdynarr_get_at (gvdynarr, i: intGte(0)): gvalue fun gvdynarr_set_at (gvdynarr, i: intGte(0), x: gvalue): void // overload [] with gvdynarr_get_at overload [] with gvdynarr_set_at // (* ****** ****** *) // fun gvdynarr_insert_atbeg (gvdynarr, x: gvalue): void fun gvdynarr_insert_atend (gvdynarr, x: gvalue): void // overload .insbeg with gvdynarr_insert_atbeg overload .insend with gvdynarr_insert_atend // (* ****** ****** *) // fun gvdynarr_listize0(gvdynarr): list0(gvalue) fun gvdynarr_listize1(gvdynarr): list0(gvalue) // (* ****** ****** *) // fun gvhashtbl_make_nil (cap: intGte(1)): gvhashtbl // (* ****** ****** *) // fun gvhashtbl_get_atkey (gvhashtbl, k: string): gvalue fun gvhashtbl_set_atkey (gvhashtbl, k: string, x: gvalue): void // fun gvhashtbl_exch_atkey (gvhashtbl, k: string, x: gvalue): gvalue // (* ****** ****** *) // overload [] with gvhashtbl_get_atkey of 20 overload [] with gvhashtbl_set_atkey of 20 // (* overload .get with gvhashtbl_get_atkey of 20 overload .set with gvhashtbl_set_atkey of 20 *) // (* ****** ****** *) // fun gvhashtbl_pop_atkey (gvhashtbl, k: string): gvalue fun gvhashtbl_push_atkey (gvhashtbl, k: string, x: gvalue): void // (* ****** ****** *) // fun{} gvhashtbl_foreach_cloref ( tbl: gvhashtbl , fwork: (string, &gvalue >> _) - void ) : void // end of [gvhashtbl_foreach_cloref] // fun{} gvhashtbl_foreach_method ( tbl: gvhashtbl ) ( fwork: (string, &gvalue >> _) - void ) : void // end of [gvhashtbl_foreach_method] // (* ****** ****** *) // fun{} gvhashtbl_listize1(gvhashtbl): list0 @(string, gvalue) // (* ****** ****** *) (* end of [gvalue.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/intrange.sats0000644000175000017500000001466213431250607021736 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: September, 2014 *) (* Authoremail: gmhwxiATgmailDOTcom*) (* ****** ****** *) // // HX-2013-04: // intrange(l, r) is for integers i satisfying l <= i < r // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) // fun{} int_repeat_lazy (n: int, f0: lazy(void)): void fun{} int_repeat_cloref (n: int, f0: cfun0(void)): void fun{} int_repeat_method (n: int)(f0: cfun0(void)): void // overload * with int_repeat_lazy // overload repeat with int_repeat_lazy overload repeat with int_repeat_cloref overload .repeat with int_repeat_method // (* ****** ****** *) // fun{} int_forall_cloref (n: int, f0: cfun1(int, bool)): bool fun{} int_forall_method (n: int)(f0: cfun1(int, bool)): bool // (* overload forall with int_forall_cloref *) overload .forall with int_forall_method // (* ****** ****** *) // fun{} int_foreach_cloref (n: int, f0: cfun1(int, void)): void fun{} int_foreach_method (n: int)(f0: cfun1(int, void)): void // (* overload foreach with int_foreach_cloref *) overload .foreach with int_foreach_method // (* ****** ****** *) // fun{} int_rforeach_cloref (n: int, f0: cfun1(int, void)): void fun{} int_rforeach_method (n: int)(f0: cfun1(int, void)): void // (* overload rforeach with int_rforeach_cloref *) overload .rforeach with int_rforeach_method // (* ****** ****** *) // fun {res:vt0p} int_foldleft_cloref (n: int, ini: res, f0: cfun2(res, int, res)): res // fun {res:vt0p} int_foldleft_method (int, TYPE(res))(ini: res, f0: cfun2(res, int, res)): res // (* overload foldleft with int_foldleft_cloref *) overload .foldleft with int_foldleft_method // (* ****** ****** *) // fun {res:vt0p} int_foldright_cloref (n: int, f0: cfun2(int, res, res), snk: res): res // fun {res:vt0p} int_foldright_method (int, TYPE(res))(f0: cfun2(int, res, res), snk: res): res // (* overload foldright with int_foldright_cloref *) overload .foldright with int_foldright_method // (* ****** ****** *) // fun{} intrange_forall_cloref (l: int, r: int, f0: cfun1(int, bool)): bool fun{} intrange_forall_method (lr: @(int, int))(f0: cfun1(int, bool)): bool // (* overload forall with intrange_forall_cloref *) overload .forall with intrange_forall_method // (* ****** ****** *) // fun{} intrange_foreach_cloref (l: int, r: int, f0: cfun1(int, void)): void fun{} intrange_foreach_method (lr: @(int, int))(f0: cfun1(int, void)): void // (* overload foreach with intrange_foreach_cloref *) overload .foreach with intrange_foreach_method // (* ****** ****** *) // fun{} intrange_rforeach_cloref (l: int, r: int, f0: cfun1(int, void)): void fun{} intrange_rforeach_method (lr: @(int, int))(f0: cfun1(int, void)): void // (* overload rforeach with intrange_rforeach_cloref *) overload .rforeach with intrange_rforeach_method // (* ****** ****** *) // fun {res:vt0p} intrange_foldleft_cloref ( l: int, r: int, ini: res, f0: cfun2(res, int, res) ) : res // end of [intrange_foldleft_cloref] // fun {res:vt0p} intrange_foldleft_method ((int, int), TYPE(res))(ini: res, f0: cfun2(res, int, res)): res // (* overload foldleft with intrange_foldleft_cloref *) overload .foldleft with intrange_foldleft_method // (* ****** ****** *) // fun {res:vt0p} intrange_foldright_cloref ( l: int, r: int, f0: cfun2(int, res, res), snk: res ) : res // end of [intrange_foldright_cloref] // fun {res:vt0p} intrange_foldright_method ((int, int), TYPE(res))(f0: cfun2(int, res, res), snk: res): res // (* overload foldright with intrange_foldright_cloref *) overload .foldright with intrange_foldright_method // (* ****** ****** *) // fun{} int_streamGte(n: int): stream(int) // overload .streamGte with int_streamGte // fun{} int_streamGte_vt(n: int): stream_vt(int) // overload .streamGte_vt with int_streamGte_vt // (* ****** ****** *) // fun {a:t0p} int_list0_map_cloref {n:nat} (n: int(n), fopr: cfun(natLt(n), a)): list0(a) fun {a:t0p} int_list0_map_method {n:nat} (n: int(n), TYPE(a))(f0: cfun(natLt(n), a)): list0(a) // overload .list0_map with int_list0_map_method // (* ****** ****** *) // fun {a:t0p} int_array0_map_cloref {n:nat} (n: int(n), fopr: cfun(natLt(n), a)): array0(a) fun {a:t0p} int_array0_map_method {n:nat} (n: int(n), TYPE(a))(f0: cfun(natLt(n), a)): array0(a) // overload .array0_map with int_array0_map_method // (* ****** ****** *) // fun {a:t0p} int_stream_map_cloref {n:nat} (n: int(n), fopr: cfun(natLt(n), a)): stream(a) fun {a:t0p} int_stream_map_method {n:nat} (n: int(n), TYPE(a))(f0: cfun(natLt(n), a)): stream(a) // overload .stream_map with int_stream_map_method // (* ****** ****** *) // fun {a:vt0p} int_stream_vt_map_cloref {n:nat} (n: int(n), fopr: cfun(natLt(n), a)): stream_vt(a) fun{a:vt0p} int_stream_vt_map_method {n:nat} (n: int(n), TYPE(a))(f0: cfun(natLt(n), a)): stream_vt(a) // overload .stream_vt_map with int_stream_vt_map_method // (* ****** ****** *) // (* HX: cross product *) // fun{} int2_foreach_cloref (n1: int, n2: int, f0: cfun2(int, int, void)): void // fun{} intrange2_foreach_cloref (l1:int, r1:int, l2:int, r2:int, f0: cfun2(int,int,void)): void // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/stdlib.sats0000644000175000017500000000464713431250607021412 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: June, 2013 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) // fun{} getenv_exn (name: NSH(string)): string // fun{} getenv_opt (name: NSH(string)): option0 (string) // (* ****** ****** *) // fun{} setenv_exn ( name: NSH(string), value: NSH(string), overwrite: int ) : void // end of [setenv_exn] // fun{} setenv_err ( name: NSH(string), value: NSH(string), overwrite: int ) : int(*err*) // end of [setenv_err] // (* ****** ****** *) // // HX: // Default implementation // is based on STDLIB.random // fun{} randint{n:pos}(n: int(n)): natLt(n) // (* ****** ****** *) // fun{} streamize_random((*void*)): stream_vt(intGte(0)) fun{} streamize_randint{n:pos}(int(n)): stream_vt(natLt(n)) // (* ****** ****** *) // (* fun{} streamize_random_r(seed: uint): stream_vt(intGte(0)) *) // (* ****** ****** *) (* end of [stdlib.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/filebas.sats0000644000175000017500000000647713431250607021541 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) typedef charlst0 = list0 (char) typedef stringlst0 = list0 (string) (* ****** ****** *) (* fun fileref_open_opt (path: NSH(string), fm: file_mode): option0 (FILEref) // end of [fileref_open_opt] *) (* ****** ****** *) // fun fileref_get_line_charlst(filr: FILEref): charlst0 // (* ** HX: for handling files of "tiny" size *) fun fileref_get_lines_charlstlst(filr: FILEref): list0(charlst0) // (* ****** ****** *) // fun fileref_get_line_string(filr: FILEref): string // (* ** HX: for handling files of "tiny" size *) fun fileref_get_lines_stringlst(filr: FILEref): stringlst0 // fun{} filename_get_lines_stringlst_opt(path: string): Option_vt(stringlst0) // (* ****** ****** *) // fun{} streamize_fileref_char (inp: FILEref): stream_vt(char) fun{} streamize_fileptr_char (inp: FILEptr1): stream_vt(char) // (* ****** ****** *) // fun{} streamize_fileref_line (inp: FILEref): stream_vt(string) fun{} streamize_fileptr_line (inp: FILEptr1): stream_vt(string) // (* ****** ****** *) // (* // // HX: this one is in prelude/filebas // fun{} fileref_get_word$isalpha(c0: charNZ): bool *) fun{} streamize_fileref_word (inp: FILEref): stream_vt(string) fun{} streamize_fileptr_word (inp: FILEptr1): stream_vt(string) // (* ****** ****** *) // fun{} streamize_filename_char (fname: string): streamopt_vt(char) fun{} streamize_filename_line (fname: string): streamopt_vt(string) fun{} streamize_filename_word (fname: string): streamopt_vt(string) // (* ****** ****** *) // fun dirname_get_fnamelst(dirname: string): list0(string) // (* ****** ****** *) // fun{} streamize_dirname_fname(dirname: string): stream_vt(string) // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/monad_maybe.sats0000644000175000017500000000367513431250607022404 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: August, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names (* ****** ****** *) staload "./basis.sats" (* ****** ****** *) #include "./SHARE/monad.hats" (* ****** ****** *) // fun{a:t0p} monad_maybe_none(): monad(a) fun{a:t0p} monad_maybe_some(x0: a): monad(a) // (* ****** ****** *) // fun{a:t0p} monad_maybe_optize (m0: monad(INV(a))): Option(a) // (* ****** ****** *) // fun {a:t0p} fprint_monad (out: FILEref, m: monad(INV(a))): void // overload fprint with fprint_monad // (* ****** ****** *) (* end of [monad_maybe.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/list0_vt.sats0000644000175000017500000000452713431250607021672 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: January, 2018 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) // #define list0_vt_sing(x) list0_vt_cons(x, list0_vt_nil()) // #define list0_vt_pair(x1, x2) list0_vt_cons (x1, list0_vt_cons(x2, list0_vt_nil())) // (* ****** ****** *) // castfn list0_vt2t {a:t@ype}(list0_vt(INV(a))):<> list0(a) // (* ****** ****** *) // castfn g0ofg1_list_vt {a:vt@ype} (List_vt(INV(a))):<> list0_vt(a) castfn g1ofg0_list_vt {a:vt@ype} (list0_vt(INV(a))):<> List0_vt(a) // overload g0ofg1 with g0ofg1_list_vt overload g1ofg0 with g1ofg0_list_vt // (* ****** ****** *) // fun {a:t0p} list0_vt_free(xs: list0_vt(a)): void // (* ****** ****** *) // fun {a:vt0p} list0_vt_append (list0_vt(INV(a)), list0_vt(INV(a))): list0_vt(a) // (* ****** ****** *) // fun {a:vt0p} list0_vt_reverse(xs: list0_vt(INV(a))): list0_vt(a) // (* ****** ****** *) (* end of [list0_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/hashtblref.sats0000644000175000017500000001025013431250607022236 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: August, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) // typedef hashtbl // introduced in [basis.sats] (key:t@ype, itm:t@ype) = hashtbl(key, itm) // (* ****** ****** *) // fun{ key:t0p } hash_key(x: key):<> ulint // fun{ key:t0p } equal_key_key(x1: key, x2: key):<> bool // (* ****** ****** *) // fun{ key,itm:t0p } hashtbl_make_nil (cap: sizeGte(1)): hashtbl(key, itm) // (* ****** ****** *) // fun{} hashtbl_get_size {key,itm:t0p}(hashtbl(key, itm)): sizeGte(0) fun{} hashtbl_get_capacity {key,itm:t0p}(hashtbl(key, itm)): sizeGte(1) // overload size with hashtbl_get_size overload capacity with hashtbl_get_capacity // (* ****** ****** *) fun{ key,itm:t0p } hashtbl_search (hashtbl(key, INV(itm)), key): Option_vt(itm) // end of [hashtbl_search] fun{ key,itm:t0p } hashtbl_search_ref (tbl: hashtbl(key, INV(itm)), k: key): cPtr0(itm) // end of [hashtbl_search_ref] (* ****** ****** *) fun{ key,itm:t0p } hashtbl_insert (hashtbl(key, INV(itm)), key, itm): Option_vt(itm) // end of [hashtbl_insert] fun{ key,itm:t0p } hashtbl_insert_any (hashtbl(key, INV(itm)), key, itm): void(*inserted*) (* ****** ****** *) fun{ key,itm:t0p } hashtbl_takeout (kxs: hashtbl(key, INV(itm)), k0: key): Option_vt(itm) // end of [hashtbl_takeout] (* ****** ****** *) fun{ key,itm:t0p } hashtbl_remove (kxs: hashtbl(key, INV(itm)), key): bool (* ****** ****** *) fun{ key,itm:t0p } hashtbl_takeout_all (kxs: hashtbl(key, INV(itm))): list0(@(key, itm)) // end of [hashtbl_takeout_all] (* ****** ****** *) // fun{ key,itm:t@ype } fprint_hashtbl (out: FILEref, tbl: hashtbl(key, INV(itm))): void // overload fprint with fprint_hashtbl // fun{} fprint_hashtbl$sep (out: FILEref): void // default: fprint("; ") fun{} fprint_hashtbl$mapto (out: FILEref): void // default: fprint("->") // (* ****** ****** *) // fun{ key,itm:t@ype } fprint_hashtbl_sep_mapto ( out: FILEref , tbl: hashtbl(key, INV(itm)), sep: string, mapto: string ) : void // end of [fprint_hashtbl_sep_mapto] // (* ****** ****** *) // fun{ key,itm:t0p } hashtbl_foreach (tbl: hashtbl(key, INV(itm))): void fun {key:t0p ;itm:t0p} {env:vt0p} hashtbl_foreach_env (hashtbl(key, INV(itm)), env: &(env) >> _): void // fun {key:t0p ;itm:t0p} {env:vt0p} hashtbl_foreach$fwork (key: key, itm: &itm >> _, env: &(env) >> _): void // (* ****** ****** *) // fun{ key,itm:t0p } hashtbl_foreach_cloref ( hashtbl(key, INV(itm)), fwork: (key, &itm >> _) - void ) : void // end of [hashtbl_foreach_cloref] // (* ****** ****** *) // fun{ key,itm:t0p } hashtbl_listize0 (kxs: hashtbl(key, INV(itm))): list0(@(key, itm)) fun{ key,itm:t0p } hashtbl_listize1 (kxs: hashtbl(key, INV(itm))): list0(@(key, itm)) // (* ****** ****** *) (* end of [hashtblref.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/option0.sats0000644000175000017500000000732513431250607021515 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* Start time: May, 2012 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) // castfn option0_of_option {a:t@ype} (xs: Option(INV(a))):<> option0(a) castfn option0_of_option_vt {a:t@ype} (xs: Option_vt(INV(a))):<> option0(a) // (* ****** ****** *) // castfn g0ofg1_option {a:t@ype} (xs: Option(INV(a))):<> option0(a) castfn g1ofg0_option {a:t@ype} (xs: option0(INV(a))):<> Option(a) // overload g0ofg1 with g0ofg1_option overload g1ofg0 with g1ofg0_option // (* ****** ****** *) // fun{} option0_none {a:t0p}((*void*)):<> option0(a) // fun {a:t0p} option0_some(x0: a):<> option0(a) // (* ****** ****** *) // fun{} option0_is_none {a:t0p}(x: option0(a)):<> bool // overload iseqz with option0_is_none // fun{} option0_is_some {a:t0p}(x: option0(a)):<> bool // overload isneqz with option0_is_some // (* ****** ****** *) // fun{a:t0p} option0_unsome_exn(opt: option0(a)): a // (* ****** ****** *) // fun{a:t0p} print_option0 (opt: option0(INV(a))): void fun{a:t0p} prerr_option0 (opt: option0(INV(a))): void // fun{a:t0p} fprint_option0 ( out: FILEref, opt: option0(INV(a)) ) : void // end-of-function // overload print with print_option0 overload prerr with prerr_option0 overload fprint with fprint_option0 // (* ****** ****** *) // fun{ a:t0p}{b:t0p } option0_map ( opt: option0(INV(a)), fopr: cfun(a, b) ) : option0(b) // end of [option0_map] // fun{ a:t0p}{b:t0p } option0_map_method ( option0(INV(a)), TYPE(b))(fopr: cfun(a, b) ) : option0(b) // end of [option0_map_method] // overload .map with option0_map_method // (* ****** ****** *) // fun {a:t0p} option0_filter ( opt: option0(INV(a)), pred: cfun(a, bool) ) : option0(a) // end of [option0_map] // fun {a:t0p} option0_filter_method ( opt: option0(INV(a))) (pred: cfun(a, bool) ) : option0(a) // end of [option0_map_method] // overload .filter with option0_filter_method // (* ****** ****** *) // fun {a:t0p} option0_foreach (opt: option0(INV(a)), fwork: cfun(a, void)): void fun {a:t0p} option0_foreach_method (opt: option0(INV(a)))(fwork: cfun(a, void)): void // overload .foreach with option0_foreach_method // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/string.sats0000644000175000017500000001441713431250607021433 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2012 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // // prefix for external names // #define ATS_EXTERN_PREFIX "atslib_ML_" // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) // fun{} itoa(x: int):<> string // (* ****** ****** *) // fun{} string_sing(c: charNZ):<> string // (* ****** ****** *) // fun{} string_is_empty(NSH(string)):<> bool fun{} string_isnot_empty(NSH(string)):<> bool // overload iseqz with string_is_empty overload isneqz with string_isnot_empty // (* ****** ****** *) // // HX-2016-11-08: // str1 is a prefix of str2 // fun{} string_is_prefix ( str1: NSH(string), str2: NSH(string) ) :<> bool // string_is_prefix // (* ****** ****** *) // // HX-2016-11-12: // str1 is a suffix of str2 // fun{} string_is_suffix ( str1: NSH(string), str2: NSH(string) ) :<> bool // string_is_suffix // (* ****** ****** *) // fun{} string_copy(str: NSH(string)):<> string // (* ****** ****** *) // fun{} string_make_list(cs: List(char)):<> string fun{} string_make_rlist(cs: List(char)):<> string // fun{} string_make_list0(cs: list0(char)):<> string fun{} string_make_rlist0(cs: list0(char)):<> string // (* ****** ****** *) // fun{} string_make_list_vt(List_vt(char)): string fun{} string_make_rlist_vt(List_vt(char)): string // (* ****** ****** *) fun{} string_make_prefix ( x0: NSH(string), len: size_t ) :<> string // end-of-function fun{} string_make_substring ( x0: NSH(string), start: size_t, len: size_t ) :<> string // end-of-function (* ****** ****** *) // fun{} string_append ( x1: NSH(string), x2: NSH(string) ) :<> string // end of [string_append] // overload + with string_append of 0 // (* ****** ****** *) // fun{} string_append3 ( x1: NSH(string) , x2: NSH(string), x3: NSH(string) ) :<> string // end of [string_append3] // (* ****** ****** *) // fun{} string_append4 ( x1: NSH(string), x2: NSH(string) , x3: NSH(string), x4: NSH(string) ) :<> string // end of [string_append4] fun{} string_append5 ( x1: NSH(string) , x2: NSH(string), x3: NSH(string) , x4: NSH(string), x5: NSH(string) ) :<> string // end of [string_append5] fun{} string_append6 ( x1: NSH(string), x2: NSH(string) , x3: NSH(string), x4: NSH(string) , x5: NSH(string), x6: NSH(string) ) :<> string // end of [string_append6] // (* ****** ****** *) // fun{} mul_int_string ( ntime: int, x0: NSH(string) ) :<> string // end-of-function // overload * with mul_int_string of 0 // (* ****** ****** *) // fun{} stringlst_concat (xs: list0(string)):<> string // (* ****** ****** *) fun{} string_explode(string):<> list0(char) fun{} string_implode(list0(char)):<> string (* ****** ****** *) fun{} string_copywith ( cs: string , fopr: (charNZ) - charNZ ) : string // end of [string_copywith] (* ****** ****** *) // fun{} string_tabulate {n:int} ( n0: size_t(n) , fopr: (sizeLt(n)) - charNZ ) : string // end of [string_tabulate] // (* ****** ****** *) fun{} string_find_index (str: string, c0: charNZ):<> ssize_t // end of [string_find_index] (* ****** ****** *) // fun{} string_exists (cs: string, pred: cfun(char, bool)): bool fun{} string_iexists (cs: string, pred: cfun2(int, char, bool)): bool // fun{} string_exists_method (cs: string)(pred: cfun(char, bool)): bool fun{} string_iexists_method (cs: string)(pred: cfun2(int, char, bool)): bool // overload .exists with string_exists_method overload .iexists with string_iexists_method // (* ****** ****** *) // fun{} string_forall (cs: string, pred: cfun(char, bool)): bool fun{} string_iforall (cs: string, pred: cfun2(int, char, bool)): bool // fun{} string_forall_method (cs: string)(pred: cfun(char, bool)): bool fun{} string_iforall_method (cs: string)(pred: cfun2(int, char, bool)): bool // overload .forall with string_forall_method overload .iforall with string_iforall_method // (* ****** ****** *) // fun{} string_foreach (cs: string, fwork: cfun(char, void)): void fun{} string_iforeach (cs: string, fwork: cfun2(int, char, void)): void // fun{} string_foreach_method (cs: string)(fwork: cfun(char, void)): void fun{} string_iforeach_method (cs: string)(fwork: cfun2(int, char, void)): void // overload .foreach with string_foreach_method overload .iforeach with string_iforeach_method // (* ****** ****** *) // fun {res:vt0p} string_foldleft (cs: string, ini: res, cfun(res, char, res)): res fun {res:vt0p} string_foldleft_method (string, TYPE(res))(res, cfun(res, char, res)): res // overload .foldleft with string_foldleft_method // (* ****** ****** *) // fun {a:t0p} string_list0_map (cs: string, fopr: cfun(charNZ, a)): list0(a) fun {a:t0p} string_list0_map_method (string, TYPE(a))(fopr: cfun(charNZ, a)): list0(a) // overload .list0_map with string_list0_map_method // (* ****** ****** *) // fun{} streamize_string_char(string): stream_vt(charNZ) fun{} un_streamize_string_char(stream_vt(charNZ)): string // (* ****** ****** *) (* end of [string.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/.keeper0000644000175000017500000000000013431250607020464 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/stream_vt.sats0000644000175000017500000000704513431250607022130 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* Start time: October, 2016 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names // (* ****** ****** *) // staload "libats/ML/SATS/basis.sats" // (* ****** ****** *) // fun {a:t0p} stream2list0_vt (xs: stream_vt(a)): list0(a) // (* ****** ****** *) // fun {a:t0p} stream_vt_make_list0 (xs: list0(a)): stream_vt(a) // (* ****** ****** *) // fun{} intGte_stream_vt (start: int): stream_vt(int) // (* ****** ****** *) // fun{} stream_vt_make_intrange_lr (l: int, r: int): stream_vt(int) fun{} stream_vt_make_intrange_lrd (l: int, r: int, d: int): stream_vt(int) // (* ****** ****** *) // overload intrange_stream_vt with stream_vt_make_intrange_lr overload intrange_stream_vt with stream_vt_make_intrange_lrd // (* ****** ****** *) // fun{ a:vt0p}{b:vt0p } stream_vt_map_method ( stream_vt(INV(a)), TYPE(b) ) : ( (&a >> a?!) - b ) - stream_vt(b) // overload .map with stream_vt_map_method // (* ****** ****** *) // fun{a:t0p} stream_vt_filter_method ( xs: stream_vt(INV(a)) ) : ((&a)-bool)-stream_vt(a) // overload .filter with stream_vt_filter_method // (* ****** ****** *) // fun{a:vt0p} stream_vt_foreach_method (xs: stream_vt(INV(a))) : ((&a >> a?!) - void) - void // fun{a:vt0p} stream_vt_rforeach_method (xs: stream_vt(INV(a))) : ((&a >> a?!) - void) - void // overload .foreach with stream_vt_foreach_method overload .rforeach with stream_vt_rforeach_method // (* ****** ****** *) // fun{a:vt0p} stream_vt_iforeach_method (xs: stream_vt(INV(a))) : ((intGte(0), &a >> a?!) - void) - void // overload .iforeach with stream_vt_iforeach_method // (* ****** ****** *) // fun{ res:vt0p }{a:vt0p} stream_vt_foldleft_method ( xs: stream_vt(INV(a)), TYPE(res) ) : (res, (res, &a >> a?!) - res) - res fun{ res:vt0p }{a:vt0p} stream_vt_ifoldleft_method ( xs: stream_vt(INV(a)), TYPE(res) ) : (res, (intGte(0), res, &a >> a?!) - res) - res // overload .foldleft with stream_vt_foldleft_method overload .ifoldleft with stream_vt_ifoldleft_method // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/dynarray.sats0000644000175000017500000000724613431250607021760 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* Start time: December, 2015 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) #if(0) // // HX: in [basis.sats] // abstype dynarray_type (a: vt@ype(*inv*)) = ptr stadef dynarray = dynarray_type // #endif (* ****** ****** *) // fun{a:vt0p} dynarray_make_nil (cap: sizeGte(1)): dynarray(a) // (* ****** ****** *) // (* fun{} fprint_array$sep(out: FILEref): void *) fun{a:vt0p} fprint_dynarray (out: FILEref, DA: dynarray(a)): void fun{a:vt0p} fprint_dynarray_sep (out: FILEref, DA: dynarray(a), sep: string): void // (* ****** ****** *) // fun{} dynarray_get_size {a:vt0p}(DA: dynarray(a)): size_t fun{} dynarray_get_capacity {a:vt0p}(DA: dynarray(a)): size_t // (* ****** ****** *) // fun{a:t0p} dynarray_get_at_exn (DA: dynarray(a), i: size_t): (a) fun{a:t0p} dynarray_set_at_exn (DA: dynarray(a), i: size_t, x: a): void // overload [] with dynarray_get_at_exn overload [] with dynarray_set_at_exn // (* ****** ****** *) // fun{a:vt0p} dynarray_getref_at (DA: dynarray(a), i: size_t): cPtr0(a) // (* ****** ****** *) // fun{a:vt0p} dynarray_insert_atbeg (DA: dynarray(a), x0: a): Option_vt(a) // fun{a:vt0p} dynarray_insert_atend (DA: dynarray(a), x0: a): Option_vt(a) // (* ****** ****** *) // overload .insbeg with dynarray_insert_atbeg overload .insend with dynarray_insert_atend // (* ****** ****** *) // fun{a:vt0p} dynarray_insert_at ( DA: dynarray(a), i: size_t, x0: a ) : Option_vt(a) // end-of-function // (* ****** ****** *) // fun{a:vt0p} dynarray_takeout_atbeg (DA: dynarray(INV(a))): Option_vt(a) fun{a:vt0p} dynarray_takeout_atend (DA: dynarray(INV(a))): Option_vt(a) // (* ****** ****** *) // fun{a:vt0p} dynarray_takeout_at (DA: dynarray(a), i: size_t): Option_vt(a) // (* ****** ****** *) // fun{a:t@ype} dynarray_listize0(DA: dynarray(a)): list0(a) fun{a:t@ype} dynarray_listize1(DA: dynarray(a)): list0(a) // (* ****** ****** *) overload .size with dynarray_get_size overload .capacity with dynarray_get_capacity (* ****** ****** *) overload .listize0 with dynarray_listize0 overload .listize1 with dynarray_listize1 (* ****** ****** *) (* end of [dynarray.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/matrix0.sats0000644000175000017500000001343413431250607021507 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: December, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // #define // prefix for external ATS_EXTERN_PREFIX "atslib_ML_" // names // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) #if(0) // // HX: in [basis.sats] // abstype matrix0_vt0ype_type (a: vt@ype(*invariant*)) = ptr stadef matrix0 = matrix0_vt0ype_type // #endif // #if(0) (* ****** ****** *) // (* typedef matrix0(a: vt@ype) = mtrxszref(a) *) // (* ****** ****** *) // (* // // HX: already defined // sortdef t0p = t@ype and vt0p = viewt@ype // *) // (* ****** ****** *) // fun{} matrix0_of_mtrxszref {a:vt0p}(mtrxszref(a)):<> matrix0(a) // fun{} mtrxszref_of_matrix0 {a:vt0p}(M: matrix0(a)):<> mtrxszref(a) // (* ****** ****** *) // symintr matrix0_make_elt // fun{a:t0p} matrix0_make_elt_int (nrow: int, ncol: int, init: a): matrix0(a) // end of [matrix0_make_elt] fun{a:t0p} matrix0_make_elt_size (nrow: size_t, ncol: size_t, init: a): matrix0(a) // end of [matrix0_make_elt] // overload matrix0_make_elt with matrix0_make_elt_int overload matrix0_make_elt with matrix0_make_elt_size // (* ****** ****** *) // fun{} matrix0_get_ref{a:vt0p}(M: matrix0 a):<> Ptr1 // fun{} matrix0_get_nrow{a:vt0p}(M: matrix0 a):<> size_t fun{} matrix0_get_ncol{a:vt0p}(M: matrix0 a):<> size_t // fun{} matrix0_get_refsize {a:vt0p} ( M : matrix0(a) ) :<> [m,n:nat] (matrixref(a, m, n), size_t(m), size_t(n)) // (* ****** ****** *) // fun{a:t0p} matrix0_get_at_int (M: matrix0(a), i: int, j: int): a // fun{a:t0p} matrix0_get_at_size (M: matrix0(a), i: size_t, j: size_t): a // symintr matrix0_get_at // overload matrix0_get_at with matrix0_get_at_int overload matrix0_get_at with matrix0_get_at_size // (* ****** ****** *) // fun{a:t0p} matrix0_set_at_int (M: matrix0(a), i: int, j: int, x: a): void // fun{a:t0p} matrix0_set_at_size (M: matrix0(a), i: size_t, j: size_t, x: a): void // symintr matrix0_set_at // overload matrix0_set_at with matrix0_set_at_int overload matrix0_set_at with matrix0_set_at_size // (* ****** ****** *) // fun {a:vt0p} print_matrix0(M: matrix0(a)): void fun {a:vt0p} prerr_matrix0(M: matrix0(a)): void // (* fprint_matrix$sep1 // col separation fprint_matrix$sep2 // row separation *) // fun {a:vt0p} fprint_matrix0 (out: FILEref, M: matrix0(a)): void // fun {a:vt0p} fprint_matrix0_sep ( out: FILEref, M: matrix0(a), sep1: string, sep2: string ) : void // end of [fprint_matrix0_sep] // (* ****** ****** *) fun{a:t0p} matrix0_copy(M: matrix0(a)): matrix0(a) (* ****** ****** *) // fun {a:vt0p} matrix0_tabulate {m,n:int} ( nrow: size_t(m) , ncol: size_t(n) , fopr: cfun(sizeLt(m), sizeLt(n), a) ) : matrix0(a) // end of [matrix0_tabulate] // (* ****** ****** *) // fun {a:vt0p} matrix0_tabulate_method_int {m,n:nat} ( nrow: int(m) , ncol: int(n))(fopr: cfun(natLt(m), natLt(n), a) ) : matrix0(a) // end of [matrix0_tabulate_method_int] // fun {a:vt0p} matrix0_tabulate_method_size {m,n:int} ( nrow: size_t(m) , ncol: size_t(n))(fopr: cfun(sizeLt(m), sizeLt(n), a) ) : matrix0(a) // end of [matrix0_tabulate_method_size] // overload .matrix0_tabulate with matrix0_tabulate_method_int overload .matrix0_tabulate with matrix0_tabulate_method_size // (* ****** ****** *) // fun {a:vt0p} matrix0_foreach ( M : matrix0(a), fwork: (&a >> _) - void ) : void // end of [matrix0_foreach] // fun {a:vt0p} matrix0_iforeach ( M : matrix0(a), fwork: (size_t, size_t, &a >> _) - void ) : void // end of [matrix0_iforeach] // (* ****** ****** *) fun{ res:vt0p}{a:vt0p } matrix0_foldleft ( M: matrix0(a), ini: res, fopr: (res, &a) - res ) : res // end of [matrix0_foldleft] fun{ res:vt0p}{a:vt0p } matrix0_ifoldleft ( M: matrix0(a), ini: res, fopr: (res, size_t, size_t, &a) - res ) : res // end of [matrix0_ifoldleft] (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) overload .nrow with matrix0_get_nrow overload .ncol with matrix0_get_ncol (* ****** ****** *) // overload [] with matrix0_get_at_int of 0 overload [] with matrix0_set_at_int of 0 // overload [] with matrix0_get_at_size of 0 overload [] with matrix0_set_at_size of 0 // (* ****** ****** *) // overload print with print_matrix0 overload prerr with print_matrix0 // overload fprint with fprint_matrix0 overload fprint with fprint_matrix0_sep // (* ****** ****** *) (* end of [matrix0.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/strarr.sats0000644000175000017500000001270413431250607021437 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" #define // prefix for external ATS_EXTERN_PREFIX "atslib_ML_" // names // (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" // (* ****** ****** *) %{# // #include "libats/ML/CATS/strarr.cats" // %} // end of [%{#] (* ****** ****** *) (* typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose *) (* ****** ****** *) // // HX-2013-02: // a strarr-value is represented an array of character; // in principle, this array should be treated as read-only. // (* ****** ****** *) #if(0) // // HX: in [basis.sats] // abstype strarr_type = ptr typedef strarr = strarr_type // #endif // #if(0) (* ****** ****** *) // castfn array2strarr (cs: array0(char)):<> strarr castfn strarr2array (cs: strarr):<> array0(char) // (* ****** ****** *) // fun{} strarr_get_ref (str: strarr):<> Ptr1 fun{} strarr_get_size (str: strarr):<> size_t // (* ****** ****** *) // fun{} strarr_get_refsize ( A0: strarr ) :<> [n:nat] (arrayref (char, n), size_t (n)) // end of [strarr_get_refsize] // (* ****** ****** *) // fun strarr_make_string (str: string): strarr // fun strarr_make_substring (str: string, st: size_t, ln: size_t): strarr // symintr strarr_make // overload strarr_make with strarr_make_string overload strarr_make with strarr_make_substring // (* ****** ****** *) // // HX-2013: // naming convention: // xxx_imake_yyy -> yyy_make_xxx // fun strarr_imake_string(str: strarr): string // (* ****** ****** *) // fun{} strarr_is_empty(strarr):<> bool fun{} strarr_isnot_empty(strarr):<> bool // overload iseqz with strarr_is_empty overload isneqz with strarr_isnot_empty // (* ****** ****** *) // fun{tk:tk} strarr_get_at_gint (str: strarr, i: g0int(tk)): char fun{tk:tk} strarr_get_at_guint (str: strarr, i: g0uint(tk)): char // symintr strarr_get_at // overload [] with strarr_get_at_gint of 0 overload [] with strarr_get_at_guint of 0 // overload strarr_get_at with strarr_get_at_gint of 0 overload strarr_get_at with strarr_get_at_guint of 0 // (* ****** ****** *) // fun strarr_get_range ( strarr, i0: size_t, i1: size_t ) : string // end-of-strarr_get_range // (* ****** ****** *) // fun lt_strarr_strarr (x1: strarr, x2: strarr):<> bool fun lte_strarr_strarr (x1: strarr, x2: strarr):<> bool // (* ****** ****** *) // fun gt_strarr_strarr (x1: strarr, x2: strarr):<> bool fun gte_strarr_strarr (x1: strarr, x2: strarr):<> bool // (* ****** ****** *) // fun eq_strarr_strarr (x1: strarr, x2: strarr):<> bool fun neq_strarr_strarr (x1: strarr, x2: strarr):<> bool // (* ****** ****** *) // fun strarr_compare (x1: strarr, x2: strarr):<> int // (* ****** ****** *) // fun strarr_length(strarr):<> size_t // (* ****** ****** *) // fun print_strarr(str: strarr): void fun prerr_strarr(str: strarr): void // fun fprint_strarr ( out: FILEref, str: strarr ) : void // end-of-fprint_strarr // (* ****** ****** *) // fun strarr_contains (str: strarr, c: char):<> bool // (* ****** ****** *) // fun strarr_copy(str: strarr): strarr // (* ****** ****** *) // fun strarr_append (x1: strarr, x2: strarr): strarr // (* ****** ****** *) // fun strarr_tabulate {n:int} ( n: size_t(n), f: cfun(sizeLt(n), char) ) : strarr // end of [strarr_tabulate] // (* ****** ****** *) // fun strarr_foreach (str: strarr, fwork: cfun(char, void)): void // fun strarr_iforeach (str: strarr, fwork: cfun2(size_t, char, void)): void // fun strarr_rforeach (str: strarr, fwork: cfun(char, void)): void // (* ****** ****** *) // // Some common overloading // (* ****** ****** *) // overload + with strarr_append // overload < with lt_strarr_strarr overload <= with lte_strarr_strarr overload > with gt_strarr_strarr overload >= with gte_strarr_strarr overload = with eq_strarr_strarr overload != with neq_strarr_strarr overload <> with neq_strarr_strarr // (* ****** ****** *) // overload print with print_strarr overload prerr with prerr_strarr // overload fprint with fprint_strarr // (* ****** ****** *) // overload length with strarr_length // overload compare with strarr_compare // (* ****** ****** *) (* end of [strarr.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/list0.sats0000644000175000017500000004766113431250607021167 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: May, 2012 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX-2013-01: // A rule of thumb for effect-annotation is that // higher-order functions should not be annotated! // (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) (* typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose *) (* ****** ****** *) #define nil0 list0_nil #define cons0 list0_cons (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // #define list0_pair(x1, x2) list0_cons(x1, list0_cons(x2, list0_nil())) // (* ****** ****** *) // castfn list0_cast{x:t0p} (xs: list0(INV(x))):<> list0(x) // (* ****** ****** *) // castfn g0ofg1_list {a:t@ype} (List(INV(a))):<> list0(a) castfn g1ofg0_list {a:t@ype} (list0(INV(a))):<> List0(a) // overload g0ofg1 with g0ofg1_list overload g1ofg0 with g1ofg0_list // (* ****** ****** *) // castfn list0_of_list {a:t@ype}(List(INV(a))):<> list0(a) castfn list0_of_list_vt {a:t@ype}(List_vt(INV(a))):<> list0(a) // (* ****** ****** *) // fun{a:t0p} list0_tuple_0(): list0(a) // fun{a:t0p} list0_tuple_1(x0: a): list0(a) fun{a:t0p} list0_tuple_2(x0: a, x1: a): list0(a) fun{a:t0p} list0_tuple_3(x0: a, x1: a, x2: a): list0(a) // fun{a:t0p} list0_tuple_4 (x0: a, x1: a, x2: a, x3: a): list0(a) fun{a:t0p} list0_tuple_5 (x0: a, x1: a, x2: a, x3: a, x4: a): list0(a) fun{a:t0p} list0_tuple_6 (x0: a, x1: a, x2: a, x3: a, x4: a, x5: a): list0(a) // (* ****** ****** *) // symintr list0_tuple // overload list0_tuple with list0_tuple_0 overload list0_tuple with list0_tuple_1 overload list0_tuple with list0_tuple_2 overload list0_tuple with list0_tuple_3 overload list0_tuple with list0_tuple_4 overload list0_tuple with list0_tuple_5 overload list0_tuple with list0_tuple_6 // (* ****** ****** *) fun{a:t0p} list0_make_sing(x: a):<> list0(a) fun{a:t0p} list0_make_pair(x1: a, x2: a):<> list0(a) (* ****** ****** *) fun{a:t0p} list0_make_elt(n: int, x: a): list0(a) (* ****** ****** *) // symintr list0 // fun{a:t0p} list0_make_arrpsz{n:int} (psz: arrpsz(INV(a), n)): list0(a) // overload list0 with list0_make_arrpsz // (* ****** ****** *) // fun{} list0_make_intrange_lr (l: int, r: int):<> list0(int) fun{} list0_make_intrange_lrd (l: int, r: int, d: int): list0(int) // symintr list0_make_intrange // overload list0_make_intrange with list0_make_intrange_lr overload list0_make_intrange with list0_make_intrange_lrd // (* ****** ****** *) // fun{a:t0p} list0_is_nil(list0(a)):<> bool fun{a:t0p} list0_is_cons(list0(a)):<> bool // (* ****** ****** *) // fun{a:t0p} list0_is_empty(list0(a)):<> bool fun{a:t0p} list0_isnot_empty(list0(a)):<> bool // overload iseqz with list0_is_empty overload isneqz with list0_isnot_empty // (* ****** ****** *) // fun {a:t0p} list0_length (xs: list0(INV(a))):<> intGte(0) // overload length with list0_length of 0 overload .length with list0_length of 0 // (* ****** ****** *) // fun{a:t0p} list0_head_exn (xs: list0(INV(a))): (a) fun{a:t0p} list0_head_opt (xs: list0(INV(a))):<> Option_vt(a) // (* ****** ****** *) // fun {a:t0p} list0_tail_exn (xs: SHR(list0(INV(a)))): list0(a) fun {a:t0p} list0_tail_opt (xs: SHR(list0(INV(a)))):<> Option_vt(list0(a)) // (* ****** ****** *) // overload head with list0_head_exn of 0 overload tail with list0_tail_exn of 0 overload head_opt with list0_head_opt of 0 overload tail_opt with list0_tail_opt of 0 // overload .head with list0_head_exn of 0 overload .tail with list0_tail_exn of 0 overload .head_opt with list0_head_opt of 0 overload .tail_opt with list0_tail_opt of 0 // (* ****** ****** *) // fun {a:t0p} list0_last_exn (xs: list0(INV(a))): (a) fun {a:t0p} list0_last_opt (xs: list0(INV(a))):<> Option_vt(a) // (* ****** ****** *) // fun {a:t0p} list0_init_exn (xs: list0(INV(a))): list0(a) fun {a:t0p} list0_init_opt (xs: list0(INV(a))): Option_vt(list0(a)) // (* ****** ****** *) // fun{a:t0p} list0_nth_exn (xs: list0(INV(a)), i0: int): (a) fun{a:t0p} list0_nth_opt (xs: list0(INV(a)), i0: int):<> Option_vt(a) // (* ****** ****** *) // fun{a:t0p} list0_get_at_exn (xs: list0(INV(a)), i0: int): (a) fun{a:t0p} list0_get_at_opt (xs: list0(INV(a)), i0: int):<> Option_vt(a) // overload [] with list0_get_at_exn // ListSubscriptExn // (* ****** ****** *) // fun{a:t0p} list0_fset_at_exn (list0(INV(a)), i0: int, x0: a): list0(a) fun{a:t0p} list0_fset_at_opt (list0(INV(a)), i0: int, x0: a):<> Option_vt(list0(a)) // (* ****** ****** *) // fun{a:t0p} list0_fexch_at_exn (list0(INV(a)), i0: int, x0: &a >> a): list0(a) fun{a:t0p} list0_fexch_at_opt (list0(INV(a)), i0: int, x0: &a >> a): Option_vt(list0(a)) // (* ****** ****** *) // fun{a:t0p} print_list0(xs: list0(INV(a))): void fun{a:t0p} prerr_list0(xs: list0(INV(a))): void // fun{a:t0p} fprint_list0 ( out: FILEref, xs: list0(INV(a)) ) : void // end of [fprint_list0] fun{a:t0p} fprint_list0_sep ( out: FILEref, xs: list0(INV(a)), sep: string ) : void // end of [fprint_list0_sep] // overload print with print_list0 overload prerr with prerr_list0 // overload fprint with fprint_list0 overload fprint with fprint_list0_sep // (* ****** ****** *) // fun{a:t0p} fprint_listlist0_sep ( out: FILEref , xss: list0(list0(INV(a))), sep1: string, sep2: string ) : void // end of [fprint_list0_sep] // overload fprint with fprint_listlist0_sep // (* ****** ****** *) fun{a:t0p} list0_insert_at_exn ( SHR(list0(INV(a))), i: int, x: (a) ) : list0(a) // endfun (* ****** ****** *) // fun{a:t0p} list0_remove_at_exn (SHR(list0(INV(a))), int): list0(a) // end of [list0_remove_at_exn] // fun{a:t0p} list0_takeout_at_exn ( xs: SHR(list0(INV(a))), i: int, x: &a? >> a ) : list0(a) // end-of-function // overload remove_at with list0_remove_at_exn overload takeout_at with list0_takeout_at_exn // (* ****** ****** *) // fun {a:t0p} list0_append ( xs: NSH(list0(INV(a))), ys: SHR(list0(a)) ) :<> list0(a) // overload + with list0_append // overload append with list0_append overload .append with list0_append // (* ****** ****** *) // fun {a:t0p} list0_extend (xs: NSH(list0(INV(a))), y0: a):<> list0(a) // macdef list0_snoc = list0_extend // overload extend with list0_extend overload .extend with list0_extend // (* ****** ****** *) // fun {a:t0p} mul_int_list0 ( m0: intGte(0), xs: NSH(list0(INV(a))) ) :<> list0(a) // end of [mul_int_list0] // (* ****** ****** *) // fun{a:t0p} list0_reverse (xs: list0(INV(a))):<> list0(a) // overload reverse with list0_reverse overload .reverse with list0_reverse // fun{a:t0p} list0_reverse_append (xs: list0(INV(a)), ys: list0(a)):<> list0(a) // end of [list0_reverse_append] // macdef list0_revapp = list0_reverse_append // overload revapp with list0_reverse_append overload .revapp with list0_reverse_append // (* ****** ****** *) // fun{a:t0p} list0_concat (xss: NSH(list0(list0(INV(a))))):<> list0(a) // overload concat with list0_concat // (* ****** ****** *) fun{a:t0p} list0_take_exn (xs: NSH(list0(INV(a))), i: int): list0(a) // end of [list0_take_exn] fun{a:t0p} list0_drop_exn (xs: SHR(list0(INV(a))), i: int): list0(a) // end of [list0_drop_exn] (* ****** ****** *) // fun {a:t0p} {res:t0p} list0_cata ( xs: list0(INV(a)) , f_nil: cfun0(res), f_cons: cfun2(a, list0(a), res) ) : (res) // end of [list0_cata] // (* ****** ****** *) // fun {a:t0p} list0_app ( xs: list0(INV(a)), fwork: cfun(a, void) ) : void // end of [list0_app] // (* ****** ****** *) // fun{a:t0p} list0_foreach ( xs: list0(INV(a)), fwork: cfun(a, void) ) : void // end of [list0_foreach] // fun{a:t0p} list0_foreach_method ( xs: list0(INV(a))) (fwork: cfun(a, void) ) : void // end of [list0_foreach_method] // overload .foreach with list0_foreach_method // (* ****** ****** *) // fun{a:t0p} list0_rforeach ( xs: list0(INV(a)), fwork: cfun(a, void) ) : void // end of [list0_rforeach] // fun{a:t0p} list0_rforeach_method ( xs: list0(INV(a))) (fwork: cfun(a, void) ) : void // end of [list0_rforeach_method] // overload .rforeach with list0_rforeach_method // (* ****** ****** *) // fun{a:t0p} list0_iforeach ( xs: list0(INV(a)), fwork: cfun2(intGte(0), a, void) ) : intGte(0)(*length*) // end of [list0_iforeach] // fun{a:t0p} list0_iforeach_method ( xs: list0(INV(a)))(fwork: cfun2(intGte(0), a, void) ) : intGte(0)(*length*) // end of [list0_iforeach_method] // overload .iforeach with list0_iforeach_method // (* ****** ****** *) fun {a1,a2:t0p} list0_foreach2 ( xs1: list0(INV(a1)) , xs2: list0(INV(a2)) , fwork: cfun2(a1, a2, void) ) : void // end of [list0_foreach2] fun{a1,a2:t0p} list0_foreach2_eq ( xs1: list0(INV(a1)) , xs2: list0(INV(a2)) , fwork: cfun2(a1, a2, void), sgn: &int? >> int ) : void // end of [list0_foreach2_eq] (* ****** ****** *) // fun{ res:t0p}{a:t0p } list0_foldleft ( xs: list0(INV(a)), ini: res, fopr: cfun2(res, a, res) ) : res // end of [list0_foldleft] // fun{ res:t0p}{a:t0p } list0_foldleft_method ( xs: list0(INV(a)), TYPE(res))(ini: res, fopr: cfun2(res, a, res) ) : res // end of [list0_foldleft_method] // overload .foldleft with list0_foldleft_method // (* ****** ****** *) // fun{ res:t0p}{a:t0p } list0_ifoldleft ( xs: list0(INV(a)), ini: res, fopr: cfun3(res, int, a, res) ) : res // end of [list0_ifoldleft] // fun{ res:t0p}{a:t0p } list0_ifoldleft_method ( xs: list0(INV(a)), TYPE(res))(ini: res, fopr: cfun3(res, int, a, res) ) : res // end of [list0_ifoldleft_method] // overload .ifoldleft with list0_ifoldleft_method // (* ****** ****** *) fun {res:t0p} {a1,a2:t0p} list0_foldleft2 ( xs1: list0(INV(a1)) , xs2: list0(INV(a2)) , ini: res, fopr: cfun3(res, a1, a2, res) ) : res // end of [list0_foldleft2] (* ****** ****** *) // fun{ a:t0p}{res:t0p } list0_foldright ( xs: list0(INV(a)), fopr: cfun2(a, res, res), snk: res ) : res // end of [list0_foldright] // fun{ a:t0p}{res:t0p } list0_foldright_method ( xs: list0(INV(a)), TYPE(res))(fopr: cfun2(a, res, res), snk: res ) : res // end of [list0_foldright_method] // overload .foldright with list0_foldright_method // (* ****** ****** *) // (* fun{ a:t0p}{res:t0p } list0_ifoldright (xs: list0(INV(a)), fopr: cfun3(int, a, res, res), snk: res): res // end of [list0_ifoldright] *) // (* ****** ****** *) // fun {a:t0p} list0_exists (xs: list0(INV(a)), pred: cfun(a, bool)): bool // fun {a:t0p} list0_exists_method (xs: list0(INV(a))) (pred: cfun(a, bool)): bool // overload .exists with list0_exists_method // (* ****** ****** *) // fun {a:t0p} list0_iexists ( xs: list0(INV(a)), pred: cfun(intGte(0), a, bool) ) : bool // end of [list0_iexists] // fun {a:t0p} list0_iexists_method ( xs: list0(INV(a))) (pred: cfun(intGte(0), a, bool) ) : bool // end of [list0_iexists_method] // overload .iexists with list0_iexists_method // (* ****** ****** *) // fun {a1,a2:t0p} list0_exists2 ( xs1: list0(INV(a1)) , xs2: list0(INV(a2)) , pred: cfun2(a1, a2, bool) ) : bool // end of [list0_exists2] // fun {a1,a2:t0p} list0_exists2_eq ( xs1: list0(INV(a1)) , xs2: list0(INV(a2)) , pred: cfun2(a1, a2, bool), sgn: &int? >> int ) : bool // end of [list0_exists2_eq] // (* ****** ****** *) // fun {a:t0p} list0_forall (xs: list0(INV(a)), pred: cfun(a, bool)): bool // fun {a:t0p} list0_forall_method (xs: list0(INV(a))) (pred: cfun(a, bool)): bool // overload .forall with list0_forall_method // (* ****** ****** *) // fun {a:t0p} list0_iforall ( xs: list0(INV(a)), pred: cfun(intGte(0), a, bool) ) : bool // end of [list0_iforall] // fun {a:t0p} list0_iforall_method ( xs: list0(INV(a))) (pred: cfun(intGte(0), a, bool) ) : bool // end of [list0_iforall_method] // overload .iforall with list0_iforall_method // (* ****** ****** *) // fun {a1,a2:t0p} list0_forall2 ( xs1: list0(INV(a1)) , xs2: list0(INV(a2)) , pred: cfun2(a1, a2, bool) ) : bool // end of [list0_forall2] fun {a1,a2:t0p} list0_forall2_eq ( xs1: list0(INV(a1)) , xs2: list0(INV(a2)) , pred: cfun2(a1, a2, bool), sgn: &int? >> int ) : bool // end of [list0_forall2_eq] // (* ****** ****** *) fun {a:t0p} list0_equal ( xs1: list0(INV(a)) , xs2: list0(INV(a)), eqfn: cfun2(a, a, bool) ) : bool // end of [list0_equal] fun {a:t0p} list0_compare ( xs1: list0(INV(a)) , xs2: list0(INV(a)), cmpfn: cfun2(a, a, int) ) : (int) // end of [list0_compare] (* ****** ****** *) // fun {a:t0p} list0_find_exn (xs: list0(INV(a)), pred: cfun(a, bool)): (a) fun {a:t0p} list0_find_opt (xs: list0(INV(a)), pred: cfun(a, bool)): Option_vt(a) // fun {a:t0p} list0_find_exn_method (xs: list0(INV(a)))(pred: cfun(a, bool)): (a) fun {a:t0p} list0_find_opt_method (xs: list0(INV(a)))(pred: cfun(a, bool)): Option_vt(a) // overload .find with list0_find_exn_method overload .find_opt with list0_find_opt_method // (* ****** ****** *) // fun {a:t0p} list0_find_index ( xs: list0(INV(a)), pred: cfun(a, bool) ) : intGte(~1) // end of [list0_find_index] // (* ****** ****** *) // fun {a:t0p} list0_find_suffix ( xs: list0(INV(a)), pred: cfun(list0(a), bool) ) : list0(a) // end of [list0_find_suffix] // (* ****** ****** *) // fun {a:t0p} list0_skip_while ( xs: list0(INV(a)), pred: cfun(a, bool) ) : list0(a) // end of [list0_skip_while] fun {a:t0p} list0_skip_until ( xs: list0(INV(a)), pred: cfun(a, bool) ) : list0(a) // end of [list0_skip_until] // (* ****** ****** *) // fun {a:t0p} list0_take_while ( xs: list0(INV(a)), pred: cfun(a, bool) ) : list0(a) // end of [list0_take_while] fun {a:t0p} list0_take_until ( xs: list0(INV(a)), pred: cfun(a, bool) ) : list0(a) // end of [list0_take_until] // (* ****** ****** *) // fun{ a,b:t0p } list0_assoc_exn ( list0@(INV(a), b), x0: a, eq: cfun(a, a, bool) ) : (b) // end-of-function fun{ a,b:t0p } list0_assoc_opt ( list0@(INV(a), b), x0: a, eq: cfun(a, a, bool) ) : Option_vt (b) // end-of-function // (* ****** ****** *) // fun {a:t0p} list0_filter (xs: list0(INV(a)), pred: cfun(a, bool)): list0(a) // fun {a:t0p} list0_filter_method (xs: list0(INV(a)))(pred: cfun(a, bool)): list0(a) // overload .filter with list0_filter_method // (* ****** ****** *) // fun {a:t0p} {b:t0p} list0_map ( xs: list0(INV(a)), fopr: cfun(a, b) ) : list0(b) // end of [list0_map] // fun {a:t0p} {b:t0p} list0_mapopt ( xs: list0(INV(a)), fopr: cfun(a, Option_vt(b)) ) : list0(b) // end of [list0_mapopt] // (* ****** ****** *) // fun {a:t0p} {b:t0p} list0_map_method ( xs: list0(INV(a)), TYPE(b))(fopr: cfun(a, b) ) : list0(b) // end-of-function // fun {a:t0p} {b:t0p} list0_mapopt_method ( xs: list0(INV(a)), TYPE(b))(fopr: cfun(a, Option_vt(b)) ) : list0(b) // end-of-function // overload .map with list0_map_method overload .mapopt with list0_mapopt_method // (* ****** ****** *) // fun {a:t0p} list0_mapcons (x0: a, xss: list0(list0(INV(a)))): list0(list0(a)) // overload * with list0_mapcons // (* ****** ****** *) // fun {a:t0p} {b:t0p} list0_mapjoin ( xs: list0(INV(a)), fopr: cfun(a, list0(b)) ) : list0(b) // end-of-function // fun {a:t0p} {b:t0p} list0_mapjoin_method ( xs: list0(INV(a)))(fopr: cfun(a, list0(b)) ) : list0(b) // end of [list0_mapjoin_method] // overload .mapjoin with list0_mapjoin_method // (* ****** ****** *) // fun {a:t0p} {b:t0p} list0_imap (list0(INV(a)), fopr: cfun2(int, a, b)): list0(b) fun {a:t0p} {b:t0p} list0_imapopt (list0(INV(a)), fopr: cfun2(int, a, Option_vt(b))): list0(b) // (* ****** ****** *) // fun {a:t0p} {b:t0p} list0_imap_method (list0(INV(a)), TYPE(b))(fopr: cfun2(int, a, b)): list0(b) fun {a:t0p} {b:t0p} list0_imapopt_method (list0(INV(a)), TYPE(b))(fopr: cfun2(int, a, Option_vt(b))): list0(b) // overload .imap with list0_imap_method overload .imapopt with list0_imapopt_method // (* ****** ****** *) // fun{ a1, a2:t0p}{b:t0p } list0_map2 ( list0(INV(a1)), list0(INV(a2)), fopr: cfun2(a1, a2, b) ) : list0(b) // end of [list0_map2] // fun{ a1, a2:t0p}{b:t0p } list0_imap2 ( list0(INV(a1)), list0(INV(a2)), fopr: cfun3(int, a1, a2, b) ) : list0(b) // end of [list0_imap2] // (* ****** ****** *) // fun{a:t0p} list0_tabulate {n:nat} (n: int(n), fopr: cfun(natLt(n), a)): list0(a) fun{a:t0p} list0_tabulate_opt {n:nat} (n: int(n), fopr: cfun(natLt(n), Option_vt(a))): list0(a) // (* ****** ****** *) // fun {x,y:t0p} list0_zip ( list0(INV(x)), list0(INV(y)) ) :<> list0 @(x, y) // end-of-fun // (* fun{ x,y:t0p}{z:t0p } list0_zipwith (list0(INV(x)), list0(INV(y)), fopr: cfun2(x, y, z)): list0(z) *) macdef list0_zipwith = list0_map2 // (* ****** ****** *) // fun {x,y:t0p} list0_cross (list0(INV(x)), list0(INV(y))):<> list0 @(x, y) // overload * with list0_cross of 10 // (* ****** ****** *) // fun{ x,y:t0p}{z:t0p } list0_crosswith ( list0(INV(x)), list0(INV(y)), fopr: cfun2(x, y, z) ) : list0(z) // end of [list0_crosswith] // (* ****** ****** *) // fun {x:t0p} list0_choose2_foreach ( list0(INV(x)), fwork: cfun2(x, x, void) ) : void // end-of-function fun {x:t0p} list0_choose2_foreach_method ( list0(INV(x))) (fwork: cfun2(x, x, void) ) : void // end-of-function // overload .choose2_foreach with list0_choose2_foreach_method // (* ****** ****** *) // fun{ x,y:t0p } list0_xprod2_foreach ( list0(INV(x)) , list0(INV(y)), fwork: cfun2(x, y, void) ) : void // end-of-function fun {x,y:t0p} list0_xprod2_foreach_method ( list0(INV(x)) , list0(INV(y)))(fwork: cfun2(x, y, void) ) : void // end-of-function // fun{ x,y:t0p } list0_xprod2_iforeach ( list0(INV(x)) , list0(INV(y)) , fwork: cfun4(intGte(0), x, intGte(0), y, void) ) : void // end-of-function fun {x,y:t0p} list0_xprod2_iforeach_method ( list0(INV(x)), list0(INV(y)) ) ( fwork: cfun4(intGte(0), x, intGte(0), y, void) ) : void // end-of-function // overload .xprod2_foreach with list0_xprod2_foreach_method overload .xprod2_iforeach with list0_xprod2_iforeach_method // (* ****** ****** *) // fun{a:t0p} streamize_list0_elt (list0(INV(a))): stream_vt(a) // fun{a:t0p} un_streamize_list0_elt (stream_vt(INV(a))): list0(a) // (* ****** ****** *) // fun{a:t0p} streamize_list0_suffix (list0(INV(a))): stream_vt(list0(a)) // (* ****** ****** *) // fun{a:t0p} streamize_list0_choose2 (list0(INV(a))): stream_vt(@(a, a)) // (* ****** ****** *) // fun {a:t0p} streamize_list0_nchoose (list0(INV(a)), intGte(0)): stream_vt(list0(a)) // (* fun {a:t0p} streamize_list0_nchoose_rest (list0(INV(a)), intGte(0)): stream_vt(@(list0(a), list0(a))) *) // (* ****** ****** *) // fun {a,b:t0p} streamize_list0_zip ( list0(INV(a)) , list0(INV(b))): stream_vt(@(a, b)) fun {a,b:t0p} streamize_list0_cross ( list0(INV(a)) , list0(INV(b))): stream_vt(@(a, b)) // (* ****** ****** *) // fun{a:t0p} list0_is_ordered (xs: list0(INV(a)), cmp: (a, a) - int): bool // (* ****** ****** *) fun{a:t0p} list0_mergesort (NSH(list0(INV(a))), cmp: (a, a) - int):<> list0(a) // end of [list0_mergesort] (* ****** ****** *) fun{a:t0p} list0_quicksort (NSH(list0(INV(a))), cmp: (a, a) - int):<> list0(a) // end of [list0_quicksort] (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/monad_list.sats0000644000175000017500000000361313431250607022252 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: August, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names (* ****** ****** *) staload "./basis.sats" (* ****** ****** *) #include "./SHARE/monad.hats" (* ****** ****** *) fun{a:t0p} monad_list_list(xs: list0(INV(a))): monad(a) (* ****** ****** *) fun{a:t0p} monad_list_listize(m: monad(INV(a))): list0(a) (* ****** ****** *) // fun{a:t0p} fprint_monad(out: FILEref, m: monad(INV(a))): void overload fprint with fprint_monad // (* ****** ****** *) (* end of [monad_list.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/qlistref.sats0000644000175000017500000000503013431250607021745 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* Start time: October, 2016 *) (* ****** ****** *) // abstype qlistref_vt0ype_type(a:vt@ype) = ptr // typedef qlistref(a:vt0ype) = qlistref_vt0ype_type(a) // (* ****** ****** *) // fun{} qlistref_make_nil {a:vt0ype}((*void*)): qlistref(a) // (* ****** ****** *) fun {a:vt0p} qlistref_is_nil(q0: qlistref(a)): bool fun {a:vt0p} qlistref_isnot_nil(q0: qlistref(a)): bool (* ****** ****** *) fun {a:vt0p} qlistref_length(q0: qlistref(a)): intGte(0) (* ****** ****** *) // fun {a:vt0p} qlistref_insert(qlistref(a), a): void // (* ****** ****** *) // fun {a:vt0p} qlistref_takeout_exn(qlistref(a)): (a) fun {a:vt0p} qlistref_takeout_opt(qlistref(a)): Option_vt(a) // (* ****** ****** *) // fun {a:vt0p} qlistref_takeout_list(qlistref(a)): List0_vt(a) // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) // overload iseqz with qlistref_is_nil overload isneqz with qlistref_isnot_nil // (* ****** ****** *) overload length with qlistref_length (* ****** ****** *) // overload .insert with qlistref_insert // (* ****** ****** *) // overload .takeout with qlistref_takeout_exn overload .takeout_opt with qlistref_takeout_opt // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/basis.sats0000644000175000017500000001241713431250607021224 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // For supporting ML-style of functional programming // (* ****** ****** *) // // Author of the file: Hongwei Xi (gmhwxiATgmailDOTcom) // Start Time: June, 2012 // (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats" (* ****** ****** *) // typedef cfun0(b:vt0p) = ((*void*)) - b typedef cfun1(a:vt0p, b:vt0p) = (a) - b typedef cfun2(a1:vt0p, a2:vt0p, b:vt0p) = (a1, a2) - b // (* ****** ****** *) // typedef cfun3 ( a1:vt0p, a2:vt0p, a3:vt0p, b:vt0p ) = (a1, a2, a3) - b typedef cfun4 ( a1:vt0p, a2:vt0p, a3:vt0p, a4:vt0p, b:vt0p ) = (a1, a2, a3, a4) - b typedef cfun5 ( a1:vt0p, a2:vt0p, a3:vt0p, a4:vt0p, a5:vt0p, b:vt0p ) = (a1, a2, a3, a4, a5) - b typedef cfun6 ( a1:vt0p, a2:vt0p, a3:vt0p, a4:vt0p, a5:vt0p, a6:vt0p, b:vt0p ) = (a1, a2, a3, a4, a5, a6) - b typedef cfun7 ( a1:vt0p, a2:vt0p, a3:vt0p, a4:vt0p, a5:vt0p, a6:vt0p, a7:vt0p, b:vt0p ) = (a1, a2, a3, a4, a5, a6, a7) - b typedef cfun8 ( a1:vt0p, a2:vt0p, a3:vt0p, a4:vt0p, a5:vt0p, a6:vt0p, a7:vt0p, a8:vt0p, b:vt0p ) = (a1, a2, a3, a4, a5, a6, a7, a8) - b typedef cfun9 ( a1:vt0p, a2:vt0p, a3:vt0p, a4:vt0p, a5:vt0p, a6:vt0p, a7:vt0p, a8:vt0p, a9:vt0p, b:vt0p ) = (a1, a2, a3, a4, a5, a6, a7, a8, a9) - b // (* ****** ****** *) stadef cfun = cfun0 stadef cfun = cfun1 stadef cfun = cfun2 stadef cfun = cfun3 stadef cfun = cfun4 stadef cfun = cfun5 stadef cfun = cfun6 stadef cfun = cfun7 stadef cfun = cfun8 stadef cfun = cfun9 (* ****** ****** *) // // t0ype+: covariant // vt0ype+: covariant // datatype list0_t0ype_type ( a: t0ype+ ) = | list0_nil of ((*void*)) | list0_cons of (a, list0_t0ype_type(a)) // end of [list0_cons] // datavtype list0_vt0ype_vtype ( a: vt0ype+ ) = | list0_vt_nil of ((*void*)) | list0_vt_cons of (a, list0_vt0ype_vtype(a)) // end of [list0_vt_cons] // #define nil0 list0_nil #define cons0 list0_cons #define nil0_vt list0_vt_nil #define cons0_vt list0_vt_cons // typedef list0(a:t0ype) = list0_t0ype_type(a) vtypedef list0_vt(a:vt0ype) = list0_vt0ype_vtype(a) // (* ****** ****** *) // // t0ype+: covariant // vt0ype+: covariant // datatype option0_t0ype_type ( a: t0ype+ ) = | None0 of () | Some0 of (a) // datavtype option0_vt0ype_vtype ( a: vt0ype+ ) = | None0_vt of () | Some0_vt of (a) // typedef option0(a:t0ype) = option0_t0ype_type(a) vtypedef option0_vt(a:vt0ype) = option0_vt0ype_vtype(a) // (* ****** ****** *) // abstype array0_vt0ype_type (a: vt0ype(*invariant*)) = ptr // typedef array0 (a:vt0ype) = array0_vt0ype_type(a) // (* abstype subarray0_vt0ype_type (a: vt0ype(*invariant*)) = ptr stadef subarray0 = subarray0_vt0ype_type *) // (* ****** ****** *) // abstype matrix0_vt0ype_type (a: vt0ype(*invariant*)) = ptr // typedef matrix0 (a:vt0ype) = matrix0_vt0ype_type(a) // (* ****** ****** *) // abstype strarr_type = ptr typedef strarr = strarr_type // (* abstype substrarr_type = ptr typedef substrarr = substrarr_type *) // (* ****** ****** *) // abstype dynarray_type(a:vt0ype) = ptr // typedef dynarray(a:vt0ype) = dynarray_type(a) // (* ****** ****** *) // // HX: // for elements of type (a) // abstype hashtbl_type (key:t0ype, itm:t0ype+) = ptr // typedef hashtbl ( key:t0ype , itm:t0ype) = hashtbl_type(key, itm) // (* ****** ****** *) // // HX-2015-12-01: // G-values for generic programming // (* ****** ****** *) // datatype gvalue = // | GVnil of () // | GVint of (int) // | GVptr of (ptr) // | GVbool of (bool) | GVchar of (char) // | GVfloat of (double) // | GVstring of (string) // | GVref of (gvref) // | GVlist of (gvlist) // | GVarray of (gvarray) // | GVdynarr of (gvdynarr) // | GVhashtbl of (gvhashtbl) // | GVfunclo_fun of ((gvalue) - gvalue) | GVfunclo_clo of ((gvalue) - gvalue) // where gvref = ref(gvalue) and gvlist = list0(gvalue) and gvarray = array0(gvalue) and gvdynarr = dynarray(gvalue) and gvhashtbl = hashtbl(string, gvalue) // (* typedef gvopt = Option(gvalue) vtypedef gvopt_vt = Option_vt(gvalue) *) // (* ****** ****** *) (* end of [basis.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/array0.sats0000644000175000017500000003035613431250607021323 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2012 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names // (* ****** ****** *) %{# #include \ "libats/ML/CATS/array0.cats" %} // end of [%{#] (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) #if(0) // // HX: in [basis.sats] // abstype array0_vt0ype_type (a: vt@ype(*invariant*)) = ptr // stadef array0 = array0_vt0ype_type // #endif // end of [#if(0)] (* ****** ****** *) (* typedef array0(a: vt@ype) = arrszref(a) *) (* ****** ****** *) (* sortdef t0p = t@ype sortdef vt0p = viewt@ype *) (* ****** ****** *) // fun {a:t0p} array0_tuple_0(): array0(a) // fun {a:t0p} array0_tuple_1(x0: a): array0(a) fun {a:t0p} array0_tuple_2(x0: a, x1: a): array0(a) fun {a:t0p} array0_tuple_3(x0: a, x1: a, x2: a): array0(a) // fun {a:t0p} array0_tuple_4 (x0: a, x1: a, x2: a, x3: a): array0(a) fun {a:t0p} array0_tuple_5 (x0: a, x1: a, x2: a, x3: a, x4: a): array0(a) fun {a:t0p} array0_tuple_6 (x0: a, x1: a, x2: a, x3: a, x4: a, x5: a): array0(a) // (* ****** ****** *) // symintr array0_tuple // overload array0_tuple with array0_tuple_0 overload array0_tuple with array0_tuple_1 overload array0_tuple with array0_tuple_2 overload array0_tuple with array0_tuple_3 overload array0_tuple with array0_tuple_4 overload array0_tuple with array0_tuple_5 overload array0_tuple with array0_tuple_6 // (* ****** ****** *) // fun{} array0_of_arrszref {a:vt0p}(arrszref(a)):<> array0(a) // fun{} arrszref_of_array0 {a:vt0p}(A: array0(a)):<> arrszref(a) // (* ****** ****** *) // fun{} array0_make_arrpsz {a:vt0p}{n:int} (psz: arrpsz(INV(a), n)): array0(a) // fun{} array0_make_arrayref {a:vt0p}{n:int} (Arf: arrayref(a, n), n: size_t(n)): array0(a) // symintr array0 // overload array0 with array0_make_arrpsz overload array0 with array0_make_arrayref // (* ****** ****** *) // fun{} array0_get_ref {a:vt0p}(A: array0(a)):<> Ptr1 fun{} array0_get_size {a:vt0p}(A: array0(a)):<> size_t fun{} array0_get_length {a:vt0p}(A: array0(a)):<> intGte(0) // fun{} array0_get_refsize {a:vt0p} ( A : array0(a) ) :<> [n:nat] (arrayref(a, n), size_t(n)) // (* ****** ****** *) // symintr array0_make_elt // fun{a:t0p} array0_make_elt_int (asz: int, x0: a): array0(a) // fun{a:t0p} array0_make_elt_size (asz: size_t, x0: a): array0(a) // overload array0_make_elt with array0_make_elt_int overload array0_make_elt with array0_make_elt_size // (* ****** ****** *) // fun{a:t0p} array0_make_list (xs: List(INV(a))): array0(a) fun{a:t0p} array0_make_rlist (xs: List(INV(a))): array0(a) // fun{a:t0p} array0_make_list0 (xs: list0(INV(a))): array0(a) fun{a:t0p} array0_make_rlist0 (xs: list0(INV(a))): array0(a) // (* ****** ****** *) fun{a:t0p} array0_make_subarray ( A: array0(a) , st: size_t, ln: size_t): array0(a) // end of [array0_make_subarray] (* ****** ****** *) // fun{a:t0p} array0_make_stream (xs: stream(INV(a))): array0(a) fun{a:t0p} array0_make_stream_vt (xs: stream_vt(INV(a))): array0(a) // fun{} array0_make_stream$bufsize():<> intGte(1) // (* ****** ****** *) fun{a:t0p} array0_get_at_size (A: array0(a), i: size_t): (a) fun {a:t0p}{tk:tk} array0_get_at_gint (A: array0(a), i: g0int(tk)): (a) fun {a:t0p}{tk:tk} array0_get_at_guint (A: array0(a), i: g0uint(tk)): (a) // symintr array0_get_at // overload array0_get_at with array0_get_at_gint overload array0_get_at with array0_get_at_guint // (* ****** ****** *) // fun{a:t0p} array0_set_at_size ( A: array0(a) , i: size_t, x: a): void fun {a:t0p}{tk:tk} array0_set_at_gint ( A: array0(a) , i: g0int(tk), x: a): void fun {a:t0p}{tk:tk} array0_set_at_guint ( A: array0(a) , i: g0uint(tk), x: a): void // symintr array0_set_at // overload array0_set_at with array0_set_at_gint overload array0_set_at with array0_set_at_guint // (* ****** ****** *) // fun{a:vt0p} array0_exch_at_size ( A: array0(a) , i: size_t, x: &a >> _): void // fun {a:vt0p}{tk:tk} array0_exch_at_gint ( A: array0(a) , i: g0int(tk), x: &a >> _): void fun {a:vt0p}{tk:tk} array0_exch_at_guint ( A: array0(a) , i: g0uint(tk), x: &a >> _): void // symintr array0_exch_at // overload array0_exch_at with array0_exch_at_gint overload array0_exch_at with array0_exch_at_guint // (* ****** ****** *) // fun{a:vt0p} array0_interchange ( A: array0(a) , i: size_t, j: size_t): void // end of [array0_interchange] // (* ****** ****** *) // fun{a:vt0p} array0_subcirculate ( A: array0(a) , i: size_t, j: size_t): void // end of [array0_subcirculate] // (* ****** ****** *) // fun{a:vt0p} print_array0 (A: array0(a)): void fun{a:vt0p} prerr_array0 (A: array0(a)): void // (* fun{} fprint_array$sep (out: FILEref): void *) fun{a:vt0p} fprint_array0 (out: FILEref, A: array0(a)): void fun{a:vt0p} fprint_array0_sep (out: FILEref, A: array0(a), sep: string): void // (* ****** ****** *) fun{a:t0p} array0_copy(array0(a)): array0(a) (* ****** ****** *) // fun{a:t0p} array0_append (array0(a), array0(a)): array0(a) // end of [array0_append] // overload + with array0_append // overload append with array0_append overload .append with array0_append // (* ****** ****** *) // fun {a:vt0p} {b:vt0p} array0_map ( A0: array0(a), fopr: (&a) - b ) : array0(b) // end of [array0_map] fun {a:vt0p} {b:vt0p} array0_map_method ( A0: array0(a), TYPE(b))(fopr: (&a) - b ) : array0(b) // end of [array0_map_method] // overload .map with array0_map_method // (* ****** ****** *) // fun {a:vt0p} array0_tabulate {n:int} ( asz: size_t(n), fopr: (sizeLt(n)) - a ) : array0(a) // end of [array0_tabulate] // (* ****** ****** *) // fun {a:vt0p} array0_tabulate_method_int {n:nat} ( asz: int(n))(fopr: (natLt(n)) - a ) : array0(a) // end of [array0_tabulate_method_int] fun {a:vt0p} array0_tabulate_method_size {n:int} ( asz: size_t(n))(fopr: (sizeLt(n)) - a ) : array0(a) // end of [array0_tabulate_method_size] // overload .array0_tabulate with array0_tabulate_method_int overload .array0_tabulate with array0_tabulate_method_size // (* ****** ****** *) // (* ** HX: ** Raising NotFoundExn ** if no satisfying element is found *) fun {a:vt0p} array0_find_exn ( xs: array0(a), pred: (&a) - bool ) : size_t // end of [array0_find_exn] // fun {a:vt0p} array0_find_opt ( xs: array0(a), pred: (&a) - bool ) : Option_vt(size_t) // end-of-function // (* ****** ****** *) // fun {a:vt0p} array0_exists ( xs: array0(a), pred: (&a) - bool ) : bool // end of [array0_exists] fun {a:vt0p} array0_exists_method ( xs: array0(a))(pred: (&a) - bool ) : bool // end of [array0_exists_method] // overload .exists with array0_exists_method // (* ****** ****** *) // fun {a:t0p} array0_iexists ( xs: array0(a) , pred: (size_t, &a) - bool ) : bool // end of [array0_iexists] // fun {a:t0p} array0_iexists_method (xs: array0(a)) (pred: ( size_t, &a ) - bool ) : bool // end of [array0_iexists_method] // overload .iexists with array0_iexists_method // (* ****** ****** *) // fun {a:vt0p} array0_forall ( xs: array0(a), pred: (&a) - bool ) : bool // end of [array0_forall] fun {a:vt0p} array0_forall_method ( xs: array0(a)) (pred: (&a) - bool ) : bool // end of [array0_forall_method] // overload .forall with array0_forall_method // (* ****** ****** *) // fun {a:t0p} array0_iforall ( xs: array0(a) , pred: (size_t, &a) - bool ) : bool // end of [array0_iforall] // fun {a:t0p} array0_iforall_method (xs: array0(a)) (pred: ( size_t, &a ) - bool ) : bool // end of [array0_iforall_method] // overload .iforall with array0_iforall_method // (* ****** ****** *) // fun {a:vt0p} array0_foreach ( A0: array0(a) , fwork: (&a >> _) - void ) : void // end of [array0_foreach] // fun {a:vt0p} array0_foreach_method (A0: array0(a)) (fwork: (&a >> _) - void): void // end of [array0_foreach_methon] // overload .foreach with array0_foreach_method // (* ****** ****** *) // fun {a:vt0p} array0_iforeach ( A0: array0(a) , fwork: (size_t, &a >> _) - void ) : void // end of [array0_iforeach] // fun {a:vt0p} array0_iforeach_method (A0: array0(a)) (fwork: (size_t, &a >> _) - void): void // end of [array0_iforeach_method] // overload .iforeach with array0_iforeach_method // (* ****** ****** *) // fun {a:vt0p} array0_rforeach ( A0: array0(a) , fwork: (&a >> _) - void ) : void // end of [array0_rforeach] // fun {a:vt0p} array0_rforeach_method (A0: array0(a)) (fwork: (&a >> _) - void): void // end of [array0_rforeach] // overload .rforeach with array0_rforeach_method // (* ****** ****** *) // fun{ res:vt0p}{a:vt0p } array0_foldleft ( A0: array0(a) , ini: res, fopr: (res, &a) - res ) : res // end of [array0_foldleft] // fun{ res:vt0p}{a:vt0p } array0_foldleft_method ( A: array0(a), TYPE(res) ) ( ini: res, fopr: (res, &a) - res ) : res // end of [array0_foldleft_method] // overload .foldleft with array0_foldleft_method // (* ****** ****** *) // fun{ res:vt0p}{a:vt0p } array0_ifoldleft ( A0: array0(a), ini: res , fopr: (res, size_t, &a) - res ) : res // end of [array0_ifoldleft] // fun{ res:vt0p}{a:vt0p } array0_ifoldleft_method ( A: array0(a), TYPE(res) ) ( ini: res , fopr: (res, size_t, &a) - res ) : res // end of [array0_ifoldleft_method] // overload .ifoldleft with array0_ifoldleft_method // (* ****** ****** *) // // HX: this one is tail-recursive! // fun{ a:vt0p}{res:vt0p } array0_foldright ( A0: array0(a) , fopr: (&a, res) - res, snk: res ) : res // end of [array0_foldright] // fun{ a:vt0p}{res:vt0p } array0_foldright_method ( A: array0(a), TYPE(res) ) ( fopr: (&a, res) - res, snk: res ) : res // end of [array0_foldright_method] // overload .foldright with array0_foldright_method // (* ****** ****** *) // fun {a:t0p} streamize_array0_elt (A0: array0(a)): stream_vt(a) // (* ****** ****** *) // fun {a:vt0p} array0_is_ordered ( A0: array0(a) , cmp: (&a, &a) - int): bool // (* ****** ****** *) // fun {a:vt0p} array0_bsearch ( A0: array0(a) , ford: (&a) - int): size_t // (* ****** ****** *) // fun {a:vt0p} array0_quicksort ( A0: array0(a) , cmp: (&a, &a) - int): void // (* ****** ****** *) // // Overloading certain symbols // (* ****** ****** *) // overload [] with array0_get_at_gint overload [] with array0_set_at_gint // overload [] with array0_get_at_guint overload [] with array0_set_at_guint // (* ****** ****** *) // overload size with array0_get_size overload length with array0_get_length // overload .size with array0_get_size overload .length with array0_get_length // (* ****** ****** *) overload print with print_array0 overload prerr with print_array0 overload fprint with fprint_array0 overload fprint with fprint_array0_sep (* ****** ****** *) (* end of [array0.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/slistref.sats0000644000175000017500000000476413431250607021764 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* Start time: November, 2016 *) (* ****** ****** *) // abstype slistref_vt0ype_type(a:vt@ype) = ptr // typedef slistref(a:vt0ype) = slistref_vt0ype_type(a) // (* ****** ****** *) // fun{} slistref_make_nil {a:vt0ype}((*void*)): slistref(a) // (* ****** ****** *) fun {a:vt0p} slistref_is_nil(q0: slistref(a)): bool fun {a:vt0p} slistref_is_cons(q0: slistref(a)): bool fun {a:vt0p} slistref_isnot_nil(q0: slistref(a)): bool (* ****** ****** *) fun {a:vt0p} slistref_length(q0: slistref(a)): intGte(0) (* ****** ****** *) // fun {a:vt0p} slistref_insert(slistref(a), a): void // (* ****** ****** *) // fun {a:vt0p} slistref_takeout_exn(slistref(a)): (a) fun {a:vt0p} slistref_takeout_opt(slistref(a)): Option_vt(a) // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) // overload iseqz with slistref_is_nil overload isneqz with slistref_isnot_nil // (* ****** ****** *) overload length with slistref_length (* ****** ****** *) // overload .insert with slistref_insert // (* ****** ****** *) // overload .takeout with slistref_takeout_exn overload .takeout_opt with slistref_takeout_opt // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/SHARE/0000755000175000017500000000000013431250607020064 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/SHARE/.keeper0000644000175000017500000000000013431250607021326 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/SHARE/monad.hats0000644000175000017500000000622013431250607022043 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2013 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX: shared by monad_list // HX: shared by monad_maybe // (* ****** ****** *) // abstype monad_type(a:t@ype+) = ptr typedef monad(a:t@ype) = monad_type(a) // (* ****** ****** *) fun {a:t0p} {b:t0p} monad_bind ( monad(a), cfun(a, monad(b)) ) : monad(b) // end-of-function fun {a1 ,a2:t0p }{b:t0p} monad_bind2 ( monad(a1), monad(a2), cfun(a1, a2, monad(b)) ) : monad(b) // end-of-function fun {a1 ,a2 ,a3:t0p }{b:t0p} monad_bind3 ( monad(a1), monad(a2), monad(a3), cfun(a1, a2, a3, monad(b)) ) : monad(b) // end-of-function (* ****** ****** *) fun{a:t0p} monad_return(x: a): monad(a) (* ****** ****** *) fun{} monad_unit(): monad(unit) (* ****** ****** *) // fun {a:t0p} monad_nil(): monad(list0(a)) fun {a:t0p} monad_cons ( monad(INV(a)), monad(list0(a)) ) : monad(list0(a)) // end-of-fun // (* ****** ****** *) fun{ a1,a2:t0p } monad_seq ( m1: monad(INV(a1)), m2: monad(INV(a2)) ): monad(a2) // end of [monad_seq] (* ****** ****** *) fun{a:t0p} monad_join(monad(monad(INV(a)))): monad(a) (* ****** ****** *) fun {a:t0p} {b:t0p} monad_fmap(cfun(a, b), monad(a)): monad(b) (* ****** ****** *) fun {a:t0p} {b:t0p} monad_liftm (cfun(a, b), monad(a)): monad(b) fun {a1 ,a2:t0p }{b:t0p} monad_liftm2 (cfun(a1, a2, b), monad(a1), monad(a2)): monad(b) // end of [monad_liftm2] fun {a1 ,a2 ,a3:t0p }{b:t0p} monad_liftm3 (cfun(a1, a2, a3, b), monad(a1), monad(a2), monad(a3)): monad(b) // end of [monad_liftm3] (* ****** ****** *) // fun {a:t0p} {b:t0p} monad_mapm (cfun(a, b), list0(monad(a))): monad(list0(b)) // fun {a:t0p} {b:t0p} monad_mapm_(cfun(a, monad(b)), list0(a)): monad(unit) // (* ****** ****** *) // fun{a:t0p} monad_seqlist (list0(monad(INV(a)))): monad(list0(a)) // fun{a:t0p} monad_seqlist_(list0(monad(INV(a)))): monad(unit) // (* ****** ****** *) (* end of [monad.hats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/funset.sats0000644000175000017500000001213613431250607021425 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: August, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.libats.ML" #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) // // HX-2013-08: // for sets of elements of type a // abstype set_type ( a:t@ype+ ) = ptr(*boxed*) // typedef set(a:t0p) = set_type(a) // (* ****** ****** *) fun{a:t0p} compare_elt_elt(x: a, y: a):<> int (* ****** ****** *) fun{} funset_nil{a:t0p}():<> set(a) fun{} funset_make_nil{a:t0p}():<> set(a) (* ****** ****** *) fun{a:t0p} funset_sing(x: a): set(a) fun{a:t0p} funset_make_sing(x: a): set(a) (* ****** ****** *) fun{a:t0p} funset_make_list(xs: list0(INV(a))): set(a) (* ****** ****** *) // fun {a:t0p} fprint_funset ( out: FILEref, set: set(INV(a)) ) : void // end of [fprint_funset] // fun{} fprint_funset$sep(out: FILEref): void // fprint(", ") // overload fprint with fprint_funset // (* ****** ****** *) fun{} funset_is_nil{a:t0p}(xs: set(INV(a))):<> bool fun{} funset_isnot_nil{a:t0p}(xs: set(INV(a))):<> bool (* ****** ****** *) fun{a:t0p} funset_size(xs: set(INV(a))):<> size_t (* ****** ****** *) fun{a:t0p} funset_is_member(xs: set(INV(a)), x0: a):<> bool fun{a:t0p} funset_isnot_member(xs: set(INV(a)), x0: a):<> bool (* ****** ****** *) fun{a:t0p} funset_insert (xs: &set(INV(a)) >> _, x0: a): bool(*[x0] in [xs]*) // end of [funset_insert] (* ****** ****** *) fun{a:t0p} funset_remove (xs: &set(INV(a)) >> _, x0: a): bool(*[x0] in [xs]*) // end of [funset_remove] (* ****** ****** *) fun{a:t0p} funset_getmax_opt(xs: set(INV(a))): Option_vt(a) fun{a:t0p} funset_getmin_opt(xs: set(INV(a))): Option_vt(a) (* ****** ****** *) fun{a:t0p} funset_takeoutmax_opt(xs: &set(INV(a)) >> _): Option_vt(a) fun{a:t0p} funset_takeoutmin_opt(xs: &set(INV(a)) >> _): Option_vt(a) (* ****** ****** *) fun{a:t0p} funset_union(xs1: set(INV(a)), xs2: set(a)):<> set(a) fun{a:t0p} funset_intersect(xs1: set(INV(a)), xs2: set(a)):<> set(a) fun{a:t0p} funset_differ(xs1: set(INV(a)), xs2: set(a)):<> set(a) fun{a:t0p} funset_symdiff(xs1: set(INV(a)), xs2: set(a)):<> set(a) (* ****** ****** *) fun{a:t0p} funset_equal(xs1: set(INV(a)), xs2: set(a)):<> bool (* ****** ****** *) // // HX: set ordering induced by the ordering on elements // fun{a:t0p} funset_compare(xs1: set(INV(a)), xs2: set(a)):<> int (* ****** ****** *) // fun{a:t0p} funset_is_subset(xs1: set(INV(a)), xs2: set(a)):<> bool fun{a:t0p} funset_is_supset(xs1: set(INV(a)), xs2: set(a)):<> bool // (* ****** ****** *) // fun{a:t0p} funset_foreach(set: set(INV(a))): void fun {a:t0p} {env:vt0p} funset_foreach_env (set: set(INV(a)), env: &(env) >> _): void // end of [funset_foreach_env] // fun {a:t0p} {env:vt0p} funset_foreach$fwork(x: a, env: &(env) >> _): void // (* ****** ****** *) // fun{a:t0p} funset_foreach_cloref (set: set(INV(a)), fwork: (a) - void): void // (* ****** ****** *) // fun{a:t0p} funset_tabulate_cloref {n:nat}(int(n), fopr: (natLt(n)) - a): set(a) // (* ****** ****** *) // fun{a:t0p} funset_listize(xs: set(INV(a))):<> list0(a) // fun{a:t0p} funset_streamize(xs: set(INV(a))):<> stream_vt(a) // (* ****** ****** *) typedef set_modtype ( elt:t@ype ) = $rec{ // nil = () -<> set(elt) , sing = $d2ctype(funset_sing) , make_list = $d2ctype(funset_make_list) , size = $d2ctype(funset_size) , is_nil = (set(elt)) -<> bool , isnot_nil = (set(elt)) -<> bool , insert = $d2ctype(funset_insert) , remove = $d2ctype(funset_remove) , union = $d2ctype(funset_union) , intersect = $d2ctype(funset_intersect) , listize = $d2ctype(funset_listize) , streamize = $d2ctype(funset_streamize) // } (* end of [set_modtype] *) (* ****** ****** *) // fun {a:t@ype} funset_make_module((*void*)): set_modtype(a) // (* ****** ****** *) (* end of [funset.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/stream.sats0000644000175000017500000001020013431250607021402 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: October, 2016 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atslib_ML_" // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) // fun {a:t0p} stream2list0 (xs: stream(a)): list0(a) // (* ****** ****** *) // fun {a:t0p} stream_make_list0 (xs: list0(a)): stream(a) // (* ****** ****** *) // fun{} intgte_stream (start: int): stream(int) // (* ****** ****** *) // fun{} stream_make_intrange_lr (l: int, r: int): stream(int) fun{} stream_make_intrange_lrd (l: int, r: int, d: int): stream(int) // (* ****** ****** *) // overload intrange_stream with stream_make_intrange_lr overload intrange_stream with stream_make_intrange_lrd // (* ****** ****** *) // fun{ a:t0p}{b:t0p } stream_map ( xs: stream(INV(a)), fopr: (a) - b ) : stream(b) // fun {a:t0p}{b:t0p} stream_map_method ( xs: stream(INV(a)), TYPE(b) ) (fopr: (a) - b): stream(b) // overload .map with stream_map_method // (* ****** ****** *) // fun{ a:t0p}{b:t0p } stream_imap ( xs: stream(INV(a)), fopr: (intGte(0), a) - b ) : stream(b) // end-of-fun // fun {a:t0p}{b:t0p} stream_imap_method ( xs: stream(INV(a)), TYPE(b) ) (fopr: (intGte(0), a) - b): stream(b) // overload .imap with stream_imap_method // (* ****** ****** *) // fun {a:t0p} stream_filter ( xs: stream(INV(a)), pred: (a) - bool ) : stream(a) // end-of-function // fun {a:t0p} stream_filter_method ( xs: stream(INV(a)) ) ( pred: (a) - bool ) : stream(a) // end-of-function // overload .filter with stream_filter_method // (* ****** ****** *) // fun{ res:t0p}{x:t0p } stream_scan ( stream(INV(x)), ini: res, (res, x) - res ) : stream(res) // end-of-function // fun{ res:t0p}{x:t0p } stream_scan_method ( stream(INV(x)), TYPE(res) ) (res, (res, x) - res) : stream(res) // overload .scan with stream_scan_method // (* ****** ****** *) // fun {a:t0p} stream_foreach (xs: stream(a), fwork: (a) - void): void // fun {a:t0p} stream_foreach_method (xs: stream(INV(a)))(fwork: (a) - void): void // overload .foreach with stream_foreach_method // (* ****** ****** *) // fun {a:t0p} stream_iforeach ( xs: stream(a) , fwork: (intGte(0), a) - void): void // fun {a:t0p} stream_iforeach_method (xs: stream(INV(a))) (fwork: (intGte(0), a) - void): void // overload .iforeach with stream_iforeach_method // (* ****** ****** *) // fun{ res:vt0p}{a:t0p } stream_foldleft (stream(INV(a)), ini: res, fopr: (res, a) - res): res fun{ res:vt0p}{a:t0p } stream_foldleft_method (stream(INV(a)), TYPE(res))(res, (res, a) - res): res // overload .foldleft with stream_foldleft_method // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/argvec.sats0000644000175000017500000000327213431250607021371 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: March, 2018 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" (* ****** ****** *) // fun listize_argc_argv {n:pos} (argc: int(n), argv: !argv(n)): list0(string) // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./libats/ML/SATS/atspre.sats0000644000175000017500000003132713431250607021422 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: December, 2017 *) (* Authoremail: gmmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_PACKNAME "ATSLIB.libats.ML" // #define ATS_EXTERN_PREFIX "atslib_ML_" // prefix for external names // (* ****** ****** *) #staload "libats/ML/SATS/basis.sats" (* ****** ****** *) // // HX: prelude/string // (* ****** ****** *) // fun{} string_tabulate_cloref {n:int} ( n: size_t(n) , f: (sizeLt(n)) - charNZ): strnptr(n) // (* ****** ****** *) // // HX-2017-12-30: // prelude/intrange // (* ****** ****** *) fun{} int_forall_cloptr ( n: int, pred: (int) - bool ) : bool // end of [int_forall_cloptr] fun{} int_forall_cloref ( n: int, pred: (int) - bool ) : bool // end of [int_forall_cloref] (* ****** ****** *) fun{} intrange_forall_cloptr ( m: int, n: int, pred: (int) - bool ) : bool // end of [intrange_forall_cloptr] fun{} intrange_forall_cloref ( m: int, n: int, pred: (int) - bool ) : bool // end of [intrange_forall_cloref] (* ****** ****** *) // fun{} int_foreach_cloptr ( n: int, fwork: (int) - void ) : int // end of [int_foreach_cloptr] fun{} int_foreach_cloref ( n: int, fwork: (int) - void ) : int // end of [int_foreach_cloref] // fun{} intrange_foreach_cloptr ( l: int, r: int, fwork: (int) - void ) : int // end of [intrange_foreach_cloptr] fun{} intrange_foreach_cloref ( l: int, r: int, fwork: (int) - void ) : int // end of [intrange_foreach_cloref] // (* ****** ****** *) // fun{} int_rforeach_cloptr ( n: int, fwork: (int) - void ) : int // end of [int_rforeach_cloptr] fun{} int_rforeach_cloref ( n: int, fwork: (int) - void ) : int // end of [int_rforeach_cloref] // fun{} intrange_rforeach_cloptr ( l: int, r: int, fwork: (int) - void ) : int // end of [intrange_rforeach_cloptr] fun{} intrange_rforeach_cloref ( l: int, r: int, fwork: (int) - void ) : int // end of [intrange_rforeach_cloref] // (* ****** ****** *) // // HX: prelude/list // (* ****** ****** *) // fun{x:t0p} list_exists_cloptr ( xs: List(INV(x)) , pred: (x) - bool): bool fun{x:t0p} list_exists_cloref ( xs: List(INV(x)) , pred: (x) - bool):<(*0*)> bool // fun{x:t0p} list_iexists_cloptr {n:int} ( xs: list(INV(x), n), pred: (natLt(n), x) - bool ) : bool // end of [list_iexists_cloptr] fun{x:t0p} list_iexists_cloref {n:int} ( xs: list(INV(x), n), pred: (natLt(n), x) - bool ) :<(*0*)> bool // end of [list_iexists_cloref] // (* ****** ****** *) // fun{x:t0p} list_forall_cloptr ( xs: List(INV(x)) , pred: (x) - bool): bool fun{x:t0p} list_forall_cloref ( xs: List(INV(x)) , pred: (x) - bool):<(*0*)> bool // fun{x:t0p} list_iforall_cloptr {n:int} ( xs: list(INV(x), n), pred: (natLt(n), x) - bool ) : bool // end of [list_iforall_cloptr] fun{x:t0p} list_iforall_cloref {n:int} ( xs: list(INV(x), n), pred: (natLt(n), x) - bool ) :<(*0*)> bool // end of [list_iforall_cloref] // (* ****** ****** *) // fun{x:t0p} list_equal_cloref (List(INV(x)), List(x), eqfn: (x, x) - bool):<> bool // fun{x:t0p} list_compare_cloref (List(INV(x)), List(x), cmpfn: (x, x) - int):<> int // (* ****** ****** *) // fun{x:t0p} list_app_fun (List(INV(x)), fwork: (x) - void): void fun{x:t0p} list_app_clo (List(INV(x)), fwork: &(x) - void): void // fun{x:t0p} list_app_cloref (xs: List(INV(x)), fwork: (x) - void): void // (* ****** ****** *) // fun{ x:t0p}{y:vt0p } list_map_fun{n:int} (xs: list(INV(x), n), f: (x) - y): list_vt(y, n) fun{ x:t0p}{y:vt0p } list_map_clo{n:int} (xs: list(INV(x), n), f: &(x) - y): list_vt(y, n) // fun{ x:t0p}{y:vt0p } list_map_cloref{n:int} (xs: list(INV(x), n), f: (x) - y): list_vt(y, n) // (* ****** ****** *) // fun{ a:vt0p } list_tabulate_fun{n:nat} (n: int n, f: natLt(n) - a): list_vt(a, n) fun{ a:vt0p } list_tabulate_clo{n:nat} (n: int n, f: &(natLt(n)) - a): list_vt(a, n) // fun{ a:vt0p } list_tabulate_cloref{n:nat} (n: int n, f: natLt(n) - a): list_vt(a, n) // (* ****** ****** *) // fun {x:t0p} list_foreach_fun {fe:eff} ( xs: List(INV(x)), f: (x) - void ) : void // end of [list_foreach_fun] // fun {x:t0p} list_foreach_clo {fe:eff} ( xs: List(INV(x)), f0: &(x) - void ) : void // end of [list_foreach_clo] fun {x:t0p} list_foreach_vclo {v:view}{fe:eff} ( pf: !v | xs: List(INV(x)) , f0: &(!v | x) - void ) : void // end of [list_foreach_vclo] // fun {x:t0p} list_foreach_cloptr {fe:eff} ( xs: List(INV(x)), f0: (x) - void ) : void // end of [list_foreach_cloptr] fun {x:t0p} list_foreach_vcloptr {v:view}{fe:eff} ( pf: !v | xs: List(INV(x)) , f0: (!v | x) - void ) : void // end of [list_foreach_vcloptr] // fun {x:t0p} list_foreach_cloref {fe:eff} ( xs: List(INV(x)), f: (x) - void ) : void // end of [list_foreach_cloref] // (* ****** ****** *) // fun {a:t0p} list_foreach_method ( xs: List(INV(a)) ) : (cfun(a,void)) - void // overload .foreach with list_foreach_method // (* ****** ****** *) // fun{ x:t0p } list_iforeach_cloref {n:int} ( xs: list(INV(x), n) , fwork: (natLt(n), x) - void ) : void // end of [list_iforeach_cloref] // (* ****** ****** *) // fun {a:t0p} list_iforeach_method {n:int} ( xs: list(INV(a), n) ) : (cfun(natLt(n),a,void)) - void // overload .iforeach with list_iforeach_method // (* ****** ****** *) // fun{ res:vt0p}{x:t0p } list_foldleft_cloptr (xs: List(INV(x)), ini: res, fopr: (res, x) - res): res fun{ res:vt0p}{x:t0p } list_foldleft_cloref (xs: List(INV(x)), ini: res, fopr: (res, x) - res): res // (* ****** ****** *) // fun{ x:t0p}{res:vt0p } list_foldright_cloptr (xs: List(INV(x)), fopr: (x, res) - res, snk: res): res fun{ x:t0p}{res:vt0p } list_foldright_cloref (xs: List(INV(x)), fopr: (x, res) - res, snk: res): res // (* ****** ****** *) // // HX: prelude/list_vt // (* ****** ****** *) // fun {x:vt0p} {y:vt0p} list_vt_map_fun{n:int} ( xs: !list_vt(INV(x), n) , f0: (&x) - y): list_vt(y, n) fun {x:vt0p} {y:vt0p} list_vt_map_clo{n:int} ( xs: !list_vt(INV(x), n) , f0: &(&x) - y): list_vt(y, n) // fun {x:vt0p} {y:vt0p} list_vt_map_cloptr{n:int} ( xs: !list_vt(INV(x), n) , f0: ( &x ) - y): list_vt(y, n) fun {x:vt0p} {y:vt0p} list_vt_map_cloref{n:int} ( xs: !list_vt(INV(x), n) , f0: ( &x ) - y): list_vt(y, n) // (* ****** ****** *) // fun {x:vt0p} {y:vt0p} list_vt_mapfree_fun {n:int} ( xs: list_vt(INV(x), n) , f0: (&x >> x?!) - y): list_vt(y, n) fun {x:vt0p} {y:vt0p} list_vt_mapfree_clo {n:int} ( xs: list_vt(INV(x), n) , f0: &(&x >> x?!) - y): list_vt(y, n) // fun {a:vt0p} {b:vt0p} list_vt_mapfree_cloptr {n:nat} ( xs: list_vt(INV(a), n), fopr: (&a >> a?!) - b ) : list_vt(b, n) // end-of-function fun {x:vt0p}{y:vt0p} list_vt_mapfree_cloref{n:int} ( xs: list_vt(INV(x), n), fopr: (&x >> x?!) - y ) : list_vt(y, n) // end-of-function // (* ****** ****** *) // fun {a:vt0p} {b:vt0p} list_vt_mapfree_method {n:nat} ( list_vt(INV(a), n), TYPE(b) ) : ((&a >> a?!) - b) - list_vt(b, n) // overload .mapfree with list_vt_mapfree_method // (* ****** ****** *) // fun{ x:vt0p } list_vt_foreach_fun {fe:eff} ( xs: !List_vt(INV(x)), f0: (&x >> _) - void ) : void // end of [list_vt_foreach_fun] fun{ x:vt0p } list_vt_foreach_clo {fe:eff} ( xs: !List_vt(INV(x)), f0: &(&x >> _) - void ) : void // end of [list_vt_foreach_fun] // fun{ x:vt0p } list_vt_foreach_cloptr ( xs: !List_vt(INV(x)), f0: (&x >> _) - void ) :<1> void // end of [list_vt_foreach_cloptr] fun{ x:vt0p } list_vt_foreach_cloref ( xs: !List_vt(INV(x)), f0: (&x >> _) - void ) :<1> void // end of [list_vt_foreach_cloref] // (* ****** ****** *) // fun {r:vt0p} {x:vt0p} list_vt_foldleft_cloptr (xs: !List_vt(INV(x)), r0: r, f0: (r, &x) - r): (r) fun {r:vt0p} {x:vt0p} list_vt_foldleft_cloref (xs: !List_vt(INV(x)), r0: r, f0: (r, &x) - r): (r) // (* ****** ****** *) // // HX: prelude/array // (* ****** ****** *) // fun {a:vt0p} array_foreach_fun {n:int}{fe:eff} ( A0: &(@[INV(a)][n]) >> @[a][n], asz: size_t(n), fwork: (&a >> _) - void ) : void // end of [array_foreach_fun] fun {a:vt0p} array_foreach_clo {n:int}{fe:eff} ( A0: &(@[INV(a)][n]) >> @[a][n], asz: size_t (n), fwork: &(&a >> _) - void ) : void // end of [array_foreach_clo] fun {a:vt0p} array_foreach_cloptr {n:int}{fe:eff} ( A0: &(@[INV(a)][n]) >> @[a][n], asz: size_t n, fwork: (&a >> _) - void ) : void // end of [array_foreach_cloptr] fun {a:vt0p} array_foreach_cloref {n:int}{fe:eff} ( A0: &(@[INV(a)][n]) >> @[a][n], asz: size_t(n), fwork: (&a >> _) - void ) : void // end of [array_foreach_cloref] // (* ****** ****** *) // fun {a:vt0p} array_foreach_vclo {v:view}{n:int}{fe:eff} ( pf: !v | A0: &(@[INV(a)][n]) >> @[a][n] , asz: size_t n, f0: &(!v | &a >> _) - void ) : void // end of [array_foreach_vclo] fun {a:vt0p} array_foreach_vcloptr {v:view}{n:int}{fe:eff} ( pf: !v | A0: &(@[INV(a)][n]) >> @[a][n] , asz: size_t(n), f0: !(!v | &a >> _) - void ) : void // end of [array_foreach_vcloptr] // (* ****** ****** *) // // HX: prelude/arrayptr // (* ****** ****** *) // fun {a:vt0p} arrayptr_foreach_fun {n:int}{fe:eff} ( A0: !arrayptr(INV(a), n), asz: size_t(n), fwork: (&a) - void ) : void // end of [arrayptr_foreach_fun] // (* ****** ****** *) // fun{a:vt0p} arrayptr_tabulate_cloref {n:int} ( asz: size_t(n) , fopr: (sizeLt(n)) - a): arrayptr(a, n) // (* ****** ****** *) // // HX: prelude/arrayref // (* ****** ****** *) // fun{a:vt0p} arrayref_tabulate_cloref {n:int} ( asz: size_t(n) , fopr: (sizeLt(n)) - (a)): arrayref(a, n) // fun{a:vt0p} arrszref_tabulate_cloref {n:int} (size_t(n), (sizeLt(n)) - a): arrszref(a) // (* ****** ****** *) // // HX: prelude/option // (* ****** ****** *) // fun {x:t0p} {y:vt0p} option_map_fun {b:bool} (option(INV(x), b), fopr: (x) - y): option_vt(y, b) fun {x:t0p} {y:vt0p} option_map_clo {b:bool} (option(INV(x), b), fopr: &(x) - y): option_vt(y, b) // fun {x:t0p} {y:vt0p} option_map_cloptr {b:bool} (option(INV(x), b), fopr: (x) - y): option_vt(y, b) fun {x:t0p} {y:vt0p} option_map_cloref {b:bool} (option(INV(x), b), fopr: (x) - y): option_vt(y, b) // (* ****** ****** *) // // HX: prelude/matrixptr // (* ****** ****** *) // fun {a:vt0p} matrixptr_tabulate_cloptr {m,n:int} ( nrow: size_t(m) , ncol: size_t(n) , fopr: (sizeLt(m), sizeLt(n)) - (a) ) : matrixptr(a, m, n) // end-of-function // fun {a:vt0p} matrixptr_tabulate_cloref {m,n:int} ( nrow: size_t(m) , ncol: size_t(n) , fopr: (sizeLt(m), sizeLt(n)) - (a) ) : matrixptr(a, m, n) // end-of-function // (* ****** ****** *) // fun {a:vt0p} matrixref_tabulate_cloref {m,n:int} ( nrow: size_t(m) , ncol: size_t(n) , fopr: (sizeLt(m), sizeLt(n)) - (a) ) : matrixref(a, m, n) // end-of-function fun {a:vt0p} mtrxszref_tabulate_cloref {m,n:int} ( nrow: size_t(m) , ncol: size_t(n) , fopr: (sizeLt(m), sizeLt(n)) - (a)): mtrxszref(a) // fun {a:vt0p} matrixref_foreach_cloref {m,n:int} ( M: matrixref(a, m, n) , m: size_t(m), n: size_t(n), fwork: (&(a) >> _) - void ) : void // end of [mtrxszref_foreach_cloref] fun {a:vt0p} mtrxszref_foreach_cloref (M0: mtrxszref(a), fwork: (&(a) >> _) - void): void // (* ****** ****** *) (* end of [atspre.sats] *) ATS2-Postiats-gmp-0.3.13/./utils/0000755000175000017500000000000013431250607016022 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/0000755000175000017500000000000013431250607017465 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/BUILD/0000755000175000017500000000000013431250607020324 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/BUILD/node_modules0000777000175000017500000000000013431250607025534 2../node_modulesustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/BUILD/.keeper0000644000175000017500000000000013431250607021566 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/0000755000175000017500000000000013431250607020220 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/myatscc_loc_t.dats0000644000175000017500000000201513431250607023716 0ustar brandonbrandon(* ** HX-2017-04-22: ** For turning string into tokens *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* #staload UN = $UNSAFE *) #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../SATS/myatscc.sats" (* ****** ****** *) // datatype loc_t = LOC of (int, int) // (* ****** ****** *) // assume loc_type = loc_t // (* ****** ****** *) implement loc_t_left(LOC(p0, _)) = p0 implement loc_t_right(LOC(_, p1)) = p1 (* ****** ****** *) // implement loc_t_make(p0, p1) = LOC(p0, p1) // implement loc_t_combine (x1, x2) = let val LOC(p10, p11) = x1 val LOC(p20, p21) = x2 in LOC(min(p10, p20), max(p11, p21)) end // end of [loc_t_combine] // (* ****** ****** *) // implement print_loc_t(x) = fprint(stdout_ref, x) implement prerr_loc_t(x) = fprint(stderr_ref, x) // (* ****** ****** *) implement fprint_loc_t (out, loc) = let val LOC(p0, p1) = loc in fprint!(stdout_ref, "(", p0, "--", p1, ")") end // end of [fprint_loc_t] (* ****** ****** *) (* end of [myatscc_loc_t.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/myatscc_getdef.dats0000644000175000017500000000740013431250607024057 0ustar brandonbrandon(* ** HX-2017-04-22: ** For locating myatsccdef *) (* ****** ****** *) // #include "share/atspre_staload.hats" // #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/list0.sats" #staload _ = "libats/ML/DATS/list0.dats" // (* #include "share/HATS\ /atspre_staload_libats_ML.hats" *) // (* ****** ****** *) // (* #staload UN = $UNSAFE *) #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../SATS/myatscc.sats" (* ****** ****** *) // extern fun myatscc_getdef_file ((*void*)): Option_vt(string) // (* ****** ****** *) implement myatscc_getdef ((*void*)) = let // val opt = myatscc_getdef_file() // in // case+ opt of | ~Some_vt(def) => def | ~None_vt((*void*)) => MYATSCCDEF_def_get() // end // end of [myatscc_getdef] (* ****** ****** *) local (* ****** ****** *) // fun auxprfx ( xs: List(char) , ys: List(char) ) : Option_vt(List0(char)) = let // prval () = lemma_list_param(ys) // in // case+ xs of | list_nil () => Some_vt(ys) // list_nil | list_cons (x, xs) => ( case+ ys of | list_nil () => None_vt() // list_nil | list_cons(y, ys) => if (x = y) then auxprfx(xs, ys) else None_vt() // end of [list_cons] ) (* end of [list_cons] *) // end // end of [auxprfx] // fun auxprfx2 ( xs: List(char) , ys: List(char) ) : Option_vt ( List0(char) ) = let // val opt = auxprfx(xs, ys) // in case+ opt of | Some_vt _ => opt | ~None_vt((*void*)) => ( case+ ys of | list_nil() => None_vt() | list_cons(_, ys) => auxprfx2(xs, ys) ) end // end of [auxprfx2] // (* ****** ****** *) // fun auxfind ( filr: FILEref ) : Option_vt(string) = res where { // val cs1 = string_explode(MYATSCCDEF_key) val res = auxfind2($UN.list_vt2t(cs1), filr) // val ((*void*)) = list_vt_free(cs1) val ((*void*)) = fileref_close(filr) // } (* end of [auxfind] *) // and auxfind2 ( cs1: List(char), filr: FILEref ) : Option_vt(string) = ( if fileref_isnot_eof(filr) then let val cs2 = fileref_get_line_charlst(filr) val opt = auxprfx2(cs1, $UN.list_vt2t(cs2)) in case+ opt of | ~None_vt() => let val () = list_vt_free(cs2) in auxfind2(cs1, filr) end // end of [None_vt] | ~Some_vt(cs2_) => let val cs2_ = list_reverse(cs2_) val ((*void*)) = list_vt_free(cs2) in Some_vt(auxfind2_cont(filr, cs2_)) end // end of [Some_vt] end // end of [then] else None_vt(*void*) // end of [else] ) // and auxfind2_cont ( inp: FILEref , res: List0_vt(char) ) : string = let // val iscont = ( case+ res of | list_vt_nil() => true | list_vt_cons(c, _) => (c = '\\') ) : bool // end of [val] // val res = ( case+ res of | list_vt_nil() => res | @list_vt_cons(c, cs) => ( if iscont then cs where { val cs = cs val () = free@{char}{0}(res) } else (fold@(res); res) // end of [if] ) ) : List0_vt(char) // in // if iscont then let val cs = fileref_get_line_charlst(inp) val res = list_vt_reverse_append(cs, res) in auxfind2_cont(inp, res) end // end of [then] else let val res = $UN.castvwtp0{List0_vt(charNZ)}(res) in strnptr2string(string_make_rlist_vt(res)) end // end of [else] // end // end of [auxfind2_cont] // (* ****** ****** *) in (* in-of-local *) (* ****** ****** *) implement myatscc_getdef_file ((*void*)) = let // val gvs = the_name_i_env_get() // val opt = list0_nth_opt(gvs, 1) // in // case+ opt of | ~Some_vt(gv) => let val- GVstring(name) = gv val opt = fileref_open_opt (name, file_mode_r) in case+ opt of | ~None_vt() => None_vt() | ~Some_vt(filr) => auxfind(filr) end // end of [Some_vt] | ~None_vt((*void*)) => None_vt() // end // end of [myatscc_getdef_file] end // end of [local] (* ****** ****** *) (* end of [myatscc_getdef.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/myatscc_parcomb.dats0000644000175000017500000000030113431250607024235 0ustar brandonbrandon(* ****** ****** *) // // HX: for exceptions // (* ****** ****** *) // #include "$PATSHOMELOCS\ /atscntrb-hx-parcomb/mylibies.dats" // (* ****** ****** *) (* end of [myatscc_parcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/myatscc_parser.dats0000644000175000017500000001417713431250607024126 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2017-04-22: ** For parsing string ... *) (* ****** ****** *) // #include "share/atspre_staload.hats" // #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // #staload "./../SATS/myatscc.sats" // (* ****** ****** *) // #include "$PATSHOMELOCS\ /atscntrb-hx-parcomb/mylibies.hats" // #staload $PARCOMB // opening the package // (* ****** ****** *) // fun myexp_make_node ( loc: loc_t , node: myexp_node ) : myexp = $rec { myexp_loc=loc, myexp_node=node } (* end of [token_make_node] *) // (* ****** ****** *) // implement myexp_tok(tok) = myexp_make_node (tok.token_loc, EXPtok(tok)) // (* ****** ****** *) // implement myexp_name(tok) = myexp_make_node (tok.token_loc, EXPname(tok)) // (* ****** ****** *) // implement print_myexp (exp) = fprint(stdout_ref, exp) implement prerr_myexp (exp) = fprint(stderr_ref, exp) // (* ****** ****** *) // implement fprint_val = fprint_myexp // (* ****** ****** *) // implement fprint_myexplst (out, xs) = fprint_list_sep(out, xs, ", ") // (* ****** ****** *) implement fprint_myexp (out, exp) = ( // case+ exp.myexp_node of (* case+ *) | EXPtok(tok) => fprint!(out, tok) | EXPname(tok) => fprint!(out, tok) | EXPfcall(tok, xs) => fprint!(out, "EXPfcall(", tok, "; ", xs, ")") // ) (* end of [fprint_myexp] *) (* ****** ****** *) // fun token_is_eof (tok: token): bool = ( case+ tok.token_node of | TOKeof() => true | _ (*non-TOKeof*) => false ) fun token_isnot_eof (tok: token): bool = ( case+ tok.token_node of | TOKeof() => false | _ (*non-TOKeof*) => true ) // (* ****** ****** *) // fun TOKEN ( px: parser(token, token) ) : parser(token, token) = ( sat_parser_fun (any_parser(), lam(x) => token_isnot_eof(x)) ) // (* ****** ****** *) // fun token_is_space (tok: token): bool = ( case+ tok.token_node of | TOKspchr(' ') => true | TOKspchr('\t') => true | _ (*rest-of-token*) => false ) // fun SPACE ( px: parser(token, token) ) : parser(token, token) = sat_parser_fun(px, token_is_space) // (* ****** ****** *) // fun token_is_comma (tok: token): bool = ( case+ tok.token_node of | TOKspchr(',') => true | _ => false ) // fun COMMA ( px: parser(token, token) ) : parser(token, token) = sat_parser_fun(px, token_is_comma) // (* ****** ****** *) // fun token_is_lparen (tok: token): bool = ( case+ tok.token_node of TOKspchr('\(') => true | _ => false ) // fun token_is_rparen(tok: token): bool = ( case+ tok.token_node of | TOKspchr(')') => true | _ => false ) // fun LPAREN ( px: parser(token, token) ) : parser(token, token) = sat_parser_fun(px, token_is_lparen) fun RPAREN ( px: parser(token, token) ) : parser(token, token) = sat_parser_fun(px, token_is_rparen) // (* ****** ****** *) // fun token_is_name_i (tok: token): bool = ( case+ tok.token_node of TOKname_i(name) => true | _ => false ) // fun token_is_name_s (tok: token): bool = ( case+ tok.token_node of TOKname_s(name) => true | _ => false ) // fun TOKEN_name_i ( px: parser(token, token) ) : parser(token, token) = sat_parser_fun(px, token_is_name_i) fun TOKEN_name_s ( px: parser(token, token) ) : parser(token, token) = sat_parser_fun(px, token_is_name_s) // (* ****** ****** *) // extern fun myexp_parser (parser(token, token)): parser(token, myexp) // extern fun myexp_parser_ (parser(token, token)): parser(token, myexp) // (* ****** ****** *) // implement myexp_parser_ (px) = let val skip = skipall0_parser(SPACE(px)) in // seq3wth_parser_fun (skip, myexp_parser(px), skip, lam(_, exp, _) => exp) // end // end of [myexp_parser_] // (* ****** ****** *) // extern fun commamyexp_parser (parser(token, token)): parser(token, myexp) // implement commamyexp_parser (px) = ( seq2wth_parser_fun ( COMMA(px), myexp_parser_(px), lam(_, exp) => exp ) (* seq2wth_parser_fun *) ) // (* ****** ****** *) // extern fun myexpcommaseq_parser (parser(token, token)): parser(token, myexplst) // implement myexpcommaseq_parser (px) = let // typedef x = myexp typedef xs = myexplst in // seq2wth_parser_fun ( myexp_parser_(px) , list0_parser(commamyexp_parser(px)), lam(x, xs) => list_cons(x, xs) ) || ret_parser(list_nil((*void*))) // end // end of [myexpcommaseq_parser] // (* ****** ****** *) typedef myexparg = @(token, myexplst, token) typedef myexpargopt = Option@(token, myexplst, token) (* ****** ****** *) // extern fun myexparg_parser ( px: parser(token, token) ) : parser(token, myexparg) // implement myexparg_parser (px) = ( seq3_parser ( LPAREN(px) , myexpcommaseq_parser(px) , RPAREN(px) ) ) (* end of [myexparg_parser] *) // (* ****** ****** *) // fun myexp_fcall ( tok: token, arg: myexparg ) : myexp = let val loc = tok.token_loc + (arg.2).token_loc in // myexp_make_node(loc, EXPfcall(tok, arg.1)) // end // end of [myexp_fcall] fun myexp_fcallopt ( tok: token, opt: myexpargopt ) : myexp = ( // case+ opt of | None() => myexp_name(tok) | Some(arg) => myexp_fcall(tok, arg) // ) (* myexp_fcallopt *) // (* ****** ****** *) // extern fun myexp_lparser ( px: parser(token, token) ) : lazy(parser(token, myexp)) // implement myexp_parser(px) = parser_unlazy(myexp_lparser(px)) // implement myexp_lparser(px) = $delay ( seq1wth_parser_fun ( TOKEN_name_i(px), lam(x) => myexp_name(x) ) || // seq2wth_parser_fun ( TOKEN_name_s(px) , option_parser(myexparg_parser(px)) , lam(tok, opt) => myexp_fcallopt(tok, opt) ) || // seq1wth_parser_fun(TOKEN(px), lam(x) => myexp_tok(x)) // ) // (* ****** ****** *) // extern fun myexpseq_parser (parser(token, token)): parser(token, myexplst) // implement myexpseq_parser(px) = list0_parser(myexp_parser(px)) // (* ****** ****** *) fun tokenlst_streamize ( xs: List(token) ) : stream(token) = let // val eof = token_eof((*void*)) // in // $delay ( case+ xs of | list_nil() => stream_cons (eof, tokenlst_streamize(xs)) // list_nil | list_cons(x, xs) => stream_cons(x, tokenlst_streamize(xs)) ) // end // end of [tokenlst_streamize] (* ****** ****** *) implement myexpseq_parse (inp) = exps where { val px = any_parser() val toks = tokenlst_streamize(inp) val (exps, toks) = parser_apply2_stream(myexpseq_parser(px), toks) } (* end of [tokenlst2myexpseq] *) (* ****** ****** *) (* end of [myatscc_parser.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/myatscc_parcomb.sats0000644000175000017500000000027713431250607024270 0ustar brandonbrandon(* ****** ****** *) // // HX: for exceptions // (* ****** ****** *) // #include "$PATSHOMELOCS/atscntrb-hx-parcomb/mylibies.sats" // (* ****** ****** *) (* end of [myatscc_parcomb.sats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/myatscc_main.dats0000644000175000017500000001501313431250607023544 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: April, 2017 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #staload UN = $UNSAFE (* ****** ****** *) // local #include "./myatscc_loc_t.dats" in (* nothing *) end // endlocal // local #include "./myatscc_lexer.dats" in (* nothing *) end // endlocal // local #include "./myatscc_parser.dats" in (* nothing *) end // endlocal // local #include "./myatscc_evaler.dats" in (* nothing *) end // endlocal // local #include "./myatscc_getdef.dats" in (* nothing *) end // endlocal // (* ****** ****** *) // local #include "./myatscc_libats.dats" in (* nothing *) end // endlocal // (* ****** ****** *) #include "share/HATS\ /atspre_staload_libats_ML.hats" (* ****** ****** *) #staload "./../SATS/myatscc.sats" (* ****** ****** *) fun comarg_parse ( arg: string ) : int = let // fun aux ( p: ptr, r: int ) : int = let val c = $UN.ptr0_get(p) in // if isneqz(c) then ( if c = '-' then aux(ptr0_succ(p), r+1) else r // end of [if] ) else (r) // end of [if] end // end of [aux] // in aux(string2ptr(arg), 0) end // end of [comarg_parse] (* ****** ****** *) // implement the_name_i_env_initize {n}(argc, argv) = let // vtypedef res = List0_vt(gvalue) // fun loop {i:nat | i <= n} ( i: int(i), argv: !argv(n), res: res ) : res = ( if (i < argc) then let val arg = argv[i] in if comarg_parse(arg) = 0 then let val arg = GVstring(arg) val res = cons_vt(arg, res) in loop(i+1, argv, res) end // end of [then] else loop(i+1, argv, res) end // end of [then] else res (* end of [else] *) ) // val arg = GVstring(argv[0]) val res = list_vt_sing(arg) val res = loop(1, argv, res) // in // the_name_i_env_initset (list0_of_list_vt(list_vt_reverse(res))) // end // end of [the_name_i_env_initize] // (* ****** ****** *) // (* HX: see myatscc_get_def.dats *) (* implement myatscc_get_def ((*void*)) = MYATSCCDEF_def *) // (* ****** ****** *) local val the_gcflag = ref(0) in (* in-of-local *) fun the_gcflag_set (gcflag: int) = ( the_gcflag[] := gcflag ) implement MYATSCCDEF_def_get ((*void*)) = let // val gcflag = the_gcflag[] // in // ifcase | gcflag = 0 => MYATSCCDEF_def | gcflag > 0 => MYATSCCDEF_GC_def | _(* else *) => MYATSCCDEF_def // end // end of [MYATSCCDEF_def_get] end // end of [local] (* ****** ****** *) // implement myatscc_evaldef ((*void*)) = let // val def = myatscc_getdef() // val toks = string_tokenize(def) val toks = tokenlst_tokenize(toks) // val exps = myexpseq_parse(toks) // (* val () = exps.foreach() (lam(exp) => println!(exp)) *) // in myexpseq_stringize(g0ofg1(exps)) end // end of [myatscc_evaldef] // (* ****** ****** *) // extern fun myatscc_usage {n:pos} ( argc: int(n), argv: !argv(n) ) : int // end-of-function // implement myatscc_usage {n}(argc, argv) = let // fun loop {i:nat | i <= n} ( i: int(i), argv: !argv(n) ) : int = ( if (i=argc) then (0) else ( case+ argv[i] of | "-h" => usage() | "--help" => usage() | _(* rest *) => loop(i+1, argv) ) ) // and usage(): int = 1 where { val () = println!("Usage: myatscc [FLAG]... [FILE]...") val () = println!("\n\ By supporting embedding as comment some form of scripts\n\ for compilation inside the code to be compiled, [myatscc]\n\ is primarily for simplifying the compilation of ATS source.\n\ ") val () = println!("The following options are supported:") val () = println!(" -h/--help: for printing the help message") val () = println!(" --gc/--gcbdw: for malloc/free via Boehm-GC") val () = println!(" --dry/--dryrun: for command generation only") } // in (if argc >= 2 then loop(1, argv) else usage()) end // end of [myatscc_usage] // (* ****** ****** *) implement main(argc, argv) = myatscc_main(argc, argv) where { // (* val () = println!("Hello from [myatscc]!") *) // val done = myatscc_usage(argc, argv) // val ((*void*)) = if done > 0 then exit(0) // val ((*void*)) = the_myexpfun_map_initize((*void*)) val ((*void*)) = the_name_i_env_initize(argc, argv) // } (* end of [main] *) (* ****** ****** *) local // typedef state = @{ // dryrun= int , gcflag= int // } (* state *) // #staload "libats/libc/SATS/stdlib.sats" // fun state_initset {n:int} {i:nat|i <= n} ( i: int(i) , argc: int(n) , argv: !argv(n) , state: &state >> _ ) : void = ( if (i < argc) then let // val () = if string_is_prefix ("--gc", argv[i]) then (state.gcflag := state.gcflag + 1) // val () = if string_is_prefix ("--dry", argv[i]) then (state.dryrun := state.dryrun + 1) // in state_initset(i+1, argc, argv, state) end // end of [then] else () // end of [else] ) // in (* in-of-local *) implement myatscc_main ( argc, argv ) = res where { // var state: state val () = state.gcflag := 0 val () = state.dryrun := 0 // var res: int = 0 // var gcflag: bool = false var dryrun: bool = false // val ((*void*)) = state_initset(1, argc, argv, state) // val ((*void*)) = ( the_gcflag_set(state.gcflag) ) // val ((*void*)) = ( if dryrun then () else ( if state.dryrun > 0 then dryrun := true ) (* end of [if] *) ) (* end of [val] *) // val command = myatscc_evaldef() // val ((*void*)) = if dryrun then println! (command) else () // val ((*void*)) = if ~(dryrun) then (res := system(command)) // } // end of [myatscc_main] end // end of [local] (* ****** ****** *) (* end of [myatscc_main.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/myatscc_lexer.dats0000644000175000017500000001775113431250607023752 0ustar brandonbrandon(* ** HX-2017-04-22: ** For turning string into tokens *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* #staload UN = $UNSAFE *) #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // extern fun{ x:t0p}{y:vt0p } list_map_fun{n:int} ( xs: list(x, n) , f0: (x) - y): list_vt(y, n) implement {x}{y}(*tmp*) list_map_fun (xs, fopr) = let // implement {x2}{y2} list_map$fopr(x2) = $UN.castvwtp0{y2}(fopr($UN.cast{x}(x2))) // in list_map(xs) end // end of [list_map_fun] // (* ****** ****** *) // #include "$PATSHOMELOCS\ /atscntrb-hx-parcomb/mylibies.hats" // #staload $PARCOMB // opening the package // (* ****** ****** *) #staload "./../SATS/myatscc.sats" (* ****** ****** *) // abst@ype ichar_t0ype // local assume ichar_t0ype = @(int, char) in (*nothing*) end // (* ****** ****** *) typedef ichar = ichar_t0ype (* ****** ****** *) // extern fun{} ichar_get_pos(ichar): int extern fun{} ichar_get_char(ic: ichar): char // overload .pos with ichar_get_pos overload .char with ichar_get_char // implement {}(*tmp*) ichar_get_pos(ic) = ic.0 where { reassume ichar_t0ype } implement {}(*tmp*) ichar_get_char(ic) = ic.1 where { reassume ichar_t0ype } // (* ****** ****** *) // extern fun string2icharlst (cs: string): stream(ichar) // implement string2icharlst (cs) = let // reassume ichar_t0ype // fun auxmain ( i: int, p: ptr ) : stream(@(int, char)) = $delay ( let val c = $UN.ptr0_get(p) in if iseqz(c) then ( stream_cons(@(i, c), auxmain(i, p)) ) else ( stream_cons(@(i, c), auxmain(i+1, ptr_succ(p))) ) // end of [if] end // end of [let] ) // in auxmain(1, string2ptr(cs)) // HX: position starts at 1 end // end of [string2icharlst] (* ****** ****** *) // fun token_make_node ( loc: loc_t , node: token_node ) : token = $rec { token_loc=loc, token_node=node } (* end of [token_make_node] *) // (* ****** ****** *) implement token_eof() = let // val loc = loc_t_make(0, 0) // in token_make_node(loc, TOKeof()) end // end of [token_make_eof] (* ****** ****** *) implement token_make_ide (p0, p1, ide) = let // val loc = loc_t_make(p0, p1) // in token_make_node(loc, TOKide(ide)) end // end of [token_make_ide] implement token_make_int (p0, p1, int) = let // val loc = loc_t_make(p0, p1) // in token_make_node(loc, TOKint(int)) end // end of [token_make_int] implement token_make_spchr (p0, chr) = let val loc = loc_t_make(p0, p0+1) in token_make_node(loc, TOKspchr(chr)) end // end of [token_make_spchr] (* ****** ****** *) // implement print_token (tok) = fprint(stdout_ref, tok) implement prerr_token (tok) = fprint(stderr_ref, tok) // implement fprint_token (out, tok) = ( case+ tok.token_node of // | TOKeof() => fprint!(out, "TOKeof()") // | TOKide(ide) => fprint!(out, "TOKide(", ide, ")") | TOKint(int) => fprint!(out, "TOKint(", int, ")") // | TOKspchr(chr) => fprint!(out, "TOKspchr(", chr, ")") // | TOKname_i(name) => fprint!(out, "TOKname_i(", name, ")") | TOKname_s(name) => fprint!(out, "TOKname_s(", name, ")") // | TOKstring(text) => fprint!(out, "TOKstring(", text, ")") // ) // (* ****** ****** *) local // fun idfst_test ( ic: ichar ) : bool = let val c = ic.char() in isalpha(c) orelse (c = '_') end // end of [idfst_test] fun idrst_test ( ic: ichar ) : bool = let val c = ic.char() in isalnum(c) orelse (c = '_') end // end of [idfst_test] // fun idfst_parser ( px: parser(ichar, ichar) ) : parser(ichar, ichar) = sat_parser_fun(px, idfst_test) fun idrst_parser ( px: parser(ichar, ichar) ) : parser(ichar, ichar) = sat_parser_fun(px, idrst_test) // fun ident_make ( ic: ichar, ics: List0(ichar) ) : token = let val p0 = ic.pos() val p1 = loop(p0, ics) where { fun loop ( p0: int, ics: List0(ichar) ) : int = ( case+ ics of | list_nil() => p0+1 | list_cons (ic, ics) => loop(ic.pos(), ics) // list_cons ) } val c0 = ic.char() val cs = list_map_fun (ics, lam ic => ic.char()) val cs = list_vt_cons(c0, cs) val cs = $UN.castvwtp0{List0_vt(charNZ)}(cs) val ide = string_make_list($UN.list_vt2t{charNZ}(cs)) val ((*freed*)) = list_vt_free(cs) in token_make_ide(p0, p1, strnptr2string(ide)) end // end of [ident_make] // in (* in-of-local *) // fun token_ide_parser ( p0: parser(ichar, ichar) ) : parser(ichar, token) = ( seq2wth_parser_fun ( idfst_parser(p0) , list0_parser(idrst_parser(p0)), ident_make ) ) (* end of [seq2wth_parser_fun] *) // end // end of [local] (* ****** ****** *) local fun digit_parser ( p0: parser(ichar, ichar) ) : parser(ichar, ichar) = ( sat_parser_fun(p0, lam ic => isdigit(ic.char())) ) (* end of [digit_parser] *) in (* in-of-local *) // fun token_int_parser ( p0: parser(ichar, ichar) ) : parser(ichar, token) = let // fun integer_make ( ics: List1(ichar) ) : token = let // val+list_cons(ic, ics) = ics // val p0 = ic.pos() val p1 = loop(p0, ics) where { fun loop ( p0: int, ics: List0(ichar) ) : int = ( case+ ics of | list_nil() => p0+1 | list_cons (ic, ics) => loop(ic.pos(), ics) // list_cons ) } // implement list_foldleft$fopr (res, ic) = 10 * res + (ic.char()-'0') // end of [list_foldleft$fopr] in // token_make_int ( p0, p1 , list_foldleft(ics, ic.char()-'0') ) // end (* end of [integer_make] *) // in seq1wth_parser_fun (list1_parser(digit_parser(p0)), integer_make) // end of [seq1wth_parser_fun] end // end of [token_int_parser] end // end of [local] (* ****** ****** *) // fun token_spchr_parser ( p0: parser(ichar, ichar) ) : parser(ichar, token) = ( seq1wth_parser_fun ( sat_parser_fun(p0, lam ic => isneqz(ic.char())) , lam(ic) => token_make_spchr(ic.pos(), ic.char()) ) (* seq1wth_parser_fun *) ) // (* ****** ****** *) fun token_parser ( p0: parser(ichar, ichar) ) : parser(ichar, token) = ( // token_ide_parser(p0) // || token_int_parser(p0) // || // token_spchr_parser(p0) // ) (* end of [token_parser] *) (* ****** ****** *) implement string_tokenize (cs) = let // val ics = string2icharlst(cs) val partok = token_parser(any_parser()) // in parser_apply_stream(list0_parser(partok), ics) end // end of [string_tokenize] (* ****** ****** *) implement tokenlst_tokenize (ts) = let // fun trans1 ( ts: List(token), res: tokenlst_vt ) : tokenlst_vt = ( case+ ts of | list_nil() => res | list_cons(t, ts) => ( case- t.token_node of (*case-*) | TOKide _ => trans1(ts, cons_vt(t, res)) | TOKint _ => trans1(ts, cons_vt(t, res)) | TOKspchr(c) => ( ifcase | c = '$' => trans2(t, ts, res) | c = '\\' => trans3(t, ts, res) | _(*else*) => trans1(ts, cons_vt(t, res)) ) ) ) (* end of [trans1] *) // and trans2 ( t0: token, ts1: List(token), res: tokenlst_vt ) : tokenlst_vt = ( case+ ts1 of | list_nil() => cons_vt(t0, res) | list_cons(t1, ts2) => ( case+ t1.token_node of (*case+*) | TOKide(ide) => let val loc = t0.token_loc+t1.token_loc val t01 = token_make_node(loc, TOKname_s(ide)) in trans1(ts2, cons_vt(t01, res)) end | TOKint(int) => let val loc = t0.token_loc+t1.token_loc val t01 = token_make_node(loc, TOKname_i(int)) in trans1(ts2, cons_vt(t01, res)) end | _(*rest-of-token*) => trans1(ts1, cons_vt(t0, res)) ) ) // and trans3 ( t0: token, ts1: List(token), res: tokenlst_vt ) : tokenlst_vt = ( case+ ts1 of | list_nil() => cons_vt(t0, res) | list_cons(t1, ts2) => ( case+ t1.token_node of (*case+*) | TOKspchr(c) => let val loc = t0.token_loc+t1.token_loc val t01 = token_make_node(loc, t1.token_node) in trans1(ts2, cons_vt(t01, res)) end | _(*rest-of-token*) => trans1(ts1, cons_vt(t0, res)) ) ) // in list_vt2t(list_vt_reverse(trans1(ts, list_vt_nil()))) end // end of [tokenlst_tokenize] (* ****** ****** *) (* end of [myatscc_lexer.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/myatscc_libats.dats0000644000175000017500000000024413431250607024076 0ustar brandonbrandon(* ****** ****** *) // // HX: for libats // (* ****** ****** *) // #include "prelude/DATS/filebas.dats" // (* ****** ****** *) (* end of [myatscc_libats.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/DATS/myatscc_evaler.dats0000644000175000017500000002037213431250607024102 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2017-04-22: ** For evaluating MYATSCCDEF *) (* ****** ****** *) // #include "share/atspre_staload.hats" // #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // (* #staload UN = $UNSAFE *) #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/myatscc.sats" // (* ****** ****** *) // extern fun token_eval(token): gvalue extern fun myexp_eval(myexp): gvalue and myexplst_eval(myexp): List0(gvalue) // (* ****** ****** *) extern fun myexp_eval_name_i(int): gvalue and myexp_eval_name_s(string): gvalue (* ****** ****** *) // extern fun myexp_eval_fcall (f: token, xs: List(myexp)): gvalue // (* ****** ****** *) implement token_eval (tok) = let // (* val () = println! ( "token_eval: tok = ", tok ) (* end of [val] *) *) // in // case+ tok.token_node of (*case+*) // | TOKeof() => GVnil() // | TOKint(int) => GVint(int) | TOKide(ide) => GVstring(ide) // | TOKspchr(chr) => GVchar(chr) // | TOKname_i(name) => GVint(name) | TOKname_s(name) => GVstring(name) // | TOKstring(str) => GVstring(str) // end // end of [token_eval] (* ****** ****** *) implement myexp_eval (exp) = let // (* val () = println! ( "myexp_eval: exp = ", exp ) (* end of [val] *) *) // in // case+ exp.myexp_node of (*case+*) // | EXPtok(tok) => token_eval(tok) | EXPname(tok) => ( case- tok.token_node of (* case- *) | TOKname_i(ind) => myexp_eval_name_i(ind) | TOKname_s(name) => myexp_eval_name_s(name) ) // | EXPfcall(tok, exps) => myexp_eval_fcall(tok, exps) // end of [EXPfcall] // end // end of [myexp_eval] (* ****** ****** *) local val the_name_i_env = ref(list0_nil()) in (* in-of-local *) implement myexp_eval_name_i (ind) = let // (* val () = println! ( "myexp_eval_name_i: ind = ", ind ) (* println! *) *) // val gvs = the_name_i_env[] // val opt = list0_nth_opt(gvs, ind) // in // case+ opt of | ~Some_vt (gv) => gv // Some_vt | ~None_vt() => GVnil(*void*) where { val () = prerrln!("**ERROR**:", "UNDEFINED($", ind, ")") } (* end of [None_vt] *) // end // end of [myexp_eval_name_i] (* ****** ****** *) implement the_name_i_env_get() = the_name_i_env[] implement the_name_i_env_initset(xs) = (the_name_i_env[] := xs) (* ****** ****** *) end // end of [local] (* ****** ****** *) local val the_name_s_env = () in (* in-of-local *) implement myexp_eval_name_s (name) = let (* val () = println! ( "myexp_eval_name_s: name = ", name ) (* println! *) *) // val opt = None_vt() // in // case+ opt of | ~Some_vt (gv) => gv // Some_vt | ~None_vt() => GVnil(*void*) where { val () = prerrln!("**ERROR**:", "UNDEFINED($", name, ")") } (* end of [None_vt] *) // end // end of [myexp_eval_name_s] end // end of [local] (* ****** ****** *) // implement fprint_val (out, _) = fprint(out, "") // (* ****** ****** *) local // typedef key = string and itm = myexpfun // #include "libats/ML/HATS/myhashtblref.hats" // val the_myexpfun_map = myhashtbl_make_nil(1024) // in (* in-of-local *) implement the_myexpfun_map_insert (name, fdef) = () where { // val-~None_vt() = the_myexpfun_map.insert(name, fdef) // } (* end of [the_myexpfun_map_insert] *) (* ****** ****** *) implement myexp_eval_fcall (tok, arg) = let // val- TOKname_s (name) = tok.token_node // val opt = the_myexpfun_map.search(name) // in // case+ opt of | ~Some_vt (fopr) => fopr(arg) where { val arg = list_map_fun (arg, myexp_eval) // end of [val] reassume myexpfun_type val arg = list_vt2t{gvalue}(arg) } (* end of [Some_vt] *) | ~None_vt() => GVnil(*void*) where { val () = prerrln!("**ERROR**:", "UNDEFINED($", name, ")") } (* end of [None_vt] *) // end // end of [myexp_eval_fcall] (* ****** ****** *) // local fun fname ( gvs: List(gvalue) ) : gvalue = ( // case+ gvs of | list_nil () => GVnil() // list_nil | list_cons (gv, _) => ( case+ gv of | GVstring(fnm) => let val fnm = g1ofg0(fnm) val pos = strrchr(fnm, '.') in GVstring ( if pos < 0 then string_copy(fnm) else string_make_substring(fnm, i2sz(0), g0i2u(pos)) // end of [if] ) (* GVstring *) end // end of [GVstring] | _(*non-GVstring*) => GVnil() ) // ) (* end of [fname] *) (* ****** ****** *) fun fname_ext ( gvs: List(gvalue) ) : gvalue = ( // case+ gvs of | list_nil () => GVnil() // list_nil | list_cons (gv, _) => ( case+ gv of | GVstring(fnm) => let val fnm = g1ofg0(fnm) val len = strlen(fnm) val pos = strrchr(fnm, '.') in GVstring ( if pos < 0 then ("") else let val pos = g1i2u(pos) in if pos < len then string_make_substring(fnm, succ(pos), pred(len-pos)) else "" // end of [if] end // end of [else] // end of [if] ) (* GVstring *) end // end of [GVstring] | _(*non-GVstring*) => GVnil() ) // ) (* end of [fname_ext] *) (* ****** ****** *) fun arglst ( gvs: List(gvalue) ) : gvalue = ( case+ gvs of | list_nil() => GVnil() | list_cons(gv1, gvs) => ( case+ gvs of | list_nil() => arglst_1(gv1) | list_cons(gv2, _) => arglst_2(gv1, gv2) ) ) (* end of [arglst] *) // and arglst_1 ( gv1: gvalue ) : gvalue = ( case+ gv1 of | GVint(i1) => let val args = the_name_i_env_get() in arglst_concat(arglst_drop(args, i1)) end // end of [GVint] | _(*non-GVint*) => GVnil() ) (* end of [arglst_1] *) // and arglst_2 ( gv1: gvalue, gv2: gvalue ) : gvalue = ( case+ gv1 of | GVint(i1) => ( case+ gv2 of | GVint(i2) => let val args = the_name_i_env_get() in arglst_concat ( arglst_take(arglst_drop(args, i1), i2-i1) ) (* arglst_concat *) end // end of [GVint] | _(*non-GVint*) => GVnil() ) | _(*non-GVint*) => GVnil() ) (* end of [arglst_2] *) // and arglst_drop ( xs: list0(gvalue), i: int ) : list0(gvalue) = // ( if (i > 0) then ( case+ xs of | list0_nil() => list0_nil() | list0_cons(_, xs) => arglst_drop(xs, i-1) ) else (xs) // end of [else] ) (* end of [arglst_drop] *) // and arglst_take ( xs: list0(gvalue), i: int ) : list0(gvalue) = // ( if (i > 0) then ( case+ xs of | list0_nil() => list0_nil() | list0_cons (x, xs) => list0_cons(x, arglst_take(xs, i-1)) // list0_cons ) else list0_nil(*void*) ) (* end of [arglst_take] *) // and arglst_concat ( xs: list0(gvalue) ) : gvalue = let // fun auxlst ( xs: list0(gvalue), i: &int >> int ) : list0(string) = let // val sep = " " // in // case+ xs of | list0_nil() => list0_nil() | list0_cons(x, xs) => ( case+ x of | GVstring(x) => let val xs = auxlst(xs, i) val xs = ( if i > 0 then list0_cons(sep, xs) else xs ) : list0(string) in i := i + 1; list0_cons(x, xs) end // end of [GVstring] | _(*non-GVstring*) => auxlst(xs, i) ) // end // end of [auxlst] // in let var i: int = 0 in GVstring(stringlst_concat(auxlst(xs, i))) end end // end of [arglst_concat] (* ****** ****** *) in (* in-of-local *) implement the_myexpfun_map_initize ((*void*)) = let // reassume myexpfun_type // in // the_myexpfun_map_insert ("fname", lam(gvs) => fname(gvs)); the_myexpfun_map_insert ("fname_ext", lam(gvs) => fname_ext(gvs)); // the_myexpfun_map_insert ("arglst", lam(gvs) => arglst(gvs)); // end // end of [the_myexpfun_map_initize] end // end of [local] (* ****** ****** *) end // end of [local] (* ****** ****** *) implement myexp_stringize (x0) = let // val gv = myexp_eval(x0) // in // case+ gv of | GVnil() => "" // | GVint(i) => itoa(i) // | GVchar(c) => string_sing(c) where { val c = g1ofg0(c) val () = assertloc(isneqz(c)) } (* end of [GVchar] *) // | GVstring(text) => text // | _(*rest-of-gvalue*) => "GV...(...)" // end // end of [myexp_stringize] (* ****** ****** *) implement myexpseq_stringize (xs) = res where { // val xs = g1ofg0(xs) // val ss = list_map_fun (xs, myexp_stringize) // val res = let val ss = $UN.list_vt2t(ss) in stringlst_concat(g0ofg1(ss)) end // end of [val] // val ((*freed*)) = list_vt_free(ss) // } (* end of [myexpseq_stringize] *) (* ****** ****** *) (* end of [myatscc_evaler.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/Makefile0000644000175000017500000000066113431250607021130 0ustar brandonbrandon###### # # A Simple Makefile # ###### CPF=cp -f RMF=rm -f MAKE=make ###### copy:: ; \ $(CPF) DATS/*.?ats BUILD/. ###### build:: ; \ $(MAKE) \ -C BUILD -f ../Makefile_build ###### testall:: ; \ $(MAKE) -C TEST testall ###### # clean:: ; $(RMF) ./BUILD/*.o clean:: ; $(RMF) ./BUILD/*.c clean:: ; $(RMF) ./BUILD/*.?ats # ###### # cleanall:: clean # cleanall:: ; $(RMF) ./BUILD/myatscc # ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/0000755000175000017500000000000013431250607022142 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/0000755000175000017500000000000013431250607026020 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/DATS/0000755000175000017500000000000013431250607026553 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/DATS/parcomb.dats0000644000175000017500000001641713431250607031064 0ustar brandonbrandon(* ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ** HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ** OTHER DEALINGS IN THE SOFTWARE. *) (* ****** ****** *) // (* ** A parsing combinator library *) // #define ATS_PACKNAME "ATSCNTRB.HX.parcomb" // (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start time: January, 2015 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../SATS/parcomb.sats" (* ****** ****** *) typedef pstate(t:t0p) = @{ // tstream= stream(t) , ncur= int // current position , nmax= int // maximal position ever reached // } (* end of [pstate] *) (* ****** ****** *) // extern fun{t:t0p} pstate_get_token (st: &pstate(t) >> _): (t) // overload .tget with pstate_get_token // (* ****** ****** *) implement {t}(*tmp*) pstate_get_token (st) = let // val ts = st.tstream // in // case+ !(ts) of | stream_cons (t, ts) => t where { val n1 = st.ncur + 1 val () = st.ncur := n1 val () = if n1 > st.nmax then st.nmax := n1 val () = st.tstream := ts } (* end of [stream_cons] *) | stream_nil () => let in $raise TOKEN_NONE(*void*) end // end of [stream_nil] // end // end of [pstate_get_token] (* ****** ****** *) // extern fun pstate_update {t:t0p} ( &pstate(t) >> _ , ts: stream(t), ncur: int ) : void // end-of-function // implement pstate_update {t}(st, ts, ncur) = let val ts = $UN.cast{stream(t)}(ts) in st.tstream := ts; st.ncur := ncur end (* end of [pstate_update] *) // (* ****** ****** *) // assume parser_type (t:t@ype, a:t@ype) = (&pstate(t) >> _) - (a) // (* ****** ****** *) exception PARFAIL of ( ptr(*tstream*), int(*ncur*), int(*nmax*) ) (* end of [PARFAIL] *) (* ****** ****** *) // fun {t:t0p} {a:t0p} parfail_raise (st: &pstate(t)): a = $raise PARFAIL($UN.cast{ptr}(st.tstream), st.ncur, st.nmax) // (* ****** ****** *) // implement {a} any_parser () = lam (st) => st.tget() // (* ****** ****** *) // implement {t}{a} ret_parser(x) = lam (st) => (x) // (* ****** ****** *) // implement {t}{a} sat_parser_fun (p0, ftest) = ( // lam (st) => let // val x0 = p0 (st) val test = ftest(x0) // in // if test then (x0) else parfail_raise(st) // end // end of [end] // ) (* end of [sat_parser_fun] *) // implement {t}{a} sat_parser_cloref (p0, ftest) = ( // lam (st) => let // val x0 = p0 (st) val test = ftest(x0) // in // if test then (x0) else parfail_raise(st) // end // end of [end] // ) (* end of [sat_parser_cloref] *) // (* ****** ****** *) implement {t}{a} alt_parser_parser (p1, p2) = ( // lam (st) => let // val stp = addr@st // val ts0 = st.tstream val ncur0 = st.ncur // typedef pstate = pstate(t) // in // try let val (pf, fpf | stp) = $UN.ptr_vtake{pstate}(stp) val res = p1 (st) prval ((*void*)) = fpf (pf) // in res end with | ~PARFAIL (ts, ncur, nmax) => let val (pf, fpf | stp) = $UN.ptr_vtake{pstate}(stp) val () = pstate_update (!stp, ts0, ncur0) val res = p2 (st) prval ((*void*)) = fpf (pf) in res end // end of [PARFAIL] // end // end of [lam] // ) (* end of [alt_parser_parser] *) (* ****** ****** *) implement {t}{a1,a2} seq_parser_parser (p1, p2) = ( // lam (st) => let val x1 = p1 (st) val x2 = p2 (st) in @(x1, x2) end // end of [let] // ) (* end of [seq_parser_parser] *) (* ****** ****** *) implement {t}{a1,a2} seq2_parser (p1, p2) = ( // lam (st) => let val x1 = p1 (st) val x2 = p2 (st) in @(x1, x2) end // end of [let] // ) (* end of [seq2_parser] *) implement {t}(*tmp*) {a1,a2,a3} seq3_parser (p1, p2, p3) = ( // lam (st) => let val x1 = p1 (st) val x2 = p2 (st) val x3 = p3 (st) in @(x1, x2, x3) end // end of [let] // ) (* end of [seq3_parser] *) (* ****** ****** *) // implement {t}{a,b} seq1wth_parser_fun (p, fopr) = lam (st) => let val x = p(st) in fopr(x) end implement {t}{a,b} seq1wth_parser_cloref (p, fopr) = lam (st) => let val x = p(st) in fopr(x) end // (* ****** ****** *) // implement {t}{a1,a2,b} seq2wth_parser_fun (p1, p2, fopr) = lam (st) => let val x1 = p1(st) val x2 = p2(st) in fopr(x1, x2) end // end of [seq2wth_parser_fun] implement {t}{a1,a2,b} seq2wth_parser_cloref (p1, p2, fopr) = lam (st) => let val x1 = p1(st) val x2 = p2(st) in fopr(x1, x2) end // end of [seq2wth_parser_cloref] // (* ****** ****** *) // implement {t}{a1,a2,a3,b} seq3wth_parser_fun ( p1, p2, p3, fopr ) = lam (st) => let val x1 = p1(st) val x2 = p2(st) val x3 = p3(st) in fopr(x1, x2, x3) end // end of [seq3wth_parser_fun] implement {t}{a1,a2,a3,b} seq3wth_parser_cloref ( p1, p2, p3, fopr ) = lam (st) => let val x1 = p1(st) val x2 = p2(st) val x3 = p3(st) in fopr(x1, x2, x3) end // end of [seq3wth_parser_cloref] // (* ****** ****** *) // implement {t}{a1,a2,a3,a4,b} seq4wth_parser_fun ( p1, p2, p3, p4, fopr ) = lam (st) => let val x1 = p1(st) val x2 = p2(st) val x3 = p3(st) val x4 = p4(st) in fopr(x1, x2, x3, x4) end // end of [seq4wth_parser_fun] implement {t}{a1,a2,a3,a4,b} seq4wth_parser_cloref ( p1, p2, p3, p4, fopr ) = lam (st) => let val x1 = p1(st) val x2 = p2(st) val x3 = p3(st) val x4 = p4(st) in fopr(x1, x2, x3, x4) end // end of [seq4wth_parser_cloref] // (* ****** ****** *) // implement {t}{a} skip_parser(px) = let typedef b = unit in // seq1wth_parser_fun (px, lam x => unit(*void*)) // end // end of [skip_parser] // implement {t}{a} skipall0_parser(px) = let // in // skipall1_parser(px) || ret_parser(unit(*void*)) // end // end of [list0_parser] // implement {t}{a} skipall1_parser(px) = ( // lam (st) => let val x = px(st) val py = skipall0_parser(px) in py(st) end // end of [let] // ) (* end of [skipall1_parser] *) // (* ****** ****** *) implement {t}{a} list0_parser(p0) = let // in // list1_parser(p0) || ret_parser(list_nil) // end // end of [list0_parser] (* ****** ****** *) implement {t}{a} list1_parser (p0) = ( // lam (st) => let val x = p0(st) val p1 = list0_parser(p0) val xs = p1(st) in list_cons(x, xs) end // end of [let] // ) (* end of [list1_parser] *) (* ****** ****** *) // implement {t}{a} option_parser(p0) = let // typedef b = Option(a) // in // seq1wth_parser_fun (p0, lam x => Some(x)) || ret_parser(None((*void*))) // end // end of [option_parser] // (* ****** ****** *) // implement {t}{a} parser_unlazy (lpx) = lam (st) => (!lpx)(st) // (* ****** ****** *) implement {t}{a} parser_apply_stream ( parser, ts ) = parser(st) where { // var st: pstate(t) // val () = st.tstream := ts // val () = st.ncur := 0 and () = st.nmax := 0 // } (* end of [parser_apply_stream] *) (* ****** ****** *) implement {t}{a} parser_apply2_stream ( parser, ts ) = (x0, ts) where { // var st: pstate(t) // val () = st.tstream := ts // val () = st.ncur := 0 and () = st.nmax := 0 // val x0 = parser(st) val ts = st.tstream // } (* end of [parser_apply2_stream] *) (* ****** ****** *) (* end of [parcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/mylibies.hats0000644000175000017500000000033613431250607030520 0ustar brandonbrandon(* ****** ****** *) // (* Package: atscntrb-hx-parcomb *) // (* ****** ****** *) // #staload PARCOMB = "./SATS/parcomb.sats" #staload _(*PARCOMB*) = "./DATS/parcomb.dats" // (* ****** ****** *) (* end of [mylibies.hats *)ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/TEST/0000755000175000017500000000000013431250607026577 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/TEST/tokenizer.dats0000644000175000017500000000631313431250607031471 0ustar brandonbrandon(* ****** ****** *) /* HX: For testing parcomb */ (* ****** ****** *) // #include "share/atspre_staload.hats" // staload UN = $UNSAFE // (* ****** ****** *) // staload "./../SATS/parcomb.sats" staload _ = "./../DATS/parcomb.dats" // (* ****** ****** *) #define :: list_cons #define i2c int2char0 (* ****** ****** *) // fun idfst_test (i: int): bool = ( isalpha(i) orelse i2c(i) = '_' ) fun idrst_test (i: int): bool = ( isalnum(i) orelse i2c(i) = '_' ) // fun idfst_parser ( p0: parser(int, int) ) : parser(int, int) = sat_parser_fun(p0, idfst_test) fun idrst_parser ( p0: parser(int, int) ) : parser(int, int) = sat_parser_fun(p0, idrst_test) // (* ****** ****** *) local // fun ident_make ( c: int, cs: List0(int) ) : string = let val cs = list_map_fun(c::cs, lam c => i2c(c)) val ident = string_make_list($UN.castvwtp1{List0(charNZ)}(cs)) val ((*freed*)) = list_vt_free(cs) in strnptr2string(ident) end // end of [ident_make] // in // fun ident_parser ( p0: parser(int, int) ) : parser(int, string) = ( seq2wth_parser_fun (idfst_parser(p0), list0_parser(idrst_parser(p0)), ident_make) ) (* end of [seq2wth_parser_fun] *) // end // end of [local] (* ****** ****** *) fun digit_parser ( p0: parser(int, int) ) : parser(int, int) = ( seq1wth_parser_fun (sat_parser_fun(p0, lam i => isdigit(i)), lam i => i2c(i)-'0') ) (* end of [digit_parser] *) (* ****** ****** *) local fun int_of_digits ( xs: List0(int) ) : int = let // implement list_foldleft$fopr (acc, x) = 10 * acc + x // in list_foldleft (xs, 0) end // end of [int_of_digits] in (* in-of-local *) // fun integer_parser ( p0: parser(int, int) ) : parser(int, int) = seq1wth_parser_fun(list1_parser(digit_parser(p0)), int_of_digits) // end // end of [local] (* ****** ****** *) fun spechar_parser ( p0: parser(int, int) ) : parser(int, int) = sat_parser_fun(p0, lam i => i >= 0) (* ****** ****** *) // datatype token = | TOKide of string | TOKint of (int) | TOKspchr of (char) // (* ****** ****** *) // extern fun fprint_token (out: FILEref, tok: token): void overload fprint with fprint_token // implement fprint_token (out, tok) = ( case+ tok of | TOKide(x) => fprint! (out, "TOKide(", x, ")") | TOKint(x) => fprint! (out, "TOKint(", x, ")") | TOKspchr(x) => fprint! (out, "TOKspchr(", x, ")") ) // implement fprint_val = fprint_token // (* ****** ****** *) // fun token_parser ( p0: parser(int, int) ) : parser(int, token) = ( // seq1wth_parser_fun (ident_parser(p0), lam x => TOKide(x)) || seq1wth_parser_fun (integer_parser(p0), lam x => TOKint(x)) || seq1wth_parser_fun (spechar_parser(p0), lam x => TOKspchr(i2c(x))) // ) (* end of [token_parser] *) // (* ****** ****** *) // staload "libats/libc/SATS/stdio.sats" // (* ****** ****** *) // fun cstream_gen ( // argless ) : stream(int) = $delay(stream_cons(getchar0(), cstream_gen())) // (* ****** ****** *) implement main0((*void*)) = { // val ts0 = cstream_gen() // val ptok = token_parser(any_parser()) // val ptoklst = list0_parser(ptok) // val toks = parser_apply_stream(ptoklst, ts0) // val out = stdout_ref val ((*void*)) = fprintln!(out, "toks = ", toks) // } (* end of [main0] *) (* ****** ****** *) (* end of [tokenizer] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/TEST/Makefile0000644000175000017500000000115213431250607030236 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### MYLIBIES := MYLIBIES += ./../mylibies.sats MYLIBIES += ./../mylibies.dats ###### # all:: \ tokenizer regress:: \ tokenizer; $(CAT) tokenizer.dats | ./$< tokenizer: \ tokenizer.dats ; \ $(PATSCC) -O2 -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -o $@ $< $(MYLIBIES) # ###### CAT=cat RMF=rm -f ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### cleanall:: clean cleanall:: ; $(RMF) tokenizer ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/mylibies.sats0000644000175000017500000000033113431250607030526 0ustar brandonbrandon(* ****** ****** *) // #define ATS_STALOADFLAG 0 // #define ATS_PACKNAME "ATSCNTRB.HX.parcomb" // (* ****** ****** *) // local #include"./SATS/parcomb.sats" in end // (* ****** ****** *) (* end of [mylibies.sats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/SATS/0000755000175000017500000000000013431250607026572 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/SATS/parcomb.sats0000644000175000017500000001020213431250607031104 0ustar brandonbrandon(* ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ** HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ** OTHER DEALINGS IN THE SOFTWARE. *) (* ****** ****** *) // (* ** A parsing combinator library *) // #define ATS_PACKNAME "ATSCNTRB.HX.parcomb" // (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start time: February, 2014 // (* ****** ****** *) // // HX: // [parser(t,a)] // returns a value of type [a] // by consuming some tokens of type [t] // abstype parser_type(t:t@ype, a:t@ype) = ptr // typedef parser(t:t@ype, a:t@ype) = parser_type(t, a) // (* ****** ****** *) symintr && || (* ****** ****** *) // (* HX: out-of-tokens *) exception TOKEN_NONE of () // (* ****** ****** *) fun {a:t0p} any_parser(): parser(a, a) (* ****** ****** *) fun {t:t0p} {a:t0p} ret_parser(x: a): parser(t, a) (* ****** ****** *) fun {t:t0p} {a:t0p} sat_parser_fun ( parser(t, a) , ftest: (a) - bool ) : parser(t, a) fun {t:t0p} {a:t0p} sat_parser_cloref ( parser(t, a) , ftest: (a) - bool ) : parser(t, a) (* ****** ****** *) // fun {t:t0p} {a:t0p} alt_parser_parser ( parser(t, a), parser(t, a) ) : parser(t, a) // end-of-fun // overload || with alt_parser_parser // (* ****** ****** *) // fun {t:t0p} {a1,a2:t0p} seq_parser_parser ( parser(t, a1), parser(t, a2) ) : parser(t, (a1,a2)) // end-of-fun // overload && with seq_parser_parser // (* ****** ****** *) // fun {t:t0p} {a1 ,a2:t0p} seq2_parser ( parser(t, a1), parser(t, a2) ) : parser(t, (a1,a2)) // end-of-fun fun {t:t0p} {a1 ,a2 ,a3:t0p} seq3_parser ( parser(t, a1), parser(t, a2), parser(t, a3) ) : parser(t, (a1,a2,a3)) // end-of-fun // (* ****** ****** *) // fun {t:t0p} {a,b:t0p} seq1wth_parser_fun ( p: parser(t, a) , fopr: (a) - b ) : parser(t, b) // end-of-function fun {t:t0p} {a,b:t0p} seq1wth_parser_cloref ( p: parser(t, a) , fopr: (a) - b ) : parser(t, b) // end-of-function // fun {t:t0p} {a1,a2,b:t0p} seq2wth_parser_fun ( p1: parser(t, a1) , p2: parser(t, a2) , fopr: (a1, a2) - b ) : parser(t, b) // end-of-function fun {t:t0p} {a1,a2,b:t0p} seq2wth_parser_cloref ( p1: parser(t, a1) , p2: parser(t, a2) , fopr: (a1, a2) - b ) : parser(t, b) // end-of-function // fun {t:t0p} {a1,a2,a3,b:t0p} seq3wth_parser_fun ( p1: parser(t, a1) , p2: parser(t, a2) , p3: parser(t, a3) , fopr: (a1, a2, a3) - b ) : parser(t, b) // end-of-function fun {t:t0p} {a1,a2,a3,b:t0p} seq3wth_parser_cloref ( p1: parser(t, a1) , p2: parser(t, a2) , p3: parser(t, a3) , fopr: (a1, a2, a3) - b ) : parser(t, b) // end-of-function // fun {t:t0p} {a1,a2,a3,a4,b:t0p} seq4wth_parser_fun ( p1: parser(t, a1) , p2: parser(t, a2) , p3: parser(t, a3) , p4: parser(t, a4) , fopr: (a1, a2, a3, a4) - b ) : parser(t, b) // end-of-function fun {t:t0p} {a1,a2,a3,a4,b:t0p} seq4wth_parser_cloref ( p1: parser(t, a1) , p2: parser(t, a2) , p3: parser(t, a3) , p4: parser(t, a4) , fopr: (a1, a2, a3, a4) - b ) : parser(t, b) // end-of-function // (* ****** ****** *) // fun {t:t0p} {a:t0p} skip_parser (p0: parser(t, a)): parser(t, unit) // fun {t:t0p} {a:t0p} skipall0_parser (p0: parser(t, a)): parser(t, unit) // fun {t:t0p} {a:t0p} skipall1_parser (p0: parser(t, a)): parser(t, unit) // (* ****** ****** *) // fun {t:t0p} {a:t0p} list0_parser (p0: parser(t, a)): parser(t, List0(a)) // fun {t:t0p} {a:t0p} list1_parser (p0: parser(t, a)): parser(t, List1(a)) // fun {t:t0p} {a:t0p} option_parser (p0: parser(t, a)): parser(t, Option(a)) // (* ****** ****** *) // fun {t:t@ype} {a:t@ype} parser_unlazy (lpx: lazy(parser(t, a))): parser(t, a) // (* ****** ****** *) // fun {t:t0p} {a:t0p} parser_apply_stream(parser(t, a), stream(t)): (a) // fun {t:t0p} {a:t0p} parser_apply2_stream (parser: parser(t, a), ts: stream(t)): (a, stream(t)) // (* ****** ****** *) (* end of [parcomb.sats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/mylibies.dats0000644000175000017500000000033113431250607030507 0ustar brandonbrandon(* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // #define ATS_PACKNAME "ATSCNTRB.HX.parcomb" // (* ****** ****** *) // local #include"./DATS/parcomb.dats" in end // (* ****** ****** *) (* end of [mylibies.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/mydepies.dats0000644000175000017500000000030513431250607030512 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-25: // for [atscntrb-hx-parcomb] // (* ****** ****** *) // // This file is left to be empty intensionally. // (* ****** ****** *) (* end of [mydepies.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/package.json0000644000175000017500000000260213431250607030306 0ustar brandonbrandon{ "_from": "atscntrb-hx-parcomb@1.0.5", "_id": "atscntrb-hx-parcomb@1.0.5", "_inBundle": false, "_integrity": "sha1-FzEdodSRK5Rt6lsIQnU8BV/Uyek=", "_location": "/atscntrb-hx-parcomb", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, "raw": "atscntrb-hx-parcomb@1.0.5", "name": "atscntrb-hx-parcomb", "escapedName": "atscntrb-hx-parcomb", "rawSpec": "1.0.5", "saveSpec": null, "fetchSpec": "1.0.5" }, "_requiredBy": [ "#USER", "/" ], "_resolved": "https://registry.npmjs.org/atscntrb-hx-parcomb/-/atscntrb-hx-parcomb-1.0.5.tgz", "_shasum": "17311da1d4912b946dea5b0842753c055fd4c9e9", "_spec": "atscntrb-hx-parcomb@1.0.5", "_where": "/home/hwxi/Research/ATS-Postiats/utils/myatscc", "author": { "name": "Hongwei Xi", "email": "gmhwxi@gmail.com" }, "bundleDependencies": false, "dependencies": {}, "deprecated": false, "description": "This package is for experimenting with parsing combinators...", "keywords": [ "ATS", "parsing", "combinator" ], "license": "MIT", "main": "N/A", "name": "atscntrb-hx-parcomb", "note-for-me": "The package is stored at ${PATSHOME}/npm-utils/contrib/libats-hwxi/parcomb/.", "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/npm-utils/contrib/libats-/hwxi/parcomb" }, "scripts": {}, "version": "1.0.5" } ATS2-Postiats-gmp-0.3.13/./utils/myatscc/node_modules/atscntrb-hx-parcomb/README.md0000644000175000017500000000057713431250607027310 0ustar brandonbrandon# Parsing Combinators ## Project Description This is just a standard implementation of parsing combinators. One should be able to make use of it by simply studying the interface in SATS/parcomb.sats and its implementation in DATS/parcomb.dats. For a concrete example of using this package, please see the myatscc utility (located in the local directory ${PATSHOME}/utils/myatscc) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/.keeper0000644000175000017500000000000013431250607020727 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/SATS/0000755000175000017500000000000013431250607020237 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/myatscc/SATS/myatscc.sats0000644000175000017500000001174113431250607022602 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: April, 2017 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #staload "libats/ML/SATS/basis.sats" // (* ****** ****** *) // #define MYATSCCDEF_key "##myatsccdef=" // (* HX-2017-04-22: This is the default used by [myatscc] *) // #define MYATSCCDEF_def "patscc -cleanaft \ -D_GNU_SOURCE -DATS_MEMALLOC_LIBC \ -I${PATSHOME}/contrib -o $fname($1)_$fname_ext($1) $1 -latslib" // #define MYATSCCDEF_GC_def "patscc -cleanaft \ -D_GNU_SOURCE -DATS_MEMALLOC_GCBDW \ -I${PATSHOME}/contrib -o $fname($1)_$fname_ext($1) $1 -latslib -lgc" // (* ****** ****** *) // fun MYATSCCDEF_def_get((*global*)): string // (* ****** ****** *) // abstype loc_type = ptr typedef loc_t = loc_type // (* ****** ****** *) // fun loc_t_left(loc_t): int fun loc_t_right(loc_t): int // overload .left with loc_t_left overload .right with loc_t_right // (* ****** ****** *) // fun loc_t_make (p0: int, p1: int): loc_t // fun loc_t_combine (x1: loc_t, x2: loc_t): loc_t // overload + with loc_t_combine // (* ****** ****** *) // fun print_loc_t: loc_t -> void and prerr_loc_t: loc_t -> void // fun fprint_loc_t: fprint_type(loc_t) // overload print with print_loc_t overload prerr with prerr_loc_t overload fprint with fprint_loc_t // (* ****** ****** *) // datatype token_node = // | TOKeof of () // | TOKide of string // | TOKint of ( int ) // | TOKspchr of char // | TOKname_i of int | TOKname_s of string | TOKstring of string // where token = $rec { token_loc= loc_t , token_node= token_node } (* end of [where] *) // typedef tokenlst = List0(token) vtypedef tokenlst_vt = List0_vt(token) // (* ****** ****** *) // fun token_eof(): token // (* ****** ****** *) // fun token_make_ide ( p0: int, p1: int, ide: string ) : token // fun token_make_int (p0: int, p1: int, int: int): token // fun token_make_spchr (p0: int, chr: char): token // (* ****** ****** *) // fun print_token: token -> void and prerr_token: token -> void // fun fprint_token: fprint_type(token) // overload print with print_token overload prerr with prerr_token overload fprint with fprint_token // (* ****** ****** *) // fun string_tokenize(inp: string): tokenlst // (* ****** ****** *) fun tokenlst_tokenize(ts: List(token)): tokenlst (* ****** ****** *) // datatype myexp_node = // | EXPtok of token // | EXPname of (token) // | EXPfcall of (token, myexplst) // where myexp = $rec { myexp_loc=loc_t , myexp_node=myexp_node } and myexplst = List0(myexp) // (* ****** ****** *) // fun myexp_tok(token): myexp fun myexp_name(token): myexp // (* ****** ****** *) // fun print_myexp: myexp -> void and prerr_myexp: myexp -> void // fun fprint_myexp: fprint_type(myexp) fun fprint_myexplst: fprint_type(List(myexp)) // overload print with print_myexp overload prerr with prerr_myexp overload fprint with fprint_myexp overload fprint with fprint_myexplst of 10 // (* ****** ****** *) // fun myexpseq_parse(tokenlst): myexplst // (* ****** ****** *) // fun the_name_i_env_get ((*void*)): list0(gvalue) fun the_name_i_env_initset (xs: list0(gvalue)): void // fun the_name_i_env_initize {n:pos} (argc: int(n), argv: !argv(n)): void // (* ****** ****** *) // abstype myexpfun_type = ptr // typedef myexpfun = myexpfun_type // local // assume myexpfun_type = (List(gvalue)) - gvalue // in // nothing end // end of [local] // (* ****** ****** *) // fun the_myexpfun_map_insert (name: string, fdef: myexpfun): void // fun the_myexpfun_map_initize((*void*)): void // (* ****** ****** *) // fun myexp_stringize(myexp): string fun myexpseq_stringize(list0(myexp)): string // (* ****** ****** *) // fun myatscc_getdef((*void*)): string fun myatscc_evaldef((*void*)): string // fun myatscc_main {n:pos} (argc: int(n), argv: !argv(n)): int // (* ****** ****** *) (* end of [myatscc.sats] *) ATS2-Postiats-gmp-0.3.13/./utils/myatscc/README0000644000175000017500000000025413431250607020346 0ustar brandonbrandon###### ## ## The command [myatscc] is just a wrapper ## for convenience around the command [atsopt] ## ###### --dry : for a dryrun ###### ###### end of [README] ###### ATS2-Postiats-gmp-0.3.13/./utils/myatscc/Makefile_build0000644000175000017500000000245513431250607022312 0ustar brandonbrandon# # A simple Makefile # ###### CC=gcc ###### NPM=npm ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt PATSLIB=$(PATSHOME)/ccomp/atslib/lib ###### PATSCC2=\ $(PATSCC) -verbose -atsccomp "$(CC)" \ -O2 -I$(PATSHOME) -I$(PATSHOME)/ccomp/runtime -D_GNU_SOURCE -DATS_MEMALLOC_LIBC ###### # export \ PATSHOMELOCS=\ ./node_modules:./../../node_modules # ###### all:: regress:: cleanall:: ###### MAIN = MAIN += myatscc_main_dats.c # MAIN += myatscc_loc_t_dats.c # MAIN += myatscc_lexer_dats.c # MAIN += myatscc_parser_dats.c # MAIN += myatscc_evaler_dats.c # MAIN += myatscc_getdef_dats.c PARCOMB = PARCOMB += myatscc_parcomb_sats.c PARCOMB += myatscc_parcomb_dats.c # MYLIBATS = # MYLIBATS += myatscc_libats.dats ###### # all:: \ myatscc # myatscc: \ $(MAIN) \ $(PARCOMB) ; \ $(PATSCC2) -o $@ $(MAIN) $(PARCOMB) # cleanall:: ; $(RMF) myatscc # ###### %_sats.c: %.sats; $(PATSOPT) --output $@ --static $< %_dats.c: %.dats; $(PATSOPT) --output $@ --dynamic $< ###### # npm-install:: ; \ $(NPM) install atscntrb-hx-parcomb@1.0.5 # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### # cleanall:: clean # # cleanall:: ; $(RMF) -r node_modules # ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./utils/emacs/0000755000175000017500000000000013431250607017112 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/emacs/ats2-mode.el0000644000175000017500000004056313431250607021237 0ustar brandonbrandon;; ats2-mode.el -- Major mode to edit ATS2 source code ;; Copyright (C) 2007 Stefan Monnier ;; updated and modified by Matthew Danish 2008-2013 ;; Author: Stefan Monnier ;; Keywords: ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; Todo: ;; - font-lock ;; - imenu ;; - outline ;; - indentation ;;; Code: (require 'cl) (require 'compile) (when (not (boundp 'xemacsp)) (setq xemacsp (boundp 'xemacs-logo))) (defvar ats-mode-syntax-table (let ((st (make-syntax-table))) ;; (*..*) for nested comments. (modify-syntax-entry ?\( "() 1n" st) (modify-syntax-entry ?\) ")( 4n" st) (modify-syntax-entry ?* ". 23n" st) ;; Not sure how to do // for single-line comments. ;; The current setting means that (/ and /* start a comment as well :-( (modify-syntax-entry ?/ ". 12b" st) (modify-syntax-entry ?\n "> b" st) ;; Strings. (modify-syntax-entry ?\" "\"" st) ;; Same problem as in Ada: ' starts a char-literal but can appear within ;; an identifier. So we can either default it to "string" syntax and ;; let font-lock-syntactic-keywords correct its uses in symbols, or ;; the reverse. We chose the reverse, which fails more gracefully. ;; Oh, and ' is also overloaded for '( '{ and '[ :-( (modify-syntax-entry ?\' "_ p" st) ;; (modify-syntax-entry ?\{ "(}" st) (modify-syntax-entry ?\} "){" st) (modify-syntax-entry ?\[ "(]" st) (modify-syntax-entry ?\] ")[" st) ;; Skip over @/# when going backward-sexp over @[...], #[...], ;; #ident and $ident. (modify-syntax-entry ?\@ ". p" st) (modify-syntax-entry ?\# ". p" st) (modify-syntax-entry ?\$ ". p" st) ;; Same thing for macro&meta programming. (modify-syntax-entry ?\` ". p" st) (modify-syntax-entry ?\, ". p" st) ;; Just a guess for now. (modify-syntax-entry ?\\ "\\" st) ;; Handle trailing +/-/* in keywords. ;; (modify-syntax-entry ?+ "_" st) ;; (modify-syntax-entry ?- "_" st) ;; (modify-syntax-entry ?* "_" st) ;; Symbolic identifiers are kind of like in SML, which is poorly ;; supported by Emacs. Worse: there are 2 kinds, one where "!$#?" are ;; allowed and one where "<>" are allowed instead. Hongwei, what's that ;; all about? (modify-syntax-entry ?% "." st) (modify-syntax-entry ?& "." st) (modify-syntax-entry ?+ "." st) (modify-syntax-entry ?- "." st) (modify-syntax-entry ?. "." st) ;; (modify-syntax-entry ?/ "." st) ; Already covered above for comments. (modify-syntax-entry ?: "." st) (modify-syntax-entry ?= "." st) ;; (modify-syntax-entry ?@ "." st) ; Already defined above. (modify-syntax-entry ?~ "." st) ;; (modify-syntax-entry ?` "." st) ; Already defined above. (modify-syntax-entry ?^ "." st) (modify-syntax-entry ?| "." st) ;; (modify-syntax-entry ?* "." st) ; Already covered above for comments. (modify-syntax-entry ?< "." st) (modify-syntax-entry ?> "." st) (modify-syntax-entry ?! "." st) ;; (modify-syntax-entry ?$ "." st) ; Already defined above. ;; (modify-syntax-entry ?# "." st) ; Already defined above. (modify-syntax-entry ?? "." st) ;; Real punctuation? (modify-syntax-entry ?: "." st) (modify-syntax-entry ?\; "." st) st)) (defvar ats-mode-font-lock-syntax-table (let ((st (copy-syntax-table ats-mode-syntax-table))) (modify-syntax-entry ?_ "w" st) st)) ;; Font-lock. (defface ats-font-lock-static-face '(;; (default :inherit font-lock-type-face) (t (:foreground "SkyBlue" :weight normal))) "Face used for static-related parts of code." :group 'ats-font-lock-faces) (defvar ats-font-lock-static-face 'ats-font-lock-static-face) (defface ats-font-lock-metric-face '(;; (default :inherit font-lock-type-face) (t (:foreground "Wheat" :weight bold))) "Face used for termination metrics." :group 'ats-font-lock-faces) (defvar ats-font-lock-metric-face 'ats-font-lock-metric-face) (defface ats-font-lock-keyword-face '(;; (default :inherit font-lock-keyword-face) (t (:foreground "Cyan" :weight normal))) "Face used for keywords." :group 'ats-font-lock-faces) (defvar ats-font-lock-keyword-face 'ats-font-lock-keyword-face) (defface ats-font-lock-c-face '(;; (default :inherit font-lock-comment-face) (t (:foreground "Pink" :weight normal))) "Face used for C code." :group 'ats-font-lock-faces) (defvar ats-font-lock-c-face 'ats-font-lock-c-face) (defun ats-context-free-search (regexp &optional limit) "Use inside a parenthesized expression to find a regexp at the same level." (let ((nest-lvl 0) foundp) (while (and (not (eobp)) (or (null limit) (not (> (point) limit))) (not (minusp nest-lvl)) (not (setq foundp (and (zerop nest-lvl) (looking-at regexp))))) (cond ((looking-at "(\\|\\[\\|{") (incf nest-lvl)) ((looking-at ")\\|\\]\\|}") (decf nest-lvl))) (forward-char 1)) foundp)) (defun ats-font-lock-mark-block () (let ((lines 64)) ; bit of a hack (set-mark (save-excursion (forward-line lines) (point))) (forward-line (- lines)))) (defun ats-font-lock-c-code-search (&optional limit) (interactive) ;; Font-lock mode works on regions that may not be large enough to ;; find both {% and %}. Really, they should be treated like ;; comments and put into the syntax table. Then the syntactic pass ;; would take care of C code. However, there is only room for 2 ;; kinds of comments in the table, and those are taken. So the ;; keyword pass can try to get them. But keyword pass doesn't ;; handle multiline keywords very well (because of region cutoff). ;; We can ignore the limit while searching, but coloration will not ;; happen outside the region anyway. So it's going to be a little ;; screwy no matter what. Not sure what to do about it. (setq limit nil) (let (begin end) (when (re-search-forward "%{" limit t) (setq begin (match-beginning 0)) (when (re-search-forward "%}" limit t) (setq end (match-end 0)) (when (and begin end) (store-match-data (list begin end)) (point)))))) (defun ats-font-lock-static-search (&optional limit) (interactive) (when (null limit) (setq limit (point-max))) (let (foundp begin end (key-begin 0) (key-end 0) pt) (flet ((store () (store-match-data (list begin end key-begin key-end)))) ;; attempt to find some statics to highlight and store the ;; points beginning and ending the region to highlight. needs ;; to be a loop in order to handle cases like ( foo : type ) ;; where initially it considers ( .. | .. ) but finds no '|' ;; char so it must then go inside and look for sub-regions like ;; ": type". ;; ;; Each branch of the cond must be sure to make progress, the ;; point must advance, or else infinite-loop bugs may arise. (while (and (not foundp) (< (point) limit)) (setq key-begin 0 key-end 0) (cond ((re-search-forward "(\\|:[^=]\\|{\\|[^[:space:].:-]<" limit t) (setq pt (setq begin (match-beginning 0))) (when pt (goto-char pt)) (cond ;; handle { ... } ((looking-at "{") (forward-char 1) (cond ((save-excursion (forward-word -1) (looking-at "where")) ;; except when preceeded by "where" keyword (setq pt nil)) ((re-search-forward "}" limit t) (setq end (match-end 0)) (store) (setq pt end) (setq foundp t)) (t (setq pt nil)))) ;; handle ( ... | ... ) ((looking-at "(") (forward-char 1) (incf begin) (cond ((null (ats-context-free-search "|\\|)" limit)) (setq pt nil)) ((looking-at "|") (setq end (match-end 0)) (store) (setq foundp t)) ((looking-at ")") (setq pt nil) ;; no | found so scan for other things inside ( ) (goto-char (1+ begin))))) ;; handle ... : ... ((looking-at ":[^=]") (forward-char 1) (let ((nest-lvl 0) finishedp) ;; emacs22 only: ;;(ats-context-free-search ")\\|\\_<=\\_>\\|," limit) (ats-context-free-search ")\\|[^=]=[^=]\\|,\\|\n\\|\\]" limit) (setq begin (1+ begin) end (point) key-begin (1- begin) key-end begin) (store) (setq foundp t))) ((looking-at "[^[:space:].:-]<") (forward-char 2) (incf begin) (cond ((re-search-forward ">" limit t) (setq end (match-end 0)) (store) (setq pt end) (setq foundp t)) (t (setq pt nil)))) (t (setq pt nil) (forward-char 1) (setq foundp t)))) (t (setq foundp t) (setq pt nil))))) pt)) (defvar ats-word-keywords '( "absprop" "absview" "abstype" "abst0ype" "abstbox" "absvtbox" "abstflt" "absvtflt" "abstflat" "absvtflat" "absvtype" "absvt0ype" "absviewtype" "absviewt0ype" "assume" "absimpl" "reassume" "absreimpl" "staload" "dynload" "as" "in" "of" "op" "and" "end" ;; "endlet" ;; "endwhere" ;; "endlocal" "begin" "break" "continue" "classdec" "datasort" "datatype" "dataprop" "dataview" "datavtype" "dataviewtype" "exception" "extern" "extype" "extval" "fn" "fnx" "fun" "prfn" "prfun" "praxi" "castfn" "rec" "val" "prval" "var" "prvar" "case" "scase" "if" "sif" "then" "else" "nonfix" "prefix" "postfix" "infix" "infixl" "infixr" "symelim" "symintr" "overload" "implmnt" "implement" "primplmnt" "primplement" "lam" "llam" "fix" "let" "local" "macdef" "macrodef" "sortdef" "sexpdef" "tkindef" "sta" "stacst" "stadef" "stavar" "type" "t0ype" "vtype" "vt0ype" "viewtype" "viewt0ype" "try" "with" "when" "where" "for" "while" "typedef" "propdef" "viewdef" "vtypedef" "viewtypedef" "withtype" "withprop" "withview" "withvtype" "withviewtype")) (defun wrap-word-keyword (w) (concat "\\<" w "\\>")) (defvar ats-special-keywords '("$arrpsz" "$arrptrsize" "$delay" "$ldelay" "$effmask" "$effmask_ntm" "$effmask_exn" "$effmask_ref" "$effmask_wrt" "$effmask_all" "$extern" "$extkind" "$extype" "$extype_struct" "$extval" "$lst" "$lst_t" "$lst_vt" "$list" "$list_t" "$list_vt" "$rec" "$rec_t" "$rec_vt" "$record" "$record_t" "$record_vt" "$tup" "$tup_t" "$tup_vt" "$tuple" "$tuple_t" "$tuple_vt" "$raise" "$showtype" "$myfilename" "$mylocation" "$myfunction" "#assert" "#define" "#elif" "#elifdef" "#elifndef" "#else" "#endif" "#error" "#if" "#ifdef" "#ifndef" "#print" "#then" "#undef" "#include" "#staload" "#dynload" "#require")) (defun wrap-special-keyword (w) (concat "\\" w "\\>")) (defvar ats-keywords (append (list "\\<\\(s\\)?case\\(+\\|*\\)?\\>") (mapcar 'wrap-word-keyword ats-word-keywords) (mapcar 'wrap-special-keyword ats-special-keywords))) (defvar ats-font-lock-keywords (append '((ats-font-lock-c-code-search (0 'ats-font-lock-c-face t)) ;; ("%{[[:print:][:cntrl:]]*%}" (0 'ats-font-lock-c-face)) ;; ("[^%]\\({[^|}]*|?[^}]*}\\)" (1 'ats-font-lock-static-face)) ;; ("[^']\\(\\[[^]|]*|?[^]]*\\]\\)" (1 'ats-font-lock-static-face)) ("\\.<[^>]*>\\." (0 'ats-font-lock-metric-face)) (ats-font-lock-static-search (0 'ats-font-lock-static-face) (1 'ats-font-lock-keyword-face))) (list (list (mapconcat 'identity ats-keywords "\\|") '(0 'ats-font-lock-keyword-face))))) (defvar ats-font-lock-syntactic-keywords '(("(\\(/\\)" (1 ". 1b")) ; (/ does not start a comment. ("/\\(*\\)" (1 ". 3")) ; /* does not start a comment. ("\\(/\\)///" (0 "< nb")) ; Start a comment with no end. ;; Recognize char-literals. ("[^[:alnum:]]\\('\\)\\(?:[^\\]\\|\\\\.[[:xdigit:]]*\\)\\('\\)" (1 "\"'") (2 "\"'")) )) (define-derived-mode c/ats-mode c-mode "C/ATS" "Major mode to edit C code embedded in ATS code." (unless (local-variable-p 'compile-command) (set (make-local-variable 'compile-command) (let ((file buffer-file-name)) (format "patscc -tcats %s" file))) (put 'compile-command 'permanent-local t)) (setq indent-line-function 'c/ats-mode-indent-line)) (defun c/ats-mode-indent-line (&optional arg) (let (c-start c-end) (save-excursion (if (re-search-backward "%{[^$]?" 0 t) (setq c-start (match-end 0)) (setq c-start 0))) (save-excursion (if (re-search-forward "%}" (point-max) t) (setq c-end (match-beginning 0)) (setq c-start (point-max)))) (save-restriction ;; restrict view of file to only the C code for the benefit of ;; the cc-mode indentation engine. (narrow-to-region c-start c-end) (c-indent-line arg)))) ;;;###autoload (define-derived-mode ats-mode fundamental-mode "ATS2" "Major mode to edit ATS2 source code." (set (make-local-variable 'font-lock-defaults) '(ats-font-lock-keywords nil nil ((?_ . "w") (?= . "_")) nil (font-lock-syntactic-keywords . ats-font-lock-syntactic-keywords) (font-lock-mark-block-function . ats-font-lock-mark-block))) (set (make-local-variable 'comment-start) "(*") (set (make-local-variable 'comment-continue) " *") (set (make-local-variable 'comment-end) "*)") (setq indent-line-function 'tab-to-tab-stop) (setq tab-stop-list (loop for x from 2 upto 120 by 2 collect x)) (setq indent-tabs-mode nil) (local-set-key (kbd "RET") 'newline-and-indent-relative) (unless (local-variable-p 'compile-command) (set (make-local-variable 'compile-command) (let ((file buffer-file-name)) (format "patscc -tcats %s" file))) (put 'compile-command 'permanent-local t)) (local-set-key (kbd "C-c C-c") 'compile) (cond ;; Emacs 21 ((and (< emacs-major-version 22) (not xemacsp)) (pushnew '("\\(syntax error: \\)?\\([^\n:]*\\): \\[?[0-9]*(line=\\([0-9]*\\), offs=\\([0-9]*\\))\\]?" 2 3 4) compilation-error-regexp-alist)) ;; Emacs 22+ has an improved compilation mode ((and (>= emacs-major-version 22) (not xemacsp)) (pushnew '(ats "\\(syntax error: \\)?\\([^\n:]*\\): \\[?[0-9]*(line=\\([0-9]*\\), offs=\\([0-9]*\\))\\]?\\(?: -- [0-9]*(line=\\([0-9]*\\), offs=\\([0-9]*\\))\\)?" 2 (3 . 5) (4 . 6)) compilation-error-regexp-alist-alist) (pushnew 'ats compilation-error-regexp-alist)) ;; XEmacs has something different, to be contrary (xemacsp (pushnew '(ats ("\\(syntax error: \\)?\\([^\n:]*\\): \\[?[0-9]*(line=\\([0-9]*\\), offs=\\([0-9]*\\))\\]?" 2 3 4)) compilation-error-regexp-alist-alist) (unless (eql 'all compilation-error-regexp-systems-list) (pushnew 'ats compilation-error-regexp-systems-list)) (compilation-build-compilation-error-regexp-alist) (message "WARNING! XEMACS IS DEAD AND DEPRECATED.")))) (defun newline-and-indent-relative () (interactive) (newline) (indent-to-column (save-excursion (forward-line -1) (back-to-indentation) (current-column)))) ;;;autoload (add-to-list 'auto-mode-alist '("\\.\\(s\\|d\\|h\\)ats\\'" . ats-mode)) (provide 'ats-mode) ;;; end of [ats2-mode.el] ATS2-Postiats-gmp-0.3.13/./utils/emacs/.keeper0000644000175000017500000000000013431250607020354 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/emacs/flymake-ats2.el0000644000175000017500000000477613431250607021751 0ustar brandonbrandon;; ATS Flymake Mode ;; Detects syntax and type errors and reports their location. ;; ;; Install: add the following to your .emacs ;; ;; (require 'flymake-ats2) ;; ;; The ATSHOME environment variable may need to be set from within emacs: ;; ;; (setenv "ATSHOME" "/path/to/ats2") ;; ;; If you use PATSHOME instead of ATSHOME, please set PATSHOME as follows: ;; ;; (setenv "PATSHOME" "/path/to/ats2") ;; ;; Author: Quackzone ;; The original code was posted by 'Quackzone' to ATS-subreddit (2012) ;; Modified by Brandon Barker and Hongwei Xi ;; (require 'flymake) (defvar flymake-ats2-command "patscc" "Command used to check an ATS2 file for errors") (defvar flymake-ats2-command-options "-tcats" "Options passed to the command used to check a file for errors") (defun flymake-ats2-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list flymake-ats2-command (list flymake-ats2-command-options local-file)))) ;; List of file extensions that trigger flymake-ats2. (push '(".+\\.sats$" flymake-ats2-init flymake-simple-cleanup) flymake-allowed-file-name-masks) (push '(".+\\.dats$" flymake-ats2-init flymake-simple-cleanup) flymake-allowed-file-name-masks) (push '(".+\\.hats$" flymake-ats2-init flymake-simple-cleanup) flymake-allowed-file-name-masks) ;; Regular expressions for detecting and reporting errors. (push '("^\\(syntax error\\): *\\([^ ]+\\):.*line=\\([0-9]+\\).*$" 2 3 nil 1) flymake-err-line-patterns) (push '("^\\(.+.dats\\|.+.sats\\|.+.hats\\):.*line=\\([0-9]+\\).*\\(error.+\\)$" 1 2 nil 3) flymake-err-line-patterns) (defun flymake-ats2-load () (flymake-mode t) ;; Utility key bindings for navigating errors reported by flymake. (local-set-key (kbd "C-c C-d") 'flymake-display-err-menu-for-current-line) (local-set-key (kbd "C-c C-n") 'flymake-goto-next-error) (local-set-key (kbd "C-c C-p") 'flymake-goto-prev-error) ;; Prevents flymake from throwing a configuration error ;; This must be done because atsopt returns a non-zero return value ;; when it finds an error, flymake expects a zero return value. (defadvice flymake-post-syntax-check (before flymake-force-check-was-interrupted) (setq flymake-check-was-interrupted t)) (ad-activate 'flymake-post-syntax-check)) (add-hook 'ats2-mode-hook 'flymake-ats2-load) (provide 'ats2-flymake) ;;; flymake-ats2.el ends here ATS2-Postiats-gmp-0.3.13/./utils/emacs/flycheck-ats2.el0000644000175000017500000000672613431250607022106 0ustar brandonbrandon;;; flycheck-ats2.el --- Flycheck: ATS2 support -*- lexical-binding: t; -*- ;; Copyright (C) 2015 Mark Laws ;; Author: Mark Laws ;; URL: http://github.com/drvink/flycheck-ats2 ;; Keywords: convenience, tools, languages ;; Version: 1.0 ;; Package-Requires: ((emacs "24.1") (flycheck "0.22")) ;; This file is not part of GNU Emacs. ;; Permission is hereby granted, free of charge, to any person obtaining a copy ;; of this software and associated documentation files (the "Software"), to deal ;; in the Software without restriction, including without limitation the rights ;; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ;; copies of the Software, and to permit persons to whom the Software is ;; furnished to do so, subject to the following conditions: ;; ;; The above copyright notice and this permission notice shall be included in ;; all copies or substantial portions of the Software. ;; ;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ;; SOFTWARE. ;;; Commentary: ;; This Flycheck extension provides an `ats2' syntax checker. ;; ;; # Setup ;; ;; Add the following to your init file: ;; ;; (with-eval-after-load 'flycheck ;; (flycheck-ats2-setup)) ;; ;; The ATSHOME environment variable may need to be set from within Emacs: ;; ;; (setenv "ATSHOME" "/path/to/ats2") ;; ;; If you use PATSHOME instead of ATSHOME, please set PATSHOME as follows: ;; ;; (setenv "PATSHOME" "/path/to/ats2") ;;; Code: (require 'flycheck) (flycheck-define-checker ats2 "ATS2 checker using patscc." :command ("patscc" "-tcats" source-inplace) :error-patterns ((error ;; This will catch all single-line messages: ;; ;; filename: 3120(line=151, offs=1) -- 3124(line=151, offs=5): error(3): the applied dynamic expression is of non-function type: S2Ecst(bool_t0ype) ;; filename: 3120(line=151, offs=1) -- 3124(line=151, offs=5): error(3): the dynamic expression cannot be assigned the type [S2Ecst(bool_t0ype)]. ;; ;; ...and multi-line messages of the same form that end with a colon, in ;; which case we assume there will be two following lines that should be ;; grouped with the first line, e.g.: ;; ;; filename: 3120(line=151, offs=1) -- 3124(line=151, offs=5): error(3): mismatch of static terms (tyleq): ;; The actual term is: S2Eerr() ;; The needed term is: S2Ecst(bool_t0ype) ;; file name bol (file-name) ;; offset of error start ?: space (1+ num) ;; line, column; start of error span "(line=" line ?, space "offs=" column ?\) ;; offset of error end space "--" space (1+ num) ;; line, column; end of error span "(line=" (1+ num) ?, space "offs=" (1+ num) "):" space ;; error message; up to three lines long (message (+? not-newline) (or (: ?: ?\n (repeat 2 (: (1+ not-newline) ?\n))) ?\n)))) :modes ats-mode) ;;;###autoload (defun flycheck-ats2-setup () "Set up Flycheck ATS2. Add `ats2' to `flycheck-checkers'." (interactive) (add-to-list 'flycheck-checkers 'ats2)) (provide 'ats2-flycheck) ;;; flycheck-ats2.el ends here ATS2-Postiats-gmp-0.3.13/./utils/libatsopt/0000755000175000017500000000000013431250607020023 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/libatsopt/DATS/0000755000175000017500000000000013431250607020556 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/libatsopt/DATS/.keeper0000644000175000017500000000000013431250607022020 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/libatsopt/SATS/0000755000175000017500000000000013431250607020575 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/libatsopt/SATS/.keeper0000644000175000017500000000000013431250607022037 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/atscc/0000755000175000017500000000000013431250607017117 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/atscc/BUILD/0000755000175000017500000000000013431250607017756 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/atscc/BUILD/.keeper0000644000175000017500000000000013431250607021220 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/atscc/DATS/0000755000175000017500000000000013431250607017652 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/atscc/DATS/atscc_print.dats0000644000175000017500000002037313431250607023045 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* Start time: July, 2013 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" staload _(*anon*) = "libats/libc/DATS/stdlib.dats" // (* ****** ****** *) // #staload UN = $UNSAFE // (* ****** ****** *) // #staload "./../SATS/atscc.sats" // (* ****** ****** *) #staload _(*anon*) = "./atscc_util.dats" (* ****** ****** *) macdef unsome(opt) = stropt_unsome(,(opt)) macdef issome(opt) = stropt_is_some(,(opt)) (* ****** ****** *) typedef ca = commarg (* ****** ****** *) implement fprint_commarg (out, ca) = let // macdef prstr(x) = fprint_string(out, ,(x)) // macdef propt (opt) = let // val opt = ,(opt) in // if issome(opt) then fprint_string(out, unsome(opt)) end // end of [propt] // in // case+ ca of // | CAhats() => prstr "CAhats()" | CAvats() => prstr "CAvats()" // | CAccats() => prstr "CAccats()" | CAtcats() => prstr "CAtcats()" // | CAhelp() => prstr "CAhelp()" // | CAgline() => prstr "CAgline()" // | CAverbose() => prstr "CAverbose()" // | CAcleanaft() => prstr "CAcleanaft()" // | CAatsccomp(opt) => ( prstr "CAatsccomp("; propt (opt); prstr ")" ) // | CAdats(0, opt) => ( prstr "CAdats("; propt (opt); prstr ")" ) | CAdats(_, opt) => ( prstr "CAddats("; propt (opt); prstr ")" ) // | CAiats(0, opt) => ( prstr "CAiats("; propt (opt); prstr ")" ) | CAiats(_, opt) => ( prstr "CAiiats("; propt (opt); prstr ")" ) // | CAfilats(0, opt) => ( prstr "CAfilats(0, "; propt (opt); prstr ")" ) | CAfilats(_, opt) => ( prstr "CAfilats(1, "; propt (opt); prstr ")" ) // | CA_tlcalopt_disable() => prstr "CA_tlcalopt_disable" | CA_constraint_ignore() => prstr "CA_constraint_ignore" // | CA_CCOMPitm(itm) => ( prstr "CA_CCOMPitm("; prstr (itm); prstr ")" ) // (* | _(*rest-of-commarg*) => (prstr"CA...("; prstr"..."; prstr")") *) // end // end of [fprint_commarg] (* ****** ****** *) implement fprint_commarglst (out, cas) = let // implement fprint_val (out, x) = fprint_commarg(out, x) // implement fprint_list$sep<> (out) = fprint_string(out, " ") // in fprint_list (out, cas) end // end of [fprint_ccomarglst] (* ****** ****** *) implement fprint_atsoptline (out, cas, ca0) = let // fun aux ( out: FILEref, ca: commarg, i: int ) : void = let in // case+ ca of // | CAtcats () => { val () = fprint (out, " --typecheck") } // | CAdats (_, opt) => ( if issome (opt) then aux_dats (out, unsome(opt)) ) // | CAiats (_, opt) => ( if issome (opt) then aux_iats (out, unsome(opt)) ) // | _ => () // end (* end of [aux] *) // and aux_dats ( out: FILEref, def0: string ) : void = { val () = fprint! (out, " -DATS ", def0) } and aux_iats ( out: FILEref, path: string ) : void = { val () = fprint! (out, " -IATS ", path) } // fun auxlst ( out: FILEref, cas: commarglst, i: int ) : void = let in // case+ cas of // | list_cons (ca, cas) => let val () = aux (out, ca, i) in auxlst (out, cas, i+1) end // end of [list_cons] // | list_nil ((*void*)) => () // end // end of [auxlst] // val atsopt = atsopt_get () // val () = fprint_string (out, atsopt) // val () = auxlst (out, cas, 1(*i*)) // in // case+ ca0 of | CAvats () => { val () = fprintln! (out, " --version") } | CAfilats (knd, opt) => if issome (opt) then { val name = unsome(opt) val outname = atscc_outname (knd, name) val () = fprint! (out, " --output ", outname) val () = if knd = 0 then fprintln! (out, " --static ", name) // end of [val] val () = if knd > 0 then fprintln! (out, " --dynamic ", name) // end of [val] } (* end of [if] *) | _ (* rest-of-CA *) => ((*void*)) // end // end of [fprint_atsoptline] (* ****** ****** *) implement fprint_atsoptline_all (out, cas0) = let // fun auxlst ( out: FILEref, cas1: commarglst_vt, cas2: commarglst ) : void = let in // case+ cas2 of | list_nil ((*void*)) => let val () = list_vt_free (cas1) in (*nothing*) end (* end of [list_nil] *) // | list_cons (ca2, cas2) => ( case+ ca2 of // | CAvats () => let val () = fprint_atsoptline (out, $UN.list_vt2t(cas1), ca2) // end of [val] in auxlst (out, cas1, cas2) end (* end of [CAvats] *) | CAtcats () => let val cas1 = list_vt_snoc (cas1, ca2) in auxlst (out, cas1, cas2) end (* end of [CAtcats] *) // | CAdats _ => let val cas1 = list_vt_snoc (cas1, ca2) in auxlst (out, cas1, cas2) end (* end of [CAdats] *) | CAiats _ => let val cas1 = list_vt_snoc (cas1, ca2) in auxlst (out, cas1, cas2) end (* end of [CAiats] *) // | CAfilats _ => let val () = fprint_atsoptline (out, $UN.list_vt2t(cas1), ca2) // end of [val] in auxlst (out, cas1, cas2) end (* end of [CAfilats] *) // | _(*ignored*) => auxlst (out, cas1, cas2) // ) (* end of [list_cons] *) // end // end of [auxlst] // in auxlst (out, list_vt_nil, cas0) end // end of [fprint_atsoptline_all] (* ****** ****** *) implement fprint_atsccompline (out, cas0) = let // fun aux ( out: FILEref, ca: commarg, i: int ) : void = let in // case+ ca of // | CAhats () => () | CAvats () => () // | CAccats () => () | CAtcats () => () // | CAhelp () => () // | CAgline () => () // | CAcleanaft () => () // | CAverbose _ => () // | CAatsccomp _ => () // | CAdats (0, opt) => () | CAdats (_, opt) => ( if issome (opt) then { val () = fprint! (out, " -D ", unsome(opt)) } else ((*void*)) // end of [if] ) // | CAiats (0, opt) => () | CAiats (_, opt) => ( if issome (opt) then { val () = fprint! (out, " -I ", unsome(opt)) } else ((*void*)) // end of [if] ) // | CAfilats (0, opt) => ( if issome (opt) then aux_fsats (out, unsome(opt)) ) | CAfilats (_, opt) => ( if issome (opt) then aux_fdats (out, unsome(opt)) ) // | CA_tlcalopt_disable () => () | CA_constraint_ignore () => () // | CA_CCOMPitm (itm) => aux_CCOMPitm (out, itm) // end // end of [aux] and aux_fsats (out: FILEref, path: string): void = { val outname = atscc_outname (0(*sta*), path) val () = fprint (out, ' ') val () = fprint_string (out, outname) } and aux_fdats (out: FILEref, path: string): void = { val outname = atscc_outname (1(*dyn*), path) val () = fprint (out, ' ') val () = fprint_string (out, outname) } and aux_CCOMPitm (out: FILEref, item: string): void = { val () = fprint (out, ' ') val () = fprint_string (out, item) } fun auxlst ( out: FILEref, cas: commarglst, i: int ) : void = let in // case+ cas of | list_cons (ca, cas) => let val () = aux (out, ca, i) in auxlst (out, cas, i+1) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [auxlst] // val-list_cons (ca, cas) = cas0 // val () = fprint (out, atsccomp_get ()) // val () = auxlst (out, cas, 1(*i*)) val () = fprint_newline (out) // in (* nothing *) end // end of [fprint_atsccompline] (* ****** ****** *) (* end of [atscc_print.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/atscc/DATS/atscc_util.dats0000644000175000017500000001450513431250607022666 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2013 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) // #define ATSOPT_DEFAULT "patsopt" // (* ****** ****** *) // staload "./../SATS/atscc.sats" // macdef unsome(opt) = stropt_unsome(,(opt)) macdef issome(opt) = stropt_is_some(,(opt)) // (* ****** ****** *) implement {}(*tmp*) atsopt_get() = let // val def = $STDLIB.getenv_gc ("PATSOPT") // in // if strptr2ptr(def) > 0 then strptr2string(def) else let // prval() = strptr_free_null(def) in ATSOPT_DEFAULT // end (* end of [if] *) // end of [if] // end // end of [atsopt_get] (* ****** ****** *) #define ATSOPT_USAGE "\ Usage: patscc [options] ... // Options: // -h: This flag is a short form of [--help]. // --help: This flag is for inquiring usage information on atscc. // -hats: This flag is for inquiring usage information on atsopt. // -vats: This flag is for inquiring version information on atsopt. // -ccats: This flag indicates that atscc is only required to compile files containing ATS code into corresponding files containing C code and it should not attempt to compile the generated C code. // -tcats: This flag indicates that atscc is only required to typecheck files containing ATS code. // --gline: This flag is passed to atsopt for generating line pragma information in the generated C code. // -verbose: This flag indicates that each command-line executed by atscc should be printed out. // -cleanaft: This flag indicates that each C file generated by atsopt should be removed once subsequent C-compilation is finished. // -atsccomp: This flag indicates that the next argument is to be interpreted as the C-compilation command subsequently employed for processing the generated C files. If this flag is not present, then the value of the environment variable ATSCCOMP is interpreted as the C-compilation command. // -DATS: // This flag indicates that the next argument, which should be a name or name/value pair (separated by the symbol =), is to be passed to atsopt as a top-level definition. // -DDATS: // This flag indicates that the next argument, which should be a name or name/value pair (separated by the symbol =), is to be passed to both atsopt and the subsequent C-compilation command as a top-level definition. // -IATS: This flag indicates that the next argument should be passed to atsopt as an include-path. // -IIATS: This flag indicates that the next argument should be passed to both atsopt and the subsequent C-compilation command as an include-path. // -fsats: This flag indicates that the next argument should be interpreted as the name of a file containing static ATS code. Note that this flag is unnecessary if the name of the file ends with the extension .sats. // -fdats: This flag indicates that the next argument should be interpreted as the name of a file containing dynamic ATS code. Note that this flag is unnecessary if the name of the file ends with the extension .dats. // --tlcalopt-disable: This flag is passed to patsopt to disable tail-call optimization, which is needed for atscc-compilers such as atscc2erl and atscc2scm. // (* // // HX: // no support yet: // --constraint-export: This flag indicates that the constaints generated during typechecking are to be exported so as to allows them be to solved externally. *) // --constraint-ignore: This flag indicates that constaint-solving is to be ignored during typechecking. Note that this is a dangerous flag and it is only suggested to be used with proper justification (such as constraint-solving being performed externally) // " (* end of [ATSOPT_USAGE] *) // implement {}(*tmp*) atsopt_print_usage() = fprint_string (stdout_ref, ATSOPT_USAGE) // (* ****** ****** *) // (* #define ATSCCOMP_DEFAULT "\ gcc -std=c99 -D_XOPEN_SOURCE \ -I${PATSHOME} -I${PATSHOME}/ccomp/runtime \ -L${PATSHOME}/ccomp/atslib/lib -L${PATSHOME}/ccomp/atslib/lib64 \ " *) #define ATSCCOMP_DEFAULT "\ gcc -std=c99 -D_XOPEN_SOURCE \ -I${PATSHOME} -I${PATSHOME}/ccomp/runtime -L${PATSHOME}/ccomp/atslib/lib \ " // (* ****** ****** *) (* (* ** HX: this one is suggested by Barry Schwartz, MN, USA *) #define ATSCCOMP_DEFAULT2 "\ gcc -std=c99 \ -D_XOPEN_SOURCE \ -I${PATSHOME} -I${PATSHOME}/ccomp/runtime \ -L${PATSHOME}/ccomp/atslib/lib -L${PATSHOME}/ccomp/atslib/lib64 \ -Wl,--warn-common \ " *) (* ****** ****** *) implement {}(*tmp*) atsccomp_get () = let // val def = $STDLIB.getenv_gc ("PATSCCOMP") // in // if strptr2ptr (def) > 0 then strptr2string (def) else let prval () = strptr_free_null(def) in ATSCCOMP_DEFAULT end // end of [else] // end // end of [atsccomp_get] (* ****** ****** *) implement {}(*tmp*) atsccomp_get2 (cas) = let (* val () = println! ("atsccomp_get2") *) in // case+ cas of // | list_cons (ca, cas) => ( case+ ca of | CAatsccomp (opt) => ( if issome(opt) then unsome(opt) else atsccomp_get2(cas) // end of [if] ) (* end of [CAatsccomp] *) | _ (*void*) => atsccomp_get2(cas) ) (* end of [list_cons] *) // | list_nil() => atsccomp_get() // end // end of [atsccomp_get2] (* ****** ****** *) (* end of [atscc_util.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/atscc/DATS/atscc_main.dats0000644000175000017500000005332013431250607022633 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* Start time: July, 2013 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" staload UNISTD = "libats/libc/SATS/unistd.sats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) staload "./../SATS/atscc.sats" (* ****** ****** *) staload _(*anon*) = "./atscc_util.dats" (* ****** ****** *) typedef ca = commarg (* ****** ****** *) // macdef unsome(opt) = stropt_unsome(,(opt)) macdef issome(opt) = stropt_is_some(,(opt)) // (* ****** ****** *) // macdef isfilsats(name) = filename_test_ext(,(name), "sats") macdef isfildats(name) = filename_test_ext(,(name), "dats") macdef isfilhats(name) = filename_test_ext(,(name), "hats") // (* ****** ****** *) fun{} argv_getopt_at {n:int}{i:nat} ( n: int n, argv: !argv(n), i: int i ) : stropt = ( if i < n then stropt_some (argv[i]) else stropt_none() ) (* end of [argv_getopt_at] *) (* ****** ****** *) local // // HX: this is a bit heavy-handed, but ... // fun auxmain ( path: string, sfx: string ) : string = let // val ( fpf | base ) = filename_get_base (path) val base2 = g1ofg0 ($UN.strptr2string (base)) val nb = string1_length (base2) // val (fpf2 | ext) = filename_get_ext (base2) val isext = strptr2ptr(ext) > 0 // #define CHR1 '\001' // val res = ( if isext then let // val ne = string0_length ($UN.strptr2string (ext)) val len = nb+i2sz(2) // HX: 2 -> .c // implement string_tabulate$fopr<> (i) = let // val i = g1ofg0(i) val ne1 = succ (ne) // in // case+ 0 of | _ when (i+ne1 = nb) => '_' | _ when (i < nb) => base2[i] | _ when (i = nb+i2sz(0)) => '.' | _ when (i = nb+i2sz(1)) => 'c' | _ => CHR1 // end // end of [string_tabulate$fwork] // in strnptr2string(string_tabulate(len)) end else let // val sfx = g1ofg0(sfx) val len = nb+string1_length(sfx) // implement string_tabulate$fopr<> (i) = let // val i = g1ofg0(i) in // case+ 0 of | _ when (i < nb) => base2[i] | _ when (i < len) => let extern praxi __assert{i,j:int} (size_t i, size_t j): [i >= j] void prval () = __assert (i, nb) in sfx[i-nb] end // end of [_ when ...] | _ => CHR1 // end // end of [string_tabulate$fwork] // in strnptr2string(string_tabulate(len)) end // end of [if] ) : string // end of [val] // prval () = fpf(base) and () = fpf2(ext) // in res end // end of [auxmain] in (* in of [local] *) implement atscc_outname (flag, path) = let in // if flag = 0 then auxmain (path, "@sats.c") else auxmain (path, "@dats.c") // end of [if] // end // end of [atscc_outname] end // end of [local] (* ****** ****** *) local fun aux0 {n:int} {i:nat | i <= n} .<3*(n-i)+2>. ( n: int n , argv: !argv(n) , i: int i , res: commarglst_vt ) : commarglst_vt = ( if i < n then aux1 (n, argv, i, res) else res ) // end of [aux0] and aux1 {n:int} {i:nat | i < n} .<3*(n-i)+1>. ( n: int n , argv: !argv(n) , i: int i , res: commarglst_vt ) : commarglst_vt = let // val str0 = argv[i] // in // case+ 0 of // | _ when (str0="-h") => let val res = list_vt_cons{ca}(CAhelp(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] // | _ when (str0="--help") => let val res = list_vt_cons{ca}(CAhelp(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] // | _ when (str0="-hats") => let val res = list_vt_cons{ca}(CAhats(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] // | _ when (str0="-vats") => let val res = list_vt_cons{ca}(CAvats(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] // | _ when (str0="-ccats") => let val res = list_vt_cons{ca}(CAccats(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] | _ when (str0="-tcats") => let val res = list_vt_cons{ca}(CAtcats(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] // | _ when (str0="--gline") => let val res = list_vt_cons{ca}(CAgline(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] // | _ when (str0="-verbose") => let val res = list_vt_cons{ca}(CAverbose(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] // | _ when (str0="-cleanaft") => let val res = list_vt_cons{ca}(CAcleanaft(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] // | _ when (str0="-atsccomp") => aux1_atsccomp (n, argv, i+1, res) // | _ when (str0="-IATS") => aux1_iats (n, argv, i+1, res) | _ when (str0="-IIATS") => aux1_iiats (n, argv, i+1, res) // | _ when (str0="-DATS") => aux1_dats (n, argv, i+1, res) | _ when (str0="-DDATS") => aux1_ddats (n, argv, i+1, res) // | _ when (str0="-fsats") => aux1_fsats (n, argv, i+1, res) | _ when (str0="-fdats") => aux1_fdats (n, argv, i+1, res) // | _ when isfilsats(str0) => aux1_fsats (n, argv, i+0, res) | _ when isfildats(str0) => aux1_fdats (n, argv, i+0, res) // | _ when isfilhats(str0) => // HX-2014-10-17: aux1_fdats (n, argv, i+0, res) // hats -> dats // | _ when ( str0="--tlcalopt-disable" ) => let val res = list_vt_cons{ca}(CA_tlcalopt_disable(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] | _ when ( str0="--constraint-ignore" ) => let val res = list_vt_cons{ca}(CA_constraint_ignore(), res) in aux0 (n, argv, i+1, res) end // end of [_ when ...] // | _ => let val res = list_vt_cons{ca}(CA_CCOMPitm(str0), res) // end of [val] in aux0 (n, argv, i+1, res) end // end of [_] // end // end of [aux1] (* ****** ****** *) and aux1_atsccomp {n:int} {i:nat | i <= n} .<3*(n-i)+0>. ( n: int n , argv: !argv(n) , i: int i , res: commarglst_vt ) : commarglst_vt = let val opt = argv_getopt_at (n, argv, i) val res = list_vt_cons{ca}(CAatsccomp(opt), res) in if i < n then aux0 (n, argv, i+1, res) else res end // end of [aux1_atsccomp] (* ****** ****** *) and aux1_iats {n:int} {i:nat | i <= n} .<3*(n-i)+0>. ( n: int n , argv: !argv(n) , i: int i , res: commarglst_vt ) : commarglst_vt = let val opt = argv_getopt_at (n, argv, i) val res = list_vt_cons{ca}(CAiats(0, opt), res) in if i < n then aux0 (n, argv, i+1, res) else res end // end of [aux1_iats] and aux1_iiats {n:int} {i:nat | i <= n} .<3*(n-i)+0>. ( n: int n , argv: !argv(n) , i: int i , res: commarglst_vt ) : commarglst_vt = let val opt = argv_getopt_at (n, argv, i) val res = list_vt_cons{ca}(CAiats(1, opt), res) in if i < n then aux0 (n, argv, i+1, res) else res end // end of [aux1_iiats] (* ****** ****** *) and aux1_dats {n:int} {i:nat | i <= n} .<3*(n-i)+0>. ( n: int n , argv: !argv(n) , i: int i , res: commarglst_vt ) : commarglst_vt = let val opt = argv_getopt_at (n, argv, i) val res = list_vt_cons{ca}(CAdats(0, opt), res) in if i < n then aux0 (n, argv, i+1, res) else res end // end of [aux1_dats] and aux1_ddats {n:int} {i:nat | i <= n} .<3*(n-i)+0>. ( n: int n , argv: !argv(n) , i: int i , res: commarglst_vt ) : commarglst_vt = let val opt = argv_getopt_at (n, argv, i) val res = list_vt_cons{ca}(CAdats(1, opt), res) in if i < n then aux0 (n, argv, i+1, res) else res end // end of [aux1_ddats] (* ****** ****** *) and aux1_fsats {n:int} {i:nat | i <= n} .<3*(n-i)+0>. ( n: int n , argv: !argv(n) , i: int i , res: commarglst_vt ) : commarglst_vt = let val opt = argv_getopt_at (n, argv, i) val res = list_vt_cons{ca}(CAfilats(0, opt), res) in if i < n then aux0 (n, argv, i+1, res) else res end // end of [aux1_fsats] and aux1_fdats {n:int} {i:nat | i <= n} .<3*(n-i)+0>. ( n: int n , argv: !argv(n) , i: int i , res: commarglst_vt ) : commarglst_vt = let val opt = argv_getopt_at (n, argv, i) val res = list_vt_cons{ca}(CAfilats(1, opt), res) in if i < n then aux0 (n, argv, i+1, res) else res end // end of [aux1_fdats] in (* in of [local] *) implement atsccproc_commline (argc, argv) = let // prval ( ) = lemma_argv_param (argv) // val res = list_vt_nil{ca}() val res = aux0 (argc, argv, 0, res) val res = list_vt_reverse (res) // in list_vt2t(res) end // end of [atsccproc_commline] end (* end of [local] *) (* ****** ****** *) local vtypedef res = stringlst_vt fun aux ( ca: commarg, i: int, res: &res >> _ ) : void = let in // case+ ca of // | CAtcats() => { val ( ) = res := list_vt_cons{string}("--typecheck", res) // end of [val] } // | CAgline() => { val ( ) = res := list_vt_cons{string}("--gline", res) } // | CAdats(_, opt) => ( if issome (opt) then aux_dats (unsome(opt), res) ) // | CAiats(_, opt) => ( if issome (opt) then aux_iats (unsome(opt), res) ) // | CA_tlcalopt_disable() => { val ( ) = res := list_vt_cons{string}("--tlcalopt-disable", res) // end of [val] } // | CA_constraint_ignore() => { val ( ) = res := list_vt_cons{string}("--constraint-ignore", res) // end of [val] } // | _ => () // end (* end of [aux] *) // and aux_dats ( path: string, res: &res >> _ ) : void = { val () = res := list_vt_cons{string}("-DATS", res) val () = res := list_vt_cons{string}( path , res) } and aux_iats ( path: string, res: &res >> _ ) : void = { val () = res := list_vt_cons{string}("-IATS", res) val () = res := list_vt_cons{string}( path , res) } // fun auxlst ( cas: commarglst, i: int, res: &res >> _ ) : void = let in // case+ cas of | list_nil () => ((*void*)) // list_nil | list_cons (ca, cas) => let val () = aux(ca, i, res) in auxlst(cas, i+1, res) end // end of [list_cons] // end // end of [auxlst] fun auxout (cas: commarglst): bool = ( case+ cas of | list_nil () => true // list_nil | list_cons (ca, cas) => ( case+ ca of CAtcats() => false | _ => auxout(cas) ) ) // end of [auxout] in (* in of [local] *) implement atsoptline_make (cas, ca0) = let // var res: res = list_vt_nil() val () = auxlst(cas, 1(*i*), res) // val () = ( case+ ca0 of | CAhats() => { val () = res := list_vt_cons{string}("--help", res) } | CAvats() => { val () = res := list_vt_cons{string}("--version", res) } | CAfilats(knd, opt) => if issome (opt) then { val name = unsome(opt) val outname = atscc_outname (knd, name) // val () = if auxout (cas) then { val () = res := list_vt_cons{string}("--output", res) // end of [val] val () = res := list_vt_cons{string}(outname, res) } // end of [if] // end of [val] // val () = if knd = 0 then res := list_vt_cons{string}("--static", res) // end of [val] val () = if knd > 0 then res := list_vt_cons{string}("--dynamic", res) // end of [val] val () = res := list_vt_cons{string}(name, res) // } (* end of [if] *) | _ (*rest-of-commarg*) => ((*void*)) ) : void // end of [val] // in list_vt_reverse(res) end // end of [atsoptline_make] end // end of [local] (* ****** ****** *) local // vtypedef res = stringlst_vt vtypedef ress = List0_vt (stringlst_vt) // macdef snoc = list_vt_snoc // fun auxlst ( cas1: commarglst_vt, cas2: commarglst, ress: &ress >> _ ) : void = let in // case+ cas2 of // | list_nil() => let val () = list_vt_free (cas1) in (*nothing*) end (* end of [list_nil] *) // | list_cons (ca2, cas2) => ( case+ ca2 of // | CAhats() => let val res = atsoptline_make ($UN.list_vt2t(cas1), ca2) val () = ress := list_vt_cons{res}(res, ress) in auxlst (cas1, cas2, ress) end (* end of [CAhats] *) // | CAvats() => let val res = atsoptline_make ($UN.list_vt2t(cas1), ca2) val () = ress := list_vt_cons{res}(res, ress) in auxlst (cas1, cas2, ress) end (* end of [CAvats] *) // | CAtcats() => let val cas1 = snoc (cas1, ca2) in auxlst (cas1, cas2, ress) end (* end of [CAtcats] *) // | CAgline() => let val cas1 = snoc (cas1, ca2) in auxlst (cas1, cas2, ress) end (* end of [CAgline] *) // | CAdats _ => let val cas1 = snoc (cas1, ca2) in auxlst (cas1, cas2, ress) end (* end of [CAdats] *) | CAiats _ => let val cas1 = snoc (cas1, ca2) in auxlst (cas1, cas2, ress) end (* end of [CAiats] *) // | CAfilats _ => let val res = atsoptline_make ($UN.list_vt2t(cas1), ca2) val () = ress := list_vt_cons{res}(res, ress) in auxlst (cas1, cas2, ress) end (* end of [CAfilats] *) // | CA_tlcalopt_disable() => let val cas1 = snoc (cas1, ca2) in auxlst (cas1, cas2, ress) end (* end of [CA_tlcalopt_disable] *) | CA_constraint_ignore() => let val cas1 = snoc (cas1, ca2) in auxlst (cas1, cas2, ress) end (* end of [CA_constraint_ignore] *) // | _(*ignored*) => auxlst (cas1, cas2, ress) // ) (* end of [list_cons] *) // end // end of [auxlst] in (* in of [local] *) implement atsoptline_make_all (cas0) = let // var ress: ress = list_vt_nil val () = auxlst (list_vt_nil, cas0, ress) // in list_vt_reverse (ress) end // end of [atsoptline_make_all] end // end of [local] (* ****** ****** *) local vtypedef res = stringlst_vt fun aux ( ca: commarg, i: int, res: &res >> _ ) : void = let in // case+ ca of // | CAhats() => () | CAvats() => () // | CAccats() => () | CAtcats() => () // | CAhelp() => () // | CAgline() => () // | CAverbose() => () | CAcleanaft() => () // | CAatsccomp(opt) => () // | CAdats(0, opt) => () | CAdats(_, opt) => if issome(opt) then { val () = res := list_vt_cons{string}("-D", res) val () = res := list_vt_cons{string}(unsome(opt), res) } else ((*void*)) // end of [if] // | CAiats(0, opt) => () | CAiats(_, opt) => if issome (opt) then { val () = res := list_vt_cons{string}("-I", res) val () = res := list_vt_cons{string}(unsome(opt), res) } else ((*void*)) // end of [if] // | CAfilats(0, opt) => ( if issome (opt) then aux_fsats (unsome(opt), res) ) | CAfilats(_, opt) => ( if issome (opt) then aux_fdats (unsome(opt), res) ) // | CA_tlcalopt_disable() => () | CA_constraint_ignore() => () // | CA_CCOMPitm (item) => aux_CCOMPitm (item, res) // end // end of [aux] and aux_fsats (path: string, res: &res >> _): void = { val outname = atscc_outname (0(*sta*), path) val () = res := list_vt_cons{string}(outname, res) } and aux_fdats (path: string, res: &res >> _): void = { val outname = atscc_outname (0(*sta*), path) val () = res := list_vt_cons{string}(outname, res) } and aux_CCOMPitm (item: string, res: &res >> _): void = { val () = res := list_vt_cons{string}(item, res) } fun auxlst ( cas: commarglst, i: int, res: &res >> _ ) : void = let // (* val () = println! ("auxlst") *) // in // case+ cas of | list_nil () => ((*void*)) | list_cons (ca, cas) => let val () = aux (ca, i, res) in auxlst (cas, i+1, res) end // end of [list_cons] // end // end of [loop] in (* in of [local] *) implement atsccompline_make (cas0) = let // var res: res = list_vt_nil val-list_cons(ca, cas) = cas0 val () = auxlst(cas, 1(*i*), res) // in list_vt_reverse(res) end // end of [atsccompline_make] end // end of [local] (* ****** ****** *) local #define CNUL '\0' #define SPACE " " overload + with add_ptr0_bsz of 10 (* ****** ****** *) fun auxstr ( p0: &ptr >> _, n0: &size_t >> _, x: string ) : int = let // val n = string_length (x) // in // if n0 > n then let val _ = $extfcall ( ptr, "memcpy", p0, string2ptr(x), n ) // end of [val] val () = p0 := p0 + n and () = n0 := n0 - n in 0(*success*) end else ~1(*failure*) // end of [if] // end // end of [auxstr] fun auxstrlst_sep ( p0: &ptr >> _, n0: &size_t >> _, sep: string, xs: stringlst ) : int = let in // case+ xs of | list_cons (x, xs) => let val err = auxstr (p0, n0, sep) val err = ( if err = 0 then auxstr (p0, n0, x) else ~1 ) : int // end of [val] in if err = 0 then auxstrlst_sep (p0, n0, sep, xs) else ~1 end // end of [list_cons] | list_nil() => 0(*success*) // end // end of [auxstrlst_sep] (* ****** ****** *) fun auxline ( cmd: string , args: stringlst , bsz: sizeGte(1) ) : Strptr1 = let // val ( pfat , pfgc | p_st ) = malloc_gc (bsz) // var p0: ptr = p_st var n0: size_t = bsz val sep: string = SPACE // val err = auxstr (p0, n0, cmd) val err = ( if err = 0 then auxstrlst_sep (p0, n0, sep, args) else ~1 ) : int // end of [val] // in // if err = 0 then let val () = $UN.ptr0_set (p0, CNUL) in $UN.castvwtp0{Strptr1}((pfat, pfgc | p_st)) end else let val () = mfree_gc (pfat, pfgc | p_st) in auxline (cmd, args, bsz+bsz) end // end of [else] // end of [if] end // end of [auxline] (* ****** ****** *) in (* in of [local]*) implement atsoptline_exec (flag, atsopt, arglst) = let // val bsz = 1024 // HX: more or less arbitrary // val [l:addr] line = auxline (atsopt, $UN.list_vt2t(arglst), i2sz(bsz)) val () = list_vt_free (arglst) // val () = if flag > 0 then { val () = fprintln! (stderr_ref, "exec(", line, ")") } (* end of [if] *) // val status = $STDLIB.system ($UN.strptr2string(line)) // val () = if flag > 0 then { val () = fprintln! (stderr_ref, "exec(", line, ") = ", status) } (* end of [if] *) // val () = strptr_free (line) // in status end // end of [atsoptline_exec] (* ****** ****** *) implement atsoptline_exec_all (flag, atsopt, lines) = let // vtypedef lines = List_vt(stringlst_vt) // fun auxlst ( lines: lines, status: int ) : int = let in // case+ lines of | ~list_vt_nil () => status // list_vt_nil | ~list_vt_cons (line, lines) => let val status = ( if status = 0 then atsoptline_exec (flag, atsopt, line) else let val () = list_vt_free (line) in status end // end of [else] // end of [if] ) : int // end of [val] in auxlst (lines, status) end // end of [cons] // end // end of [auxlst] // in auxlst (lines, 0(*success*)) end // end of [atsoptline_exec_all] (* ****** ****** *) implement atsccomp_cont (cas) = let // fun auxlst ( cas: commarglst, n: int ) : bool = // case+ cas of | list_cons (ca, cas) => let in case+ ca of | CAccats _ => false | CAtcats _ => false | CAhelp() => auxlst (cas, n) | CAhats() => auxlst (cas, n) | CAvats() => auxlst (cas, n) | CAverbose() => auxlst (cas, n) | _ (*rest*) => auxlst (cas, n+1) end (* end of [cons] *) | list_nil ((*void*)) => if n > 0 then true else false // in // case+ cas of | list_nil () => false | list_cons (_, cas) => auxlst (cas, 0) // end // end of [atsccomp_cont] (* ****** ****** *) implement atsccompline_exec (flag, atsccomp, arglst) = let // val bsz = 1024 // HX: more or less arbitrary // val [l:addr] line = auxline (atsccomp, $UN.list_vt2t(arglst), i2sz(bsz)) val () = list_vt_free (arglst) // val ( ) = if flag > 0 then { val () = fprintln! (stderr_ref, "exec(", line, ")") } (* end of [if] *) // val status = $STDLIB.system ($UN.strptr2string(line)) // val ( ) = if flag > 0 then { val () = fprintln! (stderr_ref, "exec(", line, ") = ", status) } (* end of [if] *) // val () = strptr_free (line) // in status end // end of [atsccompline_exec] end // end of [local] (* ****** ****** *) implement atscc_is_help (cas) = let in // case+ cas of | list_cons (ca, cas) => ( case+ ca of | CAhelp() => true | _ => atscc_is_help(cas) ) | list_nil((*void*)) => false // end // end of [atscc_is_help] (* ****** ****** *) implement atscc_is_verbose (cas) = let in // case+ cas of | list_cons (ca, cas) => ( case+ ca of | CAverbose() => true | _ => atscc_is_verbose(cas) ) | list_nil((*void*)) => false // end // end of [atscc_verbose] (* ****** ****** *) implement atscc_cleanaft_cont (cas) = let in // case+ cas of | list_cons (ca, cas) => ( case+ ca of | CAcleanaft () => true | _ => atscc_cleanaft_cont(cas) ) | list_nil((*void*)) => false // end // end of [atscc_cleanaft_cont] (* ****** ****** *) implement atscc_cleanaft_exec (flag, cas0) = let // fun rmf ( flag: int, opt: stropt ) : void = ( if issome(opt) then { val _(*err*) = $UNISTD.unlink(atscc_outname(flag, unsome(opt))) // end of [val] } // end of [if] ) (* end of [rmf] *) // fun auxlst ( cas: commarglst ) : void = let in // case+ cas of | list_cons (ca, cas) => ( case+ ca of | CAfilats (flag, opt) => ( let val () = rmf(flag, opt) in auxlst(cas) end ) (* end of [CAfilats] *) | _(*skipped*) => auxlst (cas) ) | list_nil((*void*)) => () // end // end of [auxlst] // val () = auxlst(cas0) // val () = if flag > 0 then { // val () = fprintln! ( stderr_ref, "atscc: removal of generated C-files is done." ) // } (* end of [val] *) // in // nothing end // end of [atscc_cleanaft_exec] (* ****** ****** *) (* end of [atscc_main.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/atscc/DATS/patscc.dats0000644000175000017500000000606513431250607022013 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* Start time: July, 2013 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "libats/libc/DATS/stdlib.dats" // (* ****** ****** *) #dynload "./atscc_main.dats" #dynload "./atscc_print.dats" (* ****** ****** *) // #staload "./../SATS/atscc.sats" // (* ****** ****** *) // #staload _(*anon*) = "./atscc_util.dats" // (* ****** ****** *) implement main0(argc, argv) = { // var status: int = 0 // val cas = atsccproc_commline(argc, argv) // // HX-2015-03-22: // [patscc] for [patscc -vats] // val cas = ( if argc >= 2 then cas else cas+'[CAvats] // end of [i] ) : commarglst // val help = atscc_is_help(cas) // val () = ( if help then atsopt_print_usage() ) (* end of [val] *) // val verb = ( if atscc_is_verbose(cas) then 1 else 0 ) : int // end of [val] // val cmd = atsopt_get() val argss = atsoptline_make_all(cas) val () = status := atsoptline_exec_all(verb, cmd, argss) // val cont = ( if status = 0 then true else false ) : bool // end of [val] val cont = ( if cont then atsccomp_cont(cas) else false ) : bool // end of [val] val () = if cont then { // val cmd = atsccomp_get2(cas) val arglst = atsccompline_make (cas) val () = ( status := atsccompline_exec(verb, cmd, arglst) ) (* end of [val] *) // } (* end of [if] *) // end of [val] // val cont = ( if status = 0 then true else false ) : bool // end of [val] val cont = ( if cont then atscc_cleanaft_cont(cas) else false // end of [if] ) : bool // end of [val] // val () = ( if cont then atscc_cleanaft_exec(verb, cas) else () // end of [if] ) : void // end of [val] // val () = exit_void ( if (status = 0) then 0(*success*) else 1(*failure*) ) (* end of [val] *) // } (* end of [main0] *) (* ****** ****** *) (* end of [patscc.dats] *) ATS2-Postiats-gmp-0.3.13/./utils/atscc/Makefile0000644000175000017500000000065713431250607020567 0ustar brandonbrandon###### # # A Simple Makefile # ###### CPF=cp -f RMF=rm -f MAKE=make ###### copy:: ; \ $(CPF) DATS/*.?ats BUILD/. ###### build:: ; \ $(MAKE) \ -C BUILD -f ../Makefile_build ###### testall:: ; \ $(MAKE) -C TEST testall ###### # clean:: ; $(RMF) ./BUILD/*.o clean:: ; $(RMF) ./BUILD/*.c clean:: ; $(RMF) ./BUILD/*.?ats # ###### # cleanall:: clean # cleanall:: ; $(RMF) ./BUILD/atscc # ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./utils/atscc/.keeper0000644000175000017500000000000013431250607020361 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/atscc/SATS/0000755000175000017500000000000013431250607017671 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./utils/atscc/SATS/atscc.sats0000644000175000017500000001002213431250607021655 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: July, 2013 *) (* ****** ****** *) datatype commarg = // | CAhats of () // -hats: patsopt --help | CAvats of () // -vats: patsopt --version // | CAccats of () // -ccats: compilation only | CAtcats of () // -tcats: typechecking only // | CAhelp of () // --help: usage information | CAgline of () // --gline: line programa info // | CAverbose of () // -verbose: verbosity | CAcleanaft of () // -cleanaft: cleaning up *_?ats.c files // | CAatsccomp of (stropt) // -atsccomp 'gcc ...' // | CAdats of (int(*knd*), stropt) // knd=0/1:-DATS/-DDATS | CAiats of (int(*knd*), stropt) // knd=0/1:-IATS/-IIATS // | CAfilats of (int(*knd*), stropt) // knd=0/1:-fsats/-fdats // | CA_tlcalopt_disable // --tlcalopt-disable | CA_constraint_ignore // --constraint-ignore // | CA_CCOMPitm of string // any generic item is passed to $(CCOMP) // end of [commarg] (* ****** ****** *) // typedef commarglst = List0(commarg) vtypedef commarglst_vt = List0_vt(commarg) // (* ****** ****** *) // fun fprint_commarg(out: FILEref, ca: commarg): void fun fprint_commarglst(out: FILEref, cas: commarglst): void // overload fprint with fprint_commarg of 0 overload fprint with fprint_commarglst of 10 // (* ****** ****** *) // fun{} atsopt_get(): string fun{} atsopt_print_usage(): void // (* ****** ****** *) // fun{} atsccomp_get(): string fun{} atsccomp_get2(cas: commarglst): string // (* ****** ****** *) // // HX: flag=0/1:static/dynamic // fun atscc_outname(flag: int, path: string): string // (* ****** ****** *) fun atsccproc_commline{n:int}(int n, !argv(n)): commarglst (* ****** ****** *) // fun fprint_atsoptline ( out: FILEref, cas: commarglst, ca0: commarg ) : void // end of [fprint_atsoptline] // fun fprint_atsoptline_all(FILEref, commarglst): void // (* ****** ****** *) fun fprint_atsccompline(out: FILEref, cas: commarglst): void (* ****** ****** *) // fun atsoptline_make (cas: !RD(commarglst), ca0: commarg): stringlst_vt // fun atsoptline_make_all(cas: commarglst): List0_vt(stringlst_vt) // (* ****** ****** *) fun atsccompline_make(cas: commarglst): stringlst_vt (* ****** ****** *) // fun atsoptline_exec ( flag: int , atsopt: string, args: stringlst_vt): int(*status*) fun atsoptline_exec_all ( flag: int , atsopt: string, args: List_vt (stringlst_vt)): int(*status*) // (* ****** ****** *) // fun atsccomp_cont(cas: commarglst): bool // fun atsccompline_exec (flag: int, atsccomp: string, args: stringlst_vt): int(*status*) // (* ****** ****** *) fun atscc_is_help(cas: commarglst): bool fun atscc_is_verbose(cas: commarglst): bool (* ****** ****** *) fun atscc_cleanaft_cont(cas: commarglst): bool fun atscc_cleanaft_exec(flag: int, cas: commarglst): void (* ****** ****** *) (* end of [atscc.sats] *) ATS2-Postiats-gmp-0.3.13/./utils/atscc/README0000644000175000017500000000124613431250607020002 0ustar brandonbrandon## ## The command [atscc] is just a thin wrapper ## for convenience around the command [atsopt] ## ###### $ATSOPT = "patsopt" $ATSCCOMP = "\ gcc -std=c99 -D_XOPEN_SOURCE\ -I${PATSHOME} -I${PATSHOME}/ccomp/runtime " ###### -vats : the version of atsopt -tcats : typechecking only -ccats : compiling ATS to C only -cleanaft : removing the generated C-files (_?ats.c) -atsccomp : designating the C-compiler [atsccomp] for use -DATS : define for [atsopt] -DDATS : define for [atsopt] and [atsccomp] -IATS : include path for [atsopt] -IIATS : include path for [atsopt] and [atsccomp] --version : the version of atsopt and C-compiler ###### ###### end of [README] ###### ATS2-Postiats-gmp-0.3.13/./utils/atscc/Makefile_build0000644000175000017500000000125313431250607021737 0ustar brandonbrandon# # Makefile for [atscc] # ###### # CC=gcc CFLAGS=-std=c99 -D_XOPEN_SOURCE # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### INCLUDE=-I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime ###### all:: clean all:: patscc ###### # patscc: \ patscc_dats.c \ atscc_main_dats.c \ atscc_print_dats.c ; \ $(CC) $(INCLUDE) $(CFLAGS) -DATS_MEMALLOC_LIBC -O2 -o $@ $^ # ###### %_dats.c: %.dats; $(PATSOPT) --output $@ --dynamic $< ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) patscc ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./Makefile0000777000175000017500000000000013431250607021002 2Makefile_distustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/0000755000175000017500000000000013431250607016322 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/params.hats0000644000175000017500000000317613431250607020475 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author of the file: // Hongwei Xi (gmhwxiATgmailDOTcom) // Start Time: September, 2011 // (* ****** ****** *) // #define VERBOSE_FIXITY 0 (* #define VERBOSE_FIXITY 1 (* used in [prelude/fixity.ats] *) *) // (* ****** ****** *) // #define VERBOSE_PRELUDE 0 (* #define VERBOSE_PRELUDE 1 (* mainly for the purpose of debugging *) *) // (* ****** ****** *) (* end of [params.hats] *) ATS2-Postiats-gmp-0.3.13/./prelude/fixity.ats0000644000175000017500000000702413431250607020352 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // // This one was // there at the very beginning of ATS // (* ****** ****** *) // (* HX: fixity declarations *) #include "prelude/params.hats" // (* ****** ****** *) #if VERBOSE_FIXITY #then #print "Loading [fixity.ats] starts!\n" #endif // end of [VERBOSE_FIXITY] (* ****** ****** *) // (* prefix 00 ! (* static *) *) // prefix 99 ! (* dynamic *) // (* ****** ****** *) (* prefix 81 ID (* identity *) *) (* ****** ****** *) (* postfix 80 .lab // dynamic postfix 80 ->lab // dynamic *) (* ****** ****** *) (* prefix 79 & // dynamic *) (* ****** ****** *) (* infixl 70 app *) (* ****** ****** *) (* postfix 69 ? *) (* ****** ****** *) // // HX-2015-08-04: // mostly following the Fortran convention // (* ****** ****** *) infixr 61 ** (*exp*) (* ****** ****** *) // // multiplicative // infixl 60 * / % mod // (* infixl 60 nmul ndiv nmod *) // (* ****** ****** *) prefix 51 ~ (*negative*) (* ****** ****** *) // infixl 50 + - (*additive*) // (* infixr (+) ++ // concatenative *) // (* ****** ****** *) infixl 41 asl asr infixl 41 lsl lsr (* ****** ****** *) // infix 40 < <= > >= // (* // // HX-2012-07: removed // infixl ( < ) ilt flt plt ult infixl ( <= ) ilte flte plte ulte infixl ( > ) igt fgt pgt ugt infixl ( >= ) igte fgte pgte ugte *) // (* ****** ****** *) infixr 40 :: @ (* ****** ****** *) infix 30 = == != <> (* ****** ****** *) (* // // HX-2012-07: removed // infix ( = ) ieq feq peq ueq infix ( <> ) ineq fneq pneq uneq *) (* ****** ****** *) infixl 21 && infixl ( && ) andalso land (* ****** ****** *) infixl 20 || infixl ( || ) xor orelse lor lxor (* ****** ****** *) infixr 10 -> (* ****** ****** *) infix 0 := // HX: assign infix 0 :=: // HX: exchange (* ****** ****** *) infixl 0 << (* g0int_asl, g0uint_lsl *) infixr 0 >> (* g0int_asr, g0uint_lsr *) (* ****** ****** *) prefix 0 ++ -- // inc and dec prefix 0 !++ --! // getinc and decget infixr 0 =++ --= // setinc and decset (* ****** ****** *) infix 0 :+= :-= :*= :/= // x:=x+a, x:=x-a, ... infix 0 :=+ :=- :=* :=/ // x:=a+x, x:=a-x, ... (* ****** ****** *) prefix 0 ignoret // ignoring a funcall return (* ****** ****** *) #if VERBOSE_FIXITY #then #print "Loading [fixity.ats] finishes!\n" #endif // end of [VERBOSE_FIXITY] (* end of [fixity.ats] *) ATS2-Postiats-gmp-0.3.13/./prelude/basics_gen.sats0000644000175000017500000000700113431250607021311 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author of the file: // Hongwei Xi (gmhwxiATgmailDOTcom) // Start Time: July, 2012 // (* ****** ****** *) #include "prelude/params.hats" (* ****** ****** *) #if VERBOSE_PRELUDE #then #print "Loading [basics_gen.sats] starts!\n" #endif // end of [VERBOSE_PRELUDE] (* ****** ****** *) // fun {a:t0p} gidentity (x: INV(a)):<> a // fun {a:vt0p} gidentity_vt (x: INV(a)):<> a // (* ****** ****** *) // fun {a:vt0p} gcopy_val (x: !INV(a)): a // fun {a:vt0p} gcopy_ref (x: &INV(a)): a // (* ****** ****** *) // fun {a:vt0p} gfree_val (x: INV(a)): void // (* fun {a:vt0p} gfree_ref (x: &INV(a) >> a?): void *) // (* ****** ****** *) fun {a:vt0p} ginit_ref (x: &a? >> a): void (* ****** ****** *) fun {a:vt0p} gclear_ref (x: &a >> a?): void (* ****** ****** *) // fun {a:t0p} gequal_val_val (x: a, y: a):<> bool // fun {a:vt0p} gequal_ref_ref (x: &INV(a), y: &a):<> bool // (* ****** ****** *) fun{a:t0p} tostring_val (x: a):<> string fun{a:vt0p} tostring_ref (x: &INV(a)):<> string (* ****** ****** *) fun{a:t0p} tostrptr_val (x: a): Strptr1 fun{a:vt0p} tostrptr_ref (x: &INV(a)): Strptr1 (* ****** ****** *) (* // fun{a:t0p} print_val (x: a): void // = fprint_val (stdout_ref, x) fun{a:t0p} prerr_val (x: a): void // = fprint_val (stderr_ref, x) // fun{a:vt0p} print_ref (x: &INV(a)): void // = fprint_ref (stdout_ref, x) fun{a:vt0p} prerr_ref (x: &INV(a)): void // = fprint_ref (stderr_ref, x) // *) (* ****** ****** *) // fun{a:t0p} fprint_val(out: FILEref, x: a): void fun{a:vt0p} fprint_ref(out: FILEref, x: &INV(a)): void // (* ****** ****** *) // fun {src:vt0p} {elt:vt0p} streamize_val(source: src): stream_vt(elt) // (* ****** ****** *) // fun {a:t0p} print_stamped_t(stamped_t(a)): void fun {a:t0p} prerr_stamped_t(stamped_t(a)): void fun {a:t0p} fprint_stamped_t(out: FILEref, x: stamped_t(a)): void (* // // HX-2017-12-09: // This one does not seem to be so useful // fun {a:vt0p} fprint_stamped_vt(out: FILEref, x: &stamped_vt(a)): void *) // overload print with print_stamped_t overload prerr with prerr_stamped_t overload fprint with fprint_stamped_t // (* ****** ****** *) #if VERBOSE_PRELUDE #then #print "Loading [basics_gen.sats] finishes!\n" #endif // end of [VERBOSE_PRELUDE] (* ****** ****** *) (* end of [basics_gen.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/basics_pre.sats0000644000175000017500000003444613431250607021343 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author of the file: // Hongwei Xi (gmhwxiATgmailDOTcom) // Start Time: September, 2011 // (* ****** ****** *) #include "prelude/params.hats" (* ****** ****** *) #if VERBOSE_PRELUDE #then #print "Loading [basics_pre.sats] starts!\n" #endif // end of [VERBOSE_PRELUDE] (* ****** ****** *) // // HX: // some built-in static boolean constants // stacst true_bool : bool = "ext#" stacst false_bool : bool = "ext#" // stadef true = true_bool and false = false_bool // // HX: boolean negation // stacst neg_bool : bool -> bool = "ext#" // stadef ~ = neg_bool // overloaded stadef not = neg_bool // overloaded // // HX: disjunction // stacst add_bool_bool : (bool, bool) -> bool = "ext#" // // HX: disjunction // stacst mul_bool_bool : (bool, bool) -> bool = "ext#" // stadef + = add_bool_bool and * = mul_bool_bool stadef || = add_bool_bool and && = mul_bool_bool // stacst lt_bool_bool : (bool, bool) -> bool = "ext#" stacst lte_bool_bool : (bool, bool) -> bool = "ext#" // stacst gt_bool_bool : (bool, bool) -> bool = "ext#" stacst gte_bool_bool : (bool, bool) -> bool = "ext#" // stadef < = lt_bool_bool and <= = lte_bool_bool stadef > = gt_bool_bool and >= = gte_bool_bool // stacst eq_bool_bool : (bool, bool) -> bool = "ext#" stacst neq_bool_bool : (bool, bool) -> bool = "ext#" // stadef == = eq_bool_bool stadef != = neq_bool_bool stadef <> = neq_bool_bool (* for backward compatibility *) // (* ****** ****** *) (* // // HX-2012-06-12: removed // stacst eq_char_char : (char, char) -> bool = "ext#" stacst neq_char_char : (char, char) -> bool = "ext#" // stadef == = eq_char_char stadef != = neq_char_char stadef <> = neq_char_char (* for backward compatibility *) // *) (* ****** ****** *) // stacst neg_int : (int) -> int = "ext#" // stadef ~ = neg_int // overloaded // stacst add_int_int : (int, int) -> int = "ext#" stacst sub_int_int : (int, int) -> int = "ext#" stacst mul_int_int : (int, int) -> int = "ext#" stacst div_int_int : (int, int) -> int = "ext#" // stadef + = add_int_int and - = sub_int_int stadef * = mul_int_int and / = div_int_int // // HX: ndiv: divisor is positive // HX: idiv: alias for div_int_int // stacst ndiv_int_int : (int, int) -> int = "ext#" stacst idiv_int_int : (int, int) -> int = "ext#" // stadef ndiv = ndiv_int_int // divided by nat stadef idiv = idiv_int_int // divided by int // stadef nmod_int_int ( x:int, y:int ) = x - y * (x \ndiv_int_int y) // stadef mod = nmod_int_int stadef nmod = nmod_int_int stadef % (*adopted from C*) = nmod_int_int // (* ****** ****** *) // stacst lt_int_int : (int, int) -> bool = "ext#" stacst lte_int_int : (int, int) -> bool = "ext#" // stacst gt_int_int : (int, int) -> bool = "ext#" stacst gte_int_int : (int, int) -> bool = "ext#" // stadef < = lt_int_int and <= = lte_int_int stadef > = gt_int_int and >= = gte_int_int // stacst eq_int_int : (int, int) -> bool = "ext#" stacst neq_int_int : (int, int) -> bool = "ext#" // stadef == = eq_int_int stadef != = neq_int_int stadef <> = neq_int_int (* for backward compatibility *) // (* ****** ****** *) // stacst abs_int : (int) -> int = "ext#" // stadef absrel_int_int (x: int, v: int): bool = (x >= 0 && x == v) || (x <= 0 && ~x == v) // stadef abs = abs_int stadef absrel = absrel_int_int // stacst sgn_int : (int) -> int = "ext#" // stadef sgnrel_int_int (x: int, v: int): bool = (x > 0 && v==1) || (x==0 && v==0) || (x < 0 && v==(~1)) // stadef sgn = sgn_int stadef sgnrel = sgnrel_int_int // stacst max_int_int : (int, int) -> int = "ext#" stacst min_int_int : (int, int) -> int = "ext#" // stadef maxrel_int_int_int (x: int, y: int, v: int): bool = (x >= y && x == v) || (x <= y && y == v) // stadef minrel_int_int_int (x: int, y: int, v: int): bool = (x >= y && y == v) || (x <= y && x == v) // stadef max = max_int_int stadef min = min_int_int stadef maxrel = maxrel_int_int_int stadef minrel = minrel_int_int_int // stadef nsub (x:int, y:int) = max (x-y, 0) // stadef ndivrel_int_int_int // HX: y > 0 (x: int, y: int, q: int): bool = (q * y <= x) && (x < q * y + y) // stadef ndivrel = ndivrel_int_int_int // stadef idivrel_int_int_int (x: int, y: int, q: int) = ( // HX: y != 0 x >= 0 && y > 0 && ndivrel_int_int_int ( x, y, q) ) || ( x >= 0 && y < 0 && ndivrel_int_int_int ( x, ~y, ~q) ) || ( x < 0 && y > 0 && ndivrel_int_int_int (~x, y, ~q) ) || ( x < 0 && y < 0 && ndivrel_int_int_int (~x, ~y, q) ) (* end of [idivrel_int_int_int] *) // stadef idivrel = idivrel_int_int_int // stadef divmodrel_int_int_int_int (x: int, y: int, q: int, r: int) : bool = (0 <= r && r < y && x == q*y + r) // stadef divmodrel = divmodrel_int_int_int_int // (* ****** ****** *) // stacst ifint_bool_int_int : (bool, int, int) -> int = "ext#" // stadef ifintrel_bool_int_int_int ( b:bool, x:int, y:int, r:int ) : bool = (b && r==x) || (~b && r==y) // stadef ifint = ifint_bool_int_int stadef ifintrel = ifintrel_bool_int_int_int // (* ****** ****** *) stadef bool2int(b: bool): int = ifint(b, 1, 0) stadef int2bool (i: int): bool = (i != 0) stadef b2i = bool2int and i2b = int2bool (* ****** ****** *) (* ** HX: [char] = [int8] ** HX-2012-06-12: removed // stacst int_of_char: char -> int = "ext#" stacst char_of_int : int -> char = "ext#" // stadef c2i = int_of_char and i2c = char_of_int // *) (* ****** ****** *) (* ** HX: pointer <-> integer *) stacst int_of_addr: addr -> int = "ext#" stacst addr_of_int: int -> addr = "ext#" stadef a2i = int_of_addr and i2a = addr_of_int (* ****** ****** *) // stadef pow2_7 = 128 stadef pow2_8 = 256 stadef i2u_int8 (i:int) = ifint (i >= 0, i, i+pow2_8) stadef i2u8 = i2u_int8 stadef u2i_int8 (u:int) = ifint (u < pow2_7, u, u-pow2_8) stadef u2i8 = u2i_int8 // stadef pow2_15 = 32768 stadef pow2_16 = 65536 stadef i2u_int16 (i:int) = ifint (i >= 0, i, i+pow2_16) stadef i2u16 = i2u_int16 stadef u2i_int16 (u:int) = ifint (u < pow2_15, u, u-pow2_16) stadef u2i16 = u2i_int16 // (* ****** ****** *) stadef pow2_32 = 0x100000000 stadef pow2_64 = 0x10000000000000000 (* ****** ****** *) // stacst null_addr : addr = "ext#" stadef null = null_addr and NULL = null_addr // stacst add_addr_int : (addr, int) -> addr = "ext#" stacst sub_addr_int : (addr, int) -> addr = "ext#" stacst sub_addr_addr : (addr, addr) -> int = "ext#" // stadef + = add_addr_int stadef - = sub_addr_int stadef - = sub_addr_addr // (* ****** ****** *) // stacst lt_addr_addr : (addr, addr) -> bool = "ext#" stacst lte_addr_addr : (addr, addr) -> bool = "ext#" // stadef < = lt_addr_addr stadef <= = lte_addr_addr // stacst gt_addr_addr : (addr, addr) -> bool = "ext#" stacst gte_addr_addr : (addr, addr) -> bool = "ext#" // stadef > = gt_addr_addr stadef >= = gte_addr_addr // stacst eq_addr_addr : (addr, addr) -> bool = "ext#" stacst neq_addr_addr : (addr, addr) -> bool = "ext#" // stadef == = eq_addr_addr stadef != = neq_addr_addr stadef <> = neq_addr_addr (* for backward compatibility *) // (* ****** ****** *) // // HX-2017-11-07: // abstype types_nil abstype types_cons(vt@ype+, type+) (* stacst types_nil : types stacst types_cons : (vt@ype+, types+) -> types *) // (* ****** ****** *) // // HX-2013-09: // for supporting inheritance in OOP // stacst lte_cls_cls : (cls, cls) -> bool = "ext#" stacst gte_cls_cls : (cls, cls) -> bool = "ext#" // stadef <= = lte_cls_cls and >= = gte_cls_cls // stadef lterel_cls_cls ( c1: cls, c2: cls, lterel_cls_cls_res: bool ) : bool = lterel_cls_cls_res // end-of-stadef stadef gterel_cls_cls ( c1: cls, c2: cls, gterel_cls_cls_res: bool ) : bool = gterel_cls_cls_res // end-of-stadef // (* ****** ****** *) // // HX: this is a special constant! // stacst sizeof_t0ype_int : t@ype -> int = "ext#" // stadef sizeof(a:vt@ype): int = sizeof_t0ype_int(a?) // (* ****** ****** *) sortdef nat = { i:int | i >= 0 } sortdef nat1 = { n:nat | n < 1 } // for 0 sortdef nat2 = { n:nat | n < 2 } // for 0, 1 sortdef nat3 = { n:nat | n < 3 } // for 0, 1, 2 sortdef nat4 = { n:nat | n < 4 } // for 0, 1, 2, 3 sortdef pos = { i:int | i > 0 } // positive ints sortdef neg = { i:int | i < 0 } // negative ints sortdef npos = { i:int | i <= 0 } // non-positive ints sortdef nneg = { i:int | i >= 0 } // non-negative ints (* ****** ****** *) sortdef sgn = { i:int | ~1 <= i; i <= 1 } (* ****** ****** *) sortdef igz = { i:int | i > 0 } sortdef igez = { i:int | i >= 0 } sortdef ilez = { i:int | i <= 0 } sortdef agz = { l:addr | l > null } sortdef agez = { l:addr | l >= null } sortdef alez = { l:addr | l <= null } (* ****** ****** *) #define CHAR_MAX 127 #define CHAR_MIN ~128 #define UCHAR_MAX 0xFF (* ****** ****** *) // stacst effnil : eff // nothing stacst effall : eff // everything // stacst effntm : eff // nonterm stacst effexn : eff // exception stacst effref : eff // reference stacst effwrt : eff // writeover // stacst add_eff_eff : (eff, eff) -> eff stadef + = add_eff_eff // union of effsets stacst sub_eff_eff : (eff, eff) -> eff stadef - = add_eff_eff // difference of effsets // (* ****** ****** *) // // HX: some overloaded symbols // symintr ~ not (* symintr && || // macros *) symintr lnot lor lxor land symintr + - * / % mod ndiv nmod symintr < <= > >= = == != <> compare symintr isltz isltez isgtz isgtez iseqz isneqz symintr neg abs max min symintr succ pred half double symintr square sqrt cube cbrt pow // symintr ! [] // deref subscript symintr << >> // for L/R-shifting // symintr inc dec symintr ++ -- // inc and dec symintr get set exch symintr getinc setinc exchinc symintr decget decset decexch symintr !++ --! // getinc and decget symintr =++ --= // setinc and decset // symintr assert // symintr encode decode // symintr uncons unsome // symintr ptrcast (* taking the address of a boxed val *) symintr g0ofg1 g1ofg0 (* casting: indexed <-> un-indexed *) // symintr copy free length // symintr print prerr fprint gprint symintr println prerrln fprintln gprintln // (* // symintr forall symintr iforall // symintr foreach symintr foreach2 symintr iforeach symintr rforeach // *) // symintr ofstring ofstrptr symintr tostring tostrptr // (* ****** ****** *) // // HX-2014-02: // for dot-notation overloading // symintr .size symintr .len .length symintr .get .set .exch symintr .nrow .ncol symintr .head .tail symintr .next .prev symintr .init .last symintr .eval // HX: convention: using "!" // (* ****** ****** *) // // HX-2012-05-23: for template args // abstype atstkind_type(tk: tkind) // abst@ype atstkind_t0ype(tk: tkind) // typedef tkind_type(tk:tkind) = atstkind_type(tk) typedef tkind_t0ype(tk:tkind) = atstkind_t0ype(tk) // (* ****** ****** *) // absview // S2Eat at_vt0ype_addr_view(a:vt@ype+, l:addr) // viewdef @ // HX: @ is infix (a:vt@ype, l:addr) = at_vt0ype_addr_view(a, l) // (* ****** ****** *) // abst@ype clo_t0ype_t0ype(a:t@ype) = a absvt@ype clo_vt0ype_vt0ype(a:vt@ype) = a // (* ****** ****** *) (* absview read_view_int_int_view (v:view, stamp:int, n:int) stadef READ = read_view_int_int_view viewdef READ (v:view) = [s,n:int] READ (v, s, n) stadef RD = READ // absview readout_view_int_view (v:view, stamp:int) stadef READOUT = readout_view_int_view viewdef READOUT (v:view) = [s:int] READOUT (v, s) // absvt@ype read_vt0ype_int_int_vt0ype (a:vt@ype, stamp:int, n:int) = a stadef READ = read_vt0ype_int_int_vt0ype vtypedef READ (a:vt@ype) = [s,n:int] READ (a, s, n) stadef RD = READ // absvt@ype readout_vt0ype_int_vt0ype (a:vt@ype, stamp: int) = a stadef READOUT = readout_vt0ype_int_vt0ype vtypedef READOUT (a:vt@ype) = [s:int] READOUT (a, s) *) (* ****** ****** *) (* absvt@ype write_vt0ype_vt0ype(a: vt@ype) = a vtypedef WRITE(a:vt@ype) = write_vt0ype_vt0ype (a) stadef WR = WRITE *) (* ****** ****** *) // vtypedef READ(a:vt@ype) = a // HX: used as a comment vtypedef WRITE(a:vt@ype) = a // HX: used as a comment (rarely) // (* vtypedef SHARED (a:vt@ype) = a // HX: used as a comment vtypedef NSHARED (a:vt@ype) = a // HX: used as a comment (rarely) *) // (* ****** ****** *) // absprop invar_prop_prop(a:prop) absview invar_view_view(a:view) // abst@ype // S2Einvar invar_t0ype_t0ype(a:t@ype) = a absvt@ype // S2Einvar invar_vt0ype_vt0ype(a:vt@ype) = a // // HX: this order is significant // viewdef INV(a:view) = invar_view_view(a) propdef INV(a:prop) = invar_prop_prop(a) // vtypedef INV (a:vt@ype) = invar_vt0ype_vt0ype(a) // typedef INV(a:t@ype) = invar_t0ype_t0ype(a) // (* ****** ****** *) (* // absprop optarg_prop_prop (a:prop) absview optarg_view_view (a:view) // abst@ype optarg_t0ype_t0ype (a:t@ype) = a absvt@ype optarg_vt0ype_vt0ype (a:vt@ype) = a // // HX: this order is significant // viewdef OPT (a: view) = optarg_view_view (a) propdef OPT (a: prop) = optarg_prop_prop (a) // vtypedef OPT (a:vt@ype) = optarg_vt0ype_vt0ype (a) // vtypedef OPT (a: t@ype) = optarg_t0ype_t0ype (a) // *) (* ****** ****** *) // abst@ype stamped_t0ype(a:t@ype, int) = a absvt@ype stamped_vt0ype(a:vt@ype, int) = a // stadef stamped_t = stamped_t0ype stadef stamped_vt = stamped_vt0ype // (* ****** ****** *) // absview vcopyenv_view_view(v:view) absvt@ype vcopyenv_vt0ype_vt0ype(vt: vt0ype) = vt // stadef vcopyenv_v = vcopyenv_view_view stadef vcopyenv_vt = vcopyenv_vt0ype_vt0ype // (* ****** ****** *) #if VERBOSE_PRELUDE #then #print "Loading [basics_pre.sats] finishes!\n" #endif // end of [VERBOSE_PRELUDE] (* ****** ****** *) (* end of [basics_pre.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/0000755000175000017500000000000013431250607017055 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/DATS/gorder.dats0000644000175000017500000001023413431250607021214 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gorder.atxt ** Time of generation: Thu Feb 14 11:29:49 2019 *) (* ****** ****** *) // implement {a}(*tmp*) glt_val_val(x, y) = gcompare_val_val (x, y) < 0 implement {a}(*tmp*) glte_val_val(x, y) = gcompare_val_val (x, y) <= 0 implement {a}(*tmp*) ggt_val_val(x, y) = gcompare_val_val (x, y) > 0 implement {a}(*tmp*) ggte_val_val(x, y) = gcompare_val_val (x, y) >= 0 // (* ****** ****** *) // implement {a}(*tmp*) glt_val_int(x, y) = glt_val_val (x, gnumber_int(y)) implement {a}(*tmp*) glte_val_int(x, y) = glte_val_val (x, gnumber_int(y)) implement {a}(*tmp*) ggt_val_int(x, y) = ggt_val_val (x, gnumber_int(y)) implement {a}(*tmp*) ggte_val_int(x, y) = ggte_val_val (x, gnumber_int(y)) // (* ****** ****** *) // implement {a}(*tmp*) geq_val_val(x, y) = gcompare_val_val (x, y) = 0 implement {a}(*tmp*) gneq_val_val(x, y) = gcompare_val_val (x, y) != 0 // (* ****** ****** *) // implement {a}(*tmp*) geq_val_int(x, y) = geq_val_val (x, gnumber_int(y)) implement {a}(*tmp*) gneq_val_int(x, y) = gneq_val_val (x, gnumber_int(y)) // (* ****** ****** *) // implement {a}(*tmp*) gisltz_val(x) = glt_val_int (x, 0) implement {a}(*tmp*) gisltez_val(x) = glte_val_int (x, 0) // implement {a}(*tmp*) gisgtz_val(x) = ggt_val_int (x, 0) implement {a}(*tmp*) gisgtez_val(x) = ggte_val_int (x, 0) // (* ****** ****** *) // implement {a}(*tmp*) giseqz_val(x) = geq_val_int (x, 0) implement {a}(*tmp*) gisneqz_val(x) = gneq_val_int (x, 0) // (* ****** ****** *) // implement {a}(*tmp*) glt_ref_ref(x, y) = gcompare_ref_ref (x, y) < 0 implement {a}(*tmp*) glte_ref_ref(x, y) = gcompare_ref_ref (x, y) <= 0 implement {a}(*tmp*) ggt_ref_ref(x, y) = gcompare_ref_ref (x, y) > 0 implement {a}(*tmp*) ggte_ref_ref(x, y) = gcompare_ref_ref (x, y) >= 0 // (* ****** ****** *) // implement {a}(*tmp*) geq_ref_ref(x, y) = gcompare_ref_ref (x, y) = 0 implement {a}(*tmp*) gneq_ref_ref(x, y) = gcompare_ref_ref (x, y) != 0 // (* ****** ****** *) // implement (a:t0p)(*tmp*) gcompare_ref_ref (x, y) = gcompare_val_val (x, y) // (* ****** ****** *) implement {a}(*tmp*) gabs_val(x) = if gisgtez_val(x) then x else gneg_val(x) // end of [gabs_val] (* ****** ****** *) // implement {a}(*tmp*) gmax_val_val(x, y) = if ggte_val_val (x, y) then x else y implement {a}(*tmp*) gmin_val_val(x, y) = if glte_val_val (x, y) then x else y // (* ****** ****** *) #include "./SHARE/gorder_int.dats" #include "./SHARE/gorder_uint.dats" (* ****** ****** *) #include "./SHARE/gorder_bool.dats" #include "./SHARE/gorder_char.dats" (* ****** ****** *) #include "./SHARE/gorder_float.dats" (* ****** ****** *) #include "./SHARE/gorder_string.dats" (* ****** ****** *) (* end of [gorder.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/tuple.dats0000644000175000017500000002132213431250607021063 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/tuple.atxt ** Time of generation: Thu Feb 14 11:29:47 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) // implement fprint_tup$beg<> (out) = fprint_string(out, "(") implement fprint_tup$end<> (out) = fprint_string(out, ")") implement fprint_tup$sep<> (out) = fprint_string(out, ", ") // (* ****** ****** *) // implement {a0,a1} fprint_tupval2 (out, x) = let val () = fprint_tup$beg<> (out) val () = fprint_val (out, x.0) val () = fprint_tup$sep<> (out) val () = fprint_val (out, x.1) val () = fprint_tup$end<> (out) in // nothing end // end of [fprint_tupval2] // implement (a0,a1) fprint_val (out, x) = fprint_tupval2 (out, x) // (* ****** ****** *) // implement {a0,a1,a2} fprint_tupval3 (out, x) = let val () = fprint_tup$beg<> (out) val () = fprint_val (out, x.0) val () = fprint_tup$sep<> (out) val () = fprint_val (out, x.1) val () = fprint_tup$sep<> (out) val () = fprint_val (out, x.2) val () = fprint_tup$end<> (out) in // nothing end // end of [fprint_tupval3] // implement (a0,a1,a2) fprint_val (out, x) = fprint_tupval3 (out, x) // (* ****** ****** *) // implement {a0,a1,a2,a3} fprint_tupval4 (out, x) = let val () = fprint_tup$beg<> (out) val () = fprint_val (out, x.0) val () = fprint_tup$sep<> (out) val () = fprint_val (out, x.1) val () = fprint_tup$sep<> (out) val () = fprint_val (out, x.2) val () = fprint_tup$sep<> (out) val () = fprint_val (out, x.3) val () = fprint_tup$end<> (out) in // nothing end // end of [fprint_tupval4] // implement (a0,a1,a2,a3) fprint_val (out, x) = fprint_tupval4 (out, x) // (* ****** ****** *) // implement {a0,a1} fprint_tupref2 (out, x) = let val () = fprint_tup$beg<> (out) val () = fprint_ref (out, x.0) val () = fprint_tup$sep<> (out) val () = fprint_ref (out, x.1) val () = fprint_tup$end<> (out) in // nothing end // end of [fprint_tupref2] // implement (a0,a1) fprint_ref (out, x) = fprint_tupref2 (out, x) // (* ****** ****** *) // implement {a0,a1,a2} fprint_tupref3 (out, x) = let val () = fprint_tup$beg<> (out) val () = fprint_ref (out, x.0) val () = fprint_tup$sep<> (out) val () = fprint_ref (out, x.1) val () = fprint_tup$sep<> (out) val () = fprint_ref (out, x.2) val () = fprint_tup$end<> (out) in // nothing end // end of [fprint_tupref3] implement (a0,a1,a2) fprint_ref (out, x) = fprint_tupref3 (out, x) // (* ****** ****** *) // implement {a0,a1,a2,a3} fprint_tupref4 (out, x) = let val () = fprint_tup$beg<> (out) val () = fprint_ref (out, x.0) val () = fprint_tup$sep<> (out) val () = fprint_ref (out, x.1) val () = fprint_tup$sep<> (out) val () = fprint_ref (out, x.2) val () = fprint_tup$sep<> (out) val () = fprint_ref (out, x.3) val () = fprint_tup$end<> (out) in // nothing end // end of [fprint_tupref4] // implement (a0,a1,a2,a3) fprint_ref (out, x) = fprint_tupref4 (out, x) // (* ****** ****** *) // implement fprint_tupbox$beg<> (out) = fprint_string(out, "$tup(") // implement fprint_tupbox$end<> (out) = fprint_string(out, ")") implement fprint_tupbox$sep<> (out) = fprint_string(out, ", ") // (* ****** ****** *) // implement {a0} fprint_tupbox1 (out, x) = let val () = fprint_tupbox$beg<> (out) val () = fprint_val (out, x.0) val () = fprint_tupbox$end<> (out) in // nothing end // end of [fprint_tupbox1] // implement(a0) fprint_val (out, x) = fprint_tupbox1 (out, x) // (* ****** ****** *) // implement {a0,a1} fprint_tupbox2 (out, x) = let val () = fprint_tupbox$beg<> (out) val () = fprint_val (out, x.0) val () = fprint_tupbox$sep<> (out) val () = fprint_val (out, x.1) val () = fprint_tupbox$end<> (out) in // nothing end // end of [fprint_tupbox2] // implement(a0,a1) fprint_val (out, x) = fprint_tupbox2 (out, x) // (* ****** ****** *) // implement {a0,a1,a2} fprint_tupbox3 (out, x) = let val () = fprint_tupbox$beg<> (out) val () = fprint_val (out, x.0) val () = fprint_tupbox$sep<> (out) val () = fprint_val (out, x.1) val () = fprint_tupbox$sep<> (out) val () = fprint_val (out, x.2) val () = fprint_tupbox$end<> (out) in // nothing end // end of [fprint_tupbox3] // implement(a0,a1,a2) fprint_val (out, x) = fprint_tupbox3 (out, x) // (* ****** ****** *) // implement {a0,a1,a2,a3} fprint_tupbox4 (out, x) = let val () = fprint_tupbox$beg<> (out) val () = fprint_val (out, x.0) val () = fprint_tupbox$sep<> (out) val () = fprint_val (out, x.1) val () = fprint_tupbox$sep<> (out) val () = fprint_val (out, x.2) val () = fprint_tupbox$sep<> (out) val () = fprint_val (out, x.3) val () = fprint_tupbox$end<> (out) in // nothing end // end of [fprint_tupbox4] // implement(a0,a1,a2,a3) fprint_val (out, x) = fprint_tupbox4 (out, x) // (* ****** ****** *) implement {a0,a1} tupval2_equal(x, y) = ( // if gequal_val_val(x.0, y.0) then gequal_val_val(x.1, y.1) else false // ) (* end of [tupval2_val_val] *) implement (a0,a1) gequal_val_val (x, y) = tupval2_equal (x, y) (* ****** ****** *) implement {a0,a1,a2} tupval3_equal(x, y) = ( // if gequal_val_val(x.0, y.0) then ( if gequal_val_val(x.1, y.1) then gequal_val_val(x.2, y.2) else false // end of [if] ) else false // ) (* end of [tupval3_val_val] *) implement (a0,a1,a2) gequal_val_val (x, y) = tupval3_equal (x, y) (* ****** ****** *) implement {a0,a1,a2,a3} tupval4_equal(x, y) = ( // if gequal_val_val(x.0, y.0) then ( if gequal_val_val(x.1, y.1) then ( if gequal_val_val(x.2, y.2) then gequal_val_val(x.3, y.3) else false // end of [if] ) else false ) else false // ) (* end of [tupval4_val_val] *) implement (a0,a1,a2,a3) gequal_val_val (x, y) = tupval4_equal (x, y) (* ****** ****** *) implement {a0,a1} tupval2_compare (x, y) = let val sgn0 = gcompare_val_val (x.0, y.0) in if sgn0 != 0 then sgn0 else gcompare_val_val (x.1, y.1) // end of [if] end // end of [tupval2_compare] implement (a0,a1) gcompare_val_val (x, y) = tupval2_compare (x, y) (* ****** ****** *) implement {a0,a1,a2} tupval3_compare (x, y) = let // val sgn0 = gcompare_val_val (x.0, y.0) // in // if sgn0 != 0 then sgn0 else let val sgn1 = gcompare_val_val (x.1, y.1) in if sgn1 != 0 then sgn1 else gcompare_val_val (x.2, y.2) // end of [if] end // end of [if] // end // end of [tupval3_compare] implement (a0,a1,a2) gcompare_val_val (x, y) = tupval3_compare (x, y) (* ****** ****** *) implement {a0,a1,a2,a3} tupval4_compare (x, y) = let // val sgn0 = gcompare_val_val (x.0, y.0) // in // if sgn0 != 0 then sgn0 else let val sgn1 = gcompare_val_val (x.1, y.1) in // if sgn1 != 0 then sgn1 else let val sgn2 = gcompare_val_val (x.2, y.2) in if sgn2 != 0 then sgn2 else gcompare_val_val (x.3, y.3) // end of [if] end // end of [if] // end // end of [if] // end // end of [tupval4_compare] implement (a0,a1,a2,a3) gcompare_val_val (x, y) = tupval4_compare (x, y) (* ****** ****** *) (* end of [tuple.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/matrixptr.dats0000644000175000017500000001203613431250607021766 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/matrixptr.atxt ** Time of generation: Thu Feb 14 11:29:51 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement{} arrayptr2matrixptr_int(A, m, n) = $UN.castvwtp0(A) implement{} arrayptr2matrixptr_size(A, m, n) = $UN.castvwtp0(A) (* ****** ****** *) implement{a} matrixptr_make_elt {m, n} (m, n, x0) = let val mn = $UN.cast{Size}(m * n) in $UN.castvwtp0{matrixptr(a,m,n)}(arrayptr_make_elt (mn, x0)) end // end of [matrixptr_make_elt] (* ****** ****** *) implement{a} matrixptr_get_at_int (M, i, n, j) = let val ij = $UN.cast{Size}(i * n + j) in $UN.ptr0_get (ptr_add (ptrcast(M), ij)) end // end of [matrixptr_get_at_int] implement{a} matrixptr_get_at_size (M, i, n, j) = let val ij = $UN.cast{Size}(i * n + j) in $UN.ptr0_get (ptr_add (ptrcast(M), ij)) end // end of [matrixptr_get_at_size] (* ****** ****** *) implement{a} matrixptr_set_at_int (M, i, n, j, x) = let val ij = $UN.cast{Size}(i * n + j) in $UN.ptr0_set (ptr_add (ptrcast(M), ij), x) end // end of [matrixptr_set_at_int] implement{a} matrixptr_set_at_size (M, i, n, j, x) = let val ij = $UN.cast{Size}(i * n + j) in $UN.ptr0_set (ptr_add (ptrcast(M), ij), x) end // end of [matrixptr_set_at_size] (* ****** ****** *) implement{a} matrixptr_exch_at_int (M, i, n, j, x) = let val ij = $UN.cast{Size}(i * n + j) in $UN.ptr0_exch (ptr_add (ptrcast(M), ij), x) end // end of [matrixptr_exch_at_int] implement{a} matrixptr_exch_at_size (M, i, n, j, x) = let val ij = $UN.cast{Size}(i * n + j) in $UN.ptr0_exch (ptr_add (ptrcast(M), ij), x) end // end of [matrixptr_exch_at_size] (* ****** ****** *) implement{a} fprint_matrixptr {m,n} (out, M, m, n) = let // val p0 = ptrcast (M) // val ( pf, fpf | p0 ) = $UN.ptr_vtake {matrix(a,m,n)} (p0) val () = fprint_matrix (out, !p0, m, n) prval () = fpf (pf) // in // nothing end // end of [fprint_matrixptr] (* ****** ****** *) implement{a} fprint_matrixptr_sep ( out, M, m, n, sep1, sep2 ) = let // implement fprint_matrix$sep1<> (out) = fprint_string (out, sep1) implement fprint_matrix$sep2<> (out) = fprint_string (out, sep2) // in fprint_matrixptr (out, M, m, n) end // end of [fprint_matrixptr_sep] (* ****** ****** *) (* implement matrixptr_free = ATS_MFREE *) (* ****** ****** *) implement{a} matrixptr_foreach (M, m, n) = let var env: void = () in matrixptr_foreach_env (M, m, n, env) end // end of [matrixptr_foreach] implement {a}{env} matrixptr_foreach_env (M, m, n, env) = res where { // val p = ptrcast(M) prval pfarr = matrixptr_takeout(M) val res = matrix_foreach_env (!p, m, n, env) prval () = matrixptr_addback(pfarr | M) // } (* end of [matrixptr_foreach_env] *) (* ****** ****** *) implement {a}(*tmp*) matrixptr_initize (M, m, n) = () where { // val p = ptrcast(M) prval pfarr = matrixptr_takeout(M) val () = matrix_initize(!p, m, n) prval () = matrixptr_addback(pfarr | M) // } (* end of [matrixptr_initize] *) (* ****** ****** *) implement {a}(*tmp*) matrixptr_uninitize (M, m, n) = () where { // val p = ptrcast(M) prval pfarr = matrixptr_takeout(M) val () = matrix_uninitize(!p, m, n) prval () = matrixptr_addback(pfarr | M) // } (* end of [matrixptr_uninitize] *) (* ****** ****** *) implement {a}(*tmp*) matrixptr_freelin (M, m, n) = let // val () = matrixptr_uninitize(M, m, n) // in matrixptr_free{a?}(M) end // end of [matrixptr_freelin] (* ****** ****** *) implement{a} matrixptr_tabulate (nrow, ncol) = ( matrixptr_encode2(matrix_ptr_tabulate (nrow, ncol)) ) (* end of [matrixptr_tabulate] *) (* ****** ****** *) (* end of [matrixptr.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/grandom.dats0000644000175000017500000000643313431250607021367 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/grandom.atxt ** Time of generation: Thu Feb 14 11:29:49 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: June, 2015 *) (* ****** ****** *) implement{} grandom_int() = 0 implement{} grandom_uint() = 0u (* ****** ****** *) implement{} grandom_bool() = false (* ****** ****** *) implement{} grandom_float() = 0.0f implement{} grandom_double() = 0.0 (* ****** ****** *) implement grandom_val () = grandom_int<> () implement grandom_val () = grandom_uint<> () (* ****** ****** *) implement grandom_val () = grandom_bool<> () (* ****** ****** *) implement grandom_val () = grandom_double<> () (* ****** ****** *) implement {a}(*tmp*) grandom_ref(x) = (x := grandom_val ()) (* ****** ****** *) // implement {a}(*tmp*) grandom_list (n) = list_vt2t(grandom_list_vt(n)) // implement {a}(*tmp*) grandom_list_vt (n) = res where { // fun loop {n:nat} .. ( n: int n, res: &ptr? >> list_vt (a, n) ) : void = let in // if n > 0 then let // val () = res := cons_vt{a}{0} (_, _) // end of [val] val+list_vt_cons (x, res1) = res val () = grandom_ref (x) val () = loop (pred (n), res1) // in fold@ (res) end else res := nil_vt((*void*)) // end // end of [loop] // var res: ptr // uninitialized val () = loop (n, res) // } (* end of [grandom_list_vt] *) // (* ****** ****** *) implement {a}(*tmp*) grandom_arrayptr (n) = A where { // val A = arrayptr_make_uninitized (n) // implement array_initize$init (_, x) = grandom_ref (x) // prval pf = arrayptr_takeout (A) val () = array_initize (!(ptrcast(A)), n) prval () = arrayptr_addback (pf | A) // } (* end of [grandom_arrayptr] *) implement {a}(*tmp*) grandom_arrayref (n) = arrayptr_refize(grandom_arrayptr (n)) // end of [grandom_arrayref] implement {a}(*tmp*) grandom_arrszref (n) = let val n = g1ofg0_uint (n) in arrszref_make_arrayref (grandom_arrayref (n), n) end // end of [grandom_arrszref] (* ****** ****** *) (* end of [grandom.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/integer_long.dats0000644000175000017500000003417513431250607022420 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2014 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/integer_long.atxt ** Time of generation: Thu Feb 14 11:29:45 2019 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // implement g0int2int = g0int2int_int_lint implement g1int2int = g1int2int_int_lint // implement g0uint2int = g0uint2int_uint_lint implement g1uint2int = g1uint2int_uint_lint // (* ****** ****** *) // implement g0int2uint = g0int2uint_int_ulint implement g1int2uint = g1int2uint_int_ulint // implement g0uint2uint = g0uint2uint_uint_ulint implement g1uint2uint = g1uint2uint_uint_ulint // (* ****** ****** *) // implement g0int2int = g0int2int_int_llint implement g1int2int = g1int2int_int_llint // implement g0uint2int = g0uint2int_uint_llint implement g1uint2int = g1uint2int_uint_llint // (* ****** ****** *) // implement g0int2uint = g0int2uint_int_ullint implement g1int2uint = g1int2uint_int_ullint // implement g0uint2uint = g0uint2uint_uint_ullint implement g1uint2uint = g1uint2uint_uint_ullint // (* ****** ****** *) // implement g0int2int = g0int2int_lint_lint implement g0int2int = g0int2int_lint_llint // implement g0int2uint = g0int2uint_lint_ulint implement g0int2uint = g0int2uint_lint_ullint // (* ****** ****** *) // implement g0uint2int = g0uint2int_ulint_lint implement g0uint2int = g0uint2int_ulint_llint // implement g0uint2uint = g0uint2uint_ulint_ulint implement g0uint2uint = g0uint2uint_ulint_ullint // (* ****** ****** *) // implement g0int2int = g0int2int_llint_llint // implement g0int2uint = g0int2uint_llint_ullint // (* ****** ****** *) // implement g0uint2int = g0uint2int_ullint_llint // implement g0uint2uint = g0uint2uint_ullint_ullint // (* ****** ****** *) // implement g0int2string = g0int2string_lint implement g0int2string = g0int2string_llint // implement g0string2int = g0string2int_lint implement g0string2int = g0string2int_llint implement g0string2uint = g0string2uint_ulint implement g0string2uint = g0string2uint_ullint // (* ****** ****** *) // implement g0int_neg = g0int_neg_lint implement g0int_abs = g0int_abs_lint implement g0int_succ = g0int_succ_lint implement g0int_pred = g0int_pred_lint implement g0int_half = g0int_half_lint implement g0int_add = g0int_add_lint implement g0int_sub = g0int_sub_lint implement g0int_mul = g0int_mul_lint implement g0int_div = g0int_div_lint implement g0int_mod = g0int_mod_lint implement g0int_asl = g0int_asl_lint implement g0int_asr = g0int_asr_lint implement g0int_isltz = g0int_isltz_lint implement g0int_isltez = g0int_isltez_lint implement g0int_isgtz = g0int_isgtz_lint implement g0int_isgtez = g0int_isgtez_lint implement g0int_iseqz = g0int_iseqz_lint implement g0int_isneqz = g0int_isneqz_lint implement g0int_lt = g0int_lt_lint implement g0int_lte = g0int_lte_lint implement g0int_gt = g0int_gt_lint implement g0int_gte = g0int_gte_lint implement g0int_eq = g0int_eq_lint implement g0int_neq = g0int_neq_lint implement g0int_compare = g0int_compare_lint implement g0int_max = g0int_max_lint implement g0int_min = g0int_min_lint // implement fprint_val (out, x) = fprint_lint (out, x)// implement g1int_neg = g1int_neg_lint implement g1int_abs = g1int_abs_lint implement g1int_succ = g1int_succ_lint implement g1int_pred = g1int_pred_lint implement g1int_half = g1int_half_lint implement g1int_add = g1int_add_lint implement g1int_sub = g1int_sub_lint implement g1int_mul = g1int_mul_lint implement g1int_div = g1int_div_lint implement g1int_nmod = g1int_nmod_lint implement g1int_isltz = g1int_isltz_lint implement g1int_isltez = g1int_isltez_lint implement g1int_isgtz = g1int_isgtz_lint implement g1int_isgtez = g1int_isgtez_lint implement g1int_iseqz = g1int_iseqz_lint implement g1int_isneqz = g1int_isneqz_lint implement g1int_lt = g1int_lt_lint implement g1int_lte = g1int_lte_lint implement g1int_gt = g1int_gt_lint implement g1int_gte = g1int_gte_lint implement g1int_eq = g1int_eq_lint implement g1int_neq = g1int_neq_lint implement g1int_compare = g1int_compare_lint implement g1int_max = g1int_max_lint implement g1int_min = g1int_min_lint // (* ****** ****** *) // implement g0int_neg = g0int_neg_llint implement g0int_abs = g0int_abs_llint implement g0int_succ = g0int_succ_llint implement g0int_pred = g0int_pred_llint implement g0int_half = g0int_half_llint implement g0int_add = g0int_add_llint implement g0int_sub = g0int_sub_llint implement g0int_mul = g0int_mul_llint implement g0int_div = g0int_div_llint implement g0int_mod = g0int_mod_llint implement g0int_asl = g0int_asl_llint implement g0int_asr = g0int_asr_llint implement g0int_isltz = g0int_isltz_llint implement g0int_isltez = g0int_isltez_llint implement g0int_isgtz = g0int_isgtz_llint implement g0int_isgtez = g0int_isgtez_llint implement g0int_iseqz = g0int_iseqz_llint implement g0int_isneqz = g0int_isneqz_llint implement g0int_lt = g0int_lt_llint implement g0int_lte = g0int_lte_llint implement g0int_gt = g0int_gt_llint implement g0int_gte = g0int_gte_llint implement g0int_eq = g0int_eq_llint implement g0int_neq = g0int_neq_llint implement g0int_compare = g0int_compare_llint implement g0int_max = g0int_max_llint implement g0int_min = g0int_min_llint // implement fprint_val (out, x) = fprint_llint (out, x)// implement g1int_neg = g1int_neg_llint implement g1int_abs = g1int_abs_llint implement g1int_succ = g1int_succ_llint implement g1int_pred = g1int_pred_llint implement g1int_half = g1int_half_llint implement g1int_add = g1int_add_llint implement g1int_sub = g1int_sub_llint implement g1int_mul = g1int_mul_llint implement g1int_div = g1int_div_llint implement g1int_nmod = g1int_nmod_llint implement g1int_isltz = g1int_isltz_llint implement g1int_isltez = g1int_isltez_llint implement g1int_isgtz = g1int_isgtz_llint implement g1int_isgtez = g1int_isgtez_llint implement g1int_iseqz = g1int_iseqz_llint implement g1int_isneqz = g1int_isneqz_llint implement g1int_lt = g1int_lt_llint implement g1int_lte = g1int_lte_llint implement g1int_gt = g1int_gt_llint implement g1int_gte = g1int_gte_llint implement g1int_eq = g1int_eq_llint implement g1int_neq = g1int_neq_llint implement g1int_compare = g1int_compare_llint implement g1int_max = g1int_max_llint implement g1int_min = g1int_min_llint // (* ****** ****** *) // implement g0uint_succ = g0uint_succ_ulint implement g0uint_pred = g0uint_pred_ulint implement g0uint_half = g0uint_half_ulint implement g0uint_add = g0uint_add_ulint implement g0uint_sub = g0uint_sub_ulint implement g0uint_mul = g0uint_mul_ulint implement g0uint_div = g0uint_div_ulint implement g0uint_mod = g0uint_mod_ulint implement g0uint_lsl = g0uint_lsl_ulint implement g0uint_lsr = g0uint_lsr_ulint implement g0uint_lnot = g0uint_lnot_ulint implement g0uint_lor = g0uint_lor_ulint implement g0uint_lxor = g0uint_lxor_ulint implement g0uint_land = g0uint_land_ulint implement g0uint_isgtz = g0uint_isgtz_ulint implement g0uint_iseqz = g0uint_iseqz_ulint implement g0uint_isneqz = g0uint_isneqz_ulint implement g0uint_lt = g0uint_lt_ulint implement g0uint_lte = g0uint_lte_ulint implement g0uint_gt = g0uint_gt_ulint implement g0uint_gte = g0uint_gte_ulint implement g0uint_eq = g0uint_eq_ulint implement g0uint_neq = g0uint_neq_ulint implement g0uint_compare = g0uint_compare_ulint implement g0uint_max = g0uint_max_ulint implement g0uint_min = g0uint_min_ulint // implement fprint_val (out, x) = fprint_ulint (out, x)// implement g1uint_succ = g1uint_succ_ulint implement g1uint_pred = g1uint_pred_ulint implement g1uint_half = g1uint_half_ulint implement g1uint_add = g1uint_add_ulint implement g1uint_sub = g1uint_sub_ulint implement g1uint_mul = g1uint_mul_ulint implement g1uint_div = g1uint_div_ulint implement g1uint_mod = g1uint_mod_ulint implement g1uint_isgtz = g1uint_isgtz_ulint implement g1uint_iseqz = g1uint_iseqz_ulint implement g1uint_isneqz = g1uint_isneqz_ulint implement g1uint_lt = g1uint_lt_ulint implement g1uint_lte = g1uint_lte_ulint implement g1uint_gt = g1uint_gt_ulint implement g1uint_gte = g1uint_gte_ulint implement g1uint_eq = g1uint_eq_ulint implement g1uint_neq = g1uint_neq_ulint implement g1uint_compare = g1uint_compare_ulint implement g1uint_max = g1uint_max_ulint implement g1uint_min = g1uint_min_ulint // (* ****** ****** *) // implement g0uint_succ = g0uint_succ_ullint implement g0uint_pred = g0uint_pred_ullint implement g0uint_half = g0uint_half_ullint implement g0uint_add = g0uint_add_ullint implement g0uint_sub = g0uint_sub_ullint implement g0uint_mul = g0uint_mul_ullint implement g0uint_div = g0uint_div_ullint implement g0uint_mod = g0uint_mod_ullint implement g0uint_lsl = g0uint_lsl_ullint implement g0uint_lsr = g0uint_lsr_ullint implement g0uint_lnot = g0uint_lnot_ullint implement g0uint_lor = g0uint_lor_ullint implement g0uint_lxor = g0uint_lxor_ullint implement g0uint_land = g0uint_land_ullint implement g0uint_isgtz = g0uint_isgtz_ullint implement g0uint_iseqz = g0uint_iseqz_ullint implement g0uint_isneqz = g0uint_isneqz_ullint implement g0uint_lt = g0uint_lt_ullint implement g0uint_lte = g0uint_lte_ullint implement g0uint_gt = g0uint_gt_ullint implement g0uint_gte = g0uint_gte_ullint implement g0uint_eq = g0uint_eq_ullint implement g0uint_neq = g0uint_neq_ullint implement g0uint_compare = g0uint_compare_ullint implement g0uint_max = g0uint_max_ullint implement g0uint_min = g0uint_min_ullint // implement fprint_val (out, x) = fprint_ullint (out, x)// implement g1uint_succ = g1uint_succ_ullint implement g1uint_pred = g1uint_pred_ullint implement g1uint_half = g1uint_half_ullint implement g1uint_add = g1uint_add_ullint implement g1uint_sub = g1uint_sub_ullint implement g1uint_mul = g1uint_mul_ullint implement g1uint_div = g1uint_div_ullint implement g1uint_mod = g1uint_mod_ullint implement g1uint_isgtz = g1uint_isgtz_ullint implement g1uint_iseqz = g1uint_iseqz_ullint implement g1uint_isneqz = g1uint_isneqz_ullint implement g1uint_lt = g1uint_lt_ullint implement g1uint_lte = g1uint_lte_ullint implement g1uint_gt = g1uint_gt_ullint implement g1uint_gte = g1uint_gte_ullint implement g1uint_eq = g1uint_eq_ullint implement g1uint_neq = g1uint_neq_ullint implement g1uint_compare = g1uint_compare_ullint implement g1uint_max = g1uint_max_ullint implement g1uint_min = g1uint_min_ullint // (* ****** ****** *) // implement nmod_g1int_int1 (x, y) = g1i2i(g1int_nmod(x, g1i2i(y))) implement nmod_g1int_int1 (x, y) = g1i2i(g1int_nmod(x, g1i2i(y))) // (* ****** ****** *) (* end of [integer_long.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/matrixref.dats0000644000175000017500000002204613431250607021737 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/matrixref.atxt ** Time of generation: Thu Feb 14 11:29:51 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement{a} matrixref_make_elt (nrow, ncol, x) = matrixptr_refize(matrixptr_make_elt (nrow, ncol, x)) // end of [matrixref_make_elt] (* ****** ****** *) implement{a} matrixref_get_at_size (A, i, n, j) = let // val ( vbox pf | p ) = matrixref_get_viewptr (A) // in matrix_get_at_size (!p, i, n, j) end // end of [matrixref_get_at_size] (* ****** ****** *) // implement {a}(*tmp*) matrixref_get_at_int (M, i, n, j) = matrixref_get_at_size (M, i2sz(i), i2sz(n), i2sz(j)) // (* ****** ****** *) implement{a} matrixref_set_at_size (A, i, n, j, x) = let // val ( vbox pf | p ) = matrixref_get_viewptr (A) // in matrix_set_at_size (!p, i, n, j, x) end // end of [matrixref_set_at_size] (* ****** ****** *) // implement {a}(*tmp*) matrixref_set_at_int (M, i, n, j, x) = matrixref_set_at_size (M, i2sz(i), i2sz(n), i2sz(j), x) // (* ****** ****** *) implement {a}(*tmp*) fprint_matrixref {m,n} ( out, M, nrow, ncol ) = { // val M = $UN.castvwtp1 {matrixptr(a, m, n)}(M) // val () = fprint_matrixptr(out, M, nrow, ncol) // prval ((*void*)) = $UN.cast2void(M) // } (* end of [fprint_matrixref] *) implement {a}(*tmp*) fprint_matrixref_sep {m,n} ( out, M, nrow, ncol, sep1, sep2 ) = { // val M = $UN.castvwtp1{matrixptr(a, m, n)}(M) // val () = fprint_matrixptr_sep(out, M, nrow, ncol, sep1, sep2) // prval ((*void*)) = $UN.cast2void (M) // } (* end of [fprint_matrixref_sep] *) (* ****** ****** *) implement {a}(*tmp*) matrixref_copy {m,n} (M, m, n) = let // val A = $UN.cast{arrayref(a,m*n)}(M) // in // $UN.castvwtp0 {matrixptr(a,m,n)}(arrayref_copy(A, m*n)) // end // end of [matrixref_copy] (* ****** ****** *) implement{a} matrixref_tabulate (nrow, ncol) = ( matrixptr_refize(matrixptr_tabulate(nrow, ncol)) ) (* end of [matrixref_tabulate] *) (* ****** ****** *) implement{a} matrixref_foreach (A, m, n) = let // var env: void = () // in matrixref_foreach_env(A, m, n, env) end // end of [matrixref_foreach] implement {a}{env} matrixref_foreach_env (M, m, n, env) = let // val (vbox pf | p) = matrixref_get_viewptr(M) // in $effmask_ref(matrix_foreach_env(!p, m, n, env)) end // end of [matrixref_foreach_env] (* ****** ****** *) local // datatype mtrxszref ( a:viewt@ype ) = {m,n:int} MTRXSZREF of ( matrixref(a, m, n) , size_t(m), size_t(n) ) // end of [mtrxszref] // assume mtrxszref_vt0ype_type = mtrxszref // in (* in of [local] *) implement{} mtrxszref_make_matrixref (M, nrow, ncol) = MTRXSZREF (M, nrow, ncol) // end of [mtrxszref_make_matrixref] (* ****** ****** *) implement{} mtrxszref_get_ref (MSZ) = let val+MTRXSZREF (M, nrow, ncol) = MSZ in $UN.cast2Ptr1(M) end // end of [mtrxszref_get_ref] (* ****** ****** *) implement{} mtrxszref_get_nrow (MSZ) = let val+MTRXSZREF (M, nrow, ncol) = MSZ in nrow end // end of [mtrxszref_get_nrow] implement{} mtrxszref_get_ncol (MSZ) = let val+MTRXSZREF (M, nrow, ncol) = MSZ in ncol end // end of [mtrxszref_get_ncol] (* ****** ****** *) implement{} mtrxszref_get_refsize (MSZ, nrow_r, ncol_r) = let // val+MTRXSZREF (M, nrow, ncol) = MSZ // prval ((*void*)) = lemma_matrixref_param (M) // in nrow_r := nrow; ncol_r := ncol; M(*matrixref*) end // end of [mtrxszref_get_nrow] end // end of [local] (* ****** ****** *) implement{a} mtrxszref_make_elt (nrow, ncol, x) = let // val nrow = g1ofg0_uint (nrow) val ncol = g1ofg0_uint (ncol) val M = matrixref_make_elt (nrow, ncol, x) // in mtrxszref_make_matrixref (M, nrow, ncol) end // end of [mtrxszref_make_elt] (* ****** ****** *) implement{a} mtrxszref_get_at_int (MSZ, i, j) = let // val i = g1ofg0_int(i) and j = g1ofg0_int(j) // in // if i >= 0 then ( // if j >= 0 then ( mtrxszref_get_at_size(MSZ,i2sz(i),i2sz(j)) ) else $raise MatrixSubscriptExn((* j < 0 *)) // ) else $raise MatrixSubscriptExn((* i < 0 *)) // end // end of [mtrxszref_get_at_gint] implement{a} mtrxszref_get_at_size (MSZ, i, j) = let // var nrow: size_t and ncol: size_t // val M = $effmask_wrt ( mtrxszref_get_refsize (MSZ, nrow, ncol) ) (* end of [val] *) // val i = g1ofg0_uint(i) and j = g1ofg0_uint(j) // in // if nrow > i then ( // if ncol > j then ( matrixref_get_at_size (M, i, ncol, j) ) else $raise MatrixSubscriptExn((*void*)) // ) else $raise MatrixSubscriptExn((*void*)) // end // end of [mtrxszref_get_at_size] (* ****** ****** *) implement{a} mtrxszref_set_at_int (MSZ, i, j, x) = let // val i = g1ofg0_int(i) and j = g1ofg0_int(j) // in // if i >= 0 then ( // if j >= 0 then ( mtrxszref_set_at_size(MSZ,i2sz(i),i2sz(j),x) ) else $raise MatrixSubscriptExn( (* j < 0 *) ) // ) else $raise MatrixSubscriptExn( (* i < 0 *) ) // end // end of [mtrxszref_set_at_int] implement{a} mtrxszref_set_at_size (MSZ, i, j, x) = let // var nrow: size_t and ncol: size_t // val M = ( mtrxszref_get_refsize (MSZ, nrow, ncol) ) (* end of [val] *) // val i = g1ofg0_uint (i) and j = g1ofg0_uint (j) // in // if nrow > i then ( // if ncol > j then ( matrixref_set_at_size(M, i, ncol, j, x) ) else $raise MatrixSubscriptExn((*void*)) // ) else $raise MatrixSubscriptExn((*void*)) // end // end of [mtrxszref_set_at_size] (* ****** ****** *) implement{a} fprint_mtrxszref (out, MSZ) = let // var nrow: size_t and ncol: size_t val A = mtrxszref_get_refsize (MSZ, nrow, ncol) // in fprint_matrixref (out, A, nrow, ncol) end // end of [fprint_mtrxszref] implement{a} fprint_mtrxszref_sep (out, MSZ, sep1, sep2) = let // var nrow: size_t and ncol: size_t val A = mtrxszref_get_refsize (MSZ, nrow, ncol) // in fprint_matrixref_sep (out, A, nrow, ncol, sep1, sep2) end // end of [fprint_mtrxszref_sep] (* ****** ****** *) implement{a} mtrxszref_foreach (A) = let // var env: void = () // in mtrxszref_foreach_env (A, env) end // end of [mtrxszref_foreach] implement {a}{env} mtrxszref_foreach_env (MSZ, env) = let // var nrow: size_t and ncol: size_t // val MAT = mtrxszref_get_refsize(MSZ, nrow, ncol) // in matrixref_foreach_env (MAT, nrow, ncol, env) end // end of [mtrxszref_foreach_env] (* ****** ****** *) implement {a}(*tmp*) mtrxszref_tabulate (nrow, ncol) = let // val nrow = g1ofg0_uint (nrow) val ncol = g1ofg0_uint (ncol) val M = matrixref_tabulate (nrow, ncol) // in mtrxszref_make_matrixref (M, nrow, ncol) end // end of [mtrxszref_tabulate] (* ****** ****** *) // implement {a}(*tmp*) streamize_mtrxszref_row_elt (MSZ) = let // var m: size_t and n: size_t // val M0 = mtrxszref_get_refsize(MSZ, m, n) // in streamize_matrixref_row_elt(M0, m, n) end // end of [streamize_mtrxszref_row_elt] // implement {a}(*tmp*) streamize_mtrxszref_col_elt (MSZ) = let // var m: size_t and n: size_t // val M0 = mtrxszref_get_refsize(MSZ, m, n) // in streamize_matrixref_col_elt(M0, m, n) end // end of [streamize_mtrxszref_col_elt] // (* ****** ****** *) // implement {a}(*tmp*) streamize_matrixref_row_elt {m,n}(M0, m, n) = let // val A0 = $UN.cast{arrayref(a,m*n)}(M0) // in streamize_arrayref_elt(A0, m * n) end // end of [streamize_matrixref_row_elt] // implement {a}(*tmp*) streamize_matrixref_col_elt {m,n} (M0, m, n) = auxmain(i2sz(0)) where { // prval () = lemma_g1uint_param(m) prval () = lemma_g1uint_param(n) // fun auxmain ( j : sizeLte(n) ) : stream_vt(a) = ( if (j < n) then auxmain2(j, i2sz(0)) else stream_vt_make_nil() ) // and auxmain2 ( j : sizeLt(n), i : sizeLte(m) ) : stream_vt(a) = $ldelay ( if (i < m) then stream_vt_cons{a} (matrixref_get_at(M0, i, n, j), auxmain2(j, i+1)) else !(auxmain(j+1)) ) (* end of [auxmain2] *) // } (* end of [streamize_matrixref_col_elt] *) // (* ****** ****** *) // (* end of [matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/gnumber.dats0000644000175000017500000000574613431250607021405 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gnumber.atxt ** Time of generation: Thu Feb 14 11:29:49 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) (* Author: Brandon Barker *) (* Authoremail: brandon.barker AT gmail DOT com *) (* Start time: July, 2013 *) (* ****** ****** *) implement {a}(*tmp*) gadd_val_int(x, y) = gadd_val_val (x, gnumber_int (y)) implement {a}(*tmp*) gsub_val_int(x, y) = gsub_val_val (x, gnumber_int (y)) (* ****** ****** *) implement {a}(*tmp*) gmul_int_val(x, y) = gmul_val_val (gnumber_int (x), y) implement {a}(*tmp*) gmul_val_int(x, y) = gmul_val_val (x, gnumber_int (y)) (* ****** ****** *) implement {a}(*tmp*) gdiv_int_val(x, y) = gdiv_val_val (gnumber_int (x), y) implement {a}(*tmp*) gdiv_val_int(x, y) = gdiv_val_val (x, gnumber_int (y)) implement {a}(*tmp*) gmod_val_int(x, y) = gmod_val_val (x, gnumber_int (y)) (* ****** ****** *) implement {a}(*tmp*) gpow_int_val (n, x) = let // fun loop {n:pos} .. ( n: int(n), x: a, res: a ) :<> (a) = ( // if n >= 2 then let val n2 = half(n) val r2 = n - (n2 + n2) in if r2 = 0 then loop (n2, gmul_val_val (x, x), res) else loop (n2, gmul_val_val (x, x), gmul_val_val (x, res)) // end of [if] end else gmul_val_val (x, res) // ) (* end of [loop] *) // in // if n >= 2 then loop (n-1, x, x) else ( if n >= 1 then x else gnumber_int (1) ) (* end of [else] *) // end // end of [gpow_int_val] (* ****** ****** *) #include "./SHARE/gnumber_int.dats" #include "./SHARE/gnumber_uint.dats" (* ****** ****** *) #include "./SHARE/gnumber_float.dats" (* ****** ****** *) (* end of [gnumber.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/bool.dats0000644000175000017500000000367013431250607020673 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/bool.atxt ** Time of generation: Thu Feb 14 11:29:46 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading at run-time (* ****** ****** *) (* // // HX: see CATS/bool.cats // implement bool2string (b) = if b then "true" else "false" // end of [bool2string] *) (* ****** ****** *) (* // // HX: see CATS/bool.cats // implement fprint_bool (out, x) = fprint_string (out, bool2string (x)) // end of [fprint_bool] *) implement fprint_val = fprint_bool (* ****** ****** *) (* end of [bool.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/arrayref.dats0000644000175000017500000003153613431250607021555 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/arrayref.atxt ** Time of generation: Thu Feb 14 11:29:50 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement {a}(*tmp*) arrayref_make_elt(asz, x) = arrayptr_refize(arrayptr_make_elt(asz, x)) // end of [arrayref_make_elt] (* ****** ****** *) implement {}(*tmp*) arrayref_make_intrange (left, right) = ( arrayptr_refize{int} (arrayptr_make_intrange<(*void*)>(left, right)) ) (* arrayref_make_intrange *) (* ****** ****** *) implement {a}(*tmp*) arrayref_make_list(asz, xs) = arrayptr_refize(arrayptr_make_list(asz, xs)) // end of [arrayref_make_list] implement {a}(*tmp*) arrayref_make_rlist(asz, xs) = arrayptr_refize(arrayptr_make_rlist(asz, xs)) // end of [arrayref_make_rlist] (* ****** ****** *) // implement {a}(*tmp*) arrayref_head(A) = $UN.ptr0_get (arrayref2ptr(A)) implement {a}(*tmp*) arrayref_tail{n}(A) = $UN.cast{arrayref(a,n-1)}(ptr_succ(arrayref2ptr(A))) // (* ****** ****** *) implement {a}{tk}(*tmp*) arrayref_get_at_gint (A, i) = let val (vbox pf | p) = arrayref_get_viewptr(A) in array_get_at_gint(!p, i) end // end of [arrayref_get_at_gint] implement {a}{tk}(*tmp*) arrayref_get_at_guint (A, i) = let val (vbox pf | p) = arrayref_get_viewptr(A) in array_get_at_guint(!p, i) end // end of [arrayref_get_at_guint] (* ****** ****** *) implement {a}{tk}(*tmp*) arrayref_set_at_gint (A, i, x) = let val (vbox pf | p) = arrayref_get_viewptr(A) in array_set_at_gint(!p, i, x) end // end of [arrayref_set_at_gint] implement {a}{tk}(*tmp*) arrayref_set_at_guint (A, i, x) = let val (vbox pf | p) = arrayref_get_viewptr(A) in array_set_at_guint(!p, i, x) end // end of [arrayref_set_at_guint] (* ****** ****** *) implement {a}{tk}(*tmp*) arrayref_exch_at_gint (A, i, x) = let val (vbox pf | p) = arrayref_get_viewptr(A) in array_exch_at_gint(!p, i, x) end // end of [arrayref_exch_at_gint] implement {a}{tk}(*tmp*) arrayref_exch_at_guint (A, i, x) = let val (vbox pf | p) = arrayref_get_viewptr(A) in array_exch_at_guint(!p, i, x) end // end of [arrayref_exch_at_guint] (* ****** ****** *) implement {a}(*tmp*) arrayref_interchange (A, i, j) = let val (vbox pf | p) = arrayref_get_viewptr(A) in array_interchange(!p, i, j) end // end of [arrayref_interchange] (* ****** ****** *) implement {a}(*tmp*) arrayref_subcirculate (A, i, j) = let val (vbox pf | p) = arrayref_get_viewptr(A) in array_subcirculate (!p, i, j) end // end of [arrayref_subcirculate] (* ****** ****** *) implement {a}(*tmp*) fprint_arrayref (out, A, n) = let // val (vbox pf | p) = arrayref_get_viewptr(A) // in $effmask_ref(fprint_array(out, !p, n)) end // end of [fprint_arrayref] implement {a}(*tmp*) fprint_arrayref_sep (out, A, n, sep) = let // val (vbox pf | p) = arrayref_get_viewptr(A) // in $effmask_ref(fprint_array_sep(out, !p, n, sep)) end // end of [fprint_arrayref_sep] (* ****** ****** *) implement {a}(*tmp*) arrayref_copy {n}(A, n) = let // val (pf1, fpf1 | p1) = $UN.ptr0_vtake{array(a,n)}(ptrcast(A)) // val (pf2, pf2gc | p2) = array_ptr_alloc(n) // val ((*void*)) = array_copy(!p2, !p1, n) // prval ((*returned*)) = fpf1(pf1) // in $UN.castvwtp0{arrayptr(a,n)}((pf2, pf2gc | p2)) end // end of [arrayref_copy] (* ****** ****** *) implement {a}(*tmp*) arrayref_tabulate (asz) = arrayptr_refize(arrayptr_tabulate(asz)) // end of [arrayref_tabulate] (* ****** ****** *) implement {a}(*tmp*) arrayref_foreach (A, asz) = let var env: void = () in arrayref_foreach_env (A, asz, env) end // end of [arrayref_foreach] implement {a}{env} arrayref_foreach_env (A, asz, env) = let // val (vbox pf | p) = arrayref_get_viewptr(A) // in $effmask_ref(array_foreach_env(!p, asz, env)) end // end of [arrayref_foreach_env] (* ****** ****** *) implement {a}(*tmp*) arrayref_iforeach (A, asz) = let var env: void = () in arrayref_iforeach_env (A, asz, env) end // end of [arrayref_iforeach] implement {a}{env} arrayref_iforeach_env (A, asz, env) = let // val (vbox pf | p) = arrayref_get_viewptr(A) // in // $effmask_ref (array_iforeach_env(!p, asz, env)) // end // end of [arrayref_iforeach_env] (* ****** ****** *) implement {a}(*tmp*) arrayref_rforeach (A, asz) = let var env: void = () in arrayref_rforeach_env(A, asz, env) end // end of [arrayref_rforeach] implement {a}{env} arrayref_rforeach_env (A, asz, env) = let // val (vbox pf | p) = arrayref_get_viewptr(A) // in // $effmask_ref (array_rforeach_env(!p, asz, env)) // end // end of [arrayref_rforeach_env] (* ****** ****** *) implement {a}(*tmp*) arrayref_is_ordered (A, asz) = let // fun loop {i:nat} ( p0: ptr, i: size_t(i) ) : bool = if (i > 0) then let // val p1 = ptr_succ(p0) // val (pf0,fpf0|p0) = $UN.ptr_vtake{a}(p0) val (pf1,fpf1|p1) = $UN.ptr_vtake{a}(p1) // val sgn = gcompare_ref_ref(!p0, !p1) // prval ((*returned*)) = fpf0(pf0) prval ((*returned*)) = fpf1(pf1) // in // if sgn <= 0 then loop(p1, pred(i)) else false // end // end of [then] else true // end of [else] // in // if (asz > 0) then loop(ptrcast(A), pred(asz)) else true // end // end of [arrayref_is_ordered] (* ****** ****** *) implement {a}(*tmp*) arrayref_bsearch (A, asz) = let // val (vbox(pf) | p0) = arrayref_get_viewptr{a}(A) // in $effmask_ref(array_bsearch(!p0, asz)) end // end of [arrayref_bsearch] implement {a}(*tmp*) arrayref_quicksort (A, asz) = let // val (vbox(pf) | p0) = arrayref_get_viewptr{a}(A) // in $effmask_ref(array_quicksort(!p0, asz)) end // end of [arrayref_quicksort] implement {a}(*tmp*) arrayref_quicksort_stdlib (A, asz, cmp) = let // val (vbox(pf) | p0) = arrayref_get_viewptr{a}(A) // in $effmask_ref(array_quicksort_stdlib(!p0, asz, cmp)) end // end of [arrayref_quicksort_stdlib] (* ****** ****** *) local datatype arrszref ( a:viewt@ype ) = {n:int} ARRSZREF of (arrayref(a, n), size_t(n)) // end of [arrszref] assume arrszref_vt0ype_type = arrszref in (* in of [local] *) implement {}(*tmp*) arrszref_make_arrpsz (psz) = let // var asz: size_t // uninitized // val A = arrpsz_get_ptrsize(psz, asz) // in ARRSZREF(arrayptr_refize(A), asz) end // end of [arrszref_make_arrpsz] (* ****** ****** *) // implement {}(*tmp*) arrszref_make_arrayref (A, asz) = ARRSZREF(A, asz) // (* ****** ****** *) implement {}(*tmp*) arrszref_get_ref (ASZ) = let // val+ ARRSZREF(A, _) = ASZ in $UN.cast2Ptr1(A) // end // end of [arrszref_get_size] (* ****** ****** *) implement {}(*tmp*) arrszref_get_size (ASZ) = let // val+ARRSZREF(_, n) = ASZ in (n) // end // end of [arrszref_get_size] (* ****** ****** *) implement {}(*tmp*) arrszref_get_refsize (ASZ, nref) = let // val+ARRSZREF(A, n) = ASZ // prval() = lemma_arrayref_param(A) // in nref := n; A(*arrayref*) end // end of [arrszref_get_refsize] end // end of [local] (* ****** ****** *) implement {a}(*tmp*) arrszref_make_elt (n, x) = let // val n = g1ofg0_uint(n) val A = arrayref_make_elt(n, x) // in arrszref_make_arrayref{a}(A, n) end // end of [arrszref_make_elt] (* ****** ****** *) implement {a}(*tmp*) arrszref_make_list (xs) = let // val n = list_length (xs) val A = arrayref_make_list(n, xs) // prval () = lemma_list_param(xs) // in arrszref_make_arrayref{a}(A, i2sz(n)) end // end of [arrszref_make_list] implement {a}(*tmp*) arrszref_make_rlist (xs) = let // prval () = lemma_list_param(xs) // val n = list_length (xs) val A = arrayref_make_rlist(n, xs) // in arrszref_make_arrayref{a}(A, i2sz(n)) end // end of [arrszref_make_rlist] (* ****** ****** *) implement {a}(*tmp*) arrszref_get_at_size (ASZ, i) = $effmask_wrt let // var n: size_t val A = arrszref_get_refsize<>(ASZ, n) val i = g1ofg0_uint(i) // in // if n > i then arrayref_get_at_guint(A, i) else $raise ArraySubscriptExn((*void*)) // end // end of [arrszref_get_at_size] implement {a}{tk} arrszref_get_at_gint (ASZ, i) = let in // if ( i >= 0 ) then ( arrszref_get_at_size (ASZ, g0i2u(i)) ) else ( $raise ArraySubscriptExn((* i < 0 *)) ) // end of [if] end // end of [arrszref_get_at_gint] implement {a}{tk} arrszref_get_at_guint (ASZ, i) = let in arrszref_get_at_size (ASZ, g0u2u(i)) end // end of [arrszref_get_at_guint] (* ****** ****** *) implement {a}(*tmp*) arrszref_set_at_size (ASZ, i, x) = $effmask_wrt let // var n: size_t val A = arrszref_get_refsize<>(ASZ, n) val i = g1ofg0_uint (i) // in // if n > i then arrayref_set_at_guint (A, i, x) else $raise ArraySubscriptExn((*void*)) // end // end of [arrszref_set_at_size] implement {a}{tk} arrszref_set_at_gint (ASZ, i, x) = let in // if ( i >= 0 ) then ( arrszref_set_at_size (ASZ, g0i2u(i), x) ) else $raise ArraySubscriptExn((*i < 0*)) // end // end of [arrszref_set_at_gint] implement {a}{tk} arrszref_set_at_guint (ASZ, i, x) = let in arrszref_set_at_size (ASZ, g0u2u(i), x) end // end of [arrszref_set_at_guint] (* ****** ****** *) implement {a}(*tmp*) arrszref_exch_at_size (ASZ, i, x) = $effmask_wrt let // var n: size_t val A = arrszref_get_refsize<>(ASZ, n) val i = g1ofg0_uint (i) // in // if n > i then arrayref_exch_at_guint (A, i, x) else $raise ArraySubscriptExn((*void*)) // end of [if] // end // end of [arrszref_exch_at_size] implement {a}{tk} arrszref_exch_at_gint (ASZ, i, x) = let in // if ( i >= 0 ) then ( arrszref_exch_at_size (ASZ, g0i2u(i), x) ) else $raise ArraySubscriptExn((*i < 0*)) // end // end of [arrszref_exch_at_gint] implement {a}{tk} arrszref_exch_at_guint (ASZ, i, x) = let in arrszref_exch_at_size (ASZ, g0u2u(i), x) end // end of [arrszref_exch_at_guint] (* ****** ****** *) implement {a}(*tmp*) arrszref_interchange ( ASZ, i, j ) = $effmask_wrt let // var n: size_t val A = arrszref_get_refsize<>(ASZ, n) // val i = g1ofg0_uint(i) val j = g1ofg0_uint(j) // in // if n > i then ( if n > j then arrayref_interchange(A, i, j) else $raise ArraySubscriptExn((*void*)) ) else $raise ArraySubscriptExn((*void*)) // end // end of [arrszref_interchange] (* ****** ****** *) implement {a}(*tmp*) arrszref_subcirculate ( ASZ, i, j ) = $effmask_wrt let // var n: size_t val A = arrszref_get_refsize<>(ASZ, n) // val i = g1ofg0_uint(i) val j = g1ofg0_uint(j) // in // if n > i then ( if n > j then arrayref_subcirculate(A, i, j) else $raise ArraySubscriptExn((*void*)) ) else $raise ArraySubscriptExn((*void*)) // end // end of [arrszref_subcirculate] (* ****** ****** *) implement {a}(*tmp*) fprint_arrszref (out, ASZ) = let // var asz: size_t // val A = arrszref_get_refsize<>(ASZ, asz) // in fprint_arrayref(out, A, asz) end // end of [fprint_arrszref] implement {a}(*tmp*) fprint_arrszref_sep (out, ASZ, sep) = let // var asz: size_t // val A = arrszref_get_refsize<>(ASZ, asz) // in fprint_arrayref_sep(out, A, asz, sep) end // end of [fprint_arrszref_sep] (* ****** ****** *) // implement {a}(*tmp*) arrszref_tabulate(asz) = let // val asz = g1ofg0_uint(asz) val A = arrayref_tabulate(asz) in arrszref_make_arrayref(A, asz) // end // end of [arrszref_tabulate] // (* ****** ****** *) implement {a}(*tmp*) streamize_arrszref_elt (ASZ) = let // var asz: size_t // val A0 = arrszref_get_refsize<>(ASZ, asz) // in streamize_arrayref_elt(A0, asz) end // end of [streamize_arrszref_elt] (* ****** ****** *) implement {a}(*tmp*) streamize_arrayref_elt (A0, asz) = auxmain(pa) where { // val pa = arrayref2ptr(A0) val pz = ptr_add(pa, asz) // fun auxmain ( pa: ptr ) : stream_vt(a) = $ldelay ( if (pa < pz) then stream_vt_cons ($UN.ptr0_get(pa), auxmain(ptr_succ(pa))) else stream_vt_nil(*void*) ) (* end of [auxmain] *) // } (* end of [streamize_arrayref_elt] *) (* ****** ****** *) (* end of [arrayref.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/intrange.dats0000644000175000017500000001112613431250607021542 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/intrange.atxt ** Time of generation: Thu Feb 14 11:29:48 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: June, 2012 *) (* ****** ****** *) implement {}(*tmp*) intrange_forall (l, r) = loop(l, r) where { // fun loop (l: int, r: int): bool = ( if (l < r) then ( if intrange_forall$pred<>(l) then loop(l+1, r) else false ) else true // end of [if] // end of [if] ) // } (* end of [intrange_forall] *) (* ****** ****** *) implement {}(*tmp*) intrange_foreach (l, r) = let var env: void = () in intrange_foreach_env(l, r, env) end // end of [intrange_foreach] implement {tenv}(*tmp*) intrange_foreach_env (l, r, env) = let // fun loop ( l: int, r: int, env: &tenv >> _ ) : int = ( // if l < r then let val cont = intrange_foreach$cont(l, env) in // if cont then ( intrange_foreach$fwork(l, env); loop(succ(l), r, env) ) else l // end of [if] // end // end of [then] else l // end of [else] // ) // end of [loop] // in loop (l, r, env) end // end of [intrange_foreach_env] (* ****** ****** *) implement {tenv}(*tmp*) intrange_foreach$cont(i, env) = true (* implement {tenv}(*tmp*) intrange_foreach$fwork(i, env) = ((*void*)) *) (* ****** ****** *) implement {}(*tmp*) intrange_rforeach (l, r) = let var env: void = () in intrange_rforeach_env(l, r, env) end // end of [intrange_rforeach] implement {tenv}(*tmp*) intrange_rforeach_env (l, r, env) = let // fun loop ( l: int, r: int, env: &tenv ) : int = ( // if l < r then let val r1 = pred (r) val cont = intrange_rforeach$cont(r1, env) in // if cont then ( intrange_rforeach$fwork(r1, env); loop(l, r1, env) ) else r // end of [if] // end // end of [then] else r // end of [else] // ) // end of [loop] // in loop (l, r, env) end // end of [intrange_rforeach_env] (* ****** ****** *) implement {tenv}(*tmp*) intrange_rforeach$cont(i, env) = true (* implement {tenv}(*tmp*) intrange_rforeach$fwork(i, env) = ((*void*)) *) (* ****** ****** *) implement {}(*tmp*) intrange2_foreach (l1, r1, l2, r2) = let var env: void = () in intrange2_foreach_env(l1, r1, l2, r2, env) end // end of [intrange2_foreach] (* ****** ****** *) implement {tenv}(*tmp*) intrange2_foreach_env (l1, r1, l2, r2, env) = let // fnx loop1 ( i: int, env: &(tenv) >> _ ) : void = ( if i < r1 then loop2(i, l2, env) else () ) // and loop2 ( i: int, j: int, env: &(tenv) >> _ ) : void = ( if j < r2 then ( intrange2_foreach$fwork(i, j, env); loop2(i, j+1, env) ) else loop1 (i+1, env) ) // in loop1 (l1, env) end // end of [intrange2_foreach] (* ****** ****** *) implement {}(*tmp*) streamize_intrange_l (m) = aux0(m) where { // vtypedef res_vt = stream_vt(int) // fun aux0 ( m: int ) : res_vt = $ldelay(stream_vt_cons(m, aux0(m+1))) // } (* end of [streamize_intrange_l] *) (* ****** ****** *) implement {}(*tmp*) streamize_intrange_0r(n) = streamize_intrange_lr<>(0, n) (* ****** ****** *) implement {}(*tmp*) streamize_intrange_lr (m, n) = aux0(m) where { // vtypedef res_vt = stream_vt(int) // fun aux0 ( m: int ) : res_vt = $ldelay ( if m < n then stream_vt_cons(m, aux0(m+1)) else stream_vt_nil() // end of [if] ) : stream_vt_con(int) // [aux0] // } (* end of [streamize_intrange_lr] *) (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/list.dats0000644000175000017500000013015713431250607020714 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: Feburary, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/list.atxt ** Time of generation: Thu Feb 14 11:29:49 2019 *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" // (* ****** ****** *) abstype List0_(a:t@ype+) = List0(a) (* ****** ****** *) primplmnt lemma_list_param(xs) = ( // case+ xs of | list_nil _ => () | list_cons _ => () // ) (* lemma_list_param *) (* ****** ****** *) // implement {a}(*tmp*) list_tuple_0() = list_nil() // implement {a}(*tmp*) list_tuple_1(x0) = $list{a}(x0) implement {a}(*tmp*) list_tuple_2(x0, x1) = $list{a}(x0, x1) implement {a}(*tmp*) list_tuple_3(x0, x1, x2) = $list{a}(x0, x1, x2) // implement {a}(*tmp*) list_tuple_4 (x0, x1, x2, x3) = $list{a}(x0, x1, x2, x3) implement {a}(*tmp*) list_tuple_5 (x0, x1, x2, x3, x4) = $list{a}(x0, x1, x2, x3, x4) implement {a}(*tmp*) list_tuple_6 (x0, x1, x2, x3, x4, x5) = $list{a}(x0, x1, x2, x3, x4, x5) // (* ****** ****** *) // implement {x}(*tmp*) list_make_sing(x) = list_vt_cons{x}(x, list_vt_nil()) implement {x}(*tmp*) list_make_pair(x1, x2) = list_vt_cons{x}(x1, list_vt_cons{x}(x2, list_vt_nil())) // (* ****** ****** *) implement {x}(*tmp*) list_make_elt {n} (n, x) = let // fun loop {i:nat | i <= n} .. ( i: int i, x: x, res: list_vt(x, n-i) ) :<> list_vt(x, n) = ( if (i > 0) then loop(pred(i), x, list_vt_cons(x, res)) else res // end of [if] ) // end of [loop] // in loop(n, x, list_vt_nil()) end // end of [list_make_elt] (* ****** ****** *) implement {}(*tmp*) list_make_intrange {l0,r} (l0, r) = let // typedef elt = intBtw(l0, r) vtypedef res(l:int) = list_vt(elt, r-l) // fun loop { l:int | l0 <= l; l <= r } .. ( l: int l, r: int r , res: &ptr? >> res(l) ) : void = ( // if (l < r) then let val () = res := list_vt_cons{elt}{0}(l, _) val+list_vt_cons(_, res1) = res val () = loop(l+1, r, res1) prval ((*folded*)) = fold@(res) in // nothing end else (res := list_vt_nil()) // ) (* end of [loop] *) // var res: ptr val ((*void*)) = $effmask_wrt(loop(l0, r, res)) // in res end // end of [list_make_intrange] (* ****** ****** *) implement {a}(*tmp*) list_make_array {n}(A, n0) = let // prval() = lemma_array_param(A) // vtypedef res(n:int) = list_vt(a, n) // fun loop {l:addr} {n:nat} .. ( pf: !array_v(a, l, n) >> array_v(a?!, l, n) | p0: ptr l , n0: size_t n , res: &ptr? >> res(n) ) : void = ( // if (n0 > 0) then let prval ( pf1, pf2 ) = array_v_uncons{a}(pf) // val () = res := list_vt_cons{a}{0}(_, _) // end of [val] val+list_vt_cons(x, res1) = res // val () = x := !p0 val p1 = ptr1_succ(p0) val () = loop(pf2 | p1, pred(n0), res1) // end of [val] prval () = pf := array_v_cons{a?!}(pf1, pf2) // end of [prval] prval ((*folded*)) = fold@ (res) in // nothing end // end of [then] else let prval () = array_v_unnil(pf) prval () = pf := array_v_nil() in res := list_vt_nil((*void*)) end // end of [else] // ) (* end of [loop] *) // var res: ptr // uninitialized // val ((*void*)) = loop(view@(A) | addr@(A), n0, res) // in res end // end of [list_make_array] (* ****** ****** *) implement {a}(*tmp*) list_make_arrpsz {n}(ASZ) = let // var asz: size_t // val A0 = arrpsz_get_ptrsize (ASZ, asz) // val p0 = arrayptr2ptr(A0) // prval pfarr = arrayptr_takeout(A0) val res = list_make_array(!p0, asz) prval() = arrayptr_addback(pfarr | A0) // in // let val () = arrayptr_free(A0) in res end // end // end of [list_make_arrpsz] (* ****** ****** *) // implement {a}(*tmp*) print_list(xs) = fprint_list(stdout_ref, xs) implement {a}(*tmp*) prerr_list(xs) = fprint_list(stderr_ref, xs) // (* ****** ****** *) // implement {}(*tmp*) fprint_list$sep (out) = fprint_string(out, ", ") // end of [fprint_list$sep] // implement {a}(*tmp*) fprint_list(out, xs) = let // implement(env) list_iforeach$fwork (i, x, env) = let val () = if i > 0 then fprint_list$sep<(*none*)>(out) // end of [if] // end of [val] in fprint_val(out, x) end // end of [list_iforeach$fwork] // val _(*len*) = list_iforeach(xs) // in // nothing end // end of [fprint_list] // implement {a}(*tmp*) fprint_list_sep (out, xs, sep) = let // implement fprint_list$sep<(*none*)> (out) = fprint_string(out, sep) // in fprint_list(out, xs) end // end of [fprint_list_sep] // (* ****** ****** *) (* // // HX-2012-05: // Compiling this can be a great challenge! // *) implement {a}(*tmp*) fprint_listlist_sep (out, xss, sep1, sep2) = let // implement fprint_val (out, xs) = let val xs = $UN.cast{List0(a)}(xs) in fprint_list_sep(out, xs, sep2) end // end of [fprint_val] // in // fprint_list_sep (out, $UN.cast{List(List0_(a))}(xss), sep1) // end // end of [fprint_listlist_sep] (* ****** ****** *) implement {}(*tmp*) list_is_nil(xs) = case+ xs of list_nil() => true | _ =>> false // end of [list_is_nil] implement {}(*tmp*) list_is_cons(xs) = case+ xs of list_cons _ => true | _ =>> false // end of [list_is_cons] implement {x}(*tmp*) list_is_sing (xs) = case+ xs of list_sing(x) => true | _ =>> false // end of [list_is_sing] implement {x}(*tmp*) list_isnot_sing (xs) = case+ xs of list_sing(x) => false | _ =>> true // end of [list_isnot_sing] implement {x}(*tmp*) list_is_pair(xs) = case+ xs of list_pair(x1, x2) => true | _ =>> false // end of [list_is_pair] implement {x}(*tmp*) list_isnot_pair(xs) = case+ xs of list_pair(x1, x2) => false | _ =>> true // end of [list_isnot_pair] (* ****** ****** *) implement {x}(*tmp*) list_head (xs) = let val+list_cons(x, _) = xs in x end // end of [list_head] implement {x}(*tmp*) list_tail (xs) = let val+list_cons(_, xs) = xs in xs end // end of [list_tail] implement {x}(*tmp*) list_last(xs) = let // fun loop ( xs: List1(x) ): (x) = let val+list_cons(x, xs) = xs in case+ xs of | list_cons _ => loop(xs) | list_nil _ => x end // end of [loop] // in $effmask_all(loop(xs)) end // end of [list_last] (* ****** ****** *) implement {x}(*tmp*) list_head_exn (xs) = ( case+ xs of | list_cons(x, _) => x | _ => $raise ListSubscriptExn() ) (* end of [list_head_exn] *) implement {x}(*tmp*) list_tail_exn (xs) = ( case+ xs of | list_cons(_, xs) => xs | _ => $raise ListSubscriptExn() ) (* end of [list_tail_exn] *) implement {x}(*tmp*) list_last_exn (xs) = ( case+ xs of | list_cons _ => list_last(xs) | _ => $raise ListSubscriptExn() ) (* end of [list_last_exn] *) (* ****** ****** *) implement {a}(*tmp*) list_nth(xs, i) = let // fun loop {n,i:nat | i < n} .. ( xs: list(a, n), i: int i ) :<> a = if i > 0 then let val+list_cons(_, xs) = xs in loop(xs, pred(i)) end else list_head(xs) // in loop(xs, i) end // end of [list_nth] implement {a}(*tmp*) list_nth_opt(xs, i) = let // fun loop {n:nat} .. ( xs: list(a, n), i: intGte(0) ) :<> Option_vt(a) = ( case+ xs of | list_nil() => None_vt() | list_cons(x, xs) => if i = 0 then Some_vt(x) else loop(xs, pred(i)) // end of [list_vt_cons] ) (* end of [loop] *) // prval() = lemma_list_param (xs) // in loop(xs, i) end // end of [list_nth_opt] (* ****** ****** *) implement {a}(*tmp*) list_get_at(xs, i) = list_nth(xs, i) implement {a}(*tmp*) list_get_at_opt(xs, i) = list_nth_opt(xs, i) (* ****** ****** *) implement {a}(*tmp*) list_fset_at (xs, i, x_new) = let // val ( xs1, xs2 ) = $effmask_wrt (list_split_at(xs, i)) // val+list_cons(x_old, xs2) = xs2 val xs2 = list_cons{a}(x_new, xs2) // in $effmask_wrt(list_append1_vt(xs1, xs2)) end // ed of [list_fset_at] (* ****** ****** *) implement {a}(*tmp*) list_fexch_at (xs, i, x_new) = let val ( xs1, xs2 ) = $effmask_wrt (list_split_at(xs, i)) // val+list_cons(x_old, xs2) = xs2 val xs2 = list_cons{a}(x_new, xs2) // in ($effmask_wrt(list_append1_vt(xs1, xs2)), x_old) end // ed of [list_fexch_at] (* ****** ****** *) implement {a}(*tmp*) list_insert_at (xs, i, x) = let // fun loop{n:int} {i:nat | i <= n} .. ( xs: list(a, n) , i: int i, x: a , res: &ptr? >> list(a, n+1) ) : void = // if i > 0 then let val+list_cons(x1, xs1) = xs val () = res := list_cons{a}{0}(x1, _(*?*)) val+list_cons (_, res1) = res // res1 = res.1 val () = loop(xs1, i-1, x, res1) prval ((*folded*)) = fold@ (res) in // nothing end // end of [then] else res := list_cons(x, xs) // var res: ptr val () = $effmask_wrt(loop(xs, i, x, res)) // in res end // end of [list_insert_at] (* ****** ****** *) implement {a}(*tmp*) list_remove_at (xs, i) = let // var x0: a // uninitized // in $effmask_wrt(list_takeout_at(xs, i, x0)) end // end of [list_remove_at] (* ****** ****** *) implement {a}(*tmp*) list_takeout_at (xs, i, x0) = let // fun loop{n:int} {i:nat | i < n} .. ( xs: list(a, n) , i: int i, x0: &a? >> a , res: &ptr? >> list(a, n-1) ) : void = let // val+list_cons(x, xs) = xs // in // if i > 0 then let val () = res := list_cons{a}{0}(x, _(*?*)) // end of [val] val+list_cons (_, res1) = res // res1 = res.1 val () = loop(xs, i-1, x0, res1) prval ((*folded*)) = fold@ (res) in // nothing end else let val () = x0 := x; val () = res := xs in // nothing end // end of [if] // end // end of [loop] // var res: ptr? val () = loop(xs, i, x0, res) // in res end // end of [list_takeout_at] (* ****** ****** *) implement {x}(*tmp*) list_length(xs) = let // prval() = lemma_list_param (xs) // fun loop {i,j:nat} .. ( xs: list(x, i), j: int j ) :<> int(i+j) = ( // case+ xs of | list_cons(_, xs) => loop(xs, j+1) | _ =>> j // ) (* end of [loop] *) // in loop(xs, 0) end // end of [list_length] (* ****** ****** *) // implement {x}(*tmp*) list_length_gte (xs, n2) = (list_length_compare(xs, n2) >= 0) // implement {x}(*tmp*) list_length_compare (xs, n2) = loop(xs, n2) where { // fun loop {i:nat;j:int} .. (xs: list(x, i), j: int j) :<> int(sgn(i-j)) = ( if (j < 0) then 1 else ( case+ xs of | list_cons (_, xs) => loop(xs, j-1) // list_cons | _ (*list_nil*) =>> (if j = 0 then 0 else ~1) ) ) (* end of [loop] *) // prval() = lemma_list_param(xs) // } (* end of [list_length_compare] *) // (* ****** ****** *) implement {x}(*tmp*) list_copy (xs) = res where { // prval() = lemma_list_param(xs) // vtypedef res = List0_vt(x) // fun loop {n:nat} .. ( xs: list(x, n) , res: &res? >> list_vt(x, n) ) : void = let in // case+ xs of | list_cons (x, xs) => let val () = res := list_vt_cons{x}{0}(x, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(xs, res1) prval ((*folded*)) = fold@ (res) in // nothing end // end of [cons] | list_nil() => res := list_vt_nil() // end // end of [loop] // var res: res? ; val () = loop(xs, res) // } // end of [list_copy] (* ****** ****** *) implement {a}(*tmp*) list_append {m,n} (xs, ys) = let // val ys = __cast(ys) where { extern castfn __cast(ys: list(a, n)):<> list_vt(a, n) } // end of [where] // end of [val] in // $effmask_wrt (list_of_list_vt(list_append2_vt(xs, ys))) // end // end of [list_append] implement {a}(*tmp*) list_append1_vt {m,n} (xs, ys) = let // val ys = __cast(ys) where { extern castfn __cast(ys: list(a, n)):<> list_vt(a, n) } (* end of [val] *) // in list_of_list_vt(list_vt_append(xs, ys)) end // end of [list_append1_vt] implement {a}(*tmp*) list_append2_vt {m,n} (xs, ys) = let // prval() = lemma_list_param (xs) prval() = lemma_list_vt_param (ys) // fun loop {m:nat} .. ( xs: list(a, m) , ys: list_vt(a, n) , res: &ptr? >> list_vt(a, m+n) ) : void = case+ xs of | list_nil () => (res := ys) // list_nil | list_cons (x, xs) => let val () = res := list_vt_cons{a}{0}(x, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(xs, ys, res1) prval ((*folded*)) = fold@ (res) in // nothing end // end of [list_cons] // end of [loop] var res: ptr // uninitialized val () = loop(xs, ys, res) // in res end // end of [list_append2_vt] (* ****** ****** *) // implement {a}(*tmp*) list_extend(xs, y) = ( list_append2_vt(xs, list_vt_sing(y)) ) (* end of [list_extend] *) // (* ****** ****** *) implement {a}(*tmp*) mul_int_list {m,n}(m, xs) = loop{m,0} ( m, xs, list_vt_nil ) where { // prval() = lemma_list_param(xs) // fun loop {i,j:nat} .. ( i0: int(i) , xs: list(a, n) , res: list_vt(a, j*n) ) : list_vt(a, (i+j)*n) = if (i0 = 0) then ( res where { prval EQINT() = eqint_make{i,0}() } ) (* end of [then] *) else ( loop{i-1,j+1}(i0-1, xs, list_append2_vt(xs, res)) ) (* end of [else] *) // } (* end of [mul_int_list] *) (* ****** ****** *) implement {x}(*tmp*) list_reverse (xs) = ( list_reverse_append2_vt(xs, list_vt_nil) ) // end of [list_reverse] (* ****** ****** *) implement {a}(*tmp*) list_reverse_append {m,n} (xs, ys) = let // val ys = __cast(ys) where { extern castfn __cast(ys: list(a, n)):<> list_vt(a, n) } // end of [where] // end of [val] // in // $effmask_wrt ( list_of_list_vt(list_reverse_append2_vt(xs, ys)) ) (* end of [$effmask_wrt] *) // end // end of [list_reverse_append] implement {a}(*tmp*) list_reverse_append1_vt {m,n} (xs, ys) = let // prval() = lemma_list_vt_param(xs) // prval() = lemma_list_param(ys) // fun loop{m,n:nat} .. ( xs: list_vt(a, m), ys: list(a, n) ) : list(a, m+n) = let in // case+ xs of | ~list_vt_nil ((*void*)) => ys // end of [list_vt_nil] | @list_vt_cons (x, xs1) => let val xs1_ = xs1 val ys = __cast(ys) where { extern castfn __cast(ys: list(a, n)):<> list_vt(a, n) } (* end of [val] *) val () = (xs1 := ys) prval ((*folded*)) = fold@ (xs) in loop(xs1_, list_of_list_vt{a}(xs)) end // end of [list_vt_cons] // end // end of [loop] // in loop(xs, ys) end // end of [list_reverse_append1_vt] implement {a}(*tmp*) list_reverse_append2_vt (xs, ys) = let // prval() = lemma_list_param(xs) prval() = lemma_list_vt_param(ys) // fun loop {m,n:nat} .. ( xs: list(a, m), ys: list_vt(a, n) ) : list_vt(a, m+n) = ( case+ xs of | list_nil () => ys // end of [list_nil] | list_cons (x, xs) => loop(xs, list_vt_cons{a}(x, ys)) // end of [list_cons] ) (* end of [loop] *) // in loop(xs, ys) end // end of [list_reverse_append2_vt] (* ****** ****** *) (* implement {a}(*tmp*) list_concat(xss) = let // typedef T = List(a) // prval() = lemma_list_param(xss) // fun aux{n:nat} .. ( xs0: T , xss: list(T, n) ) : List0_vt(a) = let // prval() = lemma_list_param(xs0) // in case+ xss of | list_nil () => list_copy(xs0) // end of [list_nil] | list_cons (xs, xss) => let val res = aux(xs, xss) val ys0 = list_copy(xs0) in list_vt_append(ys0, res) end // end of [list_cons] end // end of [aux] // in // case+ xss of | list_nil () => list_vt_nil() // list_nil | list_cons (xs, xss) => aux (xs, xss) // list_cons // end // end of [list_concat] *) (* ****** ****** *) implement {x}(*tmp*) list_concat(xss) = let // typedef xs = List(x) // prval() = lemma_list_param(xss) // fnx aux1 {n1:nat} .. ( xss: list(xs, n1) , res: &ptr? >> List0_vt(x) ) : void = ( case+ xss of | list_nil() => (res := list_vt_nil()) | list_cons(xs0, xss) => let prval() = lemma_list_param(xs0) in aux2(xs0, xss, res) // end of [val] end // end of [list_cons] ) and aux2 {n1,n2:nat} .. ( xs0: list(x, n2) , xss: list(xs, n1) , res: &ptr? >> List0_vt(x) ) : void = let in case+ xs0 of | list_nil() => aux1(xss, res) | list_cons(x0, xs1) => { val () = ( res := list_vt_cons{x}{0}(x0, _) ) (* end of [val] *) val+list_vt_cons(_, res1) = res val ((*void*)) = aux2(xs1, xss, res1) prval ((*folded*)) = fold@(res) } end // end of [aux2] // in // let var res: ptr in aux1(xss, res); res end // end // end of [list_concat] (* ****** ****** *) implement {a}(*tmp*) list_take (xs, i) = let // fun loop {n:int} {i:nat | i <= n} .. ( xs: list(a, n), i: int i , res: &ptr? >> list_vt(a, i) ) : void = if i > 0 then let val+list_cons(x, xs) = xs val () = res := list_vt_cons{a}{0}(x, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(xs, i-1, res1) val ((*folded*)) = fold@ (res) in // nothing end else (res := list_vt_nil()) // end of [loop] // var res: ptr val () = loop(xs, i, res) // in res end // end of [list_take] implement {a}(*tmp*) list_take_exn {n}{i} (xs, i) = let // prval() = lemma_list_param(xs) // fun loop {n:nat} {i:nat} .. ( xs: list(a, n), i: int i , res: &ptr? >> list_vt(a, j) ) : #[ j:nat | (i <= n && i == j) || (i > n && n == j) ] bool (i <= n) = let // in // if i > 0 then let in // case+ xs of | list_cons (x, xs1) => ans where { // val ((*void*)) = res := list_vt_cons{a}{0}(x, _) // val+ list_vt_cons(_, res1) = res val ans = loop(xs1, i-1, res1) // prval ((*folded*)) = fold@ (res) // } (* end of [list_cons] *) | list_nil() => let val ((*void*)) = res := list_vt_nil() in false(*fail*) end // end of [list_nil] // end // end of [then] else let val () = res := list_vt_nil() in true(*succ*) end // end of [else] // end of [if] // end // end of [loop] // var res: ptr val ans = loop{n}{i}(xs, i, res) // in // if ans then res // i <= n && length (res) == i else let val () = list_vt_free(res) in $raise ListSubscriptExn() end // end of [if] // end (* end of [list_take_exn] *) (* ****** ****** *) implement {a}(*tmp*) list_drop (xs, i) = let // fun loop {n:int} {i:nat | i <= n} .. (xs: list(a, n), i: int i):<> list(a, n-i) = if i > 0 then let val+list_cons(_, xs) = xs in loop(xs, i-1) end else xs // end of [if] // in loop(xs, i) end // end of [list_drop] implement {a}(*tmp*) list_drop_exn (xs, i) = let // prval() = lemma_list_param(xs) // fun loop {n:nat}{i:nat} .. ( xs: list(a, n), i: int i ) : [i <= n] list(a, n-i) = if i > 0 then ( case+ xs of | list_nil () => $raise ListSubscriptExn() // list_nil | list_cons(_, xs) => loop(xs, i-1) ) else (xs) // end of [if] // in loop(xs, i) end // end of [list_drop_exn] (* ****** ****** *) implement {x}(*tmp*) list_split_at (xs, i) = let // fun loop {n:int} {i:nat | i <= n} .. ( xs: list(x, n), i: int i , res: &ptr? >> list_vt(x, i) ) : list(x, n-i) = ( if i > 0 then let val+list_cons(x, xs) = xs val () = res := list_vt_cons{x}{0}(x, _) // end of [val] val+list_vt_cons(_, res1) = res val xs2 = loop(xs, i-1, res1) prval ((*folded*)) = fold@ (res) in xs2 end // end of [then] else let val () = res := list_vt_nil() in xs end // end of [else] // end of [if] ) // var res: ptr val xs2 = loop(xs, i, res) // in (res, xs2) end // end of [list_split_at] (* ****** ****** *) implement {x}(*tmp*) list_exists (xs) = loop(xs) where { // fun loop : $d2ctype(list_exists) = lam(xs) => // case+ xs of | list_nil() => false | list_cons(x, xs) => if list_exists$pred(x) then true else loop(xs) // end of [list_cons] // } (* end of [list_exists] *) (* ****** ****** *) implement {x}(*tmp*) list_forall (xs) = loop(xs) where { fun loop : $d2ctype(list_forall) = lam(xs) => // case+ xs of | list_nil() => true | list_cons(x, xs) => if list_forall$pred(x) then loop(xs) else false // end of [list_cons] // } (* end of [list_forall] *) (* ****** ****** *) implement {x}(*tmp*) list_equal ( xs1, xs2 ) = loop(xs1, xs2) where { fun loop : $d2ctype ( list_equal ) = lam(xs1, xs2) => // case+ xs1 of | list_nil((*void*)) => ( case+ xs2 of | list_nil _ => true | list_cons _ => false ) // end of [list_nil] | list_cons(x1, xs1) => ( case+ xs2 of | list_nil() => false | list_cons(x2, xs2) => let val test = list_equal$eqfn(x1, x2) // end of [val] in if test then loop(xs1, xs2) else false end // end of [list_cons] ) (* end of [list_cons] *) // } (* end of [list_equal] *) implement {a}(*tmp*) list_equal$eqfn = gequal_val_val (* ****** ****** *) implement {x}(*tmp*) list_compare ( xs1, xs2 ) = loop(xs1, xs2) where { fun loop : $d2ctype ( list_compare ) = lam(xs1, xs2) => // case+ xs1 of | list_nil((*void*)) => ( case+ xs2 of | list_nil _ => 0 | list_cons _ => ~1 ) // end of [list_nil] | list_cons(x1, xs1) => ( case+ xs2 of | list_nil() => (1) | list_cons(x2, xs2) => let val test = list_compare$cmpfn(x1, x2) // end of [val] in if test = 0 then loop(xs1, xs2) else test end // end of [list_cons] ) (* end of [list_cons] *) // } (* end of [list_compare] *) implement {a}(*tmp*) list_compare$cmpfn = gcompare_val_val (* ****** ****** *) implement {x}(*tmp*) list_find {n}(xs, x0) = let // prval() = lemma_list_param(xs) // fun loop { i:nat | i <= n } .. ( xs: list(x, n-i) , i: int(i), x0: &x? >> opt(x, i >= 0) ) : #[i:int | i < n] int(i) = ( case+ xs of | list_nil() => ( opt_none(x0); ~1 ) (* list_nil *) | list_cons(x, xs) => ( if list_find$pred(x) then (x0 := x; opt_some(x0); i) else loop(xs, i+1, x0) // end of [if] ) (* list_cons *) ) (* end of [loop] *) // in loop(xs, 0, x0) end // end of [list_find] (* ****** ****** *) implement {x}(*tmp*) list_find_exn (xs) = loop(xs) where { // fun loop : $d2ctype(list_find_exn) = lam(xs) => // case+ xs of | list_nil() => $raise NotFoundExn() | list_cons(x, xs) => if list_find$pred(x) then x else loop(xs) // } (* end of [list_find_exn] *) implement {x}(*tmp*) list_find_opt (xs) = loop(xs) where { // fun loop : $d2ctype(list_find_opt) = lam(xs) => // case+ xs of | list_nil() => None_vt((*void*)) | list_cons(x, xs) => if list_find$pred(x) then Some_vt{x}(x) else loop(xs) // } (* end of [list_find_opt] *) (* ****** ****** *) implement {key}(*tmp*) list_assoc$eqfn = gequal_val_val implement {key,itm} list_assoc (kxs, k0, x0) = let // fun loop ( kxs: List @(key, itm) , k0: key, x0: &itm? >> opt(itm, b) ) : #[b:bool] bool(b) = ( case+ kxs of | list_cons (kx, kxs) => let val iseq = list_assoc$eqfn(k0, kx.0) in if iseq then let val () = x0 := kx.1 prval () = opt_some{itm}(x0) in true end // end of [then] else loop(kxs, k0, x0) // end of [if] end // end of [list_cons] | list_nil((*void*)) => let prval() = opt_none{itm}(x0) in false end // end of [list_nil] ) (* end of [loop] *) // in $effmask_all (loop(kxs, k0, x0)) end // end of [list_assoc] (* ****** ****** *) implement {key,itm} list_assoc_exn (kxs, k0) = let var x0: itm? val ans = list_assoc(kxs, k0, x0) in // if ans then let prval() = opt_unsome{itm}(x0) in x0 end // end of [then] else let prval() = opt_unnone{itm}(x0) in $raise NotFoundExn() end // end of [else] // end // end of [list_assoc_exn] (* ****** ****** *) implement {key,itm} list_assoc_opt (kxs, k0) = let var x0: itm? val ans = list_assoc(kxs, k0, x0) in // if ans then let prval() = opt_unsome{itm}(x0) in Some_vt{itm}(x0) end // end of [then] else let prval() = opt_unnone{itm}(x0) in None_vt((*void*)) end // end of [else] // end // end of [list_assoc_opt] (* ****** ****** *) implement {x}(*tmp*) list_filter{n}(xs) = let // prval() = lemma_list_param(xs) // fun loop {n:nat} .. ( xs: list(x, n) , res: &ptr? >> listLte_vt(x, n) ) : void = ( // case+ xs of | list_nil ( // argless ) => (res := list_vt_nil) | list_cons (x, xs) => let val test = list_filter$pred(x) in case+ test of | true => () where { val () = res := list_vt_cons{x}{0}(x, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(xs, res1) prval ((*folded*)) = fold@ (res) } (* end of [true] *) | false => loop(xs, res) end // end of [list_cons] // ) (* end of [loop] *) // var res: ptr val () = loop(xs, res) // in res(*listLte_vt(x, n)*) end // end of [list_filter] (* ****** ****** *) implement {x}(*tmp*) list_labelize (xs) = res where { // typedef ix = @(int, x) // prval() = lemma_list_param(xs) // fun loop {n:nat} .. ( xs: list(x, n), i: int , res: &ptr? >> list_vt(ix, n) ) : void = let in // case+ xs of | list_nil () => (res := list_vt_nil) // end of [list_nil] | list_cons (x, xs) => () where { val () = res := list_vt_cons{ix}{0}(_, _) val+ list_vt_cons(ix, res1) = res val () = ix.0 := i and () = ix.1 := x val () = loop(xs, i+1, res1) prval ((*folded*)) = fold@ (res) } (* end of [list_cons] *) // end // end of [loop] // var res: ptr ; val () = loop(xs, 0, res) // } // end of [list_labelize] (* ****** ****** *) implement {x}(*tmp*) list_app(xs) = let // prval() = lemma_list_param(xs) // fun loop{n:nat} .. (xs: list(x, n)): void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => (list_app$fwork(x); loop(xs)) ) (* end of [loop] *) // in loop(xs) end // end of [list_app] (* ****** ****** *) implement {x}{y}(*tmp*) list_map{n}(xs) = let // prval() = lemma_list_param(xs) // fun loop {n:nat} .. ( xs: list(x, n) , res: &ptr? >> list_vt(y, n) ) : void = ( case+ xs of | list_nil ((*void*)) => (res := list_vt_nil) // list_nil | list_cons(x, xs) => let val y = list_map$fopr(x) val () = res := list_vt_cons{y}{0}(y, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(xs, res1) prval ((*folded*)) = fold@ (res) in // nothing end // end of [list_cons] ) // end of [loop] // var res: ptr val () = loop(xs, res) // in res(*list_vt(y, n)*) end // end of [list_map] (* ****** ****** *) (* implement {x}{y}(*tmp*) list_map_funenv {v}{vt}{n}{fe} (pfv | xs, f, env) = let // prval() = lemma_list_param(xs) // vtypedef ys = List0_vt(y) // fun loop {n:nat} .. ( pfv: !v | xs: list(x, n) , f: (!v | x, !vt) - y , env: !vt , res: &ys? >> list_vt(y, n) ) : void = let in // case+ xs of | list_nil () => (res := list_vt_nil()) // list_nil | list_cons (x, xs) => let val y = f (pfv | x, env) val () = res := list_vt_cons{y}{0}(y, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(pfv | xs, f, env, res1) prval ((*folded*)) = fold@ (res) in (*nothing*) end // end of [list_vt_cons] // end // end of [loop] // var res: ys // uninitialized val () = loop(pfv | xs, f, env, res) // in res(*list_vt(y,n)*) end // end of [list_map_funenv] *) (* ****** ****** *) implement {x}{y} list_imap{n}(xs) = let // prval() = lemma_list_param(xs) // fun loop {n:nat}{i:nat} .. ( xs: list(x, n), i: int(i) , res: &ptr? >> list_vt(y, n) ) : void = ( case+ xs of | list_nil () => (res := list_vt_nil) // list_nil | list_cons (x, xs) => let val y = list_imap$fopr(i, x) val () = res := list_vt_cons{y}{0}(y, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(xs, i+1, res1) prval ((*void*)) = fold@ (res) in // nothing end // end of [list_cons] ) // end of [loop] // var res: ptr val () = loop(xs, 0, res) // in res(*list_vt(y, n)*) end // end of [list_imap] (* ****** ****** *) implement {x}{y} list_mapopt{n}(xs) = let // prval() = lemma_list_param(xs) // fun loop {n:nat} .. ( xs: list(x, n) , res: &ptr? >> listLte_vt(y, n) ) : void = let in // case+ xs of | list_nil () => (res := list_vt_nil) // list_nil | list_cons(x, xs) => let val opt = list_mapopt$fopr(x) // end of [val] in case+ opt of | ~Some_vt(y) => let val () = res := list_vt_cons{y}{0}(y, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(xs, res1) prval ((*folded*)) = fold@ (res) in // nothing end // end of [Some_vt] | ~None_vt((*void*)) => loop(xs, res) end // end of [list_cons] // end // end of [loop] // var res: ptr val () = loop(xs, res) // in res(*listLte_vt(y, n)*) end // end of [list_mapopt] (* ****** ****** *) (* implement {x}{y}(*tmp*) list_mapopt_funenv {v}{vt}{n}{fe} (pfv | xs, f0, env) = let // prval() = lemma_list_param(xs) // vtypedef ys = List0_vt(y) // fun loop {n:nat} .. ( pfv: !v | xs: list(x, n) , f0: (!v | x, !vt) - Option_vt(y) , env: !vt , res: &ys? >> listLte_vt(y, n) ) : void = let in // case+ xs of | list_nil () => (res := list_vt_nil()) // end of [list_nil] | list_cons (x, xs) => let val opt = f0(pfv | x, env) in case+ opt of | ~None_vt() => ( loop(pfv | xs, f0, env, res) ) (* end of [None_vt] *) | ~Some_vt(y) => let val () = res := list_vt_cons{y}{0}(y, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(pfv | xs, f0, env, res1) prval ((*folded*)) = fold@ (res) in (*nothing*) end // end of [Some_vt] end // end of [list_vt_cons] // end // end of [loop] // var res: ys // uninitialized val () = loop(pfv | xs, f0, env, res) // in res(*listLte_vt(y,n)*) end // end of [list_mapopt_funenv] *) (* ****** ****** *) implement {x1,x2}{y} list_map2 {n1,n2}(xs1, xs2) = let // prval() = lemma_list_param(xs1) prval() = lemma_list_param(xs2) // fun loop{n1,n2:nat} ( xs1: list(x1, n1) , xs2: list(x2, n2) , res: &ptr? >> list_vt(y, min(n1,n2)) ) : void = let in // case+ (xs1, xs2) of | (list_cons(x1, xs1), list_cons(x2, xs2)) => { val y = list_map2$fopr(x1, x2) val () = res := list_vt_cons{y}{0}(y, _) val+list_vt_cons(_, res1) = res val ((*void*)) = loop(xs1, xs2, res1) prval ((*folded*)) = fold@ (res) } (* end of [cons, cons] *) | (_, _) =>> (res := list_vt_nil((*void*))) // end // end of [loop] // var res: ptr val ((*void*)) = loop(xs1, xs2, res) // in res end // end of [list_map2] (* ****** ****** *) implement {x}(*tmp*) list_tabulate (n) = let // fun loop {n:int} {i:nat | i <= n} .. ( n: int n, i: int i , res: &ptr? >> list_vt(x, n-i) ) : void = if n > i then let val x = list_tabulate$fopr(i) val () = res := list_vt_cons{x}{0}(x, _(*?*)) val+list_vt_cons (_, res1) = res // res1 = res.1 val () = loop(n, succ(i), res1) prval ((*folded*)) = fold@ (res) in // nothing end else (res := list_vt_nil) // in // let var res: ptr; val () = loop(n, 0, res) in res end // end // end of [list_tabulate] (* ****** ****** *) implement {x,y} list_zip (xs, ys) = let // typedef xy = @(x, y) // implement list_zipwith$fopr(x, y) = @(x, y) // in $effmask_all(list_zipwith(xs, ys)) end // end of [list_zip] implement {x,y}{xy} list_zipwith ( xs, ys ) = res where { // prval() = lemma_list_param(xs) prval() = lemma_list_param(ys) // fun loop {m,n:nat} .. ( xs: list(x, m) , ys: list(y, n) , res: &ptr? >> list_vt(xy, min(m,n)) ) : void = ( // case+ xs of | list_nil() => (res := list_vt_nil) // list_nil | list_cons(x, xs) => ( case+ ys of | list_nil() => (res := list_vt_nil) // list_nil | list_cons (y, ys) => fold@(res) where { val xy = list_zipwith$fopr(x, y) // end of [val] val () = res := list_vt_cons{xy}{0}(xy, _(*res*)) val+list_vt_cons (xy, res1) = res // res1 = res.1 val ((*tailrec*)) = loop(xs, ys, res1) } (* end of [list_cons] *) ) // end of [list_cons] // ) (* end of [loop] *) // var res: ptr val ((*void*)) = loop(xs, ys, res) // } (* end of [list_zipwith] *) (* ****** ****** *) implement {x,y} list_cross (xs, ys) = let // typedef xy = @(x, y) // implement list_crosswith$fopr(x, y) = @(x, y) // in $effmask_all (list_crosswith(xs, ys)) end // end of [list_cross] implement {x,y}{xy} list_crosswith (xs, ys) = let // prval() = lemma_list_param(xs) prval() = lemma_list_param(ys) // fnx loop1 {m,n:nat} .. ( xs: list(x, m) , ys: list(y, n) , res: &ptr? >> list_vt(xy, m*n) ) : void = let in case+ xs of | list_cons (x, xs) => loop2(xs, ys, x, ys, res) // list_cons | list_nil() => (res := list_vt_nil()) end // end of [loop1] and loop2 {m,n,n2:nat} .. ( xs: list(x, m) , ys: list(y, n) , x: x, ys2: list(y, n2) , res: &ptr? >> list_vt(xy, m*n+n2) ) : void = let in // case+ ys2 of | list_cons (y, ys2) => let val xy = list_crosswith$fopr (x, y) // list_crosswith$fopr // end of [val] val () = res := list_vt_cons{xy}{0}(xy, _(*?*)) val+list_vt_cons (_, res1) = res val () = loop2(xs, ys, x, ys2, res1) prval () = mul_gte_gte_gte{m,n}() in fold@ (res) // nothing end // end of [list_cons] | list_nil() => loop1(xs, ys, res) // end // end of [loop2] // in // let var res: ptr; val () = loop1(xs, ys, res) in res end // end // end of [list_crosswith] (* ****** ****** *) implement {x}(*tmp*) list_foreach(xs) = let // var env: void = () in list_foreach_env(xs, env) // end // end of [list_foreach] (* ****** ****** *) implement {x}{env} list_foreach_env (xs, env) = let // prval() = lemma_list_param(xs) // fun loop {n:nat} .. ( xs: list(x, n), env: &env ) : void = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => let val test = list_foreach$cont(x, env) // end of [val] in if test then let val () = list_foreach$fwork(x, env) in loop(xs, env) end else () // end of [if] end // end of [list_cons] // end // end of [loop] // in loop(xs, env) end // end of [list_foreach_env] (* ****** ****** *) // implement {x}{env} list_foreach$cont(x, env) = true // (* ****** ****** *) implement {x}(*tmp*) list_foreach_funenv {v}{vt}{fe} (pfv | xs, f0, env) = let // prval() = lemma_list_param(xs) // fun loop{n:nat} .. ( pfv: !v | xs: list(x, n) , f0: (!v | x, !vt) - void , env: !vt ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = f0(pfv | x, env) in loop(pfv | xs, f0, env) end // end of [list_cons] ) (* end of [loop] *) // in loop(pfv | xs, f0, env) end // end of [list_foreach_funenv] (* ****** ****** *) implement {x,y}(*tmp*) list_foreach2(xs, ys) = let var env: void = () in list_foreach2_env(xs, ys, env) end // end of [list_foreach2] implement {x,y}{env} list_foreach2_env (xs, ys, env) = let // prval() = lemma_list_param(xs) prval() = lemma_list_param(ys) // fun loop {m,n:nat} .. ( xs: list(x, m), ys: list(y, n), env: &env ) : void = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => ( case+ ys of | list_nil() => () | list_cons(y, ys) => let val test = list_foreach2$cont(x, y, env) // end of [val] in if test then let val () = list_foreach2$fwork(x, y, env) in loop(xs, ys, env) end else () // end of [if] end // end of [list_cons] ) (* end of [list_cons] *) // end // end of [loop] // in loop(xs, ys, env) end // end of [list_foreach2_env] (* ****** ****** *) // implement {x,y}{env} list_foreach2$cont(x, y, env) = true // (* ****** ****** *) implement {x}(*tmp*) list_iforeach (xs) = let var env: void = () in list_iforeach_env(xs, env) end // end of [list_iforeach] implement {x}{env} list_iforeach_env (xs, env) = let // prval() = lemma_list_param(xs) // fun loop {n:nat}{i:nat} .. ( i: int i, xs: list(x, n), env: &env ) : intBtwe(i,n+i) = ( // case+ xs of | list_nil() => (i) | list_cons(x, xs) => let val test = list_iforeach$cont(i, x, env) // end of [test] in if test then let val () = list_iforeach$fwork(i, x, env) in loop(succ(i), xs, env) end else (i) // end of [if] end // end of [list_cons] // ) (* end of [loop] *) // in loop(0, xs, env) end // end of [list_iforeach_env] (* ****** ****** *) implement {x}{env}(*tmp*) list_iforeach$cont(i, x, env) = true (* ****** ****** *) implement {x}(*tmp*) list_iforeach_funenv {v}{vt}{n}{fe} ( pfv | xs, fwork, env ) = let // prval() = lemma_list_param(xs) // fun loop { i:nat | i <= n } .. ( pfv: !v | i: int i , xs: list(x, n-i) , fwork: (!v | natLt(n), x, !vt) - void , env: !vt ) : int n = ( // case+ xs of | list_nil() => i | list_cons(x, xs) => let val () = fwork (pfv | i, x, env) in loop(pfv | i+1, xs, fwork, env) end // end of [list_cons] ) (* end of [loop] *) // in loop(pfv | 0, xs, fwork, env) end // end of [list_iforeach_funenv] (* ****** ****** *) implement {x,y}(*tmp*) list_iforeach2 (xs, ys) = let var env: void = () in list_iforeach2_env(xs, ys, env) end // end of [list_iforeach2] implement {x,y}{env} list_iforeach2_env (xs, ys, env) = let // prval() = lemma_list_param(xs) prval() = lemma_list_param(ys) // fun loop {m,n:nat}{i:nat} .. ( i: int i, xs: list(x, m), ys: list(y, n), env: &env ) : intBtwe(i, min(m,n)+i) = let in // case+ xs of | list_nil() => i // the number of processed elements | list_cons(x, xs) => ( case+ ys of | list_nil() => (i) | list_cons(y, ys) => let val test = list_iforeach2$cont(i, x, y, env) // end of [val] in if test then let val ((*void*)) = list_iforeach2$fwork(i, x, y, env) // end of [val] in loop(succ(i), xs, ys, env) end // end of [then] else (i) // end of [else] end // end of [list_cons] ) (* end of [list_cons] *) // end // end of [loop] // in loop(0, xs, ys, env) end // end of [list_iforeach2_env] (* ****** ****** *) implement {x,y}{env} list_iforeach2$cont(i, x, y, env) = true (* ****** ****** *) implement {res}{x} list_foldleft (xs, ini) = let // prval() = lemma_list_param(xs) // fun loop {n:nat} .. ( xs: list(x, n), res: res ) : res = case+ xs of | list_nil() => res | list_cons(x, xs) => let val res = list_foldleft$fopr(res, x) // end of [val] in loop(xs, res) end // end of [list_cons] // end of [loop] // in loop(xs, ini) end // end of [list_foldleft] (* ****** ****** *) implement {x}{res} list_foldright (xs, snk) = let // prval() = lemma_list_param(xs) // fun aux {n:nat} .. ( xs: list(x, n), res: res ) : res = case+ xs of | list_nil() => res | list_cons(x, xs) => list_foldright$fopr(x, aux(xs, res)) // end of [list_cons] // end of [aux] // in aux (xs, snk) end // end of [list_foldright] (* ****** ****** *) implement {a}(*tmp*) list_is_ordered (xs) = let // fun loop ( x0: a, xs: List(a) ) : bool = ( // case+ xs of | list_nil() => true | list_cons(x1, xs) => let val sgn = gcompare_val_val(x0, x1) in if sgn <= 0 then loop(x1, xs) else false // end of [if] end // end of [list_cons] // ) (* end of [loop] *) // in case+ xs of | list_nil() => true | list_cons(x0, xs) => loop(x0, xs) end // end of [list_is_ordered] (* ****** ****** *) implement {a}(*tmp*) list_mergesort$cmp (x1, x2) = gcompare_val_val(x1, x2) // end of [list_mergesort$cmp] implement {a}(*tmp*) list_mergesort (xs) = let // implement list_vt_mergesort$cmp (x1, x2) = list_mergesort$cmp(x1, x2) // in // let val xs = list_copy(xs) in list_vt_mergesort(xs) end // end of [let] // end // end of [list_mergesort] (* ****** ****** *) implement {a}(*tmp*) list_mergesort_fun (xs, cmp) = let // implement {a2}(*tmp*) list_mergesort$cmp (x1, x2) = let // typedef cmp2 = cmpval(a2) // val cmp2 = $UN.cast{cmp2}(cmp) in cmp2(x1, x2) // end // end of [list_mergesort$cmp] // in list_mergesort(xs) end // end of [list_mergesort_fun] implement {a}(*tmp*) list_mergesort_cloref (xs, cmp) = let // implement {a2}(*tmp*) list_mergesort$cmp (x1, x2) = let // typedef cmp2 = (a2, a2) - int // val cmp2 = $UN.cast{cmp2}(cmp) in cmp2 (x1, x2) // end // end of [list_mergesort$cmp] // in list_mergesort(xs) end // end of [list_mergesort_cloref] (* ****** ****** *) implement {a}(*tmp*) list_quicksort$cmp (x1, x2) = gcompare_val_val(x1, x2) // end of [list_quicksort$cmp] implement {a}(*tmp*) list_quicksort (xs) = let // implement list_vt_quicksort$cmp (x1, x2) = list_quicksort$cmp(x1, x2) // in // let val xs = list_copy(xs) in list_vt_quicksort(xs) end // end of [let] // end // end of [list_quicksort] (* ****** ****** *) implement {a}(*tmp*) list_quicksort_fun (xs, cmp) = let // implement {a2}(*tmp*) list_quicksort$cmp (x1, x2) = let // typedef cmp2 = cmpval(a2) // val cmp2 = $UN.cast{cmp2}(cmp) in cmp2(x1, x2) // end // end of [list_quicksort$cmp] // in list_quicksort(xs) end // end of [list_quicksort_fun] implement {a}(*tmp*) list_quicksort_cloref (xs, cmp) = let // implement {a2}(*tmp*) list_quicksort$cmp (x1, x2) = let // typedef cmp2 = (a2, a2) - int // val cmp2 = $UN.cast{cmp2}(cmp) in cmp2(x1, x2) // end // end of [list_quicksort$cmp] // in list_quicksort(xs) end // end of [list_quicksort_cloref] (* ****** ****** *) implement {a}(*tmp*) streamize_list_elt (xs) = let // fun auxmain ( xs: List(a) ) : stream_vt(a) = $ldelay ( case+ xs of | list_nil() => stream_vt_nil() | list_cons(x, xs) => stream_vt_cons(x, auxmain(xs)) ) : stream_vt_con(a) // $ldelay // in $effmask_all(auxmain(xs)) end // end of [streamize_list_elt] (* ****** ****** *) implement {a}(*tmp*) streamize_list_choose2 (xs) = let // typedef a2 = @(a, a) // fun auxmain ( xs: List(a) ) : stream_vt(a2) = $ldelay ( case+ xs of | list_nil() => stream_vt_nil() | list_cons(x, xs) => !(auxmain2(x, xs)) ) : stream_vt_con(@(a, a)) // $ldelay // and auxmain2 ( x0: a, xs: List(a) ) : stream_vt(a2) = $ldelay ( case+ xs of | list_nil() => !(auxmain(xs)) | list_cons(x, xs) => stream_vt_cons((x0, x), auxmain2(x0, xs)) ) : stream_vt_con(@(a, a)) // $ldelay // in $effmask_all(auxmain(xs)) end // end of [streamize_list_choose2] (* ****** ****** *) implement {a,b}(*tmp*) streamize_list_zip (xs, ys) = let // fun auxmain ( xs: List(a) , ys: List(b) ) : stream_vt(@(a, b)) = $ldelay ( case+ xs of | list_nil() => stream_vt_nil() // end of [list_nil] | list_cons(x, xs) => ( case+ ys of | list_nil() => stream_vt_nil() | list_cons(y, ys) => stream_vt_cons((x, y), auxmain(xs, ys)) ) (* end of [list_cons] *) ) : stream_vt_con(@(a, b)) // auxmain // in $effmask_all(auxmain(xs, ys)) end // end of [streamize_list_zip] (* ****** ****** *) implement {a,b}(*tmp*) streamize_list_cross (xs, ys) = let // fun auxone ( x0: a , ys: List(b) ) : stream_vt(@(a, b)) = $ldelay ( case+ ys of | list_nil() => stream_vt_nil() // end of [list_nil] | list_cons(y, ys) => stream_vt_cons((x0, y), auxone(x0, ys)) ) : stream_vt_con(@(a, b)) // fun auxmain ( xs: List(a) , ys: List(b) ) : stream_vt(@(a, b)) = $ldelay ( case+ xs of | list_nil() => stream_vt_nil() // end of [list_nil] | list_cons(x0, xs) => !(stream_vt_append(auxone(x0, ys), auxmain(xs, ys))) ) : stream_vt_con(@(a, b)) // in $effmask_all(auxmain(xs, ys)) end // end of [streamize_list_cross] (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/tostring.dats0000644000175000017500000001563513431250607021615 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/tostring.atxt ** Time of generation: Thu Feb 14 11:29:51 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxiATgmailDOTcom *) (* Start time: April, 2015 *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // implement {}(*tmp*) tostring_int(i) = $effmask_wrt ( strptr2string(tostrptr_int(i)) ) implement {}(*tmp*) tostrptr_int(i) = let // #define BSZ 32 // typedef cstring = $extype"atstype_string" // var buf = @[byte][BSZ]() val bufp = $UN.cast{cstring}(addr@buf) // val _(*int*) = $extfcall(ssize_t, "snprintf", bufp, BSZ, "%i", i) // in // $UN.castvwtp0{Strptr1}(string0_copy($UN.cast{string}(bufp))) // end // end of [tostrptr_int] // implement tostring_val = tostring_int implement tostrptr_val = tostrptr_int // (* ****** ****** *) // implement tostrptr_val = g0int2string_lint implement tostrptr_val = g0int2string_llint // (* ****** ****** *) // implement {}(*tmp*) tostring_uint(u) = $effmask_wrt ( strptr2string(tostrptr_uint(u)) ) implement {}(*tmp*) tostrptr_uint(u) = let // #define BSZ 32 // typedef cstring = $extype"atstype_string" // var buf = @[byte][BSZ]() val bufp = $UN.cast{cstring}(addr@buf) // val _(*int*) = $extfcall(ssize_t, "snprintf", bufp, BSZ, "%u", u) // in // $UN.castvwtp0{Strptr1}(string0_copy($UN.cast{string}(bufp))) // end // end of [tostrptr_uint] // implement tostring_val = tostring_uint implement tostrptr_val = tostrptr_uint // (* ****** ****** *) // implement {}(*tmp*) tostring_bool(b) = bool2string(b) implement {}(*tmp*) tostrptr_bool(b) = string0_copy(bool2string(b)) // implement tostring_val = tostring_bool implement tostrptr_val = tostrptr_bool // (* ****** ****** *) // implement {}(*tmp*) tostring_char(c) = $effmask_wrt ( strptr2string(char2strptr(c)) ) // implement {}(*tmp*) tostrptr_char(c) = char2strptr(c) // implement tostring_val = tostring_char implement tostrptr_val = tostrptr_char // (* ****** ****** *) implement {}(*tmp*) tostring_double(i) = $effmask_wrt ( strptr2string(tostrptr_double(i)) ) implement {}(*tmp*) tostrptr_double(x) = let // #define BSZ 32 // typedef cstring = $extype"atstype_string" // var buf = @[byte][BSZ]() val bufp = $UN.cast{cstring}(addr@buf) // val _(*int*) = $extfcall(ssize_t, "snprintf", bufp, BSZ, "%.6f", x) // in // $UN.castvwtp0{Strptr1}(string0_copy($UN.cast{string}(bufp))) // end // end of [tostrptr_double] // implement tostring_val = tostring_double implement tostrptr_val = tostrptr_double // (* ****** ****** *) implement {a}(*tmp*) tostrptr_list(xs) = let // fun loop ( i: int , xs: List(a) , res: List0_vt(Strptr1) ) : List0_vt(Strptr1) = ( case+ xs of | list_nil ((*void*)) => res | list_cons (x, xs) => let val res1 = ( if i > 0 then let val sep = tostrptr_list$sep<> () // end of [val] val sep = string0_copy (sep) in list_vt_cons (sep, res) end // end of [then] else res // end of [else] ) : List0_vt(Strptr1) val xrep = tostrptr_val (x) val res2 = list_vt_cons (xrep, res1) in loop (i+1, xs, res2) end // end of [list_cons] ) // val res = list_vt_nil () // val _beg = tostrptr_list$beg<> () val _beg = string0_copy(_beg) val res = list_vt_cons (_beg, res) // val res = loop (0, xs, res) // val _end = tostrptr_list$end<> () val _end = string0_copy(_end) val res = list_vt_cons (_end, res) // val res = list_vt_reverse (res) // in // $UN.castvwtp0{Strptr1}(strptrlst_concat(res)) // end // end of [tostrptr_list] (* ****** ****** *) // implement{} tostrptr_list$beg() = "" implement{} tostrptr_list$end() = "" implement{} tostrptr_list$sep() = "" // (* ****** ****** *) // implement(a) tostrptr_val (xs0) = $effmask_all (tostrptr_list (xs0)) // (* ****** ****** *) implement {a}(*tmp*) tostrptr_array (A, n) = let // prval() = lemma_g1uint_param(n) // fun loop {n:nat} .. ( i: int , p: ptr, n: size_t(n) , res: List0_vt(Strptr1) ) : List0_vt(Strptr1) = ( if (n > 0) then let // val res1 = ( if i > 0 then let val sep = tostrptr_array$sep<>() // end of [val] val sep = string0_copy(sep) in list_vt_cons(sep, res) end // end of [then] else res // end of [else] ) : List0_vt(Strptr1) // val (pf, fpf | p) = $UN.ptr_vtake{a}(p) // end of [val] val xrep = tostrptr_ref(!p) prval ((*returned*)) = fpf(pf) // val res2 = list_vt_cons(xrep, res1) // in loop (i+1, ptr_succ(p), pred(n), res2) end // end of [then] else res // end of [else] // ) (* end of [loop] *) // val res = list_vt_nil() // val _beg = tostrptr_array$beg<>() val _beg = string0_copy<>(_beg) // val res = list_vt_cons(_beg, res) val res = loop(0, addr@A, n, res) // val _end = tostrptr_array$end<>() val _end = string0_copy<>(_end) // val res = list_vt_cons(_end, res) val res = list_vt_reverse(res) // in // $UN.castvwtp0{Strptr1}(strptrlst_concat(res)) // end // end of [tostrptr_array] (* ****** ****** *) // implement{} tostrptr_array$beg() = "" // HX: default implement{} tostrptr_array$end() = "" // HX: default implement{} tostrptr_array$sep() = "" // HX: default // (* ****** ****** *) implement {a}(*tmp*) tostrptr_arrayref (A, n) = let // val (vbox pf | p) = arrayref_get_viewptr(A) // in // $effmask_ref(tostrptr_array(!p, n)) // end // end of [tostrptr_arrayref] (* ****** ****** *) implement {a}(*tmp*) tostrptr_arrszref (ASZ) = let // var asz: size_t // in tostrptr_arrayref(arrszref_get_refsize<>(ASZ, asz), asz) end // end of [tostrptr_arrszref] (* ****** ****** *) (* end of [tostring.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/basics.dats0000644000175000017500000001417113431250607021202 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/basics.atxt ** Time of generation: Thu Feb 14 11:29:48 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: March, 2012 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // // HX-2017-03-08: #define // there is no need ATS_DYNLOADFLAG 0 // for dynloading // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // implement patsopt_version((*void*)) = "0.3.4" // (* ****** ****** *) // primplmnt false_elim() = case+ 0 of _ =/=> () // (* ****** ****** *) primplmnt prop_verify () = () primplmnt prop_verify_and_add () = () (* ****** ****** *) primplmnt pridentity_v (x) = () primplmnt pridentity_vt (x) = () (* ****** ****** *) primplmnt eqint_make () = EQINT () primplmnt eqint_make_gint (x) = EQINT () primplmnt eqint_make_guint (x) = EQINT () (* ****** ****** *) primplmnt eqaddr_make () = EQADDR () primplmnt eqaddr_make_ptr (x) = EQADDR () (* ****** ****** *) primplmnt eqbool_make () = EQBOOL () primplmnt eqbool_make_bool (x) = EQBOOL () (* ****** ****** *) implement {a}(*tmp*) lazy_force (lazyval) = !lazyval implement {a}(*tmp*) lazy_vt_force (lazyval) = !lazyval (* ****** ****** *) // implement {a}(*tmp*) stamped_vt2t_ref{x}(x) = $UN.ptr0_get(addr@x) // (* ****** ****** *) primplmnt unit_v_elim (pf) = let prval unit_v () = pf in (*nothing*) end // end of [unit_v_elim] (* ****** ****** *) // implement{a} box(x) = $UN.cast(x) implement{a} unbox(x) = $UN.cast(x) // implement{a} box_vt(x) = $UN.castvwtp0(x) implement{a} unbox_vt(x) = $UN.castvwtp0(x) // (* ****** ****** *) // // HX: // See prelude/basics_dyn.sats // implement {a}(*tmp*) opt_unsome_get (x) = let prval () = opt_unsome (x) in x end // (* ****** ****** *) (* // // HX: [atspre_argv_at_at] in basics.cats // implement argv_get_at (argv, i) = x where { val (pf, fpf | p) = argv_takeout_strarr (argv) val x = !p.[i] prval () = minus_addback (fpf, pf | argv) } // end of [argv_get_at] *) (* ****** ****** *) implement {}(*tmp*) listize_argc_argv {n}(argc, argv) = let // prval () = lemma_argv_param(argv) // fun loop {i:nat | i <= n} .. ( argv: !argv(n), i0: int(i), res0: &ptr? >> list_vt(string, n-i) ) : void = ( if (i0 < argc) then let val x0 = argv[i0] val () = res0 := list_vt_cons{string}{0}(x0, _) // end of [val] val+list_vt_cons(_, res1) = res0 val () = loop(argv, i0+1, res1) prval ((*folded*)) = fold@(res0) in // nothing end // end of [then] else () where { val () = res0 := list_vt_nil() } ) (* end of [loop] *) // in let var res0: ptr in loop(argv, 0, res0); res0 end end // end of [listize_argc_argv] (* ****** ****** *) // implement{} assertexn_bool0 (b) = if not(b) then $raise AssertExn() // implement{} assertexn_bool1 (b) = if not(b) then $raise AssertExn() // (* ****** ****** *) implement {a}(*tmp*) gidentity (x) = (x) implement {a}(*tmp*) gidentity_vt (x) = (x) (* ****** ****** *) // implement (a:t@ype) gcopy_val (x) = (x) // implement (a:t@ype) gcopy_ref (x) = (x) // (* ****** ****** *) // implement (a:t@ype) gfree_val (x) = ((*void*)) // (* implement (a:t@ype) gfree_ref (x) = ((*void*)) *) // (* ****** ****** *) // implement (a:t@ype) gclear_ref (x) = ((*void*)) // (* ****** ****** *) // implement gequal_val_val (x, y) = (x = y) implement gequal_val_val (x, y) = (x = y) implement gequal_val_val (x, y) = (x = y) implement gequal_val_val (x, y) = (x = y) implement gequal_val_val (x, y) = (x = y) // (* ****** ****** *) // implement (a:t@ype) gequal_ref_ref (x, y) = gequal_val_val (x, y) // (* ****** ****** *) // implement {a}(*tmp*) tostring_val(x) = let // val str = $effmask_wrt(tostrptr_val(x)) in strptr2string(str) end // end of [tostring_val] // implement {a}(*tmp*) tostring_ref(x) = let // val str = $effmask_wrt(tostrptr_ref(x)) in strptr2string(str) end // end of [tostring_ref] // (* ****** ****** *) implement (a:t@ype) tostrptr_ref(x) = tostrptr_val(x) (* ****** ****** *) implement {a}(*tmp*) fprint_val(out, x) = let // val rep = tostrptr_val(x) val ((*void*)) = fprint_strptr(out, rep) val ((*freed*)) = strptr_free(rep) // in // nothing end (* end of [fprint_val] *) (* ****** ****** *) implement (a:t@ype) fprint_ref(out, x) = fprint_val(out, x) (* ****** ****** *) (* // // HX-2014-02-25: commented out // implement{a} print_val (x) = fprint_val (stdout_ref, x) implement{a} prerr_val (x) = fprint_val (stderr_ref, x) implement{a} print_ref (x) = fprint_ref (stdout_ref, x) implement{a} prerr_ref (x) = fprint_ref (stderr_ref, x) *) (* ****** ****** *) // implement {a}(*tmp*) print_stamped_t(x) = fprint_stamped_t(stdout_ref, x) implement {a}(*tmp*) prerr_stamped_t(x) = fprint_stamped_t(stderr_ref, x) // implement {a}(*tmp*) fprint_stamped_t(out, x) = fprint_val(out, unstamp_t(x)) // (* ****** ****** *) (* end of [basics.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/parray.dats0000644000175000017500000000575113431250607021240 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: April, 2012 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/parray.atxt ** Time of generation: Thu Feb 14 11:29:51 2019 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement {a}(*tmp*) parray_is_empty {l}{n}(pf | p) = let // prval () = lemma_parray_v_params(pf) // val x = $UN.ptr0_get(p) val [lx:addr] x = g1ofg0_ptr(x) // prval () = __assert__() where { extern praxi __assert__(): [(lx <= null && n==0) || (lx > null && n > 0)] void } (* end of [prval] *) // in lte_ptr1_ptr1(x, the_null_ptr) end // end of [parray_is_empty] implement {a}(*tmp*) parray_isnot_empty {l}{n} (pf | p) = let // prval () = lemma_parray_v_params(pf) // val x = $UN.ptr0_get(p) val [lx:addr] x = g1ofg0_ptr(x) // prval () = __assert__() where { extern praxi __assert__ (): [(lx <= null && n==0) || (lx > null && n > 0)] void } (* end of [prval] *) // in gt_ptr1_ptr1(x, the_null_ptr) end // end of [parray_isnot_empty] (* ****** ****** *) implement {a}(*tmp*) parray_size (pf | p0) = let // fun loop {l:addr} {i,j:nat} .. ( pf: !parray_v(a, l, i) | p0: ptr(l), j0: size_t(j) ) :<> size_t(i+j) = let // val isnot = parray_isnot_empty(pf | p0) // in // if isnot then asz where { prval parray_v_cons (pf1, pf2) = pf val asz = loop(pf2 | ptr_succ(p0), j0+1) prval ((*returned*)) = (pf := parray_v_cons{a}(pf1, pf2)) } (* end of [then] *) else (j0) // end of [else] // end if [if] end (* end of [loop] *) // in let prval () = lemma_parray_v_params(pf) in loop(pf | p0, i2sz(0)) end // end of [let] end // end of [parray_size] (* ****** ****** *) (* end of [parray.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/option.dats0000644000175000017500000000615213431250607021246 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: Feburary, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/option.atxt ** Time of generation: Thu Feb 14 11:29:49 2019 *) (* ****** ****** *) implement{a} option_some(x) = Some(x) implement{a} option_none( ) = None(*void*) (* ****** ****** *) implement {}(*tmp*) option2bool (opt) = ( case+ opt of | Some _ => true | None _ => false ) (* end of [option2bool] *) (* ****** ****** *) implement {}(*tmp*) option_is_some (opt) = ( case+ opt of | Some _ => true | None _ => false ) (* end of [option_is_some] *) implement {}(*tmp*) option_is_none (opt) = ( case+ opt of | Some _ => false | None _ => true ) (* end of [option_is_none] *) (* ****** ****** *) // implement {a}(*tmp*) option_unsome (opt) = ( x0 ) where { val+Some(x0) = opt } // implement {a}(*tmp*) option_unsome_exn (opt) = ( case+ opt of | Some x0 => x0 | None () => $raise NotSomeExn() ) (* option_unsome_exn *) // (* ****** ****** *) implement {a}(*tmp*) option_equal (opt1, opt2) = ( // case+ opt1 of | None () => ( case+ opt1 of | None() => true | Some _ => false ) (* end of [None] *) | Some x1 => ( case+ opt2 of | None() => false | Some(x2) => option_equal$eqfn(x1, x2) ) (* end of [Some] *) // ) (* end of [option_equal] *) (* ****** ****** *) // implement {a}(*tmp*) print_option(opt) = fprint_option(stdout_ref, opt) implement {a}(*tmp*) prerr_option(opt) = fprint_option(stderr_ref, opt) // implement {a}(*tmp*) fprint_option (out, opt) = ( // case+ opt of | Some x => { val () = fprint_string(out, "Some(") // end of [val] val () = fprint_val (out, x) val () = fprint_string (out, ")") } (* end of [Some] *) | None _ => fprint_string(out, "None()") // ) (* end of [fprint_option] *) // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/strptr.dats0000644000175000017500000002261513431250607021276 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/strptr.atxt ** Time of generation: Thu Feb 14 11:29:46 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2012 *) (* ****** ****** *) // // HX: #define // there is no need ATS_DYNLOADFLAG 0 // for dynloading // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload _(*anon*) = "prelude/DATS/integer.dats" (* ****** ****** *) #define CNUL '\000' #define nullp the_null_ptr (* ****** ****** *) overload + with add_ptr_bsz (* ****** ****** *) implement {}(*tmp*) strptr_is_null(str) = (strptr2ptr (str) = nullp) implement {}(*tmp*) strptr_isnot_null(str) = (strptr2ptr (str) > nullp) (* ****** ****** *) implement {}(*tmp*) strptr_is_empty(str) = let val p = strptr2ptr(str) in $UN.ptr1_get(p) = CNUL end // end of [strptr_is_empty] implement {}(*tmp*) strptr_isnot_empty(str) = let val p = strptr2ptr(str) in $UN.ptr1_get(p) != CNUL end // end of [strptr_isnot_empty] (* ****** ****** *) // implement {}(*tmp*) strnptr_get_at_size(str, i) = $UN.ptr0_get(strnptr2ptr(str)+i) // end of [strnptr_get_at_size] // implement {tk}(*tmp*) strnptr_get_at_gint(str, i) = strnptr_get_at_size(str, g1int2uint(i)) // end of [strnptr_get_at_gint] implement {tk}(*tmp*) strnptr_get_at_guint(str, i) = strnptr_get_at_size(str, g1uint2uint(i)) // end of [strnptr_get_at_guint] // (* ****** ****** *) // implement {}(*tmp*) strnptr_set_at_size(str, i, c) = $UN.ptr0_set(strnptr2ptr(str)+i, c) // end of [strnptr_set_at_size] // implement {tk}(*tmp*) strnptr_set_at_gint(str, i, c) = strnptr_set_at_size (str, g1int2uint(i), c) // end of [strnptr_set_at_gint] implement {tk}(*tmp*) strnptr_set_at_guint(str, i, c) = strnptr_set_at_size(str, g1uint2uint(i), c) // end of [strnptr_set_at_guint] // (* ****** ****** *) // implement lt_strptr_strptr (x1, x2) = ( compare_strptr_strptr(x1, x2) < 0 ) implement lte_strptr_strptr (x1, x2) = ( compare_strptr_strptr(x1, x2) <= 0 ) implement gt_strptr_strptr (x1, x2) = ( compare_strptr_strptr(x1, x2) > 0 ) implement gte_strptr_strptr (x1, x2) = ( compare_strptr_strptr(x1, x2) >= 0 ) implement eq_strptr_strptr (x1, x2) = ( compare_strptr_strptr(x1, x2) = 0 ) implement neq_strptr_strptr (x1, x2) = ( compare_strptr_strptr(x1, x2) != 0 ) // (* ****** ****** *) (* // // HX: implemented in [strptr.cats] // implement print_strptr(x) = fprint_strptr(stdout_ref, x) implement prerr_strptr(x) = fprint_strptr(stderr_ref, x) // implement print_strnptr(x) = fprint_strnptr(stdout_ref, x) implement prerr_strnptr(x) = fprint_strnptr(stderr_ref, x) *) (* ****** ****** *) implement {}(*tmp*) strnptr_is_null (str) = (strnptr2ptr (str) = nullp) implement {}(*tmp*) strnptr_isnot_null (str) = (strnptr2ptr (str) > nullp) (* ****** ****** *) implement {}(*tmp*) strptr_length(x) = let val isnot = ptr_isnot_null(strptr2ptr(x)) in // if isnot then g0u2i(string_length($UN.strptr2string(x))) else g0i2i(~1) // end // end of [strptr_length] implement {}(*tmp*) strnptr_length(x) = let prval () = lemma_strnptr_param (x) val isnot = ptr_isnot_null(strnptr2ptr(x)) in // if isnot then g1u2i(string_length($UN.strnptr2string(x))) else g1i2i(~1) // end // end of [strnptr_length] (* ****** ****** *) implement {}(*tmp*) strptr0_copy(x) = let val isnot = ptr_isnot_null(strptr2ptr(x)) in // if isnot then string0_copy($UN.strptr2string(x)) else strptr_null() // end // end of [strptr0_copy] implement {}(*tmp*) strptr1_copy(x) = string0_copy($UN.strptr2string(x)) (* ****** ****** *) implement {}(*tmp*) strnptr_copy {n}(x) = x2 where { val x = strnptr2ptr(x) val x = $UN.castvwtp0{Strptr0}(x) val x2 = $UN.castvwtp0{strnptr(n)}(strptr0_copy(x)) prval ((*void*)) = $UN.cast2void(x) } (* end of [strnptr_copy] *) (* ****** ****** *) implement {}(*tmp*) strptr_append (x1, x2) = let // val isnot1 = isneqz (strptr2ptr(x1)) // in // if isnot1 then let // val isnot2 = isneqz (strptr2ptr(x2)) // in // if ( isnot2 ) then ( strnptr2strptr( string1_append($UN.strptr2string(x1), $UN.strptr2string(x2)) ) (*strnptr2strptr*) ) else ( strptr1_copy(x1) ) // end of [if] // end else ( strptr0_copy(x2) ) (* end of [if] *) // end // end of [strptr_append] (* ****** ****** *) implement {}(*tmp*) strnptr_append {n1,n2}(x1, x2) = let // val x1 = $UN.strnptr2string(x1) and x2 = $UN.strnptr2string(x2) // in string1_append(x1, x2) end // end of [strnptr_append] (* ****** ****** *) implement {}(*tmp*) strptrlst_free (xs) = let // fun loop (xs: List_vt(Strptr0)): void = let in // case+ xs of | ~list_vt_cons (x, xs) => (strptr_free (x); loop (xs)) | ~list_vt_nil () => () // end // end of [loop] // in $effmask_all (loop (xs)) end // end of [strptrlst_free] (* ****** ****** *) implement {}(*tmp*) strptrlst_concat (xs) = let // prval () = lemma_list_vt_param (xs) // fun loop {n0:nat} .. ( xs: &list_vt(Strptr0, n0)>>list_vt(Strptr1, n1) ) : #[n1:nat | n1 <= n0] void = let in // case+ xs of | @list_vt_cons (x, xs1) => let val isnot = strptr_isnot_null (x) in if isnot then let val () = loop (xs1) prval () = fold@ (xs) in // nothing end else let prval () = strptr_free_null (x) val xs1 = xs1 val () = free@{..}{0}(xs) val ((*void*)) = (xs := xs1) in loop (xs) end // end of [if] end // end of [list_vt_cons] | @list_vt_nil () => fold@ (xs) // end // end of [loop] // var xs = xs val () = loop (xs) // in // case+ xs of | ~list_vt_nil () => strptr_null () | ~list_vt_cons (x, ~list_vt_nil ()) => x | _ => let val res = stringlst_concat ($UN.castvwtp1{List(string)}(xs)) val () = loop (xs) where { fun loop {n:nat} .. (xs: list_vt (Strptr1, n)): void = case+ xs of | ~list_vt_cons (x, xs) => (strptr_free (x); loop (xs)) | ~list_vt_nil ((*void*)) => () // end of [loop] } // end of [where] // end of [val] in res end // end of [_] // end // end of [strptrlst_concat] (* ****** ****** *) implement {env}(*tmp*) strnptr_foreach$cont (c, env) = true (* ****** ****** *) implement {}(*tmp*) strnptr_foreach (str) = let var env: void = () in strnptr_foreach_env (str, env) end // end of [strnptr_foreach] (* ****** ****** *) implement {env}(*tmp*) strnptr_foreach_env {n}(str, env) = let // fun loop ( p: ptr, env: &env >> _ ) : ptr = let // #define NUL '\000' // val c = $UN.ptr0_get (p) // in // if (c != NUL) then let val (pf, fpf | p) = $UN.ptr0_vtake{charNZ}(p) val cont = strnptr_foreach$cont (!p, env) // end of [val] in if cont then let val () = strnptr_foreach$fwork (!p, env) prval ((*void*)) = fpf (pf) in loop (ptr_succ (p), env) end // end of [then] else let prval ((*void*)) = fpf (pf) in (p) end // end of [else] end // end of [then] else (p) // end of [else] // end // end of [loop] // val p0 = ptrcast(str) // in $UN.cast{sizeLte(n)}(loop (p0, env) - p0) end // end of [strnptr_foreach_env] (* ****** ****** *) implement {env}(*tmp*) strnptr_rforeach$cont (c, env) = true (* ****** ****** *) implement {}(*tmp*) strnptr_rforeach (str) = let // var env: void = () // in strnptr_rforeach_env (str, env) end // end of [strnptr_rforeach] (* ****** ****** *) implement {env}(*tmp*) strnptr_rforeach_env {n}(str, env) = let // fun loop ( p0: ptr, p1: ptr, env: &env >> _ ) : ptr = let in // if (p1 > p0) then let val p2 = ptr_pred (p1) val (pf, fpf | p2) = $UN.ptr0_vtake{charNZ}(p2) val cont = strnptr_rforeach$cont (!p2, env) // end of [val] in if cont then let val () = strnptr_rforeach$fwork (!p2, env) prval ((*void*)) = fpf (pf) in loop (p0, p2, env) end // end of [then] else let prval ((*void*)) = fpf (pf) in (p1) end // end of [else] end // end of [then] else (p1) // end of [else] // end // end of [loop] // val p0 = ptrcast(str) val p1 = ptr_add (p0, length(str)) // in $UN.cast{sizeLte(n)}(p1 - loop (p0, p1, env)) end // end of [strnptr_rforeach_env] (* ****** ****** *) (* end of [strptr.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/stream.dats0000644000175000017500000005571013431250607021235 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/list.atxt ** Time of generation: Thu Feb 14 11:29:50 2019 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // implement {a}(*tmp*) stream_is_nil(xs) = ( case+ !xs of | stream_nil _ => true | stream_cons _ => false ) implement {a}(*tmp*) stream_is_cons(xs) = not(stream_is_nil(xs)) // (* ****** ****** *) // implement {a}(*tmp*) stream_make_nil() = $delay(stream_nil{a}()) // implement {a}(*tmp*) stream_make_cons (x, xs) = $delay(stream_cons{a}(x, xs)) // (* ****** ****** *) // implement {a}(*tmp*) stream_sing(x) = stream_cons{a}(x, $delay(stream_nil)) // implement {a}(*tmp*) stream_make_sing(x) = $delay(stream_cons{a}(x, $delay(stream_nil))) // (* ****** ****** *) implement {a}(*tmp*) stream2list (xs) = let // fun loop ( xs: stream(a) , res: &ptr? >> List0_vt(a) ) : void = let in case+ !xs of | stream_cons (x, xs) => let val () = res := list_vt_cons{a}{0}(x, _) val+list_vt_cons(_, res1) = res val ((*void*)) = loop (xs, res1) in fold@ (res) end // end of [stream_cons] | stream_nil() => res := list_vt_nil(*void*) end // end of [loop] var res: ptr // uninitialized val () = $effmask_all (loop (xs, res)) // in res end // end of [stream2list] (* ****** ****** *) implement {a}(*tmp*) stream_length (xs) = loop(xs, 0) where { // fun loop ( xs: stream(a), j: intGte(0) ) : intGte(0) = ( case+ !xs of | stream_nil() => j | stream_cons(_, xs) => loop(xs, j+1) ) // } (* end of [stream_length] *) (* ****** ****** *) implement {a}(*tmp*) stream_head_exn(xs) = ( // case+ !xs of | stream_cons (x, _) => x // stream_cons | stream_nil() => $raise StreamSubscriptExn() // ) // end of [stream_head_exn] implement {a}(*tmp*) stream_tail_exn(xs) = ( // case+ !xs of | stream_cons (_, xs) => xs // stream_cons | stream_nil() => $raise StreamSubscriptExn() // ) // end of [stream_tail_exn] (* ****** ****** *) implement {a}(*tmp*) stream_nth_exn (xs, n) = let in case+ !xs of | stream_cons (x, xs) => ( if n > 0 then stream_nth_exn(xs, pred(n)) else (x) // end of [if] ) (* stream_cons *) | stream_nil() => $raise StreamSubscriptExn() end // end of [stream_nth_exn] (* ****** ****** *) implement {a}(*tmp*) stream_nth_opt (xs, n) = let in // try Some_vt(stream_nth_exn(xs, n)) with ~StreamSubscriptExn() => None_vt() // end // end of [stream_nth_opt] (* ****** ****** *) implement {a}(*tmp*) stream_get_at_exn(xs, n) = stream_nth_exn(xs, n) (* ****** ****** *) implement {a}(*tmp*) stream_takeLte (xs, n) = let // fun auxmain ( xs: stream(a) , n0: intGte(0) ) : stream_vt(a) = $ldelay ( if (n0 > 0) then ( case+ !xs of | stream_nil() => stream_vt_nil() // end of [stream_nil] | stream_cons(x, xs) => stream_vt_cons(x, auxmain(xs, n0-1)) // end of [stream_cons] ) else stream_vt_nil() ) (* end of [auxmain] *) // in auxmain(xs, n) end // end of [stream_takeLte] (* ****** ****** *) implement {a}(*tmp*) stream_take_exn (xs, n) = let // fun loop{n:nat} ( xs: stream(a) , res: &ptr? >> list_vt(a, n-k), n: int(n) ) : #[k:nat | k <= n] int k = ( // if (n > 0) then ( case+ !xs of | stream_cons (x, xs) => k where { val () = res := list_vt_cons{a}{0}(x, _) val+list_vt_cons (_, res1) = res val k = loop (xs, res1, pred(n)) prval () = fold@ (res) } (* end of [stream_cons] *) | stream_nil() => let val () = res := list_vt_nil() in n // end of [val] end // end of [stream_nil] ) else ( let val () = res := list_vt_nil() in n end ) (* end of [if] *) // ) (* end of [loop] *) // var res: ptr // uninitialized val k = $effmask_all (loop (xs, res, n)) // in // $effmask_all ( if k = 0 then res else let val () = list_vt_free (res) in $raise StreamSubscriptExn() end // end of [if] ) // end of [$effmask_all] // end // end of [stream_take_exn] (* ****** ****** *) implement {a}(*tmp*) stream_drop_exn (xs, n) = let // fun aux: $d2ctype ( stream_drop_exn ) = lam(xs, n) => ( // if n > 0 then ( case+ !xs of | stream_cons (_, xs) => aux(xs, pred(n)) // stream_cons | stream_nil() => $raise StreamSubscriptExn() ) else (xs) // end of [if] // ) (* end of [aux] *) // in aux(xs, n) end // end of [stream_drop_exn] (* ****** ****** *) implement {a}(*tmp*) stream_drop_opt (xs, n) = let fun aux: $d2ctype ( stream_drop_opt ) = lam(xs, n) => ( // if n > 0 then ( case+ !xs of | stream_nil() => None_vt() | stream_cons(_, xs) => aux(xs, pred(n)) ) else Some_vt(xs) // end of [if] // ) (* end of [aux] *) // in aux(xs, n) end // end of [stream_drop_opt] (* ****** ****** *) implement {a}(*tmp*) stream_append (xs, ys) = let // fun aux ( xs: stream(a) , ys: stream(a) ) : stream_con(a) = case+ !xs of | stream_nil() => !ys | stream_cons(x, xs) => stream_cons(x, $delay(aux(xs, ys))) // in // $delay(aux(xs, ys)) // end // end of [stream_append] (* ****** ****** *) implement {a}(*tmp*) stream_concat (xss) = let // fun aux1 ( xss: stream(stream(a)) ) : stream_con(a) = ( case+ !xss of | stream_nil() => stream_nil() | stream_cons(xs, xss) => aux2(xs, xss) ) and aux2 ( xs: stream(a), xss: stream(stream(a)) ) : stream_con(a) = case+ !xs of | stream_nil() => aux1 (xss) | stream_cons(x, xs) => stream_cons (x, $delay(aux2(xs, xss))) // in $delay(aux1(xss)) end // end of [stream_concat] (* ****** ****** *) local fun{a:t0p} stream_filter_con ( xs: stream(a) ) : stream_con(a) = let in // case+ !xs of | stream_cons (x, xs) => ( if stream_filter$pred(x) then stream_cons{a}(x, stream_filter(xs)) else stream_filter_con(xs) // end of [if] ) // end of [stream_cons] | stream_nil() => stream_nil() // end // end of [stream_filter_con] in (* in of [local] *) implement {a}(*tmp*) stream_filter(xs) = $delay ( stream_filter_con(xs) ) // end of [stream_filter] implement {a}(*tmp*) stream_filter_fun (xs, p0) = let // implement{a2} stream_filter$pred (x) = p0($UN.cast{a}(x)) // in stream_filter(xs) end // end of [stream_filter_fun] implement {a}(*tmp*) stream_filter_cloref (xs, p0) = let // implement {a2}(*tmp*) stream_filter$pred (x) = p0($UN.cast{a}(x)) // in stream_filter(xs) end // end of [stream_filter_cloref] end // end of [local] (* ****** ****** *) implement {a}{b} stream_map(xs) = auxmain(xs) where { // fun auxmain ( xs: stream(a) ) : stream(b) = $delay ( case+ !xs of | stream_nil() => stream_nil() | stream_cons(x, xs) => let val y = stream_map$fopr(x) in stream_cons{b}(y, auxmain(xs)) end // end of [stream_cons] ) : stream_con(b) // end of [$delay] // } (* end of [stream_map] *) implement {a}{b} stream_map_fun (xs, f) = let // implement {a2}{b2} stream_map$fopr(x) = $UN.cast{b2} (f($UN.cast{a}(x))) // in stream_map(xs) end // end of [stream_map_fun] implement {a}{b} stream_map_cloref (xs, f) = let // implement {a2}{b2} stream_map$fopr(x) = $UN.cast{b2} (f($UN.cast{a}(x))) // in stream_map(xs) end // end of [stream_map_cloref] (* ****** ****** *) implement {a}{b} stream_imap(xs) = auxmain(0, xs) where { // fun auxmain ( i: intGte(0), xs: stream(a) ) : stream (b) = $delay ( case+ !xs of | stream_nil() => stream_nil() | stream_cons (x, xs) => let val y = stream_imap$fopr(i, x) // end of [val] in stream_cons{b}(y, auxmain(succ(i), xs)) end // end of [stream_cons] ) : stream_con (b) // end of [$delay] // } (* end of [stream_imap] *) implement {a}{b} stream_imap_fun (xs, f) = let // implement {a2}{b2} stream_imap$fopr (i, x) = ( $UN.cast{b2} (f(i, $UN.cast{a}(x))) ) // in stream_imap(xs) end // end of [stream_imap_fun] implement {a}{b} stream_imap_cloref (xs, f) = let // implement {a2}{b2} stream_imap$fopr (i, x) = ( $UN.cast{b2} (f(i, $UN.cast{a}(x))) ) // in stream_imap(xs) end // end of [stream_imap_cloref] (* ****** ****** *) local #define :: stream_cons in (* in of [local] *) implement {a1,a2}{b} stream_map2 (xs1, xs2) = $delay ( ( case+ !xs1 of | stream_nil() => stream_nil() | stream_cons(x1, xs1) => ( case+ !xs2 of | stream_nil() => stream_nil() | stream_cons(x2, xs2) => let val y = stream_map2$fopr(x1, x2) in stream_cons{b} (y, stream_map2(xs1, xs2)) // stream_cons end // stream_cons ) // end of [stream_cons] ) : stream_con(b) ) // end of [stream_map2] end // end of [local] implement {a1,a2}{b} stream_map2_fun (xs1, xs2, f) = let // implement {a12,a22}{b2} stream_map2$fopr (x1, x2) = let // val x1 = $UN.cast{a1}(x1) val x2 = $UN.cast{a2}(x2) // in $UN.cast{b2}(f(x1, x2)) end // [stream_map2$fopr] // in stream_map2(xs1, xs2) end // end of [stream_map2_fun] implement {a1,a2}{b} stream_map2_cloref (xs1, xs2, f) = let // implement {a12,a22}{b2} stream_map2$fopr (x1, x2) = $UN.cast{b2}(f($UN.cast{a1}(x1), $UN.cast{a2}(x2))) // in stream_map2(xs1, xs2) end // end of [stream_map2_cloref] (* ****** ****** *) implement {res}{x} stream_scan (xs, ini) = let // fun auxmain ( xs: stream(x), ini: res ) : stream(res) = $delay ( case+ !xs of | stream_nil() => stream_nil() | stream_cons(x, xs) => stream_cons{res} (stream_scan$fopr(ini, x), auxmain(xs, ini)) ) // end of [$delay] // end of [auxmain] // in stream_make_cons(ini, auxmain(xs, ini)) end // end of [stream_scan] (* ****** ****** *) implement {res}{x} stream_scan_fun (xs, ini, f) = let // implement {res2}{x2} stream_scan$fopr (ini, x) = $UN.cast{res2}(f($UN.cast{res}(ini), $UN.cast{x}(x))) // in stream_scan(xs, ini) end // end of [stream_scan_fun] implement {res}{x} stream_scan_cloref (xs, ini, f) = let // implement {res2}{x2} stream_scan$fopr (ini, x) = $UN.cast{res2}(f($UN.cast{res}(ini), $UN.cast{x}(x))) // in stream_scan(xs, ini) end // end of [stream_scan_cloref] (* ****** ****** *) implement {a,b}//tmp stream_zip (xs, ys) = ( auxmain(xs, ys) ) where { fun auxmain: $d2ctype (stream_zip) = lam(xs, ys) => $delay ( case+ !xs of | stream_nil() => stream_nil() | stream_cons(x0, xs) => ( case+ !ys of | stream_nil() => stream_nil() | stream_cons(y0, ys) => stream_cons((x0, y0), auxmain(xs, ys)) ) ) (* end of [auxmain] *) } (* end of [stream_zip] *) (* ****** ****** *) implement {a,b}//tmp stream_cross (xs, ys) = ( auxmain(xs, ys) ) where { fun auxmain: $d2ctype (stream_cross) = lam(xs, ys) => $delay ( case+ !xs of | stream_nil() => stream_nil() | stream_cons(x0, xs) => ! ( stream_append(xys, auxmain(xs, ys)) ) where { val xys = ( stream_map<(a,b)>(ys) ) where { implement stream_map$fopr<(a,b)>(y) = @(x0, y) } } ) (* end of [auxmain] *) } (* end of [stream_cross] *) (* ****** ****** *) local #define :: stream_cons in (* in of [local] *) implement {a}(*tmp*) stream_merge (xs10, xs20) = let // fun auxmain: $d2ctype ( stream_merge ) = lam ( xs10, xs20 ) => $delay ( case+ !xs10 of | stream_nil ((*_*)) => !xs20 | stream_cons (x1, xs1) => ( case+ !xs20 of | stream_nil ((*_*)) => stream_cons{a}(x1, xs1) | stream_cons (x2, xs2) => let val sgn = stream_merge$cmp (x1, x2) // end of [val] in if (sgn <= 0) then stream_cons{a} (x1, auxmain(xs1, xs20)) // end of [then] else stream_cons{a} (x2, auxmain(xs10, xs2)) // end of [else] end // end of [::] ) (* end of [::] *) ) (* end of [auxmain] *) // in auxmain(xs10, xs20) end // end of [stream_merge] end // end of [local] (* ****** ****** *) // implement {a}(*tmp*) stream_merge$cmp (x1, x2) = gcompare_val_val(x1, x2) // (* ****** ****** *) implement {a}(*tmp*) stream_merge_fun (xs1, xs2, cmp) = let // implement{a2} stream_merge$cmp(x1, x2) = cmp($UN.cast{a}(x1), $UN.cast{a}(x2)) // in stream_merge(xs1, xs2) end // end of [stream_merge_fun] implement {a}(*tmp*) stream_merge_cloref (xs1, xs2, cmp) = let // implement{a2} stream_merge$cmp(x1, x2) = cmp($UN.cast{a}(x1), $UN.cast{a}(x2)) // in stream_merge(xs1, xs2) end // end of [stream_merge_cloref] (* ****** ****** *) local #define :: stream_cons in (* in of [local] *) implement {a}(*tmp*) stream_mergeq (xs10, xs20) = let // fun auxmain: $d2ctype ( stream_mergeq ) = lam ( xs10, xs20 ) => $delay ( case+ !xs10 of | stream_nil() => !xs20 | stream_cons(x1, xs1) => ( case+ !xs20 of | stream_nil() => stream_cons{a}(x1, xs1) | stream_cons(x2, xs2) => let val sgn = stream_mergeq$cmp(x1, x2) // end of [val] in if (sgn < 0) then stream_cons{a}(x1, auxmain(xs1, xs20)) else if (sgn > 0) then stream_cons{a}(x2, auxmain(xs10, xs2)) else stream_cons{a}(x1(*=x2*), auxmain(xs1, xs2)) // end of [if] end // end of [::] ) (* end of [stream_cons] *) ) (* end of [auxmain] *) // in auxmain(xs10, xs20) end // end of [stream_mergeq] end // end of [local] (* ****** ****** *) // implement {a}(*tmp*) stream_mergeq$cmp (x1, x2) = gcompare_val_val(x1, x2) // (* ****** ****** *) implement {a}(*tmp*) stream_mergeq_fun (xs1, xs2, cmp) = let // implement{a2} stream_mergeq$cmp(x1, x2) = cmp ($UN.cast{a}(x1), $UN.cast{a}(x2)) // in stream_mergeq(xs1, xs2) end // end of [stream_mergeq_fun] implement {a}(*tmp*) stream_mergeq_cloref (xs1, xs2, cmp) = let // implement{a2} stream_mergeq$cmp(x1, x2) = cmp ($UN.cast{a}(x1), $UN.cast{a}(x2)) // in stream_mergeq(xs1, xs2) end // end of [stream_mergeq_cloref] (* ****** ****** *) // implement {a}(*tmp*) stream_union$cmp (x1, x2) = gcompare_val_val(x1, x2) implement {a}(*tmp*) stream_inter$cmp (x1, x2) = gcompare_val_val(x1, x2) implement {a}(*tmp*) stream_differ$cmp (x1, x2) = gcompare_val_val(x1, x2) implement {a}(*tmp*) stream_symdiff$cmp (x1, x2) = gcompare_val_val(x1, x2) // (* ****** ****** *) implement {a}(*tmp*) stream_union ( xs, ys ) = auxmain(xs, ys) where { // fun auxmain ( xs0: stream(a) , ys0: stream(a) ) : stream(a) = $delay ( case+ !xs0 of | stream_nil () => !(ys0) // stream_nil | stream_cons (x0, xs1) => ( case+ !ys0 of | stream_nil() => stream_cons(x0, xs1) | stream_cons(y0, ys1) => let val sgn = stream_union$cmp(x0, y0) in ifcase | sgn < 0 => stream_cons(x0, auxmain(xs1, ys0)) | sgn > 0 => stream_cons(y0, auxmain(xs0, ys1)) | _(*sgn=0*) => stream_cons(x0, auxmain(xs1, ys1)) end // end of [stream_cons] ) ) (* end of [auxmain] *) // } (* end of [stream_union] *) (* ****** ****** *) implement {a}(*tmp*) stream_inter ( xs, ys ) = auxmain(xs, ys) where { // fun auxmain ( xs0: stream(a) , ys0: stream(a) ) : stream(a) = $delay ( case+ !xs0 of | stream_nil() => stream_nil() | stream_cons(x0, xs1) => ( case+ !ys0 of | stream_nil() => stream_nil() | stream_cons(y0, ys1) => let val sgn = stream_inter$cmp(x0, y0) in ifcase | sgn < 0 => !(auxmain(xs1, ys0)) | sgn > 0 => !(auxmain(xs0, ys1)) | _(*sgn=0*) => stream_cons(x0, auxmain(xs1, ys1)) // end of [else] end // end of [stream_cons] ) ) (* end of [auxmain] *) // } (* end of [stream_inter] *) (* ****** ****** *) implement {a}(*tmp*) stream_differ ( xs, ys ) = auxmain(xs, ys) where { // fun auxmain ( xs0: stream(a) , ys0: stream(a) ) : stream(a) = $delay ( case+ !xs0 of | stream_nil() => stream_nil() | stream_cons(x0, xs1) => ( case+ !ys0 of | stream_nil() => stream_cons(x0, xs1) | stream_cons(y0, ys1) => let val sgn = stream_differ$cmp(x0, y0) in ifcase | sgn < 0 => stream_cons (x0, auxmain(xs1, ys0)) // stream_cons | sgn > 0 => !(auxmain(xs0, ys1)) | _(*sgn=0*) => !(auxmain(xs1, ys1)) end // end of [stream_cons] ) ) (* end of [auxmain] *) // } (* end of [stream_differ] *) (* ****** ****** *) implement {a}(*tmp*) stream_symdiff ( xs, ys ) = auxmain(xs, ys) where { // fun auxmain ( xs0: stream(a) , ys0: stream(a) ) : stream(a) = $delay ( case+ !xs0 of | stream_nil () => !(ys0) // stream_nil | stream_cons (x0, xs1) => ( case+ !ys0 of | stream_nil() => stream_cons(x0, xs1) | stream_cons(y0, ys1) => let val sgn = stream_symdiff$cmp(x0, y0) in ifcase | sgn < 0 => stream_cons (x0, auxmain(xs1, ys0)) // stream_cons | sgn > 0 => stream_cons (y0, auxmain(xs0, ys1)) // stream_cons | _(*sgn=0*) => !(auxmain(xs1, ys1)) end // end of [stream_cons] ) ) (* end of [auxmain] *) // } (* end of [stream_symdiff] *) (* ****** ****** *) implement {a}(*tmp*) stream_tabulate ((*void*)) = auxmain(0) where { // fun auxmain{n:nat} ( n: int(n) ) : stream(a) = $delay ( stream_cons{a} (stream_tabulate$fopr(n), auxmain(n+1)) ) (* end of [auxmain] *) // } (* end of [stream_tabulate] *) (* ****** ****** *) implement {a}(*tmp*) stream_tabulate_fun (fopr) = let // implement {a2}(*tmp*) stream_tabulate$fopr (n) = $UN.cast{a2}(fopr(n)) // in stream_tabulate () end // end of [stream_tabulate_fun] implement {a}(*tmp*) stream_tabulate_cloref (fopr) = let // implement {a2}(*tmp*) stream_tabulate$fopr (n) = $UN.cast{a2}(fopr(n)) // in stream_tabulate () end // end of [stream_tabulate_cloref] (* ****** ****** *) implement {a}(*tmp*) stream_labelize(xs) = let // vtypedef ia = @(intGte(0), a) // fun auxmain ( i0: intGte(0) , xs: stream(a) ) : stream(ia) = $delay ( ( case+ !xs of | stream_nil () => stream_nil() // end of [stream_nil] | stream_cons (x, xs) => stream_cons((i0, x), auxmain(i0+1, xs)) // end of [stream_cons] ) ) (* end of [auxmain] *) // in auxmain(0, xs) end // end of [stream_labelize] (* ****** ****** *) implement {a}(*tmp*) stream_foreach (xs) = let var env: void = () in stream_foreach_env(xs, env) end // end of [stream_foreach] implement {a}{env} stream_foreach_env (xs, env) = let // fun loop ( xs: stream(a), env: &env >> _ ) : void = ( // case+ !xs of | stream_nil() => () | stream_cons(x, xs) => let val test = stream_foreach$cont(x, env) // end of [val] in if test then let val () = stream_foreach$fwork(x, env) // end of [val] in loop (xs, env) end // end of [then] else () // end of [else] // end of [if] end // end of [stream_cons] // ) (* end of [loop] *) // in loop (xs, env) end (* end of [stream_foreach_env] *) implement(a,env) stream_foreach$cont(x0, env) = true(*cont*) (* ****** ****** *) implement {a}(*tmp*) stream_foreach_fun (xs, fwork) = loop(xs) where { // fun loop(xs: stream(a)): void = ( case+ !xs of | stream_nil() => () | stream_cons(x, xs) => (fwork(x); loop(xs)) ) // } (* end of [stream_foreach_fun] *) implement {a}(*tmp*) stream_foreach_cloref (xs, fwork) = loop(xs) where { // fun loop(xs: stream(a)): void = ( case+ !xs of | stream_nil() => () | stream_cons(x, xs) => (fwork(x); loop(xs)) ) // } (* end of [stream_foreach_cloref] *) (* ****** ****** *) // // implement {a}(*tmp*) stream_iforeach_fun (xs, fwork) = loop(0, xs) where { // fun loop ( i: intGte(0) , xs: stream(a)): void = ( case+ !xs of | stream_nil() => () | stream_cons(x, xs) => let val () = fwork(i, x) in loop(i+1, xs) end ) // } (* end of [stream_iforeach_fun] *) // implement {a}(*tmp*) stream_iforeach_cloref (xs, fwork) = loop(0, xs) where { // fun loop ( i: intGte(0) , xs: stream(a)): void = ( case+ !xs of | stream_nil() => () | stream_cons(x, xs) => let val () = fwork(i, x) in loop(i+1, xs) end ) // } (* end of [stream_iforeach_cloref] *) // (* ****** ****** *) implement {res}{a} stream_foldleft_fun (xs, ini, fopr) = let // fun loop(xs: stream(a), res: res): res = ( case+ !xs of | stream_nil() => res | stream_cons(x, xs) => loop(xs, fopr(res, x)) ) in loop(xs, ini) end // end of [stream_foldleft_fun] implement {res}{a} stream_foldleft_cloref (xs, ini, fopr) = let // fun loop(xs: stream(a), res: res): res = ( case+ !xs of | stream_nil() => res | stream_cons(x, xs) => loop(xs, fopr(res, x)) ) in loop(xs, ini) end // end of [stream_foldleft_cloref] (* ****** ****** *) implement {a}(*tmp*) fprint_stream (out, xs, n) = let // var env: int = 0 typedef tenv = int // implement stream_foreach$cont (x, env) = if n > env then true else false implement stream_foreach$fwork (x, env) = { val () = if env > 0 then fprint_stream$sep<>(out) // end of [if] val () = env := env + 1 val () = fprint_val(out, x) } (* end of [stream_foreach$fwork] *) // in stream_foreach_env(xs, env) end // end of [fprint_stream] implement {}(*tmp*) fprint_stream$sep (out) = fprint_string (out, ", ") (* ****** ****** *) implement {a}(*tmp*) stream_skip_while_cloref (xs0, test) = let // val p0 = addr@xs0 // fun loop ( xs: stream(a), n0: intGte(0) ) : intGte(0) = ( case+ !xs of | stream_nil() => n0 where { val () = $UN.ptr0_set(p0, xs) } | stream_cons(x1, xs2) => if test(x1) then loop(xs2, n0+1) else (let val () = $UN.ptr0_set(p0, xs) in n0 end) // end of [if] // end of [stream_cons] ) // in loop(xs0, 0) end // end of [stream_skip_while_cloref] implement {a}(*tmp*) stream_skip_until_cloref (xs0, test) = let // var test_not = lam@(x: a) = ~test(x) // in stream_skip_while_cloref(xs0, $UN.cast(addr@test_not)) end // end of [stream_skip_until_cloref] (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/unsafe.dats0000644000175000017500000001305513431250607021217 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/unsafe.atxt ** Time of generation: Thu Feb 14 11:29:47 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2012 *) (* ****** ****** *) staload "prelude/SATS/unsafe.sats" (* ****** ****** *) implement {}(*tmp*) int2ptr(i) = cast{ptr}(cast{intptr}(i)) implement {}(*tmp*) ptr2int(p) = cast{int}(cast{intptr}(p)) (* ****** ****** *) implement {a}(*tmp*) ptr0_get (p) = x where { val [l:addr] p = g1ofg0_ptr(p) prval (pf, fpf) = __assert () where { extern praxi __assert (): (a @ l, a? @ l - void) } // end of [prval] val x = !p prval () = fpf (pf) } // end of [ptr0_get] implement{a} ptr1_get = ptr0_get (* ****** ****** *) implement {a}(*tmp*) ptr0_set (p, x) = () where { val [l:addr] p = g1ofg0_ptr(p) prval (pf, fpf) = __assert () where { extern praxi __assert (): (a? @ l, a @ l - void) } // end of [prval] val () = !p := x prval () = fpf (pf) } // end of [ptr0_set] implement{a} ptr1_set = ptr0_set (* ****** ****** *) implement {a}(*tmp*) ptr0_exch (p, x) = () where { val p = g1ofg0_ptr(p) val (pf, fpf | p) = ptr_vtake{a}(p) val tmp = !p val ( ) = !p := x val ( ) = x := tmp prval () = fpf (pf) } // end of [ptr0_exch] implement{a} ptr1_exch = ptr0_exch (* ****** ****** *) implement {a}(*tmp*) ptr0_intch (p1, p2) = () where { val p1 = g1ofg0_ptr(p1) val p2 = g1ofg0_ptr(p2) val (pf1, fpf1 | p1) = ptr_vtake{a}(p1) val (pf2, fpf2 | p2) = ptr_vtake{a}(p2) val tmp = !p1 val ( ) = !p1 := !p2 val ( ) = !p2 := tmp prval () = fpf1 (pf1) prval () = fpf2 (pf2) } (* end of [ptr0_intch] *) implement{a} ptr1_intch = ptr0_intch (* ****** ****** *) implement {a}(*tmp*) ptr0_getinc(p0) = let val p = p0 val x = ptr0_get(p) val () = p0 := ptr_succ(p) in (x) end // end of [ptr0_getinc] implement {a}(*tmp*) ptr1_getinc(p0) = let val p = p0 val x = ptr0_get(p) val () = p0 := ptr_succ(p) in (x) end // end of [ptr1_getinc] (* ****** ****** *) implement {a}(*tmp*) ptr0_setinc(p0, x) = let val p = p0 val () = ptr0_set(p, x) val () = p0 := ptr_succ(p) in (*void*) end // end of [ptr0_setinc] implement {a}(*tmp*) ptr1_setinc(p0, x) = let val p = p0 val () = ptr0_set(p, x) val () = p0 := ptr_succ(p) in (*void*) end // end of [ptr1_setinc] (* ****** ****** *) // implement {a}(*tmp*) ptr0_get_at_int(p, i) = ptr0_get(ptr0_add_gint(p, i)) implement {a}(*tmp*) ptr0_set_at_int(p, i, x) = ptr0_set(ptr0_add_gint(p, i), x) // implement {a}(*tmp*) ptr0_get_at_size(p, i) = ptr0_get(ptr0_add_guint(p, i)) implement {a}(*tmp*) ptr0_set_at_size(p, i, x) = ptr0_set(ptr0_add_guint(p, i), x) // (* ****** ****** *) implement {a}(*tmp*) cptr_get(p) = ptr1_get(cptr2ptr(p)) implement {a}(*tmp*) cptr_set(p, x) = ptr1_set(cptr2ptr(p), x) implement {a}(*tmp*) cptr_exch(p, x) = ptr1_exch(cptr2ptr(p), x) (* ****** ****** *) implement {a}(*tmp*) ptr0_addby (p, x) = let val x0 = ptr0_get(p) in ptr0_set(p, gadd_val_val(x0, x)) end // end of [ptr0_addby] implement{a} ptr1_addby = ptr0_addby implement {a}(*tmp*) ptr0_subby (p, x) = let val x0 = ptr0_get(p) in ptr0_set(p, gsub_val_val(x0, x)) end // end of [ptr0_subby] implement{a} ptr1_subby = ptr0_subby implement {a}(*tmp*) ptr0_mulby (p, x) = let val x0 = ptr0_get(p) in ptr0_set(p, gmul_val_val(x0, x)) end // end of [ptr0_mulby] implement{a} ptr1_mulby = ptr0_mulby implement {a}(*tmp*) ptr0_divby (p, x) = let val x0 = ptr0_get(p) in ptr0_set(p, gdiv_val_val(x0, x)) end // end of [ptr0_divby] implement{a} ptr1_divby = ptr0_divby implement {a}(*tmp*) ptr0_modby (p, x) = let // val x0 = ptr0_get(p) // in ptr0_set(p, gmod_val_val(x0, x)) end // end of [ptr0_modby] implement{a} ptr1_modby = ptr0_modby (* ****** ****** *) implement {a}(*tmp*) ptr1_list_next (p) = p_next where { val xs = castvwtp1{list_vt(a,1)}(p) val+@list_vt_cons(_, xs_next) = xs val p_next = addr@(xs_next) prval ((*void*)) = fold@ (xs) prval ((*void*)) = cast2void (xs) } (* end of [ptr1_list_next] *) (* ****** ****** *) implement {}(*tmp*) string_get_at(src, i) = ptr0_get_at(string2ptr(src), i) (* ****** ****** *) (* end of [unsafe.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/memory.dats0000644000175000017500000000360413431250607021245 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/memory.atxt ** Time of generation: Thu Feb 14 11:29:47 2019 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement {}(*tmp*) memory$free{l} (pfat, pfmf | p) = let // prval pfgc = $UN.castview0{mfree_gc_v(l)}(pfmf) // in mfree_gc (pfat, pfgc | p) end // end of [memory$free] (* ****** ****** *) implement {}(*tmp*) memory$alloc {n} (bsz) = let // val [l:addr] (pfat, pfgc | p) = malloc_gc (bsz) prval pfmf = $UN.castview0{memory$free_v(l)}(pfgc) // in (pfat, pfmf | p) end // end of [memory$alloc] (* ****** ****** *) (* end of [memory.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/integer_fixed.dats0000644000175000017500000003341613431250607022555 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2014 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/integer_fixed.atxt ** Time of generation: Thu Feb 14 11:29:47 2019 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // implement g0int2int = g0int2int_int8_int implement g0int2int = g0int2int_int16_int implement g0int2int = g0int2int_int32_int implement g0int2int = g0int2int_int64_int // (* ****** ****** *) // implement g0int2uint = g0int2uint_int8_uint implement g0int2uint = g0int2uint_int16_uint implement g0int2uint = g0int2uint_int32_uint implement g0int2uint = g0int2uint_int64_uint // implement g0uint2int = g0uint2int_uint8_int implement g0uint2int = g0uint2int_uint16_int implement g0uint2int = g0uint2int_uint32_int implement g0uint2int = g0uint2int_uint64_int // implement g0uint2uint = g0uint2uint_uint8_uint implement g0uint2uint = g0uint2uint_uint16_uint implement g0uint2uint = g0uint2uint_uint32_uint implement g0uint2uint = g0uint2uint_uint64_uint // (* ****** ****** *) // implement g0int_neg = g0int_neg_int8 implement g0int_abs = g0int_abs_int8 implement g0int_succ = g0int_succ_int8 implement g0int_pred = g0int_pred_int8 implement g0int_half = g0int_half_int8 implement g0int_add = g0int_add_int8 implement g0int_sub = g0int_sub_int8 implement g0int_mul = g0int_mul_int8 implement g0int_div = g0int_div_int8 implement g0int_mod = g0int_mod_int8 implement g0int_asl = g0int_asl_int8 implement g0int_asr = g0int_asr_int8 implement g0int_isltz = g0int_isltz_int8 implement g0int_isltez = g0int_isltez_int8 implement g0int_isgtz = g0int_isgtz_int8 implement g0int_isgtez = g0int_isgtez_int8 implement g0int_iseqz = g0int_iseqz_int8 implement g0int_isneqz = g0int_isneqz_int8 implement g0int_lt = g0int_lt_int8 implement g0int_lte = g0int_lte_int8 implement g0int_gt = g0int_gt_int8 implement g0int_gte = g0int_gte_int8 implement g0int_eq = g0int_eq_int8 implement g0int_neq = g0int_neq_int8 implement g0int_compare = g0int_compare_int8 implement g0int_max = g0int_max_int8 implement g0int_min = g0int_min_int8 // implement fprint_val (out, x) = fprint_int8 (out, x) // implement g0int_neg = g0int_neg_int16 implement g0int_abs = g0int_abs_int16 implement g0int_succ = g0int_succ_int16 implement g0int_pred = g0int_pred_int16 implement g0int_half = g0int_half_int16 implement g0int_add = g0int_add_int16 implement g0int_sub = g0int_sub_int16 implement g0int_mul = g0int_mul_int16 implement g0int_div = g0int_div_int16 implement g0int_mod = g0int_mod_int16 implement g0int_asl = g0int_asl_int16 implement g0int_asr = g0int_asr_int16 implement g0int_isltz = g0int_isltz_int16 implement g0int_isltez = g0int_isltez_int16 implement g0int_isgtz = g0int_isgtz_int16 implement g0int_isgtez = g0int_isgtez_int16 implement g0int_iseqz = g0int_iseqz_int16 implement g0int_isneqz = g0int_isneqz_int16 implement g0int_lt = g0int_lt_int16 implement g0int_lte = g0int_lte_int16 implement g0int_gt = g0int_gt_int16 implement g0int_gte = g0int_gte_int16 implement g0int_eq = g0int_eq_int16 implement g0int_neq = g0int_neq_int16 implement g0int_compare = g0int_compare_int16 implement g0int_max = g0int_max_int16 implement g0int_min = g0int_min_int16 // implement fprint_val (out, x) = fprint_int16 (out, x) // implement g0int_neg = g0int_neg_int32 implement g0int_abs = g0int_abs_int32 implement g0int_succ = g0int_succ_int32 implement g0int_pred = g0int_pred_int32 implement g0int_half = g0int_half_int32 implement g0int_add = g0int_add_int32 implement g0int_sub = g0int_sub_int32 implement g0int_mul = g0int_mul_int32 implement g0int_div = g0int_div_int32 implement g0int_mod = g0int_mod_int32 implement g0int_asl = g0int_asl_int32 implement g0int_asr = g0int_asr_int32 implement g0int_isltz = g0int_isltz_int32 implement g0int_isltez = g0int_isltez_int32 implement g0int_isgtz = g0int_isgtz_int32 implement g0int_isgtez = g0int_isgtez_int32 implement g0int_iseqz = g0int_iseqz_int32 implement g0int_isneqz = g0int_isneqz_int32 implement g0int_lt = g0int_lt_int32 implement g0int_lte = g0int_lte_int32 implement g0int_gt = g0int_gt_int32 implement g0int_gte = g0int_gte_int32 implement g0int_eq = g0int_eq_int32 implement g0int_neq = g0int_neq_int32 implement g0int_compare = g0int_compare_int32 implement g0int_max = g0int_max_int32 implement g0int_min = g0int_min_int32 // implement fprint_val (out, x) = fprint_int32 (out, x) // implement g0int_neg = g0int_neg_int64 implement g0int_abs = g0int_abs_int64 implement g0int_succ = g0int_succ_int64 implement g0int_pred = g0int_pred_int64 implement g0int_half = g0int_half_int64 implement g0int_add = g0int_add_int64 implement g0int_sub = g0int_sub_int64 implement g0int_mul = g0int_mul_int64 implement g0int_div = g0int_div_int64 implement g0int_mod = g0int_mod_int64 implement g0int_asl = g0int_asl_int64 implement g0int_asr = g0int_asr_int64 implement g0int_isltz = g0int_isltz_int64 implement g0int_isltez = g0int_isltez_int64 implement g0int_isgtz = g0int_isgtz_int64 implement g0int_isgtez = g0int_isgtez_int64 implement g0int_iseqz = g0int_iseqz_int64 implement g0int_isneqz = g0int_isneqz_int64 implement g0int_lt = g0int_lt_int64 implement g0int_lte = g0int_lte_int64 implement g0int_gt = g0int_gt_int64 implement g0int_gte = g0int_gte_int64 implement g0int_eq = g0int_eq_int64 implement g0int_neq = g0int_neq_int64 implement g0int_compare = g0int_compare_int64 implement g0int_max = g0int_max_int64 implement g0int_min = g0int_min_int64 // implement fprint_val (out, x) = fprint_int64 (out, x) // (* ****** ****** *) // implement g0uint_succ = g0uint_succ_uint8 implement g0uint_pred = g0uint_pred_uint8 implement g0uint_half = g0uint_half_uint8 implement g0uint_add = g0uint_add_uint8 implement g0uint_sub = g0uint_sub_uint8 implement g0uint_mul = g0uint_mul_uint8 implement g0uint_div = g0uint_div_uint8 implement g0uint_mod = g0uint_mod_uint8 implement g0uint_lsl = g0uint_lsl_uint8 implement g0uint_lsr = g0uint_lsr_uint8 implement g0uint_lnot = g0uint_lnot_uint8 implement g0uint_lor = g0uint_lor_uint8 implement g0uint_lxor = g0uint_lxor_uint8 implement g0uint_land = g0uint_land_uint8 implement g0uint_isgtz = g0uint_isgtz_uint8 implement g0uint_iseqz = g0uint_iseqz_uint8 implement g0uint_isneqz = g0uint_isneqz_uint8 implement g0uint_lt = g0uint_lt_uint8 implement g0uint_lte = g0uint_lte_uint8 implement g0uint_gt = g0uint_gt_uint8 implement g0uint_gte = g0uint_gte_uint8 implement g0uint_eq = g0uint_eq_uint8 implement g0uint_neq = g0uint_neq_uint8 implement g0uint_compare = g0uint_compare_uint8 implement g0uint_max = g0uint_max_uint8 implement g0uint_min = g0uint_min_uint8 // implement fprint_val (out, x) = fprint_uint8 (out, x) // implement g0uint_succ = g0uint_succ_uint16 implement g0uint_pred = g0uint_pred_uint16 implement g0uint_half = g0uint_half_uint16 implement g0uint_add = g0uint_add_uint16 implement g0uint_sub = g0uint_sub_uint16 implement g0uint_mul = g0uint_mul_uint16 implement g0uint_div = g0uint_div_uint16 implement g0uint_mod = g0uint_mod_uint16 implement g0uint_lsl = g0uint_lsl_uint16 implement g0uint_lsr = g0uint_lsr_uint16 implement g0uint_lnot = g0uint_lnot_uint16 implement g0uint_lor = g0uint_lor_uint16 implement g0uint_lxor = g0uint_lxor_uint16 implement g0uint_land = g0uint_land_uint16 implement g0uint_isgtz = g0uint_isgtz_uint16 implement g0uint_iseqz = g0uint_iseqz_uint16 implement g0uint_isneqz = g0uint_isneqz_uint16 implement g0uint_lt = g0uint_lt_uint16 implement g0uint_lte = g0uint_lte_uint16 implement g0uint_gt = g0uint_gt_uint16 implement g0uint_gte = g0uint_gte_uint16 implement g0uint_eq = g0uint_eq_uint16 implement g0uint_neq = g0uint_neq_uint16 implement g0uint_compare = g0uint_compare_uint16 implement g0uint_max = g0uint_max_uint16 implement g0uint_min = g0uint_min_uint16 // implement fprint_val (out, x) = fprint_uint16 (out, x) // implement g0uint_succ = g0uint_succ_uint32 implement g0uint_pred = g0uint_pred_uint32 implement g0uint_half = g0uint_half_uint32 implement g0uint_add = g0uint_add_uint32 implement g0uint_sub = g0uint_sub_uint32 implement g0uint_mul = g0uint_mul_uint32 implement g0uint_div = g0uint_div_uint32 implement g0uint_mod = g0uint_mod_uint32 implement g0uint_lsl = g0uint_lsl_uint32 implement g0uint_lsr = g0uint_lsr_uint32 implement g0uint_lnot = g0uint_lnot_uint32 implement g0uint_lor = g0uint_lor_uint32 implement g0uint_lxor = g0uint_lxor_uint32 implement g0uint_land = g0uint_land_uint32 implement g0uint_isgtz = g0uint_isgtz_uint32 implement g0uint_iseqz = g0uint_iseqz_uint32 implement g0uint_isneqz = g0uint_isneqz_uint32 implement g0uint_lt = g0uint_lt_uint32 implement g0uint_lte = g0uint_lte_uint32 implement g0uint_gt = g0uint_gt_uint32 implement g0uint_gte = g0uint_gte_uint32 implement g0uint_eq = g0uint_eq_uint32 implement g0uint_neq = g0uint_neq_uint32 implement g0uint_compare = g0uint_compare_uint32 implement g0uint_max = g0uint_max_uint32 implement g0uint_min = g0uint_min_uint32 // implement fprint_val (out, x) = fprint_uint32 (out, x) // implement g0uint_succ = g0uint_succ_uint64 implement g0uint_pred = g0uint_pred_uint64 implement g0uint_half = g0uint_half_uint64 implement g0uint_add = g0uint_add_uint64 implement g0uint_sub = g0uint_sub_uint64 implement g0uint_mul = g0uint_mul_uint64 implement g0uint_div = g0uint_div_uint64 implement g0uint_mod = g0uint_mod_uint64 implement g0uint_lsl = g0uint_lsl_uint64 implement g0uint_lsr = g0uint_lsr_uint64 implement g0uint_lnot = g0uint_lnot_uint64 implement g0uint_lor = g0uint_lor_uint64 implement g0uint_lxor = g0uint_lxor_uint64 implement g0uint_land = g0uint_land_uint64 implement g0uint_isgtz = g0uint_isgtz_uint64 implement g0uint_iseqz = g0uint_iseqz_uint64 implement g0uint_isneqz = g0uint_isneqz_uint64 implement g0uint_lt = g0uint_lt_uint64 implement g0uint_lte = g0uint_lte_uint64 implement g0uint_gt = g0uint_gt_uint64 implement g0uint_gte = g0uint_gte_uint64 implement g0uint_eq = g0uint_eq_uint64 implement g0uint_neq = g0uint_neq_uint64 implement g0uint_compare = g0uint_compare_uint64 implement g0uint_max = g0uint_max_uint64 implement g0uint_min = g0uint_min_uint64 // implement fprint_val (out, x) = fprint_uint64 (out, x) // (* ****** ****** *) (* end of [integer_fixed.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/string.dats0000644000175000017500000006010513431250607021242 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/string.atxt ** Time of generation: Thu Feb 14 11:29:46 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2012 *) (* ****** ****** *) // // HX: #define // there is no need ATS_DYNLOADFLAG 0 // for dynloading // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #define CNUL '\000' (* ****** ****** *) overload + with add_ptr_bsz (* ****** ****** *) // // HX: // castvwtp_trans: formerly used name // macdef castvwtp_trans = $UN.castvwtp0 // (* ****** ****** *) // extern fun memcpy ( d0: ptr , s0: ptr , n0: size_t ) : ptr = "mac#atspre_string_memcpy" // end of [memcpy] // (* ****** ****** *) // implement {}(*tmp*) string_char(str) = $UN.ptr0_get(string2ptr(str)) // (* ****** ****** *) implement {}(*tmp*) string_nil() = let // val (pfat, pfgc | p0) = malloc_gc(i2sz(1)) val ((*void*)) = $UN.ptr0_set (p0, '\000') // in $UN.castvwtp0{strnptr(0)}((pfat, pfgc | p0)) end // end of [string_nil] implement {}(*tmp*) string_sing(chr) = let // val (pfat, pfgc | p0) = malloc_gc(i2sz(2)) val ((*void*)) = $UN.ptr0_set (p0, chr) val ((*void*)) = $UN.ptr0_set_at (p0, 1, '\000') // in $UN.castvwtp0{strnptr(1)}((pfat, pfgc | p0)) end // end of [string_sing] (* ****** ****** *) implement {}(*tmp*) string_is_empty {n}(str) = let // val p = string2ptr(str) // in $UN.cast{bool(n==0)}($UN.ptr1_get(p) = CNUL) end // end of [string_is_empty] implement{} string_isnot_empty {n}(str) = let // val p = string2ptr(str) // in $UN.cast{bool(n > 0)}($UN.ptr1_get(p) != CNUL) end // end of [string_isnot_empty] (* ****** ****** *) implement {}(*tmp*) string_is_atend_size {n}{i}(str, i) = let // val p_i = add_ptr_bsz(string2ptr(str), i) // in $UN.cast{bool(n==i)}($UN.ptr1_get(p_i) = CNUL) end // end of [string_is_atend_size] implement {tk}(*tmp*) string_is_atend_gint(str, i) = string_is_atend_size(str, g1int2uint(i)) // end of [string_is_atend_gint] implement {tk}(*tmp*) string_is_atend_guint(str, i) = string_is_atend_size(str, g1uint2uint(i)) // end of [string_is_atend_guint] (* ****** ****** *) implement {}(*tmp*) string_get_at_size(str, i) = $UN.ptr1_get(string2ptr(str)+i) // end of [string_get_at_size] implement {tk}(*tmp*) string_get_at_gint(str, i) = string_get_at_size(str, g1int2uint(i)) // end of [string_get_at_gint] implement {tk}(*tmp*) string_get_at_guint(str, i) = string_get_at_size(str, g1uint2uint(i)) // end of [string_get_at_guint] (* ****** ****** *) implement {}(*tmp*) string_test_at_size {n}{i}(str, i) = let // extern castfn __cast ( c: char ) :<> [c:int] ( string_index_p(n, i, c) | char(c) ) // in // __cast ( $UN.ptr1_get(string2ptr(str)+i) ) (* __cast *) // end // end of [string_test_at_size] implement {tk}(*tmp*) string_test_at_gint (str, i) = string_test_at_size (str, g1int2uint(i)) // end of [string_test_at_gint] implement {tk}(*tmp*) string_test_at_guint (str, i) = string_test_at_size (str, g1uint2uint(i)) // end of [string_test_at_guint] (* ****** ****** *) implement {}(*tmp*) strcmp(x1, x2) = let // extern fun __strcmp__ ( x1: string, x2: string ) :<> int = "mac#atspre_strcmp" // in __strcmp__(x1, x2) end // end of [let] // end of [strcmp] (* ****** ****** *) implement {}(*tmp*) strintcmp {n1,n2}(x1, n2) = let // prval() = lemma_string_param (x1) // fun loop {n2:nat} .. ( p1: ptr, n2: int n2 ) :<> int = let // val c = $UN.ptr0_get(p1) // in // if c != CNUL then ( if n2 > 0 then loop (ptr_succ(p1), n2-1) else 1(*gt*) // end of [if] ) else ( if n2 > 0 then ~1(*lt*) else 0(*eq*) ) (* end of [else] *) // end // end of [loop] // in $UN.cast{int(sgn(n1-n2))}(loop (string2ptr(x1), n2)) end // end of [strintcmp] (* ****** ****** *) implement {}(*tmp*) strlencmp {n1,n2}(x1, x2) = let // prval () = lemma_string_param (x1) prval () = lemma_string_param (x2) // // fun loop {n1:nat} .. ( p1: ptr, p2: ptr ) :<> int = let // val c1 = $UN.ptr0_get(p1) val c2 = $UN.ptr0_get(p2) // in // if c1 != CNUL then let prval () = __assert() where { extern praxi __assert(): [n1 > 0] void } (* end of [prval] *) in if c2 != CNUL then ( loop{n1-1}(ptr_succ(p1), ptr_succ(p2)) ) else 1(*gt*) // end of [else] // end of [if] end else ( if c2 != CNUL then ~1(*lt*) else 0(*eq*) ) (* end of [if] *) // end // end of [loop] // in $UN.cast{int(sgn(n1-n2))}(loop{n1}(string2ptr(x1), string2ptr(x2))) end // end of [strlencmp] (* ****** ****** *) implement {}(*tmp*) string_make_list(cs) = string_make_listlen(cs, list_length(cs)) // end of [string_make_list] implement {}(*tmp*) string_make_listlen {n}(cs, n) = let // prval () = lemma_list_param (cs) // fun loop {n:nat} .. ( cs: list (char, n), n: int n, p: ptr ) : ptr = let in if n > 0 then let val+list_cons (c, cs) = cs val () = $UN.ptr0_set(p, c) in loop (cs, n-1, ptr_succ(p)) end else p // end of [if] end // end of [loop] // val n1 = n + 1 // val (pf, pfgc | p0) = $effmask_wrt (malloc_gc(i2sz(n1))) // val p1 = $effmask_wrt(loop(cs, n, p0)) // val () = $effmask_wrt ($UN.ptr0_set(p1, CNUL)) // in castvwtp_trans{strnptr(n)}((pf, pfgc | p0)) end // end of [string_make_listlen] (* ****** ****** *) implement {}(*tmp*) string_make_rlist(cs) = string_make_rlistlen(cs, list_length(cs)) // end of [string_make_rlist] implement {}(*tmp*) string_make_rlistlen {n}(cs, n) = let // prval() = lemma_list_param (cs) // fun loop {n:nat} .. ( cs: list(char, n), n: int n, p: ptr ) : ptr = let in // if n > 0 then let val p1 = ptr_pred(p) val+list_cons (c, cs) = cs val () = $UN.ptr0_set(p1, c) in loop (cs, n-1, p1) end // end of [then] else (p) // end of [else] // end // end of [loop] // val n1 = n + 1 // val (pf, pfgc | p0) = $effmask_wrt(malloc_gc(i2sz(n1))) // val p1 = ptr_add(p0, n) val () = $effmask_wrt ($UN.ptr0_set(p1, CNUL)) // val p0 = $effmask_wrt(loop(cs, n, p1)) // in castvwtp_trans{strnptr(n)}((pf, pfgc | p0)) end // end of [string_make_rlistlen] (* ****** ****** *) // implement {}(*tmp*) string_make_list_vt (cs) = let // val n = list_vt_length(cs) // in string_make_listlen_vt(cs, n) end (* end of [string_make_list_vt] *) // implement {}(*tmp*) string_make_listlen_vt (cs, n) = str where { // val cs2 = $UN.list_vt2t(cs) val str = string_make_listlen(cs2, n) val ((*freed*)) = list_vt_free(cs) // } (* end of [string_make_listlen_vt] *) // (* ****** ****** *) // implement {}(*tmp*) string_make_rlist_vt (cs) = let // val n = list_vt_length(cs) // in string_make_rlistlen_vt(cs, n) end (* end of [string_make_rlist_vt] *) // implement {}(*tmp*) string_make_rlistlen_vt (cs, n) = str where { // val cs2 = $UN.list_vt2t(cs) val str = string_make_rlistlen(cs2, n) val ((*freed*)) = list_vt_free(cs) // } (* end of [string_make_rlistlen_vt] *) // (* ****** ****** *) implement {}(*tmp*) string_make_substring {n}{st,ln} (str, st, ln) = $effmask_wrt let // val ln1 = succ(ln) val (pf, pfgc | p_dst) = malloc_gc(ln1) // val p_src = string2ptr(str) val p_dst = memcpy(p_dst, p_src + st, ln) // val () = $UN.ptr0_set(p_dst + ln, CNUL) // in castvwtp_trans{strnptr(ln)}((pf, pfgc | p_dst)) end // end of [string_make_substring] (* ****** ****** *) implement {}(*tmp*) string_make_stream (cs) = let // fun loop {l:addr} {n:int} {i:nat|i <= n} ( pf: b0ytes(n)@l , fpf: mfree_gc_v(l) | cs: stream(charNZ) , p0: ptr(l), pi: ptr, n: size_t(n), i: size_t(i) ) : Strptr1 = ( if (i < n) then ( case+ !cs of | stream_nil() => let val () = $UN.ptr0_set(pi, CNUL) in $UN.castvwtp0((pf, fpf | p0)) end // end of [stream_nil] | stream_cons(c, cs) => let val () = $UN.ptr0_set(pi, c) in loop ( pf, fpf | cs, p0, ptr_succ(pi), n, succ(i)) end // end of [stream_cons] ) else let // val n2 = n + n val (pf2, fpf2 | p02) = malloc_gc(n2) // val _(*p02*) = memcpy(p02, p0, i) val ((*freed*)) = mfree_gc(pf, fpf | p0) // in loop (pf2, fpf2 | cs, p02, ptr_add(p02, i), n2, i) end // end of [ ) (* end of [loop] *) // val n0 = string_make_stream$bufsize<>() // val n0 = i2sz(n0) val (pf, fpf | p0) = malloc_gc(n0) // in // $effmask_all(loop(pf, fpf | cs, p0, p0, n0, i2sz(0))) // end // end of [string_make_stream] (* ****** ****** *) implement {}(*tmp*) string_make_stream_vt (cs) = let // fun loop {l:addr} {n:int} {i:nat|i <= n} ( pf: b0ytes(n)@l , fpf: mfree_gc_v(l) | cs: stream_vt(charNZ) , p0: ptr(l), pi: ptr, n: size_t(n), i: size_t(i) ) : Strptr1 = ( if (i < n) then ( case+ !cs of | ~stream_vt_nil() => let val () = $UN.ptr0_set(pi, CNUL) in $UN.castvwtp0((pf, fpf | p0)) end // end of [stream_nil] | ~stream_vt_cons(c, cs) => let val () = $UN.ptr0_set(pi, c) in loop(pf, fpf | cs, p0, ptr_succ(pi), n, succ(i)) end // end of [stream_cons] ) else let // val n2 = n + n val (pf2, fpf2 | p02) = malloc_gc(n2) // val _(*p02*) = memcpy(p02, p0, i) val ((*freed*)) = mfree_gc(pf, fpf | p0) // in // loop ( pf2, fpf2 | cs, p02, ptr_add(p02, i), n2, i) // end // end of [ ) (* end of [loop] *) // val n0 = string_make_stream$bufsize<>() // val n0 = i2sz(n0) val (pf, fpf | p0) = malloc_gc(n0) // in $effmask_all(loop(pf, fpf | cs, p0, p0, n0, i2sz(0))) end // end of [string_make_stream_vt] (* ****** ****** *) // implement string_make_stream$bufsize<> ((*void*)) = 16 // (* ****** ****** *) // implement {}(*tmp*) string_head (str) = $UN.ptr0_get(string2ptr(str)) // implement {}(*tmp*) string_tail {n}(str) = ( $UN.cast{string(n-1)}(ptr_succ(string2ptr(str))) ) (* end of [string_tail] *) // (* ****** ****** *) implement {}(*tmp*) string0_length (str) = string1_length<>(g1ofg0(str)) // end of [string0_length] implement {}(*tmp*) string1_length {n}(str) = __strlen__(str) where { extern fun __strlen__(string(n)):<> size_t(n) = "mac#atspre_strlen" } // end of [where] // end of [string1_length] (* ****** ****** *) // implement {}(*tmp*) string0_nlength (str1, n2) = string1_nlength<> (g1ofg0(str1), g1ofg0(n2)) // end of [string0_nlength] // implement {}(*tmp*) string1_nlength (str1, n2) = let // fun loop{n1,n2,r:nat} .. ( str1: string(n1), n2: size_t(n2), r: size_t(r) ) :<> size_t(min(n1,n2)+r) = ( // if (n2 > 0) then ( // if isneqz(str1) then loop(str1.tail(), pred(n2), succ(r)) else (r) // ) (* end of [then] *) else (r) // end of [else] // ) (* end of [loop] *) // prval () = lemma_string_param(str1) // prval () = lemma_g1uint_param(n2) // in loop (str1, n2, i2sz(0)) end // end of [string1_nlength] // (* ****** ****** *) implement {}(*tmp*) string0_copy (str) = let // val str = g1ofg0(str) val str2 = string1_copy(str) // prval () = lemma_strnptr_param(str2) // in strnptr2strptr(str2) end // end of [string0_copy] implement {}(*tmp*) string1_copy {n}(str) = let // val n = string1_length(str) val n1 = g1uint_succ(n) val (pf, pfgc | p) = malloc_gc(n1) // val _(*p*) = $effmask_wrt(memcpy(p, string2ptr(str), n1)) // in castvwtp_trans{strnptr(n)}((pf, pfgc | p)) end // end of [string1_copy] (* ****** ****** *) // implement {}(*tmp*) string_fset_at_size (s0, i, c) = let val s1 = string1_copy(s0) in // let val () = s1[i] := c in strnptr2string(s1) end // end // end of [string_fset_at_size] // (* ****** ****** *) implement {}(*tmp*) strchr{n}(str, c0) = let // prval () = lemma_string_param(str) extern fun __strchr__(string, int):<> ptr = "mac#atspre_strchr" extern fun sub_ptr_ptr(ptr, ptr):<> ssizeBtw(0, n) = "mac#atspre_sub_ptr_ptr" // val p0 = string2ptr(str) val p1 = __strchr__(str, (char2int0)c0) // in if p1 > the_null_ptr then sub_ptr_ptr(p1, p0) else i2ssz(~1) end // end of [strchr] implement {}(*tmp*) strrchr{n}(str, c0) = let // prval () = lemma_string_param (str) extern fun __strrchr__(string, int):<> ptr = "mac#atspre_strrchr" extern fun sub_ptr_ptr(ptr, ptr):<> ssizeBtw(0, n) = "mac#atspre_sub_ptr_ptr" // val p0 = string2ptr(str) val p1 = __strrchr__(str, (char2int0)c0) // in if p1 > the_null_ptr then sub_ptr_ptr(p1, p0) else i2ssz(~1) end // end of [strrchr] (* ****** ****** *) implement {}(*tmp*) strstr{n} (haystack, needle) = let // prval () = lemma_string_param (haystack) // extern fun __strstr__(string, string):<> ptr = "mac#atspre_strstr" extern fun sub_ptr_ptr(ptr, ptr):<> ssizeBtw(0, n) = "mac#atspre_sub_ptr_ptr" // val p0 = string2ptr(haystack) val p1 = __strstr__(haystack, needle) // in if p1 > the_null_ptr then sub_ptr_ptr(p1, p0) else i2ssz(~1) end // end of [strstr] (* ****** ****** *) implement {}(*tmp*) strspn{n} (subject, accept) = let // prval () = lemma_string_param(subject) // extern fun __strspn__(string, string):<> sizeLte(n) = "mac#atspre_strspn" // in __strspn__(subject, accept) end // end of [strspn] implement {}(*tmp*) strcspn{n} (subject, reject) = let // prval() = lemma_string_param(subject) // extern fun __strcspn__(string, string):<> sizeLte(n) = "mac#atspre_strcspn" // in __strcspn__(subject, reject) end // end of [strcspn] (* ****** ****** *) implement {}(*tmp*) string_index {n}(str, c) = $UN.cast{ssizeBtw(~1,n)}(strchr(str, c)) // end of [string_index] implement {}(*tmp*) string_rindex {n}(str, c) = $UN.cast{ssizeBtw(~1,n)}(strrchr(str, c)) // end of [string_rindex] (* ****** ****** *) implement {}(*tmp*) string0_append (x1, x2) = let // val x1 = g1ofg0(x1) val x2 = g1ofg0(x2) val x12 = string1_append(x1, x2) prval () = lemma_strnptr_param(x12) // in strnptr2strptr (x12) end // end of [string0_append] implement {}(*tmp*) string1_append {n1,n2}(x1, x2) = let // val n1 = strlen(x1) and n2 = strlen(x2) // val n12 = n1 + n2 val (pf, fpf | p) = malloc_gc(succ(n12)) // val p1 = memcpy(p, string2ptr(x1), n1) val p2 = memcpy(p + n1, string2ptr(x2), succ(n2)) // in castvwtp_trans{strnptr(n1+n2)}((pf, fpf | p)) end // end of [string1_append] (* ****** ****** *) implement {}(*tmp*) string0_append3 (x1, x2, x3) = let // var xs = @[string](x1, x2, x3) // in // stringarr_concat<> ($UN.cast{arrayref(string,3)}(addr@xs), i2sz(3)) // end // end of [string0_append3] implement {}(*tmp*) string0_append4 (x1, x2, x3, x4) = let // var xs = @[string](x1, x2, x3, x4) // in // stringarr_concat<> ($UN.cast{arrayref(string,4)}(addr@xs), i2sz(4)) // end // end of [string0_append4] implement {}(*tmp*) string0_append5 (x1, x2, x3, x4, x5) = let // var xs = @[string](x1, x2, x3, x4, x5) // in // stringarr_concat<> ($UN.cast{arrayref(string,5)}(addr@xs), i2sz(5)) // end // end of [string0_append5] implement {}(*tmp*) string0_append6 (x1, x2, x3, x4, x5, x6) = let // var xs = @[string](x1, x2, x3, x4, x5, x6) // in // stringarr_concat<> ($UN.cast{arrayref(string,6)}(addr@xs), i2sz(6)) // end // end of [string0_append6] (* ****** ****** *) implement {}(*tmp*) stringarr_concat (xs, asz) = let // fun loop ( p1: ptr, p2: ptr, i: size_t, ntot: size_t ) : size_t = let in // if i > 0 then let val x = $UN.ptr0_get(p1) val nx: size_t = string_length(x) val () = $UN.ptr0_set(p2, nx) in loop(ptr_succ(p1), ptr_succ(p2), pred(i), ntot+nx) end // end of [then] else ntot // end of [else] // end // end of [loop] // fun loop2 ( p1: ptr, p2: ptr, i: size_t, pres: ptr ) : void = let in // if i > 0 then let // val x = $UN.ptr0_get(p1) val nx = $UN.ptr0_get(p2) val _(*ptr*) = memcpy(pres, $UN.cast{ptr}(x), nx) // in loop2(ptr_succ(p1), ptr_succ(p2), pred(i), pres+nx) end // end of [then] else ( $UN.ptr0_set(pres, CNUL) ) // end // end of [loop2] // val p1 = $UN.cast{ptr}(xs) // val A0 = arrayptr_make_uninitized(asz) // val p2 = arrayptr2ptr(A0) // val ntot = $effmask_all(loop(p1, p2, asz, i2sz(0))) // val ( pf , pfgc | pres ) = malloc_gc(g1ofg0(succ(ntot))) // val ((*void*)) = $effmask_all(loop2(p1, p2, asz, pres)) // val ((*freed*)) = arrayptr_free{size_t?}(A0) // in castvwtp_trans{Strptr1}((pf, pfgc | pres)) end // end of [stringarr_concat] (* ****** ****** *) implement {}(*tmp*) stringlst_concat (xs) = res where { // val n = list_length(xs) // prval() = lemma_list_param(xs) // prval [n:int] EQINT() = eqint_make_gint(n) typedef stringarr = arrayref(string,n) // val xs2 = arrayptr_make_list (n, xs) // val res = stringarr_concat ($UN.castvwtp1{stringarr}(xs2), i2sz(n)) // val ((*freed*)) = arrayptr_free{string}(xs2) // } (* end of [stringlst_concat] *) (* ****** ****** *) // implement {}(*tmp*) string_implode (cs) = string_make_list<>(cs) // (* ****** ****** *) implement {}(*tmp*) string_explode {n}(x0) = let // prval () = lemma_string_param(x0) // viewtypedef res(n) = list_vt(charNZ, n) // fun loop {n:nat} .. ( x0: string(n) , res: &ptr? >> res(n) ) : void = let val p = string2ptr(x0) val c = $UN.ptr1_get(p) in // if (c != CNUL) then let prval() = __assert() where { extern praxi __assert(): [n > 0] void } (* prval *) val () = res := list_vt_cons{charNZ}{0}(c, _) // end of [val] val+list_vt_cons (_, res1) = res val x1 = $UN.cast {string(n-1)}(ptr1_succ(p)) // end of [val] val ((*void*)) = loop (x1, res1) in fold@(res) end // end of [then] else let prval() = __assert() where { extern praxi __assert(): [n == 0] void } (* [prval] *) in res := list_vt_nil{charNZ}((*void*)) end // end of [else] // end // end of [loop] // var res: ptr val () = $effmask_wrt(loop(x0, res)) // in res end // end of [string_explode] (* ****** ****** *) implement {}(*tmp*) string_tabulate{n}(n) = let // prval () = lemma_g1uint_param(n) // fun loop ( p: ptr, n: size_t, i: size_t ) : void = let in // if (i < n) then let val c = string_tabulate$fopr(i) val () = $UN.ptr0_set(p, c) in loop(ptr_succ(p), n, succ(i)) end else $UN.ptr0_set(p, CNUL) // end of [if] // end // end of [loop] // val n1 = succ(n) val (pf, fpf | p0) = malloc_gc(n1) val () = loop(p0, n, g1int2uint(0)) // in castvwtp_trans{strnptr(n)}((pf, fpf | p0)) end // end of [string_tabulate] (* ****** ****** *) implement {}(*tmp*) string_forall (str) = let // fun loop ( p: ptr ) : bool = let val c0 = $UN.ptr0_get(p) in // if c0 = CNUL then true else ( if string_forall$pred<>(c0) then loop(ptr0_succ(p)) else false ) (* end of [if] *) // end // end of [loop] // in loop(string2ptr(str)) end // end of [string_forall] (* ****** ****** *) implement {}(*tmp*) string_iforall (str) = let // fun loop ( i: int, p: ptr ) : bool = let val c0 = $UN.ptr0_get(p) in // if c0 = CNUL then true else ( if string_iforall$pred(i, c0) then loop(i+1, ptr0_succ(p)) else false ) (* end of [if] *) // end // end of [loop] // in loop(0, string2ptr(str)) end // end of [string_iforall] (* ****** ****** *) implement {}(*tmp*) string_foreach (str) = let var env: void = () in string_foreach_env(str, env) end // end of [string_foreach] implement {env} string_foreach_env {n}(str, env) = let // fun loop ( p: ptr, env: &env ) : ptr = let val c = $UN.ptr0_get(p) val cont = ( if c != CNUL then string_foreach$cont(c, env) else false // end of [if] ) : bool // end of [val] in if cont then let val () = string_foreach$fwork(c, env) in loop(ptr_succ (p), env) // end of [val] end else (p) // end of [if] end // end of [fun] // val p0 = string2ptr (str) val p1 = loop (p0, env) // in $UN.cast{sizeLte(n)}(p1 - p0) end // end of [string_foreach_env] (* ****** ****** *) implement {env} string_foreach$cont(c, env) = true implement{env} string_foreach$fwork(c, env) = ((*void*)) (* ****** ****** *) implement {}(*tmp*) string_rforeach (str) = let var env: void = () in string_rforeach_env(str, env) end // end of [string_rforeach] implement {env}(*tmp*) string_rforeach_env {n}(str, env) = let // fun loop ( p0: ptr, p1: ptr, env: &env >> _ ) : ptr = let in // if (p1 > p0) then let val p2 = ptr_pred(p1) val c2 = $UN.ptr0_get(p2) val cont = string_rforeach$cont(c2, env) // end of [val] in if cont then let val () = string_rforeach$fwork(c2, env) in loop(p0, p2, env) end // end of [then] else (p1) // end of [else] end // end of [then] else (p1) // end of [else] // end // end of [loop] // val p0 = ptrcast(str) val p1 = ptr_add(p0, length(str)) // in $UN.cast{sizeLte(n)}(p1 - loop(p0, p1, env)) end // end of [string_rforeach_env] (* ****** ****** *) implement {env} string_rforeach$cont(c, env) = true implement {env} string_rforeach$fwork(c, env) = ((*void*)) (* ****** ****** *) implement {}(*tmp*) streamize_string_char (str) = let // typedef elt = charNZ // fun auxmain ( p: ptr ) : stream_vt(elt) = $ldelay ( // let // val c0 = $UN.ptr0_get(p) // in // if isneqz(c0) then ( stream_vt_cons ( c0 , auxmain(ptr0_succ(p)) ) (* stream_vt_cons *) ) else stream_vt_nil((*void*)) // end : stream_vt_con(elt) // end of [let] ) (* end of [auxmain] *) // in auxmain(string2ptr(str)) end // end of [streamize_string_char] (* ****** ****** *) // implement {}(*tmp*) un_streamize_string_char (cs) = strnptr2strptr(cs) where { // val cs = stream2list_vt(cs) // prval () = lemma_list_vt_param(cs) // val cs = string_make_list_vt(cs) // prval () = lemma_strnptr_param(cs) // } (* un_streamize_string_char *) // (* ****** ****** *) (* // // HX-2013-03: it is now defined as a macro // implement stropt_none () = $UN.cast{stropt(~1)}(the_null_ptr) *) (* ****** ****** *) implement {}(*tmp*) stropt_is_none{n}(x) = ( $UN.cast{bool(n < 0)}(ptr0_is_null($UN.cast2ptr(x))) ) // end of [stropt_is_none] implement {}(*tmp*) stropt_is_some{n}(x) = ( $UN.cast{bool(n>=0)}(ptr0_isnot_null($UN.cast2ptr(x))) ) // end of [stropt_is_some] (* ****** ****** *) implement {}(*tmp*) stropt_length (x) = let // prval() = lemma_stropt_param(x) // in // if stropt_is_some(x) then g1uint2int(string1_length(stropt_unsome(x))) else i2ssz(~1) // end // end of [stropt_length] (* ****** ****** *) implement fprint_val = fprint_string implement fprint_val = fprint_stropt (* ****** ****** *) %{$ // atstype_string atspre_string_make_snprintf ( atstype_string fmt, ... ) { char *res ; va_list ap0 ; // va_start(ap0, fmt) ; // // HX: [8] is kind of random // res = atspre_string_make_vsnprintf(8, fmt, ap0) ; // va_end(ap0) ; // return (res) ; // } // end of [atspre_string_make_snprintf] // atstype_string atspre_string_make_vsnprintf ( atstype_size bsz , atstype_string fmt, va_list ap0 ) { // int ntot ; char *res ; va_list ap1 ; // res = atspre_malloc_gc(bsz) ; // va_copy(ap1, ap0) ; ntot = vsnprintf(res, bsz, (char*)fmt, ap1) ; va_end(ap1) ; // if (ntot >= bsz) { bsz = ntot + 1 ; res = atspre_realloc_gc(res, bsz) ; ntot = vsnprintf(res, bsz, (char*)fmt, ap0) ; } // if (ntot < 0) { atspre_mfree_gc(res) ; return (char*)0 ; } // return (res) ; // } // end of [atspre_string_make_vsnprintf] // %} (* ****** ****** *) (* end of [string.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/reference.dats0000644000175000017500000000563413431250607021700 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/reference.atxt ** Time of generation: Thu Feb 14 11:29:47 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: May, 2012 *) (* ****** ****** *) implement {a}(*tmp*) ref = ref_make_elt implement {a}(*tmp*) ref_make_elt (x0) = let // val (pfat,pfgc|p) = ptr_alloc() prval () = mfree_gc_v_elim(pfgc) // in !p := x0; ref_make_viewptr{a}(pfat | p) end // end of [ref_make_elt] (* ****** ****** *) // implement {a}(*tmp*) ref_make_type_elt (_type_, x) = ref_make_elt(x) // (* ****** ****** *) implement {a}(*tmp*) ref_get_elt (r) = !p where { val (vbox _ | p) = ref_get_viewptr (r) } // end of [ref_get_elt] implement {a}(*tmp*) ref_set_elt (r, x) = let val (vbox _ | p) = ref_get_viewptr (r) in !p := x // assignment end // end of [ref_set_elt] implement {a}(*tmp*) ref_exch_elt (r, x) = let val (vbox _ | p) = ref_get_viewptr (r) in !p :=: x // exchanging end // end of [ref_exch_elt] (* ****** ****** *) implement {}(*tmp*) ref_app_fun{a} (r, f) = let val (vbox _ | p) = ref_get_viewptr (r) in f (!p) end // end of [ref_app_fun] implement {}(*tmp*) ref_app_funenv{a} (pfv | r, f, env) = let val (vbox _ | p) = ref_get_viewptr (r) in f (pfv | !p, env) end // end of [ref_app_funenv] (* ****** ****** *) implement {}(*tmp*) ref_vtakeout{a} (r) = let // val ( vbox pf | p ) = ref_get_viewptr (r) // prval (pf, fpf) = __copy (pf) where { extern praxi __copy {l:addr} (pf: !a @ l): (a @ l, a @ l - void) } (* end of [prval] *) // in (pf, fpf | p) end // end of [ref_vtakeout] (* ****** ****** *) (* end of [reference.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/integer_size.dats0000644000175000017500000002023213431250607022420 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: May, 2012 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/integer_size.atxt ** Time of generation: Thu Feb 14 11:29:45 2019 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // implement g0int2uint = g0int2uint_int_size implement g1int2uint = g1int2uint_int_size // implement g0uint2uint = g0uint2uint_uint_size implement g1uint2uint = g1uint2uint_uint_size // (* ****** ****** *) // implement g0int2int = g0int2int_int_ssize implement g1int2int = g1int2int_int_ssize // implement g0uint2int = g0uint2int_uint_ssize implement g1uint2int = g1uint2int_uint_ssize // (* ****** ****** *) // implement g0uint2int = g0uint2int_size_int implement g1uint2int = g1uint2int_size_int // implement g0uint2uint = g0uint2uint_size_uint implement g1uint2uint = g1uint2uint_size_uint // implement g0uint2uint = g0uint2uint_size_size implement g1uint2uint = g1uint2uint_size_size // (* ****** ****** *) // implement g0int2int = g0int2int_ssize_int implement g1int2int = g1int2int_ssize_int // implement g0int2uint = g0int2uint_ssize_uint implement g1int2uint = g1int2uint_ssize_uint // implement g0int2int = g0int2int_ssize_ssize implement g1int2int = g1int2int_ssize_ssize // (* ****** ****** *) // implement g0uint2int = g0uint2int_size_ssize implement g1uint2int = g1uint2int_size_ssize // implement g0int2uint = g0int2uint_ssize_size implement g1int2uint = g1int2uint_ssize_size // (* ****** ****** *) // implement g0uint_succ = g0uint_succ_size implement g0uint_pred = g0uint_pred_size implement g0uint_half = g0uint_half_size implement g0uint_add = g0uint_add_size implement g0uint_sub = g0uint_sub_size implement g0uint_mul = g0uint_mul_size implement g0uint_div = g0uint_div_size implement g0uint_mod = g0uint_mod_size implement g0uint_lsl = g0uint_lsl_size implement g0uint_lsr = g0uint_lsr_size implement g0uint_lnot = g0uint_lnot_size implement g0uint_lor = g0uint_lor_size implement g0uint_lxor = g0uint_lxor_size implement g0uint_land = g0uint_land_size implement g0uint_isgtz = g0uint_isgtz_size implement g0uint_iseqz = g0uint_iseqz_size implement g0uint_isneqz = g0uint_isneqz_size implement g0uint_lt = g0uint_lt_size implement g0uint_lte = g0uint_lte_size implement g0uint_gt = g0uint_gt_size implement g0uint_gte = g0uint_gte_size implement g0uint_eq = g0uint_eq_size implement g0uint_neq = g0uint_neq_size implement g0uint_compare = g0uint_compare_size implement g0uint_max = g0uint_max_size implement g0uint_min = g0uint_min_size // implement fprint_val (out, x) = fprint_size (out, x) // implement g1uint_succ = g1uint_succ_size implement g1uint_pred = g1uint_pred_size implement g1uint_half = g1uint_half_size implement g1uint_add = g1uint_add_size implement g1uint_sub = g1uint_sub_size implement g1uint_mul = g1uint_mul_size implement g1uint_div = g1uint_div_size implement g1uint_mod = g1uint_mod_size implement g1uint_isgtz = g1uint_isgtz_size implement g1uint_iseqz = g1uint_iseqz_size implement g1uint_isneqz = g1uint_isneqz_size implement g1uint_lt = g1uint_lt_size implement g1uint_lte = g1uint_lte_size implement g1uint_gt = g1uint_gt_size implement g1uint_gte = g1uint_gte_size implement g1uint_eq = g1uint_eq_size implement g1uint_neq = g1uint_neq_size implement g1uint_compare = g1uint_compare_size implement g1uint_max = g1uint_max_size implement g1uint_min = g1uint_min_size // (* ****** ****** *) // implement g0int_neg = g0int_neg_ssize implement g0int_abs = g0int_abs_ssize implement g0int_succ = g0int_succ_ssize implement g0int_pred = g0int_pred_ssize implement g0int_half = g0int_half_ssize implement g0int_add = g0int_add_ssize implement g0int_sub = g0int_sub_ssize implement g0int_mul = g0int_mul_ssize implement g0int_div = g0int_div_ssize implement g0int_mod = g0int_mod_ssize implement g0int_asl = g0int_asl_ssize implement g0int_asr = g0int_asr_ssize implement g0int_isltz = g0int_isltz_ssize implement g0int_isltez = g0int_isltez_ssize implement g0int_isgtz = g0int_isgtz_ssize implement g0int_isgtez = g0int_isgtez_ssize implement g0int_iseqz = g0int_iseqz_ssize implement g0int_isneqz = g0int_isneqz_ssize implement g0int_lt = g0int_lt_ssize implement g0int_lte = g0int_lte_ssize implement g0int_gt = g0int_gt_ssize implement g0int_gte = g0int_gte_ssize implement g0int_eq = g0int_eq_ssize implement g0int_neq = g0int_neq_ssize implement g0int_compare = g0int_compare_ssize implement g0int_max = g0int_max_ssize implement g0int_min = g0int_min_ssize // implement fprint_val (out, x) = fprint_ssize (out, x) // implement g1int_neg = g1int_neg_ssize implement g1int_abs = g1int_abs_ssize implement g1int_succ = g1int_succ_ssize implement g1int_pred = g1int_pred_ssize implement g1int_half = g1int_half_ssize implement g1int_add = g1int_add_ssize implement g1int_sub = g1int_sub_ssize implement g1int_mul = g1int_mul_ssize implement g1int_div = g1int_div_ssize implement g1int_nmod = g1int_nmod_ssize implement g1int_isltz = g1int_isltz_ssize implement g1int_isltez = g1int_isltez_ssize implement g1int_isgtz = g1int_isgtz_ssize implement g1int_isgtez = g1int_isgtez_ssize implement g1int_iseqz = g1int_iseqz_ssize implement g1int_isneqz = g1int_isneqz_ssize implement g1int_lt = g1int_lt_ssize implement g1int_lte = g1int_lte_ssize implement g1int_gt = g1int_gt_ssize implement g1int_gte = g1int_gte_ssize implement g1int_eq = g1int_eq_ssize implement g1int_neq = g1int_neq_ssize implement g1int_compare = g1int_compare_ssize implement g1int_max = g1int_max_ssize implement g1int_min = g1int_min_ssize // (* ****** ****** *) (* end of [integer_size.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/arrayptr.dats0000644000175000017500000002656713431250607021616 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/arrayptr.atxt ** Time of generation: Thu Feb 14 11:29:50 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: May, 2012 *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // extern fun memcpy ( d0: ptr , s0: ptr , n0: size_t ) : ptr = "mac#atspre_array_memcpy" // end of [memcpy] // (* ****** ****** *) implement {a}(*tmp*) arrayptr_make_elt (asz, elt) = let // val ( pf, pfgc | p ) = array_ptr_alloc(asz) // val () = array_initize_elt(!p, asz, elt) // in arrayptr_encode(pf, pfgc | p) end // end of [arrayptr_make_elt] (* ****** ****** *) implement {}(*tmp*) arrayptr_make_intrange {l,r} (l, r) = let // val asz = g1int2uint (r-l) val [A:addr] A = arrayptr_make_uninitized(asz) // fun loop {n:nat} .. ( p: ptr, asz: size_t n, l: int ) : void = let in // if asz > 0 then let val () = $UN.ptr0_set(p, l) in loop(ptr0_succ(p), pred(asz), l+1) end else () // end of [if] // end // end of [loop] // val () = loop(ptrcast(A), asz, l) // in $UN.castvwtp0{arrayptr(intBtw(l,r),A,r-l)}(A) end // end of [arrayptr_make_intrange] (* ****** ****** *) implement {a}(*tmp*) arrayptr_make_list (asz, xs) = let // prval () = lemma_list_param (xs) // val ( pf, pfgc | p ) = array_ptr_alloc(i2sz(asz)) // val () = array_initize_list(!p, asz, xs) // in arrayptr_encode(pf, pfgc | p) end // end of [arrayptr_make_list] implement {a}(*tmp*) arrayptr_make_rlist (asz, xs) = let // prval () = lemma_list_param (xs) // val ( pf, pfgc | p ) = array_ptr_alloc(i2sz(asz)) // val () = array_initize_rlist(!p, asz, xs) // in arrayptr_encode(pf, pfgc | p) end // end of [arrayptr_make_rlist] (* ****** ****** *) implement {a}(*tmp*) arrayptr_make_subarray {n}{st,ln}(A, st, ln) = let // val p1 = ptr_add($UN.cast2ptr(A), st) val ( pf1, fpf | p1 ) = $UN.ptr_vtake{array(a,ln)}(p1) // val A2 = arrayptr_make_uninitized(ln) val p2 = ptrcast (A2) prval pf2 = arrayptr_takeout (A2) // val () = array_copy(!p2, !p1, ln) // prval () = fpf (pf1) prval () = arrayptr_addback (pf2 | A2) // in A2 end // end of [arrayptr_make_subarray] (* ****** ****** *) implement {a}(*tmp*) arrayptr_make_list_vt (asz, xs) = let // prval() = lemma_list_vt_param(xs) // val ( pf, pfgc | p ) = array_ptr_alloc(i2sz(asz)) // val () = array_initize_list_vt(!p, asz, xs) // in arrayptr_encode(pf, pfgc | p) end // end of [arrayptr_make_list_vt] implement {a}(*tmp*) arrayptr_make_rlist_vt (asz, xs) = let // prval() = lemma_list_vt_param(xs) // val ( pf, pfgc | p ) = array_ptr_alloc(i2sz(asz)) // val () = array_initize_rlist_vt(!p, asz, xs) // in arrayptr_encode(pf, pfgc | p) end // end of [arrayptr_make_rlist_vt] (* ****** ****** *) implement {a}(*tmp*) arrayptr_make_uninitized (asz) = let in arrayptr_encode2(array_ptr_alloc(asz)) end // end of [arrayptr_uninitize] (* ****** ****** *) implement {a}(*tmp*) arrayptr_imake_list (A, asz) = res where { // val p = ptrcast(A) prval pf = arrayptr_takeout (A) val res = list_make_array (!p, asz) prval () = arrayptr_addback (pf | A) } // end of [arrayptr_imake_list] (* ****** ****** *) implement {a}(*tmp*) arrayptr_make_stream (xs, asz) = let // fun loop {n:int|0 < n} {i:nat|i <= n} ( xs: stream(a) , p0: ptr, pi: ptr , n0: size_t(n), i0: size_t(i) ) : (ptr, Size_t) = ( // case+ !xs of | stream_nil() => ( p0, i0 ) (* stream_nil *) | stream_cons(x, xs) => if (i0 < n0) then let val () = $UN.ptr0_set(pi, x) in loop (xs, p0, ptr_succ(pi), n0, succ(i0)) end // end of [then] else let // val n02 = n0 + n0 val A02 = arrayptr_make_uninitized(n02) val p02 = $UN.castvwtp0{ptr}(A02) // val _(*p02*) = memcpy(p02, p0, i0*sizeof) val ((*freed*)) = arrayptr_free($UN.castvwtp0(p0)) // val pi = ptr_add(p02, i0) val () = $UN.ptr0_set(pi, x) // in loop (xs, p02, ptr_succ(pi), n02, succ(i0)) end // end of [else] ) (* end of [loop] *) // val n0 = arrayptr_make_stream$bufsize<> ((*void*)) // val n0 = i2sz(n0) val A0 = arrayptr_make_uninitized(n0) val p0 = $UN.castvwtp0{ptr}(A0) // val (p0, n0) = $effmask_all(loop(xs, p0, p0, n0, i2sz(0))) // in // let val () = asz := n0 in $UN.castvwtp0(p0) end // end // end of [arrayptr_make_stream] (* ****** ****** *) implement {a}(*tmp*) arrayptr_make_stream_vt (xs, asz) = let // fun loop {n:int|0 < n} {i:nat|i <= n} ( xs: stream_vt(a) , p0: ptr, pi: ptr , n0: size_t(n), i0: size_t(i) ) : (ptr, Size_t) = ( // case+ !xs of | ~stream_vt_nil() => ( p0, i0 ) | ~stream_vt_cons(x, xs) => if (i0 < n0) then let val () = $UN.ptr0_set(pi, x) in loop (xs, p0, ptr_succ(pi), n0, succ(i0)) end // end of [then] else let // val n02 = n0 + n0 val A02 = arrayptr_make_uninitized(n02) val p02 = $UN.castvwtp0{ptr}(A02) // val _(*p02*) = memcpy(p02, p0, i0*sizeof) val ((*freed*)) = arrayptr_free($UN.castvwtp0(p0)) // val pi = ptr_add(p02, i0) val () = $UN.ptr0_set(pi, x) // in loop (xs, p02, ptr_succ(pi), n02, succ(i0)) end // end of [else] ) (* end of [loop] *) // val n0 = arrayptr_make_stream$bufsize<> ((*void*)) // val n0 = i2sz(n0) val A0 = arrayptr_make_uninitized(n0) val p0 = $UN.castvwtp0{ptr}(A0) // val (p0, n0) = $effmask_all(loop(xs, p0, p0, n0, i2sz(0))) // in // let val () = asz := n0 in $UN.castvwtp0(p0) end // end // end of [arrayptr_make_stream_vt] (* ****** ****** *) // implement arrayptr_make_stream$bufsize<> ((*void*)) = 16 // (* ****** ****** *) (* implement arrayptr_free = ATS_MFREE // HX: in arrayptr.cats *) (* ****** ****** *) implement {a}(*tmp*) fprint_arrayptr (out, A, n) = () where { // val p = ptrcast(A) prval pf = arrayptr_takeout(A) // val () = fprint_array(out, !p, n) prval () = arrayptr_addback(pf | A) // } // end of [fprint_arrayptr] (* ****** ****** *) implement {a}(*tmp*) fprint_arrayptr_sep (out, A, n, sep) = () where { // val p = ptrcast (A) prval pf = arrayptr_takeout(A) val () = fprint_array_sep(out, !p, n, sep) prval () = arrayptr_addback(pf | A) // } // end of [fprint_arrayptr_sep] (* ****** ****** *) implement {a}{tk} arrayptr_get_at_gint (A, i) = let val p = ptrcast(A) in $UN.ptr0_get(ptr1_add_gint(p, i)) end // end of [arrayptr_get_at_gint] implement {a}{tk} arrayptr_get_at_guint (A, i) = let val p = ptrcast(A) in $UN.ptr0_get(ptr1_add_guint(p, i)) end // end of [arrayptr_get_at_guint] (* ****** ****** *) implement {a}{tk} arrayptr_set_at_gint (A, i, x) = let val p = ptrcast(A) in $UN.ptr0_set(ptr1_add_gint(p, i), x) end // end of [arrayptr_set_at_gint] implement {a}{tk} arrayptr_set_at_guint (A, i, x) = let val p = ptrcast(A) in $UN.ptr0_set(ptr1_add_guint(p, i), x) end // end of [arrayptr_set_at_guint] (* ****** ****** *) implement {a}(*tmp*) arrayptr_interchange (A, i, j) = let // val p = ptrcast (A) prval pfarr = arrayptr_takeout (A) val () = array_interchange (!p, i, j) prval () = arrayptr_addback (pfarr | A) // in // noting end // end of [arrayptr_interchange] (* ****** ****** *) implement {a}(*tmp*) arrayptr_foreach (A, asz) = let var env: void = () in arrayptr_foreach_env(A, asz, env) end // end of [arrayptr_foreach] implement {a}{env} arrayptr_foreach_env (A, asz, env) = res where { // val p = ptrcast (A) prval pfarr = arrayptr_takeout(A) // val res = array_foreach_env(!p, asz, env) prval () = arrayptr_addback{a}(pfarr | A) // } // end of [arrayptr_foreach_env] (* ****** ****** *) implement {a}(*tmp*) arrayptr_foreach_funenv (pfv | A, asz, f, env) = let // val p = ptrcast (A) prval pfarr = arrayptr_takeout(A) // val () = array_foreach_funenv(pfv | !p, asz, f, env) prval () = arrayptr_addback{a}(pfarr | A) // in // nothing end // end of [arrayptr_foreach_funenv] (* ****** ****** *) implement {a}(*tmp*) arrayptr_iforeach (A, asz) = let var env: void = () in arrayptr_iforeach_env(A, asz, env) end // end of [arrayptr_iforeach] implement {a}{env} arrayptr_iforeach_env (A, asz, env) = res where { // val p = ptrcast (A) prval pfarr = arrayptr_takeout (A) // val res = array_iforeach_env(!p, asz, env) prval () = arrayptr_addback{a}(pfarr | A) // } // end of [arrayptr_iforeach_env] (* ****** ****** *) implement {a}(*tmp*) arrayptr_rforeach (A, asz) = let var env: void = () in arrayptr_rforeach_env(A, asz, env) end // end of [arrayptr_rforeach] implement {a}{env} arrayptr_rforeach_env (A, asz, env) = res where { // val p = ptrcast(A) prval pfarr = arrayptr_takeout(A) // val res = array_rforeach_env(!p, asz, env) prval () = arrayptr_addback{a}(pfarr | A) // } // end of [arrayptr_rforeach_env] (* ****** ****** *) implement {a}(*tmp*) arrayptr_initize (A, asz) = () where { // val p = ptrcast(A) prval pfarr = arrayptr_takeout(A) // val () = array_initize(!p, asz) prval () = arrayptr_addback{a}(pfarr | A) // } // end of [arrayptr_initize] (* ****** ****** *) implement {a}(*tmp*) arrayptr_uninitize (A, asz) = () where { // val p = ptrcast(A) prval pfarr = arrayptr_takeout(A) // val () = array_uninitize(!p, asz) prval () = arrayptr_addback{a?}(pfarr | A) // } // end of [arrayptr_uninitize] (* ****** ****** *) implement {a}(*tmp*) arrayptr_freelin (A, asz) = let // val () = arrayptr_uninitize(A, asz) // in arrayptr_free{a?}(A) end // end of [arrayptr_freelin] (* ****** ****** *) implement {a}(*tmp*) arrayptr_tabulate (asz) = arrayptr_encode2(array_ptr_tabulate(asz)) // end of [arrayptr_tabulate] (* ****** ****** *) implement {a}(*tmp*) arrayptr_bsearch (A, asz) = res where { // val p = ptrcast(A) prval pfarr = arrayptr_takeout(A) // val res = array_bsearch(!p, asz) prval () = arrayptr_addback{a}(pfarr | A) // } (* end of [arrayptr_bsearch] *) (* ****** ****** *) implement {a}(*tmp*) arrayptr_quicksort (A, asz) = () where { // val p = ptrcast(A) prval pfarr = arrayptr_takeout(A) // val () = array_quicksort(!p, asz) prval () = arrayptr_addback{a}(pfarr | A) // } (* end of [arrayptr_quicksort] *) (* ****** ****** *) (* end of [arrayptr.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/integer_short.dats0000644000175000017500000001122713431250607022611 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2014 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/integer_short.atxt ** Time of generation: Thu Feb 14 11:29:45 2019 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // implement g0int2int = g0int2int_sint_int implement g0int2uint = g0int2uint_sint_uint // (* ****** ****** *) // implement g0uint2int = g0uint2int_usint_int implement g0uint2uint = g0uint2uint_usint_uint // (* ****** ****** *) // implement g0int_neg = g0int_neg_sint implement g0int_abs = g0int_abs_sint implement g0int_succ = g0int_succ_sint implement g0int_pred = g0int_pred_sint implement g0int_half = g0int_half_sint implement g0int_add = g0int_add_sint implement g0int_sub = g0int_sub_sint implement g0int_mul = g0int_mul_sint implement g0int_div = g0int_div_sint implement g0int_mod = g0int_mod_sint implement g0int_asl = g0int_asl_sint implement g0int_asr = g0int_asr_sint implement g0int_isltz = g0int_isltz_sint implement g0int_isltez = g0int_isltez_sint implement g0int_isgtz = g0int_isgtz_sint implement g0int_isgtez = g0int_isgtez_sint implement g0int_iseqz = g0int_iseqz_sint implement g0int_isneqz = g0int_isneqz_sint implement g0int_lt = g0int_lt_sint implement g0int_lte = g0int_lte_sint implement g0int_gt = g0int_gt_sint implement g0int_gte = g0int_gte_sint implement g0int_eq = g0int_eq_sint implement g0int_neq = g0int_neq_sint implement g0int_compare = g0int_compare_sint implement g0int_max = g0int_max_sint implement g0int_min = g0int_min_sint // implement fprint_val (out, x) = fprint_sint (out, x) // implement g0uint_succ = g0uint_succ_usint implement g0uint_pred = g0uint_pred_usint implement g0uint_half = g0uint_half_usint implement g0uint_add = g0uint_add_usint implement g0uint_sub = g0uint_sub_usint implement g0uint_mul = g0uint_mul_usint implement g0uint_div = g0uint_div_usint implement g0uint_mod = g0uint_mod_usint implement g0uint_lsl = g0uint_lsl_usint implement g0uint_lsr = g0uint_lsr_usint implement g0uint_lnot = g0uint_lnot_usint implement g0uint_lor = g0uint_lor_usint implement g0uint_lxor = g0uint_lxor_usint implement g0uint_land = g0uint_land_usint implement g0uint_isgtz = g0uint_isgtz_usint implement g0uint_iseqz = g0uint_iseqz_usint implement g0uint_isneqz = g0uint_isneqz_usint implement g0uint_lt = g0uint_lt_usint implement g0uint_lte = g0uint_lte_usint implement g0uint_gt = g0uint_gt_usint implement g0uint_gte = g0uint_gte_usint implement g0uint_eq = g0uint_eq_usint implement g0uint_neq = g0uint_neq_usint implement g0uint_compare = g0uint_compare_usint implement g0uint_max = g0uint_max_usint implement g0uint_min = g0uint_min_usint // implement fprint_val (out, x) = fprint_usint (out, x) // (* ****** ****** *) (* end of [integer_short.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/filebas.dats0000644000175000017500000004746413431250607021356 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: Feburary, 2012 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/filebas.atxt ** Time of generation: Thu Feb 14 11:29:48 2019 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading at run-time (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload _(*INT*) = "prelude/DATS/integer.dats" (* ****** ****** *) staload STDIO = "libats/libc/SATS/stdio.sats" vtypedef FILEptr1 = $STDIO.FILEptr1 (*linear/nonnull*) // (* ****** ****** *) // staload STAT = "libats/libc/SATS/sys/stat.sats" // (* ****** ****** *) #define c2i char2int0 #define i2c int2char0 (* ****** ****** *) // // HX-2013-06: // this is just Unix convention // implement{} dirsep_get () = '/' implement{} dirsep_gets () = "/" implement{} dirname_self () = "." implement{} dirname_parent () = ".." // (* ****** ****** *) implement {}(*tmp*) filename_get_ext (name) = let // val sep = dirsep_get<>() // #define NUL '\000' overload + with add_ptr_bsz // fun loop ( p1: ptr, p2: ptr, c0: char ) : ptr = let val c1 = $UN.ptr0_get(p1) in if (c1 != NUL) then let val p1 = p1 + i2sz(1) in if (c1 != sep) then ( if c1 != c0 then loop(p1, p2, c0) else loop(p1, p1, c0) // end of [if] ) else loop(p1, the_null_ptr, c0) end else p2 // end of [if] end // end of [loop] // val p1 = string2ptr(name) val p2 = $effmask_all(loop(p1, the_null_ptr, '.')) // in $UN.castvwtp0{vStrptr0}(p2) end // end of [filename_get_ext] (* ****** ****** *) implement {}(*tmp*) filename_test_ext (name, ext0) = let // val (fpf | ext) = filename_get_ext (name) // val ans = ( if strptr2ptr(ext) > 0 then eq_string_string (ext0, $UN.strptr2string(ext)) else false // end of [if] ) : bool // end of [val] // prval () = fpf (ext) // in ans end // end of [filename_test_ext] (* ****** ****** *) implement {}(*tmp*) filename_get_base (name) = let // #define NUL '\000' overload + with add_ptr_bsz // fun loop ( p1: ptr, p2: ptr, c0: char ) : ptr = let val c = $UN.ptr0_get (p1) in if c != NUL then let val p1 = p1 + i2sz(1) in if c != c0 then loop (p1, p2, c0) else loop (p1, p1, c0) end else p2 // end of [if] end // end of [loop] // val c0 = dirsep_get<> () val p1 = string2ptr(name) val p2 = $effmask_all (loop (p1, p1, c0)) // in $UN.castvwtp0{vStrptr1}(p2) end // end of [filename_get_base] (* ****** ****** *) implement {}(*tmp*) filename_test_base (name, base0) = let // val (fpf | base) = filename_get_base (name) // val ans = eq_string_string (base0, $UN.strptr2string(base)) // prval () = fpf (base) // in ans end // end of [filename_test_base] (* ****** ****** *) (* // // HX-2013-04: // this is now implemented in [filebas.cats]. // local extern castfn file_mode {fm:file_mode} (x: string):<> file_mode (fm) // end of [extern] in (* in of [local] *) implement file_mode_r = file_mode ("r") implement file_mode_rr = file_mode ("r+") implement file_mode_w = file_mode ("w") implement file_mode_ww = file_mode ("w+") implement file_mode_a = file_mode ("a") implement file_mode_aa = file_mode ("a+") end // end of [local] *) (* ****** ****** *) extern castfn __cast_filp (r: FILEref): FILEptr1 (* ****** ****** *) implement {}(*tmp*) test_file_mode (path) = let // typedef stat = $STAT.stat // var st: stat? val err = $STAT.stat (path, st) // in // if err >= 0 then let prval () = opt_unsome{stat}(st) val test = test_file_mode$pred<> ($UN.cast{uint}(st.st_mode)) in if test then 1(*true*) else 0(*false*) end // end of [then] else let prval () = opt_unnone{stat}(st) in ~1(*failure*) end // end of [else] // end // end of [test_file_mode] (* ****** ****** *) implement {}(*tmp*) fileref_open_opt (path, fm) = let // val filp = $STDIO.fopen (path, fm) val isnot = $STDIO.FILEptr2ptr(filp) > 0 // in // if isnot then let // val filr = $STDIO.FILEptr_refize(filp) // in Some_vt{FILEref}(filr) // success end // end of [then] else let // prval () = $STDIO.FILEptr_free_null(filp) // in None_vt{FILEref}((*void*)) // failure end // end of [else] // end // end of [fileref_open_opt] (* ****** ****** *) (* // // HX: atspre_fileref_close // implement fileref_close (fil) = $STDIO.fclose0_exn (fil) *) (* ****** ****** *) (* // // HX: atspre_fileref_flush // implement fileref_flush (fil) = $STDIO.fflush0_exn (fil) *) (* ****** ****** *) (* // // HX: atspre_fileref_getc // implement fileref_getc (inp) = $STDIO.fgetc0 (inp) *) (* ****** ****** *) (* // // HX: atspre_fileref_putc_int // HX: atspre_fileref_putc_char // implement fileref_putc_int (out, c) = let val _(*ignored*) = $STDIO.fputc0 (c, out) in (*nothing*) end // end of [fileref_putc_int] implement fileref_putc_char (out, c) = fileref_putc_int (out, (c2i)c) *) (* ****** ****** *) (* // // HX: atspre_fileref_puts // implement fileref_puts (out, s) = let val _(*ignored*) = $STDIO.fputs0 (s, out) in (*nothing*) end // end of [fileref_puts] *) (* ****** ****** *) (* // // HX: atspre_fileref_is_eof // implement fileref_is_eof (fil) = if $STDIO.feof0 (fil) != 0 true else false // end of [fileref_is_eof] *) (* ****** ****** *) // implement fileref_load = fileref_load_int implement fileref_load = fileref_load_lint implement fileref_load = fileref_load_uint implement fileref_load = fileref_load_ulint // implement fileref_load = fileref_load_float implement fileref_load = fileref_load_double // (* ****** ****** *) implement{a} fileref_get_optval (r) = let var x: a? val yn = fileref_load (r, x) in option_vt_make_opt (yn, x) end // end of [fileref_get_optval] (* ****** ****** *) implement{a} fileref_get_exnmsg (r, msg) = let var x: a? val yn = fileref_load (r, x) in if yn then let prval () = opt_unsome (x) in x end else let prval () = opt_unnone (x) in exit_errmsg (1, msg) end (* end of [if] *) end // end of [fileref_get_exnmsg] (* ****** ****** *) implement fileref_get_line_charlst (inp) = let // val EOL = '\n' // fun loop ( inp: FILEref, res: &ptr? >> charlst_vt ) : void = let val i = fileref_getc (inp) in // if i >= 0 then let val c = int2char0(i) in // if (c != EOL) then let val () = ( res := list_vt_cons{char}{0}(c, _) ) val+list_vt_cons (_, res1) = res val () = loop (inp, res1) prval () = fold@ (res) in // nothing end else (res := list_vt_nil) // end else (res := list_vt_nil) // end // end of [loop] // var res: ptr val () = loop (inp, res) // in res end // end of [fileref_get_line_charlst] (* ****** ****** *) implement fileref_get_lines_charlstlst (inp) = let // vtypedef line = charlst_vt vtypedef lines = List0_vt (line) // fun loop ( inp: FILEref , res: &lines? >> lines ) : void = let val iseof = fileref_is_eof (inp) in // if iseof then let val () = (res := list_vt_nil ()) in // nothing end else let val line = fileref_get_line_charlst (inp) val () = ( res := list_vt_cons{line}{0}(line, _) ) val+list_vt_cons (_, res1) = res val () = loop (inp, res1) prval () = fold@ (res) in // nothing end // end of [if] // end // end of [loop] // var res: lines val () = loop (inp, res) // in res end // end of [fileref_get_lines_charlstlst] (* ****** ****** *) // implement fileref_get_file_charlst (inp) = fileref_get2_file_charlst (inp, ~1) // (* ****** ****** *) local fun loop ( inp: FILEref , n: int, res: &ptr? >> charlst_vt ) : int = let in // if n != 0 then let val i = fileref_getc (inp) in if i >= 0 then let val () = ( res := list_vt_cons{char}{0}(i2c(i), _) ) val+list_vt_cons (_, res1) = res val n = loop (inp, pred(n), res1) prval () = fold@ (res) in n end else let val () = res := list_vt_nil () in (n) end // end of [if] end else let val () = res := list_vt_nil () in n(*=0*) end // end of [if] // end // end of [loop] in (* in of [local] *) implement fileref_get2_file_charlst (inp, n) = res where { var res: ptr; val _(*nleft*) = loop (inp, n, res) } // end of [fileref_nget_file_charlst] end // end of [local] (* ****** ****** *) // implement fileref_put_string (out, cs) = ( fileref_puts(out, cs) ) // implement fileref_put_charlst (out, cs) = let // fun loop ( out: FILEref, cs: List(char) ) : void = let in // case+ cs of | list_nil() => () | list_cons(c, cs) => let val () = fileref_putc(out, c) in loop(out, cs) end // end of [list_cons] // end // end of [loop] // in loop(out, cs) end // end of [fileref_put_charlst] // (* ****** ****** *) // implement {}(*tmp*) fileref_get_line_string$bufsize() = 64 implement {}(*tmp*) fileref_get_file_string$bufsize() = 1024 // (* ****** ****** *) implement {}(*tmp*) fileref_get_line_string (inp) = let // var nlen: int // uninitialized val line = fileref_get_line_string_main(inp, nlen) prval () = lemma_strnptr_param(line) // in strnptr2strptr(line) end // end of [fileref_get_line_string] (* ****** ****** *) implement {}(*tmp*) fileref_get_line_string_main (inp, nlen) = let // val bsz = fileref_get_line_string$bufsize<>() // val [l:addr,n:int] str = $extfcall ( Strnptr0 , "atspre_fileref_get_line_string_main2" , bsz, inp, addr@(nlen) ) // prval () = lemma_strnptr_param(str) // prval () = __assert(view@(nlen)) where { extern praxi __assert{l:addr}(pf: !int? @ l >> int (n) @ l): void } // val isnot = strnptr_isnot_null(str) // in // if isnot then str else let val () = exit_errmsg_void (1, "[fileref_get_line_string_main] failed.") val () = assert (nlen >= 0) // HX: for TC // deadcode in str // HX: [str]=null is not returned end (* end of [if] *) // end // end of [fileref_get_line_string_main] (* ****** ****** *) implement {}(*tmp*) fileref_get_lines_stringlst (inp) = let // vtypedef line = Strptr1 vtypedef lines = List0_vt (line) // fun loop ( inp: FILEref , res: &lines? >> lines ) : void = let val iseof = fileref_is_eof (inp) in // if iseof then let val () = (res := list_vt_nil()) in // nothing end else let val line = fileref_get_line_string(inp) val () = ( res := list_vt_cons{line}{0}(line, _) ) val+ list_vt_cons(_, res1) = res val () = loop(inp, res1) // tail-call prval ((*folded*)) = fold@ (res) in // nothing end // end of [if] // end // end of [loop] // // in // let var res: lines val ((*void*)) = loop(inp, res) in res end // end // end of [fileref_get_lines_stringlst] (* ****** ****** *) implement {}(*tmp*) fileref_get_file_string (inp) = let // fun loop ( inp: FILEref , p0: ptr, n0: size_t , p1: ptr, n1: size_t ) : Strptr1 = let // #define CNUL '\000' // val nw = $extfcall ( size_t , "atslib_libats_libc_fread", p1, 1, n1, inp) // in (* in-of-let *) // if (nw > 0) then let val n1 = n1 - nw val p1 = add_ptr_bsz(p1, nw) in if n1 > 0 then loop(inp, p0, n0, p1, n1) else loop2(inp, p0, n0) // end of [if] end // end of [then] else let val () = $UN.ptr0_set(p1, CNUL) in $UN.castvwtp0{Strptr1}(p0) end // end of [else] // end // end of [loop] // and loop2 ( inp: FILEref, p0: ptr, n0: size_t ) : Strptr1 = let val bsz = succ(n0) val bsz2 = g1ofg0(bsz + bsz) val (pf, pfgc | p0_) = malloc_gc (bsz2) val p0_ = $UN.castvwtp0{ptr}((pf, pfgc | p0_)) // val _ptr_ = $extfcall (ptr, "atslib_libats_libc_memcpy", p0_, p0, n0) // val n0_ = pred(g0ofg1(bsz2)) val p1_ = add_ptr_bsz(p0_, n0) val ((*freed*)) = strptr_free($UN.castvwtp0{Strptr1}(p0)) in loop(inp, p0_, n0_, p1_, bsz) end // end of [loop2] // val bsz = fileref_get_file_string$bufsize<>() val bsz = i2sz(bsz) val (pf, pfgc | p0_) = malloc_gc (bsz) val p0_ = $UN.castvwtp0{ptr}((pf, pfgc | p0_)) val n0_ = pred(bsz) // in loop(inp, p0_, n0_, p0_, n0_) end // end of [fileref_get_file_string] (* ****** ****** *) %{ extern atstype_ptr atspre_fileref_get_line_string_main2 ( atstype_int bsz0 , atstype_ptr filp0 , atstype_ref nlen0 // int *nlen ) { // int bsz = bsz0 ; int ofs1 = 0, ofs2 = 0; int *nlen = (int*)nlen0; FILE *filp = (FILE*)filp0 ; char *buf1, *buf2, *pres ; // buf1 = atspre_malloc_gc(bsz) ; // while (1) { buf2 = buf1+ofs1 ; pres = fgets(buf2, bsz-ofs1, filp) ; if (!pres) { if (feof(filp)) { *buf2 = '\0' ; *nlen = ofs1 ; return buf1 ; } else { atspre_mfree_gc(buf1) ; *nlen = -1 ; return (char*)0 ; } // end of [if] } // ofs2 = strlen(buf2) ; // if (ofs2 > 0) ofs1 += ofs2 ; else return buf1; // // HX: ofs1 > 0 holds at this point // HX: the newline symbol needs to be trimmed: // if( buf1[ofs1-1]=='\n' ) { buf1[ofs1-1] = '\0'; *nlen = ofs1-1 ; return buf1 ; } // end of [if] // // HX: there is room // so there are no more chars: // if (ofs1+1 < bsz) { ( *nlen = ofs1 ) ; return buf1 ; } // // HX: there is no room // another call to [fgets] is needed: // bsz *= 2 ; buf2 = buf1 ; buf1 = atspre_malloc_gc(bsz) ; memcpy(buf1, buf2, ofs1) ; atspre_mfree_gc(buf2) ; } // end of [while] // return buf1 ; // HX: this is really deadcode // } // end of [atspre_fileref_get_line_string_main2] %} (* ****** ****** *) implement {}(*tmp*) fileref_get_word(inp) = let // vtypedef res = List0_vt(charNZ) // fun loop1 ( // argless ) : res = let // val c = $STDIO.fgetc0(inp) // in // if (c > 0) then let val c = $UN.cast{charNZ}(c) val test = fileref_get_word$isalpha<>(c) // end of [val] in if test then loop2(c, list_vt_nil()) else loop1() end // end of [then] else list_vt_nil ((*void*)) // end // end of [loop1] and loop2 ( c: charNZ, cs: res ) : res = let // val c2 = $STDIO.fgetc0(inp) val cs = list_vt_cons{charNZ}(c, cs) // in // if (c2 > 0) then let // val c2 = $UN.cast{charNZ}(c2) val test = fileref_get_word$isalpha<>(c2) // in if test then loop2(c2, cs) else cs end // end of [then] else (cs) // end of [else] // end // end of [loop2] // val cs = loop1((*void*)) // in case+ cs of | list_vt_cons _ => let val str = string_make_rlist ($UN.list_vt2t(cs)) // string_make_rlist val () = list_vt_free(cs) // end of [val] in strnptr2strptr(str) end // end of [list_vt_cons] | ~list_vt_nil() => strptr_null() end // end of [fileref_get_word] (* ****** ****** *) // implement {}(*tmp*) fileref_get_word$isalpha (charNZ) = isalpha(charNZ) // (* ****** ****** *) implement {}(*tmp*) fileref_foreach (inp) = let // var env: void = () // in fileref_foreach_env(inp, env) end // end of [fileref_foreach] (* ****** ****** *) local // staload "libats/libc/SATS/stdio.sats" // extern fun fread ( ptr, size_t, size_t, FILEref ) : Size = "mac#atslib_libats_libc_fread" // in (* in of [local] *) implement {env}(*tmp*) fileref_foreach_env (inp, env) = let // fun loop {l:addr}{n:int} ( pf: !b0ytes(n) @ l | inp: FILEref, bufp: ptr(l), bsz: size_t(n), env: &env ) : void = let // val bsz2 = fread(bufp, i2sz(1), bsz, inp) // prval [n2:int] EQINT() = g1uint_get_index(bsz2) // in // if bsz2 > 0 then { val A = $UN.cast{arrayref(char,n2)}(bufp) val () = fileref_foreach$fworkv(A, bsz2, env) val ((*void*)) = loop (pf | inp, bufp, bsz, env) } (* end of [if] *) // end // end of [loop] // val bsz = fileref_foreach$bufsize<>((*void*)) val (pf1, pf2 | bufp) = memory$alloc<>( bsz ) val ((*void*)) = loop(pf1 | inp, bufp, bsz, env) val ((*void*)) = memory$free<>(pf1, pf2 | bufp) // in // nothing end // end of [fileref_foreach_env] end // end of [local] (* ****** ****** *) implement {}(*tmp*) fileref_foreach$bufsize() = i2sz(4*1024) (* ****** ****** *) implement {env}(*tmp*) fileref_foreach$fworkv (A, n, env) = let // implement {a}{env} array_foreach$cont(x, env) = true implement array_foreach$fwork (x, env) = fileref_foreach$fwork (x, env) // in ignoret(arrayref_foreach_env (A, n, env)) end // end of [fileref_foreach$fworkv] (* ****** ****** *) implement {}(*tmp*) streamize_fileref_char (inp) = auxmain(inp) where { // typedef elt = char // fun auxmain ( inp : FILEref ) : stream_vt(elt) = $ldelay ( // let val c0 = fileref_getc(inp) in if (c0 >= 0) then ( stream_vt_cons (int2char0(c0), auxmain(inp)) ) else ( stream_vt_nil((*void*)) where { (* // // HX: // FILEref should be kept! // val () = fileref_close(inp) // *) } ) (* end-of-else *) // end-of-if end : stream_vt_con(elt) // end of [let] // (* , // fileref_close(inp) // HX: [inp] should be kept! // *) ) (* end of [auxmain] *) // } (* end of [streamize_fileref_char] *) (* ****** ****** *) implement {}(*tmp*) streamize_fileptr_char (inp) = let // typedef elt = char // fun auxmain ( inp : FILEref ) : stream_vt(elt) = $ldelay ( // let val c0 = fileref_getc(inp) in if (c0 >= 0) then ( stream_vt_cons (int2char0(c0), auxmain(inp)) ) else ( stream_vt_nil((*void*)) where { // // HX: // [inp] should be freed! // val () = fileref_close(inp) // } ) (* end-of-else *) // end-of-if end : stream_vt_con(elt) // end of [let] // , // fileref_close(inp) // HX: [inp] should be freed! // ) (* end of [auxmain] *) // in auxmain($UN.castvwtp0{FILEref}(inp)) end (* end of [streamize_fileptr_char] *) (* ****** ****** *) implement {}(*tmp*) streamize_fileref_line (inp) = auxmain(inp) where { // vtypedef elt = Strptr1 // fun auxmain (inp: FILEref): stream_vt(elt) = $ldelay ( // let // val iseof = fileref_is_eof(inp) // in if iseof then let (* // // HX: [inp] is kept! // val () = fileref_close(inp) // end of [val] *) in stream_vt_nil((*void*)) end // end of [then] else let val line = fileref_get_line_string(inp) // end of [val] in stream_vt_cons(line, auxmain(inp)) end // end of [else] end : stream_vt_con(elt) // end of [let] // (* , // fileref_close(inp) // HX: [inp] should be kept! // *) ) (* end of [auxmain] *) // } (* end of [streamize_fileref_line] *) (* ****** ****** *) implement {}(*tmp*) streamize_fileptr_line (inp) = auxmain(inp) where { // vtypedef elt = Strptr1 // fun auxmain (inp: FILEref): stream_vt(elt) = $ldelay ( // let // val iseof = fileref_is_eof(inp) // in if iseof then let // // HX: [inp] is freed! // val () = fileref_close(inp) // end of [val] in stream_vt_nil((*void*)) end // end of [then] else let val line = fileref_get_line_string(inp) // end of [val] in stream_vt_cons(line, auxmain(inp)) end // end of [else] end : stream_vt_con(elt) // end of [let] // , // fileref_close(inp) // HX: [inp] should be freed! // ) (* end of [auxmain] *) // val inp = $UN.castvwtp0{FILEref}(inp) // } (* end of [streamize_fileptr_line] *) (* ****** ****** *) (* end of [filebas.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/.keeper0000644000175000017500000000000013431250607020317 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/DATS/option_vt.dats0000644000175000017500000000612513431250607021757 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/option_vt.atxt ** Time of generation: Thu Feb 14 11:29:49 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) implement{a} option_vt_some (x) = Some_vt (x) implement{a} option_vt_none ( ) = None_vt ( ) (* ****** ****** *) implement {a}(*tmp*) option_vt_make_opt (b, x) = ( if b then let prval () = opt_unsome{a}(x) in Some_vt{a}(x) end else let prval () = opt_unnone{a}(x) in None_vt{a}( ) end // end of [if] ) (* end of [option_vt_make_opt] *) (* ****** ****** *) implement {}(*tmp*) option_vt_is_some (opt) = case+ opt of | Some_vt _ => true | None_vt _ => false // end of [option_is_some] implement{} option_vt_is_none (opt) = case+ opt of | Some_vt _ => false | None_vt _ => true // end of [option_is_none] (* ****** ****** *) implement {a}(*tmp*) option_vt_unsome (opt) = x where { val+ ~Some_vt(x) = opt } // end of [option_unsome] implement {a}(*tmp*) option_vt_unnone (opt) = () where { val+ ~None_vt() = opt } // end of [option_unnone] (* ****** ****** *) implement {a}(*tmp*) option_vt_free(opt) = ( case+ opt of ~Some_vt _ => () | ~None_vt _ => () ) // end of [option_vt_free] implement {a}(*tmp*) option2bool_vt(opt) = ( case+ opt of ~Some_vt _ => true | ~None_vt _ => false ) // end of [option2bool_vt] (* ****** ****** *) implement {a}(*tmp*) fprint_option_vt (out, opt) = let in // case+ opt of | @Some_vt (x) => { val ( ) = fprint_string (out, "Some_vt(") val () = fprint_ref (out, x) val () = fprint_string (out, ")") prval () = fold@ (opt) } (* end of [Some_vt] *) | None_vt () => { val () = fprint_string (out, "None_vt()") } (* end of [None_vt] *) // end // end of [fprint_option_vt] (* ****** ****** *) (* end of [option_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/filebas_prf.dats0000644000175000017500000000347613431250607022220 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/filebas_prf.atxt ** Time of generation: Thu Feb 14 11:29:48 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) // stadef r() = file_mode_r() stadef w() = file_mode_w() stadef rw() = file_mode_rw() // primplmnt file_mode_lte_r_r = file_mode_lte_refl{r()}() primplmnt file_mode_lte_w_w = file_mode_lte_refl{w()}() primplmnt file_mode_lte_rw_rw = file_mode_lte_refl{rw()}() // (* ****** ****** *) (* end of [filebas_prf.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/float.dats0000644000175000017500000001414213431250607021041 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/float.atxt ** Time of generation: Thu Feb 14 11:29:46 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading at run-time (* ****** ****** *) // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) (* ****** ****** *) implement g0int2float = g0int2float_int_float implement g0int2float = g0int2float_int_double implement g0int2float = g0int2float_lint_double (* ****** ****** *) implement g0float2int = g0float2int_float_int implement g0float2int = g0float2int_float_lint implement g0float2int = g0float2int_double_int implement g0float2int = g0float2int_double_lint implement g0float2int = g0float2int_double_llint (* ****** ****** *) implement g0float2float = g0float2float_float_float implement g0float2float = g0float2float_float_double implement g0float2float = g0float2float_double_float implement g0float2float = g0float2float_double_double (* ****** ****** *) implement g0string2float = g0string2float_double (* ****** ****** *) implement g0float_neg = g0float_neg_float implement g0float_abs = g0float_abs_float implement g0float_succ = g0float_succ_float implement g0float_pred = g0float_pred_float implement g0float_add = g0float_add_float implement g0float_sub = g0float_sub_float implement g0float_mul = g0float_mul_float implement g0float_div = g0float_div_float implement g0float_mod = g0float_mod_float implement g0float_lt = g0float_lt_float implement g0float_lte = g0float_lte_float implement g0float_gt = g0float_gt_float implement g0float_gte = g0float_gte_float implement g0float_eq = g0float_eq_float implement g0float_neq = g0float_neq_float implement g0float_compare = g0float_compare_float implement g0float_max = g0float_max_float implement g0float_min = g0float_min_float (* ****** ****** *) implement g0float_neg = g0float_neg_double implement g0float_abs = g0float_abs_double implement g0float_succ = g0float_succ_double implement g0float_pred = g0float_pred_double implement g0float_add = g0float_add_double implement g0float_sub = g0float_sub_double implement g0float_mul = g0float_mul_double implement g0float_div = g0float_div_double implement g0float_mod = g0float_mod_double implement g0float_lt = g0float_lt_double implement g0float_lte = g0float_lte_double implement g0float_gt = g0float_gt_double implement g0float_gte = g0float_gte_double implement g0float_eq = g0float_eq_double implement g0float_neq = g0float_neq_double implement g0float_compare = g0float_compare_double implement g0float_max = g0float_max_double implement g0float_min = g0float_min_double (* ****** ****** *) implement g0float_neg = g0float_neg_ldouble implement g0float_abs = g0float_abs_ldouble implement g0float_succ = g0float_succ_ldouble implement g0float_pred = g0float_pred_ldouble implement g0float_add = g0float_add_ldouble implement g0float_sub = g0float_sub_ldouble implement g0float_mul = g0float_mul_ldouble implement g0float_div = g0float_div_ldouble implement g0float_mod = g0float_mod_ldouble implement g0float_lt = g0float_lt_ldouble implement g0float_lte = g0float_lte_ldouble implement g0float_gt = g0float_gt_ldouble implement g0float_gte = g0float_gte_ldouble implement g0float_eq = g0float_eq_ldouble implement g0float_neq = g0float_neq_ldouble implement g0float_compare = g0float_compare_ldouble implement g0float_max = g0float_max_ldouble implement g0float_min = g0float_min_ldouble (* ****** ****** *) // implement fprint_val = fprint_float implement fprint_val = fprint_double implement fprint_val = fprint_ldouble // (* ****** ****** *) implement {tk}(*tk*) g0float_npow (x, n) = let // typedef gfloat = g0float(tk) // fun loop ( x: gfloat, res: gfloat, n: int ) : gfloat = ( // if (n > 1) then let val n2 = n >> 1 val b0 = n - (n2 << 1) val xx = x * x in if b0 = 0 then loop(xx, res, n2) else loop(xx, x * res, n2) // end of [if] end // end of [then] else ( if n > 0 then x * res else res ) (* end of [else] *) // ) (* end of [loop] *) // val res = $UN.cast{gfloat}(1.0) // in $effmask_all(loop(x, res, n)) end // end of [g0float_npow] (* ****** ****** *) (* end of [float.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/array_prf.dats0000644000175000017500000001074313431250607021724 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/array_prf.atxt ** Time of generation: Thu Feb 14 11:29:50 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) primplmnt array_v_unnil_nil {a1,a2}(pf) = let // prval () = array_v_unnil{a1}(pf) // in array_v_nil{a2}((*void*)) // end // end of [array_v_unnil] (* ****** ****** *) primplmnt array_v_sing (pfat) = ( // array_v_cons(pfat, array_v_nil()) // ) (* end of [array_v_sing] *) primplmnt array_v_unsing (pfarr) = let // prval ( pf1at, pf2arr ) = array_v_uncons (pfarr) // prval () = array_v_unnil (pf2arr) // in pf1at end // end of [array_v_unsing] (* ****** ****** *) primplmnt array_v_split {a}(pf_arr) = split (pf_arr) where { // prfun split {l:addr} {n,i:nat | i <= n} .. ( pf_arr: array_v (a, l, n) ) : ( array_v (a, l, i), array_v (a, l+i*sizeof(a), n-i) ) = ( // sif i > 0 then let prval (pf1elt, pf2arr) = array_v_uncons(pf_arr) prval (pf1arr_res, pf2arr_res) = split{..}{n-1,i-1}(pf2arr) in (array_v_cons (pf1elt, pf1arr_res), pf2arr_res) end // end of [then] else let prval EQINT () = eqint_make{i,0}() in (array_v_nil{a}{l}((*void*)), pf_arr) // end of [prval] end // end of [else] // ) (* end of [split] *) // } (* end of [array_v_split] *) (* ****** ****** *) primplmnt array_v_split_at {a}{l}{n}{i}(pf | i) = array_v_split{a}{l}{n}{i}(pf) // end of [array_v_split_at] (* ****** ****** *) primplmnt array_v_unsplit {a}(pf1arr, pf2arr) = unsplit (pf1arr, pf2arr) where { // prval () = lemma_array_v_param (pf1arr) prval () = lemma_array_v_param (pf2arr) // prfun unsplit {l:addr} {n1,n2:nat} .. ( pf1arr: array_v (a, l, n1) , pf2arr: array_v (a, l+n1*sizeof(a), n2) ) : array_v (a, l, n1+n2) = ( // sif n1 > 0 then let prval @( pf11elt, pf12arr ) = array_v_uncons (pf1arr) prval pf_arr_res = unsplit (pf12arr, pf2arr) in array_v_cons (pf11elt, pf_arr_res) end // end of [then] else let prval EQINT () = eqint_make {n1,0} () prval () = array_v_unnil (pf1arr) in pf2arr end // end of [sif] // ) (* end of [unsplit] *) // } (* end of [array_v_unsplit] *) (* ****** ****** *) primplmnt array_v_extend {a}(pf1arr, pf2at) = ( // array_v_unsplit ( pf1arr, array_v_sing{a}(pf2at) ) // end of [array_v_unsplit] // ) (* end of [array_v_extend] *) primplmnt array_v_unextend {a}{l}{n} (pfarr) = let // prval (pf1arr, pf2arr) = array_v_split{a}{l}{n}{n-1}(pfarr) // in (pf1arr, array_v_unsing{a}(pf2arr)) end // end of [array_v_unextend] (* ****** ****** *) primplmnt array_v_takeout {a}{l}{n}{i} (pfarr) = takeout{..}{n}{i}(pfarr) where { // prfun takeout {l:addr}{n:int} {i:nat | i < n} .. ( pfarr: array_v (a, l, n) ) : vtakeout ( array_v (a, l, n), a@l+i*sizeof(a) ) = let prval @(pf1at, pf2arr) = array_v_uncons(pfarr) in sif i > 0 then let prval (pfat, fpf) = takeout{..}{n-1}{i-1}(pf2arr) in (pfat, llam pfat = array_v_cons{a}(pf1at, fpf(pfat))) end else let prval EQINT () = eqint_make{i,0}((*void*)) in (pf1at, llam pf1at = array_v_cons{a}(pf1at, pf2arr)) end // end of [sif] end // end of takeout] // } // end of [array_v_takeout] (* ****** ****** *) (* end of [array_prf.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/checkast.dats0000644000175000017500000001120413431250607021515 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/checkast.atxt ** Time of generation: Thu Feb 14 11:29:48 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: December, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) (* staload "prelude/SATS/checkast.sats" *) (* ****** ****** *) implement {}(*tmp*) checkast_charNZ (x, errmsg) = let // #define CNUL '\000' // val x = g1ofg0_char(x) // in // if ( x != CNUL ) then (x) else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] // end // end of [checkast_charNZ] (* ****** ****** *) implement{tk} checkast_gintLt (x, i, errmsg) = let val x = g1ofg0_int(x) in // if x < i then (x) else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] // end // end of [checkast_gintLt] (* ****** ****** *) implement{tk} checkast_gintLte (x, i, errmsg) = let val x = g1ofg0_int(x) in // if x <= i then (x) else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] // end // end of [checkast_gintLte] (* ****** ****** *) implement{tk} checkast_gintGt (x, i, errmsg) = let val x = g1ofg0_int(x) in // if x > i then (x) else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] // end // end of [checkast_gintGt] (* ****** ****** *) implement{tk} checkast_gintGte (x, i, errmsg) = let val x = g1ofg0_int(x) in // if x >= i then (x) else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] // end // end of [checkast_gintGte] (* ****** ****** *) implement{tk} checkast_gintBtw (x, i, j, errmsg) = let val x = g1ofg0_int(x) in // if x >= i then if x < j then (x) else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] // end // end of [checkast_gintBtw] (* ****** ****** *) implement{tk} checkast_gintBtwe (x, i, j, errmsg) = let val x = g1ofg0_int(x) in // if x >= i then if x <= j then (x) else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] // end // end of [checkast_gintBtwe] (* ****** ****** *) implement{} checkast_Ptr1 (x, errmsg) = let val x = g1ofg0_ptr(x) in // if x > 0 then (x) else let val () = fprint! (stderr_ref, "exit(ATS): ", errmsg) in exit(1) // end of [val] end // end of [else] // end of [if] // end // end of [checkast_Ptr1] (* ****** ****** *) implement{} checkast_Strptr1 (x, errmsg) = let val p = strptr2ptr(x) in // if p > 0 then (x) else let prval () = strptr_free_null (x) val ((*void*)) = fprint! (stderr_ref, "exit(ATS): ", errmsg) val ((*void*)) = exit_void(1) in $UN.castvwtp0{Strptr1}(0) end // end of [else] // end of [if] // end // end of [checkast_Strptr1] (* ****** ****** *) (* end of [checkast.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/integer_ptr.dats0000644000175000017500000001157313431250607022263 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2014 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/integer_ptr.atxt ** Time of generation: Thu Feb 14 11:29:47 2019 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) implement g0int2int = g0int2int_int_intptr implement g0int2int = g0int2int_lint_intptr (* ****** ****** *) implement g0uint2uint = g0uint2uint_uint_uintptr implement g0uint2uint = g0uint2uint_ulint_uintptr (* ****** ****** *) // implement g0int_neg = g0int_neg_intptr implement g0int_abs = g0int_abs_intptr implement g0int_succ = g0int_succ_intptr implement g0int_pred = g0int_pred_intptr implement g0int_half = g0int_half_intptr implement g0int_add = g0int_add_intptr implement g0int_sub = g0int_sub_intptr implement g0int_mul = g0int_mul_intptr implement g0int_div = g0int_div_intptr implement g0int_mod = g0int_mod_intptr implement g0int_asl = g0int_asl_intptr implement g0int_asr = g0int_asr_intptr implement g0int_isltz = g0int_isltz_intptr implement g0int_isltez = g0int_isltez_intptr implement g0int_isgtz = g0int_isgtz_intptr implement g0int_isgtez = g0int_isgtez_intptr implement g0int_iseqz = g0int_iseqz_intptr implement g0int_isneqz = g0int_isneqz_intptr implement g0int_lt = g0int_lt_intptr implement g0int_lte = g0int_lte_intptr implement g0int_gt = g0int_gt_intptr implement g0int_gte = g0int_gte_intptr implement g0int_eq = g0int_eq_intptr implement g0int_neq = g0int_neq_intptr implement g0int_compare = g0int_compare_intptr implement g0int_max = g0int_max_intptr implement g0int_min = g0int_min_intptr // implement fprint_val (out, x) = fprint_intptr (out, x) // implement g0uint_succ = g0uint_succ_uintptr implement g0uint_pred = g0uint_pred_uintptr implement g0uint_half = g0uint_half_uintptr implement g0uint_add = g0uint_add_uintptr implement g0uint_sub = g0uint_sub_uintptr implement g0uint_mul = g0uint_mul_uintptr implement g0uint_div = g0uint_div_uintptr implement g0uint_mod = g0uint_mod_uintptr implement g0uint_lsl = g0uint_lsl_uintptr implement g0uint_lsr = g0uint_lsr_uintptr implement g0uint_lnot = g0uint_lnot_uintptr implement g0uint_lor = g0uint_lor_uintptr implement g0uint_lxor = g0uint_lxor_uintptr implement g0uint_land = g0uint_land_uintptr implement g0uint_isgtz = g0uint_isgtz_uintptr implement g0uint_iseqz = g0uint_iseqz_uintptr implement g0uint_isneqz = g0uint_isneqz_uintptr implement g0uint_lt = g0uint_lt_uintptr implement g0uint_lte = g0uint_lte_uintptr implement g0uint_gt = g0uint_gt_uintptr implement g0uint_gte = g0uint_gte_uintptr implement g0uint_eq = g0uint_eq_uintptr implement g0uint_neq = g0uint_neq_uintptr implement g0uint_compare = g0uint_compare_uintptr implement g0uint_max = g0uint_max_uintptr implement g0uint_min = g0uint_min_uintptr // implement fprint_val (out, x) = fprint_uintptr (out, x) // (* ****** ****** *) (* end of [integer_ptr.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/pointer.dats0000644000175000017500000001224413431250607021415 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/pointer.atxt ** Time of generation: Thu Feb 14 11:29:45 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) primplmnt lemma_ptr_param {l} (p) = lemma_addr_param {l} () // end of [lemma_ptr_param] (* ****** ****** *) primplmnt ptr_get_index{l}(p) = eqaddr_make{l, l}() (* ****** ****** *) implement {a}(*tmp*) ptr0_succ(p) = add_ptr_bsz(p, sizeof) implement {a}(*tmp*) ptr0_pred(p) = sub_ptr_bsz(p, sizeof) (* ****** ****** *) // implement {a}(*tmp*) ptr0_diff(p1, p2) = ( sub_ptr0_ptr0(p1, p2) / g0u2i(sizeof) ) (* end of [ptr0_diff] *) // (* ****** ****** *) // implement {a}{tk} ptr0_add_gint(p, i) = add_ptr_bsz(p, g0int2uint(i) * sizeof) implement {a}{tk} ptr0_sub_gint(p, i) = sub_ptr_bsz(p, g0int2uint(i) * sizeof) // implement {a}{tk} ptr0_add_guint(p, i) = add_ptr_bsz(p, g0uint2uint(i) * sizeof) implement {a}{tk} ptr0_sub_guint(p, i) = sub_ptr_bsz(p, g0uint2uint(i) * sizeof) // (* ****** ****** *) // implement {a}(*tmp*) ptr1_succ{l}(p) = $UN.cast {ptr(l+sizeof(a))}(add_ptr_bsz(p, sizeof)) implement {a}(*tmp*) ptr1_pred{l}(p) = $UN.cast {ptr(l-sizeof(a))}(sub_ptr_bsz(p, sizeof)) // (* ****** ****** *) // implement {a}{tk} ptr1_add_gint{l}{i}(p, i) = ( $UN.cast {ptr(l+i*sizeof(a))}(ptr0_add_gint(p, i)) ) implement {a}{tk} ptr1_sub_gint{l}{i}(p, i) = ( $UN.cast {ptr(l-i*sizeof(a))}(ptr0_sub_gint(p, i)) ) // implement {a}{tk} ptr1_add_guint{l}{i}(p, i) = ( $UN.cast {ptr(l+i*sizeof(a))}(ptr0_add_guint(p, i)) ) implement {a}{tk} ptr1_sub_guint{l}{i}(p, i) = ( $UN.cast {ptr(l-i*sizeof(a))}(ptr0_sub_guint(p, i)) ) // (* ****** ****** *) implement {a}(*tmp*) ptr_get(pf | p) = !p implement {a}(*tmp*) ptr_set(pf | p, x) = (!p := x) implement {a}(*tmp*) ptr_exch(pf | p, xr) = { val x0 = xr val () = xr := !p; val () = !p := x0 } (* end of [ptr_exch] *) (* ****** ****** *) // implement {a}(*tmp*) cptr_succ{l}(cp) = $UN.cast(add_ptr_bsz(cptr2ptr(cp), sizeof)) implement {a}(*tmp*) cptr_pred{l}(cp) = $UN.cast(sub_ptr_bsz(cptr2ptr(cp), sizeof)) // (* ****** ****** *) implement {a}(*tmp*) ptr_nullize (pf | x) = ( ptr_nullize_tsz{a}(pf | x, sizeof) ) (* ptr_nullize *) (* ****** ****** *) implement {a}(*tmp*) ptr_alloc() = ptr_alloc_tsz{a}(sizeof) (* ****** ****** *) implement {a}(*tmp*) aptr_make_elt(x) = let // val (pf, fpf | p) = ptr_alloc() // in !p := x; $UN.castvwtp0{aPtr1(a)}((pf, fpf, p)) end // end of [aptr_make_elt] (* ****** ****** *) // implement {a}(*tmp*) aptr_getfree_elt {l}(ap) = x0 where { // val p0 = aptr2ptr(ap) val x0 = $UN.ptr1_get(p0) // prval pfat_ = $UN.castview0{(a?)@l}(0) prval pfgc_ = $UN.castview0{mfree_gc_v(l)}(0) // val () = ptr_free{a?}{l}(pfgc_, pfat_ | p0) // prval () = $UN.cast2void(ap) // } (* end of [aptr_getfree_elt] *) // (* ****** ****** *) // implement {a}(*tmp*) aptr_get_elt (ap) = x0 where { val x0 = $UN.ptr1_get(aptr2ptr(ap)) // prval ((*void*)) = $UN.castvwtp2void(ap) // } (* end of [aptr_get_elt] *) implement {a}(*tmp*) aptr_set_elt (ap, x0) = () where { val () = $UN.ptr1_set(aptr2ptr(ap), x0) // prval ((*void*)) = $UN.castvwtp2void(ap) // } (* end of [aptr_set_elt] *) // implement {a}(*tmp*) aptr_exch_elt (ap, x0) = $UN.ptr1_exch(aptr2ptr(ap), x0) // (* ****** ****** *) // // implement {a}(*tmp*) aptr_vtget0_elt {l}(ap) = x0 where { // val x0 = $UN.ptr1_get(aptr2ptr(ap)) // prval () = $UN.castvwtp2void(ap) // } (* end of [aptr_vtget0_elt] *) // implement {a}(*tmp*) aptr_vtget1_elt {l}(ap) = $UN.castvwtp0{res}(x0) where { // val x0 = $UN.ptr1_get(aptr2ptr(ap)) vtypedef res = (minus_v(aptr(a,l), a) | a) // } (* end of [aptr_vtget1_elt] *) // (* ****** ****** *) implement fprint_val(out, p) = fprint_ptr(out, p) (* ****** ****** *) (* end of [pointer.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/array.dats0000644000175000017500000005502413431250607021056 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/array.atxt ** Time of generation: Thu Feb 14 11:29:50 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: Feburary, 2012 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) macdef castvwtp_trans = $UN.castvwtp0 // former name (* ****** ****** *) implement {a}(*tmp*) array_getref_at (A, i) = let // val p = ptr0_add_guint(addr@(A), i) in $UN.cast{cPtr1(a)}(p) // end // end of [array_getref_at] (* ****** ****** *) implement {a}{tk}(*tmp*) array_get_at_gint (A, i) = let val p = ptr0_add_gint(addr@(A), i) in $UN.ptr0_get(p) end // end of [array_get_at_gint] implement {a}{tk}(*tmp*) array_get_at_guint (A, i) = let val p = ptr0_add_guint(addr@(A), i) in $UN.ptr0_get(p) end // end of [array_get_at_guint] (* ****** ****** *) implement {a}{tk}(*tmp*) array_set_at_gint (A, i, x) = let val p = ptr0_add_gint(addr@(A), i) in $UN.ptr0_set(p, x) end // end of [array_set_at_uint] implement {a}{tk}(*tmp*) array_set_at_guint (A, i, x) = let val p = ptr0_add_guint(addr@(A), i) in $UN.ptr0_set(p, x) end // end of [array_set_at_guint] (* ****** ****** *) implement {a}{tk}(*tmp*) array_exch_at_gint (A, i, x) = let val p = ptr0_add_gint(addr@(A), i) in $UN.ptr0_exch(p, x) end // end of [array_exch_at_gint] implement {a}{tk}(*tmp*) array_exch_at_guint (A, i, x) = let val p = ptr0_add_guint(addr@(A), i) in $UN.ptr0_exch(p, x) end // end of [array_exch_at_guint] (* ****** ****** *) implement {a}(*tmp*) array_subreverse (A, i, j) = let // fun loop ( p1: ptr, p2: ptr ) : void = ( if p1 < p2 then let val x = $UN.ptr0_get(p1) val () = $UN.ptr0_set(p1, $UN.ptr0_get(p2)) val () = $UN.ptr0_set(p2, x) in loop(ptr0_succ(p1), ptr0_pred(p2)) end // end of [then] else () // end of [else] ) (* end of [loop] *) // val pA = addr@A val pi = ptr_add(pA, i) val pj = ptr_add(pA, j) // in $effmask_all(loop(pi, ptr0_pred(pj))) end // end of [array_subreverse] (* ****** ****** *) implement {a}(*tmp*) array_interchange (A, i, j) = let // (* val () = println! ("array_interchange") *) // in // if i != j then let val p0 = addr@(A) val pi = ptr0_add_guint(p0, i) val pj = g1ofg0_ptr(ptr0_add_guint(p0, j)) // end of [val] val (pf, fpf | pj) = $UN.ptr_vtake{a}(pj) val () = $UN.ptr0_exch(pi, !pj) prval ((*returned*)) = fpf(pf) in // nothing end else () // end of [if] // end // end of [array_interchange] (* ****** ****** *) implement {a}(*tmp*) array_subcirculate (A, i, j) = let // extern fun memmove ( dst: ptr, src: ptr, bsz: size_t ) : ptr = "mac#atspre_array_memmove" // in // if i < j then { // val p0 = ptr_add(addr@(A), i) val p1 = ptr_add(addr@(A), j) // val A1 = $UN.ptr0_get(p1) val _(*ptr*) = memmove (ptr_succ(p0), p0, (j-i)*sizeof) val ((*void*)) = $UN.ptr0_set(p0, A1) // } else if i > j then { // val p0 = ptr_add(addr@(A), j) val p1 = ptr_add(addr@(A), i) // val A0 = $UN.ptr0_get(p0) val _(*ptr*) = memmove (p0, ptr_succ(p0), (i-j)*sizeof) val ((*void*)) = $UN.ptr0_set(p1, A0) // } else ((*void*)) // end of [if] // end // end of [array_subcirculate] (* ****** ****** *) implement {a}(*tmp*) array_ptr_takeout {l}{n}{i}(pf | p, i) = let prval(pf, fpf) = array_v_takeout{a}{l}{n}{i}(pf) // end of [prval] in (pf, fpf | ptr1_add_guint(p, i)) end // end of [array_ptr_takeout] (* ****** ****** *) implement {a}(*tmp*) array_ptr_alloc {n}(asz) = let // val [l:addr] ( pf, pfgc | p ) = malloc_gc (asz * sizeof) prval pf = __assert(pf) where { extern praxi __assert (pf: b0ytes (n*sizeof(a)) @ l): array_v (a?, l, n) // end of [__assert] } // end of [where] // end of [prval] // in (pf, pfgc | p) end // end of [array_ptr_alloc] (* ****** ****** *) implement {}(*tmp*) array_ptr_free {a}{l}{n} (pf, pfgc | p) = let // prval pf = __assert(pf) where { // extern praxi __assert (pf: array_v (a?, l, n)): b0ytes (n*sizeof(a)) @ l // end of [__assert] } // end of [where] // end of [prval] // in mfree_gc(pf, pfgc | p) end // end of [array_ptr_free] (* ****** ****** *) implement {a}(*tmp*) array_ptr_tabulate (asz) = let // val ( pf, pfgc | p ) = array_ptr_alloc(asz) // local implement {a2}(*tmp*) array_initize$init (i, x) = ( x := array_tabulate$fopr(i) ) in (*in of [local]*) // val () = array_initize(!p, asz) // end // end of [local] // in @(pf, pfgc | p) end // end of [array_ptr_tabulate] (* ****** ****** *) implement {a}(*tmp*) fprint_array_int (out, A, asz) = let // prval() = lemma_array_param(A) // in fprint_array_size (out, A, i2sz(asz)) end // end of [fprint_array_int] implement {a}(*tmp*) fprint_array_size (out, A, asz) = let // typedef tenv = int // implement array_foreach$fwork (x, env) = let val n = env val () = if n > 0 then fprint_array$sep<>(out) val () = env := n + 1 in fprint_ref(out, x) end // end of [array_foreach$fwork] // var env: tenv = 0 val _(*n*) = array_foreach_env (A, asz, env) // in // nothing end // end of [fprint_array_size] (* ****** ****** *) implement {}(*tmp*) fprint_array$sep(out) = fprint(out, ", ") (* ****** ****** *) implement {a}(*tmp*) fprint_array_sep (out, A, asz, sep) = let // implement fprint_array$sep<>(out) = fprint (out, sep) // in fprint_array(out, A, asz) end // end of [fprint_array_sep] (* ****** ****** *) implement {a}(*tmp*) array_copy {n} (to, from, n) = let // val p_to = addr@(to) and p_from = addr@(from) // val _ = $extfcall ( ptr, "atspre_array_memcpy", p_to, p_from, n*sizeof ) (* end of [val] *) // extern praxi __assert {l1,l2:addr} ( pf1: !array_v(a?, l1, n) >> array_v(a , l1, n) , pf2: !array_v(a , l2, n) >> array_v(a?!, l2, n) ) : void // end of [__assert] // prval() = __assert(view@(to), view@(from)) // in // nothing end // end of [array_copy] (* ****** ****** *) implement {a}(*tmp*) array_copy_from_list (A, xs) = let // prval() = lemma_list_param(xs) // fun loop {l:addr}{n:nat} .. ( pf: !array_v (a?, l, n) >> array_v (a, l, n) | p0: ptr l, xs: list (a, n) ) : void = ( case+ xs of | list_nil() => let prval () = (pf := array_v_unnil_nil(pf)) in // nothing end // end of [list_nil] | list_cons(x, xs) => let prval (pf1, pf2) = array_v_uncons(pf) val () = !p0 := x val () = loop(pf2 | ptr1_succ(p0), xs) prval () = (pf := array_v_cons(pf1, pf2)) in // nothing end // end of [list_cons] ) (* end of [loop] *) // in loop(view@(A) | addr@(A), xs) end // end of [array_copy_from_list] (* ****** ****** *) implement {a}(*tmp*) array_copy_from_list_vt (A, xs) = let // prval() = lemma_list_vt_param(xs) // fun loop {l:addr}{n:nat} .. ( pf: !array_v(a?, l, n) >> array_v(a, l, n) | p0: ptr l, xs: list_vt (a, n) ) : void = ( case+ xs of | ~list_vt_nil() => let prval () = (pf := array_v_unnil_nil(pf)) // end of [prval] in // nothing end // end of [list_vt_nil] | ~list_vt_cons(x, xs) => let prval (pf1, pf2) = array_v_uncons(pf) val () = !p0 := x val () = loop(pf2 | ptr1_succ(p0), xs) // end of [val] prval () = pf := array_v_cons(pf1, pf2) in // nothing end // end of [list_vt_cons] ) (* end of [loop] *) // in loop(view@(A) | addr@(A), xs) end // end of [array_copy_from_list_vt] (* ****** ****** *) implement {a}(*tmp*) array_copy_to_list_vt (A, n) = res where { // prval() = lemma_array_param(A) // fun loop {l:addr}{n:nat} .. ( pf: !array_v (a, l, n) >> array_v (a?!, l, n) | p0: ptr l, nz: size_t n, res: &ptr? >> list_vt (a, n) ) : void = ( // if nz > 0 then let prval (pf1, pf2) = array_v_uncons(pf) val () = res := list_vt_cons{a}{0}(!p0, _) // end of [val] val+list_vt_cons(_, res1) = res val () = loop(pf2 | ptr1_succ(p0), pred(nz), res1) prval () = (pf := array_v_cons(pf1, pf2)) prval () = fold@ (res) in // nothing end else let prval () = pf := array_v_unnil_nil(pf) in res := list_vt_nil(*void*) // end of [prval] end // end of [if] ) (* end of [loop] *) // var res: ptr val () = loop(view@(A) | addr@(A), n, res) // } // end of [array_copy_to_list_vt] (* ****** ****** *) implement {a}(*tmp*) array_foreach (A, asz) = let var env: void = () in array_foreach_env (A, asz, env) end // end of [array_foreach] implement {a}{env}(*tmp*) array_foreach_env {n0}(A, asz, env) = let // prval() = lemma_array_param(A) // fun loop {l:addr} {n:nat | n <= n0} .. ( pf: !array_v (a, l, n) | p0: ptr l, nz: size_t n, env: &env ) : sizeLte(n0) = let // (* val () = println! ("array_foreach_env: loop") *) // in // if (nz > 0) then let prval ( pf1, pf2 ) = array_v_uncons(pf) val cont = array_foreach$cont(!p0, env) // end of [val] in if cont then let val () = array_foreach$fwork(!p0, env) // end of [val] val res = loop(pf2 | ptr1_succ(p0), pred(nz), env) // end of [val] prval () = (pf := array_v_cons(pf1, pf2)) in res end else let prval () = pf := array_v_cons(pf1, pf2) in (nz) end (* end of [if] *) end else nz(*0*) // end of [if] // end // end of [loop] // val p0 = addr@(A) // val nz = loop(view@(A) | p0, asz, env) // in asz - nz end // end of [array_foreach_env] (* ****** ****** *) // implement {a}{env}(*tmp*) array_foreach$cont (x, env) = true // (* implement {a}{env}(*tmp*) array_foreach$fwork (x, env) = ((*void*)) *) // (* ****** ****** *) implement {a}(*tmp*) array_foreach_funenv {v}{vt} ( pf | A0, asz, fwork, env ) = ( // array_foreach_funenv_tsz {a}{v}{vt}(pf | A0, asz, sizeof, fwork, env) // ) (* end of [array_foreach_funenv] *) (* ****** ****** *) implement {a1,a2}(*tmp*) array_foreach2 (A1, A2, asz) = let var env: void = () in array_foreach2_env (A1, A2, asz, env) end // end of [array_foreach2] implement {a1,a2}{env} array_foreach2_env {n0} (A1, A2, asz, env) = let // prval() = lemma_array_param(A1) // fun loop {l1,l2:addr} {n:nat | n <= n0} .. ( pf1: !array_v(a1, l1, n) , pf2: !array_v(a2, l2, n) | p1: ptr l1, p2: ptr l2, nz: size_t n, env: &env ) : sizeLte(n0) = let // (* // val () = println! ("array_foreach2_env: loop") // *) // in // if (nz > 0) then let prval (pf11, pf12) = array_v_uncons(pf1) prval (pf21, pf22) = array_v_uncons(pf2) val cont = array_foreach2$cont(!p1, !p2, env) // end of [val] in if cont then let val () = array_foreach2$fwork(!p1, !p2, env) val res = loop ( pf12, pf22 | ptr1_succ(p1), ptr1_succ(p2), pred(nz), env ) (* loop *) prval () = pf1 := array_v_cons(pf11, pf12) prval () = pf2 := array_v_cons(pf21, pf22) in res end else let prval () = pf1 := array_v_cons(pf11, pf12) prval () = pf2 := array_v_cons(pf21, pf22) in (nz) end (* end of [if] *) end else nz(*0*) // end // end of [loop] // val nz = loop(view@(A1), view@(A2) | addr@(A1), addr@(A2), asz, env) // in asz - nz end // end of [array_foreach2_env] (* ****** ****** *) implement {a1,a2}{env} array_foreach2$cont (x1, x2, env) = true (* implement {a1,a2}{env} array_foreach2$fwork (x1, x2, env) = ((*void*)) *) (* ****** ****** *) implement {a}(*tmp*) array_iforeach (A, asz) = let var env: void = () in array_iforeach_env (A, asz, env) end // end of [array_iforeach] implement {a}{env}(*tmp*) array_iforeach_env {n0} (A, asz, env) = let // prval() = lemma_array_param(A) // fun loop {l:addr} {n:nat | n <= n0} .. ( pf: !array_v (a, l, n) | p0: ptr l, nz: size_t n, i0: size_t, env: &env ) : sizeLte (n0) = let // (* val () = println! ("array_iforeach_env: loop") *) // in // if (nz > 0) then let prval ( pf1, pf2 ) = array_v_uncons(pf) val cont = array_iforeach$cont(i0, !p0, env) // end of [val in if cont then let val () = array_iforeach$fwork(i0, !p0, env) val res = loop(pf2 | ptr1_succ(p0), pred(nz), succ(i0), env) prval () = pf := array_v_cons{a}(pf1, pf2) in res end else let prval () = pf := array_v_cons(pf1, pf2) in (nz) end (* end of [if] *) end // end of [then] else nz(*0*) // end of [else] // end // end of [loop] // val p0 = addr@(A) val nz = loop(view@(A) | p0, asz, g0int2uint(0), env) // in asz - nz end // end of [array_iforeach_env] (* ****** ****** *) // implement {a}{env}(*tmp*) array_iforeach$cont (i, x, env) = true (* implement {a}{env}(*tmp*) array_iforeach$fwork (i, x, env) = ((*void*)) *) // (* ****** ****** *) implement {a}(*tmp*) array_rforeach (A, asz) = let var env: void = () in array_rforeach_env (A, asz, env) end // end of [array_rforeach] implement {a}{env}(*tmp*) array_rforeach_env {n0} (A, asz, env) = let // prval() = lemma_array_param(A) // fun loop {l:addr} {n:nat | n <= n0} .. ( pf: !array_v (a, l, n) | pz: ptr (l+n*sizeof(a)), nz: size_t n, env: &env ) : sizeLte (n0) = let // (* // val () = println! ("array_rforeach_env: loop") // *) // in // if (nz > 0) then let prval ( pf1, pf2 ) = array_v_unextend(pf) val p1 = ptr1_pred(pz) val (pf2 | p1) = viewptr_match(pf2 | p1) val cont = array_rforeach$cont(!p1, env) in if cont then let val () = array_rforeach$fwork(!p1, env) val res = loop(pf1 | p1, pred(nz), env) prval () = pf := array_v_extend(pf1, pf2) in res end else let prval () = pf := array_v_extend{a}(pf1, pf2) in nz end (* end of [if] *) end else nz(*0*) // end of [if] // end // end of [loop] // val pz = ptr1_add_guint(addr@(A), asz) // val n0 = loop(view@(A) | pz, asz, env) // in asz - n0 end // end of [array_rforeach_env] (* ****** ****** *) // implement {a}{env}(*tmp*) array_rforeach$cont (x, env) = true (* implement {a}{env}(*tmp*) array_rforeach$fwork (x, env) = ((*void*)) *) // (* ****** ****** *) implement {a}(*tmp*) array_initize (A, asz) = let // stadef V = array_v // fun loop {l:addr}{n:nat} .. ( pf: !V (a?, l, n) >> V (a, l, n) | p0: ptr l, nz: size_t n, i0: size_t ) : void = ( if (nz > 0) then let // prval (pf1, pf2) = array_v_uncons(pf) // val () = array_initize$init(i0, !p0) // end of [val] val () = loop(pf2 | ptr1_succ(p0), pred(nz), succ(i0)) // end of [val] // prval () = pf := array_v_cons{a}(pf1, pf2) // in // nothing end else let prval () = pf := array_v_unnil_nil(pf) in // nothing end // end of [if] ) (* end of [loop] *) // prval() = lemma_g1uint_param(asz) // in loop(view@ (A) | addr@(A), asz, g0int2uint(0)) end // end of [array_initize] (* ****** ****** *) implement {a}(*tmp*) array_initize_elt (A, asz, elt) = let // implement {a2}(*tmp*) array_initize$init (i, xi) = xi := $UN.castvwtp0{a2}(elt) // in $effmask_all (array_initize(A, asz)) end // end of [array_initize_elt] (* ****** ****** *) implement {a}(*tmp*) array_initize_list {n} (A, asz, xs) = let // typedef list0 = listGte (a, 0) typedef list1 = listGte (a, 1) // fun loop ( p0: ptr, p1: ptr, xs: list0 ) : void = let // (* // val () = println! ("array_initize_list: loop") // *) // in // if ( p0 < p1 ) then let val xs = $UN.cast{list1}(xs) // end of [val] val+list_cons(x, xs) = xs val () = $UN.ptr0_set(p0, x) // end of [val] val p0 = ptr_succ(p0) in loop(p0, p1, xs) end else () // end of [if] // end // end of [loop] // prval() = lemma_list_param(xs) // val p0 = addr@(A) val p1 = ptr_add(p0, asz) val () = $effmask_all(loop(p0, p1, xs)) // prval() = __assert(A) where { // extern praxi __assert (A: &array(a?, n) >> array(a, n)): void // } (* end of [prval] *) // in // nothing end // end of [array_initize_list] (* ****** ****** *) implement {a}(*tmp*) array_initize_rlist {n} (A, asz, xs) = let // typedef list0 = listGte (a, 0) typedef list1 = listGte (a, 1) // fun loop ( pz: ptr, p0: ptr, xs: list0 ) : void = let // (* // val () = println! ("array_initize_rlist: loop") // *) // in // if pz > p0 then let val xs = $UN.cast{list1}(xs) // end of [val] val+list_cons(x, xs) = xs val pz = ptr_pred(pz) val () = $UN.ptr0_set(pz, x) in loop(pz, p0, xs) end else () // end of [if] // end // end of [loop] // prval() = lemma_list_param(xs) // val p0 = addr@(A) val pz = ptr_add(p0, asz) val () = $effmask_all(loop(pz, p0, xs)) // prval() = __assert(A) where { extern praxi __assert (A: &array(a?, n) >> array(a, n)): void } (* end of [prval] *) // in // nothing end // end of [array_initize_rlist] (* ****** ****** *) implement {a}(*tmp*) array_initize_list_vt {n} (A, asz, xs) = let // vtypedef list0 = listGte_vt (a, 0) vtypedef list1 = listGte_vt (a, 1) // fun loop ( p0: ptr, p1: ptr, xs: list0 ) : void = let // (* val () = println! ("array_initize_list_vt: loop") *) // in // if p0 < p1 then let val xs = $UN.castvwtp0{list1}(xs) // end of [val] val+~list_vt_cons(x, xs) = xs val () = $UN.ptr0_set(p0, x) val p0 = ptr_succ(p0) in loop(p0, p1, xs) end else let prval () = $UN.cast2void (xs) in (*nothing*) end // end of [if] // end // end of [loop] // prval () = lemma_list_vt_param (xs) // val p0 = addr@(A) val p1 = ptr_add(p0, asz) val () = $effmask_all(loop(p0, p1, xs)) // prval() = __assert(A) where { // extern praxi __assert (A: &array(a?, n) >> array(a, n)): void // } (* end of [prval] *) // in // nothing end // end of [array_initize_list_vt] (* ****** ****** *) implement {a}(*tmp*) array_initize_rlist_vt {n} (A, asz, xs) = let // vtypedef list0 = listGte_vt (a, 0) vtypedef list1 = listGte_vt (a, 1) // fun loop ( pz: ptr, p0: ptr, xs: list0 ) : void = let // (* val () = println! ("array_initize_rlist_vt: loop") *) // in // if pz > p0 then let val xs = $UN.castvwtp0{list1}(xs) // end of [val] val+~list_vt_cons(x, xs) = xs val pz = ptr_pred(pz) val () = $UN.ptr0_set(pz, x) in loop(pz, p0, xs) end else let prval () = $UN.cast2void (xs) in (*nothing*) end // end of [if] // end // end of [loop] // prval() = lemma_list_vt_param(xs) // val p0 = addr@(A) val pz = ptr_add(p0, asz) val () = $effmask_all(loop(pz, p0, xs)) // prval() = __assert(A) where { // extern praxi __assert (A: &array(a?, n) >> array(a, n)): void // } (* end of [prval] *) // in // nothing end // end of [array_initize_rlist_vt] (* ****** ****** *) implement {a}(*tmp*) array_uninitize (A, asz) = let // fun loop {l:addr}{n:nat} .. ( pf: !array_v(a, l, n) >> array_v(a?, l, n) | p0: ptr l, nz: size_t n, i0: size_t ) : void = let // (* val () = println! ("array_uninitize: loop") *) // in // if (nz > 0) then let // prval (pf1, pf2) = array_v_uncons(pf) // val () = array_uninitize$clear(i0, !p0) val () = loop(pf2 | ptr_succ(p0), pred(nz), succ(i0)) // prval () = (pf := array_v_cons(pf1, pf2)) // in // nothing end else let prval () = pf := array_v_unnil_nil{a,a?}(pf) in // nothing end // end of [if] // end // end of [loop] // prval() = lemma_array_param(A) // prval pf = view@ (A) // val () = loop(pf | addr@(A), asz, i2sz(0)) // prval () = view@ (A) := pf // in // nothing end // end of [array_uninitize] (* ****** ****** *) implement {a}{b} array_mapto {n}(A, B, n) = let // val pa = addr@(A) val pa2 = ptr_add(pa, n) val pb = addr@(B) // fun loop{la,lb:addr} ( pa: ptr la, pa2: ptr, pb: ptr lb ) : void = ( if pa < pa2 then let val (pfa, fpfa | pa) = $UN.ptr_vtake{a}(pa) val (pfb, fpfb | pb) = $UN.ptr_vtake{b?}(pb) val () = array_mapto$fwork (!pa, !pb) prval () = fpfa(pfa) prval () = fpfb($UN.castview0{(b?)@lb}(pfb)) in loop(ptr_succ(pa), pa2, ptr_succ (pb)) end (* end of [if] *) ) // val () = loop(pa, pa2, pb) prval [lb:addr] EQADDR () = ptr_get_index (pb) prval () = view@(B) := $UN.castview0{array_v (b, lb, n)}(view@(B)) // in // nothing end (* end of [array_mapto] *) (* ****** ****** *) implement {a,b}{c} array_map2to {n}(A, B, C, n) = let // val pa = addr@(A) val pa2 = ptr_add(pa, n) val pb = addr@(B) val pc = addr@(C) // fun loop {la,lb,lc:addr} ( pa: ptr la, pa2: ptr, pb: ptr lb, pc: ptr lc ) : void = ( if pa < pa2 then let val (pfa, fpfa | pa) = $UN.ptr_vtake{a}(pa) val (pfb, fpfb | pb) = $UN.ptr_vtake{b}(pb) val (pfc, fpfc | pc) = $UN.ptr_vtake{c?}(pc) val () = array_map2to$fwork(!pa, !pb, !pc) prval () = fpfa(pfa) prval () = fpfb(pfb) prval () = fpfc($UN.castview0{(c?)@lc}(pfc)) in loop(ptr_succ(pa), pa2, ptr_succ(pb), ptr_succ(pc)) end (* end of [if] *) ) // val () = loop(pa, pa2, pb, pc) // prval [lc:addr] EQADDR() = ptr_get_index (pc) prval () = view@(C) := $UN.castview0{array_v (c, lc, n)}(view@(C)) // in // nothing end (* end of [array_map2to] *) (* ****** ****** *) implement {a}(*tmp*) array_permute (A, asz) = let // prval() = lemma_array_param(A) // fun loop {l:addr}{n:nat} .. ( pf: !array_v(a, l, n) | p0: ptr l, nz: size_t n ) : void = let // (* val () = println! ("array_permute: loop") *) // in // if (nz >= 2) then let val i = array_permute$randint<>(nz) prval(pf1, pf2) = array_v_uncons(pf) // val () = if i > 0 then $UN.ptr0_exch (ptr0_add_guint(p0, i), !p0) // end of [if] val () = loop(pf2 | ptr1_succ(p0), pred(nz)) // prval((*returned*)) = pf := array_v_cons(pf1, pf2) in // nothing end else ((*void*)) // end of [if] // end // end of [loop] // in loop(view@ (A) | addr@(A), asz) end // end of [array_permute] (* ****** ****** *) #include "./SHARE/array_bsearch.dats" #include "./SHARE/array_quicksort.dats" (* ****** ****** *) (* end of [array.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/list_vt.dats0000644000175000017500000006437113431250607021431 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/list_vt.atxt ** Time of generation: Thu Feb 14 11:29:49 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: Feburary, 2012 *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" // (* ****** ****** *) absvtype List0_vt_(a:vt@ype+) = List0_vt(a) (* ****** ****** *) // implement {a}(*tmp*) list_vt_tuple_0() = list_vt_nil() // implement {a}(*tmp*) list_vt_tuple_1(x0) = $list_vt{a}(x0) implement {a}(*tmp*) list_vt_tuple_2(x0, x1) = $list_vt{a}(x0, x1) implement {a}(*tmp*) list_vt_tuple_3(x0, x1, x2) = $list_vt{a}(x0, x1, x2) // implement {a}(*tmp*) list_vt_tuple_4 (x0, x1, x2, x3) = $list_vt{a}(x0, x1, x2, x3) implement {a}(*tmp*) list_vt_tuple_5 (x0, x1, x2, x3, x4) = $list_vt{a}(x0, x1, x2, x3, x4) implement {a}(*tmp*) list_vt_tuple_6 (x0, x1, x2, x3, x4, x5) = $list_vt{a}(x0, x1, x2, x3, x4, x5) // (* ****** ****** *) // implement {a}(*tmp*) list_vt_make_sing(x) = list_vt_cons{a}(x, list_vt_nil()) implement {a}(*tmp*) list_vt_make_pair(x1, x2) = ( list_vt_cons{a} ( x1, list_vt_cons{a}(x2, list_vt_nil()) ) ) (* list_vt_cons *) // (* ****** ****** *) // implement {a}(*tmp*) print_list_vt(xs) = fprint_list_vt(stdout_ref, xs) // implement {a}(*tmp*) prerr_list_vt(xs) = fprint_list_vt(stderr_ref, xs) // (* ****** ****** *) // implement {}(*tmp*) fprint_list_vt$sep (out) = fprint_list$sep<(*none*)>(out) // implement {a}(*tmp*) fprint_list_vt (out, xs) = let // implement(env) list_vt_iforeach$fwork (i, x, env) = let // val () = if (i > 0) then fprint_list_vt$sep<(*none*)>(out) // end of [val] // in fprint_ref(out, x) end // end of [list_iforeach$fwork] // val _(*n*) = list_vt_iforeach(xs) // in // nothing end // end of [fprint_list_vt] implement {a}(*tmp*) fprint_list_vt_sep (out, xs, sep) = let // implement fprint_list_vt$sep<(*none*)> (out) = fprint_string(out, sep) // in fprint_list_vt(out, xs) end // end of [fprint_list_vt_sep] (* ****** ****** *) implement {x}(*tmp*) list_vt_is_nil(xs) = case+ xs of list_vt_nil () => true | _ =>> false // end of [list_vt_is_nil] implement {x}(*tmp*) list_vt_is_cons(xs) = case+ xs of list_vt_cons _ => true | _ =>> false // end of [list_vt_is_cons] implement {x}(*tmp*) list_vt_is_sing (xs) = case+ xs of list_vt_sing (x) => true | _ =>> false // end of [list_vt_is_sing] implement {x}(*tmp*) list_vt_is_pair (xs) = case+ xs of list_vt_pair (x1, x2) => true | _ =>> false // end of [list_vt_is_pair] (* ****** ****** *) implement {}(*tmp*) list_vt_unnil (xs) = let val+~list_vt_nil () = xs in (*nothing*) end // end of [list_vt_unnil] (* ****** ****** *) implement {a}(*tmp*) list_vt_uncons(xs) = let val+~list_vt_cons(x, xs1) = xs in xs := xs1; x end // end of [list_vt_uncons] (* ****** ****** *) implement {a}(*tmp*) list_vt_length(xs) = let // fun loop {i,j:nat} .. ( xs: !list_vt(a, i), j: int j ) :<> int (i+j) = let in // case+ xs of | list_vt_cons (_, xs) => loop(xs, j + 1) | list_vt_nil () => j // end // end of [loop] // prval() = lemma_list_vt_param(xs) // in loop(xs, 0) end // end of [list_vt_length] (* ****** ****** *) implement {x}(*tmp*) list_vt_copy(xs) = let // implement {x2}(*tmp*) list_vt_copylin$copy (x) = $UN.ptr0_get(addr@x) // in $effmask_all(list_vt_copylin(xs)) end // end of [list_vt_copy] implement {x}(*tmp*) list_vt_copylin (xs) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat} .. ( xs: !list_vt(x, n), res: &ptr? >> list_vt(x, n) ) : void = let in // case+ xs of | @list_vt_cons (x, xs1) => let // val x = list_vt_copylin$copy(x) val () = res := list_vt_cons{x}{0}(x, _) val+list_vt_cons(_, res1) = res // val () = loop(xs1, res1) // prval ((*folded*)) = fold@ (xs) prval ((*folded*)) = fold@ (res) // in // nothing end // end of [list_vt_cons] | list_vt_nil() => res := list_vt_nil() // end // end of [loop] // in // let var res: ptr val () = $effmask_all(loop(xs, res)) in res end // end // end of [list_vt_copylin] (* ****** ****** *) implement {x}(*tmp*) list_vt_copylin_fun (xs, f1) = let // implement {x2}(*tmp*) list_vt_copylin$copy (x) = x2 where { // val f2 = $UN.cast{(&RD(x2))->x2}(f1) // val x2 = $effmask_all(f2(x)) // } (* end of [copy] *) // in list_vt_copylin(xs) end // end of [list_vt_copylin_fun] (* ****** ****** *) implement {a}(*tmp*) list_vt_getref_at {n}{i} (xs, i) = let // fun loop { n,i:nat | i <= n } .. ( xs: &list_vt(a, n), i: int i ) :<> Ptr1 = let in // if (i > 0) then res where { val+ @list_vt_cons(_, xs1) = xs val res = loop{n-1,i-1}(xs1, pred(i)) prval ((*folded*)) = fold@ (xs) } (* end of [then] *) else $UN.cast2Ptr1(addr@(xs)) // end // end of [loop] // in // $UN.ptr2cptr{list_vt(a,n-i)}(loop(xs, i)) // end // end of [list_vt_getref_at] (* ****** ****** *) implement {a}(*tmp*) list_vt_get_at {n} (xs, i) = x where { // var xs = __ref (xs) where { extern castfn __ref (xs: !list_vt(a, n)):<> list_vt(a, n) // castfn } // end of [val] // val pi = list_vt_getref_at(xs, i) // val+list_cons(x, _) = $UN.ptr1_get(cptr2ptr(pi)) // prval() = __unref(xs) where { extern praxi __unref(xs: list_vt(a, n)): void } // end of [prval] // } // end of [list_vt_get_at] implement {a}(*tmp*) list_vt_set_at {n}(xs, i, x0) = let // var xs = __ref(xs) where { extern castfn __ref (xs: !list_vt(a, n)):<> list_vt(a, n) // end of [__ref] } (* end of [val] *) // val pi = list_vt_getref_at(xs, i) val (pf, fpf | pi) = $UN.cptr_vtake(pi) // val+@list_vt_cons(x1, xs1) = !pi // val () = x1 := x0 // prval() = fold@(!pi); prval() = fpf(pf) // prval() = let extern praxi __unref (xs: list_vt(a, n)): void in __unref(xs) end // end of [prval] // in // nothing end // end of [list_vt_set_at] (* ****** ****** *) implement {a}(*tmp*) list_vt_exch_at {n}(xs, i, x0) = let // var xs = __ref(xs) where { extern castfn __ref (xs: !list_vt(a, n)):<> list_vt(a, n) } // end of [val] // val pi = list_vt_getref_at(xs, i) val (pf, fpf | pi) = $UN.cptr_vtake(pi) val+@list_vt_cons(x1, xs1) = !pi // val t = x1 val () = x1 := x0 val () = x0 := t prval() = fold@(!pi); prval() = fpf(pf) // prval() = __unref(xs) where { extern praxi __unref (xs: list_vt(a, n)): void } // end of [prval] // in // nothing end // end of [list_vt_exch_at] (* ****** ****** *) implement {a}(*tmp*) list_vt_insert_at {n} (xs, i, x) = let // val pi = list_vt_getref_at(xs, i) val xs_i = $UN.cptr_get(pi) val xs1_i = list_vt_cons(x, xs_i) val () = $UN.ptr1_set(cptr2ptr(pi), xs1_i) // prval() = __assert(xs) where { extern praxi __assert(xs: &list_vt(a, n) >> list_vt(a, n+1)): void } // end of [prval] in // nothing end // end of [list_vt_insert_at] (* ****** ****** *) implement {a}(*tmp*) list_vt_takeout_at {n} (xs, i) = x1 where { // val pi = list_vt_getref_at(xs, i) val xs_i = $UN.cptr_get(pi) val+~list_vt_cons(x1, xs1_i) = xs_i val () = $UN.ptr1_set (cptr2ptr(pi), xs1_i) // prval() = __assert(xs) where { extern praxi __assert(xs: &list_vt(a, n) >> list_vt(a, n-1)): void } (* end of [prval] *) // } // end of [list_vt_takeout_at] (* ****** ****** *) // implement {a}(*tmp*) list_vt_copy(xs) = list_copy($UN.list_vt2t(xs)) // (* ****** ****** *) implement {a}(*tmp*) list_vt_free(xs) = let // implement (a2:t0p) list_vt_freelin$clear (x) = let prval () = topize(x) in (*void*) end // end of [list_vt_freelin$clear] // in list_vt_freelin(xs) end // end of [list_vt_free] (* ****** ****** *) implement {a}(*tmp*) list_vt_freelin$clear (x) = gclear_ref(x) implement {a}(*tmp*) list_vt_freelin(xs) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat} .. ( xs: list_vt(a, n) ) : void = ( case+ xs of | ~list_vt_nil () => ((*void*)) // list_vt_nil | @list_vt_cons (x, xs1) => let val () = list_vt_freelin$clear(x) val xs1 = xs1 val ((*freed*)) = free@{a}{0}(xs) in loop(xs1) end // end of [list_vt_cons] ) (* end of [loop] *) // in loop(xs) end // end of [list_vt_freelin] (* ****** ****** *) implement {a}(*tmp*) list_vt_freelin_fun (xs, f1) = let // implement {a2}(*tmp*) list_vt_freelin$clear (x) = () where { // val f2 = $UN.cast{(&a2 >> _?) -> void}(f1) // val ((*void*)) = $effmask_all(f2(x)) // } (* end of [clear] *) // in list_vt_freelin(xs) end // end of [list_vt_freelin_fun] (* ****** ****** *) // implement {a}(*tmp*) list_vt_uninitize {n}(xs) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat} .. ( xs: !list_vt(a, n) >> list_vt(a?, n) ) : void = ( case+ xs of | @list_vt_nil () => fold@{a?}(xs) // end of [list_vt_nil] | @list_vt_cons (x, xs1) => let val () = list_vt_uninitize$clear(x) val () = loop(xs1) prval ((*folded*)) = fold@{a?}(xs) in // nothing end // end of [list_vt_cons] ) (* end of [loop] *) // in loop(xs) end // end of [list_vt_uninitize] // implement {a}(*tmp*) list_vt_uninitize$clear(x) = gclear_ref(x) // (* ****** ****** *) implement {a}(*tmp*) list_vt_append {m,n}(xs, ys) = let // prval() = lemma_list_vt_param(xs) prval() = lemma_list_vt_param(ys) // fun loop {m:nat} .. ( xs: &list_vt(a, m) >> list_vt(a, m+n), ys: list_vt(a, n) ) : void = let in // case+ xs of | ~list_vt_nil () => (xs := ys) // end of [list_vt_nil] | @list_vt_cons (x, xs1) => let val () = loop(xs1, ys); prval() = fold@(xs) in (*none*) end // end of [list_vt_cons] // end (* end of [loop] *) // var res = xs // in let val () = loop(res, ys) in res end end // end of [list_vt_append] (* ****** ****** *) implement {a}(*tmp*) list_vt_extend (xs, y) = list_vt_append(xs, cons_vt{a}(y, nil_vt())) // end of [list_vt_extend] (* ****** ****** *) implement {a}(*tmp*) list_vt_unextend (xs) = let // fun loop {n:pos} .. ( xs: &list_vt(a, n) >> list_vt(a, n-1) ) : (a) = let // val+@list_vt_cons(x, xs1) = xs // in // case+ xs1 of | list_vt_nil() => let val x = x val xs1 = xs1 val () = free@{a}{0}(xs) in xs := xs1; x end // end of [list_vt_nil] | list_vt_cons _ => let val x = loop(xs1) prval() = fold@ (xs) in (x) end // end of [list_vt_cons] // end // end of [loop] // in loop(xs) end // end of [list_vt_unextend] (* ****** ****** *) implement {a}(*tmp*) list_vt_reverse (xs) = list_vt_reverse_append(xs, list_vt_nil(*void*)) (* ****** ****** *) implement {a}(*tmp*) list_vt_reverse_append (xs, ys) = let // prval() = lemma_list_vt_param(xs) prval() = lemma_list_vt_param(ys) // fun loop {m,n:nat} .. ( xs: list_vt(a, m), ys: list_vt(a, n) ) : list_vt(a, m+n) = ( case+ xs of | ~list_vt_nil () => ys // list_vt_nil | @list_vt_cons (_, xs1) => let val xs1_ = xs1 val () = xs1 := ys; prval() = fold@ (xs) in loop(xs1_, xs) end // end of [cons] ) (* end of [loop] *) // in loop(xs, ys) end // end of [list_vt_reverse_append] (* ****** ****** *) implement {x}(*tmp*) list_vt_split_at (xs, i) = let // fun loop {n:int} {i:nat | i <= n} .. ( xs: &list_vt(x, n) >> list_vt(x, i), i: int i ) : list_vt(x, n-i) = ( if i > 0 then let // val+@cons_vt(x, xs1) = xs // val res = loop(xs1, i-1) prval ((*folded*)) = fold@ (xs) // in res end else let val res = xs val () = xs := list_vt_nil((*void*)) in res end // end of [if] ) // end of [loop] // var xs = xs val res = loop(xs, i) // in (xs, res) end // end of [list_split_vt_at] (* ****** ****** *) (* implement {a}(*tmp*) list_vt_concat (xss) = let // viewtypedef VT = List_vt(a) viewtypedef VT0 = List0_vt(a) // fun loop {n:nat} .. ( res: VT, xss: list_vt(VT, n) ) : VT0 = let in case+ xss of | ~list_vt_cons (xs, xss) => let val res = list_vt_append(xs, res) in loop(res, xss) end // end of [list_vt_cons] | ~list_vt_nil() => let prval() = lemma_list_vt_param(res) in res end // end of [list_vt_nil] end (* end of [loop] *) // val xss = list_vt_reverse(xss) // prval() = lemma_list_vt_param(xss) // in // case+ xss of | ~list_vt_cons (xs, xss) => loop(xs, xss) | ~list_vt_nil() => list_vt_nil() // end // end of [list_vt_concat] *) (* ****** ****** *) implement {a}(*tmp*) list_vt_concat (xss) = let // fun last(res: ptr): ptr = let // val xs0 = $UN.ptr0_get(res) // in // case+ xs0 of | list_vt_nil () => res where { prval () = $UN.cast2void(xs0) } | @list_vt_cons (x0, xs1) => let val res = addr@xs1 prval () = fold@(xs0) prval () = $UN.cast2void(xs0) in last(res) end // end of [list_vt_cons] // end // end of [last] // fun loop ( res: ptr, xss: List_vt(List_vt(a))) : void = ( case+ xss of | ~list_vt_nil() => () | ~list_vt_cons(xs, xss) => loop(last(res), xss) where { val () = $UN.ptr0_set(res, xs) } ) // var res0: List0_vt(a) = list_vt_nil() // in $effmask_all(loop(addr@res0, xss)); res0 end // end of [list_vt_concat] (* ****** ****** *) implement {a}(*tmp*) list_vt_filter(xs) = let // implement list_vt_filterlin$pred (x) = list_vt_filter$pred(x) implement list_vt_filterlin$clear (x) = let prval () = topize (x) in (*void*) end // end of [list_vt_filterlin$clear] // in list_vt_filterlin(xs) end // end of [list_vt_filter] (* ****** ****** *) implement {a}(*tmp*) list_vt_filterlin(xs) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat} .. ( xs: &list_vt(a, n) >> listLte_vt(a, n) ) : void = let in // case+ xs of | @list_vt_nil () => fold@ (xs) // list_vt_nil | @list_vt_cons (x, xs1) => let val test = list_vt_filterlin$pred(x) // end of [val] in if test then let val () = loop(xs1) in fold@ (xs) end else let val xs1 = xs1 val () = list_vt_filterlin$clear(x) val ((*freed*)) = free@{a}{0}(xs) in let val () = xs := xs1 in loop(xs) end end // end of [if] end // end of [list_vt_cons] // end // end of [loop] // in let var xs = xs in loop(xs); xs end end // end of [list_vt_filterlin] (* ****** ****** *) // implement {a}(*tmp*) list_vt_filterlin$clear(x) = gclear_ref(x) (* ****** ****** *) implement {a}(*tmp*) list_vt_separate (xs, n1) = res2 where { // prval() = lemma_list_vt_param(xs) // fun loop {k,n:nat} .. ( xs: list_vt(a, n) , n1: &int(k) >> int(n1+k) , res1: &ptr? >> list_vt(a, n1) , res2: &ptr? >> list_vt(a, n2) ) : #[n1,n2:nat | n1+n2==n] void = ( // case+ xs of | ~list_vt_nil() => ( res1 := list_vt_nil(); res2 := list_vt_nil(); ) (* end of [list_vt_nil] *) | @list_vt_cons (x, xs_tl) => let val xs_tl_ = xs_tl val test = list_vt_separate$pred(x) // end of [val] in if test then let val () = n1 := n1+1 val () = res1 := xs val () = loop(xs_tl_, n1, xs_tl, res2) in fold@(res1) end else let val () = res2 := xs val () = loop(xs_tl_, n1, res1, xs_tl) in fold@(res2) end // end of [if] end // end of [list_vt_cons] // ) (* end of [loop] *) // var res1: ptr var res2: ptr // val () = n1 := 0 val () = loop(xs, n1, res1, res2) val () = xs := res1 // } (* end of [list_vt_separate] *) (* ****** ****** *) implement {a}(*tmp*) list_vt_take_until (xs, n1) = res1 where { // prval() = lemma_list_vt_param(xs) // fun loop {k,n:nat} .. ( xs: list_vt(a, n) , n1: &int(k) >> int(n1+k) , res1: &ptr? >> list_vt(a, n1) , res2: &ptr? >> list_vt(a, n2) ) : #[n1,n2:nat | n1+n2==n] void = ( // case+ xs of | ~list_vt_nil() => ( res1 := list_vt_nil(); res2 := list_vt_nil(); ) (* end of [list_vt_nil] *) | @list_vt_cons (x, xs_tl) => let val test = list_vt_take_until$pred(x) // end of [val] in if test then let val () = res1 := list_vt_nil val () = res2 := xs in fold@(res2) // folded end else let val xs_tl_ = xs_tl val () = n1 := n1+1 val () = res1 := xs val () = loop(xs_tl_, n1, xs_tl, res2) in fold@(res1) // folded end // end of [if] end // end of [list_vt_cons] // ) (* end of [loop] *) // var res1: ptr var res2: ptr // val () = n1 := 0 val () = loop(xs, n1, res1, res2) val () = xs := res2 // } (* end of [list_vt_take_until] *) (* ****** ****** *) implement {a}(*tmp*) list_vt_app (xs) = loop(xs) where { // fun loop ( xs: !List_vt(a) ) : void = ( case+ xs of | @list_vt_cons (x, xs1) => { val () = list_vt_app$fwork(x) val () = loop(xs1) prval ((*folded*)) = fold@(xs) } (* end of [cons] *) | list_vt_nil((*void*)) => () ) // } // end of [list_vt_app] implement {a}(*tmp*) list_vt_appfree (xs) = loop(xs) where { fun loop ( xs: List_vt(a) ) : void = ( // case+ xs of | @list_vt_cons (x, xs1) => loop(xs1) where { val xs1 = xs1 val () = list_vt_appfree$fwork(x) val ((*freed*)) = free@{a}{0}(xs) } (* end of [cons] *) | ~list_vt_nil((*void*)) => () // ) (* end of [loop] *) } // end of [list_vt_appfree] (* ****** ****** *) implement {a}(*tmp*) list_vt_iapp (xs) = loop(0, xs) where { // fun loop ( i0: intGte(0), xs: !List_vt(a) ) : void = ( case+ xs of | @list_vt_cons (x, xs1) => { val () = list_vt_iapp$fwork(i0, x) val () = loop(i0+1, xs1) prval ((*folded*)) = fold@(xs) } (* end of [cons] *) | list_vt_nil((*void*)) => ((*void*)) ) // } // end of [list_vt_iapp] implement {a}(*tmp*) list_vt_iappfree (xs) = loop(0, xs) where { fun loop ( i0: intGte(0), xs: List_vt(a) ) : void = ( // case+ xs of | @list_vt_cons (x, xs1) => loop(i0+1, xs1) where { val xs1 = xs1 val () = list_vt_iappfree$fwork(i0, x) val ((*freed*)) = free@{a}{0}(xs) } (* end of [cons] *) | ~list_vt_nil((*void*)) => ((*void*)) // ) (* end of [loop] *) } // end of [list_vt_iappfree] (* ****** ****** *) implement {a}{b} list_vt_map (xs) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat} .. ( xs: !list_vt(a, n) , res: &ptr? >> list_vt(b, n) ) : void = let in case+ xs of | list_vt_nil() => (res := list_vt_nil()) // end of [list_vt_nil] | @list_vt_cons (x, xs1) => let val y = list_vt_map$fopr(x) // end of [val] val () = res := list_vt_cons{b}{0}(y, _) val+list_vt_cons(_, res1) = res val () = loop(xs1, res1) prval ((*folded*)) = fold@ (xs) prval ((*folded*)) = fold@ (res) in // nothing end // end of [list_vt_cons] end // end of [loop] // in let var res: ptr in loop(xs, res); res end end // end of [list_vt_map] (* ****** ****** *) implement {a}{b} list_vt_mapfree (xs) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat} .. ( xs: list_vt(a, n) , res: &ptr? >> list_vt(b, n) ) : void = let in case+ xs of | @list_vt_cons (x, xs1) => let val y = list_vt_mapfree$fopr(x) val xs1_val = xs1 val ((*freed*)) = free@{a}{0}(xs) val () = res := list_vt_cons{b}{0}(y, _) val+list_vt_cons(_, res1) = res val () = loop(xs1_val, res1) prval ((*folded*)) = fold@(res) in // nothing end // end of [list_vt_cons] | ~list_vt_nil() => (res := list_vt_nil()) end // end of [loop] // in let var res: ptr in loop(xs, res); res end end // end of [list_vt_mapfree] (* ****** ****** *) implement {x}(*tmp*) list_vt_foreach (xs) = let var env: void = () in list_vt_foreach_env (xs, env) end // end of [list_vt_foreach] implement {x}{env} list_vt_foreach_env (xs, env) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat} .. ( xs: !list_vt(x, n), env: &env ) : void = let in // case+ xs of | @list_vt_cons (x, xs1) => let val test = list_vt_foreach$cont(x, env) // end of [val] in if test then let val () = list_vt_foreach$fwork(x, env) val () = loop(xs1, env) prval ((*void*)) = fold@ (xs) in // nothing end else let prval ((*void*)) = fold@ (xs) in (*nothing*) end // end of [if] end // end of [cons] | list_vt_nil((*void*)) => () // end // end of [loop] // in loop(xs, env) end // end of [list_vt_foreach_env] (* ****** ****** *) implement {x}{env} list_vt_foreach$cont(x, env) = true (* ****** ****** *) implement {a}(*tmp*) list_vt_foreach_funenv {v}{vt}{fe} (pf | xs, f0, env) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat} .. ( pf: !v | xs: !list_vt(a, n) , f0: (!v | &a, !vt) - void , env: !vt ) : void = case+ xs of | @list_vt_cons (x, xs1) => let val () = f0 (pf | x, env) val () = loop(pf | xs1, f0, env) in fold@ (xs) end // end of [cons] | list_vt_nil ((*void*)) => () // end of [loop] // in loop(pf | xs, f0, env) end // end of [list_vt_foreach_funenv] (* ****** ****** *) implement {x}(*tmp*) list_vt_iforeach (xs) = let var env: void = () in list_vt_iforeach_env (xs, env) end // end of [list_vt_iforeach] implement {x}{env} list_vt_iforeach_env (xs, env) = let // prval() = lemma_list_vt_param(xs) // fun loop {n:nat}{i:nat} .. ( i: int i, xs: !list_vt(x, n), env: &env ) : intBtwe(i, n+i) = let in case+ xs of | @list_vt_cons (x, xs1) => let val test = list_vt_iforeach$cont (i, x, env) // end of [val] in if test then let val () = list_vt_iforeach$fwork (i, x, env) // end of [val] val i = loop(succ(i), xs1, env) prval ((*folded*)) = fold@ (xs) in i // the number of processed elements end else let prval ((*folded*)) = fold@ (xs) in i // the number of processed elements end // end of [if] end // end of [cons] | list_vt_nil ((*void*)) => (i) // |processed-elements| end // end of [loop] // in loop(0, xs, env) end // end of [list_vt_iforeach_env] (* ****** ****** *) implement {x}{env} list_vt_iforeach$cont(i, x, env) = true (* ****** ****** *) #include "./SHARE/list_vt_mergesort.dats" #include "./SHARE/list_vt_quicksort.dats" (* ****** ****** *) implement {a}(*tmp*) streamize_list_vt_elt (xs) = let // fun auxmain ( xs: List_vt(a) ) : stream_vt(a) = $ldelay ( // ( case+ xs of | ~list_vt_nil () => stream_vt_nil() | ~list_vt_cons (x, xs) => stream_vt_cons(x, auxmain(xs)) ) : stream_vt_con(a) // , // list_vt_freelin(xs) ) (* end of [auxmain] *) // in $effmask_all(auxmain(xs)) end (* end of [streamize_list_vt_elt] *) (* ****** ****** *) implement {a,b}(*tmp*) streamize_list_vt_zip (xs, ys) = auxmain(xs, ys) where { // fun auxmain: $d2ctype ( streamize_list_vt_zip ) = lam ( xs, ys ) => $ldelay ( ( case+ xs of | ~list_vt_nil() => ( stream_vt_nil() ) where { val+~list_vt_nil() = ys } | ~list_vt_cons(x, xs) => ( case+ ys of (* | ~list_vt_nil() => let var x = x val () = list_vt_freelin$clear(x) in list_vt_freelin(xs); stream_vt_nil() end // end of [list_vt_nil] *) | ~list_vt_cons(y, ys) => ( stream_vt_cons((x, y), auxmain(xs, ys)) ) ) (* end of [list_vt_cons] *) ) , (list_vt_freelin(xs); list_vt_freelin(ys)) ) (* end of [$ldelay] *) // } (* end of [streamize_list_vt_zip] *) (* ****** ****** *) implement {tk}(*tmp*) listize_g0int_rep (i0, base) = let // fun loop{i:int} ( i0: g1int(tk, i), res: List0_vt(int) ) : List0_vt(int) = ( if isgtz(i0) then loop ( ndiv_g1int_int1(i0, base) , list_vt_cons(nmod_g1int_int1(i0, base), res) ) (* end of [then] *) else res // end-of-else ) // in // $UN.castvwtp0 ( $effmask_all(loop(g1ofg0_int(i0), list_vt_nil(*void*))) ) (* $UN.castvwtp0 *) // end // end of [listize_g0int_rep] (* ****** ****** *) implement {a}(*tmp*) list_vt_permute {n}(xs) = xs where { // prval() = lemma_list_vt_param(xs) // fun loop1 {n:nat} .. ( p0: ptr, xs: !list_vt(a, n) ) : void = ( case+ xs of | list_vt_nil () => ((*void*)) // list_vt_nil | list_vt_cons (_, xs_tl) => let val () = $UN.ptr0_set (p0, $UN.castvwtp1{ptr}(xs)) // end of [val] in loop1(ptr_succ(p0), xs_tl) end // end of [loop1] ) // val n0 = i2sz(list_vt_length(xs)) // val A0 = arrayptr_make_uninitized(n0) val () = loop1(ptrcast(A0), xs) val xs = $UN.castvwtp0{ptr}(xs) val A0 = $UN.castvwtp0{arrayptr(ptr,n)}(A0) // local // implement array_permute$randint<>(n) = i2sz(list_vt_permute$randint<>(sz2i(n))) // in (* in-of-local *) // val (pf | p0) = arrayptr_takeout_viewptr{ptr}(A0) // val ((*void*)) = array_permute(!p0, n0) // prval ((*void*)) = arrayptr_addback{ptr}(pf | A0) // end // end of [local] // fun loop2 {i:nat|i <= n} .. ( pz: ptr, i0: size_t(i), res: list_vt(a, n-i) ) : list_vt(a, n) = ( // if (i0 > 0) then let // val pz = ptr_pred(pz) val xs = $UN.ptr0_get< list_vt_cons_pstruct(a,ptr?)>(pz) // val+ list_vt_cons(_, xs_tl) = xs // val () = (xs_tl := res) prval((*folded*)) = fold@(xs) // in loop2(pz, pred(i0), xs(*res*)) end // end of [then] else res // end of [else] // ) (* end of [loop2] *) // val pz = ptr_add(ptrcast(A0), n0) val xs = loop2(pz, n0, list_vt_nil(*void*)) // val ((*freed*)) = arrayptr_free{ptr}(A0) // } (* end of [list_vt_permute] *) (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/matrix.dats0000644000175000017500000002150613431250607021242 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/matrix.atxt ** Time of generation: Thu Feb 14 11:29:51 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement{a} matrix_getref_at_int (M, i, n, j) = $UN.cast{cPtr1(a)}(ptr_add (addr@(M), i*n+j)) // end of [matrix_getref_at_int] implement{a} matrix_getref_at_size (M, i, n, j) = $UN.cast{cPtr1(a)}(ptr_add (addr@(M), i*n+j)) // end of [matrix_getref_at_size] (* ****** ****** *) implement{a} matrix_get_at_int (M, i, n, j) = $UN.cptr_get (matrix_getref_at_int (M, i, n, j)) // end of [matrix_get_at_int] implement{a} matrix_set_at_int (M, i, n, j, x) = $UN.cptr_set (matrix_getref_at_int (M, i, n, j), x) // end of [matrix_set_at_int] implement{a} matrix_exch_at_int (M, i, n, j, x) = $UN.cptr_exch (matrix_getref_at_int (M, i, n, j), x) // end of [matrix_exch_at_int] (* ****** ****** *) implement{a} matrix_get_at_size (M, i, n, j) = $UN.cptr_get (matrix_getref_at_size (M, i, n, j)) // end of [matrix_get_at_size] implement{a} matrix_set_at_size (M, i, n, j, x) = $UN.cptr_set (matrix_getref_at_size (M, i, n, j), x) // end of [matrix_set_at_size] implement{a} matrix_exch_at_size (M, i, n, j, x) = $UN.cptr_exch (matrix_getref_at_size (M, i, n, j), x) // end of [matrix_exch_at_size] (* ****** ****** *) implement{a} matrix_ptr_alloc (row, col) = let // val ( pfarr, pfgc | p ) = array_ptr_alloc (row*col) // prval pfmat = array2matrix_v(pfarr) // in @(pfmat, pfgc | p) end // end of [matrix_ptr_alloc] (* ****** ****** *) implement{} matrix_ptr_free {a}(pfmat, pfgc | p) = let // prval pfarr = matrix2array_v{a?}(pfmat) // in array_ptr_free (pfarr, pfgc | p) end // end of [matrix_ptr_free] (* ****** ****** *) implement{a} matrix_ptr_tabulate (row, col) = let // val (pf, pfgc | p) = matrix_ptr_alloc (row, col) // implement matrix_initize$init (i, j, x) = x := matrix_tabulate$fopr (i, j) // val () = matrix_initize (!p, row, col) // in @(pf, pfgc | p) end // end of [matrix_ptr_tabulate] (* ****** ****** *) implement{} fprint_matrix$sep1 (out) = fprint (out, ", ") implement{} fprint_matrix$sep2 (out) = fprint (out, "; ") implement{a} fprint_matrix_int (out, M, m, n) = let // prval () = lemma_matrix_param (M) // in fprint_matrix_size (out, M, i2sz(m), i2sz(n)) end // end of [fprint_matrix_int] implement{a} fprint_matrix_size {m,n} (out, M, m, n) = let // implement fprint_array$sep<> (out) = fprint_matrix$sep1 (out) // fun loop {l:addr} ( out: FILEref, p0: ptr l, m: size_t m, n: size_t n, i: size_t ) : void = let in // if i < m then let val () = ( if i > 0 then fprint_matrix$sep2 (out) ) : void // end of [val] val ( pf, fpf | p0 ) = $UN.ptr_vtake{array(a,n)}(p0) val () = fprint_array (out, !p0, n) prval () = fpf (pf) in loop (out, ptr_add (p0, n), m, n, succ(i)) end else () // end of [if] // end // end of [loop] // in loop (out, addr@ (M), m, n, i2sz(0)) end // end of [fprint_matrix_size] (* ****** ****** *) implement{a} fprint_matrix_sep ( out, M, m, n, sep1, sep2 ) = let // implement fprint_matrix$sep1<> (out) = fprint (out, sep1) implement fprint_matrix$sep2<> (out) = fprint (out, sep2) // in fprint_matrix_size (out, M, m, n) end // end of [fprint_matrix_sep] (* ****** ****** *) // implement {}(*tmp*) matrix_foreach$rowsep() = () // implement{a} matrix_foreach (A, m, n) = let // var env: void = () // in matrix_foreach_env (A, m, n, env) end // end of [matrix_foreach] // (* implement {a}{env} matrix_foreach_env (A, m, n, env) = let // implement array_foreach$cont (x, env) = true implement array_foreach$fwork (x, env) = matrix_foreach$fwork (x, env) // val p = addr@(A) prval pf = matrix2array_v{a}(view@(A)) // val _(*mn*) = array_foreach_env (!p, m*n, env) prval ((*void*)) = view@(A) := array2matrix_v{a}(pf) // in // nothing end // end of [matrix_foreach_env] *) // implement {a}{env} matrix_foreach_env {m,n}(M, m, n, env) = let // prval () = lemma_matrix_param(M) // fnx loop1 ( p: ptr , i: sizeLte(m), env: &env >> _ ) : void = ( // if i < m then loop2(p, i, i2sz(0), env) where { val () = if i > 0 then matrix_foreach$rowsep() // end of [val] } // ) (* end of [loop1] *) // and loop2 ( p: ptr , i: sizeLt(m), j: sizeLte(n), env: &env >> _ ) : void = ( // if j < n then let // val (pf, fpf | p) = $UN.ptr_vtake{a}(p) // val ((*void*)) = matrix_foreach$fwork(!p, env) // prval ((*void*)) = fpf(pf) // in loop2(ptr_succ(p), i, succ(j), env) end // end of [then] else loop1(p, succ(i), env) // end of [else] // ) (* end of [loop2] *) // in loop1(addr@M, i2sz(0), env) end // end of [matrix_foreach_env] // (* ****** ****** *) implement{a} matrix_foreachrow (A, m, n) = let // var env: void = () // in matrix_foreachrow_env (A, m, n, env) end // end of [matrix_foreachrow] implement {a}{env} matrix_foreachrow_env {m,n}(M, m, n, env) = let // prval () = lemma_matrix_param(M) // fun loop ( p: ptr, i: sizeLte(m), env: &env >> _ ) : void = ( // if i < m then let // val (pf, fpf | p) = $UN.ptr_vtake{@[a][n]}(p) val () = matrix_foreachrow$fwork(!p, n, env) prval ((*void*)) = fpf(pf) // in loop(ptr_add(p, n), succ(i), env) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // in loop(addr@M, i2sz(0), env) end // end of [matrix_foreachrow_env] (* ****** ****** *) implement{a} matrix_initize (M, m, n) = let // infixl (/) % #define % g0uint_mod // implement array_initize$init (ij, x) = let in matrix_initize$init (ij/n, ij%n, x) end // end of [array_initize$init] // val p = addr@(M) prval pf = matrix2array_v{a?}(view@(M)) val () = array_initize (!p, m * n) prval () = view@(M) := array2matrix_v{a}(pf) // in // nothing end // end of [matrix_initize] (* ****** ****** *) implement{a} matrix_uninitize (M, m, n) = let // infixl (/) % #define % g0uint_mod // implement array_uninitize$clear (ij, x) = let in matrix_uninitize$clear (ij/n, ij%n, x) end // end of [array_uninitize$clear] // val p = addr@(M) prval pf = matrix2array_v{a}(view@(M)) val () = array_uninitize (!p, m * n) prval () = view@(M) := array2matrix_v{a?}(pf) // in // nothing end // end of [matrix_uninitize] (* ****** ****** *) implement {a}{b} matrix_mapto {m,n} (A, B, m, n) = let // val pA = addr@(A) val pB = addr@(B) // prval pfA = matrix2array_v{a}(view@(A)) prval pfB = matrix2array_v{b?}(view@(B)) // local // implement array_mapto$fwork (x, y) = matrix_mapto$fwork (x, y) // in (* in of [local] *) // val ((*void*)) = array_mapto (!pA, !pB, m*n) // end // end of [local] // prval () = view@(A) := array2matrix_v {a}{..}{m,n} (pfA) prval () = view@(B) := array2matrix_v {b}{..}{m,n} (pfB) // in // nothing end (* end of [matrix_mapto] *) (* ****** ****** *) implement {a,b}{c} matrix_map2to {m,n} (A, B, C, m, n) = let // val pA = addr@(A) val pB = addr@(B) val pC = addr@(C) // prval pfA = matrix2array_v{a}(view@(A)) prval pfB = matrix2array_v{b}(view@(B)) prval pfC = matrix2array_v{c?}(view@(C)) // local // implement array_map2to$fwork (x, y, z) = matrix_map2to$fwork (x, y, z) // in (* in of [local] *) // val ((*void*)) = array_map2to (!pA, !pB, !pC, m*n) // end // end of [local] // prval () = view@(A) := array2matrix_v {a}{..}{m,n} (pfA) prval () = view@(B) := array2matrix_v {b}{..}{m,n} (pfB) prval () = view@(C) := array2matrix_v {c}{..}{m,n} (pfC) // in // nothing end (* end of [matrix_map2to] *) (* ****** ****** *) (* end of [matrix.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/gprint.dats0000644000175000017500000001353513431250607021244 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gprint.atxt ** Time of generation: Thu Feb 14 11:29:51 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2012 *) (* ****** ****** *) implement {}(*tmp*) gprint$out() = stdout_ref (* ****** ****** *) implement {}(*tmp*) gprint_flush() = fileref_flush(gprint$out<>()) (* ****** ****** *) implement {}(*tmp*) gprint_newline() = let // val out = gprint$out<>() in fprint_newline(out) // end // end of [gprint_newline] (* ****** ****** *) implement {a}(*tmp*) gprint_val(x) = let // val out = gprint$out<>() in fprint_val(out, x) // end // end of [gprint_val] (* ****** ****** *) implement {a}(*tmp*) gprint_ref(x) = let // val out = gprint$out<>() in fprint_ref(out, x) // end // end of [gprint_ref] (* ****** ****** *) // implement {}(*tmp*) gprint_int(x) = fprint_val(gprint$out<>(), x) implement {}(*tmp*) gprint_bool(x) = fprint_val (gprint$out<>(), x) implement {}(*tmp*) gprint_char(x) = fprint_val(gprint$out<>(), x) implement {}(*tmp*) gprint_float(x) = fprint_val(gprint$out<>(), x) implement {}(*tmp*) gprint_double(x) = fprint_val(gprint$out<>(), x) implement {}(*tmp*) gprint_string(x) = fprint_val(gprint$out<>(), x) // implement gprint_val(x) = gprint_int(x) implement gprint_val(x) = gprint_char(x) implement gprint_val(x) = gprint_float(x) implement gprint_val(x) = gprint_double(x) implement gprint_val(x) = gprint_string(x) // (* ****** ****** *) // implement {}(*tmp*) gprint_list$beg() = gprint_string "(" implement {}(*tmp*) gprint_list$end() = gprint_string ")" implement {}(*tmp*) gprint_list$sep() = gprint_string ", " // (* ****** ****** *) // implement {a}(*tmp*) gprint_list (xs) = let // typedef tenv = int // implement list_foreach$fwork (x, env) = let val () = if env > 0 then gprint_list$sep<>() // end of [if] val () = env := succ (env) in gprint_val(x) end // end of [list_foreach$fwork] // var env: tenv = 0 val () = gprint_list$beg<>() val () = list_foreach_env(xs, env) val () = gprint_list$end<>() // in // nothing end // end of [gprint_list] // implement (a)(*tmp*) gprint_val(xs) = gprint_list(xs) // (* ****** ****** *) // implement {}(*tmp*) gprint_listlist$beg1() = gprint_string "(" implement {}(*tmp*) gprint_listlist$end1() = gprint_string ")" implement {}(*tmp*) gprint_listlist$sep1() = gprint_string ", " // implement {}(*tmp*) gprint_listlist$beg2() = gprint_string "(" implement {}(*tmp*) gprint_listlist$end2() = gprint_string ")" implement {}(*tmp*) gprint_listlist$sep2() = gprint_string ", " // (* ****** ****** *) // implement {a}(*tmp*) gprint_listlist (xss) = let // typedef xs = List(a) // implement gprint_val(xs) = let // implement gprint_list$beg<>() = gprint_listlist$beg2<>() implement gprint_list$end<>() = gprint_listlist$end2<>() implement gprint_list$sep<>() = gprint_listlist$sep2<>() // in gprint_list(xs) end // end of [gprint_val] // implement gprint_list$beg<>() = gprint_listlist$beg1<>() implement gprint_list$end<>() = gprint_listlist$end1<>() implement gprint_list$sep<>() = gprint_listlist$sep1<>() // in gprint_list(xss) end // end of [gprint_listlist] // (* ****** ****** *) // implement {}(*tmp*) gprint_array$beg() = gprint_string "(" implement {}(*tmp*) gprint_array$end() = gprint_string ")" implement {}(*tmp*) gprint_array$sep() = gprint_string ", " // (* ****** ****** *) implement {a}(*tmp*) gprint_array (A, n) = () where { // typedef tenv = size_t // implement (env)(*tmp*) array_iforeach$fwork (i, x, env) = gprint_ref(x) where { val () = if i > 0 then gprint_array$sep<>() // end of [if] } (* array_iforeach$fwork *) // var env: void = () // val () = gprint_array$beg<>() val _(*asz*) = array_iforeach(A, n) val () = gprint_array$end<>() // } (* end of [gprint_array] *) (* ****** ****** *) implement {a}(*tmp*) gprint_arrayptr (A, n) = () where { // val p = ptrcast(A) // prval pf = arrayptr_takeout(A) // val () = gprint_array(!p, n) // prval () = arrayptr_addback{a}(pf | A) // } (* end of [gprint_arrayptr] *) (* ****** ****** *) implement {a}(*tmp*) gprint_arrayref (A, n) = let // val (vbox pf | p) = arrayref_get_viewptr(A) // in $effmask_ref(gprint_array(!p, n)) end // end of [gprint_arrayref] (* ****** ****** *) implement {a}(*tmp*) gprint_arrszref (ASZ) = () where { // var n: size_t val A = arrszref_get_refsize<>(ASZ, n) // val () = gprint_arrayref(A, n) // } (* end of [gprint_arrszref] *) (* ****** ****** *) (* end of [gprint.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/integer.dats0000644000175000017500000003346213431250607021377 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: May, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/integer.atxt ** Time of generation: Thu Feb 14 11:29:44 2019 *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // no dynloading // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // implement g0int2int = g0int2int_int_int(*unary*) // (* ****** ****** *) // implement g0int_neg = g0int_neg_int implement g0int_abs = g0int_abs_int implement g0int_succ = g0int_succ_int implement g0int_pred = g0int_pred_int implement g0int_half = g0int_half_int implement g0int_add = g0int_add_int implement g0int_sub = g0int_sub_int implement g0int_mul = g0int_mul_int implement g0int_div = g0int_div_int implement g0int_mod = g0int_mod_int implement g0int_asl = g0int_asl_int implement g0int_asr = g0int_asr_int implement g0int_isltz = g0int_isltz_int implement g0int_isltez = g0int_isltez_int implement g0int_isgtz = g0int_isgtz_int implement g0int_isgtez = g0int_isgtez_int implement g0int_iseqz = g0int_iseqz_int implement g0int_isneqz = g0int_isneqz_int implement g0int_lt = g0int_lt_int implement g0int_lte = g0int_lte_int implement g0int_gt = g0int_gt_int implement g0int_gte = g0int_gte_int implement g0int_eq = g0int_eq_int implement g0int_neq = g0int_neq_int implement g0int_compare = g0int_compare_int implement g0int_max = g0int_max_int implement g0int_min = g0int_min_int // implement fprint_val (out, x) = fprint_int (out, x) // (* ****** ****** *) // implement {}(*tmp*) add_int1_size0(i, j) = let val i = g1int2uint_int_size(i) in i + j end // end of [add_int1_size0] implement {}(*tmp*) add_size0_int1(i, j) = let val j = g1int2uint_int_size(j) in i + j end // end of [add_size0_int1] // (* ****** ****** *) // implement {}(*tmp*) mul_int1_size0(i, j) = let val i = g1int2uint_int_size(i) in i * j end // end of [mul_int1_size0] implement {}(*tmp*) mul_size0_int1(i, j) = let val j = g1int2uint_int_size(j) in i * j end // end of [mul_size0_int1] // (* ****** ****** *) implement {tk}(*tk*) g0int_npow (x, n) = let // typedef gint = g0int(tk) // fun loop ( x: gint, res: gint, n: int ) : gint = ( // if (n > 1) then let val n2 = n >> 1 val b0 = n - (n2 << 1) val xx = x * x in if b0 = 0 then loop(xx, res, n2) else loop(xx, x * res, n2) // end of [if] end // end of [then] else ( if n > 0 then x * res else res ) (* end of [else] *) // ) (* end of [loop] *) // val res = $UN.cast{gint}(1) // in $effmask_all(loop(x, res, n)) end // end of [g0int_npow] (* ****** ****** *) // implement g1int2int = g1int2int_int_int(*unary*) // (* ****** ****** *) // implement g1int_neg = g1int_neg_int implement g1int_abs = g1int_abs_int implement g1int_succ = g1int_succ_int implement g1int_pred = g1int_pred_int implement g1int_half = g1int_half_int implement g1int_add = g1int_add_int implement g1int_sub = g1int_sub_int implement g1int_mul = g1int_mul_int implement g1int_div = g1int_div_int implement g1int_nmod = g1int_nmod_int implement g1int_isltz = g1int_isltz_int implement g1int_isltez = g1int_isltez_int implement g1int_isgtz = g1int_isgtz_int implement g1int_isgtez = g1int_isgtez_int implement g1int_iseqz = g1int_iseqz_int implement g1int_isneqz = g1int_isneqz_int implement g1int_lt = g1int_lt_int implement g1int_lte = g1int_lte_int implement g1int_gt = g1int_gt_int implement g1int_gte = g1int_gte_int implement g1int_eq = g1int_eq_int implement g1int_neq = g1int_neq_int implement g1int_compare = g1int_compare_int implement g1int_max = g1int_max_int implement g1int_min = g1int_min_int // (* ****** ****** *) // implement {tk}(*tmp*) g0int_sgn(x) = g1int_sgn(g1ofg0_int{tk}(x)) implement {tk}(*tmp*) g1int_sgn(x) = compare_g1int_int(x, 0(*int*)) // (* ****** ****** *) // implement{} add_size1_int1 {i,j}(i, j) = $UN.cast{size_t(i+j)}(i+g0i2u(j)) implement{} add_int1_size1 {i,j}(i, j) = $UN.cast{size_t(i+j)}(g0i2u(i)+j) // implement{} sub_size1_int1 {i,j}(i, j) = $UN.cast{size_t(i-j)}(i-g0i2u(j)) // (* ****** ****** *) implement {tk}(*tmp*) g1int_mul2 {i,j}(x, y) = let // prval pfmul = mul_make{i,j}() in (pfmul | g1int_mul(x, y)) // end // end of [g1int_mul2] (* ****** ****** *) // implement {}(*tmp*) mul_int1_size1 {i,j}(i, j) = $UN.cast{size_t(i*j)}(g0i2u(i)*j) implement {}(*tmp*) mul_size1_int1 {i,j}(i, j) = $UN.cast{size_t(i*j)}(i*g0i2u(j)) // (* ****** ****** *) implement {tk}(*tmp*) g1int_ndiv {i,j}(x, y) = let // val quot = g1int_div(x, y) in $UN.cast{g1int(tk,ndiv(i,j))}(quot) // end // end of [let] // end of [g1int_ndiv] (* ****** ****** *) implement {tk}(*tmp*) g1int_ndiv2 {i,j}(x, y) = let // val [q:int] q = g1int_div(x, y) // prval [q2:int,r:int] pf_istot = divmod_istot{i,j}() // prval EQINT((*void*)) = $UN.castview0{EQINT(q,q2)}(0) // in (pf_istot | q(*quotient*)) end // end of [let] // end of [g1int_ndiv2] (* ****** ****** *) // implement {tk}(*tmp*) ndiv_g1int_int1 (x, y) = g1i2i(g1int_ndiv(x, g1i2i(y))) // (* ****** ****** *) implement {tk}(*tmp*) g1int_nmod2 {i,j}(x, y) = let // val r = g1int_nmod(x, y) // prval [q:int,r2:int] pf_istot = divmod_istot{i,j}() // prval EQINT((*void*)) = $UN.castview0{EQINT(i%j,r2)}(0) // in (pf_istot | r(*remainder*)) end // end of [let] // end of [g1int_nmod2] (* ****** ****** *) // implement {tk}(*tmp*) nmod_g1int_int1 (x, y) = g1i2i(g1int_nmod(x, g1i2i(y))) // (* ****** ****** *) implement {tk}(*tmp*) nmod2_g1int_int1 {i,j}(x, y) = let // val r = nmod_g1int_int1(x, y) // prval [q:int,r2:int] pf_istot = divmod_istot{i,j}() // prval EQINT((*void*)) = $UN.castview0{EQINT(i%j,r2)}(0) // in (pf_istot | r(*remainder*)) end // end of [let] // end of [nmod2_g1int_int1] (* ****** ****** *) (* // // HX-2016-12: // [ngcd] is no longer pre-declared // implement {tk}(*tmp*) g1int_ngcd (x, y) = let // fun loop{i,j:nat} .. ( x: g1int(tk, i) , y: g1int(tk, j) ) :<> [r:nat] g1int(tk, r) = let in // if y > 0 then loop (y, g1int_nmod(x, y)) else x // end // end of [loop] // in loop (x, y) end // end of [g1int_ngcd] *) (* ****** ****** *) // // HX: int -> uint // implement g0int2uint = g0int2uint_int_uint // (* ****** ****** *) // // HX: uint -> int // implement g0uint2int = g0uint2int_uint_int // (* ****** ****** *) // // HX: uint -> uint // implement g0uint2uint = g0uint2uint_uint_uint // (* ****** ****** *) // implement g0uint_succ = g0uint_succ_uint implement g0uint_pred = g0uint_pred_uint implement g0uint_half = g0uint_half_uint implement g0uint_add = g0uint_add_uint implement g0uint_sub = g0uint_sub_uint implement g0uint_mul = g0uint_mul_uint implement g0uint_div = g0uint_div_uint implement g0uint_mod = g0uint_mod_uint implement g0uint_lsl = g0uint_lsl_uint implement g0uint_lsr = g0uint_lsr_uint implement g0uint_lnot = g0uint_lnot_uint implement g0uint_lor = g0uint_lor_uint implement g0uint_lxor = g0uint_lxor_uint implement g0uint_land = g0uint_land_uint implement g0uint_isgtz = g0uint_isgtz_uint implement g0uint_iseqz = g0uint_iseqz_uint implement g0uint_isneqz = g0uint_isneqz_uint implement g0uint_lt = g0uint_lt_uint implement g0uint_lte = g0uint_lte_uint implement g0uint_gt = g0uint_gt_uint implement g0uint_gte = g0uint_gte_uint implement g0uint_eq = g0uint_eq_uint implement g0uint_neq = g0uint_neq_uint implement g0uint_compare = g0uint_compare_uint implement g0uint_max = g0uint_max_uint implement g0uint_min = g0uint_min_uint // implement fprint_val (out, x) = fprint_uint (out, x)// (* ****** ****** *) // // HX: int -> uint // implement g1int2uint = g1int2uint_int_uint // (* ****** ****** *) // // HX: uint -> int // implement g1uint2int = g1uint2int_uint_int // (* ****** ****** *) // // HX: uint -> uint // implement g1uint2uint = g1uint2uint_uint_uint // (* ****** ****** *) // implement g1uint_succ = g1uint_succ_uint implement g1uint_pred = g1uint_pred_uint implement g1uint_half = g1uint_half_uint implement g1uint_add = g1uint_add_uint implement g1uint_sub = g1uint_sub_uint implement g1uint_mul = g1uint_mul_uint implement g1uint_div = g1uint_div_uint implement g1uint_mod = g1uint_mod_uint implement g1uint_isgtz = g1uint_isgtz_uint implement g1uint_iseqz = g1uint_iseqz_uint implement g1uint_isneqz = g1uint_isneqz_uint implement g1uint_lt = g1uint_lt_uint implement g1uint_lte = g1uint_lte_uint implement g1uint_gt = g1uint_gt_uint implement g1uint_gte = g1uint_gte_uint implement g1uint_eq = g1uint_eq_uint implement g1uint_neq = g1uint_neq_uint implement g1uint_compare = g1uint_compare_uint implement g1uint_max = g1uint_max_uint implement g1uint_min = g1uint_min_uint // (* ****** ****** *) implement {tk}(*tmp*) g1uint_div2 {i,j}(x, y) = let // prval () = lemma_g1uint_param (x) // val [q:int] q = g1uint_div (x, y) // prval [q2:int,r:int] pf = divmod_istot{i,j}((*void*)) // prval EQINT((*void*)) = $UN.castview0{EQINT(q,q2)}(0) // in (pf | q) end // end of [let] // end of [g1uint_div2] (* ****** ****** *) implement {tk}(*tmp*) g1uint_mod2 {i,j} (x, y) = let // prval () = lemma_g1uint_param (x) // val [r:int] r = g1uint_mod (x, y) prval [q:int,r2:int] pf = divmod_istot{i,j}() prval EQINT() = $UN.castview0{EQINT(r,r2)}(0) in (pf | r) end // end of [let] // end of [g1uint_mod2] (* ****** ****** *) // implement g0int2string = g0int2string_int // (* ****** ****** *) // implement g0string2int = g0string2int_int implement g0string2uint = g0string2uint_uint // (* ****** ****** *) implement {tk}(*tmp*) g1string2int(rep) = g1ofg0_int(g0string2int(rep)) implement {tk}(*tmp*) g1string2uint(rep) = g1ofg0_uint(g0string2uint(rep)) (* ****** ****** *) implement {tk}(*tmp*) lt_g0int_int (x, y) = g0int_lt (x, g0int2int(y)) implement {tk}(*tmp*) lte_g0int_int (x, y) = g0int_lte (x, g0int2int(y)) // implement {tk}(*tmp*) gt_g0int_int (x, y) = g0int_gt (x, g0int2int(y)) implement {tk}(*tmp*) gte_g0int_int (x, y) = g0int_gte (x, g0int2int(y)) // implement {tk}(*tmp*) eq_g0int_int (x, y) = g0int_eq (x, g0int2int(y)) implement {tk}(*tmp*) neq_g0int_int (x, y) = g0int_neq (x, g0int2int(y)) // implement{tk} compare_g0int_int (x, y) = g0int_compare(x, g0int2int(y)) // (* ****** ****** *) implement {tk}(*tmp*) lt_g1int_int (x, y) = g1int_lt (x, g1int2int(y)) implement {tk}(*tmp*) lte_g1int_int (x, y) = g1int_lte (x, g1int2int(y)) // implement {tk}(*tmp*) gt_g1int_int (x, y) = g1int_gt (x, g1int2int(y)) implement {tk}(*tmp*) gte_g1int_int (x, y) = g1int_gte (x, g1int2int(y)) // implement {tk}(*tmp*) eq_g1int_int (x, y) = g1int_eq (x, g1int2int(y)) implement {tk}(*tmp*) neq_g1int_int (x, y) = g1int_neq (x, g1int2int(y)) // implement {tk}(*tmp*) compare_g1int_int (x, y) = g1int_compare (x, g1int2int(y)) // (* ****** ****** *) implement {tk}(*tmp*) lt_g0uint_int (x, y) = g0uint_lt (x, g0int2uint(y)) implement {tk}(*tmp*) lte_g0uint_int (x, y) = g0uint_lte (x, g0int2uint(y)) // implement {tk}(*tmp*) gt_g0uint_int (x, y) = g0uint_gt (x, g0int2uint(y)) implement {tk}(*tmp*) gte_g0uint_int (x, y) = g0uint_gte (x, g0int2uint(y)) // implement {tk}(*tmp*) eq_g0uint_int (x, y) = g0uint_eq (x, g0int2uint(y)) implement {tk}(*tmp*) neq_g0uint_int (x, y) = g0uint_neq (x, g0int2uint(y)) // (* ****** ****** *) implement {tk}(*tmp*) lt_g1uint_int (x, y) = g1uint_lt (x, g1int2uint(y)) implement {tk}(*tmp*) lte_g1uint_int (x, y) = g1uint_lte (x, g1int2uint(y)) // implement {tk}(*tmp*) gt_g1uint_int (x, y) = g1uint_gt (x, g1int2uint(y)) implement {tk}(*tmp*) gte_g1uint_int (x, y) = g1uint_gte (x, g1int2uint(y)) // implement {tk}(*tmp*) eq_g1uint_int (x, y) = g1uint_eq (x, g1int2uint(y)) implement {tk}(*tmp*) neq_g1uint_int (x, y) = g1uint_neq (x, g1int2uint(y)) // (* ****** ****** *) (* end of [integer.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/0000755000175000017500000000000013431250607017717 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/gorder_int.dats0000644000175000017500000000342413431250607022733 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gorder_int.atxt ** Time of generation: Thu Feb 14 11:29:52 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) // implement gcompare_val_val = g0int_compare_int implement gcompare_val_val = g0int_compare_lint implement gcompare_val_val = g0int_compare_llint implement gcompare_val_val = g0int_compare_ssize // (* ****** ****** *) (* end of [gorder_int.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/gorder_float.dats0000644000175000017500000000332713431250607023250 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gorder_float.atxt ** Time of generation: Thu Feb 14 11:29:52 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) implement gcompare_val_val = g0float_compare_float implement gcompare_val_val = g0float_compare_double implement gcompare_val_val = g0float_compare_ldouble (* end of [gorder_float.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/list_vt_mergesort.dats0000644000175000017500000001313513431250607024352 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/list_vt_mergesort.atxt ** Time of generation: Thu Feb 14 11:29:53 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement {a}(*tmp*) list_vt_mergesort$cmp (x1, x2) = ( gcompare_ref_ref (x1, x2) ) // end of [list_vt_mergesort$cmp] (* ****** ****** *) // extern fun{ a:vt0p } list_vt_insort {n:int}(xs: list_vt (a, n)): list_vt (a, n) // (* ****** ****** *) implement {a}(*tmp*) list_vt_insort (xs) = let // fun insord {l0,l1,l2:addr}{n:nat} .. ( pf1: a @ l1 , pf2: list_vt(a, 0)? @ l2 | xs0: &list_vt(a, n) >> list_vt(a, n+1) , nx0: list_vt_cons_unfold(l0, l1, l2), p1: ptr(l1), p2: ptr(l2) ) : void = let in // case+ xs0 of | @list_vt_cons (x0, xs1) => let val sgn = list_vt_mergesort$cmp (x0, !p1) in if sgn <= 0 then let val () = insord (pf1, pf2 | xs1, nx0, p1, p2) prval () = fold@ (xs0) in // nothing end // end of [then] else let prval () = fold@ (xs0) val () = (!p2 := xs0; xs0 := nx0) prval () = fold@ (xs0) in // nothing end // end of [else] // end of [if] end // end of [list_vt_cons] | ~list_vt_nil () => { val () = xs0 := nx0 val () = !p2 := list_vt_nil () prval () = fold@ (xs0) } // end (* end of [insord] *) // fun loop{m,n:nat} .. ( xs: list_vt (a, m) , ys: &list_vt (a, n) >> list_vt (a, m+n) ) : void = let in // case+ xs of | @list_vt_cons (x, xs1) => let val xs1_ = xs1 val ((*void*)) = insord (view@x, view@xs1 | ys, xs, addr@x, addr@xs1) // end of [val] in loop (xs1_, ys) end // end of [list_vt_cons] | ~list_vt_nil ((*void*)) => () // end // end of [loop] // prval () = lemma_list_vt_param (xs) // var ys = list_vt_nil{a}() val ((*void*)) = loop (xs, ys) // in ys end // end of [list_vt_insort] (* ****** ****** *) #define CUTOFF 12 (* ****** ****** *) implement {a}(*tmp*) list_vt_mergesort {n} (xs) = let // fun split {n,n1:int | n >= n1; n1 >= 0} .. ( xs: &list_vt (a, n) >> list_vt (a, n1) , n1: int n1, res: &List_vt a? >> list_vt (a, n-n1) ) : void = let in // if n1 > 0 then let val+@list_vt_cons (_, xs1) = xs val () = split (xs1, n1-1, res) in fold@ (xs) end else let val () = res := xs val () = xs := list_vt_nil () in // nothing end // end of [if] // end // end of [split] // fun merge {n1,n2:nat} .. ( xs1: list_vt (a, n1) , xs2: list_vt (a, n2) , res: &List_vt a? >> list_vt (a, n1+n2) ) : void = let in // case+ xs1 of | @list_vt_cons (x1, xs11) => ( case+ xs2 of | @list_vt_cons (x2, xs21) => let val sgn = list_vt_mergesort$cmp (x1, x2) // end of [val] in if sgn <= 0 then let val () = res := xs1 prval () = fold@{a}(xs2) val () = merge (xs11, xs2, xs11) prval () = fold@{a}(res) in // nothing end else let val () = res := xs2 prval () = fold@{a}(xs1) val () = merge (xs1, xs21, xs21) prval () = fold@{a}(res) in // nothing end // end of [if] end // end of [list_vt_cons] | ~list_vt_nil () => (fold@ (xs1); res := xs1) ) // end of [list_vt_cons] | ~list_vt_nil () => (res := xs2) // end // end of [merge] // fun msort{n:nat} .. ( xs: list_vt(a, n), n: int(n) ) : list_vt(a, n) = ( if n >= CUTOFF then let val n1 = half(n+1) val+@list_vt_cons (_, xs1) = xs var res: List_vt a? // uninitialized val () = split (xs1, n1-1, res) prval () = fold@ (xs) val xs1 = msort (xs, n1) and xs2 = msort (res, n-n1) val () = merge (xs1, xs2, res) in res end // end of [then] else list_vt_insort (xs) ) (* end of [msort] *) // prval () = lemma_list_vt_param (xs) // in msort (xs, list_vt_length (xs)) end // end of [list_vt_mergesort] (* ****** ****** *) implement {a}(*tmp*) list_vt_mergesort_fun (xs, cmp) = let // implement{a2} list_vt_mergesort$cmp (x1, x2) = let // val cmp = $UN.cast{cmpref(a2)}(cmp) in cmp (x1, x2) // end (* end of [list_vt_mergesort$cmp] *) // in list_vt_mergesort (xs) end // end of [list_vt_mergesort_fun] (* ****** ****** *) (* end of [list_vt_mergesort.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/gnumber_int.dats0000644000175000017500000000655113431250607023114 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gnumber_int.atxt ** Time of generation: Thu Feb 14 11:29:53 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) implement gnumber_int (x) = g0int2int_int_int (x) implement gnumber_int (x) = g0int2int_int_lint (x) implement gnumber_int (x) = g0int2int_int_llint (x) implement gnumber_int (x) = g0int2int_int_ssize (x) (* ****** ****** *) implement gneg_val (x) = ~x implement gneg_val (x) = ~x implement gneg_val (x) = ~x (* ****** ****** *) implement gsucc_val (x) = succ (x) implement gsucc_val (x) = succ (x) implement gsucc_val (x) = succ (x) implement gsucc_val (x) = succ (x) (* ****** ****** *) implement gpred_val (x) = pred (x) implement gpred_val (x) = pred (x) implement gpred_val (x) = pred (x) (* ****** ****** *) implement gadd_val_val (x, y) = x + y implement gadd_val_val (x, y) = x + y implement gadd_val_val (x, y) = x + y implement gadd_val_val (x, y) = x + y (* ****** ****** *) implement gsub_val_val (x, y) = x - y implement gsub_val_val (x, y) = x - y implement gsub_val_val (x, y) = x - y (* ****** ****** *) implement gmul_val_val (x, y) = x * y implement gmul_val_val (x, y) = x * y implement gmul_val_val (x, y) = x * y implement gmul_val_val (x, y) = x * y (* ****** ****** *) implement gdiv_val_val (x, y) = x / y implement gdiv_val_val (x, y) = x / y implement gdiv_val_val (x, y) = x / y implement gdiv_val_val (x, y) = x / y (* ****** ****** *) implement gmod_val_val (x, y) = x mod y implement gmod_val_val (x, y) = x mod y implement gmod_val_val (x, y) = x mod y implement gmod_val_val (x, y) = x mod y (* ****** ****** *) (* implement gconjugate_val (x) = x implement gconjugate_val (x) = x implement gconjugate_val (x) = x implement gconjugate_val (x) = x *) (* ****** ****** *) (* end of [gnumber_int.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/list_vt_quicksort.dats0000644000175000017500000000712613431250607024372 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/list_vt_quicksort.atxt ** Time of generation: Thu Feb 14 11:29:53 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement{a} list_vt_quicksort$cmp (x1, x2) = ( gcompare_ref_ref (x1, x2) ) (* end of [list_vt_quicksort$cmp] *) (* ****** ****** *) (* ** HX-2012-05: ** (1) Copying a list into an array ** (2) Performing quicksort on the array ** (3) Copying it back into the list *) implement {a}(*tmp*) list_vt_quicksort {n} (xs) = let // fun copyout {n:nat} .. ( xs: !list_vt (a, n), p: ptr ) : void = let in // case+ xs of | @list_vt_cons (x, xs1) => let val ( ) = $UN.ptr0_set (p, $UN.ptr0_get (addr@(x))) val () = copyout (xs1, ptr0_succ (p)) in fold@ (xs) end // end of [list_vt_cons] | list_vt_nil ((*void*)) => () // end // end of [copyout] // fun copyinto {n:nat} .. ( xs: !list_vt (a, n), p: ptr ) : void = let in // case+ xs of | @list_vt_cons (x, xs1) => let val ( ) = $UN.ptr0_set (addr@(x), $UN.ptr0_get (p)) val () = copyinto (xs1, ptr0_succ (p)) in fold@ (xs) end // end of [list_vt_cons] | list_vt_nil ((*void*)) => () // end // end of [copyinto] // implement array_quicksort$cmp (x1, x2) = list_vt_quicksort$cmp (x1, x2) // end of [array_quicksort$cmp] // prval () = lemma_list_vt_param (xs) // val n = list_vt_length (xs) // val [l:addr] (pfat, pfgc | p0) = array_ptr_alloc (i2sz(n)) // extern praxi __out (pf: !array_v (a?, l, n) >> array_v (a, l, n)): void extern praxi __into (pf: !array_v (a, l, n) >> array_v (a?, l, n)): void // val () = copyout (xs, p0) prval () = __out (pfat) val () = array_quicksort (!p0, i2sz(n)) prval () = __into (pfat) val () = copyinto (xs, p0) // val () = array_ptr_free {a} (pfat, pfgc | p0) // in xs end // end of [list_vt_quicksort] (* ****** ****** *) implement {a}(*tmp*) list_vt_quicksort_fun (xs, cmp) = let // implement{a2} list_vt_quicksort$cmp (x1, x2) = let // val cmp = $UN.cast{cmpref(a2)}(cmp) in cmp (x1, x2) // end (* end of [list_vt_quicksort$cmp] *) // in list_vt_quicksort (xs) end // end of [list_vt_quicksort_fun] (* ****** ****** *) (* end of [list_vt_quicksort.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/gorder_bool.dats0000644000175000017500000000313013431250607023066 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gorder_bool.atxt ** Time of generation: Thu Feb 14 11:29:52 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) implement gcompare_val_val = compare_bool0_bool0 (* end of [gorder_bool.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/gnumber_float.dats0000644000175000017500000000675513431250607023435 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gnumber.atxt ** Time of generation: Thu Feb 14 11:29:53 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) implement gnumber_int (x) = g0int2float_int_float (x) implement gnumber_int (x) = g0int2float_int_double (x) (* implement gnumber_int (x) = g0int2float_int_ldouble (x) *) (* ****** ****** *) implement gnumber_double (x) = g0float2float_double_float (x) implement gnumber_double (x) = g0float2float_double_double (x) (* implement gnumber_double (x) = g0float2float_double_ldouble (x) *) (* ****** ****** *) implement gneg_val (x) = ~x implement gneg_val (x) = ~x implement gneg_val (x) = ~x (* ****** ****** *) implement gsucc_val (x) = succ (x) implement gsucc_val (x) = succ (x) implement gsucc_val (x) = succ (x) (* ****** ****** *) implement gpred_val (x) = pred (x) implement gpred_val (x) = pred (x) implement gpred_val (x) = pred (x) (* ****** ****** *) implement grecip_val (x) = 1.0f / x implement grecip_val (x) = 1.0 / x implement grecip_val (x) = 1.0l / x (* ****** ****** *) implement gadd_val_val (x, y) = x + y implement gadd_val_val (x, y) = x + y implement gadd_val_val (x, y) = x + y (* ****** ****** *) implement gsub_val_val (x, y) = x - y implement gsub_val_val (x, y) = x - y implement gsub_val_val (x, y) = x - y (* ****** ****** *) implement gmul_val_val (x, y) = x * y implement gmul_val_val (x, y) = x * y implement gmul_val_val (x, y) = x * y (* ****** ****** *) implement gdiv_val_val (x, y) = x / y implement gdiv_val_val (x, y) = x / y implement gdiv_val_val (x, y) = x / y (* ****** ****** *) implement gmod_val_val (x, y) = x mod y implement gmod_val_val (x, y) = x mod y implement gmod_val_val (x, y) = x mod y (* ****** ****** *) (* implement gconjugate_val (x) = x implement gconjugate_val (x) = x implement gconjugate_val (x) = x *) (* ****** ****** *) (* end of [gnumber_float.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/gnumber_uint.dats0000644000175000017500000000644613431250607023304 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gnumber_uint.atxt ** Time of generation: Thu Feb 14 11:29:53 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) implement gnumber_int (x) = g0int2uint_int_uint (x) implement gnumber_int (x) = g0int2uint_int_ulint (x) implement gnumber_int (x) = g0int2uint_int_ullint (x) (* ****** ****** *) implement gsucc_val (x) = succ (x) implement gsucc_val (x) = succ (x) implement gsucc_val (x) = succ (x) implement gsucc_val (x) = succ (x) (* ****** ****** *) implement gpred_val (x) = pred (x) implement gpred_val (x) = pred (x) implement gpred_val (x) = pred (x) implement gpred_val (x) = pred (x) (* ****** ****** *) implement gadd_val_val (x, y) = x + y implement gadd_val_val (x, y) = x + y implement gadd_val_val (x, y) = x + y implement gadd_val_val (x, y) = x + y (* ****** ****** *) implement gsub_val_val (x, y) = x - y implement gsub_val_val (x, y) = x - y implement gsub_val_val (x, y) = x - y implement gsub_val_val (x, y) = x - y (* ****** ****** *) implement gmul_val_val (x, y) = x * y implement gmul_val_val (x, y) = x * y implement gmul_val_val (x, y) = x * y implement gmul_val_val (x, y) = x * y (* ****** ****** *) implement gdiv_val_val (x, y) = x / y implement gdiv_val_val (x, y) = x / y implement gdiv_val_val (x, y) = x / y implement gdiv_val_val (x, y) = x / y (* ****** ****** *) implement gmod_val_val (x, y) = x mod y implement gmod_val_val (x, y) = x mod y implement gmod_val_val (x, y) = x mod y implement gmod_val_val (x, y) = x mod y (* ****** ****** *) (* implement gconjugate_val (x) = x implement gconjugate_val (x) = x implement gconjugate_val (x) = x implement gconjugate_val (x) = x *) (* ****** ****** *) (* end of [gnumber_uint.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/array_bsearch.dats0000644000175000017500000000565113431250607023410 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/array.atxt ** Time of generation: Thu Feb 14 11:29:53 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement {a}(*tmp*) array_bsearch {n} (A, asz) = let // fun loop {l,r:nat | l <= r; r <= n} .. ( A: &array (a, n), l: size_t l, r: size_t r ) :<> sizeLte (n) = ( if l < r then let val m = l + half (r-l) val pm = addr@ (A.[m]) val ( pf, fpf | pm ) = $UN.ptr_vtake{a}(pm) val sgn = array_bsearch$ford (!pm) prval () = fpf (pf) in if sgn <= 0 then loop (A, l, m) else loop (A, succ(m), r) end else l (* end of [if] *) ) // prval () = lemma_array_param (A) // in loop (A, g1i2u(0), asz) end (* end of [array_bsearch] *) (* ****** ****** *) implement {a}(*tmp*) array_bsearch_fun (A, asz, key, cmp) = let // val p0 = addr@(key) // implement array_bsearch$ford (x) = sgn where { // val ( pf, fpf | p0 ) = $UN.ptr_vtake (p0) val sgn = cmp (!p0, x) prval ((*void*)) = fpf (pf) // } (* endimp *) // in array_bsearch (A, asz) end (* end of [array_bsearch_fun] *) (* ****** ****** *) (* // // HX: [qsort] is in libc/stdlib // void *bsearch ( const void *key , const void *base , size_t nmemb, size_t size , int (*compar)(const void *, const void *) ) ; // end of [bsearch] *) implement{a} array_bsearch_stdlib (A, asz, key, cmp) = let in // $extfcall ( Ptr0, "atspre_array_bsearch", addr@(key), addr@(A), asz, sizeof, cmp ) // end of [$extfcall] // end // end of [array_bsearch_stdlib] (* ****** ****** *) (* end of [array_bsearch.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/.keeper0000644000175000017500000000000013431250607021161 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/gorder_string.dats0000644000175000017500000000316513431250607023451 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gorder_string.atxt ** Time of generation: Thu Feb 14 11:29:53 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) implement gcompare_val_val = compare_string_string (* ****** ****** *) (* end of [gorder_string.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/array_quicksort.dats0000644000175000017500000001473013431250607024023 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/array.atxt ** Time of generation: Thu Feb 14 11:29:54 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2013 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) (* // // HX-2013-04: // Instead of employing advanced types, I happily // ventured into the typeless territory of unsafe // pointer arithmetic! // *) (* ****** ****** *) implement {a}(*tmp*) array_quicksort$cmp (x1, x2) = ( gcompare_ref_ref (x1, x2) ) // end of [array_quicksort$cmp] (* ****** ****** *) implement {a}(*tmp*) array_quicksort (A, asz) = let // overload + with add_ptr0_bsz overload - with sub_ptr0_bsz // (* ****** ****** *) // fun ptrcmp ( p1: ptr, p2: ptr ) : int = (sgn) where { // val p1 = g1ofg0_ptr(p1) val p2 = g1ofg0_ptr(p2) // val ( pf1, fpf1 | p1 ) = $UN.ptr_vtake{a}(p1) val ( pf2, fpf2 | p2 ) = $UN.ptr_vtake{a}(p2) // val sgn = array_quicksort$cmp (!p1, !p2) // prval () = fpf1 (pf1) prval () = fpf2 (pf2) // } (* end of [ptrcmp] *) (* ****** ****** *) (* // // HX-2013-04: // move min to the start // HX-2013-04: // this is not a safe approach // in case [cmp] is not transitive! // fun auxmin ( pa: ptr, p: ptr, tsz: size_t ) : void = let in // if pa < p then let val p1 = p - tsz val sgn = ptrcmp (p1, p) val () = if sgn > 0 then $UN.ptr0_intch (p1, p) // end of [val] in auxmin (pa, p1, tsz) end (* end of [if] *) // end (* end of [auxmin] *) *) // // HX: one round of insertion // fun auxins ( pa: ptr, p: ptr, tsz: size_t ) : void = let in // if pa < p then let val p1 = p - tsz val sgn = ptrcmp (p1, p) in if sgn > 0 then let val () = $UN.ptr0_intch (p1, p) in auxins (pa, p1, tsz) end // end of [if] end else () // end of [if] // end (* end of [auxins] *) // // HX: all rounds of insertion // fun auxinss ( pa: ptr, pz: ptr, p: ptr, tsz: size_t ) : void = let in // if p < pz then let val () = auxins (pa, p, tsz) in auxinss (pa, pz, p + tsz, tsz) end // end of [if] // end (* end of [auxinss] *) (* ****** ****** *) // // HX: insertion sorting // fun auxinsort ( pa: ptr, asz: size_t, tsz: size_t ) : void = let val pz = pa + asz * tsz in // if pa < pz then let val () = auxinss (pa, pz, pa + tsz, tsz) in (* nothing *) end else () // end of [if] // end (* end of [auxinsort] *) (* ****** ****** *) // // HX: locate the middle of 3 // fun auxmid ( p1: ptr, p2: ptr, p3: ptr ) : ptr = let val sgn12 = ptrcmp (p1, p2) in // if sgn12 <= 0 then ( if ptrcmp (p2, p3) <= 0 then p2 else (if ptrcmp (p1, p3) <= 0 then p3 else p1) ) else ( if ptrcmp (p1, p3) <= 0 then p1 else (if ptrcmp (p2, p3) <= 0 then p3 else p2) ) // end of [if] end (* end of [auxmid] *) // // HX: pivot to the start // fun auxpivot ( pa: ptr, asz: size_t, tsz: size_t ) : void = let // val pm = auxmid ( pa, pa + half(asz) * tsz, pa + pred(asz) * tsz ) (* end of [val] *) // in $UN.ptr0_intch (pa, pm) end (* end of [auxpivot] *) (* ****** ****** *) // // HX-2013-04: // Invariants: // 1. elements in [pa, pl) <= pivot // 2. elements in (pr, pz) >= pivot // fun auxsplit_l ( pa: ptr, pl: ptr, pr: ptr, tsz: size_t ) : ptr = ( if pl <= pr then let val sgn = ptrcmp (pl, pa) in // if sgn <= 0 then auxsplit_l (pa, pl + tsz, pr, tsz) else pl // end else pl // end of [if] ) (* end of [auxsplit_l] *) fun auxsplit_r ( pa: ptr, pl: ptr, pr: ptr, tsz: size_t ) : ptr = ( if pl <= pr then let val sgn = ptrcmp (pa, pr) in // if sgn <= 0 then auxsplit_r (pa, pl, pr - tsz, tsz) else pr // end else pr // end of [if] ) (* end of [auxsplit_r] *) fun auxsplit_lr ( pa: ptr, pl: ptr, pr: ptr, tsz: size_t ) : ptr = let val pl = auxsplit_l (pa, pl, pr, tsz) val pr = auxsplit_r (pa, pl, pr, tsz) in // if pl < pr then let val () = $UN.ptr0_intch (pl, pr) in auxsplit_lr (pa, pl + tsz, pr - tsz, tsz) end else pl (* end of [if] *) // end (* end of [auxsplit_lr] *) (* ****** ****** *) #define CUTOFF 12 (* ****** ****** *) // // HX: quick-sorting // fun auxqsort ( pa: ptr, asz: size_t, tsz: size_t ) : void = let in // if asz >= CUTOFF then let val () = auxpivot (pa, asz, tsz) val pz = pa + asz * tsz val pm = auxsplit_lr (pa, pa + tsz, pz - tsz, tsz) val pm1 = pm - tsz val () = $UN.ptr0_intch (pa, pm1) val asz_f = $UN.cast2size(pm1-pa) / tsz val asz_r = pred (asz - asz_f) in if asz_f <= asz_r then let val () = auxqsort (pa, asz_f, tsz) val () = auxqsort (pm, asz_r, tsz) in // nothing end else let val () = auxqsort (pm, asz_r, tsz) val () = auxqsort (pa, asz_f, tsz) in // nothing end (* end of [if] *) end else auxinsort (pa, asz, tsz) // end of [if] // end (* end of [auxqsort] *) (* ****** ****** *) in (* in of [let] *) // $effmask_all (auxqsort (addr@(A), asz, sizeof)) // end (* end of [array_quicksort] *) (* ****** ****** *) (* // // HX: [qsort] is in libc/stdlib // void qsort ( void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *) ) ; // end of [qsort] *) implement {a}(*tmp*) array_quicksort_stdlib (A, asz, cmp) = let in $extfcall (void, "atspre_array_qsort", addr@(A), asz, sizeof, cmp) end (* end of [array_quicksort_stdlib] *) (* ****** ****** *) (* end of [array_quicksort.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/gorder_char.dats0000644000175000017500000000315513431250607023057 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gorder_char.atxt ** Time of generation: Thu Feb 14 11:29:52 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) implement gcompare_val_val = compare_char0_char0 (* ****** ****** *) (* end of [gorder_char.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/SHARE/gorder_uint.dats0000644000175000017500000000343613431250607023123 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/gorder_uint.atxt ** Time of generation: Thu Feb 14 11:29:52 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) (* ****** ****** *) // implement gcompare_val_val = g0uint_compare_uint implement gcompare_val_val = g0uint_compare_ulint implement gcompare_val_val = g0uint_compare_ullint implement gcompare_val_val = g0uint_compare_size // (* ****** ****** *) (* end of [gorder_uint.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/stream_vt.dats0000644000175000017500000010614413431250607021744 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: July, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/list.atxt ** Time of generation: Thu Feb 14 11:29:50 2019 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // implement {a}(*tmp*) stream_vt_is_nil(xs) = ( case+ !xs of | ~stream_vt_nil() => true | ~stream_vt_cons(_, xs) => (~xs; false) ) implement {a}(*tmp*) stream_vt_is_cons(xs) = not(stream_vt_is_nil(xs)) // (* ****** ****** *) // implement {a}(*tmp*) stream_vt_make_nil ((*void*)) = $ldelay(stream_vt_nil) // implement {a}(*tmp*) stream_vt_make_cons(x, xs) = $ldelay( stream_vt_cons(x, xs), $effmask_wrt(~xs) )(*$ldelay*) // (* ****** ****** *) // implement {a}(*tmp*) stream_vt_sing(x) = stream_vt_cons{a}(x, stream_vt_make_nil()) implement {a}(*tmp*) stream_vt_make_sing(x) = stream_vt_make_cons(x, stream_vt_make_nil()) // (* ****** ****** *) // implement {a}(*tmp*) stream_vt_make_con(xs_con) = ( // $ldelay ( xs_con , $effmask_wrt(stream_vt_con_free(xs_con)) ) // ) (* end of [stream_vt_make_con] *) // (* ****** ****** *) implement {a}(*tmp*) stream_t2vt(xs) = let // fun auxmain: $d2ctype (stream_t2vt) = lam(xs) => $ldelay ( case+ !xs of | stream_nil() => stream_vt_nil() | stream_cons(x0, xs) => stream_vt_cons(x0, auxmain(xs)) ) // in auxmain(xs) end (* end of [stream_t2vt] *) (* ****** ****** *) // // HX-2014-04-07: // This is a wild implementation! // implement {a}(*tmp*) stream_vt2t(xs) = let // fun auxmain ( xs: stream_vt(a) ) : stream(a) = let // val xs = $UN.castvwtp0{ptr}(xs) // in // $delay ( let val xs = $UN.castvwtp0{stream_vt(a)}(xs) val xs_con = !xs in case+ xs_con of | ~stream_vt_nil ((*void*)) => stream_nil(*void*) // end of [stream_vt_nil] | @stream_vt_cons (x, xs1) => let val xs1_val = xs1 val ((*void*)) = (xs1 := auxmain(xs1_val)) in $UN.castvwtp0{stream_con(a)}((view@x, view@xs1 | xs_con)) end // end of [stream_cons] end ) end // end of [auxmain] // in auxmain(xs) end // end of [stream_vt2t] (* ****** ****** *) local // // HX-2012: // casting stream_vt_cons to list_cons // extern castfn stream2list_vt_cons {l0,l1,l2:addr} ( stream_vt_cons_unfold(l0, l1, l2) ) :<> list_vt_cons_unfold(l0, l1, l2) in (* in-of-local *) implement {a}(*tmp*) stream2list_vt(xs) = let // fun loop ( xs: stream_vt(a) , res: &ptr? >> List0_vt(a) ) : void = let // val xs_con = !xs // in case+ xs_con of | ~stream_vt_nil ((*void*)) => (res := list_vt_nil()) // end of [stream_vt_nil] | @stream_vt_cons (x, xs1) => { val xs1_ = xs1 val ((*void*)) = ( res := stream2list_vt_cons(xs_con) ) // end of [val] val ((*void*)) = loop(xs1_, xs1) prval ((*folded*)) = fold@(res) } (* end of [stream_vt_cons] *) end // end of [loop] // in // $effmask_all ( let var res: ptr in loop(xs, res); res end ) (* $effmask_all *) // end // end of [stream2list_vt] end // end of [local] (* ****** ****** *) // implement {a}(*tmp*) stream_vt_free(xs) = ~(xs) // implement {a}(*tmp*) stream_vt_con_free (xs_con) = ( case+ xs_con of | ~stream_vt_nil() => () | ~stream_vt_cons(_, xs) => ~xs ) (* stream_vt_con_free *) // (* ****** ****** *) implement {a}(*tmp*) stream_vt_takeLte (xs, n) = let // fun auxmain ( xs: stream_vt(a), n: intGte(0) ) : stream_vt(a) = $ldelay( if (n > 0) then let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil () => stream_vt_nil() | @stream_vt_cons (x, xs) => let val ((*void*)) = xs := auxmain(xs, n-1) // end of [val] in fold@(xs_con); xs_con end // end of [stream_vt_cons] // end // end of [then] else (~xs; stream_vt_nil()) , (~xs) // for freeing the stream! ) // in auxmain(xs, n) end // end of [stream_vt_takeLte] (* ****** ****** *) (* implement {a}(*tmp*) stream_vt_dropLte (xs, n) = let // fun aux : $d2ctype(stream_vt_dropLte) = lam (xs, n) => ( if n > 0 then ( case+ !xs of | ~stream_vt_nil ((*void*)) => stream_vt_make_nil() | ~stream_vt_cons(_, xs) => aux(xs, n-1) ) else (xs) ) (* end of [lam] *) // in aux (xs, n) end // end of [stream_vt_dropLte] *) (* ****** ****** *) // implement {a}(*tmp*) stream_vt_drop_exn (xs, n) = let // fun aux : $d2ctype(stream_vt_drop_exn) = lam (xs, n) => ( // if n > 0 then ( // case+ !xs of | ~stream_vt_cons (_, xs) => aux(xs, n-1) // end of [stream_vt_cons] | ~stream_vt_nil ((*void*)) => $raise StreamSubscriptExn() // end of [stream_vt_nil] // ) (* end of [then] *) else (xs) // end of [else] // ) (* end of [lam] *) // in aux (xs, n) end // end of [stream_vt_drop_exn] // implement {a}(*tmp*) stream_vt_drop_opt (xs, n) = let // fun aux : $d2ctype(stream_vt_drop_opt) = lam (xs, n) => ( // if n > 0 then ( // case+ !xs of | ~stream_vt_cons (_, xs) => aux(xs, n-1) | ~stream_vt_nil ((*void*)) => None_vt((*void*)) // ) (* end of [then] *) else Some_vt{stream_vt(a)}(xs) // [else] // ) (* end of [lam] *) // in aux (xs, n) end // end of [stream_vt_drop_opt] // (* ****** ****** *) // implement {a}(*tmp*) stream_vt_head_exn(xs) = ( case+ !xs of | ~stream_vt_cons(x, xs) => let val () = stream_vt_free(xs) in x end | ~stream_vt_nil((*void*)) => $raise StreamSubscriptExn() ) (* end of [stream_vt_head_exn] *) // implement {a}(*tmp*) stream_vt_tail_exn(xs) = ( case+ !xs of | ~stream_vt_cons(x, xs) => (xs) | ~stream_vt_nil((*void*)) => $raise StreamSubscriptExn() ) (* end of [stream_vt_tail_exn] *) // (* ****** ****** *) implement {a}(*tmp*) stream_vt_uncons_exn(xs0) = ( case+ !xs0 of | ~stream_vt_cons (x, xs) => let val () = xs0 := xs in x end | ~stream_vt_nil ((*void*)) => let val () = xs0 := $ldelay(stream_vt_nil()) // end of [val] in $raise StreamSubscriptExn((*void*)) end // end of [stream_vt_nil] ) (* end of [stream_vt_uncons_exn] *) implement {a}(*tmp*) stream_vt_uncons_opt(xs0) = ( case+ !xs0 of | ~stream_vt_cons (x, xs) => ( xs0 := xs; Some_vt(x) ) | ~stream_vt_nil() => let val () = xs0 := $ldelay(stream_vt_nil) in None_vt() // end of [val] end // end of [stream_vt_nil] ) (* end of [stream_vt_uncons_opt] *) (* ****** ****** *) // implement {a}(*tmp*) stream_vt_last_exn(xs) = let // fun loop(x0: a, xs: stream_vt(a)) = ( case+ !xs of | ~stream_vt_nil((*void*)) => x0 | ~stream_vt_cons(x1, xs) => loop(x1, xs) ) (* end of [loop] *) // in // case+ !xs of | ~stream_vt_nil () => $raise StreamSubscriptExn() | ~stream_vt_cons (x0, xs) => $effmask_all(loop(x0, xs)) // end // end of [stream_vt_last_exn] // implement {a}(*tmp*) stream_vt_last_opt(xs) = let // fun loop(x0: a, xs: stream_vt(a)) = ( case+ !xs of | ~stream_vt_nil((*void*)) => x0 | ~stream_vt_cons(x1, xs) => loop(x1, xs) ) (* end of [loop] *) // in // case+ !xs of | ~stream_vt_nil () => None_vt((*void*)) | ~stream_vt_cons (x0, xs) => $effmask_all(Some_vt(loop(x0, xs))) // end // end of [stream_vt_last_opt] // (* ****** ****** *) implement {a}(*tmp*) stream_vt_length(xs0) = let // fun loop ( xs: stream_vt(a), n: intGte(0) ) : intGte(0) = ( case+ !xs of | ~stream_vt_nil() => n | ~stream_vt_cons(_, xs) => loop(xs, n+1) ) (* end of [loop] *) // in $effmask_all(loop(xs0, 0)) end // end of [stream_vt_length] (* ****** ****** *) implement {a}(*tmp*) stream_vt_nth_exn (xs, n) = loop(xs, n) where { // fun loop: $d2ctype ( stream_vt_nth_exn ) = lam(xs, n) => ( case+ !xs of | ~stream_vt_nil() => $raise StreamSubscriptExn() | ~stream_vt_cons(x, xs) => if n = 0 then (~xs; x) else loop(xs, pred(n)) ) (* end of [loop] *) // } (* end of [stream_vt_nth_exn] *) implement {a}(*tmp*) stream_vt_nth_opt (xs, n) = loop(xs, n) where { // fun loop: $d2ctype ( stream_vt_nth_opt ) = lam(xs, n) => ( case+ !xs of | ~stream_vt_nil() => None_vt() | ~stream_vt_cons(x, xs) => if n = 0 then (~xs; Some_vt(x)) else loop(xs, pred(n)) ) (* end of [loop] *) // } (* end of [stream_vt_nth_opt] *) (* ****** ****** *) implement {a}(*tmp*) stream_vt_append (xs, ys) = auxmain(xs, ys) where { // fun auxmain: $d2ctype ( stream_vt_append ) = lam(xs, ys) => $ldelay( // let // val xs_con = !xs // in // case+ xs_con of | ~stream_vt_nil() => !ys | @stream_vt_cons(x, xs) => let val () = ( xs := auxmain(xs, ys) ) (* end of [val] *) prval () = fold@{a}(xs_con) in xs_con end // end of [stream_vt_cons] // end // end-of-let , ( ~(xs); ~(ys) ) // HX: for freeing the stream! // ) (* end of [auxmain] *) // } (* end of [stream_vt_append] *) (* ****** ****** *) implement {a}(*tmp*) stream_vt_concat (xss) = auxmain(xss) where { // vtypedef stream1_vt = stream_vt(a) vtypedef stream2_vt = stream_vt(stream1_vt) // fun auxmain ( xss: stream2_vt ) : stream1_vt = $ldelay ( ( case+ !xss of | ~stream_vt_nil () => stream_vt_nil() // end of [stream_vt_nil] | ~stream_vt_cons (xs, xss) => !(stream_vt_append(xs, auxmain(xss))) // end of [stream_vt_cons] ) , ( ~xss ) (* HX: freeing the stream! *) ) // } (* end of [stream_vt_concat] *) (* ****** ****** *) // (* ** HX-2018-01-04: ** this one is a bit like the ** opposit of [stream_vt_concat] *) // implement {a}(*tmp*) stream_vt_delim_cloptr (xs, pred) = let // fun auxmain ( ys: List0_vt(a), xs: stream_vt(a), f0: (&a) - bool ) : stream_vt(List0_vt(a)) = $ldelay ( case+ !xs of | ~stream_vt_nil() => let val () = pred_free(f0) in case+ ys of | ~list_vt_nil _ => stream_vt_nil(*void*) | list_vt_cons _ => stream_vt_cons (ys, stream_vt_make_nil()) // stream_vt_cons end // end of [stream_vt_nil] | ~stream_vt_cons(x0, xs) => let var x0 = x0; val test = f0(x0) in if test then let val ys = list_vt_reverse(ys) in stream_vt_cons (ys, auxmain(nil_vt(), xs, f0)) // stream_vt_cons end // end of [then] else !(auxmain(cons_vt(x0, ys), xs, f0)) end // end of [stream_vt_cons] , ( list_vt_free(ys); lazy_vt_free(xs); pred_free(f0) ) ) // and pred_free ( f0: (&a) - bool ) : void = cloptr_free{void}($UN.castvwtp0(f0)) // in auxmain(list_vt_nil(*void*), xs, pred) end // end of [stream_vt_delim_cloptr] // (* ****** ****** *) implement {a}(*tmp*) stream_vt_filter ( xs ) = auxmain(xs) where { // fun auxmain ( xs: stream_vt(a) ) : stream_vt(a) = $ldelay (auxmain_con(xs), ~xs) // and auxmain_con ( xs: stream_vt(a) ) : stream_vt_con(a) = ( // let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil ((*_*)) => stream_vt_nil() // end of [stream_vt_nil] | @stream_vt_cons (x0, xs1) => let val test = stream_vt_filter$pred(x0) // end of [val] in if test then xs_con where { val () = (xs1 := auxmain(xs1)) prval () = fold@{a}(xs_con) } (* end of [then] *) else auxmain_con(xs1) where { val xs1 = xs1 val ((*_*)) = free@{a}(xs_con) } (* end of [else] *) // end of [if] end // end of [stream_vt_cons] // end // end of [let] // ) (* end of auxmain_con *) // } (* end of [stream_vt_filter] *) (* ****** ****** *) implement {a}(*tmp*) stream_vt_filter_fun (xs, pred) = let // implement{a2} stream_vt_filter$pred(x) = (test) where { // val p = addr@(x) val (pf, fpf | p) = $UN.ptr0_vtake{a}(p) val test = pred(!p) prval ((*void*)) = fpf(pf) // } // end of [stream_vt_filter$pred] // in stream_vt_filter(xs) end // end of [stream_vt_filter_fun] (* ****** ****** *) implement {a}(*tmp*) stream_vt_filter_cloptr ( xs, pred ) = auxmain(xs, pred) where { // fun auxmain ( // xs: stream_vt(a), pred: (&a) - bool // ) : stream_vt(a) = $ldelay ( auxmain_con(xs, pred) , ( ~xs; cloptr_free ($UN.castvwtp0{cloptr0}(pred)) ) ) and auxmain_con ( // xs: stream_vt(a), pred: (&a) - bool // ) : stream_vt_con(a) = ( // let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil ((*_*)) => let val () = cloptr_free ($UN.castvwtp0{cloptr0}(pred)) // end of [val] in stream_vt_nil(*void*) end // end of [stream_vt_nil] | @stream_vt_cons (x0, xs1) => let val test = pred(x0) in if test then xs_con where { val () = xs1 := auxmain(xs1, pred) val () = fold@{a}(xs_con) } (* end of [then] *) else auxmain_con(xs1, pred) where { val xs1 = xs1 val ((*_*)) = free@{a}(xs_con) } (* end of [else] *) // end of [if] end // end of [stream_vt_cons] // end // end of [let] // ) (* end of auxmain_con *) // } (* end of [stream_vt_filter_cloptr] *) (* ****** ****** *) implement {a}(*tmp*) stream_vt_ifilter_cloptr (xs, pred) = let // fun auxmain ( // i0: intGte(0) , xs: stream_vt(a) , pred: (intGte(0), &a) - bool // ) : stream_vt(a) = $ldelay ( auxmain_con(i0, xs, pred) , ( ~xs; cloptr_free ($UN.castvwtp0{cloptr0}(pred)) ) ) // and auxmain_con ( // i0: intGte(0) , xs: stream_vt(a) , pred: (intGte(0), &a) - bool // ) : stream_vt_con(a) = ( // let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil ((*_*)) => let val () = cloptr_free ( $UN.castvwtp0{cloptr0}(pred) ) (* cloptr_free *) in stream_vt_nil(*void*) end // end of [stream_vt_nil] | @stream_vt_cons (x, xs1) => let val test = pred(i0, x) in if test then let val () = xs1 := auxmain ( i0+1, xs1, pred ) (* end-of-val *) in fold@{a}(xs_con); xs_con end // end of [then] else let val xs1 = xs1 in free@{a}(xs_con); auxmain_con(i0+1, xs1, pred) end // end of [else] // end of [if] end // end of [stream_vt_cons] // end // end of [let] // ) (* end of auxmain_con *) // in auxmain(0, xs, pred) end (* end of [stream_vt_ifilter_cloptr] *) (* ****** ****** *) implement {a}(*tmp*) stream_vt_filterlin (xs) = auxmain(xs) where { // fun auxmain ( xs: stream_vt(a) ) : stream_vt(a) = $ldelay ( auxmain_con(xs) , ( lazy_vt_free(xs) ) (* HX: for freeing the stream! *) // ) and auxmain_con ( xs: stream_vt(a) ) : stream_vt_con(a) = ( // let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil ((*_*)) => stream_vt_nil() // end of [stream_vt_nil] | @stream_vt_cons (x0, xs1) => let val test = stream_vt_filterlin$pred(x0) // end of [val] in if test then let val () = xs1 := auxmain(xs1) in fold@{a}(xs_con); xs_con end // end of [then] else let val () = stream_vt_filterlin$clear(x0) // end of [val] val xs1 = xs1 in free@{a}(xs_con); auxmain_con(xs1) end // end of [else] // end of [if] end // end of [stream_vt_cons] // end // end of [let] // ) (* end of auxmain_con *) // } (* end of [stream_vt_filterlin] *) (* ****** ****** *) implement {a}{b}(*tmp*) stream_vt_map(xs) = let // fun auxmain ( // xs: stream_vt(a) // ) : stream_vt(b) = $ldelay ( // let val xs_con = !xs in // case+ xs_con of // case+ // | ~stream_vt_nil ((*void*)) => stream_vt_nil() // end of [stream_vt_nil] | @stream_vt_cons(x, xs) => let val y = stream_vt_map$fopr (x) val xs = xs val ((*void*)) = free@ (xs_con) in stream_vt_cons{b}(y, auxmain(xs)) end (* end of [stream_vt_con] *) // end // end of [let] // , // ( lazy_vt_free(xs) ) (* HX: for freeing the stream! *) // ) (* end of [auxmain] *) // in auxmain(xs) end // end of [stream_vt_map] (* ****** ****** *) implement {a}{b}(*tmp*) stream_vt_map_fun (xs, fopr) = let // implement {a2}{b2} stream_vt_map$fopr (x) = res where { // prval() = __assert(x) where { extern praxi __assert(x: &a2 >> a2?!): void } val ( pf, fpf | p_x ) = $UN.ptr0_vtake{a}(addr@x) val res = $UN.castvwtp0{b2}(fopr(!p_x)) prval() = $UN.castview0{void}(@(fpf, pf)) // } (* end of [stream_vt_map$fopr] *) // in stream_vt_map(xs) end // end of [stream_vt_map_fun] (* ****** ****** *) implement {a}{b}(*tmp*) stream_vt_map_cloptr (xs, fopr) = let // fun auxmain: $d2ctype ( stream_vt_map_cloptr ) = lam(xs, fopr) => $ldelay ( // let val xs_con = !xs in case+ xs_con of | ~stream_vt_nil () => let // val () = cloptr_free ( $UN.castvwtp0{cloptr0}(fopr) ) // in stream_vt_nil() end // end of [stream_vt_nil] | @stream_vt_cons (x, xs) => let val y = fopr(x) val xs = xs val () = free@{a?}(xs_con) in stream_vt_cons(y, auxmain(xs, fopr)) end // end of [stream_vt_cons] end // end of [let] , ( lazy_vt_free(xs); cloptr_free($UN.castvwtp0{cloptr0}(fopr)) ) // ) (* end of [auxmain] *) // in auxmain(xs, fopr) end // end of [stream_vt_map_cloptr] (* ****** ****** *) implement {a}{b}(*tmp*) stream_vt_imap(xs) = let // fun auxmain ( // i0: intGte(0) , xs: stream_vt(a) // ) : stream_vt(b) = $ldelay ( // let val xs_con = !xs in // case+ xs_con of // case+ // | ~stream_vt_nil ((*void*)) => stream_vt_nil() // end of [stream_vt_nil] | @stream_vt_cons(x, xs) => let val y = stream_vt_imap$fopr(i0, x) val xs = xs val ((*void*)) = free@ (xs_con) in stream_vt_cons{b}(y, auxmain(i0+1, xs)) end (* end of [stream_vt_con] *) // end // end of [let] // , // ( lazy_vt_free(xs) ) (* HX: for freeing the stream! *) // ) (* end of [auxmain] *) // in auxmain(0(*i*), xs) end // end of [stream_vt_imap] (* ****** ****** *) implement {a}{b}(*tmp*) stream_vt_imap_fun (xs, fopr) = let // implement {a2}{b2} stream_vt_imap$fopr (i, x) = res where { // prval() = __assert(x) where { extern praxi __assert(x: &a2 >> a2?!): void } val ( pf, fpf | p_x ) = $UN.ptr0_vtake{a}(addr@x) val res = $UN.castvwtp0{b2}(fopr(i, !p_x)) // prval() = $UN.castview0{void}(@(fpf, pf)) // } (* end of [stream_vt_map$fopr] *) // in stream_vt_imap(xs) end // end of [stream_vt_imap_fun] (* ****** ****** *) implement {a}{b}(*tmp*) stream_vt_imap_cloptr (xs, fopr) = let // fun auxmain ( i0: intGte(0), xs: stream_vt(a), fopr: (intGte(0), &a >> a?!) - b ) : stream_vt(b) = $ldelay ( let val xs_con = !xs in case+ xs_con of | ~stream_vt_nil () => let // val () = cloptr_free ( $UN.castvwtp0{cloptr0}(fopr) ) // in stream_vt_nil() end // end of [stream_vt_nil] | @stream_vt_cons (x, xs) => let val y = fopr(i0, x) val xs = xs val () = free@{a?}(xs_con) in stream_vt_cons(y, auxmain(i0+1, xs, fopr)) end // end of [stream_vt_cons] end // end of [let] , (~xs; cloptr_free($UN.castvwtp0{cloptr0}(fopr))) ) (* end of [auxmain] *) // in auxmain(0, xs, fopr) end // end of [stream_vt_imap_cloptr] (* ****** ****** *) implement {a}{b}(*tmp*) stream_vt_mapopt(xs) = auxmain(xs) where { // fun auxmain ( // xs: stream_vt(a) // ) : stream_vt(b) = $ldelay ( auxmain_con(xs) , // ( lazy_vt_free(xs) ) (* HX: for freeing the stream! *) // ) // and auxmain_con ( // xs: stream_vt(a) // ) : stream_vt_con(b) = ( // let val xs_con = !xs in // case+ xs_con of // case+ // | ~stream_vt_nil ((*void*)) => stream_vt_nil() // end of [stream_vt_nil] | @stream_vt_cons(x, xs) => let val oy = stream_vt_mapopt$fopr (x) val xs = xs val ((*void*)) = free@ (xs_con) in case+ oy of | ~None_vt() => auxmain_con(xs) | ~Some_vt(y) => stream_vt_cons{b}(y, auxmain(xs)) end (* end of [stream_vt_con] *) // end // end of [let] // ) (* end of [auxmain_con] *) // } (* end of [stream_vt_mapopt] *) (* ****** ****** *) implement {a}{b}(*tmp*) stream_vt_mapopt_fun (xs, fopr) = let // implement {a2}{b2} stream_vt_mapopt$fopr (x) = res where { // vtypedef ob2 = Option_vt(b2) // prval() = __assert(x) where { extern praxi __assert(x: &a2 >> a2?!): void } val ( pf, fpf | p_x ) = $UN.ptr0_vtake{a}(addr@x) val res = $UN.castvwtp0{ob2}(fopr(!p_x)) prval() = $UN.castview0{void}(@(fpf, pf)) // } (* end of [stream_vt_map$fopr] *) // in stream_vt_mapopt(xs) end // end of [stream_vt_mapopt_fun] (* ****** ****** *) implement {a}{b}(*tmp*) stream_vt_mapopt_cloptr (xs, fopr) = auxmain(xs, fopr) where { // fun auxmain ( xs: stream_vt(a), f0: (&a >> a?!) - Option_vt(b) ) : stream_vt(b) = $ldelay ( auxmain_con(xs, f0) , ( lazy_vt_free(xs); cloptr_free($UN.castvwtp0{cloptr0}(f0)) ) ) // and auxmain_con ( xs: stream_vt(a), f0: (&a >> a?!) - Option_vt(b) ) : stream_vt_con(b) = ( // let val xs_con = !xs in case+ xs_con of | ~stream_vt_nil () => let // val () = cloptr_free ( $UN.castvwtp0{cloptr0}(f0) ) // in stream_vt_nil() end // end of [stream_vt_nil] | @stream_vt_cons (x0, xs) => let val xs = xs val oy = f0(x0) val () = free@{a?}(xs_con) in case+ oy of | ~None_vt() => auxmain_con(xs, f0) | ~Some_vt(y) => stream_vt_cons(y, auxmain(xs, f0)) end // end of [stream_vt_cons] end // end of [let] // ) (* end of [auxmain_con] *) // } (* end of [stream_vt_mapopt_cloptr] *) (* ****** ****** *) implement {a1,a2}{b} stream_vt_map2 (xs1, xs2) = auxmain(xs1, xs2) where { // fun auxmain ( xs1: stream_vt(a1) , xs2: stream_vt(a2) ) : stream_vt(b) = $ldelay ( let val xs1_con = !xs1 in // case+ xs1_con of | ~stream_vt_nil ((*_*)) => (~(xs2); stream_vt_nil()) | @stream_vt_cons (x1, xs1) => let val xs2_con = !xs2 in case+ xs2_con of | ~stream_vt_nil ((*_*)) => let val xs1 = xs1 val () = free@(xs1_con) in ~(xs1); stream_vt_nil() end // end of [stream_vt_nil] | @stream_vt_cons (x2, xs2) => let val y = stream_vt_map2$fopr(x1, x2) val xs1 = xs1 and xs2 = xs2 val () = free@(xs1_con) and () = free@(xs2_con) in stream_vt_cons{b}(y, auxmain(xs1, xs2)) end // end of [stream_vt_cons] end // end of [stream_vt_cons] // end // end of [let] , // ( lazy_vt_free(xs1); lazy_vt_free(xs2) ) (* HX: for freeing the stream! *) // ) (* $ldelay] *) // end of [auxmain] // } (* end of [stream_vt_map2] *) (* ****** ****** *) implement {a1,a2}{b} stream_vt_map2_fun (xs1, xs2, fopr) = let // implement {a12,a22}{b2} stream_vt_map2$fopr (x1, x2) = res where { // val ( pf1, fpf1 | p_x1 ) = $UN.ptr0_vtake{a1}(addr@x1) and ( pf2, fpf2 | p_x2 ) = $UN.ptr0_vtake{a2}(addr@x2) // val res = $UN.castvwtp0{b2}(fopr(!p_x1, !p_x2)) // prval() = fpf1 (pf1) and () = fpf2 (pf2) // } (* end of [stream_vt_map2$fopr] *) // in stream_vt_map2 (xs1, xs2) end // end of [stream_vt_map2_fun] (* ****** ****** *) implement {a1,a2}{b} stream_vt_map2_cloptr (xs1, xs2, fopr) = auxmain(xs1, xs2, fopr) where { // fun auxmain ( xs1: stream_vt(a1) , xs2: stream_vt(a2) , fopr: (&a1 >> _, &a2 >> _) - b ) : stream_vt(b) = $ldelay ( let val xs1_con = !xs1 in // case+ xs1_con of | ~stream_vt_nil ((*_*)) => stream_vt_nil() where { val () = lazy_vt_free(xs2) val () = cloptr_free ($UN.castvwtp0{cloptr0}(fopr)) } | @stream_vt_cons (x1, xs1) => let val xs2_con = !xs2 in case+ xs2_con of | ~stream_vt_nil ((*_*)) => stream_vt_nil() where { val xs1 = xs1 val () = free@(xs1_con) val () = lazy_vt_free(xs1) val () = cloptr_free ($UN.castvwtp0{cloptr0}(fopr)) } (* end of [stream_vt_nil] *) | @stream_vt_cons (x2, xs2) => let val y = fopr(x1, x2) val xs1 = xs1 and xs2 = xs2 val () = free@ (xs1_con) and () = free@ (xs2_con) in stream_vt_cons{b}(y, auxmain(xs1, xs2, fopr)) // end of [stream_vt_cons] end // end of [stream_vt_cons] end // end of [stream_vt_cons] // end // end of [let] , // ( lazy_vt_free(xs1); lazy_vt_free(xs2); cloptr_free($UN.castvwtp0{cloptr0}(fopr)) ) (* HX: for freeing the stream! *) // ) (* $ldelay] *) // end of [auxmain] // } (* end of [stream_vt_map2_cloptr] *) (* ****** ****** *) implement {res}{a} stream_vt_scan_cloptr (xs, ini, fopr) = let // fun auxmain: $d2ctype ( stream_vt_scan_cloptr ) = lam ( xs, ini, fopr ) => $ldelay ( let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil () => let // val () = cloptr_free ( $UN.castvwtp0{cloptr0}(fopr) ) // in stream_vt_nil() end // end of [stream_vt_nil] | @stream_vt_cons (x, xs) => let val xs = xs val ini = fopr(ini, x) val ((*freed*)) = free@(xs_con) in stream_vt_cons(ini, auxmain(xs, ini, fopr)) end // end of [stream_vt_cons] end // end of [let] , ( lazy_vt_free(xs); cloptr_free($UN.castvwtp0{cloptr0}(fopr))) ) (* end of [auxmain] *) // in stream_vt_make_cons(ini, auxmain(xs, ini, fopr)) end // end of [stream_vt_scan_cloptr] (* ****** ****** *) implement {a}(*tmp*) stream_vt_tabulate ( // argumentless ) = auxmain(0) where { // fun auxmain ( i : intGte(0) ) : stream_vt(a) = ( $ldelay ( stream_vt_cons ( stream_vt_tabulate$fopr(i), auxmain(i+1) ) ) (* $ldelay *) ) (* end of [aux] *) // } (* end of [stream_vt_tabulate] *) (* ****** ****** *) implement {a}(*tmp*) stream_vt_labelize(xs) = let // vtypedef ia = @(intGte(0), a) // fun auxmain ( i0: intGte(0) , xs: stream_vt(a) ) : stream_vt(ia) = $ldelay ( ( case+ !xs of | ~stream_vt_nil () => stream_vt_nil() // end of [stream_vt_nil] | ~stream_vt_cons (x, xs) => stream_vt_cons((i0, x), auxmain(i0+1, xs)) // end of [stream_vt_cons] ) , ( lazy_vt_free(xs) ) // HX: for freeing the stream! ) (* end of [auxmain] *) // in auxmain(0, xs) end // end of [stream_vt_labelize] (* ****** ****** *) implement {a}(*tmp*) stream_vt_foreach (xs) = let // var env: void = ((*void*)) // in stream_vt_foreach_env(xs, env) end // end of [stream_vt_foreach] implement {a}{env}(*tmp*) stream_vt_foreach_env (xs, env) = let // fun loop ( xs: stream_vt(a) , env: &env >> env ) : stream_vt_con(a) = let // val xs_con = !xs // in // case+ xs_con of | @stream_vt_cons (x, xs1) => let val test = stream_vt_foreach$cont(x, env) in if test then let val xs1 = xs1 val ((*void*)) = stream_vt_foreach$fwork(x, env) val ((*freed*)) = free@{a}(xs_con) in loop(xs1, env) end else let prval((*folded*)) = fold@(xs_con) in xs_con end // end of [if] end // end of [stream_vt_cons] | ~stream_vt_nil((*void*)) => stream_vt_nil() // end // end of [loop] // in loop(xs, env) end // end of [stream_vt_foreach_env] implement(a,env) stream_vt_foreach$cont(x0, env) = true(*cont*) (* ****** ****** *) implement {a}(*tmp*) stream_vt_foreach_cloptr (xs, fwork) = let // fun loop : $d2ctype ( stream_vt_foreach_cloptr ) = lam(xs, fwork) => let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil() => cloptr_free ($UN.castvwtp0{cloptr0}(fwork)) // cloptr_free | @stream_vt_cons(x, xs) => let val xs = xs in fwork(x); free@{a?}(xs_con); loop(xs, fwork) end // end of [let] end // end of [let] // end of [lam] // in loop(xs, fwork) end // end of [stream_vt_foreach_cloptr] (* ****** ****** *) implement {a}(*tmp*) stream_vt_rforeach_cloptr (xs, fwork) = let // fun aux0 ( xs: stream_vt(a) , fwork: !(&a >> a?!) - void ) : void = let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil() => () | @stream_vt_cons(x, xs) => ( aux0(xs, fwork); fwork(x); free@{a?}(xs_con) ) (* stream_vt_cons *) end // end of [let] // end of [lam] // val ((*void*)) = aux0(xs, fwork) // in // cloptr_free($UN.castvwtp0{cloptr0}(fwork)) // end // end of [stream_vt_rforeach_cloptr] (* ****** ****** *) implement {a}(*tmp*) stream_vt_iforeach_cloptr (xs, fwork) = let // fun loop ( i0: intGte(0) , xs: stream_vt(a) , fwork: (intGte(0), &a >> a?!) - void ) : void = let // val xs_con = !xs // in // case+ xs_con of | ~stream_vt_nil() => cloptr_free ($UN.castvwtp0{cloptr0}(fwork)) // cloptr_free | @stream_vt_cons(x, xs) => let val xs = xs in fwork(i0, x); free@{a?}(xs_con); loop(i0+1, xs, fwork) end // end of [let] end // end of [let] // end of [lam] // in loop(0(*i0*), xs, fwork) end // end of [stream_vt_iforeach_cloptr] (* ****** ****** *) // implement {res}{a} stream_vt_foldleft_cloptr (xs, init, fopr) = loop(xs, init, fopr) where { // fun loop: $d2ctype (stream_vt_foldleft_cloptr) = lam ( xs, res, fopr ) => let var xs_con = !xs in // case+ xs_con of // case+ | ~stream_vt_nil () => ( cloptr_free($UN.castvwtp0(fopr)); res ) (* end of [stream_vt_nil] *) | @stream_vt_cons (x0, xs1) => let val res = fopr(res, x0) val xs1 = xs1 in free@(xs_con); loop(xs1, res, fopr) end // end of [stream_vt_cons] // end // end of [loop] // } (* end of [stream_vt_foldleft_cloptr] *) // (* ****** ****** *) // implement {res}{a} stream_vt_ifoldleft_cloptr (xs, init, fopr) = loop(0, xs, init, fopr) where { // fun loop ( i0: Nat, xs: stream_vt(a), res: res, fopr: (Nat, res, &a >> a?!) - res ) : res = let var xs_con = !xs in // case+ xs_con of // case+ | ~stream_vt_nil () => ( cloptr_free($UN.castvwtp0(fopr)); res ) (* end of [stream_vt_nil] *) | @stream_vt_cons (x0, xs1) => let val res = fopr(i0, res, x0) val xs1 = xs1 in free@(xs_con); loop(i0+1, xs1, res, fopr) end // end of [stream_vt_cons] // end // end of [loop] // } (* end of [stream_vt_ifoldleft_cloptr] *) // (* ****** ****** *) implement {env}{a} stream_vt_unfold ( st0, fopr ) = aux(st0) where { // fun aux ( st: env ) : stream_vt(a) = $ldelay ( let var st = st; val x0 = fopr(st) in stream_vt_cons{a}(x0, aux(st)) end // end of [aux] ) // } (* end of [stream_vt_unfold] *) implement {env}{a} stream_vt_unfold_opt ( st0, fopr ) = aux(st0) where { // fun aux ( st: env ) : stream_vt(a) = $ldelay ( let var st = st; val opt = fopr(st) in case+ opt of | ~None_vt() => stream_vt_nil() | ~Some_vt(x0) => stream_vt_cons{a}(x0, aux(st)) end // end of [let] ) // } (* end of [stream_vt_unfold_opt] *) (* ****** ****** *) implement {x,y}(*tmp*) cross_stream_vt_list (xs0, ys0) = let // fun auxmain ( xs: stream_vt(x) ) : stream_vt(@(x, y)) = $ldelay ( ( case+ !xs of | ~stream_vt_nil () => stream_vt_nil() | ~stream_vt_cons (x, xs) => !(auxmain2(x, xs, ys0)) ) , (~xs) // called when the stream is freed ) (* end of [auxmain] *) // and auxmain2 ( x0: x , xs: stream_vt(x), ys: List(y) ) : stream_vt(@(x, y)) = $ldelay ( ( case+ ys of | list_nil() => !(auxmain(xs)) | list_cons(y, ys) => stream_vt_cons((x0, y), auxmain2(x0, xs, ys)) ) , ~(xs) // called when the stream is freed ) (* end of [auxmain2] *) // in auxmain(xs0) end // end of [cross_stream_vt_list] (* ****** ****** *) implement {x,y}(*tmp*) cross_stream_vt_list_vt (xs0, ys0) = let // val ys0 = $UN.castvwtp0{ptr}(ys0) // fun auxmain ( xs: stream_vt(x) ) : stream_vt(@(x, y)) = $ldelay ( ( case+ !xs of | ~stream_vt_nil ((*void*)) => stream_vt_nil() | ~stream_vt_cons(x, xs) => !(auxmain2(x, xs, $UN.cast{List(y)}(ys0))) ) , ( lazy_vt_free(xs); list_vt_free($UN.castvwtp0{List_vt(y)}(ys0)) ) ) (* end of [auxmain] *) // and auxmain2 ( x0: x , xs: stream_vt(x), ys: List(y) ) : stream_vt(@(x, y)) = $ldelay ( ( case+ ys of | list_nil() => !(auxmain(xs)) | list_cons(y, ys) => stream_vt_cons((x0, y), auxmain2(x0, xs, ys)) ) , (~xs; list_vt_free($UN.castvwtp0{List_vt(y)}(ys0))) ) (* end of [auxmain2] *) // in auxmain(xs0) end // end of [cross_stream_vt_list_vt] (* ****** ****** *) // implement {a}(*tmp*) stream_vt_fprint (xs, out, n) = let // fun loop1 ( xs: stream_vt(a), i: int ) : void = ( // case+ !xs of | ~stream_vt_nil() => () | ~stream_vt_cons(x, xs) => ( (if i > 0 then stream_vt_fprint$sep<>(out)); fprint_val(out, x); loop1(xs, i+1) ) (* end of [stream_vt_cons] *) // ) (* end of [loop1] *) // fun loop2 ( xs: stream_vt(a), i: int ) : void = ( // if ( i < n ) then ( // case+ !xs of | ~stream_vt_nil() => () | ~stream_vt_cons(x, xs) => ( (if i > 0 then stream_vt_fprint$sep<>(out)); fprint_val(out, x); loop2(xs, i+1) ) (* end of [stream_vt_cons] *) // ) else ~(xs) // end of [if] // ) (* end of [loop2] *) // val () = stream_vt_fprint$beg(out) // val () = ( if n < 0 then loop1(xs, 0(*i*)) else loop2(xs, 0(*i*)) // end of [val] ) : void // end of [val] // val () = stream_vt_fprint$end(out) // in // nothing end // end of [stream_vt_fprint] // implement {}(*tmp*) stream_vt_fprint$beg(out) = fprint_string(out, "(") implement {}(*tmp*) stream_vt_fprint$end(out) = fprint_string(out, ")") implement {}(*tmp*) stream_vt_fprint$sep(out) = fprint_string(out, ", ") // (* ****** ****** *) local // datavtype streamer(a:vt@ype+) = STREAMER of (streamopt_vt(a)) // assume streamer_vtype(a:vt0p) = streamer(a) // in (* in-of-local *) implement {}(*tmp*) streamer_vt_make(xs) = STREAMER(Some_vt(xs)) implement {}(*tmp*) streamer_vt_free (xser) = let // val+~STREAMER(opt) = xser // in case+ opt of | ~None_vt() => () | ~Some_vt(xs) => ~(xs) end // end of [streamer_vt_free] implement {a}(*tmp*) streamer_vt_eval_exn (xser) = let // val+@STREAMER(opt) = xser // in // case+ opt of | None_vt() => let prval () = fold@(xser) in $raise StreamSubscriptExn() end (* end of [None_vt] *) | @Some_vt(xs) => ( case+ !xs of | ~stream_vt_nil() => ( free@(opt); opt := None_vt(); fold@(xser); $raise StreamSubscriptExn() ) | ~stream_vt_cons(x0, xs1) => ( xs := xs1; fold@(opt); fold@(xser); x0 ) ) (* end of [Some_vt] *) end // end of [streamer_vt_eval_exn] (* ****** ****** *) implement {a}(*tmp*) streamer_vt_eval_opt (xser) = let // val+@STREAMER(opt) = xser // in // case+ opt of | None_vt() => None_vt() where { prval () = fold@(xser) } (* end of [None_vt] *) | @Some_vt(xs) => ( case+ !xs of | ~stream_vt_nil() => ( free@(opt); opt := None_vt(); fold@(xser); None_vt() ) | ~stream_vt_cons(x0, xs1) => ( xs := xs1; fold@(opt); fold@(xser); Some_vt(x0) ) ) (* end of [Some_vt] *) end // end of [streamer_vt_eval_opt] end // end of [local] (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/char.dats0000644000175000017500000000663513431250607020661 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/char.atxt ** Time of generation: Thu Feb 14 11:29:46 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading at run-time (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement{tk} g0int_of_char (c) = __cast (c) where { extern castfn __cast (c: char):<> g0int (tk) } // end of [g0int_of_char] implement{tk} g0int_of_schar (c) = __cast (c) where { extern castfn __cast (c: schar):<> g0int (tk) } // end of [g0int_of_schar] implement{tk} g0int_of_uchar (c) = __cast (c) where { extern castfn __cast (c: uchar):<> g0int (tk) } // end of [g0int_of_uchar] implement{tk} g0uint_of_uchar (c) = __cast (c) where { extern castfn __cast (c: uchar):<> g0uint (tk) } // end of [g0uint_of_uchar] (* ****** ****** *) implement{tk} g1int_of_char1 {c} (c) = __cast (c) where { extern castfn __cast (c: char c):<> g1int (tk, c) } // end of [g1int_of_char1] implement{tk} g1int_of_schar1 {c} (c) = __cast (c) where { extern castfn __cast (c: schar c):<> g1int (tk, c) } // end of [g1int_of_schar1] implement{tk} g1int_of_uchar1 {c} (c) = __cast (c) where { extern castfn __cast (c: uchar c):<> g1int (tk, c) } // end of [g1int_of_uchar1] implement{tk} g1uint_of_uchar1 {c} (c) = __cast (c) where { extern castfn __cast (c: uchar c):<> g1uint (tk, c) } // end of [g1uint_of_uchar1] (* ****** ****** *) implement {}(*tmp*) char2string(c) = $effmask_wrt ( $UN.castvwtp0{string}(char2strptr(c)) ) (* end of [char2string] *) implement {}(*tmp*) char2strptr(c) = let // #define BSZ 16 // typedef cstring = $extype"atstype_string" // var buf = @[byte][BSZ]() val bufp = $UN.cast{cstring}(addr@buf) // val _(*int*) = $extfcall(ssize_t, "snprintf", bufp, BSZ, "%c", c) // in $UN.castvwtp0{Strptr1}(string0_copy($UN.cast{string}(bufp))) end // end of [char2strptr] (* ****** ****** *) // implement fprint_val = fprint_char implement fprint_val = fprint_uchar implement fprint_val = fprint_schar // (* ****** ****** *) (* end of [char.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/DATS/arith_prf.dats0000644000175000017500000001445013431250607021714 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/DATS/CODEGEN/arith_prf.atxt ** Time of generation: Thu Feb 14 11:29:45 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) primplmnt eqint_make () = EQINT () (* ****** ****** *) primplmnt mul_gte_gte_gte {m,n} () = let prfun loop {m:nat}{p:int} .. (pf: MUL (m, n, p)):<> [p >= 0] void = sif m > 0 then let prval MULind (pf1) = pf in loop (pf1) end else let prval MULbas () = pf in (*nothing*) end // end of [sif] // end of [loop] prval pf = mul_make {m,n} () in loop {m} (pf) end // end of [mul_gte_gte_gte] primplmnt mul_gte_lte_lte {m,n} () = let prfun loop {m:nat}{p:int} .. (pf: MUL (m, n, p)):<> [p <= 0] void = sif m > 0 then let prval MULind (pf1) = pf in loop (pf1) end else let prval MULbas () = pf in (*nothing*) end // end of [sif] // end of [loop] prval pf = mul_make {m,n} () in loop {m} (pf) end // end of [mul_gte_lte_lte] primplmnt mul_lte_gte_lte {m,n} () = mul_gte_lte_lte {n,m} () primplmnt mul_lte_lte_gte {m,n} () = mul_gte_gte_gte {~m,~n} () (* ****** ****** *) primplmnt mul_nat_nat_nat {m,n} (pf) = let prval () = mul_elim (pf) prval () = mul_gte_gte_gte {m,n} () in (*nothing*) end // end of [mul_nat_nat_nat] primplmnt mul_pos_pos_pos {m,n} (pf) = let prval () = mul_elim (pf) prval () = mul_gte_gte_gte {m-1,n-1} () in (*nothing*) end // end of [mul_pos_pos_pos] (* ****** ****** *) primplmnt mul_negate {m,n} (pf) = let prval () = mul_elim (pf) in mul_make {~m,n} () end // end of [mul_negate] primplmnt mul_negate2 {m,n} (pf) = let prval () = mul_elim (pf) in mul_make {m,~n} () end // end of [mul_negate2] (* ****** ****** *) primplmnt mul_commute {m,n} (pf) = let prval () = mul_elim (pf) in mul_make {n,m} () end // end of [mul_commute] primplmnt mul_is_commutative (pf1, pf2) = let prval () = mul_elim (pf1) and () = mul_elim (pf2) in (*nothing*) end // end of [mul_commute] (* ****** ****** *) primplmnt mul_distribute {m}{n1,n2} (pf1, pf2) = let prval () = mul_elim (pf1) and () = mul_elim (pf2) in mul_make {m,n1+n2} () end // end of [mul_distribute] primplmnt mul_distribute2 {m1,m2}{n} (pf1, pf2) = let prval () = mul_elim (pf1) and () = mul_elim (pf2) in mul_make {m1+m2,n} () end // end of [mul_distribute] (* ****** ****** *) primplmnt mul_is_associative {x,y,z}{xy,yz} (pf1, pf2, pf3, pf4) = { prval pf1_alt = mul_make {x,y} () prval EQINT () = mul_isfun2 (pf1, pf1_alt) prval pf2_alt = mul_make {y,z} () prval EQINT () = mul_isfun2 (pf2, pf2_alt) prval pf3_alt = mul_make {xy,z} () prval EQINT () = mul_isfun2 (pf3, pf3_alt) prval pf4_alt = mul_make {x,yz} () prval EQINT () = mul_isfun2 (pf4, pf4_alt) // } // end of [mul_is_associative] (* ****** ****** *) primplmnt lemma_exp2_param (pf) = let prfun aux {n:int} {p:int} .. ( pf: EXP2 (n, p) ) : [n>=0;p>=1] void = case+ pf of | EXP2ind (pf1) => aux (pf1) | EXP2bas () => () // end of [aux] in aux (pf) end // end of [lemma_exp2_param] (* ****** ****** *) primplmnt exp2_istot {n} () = istot {n} () where { prfun istot {n:nat} .. (): [p:nat] EXP2 (n, p) = sif n > 0 then EXP2ind (istot {n-1} ()) else EXP2bas () } // end of [exp2_istot] (* ****** ****** *) primplmnt exp2_isfun (pf1, pf2) = isfun (pf1, pf2) where { prfun isfun {n:nat} {p1,p2:int} .. ( pf1: EXP2 (n, p1), pf2: EXP2 (n, p2) ) : [p1==p2] void = case+ pf1 of | EXP2ind pf1 => let prval EXP2ind pf2 = pf2 in isfun (pf1, pf2) end // end of [EXP2ind] | EXP2bas () => let prval EXP2bas () = pf2 in (* nothing *) end // end of [EXP2bas] // end of [isfun] } // end of [exp2_isfun] (* ****** ****** *) primplmnt exp2_is_mono (pf1, pf2) = aux (pf1, pf2) where { prfun aux {n1:nat;n2:int | n1 <= n2} {p1,p2:int} .. ( pf1: EXP2 (n1, p1), pf2: EXP2 (n2, p2) ) : [p1 <= p2] void = case+ pf2 of | EXP2ind (pf2) => (case+ pf1 of | EXP2ind (pf1) => aux (pf1, pf2) | EXP2bas () => aux (pf1, pf2) ) // end of [EXP2ind] | EXP2bas () => let prval EXP2bas () = pf1 in () end // end of [aux] } // end of [exp2_is_mono] (* ****** ****** *) primplmnt exp2_muladd (pf1, pf2, pf3) = let prfun aux {n1,n2:nat} {p1,p2:int} {p:int} .. ( pf1: EXP2 (n1, p1) , pf2: EXP2 (n2, p2) , pf3: MUL (p1, p2, p) ) : [p>=0] EXP2 (n1+n2, p) = case+ pf2 of | EXP2ind {n21} {p21} (pf21) => let // n2 = n21+1; p2 = p21 + p21 prval pf31 = mul_istot {p1,p21} () prval pf32 = mul_distribute (pf31, pf31) prval () = mul_isfun (pf3, pf32) prval pf1_res = aux (pf1, pf21, pf31) in EXP2ind pf1_res end // end of [EXP2ind] | EXP2bas () => let prval () = lemma_exp2_param (pf1) prval () = mul_elim (pf3) in pf1 end // end of [EXP2bas] // end of [aux] in aux (pf1, pf2, pf3) end // end of [exp2_muladd] (* ****** ****** *) (* end of [arith_prf.dats] *) ATS2-Postiats-gmp-0.3.13/./prelude/lmacrodef.hats0000644000175000017500000000563613431250607021151 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author of the file: // Hongwei Xi (gmhwxiATgmailDOTcom) // Start Time: March, 2013 // (* ****** ****** *) // // HX-2013-03: // lmacrodef: local macro definitions // (* ****** ****** *) // macdef :+= (x, a) = let val v = ,(x) in ,(x) := ,(a) + v end macdef :-= (x, a) = let val v = ,(x) in ,(x) := ,(a) - v end macdef :*= (x, a) = let val v = ,(x) in ,(x) := ,(a) * v end macdef :/= (x, a) = let val v = ,(x) in ,(x) := ,(a) / v end // (* ****** ****** *) // macdef :=+ (x, a) = let val v = ,(x) in ,(x) := v + ,(a) end macdef :=- (x, a) = let val v = ,(x) in ,(x) := v - ,(a) end macdef :=* (x, a) = let val v = ,(x) in ,(x) := v * ,(a) end macdef :=/ (x, a) = let val v = ,(x) in ,(x) := v / ,(a) end // (* ****** ****** *) // macdef println(x) = (print(,(x)); print_newline()) macdef prerrln(x) = (prerr(,(x)); prerr_newline()) // macdef fprintln(out, x) = (fprint(,(out), ,(x)); fprint_newline(,(out))) // (* ****** ****** *) (* // // HX-2012-08: // // this example makes use of recursive macrodef // *) (* // local // macrodef rec auxlist (xs, y) = ( // if iscons! (xs) then `(print ,(car! xs); ,(auxlist (cdr! xs, y))) else y // end of [if] // ) (* end of [auxlist] *) // in (* in of [local] *) macdef print_mac (x) = ,( if islist! (x) then auxlist (x, `()) else `(print ,(x)) ) (* end of [print_mac] *) macdef println_mac (x) = ,( if islist! (x) then auxlist (x, `(print_newline())) else `(print ,(x); print_newline()) // end of [if] ) (* end of [println_mac] *) end // end of [local] // *) (* ****** ****** *) // macdef eqfn(x0) = lam(x) = (,(x0) = x) macdef cmpfn(x0) = lam(x) = compare(,(x0), x) // (* ****** ****** *) (* end of [lmacrodef.hats] *) ATS2-Postiats-gmp-0.3.13/./prelude/basics_sta.sats0000644000175000017500000004401713431250607021337 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author of the file: // Hongwei Xi (gmhwxiATgmailDOTcom) // Start Time: September, 2011 // (* ****** ****** *) #include "prelude/params.hats" (* ****** ****** *) #if VERBOSE_PRELUDE #then #print "Loading [basics_sta.sats] starts!\n" #endif // end of [VERBOSE_PRELUDE] (* ****** ****** *) #define RD(x) x // for commenting: read-only (* ****** ****** *) (* // // HX-2012-05-24: // the following two styles are equivalent: // stadef bool_kind = $extkind"atstype_bool" tkindef bool_kind = "atstype_bool" *) (* ****** ****** *) // tkindef bool_kind = "atstype_bool" // abst@ype bool_t0ype = tkind_t0ype (bool_kind) stadef bool = bool_t0ype // shorthand abst@ype bool_bool_t0ype (b: bool) = bool_t0ype stadef bool = bool_bool_t0ype // shorthand // typedef Bool = [b:bool] bool (b) typedef boolLte (b1:bool) = [b2:bool] bool (b2 <= b1) // b2 -> b1 typedef boolGte (b1:bool) = [b2:bool] bool (b2 >= b1) // b1 -> b2 // abst@ype atstype_bool // HX-2013-09: for internal use // (* ****** ****** *) tkindef byte_kind = "atstype_byte" abst@ype byte_t0ype = tkind_t0ype (byte_kind) stadef byte = byte_t0ype (* ****** ****** *) // // char is signed // sortdef int8 = { i:int | ~128 <= i; i < 128 } // end of [int8] sortdef uint8 = { i:int | 0 <= i; i < 256 } // end of [uint8] // tkindef char_kind = "atstype_char" // abst@ype char_t0ype = tkind_t0ype(char_kind) abst@ype char_int_t0ype(c:int) = char_t0ype // stadef char = char_t0ype // shorthand stadef char = char_int_t0ype // shorthand // typedef Char = [c:int8] char(c) typedef charNZ = [c:int8 | c != 0] char(c) // // signed characters // tkindef schar_kind = "atstype_schar" // abst@ype schar_t0ype = tkind_t0ype(schar_kind) abst@ype schar_int_t0ype (c:int) = schar_t0ype // stadef schar = schar_t0ype // shorthand stadef schar = schar_int_t0ype // shorthand typedef sChar = [c:int8] schar(c) typedef scharNZ = [c:int8 | c != 0] schar(c) // // unsigned characters // tkindef uchar_kind = "atstype_uchar" // abst@ype uchar_t0ype = tkind_t0ype(uchar_kind) abst@ype uchar_int_t0ype (c:int) = uchar_t0ype // stadef uchar = uchar_t0ype // shorthand stadef uchar = uchar_int_t0ype // shorthand typedef uChar = [c:uint8] uchar (c) typedef scharNZ = [c:uint8 | c != 0] uchar(c) // (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) // abst@ype g0int_t0ype (tk:tk) = tkind_t0ype (tk) stadef g0int = g0int_t0ype // shorthand abst@ype g1int_int_t0ype (tk:tkind, int) = g0int (tk) stadef g1int = g1int_int_t0ype // shorthand // typedef g1int (tk:tkind) = [i:int] g1int (tk, i) typedef g1int0 (tk:tkind) = [i:int | i >= 0] g1int (tk, i) typedef g1int1 (tk:tkind) = [i:int | i >= 1] g1int (tk, i) // (* ****** ****** *) // typedef g1intLt (tk:tk, n:int) = [i:int | i < n] g1int (tk, i) typedef g1intLte (tk:tk, n:int) = [i:int | i <= n] g1int (tk, i) typedef g1intGt (tk:tk, n:int) = [i:int | i > n] g1int (tk, i) typedef g1intGte (tk:tk, n:int) = [i:int | i >= n] g1int (tk, i) typedef g1intBtw (tk:tk, lb:int, ub:int) = [i: int | lb <= i; i < ub] g1int (tk, i) typedef g1intBtwe (tk:tk, lb:int, ub:int) = [i: int | lb <= i; i <= ub] g1int (tk, i) // (* ****** ****** *) // abst@ype g0uint_t0ype (tk:tkind) = tkind_t0ype (tk) stadef g0uint = g0uint_t0ype // shorthand abst@ype g1uint_int_t0ype (tk:tkind, int) = g0uint (tk) stadef g1uint = g1uint_int_t0ype // shorthand // typedef g1uint (tk:tk) = [i:int] g1uint (tk, i) typedef g1uint0 (tk:tk) = [i:int | i >= 0] g1uint (tk, i) typedef g1uint1 (tk:tk) = [i:int | i >= 1] g1uint (tk, i) // (* ****** ****** *) // typedef g1uintLt (tk:tk, n:int) = [i:nat | i < n] g1uint (tk, i) typedef g1uintLte (tk:tk, n:int) = [i:nat | i <= n] g1uint (tk, i) typedef g1uintGt (tk:tk, n:int) = [i:int | i > n] g1uint (tk, i) typedef g1uintGte (tk:tk, n:int) = [i:int | i >= n] g1uint (tk, i) typedef g1uintBtw (tk:tk, lb:int, ub:int) = [i: int | lb <= i; i < ub] g1uint (tk, i) typedef g1uintBtwe (tk:tk, lb:int, ub:int) = [i: int | lb <= i; i <= ub] g1uint (tk, i) // (* ****** ****** *) // tkindef int_kind = "atstype_int" // typedef int0 = g0int (int_kind) typedef int1 (i:int) = g1int (int_kind, i) // stadef int = int1 // 2nd-select stadef int = int0 // 1st-select // typedef Int = [i:int] int1 (i) typedef Nat = [i:int | i >= 0] int1 (i) // typedef intLt (n:int) = g1intLt (int_kind, n) typedef intLte (n:int) = g1intLte (int_kind, n) typedef intGt (n:int) = g1intGt (int_kind, n) typedef intGte (n:int) = g1intGte (int_kind, n) typedef intBtw (lb:int, ub:int) = g1intBtw (int_kind, lb, ub) typedef intBtwe (lb:int, ub:int) = g1intBtwe (int_kind, lb, ub) // typedef Two = intBtw (0, 2) typedef Sgn = intBtwe (~1, 1) // typedef natLt (n:int) = intBtw (0, n) typedef natLte (n:int) = intBtwe (0, n) // tkindef uint_kind = "atstype_uint" // typedef uint0 = g0uint (uint_kind) typedef uint1 (n:int) = g1uint (uint_kind, n) // stadef uint = uint1 // 2nd-select stadef uint = uint0 // 1st-select // stadef uInt = [n:int] uint1 (n) // typedef uintLt (n:int) = g1uintLt (uint_kind, n) typedef uintLte (n:int) = g1uintLte (uint_kind, n) typedef uintGt (n:int) = g1uintGt (uint_kind, n) typedef uintGte (n:int) = g1uintGte (uint_kind, n) typedef uintBtw (lb:int, ub:int) = g1uintBtw (uint_kind, lb, ub) typedef uintBtwe (lb:int, ub:int) = g1uintBtwe (uint_kind, lb, ub) // abst@ype atstype_int // HX-2013-09: for internal use abst@ype atstype_uint // HX-2013-09: for internal use // (* ****** ****** *) // tkindef lint_kind = "atstype_lint" typedef lint0 = g0int (lint_kind) typedef lint1 (i:int) = g1int (lint_kind, i) stadef lint = lint1 // 2nd-select stadef lint = lint0 // 1st-select // tkindef ulint_kind = "atstype_ulint" typedef ulint0 = g0uint (ulint_kind) typedef ulint1 (i:int) = g1uint (ulint_kind, i) stadef ulint = ulint1 // 2nd-select stadef ulint = ulint0 // 1st-select // tkindef llint_kind = "atstype_llint" typedef llint0 = g0int (llint_kind) typedef llint1 (i:int) = g1int (llint_kind, i) stadef llint = llint1 // 2nd-select stadef llint = llint0 // 1st-select // tkindef ullint_kind = "atstype_ullint" typedef ullint0 = g0uint (ullint_kind) typedef ullint1 (i:int) = g1uint (ullint_kind, i) stadef ullint = ullint1 // 2nd-select stadef ullint = ullint0 // 1st-select // (* ****** ****** *) // tkindef intptr_kind = "atstype_intptr" typedef intptr0 = g0int (intptr_kind) typedef intptr1 (i:int) = g1int (intptr_kind, i) stadef intptr = intptr1 // 2nd-select stadef intptr = intptr0 // 1st-select // tkindef uintptr_kind = "atstype_uintptr" typedef uintptr0 = g0uint (uintptr_kind) typedef uintptr1 (i:int) = g1uint (uintptr_kind, i) stadef uintptr = uintptr1 // 2nd-select stadef uintptr = uintptr0 // 1st-select // (* ****** ****** *) // tkindef sint_kind = "atstype_sint" typedef sint0 = g0int (sint_kind) typedef sint1 (i:int) = g1int (sint_kind, i) stadef sint = sint1 // 2nd-select stadef sint = sint0 // 1st-select // tkindef usint_kind = "atstype_usint" typedef usint0 = g0uint (usint_kind) typedef usint1 (i:int) = g1uint (usint_kind, i) stadef usint = usint1 // 2nd-select stadef usint = usint0 // 1st-select // (* ****** ****** *) // tkindef size_kind = "atstype_size" typedef size0_t = g0uint (size_kind) typedef size1_t (i:int) = g1uint (size_kind, i) // stadef size_t = size1_t // 2nd-select stadef size_t = size0_t // 1st-select // typedef Size = [i:int | i >= 0] g1uint (size_kind, i) typedef Size_t = Size // typedef sizeLt (n:int) = g1uintLt (size_kind, n) typedef sizeLte (n:int) = g1uintLte (size_kind, n) typedef sizeGt (n:int) = g1uintGt (size_kind, n) typedef sizeGte (n:int) = g1uintGte (size_kind, n) typedef sizeBtw (lb:int, ub:int) = g1uintBtw (size_kind, lb, ub) typedef sizeBtwe (lb:int, ub:int) = g1uintBtwe (size_kind, lb, ub) // tkindef ssize_kind = "atstype_ssize" typedef ssize0_t = g0int (ssize_kind) typedef ssize1_t (i:int) = g1int (ssize_kind , i) // stadef ssize_t = ssize1_t // 2nd-select stadef ssize_t = ssize0_t // 1st-select // typedef SSize = [i:int] g1int (ssize_kind, i) typedef SSize_t = SSize // typedef ssizeLt (n:int) = g1intLt (ssize_kind, n) typedef ssizeLte (n:int) = g1intLte (ssize_kind, n) typedef ssizeGt (n:int) = g1intGt (ssize_kind, n) typedef ssizeGte (n:int) = g1intGte (ssize_kind, n) typedef ssizeBtw (lb:int, ub:int) = g1intBtw (ssize_kind, lb, ub) typedef ssizeBtwe (lb:int, ub:int) = g1intBtwe (ssize_kind, lb, ub) // abst@ype atstype_size // HX-2013-09: for internal use abst@ype atstype_ssize // HX-2013-09: for internal use // (* ****** ****** *) typedef sizeof_t (a:vt@ype) = size_t (sizeof(a?)) (* ****** ****** *) // tkindef int8_kind = "atstype_int8" typedef int8_0 = g0int (int8_kind) typedef int8_1 (i:int) = g1int (int8_kind, i) // stadef int8 = int8_1 // 2nd-select stadef int8 = int8_0 // 1st-select stadef Int8 = [i:int] int8_1 (i) // tkindef uint8_kind = "atstype_uint8" typedef uint8_0 = g0uint (uint8_kind) typedef uint8_1 (i:int) = g1uint (uint8_kind, i) // stadef uint8 = uint8_1 // 2nd-select stadef uint8 = uint8_0 // 1st-select stadef uInt8 = [i:nat] uint8_1 (i) // (* ****** ****** *) // tkindef int16_kind = "atstype_int16" typedef int16_0 = g0int (int16_kind) typedef int16_1 (i:int) = g1int (int16_kind, i) // stadef int16 = int16_1 // 2nd-select stadef int16 = int16_0 // 1st-select stadef Int16 = [i:int] int16_1 (i) // tkindef uint16_kind = "atstype_uint16" typedef uint16_0 = g0uint (uint16_kind) typedef uint16_1 (i:int) = g1uint (uint16_kind, i) // stadef uint16 = uint16_1 // 2nd-select stadef uint16 = uint16_0 // 1st-select stadef uInt16 = [i:nat] uint16_1 (i) // (* ****** ****** *) // tkindef int32_kind = "atstype_int32" typedef int32_0 = g0int (int32_kind) typedef int32_1 (i:int) = g1int (int32_kind, i) // stadef int32 = int32_1 // 2nd-select stadef int32 = int32_0 // 1st-select stadef Int32 = [i:int] int32_1 (i) // tkindef uint32_kind = "atstype_uint32" typedef uint32_0 = g0uint (uint32_kind) typedef uint32_1 (i:int) = g1uint (uint32_kind, i) // stadef uint32 = uint32_1 // 2nd-select stadef uint32 = uint32_0 // 1st-select stadef uInt32 = [i:nat] uint32_1 (i) // (* ****** ****** *) // tkindef int64_kind = "atstype_int64" typedef int64_0 = g0int (int64_kind) typedef int64_1 (i:int) = g1int (int64_kind, i) // stadef int64 = int64_1 // 2nd-select stadef int64 = int64_0 // 1st-select stadef Int64 = [i:int] int64_1 (i) // tkindef uint64_kind = "atstype_uint64" typedef uint64_0 = g0uint (uint64_kind) typedef uint64_1 (i:int) = g1uint (uint64_kind, i) // stadef uint64 = uint64_1 // 2nd-select stadef uint64 = uint64_0 // 1st-select stadef uInt64 = [i:nat] uint64_1 (i) // (* ****** ****** *) // abst@ype g0float_t0ype (tk:tk) = tkind_t0ype (tk) stadef g0float = g0float_t0ype // shorthand // tkindef float_kind = "atstype_float" typedef float = g0float (float_kind) // tkindef double_kind = "atstype_double" typedef double = g0float (double_kind) // tkindef ldouble_kind = "atstype_ldouble" typedef ldouble = g0float (ldouble_kind) // (* ****** ****** *) // // HX: unindexed type for pointers // tkindef ptr_kind = "atstype_ptrk" // abstype ptr_type = tkind_type(ptr_kind) abstype ptr_addr_type(l:addr) = ptr_type // typedef ptr = ptr_type // HX: a shorthand typedef ptr(l:addr) = ptr_addr_type(l) // HX: a shorthand // typedef Ptr = [l:addr] ptr(l) typedef Ptr0 = [l:agez] ptr(l) typedef Ptr1 = [l:addr|l > null] ptr(l) // typedef Ptrnull (l:addr) = [l1:addr | l1 == null || l1 == l] ptr(l1) // end of [Ptrnull] // // HX-2012-02-14: it is an expriment for now: // typedef ptr(n:int) = ptr_addr_type(addr_of_int(n)) // (* ****** ****** *) (* ** HX: persistent read-only strings *) (* // // HX-2013-04: this confuses type-erasure // abstype string_type = $extype"atstype_string" *) abstype string_type = ptr // = char* in C abstype string_int_type(n: int) = string_type // stadef string0 = string_type stadef string1 = string_int_type // stadef string = string1 // 2nd-select stadef string = string0 // 1st-select // typedef String = [n:int] string_int_type(n) typedef String0 = [n:int | n >= 0] string_int_type(n) typedef String1 = [n:int | n >= 1] string_int_type(n) // (* ****** ****** *) // abstype stropt_int_type(n:int) = ptr // typedef stropt(n:int) = stropt_int_type(n) // typedef stropt = [n:int] stropt_int_type(n) typedef Stropt = [n:int] stropt_int_type(n) typedef Stropt0 = [n:int] stropt_int_type(n) typedef Stropt1 = [n:int | n >= 0] stropt_int_type(n) // (* ****** ****** *) // (* ** HX: linear mutable strings *) // absvtype strptr_addr_vtype(l:addr) = ptr vtypedef strptr(l:addr) = strptr_addr_vtype(l) // vtypedef strptr = [l:addr] strptr(l) vtypedef Strptr = [l:addr] strptr(l) vtypedef Strptr0 = [l:addr] strptr(l) vtypedef Strptr1 = [l:addr|l > null] strptr(l) // absvtype strnptr_addr_int_vtype(l:addr, n:int) = ptr vtypedef strnptr(l:addr, n:int) = strnptr_addr_int_vtype(l, n) vtypedef strnptr(n:int) = [l:addr] strnptr_addr_int_vtype(l, n) // vtypedef Strnptr = [l:addr;n:int] strnptr(l, n) vtypedef Strnptr0 = [l:addr;n:int] strnptr(l, n) vtypedef Strnptr1 = [l:addr;n:int | n >= 0] strnptr(l, n) // (* ****** ****** *) (* ** HX: persistent mutable strings *) abstype strref_addr_type (l:addr) = ptr stadef strref = strref_addr_type typedef Strref0 = [l:addr] strref (l) typedef Strref1 = [l:addr | l > null] strref (l) (* ****** ****** *) abst@ype atsvoid_t0ype (* = $extype"atsvoid_t0ype" *) typedef void = atsvoid_t0ype // = C-void (* ****** ****** *) // absvtype exception_vtype = $extype"atstype_exnconptr" // vtypedef exn = exception_vtype // boxed vtype // (* ****** ****** *) absvt@ype // covariance opt_vt0ype_bool_vt0ype (a:vt@ype+, opt:bool) = a stadef opt = opt_vt0ype_bool_vt0ype (* ****** ****** *) typedef bytes (n:int) = @[byte][n] viewdef bytes_v (l:addr, n:int) = bytes (n) @ l typedef b0ytes (n:int) = @[byte?][n] viewdef b0ytes_v (l:addr, n:int) = b0ytes (n) @ l (* ****** ****** *) // abstype cloref_t0ype_type (a:t@ype) = ptr stadef cloref = cloref_t0ype_type // absvtype cloptr_vt0ype_vtype (a:t@ype) = ptr stadef cloptr = cloptr_vt0ype_vtype vtypedef cloptr0 = cloptr_vt0ype_vtype (void) // (* ****** ****** *) // typedef stamped_t (a:t@ype) = [x:int] stamped_t(a, x) // vtypedef stamped_vt (a:vt@ype) = [x:int] stamped_vt(a, x) // (* ****** ****** *) // // HX: // for memory deallocation // (with GC and without GC) // absview mfree_gc_addr_view(addr) stadef mfree_gc_v = mfree_gc_addr_view // absview mfree_ngc_addr_view(addr) stadef mfree_ngc_v = mfree_ngc_addr_view // absview mfree_libc_addr_view(addr) // libc-mfree stadef mfree_libc_v = mfree_libc_addr_view // (* ****** ****** *) // absvt@ype arrpsz_vt0ype_int_vt0ype (a:vt@ype+, n:int) = $extype"atstype_arrpsz" // stadef arrpsz = arrpsz_vt0ype_int_vt0ype // (* ****** ****** *) absprop // invariance vbox_view_prop (v:view) propdef vbox(v:view) = vbox_view_prop(v) abstype // invariance ref_vt0ype_type(a:vt@ype) = ptr typedef ref(a:vt@ype) = ref_vt0ype_type(a) (* ****** ****** *) // viewdef vtakeout ( v1: view , v2: view ) = (v2, v2 - v1) viewdef vtakeout0 (v:view) = vtakeout(void, v) // vtypedef vttakeout ( vt1:vt@ype , vt2:vt@ype ) = (vt2 - vt1 | vt2) vtypedef vttakeout0 (vt:vt@ype) = vttakeout(void, vt) // (* ****** ****** *) // vtypedef vtakeoutptr (a:vt@ype) = [l:addr] (a@l, a@l - void | ptr l) // (* ****** ****** *) // vtypedef vstrptr(l:addr) = vttakeout0(strptr(l)) // vtypedef vStrptr0 = [l:agez] vstrptr(l) vtypedef vStrptr1 = [l:addr | l > null] vstrptr(l) // (* ****** ****** *) typedef bottom_t0ype_uni = {a:t@ype} (a) typedef bottom_t0ype_exi = [a:t@ype | false] (a) vtypedef bottom_vt0ype_uni = {a:vt@ype} (a) vtypedef bottom_vt0ype_exi = [a:vt@ype | false] (a) (* ****** ****** *) // typedef cmpval_fun (a: t@ype) = (a, a) - int typedef cmpval_funenv (a: t@ype, vt: t@ype) = (a, a, !vt) - int // stadef cmpval = cmpval_fun and cmpval = cmpval_funenv // (* ****** ****** *) // typedef cmpref_fun (a: vt@ype) = (&RD(a), &RD(a)) - int typedef cmpref_funenv (a: vt@ype, vt: vt@ype) = (&RD(a), &RD(a), !vt) - int // stadef cmpref = cmpref_fun and cmpref = cmpref_funenv // (* ****** ****** *) // // HX: [lazy(T)] : // suspended evaluation of type T // abstype lazy_t0ype_type(t@ype+) = ptr typedef lazy(a:t@ype) = lazy_t0ype_type(a) // (* ****** ****** *) // // HX: [lazy_vt(VT)] : // suspended computation of viewtype VT // absvtype lazy_vt0ype_vtype(vt@ype+) = ptr vtypedef lazy_vt(a:vt@ype) = lazy_vt0ype_vtype(a) // (* ****** ****** *) // (* // // HX-2016-02-21: // these are renamed/relocated elsewhere // // HX-2017-10-03: // Is this even needed? Parsing works but // $literal(...) does not seem to be in use // Please see $PATSHOME/utils/atexting/TEST // (* abst0ype literal_int(intlit) = $extype"atsliteral_int" *) // (* abst0ype literal_float(float) = $extype"atsliteral_float" *) // (* abst0ype literal_string(string) = $extype"atsliteral_string" *) // *) // (* ****** ****** *) // abst@ype undefined_t0ype = $extype"atstype_undefined" absvt@ype undefined_vt0ype = $extype"atstype_undefined" // (* ****** ****** *) #if VERBOSE_PRELUDE #then #print "Loading [basics_sta.sats] finishes!\n" #endif // end of [VERBOSE_PRELUDE] (* ****** ****** *) (* end of [basics_sta.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/macrodef.sats0000644000175000017500000000577113431250607021010 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author of the file: // Hongwei Xi (gmhwxiATgmailDOTcom) // Start Time: May, 2012 // (* ****** ****** *) #include "prelude/params.hats" (* ****** ****** *) // (* ** HX: short form *) // // [orelse] and [andalso] are declared as infix ops // macdef orelse(x, y) = (if ,(x) then true else ,(y)): bool macdef andalso(x, y) = (if ,(x) then ,(y) else false): bool // (* ****** ****** *) // macdef ifopt(t, x) = if(,(t))then(Some(,(x)))else(None()) macdef ifopt_vt(t, x) = if(,(t))then(Some_vt(,(x)))else(None_vt()) // (* ****** ****** *) // macdef ifval(test, v_then, v_else) = (if ,(test) then ,(v_then) else ,(v_else)) // (* ****** ****** *) // macdef delay(exp) = $delay(,(exp)) macdef raise(exn) = $raise(,(exn)) // (* macdef effless(exp) = $effmask_all(,(exp)) *) // (* ****** ****** *) macdef assign(lv, rv) = ,(lv) := ,(rv) (* ****** ****** *) // macdef exitloc(ecode) = exit_errmsg (,(ecode), $mylocation) // (* ****** ****** *) // macdef assertloc(tf) = assert_errmsg (,(tf), $mylocation) // (* ****** ****** *) // macdef assertlocmsg (tf, msg) = assert_errmsg2 (,(tf), $mylocation, ,(msg)) macdef assertmsgloc (tf, msg) = assert_errmsg2 (,(tf), ,(msg), $mylocation) // (* ****** ****** *) // macdef undefined() = let // val () = assertlocmsg (false, ": undefined!!!") in $raise(AssertExn) // end // end of [undefined] // (* ****** ****** *) macdef ignoret(x) = let val _ = ,(x) in (*nothing*) end (* ****** ****** *) macdef foldret(x) = let val x = ,(x) in fold@ (x); x end (* ****** ****** *) // macdef showtype(x) = $showtype ,(x) // macdef showview(x) = pridentity_v ($showtype ,(x)) // macdef showvtype(x) = pridentity_vt ($showtype ,(x)) macdef showviewtype(x) = pridentity_vt ($showtype ,(x)) // (* ****** ****** *) (* end of [macrodef.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/basics_dyn.sats0000644000175000017500000004625113431250607021344 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author of the file: // Hongwei Xi (gmhwxiATgmailDOTcom) // Start Time: September, 2011 // (* ****** ****** *) #include "prelude/params.hats" (* ****** ****** *) // fun patsopt_version(): string = "ext#%" // (* ****** ****** *) #if VERBOSE_PRELUDE #then #print "Loading [basics_dyn.sats] starts!\n" #endif // end of [VERBOSE_PRELUDE] (* ****** ****** *) // sortdef t0p = t@ype and vt0p = vt@ype // (* ****** ****** *) datatype TYPE(a:vt@ype) = TYPE(a) of () (* ****** ****** *) // // HX-2012: In $ATSHOME/ccomp/runtime: // atsbool_true/atsbool_false are mapped to 1/0 // this mapping is fixed and should never be changed! // #define true true_bool // shorthand #define false false_bool // shorthand // val true_bool : bool(true) = "mac#atsbool_true" // = 1 val false_bool : bool(false) = "mac#atsbool_false" // = 0 // (* ****** ****** *) // // HX: [false] implies all // prfun false_elim{X:prop | false} ((*void*)): X // (* ****** ****** *) // typedef compopr_type(a: t@ype) = (a, a) - bool typedef compare_type(a: t@ype) = (a, a) - int(*-/0/+*) // (* ****** ****** *) // praxi lemma_subcls_reflexive {c:cls}((*void*)): [c <= c] void // praxi lemma_subcls_transitive {c1,c2,c3:cls | c1 <= c2; c2 <= c3}(): [c1 <= c3] void // (* ****** ****** *) // praxi praxi_int{i:int} ((*void*)): int(i) // dataprop MUL_prop ( int, int, int ) = // MUL_prop | {n:int} MULbas (0, n, 0) | {m:nat}{n:int}{p:int} MULind (m+1, n, p+n) of MUL_prop (m, n, p) | {m:pos}{n:int}{p:int} MULneg (~(m), n, ~(p)) of MUL_prop (m, n, p) // propdef MUL(m:int, n:int, mn:int) = MUL_prop(m, n, mn) // (* ****** ****** *) // // HX-2010-12-30: // absprop DIVMOD ( x:int, y: int, q: int, r: int // x = q * y + r ) // end of [DIVMOD] // propdef DIV (x:int, y:int, q:int) = [r:int] DIVMOD(x, y, q, r) propdef MOD (x:int, y:int, r:int) = [q:int] DIVMOD(x, y, q, r) // (* ****** ****** *) dataprop EQINT(int, int) = {x:int} EQINT(x, x) // prfun eqint_make{x,y:int | x == y}(): EQINT(x, y) // prfun eqint_make_gint {tk:tk}{x:int}(x: g1int(tk, x)): [y:int] EQINT(x, y) prfun eqint_make_guint {tk:tk}{x:int}(x: g1uint(tk, x)): [y:int] EQINT(x, y) // (* ****** ****** *) praxi praxi_ptr{l:addr} ((*void*)): ptr(l) praxi praxi_bool{b:bool} ((*void*)): bool(b) (* ****** ****** *) dataprop EQADDR(addr, addr) = {x:addr} EQADDR(x, x) // prfun eqaddr_make{x,y:addr | x == y}(): EQADDR(x, y) // prfun eqaddr_make_ptr{x:addr}(x: ptr(x)): [y:addr] EQADDR(x, y) // (* ****** ****** *) dataprop EQBOOL(bool, bool) = {x:bool} EQBOOL(x, x) // prfun eqbool_make{x,y:bool | x == y}(): EQBOOL(x, y) // prfun eqbool_make_bool{x:bool}(x: bool(x)): [y:bool] EQBOOL(x, y) // (* ****** ****** *) // dataprop EQTYPE(vt@ype, vt@ype) = {a:vt@ype} EQTYPE (a, a) // (* ****** ****** *) prfun prop_verify{b:bool | b} (): void prfun prop_verify_and_add{b:bool | b} (): [b] void (* ****** ****** *) prfun pridentity_v{v:view} (x: !INV(v)): void prfun pridentity_vt{vt:viewt@ype} (x: !INV(vt)): void (* ****** ****** *) castfn viewptr_match {a:vt0ype}{l1,l2:addr|l1==l2} ( pf: INV(a) @ l1 | p: ptr(l2) ) :<> [l:addr | l==l1] (a @ l | ptr(l)) // end of [viewptr_match] (* ****** ****** *) // val{ a:vt0ype } sizeof : size_t(sizeof(a)) // praxi lemma_sizeof {a:vt0ype}((*void*)): [sizeof(a) >= 0] void // (* ****** ****** *) praxi topize{a:t0ype} (x: !INV(a) >> a?): void (* ****** ****** *) castfn dataget{a:vt0ype} (x: !INV(a) >> a): a?! (* ****** ****** *) // // HX: returning the pf to GC // praxi mfree_gc_v_elim {l:addr} (pf: mfree_gc_v l): void // end of [mfree_gc_v_elim] (* ****** ****** *) praxi mfree_gcngc_v_nullify {l:addr} ( pf1: mfree_gc_v(l), pf1: mfree_ngc_v(l) ) : void // end of [mfree_gcngc_nullify_v] (* ****** ****** *) // fun cloptr_free {a:t0p} (pclo: cloptr(a)): void = "mac#%" // overload free with cloptr_free of 0 // (* ****** ****** *) // fun {a:t0p} lazy_force(lazyval: lazy(INV(a))): (a) // fun {a:vt0p} lazy_vt_force(lazyval: lazy_vt(INV(a))): (a) // (* // // HX-2016-08: // this is assumed internally! // overload ! with lazy_force of 0 overload ! with lazy_vt_force of 0 *) // (* ****** ****** *) // // HX-2013: // macro implemented in [pats_ccomp_instrset] // fun lazy_vt_free {a:vt0p} (lazyval: lazy_vt(a)): void = "mac#%" // overload ~ with lazy_vt_free of 0 overload free with lazy_vt_free of 0 // (* ****** ****** *) // // HX-2014: // macro implemented in [pats_ccomp_instrset] // fun lazy2cloref {a:t0p} (lazy(a)): ((*void*)) - (a) = "mac#%" // (* ****** ****** *) (* // HX-2012-05-23: this seems TOO complicated! (* ** HX-2012-03: handling read-only views and vtypes *) castfn read_getval // copy out a non-linear value {a:t@ype}{s:int}{n:int} (x: !READ (a, s, n)):<> a // end of [read_getval] praxi read_takeout{v:view} (pf: !v >> READOUT (v, s)): #[s:int] READ (v, s, 0) // end of [read_takeout] praxi read_addback // HX: there is no need to check {v1:view}{v2:view}{s:int} // if v1 and v2 match (pf1: !READOUT (v1, s) >> v1, pf2: READ (v2, s, 0)): void // end of [read0_addback] praxi read_split {v:view}{s:int}{n:int} (pf: !READ (v, s, n) >> READ (v, s, n+1)): READ (v, s, 0) // end of [read_split] praxi read_unsplit // HX: there is no need to check {v1:view}{v2:view}{s:int}{n1,n2:int} // if v1 and v2 match (pf1: READ (v1, s, n1), pf2: READ (v2, s, n2)): READ (v1, s, n1+n2-1) // end of [read_unsplit] *) (* ****** ****** *) // castfn stamp_t {a:t@ype}(x: INV(a)):<> stamped_t(a) // end of [stamp_t] castfn stamp_vt {a:vt@ype}(x: INV(a)):<> stamped_vt(a) // end of [stamp_vt] // (* ****** ****** *) // castfn unstamp_t {a:t@ype}{x:int}(x: stamped_t(INV(a), x)):<> a // end of [unstamp_t] castfn unstamp_vt {a:vt@ype}{x:int}(x: stamped_vt(INV(a), x)):<> a // end of [unstamp_vt] // (* ****** ****** *) // castfn stamped_t2vt {a:t@ype}{x:int} (x: stamped_t(INV(a), x)):<> stamped_vt(a, x) // end of [stamped_t2vt] // castfn stamped_vt2t {a:t@ype}{x:int} (x: stamped_vt(INV(a), x)):<> stamped_t(a, x) // end of [stamped_vt2t] // fun{a:t@ype} stamped_vt2t_ref{x:int} (x: &stamped_vt(INV(a), x)):<> stamped_t(a, x) // (* ****** ****** *) // praxi vcopyenv_v_decode {v:view}(x: vcopyenv_v(v)): vtakeout0(v) castfn vcopyenv_vt_decode {vt:vt0p}(x: vcopyenv_vt(vt)): vttakeout0(vt) // overload decode with vcopyenv_v_decode overload decode with vcopyenv_vt_decode // (* ****** ****** *) // // HX: the_null_ptr = (void*)0 // val the_null_ptr : ptr(null) = "mac#the_atsptr_null" // (* ****** ****** *) // praxi lemma_addr_param {l:addr}((*void*)): [l >= null] void // (* ****** ****** *) praxi lemma_string_param {n:int} (x: string(n)): [n >= 0] void // end of [lemma_string_param] praxi lemma_stropt_param {n:int} (x: stropt(n)): [n >= ~1] void // end of [lemma_stropt_param] (* ****** ****** *) // dataprop SGN (int, int) = | SGNzero (0, 0) | {i:neg} SGNneg (i, ~1) | {i:pos} SGNpos (i, 1) // end of [SGN] // end of [dataprop] // (* ****** ****** *) // // HX-2012-06: // indication of the failure of exception AssertExn of () // an assertion // (* ****** ****** *) // // HX-2012-06: // indication of something expected exception NotFoundExn of () // to be found but not // (* ****** ****** *) // exception GenerallyExn of (string) // for unspecified causes (* exception GenerallyExn2 of (string, ptr(*data*)) // for unspecified causes *) // (* ****** ****** *) // // HX-2012-07: // indication of a function argument being exception IllegalArgExn of (string) // out of its domain // (* ****** ****** *) praxi __vfree_exn (x: exn):<> void // for freeing nullary exception-con (* ****** ****** *) // datatype unit = unit of () dataprop unit_p = unit_p of () dataview unit_v = unit_v of () datavtype unit_vt = unit_vt of () // prfun unit_v_elim (pf: unit_v): void // (* ****** ****** *) // abstype boxed_t0ype_type(a:t@ype+) = unit absvtype boxed_vt0ype_vtype(a:vt@ype+) = unit // vtypedef boxed(a:vt@ype) = boxed_vt0ype_vtype(a) vtypedef boxed_vt(a:vt@ype) = boxed_vt0ype_vtype(a) // typedef boxed(a:t@ype) = boxed_t0ype_type(a) typedef boxed_t(a:t@ype) = boxed_t0ype_type(a) // fun{a:type} box: (INV(a)) -> boxed_t(a) fun{a:type} unbox: boxed_t(INV(a)) -> (a) fun{a:vtype} box_vt: (INV(a)) -> boxed_vt(a) fun{a:vtype} unbox_vt: boxed_vt(INV(a)) -> (a) // (* ****** ****** *) // stadef array(a:vt@ype, n:int) = @[a][n] // viewdef array_v (a:vt@ype, l:addr, n:int) = @[a][n] @ l // absvtype arrayptr_vt0ype_addr_int_vtype (a:vt0ype+, l:addr, n:int(*size*)) = ptr(l) stadef arrayptr = arrayptr_vt0ype_addr_int_vtype vtypedef arrayptr (a:vt0p, n:int) = [l:addr] arrayptr(a, l, n) // abstype arrayref_vt0ype_int_type (a:vt@ype(*elt*), n:int(*size*)) = ptr stadef arrayref = arrayref_vt0ype_int_type // abstype arrszref_vt0ype_type(a: vt@ype) = ptr typedef arrszref(a:vt0p) = arrszref_vt0ype_type(a) // (* ****** ****** *) // datatype // t@ype+: covariant list_t0ype_int_type (a:t@ype+, int) = | list_nil(a, 0) of () | {n:int | n >= 0} list_cons(a, n+1) of (a, list_t0ype_int_type(a, n)) // end of [datatype] stadef list = list_t0ype_int_type typedef List(a:t0p) = [n:int] list(a, n) typedef List0(a:t0p) = [n:int | n >= 0] list(a, n) typedef List1(a:t0p) = [n:int | n >= 1] list(a, n) typedef listLt (a:t0p, n:int) = [k:nat | k < n] list(a, k) typedef listLte (a:t0p, n:int) = [k:nat | k <= n] list(a, k) typedef listGt (a:t0p, n:int) = [k:int | k > n] list(a, k) typedef listGte (a:t0p, n:int) = [k:int | k >= n] list(a, k) typedef listBtw (a:t0p, m:int, n:int) = [k:int | m <= k; k < n] list(a, k) typedef listBtwe (a:t0p, m:int, n:int) = [k:int | m <= k; k <= n] list(a, k) // (* ****** ****** *) // datavtype // vt@ype+: covariant list_vt0ype_int_vtype (a:vt@ype+, int) = | list_vt_nil(a, 0) of () | {n:int | n >= 0} list_vt_cons(a, n+1) of (a, list_vt0ype_int_vtype(a, n)) // end of [list_vt0ype_int_vtype] stadef list_vt = list_vt0ype_int_vtype vtypedef List_vt(a:vt0p) = [n:int] list_vt(a, n) vtypedef List0_vt(a:vt0p) = [n:int | n >= 0] list_vt(a, n) vtypedef List1_vt(a:vt0p) = [n:int | n >= 1] list_vt(a, n) vtypedef listLt_vt (a:vt0p, n:int) = [k:nat | k < n] list_vt(a, k) vtypedef listLte_vt (a:vt0p, n:int) = [k:nat | k <= n] list_vt(a, k) vtypedef listGt_vt (a:vt0p, n:int) = [k:int | k > n] list_vt(a, k) vtypedef listGte_vt (a:vt0p, n:int) = [k:int | k >= n] list_vt(a, k) vtypedef listBtw_vt (a:vt0p, m:int, n:int) = [k:int | m <= k; k < n] list_vt(a, k) vtypedef listBtwe_vt (a:vt0p, m:int, n:int) = [k:int | m <= k; k <= n] list_vt(a, k) // (* ****** ****** *) // datatype stream_con(a:t@ype+) = | stream_nil of ((*void*)) | stream_cons of (a, stream(a)) // where stream (a:t@ype) = lazy (stream_con(a)) // datavtype stream_vt_con (a:vt@ype+) = | stream_vt_nil of ((*void*)) | stream_vt_cons of (a, stream_vt(a)) // where stream_vt(a:vt@ype) = lazy_vt(stream_vt_con(a)) // (* ****** ****** *) // datatype // t@ype+: covariant option_t0ype_bool_type ( a:t@ype+, bool ) = // option_t0ype_bool_type | Some(a, true) of (INV(a)) | None(a, false) // end of [datatype] stadef option = option_t0ype_bool_type typedef Option(a:t0p) = [b:bool] option(a, b) // datavtype // vt@ype+: covariant option_vt0ype_bool_vtype ( a:vt@ype+, bool ) = // option_vt0ype_bool_vtype | Some_vt(a, true) of (INV(a)) | None_vt(a, false) // end of [option_vt0ype_bool_vtype] stadef option_vt = option_vt0ype_bool_vtype vtypedef Option_vt(a:vt0p) = [b:bool] option_vt(a, b) // (* ****** ****** *) // praxi opt_some{a:vt0p} (x: !INV(a) >> opt(a, true)): void praxi opt_unsome{a:vt0p} (x: !opt(INV(a), true) >> a): void // fun{a:vt0p} opt_unsome_get(x: &opt(INV(a), true) >> a?): (a) // praxi opt_none{a:vt0p} (x: !(a?) >> opt(a, false)): void praxi opt_unnone{a:vt0p} (x: !opt(INV(a), false) >> a?): void // praxi opt_clear{a:t0p} {b:bool}(x: !opt(INV(a), b) >> a?): void // (* ****** ****** *) // dataprop or_prop_prop_int_prop ( a0: prop+, a1: prop+, int ) = // or_prop_prop_int_prop | POR_l(a0, a1, 0) of (INV(a0)) | POR_r(a0, a1, 1) of (INV(a1)) dataview or_view_view_int_view ( a0: view+, a1: view+, int ) = // or_view_view_int_view | VOR_l(a0, a1, 0) of (INV(a0)) | VOR_r(a0, a1, 1) of (INV(a1)) // stadef por = or_prop_prop_int_prop stadef vor = or_view_view_int_view // dataprop option_prop_bool_prop ( a:prop+, bool ) = // option_prop_bool_prop | Some_p (a, true) of (INV(a)) | None_p (a, false) // end of [option_prop_bool_prop] stadef option_p = option_prop_bool_prop // dataview option_view_bool_view (a:view+, bool) = | Some_v (a, true) of (INV(a)) | None_v (a, false) // end of [option_view_bool_view] stadef option_v = option_view_bool_view // (* ****** ****** *) // absvt@ype arrayopt(a:vt0p, n:int, b:bool) = array(a, n) // praxi arrayopt_some {a:vt0p}{n:int} (A: &array(a, n) >> arrayopt(a, n, true)): void praxi arrayopt_none {a:vt0p}{n:int} (A: &array(a?, n) >> arrayopt(a, n, false)): void praxi arrayopt_unsome {a:vt0p}{n:int} (A: &arrayopt(a, n, true) >> array(a, n)): void praxi arrayopt_unnone {a:vt0p}{n:int} (A: &arrayopt(a, n, false) >> array(a?, n)): void // (* ****** ****** *) absvtype argv_int_vtype (n:int) = ptr stadef argv = argv_int_vtype (* [argv_takeout_strarr] is declared in prelude/SATS/extern.sats [argv_takeout_parrnull] is declared in prelude/SATS/extern.sats *) (* ****** ****** *) praxi lemma_argv_param {n:int}(argv: !argv(n)): [n >= 0] void // end of [praxi] (* ****** ****** *) // fun argv_get_at{n:int} (argv: !argv(n), i: natLt(n)):<> string = "mac#%" fun argv_set_at{n:int} (argv: !argv(n), i: natLt(n), x: string): void = "mac#%" // overload [] with argv_get_at overload [] with argv_set_at // (* ****** ****** *) // fun{} listize_argc_argv {n:int} (argc: int(n), argv: !argv(n)): list_vt(string, n) // (* ****** ****** *) // symintr main0 // fun main_void_0 ( (*void*) ) : void = "ext#mainats_void_0" fun main_argc_argv_0 {n:int | n >= 1} (argc: int n, argv: !argv(n)): void = "ext#mainats_argc_argv_0" fun main_argc_argv_envp_0 {n:int | n >= 1} (argc: int n, argv: !argv(n), envp: ptr): void = "ext#mainats_argc_argv_envp_0" // overload main0 with main_void_0 overload main0 with main_argc_argv_0 overload main0 with main_argc_argv_envp_0 // (* ****** ****** *) // symintr main // fun main_void_int ( (*void*) ) : int = "ext#mainats_void_int" fun main_argc_argv_int {n:int | n >= 1} (argc: int n, argv: !argv(n)): int = "ext#mainats_argc_argv_int" fun main_argc_argv_envp_int {n:int | n >= 1} (argc: int n, argv: !argv n, envp: ptr): int = "ext#mainats_argc_argv_envp_int" // overload main with main_void_int overload main with main_argc_argv_int overload main with main_argc_argv_envp_int // (* ****** ****** *) // fun exit(ecode: int): {a:t0p}(a) = "mac#%" fun exit_errmsg (ecode: int, msg: string): {a:t0p}(a) = "mac#%" // (* fun exit_fprintf{ts:types} ( ecode: int, out: FILEref, fmt: printf_c ts, args: ts ) : {a:vt0p}(a) = "mac#%" // end of [exit_fprintf] *) // (* *****p* ****** *) // fun exit_void (ecode: int): void = "mac#%" fun exit_errmsg_void (ecode: int, msg: string): void = "mac#%" // (* ****** ****** *) // fun assert_bool0 (x: bool): void = "mac#%" fun assert_bool1 {b:bool} (x: bool (b)): [b] void = "mac#%" // overload assert with assert_bool0 of 0 overload assert with assert_bool1 of 10 // (* ****** ****** *) // fun{} assertexn_bool0 (x: bool): void fun{} assertexn_bool1 {b:bool} (x: bool (b)): [b] void // symintr assertexn overload assertexn with assertexn_bool0 of 0 overload assertexn with assertexn_bool1 of 10 // (* ****** ****** *) // fun assert_errmsg_bool0 (x: bool, msg: string): void = "mac#%" fun assert_errmsg_bool1 {b:bool} (x: bool b, msg: string): [b] void = "mac#%" // symintr assert_errmsg overload assert_errmsg with assert_errmsg_bool0 of 0 overload assert_errmsg with assert_errmsg_bool1 of 10 // (* ****** ****** *) // fun assert_errmsg2_bool0 (x: bool, msg1: string, msg2: string): void = "mac#%" fun assert_errmsg2_bool1{b:bool} (x: bool b, msg1: string, msg2: string): [b] void = "mac#%" // symintr assert_errmsg2 overload assert_errmsg2 with assert_errmsg2_bool0 of 0 overload assert_errmsg2 with assert_errmsg2_bool1 of 10 // (* ****** ****** *) // datasort file_mode = | file_mode_r (* read *) | file_mode_w (* write *) | file_mode_rw (* read and write *) // end of [file_mode] // (* ****** ****** *) local // stadef r() = file_mode_r() stadef w() = file_mode_w() stadef rw() = file_mode_rw() // in (* in-of-local *) (* ****** ****** *) abstype file_mode (file_mode) = string typedef file_mode = [fm:file_mode] file_mode (fm) (* ****** ****** *) sortdef fmode = file_mode typedef fmode (fm:fmode) = file_mode (fm) typedef fmode = file_mode (* ****** ****** *) dataprop file_mode_lte (fmode, fmode) = // | {m:fmode} file_mode_lte_refl (m, m) // | {m1,m2,m3:fmode} file_mode_lte_tran (m1, m3) of (file_mode_lte(m1, m2), file_mode_lte(m2, m3)) // | {m:fmode} file_mode_lte_rw_r(rw(), r()) of () | {m:fmode} file_mode_lte_rw_w(rw(), w()) of () // end of [file_mode_lte] (* ****** ****** *) // prval file_mode_lte_r_r : file_mode_lte(r(), r()) // impled in [filebas_prf.dats] prval file_mode_lte_w_w : file_mode_lte(w(), w()) // impled in [filebas_prf.dats] prval file_mode_lte_rw_rw : file_mode_lte(rw(), rw()) // impled in [filebas_prf.dats] // (* ****** ****** *) end // end of [local] (* ****** ****** *) abstype FILEref_type = ptr typedef FILEref = FILEref_type (* ****** ****** *) // typedef print_type(a: t0p) = (a) -> void typedef prerr_type(a: t0p) = (a) -> void typedef fprint_type(a: t0p) = (FILEref, a) -> void // typedef print_vtype(a: vt0p) = (!a) -> void typedef prerr_vtype(a: vt0p) = (!a) -> void typedef fprint_vtype(a: vt0p) = (FILEref, !a) -> void // (* ****** ****** *) (* fun print_void(x: void): void = "mac#%" *) (* ****** ****** *) fun print_newline((*void*)): void = "mac#%" fun prerr_newline((*void*)): void = "mac#%" fun fprint_newline(out: FILEref): void = "mac#%" (* ****** ****** *) #if VERBOSE_PRELUDE #then #print "Loading [basics_dyn.sats] finishes!\n" #endif // end of [VERBOSE_PRELUDE] (* ****** ****** *) (* end of [basics_dyn.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/.keeper0000644000175000017500000000000013431250607017564 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/CATS/0000755000175000017500000000000013431250607017054 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/CATS/integer.cats0000644000175000017500000010766413431250607021403 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer.atxt ** Time of generation: Thu Feb 14 11:29:54 2019 */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_INTEGER #define ATSLIB_PRELUDE_CATS_INTEGER /* ****** ****** */ // #define \ atspre_g0int2int_int_int(x) ((atstype_int)(x)) #define \ atspre_g1int2int_int_int(x) atspre_g0int2int_int_int(x) // /* ****** ****** */ // #define \ atspre_g0int2uint_int_uint(x) ((atstype_uint)(x)) #define \ atspre_g1int2uint_int_uint(x) atspre_g0int2uint_int_uint(x) // /* ****** ****** */ // #define atspre_g0uint2int_uint_int(x) ((atstype_int)(x)) // /* ****** ****** */ // #define \ atspre_g0uint2uint_uint_uint(x) (x) #define \ atspre_g1uint2uint_uint_uint(x) atspre_g0uint2uint_uint_uint(x) // /* ****** ****** */ // #define atspre_g0uint2uint_ulint_uint(x) ((atstype_uint)(x)) #define atspre_g0uint2uint_ulint_ulint(x) (x) #define atspre_g0uint2uint_ulint_ullint(x) ((atstype_ullint)(x)) #define atspre_g1uint2uint_ulint_uint atspre_g0uint2uint_ulint_uint #define atspre_g1uint2uint_ulint_ulint atspre_g0uint2uint_ulint_ulint #define atspre_g1uint2uint_ulint_ullint atspre_g0uint2uint_ulint_ullint // /* ****** ****** */ // #define atspre_g0uint2uint_usint_uint(x) ((atstype_uint)(x)) // /* ****** ****** */ // extern int atoi (const char *inp) ; extern long int atol (const char *inp) ; extern long long int atoll (const char *inp) ; // ATSinline() atstype_int atspre_g0string2int_int (atstype_string inp) { return atoi((char*)inp) ; } ATSinline() atstype_lint atspre_g0string2int_lint (atstype_string inp) { return atol((char*)inp) ; } ATSinline() atstype_llint atspre_g0string2int_llint (atstype_string inp) { return atoll((char*)inp) ; } // /* ****** ****** */ // extern unsigned long int strtoul(const char *nptr, char **endptr, int base); extern unsigned long long int strtoull(const char *nptr, char **endptr, int base); // ATSinline() atstype_uint atspre_g0string2uint_uint (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; } ATSinline() atstype_ulint atspre_g0string2uint_ulint (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; } ATSinline() atstype_ullint atspre_g0string2uint_ullint (atstype_string inp) { return strtoull((char*)inp, NULL, 10) ; } // /* ****** ****** */ // ATSinline() atstype_int atspre_g0int_neg_int (atstype_int x) { return (-x) ; } // end of [atspre_g0int_neg_int] ATSinline() atstype_int atspre_g0int_abs_int (atstype_int x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int] ATSinline() atstype_int atspre_g0int_succ_int (atstype_int x) { return (x + 1) ; } // end of [atspre_g0int_succ_int] ATSinline() atstype_int atspre_g0int_pred_int (atstype_int x) { return (x - 1) ; } // end of [atspre_g0int_pred_int] ATSinline() atstype_int atspre_g0int_half_int (atstype_int x) { return (x / 2) ; } // end of [atspre_g0int_half_int] ATSinline() atstype_int atspre_g0int_add_int (atstype_int x1, atstype_int x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int] ATSinline() atstype_int atspre_g0int_sub_int (atstype_int x1, atstype_int x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int] ATSinline() atstype_int atspre_g0int_mul_int (atstype_int x1, atstype_int x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int] ATSinline() atstype_int atspre_g0int_div_int (atstype_int x1, atstype_int x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int] ATSinline() atstype_int atspre_g0int_mod_int (atstype_int x1, atstype_int x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int] ATSinline() atstype_int atspre_g0int_nmod_int (atstype_int x1, atstype_int x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int] ATSinline() atstype_int atspre_g0int_asl_int (atstype_int x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int] ATSinline() atstype_int atspre_g0int_asr_int (atstype_int x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int] ATSinline() atstype_bool atspre_g0int_lt_int ( atstype_int x1, atstype_int x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int] ATSinline() atstype_bool atspre_g0int_lte_int ( atstype_int x1, atstype_int x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int] ATSinline() atstype_bool atspre_g0int_gt_int ( atstype_int x1, atstype_int x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int] ATSinline() atstype_bool atspre_g0int_gte_int ( atstype_int x1, atstype_int x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int] ATSinline() atstype_bool atspre_g0int_eq_int ( atstype_int x1, atstype_int x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int] ATSinline() atstype_bool atspre_g0int_neq_int ( atstype_int x1, atstype_int x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int] ATSinline() atstype_int atspre_g0int_compare_int ( atstype_int x1, atstype_int x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int] ATSinline() atstype_int atspre_g0int_max_int (atstype_int x1, atstype_int x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int] ATSinline() atstype_int atspre_g0int_min_int (atstype_int x1, atstype_int x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int] ATSinline() atstype_bool atspre_g0int_isltz_int (atstype_int x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int] ATSinline() atstype_bool atspre_g0int_isltez_int (atstype_int x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int] ATSinline() atstype_bool atspre_g0int_isgtz_int (atstype_int x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int] ATSinline() atstype_bool atspre_g0int_isgtez_int (atstype_int x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int] ATSinline() atstype_bool atspre_g0int_iseqz_int (atstype_int x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int] ATSinline() atstype_bool atspre_g0int_isneqz_int (atstype_int x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int] // ATSinline() atstype_lint atspre_g0int_neg_lint (atstype_lint x) { return (-x) ; } // end of [atspre_g0int_neg_lint] ATSinline() atstype_lint atspre_g0int_abs_lint (atstype_lint x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_lint] ATSinline() atstype_lint atspre_g0int_succ_lint (atstype_lint x) { return (x + 1) ; } // end of [atspre_g0int_succ_lint] ATSinline() atstype_lint atspre_g0int_pred_lint (atstype_lint x) { return (x - 1) ; } // end of [atspre_g0int_pred_lint] ATSinline() atstype_lint atspre_g0int_half_lint (atstype_lint x) { return (x / 2) ; } // end of [atspre_g0int_half_lint] ATSinline() atstype_lint atspre_g0int_add_lint (atstype_lint x1, atstype_lint x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_lint] ATSinline() atstype_lint atspre_g0int_sub_lint (atstype_lint x1, atstype_lint x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_lint] ATSinline() atstype_lint atspre_g0int_mul_lint (atstype_lint x1, atstype_lint x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_lint] ATSinline() atstype_lint atspre_g0int_div_lint (atstype_lint x1, atstype_lint x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_lint] ATSinline() atstype_lint atspre_g0int_mod_lint (atstype_lint x1, atstype_lint x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_lint] ATSinline() atstype_lint atspre_g0int_nmod_lint (atstype_lint x1, atstype_lint x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_lint] ATSinline() atstype_lint atspre_g0int_asl_lint (atstype_lint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_lint] ATSinline() atstype_lint atspre_g0int_asr_lint (atstype_lint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_lint] ATSinline() atstype_bool atspre_g0int_lt_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_lint] ATSinline() atstype_bool atspre_g0int_lte_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_lint] ATSinline() atstype_bool atspre_g0int_gt_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_lint] ATSinline() atstype_bool atspre_g0int_gte_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_lint] ATSinline() atstype_bool atspre_g0int_eq_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_lint] ATSinline() atstype_bool atspre_g0int_neq_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_lint] ATSinline() atstype_int atspre_g0int_compare_lint ( atstype_lint x1, atstype_lint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_lint] ATSinline() atstype_lint atspre_g0int_max_lint (atstype_lint x1, atstype_lint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_lint] ATSinline() atstype_lint atspre_g0int_min_lint (atstype_lint x1, atstype_lint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_lint] ATSinline() atstype_bool atspre_g0int_isltz_lint (atstype_lint x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_lint] ATSinline() atstype_bool atspre_g0int_isltez_lint (atstype_lint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_lint] ATSinline() atstype_bool atspre_g0int_isgtz_lint (atstype_lint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_lint] ATSinline() atstype_bool atspre_g0int_isgtez_lint (atstype_lint x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_lint] ATSinline() atstype_bool atspre_g0int_iseqz_lint (atstype_lint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_lint] ATSinline() atstype_bool atspre_g0int_isneqz_lint (atstype_lint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_lint] // ATSinline() atstype_llint atspre_g0int_neg_llint (atstype_llint x) { return (-x) ; } // end of [atspre_g0int_neg_llint] ATSinline() atstype_llint atspre_g0int_abs_llint (atstype_llint x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_llint] ATSinline() atstype_llint atspre_g0int_succ_llint (atstype_llint x) { return (x + 1) ; } // end of [atspre_g0int_succ_llint] ATSinline() atstype_llint atspre_g0int_pred_llint (atstype_llint x) { return (x - 1) ; } // end of [atspre_g0int_pred_llint] ATSinline() atstype_llint atspre_g0int_half_llint (atstype_llint x) { return (x / 2) ; } // end of [atspre_g0int_half_llint] ATSinline() atstype_llint atspre_g0int_add_llint (atstype_llint x1, atstype_llint x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_llint] ATSinline() atstype_llint atspre_g0int_sub_llint (atstype_llint x1, atstype_llint x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_llint] ATSinline() atstype_llint atspre_g0int_mul_llint (atstype_llint x1, atstype_llint x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_llint] ATSinline() atstype_llint atspre_g0int_div_llint (atstype_llint x1, atstype_llint x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_llint] ATSinline() atstype_llint atspre_g0int_mod_llint (atstype_llint x1, atstype_llint x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_llint] ATSinline() atstype_llint atspre_g0int_nmod_llint (atstype_llint x1, atstype_llint x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_llint] ATSinline() atstype_llint atspre_g0int_asl_llint (atstype_llint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_llint] ATSinline() atstype_llint atspre_g0int_asr_llint (atstype_llint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_llint] ATSinline() atstype_bool atspre_g0int_lt_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_llint] ATSinline() atstype_bool atspre_g0int_lte_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_llint] ATSinline() atstype_bool atspre_g0int_gt_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_llint] ATSinline() atstype_bool atspre_g0int_gte_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_llint] ATSinline() atstype_bool atspre_g0int_eq_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_llint] ATSinline() atstype_bool atspre_g0int_neq_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_llint] ATSinline() atstype_int atspre_g0int_compare_llint ( atstype_llint x1, atstype_llint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_llint] ATSinline() atstype_llint atspre_g0int_max_llint (atstype_llint x1, atstype_llint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_llint] ATSinline() atstype_llint atspre_g0int_min_llint (atstype_llint x1, atstype_llint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_llint] ATSinline() atstype_bool atspre_g0int_isltz_llint (atstype_llint x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_llint] ATSinline() atstype_bool atspre_g0int_isltez_llint (atstype_llint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_llint] ATSinline() atstype_bool atspre_g0int_isgtz_llint (atstype_llint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_llint] ATSinline() atstype_bool atspre_g0int_isgtez_llint (atstype_llint x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_llint] ATSinline() atstype_bool atspre_g0int_iseqz_llint (atstype_llint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_llint] ATSinline() atstype_bool atspre_g0int_isneqz_llint (atstype_llint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_llint] // /* ****** ****** */ #define atspre_g1int_neg_int atspre_g0int_neg_int #define atspre_g1int_abs_int atspre_g0int_abs_int #define atspre_g1int_succ_int atspre_g0int_succ_int #define atspre_g1int_pred_int atspre_g0int_pred_int #define atspre_g1int_half_int atspre_g0int_half_int #define atspre_g1int_add_int atspre_g0int_add_int #define atspre_g1int_sub_int atspre_g0int_sub_int #define atspre_g1int_mul_int atspre_g0int_mul_int #define atspre_g1int_div_int atspre_g0int_div_int #define atspre_g1int_nmod_int atspre_g0int_nmod_int #define atspre_g1int_isltz_int atspre_g0int_isltz_int #define atspre_g1int_isltez_int atspre_g0int_isltez_int #define atspre_g1int_isgtz_int atspre_g0int_isgtz_int #define atspre_g1int_isgtez_int atspre_g0int_isgtez_int #define atspre_g1int_iseqz_int atspre_g0int_iseqz_int #define atspre_g1int_isneqz_int atspre_g0int_isneqz_int #define atspre_g1int_lt_int atspre_g0int_lt_int #define atspre_g1int_lte_int atspre_g0int_lte_int #define atspre_g1int_gt_int atspre_g0int_gt_int #define atspre_g1int_gte_int atspre_g0int_gte_int #define atspre_g1int_eq_int atspre_g0int_eq_int #define atspre_g1int_neq_int atspre_g0int_neq_int #define atspre_g1int_compare_int atspre_g0int_compare_int #define atspre_g1int_max_int atspre_g0int_max_int #define atspre_g1int_min_int atspre_g0int_min_int /* ****** ****** */ #define atspre_g1int_neg_lint atspre_g0int_neg_lint #define atspre_g1int_succ_lint atspre_g0int_succ_lint #define atspre_g1int_pred_lint atspre_g0int_pred_lint #define atspre_g1int_half_lint atspre_g0int_half_lint #define atspre_g1int_add_lint atspre_g0int_add_lint #define atspre_g1int_sub_lint atspre_g0int_sub_lint #define atspre_g1int_mul_lint atspre_g0int_mul_lint #define atspre_g1int_div_lint atspre_g0int_div_lint #define atspre_g1int_nmod_lint atspre_g0int_nmod_lint #define atspre_g1int_isltz_lint atspre_g0int_isltz_lint #define atspre_g1int_isltez_lint atspre_g0int_isltez_lint #define atspre_g1int_isgtz_lint atspre_g0int_isgtz_lint #define atspre_g1int_isgtez_lint atspre_g0int_isgtez_lint #define atspre_g1int_iseqz_lint atspre_g0int_iseqz_lint #define atspre_g1int_isneqz_lint atspre_g0int_isneqz_lint #define atspre_g1int_lt_lint atspre_g0int_lt_lint #define atspre_g1int_lte_lint atspre_g0int_lte_lint #define atspre_g1int_gt_lint atspre_g0int_gt_lint #define atspre_g1int_gte_lint atspre_g0int_gte_lint #define atspre_g1int_eq_lint atspre_g0int_eq_lint #define atspre_g1int_neq_lint atspre_g0int_neq_lint #define atspre_g1int_compare_lint atspre_g0int_compare_lint #define atspre_g1int_max_lint atspre_g0int_max_lint #define atspre_g1int_min_lint atspre_g0int_min_lint /* ****** ****** */ #define atspre_g1int_neg_llint atspre_g0int_neg_llint #define atspre_g1int_succ_llint atspre_g0int_succ_llint #define atspre_g1int_pred_llint atspre_g0int_pred_llint #define atspre_g1int_half_llint atspre_g0int_half_llint #define atspre_g1int_add_llint atspre_g0int_add_llint #define atspre_g1int_sub_llint atspre_g0int_sub_llint #define atspre_g1int_mul_llint atspre_g0int_mul_llint #define atspre_g1int_div_llint atspre_g0int_div_llint #define atspre_g1int_nmod_llint atspre_g0int_nmod_llint #define atspre_g1int_isltz_llint atspre_g0int_isltz_llint #define atspre_g1int_isltez_llint atspre_g0int_isltez_llint #define atspre_g1int_isgtz_llint atspre_g0int_isgtz_llint #define atspre_g1int_isgtez_llint atspre_g0int_isgtez_llint #define atspre_g1int_iseqz_llint atspre_g0int_iseqz_llint #define atspre_g1int_isneqz_llint atspre_g0int_isneqz_llint #define atspre_g1int_lt_llint atspre_g0int_lt_llint #define atspre_g1int_lte_llint atspre_g0int_lte_llint #define atspre_g1int_gt_llint atspre_g0int_gt_llint #define atspre_g1int_gte_llint atspre_g0int_gte_llint #define atspre_g1int_eq_llint atspre_g0int_eq_llint #define atspre_g1int_neq_llint atspre_g0int_neq_llint #define atspre_g1int_compare_llint atspre_g0int_compare_llint #define atspre_g1int_max_llint atspre_g0int_max_llint #define atspre_g1int_min_llint atspre_g0int_min_llint /* ****** ****** */ // ATSinline() atstype_uint atspre_g0uint_succ_uint (atstype_uint x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint] ATSinline() atstype_uint atspre_g0uint_pred_uint (atstype_uint x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint] ATSinline() atstype_uint atspre_g0uint_half_uint (atstype_uint x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint] ATSinline() atstype_uint atspre_g0uint_add_uint (atstype_uint x1, atstype_uint x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint] ATSinline() atstype_uint atspre_g0uint_sub_uint (atstype_uint x1, atstype_uint x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint] ATSinline() atstype_uint atspre_g0uint_mul_uint (atstype_uint x1, atstype_uint x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint] ATSinline() atstype_uint atspre_g0uint_div_uint (atstype_uint x1, atstype_uint x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint] ATSinline() atstype_uint atspre_g0uint_mod_uint (atstype_uint x1, atstype_uint x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint] ATSinline() atstype_uint atspre_g0uint_lsl_uint (atstype_uint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint] ATSinline() atstype_uint atspre_g0uint_lsr_uint (atstype_uint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint] ATSinline() atstype_uint atspre_g0uint_lnot_uint (atstype_uint x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint] ATSinline() atstype_uint atspre_g0uint_lor_uint (atstype_uint x, atstype_uint y) { return (x | y) ; } // end of [atspre_g0uint_uint_uint] ATSinline() atstype_uint atspre_g0uint_land_uint (atstype_uint x, atstype_uint y) { return (x & y) ; } // end of [atspre_g0uint_uint_uint] ATSinline() atstype_uint atspre_g0uint_lxor_uint (atstype_uint x, atstype_uint y) { return (x ^ y) ; } // end of [atspre_g0uint_uint_uint] ATSinline() atstype_bool atspre_g0uint_lt_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint] ATSinline() atstype_bool atspre_g0uint_lte_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint] ATSinline() atstype_bool atspre_g0uint_gt_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint] ATSinline() atstype_bool atspre_g0uint_gte_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint] ATSinline() atstype_bool atspre_g0uint_eq_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint] ATSinline() atstype_bool atspre_g0uint_neq_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint] ATSinline() atstype_int atspre_g0uint_compare_uint ( atstype_uint x1, atstype_uint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint] ATSinline() atstype_uint atspre_g0uint_max_uint (atstype_uint x1, atstype_uint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint] ATSinline() atstype_uint atspre_g0uint_min_uint (atstype_uint x1, atstype_uint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint] ATSinline() atstype_bool atspre_g0uint_isltez_uint (atstype_uint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint] ATSinline() atstype_bool atspre_g0uint_isgtz_uint (atstype_uint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint] ATSinline() atstype_bool atspre_g0uint_iseqz_uint (atstype_uint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint] ATSinline() atstype_bool atspre_g0uint_isneqz_uint (atstype_uint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint] // ATSinline() atstype_ulint atspre_g0uint_succ_ulint (atstype_ulint x) { return (x + 1) ; } // end of [atspre_g0uint_succ_ulint] ATSinline() atstype_ulint atspre_g0uint_pred_ulint (atstype_ulint x) { return (x - 1) ; } // end of [atspre_g0uint_pred_ulint] ATSinline() atstype_ulint atspre_g0uint_half_ulint (atstype_ulint x) { return (x >> 1) ; } // end of [atspre_g0uint_half_ulint] ATSinline() atstype_ulint atspre_g0uint_add_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_ulint] ATSinline() atstype_ulint atspre_g0uint_sub_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_ulint] ATSinline() atstype_ulint atspre_g0uint_mul_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_ulint] ATSinline() atstype_ulint atspre_g0uint_div_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_ulint] ATSinline() atstype_ulint atspre_g0uint_mod_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_ulint] ATSinline() atstype_ulint atspre_g0uint_lsl_ulint (atstype_ulint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_ulint] ATSinline() atstype_ulint atspre_g0uint_lsr_ulint (atstype_ulint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_ulint] ATSinline() atstype_ulint atspre_g0uint_lnot_ulint (atstype_ulint x) { return ~(x) ; } // end of [atspre_g0uint_lnot_ulint] ATSinline() atstype_ulint atspre_g0uint_lor_ulint (atstype_ulint x, atstype_ulint y) { return (x | y) ; } // end of [atspre_g0uint_ulint_ulint] ATSinline() atstype_ulint atspre_g0uint_land_ulint (atstype_ulint x, atstype_ulint y) { return (x & y) ; } // end of [atspre_g0uint_ulint_ulint] ATSinline() atstype_ulint atspre_g0uint_lxor_ulint (atstype_ulint x, atstype_ulint y) { return (x ^ y) ; } // end of [atspre_g0uint_ulint_ulint] ATSinline() atstype_bool atspre_g0uint_lt_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_ulint] ATSinline() atstype_bool atspre_g0uint_lte_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_ulint] ATSinline() atstype_bool atspre_g0uint_gt_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_ulint] ATSinline() atstype_bool atspre_g0uint_gte_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_ulint] ATSinline() atstype_bool atspre_g0uint_eq_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_ulint] ATSinline() atstype_bool atspre_g0uint_neq_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_ulint] ATSinline() atstype_int atspre_g0uint_compare_ulint ( atstype_ulint x1, atstype_ulint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_ulint] ATSinline() atstype_ulint atspre_g0uint_max_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_ulint] ATSinline() atstype_ulint atspre_g0uint_min_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_ulint] ATSinline() atstype_bool atspre_g0uint_isltez_ulint (atstype_ulint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_ulint] ATSinline() atstype_bool atspre_g0uint_isgtz_ulint (atstype_ulint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_ulint] ATSinline() atstype_bool atspre_g0uint_iseqz_ulint (atstype_ulint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_ulint] ATSinline() atstype_bool atspre_g0uint_isneqz_ulint (atstype_ulint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_ulint] // ATSinline() atstype_ullint atspre_g0uint_succ_ullint (atstype_ullint x) { return (x + 1) ; } // end of [atspre_g0uint_succ_ullint] ATSinline() atstype_ullint atspre_g0uint_pred_ullint (atstype_ullint x) { return (x - 1) ; } // end of [atspre_g0uint_pred_ullint] ATSinline() atstype_ullint atspre_g0uint_half_ullint (atstype_ullint x) { return (x >> 1) ; } // end of [atspre_g0uint_half_ullint] ATSinline() atstype_ullint atspre_g0uint_add_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_ullint] ATSinline() atstype_ullint atspre_g0uint_sub_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_ullint] ATSinline() atstype_ullint atspre_g0uint_mul_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_ullint] ATSinline() atstype_ullint atspre_g0uint_div_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_ullint] ATSinline() atstype_ullint atspre_g0uint_mod_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_ullint] ATSinline() atstype_ullint atspre_g0uint_lsl_ullint (atstype_ullint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_ullint] ATSinline() atstype_ullint atspre_g0uint_lsr_ullint (atstype_ullint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_ullint] ATSinline() atstype_ullint atspre_g0uint_lnot_ullint (atstype_ullint x) { return ~(x) ; } // end of [atspre_g0uint_lnot_ullint] ATSinline() atstype_ullint atspre_g0uint_lor_ullint (atstype_ullint x, atstype_ullint y) { return (x | y) ; } // end of [atspre_g0uint_ullint_ullint] ATSinline() atstype_ullint atspre_g0uint_land_ullint (atstype_ullint x, atstype_ullint y) { return (x & y) ; } // end of [atspre_g0uint_ullint_ullint] ATSinline() atstype_ullint atspre_g0uint_lxor_ullint (atstype_ullint x, atstype_ullint y) { return (x ^ y) ; } // end of [atspre_g0uint_ullint_ullint] ATSinline() atstype_bool atspre_g0uint_lt_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_ullint] ATSinline() atstype_bool atspre_g0uint_lte_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_ullint] ATSinline() atstype_bool atspre_g0uint_gt_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_ullint] ATSinline() atstype_bool atspre_g0uint_gte_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_ullint] ATSinline() atstype_bool atspre_g0uint_eq_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_ullint] ATSinline() atstype_bool atspre_g0uint_neq_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_ullint] ATSinline() atstype_int atspre_g0uint_compare_ullint ( atstype_ullint x1, atstype_ullint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_ullint] ATSinline() atstype_ullint atspre_g0uint_max_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_ullint] ATSinline() atstype_ullint atspre_g0uint_min_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_ullint] ATSinline() atstype_bool atspre_g0uint_isltez_ullint (atstype_ullint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_ullint] ATSinline() atstype_bool atspre_g0uint_isgtz_ullint (atstype_ullint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_ullint] ATSinline() atstype_bool atspre_g0uint_iseqz_ullint (atstype_ullint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_ullint] ATSinline() atstype_bool atspre_g0uint_isneqz_ullint (atstype_ullint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_ullint] // /* ****** ****** */ #define atspre_g1uint_succ_uint atspre_g0uint_succ_uint #define atspre_g1uint_pred_uint atspre_g0uint_pred_uint #define atspre_g1uint_half_uint atspre_g0uint_half_uint #define atspre_g1uint_add_uint atspre_g0uint_add_uint #define atspre_g1uint_sub_uint atspre_g0uint_sub_uint #define atspre_g1uint_mul_uint atspre_g0uint_mul_uint #define atspre_g1uint_div_uint atspre_g0uint_div_uint #define atspre_g1uint_mod_uint atspre_g0uint_mod_uint #define atspre_g1uint_isgtz_uint atspre_g0uint_isgtz_uint #define atspre_g1uint_iseqz_uint atspre_g0uint_iseqz_uint #define atspre_g1uint_isneqz_uint atspre_g0uint_isneqz_uint #define atspre_g1uint_lt_uint atspre_g0uint_lt_uint #define atspre_g1uint_lte_uint atspre_g0uint_lte_uint #define atspre_g1uint_gt_uint atspre_g0uint_gt_uint #define atspre_g1uint_gte_uint atspre_g0uint_gte_uint #define atspre_g1uint_eq_uint atspre_g0uint_eq_uint #define atspre_g1uint_neq_uint atspre_g0uint_neq_uint #define atspre_g1uint_compare_uint atspre_g0uint_compare_uint #define atspre_g1uint_max_uint atspre_g0uint_max_uint #define atspre_g1uint_min_uint atspre_g0uint_min_uint /* ****** ****** */ #define atspre_g1uint_succ_ulint atspre_g0uint_succ_ulint #define atspre_g1uint_pred_ulint atspre_g0uint_pred_ulint #define atspre_g1uint_half_ulint atspre_g0uint_half_ulint #define atspre_g1uint_add_ulint atspre_g0uint_add_ulint #define atspre_g1uint_sub_ulint atspre_g0uint_sub_ulint #define atspre_g1uint_mul_ulint atspre_g0uint_mul_ulint #define atspre_g1uint_div_ulint atspre_g0uint_div_ulint #define atspre_g1uint_mod_ulint atspre_g0uint_mod_ulint #define atspre_g1uint_isgtz_ulint atspre_g0uint_isgtz_ulint #define atspre_g1uint_iseqz_ulint atspre_g0uint_iseqz_ulint #define atspre_g1uint_isneqz_ulint atspre_g0uint_isneqz_ulint #define atspre_g1uint_lt_ulint atspre_g0uint_lt_ulint #define atspre_g1uint_lte_ulint atspre_g0uint_lte_ulint #define atspre_g1uint_gt_ulint atspre_g0uint_gt_ulint #define atspre_g1uint_gte_ulint atspre_g0uint_gte_ulint #define atspre_g1uint_eq_ulint atspre_g0uint_eq_ulint #define atspre_g1uint_neq_ulint atspre_g0uint_neq_ulint #define atspre_g1uint_compare_ulint atspre_g0uint_compare_ulint #define atspre_g1uint_max_ulint atspre_g0uint_max_ulint #define atspre_g1uint_min_ulint atspre_g0uint_min_ulint /* ****** ****** */ #define atspre_g1uint_succ_ullint atspre_g0uint_succ_ullint #define atspre_g1uint_pred_ullint atspre_g0uint_pred_ullint #define atspre_g1uint_half_ullint atspre_g0uint_half_ullint #define atspre_g1uint_add_ullint atspre_g0uint_add_ullint #define atspre_g1uint_sub_ullint atspre_g0uint_sub_ullint #define atspre_g1uint_mul_ullint atspre_g0uint_mul_ullint #define atspre_g1uint_div_ullint atspre_g0uint_div_ullint #define atspre_g1uint_mod_ullint atspre_g0uint_mod_ullint #define atspre_g1uint_isgtz_ullint atspre_g0uint_isgtz_ullint #define atspre_g1uint_iseqz_ullint atspre_g0uint_iseqz_ullint #define atspre_g1uint_isneqz_ullint atspre_g0uint_isneqz_ullint #define atspre_g1uint_lt_ullint atspre_g0uint_lt_ullint #define atspre_g1uint_lte_ullint atspre_g0uint_lte_ullint #define atspre_g1uint_gt_ullint atspre_g0uint_gt_ullint #define atspre_g1uint_gte_ullint atspre_g0uint_gte_ullint #define atspre_g1uint_eq_ullint atspre_g0uint_eq_ullint #define atspre_g1uint_neq_ullint atspre_g0uint_neq_ullint #define atspre_g1uint_compare_ullint atspre_g0uint_compare_ullint #define atspre_g1uint_max_ullint atspre_g0uint_max_ullint #define atspre_g1uint_min_ullint atspre_g0uint_min_ullint /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER /* ****** ****** */ /* end of [integer.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/strptr.cats0000644000175000017500000000471113431250607021271 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/strptr.atxt ** Time of generation: Thu Feb 14 11:29:56 2019 */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_STRPTR #define ATSLIB_PRELUDE_CATS_STRPTR /* ****** ****** */ // // [string.h] // extern int // (sign) strcmp(const char *x1, const char *x2) ; /* ****** ****** */ #define atspre_strptr_null() atsptr_null /* ****** ****** */ #define atspre_strptr_free atspre_mfree_gc #define atspre_strnptr_free atspre_mfree_gc /* ****** ****** */ ATSinline() atstype_int atspre_compare_strptr_strptr ( atstype_strptr x1, atstype_strptr x2 ) { if(x1==0) { return (x2==0 ? 0 : -1) ; } else { return (x2==0 ? 1 : atspre_compare_string_string(x1, x2)) ; } // end of [if] } // end of [atspre_compare_strptr_strptr] /* ****** ****** */ #define atspre_eq_strptr_string atspre_eq_string_string #define atspre_neq_strptr_string atspre_neq_string_string #define atspre_compare_strptr_string atspre_compare_string_string /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_STRPTR /* ****** ****** */ /* end of [strptr.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/matrix.cats0000644000175000017500000000330213431250607021232 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/matrix.atxt ** Time of generation: Thu Feb 14 11:29:58 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_MATRIX #define ATSLIB_PRELUDE_CATS_MATRIX /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_MATRIX /* ****** ****** */ /* end of [matrix.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/matrixptr.cats0000644000175000017500000000356013431250607021766 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/matrixptr.atxt ** Time of generation: Thu Feb 14 11:29:59 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_MATRIXPTR #define ATSLIB_PRELUDE_CATS_MATRIXPTR /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_matrixptr_free (atstype_arrptr ptr) { ATS_MFREE (ptr) ; return ; } // end of [atspre_matrixptr_free] /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_MATRIXPTR /* ****** ****** */ /* end of [matrixptr.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/float.cats0000644000175000017500000004677313431250607021056 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/float.atxt ** Time of generation: Thu Feb 14 11:29:56 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2012 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_FLOAT #define ATSLIB_PRELUDE_CATS_FLOAT /* ****** ****** */ ATSinline() atstype_float atspre_g0int2float_int_float (atstype_int x) { return ((atstype_float)x) ; } // end of [atspre_g0int2float_int_float] ATSinline() atstype_double atspre_g0int2float_int_double (atstype_int x) { return ((atstype_double)x) ; } // end of [atspre_g0int2float_int_double] ATSinline() atstype_double atspre_g0int2float_lint_double (atstype_lint x) { return ((atstype_double)x) ; } // end of [atspre_g0int2float_lint_double] /* ****** ****** */ ATSinline() atstype_int atspre_g0float2int_float_int (atstype_float x) { return ((atstype_int)x) ; } ATSinline() atstype_lint atspre_g0float2int_float_lint (atstype_float x) { return ((atstype_lint)x) ; } ATSinline() atstype_llint atspre_g0float2int_float_llint (atstype_float x) { return ((atstype_llint)x) ; } ATSinline() atstype_int atspre_g0float2int_double_int (atstype_double x) { return ((atstype_int)x) ; } ATSinline() atstype_lint atspre_g0float2int_double_lint (atstype_double x) { return ((atstype_lint)x) ; } ATSinline() atstype_llint atspre_g0float2int_double_llint (atstype_double x) { return ((atstype_llint)x) ; } /* ****** ****** */ ATSinline() atstype_float atspre_g0float2float_float_float (atstype_float x) { return (x) ; } ATSinline() atstype_double atspre_g0float2float_double_double (atstype_double x) { return (x) ; } ATSinline() atstype_double atspre_g0float2float_float_double ( atstype_float x ) { return ((atstype_double)x) ; } ATSinline() atstype_float atspre_g0float2float_double_float ( atstype_double x ) { return ((atstype_float)x) ; } /* ****** ****** */ // extern double atof (const char *inp) ; // ATSinline() atstype_double atspre_g0string2float_double (atstype_string inp) { return atof((char*)inp) ; } // /* ****** ****** */ ATSinline() atstype_float atspre_g0float_neg_float (atstype_float f) { return (-f) ; } ATSinline() atstype_double atspre_g0float_neg_double (atstype_double f) { return (-f) ; } ATSinline() atstype_ldouble atspre_g0float_neg_ldouble (atstype_ldouble f) { return (-f) ; } ATSinline() atstype_float atspre_g0float_abs_float (atstype_float f) { return (f >= 0 ? f : -f) ; } ATSinline() atstype_double atspre_g0float_abs_double (atstype_double f) { return (f >= 0 ? f : -f) ; } ATSinline() atstype_ldouble atspre_g0float_abs_ldouble (atstype_ldouble f) { return (f >= 0 ? f : -f) ; } ATSinline() atstype_float atspre_g0float_succ_float (atstype_float f) { return (f+1) ; } ATSinline() atstype_double atspre_g0float_succ_double (atstype_double f) { return (f+1) ; } ATSinline() atstype_ldouble atspre_g0float_succ_ldouble (atstype_ldouble f) { return (f+1) ; } ATSinline() atstype_float atspre_g0float_pred_float (atstype_float f) { return (f-1) ; } ATSinline() atstype_double atspre_g0float_pred_double (atstype_double f) { return (f-1) ; } ATSinline() atstype_ldouble atspre_g0float_pred_ldouble (atstype_ldouble f) { return (f-1) ; } /* ****** ****** */ // // ATSinline() atstype_float atspre_g0float_add_float (atstype_float f1, atstype_float f2) { return (f1 + f2) ; } // end of [atspre_g0float_add_float] ATSinline() atstype_float atspre_g0float_sub_float (atstype_float f1, atstype_float f2) { return (f1 - f2) ; } // end of [atspre_g0float_sub_float] ATSinline() atstype_float atspre_g0float_mul_float (atstype_float f1, atstype_float f2) { return (f1 * f2) ; } // end of [atspre_g0float_mul_float] ATSinline() atstype_float atspre_g0float_div_float (atstype_float f1, atstype_float f2) { return (f1 / f2) ; } // end of [atspre_g0float_div_float] // ATSinline() atstype_double atspre_g0float_add_double (atstype_double f1, atstype_double f2) { return (f1 + f2) ; } // end of [atspre_g0float_add_double] ATSinline() atstype_double atspre_g0float_sub_double (atstype_double f1, atstype_double f2) { return (f1 - f2) ; } // end of [atspre_g0float_sub_double] ATSinline() atstype_double atspre_g0float_mul_double (atstype_double f1, atstype_double f2) { return (f1 * f2) ; } // end of [atspre_g0float_mul_double] ATSinline() atstype_double atspre_g0float_div_double (atstype_double f1, atstype_double f2) { return (f1 / f2) ; } // end of [atspre_g0float_div_double] // ATSinline() atstype_ldouble atspre_g0float_add_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 + f2) ; } // end of [atspre_g0float_add_ldouble] ATSinline() atstype_ldouble atspre_g0float_sub_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 - f2) ; } // end of [atspre_g0float_sub_ldouble] ATSinline() atstype_ldouble atspre_g0float_mul_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 * f2) ; } // end of [atspre_g0float_mul_ldouble] ATSinline() atstype_ldouble atspre_g0float_div_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 / f2) ; } // end of [atspre_g0float_div_ldouble] // extern atstype_float fmodf (atstype_float, atstype_float) ; extern atstype_double fmod (atstype_double, atstype_double) ; extern atstype_ldouble fmodl (atstype_ldouble, atstype_ldouble) ; // ATSinline() atstype_float atspre_g0float_mod_float (atstype_float f1, atstype_float f2) { return fmodf(f1, f2) ; } ATSinline() atstype_double atspre_g0float_mod_double (atstype_double f1, atstype_double f2) { return fmod(f1, f2) ; } ATSinline() atstype_ldouble atspre_g0float_mod_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return fmodl(f1, f2) ; } // /* ****** ****** */ // // ATSinline() atstype_bool atspre_g0float_lt_float (atstype_float f1, atstype_float f2) { return (f1 < f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lt_float] ATSinline() atstype_bool atspre_g0float_lte_float (atstype_float f1, atstype_float f2) { return (f1 <= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lte_float] ATSinline() atstype_bool atspre_g0float_gt_float (atstype_float f1, atstype_float f2) { return (f1 > f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gt_float] ATSinline() atstype_bool atspre_g0float_gte_float (atstype_float f1, atstype_float f2) { return (f1 >= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gte_float] ATSinline() atstype_bool atspre_g0float_eq_float (atstype_float f1, atstype_float f2) { return (f1 == f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_eq_float] ATSinline() atstype_bool atspre_g0float_neq_float (atstype_float f1, atstype_float f2) { return (f1 != f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_neq_float] // ATSinline() atstype_bool atspre_g0float_lt_double (atstype_double f1, atstype_double f2) { return (f1 < f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lt_double] ATSinline() atstype_bool atspre_g0float_lte_double (atstype_double f1, atstype_double f2) { return (f1 <= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lte_double] ATSinline() atstype_bool atspre_g0float_gt_double (atstype_double f1, atstype_double f2) { return (f1 > f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gt_double] ATSinline() atstype_bool atspre_g0float_gte_double (atstype_double f1, atstype_double f2) { return (f1 >= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gte_double] ATSinline() atstype_bool atspre_g0float_eq_double (atstype_double f1, atstype_double f2) { return (f1 == f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_eq_double] ATSinline() atstype_bool atspre_g0float_neq_double (atstype_double f1, atstype_double f2) { return (f1 != f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_neq_double] // ATSinline() atstype_bool atspre_g0float_lt_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 < f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lt_ldouble] ATSinline() atstype_bool atspre_g0float_lte_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 <= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lte_ldouble] ATSinline() atstype_bool atspre_g0float_gt_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 > f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gt_ldouble] ATSinline() atstype_bool atspre_g0float_gte_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 >= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gte_ldouble] ATSinline() atstype_bool atspre_g0float_eq_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 == f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_eq_ldouble] ATSinline() atstype_bool atspre_g0float_neq_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 != f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_neq_ldouble] // /* ****** ****** */ ATSinline() atstype_int atspre_g0float_compare_float ( atstype_float f1, atstype_float f2 ) { if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ; } // end of [atspre_g0float_compare_float] ATSinline() atstype_int atspre_g0float_compare_double ( atstype_double f1, atstype_double f2 ) { if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ; } // end of [atspre_g0float_compare_double] ATSinline() atstype_int atspre_g0float_compare_ldouble ( atstype_ldouble f1, atstype_ldouble f2 ) { if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ; } // end of [atspre_g0float_compare_ldouble] /* ****** ****** */ ATSinline() atstype_float atspre_g0float_min_float (atstype_float f1, atstype_float f2) { return (f1 <= f2 ? f1 : f2) ; } // end of [atspre_g0float_min_float] ATSinline() atstype_double atspre_g0float_min_double (atstype_double f1, atstype_double f2) { return (f1 <= f2 ? f1 : f2) ; } // end of [atspre_g0float_min_double] ATSinline() atstype_ldouble atspre_g0float_min_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 <= f2 ? f1 : f2) ; } // end of [atspre_g0float_min_ldouble] ATSinline() atstype_float atspre_g0float_max_float (atstype_float f1, atstype_float f2) { return (f1 >= f2 ? f1 : f2) ; } // end of [atspre_g0float_max_float] ATSinline() atstype_double atspre_g0float_max_double (atstype_double f1, atstype_double f2) { return (f1 >= f2 ? f1 : f2) ; } // end of [atspre_g0float_max_double] ATSinline() atstype_ldouble atspre_g0float_max_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 >= f2 ? f1 : f2) ; } // end of [atspre_g0float_max_ldouble] /* ****** ****** */ // // ATSinline() atstype_float atspre_add_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) + f2) ; } // end of [atspre_add_int_float] ATSinline() atstype_float atspre_sub_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) - f2) ; } // end of [atspre_sub_int_float] ATSinline() atstype_float atspre_mul_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) * f2) ; } // end of [atspre_mul_int_float] ATSinline() atstype_float atspre_div_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) / f2) ; } // end of [atspre_div_int_float] // ATSinline() atstype_double atspre_add_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) + f2) ; } // end of [atspre_add_int_double] ATSinline() atstype_double atspre_sub_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) - f2) ; } // end of [atspre_sub_int_double] ATSinline() atstype_double atspre_mul_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) * f2) ; } // end of [atspre_mul_int_double] ATSinline() atstype_double atspre_div_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) / f2) ; } // end of [atspre_div_int_double] // ATSinline() atstype_ldouble atspre_add_int_ldouble (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) + f2) ; } // end of [atspre_add_int_ldouble] ATSinline() atstype_ldouble atspre_sub_int_ldouble (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) - f2) ; } // end of [atspre_sub_int_ldouble] ATSinline() atstype_ldouble atspre_mul_int_ldouble (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) * f2) ; } // end of [atspre_mul_int_ldouble] ATSinline() atstype_ldouble atspre_div_int_ldouble (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) / f2) ; } // end of [atspre_div_int_ldouble] // /* ****** ****** */ // // ATSinline() atstype_float atspre_add_float_int (atstype_float f1, atstype_int i2) { return (f1 + ((atstype_float)i2)) ; } // end of [atspre_add_float_int] ATSinline() atstype_float atspre_sub_float_int (atstype_float f1, atstype_int i2) { return (f1 - ((atstype_float)i2)) ; } // end of [atspre_sub_float_int] ATSinline() atstype_float atspre_mul_float_int (atstype_float f1, atstype_int i2) { return (f1 * ((atstype_float)i2)) ; } // end of [atspre_mul_float_int] ATSinline() atstype_float atspre_div_float_int (atstype_float f1, atstype_int i2) { return (f1 / ((atstype_float)i2)) ; } // end of [atspre_div_float_int] // ATSinline() atstype_double atspre_add_double_int (atstype_double f1, atstype_int i2) { return (f1 + ((atstype_double)i2)) ; } // end of [atspre_add_double_int] ATSinline() atstype_double atspre_sub_double_int (atstype_double f1, atstype_int i2) { return (f1 - ((atstype_double)i2)) ; } // end of [atspre_sub_double_int] ATSinline() atstype_double atspre_mul_double_int (atstype_double f1, atstype_int i2) { return (f1 * ((atstype_double)i2)) ; } // end of [atspre_mul_double_int] ATSinline() atstype_double atspre_div_double_int (atstype_double f1, atstype_int i2) { return (f1 / ((atstype_double)i2)) ; } // end of [atspre_div_double_int] // ATSinline() atstype_ldouble atspre_add_ldouble_int (atstype_ldouble f1, atstype_int i2) { return (f1 + ((atstype_ldouble)i2)) ; } // end of [atspre_add_ldouble_int] ATSinline() atstype_ldouble atspre_sub_ldouble_int (atstype_ldouble f1, atstype_int i2) { return (f1 - ((atstype_ldouble)i2)) ; } // end of [atspre_sub_ldouble_int] ATSinline() atstype_ldouble atspre_mul_ldouble_int (atstype_ldouble f1, atstype_int i2) { return (f1 * ((atstype_ldouble)i2)) ; } // end of [atspre_mul_ldouble_int] ATSinline() atstype_ldouble atspre_div_ldouble_int (atstype_ldouble f1, atstype_int i2) { return (f1 / ((atstype_ldouble)i2)) ; } // end of [atspre_div_ldouble_int] // /* ****** ****** */ // // ATSinline() atstype_bool atspre_lt_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) < f2) ; } // end of [atspre_lt_int_float] ATSinline() atstype_bool atspre_lte_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) <= f2) ; } // end of [atspre_lte_int_float] ATSinline() atstype_bool atspre_gt_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) > f2) ; } // end of [atspre_gt_int_float] ATSinline() atstype_bool atspre_gte_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) >= f2) ; } // end of [atspre_gte_int_float] ATSinline() atstype_bool atspre_eq_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) == f2) ; } // end of [atspre_eq_int_float] ATSinline() atstype_bool atspre_neq_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) != f2) ; } // end of [atspre_neq_int_float] // ATSinline() atstype_bool atspre_lt_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) < f2) ; } // end of [atspre_lt_int_double] ATSinline() atstype_bool atspre_lte_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) <= f2) ; } // end of [atspre_lte_int_double] ATSinline() atstype_bool atspre_gt_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) > f2) ; } // end of [atspre_gt_int_double] ATSinline() atstype_bool atspre_gte_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) >= f2) ; } // end of [atspre_gte_int_double] ATSinline() atstype_bool atspre_eq_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) == f2) ; } // end of [atspre_eq_int_double] ATSinline() atstype_bool atspre_neq_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) != f2) ; } // end of [atspre_neq_int_double] // /* ****** ****** */ // // ATSinline() atstype_bool atspre_lt_float_int (atstype_float f1, atstype_int i2) { return (f1 < ((atstype_float)i2)) ; } // end of [atspre_lt_float_int] ATSinline() atstype_bool atspre_lte_float_int (atstype_float f1, atstype_int i2) { return (f1 <= ((atstype_float)i2)) ; } // end of [atspre_lte_float_int] ATSinline() atstype_bool atspre_gt_float_int (atstype_float f1, atstype_int i2) { return (f1 > ((atstype_float)i2)) ; } // end of [atspre_gt_float_int] ATSinline() atstype_bool atspre_gte_float_int (atstype_float f1, atstype_int i2) { return (f1 >= ((atstype_float)i2)) ; } // end of [atspre_gte_float_int] ATSinline() atstype_bool atspre_eq_float_int (atstype_float f1, atstype_int i2) { return (f1 == ((atstype_float)i2)) ; } // end of [atspre_eq_float_int] ATSinline() atstype_bool atspre_neq_float_int (atstype_float f1, atstype_int i2) { return (f1 != ((atstype_float)i2)) ; } // end of [atspre_neq_float_int] // ATSinline() atstype_bool atspre_lt_double_int (atstype_double f1, atstype_int i2) { return (f1 < ((atstype_double)i2)) ; } // end of [atspre_lt_double_int] ATSinline() atstype_bool atspre_lte_double_int (atstype_double f1, atstype_int i2) { return (f1 <= ((atstype_double)i2)) ; } // end of [atspre_lte_double_int] ATSinline() atstype_bool atspre_gt_double_int (atstype_double f1, atstype_int i2) { return (f1 > ((atstype_double)i2)) ; } // end of [atspre_gt_double_int] ATSinline() atstype_bool atspre_gte_double_int (atstype_double f1, atstype_int i2) { return (f1 >= ((atstype_double)i2)) ; } // end of [atspre_gte_double_int] ATSinline() atstype_bool atspre_eq_double_int (atstype_double f1, atstype_int i2) { return (f1 == ((atstype_double)i2)) ; } // end of [atspre_eq_double_int] ATSinline() atstype_bool atspre_neq_double_int (atstype_double f1, atstype_int i2) { return (f1 != ((atstype_double)i2)) ; } // end of [atspre_neq_double_int] // /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_FLOAT /* ****** ****** */ /* end of [float.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/char.cats0000644000175000017500000003272613431250607020657 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/char.atxt ** Time of generation: Thu Feb 14 11:29:55 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_CHAR #define ATSLIB_PRELUDE_CATS_CHAR /* ****** ****** */ #include /* ****** ****** */ #ifdef __CYGWIN__ // #ifndef isascii extern int isascii (int c) ; // _XOPEN_SOURCE #endif // end of [isascii] #ifndef isblank extern int isblank (int c) ; // _XOPEN_SOURCE >= 600 #endif // end of [isblank] #ifndef toascii extern int toascii (int c) ; // _XOPEN_SOURCE #endif // end of [toascii] // #endif // end of [#ifdef(__CYGWIN__)] /* ****** ****** */ // ATSinline() atstype_char atspre_int2char (atstype_int i) { return ((atstype_char)i) ; } ATSinline() atstype_schar atspre_int2schar (atstype_int i) { return ((atstype_schar)i) ; } ATSinline() atstype_uchar atspre_int2uchar (atstype_int i) { return ((atstype_uchar)i) ; } // #define atspre_int2char0 atspre_int2char #define atspre_int2schar0 atspre_int2schar #define atspre_int2uchar0 atspre_int2uchar // /* ****** ****** */ // ATSinline() atstype_int atspre_char2int (atstype_char c) { return ((atstype_int)c) ; } ATSinline() atstype_int atspre_schar2int (atstype_schar c) { return ((atstype_int)c) ; } ATSinline() atstype_int atspre_uchar2int (atstype_uchar c) { return ((atstype_int)c) ; } // #define atspre_char2int0 atspre_char2int #define atspre_schar2int0 atspre_schar2int #define atspre_uchar2int0 atspre_uchar2int // #define atspre_char2int1 atspre_char2int #define atspre_schar2int1 atspre_schar2int #define atspre_uchar2int1 atspre_uchar2int // /* ****** ****** */ // ATSinline() atstype_uint atspre_char2uint (atstype_char c) { return ((atstype_uint)c) ; } ATSinline() atstype_uint atspre_schar2uint (atstype_schar c) { return ((atstype_uint)c) ; } ATSinline() atstype_uint atspre_uchar2uint (atstype_uchar c) { return ((atstype_uint)c) ; } // #define atspre_char2uint0 atspre_char2uint #define atspre_schar2uint0 atspre_schar2uint #define atspre_uchar2uint0 atspre_uchar2uint // /* ****** ****** */ // ATSinline() atstype_int atspre_char2u2int (atstype_char c) { return ((atstype_int)((atstype_uchar)c)) ; } ATSinline() atstype_uint atspre_char2u2uint (atstype_char c) { return ((atstype_uint)((atstype_uchar)c)) ; } // #define atspre_char2u2int0 atspre_char2u2int #define atspre_char2u2uint0 atspre_char2u2uint // /* ****** ****** */ ATSinline() atstype_bool atspre_char_iseqz (atstype_char c) { return ((c == 0) ? atsbool_true : atsbool_false) ; } // end of [atspre_char_iseqz] #define atspre_char0_iseqz(c) atspre_char_iseqz(c) #define atspre_char1_iseqz(c) atspre_char_iseqz(c) ATSinline() atstype_bool atspre_char_isneqz (atstype_char c) { return ((c != 0) ? atsbool_true : atsbool_false) ; } // end of [atspre_char_isneqz] #define atspre_char0_isneqz(c) atspre_char_isneqz(c) #define atspre_char1_isneqz(c) atspre_char_isneqz(c) /* ****** ****** */ // ATSinline() atstype_char atspre_add_char_int ( atstype_char c1, atstype_int i2 ) { return (c1 + i2) ; } // #define atspre_add_char0_int0 atspre_add_char_int // /* ****** ****** */ // ATSinline() atstype_char atspre_sub_char_int ( atstype_char c1, atstype_int i2 ) { return (c1 - i2) ; } // #define atspre_sub_char0_int0 atspre_sub_char_int // /* ****** ****** */ // ATSinline() atstype_int atspre_sub_char_char ( atstype_char c1, atstype_char c2 ) { return (c1 - c2) ; } // #define atspre_sub_char0_char0 atspre_sub_char_char // /* ****** ****** */ ATSinline() atstype_bool atspre_lt_int_int (atstype_int i1, atstype_int i2) { return (i1 < i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lt_int_int] #define atspre_lt_char0_char0 atspre_lt_int_int #define atspre_lt_char1_char1 atspre_lt_int_int ATSinline() atstype_bool atspre_lte_int_int (atstype_int i1, atstype_int i2) { return (i1 <= i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lte_int_int] #define atspre_lte_char0_char0 atspre_lte_int_int #define atspre_lte_char1_char1 atspre_lte_int_int ATSinline() atstype_bool atspre_gt_int_int (atstype_int i1, atstype_int i2) { return (i1 > i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gt_int_int] #define atspre_gt_char0_char0 atspre_gt_int_int #define atspre_gt_char1_char1 atspre_gt_int_int ATSinline() atstype_bool atspre_gte_int_int (atstype_int i1, atstype_int i2) { return (i1 >= i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gte_int_int] #define atspre_gte_char0_char0 atspre_gte_int_int #define atspre_gte_char1_char1 atspre_gte_int_int ATSinline() atstype_bool atspre_eq_int_int (atstype_int i1, atstype_int i2) { return (i1 == i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_eq_int_int] #define atspre_eq_char0_char0 atspre_eq_int_int #define atspre_eq_char1_char1 atspre_eq_int_int ATSinline() atstype_bool atspre_neq_int_int (atstype_int i1, atstype_int i2) { return (i1 != i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_neq_int_int] #define atspre_neq_char0_char0 atspre_neq_int_int #define atspre_neq_char1_char1 atspre_neq_int_int /* ****** ****** */ ATSinline() atstype_int atspre_compare_int_int (atstype_int i1, atstype_int i2) { return (i1 - i2) ; } // end of [atspre_compare_int_int] #define atspre_compare_char0_char0(c1, c2) atspre_compare_int_int(c1, c2) #define atspre_compare_char1_char1(c1, c2) atspre_compare_int_int(c1, c2) /* ****** ****** */ #define atspre_eq_char0_int0(c, i) atspre_eq_int_int(c, i) #define atspre_eq_int0_char0(i, c) atspre_eq_int_int(i, c) #define atspre_neq_char0_int0(c, i) atspre_neq_int_int(c, i) #define atspre_neq_int0_char0(i, c) atspre_neq_int_int(i, c) /* ****** ****** */ #define atspre_compare_char0_int0(c, i) atspre_compare_int_int(c, i) #define atspre_compare_int0_char0(i, c) atspre_compare_int_int(i, c) /* ****** ****** */ // // unsigned characters // /* ****** ****** */ ATSinline() atstype_bool atspre_lt_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 < c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lt_uchar_uchar] #define atspre_lt_uchar0_uchar0 atspre_lt_uchar_uchar #define atspre_lt_uchar1_uchar1 atspre_lt_uchar_uchar ATSinline() atstype_bool atspre_lte_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 <= c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lte_uchar_uchar] #define atspre_lte_uchar0_uchar0 atspre_lte_uchar_uchar #define atspre_lte_uchar1_uchar1 atspre_lte_uchar_uchar ATSinline() atstype_bool atspre_gt_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 > c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gt_uchar_uchar] #define atspre_gt_uchar0_uchar0 atspre_gt_uchar_uchar #define atspre_gt_uchar1_uchar1 atspre_gt_uchar_uchar ATSinline() atstype_bool atspre_gte_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 >= c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gte_uchar_uchar] #define atspre_gte_uchar0_uchar0 atspre_gte_uchar_uchar #define atspre_gte_uchar1_uchar1 atspre_gte_uchar_uchar ATSinline() atstype_bool atspre_eq_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 == c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_eq_uchar_uchar] #define atspre_eq_uchar0_uchar0 atspre_eq_uchar_uchar #define atspre_eq_uchar1_uchar1 atspre_eq_uchar_uchar ATSinline() atstype_bool atspre_neq_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 != c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_neq_uchar_uchar] #define atspre_neq_uchar0_uchar0 atspre_neq_uchar_uchar #define atspre_neq_uchar1_uchar1 atspre_neq_uchar_uchar /* ****** ****** */ ATSinline() atstype_int atspre_compare_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return ((atstype_int)c1 - (atstype_int)c2) ; } // end of [atspre_compare_uchar_uchar] #define atspre_compare_uchar0_uchar0 atspre_compare_uchar_uchar #define atspre_compare_uchar1_uchar1 atspre_compare_uchar_uchar /* ****** ****** */ ATSinline() atstype_bool atspre_isalpha_int (atstype_int c) { return (isalpha(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isalpha_int] #define atspre_isalpha_char(c) atspre_isalpha_int((atstype_int)(c)) ATSinline() atstype_bool atspre_isalnum_int (atstype_int c) { return (isalnum(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isalnum_int] #define atspre_isalnum_char(c) atspre_isalnum_int((atstype_int)(c)) ATSinline() atstype_bool atspre_isascii_int (atstype_int c) { return (isascii(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isascii_int] #define atspre_isascii_char(c) atspre_isascii_int((atstype_int)(c)) ATSinline() atstype_bool atspre_isblank_int (atstype_int c) { return (isblank(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isblank_int] #define atspre_isblank_char(c) atspre_isblank_int((atstype_int)(c)) ATSinline() atstype_bool atspre_isspace_int (atstype_int c) { return (isspace(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isspace_int] #define atspre_isspace_char(c) atspre_isspace_int((atstype_int)(c)) ATSinline() atstype_bool atspre_iscntrl_int (atstype_int c) { return (iscntrl(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_iscntrl_int] #define atspre_iscntrl_char(c) atspre_iscntrl_int((atstype_int)(c)) ATSinline() atstype_bool atspre_isdigit_int (atstype_int c) { return (isdigit(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isdigit_int] #define atspre_isdigit_char(c) atspre_isdigit_int((atstype_int)(c)) ATSinline() atstype_bool atspre_isxdigit_int (atstype_int c) { return (isxdigit(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isxdigit_int] #define atspre_isxdigit_char(c) atspre_isxdigit_int((atstype_int)(c)) ATSinline() atstype_bool atspre_isgraph_int (atstype_int c) { return (isgraph(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isgraph_int] #define atspre_isgraph_char(c) atspre_isgraph_int((atstype_int)(c)) ATSinline() atstype_bool atspre_isprint_int (atstype_int c) { return (isprint(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isprint_int] #define atspre_isprint_char(c) atspre_isprint_int((atstype_int)(c)) ATSinline() atstype_bool atspre_ispunct_int (atstype_int c) { return (ispunct(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_ispunct_int] #define atspre_ispunct_char(c) atspre_ispunct_int((atstype_int)(c)) ATSinline() atstype_bool atspre_islower_int (atstype_int c) { return (islower(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_islower_int] #define atspre_islower_char(c) atspre_islower_int((atstype_int)(c)) ATSinline() atstype_bool atspre_isupper_int (atstype_int c) { return (isupper(c) ? atsbool_true : atsbool_false) ; } // end of [atspre_isupper_int] #define atspre_isupper_char(c) atspre_isupper_int((atstype_int)(c)) /* ****** ****** */ #define atspre_toascii toascii /* ****** ****** */ ATSinline() atstype_int atspre_tolower_int (atstype_int c) { return tolower(c) ; } ATSinline() atstype_char atspre_tolower_char (atstype_char c) { return tolower(c) ; } // ATSinline() atstype_int atspre_toupper_int (atstype_int c) { return toupper(c) ; } ATSinline() atstype_char atspre_toupper_char (atstype_char c) { return toupper(c) ; } // /* ****** ****** */ ATSinline() atstype_char atspre_int2digit (atstype_int i) { return ('0' + i) ; } // end of [atspre_int2digit] ATSinline() atstype_char atspre_int2xdigit (atstype_int i) { return (i < 10) ? ('0' + i) : ('a' + (i - 10)) ; } // end of [atspre_int2xdigit] ATSinline() atstype_char atspre_int2xxdigit (atstype_int i) { return (i < 10) ? ('0' + i) : ('A' + (i - 10)) ; } // end of [atspre_int2xxdigit] /* ****** ****** */ ATSinline() atstype_int atspre_byte2int (atstype_byte b) { return ((atstype_int)b) ; } ATSinline() atstype_byte atspre_int2byte (atstype_int i) { return ((atstype_byte)i) ; } ATSinline() atstype_uint atspre_byte2uint (atstype_byte b) { return ((atstype_uint)b) ; } ATSinline() atstype_byte atspre_uint2byte (atstype_uint u) { return ((atstype_byte)u) ; } /* ****** ****** */ #define atspre_byte2int0 atspre_byte2int #define atspre_int2byte0 atspre_int2byte #define atspre_byte2uint0 atspre_byte2uint #define atspre_uint2byte0 atspre_uint2byte /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_CHAR /* ****** ****** */ /* end of [char.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/integer_size.cats0000644000175000017500000003577113431250607022434 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer_size.atxt ** Time of generation: Thu Feb 14 11:29:55 2019 */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_INTEGER_SIZE #define ATSLIB_PRELUDE_CATS_INTEGER_SIZE /* ****** ****** */ // #define \ atspre_g0int2uint_int_size(x) ((atstype_size)(x)) #define \ atspre_g1int2uint_int_size(x) atspre_g0int2uint_int_size(x) #define \ atspre_g0uint2uint_uint_size(x) ((atstype_size)(x)) #define \ atspre_g1uint2uint_uint_size(x) atspre_g0uint2uint_uint_size(x) // #define \ atspre_g0int2int_int_ssize(x) ((atstype_ssize)(x)) #define \ atspre_g1int2int_int_ssize(x) atspre_g0int2int_int_ssize(x) #define \ atspre_g0uint2int_uint_ssize(x) ((atstype_ssize)(x)) #define \ atspre_g1uint2int_uint_ssize(x) atspre_g0uint2int_uint_ssize(x) // /* ****** ****** */ // #define \ atspre_g0int2uint_lint_size(x) ((atstype_size)(x)) #define \ atspre_g1int2uint_lint_size(x) atspre_g0int2uint_lint_size(x) #define \ atspre_g0uint2uint_ulint_size(x) ((atstype_size)(x)) #define \ atspre_g1uint2uint_ulint_size(x) atspre_g0uint2uint_ulint_size(x) // /* ****** ****** */ // #define \ atspre_g0int2int_lint_ssize(ssz) ((atstype_ssize)(ssz)) #define \ atspre_g1int2int_lint_ssize(ssz) atspre_g0int2int_lint_ssize(ssz) // /* ****** ****** */ // #define \ atspre_g0uint2int_size_int(sz) ((atstype_int)(sz)) #define \ atspre_g1uint2int_size_int(sz) atspre_g0uint2int_size_int(sz) // #define \ atspre_g0uint2uint_size_uint(sz) ((atstype_uint)(sz)) #define \ atspre_g1uint2uint_size_uint(sz) atspre_g0uint2uint_size_uint(sz) // #define \ atspre_g0uint2uint_size_size(sz) ((atstype_size)(sz)) #define \ atspre_g1uint2uint_size_size(sz) atspre_g0uint2uint_size_size(sz) // /* ****** ****** */ // #define \ atspre_g0int2int_ssize_int(ssz) ((atstype_int)(ssz)) #define \ atspre_g1int2int_ssize_int(ssz) atspre_g0int2int_ssize_int(ssz) // #define \ atspre_g0int2uint_ssize_uint(ssz) ((atstype_uint)(ssz)) #define \ atspre_g1int2uint_ssize_uint(ssz) atspre_g0int2uint_ssize_uint(ssz) // #define \ atspre_g0int2int_ssize_ssize(ssz) ((atstype_ssize)(ssz)) #define \ atspre_g1int2int_ssize_ssize(ssz) atspre_g0int2int_ssize_ssize(ssz) // /* ****** ****** */ // #define \ atspre_g0uint2int_size_ssize(sz) ((atstype_ssize)(sz)) #define \ atspre_g1uint2int_size_ssize(sz) atspre_g0uint2int_size_ssize(sz) #define \ atspre_g0int2uint_ssize_size(ssz) ((atstype_size)(ssz)) #define \ atspre_g1int2uint_ssize_size(ssz) atspre_g0int2uint_ssize_size(ssz) // /* ****** ****** */ // ATSinline() atstype_size atspre_g0uint_succ_size (atstype_size x) { return (x + 1) ; } // end of [atspre_g0uint_succ_size] ATSinline() atstype_size atspre_g0uint_pred_size (atstype_size x) { return (x - 1) ; } // end of [atspre_g0uint_pred_size] ATSinline() atstype_size atspre_g0uint_half_size (atstype_size x) { return (x >> 1) ; } // end of [atspre_g0uint_half_size] ATSinline() atstype_size atspre_g0uint_add_size (atstype_size x1, atstype_size x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_size] ATSinline() atstype_size atspre_g0uint_sub_size (atstype_size x1, atstype_size x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_size] ATSinline() atstype_size atspre_g0uint_mul_size (atstype_size x1, atstype_size x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_size] ATSinline() atstype_size atspre_g0uint_div_size (atstype_size x1, atstype_size x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_size] ATSinline() atstype_size atspre_g0uint_mod_size (atstype_size x1, atstype_size x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_size] ATSinline() atstype_size atspre_g0uint_lsl_size (atstype_size x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_size] ATSinline() atstype_size atspre_g0uint_lsr_size (atstype_size x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_size] ATSinline() atstype_size atspre_g0uint_lnot_size (atstype_size x) { return ~(x) ; } // end of [atspre_g0uint_lnot_size] ATSinline() atstype_size atspre_g0uint_lor_size (atstype_size x, atstype_size y) { return (x | y) ; } // end of [atspre_g0uint_size_size] ATSinline() atstype_size atspre_g0uint_land_size (atstype_size x, atstype_size y) { return (x & y) ; } // end of [atspre_g0uint_size_size] ATSinline() atstype_size atspre_g0uint_lxor_size (atstype_size x, atstype_size y) { return (x ^ y) ; } // end of [atspre_g0uint_size_size] ATSinline() atstype_bool atspre_g0uint_lt_size ( atstype_size x1, atstype_size x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_size] ATSinline() atstype_bool atspre_g0uint_lte_size ( atstype_size x1, atstype_size x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_size] ATSinline() atstype_bool atspre_g0uint_gt_size ( atstype_size x1, atstype_size x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_size] ATSinline() atstype_bool atspre_g0uint_gte_size ( atstype_size x1, atstype_size x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_size] ATSinline() atstype_bool atspre_g0uint_eq_size ( atstype_size x1, atstype_size x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_size] ATSinline() atstype_bool atspre_g0uint_neq_size ( atstype_size x1, atstype_size x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_size] ATSinline() atstype_int atspre_g0uint_compare_size ( atstype_size x1, atstype_size x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_size] ATSinline() atstype_size atspre_g0uint_max_size (atstype_size x1, atstype_size x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_size] ATSinline() atstype_size atspre_g0uint_min_size (atstype_size x1, atstype_size x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_size] ATSinline() atstype_bool atspre_g0uint_isltez_size (atstype_size x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_size] ATSinline() atstype_bool atspre_g0uint_isgtz_size (atstype_size x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_size] ATSinline() atstype_bool atspre_g0uint_iseqz_size (atstype_size x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_size] ATSinline() atstype_bool atspre_g0uint_isneqz_size (atstype_size x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_size] // #define atspre_g1uint_succ_size atspre_g0uint_succ_size #define atspre_g1uint_pred_size atspre_g0uint_pred_size #define atspre_g1uint_half_size atspre_g0uint_half_size #define atspre_g1uint_add_size atspre_g0uint_add_size #define atspre_g1uint_sub_size atspre_g0uint_sub_size #define atspre_g1uint_mul_size atspre_g0uint_mul_size #define atspre_g1uint_div_size atspre_g0uint_div_size #define atspre_g1uint_mod_size atspre_g0uint_mod_size #define atspre_g1uint_lt_size atspre_g0uint_lt_size #define atspre_g1uint_lte_size atspre_g0uint_lte_size #define atspre_g1uint_gt_size atspre_g0uint_gt_size #define atspre_g1uint_gte_size atspre_g0uint_gte_size #define atspre_g1uint_eq_size atspre_g0uint_eq_size #define atspre_g1uint_neq_size atspre_g0uint_neq_size #define atspre_g1uint_compare_size atspre_g0uint_compare_size #define atspre_g1uint_max_size atspre_g0uint_max_size #define atspre_g1uint_min_size atspre_g0uint_min_size #define atspre_g1uint_isltez_size atspre_g0uint_isltez_size #define atspre_g1uint_isgtz_size atspre_g0uint_isgtz_size #define atspre_g1uint_iseqz_size atspre_g0uint_iseqz_size #define atspre_g1uint_isneqz_size atspre_g0uint_isneqz_size // /* ****** ****** */ // ATSinline() atstype_ssize atspre_g0int_neg_ssize (atstype_ssize x) { return (-x) ; } // end of [atspre_g0int_neg_ssize] ATSinline() atstype_ssize atspre_g0int_abs_ssize (atstype_ssize x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_ssize] ATSinline() atstype_ssize atspre_g0int_succ_ssize (atstype_ssize x) { return (x + 1) ; } // end of [atspre_g0int_succ_ssize] ATSinline() atstype_ssize atspre_g0int_pred_ssize (atstype_ssize x) { return (x - 1) ; } // end of [atspre_g0int_pred_ssize] ATSinline() atstype_ssize atspre_g0int_half_ssize (atstype_ssize x) { return (x / 2) ; } // end of [atspre_g0int_half_ssize] ATSinline() atstype_ssize atspre_g0int_add_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_ssize] ATSinline() atstype_ssize atspre_g0int_sub_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_ssize] ATSinline() atstype_ssize atspre_g0int_mul_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_ssize] ATSinline() atstype_ssize atspre_g0int_div_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_ssize] ATSinline() atstype_ssize atspre_g0int_mod_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_ssize] ATSinline() atstype_ssize atspre_g0int_nmod_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_ssize] ATSinline() atstype_ssize atspre_g0int_asl_ssize (atstype_ssize x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_ssize] ATSinline() atstype_ssize atspre_g0int_asr_ssize (atstype_ssize x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_ssize] ATSinline() atstype_bool atspre_g0int_lt_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_ssize] ATSinline() atstype_bool atspre_g0int_lte_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_ssize] ATSinline() atstype_bool atspre_g0int_gt_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_ssize] ATSinline() atstype_bool atspre_g0int_gte_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_ssize] ATSinline() atstype_bool atspre_g0int_eq_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_ssize] ATSinline() atstype_bool atspre_g0int_neq_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_ssize] ATSinline() atstype_int atspre_g0int_compare_ssize ( atstype_ssize x1, atstype_ssize x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_ssize] ATSinline() atstype_ssize atspre_g0int_max_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_ssize] ATSinline() atstype_ssize atspre_g0int_min_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_ssize] ATSinline() atstype_bool atspre_g0int_isltz_ssize (atstype_ssize x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_ssize] ATSinline() atstype_bool atspre_g0int_isltez_ssize (atstype_ssize x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_ssize] ATSinline() atstype_bool atspre_g0int_isgtz_ssize (atstype_ssize x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_ssize] ATSinline() atstype_bool atspre_g0int_isgtez_ssize (atstype_ssize x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_ssize] ATSinline() atstype_bool atspre_g0int_iseqz_ssize (atstype_ssize x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_ssize] ATSinline() atstype_bool atspre_g0int_isneqz_ssize (atstype_ssize x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_ssize] // #define atspre_g1int_abs_ssize atspre_g0int_abs_ssize #define atspre_g1int_neg_ssize atspre_g0int_neg_ssize #define atspre_g1int_succ_ssize atspre_g0int_succ_ssize #define atspre_g1int_pred_ssize atspre_g0int_pred_ssize #define atspre_g1int_half_ssize atspre_g0int_half_ssize #define atspre_g1int_add_ssize atspre_g0int_add_ssize #define atspre_g1int_sub_ssize atspre_g0int_sub_ssize #define atspre_g1int_mul_ssize atspre_g0int_mul_ssize #define atspre_g1int_div_ssize atspre_g0int_div_ssize #define atspre_g1int_nmod_ssize atspre_g0int_nmod_ssize #define atspre_g1int_lt_ssize atspre_g0int_lt_ssize #define atspre_g1int_lte_ssize atspre_g0int_lte_ssize #define atspre_g1int_gt_ssize atspre_g0int_gt_ssize #define atspre_g1int_gte_ssize atspre_g0int_gte_ssize #define atspre_g1int_eq_ssize atspre_g0int_eq_ssize #define atspre_g1int_neq_ssize atspre_g0int_neq_ssize #define atspre_g1int_compare_ssize atspre_g0int_compare_ssize #define atspre_g1int_max_ssize atspre_g0int_max_ssize #define atspre_g1int_min_ssize atspre_g0int_min_ssize #define atspre_g1int_isltz_ssize atspre_g0int_isltz_ssize #define atspre_g1int_isltez_ssize atspre_g0int_isltez_ssize #define atspre_g1int_isgtz_ssize atspre_g0int_isgtz_ssize #define atspre_g1int_isgtez_ssize atspre_g0int_isgtez_ssize #define atspre_g1int_iseqz_ssize atspre_g0int_iseqz_ssize #define atspre_g1int_isneqz_ssize atspre_g0int_isneqz_ssize // /* ****** ****** */ // ATSinline() atstype_size atspre_g0string2uint_size (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; } // ATSinline() atstype_ssize atspre_g0string2int_ssize (atstype_string inp) { return atol((char*)inp) ; } // /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_SIZE /* ****** ****** */ /* end of [integer_size.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/pointer.cats0000644000175000017500000001512013431250607021407 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/pointer.atxt ** Time of generation: Thu Feb 14 11:29:54 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_POINTER #define ATSLIB_PRELUDE_CATS_POINTER /* ****** ****** */ #ifndef memset extern void *memset(void *bufp, int c, size_t n) ; #endif // #ifndef /* ****** ****** */ ATSinline() atstype_ptr atspre_ptr_null () { return (void*)0 ; } /* ****** ****** */ ATSinline() atstype_bool atspre_ptr_is_null (atstype_ptr p) { return (p == (void*)0) ? atsbool_true : atsbool_false ; } // end of [atspre_ptr_is_null] #define atspre_ptr0_is_null atspre_ptr_is_null #define atspre_ptr1_is_null atspre_ptr_is_null ATSinline() atstype_bool atspre_ptr_isnot_null (atstype_ptr p) { return (p != (void*)0) ? atsbool_true : atsbool_false ; } // end of [atspre_ptr_isnot_null] #define atspre_ptr0_isnot_null atspre_ptr_isnot_null #define atspre_ptr1_isnot_null atspre_ptr_isnot_null /* ****** ****** */ ATSinline() atstype_ptr atspre_add_ptr_bsz (atstype_ptr p, atstype_size ofs) { return ((char*)p + ofs) ; } // end of [atspre_add_ptr_bsz] #define atspre_add_ptr0_bsz atspre_add_ptr_bsz #define atspre_add_ptr1_bsz atspre_add_ptr_bsz ATSinline() atstype_ptr atspre_sub_ptr_bsz (atstype_ptr p, atstype_size ofs) { return ((char*)p - ofs) ; } // end of [atspre_sub_ptr_bsz] #define atspre_sub_ptr0_bsz atspre_sub_ptr_bsz #define atspre_sub_ptr1_bsz atspre_sub_ptr_bsz /* ****** ****** */ ATSinline() atstype_ssize atspre_sub_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return ((char*)p1 - (char*)p2) ; } // end of [atspre_sub_ptr_ptr] #define atspre_sub_ptr0_ptr0 atspre_sub_ptr_ptr #define atspre_sub_ptr1_ptr1 atspre_sub_ptr_ptr /* ****** ****** */ ATSinline() atstype_bool atspre_lt_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 < p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lt_ptr_ptr] #define atspre_lt_ptr0_ptr0 atspre_lt_ptr_ptr #define atspre_lt_ptr1_ptr1 atspre_lt_ptr_ptr ATSinline() atstype_bool atspre_lte_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 <= p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lte_ptr_ptr] #define atspre_lte_ptr0_ptr0 atspre_lte_ptr_ptr #define atspre_lte_ptr1_ptr1 atspre_lte_ptr_ptr ATSinline() atstype_bool atspre_gt_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 > p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gt_ptr_ptr] #define atspre_gt_ptr0_ptr0 atspre_gt_ptr_ptr #define atspre_gt_ptr1_ptr1 atspre_gt_ptr_ptr ATSinline() atstype_bool atspre_gte_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 >= p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gte_ptr_ptr] #define atspre_gte_ptr0_ptr0 atspre_gte_ptr_ptr #define atspre_gte_ptr1_ptr1 atspre_gte_ptr_ptr ATSinline() atstype_bool atspre_eq_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 == p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_eq_ptr_ptr] #define atspre_eq_ptr0_ptr0 atspre_eq_ptr_ptr #define atspre_eq_ptr1_ptr1 atspre_eq_ptr_ptr ATSinline() atstype_bool atspre_neq_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 != p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_neq_ptr_ptr] #define atspre_neq_ptr0_ptr0 atspre_neq_ptr_ptr #define atspre_neq_ptr1_ptr1 atspre_neq_ptr_ptr ATSinline() atstype_int atspre_compare_ptr_ptr ( atstype_ptr p1, atstype_ptr p2 ) { if (p1 >= p2) { if (p1 > p2) return 1 ; else return 0 ; } else return (-1) ; } // end of [atspre_compare_ptr_ptr] #define atspre_compare_ptr0_ptr0 atspre_compare_ptr_ptr #define atspre_compare_ptr1_ptr1 atspre_compare_ptr_ptr /* ****** ****** */ ATSinline() atstype_bool atspre_gt_ptr_intz (atstype_ptr p, atstype_int _) { return (p > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_gt_ptr_intz] #define atspre_gt_ptr0_intz atspre_gt_ptr_intz #define atspre_gt_ptr1_intz atspre_gt_ptr_intz ATSinline() atstype_bool atspre_eq_ptr_intz (atstype_ptr p, atstype_int _) { return (p == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_eq_ptr_intz] #define atspre_eq_ptr0_intz atspre_eq_ptr_intz #define atspre_eq_ptr1_intz atspre_eq_ptr_intz ATSinline() atstype_bool atspre_neq_ptr_intz (atstype_ptr p, atstype_int _) { return (p != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_neq_ptr_intz] #define atspre_neq_ptr0_intz atspre_neq_ptr_intz #define atspre_neq_ptr1_intz atspre_neq_ptr_intz /* ****** ****** */ // #define atspre_aptr_null() atsptr_null // #define atspre_aptr_is_null atspre_ptr_is_null #define atspre_aptr_isnot_null atspre_ptr_isnot_null // /* ****** ****** */ // #define atspre_cptr_null() atsptr_null // #define atspre_cptr_is_null atspre_ptr_is_null #define atspre_cptr_isnot_null atspre_ptr_isnot_null // /* ****** ****** */ #define atspre_gt_cptr_intz atspre_gt_ptr_intz #define atspre_eq_cptr_intz atspre_eq_ptr_intz #define atspre_neq_cptr_intz atspre_neq_ptr_intz /* ****** ****** */ // #define atspre_ptr_free atspre_mfree_gc #define atspre_ptr_alloc_tsz atspre_malloc_gc // /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_ptr_nullize_tsz ( atstype_ptr p, atstype_size tsz ) { memset (p, 0, tsz) ; return /*void*/ ; } // end of [atspre_ptr_nullize_tsz] /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_POINTER /* ****** ****** */ /* end of [pointer.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/arrayptr.cats0000644000175000017500000000432713431250607021602 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/arrayptr.atxt ** Time of generation: Thu Feb 14 11:29:58 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_ARRAYPTR #define ATSLIB_PRELUDE_CATS_ARRAYPTR /* ****** ****** */ ATSinline() atstype_arrptr atspre_arrpsz_get_ptrsize ( atstype_arrpsz psz, atstype_ref asz ) { *(size_t*)asz = psz.size ; return (psz.ptr) ; } // en of [atspre_arrpsz_get_ptrsize] /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_arrayptr_free (atstype_arrptr p0) { ATS_MFREE (p0) ; return ; } // end of [atspre_arrayptr_free] /* ****** ****** */ ATSinline() atstype_arrptr atspre_arrayptr_make_arrpsz (atstype_arrpsz psz) { return (psz).ptr ; } // end of [atspre_arrayptr_make_arrpsz] /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_ARRAYPTR /* ****** ****** */ /* end of [arrayptr.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/integer_long.cats0000644000175000017500000000732213431250607022410 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer_long.atxt ** Time of generation: Thu Feb 14 11:29:55 2019 */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_INTEGER_LONG #define ATSLIB_PRELUDE_CATS_INTEGER_LONG /* ****** ****** */ // #define \ atspre_g0int2int_int_lint(x) ((atstype_lint)(x)) #define \ atspre_g1int2int_int_lint(x) atspre_g0int2int_int_lint(x) // #define \ atspre_g0int2int_int_llint(x) ((atstype_llint)(x)) #define \ atspre_g1int2int_int_llint(x) atspre_g0int2int_int_llint(x) // /* ****** ****** */ // #define \ atspre_g0int2int_lint_int(x) ((atstype_int)(x)) #define \ atspre_g1int2int_lint_int(x) atspre_g0int2int_lint_int(x) // #define \ atspre_g0int2int_lint_lint(x) ((atstype_lint)(x)) #define \ atspre_g1int2int_lint_lint(x) atspre_g0int2int_lint_lint(x) // #define \ atspre_g0int2int_lint_llint(x) ((atstype_llint)(x)) #define \ atspre_g1int2int_lint_llint(x) atspre_g0int2int_lint_llint(x) // /* ****** ****** */ // #define \ atspre_g0int2uint_int_ulint(x) ((atstype_ulint)(x)) #define \ atspre_g1int2uint_int_ulint(x) atspre_g0int2uint_int_ulint(x) // #define \ atspre_g0int2uint_int_ullint(x) ((atstype_ullint)(x)) #define \ atspre_g1int2uint_int_ullint(x) atspre_g0int2uint_int_ullint(x) // #define \ atspre_g0int2uint_lint_ulint(x) ((atstype_ulint)(x)) #define \ atspre_g1int2uint_lint_ulint(x) atspre_g0int2uint_lint_ulint(x) // #define \ atspre_g0int2uint_lint_ullint(x) ((atstype_ullint)(x)) #define \ atspre_g1int2uint_lint_ullint(x) atspre_g0int2uint_lint_ullint(x) // #define \ atspre_g0int2uint_llint_ullint(x) ((atstype_ullint)(x)) #define \ atspre_g1int2uint_llint_ullint(x) atspre_g0int2uint_llint_ullint(x) // /* ****** ****** */ #define atspre_g0uint2int_uint_lint(x) ((atstype_lint)(x)) #define atspre_g0uint2int_uint_llint(x) ((atstype_llint)(x)) #define atspre_g1uint2int_uint_int atspre_g0uint2int_uint_int #define atspre_g1uint2int_uint_lint atspre_g0uint2int_uint_lint #define atspre_g1uint2int_uint_llint atspre_g0uint2int_uint_llint #define atspre_g0uint2uint_uint_ulint(x) ((atstype_ulint)(x)) #define atspre_g0uint2uint_uint_ullint(x) ((atstype_ullint)(x)) #define atspre_g1uint2uint_uint_ulint atspre_g0uint2uint_uint_ulint #define atspre_g1uint2uint_uint_ullint atspre_g0uint2uint_uint_ullint /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_LONG /* ****** ****** */ /* end of [integer_long.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/basics.cats0000644000175000017500000001173013431250607021176 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/basics.atxt ** Time of generation: Thu Feb 14 11:29:54 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_BASICS #define ATSLIB_PRELUDE_CATS_BASICS /* ****** ****** */ #include #include /* ****** ****** */ ATSinline() atstype_int atspre_lor_int_int ( atstype_int x1 , atstype_int x2 ) { return ((x1)|(x2)) ; } /* [atspre_lor_int_int] */ ATSinline() atstype_int atspre_land_int_int ( atstype_int x1 , atstype_int x2 ) { return ((x1)&(x2)) ; } /* [atspre_land_int_int] */ ATSinline() atstype_int atspre_lxor_int_int ( atstype_int x1 , atstype_int x2 ) { return ((x1)^(x2)) ; } /* [atspre_lxor_int_int] */ /* ****** ****** */ ATSinline() atstype_int atspre_int2sgn (atstype_int x) { return ((x < 0) ? -1 : ((x > 0) ? 1 : 0)) ; } /* [atspre_int2sgn] */ /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_cloptr_free ( atstype_cloptr pclo ) { ATS_MFREE (pclo) ; return ; } /* [atspre_cloptr_free] */ /* ****** ****** */ ATSinline() atstype_string atspre_argv_get_at ( atstype_arrptr argv, atstype_int i ) { return (((atstype_string*)argv)[i]) ; } /* end of [atspre_argv_get_at] */ ATSinline() atsvoid_t0ype atspre_argv_set_at ( atstype_arrptr argv , atstype_int i, atstype_string x ) { ((atstype_string*)argv)[i] = x ; return ; } /* end of [atspre_argv_set_at] */ /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_exit (atstype_int ecode) { exit(ecode) ; return ; } // end of [atspre_exit] ATSinline() atsvoid_t0ype atspre_exit_errmsg ( atstype_int ecode, atstype_string msg ) { fprintf(stderr, "exit(ATS): %s", (char*)msg); exit(ecode); return; } // end of [atspre_exit_errmsg] /* ****** ****** */ #define atspre_exit_void atspre_exit #define atspre_exit_errmsg_void atspre_exit_errmsg /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_assert_bool (atstype_bool b) { if (!b) exit(1) ; return ; } /* endfun */ // #define atspre_assert_bool0 atspre_assert_bool #define atspre_assert_bool1 atspre_assert_bool // /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_assert_errmsg_bool ( atstype_bool b, atstype_string msg ) { if (!b) { fprintf(stderr, "%s", (char*)msg) ; exit(1) ; } // end of [if] return ; } /* endfun */ // #define atspre_assert_errmsg_bool0 atspre_assert_errmsg_bool #define atspre_assert_errmsg_bool1 atspre_assert_errmsg_bool // /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_assert_errmsg2_bool ( atstype_bool b , atstype_string msg1, atstype_string msg2 ) { if (!b) { fprintf(stderr, "%s%s", (char*)msg1, (char*)msg2) ; exit(1) ; } // end of [if] return ; } /* endfun */ // #define atspre_assert_errmsg2_bool0 atspre_assert_errmsg2_bool #define atspre_assert_errmsg2_bool1 atspre_assert_errmsg2_bool // /* ****** ****** */ // #if(0) // ATSinline() atsvoid_t0ype atspre_fprint_void ( atstype_ref out , atstype_void arg ) { return/*do-nothing*/; } // #define atspre_print_void(x) atspre_fprint_void(stdout, x) #define atspre_prerr_void(x) atspre_fprint_void(stderr, x) // #endif // end of [if(0)] // /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_fprint_newline (atstype_ref out) { int n ; int err = -1 ; n = fprintf((FILE*)out, "\n") ; if (n > 0) err = fflush((FILE*)out) ; if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_newline] failed.") ; exit(1) ; } // end of [if] return ; } /* endfun */ // #define atspre_print_newline() atspre_fprint_newline(stdout) #define atspre_prerr_newline() atspre_fprint_newline(stderr) // /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_BASICS /* ****** ****** */ /* end of [basics.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/integer_short.cats0000644000175000017500000003327513431250607022616 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer_short.atxt ** Time of generation: Thu Feb 14 11:29:55 2019 */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_INTEGER_SHORT #define ATSLIB_PRELUDE_CATS_INTEGER_SHORT /* ****** ****** */ // #define \ atspre_g0int2int_int_sint(x) ((atstype_sint)(x)) #define \ atspre_g1int2int_int_sint(x) atspre_g0int2int_int_sint(x) #define \ atspre_g0uint2int_uint_sint(x) ((atstype_sint)(x)) #define \ atspre_g1uint2int_uint_sint(x) atspre_g0uint2int_uint_sint(x) // #define \ atspre_g0int2uint_int_usint(x) ((atstype_usint)(x)) #define \ atspre_g1int2uint_int_usint(x) atspre_g0int2uint_int_usint(x) #define \ atspre_g0uint2uint_uint_usint(x) ((atstype_usint)(x)) #define \ atspre_g1uint2uint_uint_usint(x) atspre_g0uint2uint_uint_usint(x) // /* ****** ****** */ // #define \ atspre_g0int2uint_sint_usint(x) ((atstype_usint)(x)) #define \ atspre_g1int2uint_sint_usint(x) atspre_g0int2uint_sint_usint(x) #define \ atspre_g0uint2int_usint_sint(x) ((atstype_usint)(x)) #define \ atspre_g1uint2int_usint_sint(x) atspre_g0uint2int_sint_usint(x) // /* ****** ****** */ // #define \ atspre_g0int2int_sint_int(x) ((atstype_int)(x)) #define \ atspre_g1int2int_sint_int(x) atspre_g0int2int_sint_int(x) // #define \ atspre_g0uint2uint_usint_uint(x) ((atstype_uint)(x)) #define \ atspre_g1uint2uint_usint_uint(x) atspre_g0uint2uint_usint_uint(x) // /* ****** ****** */ // ATSinline() atstype_sint atspre_g0int_neg_sint (atstype_sint x) { return (-x) ; } // end of [atspre_g0int_neg_sint] ATSinline() atstype_sint atspre_g0int_abs_sint (atstype_sint x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_sint] ATSinline() atstype_sint atspre_g0int_succ_sint (atstype_sint x) { return (x + 1) ; } // end of [atspre_g0int_succ_sint] ATSinline() atstype_sint atspre_g0int_pred_sint (atstype_sint x) { return (x - 1) ; } // end of [atspre_g0int_pred_sint] ATSinline() atstype_sint atspre_g0int_half_sint (atstype_sint x) { return (x / 2) ; } // end of [atspre_g0int_half_sint] ATSinline() atstype_sint atspre_g0int_add_sint (atstype_sint x1, atstype_sint x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_sint] ATSinline() atstype_sint atspre_g0int_sub_sint (atstype_sint x1, atstype_sint x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_sint] ATSinline() atstype_sint atspre_g0int_mul_sint (atstype_sint x1, atstype_sint x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_sint] ATSinline() atstype_sint atspre_g0int_div_sint (atstype_sint x1, atstype_sint x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_sint] ATSinline() atstype_sint atspre_g0int_mod_sint (atstype_sint x1, atstype_sint x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_sint] ATSinline() atstype_sint atspre_g0int_nmod_sint (atstype_sint x1, atstype_sint x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_sint] ATSinline() atstype_sint atspre_g0int_asl_sint (atstype_sint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_sint] ATSinline() atstype_sint atspre_g0int_asr_sint (atstype_sint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_sint] ATSinline() atstype_bool atspre_g0int_lt_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_sint] ATSinline() atstype_bool atspre_g0int_lte_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_sint] ATSinline() atstype_bool atspre_g0int_gt_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_sint] ATSinline() atstype_bool atspre_g0int_gte_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_sint] ATSinline() atstype_bool atspre_g0int_eq_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_sint] ATSinline() atstype_bool atspre_g0int_neq_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_sint] ATSinline() atstype_int atspre_g0int_compare_sint ( atstype_sint x1, atstype_sint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_sint] ATSinline() atstype_sint atspre_g0int_max_sint (atstype_sint x1, atstype_sint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_sint] ATSinline() atstype_sint atspre_g0int_min_sint (atstype_sint x1, atstype_sint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_sint] ATSinline() atstype_bool atspre_g0int_isltz_sint (atstype_sint x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_sint] ATSinline() atstype_bool atspre_g0int_isltez_sint (atstype_sint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_sint] ATSinline() atstype_bool atspre_g0int_isgtz_sint (atstype_sint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_sint] ATSinline() atstype_bool atspre_g0int_isgtez_sint (atstype_sint x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_sint] ATSinline() atstype_bool atspre_g0int_iseqz_sint (atstype_sint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_sint] ATSinline() atstype_bool atspre_g0int_isneqz_sint (atstype_sint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_sint] // #define atspre_g1int_abs_sint atspre_g0int_abs_sint #define atspre_g1int_neg_sint atspre_g0int_neg_sint #define atspre_g1int_succ_sint atspre_g0int_succ_sint #define atspre_g1int_pred_sint atspre_g0int_pred_sint #define atspre_g1int_half_sint atspre_g0int_half_sint #define atspre_g1int_add_sint atspre_g0int_add_sint #define atspre_g1int_sub_sint atspre_g0int_sub_sint #define atspre_g1int_mul_sint atspre_g0int_mul_sint #define atspre_g1int_div_sint atspre_g0int_div_sint #define atspre_g1int_nmod_sint atspre_g0int_nmod_sint #define atspre_g1int_lt_sint atspre_g0int_lt_sint #define atspre_g1int_lte_sint atspre_g0int_lte_sint #define atspre_g1int_gt_sint atspre_g0int_gt_sint #define atspre_g1int_gte_sint atspre_g0int_gte_sint #define atspre_g1int_eq_sint atspre_g0int_eq_sint #define atspre_g1int_neq_sint atspre_g0int_neq_sint #define atspre_g1int_compare_sint atspre_g0int_compare_sint #define atspre_g1int_max_sint atspre_g0int_max_sint #define atspre_g1int_min_sint atspre_g0int_min_sint #define atspre_g1int_isltz_sint atspre_g0int_isltz_sint #define atspre_g1int_isltez_sint atspre_g0int_isltez_sint #define atspre_g1int_isgtz_sint atspre_g0int_isgtz_sint #define atspre_g1int_isgtez_sint atspre_g0int_isgtez_sint #define atspre_g1int_iseqz_sint atspre_g0int_iseqz_sint #define atspre_g1int_isneqz_sint atspre_g0int_isneqz_sint // /* ****** ****** */ // ATSinline() atstype_usint atspre_g0uint_succ_usint (atstype_usint x) { return (x + 1) ; } // end of [atspre_g0uint_succ_usint] ATSinline() atstype_usint atspre_g0uint_pred_usint (atstype_usint x) { return (x - 1) ; } // end of [atspre_g0uint_pred_usint] ATSinline() atstype_usint atspre_g0uint_half_usint (atstype_usint x) { return (x >> 1) ; } // end of [atspre_g0uint_half_usint] ATSinline() atstype_usint atspre_g0uint_add_usint (atstype_usint x1, atstype_usint x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_usint] ATSinline() atstype_usint atspre_g0uint_sub_usint (atstype_usint x1, atstype_usint x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_usint] ATSinline() atstype_usint atspre_g0uint_mul_usint (atstype_usint x1, atstype_usint x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_usint] ATSinline() atstype_usint atspre_g0uint_div_usint (atstype_usint x1, atstype_usint x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_usint] ATSinline() atstype_usint atspre_g0uint_mod_usint (atstype_usint x1, atstype_usint x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_usint] ATSinline() atstype_usint atspre_g0uint_lsl_usint (atstype_usint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_usint] ATSinline() atstype_usint atspre_g0uint_lsr_usint (atstype_usint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_usint] ATSinline() atstype_usint atspre_g0uint_lnot_usint (atstype_usint x) { return ~(x) ; } // end of [atspre_g0uint_lnot_usint] ATSinline() atstype_usint atspre_g0uint_lor_usint (atstype_usint x, atstype_usint y) { return (x | y) ; } // end of [atspre_g0uint_usint_usint] ATSinline() atstype_usint atspre_g0uint_land_usint (atstype_usint x, atstype_usint y) { return (x & y) ; } // end of [atspre_g0uint_usint_usint] ATSinline() atstype_usint atspre_g0uint_lxor_usint (atstype_usint x, atstype_usint y) { return (x ^ y) ; } // end of [atspre_g0uint_usint_usint] ATSinline() atstype_bool atspre_g0uint_lt_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_usint] ATSinline() atstype_bool atspre_g0uint_lte_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_usint] ATSinline() atstype_bool atspre_g0uint_gt_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_usint] ATSinline() atstype_bool atspre_g0uint_gte_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_usint] ATSinline() atstype_bool atspre_g0uint_eq_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_usint] ATSinline() atstype_bool atspre_g0uint_neq_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_usint] ATSinline() atstype_int atspre_g0uint_compare_usint ( atstype_usint x1, atstype_usint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_usint] ATSinline() atstype_usint atspre_g0uint_max_usint (atstype_usint x1, atstype_usint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_usint] ATSinline() atstype_usint atspre_g0uint_min_usint (atstype_usint x1, atstype_usint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_usint] ATSinline() atstype_bool atspre_g0uint_isltez_usint (atstype_usint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_usint] ATSinline() atstype_bool atspre_g0uint_isgtz_usint (atstype_usint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_usint] ATSinline() atstype_bool atspre_g0uint_iseqz_usint (atstype_usint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_usint] ATSinline() atstype_bool atspre_g0uint_isneqz_usint (atstype_usint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_usint] // #define atspre_g1uint_succ_usint atspre_g0uint_succ_usint #define atspre_g1uint_pred_usint atspre_g0uint_pred_usint #define atspre_g1uint_half_usint atspre_g0uint_half_usint #define atspre_g1uint_add_usint atspre_g0uint_add_usint #define atspre_g1uint_sub_usint atspre_g0uint_sub_usint #define atspre_g1uint_mul_usint atspre_g0uint_mul_usint #define atspre_g1uint_div_usint atspre_g0uint_div_usint #define atspre_g1uint_mod_usint atspre_g0uint_mod_usint #define atspre_g1uint_lt_usint atspre_g0uint_lt_usint #define atspre_g1uint_lte_usint atspre_g0uint_lte_usint #define atspre_g1uint_gt_usint atspre_g0uint_gt_usint #define atspre_g1uint_gte_usint atspre_g0uint_gte_usint #define atspre_g1uint_eq_usint atspre_g0uint_eq_usint #define atspre_g1uint_neq_usint atspre_g0uint_neq_usint #define atspre_g1uint_compare_usint atspre_g0uint_compare_usint #define atspre_g1uint_max_usint atspre_g0uint_max_usint #define atspre_g1uint_min_usint atspre_g0uint_min_usint #define atspre_g1uint_isltez_usint atspre_g0uint_isltez_usint #define atspre_g1uint_isgtz_usint atspre_g0uint_isgtz_usint #define atspre_g1uint_iseqz_usint atspre_g0uint_iseqz_usint #define atspre_g1uint_isneqz_usint atspre_g0uint_isneqz_usint // /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_SHORT /* ****** ****** */ /* end of [integer_short.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/integer_ptr.cats0000644000175000017500000003404613431250607022261 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer_ptr.atxt ** Time of generation: Thu Feb 14 11:29:56 2019 */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_INTEGER_PTR #define ATSLIB_PRELUDE_CATS_INTEGER_PTR /* ****** ****** */ #include /* ****** ****** */ typedef intptr_t atstype_intptr ; typedef uintptr_t atstype_uintptr ; /* ****** ****** */ // #define \ atspre_g0int2int_int_intptr(x) ((atstype_intptr)(x)) #define \ atspre_g0int2int_lint_intptr(x) ((atstype_intptr)(x)) // #define \ atspre_g0int2uint_int_uintptr(x) ((atstype_uintptr)(x)) // #define \ atspre_g0uint2uint_uint_uintptr(x) ((atstype_uintptr)(x)) #define \ atspre_g0uint2uint_ulint_uintptr(x) ((atstype_uintptr)(x)) // /* ****** ****** */ // #define \ atspre_g1int2int_int_intptr atspre_g0int2int_int_intptr #define \ atspre_g1int2int_lint_intptr atspre_g0int2int_lint_intptr // #define \ atspre_g1int2uint_int_uintptr atspre_g0int2uint_int_uintptr // #define \ atspre_g1uint2uint_uint_uintptr atspre_g0uint2uint_uint_uintptr #define \ atspre_g1uint2uint_ulint_uintptr atspre_g0uint2uint_ulint_uintptr // /* ****** ****** */ // ATSinline() atstype_intptr atspre_g0int_neg_intptr (atstype_intptr x) { return (-x) ; } // end of [atspre_g0int_neg_intptr] ATSinline() atstype_intptr atspre_g0int_abs_intptr (atstype_intptr x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_intptr] ATSinline() atstype_intptr atspre_g0int_succ_intptr (atstype_intptr x) { return (x + 1) ; } // end of [atspre_g0int_succ_intptr] ATSinline() atstype_intptr atspre_g0int_pred_intptr (atstype_intptr x) { return (x - 1) ; } // end of [atspre_g0int_pred_intptr] ATSinline() atstype_intptr atspre_g0int_half_intptr (atstype_intptr x) { return (x / 2) ; } // end of [atspre_g0int_half_intptr] ATSinline() atstype_intptr atspre_g0int_add_intptr (atstype_intptr x1, atstype_intptr x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_intptr] ATSinline() atstype_intptr atspre_g0int_sub_intptr (atstype_intptr x1, atstype_intptr x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_intptr] ATSinline() atstype_intptr atspre_g0int_mul_intptr (atstype_intptr x1, atstype_intptr x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_intptr] ATSinline() atstype_intptr atspre_g0int_div_intptr (atstype_intptr x1, atstype_intptr x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_intptr] ATSinline() atstype_intptr atspre_g0int_mod_intptr (atstype_intptr x1, atstype_intptr x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_intptr] ATSinline() atstype_intptr atspre_g0int_nmod_intptr (atstype_intptr x1, atstype_intptr x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_intptr] ATSinline() atstype_intptr atspre_g0int_asl_intptr (atstype_intptr x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_intptr] ATSinline() atstype_intptr atspre_g0int_asr_intptr (atstype_intptr x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_intptr] ATSinline() atstype_bool atspre_g0int_lt_intptr ( atstype_intptr x1, atstype_intptr x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_intptr] ATSinline() atstype_bool atspre_g0int_lte_intptr ( atstype_intptr x1, atstype_intptr x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_intptr] ATSinline() atstype_bool atspre_g0int_gt_intptr ( atstype_intptr x1, atstype_intptr x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_intptr] ATSinline() atstype_bool atspre_g0int_gte_intptr ( atstype_intptr x1, atstype_intptr x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_intptr] ATSinline() atstype_bool atspre_g0int_eq_intptr ( atstype_intptr x1, atstype_intptr x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_intptr] ATSinline() atstype_bool atspre_g0int_neq_intptr ( atstype_intptr x1, atstype_intptr x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_intptr] ATSinline() atstype_int atspre_g0int_compare_intptr ( atstype_intptr x1, atstype_intptr x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_intptr] ATSinline() atstype_intptr atspre_g0int_max_intptr (atstype_intptr x1, atstype_intptr x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_intptr] ATSinline() atstype_intptr atspre_g0int_min_intptr (atstype_intptr x1, atstype_intptr x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_intptr] ATSinline() atstype_bool atspre_g0int_isltz_intptr (atstype_intptr x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_intptr] ATSinline() atstype_bool atspre_g0int_isltez_intptr (atstype_intptr x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_intptr] ATSinline() atstype_bool atspre_g0int_isgtz_intptr (atstype_intptr x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_intptr] ATSinline() atstype_bool atspre_g0int_isgtez_intptr (atstype_intptr x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_intptr] ATSinline() atstype_bool atspre_g0int_iseqz_intptr (atstype_intptr x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_intptr] ATSinline() atstype_bool atspre_g0int_isneqz_intptr (atstype_intptr x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_intptr] // #define atspre_g1int_abs_intptr atspre_g0int_abs_intptr #define atspre_g1int_neg_intptr atspre_g0int_neg_intptr #define atspre_g1int_succ_intptr atspre_g0int_succ_intptr #define atspre_g1int_pred_intptr atspre_g0int_pred_intptr #define atspre_g1int_half_intptr atspre_g0int_half_intptr #define atspre_g1int_add_intptr atspre_g0int_add_intptr #define atspre_g1int_sub_intptr atspre_g0int_sub_intptr #define atspre_g1int_mul_intptr atspre_g0int_mul_intptr #define atspre_g1int_div_intptr atspre_g0int_div_intptr #define atspre_g1int_nmod_intptr atspre_g0int_nmod_intptr #define atspre_g1int_lt_intptr atspre_g0int_lt_intptr #define atspre_g1int_lte_intptr atspre_g0int_lte_intptr #define atspre_g1int_gt_intptr atspre_g0int_gt_intptr #define atspre_g1int_gte_intptr atspre_g0int_gte_intptr #define atspre_g1int_eq_intptr atspre_g0int_eq_intptr #define atspre_g1int_neq_intptr atspre_g0int_neq_intptr #define atspre_g1int_compare_intptr atspre_g0int_compare_intptr #define atspre_g1int_max_intptr atspre_g0int_max_intptr #define atspre_g1int_min_intptr atspre_g0int_min_intptr #define atspre_g1int_isltz_intptr atspre_g0int_isltz_intptr #define atspre_g1int_isltez_intptr atspre_g0int_isltez_intptr #define atspre_g1int_isgtz_intptr atspre_g0int_isgtz_intptr #define atspre_g1int_isgtez_intptr atspre_g0int_isgtez_intptr #define atspre_g1int_iseqz_intptr atspre_g0int_iseqz_intptr #define atspre_g1int_isneqz_intptr atspre_g0int_isneqz_intptr // /* ****** ****** */ // ATSinline() atstype_uintptr atspre_g0uint_succ_uintptr (atstype_uintptr x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uintptr] ATSinline() atstype_uintptr atspre_g0uint_pred_uintptr (atstype_uintptr x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uintptr] ATSinline() atstype_uintptr atspre_g0uint_half_uintptr (atstype_uintptr x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uintptr] ATSinline() atstype_uintptr atspre_g0uint_add_uintptr (atstype_uintptr x1, atstype_uintptr x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uintptr] ATSinline() atstype_uintptr atspre_g0uint_sub_uintptr (atstype_uintptr x1, atstype_uintptr x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uintptr] ATSinline() atstype_uintptr atspre_g0uint_mul_uintptr (atstype_uintptr x1, atstype_uintptr x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uintptr] ATSinline() atstype_uintptr atspre_g0uint_div_uintptr (atstype_uintptr x1, atstype_uintptr x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uintptr] ATSinline() atstype_uintptr atspre_g0uint_mod_uintptr (atstype_uintptr x1, atstype_uintptr x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uintptr] ATSinline() atstype_uintptr atspre_g0uint_lsl_uintptr (atstype_uintptr x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uintptr] ATSinline() atstype_uintptr atspre_g0uint_lsr_uintptr (atstype_uintptr x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uintptr] ATSinline() atstype_uintptr atspre_g0uint_lnot_uintptr (atstype_uintptr x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uintptr] ATSinline() atstype_uintptr atspre_g0uint_lor_uintptr (atstype_uintptr x, atstype_uintptr y) { return (x | y) ; } // end of [atspre_g0uint_uintptr_uintptr] ATSinline() atstype_uintptr atspre_g0uint_land_uintptr (atstype_uintptr x, atstype_uintptr y) { return (x & y) ; } // end of [atspre_g0uint_uintptr_uintptr] ATSinline() atstype_uintptr atspre_g0uint_lxor_uintptr (atstype_uintptr x, atstype_uintptr y) { return (x ^ y) ; } // end of [atspre_g0uint_uintptr_uintptr] ATSinline() atstype_bool atspre_g0uint_lt_uintptr ( atstype_uintptr x1, atstype_uintptr x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uintptr] ATSinline() atstype_bool atspre_g0uint_lte_uintptr ( atstype_uintptr x1, atstype_uintptr x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uintptr] ATSinline() atstype_bool atspre_g0uint_gt_uintptr ( atstype_uintptr x1, atstype_uintptr x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uintptr] ATSinline() atstype_bool atspre_g0uint_gte_uintptr ( atstype_uintptr x1, atstype_uintptr x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uintptr] ATSinline() atstype_bool atspre_g0uint_eq_uintptr ( atstype_uintptr x1, atstype_uintptr x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uintptr] ATSinline() atstype_bool atspre_g0uint_neq_uintptr ( atstype_uintptr x1, atstype_uintptr x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uintptr] ATSinline() atstype_int atspre_g0uint_compare_uintptr ( atstype_uintptr x1, atstype_uintptr x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uintptr] ATSinline() atstype_uintptr atspre_g0uint_max_uintptr (atstype_uintptr x1, atstype_uintptr x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uintptr] ATSinline() atstype_uintptr atspre_g0uint_min_uintptr (atstype_uintptr x1, atstype_uintptr x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uintptr] ATSinline() atstype_bool atspre_g0uint_isltez_uintptr (atstype_uintptr x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uintptr] ATSinline() atstype_bool atspre_g0uint_isgtz_uintptr (atstype_uintptr x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uintptr] ATSinline() atstype_bool atspre_g0uint_iseqz_uintptr (atstype_uintptr x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uintptr] ATSinline() atstype_bool atspre_g0uint_isneqz_uintptr (atstype_uintptr x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uintptr] // #define atspre_g1uint_succ_uintptr atspre_g0uint_succ_uintptr #define atspre_g1uint_pred_uintptr atspre_g0uint_pred_uintptr #define atspre_g1uint_half_uintptr atspre_g0uint_half_uintptr #define atspre_g1uint_add_uintptr atspre_g0uint_add_uintptr #define atspre_g1uint_sub_uintptr atspre_g0uint_sub_uintptr #define atspre_g1uint_mul_uintptr atspre_g0uint_mul_uintptr #define atspre_g1uint_div_uintptr atspre_g0uint_div_uintptr #define atspre_g1uint_mod_uintptr atspre_g0uint_mod_uintptr #define atspre_g1uint_lt_uintptr atspre_g0uint_lt_uintptr #define atspre_g1uint_lte_uintptr atspre_g0uint_lte_uintptr #define atspre_g1uint_gt_uintptr atspre_g0uint_gt_uintptr #define atspre_g1uint_gte_uintptr atspre_g0uint_gte_uintptr #define atspre_g1uint_eq_uintptr atspre_g0uint_eq_uintptr #define atspre_g1uint_neq_uintptr atspre_g0uint_neq_uintptr #define atspre_g1uint_compare_uintptr atspre_g0uint_compare_uintptr #define atspre_g1uint_max_uintptr atspre_g0uint_max_uintptr #define atspre_g1uint_min_uintptr atspre_g0uint_min_uintptr #define atspre_g1uint_isltez_uintptr atspre_g0uint_isltez_uintptr #define atspre_g1uint_isgtz_uintptr atspre_g0uint_isgtz_uintptr #define atspre_g1uint_iseqz_uintptr atspre_g0uint_iseqz_uintptr #define atspre_g1uint_isneqz_uintptr atspre_g0uint_isneqz_uintptr // /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_PTR /* ****** ****** */ /* end of [integer_ptr.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/.keeper0000644000175000017500000000000013431250607020316 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/CATS/integer_fixed.cats0000644000175000017500000011172313431250607022551 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer_fixed.atxt ** Time of generation: Thu Feb 14 11:29:57 2019 */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_INTEGER_FIXED #define ATSLIB_PRELUDE_CATS_INTEGER_FIXED /* ****** ****** */ #include /* ****** ****** */ typedef int8_t atstype_int8 ; typedef int16_t atstype_int16 ; typedef int32_t atstype_int32 ; typedef int64_t atstype_int64 ; typedef uint8_t atstype_uint8 ; typedef uint16_t atstype_uint16 ; typedef uint32_t atstype_uint32 ; typedef uint64_t atstype_uint64 ; /* ****** ****** */ #define \ atspre_g0int2int_int8_int(x) ((atstype_int)(x)) #define \ atspre_g0int2int_int16_int(x) ((atstype_int)(x)) #define \ atspre_g0int2int_int32_int(x) ((atstype_int)(x)) #define \ atspre_g0int2int_int64_int(x) ((atstype_int)(x)) /* ****** ****** */ // ATSinline() atstype_int8 atspre_g0int_neg_int8 (atstype_int8 x) { return (-x) ; } // end of [atspre_g0int_neg_int8] ATSinline() atstype_int8 atspre_g0int_abs_int8 (atstype_int8 x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int8] ATSinline() atstype_int8 atspre_g0int_succ_int8 (atstype_int8 x) { return (x + 1) ; } // end of [atspre_g0int_succ_int8] ATSinline() atstype_int8 atspre_g0int_pred_int8 (atstype_int8 x) { return (x - 1) ; } // end of [atspre_g0int_pred_int8] ATSinline() atstype_int8 atspre_g0int_half_int8 (atstype_int8 x) { return (x / 2) ; } // end of [atspre_g0int_half_int8] ATSinline() atstype_int8 atspre_g0int_add_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int8] ATSinline() atstype_int8 atspre_g0int_sub_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int8] ATSinline() atstype_int8 atspre_g0int_mul_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int8] ATSinline() atstype_int8 atspre_g0int_div_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int8] ATSinline() atstype_int8 atspre_g0int_mod_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int8] ATSinline() atstype_int8 atspre_g0int_nmod_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int8] ATSinline() atstype_int8 atspre_g0int_asl_int8 (atstype_int8 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int8] ATSinline() atstype_int8 atspre_g0int_asr_int8 (atstype_int8 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int8] ATSinline() atstype_bool atspre_g0int_lt_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int8] ATSinline() atstype_bool atspre_g0int_lte_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int8] ATSinline() atstype_bool atspre_g0int_gt_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int8] ATSinline() atstype_bool atspre_g0int_gte_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int8] ATSinline() atstype_bool atspre_g0int_eq_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int8] ATSinline() atstype_bool atspre_g0int_neq_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int8] ATSinline() atstype_int atspre_g0int_compare_int8 ( atstype_int8 x1, atstype_int8 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int8] ATSinline() atstype_int8 atspre_g0int_max_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int8] ATSinline() atstype_int8 atspre_g0int_min_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int8] ATSinline() atstype_bool atspre_g0int_isltz_int8 (atstype_int8 x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int8] ATSinline() atstype_bool atspre_g0int_isltez_int8 (atstype_int8 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int8] ATSinline() atstype_bool atspre_g0int_isgtz_int8 (atstype_int8 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int8] ATSinline() atstype_bool atspre_g0int_isgtez_int8 (atstype_int8 x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int8] ATSinline() atstype_bool atspre_g0int_iseqz_int8 (atstype_int8 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int8] ATSinline() atstype_bool atspre_g0int_isneqz_int8 (atstype_int8 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int8] ATSinline() atstype_int16 atspre_g0int_neg_int16 (atstype_int16 x) { return (-x) ; } // end of [atspre_g0int_neg_int16] ATSinline() atstype_int16 atspre_g0int_abs_int16 (atstype_int16 x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int16] ATSinline() atstype_int16 atspre_g0int_succ_int16 (atstype_int16 x) { return (x + 1) ; } // end of [atspre_g0int_succ_int16] ATSinline() atstype_int16 atspre_g0int_pred_int16 (atstype_int16 x) { return (x - 1) ; } // end of [atspre_g0int_pred_int16] ATSinline() atstype_int16 atspre_g0int_half_int16 (atstype_int16 x) { return (x / 2) ; } // end of [atspre_g0int_half_int16] ATSinline() atstype_int16 atspre_g0int_add_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int16] ATSinline() atstype_int16 atspre_g0int_sub_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int16] ATSinline() atstype_int16 atspre_g0int_mul_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int16] ATSinline() atstype_int16 atspre_g0int_div_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int16] ATSinline() atstype_int16 atspre_g0int_mod_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int16] ATSinline() atstype_int16 atspre_g0int_nmod_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int16] ATSinline() atstype_int16 atspre_g0int_asl_int16 (atstype_int16 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int16] ATSinline() atstype_int16 atspre_g0int_asr_int16 (atstype_int16 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int16] ATSinline() atstype_bool atspre_g0int_lt_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int16] ATSinline() atstype_bool atspre_g0int_lte_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int16] ATSinline() atstype_bool atspre_g0int_gt_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int16] ATSinline() atstype_bool atspre_g0int_gte_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int16] ATSinline() atstype_bool atspre_g0int_eq_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int16] ATSinline() atstype_bool atspre_g0int_neq_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int16] ATSinline() atstype_int atspre_g0int_compare_int16 ( atstype_int16 x1, atstype_int16 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int16] ATSinline() atstype_int16 atspre_g0int_max_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int16] ATSinline() atstype_int16 atspre_g0int_min_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int16] ATSinline() atstype_bool atspre_g0int_isltz_int16 (atstype_int16 x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int16] ATSinline() atstype_bool atspre_g0int_isltez_int16 (atstype_int16 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int16] ATSinline() atstype_bool atspre_g0int_isgtz_int16 (atstype_int16 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int16] ATSinline() atstype_bool atspre_g0int_isgtez_int16 (atstype_int16 x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int16] ATSinline() atstype_bool atspre_g0int_iseqz_int16 (atstype_int16 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int16] ATSinline() atstype_bool atspre_g0int_isneqz_int16 (atstype_int16 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int16] ATSinline() atstype_int32 atspre_g0int_neg_int32 (atstype_int32 x) { return (-x) ; } // end of [atspre_g0int_neg_int32] ATSinline() atstype_int32 atspre_g0int_abs_int32 (atstype_int32 x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int32] ATSinline() atstype_int32 atspre_g0int_succ_int32 (atstype_int32 x) { return (x + 1) ; } // end of [atspre_g0int_succ_int32] ATSinline() atstype_int32 atspre_g0int_pred_int32 (atstype_int32 x) { return (x - 1) ; } // end of [atspre_g0int_pred_int32] ATSinline() atstype_int32 atspre_g0int_half_int32 (atstype_int32 x) { return (x / 2) ; } // end of [atspre_g0int_half_int32] ATSinline() atstype_int32 atspre_g0int_add_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int32] ATSinline() atstype_int32 atspre_g0int_sub_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int32] ATSinline() atstype_int32 atspre_g0int_mul_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int32] ATSinline() atstype_int32 atspre_g0int_div_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int32] ATSinline() atstype_int32 atspre_g0int_mod_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int32] ATSinline() atstype_int32 atspre_g0int_nmod_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int32] ATSinline() atstype_int32 atspre_g0int_asl_int32 (atstype_int32 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int32] ATSinline() atstype_int32 atspre_g0int_asr_int32 (atstype_int32 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int32] ATSinline() atstype_bool atspre_g0int_lt_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int32] ATSinline() atstype_bool atspre_g0int_lte_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int32] ATSinline() atstype_bool atspre_g0int_gt_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int32] ATSinline() atstype_bool atspre_g0int_gte_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int32] ATSinline() atstype_bool atspre_g0int_eq_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int32] ATSinline() atstype_bool atspre_g0int_neq_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int32] ATSinline() atstype_int atspre_g0int_compare_int32 ( atstype_int32 x1, atstype_int32 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int32] ATSinline() atstype_int32 atspre_g0int_max_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int32] ATSinline() atstype_int32 atspre_g0int_min_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int32] ATSinline() atstype_bool atspre_g0int_isltz_int32 (atstype_int32 x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int32] ATSinline() atstype_bool atspre_g0int_isltez_int32 (atstype_int32 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int32] ATSinline() atstype_bool atspre_g0int_isgtz_int32 (atstype_int32 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int32] ATSinline() atstype_bool atspre_g0int_isgtez_int32 (atstype_int32 x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int32] ATSinline() atstype_bool atspre_g0int_iseqz_int32 (atstype_int32 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int32] ATSinline() atstype_bool atspre_g0int_isneqz_int32 (atstype_int32 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int32] ATSinline() atstype_int64 atspre_g0int_neg_int64 (atstype_int64 x) { return (-x) ; } // end of [atspre_g0int_neg_int64] ATSinline() atstype_int64 atspre_g0int_abs_int64 (atstype_int64 x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int64] ATSinline() atstype_int64 atspre_g0int_succ_int64 (atstype_int64 x) { return (x + 1) ; } // end of [atspre_g0int_succ_int64] ATSinline() atstype_int64 atspre_g0int_pred_int64 (atstype_int64 x) { return (x - 1) ; } // end of [atspre_g0int_pred_int64] ATSinline() atstype_int64 atspre_g0int_half_int64 (atstype_int64 x) { return (x / 2) ; } // end of [atspre_g0int_half_int64] ATSinline() atstype_int64 atspre_g0int_add_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int64] ATSinline() atstype_int64 atspre_g0int_sub_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int64] ATSinline() atstype_int64 atspre_g0int_mul_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int64] ATSinline() atstype_int64 atspre_g0int_div_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int64] ATSinline() atstype_int64 atspre_g0int_mod_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int64] ATSinline() atstype_int64 atspre_g0int_nmod_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int64] ATSinline() atstype_int64 atspre_g0int_asl_int64 (atstype_int64 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int64] ATSinline() atstype_int64 atspre_g0int_asr_int64 (atstype_int64 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int64] ATSinline() atstype_bool atspre_g0int_lt_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int64] ATSinline() atstype_bool atspre_g0int_lte_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int64] ATSinline() atstype_bool atspre_g0int_gt_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int64] ATSinline() atstype_bool atspre_g0int_gte_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int64] ATSinline() atstype_bool atspre_g0int_eq_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int64] ATSinline() atstype_bool atspre_g0int_neq_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int64] ATSinline() atstype_int atspre_g0int_compare_int64 ( atstype_int64 x1, atstype_int64 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int64] ATSinline() atstype_int64 atspre_g0int_max_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int64] ATSinline() atstype_int64 atspre_g0int_min_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int64] ATSinline() atstype_bool atspre_g0int_isltz_int64 (atstype_int64 x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int64] ATSinline() atstype_bool atspre_g0int_isltez_int64 (atstype_int64 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int64] ATSinline() atstype_bool atspre_g0int_isgtz_int64 (atstype_int64 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int64] ATSinline() atstype_bool atspre_g0int_isgtez_int64 (atstype_int64 x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int64] ATSinline() atstype_bool atspre_g0int_iseqz_int64 (atstype_int64 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int64] ATSinline() atstype_bool atspre_g0int_isneqz_int64 (atstype_int64 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int64] // /* ****** ****** */ // #define \ atspre_g0int2uint_int8_uint(x) ((atstype_uint)(x)) #define \ atspre_g0int2uint_int16_uint(x) ((atstype_uint)(x)) #define \ atspre_g0int2uint_int32_uint(x) ((atstype_uint)(x)) #define \ atspre_g0int2uint_int64_uint(x) ((atstype_uint)(x)) // #define \ atspre_g0uint2int_uint8_int(x) ((atstype_int)(x)) #define \ atspre_g0uint2int_uint16_int(x) ((atstype_int)(x)) #define \ atspre_g0uint2int_uint32_int(x) ((atstype_int)(x)) #define \ atspre_g0uint2int_uint64_int(x) ((atstype_int)(x)) // #define \ atspre_g0uint2uint_uint8_uint(x) ((atstype_uint)(x)) #define \ atspre_g0uint2uint_uint16_uint(x) ((atstype_uint)(x)) #define \ atspre_g0uint2uint_uint32_uint(x) ((atstype_uint)(x)) #define \ atspre_g0uint2uint_uint64_uint(x) ((atstype_uint)(x)) // /* ****** ****** */ // ATSinline() atstype_uint8 atspre_g0uint_succ_uint8 (atstype_uint8 x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint8] ATSinline() atstype_uint8 atspre_g0uint_pred_uint8 (atstype_uint8 x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint8] ATSinline() atstype_uint8 atspre_g0uint_half_uint8 (atstype_uint8 x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint8] ATSinline() atstype_uint8 atspre_g0uint_add_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint8] ATSinline() atstype_uint8 atspre_g0uint_sub_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint8] ATSinline() atstype_uint8 atspre_g0uint_mul_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint8] ATSinline() atstype_uint8 atspre_g0uint_div_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint8] ATSinline() atstype_uint8 atspre_g0uint_mod_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint8] ATSinline() atstype_uint8 atspre_g0uint_lsl_uint8 (atstype_uint8 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint8] ATSinline() atstype_uint8 atspre_g0uint_lsr_uint8 (atstype_uint8 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint8] ATSinline() atstype_uint8 atspre_g0uint_lnot_uint8 (atstype_uint8 x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint8] ATSinline() atstype_uint8 atspre_g0uint_lor_uint8 (atstype_uint8 x, atstype_uint8 y) { return (x | y) ; } // end of [atspre_g0uint_uint8_uint8] ATSinline() atstype_uint8 atspre_g0uint_land_uint8 (atstype_uint8 x, atstype_uint8 y) { return (x & y) ; } // end of [atspre_g0uint_uint8_uint8] ATSinline() atstype_uint8 atspre_g0uint_lxor_uint8 (atstype_uint8 x, atstype_uint8 y) { return (x ^ y) ; } // end of [atspre_g0uint_uint8_uint8] ATSinline() atstype_bool atspre_g0uint_lt_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint8] ATSinline() atstype_bool atspre_g0uint_lte_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint8] ATSinline() atstype_bool atspre_g0uint_gt_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint8] ATSinline() atstype_bool atspre_g0uint_gte_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint8] ATSinline() atstype_bool atspre_g0uint_eq_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint8] ATSinline() atstype_bool atspre_g0uint_neq_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint8] ATSinline() atstype_int atspre_g0uint_compare_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint8] ATSinline() atstype_uint8 atspre_g0uint_max_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint8] ATSinline() atstype_uint8 atspre_g0uint_min_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint8] ATSinline() atstype_bool atspre_g0uint_isltez_uint8 (atstype_uint8 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint8] ATSinline() atstype_bool atspre_g0uint_isgtz_uint8 (atstype_uint8 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint8] ATSinline() atstype_bool atspre_g0uint_iseqz_uint8 (atstype_uint8 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint8] ATSinline() atstype_bool atspre_g0uint_isneqz_uint8 (atstype_uint8 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint8] ATSinline() atstype_uint16 atspre_g0uint_succ_uint16 (atstype_uint16 x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint16] ATSinline() atstype_uint16 atspre_g0uint_pred_uint16 (atstype_uint16 x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint16] ATSinline() atstype_uint16 atspre_g0uint_half_uint16 (atstype_uint16 x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint16] ATSinline() atstype_uint16 atspre_g0uint_add_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint16] ATSinline() atstype_uint16 atspre_g0uint_sub_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint16] ATSinline() atstype_uint16 atspre_g0uint_mul_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint16] ATSinline() atstype_uint16 atspre_g0uint_div_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint16] ATSinline() atstype_uint16 atspre_g0uint_mod_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint16] ATSinline() atstype_uint16 atspre_g0uint_lsl_uint16 (atstype_uint16 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint16] ATSinline() atstype_uint16 atspre_g0uint_lsr_uint16 (atstype_uint16 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint16] ATSinline() atstype_uint16 atspre_g0uint_lnot_uint16 (atstype_uint16 x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint16] ATSinline() atstype_uint16 atspre_g0uint_lor_uint16 (atstype_uint16 x, atstype_uint16 y) { return (x | y) ; } // end of [atspre_g0uint_uint16_uint16] ATSinline() atstype_uint16 atspre_g0uint_land_uint16 (atstype_uint16 x, atstype_uint16 y) { return (x & y) ; } // end of [atspre_g0uint_uint16_uint16] ATSinline() atstype_uint16 atspre_g0uint_lxor_uint16 (atstype_uint16 x, atstype_uint16 y) { return (x ^ y) ; } // end of [atspre_g0uint_uint16_uint16] ATSinline() atstype_bool atspre_g0uint_lt_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint16] ATSinline() atstype_bool atspre_g0uint_lte_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint16] ATSinline() atstype_bool atspre_g0uint_gt_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint16] ATSinline() atstype_bool atspre_g0uint_gte_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint16] ATSinline() atstype_bool atspre_g0uint_eq_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint16] ATSinline() atstype_bool atspre_g0uint_neq_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint16] ATSinline() atstype_int atspre_g0uint_compare_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint16] ATSinline() atstype_uint16 atspre_g0uint_max_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint16] ATSinline() atstype_uint16 atspre_g0uint_min_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint16] ATSinline() atstype_bool atspre_g0uint_isltez_uint16 (atstype_uint16 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint16] ATSinline() atstype_bool atspre_g0uint_isgtz_uint16 (atstype_uint16 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint16] ATSinline() atstype_bool atspre_g0uint_iseqz_uint16 (atstype_uint16 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint16] ATSinline() atstype_bool atspre_g0uint_isneqz_uint16 (atstype_uint16 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint16] ATSinline() atstype_uint32 atspre_g0uint_succ_uint32 (atstype_uint32 x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint32] ATSinline() atstype_uint32 atspre_g0uint_pred_uint32 (atstype_uint32 x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint32] ATSinline() atstype_uint32 atspre_g0uint_half_uint32 (atstype_uint32 x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint32] ATSinline() atstype_uint32 atspre_g0uint_add_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint32] ATSinline() atstype_uint32 atspre_g0uint_sub_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint32] ATSinline() atstype_uint32 atspre_g0uint_mul_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint32] ATSinline() atstype_uint32 atspre_g0uint_div_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint32] ATSinline() atstype_uint32 atspre_g0uint_mod_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint32] ATSinline() atstype_uint32 atspre_g0uint_lsl_uint32 (atstype_uint32 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint32] ATSinline() atstype_uint32 atspre_g0uint_lsr_uint32 (atstype_uint32 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint32] ATSinline() atstype_uint32 atspre_g0uint_lnot_uint32 (atstype_uint32 x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint32] ATSinline() atstype_uint32 atspre_g0uint_lor_uint32 (atstype_uint32 x, atstype_uint32 y) { return (x | y) ; } // end of [atspre_g0uint_uint32_uint32] ATSinline() atstype_uint32 atspre_g0uint_land_uint32 (atstype_uint32 x, atstype_uint32 y) { return (x & y) ; } // end of [atspre_g0uint_uint32_uint32] ATSinline() atstype_uint32 atspre_g0uint_lxor_uint32 (atstype_uint32 x, atstype_uint32 y) { return (x ^ y) ; } // end of [atspre_g0uint_uint32_uint32] ATSinline() atstype_bool atspre_g0uint_lt_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint32] ATSinline() atstype_bool atspre_g0uint_lte_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint32] ATSinline() atstype_bool atspre_g0uint_gt_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint32] ATSinline() atstype_bool atspre_g0uint_gte_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint32] ATSinline() atstype_bool atspre_g0uint_eq_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint32] ATSinline() atstype_bool atspre_g0uint_neq_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint32] ATSinline() atstype_int atspre_g0uint_compare_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint32] ATSinline() atstype_uint32 atspre_g0uint_max_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint32] ATSinline() atstype_uint32 atspre_g0uint_min_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint32] ATSinline() atstype_bool atspre_g0uint_isltez_uint32 (atstype_uint32 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint32] ATSinline() atstype_bool atspre_g0uint_isgtz_uint32 (atstype_uint32 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint32] ATSinline() atstype_bool atspre_g0uint_iseqz_uint32 (atstype_uint32 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint32] ATSinline() atstype_bool atspre_g0uint_isneqz_uint32 (atstype_uint32 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint32] ATSinline() atstype_uint64 atspre_g0uint_succ_uint64 (atstype_uint64 x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint64] ATSinline() atstype_uint64 atspre_g0uint_pred_uint64 (atstype_uint64 x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint64] ATSinline() atstype_uint64 atspre_g0uint_half_uint64 (atstype_uint64 x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint64] ATSinline() atstype_uint64 atspre_g0uint_add_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint64] ATSinline() atstype_uint64 atspre_g0uint_sub_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint64] ATSinline() atstype_uint64 atspre_g0uint_mul_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint64] ATSinline() atstype_uint64 atspre_g0uint_div_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint64] ATSinline() atstype_uint64 atspre_g0uint_mod_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint64] ATSinline() atstype_uint64 atspre_g0uint_lsl_uint64 (atstype_uint64 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint64] ATSinline() atstype_uint64 atspre_g0uint_lsr_uint64 (atstype_uint64 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint64] ATSinline() atstype_uint64 atspre_g0uint_lnot_uint64 (atstype_uint64 x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint64] ATSinline() atstype_uint64 atspre_g0uint_lor_uint64 (atstype_uint64 x, atstype_uint64 y) { return (x | y) ; } // end of [atspre_g0uint_uint64_uint64] ATSinline() atstype_uint64 atspre_g0uint_land_uint64 (atstype_uint64 x, atstype_uint64 y) { return (x & y) ; } // end of [atspre_g0uint_uint64_uint64] ATSinline() atstype_uint64 atspre_g0uint_lxor_uint64 (atstype_uint64 x, atstype_uint64 y) { return (x ^ y) ; } // end of [atspre_g0uint_uint64_uint64] ATSinline() atstype_bool atspre_g0uint_lt_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint64] ATSinline() atstype_bool atspre_g0uint_lte_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint64] ATSinline() atstype_bool atspre_g0uint_gt_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint64] ATSinline() atstype_bool atspre_g0uint_gte_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint64] ATSinline() atstype_bool atspre_g0uint_eq_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint64] ATSinline() atstype_bool atspre_g0uint_neq_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint64] ATSinline() atstype_int atspre_g0uint_compare_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint64] ATSinline() atstype_uint64 atspre_g0uint_max_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint64] ATSinline() atstype_uint64 atspre_g0uint_min_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint64] ATSinline() atstype_bool atspre_g0uint_isltez_uint64 (atstype_uint64 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint64] ATSinline() atstype_bool atspre_g0uint_isgtz_uint64 (atstype_uint64 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint64] ATSinline() atstype_bool atspre_g0uint_iseqz_uint64 (atstype_uint64 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint64] ATSinline() atstype_bool atspre_g0uint_isneqz_uint64 (atstype_uint64 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint64] // /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_INTEGER_FIXED /* ****** ****** */ /* end of [integer_fixed.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/option.cats0000644000175000017500000000330213431250607021236 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/option.atxt ** Time of generation: Thu Feb 14 11:29:58 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_OPTION #define ATSLIB_PRELUDE_CATS_OPTION /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_OPTION /* ****** ****** */ /* end of [option.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/list.cats0000644000175000017500000000327013431250607020705 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/list.atxt ** Time of generation: Thu Feb 14 11:29:57 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_LIST #define ATSLIB_PRELUDE_CATS_LIST /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_LIST /* ****** ****** */ /* end of [list.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/arrayref.cats0000644000175000017500000000355713431250607021555 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/arrayref.atxt ** Time of generation: Thu Feb 14 11:29:58 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_ARRAYREF #define ATSLIB_PRELUDE_CATS_ARRAYREF /* ****** ****** */ ATSinline() atstype_arrptr atspre_arrayref_make_arrpsz (atstype_arrpsz psz) { return (psz).ptr ; } // end of [atspre_arrayref_make_arrpsz] /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_ARRAYREF /* ****** ****** */ /* end of [arrayref.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/bool.cats0000644000175000017500000001246613431250607020674 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/bool.atxt ** Time of generation: Thu Feb 14 11:29:55 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_BOOL #define ATSLIB_PRELUDE_CATS_BOOL /* ****** ****** */ ATSinline() atstype_bool atspre_int2bool (atstype_int x) { return (x != 0 ? atsbool_true : atsbool_false) ; } #define atspre_int2bool0 atspre_int2bool #define atspre_int2bool1 atspre_int2bool /* ****** ****** */ #define atspre_bool2int0(x) x #define atspre_bool2int1(x) x /* ****** ****** */ ATSinline() atstype_bool atspre_neg_bool (atstype_bool b) { return (b) ? atsbool_false : atsbool_true ; } // end of [atspre_neg_bool] #define atspre_neg_bool0 atspre_neg_bool #define atspre_neg_bool1 atspre_neg_bool ATSinline() atstype_bool atspre_add_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? atsbool_true : (b2) ; } // end of [atspre_add_bool_bool] #define atspre_add_bool0_bool0 atspre_add_bool_bool #define atspre_add_bool0_bool1 atspre_add_bool_bool #define atspre_add_bool1_bool0 atspre_add_bool_bool #define atspre_add_bool1_bool1 atspre_add_bool_bool ATSinline() atstype_bool atspre_mul_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? (b2) : atsbool_false ; } // end of [atspre_mul_bool_bool] #define atspre_mul_bool0_bool0 atspre_mul_bool_bool #define atspre_mul_bool0_bool1 atspre_mul_bool_bool #define atspre_mul_bool1_bool0 atspre_mul_bool_bool #define atspre_mul_bool1_bool1 atspre_mul_bool_bool /* ****** ****** */ ATSinline() atstype_bool atspre_xor_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? (!b2) : (b2) ; } // end of [atspre_xor_bool_bool] #define atspre_xor_bool0_bool0 atspre_xor_bool_bool #define atspre_xor_bool1_bool1 atspre_xor_bool_bool /* ****** ****** */ ATSinline() atstype_bool atspre_lt_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? atsbool_false : (b2) ; } // end of [atspre_lt_bool_bool] #define atspre_lt_bool0_bool0 atspre_lt_bool_bool #define atspre_lt_bool1_bool1 atspre_lt_bool_bool ATSinline() atstype_bool atspre_lte_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? (b2) : atsbool_true ; } // end of [atspre_lte_bool_bool] #define atspre_lte_bool0_bool0 atspre_lte_bool_bool #define atspre_lte_bool1_bool1 atspre_lte_bool_bool ATSinline() atstype_bool atspre_gt_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b2) ? atsbool_false : (b1) ; } // end of [atspre_gt_bool_bool] #define atspre_gt_bool0_bool0 atspre_gt_bool_bool #define atspre_gt_bool1_bool1 atspre_gt_bool_bool ATSinline() atstype_bool atspre_gte_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b2) ? (b1) : atsbool_true ; } // end of [atspre_gte_bool_bool] #define atspre_gte_bool0_bool0 atspre_gte_bool_bool #define atspre_gte_bool1_bool1 atspre_gte_bool_bool ATSinline() atstype_bool atspre_eq_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1 == b2) ; } // end of [atspre_eq_bool_bool] #define atspre_eq_bool0_bool0 atspre_eq_bool_bool #define atspre_eq_bool1_bool1 atspre_eq_bool_bool ATSinline() atstype_bool atspre_neq_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1 != b2) ; } // end of [atspre_neq_bool_bool] #define atspre_neq_bool0_bool0 atspre_neq_bool_bool #define atspre_neq_bool1_bool1 atspre_neq_bool_bool /* ****** ****** */ ATSinline() atstype_int atspre_compare_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1 - b2) ; } // end of [atspre_compare_bool_bool] #define atspre_compare_bool0_bool0 atspre_compare_bool_bool #define atspre_compare_bool1_bool1 atspre_compare_bool_bool /* ****** ****** */ ATSinline() atstype_string atspre_bool2string ( atstype_bool x ) { return (x) ? "true" : "false" ; } // end of [atspre_bool2string] ATSinline() atstype_string atspre_bool_tostring ( atstype_bool x ) { return (x) ? "true" : "false" ; } // end of [atspre_bool_tostring] /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_BOOL /* ****** ****** */ /* end of [bool.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/string.cats0000644000175000017500000001327113431250607021242 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: April, 2012 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/string.atxt ** Time of generation: Thu Feb 14 11:29:56 2019 */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_STRING #define ATSLIB_PRELUDE_CATS_STRING /* ****** ****** */ // // [string.h] // extern size_t strlen (const char *str) ; extern int // (sign) strcmp (const char *x1, const char *x2) ; // extern char *strchr(const char *str1, int c2) ; extern char *strrchr(const char *str1, int c2) ; extern char *strstr(const char *str1, const char *str2) ; // extern size_t strspn(const char *str1, const char *acc2) ; extern size_t strcspn(const char *str1, const char *rej2) ; // #ifndef memcpy extern void *memcpy(void *dest, const void *src, size_t n) ; #endif // #ifndef // /* ****** ****** */ #define atspre_stropt_none() atsptr_null /* ****** ****** */ ATSinline() atstype_bool atspre_lt_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn < 0 ? atsbool_true : atsbool_false) ; } // [atspre_lt_string_string] ATSinline() atstype_bool atspre_lte_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn <= 0 ? atsbool_true : atsbool_false) ; } // [atspre_lte_string_string] ATSinline() atstype_bool atspre_gt_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn > 0 ? atsbool_true : atsbool_false) ; } // [atspre_gt_string_string] ATSinline() atstype_bool atspre_gte_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn >= 0 ? atsbool_true : atsbool_false) ; } // [atspre_gte_string_string] ATSinline() atstype_bool atspre_eq_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn == 0 ? atsbool_true : atsbool_false) ; } // [atspre_eq_string_string] ATSinline() atstype_bool atspre_neq_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn != 0 ? atsbool_true : atsbool_false) ; } // [atspre_neq_string_string] /* ****** ****** */ #define atspre_string_equal atspre_eq_string_string #define atspre_string_noteq atspre_neq_string_string /* ****** ****** */ ATSinline() atstype_int atspre_compare_string_string ( atstype_string x1, atstype_string x2 ) { return atspre_int2sgn(strcmp((char*)x1, (char*)x2)) ; } // [atspre_compare_string_string] /* ****** ****** */ #define atspre_strcmp strcmp #define atspre_strlen strlen #define atspre_strchr strchr #define atspre_strrchr strrchr #define atspre_strstr strstr #define atspre_strspn strspn #define atspre_strcspn strcspn #define atspre_string_memcpy memcpy /* ****** ****** */ // // HX-2013-09: declared in [stdio.h] // #ifndef snprintf extern int snprintf (char *str, size_t size, const char *format, ...) ; #endif // end of [ifndef] // /* ****** ****** */ // ATSinline() atstype_string atspre_g0int2string_int (atstype_int x) { size_t n0 ; char *res ; size_t ntot ; n0 = 4 ; res = ATS_MALLOC(n0) ; ntot = snprintf(res, n0, "%i", x) ; if (ntot >= n0) { ATS_MFREE(res) ; res = (char*)ATS_MALLOC(ntot+1) ; ntot = snprintf(res, ntot+1, "%i", x) ; } return res ; } // ATSinline() atstype_string atspre_g0int2string_lint (atstype_lint x) { size_t n0 ; char *res ; size_t ntot ; n0 = 4 ; res = ATS_MALLOC(n0) ; ntot = snprintf(res, n0, "%li", x) ; if (ntot >= n0) { ATS_MFREE(res) ; res = (char*)ATS_MALLOC(ntot+1) ; ntot = snprintf(res, ntot+1, "%li", x) ; } return res ; } // ATSinline() atstype_string atspre_g0int2string_llint (atstype_llint x) { size_t n0 ; char *res ; size_t ntot ; n0 = 8 ; res = ATS_MALLOC(n0) ; ntot = snprintf(res, n0, "%lli", x) ; if (ntot >= n0) { ATS_MFREE(res) ; res = (char*)ATS_MALLOC(ntot+1) ; ntot = snprintf(res, ntot+1, "%lli", x) ; } return res ; } // /* ****** ****** */ // #include // // HX-2013-11: // these are implemented in [string.dats] // extern atstype_string // Strptr0 atspre_string_make_snprintf(atstype_string fmt, ...) ; extern atstype_string // Strptr0 atspre_string_make_vsnprintf (atstype_size bsz0, atstype_string fmt, va_list ap0) ; // /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_STRING /* ****** ****** */ /* end of [string.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/array.cats0000644000175000017500000000535513431250607021056 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/array.atxt ** Time of generation: Thu Feb 14 11:29:58 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_ARRAY #define ATSLIB_PRELUDE_CATS_ARRAY /* ****** ****** */ // // [stdlib.h] // extern void qsort ( void *base, size_t nmemb, size_t size , int(*compar)(const void *, const void *) ) ; // end of [qsort] extern void *bsearch ( const void *key , const void *base , size_t nmemb, size_t size , int (*compar)(const void *, const void *) ) ; // end of [bsearch] // #define atspre_array_qsort qsort #define atspre_array_bsearch bsearch // /* ****** ****** */ // // [string.h] // #ifndef memcpy extern void *memcpy(void *dst, const void *src, size_t n) ; #endif // #ifndef #ifndef memmove extern void *memmove(void *dst, const void *src, size_t n) ; #endif // #ifndef // #define atspre_array_memcpy memcpy #define atspre_array_memmove memmove // /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_array_foreach_funenv_tsz ( atstype_ptr A , atstype_size n , atstype_size tsz , atstype_funptr f , atstype_boxed env ) { char *p ; size_t i ; p = (char*)A ; for (i = 0 ; i < n ; i += 1) { ((void(*)(void*, void*))(f))(p, env) ; p += tsz ; } return ; } // end of [atspre_array_foreach_funenv_tsz] /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_ARRAY /* ****** ****** */ /* end of [array.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/filebas.cats0000644000175000017500000001712013431250607021336 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Start time: January, 2013 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/filebas.atxt ** Time of generation: Thu Feb 14 11:29:57 2019 */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_FILEBAS #define ATSLIB_PRELUDE_CATS_FILEBAS /* ****** ****** */ #include #include #include /* ****** ****** */ #define atspre_FILE_stdin stdin #define atspre_FILE_stdout stdout #define atspre_FILE_stderr stderr /* ****** ****** */ #define atspre_file_mode_r "r" #define atspre_file_mode_rr "r+" #define atspre_file_mode_w "w" #define atspre_file_mode_ww "w+" #define atspre_file_mode_a "a" #define atspre_file_mode_aa "a+" /* ****** ****** */ ATSinline() atstype_bool atspre_test_file_exists (atstype_string path) { int err; struct stat st ; err = stat((const char*)path, &st) ; return (err==0 ? atsbool_true : atsbool_false) ; } // end of [atspre_test_file_exists] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_mode_fun ( atstype_string path, atstype_funptr pred ) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return ((atstype_bool(*)(atstype_uint))(pred))(st.st_mode) ? 1 : 0 ; } /* ****** ****** */ ATSinline() atstype_bool atspre_test_file_isreg (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISREG(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_isreg] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_isdir (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISDIR(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_isdir] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_isblk (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISBLK(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_isblk] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_ischr (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISCHR(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_ischr] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_isfifo (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISFIFO(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_isfifo] /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fileref_close (atstype_ref filr) { int err ; err = fclose((FILE*)filr) ; if (err < 0) { fprintf( stderr , "exit(ATS): [atspre_fileref_close] failed.\n" ) ; exit(1) ; } return ; } // end of [atspre_fileref_close] /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fileref_flush (atstype_ref filr) { int err ; err = fflush((FILE*)filr) ; if (err < 0) { fprintf( stderr , "exit(ATS): [atspre_fileref_fflush] failed.\n" ) ; exit(1) ; } return ; } // end of [atspre_fileref_flush] /* ****** ****** */ ATSinline() atstype_ref atspre_fileref_open_exn (atstype_string path, atstype_string fm) { FILE* filr ; filr = fopen((char*)path, (char*)fm) ; if (!filr) { fprintf( stderr , "exit(ATS): [atspre_fileref_open_exn(%s, %s)] failed.\n" , (char*)path, (char*)fm ) ; exit(1) ; } return filr ; } // end of [atspre_fileref_open] /* ****** ****** */ ATSinline() atstype_int atspre_fileref_getc (atstype_ref filr) { return fgetc((FILE*)filr) ; } // end of [atspre_fileref_getc] /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_fileref_putc ( atstype_ref filr, atstype_int c ) { fputc (c, (FILE*)filr) ; return ; } // end of [atspre_fileref_putc] // #define \ atspre_fileref_putc_int atspre_fileref_putc #define \ atspre_fileref_putc_char atspre_fileref_putc // /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fileref_puts ( atstype_ref fout , atstype_ptr data) { fputs((char*)data, (FILE*)fout) ; return ; } // end of [atspre_fileref_puts] /* ****** ****** */ ATSinline() atstype_bool atspre_fileref_is_eof (atstype_ref filr) { int eof ; eof = feof((FILE*)filr) ; return (eof != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_is_eof] /* ****** ****** */ ATSinline() atstype_bool atspre_fileref_load_int (atstype_ref finp, atstype_ref data) { int n ; n = fscanf ( (FILE*)finp , "%i" , (atstype_int*)data) ; return (n==1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_int] ATSinline() atstype_bool atspre_fileref_load_uint (atstype_ref finp, atstype_ref data) { int n ; n = fscanf ( (FILE*)finp , "%u" , (atstype_uint*)data) ; return (n==1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_uint] /* ****** ****** */ ATSinline() atstype_bool atspre_fileref_load_lint (atstype_ref finp, atstype_ref data) { int n ; n = fscanf ( (FILE*)finp , "%li" , (atstype_lint*)data) ; return (n==1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_lint] ATSinline() atstype_bool atspre_fileref_load_ulint (atstype_ref finp, atstype_ref data) { int n ; n = fscanf ( (FILE*)finp , "%lu" , (atstype_ulint*)data) ; return (n==1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_ulint] /* ****** ****** */ ATSinline() atstype_bool atspre_fileref_load_float (atstype_ref finp, atstype_ref data) { int n ; n = fscanf ( (FILE*)finp , "%f" , (atstype_float*)data) ; return (n==1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_float] ATSinline() atstype_bool atspre_fileref_load_double (atstype_ref finp, atstype_ref data) { int n ; n = fscanf ( (FILE*)finp , "%lf" , (atstype_double*)data) ; return (n==1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_double] /* ****** ****** */ extern atstype_ptr atspre_fileref_get_line_string_main2 ( atstype_int bsz // int bsz , atstype_ptr filp // FILE*filp , atstype_ref nlen // (int)*nlen ) ; // endfun /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_FILEBAS /* ****** ****** */ /* end of [filebas.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/memory.cats0000644000175000017500000000371413431250607021245 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/memory.atxt ** Time of generation: Thu Feb 14 11:29:57 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_MEMORY #define ATSLIB_PRELUDE_CATS_MEMORY /* ****** ****** */ #define atspre_minit_gc ATS_MINIT /* ****** ****** */ #define atspre_mfree_gc ATS_MFREE /* ****** ****** */ #define atspre_malloc_gc ATS_MALLOC /* ****** ****** */ #define atspre_calloc_gc ATS_CALLOC #define atspre_realloc_gc ATS_REALLOC /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_MEMORY /* ****** ****** */ /* end of [memory.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/CATS/fprintf.cats0000644000175000017500000003344313431250607021407 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/fprintf.atxt ** Time of generation: Thu Feb 14 11:29:57 2019 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2015 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_FPRINTF #define ATSLIB_PRELUDE_CATS_FPRINTF /* ****** ****** */ // // HX-2013-09: declared in [stdio.h] // #ifndef fprintf extern int fprintf (FILE *stream, const char *format, ...) ; #endif // end of [ifndef] // /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_bool ( atstype_ref out, atstype_bool x ) { int err = 0 ; err += fprintf((FILE*)out, "%s", atspre_bool2string(x)) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_bool] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_bool] #define atspre_print_bool(x) atspre_fprint_bool(stdout, (x)) #define atspre_prerr_bool(x) atspre_fprint_bool(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_char ( atstype_ref out, atstype_char c ) { int err = 0 ; err += fprintf ((FILE*)out, "%c", c) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_char] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_char] #define atspre_print_char(c) atspre_fprint_char(stdout, (c)) #define atspre_prerr_char(c) atspre_fprint_char(stderr, (c)) ATSinline() atsvoid_t0ype atspre_fprint_uchar ( atstype_ref out, atstype_uchar c ) { atspre_fprint_char (out, (atstype_char)c) ; return ; } // end of [atspre_fprint_uchar] #define atspre_print_uchar(c) atspre_fprint_uchar(stdout, (c)) #define atspre_prerr_uchar(c) atspre_fprint_uchar(stderr, (c)) ATSinline() atsvoid_t0ype atspre_fprint_schar ( atstype_ref out, atstype_schar c ) { atspre_fprint_char (out, (atstype_char)c) ; return ; } // end of [atspre_fprint_schar] #define atspre_print_schar(c) atspre_fprint_schar(stdout, (c)) #define atspre_prerr_schar(c) atspre_fprint_schar(stderr, (c)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_int ( atstype_ref out, atstype_int x ) { int err = 0 ; err += fprintf((FILE*)out, "%i", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_int] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_int] #define atspre_print_int(x) atspre_fprint_int(stdout, (x)) #define atspre_prerr_int(x) atspre_fprint_int(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_lint ( atstype_ref out, atstype_lint x ) { int err = 0 ; err += fprintf((FILE*)out, "%li", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_lint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_lint] #define atspre_print_lint(x) atspre_fprint_lint(stdout, (x)) #define atspre_prerr_lint(x) atspre_fprint_lint(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_llint ( atstype_ref out, atstype_llint x ) { int err = 0 ; err += fprintf((FILE*)out, "%lli", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_llint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_llint] #define atspre_print_llint(x) atspre_fprint_llint(stdout, (x)) #define atspre_prerr_llint(x) atspre_fprint_llint(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_ssize ( atstype_ref out, atstype_ssize x ) { int err = 0 ; err += fprintf((FILE*)out, "%li", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_ssize] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_ssize] #define atspre_print_ssize(x) atspre_fprint_ssize(stdout, (x)) #define atspre_prerr_ssize(x) atspre_fprint_ssize(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_uint ( atstype_ref out, atstype_uint x ) { int err = 0 ; err += fprintf((FILE*)out, "%u", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_uint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_uint] #define atspre_print_uint(x) atspre_fprint_uint(stdout, (x)) #define atspre_prerr_uint(x) atspre_fprint_uint(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_ulint ( atstype_ref out, atstype_ulint x ) { int err = 0 ; err += fprintf((FILE*)out, "%lu", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_ulint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_ulint] #define atspre_print_ulint(x) atspre_fprint_ulint(stdout, (x)) #define atspre_prerr_ulint(x) atspre_fprint_ulint(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_ullint ( atstype_ref out, atstype_ullint x ) { int err = 0 ; err += fprintf((FILE*)out, "%llu", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_ullint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_ullint] #define atspre_print_ullint(x) atspre_fprint_ullint(stdout, (x)) #define atspre_prerr_ullint(x) atspre_fprint_ullint(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_size ( atstype_ref out, atstype_size x ) { int err = 0 ; atstype_ulint x2 = x ; err += fprintf((FILE*)out, "%lu", x2) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_size] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_size] #define atspre_print_size(x) atspre_fprint_size(stdout, (x)) #define atspre_prerr_size(x) atspre_fprint_size(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_ptr ( atstype_ref out, atstype_ptr x ) { int err ; err = fprintf((FILE*)out, "%p", x) ; return ; } // end [atspre_fprint_ptr] #define atspre_print_ptr(x) atspre_fprint_ptr(stdout, (x)) #define atspre_prerr_ptr(x) atspre_fprint_ptr(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_float ( atstype_ref r, atstype_float x ) { int err = 0 ; err += fprintf((FILE*)r, "%f", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_float] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_float] #define atspre_print_float(x) atspre_fprint_float(stdout, (x)) #define atspre_prerr_float(x) atspre_fprint_float(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_double ( atstype_ref r, atstype_double x ) { int err = 0 ; err += fprintf((FILE*)r, "%f", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_double] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_double] #define atspre_print_double(x) atspre_fprint_double(stdout, (x)) #define atspre_prerr_double(x) atspre_fprint_double(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_ldouble ( atstype_ref r, atstype_ldouble x ) { int err = 0 ; err += fprintf((FILE*)r, "%Lf", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_ldouble] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_ldouble] #define atspre_print_ldouble(x) atspre_fprint_ldouble(stdout, (x)) #define atspre_prerr_ldouble(x) atspre_fprint_ldouble(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_intptr ( atstype_ref r, atstype_intptr x ) { int err ; err = fprintf((FILE*)r, "%lli", (atstype_llint)x) ; return ; } // end [atspre_fprint_intptr] #define atspre_print_intptr(x) atspre_fprint_intptr(stdout, (x)) #define atspre_prerr_intptr(x) atspre_fprint_intptr(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_uintptr ( atstype_ref r, atstype_uintptr x ) { int err ; err = fprintf((FILE*)r, "%llu", (atstype_ullint)x) ; return ; } // end [atspre_fprint_uintptr] #define atspre_print_uintptr(x) atspre_fprint_uintptr(stdout, (x)) #define atspre_prerr_uintptr(x) atspre_fprint_uintptr(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_int8 ( atstype_ref r, atstype_int8 x ) { int err ; err = fprintf((FILE*)r, "%i", (atstype_int)x) ; return ; } // end [atspre_fprint_int8] #define atspre_print_int8(x) atspre_fprint_int8(stdout, (x)) #define atspre_prerr_int8(x) atspre_fprint_int8(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_int16 ( atstype_ref r, atstype_int16 x ) { int err ; err = fprintf((FILE*)r, "%i", (atstype_int)x) ; return ; } // end [atspre_fprint_int16] #define atspre_print_int16(x) atspre_fprint_int16(stdout, (x)) #define atspre_prerr_int16(x) atspre_fprint_int16(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_int32 ( atstype_ref r, atstype_int32 x ) { int err ; err = fprintf((FILE*)r, "%li", (atstype_lint)x) ; return ; } // end [atspre_fprint_int32] #define atspre_print_int32(x) atspre_fprint_int32(stdout, (x)) #define atspre_prerr_int32(x) atspre_fprint_int32(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_int64 ( atstype_ref r, atstype_int64 x ) { int err ; err = fprintf((FILE*)r, "%lli", (atstype_llint)x) ; return ; } // end [atspre_fprint_int64] #define atspre_print_int64(x) atspre_fprint_int64(stdout, (x)) #define atspre_prerr_int64(x) atspre_fprint_int64(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_uint8 ( atstype_ref r, atstype_uint8 x ) { int err ; err = fprintf((FILE*)r, "%u", (atstype_uint)x) ; return ; } // end [atspre_fprint_uint8] #define atspre_print_uint8(x) atspre_fprint_uint8(stdout, (x)) #define atspre_prerr_uint8(x) atspre_fprint_uint8(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_uint16 ( atstype_ref r, atstype_uint16 x ) { int err ; err = fprintf((FILE*)r, "%u", (atstype_uint)x) ; return ; } // end [atspre_fprint_uint16] #define atspre_print_uint16(x) atspre_fprint_uint16(stdout, (x)) #define atspre_prerr_uint16(x) atspre_fprint_uint16(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_uint32 ( atstype_ref r, atstype_uint32 x ) { int err ; err = fprintf((FILE*)r, "%lu", (atstype_ulint)x) ; return ; } // end [atspre_fprint_uint32] #define atspre_print_uint32(x) atspre_fprint_uint32(stdout, (x)) #define atspre_prerr_uint32(x) atspre_fprint_uint32(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_uint64 ( atstype_ref r, atstype_uint64 x ) { int err ; err = fprintf((FILE*)r, "%llu", (atstype_ullint)x) ; return ; } // end [atspre_fprint_uint64] #define atspre_print_uint64(x) atspre_fprint_uint64(stdout, (x)) #define atspre_prerr_uint64(x) atspre_fprint_uint64(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_string ( atstype_ref out, atstype_string x ) { int err = 0 ; err += fprintf((FILE*)out, "%s", (char*)x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_string] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_string] #define atspre_print_string(x) atspre_fprint_string(stdout, (x)) #define atspre_prerr_string(x) atspre_fprint_string(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_substring ( atstype_ref out , atstype_string x , atstype_size st, atstype_size ln ) { int err = 0 ; err += fwrite(((char*)x)+st, 1, ln, out) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_substring] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_substring] /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_stropt ( atstype_ref out, atstype_stropt x ) { int err = 0 ; if (!x) { err += fprintf((FILE*)out, "strnone()") ; } else { err += fprintf((FILE*)out, "strsome(%s)", (char*)x) ; } /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_stropt] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_stropt] #define atspre_print_stropt(x) atspre_fprint_stropt(stdout, (x)) #define atspre_prerr_stropt(x) atspre_fprint_stropt(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_strptr ( atstype_ref out, atstype_strptr x ) { int err = 0 ; if (x != 0) { err += fprintf((FILE*)out, "%s", (char*)x) ; } else { err += fprintf((FILE*)out, "%s", "(strnull)") ; } // end of [if] /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_strptr] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_strptr] #define atspre_print_strptr(x) atspre_fprint_strptr(stdout, (x)) #define atspre_prerr_strptr(x) atspre_fprint_strptr(stderr, (x)) /* ****** ****** */ #define atspre_fprint_strbuf atspre_fprint_strptr #define atspre_print_strbuf(x) atspre_fprint_strbuf(stdout, (x)) #define atspre_prerr_strbuf(x) atspre_fprint_strbuf(stderr, (x)) /* ****** ****** */ #define atspre_fprint_strnptr atspre_fprint_strptr #define atspre_print_strnptr(x) atspre_fprint_strbuf(stdout, (x)) #define atspre_prerr_strnptr(x) atspre_fprint_strbuf(stderr, (x)) /* ****** ****** */ #endif // ifndef ATSLIB_PRELUDE_CATS_FPRINTF /* ****** ****** */ /* end of [fprintf.cats] */ ATS2-Postiats-gmp-0.3.13/./prelude/SATS/0000755000175000017500000000000013431250607017074 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/SATS/integer_short.sats0000644000175000017500000002037113431250607022647 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/integer_short.atxt ** Time of generation: Thu Feb 14 11:29:38 2019 *) (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) // stadef sintknd = sint_kind stadef usintknd = usint_kind // (* ****** ****** *) // fun g0int2int_int_sint(int):<> sint = "mac#%" fun g0uint2int_uint_sint(uint):<> sint = "mac#%" // fun g0int2uint_int_usint(int):<> usint = "mac#%" fun g0uint2uint_uint_usint(uint):<> usint = "mac#%" // (* ****** ****** *) fun g0int2uint_sint_usint(sint):<> usint = "mac#%" fun g0uint2int_usint_sint(usint):<> sint = "mac#%" (* ****** ****** *) // fun g0int2int_sint_int(sint):<> int = "mac#%" fun g0int2uint_sint_uint(sint):<> uint = "mac#%" // (* ****** ****** *) // fun g0uint2int_usint_int(usint):<> int = "mac#%" fun g0uint2uint_usint_uint(usint):<> uint = "mac#%" // (* ****** ****** *) // fun print_sint (sint): void = "mac#%" fun prerr_sint (sint): void = "mac#%" fun fprint_sint : fprint_type (sint) = "mac#%" overload print with print_sint overload prerr with prerr_sint overload fprint with fprint_sint fun print_usint (usint): void = "mac#%" fun prerr_usint (usint): void = "mac#%" fun fprint_usint : fprint_type (usint) = "mac#%" overload print with print_usint overload prerr with prerr_usint overload fprint with fprint_usint // (* ****** ****** *) // fun g0int_neg_sint (x: sint):<> sint = "mac#%" fun g0int_abs_sint (x: sint):<> sint = "mac#%" fun g0int_succ_sint (x: sint):<> sint = "mac#%" fun g0int_pred_sint (x: sint):<> sint = "mac#%" fun g0int_half_sint (x: sint):<> sint = "mac#%" fun g0int_asl_sint (x: sint, n: intGte(0)):<> sint = "mac#%" fun g0int_asr_sint (x: sint, n: intGte(0)):<> sint = "mac#%" fun g0int_add_sint (x: sint, y: sint):<> sint = "mac#%" fun g0int_sub_sint (x: sint, y: sint):<> sint = "mac#%" fun g0int_mul_sint (x: sint, y: sint):<> sint = "mac#%" fun g0int_div_sint (x: sint, y: sint):<> sint = "mac#%" fun g0int_mod_sint (x: sint, y: sint):<> sint = "mac#%" fun g0int_lt_sint (x: sint, y: sint):<> bool = "mac#%" fun g0int_lte_sint (x: sint, y: sint):<> bool = "mac#%" fun g0int_gt_sint (x: sint, y: sint):<> bool = "mac#%" fun g0int_gte_sint (x: sint, y: sint):<> bool = "mac#%" fun g0int_eq_sint (x: sint, y: sint):<> bool = "mac#%" fun g0int_neq_sint (x: sint, y: sint):<> bool = "mac#%" fun g0int_compare_sint (x: sint, y: sint):<> int = "mac#%" fun g0int_max_sint (x: sint, y: sint):<> sint = "mac#%" fun g0int_min_sint (x: sint, y: sint):<> sint = "mac#%" fun g0int_isltz_sint (x: sint):<> bool = "mac#%" fun g0int_isltez_sint (x: sint):<> bool = "mac#%" fun g0int_isgtz_sint (x: sint):<> bool = "mac#%" fun g0int_isgtez_sint (x: sint):<> bool = "mac#%" fun g0int_iseqz_sint (x: sint):<> bool = "mac#%" fun g0int_isneqz_sint (x: sint):<> bool = "mac#%" fun g0uint_succ_usint (x: usint):<> usint = "mac#%" fun g0uint_pred_usint (x: usint):<> usint = "mac#%" fun g0uint_half_usint (x: usint):<> usint = "mac#%" fun g0uint_add_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_sub_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_mul_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_div_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_mod_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_lsl_usint (x: usint, n: intGte(0)):<> usint = "mac#%" fun g0uint_lsr_usint (x: usint, n: intGte(0)):<> usint = "mac#%" fun g0uint_lnot_usint (x: usint):<> usint = "mac#%" fun g0uint_lor_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_lxor_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_land_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_lt_usint (x: usint, y: usint):<> bool = "mac#%" fun g0uint_lte_usint (x: usint, y: usint):<> bool = "mac#%" fun g0uint_gt_usint (x: usint, y: usint):<> bool = "mac#%" fun g0uint_gte_usint (x: usint, y: usint):<> bool = "mac#%" fun g0uint_eq_usint (x: usint, y: usint):<> bool = "mac#%" fun g0uint_neq_usint (x: usint, y: usint):<> bool = "mac#%" fun g0uint_compare_usint (x: usint, y: usint):<> int = "mac#%" fun g0uint_max_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_min_usint (x: usint, y: usint):<> usint = "mac#%" fun g0uint_isgtz_usint (x: usint):<> bool = "mac#%" fun g0uint_iseqz_usint (x: usint):<> bool = "mac#%" fun g0uint_isneqz_usint (x: usint):<> bool = "mac#%" // (* ****** ****** *) // fun g1int_neg_sint : g1int_neg_type (sintknd) = "mac#%" fun g1int_abs_sint : g1int_abs_type (sintknd) = "mac#%" fun g1int_succ_sint : g1int_succ_type (sintknd) = "mac#%" fun g1int_pred_sint : g1int_pred_type (sintknd) = "mac#%" fun g1int_half_sint : g1int_half_type (sintknd) = "mac#%" fun g1int_add_sint : g1int_add_type (sintknd) = "mac#%" fun g1int_sub_sint : g1int_sub_type (sintknd) = "mac#%" fun g1int_mul_sint : g1int_mul_type (sintknd) = "mac#%" fun g1int_div_sint : g1int_div_type (sintknd) = "mac#%" fun g1int_nmod_sint : g1int_nmod_type (sintknd) = "mac#%" fun g1int_lt_sint : g1int_lt_type (sintknd) = "mac#%" fun g1int_lte_sint : g1int_lte_type (sintknd) = "mac#%" fun g1int_gt_sint : g1int_gt_type (sintknd) = "mac#%" fun g1int_gte_sint : g1int_gte_type (sintknd) = "mac#%" fun g1int_eq_sint : g1int_eq_type (sintknd) = "mac#%" fun g1int_neq_sint : g1int_neq_type (sintknd) = "mac#%" fun g1int_compare_sint : g1int_compare_type (sintknd) = "mac#%" fun g1int_max_sint : g1int_max_type (sintknd) = "mac#%" fun g1int_min_sint : g1int_min_type (sintknd) = "mac#%" fun g1int_isltz_sint : g1int_isltz_type (sintknd) = "mac#%" fun g1int_isltez_sint : g1int_isltez_type (sintknd) = "mac#%" fun g1int_isgtz_sint : g1int_isgtz_type (sintknd) = "mac#%" fun g1int_isgtez_sint : g1int_isgtez_type (sintknd) = "mac#%" fun g1int_iseqz_sint : g1int_iseqz_type (sintknd) = "mac#%" fun g1int_isneqz_sint : g1int_isneqz_type (sintknd) = "mac#%" fun g1uint_succ_usint : g1uint_succ_type (usintknd) = "mac#%" fun g1uint_pred_usint : g1uint_pred_type (usintknd) = "mac#%" fun g1uint_half_usint : g1uint_half_type (usintknd) = "mac#%" fun g1uint_add_usint : g1uint_add_type (usintknd) = "mac#%" fun g1uint_sub_usint : g1uint_sub_type (usintknd) = "mac#%" fun g1uint_mul_usint : g1uint_mul_type (usintknd) = "mac#%" fun g1uint_div_usint : g1uint_div_type (usintknd) = "mac#%" fun g1uint_mod_usint : g1uint_mod_type (usintknd) = "mac#%" fun g1uint_lt_usint : g1uint_lt_type (usintknd) = "mac#%" fun g1uint_lte_usint : g1uint_lte_type (usintknd) = "mac#%" fun g1uint_gt_usint : g1uint_gt_type (usintknd) = "mac#%" fun g1uint_gte_usint : g1uint_gte_type (usintknd) = "mac#%" fun g1uint_eq_usint : g1uint_eq_type (usintknd) = "mac#%" fun g1uint_neq_usint : g1uint_neq_type (usintknd) = "mac#%" fun g1uint_compare_usint : g1uint_compare_type (usintknd) = "mac#%" fun g1uint_max_usint : g1uint_max_type (usintknd) = "mac#%" fun g1uint_min_usint : g1uint_min_type (usintknd) = "mac#%" fun g1uint_isgtz_usint : g1uint_isgtz_type (usintknd) = "mac#%" fun g1uint_iseqz_usint : g1uint_iseqz_type (usintknd) = "mac#%" fun g1uint_isneqz_usint : g1uint_isneqz_type (usintknd) = "mac#%" // (* ****** ****** *) (* end of [integer_short.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/intrange.sats0000644000175000017500000000540013431250607021576 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: June, 2012 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/intrange.atxt ** Time of generation: Thu Feb 14 11:29:40 2019 *) (* ****** ****** *) // // HX-2013-04: // intrange (l, r) is for integers i satisfying l <= i < r // (* ****** ****** *) // fun{} intrange_forall (l: int, r: int): bool fun{} intrange_forall$pred(i: int):<> bool // (* ****** ****** *) // fun{} intrange_foreach (l: int, r: int): (int) fun{env:vt0p} intrange_foreach_env (l: int, r: int, env: &(env) >> _): int // fun{env:vt0p} intrange_foreach$cont(i: int, env: &env): bool fun{env:vt0p} intrange_foreach$fwork(i: int, env: &(env) >> _): void // (* ****** ****** *) // fun{} intrange_rforeach (l: int, r: int): (int) fun{env:vt0p} intrange_rforeach_env (l: int, r: int, env: &(env) >> _): int // fun{env:vt0p} intrange_rforeach$cont(i: int, env: &env): bool fun{env:vt0p} intrange_rforeach$fwork(i: int, env: &(env) >> _): void // (* ****** ****** *) // fun{} intrange2_foreach (l1: int, r1: int, l2: int, r2: int): void // fun{env:vt0p} intrange2_foreach_env (l1: int, r1: int, l2: int, r2: int, env: &(env) >> _): void // fun{env:vt0p} intrange2_foreach$fwork (i: int, j: int, env: &env >> _): void // (* ****** ****** *) // fun{} streamize_intrange_l(m: int): stream_vt(int) fun{} streamize_intrange_0r(n: int): stream_vt(int) fun{} streamize_intrange_lr(m: int, n: int): stream_vt(int) // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/integer_long.sats0000644000175000017500000004237413431250607022456 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/integer_long.atxt ** Time of generation: Thu Feb 14 11:29:38 2019 *) (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) // stadef lintknd = lint_kind stadef ulintknd = ulint_kind // stadef llintknd = llint_kind stadef ullintknd = ullint_kind // (* ****** ****** *) // fun g0int2int_int_lint(int):<> lint = "mac#%" fun g0uint2int_uint_lint(uint):<> lint = "mac#%" // fun g0int2uint_int_ulint(int):<> ulint = "mac#%" fun g0uint2uint_uint_ulint(uint):<> ulint = "mac#%" // (* ****** ****** *) // fun g0int2int_lint_int(lint):<> int = "mac#%" fun g0int2int_lint_lint(lint):<> lint = "mac#%" fun g0int2int_lint_llint(lint):<> llint = "mac#%" // fun g0int2uint_lint_uint(lint):<> uint = "mac#%" fun g0int2uint_lint_ulint(lint):<> ulint = "mac#%" fun g0int2uint_lint_ullint(lint):<> ullint = "mac#%" // (* ****** ****** *) // fun g0uint2int_ulint_int(ulint):<> int = "mac#%" fun g0uint2int_ulint_lint(ulint):<> lint = "mac#%" fun g0uint2int_ulint_llint(ulint):<> llint = "mac#%" // fun g0uint2uint_ulint_uint(ulint):<> uint = "mac#%" fun g0uint2uint_ulint_ulint(ulint):<> ulint = "mac#%" fun g0uint2uint_ulint_ullint(ulint):<> ullint = "mac#%" // (* ****** ****** *) // fun g0int2int_int_llint(int):<> llint = "mac#%" fun g0uint2int_uint_llint(uint):<> llint = "mac#%" // fun g0int2uint_int_ullint(int):<> ullint = "mac#%" fun g0uint2uint_uint_ullint(uint):<> ullint = "mac#%" // (* ****** ****** *) // fun g0int2int_llint_int(llint):<> int = "mac#%" fun g0int2int_llint_lint(llint):<> lint = "mac#%" fun g0int2int_llint_llint(llint):<> llint = "mac#%" // fun g0int2uint_llint_uint(llint):<> uint = "mac#%" fun g0int2uint_llint_ulint(llint):<> ulint = "mac#%" fun g0int2uint_llint_ullint(llint):<> ullint = "mac#%" // (* ****** ****** *) // fun g0uint2int_ullint_int(ullint):<> int = "mac#%" fun g0uint2int_ullint_lint(ullint):<> lint = "mac#%" fun g0uint2int_ullint_llint(ullint):<> llint = "mac#%" // fun g0uint2uint_ullint_uint(ullint):<> uint = "mac#%" fun g0uint2uint_ullint_ulint(ullint):<> ulint = "mac#%" fun g0uint2uint_ullint_ullint(ullint):<> ullint = "mac#%" // (* ****** ****** *) // fun g0int2string_lint(i0: lint): Strptr1 = "mac#%" fun g0int2string_llint(i0: llint): Strptr1 = "mac#%" // fun g0uint2string_ulint(u0: ulint): Strptr1 = "mac#%" fun g0uint2string_ullint(u0: ullint): Strptr1 = "mac#%" // (* ****** ****** *) // fun g0string2int_lint(rep: NSH(string)):<> lint = "mac#%" fun g0string2int_llint(rep: NSH(string)):<> llint = "mac#%" // fun g0string2uint_ulint(rep: NSH(string)):<> ulint = "mac#%" fun g0string2uint_ullint(rep: NSH(string)):<> ullint = "mac#%" // (* ****** ****** *) // fun print_lint (lint): void = "mac#%" fun prerr_lint (lint): void = "mac#%" fun fprint_lint : fprint_type (lint) = "mac#%" overload print with print_lint overload prerr with prerr_lint overload fprint with fprint_lint // fun print_ulint (ulint): void = "mac#%" fun prerr_ulint (ulint): void = "mac#%" fun fprint_ulint : fprint_type (ulint) = "mac#%" overload print with print_ulint overload prerr with prerr_ulint overload fprint with fprint_ulint // fun print_llint (llint): void = "mac#%" fun prerr_llint (llint): void = "mac#%" fun fprint_llint : fprint_type (llint) = "mac#%" overload print with print_llint overload prerr with prerr_llint overload fprint with fprint_llint // fun print_ullint (ullint): void = "mac#%" fun prerr_ullint (ullint): void = "mac#%" fun fprint_ullint : fprint_type (ullint) = "mac#%" overload print with print_ullint overload prerr with prerr_ullint overload fprint with fprint_ullint // (* ****** ****** *) // fun g0int_neg_lint (x: lint):<> lint = "mac#%" fun g0int_abs_lint (x: lint):<> lint = "mac#%" fun g0int_succ_lint (x: lint):<> lint = "mac#%" fun g0int_pred_lint (x: lint):<> lint = "mac#%" fun g0int_half_lint (x: lint):<> lint = "mac#%" fun g0int_asl_lint (x: lint, n: intGte(0)):<> lint = "mac#%" fun g0int_asr_lint (x: lint, n: intGte(0)):<> lint = "mac#%" fun g0int_add_lint (x: lint, y: lint):<> lint = "mac#%" fun g0int_sub_lint (x: lint, y: lint):<> lint = "mac#%" fun g0int_mul_lint (x: lint, y: lint):<> lint = "mac#%" fun g0int_div_lint (x: lint, y: lint):<> lint = "mac#%" fun g0int_mod_lint (x: lint, y: lint):<> lint = "mac#%" fun g0int_lt_lint (x: lint, y: lint):<> bool = "mac#%" fun g0int_lte_lint (x: lint, y: lint):<> bool = "mac#%" fun g0int_gt_lint (x: lint, y: lint):<> bool = "mac#%" fun g0int_gte_lint (x: lint, y: lint):<> bool = "mac#%" fun g0int_eq_lint (x: lint, y: lint):<> bool = "mac#%" fun g0int_neq_lint (x: lint, y: lint):<> bool = "mac#%" fun g0int_compare_lint (x: lint, y: lint):<> int = "mac#%" fun g0int_max_lint (x: lint, y: lint):<> lint = "mac#%" fun g0int_min_lint (x: lint, y: lint):<> lint = "mac#%" fun g0int_isltz_lint (x: lint):<> bool = "mac#%" fun g0int_isltez_lint (x: lint):<> bool = "mac#%" fun g0int_isgtz_lint (x: lint):<> bool = "mac#%" fun g0int_isgtez_lint (x: lint):<> bool = "mac#%" fun g0int_iseqz_lint (x: lint):<> bool = "mac#%" fun g0int_isneqz_lint (x: lint):<> bool = "mac#%" // fun g0uint_succ_ulint (x: ulint):<> ulint = "mac#%" fun g0uint_pred_ulint (x: ulint):<> ulint = "mac#%" fun g0uint_half_ulint (x: ulint):<> ulint = "mac#%" fun g0uint_add_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_sub_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_mul_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_div_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_mod_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_lsl_ulint (x: ulint, n: intGte(0)):<> ulint = "mac#%" fun g0uint_lsr_ulint (x: ulint, n: intGte(0)):<> ulint = "mac#%" fun g0uint_lnot_ulint (x: ulint):<> ulint = "mac#%" fun g0uint_lor_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_lxor_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_land_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_lt_ulint (x: ulint, y: ulint):<> bool = "mac#%" fun g0uint_lte_ulint (x: ulint, y: ulint):<> bool = "mac#%" fun g0uint_gt_ulint (x: ulint, y: ulint):<> bool = "mac#%" fun g0uint_gte_ulint (x: ulint, y: ulint):<> bool = "mac#%" fun g0uint_eq_ulint (x: ulint, y: ulint):<> bool = "mac#%" fun g0uint_neq_ulint (x: ulint, y: ulint):<> bool = "mac#%" fun g0uint_compare_ulint (x: ulint, y: ulint):<> int = "mac#%" fun g0uint_max_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_min_ulint (x: ulint, y: ulint):<> ulint = "mac#%" fun g0uint_isgtz_ulint (x: ulint):<> bool = "mac#%" fun g0uint_iseqz_ulint (x: ulint):<> bool = "mac#%" fun g0uint_isneqz_ulint (x: ulint):<> bool = "mac#%" // fun g0int_neg_llint (x: llint):<> llint = "mac#%" fun g0int_abs_llint (x: llint):<> llint = "mac#%" fun g0int_succ_llint (x: llint):<> llint = "mac#%" fun g0int_pred_llint (x: llint):<> llint = "mac#%" fun g0int_half_llint (x: llint):<> llint = "mac#%" fun g0int_asl_llint (x: llint, n: intGte(0)):<> llint = "mac#%" fun g0int_asr_llint (x: llint, n: intGte(0)):<> llint = "mac#%" fun g0int_add_llint (x: llint, y: llint):<> llint = "mac#%" fun g0int_sub_llint (x: llint, y: llint):<> llint = "mac#%" fun g0int_mul_llint (x: llint, y: llint):<> llint = "mac#%" fun g0int_div_llint (x: llint, y: llint):<> llint = "mac#%" fun g0int_mod_llint (x: llint, y: llint):<> llint = "mac#%" fun g0int_lt_llint (x: llint, y: llint):<> bool = "mac#%" fun g0int_lte_llint (x: llint, y: llint):<> bool = "mac#%" fun g0int_gt_llint (x: llint, y: llint):<> bool = "mac#%" fun g0int_gte_llint (x: llint, y: llint):<> bool = "mac#%" fun g0int_eq_llint (x: llint, y: llint):<> bool = "mac#%" fun g0int_neq_llint (x: llint, y: llint):<> bool = "mac#%" fun g0int_compare_llint (x: llint, y: llint):<> int = "mac#%" fun g0int_max_llint (x: llint, y: llint):<> llint = "mac#%" fun g0int_min_llint (x: llint, y: llint):<> llint = "mac#%" fun g0int_isltz_llint (x: llint):<> bool = "mac#%" fun g0int_isltez_llint (x: llint):<> bool = "mac#%" fun g0int_isgtz_llint (x: llint):<> bool = "mac#%" fun g0int_isgtez_llint (x: llint):<> bool = "mac#%" fun g0int_iseqz_llint (x: llint):<> bool = "mac#%" fun g0int_isneqz_llint (x: llint):<> bool = "mac#%" // fun g0uint_succ_ullint (x: ullint):<> ullint = "mac#%" fun g0uint_pred_ullint (x: ullint):<> ullint = "mac#%" fun g0uint_half_ullint (x: ullint):<> ullint = "mac#%" fun g0uint_add_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_sub_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_mul_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_div_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_mod_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_lsl_ullint (x: ullint, n: intGte(0)):<> ullint = "mac#%" fun g0uint_lsr_ullint (x: ullint, n: intGte(0)):<> ullint = "mac#%" fun g0uint_lnot_ullint (x: ullint):<> ullint = "mac#%" fun g0uint_lor_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_lxor_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_land_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_lt_ullint (x: ullint, y: ullint):<> bool = "mac#%" fun g0uint_lte_ullint (x: ullint, y: ullint):<> bool = "mac#%" fun g0uint_gt_ullint (x: ullint, y: ullint):<> bool = "mac#%" fun g0uint_gte_ullint (x: ullint, y: ullint):<> bool = "mac#%" fun g0uint_eq_ullint (x: ullint, y: ullint):<> bool = "mac#%" fun g0uint_neq_ullint (x: ullint, y: ullint):<> bool = "mac#%" fun g0uint_compare_ullint (x: ullint, y: ullint):<> int = "mac#%" fun g0uint_max_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_min_ullint (x: ullint, y: ullint):<> ullint = "mac#%" fun g0uint_isgtz_ullint (x: ullint):<> bool = "mac#%" fun g0uint_iseqz_ullint (x: ullint):<> bool = "mac#%" fun g0uint_isneqz_ullint (x: ullint):<> bool = "mac#%" // (* ****** ****** *) // fun g1int_neg_lint : g1int_neg_type (lintknd) = "mac#%" fun g1int_abs_lint : g1int_abs_type (lintknd) = "mac#%" fun g1int_succ_lint : g1int_succ_type (lintknd) = "mac#%" fun g1int_pred_lint : g1int_pred_type (lintknd) = "mac#%" fun g1int_half_lint : g1int_half_type (lintknd) = "mac#%" fun g1int_add_lint : g1int_add_type (lintknd) = "mac#%" fun g1int_sub_lint : g1int_sub_type (lintknd) = "mac#%" fun g1int_mul_lint : g1int_mul_type (lintknd) = "mac#%" fun g1int_div_lint : g1int_div_type (lintknd) = "mac#%" fun g1int_nmod_lint : g1int_nmod_type (lintknd) = "mac#%" fun g1int_lt_lint : g1int_lt_type (lintknd) = "mac#%" fun g1int_lte_lint : g1int_lte_type (lintknd) = "mac#%" fun g1int_gt_lint : g1int_gt_type (lintknd) = "mac#%" fun g1int_gte_lint : g1int_gte_type (lintknd) = "mac#%" fun g1int_eq_lint : g1int_eq_type (lintknd) = "mac#%" fun g1int_neq_lint : g1int_neq_type (lintknd) = "mac#%" fun g1int_compare_lint : g1int_compare_type (lintknd) = "mac#%" fun g1int_max_lint : g1int_max_type (lintknd) = "mac#%" fun g1int_min_lint : g1int_min_type (lintknd) = "mac#%" fun g1int_isltz_lint : g1int_isltz_type (lintknd) = "mac#%" fun g1int_isltez_lint : g1int_isltez_type (lintknd) = "mac#%" fun g1int_isgtz_lint : g1int_isgtz_type (lintknd) = "mac#%" fun g1int_isgtez_lint : g1int_isgtez_type (lintknd) = "mac#%" fun g1int_iseqz_lint : g1int_iseqz_type (lintknd) = "mac#%" fun g1int_isneqz_lint : g1int_isneqz_type (lintknd) = "mac#%" // fun g1uint_succ_ulint : g1uint_succ_type (ulintknd) = "mac#%" fun g1uint_pred_ulint : g1uint_pred_type (ulintknd) = "mac#%" fun g1uint_half_ulint : g1uint_half_type (ulintknd) = "mac#%" fun g1uint_add_ulint : g1uint_add_type (ulintknd) = "mac#%" fun g1uint_sub_ulint : g1uint_sub_type (ulintknd) = "mac#%" fun g1uint_mul_ulint : g1uint_mul_type (ulintknd) = "mac#%" fun g1uint_div_ulint : g1uint_div_type (ulintknd) = "mac#%" fun g1uint_mod_ulint : g1uint_mod_type (ulintknd) = "mac#%" fun g1uint_lt_ulint : g1uint_lt_type (ulintknd) = "mac#%" fun g1uint_lte_ulint : g1uint_lte_type (ulintknd) = "mac#%" fun g1uint_gt_ulint : g1uint_gt_type (ulintknd) = "mac#%" fun g1uint_gte_ulint : g1uint_gte_type (ulintknd) = "mac#%" fun g1uint_eq_ulint : g1uint_eq_type (ulintknd) = "mac#%" fun g1uint_neq_ulint : g1uint_neq_type (ulintknd) = "mac#%" fun g1uint_compare_ulint : g1uint_compare_type (ulintknd) = "mac#%" fun g1uint_max_ulint : g1uint_max_type (ulintknd) = "mac#%" fun g1uint_min_ulint : g1uint_min_type (ulintknd) = "mac#%" fun g1uint_isgtz_ulint : g1uint_isgtz_type (ulintknd) = "mac#%" fun g1uint_iseqz_ulint : g1uint_iseqz_type (ulintknd) = "mac#%" fun g1uint_isneqz_ulint : g1uint_isneqz_type (ulintknd) = "mac#%" // fun g1int_neg_llint : g1int_neg_type (llintknd) = "mac#%" fun g1int_abs_llint : g1int_abs_type (llintknd) = "mac#%" fun g1int_succ_llint : g1int_succ_type (llintknd) = "mac#%" fun g1int_pred_llint : g1int_pred_type (llintknd) = "mac#%" fun g1int_half_llint : g1int_half_type (llintknd) = "mac#%" fun g1int_add_llint : g1int_add_type (llintknd) = "mac#%" fun g1int_sub_llint : g1int_sub_type (llintknd) = "mac#%" fun g1int_mul_llint : g1int_mul_type (llintknd) = "mac#%" fun g1int_div_llint : g1int_div_type (llintknd) = "mac#%" fun g1int_nmod_llint : g1int_nmod_type (llintknd) = "mac#%" fun g1int_lt_llint : g1int_lt_type (llintknd) = "mac#%" fun g1int_lte_llint : g1int_lte_type (llintknd) = "mac#%" fun g1int_gt_llint : g1int_gt_type (llintknd) = "mac#%" fun g1int_gte_llint : g1int_gte_type (llintknd) = "mac#%" fun g1int_eq_llint : g1int_eq_type (llintknd) = "mac#%" fun g1int_neq_llint : g1int_neq_type (llintknd) = "mac#%" fun g1int_compare_llint : g1int_compare_type (llintknd) = "mac#%" fun g1int_max_llint : g1int_max_type (llintknd) = "mac#%" fun g1int_min_llint : g1int_min_type (llintknd) = "mac#%" fun g1int_isltz_llint : g1int_isltz_type (llintknd) = "mac#%" fun g1int_isltez_llint : g1int_isltez_type (llintknd) = "mac#%" fun g1int_isgtz_llint : g1int_isgtz_type (llintknd) = "mac#%" fun g1int_isgtez_llint : g1int_isgtez_type (llintknd) = "mac#%" fun g1int_iseqz_llint : g1int_iseqz_type (llintknd) = "mac#%" fun g1int_isneqz_llint : g1int_isneqz_type (llintknd) = "mac#%" // fun g1uint_succ_ullint : g1uint_succ_type (ullintknd) = "mac#%" fun g1uint_pred_ullint : g1uint_pred_type (ullintknd) = "mac#%" fun g1uint_half_ullint : g1uint_half_type (ullintknd) = "mac#%" fun g1uint_add_ullint : g1uint_add_type (ullintknd) = "mac#%" fun g1uint_sub_ullint : g1uint_sub_type (ullintknd) = "mac#%" fun g1uint_mul_ullint : g1uint_mul_type (ullintknd) = "mac#%" fun g1uint_div_ullint : g1uint_div_type (ullintknd) = "mac#%" fun g1uint_mod_ullint : g1uint_mod_type (ullintknd) = "mac#%" fun g1uint_lt_ullint : g1uint_lt_type (ullintknd) = "mac#%" fun g1uint_lte_ullint : g1uint_lte_type (ullintknd) = "mac#%" fun g1uint_gt_ullint : g1uint_gt_type (ullintknd) = "mac#%" fun g1uint_gte_ullint : g1uint_gte_type (ullintknd) = "mac#%" fun g1uint_eq_ullint : g1uint_eq_type (ullintknd) = "mac#%" fun g1uint_neq_ullint : g1uint_neq_type (ullintknd) = "mac#%" fun g1uint_compare_ullint : g1uint_compare_type (ullintknd) = "mac#%" fun g1uint_max_ullint : g1uint_max_type (ullintknd) = "mac#%" fun g1uint_min_ullint : g1uint_min_type (ullintknd) = "mac#%" fun g1uint_isgtz_ullint : g1uint_isgtz_type (ullintknd) = "mac#%" fun g1uint_iseqz_ullint : g1uint_iseqz_type (ullintknd) = "mac#%" fun g1uint_isneqz_ullint : g1uint_isneqz_type (ullintknd) = "mac#%" // (* ****** ****** *) // fun g1int2int_int_lint: g1int2int_type(intknd, lintknd) = "mac#%" fun g1int2int_int_llint: g1int2int_type(intknd, llintknd) = "mac#%" // fun g1int2int_lint_lint: g1int2int_type(lintknd, lintknd) = "mac#%" fun g1int2int_lint_llint: g1int2int_type(lintknd, llintknd) = "mac#%" // (* ****** ****** *) // fun g1int2uint_int_ulint: g1int2uint_type(intknd, ulintknd) = "mac#%" fun g1int2uint_int_ullint: g1int2uint_type(intknd, ullintknd) = "mac#%" // (* ****** ****** *) // fun g1uint2int_uint_lint: g1uint2int_type(uintknd, lintknd) = "mac#%" fun g1uint2int_uint_llint: g1uint2int_type(uintknd, llintknd) = "mac#%" // fun g1uint2uint_uint_ulint: g1uint2uint_type(uintknd, ulintknd) = "mac#%" fun g1uint2uint_uint_ullint: g1uint2uint_type(uintknd, ullintknd) = "mac#%" // fun g1uint2uint_ulint_uint: g1uint2uint_type(uintknd, uintknd) = "mac#%" fun g1uint2uint_ulint_ulint: g1uint2uint_type(uintknd, ulintknd) = "mac#%" fun g1uint2uint_ulint_ullint: g1uint2uint_type(uintknd, ullintknd) = "mac#%" // (* ****** ****** *) (* end of [integer_long.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/matrix.sats0000644000175000017500000002207713431250607021304 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/matrix.atxt ** Time of generation: Thu Feb 14 11:29:43 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: Feburary, 2012 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) vtypedef RD(a:vt0p) = a // for commenting: read-only #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) sortdef t0p = t@ype sortdef vtp = viewtype sortdef vt0p = viewt@ype (* ****** ****** *) // absvt@ype matrix_vt0ype_int_int_vt0ype ( a:vt@ype+ , row:int, col:int) = array(a, row*col) // (* ****** ****** *) // stadef matrix = matrix_vt0ype_int_int_vt0ype // viewdef matrix_v ( a:vt0p , l:addr , row:int, col:int) = matrix(a, row, col) @ l // (* ****** ****** *) exception MatrixSubscriptExn of ((*void*)) (* ****** ****** *) // praxi lemma_matrix_param {a:vt0p} {l:addr}{m,n:int} (M: &matrix(INV(a), m, n)): [m>=0; n>=0] void // praxi lemma_matrix_v_param {a:vt0p} {l:addr}{m,n:int} (pf0: !matrix_v(INV(a),l,m,n)): [m>=0;n>=0] void // (* ****** ****** *) // praxi array2matrix_v {a:vt0p} {l:addr}{m,n:int} ( pf0: array_v(INV(a), l, m*n) ) : matrix_v(a, l, m(*nrow*), n(*ncol*)) praxi matrix2array_v {a:vt0p} {l:addr}{m,n:int} (pf0: matrix_v(INV(a), l, m, n)): array_v(a, l, m*n) // (* ****** ****** *) // // HX: row-major style // absview matrow_view ( a:vt@ype+ , l:addr, m:int, n:int ) // stadef matrow_v = matrow_view // absview matcol_view ( a:vt@ype+ , l:addr, m:int, n:int ) // stadef matcol_v = matcol_view // (* ****** ****** *) // fun{a:vt0p} matrix_getref_at_int {m,n:int} ( M: &RD(matrix(INV(a), m, n)) , i: natLt(m), n: int(n), j: natLt(n) ) :<> cPtr1(a) // end-of-function // fun{a:vt0p} matrix_getref_at_size {m,n:int} ( M: &RD(matrix(INV(a), m, n)) , i: sizeLt(m), n: size_t(n), j: sizeLt(n) ) :<> cPtr1(a) // end-of-function // symintr matrix_getref_at // overload matrix_getref_at with matrix_getref_at_int overload matrix_getref_at with matrix_getref_at_size // (* ****** ****** *) // fun{a:t0p} matrix_get_at_int {m,n:int} ( M: &RD(matrix(INV(a), m, n)) , i: natLt (m), n: int n, j: natLt (n) ) :<> (a) // end-of-function // overload [] with matrix_get_at_int // fun{a:t0p} matrix_get_at_size {m,n:int} ( M: &RD(matrix(INV(a), m, n)) , i: sizeLt (m), n: size_t n, j: sizeLt(n) ) :<> (a) // endfun // overload [] with matrix_get_at_size // symintr matrix_get_at // overload matrix_get_at with matrix_get_at_int of 0 overload matrix_get_at with matrix_get_at_size of 0 // (* ****** ****** *) // fun{a:t0p} matrix_set_at_int {m,n:int} ( M: &matrix(INV(a), m, n) , i: natLt (m), n: int n, j: natLt (n), x: a ) : void // end-of-function // overload [] with matrix_set_at_int // fun{a:t0p} matrix_set_at_size {m,n:int} ( M: &matrix(INV(a), m, n) , i: sizeLt (m), n: size_t n, j: sizeLt (n), x: a ) : void // end-of-function // overload [] with matrix_set_at_size // symintr matrix_set_at // overload matrix_set_at with matrix_set_at_int of 0 overload matrix_set_at with matrix_set_at_size of 0 // (* ****** ****** *) fun{a:vt0p} matrix_exch_at_int {m,n:int} ( M: &matrix(INV(a), m, n) , i: natLt (m), n: int n, j: natLt (n), x: &a>>a ) : void // endfun fun{a:vt0p} matrix_exch_at_size {m,n:int} ( M: &matrix(INV(a), m, n) , i: sizeLt (m), n: size_t n, j: sizeLt (n), x: &a>>a ) : void // endfun symintr matrix_exch_at overload matrix_exch_at with matrix_exch_at_int overload matrix_exch_at with matrix_exch_at_size (* ****** ****** *) fun{a:vt0p} matrix_ptr_alloc {m,n:int} ( row: size_t m, col: size_t n ) : [l:agz] ( matrix_v(a?, l, m, n), mfree_gc_v (l) | ptr l ) // end of [matrix_ptr_alloc] fun{} matrix_ptr_free {a:vt0p}{l:addr}{m,n:int} ( matrix_v(a?, l, m, n), mfree_gc_v l | ptr l ) : void // end of [matrix_ptr_free] (* ****** ****** *) // fun{a:vt0p} matrix_tabulate$fopr (i: size_t, j: size_t): (a) // fun{a:vt0p} matrix_ptr_tabulate {m,n:int} ( nrow: size_t m, ncol: size_t n ) : [l:addr] ( matrix_v (a, l, m, n), mfree_gc_v (l) | ptr(l) ) (* end of [matrixptr_tabulate] *) // (* ****** ****** *) // fun{} fprint_matrix$sep1(out: FILEref): void // col sep fun{} fprint_matrix$sep2(out: FILEref): void // row sep // fun{a:vt0p} fprint_matrix_int {m,n:int} ( out: FILEref , mat: &matrix(INV(a), m, n), m: int(m), n: int(n) ) : void // end of [fprint_matrix_int] fun{a:vt0p} fprint_matrix_size {m,n:int} ( out: FILEref , mat: &matrix(INV(a), m, n), m: size_t(m), n: size_t(n) ) : void // end of [fprint_matrix_size] // symintr fprint_matrix // overload fprint_matrix with fprint_matrix_int overload fprint_matrix with fprint_matrix_size // (* ****** ****** *) fun{a:vt0p} fprint_matrix_sep {m,n:int} ( out: FILEref , M: &matrix(INV(a), m, n) , m: size_t(m), n: size_t(n) , sep1: NSH(string), sep2: NSH(string) ) : void // end of [fprint_matrix_sep] (* ****** ****** *) fun{a:vt0p} matrix_ptr_takeout_elt {l0:addr} {m,n:int} {i,j:nat | i < m; j < n} ( pfm: matrix_v(INV(a), l0, m, n) | base: ptr(l0) , i: size_t(i), n: size_t(n), j: size_t(j) ) :<> [l:addr] ( a @ l , a @ l - matrix_v (a, l0, m, n) | ptr (l) ) (* end of [matrix_ptr_takeout_elt] *) fun{a:vt0p} matrix_ptr_takeout_row {l0:addr} {m,n:int} {i:int | i < m} ( pfm: matrix_v(INV(a), l0, m, n) | base: ptr(l0), i: size_t(i), n: size_t(n) ) :<> [l:addr] ( matrow_v(a, l, m, n) , matrow_v(a, l, m, n) - matrix_v(a, l0, m, n) | ptr (l) ) (* end of [matrix_ptr_takeout_row] *) fun{a:vt0p} matrix_ptr_takeout_col {l0:addr} {m,n:int} {i:int | i < m} ( pfm: matrix_v(INV(a), l0, m, n) | base: ptr l0, i: size_t(i), n: size_t(n) ) :<> [l:addr] ( matcol_v(a, l, m, n) , matcol_v(a, l, m, n) - matrix_v(a, l0, m, n) | ptr (l) ) (* end of [matrix_ptr_takeout_col] *) (* ****** ****** *) // fun{} matrix_foreach$rowsep(): void fun{ a:vt0p}{env:vt0p } matrix_foreach$fwork (x: &a >> _, env: &(env) >> _): void fun{ a:vt0p } matrix_foreach{m,n:int} ( M: &matrix(INV(a), m, n) >> _, size_t(m), size_t(n) ) : void // end of [matrix_foreach] fun{ a:vt0p}{env:vt0p } matrix_foreach_env{m,n:int} ( M: &matrix(INV(a), m, n) >> _, size_t(m), size_t(n), env: &(env) >> _ ) : void // end of [matrix_foreach_env] // (* ****** ****** *) // fun{ a:vt0p}{env:vt0p } matrix_foreachrow$fwork {n:int} ( A: &array(INV(a), n) >> _, n: size_t(n), env: &(env) >> _ ) : void // end of [matrix_foreachrow$fwork] // fun{ a:vt0p } matrix_foreachrow{m,n:int} ( M: &matrix(INV(a), m, n) >> _, m: size_t(m), n: size_t(n) ) : void // end of [matrix_foreachrow] // fun{ a:vt0p}{env:vt0p } matrix_foreachrow_env{m,n:int} ( M: &matrix(INV(a), m, n) >> _, m: size_t(m), n: size_t(n), env: &(env) >> _ ) : void // end of [matrix_foreachrow_env] // (* ****** ****** *) // fun{a:vt0p} matrix_initize$init (i: size_t, j: size_t, x: &a? >> a): void // fun{a:vt0p} matrix_initize{m,n:int} ( M: &matrix(a?, m, n) >> matrix(a, m, n), m: size_t(m), n: size_t(n) ) : void // end of [matrix_initize] // macdef matrix_initialize = matrix_initize // (* ****** ****** *) // fun{a:vt0p} matrix_uninitize$clear (i: size_t, j: size_t, x: &a >> a?): void // fun{a:vt0p} matrix_uninitize{m,n:int} ( M: &matrix(a, m, n) >> matrix(a?, m, n), m: size_t(m), n: size_t(n) ) : void // end of [matrix_uninitize] // (* ****** ****** *) fun {a:vt0p} {b:vt0p} matrix_mapto$fwork (x: &a, y: &b? >> b): void fun {a:vt0p} {b:vt0p} matrix_mapto {m,n:int} ( A: &matrix(INV(a), m, n) , B: &matrix(b?, m, n) >> matrix(b, m, n) , m: size_t m, n: size_t n ) : void // end of [matrix_mapto] (* ****** ****** *) fun {a,b:vt0p} {c:vt0p} matrix_map2to$fwork (x: &a, y: &b, z: &c? >> c): void fun {a,b:vt0p} {c:vt0p} matrix_map2to {m,n:int} ( A: &matrix(INV(a), m, n) , B: &matrix(INV(b), m, n) , C: &matrix(c?, m, n) >> matrix(c, m, n) , m: size_t m, n: size_t n ) : void // end of [matrix_map2to] (* ****** ****** *) (* end of [matrix.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/float.sats0000644000175000017500000003325413431250607021104 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2011 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/float.atxt ** Time of generation: Thu Feb 14 11:29:39 2019 *) (* ****** ****** *) stadef fltknd = float_kind stadef dblknd = double_kind stadef ldblknd = ldouble_kind (* ****** ****** *) // fun {tk1,tk2:tk} g0int2float(x: g0int(tk1)):<> g0float(tk2) // fun g0int2float_int_float(x: int):<> float = "mac#%" fun g0int2float_int_double(x: int):<> double = "mac#%" fun g0int2float_lint_double(x: lint):<> double = "mac#%" // (* ****** ****** *) // fun {tk1,tk2:tk} g0float2int(x: g0float(tk1)):<> g0int(tk2) // fun g0float2int_float_int(x: float):<> int = "mac#%" fun g0float2int_float_lint(x: float):<> lint = "mac#%" fun g0float2int_double_int(x: double):<> int = "mac#%" fun g0float2int_double_lint(x: double):<> lint = "mac#%" fun g0float2int_double_llint(x: double):<> llint = "mac#%" // (* ****** ****** *) // fun {tk1,tk2:tk} g0float2float(x: g0float(tk1)):<> g0float(tk2) // fun g0float2float_float_float(x: float):<> float = "mac#%" fun g0float2float_float_double(x: float):<> double = "mac#%" fun g0float2float_double_float(x: double):<> float = "mac#%" fun g0float2float_double_double(x: double):<> double = "mac#%" // (* ****** ****** *) // fun {tk:tk} g0string2float(rep: NSH(string)):<> g0float(tk) // fun g0string2float_double(rep: NSH(string)):<> double = "mac#%" // (* ****** ****** *) // typedef g0float_uop_type (tk:tk) = g0float(tk) - g0float(tk) // (* ****** ****** *) // fun {tk:tk} g0float_abs : g0float_uop_type(tk) fun {tk:tk} g0float_neg : g0float_uop_type(tk) // overload abs with g0float_abs of 0 overload ~ with g0float_neg of 0 // ~ for uminus overload neg with g0float_neg of 0 // (* ****** ****** *) // fun {tk:tk} g0float_succ : g0float_uop_type(tk) fun {tk:tk} g0float_pred : g0float_uop_type(tk) // overload succ with g0float_succ of 0 overload pred with g0float_pred of 0 // (* ****** ****** *) // typedef g0float_aop_type (tk:tk) = (g0float(tk), g0float(tk)) - g0float(tk) // end of [g0float_aop_type] // (* ****** ****** *) // fun {tk:tk} g0float_add : g0float_aop_type(tk) overload + with g0float_add of 0 fun {tk:tk} g0float_sub : g0float_aop_type(tk) overload - with g0float_sub of 0 fun {tk:tk} g0float_mul : g0float_aop_type(tk) overload * with g0float_mul of 0 fun {tk:tk} g0float_div : g0float_aop_type(tk) overload / with g0float_div of 0 fun {tk:tk} g0float_mod : g0float_aop_type(tk) overload % with g0float_mod of 0 overload mod with g0float_mod of 0 // (* ****** ****** *) // fun {tk:tk} g0float_isltz(g0float(tk)):<> bool fun {tk:tk} g0float_isltez(g0float(tk)):<> bool // overload isltz with g0float_isltz of 0 overload isltez with g0float_isltez of 0 // fun {tk:tk} g0float_isgtz(g0float(tk)):<> bool fun {tk:tk} g0float_isgtez(g0float(tk)):<> bool // overload isgtz with g0float_isgtz of 0 overload isgtez with g0float_isgtez of 0 // fun {tk:tk} g0float_iseqz(g0float(tk)):<> bool fun {tk:tk} g0float_isneqz(g0float(tk)):<> bool // overload iseqz with g0float_iseqz of 0 overload isneqz with g0float_isneqz of 0 // (* ****** ****** *) // typedef g0float_cmp_type (tk:tk) = (g0float(tk), g0float(tk)) - bool // end of [g0float_cmp_type] // (* ****** ****** *) // fun {tk:tk} g0float_lt : g0float_cmp_type(tk) overload < with g0float_lt of 0 fun {tk:tk} g0float_lte : g0float_cmp_type(tk) overload <= with g0float_lte of 0 fun {tk:tk} g0float_gt : g0float_cmp_type(tk) overload > with g0float_gt of 0 fun {tk:tk} g0float_gte : g0float_cmp_type(tk) overload >= with g0float_gte of 0 fun {tk:tk} g0float_eq : g0float_cmp_type(tk) overload = with g0float_eq of 0 fun {tk:tk} g0float_neq : g0float_cmp_type(tk) overload != with g0float_neq of 0 overload <> with g0float_neq of 0 // (* ****** ****** *) // typedef g0float_compare_type (tk:tk) = (g0float(tk), g0float(tk)) - int // end of [g0float_compare_type] // (* ****** ****** *) // fun {tk:tk} g0float_compare : g0float_compare_type(tk) // overload compare with g0float_compare of 0 // (* ****** ****** *) // fun {tk:tk} g0float_max : g0float_aop_type(tk) fun {tk:tk} g0float_min : g0float_aop_type(tk) // overload max with g0float_max of 0 overload min with g0float_min of 0 // (* ****** ****** *) fun g0float_neg_float : g0float_uop_type(fltknd) = "mac#%" fun g0float_abs_float : g0float_uop_type(fltknd) = "mac#%" fun g0float_succ_float : g0float_uop_type(fltknd) = "mac#%" fun g0float_pred_float : g0float_uop_type(fltknd) = "mac#%" fun g0float_add_float : g0float_aop_type(fltknd) = "mac#%" fun g0float_sub_float : g0float_aop_type(fltknd) = "mac#%" fun g0float_mul_float : g0float_aop_type(fltknd) = "mac#%" fun g0float_div_float : g0float_aop_type(fltknd) = "mac#%" fun g0float_mod_float : g0float_aop_type(fltknd) = "mac#%" fun g0float_lt_float : g0float_cmp_type(fltknd) = "mac#%" fun g0float_lte_float : g0float_cmp_type(fltknd) = "mac#%" fun g0float_gt_float : g0float_cmp_type(fltknd) = "mac#%" fun g0float_gte_float : g0float_cmp_type(fltknd) = "mac#%" fun g0float_eq_float : g0float_cmp_type(fltknd) = "mac#%" fun g0float_neq_float : g0float_cmp_type(fltknd) = "mac#%" fun g0float_compare_float : g0float_compare_type(fltknd) = "mac#%" fun g0float_max_float : g0float_aop_type(fltknd) = "mac#%" fun g0float_min_float : g0float_aop_type(fltknd) = "mac#%" (* ****** ****** *) fun g0float_neg_double : g0float_uop_type(dblknd) = "mac#%" fun g0float_abs_double : g0float_uop_type(dblknd) = "mac#%" fun g0float_succ_double : g0float_uop_type(dblknd) = "mac#%" fun g0float_pred_double : g0float_uop_type(dblknd) = "mac#%" fun g0float_add_double : g0float_aop_type(dblknd) = "mac#%" fun g0float_sub_double : g0float_aop_type(dblknd) = "mac#%" fun g0float_mul_double : g0float_aop_type(dblknd) = "mac#%" fun g0float_div_double : g0float_aop_type(dblknd) = "mac#%" fun g0float_mod_double : g0float_aop_type(dblknd) = "mac#%" fun g0float_lt_double : g0float_cmp_type(dblknd) = "mac#%" fun g0float_lte_double : g0float_cmp_type(dblknd) = "mac#%" fun g0float_gt_double : g0float_cmp_type(dblknd) = "mac#%" fun g0float_gte_double : g0float_cmp_type(dblknd) = "mac#%" fun g0float_eq_double : g0float_cmp_type(dblknd) = "mac#%" fun g0float_neq_double : g0float_cmp_type(dblknd) = "mac#%" fun g0float_compare_double : g0float_compare_type(dblknd) = "mac#%" fun g0float_max_double : g0float_aop_type(dblknd) = "mac#%" fun g0float_min_double : g0float_aop_type(dblknd) = "mac#%" (* ****** ****** *) fun g0float_neg_ldouble : g0float_uop_type(ldblknd) = "mac#%" fun g0float_abs_ldouble : g0float_uop_type(ldblknd) = "mac#%" fun g0float_succ_ldouble : g0float_uop_type(ldblknd) = "mac#%" fun g0float_pred_ldouble : g0float_uop_type(ldblknd) = "mac#%" fun g0float_add_ldouble : g0float_aop_type(ldblknd) = "mac#%" fun g0float_sub_ldouble : g0float_aop_type(ldblknd) = "mac#%" fun g0float_mul_ldouble : g0float_aop_type(ldblknd) = "mac#%" fun g0float_div_ldouble : g0float_aop_type(ldblknd) = "mac#%" fun g0float_mod_ldouble : g0float_aop_type(ldblknd) = "mac#%" fun g0float_lt_ldouble : g0float_cmp_type(ldblknd) = "mac#%" fun g0float_lte_ldouble : g0float_cmp_type(ldblknd) = "mac#%" fun g0float_gt_ldouble : g0float_cmp_type(ldblknd) = "mac#%" fun g0float_gte_ldouble : g0float_cmp_type(ldblknd) = "mac#%" fun g0float_eq_ldouble : g0float_cmp_type(ldblknd) = "mac#%" fun g0float_neq_ldouble : g0float_cmp_type(ldblknd) = "mac#%" fun g0float_compare_ldouble : g0float_compare_type(ldblknd) = "mac#%" fun g0float_max_ldouble : g0float_aop_type(ldblknd) = "mac#%" fun g0float_min_ldouble : g0float_aop_type(ldblknd) = "mac#%" (* ****** ****** *) // fun print_float (float): void = "mac#%" fun prerr_float (float): void = "mac#%" fun fprint_float : fprint_type (float) = "mac#%" overload print with print_float overload prerr with prerr_float overload fprint with fprint_float // fun print_double (double): void = "mac#%" fun prerr_double (double): void = "mac#%" fun fprint_double : fprint_type (double) = "mac#%" overload print with print_double overload prerr with prerr_double overload fprint with fprint_double // fun print_ldouble (ldouble): void = "mac#%" fun prerr_ldouble (ldouble): void = "mac#%" fun fprint_ldouble : fprint_type (ldouble) = "mac#%" overload print with print_ldouble overload prerr with prerr_ldouble overload fprint with fprint_ldouble // (* ****** ****** *) // fun add_int_float (int, float):<> float = "mac#%" fun add_float_int (float, int):<> float = "mac#%" // fun add_int_double (int, double):<> double = "mac#%" fun add_double_int (double, int):<> double = "mac#%" // overload + with add_int_float of 0 overload + with add_float_int of 0 overload + with add_int_double of 0 overload + with add_double_int of 0 // (* ****** ****** *) // fun sub_int_float (int, float):<> float = "mac#%" fun sub_float_int (float, int):<> float = "mac#%" // fun sub_int_double (int, double):<> double = "mac#%" fun sub_double_int (double, int):<> double = "mac#%" // overload - with sub_int_float of 0 overload - with sub_float_int of 0 overload - with sub_int_double of 0 overload - with sub_double_int of 0 // (* ****** ****** *) // fun mul_int_float (int, float):<> float = "mac#%" fun mul_float_int (float, int):<> float = "mac#%" // fun mul_int_double (int, double):<> double = "mac#%" fun mul_double_int (double, int):<> double = "mac#%" // overload * with mul_int_float of 0 overload * with mul_float_int of 0 overload * with mul_int_double of 0 overload * with mul_double_int of 0 // (* ****** ****** *) // fun div_int_float (int, float):<> float = "mac#%" fun div_float_int (float, int):<> float = "mac#%" // fun div_int_double (int, double):<> double = "mac#%" fun div_double_int (double, int):<> double = "mac#%" // overload / with div_int_float of 0 overload / with div_float_int of 0 overload / with div_int_double of 0 overload / with div_double_int of 0 // (* ****** ****** *) // fun lt_int_float (int, float):<> bool = "mac#%" fun lt_float_int (float, int):<> bool = "mac#%" fun lt_int_double (int, double):<> bool = "mac#%" fun lt_double_int (double, int):<> bool = "mac#%" // overload < with lt_int_float of 0 overload < with lt_float_int of 0 overload < with lt_int_double of 0 overload < with lt_double_int of 0 // fun lte_int_float (int, float):<> bool = "mac#%" fun lte_float_int (float, int):<> bool = "mac#%" fun lte_int_double (int, double):<> bool = "mac#%" fun lte_double_int (double, int):<> bool = "mac#%" // overload <= with lte_int_float of 0 overload <= with lte_float_int of 0 overload <= with lte_int_double of 0 overload <= with lte_double_int of 0 // (* ****** ****** *) // fun gt_int_float (int, float):<> bool = "mac#%" fun gt_float_int (float, int):<> bool = "mac#%" fun gt_int_double (int, double):<> bool = "mac#%" fun gt_double_int (double, int):<> bool = "mac#%" // overload > with gt_int_float of 0 overload > with gt_float_int of 0 overload > with gt_int_double of 0 overload > with gt_double_int of 0 // fun gte_int_float (int, float):<> bool = "mac#%" fun gte_float_int (float, int):<> bool = "mac#%" fun gte_int_double (int, double):<> bool = "mac#%" fun gte_double_int (double, int):<> bool = "mac#%" // overload >= with gte_int_float of 0 overload >= with gte_float_int of 0 overload >= with gte_int_double of 0 overload >= with gte_double_int of 0 // (* ****** ****** *) // fun eq_int_float (int, float):<> bool = "mac#%" fun eq_float_int (float, int):<> bool = "mac#%" fun eq_int_double (int, double):<> bool = "mac#%" fun eq_double_int (double, int):<> bool = "mac#%" // overload = with eq_int_float of 0 overload = with eq_float_int of 0 overload = with eq_int_double of 0 overload = with eq_double_int of 0 // fun neq_int_float (int, float):<> bool = "mac#%" fun neq_float_int (float, int):<> bool = "mac#%" fun neq_int_double (int, double):<> bool = "mac#%" fun neq_double_int (double, int):<> bool = "mac#%" // overload != with neq_int_float of 0 overload <> with neq_int_float of 0 overload != with neq_float_int of 0 overload <> with neq_float_int of 0 // overload != with neq_int_double of 0 overload <> with neq_int_double of 0 overload != with neq_double_int of 0 overload <> with neq_double_int of 0 // (* ****** ****** *) // fun {tk:tk} g0float_npow (x: g0float(tk), n: intGte(0)):<> g0float(tk) // overload ** with g0float_npow of 0 // (* ****** ****** *) macdef g0i2f (x) = g0int2float (,(x)) macdef g0f2i (x) = g0float2int (,(x)) macdef g0f2f (x) = g0float2float (,(x)) (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/filebas.sats0000644000175000017500000001714413431250607021404 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/filebas.atxt ** Time of generation: Thu Feb 14 11:29:40 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) val stdin_ref : FILEref = "mac#%FILE_stdin" val stdout_ref : FILEref = "mac#%FILE_stdout" val stderr_ref : FILEref = "mac#%FILE_stderr" (* ****** ****** *) fun{} dirsep_get ():<> charNZ fun{} dirsep_gets ():<> string fun{} dirname_self ():<> string fun{} dirname_parent ():<> string (* ****** ****** *) fun{} filename_get_ext(name: string):<> vStrptr0 fun{} filename_test_ext(name: string, ext: string):<> bool (* ****** ****** *) fun{} filename_get_base (name: string):<> vStrptr1 fun{} filename_test_base (name: string, base: string):<> bool (* ****** ****** *) // val file_mode_r : file_mode(file_mode_r()) = "mac#%" // = "r" val file_mode_rr : file_mode(file_mode_rw()) = "mac#%" // = "r+" // val file_mode_w : file_mode(file_mode_w()) = "mac#%" // = "w" val file_mode_ww : file_mode(file_mode_rw()) = "mac#%" // = "w+" // val file_mode_a : file_mode(file_mode_rw()) = "mac#%" // = "a" val file_mode_aa : file_mode(file_mode_rw()) = "mac#%" // = "a+" // (* ****** ****** *) // (* ** HX: [stat] is called *) fun test_file_exists (path: NSH(string)): bool = "mac#%" // (* ****** ****** *) // // HX-2011-02-16: // [stat] is called to obtain the mode of a given file // for [f] to be applied to it. // fun{} test_file_mode (path: NSH(string)): int // fun{} test_file_mode$pred (mode: uint): bool // fun test_file_mode_fun (path: NSH(string), f: uint -> bool): int = "mac#%" // // HX: [stat] is called // ~1/0/1: error/false/true // fun test_file_isblk(path: NSH(string)): int = "mac#%" fun test_file_ischr(path: NSH(string)): int = "mac#%" fun test_file_isdir(path: NSH(string)): int = "mac#%" fun test_file_isfifo(path: NSH(string)): int = "mac#%" fun test_file_isreg(path: NSH(string)): int = "mac#%" // // HX: [lstat] is called // ~1/0/1: error/false/true // fun test_file_islnk(path: NSH(string)): int = "mac#%" // (* ****** ****** *) // fun fileref_open_exn (path: NSH(string), file_mode): FILEref = "mac#%" // end of [fileref_open_exn] // fun{} fileref_open_opt (path: NSH(string), file_mode): Option_vt(FILEref) // end of [fileref_open_opt] // (* ****** ****** *) // fun fileref_close(fil: FILEref): void = "mac#%" // (* ****** ****** *) // fun fileref_flush(fil: FILEref): void = "mac#%" // (* ****** ****** *) // // HX: error indication: EOF // fun fileref_getc(input: FILEref): int = "mac#%" // (* ****** ****** *) // // HX: no error reporting // fun fileref_putc_int (out: FILEref, c: int): void = "mac#%" // fun fileref_putc_char (out: FILEref, c: char): void = "mac#%" // symintr fileref_putc overload fileref_putc with fileref_putc_int overload fileref_putc with fileref_putc_char // (* ****** ****** *) // // HX: no error reporting // fun fileref_puts (out: FILEref, NSH(string)): void = "mac#%" // (* ****** ****** *) // fun fileref_is_eof(inp: FILEref): bool = "mac#%" // macdef fileref_isnot_eof(inp) = ~fileref_is_eof(,(inp)) // (* ****** ****** *) typedef fileref_load_type(a:t@ype) = (FILEref, &a? >> opt(a, b)) - #[b:bool] bool(b) // end of [fileref_load_type] // fun{a:t0p} fileref_load : fileref_load_type (a) // fun fileref_load_int : fileref_load_type(int) = "mac#%" fun fileref_load_lint : fileref_load_type(lint) = "mac#%" fun fileref_load_uint : fileref_load_type(uint) = "mac#%" fun fileref_load_ulint : fileref_load_type(ulint) = "mac#%" // fun fileref_load_float : fileref_load_type(float) = "mac#%" fun fileref_load_double : fileref_load_type(double) = "mac#%" // (* ****** ****** *) fun{a:t0p} fileref_get_optval (inp: FILEref): Option_vt(a) // end of [fileref_get_optval] fun{ a:t0p } fileref_get_exnmsg (inp: FILEref, msg: NSH(string)): a // end of [fileref_get_exnmsg] macdef fileref_get_exnloc (inp) = fileref_get_exnmsg(,(inp), $mylocation) // end of [fileref_get_exnloc] (* ****** ****** *) typedef charlst = List0(char) vtypedef charlst_vt = List0_vt(char) (* ****** ****** *) // fun fileref_get_line_charlst(inp: FILEref): charlst_vt // (* ****** ****** *) // (* ** HX: only for files of "tiny" size *) fun fileref_get_lines_charlstlst(inp: FILEref): List0_vt(charlst_vt) // (* ****** ****** *) // (* ** HX: for handling files of "tiny" size *) fun fileref_get_file_charlst(inp: FILEref): List0_vt(char) fun fileref_get2_file_charlst(inp: FILEref, n: int): List0_vt(char) // (* ****** ****** *) // // fun fileref_put_string (out: FILEref, cs: NSH(string)): void fun fileref_put_charlst (inp: FILEref, cs: NSH(List(char))): void // (* ****** ****** *) // // // HX-2013-05: // these functions are based on [fgets]; // they should only be applied to files containing // no occurrences of the NUL character ('\000'). // fun{} fileref_get_line_string(inp: FILEref): Strptr1 // fun{} fileref_get_line_string_main ( inp: FILEref, nchar: &int? >> int(n) ) : #[n:nat] strnptr(n) // end-of-function fun{} fileref_get_line_string$bufsize((*void*)): intGte(1) // fun{} fileref_get_lines_stringlst(inp: FILEref): List0_vt(Strptr1) // (* ****** ****** *) // fun{} fileref_get_file_string(inp: FILEref): Strptr1 fun{} fileref_get_file_string$bufsize((*void*)): intGte(1) // (* ****** ****** *) // fun{} fileref_get_word(inp: FILEref): Strptr0 fun{} fileref_get_word$isalpha(c0: charNZ): bool // (* ****** ****** *) // fun{} fileref_foreach(inp: FILEref): void fun{ env:vt0p } fileref_foreach_env(inp: FILEref, env: &(env) >> _): void // fun{} fileref_foreach$bufsize((*void*)): sizeGte(1) fun{ env:vt0p } fileref_foreach$fwork(c: char, env: &(env) >> _): void fun{ env:vt0p } fileref_foreach$fworkv {n:int} (arrayref(char, n), size_t(n), &(env) >> _): void // (* ****** ****** *) // fun{} streamize_fileref_char(inp: FILEref): stream_vt(char) fun{} streamize_fileref_line(inp: FILEref): stream_vt(Strptr1) // (* ****** ****** *) // absvtype FILEptr1_vtype = ptr vtypedef FILEptr1 = FILEptr1_vtype // fun{} streamize_fileptr_char(inp: FILEptr1): stream_vt(char) fun{} streamize_fileptr_line(inp: FILEptr1): stream_vt(Strptr1) // (* ****** ****** *) // fun{} streamize_dirname_fname(dir: NSH(string)): stream_vt(Strptr1) // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/arrayptr.sats0000644000175000017500000002676713431250607021656 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/arrayptr.atxt ** Time of generation: Thu Feb 14 11:29:42 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) #if(0) // // HX-2013-06: // it is declared in [basic_dyn.sats] // absvtype arrayptr_vt0ype_addr_int_vtype (a:vt0ype+, l: addr, n: int) = ptr(l) // stadef arrayptr = arrayptr_vt0ype_addr_int_vtype // vtypedef arrayptr (a:vt0p, n:int) = [l:addr] arrayptr(a, l, n) // #endif (* ****** ****** *) // absvtype arrayptrout_vt0ype_addr_int_vtype (a:t@ype, l: addr, n: int) = ptr(l) // stadef arrayptrout = arrayptrout_vt0ype_addr_int_vtype // (* ****** ****** *) praxi lemma_arrayptr_param{a:vt0p} {l:addr}{n:int} (A: !arrayptr(a, l, n)): [n >= 0] void // end of [lemma_arrayptr_param] (* ****** ****** *) castfn arrayptr_encode : {a:vt0p} {l:addr}{n:int} (array_v(INV(a), l, n), mfree_gc_v(l) | ptr(l)) -<0> arrayptr(a, l, n) // end of [arrayptr_encode] castfn arrayptr_encode2 : {a:vt0p} {l:addr}{n:int} @(array_v(INV(a), l, n), mfree_gc_v(l) | ptr(l)) -<0> arrayptr(a, l, n) // end of [arrayptr_encode2] (* ****** ****** *) // castfn arrayptr_objectify {a:vt0p} {l:addr}{n:int} ( pf: array_v(INV(a), l, n) | p0: ptr(l) // starting address ) :<> (mfree_ngc_v(l) | arrayptr(a, l, n)) // end of [arrayptr_objectify] // castfn arrayptr_unobjectify {a:vt0p}{l:addr}{n:int} ( pf: mfree_ngc_v(l) | A0: arrayptr(INV(a), l, n)):<> (array_v(a, l, n) | ptr(l)) // end of [arrayptr_objectify] // (* ****** ****** *) // castfn arrayptr2ptr {a:vt0p} {l:addr}{n:int} (A0: !arrayptr(INV(a), l, n)):<> ptr(l) castfn arrayptrout2ptr {a:t0p}{l:addr}{n:int} (A0: !arrayptrout(INV(a), l, n)):<> ptr(l) // (* ****** ****** *) praxi arrayptr_takeout {a:vt0p}{l:addr}{n:int} ( A0: !arrayptr(INV(a), l, n) >> arrayptrout(a?, l, n) ) : array_v(a, l, n) // end of [arrayptr_takeout] praxi arrayptr_addback {a:vt0p} {l:addr}{n:int} ( pf: array_v(INV(a), l, n) | A0: !arrayptrout(a?, l, n) >> arrayptr(a, l, n) ) : void // end of [arrayptr_addback] (* ****** ****** *) castfn arrayptr_takeout_viewptr {a:vt0p}{l:addr}{n:int} ( A: !arrayptr(INV(a), l, n) >> arrayptrout(a?, l, n) ) : (array_v(a, l, n) | ptr(l)) // endfun (* ****** ****** *) castfn arrpsz_encode : {a:vt0p}{n:int} @(arrayptr(INV(a), n), size_t(n)) -<0> arrpsz(a, n) // end of [arrpsz_encode] castfn arrpsz_decode : {a:vt0p}{n:int} arrpsz(INV(a), n) -<0> @(arrayptr(a, n), size_t(n)) // end of [arrpsz_decode] (* ****** ****** *) fun arrpsz_get_ptrsize {a:vt0p}{n:int} ( psz: arrpsz(INV(a), n), asz: &size_t? >> size_t(n) ) : arrayptr(a, n) = "mac#%" // endfun (* ****** ****** *) symintr arrayptr (* ****** ****** *) fun {a:t0p} arrayptr_make_elt {n:int} (asz: size_t(n), x: a): arrayptr(a, n) // end of [arrayptr_make_elt] (* ****** ****** *) fun{} arrayptr_make_intrange {l,r:int | l <= r} (int(l), int(r)): arrayptr(intBtw(l, r), r-l) // end of [arrayptr_make_intrange] (* ****** ****** *) // // HX: this one is a field-selection // fun arrayptr_make_arrpsz {a:vt0p}{n:int} (psz: arrpsz(INV(a), n)):<> arrayptr(a, n) = "mac#%" // overload arrayptr with arrayptr_make_arrpsz // (* ****** ****** *) // fun {a:t0p} arrayptr_make_list {n:int} ( asz: int(n) , xs0: list(INV(a), n)): arrayptr(a, n) // end of [arrayptr_make_list] // fun {a:t0p} arrayptr_make_rlist {n:int} ( asz: int(n) , xs0: list(INV(a), n)): arrayptr(a, n) // end of [arrayptr_make_rlist] // (* ****** ****** *) fun{a:t0p} arrayptr_make_subarray {n:int} {st,ln:int | st+ln <= n} ( A0: RD(arrayref(a, n)), st: size_t(st), ln: size_t(ln) ) : arrayptr(a, ln) // end of [arrayptr_make_subarray] (* ****** ****** *) fun {a:vt0p} arrayptr_make_list_vt{n:int} ( asz: int(n) , xs0: list_vt(INV(a), n)): arrayptr(a, n) // end of [arrayptr_make_list_vt] fun {a:vt0p} arrayptr_make_rlist_vt{n:int} ( asz: int(n) , xs0: list_vt(INV(a), n)): arrayptr(a, n) // end of [arrayptr_make_rlist_vt] (* ****** ****** *) // fun {a:vt0p} arrayptr_make_uninitized {n:int} (asz: size_t(n)): arrayptr(a?, n) // end of [arrayptr_make_uninitized] // (* ****** ****** *) // fun {a:t0p} arrayptr_make_stream ( xs0: stream(INV(a)) , asz: &(size_t)? >> size_t(n)): #[n:nat] arrayptr(a, n) fun {a:vt0p} arrayptr_make_stream_vt ( xs0: stream_vt(INV(a)) , asz: &(size_t)? >> size_t(n)): #[n:nat] arrayptr(a, n) // fun{} arrayptr_make_stream$bufsize ((*void*)):<> intGte(1) // HX: default = 16 // (* ****** ****** *) fun arrayptr_free {a:t0p} {l:addr}{n:int} (A: arrayptr(INV(a), l, n)): void = "mac#%" // end of [arrayptr_free] (* ****** ****** *) fun {a:vt0p} arrayptr_imake_list{n:int} ( A0: !arrayptr(INV(a), n) >> arrayptr(a?!, n), n: size_t(n) ) : list_vt(a, n) // end of [arrayptr_imake_list] (* ****** ****** *) (* fun{} fprint_array$sep (out: FILEref): void *) fun{a:vt0p} fprint_arrayptr {l:addr}{n:int} ( out: FILEref, A: !arrayptr(INV(a), l, n), n: size_t(n) ) : void // end of [fprint_arrayptr] fun{a:vt0p} fprint_arrayptr_sep {l:addr}{n:int} ( out: FILEref , A: !arrayptr(INV(a), l, n), n: size_t(n), sep: NSH(string) ) : void // end of [fprint_arrayptr_sep] (* ****** ****** *) // fun{ a:t0p}{tk:tk } arrayptr_get_at_gint {n:int}{i:nat | i < n} (A: !arrayptr(INV(a), n), i: g1int (tk, i)):<> (a) fun{ a:t0p}{tk:tk } arrayptr_get_at_guint {n:int}{i:nat | i < n} (A: !arrayptr(INV(a), n), i: g1uint (tk, i)):<> (a) // symintr arrayptr_get_at overload arrayptr_get_at with arrayptr_get_at_gint overload arrayptr_get_at with arrayptr_get_at_guint // (* ****** ****** *) // fun{ a:t0p}{tk:tk } arrayptr_set_at_gint {n:int}{i:nat | i < n} (A: !arrayptr(INV(a), n), i: g1int (tk, i), x: a): void fun{ a:t0p}{tk:tk } arrayptr_set_at_guint {n:int}{i:nat | i < n} (A: !arrayptr(INV(a), n), i: g1uint (tk, i), x: a): void // symintr arrayptr_set_at overload arrayptr_set_at with arrayptr_set_at_gint of 0 overload arrayptr_set_at with arrayptr_set_at_guint of 0 // (* ****** ****** *) // fun{ a:vt0p}{tk:tk } arrayptr_exch_at_gint {n:int}{i:nat | i < n} (A: !arrayptr(INV(a), n), i: g1int (tk, i), x: &a >> _): void // end of [arrayptr_exch_at_gint] // fun{ a:vt0p}{tk:tk } arrayptr_exch_at_guint {n:int}{i:nat | i < n} (A: !arrayptr(INV(a), n), i: g1uint (tk, i), x: &a >> _): void // end of [arrayptr_exch_at_guint] // symintr arrayptr_exch_at overload arrayptr_exch_at with arrayptr_exch_at_gint of 0 overload arrayptr_exch_at with arrayptr_exch_at_guint of 0 // (* ****** ****** *) fun{a:vt0p} arrayptr_interchange {n:int} ( A: !arrayptr(INV(a), n), i: sizeLt n, j: sizeLt n ) : void // end of [arrayptr_interchange] (* ****** ****** *) (* fun{a:vt0p}{env:vt0p} array_foreach$cont (x: &a, env: &env): void fun{a:vt0p}{env:vt0p} array_foreach$fwork (x: &a >> a, env: &(env) >> _): void *) fun{ a:vt0p } arrayptr_foreach{n:int} ( A: !arrayptr(INV(a), n), asz: size_t(n) ) : sizeLte(n) // end of [arrayptr_foreach] fun{ a:vt0p}{env:vt0p } arrayptr_foreach_env{n:int} ( A: !arrayptr(INV(a), n), asz: size_t(n), env: &(env) >> _ ) : sizeLte(n) // end of [arrayptr_foreach_env] (* ****** ****** *) fun {a:vt0p} arrayptr_foreach_funenv {v:view} {vt:vtype} {n:int} {fe:eff} ( pfv: !v | A: !arrayptr(INV(a), n) , asz: size_t(n) , fop: (!v | &a, !vt) - void , env: !vt ) : void // end of [arrayptr_foreach_funenv] (* ****** ****** *) (* fun{a:vt0p}{env:vt0p} array_iforeach$cont (i: size_t, x: &a, env: &env): void fun{a:vt0p}{env:vt0p} array_iforeach$fwork (i: size_t, x: &a >> a, env: &(env) >> _): void *) fun{ a:vt0p } arrayptr_iforeach{n:int} ( A: !arrayptr(INV(a), n), asz: size_t(n) ) : sizeLte(n) // end of [arrayptr_iforeach] fun{ a:vt0p}{env:vt0p } arrayptr_iforeach_env{n:int} ( A: !arrayptr(INV(a), n), asz: size_t(n), env: &(env) >> _ ) : sizeLte(n) // end of [arrayptr_iforeach_env] (* ****** ****** *) (* fun{a:vt0p}{env:vt0p} array_rforeach$cont (x: &a, env: &env): void fun{a:vt0p}{env:vt0p} array_rforeach$fwork (x: &a >> a, env: &(env) >> _): void *) fun{ a:vt0p } arrayptr_rforeach{n:int} ( A: !arrayptr(INV(a), n), asz: size_t(n) ) : sizeLte(n) // end of [arrayptr_rforeach] fun{ a:vt0p}{env:vt0p } arrayptr_rforeach_env{n:int} ( A: !arrayptr(INV(a), n), asz: size_t(n), env: &(env) >> _ ) : sizeLte(n) // end of [arrayptr_rforeach_env] (* ****** ****** *) // (* fun{a:vt0p} array_initize$init (i: size_t, x: &a >> a?): void *) // fun{a:vt0p} arrayptr_initize {l:addr}{n:int} ( A: !arrayptr(a?, l, n) >> arrayptr(a, l, n), asz: size_t(n) ) : void // end of [arrayptr_initize] // macdef arrayptr_initialize = arrayptr_initize // (* ****** ****** *) // (* fun{a:vt0p} array_uninitize$clear (i: size_t, x: &a >> a?): void *) fun{a:vt0p} arrayptr_uninitize {l:addr}{n:int} ( A: !arrayptr(INV(a), l, n) >> arrayptr(a?, l, n), asz: size_t(n) ) : void // end of [arrayptr_uninitize] // macdef arrayptr_uninitialize = arrayptr_uninitize // (* ****** ****** *) (* fun{a:vt0p} array_uninitize$clear (i: size_t, x: &a >> a?): void *) fun{a:vt0p} arrayptr_freelin {l:addr}{n:int} (A: arrayptr(INV(a), l, n), asz: size_t(n)): void // end of [arrayptr_freelin] (* ****** ****** *) // (* fun{a:vt0p} array_tabulate$fopr(index: size_t): (a) *) fun{a:vt0p} arrayptr_tabulate {n:int}(asz: size_t(n)): arrayptr(a, n) // (* ****** ****** *) // (* fun {a:vt0p} array_bsearch$ford(x: &RD(a)):<> int *) // fun {a:vt0p} arrayptr_bsearch {n:int} (A: !arrayptr(a, n), n: size_t(n)):<> sizeLte(n) // (* ****** ****** *) // fun {a:vt0p} arrayptr_quicksort {n:int} (A: !arrayptr(a, n) >> _, asz: size_t(n)): void // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) overload [] with arrayptr_get_at_gint of 0 overload [] with arrayptr_set_at_gint of 0 overload [] with arrayptr_get_at_guint of 0 overload [] with arrayptr_set_at_guint of 0 (* ****** ****** *) overload free with arrayptr_free (* ****** ****** *) overload fprint with fprint_arrayptr overload fprint with fprint_arrayptr_sep (* ****** ****** *) overload ptrcast with arrayptr2ptr overload ptrcast with arrayptrout2ptr (* ****** ****** *) (* end of [arrayptr.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/array.sats0000644000175000017500000003237213431250607021115 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/array.atxt ** Time of generation: Thu Feb 14 11:29:42 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: Feburary, 2012 *) (* ****** ****** *) vtypedef RD(a:vt0p) = a // for commenting: read-only #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) sortdef t0p = t@ype sortdef vtp = viewtype sortdef vt0p = viewt@ype (* ****** ****** *) (* // // HX: [array_v] can also be defined as follows: // dataview array_v ( a:vt@ype+, addr, int ) = // HX: for arry view | {l:addr} array_v_nil (a, l, 0) | {l:addr}{n:int} array_v_cons (a, l, n+1) of (a @ l, array_v (a, l+sizeof a, n)) // end of [array_v] *) (* ****** ****** *) dataview arrayopt_v ( a:vt@ype+, addr, int, bool ) = // HX: for optional array view | {l:addr}{n:int} arrayopt_v_some (a, l, n, true) of array_v (a, l, n) | {l:addr}{n:int} arrayopt_v_none (a, l, n, false) of array_v (a?, l, n) // end of [arrayopt_v] (* ****** ****** *) // exception ArraySubscriptExn of () // (* fun ArraySubscriptExn():<> exn = "mac#%ArraySubscriptExn_make" fun isArraySubscriptExn(x: !exn):<> bool = "mac#%isArraySubscriptExn" // macdef ifArraySubscriptExn {tres}(exn, body) = ( let val x = ,(exn) in ( // if isArraySubscriptExn(x) then ( let prval () = __vfree_exn (x) in ,(body) end ) else $raise (x) // ) : tres // end of [if] end (* end of [let] *) ) // end of [ifArraySubscriptExn] *) // (* ****** ****** *) // praxi lemma_array_param {a:vt0p}{l:addr}{n:int} (A: &(@[INV(a)][n])): [n >= 0] void // end of [lemma_array_param] // praxi lemma_array_v_param {a:vt0p}{l:addr}{n:int} (pf: !array_v (INV(a), l, n)): [n >= 0] void // end of [lemma_array_v_param] // (* ****** ****** *) // praxi array_v_nil : {a:vt0p}{l:addr} () - array_v (a, l, 0) // praxi array_v_unnil : {a:vt0p}{l:addr} array_v (a, l, 0) - void // prfun array_v_unnil_nil : {a1,a2:vt0p}{l:addr} array_v (a1, l, 0) - array_v (a2, l, 0) // end of [array_v_unnil_nil] // (* ****** ****** *) // praxi array_v_cons : {a:vt0p}{l:addr}{n:int} (a @ l, array_v (INV(a), l+sizeof(a), n)) - array_v (a, l, n+1) // praxi array_v_uncons : {a:vt0p}{l:addr}{n:int | n > 0} array_v (INV(a), l, n) - (a @ l, array_v (a, l+sizeof(a), n-1)) // (* ****** ****** *) prfun array_v_sing {a:vt0p}{l:addr} (pf: INV(a) @ l): array_v (a, l, 1) prfun array_v_unsing {a:vt0p}{l:addr} (pf: array_v (INV(a), l, 1)): a @ l (* ****** ****** *) // fun {a:vt0p} array_getref_at {n:int} (A: &RD(@[INV(a)][n]), i: sizeLt n):<> cPtr1(a) // (* ****** ****** *) // fun{ a:t0p}{tk:tk } array_get_at_gint {n:int} (A: &RD(@[INV(a)][n]), i: g1intLt(tk, n)):<> a // fun{ a:t0p}{tk:tk } array_get_at_guint {n:int} (A: &RD(@[INV(a)][n]), i: g1uintLt(tk, n)):<> a // overload [] with array_get_at_gint of 0 overload [] with array_get_at_guint of 0 // symintr array_get_at overload array_get_at with array_get_at_gint of 0 overload array_get_at with array_get_at_guint of 0 // (* ****** ****** *) // fun{ a:t0p}{tk:tk } array_set_at_gint {n:int} (A: &(@[INV(a)][n]), i: g1intLt(tk, n), x: a): void // fun{ a:t0p}{tk:tk } array_set_at_guint {n:int} (A: &(@[INV(a)][n]), i: g1uintLt(tk, n), x: a): void // overload [] with array_set_at_gint of 0 overload [] with array_set_at_guint of 0 // symintr array_set_at overload array_set_at with array_set_at_gint of 0 overload array_set_at with array_set_at_guint of 0 // (* ****** ****** *) fun{ a:vt0p}{tk:tk } array_exch_at_gint{n:int} ( A: &(@[INV(a)][n]), i: g1intLt (tk, n), x: &a >> _ ) : void fun{ a:vt0p}{tk:tk } array_exch_at_guint{n:int} ( A: &(@[INV(a)][n]), i: g1uintLt (tk, n), x: &a >> _ ) : void symintr array_exch_at overload array_exch_at with array_exch_at_gint of 0 overload array_exch_at with array_exch_at_guint of 0 (* ****** ****** *) fun {a:vt0p} array_subreverse {n:int} {i,j:int | 0 <= i; i <= j; j <= n} ( A: &(@[INV(a)][n]), i: size_t(i), j: size_t(j) ) : void // end of [array_subreverse] (* ****** ****** *) fun {a:vt0p} array_interchange {n:int} ( A: &(@[INV(a)][n]), i: sizeLt (n), j: sizeLt (n) ) : void // end of [array_interchange] (* ****** ****** *) fun {a:vt0p} array_subcirculate {n:int} ( A: &(@[INV(a)][n]), i: sizeLt (n), j: sizeLt (n) ) : void // end of [array_subcirculate] (* ****** ****** *) fun {a:vt0p} array_ptr_takeout {l:addr}{n:int}{i:nat | i < n} ( array_v (INV(a), l, n) | ptr l, size_t i ) : ( a @ (l+i*sizeof(a)) , a @ (l+i*sizeof(a)) - array_v (a, l, n) | ptr (l+i*sizeof(a)) ) (* end of [array_ptr_takeout] *) (* ****** ****** *) fun {a:vt0p} array_ptr_alloc {n:int} ( asz: size_t n ) : [l:agz] ( array_v (a?, l, n), mfree_gc_v (l) | ptr l ) (* end of [array_ptr_alloc] *) fun {(*void*)} array_ptr_free {a:vt0p}{l:addr}{n:int} ( array_v (a?, l, n), mfree_gc_v (l) | ptr l ) : void // end-of-function (* ****** ****** *) // fun {(*void*)} fprint_array$sep (out: FILEref): void // fun{a:vt0p} fprint_array_int{n:int} ( out: FILEref, A: &RD(@[INV(a)][n]), n: int(n) ) : void // end of [fprint_array_int] fun{a:vt0p} fprint_array_size{n:int} ( out: FILEref, A: &RD(@[INV(a)][n]), n: size_t(n) ) : void // end of [fprint_array_size] // symintr fprint_array overload fprint_array with fprint_array_int overload fprint_array with fprint_array_size // fun {a:vt0p} fprint_array_sep{n:int} ( out: FILEref , A: &RD(@[INV(a)][n]), n: size_t n, sep: NSH(string) ) : void // end of [fprint_array_sep] // (* ****** ****** *) overload fprint with fprint_array overload fprint with fprint_array_sep (* ****** ****** *) fun {a:vt0p} array_copy{n:int} ( to: &(@[a?][n]) >> @[a][n] , from: &RD(@[INV(a)][n]) >> @[a?!][n] , n: size_t (n) ) : void // end of [array_copy] (* ****** ****** *) // fun {a:t0p} array_copy_from_list{n:int} ( A: &(@[a?][n]) >> @[a][n], xs: list (INV(a), n) ) : void // end of [array_copy_from_list] // fun {a:vt0p} array_copy_from_list_vt{n:int} ( A: &(@[a?][n]) >> @[a][n], xs: list_vt (INV(a), n) ) : void // end of [array_copy_from_list_vt] // (* ****** ****** *) fun {a:vt0p} array_copy_to_list_vt{n:int} ( A: &RD(@[INV(a)][n]) >> @[a?!][n], n: size_t n ) : list_vt (a, n) // endfun macdef array2list = array_copy_to_list_vt (* ****** ****** *) // fun {a:vt0p} array_tabulate$fopr(i: size_t): (a) // fun {a:vt0p} array_ptr_tabulate {n:int} ( asz: size_t(n) ) : [l:addr] (array_v(a, l, n), mfree_gc_v(l) | ptr(l)) // end of [arrayptr_tabulate] // (* ****** ****** *) // fun{ a:vt0p } array_foreach{n:int} ( A: &(@[INV(a)][n]) >> @[a][n], asz: size_t(n) ) : sizeLte(n) // end of [array_foreach] // fun{ a:vt0p}{env:vt0p } array_foreach_env{n:int} ( A: &(@[INV(a)][n]) >> @[a][n], asz: size_t(n), env: &(env) >> _ ) : sizeLte(n) // end of [array_foreach_env] // fun{ a:vt0p}{env:vt0p } array_foreach$cont (x: &a, env: &env): bool fun{ a:vt0p}{env:vt0p } array_foreach$fwork (x: &a >> _, env: &(env) >> _): void // (* ****** ****** *) // fun {a:vt0p} array_foreach_funenv {v:view} {vt:vtype} {n:int} {fe:eff} ( pf: !v | A0: &(@[INV(a)][n]) >> @[a][n], asz: size_t(n) , f0: (!v | &a >> _, !vt) - void, env: !vt ) : void // end of [array_foreach_funenv] // fun array_foreach_funenv_tsz {a:vt0p} {v:view} {vt:vtype} {n:int} {fe:eff} ( pf: !v | A0: &(@[INV(a)][n]) >> @[a][n] , asz: size_t(n), tsz: sizeof_t(a) , f0: (!v | &a >> _, !vt) - void, env: !vt ) : void = "ext#%" // end of [array_foreach_funenv_tsz] // (* ****** ****** *) fun{ a1,a2:vt0p } array_foreach2 {n:int} ( A1: &(@[INV(a1)][n]) >> @[a1][n] , A2: &(@[INV(a2)][n]) >> @[a2][n] , asz: size_t (n) ) : sizeLte(n) // end of [array_foreach2] // fun{ a1,a2:vt0p}{env:vt0p } array_foreach2_env {n:int} ( A1: &(@[INV(a1)][n]) >> @[a1][n] , A2: &(@[INV(a2)][n]) >> @[a2][n] , asz:size_t (n) , env: &(env) >> env ) : sizeLte(n) // end of [array_foreach2_env] // fun{ a1,a2:vt0p}{env:vt0p } array_foreach2$cont (x1: &a1, x2: &a2, env: &env): bool fun{ a1,a2:vt0p}{env:vt0p } array_foreach2$fwork (x1: &a1 >> _, x2: &a2 >> _, env: &(env) >> _): void // (* ****** ****** *) fun {a:vt0p} array_iforeach {n:int} ( A0: &(@[INV(a)][n]) >> @[a][n], asz: size_t(n) ) : sizeLte(n) // end of [array_iforeach] // fun{ a:vt0p}{env:vt0p } array_iforeach_env {n:int} ( A0: &(@[INV(a)][n]) >> @[a][n], asz: size_t(n), env: &(env) >> _ ) : sizeLte(n) // end of [array_iforeach_env] // fun{ a:vt0p}{env:vt0p } array_iforeach$cont(i: size_t, x: &a, env: &env): bool fun{ a:vt0p}{env:vt0p } array_iforeach$fwork(i: size_t, x: &(a) >> _, env: &(env) >> _): void // (* ****** ****** *) fun {a:vt0p} array_rforeach{n:int} ( A: &(@[INV(a)][n]) >> @[a][n], asz: size_t(n) ) : sizeLte(n) // end of [array_rforeach] // fun{ a:vt0p}{env:vt0p } array_rforeach_env{n:int} ( A0: &(@[INV(a)][n]) >> @[a][n], asz: size_t(n), env: &(env) >> _ ) : sizeLte(n) // end of [array_rforeach_env] // fun{ a:vt0p}{env:vt0p } array_rforeach$cont(x: &a, env: &env): bool fun{ a:vt0p}{env:vt0p } array_rforeach$fwork(x: &a >> _, env: &(env) >> _): void // (* ****** ****** *) // fun{a:vt0p} array_initize{n:int} ( A: &(@[a?][n]) >> @[a][n], asz: size_t(n) ) : void // end of [array_initize] // fun{a:vt0p} array_initize$init (i: size_t, x: &a? >> a): void // (* ****** ****** *) fun{a:t0p} array_initize_elt{n:int} ( A: &(@[a?][n]) >> @[a][n], asz: size_t n, elt: (a) ) : void // end of [array_initize_elt] (* ****** ****** *) fun{a:t0p} array_initize_list{n:int} ( A: &(@[a?][n]) >> @[a][n], asz: int n, xs: list(INV(a), n) ) : void // end of [array_initize_list] fun{a:t0p} array_initize_rlist{n:int} ( A: &(@[a?][n]) >> @[a][n], asz: int n, xs: list(INV(a), n) ) : void // end of [array_initize_rlist] (* ****** ****** *) fun{a:vt0p} array_initize_list_vt{n:int} ( A: &(@[a?][n]) >> @[a][n], asz: int n, xs: list_vt(INV(a), n) ) : void // end of [array_initize_list_vt] fun{a:vt0p} array_initize_rlist_vt{n:int} ( A: &(@[a?][n]) >> @[a][n], asz: int n, xs: list_vt(INV(a), n) ) : void // end of [array_initize_rlist_vt] (* ****** ****** *) // fun {a:vt0p} array_uninitize {n:int} ( A0: &(@[INV(a)][n]) >> @[a?][n], asz: size_t(n) ) : void // end of [array_uninitize] // fun{a:vt0p} array_uninitize$clear(i: size_t, x: &a >> a?): void // (* ****** ****** *) // fun{a:vt0p} array_bsearch$ford (x: &RD(a)):<> int // fun {a:vt0p} array_bsearch {n:int} (A: &RD(@[a][n]), n: size_t(n)):<> sizeLte(n) // fun {a:vt0p} array_bsearch_fun {n:int} ( // A0: &RD(@[a][n]), asz: size_t(n), key: &RD(a), cmp: cmpref(a) // ) :<> sizeLte(n) // end of [array_bsearch_fun] // (* ****** ****** *) // (* ** HX: this one is based on [bsearch] in [stdlib] *) fun {a:vt0p} array_bsearch_stdlib {n:int} ( A0: &RD(@[a][n]), asz: size_t(n), key: &RD(a), cmp: cmpref(a) ) :<> Ptr0 (* found/~found : ~null/null *) // (* ****** ****** *) // fun {a:vt0p} array_quicksort {n:int} ( A: &(@[INV(a)][n]) >> @[a][n], n: size_t n ) : void // end-of-function fun{a:vt0p} array_quicksort$cmp(x1: &RD(a), x2: &RD(a)):<> int(*sgn*) // (* ****** ****** *) (* ** HX: this one is based on [qsort] in [stdlib] *) fun {a:vt0p} array_quicksort_stdlib {n:int} ( A: &(@[INV(a)][n]) >> @[a][n], n: size_t(n), cmp: cmpref(a) ) : void // end of [array_quicksort_stdlib] (* ****** ****** *) // fun{ a:vt0p}{b:vt0p } array_mapto{n:int} ( A: &array(INV(a), n) , B: &array(b?, n) >> array (b, n) , n: size_t (n) ) : void // end of [array_mapto] // fun{ a:vt0p}{b:vt0p } array_mapto$fwork(x: &a, y: &b? >> b): void // (* ****** ****** *) // fun{ a,b:vt0p}{c:vt0p } array_map2to{n:int} ( A: &array(INV(a), n) , B: &array(INV(b), n) , C: &array(c?, n) >> array (c, n) , n: size_t (n) ) : void // end of [array_map2to] // fun{ a,b:vt0p}{c:vt0p } array_map2to$fwork(x: &a, y: &b, z: &c? >> c): void // (* ****** ****** *) // (* HX-2016: Fisher–Yates shuffle *) // fun{a:vt0p} array_permute{n:int} (A: &(@[INV(a)][n]) >> @[a][n], n: size_t(n)): void // fun{(*void*)} array_permute$randint{n:int | n > 0}(size_t(n)): sizeLt(n) // (* ****** ****** *) (* end of [array.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/unsafe.sats0000644000175000017500000001650513431250607021260 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/unsafe.atxt ** Time of generation: Thu Feb 14 11:29:40 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2012 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.prelude.unsafe" (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) // praxi prop_assert{b:bool}((*void*)): [b] void // praxi proof_assert{proof:prop}((*void*)): proof // praxi eqint_assert{i1,i2:int}((*void*)): EQINT(i1,i2) praxi eqaddr_assert{l1,l2:addr}((*void*)): EQADDR(l1,l2) praxi eqbool_assert{b1,b2:bool}((*void*)): EQBOOL(b1,b2) // (* ****** ****** *) // castfn cast{to:t0p}{from:t0p} (x: INV(from)):<> to // (* ****** ****** *) // castfn castvwtp0 {to:vt0p}{from:vt0p} (x: INV(from)):<> to // // HX: // [castvwtp1] is mostly used in a situation // where a linear value is passed as a read-only value; // for instance, casting [strptr] to [string] is often // done for treating a linear string as a nonlinear one // temporarily. // castfn castvwtp1 {to:vt0p}{from:vt0p} (x: !INV(from)>>from):<> to // (* ****** ****** *) // castfn cast2ptr {a:type} (x: INV(a)):<> ptr castfn cast2Ptr0 {a:type} (x: INV(a)):<> Ptr0 castfn cast2Ptr1 {a:type} (x: INV(a)):<> Ptr1 // castfn cast2int {a:t0p} (x: INV(a)):<> int castfn cast2uint {a:t0p} (x: INV(a)):<> uint // castfn cast2lint {a:t0p} (x: INV(a)):<> lint castfn cast2ulint {a:t0p} (x: INV(a)):<> ulint // castfn cast2llint {a:t0p} (x: INV(a)):<> llint castfn cast2ullint {a:t0p} (x: INV(a)):<> ullint // castfn cast2size {a:t0p} (x: INV(a)):<> size_t castfn cast2ssize {a:t0p} (x: INV(a)):<> ssize_t // castfn cast2sint {a:t0p} (x: INV(a)):<> sint castfn cast2usint {a:t0p} (x: INV(a)):<> usint // castfn cast2intptr {a:t0p} (x: INV(a)):<> intptr castfn cast2uintptr {a:t0p} (x: INV(a)):<> uintptr // (* ****** ****** *) praxi cast2void{a:vt0p}(x: INV(a)): void (* ****** ****** *) // praxi castview0 {to:view}{from:view} (pf: from): to praxi castview1 {to:view}{from:view} (pf: !INV(from)): to // (* ****** ****** *) // praxi castview2void {to:view}{from:view}(x: !INV(from) >> to): void praxi castvwtp2void {to:vt0p}{from:vt0p}(x: !INV(from) >> to): void // praxi castview2void_at {to:vt0p}{from:vt0p}{l:addr}(x: !INV(from@l) >> to@l): void // (* ****** ****** *) fun{} int2ptr (i: int): ptr and ptr2int (p: ptr): int (* ****** ****** *) // // HX: these are popular ones: // castfn list_vt2t {a:t0p}{n:int} (xs: !list_vt(INV(a), n)):<> list(a, n) // end of [list_vt2t] castfn arrayptr2ref {a:vt0p}{n:int} (x: !arrayptr (INV(a), n)):<> arrayref(a, n) // end of [arrayptr2ref] castfn strptr2string{l:agz}(x: !strptr(l)):<> String0 castfn strptr2stropt{l:addr}(x: !strptr(l)):<> Stropt0 castfn strnptr2string{l:addr}{n:nat}(x: !strnptr(l, n)):<> string(n) (* ****** ****** *) // // HX: only if you know what you are doing ... // symintr ptr_vtake // castfn ptr0_vtake {a:vt0p} ( p0: ptr ) :<> [l:addr] (a@l, a@l - void | ptr(l)) castfn ptr1_vtake {a:vt0p}{l:addr} (p0: ptr(l)):<> (a@l, a@l - void | ptr(l)) // overload ptr_vtake with ptr0_vtake of 0 overload ptr_vtake with ptr1_vtake of 10 // (* ****** ****** *) castfn ref_vtake {a:vt0p} {l:addr} ( ref: ref(a) ) :<> [ l:addr ] (a@l, a@l - void | ptr(l)) // end of [ref_vtake] (* ****** ****** *) praxi vtakeout_void{v:view}(pf: !v): vtakeout0(v) castfn vttakeout_void{a:vt0p}(x0: !a):<> vttakeout0(a) (* ****** ****** *) // // HX: only if you know what you are doing ... // fun{a:vt0p} ptr0_get(p: ptr):<> (a) fun{a:vt0p} ptr1_get(p: Ptr1):<> (a) // fun{a:vt0p} ptr0_set(p: ptr, x: INV(a)): void fun{a:vt0p} ptr1_set(p: Ptr1, x: INV(a)): void // fun{a:vt0p} ptr0_exch(p: ptr, x: &INV(a) >> a): void fun{a:vt0p} ptr1_exch(p: Ptr1, x: &INV(a) >> a): void // fun{a:vt0p} ptr0_intch(p1: ptr, p2: ptr): void fun{a:vt0p} ptr1_intch(p1: Ptr1, p2: Ptr1): void // (* ****** ****** *) // fun{a:vt0p} ptr0_getinc(p: &ptr >> _): (a) fun{a:vt0p} ptr1_getinc{l:addr}(p: &ptr(l) >> ptr(l+sizeof(a))): (a) // fun{a:vt0p} ptr0_setinc(p: &ptr >> _, x: a): void fun{a:vt0p} ptr1_setinc{l:addr}(p: &ptr(l) >> ptr(l+sizeof(a)), x: a): void // (* ****** ****** *) // fun{a:vt0p} ptr0_get_at_int(p: ptr, i: int):<> a fun{a:vt0p} ptr0_set_at_int(p: ptr, i: int, x: a): void // fun{a:vt0p} ptr0_get_at_size(p: ptr, i: size_t):<> a fun{a:vt0p} ptr0_set_at_size(p: ptr, i: size_t, x: a): void // symintr ptr0_get_at symintr ptr0_set_at // overload ptr0_get_at with ptr0_get_at_int overload ptr0_set_at with ptr0_set_at_int overload ptr0_get_at with ptr0_get_at_size overload ptr0_set_at with ptr0_set_at_size // (* ****** ****** *) // // HX-2012-06: // generic ops on numbers: +=, -=, *=, /=, %= // fun{a:t0p} ptr0_addby(p: ptr, x: a): void // !p += x fun{a:t0p} ptr1_addby(p: Ptr1, x: a): void // !p += x // fun{a:t0p} ptr0_subby(p: ptr, x: a): void // !p -= x fun{a:t0p} ptr1_subby(p: Ptr1, x: a): void // !p -= x // fun{a:t0p} ptr0_mulby(p: ptr, x: a): void // !p *= x fun{a:t0p} ptr1_mulby(p: Ptr1, x: a): void // !p *= x // fun{a:t0p} ptr0_divby(p: ptr, x: a): void // !p /= x fun{a:t0p} ptr1_divby(p: Ptr1, x: a): void // !p /= x // fun{a:t0p} ptr0_modby(p: ptr, x: a): void // !p %= x fun{a:t0p} ptr1_modby(p: Ptr1, x: a): void // !p %= x // (* ****** ****** *) fun {a:vt0p} ptr1_list_next(p: Ptr1): Ptr0 // HX: &(p->next) (* ****** ****** *) // // HX: only if you know what you are doing ... // castfn ptr2cptr{a:vt0p}{l:addr}(p: ptr(l)):<> cptr(a, l) // (* ****** ****** *) // castfn cptr_vtake {a:vt0p}{l:agz} ( cp: cptr(INV(a), l) ) :<> (a@l, a@l - void | ptr l) // end of [cptr_vtake] // fun {a:vt0p} cptr_get(cp: cPtr1(INV(a))):<> a fun {a:vt0p} cptr_set (cp: cPtr1(INV(a)), x: a): void fun {a:vt0p} cptr_exch (cp: cPtr1(INV(a)), xr: &a >> a): void // (* overload .get with cptr_get overload .set with cptr_set overload .exch with cptr_exch *) // (* ****** ****** *) fun{} string_get_at(src: string, i: intGte(0)): char (* ****** ****** *) (* end of [unsafe.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/list.sats0000644000175000017500000004634713431250607020761 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: February, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/list.atxt ** Time of generation: Thu Feb 14 11:29:41 2019 *) (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) #if(0) // // HX: // these declarations // are available in [basic_dyn.sats] // datatype list_t0ype_int_type (a:t@ype+, int) = // // t@ype+: covariant // | list_nil(a, 0) of ((*void*)) | {n:int | n >= 0} list_cons(a, n+1) of (a, list_t0ype_int_type(a, n)) // end of [list_t0ype_int_type] // stadef list = list_t0ype_int_type // typedef List(a:t0p) = [n:int] list(a, n) typedef List0(a:t0p) = [n:int | n >= 0] list(a, n) typedef List1(a:t0p) = [n:int | n >= 1] list(a, n) typedef listLt (a:t0p, n:int) = [k:nat | k < n] list(a, k) typedef listLte (a:t0p, n:int) = [k:nat | k <= n] list(a, k) typedef listGt (a:t0p, n:int) = [k:int | k > n] list(a, k) typedef listGte (a:t0p, n:int) = [k:int | k >= n] list(a, k) typedef listBtw (a:t0p, m:int, n:int) = [k:int | m <= k; k < n] list(a, k) typedef listBtwe (a:t0p, m:int, n:int) = [k:int | m <= k; k <= n] list(a, k) // #endif (* ****** ****** *) #define nil list_nil #define cons list_cons (* ****** ****** *) exception ListSubscriptExn of () (* // fun ListSubscriptExn():<> exn = "mac#%ListSubscriptExn_make" fun isListSubscriptExn(x: !exn):<> bool = "mac#%isListSubscriptExn" // macdef ifListSubscriptExn {tres}(exn, body) = ( let val x = ,(exn) in ( // if isListSubscriptExn(x) then let prval () = __vfree_exn(x) in ,(body) end else $raise (x) // ) : tres // end of [if] end (* end of [let] *) ) // end of [ifListSubscriptExn] *) (* ****** ****** *) prfun lemma_list_param {x:t0p}{n:int} (xs: list(INV(x), n)): [n >= 0] void // end of [lemma_list_param] (* ****** ****** *) castfn list_cast {x:t0p}{n:int} (xs: list(INV(x), n)):<> list(x, n) // end of [list_cast] (* ****** ****** *) // castfn list_vt2t {x:t0p}{n:int} (xs: list_vt(INV(x), n)):<> list(x, n) castfn list_of_list_vt {x:t0p}{n:int} (xs: list_vt(INV(x), n)): list(x, n) // (* ****** ****** *) #define list_sing(x) list_cons(x, list_nil()) #define list_pair(x1, x2) list_cons(x1, list_cons(x2, list_nil())) (* ****** ****** *) // fun{a:t0p} list_tuple_0(): list(a, 0) // fun{a:t0p} list_tuple_1(x0: a): list(a, 1) fun{a:t0p} list_tuple_2(x0: a, x1: a): list(a, 2) fun{a:t0p} list_tuple_3(x0: a, x1: a, x2: a): list(a, 3) // fun{a:t0p} list_tuple_4 (x0: a, x1: a, x2: a, x3: a): list(a, 4) fun{a:t0p} list_tuple_5 (x0: a, x1: a, x2: a, x3: a, x4: a): list(a, 5) fun{a:t0p} list_tuple_6 (x0: a, x1: a, x2: a, x3: a, x4: a, x5: a): list(a, 6) // (* ****** ****** *) // symintr list_tuple // overload list_tuple with list_tuple_0 overload list_tuple with list_tuple_1 overload list_tuple with list_tuple_2 overload list_tuple with list_tuple_3 overload list_tuple with list_tuple_4 overload list_tuple with list_tuple_5 overload list_tuple with list_tuple_6 // (* ****** ****** *) fun{x:t0p} list_make_sing(x: x): list_vt(x, 1) fun{x:t0p} list_make_pair(x1: x, x2: x): list_vt(x, 2) (* ****** ****** *) fun{x:t0p} list_make_elt {n:nat} (n: int n, x: x): list_vt(x, n) // end of [list_make_elt] (* ****** ****** *) fun{} list_make_intrange {l,r:int | l <= r} (l: int l, r: int r): list_vt(intBtw(l, r), r-l) // end of [list_make_intrange] (* ****** ****** *) fun {a:vt0p} list_make_array {n:int} ( A: &(@[INV(a)][n]) >> @[a?!][n], n: size_t(n) ) : list_vt(a, n) // endfun (* ****** ****** *) // symintr list // fun {a:vt0p} list_make_arrpsz {n:int} (psz: arrpsz(INV(a), n)): list_vt(a, n) // overload list with list_make_arrpsz // (* ****** ****** *) // fun{x:t0p} print_list(xs: List(INV(x))): void fun{x:t0p} prerr_list(xs: List(INV(x))): void // fun{x:t0p} fprint_list(out: FILEref, xs: List(INV(x))): void fun{x:t0p} fprint_list_sep (out: FILEref, xs: List(INV(x)), sep: string): void // end of [fprint_list_sep] // fun{} fprint_list$sep(out: FILEref): void // (* ****** ****** *) fun{x:t0p} fprint_listlist_sep ( out: FILEref , xss: List(List(INV(x))), sep1: string, sep2: string ) : void // end of [fprint_listlist_sep] (* ****** ****** *) (* // // HX: for testing macdef // *) // (* // macdef fprintlst_mac {T:t@ype} (fpr, out, xs0, sep) = let // val out = ,(out) val xs0 = ,(xs0); val sep = ,(sep) // fun loop ( xs: List(T), i: int ) : void = case+ xs of | list_nil () => ((*void*)) // list_nil | list_cons (x, xs) => let val () = if i > 0 then fprint_string(out, sep) // end of [if] val () = ,(fpr)(out, x) in loop (xs, i+1) end // end of [list_cons] // in loop(xs0, 0) end // end of [fprintlst_mac] *) // (* ****** ****** *) // fun{} list_is_nil {x:t0p}{n:int}(xs: list(x, n)):<> bool(n==0) fun{} list_is_cons {x:t0p}{n:int}(xs: list(x, n)):<> bool(n > 0) // fun{x:t0p} list_is_sing {n:int}(xs: list(INV(x), n)):<> bool(n == 1) fun{x:t0p} list_is_pair {n:int}(xs: list(INV(x), n)):<> bool(n == 2) // fun{x:t0p} list_isnot_sing {n:int}(xs: list(INV(x), n)):<> bool(n != 1) fun{x:t0p} list_isnot_pair {n:int}(xs: list(INV(x), n)):<> bool(n != 2) // (* ****** ****** *) fun{x:t0p} list_head{n:pos}(xs: list(INV(x), n)):<> (x) fun{x:t0p} list_head_exn{n:int}(xs: list(INV(x), n)): (x) (* ****** ****** *) fun{x:t0p} list_tail{n:pos} (xs: SHR(list(INV(x), n))):<> list(x, n-1) fun{x:t0p} list_tail_exn{n:int} (xs: SHR(list(INV(x), n))): list(x, n-1) (* ****** ****** *) fun{x:t0p} list_last{n:pos} (xs: list(INV(x), n)):<> (x) fun{x:t0p} list_last_exn{n:int} (xs: list(INV(x), n)): (x) (* ****** ****** *) // fun{ x:t0p } list_nth{n:int} (list(INV(x), n), natLt(n)):<> (x) fun{x:t0p} list_nth_opt (xs: List(INV(x)), i: intGte(0)):<> Option_vt(x) // fun{x:t0p} list_get_at{n:int} (list(INV(x), n), natLt(n)):<> (x) fun{x:t0p} list_get_at_opt (xs: List(INV(x)), i: intGte(0)):<> Option_vt(x) // (* ****** ****** *) // fun{x:t0p} list_fset_at{n:nat} (list(INV(x), n), natLt(n), x):<> list(x, n) fun{x:t0p} list_fexch_at{n:nat} (list(INV(x), n), natLt(n), x):<> (list(x, n), x) // (* ****** ****** *) fun{x:t0p} list_insert_at {n:int} ( xs: SHR(list(INV(x), n)), i: natLte(n), x: x ) :<> list(x, n+1) // end of [list_insert_at] fun{x:t0p} list_remove_at {n:int} ( xs: SHR(list(INV(x), n)), i: natLt(n) ) :<> list(x, n-1) // end of [list_remove_at] fun{x:t0p} list_takeout_at {n:int} ( xs: SHR(list(INV(x), n)), i: natLt(n), x: &(x)? >> x ) : list(x, n-1) // end of [list_takeout_at] (* ****** ****** *) fun{x:t0p} list_length {n:int} (xs: list(INV(x), n)):<> int(n) // end of [list_length] (* ****** ****** *) // fun{x:t0p} list_length_gte {n1,n2:int} (xs: list(INV(x), n1), n2: int(n2)): bool(n1 >= n2) fun{x:t0p} list_length_compare {n1,n2:int} (xs: list(INV(x), n1), n2: int(n2)): int(sgn(n1-n2)) // overload >= with list_length_gte overload compare with list_length_compare // (* ****** ****** *) fun {x:t0p} list_copy {n:int} (xs: list(INV(x), n)): list_vt(x, n) // end of [list_copy] (* ****** ****** *) // fun {a:t0p} list_append {m,n:int} ( xs: NSH(list(INV(a), m)), ys: SHR(list(a, n)) ) :<> list(a, m+n) // end of [list_append] // (* ****** ****** *) fun {a:t0p} list_append1_vt {i,j:int} ( xs: list_vt(INV(a), i), ys: SHR(list(a, j)) ) : list(a, i+j) // endfun fun {a:t0p} list_append2_vt {i,j:int} ( xs: NSH(list(INV(a), i)), ys: list_vt(a, j) ) : list_vt(a, i+j) // endfun (* ****** ****** *) // fun{ x:t0p } list_extend{n:int} (xs: list(INV(x), n), x: x): list_vt(x, n+1) // end of [list_extend] // macdef list_snoc (xs, x) = list_extend (,(xs), ,(x)) // (* ****** ****** *) // fun {a:t0p} mul_int_list {m,n:int | m >= 0} (m: int(m), xs: list(a, n)): list_vt(a, m*n) // (* ****** ****** *) fun{x:t0p} list_reverse {n:int} (xs: list(INV(x), n)): list_vt(x, n) // end of [list_reverse] (* ****** ****** *) // fun{a:t0p} list_reverse_append {m,n:int} (xs: NSH(list(INV(a), m)), ys: SHR(list(a, n))):<> list(a, m+n) // end of [list_reverse_append] // fun{a:t0p} list_reverse_append1_vt {m,n:int} (xs: list_vt(INV(a), m), ys: SHR(list(a, n))): list(a, m+n) // end of [list_reverse_append1_vt] fun{a:t0p} list_reverse_append2_vt {m,n:int} (xs: NSH(list(INV(a), m)), ys: list_vt(a, n)): list_vt(a, m+n) // end of [list_reverse_append2_vt] // macdef list_revapp = list_reverse_append macdef list_revapp1_vt = list_reverse_append1_vt macdef list_revapp2_vt = list_reverse_append2_vt // (* ****** ****** *) fun{x:t0p} list_concat(xss: List(List(INV(x)))): List0_vt(x) (* ****** ****** *) // fun{ x:t0p } list_take {n:int}{i:nat | i <= n} (xs: list(INV(x), n), i: int i): list_vt(x, i) fun{ x:t0p } list_take_exn {n:int}{i:nat} // it may raise [ListSubscriptException] (xs: list(INV(x), n), i: int i): [i <= n] list_vt(x, i) // (* ****** ****** *) // fun{ x:t0p } list_drop {n:int}{i:nat | i <= n} (xs: SHR(list(INV(x), n)), i: int i):<> list(x, n-i) fun{ x:t0p } list_drop_exn {n:int}{i:nat} // it may raise [ListSubscriptException] (xs: SHR(list(INV(x), n)), i: int i): [i <= n] list(x, n-i) // (* ****** ****** *) fun{ x:t0p } list_split_at {n:int}{i:nat | i <= n} (xs: SHR(list(INV(x), n)), i: int i): (list_vt(x, i), list(x, n-i)) // end of [list_split_at] (* ****** ****** *) // fun{x:t0p} list_exists$pred(x: x):<> bool fun{x:t0p} list_exists(xs: List(INV(x))):<> bool // (* ****** ****** *) // fun{x:t0p} list_forall$pred(x: x):<> bool fun{x:t0p} list_forall(xs: List(INV(x))):<> bool // (* ****** ****** *) // fun{x:t0p} list_equal$eqfn(x1: x, x2: x):<> bool fun{x:t0p} list_equal(xs1: List(INV(x)), xs2: List(x)):<> bool // (* ****** ****** *) // fun{x:t0p} list_compare$cmpfn(x1: x, x2: x):<> int fun{x:t0p} list_compare(xs1: List(INV(x)), xs2: List(x)):<> int // (* ****** ****** *) // fun{ x:t0p } list_find{n:int} ( xs: list(INV(x), n), x0: &(x)? >> opt(x, i >= 0) ) : #[i:int | i < n] int(i) // end-of-function // fun{x:t0p} list_find$pred (x):<> bool // fun{x:t0p} list_find_exn (xs: List(INV(x))): x fun{x:t0p} list_find_opt (xs: List(INV(x))):<> Option_vt(x) // (* ****** ****** *) // fun{ key,itm:t0p } list_assoc ( List@(INV(key), itm), key, x: &itm? >> opt(itm, b) ) :<> #[b:bool] bool(b) // end of [list_assoc] // fun{key:t0p} list_assoc$eqfn (k1: key, k2: key):<> bool // fun{ key,itm:t0p } list_assoc_exn (kxs: List @(INV(key), itm), k: key): itm fun{ key,itm:t0p } list_assoc_opt (kxs: List @(INV(key), itm), k: key):<> Option_vt(itm) // (* ****** ****** *) // fun{ x:t0p } list_filter{n:int} (xs: list(INV(x), n)): listLte_vt(x, n) // fun{x:t0p} list_filter$pred (x): bool // (* fun{ x:t0p } list_filter_funenv {v:view}{vt:viewtype}{n:int}{fe:eff} ( pfv: !v | xs: list(INV(x), n) , f: (!v | x, !vt) - bool, env: !vt ) : listLte_vt(x, n) // end-of-function *) // (* ****** ****** *) fun{ x:t0p } list_labelize{n:int} (xs: list(INV(x), n)): list_vt(@(int, x), n) // end of [list_labelize] (* ****** ****** *) // fun{x:t0p} list_app (xs: List(INV(x))): void // fun{x:t0p} list_app$fwork (x): void // (* ****** ****** *) // (* fun{ x:t0p } list_app_funenv {v:view}{vt:viewtype}{n:int}{fe:eff} ( pfv: !v | xs: list(INV(x), n) , f: (!v | x, !vt) - void, env: !vt ) : void // end of [list_app_funenv] *) // (* ****** ****** *) // fun{ x:t0p}{y:vt0p } list_map{n:int} (xs: list(INV(x), n)): list_vt(y, n) // end of [list_map] // fun{x:t0p}{y:vt0p} list_map$fopr(x: x): (y) // (* ****** ****** *) // (* fun{ x:t0p}{y:vt0p } list_map_funenv {v:view}{vt:viewtype}{n:int}{fe:eff} ( pfv: !v | xs: list(INV(x), n) , fopr: (!v | x, !vt) - y, env: !vt ) : list_vt(y, n) // end of [list_map_funenv] *) // (* ****** ****** *) // fun {x:t0p} {y:vt0p} list_imap{n:int} (xs: list(INV(x), n)): list_vt(y, n) // fun {x:t0p} {y:vt0p} list_imap$fopr(i: intGte(0), x: x): (y) // (* ****** ****** *) // fun {x:t0p} {y:vt0p} list_mapopt{n:int} (xs: list(INV(x), n)): listLte_vt(y, n) // fun {x:t0p} {y:vt0p} list_mapopt$fopr(x: x): Option_vt(y) // (* fun{ x:t0p}{y:t0p } list_mapopt_funenv {v:view}{vt:viewtype}{n:int}{fe:eff} ( pfv: !v | xs: list(INV(x), n) , f: (!v | x, !vt) - Option_vt(y), env: !vt ) : listLte_vt(y, n) // end of [list_mapopt_funenv] *) // (* ****** ****** *) fun{ x1,x2:t0p}{y:vt0p } list_map2{n1,n2:int} ( xs1: list(INV(x1), n1) , xs2: list(INV(x2), n2) ) : list_vt(y, min(n1,n2)) // end of [list_map2] // fun{ x1,x2:t0p}{y:vt0p } list_map2$fopr(x1: x1, x2: x2): (y) // (* fun{ x1,x2:t0p}{y:t0p } list_map2_funenv {v:view}{vt:viewtype}{n1,n2:int}{fe:eff} ( pfv: !v | xs1: list(INV(x1), n1) , xs2: list(INV(x2), n2) , f: (!v | x1, x2, !vt) - y, env: !vt ) : list_vt(y, min(n1,n2)) // end of [list_map2_funenv] *) // (* ****** ****** *) // fun{ a:vt0p } list_tabulate{n:nat}(n: int(n)): list_vt(a, n) // fun{a:vt0p} list_tabulate$fopr(index: intGte(0)): (a) // (* ****** ****** *) // fun{ x,y:t0p } list_zip{m,n:int} ( xs: list(INV(x), m) , ys: list(INV(y), n) ) : list_vt((x, y), min(m,n)) // fun {x,y:t0p} {res:vt0p} list_zipwith{m,n:int} ( xs: list(INV(x), m) , ys: list(INV(y), n) ) : list_vt(res, min(m,n)) // endfun // fun {x,y:t0p} {res:vt0p} list_zipwith$fopr(x: x, y: y): (res) // (* ****** ****** *) // fun {x,y:t0p} list_cross {m,n:int} ( xs: list(INV(x), m) , ys: list(INV(y), n) ) : list_vt((x, y), m*n) // endfun // fun {x,y:t0p} {res:vt0p} list_crosswith {m,n:int} ( xs: list(INV(x), m) , ys: list(INV(y), n) ) : list_vt(res, m*n) // end of [list_crosswith] // fun {x,y:t0p} {res:vt0p} list_crosswith$fopr(x: x, y: y): (res) // (* ****** ****** *) fun {x:t0p} list_foreach(xs: List(INV(x))): void fun {x:t0p} {env:vt0p} list_foreach_env (xs: List(INV(x)), env: &(env) >> _): void // fun {x:t0p} {env:vt0p} list_foreach$cont (x: x, env: &env): bool fun {x:t0p} {env:vt0p} list_foreach$fwork (x: x, env: &(env) >> _): void // (* ****** ****** *) // fun {x:t0p} list_foreach_funenv {v:view}{env:viewtype}{fe:eff} ( pf: !v | xs: List(INV(x)) , fwork: (!v | x, !env) - void, env: !env ) : void // end of [list_foreach_funenv] // (* ****** ****** *) // fun{ x,y:t0p } list_foreach2 (xs: List(INV(x)), ys: List(INV(y))): void // fun{ x,y:t0p}{env:vt0p } list_foreach2_env (xs: List(INV(x)), ys: List(INV(y)), env: &(env) >> _): void // fun{ x,y:t0p}{env:vt0p } list_foreach2$cont(x: x, y: y, env: &env): bool fun{ x,y:t0p}{env:vt0p } list_foreach2$fwork(x: x, y: y, env: &(env) >> _): void // (* ****** ****** *) fun{ x:t0p } list_iforeach{n:int} (xs: list(INV(x), n)): natLte(n) fun{ x:t0p}{env:vt0p } list_iforeach_env{n:int} (xs: list(INV(x), n), env: &(env) >> _): natLte(n) // fun{ x:t0p}{env:vt0p } list_iforeach$cont(i: intGte(0), x: x, env: &env): bool fun{ x:t0p}{env:vt0p } list_iforeach$fwork(i: intGte(0), x: x, env: &(env) >> _): void // (* ****** ****** *) fun{ x:t0p // type for elements } list_iforeach_funenv {v:view}{vt:viewtype}{n:int}{fe:eff} ( pfv: !v | xs: list(INV(x), n) , fwork: (!v | natLt(n), x, !vt) - void, env: !vt ) : int (n) // end of [list_iforeach_funenv] (* ****** ****** *) fun{ x,y:t0p } list_iforeach2{m,n:int} ( xs: list(INV(x), m), ys: list(INV(y), n) ) : natLte(min(m,n)) // end-of-function fun{ x,y:t0p}{env:vt0p } list_iforeach2_env{m,n:int} ( xs: list(INV(x), m), ys: list(INV(y), n), env: &(env) >> _ ) : natLte(min(m,n)) // end-of-function // fun{ x,y:t0p}{env:vt0p } list_iforeach2$cont (i: intGte(0), x: x, y: y, env: &env): bool fun{ x,y:t0p}{env:vt0p } list_iforeach2$fwork (i: intGte(0), x: x, y: y, env: &(env) >> _): void // (* ****** ****** *) // fun{ res:vt0p}{x:t0p } list_foldleft (xs: List(INV(x)), ini: res): res fun{ res:vt0p}{x:t0p } list_foldleft$fopr(acc: res, x: x): res // (* ****** ****** *) // fun{ x:t0p}{res:vt0p } list_foldright (xs: List(INV(x)), snk: res): res fun{ x:t0p}{res:vt0p } list_foldright$fopr(x: x, acc: res): res // (* ****** ****** *) // // HX-2017-02-19: // Using [gcompare_val_val] to check // fun {a:t0p} list_is_ordered(xs: List(INV(a))): bool // (* ****** ****** *) // fun{a:t0p} list_mergesort{n:int} (xs: list(INV(a), n)): list_vt(a, n) // fun{a:t0p} list_mergesort$cmp(x1: a, x2: a):<> int (* sign *) // (* ****** ****** *) fun{ a:t0p } list_mergesort_fun {n:int} ( xs: list(INV(a), n), cmp: cmpval (a) ) : list_vt(a, n) // end-of-function fun{ a:t0p } list_mergesort_cloref {n:int} ( xs: list(INV(a), n), cmp: (a, a) - int ) : list_vt(a, n) // end of [list_mergesort_cloref] (* ****** ****** *) // fun{ a:t0p } list_quicksort{n:int} (xs: list(INV(a), n)) : list_vt(a, n) // fun{a:t0p} list_quicksort$cmp(x1: a, x2: a):<> int (* sign *) // (* ****** ****** *) fun{ a:t0p } list_quicksort_fun {n:int} ( xs: list(INV(a), n), cmp: cmpval (a) ) : list_vt(a, n) // end-of-function fun{ a:t0p } list_quicksort_cloref {n:int} ( xs: list(INV(a), n), cmp: (a, a) - int ) : list_vt(a, n) // end of [list_quicksort_cloref] (* ****** ****** *) // fun{a:t0p} streamize_list_elt (xs: List(INV(a))): stream_vt(a) // fun{a:t0p} streamize_list_choose2 (xs: List(INV(a))): stream_vt(@(a, a)) // (* ****** ****** *) // fun {a,b:t0p} streamize_list_zip (List(INV(a)), List(INV(b))): stream_vt(@(a, b)) // fun {a,b:t0p} streamize_list_cross (List(INV(a)), List(INV(b))): stream_vt(@(a, b)) // (* ****** ****** *) // // HX: overloading // for certain symbols // (* ****** ****** *) // overload = with list_equal // overload + with list_append // (* overload * with mul_int_list *) // overload [] with list_get_at // overload iseqz with list_is_nil overload isneqz with list_is_cons // overload .head with list_head overload .tail with list_tail // overload length with list_length // overload copy with list_copy // overload print with print_list overload prerr with prerr_list overload fprint with fprint_list overload fprint with fprint_list_sep // (* ****** ****** *) overload reverse with list_reverse (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/char.sats0000644000175000017500000003315313431250607020712 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/char.atxt ** Time of generation: Thu Feb 14 11:29:38 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2011 *) (* ****** ****** *) // praxi lemma_char_size ( // argumentless ) : [sizeof(char)==sizeof(byte)] void praxi lemma_schar_size ( // argumentless ) : [sizeof(schar)==sizeof(byte)] void praxi lemma_uchar_size ( // argumentless ) : [sizeof(uchar)==sizeof(byte)] void // (* ****** ****** *) // castfn char2schar0(c: char):<> schar castfn schar2char0(c: schar):<> char // castfn char2uchar0(c: char):<> uchar castfn uchar2char0(c: uchar):<> char // (* ****** ****** *) // fun int2char0(i: int):<> char = "mac#%" fun int2schar0(i: int):<> schar = "mac#%" fun int2uchar0(i: int):<> uchar = "mac#%" // fun uint2uchar0(u: uint):<> uchar = "mac#%" // (* ****** ****** *) fun char2int0(c: char):<> int = "mac#%" fun schar2int0(c: schar):<> int = "mac#%" fun uchar2int0(c: uchar):<> int = "mac#%" (* ****** ****** *) fun char2uint0(c: char):<> uint = "mac#%" fun schar2uint0(c: schar):<> uint = "mac#%" fun uchar2uint0(c: uchar):<> uint = "mac#%" (* ****** ****** *) fun char2u2int0(c: char):<> int = "mac#%" fun char2u2uint0(c: char):<> uint = "mac#%" (* ****** ****** *) // fun char0_iseqz(c: char):<> bool = "mac#%" fun char0_isneqz(c: char):<> bool = "mac#%" // overload iseqz with char0_iseqz of 0 overload isneqz with char0_isneqz of 0 // (* ****** ****** *) // fun add_char0_int0 (c: char, i: int):<> char = "mac#%" fun sub_char0_int0 (c: char, i: int):<> char = "mac#%" fun sub_char0_char0 (c1: char, c2: char):<> int = "mac#%" // overload + with add_char0_int0 of 0 overload - with sub_char0_int0 of 0 overload - with sub_char0_char0 of 0 // (* ****** ****** *) fun lt_char0_char0 (c1: char, c2: char):<> bool = "mac#%" overload < with lt_char0_char0 of 0 fun lte_char0_char0 (c1: char, c2: char):<> bool = "mac#%" overload <= with lte_char0_char0 of 0 fun gt_char0_char0 (c1: char, c2: char):<> bool = "mac#%" overload > with gt_char0_char0 of 0 fun gte_char0_char0 (c1: char, c2: char):<> bool = "mac#%" overload >= with gte_char0_char0 of 0 fun eq_char0_char0 (c1: char, c2: char):<> bool = "mac#%" overload = with eq_char0_char0 of 0 fun neq_char0_char0 (c1: char, c2: char):<> bool = "mac#%" overload != with neq_char0_char0 of 0 overload <> with neq_char0_char0 of 0 fun compare_char0_char0 (c1: char, c2: char):<> int = "mac#%" overload compare with compare_char0_char0 of 0 (* ****** ****** *) // castfn g0ofg1_char(c: Char):<> char castfn g1ofg0_char(c: char):<> Char // overload g0ofg1 with g0ofg1_char // index-erasing overload g1ofg0 with g1ofg0_char // index-inducing // (* ****** ****** *) // castfn char2schar1 {c:int}(c: char(c)):<> schar(c) castfn schar2char1 {c:int}(c: schar(c)):<> char(c) // castfn char2uchar1 {c:int}(c: char(c)):<> uchar(i2u8(c)) castfn uchar2char1 {c:int}(c: uchar(c)):<> char(u2i8(c)) // (* ****** ****** *) // fun char2int1 {c:int}(c: char(c)):<> int(c) = "mac#%" fun schar2int1 {c:int}(c: schar(c)):<> int(c) = "mac#%" fun uchar2int1 {c:int}(c: uchar(c)):<> int(c) = "mac#%" // (* ****** ****** *) // fun char1_iseqz {c:int}(c: char(c)):<> bool(c == 0) = "mac#%" fun char1_isneqz {c:int}(c: char(c)):<> bool(c != 0) = "mac#%" // overload iseqz with char1_iseqz of 10 overload isneqz with char1_isneqz of 10 // (* ****** ****** *) fun lt_char1_char1 {c1,c2:int} (c1: char(c1), c2: char(c2)):<> bool(c1 < c2) = "mac#%" overload < with lt_char1_char1 of 20 fun lte_char1_char1 {c1,c2:int} (c1: char(c1), c2: char(c2)):<> bool(c1 <= c2) = "mac#%" overload <= with lte_char1_char1 of 20 fun gt_char1_char1 {c1,c2:int} (c1: char(c1), c2: char(c2)):<> bool(c1 > c2) = "mac#%" overload > with gt_char1_char1 of 20 fun gte_char1_char1 {c1,c2:int} (c1: char(c1), c2: char(c2)):<> bool(c1 >= c2) = "mac#%" overload >= with gte_char1_char1 of 20 fun eq_char1_char1 {c1,c2:int} (c1: char(c1), c2: char(c2)):<> bool(c1 == c2) = "mac#%" overload = with eq_char1_char1 of 20 fun neq_char1_char1 {c1,c2:int} (c1: char(c1), c2: char(c2)):<> bool(c1 != c2) = "mac#%" overload != with neq_char1_char1 of 20 overload <> with neq_char1_char1 of 20 fun compare_char1_char1 {c1,c2:int} (c1: char c1, c2: char c2) :<> int(c1-c2) = "mac#%" overload compare with compare_char1_char1 of 20 (* ****** ****** *) // fun eq_char0_int0 : (char, int) - bool = "mac#%" fun eq_int0_char0 : (int, char) - bool = "mac#%" overload = with eq_char0_int0 of 0 overload = with eq_int0_char0 of 0 fun neq_char0_int0 : (char, int) - bool = "mac#%" fun neq_int0_char0 : (int, char) - bool = "mac#%" overload != with neq_char0_int0 of 0 overload <> with neq_char0_int0 of 0 overload != with neq_int0_char0 of 0 overload <> with neq_int0_char0 of 0 // fun compare_char0_int0 : (char, int) - int = "mac#%" fun compare_int0_char0 : (int, char) - int = "mac#%" overload compare with compare_char0_int0 overload compare with compare_int0_char0 // (* ****** ****** *) // // unsigned characters // (* ****** ****** *) fun lt_uchar0_uchar0 (c1: uchar, c2: uchar):<> bool = "mac#%" overload < with lt_uchar0_uchar0 of 0 fun lte_uchar0_uchar0 (c1: uchar, c2: uchar):<> bool = "mac#%" overload <= with lte_uchar0_uchar0 of 0 fun gt_uchar0_uchar0 (c1: uchar, c2: uchar):<> bool = "mac#%" overload > with gt_uchar0_uchar0 of 0 fun gte_uchar0_uchar0 (c1: uchar, c2: uchar):<> bool = "mac#%" overload >= with gte_uchar0_uchar0 of 0 fun eq_uchar0_uchar0 (c1: uchar, c2: uchar):<> bool = "mac#%" overload = with eq_uchar0_uchar0 of 0 fun neq_uchar0_uchar0 (c1: uchar, c2: uchar):<> bool = "mac#%" overload != with neq_uchar0_uchar0 of 0 overload <> with neq_uchar0_uchar0 of 0 fun compare_uchar0_uchar0 (c1: uchar, c2: uchar):<> int = "mac#%" overload compare with compare_uchar0_uchar0 of 0 (* ****** ****** *) fun lt_uchar1_uchar1 {c1,c2:int} (c1: uchar(c1), c2: uchar(c2)) :<> bool(c1 < c2) = "mac#%" overload < with lt_uchar1_uchar1 of 20 fun lte_uchar1_uchar1 {c1,c2:int} (c1: uchar(c1), c2: uchar(c2)) :<> bool(c1 <= c2) = "mac#%" overload <= with lte_uchar1_uchar1 of 20 fun gt_uchar1_uchar1 {c1,c2:int} (c1: uchar(c1), c2: uchar(c2)) :<> bool(c1 > c2) = "mac#%" overload > with gt_uchar1_uchar1 of 20 fun gte_uchar1_uchar1 {c1,c2:int} (c1: uchar(c1), c2: uchar(c2)) :<> bool(c1 >= c2) = "mac#%" overload >= with gte_uchar1_uchar1 of 20 fun eq_uchar1_uchar1 {c1,c2:int} (c1: uchar(c1), c2: uchar(c2)) :<> bool(c1 == c2) = "mac#%" overload = with eq_uchar1_uchar1 of 20 fun neq_uchar1_uchar1 {c1,c2:int} (c1: uchar(c1), c2: uchar(c2)) :<> bool(c1 != c2) = "mac#%" overload != with neq_uchar1_uchar1 of 20 overload <> with neq_uchar1_uchar1 of 20 fun compare_uchar1_uchar1 {c1,c2:int} (c1: uchar c1, c2: uchar c2) :<> int(c1-c2) = "mac#%" overload compare with compare_uchar1_uchar1 of 20 (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) fun{tk:tk} g0int_of_char(c: char):<> g0int(tk) fun{tk:tk} g0int_of_schar(c: schar):<> g0int(tk) fun{tk:tk} g0int_of_uchar(c: uchar):<> g0int(tk) fun{tk:tk} g0uint_of_uchar(c: uchar):<> g0uint(tk) (* ****** ****** *) fun{tk:tk} g1int_of_char1 // c:int8 {c:int} (c: char(c)):<> g1int(tk, c) // end of [g1int_of_char1] fun{tk:tk} g1int_of_schar1 // c:int8 {c:int} (c: schar(c)):<> g1int(tk, c) // end of [g1int_of_schar1] fun{tk:tk} g1int_of_uchar1 // c:uint8 {c:int} (c: uchar(c)):<> g1int(tk, c) // end of [g1int_of_uchar1] (* ** HX: g1uint_of_schar1: schar -> int -> uint *) fun{tk:tk} g1uint_of_uchar1 {c:int} (c: uchar(c)):<> g1uint(tk, c) // end of [g1uint_of_uchar1] (* ****** ****** *) // // HX: // return is dynamically allocated // fun{} char2string(c: char):<> string fun{} char2strptr(c: char): Strptr1 // (* ****** ****** *) fun print_char(x: char): void = "mac#%" fun prerr_char(x: char): void = "mac#%" overload print with print_char overload prerr with prerr_char fun fprint_char : fprint_type (char) = "mac#%" overload fprint with fprint_char fun print_schar(x: schar): void = "mac#%" fun prerr_schar(x: schar): void = "mac#%" overload print with print_schar overload prerr with prerr_schar fun fprint_schar : fprint_type (schar) = "mac#%" overload fprint with fprint_schar fun print_uchar(x: uchar): void = "mac#%" fun prerr_uchar(x: uchar): void = "mac#%" overload print with print_uchar overload prerr with prerr_uchar fun fprint_uchar : fprint_type (uchar) = "mac#%" overload fprint with fprint_uchar (* ****** ****** *) fun isalpha_int(c: int):<> bool = "mac#%" fun isalpha_char(c: char):<> bool = "mac#%" // symintr isalpha overload isalpha with isalpha_int of 0 overload isalpha with isalpha_char of 0 // fun isalnum_int(c: int):<> bool = "mac#%" fun isalnum_char(c: char):<> bool = "mac#%" // symintr isalnum overload isalnum with isalnum_int of 0 overload isalnum with isalnum_char of 0 // fun isascii_int(c: int):<> bool = "mac#%" fun isascii_char(c: char):<> bool = "mac#%" // symintr isascii overload isascii with isascii_int of 0 overload isascii with isascii_char of 0 // fun isblank_int(c: int):<> bool = "mac#%" fun isblank_char(c: char):<> bool = "mac#%" // symintr isblank overload isblank with isblank_int of 0 overload isblank with isblank_char of 0 // fun isspace_int(c: int):<> bool = "mac#%" fun isspace_char(c: char):<> bool = "mac#%" // symintr isspace overload isspace with isspace_int of 0 overload isspace with isspace_char of 0 // fun iscntrl_int(c: int):<> bool = "mac#%" fun iscntrl_char(c: char):<> bool = "mac#%" // symintr iscntrl overload iscntrl with iscntrl_int of 0 overload iscntrl with iscntrl_char of 0 // fun isdigit_int(c: int):<> bool = "mac#%" fun isdigit_char(c: char):<> bool = "mac#%" // symintr isdigit overload isdigit with isdigit_int of 0 overload isdigit with isdigit_char of 0 // fun isxdigit_int(c: int):<> bool = "mac#%" fun isxdigit_char(c: char):<> bool = "mac#%" // symintr isxdigit overload isxdigit with isxdigit_int of 0 overload isxdigit with isxdigit_char of 0 // fun isgraph_int(c: int):<> bool = "mac#%" fun isgraph_char(c: char):<> bool = "mac#%" // symintr isgraph overload isgraph with isgraph_int of 0 overload isgraph with isgraph_char of 0 // fun isprint_int(c: int):<> bool = "mac#%" fun isprint_char(c: char):<> bool = "mac#%" // symintr isprint overload isprint with isprint_int of 0 overload isprint with isprint_char of 0 // fun ispunct_int(c: int):<> bool = "mac#%" fun ispunct_char(c: char):<> bool = "mac#%" // symintr ispunct overload ispunct with ispunct_int of 0 overload ispunct with ispunct_char of 0 // fun islower_int(c: int):<> bool = "mac#%" fun islower_char(c: char):<> bool = "mac#%" // symintr islower overload islower with islower_int of 0 overload islower with islower_char of 0 // fun isupper_int(c: int):<> bool = "mac#%" fun isupper_char(c: char):<> bool = "mac#%" // symintr isupper overload isupper with isupper_int of 0 overload isupper with isupper_char of 0 // (* ****** ****** *) fun toascii (c: int):<> int = "mac#%" (* ****** ****** *) symintr tolower fun tolower_int(c: int):<> int = "mac#%" fun tolower_char(c: char):<> char = "mac#%" overload tolower with tolower_int overload tolower with tolower_char symintr toupper fun toupper_int(c: int):<> int = "mac#%" fun toupper_char(c: char):<> char = "mac#%" overload toupper with toupper_int overload toupper with toupper_char (* ****** ****** *) fun int2digit (i: intBtw(0, 10)): char = "mac#%" fun int2xdigit (i: intBtw(0, 16)): char = "mac#%" fun int2xxdigit (i: intBtw(0, 16)): char = "mac#%" (* ****** ****** *) symintr c2uc overload c2uc with char2uchar0 of 0 overload c2uc with char2uchar1 of 10 symintr uc2c overload uc2c with uchar2char0 of 0 overload uc2c with uchar2char1 of 10 (* ****** ****** *) symintr char2i overload char2i with char2int0 of 0 symintr char2ui overload char2ui with char2uint0 of 0 symintr uchar2i overload uchar2i with uchar2int0 of 0 symintr uchar2ui overload uchar2ui with uchar2uint0 of 0 (* ****** ****** *) symintr char2u2i overload char2u2i with char2u2int0 of 0 symintr char2u2ui overload char2u2ui with char2u2uint0 of 0 (* ****** ****** *) // fun int2byte0(i: int): byte = "mac#%" fun byte2int0(b: byte):<> int = "mac#%" // fun uint2byte0(u: uint): byte = "mac#%" fun byte2uint0(b: byte):<> uint = "mac#%" // symintr byte2i overload byte2i with byte2int0 of 0 symintr i2byte overload i2byte with int2byte0 of 0 // symintr byte2ui overload byte2i with byte2uint0 of 0 symintr ui2byte overload i2byte with uint2byte0 of 0 // (* ****** ****** *) (* end of [char.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/list_vt.sats0000644000175000017500000003103213431250607021453 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: February, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/list_vt.atxt ** Time of generation: Thu Feb 14 11:29:41 2019 *) (* ****** ****** *) vtypedef RD(a:vt0p) = a // for commenting: read-only #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) #if(0) // // HX: these decls are available in [basic_dyn.sats] // datavtype list_vt0ype_int_vtype (a:vt@ype+, int) = // // vt@ype+: covariant // | list_vt_nil(a, 0) of ((*void*)) | {n:int | n >= 0} list_vt_cons(a, n+1) of (a, list_vt0ype_int_vtype(a, n)) // end of [list_vt0ype_int_vtype] // stadef list_vt = list_vt0ype_int_vtype // vtypedef List_vt(a:vt0p) = [n:int] list_vt(a, n) vtypedef List0_vt(a:vt0p) = [n:int | n >= 0] list_vt(a, n) vtypedef List1_vt(a:vt0p) = [n:int | n >= 1] list_vt(a, n) vtypedef listLt_vt (a:vt0p, n:int) = [k:nat | k < n] list_vt(a, k) vtypedef listLte_vt (a:vt0p, n:int) = [k:nat | k <= n] list_vt(a, k) vtypedef listGt_vt (a:vt0p, n:int) = [k:int | k > n] list_vt(a, k) vtypedef listGte_vt (a:vt0p, n:int) = [k:int | k >= n] list_vt(a, k) vtypedef listBtw_vt (a:vt0p, m:int, n:int) = [k:int | m <= k; k < n] list_vt(a, k) vtypedef listBtwe_vt (a:vt0p, m:int, n:int) = [k:int | m <= k; k <= n] list_vt(a, k) // #endif (* ****** ****** *) #define nil_vt list_vt_nil #define cons_vt list_vt_cons (* ****** ****** *) prfun lemma_list_vt_param {x:vt0p}{n:int} (xs: !list_vt(INV(x), n)): [n >= 0] void // end of [lemma_list_vt_param] (* ****** ****** *) castfn list_vt_cast {x:vt0p}{n:int} (xs: list_vt(INV(x), n)):<> list_vt(x, n) // end of [list_vt_cast] (* ****** ****** *) #define list_vt_sing(x) list_vt_cons(x, list_vt_nil()) #define list_vt_pair(x1, x2) list_vt_cons(x1, list_vt_cons (x2, list_vt_nil())) (* ****** ****** *) // fun{a:vt0p} list_vt_tuple_0(): list_vt(a, 0) // fun{a:vt0p} list_vt_tuple_1(x0: a): list_vt(a, 1) fun{a:vt0p} list_vt_tuple_2(x0: a, x1: a): list_vt(a, 2) fun{a:vt0p} list_vt_tuple_3(x0: a, x1: a, x2: a): list_vt(a, 3) // fun{a:vt0p} list_vt_tuple_4 (x0: a, x1: a, x2: a, x3: a): list_vt(a, 4) fun{a:vt0p} list_vt_tuple_5 (x0: a, x1: a, x2: a, x3: a, x4: a): list_vt(a, 5) fun{a:vt0p} list_vt_tuple_6 (x0: a, x1: a, x2: a, x3: a, x4: a, x5: a): list_vt(a, 6) // (* ****** ****** *) // symintr list_vt_tuple // overload list_vt_tuple with list_vt_tuple_0 overload list_vt_tuple with list_vt_tuple_1 overload list_vt_tuple with list_vt_tuple_2 overload list_vt_tuple with list_vt_tuple_3 overload list_vt_tuple with list_vt_tuple_4 overload list_vt_tuple with list_vt_tuple_5 overload list_vt_tuple with list_vt_tuple_6 // (* ****** ****** *) fun{x:vt0p} list_vt_make_sing (x: x): list_vt(x, 1) fun{x:vt0p} list_vt_make_pair (x1: x, x2: x): list_vt(x, 2) (* ****** ****** *) // fun{x:vt0p} print_list_vt(xs: !List_vt(INV(x))): void fun{x:vt0p} prerr_list_vt(xs: !List_vt(INV(x))): void // fun{x:vt0p} fprint_list_vt (out: FILEref, xs: !List_vt(INV(x))): void fun{} fprint_list_vt$sep (out: FILEref): void // fun{x:vt0p} fprint_list_vt_sep ( out: FILEref, xs: !List_vt(INV(x)), sep: NSH(string) ) : void // end of [fprint_list_vt_sep] // (* ****** ****** *) // fun{x:vt0p} list_vt_is_nil {n:int} (xs: !list_vt(INV(x), n)):<> bool (n==0) // fun{x:vt0p} list_vt_is_cons {n:int} (xs: !list_vt(INV(x), n)):<> bool (n > 0) // (* ****** ****** *) fun{x:vt0p} list_vt_is_sing {n:int} (xs: !list_vt(INV(x), n)):<> bool (n==1) // end of [list_vt_is_sing] fun{x:vt0p} list_vt_is_pair {n:int} (xs: !list_vt(INV(x), n)):<> bool (n==2) // end of [list_vt_is_pair] (* ****** ****** *) fun{} list_vt_unnil{x:vt0p} (xs: list_vt(x, 0)):<> void (* ****** ****** *) fun{x:vt0p} list_vt_uncons{n:pos} (xs: &list_vt(INV(x), n) >> list_vt(x, n-1)): x // end of [list_vt_uncons] (* ****** ****** *) fun{x:vt0p} list_vt_length{n:int} (xs: !list_vt(INV(x), n)):<> int n (* ****** ****** *) fun{x:vt0p} list_vt_getref_at {n:int}{i:nat | i <= n} (xs: &list_vt(INV(x), n), i: int i):<> cPtr1 (list_vt(x, n-i)) // end of [list_vt_getref_at] (* ****** ****** *) // fun{x:t0p} list_vt_get_at{n:int} (xs: !list_vt(INV(x), n), i: natLt n):<> x // fun{x:t0p} list_vt_set_at{n:int} (xs: !list_vt(INV(x), n), i: natLt n, x: x): void // (* ****** ****** *) fun{x:vt0p} list_vt_exch_at{n:int} (xs: !list_vt(INV(x), n), i: natLt n, x: &x >> _): void // end of [list_vt_exch_at] (* ****** ****** *) fun{x:vt0p} list_vt_insert_at{n:int} ( xs: &list_vt(INV(x), n) >> list_vt(x, n+1), i: natLte n, x: x ) : void // end of [list_vt_insert_at] fun{x:vt0p} list_vt_takeout_at{n:int} (xs: &list_vt(INV(x), n) >> list_vt(x, n-1), i: natLt n): x // end of [list_vt_takeout_at] (* ****** ****** *) fun{x:t0p} list_vt_copy{n:int} (xs: !list_vt(INV(x), n)): list_vt(x, n) // end of [list_vt_copy] (* ****** ****** *) // fun{x:vt0p} list_vt_copylin{n:int} (xs: !list_vt(INV(x), n)): list_vt(x, n) fun{x:vt0p} list_vt_copylin$copy (x: &RD(x)): (x) // fun{x:vt0p} list_vt_copylin_fun{n:int}{fe:eff} (xs: !list_vt(INV(x), n), f: (&RD(x)) - x): list_vt(x, n) // (* ****** ****** *) fun{x:t0p} list_vt_free(xs: List_vt(INV(x))): void (* ****** ****** *) // fun{x:vt0p} list_vt_freelin (xs: List_vt(INV(x))): void fun{x:vt0p} list_vt_freelin$clear (x: &x >> x?): void // fun{x:vt0p} list_vt_freelin_fun{fe:eff} (xs: List_vt(INV(x)), f: (&x>>x?) - void): void // (* ****** ****** *) // fun{ x:vt0p } list_vt_uninitize {n:int} ( xs: !list_vt(INV(x), n) >> list_vt(x?, n) ) : void // end of [list_vt_uninitize] // fun{x:vt0p} list_vt_uninitize$clear (x: &(x) >> x?): void // fun{ x:vt0p } list_vt_uninitize_fun {n:int}{fe:eff} ( xs: !list_vt(INV(x), n) >> list_vt(x?, n), f: (&x>>x?) - void ) : void // end of [list_vt_uninitize_fun] // (* ****** ****** *) fun{ a:vt0p } list_vt_append {n1,n2:int} ( xs1: list_vt(INV(a), n1), xs2: list_vt(a, n2) ) : list_vt(a, n1+n2) // endfun (* ****** ****** *) fun{ x:vt0p } list_vt_extend{n:int} (xs1: list_vt(INV(x), n), x2: x): list_vt(x, n+1) // end of [list_vt_extend] fun{x:vt0p} list_vt_unextend{n:pos} (xs: &list_vt(INV(x), n) >> list_vt(x, n-1)): (x) // end of [list_vt_unextend] (* ****** ****** *) macdef list_vt_snoc = list_vt_extend macdef list_vt_unsnoc = list_vt_unextend (* ****** ****** *) fun{x:vt0p} list_vt_reverse{n:int} (xs: list_vt(INV(x), n)): list_vt(x, n) // end of [list_vt_reverse] fun{a:vt0p} list_vt_reverse_append{m,n:int} (list_vt(INV(a), m), list_vt(a, n)): list_vt(a, m+n) // end of [list_vt_reverse_append] (* ****** ****** *) fun{x:vt0p} list_vt_split_at {n:int}{i:nat | i <= n} (list_vt(INV(x), n), int i): (list_vt(x, i), list_vt(x, n-i)) // end of [list_vt_split_at] (* ****** ****** *) fun{x:vt0p} list_vt_concat (xss: List_vt(List_vt(INV(x)))): List0_vt(x) // end of [list_vt_concat] (* ****** ****** *) // fun{x:t0p} list_vt_filter{n:int} (list_vt(INV(x), n)): listLte_vt(x, n) // end of [list_vt_filter] // fun{x:t0p} list_vt_filter$pred (x: &RD(x)):<> bool // (* ****** ****** *) // fun{x:vt0p} list_vt_filterlin{n:int} (list_vt(INV(x), n)): listLte_vt(x, n) // fun{x:vt0p} list_vt_filterlin$pred (x: &RD(x)):<> bool fun{x:vt0p} list_vt_filterlin$clear (x: &x >> x?): void // (* ****** ****** *) fun{x:vt0p} list_vt_separate{n:int} ( xs: &list_vt(INV(x), n) >> list_vt(x, n1), n1: &int? >> int(n1) ) : #[n1:nat|n1 <= n] list_vt(x, n-n1) fun{x:vt0p} list_vt_separate$pred(x: &RD(x)): bool (* ****** ****** *) fun{x:vt0p} list_vt_take_until{n:int} ( xs: &list_vt(INV(x), n) >> list_vt(x, n-n1), n1: &int? >> int(n1) ) : #[n1:nat|n1 <= n] list_vt(x, n1) fun{x:vt0p} list_vt_take_until$pred(x: &RD(x)): bool (* ****** ****** *) // fun {x:vt0p} list_vt_app (xs: !List_vt(INV(x))): void fun {x:vt0p} list_vt_app$fwork(x: &x >> _): void // (* ****** ****** *) // fun{x:vt0p} list_vt_appfree (xs: List_vt(INV(x))): void // fun{x:vt0p} list_vt_appfree$fwork(x: &x>>x?): void // (* ****** ****** *) // fun {x:vt0p} list_vt_iapp (xs: !List_vt(INV(x))): void fun {x:vt0p} list_vt_iapp$fwork (index: intGte(0), x: &x >> _): void // (* ****** ****** *) // fun{x:vt0p} list_vt_iappfree (xs: List_vt(INV(x))): void // fun{x:vt0p} list_vt_iappfree$fwork (index: intGte(0), x: &x >> x?): void // (* ****** ****** *) // fun{ x:vt0p}{y:vt0p } list_vt_map$fopr(x: &x >> _): (y) // fun{ x:vt0p}{y:vt0p } list_vt_map{n:int} (xs: !list_vt(INV(x), n)): list_vt(y, n) // (* ****** ****** *) // fun{ x:vt0p}{y:vt0p } list_vt_mapfree$fopr(x: &(x) >> x?): (y) // fun{ x:vt0p}{y:vt0p } list_vt_mapfree{n:int} (xs: list_vt(INV(x), n)) : list_vt(y, n) // (* ****** ****** *) // fun{ x:vt0p } list_vt_foreach(xs: !List_vt(INV(x))): void // fun{ x:vt0p}{env:vt0p } list_vt_foreach_env (xs: !List_vt(INV(x)), env: &(env) >> _): void // fun{ x:vt0p}{env:vt0p } list_vt_foreach$cont(x: &x, env: &env): bool fun{ x:vt0p}{env:vt0p } list_vt_foreach$fwork(x: &x >> _, env: &(env) >> _): void // (* ****** ****** *) // fun{ x:vt0p } list_vt_foreach_funenv {v:view}{vt:viewtype}{fe:eff} ( pfv: !v | xs: !List_vt(INV(x)), f: (!v | &x, !vt) - void, env: !vt ) : void // end of [list_vt_foreach_funenv] // (* ****** ****** *) // fun{ x:vt0p } list_vt_iforeach {n:int} (xs: !list_vt(INV(x), n)): natLte(n) // fun{ x:vt0p}{env:vt0p } list_vt_iforeach_env {n:int} (xs: !list_vt(INV(x), n), env: &(env) >> _): natLte(n) // fun{ x:vt0p}{env:vt0p } list_vt_iforeach$cont (i: intGte(0), x: &x, env: &env): bool fun{ x:vt0p}{env:vt0p } list_vt_iforeach$fwork (i: intGte(0), x: &x >> _, env: &(env) >> _): void // (* ****** ****** *) // (* HX-2016-12: Fisher–Yates shuffle *) // fun{a:t0p} list_vt_permute {n:int}(xs: list_vt(INV(a), n)): list_vt(a, n) // fun{(*void*)} list_vt_permute$randint{n:int | n > 0}(int(n)): natLt(n) // (* ****** ****** *) // fun{ a:vt0p } list_vt_mergesort {n:int} (xs: list_vt(INV(a), n)): list_vt(a, n) fun{ a:vt0p } list_vt_mergesort$cmp(x1: &RD(a), x2: &RD(a)):<> int(*sgn*) // fun{ a:vt0p } list_vt_mergesort_fun {n:int} ( xs: list_vt(INV(a), n), cmp: cmpref (a) ) : list_vt(a, n) // end of [list_vt_mergesort_fun] // (* ****** ****** *) // fun{ a:vt0p } list_vt_quicksort {n:int} (xs: list_vt(INV(a), n)): list_vt(a, n) fun{ a:vt0p } list_vt_quicksort$cmp(x1: &RD(a), x2: &RD(a)):<> int(*sgn*) // fun{ a:vt0p } list_vt_quicksort_fun {n:int} ( xs: list_vt(INV(a), n), cmp: cmpref (a) ) : list_vt(a, n) // end of [list_vt_quicksort_fun] // (* ****** ****** *) // fun {a:vt0p} streamize_list_vt_elt(List_vt(INV(a))): stream_vt(a) // fun {a,b:vt0p} streamize_list_vt_zip{n:nat} (list_vt(INV(a), n), list_vt(INV(b), n)): stream_vt(@(a, b)) // (* ****** ****** *) // // HX: overloading // for certain symbols // (* ****** ****** *) // overload [] with list_vt_get_at overload [] with list_vt_set_at // overload iseqz with list_vt_is_nil overload isneqz with list_vt_is_cons // overload length with list_vt_length // overload copy with list_vt_copy overload free with list_vt_free // overload print with print_list_vt overload prerr with prerr_list_vt overload fprint with fprint_list_vt overload fprint with fprint_list_vt_sep // (* ****** ****** *) overload reverse with list_vt_reverse (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/extern.sats0000644000175000017500000001033713431250607021301 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/extern.atxt ** Time of generation: Thu Feb 14 11:29:44 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2012 *) (* ****** ****** *) sortdef vt0p = viewt@ype (* ****** ****** *) abstype carrayptr (a:t@ype, l:addr, n:int) = ptr(l) typedef carrayptr0 (a:t@ype, n:int) = [l:addr] carrayptr (a, l, n) typedef carrayptr1 (a:t@ype, n:int) = [l:addr | l > null] carrayptr (a, l, n) (* ****** ****** *) // // HX-2014-01-30: these are inherently unsafe: // castfn carrayptr_null {a:t@ype}{n:nat} (p: ptr(null)):<> carrayptr (a, null, n) castfn carrayptr_array {a:t@ype}{n:int} (A: &array(INV(a), n)):<> carrayptr1 (a, n) castfn carrayptr_arrayref {a:t@ype}{n:int} (A: arrayref(INV(a), n)):<> carrayptr1 (a, n) castfn carrayptr_arrayptr {a:t@ype}{l:addr}{n:int} (A: !arrayptr(INV(a), l, n)):<> [l > null] carrayptr (a, l, n) // (* ****** ****** *) symintr carrayptr overload carrayptr with carrayptr_null overload carrayptr with carrayptr_array overload carrayptr with carrayptr_arrayref overload carrayptr with carrayptr_arrayptr (* ****** ****** *) // // HX: note that (vt1 \minus v2) roughly means that a ticket of // [v2] is taken from [vt1]; the ticket must be returned before // [vt1] is consumed. However, the ticket should not be issued // repeatedly for otherwise safety may be potentially compromised. // absview minus_vt0ype_view_view (vt1:vt@ype+, v2:view-) = vt1 absvt@ype minus_vt0ype_view_vt0ype (vt1:vt@ype+, v2:view-) = vt1 // viewdef minus_v (vt1:vt0p, v2:view) = minus_vt0ype_view_view(vt1, v2) viewdef minus_vt (vt1:vt0p, v2:view) = minus_vt0ype_view_vt0ype(vt1, v2) // praxi minus_v_addback {vt1:vt0p}{v2:view} (minus_v(INV(vt1), v2), v2 | !vt1): void // castfn minus_vt_addback {vt1:vt0p}{v2:view} (pf: v2 | x0: minus_vt(INV(vt1), v2)): (vt1) // symintr minus_addback overload minus_addback with minus_v_addback overload minus_addback with minus_vt_addback // (* ****** ****** *) // typedef vtget0_ftype (vt1:vt0p, vt2:vt0p) = (!vt1 >> minus_vt(vt1,vt2)) - vt2 // typedef vtget1_ftype (vt1:vt0p, vt2:vt0p) = (!vt1) - (minus_v(vt1, vt2) | vt2) // vtypedef vtget1 (vt1:vt0p, vt2:vt0p) = (minus_v(vt1, vt2) | vt2) // (* ****** ****** *) // // HX-2016-08: // It is implemented in [pointer.dats] // fun {a:vt0p} aptr_vtget0_elt {l:agz} : vtget0_ftype(aptr(INV(a), l), a) // fun {a:vt0p} aptr_vtget1_elt {l:agz} : vtget1_ftype(aptr(INV(a), l), a) // overload vtget0 with aptr_vtget0_elt overload vtget1 with aptr_vtget1_elt // (* ****** ****** *) castfn argv_takeout_strarr {n:int} ( argv: !argv (n) ) :<> [l:addr] ( array_v(string, l, n), minus_v(argv(n), array_v(string, l, n)) | ptr(l) ) // end of [argv_takeout_strarr] castfn argv_takeout_parray {n:int} ( argv: !argv (n) ) :<> [l:addr] ( parray_v(string, l, n), minus_v(argv(n), parray_v(string, l, n)) | ptr(l) ) // end of [argv_takeout_parray] (* ****** ****** *) (* end of [extern.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/arrayref.sats0000644000175000017500000003103013431250607021600 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/arrayref.atxt ** Time of generation: Thu Feb 14 11:29:42 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) // // arrayref: // reference to an array without size attached // (* ****** ****** *) #if(0) // // HX-2013-06: // it is declared in [basic_dyn.sats] // abstype arrayref_vt0ype_int_type (a: vt@ype(*elt*), n: int(*size*)) = ptr stadef arrayref = arrayref_vt0ype_int_type #endif (* ****** ****** *) // praxi lemma_arrayref_param {a:vt0p}{n:int} (A0: arrayref(a, n)): [n >= 0] void // (* ****** ****** *) // castfn arrayref2ptr {a:vt0p}{n:int}(A: arrayref(a, n)):<> Ptr0 // (* ****** ****** *) // (* ** ** HX-2012-06: ** ** this function essentially passes the proof of ** array-view to GC (leaks it if GC is unavailable) *) // castfn arrayptr_refize {a:vt0p} {l:addr}{n:int} ( A0: arrayptr(INV(a), l, n) ) : arrayref(a, n) // castfn arrayref_get_viewptr {a:vt0p}{n:int} ( A0: arrayref(a, n) ) :<> [ l:addr ] ( vbox(array_v(a, l, n)) | ptr(l) ) (* end of [arrayref_get_viewptr] *) // (* ****** ****** *) // fun arrayref_make_arrpsz {a:vt0p}{n:int} ( arrpsz(INV(a), n) ) : arrayref(a, n) = "mac#%" // symintr arrayref // overload arrayref with arrayref_make_arrpsz // (* ****** ****** *) // fun {a:t0p} arrayref_make_elt {n:int} ( asz: size_t(n), x0: a ) : arrayref(a, n) // end of [arrayref_make_elt] // (* ****** ****** *) // fun{} arrayref_make_intrange {l,r:int | l <= r} ( l: int l, r: int r ) : arrayref(int, r-l) // end of [arrayref_make_intrange] // (* ****** ****** *) // fun {a:t0p} arrayref_make_list {n:int} ( asz: int n, xs: list(INV(a), n) ) : arrayref(a, n) // end of [arrayref_make_list] // fun {a:t0p} arrayref_make_rlist {n:int} ( asz: int n, xs: list(INV(a), n) ) : arrayref(a, n) // end of [arrayref_make_rlist] // (* ****** ****** *) // // HX-2014-02: // [A] must survive [arrayref_tail(A)] // in order to support proper garbage-collection // fun {a:t0p} arrayref_head {n:pos} (A: arrayref(a, n)): (a) // A[0] fun {a:t0p} arrayref_tail {n:pos} (A: arrayref(a, n)): arrayref(a, n-1) // (* ****** ****** *) // fun{ a:t0p}{tk:tk } arrayref_get_at_gint {n:int}{i:nat | i < n} ( A0: arrayref(a, n), i: g1int(tk, i) ) : (a) // arrayref_get_at_gint // fun{ a:t0p}{tk:tk } arrayref_get_at_guint {n:int}{i:nat | i < n} ( A0: arrayref(a, n), i: g1uint(tk, i) ) : (a) // arrayref_get_at_guint // symintr arrayref_get_at // overload arrayref_get_at with arrayref_get_at_gint of 0 overload arrayref_get_at with arrayref_get_at_guint of 0 // (* ****** ****** *) // fun{ a:t0p}{tk:tk } arrayref_set_at_gint {n:int}{i:nat | i < n} ( A: arrayref(a, n), i: g1int(tk, i), x: a ) : void // end of [arrayref_set_at_gint] // fun{ a:t0p}{tk:tk } arrayref_set_at_guint {n:int}{i:nat | i < n} ( A: arrayref(a, n), i: g1uint(tk, i), x: a ) : void // end of [arrayref_set_at_guint] // symintr arrayref_set_at // overload arrayref_set_at with arrayref_set_at_gint of 0 overload arrayref_set_at with arrayref_set_at_guint of 0 // (* ****** ****** *) fun{ a:vt0p}{tk:tk } arrayref_exch_at_gint {n:int}{i:nat | i < n} ( A0: arrayref(a, n), i: g1int(tk, i), x: &a >> _ ) : void // arrayref_exch_at_gint fun{ a:vt0p}{tk:tk } arrayref_exch_at_guint {n:int}{i:nat | i < n} ( A0: arrayref(a, n), i: g1uint(tk, i), x: &a >> _ ) : void // arrayref_exch_at_guint // symintr arrayref_exch_at // overload arrayref_exch_at with arrayref_exch_at_gint of 0 overload arrayref_exch_at with arrayref_exch_at_guint of 0 // (* ****** ****** *) // fun{a:vt0p} arrayref_interchange {n:int} ( A: arrayref(a, n), i: sizeLt(n), j: sizeLt(n) ) : void // end-of-function // (* ****** ****** *) fun{a:vt0p} arrayref_subcirculate {n:int} ( A: arrayref(a, n), i: sizeLt(n), j: sizeLt(n) ) : void // end-of-function (* ****** ****** *) (* fun{} fprint_array$sep (out: FILEref): void *) fun{a:vt0p} fprint_arrayref {n:int} ( FILEref , arrayref(a, n), asz: size_t(n) ) : void // end of [fprint_arrayref] fun{a:vt0p} fprint_arrayref_sep {n:int} ( FILEref , arrayref(a, n), asz: size_t(n), sep: NSH(string) ) : void // end of [fprint_arrayref_sep] (* ****** ****** *) fun{a:t0p} arrayref_copy{n:int} (A: arrayref(a, n), n: size_t(n)): arrayptr(a, n) // end of [arrayref_copy] (* ****** ****** *) // (* fun{a:vt0p} array_tabulate$fopr(index: size_t): (a) *) fun{a:vt0p} arrayref_tabulate {n:int}(asz: size_t(n)): arrayref(a, n) // (* ****** ****** *) (* fun {a:vt0p} {env:vt0p} array_foreach$cont (x: &a, env: &env): void fun {a:vt0p} {env:vt0p} array_foreach$fwork (x: &a >> a, env: &(env) >> _): void *) fun {a:vt0p} arrayref_foreach{n:int} ( A0: arrayref(a, n), asz: size_t(n) ) : sizeLte(n) // end of [arrayref_foreach] fun {a:vt0p} {env:vt0p} arrayref_foreach_env{n:int} ( A0: arrayref(a, n), asz: size_t(n), env: &env >> _ ) : sizeLte(n) // end of [arrayref_foreach_env] (* ****** ****** *) (* fun {a:vt0p} {env:vt0p} array_iforeach$cont (i: size_t, x: &a, env: &env): void fun {a:vt0p} {env:vt0p} array_iforeach$fwork (i: size_t, x: &a >> a, env: &(env) >> _): void *) fun {a:vt0p} arrayref_iforeach{n:int} ( A: arrayref(a, n), asz: size_t(n) ) : sizeLte(n) // end of [arrayref_iforeach] fun {a:vt0p} {env:vt0p} arrayref_iforeach_env{n:int} ( A: arrayref(a, n), asz: size_t(n), env: &(env) >> _ ) : sizeLte(n) // end of [arrayref_iforeach_env] (* ****** ****** *) (* fun{a:vt0p}{env:vt0p} array_rforeach$cont (x: &a, env: &env): void fun{a:vt0p}{env:vt0p} array_rforeach$fwork (x: &a >> a, env: &(env) >> _): void *) fun{ a:vt0p } arrayref_rforeach{n:int} ( A: arrayref(a, n), asz: size_t(n) ) : sizeLte(n) // end of [arrayref_rforeach] fun{ a:vt0p}{env:vt0p } arrayref_rforeach_env{n:int} ( A: arrayref(a, n), asz: size_t(n), env: &(env)>>env ) : sizeLte(n) // end of [arrayref_rforeach_env] (* ****** ****** *) // // HX-2017-02-19: // Using [gcompare_ref_ref] to check // fun {a:vt0p} arrayref_is_ordered {n:int} (A: arrayref(a, n), asz: size_t(n)): bool // (* ****** ****** *) // (* fun {a:vt0p} array_bsearch$ford(x: &RD(a)):<> int *) // fun {a:vt0p} arrayref_bsearch {n:int} (A: arrayref(a, n), n: size_t(n)): sizeLte(n) // (* ****** ****** *) // fun {a:vt0p} arrayref_quicksort {n:int}(A: arrayref(a, n), asz: size_t(n)): void // fun {a:vt0p} arrayref_quicksort_stdlib {n:int} (A: arrayref(a, n), asz: size_t(n), cmp: cmpref(a)): void // (* ****** ****** *) (* // // HX: see below // fun {a:t0p} streamize_arrayref_elt {n:int} (A: arrayref(a, n), asz: size_t(n)): stream_vt(a) *) (* ****** ****** *) // // arrszref: // reference to an array with its size attached // (* ****** ****** *) #if(0) // // HX-2013-06: // it is declared in [basic_dyn.sats] // abstype arrszref_vt0ype_type (a: vt@ype) = ptr stadef arrszref = arrszref_vt0ype_type // #endif (* ****** ****** *) symintr arrszref (* ****** ****** *) fun{} arrszref_make_arrpsz {a:vt0p}{n:int} (arrpsz (INV(a), n)): arrszref(a) // overload arrszref with arrszref_make_arrpsz // (* ****** ****** *) fun{} arrszref_make_arrayref {a:vt0p}{n:int} (A: SHR(arrayref(a, n)), n: size_t(n)): arrszref(a) // end of [arrszref_make_arrayref] (* ****** ****** *) fun{ } arrszref_get_ref{a:vt0p} (A: arrszref(a)):<> Ptr1 fun{ } arrszref_get_size{a:vt0p} (A: arrszref(a)):<> size_t (* ****** ****** *) // fun{} arrszref_get_refsize{a:vt0p} ( A: arrszref(a), asz: &size_t? >> size_t(n) ) : #[n:nat] arrayref(a, n) // end-of-fun // (* ****** ****** *) fun{a:t0p} arrszref_make_elt(asz: size_t, x: a): arrszref(a) // end of [arrszref_make_elt] (* ****** ****** *) fun{a:t0p} arrszref_make_list(xs: List(INV(a))): arrszref(a) // end of [arrszref_make_list] fun{a:t0p} arrszref_make_rlist(xs: List(INV(a))): arrszref(a) // end of [arrszref_make_rlist] (* ****** ****** *) (* fun{} fprint_array$sep(out: FILEref): void *) fun{a:vt0p} fprint_arrszref (out: FILEref, A: arrszref(a)): void // end of [fprint_arrszref] fun{a:vt0p} fprint_arrszref_sep ( out: FILEref, A: arrszref(a), sep: NSH(string) ) : void // end of [fprint_arrszref_sep] (* ****** ****** *) // fun{a:t0p} arrszref_get_at_size (A: arrszref(a), i: size_t): a // fun{ a:t0p}{tk:tk } arrszref_get_at_gint (A: arrszref(a), i: g0int(tk)): a // fun{ a:t0p}{tk:tk } arrszref_get_at_guint (A: arrszref(a), i: g0uint(tk)): a // symintr arrszref_get_at overload arrszref_get_at with arrszref_get_at_gint of 0 overload arrszref_get_at with arrszref_get_at_guint of 0 // (* ****** ****** *) // fun {a:t0p} arrszref_set_at_size (A: arrszref(a), i: size_t, x: a): void // fun{ a:t0p}{tk:tk } arrszref_set_at_gint (A: arrszref(a), i: g0int(tk), x: a): void // fun{ a:t0p}{tk:tk } arrszref_set_at_guint (A: arrszref(a), i: g0uint(tk), x: a): void // symintr arrszref_set_at // overload arrszref_set_at with arrszref_set_at_gint of 0 overload arrszref_set_at with arrszref_set_at_guint of 0 // (* ****** ****** *) // fun {a:vt0p} arrszref_exch_at_size ( A0: arrszref(a), i: size_t, x: &a >> _ ) : void // fun{ a:vt0p }{tk:tk} arrszref_exch_at_gint ( A0: arrszref(a), i: g0int(tk), x: &a >> _ ) : void // end-of-function // fun{ a:vt0p }{tk:tk} arrszref_exch_at_guint ( A0: arrszref(a), i: g0uint(tk), x: &a >> _ ) : void // end-of-function // symintr arrszref_exch_at // overload arrszref_exch_at with arrszref_exch_at_gint of 0 overload arrszref_exch_at with arrszref_exch_at_guint of 0 (* ****** ****** *) // fun {a:vt0p} arrszref_interchange (A: arrszref(a), i: size_t, j: size_t): void // end of [arrszref_interchange] // (* ****** ****** *) // fun {a:vt0p} arrszref_subcirculate (A: arrszref(a), i: size_t, j: size_t): void // end of [arrszref_subcirculate] // (* ****** ****** *) // (* fun{a:vt0p} array_tabulate$fopr(size_t): (a) *) fun{a:vt0p} arrszref_tabulate(asz: size_t): arrszref(a) // (* ****** ****** *) // // HX: for streamization of arrays // (* ****** ****** *) // fun {a:t0p} streamize_arrszref_elt (ASZ: arrszref(a)): stream_vt(a) fun {a:t0p} streamize_arrayref_elt {n:int}(A: arrayref(a, n), n: size_t(n)): stream_vt(a) // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) // overload [] with arrayref_get_at_gint of 0 overload [] with arrayref_set_at_gint of 0 overload [] with arrszref_get_at_gint of 0 overload [] with arrszref_set_at_gint of 0 // overload [] with arrayref_get_at_guint of 0 overload [] with arrayref_set_at_guint of 0 overload [] with arrszref_get_at_guint of 0 overload [] with arrszref_set_at_guint of 0 // (* ****** ****** *) overload .head with arrayref_head overload .tail with arrayref_tail (* ****** ****** *) overload size with arrszref_get_size overload .size with arrszref_get_size (* ****** ****** *) overload fprint with fprint_arrayref overload fprint with fprint_arrayref_sep overload fprint with fprint_arrszref overload fprint with fprint_arrszref_sep (* ****** ****** *) overload ptrcast with arrayref2ptr (* ****** ****** *) (* end of [arrayref.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/pointer.sats0000644000175000017500000003310313431250607021450 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/pointer.atxt ** Time of generation: Thu Feb 14 11:29:37 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: March, 2012 *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) // sortdef t0p = t@ype and vt0p = viewt@ype // (* ****** ****** *) stadef ptrknd = ptr_kind (* ****** ****** *) absprop is_word_aligned_p (l:addr) (* ****** ****** *) // castfn g0ofg1_ptr (p: Ptr):<> ptr castfn g1ofg0_ptr (p: ptr):<> Ptr0 // overload g0ofg1 with g0ofg1_ptr overload g1ofg0 with g1ofg0_ptr // (* ****** ****** *) // prfun lemma_ptr_param {l:addr} (p: ptr l): [l >= null] void // (* ****** ****** *) prfun ptr_get_index {l1:addr} (p: ptr l1): [l2:addr] EQADDR(l1, l2) // end of [ptr_get_index] (* ****** ****** *) // symintr ptr_is_null symintr ptr_isnot_null // (* ****** ****** *) // symintr add_ptr_bsz symintr sub_ptr_bsz // // add_ptr_bsz (p, ofs) = p + ofs // sub_ptr_bsz (p, ofs) = p - ofs // (* ****** ****** *) // symintr ptr_succ symintr ptr_pred // // ptr_succ(p) = p + sizeof // ptr_pred(p) = p - sizeof // (* ****** ****** *) // symintr ptr_add ptr_sub // // ptr_add (p, ofs) = p + ofs*sizeof // ptr_sub (p, ofs) = p - ofs*sizeof // (* ****** ****** *) fun ptr0_is_null (p: ptr):<> bool = "mac#%" overload ptr_is_null with ptr0_is_null of 0 fun ptr0_isnot_null (p: ptr):<> bool = "mac#%" overload ptr_isnot_null with ptr0_isnot_null of 0 (* ****** ****** *) // fun add_ptr0_bsz (p: ptr, ofs: size_t):<> ptr = "mac#%" fun sub_ptr0_bsz (p: ptr, ofs: size_t):<> ptr = "mac#%" // overload add_ptr_bsz with add_ptr0_bsz of 0 overload sub_ptr_bsz with sub_ptr0_bsz of 0 // (* ****** ****** *) fun sub_ptr0_ptr0 (p1: ptr, p2: ptr):<> ssize_t = "mac#%" overload - with sub_ptr0_ptr0 of 0 (* ****** ****** *) // fun{a:vt0p} ptr0_succ(p: ptr):<> ptr fun{a:vt0p} ptr0_pred(p: ptr):<> ptr // overload ptr_succ with ptr0_succ of 0 overload ptr_pred with ptr0_pred of 0 // (* ****** ****** *) // fun{ a:vt0p } ptr0_diff(p1: ptr, p2: ptr): ssize_t // (* ****** ****** *) // fun{ a:vt0p}{tk:tk } ptr0_add_gint(p: ptr, ofs: g0int(tk)):<> ptr fun{ a:vt0p}{tk:tk } ptr0_add_guint(p: ptr, ofs: g0uint(tk)):<> ptr // overload ptr_add with ptr0_add_gint of 0 overload ptr_add with ptr0_add_guint of 0 // fun{ a:vt0p}{tk:tk } ptr0_sub_gint (p: ptr, ofs: g0int (tk)):<> ptr fun{ a:vt0p}{tk:tk } ptr0_sub_guint (p: ptr, ofs: g0uint (tk)):<> ptr // overload ptr_sub with ptr0_sub_gint of 0 overload ptr_sub with ptr0_sub_guint of 0 // (* ****** ****** *) fun lt_ptr0_ptr0 (p1: ptr, p2: ptr):<> bool = "mac#%" overload < with lt_ptr0_ptr0 of 0 fun lte_ptr0_ptr0 (p1: ptr, p2: ptr):<> bool = "mac#%" overload <= with lte_ptr0_ptr0 of 0 fun gt_ptr0_ptr0 (p1: ptr, p2: ptr):<> bool = "mac#%" overload > with gt_ptr0_ptr0 of 0 fun gte_ptr0_ptr0 (p1: ptr, p2: ptr):<> bool = "mac#%" overload >= with gte_ptr0_ptr0 of 0 fun eq_ptr0_ptr0 (p1: ptr, p2: ptr):<> bool = "mac#%" overload = with eq_ptr0_ptr0 of 0 fun neq_ptr0_ptr0 (p1: ptr, p2: ptr):<> bool = "mac#%" overload != with neq_ptr0_ptr0 of 0 overload <> with neq_ptr0_ptr0 of 0 (* ****** ****** *) // fun compare_ptr0_ptr0 (p1: ptr, p2: ptr):<> int = "mac#%" // overload compare with compare_ptr0_ptr0 of 0 // (* ****** ****** *) // fun gt_ptr0_intz (p: ptr, i: int(0)):<> bool = "mac#%" // fun eq_ptr0_intz (p: ptr, i: int(0)):<> bool = "mac#%" fun neq_ptr0_intz (p: ptr, i: int(0)):<> bool = "mac#%" // overload > with gt_ptr0_intz of 0 overload = with eq_ptr0_intz of 0 overload != with neq_ptr0_intz of 0 overload <> with neq_ptr0_intz of 0 // (* ****** ****** *) (* fun{a:vt0p} ptr0_add_int (p: ptr, i: int): ptr fun{a:vt0p} ptr0_add_lint (p: ptr, i: lint): ptr fun{a:vt0p} ptr0_add_ssize (p: ptr, i: ssize): ptr fun{a:vt0p} ptr0_add_uint (p: ptr, u: uint): ptr fun{a:vt0p} ptr0_add_ulint (p: ptr, u: ulint): ptr fun{a:vt0p} ptr0_add_size (p: ptr, u: size): ptr *) (* fun{a:vt0p} ptr0_sub_int (p: ptr, i: int): ptr fun{a:vt0p} ptr0_sub_lint (p: ptr, i: lint): ptr fun{a:vt0p} ptr0_sub_ssize (p: ptr, i: ssize): ptr fun{a:vt0p} ptr0_sub_uint (p: ptr, u: uint): ptr fun{a:vt0p} ptr0_sub_ulint (p: ptr, u: ulint): ptr fun{a:vt0p} ptr0_sub_size (p: ptr, u: size): ptr *) (* ****** ****** *) // fun print_ptr (p: ptr): void = "mac#%" fun prerr_ptr (p: ptr): void = "mac#%" fun fprint_ptr : fprint_type (ptr) = "mac#%" // overload print with print_ptr overload prerr with prerr_ptr overload fprint with fprint_ptr // (* ****** ****** *) // praxi ptr1_is_gtez {l:addr}(p: ptr l): [l >= null] void // (* ****** ****** *) // fun ptr1_is_null {l:addr}(p: ptr l):<> bool (l==null) = "mac#%" fun ptr1_isnot_null {l:addr}(p: ptr l):<> bool (l > null) = "mac#%" // overload ptr_is_null with ptr1_is_null of 10 overload ptr_isnot_null with ptr1_isnot_null of 10 // (* ****** ****** *) // fun add_ptr1_bsz{l:addr}{i:int} (p: ptr l, ofs: size_t (i)):<> ptr (l+i) = "mac#%" fun sub_ptr1_bsz{l:addr}{i:int} (p: ptr l, ofs: size_t (i)):<> ptr (l-i) = "mac#%" // overload add_ptr_bsz with add_ptr1_bsz of 20 overload sub_ptr_bsz with sub_ptr1_bsz of 20 // (* ****** ****** *) // fun sub_ptr1_ptr1{l1,l2:addr} (p1: ptr l1, p2: ptr l2):<> ssize_t (l1-l2) = "mac#%" // overload - with sub_ptr1_ptr1 of 20 // (* ****** ****** *) // fun{ a:vt0p } ptr1_succ{l:addr} (p: ptr l):<> ptr (l+sizeof(a)) fun{ a:vt0p } ptr1_pred{l:addr} (p: ptr l):<> ptr (l-sizeof(a)) // overload ptr_succ with ptr1_succ of 10 overload ptr_pred with ptr1_pred of 10 // (* ****** ****** *) // fun{ a:vt0p}{tk:tk } ptr1_add_gint {l:addr}{i:int} (p: ptr l, ofs: g1int (tk, i)):<> ptr(l+i*sizeof(a)) fun{ a:vt0p}{tk:tk } ptr1_add_guint {l:addr}{i:int} (p: ptr l, ofs: g1uint (tk, i)):<> ptr(l+i*sizeof(a)) // overload ptr_add with ptr1_add_gint of 20 overload ptr_add with ptr1_add_guint of 20 // (* ****** ****** *) // fun{ a:vt0p}{tk:tk } ptr1_sub_gint {l:addr}{i:int} (p: ptr l, ofs: g1int (tk, i)):<> ptr(l-i*sizeof(a)) fun{ a:vt0p}{tk:tk } ptr1_sub_guint {l:addr}{i:int} (p: ptr l, ofs: g1uint (tk, i)):<> ptr(l-i*sizeof(a)) // overload ptr_sub with ptr1_sub_gint of 20 overload ptr_sub with ptr1_sub_guint of 20 // (* ****** ****** *) fun lt_ptr1_ptr1 {l1,l2:addr} ( p1: ptr (l1), p2: ptr (l2) ) :<> bool (l1 < l2) = "mac#%" overload < with lt_ptr1_ptr1 of 20 fun lte_ptr1_ptr1 {l1,l2:addr} ( p1: ptr (l1), p2: ptr (l2) ) :<> bool (l1 <= l2) = "mac#%" overload <= with lte_ptr1_ptr1 of 20 fun gt_ptr1_ptr1 {l1,l2:addr} ( p1: ptr (l1), p2: ptr (l2) ) :<> bool (l1 > l2) = "mac#%" overload > with gt_ptr1_ptr1 of 20 fun gte_ptr1_ptr1 {l1,l2:addr} ( p1: ptr (l1), p2: ptr (l2) ) :<> bool (l1 >= l2) = "mac#%" overload >= with gte_ptr1_ptr1 of 20 fun eq_ptr1_ptr1 {l1,l2:addr} ( p1: ptr (l1), p2: ptr (l2) ) :<> bool (l1 == l2) = "mac#%" overload = with eq_ptr1_ptr1 of 20 fun neq_ptr1_ptr1 {l1,l2:addr} ( p1: ptr (l1), p2: ptr (l2) ) :<> bool (l1 != l2) = "mac#%" overload != with neq_ptr1_ptr1 of 20 overload <> with neq_ptr1_ptr1 of 20 fun compare_ptr1_ptr1 {l1,l2:addr} (p1: ptr l1, p2: ptr l2) :<> int = "mac#%" overload compare with compare_ptr1_ptr1 of 20 (* ****** ****** *) // fun gt_ptr1_intz{l:addr} (p: ptr(l), i: int(0)):<> bool(l > null) = "mac#%" fun eq_ptr1_intz{l:addr} (p: ptr(l), i: int(0)):<> bool(l== null) = "mac#%" fun neq_ptr1_intz{l:addr} (p: ptr(l), i: int(0)):<> bool(l > null) = "mac#%" // overload > with gt_ptr1_intz of 10 overload = with eq_ptr1_intz of 10 overload != with neq_ptr1_intz of 10 overload <> with neq_ptr1_intz of 10 // (* ****** ****** *) // // HX: implemented in [prelude/DATS/pointer.dats] // fun{a:vt0p} ptr_get{l:addr} (pf: !INV(a) @ l >> a?! @ l | p: ptr l):<> a // end of [ptr_get] fun{a:vt0p} ptr_set{l:addr} (pf: !a? @ l >> a @ l | p: ptr l, x: INV(a)): void // end of [ptr_set] fun{a:vt0p} ptr_exch{l:addr} (pf: !INV(a) @ l | p: ptr l, x: &a >> a): void // end of [ptr_exch] (* ****** ****** *) // abstype cptr_vt0ype_addr_type (a:vt@ype+, addr) = ptr // HX: for simulating C pointers // stadef cptr = cptr_vt0ype_addr_type stadef cPtr0 (a:vt0p) = [l:addr] cptr (a, l) stadef cPtr1 (a:vt0p) = [l:addr | l > null] cptr(a, l) // castfn cptr2ptr{a:vt0p}{l:addr} (cp: cptr(a, l)):<> ptr(l) // (* ****** ****** *) // fun cptr_null{a:vt0p} ():<> cptr(a, null) = "mac#%" // castfn cptr_rvar{a:vt0p} (x: &INV(a)):<> cPtr1(a) // read castfn cptr_wvar{a:vt0p} (x: &a? >> a):<> cPtr1(a) // write // (* ****** ****** *) // fun {a:vt0p} cptr_succ{l:addr}(cp: cptr(a, l)):<> cptr(a, l+sizeof(a)) fun {a:vt0p} cptr_pred{l:addr}(cp: cptr(a, l)):<> cptr(a, l-sizeof(a)) // (* ****** ****** *) // fun cptr_is_null {a:vt0p}{l:addr}(cp: cptr(a, l)):<> bool(l==null) = "mac#%" fun cptr_isnot_null {a:vt0p}{l:addr}(cp: cptr(a, l)):<> bool(l > null) = "mac#%" // (* ****** ****** *) // fun gt_cptr_intz {a:vt0p}{l:addr} (cp: cptr(a, l), i: int(0)):<> bool(l > null) = "mac#%" // fun eq_cptr_intz {a:vt0p}{l:addr} (cp: cptr(a, l), i: int(0)):<> bool(l== null) = "mac#%" fun neq_cptr_intz {a:vt0p}{l:addr} (cp: cptr(a, l), i: int(0)):<> bool(l > null) = "mac#%" // overload > with gt_cptr_intz of 0 overload = with eq_cptr_intz of 0 overload != with neq_cptr_intz of 0 overload <> with neq_cptr_intz of 0 // (* ****** ****** *) typedef voidptr (l:addr) = cptr (void, l) typedef voidptr0 = [l:addr] voidptr (l) typedef voidptr1 = [l:addr | l > null] voidptr (l) typedef charptr (l:addr) = cptr (char, l) typedef charptr0 = [l:addr] charptr (l) typedef charptr1 = [l:addr | l > null] charptr (l) typedef constcharptr (l:addr) = charptr (l) // HX: commenting typedef constcharptr0 = charptr0 // HX: for commenting purpose typedef constcharptr1 = charptr1 // HX: for commenting purpose (* ****** ****** *) // absprop is_nullable(a: vt@ype+) // covariant // fun{a:vt0p} ptr_nullize (pf: is_nullable (a) | x: &a? >> a): void fun ptr_nullize_tsz{a:vt0p} ( pf: is_nullable(a) | x: &a? >> a, tsz: sizeof_t(a) ) : void = "mac#%" // end of [ptr_nullize_tsz] // (* ****** ****** *) fun {a:vt0p} ptr_alloc((*void*)) :<> [l:agz] (a? @ l, mfree_gc_v(l) | ptr(l)) // end of [ptr_alloc] fun ptr_alloc_tsz {a:vt0p}(tsz: sizeof_t(a)) :<> [l:agz] (a? @ l, mfree_gc_v(l) | ptr(l)) = "mac#%" // end of [ptr_alloc_tsz] (* ****** ****** *) fun ptr_free{a:t@ype}{l:addr} (pfgc: mfree_gc_v(l), pfat: a @ l | p: ptr(l)):<> void = "mac#%" // end of [ptr_free] (* ****** ****** *) // absvtype ptrlin_vtype(l:addr) = ptr // vtypedef ptrlin(l:addr) = ptrlin_vtype(l) // praxi ptrlin_free{l:addr} (p: ptrlin(l)): void // castfn ptr2ptrlin{l:addr} (p: ptr(l)):<> ptrlin(l) castfn ptrlin2ptr{l:addr} (p: ptrlin(l)):<> ptr(l) // (* ****** ****** *) // // HX-2015-03-24: // singleton linear arrayptr // absvtype aptr_vt0ype_addr_type (a:vt@ype+, addr) = ptr // HX: for safe ATS pointers // stadef aptr = aptr_vt0ype_addr_type stadef aPtr0 (a:vt0p) = [l:addr] aptr(a, l) stadef aPtr1 (a:vt0p) = [l:addr | l > null] aptr(a, l) // castfn aptr2ptr{a:vt0p}{l:addr}(ap: !aptr(INV(a), l)):<> ptr(l) // (* ****** ****** *) // fun {a:vt0p} aptr_make_elt(x: a): aPtr1(a) fun {a:vt0p} aptr_getfree_elt{l:agz}(aptr(a, l)): (a) // fun {a:vt0p} aptr_get_elt {l:agz} (ap: !aptr(a, l) >> aptr(a?!, l)): (a) fun {a:vt0p} aptr_set_elt {l:agz} (ap: !aptr(a?, l) >> aptr(a, l), x: a): void // fun {a:vt0p} aptr_exch_elt {l:agz} (ap: !aptr(INV(a), l) >> _, x: &(a) >> _): void // (* overload [] with aptr_get_elt // HX: template arg needed overload [] with aptr_set_elt // HX: template arg needed *) // (* ****** ****** *) // fun aptr_null{a:vt0p}():<> aptr(a, null) = "mac#%" // fun aptr_is_null {a:vt0p}{l:addr} (ap: !aptr(INV(a), l)):<> bool(l==null) = "mac#%" fun aptr_isnot_null {a:vt0p}{l:addr} (ap: !aptr(INV(a), l)):<> bool(l > null) = "mac#%" // overload iseqz with aptr_is_null overload isneqz with aptr_isnot_null // (* ****** ****** *) // // HX-2014-05-16: // A hack to stop buggy compilation // fun ptr_as_volatile (p: ptr): void // (* ****** ****** *) // // overloading for certain symbols // overload succ with ptr0_succ overload succ with ptr1_succ overload succ with cptr_succ // overload pred with ptr0_pred overload pred with ptr1_pred overload pred with cptr_pred // overload iseqz with ptr0_is_null of 0 overload isneqz with ptr0_isnot_null of 0 // overload iseqz with ptr1_is_null of 10 overload isneqz with ptr1_isnot_null of 10 // overload iseqz with cptr_is_null of 10 overload isneqz with cptr_isnot_null of 10 // (* ****** ****** *) (* end of [pointer.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/matrixref.sats0000644000175000017500000002203313431250607021771 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/matrixref.atxt ** Time of generation: Thu Feb 14 11:29:43 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2013 *) (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) // // matrixref: // reference to a matrix // with no dimension info attached // (* ****** ****** *) // abstype matrixref_vt0ype_int_int_type (a:vt@ype(*inv*), nrow: int, ncol:int) = ptr // stadef matrixref = matrixref_vt0ype_int_int_type // (* ****** ****** *) praxi lemma_matrixref_param {a:vt0p}{m,n:int} (M: matrixref(a, m, n)): [m >= 0; n >= 0] void // end of [lemma_matrixref_param] (* ****** ****** *) // castfn matrixref2ptr {a:vt0p}{m,n:int}(M: matrixref(INV(a), m, n)):<> Ptr0 // (* ****** ****** *) // castfn matrixptr_refize {a:vt0p}{l:addr}{m,n:int} (matrixptr(INV(a), l, m, n)): matrixref(a, m, n) // castfn matrixref_get_viewptr {a:vt0p} {m,n:int} ( M: matrixref(a, m, n) ) :<> [l:addr] (vbox(matrix_v(a, l, m, n)) | ptr l) // (* ****** ****** *) castfn arrayref2matrixref {a:vt0p}{m,n:nat} (A: arrayref(a, m*n)):<> matrixref(a, m, n) // end of [arrayref2matrixref] (* ****** ****** *) fun{ a:t0p } matrixref_make_elt {m,n:int} (size_t(m), size_t(n), x0: a): matrixref(a, m, n) // end of [matrixref_make_elt] (* ****** ****** *) fun{a:t0p} matrixref_get_at_int {m,n:int} ( M: matrixref(a, m, n), i: natLt(m), n: int(n), j: natLt(n) ) : (a) // end of [matrixref_get_at_int] fun{a:t0p} matrixref_get_at_size {m,n:int} ( M: matrixref(a, m, n), i: sizeLt(m), n: size_t(n), j: sizeLt(n) ) : (a) // end of [matrixref_get_at_size] // symintr matrixref_get_at overload matrixref_get_at with matrixref_get_at_int of 0 overload matrixref_get_at with matrixref_get_at_size of 0 // (* ****** ****** *) fun{a:t0p} matrixref_set_at_int {m,n:int} ( M: matrixref(a, m, n), i: natLt(m), n: int n, j: natLt(n), x: a ) : void // end of [matrixref_set_at_int] fun{a:t0p} matrixref_set_at_size {m,n:int} ( M: matrixref(a, m, n), i: sizeLt(m), n: size_t n, j: sizeLt(n), x: a ) : void // end of [matrixref_set_at_size] symintr matrixref_set_at overload matrixref_set_at with matrixref_set_at_int of 0 overload matrixref_set_at with matrixref_set_at_size of 0 (* ****** ****** *) fun{a:vt0p} matrixref_exch_at_int {m,n:int} ( M: matrixref(a, m, n) , i: natLt(m), n: int n, j: natLt(n), x: &a >> _ ) : void // end of [matrixref_exch_at_int] fun{a:vt0p} matrixref_exch_at_size {m,n:int} ( M: matrixref(a, m, n) , i: sizeLt(m), n: size_t n, j: sizeLt(n), x: &a >> _ ) : void // end of [matrixref_exch_at_size] symintr matrixref_exch_at overload matrixref_exch_at with matrixref_exch_at_int of 0 overload matrixref_exch_at with matrixref_exch_at_size of 0 (* ****** ****** *) (* fprint_matrix$sep1 // col separation fprint_matrix$sep2 // row separation *) fun{a:vt0p} fprint_matrixref{m,n:int} ( out: FILEref , M: matrixref(a, m, n), m: size_t m, n: size_t n ) : void // end of [fprint_matrixref] fun{a:vt0p} fprint_matrixref_sep{m,n:int} ( out: FILEref , M: matrixref(a, m, n), m: size_t(m), n: size_t(n) , sep1: NSH(string), sep2: NSH(string) ) : void // end of [fprint_matrixref_sep] (* ****** ****** *) // fun{a:t0p} matrixref_copy {m,n:int} ( M0: matrixref(a, m, n), m: size_t(m), n: size_t(n) ) : matrixptr (a, m, n) // end-of-fun // (* ****** ****** *) // (* fun{a:vt0p} matrix_tabulate$fopr(i: size_t, j: size_t): (a) *) fun{a:vt0p} matrixref_tabulate {m,n:int} (m: size_t(m), n: size_t(n)): matrixref(a, m, n) // (* ****** ****** *) (* fun{ a:vt0p}{env:vt0p } matrix_foreach$fwork (x: &a >> _, env: &(env) >> _): void *) // fun{ a:vt0p } matrixref_foreach {m,n:int} ( M: matrixref(a, m, n) , m: size_t(m), n: size_t(n) ) : void // end of [matrixref_foreach] // fun{ a:vt0p}{env:vt0p } matrixref_foreach_env {m,n:int} ( M: matrixref(a, m, n) , m: size_t(m), n: size_t(n), env: &(env) >> _ ) : void // end of [matrixref_foreach_env] // (* ****** ****** *) // // mtrxszref: a reference to a matrix with size information attached // (* ****** ****** *) // abstype // in-variant mtrxszref_vt0ype_type(a:vt@ype) = ptr // stadef mtrxszref = mtrxszref_vt0ype_type // (* ****** ****** *) fun{} mtrxszref_make_matrixref {a:vt0p}{m,n:int} ( M: matrixref(a, m, n), m: size_t m, n: size_t n ) : mtrxszref(a) // endfun (* ****** ****** *) // fun{} mtrxszref_get_ref{a:vt0p} (M: mtrxszref(a)):<> Ptr1 // fun{} mtrxszref_get_nrow{a:vt0p} (M: mtrxszref(a)):<> size_t fun{} mtrxszref_get_ncol{a:vt0p} (M: mtrxszref(a)):<> size_t // (* ****** ****** *) symintr .ref overload .ref with mtrxszref_get_ref (* ****** ****** *) fun{} mtrxszref_get_refsize{a:vt0p} ( M: mtrxszref(a) , nrol: &size_t? >> size_t m, ncol: &size_t? >> size_t(n) ) : #[m,n:nat] matrixref(a, m, n) // endfun (* ****** ****** *) fun{a:t0p} mtrxszref_make_elt (nrow: size_t, ncol: size_t, init: a): mtrxszref(a) // end of [mtrxszref_make_elt] (* ****** ****** *) // fun{a:t0p} mtrxszref_get_at_int (M: mtrxszref(a), i: int, j: int): (a) fun{a:t0p} mtrxszref_get_at_size (M: mtrxszref(a), i: size_t, j: size_t): (a) // symintr mtrxszref_get_at overload mtrxszref_get_at with mtrxszref_get_at_int of 0 overload mtrxszref_get_at with mtrxszref_get_at_size of 0 // (* ****** ****** *) // fun{a:t0p} mtrxszref_set_at_int (M: mtrxszref(a), i: int, j: int, x: a): void fun{a:t0p} mtrxszref_set_at_size (M: mtrxszref(a), i: size_t, j: size_t, x: a): void // symintr mtrxszref_set_at overload mtrxszref_set_at with mtrxszref_set_at_int of 0 overload mtrxszref_set_at with mtrxszref_set_at_size of 0 // (* ****** ****** *) (* fprint_matrix$sep1 // col separation fprint_matrix$sep2 // row separation *) fun{a:vt0p} fprint_mtrxszref ( out: FILEref, M: mtrxszref(a) ) : void // end of [fprint_mtrxszref] fun{a:vt0p} fprint_mtrxszref_sep ( out: FILEref , M: mtrxszref(a), sep1: NSH(string), sep2: NSH(string) ) : void // end of [fprint_mtrxszref_sep] (* ****** ****** *) // (* fun{ a:vt0p}{env:vt0p } matrix_foreach$fwork (x: &a >> _, env: &(env) >> _): void *) // fun {a:vt0p} mtrxszref_foreach(mtrxszref(a)): void fun{ a:vt0p}{env:vt0p } mtrxszref_foreach_env(mtrxszref(a), &(env) >> _) : void // (* ****** ****** *) // (* fun {a:vt0p} matrix_tabulate$fopr(i: size_t, j: size_t): (a) *) fun {a:vt0p} mtrxszref_tabulate (nrow: size_t, ncol: size_t): mtrxszref(a) // (* ****** ****** *) // fun{a:t0p} streamize_mtrxszref_row_elt (MSZ: mtrxszref(a)): stream_vt(a) fun{a:t0p} streamize_mtrxszref_col_elt (MSZ: mtrxszref(a)): stream_vt(a) // fun{a:t0p} streamize_matrixref_row_elt {m,n:int} (matrixref(a, m, n), size_t(m), size_t(n)): stream_vt(a) fun{a:t0p} streamize_matrixref_col_elt {m,n:int} (matrixref(a, m, n), size_t(m), size_t(n)): stream_vt(a) // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) overload [] with matrixref_get_at_int of 0 overload [] with matrixref_get_at_size of 0 overload [] with matrixref_set_at_int of 0 overload [] with matrixref_set_at_size of 0 (* ****** ****** *) overload [] with mtrxszref_get_at_int of 0 overload [] with mtrxszref_get_at_size of 0 overload [] with mtrxszref_set_at_int of 0 overload [] with mtrxszref_set_at_size of 0 (* ****** ****** *) overload .nrow with mtrxszref_get_nrow overload .ncol with mtrxszref_get_ncol (* ****** ****** *) overload fprint with fprint_matrixref overload fprint with fprint_matrixref_sep overload fprint with fprint_mtrxszref overload fprint with fprint_mtrxszref_sep (* ****** ****** *) overload ptrcast with matrixref2ptr (* ****** ****** *) (* end of [matrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/arith_prf.sats0000644000175000017500000001651713431250607021760 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/arith_prf.atxt ** Time of generation: Thu Feb 14 11:29:37 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2011 *) (* ****** ****** *) #if(0) // // It is available in [basic_dyn.sats] // dataprop MUL_prop ( int, int, int ) = // MUL_prop | {n:int} MULbas (0, n, 0) | {m:nat}{n:int}{p:int} MULind (m+1, n, p+n) of MUL_prop (m, n, p) | {m:pos}{n:int}{p:int} MULneg (~(m), n, ~(p)) of MUL_prop (m, n, p) // propdef MUL = MUL_prop // #endif (* ****** ****** *) praxi mul_make : {m,n:int} () - MUL (m, n, m*n) praxi mul_elim : {m,n:int} {p:int} MUL (m, n, p) - [p == m*n] void (* ****** ****** *) // prfun mul_istot{m,n:int}(): [p:int] MUL(m, n, p) // prfun mul_isfun {m,n:int}{p1,p2:int} ( MUL(m, n, p1), MUL(m, n, p2) ) : [p1==p2] void // endfun prfun mul_isfun2{m,n:int}{p1,p2:int} (MUL(m, n, p1), MUL(m, n, p2)): EQINT(p1, p2) // (* ****** ****** *) // // HX: (m+i)*n = m*n+i*n // praxi mul_add_const {i:int}{m,n:int}{p:int} (pf: MUL (m, n, p)): MUL(m+i, n, p+i*n) // end of [mul_add_const] // (* ****** ****** *) // // HX: (ax+b)*(cy+d) = ac*xy + ad*x + bc*y + bd // praxi mul_expand_linear // a,b,c,d: constants! {a,b:int} {c,d:int} {x,y:int}{xy:int} ( pf: MUL(x, y, xy) ) : MUL(a*x+b, c*y+d, a*c*xy+a*d*x+b*c*y+b*d) // end of [mul_expand_linear] (* ****** ****** *) // // HX: (a1x1+a2x2+b)*(c1y1+c2y2+d) = ... // praxi mul_expand2_linear // a1,b1,c1,a2,b2,c2: constants! {a1,a2,b:int} {c1,c2,d:int} {x1,x2:int}{y1,y2:int} {x1y1,x1y2,x2y1,x2y2:int} ( MUL(x1, y1, x1y1), MUL(x1, y2, x1y2) , MUL(x2, y1, x2y1), MUL(x2, y2, x2y2) ) : MUL_prop ( a1*x1+a2*x2+b , c1*y1+c2*y2+d , a1*c1*x1y1 + a1*c2*x1y2 + a2*c1*x2y1 + a2*c2*x2y2 + a1*d*x1 + a2*d*x2 + b*c1*y1 + b*c2*y2 + b*d ) (* end of [mul_expand2_linear] *) (* ****** ****** *) // prfun mul_gte_gte_gte : {m,n:int | m >= 0; n >= 0} () - [m*n >= 0] void prfun mul_lte_gte_lte : {m,n:int | m <= 0; n >= 0} () - [m*n <= 0] void prfun mul_gte_lte_lte : {m,n:int | m >= 0; n <= 0} () - [m*n <= 0] void prfun mul_lte_lte_gte : {m,n:int | m <= 0; n <= 0} () - [m*n >= 0] void // (* ****** ****** *) // prfun mul_nat_nat_nat : {m,n:nat} {p:int} MUL(m, n, p) - [p >= 0] void prfun mul_pos_pos_pos : {m,n:pos} {p:int} MUL(m, n, p) - [p >= m+n-1] void // (* ****** ****** *) // prfun mul_negate {m,n:int}{p:int}(pf: MUL(m, n, p)): MUL(~m, n, ~p) prfun mul_negate2 {m,n:int}{p:int}(pf: MUL(m, n, p)): MUL(m, ~n, ~p) // (* ****** ****** *) // // HX: m*n = n*m // prfun mul_commute {m,n:int}{p:int}(pf: MUL(m, n, p)): MUL(n, m, p) prfun mul_is_commutative {m,n:int}{p,q:int}(pf1: MUL(m, n, p), pf2: MUL(n, m, q)): [p==q] void // (* ****** ****** *) // // HX: m*(n1+n2) = m*n1+m*n2 // prfun mul_distribute {m:int}{n1,n2:int}{p1,p2:int} (pf1: MUL(m, n1, p1), pf2: MUL(m, n2, p2)): MUL(m, n1+n2, p1+p2) // // HX: (m1+m2)*n = m1*n + m2*n // prfun mul_distribute2 {m1,m2:int}{n:int}{p1,p2:int} (pf1: MUL(m1, n, p1), pf2: MUL(m2, n, p2)): MUL(m1+m2, n, p1+p2) // (* ****** ****** *) prfun mul_is_associative {x,y,z:int} {xy,yz:int} {xy_z,x_yz:int} ( pf1: MUL (x, y, xy), pf2: MUL (y, z, yz) , pf3: MUL (xy, z, xy_z), pf4: MUL (x, yz, x_yz) ) : [xy_z==x_yz] void (* ****** ****** *) // praxi div_istot {x,y:int | x >= 0; y > 0} (): DIV(x, y, x/y) // praxi divmod_istot { x,y:int | x >= 0; y > 0 } ((*void*)): [q,r:nat | r < y] DIVMOD(x, y, q, r) // (* ****** ****** *) praxi divmod_isfun {x,y:int | x >= 0; y > 0} {q1,q2:int} {r1,r2:int} ( pf1: DIVMOD (x, y, q1, r1) , pf2: DIVMOD (x, y, q2, r2) ) : [q1==q2;r1==r2] void // end of [divmod_isfun] (* ****** ****** *) praxi divmod_elim {x,y:int | x >= 0; y > 0} {q,r:int} ( pf: DIVMOD (x, y, q, r) ) : [qy:nat | 0 <= r; r < y; x==qy+r] MUL (q, y, qy) praxi divmod_mul_elim {x,y:int | x >= 0; y > 0} {q,r:int} (pf: DIVMOD (x, y, q, r)) : [0 <= q; 0 <= r; r < y; q==ndiv_int_int(x, y); x==q*y+r] void // end of [divmod_mul_elim] (* ****** ****** *) // dataprop EXP2 (int, int) = | EXP2bas (0, 1) | {n:nat}{p:nat} EXP2ind (n+1, 2*p) of EXP2 (n, p) // end of [EXP2] // prfun lemma_exp2_param : {n:int}{p:int} EXP2 (n, p) - [n>=0;p>=1] void // end of [lemma_exp2_param] // prfun exp2_istot {n:nat} (): [p:nat] EXP2 (n, p) prfun exp2_isfun {n:nat} {p1,p2:int} (pf1: EXP2 (n, p1), pf2: EXP2 (n, p2)): [p1==p2] void // end of [exp2_isfun] // // HX: proven in [arith_prf.dats] // prfun exp2_ispos {n:nat} {p:int} (pf: EXP2 (n, p)): [p >= 1] void // end of [exp2_ispos] // // HX: proven in [arith_prf.dats] // prfun exp2_is_mono {n1,n2:nat | n1 <= n2} {p1,p2:int} (pf1: EXP2 (n1, p1), pf2: EXP2 (n2, p2)): [p1 <= p2] void // end of [exp2_is_mono] // // HX: proven in [arith_prf.dats] // prfun exp2_muladd {n1,n2:nat | n1 <= n2} {p1,p2:int} {p:int} ( pf1: EXP2 (n1, p1), pf2: EXP2 (n2, p2), pf3: MUL (p1, p2, p) ) : EXP2 (n1+n2, p) // end of [exp2_muladd] // (* ****** ****** *) absprop EXP (int(*base*), int(*power*), int(*res*)) praxi lemma_exp_param {b:int}{n:int}{p:int} (pf: EXP (b, n, p)): [n >= 0] void // end of [lemma_exp_param] praxi exp_istot {b:int}{n:nat} (): [p:nat] EXP (b, n, p) praxi exp_isfun {b:int}{n:int}{p1,p2:int} (pf1: EXP (b, n, p1), pf2: EXP (b, n, p2)): [p1==p2] void // end of [exp_isfun] praxi exp_elim_0 {n:pos}{p:int} (pf: EXP (0, n, p)): [p==0] void praxi exp_elim_1 {n:int}{p:int} (pf: EXP (1, n, p)): [p==1] void praxi exp_elim_2 {n:int}{p:int} (pf: EXP (2, n, p)): EXP2 (n, p) praxi exp_elim_b_0 {b:int}{p:int} (pf: EXP (b, 0, p)): [p==1] void praxi exp_elim_b_1 {b:int}{p:int} (pf: EXP (b, 1, p)): [p==b] void praxi exp_elim_b_2 {b:int}{p:int} (pf: EXP (b, 2, p)): MUL (b, b, p) praxi exp_muladd {b:int}{n1,n2:int}{p1,p2:int}{p:int} ( pf1: EXP (b, n1, p1), pf2: EXP (b, n2, p2) ) : EXP (b, n1+n2, p1*p2) // end of [exp_muladd] praxi exp_expmul {b:int}{n1,n2:int}{bn1:int}{bn1n2:int} ( pf1: EXP (b, n1, bn1), pf2: EXP (bn1, n2, bn1n2) ) : EXP (b, n1*n2, bn1n2) // end of [exp_muladd] (* ****** ****** *) (* end of [arith_prf.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/tuple.sats0000644000175000017500000001137413431250607021127 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/tuple.atxt ** Time of generation: Thu Feb 14 11:29:40 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: December, 2012 *) (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) // typedef tup2 (a0:t0p, a1:t0p) = @(a0, a1) typedef tup3 (a0:t0p, a1:t0p, a2:t0p) = @(a0, a1, a2) typedef tup4 (a0:t0p, a1:t0p, a2:t0p, a3:t0p) = @(a0, a1, a2, a3) // stadef tup = tup2 stadef tup = tup3 stadef tup = tup4 // (* ****** ****** *) // typedef tupbox1 (a0:t0p) = $tup(a0) typedef tupbox2 (a0:t0p, a1:t0p) = $tup(a0, a1) typedef tupbox3 (a0:t0p, a1:t0p, a2:t0p) = $tup(a0, a1, a2) typedef tupbox4 (a0:t0p, a1:t0p, a2:t0p, a3:t0p) = $tup(a0, a1, a2, a3) // stadef tupbox = tupbox1 stadef tupbox = tupbox2 stadef tupbox = tupbox3 stadef tupbox = tupbox4 // (* ****** ****** *) fun{} fprint_tup$beg (out: FILEref): void fun{} fprint_tup$end (out: FILEref): void fun{} fprint_tup$sep (out: FILEref): void (* ****** ****** *) fun{ a0,a1:t0p } fprint_tupval2 (out: FILEref, x: @(a0, a1)): void fun{ a0,a1,a2:t0p } fprint_tupval3 (out: FILEref, x: @(a0, a1, a2)): void fun{ a0,a1,a2,a3:t0p } fprint_tupval4 (out: FILEref, x: @(a0, a1, a2, a3)): void (* ****** ****** *) fun{ a0,a1:vt0p } fprint_tupref2 (out: FILEref, x: &(a0, a1)): void fun{ a0,a1,a2:vt0p } fprint_tupref3 (out: FILEref, x: &(a0, a1, a2)): void fun{ a0,a1,a2,a3:vt0p } fprint_tupref4 (out: FILEref, x: &(a0, a1, a2, a3)): void (* ****** ****** *) fun{} fprint_tupbox$beg (out: FILEref): void fun{} fprint_tupbox$end (out: FILEref): void fun{} fprint_tupbox$sep (out: FILEref): void (* ****** ****** *) fun{ a0:t0p } fprint_tupbox1 (out: FILEref, x: $tup(a0)): void fun{ a0,a1:t0p } fprint_tupbox2 (out: FILEref, x: $tup(a0, a1)): void fun{ a0,a1,a2:t0p } fprint_tupbox3 (out: FILEref, x: $tup(a0, a1, a2)): void fun{ a0,a1,a2,a3:t0p } fprint_tupbox4 (out: FILEref, x: $tup(a0, a1, a2, a3)): void (* ****** ****** *) fun{ a0,a1:t0p } tupval2_equal (x: @(a0, a1), y: @(a0, a1)):<> bool // end of [tupval2_equal] fun{ a0,a1,a2:t0p } tupval3_equal (x: @(a0, a1, a2), y: @(a0, a1, a2)):<> bool // end of [tupval3_equal] fun{ a0,a1,a2,a3:t0p } tupval4_equal (x: @(a0, a1, a2, a3), y: @(a0, a1, a2, a3)):<> bool // end of [tupval4_equal] (* ****** ****** *) fun{ a0,a1:vt0p } tupref2_equal (x: &(a0, a1), y: &(a0, a1)):<> bool // end of [tupref2_equal] fun{ a0,a1,a2:vt0p } tupref3_equal (x: &(a0, a1, a2), y: &(a0, a1, a2)):<> bool // end of [tupref3_equal] fun{ a0,a1,a2,a3:vt0p } tupref4_equal (x: &(a0, a1, a2, a3), y: &(a0, a1, a2, a3)):<> bool // end of [tupref4_equal] (* ****** ****** *) fun{ a0,a1:t0p } tupval2_compare (x: @(a0, a1), y: @(a0, a1)):<> int // end of [tupval2_compare] fun{ a0,a1,a2:t0p } tupval3_compare (x: @(a0, a1, a2), y: @(a0, a1, a2)):<> int // end of [tupval3_compare] fun{ a0,a1,a2,a3:t0p } tupval4_compare (x: @(a0, a1, a2, a3), y: @(a0, a1, a2, a3)):<> int // end of [tupval4_compare] (* ****** ****** *) fun{ a0,a1:vt0p } tupref2_compare (x: &(a0, a1), y: &(a0, a1)):<> int // end of [tupref2_compare] fun{ a0,a1,a2:vt0p } tupref3_compare (x: &(a0, a1, a2), y: &(a0, a1, a2)):<> int // end of [tupref3_compare] fun{ a0,a1,a2,a3:vt0p } tupref4_compare (x: &(a0, a1, a2, a3), y: &(a0, a1, a2, a3)):<> int // end of [tupref4_compare] (* ****** ****** *) (* end of [tuple.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/checkast.sats0000644000175000017500000000633513431250607021564 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/checkast.atxt ** Time of generation: Thu Feb 14 11:29:40 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: December, 2013 *) (* ****** ****** *) #define ATS_PACKNAME "ATSLIB.prelude.checkast" (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) // fun{} checkast_charNZ (c: char, msg: RD(string)): charNZ // (* ****** ****** *) fun{tk:tk} checkast_gintLt{i:int} (x: g0int(tk), i: int i, msg: RD(string)): g1intLt(tk, i) fun{tk:tk} checkast_gintLte{i:int} (x: g0int(tk), i: int i, msg: RD(string)): g1intLte(tk, i) fun{tk:tk} checkast_gintGt{i:int} (x: g0int(tk), i: int i, msg: RD(string)): g1intGt(tk, i) fun{tk:tk} checkast_gintGte{i:int} (x: g0int(tk), i: int i, msg: RD(string)): g1intGte(tk, i) fun{tk:tk} checkast_gintBtw{i,j:int} (x: g0int(tk), i: int i, j: int j, msg: RD(string)): g1intBtw(tk, i, j) fun{tk:tk} checkast_gintBtwe{i,j:int} (x: g0int(tk), i: int i, j: int j, msg: RD(string)): g1intBtwe(tk, i, j) (* ****** ****** *) macdef ckastloc_charNZ(x) = checkast_charNZ(,(x), $mylocation) (* ****** ****** *) macdef ckastloc_gintLt(x, i) = checkast_gintLt(,(x), ,(i), $mylocation) macdef ckastloc_gintLte(x, i) = checkast_gintLte(,(x), ,(i), $mylocation) macdef ckastloc_gintGt(x, i) = checkast_gintGt(,(x), ,(i), $mylocation) macdef ckastloc_gintGte(x, i) = checkast_gintGte(,(x), ,(i), $mylocation) macdef ckastloc_gintBtw(x, i, j) = checkast_gintBtw(,(x), ,(i), ,(j), $mylocation) macdef ckastloc_gintBtwe(x, i, j) = checkast_gintBtwe(,(x), ,(i), ,(j), $mylocation) (* ****** ****** *) fun{} checkast_Ptr1(x: ptr, msg: RD(string)): Ptr1 (* ****** ****** *) macdef ckastloc_Ptr1(x) = checkast_Ptr1(,(x), $mylocation) (* ****** ****** *) fun{} checkast_Strptr1(x: Strptr0, msg: RD(string)): Strptr1 (* ****** ****** *) macdef ckastloc_Strptr1(x) = checkast_Strptr1(,(x), $mylocation) (* ****** ****** *) (* end of [checkast.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/string.sats0000644000175000017500000003453013431250607021303 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/string.atxt ** Time of generation: Thu Feb 14 11:29:39 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2011 *) (* ****** ****** *) (* ** HX: a string is a null-terminated arrayref of characters *) (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) // typedef stringLt(n:int) = [k:nat | k < n] string(k) typedef stringLte(n:int) = [k:nat | k <= n] string(k) // typedef stringGt(n:int) = [k:int | k > n] string(k) typedef stringGte(n:int) = [k:int | k >= n] string(k) // typedef stringBtw (m:int, n:int) = [k:int | m <= k; k < n] string(k) typedef stringBtwe (m:int, n:int) = [k:int | m <= k; k <= n] string(k) // (* ****** ****** *) // typedef stringlst = List0(string) vtypedef stringlst_vt = List0_vt(string) // (* ****** ****** *) // typedef stringopt = Option(string) // (* ****** ****** *) dataprop string_index_p ( n: int, int(*i*), int(*c*) ) = | string_index_p_eqz(n, n, 0) | {i:int | n > i} {c:int8 | c != 0} string_index_p_neqz(n, i, c) // end of [string_index_p] (* ****** ****** *) exception StringSubscriptExn of ((*void*)) (* ****** ****** *) // praxi lemma_string_param{n:int}(string n): [n >= 0] void // (* ****** ****** *) castfn string2ptr (x: string):<> Ptr1 overload ptrcast with string2ptr (* ****** ****** *) // // HX: // [string2string] = [string1_of_string0] // castfn g0ofg1_string (x: String):<> string castfn g1ofg0_string (x: string):<> String0 // overload g0ofg1 with g0ofg1_string // index-erasing overload g1ofg0 with g1ofg0_string // index-inducing // (* ****** ****** *) fun{} string_char (str: string):<> char (* ****** ****** *) // fun{} string_nil((*void*)): strnptr(0) fun{} string_sing(chr: charNZ): strnptr(1) // (* ****** ****** *) // fun{} string_is_empty {n:int}(str: string(n)):<> bool(n==0) fun{} string_isnot_empty {n:int}(str: string(n)):<> bool(n > 0) // (* ****** ****** *) // fun{} string_is_atend_size {n:int}{i:nat | i <= n} (s: string(n), i: size_t(i)):<> bool(i==n) fun{tk:tk} string_is_atend_gint {n:int}{i:nat | i <= n} (s: string(n), i: g1int(tk, i)):<> bool(i==n) fun{tk:tk} string_is_atend_guint {n:int}{i:nat | i <= n} (s: string(n), i: g1uint(tk, i)):<> bool(i==n) // symintr string_is_atend overload string_is_atend with string_is_atend_gint overload string_is_atend with string_is_atend_guint // (* ****** ****** *) macdef string_isnot_atend (string, index) = ~string_is_atend (,(string), ,(index)) // end of [string_isnot_atend] (* ****** ****** *) // fun{} string_head{n:pos} (str: string(n)):<> charNZ fun{} string_tail{n:pos} (str: string(n)):<> string(n-1) // (* ****** ****** *) fun{} string_get_at_size {n:int}{i:nat | i < n} (s: string(n), i: size_t(i)):<> charNZ fun{tk:tk} string_get_at_gint {n:int}{i:nat | i < n} (s: string(n), i: g1int(tk, i)):<> charNZ fun{tk:tk} string_get_at_guint {n:int}{i:nat | i < n} (s: string(n), i: g1uint(tk, i)):<> charNZ // symintr string_get_at overload string_get_at with string_get_at_size of 1 overload string_get_at with string_get_at_gint of 0 overload string_get_at with string_get_at_guint of 0 // (* ****** ****** *) fun{} string_test_at_size {n:int}{i:nat | i <= n} (s: string(n), i: size_t(i)):<> [c:int] (string_index_p(n, i, c) | char(c)) fun{tk:tk} string_test_at_gint {n:int}{i:nat | i <= n} (s: string(n), i: g1int(tk, i)):<> [c:int] (string_index_p(n, i, c) | char(c)) fun{tk:tk} string_test_at_guint {n:int}{i:nat | i <= n} (s: string(n), i: g1uint(tk, i)):<> [c:int] (string_index_p(n, i, c) | char(c)) // symintr string_test_at overload string_test_at with string_test_at_size of 1 overload string_test_at with string_test_at_gint of 0 overload string_test_at with string_test_at_guint of 0 // (* ****** ****** *) fun lt_string_string (x1: string, x2: string):<> bool = "mac#%" overload < with lt_string_string fun lte_string_string (x1: string, x2: string):<> bool = "mac#%" overload <= with lte_string_string fun gt_string_string (x1: string, x2: string):<> bool = "mac#%" overload > with gt_string_string fun gte_string_string (x1: string, x2: string):<> bool = "mac#%" overload >= with gte_string_string fun eq_string_string (x1: string, x2: string):<> bool = "mac#%" overload = with eq_string_string fun neq_string_string (x1: string, x2: string):<> bool = "mac#%" overload != with neq_string_string overload <> with neq_string_string fun compare_string_string (x1: string, x2: string):<> Sgn = "mac#%" overload compare with compare_string_string (* ****** ****** *) fun{ } strcmp (x1: string, x2: string):<> int fun{ } strintcmp {n1,n2:int | n2 >=0} (x1: string n1, n2: int n2):<> int(sgn(n1-n2)) // end of [strintcmp] fun{ } strlencmp {n1,n2:int} (x1: string n1, x2: string n2):<> int(sgn(n1-n2)) // end of [strlencmp] (* ****** ****** *) fun{} string_make_list {n:int} (cs: list(charNZ, n)): strnptr(n) fun{} string_make_listlen {n:int} (cs: list(charNZ, n), n: int(n)): strnptr(n) (* ****** ****** *) fun{} string_make_rlist {n:int} (cs: list(charNZ, n)): strnptr(n) // end of [string_make_rlist] fun{} string_make_rlistlen {n:int} (cs: list(charNZ, n), n: int(n)): strnptr(n) // end of [string_make_rlistlen] (* ****** ****** *) // fun{} string_make_list_vt {n:int} (cs: list_vt(charNZ, n)): strnptr(n) // fun{} string_make_listlen_vt {n:int} (cs: list_vt(charNZ, n), n: int(n)): strnptr(n) // (* ****** ****** *) // fun{} string_make_rlist_vt {n:int} (cs: list_vt(charNZ, n)): strnptr(n) // fun{} string_make_rlistlen_vt {n:int} (cs: list_vt(charNZ, n), n: int(n)): strnptr(n) // (* ****** ****** *) // fun{} string_make_stream (cs: stream(charNZ)): Strptr1 fun{} string_make_stream_vt (cs: stream_vt(charNZ)): Strptr1 // fun{} string_make_stream$bufsize ((*void*)):<> intGte(1) // HX: the default = 16 // (* ****** ****** *) fun{} string_make_substring {n:int}{st,ln:nat | st+ln <= n} (str: string(n), st: size_t st, ln: size_t ln): strnptr(ln) // end of [string_make_substring] (* ****** ****** *) // fun print_string(x: string): void = "mac#%" fun prerr_string(x: string): void = "mac#%" fun fprint_string(out: FILEref, x: string): void = "mac#%" // (* ****** ****** *) // fun fprint_substring {n:int}{st,ln:nat | st+ln <= n} ( out: FILEref, str: string(n), st: size_t(st), ln: size_t(ln) ) : void = "mac#%" // end of [fprint_substring] // (* ****** ****** *) fun{} strchr{n:int} (str: string(n), c0: char):<> ssizeBtwe(~1, n) // end of [strchr] fun{} strrchr{n:int} (str: string(n), c0: char):<> ssizeBtwe(~1, n) // end of [strrchr] fun{} strstr{n:int} (haystack: string(n), needle: string):<> ssizeBtw(~1, n) // end of [strstr] (* ****** ****** *) fun{} strspn{n:int} // spanning (str: string(n), accept: string):<> sizeLte(n) // end of [strspn] fun{} strcspn{n:int} // complement spanning (str: string(n), accept: string):<> sizeLte(n) // end of [strcspn] (* ****** ****** *) fun{} string_index{n:int} (str: string(n), c0: charNZ):<> ssizeBtw(~1, n) // end of [string_index] fun{} string_rindex{n:int} (str: string(n), c0: charNZ):<> ssizeBtw(~1, n) // end of [string_rindex] (* ****** ****** *) // fun{} string0_length (x: NSH(string)):<> size_t fun{} string1_length {n:int} (x: NSH(string(n))):<> size_t(n) // symintr strlen symintr string_length overload strlen with string0_length of 0 overload strlen with string1_length of 10 overload string_length with string0_length of 0 overload string_length with string1_length of 10 // (* ****** ****** *) // fun{} string0_nlength (x: NSH(string), n: size_t):<> size_t fun{} string1_nlength {n1,n2:int} (NSH(string(n1)), size_t(n2)):<> size_t(min(n1,n2)) // symintr string_nlength overload string_nlength with string0_nlength of 0 overload string_nlength with string1_nlength of 10 // (* ****** ****** *) // fun{} string0_copy (cs: NSH(string)): Strptr1 fun{} string1_copy {n:int} (cs: NSH(string(n))): strnptr(n) // (* ****** ****** *) // // HX-2016-11-13: // This can be done by calling // [string_copy] and then [strptr_set_at] // fun{} string_fset_at_size {n:int}{i:nat | i < n} (NSH(string(n)), i: size_t(i), c: charNZ): string(n) // (* fun{tk:tk} string_fset_at_gint {n:int}{i:nat | i < n} (NSH(string(n)), i: g1int(tk, i), c: charNZ): string(n) fun{tk:tk} string_fset_at_guint {n:int}{i:nat | i < n} (NSH(string(n)), i: g1uint(tk, i), c: charNZ): string(n) *) // symintr string_fset_at overload string_fset_at with string_fset_at_size of 1 // (* ****** ****** *) // fun{} string0_append ( x1: NSH(string), x2: NSH(string) ) : Strptr1 // end-of-function fun{} string1_append {n1,n2:int} ( x1: NSH(string(n1)), x2: NSH(string(n2)) ) : strnptr(n1+n2) // end of [string1_append] // symintr string_append overload string_append with string0_append of 0 (* // // HX: too much of a surprise! // overload string_append with string1_append of 20 *) // (* ****** ****** *) // fun{} string0_append3 ( x1: NSH(string) , x2: NSH(string), x3: NSH(string) ) : Strptr1 // end-of-function fun{} string0_append4 ( x1: NSH(string), x2: NSH(string) , x3: NSH(string), x4: NSH(string) ) : Strptr1 // end-of-function fun{} string0_append5 ( x1: NSH(string), x2: NSH(string) , x3: NSH(string), x4: NSH(string), x5: NSH(string) ) : Strptr1 // end-of-function fun{} string0_append6 ( x1: NSH(string), x2: NSH(string), x3: NSH(string) , x4: NSH(string), x5: NSH(string), x6: NSH(string) ) : Strptr1 // end-of-function // overload string_append with string0_append3 of 0 overload string_append with string0_append4 of 0 overload string_append with string0_append5 of 0 overload string_append with string0_append6 of 0 // (* ****** ****** *) // fun{} stringarr_concat{n:int} ( xs: arrayref(string, n), n: size_t(n) ) : Strptr1 // end of [stringarr] // fun{} stringlst_concat(List(string)): Strptr1 // (* ****** ****** *) // fun{} string_implode {n:int} (cs: list(charNZ, n)): strnptr(n) // fun{} string_explode {n:int} (x: string(n)): list_vt(charNZ, n) // (* ****** ****** *) // fun{} string_tabulate$fopr(size_t): charNZ fun{} string_tabulate{n:int}(n: size_t(n)): strnptr(n) // (* ****** ****** *) // fun{} string_forall(str: string): bool fun{} string_forall$pred(c: char): bool // fun{} string_iforall(str: string): bool fun{} string_iforall$pred(i: int, c: char): bool // (* ****** ****** *) // fun{ env:vt0p } string_foreach$cont(c: char, env: &env): bool fun{ env:vt0p } string_foreach$fwork(c: char, env: &(env) >> _): void // fun{} string_foreach{n:int}(str: string(n)): sizeLte(n) fun{ env:vt0p } string_foreach_env {n:int}(str: string(n), env: &(env) >> _): sizeLte(n) // end of [string_foreach_env] // (* ****** ****** *) // fun{ env:vt0p } string_rforeach$cont(c: char, env: &env): bool fun{ env:vt0p } string_rforeach$fwork(c: char, env: &(env) >> _): void // fun{} string_rforeach{n:int}(str: string(n)): sizeLte(n) fun{ env:vt0p } string_rforeach_env {n:int}(str: string(n), env: &(env) >> _): sizeLte(n) // end of [string_rforeach_env] // (* ****** ****** *) // fun{} streamize_string_char(string): stream_vt(charNZ) fun{} un_streamize_string_char(stream_vt(charNZ)): Strptr1 // (* ****** ****** *) // (* ** HX: ** [stropt_none] is just the null pointer *) fun stropt_none((*void*)):<> stropt(~1) = "mac#%" // (* ****** ****** *) // castfn stropt0_some(x: SHR(string)):<> Stropt1 castfn stropt1_some{n:int}(x: SHR(string(n))):<> stropt(n) // symintr stropt_some overload stropt_some with stropt0_some of 0 overload stropt_some with stropt1_some of 10 // (* ****** ****** *) fun{} stropt_is_none{n:int}(stropt(n)):<> bool(n < 0) fun{} stropt_is_some{n:int}(stropt(n)):<> bool(n >= 0) (* ****** ****** *) castfn stropt_unsome{n:nat}(opt: stropt(n)):<> string(n) (* ****** ****** *) // fun{} stropt_length{n:int}(opt: stropt(n)):<> ssize_t(n) // (* ****** ****** *) // fun print_stropt(opt: Stropt0): void = "mac#%" fun prerr_stropt(opt: Stropt0): void = "mac#%" fun fprint_stropt(out: FILEref, opt: Stropt0): void = "mac#%" // (* ****** ****** *) // // overloading for certain symbols // overload [] with string_get_at_size of 1 overload [] with string_get_at_gint of 0 overload [] with string_get_at_guint of 0 // overload iseqz with string_is_empty of 10 overload isneqz with string_isnot_empty of 10 // overload length with string_length // (* ****** ****** *) // overload .head with string_head of 10 overload .tail with string_tail of 10 // (* ****** ****** *) // overload copy with string0_copy of 0 // (* // // HX: too much of a surprise! // overload copy with string1_copy of 10 *) // overload print with print_string of 0 overload prerr with prerr_string of 0 overload fprint with fprint_string of 0 // (* ****** ****** *) // overload unsome with stropt_unsome // overload iseqz with stropt_is_none overload isneqz with stropt_is_some // overload length with stropt_length of 0 // overload print with print_stropt of 0 overload prerr with prerr_stropt of 0 overload fprint with fprint_stropt of 0 // (* ****** ****** *) (* end of [string.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/matrixptr.sats0000644000175000017500000001747013431250607022033 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/matrixptr.atxt ** Time of generation: Thu Feb 14 11:29:43 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) absvtype matrixptr_vt0ype_addr_int_int_vtype (a:vt@ype+, l: addr, m: int, n: int) = ptr // stadef matrixptr = matrixptr_vt0ype_addr_int_int_vtype vtypedef matrixptr (a:vt@ype, m: int, n: int) = [l:addr] matrixptr(a, l, m, n) // (* ****** ****** *) absvtype matrixptrout_vt0ype_addr_int_int_vtype (a:vt@ype, l: addr, m: int, n: int) = ptr // stadef matrixptrout = matrixptrout_vt0ype_addr_int_int_vtype // (* ****** ****** *) praxi lemma_matrixptr_param{a:vt0p} {l:addr}{m,n:int} (A: !matrixptr(a, l, m, n)): [m >= 0; n >= 0] void // end of [lemma_matrixptr_param] (* ****** ****** *) castfn matrixptr_encode : {a:vt0p}{l:addr}{m,n:int} (matrix_v(INV(a), l, m, n), mfree_gc_v(l) | ptr l) -<0> matrixptr(a, l, m, n) // end of [matrixptr_encode] castfn matrixptr_encode2 : {a:vt0p}{l:addr}{m,n:int} @(matrix_v(INV(a), l, m, n), mfree_gc_v(l) | ptr l) -<0> matrixptr(a, l, m, n) // end of [matrixptr_encode2] (* ****** ****** *) // castfn matrixptr2ptr {a:vt0p} {l:addr}{m,n:int} (A: !matrixptr(INV(a), l, m, n)):<> ptr(l) // castfn matrixptrout2ptr {a:t0p} {l:addr}{m,n:int} (A: !matrixptrout(INV(a), l, m, n)):<> ptr(l) // (* ****** ****** *) praxi matrixptr_takeout {a:vt0p}{l:addr}{m,n:int} ( !matrixptr(INV(a), l, m, n) >> matrixptrout(a?, l, m, n) ) : matrix_v(a, l, m, n) // endfun praxi matrixptr_addback {a:vt0p}{l:addr}{m,n:int} ( pf: matrix_v(INV(a), l, m, n) | mat: !matrixptrout(a?, l, m, n) >> matrixptr(a, l, m, n) ) : void // end of [matrixptr_addback] (* ****** ****** *) fun{ } arrayptr2matrixptr_int {a:vt0p}{l:addr}{m,n:nat} (A: arrayptr(INV(a), l, m*n), m: int m, n: int n):<> matrixptr(a, l, m, n) fun{ } arrayptr2matrixptr_size {a:vt0p}{l:addr}{m,n:int} (A: arrayptr(INV(a), l, m*n), m: size_t m, n: size_t n):<> matrixptr(a, l, m, n) // symintr arrayptr2matrixptr overload arrayptr2matrixptr with arrayptr2matrixptr_int overload arrayptr2matrixptr with arrayptr2matrixptr_size // (* ****** ****** *) fun{ a:t0p } matrixptr_make_elt {m,n:int} (m: size_t m, n: size_t n, x: a): matrixptr(a, m, n) // end of [matrixptr_make_elt] (* ****** ****** *) fun{a:t0p} matrixptr_get_at_int {m,n:int} ( A: !matrixptr(INV(a), m, n), i: natLt (m), n: int n, j: natLt (n) ) :<> (a) // end of [matrixptr_get_at_int] fun{a:t0p} matrixptr_get_at_size {m,n:int} ( A: !matrixptr(INV(a), m, n), i: sizeLt (m), n: size_t n, j: sizeLt (n) ) :<> (a) // end of [matrixptr_get_at_size] // symintr matrixptr_get_at overload matrixptr_get_at with matrixptr_get_at_int of 0 overload matrixptr_get_at with matrixptr_get_at_size of 0 // (* ****** ****** *) fun{a:t0p} matrixptr_set_at_int {m,n:int} ( A: !matrixptr(INV(a), m, n), i: natLt (m), n: int n, j: natLt (n), x: a ) : void // end of [matrixptr_set_at_int] fun{a:t0p} matrixptr_set_at_size {m,n:int} ( A: !matrixptr(INV(a), m, n), i: sizeLt (m), n: size_t n, j: sizeLt (n), x: a ) : void // end of [matrixptr_set_at_size] // symintr matrixptr_set_at overload matrixptr_set_at with matrixptr_set_at_int of 0 overload matrixptr_set_at with matrixptr_set_at_size of 0 // (* ****** ****** *) fun{a:vt0p} matrixptr_exch_at_int {m,n:int} ( A: !matrixptr(INV(a), m, n) , i: natLt (m), n: int n, j: natLt (n), x: &a>>a ) : void // end of [matrixptr_exch_at_int] fun{a:vt0p} matrixptr_exch_at_size {m,n:int} ( A: !matrixptr(INV(a), m, n) , i: sizeLt (m), n: size_t n, j: sizeLt (n), x: &a>>a ) : void // end of [matrixptr_exch_at_size] // symintr matrixptr_exch_at overload matrixptr_exch_at with matrixptr_exch_at_int overload matrixptr_exch_at with matrixptr_exch_at_size // (* ****** ****** *) fun matrixptr_free {a:t0p}{l:addr}{m,n:int} (A: matrixptr(INV(a), l, m, n)): void = "mac#%" // end of [matrixptr_free] (* ****** ****** *) (* fprint_matrix$sep1 // col separation fprint_matrix$sep2 // row separation *) fun{a:vt0p} fprint_matrixptr{m,n:int} ( out: FILEref , M: !matrixptr(INV(a), m, n), m: size_t m, n: size_t n ) : void // end of [fprint_matrixptr] fun{a:vt0p} fprint_matrixptr_sep{m,n:int} ( out: FILEref , M: !matrixptr(INV(a), m, n), m: size_t (m), n: size_t (n) , sep1: NSH(string), sep2: NSH(string) ) : void // end of [fprint_matrixptr_sep] (* ****** ****** *) // (* fun{a:vt0p} matrix_initize$init (i: size_t, x: &a >> a?): void *) fun{a:vt0p} matrixptr_initize {l:addr}{m,n:int} ( M: !matrixptr(a?, l, m, n) >> matrixptr(a, l, m, n), m: size_t(m), n: size_t(n) ) : void // end of [matrixptr_initize] // macdef matrixptr_initialize = matrixptr_initize // (* ****** ****** *) // (* fun{a:vt0p} matrix_uninitize$clear (i: size_t, j: size_t, x: &a >> a?): void *) fun{a:vt0p} matrixptr_uninitize {l:addr}{m,n:int} ( M: !matrixptr(INV(a), l, m, n) >> matrixptr(a?, l, m, n), m: size_t(m), n: size_t(n) ) : void // end of [matrixptr_uninitize] // macdef matrixptr_uninitialize = matrixptr_uninitize // (* ****** ****** *) // (* fun{a:vt0p} matrix_uninitize$clear (i: size_t, j: size_t, x: &a >> a?): void *) fun{ a:vt0p } matrixptr_freelin {l:addr}{m,n:int} ( matrixptr(INV(a), l, m, n), m: size_t(m), n: size_t(n) ) : void = "mac#%" // end-of-function // (* ****** ****** *) // (* fun{a:vt0p} matrix_tabulate$fopr(i: size_t, j: size_t): (a) *) fun{a:vt0p} matrixptr_tabulate {m,n:int} (nrow: size_t(m), ncol: size_t(n)): matrixptr(a, m, n) // (* ****** ****** *) (* fun{ a:vt0p}{env:vt0p } matrix_foreach$fwork (x: &a >> _, env: &(env) >> _): void *) // fun{ a:vt0p } matrixptr_foreach{m,n:int} ( M0: !matrixptr(INV(a), m, n) >> _, m: size_t m, n: size_t n ) : void // end of [matrixptr_foreach] fun{ a:vt0p}{env:vt0p } matrixptr_foreach_env{m,n:int} ( M0: !matrixptr(INV(a), m, n) >> _, m: size_t m, n: size_t n, env: &(env) >> _ ) : void // end of [matrixptr_foreach_env] (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) overload [] with matrixptr_get_at_int overload [] with matrixptr_set_at_int overload [] with matrixptr_get_at_size overload [] with matrixptr_set_at_size (* ****** ****** *) overload fprint with fprint_matrixptr overload fprint with fprint_matrixptr_sep (* ****** ****** *) overload ptrcast with matrixptr2ptr overload ptrcast with matrixptrout2ptr (* ****** ****** *) (* end of [matrixptr.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/integer_ptr.sats0000644000175000017500000002237513431250607022323 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/integer_ptr.atxt ** Time of generation: Thu Feb 14 11:29:39 2019 *) (* ****** ****** *) // // HX: for unindexed integer types // (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) typedef SHR(a:t@ype) = a // for commenting purpose typedef NSH(a:t@ype) = a // for commenting purpose (* ****** ****** *) // stadef intptrknd = intptr_kind stadef uintptrknd = uintptr_kind // (* ****** ****** *) // fun g0int2int_int_intptr(int):<> intptr = "mac#%" fun g1int2int_int_intptr{i:int}(int(i)):<> intptr(i) = "mac#%" fun g0int2int_lint_intptr(lint):<> intptr = "mac#%" fun g1int2int_lint_intptr{i:int}(lint(i)):<> intptr(i) = "mac#%" // (* ****** ****** *) // fun g0int2uint_int_uintptr(int):<> uintptr = "mac#%" fun g1int2uint_int_uintptr{i:nat}(int(i)):<> uintptr(i) = "mac#%" // (* ****** ****** *) // fun g0uint2uint_uint_uintptr(uint):<> uintptr = "mac#%" fun g1uint2uint_uint_uintptr{u:int}(uint(u)):<> uintptr(u) = "mac#%" fun g0uint2uint_ulint_uintptr(ulint):<> uintptr = "mac#%" fun g1uint2uint_ulint_uintptr{u:int}(ulint(u)):<> uintptr(u) = "mac#%" // (* ****** ****** *) // fun g0int_neg_intptr (x: intptr):<> intptr = "mac#%" fun g0int_abs_intptr (x: intptr):<> intptr = "mac#%" fun g0int_succ_intptr (x: intptr):<> intptr = "mac#%" fun g0int_pred_intptr (x: intptr):<> intptr = "mac#%" fun g0int_half_intptr (x: intptr):<> intptr = "mac#%" fun g0int_asl_intptr (x: intptr, n: intGte(0)):<> intptr = "mac#%" fun g0int_asr_intptr (x: intptr, n: intGte(0)):<> intptr = "mac#%" fun g0int_add_intptr (x: intptr, y: intptr):<> intptr = "mac#%" fun g0int_sub_intptr (x: intptr, y: intptr):<> intptr = "mac#%" fun g0int_mul_intptr (x: intptr, y: intptr):<> intptr = "mac#%" fun g0int_div_intptr (x: intptr, y: intptr):<> intptr = "mac#%" fun g0int_mod_intptr (x: intptr, y: intptr):<> intptr = "mac#%" fun g0int_lt_intptr (x: intptr, y: intptr):<> bool = "mac#%" fun g0int_lte_intptr (x: intptr, y: intptr):<> bool = "mac#%" fun g0int_gt_intptr (x: intptr, y: intptr):<> bool = "mac#%" fun g0int_gte_intptr (x: intptr, y: intptr):<> bool = "mac#%" fun g0int_eq_intptr (x: intptr, y: intptr):<> bool = "mac#%" fun g0int_neq_intptr (x: intptr, y: intptr):<> bool = "mac#%" fun g0int_compare_intptr (x: intptr, y: intptr):<> int = "mac#%" fun g0int_max_intptr (x: intptr, y: intptr):<> intptr = "mac#%" fun g0int_min_intptr (x: intptr, y: intptr):<> intptr = "mac#%" fun g0int_isltz_intptr (x: intptr):<> bool = "mac#%" fun g0int_isltez_intptr (x: intptr):<> bool = "mac#%" fun g0int_isgtz_intptr (x: intptr):<> bool = "mac#%" fun g0int_isgtez_intptr (x: intptr):<> bool = "mac#%" fun g0int_iseqz_intptr (x: intptr):<> bool = "mac#%" fun g0int_isneqz_intptr (x: intptr):<> bool = "mac#%" // (* ****** ****** *) // fun print_intptr (intptr): void = "mac#%" fun prerr_intptr (intptr): void = "mac#%" fun fprint_intptr : fprint_type (intptr) = "mac#%" overload print with print_intptr overload prerr with prerr_intptr overload fprint with fprint_intptr // (* ****** ****** *) // fun g0uint_succ_uintptr (x: uintptr):<> uintptr = "mac#%" fun g0uint_pred_uintptr (x: uintptr):<> uintptr = "mac#%" fun g0uint_half_uintptr (x: uintptr):<> uintptr = "mac#%" fun g0uint_add_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_sub_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_mul_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_div_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_mod_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_lsl_uintptr (x: uintptr, n: intGte(0)):<> uintptr = "mac#%" fun g0uint_lsr_uintptr (x: uintptr, n: intGte(0)):<> uintptr = "mac#%" fun g0uint_lnot_uintptr (x: uintptr):<> uintptr = "mac#%" fun g0uint_lor_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_lxor_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_land_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_lt_uintptr (x: uintptr, y: uintptr):<> bool = "mac#%" fun g0uint_lte_uintptr (x: uintptr, y: uintptr):<> bool = "mac#%" fun g0uint_gt_uintptr (x: uintptr, y: uintptr):<> bool = "mac#%" fun g0uint_gte_uintptr (x: uintptr, y: uintptr):<> bool = "mac#%" fun g0uint_eq_uintptr (x: uintptr, y: uintptr):<> bool = "mac#%" fun g0uint_neq_uintptr (x: uintptr, y: uintptr):<> bool = "mac#%" fun g0uint_compare_uintptr (x: uintptr, y: uintptr):<> int = "mac#%" fun g0uint_max_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_min_uintptr (x: uintptr, y: uintptr):<> uintptr = "mac#%" fun g0uint_isgtz_uintptr (x: uintptr):<> bool = "mac#%" fun g0uint_iseqz_uintptr (x: uintptr):<> bool = "mac#%" fun g0uint_isneqz_uintptr (x: uintptr):<> bool = "mac#%" // (* ****** ****** *) // fun print_uintptr (uintptr): void = "mac#%" fun prerr_uintptr (uintptr): void = "mac#%" fun fprint_uintptr : fprint_type (uintptr) = "mac#%" overload print with print_uintptr overload prerr with prerr_uintptr overload fprint with fprint_uintptr // (* ****** ****** *) // fun g1int_neg_intptr : g1int_neg_type (intptrknd) = "mac#%" fun g1int_abs_intptr : g1int_abs_type (intptrknd) = "mac#%" fun g1int_succ_intptr : g1int_succ_type (intptrknd) = "mac#%" fun g1int_pred_intptr : g1int_pred_type (intptrknd) = "mac#%" fun g1int_half_intptr : g1int_half_type (intptrknd) = "mac#%" fun g1int_add_intptr : g1int_add_type (intptrknd) = "mac#%" fun g1int_sub_intptr : g1int_sub_type (intptrknd) = "mac#%" fun g1int_mul_intptr : g1int_mul_type (intptrknd) = "mac#%" fun g1int_div_intptr : g1int_div_type (intptrknd) = "mac#%" fun g1int_nmod_intptr : g1int_nmod_type (intptrknd) = "mac#%" fun g1int_lt_intptr : g1int_lt_type (intptrknd) = "mac#%" fun g1int_lte_intptr : g1int_lte_type (intptrknd) = "mac#%" fun g1int_gt_intptr : g1int_gt_type (intptrknd) = "mac#%" fun g1int_gte_intptr : g1int_gte_type (intptrknd) = "mac#%" fun g1int_eq_intptr : g1int_eq_type (intptrknd) = "mac#%" fun g1int_neq_intptr : g1int_neq_type (intptrknd) = "mac#%" fun g1int_compare_intptr : g1int_compare_type (intptrknd) = "mac#%" fun g1int_max_intptr : g1int_max_type (intptrknd) = "mac#%" fun g1int_min_intptr : g1int_min_type (intptrknd) = "mac#%" fun g1int_isltz_intptr : g1int_isltz_type (intptrknd) = "mac#%" fun g1int_isltez_intptr : g1int_isltez_type (intptrknd) = "mac#%" fun g1int_isgtz_intptr : g1int_isgtz_type (intptrknd) = "mac#%" fun g1int_isgtez_intptr : g1int_isgtez_type (intptrknd) = "mac#%" fun g1int_iseqz_intptr : g1int_iseqz_type (intptrknd) = "mac#%" fun g1int_isneqz_intptr : g1int_isneqz_type (intptrknd) = "mac#%" // (* ****** ****** *) // fun g1uint_succ_uintptr : g1uint_succ_type (uintptrknd) = "mac#%" fun g1uint_pred_uintptr : g1uint_pred_type (uintptrknd) = "mac#%" fun g1uint_half_uintptr : g1uint_half_type (uintptrknd) = "mac#%" fun g1uint_add_uintptr : g1uint_add_type (uintptrknd) = "mac#%" fun g1uint_sub_uintptr : g1uint_sub_type (uintptrknd) = "mac#%" fun g1uint_mul_uintptr : g1uint_mul_type (uintptrknd) = "mac#%" fun g1uint_div_uintptr : g1uint_div_type (uintptrknd) = "mac#%" fun g1uint_mod_uintptr : g1uint_mod_type (uintptrknd) = "mac#%" fun g1uint_lt_uintptr : g1uint_lt_type (uintptrknd) = "mac#%" fun g1uint_lte_uintptr : g1uint_lte_type (uintptrknd) = "mac#%" fun g1uint_gt_uintptr : g1uint_gt_type (uintptrknd) = "mac#%" fun g1uint_gte_uintptr : g1uint_gte_type (uintptrknd) = "mac#%" fun g1uint_eq_uintptr : g1uint_eq_type (uintptrknd) = "mac#%" fun g1uint_neq_uintptr : g1uint_neq_type (uintptrknd) = "mac#%" fun g1uint_compare_uintptr : g1uint_compare_type (uintptrknd) = "mac#%" fun g1uint_max_uintptr : g1uint_max_type (uintptrknd) = "mac#%" fun g1uint_min_uintptr : g1uint_min_type (uintptrknd) = "mac#%" fun g1uint_isgtz_uintptr : g1uint_isgtz_type (uintptrknd) = "mac#%" fun g1uint_iseqz_uintptr : g1uint_iseqz_type (uintptrknd) = "mac#%" fun g1uint_isneqz_uintptr : g1uint_isneqz_type (uintptrknd) = "mac#%" // (* ****** ****** *) // macdef i2ptr (x) = g1int2int_int_intptr (,(x)) // macdef u2ptr (x) = g1uint2uint_uint_uintptr (,(x)) // (* ****** ****** *) (* end of [integer_ptr.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/parray.sats0000644000175000017500000000500413431250607021265 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: April, 2012 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/parray.atxt ** Time of generation: Thu Feb 14 11:29:44 2019 *) (* ****** ****** *) sortdef vtp = viewtype (* ****** ****** *) // (* ** HX: for null-pointer terminated arrays *) // dataview parray_v ( a:vt@ype+, addr(*l*), int(*n*) ) = // for arrays with a sentinel at the end | {l:addr} parray_v_nil(a, l, 0) of ptr(null) @ l | {l:addr}{n:nat} parray_v_cons(a, l, n+1) of (a @ l, parray_v(a, l + sizeof(a), n)) // parray_v_cons // end of [parray_v] // (* ****** ****** *) prfun lemma_parray_v_params {a:vtp}{l:addr}{n:int} (pf: !parray_v(INV(a), l, n)): [l > null;n >= 0] void // end of [lemma_parray_v_params] (* ****** ****** *) fun{ a:vtp } parray_is_empty {l:addr}{n:int} (pf: !parray_v(INV(a), l, n) | ptr(l)):<> bool(n==0) // end of [parray_is_empty] fun{ a:vtp } parray_isnot_empty {l:addr}{n:int} (pf: !parray_v(INV(a), l, n) | ptr(l)):<> bool(n > 0) // end of [parray_isnot_empty] (* ****** ****** *) fun{ a:vtp } parray_size {l:addr}{n:int} (pf: !parray_v(INV(a), l, n) | p: ptr(l)):<> size_t(n) // end of [parray_size] (* ****** ****** *) (* end of [parray.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/array_prf.sats0000644000175000017500000000603313431250607021757 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/array_prf.atxt ** Time of generation: Thu Feb 14 11:29:42 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) prfun array_v_split {a:vt0p} {l:addr} {n:int}{i:nat | i <= n} ( pfarr: array_v (INV(a), l, n) ) : @( array_v (a, l, i), array_v (a, l+i*sizeof(a), n-i) ) // end of [array_v_split] prfun array_v_split_at {a:vt0p} {l:addr} {n:int}{i:nat | i <= n} ( pfarr: array_v (INV(a), l, n) | i: size_t (i) ) : @( array_v (a, l, i), array_v (a, l+i*sizeof(a), n-i) ) // end of [array_v_split_at] (* ****** ****** *) prfun array_v_unsplit {a:vt0p} {l:addr} {n1,n2:int} ( pf1arr: array_v (INV(a), l, n1) , pf2arr: array_v (a, l+n1*sizeof(a), n2) ) : array_v (a, l, n1+n2) // end of [array_v_unsplit] (* ****** ****** *) // prfun array_v_extend : {a:vt0p} {l:addr}{n:int} (array_v (INV(a), l, n), a @ l+n*sizeof(a)) - array_v (a, l, n+1) // prfun array_v_unextend : {a:vt0p} {l:addr} {n:int | n > 0} (array_v (INV(a), l, n)) - (array_v (a, l, n-1), a @ l+(n-1)*sizeof(a)) // (* ****** ****** *) prfun array_v_takeout {a:vt0p} {l:addr} {n:int } {i:nat | i < n} ( pfarr: array_v (INV(a), l, n) ) : vtakeout ( array_v (a, l, n), a @ (l+i*sizeof(a)) ) (* end of [array_v_takeout] *) (* ****** ****** *) praxi array_v_group {a:vt0p}{l:addr}{m,n:int} (pf: array_v (INV(a), l, m*n)): array_v (@[a][n], l, m) // end of [array_v_group] praxi array_v_ungroup {a:vt0p}{l:addr}{m,n:int} (pf: array_v (@[INV(a)][n], l, m)): array_v (INV(a), l, m*n) // end of [array_v_ungroup] (* ****** ****** *) (* end of [array_prf.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/.keeper0000644000175000017500000000000013431250607020336 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./prelude/SATS/stream_vt.sats0000644000175000017500000002555313431250607022006 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: February, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/stream_vt.atxt ** Time of generation: Thu Feb 14 11:29:43 2019 *) (* ****** ****** *) (* sortdef t0p = t@ype and vt0p = vt@ype *) (* ****** ****** *) // #if(0) // // HX: linear lazy streams // It is declared in [basics_dyn] // datavtype stream_vt_con (a:vt@ype+) = // // vt@ype+: covariant // | stream_vt_nil of ((*void*)) | stream_vt_cons of (a, stream_vt(a)) // where stream_vt (a:vt@ype) = lazy_vt(stream_vt_con(a)) // #endif // [#if(0)] // vtypedef streamopt_vt(a:vt0p) = Option_vt(stream_vt(a)) // (* ****** ****** *) // fun {a:t0p} stream_vt_is_nil(stream_vt(a)): bool fun {a:t0p} stream_vt_is_cons(stream_vt(a)): bool // (* ****** ****** *) // fun {a:vt0p} stream_vt_make_nil ((*void*)):<> stream_vt(a) fun{a:t0p} stream_vt_make_cons (a, stream_vt(INV(a))):<> stream_vt(a) // (* ****** ****** *) // fun{a:t0p} stream_vt_sing(x0: a):<> stream_vt_con(a) fun{a:t0p} stream_vt_make_sing(x0: a):<> stream_vt(a) // (* ****** ****** *) // fun{a:t0p} stream_vt_make_con ( xs_con: stream_vt_con(INV(a)) ):<> stream_vt(a) // (* ****** ****** *) // // HX-2017-12-27: // this is a regular function // instead of a cast function // fun{a:t0p} stream_t2vt(stream(INV(a))): stream_vt(a) // // HX-2014-04-07: // this is a regular function // instead of a cast function // fun{a:t0p} stream_vt2t(stream_vt(INV(a))): stream(a) // (* ****** ****** *) fun {a:vt0p} stream2list_vt (stream_vt(INV(a))): List0_vt(a) // end of [stream2list_vt] (* ****** ****** *) // fun {a:vt0p} stream_vt_free (xs: stream_vt(a)): void // fun{a:t0p} stream_vt_con_free (xs_con: stream_vt_con(a)): void // (* ****** ****** *) // fun{a:vt0p} stream_vt_takeLte (xs: stream_vt(INV(a)), n: intGte(0)): stream_vt(a) // end of [stream_vt_takeLte] // (* ****** ****** *) // fun{a:t0p} stream_vt_drop_exn (xs: stream_vt(INV(a)), n: intGte(0)): stream_vt(a) // end of [stream_vt_drop_exn] // fun{a:t0p} stream_vt_drop_opt (xs: stream_vt(INV(a)), n: intGte(0)): streamopt_vt(a) // end of [stream_vt_drop_opt] // (* ****** ****** *) // fun{a:t0p} stream_vt_length (xs: stream_vt(INV(a))): intGte(0) // (* ****** ****** *) // fun{a:t0p} stream_vt_head_exn (stream_vt(INV(a))): (a) fun{a:t0p} stream_vt_tail_exn (stream_vt(INV(a))): stream_vt(a) // fun{a:vt0p} stream_vt_uncons_exn (xs: &stream_vt(INV(a)) >> _): (a) fun{a:vt0p} stream_vt_uncons_opt (xs: &stream_vt(INV(a)) >> _): Option_vt(a) // (* ****** ****** *) // fun{a:t0p} stream_vt_last_exn (stream_vt(INV(a))): (a) fun{a:t0p} stream_vt_last_opt (stream_vt(INV(a))): Option_vt(a) // (* ****** ****** *) // fun{a:t0p} stream_vt_nth_exn (xs: stream_vt(INV(a)), n: intGte(0)): (a) fun{a:t0p} stream_vt_nth_opt (xs: stream_vt(INV(a)), n: intGte(0)): Option_vt(a) // (* ****** ****** *) // fun{a:vt0p} stream_vt_append (stream_vt(INV(a)), stream_vt(a)): stream_vt(a) // fun{a:vt0p} stream_vt_concat (xss: stream_vt(stream_vt(INV(a)))): stream_vt(a) // (* ****** ****** *) // fun {a:t0p} stream_vt_delim_cloptr ( xs: stream_vt(INV(a)) , pred: (&a) - bool): stream_vt(List0_vt(a)) // (* ****** ****** *) // fun{a:t0p} stream_vt_filter (xs: stream_vt(INV(a))): stream_vt(a) // fun{a:vt0p} stream_vt_filterlin (xs: stream_vt(INV(a))): stream_vt(a) // (* ****** ****** *) // fun{a:t0p} stream_vt_filter_fun ( xs: stream_vt(INV(a)), pred: (&a) - bool ) : stream_vt(a) // end of [stream_vt_filter_fun] // fun{a:t0p} stream_vt_filter_cloptr ( xs: stream_vt(INV(a)), pred: (&a) - bool ) : stream_vt(a) // end of [stream_vt_filter_cloptr] fun{a:t0p} stream_vt_ifilter_cloptr ( xs: stream_vt(INV(a)), pred: (intGte(0), &a) - bool ) : stream_vt(a) // end of [stream_vt_ifilter_cloptr] // (* ****** ****** *) // fun{a:t0p} stream_vt_filter$pred(x: &a):<> bool fun{a:vt0p} stream_vt_filterlin$pred(x: &a):<> bool fun{a:vt0p} stream_vt_filterlin$clear(x: &a >> a?): void // (* ****** ****** *) // fun{ a:vt0p}{b:vt0p } stream_vt_map (xs: stream_vt(INV(a))): stream_vt(b) fun{ a:vt0p}{b:vt0p } stream_vt_map$fopr(x: &a >> a?!):<1> (b) // fun{ a:vt0p}{b:vt0p } stream_vt_map_fun ( xs: stream_vt(INV(a)), fopr: (&a >> a?!) - b ) : stream_vt(b) // end-of-function fun{ a:vt0p}{b:vt0p } stream_vt_map_cloptr ( xs: stream_vt(INV(a)), fopr: (&a >> a?!) - b ) : stream_vt(b) // end-of-function // (* ****** ****** *) // fun{ a:vt0p}{b:vt0p } stream_vt_imap (xs: stream_vt(INV(a))): stream_vt(b) // fun{ a:vt0p}{b:vt0p } stream_vt_imap$fopr(i: intGte(0), x: &a >> a?!):<1> (b) // fun{ a:vt0p}{b:vt0p } stream_vt_imap_fun ( xs: stream_vt(INV(a)), fopr: (intGte(0), &a >> a?!) - b ) : stream_vt(b) // end-of-function fun{ a:vt0p}{b:vt0p } stream_vt_imap_cloptr ( xs: stream_vt(INV(a)), fopr: (intGte(0), &a >> a?!) - b ) : stream_vt(b) // end-of-function // (* ****** ****** *) // fun {a:vt0p} {b:vt0p} stream_vt_mapopt (xs: stream_vt(INV(a))): stream_vt(b) fun {a:vt0p} {b:vt0p} stream_vt_mapopt$fopr(x: &a >> a?!): Option_vt(b) // fun{ a:vt0p}{b:vt0p } stream_vt_mapopt_fun ( xs: stream_vt(INV(a)), fopr: (&a >> a?!) - Option_vt(b) ) : stream_vt(b) // end-of-function fun{ a:vt0p}{b:vt0p } stream_vt_mapopt_cloptr ( xs: stream_vt(INV(a)), fopr: (&a >> a?!) - Option_vt(b) ) : stream_vt(b) // end-of-function // (* ****** ****** *) // fun {a1 ,a2:t0p} {b0:vt0p} stream_vt_map2 ( xs1: stream_vt(INV(a1)) , xs2: stream_vt(INV(a2)) ) : stream_vt(b0) // end of [stream_vt_map2] // fun {a1 ,a2:t0p} {b0:vt0p} stream_vt_map2$fopr(x1: &a1 >> _, x2: &a2 >> _):<1> b0 // fun{ a1,a2:t0p}{b0:vt0p } stream_vt_map2_fun ( xs1: stream_vt(INV(a1)) , xs2: stream_vt(INV(a2)), fopr: (&a1 >> _, &a2 >> _) - b0 ) : stream_vt(b0) // end of [stream_vt_map2_fun] fun{ a1,a2:t0p}{b0:vt0p } stream_vt_map2_cloptr ( xs1: stream_vt(INV(a1)) , xs2: stream_vt(INV(a2)), fopr: (&a1 >> _, &a2 >> _) - b0 ) : stream_vt(b0) // end of [stream_vt_map2_cloptr] // (* ****** ****** *) // fun{ res:t0p }{a:vt0p} stream_vt_scan_cloptr ( xs: stream_vt(INV(a)) , ini: res, fopr: (res, &a >> a?!) - res ) : stream_vt(res) // end of [stream_vt_scan_cloptr] // (* ****** ****** *) fun {a:vt0p} stream_vt_tabulate((*void*)): stream_vt(a) fun {a:vt0p} stream_vt_tabulate$fopr(idx: intGte(0)): (a) (* ****** ****** *) // fun {a:vt0p} stream_vt_labelize (stream_vt(INV(a))): stream_vt(@(intGte(0), a)) // (* ****** ****** *) // fun{a:vt0p} stream_vt_foreach (stream_vt(INV(a))): stream_vt_con(a) fun{ a:vt0p}{env:vt0p } stream_vt_foreach_env (stream_vt(INV(a)), env: &env >> _): stream_vt_con(a) // fun{ a:vt0p}{env:vt0p } stream_vt_foreach$cont (x: &a, env: &env >> _): bool fun{ a:vt0p}{env:vt0p } stream_vt_foreach$fwork (x: &a >> a?!, env: &env >> _): void // lin-cleared // fun{a:vt0p} stream_vt_foreach_cloptr ( stream_vt(INV(a)), fwork: (&a >> a?!) - void ) : void // end of [stream_vt_foreach_cloptr] // fun{a:vt0p} stream_vt_rforeach_cloptr ( stream_vt(INV(a)), fwork: (&a >> a?!) - void ) : void // end of [stream_vt_rforeach_cloptr] // fun{a:vt0p} stream_vt_iforeach_cloptr ( stream_vt(INV(a)), fwork: (intGte(0), &a >> a?!) - void ) : void // end of [stream_vt_iforeach_cloptr] // (* ****** ****** *) // fun{ res:vt0p }{a:vt0p} stream_vt_foldleft_cloptr ( xs: stream_vt(INV(a)), init: res, fopr: (res, &a >> a?!) - res ) : res // end of [stream_vt_foldleft_cloptr] // fun{ res:vt0p }{a:vt0p} stream_vt_ifoldleft_cloptr ( xs: stream_vt(INV(a)), init: res, fopr: (Nat, res, &a >> a?!) - res ) : res // end of [stream_vt_ifoldleft_cloptr] // (* ****** ****** *) fun {env:t0p}{a:t0p} stream_vt_unfold ( st0: env, fopr: (&env >> _) - a ) : stream_vt(a) // end of [stream_vt_unfold] fun {env:t0p}{a:t0p} stream_vt_unfold_opt ( st0: env, fopr: (&env >> _) - Option_vt(a) ) : stream_vt(a) // end of [stream_vt_unfold_opt] (* ****** ****** *) // fun {x,y:t0p} cross_stream_vt_list (xs: stream_vt(INV(x)), ys: List(INV(y))): stream_vt(@(x, y)) fun {x,y:t0p} cross_stream_vt_list_vt (xs: stream_vt(INV(x)), ys: List_vt(INV(y))): stream_vt(@(x, y)) // (* ****** ****** *) // // HX-2016-07-01: // [stream_vt_fprint] calls [fprint_val] // // HX-2016-09-12: // Note that (n < 0) means to print all the values // fun{} stream_vt_fprint$beg(out: FILEref): void fun{} stream_vt_fprint$end(out: FILEref): void fun{} stream_vt_fprint$sep(out: FILEref): void fun{a:t0p} stream_vt_fprint(stream_vt(INV(a)), out: FILEref, n: int): void // (* ****** ****** *) // absvtype streamer_vtype(a:vt@ype+) = ptr // vtypedef streamer_vt(a:vt0p) = streamer_vtype(a) // (* ****** ****** *) // fun{} streamer_vt_make {a:vt0p}(stream_vt(INV(a))): streamer_vt(a) // fun{} streamer_vt_free{a:vt0p}(streamer_vt(INV(a))): void // fun{ a:vt@ype } streamer_vt_eval_exn(xser: !streamer_vt(INV(a))): (a) fun{ a:vt@ype } streamer_vt_eval_opt(xser: !streamer_vt(INV(a))): Option_vt(a) // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) overload ~ with streamer_vt_free (* ****** ****** *) overload [] with streamer_vt_eval_exn (* ****** ****** *) overload iseqz with stream_vt_is_nil overload isneqz with stream_vt_is_cons (* ****** ****** *) // overload free with streamer_vt_free // (* ****** ****** *) // overload length with stream_vt_length // (* ****** ****** *) overload .head with stream_vt_head_exn overload .tail with stream_vt_tail_exn (* ****** ****** *) // overload .takeLte with stream_vt_takeLte // (* ****** ****** *) // overload .eval with streamer_vt_eval_exn overload .eval_opt with streamer_vt_eval_opt // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/option_vt.sats0000644000175000017500000000572013431250607022015 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/option_vt.atxt ** Time of generation: Thu Feb 14 11:29:42 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) (* ****** ****** *) sortdef vt0p = viewt@ype (* ****** ****** *) #if(0) // // HX: these decls are available in [basic_dyn.sats] // stadef option_vt = option_vt0ype_bool_vtype vtypedef Option_vt (a:vt0p) = [b:bool] option_vt (a, b) // #endif (* ****** ****** *) fun{a:vt0p} option_vt_some (x: a): option_vt (a, true) fun{a:vt0p} option_vt_none ((*void*)): option_vt (a, false) (* ****** ****** *) fun{ a:vt0p } option_vt_make_opt {b:bool} ( b: bool(b) , x: &opt (INV(a), b) >> a? ) : option_vt(a, b) // end-of-fun (* ****** ****** *) fun{} option_vt_is_some {a:vt0p}{b:bool} (opt: !option_vt(INV(a), b)):<> bool(b) // end of [option_vt_is_some] fun{} option_vt_is_none {a:vt0p}{b:bool} (opt: !option_vt(INV(a), b)):<> bool(~b) // end of [option_vt_is_none] (* ****** ****** *) // fun {a:vt0p} option_vt_unsome (opt: option_vt(INV(a), true)): (a) // fun {a:vt0p} option_vt_unnone (opt: option_vt(INV(a), false)): void // (* ****** ****** *) // fun{a:t0p} option_vt_free (opt: Option_vt(INV(a))): void fun{a:t0p} option2bool_vt {b:bool} (opt: option_vt(INV(a), b)): bool(b) // (* ****** ****** *) // fun{a:vt0p} fprint_option_vt{b:bool} (out: FILEref, opt: !option_vt(INV(a), b)): void // overload fprint with fprint_option_vt // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) overload iseqz with option_vt_is_none overload isneqz with option_vt_is_some (* ****** ****** *) (* end of [option_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/integer.sats0000644000175000017500000010246413431250607021434 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: September, 2011 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/integer.atxt ** Time of generation: Thu Feb 14 11:29:37 2019 *) (* ****** ****** *) // // HX: for unindexed integer types // (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) typedef SHR(a:t@ype) = a // for commenting purpose typedef NSH(a:t@ype) = a // for commenting purpose (* ****** ****** *) // stadef intknd = int_kind stadef uintknd = uint_kind // (* ****** ****** *) // fun {k1 ,k2:tk} g0int2int(x: g0int(k1)):<> g0int(k2) // fun g0int2int_int_int(i0: int):<> int = "mac#%" // (* ****** ****** *) // // HX-2015-09-20: // These are implemented in prelude/string.cats: // fun {tk:tk} g0int2string(g0int(tk)): Strptr1 // fun g0int2string_int(i0: int): Strptr1 = "mac#%" // (* ****** ****** *) // fun{tk:tk} g0string2int(rep: NSH(string)):<> g0int(tk) // fun g0string2int_int(rep: NSH(string)):<> int = "mac#%" // (* ****** ****** *) // typedef g0int_uop_type (tk: tk) = (g0int(tk)) - g0int(tk) // (* ****** ****** *) // fun {tk:tk} g0int_neg : g0int_uop_type(tk) overload ~ with g0int_neg of 0 overload neg with g0int_neg of 0 // (* ****** ****** *) // fun {tk:tk} g0int_abs : g0int_uop_type(tk) overload abs with g0int_abs of 0 // (* ****** ****** *) // fun {tk:tk} g0int_succ : g0int_uop_type(tk) fun {tk:tk} g0int_pred : g0int_uop_type(tk) // overload succ with g0int_succ of 0 overload pred with g0int_pred of 0 // (* ****** ****** *) // fun {tk:tk} g0int_half : g0int_uop_type(tk) overload half with g0int_half of 0 // (* fun {tk:tk} g0int_double : g0int_uop_type(tk) overload double with g0int_double of 0 *) // (* ****** ****** *) typedef g0int_aop_type (tk: tk) = ( g0int(tk) , g0int(tk) ) - g0int (tk) // end of [g0int_aop_type] fun {tk:tk} g0int_add : g0int_aop_type(tk) overload + with g0int_add of 0 fun {tk:tk} g0int_sub : g0int_aop_type(tk) overload - with g0int_sub of 0 fun {tk:tk} g0int_mul : g0int_aop_type(tk) overload * with g0int_mul of 0 fun {tk:tk} g0int_div : g0int_aop_type(tk) overload / with g0int_div of 0 fun {tk:tk} g0int_mod : g0int_aop_type(tk) overload % with g0int_mod of 0 overload mod with g0int_mod of 0 (* ****** ****** *) fun{} add_int1_size0{i:nat}(int(i), size_t):<> size_t fun{} add_size0_int1{j:nat}(size_t, int(j)):<> size_t (* ****** ****** *) overload + with add_int1_size0 of 11 overload + with add_size0_int1 of 11 (* ****** ****** *) fun{} mul_int1_size0{i:nat}(int(i), size_t):<> size_t fun{} mul_size0_int1{j:nat}(size_t, int(j)):<> size_t (* ****** ****** *) overload * with mul_int1_size0 of 11 overload * with mul_size0_int1 of 11 (* ****** ****** *) // fun {tk:tk} g0int_asl (x: g0int(tk), n: intGte(0)):<> g0int(tk) fun {tk:tk} g0int_asr (x: g0int(tk), n: intGte(0)):<> g0int(tk) // overload << with g0int_asl of 0 overload >> with g0int_asr of 0 // (* ****** ****** *) // fun {tk:tk} g0int_npow (x: g0int(tk), n: intGte(0)):<> g0int(tk) // overload ** with g0int_npow of 0 // (* ****** ****** *) // fun{tk:tk} g0int_isltz (x: g0int (tk)):<> bool fun{tk:tk} g0int_isltez (x: g0int (tk)):<> bool // fun{tk:tk} g0int_isgtz (x: g0int (tk)):<> bool fun{tk:tk} g0int_isgtez (x: g0int (tk)):<> bool // fun{tk:tk} g0int_iseqz (x: g0int (tk)):<> bool fun{tk:tk} g0int_isneqz (x: g0int (tk)):<> bool // overload isltz with g0int_isltz of 0 overload isltez with g0int_isltez of 0 overload isgtz with g0int_isgtz of 0 overload isgtez with g0int_isgtez of 0 overload iseqz with g0int_iseqz of 0 overload isneqz with g0int_isneqz of 0 // (* ****** ****** *) typedef g0int_cmp_type(tk:tk) = (g0int(tk), g0int(tk)) - bool // end of [g0int_cmp_type] fun {tk:tk} g0int_lt : g0int_cmp_type(tk) overload < with g0int_lt of 0 fun {tk:tk} g0int_lte : g0int_cmp_type(tk) overload <= with g0int_lte of 0 fun {tk:tk} g0int_gt : g0int_cmp_type(tk) overload > with g0int_gt of 0 fun {tk:tk} g0int_gte : g0int_cmp_type(tk) overload >= with g0int_gte of 0 fun {tk:tk} g0int_eq : g0int_cmp_type(tk) overload = with g0int_eq of 0 fun {tk:tk} g0int_neq : g0int_cmp_type(tk) overload != with g0int_neq of 0 overload <> with g0int_neq of 0 (* ****** ****** *) // fun{tk:tk} g0int_sgn(g0int(tk)): intBtwe(~1,1) // (* ****** ****** *) // fun{tk:tk} g0int_compare (x: g0int(tk), y: g0int(tk)):<> int // overload compare with g0int_compare of 0 // (* ****** ****** *) fun {tk:tk} g0int_max : g0int_aop_type(tk) overload max with g0int_max of 0 fun {tk:tk} g0int_min : g0int_aop_type(tk) overload min with g0int_min of 0 (* ****** ****** *) fun{tk:tk} lt_g0int_int (x: g0int (tk), y: int):<> bool overload < with lt_g0int_int of 11 fun{tk:tk} lte_g0int_int (x: g0int (tk), y: int):<> bool overload <= with lte_g0int_int of 11 // fun{tk:tk} gt_g0int_int (x: g0int (tk), y: int):<> bool overload > with gt_g0int_int of 11 fun{tk:tk} gte_g0int_int (x: g0int (tk), y: int):<> bool overload >= with gte_g0int_int of 11 // fun{tk:tk} eq_g0int_int (x: g0int (tk), y: int):<> bool overload = with eq_g0int_int of 11 fun{tk:tk} neq_g0int_int (x: g0int (tk), y: int):<> bool overload != with neq_g0int_int of 11 overload <> with neq_g0int_int of 11 // fun{tk:tk} compare_g0int_int (x: g0int (tk), y: int):<> int overload compare with compare_g0int_int of 11 (* ****** ****** *) // // HX: for indexed integer types // castfn g0ofg1_int{tk:tk}(g1int(tk)):<> g0int(tk) castfn g1ofg0_int{tk:tk}(g0int(tk)):<> g1int(tk) overload g0ofg1 with g0ofg1_int // index-erasing overload g1ofg0 with g1ofg0_int // index-inducing // (* ****** ****** *) // fun{ k1,k2:tk } g1int2int // i2i {i:int} (x: g1int (k1, i)):<> g1int (k2, i) // fun g1int2int_int_int{i:int}(int(i)):<> int(i) = "mac#%" // (* ****** ****** *) fun{tk:tk} g1string2int (str: NSH(string)):<> g1int(tk) (* ****** ****** *) prfun g1int_get_index {tk:tk}{i1:int} (x: g1int(tk, i1)): [i2:int] EQINT(i1, i2) // end of [g1int_get_index] (* ****** ****** *) // typedef g1int_neg_type (tk:tk) = {i:int} g1int(tk, i) - g1int(tk, ~i) // fun {tk:tk} g1int_neg : g1int_neg_type(tk) overload ~ with g1int_neg of 10 // ~ for uminus overload neg with g1int_neg of 10 (* ****** ****** *) // typedef g1int_abs_type (tk:tk) = {i:int} g1int (tk, i) - g1int(tk, abs(i)) // fun {tk:tk} g1int_abs : g1int_abs_type(tk) overload abs with g1int_abs of 10 // (* ****** ****** *) // typedef g1int_succ_type (tk:tk) = {i:int} g1int (tk, i) - g1int (tk, i+1) // fun{tk:tk} g1int_succ : g1int_succ_type(tk) overload succ with g1int_succ of 10 // (* ****** ****** *) // typedef g1int_pred_type (tk:tk) = {i:int} g1int (tk, i) - g1int (tk, i-1) // fun{tk:tk} g1int_pred : g1int_pred_type(tk) overload pred with g1int_pred of 10 // (* ****** ****** *) // typedef g1int_half_type (tk:tk) = {i:int} g1int (tk, i) - g1int (tk, i/2) // fun{tk:tk} g1int_half : g1int_half_type(tk) overload half with g1int_half of 10 // (* ****** ****** *) (* // typedef g1int_double_type (tk:tk) = {i:int} g1int (tk, i) - g1int (tk, 2*i) // fun{tk:tk} g1int_double : g1int_double_type(tk) overload double with g1int_double of 10 // *) (* ****** ****** *) // typedef g1int_add_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - g1int(tk, i+j) // fun {tk:tk} g1int_add : g1int_add_type(tk) // fun{} add_size1_int1 {i,j:int | i+j >= 0} (i: size_t(i), j: int(j)):<> size_t(i+j) fun{} add_int1_size1 {i,j:int | i+j >= 0} (i: int(i), j: size_t(j)):<> size_t(i+j) // (* ****** ****** *) overload + with g1int_add of 20 overload + with add_size1_int1 of 22 overload + with add_int1_size1 of 22 (* ****** ****** *) // typedef g1int_sub_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - g1int(tk, i-j) // fun {tk:tk} g1int_sub : g1int_sub_type(tk) // fun{} sub_size1_int1 {i,j:int | i-j >= 0} (i: size_t(i), j: int(j)):<> size_t(i-j) // (* ****** ****** *) overload - with g1int_sub of 20 overload - with sub_size1_int1 of 22 (* ****** ****** *) // typedef g1int_mul_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - g1int(tk, i*j) // fun {tk:tk} g1int_mul : g1int_mul_type(tk) // fun {tk:tk} g1int_mul2 {i,j:int} ( x: g1int (tk, i) , y: g1int (tk, j) ) :<> [ij:int] (MUL (i, j, ij) | g1int (tk, ij)) // end of [g1int_mul2] // fun{} mul_int1_size1 {i,j:int | i >= 0} (i: int(i), j: size_t(j)):<> size_t(i*j) fun{} mul_size1_int1 {i,j:int | j >= 0} (i: size_t(i), j: int(j)):<> size_t(i*j) // (* ****** ****** *) overload * with g1int_mul of 20 overload * with mul_int1_size1 of 22 overload * with mul_size1_int1 of 22 (* ****** ****** *) // typedef g1int_div_type (tk:tk) = {i,j:int | j != 0} ( g1int(tk, i), g1int(tk, j) ) - [r:int | r == i/j ] g1int(tk, r) // typedef g1int_ndiv_type (tk:tk) = {i,j:int | i >= 0; j > 0} ( g1int(tk, i), g1int(tk, j) ) - g1int(tk, ndiv_int_int(i,j)) // fun {tk:tk} g1int_div : g1int_div_type(tk) fun {tk:tk} g1int_ndiv : g1int_ndiv_type(tk) // (* ****** ****** *) fun {tk:tk} g1int_ndiv2 {i,j:int | i >= 0; j > 0} ( x: g1int(tk, i), y: g1int(tk, j) ) :<> [ q,r:int | 0 <= r; r < j ] ( DIVMOD (i, j, q, r) | g1int (tk, q) ) (* end of [g1int_ndiv2] *) (* ****** ****** *) // fun{tk:tk} ndiv_g1int_int1 {i,j:int | i >= 0; j > 0} ( g1int(tk, i), int(j) ) :<> g1int(tk, ndiv_int_int(i,j)) // (* ****** ****** *) // overload / with g1int_div of 20 // overload ndiv with g1int_ndiv of 20 overload ndiv with ndiv_g1int_int1 of 21 // (* ****** ****** *) (* ** HX: [g1int_mod] is intentionally skipped *) (* ****** ****** *) // typedef g1int_nmod_type (tk:tk) = {i,j:int | i >= 0; j > 0} ( g1int(tk, i), g1int(tk, j) ) - g1int(tk, nmod_int_int(i, j)) // fun{tk:tk} g1int_nmod : g1int_nmod_type(tk) // overload nmod with g1int_nmod of 20 // (* ****** ****** *) fun{tk:tk} g1int_nmod2 {i,j:int | i >= 0; j > 0} ( x: g1int(tk, i), y: g1int(tk, j) ) :<> [q,r:nat | r < j] ( DIVMOD(i, j, q, r) | g1int(tk, r) ) (* end of [g1int_nmod2] *) (* ****** ****** *) // fun{tk:tk} nmod_g1int_int1 {i,j:int | i >= 0; j > 0} (x: g1int(tk, i), y: int(j)):<> int(i%j) // fun{tk:tk} nmod2_g1int_int1 {i,j:int | i >= 0; j > 0} ( x: g1int(tk, i), y: int(j) ) :<> [q,r:nat | r < j] (DIVMOD(i, j, q, r) | int(r)) // overload nmod with nmod_g1int_int1 of 21 // (* ****** ****** *) // (* // // HX-2016-12: // [ngcd] is no longer pre-declared // typedef g1int_ngcd_type (tk:tk) = {i,j:int | i >= 0; j >= 0} ( g1int(tk, i), g1int(tk, j) ) - g1int(tk, ngcd_int_int(i, j)) // fun{tk:tk} g1int_ngcd : g1int_ngcd_type(tk) // // overload ngcd with g1int_ngcd of 20 // *) // (* ****** ****** *) // typedef g1int_isltz_type (tk:tk) = {i:int} (g1int(tk, i)) - bool(i < 0) typedef g1int_isltez_type (tk:tk) = {i:int} (g1int (tk, i)) - bool(i <= 0) // fun{tk:tk} g1int_isltz : g1int_isltz_type(tk) fun{tk:tk} g1int_isltez : g1int_isltez_type(tk) // overload isltz with g1int_isltz of 10 overload isltez with g1int_isltez of 10 // (* ****** ****** *) // typedef g1int_isgtz_type (tk:tk) = {i:int} (g1int(tk, i)) - bool(i > 0) typedef g1int_isgtez_type (tk:tk) = {i:int} (g1int (tk, i)) - bool(i >= 0) // fun{tk:tk} g1int_isgtz : g1int_isgtz_type(tk) fun{tk:tk} g1int_isgtez : g1int_isgtez_type(tk) // overload isgtz with g1int_isgtz of 10 overload isgtez with g1int_isgtez of 10 // (* ****** ****** *) // typedef g1int_iseqz_type (tk:tk) = {i:int} (g1int (tk, i)) - bool(i > 0) typedef g1int_isneqz_type (tk:tk) = {i:int} (g1int (tk, i)) - bool(i >= 0) // fun{tk:tk} g1int_iseqz : g1int_iseqz_type(tk) fun{tk:tk} g1int_isneqz : g1int_isneqz_type(tk) // overload iseqz with g1int_iseqz of 10 overload isneqz with g1int_isneqz of 10 // (* ****** ****** *) // typedef g1int_lt_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - bool(i < j) // typedef g1int_lte_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - bool(i <= j) // fun{tk:tk} g1int_lt : g1int_lt_type(tk) overload < with g1int_lt of 20 fun{tk:tk} g1int_lte : g1int_lte_type(tk) overload <= with g1int_lte of 20 // (* ****** ****** *) // typedef g1int_gt_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - bool(i > j) // typedef g1int_gte_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - bool(i >= j) // fun {tk:tk} g1int_gt : g1int_gt_type(tk) overload > with g1int_gt of 20 fun {tk:tk} g1int_gte : g1int_gte_type(tk) overload >= with g1int_gte of 20 // (* ****** ****** *) // typedef g1int_eq_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - bool(i == j) typedef g1int_neq_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - bool(i != j) // fun {tk:tk} g1int_eq : g1int_eq_type(tk) overload = with g1int_eq of 20 fun {tk:tk} g1int_neq : g1int_neq_type(tk) overload != with g1int_neq of 20 overload <> with g1int_neq of 20 // (* ****** ****** *) // typedef g1int_compare_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - int(sgn(i-j)) // fun{tk:tk} g1int_compare : g1int_compare_type(tk) overload compare with g1int_compare of 20 // (* ****** ****** *) // typedef g1int_max_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - g1int(tk, max(i, j)) // fun {tk:tk} g1int_max : g1int_max_type(tk) overload max with g1int_max of 20 // typedef g1int_min_type (tk:tk) = {i,j:int} ( g1int(tk, i) , g1int(tk, j) ) - g1int(tk, min(i, j)) // fun {tk:tk} g1int_min : g1int_min_type(tk) overload min with g1int_min of 20 // (* ****** ****** *) // fun{tk:tk} lt_g1int_int{i,j:int} (g1int(tk, i), int(j)):<> bool(i < j) fun{tk:tk} lte_g1int_int{i,j:int} (g1int(tk, i), int(j)):<> bool(i <= j) // overload < with lt_g1int_int of 21 overload <= with lte_g1int_int of 21 // fun{tk:tk} gt_g1int_int{i,j:int} (g1int(tk, i), int(j)):<> bool(i > j) fun{tk:tk} gte_g1int_int{i,j:int} (g1int(tk, i), int(j)):<> bool(i >= j) // overload > with gt_g1int_int of 21 overload >= with gte_g1int_int of 21 // fun{tk:tk} eq_g1int_int{i,j:int} (g1int(tk, i), int(j)):<> bool(i == j) overload = with eq_g1int_int of 21 fun{tk:tk} neq_g1int_int{i,j:int} (g1int(tk, i), int(j)):<> bool(i != j) // overload != with neq_g1int_int of 21 overload <> with neq_g1int_int of 21 // fun{tk:tk} compare_g1int_int{i,j:int} (g1int(tk, i), int(j)):<> int(sgn(i-j)) // overload compare with compare_g1int_int of 21 // (* ****** ****** *) fun {tk:tk} g1int_sgn{i:int}(g1int(tk, i)):<> int(sgn(i)) (* ****** ****** *) // // HX: for unsigned unindexed integer types // (* ****** ****** *) fun{ k1,k2:tk } g0int2uint(g0int(k1)):<> g0uint(k2) // fun g0int2uint_int_uint(int):<> uint = "mac#%" // (* ****** ****** *) fun{ k1,k2:tk } g0uint2int(g0uint(k1)):<> g0int(k2) // fun g0uint2int_uint_int(uint):<> int = "mac#%" // (* ****** ****** *) // fun{ k1,k2:tk } g0uint2uint(g0uint(k1)):<> g0uint(k2) // fun g0uint2uint_uint_uint(uint):<> uint = "mac#%" // (* ****** ****** *) // fun{tk:tk} g0string2uint(rep: NSH(string)):<> g0uint(tk) // fun g0string2uint_uint(rep: NSH(string)):<> uint = "mac#%" // (* ****** ****** *) // fun{tk:tk} g0uint_succ (g0uint(tk)):<> g0uint(tk) fun{tk:tk} g0uint_pred (g0uint(tk)):<> g0uint(tk) // overload succ with g0uint_succ of 0 overload pred with g0uint_pred of 0 // (* ****** ****** *) // fun{tk:tk} g0uint_half (g0uint(tk)):<> g0uint(tk) // overload half with g0uint_half of 0 // (* fun{tk:tk} g0uint_double (g0uint(tk)):<> g0uint(tk) overload double with g0uint_double of 0 *) // (* ****** ****** *) // fun{ tk:tk } g0uint_add (x: g0uint (tk), y: g0uint (tk)):<> g0uint (tk) overload + with g0uint_add of 0 fun{ tk:tk } g0uint_sub (x: g0uint (tk), y: g0uint (tk)):<> g0uint (tk) overload - with g0uint_sub of 0 fun{ tk:tk } g0uint_mul (x: g0uint (tk), y: g0uint (tk)):<> g0uint (tk) overload * with g0uint_mul of 0 fun{ tk:tk } g0uint_div (x: g0uint (tk), y: g0uint (tk)):<> g0uint (tk) overload / with g0uint_div of 0 fun{ tk:tk } g0uint_mod (x: g0uint (tk), y: g0uint (tk)):<> g0uint (tk) overload % with g0uint_mod of 0 overload mod with g0uint_mod of 0 // (* ****** ****** *) // fun {tk:tk} g0uint_lsl ( x: g0uint(tk), n: intGte(0) ) :<> g0uint(tk) fun {tk:tk} g0uint_lsr ( x: g0uint(tk), n: intGte(0) ) :<> g0uint(tk) // overload << with g0uint_lsl of 10 overload >> with g0uint_lsr of 10 // (* ****** ****** *) // fun {tk:tk} g0uint_lnot (g0uint(tk)):<> g0uint(tk) overload ~ with g0uint_lnot overload lnot with g0uint_lnot // fun {tk:tk} g0uint_lor (g0uint(tk), g0uint(tk)):<> g0uint(tk) fun {tk:tk} g0uint_lxor (g0uint(tk), g0uint(tk)):<> g0uint(tk) fun {tk:tk} g0uint_land (g0uint(tk), g0uint(tk)):<> g0uint(tk) // overload lor with g0uint_lor overload lxor with g0uint_lxor overload land with g0uint_land // (* ****** ****** *) // fun{tk:tk} g0uint_isgtz(x: g0uint(tk)):<> bool fun{tk:tk} g0uint_iseqz(x: g0uint(tk)):<> bool fun{tk:tk} g0uint_isneqz(x: g0uint(tk)):<> bool // overload isgtz with g0uint_isgtz of 0 overload iseqz with g0uint_iseqz of 0 overload isneqz with g0uint_isneqz of 0 // (* ****** ****** *) // fun{ tk:tk } g0uint_lt (x: g0uint (tk), y: g0uint (tk)):<> bool overload < with g0uint_lt of 0 fun{ tk:tk } g0uint_lte (x: g0uint (tk), y: g0uint (tk)):<> bool overload <= with g0uint_lte of 0 // fun{ tk:tk } g0uint_gt (x: g0uint (tk), y: g0uint (tk)):<> bool overload > with g0uint_gt of 0 fun{ tk:tk } g0uint_gte (x: g0uint (tk), y: g0uint (tk)):<> bool overload >= with g0uint_gte of 0 // fun{ tk:tk } g0uint_eq (x: g0uint (tk), y: g0uint (tk)):<> bool overload = with g0uint_eq of 0 fun{ tk:tk } g0uint_neq (x: g0uint (tk), y: g0uint (tk)):<> bool overload != with g0uint_neq of 0 overload <> with g0uint_neq of 0 // fun{tk:tk} g0uint_compare (x: g0uint(tk), y: g0uint(tk)):<> int // overload compare with g0uint_compare of 0 // (* ****** ****** *) fun {tk:tk} g0uint_max (g0uint(tk), g0uint(tk)):<> g0uint(tk) fun {tk:tk} g0uint_min (g0uint(tk), g0uint(tk)):<> g0uint(tk) // overload max with g0uint_max of 0 overload min with g0uint_min of 0 // (* ****** ****** *) // fun{tk:tk} lt_g0uint_int (x: g0uint(tk), y: int):<> bool fun{tk:tk} lte_g0uint_int (x: g0uint(tk), y: int):<> bool // overload < with lt_g0uint_int of 11 overload <= with lte_g0uint_int of 11 // fun{tk:tk} gt_g0uint_int (x: g0uint(tk), y: int):<> bool fun{tk:tk} gte_g0uint_int (x: g0uint(tk), y: int):<> bool // overload > with gt_g0uint_int of 11 overload >= with gte_g0uint_int of 11 // fun{tk:tk} eq_g0uint_int (x: g0uint(tk), y: int):<> bool fun{tk:tk} neq_g0uint_int (x: g0uint(tk), y: int):<> bool // overload = with eq_g0uint_int of 11 overload != with neq_g0uint_int of 11 overload <> with neq_g0uint_int of 11 // (* ****** ****** *) // // HX: for unsigned indexed integer types // praxi lemma_g1uint_param {tk:tk}{i:int}(g1uint(tk, i)):<> [i >= 0] void // end of [lemma_g1uint_param] // (* ****** ****** *) castfn size_of_int{i:nat}(x: int(i)):<> size_t(i) castfn ssize_of_int{i:int}(x: int(i)):<> ssize_t(i) (* ****** ****** *) // castfn g0ofg1_uint{tk:tk}(x: g1uint tk):<> g0uint (tk) castfn g1ofg0_uint{tk:tk}(x: g0uint tk):<> g1uint0 (tk) // overload g0ofg1 with g0ofg1_uint // index-erasing overload g1ofg0 with g1ofg0_uint // index-inducing // (* ****** ****** *) // typedef g1int2int_type (k1:tk, k2:tk) = {i:int} (g1int(k1, i)) - g1int(k2, i) typedef g1int2uint_type (k1:tk, k2:tk) = {i:nat} (g1int(k1, i)) - g1uint(k2, i) // fun{ k1,k2:tk } g1int2int : g1int2int_type(k1, k2) fun{ k1,k2:tk } g1int2uint : g1int2uint_type(k1, k2) // fun g1int2int_int_int: g1int2int_type(intknd, intknd) = "mac#%" fun g1int2uint_int_uint: g1int2uint_type(intknd, uintknd) = "mac#%" // (* ****** ****** *) // typedef g1uint2int_type (k1:tk, k2:tk) = {u:int} ( g1uint(k1, u) ) - [u>=0] g1int(k2, u) typedef g1uint2uint_type (k1:tk, k2:tk) = {u:int} (g1uint(k1, u)) - g1uint(k2, u) // fun{ k1,k2:tk } g1uint2int : g1uint2int_type(k1, k2) fun{ k1,k2:tk } g1uint2uint : g1uint2uint_type(k1, k2) // fun g1uint2int_uint_int: g1uint2int_type(uintknd, intknd) = "mac#%" fun g1uint2uint_uint_uint: g1uint2uint_type(uintknd, uintknd) = "mac#%" // (* ****** ****** *) // fun{tk:tk} g1string2uint(rep: NSH(string)):<> g1uint(tk) // (* ****** ****** *) // prfun g1uint_get_index {tk:tk}{i1:int} (x: g1uint(tk, i1)): [i2:int] EQINT(i1, i2) // (* ****** ****** *) // typedef g1uint_succ_type (tk:tk) = {i:int} (g1uint(tk, i)) - g1uint(tk, i+1) typedef g1uint_pred_type (tk:tk) = {i:int | i > 0} (g1uint(tk, i)) - g1uint(tk, i-1) // fun{tk:tk} g1uint_succ : g1uint_succ_type(tk) overload succ with g1uint_succ of 10 fun{tk:tk} g1uint_pred : g1uint_pred_type(tk) overload pred with g1uint_pred of 10 // (* ****** ****** *) // typedef g1uint_half_type (tk:tk) = {i:int} ( g1uint(tk, i) ) - g1uint(tk, i/2) // fun{tk:tk} g1uint_half : g1uint_half_type(tk) overload half with g1uint_half of 10 // typedef g1uint_double_type (tk:tk) = {i:int} ( g1uint(tk, i) ) - g1uint(tk, 2*i) // fun{tk:tk} g1uint_double : g1uint_double_type(tk) overload double with g1uint_double of 10 // (* ****** ****** *) // typedef g1uint_add_type (tk:tk) = {i,j:int} ( g1uint(tk, i) , g1uint(tk, j) ) - g1uint(tk, i+j) typedef g1uint_sub_type (tk:tk) = {i,j:int | i >= j} ( g1uint(tk, i) , g1uint(tk, j) ) - g1uint (tk, i-j) // fun {tk:tk} g1uint_add : g1uint_add_type(tk) fun {tk:tk} g1uint_sub : g1uint_sub_type(tk) // overload + with g1uint_add of 20 overload - with g1uint_sub of 20 // (* ****** ****** *) // typedef g1uint_mul_type (tk:tk) = {i,j:int} ( g1uint(tk, i) , g1uint(tk, j) ) - g1uint (tk, i*j) // fun {tk:tk} g1uint_mul : g1uint_mul_type(tk) fun {tk:tk} g1uint_mul2 {i,j:int} ( x: g1uint(tk, i), y: g1uint(tk, j) ) :<> [ij:int] (MUL(i, j, ij) | g1uint(tk, ij)) // overload * with g1uint_mul of 20 // (* ****** ****** *) // typedef g1uint_div_type (tk:tk) = {i,j:int | j > 0} ( g1uint(tk, i) , g1uint(tk, j) ) - [r:nat | r == ndiv_int_int(i,j)] g1uint(tk, r) // end of [g1uint_div_type] // fun {tk:tk} g1uint_div : g1uint_div_type(tk) fun {tk:tk} g1uint_div2 {i,j:int | j > 0} ( x: g1uint (tk, i), y: g1uint (tk, j) ) :<> [q,r:int | 0 <= r; r < j] (DIVMOD (i, j, q, r) | g1uint (tk, q)) // overload / with g1uint_div of 20 // (* ****** ****** *) // typedef g1uint_mod_type (tk:tk) = {i,j:int | j > 0} ( g1uint(tk, i) , g1uint (tk, j) ) - [r:nat | r < j] g1uint (tk, r) // end of [g1uint_mod_type] // fun {tk:tk} g1uint_mod : g1uint_mod_type(tk) fun {tk:tk} g1uint_mod2 {i,j:int | j > 0} ( x: g1uint (tk, i), y: g1uint (tk, j) ) :<> [ q,r:int | 0 <= r; r < j ] ( DIVMOD (i, j, q, r) | g1uint (tk, r) ) (* end of [g1uint_mod2] *) // overload mod with g1uint_mod of 20 // (* ****** ****** *) // typedef g1uint_isgtz_type (tk:tk) = {i:int} (g1uint(tk, i)) - bool(i > 0) // fun{tk:tk} g1uint_isgtz : g1uint_isgtz_type(tk) overload isgtz with g1uint_isgtz of 10 // (* ****** ****** *) // typedef g1uint_iseqz_type (tk:tk) = {i:int} (g1uint(tk, i)) - bool(i > 0) typedef g1uint_isneqz_type (tk:tk) = {i:int} (g1uint(tk, i)) - bool(i >= 0) // fun{tk:tk} g1uint_iseqz : g1uint_iseqz_type(tk) fun{tk:tk} g1uint_isneqz : g1uint_isneqz_type(tk) // overload iseqz with g1uint_iseqz of 10 overload isneqz with g1uint_isneqz of 10 // (* ****** ****** *) // typedef g1uint_lt_type (tk:tk) = {i,j:int} ( g1uint(tk, i), g1uint(tk, j) ) - bool(i < j) // endfun typedef g1uint_lte_type (tk:tk) = {i,j:int} ( g1uint(tk, i), g1uint(tk, j) ) - bool(i <= j) // endfun // fun{tk:tk} g1uint_lt : g1uint_lt_type(tk) fun{tk:tk} g1uint_lte : g1uint_lte_type(tk) // overload < with g1uint_lt of 20 overload <= with g1uint_lte of 20 // (* ****** ****** *) typedef g1uint_gt_type (tk:tk) = {i,j:int} ( g1uint(tk, i), g1uint(tk, j) ) - bool(i > j) // endfun typedef g1uint_gte_type (tk:tk) = {i,j:int} ( g1uint(tk, i), g1uint(tk, j) ) - bool(i >= j) // endfun // fun {tk:tk} g1uint_gt : g1uint_gt_type(tk) fun {tk:tk} g1uint_gte : g1uint_gte_type(tk) // overload > with g1uint_gt of 20 overload >= with g1uint_gte of 20 // (* ****** ****** *) // typedef g1uint_eq_type (tk:tk) = {i,j:int} ( g1uint(tk, i) , g1uint(tk, j) ) - bool(i == j) typedef g1uint_neq_type (tk:tk) = {i,j:int} ( g1uint(tk, i) , g1uint(tk, j) ) - bool(i != j) // fun {tk:tk} g1uint_eq : g1uint_eq_type(tk) fun {tk:tk} g1uint_neq : g1uint_neq_type(tk) // overload = with g1uint_eq of 20 overload != with g1uint_neq of 20 overload <> with g1uint_neq of 20 // (* ****** ****** *) // typedef g1uint_compare_type (tk:tk) = {i,j:int} ( g1uint(tk, i) , g1uint(tk, j) ) - int(sgn(i-j)) // fun{tk:tk} g1uint_compare : g1uint_compare_type(tk) // overload compare with g1uint_compare of 20 // (* ****** ****** *) // typedef g1uint_max_type (tk:tk) = {i,j:int} ( g1uint(tk, i) , g1uint(tk, j) ) - g1uint(tk, max(i, j)) typedef g1uint_min_type (tk:tk) = {i,j:int} ( g1uint(tk, i) , g1uint(tk, j) ) - g1uint(tk, min(i, j)) // fun {tk:tk} g1uint_max : g1uint_max_type(tk) fun {tk:tk} g1uint_min : g1uint_min_type(tk) // overload max with g1uint_max of 20 overload min with g1uint_min of 20 // (* ****** ****** *) // fun{tk:tk} lt_g1uint_int{i:int;j:nat} (g1uint(tk, i), int(j)):<> bool(i < j) fun{tk:tk} lte_g1uint_int{i:int;j:nat} (g1uint(tk, i), int(j)):<> bool(i <= j) // overload < with lt_g1uint_int of 21 overload <= with lte_g1uint_int of 21 // fun{tk:tk} gt_g1uint_int{i:int;j:nat} (g1uint(tk, i), int(j)):<> bool(i > j) fun{tk:tk} gte_g1uint_int{i:int;j:nat} (g1uint(tk, i), int(j)):<> bool(i >= j) // overload > with gt_g1uint_int of 21 overload >= with gte_g1uint_int of 21 // fun{tk:tk} eq_g1uint_int{i:int;j:nat} (g1uint(tk, i), int(j)):<> bool(i == j) fun{tk:tk} neq_g1uint_int{i:int;j:nat} (g1uint(tk, i), int(j)):<> bool(i != j) // overload = with eq_g1uint_int of 21 overload != with neq_g1uint_int of 21 overload <> with neq_g1uint_int of 21 // (* ****** ****** *) // fun print_int (int): void = "mac#%" fun prerr_int (int): void = "mac#%" fun fprint_int : fprint_type (int) = "mac#%" overload print with print_int overload prerr with prerr_int overload fprint with fprint_int // fun print_uint (uint): void = "mac#%" fun prerr_uint (uint): void = "mac#%" fun fprint_uint : fprint_type (uint) = "mac#%" overload print with print_uint overload prerr with prerr_uint overload fprint with fprint_uint // (* ****** ****** *) // fun g0int_neg_int (x: int):<> int = "mac#%" fun g0int_abs_int (x: int):<> int = "mac#%" fun g0int_succ_int (x: int):<> int = "mac#%" fun g0int_pred_int (x: int):<> int = "mac#%" fun g0int_half_int (x: int):<> int = "mac#%" fun g0int_asl_int (x: int, n: intGte(0)):<> int = "mac#%" fun g0int_asr_int (x: int, n: intGte(0)):<> int = "mac#%" fun g0int_add_int (x: int, y: int):<> int = "mac#%" fun g0int_sub_int (x: int, y: int):<> int = "mac#%" fun g0int_mul_int (x: int, y: int):<> int = "mac#%" fun g0int_div_int (x: int, y: int):<> int = "mac#%" fun g0int_mod_int (x: int, y: int):<> int = "mac#%" fun g0int_lt_int (x: int, y: int):<> bool = "mac#%" fun g0int_lte_int (x: int, y: int):<> bool = "mac#%" fun g0int_gt_int (x: int, y: int):<> bool = "mac#%" fun g0int_gte_int (x: int, y: int):<> bool = "mac#%" fun g0int_eq_int (x: int, y: int):<> bool = "mac#%" fun g0int_neq_int (x: int, y: int):<> bool = "mac#%" fun g0int_compare_int (x: int, y: int):<> int = "mac#%" fun g0int_max_int (x: int, y: int):<> int = "mac#%" fun g0int_min_int (x: int, y: int):<> int = "mac#%" fun g0int_isltz_int (x: int):<> bool = "mac#%" fun g0int_isltez_int (x: int):<> bool = "mac#%" fun g0int_isgtz_int (x: int):<> bool = "mac#%" fun g0int_isgtez_int (x: int):<> bool = "mac#%" fun g0int_iseqz_int (x: int):<> bool = "mac#%" fun g0int_isneqz_int (x: int):<> bool = "mac#%" // (* ****** ****** *) // fun g0uint_succ_uint (x: uint):<> uint = "mac#%" fun g0uint_pred_uint (x: uint):<> uint = "mac#%" fun g0uint_half_uint (x: uint):<> uint = "mac#%" fun g0uint_add_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_sub_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_mul_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_div_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_mod_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_lsl_uint (x: uint, n: intGte(0)):<> uint = "mac#%" fun g0uint_lsr_uint (x: uint, n: intGte(0)):<> uint = "mac#%" fun g0uint_lnot_uint (x: uint):<> uint = "mac#%" fun g0uint_lor_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_lxor_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_land_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_lt_uint (x: uint, y: uint):<> bool = "mac#%" fun g0uint_lte_uint (x: uint, y: uint):<> bool = "mac#%" fun g0uint_gt_uint (x: uint, y: uint):<> bool = "mac#%" fun g0uint_gte_uint (x: uint, y: uint):<> bool = "mac#%" fun g0uint_eq_uint (x: uint, y: uint):<> bool = "mac#%" fun g0uint_neq_uint (x: uint, y: uint):<> bool = "mac#%" fun g0uint_compare_uint (x: uint, y: uint):<> int = "mac#%" fun g0uint_max_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_min_uint (x: uint, y: uint):<> uint = "mac#%" fun g0uint_isgtz_uint (x: uint):<> bool = "mac#%" fun g0uint_iseqz_uint (x: uint):<> bool = "mac#%" fun g0uint_isneqz_uint (x: uint):<> bool = "mac#%" // (* ****** ****** *) // fun g1int_neg_int : g1int_neg_type (intknd) = "mac#%" fun g1int_abs_int : g1int_abs_type (intknd) = "mac#%" fun g1int_succ_int : g1int_succ_type (intknd) = "mac#%" fun g1int_pred_int : g1int_pred_type (intknd) = "mac#%" fun g1int_half_int : g1int_half_type (intknd) = "mac#%" fun g1int_add_int : g1int_add_type (intknd) = "mac#%" fun g1int_sub_int : g1int_sub_type (intknd) = "mac#%" fun g1int_mul_int : g1int_mul_type (intknd) = "mac#%" fun g1int_div_int : g1int_div_type (intknd) = "mac#%" fun g1int_nmod_int : g1int_nmod_type (intknd) = "mac#%" fun g1int_lt_int : g1int_lt_type (intknd) = "mac#%" fun g1int_lte_int : g1int_lte_type (intknd) = "mac#%" fun g1int_gt_int : g1int_gt_type (intknd) = "mac#%" fun g1int_gte_int : g1int_gte_type (intknd) = "mac#%" fun g1int_eq_int : g1int_eq_type (intknd) = "mac#%" fun g1int_neq_int : g1int_neq_type (intknd) = "mac#%" fun g1int_compare_int : g1int_compare_type (intknd) = "mac#%" fun g1int_max_int : g1int_max_type (intknd) = "mac#%" fun g1int_min_int : g1int_min_type (intknd) = "mac#%" fun g1int_isltz_int : g1int_isltz_type (intknd) = "mac#%" fun g1int_isltez_int : g1int_isltez_type (intknd) = "mac#%" fun g1int_isgtz_int : g1int_isgtz_type (intknd) = "mac#%" fun g1int_isgtez_int : g1int_isgtez_type (intknd) = "mac#%" fun g1int_iseqz_int : g1int_iseqz_type (intknd) = "mac#%" fun g1int_isneqz_int : g1int_isneqz_type (intknd) = "mac#%" // (* ****** ****** *) // fun g1uint_succ_uint : g1uint_succ_type (uintknd) = "mac#%" fun g1uint_pred_uint : g1uint_pred_type (uintknd) = "mac#%" fun g1uint_half_uint : g1uint_half_type (uintknd) = "mac#%" fun g1uint_add_uint : g1uint_add_type (uintknd) = "mac#%" fun g1uint_sub_uint : g1uint_sub_type (uintknd) = "mac#%" fun g1uint_mul_uint : g1uint_mul_type (uintknd) = "mac#%" fun g1uint_div_uint : g1uint_div_type (uintknd) = "mac#%" fun g1uint_mod_uint : g1uint_mod_type (uintknd) = "mac#%" fun g1uint_lt_uint : g1uint_lt_type (uintknd) = "mac#%" fun g1uint_lte_uint : g1uint_lte_type (uintknd) = "mac#%" fun g1uint_gt_uint : g1uint_gt_type (uintknd) = "mac#%" fun g1uint_gte_uint : g1uint_gte_type (uintknd) = "mac#%" fun g1uint_eq_uint : g1uint_eq_type (uintknd) = "mac#%" fun g1uint_neq_uint : g1uint_neq_type (uintknd) = "mac#%" fun g1uint_compare_uint : g1uint_compare_type (uintknd) = "mac#%" fun g1uint_max_uint : g1uint_max_type (uintknd) = "mac#%" fun g1uint_min_uint : g1uint_min_type (uintknd) = "mac#%" fun g1uint_isgtz_uint : g1uint_isgtz_type (uintknd) = "mac#%" fun g1uint_iseqz_uint : g1uint_iseqz_type (uintknd) = "mac#%" fun g1uint_isneqz_uint : g1uint_isneqz_type (uintknd) = "mac#%" // (* ****** ****** *) // macdef i2u(x) = g1int2uint_int_uint(,(x)) macdef u2i(x) = g1uint2int_uint_int(,(x)) // (* ****** ****** *) // macdef g0i2i(x) = g0int2int(,(x)) macdef g1i2i(x) = g1int2int(,(x)) // macdef g0i2u(x) = g0int2uint(,(x)) macdef g1i2u(x) = g1int2uint(,(x)) // macdef g0u2i(x) = g0uint2int(,(x)) macdef g1u2i(x) = g1uint2int(,(x)) // macdef g0u2u(x) = g0uint2uint(,(x)) macdef g1u2u(x) = g1uint2uint(,(x)) // (* ****** ****** *) // // HX: implemented in [list_vt.dats] // fun{tk:tk} listize_g0int_rep {b:int | b >= 2} (g0int(tk), int(b)): List0_vt(intBtw(0, b)) // fun{tk:tk} listize_g0uint_rep {b:int | b >= 2} (g0uint(tk), int(b)): List0_vt(intBtw(0, b)) // (* ****** ****** *) (* end of [integer.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/memory.sats0000644000175000017500000000600213431250607021276 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/memory.atxt ** Time of generation: Thu Feb 14 11:29:40 2019 *) (* ****** ****** *) typedef bytes (n:int) = @[byte][n] typedef b0ytes (n:int) = @[byte?][n] (* ****** ****** *) viewdef bytes_v (l:addr, n:int) = bytes (n) @ l viewdef b0ytes_v (l:addr, n:int) = b0ytes (n) @ l (* ****** ****** *) praxi b0ytes2bytes {l:addr}{n:int} (&b0ytes(n) >> bytes(n)): void // end of [b0ytes2bytes] praxi b0ytes2bytes_v {l:addr}{n:int} (pf: b0ytes_v (l, n)): bytes_v (l, n) // end of [b0ytes2bytes_v] (* ****** ****** *) prfun bytes_v_split {l:addr} {n:int}{i:nat | i <= n} (pf: bytes_v (l, n)): (bytes_v (l, i), bytes_v (l+i, n-i)) // end of [bytes_v_split] prfun bytes_v_split_at {l:addr} {n:int}{i:nat | i <= n} (pf: bytes_v (l, n) | i: size_t (i)): (bytes_v (l, i), bytes_v (l+i, n-i)) // end of [bytes_v_split_at] (* ****** ****** *) prfun bytes_v_unsplit {l:addr}{n1,n2:int} (pf1: bytes_v (l, n1), pf2: bytes_v (l+n1, n2)): bytes_v (l, n1+n2) // end of [bytes_v_unsplit] (* ****** ****** *) // // HX-2013-08: // for memory initialization // fun minit_gc (): void = "mac#%" // (* ****** ****** *) fun mfree_gc {l:addr}{n:int} ( pfat: b0ytes n @ l , pfgc: mfree_gc_v (l) | ptr l ) : void = "mac#%" fun malloc_gc {n:int} ( bsz: size_t (n) ) : [l:agz] ( b0ytes n @ l, mfree_gc_v (l) | ptr l ) = "mac#%" // endfun (* ****** ****** *) absview memory$free_v (l:addr) (* ****** ****** *) fun{ } memory$free {l:addr}{n:int} ( pfat: b0ytes n @ l , pfmf: memory$free_v (l) | ptr l ) : void // end-of-fun fun{ } memory$alloc {n:int} ( bsz: size_t (n) ) : [l:agz] ( b0ytes n @ l, memory$free_v (l) | ptr l ) (* end of [memory$alloc] *) (* ****** ****** *) (* end of [memory.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/grandom.sats0000644000175000017500000000433313431250607021422 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/grandom.atxt ** Time of generation: Thu Feb 14 11:29:41 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: June, 2015 *) (* ****** ****** *) // fun{a:vt0p} grandom_val(): a // for randval generation // fun{a:vt0p} // for random value grandom_ref(x: &(a?) >> a): void // initialization // (* ****** ****** *) // fun{} grandom_int(): int fun{} grandom_uint(): uint // fun{} grandom_bool(): bool // fun{} grandom_float(): float fun{} grandom_double(): double // (* ****** ****** *) // fun{a:t0p} grandom_list {n:nat}(n: int(n)): list(a, n) // fun{a:vt0p} grandom_list_vt {n:nat}(n: int(n)): list_vt(a, n) // (* ****** ****** *) // fun{a:vt0p} grandom_arrayptr {n:int}(asz: size_t(n)): arrayptr(a, n) fun{a:vt0p} grandom_arrayref {n:int}(asz: size_t(n)): arrayref(a, n) // fun{a:vt0p} grandom_arrszref(asz: size_t): arrszref(a) // (* ****** ****** *) (* end of [grandom.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/gorder.sats0000644000175000017500000000636713431250607021266 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/gorder.atxt ** Time of generation: Thu Feb 14 11:29:41 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2011 *) (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) // // HX: generic ordering ops // (* ****** ****** *) // fun {a:t0p} gisltz_val (x: a):<> bool fun {a:t0p} gisltez_val (x: a):<> bool // fun {a:t0p} gisgtz_val (x: a):<> bool fun {a:t0p} gisgtez_val (x: a):<> bool // fun {a:t0p} giseqz_val (x: a):<> bool fun {a:t0p} gisneqz_val (x: a):<> bool // (* ****** ****** *) // fun {a:t0p} glt_val_val (x: a, y: a):<> bool fun {a:t0p} glte_val_val (x: a, y: a):<> bool // fun {a:t0p} ggt_val_val (x: a, y: a):<> bool fun {a:t0p} ggte_val_val (x: a, y: a):<> bool // (* ****** ****** *) // fun {a:t0p} glt_val_int (x: a, y: int):<> bool fun {a:t0p} glte_val_int (x: a, y: int):<> bool // fun {a:t0p} ggt_val_int (x: a, y: int):<> bool fun {a:t0p} ggte_val_int (x: a, y: int):<> bool // (* ****** ****** *) // fun {a:t0p} geq_val_val (x: a, y: a):<> bool fun {a:t0p} gneq_val_val (x: a, y: a):<> bool // (* ****** ****** *) // fun {a:t0p} geq_val_int (x: a, y: int):<> bool fun {a:t0p} gneq_val_int (x: a, y: int):<> bool // (* ****** ****** *) // fun {a:t0p} gcompare_val_val (x: a, y: a):<> int // (* ****** ****** *) // fun {a:t0p} gmax_val_val (x: a, y: a):<> (a) fun {a:t0p} gmin_val_val (x: a, y: a):<> (a) // (* ****** ****** *) // fun {a:vt0p} glt_ref_ref (x: &INV(a), y: &a):<> bool fun {a:vt0p} glte_ref_ref (x: &INV(a), y: &a):<> bool // fun {a:vt0p} ggt_ref_ref (x: &INV(a), y: &a):<> bool fun {a:vt0p} ggte_ref_ref (x: &INV(a), y: &a):<> bool // (* ****** ****** *) // fun {a:vt0p} geq_ref_ref (x: &INV(a), y: &a):<> bool fun {a:vt0p} gneq_ref_ref (x: &INV(a), y: &a):<> bool // (* ****** ****** *) // fun {a:vt0p} gcompare_ref_ref (x: &INV(a), y: &a):<> int // (* ****** ****** *) (* end of [gorder.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/tostring.sats0000644000175000017500000000556413431250607021653 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/tostring.atxt ** Time of generation: Thu Feb 14 11:29:44 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2012 *) (* ****** ****** *) vtypedef RD(a:vt0p) = a // for commenting: read-only #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) sortdef t0p = t@ype sortdef vt0p = vt@ype (* ****** ****** *) fun{} tostring_int(int):<> string fun{} tostrptr_int(int): Strptr1 (* ****** ****** *) fun{} tostring_uint(uint):<> string fun{} tostrptr_uint(uint): Strptr1 (* ****** ****** *) fun{} tostring_bool(bool):<> string fun{} tostrptr_bool(bool): Strptr1 (* ****** ****** *) fun{} tostring_char(char):<> string fun{} tostrptr_char(char): Strptr1 (* ****** ****** *) fun{} tostring_double(double):<> string fun{} tostrptr_double(double): Strptr1 (* ****** ****** *) // fun {a:t0p} tostrptr_list (xs0: List(INV(a))): Strptr1 // fun{} tostrptr_list$beg((*void*)): String fun{} tostrptr_list$end((*void*)): String fun{} tostrptr_list$sep((*void*)): String // (* ****** ****** *) // fun {a:vt0p} tostrptr_array {n:int} ( &array(INV(a), n), size_t(n) ) : Strptr1 // end-of-function // fun{} tostrptr_array$beg((*void*)): String fun{} tostrptr_array$end((*void*)): String fun{} tostrptr_array$sep((*void*)): String // (* ****** ****** *) // fun {a:vt0p} tostrptr_arrayref {n:int} (arrayref(a,n), size_t(n)): Strptr1 // fun {a:vt0p} tostrptr_arrszref(arrszref(a)): Strptr1 // (* ****** ****** *) (* end of [tostring.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/integer_fixed.sats0000644000175000017500000006702613431250607022617 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/integer_fixed.atxt ** Time of generation: Thu Feb 14 11:29:39 2019 *) (* ****** ****** *) // // HX: for unindexed integer types // (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) // stadef int8knd = int8_kind stadef int16knd = int16_kind stadef int32knd = int32_kind stadef int64knd = int64_kind // stadef uint8knd = uint8_kind stadef uint16knd = uint16_kind stadef uint32knd = uint32_kind stadef uint64knd = uint64_kind // (* ****** ****** *) // fun g0int2int_int8_int (x: int8):<> int = "mac#%" fun g0int2int_int16_int (x: int16):<> int = "mac#%" fun g0int2int_int32_int (x: int32):<> int = "mac#%" fun g0int2int_int64_int (x: int64):<> int = "mac#%" // (* ****** ****** *) // fun g0int_neg_int8 (x: int8):<> int8 = "mac#%" fun g0int_abs_int8 (x: int8):<> int8 = "mac#%" fun g0int_succ_int8 (x: int8):<> int8 = "mac#%" fun g0int_pred_int8 (x: int8):<> int8 = "mac#%" fun g0int_half_int8 (x: int8):<> int8 = "mac#%" fun g0int_asl_int8 (x: int8, n: intGte(0)):<> int8 = "mac#%" fun g0int_asr_int8 (x: int8, n: intGte(0)):<> int8 = "mac#%" fun g0int_add_int8 (x: int8, y: int8):<> int8 = "mac#%" fun g0int_sub_int8 (x: int8, y: int8):<> int8 = "mac#%" fun g0int_mul_int8 (x: int8, y: int8):<> int8 = "mac#%" fun g0int_div_int8 (x: int8, y: int8):<> int8 = "mac#%" fun g0int_mod_int8 (x: int8, y: int8):<> int8 = "mac#%" fun g0int_lt_int8 (x: int8, y: int8):<> bool = "mac#%" fun g0int_lte_int8 (x: int8, y: int8):<> bool = "mac#%" fun g0int_gt_int8 (x: int8, y: int8):<> bool = "mac#%" fun g0int_gte_int8 (x: int8, y: int8):<> bool = "mac#%" fun g0int_eq_int8 (x: int8, y: int8):<> bool = "mac#%" fun g0int_neq_int8 (x: int8, y: int8):<> bool = "mac#%" fun g0int_compare_int8 (x: int8, y: int8):<> int = "mac#%" fun g0int_max_int8 (x: int8, y: int8):<> int8 = "mac#%" fun g0int_min_int8 (x: int8, y: int8):<> int8 = "mac#%" fun g0int_isltz_int8 (x: int8):<> bool = "mac#%" fun g0int_isltez_int8 (x: int8):<> bool = "mac#%" fun g0int_isgtz_int8 (x: int8):<> bool = "mac#%" fun g0int_isgtez_int8 (x: int8):<> bool = "mac#%" fun g0int_iseqz_int8 (x: int8):<> bool = "mac#%" fun g0int_isneqz_int8 (x: int8):<> bool = "mac#%" // fun g0int_neg_int16 (x: int16):<> int16 = "mac#%" fun g0int_abs_int16 (x: int16):<> int16 = "mac#%" fun g0int_succ_int16 (x: int16):<> int16 = "mac#%" fun g0int_pred_int16 (x: int16):<> int16 = "mac#%" fun g0int_half_int16 (x: int16):<> int16 = "mac#%" fun g0int_asl_int16 (x: int16, n: intGte(0)):<> int16 = "mac#%" fun g0int_asr_int16 (x: int16, n: intGte(0)):<> int16 = "mac#%" fun g0int_add_int16 (x: int16, y: int16):<> int16 = "mac#%" fun g0int_sub_int16 (x: int16, y: int16):<> int16 = "mac#%" fun g0int_mul_int16 (x: int16, y: int16):<> int16 = "mac#%" fun g0int_div_int16 (x: int16, y: int16):<> int16 = "mac#%" fun g0int_mod_int16 (x: int16, y: int16):<> int16 = "mac#%" fun g0int_lt_int16 (x: int16, y: int16):<> bool = "mac#%" fun g0int_lte_int16 (x: int16, y: int16):<> bool = "mac#%" fun g0int_gt_int16 (x: int16, y: int16):<> bool = "mac#%" fun g0int_gte_int16 (x: int16, y: int16):<> bool = "mac#%" fun g0int_eq_int16 (x: int16, y: int16):<> bool = "mac#%" fun g0int_neq_int16 (x: int16, y: int16):<> bool = "mac#%" fun g0int_compare_int16 (x: int16, y: int16):<> int = "mac#%" fun g0int_max_int16 (x: int16, y: int16):<> int16 = "mac#%" fun g0int_min_int16 (x: int16, y: int16):<> int16 = "mac#%" fun g0int_isltz_int16 (x: int16):<> bool = "mac#%" fun g0int_isltez_int16 (x: int16):<> bool = "mac#%" fun g0int_isgtz_int16 (x: int16):<> bool = "mac#%" fun g0int_isgtez_int16 (x: int16):<> bool = "mac#%" fun g0int_iseqz_int16 (x: int16):<> bool = "mac#%" fun g0int_isneqz_int16 (x: int16):<> bool = "mac#%" // fun g0int_neg_int32 (x: int32):<> int32 = "mac#%" fun g0int_abs_int32 (x: int32):<> int32 = "mac#%" fun g0int_succ_int32 (x: int32):<> int32 = "mac#%" fun g0int_pred_int32 (x: int32):<> int32 = "mac#%" fun g0int_half_int32 (x: int32):<> int32 = "mac#%" fun g0int_asl_int32 (x: int32, n: intGte(0)):<> int32 = "mac#%" fun g0int_asr_int32 (x: int32, n: intGte(0)):<> int32 = "mac#%" fun g0int_add_int32 (x: int32, y: int32):<> int32 = "mac#%" fun g0int_sub_int32 (x: int32, y: int32):<> int32 = "mac#%" fun g0int_mul_int32 (x: int32, y: int32):<> int32 = "mac#%" fun g0int_div_int32 (x: int32, y: int32):<> int32 = "mac#%" fun g0int_mod_int32 (x: int32, y: int32):<> int32 = "mac#%" fun g0int_lt_int32 (x: int32, y: int32):<> bool = "mac#%" fun g0int_lte_int32 (x: int32, y: int32):<> bool = "mac#%" fun g0int_gt_int32 (x: int32, y: int32):<> bool = "mac#%" fun g0int_gte_int32 (x: int32, y: int32):<> bool = "mac#%" fun g0int_eq_int32 (x: int32, y: int32):<> bool = "mac#%" fun g0int_neq_int32 (x: int32, y: int32):<> bool = "mac#%" fun g0int_compare_int32 (x: int32, y: int32):<> int = "mac#%" fun g0int_max_int32 (x: int32, y: int32):<> int32 = "mac#%" fun g0int_min_int32 (x: int32, y: int32):<> int32 = "mac#%" fun g0int_isltz_int32 (x: int32):<> bool = "mac#%" fun g0int_isltez_int32 (x: int32):<> bool = "mac#%" fun g0int_isgtz_int32 (x: int32):<> bool = "mac#%" fun g0int_isgtez_int32 (x: int32):<> bool = "mac#%" fun g0int_iseqz_int32 (x: int32):<> bool = "mac#%" fun g0int_isneqz_int32 (x: int32):<> bool = "mac#%" // fun g0int_neg_int64 (x: int64):<> int64 = "mac#%" fun g0int_abs_int64 (x: int64):<> int64 = "mac#%" fun g0int_succ_int64 (x: int64):<> int64 = "mac#%" fun g0int_pred_int64 (x: int64):<> int64 = "mac#%" fun g0int_half_int64 (x: int64):<> int64 = "mac#%" fun g0int_asl_int64 (x: int64, n: intGte(0)):<> int64 = "mac#%" fun g0int_asr_int64 (x: int64, n: intGte(0)):<> int64 = "mac#%" fun g0int_add_int64 (x: int64, y: int64):<> int64 = "mac#%" fun g0int_sub_int64 (x: int64, y: int64):<> int64 = "mac#%" fun g0int_mul_int64 (x: int64, y: int64):<> int64 = "mac#%" fun g0int_div_int64 (x: int64, y: int64):<> int64 = "mac#%" fun g0int_mod_int64 (x: int64, y: int64):<> int64 = "mac#%" fun g0int_lt_int64 (x: int64, y: int64):<> bool = "mac#%" fun g0int_lte_int64 (x: int64, y: int64):<> bool = "mac#%" fun g0int_gt_int64 (x: int64, y: int64):<> bool = "mac#%" fun g0int_gte_int64 (x: int64, y: int64):<> bool = "mac#%" fun g0int_eq_int64 (x: int64, y: int64):<> bool = "mac#%" fun g0int_neq_int64 (x: int64, y: int64):<> bool = "mac#%" fun g0int_compare_int64 (x: int64, y: int64):<> int = "mac#%" fun g0int_max_int64 (x: int64, y: int64):<> int64 = "mac#%" fun g0int_min_int64 (x: int64, y: int64):<> int64 = "mac#%" fun g0int_isltz_int64 (x: int64):<> bool = "mac#%" fun g0int_isltez_int64 (x: int64):<> bool = "mac#%" fun g0int_isgtz_int64 (x: int64):<> bool = "mac#%" fun g0int_isgtez_int64 (x: int64):<> bool = "mac#%" fun g0int_iseqz_int64 (x: int64):<> bool = "mac#%" fun g0int_isneqz_int64 (x: int64):<> bool = "mac#%" // (* ****** ****** *) fun print_int8 (int8): void = "mac#%" fun prerr_int8 (int8): void = "mac#%" fun fprint_int8 : fprint_type (int8) = "mac#%" overload print with print_int8 overload prerr with prerr_int8 overload fprint with fprint_int8 fun print_int16 (int16): void = "mac#%" fun prerr_int16 (int16): void = "mac#%" fun fprint_int16 : fprint_type (int16) = "mac#%" overload print with print_int16 overload prerr with prerr_int16 overload fprint with fprint_int16 fun print_int32 (int32): void = "mac#%" fun prerr_int32 (int32): void = "mac#%" fun fprint_int32 : fprint_type (int32) = "mac#%" overload print with print_int32 overload prerr with prerr_int32 overload fprint with fprint_int32 fun print_int64 (int64): void = "mac#%" fun prerr_int64 (int64): void = "mac#%" fun fprint_int64 : fprint_type (int64) = "mac#%" overload print with print_int64 overload prerr with prerr_int64 overload fprint with fprint_int64 (* ****** ****** *) // fun g0int2uint_int8_uint (x: int8):<> uint = "mac#%" fun g0int2uint_int16_uint (x: int16):<> uint = "mac#%" fun g0int2uint_int32_uint (x: int32):<> uint = "mac#%" fun g0int2uint_int64_uint (x: int64):<> uint = "mac#%" // fun g0uint2int_uint8_int (x: uint8):<> int = "mac#%" fun g0uint2int_uint16_int (x: uint16):<> int = "mac#%" fun g0uint2int_uint32_int (x: uint32):<> int = "mac#%" fun g0uint2int_uint64_int (x: uint64):<> int = "mac#%" // fun g0uint2uint_uint8_uint (x: uint8):<> uint = "mac#%" fun g0uint2uint_uint16_uint (x: uint16):<> uint = "mac#%" fun g0uint2uint_uint32_uint (x: uint32):<> uint = "mac#%" fun g0uint2uint_uint64_uint (x: uint64):<> uint = "mac#%" // (* ****** ****** *) // fun g0uint_succ_uint8 (x: uint8):<> uint8 = "mac#%" fun g0uint_pred_uint8 (x: uint8):<> uint8 = "mac#%" fun g0uint_half_uint8 (x: uint8):<> uint8 = "mac#%" fun g0uint_add_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_sub_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_mul_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_div_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_mod_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_lsl_uint8 (x: uint8, n: intGte(0)):<> uint8 = "mac#%" fun g0uint_lsr_uint8 (x: uint8, n: intGte(0)):<> uint8 = "mac#%" fun g0uint_lnot_uint8 (x: uint8):<> uint8 = "mac#%" fun g0uint_lor_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_lxor_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_land_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_lt_uint8 (x: uint8, y: uint8):<> bool = "mac#%" fun g0uint_lte_uint8 (x: uint8, y: uint8):<> bool = "mac#%" fun g0uint_gt_uint8 (x: uint8, y: uint8):<> bool = "mac#%" fun g0uint_gte_uint8 (x: uint8, y: uint8):<> bool = "mac#%" fun g0uint_eq_uint8 (x: uint8, y: uint8):<> bool = "mac#%" fun g0uint_neq_uint8 (x: uint8, y: uint8):<> bool = "mac#%" fun g0uint_compare_uint8 (x: uint8, y: uint8):<> int = "mac#%" fun g0uint_max_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_min_uint8 (x: uint8, y: uint8):<> uint8 = "mac#%" fun g0uint_isgtz_uint8 (x: uint8):<> bool = "mac#%" fun g0uint_iseqz_uint8 (x: uint8):<> bool = "mac#%" fun g0uint_isneqz_uint8 (x: uint8):<> bool = "mac#%" // fun g0uint_succ_uint16 (x: uint16):<> uint16 = "mac#%" fun g0uint_pred_uint16 (x: uint16):<> uint16 = "mac#%" fun g0uint_half_uint16 (x: uint16):<> uint16 = "mac#%" fun g0uint_add_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_sub_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_mul_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_div_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_mod_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_lsl_uint16 (x: uint16, n: intGte(0)):<> uint16 = "mac#%" fun g0uint_lsr_uint16 (x: uint16, n: intGte(0)):<> uint16 = "mac#%" fun g0uint_lnot_uint16 (x: uint16):<> uint16 = "mac#%" fun g0uint_lor_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_lxor_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_land_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_lt_uint16 (x: uint16, y: uint16):<> bool = "mac#%" fun g0uint_lte_uint16 (x: uint16, y: uint16):<> bool = "mac#%" fun g0uint_gt_uint16 (x: uint16, y: uint16):<> bool = "mac#%" fun g0uint_gte_uint16 (x: uint16, y: uint16):<> bool = "mac#%" fun g0uint_eq_uint16 (x: uint16, y: uint16):<> bool = "mac#%" fun g0uint_neq_uint16 (x: uint16, y: uint16):<> bool = "mac#%" fun g0uint_compare_uint16 (x: uint16, y: uint16):<> int = "mac#%" fun g0uint_max_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_min_uint16 (x: uint16, y: uint16):<> uint16 = "mac#%" fun g0uint_isgtz_uint16 (x: uint16):<> bool = "mac#%" fun g0uint_iseqz_uint16 (x: uint16):<> bool = "mac#%" fun g0uint_isneqz_uint16 (x: uint16):<> bool = "mac#%" // fun g0uint_succ_uint32 (x: uint32):<> uint32 = "mac#%" fun g0uint_pred_uint32 (x: uint32):<> uint32 = "mac#%" fun g0uint_half_uint32 (x: uint32):<> uint32 = "mac#%" fun g0uint_add_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_sub_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_mul_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_div_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_mod_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_lsl_uint32 (x: uint32, n: intGte(0)):<> uint32 = "mac#%" fun g0uint_lsr_uint32 (x: uint32, n: intGte(0)):<> uint32 = "mac#%" fun g0uint_lnot_uint32 (x: uint32):<> uint32 = "mac#%" fun g0uint_lor_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_lxor_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_land_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_lt_uint32 (x: uint32, y: uint32):<> bool = "mac#%" fun g0uint_lte_uint32 (x: uint32, y: uint32):<> bool = "mac#%" fun g0uint_gt_uint32 (x: uint32, y: uint32):<> bool = "mac#%" fun g0uint_gte_uint32 (x: uint32, y: uint32):<> bool = "mac#%" fun g0uint_eq_uint32 (x: uint32, y: uint32):<> bool = "mac#%" fun g0uint_neq_uint32 (x: uint32, y: uint32):<> bool = "mac#%" fun g0uint_compare_uint32 (x: uint32, y: uint32):<> int = "mac#%" fun g0uint_max_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_min_uint32 (x: uint32, y: uint32):<> uint32 = "mac#%" fun g0uint_isgtz_uint32 (x: uint32):<> bool = "mac#%" fun g0uint_iseqz_uint32 (x: uint32):<> bool = "mac#%" fun g0uint_isneqz_uint32 (x: uint32):<> bool = "mac#%" // fun g0uint_succ_uint64 (x: uint64):<> uint64 = "mac#%" fun g0uint_pred_uint64 (x: uint64):<> uint64 = "mac#%" fun g0uint_half_uint64 (x: uint64):<> uint64 = "mac#%" fun g0uint_add_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_sub_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_mul_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_div_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_mod_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_lsl_uint64 (x: uint64, n: intGte(0)):<> uint64 = "mac#%" fun g0uint_lsr_uint64 (x: uint64, n: intGte(0)):<> uint64 = "mac#%" fun g0uint_lnot_uint64 (x: uint64):<> uint64 = "mac#%" fun g0uint_lor_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_lxor_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_land_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_lt_uint64 (x: uint64, y: uint64):<> bool = "mac#%" fun g0uint_lte_uint64 (x: uint64, y: uint64):<> bool = "mac#%" fun g0uint_gt_uint64 (x: uint64, y: uint64):<> bool = "mac#%" fun g0uint_gte_uint64 (x: uint64, y: uint64):<> bool = "mac#%" fun g0uint_eq_uint64 (x: uint64, y: uint64):<> bool = "mac#%" fun g0uint_neq_uint64 (x: uint64, y: uint64):<> bool = "mac#%" fun g0uint_compare_uint64 (x: uint64, y: uint64):<> int = "mac#%" fun g0uint_max_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_min_uint64 (x: uint64, y: uint64):<> uint64 = "mac#%" fun g0uint_isgtz_uint64 (x: uint64):<> bool = "mac#%" fun g0uint_iseqz_uint64 (x: uint64):<> bool = "mac#%" fun g0uint_isneqz_uint64 (x: uint64):<> bool = "mac#%" // (* ****** ****** *) fun print_uint8 (uint8): void = "mac#%" fun prerr_uint8 (uint8): void = "mac#%" fun fprint_uint8 : fprint_type (uint8) = "mac#%" overload print with print_uint8 overload prerr with prerr_uint8 overload fprint with fprint_uint8 fun print_uint16 (uint16): void = "mac#%" fun prerr_uint16 (uint16): void = "mac#%" fun fprint_uint16 : fprint_type (uint16) = "mac#%" overload print with print_uint16 overload prerr with prerr_uint16 overload fprint with fprint_uint16 fun print_uint32 (uint32): void = "mac#%" fun prerr_uint32 (uint32): void = "mac#%" fun fprint_uint32 : fprint_type (uint32) = "mac#%" overload print with print_uint32 overload prerr with prerr_uint32 overload fprint with fprint_uint32 fun print_uint64 (uint64): void = "mac#%" fun prerr_uint64 (uint64): void = "mac#%" fun fprint_uint64 : fprint_type (uint64) = "mac#%" overload print with print_uint64 overload prerr with prerr_uint64 overload fprint with fprint_uint64 (* ****** ****** *) // fun g1int_neg_int8 : g1int_neg_type (int8knd) = "mac#%" fun g1int_abs_int8 : g1int_abs_type (int8knd) = "mac#%" fun g1int_succ_int8 : g1int_succ_type (int8knd) = "mac#%" fun g1int_pred_int8 : g1int_pred_type (int8knd) = "mac#%" fun g1int_half_int8 : g1int_half_type (int8knd) = "mac#%" fun g1int_add_int8 : g1int_add_type (int8knd) = "mac#%" fun g1int_sub_int8 : g1int_sub_type (int8knd) = "mac#%" fun g1int_mul_int8 : g1int_mul_type (int8knd) = "mac#%" fun g1int_div_int8 : g1int_div_type (int8knd) = "mac#%" fun g1int_nmod_int8 : g1int_nmod_type (int8knd) = "mac#%" fun g1int_lt_int8 : g1int_lt_type (int8knd) = "mac#%" fun g1int_lte_int8 : g1int_lte_type (int8knd) = "mac#%" fun g1int_gt_int8 : g1int_gt_type (int8knd) = "mac#%" fun g1int_gte_int8 : g1int_gte_type (int8knd) = "mac#%" fun g1int_eq_int8 : g1int_eq_type (int8knd) = "mac#%" fun g1int_neq_int8 : g1int_neq_type (int8knd) = "mac#%" fun g1int_compare_int8 : g1int_compare_type (int8knd) = "mac#%" fun g1int_max_int8 : g1int_max_type (int8knd) = "mac#%" fun g1int_min_int8 : g1int_min_type (int8knd) = "mac#%" fun g1int_isltz_int8 : g1int_isltz_type (int8knd) = "mac#%" fun g1int_isltez_int8 : g1int_isltez_type (int8knd) = "mac#%" fun g1int_isgtz_int8 : g1int_isgtz_type (int8knd) = "mac#%" fun g1int_isgtez_int8 : g1int_isgtez_type (int8knd) = "mac#%" fun g1int_iseqz_int8 : g1int_iseqz_type (int8knd) = "mac#%" fun g1int_isneqz_int8 : g1int_isneqz_type (int8knd) = "mac#%" // fun g1int_neg_int16 : g1int_neg_type (int16knd) = "mac#%" fun g1int_abs_int16 : g1int_abs_type (int16knd) = "mac#%" fun g1int_succ_int16 : g1int_succ_type (int16knd) = "mac#%" fun g1int_pred_int16 : g1int_pred_type (int16knd) = "mac#%" fun g1int_half_int16 : g1int_half_type (int16knd) = "mac#%" fun g1int_add_int16 : g1int_add_type (int16knd) = "mac#%" fun g1int_sub_int16 : g1int_sub_type (int16knd) = "mac#%" fun g1int_mul_int16 : g1int_mul_type (int16knd) = "mac#%" fun g1int_div_int16 : g1int_div_type (int16knd) = "mac#%" fun g1int_nmod_int16 : g1int_nmod_type (int16knd) = "mac#%" fun g1int_lt_int16 : g1int_lt_type (int16knd) = "mac#%" fun g1int_lte_int16 : g1int_lte_type (int16knd) = "mac#%" fun g1int_gt_int16 : g1int_gt_type (int16knd) = "mac#%" fun g1int_gte_int16 : g1int_gte_type (int16knd) = "mac#%" fun g1int_eq_int16 : g1int_eq_type (int16knd) = "mac#%" fun g1int_neq_int16 : g1int_neq_type (int16knd) = "mac#%" fun g1int_compare_int16 : g1int_compare_type (int16knd) = "mac#%" fun g1int_max_int16 : g1int_max_type (int16knd) = "mac#%" fun g1int_min_int16 : g1int_min_type (int16knd) = "mac#%" fun g1int_isltz_int16 : g1int_isltz_type (int16knd) = "mac#%" fun g1int_isltez_int16 : g1int_isltez_type (int16knd) = "mac#%" fun g1int_isgtz_int16 : g1int_isgtz_type (int16knd) = "mac#%" fun g1int_isgtez_int16 : g1int_isgtez_type (int16knd) = "mac#%" fun g1int_iseqz_int16 : g1int_iseqz_type (int16knd) = "mac#%" fun g1int_isneqz_int16 : g1int_isneqz_type (int16knd) = "mac#%" // fun g1int_neg_int32 : g1int_neg_type (int32knd) = "mac#%" fun g1int_abs_int32 : g1int_abs_type (int32knd) = "mac#%" fun g1int_succ_int32 : g1int_succ_type (int32knd) = "mac#%" fun g1int_pred_int32 : g1int_pred_type (int32knd) = "mac#%" fun g1int_half_int32 : g1int_half_type (int32knd) = "mac#%" fun g1int_add_int32 : g1int_add_type (int32knd) = "mac#%" fun g1int_sub_int32 : g1int_sub_type (int32knd) = "mac#%" fun g1int_mul_int32 : g1int_mul_type (int32knd) = "mac#%" fun g1int_div_int32 : g1int_div_type (int32knd) = "mac#%" fun g1int_nmod_int32 : g1int_nmod_type (int32knd) = "mac#%" fun g1int_lt_int32 : g1int_lt_type (int32knd) = "mac#%" fun g1int_lte_int32 : g1int_lte_type (int32knd) = "mac#%" fun g1int_gt_int32 : g1int_gt_type (int32knd) = "mac#%" fun g1int_gte_int32 : g1int_gte_type (int32knd) = "mac#%" fun g1int_eq_int32 : g1int_eq_type (int32knd) = "mac#%" fun g1int_neq_int32 : g1int_neq_type (int32knd) = "mac#%" fun g1int_compare_int32 : g1int_compare_type (int32knd) = "mac#%" fun g1int_max_int32 : g1int_max_type (int32knd) = "mac#%" fun g1int_min_int32 : g1int_min_type (int32knd) = "mac#%" fun g1int_isltz_int32 : g1int_isltz_type (int32knd) = "mac#%" fun g1int_isltez_int32 : g1int_isltez_type (int32knd) = "mac#%" fun g1int_isgtz_int32 : g1int_isgtz_type (int32knd) = "mac#%" fun g1int_isgtez_int32 : g1int_isgtez_type (int32knd) = "mac#%" fun g1int_iseqz_int32 : g1int_iseqz_type (int32knd) = "mac#%" fun g1int_isneqz_int32 : g1int_isneqz_type (int32knd) = "mac#%" // fun g1int_neg_int64 : g1int_neg_type (int64knd) = "mac#%" fun g1int_abs_int64 : g1int_abs_type (int64knd) = "mac#%" fun g1int_succ_int64 : g1int_succ_type (int64knd) = "mac#%" fun g1int_pred_int64 : g1int_pred_type (int64knd) = "mac#%" fun g1int_half_int64 : g1int_half_type (int64knd) = "mac#%" fun g1int_add_int64 : g1int_add_type (int64knd) = "mac#%" fun g1int_sub_int64 : g1int_sub_type (int64knd) = "mac#%" fun g1int_mul_int64 : g1int_mul_type (int64knd) = "mac#%" fun g1int_div_int64 : g1int_div_type (int64knd) = "mac#%" fun g1int_nmod_int64 : g1int_nmod_type (int64knd) = "mac#%" fun g1int_lt_int64 : g1int_lt_type (int64knd) = "mac#%" fun g1int_lte_int64 : g1int_lte_type (int64knd) = "mac#%" fun g1int_gt_int64 : g1int_gt_type (int64knd) = "mac#%" fun g1int_gte_int64 : g1int_gte_type (int64knd) = "mac#%" fun g1int_eq_int64 : g1int_eq_type (int64knd) = "mac#%" fun g1int_neq_int64 : g1int_neq_type (int64knd) = "mac#%" fun g1int_compare_int64 : g1int_compare_type (int64knd) = "mac#%" fun g1int_max_int64 : g1int_max_type (int64knd) = "mac#%" fun g1int_min_int64 : g1int_min_type (int64knd) = "mac#%" fun g1int_isltz_int64 : g1int_isltz_type (int64knd) = "mac#%" fun g1int_isltez_int64 : g1int_isltez_type (int64knd) = "mac#%" fun g1int_isgtz_int64 : g1int_isgtz_type (int64knd) = "mac#%" fun g1int_isgtez_int64 : g1int_isgtez_type (int64knd) = "mac#%" fun g1int_iseqz_int64 : g1int_iseqz_type (int64knd) = "mac#%" fun g1int_isneqz_int64 : g1int_isneqz_type (int64knd) = "mac#%" // (* ****** ****** *) // fun g1uint_succ_uint8 : g1uint_succ_type (uint8knd) = "mac#%" fun g1uint_pred_uint8 : g1uint_pred_type (uint8knd) = "mac#%" fun g1uint_half_uint8 : g1uint_half_type (uint8knd) = "mac#%" fun g1uint_add_uint8 : g1uint_add_type (uint8knd) = "mac#%" fun g1uint_sub_uint8 : g1uint_sub_type (uint8knd) = "mac#%" fun g1uint_mul_uint8 : g1uint_mul_type (uint8knd) = "mac#%" fun g1uint_div_uint8 : g1uint_div_type (uint8knd) = "mac#%" fun g1uint_mod_uint8 : g1uint_mod_type (uint8knd) = "mac#%" fun g1uint_lt_uint8 : g1uint_lt_type (uint8knd) = "mac#%" fun g1uint_lte_uint8 : g1uint_lte_type (uint8knd) = "mac#%" fun g1uint_gt_uint8 : g1uint_gt_type (uint8knd) = "mac#%" fun g1uint_gte_uint8 : g1uint_gte_type (uint8knd) = "mac#%" fun g1uint_eq_uint8 : g1uint_eq_type (uint8knd) = "mac#%" fun g1uint_neq_uint8 : g1uint_neq_type (uint8knd) = "mac#%" fun g1uint_compare_uint8 : g1uint_compare_type (uint8knd) = "mac#%" fun g1uint_max_uint8 : g1uint_max_type (uint8knd) = "mac#%" fun g1uint_min_uint8 : g1uint_min_type (uint8knd) = "mac#%" fun g1uint_isgtz_uint8 : g1uint_isgtz_type (uint8knd) = "mac#%" fun g1uint_iseqz_uint8 : g1uint_iseqz_type (uint8knd) = "mac#%" fun g1uint_isneqz_uint8 : g1uint_isneqz_type (uint8knd) = "mac#%" // fun g1uint_succ_uint16 : g1uint_succ_type (uint16knd) = "mac#%" fun g1uint_pred_uint16 : g1uint_pred_type (uint16knd) = "mac#%" fun g1uint_half_uint16 : g1uint_half_type (uint16knd) = "mac#%" fun g1uint_add_uint16 : g1uint_add_type (uint16knd) = "mac#%" fun g1uint_sub_uint16 : g1uint_sub_type (uint16knd) = "mac#%" fun g1uint_mul_uint16 : g1uint_mul_type (uint16knd) = "mac#%" fun g1uint_div_uint16 : g1uint_div_type (uint16knd) = "mac#%" fun g1uint_mod_uint16 : g1uint_mod_type (uint16knd) = "mac#%" fun g1uint_lt_uint16 : g1uint_lt_type (uint16knd) = "mac#%" fun g1uint_lte_uint16 : g1uint_lte_type (uint16knd) = "mac#%" fun g1uint_gt_uint16 : g1uint_gt_type (uint16knd) = "mac#%" fun g1uint_gte_uint16 : g1uint_gte_type (uint16knd) = "mac#%" fun g1uint_eq_uint16 : g1uint_eq_type (uint16knd) = "mac#%" fun g1uint_neq_uint16 : g1uint_neq_type (uint16knd) = "mac#%" fun g1uint_compare_uint16 : g1uint_compare_type (uint16knd) = "mac#%" fun g1uint_max_uint16 : g1uint_max_type (uint16knd) = "mac#%" fun g1uint_min_uint16 : g1uint_min_type (uint16knd) = "mac#%" fun g1uint_isgtz_uint16 : g1uint_isgtz_type (uint16knd) = "mac#%" fun g1uint_iseqz_uint16 : g1uint_iseqz_type (uint16knd) = "mac#%" fun g1uint_isneqz_uint16 : g1uint_isneqz_type (uint16knd) = "mac#%" // fun g1uint_succ_uint32 : g1uint_succ_type (uint32knd) = "mac#%" fun g1uint_pred_uint32 : g1uint_pred_type (uint32knd) = "mac#%" fun g1uint_half_uint32 : g1uint_half_type (uint32knd) = "mac#%" fun g1uint_add_uint32 : g1uint_add_type (uint32knd) = "mac#%" fun g1uint_sub_uint32 : g1uint_sub_type (uint32knd) = "mac#%" fun g1uint_mul_uint32 : g1uint_mul_type (uint32knd) = "mac#%" fun g1uint_div_uint32 : g1uint_div_type (uint32knd) = "mac#%" fun g1uint_mod_uint32 : g1uint_mod_type (uint32knd) = "mac#%" fun g1uint_lt_uint32 : g1uint_lt_type (uint32knd) = "mac#%" fun g1uint_lte_uint32 : g1uint_lte_type (uint32knd) = "mac#%" fun g1uint_gt_uint32 : g1uint_gt_type (uint32knd) = "mac#%" fun g1uint_gte_uint32 : g1uint_gte_type (uint32knd) = "mac#%" fun g1uint_eq_uint32 : g1uint_eq_type (uint32knd) = "mac#%" fun g1uint_neq_uint32 : g1uint_neq_type (uint32knd) = "mac#%" fun g1uint_compare_uint32 : g1uint_compare_type (uint32knd) = "mac#%" fun g1uint_max_uint32 : g1uint_max_type (uint32knd) = "mac#%" fun g1uint_min_uint32 : g1uint_min_type (uint32knd) = "mac#%" fun g1uint_isgtz_uint32 : g1uint_isgtz_type (uint32knd) = "mac#%" fun g1uint_iseqz_uint32 : g1uint_iseqz_type (uint32knd) = "mac#%" fun g1uint_isneqz_uint32 : g1uint_isneqz_type (uint32knd) = "mac#%" // fun g1uint_succ_uint64 : g1uint_succ_type (uint64knd) = "mac#%" fun g1uint_pred_uint64 : g1uint_pred_type (uint64knd) = "mac#%" fun g1uint_half_uint64 : g1uint_half_type (uint64knd) = "mac#%" fun g1uint_add_uint64 : g1uint_add_type (uint64knd) = "mac#%" fun g1uint_sub_uint64 : g1uint_sub_type (uint64knd) = "mac#%" fun g1uint_mul_uint64 : g1uint_mul_type (uint64knd) = "mac#%" fun g1uint_div_uint64 : g1uint_div_type (uint64knd) = "mac#%" fun g1uint_mod_uint64 : g1uint_mod_type (uint64knd) = "mac#%" fun g1uint_lt_uint64 : g1uint_lt_type (uint64knd) = "mac#%" fun g1uint_lte_uint64 : g1uint_lte_type (uint64knd) = "mac#%" fun g1uint_gt_uint64 : g1uint_gt_type (uint64knd) = "mac#%" fun g1uint_gte_uint64 : g1uint_gte_type (uint64knd) = "mac#%" fun g1uint_eq_uint64 : g1uint_eq_type (uint64knd) = "mac#%" fun g1uint_neq_uint64 : g1uint_neq_type (uint64knd) = "mac#%" fun g1uint_compare_uint64 : g1uint_compare_type (uint64knd) = "mac#%" fun g1uint_max_uint64 : g1uint_max_type (uint64knd) = "mac#%" fun g1uint_min_uint64 : g1uint_min_type (uint64knd) = "mac#%" fun g1uint_isgtz_uint64 : g1uint_isgtz_type (uint64knd) = "mac#%" fun g1uint_iseqz_uint64 : g1uint_iseqz_type (uint64knd) = "mac#%" fun g1uint_isneqz_uint64 : g1uint_isneqz_type (uint64knd) = "mac#%" // (* ****** ****** *) (* end of [integer_fixed.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/strptr.sats0000644000175000017500000002276613431250607021343 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/strptr.atxt ** Time of generation: Thu Feb 14 11:29:39 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) (* ****** ****** *) (* ** HX-2012: ** a Strptr0 is either the null-pointer or Strptr1 ** a Strptr1 is a null-terminated arrayptr of characters *) (* ****** ****** *) // abst@ype strbuf_t0ype (m:int, n:int) // HX: [m] byte size // (* ****** ****** *) // stadef strbuf = strbuf_t0ype viewdef strbuf_v (l:addr, m:int, n:int) = strbuf (m, n) @ l // (* ****** ****** *) // praxi strbuf2bytes {m,n:int} (buf: &strbuf (m, n) >> b0ytes (m)): void // praxi strbuf2bytes_v {l:addr}{m,n:int} (pf: strbuf_v (l, m, n)): b0ytes_v (l, m) // (* ****** ****** *) praxi lemma_strptr_param {l:addr} (x: !strptr l): [l>=null] void // end of [lemma_strptr_param] praxi lemma_strnptr_param {l:addr}{n:int} ( x: !strnptr (l, n) ) : [(l>null&&n>=0) || (l==null&&n==(~1))] void // end of [lemma_strnptr_param] (* ****** ****** *) praxi lemma_strbuf_param {l:addr}{m,n:int} (x: &strbuf (m, n)): [m>n] void // end of [lemma_strbuf_param] praxi lemma_strbuf_v_param {l:addr}{m,n:int} (pf: !strbuf_v (l, m, n)): [l>null;m>n] void // end of [lemma_strbuf_v_param] (* ****** ****** *) castfn strptr2ptr {l:addr}(x: !strptr l):<> ptr (l) castfn strnptr2ptr {l:addr}{n:int}(x: !strnptr(l, n)):<> ptr(l) // end of [strnptr2ptr] (* ****** ****** *) // castfn strnptr2strptr {l:addr}{n:int}(x: strnptr(l, n)):<> strptr(l) // end of [strnptr2strptr] castfn strptr2strnptr {l:addr}(x: strptr(l)):<> [n:int] strnptr(l, n) // end of [strptr2strnptr] // (* ****** ****** *) // castfn strptr2stropt {l:addr} ( x: strptr (l) ) :<> [n:int |(l==null&&n < 0)||(l>null&&n>=0) ] stropt(n) // castfn strptr2stropt0(x: Strptr0):<> Stropt0 castfn stropt2stropt1(x: Strptr1):<> Stropt1 // castfn strnptr2stropt {l:addr}{n:int} (x: strnptr(l, n)):<> stropt(n) // (* ****** ****** *) // castfn strptr2string(x: Strptr1):<> String // castfn strnptr2string {l:addr}{n:nat}(x: strnptr(l, n)):<> string(n) // (* ****** ****** *) fun strptr_null():<> strptr(null) = "mac#%" (* ****** ****** *) praxi strptr_free_null {l:addr | l <= null} (x: strptr(l)):<> void // end of [strptr_free_null] (* ****** ****** *) fun{} strptr_is_null {l:addr} (x: !strptr(l)):<> bool(l==null) fun{} strptr_isnot_null {l:addr} (x: !strptr(l)):<> bool(l > null) (* ****** ****** *) fun{} strptr_is_empty(x: !Strptr1):<> bool fun{} strptr_isnot_empty(x: !Strptr1):<> bool (* ****** ****** *) // fun{} strnptr_is_null {l:addr}{n:int} (x: !strnptr(l, n)):<> bool(l==null) fun{} strnptr_isnot_null {l:addr}{n:int} (x: !strnptr(l, n)):<> bool(l > null) // (* ****** ****** *) // praxi strnptr_free_null {l:addr|l <= null}{n:int}(x: strnptr(l, n)):<> void // end of [strnptr_free_null] // (* ****** ****** *) fun lt_strptr_strptr (x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%" overload < with lt_strptr_strptr fun lte_strptr_strptr (x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%" overload <= with lte_strptr_strptr fun gt_strptr_strptr (x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%" overload > with gt_strptr_strptr fun gte_strptr_strptr (x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%" overload >= with gte_strptr_strptr fun eq_strptr_strptr (x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%" overload = with eq_strptr_strptr fun neq_strptr_strptr (x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%" overload != with neq_strptr_strptr overload <> with neq_strptr_strptr (* ****** ****** *) // fun compare_strptr_strptr (x1: !Strptr0, x2: !Strptr0):<> Sgn = "mac#%" // (* ****** ****** *) fun eq_strptr_string (x1: !Strptr1, x2: string):<> bool = "mac#%" overload = with eq_strptr_string fun neq_strptr_string (x1: !Strptr1, x2: string):<> bool = "mac#%" overload != with neq_strptr_string overload <> with neq_strptr_string (* ****** ****** *) // fun compare_strptr_string (x1: !Strptr1, x2: string):<> Sgn = "mac#%" // (* ****** ****** *) fun strptr_free(x: Strptr0): void = "mac#%" fun strnptr_free(x: Strnptr0): void = "mac#%" (* ****** ****** *) // fun fprint_strptr ( out: FILEref, x: !Strptr0 ) : void = "mac#%" // fun print_strptr(x: !Strptr0): void = "mac#%" fun prerr_strptr(x: !Strptr0): void = "mac#%" // (* ****** ****** *) // fun print_strbuf {m,n:int}(buf: &strbuf(m, n)): void = "mac#%" fun prerr_strbuf {m,n:int}(buf: &strbuf(m, n)): void = "mac#%" // fun fprint_strbuf{m,n:int} (out: FILEref, buf: &strbuf(m, n)): void = "mac#%" // (* ****** ****** *) // fun fprint_strnptr ( out: FILEref, x: !Strnptr0 ) : void = "mac#%" // fun print_strnptr(x: !Strnptr0): void = "mac#%" fun prerr_strnptr(x: !Strnptr0): void = "mac#%" // (* ****** ****** *) // fun{} strnptr_get_at_size {n:int} (str: !strnptr(n), i: sizeLt(n)):<> charNZ // fun{tk:tk} strnptr_get_at_gint {n:int}{i:nat | i < n} (str: !strnptr(n), i: g1int(tk, i)):<> charNZ fun{tk:tk} strnptr_get_at_guint {n:int}{i:nat | i < n} (str: !strnptr(n), i: g1uint(tk, i)):<> charNZ // symintr strnptr_get_at overload strnptr_get_at with strnptr_get_at_size of 1 overload strnptr_get_at with strnptr_get_at_gint of 0 overload strnptr_get_at with strnptr_get_at_guint of 0 // (* ****** ****** *) // fun{} strnptr_set_at_size {n:int} (str: !strnptr(n), i: sizeLt n, c: charNZ): void // fun{tk:tk} strnptr_set_at_gint {n:int}{i:nat | i < n} (str: !strnptr(n), i: g1int(tk, i), c: charNZ): void fun{tk:tk} strnptr_set_at_guint {n:int}{i:nat | i < n} (str: !strnptr(n), i: g1uint(tk, i), c: charNZ): void // symintr strnptr_set_at overload strnptr_set_at with strnptr_set_at_size of 1 overload strnptr_set_at with strnptr_set_at_gint of 0 overload strnptr_set_at with strnptr_set_at_guint of 0 // (* ****** ****** *) // fun{} strptr_length(x: !Strptr0):<> ssize_t fun{} strnptr_length{n:int}(x: !strnptr(n)):<> ssize_t(n) // (* ****** ****** *) // fun{} strptr0_copy(x: !Strptr0): Strptr0 fun{} strptr1_copy(x: !Strptr1): Strptr1 fun{} strnptr_copy {n:int}(x: !strnptr (n)): strnptr(n) // (* ****** ****** *) // fun{} strptr_append (x1: !Strptr0, x2: !Strptr0): Strptr0 // fun{} strnptr_append{n1,n2:nat} (x1: !strnptr n1, x2: !strnptr n2): strnptr(n1+n2) // (* ****** ****** *) fun{} strptrlst_free (xs: List_vt(Strptr0)): void (* ****** ****** *) fun{} strptrlst_concat (xs: List_vt(Strptr0)): Strptr0 (* ****** ****** *) fun{ env:vt0p } strnptr_foreach$cont (c: &charNZ, env: &env): bool fun{ env:vt0p } strnptr_foreach$fwork (c: &charNZ >> _, env: &env): void fun{} strnptr_foreach {n:nat} (str: !strnptr n): sizeLte(n) fun{ env:vt0p } strnptr_foreach_env {n:nat} (str: !strnptr n, env: &(env) >> _): sizeLte(n) // end of [strnptr_foreach_env] (* ****** ****** *) fun{ env:vt0p } strnptr_rforeach$cont (c: &charNZ, env: &env): bool fun{ env:vt0p } strnptr_rforeach$fwork (c: &charNZ >> _, env: &env): void fun{} strnptr_rforeach {n:nat} (str: !strnptr n): sizeLte(n) fun{ env:vt0p } strnptr_rforeach_env {n:nat} (str: !strnptr n, env: &(env) >> _): sizeLte(n) // end of [strnptr_rforeach_env] (* ****** ****** *) // // overloading for certain symbols // overload [] with strnptr_get_at_size of 1 overload [] with strnptr_get_at_gint of 0 overload [] with strnptr_get_at_guint of 0 // overload [] with strnptr_set_at_size of 1 overload [] with strnptr_set_at_gint of 0 overload [] with strnptr_set_at_guint of 0 // overload iseqz with strptr_is_null overload iseqz with strnptr_is_null overload isneqz with strptr_isnot_null overload isneqz with strnptr_isnot_null // overload compare with compare_strptr_strptr overload compare with compare_strptr_string // overload length with strptr_length overload length with strnptr_length // overload copy with strptr0_copy of 0 overload copy with strptr1_copy of 10 // overload free with strptr_free overload free with strnptr_free // overload print with print_strptr overload prerr with prerr_strptr overload fprint with fprint_strptr // overload print with print_strbuf overload prerr with prerr_strbuf overload fprint with fprint_strbuf // overload print with print_strnptr overload prerr with prerr_strnptr overload fprint with fprint_strnptr // overload ptrcast with strptr2ptr overload ptrcast with strnptr2ptr // (* ****** ****** *) (* end of [strptr.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/gnumber.sats0000644000175000017500000000643313431250607021435 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/gnumber.atxt ** Time of generation: Thu Feb 14 11:29:41 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2011 *) (* ****** ****** *) (* Author: Brandon Barker *) (* Authoremail: brandon.barker AT gmail DOT com *) (* Start time: July, 2013 *) (* ****** ****** *) // // HX: for unindexed gnumber types // (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) typedef SHR(a:type) = a // for commenting purpose typedef NSH(a:type) = a // for commenting purpose (* ****** ****** *) abstype fprecision_prop (a1:t0p, a2:t0p) propdef fprecision (a1:t0p, a2:t0p) = fprecision_prop (a1, a2) praxi fprecision_float (): fprecision (float, float) praxi fprecision_double (): fprecision (double, double) praxi fprecision_ldouble (): fprecision (ldouble, ldouble) (* ****** ****** *) // // HX: generic number operations // (* ****** ****** *) // // fun{a:t0p} gnumber_int (x: int):<> a fun{a:t0p} gnumber_double (x: double):<> a // (* ****** ****** *) fun{a:t0p} gabs_val (x: a):<> a fun{a:t0p} gneg_val (x: a):<> a fun{a:t0p} gsucc_val (x: a):<> a fun{a:t0p} gpred_val (x: a):<> a fun{a:t0p} grecip_val (x: a): a (* ****** ****** *) fun{a:t0p} gadd_val_val (x: a, y: a):<> a fun{a:t0p} gsub_val_val (x: a, y: a):<> a fun{a:t0p} gmul_val_val (x: a, y: a):<> a fun{a:t0p} gdiv_val_val (x: a, y: a): a fun{a:t0p} gmod_val_val (x: a, y: a): a (* ****** ****** *) // fun{a:t0p} gadd_val_int (x: a, y: int):<> a fun{a:t0p} gsub_val_int (x: a, y: int):<> a // fun{a:t0p} gmul_int_val (x: int, y: a):<> a fun{a:t0p} gmul_val_int (x: a, y: int):<> a // fun{a:t0p} gdiv_int_val (x: int, y: a): a fun{a:t0p} gdiv_val_int (x: a, y: int): a fun{a:t0p} gmod_val_int (x: a, y: int): a // (* ****** ****** *) fun{a:t0p} gsqrt_val (x: a): a (* ****** ****** *) fun{a:t0p} gconjugate_val (x: a):<> a (* ****** ****** *) fun{a:t0p} gpow_int_val (n: intGte(0), x: a):<> a (* ****** ****** *) (* end of [gnumber.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/bool.sats0000644000175000017500000001516713431250607020735 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/bool.atxt ** Time of generation: Thu Feb 14 11:29:38 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2011 *) (* ****** ****** *) // castfn g0ofg1_bool (x: Bool):<> bool castfn g1ofg0_bool (x: bool):<> Bool // overload g0ofg1 with g0ofg1_bool // index-erasing overload g1ofg0 with g1ofg0_bool // index-inducing // (* ****** ****** *) // fun int2bool0 (i: int):<> bool = "mac#%" fun int2bool1 {i:int} (i: int i):<> bool(i != 0) = "mac#%" // symintr int2bool overload int2bool with int2bool0 of 0 overload int2bool with int2bool1 of 10 // fun bool2int0 (b: bool):<> natLt(2) = "mac#%" fun bool2int1 {b:bool} (b: bool b):<> int(bool2int(b)) = "mac#%" // symintr bool2int overload bool2int with bool2int0 of 0 overload bool2int with bool2int1 of 10 // (* ****** ****** *) (* // // HX: declared in [prelude/basics_dyn.sats] // val true : bool (true) and false : bool (false) *) (* ****** ****** *) (* ** HX-2012-06: ** shortcut version of disjuction and conjuction ** note that these two cannot be declared as functions *) macdef || (b1, b2) = (if ,(b1) then true else ,(b2)): bool macdef && (b1, b2) = (if ,(b1) then ,(b2) else false): bool (* ****** ****** *) typedef boolLte (b: bool) = [a: bool | a <= b] bool (a) typedef boolGte (b: bool) = [a: bool | a >= b] bool (a) (* ****** ****** *) // fun neg_bool0 (b: bool):<> bool = "mac#%" // overload ~ with neg_bool0 of 0 overload not with neg_bool0 of 0 // (* ****** ****** *) // fun add_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" fun mul_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" // overload + with add_bool0_bool0 of 0 overload * with mul_bool0_bool0 of 0 // (* ****** ****** *) // fun xor_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" // overload xor with xor_bool0_bool0 of 0 // (* ****** ****** *) fun lt_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload < with lt_bool0_bool0 of 0 fun lte_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload <= with lte_bool0_bool0 of 0 fun gt_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload > with gt_bool0_bool0 of 0 fun gte_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload >= with gte_bool0_bool0 of 0 fun eq_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload = with eq_bool0_bool0 of 0 fun neq_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload != with neq_bool0_bool0 of 0 overload <> with neq_bool0_bool0 of 0 (* ****** ****** *) fun compare_bool0_bool0 (b1: bool, b2: bool):<> Sgn = "mac#%" overload compare with compare_bool0_bool0 (* ****** ****** *) // // HX: // return is statically allocated // fun bool2string(b: bool):<> string = "mac#%" // (* ****** ****** *) // fun print_bool (x: bool): void = "mac#%" fun prerr_bool (x: bool): void = "mac#%" fun fprint_bool : fprint_type (bool) = "mac#%" // overload print with print_bool overload prerr with prerr_bool overload fprint with fprint_bool // (* ****** ****** *) // fun neg_bool1 {b:bool} (b: bool b):<> bool (~b) = "mac#%" // overload ~ with neg_bool1 of 10 overload not with neg_bool1 of 10 // (* ****** ****** *) fun add_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 || b2) = "mac#%" overload + with add_bool0_bool1 of 10 fun add_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 || b2) = "mac#%" overload + with add_bool1_bool0 of 10 fun add_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 || b2) = "mac#%" overload + with add_bool1_bool1 of 20 (* ****** ****** *) fun mul_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool0_bool1 of 10 fun mul_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool0 of 10 fun mul_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool1 of 20 (* ****** ****** *) // fun xor_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool((b1)==(~b2)) = "mac#%" // overload xor with xor_bool1_bool1 of 20 // (* ****** ****** *) // // (b1 < b2) == (~b1 && b2) // fun lt_bool1_bool1 {b1,b2:bool} (b1: bool (b1), b2: bool (b2)) :<> bool (b1 < b2) = "mac#%" overload < with lt_bool1_bool1 of 20 // // (b1 <= b2) == (~b1 || b2) // fun lte_bool1_bool1 {b1,b2:bool} (b1: bool (b1), b2: bool (b2)) :<> bool (b1 <= b2) = "mac#%" overload <= with lte_bool1_bool1 of 20 // // (b1 > b2) == (b1 && ~b2) // fun gt_bool1_bool1 {b1,b2:bool} (b1: bool (b1), b2: bool (b2)) :<> bool (b1 > b2) = "mac#%" overload > with gt_bool1_bool1 of 20 // // (b1 >= b2) == (b1 || ~b2) // fun gte_bool1_bool1 {b1,b2:bool} (b1: bool (b1), b2: bool (b2)) :<> bool (b1 >= b2) = "mac#%" overload >= with gte_bool1_bool1 of 20 (* ****** ****** *) fun eq_bool1_bool1 {b1,b2:bool} (b1: bool (b1), b2: bool (b2)) :<> bool (b1 == b2) = "mac#%" overload = with eq_bool1_bool1 of 20 fun neq_bool1_bool1 {b1,b2:bool} (b1: bool (b1), b2: bool (b2)) :<> bool (b1 != b2) = "mac#%" overload != with neq_bool1_bool1 of 20 overload <> with neq_bool1_bool1 of 20 (* ****** ****** *) fun compare_bool1_bool1 {b1,b2:bool} // HX: this one is a function ( b1: bool b1, b2: bool b2 ) :<> int (bool2int(b1) - bool2int(b2)) = "mac#%" overload compare with compare_bool1_bool1 of 20 (* ****** ****** *) (* end of [bool.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/reference.sats0000644000175000017500000000613213431250607021730 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/reference.atxt ** Time of generation: Thu Feb 14 11:29:40 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2012 *) (* ****** ****** *) sortdef t0p = t@ype and vt0p = viewt@ype (* ****** ****** *) castfn ref_get_ptr {a:vt0p} (r: ref a):<> [l:agz] ptr (l) castfn ref_get_viewptr {a:vt0p} (r: ref a):<> [l:agz] (vbox (a @ l) | ptr l) // end of [ref_get_viewptr] (* ****** ****** *) (* macdef ptr_of_ref = ref_get_ptr *) (* ****** ****** *) fun{a:vt0p} ref(x: a): ref(a) fun{a:vt0p} ref_make_elt(x: a): ref(a) (* ****** ****** *) castfn ref_make_viewptr {a:vt0p}{l:addr} (pf: a @ l | p: ptr(l)):<> ref(a) // end of [ref_make_viewptr] (* ****** ****** *) fun{a:vt0p} ref_make_type_elt(TYPE(a), a): ref(a) (* ****** ****** *) // fun{a:t0p} ref_get_elt(r: ref a): (a) fun{a:t0p} ref_set_elt(r: ref a, x: a): void // (* ****** ****** *) // fun{a:vt0p} ref_exch_elt(r: ref a, x: &a>>a): void // (* ****** ****** *) (* ** HX-2012-05: ** this is not particularly useful except for the purpose ** of avoiding using the [vbox] pattern *) fun{} ref_app_fun{a:vt0p} ( r: ref a, f: (&(a)>>_) -<0,!wrt> void ) : void // end of [ref_app_fun] fun{} ref_app_funenv{a:vt0p} {v:view}{vt:viewtype} ( pfv: !v | r: ref a, f: (!v | &(a)>>_, !vt) -<0,!wrt> void, env: !vt ) : void // end of [ref_app_funenv] (* ****** ****** *) // // HX-2013-10: unsafe but convenient // fun{} ref_vtakeout {a:vt0p} ( ref: ref (a) ) : [l:addr] (a @ l, (a @ l) - void | ptr(l)) // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) overload [] with ref_get_elt // ref[] overload [] with ref_set_elt // ref[] := (val) (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/integer_size.sats0000644000175000017500000002566213431250607022472 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/integer_size.atxt ** Time of generation: Thu Feb 14 11:29:38 2019 *) (* ****** ****** *) sortdef tk = tkind (* ****** ****** *) // stadef sizeknd = size_kind stadef ssizeknd = ssize_kind // (* ****** ****** *) // fun g0int2uint_int_size(int):<> size_t = "mac#%" fun g0uint2uint_uint_size(uint):<> size_t = "mac#%" // fun g0int2int_int_ssize(int):<> ssize_t = "mac#%" fun g0uint2int_uint_ssize(uint):<> ssize_t = "mac#%" // (* ****** ****** *) // fun g0int2uint_lint_size(lint):<> size_t = "mac#%" fun g0uint2uint_ulint_size(ulint):<> size_t = "mac#%" // fun g0int2int_lint_ssize(lint):<> ssize_t = "mac#%" fun g0uint2int_ulint_ssize(ulint):<> ssize_t = "mac#%" // (* ****** ****** *) // fun g0uint2int_size_int(size_t):<> int = "mac#%" fun g0uint2int_size_lint(size_t):<> lint = "mac#%" fun g0uint2int_size_llint(size_t):<> llint = "mac#%" // fun g0uint2int_size_ssize(size_t):<> ssize_t = "mac#%" // fun g0uint2uint_size_uint(size_t):<> uint = "mac#%" fun g0uint2uint_size_ulint(size_t):<> ulint = "mac#%" fun g0uint2uint_size_ullint(size_t):<> ullint = "mac#%" // fun g0uint2uint_size_size(sz: size_t):<> size_t = "mac#%" // (* ****** ****** *) // fun g0int2int_ssize_int(ssize_t):<> int = "mac#%" fun g0int2int_ssize_lint(ssize_t):<> lint = "mac#%" fun g0int2int_ssize_llint(ssize_t):<> llint = "mac#%" // fun g0int2int_ssize_ssize(ssize_t):<> ssize_t = "mac#%" // fun g0int2uint_ssize_uint(ssize_t):<> uint = "mac#%" fun g0int2uint_ssize_ulint(ssize_t):<> ulint = "mac#%" fun g0int2uint_ssize_ullint(ssize_t):<> ullint = "mac#%" // fun g0int2uint_ssize_size(ssz: ssize_t):<> size_t = "mac#%" // (* ****** ****** *) // fun g0uint2string_size(sz: size_t): Strptr1 = "mac#%" fun g0string2uint_size(rep: NSH(string)):<> size_t = "mac#%" // fun g0int2string_ssize(ssz: ssize_t): Strptr1 = "mac#%" fun g0string2int_ssize(rep: NSH(string)):<> ssize_t = "mac#%" // (* ****** ****** *) // fun print_size (size_t): void = "mac#%" fun prerr_size (size_t): void = "mac#%" fun fprint_size : fprint_type (size_t) = "mac#%" overload print with print_size overload prerr with prerr_size overload fprint with fprint_size // fun print_ssize (ssize_t): void = "mac#%" fun prerr_ssize (ssize_t): void = "mac#%" fun fprint_ssize : fprint_type (ssize_t) = "mac#%" overload print with print_ssize overload prerr with prerr_ssize overload fprint with fprint_ssize // (* ****** ****** *) // fun g0uint_succ_size (x: size_t):<> size_t = "mac#%" fun g0uint_pred_size (x: size_t):<> size_t = "mac#%" fun g0uint_half_size (x: size_t):<> size_t = "mac#%" fun g0uint_add_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_sub_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_mul_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_div_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_mod_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_lsl_size (x: size_t, n: intGte(0)):<> size_t = "mac#%" fun g0uint_lsr_size (x: size_t, n: intGte(0)):<> size_t = "mac#%" fun g0uint_lnot_size (x: size_t):<> size_t = "mac#%" fun g0uint_lor_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_lxor_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_land_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_lt_size (x: size_t, y: size_t):<> bool = "mac#%" fun g0uint_lte_size (x: size_t, y: size_t):<> bool = "mac#%" fun g0uint_gt_size (x: size_t, y: size_t):<> bool = "mac#%" fun g0uint_gte_size (x: size_t, y: size_t):<> bool = "mac#%" fun g0uint_eq_size (x: size_t, y: size_t):<> bool = "mac#%" fun g0uint_neq_size (x: size_t, y: size_t):<> bool = "mac#%" fun g0uint_compare_size (x: size_t, y: size_t):<> int = "mac#%" fun g0uint_max_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_min_size (x: size_t, y: size_t):<> size_t = "mac#%" fun g0uint_isgtz_size (x: size_t):<> bool = "mac#%" fun g0uint_iseqz_size (x: size_t):<> bool = "mac#%" fun g0uint_isneqz_size (x: size_t):<> bool = "mac#%" // fun g0int_neg_ssize (x: ssize_t):<> ssize_t = "mac#%" fun g0int_abs_ssize (x: ssize_t):<> ssize_t = "mac#%" fun g0int_succ_ssize (x: ssize_t):<> ssize_t = "mac#%" fun g0int_pred_ssize (x: ssize_t):<> ssize_t = "mac#%" fun g0int_half_ssize (x: ssize_t):<> ssize_t = "mac#%" fun g0int_asl_ssize (x: ssize_t, n: intGte(0)):<> ssize_t = "mac#%" fun g0int_asr_ssize (x: ssize_t, n: intGte(0)):<> ssize_t = "mac#%" fun g0int_add_ssize (x: ssize_t, y: ssize_t):<> ssize_t = "mac#%" fun g0int_sub_ssize (x: ssize_t, y: ssize_t):<> ssize_t = "mac#%" fun g0int_mul_ssize (x: ssize_t, y: ssize_t):<> ssize_t = "mac#%" fun g0int_div_ssize (x: ssize_t, y: ssize_t):<> ssize_t = "mac#%" fun g0int_mod_ssize (x: ssize_t, y: ssize_t):<> ssize_t = "mac#%" fun g0int_lt_ssize (x: ssize_t, y: ssize_t):<> bool = "mac#%" fun g0int_lte_ssize (x: ssize_t, y: ssize_t):<> bool = "mac#%" fun g0int_gt_ssize (x: ssize_t, y: ssize_t):<> bool = "mac#%" fun g0int_gte_ssize (x: ssize_t, y: ssize_t):<> bool = "mac#%" fun g0int_eq_ssize (x: ssize_t, y: ssize_t):<> bool = "mac#%" fun g0int_neq_ssize (x: ssize_t, y: ssize_t):<> bool = "mac#%" fun g0int_compare_ssize (x: ssize_t, y: ssize_t):<> int = "mac#%" fun g0int_max_ssize (x: ssize_t, y: ssize_t):<> ssize_t = "mac#%" fun g0int_min_ssize (x: ssize_t, y: ssize_t):<> ssize_t = "mac#%" fun g0int_isltz_ssize (x: ssize_t):<> bool = "mac#%" fun g0int_isltez_ssize (x: ssize_t):<> bool = "mac#%" fun g0int_isgtz_ssize (x: ssize_t):<> bool = "mac#%" fun g0int_isgtez_ssize (x: ssize_t):<> bool = "mac#%" fun g0int_iseqz_ssize (x: ssize_t):<> bool = "mac#%" fun g0int_isneqz_ssize (x: ssize_t):<> bool = "mac#%" // (* ****** ****** *) // fun g1int2uint_int_size: g1int2uint_type(intknd, sizeknd) = "mac#%" fun g1uint2uint_uint_size: g1uint2uint_type(uintknd, sizeknd) = "mac#%" // fun g1int2int_int_ssize: g1int2int_type(intknd, ssizeknd) = "mac#%" fun g1uint2int_uint_ssize: g1uint2int_type(uintknd, ssizeknd) = "mac#%" // (* ****** ****** *) // fun g1uint2int_size_int: g1uint2int_type(sizeknd, intknd) = "mac#%" fun g1uint2uint_size_uint: g1uint2uint_type(sizeknd, uintknd) = "mac#%" // fun g1uint2uint_size_size: g1uint2uint_type(sizeknd, sizeknd) = "mac#%" // (* ****** ****** *) // fun g1int2int_ssize_int: g1int2int_type(ssizeknd, intknd) = "mac#%" fun g1int2uint_ssize_uint: g1int2uint_type(ssizeknd, uintknd) = "mac#%" // fun g1int2int_ssize_ssize: g1int2int_type(ssizeknd, ssizeknd) = "mac#%" // (* ****** ****** *) // fun g1uint2int_size_ssize: g1uint2int_type(sizeknd, ssizeknd) = "mac#%" fun g1int2uint_ssize_size: g1int2uint_type(ssizeknd, sizeknd) = "mac#%" // (* ****** ****** *) // fun g1uint_succ_size : g1uint_succ_type (sizeknd) = "mac#%" fun g1uint_pred_size : g1uint_pred_type (sizeknd) = "mac#%" fun g1uint_half_size : g1uint_half_type (sizeknd) = "mac#%" fun g1uint_add_size : g1uint_add_type (sizeknd) = "mac#%" fun g1uint_sub_size : g1uint_sub_type (sizeknd) = "mac#%" fun g1uint_mul_size : g1uint_mul_type (sizeknd) = "mac#%" fun g1uint_div_size : g1uint_div_type (sizeknd) = "mac#%" fun g1uint_mod_size : g1uint_mod_type (sizeknd) = "mac#%" fun g1uint_lt_size : g1uint_lt_type (sizeknd) = "mac#%" fun g1uint_lte_size : g1uint_lte_type (sizeknd) = "mac#%" fun g1uint_gt_size : g1uint_gt_type (sizeknd) = "mac#%" fun g1uint_gte_size : g1uint_gte_type (sizeknd) = "mac#%" fun g1uint_eq_size : g1uint_eq_type (sizeknd) = "mac#%" fun g1uint_neq_size : g1uint_neq_type (sizeknd) = "mac#%" fun g1uint_compare_size : g1uint_compare_type (sizeknd) = "mac#%" fun g1uint_max_size : g1uint_max_type (sizeknd) = "mac#%" fun g1uint_min_size : g1uint_min_type (sizeknd) = "mac#%" fun g1uint_isgtz_size : g1uint_isgtz_type (sizeknd) = "mac#%" fun g1uint_iseqz_size : g1uint_iseqz_type (sizeknd) = "mac#%" fun g1uint_isneqz_size : g1uint_isneqz_type (sizeknd) = "mac#%" // fun g1int_neg_ssize : g1int_neg_type (ssizeknd) = "mac#%" fun g1int_abs_ssize : g1int_abs_type (ssizeknd) = "mac#%" fun g1int_succ_ssize : g1int_succ_type (ssizeknd) = "mac#%" fun g1int_pred_ssize : g1int_pred_type (ssizeknd) = "mac#%" fun g1int_half_ssize : g1int_half_type (ssizeknd) = "mac#%" fun g1int_add_ssize : g1int_add_type (ssizeknd) = "mac#%" fun g1int_sub_ssize : g1int_sub_type (ssizeknd) = "mac#%" fun g1int_mul_ssize : g1int_mul_type (ssizeknd) = "mac#%" fun g1int_div_ssize : g1int_div_type (ssizeknd) = "mac#%" fun g1int_nmod_ssize : g1int_nmod_type (ssizeknd) = "mac#%" fun g1int_lt_ssize : g1int_lt_type (ssizeknd) = "mac#%" fun g1int_lte_ssize : g1int_lte_type (ssizeknd) = "mac#%" fun g1int_gt_ssize : g1int_gt_type (ssizeknd) = "mac#%" fun g1int_gte_ssize : g1int_gte_type (ssizeknd) = "mac#%" fun g1int_eq_ssize : g1int_eq_type (ssizeknd) = "mac#%" fun g1int_neq_ssize : g1int_neq_type (ssizeknd) = "mac#%" fun g1int_compare_ssize : g1int_compare_type (ssizeknd) = "mac#%" fun g1int_max_ssize : g1int_max_type (ssizeknd) = "mac#%" fun g1int_min_ssize : g1int_min_type (ssizeknd) = "mac#%" fun g1int_isltz_ssize : g1int_isltz_type (ssizeknd) = "mac#%" fun g1int_isltez_ssize : g1int_isltez_type (ssizeknd) = "mac#%" fun g1int_isgtz_ssize : g1int_isgtz_type (ssizeknd) = "mac#%" fun g1int_isgtez_ssize : g1int_isgtez_type (ssizeknd) = "mac#%" fun g1int_iseqz_ssize : g1int_iseqz_type (ssizeknd) = "mac#%" fun g1int_isneqz_ssize : g1int_isneqz_type (ssizeknd) = "mac#%" // (* ****** ****** *) // macdef i2sz(x) = g1int2uint_int_size(,(x)) macdef u2sz(x) = g1uint2uint_uint_size(,(x)) // macdef i2ssz(x) = g1int2int_int_ssize(,(x)) macdef u2ssz(x) = g1uint2int_uint_ssize(,(x)) // (* ****** ****** *) // symintr sz2i overload sz2i with g0uint2int_size_int of 0 overload sz2i with g1uint2int_size_int of 10 // symintr sz2u overload sz2u with g0uint2uint_size_uint of 0 overload sz2u with g1uint2uint_size_uint of 10 // (* ****** ****** *) (* end of [integer_size.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/option.sats0000644000175000017500000000737413431250607021313 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/option.atxt ** Time of generation: Thu Feb 14 11:29:42 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) (* ****** ****** *) sortdef t0p = t@ype (* ****** ****** *) #if(0) // // HX: // these declarations // are available in [basic_dyn.sats] // stadef option = option_t0ype_bool_type typedef Option (a:t0p) = [b:bool] option(a, b) #endif (* ****** ****** *) exception NotSomeExn of () (* fun NotSomeExn ():<> exn = "mac#%NotSomeExn_make" fun isNotSomeExn (x: !exn):<> bool = "mac#%isNotSomeExn" macdef ifNotSomeExn {tres}(exn, body) = ( let val x = ,(exn) in ( if isNotSomeExn(x) then let prval () = __vfree_exn (x) in ,(body) end else $raise (x) ) : tres // end of [if] end (* end of [let] *) ) // end of [ifNotSomeExn] *) (* ****** ****** *) // castfn option_cast {a:t0p}{b:bool} ( opt: option(INV(a), b) ) :<> option(a, b) // end-of-fun // (* ****** ****** *) // castfn option_vt2t {a:t0p}{b:bool} ( opt: option_vt(INV(a), b) ) :<> option(a, b) // end-of-fun castfn option_of_option_vt {a:t0p}{b:bool} ( opt: option_vt(INV(a), b) ) :<> option(a, b) // end-of-fun // (* ****** ****** *) // fun{a:t0p} option_some (x0: a):<> option(a, true) // fun{a:t0p} option_none ((*void*)):<> option(a, false) // (* ****** ****** *) // fun{} option2bool {a:t0p}{b:bool} (opt: option(a, b)):<> bool(b) // (* ****** ****** *) fun{} option_is_some {a:t0p}{b:bool} (opt: option(a, b)):<> bool(b) fun{} option_is_none {a:t0p}{b:bool} (opt: option(a, b)):<> bool(~b) (* ****** ****** *) // fun{a:t0p} option_unsome (option(INV(a), true)):<> (a) // fun{a:t0p} option_unsome_exn (opt: Option(INV(a))): (a) // (* ****** ****** *) // fun{a:t0p} option_equal ( opt1: Option(a), opt2: Option(a) ) :<> bool // end of [option_equal] // fun{a:t0p} option_equal$eqfn(x1: a, x2: a):<> bool // (* ****** ****** *) // fun {a:t0p} print_option(opt: Option(INV(a))): void fun {a:t0p} prerr_option(opt: Option(INV(a))): void fun {a:t0p} fprint_option(FILEref, Option(INV(a))): void // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) overload = with option_equal (* ****** ****** *) // overload unsome with option_unsome // overload iseqz with option_is_none overload isneqz with option_is_some // overload print with print_option of 0 overload prerr with prerr_option of 0 overload fprint with fprint_option of 0 // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/stream.sats0000644000175000017500000002331713431250607021271 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: February, 2012 *) (* Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/stream.atxt ** Time of generation: Thu Feb 14 11:29:43 2019 *) (* ****** ****** *) sortdef t0p = t@ype (* ****** ****** *) // #if(0) // // HX: lazy streams // It is declared in [basics_dyn] // datatype stream_con (a:t@ype+) = // // t@ype+: covariant // | stream_nil of ((*void*)) | stream_cons of (a, stream(a)) // where stream (a:t@ype) = lazy (stream_con(a)) // #endif // [#if(0)] // (* ****** ****** *) // exception StreamSubscriptExn of ((*void*)) // (* fun StreamSubscriptExn ():<> exn = "mac#StreamSubscriptExn_make" fun isStreamSubscriptExn (x: !exn):<> bool = "mac#isStreamSubscriptExn" *) // (* ****** ****** *) // fun {a:t0p} stream_is_nil(xs: stream(a)): bool fun {a:t0p} stream_is_cons(xs: stream(a)): bool // (* ****** ****** *) // fun{a:t0p} stream_make_nil(): stream(a) fun{a:t0p} stream_make_cons (a, stream(INV(a))):<> stream(a) // (* ****** ****** *) // fun{a:t0p} stream_sing(a):<> stream_con(a) fun{a:t0p} stream_make_sing(x: a): stream(a) // (* ****** ****** *) fun{a:t0p} stream2list (xs: stream(INV(a))): List0_vt(a) // end of [stream2list] (* ****** ****** *) // fun{a:t0p} stream_length(stream(INV(a))): intGte(0) // (* ****** ****** *) fun{a:t0p} stream_head_exn(xs: stream(INV(a))): (a) fun{a:t0p} stream_tail_exn(xs: stream(INV(a))): stream(a) (* ****** ****** *) fun{a:t0p} stream_nth_exn (xs: stream(INV(a)), n: intGte(0)): (a) // end of [stream_nth_exn] fun{a:t0p} stream_nth_opt (xs: stream(INV(a)), n: intGte(0)): Option_vt(a) // end of [stream_nth_opt] (* ****** ****** *) fun{a:t0p} stream_get_at_exn (xs: stream(INV(a)), n: intGte(0)): (a) // end of [stream_get_at_exn] (* ****** ****** *) // // HX: this one returns a linear stream!!! // fun{a:t0p} stream_takeLte (xs: stream(INV(a)), n: intGte(0)): stream_vt(a) // end of [stream_takeLte] // (* ****** ****** *) fun{a:t0p} stream_take_exn{n:nat} (xs: stream(INV(a)), n: int n): list_vt(a, n) // end of [stream_take_exn] (* ****** ****** *) fun{a:t0p} stream_drop_exn (xs: stream(INV(a)), n: intGte(0)): stream(a) // end of [stream_drop_exn] fun{a:t0p} stream_drop_opt (xs: stream(INV(a)), n: intGte(0)): Option_vt(stream(a)) // end of [stream_drop_opt] (* ****** ****** *) // fun{a:t0p} stream_append (xs: stream(INV(a)), ys: stream(a)): stream(a) // fun{a:t0p} stream_concat(xss: stream(stream(INV(a)))): stream(a) // (* ****** ****** *) // fun{a:t0p} stream_filter (xs: stream(INV(a))): stream(a) // fun{a:t0p} stream_filter$pred (x: a):<> bool // fun{a:t0p} stream_filter_fun ( xs: stream(INV(a)), pred: (a) - bool ) : stream(a) // end-of-function fun{a:t0p} stream_filter_cloref ( xs: stream(INV(a)), pred: (a) - bool ) : stream(a) // end-of-function // (* ****** ****** *) // fun{ a:t0p}{b:t0p } stream_map (xs: stream(INV(a))): stream(b) fun{ a:t0p}{b:t0p } stream_map$fopr (x: a):<(*none*)> (b) // fun{ a:t0p}{b:t0p } stream_map_fun (xs: stream(INV(a)), fopr: (a) - b): stream(b) fun{ a:t0p}{b:t0p } stream_map_cloref (xs: stream(INV(a)), fopr: (a) - b): stream(b) // (* ****** ****** *) // fun{ a:t0p}{b:t0p } stream_imap (xs: stream(INV(a))): stream(b) // fun{ a:t0p}{b:t0p } stream_imap$fopr (i: intGte(0), x: a):<> (b) // fun{ a:t0p}{b:t0p } stream_imap_fun ( xs: stream(INV(a)), fopr: (intGte(0), a) - b ) : stream(b) // end-of-fun fun{ a:t0p}{b:t0p } stream_imap_cloref ( xs: stream(INV(a)), fopr: (intGte(0), a) - b ) : stream(b) // end-of-fun // (* ****** ****** *) // fun{ a1,a2:t0p}{b:t0p } stream_map2 ( xs1: stream(INV(a1)) , xs2: stream(INV(a2)) ) : stream(b) // end-of-fun fun{ a1,a2:t0p}{b:t0p } stream_map2$fopr (x1: a1, x2: a2):<> b // fun{ a1,a2:t0p}{b:t0p } stream_map2_fun ( xs1: stream(INV(a1)) , xs2: stream(INV(a2)), fopr: (a1, a2) - b ) : stream(b) // end-of-fun fun{ a1,a2:t0p}{b:t0p } stream_map2_cloref ( xs1: stream(INV(a1)) , xs2: stream(INV(a2)), fopr: (a1, a2) - b ) : stream(b) // end-of-fun // (* ****** ****** *) // fun{ res:t0p}{x:t0p } stream_scan (stream(INV(x)), ini: res): stream(res) // fun{ res:t0p}{x:t0p } stream_scan$fopr(res: res, x: x):<(*none*)> res // fun{ res:t0p}{x:t0p } stream_scan_fun ( stream(INV(x)), ini: res, (res, x) - res ) : stream(res) // end-of-function // fun{ res:t0p}{x:t0p } stream_scan_cloref ( stream(INV(x)), ini: res, (res, x) - res ) : stream(res) // end-of-function // (* ****** ****** *) fun {a,b:t0p} stream_zip ( stream(INV(a)), stream(INV(b)) ) : stream(@(a, b)) // end-of-fun fun {a,b:t0p} stream_cross ( stream(INV(a)), stream(INV(b)) ) : stream(@(a, b)) // end-of-fun (* ****** ****** *) // // HX: duplicates are kept // fun {a:t0p} stream_merge ( xs1: stream(INV(a)), xs2: stream(a) ) : stream(a) // end-of-function // fun{a:t0p} stream_merge$cmp (x1: a, x2: a):<> int // fun {a:t0p} stream_merge_fun ( xs1: stream(INV(a)) , xs2: stream(a), cmp: (a, a) - int ) : stream(a) // end of [stream_merge_fun] fun {a:t0p} stream_merge_cloref ( xs1: stream(INV(a)) , xs2: stream(a), cmp: (a, a) - int ) : stream(a) // end of [stream_merge_cloref] (* ****** ****** *) // // HX: duplicates are dropped // fun{a:t0p} stream_mergeq ( xs1: stream(INV(a)), xs2: stream(a) ) : stream(a) // fun{a:t0p} stream_mergeq$cmp(x1: a, x2: a):<> int // fun{a:t0p} stream_mergeq_fun ( xs1: stream(INV(a)) , xs2: stream(a), cmp: (a, a) - int ) : stream(a) // end-of-function fun{a:t0p} stream_mergeq_cloref ( xs1: stream(INV(a)) , xs2: stream(a), cmp: (a, a) - int ) : stream(a) // end-of-function // (* ****** ****** *) // // HX-2017-06-13: // The streams are assumed to be ordered!!! // fun{a:t0p} stream_union$cmp(x1: a, x2: a):<> int fun{a:t0p} stream_inter$cmp(x1: a, x2: a):<> int fun{a:t0p} stream_differ$cmp(x1: a, x2: a):<> int fun{a:t0p} stream_symdiff$cmp(x1: a, x2: a):<> int // fun{a:t0p} stream_union (stream(INV(a)), stream(a)): stream(a) fun{a:t0p} stream_inter (stream(INV(a)), stream(a)): stream(a) fun{a:t0p} stream_differ (stream(INV(a)), stream(a)): stream(a) fun{a:t0p} stream_symdiff (stream(INV(a)), stream(a)): stream(a) // (* ****** ****** *) // fun {a:t0p} stream_tabulate(): stream(a) fun {a:t0p} stream_tabulate$fopr(i: intGte(0)): (a) // fun {a:t0p} stream_tabulate_fun (fopr: intGte(0) -> a): stream(a) fun {a:t0p} stream_tabulate_cloref (fopr: intGte(0) - a): stream(a) // (* ****** ****** *) // fun {a:t0p} stream_labelize (stream(INV(a))): stream(@(intGte(0), a)) // (* ****** ****** *) // fun {a:t0p} stream_foreach(xs: stream(a)): void fun {a:t0p} {env:vt0p} stream_foreach_env(xs: stream(a), &env >> _): void // fun {a:t0p} {env:vt0p} stream_foreach$cont(x: a, env: &env): bool fun {a:t0p} {env:vt0p} stream_foreach$fwork(x: a, env: &env): void // fun{a:t0p} stream_foreach_fun (xs: stream(a), fwork: (a) - void): void fun{a:t0p} stream_foreach_cloref (xs: stream(a), fwork: (a) - void): void // (* ****** ****** *) // fun{a:t0p} stream_iforeach_fun ( xs: stream(a) , fwork: (intGte(0), a) - void): void fun{a:t0p} stream_iforeach_cloref ( xs: stream(a) , fwork: (intGte(0), a) - void): void // (* ****** ****** *) // fun{ res:vt0p}{a:t0p } stream_foldleft_fun (xs: stream(a), ini: res, fopr: (res, a) - res): res fun{ res:vt0p}{a:t0p } stream_foldleft_cloref (xs: stream(a), ini: res, fopr: (res, a) - res): res // (* ****** ****** *) // fun{} fprint_stream$sep (out: FILEref): void fun{a:t0p} fprint_stream (out: FILEref, xs: stream(INV(a)), n: int): void // (* ****** ****** *) // fun{a:t0p} stream_skip_while_cloref (xs: &stream(INV(a)) >> _, test: (a) - bool): intGte(0) fun{a:t0p} stream_skip_until_cloref (xs: &stream(INV(a)) >> _, test: (a) - bool): intGte(0) // (* ****** ****** *) // // overloading for certain symbols // (* ****** ****** *) overload + with stream_append (* ****** ****** *) overload [] with stream_nth_exn (* ****** ****** *) // overload iseqz with stream_is_nil overload isneqz with stream_is_cons // (* ****** ****** *) // overload length with stream_length // (* ****** ****** *) // overload .head with stream_head_exn overload .tail with stream_tail_exn // (* ****** ****** *) // overload .takeLte with stream_takeLte // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/SATS/gprint.sats0000644000175000017500000000660413431250607021301 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Source: ** $PATSHOME/prelude/SATS/CODEGEN/gprint.atxt ** Time of generation: Thu Feb 14 11:29:43 2019 *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2012 *) (* ****** ****** *) #define NSH (x) x // for commenting: no sharing #define SHR (x) x // for commenting: it is shared (* ****** ****** *) sortdef t0p = t@ype (* ****** ****** *) fun{} gprint$out(): FILEref (* ****** ****** *) fun{} gprint_flush(): void (* ****** ****** *) fun{} gprint_newline(): void (* ****** ****** *) fun{a:t0p} gprint_val (x: a): void fun{a:vt0p} gprint_ref (x: &INV(a)): void (* ****** ****** *) fun{} gprint_int (x: int): void fun{} gprint_bool (x: bool): void fun{} gprint_char (x: char): void fun{} gprint_float (x: float): void fun{} gprint_double (x: double): void fun{} gprint_string (x: string): void (* ****** ****** *) // overload gprint with gprint_int overload gprint with gprint_bool overload gprint with gprint_char overload gprint with gprint_float overload gprint with gprint_double overload gprint with gprint_string // (* ****** ****** *) fun{} gprint_list$beg(): void fun{} gprint_list$end(): void fun{} gprint_list$sep(): void // fun{a:t0p} gprint_list (xs: List(a)): void // overload gprint with gprint_list // (* ****** ****** *) fun{} gprint_listlist$beg1(): void fun{} gprint_listlist$end1(): void fun{} gprint_listlist$sep1(): void // fun{} gprint_listlist$beg2(): void fun{} gprint_listlist$end2(): void fun{} gprint_listlist$sep2(): void // fun{a:t0p} gprint_listlist (xss: List(List(a))): void (* ****** ****** *) // fun{} gprint_array$beg(): void fun{} gprint_array$end(): void fun{} gprint_array$sep(): void // fun{a:t0p} gprint_array {n:int} ( &(@[INV(a)][n]), size_t(n) ) : void // end-of-function // fun{a:t0p} gprint_arrayptr {n:int} ( !arrayptr(INV(a), n), size_t(n) ) : void // end-of-function // fun{a:t0p} gprint_arrayref {n:int} (arrayref(a, n), size_t(n)): void // end of [gprint_arrayref] // (* ****** ****** *) // fun{a:t0p} gprint_arrszref(ASZ: arrszref(a)): void // overload gprint with gprint_arrayref // (* ****** ****** *) (* end of [gprint.sats] *) ATS2-Postiats-gmp-0.3.13/./prelude/codegen2.sats0000644000175000017500000000746713431250607020722 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author of the file: // Hongwei Xi (gmhwxiATgmailDOTcom) // Start Time: August, 2016 // (* ****** ****** *) // // HX: For programming productivity, my bet is on meta-programming... // (* ****** ****** *) // // HX-2016-08-24: // For #codegen2(absrec, ...) // abstype absrec_get(t0ype) abstype absrec_set(t0ype) abstype absrec_getset(t0ype) // abstype absrec_exch(vt0ype) // (* abstype absrec_vtget0(vt0ype) abstype absrec_vtget1(vt0ype) *) // abstype absrec_getref(vt0ype) // // HX-2016-08-28: // [getset] means both [get] and [set] // typedef get(a:t0ype) = absrec_get(a) typedef set(a:t0ype) = absrec_set(a) typedef getset(a:t0ype) = absrec_getset(a) // typedef exch(a:vt0ype) = absrec_exch(a) // (* typedef vtget0(a:vt0ype) = absrec_vtget0(a) typedef vtget1(a:vt0ype) = absrec_vtget1(a) *) // typedef getref(a:vt0ype) = absrec_getref(a) // (* ****** ****** *) // typedef absrec_get_fun_type (trec:type, res:t0ype) = (trec) -<0,!ref> (res) typedef absrec_set_fun_type (trec:type, res:t0ype) = (trec, res) -<0,!refwrt> void typedef absrec_exch_fun_type (trec:type, res:vt0ype) = (trec, res) -<0,!refwrt> (res) typedef absrec_getref_fun_type (trec:type, res:vt0ype) = (trec) -<0,!ref> vtakeoutptr(res) // (* ****** ****** *) // typedef absrec_get_fun_vtype (trec:vtype, res:t0ype) = (!trec) - (res) typedef absrec_set_fun_vtype (trec:vtype, res:t0ype) = (!trec, res) -<0,!wrt> void typedef absrec_exch_fun_vtype (trec:vtype, res:vt0ype) = (!trec, res) -<0,!wrt> (res) typedef absrec_getref_fun_vtype (trec:vtype, res:vt0ype) = (!trec) -<0,!wrt> vtakeoutptr(res) // (* typedef absrec_vtget0_fun_vtype (trec:vtype, res: vt0ype) = (!trec >> minus_vt(trec, res)) - res typedef absrec_vtget1_fun_vtype (trec:vtype, res: vt0ype) = (!trec, res) - (minus_v(trec, res) | res) *) // (* ****** ****** *) // typedef absrec_get_fun_t0ype (trec:t0ype, res:t0ype) = (&trec) - (res) typedef absrec_set_fun_t0ype (trec:t0ype, res:t0ype) = (&trec, res) -<0,!wrt> void typedef absrec_exch_fun_t0ype (trec:t0ype, res:vt0ype) = (&trec, res) -<0,!wrt> (res) typedef absrec_getref_fun_t0ype (trec:t0ype, res:vt0ype) = (&trec) -<0,!wrt> vtakeoutptr(res) // (* ****** ****** *) // typedef absrec_get_fun_vt0ype (trec:vt0ype, res:t0ype) = (&trec) - (res) typedef absrec_set_fun_vt0ype (trec:vt0ype, res:t0ype) = (&trec, res) -<0,!wrt> void typedef absrec_exch_fun_vt0ype (trec:vt0ype, res:vt0ype) = (&trec, res) -<0,!wrt> (res) typedef absrec_getref_fun_vt0ype (trec:vt0ype, res:vt0ype) = (&trec) -<0,!wrt> vtakeoutptr(res) // (* ****** ****** *) (* end of [codegen2.sats] *) ATS2-Postiats-gmp-0.3.13/./INSTALL0000644000175000017500000000441013431250607015712 0ustar brandonbrandon# # # Build and Install # # ###### Author: Hongwei Xi Authoremail: gmhwxi AT gmail DOT com Start time: 2013-09-02 ###### # # Attention: # # Please note that this file is kept for # use only if the following link is unavailable: # # http://www.ats-lang.org/Downloads.html#ATS_packages # # Otherwise please visit the link for up-to-date # instructions on installing the ATS programming # language system. # ###### Last recorded update: 2014-08-07 ###### Step 1: Get the package Step 2: Get pre-requisites Step 3: Build the package Step 4: Install the built package (optional) ###### Step 1: Get the package The current release of ATS2 can be cloned by executing the following command: git clone git://git.code.sf.net/p/ats2-lang/code ATS-Postiats It can also be downloaded by following the link: http://sourceforge.net/projects/ats2-lang/download Say the tarball you download is named ats2-lang-postiats-x.x.x.tgz where x.x.x is the version of the package. You can untar it by issuing the following command-line: tar -vxfz ats2-lang-postiats-x.x.x.tgz which creates a directory named ATS-Postiats ###### Step 2: Get pre-requisites libgmp is required for successful building of ATS2. On e.g. Ubuntu Linux: sudo apt-get install libgmp-dev If you are unable to or do not want to download libgmp, then please use ATS2-intmin, which can be found at: http://www.ats-lang.org/Downloads.html#ATS_packages ###### Step 3: Build the package First enter the directory containing the package: cd ATS-Postiats Then issue the next command-line: ./configure When that completes, please issue the next command-line: make all After 'make' is finsihed, the two commands 'patscc' and 'patsopt' for compiling ATS source code can be found in ATS-Postiats/bin. In order to use this build, please set the environment variable PATSHOME as follows (assuming the current directory is still ATS-Postiats): export PATSHOME=`pwd` ###### Step 4. Install the built package (optional) Assume that you want to install the package in a directory named /path/to/MYATS/. First please configure: ./configure --prefix==/path/to/MYATS After configuration is done, please execute make install Please set PATSHOME as follows: export PATSHOME=/path/to/MYATS/lib/ats2-postiats-x.x.x ###### end of [INSTALL] ###### ATS2-Postiats-gmp-0.3.13/./contrib/0000755000175000017500000000000013431250607016322 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/0000755000175000017500000000000013431250607020620 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/bin/0000755000175000017500000000000013431250607021370 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/bin/.keeper0000644000175000017500000000000013431250607022632 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/0000755000175000017500000000000013431250607021353 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/patsolve_main.dats0000644000175000017500000000223513431250607025073 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "./../SATS/patsolve_commarg.sats" // (* ****** ****** *) // (* #dynload "patsolve_cnstrnt.dats" *) val () = patsolve_cnstrnt__dynload() where { extern fun patsolve_cnstrnt__dynload(): void = "ext#" } // (* ****** ****** *) // (* #dynload "patsolve_parsing.dats" *) val () = patsolve_parsing__dynload() where { extern fun patsolve_parsing__dynload(): void = "ext#" } // (* ****** ****** *) // (* #dynload "patsolve_commarg.dats" *) val () = patsolve_commarg__dynload() where { extern fun patsolve_commarg__dynload(): void = "ext#" } // (* ****** ****** *) implement main0 (argc, argv) = { // val () = println! ("Hello from [patsolve]!") // val arglst = patsolve_cmdline (argc, argv) // // HX: skipping argv[0] // val-~list_vt_cons(arg, arglst) = arglst // val ((*void*)) = patsolve_commarglst (arglst) // } (* end of [main] *) (* ****** ****** *) (* end of [patsolve_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/patsolve_commarg.dats0000644000175000017500000001536713431250607025606 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 // #define ATS_DYNLOADNAME "patsolve_commarg__dynload" // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload STDIO = "libats/libc/SATS/stdio.sats" // (* ****** ****** *) // #staload "./../SATS/patsolve_commarg.sats" #staload "./../SATS/patsolve_cnstrnt.sats" #staload "./../SATS/patsolve_parsing.sats" // (* ****** ****** *) implement fprint_commarg(out, ca) = ( // case+ ca of // | CAhelp(str) => fprint! (out, "CAhelp(", str, ")") // | CAgitem(str) => fprint! (out, "CAgitem(", str, ")") // | CAinput(str) => fprint! (out, "CAinput(", str, ")") // | CAoutput(str) => fprint! (out, "CAoutput(", str, ")") // | CAscript(str) => fprint! (out, "CAscript(", str, ")") // | CAargend((*void*)) => fprint! (out, "CAargend(", ")") // ) (* end of [fprint_commarg] *) (* ****** ****** *) fun{ } argv_getopt_at {n:int}{i:nat} ( n: int n, argv: !argv(n), i: int i ) : stropt = ( // if i < n then stropt_some (argv[i]) else stropt_none () // end of [if] // ) (* end of [argv_getopt_at] *) (* ****** ****** *) implement patsolve_cmdline (argc, argv) = let // vtypedef res_vt = commarglst_vt // fun aux {n:int} {i:nat | i <= n} ( argc: int n , argv: !argv(n) , i: int i, res0: res_vt ) : res_vt = let in // if i < argc then let // val arg = argv[i] // in // case+ arg of // | "-h" => let val ca = CAhelp(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of ... | "--help" => let val ca = CAhelp(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of ... // | "-i" => let val ca = CAinput(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of ... | "--input" => let val ca = CAinput(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of ... // | _ (*rest*) => let val res0 = cons_vt(CAgitem(arg), res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of [...] // end // end of [then] else res0 // end of [else] // end // end of [aux] // val args = aux(argc, argv, 0, nil_vt) // in // list_vt_reverse(list_vt_cons(CAargend(), args)) // end // end of [patsolve_cmdline] (* ****** ****** *) // extern fun patsolve_help(): void extern fun patsolve_input(): void extern fun patsolve_gitem(string): void extern fun patsolve_input_arg(string): void // extern fun patsolve_argend((*void*)): void // extern fun patsolve_commarglst_finalize(): void // (* ****** ****** *) typedef state_struct = @{ // nerr= int // , input= int , ninput= int // , fopen_inp= int , inpfil_ref= FILEref // } (* end of [state_struct] *) (* ****** ****** *) local // var the_state: state_struct? // val () = the_state.nerr := 0 // val () = the_state.input := 0 val () = the_state.ninput := 0 // val () = the_state.fopen_inp := 0 val () = the_state.inpfil_ref := stdin_ref // in (* in-of-local *) // val the_state : ref(state_struct) = ref_make_viewptr(view@the_state | addr@the_state) // end // end of [local] (* ****** ****** *) fun process_arg (x: commarg): void = let // (* val () = fprintln! ( stdout_ref , "patsolve_commarglst: process_arg: x = ", x ) (* end of [val] *) *) // in // case+ x of // | CAhelp _ => patsolve_help () // | CAinput _ => patsolve_input () // | CAgitem(str) => patsolve_gitem(str) // (* | CAoutput(str) => fprint! (out, "CAoutput(", str, ")") | CAscript(str) => fprint! (out, "CAscript(", str, ")") *) | CAargend() => patsolve_argend () // | _ (*rest-of-CA*) => () // end // end of [process_arg] (* ****** ****** *) implement patsolve_commarglst (xs) = let (* val () = println! ("patsolve_commarglst") *) in // case+ xs of | ~list_vt_cons (x, xs) => let val () = process_arg(x) in patsolve_commarglst (xs) end // end of [list_vt_cons] // | ~list_vt_nil ((*void*)) => patsolve_commarglst_finalize () // end of [list_vt_nil] // end // end of [patsolve_commarglst] (* ****** ****** *) implement patsolve_help() = { // (* val () = prerrln! ("patsolve_help: ...") *) // } (* end of [patsolve_help] *) (* ****** ****** *) implement patsolve_input() = { // (* val () = prerrln! ("patsolve_input: ...") *) // val () = !the_state.input := 1 // } (* end of [patsolve_input] *) (* ****** ****** *) implement patsolve_gitem(arg) = let // (* val () = prerrln! ("patsolve_gitem: arg = ", arg) *) // macdef input() = (!the_state.input > 0) // in // case+ 0 of | _ when input() => { val () = patsolve_input_arg(arg) val () = !the_state.ninput := !the_state.ninput+1 } | _ (*unrecognized*) => () // end (* end of [patsolve_gitem] *) (* ****** ****** *) implement patsolve_input_arg (path) = let // val opt = fileref_open_opt(path, file_mode_r) // in // case+ opt of | ~Some_vt(filr) => { // val n0 = !the_state.fopen_inp val () = !the_state.fopen_inp := 1 // val f0 = !the_state.inpfil_ref val () = if n0 > 0 then fileref_close(f0) val () = !the_state.inpfil_ref := filr // val c3t0 = parse_fileref_constraints(filr) // end of [val] // (* val () = fprint! ( stdout_ref, "patsolve_input_arg: c3t0 =\n" ) (* end of [fprint] *) *) // val () = fpprint_c3nstr(stdout_ref, c3t0) // end of [val] val () = fprint_newline (stdout_ref) // } (* end of [Some_vt] *) // | ~None_vt((*void*)) => { // val n0 = !the_state.fopen_inp val () = !the_state.fopen_inp := 0 // val f0 = !the_state.inpfil_ref val () = if n0 > 0 then fileref_close(f0) val () = !the_state.inpfil_ref := stdin_ref // val () = prerrln! ("The file [", path, "] cannot be opened for read!") // end of [val] // } (* end of [None_vt] *) // end // end of [patsolve_input_arg] (* ****** ****** *) implement patsolve_argend ((*void*)) = let // (* val () = println! ("patsolve_argend") *) // macdef test() = (!the_state.input > 0 && !the_state.ninput = 0) // in // case+ 0 of | _ when test() => { val inp = stdin_ref val c3t0 = parse_fileref_constraints(inp) // end of [val] val () = fpprint_c3nstr(stdout_ref, c3t0) // end of [val] val () = fprint_newline (stdout_ref) } | _ (*rest*) => ((*ignored*)) // end (* end of [patsolve_argend] *) (* ****** ****** *) implement patsolve_commarglst_finalize ((*void*)) = { val n0 = !the_state.fopen_inp val f0 = !the_state.inpfil_ref val () = if n0 > 0 then fileref_close(f0) } (* end of [patsolve_commarglst_finalize] *) (* ****** ****** *) (* end of [patsolve_commarg.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/0000755000175000017500000000000013431250607022456 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/patsolve_parsing_h3ypo.dats0000644000175000017500000000346113431250607030041 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // extern fun parse_h3ypo_node (jsonval): h3ypo_node // (* ****** ****** *) implement parse_h3ypo (jsnv0) = let // (* val () = println! ( "parse_h3ypo: jsnv0 = ", jsnv0 ) (* end of [val] *) *) // val-JSONobject(lxs) = jsnv0 val () = assertloc(length(lxs) >= 2) // val+list_cons(lx, lxs) = lxs val loc = parse_location (lx.1) // val+list_cons(lx, lxs) = lxs val node = parse_h3ypo_node (lx.1) // in // h3ypo_make_node (loc, node) // end // end of [parse_h3ypo] (* ****** ****** *) local fun aux_H3YPOprop ( x0: jsonval ) : h3ypo_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in H3YPOprop(parse_s2exp(x)) end (* end of [aux_H3YPOprop] *) fun aux_H3YPObind ( x0: jsonval ) : h3ypo_node = let // val-JSONarray(xs) = x0 val-list_cons (x_1, xs) = xs val-list_cons (x_2, xs) = xs // in H3YPObind(parse_s2var(x_1), parse_s2exp(x_2)) end (* end of [aux_H3YPObind] *) fun aux_H3YPOeqeq ( x0: jsonval ) : h3ypo_node = let // val-JSONarray(xs) = x0 val-list_cons (x_1, xs) = xs val-list_cons (x_2, xs) = xs // in H3YPOeqeq(parse_s2exp(x_1), parse_s2exp(x_2)) end (* end of [aux_H3YPOeqeq] *) in (* in-of-local *) implement parse_h3ypo_node (jsnv0) = let // val-JSONobject(lxs) = jsnv0 // val-list_cons (lx, lxs) = lxs val name = lx.0 and jsnv2 = lx.1 // in // case+ name of // | "H3YPOprop" => aux_H3YPOprop(jsnv2) | "H3YPObind" => aux_H3YPObind(jsnv2) | "H3YPOeqeq" => aux_H3YPOeqeq(jsnv2) // | _(*unrecognized*) => let val () = assertloc(false) in exit(1) end // end // end of [parse_h3ypo_node] end // end of [local] (* ****** ****** *) (* end of [patsolve_parsing_h3ypo.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/patsolve_parsing_label.dats0000644000175000017500000000135513431250607030056 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) implement parse_label (jsnv0) = let // val-JSONobject(lxs) = jsnv0 // val-list_cons (lx, lxs) = lxs val name = lx.0 and jsnv2 = lx.1 // in // case+ name of // | "LABint" => LABint(parse_int(jsnv2)) | "LABsym" => LABsym(parse_symbol(jsnv2)) // | _(*unrecognized*) => let val () = prerrln! ("parse_label: ", name) // end of [val] val ((*exit*)) = assertloc(false) in exit(1) end // end of [unrecognized] // end // end of [parse_label] (* ****** ****** *) (* end of [patsolve_parsing_label.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/patsolve_parsing_s2rt.dats0000644000175000017500000000427413431250607027674 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) local fun aux_S2RTbas ( x0: jsonval ) : s2rt = let // val-JSONarray(xs) = x0 val () = assertloc(length(xs) >= 1) // val-JSONstring(name) = xs[0] // (* val () = println! ("parse_s2rt: aux_S2RTbas: name = ", name) *) // in // case+ name of // | "int" => S2RTint() | "addr" => S2RTaddr() | "bool" => S2RTbool() // | "real" => S2RTreal() // | "cls" => S2RTeff() | "eff" => S2RTeff() // | "type" => S2RTtype() | "t@ype" => S2RTt0ype() | "t0ype" => S2RTt0ype() // | "viewtype" => S2RTvtype() | "viewt@ype" => S2RTvt0ype() | "viewt0ype" => S2RTvt0ype() // | "prop" => S2RTprop() | "view" => S2RTview() // | "tkind" => S2RTtkind() // | _(*rest*) => S2RTnamed(symbol_make_name(name)) // end // end of [aux_S2RTbas] fun aux_S2RTfun ( x0: jsonval ) : s2rt = let // val-JSONarray(xs) = x0 val () = assertloc (length(xs) >= 2) // val arg = parse_s2rtlst (xs[0]) // val res = parse_s2rt (xs[1]) // in S2RTfun (arg, res) end // end of [aux_S2RTfun] in (* in-of-local *) implement parse_s2rt (jsnv0) = let // val- JSONobject(lxs) = jsnv0 // val- list_cons (lx, lxs) = lxs // in // case+ lx.0 of // | "S2RTbas" => aux_S2RTbas (lx.1) // | "S2RTfun" => aux_S2RTfun (lx.1) // | _(*rest-of-S2RT*) => S2RTerror((*void*)) // end // end of [parse_s2rt] end // end of [local] (* ****** ****** *) local // val the_s2rtdatmap = ref(list_nil) // extern fun the_s2rtdatmap_set (s2rtdatlst): void = "ext#patsolve_the_s2rtdatmap_set" // in (* in-of-local *) implement the_s2rtdatmap_get() = !the_s2rtdatmap implement the_s2rtdatmap_set(s2tds) = !the_s2rtdatmap := s2tds end // end of [local] (* ****** ****** *) implement parse_s2rtdat (jsnv0) = let // val- ~Some_vt(x1) = jsnv0["s2rtdat_sym"] val- ~Some_vt(x2) = jsnv0["s2rtdat_stamp"] val- ~Some_vt(x3) = jsnv0["s2rtdat_sconlst"] // val name = parse_symbol (x1) val stamp = parse_stamp (x2) val s2cs0 = parse_s2cstlst (x3) // in s2rtdat_make(name, stamp, s2cs0) end // end of [parse_s2rtdat] (* ****** ****** *) (* end of [patsolve_parsing_s2rt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/patsolve_parsing_s2vvar.dats0000644000175000017500000000246413431250607030224 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) local typedef key = stamp and itm = s2Var in (* in-of-local *) #include "libats/ML/HATS/myhashtblref.hats" end // end of [local] (* ****** ****** *) local val the_s2Varmap = myhashtbl_make_nil(1024) in (* in-of-local *) // implement the_s2Varmap_search(key) = myhashtbl_search(the_s2Varmap, key) // implement the_s2Varmap_insert(s2V) = { // val- ~None_vt() = myhashtbl_insert(the_s2Varmap, s2V.stamp(), s2V) // } (* end of [the_s2Varmap_insert] *) // end // end of [local] (* ****** ****** *) implement parse_s2Var (jsnv0) = let // val- ~Some_vt (jsnv) = jsnv0["s2Var_stamp"] // val stamp = parse_stamp (jsnv) // val s2Vopt = the_s2Varmap_search (stamp) // in // case+ s2Vopt of | ~Some_vt(s2V) => s2V | ~None_vt((*void*)) => s2V where { // val-JSONobject(lxs) = jsnv0 val () = assertloc(length(lxs) >= 2) // val+list_cons(lx, lxs) = lxs val () = the_stamp_update (stamp) // val s2V = s2Var_make (stamp) val ((*void*)) = the_s2Varmap_insert (s2V) // } (* end of [None_vt] *) // end // end of [parse_s2Var] (* ****** ****** *) (* end of [patsolve_parsing_s2vvar.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/patsolve_parsing_s2var.dats0000644000175000017500000000304113431250607030026 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) local typedef key = stamp and itm = s2var in (* in-of-local *) #include "libats/ML/HATS/myhashtblref.hats" end // end of [local] (* ****** ****** *) local val the_s2varmap = myhashtbl_make_nil(1024) in (* in-of-local *) // implement the_s2varmap_search(key) = myhashtbl_search(the_s2varmap, key) // implement the_s2varmap_insert(s2v) = { // val- ~None_vt() = myhashtbl_insert(the_s2varmap, s2v.stamp(), s2v) // } (* end of [the_s2varmap_insert] *) // end // end of [local] (* ****** ****** *) implement parse_s2var (jsnv0) = let // val- ~Some_vt (jsnv) = jsnv0["s2var_stamp"] // val stamp = parse_stamp(jsnv) // val s2vopt = the_s2varmap_search(stamp) // in // case+ s2vopt of | ~Some_vt(s2v) => s2v | ~None_vt((*void*)) => s2v where { // val-JSONobject(lxs) = jsnv0 val () = assertloc(length(lxs) >= 3) // val+list_cons(lx, lxs) = lxs val sym = parse_symbol(lx.1) // val+list_cons(lx, lxs) = lxs val s2t = parse_s2rt(lx.1) // val+list_cons(lx, lxs) = lxs val () = the_stamp_update(stamp) // val s2v = s2var_make(sym, s2t, stamp) // (* val ((*void*)) = println! ("parse_s2var: s2v = ", s2v) // end of [val] *) // val ((*void*)) = the_s2varmap_insert(s2v) // } (* end of [None_vt] *) // end // end of [parse_s2var] (* ****** ****** *) (* end of [patsolve_parsing_s2var.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/patsolve_parsing_c3nstr.dats0000644000175000017500000000450613431250607030214 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // extern fun parse_c3nstrkind (jsonval): c3nstrkind // (* ****** ****** *) // extern fun parse_c3nstr_node (jsonval): c3nstr_node // (* ****** ****** *) implement parse_c3nstr (jsnv0) = let // (* val () = println! ( "parse_c3nstr: jsnv0 = ", jsnv0 ) (* end of [val] *) *) // val-JSONobject(lxs) = jsnv0 val () = assertloc(length(lxs) >= 3) // val+list_cons(lx, lxs) = lxs val loc = parse_location (lx.1) // val+list_cons(lx, lxs) = lxs val c3tk = parse_c3nstrkind (lx.1) // val+list_cons(lx, lxs) = lxs val node = parse_c3nstr_node (lx.1) // in // c3nstr_make_node (loc, c3tk, node) // end // end of [parse_c3nstr] (* ****** ****** *) implement parse_c3nstrkind (jsnv0) = let // val-JSONobject(lxs) = jsnv0 // val-list_cons (lx, lxs) = lxs val name = lx.0 and jsnv2 = lx.1 // in // case+ name of | "C3TKmain" => C3TKmain() // | "C3TKtermet_isnat" => C3TKtermet_isnat() | "C3TKtermet_isdec" => C3TKtermet_isdec() // | "C3TKsolver" => C3TKsolver(parse_int(jsnv2)) // | _(*rest-of-c3nstrkind*) => C3TKignored((*void*)) // end // end of [parse_c3nstrkind] (* ****** ****** *) local fun aux_C3NSTRprop ( x0: jsonval ) : c3nstr_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in C3NSTRprop(parse_s2exp(x)) end (* aux_C3NSTRprop *) fun aux_C3NSTRitmlst ( x0: jsonval ) : c3nstr_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in C3NSTRitmlst(parse_s3itmlst(x)) end (* aux_C3NSTRitmlst *) fun aux_C3NSTRsolverify ( x0: jsonval ) : c3nstr_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in C3NSTRsolverify(parse_s2exp(x)) end (* aux_C3NSTRsolverify *) in (* in-of-local *) implement parse_c3nstr_node (jsnv0) = let // val-JSONobject(lxs) = jsnv0 // val-list_cons (lx, lxs) = lxs val name = lx.0 and jsnv2 = lx.1 // in // case+ name of // | "C3NSTRprop" => aux_C3NSTRprop(jsnv2) // | "C3NSTRitmlst" => aux_C3NSTRitmlst(jsnv2) // | "C3NSTRsolverify" => aux_C3NSTRsolverify(jsnv2) // | _(*unrecognized*) => let val () = assertloc(false) in exit(1) end // end // end of [parse_c3nstr_node] end // end of [local] (* ****** ****** *) (* end of [patsolve_parsing_c3nstr.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/patsolve_parsing_s2exp.dats0000644000175000017500000001422513431250607030040 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // extern fun parse_s2exp_node (jsonval): s2exp_node // (* ****** ****** *) implement parse_s2exp (jsnv0) = let // (* val () = println! ( "parse_s2exp: jsnv0 = ", jsnv0 ) (* end of [val] *) *) // val-JSONobject(lxs) = jsnv0 val () = assertloc(length(lxs) >= 2) // val+list_cons(lx, lxs) = lxs val s2t = parse_s2rt (lx.1) // val+list_cons(lx, lxs) = lxs val s2en = parse_s2exp_node (lx.1) // in // s2exp_make_node (s2t, s2en) // end // end of [parse_s2exp] (* ****** ****** *) local fun aux_S2Eint ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S2Eint(parse_int(x)) end (* end of [aux_S2Eint] *) fun aux_S2Eintinf ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S2Eintinf(parse_string(x)) end (* end of [aux_S2Eintinf] *) fun aux_S2Ecst ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons(x, xs) = xs // val s2c = parse_s2cst(x) // in s2cst_incby1_nused(s2c); S2Ecst(s2c) end (* end of [aux_S2Ecst] *) fun aux_S2Evar ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S2Evar(parse_s2var(x)) end (* end of [aux_S2Evar] *) fun aux_S2EVar ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S2EVar(parse_s2Var(x)) end (* end of [aux_S2EVar] *) fun aux_S2Eeqeq ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x_1, xs) = xs val-list_cons (x_2, xs) = xs // in S2Eeqeq(parse_s2exp(x_1), parse_s2exp(x_2)) end (* end of [aux_S2Eeqeq] *) fun aux_S2Esizeof ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S2Esizeof(parse_s2exp(x)) end (* end of [aux_S2Esizeof] *) fun aux_S2Eapp ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x_fun, xs) = xs val-list_cons (x_arg, xs) = xs // in S2Eapp(parse_s2exp(x_fun), parse_s2explst(x_arg)) end (* end of [aux_S2Eapp] *) fun aux_S2Emetdec ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x_met, xs) = xs val-list_cons (x_bound, xs) = xs // in S2Emetdec(parse_s2explst(x_met), parse_s2explst(x_bound)) end (* end of [aux_S2Emetdec] *) fun aux_S2Etop ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x1, xs) = xs val-list_cons (x2, xs) = xs // in S2Etop(parse_int(x1), parse_s2exp(x2)) end (* end of [aux_S2Etop] *) fun aux_S2Einvar ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S2Einvar(parse_s2exp(x)) end (* end of [aux_S2Einvar] *) fun aux_S2Efun ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x1, xs) = xs val-list_cons (x2, xs) = xs val-list_cons (x3, xs) = xs // in S2Efun(parse_int(x1), parse_s2explst(x2), parse_s2exp(x3)) end (* end of [aux_S2Efun] *) fun aux_S2Euni ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x1, xs) = xs val-list_cons (x2, xs) = xs val-list_cons (x3, xs) = xs // in S2Euni(parse_s2varlst(x1), parse_s2explst(x2), parse_s2exp(x3)) end (* end of [aux_S2Euni] *) fun aux_S2Eexi ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x1, xs) = xs val-list_cons (x2, xs) = xs val-list_cons (x3, xs) = xs // in S2Eexi(parse_s2varlst(x1), parse_s2explst(x2), parse_s2exp(x3)) end (* end of [aux_S2Eexi] *) fun aux_S2Etyrec ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x1, xs) = xs val-list_cons (x2, xs) = xs val-list_cons (x3, xs) = xs // in S2Etyrec(parse_tyreckind(x1), parse_int(x2), parse_labs2explst(x3)) end (* end of [aux_S2Etyrec] *) fun aux_S2Eextype ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x1, xs) = xs // in S2Eextype(parse_symbol(x1)) end (* end of [aux_S2Eextype] *) fun aux_S2Eextkind ( x0: jsonval ) : s2exp_node = let // val-JSONarray(xs) = x0 val-list_cons (x1, xs) = xs // in S2Eextkind(parse_symbol(x1)) end (* end of [aux_S2Eextkind] *) in (* in-of-local *) implement parse_s2exp_node (jsnv0) = let // val-JSONobject(lxs) = jsnv0 // val-list_cons (lx, lxs) = lxs val name = lx.0 and jsnv2 = lx.1 // in // case+ name of // | "S2Eint" => aux_S2Eint(jsnv2) | "S2Eintinf" => aux_S2Eintinf(jsnv2) // | "S2Ecst" => aux_S2Ecst(jsnv2) // | "S2Evar" => aux_S2Evar(jsnv2) // | "S2EVar" => aux_S2EVar(jsnv2) // | "S2Eeqeq" => aux_S2Eeqeq(jsnv2) // | "S2Esizeof" => aux_S2Esizeof(jsnv2) // | "S2Eapp" => aux_S2Eapp(jsnv2) // | "S2Emetdec" => aux_S2Emetdec(jsnv2) // | "S2Etop" => aux_S2Etop(jsnv2) // | "S2Einvar" => aux_S2Einvar(jsnv2) // | "S2Efun" => aux_S2Efun(jsnv2) // | "S2Euni" => aux_S2Euni(jsnv2) | "S2Eexi" => aux_S2Eexi(jsnv2) // | "S2Etyrec" => aux_S2Etyrec(jsnv2) // | "S2Eextype" => aux_S2Eextype(jsnv2) | "S2Eextkind" => aux_S2Eextkind(jsnv2) // | "S2Eignored" => S2Eerror(*void*) // | _(*unrecognized*) => let val () = prerrln! ("parse_s2exp_node: ", name) // end of [val] val ((*exit*)) = assertloc(false) in exit(1) end // end of [unrecognized] // end // end of [parse_s2exp_node] end // end of [local] (* ****** ****** *) local fun aux_SLABELED ( x0: jsonval ) : labs2exp = let // (* val () = println! ( "parse_labs2exp: aux_SLABELED: x0 = ", x0 ) (* end of [val] *) *) // val-JSONarray(xs) = x0 val-list_cons (x1, xs) = xs val-list_cons (x2, xs) = xs val-list_cons (x3, xs) = xs // in SLABELED(parse_label(x1), parse_s2exp(x3)) end (* end of [aux_SLABELED] *) in (* in-of-local *) implement parse_labs2exp (jsnv0) = let // val-JSONobject(lxs) = jsnv0 // val-list_cons (lx, lxs) = lxs val name = lx.0 and jsnv2 = lx.1 // in // case+ name of // | "SL0ABELED" => aux_SLABELED(jsnv2) // | _(*unrecognized*) => let val () = prerrln! ("parse_labs2exp: ", name) // end of [val] val ((*exit*)) = assertloc(false) in exit(1) end // end of [unrecognized] // end // end of [parse_labs2exp] end // end of [local] (* ****** ****** *) (* end of [patsolve_parsing_s2exp.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/patsolve_parsing_s3itm.dats0000644000175000017500000000455013431250607030036 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) local fun aux_S3ITMsvar ( x0: jsonval ) : s3itm = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S3ITMsvar(parse_s2var(x)) end (* aux_S3ITMsvar *) fun aux_S3ITMsVar ( x0: jsonval ) : s3itm = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S3ITMsVar(parse_s2Var(x)) end (* aux_S3ITMsVar *) fun aux_S3ITMhypo ( x0: jsonval ) : s3itm = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S3ITMhypo(parse_h3ypo(x)) end (* aux_S3ITMhypo *) fun aux_S3ITMcnstr ( x0: jsonval ) : s3itm = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S3ITMcnstr(parse_c3nstr(x)) end (* aux_S3ITMcnstr *) fun aux_S3ITMcnstr_ref ( x0: jsonval ) : s3itm = let // val-JSONarray(xs) = x0 val-list_cons (x_loc, xs) = xs val-list_cons (x_opt, xs) = xs // in S3ITMcnstr_ref(parse_location(x_loc), parse_c3nstropt(x_opt)) end (* aux_S3ITMcnstropt *) (* ****** ****** *) fun aux_S3ITMdisj ( x0: jsonval ) : s3itm = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S3ITMdisj(parse_s3itmlstlst(x)) end // (* aux_S3ITMdisj *) (* ****** ****** *) fun aux_S3ITMsolassert ( x0: jsonval ) : s3itm = let // val-JSONarray(xs) = x0 val-list_cons (x, xs) = xs // in S3ITMsolassert(parse_s2exp(x)) end (* aux_S3ITMsolassert *) in (* in-of-local *) implement parse_s3itm (jsnv0) = let // (* val () = println! ("parse_s3itm: jsnv0 = ", jsnv0) *) // val-JSONobject(lxs) = jsnv0 val () = assertloc(length(lxs) >= 1) val+list_cons (lx, lxs) = lxs // val name = lx.0 and jsnv2 = lx.1 // in // case+ name of // | "S3ITMsvar" => aux_S3ITMsvar(jsnv2) // | "S3ITMsVar" => aux_S3ITMsVar(jsnv2) // | "S3ITMhypo" => aux_S3ITMhypo(jsnv2) // | "S3ITMcnstr" => aux_S3ITMcnstr(jsnv2) // | "S3ITMcnstr_ref" => aux_S3ITMcnstr_ref(jsnv2) // | "S3ITMdisj" => aux_S3ITMdisj(jsnv2) // | "S3ITMsolassert" => aux_S3ITMsolassert(jsnv2) // | _(*unrecognized*) => let val () = prerrln! ("parse_s3itm: ", name) // end of [val] val ((*exit*)) = assertloc(false) in exit(1) end // end of [unrecognized] // end // end of [parse_s3itm] end // end of [local] (* ****** ****** *) (* end of [patsolve_parsing_s3itm.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/PARSING/patsolve_parsing_s2cst.dats0000644000175000017500000000472313431250607030037 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) local typedef key = stamp and itm = s2cst in (* in-of-local *) #include "libats/ML/HATS/myhashtblref.hats" end // end of [local] (* ****** ****** *) local val the_s2cstmap = myhashtbl_make_nil(1024) in (* in-of-local *) // implement the_s2cstmap_search(key) = myhashtbl_search(the_s2cstmap, key) // implement the_s2cstmap_insert(s2c) = { // val- ~None_vt() = myhashtbl_insert(the_s2cstmap, s2c.stamp(), s2c) // } (* end of [the_s2cstmap_insert] *) // implement the_s2cstmap_listize ((*void*)) = let // vtypedef res_vt = s2cstlst_vt // var res: res_vt = list_vt_nil((*void*)) val p_res = addr@res // val ((*void*)) = myhashtbl_foreach_cloref ( the_s2cstmap , lam(k, x) => $UN.ptr0_set ( p_res , list_vt_cons(x, $UN.ptr0_get(p_res)) ) (* end of [lam@] *) ) (* myhashtbl_foreach_cloref *) // implement list_vt_mergesort$cmp (s2c1, s2c2) = ( $effmask_all(compare(s2c1.stamp(), s2c2.stamp())) ) // in list_vt_mergesort(res) end // end of [the_s2cstmap_listize] end // end of [local] (* ****** ****** *) implement parse_s2cst (jsnv0) = let // (* val () = println! ( "parse_s2cst: jsnv0 = ", jsnv0 ) (* end of [val] *) *) // fun parse_scstextdef ( jsnv0: jsonval ) : Option(string) = ( parse_option (jsnv0, lam(x) => parse_string(x)) ) // val- ~Some_vt (jsnv) = jsnv0["s2cst_stamp"] // val stamp = parse_stamp(jsnv) // val s2copt = the_s2cstmap_search(stamp) // in // case+ s2copt of | ~Some_vt(s2c0) => s2c0 | ~None_vt((*void*)) => s2c0 where { val-JSONobject(lxs) = jsnv0 val () = assertloc(length(lxs) >= 6) // end of [va] // val+list_cons(lx, lxs) = lxs val sym = parse_symbol(lx.1) // val+list_cons(lx, lxs) = lxs val s2t = parse_s2rt(lx.1) // val+list_cons(lx, lxs) = lxs val () = the_stamp_update(stamp) // val+list_cons(lx, lxs) = lxs val extdef = parse_scstextdef(lx.1) // val+list_cons(lx, lxs) = lxs val supcls = parse_s2explst(lx.1) // val s2c0 = s2cst_make(sym, s2t, stamp, extdef) // (* val ((*void*)) = println! ("parse_s2cst: s2c = ", s2c) // end of [val] *) // val ((*void*)) = the_s2cstmap_insert(s2c0) // } (* end of [None_vt] *) // end // end of [parse_s2cst] (* ****** ****** *) (* end of [patsolve_parsing_s2cst.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/patsolve_mylib.dats0000644000175000017500000000115513431250607025263 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #define LIBJSONC_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-libjson-c" // #staload "{$LIBJSONC}/DATS/json.dats" // (* ****** ****** *) // local #include "{$LIBJSONC}/DATS/json_ML.dats" in (*nothing*) end // end of [local] // (* ****** ****** *) (* end of [patsolve_mylib.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/patsolve_parsing.dats0000644000175000017500000001732013431250607025613 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 // #define ATS_DYNLOADNAME "patsolve_parsing__dynload" // (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload HF = "libats/SATS/hashfun.sats" #staload HTR = "libats/ML/SATS/hashtblref.sats" // (* ****** ****** *) #staload "./../SATS/patsolve_cnstrnt.sats" #staload "./../SATS/patsolve_parsing.sats" (* ****** ****** *) // #define LIBJSONC_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-libjson-c" // #staload "{$LIBJSONC}/SATS/json.sats" #staload "{$LIBJSONC}/SATS/json_ML.sats" // (* ****** ****** *) #staload _(*anon*) = "libats/libc/DATS/string.dats" (* ****** ****** *) // implement $HTR.hash_key (x) = hash_stamp(x) // (* ****** ****** *) // implement fprint_val = fprint_stamp // implement gequal_val_val (x1, x2) = (x1 = x2) // (* ****** ****** *) implement fprint_val = fprint_s2cst implement fprint_val = fprint_s2var implement fprint_val = fprint_s2Var (* ****** ****** *) implement jsonval_get_field (jsnv, key) = let // (* val () = println! ("jsonval_get_field: jsnv = ", jsnv) // val () = println! ("jsonval_get_field: key = ", key) *) // typedef key = string typedef itm = jsonval // val-JSONobject(lxs) = jsnv // in list_assoc_opt (lxs, key) end // end of [jsonval_get_field] (* ****** ****** *) // implement parse_int (jsnv0) = let val-JSONint (lli) = jsnv0 in $UN.cast{int}(lli) end // end of [parse_int] // implement parse_string (jsnv0) = let val-JSONstring (str) = jsnv0 in str end // (* ****** ****** *) implement parse_stamp (jsnv0) = let // val-JSONint(lli) = jsnv0 in stamp_make($UN.cast{int}(lli)) // end // end of [parse_stamp] (* ****** ****** *) implement parse_symbol (jsnv0) = let // val-JSONstring(name) = jsnv0 in symbol_make_name (name) // end // end of [parse_symbol] (* ****** ****** *) implement parse_location (jsnv0) = let // val-JSONstring(strloc) = jsnv0 in location_make (strloc) // end // end of [parse_location] (* ****** ****** *) implement parse_tyreckind (jsnv0) = let // val-JSONobject(lxs) = jsnv0 // val-list_cons (lx, lxs) = lxs val name = lx.0 and jsnv2 = lx.1 // in // case+ name of // | "TYRECKINDbox" => TYRECKINDbox() | "TYRECKINDbox_lin" => TYRECKINDbox_lin() // | "TYRECKINDflt0" => TYRECKINDflt0() | "TYRECKINDflt1" => TYRECKINDflt1(parse_stamp(jsnv2)) | "TYRECKINDflt_ext" => TYRECKINDflt_ext(parse_string(jsnv2)) // | _(*unrecognized*) => let val () = prerrln! ("parse_tyreckind: name = ", name) in exit(1) // end of [val] end // end of [_(*unrecognized*)] // end // end of [parse_tyreckind] (* ****** ****** *) implement {a}(*tmp*) parse_list (jsnv0, f) = let // val-JSONarray(jsnvs) = jsnv0 // fun auxlst ( jsnvs: jsonvalist, f: jsonval -> a ) : List0 (a) = case+ jsnvs of | list_cons (jsnv, jsnvs) => list_cons{a}(f(jsnv), auxlst (jsnvs, f)) | list_nil () => list_nil () // in auxlst (jsnvs, f) end // end of [parse_list] (* ****** ****** *) implement {a}(*tmp*) parse_option (jsnv0, f) = let // val-JSONarray (jsnvs) = jsnv0 // in case+ jsnvs of | list_nil () => None(*void*) | list_cons (jsnv, _) => Some{a}(f(jsnv)) end // end of [parse_option] (* ****** ****** *) // implement parse_s2rtlst(xs) = parse_list(xs, parse_s2rt) // implement parse_s2rtdatlst(xs) = parse_list(xs, parse_s2rtdat) // (* ****** ****** *) // implement parse_s2cstlst(xs) = parse_list(xs, parse_s2cst) implement parse_s2varlst(xs) = parse_list(xs, parse_s2var) implement parse_s2Varlst(xs) = parse_list(xs, parse_s2Var) // (* ****** ****** *) // implement parse_s2explst(jsnv) = parse_list(jsnv, parse_s2exp) // (* ****** ****** *) // implement parse_labs2explst(jsnv) = parse_list(jsnv, parse_labs2exp) // (* ****** ****** *) // implement parse_s3itmlst(jsnv) = parse_list(jsnv, parse_s3itm) implement parse_s3itmlstlst(jsnv) = parse_list(jsnv, parse_s3itmlst) // (* ****** ****** *) // implement parse_c3nstropt(jsnv) = parse_option(jsnv, parse_c3nstr) // (* ****** ****** *) local fun aux_s2cstmap ( opt: jsnvopt_vt ) : void = ( case+ opt of | ~Some_vt(jsnv) => let val-JSONarray(xs) = jsnv in list_app_fun (xs, lam x => ignoret(parse_s2cst(x))) end // end of [Some_vt] | ~None_vt((*void*)) => () ) fun aux_s2varmap ( opt: jsnvopt_vt ) : void = ( case+ opt of | ~Some_vt(jsnv) => let val-JSONarray(xs) = jsnv in list_app_fun (xs, lam x => ignoret(parse_s2var(x))) end // end of [Some_vt] | ~None_vt((*void*)) => () ) fun aux_s2rtdatmap ( opt: jsnvopt_vt ) : void = let // extern fun the_s2rtdatmap_set (s2rtdatlst): void = "ext#patsolve_the_s2rtdatmap_set" // in // case+ opt of | ~None_vt() => () | ~Some_vt(jsnv) => let val xs = parse_s2rtdatlst(jsnv) in the_s2rtdatmap_set(xs) end // end o [Some_vt] // end // end of [aux_s2rtdatmap] in (* in-of-local *) implement parse_constraints (jsnv0) = let // val opt1 = jsnv0["s2cstmap"] val opt2 = jsnv0["s2varmap"] val opt3 = jsnv0["s2rtdatmap"] // (* val () = println! ( "parse_constraints: aux_s2cstmap" ) (* end of [val] *) *) val ((*void*)) = aux_s2cstmap(opt1) // (* val () = println! ( "parse_constraints: aux_s2varmap" ) (* end of [val] *) *) val ((*void*)) = aux_s2varmap(opt2) // (* val () = println! ( "parse_constraints: aux_s2rtdatmap" ) (* end of [val] *) *) val ((*void*)) = aux_s2rtdatmap(opt3) // (* local // val xs = the_s2rtdatmap_get() implement fprint_val = fprint_s2rtdat // in (* in-of-local *) // val () = fprintln! (stdout_ref, "the_s2rtdatmap: ", xs) // end // end of [local] *) // val- ~Some_vt(jsnv) = jsnv0["c3nstrbody"] // in parse_c3nstr(jsnv) end // end of [parse_constraints] end // end of [local] (* ****** ****** *) implement parse_fileref_constraints (inp) = let // #define DP 1024 // depth // val tokener = json_tokener_new_ex(DP) val ((*void*)) = assertloc(json_tokener2ptr(tokener) > 0) // val cs = fileref_get_file_string(inp) // val jso = let // val cs2 = $UN.strptr2string(cs) val len = g1u2i(string_length(cs2)) // in json_tokener_parse_ex(tokener, cs2, len) end // end of [val] // val ((*freed*)) = strptr_free(cs) val ((*freed*)) = json_tokener_free(tokener) // val jsnv = json_object2val0 (jso) // (* val () = fprintln! (stdout_ref, "jsnv=", jsnv) *) // in parse_constraints(jsnv) end // end of [parse_fileref_constraints] (* ****** ****** *) // local // #include "./PARSING/patsolve_parsing_label.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./PARSING/patsolve_parsing_s2rt.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./PARSING/patsolve_parsing_s2cst.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./PARSING/patsolve_parsing_s2var.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./PARSING/patsolve_parsing_s2vvar.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./PARSING/patsolve_parsing_s2exp.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./PARSING/patsolve_parsing_s3itm.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./PARSING/patsolve_parsing_h3ypo.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./PARSING/patsolve_parsing_c3nstr.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) (* end of [patsolve_parsing.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/.keeper0000644000175000017500000000000013431250607022615 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/patsolve_cnstrnt.dats0000644000175000017500000000777513431250607025660 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 // #define ATS_DYNLOADNAME "patsolve_cnstrnt__dynload" // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) #staload UN = $UNSAFE (* ****** ****** *) // #staload "./../SATS/patsolve_cnstrnt.sats" // (* ****** ****** *) // implement fprint_val = fprint_stamp implement fprint_val = fprint_symbol // (* ****** ****** *) implement print_stamp(x) = fprint_stamp(stdout_ref, x) implement prerr_stamp(x) = fprint_stamp(stderr_ref, x) (* ****** ****** *) // implement print_symbol(x) = fprint_symbol(stdout_ref, x) implement prerr_symbol(x) = fprint_symbol(stderr_ref, x) // (* ****** ****** *) // implement print_label(x) = fprint_label(stdout_ref, x) implement prerr_label(x) = fprint_label(stderr_ref, x) // (* ****** ****** *) // implement print_tyreckind(x) = fprint_tyreckind(stdout_ref, x) implement prerr_tyreckind(x) = fprint_tyreckind(stderr_ref, x) // (* ****** ****** *) // implement fprint_val = fprint_s2rt implement fprint_val = fprint_s2rtdat // implement fprint_val = fprint_s2cst implement fprint_val = fprint_s2var // implement fprint_val = fprint_s2exp implement fprint_val = fprint_labs2exp // (* ****** ****** *) implement fprint_val = fprint_s3itm implement fprint_val = fprint_h3ypo implement fprint_val = fprint_c3nstr (* ****** ****** *) // implement print_s2rt(x) = fprint_s2rt(stdout_ref, x) implement prerr_s2rt(x) = fprint_s2rt(stderr_ref, x) // implement print_s2rtdat(x) = fprint_s2rtdat(stdout_ref, x) implement prerr_s2rtdat(x) = fprint_s2rtdat(stderr_ref, x) // (* ****** ****** *) // implement print_s2cst(x) = fprint_s2cst(stdout_ref, x) implement prerr_s2cst(x) = fprint_s2cst(stderr_ref, x) // (* ****** ****** *) // implement print_s2var(x) = fprint_s2var(stdout_ref, x) implement prerr_s2var(x) = fprint_s2var(stderr_ref, x) // implement print_s2Var(x) = fprint_s2Var(stdout_ref, x) implement prerr_s2Var(x) = fprint_s2Var(stderr_ref, x) // (* ****** ****** *) // implement print_s2exp(x) = fprint_s2exp(stdout_ref, x) implement prerr_s2exp(x) = fprint_s2exp(stderr_ref, x) // implement print_s2explst(xs) = fprint_s2explst(stdout_ref, xs) implement prerr_s2explst(xs) = fprint_s2explst(stderr_ref, xs) // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_stamp.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_label.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_symbol.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_location.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_s2rt.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_s2cst.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_s2var.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_s2vvar.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_s2exp.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_s3itm.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_h3ypo.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) // local // #include "./CNSTRNT/patsolve_cnstrnt_c3nstr.dats" in (*nothing*) // end // end of [local] // (* ****** ****** *) (* end of [patsolve_cnstrnt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/0000755000175000017500000000000013431250607022506 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_s2exp.dats0000644000175000017500000000605313431250607030120 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) implement s2exp_make_node (s2t, s2en) = '{ s2exp_srt= s2t, s2exp_node= s2en } (* end of [s2exp_make_node] *) (* ****** ****** *) // implement s2exp_var(s2v) = s2exp_make_node(s2v.srt(), S2Evar(s2v)) implement s2exp_eqeq(s2e1, s2e2) = s2exp_make_node(s2rt_bool(), S2Eeqeq(s2e1, s2e2)) // (* ****** ****** *) // implement s2exp_is_impred (s2e0) = s2rt_is_impred(s2e0.s2exp_srt) // (* ****** ****** *) implement fprint_tyreckind (out, knd) = ( // case+ knd of // | TYRECKINDbox() => fprint! (out, "TYRECKINDbox(", ")") | TYRECKINDbox_lin() => fprint! (out, "TYRECKINDbox_lin(", ")") // | TYRECKINDflt0() => fprint! (out, "TYRECKINDflt0(", ")") | TYRECKINDflt1(stamp) => fprint! (out, "TYRECKINDflt1(", stamp, ")") | TYRECKINDflt_ext (name) => fprint! (out, "TYRECKINDflt_ext(", name, ")") // ) (* end of [fprint_tyreckind] *) (* ****** ****** *) implement fprint_s2exp (out, s2e) = let in // case+ s2e.s2exp_node of // case+ // | S2Eint(i) => fprint! (out, "S2Eint(", i, ")") | S2Eintinf(i) => fprint! (out, "S2Eintinf(", i, ")") // | S2Ecst(s2c) => fprint! (out, "S2Ecst(", s2c, ")") | S2Evar(s2v) => fprint! (out, "S2Evar(", s2v, ")") | S2EVar(s2V) => fprint! (out, "S2EVar(", s2V, ")") // | S2Eeqeq(s2e1, s2e2) => fprint! (out, "S2Eeqeq(", s2e1, ", ", s2e2, ")") // | S2Esizeof(s2e) => fprint! (out, "S2Esizeof(", s2e, ")") // | S2Eapp(s2e_fun, s2es_arg) => fprint! (out, "S2Eapp(", s2e_fun, "; ", s2es_arg, ")") // | S2Emetdec(s2es_met, s2es_bound) => fprint! (out, "S2Emetdec(", s2es_met, "; ", s2es_bound, ")") // | S2Etop(knd, s2e) => fprint! (out, "S2Etop(", knd, ", ", s2e, ")") // | S2Einvar(s2e) => fprint! (out, "S2Einvar(", s2e, ")") // | S2Efun(nof, s2es, s2e) => fprint! (out, "S2Efun(", s2es, "; ", s2e, ")") // | S2Euni(s2vs, s2ps, s2e) => fprint! (out, "S2Euni(", s2vs, "; ", s2ps, "; ", s2e, ")") | S2Eexi(s2vs, s2ps, s2e) => fprint! (out, "S2Eexi(", s2vs, "; ", s2ps, "; ", s2e, ")") // | S2Etyrec(knd, npf, s2es_elt) => fprint! (out, "S2Etyrec(", knd, "; ", s2es_elt, ")") // | S2Eextype(name) => fprint! (out, "S2Eextype(", name, ")") | S2Eextkind(name) => fprint! (out, "S2Eextkind(", name, ")") // | S2Eerror((*void*)) => fprint! (out, "S2Eerror()") // end // end of [fprint_s2exp] (* ****** ****** *) implement fprint_s2explst (out, s2es) = let // implement fprint_list$sep<> (out) = fprint_string (out, ", ") // in fprint_list (out, s2es) end // end of [fprint_s2explst] (* ****** ****** *) implement fprint_labs2exp (out, ls2e) = let // val+SLABELED(l, s2e) = ls2e // in fprint! (out, l, "->", s2e) end // end of [fprint_labs2exp] (* ****** ****** *) implement fprint_labs2explst (out, ls2es) = let // implement fprint_list$sep<> (out) = fprint_string (out, ", ") // in fprint_list (out, ls2es) end // end of [fprint_labs2explst] (* ****** ****** *) (* end of [patsolve_cnstrnt_s2exp.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_symbol.dats0000644000175000017500000000344113431250607030362 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) local typedef key = string and itm = symbol in (* in-of-local *) #include "libats/ML/HATS/myhashtblref.hats" end // end of [local] (* ****** ****** *) local // datatype symbol = SYMBOL of (string, int) // assume symbol_type = symbol // val theCount = ref (0) val theSymtbl = myhashtbl_make_nil(1024) // in (*in-of-local*) implement fprint_symbol ( out, sym ) = let // val+SYMBOL(name, cnt) = sym // in fprint! (out, name) (* fprint! (out, "SYMBOL(", name, ", ", cnt, ")") *) end // end of [fprint_symbol] (* ****** ****** *) // implement symbol_get_name (sym) = name where { val+SYMBOL(name, _) = sym } // (* ****** ****** *) implement symbol_make_name (name) = let // val opt = theSymtbl.search(name) // in // case+ opt of | ~Some_vt x => x | ~None_vt () => let val n = !theCount val () = !theCount := n + 1 val x_new = SYMBOL(name, n) val-~None_vt() = theSymtbl.insert (name, x_new) in x_new end // end of [None_vt] // end // end of [symbol_make_name] (* ****** ****** *) implement eq_symbol_symbol (x1, x2) = let // val+SYMBOL(_, n1) = x1 val+SYMBOL(_, n2) = x2 // in n1 = n2 end // end of [eq_symbol_symbol] (* ****** ****** *) implement neq_symbol_symbol (x1, x2) = let // val+SYMBOL(_, n1) = x1 val+SYMBOL(_, n2) = x2 // in n1 != n2 end // end of [neq_symbol_symbol] (* ****** ****** *) implement compare_symbol_symbol (x1, x2) = let // val+SYMBOL(_, n1) = x1 val+SYMBOL(_, n2) = x2 // in g0int_compare (n1, n1) end // end of [compare_symbol_symbol] (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [patsolve_cnstrnt_symbol.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_s2rt.dats0000644000175000017500000000561613431250607027755 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // implement s2rt_int() = S2RTint() implement s2rt_addr() = S2RTaddr() implement s2rt_bool() = S2RTbool() // implement s2rt_real() = S2RTreal() implement s2rt_float() = S2RTfloat() implement s2rt_string() = S2RTstring() // (* ****** ****** *) implement s2rt_is_impred (s2t0) = ( // case+ s2t0 of // | S2RTtype() => true | S2RTvtype() => true // | S2RTt0ype() => true | S2RTvt0ype() => true // | S2RTprop() => true | S2RTview() => true // | S2RTfun(_, s2t_res) => s2rt_is_impred(s2t_res) // | _(*rest-of-S2RT*) => false // ) (* end of [s2rt_is_impred] *) (* ****** ****** *) // implement fprint_s2rt (out, s2t) = ( // case+ s2t of // | S2RTint() => fprint! (out, "S2RTint()") | S2RTaddr() => fprint! (out, "S2RTaddr()") | S2RTbool() => fprint! (out, "S2RTbool()") // | S2RTreal() => fprint! (out, "S2RTreal()") | S2RTfloat() => fprint! (out, "S2RTfloat()") | S2RTstring() => fprint! (out, "S2RTstring()") // | S2RTcls() => fprint! (out, "S2RTcls()") | S2RTeff() => fprint! (out, "S2RTeff()") // | S2RTtup() => fprint! (out, "S2RTtup()") // | S2RTtype() => fprint! (out, "S2RTtype()") | S2RTt0ype() => fprint! (out, "S2RTt0ype()") // | S2RTvtype() => fprint! (out, "S2RTvtype()") | S2RTvt0ype() => fprint! (out, "S2RTvt0ype()") // | S2RTprop() => fprint! (out, "S2RTprop()") | S2RTview() => fprint! (out, "S2RTview()") // | S2RTtkind() => fprint! (out, "S2RTtkind()") // | S2RTfun (s2ts_arg, s2t_res) => fprint! ( out , "S2RTfun(", s2ts_arg, "; ", s2t_res, ")" ) (* end of [S2RTfun] *) // | S2RTnamed (sym) => fprint! (out, "S2RTnamed(", sym, ")") // end of [S2RTnamed] // | S2RTerror ((*void*)) => fprint! (out, "S2RTerror()") // ) (* end of [fprint_s2rt] *) // (* ****** ****** *) typedef s2rtdat_struct = @{ // s2rtdat_name= symbol , s2rtdat_stamp= stamp , s2rtdat_sconlst= List0 (s2cst) // } (* end of [s2rtdat_struct] *) (* ****** ****** *) local // assume s2rtdat_type = ref (s2rtdat_struct) // in (* in of [local] *) implement s2rtdat_make (name, stamp, s2cs) = let // val [l:addr] ( pfat, pfgc | p ) = ptr_alloc () // val () = p->s2rtdat_name := name val () = p->s2rtdat_stamp := stamp val () = p->s2rtdat_sconlst := s2cs // in $UN.castvwtp0{s2rtdat}((pfat, pfgc | p)) end // end of [s2rtdat_make] implement s2rtdat_get_name (s2td) = !s2td.s2rtdat_name implement s2rtdat_get_stamp (s2td) = !s2td.s2rtdat_stamp implement s2rtdat_get_sconlst (s2td) = !s2td.s2rtdat_sconlst end // end of [local] (* ****** ****** *) // implement fprint_s2rtdat (out, s2td) = let // val name = s2rtdat_get_name(s2td) val s2cs = s2rtdat_get_sconlst(s2td) // in fprint_symbol(out, name); fprint! (out, "(", s2cs, ")") end // end of [fprint_s2rtdat] // (* ****** ****** *) (* end of [patsolve_cnstrnt_s2rt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_label.dats0000644000175000017500000000071713431250607030137 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) implement fprint_label (out, lab) = ( // case+ lab of // | LABint(int) => fprint! (out, "LABint(", int, ")") // | LABsym(sym) => fprint! (out, "LABsym(", sym, ")") // ) (* end of [fprint_label] *) (* ****** ****** *) (* end of [patsolve_cnstrnt_label.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_s2vvar.dats0000644000175000017500000000152113431250607030275 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) typedef s2Var_struct = @{ s2Var_stamp= stamp } (* end of [s2Var_struct] *) (* ****** ****** *) local // assume s2Var_type = ref (s2Var_struct) // in (* in-of-local *) implement s2Var_make(stamp) = let // val [l:addr] ( pfat, pfgc | p ) = ptr_alloc () // val () = p->s2Var_stamp := stamp // in $UN.castvwtp0{s2Var}((pfat, pfgc | p)) end // end of [s2Var_make] implement s2Var_get_stamp (s2V) = !s2V.s2Var_stamp end // end of [local] (* ****** ****** *) // implement fprint_s2Var (out, s2V) = fprint! (out, "s2Var(", s2V.stamp(), ")") // end of [fprint_s2Var] // (* ****** ****** *) (* end of [patsolve_cnstrnt_s2vvar.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_location.dats0000644000175000017500000000071713431250607030670 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) assume location_type = string (* ****** ****** *) implement location_make (rep) = rep (* ****** ****** *) implement fprint_location (out, loc) = fprint_string (out, loc) // end of [fprint_location] (* ****** ****** *) (* end of [patsolve_cnstrnt_location.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_s2var.dats0000644000175000017500000000276013431250607030115 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) typedef s2var_struct = @{ s2var_srt= s2rt , s2var_name= symbol , s2var_stamp= stamp // , s2var_payload= ptr // } (* end of [s2var_struct] *) (* ****** ****** *) local // assume s2var_type = ref (s2var_struct) // in (* in of [local] *) implement s2var_make (name, srt, stamp) = let // val [l:addr] ( pfat, pfgc | p ) = ptr_alloc () // val () = p->s2var_srt := srt val () = p->s2var_name := name val () = p->s2var_stamp := stamp // val () = p->s2var_payload := the_null_ptr // in $UN.castvwtp0{s2var}((pfat, pfgc | p)) end // end of [s2var_make] (* ****** ****** *) // implement s2var_get_srt (s2v) = !s2v.s2var_srt // implement s2var_get_name (s2v) = !s2v.s2var_name implement s2var_get_stamp (s2v) = !s2v.s2var_stamp // (* ****** ****** *) // implement s2var_is_impred (s2v) = s2rt_is_impred(!s2v.s2var_srt) // (* ****** ****** *) // implement s2var_get_payload(s2v) = !s2v.s2var_payload implement s2var_set_payload(s2v, x) = (!s2v.s2var_payload := x) // (* ****** ****** *) end // end of [local] (* ****** ****** *) // implement fprint_s2var (out, s2v) = fprint! (out, s2v.name()) // end of [fprint_s2var] // (* implement fprint_s2var (out, s2v) = fprint! (out, s2v.name(), "(", s2v.srt(), ")") // end of [fprint_s2var] *) // (* ****** ****** *) (* end of [patsolve_cnstrnt_s2var.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_c3nstr.dats0000644000175000017500000000551013431250607030270 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) implement c3nstr_make_node ( loc, c3tk, node ) = '{ c3nstr_loc= loc , c3nstr_kind= c3tk, c3nstr_node= node } (* end of [c3nstr_make_node] *) (* ****** ****** *) implement fprint_c3nstr (out, c3t) = ( // case c3t.c3nstr_node of // case+ | C3NSTRprop(s2e) => fprint! (out, "C3NSTRprop(", s2e, ")") // | C3NSTRitmlst(s3is) => fprint! (out, "C3NSTRitmlst(", s3is, ")") // | C3NSTRsolverify(s2e_prop) => fprint! (out, "C3NSTRsolverify(", s2e_prop, ")") // ) (* end of [fprint_c3nstr] *) (* ****** ****** *) // implement fprint_c3nstropt (out, opt) = fprint_option(out, opt) // (* ****** ****** *) // // HX-2015-05: pretty-printing // (* ****** ****** *) implement fpprint_c3nstr (out, c3t0) = let // fun aux_indent (ind: int): void = ( // if ind > 0 then ( fprint(out, ' '); aux_indent(ind-1) ) (* end of [then] *) // ) (* end of [aux_indent] *) // fun auxln_indent (ind: int): void = (fprint! (out, '\n'); aux_indent(ind)) // fun aux_c3nstr ( ind: int, c3t0: c3nstr ) : void = let // val () = aux_indent(ind) // in // case+ c3t0.c3nstr_node of // case+ // | C3NSTRprop(s2e) => fprint! (out, "C3NSTRprop(", s2e, ")") | C3NSTRitmlst(s3is) => { val () = fprint! (out, "C3NSTRitmlst(\n") val () = aux_s3itmlst(ind+2, s3is) val () = ( aux_indent (ind); fprint (out, ") (* C3NSTRitmlst *)") ) (* end of [val] *) } // | C3NSTRsolverify(s2e_prop) => { val () = fprint! (out, "C3NSTRsolverify(", s2e_prop, ")") } // end (* end of [aux_c3nstr] *) // and aux_s3itm ( ind: int, s3i0: s3itm ) : void = let // val () = aux_indent(ind) // in // case+ s3i0 of // | S3ITMsvar(s2v) => fprint! (out, "S3ITMsvar(", s2v, ")") | S3ITMsVar(s2V) => fprint! (out, "S3ITMsVar(", s2V, ")") // | S3ITMhypo(h3p) => fprint! (out, "S3ITMhypo(", h3p, ")") // | S3ITMcnstr(c3t) => { val () = fprint! (out, "S3ITMcnstr(\n") val () = aux_c3nstr(ind+2, c3t) val () = ( auxln_indent(ind); fprint! (out, ") (* S3ITMcnstr *)") ) (* end of [val] *) } | S3ITMcnstr_ref (loc, opt) => fprint! (out, "S3ITMcnstr_ref(", opt, ")") // end of [S3ITMcnstr_ref] // | S3ITMdisj(s3iss) => fprint! (out, "S3ITMdisj(", s3iss, ")") // | S3ITMsolassert(s2e) => fprint! (out, "S3ITMsolassert(", s2e, ")") // end // end of [aux_s3itm] // and aux_s3itmlst ( ind: int, s3is: s3itmlst ) : void = ( // case+ s3is of | list_nil () => () | list_cons (s3i, s3is) => ( aux_s3itm(ind, s3i); fprint! (out, '\n'); aux_s3itmlst(ind, s3is) ) (* end of [list_cons] *) // ) (* end of [aux_s3itmlst] *) // in aux_c3nstr(0(*indent*), c3t0) end (* end of [fpprint_c3nstr] *) (* ****** ****** *) (* end of [patsolve_cnstrnt_c3nstr.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_s2cst.dats0000644000175000017500000000345213431250607030115 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) typedef s2cst_struct = @{ // s2cst_srt= s2rt , s2cst_name= symbol , s2cst_stamp= stamp // , s2cst_extdef= stringopt // , s2cst_supcls= List0(s2exp) // , s2cst_nused= int // , s2cst_payload= ptr // } (* end of [s2cst_struct] *) (* ****** ****** *) local // assume s2cst_type = ref (s2cst_struct) // in (* in of [local] *) implement s2cst_make ( name, srt, stamp, extdef ) = let // val [l:addr] ( pfat, pfgc | p ) = ptr_alloc () // val () = p->s2cst_srt := srt // val () = p->s2cst_name := name // val () = p->s2cst_stamp := stamp // val () = p->s2cst_extdef := extdef // val () = p->s2cst_supcls := list_nil() // val () = p->s2cst_nused := (0) // val () = p->s2cst_payload := the_null_ptr // in $UN.castvwtp0{s2cst}((pfat, pfgc | p)) end // end of [s2cst_make] (* ****** ****** *) // implement s2cst_get_srt(s2c) = !s2c.s2cst_srt // implement s2cst_get_name(s2c) = !s2c.s2cst_name // implement s2cst_get_stamp(s2c) = !s2c.s2cst_stamp // implement s2cst_get_extdef(s2c) = !s2c.s2cst_extdef // (* ****** ****** *) // implement s2cst_get_nused(s2c) = !s2c.s2cst_nused // implement s2cst_incby1_nused(s2c) = (!s2c.s2cst_nused := !s2c.s2cst_nused + 1) // (* ****** ****** *) implement s2cst_get_payload (s2c) = !s2c.s2cst_payload implement s2cst_set_payload (s2c, x) = (!s2c.s2cst_payload := x) (* ****** ****** *) end // end of [local] (* ****** ****** *) // implement fprint_s2cst (out, s2c) = fprint! (out, s2c.name()) // (* implement fprint_s2cst (out, s2c) = fprint! (out, s2c.name(), "(", s2c.srt(), ")") // end of [fprint_s2cst] *) // (* ****** ****** *) (* end of [patsolve_cnstrnt_s2cst.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_stamp.dats0000644000175000017500000000251513431250607030202 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // staload "libats/SATS/hashfun.sats" staload _(*anon*) = "libats/DATS/hashfun.dats" // (* ****** ****** *) assume stamp_t0ype = int (* ****** ****** *) implement stamp_make(x) = x (* ****** ****** *) implement stamp_get_int(x) = x (* ****** ****** *) implement fprint_stamp (out, loc) = fprint_int (out, loc) // end of [fprint_stamp] (* ****** ****** *) // implement hash_stamp(x) = $UNSAFE.cast{ulint} (inthash_jenkins($UNSAFE.cast{uint32}(x))) // (* ****** ****** *) // implement eq_stamp_stamp(x1, x2) = (compare_stamp_stamp(x1, x2) = 0) implement neq_stamp_stamp(x1, x2) = (compare_stamp_stamp(x1, x2) != 0) // (* ****** ****** *) // implement compare_stamp_stamp(x1, x2) = g0int_compare (x1, x2) // (* ****** ****** *) local // var mycnt: stamp = 0 val mycnt = ref_make_viewptr{stamp}(view@mycnt | addr@mycnt) // in // implement the_stamp_getinc ((*void*)) = n0 where { val n0 = mycnt[] val () = mycnt[] := n0 + 1 } // implement the_stamp_update (n) = let val n0 = mycnt[] in if n0 <= n then mycnt[] := n+1 end // end of [the_stamp_update] // end // end of [local] (* ****** ****** *) (* end of [patsolve_cnstrnt_stamp.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_h3ypo.dats0000644000175000017500000000134213431250607030115 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) implement h3ypo_make_node (loc, node) = '{ h3ypo_loc= loc, h3ypo_node= node } (* end of [h3ypo_make_node] *) (* ****** ****** *) implement fprint_h3ypo (out, h3p) = ( // case h3p.h3ypo_node of // case+ // | H3YPOprop(s2e) => fprint! (out, "H3YPOprop(", s2e, ")") // | H3YPObind(s2v1, s2e2) => fprint! (out, "H3YPObind(", s2v1, " -> ", s2e2, ")") // | H3YPOeqeq(s2e1, s2e2) => fprint! (out, "H3YPOeqeq(", s2e1, " == ", s2e2, ")") // ) (* end of [fprint_h3ypo] *) (* ****** ****** *) (* end of [patsolve_cnstrnt_h3ypo.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/DATS/CNSTRNT/patsolve_cnstrnt_s3itm.dats0000644000175000017500000000176613431250607030124 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) implement fprint_s3itm (out, s3i) = ( // case s3i of | S3ITMsvar(s2v) => fprint! (out, "S3ITMsvar(", s2v, ")") | S3ITMsVar(s2V) => fprint! (out, "S3ITMsVar(", s2V, ")") // | S3ITMhypo(h3p) => fprint! (out, "S3ITMhypo(", h3p, ")") // | S3ITMcnstr(c3t) => fprint! (out, "S3ITMcnstr(", c3t, ")") | S3ITMcnstr_ref(loc, opt) => fprint! (out, "S3ITMcnstr_ref(", opt, ")") // | S3ITMdisj(s3iss) => fprint! (out, "S3ITMdisj(", s3iss, ")") // | S3ITMsolassert(s2e_prop) => fprint! (out, "S3ITMsolassert(", s2e_prop, ")") // ) (* end of [fprint_s3itm] *) (* ****** ****** *) // implement fprint_s3itmlst (out, xs) = fprint_list_sep (out, xs, ", ") // (* ****** ****** *) // implement fprint_s3itmlstlst (out, xss) = fprint_listlist_sep (out, xss, "; ", ", ") // (* ****** ****** *) (* end of [patsolve_cnstrnt_s3itm.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/Makefile0000644000175000017500000000572413431250607022270 0ustar brandonbrandon## ## ATS-extsolve: ## For solving ATS-constraints ## with external SMT-solvers ## ###### ## ## Author: Hongwei Xi ## Authoremail: gmhwxiATgmailDOTcom ## ## Start time: May, 2015 ## ###### CC=gcc ###### ifdef \ PATSHOME PATSHOMEQ="$(PATSHOME)" else ifdef ATSHOME PATSHOMEQ="$(ATSHOME)" else PATSHOMEQ="/usr/local/lib/ats2-postiats" endif endif ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### all:: ###### # CFLAGS := CFLAGS += -DATS_MEMALLOC_LIBC # CFLAGS2 := # CFLAGS2 += \ -I${PATSHOMEQ}/contrib/atscntrb CFLAGS2 += \ $(shell pkg-config --cflags json-c) # ###### LDFLAGS := LDFLAGS += $(shell pkg-config --libs json-c) ###### EXTRAFLAGS := ###### # INCLUDE := INCLUDE += -I$(PATSHOMEQ) INCLUDE += -I$(PATSHOMEQ)/ccomp/runtime # ###### SOURCES_SATS= \ patsolve_cnstrnt.sats \ patsolve_parsing.sats \ ###### SOURCES_DATS= \ patsolve_main.dats \ patsolve_mylib.dats \ patsolve_commarg.dats \ patsolve_cnstrnt.dats \ patsolve_parsing.dats \ ###### OBJECTS_SATS_O := \ $(patsubst %.sats, %_sats.o, $(SOURCES_SATS)) OBJECTS_DATS_O := \ $(patsubst %.dats, %_dats.o, $(SOURCES_DATS)) ###### OBJECTS := OBJECTS += $(OBJECTS_SATS_O) OBJECTS += $(OBJECTS_DATS_O) ###### PATSCC2 = $(PATSCC) $(CFLAGS) PATSCC3 = $(PATSCC) $(CFLAGS) $(CFLAGS2) ###### # all:: \ bin_patsolve # bin_patsolve: $(OBJECTS) ; \ $(PATSCC2) -O2 -o bin/patsolve $^ $(LDFLAGS) $(EXTRAFLAGS) # cleanall:: ; $(RMF) bin/patsolve # ###### patsolve_main_dats.o: \ DATS/patsolve_main.dats; $(PATSCC2) -c $< ###### patsolve_mylib_dats.o: \ DATS/patsolve_mylib.dats; $(PATSCC3) -c $< ###### patsolve_commarg_sats.o: \ SATS/patsolve_commarg.sats; $(PATSCC) -c $< patsolve_commarg_dats.o: \ DATS/patsolve_commarg.dats; $(PATSCC3) -c $< ###### patsolve_cnstrnt_sats.o: \ SATS/patsolve_cnstrnt.sats; $(PATSCC) -c $< patsolve_cnstrnt_dats.o: \ DATS/patsolve_cnstrnt.dats; $(PATSCC2) -c $< ###### patsolve_parsing_sats.o: \ SATS/patsolve_parsing.sats; $(PATSCC3) -c $< patsolve_parsing_dats.o: \ DATS/patsolve_parsing.dats; $(PATSCC3) -c $< ###### # DATS_C:: \ DATS/patsolve_cnstrnt.dats; \ $(PATSOPT) -o CATS/patsolve_cnstrnt_dats.c --dynamic $< DATS_C:: \ DATS/patsolve_parsing.dats; \ $(PATSOPT) -o CATS/patsolve_parsing_dats.c --dynamic $< # # cleanall:: ; $(RMF) CATS/patsolve_*_dats.c # ###### # -include .depend # depend:: ; $(RMF) .depend # ifeq ("$(strip $(SOURCES_SATS))","") else depend:: ; $(PATSOPT) --output-a .depend --depgen -s $(SOURCES_SATS) endif ifeq ("$(strip $(SOURCES_DATS))","") else depend:: ; $(PATSOPT) --output-a .depend --depgen -d $(SOURCES_DATS) endif # ###### testall:: all testall:: DATS_C testall:: cleanall ###### RMF=rm -f ###### cleanats:: ; $(RMF) *~ cleanats:: ; $(RMF) SATS/*~ cleanats:: ; $(RMF) DATS/*~ cleanats:: ; $(RMF) DATS/CNSTRNT/*~ cleanats:: ; $(RMF) DATS/PARSING/*~ cleanats:: ; $(RMF) *_?ats.o cleanats:: ; $(RMF) *_?ats.c ###### clean: cleanats ###### cleanall:: cleanats cleanall:: ; $(RMF) .depend ###### ## end of [Makefile] ## ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/.keeper0000644000175000017500000000000013431250607022062 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/CATS/0000755000175000017500000000000013431250607021352 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/CATS/.keeper0000644000175000017500000000000013431250607022614 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/SATS/0000755000175000017500000000000013431250607021372 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/SATS/patsolve_parsing.sats0000644000175000017500000000606513431250607025655 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // #define ATS_PACKNAME "PATSOLVE_PARSING" // (* ****** ****** *) // #define LIBJSONC_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-libjson-c" // (* ****** ****** *) // #staload "{$LIBJSONC}/SATS/json_ML.sats" // (* ****** ****** *) // typedef jsnvlst = List0(jsonval) typedef jsnvopt = Option(jsonval) vtypedef jsnvopt_vt = Option_vt(jsonval) // (* ****** ****** *) // fun jsonval_get_field (jsonval, string): jsnvopt_vt // overload [] with jsonval_get_field // (* ****** ****** *) #staload "./patsolve_cnstrnt.sats" (* ****** ****** *) fun parse_int (jsnv: jsonval): int fun parse_string (jsnv: jsonval): string (* ****** ****** *) fun parse_stamp (jsnv: jsonval): stamp fun parse_symbol (jsnv: jsonval): symbol fun parse_location (jsnv: jsonval): loc_t (* ****** ****** *) fun parse_label (jsnv: jsonval): label (* ****** ****** *) // fun parse_tyreckind (jsnv: jsonval): tyreckind // (* ****** ****** *) fun{ a:t@ype } parse_list (jsnv: jsonval, f: jsonval -> a): List0(a) // end of [parse_list] (* ****** ****** *) fun{ a:t@ype } parse_option (jsnv: jsonval, f: jsonval -> a): Option(a) // end of [parse_option] (* ****** ****** *) fun parse_s2rt (jsnv: jsonval): s2rt fun parse_s2rtlst (jsnv: jsonval): s2rtlst (* ****** ****** *) fun parse_s2rtdat(jsnv: jsonval): s2rtdat fun parse_s2rtdatlst(jsnv: jsonval): s2rtdatlst (* ****** ****** *) // fun the_s2cstmap_insert(s2cst): void fun the_s2cstmap_search(stamp): s2cstopt_vt // fun the_s2cstmap_listize((*void*)): s2cstlst_vt // (* ****** ****** *) // fun the_s2varmap_insert(s2var): void fun the_s2varmap_search(stamp): s2varopt_vt // (* fun the_s2varmap_listize((*void*)): s2varlst_vt *) // (* ****** ****** *) // fun the_s2Varmap_insert(s2Var): void fun the_s2Varmap_search(stamp): s2Varopt_vt // (* ****** ****** *) fun the_s2rtdatmap_get((*void*)): s2rtdatlst (* ****** ****** *) fun parse_s2cst (jsnv: jsonval): s2cst fun parse_s2cstlst (jsnv: jsonval): s2cstlst (* ****** ****** *) fun parse_s2var (jsnv: jsonval): s2var fun parse_s2varlst (jsnv: jsonval): s2varlst (* ****** ****** *) fun parse_s2Var (jsnv: jsonval): s2Var fun parse_s2Varlst (jsnv: jsonval): s2Varlst (* ****** ****** *) fun parse_s2exp (jsnv: jsonval): s2exp fun parse_s2explst (jsnv: jsonval): s2explst (* ****** ****** *) fun parse_labs2exp (jsnv: jsonval): labs2exp fun parse_labs2explst (jsnv: jsonval): labs2explst (* ****** ****** *) fun parse_s3itm (jsnv: jsonval): s3itm fun parse_s3itmlst (jsnv: jsonval): s3itmlst fun parse_s3itmlstlst (jsnv: jsonval): s3itmlstlst (* ****** ****** *) fun parse_h3ypo (jsnv: jsonval): h3ypo (* ****** ****** *) fun parse_c3nstr (jsnv: jsonval): c3nstr fun parse_c3nstropt (jsnv: jsonval): c3nstropt (* ****** ****** *) // fun parse_constraints (jsnv: jsonval): c3nstr // fun parse_fileref_constraints (filr: FILEref): c3nstr // (* ****** ****** *) (* end of [patsolve_parsing.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/SATS/patsolve_cnstrnt.sats0000644000175000017500000002755413431250607025713 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // #define ATS_PACKNAME "PATSOLVE_CNSTRNT" // (* ****** ****** *) // abst0ype stamp_t0ype = int // typedef stamp = stamp_t0ype // (* ****** ****** *) // fun print_stamp: stamp -> void and prerr_stamp: stamp -> void fun fprint_stamp: fprint_type(stamp) // overload print with print_stamp overload prerr with prerr_stamp overload fprint with fprint_stamp // (* ****** ****** *) fun stamp_make(int): stamp (* ****** ****** *) fun stamp_get_int(stamp): int (* ****** ****** *) fun hash_stamp(stamp):<> ulint (* ****** ****** *) // fun eq_stamp_stamp : (stamp, stamp) - bool fun neq_stamp_stamp : (stamp, stamp) - bool fun compare_stamp_stamp : (stamp, stamp) - int // overload = with eq_stamp_stamp overload != with neq_stamp_stamp overload compare with compare_stamp_stamp // (* ****** ****** *) // fun the_stamp_getinc(): stamp // fun the_stamp_update(n: stamp): void // (* ****** ****** *) abstype symbol_type = ptr typedef symbol = symbol_type (* ****** ****** *) // fun print_symbol: symbol -> void and prerr_symbol: symbol -> void fun fprint_symbol: fprint_type(symbol) // overload print with print_symbol overload prerr with prerr_symbol overload fprint with fprint_symbol // (* ****** ****** *) fun symbol_make_name(string): symbol (* ****** ****** *) // fun symbol_get_name (x: symbol): string // overload .name with symbol_get_name // (* ****** ****** *) // fun eq_symbol_symbol : (symbol, symbol) - bool fun neq_symbol_symbol : (symbol, symbol) - bool fun compare_symbol_symbol : (symbol, symbol) - int // overload = with eq_symbol_symbol overload != with neq_symbol_symbol overload compare with compare_symbol_symbol // (* ****** ****** *) // abstype location_type = ptr // typedef loc_t = location_type // (* ****** ****** *) // fun fprint_location: fprint_type(loc_t) // overload fprint with fprint_location // (* ****** ****** *) // fun location_make (rep: string): loc_t // (* ****** ****** *) // datatype label = LABint of int | LABsym of symbol // (* ****** ****** *) // fun print_label : label -> void and prerr_label : label -> void fun fprint_label : fprint_type(label) // overload print with print_label overload prerr with prerr_label overload fprint with fprint_label // (* ****** ****** *) datatype s2rt = // | S2RTint of () | S2RTaddr of () | S2RTbool of () // | S2RTreal of () // | S2RTfloat of () | S2RTstring of () // | S2RTcls of () | S2RTeff of () // | S2RTtup of ((*void*)) // | S2RTtype of ((*void*)) | S2RTvtype of ((*void*)) // | S2RTt0ype of ((*void*)) | S2RTvt0ype of ((*void*)) // | S2RTprop of ((*void*)) | S2RTview of ((*void*)) // | S2RTtkind of ((*void*)) // | S2RTfun of (s2rtlst(*args*), s2rt (*res*)) // | S2RTnamed of (symbol) // | S2RTerror of ((*void*)) // // end of [datatype] where s2rtlst = List0(s2rt) (* ****** ****** *) // fun s2rt_int((*void*)): s2rt fun s2rt_addr((*void*)): s2rt fun s2rt_bool((*void*)): s2rt // fun s2rt_real((*void*)): s2rt fun s2rt_float((*void*)): s2rt fun s2rt_string((*void*)): s2rt // (* ****** ****** *) // fun s2rt_is_impred(s2t: s2rt): bool // (* ****** ****** *) // fun print_s2rt : s2rt -> void and prerr_s2rt : s2rt -> void fun fprint_s2rt: fprint_type(s2rt) // overload print with print_s2rt overload prerr with prerr_s2rt overload fprint with fprint_s2rt // (* ****** ****** *) abstype s2rtdat_type = ptr typedef s2rtdat = s2rtdat_type typedef s2rtdatlst = List(s2rtdat) (* ****** ****** *) // fun s2rtdat_get_name (s2rtdat): symbol fun s2rtdat_get_stamp (s2rtdat): stamp // (* ****** ****** *) // fun print_s2rtdat : s2rtdat -> void and prerr_s2rtdat : s2rtdat -> void fun fprint_s2rtdat: fprint_type(s2rtdat) // overload print with print_s2rtdat overload prerr with prerr_s2rtdat overload fprint with fprint_s2rtdat // (* ****** ****** *) // abstype s2cst_type = ptr // typedef s2cst = s2cst_type // typedef s2cstlst = List0(s2cst) vtypedef s2cstlst_vt = List0_vt(s2cst) // typedef s2cstopt = Option(s2cst) vtypedef s2cstopt_vt = Option_vt(s2cst) // (* ****** ****** *) // fun s2cst_make ( symbol, s2rt, stamp, extdef: Option(string) ) : s2cst // end of [s2cst_make] // (* ****** ****** *) // fun print_s2cst: s2cst -> void and prerr_s2cst: s2cst -> void fun fprint_s2cst: fprint_type(s2cst) // overload print with print_s2cst overload prerr with prerr_s2cst overload fprint with fprint_s2cst // (* ****** ****** *) // typedef scstextdef = stringopt // fun s2cst_get_srt (s2cst): s2rt fun s2cst_get_name (s2cst): symbol fun s2cst_get_stamp (s2cst): stamp fun s2cst_get_extdef (s2cst): scstextdef // overload .srt with s2cst_get_srt overload .name with s2cst_get_name overload .stamp with s2cst_get_stamp overload .extdef with s2cst_get_extdef // (* ****** ****** *) // fun s2cst_get_nused(s2cst): int fun s2cst_incby1_nused(s2cst): void // (* ****** ****** *) fun s2cst_get_payload(s2cst): ptr fun s2cst_set_payload(s2cst, payload: ptr): void (* ****** ****** *) // fun s2rtdat_get_sconlst (s2rtdat): s2cstlst fun s2rtdat_make(symbol, stamp, s2cstlst): s2rtdat // (* ****** ****** *) // abstype s2var_type = ptr // typedef s2var = s2var_type // typedef s2varlst = List0(s2var) vtypedef s2varlst_vt = List0_vt(s2var) // typedef s2varopt = Option(s2var) vtypedef s2varopt_vt = Option_vt(s2var) // (* ****** ****** *) // fun s2var_make (symbol, s2rt, stamp): s2var // (* ****** ****** *) // fun print_s2var: s2var -> void and prerr_s2var: s2var -> void fun fprint_s2var: fprint_type(s2var) // overload print with print_s2var overload prerr with prerr_s2var overload fprint with fprint_s2var // (* ****** ****** *) // fun s2var_get_srt (s2var): s2rt fun s2var_get_name (s2var): symbol fun s2var_get_stamp (s2var): stamp // overload .srt with s2var_get_srt overload .name with s2var_get_name overload .stamp with s2var_get_stamp // (* ****** ****** *) fun s2var_is_impred (s2v: s2var): bool (* ****** ****** *) // fun s2var_get_payload(s2var): ptr fun s2var_set_payload(s2var, payload: ptr): void // (* ****** ****** *) // abstype s2Var_type = ptr // typedef s2Var = s2Var_type // typedef s2Varlst = List0(s2Var) vtypedef s2Varlst_vt = List0_vt(s2Var) // typedef s2Varopt = Option(s2Var) vtypedef s2Varopt_vt = Option_vt(s2Var) // (* ****** ****** *) // fun s2Var_make(stamp): s2Var // (* ****** ****** *) // fun print_s2Var: s2Var -> void and prerr_s2Var: s2Var -> void fun fprint_s2Var: fprint_type(s2Var) // overload print with print_s2Var overload prerr with prerr_s2Var overload fprint with fprint_s2Var // (* ****** ****** *) // fun s2Var_get_stamp (s2Var): stamp // overload .stamp with s2Var_get_stamp // (* ****** ****** *) datatype tyreckind = | TYRECKINDbox (* boxed *) | TYRECKINDbox_lin (* boxed *) | TYRECKINDflt0 (* flat *) | TYRECKINDflt1 of stamp (* flat *) | TYRECKINDflt_ext of string (* flat *) // end of [tyreckind] (* ****** ****** *) // fun tyreckind_is_box (knd: tyreckind): bool fun tyreckind_is_box_lin (knd: tyreckind): bool // fun tyreckind_is_flt0 (knd: tyreckind): bool fun tyreckind_is_flt1 (knd: tyreckind): bool fun tyreckind_is_flt_ext (knd: tyreckind): bool // (* ****** ****** *) // fun print_tyreckind : tyreckind -> void and prerr_tyreckind : tyreckind -> void fun fprint_tyreckind : fprint_type(tyreckind) // overload print with print_tyreckind overload prerr with prerr_tyreckind overload fprint with fprint_tyreckind // (* ****** ****** *) // datatype s2exp_node = // | S2Eint of (int) | S2Eintinf of (string) // | S2Ecst of (s2cst) | S2Evar of (s2var) | S2EVar of (s2Var) // | S2Eeqeq of (s2exp, s2exp) // | S2Esizeof of (s2exp(*t0ype*)) // | S2Eapp of (s2exp, s2explst) | S2Emetdec of (s2explst(*met*), s2explst(*bound*)) // strictly decreasing // end of [S2Emetdec] // | S2Etop of (int(*knd*), s2exp) // | S2Einvar of (s2exp) // | S2Efun of (int(*npf*), s2explst, s2exp) // | S2Euni of (s2varlst, s2explst(*s2ps*), s2exp(*scope*)) | S2Eexi of (s2varlst, s2explst(*s2ps*), s2exp(*scope*)) // | S2Etyrec of (tyreckind, int(*npf*), labs2explst) // | S2Eextype of (symbol) | S2Eextkind of (symbol) // | S2Eerror of ((*for-error-indication*)) // end of [s2exp_node] // and labs2exp = SLABELED of (label, s2exp) // where s2exp = $rec{ s2exp_srt= s2rt, s2exp_node= s2exp_node } (* end of [s2exp] *) // and s2explst = List0 (s2exp) and labs2explst = List0 (labs2exp) // (* ****** ****** *) // typedef s2expopt = Option(s2exp) vtypedef s2expopt_vt = Option_vt(s2exp) // (* ****** ****** *) // fun s2exp_make_node (s2t: s2rt, node: s2exp_node): s2exp // fun s2exp_var (s2v: s2var): s2exp fun s2exp_eqeq (s2e1: s2exp, s2e2: s2exp): s2exp // (* ****** ****** *) fun s2exp_is_impred (s2e: s2exp): bool (* ****** ****** *) // fun print_s2exp(s2exp): void and prerr_s2exp(s2exp): void // overload print with print_s2exp overload prerr with prerr_s2exp // fun print_s2explst(s2explst): void and prerr_s2explst(s2explst): void // overload print with print_s2explst overload prerr with prerr_s2explst // fun fprint_s2exp : fprint_type(s2exp) fun fprint_s2explst : fprint_type(s2explst) // overload fprint with fprint_s2exp overload fprint with fprint_s2explst of 10 // fun fprint_labs2exp : fprint_type(labs2exp) fun fprint_labs2explst : fprint_type(labs2explst) // overload fprint with fprint_labs2exp overload fprint with fprint_labs2explst of 10 // (* ****** ****** *) abstype d2var_type = ptr typedef d2var = d2var_type (* ****** ****** *) datatype caskind = | CK_case // case | CK_case_pos // case+ | CK_case_neg // case- // end of [caskind] datatype c3nstrkind = // | C3TKmain of () // generic // | C3TKcase_exhaustiveness of (caskind) // | C3TKtermet_isnat of () // term. metric welfounded | C3TKtermet_isdec of () // term. metric decreasing // | C3TKsome_fin of (d2var, s2exp(*fin*), s2exp) | C3TKsome_lvar of (d2var, s2exp(*lvar*), s2exp) | C3TKsome_vbox of (d2var, s2exp(*vbox*), s2exp) // | C3TKlstate of () // lstate merge | C3TKlstate_var of (d2var) // lstate merge for d2var // | C3TKloop of (int) // HX: ~1/0/1: enter/break/continue // | C3TKsolver of (int) // HX: knd=0/1: solassert/solverify // | C3TKignored of () // HX-2015-06-06: ignored c3nstrkind // end of [c3nstrkind] datatype s3itm = | S3ITMsvar of s2var | S3ITMsVar of s2Var | S3ITMhypo of h3ypo | S3ITMcnstr of c3nstr | S3ITMcnstr_ref of (loc_t, c3nstropt) | S3ITMdisj of s3itmlstlst // | S3ITMsolassert of (s2exp) // HX: $solver_assert // end of [s3item] and h3ypo_node = | H3YPOprop of s2exp | H3YPObind of (s2var, s2exp) | H3YPOeqeq of (s2exp, s2exp) // end of [h3ypo_node] and c3nstr_node = | C3NSTRprop of s2exp | C3NSTRitmlst of s3itmlst | C3NSTRsolverify of (s2exp) // HX: $solver_verify // end of [c3nstr_node] where // s3itmlst = List0(s3itm) // and s3itmlstlst = List0(s3itmlst) // and h3ypo = $rec{ h3ypo_loc= loc_t , h3ypo_node= h3ypo_node } (* end of [h3ypo] *) // and c3nstr = $rec{ c3nstr_loc= loc_t , c3nstr_kind= c3nstrkind , c3nstr_node= c3nstr_node } (* end of [c3nstr] *) // and c3nstropt = Option(c3nstr) (* ****** ****** *) // fun h3ypo_make_node (loc_t, h3ypo_node): h3ypo // (* ****** ****** *) // fun c3nstr_make_node (loc: loc_t, knd: c3nstrkind, c3nstr_node): c3nstr // (* ****** ****** *) // fun fprint_s3itm: fprint_type(s3itm) fun fprint_s3itmlst: fprint_type(s3itmlst) fun fprint_s3itmlstlst: fprint_type(s3itmlstlst) // overload fprint with fprint_s3itm overload fprint with fprint_s3itmlst of 10 overload fprint with fprint_s3itmlstlst of 20 // (* ****** ****** *) // fun fprint_h3ypo: fprint_type(h3ypo) // overload fprint with fprint_h3ypo // (* ****** ****** *) // fun fprint_c3nstr: fprint_type(c3nstr) fun fprint_c3nstropt: fprint_type(c3nstropt) // overload fprint with fprint_c3nstr overload fprint with fprint_c3nstropt of 10 // (* ****** ****** *) // // HX-2015-05-25: // pretty-printing // fun fpprint_c3nstr: fprint_type(c3nstr) // (* ****** ****** *) (* end of [patsolve_cnstrnt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/SATS/.keeper0000644000175000017500000000000013431250607022634 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/SATS/patsolve_commarg.sats0000644000175000017500000000165413431250607025636 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: May, 2015 *) (* ****** ****** *) // #define ATS_PACKNAME "PATSOLVE_COMMARG" // (* ****** ****** *) datatype commarg = | CAhelp of (string) | CAgitem of (string) | CAinput of (string) | CAoutput of (string) | CAscript of (string) | CAargend of ((*void*)) // end of [commarg] (* ****** ****** *) // typedef commarglst = List0 (commarg) vtypedef commarglst_vt = List0_vt (commarg) // (* ****** ****** *) // fun fprint_commarg (out: FILEref, ca: commarg): void // overload fprint with fprint_commarg // (* ****** ****** *) // fun patsolve_cmdline {n:nat} (argc: int(n), argv: !argv(n)): commarglst_vt // (* ****** ****** *) // fun patsolve_commarglst(arglst: commarglst_vt): void // (* ****** ****** *) (* end of [patsolve_commarg.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve/README0000644000175000017500000000050113431250607021474 0ustar brandonbrandon## ## ATS-extsolve: ## For solving ATS-constraints ## with external SMT-solvers ## ###### HX: This one is built on top of the earlier work by Will Blair (wdblairATcsDOTbuDOTedu) ###### HX: ATS-extsolve-z3 // solving with Z3 ATS-extsolve-smt2 // generating constraints in smt-lib format ###### end of [README] ###### ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/0000755000175000017500000000000013431250607020722 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/CATS-parsemit0000777000175000017500000000000013431250607025730 2../CATS-parsemitustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/bin/0000755000175000017500000000000013431250607021472 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/bin/.gitkeep0000644000175000017500000000000013431250607023111 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/DATS/0000755000175000017500000000000013431250607021455 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/DATS/atscc2clj_emit.dats0000644000175000017500000004116713431250607025231 0ustar brandonbrandon(* ****** ****** *) // // Atscc2clj: // from ATS to Clojure // (* ****** ****** *) // // HX-2016-05-19: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_fundecl.sats" // (* ****** ****** *) // extern fun emit_tmpvar_val (out: FILEref, tmp: i0de): void // (* ****** ****** *) local // staload TM = "libats/libc/SATS/time.sats" // typedef time_t = $TM.time_t // in (* in-of-local *) implement emit_time_stamp (out) = let // var tm: time_t val () = tm := $TM.time_get () val (pfopt | p_tm) = $TM.localtime (tm) // val () = emit_text (out, ";;;;;;\n"); val () = emit_text (out, ";;\n"); val () = emit_text (out, ";; The Clojure code is generated by atscc2clj\n") val () = emit_text (out, ";; The starting compilation time is: ") // val () = if p_tm > 0 then let // prval Some_v@(pf1, fpf1) = pfopt // val tm_min = $TM.tm_get_min (!p_tm) val tm_hour = $TM.tm_get_hour (!p_tm) val tm_mday = $TM.tm_get_mday (!p_tm) val tm_mon = 1 + $TM.tm_get_mon (!p_tm) val tm_year = 1900 + $TM.tm_get_year (!p_tm) // prval((*returned*)) = fpf1 (pf1) // in // $extfcall ( void , "fprintf" , out, "%i-%i-%i: %2ih:%2im\n", tm_year, tm_mon, tm_mday, tm_hour, tm_min ) (* $extfcall *) // end // end of [then] else let prval None_v() = pfopt in emit_text(out, "**TIME-ERROR**\n") end // end of [else] // val () = emit_text (out, ";;\n") val () = emit_text (out, ";;;;;;\n") // in // emit_newline (out) end // end of [emit_time_stamp] end // end of [local] (* ****** ****** *) implement emit_PMVint (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVint] // implement emit_PMVintrep (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVintrep] // (* ****** ****** *) implement emit_PMVbool (out, tfv) = ( // emit_text ( out , if tfv then "atscc2clj_true" else "atscc2clj_false" // end of [if] ) (* end of [emit_text] *) // ) (* end of [emit_PMVbool] *) (* ****** ****** *) implement emit_PMVstring (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVstring] (* ****** ****** *) implement emit_PMVfloat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVfloat] (* ****** ****** *) implement emit_PMVi0nt (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVi0nt] (* ****** ****** *) implement emit_PMVf0loat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVf0loat] (* ****** ****** *) // implement emit_PMVempty (out, _) = emit_text (out, "null") // implement emit_PMVextval (out, toks) = emit_tokenlst (out, toks) // (* ****** ****** *) // extern fun f0ide_get_arity (fid: i0de): int // implement f0ide_get_arity (fid) = let // val opt = f0head_search_opt(fid.i0dex_sym) // in // case+ opt of | ~None_vt() => ~1 | ~Some_vt(fhd) => ( case+ fhd.f0head_node of // case+ | F0HEAD(fid, fma, _) => list_length (fma.f0marg_node) // end of [F0HEAD] ) (* end of [Some_vt] *) // end // end of [f0ide_get_arity] // (* ****** ****** *) // implement emit_PMVfunlab (out, flab) = { // (* val n0 = f0ide_get_arity(flab) *) // val () = emit_label(out, flab) // } (* end of [emit_PMVfunlab] *) // (* ****** ****** *) implement emit_PMVcfunlab (out, flab, d0es_env) = { // val () = emit_LPAREN(out) // val () = emit_label(out, flab) val () = emit_text (out, "__closurerize") // val () = emit_d0explst_1(out, d0es_env) // val () = emit_RPAREN(out) // } (* end of [emit_PMVcfunlab] *) (* ****** ****** *) implement emit_CSTSPmyloc (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_CSTSPmyloc] (* ****** ****** *) // extern fun emit_fname_d0exp : (FILEref, string, d0exp) -> void extern fun emit_fname_d0exp2 : (FILEref, string, d0exp, d0exp) -> void extern fun emit_fname_d0exp_int : (FILEref, string, d0exp, int(*ctag*)) -> void // implement emit_fname_d0exp (out, fname, d0e) = { // val () = emit_LPAREN (out) // val () = ( emit_text (out, fname); emit_SPACE (out); emit_d0exp (out, d0e) ) (* end of [val] *) // val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp] *) // implement emit_fname_d0exp2 (out, fname, d0e1, d0e2) = { // val () = emit_LPAREN (out) val () = ( emit_text (out, fname); emit_SPACE (out); emit_d0exp (out, d0e1); emit_SPACE (out); emit_d0exp (out, d0e2) ) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp2] *) // implement emit_fname_d0exp_int (out, fname, d0e, ctag) = { // val () = emit_LPAREN (out) val () = ( emit_text (out, fname); emit_SPACE (out); emit_d0exp (out, d0e); emit_SPACE (out); emit_int (out, ctag) ) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp_int] *) // (* ****** ****** *) // implement emit_ATSCKiseqz(out, d0e) = emit_fname_d0exp(out, "ATSCKiseqz", d0e) implement emit_ATSCKisneqz(out, d0e) = emit_fname_d0exp(out, "ATSCKisneqz", d0e) // (* ****** ****** *) // implement emit_ATSCKptriscons(out, d0e) = emit_fname_d0exp(out, "ATSCKptriscons", d0e) implement emit_ATSCKptrisnull(out, d0e) = emit_fname_d0exp(out, "ATSCKptrisnull", d0e) // (* ****** ****** *) // implement emit_ATSCKpat_int (out, d0e, i0) = emit_fname_d0exp2 (out, "ATSCKpat_int", d0e, i0) implement emit_ATSCKpat_bool (out, d0e, b0) = emit_fname_d0exp2 (out, "ATSCKpat_bool", d0e, b0) implement emit_ATSCKpat_string (out, d0e, s0) = emit_fname_d0exp2 (out, "ATSCKpat_string", d0e, s0) // (* ****** ****** *) // implement emit_ATSCKpat_con0 (out, d0e, ctag) = emit_fname_d0exp_int (out, "ATSCKpat_con0", d0e, ctag) implement emit_ATSCKpat_con1 (out, d0e, ctag) = emit_fname_d0exp_int (out, "ATSCKpat_con1", d0e, ctag) // (* ****** ****** *) // implement emit_tmpvar (out, tmp) = let // val sym = tmp.i0dex_sym val name = g1ofg0(symbol_get_name(sym)) // in // if isneqz(name) then ( emit_text(out, name) ) (* end of [then] *) else () // end of [else] // end // end of [emit_tmpvar] // (* ****** ****** *) local fun skipds ( p1: ptr ) : ptr = let val c1 = $UN.ptr0_get(p1) in if isdigit(c1) then skipds(ptr_succ(p1)) else p1 // end of [if] end // end of [skipds] fun emit_axrg__ ( out: FILEref, sym: symbol ) : void = let // val p0 = string2ptr (symbol_get_name(sym)) // string2ptr val p1 = skipds(ptr_succ(p0)) // val p1_2 = ptr_add(p1, 2) // in emit_text(out, "arg"); emit_text(out, $UN.cast{string}(p1_2)) end // end of [emit_axrg__] in (* in-of-local *) implement emit_tmpvar_val (out, tmp) = let // val sym = tmp.i0dex_sym // val isat = tmpvar_is_tmp(sym) // in // if isat then let // val () = emit_text(out, "@") // in emit_tmpvar(out, tmp) end // end of [then] else ( // if ~tmpvar_is_axrg(sym) then emit_tmpvar(out, tmp) else emit_axrg__(out, sym) // ) (* end of [else] *) // end // end of [emit_tmpvar_val] end // end of [local] (* ****** ****** *) fun s0exp_get_arity (s0e: s0exp): int = ( case+ s0e.s0exp_node of // case+ | S0Elist(s0es) => list_length(s0es) | _ => ~1 ) (* end of [s0exp_get_arity] *) (* ****** ****** *) implement emit_d0exp (out, d0e0) = let in // case+ d0e0.d0exp_node of // | D0Eide (tmp) => { val () = emit_tmpvar_val(out, tmp) } // | D0Eappid(fid, d0es) => { val () = emit_LPAREN(out) // val () = emit_i0de(out, fid) val () = emit_d0explst_1(out, d0es) // val () = emit_RPAREN(out) } | D0Eappexp(d0e, d0es) => { val () = emit_LPAREN(out) // val () = emit_d0exp(out, d0e) val () = emit_d0explst_1(out, d0es) // val () = emit_RPAREN(out) } // | D0Elist (d0es) => { val () = emit_LPAREN (out) val () = emit_text (out, "D0Elist") val () = emit_d0explst_1 (out, d0es) val () = emit_RPAREN (out) } // | ATSPMVint (int) => emit_PMVint (out, int) | ATSPMVintrep (int) => emit_PMVintrep (out, int) // | ATSPMVbool (tfv) => emit_PMVbool (out, tfv) // | ATSPMVfloat (flt) => emit_PMVfloat (out, flt) // | ATSPMVstring (str) => emit_PMVstring (out, str) // | ATSPMVi0nt (int) => emit_PMVi0nt (out, int) | ATSPMVf0loat (flt) => emit_PMVf0loat (out, flt) // | ATSPMVempty (dummy) => emit_PMVempty (out, 0) | ATSPMVextval (toklst) => emit_PMVextval (out, toklst) // | ATSPMVrefarg0 (d0e) => emit_d0exp (out, d0e) | ATSPMVrefarg1 (d0e) => emit_d0exp (out, d0e) // | ATSPMVfunlab (fl) => emit_PMVfunlab (out, fl) | ATSPMVcfunlab (_(*knd*), fl, d0es) => emit_PMVcfunlab (out, fl, d0es) // end of [ATSPMVcfunlab] // | ATSPMVcastfn (_(*fid*), _(*s0e*), arg) => emit_d0exp (out, arg) // | ATSCSTSPmyloc (tok) => emit_CSTSPmyloc (out, tok) // // | ATSCKiseqz(d0e) => emit_ATSCKiseqz (out, d0e) | ATSCKisneqz(d0e) => emit_ATSCKisneqz (out, d0e) | ATSCKptriscons(d0e) => emit_ATSCKptriscons (out, d0e) | ATSCKptrisnull(d0e) => emit_ATSCKptrisnull (out, d0e) // | ATSCKpat_int (d0e, int) => emit_ATSCKpat_int (out, d0e, int) | ATSCKpat_bool (d0e, bool) => emit_ATSCKpat_bool (out, d0e, bool) | ATSCKpat_string (d0e, string) => emit_ATSCKpat_string (out, d0e, string) // | ATSCKpat_con0 (d0e, ctag) => emit_ATSCKpat_con0 (out, d0e, ctag) | ATSCKpat_con1 (d0e, ctag) => emit_ATSCKpat_con1 (out, d0e, ctag) // | ATSSELcon _ => emit_SELcon (out, d0e0) | ATSSELrecsin _ => emit_SELrecsin (out, d0e0) | ATSSELboxrec _ => emit_SELboxrec (out, d0e0) | ATSSELfltrec _ => emit_text (out, "ATSSELfltrec(...)") // | ATSextfcall (_fun, _arg) => { val () = emit_i0de (out, _fun) val () = emit_d0exparg (out, _arg) } (* end of [ATSextfcall] *) | ATSextmcall (_obj, _mtd, _arg) => { // val () = emit_d0exp (out, _obj) val () = emit_DOT (out) val () = emit_d0exp (out, _mtd) // val () = emit_d0exparg (out, _arg) // } (* end of [ATSextmcall] *) // | ATSfunclo_fun ( d0e_fun, s0e_arg, _(*res*) ) => ( emit_fname_d0exp(out, "ATSfunclo_fun", d0e_fun) ) (* end of [ATSfunclo_fun] *) // | ATSfunclo_clo ( d0e_fun, _(*arg*), _(*res*) ) => ( emit_fname_d0exp(out, "ATSfunclo_fclo", d0e_fun) ) (* end of [ATSfunclo_clo] *) // end // end of [emit_d0exp] (* ****** ****** *) local fun loop ( out: FILEref, d0es: d0explst, i: int ) : void = ( case+ d0es of | list_nil () => () | list_cons (d0e, d0es) => let val () = if i > 0 then emit_SPACE(out) // end of [val] in emit_d0exp (out, d0e); loop (out, d0es, i+1) end // end of [list_cons] ) in (* in-of-local *) implement emit_d0explst (out, d0es) = loop (out, d0es, 0) implement emit_d0explst_1 (out, d0es) = loop (out, d0es, 1) end // end of [local] (* ****** ****** *) implement emit_d0exparg (out, d0es) = { // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_d0exparg] *) (* ****** ****** *) // extern fun tyrec_labsel (tyrec: tyrec, lab: symbol): int // implement tyrec_labsel (tyrec, lab) = let // fun loop ( xs: tyfldlst, i: int ) : int = ( case+ xs of | list_cons (x, xs) => let val TYFLD (id, s0e) = x.tyfld_node in if lab = id.i0dex_sym then i else loop (xs, i+1) end // end of [list_cons | list_nil ((*void*)) => ~1(*error*) ) // in loop (tyrec.tyrec_node, 0) end // end of [tyrec_labsel] // (* ****** ****** *) implement emit_SELcon (out, d0e) = let // val- ATSSELcon (d0rec, s0e, id) = d0e.d0exp_node // val-S0Eide(name) = s0e.s0exp_node val-~Some_vt(s0rec) = typedef_search_opt(name) // val tupi = tyrec_labsel(s0rec, id.i0dex_sym) // val () = emit_text(out, "(ATSSELcon ") val () = ( emit_d0exp (out, d0rec); emit_SPACE(out); emit_int (out, tupi) ) (* end of [val] *) // val () = emit_RPAREN (out) // in // nothing end // end of [emit_SELcon] (* ****** ****** *) implement emit_SELrecsin (out, d0e) = let // val- ATSSELrecsin (d0rec, s0e, id) = d0e.d0exp_node // in emit_d0exp (out, d0rec) end // end of [emit_SELrecsin] (* ****** ****** *) implement emit_SELboxrec (out, d0e) = let // val- ATSSELboxrec (d0rec, s0e, id) = d0e.d0exp_node // val-S0Eide(name) = s0e.s0exp_node val-~Some_vt(s0rec) = typedef_search_opt(name) // val tupi = tyrec_labsel(s0rec, id.i0dex_sym) // val () = emit_text (out, "(ATSSELboxrec ") // // val () = ( emit_d0exp (out, d0rec); emit_SPACE(out); emit_int (out, tupi) ) (* end of [val] *) // val () = emit_RPAREN (out) // in // nothing end // end of [emit_SELboxrec] (* ****** ****** *) // implement emit_COMMENT_line (out, tok) = let // val- T_COMMENT_line (str) = tok.token_node // in emit_text (out, str) end // end of [emit_COMMENT_line] // implement emit_COMMENT_block (out, tok) = let // val- T_COMMENT_block (str) = tok.token_node // in emit_text (out, str) end // end of [emit_COMMENT_block] // (* ****** ****** *) local (* fun aux0_cenv ( out: FILEref , s0es: s0explst ) : void = let // fun auxlst ( i: int, s0es: s0explst ) : void = ( case+ s0es of | list_nil() => () | list_cons (_, s0es) => let val () = emit_text(out, " ") val () = ( emit_text(out, "Cenv"); emit_int(out, i) ) in auxlst(i+1, s0es) end // end of [auxlst] ) // val () = emit_LBRACE(out) val () = (emit_text(out, "_"); auxlst(1, s0es)) val () = emit_RBRACE(out) // in // nothing end (* end of [aux0_cenv] *) *) fun aux0_cenv ( out: FILEref , s0es: s0explst ) : void = ( emit_text(out, "_fcenvs_") ) fun aux0_arglst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( // case+ s0es of | list_nil ((*void*)) => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then ( emit_text (out, " ") ) (* then *) // end of [if] val () = ( emit_text (out, "xarg"); emit_int (out, i) ) (* end of [val] *) in aux0_arglst (out, s0es, n0, i+1) end // end of [list_cons] // ) (* end of [aux0_arglst] *) fun aux0_envlst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( // case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then ( emit_text(out, " ") ) (* then *) // end of [if] val () = ( emit_text (out, "xenv"); emit_int (out, i) ) (* end of [val] *) in aux0_envlst (out, s0es, n0, i+1) end // end of [list_cons] // ) (* end of [aux0_envlst] *) fun aux0_fcenvs_at ( out: FILEref , s0es: s0explst, i: int ) : void = () where { val () = emit_LPAREN(out) val () = if (i <= 3) then ( emit_text(out, "ATSCCget_"); emit_int(out, i); emit_text(out, " _fcenvs_") ) (* end of [then] *) else ( emit_text(out, "ATSCCget_at"); emit_text(out, " _fcenvs_ "); emit_int(out, i) ) (* end of [else] *) // end of [if] val () = emit_RPAREN(out) } (* end of [aux0_fcenvs_at] *) fun aux1_envlst ( out: FILEref , s0es: s0explst, i: int ) : int = ( case+ s0es of | list_nil ((*void*)) => (i) | list_cons (s0e, s0es) => let // val () = if i > 0 then emit_text (out, " ") val () = aux0_fcenvs_at(out, s0es, i) // in aux1_envlst (out, s0es, i+1) end // end of [list_cons] ) (* end of [aux1_envlst] *) in (* in-of-local *) implement emit_closurerize ( out, flab, env, arg, res ) = let // val-S0Elist(s0es_env) = env.s0exp_node val-S0Elist(s0es_arg) = arg.s0exp_node // val () = emit_ENDL (out) // (* val () = emit_text (out, ";;fun;;\n") *) val () = emit_text(out, "(defn\n") // val () = emit_label(out, flab) val () = emit_text (out, "__closurerize") // val () = emit_LBRACKET(out) val () = aux0_envlst(out, s0es_env, 0, 0) val () = emit_RBRACKET(out) // val () = emit_text(out, "\n;;%{\n") // val () = emit_nspc (out, 2) val () = emit_text (out, "(list ") val () = emit_text (out, "(fn") // val () = emit_LBRACKET(out) val () = aux0_cenv(out, s0es_env) val () = aux0_arglst (out, s0es_arg, 1, 0) val () = emit_RBRACKET(out) // val () = emit_LPAREN(out) val () = emit_label(out, flab) val n0 = aux1_envlst(out, s0es_env, 1) val () = aux0_arglst(out, s0es_arg, n0, 0) val () = emit_RPAREN(out) // val () = emit_RPAREN(out) // val () = aux0_envlst(out, s0es_env, 1, 0) val ((*closing*)) = emit_text(out, ")\n") val ((*closing*)) = emit_text(out, ";;%}\n") val ((*closing*)) = emit_text(out, ") ;; end-of-defn\n") // val ((*flushing*)) = emit_newline(out) // in // nothing end // end of [emit_closurerize] end // end of [local] (* ****** ****** *) (* end of [atscc2clj_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/DATS/.keeper0000644000175000017500000000000013431250607022717 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/DATS/atscc2clj_main.dats0000644000175000017500000002607713431250607025222 0ustar brandonbrandon(* ****** ****** *) // // Atscc2clj: // from ATS to Clojure // (* ****** ****** *) // // HX-2016-05-19: start // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define ATS_DYNLOADNAME"libatscc2clj_dynload" // (* ****** ****** *) // staload STDIO = "{$PATSLIBATSLIBC}/SATS/stdio.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_parsing.sats" // (* ****** ****** *) // val () = catsparse_all_dynload() where { extern fun catsparse_all_dynload(): void = "ext#" } (* end of [val] *) // (* ****** ****** *) #dynload "./atscc2clj_emit.dats" #dynload "./atscc2clj_emit2.dats" (* ****** ****** *) // datatype comarg = COMARGkey of (int, string) // typedef comarglst = List0 (comarg) // (* ****** ****** *) datatype waitkind = | WTKnone of () | WTKinput of () | WTKoutput of () // -o / --output // end of [waitkind] (* ****** ****** *) datatype OUTCHAN = | OUTCHANref of (FILEref) | OUTCHANptr of (FILEref) // end of [OUTCHAN] fun outchan_get_fileref (x: OUTCHAN): FILEref = ( // case+ x of | OUTCHANref (filr) => filr | OUTCHANptr (filp) => filp // ) (* end of [outchan_get_fileref] *) (* ****** ****** *) typedef cmdstate = @{ comarg0= comarg , ncomarg= int // number of arguments , waitkind= waitkind // number of processed input files; , ninputfile= int // waiting for STDIN if it is 0 , outchan= OUTCHAN // current output channel , nerror= int // number of accumulated errors } (* end of [cmdstate] *) (* ****** ****** *) fun cmdstate_set_outchan ( state: &cmdstate >> _, chan_new: OUTCHAN ) : void = let // val chan_old = state.outchan val ((*void*)) = state.outchan := chan_new // in // case+ chan_old of | OUTCHANref (filr) => () | OUTCHANptr (filp) => let val err = $STDIO.fclose0 (filp) in (*nothing*) end // end of [OUTCHANptr] // end // end of [cmdstate_set_outchan] (* ****** ****** *) // extern fun atscc2clj_fileref (state: &cmdstate >> _, filr: FILEref): void // implement atscc2clj_fileref (state, inp) = let // val oc = state.outchan val out = outchan_get_fileref (oc) // val d0cs = parse_from_fileref (inp) // val () = emit_time_stamp (out) // val ((*void*)) = emit_toplevel (out, d0cs) // val () = emit_text (out, ";;;;;;\n") val () = emit_text (out, ";;\n") val () = emit_text (out, ";; end-of-compilation-unit") val () = emit_text (out, "\n;;") val () = emit_text (out, "\n;;;;;;") // val ((*flusing*)) = emit_newline (out) // in // nothing end // end of [atscc2clj_fileref] (* ****** ****** *) // macdef fopen = $STDIO.fopen // extern fun atscc2clj_basename ( state: &cmdstate >> _, fname: string ) : void // end-of-fun // implement atscc2clj_basename (state, fname) = let // val inp = fopen (fname, file_mode_r) // val p_inp = $STDIO.ptrcast(inp) // in // if p_inp > 0 then let // val inp = $UNSAFE.castvwtp0{FILEref}(inp) val ((*void*)) = the_filename_push(filename_make(fname)) // in atscc2clj_fileref (state, inp) end // end of [then] else let // prval ( // freed ) = $STDIO.FILEptr_free_null (inp) val ((*void*)) = state.nerror := state.nerror + 1 // in // nothing end // end of [else] // end // end of [atscc2clj_basename] (* ****** ****** *) fun cmdstate_set_outchan_basename ( state: &cmdstate >> _, basename: string ) : void = let // val filp = $STDIO.fopen (basename, file_mode_w) val p0 = $STDIO.ptrcast(filp) // (* val () = println! ("cmdstate_set_outchan_basename: p0 = ", p0) *) // in // if p0 > 0 then let val filp = $UNSAFE.castvwtp0{FILEref}(filp) in cmdstate_set_outchan (state, OUTCHANptr (filp)) end // end of [then] else let prval ( // freed ) = $STDIO.FILEptr_free_null (filp) val ((*void*)) = state.nerror := state.nerror + 1 in cmdstate_set_outchan (state, OUTCHANref (stderr_ref)) end // end of [else] // end // end of [cmdstate_set_outchan_basename] (* ****** ****** *) // fn isinwait (state: cmdstate): bool = ( case+ state.waitkind of WTKinput () => true | _ => false ) (* end of [isinwait] *) // fn isoutwait (state: cmdstate): bool = ( case+ state.waitkind of WTKoutput () => true | _ => false ) (* end of [isoutwait] *) // (* ****** ****** *) // extern fun comarg_warning (string): void // implement comarg_warning (str) = { val () = prerr ("waring(ATS)") val () = prerr (": unrecognized command line argument [") val () = prerr (str) val () = prerr ("] is ignored.") val () = prerr_newline () } (* end of [comarg_warning] *) // (* ****** ****** *) fun atscc2clj_usage (cmd: string): void = { // val () = println! ( "Usage: ", cmd, " ... \n" ) val () = println! ( "where each is of one of the following forms:\n" ) // val () = println! (" -i : for processing ") val () = println! (" --input : for processing ") // val () = println! (" -o : output into ") val () = println! (" --output : output into ") // val () = println! (" -h : for printing out this help usage") val () = println! (" --help : for printing out this help usage") // } (* end of [atscc2clj_usage] *) (* ****** ****** *) fun process_cmdline ( state: &cmdstate, arglst: comarglst ) : void = let in // case+ arglst of // | list_nil () => let val nif = state.ninputfile val wait0 = ( case+ 0 of | _ when nif < 0 => true | _ when nif = 0 => isinwait (state) | _ (* nif > 0 *) => false ) : bool // end of [val] in if wait0 then ( if state.ncomarg = 0 then atscc2clj_usage ("atscc2clj") else atscc2clj_fileref (state, stdin_ref) ) (* end of [if] *) end // end of [list_nil] // | list_cons (arg, arglst) => let val () = state.ncomarg := state.ncomarg + 1 // end of [val] in process_cmdline2 (state, arg, arglst) end // end of [list_cons] // end // end of [process_cmdline] and process_cmdline2 ( state: &cmdstate, arg: comarg, arglst: comarglst ) : void = let in // case+ arg of // | _ when isinwait(state) => let val nif = state.ninputfile in case+ arg of | COMARGkey (1, key) when nif > 0 => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) when nif > 0 => process_cmdline2_COMARGkey2 (state, arglst, key) | COMARGkey (_, fname) => let val () = state.ninputfile := nif + 1 val () = atscc2clj_basename (state, fname(*input*)) in process_cmdline (state, arglst) end // end of [COMARGkey] end // end of [_ when isinpwait] // | _ when isoutwait(state) => let // val COMARGkey (_, fname) = arg // val () = cmdstate_set_outchan_basename (state, fname) // val () = state.waitkind := WTKnone () // in process_cmdline (state, arglst) end // end of [_ when isoutwait] // | COMARGkey (1, key) => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) => process_cmdline2_COMARGkey2 (state, arglst, key) // | COMARGkey (_, key) => let val () = comarg_warning (key) val () = state.waitkind := WTKnone () in process_cmdline (state, arglst) end // end of [COMARGkey] // end // end of [process_cmdline2] and process_cmdline2_COMARGkey1 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = ( // case+ key of // | "-i" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [-i] *) // | "-o" => { val () = state.waitkind := WTKoutput () } (* end of [-o] *) // | "-h" => { val () = atscc2clj_usage ("atscc2clj") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [-h] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey1] and process_cmdline2_COMARGkey2 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = state.waitkind := WTKnone () // val () = ( // case+ key of // | "--input" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [--input] *) // | "--output" => { val () = state.waitkind := WTKoutput () } (* end of [--output] *) // | "--help" => { val () = atscc2clj_usage ("atscc2clj") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [--help] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey2] (* ****** ****** *) // extern fun comarg_parse (string):<> comarg // extern fun comarglst_parse{n:nat} (argc: int n, argv: !argv(n)): list (comarg, n) // end of [comarglst_parse] // (* ****** ****** *) implement comarg_parse (str) = let // fun loop {n,i:nat | i <= n} .. ( str: string n, n: int n, i: int i ) :<> comarg = ( if i < n then ( if (str[i] != '-') then COMARGkey (i, str) else loop (str, n, i+1) ) else COMARGkey (n, str) ) (* end of [if] *) // end of [loop] // val str = g1ofg0(str) val len = string_length (str) // in loop (str, sz2i(len), 0) end // end of [comarg_parse] (* ****** ****** *) implement comarglst_parse {n}(argc, argv) = let // fun loop {i,j:nat | i <= n} .. ( argv: !argv(n), i: int(i), res: list_vt(comarg, j) ) : list_vt (comarg, n-i+j) = ( // if i < argc then let val res = list_vt_cons (comarg_parse (argv[i]), res) in loop (argv, i+1, res) end // end of [then] else res // end of [else] // end of [if] ) (* end of [loop] *) // val res = loop (argv, 0, list_vt_nil()) // in list_vt2t (list_vt_reverse (res)) end // end of [comarglst_parse] (* ****** ****** *) // extern fun atscc2clj_main0 {n:pos} ( argc: int(n), argv: !argv(n) ) : void = "ext#libatscc2clj_atscc2clj_main0" // implement atscc2clj_main0 (argc, argv) = () where { // val () = prerrln! ( "Hello from atscc2clj!" ) (* end of [val] *) // // val arglst = comarglst_parse (argc, argv) // val+list_cons (arg0, arglst) = arglst // var state = @{ comarg0= arg0 , ncomarg= 0 // counting from 0 , waitkind= WTKnone () // number of prcessed , ninputfile= ~1 // input files , outchan= OUTCHANref (stdout_ref) , nerror= 0 // number of accumulated errors } : cmdstate // end of [var] // val () = process_cmdline (state, arglst) // val () = if state.nerror = 1 then let val () = prerrln! ("atscc2clj: there is a reported error.") in // nothing end // end of [then] else if state.nerror >= 2 then let val () = prerrln! ("atscc2clj: there are some reported errors.") in // nothing end // end of [then] else () // end of [else] // (* val () = prerrln! ("Good-bye from atscc2clj!") *) // } (* end of [atscc2clj_main0] *) (* ****** ****** *) #ifndef ATSCC2CLJ_MAIN_NONE // implement main0 (argc, argv) = { // val () = atscc2clj_main0(argc, argv) // } (* end of [main0] *) // #endif // ifndef(ATSCC2CLJ_MAIN_NONE) (* ****** ****** *) (* end of [atscc2clj_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/DATS/atscc2clj_emit2.dats0000644000175000017500000013650413431250607025313 0ustar brandonbrandon(* ****** ****** *) // // Atscc2clj: // from ATS to Clojure // (* ****** ****** *) // // HX-2015-06-29: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_fundecl.sats" // (* ****** ****** *) staload "./atscc2clj_emit.dats" (* ****** ****** *) // extern fun emit_tmpdeclst_initize ( out: FILEref, tds: tmpdeclst ) : void // end-of-fun // local // nothing in (* in-of-local *) implement emit_tmpdeclst_initize (out, tds) = let // fun auxlst ( out: FILEref, tds: tmpdeclst ) : void = let // (* val () = println! ("auxlst: tds = ", tds) *) // in // case+ tds of | list_nil() => () | list_cons(td, tds) => ( case+ td.tmpdec_node of // case+ | TMPDECnone (tmp) => auxlst (out, tds) // TMPDECnone | TMPDECsome (tmp, _) => auxlst (out, tds) where { // val sym = tmp.i0dex_sym // val () = if tmpvar_is_tmp(sym) then emit_text(out, " ") else emit_text(out, ";;") // end of [val] // val () = ( emit_tmpvar(out, tmp); emit_SPACE(out); emit_text(out, "nil") ) // val ((*closing*)) = emit_text(out, "\n") // } (* end of [TMPDECsome] *) ) (* end of [list_cons] *) // end // end of [auxlst] // in auxlst (out, tds) end // end of [emit_tmpdeclst_initize] end // end of [local] // (* ****** ****** *) // extern fun the_casefnxx_new (): int // extern fun the_casefnxx_reset (): void // (* ****** ****** *) // extern fun the_caselevel_get (): int extern fun the_caselevel_inc (): void extern fun the_caselevel_dec (): void // (* ****** ****** *) // extern fun the_funlabind_get (): int extern fun the_funlabind_set (i0: int): void // (* ****** ****** *) // extern fun the_tmpdeclst_get (): tmpdeclst extern fun the_tmpdeclst_set (tds: tmpdeclst): void // (* ****** ****** *) // extern fun the_f0headopt_get (): f0headopt extern fun the_f0headopt_set (fhd: f0head): void // (* ****** ****** *) // extern fun the_funbodyknd_get (): int extern fun the_funbodyknd_set (knd: int): void // (* ****** ****** *) // extern fun the_funbodylst_get (): instrlst extern fun the_funbodylst_set (inss: instrlst): void // (* ****** ****** *) // extern fun the_branchlablst_get (): labelist extern fun the_branchlablst_set (tls: labelist): void extern fun the_branchlablst_unset ((*void*)): void // (* ****** ****** *) local // val the_casefnxx = ref (9) // val the_caselevel = ref (0) // val the_funlabind = ref (~1) // val the_tmpdeclst = ref (list_nil) // val the_f0headopt = ref (None()) // val the_funbodyknd = ref (~1) val the_funbodylst = ref (list_nil) // // HX: this is a stack: // val the_branchlablstlst = ref (list_nil) // in (* in-of-local *) implement the_casefnxx_new ((*void*)) = fx where { val fx = !the_casefnxx val () = !the_casefnxx := fx+1 } implement the_casefnxx_reset() = !the_casefnxx := 0 implement the_caselevel_get() = !the_caselevel implement the_caselevel_inc() = let val n = !the_caselevel in !the_caselevel := n+1 end implement the_caselevel_dec() = let val n = !the_caselevel in !the_caselevel := n-1 end implement the_funlabind_get() = !the_funlabind implement the_funlabind_set(i0) = !the_funlabind := i0 implement the_tmpdeclst_get () = !the_tmpdeclst implement the_tmpdeclst_set (xs) = !the_tmpdeclst := xs implement the_f0headopt_get () = !the_f0headopt implement the_f0headopt_set (fhd) = !the_f0headopt := Some(fhd) implement the_funbodyknd_get() = !the_funbodyknd implement the_funbodyknd_set(knd) = !the_funbodyknd := knd implement the_funbodylst_get () = !the_funbodylst implement the_funbodylst_set (xs) = !the_funbodylst := xs implement the_branchlablst_get ( ) = let // val xss = !the_branchlablstlst // in // case- xss of list_cons (xs, _) => xs // end // end of [the_branchlablst_get] implement the_branchlablst_set ( xs ) = let // val xss = !the_branchlablstlst // in !the_branchlablstlst := list_cons (xs, xss) end // end of [the_branchlablst_set] implement the_branchlablst_unset ( ) = let // val xss = !the_branchlablstlst // in // case- xss of | list_cons (_, xss) => !the_branchlablstlst := xss // end // end of [the_branchlablst_unset] end // end of [local] (* ****** ****** *) // extern fun funlab_get_index (fl: label): int extern fun tmplab_get_index (lab: label): int // (* ****** ****** *) implement funlab_get_index (fl0) = let // val n0 = fl0.i0dex_sym // fun auxlst ( xs: instrlst, i: int ) : int = ( // case+ xs of | list_nil ((*error*)) => ~1 // end of [list_nil] | list_cons(x, xs) => ( case+ x.instr_node of // case+ | ATSfunbodyseq _ => let val fl = funbodyseq_get_funlab (x) in if n0 = fl.i0dex_sym then i else auxlst (xs, i+1) end // end of [ATSfunbodyseq] | _ (*non-ATSfunbody*) => auxlst (xs, i) ) (* end of [list_cons] *) // ) (* end of [auxlst] *) // in auxlst (the_funbodylst_get(), 1) end // end of [funlab_get_index] (* ****** ****** *) implement tmplab_get_index (lab0) = let // val n0 = lab0.i0dex_sym // fun auxlst ( xs: labelist, i: int ) : int = ( case+ xs of | list_nil ((*error*)) => ~1 // end of [list_nil] | list_cons (x, xs) => if n0 = x.i0dex_sym then i else auxlst (xs, i+1) // end of [list_cons] ) // in auxlst (the_branchlablst_get(), 1) end // end of [tmplab_get_index] (* ****** ****** *) // fun emit_funlab_index (out: FILEref, fl: label): void = emit_int (out, funlab_get_index (fl)) // fun emit_tmplab_index (out: FILEref, lab: label): void = emit_int (out, tmplab_get_index (lab)) // (* ****** ****** *) // extern fun emit_casefnx (out: FILEref): void extern fun emit_casefnx2 (out: FILEref, tli: int): void // implement emit_casefnx (out) = emit_text(out, "casefnx") // implement emit_casefnx2 (out, tli) = () where { // val () = emit_LPAREN(out) val () = emit_casefnx(out) val () = (emit_SPACE(out); emit_int(out, tli)) val () = emit_RPAREN(out) // } (* end of [emit_casefnx2] *) // (* ****** ****** *) // extern fun emit_casefnxx (out: FILEref, x: int): void extern fun emit_casefnxx2 (out: FILEref, x: int, tli: int): void // implement emit_casefnxx(out, x) = emit_casefnx(out) implement emit_casefnxx2(out, x, tli) = emit_casefnx2(out, tli) // (* implement emit_casefnxx (out, x) = (emit_text(out, "casefnxx"); emit_int(out, x)) // implement emit_casefnxx2 (out, x, tli) = () where { // val () = emit_LPAREN(out) // val () = ( emit_casefnxx(out, x); emit_SPACE(out); emit_int(out, tli) ) (* end of [val] *) // val () = emit_RPAREN(out) // } (* end of [emit_casefnxx2] *) *) // (* ****** ****** *) // extern fun emit_tmpvar_set ( out: FILEref, tmp: i0de ) : void // end-of-function // implement emit_tmpvar_set (out, tmp) = () where { // val sym = tmp.i0dex_sym val istmp = tmpvar_is_tmp(sym) // val () = emit_text ( out , if istmp then "ATSINStmpset" else "ATSINSstatmpset" // end of [if] ) (* emit_text *) val () = emit_SPACE(out) val () = emit_symbol(out, sym) // } (* end of [emit_tmpvar_set] *) // (* ****** ****** *) // extern fun emit2_instr (out: FILEref, ind: int, ins: instr): void // extern fun emit2_instr_ln (out: FILEref, ind: int, ins: instr): void // extern fun emit2_instrlst (out: FILEref, ind: int, inss: instrlst): void (* extern fun emit2_instrlst_ln (out: FILEref, ind: int, inss: instrlst): void *) extern fun emit2_instrlst_end (out: FILEref, ind: int, inss: instrlst, sep: string): void // extern fun emit2_instrlst_sepln (out: FILEref, ind: int, inss: instrlst, sep: string): void // (* ****** ****** *) // extern fun emit2_branchlst (out: FILEref, ind: int, inss: instrlst): void extern fun emit2_branchseqlst (out: FILEref, ind: int, inss: instrlst): void // (* ****** ****** *) // extern fun emit2_tailcalseqlst (out: FILEref, ind: int, inss: instrlst): void // (* ****** ****** *) // extern fun emit2_ATSfunbodyseq (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_con1 (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_boxrec (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_delay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_lazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_ldelay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_llazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // // HX-2014-08: // this one should not be used for // emitting multiple-line instructions // implement emit_instr (out, ins) = emit2_instr(out, 0(*ind*), ins) // (* ****** ****** *) implement emit2_instr (out, ind, ins0) = let // fun emit_not_d0exp (out: FILEref, d0e: d0exp): void = { val () = emit_fname_d0exp(out, "not", d0e) } (* end of [emit_not_d0exp] *) // in // case+ ins0.instr_node of // case+ // | ATSif ( d0e, inss, inssopt ) => let val () = emit_nspc (out, ind) val () = emit_text (out, "(if") val () = emit_SPACE (out) val () = (emit_d0exp (out, d0e); emit_ENDL(out)) val () = emit2_instrlst_sepln (out, ind+2, inss, " ;; if-then\n") in case+ inssopt of | None() => { val () = (emit_nspc (out, ind); emit_RPAREN (out)) } (* end of [None] *) | Some(inss) => { val () = emit2_instrlst_sepln (out, ind+2, inss, " ;; if-else\n") val () = (emit_nspc (out, ind); emit_RPAREN (out)) } (* end of [Some] *) end // end of [ATSif] // | ATSifthen(d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "(if") val () = emit_SPACE (out) val () = emit_d0exp (out, d0e) val () = emit_SPACE (out) val () = emit_instr (out, ins) val () = emit_RPAREN (out) } // | ATSifnthen(d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "(if") val () = emit_SPACE (out) val () = emit_not_d0exp (out, d0e) val () = emit_SPACE (out) val () = emit_instr (out, ins) val () = emit_RPAREN (out) } // | ATSbranchseq(inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ATSbranchseq(...)") } // | ATScaseofseq(inss) => { // val () = the_caselevel_inc() // val tls = caseofseq_get_tmplablst(ins0) // end of [val] val () = the_branchlablst_set(tls) // val () = emit_nspc (out, ind) val () = emit_text (out, "(let[\n") (* val () = emit_nspc (out, ind) val () = emit_text (out, ";while(true) {\n") *) // val fx = the_casefnxx_new() // val () = ( emit_nspc(out, ind+2); emit_casefnxx(out, fx); emit_ENDL(out) ) (* end of [val] *) val () = ( emit_nspc(out, ind+2); emit_text(out, "(fn "); emit_casefnxx (out, fx); emit_text(out, "[tmplab](case tmplab\n") ) (* end of [val] *) // val () = ( emit2_branchseqlst(out, ind+4, inss) ) (* end of [val] *) // val () = emit_nspc(out, ind+3) val () = emit_text(out, ") ;; end-of-case\n") // val () = emit_nspc(out, ind+2) val () = emit_text(out, ") ;; end-of-casefnx\n") // val () = emit_nspc(out, ind+1) val () = ( emit_text(out, "] "); emit_casefnxx2(out, fx, 1); emit_ENDL(out) ) (* end of [val] *) val () = emit_nspc(out, ind+0) val () = emit_text(out, ") ;; end-of-let(casefnx)") // end of [val] // val ((*dec*)) = the_caselevel_dec() val ((*out*)) = the_branchlablst_unset((*void*)) // } (* end of [ATScaseofseq] *) // | ATSreturn (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; return ") val () = emit_tmpvar (out, tmp) val () = emit_SEMICOLON (out) } | ATSreturn_void (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; return/*_void*/") val () = emit_SEMICOLON (out) } // | ATSINSlab (lab) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; case ") val () = ( emit_tmplab_index (out, lab); emit_COLON (out) ) (* end of [val] *) val () = ( emit_text (out, " // "); emit_label (out, lab) ) (* end of [val] *) } (* end of [ATSINSlab] *) // | ATSINSgoto (lab) => { // val () = emit_nspc (out, ind) val () = emit_casefnx2 (out, tmplab_get_index(lab)) // } (* end of [ATSINSgoto] *) // | ATSINSflab (flab) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_label (out, flab) } (* end of [ATSINSflab] *) // | ATSINSfgoto(flab) => { val () = emit_nspc(out, ind) // val () = let val fi = funlab_get_index (flab) // end of [val] val () = the_funlabind_set(fi) in emit_text (out, ";; funlab_clj = "); emit_int (out, fi) end (* end of [val] *) // val () = (emit_text (out, "; // "); emit_label (out, flab)) } (* end of [ATSINSfgoto] *) // | ATSINSfreeclo (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_text (out, "ATSINSfreeclo") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSfreecon (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_text (out, "ATSINSfreecon") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } // | ATSINSmove (tmp, d0e) => { // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // end of [val] // val () = if isret then ( emit_d0exp (out, d0e) ) (* end of [then] *) else ( emit_LPAREN(out); emit_tmpvar_set(out, tmp); emit_SPACE(out); emit_d0exp(out, d0e); emit_RPAREN(out); ) (* end of [else] *) // end of [if] // } (* end of [ATSINSmove] *) // | ATSINSmove_void (tmp, d0e(*command*)) => let val () = emit_nspc (out, ind) in case+ d0e.d0exp_node of // case+ | ATSPMVempty _ => emit_text (out, "ATSINSmove0_void") // end of [ATSempty] | _ (*non-ATSPMVempty*) => emit_fname_d0exp (out, "ATSINSmove1_void", d0e) // end of [non-ATSPMVempty] end (* end of [ATSINSmove_void] *) // | ATSINSmove_nil(tmp) => { // val () = emit_nspc(out, ind) // val isret = tmpvar_is_tmpret(tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_text(out, "atscc2clj_null") // end of [val] // val () = if isnot then emit_RPAREN(out) // } // | ATSINSmove_con0(tmp, tag) => { // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret(tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_PMVint(out, tag) // val () = if isnot then emit_RPAREN(out) // } // | ATSINSmove_con1 _ => emit2_ATSINSmove_con1 (out, ind, ins0) // | ATSINSmove_boxrec _ => emit2_ATSINSmove_boxrec (out, ind, ins0) // | ATSINSmove_delay _ => emit2_ATSINSmove_delay (out, ind, ins0) | ATSINSmove_lazyeval _ => emit2_ATSINSmove_lazyeval (out, ind, ins0) // | ATSINSmove_ldelay _ => emit2_ATSINSmove_ldelay (out, ind, ins0) | ATSINSmove_llazyeval _ => emit2_ATSINSmove_llazyeval (out, ind, ins0) // | ATStailcalseq(inss) => { // val () = emit2_tailcalseqlst(out, ind, inss) // } (* end of [ATStailcalseq] *) // | ATSINSmove_tlcal (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e) // val () = emit_SEMICOLON (out) } (* end of [ATSINSmove_tlcal] *) // | ATSINSargmove_tlcal (tmp1, tmp2) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_tmpvar (out, tmp1) val () = emit_text (out, " = ") val () = emit_tmpvar (out, tmp2) // val () = emit_SEMICOLON (out) } (* end of [ATSINSargmove_tlcal] *) // | ATSINSextvar_assign (ext, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_d0exp (out, ext) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } | ATSINSdyncst_valbind (d2c, d0e_r) => { val () = emit_nspc(out, ind) val () = emit_text(out, "(ATSINSdyncst_valbind ") val () = ( emit_i0de(out, d2c); emit_SPACE(out); emit_d0exp(out, d0e_r) ) (* end of [val] *) val () = emit_RPAREN (out) } // | ATSINScaseof_fail(errmsg) => { // val () = emit_nspc(out, ind) // val () = emit_text(out, "(ATSINScaseof_fail ") val () = ( emit_PMVstring(out, errmsg); emit_RPAREN(out) ) (* end of [val] *) // } | ATSINSdeadcode_fail(__tok__) => { val () = emit_nspc (out, ind) val () = emit_text (out, "(ATSINSdeadcode_fail)") } // | ATSdynload(dummy) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; (ATSdynload)") } // | ATSdynloadset(flag) => { val () = emit_nspc (out, ind) val () = emit_text ( out , ";; initizing flag is set\n" ) (* emit_text *) val () = emit_nspc (out, ind) val () = ( emit_text(out, "(ATSdynloadset "); emit_tmpvar(out, flag); emit_text(out, " 1)") ) (* end of [val] *) } // | ATSdynloadfcall(fcall) => { val () = emit_nspc (out, ind) val () = ( emit_LPAREN(out); emit_tmpvar(out, fcall); emit_RPAREN(out) ) (* end of [val] *) } // | ATSdynloadflag_sta(flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, ";; (ATSdynloadflag_sta ", flag, ")") } | ATSdynloadflag_ext(flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, ";; (ATSdynloadflag_ext ", flag, ")") } // | _ (*rest-of-instr*) => { val () = emit_nspc (out, ind) val ((*error*)) = fprint! (out, "UNRECOGNIZED-INSTRUCTION: ", ins0) } // end // end of [emit2_instr] (* ****** ****** *) implement emit2_instr_ln (out, ind, ins) = ( emit2_instr (out, ind, ins); emit_ENDL (out) ) (* end of [emit2_instr_ln] *) (* ****** ****** *) implement emit2_instrlst ( out, ind, inss ) = let // fun auxlst ( i: int, inss: instrlst ) : void = ( // case+ inss of | list_nil ((*void*)) => () | list_cons (ins, inss) => let val () = if i > 0 then emit_ENDL (out) val () = emit2_instr (out, ind, ins) in auxlst (i+1, inss) end // end of [list_cons] // ) // in auxlst (0, inss) end (* end of [emit2_instrlst] *) (* ****** ****** *) implement emit2_instrlst_end (out, ind, inss, sep) = ( // case+ inss of // | list_cons _ => let val () = emit2_instrlst (out, ind, inss) // end of [val] val () = emit_text (out, sep) in // nothing end // end of [list_cons] // | list_nil() => ((*error*)) // ) (* end of [emit2_instrlst_end] *) (* ****** ****** *) implement emit2_instrlst_sepln (out, ind, inss, sep) = { // val () = emit_nspc(out, ind) val () = emit_text(out, "(do\n") // val () = emit2_instrlst_end(out, ind+1, inss, "\n") // val () = emit_nspc(out, ind) val () = (emit_text(out, ")"); emit_text(out, sep)) // } (* end of [emit2_instrlst_sepln] *) (* ****** ****** *) implement emit2_branchlst (out, ind, inss) = let // fun emit_not_d0exp ( out: FILEref, d0e: d0exp ) : void = emit_fname_d0exp(out, "not", d0e) // fun auxins ( ind: int , tli: int, ins: instr ) : void = let in emit2_instr(out, ind, ins) end // end of [auxins] // fun auxinss0 ( ind: int, inss: instrlst ) : void = ( case inss of | list_nil((*void*)) => () | list_cons(ins1, inss1) => ( case+ ins1.instr_node of // case+ | ATSINSlab(lab) => let val tli1 = tmplab_get_index(lab) in auxinss1 (ind, tli1, inss1) end | _ (*non-ATSINSlab*) => auxinss0 (ind, inss1) ) ) // and auxinss1 ( ind: int , tli: int, inss: instrlst ) : void = let // val () = emit_nspc (out, ind) // val () = emit_int (out, tli) val () = emit_text(out, " (do\n") // val inss = auxinss2 (ind+1, tli, 0, inss) // val () = emit_ENDL(out) val () = emit_nspc(out, ind) val () = emit_text(out, ") ;; end-of-branch\n") // in auxinss0 (ind, inss) end (* end of [auxinss1] *) // and auxinss2 ( ind: int , tli: int, i: int, inss: instrlst ) : instrlst = ( case+ inss of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (ins1, inss1) => let val () = if i > 0 then emit_ENDL(out) in case+ ins1.instr_node of // case+ | ATSINSlab(lab) => let val () = emit_nspc (out, ind) val () = emit_casefnx2 (out, tli+1) in inss end // end of [ATSINSlab] | _ (*non-ATSINSlab*) => auxinsinss2 (ind, tli, i, ins1, inss1) end // end of [non-ATSINSlab] ) // and auxinss2_ ( ind: int , tli: int, i: int, inss: instrlst ) : instrlst = inss where { val () = emit_nspc(out, ind) val () = emit_text(out, "(do\n") val inss = auxinss2(ind+1, tli, i, inss) val _void_ = emit_ENDL(out) val _void_ = (emit_nspc(out, ind); emit_RPAREN(out)) } // and auxinsinss2 ( ind: int , tli: int, i: int , ins: instr, inss: instrlst ) : instrlst = ( case+ ins.instr_node of // case+ | ATSINSlab(lab) => let val () = emit_nspc (out, ind) val () = emit_casefnx2 (out, tli+1) in inss end // end of [ATSINSlab] // | ATSifthen (d0e, inss2) => let // val-list_cons (ins2, _) = inss2 // val () = emit_nspc (out, ind) val () = emit_text (out, "(if ") val () = ( emit_d0exp (out, d0e); emit_ENDL(out) ) (* end of [val] *) val () = emit2_instr_ln (out, ind+2, ins2) val inss = auxinss2_ (ind+2, tli, 0, inss) val _void_ = emit_ENDL (out) val _void_ = (emit_nspc (out, ind); emit_RPAREN (out)) in inss end // end of [ATSifthen] | ATSifnthen (d0e, inss2) => let // val-list_cons(ins2, _) = inss2 // val () = emit_nspc (out, ind) val () = emit_text (out, "(if ") val () = ( emit_not_d0exp (out, d0e); emit_ENDL(out) ) (* end of [val] *) // val () = emit2_instr_ln (out, ind+2, ins2) val inss = auxinss2_ (ind+2, tli, 0, inss) val _void_ = emit_ENDL(out) val _void_ = (emit_nspc(out, ind); emit_RPAREN(out)) in inss end // end of [ATSifnthen] // | _ (*rest-of-ATSINS*) => ( auxins (ind, tli, ins); auxinss2 (ind, tli, i+1, inss) ) (* end of [rest-of-ATSINS] *) // ) (* end of [auxinsinss2] *) // in auxinss0 (ind, inss) end // end of [emit2_branchlst] (* ****** ****** *) implement emit2_branchseqlst (out, ind, inss) = let // fun auxseq ( out: FILEref , ind: int, ins0: instr ) : void = let in // case- ins0.instr_node of // | ATSbranchseq (inss) => emit2_branchlst (out, ind, inss) // end of [ATSbranchseq] // end (* end of [auxseq] *) // fun auxseqlst ( out: FILEref , ind: int, inss: instrlst ) : void = let in // case+ inss of | list_nil ((*void*)) => () | list_cons (ins, inss) => let // val () = emit_nspc (out, ind) val () = emit_text (out, ";; ATSbranchseq_beg\n") // val () = auxseq (out, ind, ins) // (* val () = emit_nspc (out, ind) val () = emit_text (out, "break;\n") *) // val () = emit_nspc (out, ind) val () = emit_text (out, ";; ATSbranchseq_end\n") // in auxseqlst (out, ind, inss) end (* end of [list_cons] *) // end (* end of [auxseqlst] *) // val () = auxseqlst (out, ind, inss) // val () = emit_nspc (out, ind) val () = emit_text (out, ";; (else (atscc2clj_caseof_deadcode _FILE_ _LINE_))\n") // in // nothing end // end of [emit2_branchseqlst] (* ****** ****** *) implement emit2_tailcalseqlst (out, ind, inss) = let // fun auxenvlst ( out: FILEref, i: int, xs: f0arglst ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => ( case+ x.f0arg_node of // case+ | F0ARGnone _ => () | F0ARGsome(arg, s0e) => if tmpvar_is_env(arg.i0dex_sym) then ( (if i > 0 then emit_SPACE(out)); emit_tmpvar(out, arg); auxenvlst(out, i+1, xs) ) (* end of [then] *) // end of [F0ARGsome] ) (* end of [list_cons] *) ) // fun auxarglst ( out: FILEref, i: int, xs: instrlst ) : void = ( case+ xs of | list_nil () => () | list_cons(x, xs) => ( case+ x.instr_node of | ATSINSmove_tlcal (_, d0e) => let val () = if i > 0 then emit_text(out, " ") // end of [if] val () = emit_d0exp(out, d0e) in auxarglst(out, i+1, xs) end // end of [ATSINSmove_tlcal] | _(*non-ATSINSmove_tlcal*) => () ) ) // val () = emit2_instrlst(out, ind, inss) // val knd = the_funbodyknd_get() val-Some(fhd) = the_f0headopt_get() // in // case+ fhd.f0head_node of // case+ | F0HEAD (fid, f0ma, res) => { // val () = emit_ENDL(out) val () = emit_nspc(out, ind) (* val () = emit_text(out, ";; ") *) // val () = emit_LPAREN(out) // val l0 = the_caselevel_get() // end of [val] val () = if (l0 = 0) then ( emit_text(out, "recur") ) else emit_i0de(out, fid) // end of [val] // val () = if knd >= 2 then let val () = if (l0 = 0) then emit_text(out, " ") else emit_text(out, "__ ") // end of [val] in emit_int (out, the_funlabind_get()) // emit_int end // end of [then] // end of [val] // val xs = f0ma.f0marg_node val () = auxenvlst(out, 1, xs) // val () = auxarglst (out, 1, inss) // val () = emit_RPAREN (out) // } (* end of [F0HEAD] *) // end // end of [emit2_tailcalseqlst] (* ****** ****** *) implement emit2_ATSfunbodyseq (out, ind, ins) = let // val-ATSfunbodyseq(inss) = ins.instr_node // in emit2_instrlst_end (out, ind, inss, "\n") end // end of [emit2_ATS2funbodyseq] (* ****** ****** *) // (* datatype tyfld_node = TYFLD of (i0de, s0exp) typedef tyfld = '{ tyfld_loc= loc_t , tyfld_node= tyfld_node } (* end of [tyfld] *) // typedef tyfldlst = List0 (tyfld) // typedef tyrec = '{ tyrec_loc= loc_t, tyrec_node= tyfldlst } (* end of [tyrec] *) *) // extern fun emit_tyrec (FILEref, tyrec): void // implement emit_tyrec (out, s0rec) = let // fun auxlst ( i: int, tfs: tyfldlst ) : void = ( case+ tfs of // | list_nil() => () // | list_cons (tf, tfs) => let val+TYFLD(id, _) = tf.tyfld_node val () = if i > 0 then emit_text(out, ", ") // end of [val] val ((*void*)) = emit_i0de(out, id) in auxlst (i+1, tfs) end // end of [list_cons] ) // val () = emit_LBRACE(out) val () = auxlst(0, s0rec.tyrec_node) val () = emit_RBRACE(out) // in // nothing end // end of [emit_tyrec] // extern fun emit_typedef (FILEref, i0de, tyrec): void // implement emit_typedef (out, id, s0rec) = let // val () = emit_text(out, "-record") // val () = emit_LPAREN(out) val () = emit_i0de(out, id) val () = emit_text(out, ", ") val () = emit_tyrec(out, s0rec) val () = emit_RPAREN(out) val () = emit_text(out, ".\n") // in end // end of [emit_typedef] // extern fun emit_tyrec_d0explst_1 (FILEref, d0explst): void extern fun emit_tysum_d0explst_1 (FILEref, tag: tokenopt, d0explst): void // implement emit_tyrec_d0explst_1 (out, d0es) = ( emit_d0explst_1 (out, d0es) ) // end of [emit_tyrec_d0explst] implement emit_tysum_d0explst_1 (out, opt, d0es) = ( // case+ opt of | None() => emit_d0explst_1 (out, d0es) | Some(tag) => let val () = emit_SPACE(out) val () = emit_PMVint(out, tag) in emit_d0explst_1 (out, d0es) end // end of [Some] // ) // end of [emit_tysum_d0explst] // (* ****** ****** *) implement emit2_ATSINSmove_con1 (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_con1_ofs (_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_con1(inss) = ins0.instr_node // val-list_cons(ins, inss) = inss val-ATSINSmove_con1_new(tmp, _) = ins.instr_node // var opt: tokenopt = None() // val inss = ( case+ inss of | list_nil () => inss | list_cons (ins, inss2) => ( case+ ins.instr_node of // case+ | ATSINSstore_con1_tag (tmp, tag) => let val () = opt := Some(tag) in inss2 end // end of [ATSINSstore_con1_tag] | _ (*non-ATSINSstore_con1_tag*) => inss ) ) : instrlst // val d0es = getarglst (inss) // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret(tmp.i0dex_sym) // end of [val] // val isnot = not(isret) // val () = if isnot then { // val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // (* val () = emit_SHARP (out) val () = emit_symbol (out, name) *) val () = emit_LPAREN(out) // val () = emit_text(out, "ATSPMVtysum") val () = emit_tysum_d0explst_1 (out, opt, d0es) // val () = emit_RPAREN(out) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_con1] (* ****** ****** *) implement emit2_ATSINSmove_boxrec (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_boxrec_ofs(_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_boxrec(inss) = ins0.instr_node // val-list_cons(ins, inss) = inss val-ATSINSmove_boxrec_new(tmp, _) = ins.instr_node // val d0es = getarglst (inss) // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // (* val () = emit_SHARP (out) val () = emit_symbol (out, name) *) val () = emit_LPAREN(out) // val () = emit_text(out, "ATSPMVtyrec") val () = emit_tyrec_d0explst_1 (out, d0es) // val () = emit_RPAREN(out) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_boxrec] (* ****** ****** *) implement emit2_ATSINSmove_delay (out, ind, ins0) = let // val- ATSINSmove_delay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { // val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_fname_d0exp (out, "ATSPMVlazyval", thunk) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_delay] (* ****** ****** *) implement emit2_ATSINSmove_lazyeval (out, ind, ins0) = let // val- ATSINSmove_lazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { // val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_fname_d0exp (out, "ATSPMVlazyval_eval", lazyval) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_lazyeval] (* ****** ****** *) implement emit2_ATSINSmove_ldelay (out, ind, ins0) = let // val- ATSINSmove_ldelay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { // val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_fname_d0exp (out, "ATSPMVllazyval", thunk) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_ldelay] (* ****** ****** *) implement emit2_ATSINSmove_llazyeval (out, ind, ins0) = let // val- ATSINSmove_llazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { // val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_fname_d0exp (out, "ATSPMVllazyval_eval", lazyval) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_llazyeval] (* ****** ****** *) // #define ATSEXTCODE_BEG ";;\n;; ATSextcode_beg()\n;;" #define ATSEXTCODE_END ";;\n;; ATSextcode_end()\n;;" // (* ****** ****** *) // fun emit_i0de_declare (out: FILEref, id: i0de): void = ( emit_text(out, "(declare "); emit_i0de(out, id); emit_text(out, ")\n") ) // (* ****** ****** *) implement emit_d0ecl (out, d0c) = let in // case+ d0c.d0ecl_node of // case+ // | D0Cinclude _ => () // | D0Cifdef _ => () | D0Cifndef _ => () // | D0Ctypedef (id, def) => let (* val () = emit_typedef(out, id, def) // end of [val] *) in (* typedef_insert (id.i0dex_sym, def) *) end // end of [D0Ctypedef] // | D0Cassume(id) => { val () = emit_ENDL(out) val () = emit_text(out, ";; ATSassume(") val () = ( emit_i0de(out, id); emit_text(out, ")\n") ) (* end of [val] *) } // | D0Cdyncst_mac(id) => () (* { val () = emit_i0de_declare(out, id) } *) | D0Cdyncst_extfun(id, _, _) => { val () = emit_i0de_declare(out, id) } // | D0Cdyncst_valdec _ => () // | D0Cdyncst_valimp (id, s0e) => { val () = emit_ENDL(out) val () = ( emit_text(out, "(def "); emit_i0de(out, id); emit_text(out, " nil)") ) (* end of [val] *) val () = emit_ENDL(out) } // | D0Cextcode(toks) => { val () = emit_ENDL (out) val () = emit_text (out, ATSEXTCODE_BEG) // end of [val] val () = emit_extcode (out, toks) // HX: verbatim output val () = emit_text (out, ATSEXTCODE_END) // end of [val] val ((*void*)) = emit_newline (out) } (* end of [D0Cextcode] *) // | D0Cstatmp(tmp, opt) => { val () = emit_ENDL(out) val () = ( case+ opt of | Some _ => () | None _ => emit_text(out, "/*\n") ) (* end of [val] *) val () = ( emit_text(out, "(def "); emit_tmpvar(out, tmp); emit_text(out, " nil)\n") ) (* end of [val] *) val () = ( case+ opt of | Some _ => () | None _ => emit_text(out, "*/\n") ) (* end of [val] *) } (* end of [D0Cstatmp] *) // | D0Cfundecl(fk, f0d) => emit_f0decl(out, f0d) // | D0Cclosurerize (fl, env, arg, res) => { val () = emit_closurerize (out, fl, env, arg, res) } // | D0Cdynloadflag_init (flag) => ( // // HX-2015-05-22: // it is skipped as Clojure does not have a link-time! // ) (* end of [D0Cdynloadflag_init] *) // | D0Cdynloadflag_minit (flag) => ( emit_text(out, ";; dynloadflag_minit\n"); emit_text(out, "(def "); emit_tmpvar(out, flag); emit_text(out, " 0)\n") ) (* end of [D0Cdynloadflag_minit] *) // | D0Cdynexn_dec(idexn) => ( emit_text(out, ";; dynexn_dec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_dec] *) | D0Cdynexn_extdec(idexn) => ( emit_text(out, ";; dynexn_extdec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_extdec] *) | D0Cdynexn_initize(idexn, fullname) => ( emit_text(out, ";; dynexn_initize("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_initize] *) // end // end of [emit_d0ecl] (* ****** ****** *) // extern fun emit_f0arg : emit_type (f0arg) // extern fun emit_f0marg_0 : emit_type (f0marg) extern fun emit_f0marg_1 : emit_type (f0marg) // extern fun emit_f0head : emit_type (f0head) // extern fun emit_f0headbd : emit_type (f0head) extern fun emit_f0headhd : emit_type (f0head) // extern fun emit_f0body : emit_type (f0body) extern fun emit_f0body_0 : emit_type (f0body) extern fun emit_f0body_tlcal : emit_type (f0body) extern fun emit_f0body_tlcal2 : emit_type (f0body) // (* ****** ****** *) implement emit_f0arg (out, f0a) = let in // case+ f0a.f0arg_node of // case+ // | F0ARGnone _ => emit_text(out, "__NONE__") | F0ARGsome(arg, s0e) => emit_tmpvar(out, arg) // end // end of [emit_f0arg] (* ****** ****** *) local fun loop ( out: FILEref, f0as: f0arglst, i: int ) : void = ( case+ f0as of | list_nil() => () | list_cons(f0a, f0as) => let val () = if i > 0 then emit_SPACE(out) // end of [val] in emit_f0arg (out, f0a); loop (out, f0as, i+1) end // end of [list_cons] ) in (* in-of-local *) implement emit_f0marg_0 (out, f0ma) = ( loop (out, f0ma.f0marg_node, 0) ) (* end of [emit_f0marg_0] *) implement emit_f0marg_1 (out, f0ma) = ( loop (out, f0ma.f0marg_node, 1) ) (* end of [emit_f0marg_0] *) end // end of [local] (* ****** ****** *) implement emit_f0head (out, fhd) = let in // case+ fhd.f0head_node of // case+ | F0HEAD (fid, f0ma, res) => { // val () = emit_nspc(out, 1) val () = emit_i0de(out, fid) // end of [val] // val () = emit_LBRACKET(out) // val () = emit_f0marg_0(out, f0ma) // val () = emit_RBRACKET(out) // } // end // end of [emit_f0head] (* ****** ****** *) implement emit_f0headbd (out, fhd) = let in // case+ fhd.f0head_node of // case+ | F0HEAD (fid, f0ma, res) => { // val () = ( emit_text(out, "(declare\n ") ) // end of [val] val () = ( emit_i0de(out, fid); emit_text(out, "__") ) val () = emit_text(out, "\n)\n") // val () = emit_LPAREN(out) // val () = ( emit_i0de(out, fid); emit_text(out, "__"); ) (* end of [val] *) // val () = ( emit_text(out, " 1"); emit_f0marg_1(out, f0ma) ) (* end of [val] *) // val () = emit_text (out, ")\n") // } (* F0HEAD *) // end // end of [emit_f0headbd] implement emit_f0headhd (out, fhd) = let in // case+ fhd.f0head_node of // case+ | F0HEAD (fid, f0ma, res) => { // val () = ( emit_i0de(out, fid); emit_text(out, "__"); ) (* end of [val] *) // val () = emit_LBRACKET(out) // val () = ( emit_text(out, "funlab"); emit_f0marg_1(out, f0ma) ) (* end of [val] *) // val () = emit_RBRACKET(out) // } (* F0HEAD *) // end // end of [emit_f0headhd] (* ****** ****** *) implement emit_f0body (out, fbody) = let // val k0 = f0body_classify(fbody) // val () = the_funbodyknd_set(k0) // (* // val () = println! ("emit_f0body: knd = ", k0) // *) // val () = the_casefnxx_reset() // val tmpdecs = f0body_get_tmpdeclst(fbody) val inss_body = f0body_get_bdinstrlst(fbody) // val () = the_tmpdeclst_set(tmpdecs) val () = the_funbodylst_set(inss_body) // val () = emit_text(out, "\n(\n") val () = emit_text(out, "with-local-vars\n[\n") // val () = emit_text(out, ";;knd = ") val () = (emit_int(out, k0); emit_ENDL(out)) // val () = emit_tmpdeclst_initize (out, tmpdecs) // val () = if k0 > 0 then { // val () = emit_text(out, ";;var funlab_clj\n") // } (* end of [if] *) // end of [val] // val () = emit_text(out, ";;var tmplab,tmplab_clj\n") // val () = emit_text (out, "] ;; with-local-vars\n") // val () = ( // case+ k0 of | 0 => emit_f0body_0 (out, fbody) | 1 => emit_f0body_tlcal (out, fbody) | 2 => emit_f0body_tlcal2 (out, fbody) | _ => let val () = assertloc(false) in (*nothing*) end // ) : void // end of [val] // val () = emit_text (out, ") ;; end-of-with-local-vars\n") // in // nothing end (* end of [emit_f0body] *) (* ****** ****** *) implement emit_f0body_0 (out, fbody) = let // fun auxlst ( out: FILEref, i: int, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => let val-list_cons(ins1, inss2) = inss1 // val () = if i > 0 then emit_ENDL(out) // val () = emit2_ATSfunbodyseq(out, 2(*ind*), ins0) // end of [val] (* val ((*ret*)) = emit2_instr_ln (out, 2(*ind*), ins1) *) // in auxlst (out, i+1, inss2) end // end of [list_cons] // ) (* end of [auxlst] *) // in // case+ fbody.f0body_node of // case+ // | F0BODY (tds, inss) => { val () = auxlst (out, 0(*i*), inss) } // end // end of [emit_f0body_0] (* ****** ****** *) // extern fun emit_f0headopt_loop ( FILEref, int(*knd*), int(*ind*) ) : void // end-of-fun // implement emit_f0headopt_loop (out, knd, ind) = let // fun auxlst ( xs: f0arglst ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => auxlst(xs) where { val () = emit_nspc(out, ind+3) // end of [val] val () = ( emit_f0arg(out, x); emit_SPACE(out); emit_f0arg(out, x); emit_ENDL(out) ) (* end of [val] *) } ) // val () = ( emit_nspc(out, ind+1); emit_text(out, "(loop [\n") ) // val () = if knd >= 2 then (emit_nspc(out, ind+3); emit_text(out, "funlab\n"); emit_nspc(out, ind+3); emit_text(out, "funlab\n")) // val () = ( // case+ the_f0headopt_get() of // case+ | None() => () | Some(fhd) => ( case+ fhd.f0head_node of // case+ | F0HEAD(fid, f0ma, res) => auxlst(f0ma.f0marg_node) ) // ) (* end of [val] *) // val () = ( emit_nspc(out, ind+1); emit_text(out, " ]") ) // in // nothing end // end of [emit_f0headopt_loop] // (* ****** ****** *) implement emit_f0body_tlcal (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => () where { val- list_cons(ins1, inss2) = inss1 // val () = emit2_ATSfunbodyseq(out, 4(*ind*), ins0) // val () = emit_nspc (out, 4(*ind*)) val () = emit_text ( out , ";; if (funlab_clj > 0) continue; else" ) (* emit_text *) val () = emit2_instr_ln (out, 1(*ind*), ins1) // end of [val] // (* val ((*rest*)) = auxlst (out, inss2(*nil*)) *) } (* end of [list_cons] *) // ) (* end of [auxlst] *) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, ";while(true){\n") // val () = emit_f0headopt_loop (out, 1(*knd*), 2(*ind*)) // val () = emit_text (out, " ; funlab_clj = 0;\n") // val () = ( // case+ fbody.f0body_node of F0BODY(tds, inss) => auxlst(out, inss) // ) (* end of [val] *) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, ") ;} // endwhile-fun\n") // in // nothing end // end of [emit_f0body_tlcal] (* ****** ****** *) // extern fun emit_the_funbodylst (out: FILEref): void // implement emit_the_funbodylst (out) = let // fun auxfun ( out: FILEref , ins0: instr, ins1: instr, i: int ) : void = let // val-ATSfunbodyseq(inss) = ins0.instr_node // val-list_cons (ins_fl, inss) = inss val-ATSINSflab (fl) = ins_fl.instr_node // val () = emit_nspc(out, 6); val () = ( emit_text(out, ";case "); emit_int(out, i); emit_text(out, ": {\n") ) val () = emit_nspc(out, 6); val () = ( emit_int(out, i); emit_text(out, (" (do\n")) ) // // val () = emit_nspc (out, 8) val () = emit_text (out, ";; funlab_clj = 0;\n") val () = emit2_instrlst_end (out, 8(*ind*), inss, ";\n") // val () = emit_nspc (out, 8) val () = emit_text ( out, ";; if (funlab_clj > 0) continue; else" ) (* end of [val] *) val () = emit2_instr_ln (out, 1(*ind*), ins1) // val () = emit_nspc (out, 6) val () = emit_text (out, ") ;} // end-of-case\n") // in // nothing end // end of [auxfun] // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( case+ inss of | list_nil () => () | list_cons _ => let val-list_cons (ins0, inss) = inss val-list_cons (ins1, inss) = inss val () = auxfun (out, ins0, ins1, i) in auxlst (out, inss, i+1) end // end of [auxlst] ) (* end of [auxlst] *) // in auxlst(out, the_funbodylst_get(), 1(*first*)) end // end of [emit_the_funbodylst] // (* ****** ****** *) implement emit_f0body_tlcal2 (out, fbody) = let // val () = emit_nspc(out, 2(*ind*)) val () = emit_text(out, ";; funlab_clj = 1;\n") // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, ";while(true){\n") // val () = emit_f0headopt_loop (out, 2(*knd*), 2(*ind*)) // val () = emit_text (out, " ;switch(funlab_clj) {\n") // val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "(case funlab\n") // val () = emit_the_funbodylst (out) // val () = emit_nspc (out, 4(*ind*)) val ((*closing*)) = emit_text (out, ") ;} // end-of-switch\n") // val () = emit_nspc (out, 2(*ind*)) val ((*closing*)) = emit_text (out, ") ;} // endwhile-fun\n") // in // nothing end // end of [emit_f0body_tlcal2] (* ****** ****** *) implement emit_f0decl (out, fdec) = let // (* val () = println!("emit_f0decl") *) // in // case+ fdec.f0decl_node of // case+ | F0DECLnone(fhd) => { val () = the_f0headopt_set(fhd) // end of [val] } | F0DECLsome(fhd, fbody) => { // val () = the_f0headopt_set(fhd) // end of [val] // val () = emit_text (out, "\n;;fun\n") val () = emit_text (out, "(defn\n") // val () = emit_f0head (out, fhd) // val k0 = f0body_classify(fbody) // val () = if k0 >= 2 then { val () = emit_ENDL (out) val () = emit_f0headbd (out, fhd) val () = emit_text (out, ") ;; end-of-fun\n") val () = emit_text (out, "(defn\n") // end of [val] val () = emit_f0headhd(out, fhd) } // val () = emit_f0body(out, fbody) // val () = emit_text(out, ") ;; end-of-fun\n") // val ((*endfun*)) = emit_newline(out) // } (* end of [F0DECLsome] *) // end // end of [emit_f0decl] (* ****** ****** *) // extern fun emit_f0head_declare ( out: FILEref, fhd: f0head ) : void // end-of-function // implement emit_f0head_declare (out, fhd) = ( case+ fhd.f0head_node of // case+ | F0HEAD ( fid, f0ma, res ) => emit_i0de_declare(out, fid) // end of [F0HEAD] ) (* end of [emit_f0head_declare] *) // (* ****** ****** *) implement emit_toplevel (out, d0cs) = let // fun aux1 ( d0c: d0ecl ) : void = ( // case+ d0c.d0ecl_node of // case+ // | D0Ctypedef (id, def) => ( typedef_insert(id.i0dex_sym, def) ) // | D0Cfundecl (fk, f0d) => ( case+ f0d.f0decl_node of // case+ | F0DECLnone(fhd) => let val () = f0head_insert(fhd) // end of [val] in emit_f0head_declare(out, fhd) end // end of [F0DECLnone] | F0DECLsome(fhd, _) => let val () = f0head_insert(fhd) // end of [val] in emit_f0head_declare(out, fhd) end // end of [F0DECLsome] ) // | _(* rest-of-D0C *) => () // ) (* end of [aux1] *) // fun auxlst1 ( d0cs: d0eclist ) : void = ( // case+ d0cs of | list_nil () => () | list_cons (d0c, d0cs) => ( aux1 (d0c); auxlst1 (d0cs) ) // end of [list_cons] // ) // fun auxlst2 ( out: FILEref, d0cs: d0eclist ) : void = ( // case+ d0cs of | list_nil () => () | list_cons (d0c, d0cs) => let val () = emit_d0ecl (out, d0c) // end of [val] in auxlst2 (out, d0cs) end // end of [list_cons] // ) // val () = auxlst1 (d0cs) // val () = emit_text (out, ";;;;;;\n\n") // val () = auxlst2 (out, d0cs) // in // nothing end // end of [emit_toplevel] (* ****** ****** *) (* end of [atscc2clj_emit2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2clj/Makefile0000644000175000017500000000216113431250607022362 0ustar brandonbrandon# # A simple Makefile # ###### MAKE=make ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### all:: ###### CATSPARSEMIT=./CATS-parsemit ###### SOURCES_DATS := SOURCES_DATS += DATS/atscc2clj_main.dats SOURCES_DATS += DATS/atscc2clj_emit.dats SOURCES_DATS += DATS/atscc2clj_emit2.dats SOURCES_SATS := SOURCES_SATS += $(CATSPARSEMIT)/SATS/catsparse.sats SOURCES_CATS := SOURCES_CATS += $(CATSPARSEMIT)/CATS/catsparse_all_dats.c ###### # all:: ; \ $(MAKE) -C CATS-parsemit all # ###### # all:: \ bin_atscc2clj bin_atscc2clj: \ $(SOURCES_DATS); \ $(PATSCC) \ -DATS_MEMALLOC_GCBDW -O2 -o bin/atscc2clj \ $(SOURCES_DATS) $(SOURCES_SATS) $(SOURCES_CATS) -lgc # ###### # npm:: bin_atscc2clj npm:: ; $(CPF) catsparse_sats.c atscc2clj_*_dats.c npm/CATS/. # ###### CPF=cp -f RMF=rm -f ###### # testall:: all testall:: cleanall # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### # cleanall:: clean # cleanall:: ; $(RMF) ./bin/atscc2clj cleanall:: ; $(RMF) ./npm/CATS/catsparse_sats.c cleanall:: ; $(RMF) ./npm/CATS/atscc2clj_*_dats.c # ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/0000755000175000017500000000000013431250607020521 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/basics_r34.sats0000644000175000017500000000617613431250607023363 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_PACKNAME "ATSCC2R34.basics" #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #include "{$LIBATSCC}/basics.sats" // (* ****** ****** *) (* typedef char = int *) (* ****** ****** *) // abstype optarg // nominal // (* ****** ****** *) // abstype R34obj // generic // abstype R34filr // nominal! // (* ****** ****** *) // abstype R34factor(n:int) // abstype R34list(a:t@ype, n:int) abstype R34vector(a:t@ype, n:int) abstype R34dframe(a:t@ype, m:int, n:int) abstype R34matrix(a:t@ype, m:int, n:int) // (* ****** ****** *) // praxi lemma_R34factor_param {n:int} (R34factor(n)): [n >= 0] void // praxi lemma_R34dframe_param {a:t@ype}{m,n:int} (R34dframe(a, m, n)): [m >= 0; n >= 0] void praxi lemma_R34matrix_param {a:t@ype}{m,n:int} (R34matrix(a, m, n)): [m >= 0; n >= 0] void // praxi lemma_R34list_param {a:t@ype}{n:int}(R34list(a, n)): [n >= 0] void praxi lemma_R34vector_param {a:t@ype}{n:int}(R34vector(a, n)): [n >= 0] void // (* ****** ****** *) typedef R34factor ( // argless ) = [n:nat] R34factor(n) (* ****** ****** *) // typedef R34list ( a:t@ype ) = [n:nat] R34list(a:t@ype, n) // typedef R34vector ( a:t@ype ) = [n:nat] R34vector(a:t@ype, n) // typedef R34dframe (a:t@ype) = [m,n:nat] R34dframe(a:t@ype, m, n) // typedef R34matrix (a:t@ype) = [m,n:nat] R34matrix(a:t@ype, m, n) // (* ****** ****** *) // castfn R34vector_int2double {n:int} (R34vector(int, n)):<> R34vector(double, n) castfn R34matrix_int2double {m,n:int} (R34matrix(int, m, n)):<> R34matrix(double, m, n) // overload int2double with R34vector_int2double overload int2double with R34matrix_int2double // (* ****** ****** *) // fun lazy2cloref {a:t@ype} (lazy(a)): ((*void*)) - (a) = "mac#%" // (* ****** ****** *) // fun assert_errmsg_bool0 (claim: bool, msg: string): void = "mac#%" fun assert_errmsg_bool1 {b:bool} (claim: bool(b), msg: string): [b] void = "mac#%" // overload assert_errmsg with assert_errmsg_bool0 of 100 overload assert_errmsg with assert_errmsg_bool1 of 110 // macdef assertloc(claim) = assert_errmsg(,(claim), $mylocation) // (* ****** ****** *) // (* typedef strchr = string(1) *) // (* ****** ****** *) // fun fun2cloref0 {res:t@ype} (fopr: () -> res): cfun(res) = "mac#%" fun fun2cloref1 {a:t@ype}{res:t@ype} (fopr: (a) -> res): cfun(a, res) = "mac#%" fun fun2cloref2 {a1,a2:t@ype}{res:t@ype} (fopr: (a1, a2) -> res): cfun(a1, a2, res) = "mac#%" fun fun2cloref3 {a1,a2,a3:t@ype}{res:t@ype} (fopr: (a1, a2, a3) -> res): cfun(a1, a2, a3, res) = "mac#%" // (* ****** ****** *) // fun cloref2fun0 {res:t@ype} (fopr: cfun(res)): (() -> res) = "mac#%" fun cloref2fun1 {a:t@ype}{res:t@ype} (fopr: cfun(a, res)): ((a) -> res) = "mac#%" fun cloref2fun2 {a1,a2:t@ype}{res:t@ype} (fopr: cfun(a1, a2, res)): ((a1, a2) -> res) = "mac#%" fun cloref2fun3 {a1,a2,a3:t@ype}{res:t@ype} (fopr: cfun(a1, a2, a3, res)): ((a1, a2, a3) -> res) = "mac#%" // (* ****** ****** *) (* end of [basics_r34.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/0000755000175000017500000000000013431250607021254 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/R34dframe.dats0000644000175000017500000000163713431250607023667 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" #define ATS_STATIC_PREFIX "_ats2r34pre_R34dframe_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_r34.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/R34vector.sats" #staload "./../SATS/R34dframe.sats" // (* ****** ****** *) implement R34dfram_dimgt (df, i, j) = ( $UN.cast(nrow(df) > i andalso ncol(df) > j) ) (* end of [R34dfram_dimgt] *) implement R34dfram_dimgte (df, i, j) = ( $UN.cast(nrow(df) >= i andalso ncol(df) >= j) ) (* end of [R34dfram_dimgte] *) (* ****** ****** *) (* end of [R34dframe.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/R34matrix.dats0000644000175000017500000000203013431250607023721 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" #define ATS_STATIC_PREFIX "_ats2r34pre_R34matrix_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_r34.sats" // staload "./../SATS/R34matrix.sats" // (* ****** ****** *) // implement solve_R34matrix {n} (xss) = ( $extfcall ( R34matrix(double, n, n), "solve", xss ) ) (* solve_R34matrix *) // implement solve_R34matrix_R34vector {n} (xss, ys0) = ( $extfcall(R34vector(double, n), "solve", xss, ys0) ) (* solve_R34matrix_R34vector *) // (* ****** ****** *) // implement R34matrix_tabulate_cloref {a}(*tmp*) (m0, n0, fopr) = R34matrix_tabulate_fun{a}(m0, n0, cloref2fun2(fopr)) // (* ****** ****** *) (* end of [R34matrix.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/intrange.dats0000644000175000017500000000137613431250607023747 0ustar brandonbrandon(* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" #define ATS_STATIC_PREFIX "_ats2r34pre_intrange_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload "./../basics_r34.sats" // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/intrange.dats" // (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/list.dats0000644000175000017500000000201613431250607023103 0ustar brandonbrandon(* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" #define ATS_STATIC_PREFIX "_ats2r34pre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_r34.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" // (* ****** ****** *) // #staload "./../SATS/stream.sats" #staload _ = "./../DATS/stream.dats" // #staload "./../SATS/stream_vt.sats" #staload _ = "./../DATS/stream_vt.dats" // (* ****** ****** *) #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list.dats" // (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/option.dats0000644000175000017500000000124113431250607023437 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" #define ATS_STATIC_PREFIX "_ats2r34pre_option_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/option.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/option.dats" // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/stream.dats0000644000175000017500000000225513431250607023430 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" #define ATS_STATIC_PREFIX "_ats2r34pre_stream_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_r34.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" // #staload "./../SATS/stream.sats" // (* ****** ****** *) (* #define ATSCC_ARRAYREF 1 #define ATSCC_REFERENCE 1 *) (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream.dats" // (* ****** ****** *) // extern fun StreamSubscriptExn_throw{a:vt0p}(): (a) = "mac#%" // (* ****** ****** *) implement stream_nth_exn (xs, n) = let // val opt = stream_nth_opt(xs, n) // in // case+ opt of | ~Some_vt(x) => x | ~None_vt((*void*)) => StreamSubscriptExn_throw() // end // end of [stream_nth_exn] (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/list_vt.dats0000644000175000017500000000136713431250607023624 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" #define ATS_STATIC_PREFIX "_ats2r34pre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_r34.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list_vt.dats" // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/stream_vt.dats0000644000175000017500000000163113431250607024136 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" #define ATS_STATIC_PREFIX "_ats2r34pre_stream_vt_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_r34.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // (* ****** ****** *) #staload "./../SATS/stream.sats" #staload "./../SATS/stream_vt.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream_vt.dats" // (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/R34vector.dats0000644000175000017500000000354213431250607023730 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" #define ATS_STATIC_PREFIX "_ats2r34pre_R34vector_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_r34.sats" // staload "./../SATS/R34vector.sats" // (* ****** ****** *) // implement R34vector_mean (xs) = $extfcall(double, "mean", xs) implement R34vector_mean (xs) = $extfcall(double, "mean", xs) // (* ****** ****** *) // implement R34vector_variance (xs) = $extfcall( double, "var", xs ) implement R34vector_variance (xs) = $extfcall( double, "var", xs ) // (* ****** ****** *) // implement R34vector_median (xs) = $extfcall(double, "stats::median", xs) implement R34vector_median (xs) = $extfcall(double, "stats::median", xs) // (* ****** ****** *) // implement R34vector_map_cloref {a}{b} (xs, fopr) = R34vector_map_fun{a}{b}(xs, cloref2fun1(fopr)) // (* ****** ****** *) // implement R34vector_foreach_cloref {a}(*tmp*) (xs, fopr) = R34vector_foreach_fun{a}(xs, cloref2fun1(fopr)) implement R34vector_iforeach_cloref {a}(*tmp*) (xs, fopr) = R34vector_iforeach_fun{a}(xs, cloref2fun2(fopr)) // (* ****** ****** *) // implement R34vector_foldleft_cloref {r}{a} (xs, init, fopr) = R34vector_foldleft_fun{r}{a}(xs, init, cloref2fun2(fopr)) // (* ****** ****** *) // implement R34vector_tabulate_cloref {a}(*tmp*) (n0, fopr) = R34vector_tabulate_fun{a}(n0, cloref2fun1(fopr)) // implement R34vector_tabulate2_cloref {a}(*tmp*) (n0, x0, fopr) = R34vector_tabulate2_fun{a}(n0, x0, cloref2fun2(fopr)) // (* ****** ****** *) (* end of [R34vector.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/ML/0000755000175000017500000000000013431250607021564 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/ML/option0.dats0000644000175000017500000000127013431250607024031 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_ML_" #define ATS_STATIC_PREFIX "_ats2r34pre_ML_option0_" // (* ****** ****** *) // // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_r34.sats" // (* ****** ****** *) // #staload "./../../SATS/ML/option0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/option0.dats" // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/DATS/ML/list0.dats0000644000175000017500000000524713431250607023504 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_ML_" #define ATS_STATIC_PREFIX "_ats2r34pre_ML_list0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_r34.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/list.sats" // (* ****** ****** *) // #staload "./../../SATS/stream.sats" // #staload "./../../SATS/stream_vt.sats" #staload _ = "./../../DATS/stream_vt.dats" // (* ****** ****** *) // #staload "./../../SATS/ML/list0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/list0.dats" // (* ****** ****** *) // implement list0_head_exn {a}(xs) = ( case+ xs of | list0_cons (x, _) => (x) // list0_cons | list0_nil() => ( $extfcall(a, "ats2r34pre_ListSubscriptExn_throw") ) (* list0_nil *) ) (* end of [list0_head_exn] *) // (* ****** ****** *) // implement list0_tail_exn {a}(xs) = ( case+ xs of | list0_cons (_, xs) => (xs) // list0_cons | list0_nil() => ( $extfcall (list0(a), "ats2r34pre_ListSubscriptExn_throw") // $extfcall ) (* list0_nil *) ) (* end of [list0_tail_exn] *) // (* ****** ****** *) implement list0_get_at_exn {a}(xs, n) = ( case+ xs of | list0_nil() => ( $extfcall(a, "ats2r34pre_ListSubscriptExn_throw") ) (* list0_nil *) | list0_cons(x, xs) => if n > 0 then list0_get_at_exn(xs, n-1) else (x) // end of [list0_cons] ) (* end of [list0_get_at_exn] *) // (* ****** ****** *) implement list0_insert_at_exn {a} ( xs, i0, x0 ) = aux(xs, i0) where { // fun aux ( xs: list0(a), i0: intGte(0) ) : list0(a) = ( if i0 > 0 then ( case+ xs of | list0_nil() => $extfcall (list0(a), "ats2r34pre_ListSubscriptExn_throw") // (* list0_nil *) | list0_cons(x, xs) => list0_cons(x, aux(xs, i0-1)) ) else list0_cons(x0, xs) ) (* end of [aux] *) // } (* end of [list0_insert_at_exn] *) (* ****** ****** *) implement list0_remove_at_exn {a} ( xs, i0 ) = aux(xs, i0) where { // fun aux ( xs: list0(a), i0: intGte(0) ) : list0(a) = ( case+ xs of | list0_nil() => $extfcall (list0(a), "ats2r34pre_ListSubscriptExn_throw") // (* list0_nil *) | list0_cons(x, xs) => if i0 > 0 then list0_cons(x, aux(xs, i0-1)) else xs ) // } (* end of [list0_remove_at_exn] *) (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/Makefile0000644000175000017500000000670413431250607022170 0ustar brandonbrandon###### # # For generating libatscc2r34 # ###### PATSOPT=$(PATSHOME)/bin/patsopt ATSCC2R34=$(PATSHOME)/bin/atscc2r34 ###### CAT=cat CPF=cp -f RMF=rm -f ###### all:: all_in_one:: ###### all:: ; \ $(PATSOPT) -d ./DATS/list.dats | \ $(ATSCC2R34) -o ./output/DATS/list_dats.R -i all:: ; \ $(PATSOPT) -d ./DATS/option.dats | \ $(ATSCC2R34) -o ./output/DATS/option_dats.R -i all:: ; \ $(PATSOPT) -d ./DATS/stream.dats | \ $(ATSCC2R34) -o ./output/DATS/stream_dats.R -i all:: ; \ $(PATSOPT) -d ./DATS/stream_vt.dats | \ $(ATSCC2R34) -o ./output/DATS/stream_vt_dats.R -i all:: ; \ $(PATSOPT) -d ./DATS/intrange.dats | \ $(ATSCC2R34) -o ./output/DATS/intrange_dats.R -i # ###### all:: ; \ $(PATSOPT) -d ./DATS/R34vector.dats | \ $(ATSCC2R34) -o ./output/DATS/R34vector_dats.R -i all:: ; \ $(PATSOPT) -d ./DATS/R34dframe.dats | \ $(ATSCC2R34) -o ./output/DATS/R34dframe_dats.R -i all:: ; \ $(PATSOPT) -d ./DATS/R34matrix.dats | \ $(ATSCC2R34) -o ./output/DATS/R34matrix_dats.R -i ###### # all:: ; \ $(PATSOPT) -d ./DATS/ML/list0.dats | \ $(ATSCC2R34) -o ./output/DATS/ML/list0_dats.R -i all:: ; \ $(PATSOPT) -d ./DATS/ML/option0.dats | \ $(ATSCC2R34) -o ./output/DATS/ML/option0_dats.R -i # ###### # LIBATSCC2R34_ALL_R34=\ output/libatscc2r34_all.R # ###### all_in_one:: libatscc2r34_all ###### # DATE=/bin/date ECHO=/bin/echo -en # PRINTF=printf # ###### # # libatscc2r34_all:: ; \ # $(ECHO) | $(CAT) - >$(LIBATSCC2R34_ALL_R34) # libatscc2r34_all:: ; \ $(PRINTF) '\n' | $(CAT) - >$(LIBATSCC2R34_ALL_R34) libatscc2r34_all:: ; \ $(PRINTF) '######\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) libatscc2r34_all:: ; \ $(PRINTF) '#\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) libatscc2r34_all:: ; \ $(PRINTF) '# Time of Generation:\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) libatscc2r34_all:: ; \ ($(PRINTF) '# ' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34); $(DATE) | $(CAT) - >>$(LIBATSCC2R34_ALL_R34)) libatscc2r34_all:: ; \ $(PRINTF) '#\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) libatscc2r34_all:: ; \ $(PRINTF) '######\n\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) # ###### libatscc2r34_all:: ; \ $(PRINTF) '######\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) libatscc2r34_all:: ; \ $(PRINTF) 'assign("libatscc2r34.is.loaded", TRUE)\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) libatscc2r34_all:: ; \ $(PRINTF) '######\n\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) ###### libatscc2r34_all:: ; \ $(CAT) >>$(LIBATSCC2R34_ALL_R34) \ CATS/basics_cats.R \ CATS/integer_cats.R \ CATS/bool_cats.R \ CATS/float_cats.R \ CATS/R34factor_cats.R \ CATS/R34vector_cats.R \ CATS/R34dframe_cats.R \ CATS/R34matrix_cats.R \ libatscc2r34_all:: ; \ $(CAT) >>$(LIBATSCC2R34_ALL_R34) \ output/DATS/list_dats.R \ output/DATS/option_dats.R \ output/DATS/stream_dats.R \ output/DATS/stream_vt_dats.R \ output/DATS/intrange_dats.R \ output/DATS/R34vector_dats.R \ output/DATS/R34dframe_dats.R \ output/DATS/R34matrix_dats.R \ output/DATS/ML/list0_dats.R \ output/DATS/ML/option0_dats.R \ ###### # libatscc2r34_all:: ; \ $(PRINTF) '\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) libatscc2r34_all:: ; \ $(PRINTF) '## ###### ###### ##' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) libatscc2r34_all:: ; \ $(PRINTF) '\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) # libatscc2r34_all:: ; \ $(PRINTF) '\n## end of [libatscc2r34_all.R] ##\n' | $(CAT) - >>$(LIBATSCC2R34_ALL_R34) # ###### clean:: ; $(RMF) *~ */*~ ###### cleanall:: clean cleanall:: ; $(RMF) output/DATS/*_dats.R cleanall:: ; $(RMF) output/DATS/ML/*_dats.R cleanall:: ; $(RMF) $(LIBATSCC2R34_ALL_R34) ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/mylibies.hats0000644000175000017500000000273313431250607023224 0ustar brandonbrandon(* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2014-09-09 // (* ****** ****** *) // #staload "./basics_r34.sats" (* #staload _ = "./DATS/basics.dats" *) // (* ****** ****** *) // #staload "./SATS/integer.sats" // (* ****** ****** *) // #staload "./SATS/bool.sats" #staload "./SATS/float.sats" #staload "./SATS/string.sats" // (* ****** ****** *) // #staload "./SATS/print.sats" // HX: printing to the console // (* ****** ****** *) // #staload "./SATS/list.sats" #staload _ = "./DATS/list.dats" // #staload "./SATS/list_vt.sats" #staload _ = "./DATS/list_vt.dats" // (* ****** ****** *) // #staload "./SATS/option.sats" #staload _ = "./DATS/option.dats" // (* ****** ****** *) // #staload "./SATS/stream.sats" #staload _ = "./DATS/stream.dats" // #staload "./SATS/stream_vt.sats" #staload _ = "./DATS/stream_vt.dats" // (* ****** ****** *) #staload "./SATS/intrange.sats" (* ****** ****** *) // #staload "./SATS/R34factor.sats" (* #staload _ = "./DATS/R34factor.dats" *) // (* ****** ****** *) // #staload "./SATS/R34vector.sats" #staload _ = "./DATS/R34vector.dats" // (* ****** ****** *) // #staload "./SATS/R34matrix.sats" #staload _ = "./DATS/R34matrix.dats" // (* ****** ****** *) // #staload "./SATS/R34dframe.sats" #staload _ = "./DATS/R34dframe.dats" // (* ****** ****** *) // #staload "./SATS/ML/list0.sats" // un-indexed list #staload _(*anon*) = "./DATS/ML/list0.dats" // un-indexed list // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/.keeper0000644000175000017500000000000013431250607021763 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/CATS/0000755000175000017500000000000013431250607021253 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/CATS/float_cats.R0000644000175000017500000000750013431250607023517 0ustar brandonbrandon############################################ # # HX-2017-10: # # for R code translated from ATS # ############################################ ############################################ #beg of [float_cats.R] ############################################ assign( "libatscc2r34_float.is.loaded", TRUE )#assign ############################################ ats2r34pre_neg_double <- function(x) { return( -x ) } ats2r34pre_abs_double <- function(x) { return(abs(x)) } ############################################ ats2r34pre_succ_double <- function(x) { return(x + 1) } ats2r34pre_pred_double <- function(x) { return(x - 1) } ############################################ ats2r34pre_sqrt_double <- function(x) { return(sqrt(x)) } ############################################ ats2r34pre_add_int_double <- function(x,y) { return(x + y) } ats2r34pre_add_double_int <- function(x,y) { return(x + y) } ats2r34pre_sub_int_double <- function(x,y) { return(x - y) } ats2r34pre_sub_double_int <- function(x,y) { return(x - y) } ats2r34pre_mul_int_double <- function(x,y) { return(x * y) } ats2r34pre_mul_double_int <- function(x,y) { return(x * y) } ats2r34pre_div_int_double <- function(x,y) { return(x / y) } ats2r34pre_div_double_int <- function(x,y) { return(x / y) } ############################################ ats2r34pre_add_double_double <- function(x,y) { return(x + y) } ats2r34pre_sub_double_double <- function(x,y) { return(x - y) } ats2r34pre_mul_double_double <- function(x,y) { return(x * y) } ats2r34pre_div_double_double <- function(x,y) { return(x / y) } ############################################ ats2r34pre_lt_int_double <- function(x,y) { return(x < y) } ats2r34pre_lt_double_int <- function(x,y) { return(x < y) } ats2r34pre_lte_int_double <- function(x,y) { return(x <= y) } ats2r34pre_lte_double_int <- function(x,y) { return(x <= y) } ats2r34pre_gt_int_double <- function(x,y) { return(x > y) } ats2r34pre_gt_double_int <- function(x,y) { return(x > y) } ats2r34pre_gte_int_double <- function(x,y) { return(x >= y) } ats2r34pre_gte_double_int <- function(x,y) { return(x >= y) } ats2r34pre_eq_int_double <- function(x,y) { return(x == y) } ats2r34pre_eq_double_int <- function(x,y) { return(x == y) } ats2r34pre_neq_int_double <- function(x,y) { return(x != y) } ats2r34pre_neq_double_int <- function(x,y) { return(x != y) } ############################################ ats2r34pre_lt_double_double <- function(x,y) { return(x < y) } ats2r34pre_lte_double_double <- function(x,y) { return(x <= y) } ats2r34pre_gt_double_double <- function(x,y) { return(x > y) } ats2r34pre_gte_double_double <- function(x,y) { return(x >= y) } ats2r34pre_eq_double_double <- function(x,y) { return(x == y) } ats2r34pre_neq_double_double <- function(x,y) { return(x != y) } ############################################ # ats2r34pre_max_double_double <- function(x,y) { return(max(x,y)) } ats2r34pre_min_double_double <- function(x,y) { return(min(x,y)) } # ############################################ # ats2r34pre_exp_double <- function(x) { return(exp(x)) } ats2r34pre_pow_double_double <- function(x,y) { return((x)^(y)) } # ############################################ # ats2r34pre_log_double <- function(x) { return(log(x)) } ats2r34pre_log2_double <- function(x) { return(log2(x)) } ats2r34pre_log10_double <- function(x) { return(log10(x)) } # ############################################ ## ats2r34pre_print_int <- function(x) { return(cat(x)) } ats2r34pre_print_double <- function(x) { return(cat(x)) } ats2r34pre_print_string <- function(x) { return(cat(x)) } ## ats2r34pre_print_newline <- function() { cat("\n"); utils::flush.console(); return(NULL) } ## ats2r34pre_print_newline ## ############################################ ############################################ #end of [float_cats.R] ############################################ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/CATS/R34matrix_cats.R0000644000175000017500000001034213431250607024205 0ustar brandonbrandon############################################ # # HX-2017-10: # # for R code translated from ATS # ############################################ ############################################ #beg of [R34matrix_cats.R] ############################################ assign( "libatscc2r34_R34matrix.is.loaded", TRUE )#assign ############################################ ats2r34pre_R34matrix_ncol <- function(xss) { return(ncol(xss)) } ats2r34pre_R34matrix_nrow <- function(xss) { return(nrow(xss)) } ############################################ # ats2r34pre_R34matrix_get_at <- function(xss, i, j) { return(xss[[i,j]]) } # # HX-2017-10-03: # No call-by-reference in R!!! # # ats2r34pre_R34matrix_set_at <- # function(xss, i, j, x0) { xss[[i,j]] <- x0; return(NULL) } # ############################################ # ats2r34pre_R34matrix_getrow_at <- function(xss, i) { return(xss[i, ]) } ats2r34pre_R34matrix_getcol_at <- function(xss, j) { return(xss[ ,j]) } # ats2r34pre_R34matrix2vector_row <- function(xss, i) { return(xss[1, ]) } ats2r34pre_R34matrix2vector_col <- function(xss, i) { return(xss[ ,1]) } # ############################################ # ats2r34pre_R34vector_transpose <- function(xs) { return(t(xs)) } ats2r34pre_R34matrix_transpose <- function(xss) { return(t(xss)) } # ############################################ ats2r34pre_cbind_R34vector_R34vector <- function(xs, ys) { return(cbind(xs, ys)) } ats2r34pre_cbind_R34vector_R34matrix <- function(xs, yss) { return(cbind(xs, yss)) } ats2r34pre_cbind_R34matrix_R34vector <- function(xss, ys) { return(cbind(xss, ys)) } ats2r34pre_cbind_R34matrix_R34matrix <- function(xss, yss) { return(cbind(xss, yss)) } ############################################ ats2r34pre_rbind_R34vector_R34vector <- function(xs, ys) { return(rbind(xs, ys)) } ats2r34pre_rbind_R34vector_R34matrix <- function(xs, yss) { return(rbind(xs, yss)) } ats2r34pre_rbind_R34matrix_R34vector <- function(xss, ys) { return(rbind(xss, ys)) } ats2r34pre_rbind_R34matrix_R34matrix <- function(xss, yss) { return(rbind(xss, yss)) } ############################################ ats2r34pre_add_R34matrix_R34matrix <- function(M1, M2) { return(M1 + M2) } ats2r34pre_mul_R34matrix_R34matrix <- function(M1, M2) { return(M1 * M2) } ############################################ ats2r34pre_solve_R34matrix <- function(xss) { return(solve(xss)) } ats2r34pre_solve_R34matrix_R34vector <- function(xss, ys) { return(solve(xss, ys)) } ############################################ # ats2r34pre_matmult <- function(M1, M2) { return(M1 %*% M2) } # ats2r34pre_matmult_R34vector_R34matrix <- function(xs, yss) { return(ats2r34pre_matmult(xs, yss)) } ats2r34pre_matmult_R34matrix_R34vector <- function(xss, ys) { return(ats2r34pre_matmult(xss, ys)) } ats2r34pre_matmult_R34matrix_R34matrix <- function(xss, yss) { return(ats2r34pre_matmult(xss, yss)) } # ############################################ # ats2r34pre_crossprod_R34matrix <- function(xss) { return(crossprod(xss)) } ats2r34pre_crossprod_R34vector_R34matrix <- function(xs, yss) { return(crossprod(xs, yss)) } ats2r34pre_crossprod_R34matrix_R34vector <- function(xss, ys) { return(crossprod(xss, ys)) } ats2r34pre_crossprod_R34matrix_R34matrix <- function(xss, yss) { return(crossprod(xss, yss)) } # ats2r34pre_tcrossprod_R34matrix <- function(xss) { return(tcrossprod(xss)) } ats2r34pre_tcrossprod_R34vector_R34matrix <- function(xs, yss) { return(tcrossprod(xs, yss)) } ats2r34pre_tcrossprod_R34matrix_R34vector <- function(xss, ys) { return(tcrossprod(xss, ys)) } ats2r34pre_tcrossprod_R34matrix_R34matrix <- function(xss, yss) { return(tcrossprod(xss, yss)) } # ############################################ # # HX: R is column-major # ats2r34pre_R34matrix_tabulate_fun <- function(m0, n0, fopr) { x1 = fopr(0, 0); xs = rep(x1, m0*n0) { if (m0 >= 2) { for (i in 2:m0) { xs[[i]] <- fopr(0, i-1) } } if (n0 >= 2) { for (j in 2:n0) for (i in 1:m0) { xs[[(j-1)*m0+i]] <- fopr(i-1, j-1) } } } ; return(matrix(xs, nrow=m0, ncol=n0)) } ## ats2r34pre_R34matrix_tabulate_fun ############################################ #end of [R34matrix_cats.R] ############################################ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/CATS/bool_cats.R0000644000175000017500000000306013431250607023342 0ustar brandonbrandon############################################ # # HX-2017-10: # # for R code translated from ATS # ############################################ ############################################ #beg of [bool_cats.R] ############################################ assign( "libatscc2r34_bool.is.loaded", TRUE )#assign ############################################ ats2r34pre_int2bool0 <- function(x) { return(x != 0) } ats2r34pre_int2bool1 <- function(x) { return(x != 0) } ############################################ ats2r34pre_bool2int0 <- function(x) { return(if(x) 1 else 0) } ats2r34pre_bool2int1 <- function(x) { return(if(x) 1 else 0) } ############################################ ats2r34pre_neg_bool0 <- function(x) { return(!x) } ats2r34pre_neg_bool1 <- function(x) { return(!x) } ############################################ ats2r34pre_add_bool0_bool0 <- function(x, y) { return (x || y) } ats2r34pre_add_bool0_bool1 <- function(x, y) { return (x || y) } ats2r34pre_add_bool1_bool0 <- function(x, y) { return (x || y) } ats2r34pre_add_bool1_bool1 <- function(x, y) { return (x || y) } ############################################ ats2r34pre_mul_bool0_bool0 <- function(x, y) { return (x && y) } ats2r34pre_mul_bool0_bool1 <- function(x, y) { return (x && y) } ats2r34pre_mul_bool1_bool0 <- function(x, y) { return (x && y) } ats2r34pre_mul_bool1_bool1 <- function(x, y) { return (x && y) } ############################################ ############################################ #end of [bool_cats.R] ############################################ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/CATS/basics_cats.R0000644000175000017500000000664413431250607023666 0ustar brandonbrandon############################################ # # HX-2017-10: # # for R code translated from ATS # ############################################ ############################################ #beg of [basics_cats.R] ############################################ assign( "libatscc2r34_basics.is.loaded", TRUE )#assign ############################################ ATSCKiseqz <- function(x) { return (x == 0) } ATSCKisneqz <- function(x) { return (x != 0) } ############################################ ATSCKptrisnull <- function(xs) { return(is.null(xs)) } ATSCKptriscons <- function(xs) { return(!is.null(xs)) } ############################################ ATSCKpat_int <- function(tmp, given) { return(tmp == given) } ATSCKpat_bool <- function(tmp, given) { return(tmp == given) } ATSCKpat_float <- function(tmp, given) { return(tmp == given) } ATSCKpat_string <- function(tmp, given) { return(tmp == given) } ############################################ ATSCKpat_con0 <- function(con, tag) { return(con == tag) } ATSCKpat_con1 <- function(con, tag) { return(con[[1]] == tag) } ############################################ ATSINScaseof_fail <- function(errmsg) { stop(errmsg) } ############################################ ATSINSdeadcode_fail <- function() { stop("ATSINSdeadcode_fail()") } ############################################ ATSPMVempty <- function() { return(NULL) } ############################################ ATSPMVlazyval <- function(thunk) { return(list(0, thunk)) } ############################################ ATSPMVlazyval_eval <- function(lazyval) { ## ##flag, mythunk; ## flag = lazyval[[1]]; ## if(flag==0) { lazyval[[1]] = 1; mythunk = lazyval[[2]]; ## ## HX-2017-12-22: nightmare!!! ## lazyval[ 2 ] = list(mythunk[[1]](mythunk)); } else { lazyval[[1]] = flag + 1; } ## end of [if] ## return (lazyval[[2]]); ## } ## end of [ATSPMVlazyval_eval] ############################################ ATSPMVllazyval <- function(thunk){ return(thunk) } ATSPMVllazyval_eval <- function(llazyval) { return(llazyval[[1]](llazyval, TRUE)) } ## end of [ATSPMVllazyval_eval] atspre_lazy_vt_free <- function(llazyval) { return (llazyval[[1]](llazyval, FALSE)) } ## end of [atspre_lazy_vt_free] ############################################ ats2r34pre_cloref0_app <- function(cf) { return(cf[[1]](cf)); } ats2r34pre_cloref1_app <- function(cf, x) { return(cf[[1]](cf, x)); } ats2r34pre_cloref2_app <- function(cf, x1, x2) { return(cf[[1]](cf, x1, x2)); } ats2r34pre_cloref3_app <- function(cf, x1, x2, x3) { return(cf[[1]](cf, x1, x2, x3)); } ############################################ ats2r34pre_cloref2fun0 <- function(cf) { return( function() {return(ats2r34pre_cloref0_app(cf))} ) } ats2r34pre_cloref2fun1 <- function(cf) { return( function(x) {return(ats2r34pre_cloref1_app(cf, x))} ) } ats2r34pre_cloref2fun2 <- function(cf) { return( function(x1, x2) {return(ats2r34pre_cloref2_app(cf, x1, x2))} ) } ats2r34pre_cloref2fun3 <- function(cf) { return( function(x1, x2, x3) {return(ats2r34pre_cloref3_app(cf, x1, x2, x3))} ) } ############################################ ats2r34pre_assert_errmsg_bool0 <- function(claim, errmsg) { if(!claim) { stop(errmsg) }; return(NULL) } ats2r34pre_assert_errmsg_bool1 <- ats2r34pre_assert_errmsg_bool0 ############################################ #end of [basics_cats.R] ############################################ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/CATS/integer_cats.R0000644000175000017500000000513013431250607024044 0ustar brandonbrandon############################################ # # HX-2017-10: # # for R code translated from ATS # ############################################ ############################################ #beg of [integer_cats.R] ############################################ assign( "libatscc2r34_integer.is.loaded", TRUE )#assign ############################################ ats2r34pre_neg_int0 <- function(x) { return(-x) } ats2r34pre_abs_int0 <- function(x) { return(abs(x)) } ats2r34pre_succ_int0 <- function(x) { return(x + 1) } ats2r34pre_pred_int0 <- function(x) { return(x - 1) } ats2r34pre_add_int0_int0 <- function(x,y) { return(x + y) } ats2r34pre_sub_int0_int0 <- function(x,y) { return(x - y) } ats2r34pre_mul_int0_int0 <- function(x,y) { return(x * y) } ats2r34pre_mod_int0_int0 <- function(x,y) { return(x %% y) } ats2r34pre_div_int0_int0 <- function(x,y) { return(x %/% y) } ############################################ ats2r34pre_succ_int1 <- function(x) { return(x + 1) } ats2r34pre_pred_int1 <- function(x) { return(x - 1) } ats2r34pre_add_int1_int1 <- function(x,y) { return(x + y) } ats2r34pre_sub_int1_int1 <- function(x,y) { return(x - y) } ats2r34pre_mul_int1_int1 <- function(x,y) { return(x * y) } ats2r34pre_mod_int1_int1 <- function(x,y) { return(x %% y) } ats2r34pre_div_int1_int1 <- function(x,y) { return(x %/% y) } ats2r34pre_nmod_int1_int1 <- function(x,y) { return(x %% y) } ############################################ ats2r34pre_lt_int0_int0 <- function(x,y) { return(x < y) } ats2r34pre_lte_int0_int0 <- function(x,y) { return(x <= y) } ats2r34pre_gt_int0_int0 <- function(x,y) { return(x > y) } ats2r34pre_gte_int0_int0 <- function(x,y) { return(x >= y) } ats2r34pre_eq_int0_int0 <- function(x,y) { return(x == y) } ats2r34pre_neq_int0_int0 <- function(x,y) { return(x != y) } ############################################ ats2r34pre_lt_int1_int1 <- function(x,y) { return(x < y) } ats2r34pre_lte_int1_int1 <- function(x,y) { return(x <= y) } ats2r34pre_gt_int1_int1 <- function(x,y) { return(x > y) } ats2r34pre_gte_int1_int1 <- function(x,y) { return(x >= y) } ats2r34pre_eq_int1_int1 <- function(x,y) { return(x == y) } ats2r34pre_neq_int1_int1 <- function(x,y) { return(x != y) } ############################################ ats2r34pre_max_int0_int0 <- function(x,y) { return(max(x, y)) } ats2r34pre_min_int0_int0 <- function(x,y) { return(min(x, y)) } ats2r34pre_max_int1_int1 <- function(x,y) { return(max(x, y)) } ats2r34pre_min_int1_int1 <- function(x,y) { return(min(x, y)) } ############################################ #end of [integer_cats.R] ############################################ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/CATS/R34factor_cats.R0000644000175000017500000000105413431250607024157 0ustar brandonbrandon############################################ # # HX-2018-02: # # for R code translated from ATS # ############################################ ############################################ #beg of [R34factor_cats.R] ############################################ assign( "libatscc2r34_R34factor.is.loaded", TRUE )#assign ############################################ ats2r34pre_R34factor_levels <- function(xs) { return(levels(xs)) } ############################################ #end of [R34factor_cats.R] ############################################ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/CATS/R34dframe_cats.R0000644000175000017500000000234113431250607024137 0ustar brandonbrandon############################################ # # HX-2017-10: # # for R code translated from ATS # ############################################ ############################################ #beg of [R34dframe_cats.R] ############################################ assign( "libatscc2r34_R34dframe.is.loaded", TRUE )#assign ############################################ ats2r34pre_R34dframe_nrow <- function(xss) { return(nrow(xss)) } ats2r34pre_R34dframe_ncol <- function(xss) { return(ncol(xss)) } ############################################ ats2r34pre_R34dframe_names <- function(xss) { return(names(xss)) } ############################################ ats2r34pre_R34dframe_getcol_at <- function(xss, jcol) { return(xss[[jcol]]) } ats2r34pre_R34dframe_getcol_by <- function(xss, name) { return(xss[[name]]) } ############################################ ats2r34pre_R34dframe_na_omit <- function(xss) { return(na.omit(xss)) } ############################################ ats2r34pre_R34dframe_subrow <- function(xs, i, j) { return(xs[i:j,]) } ats2r34pre_R34dframe_subcol <- function(xs, i, j) { return(xs[,i:j]) } ############################################ #end of [R34dframe_cats.R] ############################################ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/CATS/R34vector_cats.R0000644000175000017500000000754613431250607024217 0ustar brandonbrandon############################################ # # HX-2017-10: # # for R code translated from ATS # ############################################ ############################################ #beg of [R34vector_cats.R] ############################################ assign( "libatscc2r34_R34vector.is.loaded", TRUE )#assign ############################################ ats2r34pre_R34vector_rep <- function(x,n) { return(rep(x,n)) } ############################################ # ats2r34pre_R34vector_make_1 <- function(x1) { return(c(x1)) } ats2r34pre_R34vector_make_2 <- function(x1, x2) { return(c(x1, x2)) } ats2r34pre_R34vector_make_3 <- function(x1, x2, x3) { return(c(x1, x2, x3)) } # ats2r34pre_R34vector_make_4 <- function(x1, x2, x3, x4) { return(c(x1, x2, x3, x4)) } ats2r34pre_R34vector_make_5 <- function(x1, x2, x3, x4, x5) { return(c(x1, x2, x3, x4, x5)) } ats2r34pre_R34vector_make_6 <- function(x1, x2, x3, x4, x5, x6) { return(c(x1, x2, x3, x4, x5, x6)) } # ############################################ ats2r34pre_R34vector_length <- function(xs) { return(length(xs)) } ############################################ ats2r34pre_R34vector_sample_rep <- function(xs, n) { return(sample(xs, n, replace=TRUE)) } ats2r34pre_R34vector_sample_norep <- function(xs, n) { return(sample(xs, n, replace=FALSE)) } ############################################ # ats2r34pre_R34vector_get_at <- function(xs, i) { return(xs[[i]]) } # # HX-2017-10-03: # No call-by-reference in R!!! # # ats2r34pre_R34vector_set_at <- # function(xs, i, x0) # { xs[[i]] <- x0; return(NULL) } # ############################################ ats2r34pre_R34vector_subvec <- function(xs, i, j) { return(xs[i:j]) } ############################################ ats2r34pre_R34vector_match <- function(x, xs) { return(match(x, xs, nomatch=0)) } ## ats2r34pre_R34vector_match ############################################ ats2r34pre_R34vector_map_fun <- function(xs, fopr) { n0 = length(xs) if (n0 == 0) return(c()) y1 = fopr(xs[[1]]); ys = rep(y1, n0) if (n0 >= 2) { for (i in 2:n0) ys[[i]]<-fopr(xs[[i]]) } ; return(ys) } ## ats2r34pre_R34vector_map_fun ############################################ ats2r34pre_R34vector_foreach_fun <- function(xs, fopr) { n0 = length(xs) if (n0 == 0) return(NULL) { for (i in 1:n0) fopr(xs[[i]]) } ; return(NULL) } ## ats2r34pre_R34vector_foreach_fun ats2r34pre_R34vector_iforeach_fun <- function(xs, fopr) { n0 = length(xs) if (n0 == 0) return(NULL) { for (i in 1:n0) fopr(i-1, xs[[i]]) } ; return(NULL) } ## ats2r34pre_R34vector_iforeach_fun ############################################ ats2r34pre_R34vector_foldleft_fun <- function(xs, r0, fopr) { n0 = length(xs) if (n0 == 0) return(r0) r1 = fopr( r0, xs[[1]] ); if (n0 >= 2) { for (i in 2:n0) r1 <- fopr(r1, xs[[i]]) } ; return(r1) } ## ats2r34pre_R34vector_foldleft_fun ############################################ ats2r34pre_R34vector_tabulate_fun <- function(n0, fopr) { if (n0 == 0) return(c()) x1 = fopr(0); xs = rep(x1, n0) if (n0 >= 2) { for (i in 2:n0) { xs[[i]] <- fopr(i-1) } } ; return(xs) } ## ats2r34pre_R34vector_tabulate_fun ############################################ ats2r34pre_R34vector_tabulate2_fun <- function(n0, x0, fopr) { if (n0 == 0) return(c()) x1 = fopr(x0, 0); xs = rep(x1, n0) if (n0 >= 2) { for (i in 2:n0) { x0 <- x1; x1 <- fopr(x0, i-1); xs[[i]] <- x1 } } ; return(xs) } ## ats2r34pre_R34vector_tabulate2_fun ############################################ # ats2r34pre_dotprod_R34vector_R34vector <- function(xs, ys) { res = crossprod(xs, ys); return(res[[1,1]]) } ## ats2r34pre_dotprod_R34vector_R34vector # ats2r34pre_tcrossprod_R34vector_R34vector <- function(xs, ys) { return(tcrossprod(xs, ys)) } # ############################################ #end of [R34vector_cats.R] ############################################ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/0000755000175000017500000000000013431250607021273 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/R34dframe.sats0000644000175000017500000000361513431250607023723 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #staload "./../basics_r34.sats" // (* ****** ****** *) // fun R34dframe_nrow {a:t0p} {m,n:int} (R34dframe(a, m, n)): int(m) = "mac#%" fun R34dframe_ncol {a:t0p} {m,n:int} (R34dframe(a, m, n)): int(n) = "mac#%" // overload nrow with R34dframe_nrow overload ncol with R34dframe_ncol // (* ****** ****** *) // fun R34dfram_dimgt {a:t0p} {m,n:int} {i,j:nat} (R34dframe(a, m, n), int(i), int(j)): bool(m > i && n > j) fun R34dfram_dimgte {a:t0p} {m,n:int} {i,j:nat} (R34dframe(a, m, n), int(i), int(j)): bool(m >= i && n >= j) // overload dimgt with R34dfram_dimgt overload dimgte with R34dfram_dimgte // (* ****** ****** *) // fun R34dframe_names {a:t0p} {m,n:int} (R34dframe(a, m, n)): R34vector(string, n) = "mac#%" // overload names with R34dframe_names // (* ****** ****** *) // fun R34dframe_getcol_at {a:t0p} {m,n:int} {j:pos | j <= n} (R34dframe(a, m, n), j: int(j)): R34vector(a, m) = "mac#%" // fun R34dframe_getcol_by {a:t0p} {m,n:int} (R34dframe(a, m, n), name: string): R34vector(a, m) = "mac#%" // overload getcol_at with R34dframe_getcol_at overload getcol_by with R34dframe_getcol_by // (* ****** ****** *) // fun R34dframe_na_omit {a:t0p} {m1,n:int} ( xs: R34dframe(a, m1, n) ) : [m2:nat | m2 <= m1] R34dframe(a, m2, n) = "mac#%" // (* ****** ****** *) // fun R34dframe_subcol {a:t0p} {m,n:int} {i,j:int |1 <= i ;i <= j;j <= n} ( xs: R34dframe(a, m, n) , i0: int(i), j0: int(j)): R34dframe(a, m, j-i+1) = "mac#%" fun R34dframe_subrow {a:t0p} {m,n:int} {i,j:int |1 <= i ;i <= j;j <= m} ( xs: R34dframe(a, m, n) , i0: int(i), j0: int(j)): R34dframe(a, j-i+1, n) = "mac#%" // overload subcol with R34dframe_subcol overload subrow with R34dframe_subrow // (* ****** ****** *) (* end of [R34dframe.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/R34vector.sats0000644000175000017500000001173413431250607023770 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #staload "./../basics_r34.sats" // (* ****** ****** *) // fun R34vector_rep {a:t0p}{n:nat} ( x0: a, n: int(n) ) : R34vector(a, n) = "mac#%" // overload rep with R34vector_rep // (* ****** ****** *) // fun R34vector_make_1 {a:t0p} (x1: a): R34vector(a, 1) = "mac#%" fun R34vector_make_2 {a:t0p} (x1: a, x2: a): R34vector(a, 2) = "mac#%" fun R34vector_make_3 {a:t0p} (x1: a, x2: a, x3: a): R34vector(a, 3) = "mac#%" // fun R34vector_make_4 {a:t0p} ( x1: a, x2: a , x3: a, x4: a): R34vector(a, 4) = "mac#%" fun R34vector_make_5 {a:t0p} ( x1: a, x2: a , x3: a, x4: a, x5: a): R34vector(a, 5) = "mac#%" fun R34vector_make_6 {a:t0p} ( x1: a, x2: a, x3: a , x4: a, x5: a, x6: a): R34vector(a, 6) = "mac#%" // overload R34vector_make with R34vector_make_1 overload R34vector_make with R34vector_make_2 overload R34vector_make with R34vector_make_3 overload R34vector_make with R34vector_make_4 overload R34vector_make with R34vector_make_5 overload R34vector_make with R34vector_make_6 // (* ****** ****** *) // fun R34vector_length {a:t0p}{n:int} (R34vector(a, n)): int(n) = "mac#%" // overload length with R34vector_length // (* ****** ****** *) // fun R34vector_get_at {a:t0p} {n:int}{i:pos|i <= n} (R34vector(a, n), i: int(i)): a = "mac#%" (* fun R34vector_set_at {a:t0p} {n:int}{i:pos|i <= n} (R34vector(a, n), i: int(i), x0: a): void = "mac#%" *) // overload [] with R34vector_get_at (* overload [] with R34vector_set_at *) // (* ****** ****** *) // fun R34vector_subvec {a:t0p} {n:int} {i,j:int |1 <= i ;i <= j;j <= n} ( xs: R34vector(a, n) , i: int(i), j: int(j)): R34vector(a, j-i+1) = "mac#%" // overload subvec with R34vector_subvec // (* ****** ****** *) // fun R34vector_extend {a:t0p} {n:int}{i:pos|i <= n} (xs: R34vector(a, n), x0: a): R34vector(a, n+1) = "mac#%" // (* ****** ****** *) // fun R34vector_match {a:t0p}{n:int} ( x0: a, xs: R34vector(a, n) ) : intBtwe(0, n) = "mac#%" // endfun // overload match with R34vector_match // (* ****** ****** *) // fun {a:t0p} R34vector_mean {n:pos} (xs: R34vector(a, n)): double = "mac#%" // fun {a:t0p} R34vector_median {n:pos} (xs: R34vector(a, n)): double = "mac#%" // fun {a:t0p} R34vector_variance {n:pos} (xs: R34vector(a, n)): double = "mac#%" // overload mean with R34vector_mean overload median with R34vector_median overload variance with R34vector_variance // (* ****** ****** *) // fun R34vector_sample_rep {a:t0p} {m:int} {n:nat} (R34vector(a, m), int(n)): R34vector(a, n) = "mac#%" fun R34vector_sample_norep {a:t0p} {m:int} {n:nat|n <= m} (R34vector(a, m), int(n)): R34vector(a, n) = "mac#%" // overload sample_rep with R34vector_sample_rep overload sample_norep with R34vector_sample_norep // (* ****** ****** *) // fun dotprod_R34vector_R34vector {a:t0p} {n:pos} (R34vector(a, n), R34vector(a, n)): (a) = "mac#%" // overload dotprod with dotprod_R34vector_R34vector // (* ****** ****** *) // fun tcrossprod_R34vector_R34vector {a:t0p} {n:pos} (R34vector(a, n), R34vector(a, n)): R34matrix(a, n, n) = "mac#%" // overload tcrossprod with tcrossprod_R34vector_R34vector // (* ****** ****** *) // fun R34vector_map_fun {a:t0p} {b:t0p} {n:int} ( xs: R34vector(a, n) , fopr: (a) - b): R34vector(b, n) = "mac#%" fun R34vector_map_cloref {a:t0p} {b:t0p} {n:int} ( xs: R34vector(a, n) , fopr: (a) - b): R34vector(b, n) = "mac#%" // (* overload map with R34vector_map_fun *) overload map with R34vector_map_cloref // (* ****** ****** *) // fun R34vector_foreach_fun {a:t0p} ( xs: R34vector(a) , fopr: (a) - void): void = "mac#%" fun R34vector_foreach_cloref {a:t0p} ( xs: R34vector(a) , fopr: (a) - void): void = "mac#%" // overload foreach with R34vector_foreach_cloref // (* ****** ****** *) // fun R34vector_iforeach_fun {a:t0p} {n:int} ( xs: R34vector(a, n) , fopr: (natLt(n), a) - void): void = "mac#%" fun R34vector_iforeach_cloref {a:t0p} {n:int} ( xs: R34vector(a, n) , fopr: (natLt(n), a) - void): void = "mac#%" // overload iforeach with R34vector_iforeach_cloref // (* ****** ****** *) // fun R34vector_foldleft_fun {r:t0p} {a:t0p} ( xs: R34vector(a) , r0: (r), fopr: (r, a) - r): (r) = "mac#%" fun R34vector_foldleft_cloref {r:t0p} {a:t0p} ( xs: R34vector(a) , r0: (r), fopr: (r, a) - r): (r) = "mac#%" // overload foldleft with R34vector_foldleft_cloref // (* ****** ****** *) // fun R34vector_tabulate_fun {a:t0p} {n:nat} ( int(n) , fopr: (natLt(n)) - a): R34vector(a, n) = "mac#%" fun R34vector_tabulate_cloref {a:t0p} {n:nat} ( int(n) , fopr: (natLt(n)) - a): R34vector(a, n) = "mac#%" // (* ****** ****** *) // fun R34vector_tabulate2_fun {a:t0p} {n:nat} ( int(n) , init: a , fopr: (a, natLt(n)) - a): R34vector(a, n) = "mac#%" fun R34vector_tabulate2_cloref {a:t0p} {n:nat} ( int(n) , init: a , fopr: (a, natLt(n)) - a): R34vector(a, n) = "mac#%" // (* ****** ****** *) (* end of [R34vector.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/intrange.sats0000644000175000017500000000060413431250607023776 0ustar brandonbrandon(* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_r34.sats" // #include "{$LIBATSCC}/SATS/intrange.sats" // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/float.sats0000644000175000017500000001021613431250607023274 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // // HX: for floating point numbers // (* ****** ****** *) // fun abs_double : double -<> double = "mac#%" fun neg_double : double -<> double = "mac#%" // overload abs with abs_double of 100 overload neg with neg_double of 100 // (* ****** ****** *) // fun succ_double : double -<> double = "mac#%" fun pred_double : double -<> double = "mac#%" // overload succ with succ_double of 100 overload pred with pred_double of 100 // (* ****** ****** *) // fun sqrt_double : double -<> double = "mac#%" // overload sqrt with sqrt_double of 100 // (* ****** ****** *) // fun add_int_double : (int, double) -<> double = "mac#%" fun add_double_int : (double, int) -<> double = "mac#%" // fun sub_int_double : (int, double) -<> double = "mac#%" fun sub_double_int : (double, int) -<> double = "mac#%" // fun mul_int_double : (int, double) -<> double = "mac#%" fun mul_double_int : (double, int) -<> double = "mac#%" // fun div_int_double : (int, double) -<> double = "mac#%" fun div_double_int : (double, int) -<> double = "mac#%" // (* ****** ****** *) overload + with add_int_double of 100 overload + with add_double_int of 100 overload - with sub_int_double of 100 overload - with sub_double_int of 100 overload * with mul_int_double of 100 overload * with mul_double_int of 100 overload / with div_int_double of 100 overload / with div_double_int of 100 (* ****** ****** *) typedef float_aop_type = (double, double) -<> double (* ****** ****** *) // fun add_double_double: float_aop_type = "mac#%" fun sub_double_double : float_aop_type = "mac#%" fun mul_double_double : float_aop_type = "mac#%" fun div_double_double : float_aop_type = "mac#%" // (* ****** ****** *) // overload + with add_double_double of 100 overload - with sub_double_double of 100 overload * with mul_double_double of 100 overload / with div_double_double of 100 // (* ****** ****** *) // fun lt_int_double : (int, double) -<> bool = "mac#%" fun lt_double_int : (double, int) -<> bool = "mac#%" // fun lte_int_double : (int, double) -<> bool = "mac#%" fun lte_double_int : (double, int) -<> bool = "mac#%" // fun gt_int_double : (int, double) -<> bool = "mac#%" fun gt_double_int : (double, int) -<> bool = "mac#%" // fun gte_int_double : (int, double) -<> bool = "mac#%" fun gte_double_int : (double, int) -<> bool = "mac#%" // (* ****** ****** *) typedef float_cmp_type = (double, double) -<> bool (* ****** ****** *) // fun lt_double_double: float_cmp_type = "mac#%" fun lte_double_double: float_cmp_type = "mac#%" fun gt_double_double: float_cmp_type = "mac#%" fun gte_double_double: float_cmp_type = "mac#%" // fun eq_double_double: float_cmp_type = "mac#%" fun neq_double_double: float_cmp_type = "mac#%" // (* ****** ****** *) // overload < with lt_double_double of 100 overload <= with lte_double_double of 100 overload > with gt_double_double of 100 overload >= with gte_double_double of 100 overload = with eq_double_double of 100 overload != with neq_double_double of 100 overload <> with neq_double_double of 100 // (* ****** ****** *) // fun compare_double_double ( x1: double , x2: double):<> Sgn = "mac#%" // overload compare with compare_double_double of 100 // (* ****** ****** *) // fun max_double_double ( x1: double , x2: double):<> double = "mac#%" fun min_double_double ( x1: double , x2: double):<> double = "mac#%" // overload max with max_double_double of 100 overload min with min_double_double of 100 // (* ****** ****** *) // fun exp_double (arg: double):<> double = "mac#%" fun pow_double_double ( arg1: double , arg2: double):<> double = "mac#%" // overload exp with exp_double of 100 overload pow with pow_double_double of 100 // (* ****** ****** *) // fun log_double (arg: double):<> double = "mac#%" fun log2_double (arg: double):<> double = "mac#%" fun log10_double (arg: double):<> double = "mac#%" // overload log with log_double of 100 overload log2 with log2_double of 100 overload log10 with log10_double of 100 // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/filebas.sats0000644000175000017500000000064313431250607023577 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that transpiles into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) #staload "./../basics_r34.sats" (* ****** ****** *) // (* val STDIN : R34filr = "mac#" val STDOUT : R34filr = "mac#" val STDERR : R34filr = "mac#" *) // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/list.sats0000644000175000017500000000124113431250607023140 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_r34.sats" // #include "{$LIBATSCC}/SATS/list.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list (R34filr, List(INV(a))): void = "mac#%" // fun{} fprint_list$sep(out: R34filr): void = "mac#%" // fun{a:t0p} fprint_list_sep (R34filr, List(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list of 100 // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/list_vt.sats0000644000175000017500000000062513431250607023656 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_r34.sats" // #include "{$LIBATSCC}/SATS/list_vt.sats" // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/string.sats0000644000175000017500000000045313431250607023477 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // // HX: for strings of (chars) // (* ****** ****** *) (* end of [string.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/stream_vt.sats0000644000175000017500000000063113431250607024173 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_r34.sats" // #include "{$LIBATSCC}/SATS/stream_vt.sats" // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/R34matrix.sats0000644000175000017500000001401113431250607023761 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #staload "./../basics_r34.sats" // (* ****** ****** *) // fun R34matrix_ncol {a:t0p} {m,n:int} (R34matrix(a, m, n)): int(n) = "mac#%" fun R34matrix_nrow {a:t0p} {m,n:int} (R34matrix(a, m, n)): int(m) = "mac#%" // overload ncol with R34matrix_ncol overload nrow with R34matrix_nrow // (* ****** ****** *) // fun R34matrix_get_at {a:t0p} {m,n:int} {i,j:pos |i <= m; j <= n} (R34matrix(a, m, n), i:int(i), j:int(j)): a = "mac#%" // overload [] with R34matrix_get_at // (* ****** ****** *) // fun R34matrix_getrow_at {a:t0p} {m,n:int} {i:pos | i <= m} (R34matrix(a, m, n), i:int(i)): R34vector(a, n) = "mac#%" fun R34matrix_getcol_at {a:t0p} {m,n:int} {j:pos | j <= n} (R34matrix(a, m, n), j:int(j)): R34vector(a, m) = "mac#%" // overload getrow_at with R34matrix_getrow_at overload getcol_at with R34matrix_getcol_at // (* ****** ****** *) // fun R34matrix2vector_col {a:t0p} {m:pos} (xss: R34matrix(a, m, 1)): R34vector(a, m) = "mac#%" fun R34matrix2vector_row {a:t0p} {n:pos} (xss: R34matrix(a, 1, n)): R34vector(a, n) = "mac#%" // (* ****** ****** *) // fun cbind_R34vector_R34vector {a:t@ype}{n:pos} ( xs: R34vector(a, n) , ys: R34vector(a, n)): R34matrix(a, n, 2) = "mac#%" // fun rbind_R34vector_R34vector {a:t@ype}{n:pos} ( xs: R34vector(a, n) , ys: R34vector(a, n)): R34matrix(a, 2, n) = "mac#%" // (* ****** ****** *) // fun cbind_R34matrix_R34vector {a:t@ype} {m,n:pos} (xss: R34matrix(a, m, n), ys: R34vector(a, m)): R34matrix(a, m, n+1) = "mac#%" fun cbind_R34vector_R34matrix {a:t@ype} {m,n:pos} (ys: R34vector(a, m), xss: R34matrix(a, m, n)): R34matrix(a, m, n+1) = "mac#%" // fun cbind_R34matrix_R34matrix {a:t@ype} {m,n1,n2:pos} (xss: R34matrix(a, m, n1), yss: R34matrix(a, m, n2)): R34matrix(a, m, n1+n2) = "mac#%" // overload cbind with cbind_R34vector_R34vector overload cbind with cbind_R34vector_R34matrix overload cbind with cbind_R34matrix_R34vector overload cbind with cbind_R34matrix_R34matrix // (* ****** ****** *) // fun rbind_R34matrix_R34vector {a:t@ype} {m,n:pos} (xss: R34matrix(a, m, n), ys: R34vector(a, n)): R34matrix(a, m+1, n) = "mac#%" fun rbind_R34vector_R34matrix {a:t@ype} {m,n:pos} (ys: R34vector(a, n), xss: R34matrix(a, m, n)): R34matrix(a, m+1, n) = "mac#%" // fun rbind_R34matrix_R34matrix {a:t@ype} {m1,m2,n:pos} (xss: R34matrix(a, m1, n), yss: R34matrix(a, m2, n)): R34matrix(a, m1+m2, n) = "mac#%" // overload rbind with rbind_R34vector_R34vector overload rbind with rbind_R34vector_R34matrix overload rbind with rbind_R34matrix_R34vector overload rbind with rbind_R34matrix_R34matrix // (* ****** ****** *) // fun R34vector_transpose {a:t0p} {n:pos} (xss: R34vector(a, n)): R34matrix(a, 1, n) = "mac#%" // fun R34matrix_transpose {a:t0p} {m,n:pos} (xss: R34matrix(a, m, n)): R34matrix(a, n, m) = "mac#%" // overload transpose with R34vector_transpose overload transpose with R34matrix_transpose // (* ****** ****** *) // fun add_R34matrix_R34matrix {a:t0p} {m,n:pos} ( xss: R34matrix(a, m, n) , yss: R34matrix(a, m, n)): R34matrix(a, m, n) = "mac#%" fun mul_R34matrix_R34matrix {a:t0p} {m,n:pos} ( xss: R34matrix(a, m, n) , yss: R34matrix(a, m, n)): R34matrix(a, m, n) = "mac#%" // overload + with add_R34matrix_R34matrix overload * with mul_R34matrix_R34matrix // (* ****** ****** *) // fun {a:t0p} solve_R34matrix {n:pos} (xss: R34matrix(a, n, n)): R34matrix(a, n, n) = "mac#%" fun {a:t0p} solve_R34matrix_R34vector {n:pos} (xss: R34matrix(a, n, n), ys: R34vector(a, n)): R34vector(a, n) = "mac#%" // overload solve with solve_R34matrix overload solve with solve_R34matrix_R34vector // (* ****** ****** *) // fun matmult_R34vector_R34matrix {a:t0p} {p,q:pos} (xs: R34vector(a, p), yss: R34matrix(a, p, q)): R34matrix(a, 1, q) = "mac#%" fun matmult_R34matrix_R34vector {a:t0p} {p,q:pos} (xss: R34matrix(a, p, q), ys: R34vector(a, q)): R34matrix(a, p, 1) = "mac#%" // fun matmult_R34matrix_R34matrix {a:t0p} {p,q,r:pos} (xss: R34matrix(a, p, q), yss: R34matrix(a, q, r)): R34matrix(a, p, r) = "mac#%" // overload matmult with matmult_R34vector_R34matrix overload matmult with matmult_R34matrix_R34vector overload matmult with matmult_R34matrix_R34matrix // (* ****** ****** *) // fun crossprod_R34matrix {a:t0p} {p,q:pos}(xss: R34matrix(a, p, q)): R34matrix(a, q, q) = "mac#%" // fun crossprod_R34vector_R34matrix {a:t0p} {p,q:pos} (xss: R34vector(a, p), yss: R34matrix(a, p, q)): R34matrix(a, 1, q) = "mac#%" fun crossprod_R34matrix_R34vector {a:t0p} {p,q:pos} (xss: R34matrix(a, p, q), yss: R34vector(a, p)): R34matrix(a, q, 1) = "mac#%" fun crossprod_R34matrix_R34matrix {a:t0p} {p,q,r:pos} (xss: R34matrix(a, p, q), yss: R34matrix(a, p, r)): R34matrix(a, q, r) = "mac#%" // overload crossprod with crossprod_R34matrix overload crossprod with crossprod_R34vector_R34matrix overload crossprod with crossprod_R34matrix_R34vector overload crossprod with crossprod_R34matrix_R34matrix // (* ****** ****** *) // fun tcrossprod_R34matrix {a:t0p} {p,q:pos} (xss: R34matrix(a, p, q)): R34matrix(a, p, p) = "mac#%" fun tcrossprod_R34vector_R34matrix {a:t0p} {q,r:pos} (xss: R34vector(a, q), yss: R34matrix(a, r, q)): R34matrix(a, 1, r) = "mac#%" fun tcrossprod_R34matrix_R34vector {a:t0p} {p,q:pos} (xss: R34matrix(a, p, q), yss: R34vector(a, q)): R34matrix(a, p, 1) = "mac#%" fun tcrossprod_R34matrix_R34matrix {a:t0p} {p,q,r:pos} (xss: R34matrix(a, p, q), yss: R34matrix(a, r, q)): R34matrix(a, p, r) = "mac#%" // overload tcrossprod with tcrossprod_R34matrix overload tcrossprod with tcrossprod_R34vector_R34matrix overload tcrossprod with tcrossprod_R34matrix_R34vector overload tcrossprod with tcrossprod_R34matrix_R34matrix // (* ****** ****** *) // fun R34matrix_tabulate_fun {a:t0p} {m,n:pos} ( m: int(m) , n: int(n) , fopr: (natLt(m), natLt(n)) - a): R34matrix(a, m, n) = "mac#%" fun R34matrix_tabulate_cloref {a:t0p} {m,n:pos} ( m: int(m) , n: int(n) , fopr: (natLt(m), natLt(n)) - a): R34matrix(a, m, n) = "mac#%" // (* ****** ****** *) (* end of [R34matrix.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/integer.sats0000644000175000017500000001370213431250607023627 0ustar brandonbrandon(* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // // HX: for signed integers // (* ****** ****** *) // fun abs_int0 : int - int = "mac#%" // fun abs_int1 : {i:int} (int(i)) - int(abs(i)) = "mac#%" // overload abs with abs_int0 of 100 overload abs with abs_int1 of 100 // (* ****** ****** *) // fun neg_int0 : int - int = "mac#%" // fun neg_int1 : {i:int} int(i) - int(~i) = "mac#%" // overload ~ with neg_int0 of 100 overload ~ with neg_int1 of 110 overload neg with neg_int0 of 100 overload neg with neg_int1 of 110 // (* ****** ****** *) // fun succ_int0 : int - int = "mac#%" fun pred_int0 : int - int = "mac#%" // fun succ_int1 : {i:int} int(i) - int(i+1) = "mac#%" fun pred_int1 : {i:int} int(i) - int(i-1) = "mac#%" // overload succ with succ_int0 of 100 overload pred with pred_int0 of 100 // overload succ with succ_int1 of 110 overload pred with pred_int1 of 110 // (* ****** ****** *) // fun half_int0 : int - int = "mac#%" fun half_int1 : {i:int} int(i) - int(i/2) = "mac#%" // overload half with half_int0 of 100 overload half with half_int1 of 110 // (* ****** ****** *) // fun add_int0_int0: (int, int) - int = "mac#%" fun sub_int0_int0 : (int, int) - int = "mac#%" fun mul_int0_int0 : (int, int) - int = "mac#%" fun div_int0_int0 : (int, int) - int = "mac#%" fun mod_int0_int0 : (int, int) - int = "mac#%" // fun add_int1_int1 : {i,j:int} (int(i), int(j)) - int(i+j) = "mac#%" fun sub_int1_int1 : {i,j:int} (int(i), int(j)) - int(i-j) = "mac#%" fun mul_int1_int1 : {i,j:int} (int(i), int(j)) - int(i*j) = "mac#%" fun div_int1_int1 : {i,j:int} (int(i), int(j)) - int(i/j) = "mac#%" // (* ****** ****** *) // overload + with add_int0_int0 of 100 overload - with sub_int0_int0 of 100 overload * with mul_int0_int0 of 100 overload / with div_int0_int0 of 100 overload % with mod_int0_int0 of 100 overload mod with mod_int0_int0 of 100 // overload + with add_int1_int1 of 120 overload - with sub_int1_int1 of 120 overload * with mul_int1_int1 of 120 overload / with div_int1_int1 of 120 // (* ****** ****** *) // fun nmod_int1_int1 { i,j:int | i >= 0; j > 0 } (i: int(i), j: int(j)): int(nmod(i, j)) = "mac#%" // (* ****** ****** *) // fun asl_int0_int1 : (int, intGte(0)) - int = "mac#%" fun asr_int0_int1 : (int, intGte(0)) - int = "mac#%" // (* ****** ****** *) // overload << with asl_int0_int1 of 110 overload >> with asr_int0_int1 of 110 // (* ****** ****** *) // fun lt_int0_int0: (int, int) - bool = "mac#%" fun lte_int0_int0: (int, int) - bool = "mac#%" fun gt_int0_int0: (int, int) - bool = "mac#%" fun gte_int0_int0: (int, int) - bool = "mac#%" // fun eq_int0_int0: (int, int) - bool = "mac#%" fun neq_int0_int0: (int, int) - bool = "mac#%" // (* ****** ****** *) // fun compare_int0_int0: (int, int) - int = "mac#%" // (* ****** ****** *) // fun lt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i < j) = "mac#%" fun lte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i <= j) = "mac#%" fun gt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i > j) = "mac#%" fun gte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i >= j) = "mac#%" // fun eq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i == j) = "mac#%" fun neq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i != j) = "mac#%" // (* ****** ****** *) // overload < with lt_int0_int0 of 100 overload <= with lte_int0_int0 of 100 overload > with gt_int0_int0 of 100 overload >= with gte_int0_int0 of 100 overload = with eq_int0_int0 of 100 overload != with neq_int0_int0 of 100 overload <> with neq_int0_int0 of 100 // overload compare with compare_int0_int0 of 100 // (* ****** ****** *) // overload < with lt_int1_int1 of 120 overload <= with lte_int1_int1 of 120 overload > with gt_int1_int1 of 120 overload >= with gte_int1_int1 of 120 overload = with eq_int1_int1 of 120 overload != with neq_int1_int1 of 120 overload <> with neq_int1_int1 of 120 // (* ****** ****** *) // fun max_int0_int0 : (int, int) - int = "mac#%" fun min_int0_int0 : (int, int) - int = "mac#%" // fun max_int1_int1 : {i,j:int} (int(i), int(j)) - int(max(i,j)) = "mac#%" fun min_int1_int1 : {i,j:int} (int(i), int(j)) - int(min(i,j)) = "mac#%" // overload max with max_int0_int0 of 100 overload min with min_int0_int0 of 100 // overload max with max_int1_int1 of 120 overload min with min_int1_int1 of 120 // (* ****** ****** *) // // HX: for unsigned integers // (* ****** ****** *) // fun add_uint0_uint0: (uint, uint) - uint = "mac#%" fun sub_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mul_uint0_uint0 : (uint, uint) - uint = "mac#%" fun div_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mod_uint0_uint0 : (uint, uint) - uint = "mac#%" // (* ****** ****** *) // overload + with add_uint0_uint0 of 100 overload - with sub_uint0_uint0 of 100 overload * with mul_uint0_uint0 of 100 overload / with div_uint0_uint0 of 100 overload % with mod_uint0_uint0 of 100 overload mod with mod_uint0_uint0 of 100 // (* ****** ****** *) // fun lt_uint0_uint0: (uint, uint) - bool = "mac#%" fun lte_uint0_uint0: (uint, uint) - bool = "mac#%" fun gt_uint0_uint0: (uint, uint) - bool = "mac#%" fun gte_uint0_uint0: (uint, uint) - bool = "mac#%" // fun eq_uint0_uint0: (uint, uint) - bool = "mac#%" fun neq_uint0_uint0: (uint, uint) - bool = "mac#%" // fun compare_uint0_uint0: (uint, uint) - int = "mac#%" // (* ****** ****** *) // overload < with lt_uint0_uint0 of 100 overload <= with lte_uint0_uint0 of 100 overload > with gt_uint0_uint0 of 100 overload >= with gte_uint0_uint0 of 100 overload = with eq_uint0_uint0 of 100 overload != with neq_uint0_uint0 of 100 overload <> with neq_uint0_uint0 of 100 // overload compare with compare_uint0_uint0 of 100 // (* ****** ****** *) (* end of [integer.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/R34factor.sats0000644000175000017500000000107413431250607023740 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2018-02: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #staload "./../basics_r34.sats" // (* ****** ****** *) // fun R34factor_levels {n:int} ( xs: R34factor(n) ) : R34vector(string, n) = "mac#%" // overload levels with R34factor_levels // (* ****** ****** *) // castfn R34vector2factor_unsafe {a:t0p}{n:int} (xs: R34vector(a, n)): R34factor(n) = "mac#%" // (* ****** ****** *) (* end of [R34factor.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/bool.sats0000644000175000017500000000471213431250607023126 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // fun bool2int0 (b: bool):<> natLt(2) = "mac#%" fun bool2int1 {b:bool} (b: bool(b)):<> int(bool2int(b)) = "mac#%" // symintr bool2int overload bool2int with bool2int0 of 100 overload bool2int with bool2int1 of 110 // (* ****** ****** *) // fun int2bool0 (i: int):<> bool = "mac#%" fun int2bool1 {i:int}(i: int(i)):<> bool(i != 0) = "mac#%" // symintr int2bool overload int2bool with int2bool0 of 100 overload int2bool with int2bool1 of 110 // (* ****** ****** *) // fun neg_bool0 : bool -> bool = "mac#%" fun neg_bool1 : {b:bool} bool(b) -> bool(~b) = "mac#%" // overload ~ with neg_bool0 of 100 overload ~ with neg_bool1 of 110 // overload not with neg_bool0 of 100 overload not with neg_bool1 of 110 // (* ****** ****** *) fun add_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload + with add_bool0_bool0 of 100 fun add_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 || b2) = "mac#%" overload + with add_bool0_bool1 of 110 fun add_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 || b2) = "mac#%" overload + with add_bool1_bool0 of 110 fun add_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 || b2) = "mac#%" overload + with add_bool1_bool1 of 120 (* ****** ****** *) fun mul_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload * with mul_bool0_bool0 of 100 fun mul_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool0_bool1 of 110 fun mul_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool0 of 110 fun mul_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool1 of 120 (* ****** ****** *) // fun eq_bool0_bool0 : (bool, bool) -> bool = "mac#%" fun neq_bool0_bool0 : (bool, bool) -> bool = "mac#%" // fun eq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 == b2) = "mac#%" fun neq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 != b2) = "mac#%" // overload = with eq_bool0_bool0 of 100 overload = with eq_bool1_bool1 of 120 // overload != with neq_bool0_bool0 of 100 overload != with neq_bool1_bool1 of 120 // (* ****** ****** *) (* end of [bool.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/option.sats0000644000175000017500000000076213431250607023504 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_r34.sats" // #include "{$LIBATSCC}/SATS/option.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option (R34filr, Option(INV(a))): void = "mac#%" // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/stream.sats0000644000175000017500000000107613431250607023466 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_r34.sats" // #include "{$LIBATSCC}/SATS/stream.sats" // (* ****** ****** *) // fun stream_nth_exn {a:t0p} ( xs: stream(INV(a)), n: intGte(0) ) : (a) = "mac#%" // end-of-function // overload [] with stream_nth_exn of 100 // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/print.sats0000644000175000017500000000231013431250607023317 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_" // (* ****** ****** *) #staload "./../basics_r34.sats" (* ****** ****** *) // (* typedef fprint_type ( a:t@ype ) = (R34filr, a) - void *) // (* ****** ****** *) fun print_int : int -> void = "mac#%" fun print_uint : uint -> void = "mac#%" (* ****** ****** *) fun print_bool : bool -> void = "mac#%" (* ****** ****** *) fun print_double : double -> void = "mac#%" (* ****** ****** *) // fun print_string : string -> void = "mac#%" fun fprint_string (R34filr, string): void = "mac#%" // (* ****** ****** *) fun print_obj{a:t0p}(obj: a): void = "mac#%" (* ****** ****** *) fun print_newline : ((*void*)) -> void = "mac#%" (* ****** ****** *) overload print with print_int of 100 overload print with print_uint of 100 overload print with print_bool of 100 overload print with print_double of 100 overload print with print_string of 100 (* ****** ****** *) // fun {a:t0p} print_val (x: a): void = "mac#%" // fun {a:t0p} fprint_val (R34filr, x: a): void = "mac#%" // (* ****** ****** *) (* end of [print.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/ML/0000755000175000017500000000000013431250607021603 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/ML/option0.sats0000644000175000017500000000105513431250607024070 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../../basics_r34.sats" // #include "{$LIBATSCC}/SATS/ML/option0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option0 (R34filr, option0(INV(a))): void = "mac#%" // overload fprint with fprint_option0 of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2r34/SATS/ML/list0.sats0000644000175000017500000000240313431250607023531 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into R(stat) *) (* ****** ****** *) // // HX-2017-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2r34pre_ML_" // (* ****** ****** *) // // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../../basics_r34.sats" // #include "{$LIBATSCC}/SATS/ML/list0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list0 (R34filr, list0(INV(a))): void = "mac#%" // fun{} fprint_list0$sep(out: R34filr): void = "mac#%" // fun{a:t0p} fprint_list0_sep (R34filr, list0(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list0 of 100 // (* ****** ****** *) // fun list0_head_exn {a:t0p} (list0(INV(a))): (a) = "mac#%" fun list0_tail_exn {a:t0p} (list0(INV(a))): list0(a) = "mac#%" // overload .head with list0_head_exn overload .tail with list0_tail_exn // (* ****** ****** *) // fun list0_get_at_exn {a:t0p} (list0(INV(a)), intGte(0)): (a) = "mac#%" // (* ****** ****** *) // fun list0_insert_at_exn {a:t0p} ( xs: list0(INV(a)), i: intGte(0), x0: a ) : list0(a) = "mac#%" // end-of-function // (* ****** ****** *) // fun list0_remove_at_exn {a:t0p} (xs: list0(INV(a)), i: intGte(0)): list0(a) = "mac#%" // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/0000755000175000017500000000000013431250607020676 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/catsparse_all.dats0000644000175000017500000000313713431250607024374 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2015-05-20 // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 // #define ATS_DYNLOADNAME "catsparse_all_dynload" // (* ****** ****** *) local #include "./DATS/catsparse_mylib.dats" in (*nothing*) end (* ****** ****** *) // local #include "./DATS/catsparse_error.dats" in (*nothing*) end local #include "./DATS/catsparse_print.dats" in (*nothing*) end // local #include "./DATS/catsparse_symbol.dats" in (*nothing*) end // local #include "./DATS/catsparse_fname.dats" in (*nothing*) end local #include "./DATS/catsparse_posloc.dats" in (*nothing*) end // local #include "./DATS/catsparse_global.dats" in (*nothing*) end // local #include "./DATS/catsparse_syntax.dats" in (*nothing*) end // local #include "./DATS/catsparse_lexerr.dats" in (*nothing*) end local #include "./DATS/catsparse_lexbuf.dats" in (*nothing*) end local #include "./DATS/catsparse_lexing.dats" in (*nothing*) end local #include "./DATS/catsparse_tokbuf.dats" in (*nothing*) end // local #include "./DATS/catsparse_parerr.dats" in (*nothing*) end local #include "./DATS/catsparse_parsing.dats" in (*nothing*) end local #include "./DATS/catsparse_parsing_d0exp.dats" in (*nothing*) end local #include "./DATS/catsparse_parsing_d0ecl.dats" in (*nothing*) end local #include "./DATS/catsparse_parsing_instr.dats" in (*nothing*) end // local #include "./DATS/catsparse_emit.dats" in (*nothing*) end local #include "./DATS/catsparse_typedef.dats" in (*nothing*) end local #include "./DATS/catsparse_fundecl.dats" in (*nothing*) end // (* ****** ****** *) (* end of [catsparse_all.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/0000755000175000017500000000000013431250607021431 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_fname.dats0000644000175000017500000000127713431250607025450 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/catsparse.sats" (* ****** ****** *) // datatype filename = FNAME of (string) // assume filename_type = filename // (* ****** ****** *) implement filename_dummy = FNAME ("") implement filename_stdin = FNAME ("__STDIN__") (* ****** ****** *) implement filename_make(path) = FNAME(path) (* ****** ****** *) implement fprint_filename (out, fil) = let // val+FNAME (fname) = fil // in fprint_string (out, fname) end // end of [fprint_filename] (* ****** ****** *) (* end of [catsparse_fname.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_parerr.dats0000644000175000017500000000711513431250607025652 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) staload "./../SATS/catsparse.sats" staload "./../SATS/catsparse_parsing.sats" (* ****** ****** *) // implement parerr_make (loc, node) = '{ parerr_loc= loc, parerr_node= node } // (* ****** ****** *) // implement the_parerrlst_clear () = list_vt_free (the_parerrlst_pop_all ()) // (* ****** ****** *) // implement the_parerrlst_add (loc, node) = the_parerrlst_insert (parerr_make (loc, node)) // (* ****** ****** *) implement the_parerrlst_add_ifnbt (bt, loc, node) = let in // if (bt = 0) then the_parerrlst_add (loc, node) else () // end // end of [the_parerrlst_add_ifnt] (* ****** ****** *) fun synent_needed ( out: FILEref , x: parerr, name: string ) : void = () where { // val () = fprint (out, x.parerr_loc) val () = fprintln! (out, ": error(parsing): the syntactic entity [", name, "] is needed.") // } (* end of [synent_needed] *) (* ****** ****** *) fun keyword_needed ( out: FILEref , x: parerr, name: string ) : void = () where { val () = fprint (out, x.parerr_loc) val () = fprintln! (out, ": error(parsing): the keyword [", name, "] is needed.") } (* end of [keyword_needed] *) (* ****** ****** *) implement fprint_parerr (out, x) = let // macdef SN (x,name) = synent_needed (out, ,(x), ,(name)) macdef KN (x, name) = keyword_needed (out, ,(x), ,(name)) // in // case+ x.parerr_node of // | PARERR_EOF () => KN (x, "EOF") // | PARERR_COMMA () => KN (x, "COMMA") | PARERR_COLON () => KN (x, "COLON") | PARERR_SEMICOLON () => KN (x, "SEMICOLON") // | PARERR_LPAREN () => KN (x, "(") | PARERR_RPAREN () => KN (x, ")") // | PARERR_LBRACE () => KN (x, "{") | PARERR_RBRACE () => KN (x, "}") // | PARERR_INT () => SN (x, "INT") | PARERR_ZERO () => SN (x, "ZERO") | PARERR_INT10 () => SN (x, "INT10") // | PARERR_FLOAT () => SN (x, "FLOAT") // | PARERR_STRING () => SN (x, "STRING") // | PARERR_SRPendif () => SN (x, "#endif") // | PARERR_ATSbranch_end () => SN (x, "ATSbranch_end") | PARERR_ATScaseof_end () => SN (x, "ATScaseof_end") // | PARERR_ATSextcode_end () => SN (x, "ATSextcode_end") // | PARERR_ATSfunbody_end () => SN (x, "ATSfunbody_end") // | PARERR_ATStailcal_end () => SN (x, "ATStailcal_end") // | PARERR_ATSINSmove_con1_end () => SN (x, "ATSINSmove_con1_end") | PARERR_ATSINSmove_fltrec_end () => SN (x, "ATSINSmove_fltrec_end") | PARERR_ATSINSmove_boxrec_end () => SN (x, "ATSINSmove_boxrec_end") // | PARERR_i0dex () => SN (x, "i0de") // | PARERR_s0exp () => SN (x, "s0exp") | PARERR_d0exp () => SN (x, "d0exp") | PARERR_d0ecl () => SN (x, "d0ecl") // | PARERR_instr () => SN (x, "instr") // | PARERR_ATSclosurerize_end () => SN (x, "ATSclosurerize_end") // end // end of [fprint_parerr] (* ****** ****** *) implement fprint_parerrlst (out, xs) = ( // case+ xs of | list_nil () => () | list_cons (x, xs) => { val () = fprint_parerr (out, x) val () = fprint_parerrlst (out, xs) } // ) (* end of [fprint_parerrlst] *) (* ****** ****** *) implement the_parerrlst_print_free () = nerr where { // val xs = the_parerrlst_pop_all () // end of [val] val xs = list_vt_reverse (xs) val nerr = list_vt_length (xs) val () = if nerr > 0 then { val () = fprint (stderr_ref, "ParsingErrors:\n") val () = fprint_parerrlst (stderr_ref, $UN.list_vt2t(xs)) } (* end of [if] *) val ((*freed*)) = list_vt_free (xs) // } (* end of [the_parerrlst_print_free] *) (* ****** ****** *) (* end of [catsparse_parerr.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_emit.dats0000644000175000017500000000744413431250607025322 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-08-04: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/catsparse.sats" staload "./../SATS/catsparse_syntax.sats" // (* ****** ****** *) // staload "./../SATS/catsparse_emit.sats" // (* ****** ****** *) implement emit_ENDL(out) = emit_text(out, "\n") (* ****** ****** *) implement emit_SPACE(out) = emit_text(out, " ") (* ****** ****** *) implement emit_DOT(out) = emit_text(out, ".") (* ****** ****** *) // implement emit_COLON(out) = emit_text(out, ":") // implement emit_COMMA(out) = emit_text(out, ",") // implement emit_SEMICOLON(out) = emit_text(out, ";") // (* ****** ****** *) implement emit_AMPER(out) = emit_text(out, "&") (* ****** ****** *) implement emit_SHARP(out) = emit_text(out, "#") (* ****** ****** *) implement emit_DOLLAR(out) = emit_text(out, "$") (* ****** ****** *) implement emit_SQUOTE(out) = emit_text(out, "'") implement emit_DQUOTE(out) = emit_text(out, "\"") (* ****** ****** *) // implement emit_LPAREN(out) = emit_text(out, "(") implement emit_RPAREN(out) = emit_text(out, ")") // implement emit_LBRACKET(out) = emit_text(out, "[") implement emit_RBRACKET(out) = emit_text(out, "]") // implement emit_LBRACE(out) = emit_text(out, "{") implement emit_RBRACE(out) = emit_text(out, "}") // (* ****** ****** *) implement emit_MINUSGT(out) = emit_text(out, "->") (* ****** ****** *) implement emit_flush(out) = fileref_flush(out) implement emit_newline(out) = fprint_newline(out) (* ****** ****** *) // implement emit_nspc(out, ind) = ( // if (ind > 0) then ( emit_text(out, " "); emit_nspc(out, ind-1) ) (* end of [if] *) // ) (* end of [emit_nspc] *) // (* ****** ****** *) // implement emit_int(out, x) = fprint_int(out, x) // implement emit_char(out, x) = fprint_char(out, x) // implement emit_text(out, x) = fprint_string(out, x) // (* ****** ****** *) // implement emit_symbol(out, x) = fprint_string(out, symbol_get_name(x)) // (* ****** ****** *) // implement emit_i0de (out, id) = emit_symbol(out, id.i0dex_sym) implement emit_label (out, lab) = emit_symbol(out, lab.i0dex_sym) // (* ****** ****** *) implement emit_tokenlst (out, toks) = let // fun auxtok ( out: FILEref, tok: token ) : void = ( case+ tok.token_node of // | T_KWORD _ => () // | T_ENDL() => emit_ENDL(out) | T_SPACES(cs) => emit_text(out, cs) // | T_COMMENT_line _ => emit_COMMENT_line(out, tok) | T_COMMENT_block _ => emit_COMMENT_block(out, tok) // | T_INT(_, rep) => emit_text(out, rep) | T_FLOAT(_, rep) => emit_text(out, rep) // | T_STRING(str) => emit_text(out, str) // | T_IDENT_alp(name) => ( emit_text(out, name) ) (* end of [T_IDENT_alp] *) | T_IDENT_srp(name) => ( emit_SHARP(out); emit_text(out, name) ) (* end of [T_IDENT_srp] *) // | T_IDENT_sym(name) => emit_text(out, name) // | T_LPAREN() => emit_LPAREN(out) | T_RPAREN() => emit_RPAREN(out) // | T_LBRACKET() => emit_LBRACKET(out) | T_RBRACKET() => emit_RBRACKET(out) // | T_LBRACE() => emit_LBRACE(out) | T_RBRACE() => emit_RBRACE(out) // | T_LT((*void*)) => emit_text(out, "<") | T_GT((*void*)) => emit_text(out, ">") // | T_MINUS() => emit_text(out, "-") // | T_COLON() => emit_text(out, ":") // | T_COMMA() => emit_text(out, ",") | T_SEMICOLON() => emit_text(out, ";") // | T_SLASH() => emit_text(out, "/") // | _ (*unrecognized*) => { val () = fprint!(out, "TOKERR(", tok, ")") } ) (* end of [auxtok] *) // in // case+ toks of | list_nil () => () | list_cons (tok, toks) => ( auxtok (out, tok); emit_extcode (out, toks) ) (* end of [list_cons] *) // end // end of [emit_tokenlst] (* ****** ****** *) // implement emit_extcode (out, toks) = emit_tokenlst (out, toks) // (* ****** ****** *) (* end of [catsparse_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_lexerr.dats0000644000175000017500000000340613431250607025657 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) staload "./../SATS/catsparse.sats" (* ****** ****** *) // implement lexerr_make (loc, node) = '{ lexerr_loc= loc, lexerr_node= node } // (* ****** ****** *) // implement the_lexerrlst_clear () = list_vt_free (the_lexerrlst_pop_all ()) // (* ****** ****** *) implement print_lexerr (x) = fprint (stdout_ref, x) implement prerr_lexerr (x) = fprint (stderr_ref, x) (* ****** ****** *) implement fprint_lexerr (out, x) = let // val () = fprint! (out, x.lexerr_loc, ": ") // in // case+ x.lexerr_node of | LEXERR_FEXPONENT_nil () => { val () = fprintln! (out, "Floating number exponent is nil") } | LEXERR_UNSUPPORTED_char (c) => { val i = char2int0(c) val () = fprintln! (out, "Unrecognized char: ", c, "(", i, ")") } // end // end of [fprint_lexerr] (* ****** ****** *) implement fprint_lexerrlst (out, xs) = ( // case+ xs of | list_nil () => () | list_cons (x, xs) => { val () = fprint_lexerr (out, x) val () = fprint_lexerrlst (out, xs) } // ) (* end of [fprint_lexerrlst] *) (* ****** ****** *) implement the_lexerrlst_print_free () = nerr where { // val xs = the_lexerrlst_pop_all () // end of [val] val xs = list_vt_reverse (xs) val nerr = list_vt_length (xs) val () = if nerr > 0 then { val () = fprint (stderr_ref, "LexingErrors:\n") val () = fprint_lexerrlst (stderr_ref, $UN.list_vt2t(xs)) } (* end of [if] *) val ((*freed*)) = list_vt_free (xs) // } (* end of [the_lexerrlst_print_free] *) (* ****** ****** *) (* end of [catsparse_lexerr.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_parsing_d0ecl.dats0000644000175000017500000003302313431250607027066 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) // staload "./../SATS/catsparse.sats" // staload "./../SATS/catsparse_syntax.sats" staload "./../SATS/catsparse_parsing.sats" // (* ****** ****** *) infix ++ overload ++ with location_combine (* ****** ****** *) implement parse_tmpdec (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_KWORD(ATStmpdec()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then tmpdec_make_some (tok, ent2, ent4, ent5) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATStmpdec] | T_KWORD(ATStmpdec_void()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then tmpdec_make_none (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATStmpdec_void] // | _ (*error*) => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [parse_tmpdec] (* ****** ****** *) // implement parse_tmpdecs (buf, bt, err) = list_vt2t (pstar_fun (buf, bt, parse_tmpdec)) // (* ****** ****** *) implement parse_f0body (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_LBRACE () => let val bt = 0 val () = incby1 () val ent1 = pif_fun (buf, bt, err, parse_tmpdecs, err0) val ent2 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent3 = pif_fun (buf, bt, err, p_RBRACE, err0) in if err = err0 then f0body_make (tok, ent1, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [T_LBRACE] | _ (*error*) => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [parse_f0body] (* ****** ****** *) implement parse_f0decl (buf, bt, err) = let // val err0 = err var ent: synent? val ntok0 = tokbuf_get_ntok (buf) // val ent1 = parse_f0head (buf, bt, err) // in // if ( err = err0 ) then ( case+ 0 of | _ when ptest_fun ( buf, parse_f0body, ent ) => let val ent2 = synent_decode2{f0body}(ent) in f0decl_some (ent1, ent2) end // ... // | _ when p_SEMICOLON_test (buf) => f0decl_none (ent1) // | _ (*error*) => let val () = err := err + 1 in f0decl_none (ent1) end // end of [_] // ) else tokbuf_set_ntok_null (buf, ntok0) // end // end of [parse_f0decl] (* ****** ****** *) implement parse_d0ecl (buf, bt, err) = let // val err0 = err var ent: synent? // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | _ when ptest_SRPif0 (buf) => let (* val bt = 0 // HX-2015-09-30: fixed *) val () = pskip_SRPif0 (buf, 1(*level*)) in parse_d0ecl (buf, bt, err) end // end of [#if(0)] // | T_KWORD(SRPinclude()) => let val bt = 0 val () = incby1 () val tok2 = tokbuf_get_token (buf) in case+ tok2.token_node of | T_STRING _ => let val () = incby1 () in d0ecl_include (tok, tok2) end // end of [T_STRING] | T_IDENT_alp _ => let val () = incby1 () in d0ecl_include (tok, tok2) end // end of [T_IDENT_alp] | _ (*error*) => tokbuf_set_ntok_null (buf, n0) end // end of [SRPinclude] // | T_KWORD(SRPifdef()) => let val bt = 0 val () = incby1 () val ent1 = parse_i0dex (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0eclseq, err0) val ent3 = pif_fun (buf, bt, err, p_SRPendif, err0) in if err = err0 then ( d0ecl_ifdef (tok, ent1, ent2, ent3) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [SRPifdef] // | T_KWORD(SRPifndef()) => let val bt = 0 val () = incby1 () val ent1 = parse_i0dex (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0eclseq, err0) val ent3 = pif_fun (buf, bt, err, p_SRPendif, err0) in if err = err0 then ( d0ecl_ifdef (tok, ent1, ent2, ent3) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [SRPifndef] // | T_KWORD(TYPEDEF()) => let val bt = 0 val () = incby1 () val ent1 = parse_tyrec (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then let (* val name = ent2.i0dex_sym val ((*void*)) = typedef_insert (name, ent3) // end of [val] *) in d0ecl_typedef (tok, ent1, ent2) end // end of [then] else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [TYPEDEF] // | T_KWORD(ATSassume()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_assume (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSassume] // | T_KWORD(ATSdyncst_mac()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0ecl_dyncst_mac (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSdyncst_mac] // | T_KWORD(ATSdyncst_extfun()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent5 = pif_fun (buf, bt, err, parse_s0expseq, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent7 = pif_fun (buf, bt, err, p_COMMA, err0) val ent8 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent9 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent10 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_dyncst_extfun (tok, ent2, ent5, ent8, ent9) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSdyncst_extfun] // | T_KWORD(ATSdyncst_valdec()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_dyncst_valdec (tok, ent2, ent4, ent5) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSdyncst_valdec] // | T_KWORD(ATSdyncst_valimp()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_dyncst_valimp (tok, ent2, ent4, ent5) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSdyncst_valimp] // | T_KWORD(ATSextcode_beg()) => let val bt = 0 val () = incby1 () val ent1 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, parse_extcode, err0) val ent4 = pif_fun (buf, bt, err, p_ATSextcode_end, err0) val ent5 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0ecl_extcode (tok, ent3, ent6) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSextcode_beg] // | T_KWORD(ATSstatmpdec()) => let val bt = 0 val () = incby1 () val ent1 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( d0ecl_statmp_some (tok, ent2, ent4, ent5) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSstatmpdec] // | T_KWORD(ATSstatmpdec_void()) => let val bt = 0 val () = incby1 () val ent1 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_statmp_none (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSstatmpdec] // | _ when ptest_fun ( buf, parse_fkind, ent ) => let val bt = 0 val ent1 = synent_decode2{fkind}(ent) // end of [val] val ent2 = parse_f0decl (buf, bt, err) in if err = err0 then d0ecl_fundecl (ent1, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [parse_fkind] // | T_KWORD(ATSclosurerize_beg()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_label, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exparg, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_s0exparg, err0) val ent7 = pif_fun (buf, bt, err, p_COMMA, err0) val ent8 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent9 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent10 = pif_fun (buf, bt, err, parse_closurerize, err0) val ent11 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent12 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( d0ecl_closurerize (tok, ent2, ent4, ent6, ent8, ent9) ) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSclosurerize_beg] // | T_KWORD(ATSdynloadflag_init()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_dynloadflag_init (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSdynloadflag_init] // | T_KWORD(ATSdynloadflag_minit()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_dynloadflag_minit (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSdynloadflag_minit] // | T_KWORD(ATSdynexn_dec()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_dynexn_dec (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSdynexn_dec] | T_KWORD(ATSdynexn_extdec()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_dynexn_extdec (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSdynexn_extdec] | T_KWORD(ATSdynexn_initize()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, p_STRING, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then d0ecl_dynexn_initize (tok, ent2, ent4, ent5) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSdynexn_extdec] // | _ (*error*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PARERR_d0ecl) in synent_null ((*void*)) end // end of [_] // end // end of [parse_d0ecl] (* ****** ****** *) // implement parse_d0eclseq (buf, bt, err) = list_vt2t (pstar_fun (buf, bt, parse_d0ecl)) // (* ****** ****** *) (* end of [catsparse_parsing_d0ecl.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_fundecl.dats0000644000175000017500000000254113431250607025775 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "./../SATS/catsparse.sats" #staload "./../SATS/catsparse_fundecl.sats" // (* ****** ****** *) staload F0HEAD = { // #staload "./../SATS/catsparse.sats" // typedef key = symbol and itm = f0head // implement gequal_val_val (k1, k2) = (k1 = k2) // #staload "libats/SATS/hashtbl_chain.sats" // implement hash_key(sym) = // // HX: // [gidentity] // is called to circumvent a bug // involving tail-call optimization // ( gidentity ( hash_key ( symbol_get_name(sym) ) ) ) // implement hashtbl$recapacitize<> ((*void*)) = 1(*resizable*) // #define CAPACITY 1024 // #define HX_GLOBALS_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-globals" #include "{$HX_GLOBALS}/HATS/ghashtbl_chain.hats" // } (* end of [staload] *) (* ****** ****** *) implement f0head_insert (fhd) = let (* // val () = println! ("f0head_insert") // *) // val+ F0HEAD(fid, _, _) = fhd.f0head_node // val opt = $F0HEAD.insert_opt(fid.i0dex_sym, fhd) // in // case+ opt of | ~None_vt _ => () | ~Some_vt _ => () // end // end of [typedef_insert] (* ****** ****** *) // implement f0head_search_opt (name) = $F0HEAD.search_opt (name) // (* ****** ****** *) (* end of [catsparse_fundecl.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_symbol.dats0000644000175000017500000000354213431250607025664 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/catsparse.sats" (* ****** ****** *) // datatype symbol = SYMBOL of (string(*name*), int(*stamp*)) // (* ****** ****** *) assume symbol_type = symbol (* ****** ****** *) // implement symbol_get_name (sym) = let val+SYMBOL (name, _) = sym in name end // (* ****** ****** *) implement eq_symbol_symbol (x1, x2) = let val+SYMBOL (_, n1) = x1 val+SYMBOL (_, n2) = x2 in if n1 = n2 then true else false end // end of [eq_symbol_symbol] (* ****** ****** *) local staload SYMCNT = { // #staload _(*anon*) = "prelude/DATS/integer.dats" // #define HX_GLOBALS_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-globals" #include "{$HX_GLOBALS}/HATS/gcount.hats" // } (* end of [staload] *) (* ****** ****** *) staload SYMBOL = { // #staload "./../SATS/catsparse.sats" // typedef key = string typedef itm = symbol // #define CAPACITY 4096 // #staload "libats/SATS/hashtbl_linprb.sats" // implement hashtbl$recapacitize<> ((*void*)) = 1 // #define HX_GLOBALS_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-globals" #include "{$HX_GLOBALS}/HATS/ghashtbl_linprb.hats" // } (* end of [staload] *) in (* in-of-local *) implement symbol_make(name) = let // val cp = $SYMBOL.search_ref (name) // in // if isneqz(cp) then $UNSAFE.cptr_get (cp) else let val n = $SYMCNT.getinc () val sym = SYMBOL (name, n) val-~None_vt() = $SYMBOL.insert_opt (name, sym) in sym end // end of [else] // end // end of [symbol_make] end // end of [local] (* ****** ****** *) implement fprint_symbol (out, x) = let val+SYMBOL (name, n) = x in fprint! (out, name, "(", n, ")") end // end of [fprint_symbol] (* ****** ****** *) (* end of [catsparse_symbol.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_tokbuf.dats0000644000175000017500000000600613431250607025647 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) // staload DA = "libats/SATS/dynarray.sats" staload _(*DA*) = "libats/DATS/dynarray.dats" // (* ****** ****** *) staload "./../SATS/catsparse.sats" (* ****** ****** *) assume tokbuf_vt0ype = _tokbuf_vt0ype (* ****** ****** *) implement tokbuf_initize_string (buf, inp) = let // #define TOKBUFSZ 1024 // val () = buf.tokbuf_ntok := i2sz(0) val () = buf.tokbuf_tkbf := $DA.dynarray_make_nil(i2sz(TOKBUFSZ)) val () = lexbuf_initize_string (buf.tokbuf_lxbf, inp) // in // nothing end // end of [tokbuf_initize_string] (* ****** ****** *) implement tokbuf_initize_fileref (buf, inp) = let // #define TOKBUFSZ 1024 // val () = buf.tokbuf_ntok := i2sz(0) val () = buf.tokbuf_tkbf := $DA.dynarray_make_nil(i2sz(TOKBUFSZ)) val () = lexbuf_initize_fileref (buf.tokbuf_lxbf, inp) // in // nothing end // end of [tokbuf_initize_fileref] (* ****** ****** *) implement tokbuf_reset (buf) = () where { val ntok = buf.tokbuf_ntok val ((*void*)) = buf.tokbuf_ntok := i2sz(0) val ntok2 = $DA.dynarray_removeseq_at (buf.tokbuf_tkbf, i2sz(0), ntok) } (* end of [tokbuf_reset] *) (* ****** ****** *) implement tokbuf_uninitize (buf) = () where { // val () = $DA.dynarray_free (buf.tokbuf_tkbf) // val ( ) = lexbuf_uninitize (buf.tokbuf_lxbf) // } (* end of [tokbuf_uninitize] *) (* ****** ****** *) implement tokbuf_get_ntok (buf) = buf.tokbuf_ntok implement tokbuf_set_ntok (buf, ntok) = buf.tokbuf_ntok := ntok (* ****** ****** *) // implement tokbuf_incby1 (buf) = buf.tokbuf_ntok := succ(buf.tokbuf_ntok) implement tokbuf_incby_count (buf, n) = buf.tokbuf_ntok := buf.tokbuf_ntok + n // (* ****** ****** *) implement tokbuf_get_token (buf) = let // val ntok = buf.tokbuf_ntok val ptok = $DA.dynarray_getref_at (buf.tokbuf_tkbf, ntok) // in // if isneqz(ptok) then $UN.cptr_get (ptok) else let // val tok = lexbuf_get_token_skip (buf.tokbuf_lxbf) val ((*void*)) = $DA.dynarray_insert_atend_exn (buf.tokbuf_tkbf, tok) // in tok end // end of [else] // end // end of [tokbuf_get_token] (* ****** ****** *) implement tokbuf_get_token_any (buf) = let // val ntok = buf.tokbuf_ntok val ptok = $DA.dynarray_getref_at (buf.tokbuf_tkbf, ntok) // in // if isneqz(ptok) then $UN.cptr_get(ptok) else let // val tok = lexbuf_get_token_any(buf.tokbuf_lxbf) val ((*void*)) = $DA.dynarray_insert_atend_exn(buf.tokbuf_tkbf, tok) // in tok end // end of [else] // end // end of [tokbuf_get_token_any] (* ****** ****** *) implement tokbuf_getinc_token (buf) = tok where { val tok = tokbuf_get_token(buf) val ((*void*)) = tokbuf_incby1(buf) } (* end of [tokbuf_getinc_token] *) (* ****** ****** *) implement tokbuf_get_location (buf) = let val tok = tokbuf_get_token(buf) in tok.token_loc end // end of [tokbuf_get_location] (* ****** ****** *) (* end of [catsparse_tokbuf.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_parsing.dats0000644000175000017500000005400413431250607026021 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) // staload "./../SATS/catsparse.sats" // staload "./../SATS/catsparse_syntax.sats" staload "./../SATS/catsparse_parsing.sats" // (* ****** ****** *) #define NULL the_null_ptr (* ****** ****** *) infix ++ overload ++ with location_combine (* ****** ****** *) fun token_null ( // argumentless ) : token = $UN.cast{token}(NULL) (* ****** ****** *) implement tokbuf_set_ntok_null (buf, n0) = let // val () = tokbuf_set_ntok(buf, n0) in synent_null() // end // end of [tokbuf_set_ntok_null] (* ****** ****** *) implement ptoken_fun ( buf, bt, err, f, enode ) = let // val tok = tokbuf_get_token (buf) // (* val () = println! ("ptoken_fun: tok = ", tok) *) // in if f (tok.token_node) then let val () = tokbuf_incby1 (buf) in tok end else let val loc = tok.token_loc val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, enode) in token_null () end // end of [_] // end // end of [ptoken_fun] (* ****** ****** *) implement ptoken_test_fun (buf, f) = let val tok = tokbuf_get_token (buf) in // if f(tok.token_node) then let val () = tokbuf_incby1 (buf) in true end // end of [then] else false // end of [else] // end // end of [ptoken_test_fun] (* ****** ****** *) implement ptest_SRPif0 (buf) = let // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // (* val () = println! ("ptest_SRPif0: tok = ", tok) *) // in // case+ tok.token_node of | T_KWORD(SRPif()) => test where { val () = incby1 () val test = p_LPAREN_test (buf) val test = ( if test then p_ZERO_test (buf) else false ) : bool // end of [val] val test = ( if test then p_RPAREN_test (buf) else false ) : bool // end of [val] val () = if not(test) then tokbuf_set_ntok (buf, n0) } (* end of [SRPif] *) | _ (*non-SRPif*) => false // end // end of [ptest_SRPif0] (* ****** ****** *) implement pskip_SRPif0 (buf, level) = let in // case+ 0 of | _ when ptest_SRPif0 (buf) => ( pskip_SRPif0 (buf, level + 1) ) (* end of [SRPif0] *) | _ (*non-SRPif0*) => let val tok = tokbuf_get_token (buf) val ((*void*)) = tokbuf_incby1 (buf) (* val ((*void*)) = println! ("pskip_SRPif0: tok = ", tok) *) in case+ tok.token_node of | T_EOF () => () | T_KWORD(SRPendif()) => if level >= 2 then pskip_SRPif0 (buf, level-1) else () | _ (* non-SRPendif *) => pskip_SRPif0 (buf, level) end // end of [non-SRPif0] // end // end of [pskip_SRPif0] (* ****** ****** *) // implement is_EOF (x) = case+ x of | T_EOF () => true | _ => false // implement p_EOF (buf, bt, err) = ptoken_fun (buf, bt, err, is_EOF, PARERR_EOF) // (* ****** ****** *) // implement is_COMMA (x) = case+ x of | T_COMMA () => true | _ => false // implement p_COMMA (buf, bt, err) = ptoken_fun (buf, bt, err, is_COMMA, PARERR_COMMA) // implement p_COMMA_test (buf) = ptoken_test_fun (buf, is_COMMA) // (* ****** ****** *) // implement is_COLON (x) = case+ x of | T_COLON () => true | _ => false // implement p_COLON (buf, bt, err) = ptoken_fun (buf, bt, err, is_COLON, PARERR_COLON) // implement p_COLON_test (buf) = ptoken_test_fun (buf, is_COLON) // (* ****** ****** *) // implement is_SEMICOLON (x) = case+ x of | T_SEMICOLON () => true | _ => false // implement p_SEMICOLON (buf, bt, err) = ptoken_fun (buf, bt, err, is_SEMICOLON, PARERR_SEMICOLON) // implement p_SEMICOLON_test (buf) = ptoken_test_fun (buf, is_SEMICOLON) // (* ****** ****** *) // implement is_LPAREN (x) = case+ x of | T_LPAREN () => true | _ => false implement p_LPAREN (buf, bt, err) = ptoken_fun (buf, bt, err, is_LPAREN, PARERR_LPAREN) implement p_LPAREN_test (buf) = ptoken_test_fun (buf, is_LPAREN) // implement is_RPAREN (x) = case+ x of | T_RPAREN () => true | _ => false implement p_RPAREN (buf, bt, err) = ptoken_fun (buf, bt, err, is_RPAREN, PARERR_RPAREN) implement p_RPAREN_test (buf) = ptoken_test_fun (buf, is_RPAREN) // (* ****** ****** *) // implement is_LBRACE (x) = case+ x of | T_LBRACE () => true | _ => false implement p_LBRACE (buf, bt, err) = ptoken_fun (buf, bt, err, is_LBRACE, PARERR_LBRACE) // (* ****** ****** *) // implement is_RBRACE (x) = case+ x of | T_RBRACE () => true | _ => false implement p_RBRACE (buf, bt, err) = ptoken_fun (buf, bt, err, is_RBRACE, PARERR_RBRACE) // (* ****** ****** *) // implement is_INT (x) = case+ x of | T_INT _ => true | _ => false // implement p_INT (buf, bt, err) = ptoken_fun (buf, bt, err, is_INT, PARERR_INT) // (* ****** ****** *) // implement is_INT10 (x) = case+ x of | T_INT (10, _) => true | _ => false // implement p_INT10 (buf, bt, err) = ptoken_fun (buf, bt, err, is_INT10, PARERR_INT10) // (* ****** ****** *) // implement is_ZERO (x) = case+ x of | T_INT (_, "0") => true | _ => false // implement p_ZERO (buf, bt, err) = ptoken_fun (buf, bt, err, is_ZERO, PARERR_ZERO) // implement p_ZERO_test (buf) = ptoken_test_fun (buf, is_ZERO) // (* ****** ****** *) // implement is_FLOAT (x) = case+ x of | T_FLOAT _ => true | _ => false // implement p_FLOAT (buf, bt, err) = ptoken_fun (buf, bt, err, is_FLOAT, PARERR_FLOAT) // (* ****** ****** *) // implement is_STRING (x) = case+ x of | T_STRING _ => true | _ => false // implement p_STRING (buf, bt, err) = ptoken_fun (buf, bt, err, is_STRING, PARERR_STRING) // (* ****** ****** *) // implement is_SRPendif (x) = case+ x of | T_KWORD(SRPendif()) => true | _ => false // implement p_SRPendif (buf, bt, err) = ptoken_fun (buf, bt, err, is_SRPendif, PARERR_SRPendif) // (* ****** ****** *) // implement is_ATSextcode_end (x) = case+ x of | T_KWORD(ATSextcode_end()) => true | _ => false implement p_ATSextcode_end (buf, bt, err) = ptoken_fun (buf, bt, err, is_ATSextcode_end, PARERR_ATSextcode_end) // (* ****** ****** *) // implement is_ATSfunbody_end (x) = case+ x of | T_KWORD(ATSfunbody_end()) => true | _ => false implement p_ATSfunbody_end (buf, bt, err) = ptoken_fun (buf, bt, err, is_ATSfunbody_end, PARERR_ATSfunbody_end) // (* ****** ****** *) // implement is_ATScaseof_end (x) = case+ x of | T_KWORD(ATScaseof_end()) => true | _ => false implement p_ATScaseof_end (buf, bt, err) = ptoken_fun (buf, bt, err, is_ATScaseof_end, PARERR_ATScaseof_end) // (* ****** ****** *) // implement is_ATSbranch_end (x) = case+ x of | T_KWORD(ATSbranch_end()) => true | _ => false implement p_ATSbranch_end (buf, bt, err) = ptoken_fun (buf, bt, err, is_ATSbranch_end, PARERR_ATSbranch_end) // (* ****** ****** *) // implement is_ATStailcal_end (x) = case+ x of | T_KWORD(ATStailcal_end()) => true | _ => false implement p_ATStailcal_end (buf, bt, err) = ptoken_fun (buf, bt, err, is_ATStailcal_end, PARERR_ATStailcal_end) // (* ****** ****** *) // implement is_ATSINSmove_con1_end (x) = case+ x of | T_KWORD(ATSINSmove_con1_end()) => true | _ => false implement p_ATSINSmove_con1_end (buf, bt, err) = ptoken_fun (buf, bt, err, is_ATSINSmove_con1_end, PARERR_ATSINSmove_con1_end) // implement is_ATSINSmove_boxrec_end (x) = case+ x of | T_KWORD(ATSINSmove_boxrec_end()) => true | _ => false implement p_ATSINSmove_boxrec_end (buf, bt, err) = ptoken_fun (buf, bt, err, is_ATSINSmove_boxrec_end, PARERR_ATSINSmove_boxrec_end) // implement is_ATSINSmove_fltrec_end (x) = case+ x of | T_KWORD(ATSINSmove_fltrec_end()) => true | _ => false implement p_ATSINSmove_fltrec_end (buf, bt, err) = ptoken_fun (buf, bt, err, is_ATSINSmove_fltrec_end, PARERR_ATSINSmove_fltrec_end) // (* ****** ****** *) implement ptest_fun{a} (buf, f, ent) = let var err: int = 0 val () = ent := synent_encode (f (buf, 1(*bt*), err)) in err = 0 end // end of [ptest_fun] (* ****** ****** *) // // HX: looping if [f] is nullable! // implement pstar_fun{a} (buf, bt, f) = let // vtypedef res_vt = List0_vt (a) // fun loop ( buf: &tokbuf >> _ , res: &res_vt? >> _, err: &int ) : void = let val x = f (buf, 1(*bt*), err) in // if err > 0 then (res := list_vt_nil) else let val () = ( res := list_vt_cons{a}{0}(x, _) ) // end of [val] val+list_vt_cons(_, res1) = res val ((*void*)) = loop (buf, res1, err) prval ((*folded*)) = fold@ (res) in // nothing end // end of [else] // end // end of [loop] // var res: ptr var err: int = 0 val () = loop (buf, res, err) // in res (* properly ordered *) end // end of [pstar_fun] (* ****** ****** *) // implement pstar_sep_fun{a} (buf, bt, sep, f) = let // vtypedef res_vt = List0_vt (a) // fun loop ( buf: &tokbuf , res: &res_vt? >> _ , err: &int ) : void = let val n0 = tokbuf_get_ntok (buf) in // if sep(buf) then let val x = f (buf, 0(*bt*), err) in case+ 0 of | _ when err > 0 => let val () = tokbuf_set_ntok (buf, n0) val () = res := list_vt_nil () in // nothing end | _ (*no-error*) => let val () = res := list_vt_cons{a}{0}(x, _) val+list_vt_cons (_, res1) = res val ((*void*)) = loop (buf, res1, err) prval ((*void*)) = fold@ (res) in // nothing end // end of [case+] end // end of [then] else (res := list_vt_nil ()) // end // end of [loop] // var res: ptr var err: int = 0 val () = loop (buf, res, err) // in res (* properly ordered *) end // end of [pstar_sep_fun] (* ****** ****** *) // implement pstar_COMMA_fun{a} (buf, bt, f) = pstar_sep_fun (buf, bt, p_COMMA_test, f) // (* ****** ****** *) implement pstar_fun0_sep (buf, bt, f, sep) = let var err: int = 0 val x0 = f (buf, 1(*bt*), err) in // case+ 0 of | _ when err > 0 => list_vt_nil () // | _ (*no-error*) => let val xs = pstar_sep_fun (buf, 1(*bt*), sep, f) // end of [val] in list_vt_cons (x0, xs) end // end of [_] // end // end of [pstar_fun0_sep] (* ****** ****** *) implement pstar_fun0_COMMA (buf, bt, f) = pstar_fun0_sep (buf, bt, f, p_COMMA_test) // end of [pstar_fun0_COMMA] (* ****** ****** *) implement pif_fun ( buf, bt, err, f, err0 ) = ( // if err <= err0 then f (buf, bt, err) else synent_null ((*void*)) // ) (* end of [pif_fun] *) (* ****** ****** *) implement parse_signed (buf, bt, err) = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | T_INT (base, rep) => ( if base = 10 then let val () = incby1 () val loc = tok.token_loc in SIGNED (loc, g0string2int(rep)) end // end of [then] else let val () = err := err + 1 in synent_null () end // end of [else] // end of [if] ) (* end of [T_INT] *) // | T_MINUS ((*void*)) => let val bt = 0 val () = incby1 () val tok2 = p_INT10 (buf, bt, err) in if err = err0 then let val loc = tok.token_loc ++ tok2.token_loc // end of [val] val-T_INT(_, rep) = tok2.token_node in SIGNED (loc, ~g0string2int(rep)) end // end of [then] else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [T_MINUS] // | _ (*error*) => let val () = err := err + 1 in synent_null () end // end of [_] // end // end of [parse_signed] (* ****** ****** *) implement parse_i0dex (buf, bt, err) = let // val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | T_IDENT_alp (x) => let val () = incby1 () in i0dex_make_string (loc, x) end // end of [T_IDENT_alp] // | _ (*non-IDENT_alp*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PARERR_i0dex) in synent_null () end // end of [_] // end // end of [parse_i0dex] (* ****** ****** *) // implement parse_label (buf, bt, err) = parse_i0dex (buf, bt, err) // (* ****** ****** *) implement parse_s0exp (buf, bt, err) = let // var err0 = err var ent: synent? // val loc = let val tok = tokbuf_get_token (buf) in tok.token_loc end // end of [val] // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ 0 of // | _ when ptest_fun ( buf, parse_i0dex, ent ) => let val bt = 0 val id = synent_decode2{i0de}(ent) val opt = parse_s0expargopt (buf, bt, err) in case+ opt of | None () => s0exp_ide (loc, id) | Some (s0e) => s0exp_appid (id, s0e) end // | _ => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PARERR_s0exp) in synent_null () end (* end of [_] *) // end // end of [parse_s0exp] (* ****** ****** *) implement parse_s0expseq (buf, bt, err) = list_vt2t(pstar_fun0_COMMA (buf, bt, parse_s0exp)) // end of [parse_s0expseq] (* ****** ****** *) (* // s0exparg = '(' s0expseq ')' // *) implement parse_s0exparg (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | T_LPAREN () => let val bt = 0 val () = incby1 () val s0es = parse_s0expseq (buf, bt, err) val ent2 = pif_fun(buf, bt, err, p_RPAREN, err0) in if err = err0 then let val loc2 = token_get_loc (ent2) in s0exp_list (loc ++ loc2, s0es) end // end of [then] else tokbuf_set_ntok_null (buf, n0) // end of [if] end // | _ (*error*) => let val () = err := err + 1 in synent_null () end // end of [_] // end // end of [parse_s0exparg] (* ****** ****** *) implement parse_s0expargopt (buf, bt, err) = let // val err0 = err val s0arg = parse_s0exparg (buf, bt, err) // in // if err0 = err then Some(s0arg) else (err := err0; None()) // end // end of [parse_s0expargopt] (* ****** ****** *) implement parse_tyfld (buf, bt, err) = let // (* val () = println! ("parse_tyfld") *) // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | _ when ptest_SRPif0 (buf) => let val () = incby1 () val () = pskip_SRPif0 (buf, 1(*level*)) in parse_tyfld (buf, bt, err) end // end of [#if(0)] // | _ (*rest*) => let val ent1 = parse_s0exp (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then tyfld_make (ent1, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [_] // end // end of [parse_tyfld] (* ****** ****** *) // extern fun parse_tyfldseq : parser (tyfldlst) // implement parse_tyfldseq (buf, bt, err) = list_vt2t (pstar_fun (buf, bt, parse_tyfld)) // (* ****** ****** *) implement parse_tyrec (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_KWORD ( ATSstruct() ) => let val bt = 0 val () = incby1 () val ent1 = p_LBRACE (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_tyfldseq, err0) val ent3 = pif_fun (buf, bt, err, p_RBRACE, err0) in if err = err0 then tyrec_make (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | _ (*error*) => let val () = err := err + 1 in synent_null () end // end of [_] // end // end of [parse_tyrec] (* ****** ****** *) implement parse_fkind (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // (* val () = println! ("parse_fkind: tok = ", tok) *) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_KWORD ( ATSextern() ) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then fkind_extern (tok, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | T_KWORD ( ATSstatic() ) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then fkind_static (tok, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | _ (*error*) => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [parse_fkind] (* ****** ****** *) implement parse_f0arg (buf, bt, err) = let // (* val () = println! ("parse_f0arg") *) // val err0 = err var ent: synent? val ntok0 = tokbuf_get_ntok (buf) // val ent1 = parse_s0exp (buf, bt, err) // in // if ( err = err0 ) then ( case+ 0 of // | _ when ptest_fun ( buf, parse_i0dex, ent ) => let val ent2 = synent_decode2{i0de}(ent) in f0arg_some (ent1, ent2) end // end of [parse_i0dex] // | _ (*none*) => f0arg_none (ent1) // ) else tokbuf_set_ntok_null (buf, ntok0) // end // end of [parse_f0arg] (* ****** ****** *) (* f0marg = '(' f0argseq ')' *) implement parse_f0marg (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | T_LPAREN () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA (buf, bt, parse_f0arg) val ent3 = p_RPAREN (buf, bt, err) // err = err0 in if err = err0 then f0marg_make (tok, list_vt2t(ent2), ent3) else let val () = list_vt_free (ent2) in synent_null () end // end of [else] // end of [if] end // end of [T_LPAREN] // | _ (*error*) => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [parse_f0marg] (* ****** ****** *) implement parse_f0head (buf, bt, err) = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = parse_s0exp (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, parse_f0marg, err0) // in // if err = err0 then f0head_make (ent1, ent2, ent3) else tokbuf_set_ntok_null (buf, ntok0) // end // end of [parse_f0head] (* ****** ****** *) implement parse_extval (buf, bt, err) = let // vtypedef res = List0_vt(token) // fun loop ( buf: &tokbuf, level: intGt(0), res: res ) : res = let // val tok = tokbuf_get_token_any (buf) // in case+ tok.token_node of // | T_EOF () => res // | T_LPAREN () => let val () = tokbuf_incby1 (buf) val res = list_vt_cons (tok, res) in loop (buf, level+1, res) // end of [val] end // end of [T_LPAREN] // | T_RPAREN () => let val level1 = level - 1 in if level1 > 0 then let val () = tokbuf_incby1 (buf) val res = list_vt_cons (tok, res) in loop (buf, level1, res) // end of [val] end // end of [then] else res // end of [else] // end of [if] end // end of [T_RPAREN] // | _ (*rest*) => let val () = tokbuf_incby1 (buf) val res = list_vt_cons (tok, res) in loop (buf, level, res) end // end of [_] // end // end of [loop] // val res = loop (buf, 1, list_vt_nil()) // in list_vt2t(list_vt_reverse(res)) end // end of [parse_extval] (* ****** ****** *) implement parse_extcode (buf, bt, err) = let // vtypedef res = List0_vt(token) // fun loop ( buf: &tokbuf >> _, res: res ) : res = let // val tok = tokbuf_get_token_any (buf) // (* val () = println! ("parse_extcode: loop: tok = ", tok) *) // in // case+ tok.token_node of // | T_EOF () => res // | T_KWORD (ATSextcode_end()) => res // | _ (*rest*) => let val () = tokbuf_incby1 (buf) in loop (buf, list_vt_cons (tok, res)) end // end of [_] // end // end of [loop] // val res = loop (buf, list_vt_nil()) // in list_vt2t (list_vt_reverse (res)) end // end of [parse_extcode] (* ****** ****** *) implement parse_closurerize (buf, bt, err) = let // // fun loop ( buf: &tokbuf >> _ , bt: int, err: &int >> _ ) : token = let // val tok = tokbuf_get_token (buf) // in // case+ tok.token_node of // | T_KWORD ( ATSclosurerize_end() ) => let val () = tokbuf_incby1 (buf) in tok end // end of [ATSclosurerize_end] // | T_EOF () => let val () = err := err + 1 val () = the_parerrlst_add (tok.token_loc, PARERR_ATSclosurerize_end) // end of [val] in tok end // end of [T_EOF] // | _ (*rest*) => let val () = tokbuf_incby1 (buf) in loop (buf, bt, err) end // end // end of [loop] // in loop (buf, bt, err) end // end of [parse_closurerize] (* ****** ****** *) implement parse_toplevel (buf) = let // fun loop ( buf: &tokbuf >> _, d0cs: List0_vt(d0ecl) ) : List0_vt (d0ecl) = let // var ent: synent? // in // case+ 0 of // | _ when ptest_fun ( buf, parse_d0ecl, ent ) => let val () = tokbuf_reset (buf) val d0c = synent_decode2{d0ecl}(ent) in loop (buf, list_vt_cons (d0c, d0cs)) end // end of [parse_d0ecl] | _ (*error*) => d0cs // end // end of [loop] // val d0cs = loop (buf, list_vt_nil) // in list_vt2t(list_vt_reverse (d0cs)) end // end of [parse_toplevel] (* ****** ****** *) implement parse_from_string (inp, f) = let // var buf: tokbuf val () = tokbuf_initize_string (buf, inp) // var nerr: int = 0 val res = f (buf, 0(*bt*), nerr) val _(*EOF*) = p_EOF (buf, 0, nerr) // HX: all tokens need to consumed // val () = tokbuf_uninitize (buf) // in if nerr = 0 then Some_vt (res) else None_vt () end // end of [parser_from_string] (* ****** ****** *) implement parse_from_tokbuf (buf) = let // val () = the_lexerrlst_clear () val () = the_parerrlst_clear () // val d0cs = parse_toplevel (buf) // // HX: see if there are tokens // var err: int = 0 val _(*EOF*) = p_EOF (buf, 0(*bt*), err) // val nerr1 = the_lexerrlst_print_free () val nerr2 = the_parerrlst_print_free () // val ((*void*)) = if nerr1 + nerr2 > 0 then abort () // in d0cs end // end of [parse_from_tokbuf] (* ****** ****** *) implement parse_from_fileref (inp) = let // var buf: tokbuf val () = tokbuf_initize_fileref (buf, inp) // val d0cs = parse_from_tokbuf (buf) // val () = tokbuf_uninitize (buf) // in d0cs end // end of [parse_from_fileref] (* ****** ****** *) (* end of [catsparse_parsing.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_parsing_d0exp.dats0000644000175000017500000004303213431250607027120 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "./../SATS/catsparse.sats" // staload "./../SATS/catsparse_syntax.sats" staload "./../SATS/catsparse_parsing.sats" // (* ****** ****** *) infix ++ overload ++ with location_combine (* ****** ****** *) implement parse_d0exp (buf, bt, err) = let // var err0 = err var ent: synent? // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | _ when ptest_fun ( buf, parse_i0dex, ent ) => let val bt = 0 val id = synent_decode2{i0de}(ent) val opt = parse_d0expargopt (buf, bt, err) in case+ opt of | None () => d0exp_ide (id) | Some (d0e) => d0exp_appid (id, d0e) end // end of [_ when ...] // | T_KWORD(ATSPMVint()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_INT, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSPMVint_make (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVint] // | T_KWORD(ATSPMVintrep()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_INT, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSPMVintrep_make (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVintrep] // | T_KWORD(ATSPMVbool_true()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSPMVbool_make (tok, true, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVbool_true] | T_KWORD(ATSPMVbool_false()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSPMVbool_make (tok, false, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVbool_false] // | T_KWORD(ATSPMVfloat()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_FLOAT, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSPMVfloat_make (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVfloat] // | T_KWORD(ATSPMVstring()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_STRING, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSPMVstring_make (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVstring] // | T_KWORD(ATSPMVi0nt()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_INT, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSPMVi0nt_make (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVi0nt] // | T_KWORD(ATSPMVf0loat()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_FLOAT, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSPMVf0loat_make (tok, ent2, ent3) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVf0loat] // | T_KWORD(ATSPMVempty()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSPMVempty_make (tok, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVempty] // | T_KWORD(ATSPMVextval()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_extval, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSPMVextval_make (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSPMVextval] // | T_KWORD(ATSPMVrefarg0()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSPMVrefarg0_make (tok, ent2, ent3) ) else (tokbuf_set_ntok_null (buf, n0)) // end of [if] end // end of [ATSPMVrefarg0] // | T_KWORD(ATSPMVrefarg1()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSPMVrefarg1_make (tok, ent2, ent3) ) else (tokbuf_set_ntok_null (buf, n0)) // end of [if] end // end of [ATSPMVrefarg1] // | T_KWORD(ATSPMVfunlab()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_label, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSPMVfunlab_make (tok, ent2, ent3) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVfunlab] // | T_KWORD(ATSPMVcfunlab()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_signed, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_label, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_d0exparg, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSPMVcfunlab_make (tok, ent2, ent4, ent6, ent7) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSPMVcfunlab] // | T_KWORD(ATSPMVcastfn()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSPMVcastfn_make (tok, ent2, ent4, ent6, ent7) ) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSPMVcastfn] // | T_KWORD(ATSCSTSPmyloc()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_STRING, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSCSTSPmyloc_make (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCSTSPmyloc] // | T_KWORD(ATSCKiseqz()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSCKiseqz_make (tok, ent2, ent3) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCKiseqz] // | T_KWORD(ATSCKisneqz()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSCKisneqz_make (tok, ent2, ent3) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCKisneqz] // | T_KWORD(ATSCKptriscons()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSCKptriscons_make (tok, ent2, ent3) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCKptriscons] // | T_KWORD(ATSCKptrisnull()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSCKptrisnull_make (tok, ent2, ent3) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCKptrisnull] // | T_KWORD(ATSCKpat_int()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSCKpat_int_make (tok, ent2, ent4, ent5) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCKpat_int] // | T_KWORD(ATSCKpat_bool()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSCKpat_bool_make (tok, ent2, ent4, ent5) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCKpat_bool] // | T_KWORD(ATSCKpat_string()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSCKpat_string_make (tok, ent2, ent4, ent5) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCKpat_string] // | T_KWORD(ATSCKpat_con0()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_signed, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSCKpat_con0_make (tok, ent2, ent4, ent5) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCKpat_con0] // | T_KWORD(ATSCKpat_con1()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_signed, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ( ATSCKpat_con1_make (tok, ent2, ent4, ent5) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSCKpat_con1] // | T_KWORD(ATSSELcon()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_label, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSSELcon_make (tok, ent2, ent4, ent6, ent7) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSSELcon] // | T_KWORD(ATSSELrecsin()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_label, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSSELrecsin_make (tok, ent2, ent4, ent6, ent7) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSSELrecsin] // | T_KWORD(ATSSELboxrec()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_label, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSSELboxrec_make (tok, ent2, ent4, ent6, ent7) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSSELboxrec] // | T_KWORD(ATSSELfltrec()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_label, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSSELfltrec_make (tok, ent2, ent4, ent6, ent7) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSSELfltrec] // | T_KWORD(ATSextfcall()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exparg, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSextfcall_make (tok, ent2, ent4, ent5) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSextfcall] // | T_KWORD(ATSextmcall()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_d0exparg, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSextmcall_make (tok, ent2, ent4, ent6, ent7) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSextmcall] // | T_KWORD(ATSfunclo_fun()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exparg, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent8 = pif_fun (buf, bt, err, parse_d0expargopt, err0) in if err = err0 then ATSfunclo_fun_make (tok, ent2, ent4, ent6, ent7, ent8) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSfunclo_fun] // | T_KWORD(ATSfunclo_clo()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exparg, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent8 = pif_fun (buf, bt, err, parse_d0expargopt, err0) in if err = err0 then ATSfunclo_clo_make (tok, ent2, ent4, ent6, ent7, ent8) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSfunclo_clo] // | _ (*rest-of-token*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PARERR_d0exp) in synent_null () end (* end of [_] *) // end // end of [parse_d0exp] (* ****** ****** *) // extern fun parse_d0expseq : parser (d0explst) // implement parse_d0expseq (buf, bt, err) = list_vt2t(pstar_fun0_COMMA (buf, bt, parse_d0exp)) // end of [parse_d0expseq] // (* ****** ****** *) (* // d0exparg = '(' d0expseq ')' // *) implement parse_d0exparg (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | T_LPAREN () => let val bt = 0 val () = incby1 () val d0es = parse_d0expseq (buf, bt, err) val tok2 = p_RPAREN (buf, bt, err) in if err = err0 then ( d0exp_list (loc ++ tok2.token_loc, d0es) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // | _ (*error*) => let val () = err := err + 1 in synent_null () end // end of [_] // end // end of [parse_d0exparg] (* ****** ****** *) implement parse_d0expargopt (buf, bt, err) = let // val err0 = err val d0arg = parse_d0exparg (buf, bt, err) // in // if err0 = err then Some(d0arg) else (err := err0; None()) // end // end of [parse_d0expargopt] (* ****** ****** *) (* end of [catsparse_parsing_d0exp.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_parsing_instr.dats0000644000175000017500000006431113431250607027242 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "./../SATS/catsparse.sats" // staload "./../SATS/catsparse_syntax.sats" staload "./../SATS/catsparse_parsing.sats" // (* ****** ****** *) extern fun parse_ATSthen : parser (instr) extern fun parse_ATSelseopt : parser (instropt) (* ****** ****** *) implement parse_instr (buf, bt, err) = let // (* val () = println! ("parse_instr") *) // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | _ when ptest_SRPif0 (buf) => let val bt = 0 val () = pskip_SRPif0 (buf, 1(*level*)) in parse_instr (buf, bt, err) end // end of [#if(0)] // | T_KWORD(SRPline()) => let val bt = 0 val () = incby1 () val ent1 = p_INT (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_STRING, err0) in if err = err0 then ( ATSlinepragma_make (tok, ent1, ent2) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [SRPline] // | T_KWORD(ATSfunbody_beg()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent4 = pif_fun (buf, bt, err, p_ATSfunbody_end, err0) val ent5 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSfunbodyseq_make(tok,ent3,ent6) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSfunbody_beg] // | T_KWORD(ATSif()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, parse_ATSthen, err0) val ent5 = pif_fun (buf, bt, err, parse_ATSelseopt, err0) in if err = err0 then ATSif_make(tok, ent2, ent4, ent5) else tokbuf_set_ntok_null(buf, n0) // end of [if] end // end of [ATSif] // | T_KWORD(ATSifthen()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_LBRACE, err0) val ent5 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent6 = pif_fun (buf, bt, err, p_RBRACE, err0) val ent7 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ATSifthen_make(tok,ent2,ent5,ent7) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSifthen] | T_KWORD(ATSifnthen()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_LBRACE, err0) val ent5 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent6 = pif_fun (buf, bt, err, p_RBRACE, err0) val ent7 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ATSifnthen_make(tok,ent2,ent5,ent7) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSifthen] // | T_KWORD(ATScaseof_beg()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent4 = pif_fun (buf, bt, err, p_ATScaseof_end, err0) val ent5 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATScaseofseq_make(tok,ent3,ent6) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATScaseof_beg] // | T_KWORD(ATSbranch_beg()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent4 = pif_fun (buf, bt, err, p_ATSbranch_end, err0) val ent5 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSbranchseq_make(tok,ent3,ent6) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSbranch_beg] // | T_KWORD(ATStailcal_beg()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent4 = pif_fun (buf, bt, err, p_ATStailcal_end, err0) val ent5 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATStailcalseq_make(tok,ent3,ent6) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATStailcal_beg] // | T_KWORD(ATSreturn()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ATSreturn_make(tok, ent2, ent4) else tokbuf_set_ntok_null(buf, n0) // end of [if] end // end of [ATSreturn] | T_KWORD(ATSreturn_void()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ATSreturn_void_make(tok,ent2,ent4) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSreturn_void] // | T_KWORD(ATSINSlab()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_COLON, err0) in if err = err0 then ATSINSlab_make (tok, ent2, ent4) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSlab] // | T_KWORD(ATSINSgoto()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ATSINSgoto_make (tok, ent2, ent4) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSgoto] // | T_KWORD(ATSINSflab()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_COLON, err0) in if err = err0 then ATSINSflab_make(tok, ent2, ent4) else tokbuf_set_ntok_null(buf, n0) // end of [if] end // end of [ATSINSflab] // | T_KWORD(ATSINSfgoto()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ATSINSfgoto_make(tok, ent2, ent4) else tokbuf_set_ntok_null(buf, n0) // end of [if] end // end of [ATSINSfgoto] // | T_KWORD(ATSINSfreeclo()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ATSINSfreeclo_make(tok,ent2,ent4) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSINSfreeclo] // | T_KWORD(ATSINSfreecon()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ATSINSfreecon_make(tok,ent2,ent4) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSINSfreecon] // | T_KWORD(ATSINSmove()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove] // | T_KWORD(ATSINSmove_void()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_void_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_void] // | T_KWORD(ATSINSmove_nil()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_nil_make (tok, ent2, ent4) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_nil] // | T_KWORD(ATSINSmove_con0()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, p_INT, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_con0_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_con0] // | T_KWORD(ATSINSmove_con1_beg()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent4 = pif_fun (buf, bt, err, p_ATSINSmove_con1_end, err0) val ent5 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSINSmove_con1_make(tok,ent3,ent6) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSINSmove_con1_beg] | T_KWORD(ATSINSmove_con1_new()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_con1_new_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_con1_new] | T_KWORD(ATSINSstore_con1_tag()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, p_INT, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSstore_con1_tag_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSstore_con1_tag] | T_KWORD(ATSINSstore_con1_ofs()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_label, err0) val ent7 = pif_fun (buf, bt, err, p_COMMA, err0) val ent8 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent9 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent10 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSstore_con1_ofs_make (tok, ent2, ent4, ent6, ent8, ent10) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSstore_con1_ofs] // | T_KWORD(ATSINSmove_boxrec_beg()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent4 = pif_fun (buf, bt, err, p_ATSINSmove_boxrec_end, err0) val ent5 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSINSmove_boxrec_make(tok,ent3,ent6) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSINSmove_boxrec_beg] | T_KWORD(ATSINSmove_boxrec_new()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_boxrec_new_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_boxrec_new] // | T_KWORD(ATSINSstore_boxrec_ofs()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_label, err0) val ent7 = pif_fun (buf, bt, err, p_COMMA, err0) val ent8 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent9 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent10 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSstore_boxrec_ofs_make (tok, ent2, ent4, ent6, ent8, ent10) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSstore_boxrec_ofs] // | T_KWORD(ATSINSmove_fltrec_beg()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent4 = pif_fun (buf, bt, err, p_ATSINSmove_fltrec_end, err0) val ent5 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then ATSINSmove_fltrec_make(tok,ent3,ent6) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSINSmove_fltrec_beg] | T_KWORD(ATSINSstore_fltrec_ofs()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_label, err0) val ent7 = pif_fun (buf, bt, err, p_COMMA, err0) val ent8 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent9 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent10 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSstore_fltrec_ofs_make (tok, ent2, ent4, ent6, ent8, ent10) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSstore_fltrec_ofs] // | T_KWORD(ATSINSmove_delay()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent8 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_delay_make (tok, ent2, ent4, ent6, ent8) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_delay] // | T_KWORD(ATSINSmove_lazyeval()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent8 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_lazyeval_make (tok, ent2, ent4, ent6, ent8) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_lazyeval] // | T_KWORD(ATSINSmove_ldelay()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent8 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_ldelay_make (tok, ent2, ent4, ent6, ent8) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_delay] // | T_KWORD(ATSINSmove_llazyeval()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_COMMA, err0) val ent6 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent8 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_llazyeval_make (tok, ent2, ent4, ent6, ent8) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_llazyeval] // | T_KWORD(ATSINSmove_tlcal()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSmove_tlcal_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSmove_tlcal] // | T_KWORD(ATSINSargmove_tlcal()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if err = err0 then ( ATSINSargmove_tlcal_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSargmove_tlcal] // | T_KWORD(ATSINSextvar_assign()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if (err = err0) then ( ATSINSextvar_assign_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSextvar_assign] | T_KWORD(ATSINSdyncst_valbind()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_COMMA, err0) val ent4 = pif_fun (buf, bt, err, parse_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent6 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if (err = err0) then ( ATSINSdyncst_valbind_make (tok, ent2, ent4, ent6) ) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [ATSINSdyncst_valbind] // | T_KWORD(ATSINScaseof_fail()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_STRING, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if (err = err0) then ATSINScaseof_fail_make(tok,ent2,ent4) else tokbuf_set_ntok_null(buf,n0) end // end of [ATSINScaseof_fail] // | T_KWORD(ATSINSdeadcode_fail()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if (err = err0) then ATSINSdeadcode_fail_make (tok, ent3) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSINSdeadcode_fail] // | T_KWORD(ATSdynload()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) in if (err = err0) then ATSdynload_make (tok, ent2) else tokbuf_set_ntok_null (buf, n0) end // end of [ATSdynload] // | T_KWORD(ATSdynloadset()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if (err = err0) then ATSdynloadset_make(tok,ent2,ent4) else tokbuf_set_ntok_null(buf,n0) end // end of [ATSdynloadset] // | T_KWORD(ATSdynloadfcall()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if (err = err0) then ATSdynloadfcall_make(tok,ent2,ent4) else tokbuf_set_ntok_null(buf,n0) end // end of [ATSdynloadfcall] // | T_KWORD(ATSdynloadflag_sta()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if (err = err0) then ATSdynloadflag_sta_make(tok,ent2,ent4) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSdynloadflag_sta] // | T_KWORD(ATSdynloadflag_ext()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, parse_i0dex, err0) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent4 = pif_fun (buf, bt, err, p_SEMICOLON, err0) in if (err = err0) then ATSdynloadflag_ext_make(tok,ent2,ent4) else tokbuf_set_ntok_null(buf,n0) // end of [if] end // end of [ATSdynloadflag_ext] // | _ (*unrecognized-instr*) => let val () = (err := err + 1) val () = the_parerrlst_add_ifnbt (bt, loc, PARERR_instr) in synent_null((*error*)) end // end of [_(*unrecognized-instr*)] // end // end of [parse_instr] (* ****** ****** *) // implement parse_instrseq (buf, bt, err) = ( // list_vt2t(pstar_fun(buf, bt, parse_instr)) // ) (* end of [parse_instrseq] *) // (* ****** ****** *) implement parse_ATSthen (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_KWORD(ATSthen()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, p_LBRACE, err0) val ent4 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent5 = pif_fun (buf, bt, err, p_RBRACE, err0) in if err = err0 then ATSthen_make (tok, ent4, ent5) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [T_KWORD(ATSthen)] // | _ (*error*) => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [parse_ATSthen] (* ****** ****** *) implement parse_ATSelseopt (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_KWORD(ATSelse()) => let val bt = 0 val () = incby1 () val ent1 = p_LPAREN (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_RPAREN, err0) val ent3 = pif_fun (buf, bt, err, p_LBRACE, err0) val ent4 = pif_fun (buf, bt, err, parse_instrseq, err0) val ent5 = pif_fun (buf, bt, err, p_RBRACE, err0) in if err = err0 then Some(ATSelse_make (tok, ent4, ent5)) else None() // end of [if] end // end of [T_KWORD(ATSelse)] // | _ (*non-ATSelse*) => None () // end // end of [parse_ATSelseopt] (* ****** ****** *) (* end of [catsparse_parsing_instr.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_lexing.dats0000644000175000017500000004541413431250607025651 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) staload "./../SATS/catsparse.sats" (* ****** ****** *) macdef ENDL = char2int0('\n') (* ****** ****** *) implement token_get_loc (tok) = tok.token_loc (* ****** ****** *) // implement token_make (loc, node) = '{ token_loc= loc, token_node= node } // (* ****** ****** *) fun BLANK_test (i: int): bool = let // val c = int2char0 (i) // in case+ 0 of | _ when c = ' ' => true | _ when c = '\t' => true | _ (*rest-of-chars*) => false end // end of [BLANK_test] (* ****** ****** *) fun IDENTFST_test (i: int): bool = let // val c = int2char0 (i) // in case+ 0 of | _ when ('a' <= c andalso c <= 'z') => true | _ when ('A' <= c andalso c <= 'Z') => true | _ when c = '_' => true | _ (*rest-of-char*) => false end (* end of [IDENTFST_test] *) (* ****** ****** *) fun IDENTRST_test (i: int): bool = let // val c = int2char0 (i) // in case+ 0 of | _ when ('a' <= c andalso c <= 'z') => true | _ when ('A' <= c andalso c <= 'Z') => true | _ when ('0' <= c andalso c <= '9') => true | _ when c = '_' => true | _ when c = '$' => true | _ when c = '.' => true | _ when c = ':' => true | _ when c = '\'' => true | _ (*rest-of-char*) => false end (* end of [IDENTRST_test] *) (* ****** ****** *) local // #define SYMBOLIC "%&+-./:=@~`^|*!$#?<>" // in (* in-of-local *) // fun SYMBOLIC_test (c: int): bool = strchr (SYMBOLIC, int2char0(c)) >= 0 // end // end of [local] (* ****** ****** *) // fun xX_test (i: int): bool = let // val c = int2char0 (i) in c = 'x' || c = 'X' // end // end of [xX_test] // fun eE_test (i: int): bool = let // val c = int2char0 (i) in c = 'e' || c = 'E' // end // end of [eE_test] // fun pP_test (i: int): bool = let // val c = int2char0 (i) in c = 'p' || c = 'P' // end // end of [pP_test] // (* ****** ****** *) // fun SIGN_test (c: int): bool = let // val c = int2char0(c) in (c = '+' || c = '-') // end // end of [SIGN_test] // (* ****** ****** *) // fun ZERO_test (i: int): bool = (i = char2int0('0')) // fun OCTAL_test (i: int): bool = (char2int0('0') <= i && i <= char2int0('7')) // fun DIGIT_test (i: int): bool = (char2int0('0') <= i && i <= char2int0('9')) // fun XDIGIT_test (i: int): bool = isxdigit (i) // (* ****** ****** *) // fun INTSP_test (i: int): bool = let // val c = toupper(int2char0(i)) in c = 'L' || c = 'U' // end // end of [INTSP_test] // fun FLOATSP_test (i: int): bool = let // val c = toupper(int2char0(i)) in c = 'F' || c = 'L' // end // end of [FLOATSP_test] // (* ****** ****** *) // extern fun ftesting_one ( buf: &lexbuf >> _, f: int -> bool ) : intGte(0) // end of [ftesting_one] // implement ftesting_one (buf, f) = let // val i = lexbuf_get_char (buf) // in // if ( i > 0 ) then ( if f(i) then 1 else (lexbuf_incby_nback (buf, 1); 0) ) else (0) // end // end of [ftesting_one] // (* ****** ****** *) // extern fun ftesting_opt ( buf: &lexbuf >> _, f: int -> bool ) : intGte(0) // end of [ftesting_opt] // implement ftesting_opt (buf, f) = let // val i = lexbuf_get_char (buf) // in // if ( i > 0 ) then ( if f(i) then 1 else (lexbuf_incby_nback (buf, 1); 0) ) else (0) // end // end of [ftesting_opt] // (* ****** ****** *) // extern fun ftesting_seq0 ( buf: &lexbuf >> _, f: int -> bool ) : intGte(0) // end of [ftesting_seq0] implement ftesting_seq0 (buf, f) = let // fun loop ( buf: &lexbuf >> _, nchr: intGte(0) ) : intGte(0) = let val i = lexbuf_get_char (buf) in // if ( i > 0 ) then ( // if f(i) then loop (buf, succ(nchr)) // end of [then] else let val () = lexbuf_incby_nback (buf, 1) in nchr end // end of [else] // ) else (nchr) // end // end of [loop] // in loop (buf, 0) end // end of [ftesting_seq0] (* ****** ****** *) // (* fun skip_blankseq0 ( buf: &lexbuf >> _ ) : intGte(0) = let // fun loop ( buf: &lexbuf >> _ , pos: &position >> _, nchr: intGte(0) ) : intGte(0) = let // val i = lexbuf_get_char (buf) // in // if i > 0 then ( if isspace(i) then let val c = int2char0 (i) val () = position_incby_char (pos, c) in loop (buf, pos, succ(nchr)) end // end of [then] else nchr // end of [else] // end of [if] ) (* end of [then] *) else nchr // end of [else] // end // end of [loop] // var pos: position val () = lexbuf_get_position (buf, pos) val nchr = loop (buf, pos, 0) val () = lexbuf_remove (buf, nchr) val () = lexbuf_set_position (buf, pos) // in nchr end // end of [skip_blankseq0] *) // (* ****** ****** *) // fun testing_blankseq0 (buf: &lexbuf): intGte(0) = ftesting_seq0 (buf, BLANK_test) // (* ****** ****** *) // fun testing_identrstseq0 (buf: &lexbuf): intGte(0) = ftesting_seq0 (buf, IDENTRST_test) // (* ****** ****** *) // fun testing_symbolicseq0 (buf: &lexbuf): intGte(0) = ftesting_seq0 (buf, SYMBOLIC_test) // (* ****** ****** *) // extern fun lexing_IDENT_alp (buf: &lexbuf): token // implement lexing_IDENT_alp (buf) = let // val nchr = testing_identrstseq0(buf) val nchr1 = succ(nchr) val name = lexbuf_takeout(buf, nchr1) val name = strptr2string(name) // val loc = lexbuf_getincby_location(buf, nchr1) // val kwd = keyword_search (name) // in // case+ kwd of // | KWORDnone () => token_make (loc, T_IDENT_alp(name)) // end of [KWORDnone] | _ (*keyword*) => token_make (loc, T_KWORD(kwd)) // end // end of [lexing_IDENT_alp] (* ****** ****** *) // extern fun lexing_IDENT_sym (buf: &lexbuf): token // implement lexing_IDENT_sym (buf) = let // val nchr = testing_symbolicseq0 (buf) val nchr1 = succ(nchr) val name = lexbuf_takeout (buf, nchr1) val name = strptr2string (name) // val loc = lexbuf_getincby_location (buf, nchr1) // in // case+ name of | "<" => token_make (loc, T_LT) | ">" => token_make (loc, T_GT) // | "-" => token_make (loc, T_MINUS) // | ":" => token_make (loc, T_COLON) // | _ (*rest*) => token_make (loc, T_IDENT_sym(name)) // end // end of [lexing_IDENT_sym] (* ****** ****** *) // fun testing_octalseq0 (buf: &lexbuf): intGte(0) = ftesting_seq0 (buf, OCTAL_test) // (* ****** ****** *) // fun testing_digitseq0 (buf: &lexbuf): intGte(0) = ftesting_seq0 (buf, DIGIT_test) // (* ****** ****** *) // fun testing_xdigitseq0 (buf: &lexbuf): intGte(0) = ftesting_seq0 (buf, XDIGIT_test) // (* ****** ****** *) // fun testing_intspseq0 (buf: &lexbuf): intGte(0) = ftesting_seq0 (buf, INTSP_test) // (* ****** ****** *) fun testing_fexponent ( buf: &lexbuf ) : intGte(0) = let // val i = lexbuf_get_char (buf) // in // if i > 0 then let // val c = int2char0(i) // in // if eE_test(i) then let // val k1 = ftesting_opt (buf, SIGN_test) val k2 = testing_digitseq0 (buf) // err: k2 = 0 // val () = if k2 = 0 then { val loc = lexbuf_getincby_location (buf, k1+1) val err = lexerr_make (loc, LEXERR_FEXPONENT_nil) val ((*void*)) = the_lexerrlst_insert (err) } (* end of [if] *) // end of [val] // in k1+k2+1 end // end of [then] else ( lexbuf_incby_nback (buf, 1); 0 ) (* end of [else] *) // end // end of [then] else (0) // end of [else] // end // end of [testing_fexponent] (* ****** ****** *) fun testing_deciexp ( buf: &lexbuf ) : intGte(0) = let // val i = lexbuf_get_char (buf) // in // if i > 0 then let // val c = int2char0(i) // in // if c = '.' then let // val k1 = testing_digitseq0 (buf) val k2 = testing_fexponent (buf) val k12 = k1 + k2 // in k12 + 1 end // end of [then] else ( lexbuf_incby_nback (buf, 1); 0 ) (* end of [else] *) // end // end of [then] else 0 // end of [else] // end // end of [testing_deciexp] (* ****** ****** *) // extern fun lexing_INT_oct (buf: &lexbuf): token // extern fun lexing_INT_dec (buf: &lexbuf): token // extern fun lexing_FLOAT_deciexp (buf: &lexbuf): token // (* ****** ****** *) // implement lexing_INT_oct (buf) = let // val k0 = testing_octalseq0 (buf) // in // if k0 >= 2 then let // val k1 = testing_intspseq0 (buf) val nchr = succ(k0 + k1) val intrep = lexbuf_takeout (buf, nchr) val intrep = strptr2string (intrep) // val loc = lexbuf_getincby_location (buf, nchr) // val base = (if k0 > 0 then 8 else 10): int // in token_make (loc, T_INT(base, intrep)) end // end of [then] else lexing_INT_dec (buf) // end // end of [lexing_INT_oct] (* ****** ****** *) // implement lexing_INT_dec (buf) = let // val k0 = testing_digitseq0 (buf) // val k1 = testing_deciexp (buf) // in // if k1 > 0 then let // val nchr = succ(k0 + k1) val float = lexbuf_takeout (buf, nchr) val float = strptr2string (float) // val loc = lexbuf_getincby_location (buf, nchr) // in token_make (loc, T_FLOAT(10(*base*), float)) end // end of [then] else let // val k1 = testing_fexponent (buf) // in // if k1 > 0 then let // val nchr = succ(k0 + k1) val float = lexbuf_takeout (buf, nchr) val float = strptr2string (float) // val loc = lexbuf_getincby_location (buf, nchr) // in token_make (loc, T_FLOAT(10(*base*), float)) end // end of [then] else let // val k1 = testing_intspseq0 (buf) // val nchr = succ(k0 + k1) val intrep = lexbuf_takeout (buf, nchr) val intrep = strptr2string (intrep) // val loc = lexbuf_getincby_location (buf, nchr) // in token_make (loc, T_INT(10(*base*), intrep)) end // end of [else] // end // end of [else] // end // end of [lexing_INT_dec] (* ****** ****** *) extern fun lexing_INT_hex (buf: &lexbuf): token // implement lexing_INT_hex (buf) = let // val k0 = testing_xdigitseq0 (buf) val k1 = testing_intspseq0 (buf) val nchr = k0 + k1 + 2 val intrep = lexbuf_takeout (buf, nchr) val intrep = strptr2string (intrep) // val loc = lexbuf_getincby_location (buf, nchr) // in token_make (loc, T_INT(16(*base*), intrep)) end // end of [lexing_INT_hex] (* ****** ****** *) // #define COMMA ',' #define COLON ':' #define SEMICOLON ';' // #define QUOTE ''' #define DQUOTE '"' // #define LPAREN '\(' #define RPAREN ')'; #define LBRACE '\{' #define RBRACE '}'; #define LBRACKET '\[' #define RBRACKET ']'; // #define SHARP '#' #define SLASH '/' #define BACKSLASH '\\' // (* ****** ****** *) // extern fun lexing_SPACES (buf: &lexbuf >> _): token // implement lexing_SPACES (buf) = let // val nchr = testing_blankseq0(buf) // val nchr1 = nchr + 1 val () = lexbuf_set_nspace (buf, nchr1) val spaces = lexbuf_takeout (buf, nchr1) val spaces = strptr2string (spaces) val loc = lexbuf_getincby_location (buf, nchr1) // in token_make (loc, T_SPACES (spaces)) end // end of [lexing_SPACES] // (* ****** ****** *) // extern fun lexing_ENDL (buf: &lexbuf): token // implement lexing_ENDL (buf) = let // val () = lexbuf_remove (buf, 1) val loc = lexbuf_getbyrow_location (buf) // in token_make (loc, T_ENDL()) end // end of [lexing_ENDL] (* ****** ****** *) // extern fun lexing_litchar (buf: &lexbuf, node: tnode): token // implement lexing_litchar (buf, node) = let // val () = lexbuf_remove (buf, 1) val loc = lexbuf_getincby_location (buf, 1) // in token_make (loc, node) end // end of [lexing_litchar] // (* ****** ****** *) // extern fun lexing_SHARP (buf: &lexbuf): token // implement lexing_SHARP (buf) = let // val i = lexbuf_get_char (buf) // in // if i > 0 then let // val c = int2char0(i) // in // case+ 0 of | _ when IDENTFST_test(i) => let val nchr = testing_identrstseq0 (buf) val nchr2 = nchr + 2 val name = lexbuf_takeout (buf, nchr2) val name = strptr2string (name) val loc = lexbuf_getincby_location (buf, nchr2) val kwd = keyword_search (name) in case+ kwd of | KWORDnone () => token_make (loc, T_IDENT_srp(name)) // end of [KWORDnone] | _(*keyword*) => token_make (loc, T_KWORD (kwd)) end | _ (* rest-of-char *) => let val nchr = testing_symbolicseq0 (buf) val nchr1 = succ(nchr) val name = lexbuf_takeout (buf, nchr1) val name = strptr2string (name) val loc = lexbuf_getincby_location (buf, nchr1) in token_make (loc, T_IDENT_alp(name)) end end // end of [then] else let val () = lexbuf_remove (buf, 1) val loc = lexbuf_getincby_location (buf, 1) in token_make (loc, T_SLASH((*void*))) end // end of [else] // end // end of [lexing_SHARP] (* ****** ****** *) // extern fun lexing_SLASH(buf: &lexbuf): token extern fun lexing_SLASHSTAR(buf: &lexbuf): token extern fun lexing_SLASHSLASH(buf: &lexbuf): token // (* ****** ****** *) implement lexing_SLASH (buf) = let // val i0 = lexbuf_get_char(buf) // in // if i0 > 0 then let // val c0 = int2char0(i0) // in // case+ 0 of // | _ when c0 = '*' => lexing_SLASHSTAR(buf) | _ when c0 = '/' => lexing_SLASHSLASH(buf) // | _ (*rest-of-char*) => lexing_litchar(buf, T_SLASH) // end // end of [then] else lexing_litchar(buf, T_SLASH) // end // end of [lexing_SLASH] (* ****** ****** *) // extern fun lexing_quote ( buf: &lexbuf, quote: char ) : token // end-of-fun // implement lexing_quote (buf, quote) = let // fun loop ( buf: &lexbuf , pos: &position >> _, nchr: intGte(0) ) : intGte(0) = let // val i = lexbuf_get_char (buf) // in // if i > 0 then let val c = int2char0(i) val () = position_incby_char(pos, c) val nchr = succ(nchr) in case+ 0 of | _ when c = quote => nchr | _ when c = BACKSLASH => loop2(buf, pos, nchr) | _ (*rest-of-char*) => loop(buf, pos, nchr) end // end of [then] else nchr // end of [else] // end // end of [loop] // and loop2 ( buf: &lexbuf , pos: &position >> _, nchr: intGte(0) ) : intGte(0) = let // val i = lexbuf_get_char (buf) // in // if i > 0 then let // val c = int2char0(i) val () = position_incby_char(pos, c) val nchr = succ(nchr) // in loop(buf, pos, nchr) end // end of [then] else nchr // end of [else] // end // end of [loop2] // var pos: position // val () = lexbuf_get_position (buf, pos) // val () = position_incby1 (pos) val nchr = loop (buf, pos, 0(*nchr*)) val loc = lexbufpos_get_location (buf, pos) val strp = lexbuf_takeout (buf, nchr+1) val () = lexbuf_set_position (buf, pos) // (* val () = println! ("lexing_quote: loc = ", loc) val () = println! ("lexing_quote: nchr = ", nchr) val () = println! ("lexing_quote: strp = ", strp) *) // in token_make(loc, T_STRING(strptr2string(strp))) end // end of [lexing_quote] (* ****** ****** *) // extern fun lexing_QUOTE(buf: &lexbuf): token implement lexing_QUOTE(buf) = lexing_quote(buf, QUOTE) // extern fun lexing_DQUOTE(buf: &lexbuf): token implement lexing_DQUOTE(buf) = lexing_quote(buf, DQUOTE) // (* ****** ****** *) // extern fun testing_until_literal ( buf: &lexbuf >> _, pos: &position >> _, lit: string ) : intGte(0) // end-of-function // implement testing_until_literal (buf, pos, lit0) = let // val [n0:int] lit0 = g1ofg0 (lit0) val n0 = length (lit0) // fun loop {n:nat | n0 >= n} ( buf: &lexbuf >> _ , pos: &position >> _ , lit: string(n), n: size_t(n) , nchr: intGte(0) ) : intGte(0) = let in // if n > 0 then let val i = lexbuf_get_char(buf) in // if i <= 0 then nchr else let val c = int2char0(i) val () = position_incby_char(pos, c) in if c != lit.head() then let val () = if (c != ENDL) then { val np = sz2i(n0 - n) val () = position_decby(pos, np) val () = lexbuf_incby_nback(buf, np) } (* end of [if] *) in loop(buf, pos, lit0, n0, succ(nchr)) end // end of [then] else ( loop(buf, pos, lit.tail(), pred(n), succ(nchr)) ) (* end of [else] *) end // end of [else] // end // end of [then] else nchr // end of [else] // end // end of [loop] // in loop(buf, pos, lit0, n0, 0) end // end of [testing_until_literal] (* ****** ****** *) implement lexing_SLASHSTAR (buf) = let // var pos: position // val () = lexbuf_get_position(buf, pos) // val () = position_incby (pos, 2) // #define STARSLASH "*/" // val nchr = testing_until_literal(buf, pos, STARSLASH) // val str = lexbuf_takeout (buf, nchr + 2) val loc = lexbufpos_get_location (buf, pos) val ((*void*)) = lexbuf_set_position (buf, pos) // in token_make(loc, T_COMMENT_block(strptr2string(str))) end // end of [lexing_SLASHSTAR] (* ****** ****** *) implement lexing_SLASHSLASH (buf) = let // val nchr = ftesting_seq0 ( buf, lam i => i != ENDL ) (* end of [val] *) // // HX: Note that ENDL is not included // val str = lexbuf_takeout(buf, nchr + 2) val loc = lexbuf_getincby_location(buf, nchr + 2) // in token_make(loc, T_COMMENT_line(strptr2string(str))) end // end of [lexing_SLASHSLASH] (* ****** ****** *) local // fun get_token_any ( buf: &lexbuf >> _ ) : token = let // val i0 = lexbuf_get_char(buf) // in // if i0 > 0 then let // val c0 = $UN.cast{charNZ}(i0) // in // case+ 0 of // | _ when BLANK_test (i0) => lexing_SPACES(buf) // | _ when IDENTFST_test (i0) => lexing_IDENT_alp(buf) // | _ when c0 = ENDL => lexing_ENDL(buf) | _ when c0 = SHARP => lexing_SHARP(buf) | _ when i0 = SLASH => lexing_SLASH(buf) // | _ when SYMBOLIC_test (i0) => lexing_IDENT_sym(buf) // | _ when DIGIT_test (i0) => ( if ZERO_test(i0) then let val k = ftesting_one(buf, xX_test) in if k = 0 then lexing_INT_oct(buf) else lexing_INT_hex(buf) // end of [if] end // end of [then] else lexing_INT_dec(buf) ) // | _ when i0 = COMMA => lexing_litchar(buf, T_COMMA) | _ when i0 = SEMICOLON => lexing_litchar(buf, T_SEMICOLON) // | _ when i0 = LPAREN => lexing_litchar(buf, T_LPAREN) | _ when i0 = RPAREN => lexing_litchar(buf, T_RPAREN) | _ when i0 = LBRACE => lexing_litchar(buf, T_LBRACE) | _ when i0 = RBRACE => lexing_litchar(buf, T_RBRACE) | _ when i0 = LBRACKET => lexing_litchar(buf, T_LBRACKET) | _ when i0 = RBRACKET => lexing_litchar(buf, T_RBRACKET) // | _ when i0 = QUOTE => lexing_QUOTE(buf) | _ when i0 = DQUOTE => lexing_DQUOTE(buf) // | _ (*rest-of-char*) => let // // HX: skipping the unrecognized char // val () = lexbuf_remove_all(buf) // val loc = lexbuf_getincby_location(buf, 1) val err = lexerr_make (loc, LEXERR_UNSUPPORTED_char(c0)) val ((*void*)) = prerrln! ("Warning(lex): ", err) (* val ((*inserted*)) = the_lexerrlst_insert (err) *) // in lexbuf_get_token_any(buf) end // end of [rest-of-char] // end // end of [then] else let val loc = lexbuf_getincby_location (buf, 0) in token_make (loc, T_EOF) // end of [val] end // end of [else] // end // end of [get_token_any] // in // implement lexbuf_get_token_any (buf) = let // val tok = get_token_any (buf) // in // case+ tok.token_node of // | T_SPACES _ => tok | _ (*non-SPACES*) => let val () = lexbuf_set_nspace (buf, 0) in tok end // end of [non-SPACES] // end // end of [lexbuf_get_token_any] // end // end of [local] (* ****** ****** *) implement lexbuf_get_token_skip (buf) = let // val tok = lexbuf_get_token_any (buf) // in // case+ tok.token_node of | T_ENDL () => lexbuf_get_token_skip (buf) | T_SPACES _ => lexbuf_get_token_skip (buf) | T_COMMENT_line _ => lexbuf_get_token_skip (buf) | T_COMMENT_block _ => lexbuf_get_token_skip (buf) | _ (*non-skip-token*) => tok // end // end of [lexing_get_token_skip] (* ****** ****** *) (* end of [catsparse_lexing.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/.keeper0000644000175000017500000000000013431250607022673 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_error.dats0000644000175000017500000000075713431250607025515 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) staload "./../SATS/catsparse.sats" staload "./../SATS/catsparse_parsing.sats" (* ****** ****** *) // implement abort() = let val () = ($raise(FatalErrorExn())): void in () end // (* ****** ****** *) (* end of [catsparse_error.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_print.dats0000644000175000017500000004352413431250607025517 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/catsparse.sats" (* ****** ****** *) // implement print_symbol (sym) = fprint_symbol (stdout_ref, sym) implement prerr_symbol (sym) = fprint_symbol (stderr_ref, sym) // (* ****** ****** *) // implement print_filename (fil) = fprint_filename (stdout_ref, fil) implement prerr_filename (fil) = fprint_filename (stderr_ref, fil) // (* ****** ****** *) // (* implement print_position (pos) = fprint_position (stdout_ref, pos) implement prerr_position (pos) = fprint_position (stderr_ref, pos) *) // (* ****** ****** *) // implement print_location (loc) = fprint_location (stdout_ref, loc) implement prerr_location (loc) = fprint_location (stderr_ref, loc) // (* ****** ****** *) implement fprint_keyword (out, x) = let // macdef pr (str) = fprint_string (out, ,(str)) // in // case+ x of // | SRPif () => pr "#if" | SRPifdef () => pr "#ifdef" | SRPifndef () => pr "#ifndef" | SRPendif () => pr "#endif" // | SRPline () => pr "#line" | SRPinclude () => pr "#include" // | ATSinline () => pr "ATSinline" // | ATSextern () => pr "ATSextern" | ATSstatic () => pr "ATSstatic" // | ATSassume () => pr "ATSassume" // | ATSdyncst_mac () => pr "ATSdyncst_mac" // | ATSdyncst_extfun () => pr "ATSdyncst_extfun" // | ATSdyncst_valdec () => pr "ATSdyncst_valdec" | ATSdyncst_valimp () => pr "ATSdyncst_valimp" // | TYPEDEF () => pr "typedef" // | ATSstruct () => pr "ATSstruct" // | ATStmpdec () => pr "ATStmpdec" | ATStmpdec_void () => pr "ATStmpdec_void" // | ATSstatmpdec () => pr "ATSstatmpdec" | ATSstatmpdec_void () => pr "ATSstatmpdec_void" // | ATSif () => pr "ATSif" | ATSthen () => pr "ATSthen" | ATSelse () => pr "ATSelse" // | ATSifthen () => pr "ATSifthen" | ATSifnthen () => pr "ATSifnthen" // | ATSbranch_beg () => pr "ATSbranch_beg" | ATSbranch_end () => pr "ATSbranch_end" // | ATScaseof_beg () => pr "ATScaseof_beg" | ATScaseof_end () => pr "ATScaseof_end" // | ATSextcode_beg () => pr "ATSextcode_beg" | ATSextcode_end () => pr "ATSextcode_end" // | ATSfunbody_beg () => pr "ATSfunbody_beg" | ATSfunbody_end () => pr "ATSfunbody_end" // | ATSreturn () => pr "ATSreturn" | ATSreturn_void () => pr "ATSreturn_void" // | ATSPMVint () => pr "ATSPMVint" | ATSPMVintrep () => pr "ATSPMVintrep" // | ATSPMVbool_true () => pr "ATSPMVbool_true" | ATSPMVbool_false () => pr "ATSPMVbool_false" // | ATSPMVfloat () => pr "ATSPMVfloat" // | ATSPMVstring () => pr "ATSPMVstring" // | ATSPMVi0nt () => pr "ATSPMVi0nt" | ATSPMVf0loat () => pr "ATSPMVf0loat" // | ATSPMVempty () => pr "ATSPMVempty" | ATSPMVextval () => pr "ATSPMVextval" // | ATSPMVrefarg0 () => pr "ATSPMVrefarg0" | ATSPMVrefarg1 () => pr "ATSPMVrefarg1" // | ATSPMVfunlab () => pr "ATSPMVfunlab" | ATSPMVcfunlab () => pr "ATSPMVcfunlab" // | ATSPMVcastfn () => pr "ATSPMVcastfn" // | ATSCSTSPmyloc () => pr "ATSCSTSPmyloc" // | ATSINSlab () => pr "ATSINSlab" | ATSINSgoto () => pr "ATSINSgoto" // | ATSINSflab () => pr "ATSINSflab" | ATSINSfgoto () => pr "ATSINSfgoto" // | ATSCKiseqz () => pr "ATSCKiseqz" | ATSCKisneqz () => pr "ATSCKisneqz" | ATSCKptriscons () => pr "ATSCKptriscons" | ATSCKptrisnull () => pr "ATSCKptrisnull" // | ATSCKpat_int () => pr "ATSCKpat_int" | ATSCKpat_bool () => pr "ATSCKpat_bool" | ATSCKpat_string () => pr "ATSCKpat_string" // | ATSCKpat_con0 () => pr "ATSCKpat_con0" | ATSCKpat_con1 () => pr "ATSCKpat_con1" // | ATSSELcon () => pr "ATSSELcon" | ATSSELrecsin () => pr "ATSSELrecsin" | ATSSELboxrec () => pr "ATSSELboxrec" | ATSSELfltrec () => pr "ATSSELfltrec" // | ATSextfcall () => pr "ATSextfcall" | ATSextmcall () => pr "ATSextmcall" // | ATSfunclo_fun () => pr "ATSfunclo_fun" | ATSfunclo_clo () => pr "ATSfunclo_clo" // | ATSINSfreeclo () => pr "ATSINSfreeclo" | ATSINSfreecon () => pr "ATSINSfreecon" // | ATSINSmove () => pr "ATSINSmove" | ATSINSmove_void () => pr "ATSINSmove_void" // | ATSINSmove_nil () => pr "ATSINSmove_nil" | ATSINSmove_con0 () => pr "ATSINSmove_con0" // | ATSINSmove_con1_beg () => pr "ATSINSmove_con1_beg" | ATSINSmove_con1_end () => pr "ATSINSmove_con1_end" | ATSINSmove_con1_new () => pr "ATSINSmove_con1_new" | ATSINSstore_con1_tag () => pr "ATSINSstore_con1_tag" | ATSINSstore_con1_ofs () => pr "ATSINSstore_con1_ofs" // | ATSINSmove_fltrec_beg () => pr "ATSINSmove_fltrec_beg" | ATSINSmove_fltrec_end () => pr "ATSINSmove_fltrec_end" | ATSINSstore_fltrec_ofs () => pr "ATSINSstore_fltrec_ofs" // | ATSINSmove_boxrec_beg () => pr "ATSINSmove_boxrec_beg" | ATSINSmove_boxrec_end () => pr "ATSINSmove_boxrec_end" | ATSINSmove_boxrec_new () => pr "ATSINSmove_boxrec_new" | ATSINSstore_boxrec_ofs () => pr "ATSINSstore_boxrec_ofs" // | ATSINSmove_delay () => pr "ATSINSmove_delay" | ATSINSmove_lazyeval () => pr "ATSINSmove_lazyeval" // | ATSINSmove_ldelay () => pr "ATSINSmove_ldelay" | ATSINSmove_llazyeval () => pr "ATSINSmove_llazyeval" // | ATStailcal_beg () => pr "ATStailcal_beg" | ATStailcal_end () => pr "ATStailcal_end" | ATSINSmove_tlcal () => pr "ATSINSmove_tlcal" | ATSINSargmove_tlcal () => pr "ATSINSargmove_tlcal" // | ATSINSextvar_assign () => pr "ATSINSextvar_assign" | ATSINSdyncst_valbind () => pr "ATSINSdyncst_valbind" // | ATSINScaseof_fail () => pr "ATSINScaseof_fail" | ATSINSdeadcode_fail () => pr "ATSINSdeadcode_fail" // | ATSdynload () => pr "ATSdynload" | ATSdynloadset () => pr "ATSdynloadset" | ATSdynloadfcall () => pr "ATSdynloadfcall" | ATSdynloadflag_sta () => pr "ATSdynloadflag_sta" | ATSdynloadflag_ext () => pr "ATSdynloadflag_ext" | ATSdynloadflag_init () => pr "ATSdynloadflag_init" | ATSdynloadflag_minit () => pr "ATSdynloadflag_minit" // | ATSclosurerize_beg () => pr "ATSclosurerize_beg" | ATSclosurerize_end () => pr "ATSclosurerize_end" // | ATSdynexn_dec () => pr "ATSdynexn_dec" | ATSdynexn_extdec () => pr "ATSdynexn_extdec" | ATSdynexn_initize () => pr "ATSdynexn_initize" // | KWORDnone () => pr "KWORDnone" // end // end of [fprint_keyword] (* ****** ****** *) implement fprint_tnode (out, x0) = let in // case+ x0 of // | T_CHAR (x) => fprint! (out, "CHAR(", x, ")") // | T_INT (base, x) => fprint! (out, "INT(", base, "; ", x, ")") | T_FLOAT (base, x) => fprint! (out, "FLOAT(", base, "; ", x, ")") // | T_STRING (x) => fprint! (out, "STRING(", x, ")") // | T_KWORD (x) => fprint! (out, "KWORD(", x, ")") // | T_IDENT_alp (x) => fprint! (out, "IDENT(", x, ")") | T_IDENT_sym (x) => fprint! (out, "IDENT(", x, ")") // | T_IDENT_srp (x) => fprint! (out, "IDENT#(", x, ")") // | T_LT () => fprint! (out, "<") | T_GT () => fprint! (out, ">") // | T_MINUS () => fprint! (out, "-") // | T_COLON () => fprint! (out, ":") // | T_COMMA () => fprint! (out, ",") | T_SEMICOLON () => fprint! (out, ";") // | T_LPAREN () => fprint! (out, "(") | T_RPAREN () => fprint! (out, ")") | T_LBRACKET () => fprint! (out, "[") | T_RBRACKET () => fprint! (out, "]") | T_LBRACE () => fprint! (out, "{") | T_RBRACE () => fprint! (out, "}") // | T_SLASH () => fprint! (out, "/") // | T_ENDL () => fprint! (out, "ENDL(", ")") | T_SPACES (cs) => fprint! (out, "SPACES(", ")") // | T_COMMENT_line _ => fprint! (out, "COMMENTline(", "...", ")") | T_COMMENT_block _ => fprint! (out, "COMMENTblock(", "...", ")") // | T_EOF () => fprint! (out, "EOF(", ")") // end // end of [fprint_tnode] (* ****** ****** *) // implement print_token (tok) = fprint_token (stdout_ref, tok) implement prerr_token (tok) = fprint_token (stderr_ref, tok) // implement fprint_token (out, tok) = { (* val () = fprint! (out, tok.token_loc, ": ") *) val () = fprint_tnode (out, tok.token_node) } (* end of [fprint_token] *) // (* ****** ****** *) // implement print_i0de(x) = fprint(stdout_ref, x) implement prerr_i0de(x) = fprint(stderr_ref, x) // implement fprint_i0de (out, x) = fprint (out, x.i0dex_sym) // (* ****** ****** *) implement print_s0exp (x) = fprint (stdout_ref, x) implement prerr_s0exp (x) = fprint (stderr_ref, x) (* ****** ****** *) // implement fprint_val = fprint_s0exp // implement fprint_s0exp (out, s0e) = let // overload fprint with fprint_s0explst of 1000000 // in // case+ s0e.s0exp_node of // | S0Eide (id) => fprint! (out, "S0Eide(", id, ")") | S0Elist (s0es) => fprint! (out, "S0Elist(", s0es, ")") | S0Eappid (id, s0es) => fprint! (out, "S0Eappid(", id, "; ", s0es, ")") // end // end of [fprint_s0exp] // (* ****** ****** *) implement fprint_s0explst (out, xs) = fprint_list_sep (out, xs, ", ") (* ****** ****** *) implement print_d0exp (x) = fprint_d0exp (stdout_ref, x) implement prerr_d0exp (x) = fprint_d0exp (stderr_ref, x) (* ****** ****** *) // implement fprint_val = fprint_d0exp // implement fprint_d0exp (out, d0e) = let // overload fprint with fprint_d0explst of 1000000 // in // case+ d0e.d0exp_node of // | D0Eide (id) => fprint! (out, "D0Eide(", id, ")") | D0Elist (d0es) => fprint! (out, "D0Elist(", d0es, ")") // | D0Eappid (id, d0es) => fprint! (out, "D0Eappid(", id, "; ", d0es, ")") | D0Eappexp (d0e, d0es) => fprint! (out, "D0Eappexp(", d0e, "; ", d0es, ")") // | ATSPMVint (tok) => fprint! (out, "ATSPMVint(", tok, ")") | ATSPMVintrep (tok) => fprint! (out, "ATSPMVintrep(", tok, ")") // | ATSPMVbool (tfv) => fprint! (out, "ATSPMVbool(", tfv, ")") // | ATSPMVfloat (tok) => fprint! (out, "ATSPMVfloat(", tok, ")") // | ATSPMVstring (tok) => fprint! (out, "ATSPMVstring(", tok, ")") // | ATSPMVi0nt (tok) => fprint! (out, "ATSPMVi0nt(", tok, ")") | ATSPMVf0loat (tok) => fprint! (out, "ATSPMVf0loat(", tok, ")") // | ATSPMVempty (dummy) => fprint! (out, "ATSPMVempty(", ")") | ATSPMVextval (toklst) => fprint! (out, "ATSPMVextval(", "...", ")") // | ATSPMVrefarg0 (d0e) => fprint! (out, "ATSPMVrefarg0(", d0e, ")") | ATSPMVrefarg1 (d0e) => fprint! (out, "ATSPMVrefarg1(", d0e, ")") // | ATSPMVfunlab (fl) => fprint! (out, "ATSPMVfunlab(", fl, ")") | ATSPMVcfunlab (knd, fl, d0es) => fprint! (out, "ATSPMVcfunlab(", knd, ";", fl, ";", d0es, ")") // | ATSPMVcastfn (fid, s0e, arg) => fprint! (out, "ATSPMVcastfn(", fid, "; ", s0e, ";", arg, ")") // | ATSCSTSPmyloc (tok) => fprint! (out, "ATSCSTSPmyloc(", tok, ")") // | ATSCKiseqz(d0e) => fprint! (out, "ATSCKiseqz(", d0e, ")") | ATSCKisneqz(d0e) => fprint! (out, "ATSCKisneqz(", d0e, ")") | ATSCKptriscons(d0e) => fprint! (out, "ATSCKptriscons(", d0e, ")") | ATSCKptrisnull(d0e) => fprint! (out, "ATSCKptrisnull(", d0e, ")") // | ATSCKpat_int (d0e, int) => fprint! (out, "ATSCKpat_int(", d0e, int, ")") | ATSCKpat_bool (d0e, bool) => fprint! (out, "ATSCKpat_bool(", d0e, bool, ")") | ATSCKpat_string (d0e, string) => fprint! (out, "ATSCKpat_string(", d0e, string, ")") // | ATSCKpat_con0 (d0e, ctag) => fprint! (out, "ATSCKpat_con0(", d0e, ctag, ")") | ATSCKpat_con1 (d0e, ctag) => fprint! (out, "ATSCKpat_con1(", d0e, ctag, ")") // | ATSSELcon (d0e, s0e, lab) => fprint! (out, "ATSSELcon(", d0e, ";", s0e, ";", lab, ")") | ATSSELrecsin (d0e, s0e, lab) => fprint! (out, "ATSSELrecsin(", d0e, ";", s0e, ";", lab, ")") | ATSSELboxrec (d0e, s0e, lab) => fprint! (out, "ATSSELboxrec(", d0e, ";", s0e, ";", lab, ")") | ATSSELfltrec (d0e, s0e, lab) => fprint! (out, "ATSSELfltrec(", d0e, ";", s0e, ";", lab, ")") // | ATSextfcall (_fun, _arg) => fprint! (out, "ATSextfcall(", _fun, "; ", _arg, ")") | ATSextmcall (_obj, _mtd, _arg) => fprint! (out, "ATSextmcall(", _obj, "; ", _mtd, "; ", _arg, ")") // | ATSfunclo_fun (d0e, arg, res) => fprint! (out, "ATSfunclo_fun(", d0e, ";", arg, ";", res, ")") | ATSfunclo_clo (d0e, arg, res) => fprint! (out, "ATSfunclo_clo(", d0e, ";", arg, ";", res, ")") // end // end of [fprint_d0exp] // (* ****** ****** *) implement fprint_d0explst (out, xs) = fprint_list_sep (out, xs, ", ") (* ****** ****** *) // implement fprint_val = fprint_instr // implement fprint_instr (out, ins0) = let in // case+ ins0.instr_node of // | ATSif (d0e, inss, inssopt) => { val () = fprint (out, "ATSif()\n") val () = fprint_d0exp (out, d0e) val () = fprint (out, "\nATSthen()\n") val () = fprint_instrlst (out, inss) val () = ( case+ inssopt of | None () => () | Some (inss) => { val () = fprint (out, "\nATSelse()\n") val () = fprint_instrlst (out, inss) } ) (* end of [val] *) val () = fprint (out, "\nATSendif()\n") } | ATSthen _ => fprint (out, "ATSthen(...)") | ATSelse _ => fprint (out, "ATSelse(...)") // | ATSifthen (d0e, inss) => { val () = fprint (out, "ATSifthen(") val () = fprint_d0exp (out, d0e) val () = fprint (out, ") ") val () = fprint_instrlst (out, inss) } | ATSifnthen (d0e, inss) => { val () = fprint (out, "ATSifnthen(") val () = fprint_d0exp (out, d0e) val () = fprint (out, ") ") val () = fprint_instrlst (out, inss) } // | ATSbranchseq _ => fprint (out, "ATSbranchseq(...)") | ATScaseofseq _ => fprint (out, "ATScaseofseq(...)") // | ATSfunbodyseq (inss) => { val () = fprint (out, "ATSfunbody_beg()\n") val () = fprint_instrlst (out, inss) val () = fprint (out, "\nATSfunbody_end()") } // | ATSreturn (id) => fprint! (out, "ATSreturn(", id, ")") | ATSreturn_void (id) => fprint! (out, "ATSreturn_void(", id, ")") // | ATSINSlab (lab) => fprint! (out, "ATSINSlab(", lab, ")") | ATSINSgoto (lab) => fprint! (out, "ATSINSgoto(", lab, ")") | ATSINSflab (lab) => fprint! (out, "ATSINSflab(", lab, ")") | ATSINSfgoto (lab) => fprint! (out, "ATSINSfgoto(", lab, ")") // | ATSINSmove (tmp, d0e) => fprint! (out, "ATSINSmove(", tmp, ", ", d0e, ")") | ATSINSmove_void (tmp, d0e) => fprint! (out, "ATSINSmove_void(", tmp, ", ", d0e, ")") // | ATSINSmove_nil (tmp) => fprint! (out, "ATSINSmove_nil(", tmp, ")") | ATSINSmove_con0 (tmp, tag(*token*)) => fprint! (out, "ATSINSmove_con0(", tmp, ", ", tag, ")") // | ATSINScaseof_fail _ => fprint! (out, "ATSINScaseof_fail(...)") | ATSINSdeadcode_fail _ => fprint! (out, "ATSINSdeadcode_fail(...)") // | ATSdynload (dummy) => fprint! (out, "ATSdynload(", ")") | ATSdynloadset (flag) => fprint! (out, "ATSdynloadset(", flag, ")") | ATSdynloadfcall (fcall) => fprint! (out, "ATSdynloadfcall(", fcall, ")") | ATSdynloadflag_sta (flag) => fprint! (out, "ATSdynloadflag_sta(", flag, ")") | ATSdynloadflag_ext (flag) => fprint! (out, "ATSdynloadflag_ext(", flag, ")") | ATSdynloadflag_init (flag) => fprint! (out, "ATSdynloadflag_init(", flag, ")") | ATSdynloadflag_minit (flag) => fprint! (out, "ATSdynloadflag_minit(", flag, ")") // | _ (*rest*) => fprint (out, "fprint_instr(...)") // end // end of [fprint_instr] (* ****** ****** *) implement fprint_instrlst (out, xs) = fprint_list_sep (out, xs, "\n") (* ****** ****** *) implement fprint_fkind (out, x) = let in // case+ x.fkind_node of // | FKextern () => fprint! (out, "ATSextern()") | FKstatic () => fprint! (out, "ATSstatic()") // end // end of [fprint_fkind] (* ****** ****** *) // implement fprint_val = fprint_f0arg // implement fprint_f0arg (out, f0a) = let in // case+ f0a.f0arg_node of // | F0ARGnone (s0e) => fprint! (out, "F0ARGsome(", s0e, ")") | F0ARGsome (id, s0e) => fprint! (out, "F0ARGsome(", id, ": ", s0e, ")") // end // end of [fprint_f0arg] // (* ****** ****** *) // implement fprint_f0marg (out, x) = fprint_list_sep (out, x.f0marg_node, ", ") // (* ****** ****** *) implement fprint_f0head (out, x) = let in // case+ x.f0head_node of | F0HEAD ( id, marg, res ) => fprint! ( out, "F0HEAD(", "; ", id, "(", marg, "): ", res, ")" ) (* end of [fprint] *) // end // end of [fprint_f0head] (* ****** ****** *) // implement fprint_val = fprint_tmpdec // implement fprint_tmpdec (out, x) = let // val node = x.tmpdec_node // in // case+ node of | TMPDECnone (tmp) => fprint! (out, "TMPDECnone(", tmp, ")") | TMPDECsome (tmp, s0e) => fprint! (out, "TMPDECsome(", tmp, ": ", s0e, ")") // end // end of [fprint_tmpdec] // (* ****** ****** *) implement fprint_tmpdeclst (out, xs) = fprint_list_sep (out, xs, ", ") (* ****** ****** *) implement fprint_f0decl (out, x) = let in // case+ x.f0decl_node of | F0DECLnone (head) => fprint! (out, "F0DECLnone()") | F0DECLsome (head, body) => fprint! (out, "F0DECLsome(...)") // end // end of [fprint_f0decl] (* ****** ****** *) // implement fprint_val = fprint_d0ecl // implement fprint_d0ecl (out, x) = let in // case+ x.d0ecl_node of // | D0Cinclude (fname) => fprint! (out, "D0Cinclude(", fname, ")") // | D0Cifdef (id, d0cs) => fprint! (out, "D0Cifdef(", id, "; ", "...", ")") | D0Cifndef (id, d0cs) => fprint! (out, "D0Cifndef(", id, "; ", "...", ")") // | D0Ctypedef (id, tyrec) => fprint! (out, "D0Ctypedef(", id, "; ", "...", ")") // | D0Cassume (name) => fprint! (out, "D0Cassume(", name, ")") // | D0Cdyncst_mac (name) => fprint! (out, "D0Cdyncst_mac(", name, ")") // | D0Cdyncst_extfun (name, s0es, s0e) => fprint! (out, "D0Cdyncst_extfun(", name, ")") // | D0Cdyncst_valdec (name, s0e) => fprint! (out, "D0Cdyncst_valdec(", name, ")") | D0Cdyncst_valimp (name, s0e) => fprint! (out, "D0Cdyncst_valimp(", name, ")") // | D0Cextcode _ => fprint! (out, "D0Cextcode(", "...", ")") // | D0Cstatmp (tmp, opt) => fprint! (out, "D0Cstatmp(", tmp, ": ", opt, ")") // | D0Cfundecl (knd, fdec) => fprint! (out, "D0Cfundecl(", knd, "; ", "...", ")") // | D0Cclosurerize (flab, _, _, _) => fprint! (out, "D0Cclosurerize(", flab, "; ", "...", ")") // | D0Cdynloadflag_init (flag) => fprint! (out, "D0Cdynloadflag_init(", flag, ")") | D0Cdynloadflag_minit (flag) => fprint! (out, "D0Cdynloadflag_minit(", flag, ")") // | D0Cdynexn_dec (idexn) => fprint! (out, "D0Cdynexn_dec(", idexn, ")") | D0Cdynexn_extdec (idexn) => fprint! (out, "D0Cdynexn_extdec(", idexn, ")") | D0Cdynexn_initize (idexn, fullname) => fprint! (out, "D0Cdynexn_initize(", idexn, fullname, ")") // end // end of [fprint_d0ecl] // (* ****** ****** *) implement fprint_d0eclist (out, xs) = let // val () = fprint_list_sep (out, xs, "\n") // in fprint_newline (out) end // end of [fprint_d0eclist] (* ****** ****** *) (* end of [catsparse_print.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_typedef.dats0000644000175000017500000000231313431250607026012 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "./../SATS/catsparse.sats" #staload "./../SATS/catsparse_typedef.sats" // (* ****** ****** *) staload TYPEDEF = { // #staload "./../SATS/catsparse.sats" // typedef key = symbol and itm = tyrec // implement gequal_val_val (k1, k2) = (k1 = k2) // #staload "libats/SATS/hashtbl_chain.sats" // implement hash_key(sym) = // // HX: // [gidentity] is called to circumvent a bug // ( gidentity (hash_key(symbol_get_name(sym))) ) // implement hashtbl$recapacitize<> ((*void*)) = 1(*resizable*) // #define CAPACITY 1024 // #define HX_GLOBALS_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-globals" #include "{$HX_GLOBALS}/HATS/ghashtbl_chain.hats" // } (* end of [staload] *) (* ****** ****** *) implement typedef_insert (name, def) = let (* // val () = println! ("typedef_insert") // *) in // $TYPEDEF.insert_any (name, def) // end // end of [typedef_insert] (* ****** ****** *) // implement typedef_search_opt (name) = $TYPEDEF.search_opt (name) // (* ****** ****** *) (* end of [catsparse_typedef.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_lexbuf.dats0000644000175000017500000001145013431250607025641 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #staload UN = $UNSAFE (* ****** ****** *) #staload "./../SATS/catsparse.sats" (* ****** ****** *) // #staload _ = "libats/DATS/stringbuf.dats" // (* ****** ****** *) // #define HX_CSTREAM_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-cstream" #staload _ = "{$HX_CSTREAM}/DATS/cstream.dats" // (* ****** ****** *) %{^ #define \ atstyarr_field_undef(fname) fname[] %} // end of [%{] (* ****** ****** *) assume lexbuf_vt0ype = _lexbuf_vt0ype (* ****** ****** *) implement lexbuf_initize_string (buf, inp) = () where { // #define BUFCAP 1024 // val cs0 = $CS0.cstream_make_string (inp) val sbf = $SBF.stringbuf_make_nil (i2sz(BUFCAP)) // val () = buf.lexbuf_ntot := 0 val () = buf.lexbuf_nrow := 0 val () = buf.lexbuf_ncol := 0 // val () = buf.lexbuf_nspace := 0 // val () = buf.lexbuf_cstream := cs0 // val () = buf.lexbuf_nback := 0 val () = buf.lexbuf_stringbuf := sbf // } (* end of [lexbuf_initize_string] *) (* ****** ****** *) implement lexbuf_initize_fileref (buf, inp) = () where { // #define BUFCAP 1024 // val cs0 = $CS0.cstream_make_fileref (inp) val sbf = $SBF.stringbuf_make_nil (i2sz(BUFCAP)) // val () = buf.lexbuf_ntot := 0 val () = buf.lexbuf_nrow := 0 val () = buf.lexbuf_ncol := 0 // val () = buf.lexbuf_nspace := 0 // val () = buf.lexbuf_cstream := cs0 // val () = buf.lexbuf_nback := 0 val () = buf.lexbuf_stringbuf := sbf // } (* end of [lexbuf_initize_fileref] *) (* ****** ****** *) implement lexbuf_uninitize (buf) = () where { // val () = $CS0.cstream_free (buf.lexbuf_cstream) val () = $SBF.stringbuf_free (buf.lexbuf_stringbuf) // } (* end of [lexbuf_uninitize] *) (* ****** ****** *) implement lexbuf_get_position (buf, pos) = () where { val () = pos.pos_ntot := buf.lexbuf_ntot val () = pos.pos_nrow := buf.lexbuf_nrow val () = pos.pos_ncol := buf.lexbuf_ncol } implement lexbuf_set_position (buf, pos) = () where { val () = buf.lexbuf_ntot := pos.pos_ntot val () = buf.lexbuf_nrow := pos.pos_nrow val () = buf.lexbuf_ncol := pos.pos_ncol } (* ****** ****** *) // implement lexbuf_set_nback (buf, nb) = buf.lexbuf_nback := nb // implement lexbuf_incby_nback (buf, nb) = buf.lexbuf_nback := buf.lexbuf_nback + nb // (* ****** ****** *) // implement lexbuf_get_nspace (buf) = buf.lexbuf_nspace implement lexbuf_set_nspace (buf, n) = buf.lexbuf_nspace := n // (* ****** ****** *) implement lexbuf_remove (buf, nchr) = { // val nchr = i2sz(nchr) val () = $SBF.stringbuf_remove (buf.lexbuf_stringbuf, nchr) // val nbuf = $SBF.stringbuf_get_size (buf.lexbuf_stringbuf) val ((*void*)) = lexbuf_set_nback (buf, sz2i(nbuf)) // } (* end of [lexbuf_remove] *) (* ****** ****** *) implement lexbuf_remove_all (buf) = () where { // val () = lexbuf_set_nback (buf, 0) val () = $SBF.stringbuf_remove_all (buf.lexbuf_stringbuf) // } (* end of [lexbuf_remove_all] *) (* ****** ****** *) implement lexbuf_takeout (buf, nchr) = let // val nchr = i2sz(nchr) // val strp = $SBF.stringbuf_takeout (buf.lexbuf_stringbuf, nchr) // val nbuf = $SBF.stringbuf_get_size (buf.lexbuf_stringbuf) val ((*void*)) = lexbuf_set_nback (buf, sz2i(nbuf)) // in strp end (* end of [lexbuf_takeout] *) (* ****** ****** *) implement lexbuf_get_char (buf) = let // val nb = g1ofg0(buf.lexbuf_nback) // in // if nb <= 0 then let val i = $CS0.cstream_get_char(buf.lexbuf_cstream) // end of [val] val () = if i > 0 then { val c = int2char0(i) val c = $UN.cast{charNZ}(c) val _(*1*) = $SBF.stringbuf_insert_char(buf.lexbuf_stringbuf, c) // end of [val] } (* end of [if] *) // end of [if] in i(*inserted*) end // end of [then] else let val nb1 = pred(nb) val ((*void*)) = buf.lexbuf_nback := nb1 in $SBF.stringbuf_rget_at (buf.lexbuf_stringbuf, i2sz(nb)) end // end of [else] // end (* end of [lexbuf_get_char] *) (* ****** ****** *) implement lexbuf_getbyrow_location (buf) = loc where { // var pos: position val () = lexbuf_get_position (buf, pos) val () = position_byrow (pos) // by-1-row val loc = lexbufpos_get_location (buf, pos) val () = lexbuf_set_position (buf, pos) // } (* end of [lexbuf_getbyrow_location] *) (* ****** ****** *) implement lexbuf_getincby_location (buf, nchr) = loc where { // var pos: position val () = lexbuf_get_position (buf, pos) val () = position_incby (pos, nchr(*char*)) val loc = lexbufpos_get_location (buf, pos) val () = lexbuf_set_position (buf, pos) // } (* end of [lexbuf_getincby_location] *) (* ****** ****** *) implement lexbufpos_get_location (buf, pos2) = let var pos1: position val ((*void*)) = lexbuf_get_position (buf, pos1) in location_make_pos_pos (pos1, pos2) end // end of [lexbufpos_get_location] (* ****** ****** *) (* end of [catsparse_lexbuf.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_syntax.dats0000644000175000017500000010213013431250607025676 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload STRING = "libats/libc/SATS/string.sats" // (* ****** ****** *) staload "./../SATS/catsparse.sats" staload "./../SATS/catsparse_syntax.sats" (* ****** ****** *) infix ++ overload ++ with location_combine (* ****** ****** *) implement synent_decode2{a} (x) = let val res = synent_decode{a}(x) prval ((*void*)) = topize (x) in res end // end of [synent_decode2] (* ****** ****** *) implement synent_null{a} () = $UN.cast{a}(the_null_ptr) (* ****** ****** *) // implement synent_is_null (ent) = iseqz ($UN.cast2ptr(ent)) implement synent_isnot_null (ent) = isneqz ($UN.cast2ptr(ent)) // (* ****** ****** *) // implement i0dex_make_sym (loc, sym) = '{ i0dex_loc= loc, i0dex_sym= sym } // implement i0dex_make_string (loc, name) = let val sym = symbol_make (name) in i0dex_make_sym (loc, sym) end // end of [i0dex_make_string] // (* ****** ****** *) // fun s0exp_make_node (loc, node) = '{ s0exp_loc=loc, s0exp_node=node } (* end of [s0exp_make_node] *) // (* ****** ****** *) // implement s0exp_ide (loc, id) = s0exp_make_node (loc, S0Eide (id.i0dex_sym)) // implement s0exp_list (loc, s0es) = s0exp_make_node (loc, S0Elist (s0es)) // implement s0exp_appid (id, s0e) = let // val loc = id.i0dex_loc ++ s0e.s0exp_loc // val-S0Elist (s0es) = s0e.s0exp_node // in s0exp_make_node (loc, S0Eappid (id, s0es)) end // end of [s0exp_appid] // (* ****** ****** *) // // HX: for constructing dynamic expressions // (* ****** ****** *) // fun d0exp_make_node (loc, node) = '{ d0exp_loc=loc, d0exp_node=node } (* end of [d0exp_make_node] *) // (* ****** ****** *) // implement d0exp_ide (id) = let val loc = id.i0dex_loc in d0exp_make_node(loc, D0Eide(id)) end // end of [d0exp_ide] // implement d0exp_list (loc, d0es) = d0exp_make_node (loc, D0Elist(d0es)) // implement d0exp_appid (id, d0e_arg) = let // val loc = id.i0dex_loc ++ d0e_arg.d0exp_loc // val-D0Elist (d0es_arg) = d0e_arg.d0exp_node // in d0exp_make_node (loc, D0Eappid (id, d0es_arg)) end // end of [d0exp_appid] // implement d0exp_appexp (d0e_fun, d0e_arg) = let // val loc = d0e_fun.d0exp_loc ++ d0e_arg.d0exp_loc // val-D0Elist (d0es_arg) = d0e_arg.d0exp_node // in d0exp_make_node (loc, D0Eappexp (d0e_fun, d0es_arg)) end // end of [d0exp_appexp] // (* ****** ****** *) // implement ATSPMVint_make ( tok1, int, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVint (int)) end // end of [ATSPMVint] // implement ATSPMVintrep_make ( tok1, int, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVintrep (int)) end // end of [ATSPMVintrep] // (* ****** ****** *) implement ATSPMVbool_make ( tok1, tfv, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVbool (tfv)) end // end of [ATSPMVbool] (* ****** ****** *) implement ATSPMVfloat_make ( tok1, float, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVfloat (float)) end // end of [ATSPMVfloat] (* ****** ****** *) implement ATSPMVstring_make ( tok1, str, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVstring (str)) end // end of [ATSPMVstring] (* ****** ****** *) implement ATSPMVi0nt_make ( tok1, int, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVi0nt (int)) end // end of [ATSPMVi0nt] (* ****** ****** *) implement ATSPMVf0loat_make ( tok1, float, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVf0loat (float)) end // end of [ATSPMVf0loat] (* ****** ****** *) // implement ATSPMVempty_make ( tok1, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVempty(0)) end // end of [ATSPMVempty] // implement ATSPMVextval_make ( tok1, toks, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVextval(toks)) end // end of [ATSPMVextval] // (* ****** ****** *) implement ATSPMVrefarg0_make ( tok1, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVrefarg0 (d0e)) end // end of [ATSPMVrefarg0] (* ****** ****** *) implement ATSPMVrefarg1_make ( tok1, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVrefarg1 (d0e)) end // end of [ATSPMVrefarg1] (* ****** ****** *) implement ATSPMVfunlab_make ( tok1, flab, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVfunlab (flab)) end // end of [ATSPMVfunlab] (* ****** ****** *) implement ATSPMVcfunlab_make ( tok1, knd, fl, arg, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // val+SIGNED (_, knd) = knd val-D0Elist (d0es) = arg.d0exp_node // in d0exp_make_node (loc, ATSPMVcfunlab(knd, fl, d0es)) end // end of [ATSPMVcfunlab] (* ****** ****** *) implement ATSPMVcastfn_make ( tok1, fid, s0e_res, arg, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSPMVcastfn(fid, s0e_res, arg)) end // end of [ATSPMVcastfn_make] (* ****** ****** *) implement ATSCSTSPmyloc_make ( tok1, str, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSCSTSPmyloc (str)) end // end of [ATSCSTSPmyloc_make] (* ****** ****** *) // implement ATSCKiseqz_make ( tok1, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSCKiseqz (d0e)) end // end of [ATSCKiseqz_make] // implement ATSCKisneqz_make ( tok1, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSCKisneqz (d0e)) end // end of [ATSCKisneqz_make] // (* ****** ****** *) // implement ATSCKptriscons_make ( tok1, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSCKptriscons (d0e)) end // end of [ATSCKptriscons_make] // implement ATSCKptrisnull_make ( tok1, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSCKptrisnull (d0e)) end // end of [ATSCKptrisnull_make] // (* ****** ****** *) implement ATSCKpat_int_make ( tok1, d0e, int, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSCKpat_int (d0e, int)) end // end of [ATSCKpat_int_make] implement ATSCKpat_bool_make ( tok1, d0e, bool, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSCKpat_bool (d0e, bool)) end // end of [ATSCKpat_bool_make] implement ATSCKpat_string_make ( tok1, d0e, string, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSCKpat_string (d0e, string)) end // end of [ATSCKpat_string_make] (* ****** ****** *) implement ATSCKpat_con0_make ( tok1, d0e, ctag, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // val+SIGNED (_, ctag) = ctag // in d0exp_make_node (loc, ATSCKpat_con0 (d0e, ctag)) end // end of [ATSCKpat_con0_make] (* ****** ****** *) implement ATSCKpat_con1_make ( tok1, d0e, ctag, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // val+SIGNED (_, ctag) = ctag // in d0exp_make_node (loc, ATSCKpat_con1 (d0e, ctag)) end // end of [ATSCKpat_con1_make] (* ****** ****** *) implement ATSSELcon_make ( tok1, d0e, s0e, lab, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSSELcon (d0e, s0e, lab)) end // end of [ATSSELcon_make] (* ****** ****** *) implement ATSSELrecsin_make ( tok1, d0e, s0e, lab, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSSELrecsin (d0e, s0e, lab)) end // end of [ATSSELrecsin_make] (* ****** ****** *) implement ATSSELboxrec_make ( tok1, d0e, s0e, lab, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSSELboxrec (d0e, s0e, lab)) end // end of [ATSSELboxrec_make] (* ****** ****** *) implement ATSSELfltrec_make ( tok1, d0e, s0e, lab, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0exp_make_node (loc, ATSSELfltrec (d0e, s0e, lab)) end // end of [ATSSELfltrec_make] (* ****** ****** *) implement ATSextfcall_make ( tok1, _fun, _arg, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // val-D0Elist(d0es_arg) = _arg.d0exp_node // in d0exp_make_node (loc, ATSextfcall (_fun, d0es_arg)) end // end of [ATSextfcall_make] (* ****** ****** *) implement ATSextmcall_make ( tok1, _obj, _mtd, _arg, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // val-D0Elist(d0es_arg) = _arg.d0exp_node // in d0exp_make_node (loc, ATSextmcall (_obj, _mtd, d0es_arg)) end // end of [ATSextmcall_make] (* ****** ****** *) implement ATSfunclo_fun_make ( tok1, d0e, arg, res, tok2, opt ) = let // val loc = tok1.token_loc ++ tok2.token_loc val d0e_fun = d0exp_make_node (loc, ATSfunclo_fun(d0e, arg, res)) // in // case+ opt of | None () => d0e | Some (d0e_arg) => let val loc2 = loc ++ d0e_arg.d0exp_loc val-D0Elist (d0es_arg) = d0e_arg.d0exp_node in d0exp_make_node (loc2, D0Eappexp(d0e_fun, d0es_arg)) end // end of [Some] // end // end of [ATSfunclo_fun_make] (* ****** ****** *) implement ATSfunclo_clo_make ( tok1, d0e, arg, res, tok2, opt ) = let // val loc = tok1.token_loc ++ tok2.token_loc val d0e_clo = d0exp_make_node (loc, ATSfunclo_clo(d0e, arg, res)) // in // case+ opt of | None () => d0e | Some (d0e_arg) => let val loc2 = loc ++ d0e_arg.d0exp_loc val-D0Elist (d0es_arg) = d0e_arg.d0exp_node in d0exp_make_node (loc2, D0Eappexp(d0e_clo, d0es_arg)) end // end of [Some] // end // end of [ATSfunclo_clo_make] (* ****** ****** *) implement tyfld_make (s0e, id) = let // val loc = s0e.s0exp_loc ++ id.i0dex_loc // in '{ tyfld_loc= loc, tyfld_node= TYFLD (id, s0e) } end // end of [tyfld_make] (* ****** ****** *) implement tyrec_make ( tok1, tyflds, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in '{ tyrec_loc= loc, tyrec_node= tyflds } end // end of [tyrec_make] (* ****** ****** *) // implement f0arg_none (s0e) = '{ f0arg_loc= s0e.s0exp_loc , f0arg_node= F0ARGnone (s0e) } (* end of [f0arg_none] *) // implement f0arg_some (s0e, id) = let // (* val () = println! ("f0arg_some: id = ", id) val () = println! ("f0arg_some: s0e = ", s0e) *) // val loc = s0e.s0exp_loc ++ id.i0dex_loc // in '{ f0arg_loc= loc , f0arg_node= F0ARGsome (id, s0e) } end // end of [f0arg_some] // (* ****** ****** *) // implement f0marg_isneqz (f0ma) = isneqz (f0ma.f0marg_node) // (* ****** ****** *) implement f0marg_make ( tok1, f0as, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in '{ f0marg_loc= loc, f0marg_node = f0as } end // end of [f0marg_make] (* ****** ****** *) // implement fkind_extern (tok1, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in '{ fkind_loc= loc, fkind_node = FKextern () } end // end of [fkind_extern] // implement fkind_static (tok1, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in '{ fkind_loc= loc, fkind_node = FKstatic () } end // end of [fkind_static] // (* ****** ****** *) implement f0head_get_f0arglst (fhd) = f0ma.f0marg_node where { // val+F0HEAD (_, f0ma, _) = fhd.f0head_node // } (* end of [f0head_get_f0arglst] *) (* ****** ****** *) implement f0head_make ( res, id, marg ) = let // val loc = res.s0exp_loc ++ marg.f0marg_loc // in '{ f0head_loc= loc , f0head_node= F0HEAD (id, marg, res) } end // end of [f0head_make] (* ****** ****** *) // implement tmpvar_is_sta(tmp) = ( $STRING.strncmp(symbol_get_name(tmp), "sta", i2sz(3)) = 0 ) (* end of [tmpvar_is_sta] *) implement tmpvar_is_arg(tmp) = ( $STRING.strncmp (symbol_get_name(tmp), "arg", i2sz(3)) = 0 ) (* end of [tmpvar_is_arg] *) implement tmpvar_is_apy(tmp) = ( $STRING.strncmp(symbol_get_name(tmp), "apy", i2sz(3)) = 0 ) (* end of [tmpvar_is_apy] *) // implement tmpvar_is_env(tmp) = ( $STRING.strncmp(symbol_get_name(tmp), "env", i2sz(3)) = 0 ) (* end of [tmpvar_is_env] *) // implement tmpvar_is_tmp(tmp) = ( $STRING.strncmp(symbol_get_name(tmp), "tmp", i2sz(3)) = 0 ) (* end of [tmpvar_is_tmp] *) implement tmpvar_is_tmpret(tmp) = ( $STRING.strncmp(symbol_get_name(tmp), "tmpret", i2sz(6)) = 0 ) (* end of [tmpvar_is_tmpret] *) // (* ****** ****** *) // (* implement tmpvar_is_a2rg(tmp) = ( $STRING.strncmp(symbol_get_name(tmp), "a2rg", i2sz(4)) = 0 ) (* end of [tmpvar_is_a2rg] *) implement tmpvar_is_a2py(tmp) = ( $STRING.strncmp(symbol_get_name(tmp), "a2py", i2sz(4)) = 0 ) (* end of [tmpvar_is_a2py] *) *) // (* ****** ****** *) local // fun skipds ( p1: ptr ) : ptr = let val c1 = $UN.ptr0_get(p1) in if isdigit(c1) then skipds(ptr_succ(p1)) else p1 // end of [if] end // end of [skipds] // in (* in-of-local *) implement tmpvar_is_axrg(tmp) = let // val p0 = string2ptr (symbol_get_name(tmp)) // val c0 = $UN.ptr0_get(p0) // in // if (c0 = 'a') then let // val p1 = skipds(ptr_succ(p0)) // val c1 = $UN.ptr0_get(p1) // in // if (c1 = 'r') then let val p2 = ptr_succ(p1) val c2 = $UN.ptr0_get(p2) in if (c2 = 'g') then true else false end // end of [then] else false // end // end of [then] else false // end // end of [tmpvar_is_axrg] implement tmpvar_is_axpy(tmp) = let // val p0 = string2ptr (symbol_get_name(tmp)) // val c0 = $UN.ptr0_get(p0) // in // if (c0 = 'a') then let // val p1 = skipds(ptr_succ(p0)) // val c1 = $UN.ptr0_get(p1) // in // if (c1 = 'p') then let val p2 = ptr_succ(p1) val c2 = $UN.ptr0_get(p2) in if (c2 = 'y') then true else false end // end of [then] else false // end // end of [then] else false // end // end of [tmpvar_is_axpy] end // end of [local] (* ****** ****** *) // implement tmpvar_is_local (tmp) = ( ifcase | tmpvar_is_tmp(tmp) => true // | tmpvar_is_arg(tmp) => true | tmpvar_is_apy(tmp) => true // | tmpvar_is_env(tmp) => true // | tmpvar_is_axrg(tmp) => true | tmpvar_is_axpy(tmp) => true // | _ (* else *) => false ) (* end of [tmpvar_is_local] *) // (* ****** ****** *) implement tmpdec_make_none ( tok_kwd, tmp, tok_end ) = let // val loc = tok_kwd.token_loc ++ tok_end.token_loc // in '{ tmpdec_loc= loc, tmpdec_node= TMPDECnone (tmp) } end // end of [tmpdec_make_none] (* ****** ****** *) implement tmpdec_make_some ( tok_kwd, tmp, s0e, tok_end ) = let // val loc = tok_kwd.token_loc ++ tok_end.token_loc // in '{ tmpdec_loc= loc, tmpdec_node= TMPDECsome (tmp, s0e) } end // end of [tmpdec_make_some] (* ****** ****** *) implement instrlst_skip_linepragma (inss) = ( // case+ inss of | list_nil () => list_nil () | list_cons (ins, inss2) => ( case+ ins.instr_node of | ATSlinepragma _ => inss2 | _ => inss ) // ) (* end of [instrlst_skip_linepragma] *) (* ****** ****** *) fun instr_make_node ( loc: loc_t, node: instr_node ) : instr = '{ instr_loc= loc, instr_node= node } (* ****** ****** *) implement ATSif_make ( tok_if, d0e, ins1, insopt2 ) = let // val loc = ( case+ insopt2 of | Some (ins2) => tok_if.token_loc ++ ins2.instr_loc | None ((*void*)) => tok_if.token_loc ++ ins1.instr_loc ) : loc_t // end of [val] // val inss_then = let val-ATSthen(inss) = ins1.instr_node in inss end // end of [val] val inssopt_else = ( // case+ insopt2 of | Some (ins2) => let val-ATSelse(inss) = ins2.instr_node in Some(inss) end // end of [Some] | None ((*void*)) => None () // ) : instrlstopt // end of [val] // in instr_make_node (loc, ATSif (d0e, inss_then, inssopt_else)) end // end of [ATSif_make] (* ****** ****** *) implement ATSifthen_make ( tok1, d0e, inss, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSifthen (d0e, inss)) end // end of [ATSifthen_make] (* ****** ****** *) implement ATSifnthen_make ( tok1, d0e, inss, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSifnthen (d0e, inss)) end // end of [ATSifnthen_make] (* ****** ****** *) // implement ATSthen_make (tok1, inss, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSthen (inss)) end // end of [ATSthen_make] // implement ATSelse_make (tok1, inss, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSelse (inss)) end // end of [ATSelse_make] // (* ****** ****** *) implement ATSbranchseq_make ( tok1, inss, tok2 ) = let val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSbranchseq (inss)) end // end of [ATSbranchseq_make] (* ****** ****** *) implement caseofseq_get_tmplablst (ins0) = let // vtypedef res = labelist_vt // fun auxlst ( xs: instrlst, res: res ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => ( case+ x.instr_node of | ATSINSlab(lab) => auxlst(xs, cons_vt(lab, res)) | _(*non-ATSINSlab*) => auxlst(xs, res) ) ) (* end of [auxlst] *) // fun auxlst2 ( xs: instrlst, res: res ) : res = ( case+ xs of | list_nil () => res | list_cons (x, xs) => ( case- x.instr_node of | ATSbranchseq(inss) => auxlst2(xs, auxlst(inss, res)) ) (* end of [list_cons] *) ) (* end of [auxlst2] *) // val- ATScaseofseq(inss) = ins0.instr_node // val res = auxlst2(inss, list_vt_nil()) // in list_vt2t(list_vt_reverse(res)) end // end of [caseofseq_get_tmplablst] (* ****** ****** *) implement ATScaseofseq_make ( tok1, inss, tok2 ) = let val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATScaseofseq (inss)) end // end of [ATScaseofseq_make] (* ****** ****** *) implement funbodyseq_get_funlab (ins0) = flab where { // val- ATSfunbodyseq(inss) = ins0.instr_node val inss = instrlst_skip_linepragma (inss) // val-list_cons (ins1, _(*inss2*)) = inss val-ATSINSflab (flab) = ins1.instr_node // } // end of [funbodyseq_get_funlab] (* ****** ****** *) implement ATSfunbodyseq_make ( tok1, inss, tok2 ) = let val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSfunbodyseq (inss)) end // end of [ATSfunbodyseq_make] (* ****** ****** *) implement ATSreturn_make ( tok1, tmp, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSreturn (tmp)) end // end of [ATSreturn_make] (* ****** ****** *) implement ATSreturn_void_make ( tok1, tmp, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSreturn_void (tmp)) end // end of [ATSreturn_void_make] (* ****** ****** *) implement ATSlinepragma_make (tok_kwd, line, file) = let // val loc = tok_kwd.token_loc ++ file.token_loc // in instr_make_node (loc, ATSlinepragma (line, file)) end // end of [ATSlinepragma_make] (* ****** ****** *) (* ****** ****** *) implement ATSINSlab_make ( tok1, lab, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSlab (lab)) end // end of [ATSINSlab_make] (* ****** ****** *) implement ATSINSgoto_make ( tok1, lab, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSgoto (lab)) end // end of [ATSINSgoto_make] (* ****** ****** *) implement ATSINSflab_make ( tok1, flab, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSflab (flab)) end // end of [ATSINSlab_make] (* ****** ****** *) implement ATSINSfgoto_make ( tok1, flab, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSfgoto (flab)) end // end of [ATSINSfgoto_make] (* ****** ****** *) implement ATSINSfreeclo_make ( tok1, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSfreeclo (d0e)) end // end of [ATSINSfreeclo_make] implement ATSINSfreecon_make ( tok1, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSfreecon (d0e)) end // end of [ATSINSfreecon_make] (* ****** ****** *) implement ATSINSmove_make ( tok1, tmp, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove (tmp, d0e)) end // end of [ATSINSmove_make] (* ****** ****** *) implement ATSINSmove_void_make ( tok1, tmp, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_void (tmp, d0e)) end // end of [ATSINSmove_void_make] (* ****** ****** *) implement ATSINSmove_nil_make ( tok1, tmp, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_nil (tmp)) end // end of [ATSINSmove_nil_make] (* ****** ****** *) implement ATSINSmove_con0_make ( tok1, tmp, ctag, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_con0 (tmp, ctag)) end // end of [ATSINSmove_con0_make] (* ****** ****** *) implement ATSINSmove_con1_make ( tok1, inss, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_con1 (inss)) end // end of [ATSINSmove_con1_make] (* ****** ****** *) implement ATSINSmove_con1_new_make ( tok1, tmp, s0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_con1_new (tmp, s0e)) end // end of [ATSINSmove_con1_new_make] (* ****** ****** *) implement ATSINSstore_con1_tag_make ( tok1, tmp, ctag, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSstore_con1_tag (tmp, ctag)) end // end of [ATSINSstore_con1_ctag_make] (* ****** ****** *) implement ATSINSstore_con1_ofs_make ( tok1, tmp, s0e, lab, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSstore_con1_ofs (tmp, s0e, lab, d0e)) end // end of [ATSINSstore_con1_ofs_make] (* ****** ****** *) implement ATSINSmove_boxrec_make ( tok1, inss, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_boxrec (inss)) end // end of [ATSINSmove_boxrec_make] (* ****** ****** *) implement ATSINSmove_boxrec_new_make ( tok1, tmp, s0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_boxrec_new (tmp, s0e)) end // end of [ATSINSmove_boxrec_new_make] (* ****** ****** *) implement ATSINSstore_boxrec_ofs_make ( tok1, tmp, s0e, lab, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in // instr_make_node (loc, ATSINSstore_boxrec_ofs (tmp, s0e, lab, d0e)) // end // end of [ATSINSstore_boxrec_ofs_make] (* ****** ****** *) implement ATSINSmove_fltrec_make ( tok1, inss, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_fltrec (inss)) end // end of [ATSINSmove_fltrec_make] (* ****** ****** *) implement ATSINSstore_fltrec_ofs_make ( tok1, tmp, s0e, lab, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in // instr_make_node (loc, ATSINSstore_fltrec_ofs (tmp, s0e, lab, d0e)) // end // end of [ATSINSstore_fltrec_ofs_make] (* ****** ****** *) implement ATSINSmove_delay_make ( tok1, tmp, s0e_res, thunk, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_delay(tmp, s0e_res, thunk)) end // end of [ATSINSmove_delay_make] (* ****** ****** *) implement ATSINSmove_lazyeval_make ( tok1, tmp, s0e_res, lazyval, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_lazyeval(tmp, s0e_res, lazyval)) end // end of [ATSINSmove_lazyeval_make] (* ****** ****** *) implement ATSINSmove_ldelay_make ( tok1, tmp, s0e_res, thunk, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_ldelay(tmp, s0e_res, thunk)) end // end of [ATSINSmove_ldelay_make] (* ****** ****** *) implement ATSINSmove_llazyeval_make ( tok1, tmp, s0e_res, lazyval, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_llazyeval(tmp, s0e_res, lazyval)) end // end of [ATSINSmove_llazyeval_make] (* ****** ****** *) implement ATStailcalseq_make ( tok1, inss, tok2 ) = let val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATStailcalseq (inss)) end // end of [ATStailcalseq_make] (* ****** ****** *) implement ATSINSmove_tlcal_make ( tok1, apy, d0e, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSmove_tlcal (apy, d0e)) end // end of [ATSINSmove_tlcal_make] (* ****** ****** *) implement ATSINSargmove_tlcal_make ( tok1, arg, apy, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSargmove_tlcal (arg, apy)) end // end of [ATSINSargmove_tlcal_make] (* ****** ****** *) implement ATSINSextvar_assign_make ( tok1, ext, d0e_r, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSextvar_assign (ext, d0e_r)) end // end of [ATSINSextvar_assign_make] (* ****** ****** *) implement ATSINSdyncst_valbind_make ( tok1, d2c, d0e_r, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSdyncst_valbind (d2c, d0e_r)) end // end of [ATSINSdyncst_valbind_make] (* ****** ****** *) implement ATSINScaseof_fail_make (tok1, errmsg, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINScaseof_fail(errmsg)) end // end of [ATSINScaseof_fail_make] (* ****** ****** *) implement ATSINSdeadcode_fail_make (tok1, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSINSdeadcode_fail(tok1)) end // end of [ATSINSdeadcode_fail_make] (* ****** ****** *) implement ATSdynload_make (tok1, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSdynload(0)) end // end of [ATSdynload_make] (* ****** ****** *) implement ATSdynloadset_make (tok1, id, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSdynloadset(id)) end // end of [ATSdynloadset] (* ****** ****** *) implement ATSdynloadfcall_make (tok1, id, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSdynloadfcall(id)) end // end of [ATSdynloadfcall] (* ****** ****** *) implement ATSdynloadflag_sta_make (tok1, id, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSdynloadflag_sta(id)) end // end of [ATSdynloadflag_sta_make] (* ****** ****** *) implement ATSdynloadflag_ext_make (tok1, id, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in instr_make_node (loc, ATSdynloadflag_ext(id)) end // end of [ATSdynloadflag_ext_make] (* ****** ****** *) implement f0body_classify (fbody) = let // fun fcount ( xs: instrlst, res: int ) : int = ( case+ xs of | list_nil () => res | list_cons (x, xs) => ( case+ x.instr_node of | ATSfunbodyseq _ => fcount (xs, res+1) | _ => fcount (xs, res) ) (* end of [list_cons] *) ) // fun istailcal ( inss: instrlst ) : bool = let // (* val () = fprintln! (stdout_ref, "istailcal: inss = ", inss) *) // fun aux (x: instr): bool = let // (* val () = fprintln! (stdout_ref, "istailcal: aux: x = ", x) *) // in // case+ x.instr_node of // case+ | ATStailcalseq _ => true | ATSif (_, _then, _else) => if auxlst (_then) then true else auxlstopt (_else) | ATSbranchseq (inss) => auxlst (inss) | ATScaseofseq (inss) => auxlst (inss) | ATSfunbodyseq (inss) => auxlst (inss) | _(*rest-of-instr*) => false // end // end of [aux] // and auxlst (xs: instrlst): bool = ( case+ xs of | list_nil () => false | list_cons (x, xs) => if aux (x) then true else auxlst (xs) // end of [list_cons] ) // and auxlstopt (opt: instrlstopt): bool = ( case+ opt of | None () => false | Some (inss) => auxlst (inss) ) // in auxlst (inss) end // end of [istailcal] // in // case+ fbody.f0body_node of | F0BODY (tds, inss) => let val nf = fcount (inss, 0) (* val () = fprintln! (stdout_ref, "f0body_classify: nf = ", nf) // end of [val] *) in if nf >= 2 then 2 else (if istailcal (inss) then 1 else 0) end // end of [...] // end // end of [f0body_classify] (* ****** ****** *) implement f0body_get_tmpdeclst (fbody) = ( // case+ fbody.f0body_node of F0BODY (tds, _) => tds // ) (* end of [f0body_get_tmpdeclst] *) (* ****** ****** *) implement f0body_get_bdinstrlst (fbody) = ( // case+ fbody.f0body_node of F0BODY (_, inss) => inss // ) (* end of [f0body_get_bdinstrlst] *) (* ****** ****** *) implement f0body_make ( tok_beg, tmps, inss, tok_end ) = let // val loc = tok_beg.token_loc ++ tok_end.token_loc // in '{ f0body_loc= loc, f0body_node= F0BODY (tmps, inss) } end // end of [f0body_make] (* ****** ****** *) implement f0decl_none (head) = let // val loc = head.f0head_loc // in '{ f0decl_loc= loc, f0decl_node= F0DECLnone(head) } end // end of [f0decl_none] (* ****** ****** *) implement f0decl_some (head, body) = let // val loc = head.f0head_loc ++ body.f0body_loc // in '{ f0decl_loc= loc, f0decl_node= F0DECLsome(head, body) } end // end of [f0decl_some] (* ****** ****** *) fun d0ecl_make_node ( loc: loc_t, node: d0ecl_node ) : d0ecl = '{ d0ecl_loc= loc, d0ecl_node= node } (* ****** ****** *) implement d0ecl_include (tok, fname) = let // val loc = tok.token_loc ++ fname.token_loc // in d0ecl_make_node (loc, D0Cinclude (fname)) end // end of [d0ecl_include] (* ****** ****** *) implement d0ecl_ifdef ( tok1, id, d0cs, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cifdef (id, d0cs)) end // end of [d0ecl_ifdef] (* ****** ****** *) implement d0ecl_ifndef ( tok1, id, d0cs, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cifdef (id, d0cs)) end // end of [d0ecl_ifndef] (* ****** ****** *) implement d0ecl_assume (tok1, name, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cassume (name)) end // end of [d0ecl_assume] (* ****** ****** *) implement d0ecl_dyncst_mac (tok1, name, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cdyncst_mac (name)) end // end of [d0ecl_dyncst_mac] (* ****** ****** *) implement d0ecl_dyncst_extfun (tok1, name, s0es, s0e, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in // d0ecl_make_node(loc, D0Cdyncst_extfun(name, s0es, s0e)) // end // end of [d0ecl_dyncst_extfun] (* ****** ****** *) implement d0ecl_dyncst_valdec (tok1, name, d0c_type, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cdyncst_valdec(name, d0c_type)) end // end of [d0ecl_dyncst_valdec] (* ****** ****** *) implement d0ecl_dyncst_valimp (tok1, name, d0v_type, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cdyncst_valimp(name, d0v_type)) end // end of [d0ecl_dyncst_valimp] (* ****** ****** *) implement d0ecl_typedef (tok, tyrec, id) = let // val loc = tok.token_loc ++ id.i0dex_loc // in d0ecl_make_node (loc, D0Ctypedef (id, tyrec)) end // end of [d0ecl_typedef] (* ****** ****** *) implement d0ecl_extcode ( tok1, extcode, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cextcode (extcode)) end // end of [d0ecl_extcode] (* ****** ****** *) // implement d0ecl_statmp_none (tok1, tmp, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cstatmp (tmp, None())) end // end of [d0ecl_statmp_none] // implement d0ecl_statmp_some (tok1, tmp, s0e, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cstatmp (tmp, Some(s0e))) end // end of [d0ecl_statmp_some] // (* ****** ****** *) implement d0ecl_fundecl (fk, fdec) = let // val loc = fk.fkind_loc ++ fdec.f0decl_loc // in d0ecl_make_node (loc, D0Cfundecl (fk, fdec)) end // end of [d0ecl_fundecl] (* ****** ****** *) implement d0ecl_closurerize ( tok1, fl, env, arg, res, tok2 ) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cclosurerize (fl, env, arg, res)) end // end of [d0ecl_closurerize] (* ****** ****** *) implement d0ecl_dynloadflag_init (tok1, flag, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cdynloadflag_init (flag)) end // end of [d0ecl_dynloadflag_init] implement d0ecl_dynloadflag_minit (tok1, flag, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cdynloadflag_minit (flag)) end // end of [d0ecl_dynloadflag_minit] (* ****** ****** *) implement d0ecl_dynexn_dec (tok1, idexn, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cdynexn_dec (idexn)) end // end of [d0ecl_dynexn_dec] implement d0ecl_dynexn_extdec (tok1, idexn, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cdynexn_extdec (idexn)) end // end of [d0ecl_dynexn_extdec] implement d0ecl_dynexn_initize (tok1, idexn, fullname, tok2) = let // val loc = tok1.token_loc ++ tok2.token_loc // in d0ecl_make_node (loc, D0Cdynexn_initize (idexn, fullname)) end // end of [d0ecl_dynexn_initize] (* ****** ****** *) (* end of [catsparse_syntax.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_posloc.dats0000644000175000017500000001040313431250607025650 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/catsparse.sats" (* ****** ****** *) implement position_byrow(pos) = { // val () = pos.pos_ntot := pos.pos_ntot + 1 val () = pos.pos_ncol := 0 val () = pos.pos_nrow := pos.pos_nrow + 1 // } (* end of [position_byrow] *) (* ****** ****** *) // implement position_incby1 (pos) = position_incby (pos, 1) // implement position_incby(pos, n) = { // val () = pos.pos_ntot := pos.pos_ntot + n val () = pos.pos_ncol := pos.pos_ncol + n // } (* end of [position_incby] *) (* ****** ****** *) implement position_decby(pos, n) = { // val () = pos.pos_ntot := pos.pos_ntot - n val () = pos.pos_ncol := pos.pos_ncol - n // } (* end of [position_decby] *) (* ****** ****** *) implement position_incby_char (pos, c) = let // val () = pos.pos_ntot := pos.pos_ntot+1 // in // case+ c of | '\n' => { val () = pos.pos_ncol := 0 val () = pos.pos_nrow := pos.pos_nrow+1 } | _ (*rest*) => { val () = pos.pos_ncol := pos.pos_ncol+1 } // end // end of [position_incby_char] (* ****** ****** *) assume location_type = '{ fil= fil_t , beg_ntot= int // beginning char position , beg_nrow= int , beg_ncol= int , end_ntot= int // finishing char position , end_nrow= int , end_ncol= int } (* end of [location_type] *) (* ****** ****** *) implement location_dummy = '{ fil= filename_dummy , beg_ntot= ~1, beg_nrow= ~1 , beg_ncol= ~1, end_ntot= ~1 , end_nrow= ~1, end_ncol= ~1 } (* end of [location_dummy] *) (* ****** ****** *) implement fprint_location (out, loc) = let // val fil = loc.fil val ((*void*)) = fprint_filename (out, fil) // in fprint_string (out, ": "); fprint_locrange (out, loc) end (* end of [fprint_location] *) (* ****** ****** *) implement fprint_locrange (out, loc) = () where { // val () = fprint_int (out, loc.beg_ntot+1) val () = fprint_string (out, "(line=") val () = fprint_int (out, loc.beg_nrow+1) val () = fprint_string (out, ", offs=") val () = fprint_int (out, loc.beg_ncol+1) val () = fprint_string (out, ")") // val () = fprint_string (out, " -- ") // val () = fprint_int (out, loc.end_ntot+1) val () = fprint_string (out, "(line=") val () = fprint_int (out, loc.end_nrow+1) val () = fprint_string (out, ", offs=") val () = fprint_int (out, loc.end_ncol+1) val () = fprint_string (out, ")") // } (* end of [fprint_locrange] *) (* ****** ****** *) implement location_make_pos_pos (p1, p2) = let // val fil = the_filename_get () // in location_make_fil_pos_pos (fil, p1, p2) end // end of [location_make_pos_pos] (* ****** ****** *) implement location_make_fil_pos_pos (fil, p1, p2) = '{ fil= fil , beg_ntot= p1.pos_ntot , beg_nrow= p1.pos_nrow , beg_ncol= p1.pos_ncol , end_ntot= p2.pos_ntot , end_nrow= p2.pos_nrow , end_ncol= p2.pos_ncol } (* end of [location_make_fil_pos_pos] *) (* ****** ****** *) local fun is_none ( loc: loc_t ) : bool = (loc.beg_ntot < 0) fun auxmain ( loc1: loc_t, loc2: loc_t ) : loc_t = let // var beg_ntot: int var beg_nrow: int and beg_ncol: int var end_ntot: int var end_nrow: int and end_ncol: int // val () = if loc1.beg_ntot <= loc2.beg_ntot then begin beg_ntot := loc1.beg_ntot; beg_nrow := loc1.beg_nrow; beg_ncol := loc1.beg_ncol end // end of [then] else begin beg_ntot := loc2.beg_ntot; beg_nrow := loc2.beg_nrow; beg_ncol := loc2.beg_ncol end // end of [else] // end of [if] // val () = if loc1.end_ntot >= loc2.end_ntot then begin end_ntot := loc1.end_ntot; end_nrow := loc1.end_nrow; end_ncol := loc1.end_ncol end // end of [then] else begin end_ntot := loc2.end_ntot; end_nrow := loc2.end_nrow; end_ncol := loc2.end_ncol end // end of [else] // end of [if] // in '{ fil= loc1.fil , beg_ntot= beg_ntot, beg_nrow= beg_nrow, beg_ncol= beg_ncol , end_ntot= end_ntot, end_nrow= end_nrow, end_ncol= end_ncol } end // end of [auxmain] in (* in of [local] *) implement location_combine (loc1, loc2) = ( case+ 0 of | _ when is_none (loc1) => loc2 | _ when is_none (loc2) => loc1 | _ => auxmain (loc1, loc2) ) (* end of [location_combine] *) end // end of [local] (* ****** ****** *) (* end of [catsparse_posloc.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_mylib.dats0000644000175000017500000000231613431250607025471 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) (* #define ATS_DYNLOADFLAG 0 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #define HX_CSTREAM_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-cstream" (* ****** ****** *) local #include "{$HX_CSTREAM}/DATS/cstream.dats" in (* nothing *) end // end of [local] (* ****** ****** *) local #include "{$HX_CSTREAM}/DATS/cstream_fun.dats" in (* nothing *) end // end of [local] (* ****** ****** *) local #include "{$HX_CSTREAM}/DATS/cstream_cloref.dats" in (* nothing *) end // end of [local] (* ****** ****** *) local #include "{$HX_CSTREAM}/DATS/cstream_string.dats" in (* nothing *) end // end of [local] local #include "{$HX_CSTREAM}/DATS/cstream_strptr.dats" in (* nothing *) end // end of [local] (* ****** ****** *) local #include "{$HX_CSTREAM}/DATS/cstream_fileref.dats" in (* nothing *) end // end of [local] local #include "{$HX_CSTREAM}/DATS/cstream_fileptr.dats" in (* nothing *) end // end of [local] (* ****** ****** *) %{^ #define \ atstyarr_field_undef(fname) fname[] %} // end of [%{] (* ****** ****** *) (* end of [catsparse_mylib.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/DATS/catsparse_global.dats0000644000175000017500000002213413431250607025615 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #staload "./../SATS/catsparse.sats" (* ****** ****** *) staload FIL = { // #staload "./../SATS/catsparse.sats" // typedef T = fil_t // #define HX_GLOBALS_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-globals" #include "{$HX_GLOBALS}/HATS/gstacklst.hats" // implement the_filename_pop () = pop_exn () implement the_filename_push (fil) = push (fil) // implement the_filename_get () = get_top_exn () // } (* end of [staload] *) (* ****** ****** *) val () = the_filename_push (filename_dummy) (* ****** ****** *) staload KWORD = { // #staload "./../SATS/catsparse.sats" // typedef key = string typedef itm = keyword // #define CAPACITY 1024 // #staload "libats/SATS/hashtbl_linprb.sats" // implement hashtbl$recapacitize<> ((*void*)) = 0 // #define HX_GLOBALS_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-globals" #include "{$HX_GLOBALS}/HATS/ghashtbl_linprb.hats" // } (* end of [staload] *) (* ****** ****** *) val () = { // macdef kwordins (name, kw) = $KWORD.insert_opt (,(name), ,(kw)) // // HX: line pragma // val-~None_vt() = kwordins ("#if", SRPif) val-~None_vt() = kwordins ("#ifdef", SRPifdef) val-~None_vt() = kwordins ("#ifndef", SRPifndef) val-~None_vt() = kwordins ("#endif", SRPendif) // val-~None_vt() = kwordins ("#line", SRPline) val-~None_vt() = kwordins ("#include", SRPinclude) // val-~None_vt() = kwordins ("typedef", TYPEDEF) // val-~None_vt() = kwordins ("ATSstruct", ATSstruct) // val-~None_vt() = kwordins ("ATSinline", ATSinline) val-~None_vt() = kwordins ("ATSextern", ATSextern) val-~None_vt() = kwordins ("ATSstatic", ATSstatic) // val-~None_vt() = kwordins ("ATSassume", ATSassume) // val-~None_vt() = kwordins ("ATSdyncst_mac", ATSdyncst_mac) // val-~None_vt() = kwordins ("ATSdyncst_extfun", ATSdyncst_extfun) // val-~None_vt() = kwordins ("ATSdyncst_valdec", ATSdyncst_valdec) val-~None_vt() = kwordins ("ATSdyncst_valimp", ATSdyncst_valimp) // val-~None_vt() = kwordins ("ATStmpdec", ATStmpdec) val-~None_vt() = kwordins ("ATStmpdec_void", ATStmpdec_void) // val-~None_vt() = kwordins ("ATSstatmpdec", ATSstatmpdec) val-~None_vt() = kwordins ("ATSstatmpdec_void", ATSstatmpdec_void) // val-~None_vt() = kwordins ("ATSif", ATSif) val-~None_vt() = kwordins ("ATSthen", ATSthen) val-~None_vt() = kwordins ("ATSelse", ATSelse) // val-~None_vt() = kwordins ("ATSifthen", ATSifthen) val-~None_vt() = kwordins ("ATSifnthen", ATSifnthen) // val-~None_vt() = kwordins ("ATSbranch_beg", ATSbranch_beg) val-~None_vt() = kwordins ("ATSbranch_end", ATSbranch_end) // val-~None_vt() = kwordins ("ATScaseof_beg", ATScaseof_beg) val-~None_vt() = kwordins ("ATScaseof_end", ATScaseof_end) // val-~None_vt() = kwordins ("ATSextcode_beg", ATSextcode_beg) val-~None_vt() = kwordins ("ATSextcode_end", ATSextcode_end) // val-~None_vt() = kwordins ("ATSfunbody_beg", ATSfunbody_beg) val-~None_vt() = kwordins ("ATSfunbody_end", ATSfunbody_end) // val-~None_vt() = kwordins ("ATSreturn", ATSreturn) val-~None_vt() = kwordins ("ATSreturn_void", ATSreturn_void) // val-~None_vt() = kwordins ("ATSPMVint", ATSPMVint) val-~None_vt() = kwordins ("ATSPMVintrep", ATSPMVintrep) // val-~None_vt() = kwordins ("ATSPMVbool_true", ATSPMVbool_true) val-~None_vt() = kwordins ("ATSPMVbool_false", ATSPMVbool_false) // val-~None_vt() = kwordins ("ATSPMVfloat", ATSPMVfloat) // val-~None_vt() = kwordins ("ATSPMVstring", ATSPMVstring) // val-~None_vt() = kwordins ("ATSPMVi0nt", ATSPMVi0nt) val-~None_vt() = kwordins ("ATSPMVf0loat", ATSPMVf0loat) // val-~None_vt() = kwordins ("ATSPMVempty", ATSPMVempty) val-~None_vt() = kwordins ("ATSPMVextval", ATSPMVextval) // val-~None_vt() = kwordins ("ATSPMVrefarg0", ATSPMVrefarg0) val-~None_vt() = kwordins ("ATSPMVrefarg1", ATSPMVrefarg1) // val-~None_vt() = kwordins ("ATSPMVfunlab", ATSPMVfunlab) val-~None_vt() = kwordins ("ATSPMVcfunlab", ATSPMVcfunlab) // val-~None_vt() = kwordins ("ATSPMVcastfn", ATSPMVcastfn) // val-~None_vt() = kwordins ("ATSCSTSPmyloc", ATSCSTSPmyloc) // val-~None_vt() = kwordins ("ATSCKiseqz", ATSCKiseqz) val-~None_vt() = kwordins ("ATSCKisneqz", ATSCKisneqz) val-~None_vt() = kwordins ("ATSCKptriscons", ATSCKptriscons) val-~None_vt() = kwordins ("ATSCKptrisnull", ATSCKptrisnull) // val-~None_vt() = kwordins ("ATSCKpat_int", ATSCKpat_int) val-~None_vt() = kwordins ("ATSCKpat_bool", ATSCKpat_bool) val-~None_vt() = kwordins ("ATSCKpat_string", ATSCKpat_string) // val-~None_vt() = kwordins ("ATSCKpat_con0", ATSCKpat_con0) val-~None_vt() = kwordins ("ATSCKpat_con1", ATSCKpat_con1) // val-~None_vt() = kwordins ("ATSSELcon", ATSSELcon) val-~None_vt() = kwordins ("ATSSELrecsin", ATSSELrecsin) val-~None_vt() = kwordins ("ATSSELboxrec", ATSSELboxrec) val-~None_vt() = kwordins ("ATSSELfltrec", ATSSELfltrec) // val-~None_vt() = kwordins ("ATSextfcall", ATSextfcall) // fun-call val-~None_vt() = kwordins ("ATSextmcall", ATSextmcall) // method-call // val-~None_vt() = kwordins ("ATSfunclo_fun", ATSfunclo_fun) val-~None_vt() = kwordins ("ATSfunclo_clo", ATSfunclo_clo) // val-~None_vt() = kwordins ("ATSINSlab", ATSINSlab) val-~None_vt() = kwordins ("ATSINSgoto", ATSINSgoto) // val-~None_vt() = kwordins ("ATSINSflab", ATSINSflab) val-~None_vt() = kwordins ("ATSINSfgoto", ATSINSfgoto) // val-~None_vt() = kwordins ("ATSINSfreeclo", ATSINSfreeclo) val-~None_vt() = kwordins ("ATSINSfreecon", ATSINSfreecon) // val-~None_vt() = kwordins ("ATSINSmove", ATSINSmove) val-~None_vt() = kwordins ("ATSINSmove_void", ATSINSmove_void) // val-~None_vt() = kwordins ("ATSINSmove_nil", ATSINSmove_nil) val-~None_vt() = kwordins ("ATSINSmove_con0", ATSINSmove_con0) // val-~None_vt() = kwordins ("ATSINSmove_con1_beg", ATSINSmove_con1_beg) val-~None_vt() = kwordins ("ATSINSmove_con1_end", ATSINSmove_con1_end) val-~None_vt() = kwordins ("ATSINSmove_con1_new", ATSINSmove_con1_new) val-~None_vt() = kwordins ("ATSINSstore_con1_tag", ATSINSstore_con1_tag) val-~None_vt() = kwordins ("ATSINSstore_con1_ofs", ATSINSstore_con1_ofs) // val-~None_vt() = kwordins ("ATSINSmove_boxrec_beg", ATSINSmove_boxrec_beg) val-~None_vt() = kwordins ("ATSINSmove_boxrec_end", ATSINSmove_boxrec_end) val-~None_vt() = kwordins ("ATSINSmove_boxrec_new", ATSINSmove_boxrec_new) val-~None_vt() = kwordins ("ATSINSstore_boxrec_ofs", ATSINSstore_boxrec_ofs) // val-~None_vt() = kwordins ("ATSINSmove_fltrec_beg", ATSINSmove_fltrec_beg) val-~None_vt() = kwordins ("ATSINSmove_fltrec_end", ATSINSmove_fltrec_end) val-~None_vt() = kwordins ("ATSINSstore_fltrec_ofs", ATSINSstore_fltrec_ofs) // val-~None_vt() = kwordins ("ATSINSmove_delay", ATSINSmove_delay) val-~None_vt() = kwordins ("ATSINSmove_lazyeval", ATSINSmove_lazyeval) // val-~None_vt() = kwordins ("ATSINSmove_ldelay", ATSINSmove_ldelay) val-~None_vt() = kwordins ("ATSINSmove_llazyeval", ATSINSmove_llazyeval) // val-~None_vt() = kwordins ("ATStailcal_beg", ATStailcal_beg) val-~None_vt() = kwordins ("ATStailcal_end", ATStailcal_end) val-~None_vt() = kwordins ("ATSINSmove_tlcal", ATSINSmove_tlcal) val-~None_vt() = kwordins ("ATSINSargmove_tlcal", ATSINSargmove_tlcal) // val-~None_vt() = kwordins ("ATSINSextvar_assign", ATSINSextvar_assign) val-~None_vt() = kwordins ("ATSINSdyncst_valbind", ATSINSdyncst_valbind) // val-~None_vt() = kwordins ("ATSINScaseof_fail", ATSINScaseof_fail) val-~None_vt() = kwordins ("ATSINSdeadcode_fail", ATSINSdeadcode_fail) // val-~None_vt() = kwordins ("ATSdynload", ATSdynload) val-~None_vt() = kwordins ("ATSdynloadset", ATSdynloadset) val-~None_vt() = kwordins ("ATSdynloadfcall", ATSdynloadfcall) val-~None_vt() = kwordins ("ATSdynloadflag_sta", ATSdynloadflag_sta) val-~None_vt() = kwordins ("ATSdynloadflag_ext", ATSdynloadflag_ext) val-~None_vt() = kwordins ("ATSdynloadflag_init", ATSdynloadflag_init) val-~None_vt() = kwordins ("ATSdynloadflag_minit", ATSdynloadflag_minit) // val-~None_vt() = kwordins ("ATSclosurerize_beg", ATSclosurerize_beg) val-~None_vt() = kwordins ("ATSclosurerize_end", ATSclosurerize_end) // val-~None_vt() = kwordins ("ATSdynexn_dec", ATSdynexn_dec) val-~None_vt() = kwordins ("ATSdynexn_extdec", ATSdynexn_extdec) val-~None_vt() = kwordins ("ATSdynexn_initize", ATSdynexn_initize) // } (* end of [val] *) (* ****** ****** *) implement keyword_search (name) = let // val cp = $KWORD.search_ref (name) // in // if isneqz(cp) then $UNSAFE.cptr_get (cp) else KWORDnone() // end // end of [keyword_search] (* ****** ****** *) staload LEXERR = { // #staload "./../SATS/catsparse.sats" // typedef T = lexerr // #define HX_GLOBALS_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-globals" #include "{$HX_GLOBALS}/HATS/gstacklst.hats" // implement the_lexerrlst_insert (x) = push (x) // implement the_lexerrlst_pop_all () = pop_all () // } (* end of [staload] *) (* ****** ****** *) staload PARERR = { // #staload "./../SATS/catsparse.sats" #staload "./../SATS/catsparse_parsing.sats" // typedef T = parerr // #define HX_GLOBALS_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-globals" #include "{$HX_GLOBALS}/HATS/gstacklst.hats" // implement the_parerrlst_insert(x) = push(x) // implement the_parerrlst_pop_all() = pop_all() // } (* end of [staload] *) (* ****** ****** *) (* end of [catsparse_global.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/Makefile0000644000175000017500000000063413431250607022341 0ustar brandonbrandon###### # # A simple Makefile # ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### all:: DATS_C ###### # DATS_C:: CATS/catsparse_all_dats.c # ###### # CATS/catsparse_all_dats.c: \ catsparse_all.dats; $(PATSOPT) -o $@ --dynamic $< # ###### # testall:: all testall:: cleanall # ###### RMF=rm -f ###### cleanall:: ; $(RMF) ./CATS/catsparse_all_dats.c ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/.keeper0000644000175000017500000000000013431250607022140 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/CATS/0000755000175000017500000000000013431250607021430 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/CATS/.keeper0000644000175000017500000000000013431250607022672 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/SATS/0000755000175000017500000000000013431250607021450 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/SATS/catsparse_parsing.sats0000644000175000017500000001613413431250607026061 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #include "share/atspre_define.hats" // (* ****** ****** *) // #define ATS_PACKNAME"CATS-PARSEMIT" // (* ****** ****** *) // #staload "./catsparse.sats" // opened // (* ****** ****** *) datatype parerr_node = // | PARERR_EOF // | PARERR_COMMA | PARERR_COLON | PARERR_SEMICOLON // | PARERR_LPAREN | PARERR_RPAREN // | PARERR_LBRACE | PARERR_RBRACE // | PARERR_INT of () | PARERR_ZERO of () | PARERR_INT10 of () // | PARERR_FLOAT of () // | PARERR_STRING of () // | PARERR_SRPendif // | PARERR_ATSbranch_end of () | PARERR_ATScaseof_end of () | PARERR_ATSextcode_end of () | PARERR_ATSfunbody_end of () | PARERR_ATStailcal_end of () // | PARERR_ATSINSmove_con1_end of () | PARERR_ATSINSmove_boxrec_end of () | PARERR_ATSINSmove_fltrec_end of () // | PARERR_i0dex of () // | PARERR_s0exp of () | PARERR_d0exp of () | PARERR_d0ecl of () // | PARERR_instr of () // | PARERR_ATSclosurerize_end of () // typedef parerr = '{ parerr_loc= loc_t, parerr_node= parerr_node } (* end of [parerr] *) // typedef parerrlst = List0 (parerr) (* ****** ****** *) fun fprint_parerr : fprint_type (parerr) fun fprint_parerrlst : fprint_type (parerrlst) (* ****** ****** *) // fun parerr_make (loc: loc_t, node: parerr_node): parerr // (* ****** ****** *) fun the_parerrlst_clear (): void fun the_parerrlst_insert (err: parerr): void fun the_parerrlst_pop_all ((*void*)): List0_vt(parerr) fun the_parerrlst_print_free ((*void*)): int(*nerr*) (* ****** ****** *) // fun the_parerrlst_add (loc: loc_t, node: parerr_node): void // fun the_parerrlst_add_ifnbt ( bt: int, loc: loc_t, node: parerr_node ) : void // end-of-function // (* ****** ****** *) fun tokbuf_set_ntok_null {a:type} (buf: &tokbuf >> _, n0: size_t): (a) // end of [tokbuf_set_ntok_null] (* ****** ****** *) typedef parser (a:type) = (&tokbuf(*buf*) >> _, int(*bt*), &int(*err*) >> _) -> a // end of [parser] (* ****** ****** *) fun ptoken_fun ( buf: &tokbuf >> _ , bt: int , err: &int , f: (tnode) -> bool , enode: parerr_node ) : token // end of [ptoken_fun] fun ptoken_test_fun ( buf: &tokbuf >> _, f: (tnode) -> bool ) : bool // end of [ptoken_test_fun] (* ****** ****** *) fun p_EOF : parser (token) fun is_EOF (x: tnode): bool (* ****** ****** *) // fun p_COMMA : parser (token) fun p_COMMA_test (buf: &tokbuf >> _): bool fun is_COMMA (x: tnode): bool // fun p_COLON : parser (token) fun p_COLON_test (buf: &tokbuf >> _): bool fun is_COLON (x: tnode): bool // fun p_SEMICOLON : parser (token) fun p_SEMICOLON_test (buf: &tokbuf >> _): bool fun is_SEMICOLON (x: tnode): bool // (* ****** ****** *) // fun p_LPAREN : parser (token) fun p_LPAREN_test (buf: &tokbuf >> _): bool fun is_LPAREN (x: tnode): bool // fun p_RPAREN : parser (token) fun p_RPAREN_test (buf: &tokbuf >> _): bool fun is_RPAREN (x: tnode): bool // (* ****** ****** *) // fun p_LBRACE : parser (token) fun is_LBRACE (x: tnode): bool // fun p_RBRACE : parser (token) fun is_RBRACE (x: tnode): bool // (* ****** ****** *) // fun p_INT : parser (token) fun is_INT (x: tnode): bool // fun p_ZERO : parser (token) fun p_ZERO_test (buf: &tokbuf >> _): bool fun is_ZERO (x: tnode): bool // fun p_INT10 : parser (token) fun is_INT10 (x: tnode): bool // (* ****** ****** *) // fun p_FLOAT : parser (token) fun is_FLOAT (x: tnode): bool // fun p_STRING : parser (token) fun is_STRING (x: tnode): bool // (* ****** ****** *) fun p_SRPendif : parser (token) fun is_SRPendif (x: tnode): bool (* ****** ****** *) fun p_ATSbranch_end : parser (token) fun is_ATSbranch_end (x: tnode): bool (* ****** ****** *) fun p_ATScaseof_end : parser (token) fun is_ATScaseof_end (x: tnode): bool (* ****** ****** *) fun p_ATSextcode_end : parser (token) fun is_ATSextcode_end (x: tnode): bool (* ****** ****** *) fun p_ATSfunbody_end : parser (token) fun is_ATSfunbody_end (x: tnode): bool (* ****** ****** *) fun p_ATStailcal_end : parser (token) fun is_ATStailcal_end (x: tnode): bool (* ****** ****** *) // fun p_ATSINSmove_con1_end : parser (token) fun is_ATSINSmove_con1_end (x: tnode): bool // fun p_ATSINSmove_fltrec_end : parser (token) fun is_ATSINSmove_fltrec_end (x: tnode): bool // fun p_ATSINSmove_boxrec_end : parser (token) fun is_ATSINSmove_boxrec_end (x: tnode): bool // (* ****** ****** *) fun ptest_fun{a:type} ( buf: &tokbuf >> _ , f: parser (a), ent: &synent? >> synent ) : bool // end of [ptest_fun] (* ****** ****** *) fun pstar_fun{a:type} ( buf: &tokbuf >> _, bt: int, f: parser (a) ) : List0_vt(a) // end of [pstar_fun] (* ****** ****** *) fun pstar_sep_fun {a:type} ( buf: &tokbuf >> _, bt: int , sep: (&tokbuf >> _) -> bool, f: parser(a) ) : List0_vt (a) // end of [pstar_sep_fun] (* ****** ****** *) fun pstar_COMMA_fun {a:type} ( buf: &tokbuf >> _, bt: int, f: parser(a) ) : List0_vt(a) // end of [pstar_COMMA_fun] (* ****** ****** *) fun pstar_fun0_sep {a:type} ( buf: &tokbuf >> _, bt: int , f: parser (a), sep: (&tokbuf >> _) -> bool ) : List0_vt (a) // end of [pstar_fun0_sep] (* ****** ****** *) fun pstar_fun0_COMMA {a:type} (buf: &tokbuf, bt: int, f: parser (a)) : List0_vt (a) // end of [pstar_fun0_COMMA] (* ****** ****** *) fun pif_fun {a:type} ( buf: &tokbuf >> _ , bt: int, err: &int, f: parser (a), err0: int ) : (a) // end of [pif_fun] (* ****** ****** *) // fun ptest_SRPif0 (buf: &tokbuf >> _): bool fun pskip_SRPif0{n:pos} (buf: &tokbuf >> _, level: int(n)): void // (* ****** ****** *) // fun parse_signed : parser (signed) // (* ****** ****** *) fun parse_i0dex : parser (i0de) (* ****** ****** *) fun parse_label : parser (label) (* ****** ****** *) // fun parse_s0exp : parser (s0exp) fun parse_s0expseq : parser (s0explst) // fun parse_s0exparg : parser (s0exp) fun parse_s0expargopt : parser (s0expopt) // (* ****** ****** *) // fun parse_d0exp : parser (d0exp) // fun parse_d0exparg : parser (d0exp) fun parse_d0expargopt : parser (d0expopt) // (* ****** ****** *) fun parse_d0ecl : parser (d0ecl) fun parse_d0eclseq : parser (d0eclist) (* ****** ****** *) fun parse_tyfld : parser (tyfld) fun parse_tyrec : parser (tyrec) (* ****** ****** *) // fun parse_fkind : parser (fkind) // fun parse_f0arg : parser (f0arg) fun parse_f0marg : parser (f0marg) // fun parse_f0head : parser (f0head) // (* ****** ****** *) fun parse_tmpdec : parser (tmpdec) fun parse_tmpdecs : parser (tmpdeclst) (* ****** ****** *) fun parse_instr : parser (instr) fun parse_instrseq : parser (instrlst) (* ****** ****** *) fun parse_extval : parser (tokenlst) fun parse_extcode : parser (tokenlst) (* ****** ****** *) fun parse_f0body : parser (f0body) (* ****** ****** *) fun parse_f0decl : parser (f0decl) (* ****** ****** *) fun parse_closurerize : parser (token) (* ****** ****** *) fun parse_toplevel (buf: &tokbuf >> _): d0eclist (* ****** ****** *) fun parse_from_string{a:type} (inp: string, f: parser a): Option_vt (a) // end of [parse_from_string] (* ****** ****** *) fun parse_from_tokbuf (buf: &tokbuf >> _): d0eclist (* ****** ****** *) fun parse_from_fileref (inp: FILEref): d0eclist (* ****** ****** *) (* end of [catsparse_parsing.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/SATS/catsparse.sats0000644000175000017500000005341413431250607024340 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // (* The MIT License (MIT) Copyright (c) 2014 Hongwei Xi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *) // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #define ATS_PACKNAME"CATS-PARSEMIT" // (* ****** ****** *) // staload DA = "libats/SATS/dynarray.sats" staload SBF = "libats/SATS/stringbuf.sats" // (* ****** ****** *) // #define HX_CSTREAM_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-cstream" staload CS0 = "{$HX_CSTREAM}/SATS/cstream.sats" // (* ****** ****** *) // stadef dynarray = $DA.dynarray stadef stringbuf = $SBF.stringbuf // stadef cstream = $CS0.cstream // (* ****** ****** *) // exception FatalErrorExn // (* ****** ****** *) // fun abort ((*void*)): void // (* ****** ****** *) // abstype filename_type = ptr typedef fil_t = filename_type // (* ****** ****** *) val filename_dummy : fil_t val filename_stdin : fil_t (* ****** ****** *) // fun filename_make (path: string): fil_t // (* ****** ****** *) // fun print_filename : (fil_t) -> void fun prerr_filename : (fil_t) -> void fun fprint_filename : fprint_type (fil_t) // overload print with print_filename overload prerr with prerr_filename overload fprint with fprint_filename // (* ****** ****** *) // fun the_filename_pop ((*void*)): fil_t fun the_filename_push (fil: fil_t): void // fun the_filename_get ((*void*)): fil_t // (* ****** ****** *) (* // abstype position_type = ptr typedef pos_t = position_type // (* ****** ****** *) // fun print_position : (pos_t) -> void fun prerr_position : (pos_t) -> void fun fprint_position : fprint_type (pos_t) // overload print with print_position overload prerr with prerr_position overload fprint with fprint_position // *) (* ****** ****** *) typedef position = @{ , pos_ntot= int , pos_nrow= int , pos_ncol= int } (* end of [position] *) (* ****** ****** *) // fun position_byrow (pos: &position >> _): void // (* ****** ****** *) // fun position_incby1 (pos: &position >> _): void // fun position_incby (pos: &position >> _, n: intGte(0)): void fun position_decby (pos: &position >> _, n: intGte(0)): void // fun position_incby_char (pos: &position >> _, c: char): void // (* ****** ****** *) // abstype location_type = ptr typedef loc_t = location_type // (* ****** ****** *) val location_dummy : loc_t (* ****** ****** *) // fun print_location : (loc_t) -> void fun prerr_location : (loc_t) -> void fun fprint_location : fprint_type (loc_t) // overload print with print_location overload prerr with prerr_location overload fprint with fprint_location // fun fprint_locrange : fprint_type (loc_t) // (* ****** ****** *) // fun location_make_pos_pos (pos1: &position, pos2: &position): loc_t fun location_make_fil_pos_pos ( fil: fil_t, pos1: &position, pos2: &position ) : loc_t // end-of-function // (* ****** ****** *) // fun location_combine (loc1: loc_t, loc2: loc_t): loc_t // (* ****** ****** *) datatype keyword = // | SRPif of () // #if | SRPifdef of () // #ifdef | SRPifndef of () // #ifndef | SRPendif of () // #endif // | SRPline of () // #line | SRPinclude of () // #include // | TYPEDEF of () | ATSstruct of () // | ATSinline of () // inline | ATSextern of () // extern | ATSstatic of () // static // | ATSassume of () // | ATSdyncst_mac of () // | ATSdyncst_extfun of () // | ATSdyncst_valdec of () | ATSdyncst_valimp of () // | ATStmpdec of () | ATStmpdec_void of () // | ATSstatmpdec of () | ATSstatmpdec_void of () // | ATSif of () | ATSthen of () | ATSelse of () // | ATSifthen of () | ATSifnthen of () // | ATSbranch_beg of () | ATSbranch_end of () // | ATScaseof_beg of () | ATScaseof_end of () // | ATSextcode_beg of () | ATSextcode_end of () // | ATSfunbody_beg of () | ATSfunbody_end of () // | ATSreturn of () | ATSreturn_void of () // | ATSPMVint of () | ATSPMVintrep of () | ATSPMVbool_true of () | ATSPMVbool_false of () | ATSPMVfloat of () | ATSPMVstring of () // | ATSPMVi0nt of () | ATSPMVf0loat of () // | ATSPMVempty of () | ATSPMVextval of () // | ATSPMVrefarg0 of () | ATSPMVrefarg1 of () // | ATSPMVfunlab of () | ATSPMVcfunlab of () // | ATSPMVcastfn of () // | ATSCSTSPmyloc of () // | ATSCKiseqz of () | ATSCKisneqz of () | ATSCKptriscons of () | ATSCKptrisnull of () // | ATSCKpat_int of () | ATSCKpat_bool of () | ATSCKpat_string of () // | ATSCKpat_con0 of () | ATSCKpat_con1 of () // | ATSSELcon of () | ATSSELrecsin of () | ATSSELboxrec of () | ATSSELfltrec of () // | ATSextfcall of () | ATSextmcall of () // | ATSfunclo_fun of () | ATSfunclo_clo of () // | ATSINSlab of () | ATSINSgoto of () // | ATSINSflab of () | ATSINSfgoto of () // | ATSINSfreeclo of () | ATSINSfreecon of () // | ATSINSmove of () | ATSINSmove_void of () // | ATSINSmove_nil of () | ATSINSmove_con0 of () | ATSINSmove_con1_beg of () | ATSINSmove_con1_end of () | ATSINSmove_con1_new of () | ATSINSstore_con1_tag of () | ATSINSstore_con1_ofs of () // | ATSINSmove_boxrec_beg of () | ATSINSmove_boxrec_end of () | ATSINSmove_boxrec_new of () | ATSINSstore_boxrec_ofs of () // | ATSINSmove_fltrec_beg of () | ATSINSmove_fltrec_end of () | ATSINSstore_fltrec_ofs of () // | ATSINSmove_delay of () | ATSINSmove_lazyeval of () // | ATSINSmove_ldelay of () | ATSINSmove_llazyeval of () // | ATStailcal_beg of () | ATStailcal_end of () | ATSINSmove_tlcal of () | ATSINSargmove_tlcal of () // | ATSINSextvar_assign of () | ATSINSdyncst_valbind of () // | ATSINScaseof_fail of () | ATSINSdeadcode_fail of () // | ATSdynload of () | ATSdynloadset of () | ATSdynloadfcall of () | ATSdynloadflag_sta of () | ATSdynloadflag_ext of () | ATSdynloadflag_init of () | ATSdynloadflag_minit of () // | ATSclosurerize_beg of () | ATSclosurerize_end of () // | ATSdynexn_dec of () | ATSdynexn_extdec of () | ATSdynexn_initize of () // | KWORDnone of () // for indicating a non-keyword // // end of [keyword] (* ****** ****** *) // fun print_keyword : (keyword) -> void fun prerr_keyword : (keyword) -> void fun fprint_keyword: fprint_type (keyword) // overload print with print_keyword overload prerr with prerr_keyword overload fprint with fprint_keyword // (* ****** ****** *) fun keyword_search (name: string): keyword (* ****** ****** *) datatype token_node = // | T_KWORD of keyword // | T_IDENT_alp of string | T_IDENT_sym of string | T_IDENT_srp of string // | T_CHAR of (string) // | T_INT of (int(*base*), string) | T_FLOAT of (int(*base*), string) // | T_STRING of (string) // | T_LPAREN of () // ( | T_RPAREN of () // ) | T_LBRACKET of () // [ | T_RBRACKET of () // ] | T_LBRACE of () // { | T_RBRACE of () // } // | T_LT of () | T_GT of () // | T_MINUS of () // | T_COLON of () // : // | T_COMMA of () // , | T_SEMICOLON of () // ; // | T_SLASH of () // / // | T_ENDL of () | T_SPACES of (string) // | T_COMMENT_line of (string) // line comment | T_COMMENT_block of (string) // block comment // | T_EOF of () // end-of-file // // end of [token_node] (* ****** ****** *) typedef tnode = token_node (* ****** ****** *) typedef token = '{ token_loc= loc_t, token_node= tnode } (* end of [token] *) (* ****** ****** *) typedef tokenlst = List0 (token) typedef tokenopt = Option (token) (* ****** ****** *) fun token_get_loc (token): loc_t (* ****** ****** *) fun fprint_tnode : fprint_type (tnode) (* ****** ****** *) // fun print_token : (token) -> void fun prerr_token : (token) -> void fun fprint_token : fprint_type (token) // overload print with print_token overload prerr with prerr_token overload fprint with fprint_token // (* ****** ****** *) // fun token_make (loc: loc_t, node: tnode): token // (* ****** ****** *) typedef i0nt = token typedef f0loat = token typedef s0tring = token (* ****** ****** *) // datatype lexerr_node = | LEXERR_FEXPONENT_nil of () | LEXERR_UNSUPPORTED_char of (char) // typedef lexerr = '{ lexerr_loc= loc_t, lexerr_node= lexerr_node } (* end of [lexerr] *) // typedef lexerrlst = List0 (lexerr) // (* ****** ****** *) // fun print_lexerr (lexerr): void fun prerr_lexerr (lexerr): void // fun fprint_lexerr : fprint_type (lexerr) fun fprint_lexerrlst : fprint_type (lexerrlst) // overload print with print_lexerr overload prerr with prerr_lexerr overload fprint with fprint_lexerr // (* ****** ****** *) // fun lexerr_make (loc: loc_t, node: lexerr_node): lexerr // (* ****** ****** *) // fun the_lexerrlst_clear (): void // fun the_lexerrlst_insert (err: lexerr): void // fun the_lexerrlst_pop_all ((*void*)): List0_vt(lexerr) // fun the_lexerrlst_print_free ((*void*)): int(*nerr*) // (* ****** ****** *) // vtypedef _lexbuf_vt0ype = @{ // lexbuf_ntot= int , lexbuf_nrow= int , lexbuf_ncol= int , // lexbuf_nspace= int // , // lexbuf_cstream= cstream // , lexbuf_nback= int , lexbuf_stringbuf= stringbuf // } // end of [_lexbuf_vt0ype] (* ****** ****** *) // absvt@ype lexbuf_vt0ype = _lexbuf_vt0ype // vtypedef lexbuf = lexbuf_vt0ype // (* ****** ****** *) // fun lexbuf_initize_string (buf: &lexbuf? >> _, inp: string): void fun lexbuf_initize_fileref (buf: &lexbuf? >> _, inp: FILEref): void // (* ****** ****** *) fun lexbuf_uninitize (buf: &lexbuf >> _?): void (* ****** ****** *) // fun lexbuf_set_position (buf: &lexbuf >> _, pos: &position): void fun lexbuf_get_position (buf: &lexbuf, pos: &position? >> _): void // (* ****** ****** *) fun lexbuf_set_nback (buf: &lexbuf, nb: int): void fun lexbuf_incby_nback (buf: &lexbuf, nb: int): void (* ****** ****** *) fun lexbuf_get_nspace (buf: &lexbuf): int fun lexbuf_set_nspace (buf: &lexbuf, n: int): void (* ****** ****** *) fun lexbuf_remove (buf: &lexbuf >> _, nchr: intGte(0)): void fun lexbuf_remove_all (buf: &lexbuf >> _): void (* ****** ****** *) // fun lexbuf_takeout (buf: &lexbuf >> _, nchr: intGte(0)): Strptr1 // (* ****** ****** *) fun lexbuf_get_char (buf: &lexbuf >> _): int (* ****** ****** *) fun lexbuf_get_token_any (buf: &lexbuf >> _): token fun lexbuf_get_token_skip (buf: &lexbuf >> _): token (* ****** ****** *) // fun lexbufpos_get_location (buf: &lexbuf, pos: &position) : loc_t // fun lexbuf_getbyrow_location (buf: &lexbuf): loc_t fun lexbuf_getincby_location (buf: &lexbuf, nchr: intGte(0)): loc_t // (* ****** ****** *) vtypedef _tokbuf_vt0ype = @{ // tokbuf_tkbf= dynarray(token) , tokbuf_ntok= size_t, tokbuf_lxbf= lexbuf // } (* end of [_tokbuf_vt0ype] *) (* ****** ****** *) // absvt@ype tokbuf_vt0ype = _tokbuf_vt0ype // vtypedef tokbuf = tokbuf_vt0ype // (* ****** ****** *) // fun tokbuf_initize_string (buf: &tokbuf? >> _, inp: string): void fun tokbuf_initize_fileref (buf: &tokbuf? >> _, inp: FILEref): void // (* ****** ****** *) fun tokbuf_reset (buf: &tokbuf >> _): void (* ****** ****** *) fun tokbuf_uninitize (buf: &tokbuf >> _?): void (* ****** ****** *) fun tokbuf_get_ntok (buf: &tokbuf >> _): size_t fun tokbuf_set_ntok (buf: &tokbuf >> _, ntok: size_t): void (* ****** ****** *) fun tokbuf_incby1 (buf: &tokbuf >> _): void fun tokbuf_incby_count (buf: &tokbuf >> _, n: size_t): void (* ****** ****** *) // fun tokbuf_get_token (buf: &tokbuf >> _): token fun tokbuf_get_token_any (buf: &tokbuf >> _): token // fun tokbuf_getinc_token (buf: &tokbuf >> _): token // (* ****** ****** *) fun tokbuf_get_location (buf: &tokbuf >> _): loc_t (* ****** ****** *) abstype symbol_type = ptr typedef symbol = symbol_type (* ****** ****** *) fun symbol_make (name: string): symbol (* ****** ****** *) fun symbol_get_name (x: symbol):<> string (* ****** ****** *) // fun print_symbol : (symbol) -> void fun prerr_symbol : (symbol) -> void fun fprint_symbol : fprint_type (symbol) // overload print with print_symbol overload prerr with prerr_symbol overload fprint with fprint_symbol // (* ****** ****** *) // fun eq_symbol_symbol : (symbol, symbol) -<0> bool // overload = with eq_symbol_symbol // (* ****** ****** *) // abstype synent_type = ptr typedef synent = synent_type // (* ****** ****** *) // datatype signed = SIGNED of (loc_t, int) // (* ****** ****** *) typedef i0de = '{ i0dex_loc= loc_t, i0dex_sym= symbol } (* end of [i0de] *) (* ****** ****** *) // fun print_i0de : i0de -> void fun prerr_i0de : i0de -> void fun fprint_i0de : fprint_type (i0de) // overload print with print_i0de overload prerr with prerr_i0de overload fprint with fprint_i0de // (* ****** ****** *) typedef label = i0de typedef labelist = List0 (label) vtypedef labelist_vt = List0_vt (label) (* ****** ****** *) datatype s0exp_node = | S0Eide of symbol | S0Elist of (s0explst) // temp | S0Eappid of (i0de, s0explst) // end of [s0exp_node] where s0exp = '{ s0exp_loc= loc_t, s0exp_node= s0exp_node } (* end of [s0exp] *) and s0explst = List0 (s0exp) and s0expopt = Option (s0exp) (* ****** ****** *) // fun print_s0exp : s0exp -> void fun prerr_s0exp : s0exp -> void fun fprint_s0exp : fprint_type (s0exp) fun fprint_s0explst : fprint_type (s0explst) // overload print with print_s0exp overload prerr with prerr_s0exp overload fprint with fprint_s0exp overload fprint with fprint_s0explst of 10 // (* ****** ****** *) // datatype tyfld_node = TYFLD of (i0de, s0exp) typedef tyfld = '{ tyfld_loc= loc_t , tyfld_node= tyfld_node } (* end of [tyfld] *) // typedef tyfldlst = List0 (tyfld) // typedef tyrec = '{ tyrec_loc= loc_t, tyrec_node= tyfldlst } (* end of [tyrec] *) // (* ****** ****** *) datatype d0exp_node = | D0Eide of (i0de) | D0Elist of (d0explst) // temp | D0Eappid of (i0de, d0explst) | D0Eappexp of (d0exp, d0explst) // | ATSPMVint of i0nt | ATSPMVintrep of i0nt | ATSPMVbool of bool | ATSPMVfloat of f0loat | ATSPMVstring of s0tring // | ATSPMVi0nt of i0nt | ATSPMVf0loat of f0loat // | ATSPMVempty of (int) // void-value | ATSPMVextval of (tokenlst) // external values // | ATSPMVrefarg0 of (d0exp) | ATSPMVrefarg1 of (d0exp) // | ATSPMVfunlab of (label) | ATSPMVcfunlab of (int(*knd*), label, d0explst) // | ATSPMVcastfn of (i0de(*fun*), s0exp, d0exp(*arg*)) // | ATSCSTSPmyloc of s0tring // | ATSCKiseqz of (d0exp) | ATSCKisneqz of (d0exp) | ATSCKptriscons of (d0exp) | ATSCKptrisnull of (d0exp) // | ATSCKpat_int of (d0exp, d0exp) | ATSCKpat_bool of (d0exp, d0exp) | ATSCKpat_string of (d0exp, d0exp) // | ATSCKpat_con0 of (d0exp, int(*tag*)) | ATSCKpat_con1 of (d0exp, int(*tag*)) // | ATSSELcon of (d0exp, s0exp(*tysum*), i0de(*lab*)) | ATSSELrecsin of (d0exp, s0exp(*tyrec*), i0de(*lab*)) | ATSSELboxrec of (d0exp, s0exp(*tyrec*), i0de(*lab*)) | ATSSELfltrec of (d0exp, s0exp(*tyrec*), i0de(*lab*)) // | ATSextfcall of (i0de(*fun*), d0explst(*arg*)) // end of [ATSextfcall] | ATSextmcall of (d0exp(*obj*), d0exp(*method*), d0explst(*arg*)) // end of [ATSextmcall] // | ATSfunclo_fun of (d0exp, s0exp(*arg*), s0exp(*res*)) | ATSfunclo_clo of (d0exp, s0exp(*arg*), s0exp(*res*)) // // end of [d0exp_node] where d0exp = '{ d0exp_loc= loc_t, d0exp_node= d0exp_node } (* end of [d0exp] *) and d0explst = List0 (d0exp) and d0expopt = Option (d0exp) (* ****** ****** *) // fun print_d0exp : d0exp -> void fun prerr_d0exp : d0exp -> void fun fprint_d0exp : fprint_type (d0exp) fun fprint_d0explst : fprint_type (d0explst) // overload print with print_d0exp overload prerr with prerr_d0exp overload fprint with fprint_d0exp overload fprint with fprint_d0explst of 10 // (* ****** ****** *) datatype f0arg_node = | F0ARGnone of (s0exp) | F0ARGsome of (i0de, s0exp) // end of [f0arg_node] typedef f0arg = '{ f0arg_loc= loc_t, f0arg_node= f0arg_node } (* end of [f0arg] *) typedef f0arglst = List0 (f0arg) (* ****** ****** *) typedef f0marg = '{ f0marg_loc= loc_t, f0marg_node= f0arglst } (* end of [f0marg] *) (* ****** ****** *) datatype fkind_node = | FKextern of () | FKstatic of () // end of [fkind_node] typedef fkind = '{ fkind_loc= loc_t, fkind_node= fkind_node } (* end of [fkind] *) (* ****** ****** *) // datatype f0head_node = F0HEAD of (i0de, f0marg, s0exp) // typedef f0head = '{ f0head_loc= loc_t, f0head_node= f0head_node } (* end of [f0head] *) // (* ****** ****** *) typedef f0headopt = Option (f0head) (* ****** ****** *) // fun fprint_f0arg : fprint_type (f0arg) fun fprint_f0marg : fprint_type (f0marg) fun fprint_fkind : fprint_type (fkind) fun fprint_f0head : fprint_type (f0head) // overload fprint with fprint_f0arg overload fprint with fprint_f0marg overload fprint with fprint_fkind overload fprint with fprint_f0head // (* ****** ****** *) // fun f0marg_isneqz (f0ma: f0marg): bool // overload isneqz with f0marg_isneqz // (* ****** ****** *) // datatype tmpdec_node = | TMPDECnone of (i0de) | TMPDECsome of (i0de, s0exp) // typedef tmpdec = '{ tmpdec_loc= loc_t, tmpdec_node= tmpdec_node } (* end of [tmpdec] *) // typedef tmpdeclst = List0 (tmpdec) // (* ****** ****** *) // fun fprint_tmpdec: fprint_type(tmpdec) fun fprint_tmpdeclst: fprint_type(tmpdeclst) // overload fprint with fprint_tmpdec overload fprint with fprint_tmpdeclst // (* ****** ****** *) // datatype instr_node = // | ATSif of ( d0exp // HX: cond , instrlst // HX: then , instrlstopt // HX: else ) (* end of [ATSif] *) // | ATSthen of instrlst // temp | ATSelse of instrlst // temp // | ATSifthen of (d0exp, instrlst) | ATSifnthen of (d0exp, instrlst) // | ATSbranchseq of (instrlst) | ATScaseofseq of (instrlst(*branches*)) // | ATSfunbodyseq of instrlst // | ATSreturn of (i0de) | ATSreturn_void of (i0de) // | ATSlinepragma of (token(*line*), token(*file*)) // | ATSINSlab of (label) | ATSINSgoto of (label) // | ATSINSflab of (label) | ATSINSfgoto of (label) // | ATSINSfreeclo of (d0exp) | ATSINSfreecon of (d0exp) // | ATSINSmove of (i0de, d0exp) | ATSINSmove_void of (i0de, d0exp) // | ATSINSmove_nil of (i0de) | ATSINSmove_con0 of (i0de, token(*tag*)) // | ATSINSmove_con1 of (instrlst) | ATSINSmove_con1_new of (i0de, s0exp) | ATSINSstore_con1_tag of (i0de, token(*tag*)) | ATSINSstore_con1_ofs of (i0de, s0exp, i0de, d0exp) // | ATSINSmove_boxrec of (instrlst) | ATSINSmove_boxrec_new of (i0de, s0exp) | ATSINSstore_boxrec_ofs of (i0de, s0exp, i0de, d0exp) // | ATSINSmove_fltrec of (instrlst) | ATSINSstore_fltrec_ofs of (i0de, s0exp, i0de, d0exp) // | ATSINSmove_delay of (i0de, s0exp, d0exp) | ATSINSmove_lazyeval of (i0de, s0exp, d0exp) // | ATSINSmove_ldelay of (i0de, s0exp, d0exp) | ATSINSmove_llazyeval of (i0de, s0exp, d0exp) // | ATStailcalseq of instrlst | ATSINSmove_tlcal of (i0de, d0exp) | ATSINSargmove_tlcal of (i0de, i0de) // | ATSINSextvar_assign of (d0exp, d0exp) | ATSINSdyncst_valbind of (i0de, d0exp) // | ATSINScaseof_fail of (token) | ATSINSdeadcode_fail of (token) // | ATSdynload of int | ATSdynloadset of (i0de) | ATSdynloadfcall of (i0de) | ATSdynloadflag_sta of (i0de) | ATSdynloadflag_ext of (i0de) | ATSdynloadflag_init of (i0de) | ATSdynloadflag_minit of (i0de) // | ATSdynexn_dec of (i0de) | ATSdynexn_extdec of (i0de) | ATSdynexn_initize of (i0de, string(*fullname*)) // // end of [instr_node] // where instr = '{ instr_loc= loc_t, instr_node= instr_node } (* end of [instr] *) // and instrlst = List0 (instr) and instropt = Option (instr) and instrlstopt = Option (instrlst) // vtypedef instrlst_vt = List0_vt (instr) // (* ****** ****** *) // fun fprint_instr : fprint_type (instr) fun fprint_instrlst : fprint_type (instrlst) // overload fprint with fprint_instr overload fprint with fprint_instrlst of 10 // (* ****** ****** *) datatype f0body_node = F0BODY of (tmpdeclst, instrlst) // typedef f0body = '{ f0body_loc= loc_t, f0body_node= f0body_node } (* end of [f0body] *) (* ****** ****** *) datatype f0decl_node = | F0DECLnone of (f0head) | F0DECLsome of (f0head, f0body) // end of [f0decl_node] typedef f0decl = '{ f0decl_loc= loc_t, f0decl_node= f0decl_node } (* end of [f0decl] *) (* ****** ****** *) fun fprint_f0decl:fprint_type (f0decl) overload fprint with fprint_f0decl (* ****** ****** *) datatype d0ecl_node = // | D0Cinclude of s0tring // | D0Cifdef of (i0de, d0eclist) | D0Cifndef of (i0de, d0eclist) // | D0Ctypedef of (i0de, tyrec) // | D0Cassume of i0de // HX: assume ... // | D0Cdyncst_mac of i0de // | D0Cdyncst_extfun of (i0de, s0explst, s0exp) // | D0Cdyncst_valdec of (i0de, s0exp) | D0Cdyncst_valimp of (i0de, s0exp) // | D0Cextcode of (tokenlst) // | D0Cstatmp of (i0de, s0expopt) // | D0Cfundecl of (fkind, f0decl) // | D0Cclosurerize of ( i0de, s0exp(*env*), s0exp(*arg*), s0exp(*res*) ) (* end of [D0Cclosurerize] *) // | D0Cdynloadflag_init of (i0de) | D0Cdynloadflag_minit of (i0de) // | D0Cdynexn_dec of (i0de(*exn*)) | D0Cdynexn_extdec of (i0de(*exn*)) | D0Cdynexn_initize of (i0de(*exn*), s0tring(*fullname*)) // // end of [d0ecl_node] where d0ecl = '{ // d0ecl_loc= loc_t, d0ecl_node= d0ecl_node // } (* end of [d0ecl] *) and d0eclist = List0 (d0ecl) (* ****** ****** *) // fun fprint_d0ecl : fprint_type (d0ecl) fun fprint_d0eclist : fprint_type (d0eclist) // overload fprint with fprint_d0ecl overload fprint with fprint_d0eclist of 10 // (* ****** ****** *) (* end of [catsparse.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/SATS/catsparse_fundecl.sats0000644000175000017500000000061513431250607026033 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2015-07-06: start // (* ****** ****** *) // #define ATS_PACKNAME"CATS-PARSEMIT" // (* ****** ****** *) #staload "./catsparse.sats" // opened (* ****** ****** *) // fun f0head_insert(fhd: f0head): void // fun f0head_search_opt (name: symbol): Option_vt (f0head) // (* ****** ****** *) (* end of [catsparse_fundecl.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/SATS/catsparse_emit.sats0000644000175000017500000000760613431250607025360 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-08-04: start // (* ****** ****** *) // #include "share/atspre_define.hats" // (* ****** ****** *) // #define ATS_PACKNAME"CATS-PARSEMIT" // (* ****** ****** *) // #staload "./catsparse.sats" // opened // (* ****** ****** *) // typedef emit_type ( a : t@ype ) = (FILEref, a) -> void // (* ****** ****** *) // fun emit_ENDL : FILEref -> void fun emit_SPACE : FILEref -> void // fun emit_DOT : FILEref -> void // fun emit_COLON : FILEref -> void fun emit_COMMA : FILEref -> void fun emit_SEMICOLON : FILEref -> void // fun emit_AMPER : FILEref -> void fun emit_SHARP : FILEref -> void fun emit_DOLLAR : FILEref -> void // fun emit_SQUOTE : FILEref -> void fun emit_DQUOTE : FILEref -> void // (* ****** ****** *) // fun emit_LPAREN : FILEref -> void fun emit_RPAREN : FILEref -> void // fun emit_LBRACKET : FILEref -> void fun emit_RBRACKET : FILEref -> void // fun emit_LBRACE : FILEref -> void fun emit_RBRACE : FILEref -> void // (* ****** ****** *) fun emit_MINUSGT : FILEref -> void (* ****** ****** *) fun emit_flush : FILEref -> void fun emit_newline : FILEref -> void (* ****** ****** *) // fun emit_nspc (out: FILEref, ind: int): void // (* ****** ****** *) fun emit_int : emit_type (int) (* ****** ****** *) fun emit_char : emit_type(char) (* ****** ****** *) fun emit_text : emit_type(string) (* ****** ****** *) fun emit_symbol : emit_type(symbol) (* ****** ****** *) fun emit_time_stamp (FILEref): void (* ****** ****** *) // fun emit_extcode : emit_type(tokenlst) fun emit_tokenlst : emit_type(tokenlst) // (* ****** ****** *) // fun emit_PMVint : emit_type(i0nt) // fun emit_PMVintrep : emit_type(i0nt) // fun emit_PMVbool : emit_type(bool) // fun emit_PMVfloat : emit_type(f0loat) // fun emit_PMVstring : emit_type(s0tring) // fun emit_PMVi0nt : emit_type(i0nt) // fun emit_PMVf0loat : emit_type(f0loat) // fun emit_CSTSPmyloc : emit_type(s0tring) // (* ****** ****** *) fun emit_PMVempty : emit_type(int) fun emit_PMVextval : emit_type(tokenlst) (* ****** ****** *) // fun emit_PMVfunlab : emit_type(label) fun emit_PMVcfunlab (out: FILEref, fl: label, d0es: d0explst): void // (* ****** ****** *) // fun emit_ATSCKiseqz (FILEref, d0exp): void fun emit_ATSCKisneqz (FILEref, d0exp): void // fun emit_ATSCKptriscons (FILEref, d0exp): void fun emit_ATSCKptrisnull (FILEref, d0exp): void // (* ****** ****** *) // fun emit_ATSCKpat_int (out: FILEref, d0e: d0exp, i0: d0exp): void // fun emit_ATSCKpat_bool (out: FILEref, d0e: d0exp, b0: d0exp): void // fun emit_ATSCKpat_string (out: FILEref, d0e: d0exp, s0: d0exp): void // fun emit_ATSCKpat_con0 (out: FILEref, d0e: d0exp, ctag: int): void // fun emit_ATSCKpat_con1 (out: FILEref, d0e: d0exp, ctag: int): void // (* ****** ****** *) fun emit_i0de : emit_type (i0de) fun emit_label : emit_type (label) fun emit_label_mark : emit_type (label) (* ****** ****** *) fun emit_tmpvar : emit_type (i0de) (* ****** ****** *) // fun emit_d0exp : emit_type (d0exp) // fun emit_d0explst : emit_type (d0explst) fun emit_d0explst_1 : emit_type (d0explst) // fun emit_d0exparg : emit_type (d0explst) // (* ****** ****** *) fun emit_SELcon : emit_type (d0exp) fun emit_SELrecsin : emit_type (d0exp) fun emit_SELboxrec : emit_type (d0exp) fun emit_SELfltrec : emit_type (d0exp) (* ****** ****** *) fun emit_d0ecl : emit_type (d0ecl) (* ****** ****** *) fun emit_instr : emit_type (instr) (* ****** ****** *) fun emit_tmpdec : emit_type (tmpdec) (* ****** ****** *) fun emit_f0decl : emit_type (f0decl) (* ****** ****** *) // fun emit_COMMENT_line(out: FILEref, tok: token): void fun emit_COMMENT_block(out: FILEref, tok: token): void // (* ****** ****** *) fun emit_closurerize ( out: FILEref, fl: label, env: s0exp, arg: s0exp, res: s0exp ) : void // end of [emit_closurerize] (* ****** ****** *) fun emit_toplevel : emit_type (d0eclist) (* ****** ****** *) (* end of [catsparse_emit.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/SATS/.keeper0000644000175000017500000000000013431250607022712 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/SATS/catsparse_syntax.sats0000644000175000017500000003376313431250607025753 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #define ATS_PACKNAME"CATS-PARSEMIT" // (* ****** ****** *) #staload "./catsparse.sats" // opened (* ****** ****** *) // castfn synent_encode {a:type} (x: a): synent castfn synent_decode {a:type} (x: synent): (a) // (* ****** ****** *) // fun synent_decode2{a:type} (x: &synent >> _?): a // (* ****** ****** *) // fun synent_null {a:type} (): a // = null // fun synent_is_null {a:type} (x: a):<> bool fun synent_isnot_null {a:type} (x: a):<> bool // (* ****** ****** *) // fun i0dex_make_sym (loc: loc_t, sym: symbol): i0de fun i0dex_make_string (loc: loc_t, name: string): i0de // (* ****** ****** *) fun s0exp_ide (loc: loc_t, id: i0de): s0exp fun s0exp_list (loc: loc_t, s0es: s0explst): s0exp fun s0exp_appid (id: i0de, s0e: s0exp): s0exp (* ****** ****** *) // // HX: for constructing primvals // (* ****** ****** *) // fun d0exp_ide (id: i0de): d0exp // fun d0exp_list (loc: loc_t, d0es: d0explst): d0exp // fun d0exp_appid (id: i0de, d0e_arg: d0exp): d0exp fun d0exp_appexp (d0e_fun: d0exp, d0e_arg: d0exp): d0exp // (* ****** ****** *) // fun ATSPMVint_make ( tok_kwd: token, tok: i0nt, tok_end: token ) : d0exp // end-of-fun fun ATSPMVintrep_make ( tok_kwd: token, tok: i0nt, tok_end: token ) : d0exp // end-of-fun // (* ****** ****** *) // fun ATSPMVbool_make ( tok_kwd: token, tfv: bool, tok_end: token ) : d0exp // end-of-fun // (* ****** ****** *) // fun ATSPMVfloat_make ( tok_kwd: token, tok: f0loat, tok_end: token ) : d0exp // end-of-fun // (* ****** ****** *) // fun ATSPMVstring_make ( tok_kwd: token, tok: s0tring, tok_end: token ) : d0exp // end-of-fun // (* ****** ****** *) // fun ATSPMVi0nt_make ( tok_kwd: token, tok: i0nt, tok_end: token ) : d0exp // end-of-fun // fun ATSPMVf0loat_make ( tok_kwd: token, tok: f0loat, tok_end: token ) : d0exp // end-of-fun // (* ****** ****** *) // fun ATSPMVempty_make (tok_kwd: token, tok_end: token): d0exp // fun ATSPMVextval_make (tok_kwd: token, toks: tokenlst, tok_end: token): d0exp // (* ****** ****** *) // fun ATSPMVrefarg0_make ( tok_kwd: token, d0e: d0exp, tok_end: token ) : d0exp // end-of-fun // fun ATSPMVrefarg1_make ( tok_kwd: token, d0e: d0exp, tok_end: token ) : d0exp // end-of-fun // (* ****** ****** *) fun ATSPMVfunlab_make ( tok_kwd: token, flab: label, tok_end: token ) : d0exp // end-of-fun (* ****** ****** *) fun ATSPMVcfunlab_make ( tok_kwd: token , knd: signed, flab: label, arg: d0exp, tok_end: token ) : d0exp // end-of-fun (* ****** ****** *) // fun ATSPMVcastfn_make ( tok_kwd: token , fid: i0de, s0e_res: s0exp, arg: d0exp, tok_end: token ) : d0exp // end-of-fun // (* ****** ****** *) // fun ATSCSTSPmyloc_make ( tok_kwd: token, tok: s0tring, tok_end: token ) : d0exp // end-of-fun // (* ****** ****** *) // fun ATSCKiseqz_make (tok_kwd: token, d0e: d0exp, tok_end: token): d0exp fun ATSCKisneqz_make (tok_kwd: token, d0e: d0exp, tok_end: token): d0exp // fun ATSCKptriscons_make (tok_kwd: token, d0e: d0exp, tok_end: token): d0exp fun ATSCKptrisnull_make (tok_kwd: token, d0e: d0exp, tok_end: token): d0exp // (* ****** ****** *) // fun ATSCKpat_int_make ( tok_kwd: token, d0e: d0exp, int: d0exp, tok_end: token ) : d0exp // end-of-fun // fun ATSCKpat_bool_make ( tok_kwd: token, d0e: d0exp, bool: d0exp, tok_end: token ) : d0exp // end-of-fun // fun ATSCKpat_string_make ( tok_kwd: token, d0e: d0exp, bool: d0exp, tok_end: token ) : d0exp // end-of-fun // fun ATSCKpat_con0_make ( tok_kwd: token, d0e: d0exp, tag: signed, tok_end: token ) : d0exp // end-of-fun // fun ATSCKpat_con1_make ( tok_kwd: token, d0e: d0exp, tag: signed, tok_end: token ) : d0exp // end-of-fun // (* ****** ****** *) // fun ATSSELcon_make ( tok_kwd: token , d0e: d0exp, s0e: s0exp, lab: label , tok_end: token ) : d0exp // end of [ATSSELcon_make] // fun ATSSELrecsin_make ( tok_kwd: token , d0e: d0exp, s0e: s0exp, lab: label , tok_end: token ) : d0exp // end of [ATSSELrecsin_make] // fun ATSSELboxrec_make ( tok_kwd: token , d0e: d0exp, s0e: s0exp, lab: label , tok_end: token ) : d0exp // end of [ATSSELboxrec_make] // fun ATSSELfltrec_make ( tok_kwd: token , d0e: d0exp, s0e: s0exp, lab: label , tok_end: token ) : d0exp // end of [ATSSELfltrec_make] // (* ****** ****** *) fun ATSextfcall_make ( tok_kwd: token , d0e_fun: i0de, d0e_arg: d0exp , tok_end: token ) : d0exp // end of [ATSextfcall_make] (* ****** ****** *) fun ATSextmcall_make ( tok_kwd: token , d0e_obj: d0exp , d0e_mtd: d0exp, d0e_arg: d0exp , tok_end: token ) : d0exp // end of [ATSextmcall_make] (* ****** ****** *) fun ATSfunclo_fun_make ( tok_kwd: token , d0e: d0exp, arg: s0exp, res: s0exp , tok_end: token , d0argopt: d0expopt ) : d0exp // end of [ATSfunclo_fun_make] (* ****** ****** *) fun ATSfunclo_clo_make ( tok_kwd: token , d0e: d0exp, arg: s0exp, res: s0exp , tok_end: token , d0argopt: d0expopt ) : d0exp // end of [ATSfunclo_clo_make] (* ****** ****** *) // fun tyfld_make (s0e: s0exp, id: i0de): tyfld // fun tyrec_make (tok_beg: token, xs: tyfldlst, tok_end: token): tyrec // (* ****** ****** *) // fun fkind_extern (tok1: token, tok2: token): fkind fun fkind_static (tok1: token, tok2: token): fkind // (* ****** ****** *) // fun f0arg_none (s0e: s0exp): f0arg fun f0arg_some (s0e: s0exp, id: i0de): f0arg // fun f0marg_make (tok_beg: token, f0as: f0arglst, tok_end: token): f0marg // (* ****** ****** *) // fun f0head_get_f0arglst (fhd: f0head): f0arglst // fun f0head_make (res: s0exp, id: i0de, marg: f0marg): f0head // (* ****** ****** *) // fun tmpvar_is_sta (tmp: symbol): bool fun tmpvar_is_arg (tmp: symbol): bool fun tmpvar_is_apy (tmp: symbol): bool fun tmpvar_is_env (tmp: symbol): bool fun tmpvar_is_tmp (tmp: symbol): bool fun tmpvar_is_tmpret (tmp: symbol): bool // (* ****** ****** *) // fun tmpvar_is_axrg (tmp: symbol): bool fun tmpvar_is_axpy (tmp: symbol): bool // fun tmpvar_is_local (tmp: symbol): bool // (* ****** ****** *) // fun tmpdec_make_none ( tok_kwd: token, tmp: i0de, tok_end: token ) : tmpdec // end-of-fun fun tmpdec_make_some ( tok_kwd: token, tmp: i0de, s0e: s0exp, tok_end: token ) : tmpdec // end-of-fun // (* ****** ****** *) // // HX: for constructing instructions // (* ****** ****** *) // fun ATSif_make ( tok_if: token , _test: d0exp, _then: instr, _else: instropt ) : instr // end of [ATSif_make] // fun ATSthen_make ( tok_then: token, inss: instrlst, tok_end: token ) : instr // end of [ATSthen_make] // fun ATSelse_make ( tok_else: token, inss: instrlst, tok_end: token ) : instr // end of [ATSelse_make] // (* ****** ****** *) // fun ATSifthen_make ( tok_ifthen: token , _test: d0exp, _then: instrlst, tok_end: token ) : instr // end-of-fun // fun ATSifnthen_make ( tok_ifnthen: token , _test: d0exp, _then: instrlst, tok_end: token ) : instr // end-of-fun // (* ****** ****** *) fun ATSbranchseq_make ( tok_kwd: token, inss: instrlst, tok_end: token ) : instr // end-of-function (* ****** ****** *) fun caseofseq_get_tmplablst (x: instr): labelist (* ****** ****** *) fun ATScaseofseq_make ( tok_kwd: token, inss: instrlst, tok_end: token ) : instr // end-of-function (* ****** ****** *) fun funbodyseq_get_funlab (ins0: instr): label (* ****** ****** *) fun ATSfunbodyseq_make ( tok_kwd: token, inss: instrlst, tok_end: token ) : instr // end-of-function (* ****** ****** *) // fun ATSreturn_make (tok_kwd: token, tmp: i0de, tok_end: token): instr fun ATSreturn_void_make (tok_kwd: token, tmp: i0de, tok_end: token): instr // (* ****** ****** *) // fun instrlst_skip_linepragma (inss: instrlst): instrlst // (* ****** ****** *) // fun ATSlinepragma_make (tok_kwd: token, line: token, file: token): instr // (* ****** ****** *) // fun ATSINSlab_make (tok_kwd: token, tmp: i0de, tok_end: token): instr // fun ATSINSgoto_make (tok_kwd: token, tmp: i0de, tok_end: token): instr // (* ****** ****** *) // fun ATSINSflab_make (tok_kwd: token, tmp: i0de, tok_end: token): instr // fun ATSINSfgoto_make (tok_kwd: token, tmp: i0de, tok_end: token): instr // (* ****** ****** *) // fun ATSINSfreeclo_make (tok_kwd: token, d0e: d0exp, tok_end: token): instr // fun ATSINSfreecon_make (tok_kwd: token, d0e: d0exp, tok_end: token): instr // (* ****** ****** *) // fun ATSINSmove_make ( tok_kwd: token, tmp: i0de, d0e: d0exp, tok_end: token ) : instr // end of [ATSINSmove_make] // fun ATSINSmove_void_make ( tok_kwd: token, tmp: i0de, d0e: d0exp, tok_end: token ) : instr // end of [ATSINSmove_void_make] // (* ****** ****** *) // fun ATSINSmove_nil_make ( tok_kwd: token, tmp: i0de, tok_end: token ) : instr // end of [ATSINSmove_nil_make] // fun ATSINSmove_con0_make ( tok_kwd: token, tmp: i0de, tag: token, tok_end: token ) : instr // end-of-function // (* ****** ****** *) // fun ATSINSmove_con1_make ( tok_kwd: token, inss: instrlst, tok_end: token ) : instr // end-of-function // fun ATSINSmove_con1_new_make ( tok_kwd: token, tmp: i0de, s0e: s0exp, tok_end: token ) : instr // end-of-function // fun ATSINSstore_con1_tag_make ( tok_kwd: token, tmp: i0de, tag: token, tok_end: token ) : instr // end-of-function // fun ATSINSstore_con1_ofs_make ( tok_kwd: token , tmp: i0de, s0e: s0exp, lab: label, d0e: d0exp , tok_end: token ) : instr // end-of-function // (* ****** ****** *) // fun ATSINSmove_boxrec_make ( tok_kwd: token, inss: instrlst, tok_end: token ) : instr // end-of-function // fun ATSINSmove_boxrec_new_make ( tok_kwd: token, tmp: i0de, s0e: s0exp, tok_end: token ) : instr // end-of-function // fun ATSINSstore_boxrec_ofs_make ( tok_kwd: token , tmp: i0de, s0e: s0exp, lab: label, d0e: d0exp , tok_end: token ) : instr // end-of-function // (* ****** ****** *) // fun ATSINSmove_fltrec_make ( tok_kwd: token, inss: instrlst, tok_end: token ) : instr // end-of-function // fun ATSINSstore_fltrec_ofs_make ( tok_kwd: token , tmp: i0de, s0e: s0exp, lab: label, d0e: d0exp , tok_end: token ) : instr // end-of-function // (* ****** ****** *) // fun ATSINSmove_delay_make ( tok_kwd: token , tmp: i0de, s0e_res: s0exp, d0e: d0exp (*thunk*) , tok_end: token ) : instr // end-of-function // fun ATSINSmove_lazyeval_make ( tok_kwd: token , tmp: i0de, s0e_res: s0exp, d0e: d0exp (*lazyval*) , tok_end: token ) : instr // end-of-function // fun ATSINSmove_ldelay_make ( tok_kwd: token , tmp: i0de, s0e_res: s0exp, d0e: d0exp (*thunk*) , tok_end: token ) : instr // end-of-function // fun ATSINSmove_llazyeval_make ( tok_kwd: token , tmp: i0de, s0e_res: s0exp, d0e: d0exp (*lazyval*) , tok_end: token ) : instr // end-of-function // (* ****** ****** *) // fun ATStailcalseq_make ( tok_kwd: token, inss: instrlst, tok_end: token ) : instr // end-of-function // fun ATSINSmove_tlcal_make ( tok_kwd: token, argx: i0de, d0e: d0exp, tok_end: token ) : instr // end-of-function // fun ATSINSargmove_tlcal_make ( tok_kwd: token, arg0: i0de, argx: i0de, tok_end: token ) : instr // end-of-function // (* ****** ****** *) fun ATSINSextvar_assign_make ( tok_kwd: token, ext: d0exp, d0e_r: d0exp, tok_end: token ) : instr // end of [ATSINSextvar_assign_make] fun ATSINSdyncst_valbind_make ( tok_kwd: token, d2cst: i0de, d0e_r: d0exp, tok_end: token ) : instr // end of [ATSINSdyncst_valbind_make] (* ****** ****** *) // fun ATSINScaseof_fail_make (tok_kwd: token, errmsg: token, tok_end: token): instr // fun ATSINSdeadcode_fail_make (tok_kwd: token, tok_end: token): instr // (* ****** ****** *) // fun ATSdynload_make (tok_kwd: token, tok_end: token): instr fun ATSdynloadset_make (tok_kwd: token, id: i0de, tok_end: token): instr fun ATSdynloadfcall_make (tok_kwd: token, id: i0de, tok_end: token): instr // fun ATSdynloadflag_sta_make (tok_kwd: token, id: i0de, tok_end: token): instr fun ATSdynloadflag_ext_make (tok_kwd: token, id: i0de, tok_end: token): instr // (* ****** ****** *) // fun f0body_classify (f0body): int // fun f0body_get_tmpdeclst (f0body): tmpdeclst // fun f0body_get_bdinstrlst (f0body): instrlst // (* ****** ****** *) fun f0body_make ( tok_beg: token, tmps: tmpdeclst, inss: instrlst, tok_end: token ) : f0body // end-of-fun (* ****** ****** *) fun f0decl_none (head: f0head): f0decl fun f0decl_some (head: f0head, body: f0body): f0decl (* ****** ****** *) // fun d0ecl_include (tok_beg: token, fname: s0tring): d0ecl // fun d0ecl_typedef (tok_beg: token, tyrec: tyrec, id: i0de): d0ecl // fun d0ecl_assume (tok_beg: token, name: i0de, tok_end: token): d0ecl // fun d0ecl_dyncst_mac (tok_beg: token, name: i0de, tok_end: token): d0ecl // fun d0ecl_dyncst_extfun ( tok_beg: token , name: i0de, arg: s0explst, res: s0exp, tok_end: token ) : d0ecl // end of [d0ecl_dyncst_extfun] // fun d0ecl_dyncst_valdec ( tok_beg: token, name: i0de, s0e: s0exp, tok_end: token ) : d0ecl // end of [d0ecl_dyncst_valdec] fun d0ecl_dyncst_valimp ( tok_beg: token, name: i0de, s0e: s0exp, tok_end: token ) : d0ecl // end of [d0ecl_dyncst_valimp] // (* ****** ****** *) // fun d0ecl_statmp_none (tok_kwd: token, tmp: i0de, tok_end: token): d0ecl fun d0ecl_statmp_some (tok_kwd: token, tmp: i0de, opt: s0exp, tok_end: token): d0ecl // (* ****** ****** *) // fun d0ecl_fundecl (knd: fkind, f0d: f0decl): d0ecl // (* ****** ****** *) // fun d0ecl_ifdef ( tok_kwd: token, id: i0de, d0cs: d0eclist, tok_end: token ) : d0ecl // end of [d0ecl_ifdef] // fun d0ecl_ifndef ( tok_kwd: token, id: i0de, d0cs: d0eclist, tok_end: token ) : d0ecl // end of [d0ecl_ifdef] // (* ****** ****** *) // fun d0ecl_extcode (tok_kwd: token, extcode: tokenlst, tok_end: token): d0ecl // (* ****** ****** *) fun d0ecl_closurerize ( tok_kwd: token , fl: label, env: s0exp, arg: s0exp, res: s0exp, tok_end: token ) : d0ecl // end of [d0ecl_closurerize] (* ****** ****** *) // fun d0ecl_dynloadflag_init (tok_kwd: token, flag: i0de, tok_end: token): d0ecl // fun d0ecl_dynloadflag_minit (tok_kwd: token, flag: i0de, tok_end: token): d0ecl // (* ****** ****** *) // fun d0ecl_dynexn_dec (tok_kwd: token, idexn: i0de, tok_end: token): d0ecl fun d0ecl_dynexn_extdec (tok_kwd: token, idexn: i0de, tok_end: token): d0ecl fun d0ecl_dynexn_initize ( tok_kwd: token, idexn: i0de, fullname: s0tring, tok_end: token ) : d0ecl // end of [d0ecl_dynexn_initize] // (* ****** ****** *) (* end of [catsparse_syntax.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-parsemit/SATS/catsparse_typedef.sats0000644000175000017500000000063313431250607026053 0ustar brandonbrandon(* ****** ****** *) // // CATS-parsemit // (* ****** ****** *) // // HX-2014-07-02: start // (* ****** ****** *) // #define ATS_PACKNAME"CATS-PARSEMIT" // (* ****** ****** *) #staload "./catsparse.sats" // opened (* ****** ****** *) // fun typedef_insert(name: symbol, def: tyrec): void // fun typedef_search_opt (name: symbol): Option_vt (tyrec) // (* ****** ****** *) (* end of [catsparse_typedef.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/0000755000175000017500000000000013431250607020665 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/CATS-parsemit0000777000175000017500000000000013431250607025673 2../CATS-parsemitustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/bin/0000755000175000017500000000000013431250607021435 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/bin/.gitkeep0000644000175000017500000000000013431250607023054 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/DATS/0000755000175000017500000000000013431250607021420 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/DATS/atscc2py3_emit2.dats0000644000175000017500000011737613431250607025227 0ustar brandonbrandon(* ****** ****** *) // // Atscc2py3: // from ATS to Python3 // (* ****** ****** *) // // HX-2014-08-04: start // HX-2015-05-23: restructure // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) // extern fun the_statmpdeclst_get(): d0eclist extern fun the_statmpdeclst_insert(d0ecl): void // (* ****** ****** *) local // val the_statmps = ref (list_nil(*void*)) // in (* in-of-local *) // implement the_statmpdeclst_get () = list_vt2t(list_reverse(!the_statmps)) // implement the_statmpdeclst_insert (d0c) = let val d0cs = !the_statmps in !the_statmps := list_cons (d0c, d0cs) end // end of [the_statmpdeclst_insert] // end // end of [local] (* ****** ****** *) // extern fun emit_the_statmpdeclst (out: FILEref, ind: int): void // implement emit_the_statmpdeclst (out, ind) = let // fun auxlst ( out: FILEref, xs: d0eclist ) : void = ( case+ xs of | list_nil () => () | list_cons (x, xs) => let val- D0Cstatmp (tmp, opt) = x.d0ecl_node // end of [val] in case+ opt of | None _ => ( auxlst(out, xs) ) (* None *) | Some _ => let val () = emit_ENDL(out) val () = emit_nspc(out, ind) val () = ( emit_text(out, "global "); emit_tmpvar(out, tmp) ) (* end of [val] *) in auxlst (out, xs) end // end of [Some] end // end of [list_cons] ) (* end of [auxlst] *) // in auxlst (out, the_statmpdeclst_get()) end // end of [emit_the_statmpdeclst] // (* ****** ****** *) // extern fun emit_f0arglst_nonlocal (out: FILEref, f0as: f0arglst): void // implement emit_f0arglst_nonlocal (out, f0as) = let // fun auxlst ( out: FILEref, f0as: f0arglst, i: int ) : void = ( case+ f0as of | list_nil() => () | list_cons(f0a, f0as) => ( case- f0a.f0arg_node of (* case- *) | F0ARGsome (arg, _) => let val () = if i > 0 then emit_text (out, ", ") // end of [if] val () = emit_tmpvar (out, arg) in auxlst (out, f0as, i+1) end // end of [F0ARGsome] ) (* end of [list_cons] *) ) // in // case+ f0as of | list_nil() => { // nothing } (* list_nil *) | list_cons _ => { val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "nonlocal ") val () = auxlst (out, f0as, 0(*i*)) val () = emit_ENDL (out) } (* list_cons *) // end // end of [emit_f0arglst_nonlocal] // (* ****** ****** *) // extern fun emit_tmpdeclst_initize (out: FILEref, tds: tmpdeclst): void // implement emit_tmpdeclst_initize (out, tds) = let // fun auxlst ( out: FILEref, tds: tmpdeclst ) : void = ( case+ tds of | list_nil () => () | list_cons (td, tds) => ( case+ td.tmpdec_node of (* case+ *) | TMPDECnone (tmp) => auxlst (out, tds) // end of [TMPDECnone] | TMPDECsome (tmp, _) => let val () = emit_nspc (out, 2(*ind*)) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = None\n") in auxlst (out, tds) end // end of [TMPDECsome] ) (* end of [list_cons] *) ) // in auxlst (out, tds) end // end of [emit_tmpdeclst_initize] // (* ****** ****** *) // extern fun emit_tmpdeclst_nonlocal (out: FILEref, tds: tmpdeclst): void // implement emit_tmpdeclst_nonlocal (out, tds) = let // fun auxlst ( out: FILEref, tds: tmpdeclst, i: int ) : void = ( case+ tds of | list_nil () => () | list_cons (td, tds) => ( case+ td.tmpdec_node of | TMPDECnone (tmp) => auxlst (out, tds, i) | TMPDECsome (tmp, _) => let val () = if i > 0 then emit_text (out, ", ") // end of [if] val () = emit_tmpvar (out, tmp) in auxlst (out, tds, i+1) end // end of [TMPDECsome] ) (* end of [list_cons] *) ) // in // case+ tds of | list_nil () => () | list_cons _ => { val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "nonlocal") val () = emit_SPACE (out) val () = auxlst (out, tds, 0) val () = emit_newline (out) } (* end of [list_cons] *) // end // end of [emit_tmpdeclst_nonlocal] // (* ****** ****** *) // extern fun emit_mbranchlst_initize (out: FILEref, inss: instrlst): void // implement emit_mbranchlst_initize (out, inss) = let // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( // case+ inss of | list_nil() => () | list_cons(_, inss) => { val () = emit_nspc (out, 2(*ind*)) // end of [val] val () = ( emit_text (out, "mbranch_"); emit_int (out, i); emit_text (out, " = None\n") ) val () = auxlst (out, inss, i+1) } (* end of [list_cons] *) // ) (* end of [auxlst] *) // in auxlst (out, inss, 1(*i*)) end // end of [emit_mbranchlst_initize] // (* ****** ****** *) // extern fun emit_mbranchlst_nonlocal (out: FILEref, inss: instrlst): void // implement emit_mbranchlst_nonlocal (out, inss) = let // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( case+ inss of | list_nil() => () | list_cons(_, inss) => let val () = if i >= 2 then emit_text (out, ", ") val () = ( emit_text (out, "mbranch_"); emit_int (out, i) ) (* end of [val] *) in auxlst (out, inss, i+1) end // end of [list_cons] // ) (* end of [auxlst] *) // in // case+ inss of | list_nil () => () | list_cons _ => { val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "nonlocal ") val () = auxlst (out, inss, 1(*i*)) val () = emit_ENDL (out) } (* end of [list_cons] *) // end // end of [emit_mbranchlst_nonlocal] // (* ****** ****** *) // extern fun funlab_get_index (fl: label): int extern fun tmplab_get_index (lab: label): int // (* ****** ****** *) // extern fun the_f0arglst_get (): f0arglst extern fun the_f0arglst_set (f0as: f0arglst): void // (* ****** ****** *) // extern fun the_tmpdeclst_get (): tmpdeclst extern fun the_tmpdeclst_set (tds: tmpdeclst): void // (* ****** ****** *) // extern fun the_funbodylst_get (): instrlst extern fun the_funbodylst_set (inss: instrlst): void // (* ****** ****** *) // extern fun the_branchlablst_get (): labelist extern fun the_branchlablst_set (tls: labelist): void // (* ****** ****** *) // extern fun the_caseofseqlst_get (): instrlst extern fun the_caseofseqlst_set (inss: instrlst): void // (* ****** ****** *) local // val the_f0arglst = ref (list_nil) val the_tmpdeclst = ref (list_nil) // val the_funbodylst = ref (list_nil) // val the_branchlablst = ref (list_nil) val the_caseofseqlst = ref (list_nil) // in (* in-of-local *) implement the_f0arglst_get () = !the_f0arglst implement the_f0arglst_set (xs) = !the_f0arglst := xs implement the_tmpdeclst_get () = !the_tmpdeclst implement the_tmpdeclst_set (xs) = !the_tmpdeclst := xs implement the_funbodylst_get () = !the_funbodylst implement the_funbodylst_set (xs) = !the_funbodylst := xs implement the_branchlablst_get () = !the_branchlablst implement the_branchlablst_set (tls) = !the_branchlablst := tls implement the_caseofseqlst_get () = !the_caseofseqlst implement the_caseofseqlst_set (xs) = !the_caseofseqlst := xs end // end of [local] (* ****** ****** *) implement funlab_get_index (fl0) = let // val n0 = fl0.i0dex_sym // fun auxlst ( xs: instrlst, i: int ) : int = ( // case+ xs of | list_nil () => ~1(*error*) | list_cons (x, xs) => ( case+ x.instr_node of | ATSfunbodyseq _ => let val fl = funbodyseq_get_funlab (x) in if n0 = fl.i0dex_sym then i else auxlst (xs, i+1) end // end of [ATSfunbodyseq] | _ (*non-ATSfunbody*) => auxlst (xs, i) ) (* end of [list_cons] *) // ) (* end of [auxlst] *) // in auxlst (the_funbodylst_get(), 1) end // end of [funlab_get_index] (* ****** ****** *) implement tmplab_get_index (lab0) = let // val n0 = lab0.i0dex_sym // fun auxlst ( xs: labelist, i: int ) : int = ( case+ xs of | list_nil () => ~1(*error*) | list_cons (x, xs) => if n0 = x.i0dex_sym then i else auxlst (xs, i+1) // end of [list_cons] ) // in // auxlst(the_branchlablst_get(), 1) // end // end of [tmplab_get_index] (* ****** ****** *) // fun emit_funlab_index (out: FILEref, fl: label): void = emit_int(out, funlab_get_index(fl)) // fun emit_tmplab_index (out: FILEref, lab: label): void = emit_int(out, tmplab_get_index(lab)) // (* ****** ****** *) // extern fun branchmap_get_index (ins: instr): int // implement branchmap_get_index (x0) = let // val p0 = $UN.cast2ptr(x0) // fun auxlst ( xs: instrlst, i: int ) : int = ( case xs of | list_nil() => ~1(*error*) | list_cons(x, xs) => if $UN.cast2ptr(x) = p0 then i else auxlst (xs, i+1) // end of [list_cons] ) // in auxlst(the_caseofseqlst_get(), 1) end // end of [branchmap_get_index] (* ****** ****** *) // fun emit_branchmap_index (out: FILEref, ins: instr): void = emit_int (out, branchmap_get_index(ins)) // (* ****** ****** *) // fun emit_branchmap ( out: FILEref, ins0: instr ) : void = let // fun auxlst ( out: FILEref, xs: instrlst, i: int ) : int = ( case+ xs of | list_nil() => i | list_cons(x, xs) => ( case+ x.instr_node of | ATSINSlab (lab) => let val ((*void*)) = if i >= 2 then emit_text(out, ", ") // end of [val] val () = emit_int (out, i) val () = emit_text (out, ": ") val () = emit_label (out, lab) in auxlst (out, xs, i+1) end // end of [ATSINSlab] | _(*non-ATSINSlab*) => auxlst (out, xs, i) ) (* list_cons *) ) (* end of [auxlst] *) // fun auxlst2 ( out: FILEref, xs: instrlst, i: int ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => let val-ATSbranchseq(inss) = x.instr_node in auxlst2 (out, xs, auxlst (out, inss, i)) end // end of [list_cons] ) (* end of [auxlst2] *) // val-ATScaseofseq(inss) = ins0.instr_node // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "mbranch_") val () = emit_branchmap_index (out, ins0) val () = emit_text (out, " = ") val ((*opening*)) = emit_text (out, "{ ") val () = auxlst2 (out, inss, 1(*first*)) val ((*closing*)) = emit_text (out, " }\n") // in // nothing end // end of [emit_branchmap] // (* ****** ****** *) fun emit_branchmaplst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins, inss) => { val () = emit_branchmap (out, ins) val () = emit_branchmaplst (out, inss) } ) (* end of [emit_branchmaplst] *) (* ****** ****** *) // extern fun f0body_collect_caseof (fbody: f0body): instrlst(*list-of-caseofseq*) // extern fun instrlst_collect_caseof (inss: instrlst): instrlst(*list-of-caseofseq*) // (* ****** ****** *) // implement f0body_collect_caseof (fbody) = let in // case+ fbody.f0body_node of // case+ | F0BODY(tds, inss) => instrlst_collect_caseof(inss) // end // end of [f0body_collect_caseof] // implement instrlst_collect_caseof (inss) = let // vtypedef res = instrlst_vt // fun aux ( ins: instr, res: res ) : res = ( case+ ins.instr_node of // | ATScaseofseq (inss) => ( auxlst(inss, cons_vt(ins, res)) ) (* end of [ATScaseofseq] *) | ATSbranchseq(inss) => auxlst(inss, res) // | ATSif ( d0e, inss, inssopt ) => let val res = auxlst(inss, res) in case+ inssopt of | None((*void*)) => res | Some(inss) => auxlst(inss, res) end // end of [ATSif] // | ATSifthen(d0e, inss) => auxlst(inss, res) | ATSifnthen(d0e, inss) => auxlst(inss, res) // | ATSfunbodyseq(inss) => auxlst(inss, res) // | _ (*rest-of-instr*) => res // ) (* end of [aux] *) // and auxlst ( inss: instrlst, res: res ) : res = ( case+ inss of | list_cons (ins, inss) => let val res = aux (ins, res) in auxlst (inss, res) end // end of [list_cons] | list_nil ((*void*)) => res ) // val res = auxlst(inss, list_vt_nil) // in list_vt2t(list_vt_reverse(res)) end // end of [instrlst_collect_caseof] // (* ****** ****** *) // extern fun emit2_instr (out: FILEref, ind: int, ins: instr) : void extern fun emit2_instr_ln (out: FILEref, ind: int, ins: instr) : void extern fun emit2_instr_newline (out: FILEref, ind: int, ins: instr) : void extern fun emit2_instrlst (out: FILEref, ind: int, inss: instrlst) : void // (* ****** ****** *) // extern fun emit2_ATSfunbodyseq (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_con1 (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_boxrec (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_delay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_lazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_ldelay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_llazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // // HX-2014-08: // this one should not be used for // emitting multiple-line instructions // implement emit_instr (out, ins) = emit2_instr (out, 0(*ind*), ins) // (* ****** ****** *) // implement emit2_instr (out, ind, ins0) = let in // case+ ins0.instr_node of // | ATSif ( d0e, inss, inssopt ) => { // val () = emit_nspc (out, ind) // val () = emit_text (out, "if ") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_text (out, ":\n") // val () = emit2_instrlst (out, ind+2, inss) // val () = ( case+ inssopt of (*case+*) | None() => () | Some(inss) => ( case+ inss of | list_nil _ => () | list_cons _ => { val () = emit_nspc (out, ind) val () = emit_text (out, "else:\n") val () = emit2_instrlst (out, ind+2, inss) } (* end of [list_cons] *) ) (* end of [Some] *) ) // val () = emit_nspc (out, ind) val () = emit_text (out, "#endif") // } (* end of [ATSif] *) // | ATSifthen (d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "if(") val () = emit_d0exp (out, d0e) val ((*closing*)) = emit_text (out, "): ") val () = emit_instr (out, ins) } | ATSifnthen (d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "if not(") val () = emit_d0exp (out, d0e) val ((*closing*)) = emit_text (out, "): ") val () = emit_instr (out, ins) } // | ATSbranchseq (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSbranch") } // | ATScaseofseq (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATScaseofseq_beg") val () = emit_ENDL (out) val () = emit_nspc (out, ind) val () = emit_text (out, "tmplab_py = 1\n") val () = emit_nspc (out, ind) val () = emit_text (out, "while(1):\n") val () = emit_nspc (out, ind+2) val () = emit_text (out, "mbranch_") val () = emit_branchmap_index (out, ins0) val () = emit_text (out, ".get(tmplab_py)()\n") val () = emit_nspc (out, ind+2) val () = emit_text (out, "if (tmplab_py == 0): break\n") val () = emit_nspc (out, ind) val () = emit_text (out, "#ATScaseofseq_end") } // | ATSreturn (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, "return ") val () = emit_tmpvar (out, tmp) } | ATSreturn_void (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, "return#_void") } // | ATSlinepragma (line, file) => { val () = emit_text (out, "#line ") val () = emit_PMVint (out, line) val () = emit_SPACE (out) val () = emit_PMVstring (out, file) } // | ATSINSlab (lab) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#") val () = emit_label (out, lab) } | ATSINSgoto (lab) => { val () = emit_nspc (out, ind) val () = emit_text (out, "tmplab_py = ") val () = emit_tmplab_index (out, lab) val () = ( emit_SPACE (out); emit_text (out, "; return"); emit_SHARP (out); emit_label (out, lab) ) (* end of [val] *) } // | ATSINSflab (flab) => { val () = emit_nspc (out, ind) val () = emit_SHARP (out) val () = emit_label (out, flab) } | ATSINSfgoto (flab) => { val () = emit_nspc (out, ind) val () = emit_text (out, "funlab_py = ") val () = emit_funlab_index (out, flab) val () = ( emit_SPACE (out); emit_SHARP (out); emit_label (out, flab) ) (* end of [val] *) } // | ATSINSfreeclo (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSINSfreeclo") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSfreecon (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSINSfreecon") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } // | ATSINSmove (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = ( emit_text (out, " = "); emit_d0exp (out, d0e) ) (* end of [val] *) } (* end of [ATSINSmove] *) // | ATSINSmove_void (tmp, d0e) => { val () = emit_nspc (out, ind) val () = ( case+ d0e.d0exp_node of | ATSPMVempty _ => emit_text (out, "None#ATSINSmove_void") // end of [ATSPMVempty] | _ (*non-ATSPMVempty*) => emit_d0exp (out, d0e) ) : void // end of [val] } (* end of [ATSINSmove_void] *) // | ATSINSmove_nil (tmp) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_text (out, "None") } // | ATSINSmove_con0 (tmp, tag) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = ( emit_text (out, " = "); emit_PMVint (out, tag) ) (* end of [val] *) } // | ATSINSmove_con1 _ => emit2_ATSINSmove_con1 (out, ind, ins0) // | ATSINSmove_boxrec _ => emit2_ATSINSmove_boxrec (out, ind, ins0) // | ATSINSmove_delay _ => emit2_ATSINSmove_delay (out, ind, ins0) | ATSINSmove_lazyeval _ => emit2_ATSINSmove_lazyeval (out, ind, ins0) // | ATSINSmove_ldelay _ => emit2_ATSINSmove_ldelay (out, ind, ins0) | ATSINSmove_llazyeval _ => emit2_ATSINSmove_llazyeval (out, ind, ins0) // | ATStailcalseq (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATStailcalseq_beg") val () = emit_ENDL (out) val () = emit2_instrlst (out, ind, inss) val () = emit_nspc (out, ind) val () = emit_text (out, "#ATStailcalseq_end") } (* end of [ATStailcalseq] *) // | ATSINSmove_tlcal (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e) } (* end of [ATSINSmove_tlcal] *) // | ATSINSargmove_tlcal (tmp1, tmp2) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp1) val () = emit_text (out, " = ") val () = emit_tmpvar (out, tmp2) } (* end of [ATSINSargmove_tlcal] *) // | ATSINSextvar_assign (ext, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_d0exp (out, ext) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } | ATSINSdyncst_valbind (d2c, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_i0de (out, d2c) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } // | ATSINScaseof_fail (errmsg) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINScaseof_fail") val () = emit_LPAREN (out) val () = emit_PMVstring (out, errmsg) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSdeadcode_fail (__tok__) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINSdeadcode_fail()") val () = emit_SEMICOLON (out) } // | ATSdynload (dummy) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSdynload()") val () = emit_the_statmpdeclst (out, ind) } // | ATSdynloadset (flag) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSdynloadset\n") val () = emit_nspc (out, ind) val () = ( emit_tmpvar (out, flag); emit_text (out, " = 1") ) (* end of [val] *) } // | ATSdynloadfcall (fcall) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSdynloadfcall\n") val () = emit_nspc (out, ind) val () = (emit_tmpvar (out, fcall); emit_text (out, "()")) // end of [val] } // | ATSdynloadflag_sta (flag) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSdynloadflag_sta\n") val () = emit_nspc (out, ind) val () = ( emit_text (out, "global "); emit_tmpvar (out, flag) ) (* end of [val] *) } // | ATSdynloadflag_ext (flag) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSdynloadflag_ext\n") val () = emit_nspc (out, ind) val () = ( emit_text (out, "global "); emit_tmpvar (out, flag) ) (* end of [val] *) } // | _ (*rest-of-instr*) => { val () = emit_nspc (out, ind) val ((*error*)) = fprint! (out, "UNRECOGNIZED-INSTRUCTION: ", ins0) } // end // end of [emit2_instr] (* ****** ****** *) implement emit2_instr_ln (out, ind, ins) = ( emit2_instr (out, ind, ins); emit_ENDL (out) ) (* end of [emit2_instr_ln] *) (* ****** ****** *) implement emit2_instr_newline (out, ind, ins) = ( emit2_instr (out, ind, ins); emit_newline (out) ) (* end of [emit2_instr_newline] *) (* ****** ****** *) implement emit2_instrlst ( out, ind, inss ) = ( // case+ inss of | list_nil () => () | list_cons (ins, inss) => let val () = emit2_instr (out, ind, ins) in emit_ENDL (out); emit2_instrlst (out, ind, inss) end // end of [list_cons] // ) (* end of [emit2_instrlst] *) (* ****** ****** *) implement emit2_ATSfunbodyseq (out, ind, ins) = let // val-ATSfunbodyseq (inss) = ins.instr_node // in emit2_instrlst (out, ind, inss) end // end of [emit2_ATS2funbodyseq] (* ****** ****** *) implement emit2_ATSINSmove_con1 (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_con1_ofs (_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_con1 (inss) = ins0.instr_node // val-list_cons (ins, inss) = inss val-ATSINSmove_con1_new (tmp, _) = ins.instr_node // var opt: tokenopt = None() // val inss = ( case+ inss of | list_nil () => inss | list_cons (ins, inss2) => ( case+ ins.instr_node of | ATSINSstore_con1_tag (tmp, tag) => let val () = opt := Some(tag) in inss2 end // end of [ATSINSstore_con1_tag] | _ (*non-ATSINSstore_con1_tag*) => inss ) ) : instrlst // val d0es = getarglst (inss) val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_LPAREN (out) val () = ( case+ opt of | None () => () | Some (tag) => emit_PMVint (out, tag) ) : void // end of [val] val () = ( case+ opt of | None _ => emit_d0explst (out, d0es) | Some _ => emit_d0explst_1 (out, d0es) ) : void // end of [val] // val ntup = ( case+ opt of | None _ => list_length(d0es) | Some _ => list_length(d0es) + 1 ) : int (* end of [val] *) // val () = if ntup = 1 then emit_text(out, ", )") else emit_RPAREN(out) // end of [if] // in // nothing end // end of [emit2_ATSINSmove_con1] (* ****** ****** *) implement emit2_ATSINSmove_boxrec (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of // | list_nil() => list_nil () // | list_cons(ins, inss) => let val-ATSINSstore_boxrec_ofs(_, _, _, d0e) = ins.instr_node val d0es = getarglst(inss) in list_cons (d0e, d0es) end // end of [list_cons] // ) (* end of [getarglst] *) // val- ATSINSmove_boxrec(inss) = ins0.instr_node // val- list_cons(ins, inss) = inss val- ATSINSmove_boxrec_new(tmp, _) = ins.instr_node // val d0es = getarglst (inss) // val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) // val () = ( if list_is_sing(d0es) then emit_text(out, ", )") else emit_RPAREN (out) // end of [if] ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_boxrec] (* ****** ****** *) implement emit2_ATSINSmove_delay (out, ind, ins0) = let // val-ATSINSmove_delay(tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc(out, ind) val () = emit_tmpvar(out, tmp) // val () = emit_text(out, " = [") // val () = ( emit_int(out, 0); emit_text(out, ", "); emit_d0exp(out, thunk) ) (* end of [val] *) val ((*closing*)) = emit_text(out, "]") // in // nothing end // end of [emit2_ATSINSmove_delay] (* ****** ****** *) implement emit2_ATSINSmove_lazyeval (out, ind, ins0) = let // val- ATSINSmove_lazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) val () = ( emit_text(out, "ATSPMVlazyval_eval("); emit_d0exp(out, lazyval); emit_text(out, "); ") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_lazyeval] (* ****** ****** *) implement emit2_ATSINSmove_ldelay (out, ind, ins0) = let // val- ATSINSmove_ldelay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc (out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = "); emit_d0exp(out, thunk) ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_ldelay] (* ****** ****** *) implement emit2_ATSINSmove_llazyeval (out, ind, ins0) = let // val- ATSINSmove_llazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVllazyval_eval("); emit_d0exp (out, lazyval); emit_text (out, ")") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_llazyeval] (* ****** ****** *) // #define ATSEXTCODE_BEG "######\n#ATSextcode_beg()\n######" #define ATSEXTCODE_END "######\n#ATSextcode_end()\n######" // (* ****** ****** *) implement emit_d0ecl (out, d0c0) = let in // case+ d0c0.d0ecl_node of // | D0Cinclude _ => () // | D0Cifdef _ => () | D0Cifndef _ => () // | D0Ctypedef (id, def) => typedef_insert (id.i0dex_sym, def) // | D0Cassume (id) => { val () = emit_ENDL (out) val () = emit_text (out, "#ATSassume(") val () = ( emit_i0de (out, id); emit_text (out, ")\n") ) (* end of [val] *) } // | D0Cdyncst_mac _ => () | D0Cdyncst_extfun _ => () | D0Cdyncst_valdec _ => () | D0Cdyncst_valimp _ => () // | D0Cstatmp (tmp, opt) => { val () = emit_ENDL (out) val () = the_statmpdeclst_insert (d0c0) val () = ( case+ opt of | Some _ => () | None () => emit_text(out, "#") ) (* end of [val] *) val () = ( emit_tmpvar (out, tmp); emit_text (out, " = None\n") ) (* end of [val] *) } (* end of [D0Cstatmp] *) // | D0Cextcode (toks) => { val () = emit_ENDL (out) val () = emit_text (out, ATSEXTCODE_BEG) val () = emit_extcode (out, toks) // HX: verbatim output val () = emit_text (out, ATSEXTCODE_END) val ((*void*)) = emit_newline (out) } (* end of [D0Cextcode] *) // | D0Cfundecl (fk, f0d) => emit_f0decl (out, f0d) // | D0Cclosurerize ( fl, env, arg, res ) => emit_closurerize (out, fl, env, arg, res) // | D0Cdynloadflag_init (flag) => ( // // HX-2015-05-22: // it is skipped as Python does not have a link-time! // ) (* end of [D0Cdynloadflag_init] *) | D0Cdynloadflag_minit (flag) => { val () = emit_ENDL (out) val () = ( emit_tmpvar (out, flag); emit_text (out, " = 0\n") ) (* end of [val] *) } (* end of [D0Cdynloadflag_minit] *) // | D0Cdynexn_dec(idexn) => ( emit_text(out, "## dynexn_dec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_dec] *) | D0Cdynexn_extdec(idexn) => ( emit_text(out, "## dynexn_extdec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_extdec] *) | D0Cdynexn_initize(idexn, fullname) => ( emit_text(out, "## dynexn_initize("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_initize] *) // end // end of [emit_d0ecl] (* ****** ****** *) // extern fun emit2_tmpdec (out: FILEref, ind: int, td: tmpdec) : void extern fun emit2_tmpdeclst (out: FILEref, ind: int, tds: tmpdeclst) : void // (* ****** ****** *) implement emit_tmpdec (out, td) = emit2_tmpdec (out, 0(*ind*), td) // implement emit2_tmpdec (out, ind, td) = let in // case+ td.tmpdec_node of // | TMPDECnone (tmp) => { val () = emit_nspc (out, ind) val () = (emit_SHARP (out); emit_tmpvar (out, tmp)) } | TMPDECsome (tmp, s0e) => { val () = emit_nspc (out, ind) val () = (emit_tmpvar (out, tmp); emit_text (out, " = None")) } end // end of [emit2_tmpdec] // (* ****** ****** *) implement emit2_tmpdeclst ( out, ind, tds ) = ( // case+ tds of | list_nil () => () | list_cons (td, tds) => { val () = emit2_tmpdec (out, ind, td) val () = emit_ENDL (out) val () = emit2_tmpdeclst (out, ind, tds) } // ) (* end of [emit2_tmpdeclst] *) (* ****** ****** *) // extern fun emit_branchseq (out: FILEref, ins0: instr): void extern fun emit_branchseqlst (out: FILEref, inss: instrlst): void // extern fun emit_fundef_nonlocal (out: FILEref): void // (* ****** ****** *) local fun auxlst ( out: FILEref, inss: instrlst ) : void = let // val inss = instrlst_skip_linepragma (inss) // val-list_cons (ins, inss) = inss val-ATSINSlab (lab) = ins.instr_node // val () = emit_nspc (out, 2) val () = emit_text (out, "def") val () = emit_SPACE (out) val () = emit_label (out, lab) val () = emit_text (out, "():\n") // val () = emit_fundef_nonlocal (out) // val () = emit_nspc (out, 4) val () = emit_text (out, "tmplab_py = 0\n") // in auxlst2 (out, lab, inss) end (* end of [auxlst] *) and auxlst2 ( out: FILEref, lab: label, inss: instrlst ) : void = let in // case+ inss of // | list_nil ((*none*)) => { val () = emit_nspc (out, 4) val () = emit_text (out, "return\n") } (* end of [list_nil] *) // | list_cons (ins1, inss2) => ( case ins1.instr_node of | ATSINSlab (lab) => { val () = emit_nspc (out, 4) val () = emit_label (out, lab) val () = emit_text (out, "()\n") val () = emit_nspc (out, 4) val () = emit_text (out, "return\n") val () = auxlst (out, inss) } | _ (*non-ATSINSlab*) => { val () = ( emit2_instr (out, 4, ins1); emit_ENDL (out) ) (* end of [val] *) val () = auxlst2 (out, lab, inss2) } (* end of [non-ATSINSlab] *) ) (* end of [list_cons] *) // end // (* end of [auxlst2] *) in (* in-of-local *) implement emit_branchseq (out, ins0) = let // val-ATSbranchseq (inss) = ins0.instr_node // in auxlst (out, inss) end // end of [emit_branchseq] end // end of [local] (* ****** ****** *) fun emit_branchseqlst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins, inss) => { val () = emit_branchseq (out, ins) val () = emit_branchseqlst (out, inss) } ) (* end of [emit_branchseqlst] *) (* ****** ****** *) implement emit_fundef_nonlocal (out) = () where { // val f0as = the_f0arglst_get () val () = emit_f0arglst_nonlocal (out, f0as) // val tmpdecs = the_tmpdeclst_get () val () = emit_tmpdeclst_nonlocal (out, tmpdecs) // val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "nonlocal funlab_py, tmplab_py\n") // val inss_caseof = the_caseofseqlst_get () val () = emit_mbranchlst_nonlocal(out, inss_caseof) // } // end of [emit_fundef_nonlocal] (* ****** ****** *) // extern fun emit_caseofseq (out: FILEref, ins0: instr): void extern fun emit_caseofseqlst (out: FILEref, inss: instrlst): void // (* ****** ****** *) fun emit_caseofseq ( out: FILEref, ins0: instr ) : void = let // val-ATScaseofseq(inss) = ins0.instr_node // val tls = caseofseq_get_tmplablst (ins0) val ((*update*)) = the_branchlablst_set (tls) // in emit_branchseqlst (out, inss) end // end of [emit_caseofseq] (* ****** ****** *) fun emit_caseofseqlst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins, inss) => { val () = emit_caseofseq (out, ins) val () = emit_caseofseqlst (out, inss) } ) (* end of [emit_caseofseqlst] *) (* ****** ****** *) // extern fun emit_f0arg : emit_type (f0arg) extern fun emit_f0marg : emit_type (f0marg) extern fun emit_f0head : emit_type (f0head) // extern fun emit_f0body : emit_type (f0body) extern fun emit_f0body_0 : emit_type (f0body) extern fun emit_f0body_tlcal : emit_type (f0body) extern fun emit_f0body_tlcal2 : emit_type (f0body) // (* ****** ****** *) implement emit_f0arg (out, f0a) = let in // case+ f0a.f0arg_node of // | F0ARGnone _ => emit_text (out, "__NONE__") | F0ARGsome (arg, s0e) => emit_tmpvar (out, arg) // end // end of [emit_f0arg] (* ****** ****** *) implement emit_f0marg (out, f0ma) = let // fun loop ( out: FILEref, f0as: f0arglst, i: int ) : void = ( case+ f0as of | list_nil () => () | list_cons (f0a, f0as) => let val () = if i > 0 then emit_text (out, ", ") // end of [val] in emit_f0arg (out, f0a); loop (out, f0as, i+1) end // end of [list_cons] ) // in loop (out, f0ma.f0marg_node, 0) end // end of [emit_f0marg] (* ****** ****** *) implement emit_f0head (out, fhd) = let // val f0as = f0head_get_f0arglst (fhd) // val () = the_f0arglst_set (f0as) // in // case+ fhd.f0head_node of | F0HEAD (fid, f0ma, res) => { val () = emit_tmpvar (out, fid) val () = emit_LPAREN (out) val () = emit_f0marg (out, f0ma) val () = emit_RPAREN (out) val () = emit_text (out, ":") } // end // end of [emit_f0head] (* ****** ****** *) implement emit_f0body (out, fbody) = let // val knd = f0body_classify (fbody) (* val () = println! ("emit_f0body: knd = ", knd) *) // val tmpdecs = f0body_get_tmpdeclst(fbody) val inss_body = f0body_get_bdinstrlst(fbody) val inss_caseof = f0body_collect_caseof(fbody) // val () = the_tmpdeclst_set (tmpdecs) val () = the_funbodylst_set (inss_body) val () = the_caseofseqlst_set (inss_caseof) // val () = emit_tmpdeclst_initize (out, tmpdecs) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "funlab_py = None\n") val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "tmplab_py = None\n") // val () = emit_mbranchlst_initize(out, inss_caseof) // val () = emit_caseofseqlst (out, inss_caseof) val () = emit_branchmaplst (out, inss_caseof) // in // case+ knd of | 0 => emit_f0body_0 (out, fbody) | 1 => emit_f0body_tlcal (out, fbody) | 2 => emit_f0body_tlcal2 (out, fbody) | _ => let val () = assertloc(false) in (*nothing*) end // end // end of [emit_f0body] (* ****** ****** *) implement emit_f0body_0 (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => let val-list_cons (ins1, inss2) = inss1 val () = emit2_ATSfunbodyseq (out, 2(*ind*), ins0) val () = emit2_instr_ln (out, 2(*ind*), ins1) in auxlst (out, inss2) end // end of [list_cons] // ) (* end of [auxlst] *) // in // case+ fbody.f0body_node of // | F0BODY (tds, inss) => auxlst (out, inss) // end // end of [emit_f0body_0] (* ****** ****** *) implement emit_f0body_tlcal (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => let val-list_cons (ins1, inss2) = inss1 val () = emit2_ATSfunbodyseq (out, 4(*ind*), ins0) val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "if (funlab_py == 0): break\n") val () = emit2_instr_ln (out, 2(*ind*), ins1) in auxlst (out, inss2) end // end of [list_cons] // ) (* end of [auxlst] *) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "while(1):\n") val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "funlab_py = 0\n") // val () = ( case+ fbody.f0body_node of // | F0BODY (tds, inss) => auxlst (out, inss) // ) // in // nothing end // end of [emit_f0body_tlcal] (* ****** ****** *) // extern fun emit_mfundef_initize (out: FILEref, inss: instrlst): void // implement emit_mfundef_initize (out, inss) = let // fun auxlst ( out: FILEref, xs: instrlst, i: int ) : void = ( case+ xs of | list_nil () => () | list_cons (x, xs) => let val fl = funbodyseq_get_funlab (x) val () = if i >= 2 then emit_text (out, ", ") // end of [if] val () = emit_int (out, i) val () = emit_text (out, ": ") val () = emit_label (out, fl) val-list_cons (_, xs) = xs in auxlst (out, xs, i+1) end // end of [list_cons] ) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "mfundef = { ") val () = auxlst (out, inss, 1) val () = emit_text (out, " }\n") // in // nothing end // end of [emit_mfundef_initize] // (* ****** ****** *) // extern fun emit_the_funbodylst (out: FILEref): void // implement emit_the_funbodylst (out) = let // fun auxfun ( out: FILEref, ins0: instr ) : void = let // val-ATSfunbodyseq(inss) = ins0.instr_node // val-list_cons (ins1, inss) = inss val-ATSINSflab (fl) = ins1.instr_node // val () = emit_nspc (out, 2) val () = emit_text (out, "def") val () = emit_SPACE (out) val () = emit_label (out, fl) val () = emit_text (out, "():\n") // val () = emit_fundef_nonlocal (out) // val () = emit_nspc (out, 4) val () = emit_text (out, "funlab_py = 0\n") val () = emit2_instrlst (out, 4(*ind*), inss) // in // nothing end // end of [auxfun] // fun auxlst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons _ => let val-list_cons (ins0, inss) = inss val-list_cons (ins1, inss) = inss val () = auxfun (out, ins0) val () = emit2_instr_newline (out, 4(*ind*), ins1) in auxlst (out, inss) end // end of [auxlst] ) (* end of [auxlst] *) // val inss_body = the_funbodylst_get() // val () = auxlst (out, inss_body) val () = emit_mfundef_initize (out, inss_body) // in // nothing end // end of [emit_the_funbodylst] // (* ****** ****** *) implement emit_f0body_tlcal2 (out, fbody) = let // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "tmpret_py = None\n") // val () = emit_the_funbodylst (out) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "funlab_py = 1\n") val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "while(1):\n") val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "tmpret_py = mfundef.get(funlab_py)()\n") val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "if (funlab_py == 0): break\n") val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "return tmpret_py\n") // in // nothing end // end of [emit_f0body_tlcal2] (* ****** ****** *) implement emit_f0decl (out, fdec) = let in // case+ fdec.f0decl_node of | F0DECLnone (fhd) => () | F0DECLsome (fhd, fbody) => { val () = emit_ENDL (out) val () = emit_text (out, "def") val () = emit_SPACE (out) val () = emit_f0head (out, fhd) val () = emit_ENDL (out) val () = emit_f0body (out, fbody) val () = emit_newline (out) } (* end of [F0DECLsome] *) // end // end of [emit_f0decl] (* ****** ****** *) implement emit_toplevel (out, d0cs) = let // fun loop ( out: FILEref, d0cs: d0eclist ) : void = ( // case+ d0cs of | list_nil () => () | list_cons (d0c, d0cs) => let val () = emit_d0ecl (out, d0c) // end of [val] in loop (out, d0cs) end // end of [list_cons] // ) (* end of [loop] *) // in loop (out, d0cs) end // end of [emit_toplevel] (* ****** ****** *) (* end of [atscc2py3_emit2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/DATS/atscc2py3_main.dats0000644000175000017500000002604413431250607025122 0ustar brandonbrandon(* ****** ****** *) // // Atscc2py3: // from ATS to Python // (* ****** ****** *) // // HX-2014-08-04: start // HX-2015-05-23: restructure // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDIO = "{$PATSLIBATSLIBC}/SATS/stdio.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_parsing.sats" // (* ****** ****** *) // val () = catsparse_all_dynload() where { extern fun catsparse_all_dynload(): void = "ext#" } (* end of [val] *) // (* ****** ****** *) #dynload "./atscc2py3_emit.dats" #dynload "./atscc2py3_emit2.dats" (* ****** ****** *) // datatype comarg = COMARGkey of (int, string) // typedef comarglst = List0(comarg) // (* ****** ****** *) datatype waitkind = | WTKnone of () | WTKinput of () | WTKoutput of () // -o / --output // end of [waitkind] (* ****** ****** *) datatype OUTCHAN = | OUTCHANref of (FILEref) | OUTCHANptr of (FILEref) // end of [OUTCHAN] fun outchan_get_fileref (x: OUTCHAN): FILEref = ( // case+ x of | OUTCHANref (filr) => filr | OUTCHANptr (filp) => filp // ) (* end of [outchan_get_fileref] *) (* ****** ****** *) typedef cmdstate = @{ comarg0= comarg , ncomarg= int // number of arguments , waitkind= waitkind // number of processed input files; , ninputfile= int // waiting for STDIN if it is 0 , outchan= OUTCHAN // current output channel , nerror= int // number of accumulated errors } (* end of [cmdstate] *) (* ****** ****** *) fun cmdstate_set_outchan ( state: &cmdstate >> _, chan_new: OUTCHAN ) : void = let // val chan_old = state.outchan val ((*void*)) = state.outchan := chan_new // in // case+ chan_old of | OUTCHANref(filr) => () | OUTCHANptr(filp) => let val err = $STDIO.fclose0(filp) in (*nothing*) end // end of [OUTCHANptr] // end // end of [cmdstate_set_outchan] (* ****** ****** *) // extern fun atscc2py3_fileref (state: &cmdstate >> _, filr: FILEref): void // implement atscc2py3_fileref (state, inp) = let // val out = outchan_get_fileref(state.outchan) // val d0cs = parse_from_fileref(inp) // val () = emit_time_stamp(out) // val ((*void*)) = emit_toplevel(out, d0cs) // val () = emit_text (out, "######\n") val () = emit_text (out, "##\n") val () = emit_text (out, "## end-of-compilation-unit") val () = emit_text (out, "\n##") val () = emit_text (out, "\n######") // val ((*flusing*)) = emit_newline(out) // in // nothing end // end of [atscc2py3_fileref] (* ****** ****** *) // macdef fopen = $STDIO.fopen // extern fun atscc2py3_basename (state: &cmdstate >> _, fname: string): void extern fun atscc2py3_basename_ (state: &cmdstate >> _, fname: string): void // implement atscc2py3_basename (state, fname) = ( // case+ fname of | "-" => let val inp = stdin_ref in atscc2py3_fileref(state, inp) end // end of [stdin] | _(*fname*) => atscc2py3_basename_(state, fname) // end of [non-stdin] ) (* end of [atscc2py3_basename] *) // implement atscc2py3_basename_ (state, fname) = let // val inp = fopen(fname, file_mode_r) val p_inp = $STDIO.ptrcast(inp) // in // if p_inp > 0 then fileref_close(inp) where { // val inp = $UNSAFE.castvwtp0{FILEref}(inp) val () = the_filename_push(filename_make(fname)) // val () = atscc2py3_fileref(state, inp) // } (* end of [then] *) else let // prval ( // freed ) = $STDIO.FILEptr_free_null(inp) val ((*void*)) = (state.nerror := state.nerror + 1) // in // nothing end // end of [else] // end // end of [atscc2py3_basename] (* ****** ****** *) fun cmdstate_set_outchan_basename ( state: &cmdstate >> _, basename: string ) : void = let // val filp = $STDIO.fopen(basename, file_mode_w) val p0 = $STDIO.ptrcast(filp) // (* val () = println! ("cmdstate_set_outchan_basename: p0 = ", p0) *) // in // if p0 > 0 then let val filp = $UNSAFE.castvwtp0{FILEref}(filp) in cmdstate_set_outchan(state, OUTCHANptr(filp)) end // end of [then] else let prval ( // freed ) = $STDIO.FILEptr_free_null (filp) val ((*void*)) = state.nerror := state.nerror + 1 in cmdstate_set_outchan (state, OUTCHANref(stderr_ref)) end // end of [else] // end // end of [cmdstate_set_outchan_basename] (* ****** ****** *) // fn isinwait (state: cmdstate): bool = ( case+ state.waitkind of WTKinput () => true | _ => false ) (* end of [isinwait] *) // fn isoutwait (state: cmdstate): bool = ( case+ state.waitkind of WTKoutput () => true | _ => false ) (* end of [isoutwait] *) // (* ****** ****** *) // extern fun comarg_warning (msg: string): void // implement comarg_warning (msg) = { val () = prerr ("waring(ATS)") val () = prerr (": unrecognized command line argument [") val () = prerr (msg) val () = prerr ("] is ignored.") val () = prerr_newline ((*void*)) } (* end of [comarg_warning] *) // (* ****** ****** *) fun atscc2py3_usage (cmd: string): void = { // val () = println! ( "Usage: ", cmd, " ... \n" ) val () = println! ( "where each is of one of the following forms:\n" ) // val () = println! (" -i : for processing ") val () = println! (" --input : for processing ") // val () = println! (" -o : output into ") val () = println! (" --output : output into ") // val () = println! (" -h : for printing out this help usage") val () = println! (" --help : for printing out this help usage") // } (* end of [atscc2py3_usage] *) (* ****** ****** *) fun process_cmdline ( state: &cmdstate, arglst: comarglst ) : void = let in // case+ arglst of // | list_nil () => let val nif = state.ninputfile val wait0 = ( case+ 0 of | _ when nif < 0 => true | _ when nif = 0 => isinwait (state) | _ (* nif > 0 *) => false ) : bool // end of [val] in if wait0 then ( if state.ncomarg = 0 then atscc2py3_usage ("atscc2py3") else atscc2py3_fileref (state, stdin_ref) ) (* end of [if] *) end // end of [list_nil] // | list_cons (arg, arglst) => let val () = state.ncomarg := state.ncomarg + 1 // end of [val] in process_cmdline2 (state, arg, arglst) end // end of [list_cons] // end // end of [process_cmdline] and process_cmdline2 ( state: &cmdstate, arg: comarg, arglst: comarglst ) : void = let in // case+ arg of // | _ when isinwait(state) => let val nif = state.ninputfile in case+ arg of | COMARGkey (1, key) when nif > 0 => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) when nif > 0 => process_cmdline2_COMARGkey2 (state, arglst, key) | COMARGkey (_, fname) => let val () = state.ninputfile := nif + 1 val () = atscc2py3_basename (state, fname(*input*)) in process_cmdline (state, arglst) end // end of [COMARGkey] end // end of [_ when isinpwait] // | _ when isoutwait(state) => let // val COMARGkey (_, fname) = arg // val () = cmdstate_set_outchan_basename (state, fname) // val () = state.waitkind := WTKnone () // in process_cmdline (state, arglst) end // end of [_ when isoutwait] // | COMARGkey (1, key) => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) => process_cmdline2_COMARGkey2 (state, arglst, key) // | COMARGkey (_, key) => let val () = comarg_warning (key) val () = state.waitkind := WTKnone () in process_cmdline (state, arglst) end // end of [COMARGkey] // end // end of [process_cmdline2] and process_cmdline2_COMARGkey1 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = ( // case+ key of // | "-i" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [-i] *) // | "-o" => { val () = state.waitkind := WTKoutput () } (* end of [-o] *) // | "-h" => { val () = atscc2py3_usage ("atscc2py3") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [-h] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey1] and process_cmdline2_COMARGkey2 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = state.waitkind := WTKnone () // val () = ( // case+ key of // | "--input" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [--input] *) // | "--output" => { val () = state.waitkind := WTKoutput () } (* end of [--output] *) // | "--help" => { val () = atscc2py3_usage ("atscc2py3") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [--help] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey2] (* ****** ****** *) // extern fun comarg_parse (string):<> comarg // extern fun comarglst_parse{n:nat} (argc: int n, argv: !argv(n)): list (comarg, n) // end of [comarglst_parse] // (* ****** ****** *) implement comarg_parse (str) = let // fun loop {n,i:nat | i <= n} .. ( str: string n, n: int n, i: int i ) :<> comarg = ( if i < n then ( if (str[i] != '-') then COMARGkey (i, str) else loop (str, n, i+1) ) else COMARGkey (n, str) ) (* end of [if] *) // end of [loop] // val str = g1ofg0(str) val len = string_length (str) // in loop (str, sz2i(len), 0) end // end of [comarg_parse] (* ****** ****** *) implement comarglst_parse {n}(argc, argv) = let // fun loop {i,j:nat | i <= n} .. ( argv: !argv(n), i: int(i), res: list_vt(comarg, j) ) : list_vt (comarg, n-i+j) = ( if i < argc then let val res = list_vt_cons (comarg_parse (argv[i]), res) in loop (argv, i+1, res) end // end of [then] else res // end of [else] // end of [if] ) (* end of [loop] *) // val res = loop (argv, 0, list_vt_nil()) // in list_vt2t (list_vt_reverse (res)) end // end of [comarglst_parse] (* ****** ****** *) implement main0 ( argc, argv ) = { // val () = prerrln! ( "Hello from atscc2py3!" ) (* end of [val] *) // // val arglst = comarglst_parse(argc, argv) // val+list_cons(arg0, arglst) = arglst // var state = @{ comarg0= arg0 , ncomarg= 0 // counting from 0 , waitkind= WTKnone(*void*) // number of prcessed , ninputfile= ~1 // input files , outchan= OUTCHANref(stdout_ref) , nerror= 0 // number of accumulated errors } : cmdstate // end of [var] // val () = process_cmdline(state, arglst) // val () = if state.nerror = 1 then let val () = println! ("atscc2py3: there is a reported error.") in // nothing end // end of [then] else if state.nerror >= 2 then let val () = println! ("atscc2py3: there are some reported errors.") in // nothing end // end of [then] else () // end of [else] // (* val () = prerrln! ("Good-bye from atscc2py3!") *) // } (* end of [main0] *) (* ****** ****** *) (* end of [atscc2py3_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/DATS/.keeper0000644000175000017500000000000013431250607022662 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/DATS/atscc2py3_emit.dats0000644000175000017500000003221213431250607025126 0ustar brandonbrandon(* ****** ****** *) // // Atscc2py3: // from ATS to Python3 // (* ****** ****** *) // // HX-2014-08-04: start // HX-2015-05-23: restructure // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) local // staload TM = "libats/libc/SATS/time.sats" // typedef time_t = $TM.time_t // in (* in-of-local *) implement emit_time_stamp (out) = let // var tm: time_t val () = tm := $TM.time_get() val (pfopt | p_tm) = $TM.localtime(tm) // val () = emit_text(out, "######\n"); val () = emit_text(out, "##\n"); val () = emit_text(out, "## The Python3 code\n") val () = emit_text(out, "## is generated from ATS source by atscc2py3\n") val () = emit_text(out, "## The starting compilation time is: ") // val () = if p_tm > 0 then let // prval Some_v @(pf1, fpf1) = pfopt // val tm_min = $TM.tm_get_min (!p_tm) val tm_hour = $TM.tm_get_hour (!p_tm) val tm_mday = $TM.tm_get_mday (!p_tm) val tm_mon = 1 + $TM.tm_get_mon (!p_tm) val tm_year = 1900 + $TM.tm_get_year (!p_tm) // prval ((*returned*)) = fpf1 (pf1) // in $extfcall ( void , "fprintf" , out, "%i-%i-%i: %2ih:%2im\n", tm_year, tm_mon, tm_mday, tm_hour, tm_min ) end // end of [then] else let prval None_v() = pfopt in emit_text(out, "**TIME-ERROR**\n") end // end of [else] // val () = emit_text(out, "##\n") val () = emit_text(out, "######\n") // in // emit_newline(out) end // end of [emit_time_stamp] end // end of [local] (* ****** ****** *) // implement emit_PMVint (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVint] // implement emit_PMVintrep (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVintrep] // (* ****** ****** *) // implement emit_PMVbool (out, tfv) = ( emit_text (out, if tfv then "True" else "False") ) (* end of [emit_PMVbool] *) // (* ****** ****** *) implement emit_PMVfloat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVfloat] (* ****** ****** *) implement emit_PMVstring (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVstring] (* ****** ****** *) implement emit_PMVi0nt (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVi0nt] (* ****** ****** *) implement emit_PMVf0loat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVf0loat] (* ****** ****** *) // implement emit_PMVempty (out, _) = emit_text (out, "None") // implement emit_PMVextval (out, toks) = emit_tokenlst (out, toks) // (* ****** ****** *) // implement emit_PMVfunlab (out, flab) = emit_label (out, flab) // (* ****** ****** *) implement emit_PMVcfunlab (out, fl, d0es) = { // val () = emit_label (out, fl) val () = emit_text (out, "__closurerize") // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_PMVcfunlab] *) (* ****** ****** *) implement emit_CSTSPmyloc (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_CSTSPmyloc] (* ****** ****** *) // extern fun emit_fname_d0exp : (FILEref, string, d0exp) -> void extern fun emit_fname_d0exp2 : (FILEref, string, d0exp, d0exp) -> void // implement emit_fname_d0exp (out, fname, d0e) = { // val () = emit_text (out, fname) val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp] *) // implement emit_fname_d0exp2 (out, fname, d0e1, d0e2) = { // val () = emit_text (out, fname) // val () = emit_LPAREN (out) val () = ( emit_d0exp (out, d0e1); emit_text (out, ", "); emit_d0exp (out, d0e2) ) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp2] *) // (* ****** ****** *) // implement emit_ATSCKiseqz(out, d0e) = emit_fname_d0exp(out, "ATSCKiseqz", d0e) implement emit_ATSCKisneqz(out, d0e) = emit_fname_d0exp(out, "ATSCKisneqz", d0e) // (* ****** ****** *) // implement emit_ATSCKptriscons(out, d0e) = emit_fname_d0exp(out, "ATSCKptriscons", d0e) implement emit_ATSCKptrisnull(out, d0e) = emit_fname_d0exp(out, "ATSCKptrisnull", d0e) // (* ****** ****** *) // implement emit_ATSCKpat_int (out, d0e, i0) = emit_fname_d0exp2 (out, "ATSCKpat_int", d0e, i0) implement emit_ATSCKpat_bool (out, d0e, b0) = emit_fname_d0exp2 (out, "ATSCKpat_bool", d0e, b0) implement emit_ATSCKpat_string (out, d0e, s0) = emit_fname_d0exp2 (out, "ATSCKpat_string", d0e, s0) // (* ****** ****** *) implement emit_ATSCKpat_con0 (out, d0e, ctag) = { val () = emit_text (out, "ATSCKpat_con0(") val () = ( emit_d0exp (out, d0e); emit_text (out, ", "); emit_int (out, ctag); emit_RPAREN (out) ) (* end of [val] *) } (* end of [emit_ATSCKpat_con0] *) implement emit_ATSCKpat_con1 (out, d0e, ctag) = { val () = emit_text (out, "ATSCKpat_con1(") val () = ( emit_d0exp (out, d0e); emit_text (out, ", "); emit_int (out, ctag); emit_RPAREN (out) ) (* end of [val] *) } (* end of [emit_ATSCKpat_con1] *) (* ****** ****** *) // implement emit_tmpvar (out, tmp) = emit_i0de (out, tmp) // (* ****** ****** *) implement emit_d0exp (out, d0e0) = let in // case+ d0e0.d0exp_node of // | D0Eide (tmp) => { val () = emit_tmpvar (out, tmp) } // | D0Eappid (fid, d0es) => { val () = emit_i0de (out, fid) val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } | D0Eappexp (d0e, d0es) => { val () = emit_d0exp (out, d0e) val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } // | D0Elist (d0es) => { val () = emit_text (out, "D0Elist") val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } // | ATSPMVint (int) => emit_PMVint (out, int) | ATSPMVintrep (int) => emit_PMVintrep (out, int) // | ATSPMVbool (tfv) => emit_PMVbool (out, tfv) // | ATSPMVfloat (flt) => emit_PMVfloat (out, flt) // | ATSPMVstring (str) => emit_PMVstring (out, str) // | ATSPMVi0nt (tok) => emit_PMVi0nt (out, tok) | ATSPMVf0loat (tok) => emit_PMVfloat (out, tok) // | ATSPMVempty (_) => emit_PMVempty (out, 0) | ATSPMVextval (toklst) => emit_PMVextval (out, toklst) // | ATSPMVrefarg0 (d0e) => emit_d0exp (out, d0e) | ATSPMVrefarg1 (d0e) => emit_d0exp (out, d0e) // | ATSPMVfunlab (fl) => emit_PMVfunlab (out, fl) | ATSPMVcfunlab (knd, fl, d0es) => emit_PMVcfunlab (out, fl, d0es) // | ATSPMVcastfn (_(*fid*), _(*s0e*), arg) => emit_d0exp (out, arg) // | ATSCSTSPmyloc (tok) => emit_CSTSPmyloc (out, tok) // | ATSCKpat_int (d0e, int) => emit_ATSCKpat_int (out, d0e, int) | ATSCKpat_bool (d0e, bool) => emit_ATSCKpat_bool (out, d0e, bool) | ATSCKpat_string (d0e, string) => emit_ATSCKpat_string (out, d0e, string) // | ATSCKpat_con0 (d0e, ctag) => emit_ATSCKpat_con0 (out, d0e, ctag) | ATSCKpat_con1 (d0e, ctag) => emit_ATSCKpat_con1 (out, d0e, ctag) // | ATSCKiseqz(d0e) => emit_ATSCKiseqz (out, d0e) | ATSCKisneqz(d0e) => emit_ATSCKisneqz (out, d0e) | ATSCKptriscons(d0e) => emit_ATSCKptriscons (out, d0e) | ATSCKptrisnull(d0e) => emit_ATSCKptrisnull (out, d0e) // | ATSSELcon _ => emit_SELcon (out, d0e0) | ATSSELrecsin _ => emit_SELrecsin (out, d0e0) | ATSSELboxrec _ => emit_SELboxrec (out, d0e0) | ATSSELfltrec _ => emit_text (out, "ATSSELfltrec(...)") // | ATSextfcall (_fun, _arg) => { val () = emit_i0de (out, _fun) val () = emit_d0exparg (out, _arg) } (* end of [ATSextfcall] *) | ATSextmcall (_obj, _mtd, _arg) => { // val () = emit_d0exp (out, _obj) val () = emit_DOT (out) val () = emit_d0exp (out, _mtd) // val () = emit_d0exparg (out, _arg) // } (* end of [ATSextmcall] *) // | ATSfunclo_fun (d2e, _(*arg*), _(*res*)) => emit_d0exp (out, d2e) | ATSfunclo_clo (d2e, _(*arg*), _(*res*)) => ( emit_d0exp (out, d2e); emit_LBRACKET (out); emit_int (out, 0); emit_RBRACKET (out) ) (* end of [ATSfunclo_clo] *) // end // end of [emit_d0exp] (* ****** ****** *) local fun loop ( out: FILEref, d0es: d0explst, i: int ) : void = ( case+ d0es of | list_nil () => () | list_cons (d0e, d0es) => let val () = if i > 0 then emit_text (out, ", ") // end of [val] in emit_d0exp (out, d0e); loop (out, d0es, i+1) end // end of [list_cons] ) in (* in-of-local *) implement emit_d0explst (out, d0es) = loop (out, d0es, 0) implement emit_d0explst_1 (out, d0es) = loop (out, d0es, 1) end // end of [local] (* ****** ****** *) implement emit_d0exparg (out, d0es) = { // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_d0exparg] *) (* ****** ****** *) // extern fun tyrec_labsel (tyrec: tyrec, lab: symbol): int // implement tyrec_labsel (tyrec, lab) = let // fun loop ( xs: tyfldlst, i: int ) : int = ( case+ xs of | list_cons (x, xs) => let val TYFLD (id, s0e) = x.tyfld_node in if lab = id.i0dex_sym then i else loop (xs, i+1) end // end of [list_cons | list_nil ((*void*)) => ~1(*error*) ) // in loop (tyrec.tyrec_node, 0) end // end of [tyrec_labsel] // (* ****** ****** *) implement emit_SELcon (out, d0e) = let // val-ATSSELcon (d0rec, s0e, id) = d0e.d0exp_node val-S0Eide (name) = s0e.s0exp_node val-~Some_vt (s0rec) = typedef_search_opt (name) // val index = tyrec_labsel (s0rec, id.i0dex_sym) // val () = emit_d0exp (out, d0rec) // val () = emit_LBRACKET (out) val () = emit_int (out, index) val () = emit_RBRACKET (out) // in // nothing end // end of [emit_SELcon] (* ****** ****** *) implement emit_SELrecsin (out, d0e) = let // val-ATSSELrecsin (d0rec, s0e, id) = d0e.d0exp_node // in emit_d0exp (out, d0rec) end // end of [emit_SELrecsin] (* ****** ****** *) implement emit_SELboxrec (out, d0e) = let // val- ATSSELboxrec (d0rec, s0e, id) = d0e.d0exp_node // val-S0Eide(name) = s0e.s0exp_node val- ~Some_vt(s0rec) = typedef_search_opt (name) // val index = tyrec_labsel (s0rec, id.i0dex_sym) // val () = emit_d0exp (out, d0rec) // val () = emit_LBRACKET (out) val () = emit_int (out, index) val () = emit_RBRACKET (out) // in // nothing end // end of [emit_SELboxrec] (* ****** ****** *) // implement emit_COMMENT_line (out, tok) = emit_text (out, "#COMMENT_line(...)\n") // implement emit_COMMENT_block (out, tok) = emit_text (out, "#COMMENT_block(...)\n") // (* ****** ****** *) local fun aux0_arglst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "arg"); emit_int (out, i) ) (* end of [val] *) in aux0_arglst (out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_arglst] *) fun aux0_envlst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "env"); emit_int (out, i) ) (* end of [val] *) in aux0_envlst (out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_envlst] *) fun aux1_envlst ( out: FILEref , s0es: s0explst, i: int ) : int = ( case+ s0es of | list_nil () => (i) | list_cons (s0e, s0es) => let val () = if i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "cenv"); emit_LBRACKET (out); emit_int (out, i+1); emit_RBRACKET (out) ) (* end of [val] *) in aux1_envlst (out, s0es, i+1) end // end of [list_cons] ) (* end of [aux1_envlst] *) in (* in-of-local *) implement emit_closurerize ( out, fl, env, arg, res ) = let // val-S0Elist(s0es_env) = env.s0exp_node val-S0Elist(s0es_arg) = arg.s0exp_node // val () = emit_ENDL (out) val () = emit_text (out, "def ") val () = emit_label (out, fl) val () = emit_text (out, "__closurerize(") val () = aux0_envlst (out, s0es_env, 0, 0) val ((*closing*)) = emit_text (out, "):\n") // val () = emit_nspc (out, 2) val () = emit_text (out, "def ") val () = emit_label (out, fl) val () = emit_text (out, "__cfun(") val () = emit_text (out, "cenv") val () = aux0_arglst (out, s0es_arg, 1, 0) val () = emit_text (out, "): return ") val () = ( emit_label (out, fl); emit_LPAREN (out) ) val n0 = aux1_envlst (out, s0es_env, 0) val () = aux0_arglst (out, s0es_arg, n0, 0) val ((*closing*)) = emit_text (out, ")\n") // val () = emit_nspc (out, 2) val () = emit_text (out, "return (") val () = emit_label (out, fl) val () = emit_text (out, "__cfun, ") val () = aux0_envlst (out, s0es_env, 0, 0) val ((*closing*)) = emit_text (out, ")") // val () = emit_newline (out) // in // nothing end // end of [emit_closurerize] end // end of [local] (* ****** ****** *) (* end of [atscc2py3_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/Makefile0000644000175000017500000000216113431250607022325 0ustar brandonbrandon# # A simple Makefile # ###### MAKE=make ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### all:: ###### CATSPARSEMIT=./CATS-parsemit ###### SOURCES_DATS := SOURCES_DATS += DATS/atscc2py3_main.dats SOURCES_DATS += DATS/atscc2py3_emit.dats SOURCES_DATS += DATS/atscc2py3_emit2.dats SOURCES_SATS := SOURCES_SATS += $(CATSPARSEMIT)/SATS/catsparse.sats SOURCES_CATS := SOURCES_CATS += $(CATSPARSEMIT)/CATS/catsparse_all_dats.c ###### # all:: ; \ $(MAKE) -C CATS-parsemit all # ###### # all:: \ bin_atscc2py3 bin_atscc2py3: \ $(SOURCES_DATS); \ $(PATSCC) \ -DATS_MEMALLOC_GCBDW -O2 -o bin/atscc2py3 \ $(SOURCES_DATS) $(SOURCES_SATS) $(SOURCES_CATS) -lgc # ###### # npm:: bin_atscc2py3 npm:: ; $(CPF) catsparse_sats.c atscc2py3_*_dats.c npm/CATS/. # ###### CPF=cp -f RMF=rm -f ###### # testall:: all testall:: cleanall # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### # cleanall:: clean # cleanall:: ; $(RMF) ./bin/atscc2py3 cleanall:: ; $(RMF) ./npm/CATS/catsparse_sats.c cleanall:: ; $(RMF) ./npm/CATS/atscc2py3_*_dats.c # ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2py3/.keeper0000644000175000017500000000000013431250607022127 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/0000755000175000017500000000000013431250607020673 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/0000755000175000017500000000000013431250607022042 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/output/0000755000175000017500000000000013431250607023402 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/output/DATS/0000755000175000017500000000000013431250607024135 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/output/DATS/.keeper0000644000175000017500000000000013431250607025377 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/output/DATS/ML/0000755000175000017500000000000013431250607024445 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/output/DATS/ML/.keeper0000644000175000017500000000000013431250607025707 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/output/.keeper0000644000175000017500000000000013431250607024644 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/0000755000175000017500000000000013431250607022575 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/qlistref.dats0000644000175000017500000000117313431250607025305 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX: list-bsaed queue // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_qlistref_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #include "{$LIBATSCC}/DATS/qlistref.dats" // (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/intrange.dats0000644000175000017500000000157513431250607025271 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2016-07: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_intrange_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../basics_scm.sats" // (* ****** ****** *) // staload "./../SATS/bool.sats" staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" // staload "./../SATS/stream.sats" staload "./../SATS/stream_vt.sats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // staload "./../SATS/intrange.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/intrange.dats" // (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/list.dats0000644000175000017500000000423013431250607024424 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_scm.sats" // (* ****** ****** *) // staload "./../SATS/bool.sats" staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" staload "./../SATS/filebas.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" staload "./../SATS/SCMlist.sats" // (* ****** ****** *) // staload "./../SATS/stream_vt.sats" staload _ = "./../DATS/stream.dats" // staload "./../SATS/stream_vt.sats" staload _ = "./../DATS/stream_vt.dats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list.dats" // (* ****** ****** *) // implement {a}(*tmp*) print_list (xs) = fprint_list(stdout_get(), xs) // implement {a}(*tmp*) print_list_sep (xs, sep) = fprint_list_sep(stdout_get(), xs, sep) // (* ****** ****** *) // implement SCMlist2list_rev {a}(xs) = loop(xs, nil()) where { // fun loop ( xs: SCMlist(a), res: List0(a) ) : List0(a) = ( if SCMlist_is_nil(xs) then res else loop(SCMlist_tail(xs), list_cons(SCMlist_head(xs), res)) ) (* end of [loop] *) // } (* SCMlist2list_rev *) // (* ****** ****** *) implement SCMlist_oflist_rev{a}(xs) = let // fun aux ( xs: List(a), res: SCMlist(a) ) : SCMlist(a) = case+ xs of | list_nil() => res | list_cons(x, xs) => let val res = SCMlist_cons(x, res) in aux(xs, res) end // end of [list_cons] // in aux(xs, SCMlist_nil((*void*))) end // end of [SCMlist_oflist_rev] (* ****** ****** *) // implement list_sort_2 {a}{n}(xs, cmp) = let // val xs = SCMlist_oflist_rev{a}(xs) val ys = SCMlist_sort_2{a}(xs, lam(x1, x2) => ~cmp(x1, x2)) // in $UN.cast{list(a,n)}(SCMlist2list_rev(ys)) end // end of [list_sort_2] // (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/basics.dats0000644000175000017500000000162313431250607024720 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_basics_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_scm.sats" // (* ****** ****** *) // #staload "./../SATS/bool.sats" #staload "./../SATS/integer.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/basics.dats" // (* ****** ****** *) // implement gcompare_val_val (x, y) = $effmask_all(compare_int0_int0(x, y)) // (* ****** ****** *) // implement gcompare_val_val (x, y) = ( // if (x) then (if y then 0(*t/t*) else 1(*t/f*)) else (if y then ~1(*f/t*) else 0(*f/f*)) // ) (* gcompare_val_val *) // (* ****** ****** *) (* end of [basics.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/option.dats0000644000175000017500000000122713431250607024764 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_option_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/option.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/option.dats" // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/stream.dats0000644000175000017500000000167613431250607024757 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_stream_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../basics_scm.sats" (* ****** ****** *) // staload "./../SATS/bool.sats" staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" staload "./../SATS/reference.sats" // (* ****** ****** *) staload "./../SATS/stream.sats" (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #include "{$LIBATSCC}/DATS/stream.dats" // (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/reference.dats0000644000175000017500000000077513431250607025421 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_reference_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_scm.sats" // (* ****** ****** *) // staload "./../SATS/reference.sats" // (* ****** ****** *) (* end of [reference.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/SCMlist.dats0000644000175000017500000000161113431250607024767 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_SCMlist_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../basics_scm.sats" (* ****** ****** *) // staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" staload "./../SATS/filebas.sats" // (* ****** ****** *) staload "./../SATS/list.sats" staload "./../SATS/SCMlist.sats" (* ****** ****** *) // implement {a}(*tmp*) SCMlist_sort_1(xs) = SCMlist_sort_2 (xs, lam(x1, x2) => gcompare_val_val(x1, x2)) // (* ****** ****** *) (* end of [SCMlist.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/slistref.dats0000644000175000017500000000117313431250607025307 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX: list-bsaed stack // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_slistref_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #include "{$LIBATSCC}/DATS/slistref.dats" // (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/BUCS320/0000755000175000017500000000000013431250607023556 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025745 5ustar brandonbrandon././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.0000644000175000017500000000150713431250607030774 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2scmpre_BUCS320_GraphSearch_dfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../../../basics_scm.sats" // staload "./../../../SATS/bool.sats" staload "./../../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../../SATS/slistref.sats" // macdef slistref_insert = slistref_push macdef slistref_takeout_opt = slistref_pop_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.0000644000175000017500000000151613431250607030772 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2scmpre_BUCS320_GraphSearch_bfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../../../basics_scm.sats" // staload "./../../../SATS/bool.sats" staload "./../../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../../SATS/qlistref.sats" // macdef qlistref_insert = qlistref_enqueue macdef qlistref_takeout_opt = qlistref_dequeue_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/list_vt.dats0000644000175000017500000000140313431250607025134 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_scm.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list_vt.dats" // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/print.dats0000644000175000017500000000143013431250607024604 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_print_" // (* ****** ****** *) // staload "./../basics_scm.sats" // staload "./../SATS/print.sats" // (* ****** ****** *) // implement print_val = print_int implement print_val = print_bool implement print_val = print_double implement print_val = print_string // (* ****** ****** *) // implement fprint_val = fprint_int implement fprint_val = fprint_bool implement fprint_val = fprint_double implement fprint_val = fprint_string // (* ****** ****** *) (* end of [print.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/funarray.dats0000644000175000017500000000142713431250607025305 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_funarray_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // (* #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" *) // (* ****** ****** *) // #staload "./../SATS/funarray.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/funarray.dats" // (* ****** ****** *) (* end of [funarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/stream_vt.dats0000644000175000017500000000166513431250607025466 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" #define ATS_STATIC_PREFIX "_ats2scmpre_stream_vt_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_scm.sats" // (* ****** ****** *) // staload "./../SATS/bool.sats" staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" staload "./../SATS/list_vt.sats" // staload "./../SATS/reference.sats" // (* ****** ****** *) staload "./../SATS/stream.sats" staload "./../SATS/stream_vt.sats" (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #include "{$LIBATSCC}/DATS/stream_vt.dats" // (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/ML/0000755000175000017500000000000013431250607023105 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/ML/option0.dats0000644000175000017500000000130413431250607025350 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_ML_" #define ATS_STATIC_PREFIX "_ats2scmpre_ML_option0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_scm.sats" // (* ****** ****** *) // #staload "./../../SATS/ML/option0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/option0.dats" // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/ML/list0.dats0000644000175000017500000000202413431250607025013 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_ML_" #define ATS_STATIC_PREFIX "_ats2scmpre_ML_list0_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../../basics_scm.sats" // (* ****** ****** *) // staload "./../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../SATS/print.sats" staload "./../../SATS/filebas.sats" // (* ****** ****** *) // staload "./../../SATS/list.sats" staload "./../../SATS/ML/list0.sats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #include "{$LIBATSCC}/DATS/ML/list0.dats" // (* ****** ****** *) // implement {a}(*tmp*) print_list0 (xs) = fprint_list0(stdout_get(), xs) // implement {a}(*tmp*) print_list0_sep (xs, sep) = fprint_list0_sep(stdout_get(), xs, sep) // (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/DATS/ML/array0.dats0000644000175000017500000000152113431250607025157 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_ML_" #define ATS_STATIC_PREFIX "_ats2scmpre_ML_array0_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../../basics_scm.sats" // (* ****** ****** *) // staload "./../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../SATS/print.sats" staload "./../../SATS/filebas.sats" // (* ****** ****** *) // staload "./../../SATS/arrayref.sats" staload "./../../SATS/ML/array0.sats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #include "{$LIBATSCC}/DATS/ML/array0.dats" // (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/Makefile0000644000175000017500000000740513431250607023510 0ustar brandonbrandon# # For generating libatscc2scm # ###### PATSOPT=$(PATSHOME)/bin/patsopt ATSCC2SCM=$(PATSHOME)/bin/atscc2scm ###### CAT=cat CPF=cp -f RMF=rm -f SCPR=scp -r ###### all:: all_in_one:: ###### # all:: ; \ $(PATSOPT) -d ./DATS/basics.dats | \ $(ATSCC2SCM) -o ./output/DATS/basics_dats.scm -i # all:: ; \ $(PATSOPT) -d ./DATS/list.dats | \ $(ATSCC2SCM) -o ./output/DATS/list_dats.scm -i all:: ; \ $(PATSOPT) -d ./DATS/option.dats | \ $(ATSCC2SCM) -o ./output/DATS/option_dats.scm -i # all:: ; \ $(PATSOPT) -d ./DATS/stream.dats | \ $(ATSCC2SCM) -o ./output/DATS/stream_dats.scm -i all:: ; \ $(PATSOPT) -d ./DATS/stream_vt.dats | \ $(ATSCC2SCM) -o ./output/DATS/stream_vt_dats.scm -i # all:: ; \ $(PATSOPT) -d ./DATS/intrange.dats | \ $(ATSCC2SCM) -o ./output/DATS/intrange_dats.scm -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/reference.dats | \ $(ATSCC2SCM) -o ./output/DATS/reference_dats.scm -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/funarray.dats | \ $(ATSCC2SCM) -o ./output/DATS/funarray_dats.scm -i # all:: ; \ $(PATSOPT) -d ./DATS/slistref.dats | \ $(ATSCC2SCM) -o ./output/DATS/slistref_dats.scm -i # all:: ; \ $(PATSOPT) -d ./DATS/qlistref.dats | \ $(ATSCC2SCM) -o ./output/DATS/qlistref_dats.scm -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/ML/list0.dats | \ $(ATSCC2SCM) -o ./output/DATS/ML/list0_dats.scm -i all:: ; \ $(PATSOPT) -d ./DATS/ML/array0.dats | \ $(ATSCC2SCM) -o ./output/DATS/ML/array0_dats.scm -i all:: ; \ $(PATSOPT) -d ./DATS/ML/option0.dats | \ $(ATSCC2SCM) -o ./output/DATS/ML/option0_dats.scm -i # ###### LIBATSCC2SCM_ALL_SCM=\ output/libatscc2scm_all.scm ###### all_in_one:: libatscc2scm_all ###### # DATE=/bin/date ECHO=/bin/echo -en # PRINTF=printf # ###### # # libatscc2scm_all:: ; \ # $(ECHO) | $(CAT) - >$(LIBATSCC2SCM_ALL_SCM) # libatscc2scm_all:: ; \ $(PRINTF) '\n' | $(CAT) - >$(LIBATSCC2SCM_ALL_SCM) libatscc2scm_all:: ; \ $(PRINTF) ';;\n' | $(CAT) - >>$(LIBATSCC2SCM_ALL_SCM) libatscc2scm_all:: ; \ $(PRINTF) ';; Time of Generation:\n' | $(CAT) - >>$(LIBATSCC2SCM_ALL_SCM) libatscc2scm_all:: ; \ $(PRINTF) ';; ' | $(CAT) - >>$(LIBATSCC2SCM_ALL_SCM) && $(DATE) | $(CAT) - >>$(LIBATSCC2SCM_ALL_SCM) libatscc2scm_all:: ; \ $(PRINTF) ';;\n\n' | $(CAT) - >>$(LIBATSCC2SCM_ALL_SCM) # ###### # libatscc2scm_all:: ; \ $(CAT) >>$(LIBATSCC2SCM_ALL_SCM) \ CATS/basics_cats.scm \ CATS/integer_cats.scm \ CATS/bool_cats.scm \ CATS/float_cats.scm \ CATS/print_cats.scm \ CATS/reference_cats.scm # libatscc2scm_all:: ; \ $(CAT) >>$(LIBATSCC2SCM_ALL_SCM) \ CATS/filebas_cats.scm # libatscc2scm_all:: ; \ $(CAT) >>$(LIBATSCC2SCM_ALL_SCM) \ CATS/SCMlist_cats.scm # ###### libatscc2scm_all:: ; \ $(CAT) >>$(LIBATSCC2SCM_ALL_SCM) \ output/DATS/list_dats.scm \ output/DATS/option_dats.scm \ output/DATS/stream_dats.scm \ output/DATS/stream_vt_dats.scm \ output/DATS/intrange_dats.scm \ output/DATS/reference_dats.scm \ output/DATS/funarray_dats.scm \ output/DATS/slistref_dats.scm \ output/DATS/qlistref_dats.scm \ output/DATS/ML/list0_dats.scm \ output/DATS/ML/array0_dats.scm \ output/DATS/ML/option0_dats.scm \ ###### # libatscc2scm_all:: ; \ $(PRINTF) '\n;; ****** ****** ;;\n' | $(CAT) - >>$(LIBATSCC2SCM_ALL_SCM) libatscc2scm_all:: ; \ $(PRINTF) '\n;; end of [libatscc2scm_all.scm] ;;\n' | $(CAT) - >>$(LIBATSCC2SCM_ALL_SCM) # ###### # # upload_source:: ; \ # $(SCPR) \ # basics_scm.sats \ # staloadall.hats \ # CATS SATS DATS \ # ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libatscc/libatscc2scm/. # # upload_libatscc2scm:: ; \ # $(SCPR) \ # $(LIBATSCC2SCM_ALL_SCM) \ # ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libatscc/libatscc2scm/. # ###### clean:: ; $(RMF) *~ */*~ ###### cleanall:: clean cleanall:: ; $(RMF) output/DATS/*_?ats.scm cleanall:: ; $(RMF) output/DATS/ML/*_?ats.scm cleanall:: ; $(RMF) $(LIBATSCC2SCM_ALL_SCM) ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/basics_scm.sats0000644000175000017500000000323013431250607025042 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2015-06: // prefix for external names // #define ATS_PACKNAME "ATSCC2SCM.basics" #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/basics.sats" // (* ****** ****** *) // abstype SCMval_type typedef SCMval = SCMval_type // (* ****** ****** *) // fun lazy2cloref {a:t0p} ( lazyval: lazy(a) ) : ((*void*)) - (a) = "mac#%" // (* ****** ****** *) // fun cloref0_app{b:t0p}(cfun0(b)): b = "mac#%" // fun cloref1_app {a:t0p}{b:t0p}(cfun1(a, b), a): b = "mac#%" // fun cloref2_app {a1,a2:t0p}{b:t0p} (cfun2(a1, a2, b), a1, a2): b = "mac#%" fun cloref3_app {a1,a2,a3:t0p}{b:t0p} (cfun3(a1, a2, a3, b), a1, a2, a3): b = "mac#%" // overload cloref_app with cloref0_app overload cloref_app with cloref1_app overload cloref_app with cloref2_app overload cloref_app with cloref3_app // (* ****** ****** *) // abstype SCMfilr(*fileref*) // (* ****** ****** *) // // HX-2016-06: // invariant constructors! // abstype SCMlist(a:vt@ype) // mutable datastructure! abstype SCMvector(a:vt@ype) // mutable datastructure! // (* ****** ****** *) // fun assert_errmsg_bool0 (x: bool, msg: string): void = "mac#%" fun assert_errmsg_bool1 {b:bool} (x: bool b, msg: string): [b] void = "mac#%" // overload assert_errmsg with assert_errmsg_bool0 of 100 overload assert_errmsg with assert_errmsg_bool1 of 110 // (* ****** ****** *) // macdef assertloc (x) = assert_errmsg (,(x), $mylocation) // (* ****** ****** *) (* end of [basics_scm.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/0000755000175000017500000000000013431250607022621 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/test01.dats0000644000175000017500000000107613431250607024622 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2clj // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test01_dynload" // #define ATS_STATIC_PREFIX "_test01_" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // val () = repeat(3, $delay(println!("Hello, world!"))) // val () = (3).repeat()(lam() => println!("Hello, world!")) // val () = (3).foreach()(lam(i) => println!(i, ": Hello, world!")) // (* ****** ****** *) %{$ ;; (test01_dynload); ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/Makefile0000644000175000017500000000151513431250607024263 0ustar brandonbrandon# # A Simple Makefile # ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### ATSCC2SCM=$(PATSHOME)/bin/atscc2scm ###### # SCHEME=guile # SCHEME2=$(SCHEME) \ -l ./../output/libatscc2scm_all.scm # ###### all:: regress:: cleanall:: ###### all:: \ test01 test01: test01_dats.scm regress:: \ test_test01 test_test01: \ test01_dats.scm ; $(SCHEME2) $< cleanall:: ; $(RMF) test01_dats.scm ###### all:: \ test02 test02: test02_dats.scm regress:: \ test_test02 test_test02: \ test02_dats.scm ; $(SCHEME2) $< cleanall:: ; $(RMF) test02_dats.scm ###### %_dats.scm: %.dats ; $(PATSOPT) -d $< | $(ATSCC2SCM) -o $@ ###### testall:: all testall:: regress testall:: cleanall ###### # RMF=rm -f RMRF=rm -rf # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/0000755000175000017500000000000013431250607023602 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025771 5ustar brandonbrandon././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs0000644000175000017500000000777313431250607030720 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "GameOf24Play_dfs_dynload" // #define ATS_STATIC_PREFIX"_GameOf24Play_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = slistref_make_nil{node}() val () = slistref_insert(store, nx) // in // GraphSearch_dfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{$ ;; (begin (GameOf24Play 3 3 8 8) (GameOf24Play 3 5 7 13) (GameOf24Play 4 4 10 10) (GameOf24Play 5 5 7 11) (GameOf24Play 5 7 7 11) ) ;; end-of-begin ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [GameOf24Play_dfs.dats] *) ././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs0000644000175000017500000000777213431250607030715 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "GameOf24Play_bfs_dynload" // #define ATS_STATIC_PREFIX"_GameOf24Play_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = qlistref_make_nil{node}() val () = qlistref_insert(store, nx) // in // GraphSearch_bfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{$ ;; (begin (GameOf24Play 3 3 8 8) (GameOf24Play 3 5 7 13) (GameOf24Play 4 4 10 10) (GameOf24Play 5 5 7 11) (GameOf24Play 5 7 7 11) ) ;; end-of-begin ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [GameOf24Play_bfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.0000644000175000017500000000331313431250607031115 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "QueenPuzzle_dfs_dynload" // #define ATS_STATIC_PREFIX "_QueenPuzzle_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = let // (* val () = println! ( "process_node: nx = ", nx ) (* end of [val] *) *) // in // if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // end // end of [process_node] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = slistref_make_nil{node}() // val () = slistref_insert(store, nil0) // val () = GraphSearch_dfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{$ ;; (QueenPuzzle_solve); ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [QueenPuzzle_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/Makefile0000644000175000017500000000267213431250607027440 0ustar brandonbrandon###### # # A simple Makefile # ###### # PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt # ATSCC2SCM=${PATSHOME}/bin/atscc2scm # ###### # SCHEME=guile # SCHEME2=$(SCHEME) \ -l ./../../../output/libatscc2scm_all.scm # ###### all:: ###### # all:: \ QueenPuzzle_dfs_dats.scm QueenPuzzle_dfs_dats.c: \ QueenPuzzle_dfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_dfs_dats.scm: \ QueenPuzzle_dfs_dats.c; $(ATSCC2SCM) -o $@ -i $< # regress:: QueenPuzzle_dfs_dats.scm; $(SCHEME2) $< # ###### # all:: \ QueenPuzzle_bfs_dats.scm QueenPuzzle_bfs_dats.c: \ QueenPuzzle_bfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_bfs_dats.scm: \ QueenPuzzle_bfs_dats.c; $(ATSCC2SCM) -o $@ -i $< # regress:: QueenPuzzle_bfs_dats.scm; $(SCHEME2) $< # ###### # all:: \ GameOf24Play_dfs_dats.scm GameOf24Play_dfs_dats.c: \ GameOf24Play_dfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_dfs_dats.scm: \ GameOf24Play_dfs_dats.c; $(ATSCC2SCM) -o $@ -i $< # regress:: GameOf24Play_dfs_dats.scm; $(SCHEME2) $< # ###### # all:: \ GameOf24Play_bfs_dats.scm GameOf24Play_bfs_dats.c: \ GameOf24Play_bfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_bfs_dats.scm: \ GameOf24Play_bfs_dats.c; $(ATSCC2SCM) -o $@ -i $< # regress:: GameOf24Play_bfs_dats.scm; $(SCHEME2) $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.scm ###### ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.0000644000175000017500000000311713431250607031115 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "QueenPuzzle_bfs_dynload" // #define ATS_STATIC_PREFIX "_QueenPuzzle_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = qlistref_make_nil{node}() // val () = qlistref_insert(store, nil0) // val () = GraphSearch_bfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{$ ;; (QueenPuzzle_solve); ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [QueenPuzzle_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/TEST/test02.dats0000644000175000017500000000133113431250607024615 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2scm // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test02_dynload" // #define ATS_STATIC_PREFIX "_test02_" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) #define :: list_cons (* ****** ****** *) val xs = ( 0 :: 1 :: 2 :: 3 :: 4 :: 5 :: 6 :: 7 :: 8 :: 9 :: nil() ) : List0 (int) (* ****** ****** *) val () = println! ("xs = ", xs) (* ****** ****** *) val ys = xs + xs val () = println! ("xs+xs = ", ys) (* ****** ****** *) val zs = list_sort(ys) val () = println! ("sort(xs+xs) = ", zs) (* ****** ****** *) %{$ ;; (test02_dynload); ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/0000755000175000017500000000000013431250607022574 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/SCMlist_cats.scm0000644000175000017500000000445613431250607025641 0ustar brandonbrandon;;;;;; ; ; HX-2016-06: ; for Scheme code translated from ATS ; ;;;;;; ;;;;;; ; beg of [SCMlist_cats.scm] ;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-macro (ats2scmpre_SCMlist_nil) `(list)) (define-macro (ats2scmpre_SCMlist_sing x) `(list ,x)) (define-macro (ats2scmpre_SCMlist_pair x1 x2) `(list ,x1 ,x2)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-macro (ats2scmpre_SCMlist_cons x0 xs) `(cons ,x0 ,xs)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; (define ;; (ats2scmpre_SCMlist_make_elt n x0) ;; (letrec ;; ((loop ;; (lambda(n res) ;; (if (> n 0) (loop (- n 1) (ats2scmpre_SCMlist_cons x0 res)) res)) ;; ) ;; ) (loop n (ats2scmpre_SCMlist_nil)) ;; ) ;; letrec ;; ) ;; define-ats2scmpre_SCMlist_make_elt (define-macro (ats2scmpre_SCMlist_make_elt n x0) `(make-list ,n ,x0)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-macro (ats2scmpre_SCMlist_is_nil xs) `(null? ,xs)) (define-macro (ats2scmpre_SCMlist_is_cons xs) `(not (null? ,xs))) (define-macro (ats2scmpre_SCMlist_isnot_nil xs) `(not (null? ,xs))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-macro (ats2scmpre_SCMlist_length xs) `(length ,xs)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-macro (ats2scmpre_SCMlist_head xs) `(car ,xs)) (define-macro (ats2scmpre_SCMlist_tail xs) `(cdr ,xs)) (define-macro (ats2scmpre_SCMlist_last_pair xs) `(last-pair ,xs)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-macro (ats2scmpre_SCMlist_get_at xs i) `(list-ref ,xs ,i)) (define-macro (ats2scmpre_SCMlist_set_at xs i x0) `(list-set! ,xs ,i ,x0)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-macro (ats2scmpre_SCMlist_append xs ys) `(append ,xs ,ys)) ;; (define-macro (ats2scmpre_SCMlist_reverse xs) `(reverse ,xs)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Note that [fold] is is SRFI-1 ;; So this one is implemented in list.dats ;; ;;(define-macro ;; (ats2scmpre_SCMlist2list_rev xs) ;;`(fold (lambda (x xs) (cons x xs)) '() ,xs) ;;) ; define-macro ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-macro (ats2scmpre_SCMlist_sort_2 xs cmp) `(let ((cmp (ats2scmpre_cloref2fun2 ,cmp))) (sort ,xs (lambda(x1 x2) (< (cmp x1 x2) 0)))) ) ; define-macro ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;; end of [SCMlist_cats.scm] ;;;;;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/integer_cats.scm0000644000175000017500000000500013431250607025742 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-05: ; for Scheme code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [integer_cats.scm] ;;;;;; ;; ;; ****** ****** ;; ;; ;; HX: for signed integers ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_neg_int0 x) `(- ,x) ) (define-macro (ats2scmpre_neg_int1 x) `(- ,x) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_abs_int0 x) `(abs ,x) ) (define-macro (ats2scmpre_abs_int1 x) `(abs ,x) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_succ_int0 x) `(+ ,x 1) ) (define-macro (ats2scmpre_pred_int0 x) `(- ,x 1) ) ;; (define-macro (ats2scmpre_succ_int1 x) `(+ ,x 1) ) (define-macro (ats2scmpre_pred_int1 x) `(- ,x 1) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_add_int0_int0 x y) `(+ ,x ,y) ) (define-macro (ats2scmpre_sub_int0_int0 x y) `(- ,x ,y) ) (define-macro (ats2scmpre_mul_int0_int0 x y) `(* ,x ,y) ) (define-macro (ats2scmpre_div_int0_int0 x y) `(quotient ,x ,y) ) ;; (define-macro (ats2scmpre_mod_int0_int0 x y) `(modulo ,x ,y) ) (define-macro (ats2scmpre_rem_int0_int0 x y) `(remainder ,x ,y) ) ;; (define-macro (ats2scmpre_add_int1_int1 x y) `(+ ,x ,y) ) (define-macro (ats2scmpre_sub_int1_int1 x y) `(- ,x ,y) ) (define-macro (ats2scmpre_mul_int1_int1 x y) `(* ,x ,y) ) (define-macro (ats2scmpre_div_int1_int1 x y) `(quotient ,x ,y) ) ;; (define-macro (ats2scmpre_mod_int1_int1 x y) `(modulo ,x ,y) ) (define-macro (ats2scmpre_nmod_int1_int1 x y) `(modulo ,x ,y) ) ;; (define-macro (ats2scmpre_rem_int1_int1 x y) `(remainder ,x ,y) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_lt_int0_int0 x y) `(< ,x ,y) ) (define-macro (ats2scmpre_lte_int0_int0 x y) `(<= ,x ,y) ) (define-macro (ats2scmpre_gt_int0_int0 x y) `(> ,x ,y) ) (define-macro (ats2scmpre_gte_int0_int0 x y) `(>= ,x ,y) ) ;; (define-macro (ats2scmpre_eq_int0_int0 x y) `(= ,x ,y) ) (define-macro (ats2scmpre_neq_int0_int0 x y) `(not (= ,x ,y)) ) ;; (define-macro (ats2scmpre_lt_int1_int1 x y) `(< ,x ,y) ) (define-macro (ats2scmpre_lte_int1_int1 x y) `(<= ,x ,y) ) (define-macro (ats2scmpre_gt_int1_int1 x y) `(> ,x ,y) ) (define-macro (ats2scmpre_gte_int1_int1 x y) `(>= ,x ,y) ) ;; (define-macro (ats2scmpre_eq_int1_int1 x y) `(= ,x ,y) ) (define-macro (ats2scmpre_neq_int1_int1 x y) `(not (= ,x ,y)) ) ;; (define-macro (ats2scmpre_compare_int0_int0 x y) `(let ((x1 ,x) (y1 ,y)) (if (< x1 y1) -1 (if (<= x1 y1) 0 1))) ) (define-macro (ats2scmpre_compare_int1_int1 x y) `(let ((x1 ,x) (y1 ,y)) (if (< x1 y1) -1 (if (<= x1 y1) 0 1))) ) ;; ;; ****** ****** ;; ;; end of [integer_cats.scm] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/filebas_cats.scm0000644000175000017500000000206713431250607025724 0ustar brandonbrandon;;;;;; ; ; HX-2016-06: ; for Scheme code translated from ATS ; ;;;;;; ;;;;;; ;beg of [filebas_cats.scm] ;;;;;; ;; (define-macro (ats2scmpre_stdin_get) `(current=input-port)) (define-macro (ats2scmpre_stdout_get) `(current-output-port)) (define-macro (ats2scmpre_stderr_get) `(current-error-port)) ;; ;;;;;; ;; (define-macro (ats2scmpre_fileref_close_input inp) `(close-input-port ,(inp)) ) ;; define-macro ;; (define-macro (ats2scmpre_fileref_open_input_exn fname) `(open-input-file ,(fname)) ) ;; define-macro ;; ;;;;;; ;; (define-macro (ats2scmpre_write_char c) `(write-char ,(c))) (define-macro (ats2scmpre_fwrite_char out c) `(write-char ,(c) ,(out))) ;; (define-macro (ats2scmpre_write_scmval scmval) `(write ,(scmval))) (define-macro (ats2scmpre_fwrite_scmval out scmval) `(write ,(scmval) ,(out))) ;; (define-macro (ats2scmpre_fileref_close_output inp) `(close-output-port ,(inp)) ) ;; define-macro ;; (define-macro (ats2scmpre_fileref_open_output_exn fname) `(open-output-file ,(fname)) ) ;; define-macro ;; ;;;;;; ;;;;;; end of [filebas_cats.scm] ;;;;;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/print_cats.scm0000644000175000017500000000225013431250607025445 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-06: ; for Scheme code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [print_cats.scm] ;;;;;; ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_print_int x) `(display ,x)) ;; (define-macro (ats2scmpre_print_bool x) `(display (if ,x "true" "false"))) (define-macro (ats2scmpre_print_char x) `(display ,x)) ;; (define-macro (ats2scmpre_print_double x) `(display ,x)) (define-macro (ats2scmpre_print_string x) `(display ,x)) ;; (define-macro (ats2scmpre_print_SCMval x) `(display ,x)) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_print_newline) `(newline)) ;; ;; ****** ****** ;; (define-macro (ats2scmpre_fprint_int out x) `(display ,x ,out)) ;; (define-macro (ats2scmpre_fprint_bool out x) `(display (if ,x "true" "false") ,out)) (define-macro (ats2scmpre_fprint_char out x) `(display ,x ,out)) ;; (define-macro (ats2scmpre_fprint_double out x) `(display ,x ,out)) (define-macro (ats2scmpre_fprint_string out x) `(display ,x ,out)) (define-macro (ats2scmpre_fprint_SCMval out x) `(display ,x ,out)) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_fprint_newline out) `(newline ,out)) ;; ;; ****** ****** ;; ;; end of [print_cats.scm] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/SCMvector_cats.scm0000644000175000017500000000160213431250607026156 0ustar brandonbrandon;;;;;; ; ; HX-2016-06: ; for Scheme code translated from ATS ; ;;;;;; ;;;;;; ; beg of [SCMvector_cats.scm] ;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-macro (ats2scmpre_SCMvector_nil) `(vector)) (define-macro (ats2scmpre_SCMvector_sing x) `(vector ,x)) (define-macro (ats2scmpre_SCMvector_pair x1 x2) `(vector ,x1 ,x2)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-macro (ats2scmpre_SCMvector_make_elt n x0) `(make-vector ,n ,x0) ) ;; define-macro ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-macro (ats2scmpre_SCMvector_length xs) `(vector-length ,xs)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-macro (ats2scmpre_SCMvector_get_at xs i) `(vector-ref ,xs ,i)) (define-macro (ats2scmpre_SCMvector_set_at xs i x0) `(vector-set! ,xs ,i ,x0)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;; end of [SCMvector_cats.scm] ;;;;;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/bool_cats.scm0000644000175000017500000000045513431250607025251 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-06: ; for Scheme code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [bool_cats.scm] ;;;;;; ;; ;; ****** ****** ;; (define-macro (ats2scmpre_neg_bool0 x) `(not ,x) ) (define-macro (ats2scmpre_neg_bool1 x) `(not ,x) ) ;; ****** ****** ;; ;; end of [bool_cats.scm] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/reference_cats.scm0000644000175000017500000000110113431250607026241 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-05: ; for Scheme code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [reference_cats.scm] ;;;;;; ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_ref x) `(list ,x)) (define-macro (ats2scmpre_ref_make_elt x) `(list ,x)) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_ref_get_elt r) `(car ,r)) (define-macro (ats2scmpre_ref_set_elt r x0) `(set-car! ,r ,x0)) ;; (define-syntax ats2scmpre_ref_exch_elt (syntax-rules () ((_ r x0) (let ((tmp (car r))) (set-car! r x0) tmp)) ) ) ;; ;; ****** ****** ;; ;; end of [reference_cats.scm] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/basics_cats.scm0000644000175000017500000001132313431250607025556 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-05: ; for Scheme code ; translated from ATS ; ;;;;;; ;; ;; For some implementations of scheme, ;; we may have to map [define-macro] to [defmacro] ;; ;; (defmacro (define-macro x y) `(defmacro ,x ,y)) ;; ;;;;;; ;; ****** ****** ;; (define atscc2scm_null '()) ;; ****** ****** ;; (define atscc2scm_true #t) (define atscc2scm_false #f) ;; ****** ****** ;; (define-macro (ats2scmpre_list_nil) atscc2scm_null) (define-macro (ats2scmpre_list_cons x xs) `(cons ,x ,xs)) ;; ****** ****** ;; ;; (define ATSINSmove0_void atscc2scm_null) ;; (define-macro (ATSINSmove1_void cmd) cmd) ;; ;; ****** ****** ;; ;; (define-macro (ATSINStmpset tmp val) `(set! ,tmp ,val) ) (define-macro (ATSINSstatmpset statmp val) `(set! ,statmp ,val) ) ;; (define-macro (ATSdynloadset flag val) `(set! ,flag ,val) ) (define-macro (ATSINSdyncst_valbind d2cst val) `(set! ,d2cst ,val) ) ;; ;; ****** ****** ;; (define-macro (ATSfunclo_fun fc) fc) (define-macro (ATSfunclo_fclo fc) `(car ,fc)) ;; ****** ****** ;; (define-macro (ATSCKiseqz x) `(= ,x 0)) (define-macro (ATSCKisneqz x) `(not (= ,x 0))) ;; ****** ****** ;; ;; (define-macro (ATSCKpat_int x y) `(= ,x ,y)) ;; (define-macro (ATSCKpat_bool x y) `(eqv? ,x ,y)) ;; (define-macro (ATSCKpat_string x y) `(eqv? ,x ,y)) ;; ;; ****** ****** ;; ;; (define-macro (ATSCKpat_con0 x tag) `(= ,x ,tag)) (define-macro (ATSCKpat_con1 x tag) `(= (car ,x) ,tag)) ;; ;; ****** ****** ;; (define-macro (ATSCKptrisnull x) `(eqv? ,x atscc2scm_null)) (define-macro (ATSCKptriscons x) `(not (eqv? ,x atscc2scm_null))) ;; ****** ****** ;; ;; (define-macro (ATSCCget_0 xs) `(car ,xs)) (define-macro (ATSCCget_1 xs) `(car (cdr ,xs))) (define-macro (ATSCCget_2 xs) `(car (cdr (cdr ,xs)))) (define-macro (ATSCCget_3 xs) `(car (cdr (cdr (cdr ,xs))))) ;; (define-macro (ATSCCget_at xs n) `(list-ref ,xs ,n)) ;; (define-macro (ATSCCset_0 xs x0) `(set-car! ,xs ,x0)) (define-macro (ATSCCset_1 xs x0) `(set-car! (cdr ,xs) ,x0)) (define-macro (ATSCCset_2 xs x0) `(set-car! (cdr (cdr ,xs)) ,x0)) (define-macro (ATSCCset_3 xs x0) `(set-car! (cdr (cdr (cdr ,xs))) ,x0)) ;; ;; ****** ****** ;; ;; (define-syntax ATSPMVtyrec (syntax-rules () ((_ . xs) (list . xs)))) (define-syntax ATSPMVtysum (syntax-rules () ((_ . xs) (list . xs)))) ;; ;; ****** ****** ;; ;; (define-macro (ATSPMVlazyval fc) `(list 0 ,fc)) ;; (define (ATSPMVlazyval_eval lazyval) (let ((flag (ATSCCget_0 lazyval))) (if (= flag 0) (begin (ATSCCset_0 lazyval 1) (let ((thunk (ATSCCget_1 lazyval))) (let ((result ((ATSfunclo_fclo thunk) thunk))) (ATSCCset_1 lazyval result) result)) ) (begin (ATSCCset_0 lazyval (+ flag 1)) (ATSCCget_1 lazyval) ) ) ;; if ) ;; let ) ;; define ;; ;; ****** ****** ;; ;; (define-macro (ATSPMVllazyval thunk) thunk) ;; (define (ATSPMVllazyval_eval llazyval) ((ATSfunclo_fclo llazyval) llazyval #t) ) ;; define ;; (define (atspre_lazy_vt_free llazyval) ((ATSfunclo_fclo llazyval) llazyval #f) ) ;; define ;; ;; ****** ****** ;; (define-macro (ATSSELcon xs i) `(ATSCCget_at ,xs ,i)) (define-macro (ATSSELboxrec xs i) `(ATSCCget_at ,xs ,i)) ;; ****** ****** ;; ;; (define (ATSINSdeadcode_fail) (exit 1)) ;; (define (ATSINScaseof_fail msg) (begin (display msg (current-error-port)) (exit 1) ) ) ;; end-of-define ;; ;; ****** ****** ;; ;; (define (ats2scmpre_assert_bool0 tfv) (if (not tfv) (exit 1))) (define (ats2scmpre_assert_bool1 tfv) (if (not tfv) (exit 1))) ;; (define (ats2scmpre_assert_errmsg_bool0 msg tfv) (if (not tfv) (begin (display msg (current-error-port)) (exit 1)) ) ) ;; end-of-define (define (ats2scmpre_assert_errmsg_bool1 msg tfv) (if (not tfv) (begin (display msg (current-error-port)) (exit 1)) ) ) ;; end-of-define ;; ;; ****** ****** ;; (define-macro (ats2scmpre_cloref0_app cf) `(let ((cf1 ,cf)) ((ATSfunclo_fclo cf1) cf1)) ) ; define-macro (define-macro (ats2scmpre_cloref1_app cf x) `(let ((cf1 ,cf)) ((ATSfunclo_fclo cf1) cf1 ,x)) ) ; define-macro (define-macro (ats2scmpre_cloref2_app cf x1 x2) `(let ((cf1 ,cf)) ((ATSfunclo_fclo cf1) cf1 x1 x2)) ) ; define-macro (define-macro (ats2scmpre_cloref3_app cf x1 x2 x3) `(let ((cf1 ,cf)) ((ATSfunclo_fclo cf1) cf1 ,x1 ,x2 ,x3)) ) ; define-macro ;; ****** ****** ;; (define (ats2scmpre_cloref2fun0 cf) (lambda () (ats2scmpre_cloref0_app cf)) ) ; define (define (ats2scmpre_cloref2fun1 cf) (lambda (x) (ats2scmpre_cloref1_app cf x)) ) ; define (define (ats2scmpre_cloref2fun2 cf) (lambda (x1 x2) (ats2scmpre_cloref2_app cf x1 x2)) ) ; define (define (ats2scmpre_cloref2fun3 cf) (lambda (x1 x2 x3) (ats2scmpre_cloref3_app cf x1 x2 x3)) ) ; define ;; ****** ****** ;; (define-macro (ats2scmpre_lazy2cloref lazyval) `(ATSCCget_1 ,lazyval) ) ;; end-of-define ;; ****** ****** ;; ;;;;;; end of [basics_cats.scm] ;;;;;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/CATS/float_cats.scm0000644000175000017500000000367113431250607025426 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-05: ; for Scheme code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [float_cats.scm] ;;;;;; ;; ;; ****** ****** ;; ;; ;; HX: for signed floats ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_int2double x) x) (define-macro (ats2scmpre_double_of_int x) x) ;; (define-macro (ats2scmpre_double2int x) `(truncate ,x)) (define-macro (ats2scmpre_int_of_double x) `(truncate ,x)) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_neg_double x) `(- ,x) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_abs_double x) `(abs ,x) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_succ_double x) `(+ ,x 1) ) (define-macro (ats2scmpre_pred_double x) `(- ,x 1) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_add_int_double x y) `(+ ,x ,y) ) (define-macro (ats2scmpre_sub_int_double x y) `(- ,x ,y) ) (define-macro (ats2scmpre_mul_int_double x y) `(* ,x ,y) ) (define-macro (ats2scmpre_div_int_double x y) `(/ ,x ,y) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_add_double_int x y) `(+ ,x ,y) ) (define-macro (ats2scmpre_sub_double_int x y) `(- ,x ,y) ) (define-macro (ats2scmpre_mul_double_int x y) `(* ,x ,y) ) (define-macro (ats2scmpre_div_double_int x y) `(/ ,x ,y) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_add_double_double x y) `(+ ,x ,y) ) (define-macro (ats2scmpre_sub_double_double x y) `(- ,x ,y) ) (define-macro (ats2scmpre_mul_double_double x y) `(* ,x ,y) ) (define-macro (ats2scmpre_div_double_double x y) `(/ ,x ,y) ) ;; ;; ****** ****** ;; ;; (define-macro (ats2scmpre_lt_double_double x y) `(< ,x ,y) ) (define-macro (ats2scmpre_lte_double_double x y) `(<= ,x ,y) ) (define-macro (ats2scmpre_gt_double_double x y) `(> ,x ,y) ) (define-macro (ats2scmpre_gte_double_double x y) `(>= ,x ,y) ) ;; (define-macro (ats2scmpre_eq_double_double x y) `(= ,x ,y) ) (define-macro (ats2scmpre_neq_double_double x y) `(not (= ,x ,y)) ) ;; ;; ****** ****** ;; ;; end of [float_cats.scm] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/0000755000175000017500000000000013431250607022614 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/SCMvector.sats0000644000175000017500000000145413431250607025361 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_scm.sats" // (* ****** ****** *) // fun SCMvector_make_elt {a:t0p}{n:nat} (n: int(n), x0: a): SCMvector(a) = "mac#" // (* ****** ****** *) // fun SCMlist_vector {a:vt0p}(SCMvector(a)): intGte(0) = "mac#" // (* ****** ****** *) // fun SCMvector_get_at {a:t0p}(xs: SCMvector(a), i: int): a = "mac#" fun SCMvector_set_at {a:t0p}(xs: SCMvector(a), i: int, x0: a): void = "mac#" // fun SCMvector_exch_at {a:vt0p}(xs: SCMvector(a), i: int, x0: a): (a) = "mac#" // (* ****** ****** *) (* end of [SCMvector.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/intrange.sats0000644000175000017500000000067513431250607025327 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2016-07: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../basics_scm.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/intrange.sats" // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/float.sats0000644000175000017500000000663013431250607024622 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // fun double2int (x: double): int = "mac#%" fun int_of_double (x: double): int = "mac#%" // fun int2double (x: int): double = "mac#%" fun double_of_int (x: int): double = "mac#%" // (* ****** ****** *) // fun abs_double : double -> double = "mac#%" overload abs with abs_double of 100 // (* ****** ****** *) // fun neg_double : double -> double = "mac#%" overload ~ with neg_double of 100 overload neg with neg_double of 100 // (* ****** ****** *) // fun succ_double : double -> double = "mac#%" fun pred_double : double -> double = "mac#%" // overload succ with succ_double of 100 overload pred with pred_double of 100 // (* ****** ****** *) // fun add_int_double : (int, double) -> double = "mac#%" fun add_double_int : (double, int) -> double = "mac#%" // fun sub_int_double : (int, double) -> double = "mac#%" fun sub_double_int : (double, int) -> double = "mac#%" // fun mul_int_double : (int, double) -> double = "mac#%" fun mul_double_int : (double, int) -> double = "mac#%" // fun div_int_double : (int, double) -> double = "mac#%" fun div_double_int : (double, int) -> double = "mac#%" // (* ****** ****** *) overload + with add_int_double of 100 overload + with add_double_int of 100 overload - with sub_int_double of 100 overload - with sub_double_int of 100 overload * with mul_int_double of 100 overload * with mul_double_int of 100 overload / with div_int_double of 100 overload / with div_double_int of 100 (* ****** ****** *) typedef float_aop_type = (double, double) -> double (* ****** ****** *) // fun add_double_double: float_aop_type = "mac#%" fun sub_double_double : float_aop_type = "mac#%" fun mul_double_double : float_aop_type = "mac#%" fun div_double_double : float_aop_type = "mac#%" // (* ****** ****** *) // overload + with add_double_double of 100 overload - with sub_double_double of 100 overload * with mul_double_double of 100 overload / with div_double_double of 100 // (* ****** ****** *) // fun lt_int_double : (int, double) -> bool = "mac#%" fun lt_double_int : (double, int) -> bool = "mac#%" // fun lte_int_double : (int, double) -> bool = "mac#%" fun lte_double_int : (double, int) -> bool = "mac#%" // fun gt_int_double : (int, double) -> bool = "mac#%" fun gt_double_int : (double, int) -> bool = "mac#%" // fun gte_int_double : (int, double) -> bool = "mac#%" fun gte_double_int : (double, int) -> bool = "mac#%" // (* ****** ****** *) typedef float_cmp_type = (double, double) -> bool (* ****** ****** *) // fun lt_double_double: float_cmp_type = "mac#%" fun lte_double_double: float_cmp_type = "mac#%" fun gt_double_double: float_cmp_type = "mac#%" fun gte_double_double: float_cmp_type = "mac#%" // fun eq_double_double: float_cmp_type = "mac#%" fun neq_double_double: float_cmp_type = "mac#%" // (* ****** ****** *) // overload < with lt_double_double of 100 overload <= with lte_double_double of 100 overload > with gt_double_double of 100 overload >= with gte_double_double of 100 overload = with eq_double_double of 100 overload != with neq_double_double of 100 overload <> with neq_double_double of 100 // (* ****** ****** *) // fun compare_double_double (x1: double, x2: double): Sgn = "mac#%" // overload compare with compare_double_double of 100 // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/filebas.sats0000644000175000017500000000206113431250607025114 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) staload "./../basics_scm.sats" (* ****** ****** *) fun stdin_get(): SCMfilr = "mac#%" fun stdout_get(): SCMfilr = "mac#%" fun stderr_get() : SCMfilr = "mac#%" (* ****** ****** *) fun fileref_close_input(inp: SCMfilr): void = "mac#%" fun fileref_open_input_exn(fname: string): void = "mac#%" (* ****** ****** *) fun fileref_close_output(inp: SCMfilr): void = "mac#%" fun fileref_open_output_exn(fname: string): void = "mac#%" (* ****** ****** *) // fun write_char(c: char): void = "mac#%" fun fwrite_char(out: FILEref, c: char): void = "mac#%" // fun write_SCMval(obj: SCMval): void = "mac#%" fun fwrite_SCMval(out: FILEref, x: SCMval): void = "mac#%" // symintr write overload write with write_char overload write with write_SCMval // symintr fwrite overload fwrite with fwrite_char overload fwrite with fwrite_SCMval // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/list.sats0000644000175000017500000000123213431250607024461 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_scm.sats" // #include "{$LIBATSCC}/SATS/list.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list (SCMfilr, List(INV(a))): void = "mac#%" // fun{} fprint_list$sep (out: SCMfilr): void = "mac#%" // fun{a:t0p} fprint_list_sep (SCMfilr, List(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list of 100 // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/list_vt.sats0000644000175000017500000000064113431250607025175 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_scm.sats" // #include "{$LIBATSCC}/SATS/list_vt.sats" // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/arrayref.sats0000644000175000017500000000067113431250607025327 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../basics_scm.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/arrayref.sats" // (* ****** ****** *) (* end of [arrayref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/stream_vt.sats0000644000175000017500000000067713431250607025526 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../basics_scm.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/stream_vt.sats" // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/SCMlist.sats0000644000175000017500000000437313431250607025035 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_scm.sats" // (* ****** ****** *) // fun SCMlist_nil {a:vt0p}(): SCMlist(a) = "mac#%" // fun SCMlist_sing {a:vt0p}(a): SCMlist(a) = "mac#%" // fun SCMlist_pair {a:vt0p}(a, a): SCMlist(a) = "mac#%" // (* ****** ****** *) // fun SCMlist_cons {a:vt0p} ( x0: a, xs: SCMlist(a) ) : SCMlist(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun SCMlist_make_elt {a:t0p}{n:nat} (n: int(n), x0: a): SCMlist(a) = "mac#%" // (* ****** ****** *) // fun SCMlist_is_nil {a:vt0p}(xs: SCMlist(a)): bool = "mac#%" // fun SCMlist_is_cons {a:vt0p}(xs: SCMlist(a)): bool = "mac#%" // fun SCMlist_isnot_nil {a:vt0p}(xs: SCMlist(a)): bool = "mac#%" // (* ****** ****** *) // fun SCMlist_length {a:vt0p}(SCMlist(a)): intGte(0) = "mac#%" // (* ****** ****** *) // fun SCMlist_head {a:t0p}(xs: SCMlist(a)): (a) = "mac#%" fun SCMlist_tail {a:t0p}(xs: SCMlist(a)): SCMlist(a) = "mac#%" // (* ****** ****** *) // fun SCMlist_last_pair {a:t0p}(xs: SCMlist(a)): SCMlist(a) = "mac#%" // (* ****** ****** *) // fun SCMlist_get_at {a:t0p}(xs: SCMlist(a), i: int): a = "mac#%" fun SCMlist_set_at {a:t0p}(xs: SCMlist(a), i: int, x0: a): void = "mac#%" // fun SCMlist_exch_at {a:vt0p}(xs: SCMlist(a), i: int, x0: a): (a) = "mac#%" // (* ****** ****** *) // fun SCMlist_append {a:t0p}(SCMlist(a), SCMlist(a)): SCMlist(a) = "mac#%" // (* ****** ****** *) // fun SCMlist_reverse{a:t0p}(SCMlist(a)): SCMlist(a) = "mac#%" // (* ****** ****** *) // fun SCMlist2list {a:t0p}(SCMlist(INV(a))): List0(a) = "mac#%" fun SCMlist2list_rev {a:t0p}(SCMlist(INV(a))): List0(a) = "mac#%" // (* ****** ****** *) // fun SCMlist_oflist {a:t0p}(xs: List(INV(a))): SCMlist(a) = "mac#%" fun SCMlist_oflist_rev {a:t0p}(xs: List(INV(a))): SCMlist(a) = "mac#%" // (* ****** ****** *) // fun{a:t0p} SCMlist_sort_1 (xs: SCMlist(INV(a))): SCMlist(a) fun SCMlist_sort_2{a:t0p} ( xs: SCMlist(INV(a)), cmp: (a, a) - int ) : SCMlist(a) = "mac#%" // end-of-function // (* ****** ****** *) (* end of [SCMlist.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/integer.sats0000644000175000017500000001276213431250607025155 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // // HX: for signed integers // (* ****** ****** *) // fun abs_int0 : int - int = "mac#%" // fun abs_int1 : {i:int} (int(i)) - int(abs(i)) = "mac#%" // overload abs with abs_int0 of 100 overload abs with abs_int1 of 100 // (* ****** ****** *) // fun neg_int0 : int - int = "mac#%" // fun neg_int1 : {i:int} int(i) - int(~i) = "mac#%" // overload ~ with neg_int0 of 100 overload ~ with neg_int1 of 110 overload neg with neg_int0 of 100 overload neg with neg_int1 of 110 // (* ****** ****** *) // fun succ_int0 : int - int = "mac#%" fun pred_int0 : int - int = "mac#%" // fun succ_int1 : {i:int} int(i) - int(i+1) = "mac#%" fun pred_int1 : {i:int} int(i) - int(i-1) = "mac#%" // overload succ with succ_int0 of 100 overload pred with pred_int0 of 100 // overload succ with succ_int1 of 110 overload pred with pred_int1 of 110 // (* ****** ****** *) // fun half_int0 : int - int = "mac#%" fun half_int1 : {i:int} int(i) - int(i/2) = "mac#%" // overload half with half_int0 of 100 overload half with half_int1 of 110 // (* ****** ****** *) // fun add_int0_int0: (int, int) - int = "mac#%" fun sub_int0_int0 : (int, int) - int = "mac#%" fun mul_int0_int0 : (int, int) - int = "mac#%" fun div_int0_int0 : (int, int) - int = "mac#%" fun mod_int0_int0 : (int, int) - int = "mac#%" // fun add_int1_int1 : {i,j:int} (int(i), int(j)) - int(i+j) = "mac#%" fun sub_int1_int1 : {i,j:int} (int(i), int(j)) - int(i-j) = "mac#%" fun mul_int1_int1 : {i,j:int} (int(i), int(j)) - int(i*j) = "mac#%" fun div_int1_int1 : {i,j:int} (int(i), int(j)) - int(i/j) = "mac#%" // (* ****** ****** *) // overload + with add_int0_int0 of 100 overload - with sub_int0_int0 of 100 overload * with mul_int0_int0 of 100 overload / with div_int0_int0 of 100 overload % with mod_int0_int0 of 100 overload mod with mod_int0_int0 of 100 // overload + with add_int1_int1 of 120 overload - with sub_int1_int1 of 120 overload * with mul_int1_int1 of 120 overload / with div_int1_int1 of 120 // (* ****** ****** *) // fun nmod_int1_int1 { i,j:int | i >= 0; j > 0 } (i: int(i), j: int(j)): int(nmod(i, j)) = "mac#%" // (* ****** ****** *) // fun asl_int0_int1 : (int, intGte(0)) - int = "mac#%" fun asr_int0_int1 : (int, intGte(0)) - int = "mac#%" // (* ****** ****** *) // overload << with asl_int0_int1 of 110 overload >> with asr_int0_int1 of 110 // (* ****** ****** *) // fun lt_int0_int0: (int, int) - bool = "mac#%" fun lte_int0_int0: (int, int) - bool = "mac#%" fun gt_int0_int0: (int, int) - bool = "mac#%" fun gte_int0_int0: (int, int) - bool = "mac#%" // fun eq_int0_int0: (int, int) - bool = "mac#%" fun neq_int0_int0: (int, int) - bool = "mac#%" // (* ****** ****** *) // fun compare_int0_int0: (int, int) - int = "mac#%" // (* ****** ****** *) // fun lt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i < j) = "mac#%" fun lte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i <= j) = "mac#%" fun gt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i > j) = "mac#%" fun gte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i >= j) = "mac#%" // fun eq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i == j) = "mac#%" fun neq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i != j) = "mac#%" // (* ****** ****** *) // overload < with lt_int0_int0 of 100 overload <= with lte_int0_int0 of 100 overload > with gt_int0_int0 of 100 overload >= with gte_int0_int0 of 100 overload = with eq_int0_int0 of 100 overload != with neq_int0_int0 of 100 overload <> with neq_int0_int0 of 100 // overload compare with compare_int0_int0 of 100 // (* ****** ****** *) // overload < with lt_int1_int1 of 120 overload <= with lte_int1_int1 of 120 overload > with gt_int1_int1 of 120 overload >= with gte_int1_int1 of 120 overload = with eq_int1_int1 of 120 overload != with neq_int1_int1 of 120 overload <> with neq_int1_int1 of 120 // (* ****** ****** *) // // HX: for unsigned integers // (* ****** ****** *) // fun add_uint0_uint0: (uint, uint) - uint = "mac#%" fun sub_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mul_uint0_uint0 : (uint, uint) - uint = "mac#%" fun div_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mod_uint0_uint0 : (uint, uint) - uint = "mac#%" // (* ****** ****** *) // overload + with add_uint0_uint0 of 100 overload - with sub_uint0_uint0 of 100 overload * with mul_uint0_uint0 of 100 overload / with div_uint0_uint0 of 100 overload % with mod_uint0_uint0 of 100 overload mod with mod_uint0_uint0 of 100 // (* ****** ****** *) // fun lt_uint0_uint0: (uint, uint) - bool = "mac#%" fun lte_uint0_uint0: (uint, uint) - bool = "mac#%" fun gt_uint0_uint0: (uint, uint) - bool = "mac#%" fun gte_uint0_uint0: (uint, uint) - bool = "mac#%" // fun eq_uint0_uint0: (uint, uint) - bool = "mac#%" fun neq_uint0_uint0: (uint, uint) - bool = "mac#%" // fun compare_uint0_uint0: (uint, uint) - int = "mac#%" // (* ****** ****** *) // overload < with lt_uint0_uint0 of 100 overload <= with lte_uint0_uint0 of 100 overload > with gt_uint0_uint0 of 100 overload >= with gte_uint0_uint0 of 100 overload = with eq_uint0_uint0 of 100 overload != with neq_uint0_uint0 of 100 overload <> with neq_uint0_uint0 of 100 // overload compare with compare_uint0_uint0 of 100 // (* ****** ****** *) (* end of [integer.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/bool.sats0000644000175000017500000000260313431250607024444 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // fun bool2int0 (b: bool):<> natLt(2) = "mac#%" fun bool2int1 {b:bool} (b: bool(b)):<> int(bool2int(b)) = "mac#%" // symintr bool2int overload bool2int with bool2int0 of 100 overload bool2int with bool2int1 of 110 // (* ****** ****** *) // fun int2bool0 (i: int):<> bool = "mac#%" fun int2bool1 {i:int}(i: int(i)):<> bool(i != 0) = "mac#%" // symintr int2bool overload int2bool with int2bool0 of 100 overload int2bool with int2bool1 of 110 // (* ****** ****** *) // fun neg_bool0 : bool -> bool = "mac#%" fun neg_bool1 : {b:bool} bool(b) -> bool(~b) = "mac#%" // overload ~ with neg_bool0 of 100 overload ~ with neg_bool1 of 110 // overload not with neg_bool0 of 100 overload not with neg_bool1 of 110 // (* ****** ****** *) // fun eq_bool0_bool0 : (bool, bool) -> bool = "mac#%" fun neq_bool0_bool0 : (bool, bool) -> bool = "mac#%" // fun eq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 == b2) = "mac#%" fun neq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 != b2) = "mac#%" // overload = with eq_bool0_bool0 of 100 overload = with eq_bool1_bool1 of 120 // overload != with neq_bool0_bool0 of 100 overload != with neq_bool1_bool1 of 120 // (* ****** ****** *) (* end of [bool.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/qlistref.sats0000644000175000017500000000060413431250607025341 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/qlistref.sats" // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/reference.sats0000644000175000017500000000237513431250607025455 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #include "{$LIBATSCC}/SATS/reference.sats" // (* ****** ****** *) // // HX: // linear references // (* ****** ****** *) // absvtype ref_vt0ype_vtype(a:vt@ype) = ptr vtypedef ref_vt(a:vt0p) = ref_vt0ype_vtype(a) // (* ****** ****** *) // fun ref_vt{a:vt0p}(x: a): ref_vt(a) = "mac#%" // fun ref_vt_make_elt{a:vt0p} (x: a): ref_vt(a) = "mac#%" // (* ****** ****** *) // fun ref_vt_get_elt{a:t0p} (r: !ref_vt a): a = "mac#%" fun ref_vt_set_elt{a:t0p} (r: !ref_vt a, x0: a): void = "mac#%" // fun ref_vt_exch_elt{a:vt0p} (r: !ref_vt a, x0: a): (a) = "mac#%" // (* ****** ****** *) overload [] with ref_vt_get_elt overload [] with ref_vt_set_elt (* ****** ****** *) // fun ref_vt_getfree_elt{a:t0p} (r: ref_vt(a)): a = "mac#%" // (* ****** ****** *) // absview ref_vt_takeout_v(a:vt@ype) // fun ref_vt_takeout {a:vt0p}(!ref_vt(a)): (ref_vt_takeout_v(a) | a) = "mac#%" fun ref_vt_addback {a:vt0p}(ref_vt_takeout_v(a) | !ref_vt(a), x0: a): void= "mac#%" // (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/slistref.sats0000644000175000017500000000060413431250607025343 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/slistref.sats" // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/option.sats0000644000175000017500000000061313431250607025020 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_scm.sats" // #include "{$LIBATSCC}/SATS/option.sats" // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/funarray.sats0000644000175000017500000000064113431250607025340 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_scm.sats" // #include "{$LIBATSCC}/SATS/funarray.sats" // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/stream.sats0000644000175000017500000000067113431250607025007 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../basics_scm.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/stream.sats" // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/print.sats0000644000175000017500000000325213431250607024646 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_" // (* ****** ****** *) staload "./../basics_scm.sats" (* ****** ****** *) // fun print_int : int -> void = "mac#%" fun print_bool : bool -> void = "mac#%" fun print_char : char -> void = "mac#%" fun print_double : double -> void = "mac#%" fun print_string : string -> void = "mac#%" // fun print_SCMval : (SCMval) -> void = "mac#%" // (* ****** ****** *) (* fun print_obj{a:t0p}(obj: a): void = "mac#%" *) (* ****** ****** *) overload print with print_int of 100 overload print with print_bool of 100 overload print with print_double of 100 overload print with print_string of 100 (* ****** ****** *) overload print with print_SCMval of 100 (* ****** ****** *) // fun {a:t0p} print_val (x: a): void = "mac#%" // (* ****** ****** *) // fun print_newline : ((*void*)) -> void = "mac#%" // (* ****** ****** *) // fun fprint_int : (SCMfilr, int) -> void = "mac#%" fun fprint_bool : (SCMfilr, bool) -> void = "mac#%" fun fprint_char : (SCMfilr, char) -> void = "mac#%" fun fprint_double : (SCMfilr, double) -> void = "mac#%" fun fprint_string : (SCMfilr, string) -> void = "mac#%" // fun fprint_SCMval : (SCMfilr, SCMval) -> void = "mac#%" // (* ****** ****** *) // overload fprint with fprint_int of 100 overload fprint with fprint_bool of 100 overload fprint with fprint_double of 100 overload fprint with fprint_string of 100 // (* ****** ****** *) // fun {a:t0p} fprint_val (SCMfilr, x: a): void = "mac#%" // (* ****** ****** *) // fun fprint_newline(out: SCMfilr): void = "mac#%" // (* ****** ****** *) (* end of [print.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/ML/0000755000175000017500000000000013431250607023124 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/ML/option0.sats0000644000175000017500000000107113431250607025407 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_scm.sats" // #include "{$LIBATSCC}/SATS/ML/option0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option0 (SCMfilr, option0(INV(a))): void = "mac#%" // overload fprint with fprint_option0 of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/ML/list0.sats0000644000175000017500000000130113431250607025046 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../../basics_scm.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/ML/list0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list0 (SCMfilr, list0(INV(a))): void = "mac#%" // fun{} fprint_list0$sep(out: SCMfilr): void = "mac#%" // fun{a:t0p} fprint_list0_sep (SCMfilr, list0(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list0 of 100 // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/SATS/ML/array0.sats0000644000175000017500000000065313431250607025222 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2scmpre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../../basics_scm.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/ML/array0.sats" // (* ****** ****** *) (* end of [array0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/ATS2-0.3.2/staloadall.hats0000644000175000017500000000247113431250607025047 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Scheme *) (* ****** ****** *) // // HX-2014-07 // (* ****** ****** *) // staload "./basics_scm.sats" staload _ = "./DATS/basics.dats" // (* ****** ****** *) // staload "./SATS/integer.sats" // (* ****** ****** *) // staload "./SATS/bool.sats" staload "./SATS/float.sats" // (* ****** ****** *) // staload "./SATS/print.sats" staload "./SATS/filebas.sats" // staload _(*anon*) = "./DATS/print.dats" // (* ****** ****** *) // staload "./SATS/list.sats" staload "./SATS/SCMlist.sats" // (* ****** ****** *) // staload "./SATS/stream.sats" staload "./SATS/stream_vt.sats" // (* ****** ****** *) // staload "./SATS/reference.sats" // (* ****** ****** *) // staload _(*anon*) = "./DATS/list.dats" // staload _(*anon*) = "./DATS/SCMlist.dats" // (* ****** ****** *) // staload _(*anon*) = "./DATS/stream.dats" staload _(*anon*) = "./DATS/stream_vt.dats" // (* ****** ****** *) // staload "./SATS/intrange.sats" (* staload _(*anon*) = "./DATS/intrange.dats" *) // (* ****** ****** *) // // HX-2016: // one-list-based stack // two-list-based queue // staload "./SATS/slistref.sats" staload "./SATS/qlistref.sats" // (* ****** ****** *) // // HX: un-indexed list // staload "./SATS/ML/list0.sats" staload _(*anon*) = "./DATS/ML/list0.dats" // (* ****** ****** *) (* end of [staloadall.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2scm/.keeper0000644000175000017500000000000013431250607022135 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/0000755000175000017500000000000013431250607020565 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/CATS-parsemit0000777000175000017500000000000013431250607025573 2../CATS-parsemitustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/bin/0000755000175000017500000000000013431250607021335 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/bin/.gitkeep0000644000175000017500000000000013431250607022754 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/DATS/0000755000175000017500000000000013431250607021320 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/DATS/atscc2pl_main.dats0000644000175000017500000002522113431250607024716 0ustar brandonbrandon(* ****** ****** *) // // Atscc2pl // from ATS to Perl // (* ****** ****** *) // // HX-2014-11-08: start // HX-2015-05-23: restructure // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDIO = "{$PATSLIBATSLIBC}/SATS/stdio.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_parsing.sats" // (* ****** ****** *) // val () = catsparse_all_dynload() where { extern fun catsparse_all_dynload(): void = "ext#" } (* end of [val] *) // (* ****** ****** *) #dynload "./atscc2pl_emit.dats" #dynload "./atscc2pl_emit2.dats" (* ****** ****** *) // datatype comarg = COMARGkey of (int, string) // typedef comarglst = List0 (comarg) // (* ****** ****** *) datatype waitkind = | WTKnone of () | WTKinput of () | WTKoutput of () // -o / --output // end of [waitkind] (* ****** ****** *) datatype OUTCHAN = | OUTCHANref of (FILEref) | OUTCHANptr of (FILEref) // end of [OUTCHAN] fun outchan_get_fileref (x: OUTCHAN): FILEref = ( // case+ x of | OUTCHANref (filr) => filr | OUTCHANptr (filp) => filp // ) (* end of [outchan_get_fileref] *) (* ****** ****** *) typedef cmdstate = @{ comarg0= comarg , ncomarg= int // number of arguments , waitkind= waitkind // number of processed input files; , ninputfile= int // waiting for STDIN if it is 0 , outchan= OUTCHAN // current output channel , nerror= int // number of accumulated errors } (* end of [cmdstate] *) (* ****** ****** *) fun cmdstate_set_outchan ( state: &cmdstate >> _, chan_new: OUTCHAN ) : void = let // val chan_old = state.outchan val ((*void*)) = state.outchan := chan_new // in // case+ chan_old of | OUTCHANref (filr) => () | OUTCHANptr (filp) => let val err = $STDIO.fclose0 (filp) in (*nothing*) end // end of [OUTCHANptr] // end // end of [cmdstate_set_outchan] (* ****** ****** *) // extern fun atscc2pl_fileref (state: &cmdstate >> _, filr: FILEref): void // implement atscc2pl_fileref (state, inp) = let // val out = outchan_get_fileref(state.outchan) // val d0cs = parse_from_fileref (inp) // val () = emit_time_stamp (out) // val ((*void*)) = emit_toplevel (out, d0cs) // val () = emit_text (out, "######\n") val () = emit_text (out, "##\n") val () = emit_text (out, "## end-of-compilation-unit") val () = emit_text (out, "\n##") val () = emit_text (out, "\n######") // val ((*flusing*)) = emit_newline (out) // in // nothing end // end of [atscc2pl_fileref] (* ****** ****** *) // macdef fopen = $STDIO.fopen // extern fun atscc2pl_basename ( state: &cmdstate >> _, fname: string ) : void // end-of-fun // implement atscc2pl_basename (state, fname) = let // val inp = fopen (fname, file_mode_r) // val p_inp = $STDIO.ptrcast(inp) // in // if p_inp > 0 then let // val inp = $UNSAFE.castvwtp0{FILEref}(inp) val ((*void*)) = the_filename_push(filename_make(fname)) // in atscc2pl_fileref (state, inp) end // end of [then] else let // prval ( // freed ) = $STDIO.FILEptr_free_null (inp) val ((*void*)) = state.nerror := state.nerror + 1 // in // nothing end // end of [else] // end // end of [atscc2pl_basename] (* ****** ****** *) fun cmdstate_set_outchan_basename ( state: &cmdstate >> _, basename: string ) : void = let // val filp = $STDIO.fopen (basename, file_mode_w) val p0 = $STDIO.ptrcast(filp) // (* val () = println! ("cmdstate_set_outchan_basename: p0 = ", p0) *) // in // if p0 > 0 then let val filp = $UNSAFE.castvwtp0{FILEref}(filp) in cmdstate_set_outchan (state, OUTCHANptr (filp)) end // end of [then] else let prval ( // freed ) = $STDIO.FILEptr_free_null (filp) val ((*void*)) = state.nerror := state.nerror + 1 in cmdstate_set_outchan (state, OUTCHANref (stderr_ref)) end // end of [else] // end // end of [cmdstate_set_outchan_basename] (* ****** ****** *) // fn isinwait (state: cmdstate): bool = ( case+ state.waitkind of WTKinput () => true | _ => false ) (* end of [isinwait] *) // fn isoutwait (state: cmdstate): bool = ( case+ state.waitkind of WTKoutput () => true | _ => false ) (* end of [isoutwait] *) // (* ****** ****** *) // extern fun comarg_warning (string): void // implement comarg_warning (str) = { val () = prerr ("waring(ATS)") val () = prerr (": unrecognized command line argument [") val () = prerr (str) val () = prerr ("] is ignored.") val () = prerr_newline () } (* end of [comarg_warning] *) // (* ****** ****** *) fun atscc2pl_usage (cmd: string): void = { // val () = println! ( "Usage: ", cmd, " ... \n" ) val () = println! ( "where each is of one of the following forms:\n" ) // val () = println! (" -i : for processing ") val () = println! (" --input : for processing ") // val () = println! (" -o : output into ") val () = println! (" --output : output into ") // val () = println! (" -h : for printing out this help usage") val () = println! (" --help : for printing out this help usage") // } (* end of [atscc2pl_usage] *) (* ****** ****** *) fun process_cmdline ( state: &cmdstate, arglst: comarglst ) : void = let in // case+ arglst of // | list_nil () => let val nif = state.ninputfile val wait0 = ( case+ 0 of | _ when nif < 0 => true | _ when nif = 0 => isinwait (state) | _ (* nif > 0 *) => false ) : bool // end of [val] in if wait0 then ( if state.ncomarg = 0 then atscc2pl_usage ("atscc2pl") else atscc2pl_fileref (state, stdin_ref) ) (* end of [if] *) end // end of [list_nil] // | list_cons (arg, arglst) => let val () = state.ncomarg := state.ncomarg + 1 // end of [val] in process_cmdline2 (state, arg, arglst) end // end of [list_cons] // end // end of [process_cmdline] and process_cmdline2 ( state: &cmdstate, arg: comarg, arglst: comarglst ) : void = let in // case+ arg of // | _ when isinwait(state) => let val nif = state.ninputfile in case+ arg of | COMARGkey (1, key) when nif > 0 => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) when nif > 0 => process_cmdline2_COMARGkey2 (state, arglst, key) | COMARGkey (_, fname) => let val () = state.ninputfile := nif + 1 val () = atscc2pl_basename (state, fname(*input*)) in process_cmdline (state, arglst) end // end of [COMARGkey] end // end of [_ when isinpwait] // | _ when isoutwait(state) => let // val COMARGkey (_, fname) = arg // val () = cmdstate_set_outchan_basename (state, fname) // val () = state.waitkind := WTKnone () // in process_cmdline (state, arglst) end // end of [_ when isoutwait] // | COMARGkey (1, key) => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) => process_cmdline2_COMARGkey2 (state, arglst, key) // | COMARGkey (_, key) => let val () = comarg_warning (key) val () = state.waitkind := WTKnone () in process_cmdline (state, arglst) end // end of [COMARGkey] // end // end of [process_cmdline2] and process_cmdline2_COMARGkey1 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = ( // case+ key of // | "-i" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [-i] *) // | "-o" => { val () = state.waitkind := WTKoutput () } (* end of [-o] *) // | "-h" => { val () = atscc2pl_usage ("atscc2pl") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [-h] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey1] and process_cmdline2_COMARGkey2 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = state.waitkind := WTKnone () // val () = ( // case+ key of // | "--input" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [--input] *) // | "--output" => { val () = state.waitkind := WTKoutput () } (* end of [--output] *) // | "--help" => { val () = atscc2pl_usage ("atscc2pl") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [--help] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey2] (* ****** ****** *) // extern fun comarg_parse (string):<> comarg // extern fun comarglst_parse{n:nat} (argc: int n, argv: !argv(n)): list (comarg, n) // end of [comarglst_parse] // (* ****** ****** *) implement comarg_parse (str) = let // fun loop {n,i:nat | i <= n} .. ( str: string n, n: int n, i: int i ) :<> comarg = ( if i < n then ( if (str[i] != '-') then COMARGkey (i, str) else loop (str, n, i+1) ) else COMARGkey (n, str) ) (* end of [if] *) // end of [loop] // val str = g1ofg0(str) val len = string_length (str) // in loop (str, sz2i(len), 0) end // end of [comarg_parse] (* ****** ****** *) implement comarglst_parse {n}(argc, argv) = let // fun loop {i,j:nat | i <= n} .. ( argv: !argv(n), i: int(i), res: list_vt(comarg, j) ) : list_vt (comarg, n-i+j) = ( if i < argc then let val res = list_vt_cons (comarg_parse (argv[i]), res) in loop (argv, i+1, res) end // end of [then] else res // end of [else] // end of [if] ) (* end of [loop] *) // val res = loop (argv, 0, list_vt_nil()) // in list_vt2t (list_vt_reverse (res)) end // end of [comarglst_parse] (* ****** ****** *) implement main0 (argc, argv) = { // val () = prerrln! ( "Hello from atscc2pl!" ) (* end of [val] *) // // val arglst = comarglst_parse (argc, argv) // val+list_cons (arg0, arglst) = arglst // var state = @{ comarg0= arg0 , ncomarg= 0 // counting from 0 , waitkind= WTKnone () // number of prcessed , ninputfile= ~1 // input files , outchan= OUTCHANref (stdout_ref) , nerror= 0 // number of accumulated errors } : cmdstate // end of [var] // val () = process_cmdline (state, arglst) // val () = if state.nerror = 1 then let val () = prerrln! ("atscc2pl: there is a reported error.") in // nothing end // end of [then] else if state.nerror >= 2 then let val () = prerrln! ("atscc2pl: there are some reported errors.") in // nothing end // end of [then] else () // end of [else] // (* val () = prerrln! ("Good-bye from atscc2pl!") *) // } (* end of [main0] *) (* ****** ****** *) (* end of [atscc2pl_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/DATS/.keeper0000644000175000017500000000000013431250607022562 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/DATS/atscc2pl_emit.dats0000644000175000017500000003353513431250607024737 0ustar brandonbrandon(* ****** ****** *) // // Atscc2pl // from ATS to Perl // (* ****** ****** *) // // HX-2014-11-08: start // HX-2015-05-23: restructure // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) local // staload TM = "libats/libc/SATS/time.sats" // typedef time_t = $TM.time_t // in (* in-of-local *) implement emit_time_stamp(out) = let // var tm: time_t val () = tm := $TM.time_get() val (pfopt | p_tm) = $TM.localtime(tm) // val () = emit_text (out, "######\n"); val () = emit_text (out, "##\n"); val () = emit_text (out, "## The Perl code is generated by atscc2pl\n") val () = emit_text (out, "## The starting compilation time is: ") // val () = if p_tm > 0 then let prval Some_v @(pf1, fpf1) = pfopt val tm_min = $TM.tm_get_min (!p_tm) val tm_hour = $TM.tm_get_hour (!p_tm) val tm_mday = $TM.tm_get_mday (!p_tm) val tm_mon = 1 + $TM.tm_get_mon (!p_tm) val tm_year = 1900 + $TM.tm_get_year (!p_tm) prval () = fpf1 (pf1) in $extfcall ( void , "fprintf" , out, "%i-%i-%i: %2ih:%2im\n", tm_year, tm_mon, tm_mday, tm_hour, tm_min ) end // end of [then] else let prval None_v () = pfopt in emit_text (out, "**TIME-ERROR**\n") end // end of [else] // val () = emit_text (out, "##\n") val () = emit_text (out, "######\n") // in // emit_newline (out) end // end of [emit_time_stamp] end // end of [local] (* ****** ****** *) implement emit_PMVint (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVint] // implement emit_PMVintrep (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVintrep] // (* ****** ****** *) implement emit_PMVbool (out, tfv) = ( emit_text (out, if tfv then "1" else "0") ) (* end of [emit_PMVbool] *) (* ****** ****** *) implement emit_PMVfloat (out, tok) = let // val- T_FLOAT(_, rep) = tok.token_node in emit_text (out, rep) end // end of [emit_PMVfloat] (* ****** ****** *) implement emit_PMVstring (out, tok) = let // val-T_STRING(rep) = tok.token_node in emit_text (out, rep) // end // end of [emit_PMVstring] (* ****** ****** *) implement emit_PMVi0nt (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVi0nt] (* ****** ****** *) implement emit_PMVf0loat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVf0loat] (* ****** ****** *) // implement emit_PMVempty (out, _) = emit_text (out, "NULL") // implement emit_PMVextval (out, toks) = emit_tokenlst (out, toks) // (* ****** ****** *) // implement emit_PMVfunlab (out, flab) = emit_label (out, flab) // (* ****** ****** *) implement emit_PMVcfunlab (out, fl, d0es) = { // val () = emit_label (out, fl) val () = emit_text (out, "__closurerize") // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_PMVcfunlab] *) (* ****** ****** *) implement emit_CSTSPmyloc (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_CSTSPmyloc] (* ****** ****** *) // extern fun emit_fname_d0exp : (FILEref, string, d0exp) -> void extern fun emit_fname_d0exp2 : (FILEref, string, d0exp, d0exp) -> void // implement emit_fname_d0exp (out, fname, d0e) = { // val () = emit_text (out, fname) val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp] *) // implement emit_fname_d0exp2 (out, fname, d0e1, d0e2) = { // val () = emit_text (out, fname) // val () = emit_LPAREN (out) val () = ( emit_d0exp (out, d0e1); emit_text (out, ", "); emit_d0exp (out, d0e2) ) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp2] *) // (* ****** ****** *) // implement emit_ATSCKiseqz(out, d0e) = emit_fname_d0exp(out, "ATSCKiseqz", d0e) implement emit_ATSCKisneqz(out, d0e) = emit_fname_d0exp(out, "ATSCKisneqz", d0e) // (* ****** ****** *) // implement emit_ATSCKptriscons(out, d0e) = emit_fname_d0exp(out, "ATSCKptriscons", d0e) implement emit_ATSCKptrisnull(out, d0e) = emit_fname_d0exp(out, "ATSCKptrisnull", d0e) // (* ****** ****** *) // implement emit_ATSCKpat_int (out, d0e, i0) = emit_fname_d0exp2 (out, "ATSCKpat_int", d0e, i0) implement emit_ATSCKpat_bool (out, d0e, b0) = emit_fname_d0exp2 (out, "ATSCKpat_bool", d0e, b0) implement emit_ATSCKpat_string (out, d0e, s0) = emit_fname_d0exp2 (out, "ATSCKpat_string", d0e, s0) // (* ****** ****** *) implement emit_ATSCKpat_con0 (out, d0e, ctag) = { val () = emit_text (out, "ATSCKpat_con0(") val () = ( emit_d0exp (out, d0e); emit_text (out, ", "); emit_int (out, ctag); emit_RPAREN (out) ) (* end of [val] *) } (* end of [emit_ATSCKpat_con0] *) implement emit_ATSCKpat_con1 (out, d0e, ctag) = { val () = emit_text (out, "ATSCKpat_con1(") val () = ( emit_d0exp (out, d0e); emit_text (out, ", "); emit_int (out, ctag); emit_RPAREN (out) ) (* end of [val] *) } (* end of [emit_ATSCKpat_con1] *) (* ****** ****** *) // implement emit_tmpvar (out, tmp) = let // val isloc = tmpvar_is_local (tmp.i0dex_sym) // in // if ( isloc ) then ( emit_DOLLAR (out); emit_i0de (out, tmp) ) else ( emit_DOLLAR (out); emit_i0de (out, tmp) ) (* end of [if] *) // end (* end of [emit_tmpvar] *) // (* ****** ****** *) implement emit_d0exp (out, d0e0) = let in // case+ d0e0.d0exp_node of // | D0Eide (tmp) => { val () = emit_tmpvar (out, tmp) } // | D0Eappid (fid, d0es) => { val () = emit_i0de (out, fid) // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } | D0Eappexp (d0e, d0es) => { val () = emit_AMPER (out) val () = emit_LBRACE (out) val () = emit_d0exp (out, d0e) val () = emit_RBRACE (out) val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } // | D0Elist (d0es) => { val () = emit_text (out, "D0Elist") val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } // | ATSPMVint (int) => emit_PMVint (out, int) | ATSPMVintrep (int) => emit_PMVintrep (out, int) // | ATSPMVbool (tfv) => emit_PMVbool (out, tfv) // | ATSPMVfloat (flt) => emit_PMVfloat (out, flt) // | ATSPMVstring (str) => emit_PMVstring (out, str) // | ATSPMVi0nt (int) => emit_PMVi0nt (out, int) | ATSPMVf0loat (flt) => emit_PMVf0loat (out, flt) // | ATSPMVempty (x) => emit_PMVempty (out, 0) | ATSPMVextval (toks) => emit_PMVextval (out, toks) // | ATSPMVrefarg0 (d0e) => emit_d0exp (out, d0e) | ATSPMVrefarg1 (d0e) => emit_d0exp (out, d0e) // | ATSPMVfunlab (fl) => { val () = emit_SQUOTE (out) val () = emit_PMVfunlab (out, fl) val () = emit_SQUOTE (out) } (* end of [ATSPMVfunlab] *) // | ATSPMVcfunlab (_(*knd*), fl, d0es) => { val () = emit_PMVcfunlab (out, fl, d0es) } (* end of [ATSPMVcfunlab] *) // | ATSPMVcastfn (_(*fid*), _(*s0e*), arg) => emit_d0exp (out, arg) // | ATSCSTSPmyloc (tok) => emit_CSTSPmyloc (out, tok) // | ATSCKpat_int (d0e, int) => emit_ATSCKpat_int (out, d0e, int) | ATSCKpat_bool (d0e, bool) => emit_ATSCKpat_bool (out, d0e, bool) | ATSCKpat_string (d0e, string) => emit_ATSCKpat_string (out, d0e, string) // | ATSCKpat_con0 (d0e, ctag) => emit_ATSCKpat_con0 (out, d0e, ctag) | ATSCKpat_con1 (d0e, ctag) => emit_ATSCKpat_con1 (out, d0e, ctag) // | ATSCKiseqz(d0e) => emit_ATSCKiseqz (out, d0e) | ATSCKisneqz(d0e) => emit_ATSCKisneqz (out, d0e) | ATSCKptriscons(d0e) => emit_ATSCKptriscons (out, d0e) | ATSCKptrisnull(d0e) => emit_ATSCKptrisnull (out, d0e) // | ATSSELcon _ => emit_SELcon (out, d0e0) | ATSSELrecsin _ => emit_SELrecsin (out, d0e0) | ATSSELboxrec _ => emit_SELboxrec (out, d0e0) | ATSSELfltrec _ => emit_text (out, "ATSSELfltrec(...)") // | ATSextfcall (_fun, _arg) => { val () = emit_i0de (out, _fun) val () = emit_d0exparg (out, _arg) } (* end of [ATSextfcall] *) | ATSextmcall (_obj, _mtd, _arg) => { // val () = emit_d0exp (out, _obj) val () = emit_text (out, "->") val () = emit_d0exp (out, _mtd) // val () = emit_d0exparg (out, _arg) // } (* end of [ATSextmcall] *) // | ATSfunclo_fun (d0e, _(*a*), _(*r*)) => emit_d0exp (out, d0e) | ATSfunclo_clo (d0e, _(*a*), _(*r*)) => ( emit_d0exp (out, d0e); emit_MINUSGT (out); emit_LBRACKET (out); emit_int (out, 0(*fun*)); emit_RBRACKET (out) ) (* end of [ATSfunclo_clo] *) // end // end of [emit_d0exp] (* ****** ****** *) local fun loop ( out: FILEref, d0es: d0explst, i: int ) : void = ( case+ d0es of | list_nil () => () | list_cons (d0e, d0es) => let val () = if i > 0 then emit_text (out, ", ") // end of [val] in emit_d0exp (out, d0e); loop (out, d0es, i+1) end // end of [list_cons] ) in (* in-of-local *) implement emit_d0explst (out, d0es) = loop (out, d0es, 0) implement emit_d0explst_1 (out, d0es) = loop (out, d0es, 1) end // end of [local] (* ****** ****** *) implement emit_d0exparg (out, d0es) = { // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_d0exparg] *) (* ****** ****** *) // extern fun tyrec_labsel (tyrec: tyrec, lab: symbol): int // implement tyrec_labsel (tyrec, lab) = let // fun loop ( xs: tyfldlst, i: int ) : int = ( case+ xs of | list_cons (x, xs) => let val TYFLD (id, s0e) = x.tyfld_node in if lab = id.i0dex_sym then i else loop (xs, i+1) end // end of [list_cons | list_nil ((*void*)) => ~1(*error*) ) // in loop (tyrec.tyrec_node, 0) end // end of [tyrec_labsel] // (* ****** ****** *) implement emit_SELcon (out, d0e) = let // val-ATSSELcon (d0rec, s0e, id) = d0e.d0exp_node val-S0Eide (name) = s0e.s0exp_node val-~Some_vt (s0rec) = typedef_search_opt (name) // val index = tyrec_labsel (s0rec, id.i0dex_sym) // val () = emit_d0exp (out, d0rec) // val () = emit_MINUSGT (out) val () = emit_LBRACKET (out) val () = emit_int (out, index) val () = emit_RBRACKET (out) // in // nothing end // end of [emit_SELcon] (* ****** ****** *) implement emit_SELrecsin (out, d0e) = let // val-ATSSELrecsin (d0rec, s0e, id) = d0e.d0exp_node // in emit_d0exp (out, d0rec) end // end of [emit_SELrecsin] (* ****** ****** *) implement emit_SELboxrec (out, d0e) = let // val-ATSSELboxrec (d0rec, s0e, id) = d0e.d0exp_node val-S0Eide (name) = s0e.s0exp_node val-~Some_vt (s0rec) = typedef_search_opt (name) // val index = tyrec_labsel (s0rec, id.i0dex_sym) // val () = emit_d0exp (out, d0rec) // val () = emit_MINUSGT (out) val () = emit_LBRACKET (out) val () = emit_int (out, index) val () = emit_RBRACKET (out) // in // nothing end // end of [emit_SELboxrec] (* ****** ****** *) // implement emit_COMMENT_line (out, tok) = emit_text (out, "#COMMENT_line(...)") // implement emit_COMMENT_block (out, tok) = emit_text (out, "#COMMENT_block(...)") // (* ****** ****** *) local fun aux0_arglst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "$arg"); emit_int (out, i) ) (* end of [val] *) in aux0_arglst (out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_arglst] *) fun aux0_envlst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "$env"); emit_int (out, i) ) (* end of [val] *) in aux0_envlst (out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_envlst] *) fun aux1_envlst ( out: FILEref , s0es: s0explst, i: int ) : int = ( case+ s0es of | list_nil () => (i) | list_cons (s0e, s0es) => let val () = if i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "$cenv"); emit_MINUSGT (out); emit_LBRACKET (out); emit_int (out, i+1); emit_RBRACKET (out) ) (* end of [val] *) in aux1_envlst (out, s0es, i+1) end // end of [list_cons] ) (* end of [aux1_envlst] *) in (* in-of-local *) implement emit_closurerize ( out, fl, env, arg, res ) = let // val-S0Elist(s0es_env) = env.s0exp_node val-S0Elist(s0es_arg) = arg.s0exp_node // val () = emit_text (out, "sub\n") val () = emit_label (out, fl) // val () = emit_text (out, "__closurerize(") val nenv = list_length (s0es_env) val () = ( fix f(n:int): void = if n > 0 then (emit_DOLLAR(out); f(n-1)) else () ) (nenv) // end of [val] val ((*closing*)) = emit_text (out, ")\n") // val ((*opening*)) = emit_text (out, "{\n") // val () = emit_nspc (out, 2) val () = ( if nenv > 0 then emit_text (out, "my(") else emit_text (out, "#my(") ) (* end of [val] *) val () = aux0_envlst (out, s0es_env, 0, 0) val () = emit_text (out, ") = @_;\n") // val () = emit_nspc (out, 2) val () = emit_text (out, "return [") val () = emit_text (out, "sub{ ") val () = emit_text (out, "my($cenv") val () = aux0_arglst (out, s0es_arg, 1, 0) val () = emit_text (out, ") = @_; return ") // val () = emit_label (out, fl) val () = emit_LPAREN (out) val n0 = aux1_envlst (out, s0es_env, 0) val () = aux0_arglst (out, s0es_arg, n0, 0) val () = emit_RPAREN (out) // val ((*closing*)) = emit_text (out, "; }") // val () = aux0_envlst (out, s0es_env, 1, 0) // val ((*closing*)) = emit_text (out, "];\n}\n") // val () = emit_newline (out) // in // nothing end // end of [emit_closurerize] end // end of [local] (* ****** ****** *) (* end of [atscc2pl_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/DATS/atscc2pl_emit2.dats0000644000175000017500000005353513431250607025023 0ustar brandonbrandon(* ****** ****** *) // // Atscc2pl // from ATS to Perl // (* ****** ****** *) // // HX-2014-11-08: start // HX-2015-05-23: restructure // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) // extern fun emit_local : emit_type (i0de) // implement emit_local (out, name) = ( emit_DOLLAR (out); emit_i0de (out, name) ) (* end of [emit_local] *) // extern fun emit_global : emit_type (i0de) // implement emit_global (out, name) = ( emit_DOLLAR (out); emit_i0de (out, name) ) (* end of [emit_global] *) // (* ****** ****** *) // extern fun emit_tmpdeclst_initize ( out: FILEref, tds: tmpdeclst ) : void // end-of-fun // implement emit_tmpdeclst_initize (out, tds) = let // fun auxlst ( out: FILEref, tds: tmpdeclst ) : void = let in // case+ tds of | list_nil () => () | list_cons (td, tds) => ( case+ td.tmpdec_node of | TMPDECnone (tmp) => auxlst (out, tds) | TMPDECsome (tmp, _) => let val () = emit_nspc (out, 2(*ind*)) val () = ( emit_text (out, "my "); emit_tmpvar (out, tmp); emit_text (out, ";\n") ) (* end of [val] *) in auxlst (out, tds) end // end of [TMPDECsome] ) (* end of [list_cons] *) // end // end of [auxlist] // in auxlst (out, tds) end // end of [emit_tmpdeclst_initize] // (* ****** ****** *) // extern fun the_tmpdeclst_get (): tmpdeclst extern fun the_tmpdeclst_set (tds: tmpdeclst): void // (* ****** ****** *) // local // val the_tmpdeclst = ref (list_nil) // in (* in-of-local *) implement the_tmpdeclst_get () = !the_tmpdeclst implement the_tmpdeclst_set (xs) = !the_tmpdeclst := xs end // end of [local] (* ****** ****** *) // extern fun emit2_instr (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_instr_ln (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_instrlst (out: FILEref, ind: int, inss: instrlst) : void // (* ****** ****** *) // extern fun emit2_ATSfunbodyseq (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_con1 (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_boxrec (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_delay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_lazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_ldelay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_llazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // // HX-2014-08: // this one should not be used for // emitting multiple-line instructions // implement emit_instr (out, ins) = emit2_instr (out, 0(*ind*), ins) // (* ****** ****** *) implement emit2_instr (out, ind, ins0) = let in // case+ ins0.instr_node of // | ATSif ( d0e, inss, inssopt ) => let val () = emit_nspc (out, ind) val () = emit_text (out, "if") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_text (out, " {\n") val () = emit2_instrlst (out, ind+2, inss) in case+ inssopt of | None _ => { val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} #endif") } (* end of [None] *) | Some (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "} else {\n") val () = emit2_instrlst (out, ind+2, inss) val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} #endif") } (* end of [Some] *) end // end of [ATSif] // | ATSifthen (d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "if(") val () = emit_d0exp (out, d0e) val () = emit_text (out, ") ") val () = emit_text (out, "{ ") val () = emit_instr (out, ins) val () = emit_text (out, " }") } // | ATSifnthen (d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "if(!") val () = emit_d0exp (out, d0e) val () = emit_text (out, ") ") val () = emit_text (out, "{ ") val () = emit_instr (out, ins) val () = emit_text (out, " }") } // | ATSbranchseq (inss) => { // val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSbranchseq_beg") // val () = emit_ENDL (out) val () = emit2_instrlst (out, ind, inss) // val () = emit_nspc (out, ind) val () = emit_text (out, "last;\n") // val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSbranchseq_end") // } (* end of [ATSbranchseq] *) // | ATScaseofseq (inss) => { // val () = emit_nspc (out, ind) val () = emit_text (out, "#ATScaseofseq_beg") val () = emit_ENDL (out) val () = emit_nspc (out, ind) val () = emit_text (out, "while(1)\n") val () = emit_nspc (out, ind) val () = emit_text (out, "{\n") // val () = emit2_instrlst (out, ind+2, inss) // val () = emit_nspc (out, ind) val () = emit_text (out, "} #end-of-while-loop;\n") val () = emit_nspc (out, ind) val () = emit_text (out, "#ATScaseofseq_end") // } (* end of [ATScaseofseq] *) // | ATSreturn (tmp) => { val () = emit_nspc (out, ind) val () = ( emit_text (out, "return "); emit_tmpvar (out, tmp) ) (* end of [val] *) val () = emit_SEMICOLON (out) } | ATSreturn_void (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, "return;#_void") } // | ATSINSlab (lab) => { val () = emit_nspc (out, ind) val () = ( emit_label (out, lab); emit_COLON (out) ) (* end of [val] *) } (* end of [ATSINSlab] *) // | ATSINSgoto (lab) => { val () = emit_nspc (out, ind) val () = ( emit_text (out, "goto "); emit_label (out, lab) ) (* end of [val] *) val () = emit_SEMICOLON (out) } (* end of [ATSINSgoto] *) // | ATSINSflab (flab) => { val () = emit_nspc (out, ind) val () = ( emit_label (out, flab); emit_COLON (out) ) (* end of [val] *) } (* end of [ATSINSflab] *) // | ATSINSfgoto (flab) => { val () = emit_nspc (out, ind) val () = ( emit_text (out, "goto "); emit_label (out, flab) ) (* end of [val] *) val () = emit_SEMICOLON (out) } (* end of [ATSINSfgoto] *) // | ATSINSfreeclo (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSINSfreeclo") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSfreecon (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSINSfreecon") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSmove (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = ( emit_text (out, " = "); emit_d0exp (out, d0e) ) (* end of [val] *) val () = emit_SEMICOLON (out) } (* end of [ATSINSmove] *) // | ATSINSmove_void (tmp, d0e) => { val () = emit_nspc (out, ind) val () = ( case+ d0e.d0exp_node of | ATSPMVempty _ => emit_text (out, "#ATSINSmove_void") // end of [ATSPMVempty] | _ (*non-ATSPMVempty*) => emit_d0exp (out, d0e) ) : void // end of [val] val () = emit_SEMICOLON (out) } (* end of [ATSINSmove_void] *) // | ATSINSmove_nil (tmp) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = ( emit_text (out, " = "); emit_text (out, "0") ) (* end of [val] *) val () = emit_SEMICOLON (out) } | ATSINSmove_con0 (tmp, tag) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = ( emit_text (out, " = "); emit_PMVint (out, tag) ) (* end of [val] *) val () = emit_SEMICOLON (out) } // | ATSINSmove_con1 _ => emit2_ATSINSmove_con1 (out, ind, ins0) // | ATSINSmove_boxrec _ => emit2_ATSINSmove_boxrec (out, ind, ins0) // | ATSINSmove_delay _ => emit2_ATSINSmove_delay (out, ind, ins0) | ATSINSmove_lazyeval _ => emit2_ATSINSmove_lazyeval (out, ind, ins0) // | ATSINSmove_ldelay _ => emit2_ATSINSmove_ldelay (out, ind, ins0) | ATSINSmove_llazyeval _ => emit2_ATSINSmove_llazyeval (out, ind, ins0) // | ATStailcalseq (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATStailcalseq_beg") val () = emit_ENDL (out) val () = emit2_instrlst (out, ind, inss) val () = emit_nspc (out, ind) val () = emit_text (out, "#ATStailcalseq_end") } (* end of [ATStailcalseq] *) // | ATSINSmove_tlcal (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e) val () = emit_SEMICOLON (out) } (* end of [ATSINSmove_tlcal] *) // | ATSINSargmove_tlcal (tmp1, tmp2) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp1) val () = emit_text (out, " = ") val () = emit_tmpvar (out, tmp2) val () = emit_SEMICOLON (out) } (* end of [ATSINSargmove_tlcal] *) // | ATSINSextvar_assign (ext, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_d0exp (out, ext) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } | ATSINSdyncst_valbind (d2c, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_i0de (out, d2c) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } // | ATSINScaseof_fail (errmsg) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINScaseof_fail") val () = emit_LPAREN (out) val () = emit_PMVstring (out, errmsg) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSdeadcode_fail (__tok__) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINSdeadcode_fail()") val () = emit_SEMICOLON (out) } // | ATSdynload (dummy) => { val () = emit_nspc (out, ind) val () = emit_text (out, "#ATSdynload()") } // | ATSdynloadset (flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, "#ATSdynloadset(", flag, ")") val () = emit_nspc (out, ind) val () = ( emit_global (out, flag); emit_text (out, " = 1; #flag set") ) } // | ATSdynloadfcall (fcall) => { val () = emit_nspc (out, ind) val () = (emit_tmpvar (out, fcall); emit_text (out, "(); #dynloading")) // end of [val] } // | ATSdynloadflag_sta (flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, "#ATSdynloadflag_sta(", flag, ")") } | ATSdynloadflag_ext (flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, "#ATSdynloadflag_ext(", flag, ")") } // | _ (*rest-of-instr*) => { val () = emit_nspc (out, ind) val ((*error*)) = fprint! (out, "UNRECOGNIZED-INSTRUCTION: ", ins0) } // end // end of [emit2_instr] (* ****** ****** *) implement emit2_instr_ln (out, ind, ins) = ( emit2_instr (out, ind, ins); emit_ENDL (out) ) (* end of [emit2_instr_ln] *) (* ****** ****** *) implement emit2_instrlst ( out, ind, inss ) = ( // case+ inss of | list_nil () => () | list_cons (ins, inss) => { val () = emit2_instr_ln (out, ind, ins) val () = emit2_instrlst (out, ind, inss) } // ) (* end of [emit2_instrlst] *) (* ****** ****** *) implement emit2_ATSfunbodyseq (out, ind, ins) = let // val-ATSfunbodyseq (inss) = ins.instr_node // in emit2_instrlst (out, ind, inss) end // end of [emit2_ATS2funbodyseq] (* ****** ****** *) implement emit2_ATSINSmove_con1 (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_con1_ofs (_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_con1 (inss) = ins0.instr_node // val-list_cons (ins, inss) = inss val-ATSINSmove_con1_new (tmp, _) = ins.instr_node // var opt: tokenopt = None() // val inss = ( case+ inss of | list_nil () => inss | list_cons (ins, inss2) => ( case+ ins.instr_node of | ATSINSstore_con1_tag (tmp, tag) => let val () = opt := Some(tag) in inss2 end // end of [ATSINSstore_con1_tag] | _ (*non-ATSINSstore_con1_tag*) => inss ) ) : instrlst // val d0es = getarglst (inss) val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = [") val () = ( case+ opt of | None () => () | Some (tag) => emit_PMVint (out, tag) ) : void // end of [val] val () = ( case+ opt of | None _ => emit_d0explst (out, d0es) | Some _ => emit_d0explst_1 (out, d0es) ) : void // end of [val] // val ((*closing*)) = emit_text (out, "];") // in // nothing end // end of [emit2_ATSINSmove_con1] (* ****** ****** *) implement emit2_ATSINSmove_boxrec (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_boxrec_ofs (_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_boxrec (inss) = ins0.instr_node // val-list_cons (ins, inss) = inss val-ATSINSmove_boxrec_new (tmp, _) = ins.instr_node // val d0es = getarglst (inss) // val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = [") val () = emit_d0explst (out, d0es) val ((*closing*)) = emit_text (out, "];") // in // nothing end // end of [emit2_ATSINSmove_boxrec] (* ****** ****** *) implement emit2_ATSINSmove_delay (out, ind, ins0) = let // val- ATSINSmove_delay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVlazyval("); emit_d0exp(out, thunk); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_delay] (* ****** ****** *) implement emit2_ATSINSmove_lazyeval (out, ind, ins0) = let // val- ATSINSmove_lazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVlazyval_eval("); emit_d0exp(out, lazyval); emit_text(out, "); ") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_lazyeval] (* ****** ****** *) implement emit2_ATSINSmove_ldelay (out, ind, ins0) = let // val- ATSINSmove_ldelay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVllazyval("); emit_d0exp(out, thunk); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_ldelay] (* ****** ****** *) implement emit2_ATSINSmove_llazyeval (out, ind, ins0) = let // val- ATSINSmove_llazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVllazyval_eval("); emit_d0exp(out, lazyval); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_llazyeval] (* ****** ****** *) #define ATSEXTCODE_BEG "######\n#ATSextcode_beg()\n######" #define ATSEXTCODE_END "######\n#ATSextcode_end()\n######" (* ****** ****** *) implement emit_d0ecl (out, d0c) = let in // case+ d0c.d0ecl_node of // | D0Cinclude _ => () // | D0Cifdef _ => () | D0Cifndef _ => () // | D0Ctypedef (id, def) => typedef_insert (id.i0dex_sym, def) // end of [D0Ctypedef] // | D0Cassume (id) => { val () = emit_ENDL (out) val () = emit_text (out, "#ATSassume(") val () = ( emit_i0de (out, id); emit_text (out, ")\n") ) (* end of [val] *) } // | D0Cdyncst_mac _ => () | D0Cdyncst_extfun _ => () | D0Cdyncst_valdec _ => () | D0Cdyncst_valimp _ => () // | D0Cextcode (toks) => { val () = emit_ENDL (out) val () = emit_text (out, ATSEXTCODE_BEG) val () = emit_extcode (out, toks) // HX: verbatim output val () = emit_text (out, ATSEXTCODE_END) val ((*void*)) = emit_newline (out) } (* end of [D0Cextcode] *) // | D0Cstatmp (tmp, opt) => { val () = emit_ENDL (out) val () = ( case+ opt of | Some _ => () | None () => emit_text(out, "#") ) (* end of [val] *) val () = ( emit_tmpvar (out, tmp); emit_text(out, ";\n\n") ) (* end of [val] *) } (* end of [D0Cstatmp] *) // | D0Cfundecl (fk, f0d) => emit_f0decl (out, f0d) // | D0Cclosurerize ( fl, env, arg, res ) => emit_closurerize (out, fl, env, arg, res) // | D0Cdynloadflag_init (flag) => ( // // HX-2015-05-22: // it is skipped as Perl does not have a link-time! // ) (* end of [D0Cdynloadflag_init] *) | D0Cdynloadflag_minit (flag) => ( emit_text (out, "#dynloadflag_minit\n"); emit_global (out, flag); emit_text (out, " = 0;\n") ) (* end of [D0Cdynloadflag_minit] *) // | D0Cdynexn_dec(idexn) => ( emit_text(out, "## dynexn_dec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_dec] *) | D0Cdynexn_extdec(idexn) => ( emit_text(out, "## dynexn_extdec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_extdec] *) | D0Cdynexn_initize(idexn, fullname) => ( emit_text(out, "## dynexn_initize("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_initize] *) // end // end of [emit_d0ecl] (* ****** ****** *) // extern fun emit_f0arg : emit_type (f0arg) extern fun emit_f0marg : emit_type (f0marg) extern fun emit_prototype : emit_type (f0marg) // (* extern fun emit_f0head : emit_type (f0head) extern fun emit_f0body : emit_type (f0body) *) extern fun emit_f0headbody : (FILEref, f0head, f0body) -> void // extern fun emit_f0body_0 : emit_type (f0body) // (* ****** ****** *) implement emit_f0arg (out, f0a) = let in // case+ f0a.f0arg_node of // | F0ARGnone _ => emit_text (out, "*ERROR**") | F0ARGsome (arg, s0e) => emit_tmpvar (out, arg) // end // end of [emit_f0arg] (* ****** ****** *) implement emit_f0marg (out, f0ma) = let // fun loop ( out: FILEref, f0as: f0arglst, i: int ) : void = ( case+ f0as of | list_nil () => () | list_cons (f0a, f0as) => let val () = if i > 0 then emit_text (out, ", ") // end of [val] in emit_f0arg (out, f0a); loop (out, f0as, i+1) end // end of [list_cons] ) // in loop (out, f0ma.f0marg_node, 0) end // end of [emit_f0marg] (* ****** ****** *) implement emit_prototype (out, f0ma) = let // fun loop ( out: FILEref, f0as: f0arglst, i: int ) : void = ( case+ f0as of | list_nil () => () | list_cons (f0a, f0as) => ( emit_DOLLAR (out); loop (out, f0as, i+1) ) (* end of [list_cons] *) ) // in loop (out, f0ma.f0marg_node, 0) end // end of [emit_prototype] (* ****** ****** *) implement emit_f0headbody (out, fhd, fbody) = let in // case+ fhd.f0head_node of | F0HEAD (fid, f0ma, res) => { // val () = emit_i0de (out, fid) // val () = emit_LPAREN (out) val () = emit_prototype (out, f0ma) val () = emit_RPAREN (out) // val tmpdecs = f0body_get_tmpdeclst (fbody) val inss_body = f0body_get_bdinstrlst (fbody) // val () = the_tmpdeclst_set (tmpdecs) // val () = emit_text (out, "\n{") // val () = emit_text (out, "\n##\n") // val () = if (isneqz(f0ma)) then { val () = emit_nspc (out, 2) val () = emit_text (out, "my(") val () = emit_f0marg (out, f0ma) val () = emit_text (out, ") = @_;") } else { val () = emit_nspc (out, 2) val () = emit_text (out, "#argless") } (* end of [if] *) // end of [val] // val () = emit_text (out, "\n##\n") // val () = emit_tmpdeclst_initize (out, tmpdecs) // end of [val] // val () = emit_text (out, "##\n") // val ((*main*)) = emit_f0body_0 (out, fbody) // val ((*closing*)) = emit_text (out, "} #end-of-function\n") // end of [val] } (* end of [F0HEAD] *) // end // end of [emit_f0headbody] (* ****** ****** *) (* ****** ****** *) implement emit_f0body_0 (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( case+ inss of // | list_nil () => () // | list_cons (ins0, inss1) => let val-list_cons(ins1, inss2) = inss1 val () = if i > 0 then emit_text (out, "##\n") val () = emit2_ATSfunbodyseq (out, 2(*ind*), ins0) val ((*return*)) = emit2_instr_ln (out, 2(*ind*), ins1) in auxlst (out, inss2, i+1) end // end of [list_cons] // ) (* end of [auxlst] *) // in // case+ fbody.f0body_node of // | F0BODY (tds, inss) => { val () = auxlst (out, inss, 0(*i*)) } // end // end of [emit_f0body_0] (* ****** ****** *) implement emit_f0decl (out, fdec) = let in // case+ fdec.f0decl_node of | F0DECLnone (fhd) => () | F0DECLsome (fhd, fbody) => { val () = emit_ENDL (out) val () = emit_text (out, "sub") val () = emit_ENDL (out) val () = emit_f0headbody (out, fhd, fbody) val () = emit_newline (out) } (* end of [F0DECLsome] *) // end // end of [emit_f0decl] (* ****** ****** *) implement emit_toplevel (out, d0cs) = let // fun loop ( out: FILEref, d0cs: d0eclist ) : void = ( // case+ d0cs of | list_nil () => () | list_cons (d0c, d0cs) => let val () = emit_d0ecl (out, d0c) in loop (out, d0cs) // end of [val] end // end of [list_cons] // ) // in loop (out, d0cs) end // end of [emit_toplevel] (* ****** ****** *) (* end of [atscc2pl_emit2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/Makefile0000644000175000017500000000214313431250607022225 0ustar brandonbrandon# # A simple Makefile # ###### MAKE=make ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### all:: ###### CATSPARSEMIT=./CATS-parsemit ###### SOURCES_DATS := SOURCES_DATS += DATS/atscc2pl_main.dats SOURCES_DATS += DATS/atscc2pl_emit.dats SOURCES_DATS += DATS/atscc2pl_emit2.dats SOURCES_SATS := SOURCES_SATS += $(CATSPARSEMIT)/SATS/catsparse.sats SOURCES_CATS := SOURCES_CATS += $(CATSPARSEMIT)/CATS/catsparse_all_dats.c ###### # all:: ; \ $(MAKE) -C CATS-parsemit all # ###### # all:: \ bin_atscc2pl bin_atscc2pl: \ $(SOURCES_DATS); \ $(PATSCC) \ -DATS_MEMALLOC_GCBDW -O2 -o bin/atscc2pl \ $(SOURCES_DATS) $(SOURCES_SATS) $(SOURCES_CATS) -lgc # ###### # npm:: bin_atscc2pl npm:: ; $(CPF) catsparse_sats.c atscc2pl_*_dats.c npm/CATS/. # ###### CPF=cp -f RMF=rm -f ###### # testall:: all testall:: cleanall # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) ./bin/atscc2pl cleanall:: ; $(RMF) ./npm/CATS/catsparse_sats.c cleanall:: ; $(RMF) ./npm/CATS/atscc2pl_*_dats.c ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2pl/.keeper0000644000175000017500000000000013431250607022027 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/0000755000175000017500000000000013431250607021503 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/ATS-extsolve0000777000175000017500000000000013431250607026355 2../ATS-extsolveustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/bin/0000755000175000017500000000000013431250607022253 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/bin/.keeper0000644000175000017500000000000013431250607023515 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/0000755000175000017500000000000013431250607022236 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/patsolve_smt2_main.dats0000644000175000017500000000253113431250607026722 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) (* // ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2016 // ** Author: William Blair ** Authoremail: wdblairATgmailDOTcom ** Start time: Some time in 2015 // *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "./../SATS/patsolve_smt2_commarg.sats" #staload "./../SATS/patsolve_smt2_solving.sats" // (* ****** ****** *) // (* dynload "ATS-extsolve/DATS/patsolve_cnstrnt.dats" *) val () = patsolve_cnstrnt__dynload() where { extern fun patsolve_cnstrnt__dynload(): void = "ext#" } // (* ****** ****** *) // (* dynload "ATS-extsolve/DATS/patsolve_parsing.dats" *) val () = patsolve_parsing__dynload() where { extern fun patsolve_parsing__dynload(): void = "ext#" } // (* ****** ****** *) #dynload "./patsolve_smt2_commarg.dats" #dynload "./patsolve_smt2_solving.dats" (* ****** ****** *) implement main0 (argc, argv) = { // val () = prerrln! ("Hello from [patsolve_smt2]!") // val () = the_s2cinterp_initize() // val arglst = patsolve_smt2_cmdline (argc, argv) // // HX: skipping argv[0] // val-~list_vt_cons(_, arglst) = arglst // val () = patsolve_smt2_commarglst(arglst) // } (* end of [main] *) (* ****** ****** *) (* end of [patsolve_smt2_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/SOLVING/0000755000175000017500000000000013431250607023357 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/SOLVING/patsolve_smt2_solving_interp.dats0000644000175000017500000000620613431250607032164 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) // #ifndef PATSOLVE_SMT2_SOLVING #include "./myheader.hats" #endif // end of [ifndef] // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) local typedef key = string and itm = int in (* in-of-local *) #include "libats/ML/HATS/myhashtblref.hats" end // end of [local] (* ****** ****** *) local // val the_s2cinterp_map = myhashtbl_make_nil(1024) // fun s2cinterp_insert(name: string): void = { // val-~None_vt() = myhashtbl_insert(the_s2cinterp_map, name, 0) // end of [val] } (* end of [s2cinterp_insert] *) // in (* in-of-local *) // implement s2cst_get_s2cinterp (s2c) = let // val ptr = s2cst_get_payload(s2c) // in // if ptr > 0 then $UN.cast{s2cstopt}(ptr) else let // val key = symbol_get_name(s2c.name()) val opt = myhashtbl_search(the_s2cinterp_map, key) val itm = ( case+ opt of | ~None_vt _ => None() | ~Some_vt _ => Some(s2c) ) : s2cstopt // end of [val] val () = s2cst_set_payload(s2c, $UN.cast{ptr}(itm)) // in itm end // end of [else] // end // end of [s2cst_get_s2cinterp] // implement the_s2cinterp_initize() = { // macdef insert = s2cinterp_insert // val () = insert("unit_p") // val () = insert("neg_int") val () = insert("abs_int") val () = insert("sgn_int") // val () = insert("add_int_int") val () = insert("sub_int_int") val () = insert("mul_int_int") val () = insert("div_int_int") val () = insert("mod_int_int") // val () = insert("idiv_int_int") val () = insert("ndiv_int_int") // val () = insert("eq_int_int") val () = insert("lt_int_int") val () = insert("gt_int_int") val () = insert("lte_int_int") val () = insert("gte_int_int") val () = insert("neq_int_int") // val () = insert("max_int_int") val () = insert("min_int_int") // val () = insert("null_addr") // val () = insert("add_addr_int") val () = insert("sub_addr_int") // val () = insert("lt_addr_addr") val () = insert("gt_addr_addr") val () = insert("lte_addr_addr") val () = insert("gte_addr_addr") val () = insert("eq_addr_addr") val () = insert("neq_addr_addr") // val () = insert("true_bool") val () = insert("false_bool") // val () = insert("neg_bool") // val () = insert("add_bool_bool") val () = insert("mul_bool_bool") // val () = insert("eq_bool_bool") val () = insert("lt_bool_bool") val () = insert("gt_bool_bool") val () = insert("lte_bool_bool") val () = insert("gte_bool_bool") val () = insert("neq_bool_bool") // // val () = insert("int2real") // val () = insert("neg_real") val () = insert("abs_real") val () = insert("sgn_real") val () = insert("floor_real") // val () = insert("add_real_real") val () = insert("sub_real_real") val () = insert("mul_real_real") val () = insert("div_real_real") val () = insert("mod_real_real") // val () = insert("eq_real_real") val () = insert("lt_real_real") val () = insert("gt_real_real") val () = insert("lte_real_real") val () = insert("gte_real_real") val () = insert("neq_real_real") // val () = insert("max_real_real") val () = insert("min_real_real") // // } (* end of [the_s2cinterp_initize] *) end // end of [local] (* ****** ****** *) (* end of [patsolve_smt2_solving_interp.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/SOLVING/patsolve_smt2_solving_form.dats0000644000175000017500000000562513431250607031632 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) // #ifndef PATSOLVE_SMT2_SOLVING #include "./myheader.hats" #endif // end of [ifndef] // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // staload "./patsolve_smt2_solving_ctx.dats" // (* ****** ****** *) // implement print_form(x0) = fprint_form(stdout_ref, x0) implement prerr_form(x0) = fprint_form(stderr_ref, x0) // implement fprint_form (out, x0) = ( // case+ x0 of | FORMint(i) => fprint! (out, "FORMint(", i, ")") | FORMbool(b) => fprint! (out, "FORMint(", b, ")") | FORMintrep(rep) => fprint! (out, "FORMintrep(", rep, ")") // | FORMs2var(s2v) => fprint! (out, "FORMs2var(", s2v, ")") | FORMs2cst(s2c) => fprint! (out, "FORMs2var(", s2c, ")") // | FORMs2exp(s2e) => fprint! (out, "FORMs2exp(", s2e, ")") // | FORMnot(fml) => ( fprint (out, "FORMnot("); fprint_form(out, fml); fprint (out, ")") ) | FORMconj(fml1, fml2) => ( fprint (out, "FORMconj("); fprint_form(out, fml1); fprint_form(out, fml2); fprint (out, ")") ) | FORMdisj(fml1, fml2) => ( fprint (out, "FORMdisj("); fprint_form(out, fml1); fprint_form(out, fml2); fprint (out, ")") ) | FORMimpl(fml1, fml2) => ( fprint (out, "FORMimpl("); fprint_form(out, fml1); fprint_form(out, fml2); fprint (out, ")") ) // ) (* end of [fprint_form] *) // (* ****** ****** *) // implement formula_null ((*void*)) = FORMint(0) // (* ****** ****** *) // implement formula_true ((*void*)) = FORMbool(true) implement formula_false ((*void*)) = FORMbool(false) // (* ****** ****** *) // implement formula_int (int) = FORMint(int) implement formula_intrep (rep) = FORMintrep(rep) // (* ****** ****** *) // implement formula_make_s2cst (env, s2c0) = FORMs2cst(s2c0) implement formula_make_s2var (env, s2v0) = FORMs2var(s2v0) implement formula_make_s2exp (env, s2p0) = FORMs2exp(s2p0) // (* ****** ****** *) implement formula_not(s2p) = FORMnot(s2p) (* ****** ****** *) implement formula_conj_list (s2es) = let // fun aux ( s2e0: form, s2es: formlst ) : form = ( // case+ s2es of | list_nil ((*void*)) => s2e0 | list_cons (s2e1, s2es2) => aux(FORMconj(s2e0, s2e1), s2es2) // ) (* end of [aux] *) // in // case+ s2es of | list_nil() => FORMbool(true) | list_cons(s2e, s2es) => aux(s2e, s2es) // end // end of [formula_conj_list] (* ****** ****** *) implement formula_conj_list1 (s2es_arg, s2e_res) = let in // case+ s2es_arg of | list_nil() => s2e_res | list_cons _ => FORMconj(formula_conj_list(s2es_arg), s2e_res) // end of [list_cons] // end // end of [formula_conj_list1] implement formula_impl_list1 (s2es_arg, s2e_res) = let in // case+ s2es_arg of | list_nil() => s2e_res | list_cons _ => FORMimpl(formula_conj_list(s2es_arg), s2e_res) // end of [list_cons] // end // end of [formula_impl_list1] (* ****** ****** *) (* end of [patsolve_z3_solving_form.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/SOLVING/myheader.hats0000644000175000017500000000064613431250607026044 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) // #define PATSOLVE_targetloc "./../../ATS-extsolve" // (* ****** ****** *) // #staload "{$PATSOLVE}/SATS/patsolve_cnstrnt.sats" #staload "{$PATSOLVE}/SATS/patsolve_parsing.sats" // (* ****** ****** *) // #staload "./../../SATS/patsolve_smt2_solving.sats" // (* ****** ****** *) (* end of [myheader.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/SOLVING/patsolve_smt2_solving_emit.dats0000644000175000017500000004366613431250607031634 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) // #ifndef PATSOLVE_SMT2_SOLVING #include "./myheader.hats" #endif // end of [ifndef] // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "libats/ML/SATS/atspre.sats" staload _ = "libats/ML/DATS/atspre.dats" // (* ****** ****** *) fun emit_bool ( out: FILEref, b: bool ) : void = ( // fprint_string ( out, if b then "true" else "false" ) // ) (* end of [emit_bool] *) (* ****** ****** *) implement emit_form (out, fml) = let (* val () = println! ("emit_form") *) in // case+ fml of | FORMnot(fml) => { val () = fprint(out, "(not ") // end of [val] val () = emit_form(out, fml) val () = fprint! (out, ")") } | FORMs2exp(s2e) => { val () = emit_s2exp(out, s2e) } | _ (*rest*) => fprint_form(out, fml) // end // end of [emit_form] (* ****** ****** *) implement emit_s2rt (out, s2t0) = let // (* val () = println! ("emit_s2rt") *) // macdef emit(x) = fprint(out, ,(x)) // in // case+ s2t0 of // | S2RTint() => emit("s2rt_int") | S2RTaddr() => emit("s2rt_addr") | S2RTbool() => emit("s2rt_bool") // | S2RTreal() => emit("s2rt_real") // | S2RTfloat() => emit("s2rt_float") | S2RTstring() => emit("s2rt_string") // | S2RTcls() => emit("s2rt_cls") | S2RTeff() => emit("s2rt_eff") // | S2RTtup() => emit("s2rt_tup") // | S2RTtype() => emit("s2rt_type") | S2RTvtype() => emit("s2rt_vtype") // | S2RTt0ype() => emit("s2rt_t0ype") | S2RTvt0ype() => emit("s2rt_vt0ype") // | S2RTprop() => emit("s2rt_prop") | S2RTview() => emit("s2rt_view") // | S2RTtkind() => emit("s2rt_tkind") // | S2RTfun ( s2ts_arg, s2t_res ) => { val () = emit("(") val () = emit("s2rt_fun") val () = emit(" ") val () = emit_s2rtlst(out, s2ts_arg) // end of [val] val () = emit(" ") val () = emit_s2rt(out, s2t_res) val () = emit(")") } // | S2RTnamed (name) => fprint(out, name) // S2RTnamed // | S2RTerror() => emit("s2rt_error") // end // end of [emit_s2rt] (* ****** ****** *) implement emit_s2rtlst (out, xs) = () where { // val () = fprint(out, "(") val () = ( case+ xs of | list_nil() => () | list_cons(x, xs) => { val () = emit_s2rt(out, x) // var fwork = lam@ ( x: s2rt ) : void => ( fprint (out, " "); emit_s2rt(out, x) ) (* end of [lam@] *) // val () = list_foreach_clo(xs, fwork) } ) val () = fprint(out, ")") // } (* end of [emit_s2rtlst] *) (* ****** ****** *) implement emit_s2cst (out, s2c0) = let // val opt0 = s2cst_get_s2cinterp(s2c0) // in // case+ opt0 of | Some _ => fprint! (out, s2c0.name()) // end of [Some] | None _ => let val extdef = s2c0.extdef() in case+ extdef of | Some(name) => fprint! (out, name) | None((*void*)) => fprint! (out, s2c0.name(), "!", s2c0.stamp()) // end of [None] end // end of [None] // end // end of [emit_s2cst] (* ****** ****** *) implement emit_s2var (out, s2v0) = let // val name = s2v0.name() val stamp = s2v0.stamp() // in fprint! (out, name, "!", stamp) end // end of [emit_s2var] (* ****** ****** *) implement emit_s2exp (out, s2e0) = let // (* val () = println! ("emit_s2exp") *) // fun aux_lt ( s2e1: s2exp, s2e2: s2exp ) : void = { val () = fprint(out, "(< ") // end of [val] val () = emit_s2exp(out, s2e1) val () = fprint(out, " ") val () = emit_s2exp(out, s2e2) val () = fprint(out, ")") } // fun aux_lte ( s2e1: s2exp, s2e2: s2exp ) : void = { val () = fprint(out, "(<= ") // end of [val] val () = emit_s2exp(out, s2e1) val () = fprint(out, " ") val () = emit_s2exp(out, s2e2) val () = fprint(out, ")") } // fun aux_metdec ( s2es1: s2explst, s2es2: s2explst ) : void = ( case+ s2es1 of | list_nil() => emit_bool(out, false) // list_nil | list_cons(s2e1, nil()) => ( case- s2es2 of | list_cons(s2e2, nil()) => { val () = aux_lt(s2e1, s2e2) } ) | list_cons(s2e1, s2es1) => ( case- s2es2 of | list_cons(s2e2, s2es2) => { val () = fprint(out, "(or ") val () = aux_lt(s2e1, s2e2) val () = fprint(out, " ") val () = fprint(out, "(and ") val () = aux_lte(s2e1, s2e2) val () = fprint(out, " ") val () = aux_metdec(s2es1, s2es2) val () = fprint(out, ")") val () = fprint(out, ")") } ) ) (* end of [aux_metdec] *) // fun auxsvs ( s2vs: s2varlst ) : void = { // var fwork = lam@ ( s2v: s2var ) : void => { val () = fprint(out, "(") val () = ( emit_s2var(out, s2v); fprint(out, " "); emit_s2rt(out, s2v.srt()) ) (* end of [val] *) val () = fprint(out, ")") } (* end of [fwork] *) // val () = fprint(out, "(") val () = list_foreach_clo(s2vs, fwork) val () = fprint(out, ")") // } (* end of [auxsvs] *) // fun auxsps ( s2ps: s2explst ) : void = ( case+ s2ps of | list_nil() => emit_bool(out, true) | list_sing(s2p) => emit_s2exp(out, s2p) // end of [list_sing] | list_cons (s2p, s2ps) => () where { val () = fprint(out, "(and ") // end of [val] val () = emit_s2exp(out, s2p) val () = fprint(out, " ") var fwork = lam@(s2p: s2exp) => ( fprint(out, " ") ; emit_s2exp(out, s2p) ) (* end of [var] *) val () = list_foreach_clo(s2ps, fwork) val () = fprint(out, ")") } (* end of [list_cons] *) ) // fun auxuni ( s2e0: s2exp ) : void = let // val- S2Euni ( s2vs, s2ps, s2e_body ) = s2e0.s2exp_node // val issvs = list_is_cons(s2vs) val issps = list_is_cons(s2ps) // val () = if issvs then fprint(out, "(forall ") // end of [if] // val () = if issvs then auxsvs(s2vs) // val () = if issvs then fprint(out, " ") // val () = if issps then fprint(out, "(=> ") // val () = if issps then auxsps(s2ps) // val () = if issps then fprint(out, " ") // val () = emit_s2exp(out, s2e_body) // val () = if issps then fprint(out, ")") // val () = if issvs then fprint(out, ")") // in // nothing end // end of [auxuni] // fun auxexi ( s2e0: s2exp ) : void = let // val- S2Eexi ( s2vs, s2ps, s2e_body ) = s2e0.s2exp_node // val issvs = list_is_cons(s2vs) val issps = list_is_cons(s2ps) // val () = if issvs then fprint(out, "(exists ") // end of [if] // val () = if issvs then auxsvs(s2vs) // val () = if issvs then fprint(out, " ") // val () = if issps then fprint(out, "(and ") // val () = if issps then auxsps(s2ps) // val () = if issps then fprint(out, " ") // val () = emit_s2exp(out, s2e_body) // val () = if issps then fprint(out, ")") // val () = if issvs then fprint(out, ")") // in // nothing end // end of [auxexi] // in // case+ s2e0.s2exp_node of // case+ | S2Eint(int) => fprint(out, int) | S2Eintinf(rep) => fprint(out, rep) | S2Ecst(s2c) => emit_s2cst(out, s2c) | S2Evar(s2v) => emit_s2var(out, s2v) // | S2Eeqeq (s2e1, s2e2) => { val () = fprint (out, "(s2exp_eqeq (=") // end of [val] val () = fprint(out, " ") val () = emit_s2exp(out, s2e1) val () = fprint(out, " ") val () = emit_s2exp(out, s2e2) val () = fprint(out, "))") } // | S2Esizeof(s2e) => { val () = fprint(out, "(s2exp_sizeof ") val () = emit_s2exp(out, s2e) val () = fprintln! (out, ")") } // | S2Eapp ( s2e_fun, s2es_arg ) => { val () = fprint(out, "(") val () = emit_s2exp(out, s2e_fun) // local var fwork = lam@ ( s2e: s2exp ) : void = ( fprint(out, " "); emit_s2exp(out, s2e) ) (* end of [list_foreach$fwork] *) in (* in-of-local*) val () = list_foreach_clo(s2es_arg, fwork) end // end of [local] // val () = fprint(out, ")") } (* end of [S2Eapp] *) // | S2Emetdec (s2es1, s2es2) => { val () = fprint(out, "(") val () = fprint(out, "s2exp_metdec") // end of [val] val () = fprint(out, " ") val () = aux_metdec(s2es1, s2es2) val () = fprint(out, ")") } // | S2Etop(knd, s2e) => emit_s2exp(out, s2e) // | S2Euni _ => auxuni(s2e0) | S2Eexi _ => auxexi(s2e0) // | S2Efun ( npf, s2es_arg, s2e_res ) => let val isarg = list_is_cons(s2es_arg) // end of [val] val () = fprint(out, "(s2exp_fun ") // end of [val] val () = if isarg then fprint(out, "(=> ") // end of [if] val () = if isarg then auxsps(s2es_arg) val () = if isarg then fprint(out, " ") val () = emit_s2exp(out, s2e_res) val () = if isarg then fprint(out, ")") val ((*closed*)) = fprint(out, ")") in // nothing end // end of [S2Efun] // | _(*rest-of-s2exp*) => fprint(out, s2e0) // end // end of [emit_s2exp] (* ****** ****** *) implement emit_decl_s2cst (out, s2c) = let // fun auxs2t ( s2t: s2rt ) : void = ( // case+ s2t of | S2RTfun ( s2ts_arg, s2t_res ) => { val () = emit_s2rtlst(out, s2ts_arg) // end of [val] val () = fprint(out, " ") val () = emit_s2rt(out, s2t_res) } | _(*non-fun*) => (fprint(out, "() "); emit_s2rt(out, s2t)) // ) (* end of [auxs2t] *) // fun auxs2c ( s2c: s2cst ) : void = let // val extdef = s2c.extdef() // val () = fprint(out, "(declare-fun ") // val () = ( case+ extdef of | Some(name) => fprint(out, name) // end of [Some] | None((*void*)) => fprint! (out, s2c.name(), "!", s2c.stamp()) // end of [None] ) val () = fprint(out, " ") val () = auxs2t(s2c.srt()) val () = fprintln! (out, ")") // in // nothing end // end of [auxs2c] // val opt0 = s2cst_get_s2cinterp(s2c) // in // case+ opt0 of | None _ => auxs2c(s2c) | Some _ => ((*global*)) // end // end of [emit_decl_s2cst] (* ****** ****** *) implement emit_decl_s2cstlst (out, s2cs) = let // implement list_foreach$fwork (s2c, env) = emit_decl_s2cst(out, s2c) // in list_foreach(s2cs) end // end of [emit_decl_s2cstlst] (* ****** ****** *) // implement emit_decl_s2var (out, s2v) = { // val () = fprint ( out, "(declare-fun " ) (* fprint *) // val () = emit_s2var(out, s2v) val () = fprint (out, " () ") val () = emit_s2rt(out, s2v.srt()) val () = fprintln! (out, ")") // } (* end of [decl_s2var] *) // implement emit_decl_s2varlst (out, s2vs) = let // implement list_foreach$fwork (s2v, env) = emit_decl_s2var(out, s2v) // in list_foreach(s2vs) end // end of [emit_decl_s2varlst] // (* ****** ****** *) implement emit_solvercmd (out, cmd) = let // (* val () = println! ("emit_solvercmd") *) // in // case+ cmd of // | SOLVERCMDpop() => fprintln! (out, "(pop 1)") | SOLVERCMDpush() => fprintln! (out, "(push 1)") // | SOLVERCMDassert(fml) => { val () = fprint(out, "(assert ") // end of [val] val () = emit_form(out, fml) val () = fprintln! (out, ")") } (* end of [SOLVERCMDassert] *) // | SOLVERCMDchecksat ((*void*)) => fprintln! (out, "(check-sat)") // | SOLVERCMDecholoc(loc) => { val () = fprintln! (out, "(echo \"", loc, "\")") } // | SOLVERCMDpopenv _ => () // removed | SOLVERCMDpushenv _ => () // removed // | SOLVERCMDpopenv2 _ => { val ((*void*)) = fprintln! (out, "(pop 1)") } | SOLVERCMDpushenv2(s2vs) => { val ((*void*)) = fprintln! (out, "(push 1)") val ((*void*)) = emit_decl_s2varlst(out, s2vs) } (* SOLVERCMDpushenv2 *) // end // end of [emit_solvercmd] (* ****** ****** *) implement emit_solvercmdlst (out, cmds) = ( // case+ cmds of | list_nil() => () | list_cons(cmd, cmds) => { val () = emit_solvercmd(out, cmd) val () = emit_solvercmdlst(out, cmds) } (* end of [list_cons] *) // ) (* end of [emit_solvercmdlst] *) (* ****** ****** *) implement emit_preamble(out) = { // macdef emitln(x) = fprintln! (out, ,(x)) // val () = emitln(";;") val () = emitln(";;By [patsolve_smt2]:") val () = emitln(";;") // val () = emitln("(declare-sort s2rt_cls 0)") val () = emitln("(declare-sort s2rt_eff 0)") val () = emitln("(declare-sort s2rt_prop 0)") val () = emitln("(declare-sort s2rt_t0ype 0)") val () = emitln("(declare-sort s2rt_tkind 0)") val () = emitln("(declare-sort s2rt_error 0)") // val () = emitln("(define-sort s2rt_int () Int)") val () = emitln("(define-sort s2rt_addr () Int)") val () = emitln("(define-sort s2rt_bool () Bool)") // val () = emitln("(define-sort file_mode () Int)") // val () = emitln("(define-sort s2rt_view () s2rt_prop)") val () = emitln("(define-sort s2rt_type () s2rt_t0ype)") val () = emitln("(define-sort s2rt_vtype () s2rt_t0ype)") val () = emitln("(define-sort s2rt_vt0ype () s2rt_t0ype)") // val () = emitln("(define-fun unit_p () Bool true)") // val () = emitln("(define-fun s2exp_fun ((x Bool)) Bool x)") val () = emitln("(define-fun s2exp_eqeq ((x Bool)) Bool x)") val () = emitln("(define-fun s2exp_metdec ((x Bool)) Bool x)") // val () = emitln("(declare-fun s2exp_sizeof (s2rt_t0ype) Int)") // val () = emitln("(define-fun neg_int ((x Int)) Int (- x))") val () = emitln("(define-fun abs_int ((x Int)) Int (abs x))") val () = emitln("(define-fun add_int_int ((x Int) (y Int)) Int (+ x y))") val () = emitln("(define-fun sub_int_int ((x Int) (y Int)) Int (- x y))") val () = emitln("(define-fun mul_int_int ((x Int) (y Int)) Int (* x y))") val () = emitln("(define-fun div_int_int ((x Int) (y Int)) Int (div x y))") val () = emitln("(define-fun mod_int_int ((x Int) (y Int)) Int (mod x y))") // val () = emitln("(define-fun idiv_int_int ((x Int) (y Int)) Int (div x y))") val () = emitln("(define-fun ndiv_int_int ((x Int) (y Int)) Int (div x y))") // val () = emitln("(define-fun eq_int_int ((x Int) (y Int)) Bool (= x y))") val () = emitln("(define-fun lt_int_int ((x Int) (y Int)) Bool (< x y))") val () = emitln("(define-fun gt_int_int ((x Int) (y Int)) Bool (> x y))") val () = emitln("(define-fun lte_int_int ((x Int) (y Int)) Bool (<= x y))") val () = emitln("(define-fun gte_int_int ((x Int) (y Int)) Bool (>= x y))") val () = emitln("(define-fun neq_int_int ((x Int) (y Int)) Bool (not (= x y)))") // val () = emitln("(define-fun max_int_int ((x Int) (y Int)) Int (ite (>= x y) x y))") val () = emitln("(define-fun min_int_int ((x Int) (y Int)) Int (ite (<= x y) x y))") // val () = emitln("(define-fun sgn_int ((x Int)) Int (ite (> x 0) 1 (ite (>= x 0) 0 (- 1))))") // val () = emitln("(define-fun null_addr () s2rt_addr 0)") // val () = emitln("(define-fun add_addr_int ((x s2rt_addr) (y Int)) s2rt_addr (+ x y))") val () = emitln("(define-fun sub_addr_int ((x s2rt_addr) (y Int)) s2rt_addr (- x y))") // val () = emitln("(define-fun eq_addr_addr ((x s2rt_addr) (y s2rt_addr)) Bool (= x y))") val () = emitln("(define-fun lt_addr_addr ((x s2rt_addr) (y s2rt_addr)) Bool (< x y))") val () = emitln("(define-fun gt_addr_addr ((x s2rt_addr) (y s2rt_addr)) Bool (> x y))") val () = emitln("(define-fun lte_addr_addr ((x s2rt_addr) (y s2rt_addr)) Bool (<= x y))") val () = emitln("(define-fun gte_addr_addr ((x s2rt_addr) (y s2rt_addr)) Bool (>= x y))") val () = emitln("(define-fun neq_addr_addr ((x s2rt_addr) (y s2rt_addr)) Bool (not (= x y)))") // val () = emitln("(define-fun true_bool () Bool true)") val () = emitln("(define-fun false_bool () Bool false)") // val () = emitln("(define-fun neg_bool ((x Bool)) Bool (not x))") val () = emitln("(define-fun add_bool_bool ((x Bool) (y Bool)) Bool (or x y))") val () = emitln("(define-fun mul_bool_bool ((x Bool) (y Bool)) Bool (and x y))") // val () = emitln("(define-fun eq_bool_bool ((x Bool) (y Bool)) Bool (= x y))") val () = emitln("(define-fun lt_bool_bool ((x Bool) (y Bool)) Bool (and (not x) y))") val () = emitln("(define-fun gt_bool_bool ((x Bool) (y Bool)) Bool (and x (not y)))") val () = emitln("(define-fun neq_bool_bool ((x Bool) (y Bool)) Bool (not (= x y)))") val () = emitln("(define-fun lte_bool_bool ((x Bool) (y Bool)) Bool (or (not x) y))") val () = emitln("(define-fun gte_bool_bool ((x Bool) (y Bool)) Bool (or x (not y)))") // } (* end of [emit_preamble] *) (* ****** ****** *) implement emit_preamble_real(out) = { // macdef emitln(x) = fprintln! (out, ,(x)) // val () = emitln(";;") val () = emitln(";;emit_preamble_real()") val () = emitln(";;") // val () = emitln("(define-sort s2rt_real () Real)") // val () = emitln("(define-fun int2real ((x Int)) Real (to_real x))") val () = emitln("(define-fun floor_real ((x Real)) Int (to_int x))") val () = emitln("(define-fun isint_real ((x Real)) Bool (is_int x))") // val () = emitln("(define-fun neg_real ((x Real)) Real (- x))") val () = emitln("(define-fun abs_real ((x Real)) Real (ite (>= x 0.0) x (- x)))") // val () = emitln("(define-fun add_real_real ((x Real) (y Real)) Real (+ x y))") val () = emitln("(define-fun sub_real_real ((x Real) (y Real)) Real (- x y))") val () = emitln("(define-fun mul_real_real ((x Real) (y Real)) Real (* x y))") val () = emitln("(define-fun div_real_real ((x Real) (y Real)) Real (/ x y))") // val () = emitln("(define-fun eq_real_real ((x Real) (y Real)) Bool (= x y))") val () = emitln("(define-fun lt_real_real ((x Real) (y Real)) Bool (< x y))") val () = emitln("(define-fun gt_real_real ((x Real) (y Real)) Bool (> x y))") val () = emitln("(define-fun lte_real_real ((x Real) (y Real)) Bool (<= x y))") val () = emitln("(define-fun gte_real_real ((x Real) (y Real)) Bool (>= x y))") val () = emitln("(define-fun neq_real_real ((x Real) (y Real)) Bool (not (= x y)))") // val () = emitln("(define-fun max_real_real ((x Real) (y Real)) Real (ite (>= x y) x y))") val () = emitln("(define-fun min_real_real ((x Real) (y Real)) Real (ite (<= x y) x y))") // val () = emitln("(define-fun sgn_real ((x Real)) Int (ite (> x 0.0) 1 (ite (>= x 0.0) 0 (- 1))))") // } (* end of [emit_preamble_real] *) (* ****** ****** *) implement emit_the_s2cstmap (out) = () where { // macdef emitln(x) = fprintln! (out, ,(x)) // fun auxlst ( s2cs: s2cstlst ) : void = ( // case+ s2cs of | list_nil() => () | list_cons(s2c, s2cs) => let val n0 = s2cst_get_nused(s2c) val () = if n0 > 0 then emit_decl_s2cst(out, s2c) // end of [val] in auxlst(s2cs) end // end of [list_cons] // ) (* end of [auxlst] *) // val s2cs = the_s2cstmap_listize() // val () = emitln(";;") val () = emitln(";;emit_the_s2cstmap()") val () = emitln(";;") // val ((*void*)) = auxlst($UN.list_vt2t(s2cs)) // val ((*freed*)) = list_vt_free(s2cs) // } (* end of [emit_the_s2cstmap] *) (* ****** ****** *) (* end of [patsolve_smt2_solving_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/SOLVING/patsolve_smt2_solving_ctx.dats0000644000175000017500000000117513431250607031461 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) // #ifndef PATSOLVE_SMT2_SOLVING #include "./myheader.hats" #endif // end of [ifndef] // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) absvtype SMT2_context = ptr (* ****** ****** *) extern fun the_SMT2_context_vget ( // argumentless ) : ( SMT2_context - void | SMT2_context ) = "ext#patsolve_the_SMT2_context_vget" (* ****** ****** *) // implement the_SMT2_context_vget() = $UN.castvwtp0(the_null_ptr) // (* ****** ****** *) (* end of [patsolve_smt2_solving_ctx.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/SOLVING/patsolve_smt2_solving_smtenv.dats0000644000175000017500000001446713431250607032207 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) // #ifndef PATSOLVE_SMT2_SOLVING #include "./myheader.hats" #endif // end of [ifndef] // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // staload "./patsolve_smt2_solving_ctx.dats" // (* ****** ****** *) // extern fun SMT2_assert(env: !smtenv, form): void // (* ****** ****** *) // datavtype SMT2_solver = SMT2_SOLVER of List0_vt(solvercmd) // (* ****** ****** *) // fun SMT2_solver_pop ( solver: !SMT2_solver ) : void = { // val+@SMT2_SOLVER(xs) = solver val ((*void*)) = ( // xs := list_vt_cons(SOLVERCMDpop(), xs) // ) (* end of [val] *) prval ((*folded*)) = fold@(solver) } (* end of [SMT2_solver_pop] *) // fun SMT2_solver_push ( solver: !SMT2_solver ) : void = { val+@SMT2_SOLVER(xs) = solver val ((*void*)) = ( // xs := list_vt_cons(SOLVERCMDpush(), xs) // ) (* end of [val] *) prval ((*folded*)) = fold@(solver) } (* end of [SMT2_solver_push] *) // (* ****** ****** *) fun SMT2_solver_echoloc ( solver: !SMT2_solver, loc: loc_t ) : void = { val+@SMT2_SOLVER(xs) = solver val ((*void*)) = ( // xs := list_vt_cons(SOLVERCMDecholoc(loc), xs) // ) (* end of [val] *) prval ((*folded*)) = fold@(solver) // } (* end of [SMT2_solver_echoloc] *) (* ****** ****** *) // fun SMT2_solver_checksat ( solver: !SMT2_solver ) : void = { val+@SMT2_SOLVER(xs) = solver val ((*void*)) = ( // xs := list_vt_cons(SOLVERCMDchecksat(), xs) // ) (* end of [val] *) prval ((*folded*)) = fold@(solver) } (* end of [SMT2_solver_checksat] *) // fun SMT2_solver_assert ( solver: !SMT2_solver, fml: form ) : void = { // val+@SMT2_SOLVER(xs) = solver val ((*void*)) = ( xs := list_vt_cons(SOLVERCMDassert(fml), xs) ) (* end of [val] *) prval ((*folded*)) = fold@(solver) // } (* end of [SMT2_solver_assert] *) // (* ****** ****** *) // fun SMT2_solver_popenv ( solver: !SMT2_solver, s2vs: s2varlst ) : void = { // val s2vs = list_vt2t(list_reverse(s2vs)) // val+@SMT2_SOLVER(xs) = solver val ((*void*)) = ( xs := list_vt_cons(SOLVERCMDpopenv(s2vs), xs) ) (* end of [val] *) // prval ((*folded*)) = fold@(solver) // } (* end of [SMT2_solver_popenv] *) // fun SMT2_solver_pushenv (solver: !SMT2_solver): void = { // val+@SMT2_SOLVER(xs) = solver val ((*void*)) = ( xs := list_vt_cons(SOLVERCMDpushenv(), xs) ) (* end of [val] *) // prval ((*folded*)) = fold@(solver) // } (* end of [SMT2_solver_pushenv] *) // (* ****** ****** *) // fun SMT2_solver_getfree ( solver: SMT2_solver ) : List0_vt(solvercmd) = xs where { // val+~SMT2_SOLVER(xs) = solver // } (* end of [SMT2_solver_getfree] *) // (* ****** ****** *) datavtype smtenv = SMTENV of ( smtenv_struct ) where smtenv_struct = @{ // smtenv_solver= SMT2_solver , smtenv_s2varlst = s2varlst , smtenv_s2varlstlst = List0_vt(s2varlst) // } (* end of [smtenv_struct] *) (* ****** ****** *) // extern fun smtenv_s2varlstlst_vt_free (xss: List0_vt(s2varlst)): void // implement smtenv_s2varlstlst_vt_free(xss) = list_vt_free(xss) // (* ****** ****** *) assume smtenv_vtype = smtenv assume smtenv_push_v = unit_v (* ****** ****** *) implement smtenv_create () = env where { // val env = SMTENV(_) // val+SMTENV(env_s) = env // val () = ( env_s.smtenv_solver := SMT2_SOLVER(nil_vt) ) // val () = env_s.smtenv_s2varlst := nil((*void*)) val () = env_s.smtenv_s2varlstlst := nil_vt(*void*) // prval () = fold@(env) // } (* end of [smtenv_create] *) (* ****** ****** *) implement smtenv_destroy (env) = xs where { // val+~SMTENV(env_s) = env // val xs = SMT2_solver_getfree(env_s.smtenv_solver) val () = smtenv_s2varlstlst_vt_free(env_s.smtenv_s2varlstlst) // } (* end of [smtenv_destroy] *) (* ****** ****** *) implement smtenv_pop (pf | env) = let // prval unit_v((*void*)) = pf // val+@SMTENV(env_s) = env // val ((*void*)) = SMT2_solver_popenv ( env_s.smtenv_solver , env_s.smtenv_s2varlst ) val s2vss = env_s.smtenv_s2varlstlst val-~list_vt_cons(s2vs, s2vss) = s2vss val ((*void*)) = env_s.smtenv_s2varlst := s2vs val ((*void*)) = env_s.smtenv_s2varlstlst := s2vss // prval ((*folded*)) = fold@(env) // in // nothing end // end of [smtenv_pop] (* ****** ****** *) implement smtenv_push (env) = let // val+@SMTENV(env_s) = env // val ((*void*)) = SMT2_solver_pushenv(env_s.smtenv_solver) // val s2vs = env_s.smtenv_s2varlst val s2vss = env_s.smtenv_s2varlstlst val ((*void*)) = env_s.smtenv_s2varlst := nil((*void*)) val ((*void*)) = env_s.smtenv_s2varlstlst := cons_vt(s2vs, s2vss) // prval ((*folded*)) = fold@(env) // in (unit_v() | ()) end // end of [smtenv_push] (* ****** ****** *) implement smtenv_add_s2var (env, s2v0) = () where { // val+@SMTENV(env_s) = env // val s2vs = env_s.smtenv_s2varlst val ((*void*)) = env_s.smtenv_s2varlst := cons(s2v0, s2vs) prval ((*void*)) = fold@(env) // } (* end of [smtenv_add_s2var] *) (* ****** ****** *) implement smtenv_add_s2exp (env, s2p0) = { // val s2p0 = formula_make_s2exp (env, s2p0) // val+ @SMTENV(env_s) = env // val ((*void*)) = SMT2_solver_assert(env_s.smtenv_solver, s2p0) // prval ((*folded*)) = fold@(env) // } (* end of [smtenv_add_s2exp] *) (* ****** ****** *) // implement smtenv_add_h3ypo (env, h3p0) = let // (* val () = fprintln! ( stdout_ref , "smtenv_add_h3ypo: h3p0 = ", h3p0 ) (* end of [val] *) *) // in // case+ h3p0.h3ypo_node of (* case+ *) | H3YPOprop s2p => smtenv_add_s2exp(env, s2p) // end of [H3YPOprop] // | H3YPObind (s2v1, s2e2) => let in if s2var_is_impred(s2v1) then () else let val s2p = s2exp_eqeq (s2exp_var(s2v1), s2e2) // end of [val] in smtenv_add_s2exp(env, s2p) end // end of [else] end // end of [H3YPObind] // | H3YPOeqeq (s2e1, s2e2) => ( smtenv_add_s2exp(env, s2exp_eqeq(s2e1, s2e2)) ) (* end of [H3YPOeqeq] *) // end // end of [smtenv_add_h3ypo] (* ****** ****** *) implement smtenv_solve_formula (env, loc0, s2p0) = { // val+ @SMTENV(env_s) = env // val () = SMT2_solver_push(env_s.smtenv_solver) // val () = SMT2_solver_assert (env_s.smtenv_solver, formula_not(s2p0)) // val () = SMT2_solver_echoloc ( env_s.smtenv_solver, loc0(*constraint*) ) (* end of [val] *) // val () = SMT2_solver_checksat(env_s.smtenv_solver) // val () = SMT2_solver_pop(env_s.smtenv_solver) // prval ((*void*)) = fold@(env) // } (* end of [smtenv_solve_formula] *) (* ****** ****** *) (* end of [patsolve_smt2_solving_smtenv.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/patsolve_smt2_mylib.dats0000644000175000017500000000154513431250607027116 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) (* // ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2016 // ** Author: William Blair ** Authoremail: wdblairATgmailDOTcom ** Start time: Some time in 2015 // *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #define LIBJSONC_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-libjson-c" // (* ****** ****** *) // #staload "{$LIBJSONC}/DATS/json.dats" // (* ****** ****** *) // local #include "prelude/DATS/filebas.dats" in (*nothing*) end // end of [local] // (* ****** ****** *) // local #include "{$LIBJSONC}/DATS/json_ML.dats" in (*nothing*) end // end of [local] // (* ****** ****** *) (* end of [patsolve_smt2_mylib.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/patsolve_smt2_commarg.dats0000644000175000017500000003266113431250607027432 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) (* // ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2016 // ** Author: William Blair ** Authoremail: wdblairATgmailDOTcom ** Start time: Some time in 2015 // *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDIO = "libats/libc/SATS/stdio.sats" // (* ****** ****** *) // #define PATSOLVE_targetloc"./../ATS-extsolve" // (* ****** ****** *) // #staload "{$PATSOLVE}/SATS/patsolve_cnstrnt.sats" #staload "{$PATSOLVE}/SATS/patsolve_parsing.sats" // (* ****** ****** *) staload "./../SATS/patsolve_smt2_commarg.sats" staload "./../SATS/patsolve_smt2_solving.sats" (* ****** ****** *) implement fprint_commarg(out, ca) = ( // case+ ca of // | CAhelp(str) => fprint! (out, "CAhelp(", str, ")") // | CAgitem(str) => fprint! (out, "CAgitem(", str, ")") // | CAinput(str) => fprint! (out, "CAinput(", str, ")") // | CAoutput(knd, str) => fprint! (out, "CAoutput(", knd, ", ", str, ")") // | CAprintln(str) => fprint! (out, "CAprintln(", str, ")") | CAprintfile(str) => fprint! (out, "CAprintfile(", str, ")") // | CAargend((*void*)) => fprint! (out, "CAargend(", ")") // ) (* end of [fprint_commarg] *) (* ****** ****** *) fun{ } argv_getopt_at {n:int}{i:nat} ( n: int n, argv: !argv(n), i: int i ) : stropt = ( // if i < n then stropt_some (argv[i]) else stropt_none () // end of [if] // ) (* end of [argv_getopt_at] *) (* ****** ****** *) implement patsolve_smt2_cmdline (argc, argv) = let // vtypedef res_vt = commarglst_vt // fun aux {n:int} {i:nat | i <= n} ( argc: int n , argv: !argv(n) , i: int i, res0: res_vt ) : res_vt = let in // if i < argc then let // val arg = argv[i] // in // case+ arg of // | "-h" => let val ca = CAhelp(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of ... | "--help" => let val ca = CAhelp(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of ... // | "-i" => let val ca = CAinput(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... | "--input" => let val ca = CAinput(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... // | "-o" => let val ca = CAoutput(0, arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... | "--output" => let val ca = CAoutput(0, arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... | "--output-w" => let val ca = CAoutput(1, arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... | "--output-a" => let val ca = CAoutput(2, arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... // | "--println" => let val ca = CAprintln(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... // | "--printfile" => let val ca = CAprintfile(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... // | _ (*rest*) => let val ca = CAgitem(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of [...] // end // end of [then] else res0 // end of [else] // end // end of [aux] // and aux2 {n:int} {i:nat | i <= n} ( argc: int n , argv: !argv(n) , i: int i, res0: res_vt ) : res_vt = let in if i < argc then let // val arg = argv[i] // val ca = CAgitem(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of [then] else res0 // end of [else] // end // end of [aux2] // val args = aux(argc, argv, 0, nil_vt) // in // list_vt_reverse(list_vt_cons(CAargend(), args)) // end // end of [patsolve_smt2_cmdline] (* ****** ****** *) // extern fun patsolve_smt2_help(): void // extern fun patsolve_smt2_gitem(string): void // extern fun patsolve_smt2_input((*void*)): void extern fun patsolve_smt2_input_arg(string): void // extern fun patsolve_smt2_output(knd: int): void extern fun patsolve_smt2_output_arg(string): void // extern fun patsolve_smt2_println(): void extern fun patsolve_smt2_printfile(): void extern fun patsolve_smt2_printfile_arg(string): void // extern fun patsolve_smt2_argend((*void*)): void // extern fun patsolve_smt2_commarglst_finalize(): void // (* ****** ****** *) typedef state_struct = @{ // nerr= int // , input= int // , ninput= int // , inpfil_ref= FILEref // , output= int // , fopen_out= int , outfil_ref= FILEref , outfil_mod= file_mode // , println= int , printfile= int // , constraint_real= int // } (* end of [state_struct] *) (* ****** ****** *) local // var the_state: state_struct? // val () = the_state.nerr := 0 // val () = the_state.input := 0 val () = the_state.ninput := 0 // val () = the_state.inpfil_ref := stdin_ref // val () = the_state.output := 0 // val () = the_state.fopen_out := 0 val () = the_state.outfil_ref := stdout_ref val () = the_state.outfil_mod := file_mode_w // val () = the_state.println := 0 val () = the_state.printfile := 0 // val () = the_state.constraint_real := 0 // in (* in-of-local *) // val the_state : ref(state_struct) = ref_make_viewptr(view@the_state | addr@the_state) // end // end of [local] (* ****** ****** *) // implement the_constraint_real ((*void*)) = !the_state.constraint_real // (* ****** ****** *) fun process_arg (x: commarg): void = let // (* val () = fprintln! ( stdout_ref , "patsolve_smt2_commarglst: process_arg: x = ", x ) (* end of [val] *) *) // in // case+ x of // | CAhelp _ => patsolve_smt2_help() // | CAgitem (str) => patsolve_smt2_gitem(str) // CAgitem // | CAinput _ => patsolve_smt2_input() // | CAoutput (knd, _) => patsolve_smt2_output(knd) // CAoutput // | CAprintln _ => patsolve_smt2_println() | CAprintfile _ => patsolve_smt2_printfile() // | CAargend((*void*)) => patsolve_smt2_argend() // end // end of [process_arg] (* ****** ****** *) implement patsolve_smt2_commarglst (xs) = let (* val () = println! ("patsolve_smt2_commarglst") *) in // case+ xs of | ~list_vt_cons (x, xs) => let val () = process_arg(x) in patsolve_smt2_commarglst (xs) end // end of [list_vt_cons] // | ~list_vt_nil ((*void*)) => patsolve_smt2_commarglst_finalize () // end of [list_vt_nil] // end // end of [patsolve_smt2_commarglst] (* ****** ****** *) implement patsolve_smt2_help() = let // val out = stdout_ref val cmdname = "patsolve_smt2" // in // fprintln! (out, "Usage: ", cmdname, " ... \n"); fprintln! (out, "where a is of one of the following forms:\n"); // fprintln! (out, " -h (for printing out this help usage)"); fprintln! (out, " -i (input from )"); fprintln! (out, " -o (output into )"); // fprintln! (out); // fprintln! (out, " --help (for printing out this help usage)"); // fprintln! (out, " --input (input from )"); // fprintln! (out, " --output (output into )"); fprintln! (out, " --output-w (output-write into )"); fprintln! (out, " --output-a (output-append into )"); // fprintln! (out, " --println (print +newline)"); fprintln! (out, " --printfile (print the content of )"); // fprintln! (out); // end (* end of [patsolve_smt2_help] *) (* ****** ****** *) implement patsolve_smt2_input() = { // (* val () = println! ("patsolve_smt2_input: ...") *) // val () = !the_state.input := 1 val () = !the_state.println := 0 val () = !the_state.printfile := 0 // } (* end of [patsolve_smt2_input] *) (* ****** ****** *) implement patsolve_smt2_output (knd) = { // (* val () = println! ("patsolve_smt2_output: ...") *) // val () = !the_state.input := 0 val () = !the_state.output := 1 val () = !the_state.println := 0 val () = !the_state.printfile := 0 // val () = ( ifcase | knd = 1 => !the_state.outfil_mod := file_mode_w | knd = 2 => !the_state.outfil_mod := file_mode_a | _(* else *) => () ) : void // end of [val] // } (* end of [patsolve_smt2_output] *) (* ****** ****** *) implement patsolve_smt2_println ((*void*)) = { // (* val () = println! ("patsolve_smt2_print: ...") *) // val () = !the_state.input := 0 val () = !the_state.println := 1 val () = !the_state.printfile := 0 // } (* end of [patsolve_smt2_print] *) (* ****** ****** *) implement patsolve_smt2_printfile ((*void*)) = { // (* val () = println! ("patsolve_smt2_print: ...") *) // val () = !the_state.input := 0 val () = !the_state.println := 0 val () = !the_state.printfile := 1 // } (* end of [patsolve_smt2_print] *) (* ****** ****** *) implement patsolve_smt2_gitem(arg) = let // (* val () = println! ( "patsolve_smt2_gitem: arg = ", arg ) (* println! *) *) // macdef input() = (!the_state.input > 0) macdef output() = (!the_state.output > 0) macdef println() = (!the_state.println > 0) macdef printfile() = (!the_state.printfile > 0) // in // case+ 0 of // | _ when input() => { val () = patsolve_smt2_input_arg(arg) val () = ( !the_state.ninput := !the_state.ninput+1 ) } (* input() *) | _ when output() => { val () = !the_state.output := 0 val () = patsolve_smt2_output_arg(arg) } (* input() *) // | _ when println() => { val () = fprintln! (!the_state.outfil_ref, arg) // end of [val] } (* input() *) // | _ when printfile() => { val () = patsolve_smt2_printfile_arg(arg) } (* input() *) // | _ when arg = "--real-on" => { val () = !the_state.constraint_real := 1 } | _ when arg = "--real-off" => { val () = !the_state.constraint_real := 0 } // | _ (* unrecognized *) => ((*void*)) // end (* end of [patsolve_smt2_gitem] *) (* ****** ****** *) local fun auxmain (path: string): void = let // val opt = fileref_open_opt(path, file_mode_r) // in // case+ opt of | ~Some_vt(filr) => { // val c3t0 = parse_fileref_constraints(filr) // end of [val] val ((*void*)) = fileref_close(filr) // (* val () = fprint! ( stdout_ref , "patsolve_smt2_input_arg: c3t0 =\n" ) (* end of [fprint] *) val () = fpprint_c3nstr(stdout_ref, c3t0) // end of [val] val () = fprint_newline (stdout_ref) *) // val out = !the_state.outfil_ref val ((*void*)) = c3nstr_smt2_solve(out, c3t0) // } (* end of [Some_vt] *) // | ~None_vt((*void*)) => { // (* val () = !the_state.inpfil_ref := stdin_ref *) // val () = prerrln! ("The file [", path, "] cannot be opened for read!") // end of [val] // } (* end of [None_vt] *) // end // end of [auxmain] in (* in-of-local *) // implement patsolve_smt2_input_arg (path) = ( // case+ path of | "-" => { val inp = stdin_ref val out = !the_state.outfil_ref val c3t0 = parse_fileref_constraints(inp) val ((*void*)) = c3nstr_smt2_solve(out, c3t0) } | _(* ... *) => auxmain(path) // ) (* end of [patsolve_smt2_input_arg] *) // end // end of [local] (* ****** ****** *) implement patsolve_smt2_output_arg (path) = let // val n1 = !the_state.fopen_out val f1 = !the_state.outfil_ref val () = if n1 > 0 then fileref_close(f1) // val fm = !the_state.outfil_mod val opt = fileref_open_opt(path, fm) // in // case+ opt of | ~Some_vt(filr) => { // val () = !the_state.fopen_out := 1 val () = !the_state.outfil_ref := filr // } (* end of [Some_vt] *) // | ~None_vt((*void*)) => { // val () = !the_state.fopen_out := 0 val () = !the_state.outfil_ref := stderr_ref // val () = prerrln! ("The file [", path, "] cannot be opened for write!") // end of [val] // } (* end of [None_vt] *) // end // end of [patsolve_smt2_output_arg] (* ****** ****** *) implement patsolve_smt2_printfile_arg (path) = let // val fm = file_mode_r val opt = fileref_open_opt(path, fm) // val out = !the_state.outfil_ref // fun fcopy ( inp: FILEref, out: FILEref ) : void = let // val iseof = fileref_is_eof(inp) // in // if iseof then fileref_close(inp) else let // val str = fileref_get_line_string(inp) // end of [va] val ((*void*)) = fprintln! (out, str) val ((*freed*)) = strptr_free(str) // in fcopy(inp, out) end (* end of [else] *) // end // end of [fcopy] // in // case+ opt of | ~Some_vt(inp) => fcopy(inp, out) // end of [Some_vt] | ~None_vt((*void*)) => ( fprintln! (out, "(the-file-[", path, "]-cannot-open-for-read)") ) (* end of [None_vt] *) // end // end of [patsolve_smt2_printfile_arg] (* ****** ****** *) implement patsolve_smt2_argend ((*void*)) = let // macdef test() = (!the_state.input > 0 && !the_state.ninput = 0) // in // case+ 0 of | _ when test() => { // val inp = stdin_ref val out = !the_state.outfil_ref val c3t0 = parse_fileref_constraints(inp) val ((*void*)) = c3nstr_smt2_solve(out, c3t0) // } (* end of [test] *) | _ (*rest*) => ((*ignored*)) // end (* end of [patsolve_smt2_argend] *) (* ****** ****** *) implement patsolve_smt2_commarglst_finalize ((*void*)) = { // val n1 = !the_state.fopen_out val f1 = !the_state.outfil_ref val () = if n1 > 0 then fileref_close(f1) // } (* end of [patsolve_smt2_commarglst_finalize] *) (* ****** ****** *) (* end of [patsolve_smt2_commarg.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/patsolve_smt2_solving.dats0000644000175000017500000002244413431250607027464 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2015 *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #define PATSOLVE_targetloc "./../ATS-extsolve" // (* ****** ****** *) // #staload "{$PATSOLVE}/SATS/patsolve_cnstrnt.sats" #staload "{$PATSOLVE}/SATS/patsolve_parsing.sats" // (* ****** ****** *) // #staload "./../SATS/patsolve_smt2_commarg.sats" #staload "./../SATS/patsolve_smt2_solving.sats" // (* ****** ****** *) // implement fprint_val = fprint_s2cst implement fprint_val = fprint_s2var implement fprint_val = fprint_s2Var implement fprint_val = fprint_s2exp implement fprint_val = fprint_s3itm // implement fprint_val
= fprint_form implement fprint_val = fprint_solvercmd // (* ****** ****** *) // implement print_solvercmd(x0) = fprint_solvercmd(stdout_ref, x0) implement prerr_solvercmd(x0) = fprint_solvercmd(stderr_ref, x0) // implement fprint_solvercmd (out, x0) = ( // case+ x0 of | SOLVERCMDpop() => fprint! (out, "SOLVERCMDpop()") | SOLVERCMDpush() => fprint! (out, "SOLVERCMDpush()") // | SOLVERCMDassert(fml) => fprint! (out, "SOLVERCMDassert(", fml, ")") | SOLVERCMDchecksat() => fprint! (out, "SOLVERCMDchecksat()") // | SOLVERCMDecholoc(loc) => fprint! (out, "SOLVERCMDecholoc(", loc, ")") // | SOLVERCMDpopenv(s2vs) => fprint! (out, "SOLVERCMDpopenv(", s2vs, ")") | SOLVERCMDpushenv((*void*)) => fprint! (out, "SOLVERCMDpushenv()") // | SOLVERCMDpopenv2() => fprint! (out, "SOLVERCMDpopenv2()") | SOLVERCMDpushenv2(s2vs) => fprint! (out, "SOLVERCMDpushenv2(", s2vs, ")") // ) (* end of [fprint_solvercmd] *) // (* ****** ****** *) implement solvercmdlst_reverse (xs) = let // vtypedef xs = List_vt(solvercmd) vtypedef ys = List0_vt(solvercmd) vtypedef res = List0_vt(solvercmd) // fun loop ( xs: xs, ys: ys, res: res ) : res = ( // case+ xs of | ~list_vt_nil() => let val () = list_vt_free(ys) in res end // end of [list_vt_nil] | ~list_vt_cons(x, xs) => ( case+ x of | SOLVERCMDpopenv _ => let val ys = list_vt_cons(x, ys) val res = list_vt_cons(SOLVERCMDpopenv2(), res) in loop(xs, ys, res) end // end of [SOLVERCMDpopenv] | SOLVERCMDpushenv _ => let val-~list_vt_cons(y, ys) = ys val- SOLVERCMDpopenv(s2vs) = y val res = list_vt_cons(SOLVERCMDpushenv2(s2vs), res) in loop(xs, ys, res) end // end of [SOLVERCMDpushenv] | _(*rest-of-solvercmd*) => loop(xs, ys, list_vt_cons(x, res)) ) // ) (* end of [loop] *) // in loop(xs, list_vt_nil(), list_vt_nil()) end // end of [solvercmdlst_reverse] (* ****** ****** *) // extern fun c3nstr_solve_main (env: !smtenv, c3t: c3nstr): void // (* ****** ****** *) // extern fun c3nstr_solve_errmsg (c3t: c3nstr, unsolved: uint): int // implement c3nstr_solve_errmsg (c3t, unsolved) = 0 where { // val () = ( // if unsolved = 0u then let val out = stderr_ref val loc = c3t.c3nstr_loc val c3tk = c3t.c3nstr_kind in // case+ c3tk of | C3TKmain() => ( fprintln! (out, "UnsolvedConstraint(main)@", loc, ":", c3t) ) | C3TKtermet_isnat() => ( fprintln! (out, "UnsolvedConstraint(termet_isnat)@", loc, ":", c3t) ) | C3TKtermet_isdec() => ( fprintln! (out, "UnsolvedConstraint(termet_isdec)@", loc, ":", c3t) ) | _(*rest-of-C3TK*) => ( fprintln! (out, "UnsolvedConstraint(unclassified)@", loc, ":", c3t) ) // end // end of [then] // ) (* end of [val] *) // } (* end of [c3nstr_solve_errmsg] *) // (* ****** ****** *) extern fun c3nstr_solve_prop ( env: !smtenv, loc0: loc_t, s2p: s2exp ) : void // end-of-function (* ****** ****** *) extern fun c3nstr_solve_itmlst ( env: !smtenv, loc0: loc_t, s3is: s3itmlst ) : void // end-of-function (* ****** ****** *) extern fun c3nstr_solve_itmlst_cnstr ( env: !smtenv , loc0: loc_t, s3is: s3itmlst, c3t: c3nstr ) : void // end-of-function (* ****** ****** *) extern fun c3nstr_solve_itmlst_disj ( env: !smtenv , loc0: loc_t, s3is: s3itmlst, s3iss: s3itmlstlst ) : void // end-of-function (* ****** ****** *) // extern fun c3nstr_solve_solverify (env: !smtenv, loc0: loc_t, s2e_prop: s2exp): void // (* ****** ****** *) implement c3nstr_solve_prop ( env, loc0, s2p0 ) = let // val s2p0 = formula_make_s2exp (env, s2p0) // in smtenv_solve_formula (env, loc0, s2p0) end // end of [c3nstr_solve_prop] (* ****** ****** *) implement c3nstr_solve_itmlst (env, loc0, s3is) = let // (* val () = println! ("c3str_solve_itmlst: s3is = ", s3is) *) // in // case+ s3is of | list_nil ((*void*)) => () // end of [list_nil] | list_cons (s3i, s3is) => ( case+ s3i of | S3ITMsvar(s2v) => let val () = smtenv_add_s2var(env, s2v) in c3nstr_solve_itmlst(env, loc0, s3is) end // end of [S3ITMsvar] | S3ITMhypo(h3p) => let val () = smtenv_add_h3ypo(env, h3p) in c3nstr_solve_itmlst(env, loc0, s3is) end // end of [S3ITMhypo] | S3ITMsVar(s2V) => c3nstr_solve_itmlst(env, loc0, s3is) | S3ITMcnstr(c3t) => c3nstr_solve_itmlst_cnstr(env, loc0, s3is, c3t) | S3ITMcnstr_ref (loc_ref, opt) => ( case+ opt of | None() => () | Some(c3t) => c3nstr_solve_itmlst_cnstr(env, loc_ref, s3is, c3t) ) (* end of [S3ITMcnstr] *) | S3ITMdisj(s3iss_disj) => ( c3nstr_solve_itmlst_disj(env, loc0, s3is, s3iss_disj) ) (* end of [S3ITMdisj] *) | S3ITMsolassert(s2e_prop) => let val () = smtenv_add_s2exp(env, s2e_prop) // end of [val] in c3nstr_solve_itmlst(env, loc0, s3is) end // end of [S3ITMsolassert] ) // end of [list_cons] // end // end of [c3nstr_solve_itmlst] (* ****** ****** *) implement c3nstr_solve_itmlst_cnstr (env, loc0, s3is, c3t) = () where { val (pf|()) = smtenv_push (env) // val ans1 = c3nstr_solve_main (env, c3t) // end of [val] // val ((*void*)) = smtenv_pop (pf | env) // val ans2 = c3nstr_solve_itmlst (env, loc0, s3is) // end of [val] // } (* end of [c3nstr_solve_itmlst_cnstr] *) (* ****** ****** *) implement c3nstr_solve_itmlst_disj ( env, loc0, s3is0, s3iss(*disj*) ) = let (* val () = ( println! ("c3nstr_solve_itmlst_disj: s3iss = ...") ) (* end of [val] *) *) in // case+ s3iss of | list_nil ((*void*)) => () // end of [list_nil] | list_cons (s3is, s3iss) => let val (pf|()) = smtenv_push (env) val s3is1 = list_append (s3is, s3is0) val ans = c3nstr_solve_itmlst (env, loc0, s3is1) val ((*void*)) = smtenv_pop (pf | env) in c3nstr_solve_itmlst_disj (env, loc0, s3is0, s3iss) end // end of [list_cons] // end // end of [c3nstr_solve_itmlst_disj] (* ****** ****** *) implement c3nstr_solve_solverify (env, loc0, s2e_prop) = let // val s2e_prop = formula_make_s2exp (env, s2e_prop) // in smtenv_solve_formula (env, loc0, s2e_prop) end // end of [c3nstr_solve_solverify] (* ****** ****** *) implement c3nstr_solve_main (env, c3t) = let // val loc0 = c3t.c3nstr_loc // in // case+ c3t.c3nstr_node of (* case+ *) | C3NSTRprop(s2p) => c3nstr_solve_prop(env, loc0, s2p) // end of [C3NSTRprop] | C3NSTRitmlst(s3is) => c3nstr_solve_itmlst(env, loc0, s3is) // end of [C3NSTRitmlst] | C3NSTRsolverify(s2e_prop) => c3nstr_solve_solverify(env, loc0, s2e_prop) // end // end of [c3nstr_solve_main] (* ****** ****** *) (* // fun emit_pop (out: FILEref) = fprintln! (out, "(pop)") // fun emit_push (out: FILEref) = fprintln! (out, "(push)") // *) (* ****** ****** *) implement c3nstr_smt2_solve (out, c3t0) = () where { // val env = smtenv_create() // val (pfpush|()) = smtenv_push(env) // val ((*solved*)) = c3nstr_solve_main(env, c3t0) // val ((*popped*)) = smtenv_pop(pfpush | env) // val cmds = smtenv_destroy(env) val cmds = solvercmdlst_reverse(cmds) // (* // local // val out = stdout_ref // implement fprint_list$sep<> (out) = fprint_newline(out) // in // val ((*void*)) = fprintln! (out, cmds) val ((*void*)) = fprintln!(out, "length(cmds) = ", length(cmds)) // end // end of [local] // *) // val () = emit_preamble(out) // val () = ( if the_constraint_real() > 0 then emit_preamble_real(out) ) // val () = emit_the_s2cstmap(out) // val () = fprintln! (out, ";;") val () = fprintln! (out, ";;ATS-constraints") val () = fprintln! (out, ";;generated during typechecking") val () = fprintln! (out, ";;") // val () = emit_solvercmdlst (out, $UN.list_vt2t(cmds)) // val ((*freed*)) = list_vt_free(cmds) // } (* end of [c3nstr_smt2_solve] *) (* ****** ****** *) #define PATSOLVE_SMT2_SOLVING 1 (* ****** ****** *) local // #include "./SOLVING/patsolve_smt2_solving_ctx.dats" // in // nothing end // end of [local] (* ****** ****** *) local // #include "./SOLVING/patsolve_smt2_solving_emit.dats" // in // nothing end // end of [local] (* ****** ****** *) local // #include "./SOLVING/patsolve_smt2_solving_form.dats" // in // nothing end // end of [local] (* ****** ****** *) local // #include "./SOLVING/patsolve_smt2_solving_smtenv.dats" // in // nothing end // end of [local] (* ****** ****** *) local // #include "./SOLVING/patsolve_smt2_solving_interp.dats" // in // nothing end // end of [local] (* ****** ****** *) (* end of [patsolve_smt2_solving.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/DATS/.keeper0000644000175000017500000000000013431250607023500 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/Makefile0000644000175000017500000000430613431250607023146 0ustar brandonbrandon## ## ATS-extsolve-smt2: ## Solving ATS-constraints with SMT2 ## ###### ## ## Author: Hongwei Xi ## Authoremail: gmhwxiATgmailDOTcom ## ## Start time: May, 2015 ## ###### CC=gcc ###### ifdef \ PATSHOME PATSHOMEQ="$(PATSHOME)" else ifdef ATSHOME PATSHOMEQ="$(ATSHOME)" else PATSHOMEQ="/usr/local/lib/ats2-postiats" endif endif ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### all:: ###### # CFLAGS := CFLAGS += -DATS_MEMALLOC_LIBC # CFLAGS2 := CFLAGS2 +=-DATS_MEMALLOC_LIBC CFLAGS2 +=\ -I${PATSHOMEQ}/contrib/atscntrb # CFLAGS2 += \ $(shell pkg-config --cflags json-c) # ###### EXTRA_CFLAGS := ###### PATSCC2 = \ $(PATSCC) \ $(CFLAGS2) $(EXTRA_CFLAGS) ###### LDFLAGS := LDFLAGS += \ $(shell pkg-config --libs json-c) LDFLAGS +=-lgc ###### INCLUDE := INCLUDE += -I$(PATSHOMEQ) INCLUDE += -I$(PATSHOMEQ)/ccomp/runtime ###### PATSOLVE=./ATS-extsolve ###### SOURCES_SATS= \ $(PATSOLVE)/SATS/patsolve_cnstrnt.sats \ $(PATSOLVE)/SATS/patsolve_parsing.sats \ ###### SOURCES_CATS= \ $(PATSOLVE)/CATS/patsolve_cnstrnt_dats.c \ $(PATSOLVE)/CATS/patsolve_parsing_dats.c \ ###### SOURCES_DATS := SOURCES_DATS += patsolve_smt2_main.dats SOURCES_DATS += patsolve_smt2_mylib.dats SOURCES_DATS += patsolve_smt2_commarg.dats SOURCES_DATS += patsolve_smt2_solving.dats ###### TARGETS_DATS_O = \ $(patsubst %.dats, %_dats.o, $(SOURCES_DATS)) ###### # all:: ; \ $(MAKE) -C ATS-extsolve DATS_C # all:: \ bin_patsolve_smt2 bin_patsolve_smt2: \ $(TARGETS_DATS_O); \ $(PATSCC2) -O2 -o bin/patsolve_smt2 \ $(SOURCES_SATS) $(SOURCES_CATS) $(TARGETS_DATS_O) $(LDFLAGS) # cleanall:: ; $(RMF) bin/patsolve_smt2 # ###### # npm:: all npm:: ; $(CPF) patsolve_smt2_*_dats.c npm/CATS/. npm:: ; $(CPF) patsolve_parsing_sats.c npm/CATS/. npm:: ; $(CPF) patsolve_cnstrnt_sats.c npm/CATS/. # ###### %_dats.o: DATS/%.dats; $(PATSCC2) -c $< ###### testall:: all testall:: cleanall ###### CPF=cp -f RMF=rm -f MAKE=make ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) ./npm/CATS/patsolve_smt2_*_dats.c cleanall:: ; $(RMF) ./npm/CATS/patsolve_parsing_sats.c cleanall:: ; $(RMF) ./npm/CATS/patsolve_cnstrnt_sats.c ###### ## end of [Makefile] ## ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/.keeper0000644000175000017500000000000013431250607022745 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/SATS/0000755000175000017500000000000013431250607022255 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/SATS/patsolve_smt2_commarg.sats0000644000175000017500000000231613431250607027462 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) (* // ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2016 // ** Author: William Blair ** Authoremail: wdblairATgmailDOTcom ** Start time: Some time in 2015 // *) (* ****** ****** *) // #define ATS_PACKNAME "PATSOLVE_SMT2_COMMARG" // (* ****** ****** *) datatype commarg = // | CAhelp of (string) // | CAgitem of (string) // | CAinput of (string) | CAoutput of (int(*knd*), string) // | CAprintln of (string) | CAprintfile of (string) // | CAargend of ((*void*)) // end of [commarg] (* ****** ****** *) // typedef commarglst = List0(commarg) vtypedef commarglst_vt = List0_vt(commarg) // (* ****** ****** *) // fun fprint_commarg ( out: FILEref, ca: commarg ) : void // end-of-fun // overload fprint with fprint_commarg // (* ****** ****** *) // fun patsolve_smt2_cmdline {n:nat} ( argc: int(n), argv: !argv(n) ) : commarglst_vt // end-of-fun // (* ****** ****** *) // fun patsolve_smt2_commarglst (arglst: commarglst_vt): void // (* ****** ****** *) // fun the_constraint_real((*void*)): int // (* ****** ****** *) (* end of [patsolve_smt2_commarg.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/SATS/patsolve_smt2_solving.sats0000644000175000017500000001674313431250607027527 0ustar brandonbrandon(* ## ## ATS-extsolve-smt2: ## Outputing ATS-constraints ## in the format of smt-lib2 ## *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2016 *) (* ****** ****** *) // #define ATS_PACKNAME "PATSOLVE_SMT2_SOLVING" // (* ****** ****** *) // #define PATSOLVE_targetloc "./../ATS-extsolve" // (* ****** ****** *) // #staload "{$PATSOLVE}/SATS/patsolve_cnstrnt.sats" // (* ****** ****** *) // fun c3nstr_smt2_solve (out: FILEref, c3t0: c3nstr): void // (* ****** ****** *) // datatype form = // | FORMint of (int) | FORMbool of bool | FORMintrep of (string(*rep*)) // | FORMs2var of (s2var) | FORMs2cst of (s2cst) // (* | FORMs2exp of (s2exp) // unprocessed // *) // | FORMnot of (form) | FORMconj of (form, form) | FORMdisj of (form, form) | FORMimpl of (form, form) // (* ****** ****** *) // typedef formlst = List0 (form) vtypedef formlst_vt = List0_vt (form) // (* ****** ****** *) // fun print_form : form -> void fun prerr_form : form -> void fun fprint_form : fprint_type(form) // overload print with print_form overload prerr with prerr_form overload fprint with fprint_form // (* ****** ****** *) fun formula_null (): form fun formula_true (): form fun formula_false (): form (* ****** ****** *) fun formula_int (i: int): form fun formula_intrep (rep: string): form (* ****** ****** *) // fun formula_not (form): form fun formula_disj (form, form): form fun formula_conj (form, form): form fun formula_impl (form, form): form // (* ****** ****** *) fun formula_conj_list (formlst): form fun formula_conj_list1 (formlst, form): form fun formula_impl_list1 (formlst, form): form (* ****** ****** *) // fun formula_ineg (form): form // fun formula_iadd (form, form): form fun formula_isub (form, form): form // fun formula_imul (form, form): form // fun formula_idiv (form, form): form fun formula_ndiv (form, form): form // fun formula_ilt (form, form): form fun formula_ilte (form, form): form fun formula_igt (form, form): form fun formula_igte (form, form): form fun formula_ieq (form, form): form fun formula_ineq (form, form): form // (* ****** ****** *) // fun formula_iabs (form): form // fun formula_isgn (form): form // fun formula_imax (form, form): form fun formula_imin (form, form): form // (* ****** ****** *) // fun formula_bneg (form): form // fun formula_badd (form, form): form fun formula_bmul (form, form): form // fun formula_blt (form, form): form fun formula_blte (form, form): form fun formula_bgt (form, form): form fun formula_bgte (form, form): form fun formula_beq (form, form): form fun formula_bneq (form, form): form // (* ****** ****** *) // fun formula_real {p,q:int | q > 0} (num: int(p), den: int(q)): form // fun formula_int2real: (form) -> form // fun formula_neg_real: (form) -> form fun formula_abs_real: (form) -> form // fun formula_add_real_real(form, form): form fun formula_sub_real_real(form, form): form fun formula_mul_real_real(form, form): form fun formula_div_real_real(form, form): form // fun formula_add_int_real(form, form): form fun formula_add_real_int(form, form): form fun formula_sub_int_real(form, form): form fun formula_sub_real_int(form, form): form fun formula_mul_int_real(form, form): form fun formula_div_real_int(form, form): form // fun formula_lt_real_real: (form, form) -> form fun formula_lte_real_real: (form, form) -> form fun formula_gt_real_real: (form, form) -> form fun formula_gte_real_real: (form, form) -> form fun formula_eq_real_real: (form, form) -> form fun formula_neq_real_real: (form, form) -> form // fun formula_lt_real_int: (form, form) -> form fun formula_lte_real_int: (form, form) -> form fun formula_gt_real_int: (form, form) -> form fun formula_gte_real_int: (form, form) -> form fun formula_eq_real_int: (form, form) -> form fun formula_neq_real_int: (form, form) -> form // (* ****** ****** *) // fun formula_cond ( f_cond: form, f_then: form, f_else: form ) : form // end of [formula_cond] // (* ****** ****** *) // fun formula_eqeq(s2e1: form, s2e2: form): form // (* ****** ****** *) // fun formula_sizeof_t0ype(s2e_t0ype: form): form // (* ****** ****** *) // datatype solvercmd = // | SOLVERCMDpop of () | SOLVERCMDpush of () // | SOLVERCMDassert of (form) | SOLVERCMDchecksat of () // | SOLVERCMDecholoc of (loc_t) // | SOLVERCMDpopenv of (s2varlst) | SOLVERCMDpushenv of ((*void*)) // | SOLVERCMDpopenv2 of ((*void*)) | SOLVERCMDpushenv2 of (s2varlst) // (* ****** ****** *) // fun print_solvercmd (solvercmd): void and prerr_solvercmd (solvercmd): void fun fprint_solvercmd : fprint_type(solvercmd) // overload print with print_solvercmd overload prerr with prerr_solvercmd overload fprint with fprint_solvercmd // (* ****** ****** *) // fun solvercmdlst_reverse (List_vt(solvercmd)): List0_vt(solvercmd) // (* ****** ****** *) absvtype smtenv_vtype = ptr vtypedef smtenv = smtenv_vtype (* ****** ****** *) // fun smtenv_create(): smtenv fun smtenv_destroy(env: smtenv): List0_vt(solvercmd) // (* ****** ****** *) // (* fun s2var_pop_payload(s2var): form fun s2var_top_payload(s2var): form fun s2var_push_payload(s2var, form): void *) // (* ****** ****** *) // fun smtenv_add_s2var (env: !smtenv, s2v: s2var): void fun smtenv_add_s2exp (env: !smtenv, s2e: s2exp): void fun smtenv_add_h3ypo (env: !smtenv, h3p: h3ypo): void // (* ****** ****** *) // fun formula_error_s2cst(s2c0: s2cst): form fun formula_error_s2exp(s2e0: s2exp): form // overload formula_error with formula_error_s2cst overload formula_error with formula_error_s2exp // (* ****** ****** *) // fun formula_make_s2cst (env: !smtenv, s2c: s2cst): form (* fun formula_make_s2cst_fresh (env: !smtenv, s2c: s2cst): form *) // fun formula_make_s2var (env: !smtenv, s2v: s2var): form (* fun formula_make_s2var_fresh (env: !smtenv, s2v: s2var): form *) // fun formula_make_s2Var_fresh (env: !smtenv, s2V: s2Var, s2t: s2rt): form // (* ****** ****** *) // fun formula_make_s2exp (env: !smtenv, s2e: s2exp): form fun formulas_make_s2explst (env: !smtenv, s2es: s2explst): formlst fun formulas_make_labs2explst (env: !smtenv, ls2es: labs2explst): formlst // fun formula_make_s2cst_s2explst (env: !smtenv, s2c: s2cst, s2es: s2explst): form // (* ****** ****** *) // fun the_s2cinterp_initize(): void // fun s2cst_get_s2cinterp(s2c: s2cst): s2cstopt // (* ****** ****** *) absview smtenv_push_v (* ****** ****** *) // fun smtenv_pop(smtenv_push_v | !smtenv): void // fun smtenv_push(env: !smtenv): (smtenv_push_v | void) // (* ****** ****** *) // fun smtenv_solve_formula ( env: !smtenv, loc0: loc_t, fml: form ) : void // end-of-function // (* ****** ****** *) // fun emit_form(out: FILEref, fml: form): void // fun emit_s2rt(out: FILEref, s2t: s2rt): void fun emit_s2rtlst(out: FILEref, s2ts: s2rtlst): void // fun emit_s2cst(out: FILEref, s2e: s2cst): void fun emit_s2var(out: FILEref, s2e: s2var): void fun emit_s2exp(out: FILEref, s2e: s2exp): void // fun emit_decl_s2cst(out: FILEref, s2c: s2cst): void fun emit_decl_s2cstlst(out: FILEref, s2cs: s2cstlst): void // fun emit_decl_s2var(out: FILEref, s2v: s2var): void fun emit_decl_s2varlst(out: FILEref, s2vs: s2varlst): void // fun emit_solvercmd(out: FILEref, cmd: solvercmd): void fun emit_solvercmdlst(out: FILEref, cmds: List(solvercmd)): void // (* ****** ****** *) // fun emit_preamble(FILEref): void // fun emit_preamble_real(FILEref): void // (* fun emit_preamble_set(FILEref): void fun emit_preamble_mset(FILEref): void fun emit_preamble_array(FILEref): void *) // (* ****** ****** *) // fun emit_the_s2cstmap(out: FILEref): void // (* ****** ****** *) (* end of [patsolve_smt2_solving.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/SATS/.keeper0000644000175000017500000000000013431250607023517 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-smt2/README0000644000175000017500000000021413431250607022360 0ustar brandonbrandon###### # # README for ATS-extsolve-smt2 # ###### This is for generating constraints in the smt2-lib format. ###### end of [README] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/0000755000175000017500000000000013431250607020525 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/0000755000175000017500000000000013431250607023342 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/DATS/0000755000175000017500000000000013431250607024075 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/DATS/channeg_session.dats0000644000175000017500000001115513431250607030123 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: December, 2015 *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../SATS/channel.sats" staload "./../SATS/channel_session.sats" (* ****** ****** *) // extern castfn channeg1_session_encode{ss:type} : channeg_nullify(ss) - channeg_session(ss) extern castfn channeg1_session_decode{ss:type} : channeg_session(ss) - channeg_nullify(ss) // (* ****** ****** *) implement {a}(*tmp*) channeg1_session_recv (fwork) = let (* // val () = println! ("channeg1_session_recv") // *) in // channeg1_session_encode( // lam(chn, k0) => channeg1_recv(chn, fwork((*void*)), k0) // ) (* channeg1_session_encode *) // end // end of [channeg1_session_recv] (* ****** ****** *) implement {a}(*tmp*) channeg1_session_send (fwork) = let (* // val () = println! ("channeg1_session_send") // *) in // channeg1_session_encode( // lam(chn, k0) => channeg1_send ( chn , lam(chn, msg) => let val () = fwork(chmsg_parse(msg)) in k0(chn) end ) (* channeg1_send *) // ) (* channeg1_session_encode *) // end // end of [channeg1_session_send] (* ****** ****** *) implement {}(*tmp*) channeg1_session_initize (fwork, ssn) = let // val fnullify = channeg1_session_decode(ssn) // in // channeg1_session_encode ( // lam(chn, k0) => let val () = fwork((*bef*)) in fnullify(chn, k0) end // end of [let] // ) (* channeg1_session_encode *) // end // end of [channneg1_session_initize] (* ****** ****** *) implement {}(*tmp*) channeg1_session_finalize (ssn, fwork) = let // val fnullify = channeg1_session_decode(ssn) // in // channeg1_session_encode ( // lam(chn, k0) => fnullify(chn, lam(chn) => let val () = fwork() in k0(chn) end) // ) (* channeg1_session_encode *) // end // end of [channneg1_session_finalize] (* ****** ****** *) // implement channeg1_session_nil() = channeg1_session_encode(lam(chn, k0) => k0(chn)) // (* ****** ****** *) // implement {}(*tmp*) channeg1_session_cons (x, xs) = $UN.cast(channeg1_session_append(x, xs)) // (* ****** ****** *) implement {}(*tmp*) channeg1_session_append (ss1, ss2) = let // val ss1 = channeg1_session_decode(ss1) val ss2 = channeg1_session_decode(ss2) // in channeg1_session_encode(lam(chn, k0) => channeg1_append(chn, k0, ss1, ss2)) end // end of [channel1_session_append] (* ****** ****** *) implement {}(*tmp*) channeg1_session_option_conj (ss0) = let // val ss0 = channeg1_session_decode(ss0) // in channeg1_session_encode(lam(chn, k0) => channeg1_option_conj(chn, k0, ss0)) end // end of [channeg1_session_option_conj] (* ****** ****** *) implement {}(*tmp*) channeg1_session_option_disj (ss0) = let // val ss0 = channeg1_session_decode(ss0) // in channeg1_session_encode(lam(chn, k0) => channeg1_option_disj(chn, k0, ss0)) end // end of [channeg1_session_option_disj] (* ****** ****** *) implement {}(*tmp*) channeg1_session_repeat_conj (ss0) = let // val ss0 = channeg1_session_decode(ss0) // in channeg1_session_encode(lam(chn, k0) => channeg1_repeat_conj(chn, k0, ss0)) end // end of [channeg1_session_repeat_conj] (* ****** ****** *) implement {}(*tmp*) channeg1_session_repeat_disj (ss0) = let // val ss0 = channeg1_session_decode(ss0) // in channeg1_session_encode(lam(chn, k0) => channeg1_repeat_disj(chn, k0, ss0)) end // end of [channeg1_session_repeat_disj] (* ****** ****** *) implement {}(*tmp*) channeg1_session_run (ss0, chn, kx0) = let // val fnullify = channeg1_session_decode(ss0) in fnullify(chn, kx0) // end // end of [channeg1_session_run] (* ****** ****** *) implement {}(*tmp*) channeg1_session_run_close (ss0, chn) = ( // channeg1_session_run(ss0, chn, lam(chn) => channeg1_close(chn)) // ) // end of [channeg1_session_run_close] (* ****** ****** *) (* end of [channeg_session.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/DATS/chanpos.dats0000644000175000017500000001760313431250607026414 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/channel.sats" // (* ****** ****** *) %{^ // var theWorker_cont; // self.onmessage = function(event) { var k0 = theWorker_cont; return ats2jspre_cloref2_app(k0, 0, event.data); } // function ats2js_workersession_chanpos0_recv (chp, k0) { theWorker_cont = k0; return; } function ats2js_workersession_chanpos0_send (chp, x0, k0) { postMessage(x0); return ats2jspre_cloref1_app(k0, 0); } // function ats2js_workersession_chanpos1_recv (chp, k0) { return ats2js_workersession_chanpos0_recv(chp, k0); } function ats2js_workersession_chanpos1_send (chp, x0, k0) { return ats2js_workersession_chanpos0_send(chp, x0, k0); } // %} // end of [%{^] (* ****** ****** *) // %{^ // function ats2js_workersession_chanpos0_close(chp) { return self.close(); } function ats2js_workersession_chanpos1_close(chp) { return self.close(); } // %} // end of [%{^] // (* ****** ****** *) // implement {a}{b} rpc_server (chp, fopr) = let // (* val () = println! ("rpc_server") *) // in // chanpos0_recv{a} ( chp , lam(chp, e) => chanpos0_send{b} ( chp , fopr(chmsg_parse(e)) , lam(chp) => rpc_server_cont(chp, fopr) ) ) // end (* end of [rpc_server] *) (* ****** ****** *) // // HX: looping // implement {a}{b} rpc_server_cont = rpc_server // (* // // HX: one-time service // implement {a}{b} rpc_server_cont(chp, fopr) = chanpos0_close(chp) *) // (* ****** ****** *) // (* fun{} chanpos1_append {ss1,ss2:type} ( chanpos(ssappend(ss1,ss2)), k0: chpcont0_nil , fserv1: chanpos_nullify(ss1), fserv2: chanpos_nullify(ss2) ) : void // end of [chanpos1_append] *) // implement {}(*tmp*) chanpos1_append {ss1,ss2} ( chp, k0, fserv1, fserv2 ) = ( // fserv1 ( $UN.castvwtp0{chanpos(ss1)}(chp) , $UN.castvwtp0{chpcont0_nil}(lam(chp:chanpos(ss2)) = fserv2(chp, k0)) ) (* end of [fserv1] *) // ) (* end of [chanpos1_append] *) // (* ****** ****** *) // implement {}(*tmp*) chanpos1_choose_conj {ss0,ss1} (chp, k0, fserv0, fserv1) = let // val chp0 = $UN.castvwtp0{chanpos()}(chp) // in // chanpos0_recv {int} ( chp0 , lam(chp0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = chanpos1_choose_conj$fwork_tag(tag0) // end of [val] in case+ tag0 of | 0 => fserv0($UN.castvwtp0(chp0), k0) | _ => fserv1($UN.castvwtp0(chp0), k0) end // end of [lam] ) (* end of [chanpos0_recv] *) // end // end of [chanpos1_choose_conj] // (* ****** ****** *) // implement {}(*tmp*) chanpos1_choose_disj {ss0,ss1} (chp, k0, fserv0, fserv1) = let // val chp0 = $UN.castvwtp0{chanpos()}(chp) val tag0 = chanpos1_choose_disj$choose() val ((*void*)) = chanpos1_choose_disj$fwork_tag(tag0) // in // case+ tag0 of | 0 => chanpos0_send{int} ( chp0, tag0, lam(chp0) => fserv0($UN.castvwtp0(chp0), k0) ) (* end of [0] *) | _ => chanpos0_send{int} ( chp0, tag0, lam(chp0) => fserv1($UN.castvwtp0(chp0), k0) ) (* end of [1] *) // end // end of [chanpos1_choose_disj]] // (* ****** ****** *) (* fun{} chanpos1_option_conj {ss:type} ( chanpos(ssconj(ssoption(ss))) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_option_conj] *) // implement {}(*tmp*) chanpos1_option_conj {ss}(chp, k0, fserv) = let // val chp0 = $UN.castvwtp0{chanpos()}(chp) // in // chanpos0_recv {int} ( chp0 , lam(chp0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = chanpos1_option_conj$fwork_tag(tag0) // end of [val] in case+ tag0 of | 0 => k0($UN.castvwtp0(chp0)) | _ => fserv($UN.castvwtp0(chp0), k0) end // end of [lam] ) (* end of [chanpos0_recv] *) // end // end of [chanpos1_option_conj] // (* ****** ****** *) // (* fun{} chanpos1_option_disj {ss:type} ( chanpos(ssdisj(ssoption(ss))) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_option_disj] *) // implement {}(*tmp*) chanpos1_option_disj {ss}(chp, k0, fserv) = let // val chp0 = $UN.castvwtp0{chanpos()}(chp) val tag0 = chanpos1_option_disj$choose() val ((*void*)) = chanpos1_option_disj$fwork_tag(tag0) // in // case+ tag0 of | 0 => chanpos0_send{int}(chp0, tag0, $UN.cast{chpcont0()}(k0)) | _ => chanpos0_send{int} ( chp0, tag0, lam(chp0) => fserv($UN.castvwtp0(chp0), k0) ) (* end of [1] *) // end // end of [chanpos1_option_disj]] // (* ****** ****** *) // implement {}(*tmp*) chanpos1_option_conj$fwork_tag(tag) = () // nothing is done by default // implement {}(*tmp*) chanpos1_option_disj$fwork_tag(tag) = () // nothing is done by default // (* ****** ****** *) (* fun{} chanpos1_repeat_conj {ss:type} ( chanpos(ssconj(ssrepeat(ss))) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_repeat_conj] *) // implement {}(*tmp*) chanpos1_repeat_conj {ss}(chp, k0, fserv) = let // typedef loop = $d2ctype (chanpos1_repeat_conj<>) // fun loop: loop = lam(chp, k0, fserv) => let val chp0 = $UN.castvwtp0{chanpos()}(chp) // end of [val] in // chanpos0_recv {int} ( chp0 , lam(chp0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = chanpos1_repeat_conj$fwork_tag(tag0) // end of [val] in case+ tag0 of | 0 => k0($UN.castvwtp0(chp0)) | _ => fserv($UN.castvwtp0(chp0), lam(chp) => loop($UN.castvwtp0(chp), k0, fserv)) end // end of [lam] ) (* end of [chanpos0_recv] *) // end // end of [loop] // val () = chanpos1_repeat_conj$init<>() // in loop(chp, k0, fserv) end // end of [chanpos1_repeat_conj] // (* ****** ****** *) (* // fun{} chanpos1_repeat_disj {ss:type} ( chanpos(ssrepeat(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_repeat_disj] // *) // implement {}(*tmp*) chanpos1_repeat_disj {ss}(chp, k0, fserv) = let // typedef loop = $d2ctype (chanpos1_repeat_disj<>) // fun loop: loop = lam(chp, k0, fserv) => let val chp0 = $UN.castvwtp0{chanpos()}(chp) val tag0 = chanpos1_repeat_disj$choose() // end of [val] (* val () = console_log ( "chanpos1_repeat_disj: loop: tag0 = " + String(tag0) ) *) val ((*void*)) = chanpos1_repeat_disj$fwork_tag(tag0) // end of [val] in // case+ tag0 of | 0 => chanpos0_send{int}(chp0, tag0, $UN.cast{chpcont0()}(k0)) | _ => chanpos0_send{int} ( chp0, tag0 , lam(chp0) => fserv($UN.castvwtp0(chp0), lam(chp) => loop($UN.castvwtp0(chp), k0, fserv)) // end of [lam] ) (* end of [1] *) // end // end of [loop] // val () = chanpos1_repeat_disj$init<>() // in loop(chp, k0, fserv) end // end of [chanpos1_repeat_disj]] // (* ****** ****** *) // implement {}(*tmp*) chanpos1_repeat_conj$init() = () // nothing is done by default // implement {}(*tmp*) chanpos1_repeat_disj$init() = () // nothing is done by default // implement {}(*tmp*) chanpos1_repeat_conj$fwork_tag(tag) = () // nothing is done by default // implement {}(*tmp*) chanpos1_repeat_disj$fwork_tag(tag) = () // nothing is done by default // (* ****** ****** *) (* end of [chanpos.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/DATS/chanpos_session.dats0000644000175000017500000001115713431250607030155 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: December, 2015 *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../SATS/channel.sats" staload "./../SATS/channel_session.sats" (* ****** ****** *) // extern castfn chanpos1_session_encode{ss:type} : chanpos_nullify(ss) - chanpos_session(ss) extern castfn chanpos1_session_decode{ss:type} : chanpos_session(ss) - chanpos_nullify(ss) // (* ****** ****** *) implement {a}(*tmp*) chanpos1_session_send (fwork) = let (* // val () = println! ("chanpos1_session_send") // *) in // chanpos1_session_encode( // lam(chp, k0) => chanpos1_send(chp, fwork((*void*)), k0) // ) (* chanpos1_session_encode *) // end // end of [chanpos1_session_send] (* ****** ****** *) implement {a}(*tmp*) chanpos1_session_recv (fwork) = let (* // val () = println! ("chanpos1_session_recv") // *) in // chanpos1_session_encode( // lam(chp, k0) => chanpos1_recv ( chp , lam(chp, msg) => let val () = fwork(chmsg_parse(msg)) in k0(chp) end ) (* chanpos1_recv *) // ) (* chanpos1_session_encode *) // end // end of [chanpos1_session_recv] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_initize (fwork, ssp) = let // val fnullify = chanpos1_session_decode(ssp) // in // chanpos1_session_encode ( // lam(chp, k0) => let val () = fwork((*bef*)) in fnullify(chp, k0) end // end of [let] // ) (* chanpos1_session_encode *) // end // end of [channpos1_session_initize] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_finalize (ssp, fwork) = let // val fnullify = chanpos1_session_decode(ssp) // in // chanpos1_session_encode ( // lam(chp, k0) => fnullify(chp, lam(chp) => let val () = fwork() in k0(chp) end) // ) (* chanpos1_session_encode *) // end // end of [channpos1_session_finalize] (* ****** ****** *) // implement chanpos1_session_nil() = chanpos1_session_encode(lam(chp, k0) => k0(chp)) // (* ****** ****** *) // implement {}(*tmp*) chanpos1_session_cons (x, xs) = $UN.cast(chanpos1_session_append(x, xs)) // (* ****** ****** *) implement {}(*tmp*) chanpos1_session_append (ss1, ss2) = let // val ss1 = chanpos1_session_decode(ss1) val ss2 = chanpos1_session_decode(ss2) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_append(chp, k0, ss1, ss2)) end // end of [channel1_session_append] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_option_conj (ss0) = let // val ss0 = chanpos1_session_decode(ss0) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_option_conj(chp, k0, ss0)) end // end of [chanpos1_session_option_conj] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_option_disj (ss0) = let // val ss0 = chanpos1_session_decode(ss0) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_option_disj(chp, k0, ss0)) end // end of [chanpos1_session_option_disj] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_repeat_conj (ss0) = let // val ss0 = chanpos1_session_decode(ss0) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_repeat_conj(chp, k0, ss0)) end // end of [chanpos1_session_repeat_conj] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_repeat_disj (ss0) = let // val ss0 = chanpos1_session_decode(ss0) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_repeat_disj(chp, k0, ss0)) end // end of [chanpos1_session_repeat_disj] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_run (ss0, chp, kx0) = let // val fnullify = chanpos1_session_decode(ss0) in fnullify(chp, kx0) // end // end of [chanpos1_session_run] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_run_close (ss0, chp) = ( // chanpos1_session_run(ss0, chp, lam(chp) => chanpos1_close(chp)) // ) // end of [chanpos1_session_run_close] (* ****** ****** *) (* end of [chanpos_session.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/DATS/chanpos_session2.dats0000644000175000017500000000267013431250607030237 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: December, 2015 *) (* ****** ****** *) staload "./../SATS/channel.sats" staload "./../SATS/channel_session.sats" staload "./../SATS/channel_session2.sats" (* ****** ****** *) implement {}(*tmp*) chanpos1_session_guardby (ssp1, ssp2) = let // implement chanpos1_option_disj$choose<>() = ( if chanpos1_session_guardby$guard<>() then 1 else 0 ) // in chanpos1_session_append(ssp2, chanpos1_session_option_disj(ssp1)) end // end of [chanpos1_session_guardby] (* ****** ****** *) (* end of [chanpos_session2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/DATS/channeg.dats0000644000175000017500000001715213431250607026363 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // (* // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // #include "{$LIBATSCC2JS}/mylibies.hats" // *) // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../SATS/channel.sats" (* ****** ****** *) // %{^ // function ats2js_workersession_channeg0_new_file (file) { var chn = new Worker(file); return chn; } // %} // end of [%{^] // (* ****** ****** *) // %{^ // function ats2js_workersession_channeg0_close(chn) { return chn.terminate(); } function ats2js_workersession_channeg1_close(chn) { return chn.terminate(); } // %} // end of [%{^] // (* ****** ****** *) // %{^ // function ats2js_workersession_channeg0_send(chn, k0) { chn.onmessage = function(event) { return ats2jspre_cloref2_app(k0, chn, event.data); }; return/*void*/; } function ats2js_workersession_channeg0_recv(chn, x0, k0) { chn.postMessage(x0); return ats2jspre_cloref1_app(k0, chn); } // function ats2js_workersession_channeg1_send (chn, k0) { return ats2js_workersession_channeg0_send(chn, k0); } function ats2js_workersession_channeg1_recv (chn, x0, k0) { return ats2js_workersession_channeg0_recv(chn, x0, k0); } // %} // end of [%{^] // (* ****** ****** *) implement {a}{b} rpc_client (chn, arg, fopr) = let // (* val () = println! ("rpc_client") *) // in // channeg0_recv{a} ( chn , arg , lam(chn) => channeg0_send{b} ( chn , lam(chn, e) => fopr(chmsg_parse(e)) ) ) // end (* end of [rpc_client] *) (* ****** ****** *) // (* fun{} channeg1_append {ss1,ss2:type} ( channeg(ssappend(ss1,ss2)), k0: chncont0_nil , fserv1: channeg_nullify(ss1), fserv2: channeg_nullify(ss2) ) : void // end of [channeg1_append] *) // implement {}(*tmp*) channeg1_append {ss1,ss2} ( chn, k0, fserv1, fserv2 ) = ( // fserv1 ( $UN.castvwtp0{channeg(ss1)}(chn) , $UN.castvwtp0{chncont0_nil}(lam(chn:channeg(ss2)) = fserv2(chn, k0)) ) (* end of [fserv1] *) // ) (* end of [channeg1_append] *) // (* ****** ****** *) // implement {}(*tmp*) channeg1_choose_conj {ss0,ss1} (chn, k0, fserv0, fserv1) = let // val chn0 = $UN.castvwtp0{channeg()}(chn) val tag0 = channeg1_choose_conj$choose() val ((*void*)) = channeg1_choose_conj$fwork_tag<>(tag0) // in // case+ tag0 of | 0 => channeg0_recv{int} ( chn0, tag0, lam(chn0) => fserv0($UN.castvwtp0(chn0), k0) ) (* end of [0] *) | _ => channeg0_recv{int} ( chn0, tag0, lam(chn0) => fserv1($UN.castvwtp0(chn0), k0) ) (* end of [1] *) // end // end of [channeg1_choose_conj]] // (* ****** ****** *) // implement {}(*tmp*) channeg1_choose_disj {ss0,ss1} (chn, k0, fserv0, fserv1) = let // val chn0 = $UN.castvwtp0{channeg()}(chn) // in // channeg0_send {int} ( chn0 , lam(chn0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = channeg1_choose_disj$fwork_tag<>(tag0) // end of [val] in case+ tag0 of | 0 => fserv0($UN.castvwtp0(chn0), k0) | _ => fserv1($UN.castvwtp0(chn0), k0) end // end of [lam] ) (* end of [channeg0_send] *) // end // end of [channeg1_choose_disj] // (* ****** ****** *) // implement {}(*tmp*) channeg1_option_conj {ss}(chn, k0, fserv) = let // val chn0 = $UN.castvwtp0{channeg()}(chn) val tag0 = channeg1_option_conj$choose() val ((*void*)) = channeg1_option_conj$fwork_tag<>(tag0) // in // case+ tag0 of | 0 => channeg0_recv{int}(chn0, tag0, $UN.cast{chncont0()}(k0)) | _ => channeg0_recv{int} ( chn0, tag0, lam(chn0) => fserv($UN.castvwtp0(chn0), k0) ) (* end of [1] *) // end // end of [channeg1_option_conj]] // (* ****** ****** *) // implement {}(*tmp*) channeg1_option_disj {ss}(chn, k0, fserv) = let // val chn0 = $UN.castvwtp0{channeg()}(chn) // in // channeg0_send {int} ( chn0 , lam(chn0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = channeg1_option_disj$fwork_tag<>(tag0) // end of [val] in case+ tag0 of | 0 => k0($UN.castvwtp0(chn0)) | _ => fserv($UN.castvwtp0(chn0), k0) end // end of [lam] ) (* end of [channeg0_send] *) // end // end of [channeg1_option_disj] // (* ****** ****** *) // implement {}(*tmp*) channeg1_option_conj$fwork_tag(tag) = () // nothing is done by default // implement {}(*tmp*) channeg1_option_disj$fwork_tag(tag) = () // nothing is done by default // (* ****** ****** *) // (* fun{} channeg1_repeat_conj {ss:type} ( channeg(ssconj(ssrepeat(ss))) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_repeat_conj] *) // implement {}(*tmp*) channeg1_repeat_conj {ss}(chn, k0, fserv) = let // typedef loop = $d2ctype (channeg1_repeat_conj<>) // fun loop: loop = lam(chn, k0, fserv) => let val chn0 = $UN.castvwtp0{channeg()}(chn) val tag0 = channeg1_repeat_conj$choose() // end of [val] val ((*void*)) = channeg1_repeat_conj$fwork_tag<>(tag0) // end of [val] in // case+ tag0 of | 0 => channeg0_recv{int}(chn0, tag0, $UN.cast{chncont0()}(k0)) | _ => channeg0_recv{int} ( chn0, tag0 , lam(chn0) => fserv ( $UN.castvwtp0(chn0) , lam(chn) => channeg1_repeat_conj$spawn(llam() => loop($UN.castvwtp0(chn), k0, fserv)) ) (*fserv*) // end of [lam] ) (* end of [1] *) // end // end of [loop] // val () = channeg1_repeat_conj$init<>() // in channeg1_repeat_conj$spawn(llam() => loop(chn, k0, fserv)) end // end of [channeg1_repeat_conj]] // (* ****** ****** *) // (* fun{} channeg1_repeat_disj {ss:type} ( channeg(ssrepeat(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_repeat_disj] *) // implement {}(*tmp*) channeg1_repeat_disj {ss}(chn, k0, fserv) = let // typedef loop = $d2ctype (channeg1_repeat_disj<>) // fun loop: loop = lam(chn, k0, fserv) => let val chn0 = $UN.castvwtp0{channeg()}(chn) // end of [val] in // channeg0_send {int} ( chn0 , lam(chn0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = channeg1_repeat_disj$fwork_tag<>(tag0) // end of [val] in case+ tag0 of | 0 => k0($UN.castvwtp0(chn0)) | _ => fserv($UN.castvwtp0(chn0), lam(chn) => loop($UN.castvwtp0(chn), k0, fserv)) end // end of [lam] ) (* end of [channeg0_send] *) // end // end of [loop] // val () = channeg1_repeat_disj$init<>() // in loop(chn, k0, fserv) end // end of [channeg1_repeat_disj] // (* ****** ****** *) // implement {}(*tmp*) channeg1_repeat_conj$init() = () // nothing is done by default // implement {}(*tmp*) channeg1_repeat_disj$init() = () // nothing is done by default // implement {}(*tmp*) channeg1_repeat_conj$fwork_tag(tag) = () // nothing is done by default // implement {}(*tmp*) channeg1_repeat_disj$fwork_tag(tag) = () // nothing is done by default // (* ****** ****** *) (* end of [channeg.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/DATS/channel.dats0000644000175000017500000000546713431250607026376 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // (* #define ATS_STALOADFLAG 0 // no staloading at run-time *) // #define ATS_EXTERN_PREFIX "ats2js_workersession_" // prefix for external names // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/channel.sats" // (* ****** ****** *) // implement chmsg_parse(msg) = let val msg = $UN.cast{string}(msg) in $extfcall(int, "parseInt", msg) end // end of [chmsg_parse] // implement chmsg_parse(msg) = let val msg = $UN.cast{string}(msg) in $extfcall(double, "parseFloat", msg) end // end of [chmsg_parse] // (* ****** ****** *) implement chmsg_parse(msg) = $UN.cast{bool}(msg) (* ****** ****** *) // implement chmsg_parse(msg) = $UN.cast{string}(msg) // (* ****** ****** *) implement (a:t@ype) chmsg_parse(msg) = let // fun aux{n:nat} ( xs: list(chmsg(a), n) ) : list0(a) = ( case+ xs of // | list_nil () => list0_nil() // list_nil // | list_cons (x, xs) => let val x = chmsg_parse(x) // end of [val] in list0_cons(x, aux(xs)) end // end of [list_cons] // ) // in aux($UN.cast{List0(chmsg(a))}(msg)) end // end of [chmsg_parse] (* ****** ****** *) implement (a:t@ype ,b:t0ype) chmsg_parse<$tup(a,b)>(msg) = let // val msg = $UN.cast{$tup(chmsg(a),chmsg(b))}(msg) // in $tup(chmsg_parse(msg.0), chmsg_parse(msg.1)) end // end of [chmsg_parse<$tup(a,b)>] (* ****** ****** *) implement (a:t@ype ,b:t0ype ,c:t0ype) chmsg_parse<$tup(a,b,c)>(msg) = let // val msg = $UN.cast{$tup(chmsg(a),chmsg(b),chmsg(c))}(msg) // in $tup(chmsg_parse(msg.0), chmsg_parse(msg.1), chmsg_parse(msg.2)) end // end of [chmsg_parse<$tup(a,b,c)>] (* ****** ****** *) (* end of [channel.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/mylibies.hats0000644000175000017500000000113313431250607026036 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2017-01-30: ** For downstream static loading *) (* ****** ****** *) // #staload CHANNEL = "./SATS/channel.sats" // #staload _(*CHANNEL*) = "./DATS/channel.dats" // (* ****** ****** *) // // HX: // for server-side of a channel // #ifdef WORKERSESSION_CHANPOS #staload _(*CHANPOS*) = "./DATS/chanpos.dats" #endif // #if(WORKERSESSION_CHANPOS) // (* ****** ****** *) // // HX: // for client-side of a channel // #ifdef WORKERSESSION_CHANNEG #staload _(*CHANNEG*) = "./DATS/channeg.dats" #endif // #if(WORKERSESSION_CHANNEG) // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/0000755000175000017500000000000013431250607024121 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test_client.dats0000644000175000017500000000626213431250607027321 0ustar brandonbrandon(* ****** ****** *) // // Testing WebWorker // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #include "share/atspre_define.hats" #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // // #define WORKERSESSION_CHANNEG 1 // #include "./../mylibies.dats" #include "./../mylibies.hats" // (* ****** ****** *) // stadef chnil = $CHANNEL.chnil stadef chcons = $CHANNEL.chcons // vtypedef channeg(ss:type) = $CHANNEL.channeg(ss) // (* ****** ****** *) %{^ // function theArg1_set(a1) { document.getElementById('theArg1').value = a1; } function theArg2_set(a2) { document.getElementById('theArg2').value = a2; } function theResult_get() { return parseInt(document.getElementById('theResult').value); } function theResult_set(value) { document.getElementById('theResult').value = value; } // %} // end of [%{^] (* ****** ****** *) %{^ // var Started = false; // function Start_onclick() { if (!Started) { Started = true; return StartIt(); } else { alert ('The session is in progress!'); return; } } // var AnswerIt = 0; var AnswerIt_do = 0; // function AnswerIt_onclick() { if (AnswerIt) { AnswerIt = 0; return ats2jspre_cloref0_app(AnswerIt_do); } else { alert('The AnswerIt button is not ready yet!'); return; } // end of [if] } // function AnswerIt_do_set(fclo) { AnswerIt = 1; AnswerIt_do = fclo; return; } // %} // end of [%{^] // (* ****** ****** *) // staload PROTOCOL = "./test_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) // extern fun StartIt(): void = "mac#" // extern fun PostRep (channeg(chnil), yn: bool): void = "mac#" extern fun ReplyIt (channeg(sstest1), a1: int, a2: int): void = "mac#" // (* ****** ****** *) // implement StartIt() = let // val chn = $CHANNEL.channeg0_new_file ("./test_server_dats_.js") // val chn = $UN.castvwtp0{channeg(sstest3)}(chn) // in // $CHANNEL.channeg1_recv ( chn, 0 , lam(chn) => $CHANNEL.channeg1_send ( chn , lam(chn, a1) => $CHANNEL.channeg1_send ( chn , lam(chn, a2) => ReplyIt(chn, $CHANNEL.chmsg_parse(a1), $CHANNEL.chmsg_parse(a2)) ) ) ) // end // end of [Start_onclick] (* ****** ****** *) implement ReplyIt (chn, a1, a2) = let // val () = $extfcall(void, "theArg1_set", a1) val () = $extfcall(void, "theArg2_set", a2) // val () = $extfcall(void, "theResult_set", "") // val ReplyIt_do = llam() = let val res = $extfcall(int, "theResult_get") in // $CHANNEL.channeg1_recv ( chn, res , lam(chn) => $CHANNEL.channeg1_send ( chn , lam(chn, yn) => PostRep(chn, $CHANNEL.chmsg_parse(yn)) ) ) // end // end of [ReplyIt_do] // in // $extfcall ( void , "AnswerIt_do_set", $UN.castvwtp0{JSobj}(ReplyIt_do) ) // end // end of [ReplyIt] (* ****** ****** *) implement PostRep(chn, yn) = let val () = $CHANNEL.channeg1_close(chn) // end of [val] // extvar "Started" = false; // in if yn then alert("The replied answer is right :)") else alert("The replied answer is wrong :(") // end of [if] end // end of [PostRep] (* ****** ****** *) (* end of [test_client.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test3_client.html0000644000175000017500000000244313431250607027412 0ustar brandonbrandon test3_client

For testing session-typed channels

Arg1
Arg2

ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/Makefile0000644000175000017500000000475413431250607025573 0ustar brandonbrandon# # A simple Makefile # ###### # PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt # ATSCC2JS=$(PATSHOME)/bin/atscc2js LIBATCC2JS=$(PATSHOME)/contrib/libatscc2js # ###### # all:: rpc_client_dats.js all:: rpc_server_dats_.js # all:: test_client_dats.js all:: test_server_dats_.js # all:: test2_client_dats.js all:: test2_server_dats_.js # all:: test3_client_dats.js all:: test3_server_dats_.js # ###### # rpc_client_dats.c: rpc_client.dats; $(PATSOPT) -o $@ -d $< rpc_client_dats.js: rpc_client_dats.c; $(ATSCC2JS) -o $@ -i $< rpc_server_dats.c: rpc_server.dats; $(PATSOPT) -o $@ -d $< rpc_server_dats.js: rpc_server_dats.c; $(ATSCC2JS) -o $@ -i $< rpc_server_dats_.js: rpc_server_dats.js; $(CAT) $(LIBATCC2JS)/output/libatscc2js_all.js $< > $@ # ###### # test_client_dats.c: test_client.dats; $(PATSOPT) -o $@ -d $< test_client_dats.js: test_client_dats.c; $(ATSCC2JS) -o $@ -i $< test_server_dats.c: test_server.dats; $(PATSOPT) -o $@ -d $< test_server_dats.js: test_server_dats.c; $(ATSCC2JS) -o $@ -i $< test_server_dats_.js: test_server_dats.js; $(CAT) $(LIBATCC2JS)/output/libatscc2js_all.js $< > $@ # ###### # test2_client_dats.c: test2_client.dats; $(PATSOPT) -o $@ -d $< test2_client_dats.js: test2_client_dats.c; $(ATSCC2JS) -o $@ -i $< test2_server_dats.c: test2_server.dats; $(PATSOPT) -o $@ -d $< test2_server_dats.js: test2_server_dats.c; $(ATSCC2JS) -o $@ -i $< test2_server_dats_.js: test2_server_dats.js; $(CAT) $(LIBATCC2JS)/output/libatscc2js_all.js $< > $@ # ###### # test3_client_dats.c: test3_client.dats; $(PATSOPT) -o $@ -d $< test3_client_dats.js: test3_client_dats.c; $(ATSCC2JS) -o $@ -i $< test3_server_dats.c: test3_server.dats; $(PATSOPT) -o $@ -d $< test3_server_dats.js: test3_server_dats.c; $(ATSCC2JS) -o $@ -i $< test3_server_dats_.js: test3_server_dats.js; $(CAT) $(LIBATCC2JS)/output/libatscc2js_all.js $< > $@ # ###### CAT=cat RMF=rm -f ###### testall:: all testall:: cleanall ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### # cleanall:: clean # cleanall:: ; $(RMF) rpc_client_dats.js cleanall:: ; $(RMF) rpc_server_dats.js cleanall:: ; $(RMF) rpc_server_dats_.js # cleanall:: ; $(RMF) test_client_dats.js cleanall:: ; $(RMF) test_server_dats.js cleanall:: ; $(RMF) test_server_dats_.js # cleanall:: ; $(RMF) test2_client_dats.js cleanall:: ; $(RMF) test2_server_dats.js cleanall:: ; $(RMF) test2_server_dats_.js # cleanall:: ; $(RMF) test3_client_dats.js cleanall:: ; $(RMF) test3_server_dats.js cleanall:: ; $(RMF) test3_server_dats_.js # ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/rpc_client.html0000644000175000017500000000156713431250607027142 0ustar brandonbrandon rpc_client

For testing worker-based channels

+
ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test2_client.dats0000644000175000017500000000711013431250607027374 0ustar brandonbrandon(* ****** ****** *) // // Testing WebWorker // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #include "share/atspre_define.hats" #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // // #define WORKERSESSION_CHANNEG 1 // #include "./../mylibies.dats" // #include "./../mylibies.hats"; staload $CHANNEL // (* ****** ****** *) // extern fun console_log(string): void = "mac#" // (* ****** ****** *) %{^ // function console_log(x) { return console.log(x); } // function theArg1_set(a1) { document.getElementById('theArg1').value = a1; } function theArg2_set(a2) { document.getElementById('theArg2').value = a2; } function theResult_get() { return parseInt(document.getElementById('theResult').value); } function theResult_set(value) { document.getElementById('theResult').value = value; } // %} // end of [%{^] (* ****** ****** *) %{^ // var Started = false; // function Start_onclick() { if (!Started) { Started = true; return StartIt(); } else { alert ('The session is in progress!'); return; } } // var AnswerIt = 0; var AnswerIt_do = 0; // function AnswerIt_onclick() { if (AnswerIt) { AnswerIt = 0; return ats2jspre_cloref0_app(AnswerIt_do); } else { alert('The AnswerIt button is not ready yet!'); return; } // end of [if] } // function AnswerIt_do_set(fclo) { AnswerIt = 1; AnswerIt_do = fclo; return; } // %} // end of [%{^] // (* ****** ****** *) // staload PROTOCOL = "./test2_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) // extern fun StartIt(): void = "mac#" // extern fun PostRep ( channeg(chnil), k0: chncont0_nil, yn: bool ) : void = "mac#" // end-of-fun extern fun ReplyIt ( channeg(sstest1), k0: chncont0_nil, a1: int, a2: int ) : void = "mac#" // end-of-fun // extern fun StartIt_aft (chn: channeg(ssdisj(ssrepeat(sstest2)))): void = "mac#" // (* ****** ****** *) // implement StartIt() = let // val chn = channeg0_new_file("./test2_server_dats_.js") // val chn = $UN.castvwtp0{channeg(sstest3)}(chn) // in // channeg1_recv(chn, 0, lam(chn) => StartIt_aft(chn)) // end // end of [Start_onclick] (* ****** ****** *) implement StartIt_aft (chn) = let // val k0 = lam(chn: channeg_nil) = let extvar "Started" = false in channeg1_close(chn) end // (* implement channeg1_repeat_disj$fwork_tag<> (tag) = ( console_log("fwork_tag: tag = " + String(tag)) ) *) // in // channeg1_repeat_disj ( chn, k0 , lam(chn, k0) => channeg1_send ( chn , lam(chn, a1) => channeg1_send ( chn , lam(chn, a2) => ReplyIt(chn, k0, chmsg_parse(a1), chmsg_parse(a2)) ) ) ) // end // end of [StartIt_aft] (* ****** ****** *) implement ReplyIt (chn, k0, a1, a2) = let // val () = $extfcall(void, "theArg1_set", a1) val () = $extfcall(void, "theArg2_set", a2) // val () = $extfcall(void, "theResult_set", "") // val ReplyIt_do = llam() = let val res = $extfcall(int, "theResult_get") in // channeg1_recv ( chn, res , lam(chn) => channeg1_send ( chn , lam(chn, yn) => PostRep(chn, k0, chmsg_parse(yn)) ) ) // end // end of [ReplyIt_do] // in // $extfcall ( void , "AnswerIt_do_set", $UN.castvwtp0{JSobj}(ReplyIt_do) ) // end // end of [ReplyIt] (* ****** ****** *) implement PostRep(chn, k0, yn) = let // val () = k0(chn) // in if yn then alert("The replied answer is right :)") else alert("The replied answer is wrong :(") // end of [if] end // end of [PostRep] (* ****** ****** *) (* end of [test2_client.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test_server.dats0000644000175000017500000000262013431250607027343 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "theWorker_start" // (* ****** ****** *) // #include "share/atspre_define.hats" #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // // #define WORKERSESSION_CHANPOS 1 // #include "./../mylibies.dats" #include "./../mylibies.hats" // vtypedef chanpos(ss:type) = $CHANNEL.chanpos(ss) // (* ****** ****** *) // staload PROTOCOL = "./test_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) val () = { // val chp = $UN.castvwtp0{chanpos(sstest3)}(0) // val ((*void*)) = $CHANNEL.chanpos1_recv ( chp , lam(chp, _) => let val a1 = double2int(100*JSmath_random()) val a2 = double2int(100*JSmath_random()) in $CHANNEL.chanpos1_send ( chp, a1 , lam(chp) => $CHANNEL.chanpos1_send ( chp, a2 , lam(chp) => $CHANNEL.chanpos1_recv ( chp , lam(chp, res) => $CHANNEL.chanpos1_send ( chp, ($CHANNEL.chmsg_parse(res) = a1 * a2), lam(chp) => $CHANNEL.chanpos1_close(chp)) ) ) ) end // end of [lam] ) (* end of [chanpos1_recv] *) // } (* end of [val] *) (* ****** ****** *) %{$ // theWorker_start(); // %} // end of [%{$] (* ****** ****** *) (* end of [test_server.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test2_server.dats0000644000175000017500000000337413431250607027434 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "theWorker_start" // (* ****** ****** *) // #include "share/atspre_define.hats" #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // // #define WORKERSESSION_CHANPOS 1 // #include "./../mylibies.dats" // #include "./../mylibies.hats"; staload $CHANNEL // (* ****** ****** *) // staload PROTOCOL = "./test2_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) fun chanpos1_sstest2 ( chp: chanpos(sstest2), k0: chpcont0_nil, a1: int, a2: int ) : void = ( // chanpos1_send ( chp, a1 , lam(chp) => chanpos1_send ( chp, a2 , lam(chp) => chanpos1_recv ( chp , lam(chp, res) => chanpos1_send (chp, (chmsg_parse(res) = a1 * a2), lam(chp) => k0(chp)) ) ) ) // ) (* end of [channeg1_sstest2] *) (* ****** ****** *) val () = { // val chp = $UN.castvwtp0{chanpos(sstest3)}(0) // val ((*void*)) = chanpos1_recv ( chp , lam(chp, _) => let // val N = ref{int}(3) // implement chanpos1_repeat_disj$choose<>() = let val n = N[]; val () = N[] := n-1 in if n > 0 then 1 else 0 end // in // chanpos1_repeat_disj ( chp , lam(chp) => chanpos1_close(chp) , lam(chp, k0) => let val a1 = double2int(100*JSmath_random()) and a2 = double2int(100*JSmath_random()) in chanpos1_sstest2(chp, k0, a1, a2) end // end of [lam] ) (* chanpos1_repeat_disj *) // end // end of [lam] ) (* end of [chanpos1_recv] *) // } (* end of [val] *) (* ****** ****** *) %{$ // theWorker_start(); // %} // end of [%{$] (* ****** ****** *) (* end of [test2_server.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/rpc_server.dats0000644000175000017500000000202713431250607027151 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "theWorker_start" // (* ****** ****** *) // #include "share/atspre_define.hats" #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #define WORKERSESSION_CHANPOS 1 // #include "./../mylibies.dats" #include "./../mylibies.hats" // (* ****** ****** *) // fun list0_add ( xs: list0(int) ) : int = ( case+ xs of | list0_nil() => 0 | list0_cons(x, xs) => x + list0_add(xs) ) // (* ****** ****** *) // vtypedef chanpos() = $CHANNEL.chanpos() // (* ****** ****** *) local // (* implement {a}{b} rpc_server_cont(ch, f) = chanpos_close(ch) *) // typedef ARG = list0(int) and RES = int // in // val ((*void*)) = $CHANNEL.rpc_server ($UN.cast{chanpos()}(0), lam(xs) => list0_add(xs)) // end // end of [local] // (* ****** ****** *) %{$ // theWorker_start(); // %} // end of [%{$] (* ****** ****** *) (* end of [rpc_server.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test_client.html0000644000175000017500000000240313431250607027323 0ustar brandonbrandon test_client

For testing session-typed channels

Arg1
Arg2
ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test2_prot.sats0000644000175000017500000000057613431250607027132 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_define.hats" // (* ****** ****** *) // staload "./../SATS/channel.sats" // (* ****** ****** *) // typedef sstest1 = chrcv(int) :: chsnd(bool) :: chnil(*sstest1*) // typedef sstest2 = chsnd(int) :: chsnd(int) :: sstest1 // typedef sstest3 = chrcv(int) :: ssdisj(ssrepeat(sstest2)) // (* ****** ****** *) (* end of [test2_prot.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test3_server.dats0000644000175000017500000000444013431250607027430 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "theWorker_start" // (* ****** ****** *) // #include "share/atspre_define.hats" #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #define WORKERSESSION_CHANPOS 1 // #include "./../mylibies.dats" // #include "./../mylibies.hats"; staload $CHANNEL // (* ****** ****** *) // staload PROTOCOL = "./test3_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) fun chanpos1_sstest2 ( chp: chanpos(sstest2), k0: chpcont0_nil, a1: int, a2: int ) : void = ( // chanpos1_send ( chp, a1 , lam(chp) => chanpos1_send ( chp, a2 , lam(chp) => let // val N = ref{int}(3) // fun check (res: int): bool = yn where { val n = N[] val yn = (res = a1 * a2) val () = if yn then N[] := 0 else N[] := n-1 } (* end of [check] *) // implement chanpos1_repeat_disj$choose<> () = if (N[] > 0) then 1 else 0 // fun fserv ( chp: chanpos(sstest1), k0: chpcont0_nil ) : void = chanpos1_recv ( chp , lam(chp, res) => chanpos1_send (chp, check(chmsg_parse(res)), lam(chp) => k0(chp)) ) (* end of [lam] *) // in chanpos1_repeat_disj(chp, k0, lam (chp, k0) => fserv(chp, k0)) end // end of [lam] ) ) // ) (* end of [channeg1_sstest2] *) (* ****** ****** *) val () = { // val chp = $UN.castvwtp0{chanpos(sstest3)}(0) // val ((*void*)) = chanpos1_recv ( chp , lam(chp, _) => let // val N = ref{int}(3) // implement chanpos1_repeat_disj$choose<>() = let val n = N[]; val () = N[] := n-1 in if n > 0 then 1 else 0 end // in // chanpos1_repeat_disj ( chp , lam(chp) => chanpos1_close(chp) , lam(chp, k0) => let val a1 = double2int(100*JSmath_random()) and a2 = double2int(100*JSmath_random()) in chanpos1_sstest2(chp, k0, a1, a2) end // end of [lam] ) (* chanpos1_repeat_disj *) // end // end of [lam] ) (* end of [chanpos1_recv] *) // } (* end of [val] *) (* ****** ****** *) %{$ // theWorker_start(); // %} // end of [%{$] (* ****** ****** *) (* end of [test3_server.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test2_client.html0000644000175000017500000000240513431250607027407 0ustar brandonbrandon test2_client

For testing session-typed channels

Arg1
Arg2
ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/rpc_client.dats0000644000175000017500000000253513431250607027125 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #include "share/atspre_define.hats" #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #define WORKERSESSION_CHANNEG 1 // #include "./../mylibies.dats" #include "./../mylibies.hats" // (* ****** ****** *) %{^ // var myworker = new Worker("./rpc_server_dats_.js"); // if (myworker) { myworker.onmessage = function(e){ alert(e.data); return; }; } // if (!myworker) { alert('Creating of myworker failed!'); } // function theTrigger_onclick() { var arg1 = document.getElementById('theArg1').value; var arg2 = document.getElementById('theArg2').value; return theTrigger_onclick_(myworker, arg1, arg2); } // %} // end of [%{^] (* ****** ****** *) // vtypedef channeg() = $CHANNEL.channeg() // extern fun theTrigger_onclick_ ( channeg(), arg1: string, arg2: string ) : void = "mac#" // endfun // implement theTrigger_onclick_ (chn, arg1, arg2) = let // val args = cons(arg1, cons(arg2, nil)) // typedef stringlst = List0(string) // in // $CHANNEL.rpc_client ( chn, args, lam(res) => alert(arg1 + " + " + arg2 + " = " + String(res)) ) // end // end of [theTrigger_onclick_] // (* ****** ****** *) (* end of [rpc_client.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test3_client.dats0000644000175000017500000001113613431250607027400 0ustar brandonbrandon(* ****** ****** *) // // Testing WebWorker // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) #include "share/atspre_define.hats" #include "{$LIBATSCC2JS}/mylibies.hats" (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #define WORKERSESSION_CHANNEG 1 // #include "./../mylibies.dats" // #include "./../mylibies.hats"; staload $CHANNEL // (* ****** ****** *) // extern fun theOutput_show(string): void = "mac#" // %{^ // function theOutput_show(msg) { document.getElementById('theOutput_text').innerHTML = msg; } // %} // end of [%{^] (* ****** ****** *) %{^ // function theArg1_set(a1) { document.getElementById('theArg1').value = a1; } function theArg2_set(a2) { document.getElementById('theArg2').value = a2; } function theResult_get() { return parseInt(document.getElementById('theResult').value); } function theResult_set(value) { document.getElementById('theResult').value = value; } // function theArg1Arg2Result_clear() { document.getElementById('theArg1').value = ""; document.getElementById('theArg2').value = ""; document.getElementById('theResult').value = ""; } // %} // end of [%{^] (* ****** ****** *) %{^ // var Started = false; // function Start_onclick() { if (!Started) { Started = true; theOutput_show( "The multiplication test is still in progress..." ); return StartIt(); } else { alert ('The session is in progress!'); return; } } // var AnswerIt = 0; var AnswerIt_do = 0; // function AnswerIt_onclick() { if (AnswerIt) { AnswerIt = 0; return ats2jspre_cloref0_app(AnswerIt_do); } else { alert('The AnswerIt button is not ready yet!'); return; } // end of [if] } // function AnswerIt_do_set(fclo) { AnswerIt = 1; AnswerIt_do = fclo; return; } // %} // end of [%{^] // (* ****** ****** *) // staload PROTOCOL = "./test3_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) // extern fun StartIt(): void = "mac#" // extern fun PostRep ( channeg(chnil), k0: chncont0_nil, n: int, yn: bool ) : void = "mac#" // end-of-fun extern fun ReplyIt ( channeg(sstest1), k0: chncont0_nil, n: int, a1: int, a2: int ) : void = "mac#" // end-of-fun extern fun ReplyIt_repeat ( channeg(ssdisj(ssrepeat(sstest1))), k0: chncont0_nil, a1: int, a2: int ) : void = "mac#" // end-of-fun // extern fun StartIt_aft (chn: channeg(ssdisj(ssrepeat(sstest2)))): void // (* ****** ****** *) // implement StartIt() = let // val chn = channeg0_new_file("./test3_server_dats_.js") // val chn = $UN.castvwtp0{channeg(sstest3)}(chn) // in // channeg1_recv(chn, 0, lam(chn) => StartIt_aft(chn)) // end // end of [StartIt] (* ****** ****** *) implement StartIt_aft (chn) = let // val k0 = lam(chn: channeg_nil) = let extvar "Started" = false in channeg1_close(chn) end // implement channeg1_repeat_disj$fwork_tag<> (tag) = ( if tag = 0 then { val () = $extfcall(void, "theArg1Arg2Result_clear") val () = theOutput_show("The session of multiplication test is over!") } ) // in // channeg1_repeat_disj ( chn, k0 , lam(chn, k0) => channeg1_send ( chn , lam(chn, a1) => channeg1_send ( chn , lam(chn, a2) => ReplyIt_repeat(chn, k0, chmsg_parse(a1), chmsg_parse(a2)) ) ) ) // end // end of [StartIt_aft] (* ****** ****** *) implement ReplyIt (chn, k0, n, a1, a2) = let // val () = $extfcall(void, "theArg1_set", a1) val () = $extfcall(void, "theArg2_set", a2) // val () = $extfcall(void, "theResult_set", "") // val ReplyIt_do = llam() = let val res = $extfcall(int, "theResult_get") in // channeg1_recv ( chn, res , lam(chn) => channeg1_send ( chn , lam(chn, yn) => PostRep(chn, k0, n, chmsg_parse(yn)) ) ) // end // end of [ReplyIt_do] // in // $extfcall ( void , "AnswerIt_do_set", $UN.castvwtp0{JSobj}(ReplyIt_do) ) // end // end of [ReplyIt] (* ****** ****** *) implement PostRep(chn, k0, n, yn) = let // val () = k0(chn) // in if yn then alert("The replied answer is right :)") else (if n >= 3 then alert("The replied answer is wrong :(")) // end of [if] end // end of [PostRep] (* ****** ****** *) implement ReplyIt_repeat (chn, k0, a1, a2) = let // val N = ref{int}(0) // implement channeg1_repeat_disj$fwork_tag<> (tag) = let // val n = N[] val () = N[] := n + 1 // in case+ tag of | 0 => () | _ => if n > 0 then alert("Please try again!") end // end of ... // in // channeg1_repeat_disj ( chn, k0, lam(chn, k0) => ReplyIt(chn, k0, N[], a1, a2) ) // end (* end of [ReplyIt_repeat] *) (* ****** ****** *) (* end of [test3_client.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test3_prot.sats0000644000175000017500000000062013431250607027121 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_define.hats" // (* ****** ****** *) // staload "./../SATS/channel.sats" // (* ****** ****** *) // typedef sstest1 = chrcv(int) :: chsnd(bool) :: chnil(*sstest1*) // typedef sstest2 = chsnd(int) :: chsnd(int) :: ssdisj(ssrepeat(sstest1)) // typedef sstest3 = chrcv(int) :: ssdisj(ssrepeat(sstest2)) // (* ****** ****** *) (* end of [test3_prot.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/TEST/test_prot.sats0000644000175000017500000000055313431250607027043 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_define.hats" // (* ****** ****** *) // staload "./../SATS/channel.sats" // (* ****** ****** *) // typedef sstest1 = chrcv(int) :: chsnd(bool) :: chnil(*sstest1*) // typedef sstest2 = chsnd(int) :: chsnd(int) :: sstest1 // typedef sstest3 = chrcv(int) :: sstest2 // (* ****** ****** *) (* end of [test_prot.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/SATS/0000755000175000017500000000000013431250607024114 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/SATS/channel_session.sats0000644000175000017500000001256413431250607030173 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // // HX-2015-11-25: // (* ****** ****** *) // #define ATS_STALOADFLAG 0 // no staloading at run-time #define ATS_EXTERN_PREFIX "ats2js_workersession_" // prefix for extern names // (* ****** ****** *) // // Session Combinators // (* ****** ****** *) staload "./channel.sats" (* ****** ****** *) // abstype chanpos_session(ss:type) abstype channeg_session(ss:type) // (* ****** ****** *) // fun{ a:t@ype } chanpos1_session_send ( cfun0(a) // getting data ) : chanpos_session(chsnd(a)::chnil) fun{ a:t@ype } chanpos1_session_recv ( cfun1(a, void) // setting data ) : chanpos_session(chrcv(a)::chnil) // (* ****** ****** *) // fun{ a:t@ype } channeg1_session_recv ( cfun0(a) // getting data ) : channeg_session(chrcv(a)::chnil) fun{ a:t@ype } channeg1_session_send ( cfun1(a, void) // setting data ) : channeg_session(chsnd(a)::chnil) // (* ****** ****** *) // fun{} chanpos1_session_initize {ss:type} ( fwork: cfun0(void), ssp: chanpos_session(ss) ) : chanpos_session(ss) // fun{} channeg1_session_initize {ss:type} ( fwork: cfun0(void), ssn: channeg_session(ss) ) : channeg_session(ss) // (* ****** ****** *) // fun{} chanpos1_session_finalize {ss:type} ( ssp: chanpos_session(ss), fwork: cfun0(void) ) : chanpos_session(ss) // fun{} channeg1_session_finalize {ss:type} ( ssn: channeg_session(ss), fwork: cfun0(void) ) : channeg_session(ss) // (* ****** ****** *) // fun chanpos1_session_nil ( // argumentless ) : chanpos_session(chnil) // fun{} chanpos1_session_cons {a:type}{ss:type} ( chanpos_session(chsing(a)), chanpos_session(ss) ) : chanpos_session(a::ss) // (* ****** ****** *) // fun channeg1_session_nil ( // argumentless ) : channeg_session(chnil) // fun{} channeg1_session_cons {a:type}{ss:type} ( channeg_session(chsing(a)), channeg_session(ss) ) : channeg_session(a::ss) // (* ****** ****** *) // fun{} chanpos1_session_append {ss1,ss2:type} ( ssp1: chanpos_session(ss1) , ssp2: chanpos_session(ss2) ) : chanpos_session(ssappend(ss1, ss2)) // fun{} channeg1_session_append {ss1,ss2:type} ( ssn1: channeg_session(ss1) , ssn2: channeg_session(ss2) ) : channeg_session(ssappend(ss1, ss2)) // (* ****** ****** *) // fun{} chanpos1_session_choose_conj {ss0,ss1:type} ( ssp0: chanpos_session(ss0) , ssp1: chanpos_session(ss1) ) : chanpos_session(sschoose_conj(ss0,ss1)) // fun{} channeg1_session_choose_conj {ss0,ss1:type} ( ssn0: channeg_session(ss0) , ssn1: channeg_session(ss1) ) : channeg_session(sschoose_conj(ss0,ss1)) // (* ****** ****** *) // fun{} chanpos1_session_choose_disj {ss0,ss1:type} ( ssp0: chanpos_session(ss0) , ssp1: chanpos_session(ss1) ) : chanpos_session(sschoose_disj(ss0,ss1)) // fun{} channeg1_session_choose_disj {ss0,ss1:type} ( ssn0: channeg_session(ss0) , ssn1: channeg_session(ss1) ) : channeg_session(sschoose_disj(ss0,ss1)) // (* ****** ****** *) // fun{} chanpos1_session_option_conj {ss:type} ( ssp: chanpos_session(ss) ) : chanpos_session(ssoption_conj(ss)) // fun{} channeg1_session_option_conj {ss:type} ( ssn: channeg_session(ss) ) : channeg_session(ssoption_conj(ss)) // (* ****** ****** *) // fun{} chanpos1_session_option_disj {ss:type} ( ssp: chanpos_session(ss) ) : chanpos_session(ssoption_disj(ss)) // fun{} channeg1_session_option_disj {ss:type} ( ssp: channeg_session(ss) ) : channeg_session(ssoption_disj(ss)) // (* ****** ****** *) // fun{} chanpos1_session_repeat_conj {ss:type} ( ssp: chanpos_session(ss) ) : chanpos_session(ssrepeat_conj(ss)) // fun{} channeg1_session_repeat_conj {ss:type} ( ssn: channeg_session(ss) ) : channeg_session(ssrepeat_conj(ss)) // (* ****** ****** *) // fun{} chanpos1_session_repeat_disj {ss:type} ( ssp: chanpos_session(ss) ) : chanpos_session(ssrepeat_disj(ss)) // fun{} channeg1_session_repeat_disj {ss:type} ( ssn: channeg_session(ss) ) : channeg_session(ssrepeat_disj(ss)) // (* ****** ****** *) // // HX-2105-12-03: // [chanpos1_session_run] // should be called only once in a worker // fun{} chanpos1_session_run {ss:type} ( chanpos_session(ss) , chp: chanpos(ss), kx0: chpcont0_nil(*void*) ) : void = "mac#%" // fun{} chanpos1_session_run_close {ss:type}(chanpos_session(ss), chanpos(ss)): void = "mac#%" // (* ****** ****** *) // fun{} channeg1_session_run {ss:type} ( channeg_session(ss) , chn: channeg(ss), kx0: chncont0_nil(*void*) ) : void = "mac#%" // fun{} channeg1_session_run_close {ss:type}(channeg_session(ss), channeg(ss)): void = "mac#%" // (* ****** ****** *) (* end of [channel_session.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/SATS/channel.sats0000644000175000017500000002445513431250607026432 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: October, 2015 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX-2015-10-25: // (* ****** ****** *) // (* #define ATS_STALOADFLAG 0 // no staloading at run-time *) // #define ATS_EXTERN_PREFIX "ats2js_workersession_" // prefix for extern names // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" #staload "{$LIBATSCC2JS}/basics_js.sats" // (* ****** ****** *) // typedef cfun0(res: vt0p) = () - res typedef cfun1(a: vt0p, res: vt0p) = (a) - res typedef cfun2(a1: vt0p, a2: vt0p, res: vt0p) = (a1, a2) - res // (* ****** ****** *) // abstype chmsg_type(a:t@ype+) // typedef chmsg(a:t0p) = chmsg_type(a) // (* ****** ****** *) // abstype chanpos((*void*)) abstype channeg((*void*)) // (* ****** ****** *) // typedef chpcont0() = cfun1(chanpos(), void) typedef chpcont1(a:t0p) = cfun2(chanpos(), a, void) // (* ****** ****** *) // typedef chncont0() = cfun1(channeg(), void) typedef chncont1(a:t0p) = cfun2(channeg(), a, void) // (* ****** ****** *) // fun{a:t0p} chmsg_parse(chmsg(INV(a))): (a) // (* ****** ****** *) fun chanpos0_close(chanpos()): void = "mac#%" (* ****** ****** *) // fun chanpos0_send {a:t0p} ( chanpos(), x0: a, k0: chpcont0() ) : void = "mac#%" // end-of-fun // fun chanpos0_recv {a:t0p} ( chanpos(), k0: chpcont1(chmsg(a)) ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // fun channeg0_new_file (filename: string): channeg() = "mac#%" // fun channeg0_close(channeg((*nil*))): void = "mac#%" // (* ****** ****** *) // fun channeg0_recv {a:t0p} ( channeg(), x0: a, k0: chncont0() ) : void = "mac#%" // end-of-fun // fun channeg0_send {a:t0p} ( channeg(), k0: chncont1(chmsg(a)) ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // fun {a:t0p} {b:t0p} rpc_server (chanpos(), fopr: (a) - b): void = "mac#%" // fun {a:t0p} {b:t0p} rpc_server_cont (chanpos(), fopr: (a) - b): void = "mac#%" // (* ****** ****** *) // fun {a:t0p} {b:t0p} rpc_client (channeg(), a, (b) - void): void = "mac#%" // (* ****** ****** *) // abstype chsnd(a:vt@ype) abstype chrcv(a:vt@ype) // abstype chnil abstype chcons(a:type, ss:type) // stadef :: = chcons // (* ****** ****** *) stadef chsing(x:type) = chcons(x, chnil) (* ****** ****** *) // (* abstype ssnot(ss:type) *) // (* ****** ****** *) // abstype ssconj(ss:type) abstype ssdisj(ss:type) // abstype ssdisj_nil and ssconj_nil // (* ****** ****** *) // abstype ssappend(ss1:type, ss2:type) // (* ****** ****** *) // abstype ssoption(ss:type) // typedef ssoption_conj (ss:type) = ssconj(ssoption(ss)) typedef ssoption_disj (ss:type) = ssdisj(ssoption(ss)) // (* ****** ****** *) // abstype ssrepeat(ss:type) // typedef ssrepeat_conj (ss:type) = ssconj(ssrepeat(ss)) typedef ssrepeat_disj (ss:type) = ssdisj(ssrepeat(ss)) // (* ****** ****** *) // abstype sschoose_conj(ss1:type, ss2:type) abstype sschoose_disj(ss1:type, ss2:type) // (* ****** ****** *) absvtype chanpos(ss:type) absvtype channeg(ss:type) (* ****** ****** *) // typedef chpcont0(ss:type) = cfun1(chanpos(ss), void) typedef chpcont1(ss:type, a:t0p) = cfun2(chanpos(ss), a, void) // typedef chncont0(ss:type) = cfun1(channeg(ss), void) typedef chncont1(ss:type, a:t0p) = cfun2(channeg(ss), a, void) // (* ****** ****** *) typedef chpcont0_nil = chpcont0(chnil) typedef chncont0_nil = chncont0(chnil) (* ****** ****** *) // fun chanpos1_send {a:t0p}{ss:type} ( chanpos(chsnd(a)::ss), x0: a, k0: chpcont0(ss) ) : void = "mac#%" // end-of-fun // fun chanpos1_recv {a:t0p}{ss:type} ( chanpos(chrcv(a)::ss), k0: chpcont1(ss, chmsg(a)) ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // fun channeg1_recv {a:t0p}{ss:type} ( channeg(chrcv(a)::ss), x0: a, k0: chncont0(ss) ) : void = "mac#%" // end-of-fun // fun channeg1_send {a:t0p}{ss:type} ( channeg(chsnd(a)::ss), k0: chncont1(ss, chmsg(a)) ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // vtypedef chanpos_nil = chanpos(chnil) vtypedef channeg_nil = channeg(chnil) // (* ****** ****** *) // fun chanpos1_close(chanpos_nil): void = "mac#%" fun channeg1_close(channeg_nil): void = "mac#%" // (* ****** ****** *) // (* overload channel1_send with chanpos1_send overload channel1_recv with chanpos1_recv overload channel1_send with channeg1_recv overload channel1_recv with channeg1_send overload channel1_close with chanpos1_close overload channel1_close with channeg1_close *) // (* ****** ****** *) // typedef chanpos_nullify(ss:type) = (chanpos(ss), chpcont0_nil) - void typedef channeg_nullify(ss:type) = (channeg(ss), chncont0_nil) - void // (* ****** ****** *) // fun{} chanpos1_append {ss1,ss2:type} ( chanpos(ssappend(ss1,ss2)), k0: chpcont0_nil , fserv1: chanpos_nullify(ss1), fserv2: chanpos_nullify(ss2) ) : void // end of [chanpos1_append] // fun{} channeg1_append {ss1,ss2:type} ( channeg(ssappend(ss1,ss2)), k0: chncont0_nil , fserv1: channeg_nullify(ss1), fserv2: channeg_nullify(ss2) ) : void // end of [channeg1_append] // (* ****** ****** *) // fun{} chanpos1_choose_conj {ss1,ss2:type} ( chanpos(sschoose_conj(ss1,ss2)), k0: chpcont0_nil , fserv1: chanpos_nullify(ss1), fserv2: chanpos_nullify(ss2) ) : void // end of [chanpos1_choose_conj] // fun{} channeg1_choose_conj {ss1,ss2:type} ( channeg(sschoose_conj(ss1,ss2)), k0: chncont0_nil , fserv1: channeg_nullify(ss1), fserv2: channeg_nullify(ss2) ) : void // end of [channeg1_choose_conj] // fun{} channeg1_choose_conj$choose(): natLt(2) fun{} chanpos1_choose_conj$fwork_tag(tag: int): void fun{} channeg1_choose_conj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_choose_disj {ss1,ss2:type} ( chanpos(sschoose_disj(ss1,ss2)), k0: chpcont0_nil , fserv1: chanpos_nullify(ss1), fserv2: chanpos_nullify(ss2) ) : void // end of [chanpos1_choose_disj] fun{} channeg1_choose_disj {ss1,ss2:type} ( channeg(sschoose_disj(ss1,ss2)), k0: chncont0_nil , fserv1: channeg_nullify(ss1), fserv2: channeg_nullify(ss2) ) : void // end of [channeg1_choose_disj] // fun{} chanpos1_choose_disj$choose(): natLt(2) fun{} chanpos1_choose_disj$fwork_tag(tag: int): void fun{} channeg1_choose_disj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_option_conj {ss:type} ( chanpos(ssoption_conj(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_option_conj] fun{} channeg1_option_conj {ss:type} ( channeg(ssoption_conj(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_option_conj] // fun{} channeg1_option_conj$choose(): natLt(2) fun{} chanpos1_option_conj$fwork_tag(tag: int): void fun{} channeg1_option_conj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_option_disj {ss:type} ( chanpos(ssoption_disj(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_option_disj] fun{} channeg1_option_disj {ss:type} ( channeg(ssoption_disj(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_option_disj] // fun{} chanpos1_option_disj$choose(): natLt(2) fun{} chanpos1_option_disj$fwork_tag(tag: int): void fun{} channeg1_option_disj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_repeat_conj {ss:type} ( chanpos(ssrepeat_conj(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_repeat_conj] // fun{} channeg1_repeat_conj {ss:type} ( channeg(ssrepeat_conj(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_repeat_conj] // fun{} chanpos1_repeat_conj$init(): void fun{} channeg1_repeat_conj$init(): void // fun{} channeg1_repeat_conj$choose(): natLt(2) // fun{} chanpos1_repeat_conj$fwork_tag(tag: int): void fun{} channeg1_repeat_conj$fwork_tag(tag: int): void // fun{} channeg1_repeat_conj$spawn(() - void): void // (* ****** ****** *) // fun{} chanpos1_repeat_disj {ss:type} ( chanpos(ssrepeat_disj(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_repeat_disj] // fun{} channeg1_repeat_disj {ss:type} ( channeg(ssrepeat_disj(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_repeat_disj] // fun{} chanpos1_repeat_disj$init(): void fun{} channeg1_repeat_disj$init(): void // fun{} chanpos1_repeat_disj$choose(): natLt(2) // fun{} chanpos1_repeat_disj$fwork_tag(tag: int): void fun{} channeg1_repeat_disj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_choose_conj {ss1,ss2:type} ( chanpos(sschoose_conj(ss1,ss2)) , k0: chpcont0_nil, f1: chanpos_nullify(ss1), f2: chanpos_nullify(ss2) ) : void // end of [chanpos1_choose_conj] // fun{} channeg1_choose_conj {ss1,ss2:type} ( channeg(sschoose_conj(ss1,ss2)) , k0: chncont0_nil, f1: channeg_nullify(ss1), f2: channeg_nullify(ss2) ) : void // end of [channeg1_choose_cons] // fun{} channeg1_choose_conj$choose((*void*)): natLt(2) fun{} chanpos1_choose_conj$fwork_tag(tag: int): void fun{} channeg1_choose_conj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_choose_disj {ss1,ss2:type} ( chanpos(sschoose_disj(ss1,ss2)) , k0: chpcont0_nil, f1: chanpos_nullify(ss1), f2: chanpos_nullify(ss2) ) : void // end of [chanpos1_choose_disj] // fun{} channeg1_choose_disj {ss1,ss2:type} ( channeg(sschoose_disj(ss1,ss2)) , k0: chncont0_nil, f1: channeg_nullify(ss1), f2: channeg_nullify(ss2) ) : void // end of [channeg1_choose_cons] // fun{} chanpos1_choose_disj$choose((*void*)): natLt(2) fun{} chanpos1_choose_disj$fwork_tag(tag: int): void fun{} channeg1_choose_disj$fwork_tag(tag: int): void // (* ****** ****** *) (* end of [channel.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/SATS/channel_session2.sats0000644000175000017500000000307313431250607030250 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // // HX-2015-12-09: // (* ****** ****** *) // #define ATS_STALOADFLAG 0 // no staloading at run-time #define ATS_EXTERN_PREFIX "ats2js_workersession_" // prefix for extern names // (* ****** ****** *) // // Session Combinators // (* ****** ****** *) // staload "./channel.sats" staload "./channel_session.sats" // (* ****** ****** *) // fun{} chanpos1_session_guardby {ss1,ss2:type} ( ss1: chanpos_session(ss1) , ss2: chanpos_session(ss2) ) : chanpos_session(ssappend(ss2, ssoption_disj(ss1))) // fun{} chanpos1_session_guardby$guard((*void*)): bool // (* ****** ****** *) (* end of [channel_session2.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/mylibies.dats0000644000175000017500000000103513431250607026033 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2017-01-30: ** For downstream static linking *) (* ****** ****** *) // // HX: // for server-side of a channel // #ifdef WORKERSESSION_CHANPOS // local // #include "./DATS/chanpos.dats" // in (* nothing *) end // #endif // #ifdef(WORKERSESSION_CHANPOS) // (* ****** ****** *) // // HX: // for client-side of a channel // #ifdef WORKERSESSION_CHANNEG // local // #include "./DATS/channeg.dats" // in (* nothing *) end // #endif // #ifdef(WORKERSESSION_CHANNEG) // (* ****** ****** *) (* end of [mylibies.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/WorkerSession/package.json0000644000175000017500000000112013431250607025622 0ustar brandonbrandon{ "name": "libatscc2js-workersession" , "version": "1.0.0" , "description": "The package implements session-typed channels based on web-workers." , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/contrib/libatscc/libatscc2js/WorkerSession" } "keywords": [ "ATS", "atscc2js", "session", "session-type", "JavaScript", "web-worker" ] , "dependencies" : {} , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "This package is stored at ${PATSHOME}/contrib/libatscc/libatscc2js/WorkerSession/." } ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/basics_js.sats0000644000175000017500000000664213431250607023371 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_PACKNAME "ATSCC2JS.basics" #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #include "{$LIBATSCC}/basics.sats" // (* ****** ****** *) (* typedef char = int *) (* ****** ****** *) // (* abstype JSnumber abstype JSboolean abstype JSstring *) // abstype JSobj // generic // abstype JSdate // new Date() // abstype JSfilr // nominal! // abstype JSregexp // new RegExp() // (* ****** ****** *) // abstype JSarray(a:vt@ype) // [...] abstype JSobjmap(a:vt@ype) // {...} // (* ****** ****** *) // fun alert(msg: string): void = "mac#%" // (* ****** ****** *) // fun confirm(msg: string): bool = "mac#%" // (* ****** ****** *) // fun prompt_none ( prompt: string ) : string = "mac#%" fun prompt_some ( prompt: string, default: string ) : string = "mac#%" // symintr prompt overload prompt with prompt_none overload prompt with prompt_some // (* ****** ****** *) fun typeof{a:t@ype}(a): string = "mac#%" (* ****** ****** *) // // HX-2014-09: // it returns obj.toString() // fun toString{a:t@ype}(obj: a): string = "mac#%" // (* ****** ****** *) fun console_log{a:t@ype}(obj: a): void = "mac#%" (* ****** ****** *) // fun lazy2cloref {a:t@ype} (lazy(a)): ((*void*)) - (a) = "mac#%" // (* ****** ****** *) // fun assert_errmsg_bool0 (claim: bool, msg: string): void = "mac#%" fun assert_errmsg_bool1 {b:bool} (claim: bool(b), msg: string): [b] void = "mac#%" // overload assert_errmsg with assert_errmsg_bool0 of 100 overload assert_errmsg with assert_errmsg_bool1 of 110 // macdef assertloc(claim) = assert_errmsg(,(claim), $mylocation) // (* ****** ****** *) // fun{a:t0p} logats_tmp (x0: INV(a)): void // (* ****** ****** *) // fun{} logats0(): void fun{a1:t0p} logats1(INV(a1)): void fun{a1,a2:t0p} logats2(INV(a1), INV(a2)): void fun{a1,a2,a3:t0p} logats3(INV(a1), INV(a2), INV(a3)): void fun{a1,a2,a3,a4:t0p} logats4(INV(a1), INV(a2), INV(a3), INV(a4)): void fun{a1,a2,a3,a4,a5:t0p} logats5(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5)): void fun{a1,a2,a3,a4,a5,a6:t0p} logats6(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6)): void fun{a1,a2,a3,a4,a5,a6,a7:t0p} logats7(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6), INV(a7)): void fun{a1,a2,a3,a4,a5,a6,a7,a8:t0p} logats8(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6), INV(a7), INV(a8)): void fun{a1,a2,a3,a4,a5,a6,a7,a8,a9:t0p} logats9(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6), INV(a7), INV(a8), INV(a9)): void // (* ****** ****** *) // symintr logats // overload logats with logats0 overload logats with logats1 overload logats with logats2 overload logats with logats3 overload logats with logats4 overload logats with logats5 overload logats with logats6 overload logats with logats7 overload logats with logats8 overload logats with logats9 // (* ****** ****** *) // (* typedef strchr = string(1) *) // (* ****** ****** *) // fun fun2cloref0 {res:t@ype} (fopr: () -> res): cfun(res) = "mac#%" fun fun2cloref1 {a:t@ype}{res:t@ype} (fopr: (a) -> res): cfun(a, res) = "mac#%" fun fun2cloref2 {a1,a2:t@ype}{res:t@ype} (fopr: (a1, a2) -> res): cfun(a1, a2, res) = "mac#%" fun fun2cloref3 {a1,a2,a3:t@ype}{res:t@ype} (fopr: (a1, a2, a3) -> res): cfun(a1, a2, a3, res) = "mac#%" // (* ****** ****** *) (* end of [basics_js.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/0000755000175000017500000000000013431250607021260 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/qlistref.dats0000644000175000017500000000116113431250607023765 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: list-based queue // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_qlistref_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../mylibies.hats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #include "{$LIBATSCC}/DATS/qlistref.dats" // (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/gvalue.dats0000644000175000017500000000121413431250607023416 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2015-12 // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_gvalue_" // (* ****** ****** *) // #staload "./../SATS/gvalue.sats" // (* ****** ****** *) implement gvalue_nil() = GVnil() (* ****** ****** *) implement gvalue_int(x) = GVint(x) (* ****** ****** *) implement gvalue_bool(x) = GVbool(x) (* ****** ****** *) implement gvalue_float(x) = GVfloat(x) implement gvalue_string(x) = GVstring(x) (* ****** ****** *) (* end of [gvalue.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/matrixref.dats0000644000175000017500000000565113431250607024145 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_matrixref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/matrixref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/matrixref.dats" // (* ****** ****** *) // (* assume matrixref_vt0ype_type(a, m, n) = JSarray(a) *) // (* ****** ****** *) %{^ // function ats2jspre_matrixref_make_elt (m, n, x) { var A, i, j; A = new Array(m*n); for (i = 0; i < m; i += 1) { for (j = 0; j < n; j += 1) A[i*n+j] = x; } ; return A; // initized } // function ats2jspre_matrixref_uninitized (nrow, ncol) { var A = new Array(nrow*ncol); return A; } // %} // end of [%{^] (* ****** ****** *) %{^ // function ats2jspre_matrixref_tabulate_cloref (m, n, fopr) { var A, i, j; A = new Array(m*n); for (i = 0; i < m; i += 1) { for (j = 0; j < n; j += 1) A[i*n+j] = ats2jspre_cloref2_app(fopr, i, j); } return A; } // %} // end of [%{^] (* ****** ****** *) implement matrixref_get_at {a}(A, i, n, j) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_get_at(A, i*n+j) end // end of [matrixref_get_at] (* ****** ****** *) implement matrixref_set_at {a}(A, i, n, j, x) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_set_at(A, i*n+j, x) end // end of [matrixref_set_at] (* ****** ****** *) %{^ // function ats2jspre_mtrxszref_get_nrow (MSZ) { return (MSZ.nrow); } function ats2jspre_mtrxszref_get_ncol (MSZ) { return (MSZ.ncol); } // function ats2jspre_mtrxszref_get_matrixref (MSZ) { return (MSZ.matrix); } // function ats2jspre_mtrxszref_make_matrixref (M, m, n) { return { matrix: M, nrow: m, ncol: n }; } // function ats2jspre_mtrxszref_get_at (MSZ, i, j) { var nrow = MSZ.nrow; var ncol = MSZ.ncol; if (i < 0) throw new RangeError("mtrxszref_get_at"); if (j < 0) throw new RangeError("mtrxszref_get_at"); if (i >= nrow) throw new RangeError("mtrxszref_get_at"); if (j >= ncol) throw new RangeError("mtrxszref_get_at"); return MSZ.matrix[i*ncol+j]; } // function ats2jspre_mtrxszref_set_at (MSZ, i, j, x0) { var nrow = MSZ.nrow; var ncol = MSZ.ncol; if (i < 0) throw new RangeError("mtrxszref_set_at"); if (j < 0) throw new RangeError("mtrxszref_set_at"); if (i >= nrow) throw new RangeError("mtrxszref_set_at"); if (j >= ncol) throw new RangeError("mtrxszref_set_at"); return (MSZ.matrix[i*ncol+j] = x0); } // %} // end of [%{^] (* ****** ****** *) (* end of [matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/JSLIBC/0000755000175000017500000000000013431250607022226 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/JSLIBC/JSmath.dats0000644000175000017500000000150113431250607024266 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_JSmath_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" #staload "./../../SATS/float.sats" #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/JSLIBC/JSmath.sats" // (* ****** ****** *) implement {}(*tmp*) JSmath_randint {n}(n) = let // val r = double2int(n*JSmath_random()) // val r = $UN.cast{intGte(0)}(r) // in if r < n then r else JSmath_randint(n) end // end of [JSmath_randint] (* ****** ****** *) (* end of [JSmath.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/arrayref.dats0000644000175000017500000000464313431250607023757 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_arrayref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/arrayref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/arrayref.dats" // (* ****** ****** *) // (* assume arrayref_vt0ype_type(a, n) = JSarray(a) *) // (* ****** ****** *) %{^ // function ats2jspre_arrayref_make_elt (n, x) { var A, i; A = new Array(n); for (i = 0; i < n; i += 1) A[i] = x; return A; } // function ats2jspre_arrayref_uninitized ( asz ) { var A = new Array(asz); return A; } // %} // end of [%{^] (* ****** ****** *) %{^ // function ats2jspre_arrayref_tabulate_cloref (n, fopr) { var A, i; A = new Array(n); for (i = 0; i < n; i += 1) { A[i] = ats2jspre_cloref1_app(fopr, i); } return A; } // %} // end of [%{^] (* ****** ****** *) implement arrayref_get_at {a}(A, i) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_get_at(A, i) end // end of [arrayref_get_at] (* ****** ****** *) implement arrayref_set_at {a}(A, i, x) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_set_at(A, i, x) end // end of [arrayref_set_at] (* ****** ****** *) // // Array-with-size // (* ****** ****** *) // typedef arrayref (a:vt0p) = [n:nat] arrayref(a, n) // implement arrszref_get_arrayref {a}(A) = $UN.cast{arrayref(a)}(A) // (* ****** ****** *) // implement arrszref_make_arrayref {a}(A, asz) = $UN.cast{arrszref(a)}(A) // (* ****** ****** *) // implement arrszref_size{a}(A) = let val A = $UN.cast{JSarray(a)}(A) in $UN.cast{intGte(0)}(JSarray_length(A)) end // end of [arrszref_size] // (* ****** ****** *) // implement arrszref_get_at{a}(A, i) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_get_at(A, i) end // end of [arrszref_get_at] // implement arrszref_set_at{a}(A, i, x) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_set_at(A, i, x) end // end of [arrszref_set_at] // (* ****** ****** *) (* end of [arrayref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/intrange.dats0000644000175000017500000000137213431250607023747 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_intrange_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/list.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/intrange.dats" // (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/list.dats0000644000175000017500000000413413431250607023112 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" // (* ****** ****** *) // #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/stream.sats" #staload _(*anon*) = "./../DATS/stream.dats" // #staload "./../SATS/stream_vt.sats" #staload _(*anon*) = "./../DATS/stream_vt.dats" // (* ****** ****** *) #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list.dats" // (* ****** ****** *) // extern fun{} print_list$sep(): void // implement {}(*tmp*) print_list$sep ((*void*)) = print_string(", ") // implement {a}(*tmp*) print_list (xs) = let // implement fprint_val
(out, x) = print_val(x) implement fprint_list$sep<>(out) = print_list$sep<>() // in fprint_list(STDOUT, xs) end // end of [print_list] // (* ****** ****** *) // implement {a}(*tmp*) print_list_sep (xs, sep) = let // implement fprint_val(out, x) = print_val(x) implement fprint_list$sep<>(out) = print_string(sep) // in fprint_list(STDOUT, xs) end // end of [print_list_sep] // (* ****** ****** *) implement list_sort_2 {a}{n}(xs, cmp) = let // val A = JSarray_make_list(xs) val () = JSarray_sort_2(A, cmp) // val asz = JSarray_length(A) // fun loop ( i0: int, res: List0(a) ) : List0(a) = ( // if (i0 < asz) then ( loop(i0+1, list_cons(A.pop(), res)) ) else res // end of [if] // ) (* end of [loop] *) // in $UN.cast{list(a,n)}(loop(0, list_nil(*void*))) end // end of [list_sort_2] (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/basics.dats0000644000175000017500000000535713431250607023413 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_basics_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/bool.sats" #staload "./../SATS/integer.sats" // #staload "./../SATS/float.sats" #staload "./../SATS/string.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/basics.dats" // (* ****** ****** *) // implement gcompare_val_val (x, y) = $effmask_all(compare_int0_int0(x, y)) // (* ****** ****** *) // implement gcompare_val_val (x, y) = ( // if (x) then (if y then 0(*t/t*) else 1(*t/f*)) else (if y then ~1(*f/t*) else 0(*f/f*)) // ) (* gcompare_val_val *) // (* ****** ****** *) // implement gcompare_val_val (x, y) = $effmask_all(compare_double_double(x, y)) // implement gcompare_val_val (x, y) = $effmask_all(compare_string_string(x, y)) // (* ****** ****** *) // implement {}(*tmp*) logats0() = () implement {a1}(*tmp*) logats1(x1) = logats_tmp(x1) implement {a1,a2} logats2(x1, x2) = (logats_tmp(x1); logats_tmp(x2)) implement {a1,a2,a3} logats3(x1, x2, x3) = (logats_tmp(x1); logats_tmp(x2); logats_tmp(x3)) // implement {a1,a2,a3,a4} logats4(x1, x2, x3, x4) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4) ) implement {a1,a2,a3,a4,a5} logats5(x1, x2, x3, x4, x5) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5) ) implement {a1,a2,a3,a4,a5,a6} logats6(x1, x2, x3, x4, x5, x6) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5); logats_tmp(x6); ) implement {a1,a2,a3,a4,a5,a6,a7} logats7(x1, x2, x3, x4, x5, x6, x7) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5); logats_tmp(x6); logats_tmp(x7) ) implement {a1,a2,a3,a4,a5,a6,a7,a8} logats8(x1, x2, x3, x4, x5, x6, x7, x8) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5); logats_tmp(x6); logats_tmp(x7); logats_tmp(x8); ) implement {a1,a2,a3,a4,a5,a6,a7,a8,a9} logats9(x1, x2, x3, x4, x5, x6, x7, x8, x9) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5); logats_tmp(x6); logats_tmp(x7); logats_tmp(x8); logats_tmp(x9) ) // (* ****** ****** *) // implement fun2cloref0(fopr) = lam() => fopr() implement fun2cloref1(fopr) = lam(x) => fopr(x) implement fun2cloref2(fopr) = lam(x1, x2) => fopr(x1, x2) implement fun2cloref3(fopr) = lam(x1, x2, x3) => fopr(x1, x2, x3) // (* ****** ****** *) (* end of [basics.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/option.dats0000644000175000017500000000121713431250607023446 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_option_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/option.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/option.dats" // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/stream.dats0000644000175000017500000000233513431250607023433 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_stream_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/reference.sats" // (* ****** ****** *) #staload "./../SATS/stream.sats" (* ****** ****** *) #define ATSCC_ARRAYREF 1 #define ATSCC_REFERENCE 1 (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream.dats" // (* ****** ****** *) // extern fun StreamSubscriptExn_throw{a:vt0p}(): (a) = "mac#%" // (* ****** ****** *) implement stream_nth_exn (xs, n) = let // val opt = stream_nth_opt(xs, n) // in // case+ opt of | ~Some_vt(x) => x | ~None_vt((*void*)) => StreamSubscriptExn_throw() // end // end of [stream_nth_exn] (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/Number/0000755000175000017500000000000013431250607022510 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/Number/real_double.dats0000644000175000017500000000756113431250607025653 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2016-05: // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../../SATS/float.sats" // staload "libats/SATS/Number/real.sats" // (* ****** ****** *) // abst@ype real_real_t0ype(real) = double // typedef real(r:real) = real_real_t0ype(r) // (* ****** ****** *) typedef real0 = [r:real] real_real_t0ype(r) (* ****** ****** *) // staload "./../../SATS/JSmath.sats" // #include "libats/DATS/Number/SHARE/real.dats" // (* ****** ****** *) // assume real_real_t0ype(r:real) = double // (* ****** ****** *) implement {}(*tmp*) neg_real(x) = neg_double(x) (* ****** ****** *) // implement {}(*tmp*) add_real_real(x, y) = add_double_double(x, y) implement {}(*tmp*) sub_real_real(x, y) = sub_double_double(x, y) implement {}(*tmp*) mul_real_real(x, y) = mul_double_double(x, y) implement {}(*tmp*) div_real_real(x, y) = div_double_double(x, y) // (* ****** ****** *) // implement {}(*tmp*) add_int_real(i, x) = add_real_real(int2real(i), x) implement {}(*tmp*) add_real_int(x, i) = add_real_real(x, int2real(i)) // implement {}(*tmp*) mul_int_real(i, x) = mul_real_real(int2real(i), x) implement {}(*tmp*) div_real_int(x, i) = div_real_real(x, int2real(i)) // (* ****** ****** *) // implement {}(*tmp*) lt_real_real(x, y) = $UN.cast(lt_double_double(x, y)) implement {}(*tmp*) lte_real_real(x, y) = $UN.cast(lte_double_double(x, y)) // (* ****** ****** *) // implement {}(*tmp*) gt_real_real(x, y) = $UN.cast(gt_double_double(x, y)) implement {}(*tmp*) gte_real_real(x, y) = $UN.cast(gte_double_double(x, y)) // (* ****** ****** *) // implement {}(*tmp*) eq_real_real(x, y) = $UN.cast(eq_double_double(x, y)) implement {}(*tmp*) neq_real_real(x, y) = $UN.cast(neq_double_double(x, y)) // (* ****** ****** *) // implement {}(*tmp*) lt_real_int(x, i) = $UN.cast(lt_real_real(x, int2real(i))) implement {}(*tmp*) lte_real_int(x, i) = $UN.cast(lte_real_real(x, int2real(i))) // (* ****** ****** *) // implement {}(*tmp*) gt_real_int(x, i) = $UN.cast(gt_real_real(x, int2real(i))) implement {}(*tmp*) gte_real_int(x, i) = $UN.cast(gte_real_real(x, int2real(i))) // (* ****** ****** *) // implement {}(*tmp*) eq_real_int(x, i) = $UN.cast(eq_real_real(x, int2real(i))) implement {}(*tmp*) neq_real_int(x, i) = $UN.cast(neq_real_real(x, int2real(i))) // (* ****** ****** *) // implement {}(*tmp*) int2real(i) = int2double(i) // (* ****** ****** *) implement {}(*tmp*) abs_real(r) = abs_double(r) (* ****** ****** *) implement {}(*tmp*) sin_real(r) = JSmath_sin(r) implement {}(*tmp*) cos_real(r) = JSmath_cos(r) implement {}(*tmp*) tan_real(r) = JSmath_tan(r) (* ****** ****** *) (* end of [real_double.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/JSarray.dats0000644000175000017500000000354513431250607023517 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_JSarray_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) #staload "./../SATS/integer.sats" (* ****** ****** *) #staload "./../SATS/JSarray.sats" (* ****** ****** *) implement JSarray_make_list {a}(xs) = let // fun loop ( A: JSarray(a), xs: List(a) ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => let val _ = A.push(x) in loop(A, xs) end // [list_cons] ) // val A = JSarray_nil{a}() // in let val () = loop(A, xs) in A end end // end of [JSarray_make_list] (* ****** ****** *) implement JSarray_make_list_vt {a}(xs) = let // fun loop ( A: JSarray(a), xs: List_vt(a) ) : void = ( case+ xs of | ~list_vt_nil() => () | ~list_vt_cons(x, xs) => let val _ = A.push(x) in loop(A, xs) end // [list_vt_cons] ) // val A = JSarray_nil{a}() // in let val () = loop(A, xs) in A end end // end of [JSarray_make_list_vt] (* ****** ****** *) implement JSarray_tabulate_cloref {a}{n} ( asz, fopr ) = let // val A = JSarray_nil{a}() // fun loop {i:nat | i <= n}(i: int(i)): void = ( if i < asz then let val _ = JSarray_push(A, fopr(i)) in loop(i+1) end // end of [then] else () // end of [else] // end of [if] ) (* end of [loop] *) // in let val () = loop(0) in A end end (* end of [JSarray_tabulate_cloref] *) (* ****** ****** *) // implement {a}(*tmp*) JSarray_sort_1(A) = JSarray_sort_2 (A, lam(x1, x2) => gcompare_val_val(x1, x2)) // (* ****** ****** *) (* end of [JSarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/string.dats0000644000175000017500000000751113431250607023447 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_string_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/string.sats" #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/stream.sats" #staload "./../SATS/stream_vt.sats" // #staload _(*STREAM*) = "./stream.dats" #staload _(*STREAM_VT*) = "./stream_vt.dats" // (* ****** ****** *) implement strchr_code(c) = string_charCodeAt(c, 0) (* ****** ****** *) implement string_fset_at {n}{i} ( str0, i0, c0 ) = let // val n0 = string_length(str0) val f0 = string_substring_beg_end(str0, 0, i0) val r0 = string_substring_beg_end(str0, i0+1, n0) // in $UN.cast{string(n)}(string_concat_3(f0, c0, r0)) end // end of [string_fset_at] (* ****** ****** *) // implement string_exists_cloref (str0, pred) = loop(0) where { // val [n:int] str = g1ofg0(str0) val len = string_length(str) // fun loop {i:nat|i <= n}(i: int(i)): bool = ( if i < len then (if pred(str[i]) then true else loop(i+1)) else false ) // } (* end of [string_exists_cloref] *) // implement string_exists_method (str0) = ( lam(pred) => string_exists_cloref(str0, pred) ) (* end of [string_exists_method] *) // (* ****** ****** *) // implement string_forall_cloref (str0, pred) = loop(0) where { // val [n:int] str = g1ofg0(str0) val len = string_length(str) // fun loop {i:nat|i <= n}(i: int(i)): bool = ( if i < len then (if pred(str[i]) then loop(i+1) else false) else true ) // } (* end of [string_forall_cloref] *) // implement string_forall_method (str0) = ( lam(pred) => string_forall_cloref(str0, pred) ) (* end of [string_forall_method] *) // (* ****** ****** *) // implement string_foreach_cloref (str0, fwork) = loop(0) where { // val [n:int] str = g1ofg0(str0) val len = string_length(str) // fun loop {i:nat|i <= n}(i: int(i)): void = ( if i < len then (fwork(str[i]); loop(i+1)) else () ) // } (* end of [string_foreach_cloref] *) // implement string_foreach_method (str0) = ( lam(fwork) => string_foreach_cloref(str0, fwork) ) (* end of [string_foreach_method] *) // (* ****** ****** *) // implement string_tabulate_cloref {n} ( len, fopr ) = // string_tabulate_cloref $UN.cast{string(n)} ( JSarray_join_sep(JSarray_tabulate_cloref(len, fopr), "") ) (* end of [string_tabulate_cloref] *) // (* ****** ****** *) implement streamize_string_code (str0) = auxmain(0) where { // val [n:int] str0 = g1ofg0(str0) // val len = string_length(str0) // fun auxmain {i:nat | i <= n} ( i: int(i) ) : stream_vt(int) = $ldelay ( // if i < len then stream_vt_cons (str0.charCodeAt(i), auxmain(i+1)) // stream_vt_cons else stream_vt_nil((*void*)) // ) (* end of [auxmain] *) // } (* end of [streamize_string_code] *) (* ****** ****** *) implement streamize_string_line (inp) = let // #define ENDL 10 // val [n:int] inp = g1ofg0(inp) // val n = length(inp) // fun auxmain {i,j:nat |i <= j; j <= n} ( i: int(i), j: int(j) ) : stream_vt(string) = $ldelay ( if (j < n) then let val c0 = inp.charCodeAt(j) in if (c0 != ENDL) then !(auxmain(i, j+1)) else let val j1 = j + 1 val line = string_substring_beg_end(inp, i, j) in stream_vt_cons(line, auxmain(j1, j1)) end end // end of [then] else ( // if (i = j) then stream_vt_nil((*void*)) else stream_vt_sing(string_substring_beg_end(inp, i, j)) // ) (* end of [else] *) ) (* end of [auxmain] *) // in auxmain(0(*i*), 0(*j*)) end // end of [streamize_string_line] (* ****** ****** *) (* end of [string.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/reference.dats0000644000175000017500000000274313431250607024101 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_reference_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/reference.sats" // (* ****** ****** *) // (* assume ref_vt0ype_type(a:t@ype) = JSarray(a) *) // (* ****** ****** *) // implement ref{a}(x) = ref_make_elt{a}(x) // implement ref_make_elt{a}(x) = $UN.cast{ref(a)}(JSarray_sing(x)) // (* ****** ****** *) // implement ref_make_type_elt {a}(_type_, x) = ref_make_elt{a}(x) // (* ****** ****** *) implement ref_get_elt{a}(r) = let val r = $UN.cast{JSarray(a)}(r) in JSarray_get_at(r, 0) end // end of [ref_get_elt] (* ****** ****** *) implement ref_set_elt{a}(r, x0) = let val r = $UN.cast{JSarray(a)}(r) in JSarray_set_at(r, 0, x0) end // end of [ref_set_elt] (* ****** ****** *) implement ref_exch_elt{a}(r, x0) = let val r = $UN.cast{JSarray(a?)}(r) // end of [val] val x1 = JSarray_get_at(r, 0) in JSarray_set_at(r, 0, $UN.castvwtp0{a?}(x0)); $UN.castvwtp0{a}(x1) end // end of [ref_exch_elt] (* ****** ****** *) // extern fun{a:vt0p} ref(x0: a): ref(a) // implement{a} ref(x0) = ref_make_elt{a}(x0) // (* ****** ****** *) (* end of [reference.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/gmatrixref.dats0000644000175000017500000000150613431250607024307 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_matrixref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/matrixref.sats" #staload "./../SATS/gmatrixref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/gmatrixref.dats" // (* ****** ****** *) (* end of [gmatrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/slistref.dats0000644000175000017500000000116113431250607023767 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: list-based stack // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_slistref_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../mylibies.hats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #include "{$LIBATSCC}/DATS/slistref.dats" // (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/list_vt.dats0000644000175000017500000000134413431250607023623 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list_vt.dats" // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/gprint.dats0000644000175000017500000000206113431250607023437 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_gprint_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) #staload "./../SATS/gprint.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/gprint.dats" // (* ****** ****** *) // extern fun tostring {a:t@ype}(x: a): string = "mac#%" // (* ****** ****** *) // implement {a}(*tmp*) gprint_val(x) = gprint_string(tostring(x)) // (* ****** ****** *) // implement {}(*tmp*) gprint_int(x) = gprint_string(tostring(x)) // (* ****** ****** *) // implement {}(*tmp*) gprint_bool(x) = gprint_string(if x then "true" else "false") // (* ****** ****** *) (* implement {}(*tmp*) gprint_char(x) = gprint_string(tostring(x)) *) (* ****** ****** *) implement {}(*tmp*) gprint_double(x) = gprint_string(tostring(x)) (* ****** ****** *) (* end of [gprint.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/print.dats0000644000175000017500000000131513431250607023271 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_print_" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/print.sats" // #staload "./../SATS/ML/list0.sats" // (* ****** ****** *) // implement print_val = print_int implement print_val = print_bool implement print_val = print_double implement print_val = print_string // (* ****** ****** *) implement (a)(*tmp*) print_val = print_list0 (* ****** ****** *) (* end of [print.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/funarray.dats0000644000175000017500000000141013431250607023760 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_funarray_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // (* #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" *) // (* ****** ****** *) // #staload "./../SATS/funarray.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/funarray.dats" // (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/stream_vt.dats0000644000175000017500000000165513431250607024150 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_stream_vt_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // #staload "./../SATS/reference.sats" // (* ****** ****** *) #staload "./../SATS/stream.sats" #staload "./../SATS/stream_vt.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream_vt.dats" // (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/char.dats0000644000175000017500000000272013431250607023053 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_string_" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/char.sats" #staload "./../SATS/integer.sats" // // (* ****** ****** *) // implement char_isalpha(c0) = ( ifcase | (65(*A*) <= c0 && c0 <= 90(*Z*)) => true | (97(*a*) <= c0 && c0 <= 122(*z*)) => true | _(*else*) => false // end of [ifcase] ) (* end of [char_isalpha] *) // (* ****** ****** *) // implement char_isalnum(c0) = ( ifcase | (48(*0*) <= c0 && c0 <= 57(*9*)) => true | (65(*A*) <= c0 && c0 <= 90(*Z*)) => true | (97(*a*) <= c0 && c0 <= 122(*z*)) => true | _(*else*) => false // end of [ifcase] ) (* end of [char_isalnum] *) // (* ****** ****** *) // implement char_isdigit(c0) = ( ifcase | (48(*0*) <= c0 && c0 <= 57(*9*)) => true | _(*else*) => false // end of [ifcase] ) (* end of [char_isdigit] *) // (* ****** ****** *) implement char_isspace(c0) = ( ifcase | c0 = 9(*\t*) => true | c0 = 10(*\n*) => true | c0 = 11(*\v*) => true | c0 = 12(*\f*) => true | c0 = 13(*\r*) => true | c0 = 32(*' '*) => true | _(*else*) => false // end of [ifcase] ) (* end of [char_isspace] *) // (* ****** ****** *) (* end of [char.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/ML/0000755000175000017500000000000013431250607021570 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/ML/option0.dats0000644000175000017500000000126513431250607024041 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" #define ATS_STATIC_PREFIX "_ats2jspre_ML_option0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" // (* ****** ****** *) // #staload "./../../SATS/ML/option0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/option0.dats" // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/ML/list0.dats0000644000175000017500000000622013431250607023500 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" #define ATS_STATIC_PREFIX "_ats2jspre_ML_list0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/list.sats" // (* ****** ****** *) // #staload "./../../SATS/stream.sats" // #staload "./../../SATS/stream_vt.sats" #staload _ = "./../../DATS/stream_vt.dats" // (* ****** ****** *) // #staload "./../../SATS/ML/list0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/list0.dats" // (* ****** ****** *) // local // #staload "./../list.dats" // in (* in-of-local *) // extern fun{} print_list0$sep (): void // implement {}(*tmp*) print_list0$sep ((*void*)) = print_string (", ") // implement {a}(*tmp*) print_list0(xs) = let // implement print_list$sep<> = print_list0$sep<> // in print_list(g1ofg0(xs)) end // end of [print_list0] // implement {a}(*tmp*) print_list0_sep(xs, sep) = let // in print_list_sep(g1ofg0(xs), sep) end // end of [print_list0_sep] // end // end of [local] // (* ****** ****** *) // implement list0_head_exn {a}(xs) = ( case+ xs of | list0_cons (x, _) => (x) // list0_cons | list0_nil() => ( $extfcall(a, "ats2jspre_ListSubscriptExn_throw") ) (* list0_nil *) ) (* end of [list0_head_exn] *) // (* ****** ****** *) // implement list0_tail_exn {a}(xs) = ( case+ xs of | list0_cons (_, xs) => (xs) // list0_cons | list0_nil() => ( $extfcall (list0(a), "ats2jspre_ListSubscriptExn_throw") // $extfcall ) (* list0_nil *) ) (* end of [list0_tail_exn] *) // (* ****** ****** *) implement list0_get_at_exn {a}(xs, n) = ( case+ xs of | list0_nil() => ( $extfcall(a, "ats2jspre_ListSubscriptExn_throw") ) (* list0_nil *) | list0_cons(x, xs) => if n > 0 then list0_get_at_exn(xs, n-1) else (x) // end of [list0_cons] ) (* end of [list0_get_at_exn] *) // (* ****** ****** *) implement list0_insert_at_exn {a} ( xs, i0, x0 ) = aux(xs, i0) where { // fun aux ( xs: list0(a), i0: intGte(0) ) : list0(a) = ( if i0 > 0 then ( case+ xs of | list0_nil() => $extfcall (list0(a), "ats2jspre_ListSubscriptExn_throw") // (* list0_nil *) | list0_cons(x, xs) => list0_cons(x, aux(xs, i0-1)) ) else list0_cons(x0, xs) ) (* end of [aux] *) // } (* end of [list0_insert_at_exn] *) (* ****** ****** *) implement list0_remove_at_exn {a} ( xs, i0 ) = aux(xs, i0) where { // fun aux ( xs: list0(a), i0: intGte(0) ) : list0(a) = ( case+ xs of | list0_nil() => $extfcall (list0(a), "ats2jspre_ListSubscriptExn_throw") // (* list0_nil *) | list0_cons(x, xs) => if i0 > 0 then list0_cons(x, aux(xs, i0-1)) else xs ) // } (* end of [list0_remove_at_exn] *) (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/ML/array0.dats0000644000175000017500000000155113431250607023645 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" #define ATS_STATIC_PREFIX "_ats2jspre_ML_array0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/arrayref.sats" #staload "./../../SATS/ML/array0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/array0.dats" // (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/DATS/ML/matrix0.dats0000644000175000017500000000160113431250607024027 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" #define ATS_STATIC_PREFIX "_ats2jspre_ML_matrix0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/matrixref.sats" #staload "./../../SATS/ML/matrix0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/matrix0.dats" // (* ****** ****** *) (* end of [matrix0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/0000755000175000017500000000000013431250607021271 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/Canvas/0000755000175000017500000000000013431250607022504 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/Canvas/mylibies.hats0000644000175000017500000000030413431250607025177 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2017-01-30: ** For downstream static loading *) (* ****** ****** *) // #staload CANVAS2D = "./SATS/canvas2d.sats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/Canvas/TEST/0000755000175000017500000000000013431250607023263 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/Canvas/TEST/.keeper0000644000175000017500000000000013431250607024525 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/Canvas/CATS/0000755000175000017500000000000013431250607023236 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/Canvas/CATS/canvas2d_cats.js0000644000175000017500000001211313431250607026305 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of * [HTML_canvas2d_cats.js] ****** */ /* ****** ****** */ function ats2js_html_canvas_getById (id) { var canvas = document.getElementById(id); if(!canvas) { throw "ats2js_html_canvas_getById: canvas is not found"; } return canvas; } /* ****** ****** */ function ats2js_html_canvas2d_getById (id) { var canvas = document.getElementById(id); if(!canvas) { throw "ats2js_html_canvas_getById: canvas is not found"; } if(!canvas.getContext) { throw "ats2js_html_canvas2d_getById: canvas-2d is not supported"; } return canvas.getContext("2d"); } /* ****** ****** */ function ats2js_html_canvas2d_beginPath (ctx) { ctx.beginPath(); return; } function ats2js_html_canvas2d_closePath (ctx) { ctx.closePath(); return; } /* ****** ****** */ function ats2js_html_canvas2d_moveTo (ctx, x, y) { ctx.moveTo(x, y); return; } function ats2js_html_canvas2d_lineTo (ctx, x, y) { ctx.lineTo(x, y); return; } /* ****** ****** */ // function ats2js_html_canvas2d_translate (ctx, x, y) { ctx.translate(x, y); return; } // function ats2js_html_canvas2d_scale (ctx, sx, sy) { ctx.scale(sx, sy); return; } // function ats2js_html_canvas2d_rotate (ctx, rangle) { ctx.rotate(rangle); return; } // /* ****** ****** */ function ats2js_html_canvas2d_rect (ctx, xul, yul, width, height) { ctx.rect(xul, yul, width, height); return; } /* end of [ats2js_html_canvas2d_rect] */ function ats2js_html_canvas2d_arc (ctx, xc, yc, rad, angle_beg, angle_end, CCW) { ctx.arc(xc, yc, rad, angle_beg, angle_end, CCW); return; } /* end of [ats2js_html_canvas2d_arc] */ /* ****** ****** */ function ats2js_html_canvas2d_clearRect (ctx, xul, yul, width, height) { ctx.clearRect(xul, yul, width, height); return; } /* end of [ats2js_html_canvas2d_clearRect] */ /* ****** ****** */ // function ats2js_html_canvas2d_fill(ctx) { ctx.fill(); return; } function ats2js_html_canvas2d_stroke(ctx) { ctx.stroke(); return; } // /* ****** ****** */ // function ats2js_html_canvas2d_fillRect (ctx, xul, yul, width, height) { ctx.fillRect(xul, yul, width, height); return; } /* end of [ats2js_html_canvas2d_fillRect] */ // function ats2js_html_canvas2d_strokeRect (ctx, xul, yul, width, height) { ctx.strokeRect(xul, yul, width, height); return; } /* end of [ats2js_html_canvas2d_strokeRect] */ // /* ****** ****** */ // function ats2js_html_canvas2d_fillText (ctx, text, xstart, ystart) { ctx.fillText(text, xstart, ystart); return; } function ats2js_html_canvas2d_fillText2 (ctx, text, xstart, ystart, maxWidth) { ctx.fillText2(text, xstart, ystart, maxWidth); return; } // /* ****** ****** */ function ats2js_html_canvas2d_save(ctx) { ctx.save(); return; } function ats2js_html_canvas2d_restore(ctx) { ctx.restore(); return; } /* ****** ****** */ // function ats2js_html_canvas2d_get_lineWidth (ctx) { return ctx.lineWidth; } function ats2js_html_canvas2d_set_lineWidth_int (ctx, lineWidth) { ctx.lineWidth = lineWidth; return; } function ats2js_html_canvas2d_set_lineWidth_double (ctx, lineWidth) { ctx.lineWidth = lineWidth; return; } // /* ****** ****** */ function ats2js_html_canvas2d_set_font_string (ctx, font) { ctx.font = font; return; } function ats2js_html_canvas2d_set_textAlign_string (ctx, textAlign) { ctx.textAlign = textAlign; return; } function ats2js_html_canvas2d_set_textBaseline_string (ctx, textBaseline) { ctx.textBaseline = textBaseline; return; } /* ****** ****** */ function ats2js_html_canvas2d_set_fillStyle_string (ctx, fillStyle) { ctx.fillStyle = fillStyle; return; } function ats2js_html_canvas2d_set_strokeStyle_string (ctx, strokeStyle) { ctx.strokeStyle = strokeStyle; return; } /* ****** ****** */ function ats2js_html_canvas2d_set_shadowColor_string (ctx, shadowColor) { ctx.shadowColor = shadowColor; return; } /* ****** ****** */ function ats2js_html_canvas2d_set_shadowBlur_int (ctx, shadowBlur) { ctx.shadowBlur = shadowBlur; return; } function ats2js_html_canvas2d_set_shadowBlur_string (ctx, shadowBlur) { ctx.shadowBlur = shadowBlur; return; } /* ****** ****** */ // function ats2js_html_canvas2d_set_shadowOffsetX_int (ctx, X) { ctx.shadowOffsetX = X; return; } function ats2js_html_canvas2d_set_shadowOffsetX_double (ctx, X) { ctx.shadowOffsetX = X; return; } // function ats2js_html_canvas2d_set_shadowOffsetY_int (ctx, Y) { ctx.shadowOffsetY = Y; return; } function ats2js_html_canvas2d_set_shadowOffsetY_double (ctx, Y) { ctx.shadowOffsetY = Y; return; } // /* ****** ****** */ function ats2js_html_canvas2d_createLinearGradient (ctx, x0, y0, x1, y1) { return ctx.createLinearGradient(x0, y0, x1, y1); } /* ****** ****** */ // function ats2js_html_canvas2d_gradient_addColorStop (grad, stop, color) { grad.addColorStop(stop, color); return; } // /* ****** ****** */ // function ats2js_html_canvas2d_set_fillStyle_gradient (ctx, gradient) { ctx.fillStyle = gradient; return; } function ats2js_html_canvas2d_set_strokeStyle_gradient (ctx, gradient) { ctx.strokeStyle = gradient; return; } // /* ****** ****** */ /* end of [canvas2d_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/Canvas/SATS/0000755000175000017500000000000013431250607023256 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/Canvas/SATS/canvas2d.sats0000644000175000017500000001564213431250607025663 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** API in ATS for HTML/canvas-2d *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: October, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ** Author: William Blair ** Start Time: October, 2013 ** Authoremail: wdblairATgmailDOTcom *) (* ****** ****** *) (* // #define ATS_STALOADFLAG 0 // *) // // HX-2017-11: // #define ATS_EXTERN_PREFIX "ats2js_html_" // // prefix for external names // (* ****** ****** *) // abstype canvas_type typedef canvas = canvas_type // abstype canvas2d_type typedef canvas2d = canvas2d_type // (* ****** ****** *) // fun canvas_getById(id: string): canvas = "mac#%" fun canvas2d_getById(id: string): canvas2d = "mac#%" // (* ****** ****** *) fun canvas2d_clearRect ( canvas2d , x: int, y: int, wd: int, ht: int ) : void = "mac#%" // endfun overload .clearRect with canvas2d_clearRect (* ****** ****** *) // fun canvas2d_beginPath (cnvs: canvas2d): void = "mac#%" fun canvas2d_closePath (cnvs: canvas2d): void = "mac#%" // overload .beginPath with canvas2d_beginPath overload .closePath with canvas2d_closePath // (* ****** ****** *) // fun canvas2d_moveTo (canvas2d, x: double, y: double): void = "mac#%" // fun canvas2d_lineTo (canvas2d, x: double, y: double): void = "mac#%" // overload .moveTo with canvas2d_moveTo overload .lineTo with canvas2d_lineTo // (* ****** ****** *) fun canvas2d_rect ( canvas2d , xul: double, yul: double , width: double, height: double ) : void = "mac#%" // endfun overload .rect with canvas2d_rect (* ****** ****** *) fun canvas2d_arc ( canvas2d , xc: double, yc: double, rad: double , angle_beg: double, angle_end: double, ccw: bool ) : void = "mac#%" // endfun overload .arc with canvas2d_arc (* ****** ****** *) // fun canvas2d_fill (canvas2d): void = "mac#%" fun canvas2d_stroke (canvas2d): void = "mac#%" // overload .fill with canvas2d_fill overload .stroke with canvas2d_stroke // (* ****** ****** *) // fun canvas2d_fillRect ( canvas2d , xul: double, yul: double, width: double, height: double ) : void = "mac#%" fun canvas2d_strokeRect ( canvas2d , xul: double, yul: double, width: double, height: double ) : void = "mac#%" // overload .fillRect with canvas2d_fillRect overload .strokeRect with canvas2d_strokeRect // (* ****** ****** *) // fun canvas2d_fillText (canvas2d, text: string, x: double, y: double): void = "mac#%" fun canvas2d_fillText2 (canvas2d, text: string, x: double, y: double, maxWidth: double): void = "mac#%" // overload .fillText with canvas2d_fillText overload .fillText2 with canvas2d_fillText2 // (* ****** ****** *) // fun canvas2d_scale (canvas2d, sx: double, sy: double): void = "mac#%" fun canvas2d_rotate (canvas2d, angle: double(*radian*)): void = "mac#%" fun canvas2d_translate (can: canvas2d, x: double, y: double): void = "mac#%" // overload .scale with canvas2d_scale overload .rotate with canvas2d_rotate overload .translate with canvas2d_translate // (* ****** ****** *) // absview canvas2d_save_v // (* ****** ****** *) // fun canvas2d_save (canvas: canvas2d): (canvas2d_save_v | void) = "mac#%" fun canvas2d_restore (pf: canvas2d_save_v | canvas: canvas2d): void = "mac#%" // overload .save with canvas2d_save overload .restore with canvas2d_restore // (* ****** ****** *) // fun canvas2d_get_lineWidth (canvas2d): double = "mac#%" fun canvas2d_set_lineWidth_int (canvas2d, int): void = "mac#%" fun canvas2d_set_lineWidth_double (canvas2d, double): void = "mac#%" // overload .lineWidth with canvas2d_get_lineWidth overload .lineWidth with canvas2d_set_lineWidth_int overload .lineWidth with canvas2d_set_lineWidth_double // (* ****** ****** *) // fun canvas2d_set_font_string (canvas2d, font: string): void = "mac#%" fun canvas2d_set_textAlign_string (canvas2d, value: string): void = "mac#%" fun canvas2d_set_textBaseline_string (canvas2d, value: string): void = "mac#%" // overload .font with canvas2d_set_font_string overload .textAlign with canvas2d_set_textAlign_string overload .textBaseline with canvas2d_set_textBaseline_string // (* ****** ****** *) // fun canvas2d_set_fillStyle_string (canvas2d, style: string): void = "mac#%" fun canvas2d_set_strokeStyle_string (canvas2d, style: string): void = "mac#%" // overload .fillStyle with canvas2d_set_fillStyle_string overload .strokeStyle with canvas2d_set_strokeStyle_string // (* ****** ****** *) // fun canvas2d_set_shadowColor_string (canvas2d, color: string): void = "mac#%" // overload .shadowColor with canvas2d_set_shadowColor_string // (* ****** ****** *) // fun canvas2d_set_shadowBlur_int (canvas2d, blur: int): void = "mac#%" fun canvas2d_set_shadowBlur_double (canvas2d, blur: double): void = "mac#%" // overload .shadowBlur with canvas2d_set_shadowBlur_int overload .shadowBlur with canvas2d_set_shadowBlur_double // (* ****** ****** *) // fun canvas2d_set_shadowOffsetX_int (canvas2d, int): void = "mac#%" fun canvas2d_set_shadowOffsetX_double (canvas2d, double): void = "mac#%" // overload .shadowOffsetX with canvas2d_set_shadowOffsetX_int overload .shadowOffsetX with canvas2d_set_shadowOffsetX_double // (* ****** ****** *) // fun canvas2d_set_shadowOffsetY_int (canvas2d, int): void = "mac#%" fun canvas2d_set_shadowOffsetY_double (canvas2d, double): void = "mac#%" // overload .shadowOffsetY with canvas2d_set_shadowOffsetY_int overload .shadowOffsetY with canvas2d_set_shadowOffsetY_double // (* ****** ****** *) // abstype gradient_type typedef gradient = gradient_type // (* ****** ****** *) // fun canvas2d_createLinearGradient ( canvas2d , x0: double, y0: double, x1: double, y1: double ) : gradient = "mac#%" // end-of-fun // overload .createLinearGradient with canvas2d_createLinearGradient // (* ****** ****** *) // fun canvas2d_gradient_addColorStop (gradient, stop: double, color: string): void = "mac#%" // overload .addColorStop with canvas2d_gradient_addColorStop // (* ****** ****** *) // fun canvas2d_set_fillStyle_gradient (canvas2d, style: gradient): void = "mac#%" fun canvas2d_set_strokeStyle_gradient (canvas2d, style: gradient): void = "mac#%" // overload .fillStyle_gradient with canvas2d_set_fillStyle_gradient overload .strokeStyle_gradient with canvas2d_set_strokeStyle_gradient // (* ****** ****** *) (* end of [canvas2d.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/Canvas/package.json0000644000175000017500000000104613431250607024773 0ustar brandonbrandon{ "name": "libatscc2js-html5-canvas" , "version": "1.0.0" , "description": "The package implements a partial API in ATS for drawing on 2D-canvas." , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/contrib/libatscc/libatscc2js/HTML5/Canvas" } , "keywords": [ "ATS", "atscc2js", "Bacon.js" ] , "dependencies" : {} , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "This package is stored at ${PATSHOME}/contrib/libatscc/libatscc2js/HTML5/Canvas/." } ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/0000755000175000017500000000000013431250607021710 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/DATS/0000755000175000017500000000000013431250607022443 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/DATS/document.dats0000644000175000017500000000335413431250607025143 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: November, 2017 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // no run-time dynloading // #define ATS_EXTERN_PREFIX "ats2js_HTML_document_" // prefix for extern names #define ATS_STATIC_PREFIX "_ats2js_HTML_document_" // prefix for static names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // staload "./../SATS/document.sats" // (* ****** ****** *) // implement theDocument_getById_exn (_, id) = document_getById_exn(id) implement theDocument_getById_opt (_, id) = document_getById_opt(id) // (* ****** ****** *) // implement theDocument_createElement (_, tag) = document_createElement(tag) // (* ****** ****** *) (* end of [document.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/mylibies.hats0000644000175000017500000000030413431250607024403 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2017-01-30: ** For downstream static loading *) (* ****** ****** *) // #staload DOCUMENT = "./SATS/document.sats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/TEST/0000755000175000017500000000000013431250607022467 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/TEST/test01.dats0000644000175000017500000000033213431250607024462 0ustar brandonbrandon(* ****** ****** *) // #staload "./../SATS/document.sats" // (* ****** ****** *) // val DOC = theDocument // (* ****** ****** *) // val pre = DOC.createElement("pre") // (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/CATS/0000755000175000017500000000000013431250607022442 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/CATS/document_cats.js0000644000175000017500000000306213431250607025631 0ustar brandonbrandon/* ****** * * HX-2017-11: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of * [HTML_document_cats.js] ****** */ /* ****** ****** */ function ats2js_HTML_document_getById_exn (id) { var elem = document.getElementById(id); if(!elem) { throw "ats2js_HTML_document_getById: [" + id + "]: failed"; } else { return elem; } // end of [if] } function ats2js_HTML_document_getById_opt (id) { var elem = document.getElementById(id); if (!elem) { return ats2jspre_option_none(); } else { return ats2jspre_option_some(elem); } // end of [if] } /* ****** ****** */ function ats2js_HTML_document_createElement (tag) { var elem = document.createElement(tag); if (!elem) { throw "ats2js_HTML_document_createElement: [" + tag+ "]: failed"; } else { return elem; } // end of [if] } /* ****** ****** */ // function ats2js_HTML_Element_get_innerHTML (elem) { return ( elem.innerHTML ); } function ats2js_HTML_Element_set_innerHTML (elem, text) { return (elem.innerHTML = text); } // /* ****** ****** */ // function ats2js_HTML_Element_get_childNodes (elem) { return ( elem.childNodes ); } function ats2js_HTML_Element_set_childNodes (elem, nodes) { return (elem.childNodes = nodes); } // /* ****** ****** */ // function ats2js_HTML_Element_get_childNode_at (elem, index) { return ( elem.childNode[index] ); } function ats2js_HTML_Element_set_childNode_at (elem, index, node) { return (elem.childNode[index] = node); } // /* ****** ****** */ /* end of [document_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/SATS/0000755000175000017500000000000013431250607022462 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/HTML/DOM/SATS/document.sats0000644000175000017500000000552713431250607025205 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // // HX-2017-11-25: // Common functions // for manipulating DOM objects // (* ****** ****** *) // // HX-2017-11: // #define ATS_EXTERN_PREFIX "ats2js_html_" // // prefix for external names // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" #staload "{$LIBATSCC2JS}/basics_js.sats" // (* ****** ****** *) // abstype theDocument_type typedef theDocument = theDocument_type // macdef theDocument = $extval(theDocument, "document") // (* ****** ****** *) abstype Element_type typedef Element = Element_type typedef Elemopt = Option(Element) (* ****** ****** *) // fun document_getById_exn (id: string): Element = "mac#%" fun document_getById_opt (id: string): Elemopt = "mac#%" // fun theDocument_getById_exn (_: theDocument, id: string): Element = "mac#%" fun theDocument_getById_opt (_: theDocument, id: string): Elemopt = "mac#%" // overload .getById with theDocument_getById_exn overload .getById_opt with theDocument_getById_opt // (* ****** ****** *) // fun document_createElement (tag: string): Element = "mac#%" fun theDocument_createElement (_: theDocument, tag: string): Element = "mac#%" // overload .createElement with theDocument_createElement // (* ****** ****** *) // fun Element_get_innerHTML (Element): string = "mac#%" fun Element_set_innerHTML (Element, text: string): void = "mac#%" // overload .innerHTML with Element_get_innerHTML overload .innerHTML with Element_set_innerHTML // (* ****** ****** *) // fun Element_get_childNodes (Element): JSarray(Element) = "mac#%" fun Element_set_childNodes (Element, nodes: JSarray(Element)): void = "mac#%" // overload .childNodes with Element_get_childNodes overload .childNodes with Element_set_childNodes // fun Element_get_childNode_at (Element, index: int): Element = "mac#%" fun Element_set_childNode_at (Element, index: int, node: Element): void = "mac#%" // overload .childNode_at with Element_get_childNode_at overload .childNode_at with Element_set_childNode_at // (* ****** ****** *) (* end of [document.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/mylibies.hats0000644000175000017500000000365713431250607023236 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09-09 // (* ****** ****** *) // #staload "./basics_js.sats" #staload _ = "./DATS/basics.dats" // (* ****** ****** *) // #staload "./SATS/integer.sats" // (* ****** ****** *) // #staload "./SATS/bool.sats" #staload "./SATS/char.sats" #staload "./SATS/float.sats" #staload "./SATS/string.sats" // #staload "./SATS/gvalue.sats" // (* ****** ****** *) // #staload "./SATS/gprint.sats" #staload _ = "./DATS/gprint.dats" // (* ****** ****** *) // #staload "./SATS/list.sats" #staload "./SATS/list_vt.sats" // #staload _(*anon*) = "./DATS/list.dats" #staload _(*anon*) = "./DATS/list_vt.dats" // (* ****** ****** *) // #staload "./SATS/option.sats" #staload _ = "./DATS/option.dats" // (* ****** ****** *) // #staload "./SATS/stream.sats" #staload "./SATS/stream_vt.sats" // #staload _(*anon*) = "./DATS/stream.dats" #staload _(*anon*) = "./DATS/stream_vt.dats" // (* ****** ****** *) // #staload "./SATS/JSarray.sats" // (* ****** ****** *) // #staload "./SATS/intrange.sats" #staload "./SATS/arrayref.sats" #staload "./SATS/matrixref.sats" #staload "./SATS/reference.sats" // (* ****** ****** *) // // HX-2017-11-26 // #staload // for xmldocs "./SATS/xmldoc.sats" // used by Ajax // (* ****** ****** *) // #staload "./SATS/JSLIBC/JSmisc.sats" // JS library // #staload "./SATS/JSLIBC/JSmath.sats" // JS library #staload _(*anon*) = "./DATS/JSLIBC/JSmath.dats" // JS library // #staload "./SATS/JSLIBC/JSdate.sats" // JS library // (* ****** ****** *) // #staload "./SATS/slistref.sats" // list-based stack #staload "./SATS/qlistref.sats" // list-based queue // (* ****** ****** *) // #staload "./SATS/ML/list0.sats" // un-indexed list #staload _(*anon*) = "./DATS/ML/list0.dats" // un-indexed list // #staload "./SATS/ML/array0.sats" // un-indexed array #staload _(*anon*) = "./DATS/ML/array0.dats" // un-indexed array // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/0000755000175000017500000000000013431250607021674 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/0000755000175000017500000000000013431250607023234 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/0000755000175000017500000000000013431250607023767 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/.keeper0000644000175000017500000000000013431250607025231 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/BUCS320/0000755000175000017500000000000013431250607024750 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/BUCS320/parcomb/0000755000175000017500000000000013431250607026373 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/BUCS320/parcomb/.keeper0000644000175000017500000000000013431250607027635 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/BUCS320/.keeper0000644000175000017500000000000013431250607026212 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/Bacon.js/0000755000175000017500000000000013431250607025424 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/Bacon.js/.keeper0000644000175000017500000000000013431250607026666 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/ML/0000755000175000017500000000000013431250607024277 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/DATS/ML/.keeper0000644000175000017500000000000013431250607025541 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/output/.keeper0000644000175000017500000000000013431250607024476 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/basics_js.sats0000644000175000017500000000670213431250607024535 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_PACKNAME "ATSCC2JS.basics" #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/basics.sats" // (* ****** ****** *) (* typedef char = int *) (* ****** ****** *) // (* abstype JSnumber abstype JSboolean abstype JSstring *) // abstype JSobj // generic // abstype JSdate // new Date() // abstype JSfilr // nominal! // abstype JSregexp // new RegExp() // (* ****** ****** *) // abstype JSarray(a:vt@ype) // [...] abstype JSobjmap(a:vt@ype) // {...} // (* ****** ****** *) // fun alert(msg: string): void = "mac#%" // (* ****** ****** *) // fun confirm(msg: string): bool = "mac#%" // (* ****** ****** *) // fun prompt_none ( prompt: string ) : string = "mac#%" fun prompt_some ( prompt: string, default: string ) : string = "mac#%" // symintr prompt overload prompt with prompt_none overload prompt with prompt_some // (* ****** ****** *) fun typeof{a:t@ype}(a): string = "mac#%" (* ****** ****** *) // // HX-2014-09: // it returns obj.toString() // fun toString{a:t@ype}(obj: a): string = "mac#%" // (* ****** ****** *) fun console_log{a:t@ype}(obj: a): void = "mac#%" (* ****** ****** *) // fun lazy2cloref {a:t@ype} (lazy(a)): ((*void*)) - (a) = "mac#%" // (* ****** ****** *) // fun assert_errmsg_bool0 (claim: bool, msg: string): void = "mac#%" fun assert_errmsg_bool1 {b:bool} (claim: bool(b), msg: string): [b] void = "mac#%" // overload assert_errmsg with assert_errmsg_bool0 of 100 overload assert_errmsg with assert_errmsg_bool1 of 110 // macdef assertloc(claim) = assert_errmsg(,(claim), $mylocation) // (* ****** ****** *) // fun{a:t0p} logats_tmp (x0: INV(a)): void // (* ****** ****** *) // fun{} logats0(): void fun{a1:t0p} logats1(INV(a1)): void fun{a1,a2:t0p} logats2(INV(a1), INV(a2)): void fun{a1,a2,a3:t0p} logats3(INV(a1), INV(a2), INV(a3)): void fun{a1,a2,a3,a4:t0p} logats4(INV(a1), INV(a2), INV(a3), INV(a4)): void fun{a1,a2,a3,a4,a5:t0p} logats5(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5)): void fun{a1,a2,a3,a4,a5,a6:t0p} logats6(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6)): void fun{a1,a2,a3,a4,a5,a6,a7:t0p} logats7(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6), INV(a7)): void fun{a1,a2,a3,a4,a5,a6,a7,a8:t0p} logats8(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6), INV(a7), INV(a8)): void fun{a1,a2,a3,a4,a5,a6,a7,a8,a9:t0p} logats9(INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6), INV(a7), INV(a8), INV(a9)): void // (* ****** ****** *) // symintr logats // overload logats with logats0 overload logats with logats1 overload logats with logats2 overload logats with logats3 overload logats with logats4 overload logats with logats5 overload logats with logats6 overload logats with logats7 overload logats with logats8 overload logats with logats9 // (* ****** ****** *) // (* typedef strchr = string(1) *) // (* ****** ****** *) // fun fun2cloref0 {res:t@ype} (fopr: () -> res): cfun(res) = "mac#%" fun fun2cloref1 {a:t@ype}{res:t@ype} (fopr: (a) -> res): cfun(a, res) = "mac#%" fun fun2cloref2 {a1,a2:t@ype}{res:t@ype} (fopr: (a1, a2) -> res): cfun(a1, a2, res) = "mac#%" fun fun2cloref3 {a1,a2,a3:t@ype}{res:t@ype} (fopr: (a1, a2, a3) -> res): cfun(a1, a2, a3, res) = "mac#%" // (* ****** ****** *) (* end of [basics_js.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/0000755000175000017500000000000013431250607022427 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/qlistref.dats0000644000175000017500000000120013431250607025126 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: list-based queue // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_qlistref_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #include "{$LIBATSCC}/DATS/qlistref.dats" // (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/gvalue.dats0000644000175000017500000000121413431250607024565 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2015-12 // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_gvalue_" // (* ****** ****** *) // #staload "./../SATS/gvalue.sats" // (* ****** ****** *) implement gvalue_nil() = GVnil() (* ****** ****** *) implement gvalue_int(x) = GVint(x) (* ****** ****** *) implement gvalue_bool(x) = GVbool(x) (* ****** ****** *) implement gvalue_float(x) = GVfloat(x) implement gvalue_string(x) = GVstring(x) (* ****** ****** *) (* end of [gvalue.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/matrixref.dats0000644000175000017500000000570713431250607025316 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_matrixref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/matrixref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/matrixref.dats" // (* ****** ****** *) // (* assume matrixref_vt0ype_type(a, m, n) = JSarray(a) *) // (* ****** ****** *) %{^ // function ats2jspre_matrixref_make_elt (m, n, x) { var A, i, j; A = new Array(m*n); for (i = 0; i < m; i += 1) { for (j = 0; j < n; j += 1) A[i*n+j] = x; } ; return A; // initialized } // function ats2jspre_matrixref_uninitized (nrow, ncol) { var A = new Array(nrow*ncol); return A; } // %} // end of [%{^] (* ****** ****** *) %{^ // function ats2jspre_matrixref_tabulate_cloref (m, n, fopr) { var A, i, j; A = new Array(m*n); for (i = 0; i < m; i += 1) { for (j = 0; j < n; j += 1) { A[i*n+j] = ats2jspre_cloref2_app(fopr, i, j); } } return A; } // %} // end of [%{^] (* ****** ****** *) implement matrixref_get_at {a}(A, i, n, j) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_get_at(A, i*n+j) end // end of [matrixref_get_at] (* ****** ****** *) implement matrixref_set_at {a}(A, i, n, j, x) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_set_at(A, i*n+j, x) end // end of [matrixref_set_at] (* ****** ****** *) %{^ // function ats2jspre_mtrxszref_get_nrow (MSZ) { return (MSZ.nrow); } function ats2jspre_mtrxszref_get_ncol (MSZ) { return (MSZ.ncol); } // function ats2jspre_mtrxszref_get_matrixref (MSZ) { return (MSZ.matrix); } // function ats2jspre_mtrxszref_make_matrixref (M, m, n) { return { matrix: M, nrow: m, ncol: n }; } // function ats2jspre_mtrxszref_get_at (MSZ, i, j) { var nrow = MSZ.nrow; var ncol = MSZ.ncol; if (i < 0) throw new RangeError("mtrxszref_get_at"); if (j < 0) throw new RangeError("mtrxszref_get_at"); if (i >= nrow) throw new RangeError("mtrxszref_get_at"); if (j >= ncol) throw new RangeError("mtrxszref_get_at"); return MSZ.matrix[i*ncol+j]; } // function ats2jspre_mtrxszref_set_at (MSZ, i, j, x0) { var nrow = MSZ.nrow; var ncol = MSZ.ncol; if (i < 0) throw new RangeError("mtrxszref_set_at"); if (j < 0) throw new RangeError("mtrxszref_set_at"); if (i >= nrow) throw new RangeError("mtrxszref_set_at"); if (j >= ncol) throw new RangeError("mtrxszref_set_at"); return (MSZ.matrix[i*ncol+j] = x0); } // %} // end of [%{^] (* ****** ****** *) (* end of [matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/JSLIBC/0000755000175000017500000000000013431250607023375 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/JSLIBC/JSmath.dats0000644000175000017500000000145613431250607025446 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_JSmath_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" #staload "./../../SATS/float.sats" #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/JSLIBC/JSmath.sats" // (* ****** ****** *) implement {}(*tmp*) JSmath_randint {n}(n) = let // val r = double2int(n*JSmath_random()) // val r = $UN.cast{intGte(0)}(r) // in if r < n then r else JSmath_randint(n) end // end of [JSmath_randint] (* ****** ****** *) (* end of [JSmath.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/arrayref.dats0000644000175000017500000000466013431250607025125 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_arrayref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/arrayref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/arrayref.dats" // (* ****** ****** *) // (* assume arrayref_vt0ype_type(a, n) = JSarray(a) *) // (* ****** ****** *) %{^ // function ats2jspre_arrayref_make_elt (n, x) { var A, i; A = new Array(n); for (i = 0; i < n; i += 1) A[i] = x; return A; } // function ats2jspre_arrayref_uninitized ( asz ) { var A = new Array(asz); return A; } // %} // end of [%{^] (* ****** ****** *) %{^ // function ats2jspre_arrayref_tabulate_cloref (n, fopr) { var A, i; A = new Array(n); for (i = 0; i < n; i += 1) { A[i] = ats2jspre_cloref1_app(fopr, i); } return A; } // %} // end of [%{^] (* ****** ****** *) implement arrayref_get_at {a}(A, i) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_get_at(A, i) end // end of [arrayref_get_at] (* ****** ****** *) implement arrayref_set_at {a}(A, i, x) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_set_at(A, i, x) end // end of [arrayref_set_at] (* ****** ****** *) // // Array-with-size // (* ****** ****** *) // typedef arrayref (a:vt0p) = [n:nat] arrayref(a, n) // implement arrszref_get_arrayref {a}(A) = $UN.cast{arrayref(a)}(A) // (* ****** ****** *) // implement arrszref_make_arrayref {a}(A, asz) = $UN.cast{arrszref(a)}(A) // (* ****** ****** *) // implement arrszref_size{a}(A) = let val A = $UN.cast{JSarray(a)}(A) in $UN.cast{intGte(0)}(JSarray_length(A)) end // end of [arrszref_size] // (* ****** ****** *) // implement arrszref_get_at{a}(A, i) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_get_at(A, i) end // end of [arrszref_get_at] // implement arrszref_set_at{a}(A, i, x) = let val A = $UN.cast{JSarray(a)}(A) in JSarray_set_at(A, i, x) end // end of [arrszref_set_at] // (* ****** ****** *) (* end of [arrayref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/intrange.dats0000644000175000017500000000136413431250607025117 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_intrange_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/list.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/intrange.dats" // (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/list.dats0000644000175000017500000000414413431250607024262 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" // (* ****** ****** *) // #staload "./../SATS/stream.sats" #staload _ = "./../DATS/stream.dats" // #staload "./../SATS/stream_vt.sats" #staload _ = "./../DATS/stream_vt.dats" // (* ****** ****** *) // #staload "./../SATS/JSarray.sats" // (* ****** ****** *) #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list.dats" // (* ****** ****** *) // extern fun{} print_list$sep (): void // implement {}(*tmp*) print_list$sep ((*void*)) = print_string (", ") // implement {a}(*tmp*) print_list (xs) = let // implement fprint_val (out, x) = print_val (x) implement fprint_list$sep<> (out) = print_list$sep<> () // in fprint_list (STDOUT, xs) end // end of [print_list] // (* ****** ****** *) // implement {a}(*tmp*) print_list_sep (xs, sep) = let // implement fprint_val (out, x) = print_val (x) implement fprint_list$sep<> (out) = print_string (sep) // in fprint_list (STDOUT, xs) end // end of [print_list_sep] // (* ****** ****** *) implement list_sort_2 {a}{n}(xs, cmp) = let // val A = JSarray_make_list(xs) val () = JSarray_sort_2(A, cmp) // val asz = JSarray_length(A) // fun loop ( i0: int, res: List0(a) ) : List0(a) = ( // if (i0 < asz) then ( loop(i0+1, list_cons(A.pop(), res)) ) else res // end of [if] // ) (* end of [loop] *) // in $UN.cast{list(a,n)}(loop(0, list_nil(*void*))) end // end of [list_sort_2] (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/basics.dats0000644000175000017500000000537413431250607024561 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_basics_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // #staload "./../SATS/bool.sats" #staload "./../SATS/float.sats" #staload "./../SATS/string.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/basics.dats" // (* ****** ****** *) // implement gcompare_val_val (x, y) = $effmask_all(compare_int0_int0(x, y)) // (* ****** ****** *) // implement gcompare_val_val (x, y) = ( // if (x) then (if y then 0(*t/t*) else 1(*t/f*)) else (if y then ~1(*f/t*) else 0(*f/f*)) // ) (* gcompare_val_val *) // (* ****** ****** *) // implement gcompare_val_val (x, y) = $effmask_all(compare_double_double(x, y)) // implement gcompare_val_val (x, y) = $effmask_all(compare_string_string(x, y)) // (* ****** ****** *) // implement {}(*tmp*) logats0() = () implement {a1}(*tmp*) logats1(x1) = logats_tmp(x1) implement {a1,a2} logats2(x1, x2) = (logats_tmp(x1); logats_tmp(x2)) implement {a1,a2,a3} logats3(x1, x2, x3) = (logats_tmp(x1); logats_tmp(x2); logats_tmp(x3)) // implement {a1,a2,a3,a4} logats4(x1, x2, x3, x4) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4) ) implement {a1,a2,a3,a4,a5} logats5(x1, x2, x3, x4, x5) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5) ) implement {a1,a2,a3,a4,a5,a6} logats6(x1, x2, x3, x4, x5, x6) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5); logats_tmp(x6); ) implement {a1,a2,a3,a4,a5,a6,a7} logats7(x1, x2, x3, x4, x5, x6, x7) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5); logats_tmp(x6); logats_tmp(x7) ) implement {a1,a2,a3,a4,a5,a6,a7,a8} logats8(x1, x2, x3, x4, x5, x6, x7, x8) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5); logats_tmp(x6); logats_tmp(x7); logats_tmp(x8); ) implement {a1,a2,a3,a4,a5,a6,a7,a8,a9} logats9(x1, x2, x3, x4, x5, x6, x7, x8, x9) = ( logats_tmp(x1); logats_tmp(x2); logats_tmp(x3); logats_tmp(x4); logats_tmp(x5); logats_tmp(x6); logats_tmp(x7); logats_tmp(x8); logats_tmp(x9) ) // (* ****** ****** *) // implement fun2cloref0(fopr) = lam() => fopr() implement fun2cloref1(fopr) = lam(x) => fopr(x) implement fun2cloref2(fopr) = lam(x1, x2) => fopr(x1, x2) implement fun2cloref3(fopr) = lam(x1, x2, x3) => fopr(x1, x2, x3) // (* ****** ****** *) (* end of [basics.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/option.dats0000644000175000017500000000123413431250607024614 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_option_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/option.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/option.dats" // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/stream.dats0000644000175000017500000000224113431250607024576 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_stream_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/reference.sats" // (* ****** ****** *) #staload "./../SATS/stream.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream.dats" // (* ****** ****** *) // extern fun StreamSubscriptExn_throw{a:vt0p}(): (a) = "mac#%" // (* ****** ****** *) implement stream_nth_exn (xs, n) = let // val opt = stream_nth_opt(xs, n) // in // case+ opt of | ~Some_vt(x) => x | ~None_vt((*void*)) => StreamSubscriptExn_throw() // end // end of [stream_nth_exn] (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Number/0000755000175000017500000000000013431250607023657 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Number/real_double.dats0000644000175000017500000000756113431250607027022 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // HX-2016-05: // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../../SATS/float.sats" // staload "libats/SATS/Number/real.sats" // (* ****** ****** *) // abst@ype real_real_t0ype(real) = double // typedef real(r:real) = real_real_t0ype(r) // (* ****** ****** *) typedef real0 = [r:real] real_real_t0ype(r) (* ****** ****** *) // staload "./../../SATS/JSmath.sats" // #include "libats/DATS/Number/SHARE/real.dats" // (* ****** ****** *) // assume real_real_t0ype(r:real) = double // (* ****** ****** *) implement {}(*tmp*) neg_real(x) = neg_double(x) (* ****** ****** *) // implement {}(*tmp*) add_real_real(x, y) = add_double_double(x, y) implement {}(*tmp*) sub_real_real(x, y) = sub_double_double(x, y) implement {}(*tmp*) mul_real_real(x, y) = mul_double_double(x, y) implement {}(*tmp*) div_real_real(x, y) = div_double_double(x, y) // (* ****** ****** *) // implement {}(*tmp*) add_int_real(i, x) = add_real_real(int2real(i), x) implement {}(*tmp*) add_real_int(x, i) = add_real_real(x, int2real(i)) // implement {}(*tmp*) mul_int_real(i, x) = mul_real_real(int2real(i), x) implement {}(*tmp*) div_real_int(x, i) = div_real_real(x, int2real(i)) // (* ****** ****** *) // implement {}(*tmp*) lt_real_real(x, y) = $UN.cast(lt_double_double(x, y)) implement {}(*tmp*) lte_real_real(x, y) = $UN.cast(lte_double_double(x, y)) // (* ****** ****** *) // implement {}(*tmp*) gt_real_real(x, y) = $UN.cast(gt_double_double(x, y)) implement {}(*tmp*) gte_real_real(x, y) = $UN.cast(gte_double_double(x, y)) // (* ****** ****** *) // implement {}(*tmp*) eq_real_real(x, y) = $UN.cast(eq_double_double(x, y)) implement {}(*tmp*) neq_real_real(x, y) = $UN.cast(neq_double_double(x, y)) // (* ****** ****** *) // implement {}(*tmp*) lt_real_int(x, i) = $UN.cast(lt_real_real(x, int2real(i))) implement {}(*tmp*) lte_real_int(x, i) = $UN.cast(lte_real_real(x, int2real(i))) // (* ****** ****** *) // implement {}(*tmp*) gt_real_int(x, i) = $UN.cast(gt_real_real(x, int2real(i))) implement {}(*tmp*) gte_real_int(x, i) = $UN.cast(gte_real_real(x, int2real(i))) // (* ****** ****** *) // implement {}(*tmp*) eq_real_int(x, i) = $UN.cast(eq_real_real(x, int2real(i))) implement {}(*tmp*) neq_real_int(x, i) = $UN.cast(neq_real_real(x, int2real(i))) // (* ****** ****** *) // implement {}(*tmp*) int2real(i) = int2double(i) // (* ****** ****** *) implement {}(*tmp*) abs_real(r) = abs_double(r) (* ****** ****** *) implement {}(*tmp*) sin_real(r) = JSmath_sin(r) implement {}(*tmp*) cos_real(r) = JSmath_cos(r) implement {}(*tmp*) tan_real(r) = JSmath_tan(r) (* ****** ****** *) (* end of [real_double.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/JSarray.dats0000644000175000017500000000350513431250607024662 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_JSarray_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) #staload "./../SATS/integer.sats" (* ****** ****** *) #staload "./../SATS/JSarray.sats" (* ****** ****** *) implement JSarray_make_list {a}(xs) = let // fun loop ( A: JSarray(a), xs: List(a) ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => let val _ = A.push(x) in loop(A, xs) end ) // val A = JSarray_nil{a}() // in let val () = loop(A, xs) in A end end // end of [JSarray_make_list] (* ****** ****** *) implement JSarray_make_list_vt {a}(xs) = let // fun loop ( A: JSarray(a), xs: List_vt(a) ) : void = ( case+ xs of | ~list_vt_nil() => () | ~list_vt_cons(x, xs) => let val _ = A.push(x) in loop(A, xs) end ) // val A = JSarray_nil{a}() // in let val () = loop(A, xs) in A end end // end of [JSarray_make_list_vt] (* ****** ****** *) implement JSarray_tabulate_cloref {a}{n} ( asz, fopr ) = let // val A = JSarray_nil{a}() // fun loop {i:nat | i <= n}(i: int(i)): void = ( if i < asz then let val _ = JSarray_push(A, fopr(i)) in loop(i+1) end // end of [then] else () // end of [else] // end of [if] ) (* end of [loop] *) // in let val () = loop(0) in A end end (* end of [JSarray_tabulate_cloref] *) (* ****** ****** *) // implement {a}(*tmp*) JSarray_sort_1(A) = JSarray_sort_2 (A, lam(x1, x2) => gcompare_val_val(x1, x2)) // (* ****** ****** *) (* end of [JSarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/string.dats0000644000175000017500000000751113431250607024616 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_string_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/string.sats" #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/stream.sats" #staload "./../SATS/stream_vt.sats" // #staload _(*STREAM*) = "./stream.dats" #staload _(*STREAM_VT*) = "./stream_vt.dats" // (* ****** ****** *) implement strchr_code(c) = string_charCodeAt(c, 0) (* ****** ****** *) implement string_fset_at {n}{i} ( str0, i0, c0 ) = let // val n0 = string_length(str0) val f0 = string_substring_beg_end(str0, 0, i0) val r0 = string_substring_beg_end(str0, i0+1, n0) // in $UN.cast{string(n)}(string_concat_3(f0, c0, r0)) end // end of [string_fset_at] (* ****** ****** *) // implement string_exists_cloref (str0, pred) = loop(0) where { // val [n:int] str = g1ofg0(str0) val len = string_length(str) // fun loop {i:nat|i <= n}(i: int(i)): bool = ( if i < len then (if pred(str[i]) then true else loop(i+1)) else false ) // } (* end of [string_exists_cloref] *) // implement string_exists_method (str0) = ( lam(pred) => string_exists_cloref(str0, pred) ) (* end of [string_exists_method] *) // (* ****** ****** *) // implement string_forall_cloref (str0, pred) = loop(0) where { // val [n:int] str = g1ofg0(str0) val len = string_length(str) // fun loop {i:nat|i <= n}(i: int(i)): bool = ( if i < len then (if pred(str[i]) then loop(i+1) else false) else true ) // } (* end of [string_forall_cloref] *) // implement string_forall_method (str0) = ( lam(pred) => string_forall_cloref(str0, pred) ) (* end of [string_forall_method] *) // (* ****** ****** *) // implement string_foreach_cloref (str0, fwork) = loop(0) where { // val [n:int] str = g1ofg0(str0) val len = string_length(str) // fun loop {i:nat|i <= n}(i: int(i)): void = ( if i < len then (fwork(str[i]); loop(i+1)) else () ) // } (* end of [string_foreach_cloref] *) // implement string_foreach_method (str0) = ( lam(fwork) => string_foreach_cloref(str0, fwork) ) (* end of [string_foreach_method] *) // (* ****** ****** *) // implement string_tabulate_cloref {n} ( len, fopr ) = // string_tabulate_cloref $UN.cast{string(n)} ( JSarray_join_sep(JSarray_tabulate_cloref(len, fopr), "") ) (* end of [string_tabulate_cloref] *) // (* ****** ****** *) implement streamize_string_code (str0) = auxmain(0) where { // val [n:int] str0 = g1ofg0(str0) // val len = string_length(str0) // fun auxmain {i:nat | i <= n} ( i: int(i) ) : stream_vt(int) = $ldelay ( // if i < len then stream_vt_cons (str0.charCodeAt(i), auxmain(i+1)) // stream_vt_cons else stream_vt_nil((*void*)) // ) (* end of [auxmain] *) // } (* end of [streamize_string_code] *) (* ****** ****** *) implement streamize_string_line (inp) = let // #define ENDL 10 // val [n:int] inp = g1ofg0(inp) // val n = length(inp) // fun auxmain {i,j:nat |i <= j; j <= n} ( i: int(i), j: int(j) ) : stream_vt(string) = $ldelay ( if (j < n) then let val c0 = inp.charCodeAt(j) in if (c0 != ENDL) then !(auxmain(i, j+1)) else let val j1 = j + 1 val line = string_substring_beg_end(inp, i, j) in stream_vt_cons(line, auxmain(j1, j1)) end end // end of [then] else ( // if (i = j) then stream_vt_nil((*void*)) else stream_vt_sing(string_substring_beg_end(inp, i, j)) // ) (* end of [else] *) ) (* end of [auxmain] *) // in auxmain(0(*i*), 0(*j*)) end // end of [streamize_string_line] (* ****** ****** *) (* end of [string.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/reference.dats0000644000175000017500000000242313431250607025243 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_reference_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/reference.sats" // (* ****** ****** *) // (* assume ref_vt0ype_type(a:t@ype) = JSarray(a) *) // (* ****** ****** *) // implement ref (x) = ref_make_elt (x) // implement ref_make_elt{a}(x) = $UN.cast{ref(a)}(JSarray_sing(x)) // (* ****** ****** *) implement ref_get_elt{a}(r) = let val r = $UN.cast{JSarray(a)}(r) in JSarray_get_at(r, 0) end // end of [ref_get_elt] (* ****** ****** *) implement ref_set_elt{a}(r, x0) = let val r = $UN.cast{JSarray(a)}(r) in JSarray_set_at(r, 0, x0) end // end of [ref_set_elt] (* ****** ****** *) implement ref_exch_elt{a}(r, x0) = let val r = $UN.cast{JSarray(a?)}(r) // end of [val] val x1 = JSarray_get_at(r, 0) in JSarray_set_at(r, 0, $UN.castvwtp0{a?}(x0)); $UN.castvwtp0{a}(x1) end // end of [ref_exch_elt] (* ****** ****** *) (* end of [reference.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/gmatrixref.dats0000644000175000017500000000152313431250607025455 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_matrixref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/JSarray.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/matrixref.sats" #staload "./../SATS/gmatrixref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/gmatrixref.dats" // (* ****** ****** *) (* end of [gmatrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Worker/0000755000175000017500000000000013431250607023700 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Worker/channeg_session.dats0000644000175000017500000001125113431250607027723 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: December, 2015 *) (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../../SATS/Worker/channel.sats" staload "./../../SATS/Worker/channel_session.sats" (* ****** ****** *) // extern castfn channeg1_session_encode{ss:type} : channeg_nullify(ss) - channeg_session(ss) extern castfn channeg1_session_decode{ss:type} : channeg_session(ss) - channeg_nullify(ss) // (* ****** ****** *) implement {a}(*tmp*) channeg1_session_recv (fwork) = let (* // val () = println! ("channeg1_session_recv") // *) in // channeg1_session_encode( // lam(chn, k0) => channeg1_recv(chn, fwork((*void*)), k0) // ) (* channeg1_session_encode *) // end // end of [channeg1_session_recv] (* ****** ****** *) implement {a}(*tmp*) channeg1_session_send (fwork) = let (* // val () = println! ("channeg1_session_send") // *) in // channeg1_session_encode( // lam(chn, k0) => channeg1_send ( chn , lam(chn, msg) => let val () = fwork(chmsg_parse(msg)) in k0(chn) end ) (* channeg1_send *) // ) (* channeg1_session_encode *) // end // end of [channeg1_session_send] (* ****** ****** *) implement {}(*tmp*) channeg1_session_initize (fwork, ssn) = let // val fnullify = channeg1_session_decode(ssn) // in // channeg1_session_encode ( // lam(chn, k0) => let val () = fwork((*bef*)) in fnullify(chn, k0) end // end of [let] // ) (* channeg1_session_encode *) // end // end of [channneg1_session_initize] (* ****** ****** *) implement {}(*tmp*) channeg1_session_finalize (ssn, fwork) = let // val fnullify = channeg1_session_decode(ssn) // in // channeg1_session_encode ( // lam(chn, k0) => fnullify(chn, lam(chn) => let val () = fwork() in k0(chn) end) // ) (* channeg1_session_encode *) // end // end of [channneg1_session_finalize] (* ****** ****** *) // implement channeg1_session_nil() = channeg1_session_encode(lam(chn, k0) => k0(chn)) // (* ****** ****** *) // implement {}(*tmp*) channeg1_session_cons (x, xs) = $UN.cast(channeg1_session_append(x, xs)) // (* ****** ****** *) implement {}(*tmp*) channeg1_session_append (ss1, ss2) = let // val ss1 = channeg1_session_decode(ss1) val ss2 = channeg1_session_decode(ss2) // in channeg1_session_encode(lam(chn, k0) => channeg1_append(chn, k0, ss1, ss2)) end // end of [channel1_session_append] (* ****** ****** *) implement {}(*tmp*) channeg1_session_option_conj (ss0) = let // val ss0 = channeg1_session_decode(ss0) // in channeg1_session_encode(lam(chn, k0) => channeg1_option_conj(chn, k0, ss0)) end // end of [channeg1_session_option_conj] (* ****** ****** *) implement {}(*tmp*) channeg1_session_option_disj (ss0) = let // val ss0 = channeg1_session_decode(ss0) // in channeg1_session_encode(lam(chn, k0) => channeg1_option_disj(chn, k0, ss0)) end // end of [channeg1_session_option_disj] (* ****** ****** *) implement {}(*tmp*) channeg1_session_repeat_conj (ss0) = let // val ss0 = channeg1_session_decode(ss0) // in channeg1_session_encode(lam(chn, k0) => channeg1_repeat_conj(chn, k0, ss0)) end // end of [channeg1_session_repeat_conj] (* ****** ****** *) implement {}(*tmp*) channeg1_session_repeat_disj (ss0) = let // val ss0 = channeg1_session_decode(ss0) // in channeg1_session_encode(lam(chn, k0) => channeg1_repeat_disj(chn, k0, ss0)) end // end of [channeg1_session_repeat_disj] (* ****** ****** *) implement {}(*tmp*) channeg1_session_run (ss0, chn, kx0) = let // val fnullify = channeg1_session_decode(ss0) in fnullify(chn, kx0) // end // end of [channeg1_session_run] (* ****** ****** *) implement {}(*tmp*) channeg1_session_run_close (ss0, chn) = ( // channeg1_session_run(ss0, chn, lam(chn) => channeg1_close(chn)) // ) // end of [channeg1_session_run_close] (* ****** ****** *) (* end of [channeg_session.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Worker/chanpos.dats0000644000175000017500000001757113431250607026223 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../../SATS/Worker/channel.sats" (* ****** ****** *) %{^ // var theWorker_cont; // self.onmessage = function(event) { var k0 = theWorker_cont; return ats2jspre_cloref2_app(k0, 0, event.data); } // function ats2js_worker_chanpos0_recv (chp, k0) { theWorker_cont = k0; return; } function ats2js_worker_chanpos0_send (chp, x0, k0) { postMessage(x0); return ats2jspre_cloref1_app(k0, 0); } // function ats2js_worker_chanpos1_recv (chp, k0) { return ats2js_worker_chanpos0_recv(chp, k0); } function ats2js_worker_chanpos1_send (chp, x0, k0) { return ats2js_worker_chanpos0_send(chp, x0, k0); } // %} // end of [%{^] (* ****** ****** *) // %{^ // function ats2js_worker_chanpos0_close(chp) { return self.close(); } function ats2js_worker_chanpos1_close(chp) { return self.close(); } // %} // end of [%{^] // (* ****** ****** *) // implement {a}{b} rpc_server (chp, fopr) = let // (* val () = println! ("rpc_server") *) // in // chanpos0_recv{a} ( chp , lam(chp, e) => chanpos0_send{b} ( chp , fopr(chmsg_parse(e)) , lam(chp) => rpc_server_cont(chp, fopr) ) ) // end (* end of [rpc_server] *) (* ****** ****** *) // // HX: looping // implement {a}{b} rpc_server_cont = rpc_server // (* // // HX: one-time service // implement {a}{b} rpc_server_cont(chp, fopr) = chanpos0_close(chp) *) // (* ****** ****** *) // (* fun{} chanpos1_append {ss1,ss2:type} ( chanpos(ssappend(ss1,ss2)), k0: chpcont0_nil , fserv1: chanpos_nullify(ss1), fserv2: chanpos_nullify(ss2) ) : void // end of [chanpos1_append] *) // implement {}(*tmp*) chanpos1_append {ss1,ss2} ( chp, k0, fserv1, fserv2 ) = ( // fserv1 ( $UN.castvwtp0{chanpos(ss1)}(chp) , $UN.castvwtp0{chpcont0_nil}(lam(chp:chanpos(ss2)) = fserv2(chp, k0)) ) (* end of [fserv1] *) // ) (* end of [chanpos1_append] *) // (* ****** ****** *) // implement {}(*tmp*) chanpos1_choose_conj {ss0,ss1} (chp, k0, fserv0, fserv1) = let // val chp0 = $UN.castvwtp0{chanpos()}(chp) // in // chanpos0_recv {int} ( chp0 , lam(chp0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = chanpos1_choose_conj$fwork_tag(tag0) // end of [val] in case+ tag0 of | 0 => fserv0($UN.castvwtp0(chp0), k0) | _ => fserv1($UN.castvwtp0(chp0), k0) end // end of [lam] ) (* end of [chanpos0_recv] *) // end // end of [chanpos1_choose_conj] // (* ****** ****** *) // implement {}(*tmp*) chanpos1_choose_disj {ss0,ss1} (chp, k0, fserv0, fserv1) = let // val chp0 = $UN.castvwtp0{chanpos()}(chp) val tag0 = chanpos1_choose_disj$choose() val ((*void*)) = chanpos1_choose_disj$fwork_tag(tag0) // in // case+ tag0 of | 0 => chanpos0_send{int} ( chp0, tag0, lam(chp0) => fserv0($UN.castvwtp0(chp0), k0) ) (* end of [0] *) | _ => chanpos0_send{int} ( chp0, tag0, lam(chp0) => fserv1($UN.castvwtp0(chp0), k0) ) (* end of [1] *) // end // end of [chanpos1_choose_disj]] // (* ****** ****** *) (* fun{} chanpos1_option_conj {ss:type} ( chanpos(ssconj(ssoption(ss))) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_option_conj] *) // implement {}(*tmp*) chanpos1_option_conj {ss}(chp, k0, fserv) = let // val chp0 = $UN.castvwtp0{chanpos()}(chp) // in // chanpos0_recv {int} ( chp0 , lam(chp0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = chanpos1_option_conj$fwork_tag(tag0) // end of [val] in case+ tag0 of | 0 => k0($UN.castvwtp0(chp0)) | _ => fserv($UN.castvwtp0(chp0), k0) end // end of [lam] ) (* end of [chanpos0_recv] *) // end // end of [chanpos1_option_conj] // (* ****** ****** *) // (* fun{} chanpos1_option_disj {ss:type} ( chanpos(ssdisj(ssoption(ss))) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_option_disj] *) // implement {}(*tmp*) chanpos1_option_disj {ss}(chp, k0, fserv) = let // val chp0 = $UN.castvwtp0{chanpos()}(chp) val tag0 = chanpos1_option_disj$choose() val ((*void*)) = chanpos1_option_disj$fwork_tag(tag0) // in // case+ tag0 of | 0 => chanpos0_send{int}(chp0, tag0, $UN.cast{chpcont0()}(k0)) | _ => chanpos0_send{int} ( chp0, tag0, lam(chp0) => fserv($UN.castvwtp0(chp0), k0) ) (* end of [1] *) // end // end of [chanpos1_option_disj]] // (* ****** ****** *) // implement {}(*tmp*) chanpos1_option_conj$fwork_tag(tag) = () // nothing is done by default // implement {}(*tmp*) chanpos1_option_disj$fwork_tag(tag) = () // nothing is done by default // (* ****** ****** *) (* fun{} chanpos1_repeat_conj {ss:type} ( chanpos(ssconj(ssrepeat(ss))) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_repeat_conj] *) // implement {}(*tmp*) chanpos1_repeat_conj {ss}(chp, k0, fserv) = let // typedef loop = $d2ctype (chanpos1_repeat_conj<>) // fun loop: loop = lam(chp, k0, fserv) => let val chp0 = $UN.castvwtp0{chanpos()}(chp) // end of [val] in // chanpos0_recv {int} ( chp0 , lam(chp0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = chanpos1_repeat_conj$fwork_tag(tag0) // end of [val] in case+ tag0 of | 0 => k0($UN.castvwtp0(chp0)) | _ => fserv($UN.castvwtp0(chp0), lam(chp) => loop($UN.castvwtp0(chp), k0, fserv)) end // end of [lam] ) (* end of [chanpos0_recv] *) // end // end of [loop] // val () = chanpos1_repeat_conj$init<>() // in loop(chp, k0, fserv) end // end of [chanpos1_repeat_conj] // (* ****** ****** *) (* // fun{} chanpos1_repeat_disj {ss:type} ( chanpos(ssrepeat(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_repeat_disj] // *) // implement {}(*tmp*) chanpos1_repeat_disj {ss}(chp, k0, fserv) = let // typedef loop = $d2ctype (chanpos1_repeat_disj<>) // fun loop: loop = lam(chp, k0, fserv) => let val chp0 = $UN.castvwtp0{chanpos()}(chp) val tag0 = chanpos1_repeat_disj$choose() // end of [val] (* val () = console_log ( "chanpos1_repeat_disj: loop: tag0 = " + String(tag0) ) *) val ((*void*)) = chanpos1_repeat_disj$fwork_tag(tag0) // end of [val] in // case+ tag0 of | 0 => chanpos0_send{int}(chp0, tag0, $UN.cast{chpcont0()}(k0)) | _ => chanpos0_send{int} ( chp0, tag0 , lam(chp0) => fserv($UN.castvwtp0(chp0), lam(chp) => loop($UN.castvwtp0(chp), k0, fserv)) // end of [lam] ) (* end of [1] *) // end // end of [loop] // val () = chanpos1_repeat_disj$init<>() // in loop(chp, k0, fserv) end // end of [chanpos1_repeat_disj]] // (* ****** ****** *) // implement {}(*tmp*) chanpos1_repeat_conj$init() = () // nothing is done by default // implement {}(*tmp*) chanpos1_repeat_disj$init() = () // nothing is done by default // implement {}(*tmp*) chanpos1_repeat_conj$fwork_tag(tag) = () // nothing is done by default // implement {}(*tmp*) chanpos1_repeat_disj$fwork_tag(tag) = () // nothing is done by default // (* ****** ****** *) (* end of [chanpos.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Worker/chanpos_session.dats0000644000175000017500000001125313431250607027755 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: December, 2015 *) (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../../SATS/Worker/channel.sats" staload "./../../SATS/Worker/channel_session.sats" (* ****** ****** *) // extern castfn chanpos1_session_encode{ss:type} : chanpos_nullify(ss) - chanpos_session(ss) extern castfn chanpos1_session_decode{ss:type} : chanpos_session(ss) - chanpos_nullify(ss) // (* ****** ****** *) implement {a}(*tmp*) chanpos1_session_send (fwork) = let (* // val () = println! ("chanpos1_session_send") // *) in // chanpos1_session_encode( // lam(chp, k0) => chanpos1_send(chp, fwork((*void*)), k0) // ) (* chanpos1_session_encode *) // end // end of [chanpos1_session_send] (* ****** ****** *) implement {a}(*tmp*) chanpos1_session_recv (fwork) = let (* // val () = println! ("chanpos1_session_recv") // *) in // chanpos1_session_encode( // lam(chp, k0) => chanpos1_recv ( chp , lam(chp, msg) => let val () = fwork(chmsg_parse(msg)) in k0(chp) end ) (* chanpos1_recv *) // ) (* chanpos1_session_encode *) // end // end of [chanpos1_session_recv] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_initize (fwork, ssp) = let // val fnullify = chanpos1_session_decode(ssp) // in // chanpos1_session_encode ( // lam(chp, k0) => let val () = fwork((*bef*)) in fnullify(chp, k0) end // end of [let] // ) (* chanpos1_session_encode *) // end // end of [channpos1_session_initize] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_finalize (ssp, fwork) = let // val fnullify = chanpos1_session_decode(ssp) // in // chanpos1_session_encode ( // lam(chp, k0) => fnullify(chp, lam(chp) => let val () = fwork() in k0(chp) end) // ) (* chanpos1_session_encode *) // end // end of [channpos1_session_finalize] (* ****** ****** *) // implement chanpos1_session_nil() = chanpos1_session_encode(lam(chp, k0) => k0(chp)) // (* ****** ****** *) // implement {}(*tmp*) chanpos1_session_cons (x, xs) = $UN.cast(chanpos1_session_append(x, xs)) // (* ****** ****** *) implement {}(*tmp*) chanpos1_session_append (ss1, ss2) = let // val ss1 = chanpos1_session_decode(ss1) val ss2 = chanpos1_session_decode(ss2) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_append(chp, k0, ss1, ss2)) end // end of [channel1_session_append] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_option_conj (ss0) = let // val ss0 = chanpos1_session_decode(ss0) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_option_conj(chp, k0, ss0)) end // end of [chanpos1_session_option_conj] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_option_disj (ss0) = let // val ss0 = chanpos1_session_decode(ss0) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_option_disj(chp, k0, ss0)) end // end of [chanpos1_session_option_disj] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_repeat_conj (ss0) = let // val ss0 = chanpos1_session_decode(ss0) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_repeat_conj(chp, k0, ss0)) end // end of [chanpos1_session_repeat_conj] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_repeat_disj (ss0) = let // val ss0 = chanpos1_session_decode(ss0) // in chanpos1_session_encode(lam(chp, k0) => chanpos1_repeat_disj(chp, k0, ss0)) end // end of [chanpos1_session_repeat_disj] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_run (ss0, chp, kx0) = let // val fnullify = chanpos1_session_decode(ss0) in fnullify(chp, kx0) // end // end of [chanpos1_session_run] (* ****** ****** *) implement {}(*tmp*) chanpos1_session_run_close (ss0, chp) = ( // chanpos1_session_run(ss0, chp, lam(chp) => chanpos1_close(chp)) // ) // end of [chanpos1_session_run_close] (* ****** ****** *) (* end of [chanpos_session.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Worker/chanpos_session2.dats0000644000175000017500000000310013431250607030027 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: December, 2015 *) (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../../SATS/Worker/channel.sats" staload "./../../SATS/Worker/channel_session.sats" staload "./../../SATS/Worker/channel_session2.sats" (* ****** ****** *) implement {}(*tmp*) chanpos1_session_guardby (ssp1, ssp2) = let // implement chanpos1_option_disj$choose<>() = ( if chanpos1_session_guardby$guard<>() then 1 else 0 ) // in chanpos1_session_append(ssp2, chanpos1_session_option_disj(ssp1)) end // end of [chanpos1_session_guardby] (* ****** ****** *) (* end of [chanpos_session2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Worker/channeg.dats0000644000175000017500000001671413431250607026171 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../../SATS/Worker/channel.sats" (* ****** ****** *) // %{^ // function ats2js_worker_channeg0_new_file (file) { var chn = new Worker(file); return chn; } // %} // end of [%{^] // (* ****** ****** *) // %{^ // function ats2js_worker_channeg0_close(chn) { return chn.terminate(); } function ats2js_worker_channeg1_close(chn) { return chn.terminate(); } // %} // end of [%{^] // (* ****** ****** *) // %{^ // function ats2js_worker_channeg0_send(chn, k0) { chn.onmessage = function(event) { return ats2jspre_cloref2_app(k0, chn, event.data); }; return/*void*/; } function ats2js_worker_channeg0_recv(chn, x0, k0) { chn.postMessage(x0); return ats2jspre_cloref1_app(k0, chn); } // function ats2js_worker_channeg1_send (chn, k0) { return ats2js_worker_channeg0_send(chn, k0); } function ats2js_worker_channeg1_recv (chn, x0, k0) { return ats2js_worker_channeg0_recv(chn, x0, k0); } // %} // end of [%{^] // (* ****** ****** *) implement {a}{b} rpc_client (chn, arg, fopr) = let // (* val () = println! ("rpc_client") *) // in // channeg0_recv{a} ( chn , arg , lam(chn) => channeg0_send{b} ( chn , lam(chn, e) => fopr(chmsg_parse(e)) ) ) // end (* end of [rpc_client] *) (* ****** ****** *) // (* fun{} channeg1_append {ss1,ss2:type} ( channeg(ssappend(ss1,ss2)), k0: chncont0_nil , fserv1: channeg_nullify(ss1), fserv2: channeg_nullify(ss2) ) : void // end of [channeg1_append] *) // implement {}(*tmp*) channeg1_append {ss1,ss2} ( chn, k0, fserv1, fserv2 ) = ( // fserv1 ( $UN.castvwtp0{channeg(ss1)}(chn) , $UN.castvwtp0{chncont0_nil}(lam(chn:channeg(ss2)) = fserv2(chn, k0)) ) (* end of [fserv1] *) // ) (* end of [channeg1_append] *) // (* ****** ****** *) // implement {}(*tmp*) channeg1_choose_conj {ss0,ss1} (chn, k0, fserv0, fserv1) = let // val chn0 = $UN.castvwtp0{channeg()}(chn) val tag0 = channeg1_choose_conj$choose() val ((*void*)) = channeg1_choose_conj$fwork_tag<>(tag0) // in // case+ tag0 of | 0 => channeg0_recv{int} ( chn0, tag0, lam(chn0) => fserv0($UN.castvwtp0(chn0), k0) ) (* end of [0] *) | _ => channeg0_recv{int} ( chn0, tag0, lam(chn0) => fserv1($UN.castvwtp0(chn0), k0) ) (* end of [1] *) // end // end of [channeg1_choose_conj]] // (* ****** ****** *) // implement {}(*tmp*) channeg1_choose_disj {ss0,ss1} (chn, k0, fserv0, fserv1) = let // val chn0 = $UN.castvwtp0{channeg()}(chn) // in // channeg0_send {int} ( chn0 , lam(chn0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = channeg1_choose_disj$fwork_tag<>(tag0) // end of [val] in case+ tag0 of | 0 => fserv0($UN.castvwtp0(chn0), k0) | _ => fserv1($UN.castvwtp0(chn0), k0) end // end of [lam] ) (* end of [channeg0_send] *) // end // end of [channeg1_choose_disj] // (* ****** ****** *) // implement {}(*tmp*) channeg1_option_conj {ss}(chn, k0, fserv) = let // val chn0 = $UN.castvwtp0{channeg()}(chn) val tag0 = channeg1_option_conj$choose() val ((*void*)) = channeg1_option_conj$fwork_tag<>(tag0) // in // case+ tag0 of | 0 => channeg0_recv{int}(chn0, tag0, $UN.cast{chncont0()}(k0)) | _ => channeg0_recv{int} ( chn0, tag0, lam(chn0) => fserv($UN.castvwtp0(chn0), k0) ) (* end of [1] *) // end // end of [channeg1_option_conj]] // (* ****** ****** *) // implement {}(*tmp*) channeg1_option_disj {ss}(chn, k0, fserv) = let // val chn0 = $UN.castvwtp0{channeg()}(chn) // in // channeg0_send {int} ( chn0 , lam(chn0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = channeg1_option_disj$fwork_tag<>(tag0) // end of [val] in case+ tag0 of | 0 => k0($UN.castvwtp0(chn0)) | _ => fserv($UN.castvwtp0(chn0), k0) end // end of [lam] ) (* end of [channeg0_send] *) // end // end of [channeg1_option_disj] // (* ****** ****** *) // implement {}(*tmp*) channeg1_option_conj$fwork_tag(tag) = () // nothing is done by default // implement {}(*tmp*) channeg1_option_disj$fwork_tag(tag) = () // nothing is done by default // (* ****** ****** *) // (* fun{} channeg1_repeat_conj {ss:type} ( channeg(ssconj(ssrepeat(ss))) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_repeat_conj] *) // implement {}(*tmp*) channeg1_repeat_conj {ss}(chn, k0, fserv) = let // typedef loop = $d2ctype (channeg1_repeat_conj<>) // fun loop: loop = lam(chn, k0, fserv) => let val chn0 = $UN.castvwtp0{channeg()}(chn) val tag0 = channeg1_repeat_conj$choose() // end of [val] val ((*void*)) = channeg1_repeat_conj$fwork_tag<>(tag0) // end of [val] in // case+ tag0 of | 0 => channeg0_recv{int}(chn0, tag0, $UN.cast{chncont0()}(k0)) | _ => channeg0_recv{int} ( chn0, tag0 , lam(chn0) => fserv ( $UN.castvwtp0(chn0) , lam(chn) => channeg1_repeat_conj$spawn(llam() => loop($UN.castvwtp0(chn), k0, fserv)) ) (*fserv*) // end of [lam] ) (* end of [1] *) // end // end of [loop] // val () = channeg1_repeat_conj$init<>() // in channeg1_repeat_conj$spawn(llam() => loop(chn, k0, fserv)) end // end of [channeg1_repeat_conj]] // (* ****** ****** *) // (* fun{} channeg1_repeat_disj {ss:type} ( channeg(ssrepeat(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_repeat_disj] *) // implement {}(*tmp*) channeg1_repeat_disj {ss}(chn, k0, fserv) = let // typedef loop = $d2ctype (channeg1_repeat_disj<>) // fun loop: loop = lam(chn, k0, fserv) => let val chn0 = $UN.castvwtp0{channeg()}(chn) // end of [val] in // channeg0_send {int} ( chn0 , lam(chn0, tag0) => let val tag0 = chmsg_parse(tag0) // end of [val] val ((*void*)) = channeg1_repeat_disj$fwork_tag<>(tag0) // end of [val] in case+ tag0 of | 0 => k0($UN.castvwtp0(chn0)) | _ => fserv($UN.castvwtp0(chn0), lam(chn) => loop($UN.castvwtp0(chn), k0, fserv)) end // end of [lam] ) (* end of [channeg0_send] *) // end // end of [loop] // val () = channeg1_repeat_disj$init<>() // in loop(chn, k0, fserv) end // end of [channeg1_repeat_disj] // (* ****** ****** *) // implement {}(*tmp*) channeg1_repeat_conj$init() = () // nothing is done by default // implement {}(*tmp*) channeg1_repeat_disj$init() = () // nothing is done by default // implement {}(*tmp*) channeg1_repeat_conj$fwork_tag(tag) = () // nothing is done by default // implement {}(*tmp*) channeg1_repeat_disj$fwork_tag(tag) = () // nothing is done by default // (* ****** ****** *) (* end of [channeg.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Worker/channel.dats0000644000175000017500000000532013431250607026165 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) #define ATS_STALOADFLAG 0 // no staloading at run-time #define ATS_EXTERN_PREFIX "ats2js_worker_" // prefix for external names (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../../SATS/Worker/channel.sats" // (* ****** ****** *) // implement chmsg_parse(msg) = let val msg = $UN.cast{string}(msg) in $extfcall(int, "parseInt", msg) end // end of [chmsg_parse] // implement chmsg_parse(msg) = let val msg = $UN.cast{string}(msg) in $extfcall(double, "parseFloat", msg) end // end of [chmsg_parse] // (* ****** ****** *) implement chmsg_parse(msg) = $UN.cast{bool}(msg) (* ****** ****** *) // implement chmsg_parse(msg) = $UN.cast{string}(msg) // (* ****** ****** *) implement (a:t@ype) chmsg_parse(msg) = let // fun aux{n:nat} ( xs: list(chmsg(a), n) ) : list0(a) = ( case+ xs of // | list_nil () => list0_nil() // list_nil // | list_cons (x, xs) => let val x = chmsg_parse(x) // end of [val] in list0_cons(x, aux(xs)) end // end of [list_cons] // ) // in aux($UN.cast{List0(chmsg(a))}(msg)) end // end of [chmsg_parse] (* ****** ****** *) implement (a:t@ype ,b:t0ype) chmsg_parse<$tup(a,b)>(msg) = let // val msg = $UN.cast{$tup(chmsg(a),chmsg(b))}(msg) // in $tup(chmsg_parse(msg.0), chmsg_parse(msg.1)) end // end of [chmsg_parse<$tup(a,b)>] (* ****** ****** *) implement (a:t@ype ,b:t0ype ,c:t0ype) chmsg_parse<$tup(a,b,c)>(msg) = let // val msg = $UN.cast{$tup(chmsg(a),chmsg(b),chmsg(c))}(msg) // in $tup(chmsg_parse(msg.0), chmsg_parse(msg.1), chmsg_parse(msg.2)) end // end of [chmsg_parse<$tup(a,b,c)>] (* ****** ****** *) (* end of [channel.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/slistref.dats0000644000175000017500000000120013431250607025130 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: list-based stack // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_slistref_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #include "{$LIBATSCC}/DATS/slistref.dats" // (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/0000755000175000017500000000000013431250607023410 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/parcomb/0000755000175000017500000000000013431250607025033 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/parcomb/parcomb.dats0000644000175000017500000000136513431250607027340 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2jspre_BUCS320_parcomb_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_js.sats" // (* ****** ****** *) // #staload "./../../../SATS/list.sats" #staload "./../../../SATS/list_vt.sats" // (* ****** ****** *) // #staload "./../../../SATS/BUCS320/parcomb.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/parcomb/parcomb.dats" // (* ****** ****** *) (* end of [parcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/0000755000175000017500000000000013431250607026335 5ustar brandonbrandon././@LongLink0000644000000000000000000000015600000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize0000644000175000017500000000153213431250607031206 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2jspre_BUCS320_GraphStreamize_dfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_js.sats" // #staload "./../../../SATS/bool.sats" #staload "./../../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../../SATS/slistref.sats" // macdef slistref_insert = slistref_push macdef slistref_takeout_opt = slistref_pop_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS\ /BUCS320/GraphStreamize/GraphStreamize_dfs.dats" // (* ****** ****** *) (* end of [GraphStreamize_dfs.dats] *) ././@LongLink0000644000000000000000000000015600000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize0000644000175000017500000000154113431250607031206 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2jspre_BUCS320_GraphStreamize_bfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_js.sats" // #staload "./../../../SATS/bool.sats" #staload "./../../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../../SATS/qlistref.sats" // macdef qlistref_insert = qlistref_enqueue macdef qlistref_takeout_opt = qlistref_dequeue_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS\ /BUCS320/GraphStreamize/GraphStreamize_bfs.dats" // (* ****** ****** *) (* end of [GraphStreamize_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025577 5ustar brandonbrandon././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.d0000644000175000017500000000151413431250607030770 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2jspre_BUCS320_GraphSearch_dfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_js.sats" // #staload "./../../../SATS/bool.sats" #staload "./../../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../../SATS/slistref.sats" // macdef slistref_insert = slistref_push macdef slistref_takeout_opt = slistref_pop_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.d0000644000175000017500000000152313431250607030766 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2jspre_BUCS320_GraphSearch_bfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_js.sats" // #staload "./../../../SATS/bool.sats" #staload "./../../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../../SATS/qlistref.sats" // macdef qlistref_insert = qlistref_enqueue macdef qlistref_takeout_opt = qlistref_dequeue_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/list_vt.dats0000644000175000017500000000136113431250607024771 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list_vt.dats" // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/gprint.dats0000644000175000017500000000207613431250607024614 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_gprint_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) #staload "./../SATS/gprint.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/gprint.dats" // (* ****** ****** *) // extern fun tostring {a:t@ype}(x: a): string = "mac#%" // (* ****** ****** *) // implement {a}(*tmp*) gprint_val(x) = gprint_string(tostring(x)) // (* ****** ****** *) // implement {}(*tmp*) gprint_int(x) = gprint_string(tostring(x)) // (* ****** ****** *) // implement {}(*tmp*) gprint_bool(x) = gprint_string(if x then "true" else "false") // (* ****** ****** *) (* implement {}(*tmp*) gprint_char(x) = gprint_string(tostring(x)) *) (* ****** ****** *) implement {}(*tmp*) gprint_double(x) = gprint_string(tostring(x)) (* ****** ****** *) (* end of [gprint.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/print.dats0000644000175000017500000000131513431250607024440 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_print_" // (* ****** ****** *) // #staload "./../basics_js.sats" // #staload "./../SATS/print.sats" // #staload "./../SATS/ML/list0.sats" // (* ****** ****** *) // implement print_val = print_int implement print_val = print_bool implement print_val = print_double implement print_val = print_string // (* ****** ****** *) implement (a)(*tmp*) print_val = print_list0 (* ****** ****** *) (* end of [print.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/funarray.dats0000644000175000017500000000143113431250607025132 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_funarray_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // (* #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" *) // (* ****** ****** *) // #staload "./../SATS/funarray.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/funarray.dats" // (* ****** ****** *) (* end of [funarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/stream_vt.dats0000644000175000017500000000167213431250607025316 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_stream_vt_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // #staload "./../SATS/reference.sats" // (* ****** ****** *) #staload "./../SATS/stream.sats" #staload "./../SATS/stream_vt.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream_vt.dats" // (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/char.dats0000644000175000017500000000272013431250607024222 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_string_" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // #staload "./../SATS/char.sats" #staload "./../SATS/integer.sats" // // (* ****** ****** *) // implement char_isalpha(c0) = ( ifcase | (65(*A*) <= c0 && c0 <= 90(*Z*)) => true | (97(*a*) <= c0 && c0 <= 122(*z*)) => true | _(*else*) => false // end of [ifcase] ) (* end of [char_isalpha] *) // (* ****** ****** *) // implement char_isalnum(c0) = ( ifcase | (48(*0*) <= c0 && c0 <= 57(*9*)) => true | (65(*A*) <= c0 && c0 <= 90(*Z*)) => true | (97(*a*) <= c0 && c0 <= 122(*z*)) => true | _(*else*) => false // end of [ifcase] ) (* end of [char_isalnum] *) // (* ****** ****** *) // implement char_isdigit(c0) = ( ifcase | (48(*0*) <= c0 && c0 <= 57(*9*)) => true | _(*else*) => false // end of [ifcase] ) (* end of [char_isdigit] *) // (* ****** ****** *) implement char_isspace(c0) = ( ifcase | c0 = 9(*\t*) => true | c0 = 10(*\n*) => true | c0 = 11(*\v*) => true | c0 = 12(*\f*) => true | c0 = 13(*\r*) => true | c0 = 32(*' '*) => true | _(*else*) => false // end of [ifcase] ) (* end of [char_isspace] *) // (* ****** ****** *) (* end of [char.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Bacon.js/0000755000175000017500000000000013431250607024064 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Bacon.js/baconjs.dats0000644000175000017500000000511313431250607026360 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: November, 2016 *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // no staloading at run-time // #define ATS_EXTERN_PREFIX "ats2js_bacon_" // prefix for extern names #define ATS_STATIC_PREFIX "_ats2js_bacon_" // prefix for static names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../../staloadall.hats" // (* ****** ****** *) // staload "./../../SATS/Bacon.js/baconjs.sats" // (* ****** ****** *) // implement EStream_map_method (xs, _) = lam(fopr) => EStream_map(xs, fopr) // implement Property_map_method (xs, _) = lam(fopr) => Property_map(xs, fopr) // (* ****** ****** *) // implement EStream_filter_method (xs) = lam(pred) => EStream_filter(xs, pred) // (* ****** ****** *) // implement EStream_scan_method (xs, _(*type*)) = lam(ini, fopr) => EStream_scan(xs, ini, fopr) // (* ****** ****** *) // implement EStream_flatMap_method (xs, _) = lam(fopr) => EStream_flatMap(xs, fopr) // implement Property_flatMap_method (xs, _) = lam(fopr) => Property_flatMap(xs, fopr) // (* ****** ****** *) // implement EStream_onValue_method (xs) = lam(fopr) => EStream_onValue(xs, fopr) // implement Property_onValue_method (xs) = lam(fopr) => Property_onValue(xs, fopr) // (* ****** ****** *) // implement EStream_subscribe_method (xs) = lam(fopr) => EStream_subscribe(xs, fopr) // implement Property_subscribe_method (xs) = lam(fopr) => Property_subscribe(xs, fopr) // (* ****** ****** *) // implement EStream_doAction_method (xs) = lam(fopr) => EStream_doAction(xs, fopr) // implement Property_doAction_method (xs) = lam(fopr) => Property_doAction(xs, fopr) // (* ****** ****** *) (* end of [baconjs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/Bacon.js/baconjs_ext.dats0000644000175000017500000001116513431250607027244 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // no staloading at run-time // #define ATS_EXTERN_PREFIX "ats2js_bacon_ext_" // prefix for extern names #define ATS_STATIC_PREFIX "_ats2js_bacon_ext_" // prefix for static names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../../staloadall.hats" // (* ****** ****** *) // staload "./../../SATS/Bacon.js/baconjs.sats" staload "./../../SATS/Bacon.js/baconjs_ext.sats" // (* ****** ****** *) // (* fun EStream_scan_stream_opt {a,b,c:t0p} ( xs: EStream(b) , ini: a, ys: stream(c), fopr: cfun(a, b, c, Option_vt(a)) ) : Property(a) = "mac#%" // end-of-function *) // implement EStream_scan_stream_opt {a,b,c} (xs, ini, ys, fopr) = let // val rys = ref{stream(c)}(ys) // val fopr2 = lam ( ini: a, x: b ) : a = let val ys = rys[] in // case+ !ys of | stream_nil() => ini | stream_cons(y, ys) => let val opt = fopr(ini, x, y) in case+ opt of | ~None_vt() => ini | ~Some_vt(ini) => (rys[] := ys; ini) end // end of [stream_cons] // end // end of [fopr2] // in EStream_scan(xs, ini, fopr2) end // end of [EStream_scan_stream_opt] // (* ****** ****** *) // (* fun EValue_get_elt {a:t0p} (x: EValue(a)): (a) = "mac#%" *) implement EValue_get_elt {a}(eval) = ref_get_elt($UN.cast{ref(a)}(eval)) // (* ****** ****** *) // (* fun EValue_make_property {a:t0p}(Property(a)): EValue(a) = "mac#%" *) // implement EValue_make_property {a}(xs) = let // val x0 = $UN.cast{a}(0) // val xref = ref{a}(x0) // val ((*void*)) = Property_onValue (xs, lam(x) = xref[] := x) // in $UN.cast{EValue(a)}(xref) end // end of [EValue_make_property] (* ****** ****** *) // (* fun EValue_make_estream_scan {a,b:t0p} ( x0: a, ys: EStream(b), fopr: cfun(a, b, a) ) : EValue(a) = "mac#%" // end-of-fun *) // implement EValue_make_estream_scan {a,b} ( x0, ys, fopr ) = let // val xref = ref{a}(x0) // val () = EStream_onValue{b}( ys, lam(y) = xref[] := fopr(xref[], y) ) (* end of [val] *) // in $UN.cast{EValue(a)}(xref) end // end of [EValue_make_estream_scan] (* ****** ****** *) local // datatype tagged(a:t@ype+) = | Opening of (int, a) | Closing of (int) // in (* in-of-local *) implement EStream_singpair_trans {a}(xs, delta) = let // val x0 = $UN.cast{a}(0) // val xs_tagged = EStream_scan{tagged(a)}{a} ( xs , Opening(0, x0) , lam(res, x) => let val-Opening(n, _) = res in Opening(n+1, x) end ) (* end of [EStream_scan] *) val xs_tagged = Property_changes(xs_tagged) // val ys_tagged = EStream_flatMap {tagged(a)}{tagged(a)} ( xs_tagged , lam x => let val-Opening(n, _) = x in Bacon_later(delta(*ms*), Closing(n)) end ) // datatype state(a:t0p) = | Issued of Option(singpair(a)) | Waiting of (int, a) // in // ( ( Property_changes ( EStream_scan {state(a)}{tagged(a)} ( merge ( xs_tagged, ys_tagged ) , Issued(None()) // initial , lam(state, tagged) => ( case+ state of | Issued(_) => ( case+ tagged of | Closing(n) => Issued(None()) | Opening(n, x) => Waiting(n, x) ) | Waiting(n0, x0) => ( case+ tagged of | Closing(n) => if n < n0 then state else Issued(Some(Sing(x0))) // end of [if] | Opening(_, x1) => Issued(Some(Pair(x0, x1))) ) // end of [case+] ) ) ) ).filter() ( lam(state) => case+ state of Issued(opt) => opt.is_some() | _ => false // end of [lam] ) ).map(TYPE{singpair(a)}) ( lam(state) => case- state of Issued(opt) => (case- opt of Some(x) => x) // end of [lam] ) // end // end of [EStream_singpair_trans] end // end of [local] (* ****** ****** *) (* end of [baconjs_ext.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/ML/0000755000175000017500000000000013431250607022737 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/ML/option0.dats0000644000175000017500000000126213431250607025205 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" #define ATS_STATIC_PREFIX "_ats2jspre_ML_option0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" // (* ****** ****** *) // #staload "./../../SATS/ML/option0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/option0.dats" // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/ML/list0.dats0000644000175000017500000000624013431250607024651 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" #define ATS_STATIC_PREFIX "_ats2jspre_ML_list0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/list.sats" // (* ****** ****** *) // #staload "./../../SATS/stream.sats" // #staload "./../../SATS/stream_vt.sats" #staload _ = "./../../DATS/stream_vt.dats" // (* ****** ****** *) // #staload "./../../SATS/ML/list0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/list0.dats" // (* ****** ****** *) // local // #staload "./../list.dats" // in (* in-of-local *) // extern fun{} print_list0$sep (): void // implement {}(*tmp*) print_list0$sep ((*void*)) = print_string (", ") // implement {a}(*tmp*) print_list0(xs) = let // implement print_list$sep<> = print_list0$sep<> // in print_list(g1ofg0(xs)) end // end of [print_list0] // implement {a}(*tmp*) print_list0_sep(xs, sep) = let // in print_list_sep(g1ofg0(xs), sep) end // end of [print_list0_sep] // end // end of [local] // (* ****** ****** *) // implement list0_head_exn {a}(xs) = ( case+ xs of | list0_cons (x, _) => (x) // list0_cons | list0_nil() => ( $extfcall(a, "ats2jspre_ListSubscriptExn_throw") ) (* list0_nil *) ) (* end of [list0_head_exn] *) // (* ****** ****** *) // implement list0_tail_exn {a}(xs) = ( case+ xs of | list0_cons (_, xs) => (xs) // list0_cons | list0_nil() => ( $extfcall (list0(a), "ats2jspre_ListSubscriptExn_throw") // $extfcall ) (* list0_nil *) ) (* end of [list0_tail_exn] *) // (* ****** ****** *) implement list0_get_at_exn {a}(xs, n) = ( case+ xs of | list0_nil() => ( $extfcall(a, "ats2jspre_ListSubscriptExn_throw") ) (* list0_nil *) | list0_cons(x, xs) => if n > 0 then list0_get_at_exn(xs, n-1) else (x) // end of [list0_cons] ) (* end of [list0_get_at_exn] *) // (* ****** ****** *) implement list0_insert_at_exn {a} ( xs, i0, x0 ) = aux(xs, i0) where { // fun aux ( xs: list0(a), i0: intGte(0) ) : list0(a) = ( if i0 > 0 then ( case+ xs of | list0_nil() => $extfcall (list0(a), "ats2jspre_ListSubscriptExn_throw") // (* list0_nil *) | list0_cons(x, xs) => list0_cons(x, aux(xs, i0-1)) ) else list0_cons(x0, xs) ) (* end of [aux] *) // } (* end of [list0_insert_at_exn] *) (* ****** ****** *) implement list0_remove_at_exn {a} ( xs, i0 ) = aux(xs, i0) where { // fun aux ( xs: list0(a), i0: intGte(0) ) : list0(a) = ( case+ xs of | list0_nil() => $extfcall (list0(a), "ats2jspre_ListSubscriptExn_throw") // (* list0_nil *) | list0_cons(x, xs) => if i0 > 0 then list0_cons(x, aux(xs, i0-1)) else xs ) // } (* end of [list0_remove_at_exn] *) (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/ML/array0.dats0000644000175000017500000000156613431250607025022 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" #define ATS_STATIC_PREFIX "_ats2jspre_ML_array0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/arrayref.sats" #staload "./../../SATS/ML/array0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/array0.dats" // (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/DATS/ML/matrix0.dats0000644000175000017500000000161613431250607025204 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" #define ATS_STATIC_PREFIX "_ats2jspre_ML_matrix0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_js.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/matrixref.sats" #staload "./../../SATS/ML/matrix0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/matrix0.dats" // (* ****** ****** *) (* end of [matrix0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Makefile0000644000175000017500000001437613431250607023347 0ustar brandonbrandon# # For generating libatscc2js # ###### PATSOPT=$(PATSHOME)/bin/patsopt ATSCC2JS=$(PATSHOME)/bin/atscc2js ###### CAT=cat CPF=cp -f RMF=rm -f SCPR=scp -r ###### all:: all_in_one:: ###### # all:: ; \ $(PATSOPT) -d ./DATS/basics.dats | \ $(ATSCC2JS) -o ./output/DATS/basics_dats.js -i # all:: ; \ $(PATSOPT) -d ./DATS/char.dats | \ $(ATSCC2JS) -o ./output/DATS/char_dats.js -i # all:: ; \ $(PATSOPT) -d ./DATS/string.dats | \ $(ATSCC2JS) -o ./output/DATS/string_dats.js -i # all:: ; \ $(PATSOPT) -d ./DATS/list.dats | \ $(ATSCC2JS) -o ./output/DATS/list_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/list_vt.dats | \ $(ATSCC2JS) -o ./output/DATS/list_vt_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/option.dats | \ $(ATSCC2JS) -o ./output/DATS/option_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/stream.dats | \ $(ATSCC2JS) -o ./output/DATS/stream_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/stream_vt.dats | \ $(ATSCC2JS) -o ./output/DATS/stream_vt_dats.js -i # all:: ; \ $(PATSOPT) -d ./DATS/gvalue.dats | \ $(ATSCC2JS) -o ./output/DATS/gvalue_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/intrange.dats | \ $(ATSCC2JS) -o ./output/DATS/intrange_dats.js -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/JSarray.dats | \ $(ATSCC2JS) -o ./output/DATS/JSarray_dats.js -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/reference.dats | \ $(ATSCC2JS) -o ./output/DATS/reference_dats.js -i # all:: ; \ $(PATSOPT) -d ./DATS/arrayref.dats | \ $(ATSCC2JS) -o ./output/DATS/arrayref_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/matrixref.dats | \ $(ATSCC2JS) -o ./output/DATS/matrixref_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/gmatrixref.dats | \ $(ATSCC2JS) -o ./output/DATS/gmatrixref_dats.js -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/funarray.dats | \ $(ATSCC2JS) -o ./output/DATS/funarray_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/slistref.dats | \ $(ATSCC2JS) -o ./output/DATS/slistref_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/qlistref.dats | \ $(ATSCC2JS) -o ./output/DATS/qlistref_dats.js -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/ML/list0.dats | \ $(ATSCC2JS) -o ./output/DATS/ML/list0_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/ML/array0.dats | \ $(ATSCC2JS) -o ./output/DATS/ML/array0_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/ML/option0.dats | \ $(ATSCC2JS) -o ./output/DATS/ML/option0_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/ML/matrix0.dats | \ $(ATSCC2JS) -o ./output/DATS/ML/matrix0_dats.js -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/Bacon.js/baconjs.dats | \ $(ATSCC2JS) -o ./output/DATS/Bacon.js/baconjs_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/Bacon.js/baconjs_ext.dats | \ $(ATSCC2JS) -o ./output/DATS/Bacon.js/baconjs_ext_dats.js -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/BUCS320/parcomb/parcomb.dats | \ $(ATSCC2JS) -o ./output/DATS/BUCS320/parcomb/parcomb_dats.js -i # ###### # LIBATSCC2JS_ALL_JS=\ output/libatscc2js_all.js LIBATSCC2JS_BACONJS_ALL_JS=\ output/libatscc2js_baconjs_all.js LIBATSCC2JS_BUCS320_PARCOMB_JS=\ output/libatscc2js_bucs320_parcomb.js LIBATSCC2JS_PRINT_STORE_CATS_JS=\ output/libatscc2js_print_store_cats.js # ###### all_in_one:: libatscc2js_all all_in_one:: libatscc2js_baconjs_all all_in_one:: libatscc2js_bucs320_parcomb all_in_one:: libatscc2js_print_store_cats ###### # DATE=/bin/date ECHO=/bin/echo -en # PRINTF=printf # ###### # # libatscc2js_all:: ; \ # $(ECHO) | $(CAT) - >$(LIBATSCC2JS_ALL_JS) # libatscc2js_all:: ; \ $(PRINTF) '\n' | $(CAT) - >$(LIBATSCC2JS_ALL_JS) libatscc2js_all:: ; \ $(PRINTF) '/*\n' | $(CAT) - >>$(LIBATSCC2JS_ALL_JS) libatscc2js_all:: ; \ $(PRINTF) 'Time of Generation:\n' | $(CAT) - >>$(LIBATSCC2JS_ALL_JS) libatscc2js_all:: ; \ $(DATE) | $(CAT) - >>$(LIBATSCC2JS_ALL_JS) libatscc2js_all:: ; \ $(PRINTF) '*/\n\n' | $(CAT) - >>$(LIBATSCC2JS_ALL_JS) # ###### libatscc2js_all:: ; \ $(CAT) >>$(LIBATSCC2JS_ALL_JS) \ CATS/basics_cats.js \ CATS/integer_cats.js \ CATS/bool_cats.js \ CATS/float_cats.js \ CATS/string_cats.js \ CATS/gvalue_cats.js \ CATS/JSarray_cats.js \ CATS/JSLIBC/JSmisc_cats.js \ CATS/JSLIBC/JSmath_cats.js \ CATS/JSLIBC/JSdate_cats.js \ CATS/HTTP/Ajax/Ajax_cats.js \ CATS/HTML/canvas-2d/canvas2d_cats.js \ libatscc2js_all:: ; \ $(CAT) >>$(LIBATSCC2JS_ALL_JS) \ output/DATS/basics_dats.js \ output/DATS/char_dats.js \ output/DATS/string_dats.js \ output/DATS/list_dats.js \ output/DATS/list_vt_dats.js \ output/DATS/option_dats.js \ output/DATS/stream_dats.js \ output/DATS/stream_vt_dats.js \ output/DATS/gvalue_dats.js \ output/DATS/intrange_dats.js \ output/DATS/JSarray_dats.js \ output/DATS/reference_dats.js \ output/DATS/arrayref_dats.js \ output/DATS/matrixref_dats.js \ output/DATS/gmatrixref_dats.js \ output/DATS/funarray_dats.js \ output/DATS/slistref_dats.js \ output/DATS/qlistref_dats.js \ output/DATS/ML/list0_dats.js \ output/DATS/ML/array0_dats.js \ output/DATS/ML/option0_dats.js \ output/DATS/ML/matrix0_dats.js \ ###### # libatscc2js_all:: ; \ $(PRINTF) '\n/* ****** ****** */\n' | $(CAT) - >>$(LIBATSCC2JS_ALL_JS) libatscc2js_all:: ; \ $(PRINTF) '\n/* end of [libatscc2js_all.js] */\n' | $(CAT) - >>$(LIBATSCC2JS_ALL_JS) # ###### # libatscc2js_baconjs_all:: ; \ $(CAT) \ >$(LIBATSCC2JS_BACONJS_ALL_JS) \ CATS/Bacon.js/baconjs_cats.js \ output/DATS/Bacon.js/baconjs_dats.js \ output/DATS/Bacon.js/baconjs_ext_dats.js # ###### # libatscc2js_bucs320_parcomb:: ; \ $(CAT) \ >$(LIBATSCC2JS_BUCS320_PARCOMB_JS) \ output/DATS/BUCS320/parcomb/parcomb_dats.js # ###### # libatscc2js_print_store_cats:: ; \ $(CAT) \ ./CATS/PRINT/print_store_cats.js \ >$(LIBATSCC2JS_PRINT_STORE_CATS_JS) # ###### # # upload_source:: ; \ # $(SCPR) \ # basics_js.sats \ # staloadall.hats \ # CATS SATS DATS \ # ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libatscc/libatscc2js/. # # upload_libatscc2js:: ; \ # $(SCPR) \ # $(LIBATSCC2JS_ALL_JS) \ # $(LIBATSCC2JS_BACONJS_ALL_JS) \ # $(LIBATSCC2JS_BUCS320_PARCOMB_JS) \ # ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libatscc/libatscc2js/. # ###### clean:: ; $(RMF) *~ */*~ ###### # cleanall:: clean # cleanall:: ; $(RMF) output/DATS/*_dats.js cleanall:: ; $(RMF) output/DATS/ML/*_dats.js cleanall:: ; $(RMF) output/DATS/BUCS320/*_dats.js cleanall:: ; $(RMF) output/DATS/Bacon.js/*_dats.js # cleanall:: ; $(RMF) $(LIBATSCC2JS_ALL_JS) cleanall:: ; $(RMF) $(LIBATSCC2JS_BACONJS_ALL_JS) cleanall:: ; $(RMF) $(LIBATSCC2JS_BUCS320_PARCOMB_JS) # cleanall:: ; $(RMF) output/libatscc2js_print_store_cats.js # ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/0000755000175000017500000000000013431250607022453 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/test01.dats0000644000175000017500000000214313431250607024450 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2js // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test01_dynload" // #define ATS_STATIC_PREFIX "_test01_" // (* ****** ****** *) // #include "./../staloadall.hats" // #staload "./../SATS/print.sats" // (* ****** ****** *) val () = assertloc("between".indexOf("tween") = 2) val () = assertloc("between".indexOf("tween", 3) < 0) (* ****** ****** *) // val () = 3*delay(println!("Hello, world!")) val () = repeat(3, $delay(println!("Hello, world!"))) val () = (3).foreach()(lam(i) => println!(i, ": Hello, world!")) // (* ****** ****** *) // val () = print_string ( JSarray_join(JSarray_make_list(3*list_sing("Hello, world!\n"))) ) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ test01_dynload(); process.stdout.write(ats2jspre_the_print_store_join()); %} // end of [%{$] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Makefile0000644000175000017500000000217213431250607024115 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2JS=${PATSHOME}/bin/atscc2js ###### MAKE=make NODEJS=nodejs ###### all:: ###### # all:: \ test01 test01: \ test01_dats.js test01_dats.c: test01.dats; $(PATSOPT) -o $@ -d $< test01_dats.js: test01_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: \ test_test01 test_test01: test01_dats.js; $(NODEJS) $< # ###### # all:: \ test02_dats.js test02_dats.c: test02.dats; $(PATSOPT) -o $@ -d $< test02_dats.js: test02_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: \ test_test02 test_test02: test02_dats.js; $(NODEJS) $< # ###### # all:: \ test04_dats.js test04_dats.c: test04.dats; $(PATSOPT) -o $@ -d $< test04_dats.js: test04_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: \ test_test04 test_test04: test04_dats.js; $(NODEJS) $< # ###### testall:: all testall:: regress testall:: cleanall ###### testall:: ; $(MAKE) -C Worker testall testall:: ; $(MAKE) -C BUCS320/GraphSearch testall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.js ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/0000755000175000017500000000000013431250607023724 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test_client.dats0000644000175000017500000000602413431250607027120 0ustar brandonbrandon(* ****** ****** *) // // Testing WebWorker // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" #include "{$LIBATSCC2JS}/staloadall.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "./../../SATS/Worker/channel.sats" #staload "./../../DATS/Worker/channel.dats" #include "./../../DATS/Worker/channeg.dats" // (* ****** ****** *) %{^ // function theArg1_set(a1) { document.getElementById('theArg1').value = a1; } function theArg2_set(a2) { document.getElementById('theArg2').value = a2; } function theResult_get() { return parseInt(document.getElementById('theResult').value); } function theResult_set(value) { document.getElementById('theResult').value = value; } // %} // end of [%{^] (* ****** ****** *) %{^ // var Started = false; // function Start_onclick() { if (!Started) { Started = true; return StartIt(); } else { alert ('The session is in progress!'); return; } } // var AnswerIt = 0; var AnswerIt_do = 0; // function AnswerIt_onclick() { if (AnswerIt) { AnswerIt = 0; return ats2jspre_cloref0_app(AnswerIt_do); } else { alert('The AnswerIt button is not ready yet!'); return; } // end of [if] } // function AnswerIt_do_set(fclo) { AnswerIt = 1; AnswerIt_do = fclo; return; } // %} // end of [%{^] // (* ****** ****** *) // #staload PROTOCOL = "./test_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) // extern fun StartIt(): void = "mac#" // extern fun PostRep (channeg(chnil), yn: bool): void = "mac#" extern fun ReplyIt (channeg(sstest1), a1: int, a2: int): void = "mac#" // (* ****** ****** *) // implement StartIt() = let // val chn = channeg0_new_file("./test_server_dats_.js") // val chn = $UN.castvwtp0{channeg(sstest3)}(chn) // in // channeg1_recv ( chn, 0 , lam(chn) => channeg1_send ( chn , lam(chn, a1) => channeg1_send ( chn , lam(chn, a2) => ReplyIt(chn, chmsg_parse(a1), chmsg_parse(a2)) ) ) ) // end // end of [Start_onclick] (* ****** ****** *) implement ReplyIt (chn, a1, a2) = let // val () = $extfcall(void, "theArg1_set", a1) val () = $extfcall(void, "theArg2_set", a2) // val () = $extfcall(void, "theResult_set", "") // val ReplyIt_do = llam() = let val res = $extfcall(int, "theResult_get") in // channeg1_recv ( chn, res , lam(chn) => channeg1_send ( chn , lam(chn, yn) => PostRep(chn, chmsg_parse(yn)) ) ) // end // end of [ReplyIt_do] // in // $extfcall ( void , "AnswerIt_do_set", $UN.castvwtp0{JSobj}(ReplyIt_do) ) // end // end of [ReplyIt] (* ****** ****** *) implement PostRep(chn, yn) = let val () = channeg1_close(chn) // end of [val] // extvar "Started" = false; // in if yn then alert("The replied answer is right :)") else alert("The replied answer is wrong :(") // end of [if] end // end of [PostRep] (* ****** ****** *) (* end of [test_client.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test3_client.html0000644000175000017500000000262113431250607027213 0ustar brandonbrandon test3_client

For testing session-typed channels

Arg1
Arg2

ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/Makefile0000644000175000017500000000475413431250607025376 0ustar brandonbrandon# # A simple Makefile # ###### # PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt # ATSCC2JS=$(PATSHOME)/bin/atscc2js LIBATCC2JS=$(PATSHOME)/contrib/libatscc2js # ###### # all:: rpc_client_dats.js all:: rpc_server_dats_.js # all:: test_client_dats.js all:: test_server_dats_.js # all:: test2_client_dats.js all:: test2_server_dats_.js # all:: test3_client_dats.js all:: test3_server_dats_.js # ###### # rpc_client_dats.c: rpc_client.dats; $(PATSOPT) -o $@ -d $< rpc_client_dats.js: rpc_client_dats.c; $(ATSCC2JS) -o $@ -i $< rpc_server_dats.c: rpc_server.dats; $(PATSOPT) -o $@ -d $< rpc_server_dats.js: rpc_server_dats.c; $(ATSCC2JS) -o $@ -i $< rpc_server_dats_.js: rpc_server_dats.js; $(CAT) $(LIBATCC2JS)/output/libatscc2js_all.js $< > $@ # ###### # test_client_dats.c: test_client.dats; $(PATSOPT) -o $@ -d $< test_client_dats.js: test_client_dats.c; $(ATSCC2JS) -o $@ -i $< test_server_dats.c: test_server.dats; $(PATSOPT) -o $@ -d $< test_server_dats.js: test_server_dats.c; $(ATSCC2JS) -o $@ -i $< test_server_dats_.js: test_server_dats.js; $(CAT) $(LIBATCC2JS)/output/libatscc2js_all.js $< > $@ # ###### # test2_client_dats.c: test2_client.dats; $(PATSOPT) -o $@ -d $< test2_client_dats.js: test2_client_dats.c; $(ATSCC2JS) -o $@ -i $< test2_server_dats.c: test2_server.dats; $(PATSOPT) -o $@ -d $< test2_server_dats.js: test2_server_dats.c; $(ATSCC2JS) -o $@ -i $< test2_server_dats_.js: test2_server_dats.js; $(CAT) $(LIBATCC2JS)/output/libatscc2js_all.js $< > $@ # ###### # test3_client_dats.c: test3_client.dats; $(PATSOPT) -o $@ -d $< test3_client_dats.js: test3_client_dats.c; $(ATSCC2JS) -o $@ -i $< test3_server_dats.c: test3_server.dats; $(PATSOPT) -o $@ -d $< test3_server_dats.js: test3_server_dats.c; $(ATSCC2JS) -o $@ -i $< test3_server_dats_.js: test3_server_dats.js; $(CAT) $(LIBATCC2JS)/output/libatscc2js_all.js $< > $@ # ###### CAT=cat RMF=rm -f ###### testall:: all testall:: cleanall ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### # cleanall:: clean # cleanall:: ; $(RMF) rpc_client_dats.js cleanall:: ; $(RMF) rpc_server_dats.js cleanall:: ; $(RMF) rpc_server_dats_.js # cleanall:: ; $(RMF) test_client_dats.js cleanall:: ; $(RMF) test_server_dats.js cleanall:: ; $(RMF) test_server_dats_.js # cleanall:: ; $(RMF) test2_client_dats.js cleanall:: ; $(RMF) test2_server_dats.js cleanall:: ; $(RMF) test2_server_dats_.js # cleanall:: ; $(RMF) test3_client_dats.js cleanall:: ; $(RMF) test3_server_dats.js cleanall:: ; $(RMF) test3_server_dats_.js # ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/rpc_client.html0000644000175000017500000000174513431250607026743 0ustar brandonbrandon rpc_client

For testing worker-based channels

+
ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test2_client.dats0000644000175000017500000000721313431250607027203 0ustar brandonbrandon(* ****** ****** *) // // Testing WebWorker // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" #include "{$LIBATSCC2JS}/staloadall.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "./../../SATS/Worker/channel.sats" #staload "./../../DATS/Worker/channel.dats" #include "./../../DATS/Worker/channeg.dats" // (* ****** ****** *) // extern fun console_log(string): void = "mac#" // (* ****** ****** *) %{^ // function console_log(x) { return console.log(x); } // function theArg1_set(a1) { document.getElementById('theArg1').value = a1; } function theArg2_set(a2) { document.getElementById('theArg2').value = a2; } function theResult_get() { return parseInt(document.getElementById('theResult').value); } function theResult_set(value) { document.getElementById('theResult').value = value; } // %} // end of [%{^] (* ****** ****** *) %{^ // var Started = false; // function Start_onclick() { if (!Started) { Started = true; return StartIt(); } else { alert ('The session is in progress!'); return; } } // var AnswerIt = 0; var AnswerIt_do = 0; // function AnswerIt_onclick() { if (AnswerIt) { AnswerIt = 0; return ats2jspre_cloref0_app(AnswerIt_do); } else { alert('The AnswerIt button is not ready yet!'); return; } // end of [if] } // function AnswerIt_do_set(fclo) { AnswerIt = 1; AnswerIt_do = fclo; return; } // %} // end of [%{^] // (* ****** ****** *) // #staload PROTOCOL = "./test2_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) // extern fun StartIt(): void = "mac#" // extern fun PostRep ( channeg(chnil), k0: chncont0_nil, yn: bool ) : void = "mac#" // end-of-fun extern fun ReplyIt ( channeg(sstest1), k0: chncont0_nil, a1: int, a2: int ) : void = "mac#" // end-of-fun // extern fun StartIt_aft (chn: channeg(ssdisj(ssrepeat(sstest2)))): void = "mac#" // (* ****** ****** *) // implement StartIt() = let // val chn = channeg0_new_file("./test2_server_dats_.js") // val chn = $UN.castvwtp0{channeg(sstest3)}(chn) // in // channeg1_recv(chn, 0, lam(chn) => StartIt_aft(chn)) // end // end of [Start_onclick] (* ****** ****** *) implement StartIt_aft (chn) = let // val k0 = lam(chn: channeg_nil) = let extvar "Started" = false in channeg1_close(chn) end // // (* implement channeg1_repeat_disj$fwork_tag<> (tag) = ( console_log("fwork_tag: tag = " + String(tag)) ) // *) // in // channeg1_repeat_disj ( chn, k0 , lam(chn, k0) => channeg1_send ( chn , lam(chn, a1) => channeg1_send ( chn , lam(chn, a2) => ReplyIt(chn, k0, chmsg_parse(a1), chmsg_parse(a2)) ) ) ) // end // end of [StartIt_aft] (* ****** ****** *) implement ReplyIt (chn, k0, a1, a2) = let // val () = $extfcall(void, "theArg1_set", a1) val () = $extfcall(void, "theArg2_set", a2) // val () = $extfcall(void, "theResult_set", "") // val ReplyIt_do = llam() = let val res = $extfcall(int, "theResult_get") in // channeg1_recv ( chn, res , lam(chn) => channeg1_send ( chn , lam(chn, yn) => PostRep(chn, k0, chmsg_parse(yn)) ) ) // end // end of [ReplyIt_do] // in // $extfcall ( void , "AnswerIt_do_set", $UN.castvwtp0{JSobj}(ReplyIt_do) ) // end // end of [ReplyIt] (* ****** ****** *) implement PostRep(chn, k0, yn) = let // val () = k0(chn) // in if yn then alert("The replied answer is right :)") else alert("The replied answer is wrong :(") // end of [if] end // end of [PostRep] (* ****** ****** *) (* end of [test2_client.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test_server.dats0000644000175000017500000000255213431250607027152 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "theWorker_start" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" #include "{$LIBATSCC2JS}/staloadall.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "./../../SATS/Worker/channel.sats" #staload "./../../DATS/Worker/channel.dats" #include "./../../DATS/Worker/chanpos.dats" // (* ****** ****** *) // #staload PROTOCOL = "./test_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) val () = { // val chp = $UN.castvwtp0{chanpos(sstest3)}(0) // val ((*void*)) = chanpos1_recv ( chp , lam(chp, _) => let val a1 = double2int(100*JSmath_random()) val a2 = double2int(100*JSmath_random()) in chanpos1_send ( chp, a1 , lam(chp) => chanpos1_send ( chp, a2 , lam(chp) => chanpos1_recv ( chp , lam(chp, res) => chanpos1_send ( chp, (chmsg_parse(res) = a1 * a2), lam(chp) => chanpos1_close(chp)) ) ) ) end // end of [lam] ) (* end of [chanpos1_recv] *) // } (* end of [val] *) (* ****** ****** *) %{$ // theWorker_start(); // %} // end of [%{$] (* ****** ****** *) (* end of [test_server.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test2_server.dats0000644000175000017500000000346413431250607027237 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "theWorker_start" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" #include "{$LIBATSCC2JS}/staloadall.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "./../../SATS/Worker/channel.sats" #staload "./../../DATS/Worker/channel.dats" #include "./../../DATS/Worker/chanpos.dats" // (* ****** ****** *) // #staload PROTOCOL = "./test2_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) fun chanpos1_sstest2 ( chp: chanpos(sstest2), k0: chpcont0_nil, a1: int, a2: int ) : void = ( // chanpos1_send ( chp, a1 , lam(chp) => chanpos1_send ( chp, a2 , lam(chp) => chanpos1_recv ( chp , lam(chp, res) => chanpos1_send (chp, (chmsg_parse(res) = a1 * a2), lam(chp) => k0(chp)) ) ) ) // ) (* end of [channeg1_sstest2] *) (* ****** ****** *) val () = { // val chp = $UN.castvwtp0{chanpos(sstest3)}(0) // val ((*void*)) = chanpos1_recv ( chp , lam(chp, _) => let // val N = ref{int}(3) // implement chanpos1_repeat_disj$choose<>() = let val n = N[]; val () = N[] := n-1 in if n > 0 then 1 else 0 end // in // chanpos1_repeat_disj ( chp , lam(chp) => chanpos1_close(chp) , lam(chp, k0) => let val a1 = double2int(100*JSmath_random()) and a2 = double2int(100*JSmath_random()) in chanpos1_sstest2(chp, k0, a1, a2) end // end of [lam] ) (* chanpos1_repeat_disj *) // end // end of [lam] ) (* end of [chanpos1_recv] *) // } (* end of [val] *) (* ****** ****** *) %{$ // theWorker_start(); // %} // end of [%{$] (* ****** ****** *) (* end of [test2_server.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/rpc_server.dats0000644000175000017500000000203213431250607026750 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "theWorker_start" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" #include "{$LIBATSCC2JS}/staloadall.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "./../../SATS/Worker/channel.sats" #staload "./../../DATS/Worker/channel.dats" #include "./../../DATS/Worker/chanpos.dats" // (* ****** ****** *) // fun list0_add ( xs: list0(int) ) : int = ( case+ xs of | list0_nil() => 0 | list0_cons(x, xs) => x + list0_add(xs) ) // (* ****** ****** *) // typedef ARG = list0(int) and RES = int // local // (* implement {a}{b} rpc_server_cont(ch, f) = chanpos_close(ch) *) // in // val ((*void*)) = rpc_server($UN.cast{chanpos()}(0), lam(xs) => list0_add(xs)) // end // end of [local] // (* ****** ****** *) %{$ // theWorker_start(); // %} // end of [%{$] (* ****** ****** *) (* end of [rpc_server.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test_client.html0000644000175000017500000000256113431250607027133 0ustar brandonbrandon test_client

For testing session-typed channels

Arg1
Arg2
ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test2_prot.sats0000644000175000017500000000066713431250607026736 0ustar brandonbrandon(* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" // (* ****** ****** *) // #staload "{$LIBATSCC2JS}/SATS/Worker/channel.sats" // (* ****** ****** *) // typedef sstest1 = chrcv(int) :: chsnd(bool) :: chnil(*sstest1*) // typedef sstest2 = chsnd(int) :: chsnd(int) :: sstest1 // typedef sstest3 = chrcv(int) :: ssdisj(ssrepeat(sstest2)) // (* ****** ****** *) (* end of [test2_prot.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test3_server.dats0000644000175000017500000000456013431250607027236 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "theWorker_start" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" #include "{$LIBATSCC2JS}/staloadall.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "{$LIBATSCC2JS}/SATS/Worker/channel.sats" #staload "{$LIBATSCC2JS}/DATS/Worker/channel.dats" #include "{$LIBATSCC2JS}/DATS/Worker/chanpos.dats" // (* ****** ****** *) // #staload PROTOCOL = "./test3_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) fun chanpos1_sstest2 ( chp: chanpos(sstest2), k0: chpcont0_nil, a1: int, a2: int ) : void = ( // chanpos1_send ( chp, a1 , lam(chp) => chanpos1_send ( chp, a2 , lam(chp) => let // val N = ref{int}(3) // fun check (res: int): bool = yn where { val n = N[] val yn = (res = a1 * a2) val () = if yn then N[] := 0 else N[] := n-1 } (* end of [check] *) // implement chanpos1_repeat_disj$choose<> () = if (N[] > 0) then 1 else 0 // fun fserv ( chp: chanpos(sstest1), k0: chpcont0_nil ) : void = chanpos1_recv ( chp , lam(chp, res) => chanpos1_send (chp, check(chmsg_parse(res)), lam(chp) => k0(chp)) ) (* end of [lam] *) // in chanpos1_repeat_disj(chp, k0, lam (chp, k0) => fserv(chp, k0)) end // end of [lam] ) ) // ) (* end of [channeg1_sstest2] *) (* ****** ****** *) val () = { // val chp = $UN.castvwtp0{chanpos(sstest3)}(0) // val ((*void*)) = chanpos1_recv ( chp , lam(chp, _) => let // val N = ref{int}(3) // implement chanpos1_repeat_disj$choose<>() = let val n = N[]; val () = N[] := n-1 in if n > 0 then 1 else 0 end // in // chanpos1_repeat_disj ( chp , lam(chp) => chanpos1_close(chp) , lam(chp, k0) => let val a1 = double2int(100*JSmath_random()) and a2 = double2int(100*JSmath_random()) in chanpos1_sstest2(chp, k0, a1, a2) end // end of [lam] ) (* chanpos1_repeat_disj *) // end // end of [lam] ) (* end of [chanpos1_recv] *) // } (* end of [val] *) (* ****** ****** *) %{$ // theWorker_start(); // %} // end of [%{$] (* ****** ****** *) (* end of [test3_server.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test2_client.html0000644000175000017500000000256313431250607027217 0ustar brandonbrandon test2_client

For testing session-typed channels

Arg1
Arg2
ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/rpc_client.dats0000644000175000017500000000256513431250607026733 0ustar brandonbrandon(* ****** ****** *) // // RPC based on WebWorker // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" // #include "{$LIBATSCC2JS}/staloadall.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "./../../SATS/Worker/channel.sats" #staload "./../../DATS/Worker/channel.dats" #include "./../../DATS/Worker/channeg.dats" // (* ****** ****** *) %{^ // var myworker = new Worker("./rpc_server_dats_.js"); // if (myworker) { myworker.onmessage = function(e){ alert(e.data); return; }; } // if (!myworker) { alert('Creating of myworker failed!'); } // function theTrigger_onclick() { var arg1 = document.getElementById('theArg1').value; var arg2 = document.getElementById('theArg2').value; return theTrigger_onclick_(myworker, arg1, arg2); } // %} // end of [%{^] (* ****** ****** *) // extern fun theTrigger_onclick_ ( channeg(), arg1: string, arg2: string ) : void = "mac#" // endfun // implement theTrigger_onclick_ (chn, arg1, arg2) = let // val args = cons(arg1, cons(arg2, nil)) // typedef stringlst = List0(string) // in // rpc_client ( chn, args, lam(res) => alert(arg1 + " + " + arg2 + " = " + String(res)) ) // end // end of [theTrigger_onclick_] // (* ****** ****** *) (* end of [rpc_client.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test3_client.dats0000644000175000017500000001122613431250607027203 0ustar brandonbrandon(* ****** ****** *) // // Testing WebWorker // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" #include "{$LIBATSCC2JS}/staloadall.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "./../../SATS/Worker/channel.sats" #staload "./../../DATS/Worker/channel.dats" #include "./../../DATS/Worker/channeg.dats" // (* ****** ****** *) // extern fun theOutput_show(string): void = "mac#" // %{^ // function theOutput_show(msg) { document.getElementById('theOutput_text').innerHTML = msg; } // %} // end of [%{^] (* ****** ****** *) %{^ // function theArg1_set(a1) { document.getElementById('theArg1').value = a1; } function theArg2_set(a2) { document.getElementById('theArg2').value = a2; } function theResult_get() { return parseInt(document.getElementById('theResult').value); } function theResult_set(value) { document.getElementById('theResult').value = value; } // function theArg1Arg2Result_clear() { document.getElementById('theArg1').value = ""; document.getElementById('theArg2').value = ""; document.getElementById('theResult').value = ""; } // %} // end of [%{^] (* ****** ****** *) %{^ // var Started = false; // function Start_onclick() { if (!Started) { Started = true; theOutput_show( "The multiplication test is still in progress..." ); return StartIt(); } else { alert ('The session is in progress!'); return; } } // var AnswerIt = 0; var AnswerIt_do = 0; // function AnswerIt_onclick() { if (AnswerIt) { AnswerIt = 0; return ats2jspre_cloref0_app(AnswerIt_do); } else { alert('The AnswerIt button is not ready yet!'); return; } // end of [if] } // function AnswerIt_do_set(fclo) { AnswerIt = 1; AnswerIt_do = fclo; return; } // %} // end of [%{^] // (* ****** ****** *) // #staload PROTOCOL = "./test3_prot.sats" // typedef sstest1 = $PROTOCOL.sstest1 typedef sstest2 = $PROTOCOL.sstest2 typedef sstest3 = $PROTOCOL.sstest3 // (* ****** ****** *) // extern fun StartIt(): void = "mac#" // extern fun PostRep ( channeg(chnil), k0: chncont0_nil, n: int, yn: bool ) : void = "mac#" // end-of-fun extern fun ReplyIt ( channeg(sstest1), k0: chncont0_nil, n: int, a1: int, a2: int ) : void = "mac#" // end-of-fun extern fun ReplyIt_repeat ( channeg(ssdisj(ssrepeat(sstest1))), k0: chncont0_nil, a1: int, a2: int ) : void = "mac#" // end-of-fun // extern fun StartIt_aft (chn: channeg(ssdisj(ssrepeat(sstest2)))): void // (* ****** ****** *) // implement StartIt() = let // val chn = channeg0_new_file("./test3_server_dats_.js") // val chn = $UN.castvwtp0{channeg(sstest3)}(chn) // in // channeg1_recv(chn, 0, lam(chn) => StartIt_aft(chn)) // end // end of [StartIt] (* ****** ****** *) implement StartIt_aft (chn) = let // val k0 = lam(chn: channeg_nil) = let extvar "Started" = false in channeg1_close(chn) end // implement channeg1_repeat_disj$fwork_tag<> (tag) = ( if tag = 0 then { val () = $extfcall(void, "theArg1Arg2Result_clear") val () = theOutput_show("The session of multiplication test is over!") } ) // in // channeg1_repeat_disj ( chn, k0 , lam(chn, k0) => channeg1_send ( chn , lam(chn, a1) => channeg1_send ( chn , lam(chn, a2) => ReplyIt_repeat(chn, k0, chmsg_parse(a1), chmsg_parse(a2)) ) ) ) // end // end of [StartIt_aft] (* ****** ****** *) implement ReplyIt (chn, k0, n, a1, a2) = let // val () = $extfcall(void, "theArg1_set", a1) val () = $extfcall(void, "theArg2_set", a2) // val () = $extfcall(void, "theResult_set", "") // val ReplyIt_do = llam() = let val res = $extfcall(int, "theResult_get") in // channeg1_recv ( chn, res , lam(chn) => channeg1_send ( chn , lam(chn, yn) => PostRep(chn, k0, n, chmsg_parse(yn)) ) ) // end // end of [ReplyIt_do] // in // $extfcall ( void , "AnswerIt_do_set", $UN.castvwtp0{JSobj}(ReplyIt_do) ) // end // end of [ReplyIt] (* ****** ****** *) implement PostRep(chn, k0, n, yn) = let // val () = k0(chn) // in if yn then alert("The replied answer is right :)") else (if n >= 3 then alert("The replied answer is wrong :(")) // end of [if] end // end of [PostRep] (* ****** ****** *) implement ReplyIt_repeat (chn, k0, a1, a2) = let // val N = ref{int}(0) // implement channeg1_repeat_disj$fwork_tag<> (tag) = let val n = N[] val () = N[] := n + 1 in case+ tag of | 0 => () | _ => if n > 0 then alert("Please try again!") end // end of ... // in // channeg1_repeat_disj ( chn, k0, lam(chn, k0) => ReplyIt(chn, k0, N[], a1, a2) ) // end (* end of [ReplyIt_repeat] *) (* ****** ****** *) (* end of [test3_client.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test3_prot.sats0000644000175000017500000000071113431250607026725 0ustar brandonbrandon(* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" // (* ****** ****** *) // #staload "{$LIBATSCC2JS}/SATS/Worker/channel.sats" // (* ****** ****** *) // typedef sstest1 = chrcv(int) :: chsnd(bool) :: chnil(*sstest1*) // typedef sstest2 = chsnd(int) :: chsnd(int) :: ssdisj(ssrepeat(sstest1)) // typedef sstest3 = chrcv(int) :: ssdisj(ssrepeat(sstest2)) // (* ****** ****** *) (* end of [test3_prot.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/Worker/test_prot.sats0000644000175000017500000000064413431250607026647 0ustar brandonbrandon(* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME\ /contrib/libatscc2js/ATS2-0.3.2" // (* ****** ****** *) // #staload "{$LIBATSCC2JS}/SATS/Worker/channel.sats" // (* ****** ****** *) // typedef sstest1 = chrcv(int) :: chsnd(bool) :: chnil(*sstest1*) // typedef sstest2 = chsnd(int) :: chsnd(int) :: sstest1 // typedef sstest3 = chrcv(int) :: sstest2 // (* ****** ****** *) (* end of [test_prot.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/0000755000175000017500000000000013431250607023434 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025623 5ustar brandonbrandon././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs.0000644000175000017500000001043513431250607030615 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX"_GameOf24Play_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = slistref_make_nil{node}() val () = slistref_insert(store, nx) // in // GraphSearch_dfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // GameOf24Play(3, 3, 8, 8); GameOf24Play(3, 5, 7, 13); GameOf24Play(4, 4, 10, 10); GameOf24Play(5, 5, 7, 11); GameOf24Play(5, 7, 7, 11); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [GameOf24Play_dfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs.0000644000175000017500000001043413431250607030612 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX"_GameOf24Play_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = qlistref_make_nil{node}() val () = qlistref_insert(store, nx) // in // GraphSearch_bfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // GameOf24Play(3, 3, 8, 8); GameOf24Play(3, 5, 7, 13); GameOf24Play(4, 4, 10, 10); GameOf24Play(5, 5, 7, 11); GameOf24Play(5, 7, 7, 11); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [GameOf24Play_bfs.dats] *) ././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.d0000644000175000017500000000360213431250607031114 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = slistref_make_nil{node}() // val () = slistref_insert(store, nil0) // val () = GraphSearch_dfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // QueenPuzzle_solve(); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [QueenPuzzle_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/Makefile0000644000175000017500000000252513431250607027267 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2JS=${PATSHOME}/bin/atscc2js ###### NODEJS=nodejs ###### all:: ###### # all:: \ QueenPuzzle_dfs_dats.js QueenPuzzle_dfs_dats.c: \ QueenPuzzle_dfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_dfs_dats.js: \ QueenPuzzle_dfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: QueenPuzzle_dfs_dats.js; $(NODEJS) $< # ###### # all:: \ QueenPuzzle_bfs_dats.js QueenPuzzle_bfs_dats.c: \ QueenPuzzle_bfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_bfs_dats.js: \ QueenPuzzle_bfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: QueenPuzzle_bfs_dats.js; $(NODEJS) $< # ###### # all:: \ GameOf24Play_dfs_dats.js GameOf24Play_dfs_dats.c: \ GameOf24Play_dfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_dfs_dats.js: \ GameOf24Play_dfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: GameOf24Play_dfs_dats.js; $(NODEJS) $< # ###### # all:: \ GameOf24Play_bfs_dats.js GameOf24Play_bfs_dats.c: \ GameOf24Play_bfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_bfs_dats.js: \ GameOf24Play_bfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: GameOf24Play_bfs_dats.js; $(NODEJS) $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.js ###### ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.d0000644000175000017500000000360113431250607031111 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = qlistref_make_nil{node}() // val () = qlistref_insert(store, nil0) // val () = GraphSearch_bfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // QueenPuzzle_solve(); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [QueenPuzzle_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/test02.dats0000644000175000017500000000171313431250607024453 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2js // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test02_dynload" // #define ATS_STATIC_PREFIX "_test02_" // (* ****** ****** *) // #include "./../staloadall.hats" // #staload "./../SATS/print.sats" #staload _ = "./../DATS/print.dats" // (* ****** ****** *) #define :: list_cons (* ****** ****** *) val xs = ( 0 :: 1 :: 2 :: 3 :: 4 :: 5 :: 6 :: 7 :: 8 :: 9 :: nil() ) : List0 (int) (* ****** ****** *) val () = println! ("xs = ", xs) val () = println! ("xs + xs = ", xs + xs) (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // test02_dynload(); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/TEST/test04.dats0000644000175000017500000000375313431250607024463 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2js // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test02_dynload" // #define ATS_STATIC_PREFIX "_test02_" // (* ****** ****** *) // #include "./../staloadall.hats" // #staload "./../SATS/print.sats" #staload _ = "./../DATS/print.dats" // (* ****** ****** *) (* ****** ****** *) // val A0 = arrayref_make_elt{int}(10, 0) val () = arrayref_foreach_cloref (A0, 10, lam(i) => A0[i] := i*i) val () = arrayref_foreach_cloref (A0, 10, lam(i) => println!("A0[",i,"]=",A0[i])) // (* ****** ****** *) // val A1 = arrszref_make_elt{int}(10, 0) val () = A1.foreach()(lam(i) => A1[i] := i*i) val () = A1.foreach()(lam(i) => println!("A1[",i,"]=",A1[i])) // (* ****** ****** *) // val A1 = array0_make_elt{int}(10, 0) val () = A1.foreach()(lam(i) => A1[i] := i*i) val () = A1.foreach()(lam(i) => println!("A1[",i,"]=",A1[i])) // (* ****** ****** *) // val M0 = matrixref_make_elt{int}(2, 5, 0) val () = matrixref_foreach_cloref (M0, 2, 5, lam(i, j) => M0[i,5,j] := i*j) val () = matrixref_foreach_cloref ( M0, 2, 5 , lam(i, j) => println!("M0[", i, ",", j, "]=", M0[i,5,j])) // (* ****** ****** *) // val M1 = matrix0_make_elt{int}(2, 5, 0) val () = M1.foreach()(lam(i, j) => M1[i,j] := i*j) val () = M1.foreach() (lam(i, j) => println!("M1[", i, ",", j, "]=", M1[i,j])) // (* ****** ****** *) // val M1 = mtrxszref_make_elt{int}(2, 5, 0) val () = M1.foreach()(lam(i, j) => M1[i,j] := i*j) val () = M1.foreach() (lam(i, j) => println!("M1[", i, ",", j, "]=", M1[i,j])) // (* ****** ****** *) // (* val M1_55 = M1[5,5] // Uncaught RangeException *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // test02_dynload(); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [test04.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/0000755000175000017500000000000013431250607022426 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/string_cats.js0000644000175000017500000000565013431250607025312 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [string_cats.js] ****** */ /* ****** ****** */ // function ats2jspre_string_length (str) { return str.length ; } // /* ****** ****** */ // function ats2jspre_string_get_at (str, i) { return str.charAt(i) ; } // /* ****** ****** */ // function ats2jspre_string0_is_empty(x) { return !Boolean(x); } function ats2jspre_string1_is_empty(x) { return !Boolean(x); } // function ats2jspre_string0_isnot_empty(x) { return Boolean(x); } function ats2jspre_string1_isnot_empty(x) { return Boolean(x); } // /* ****** ****** */ // function ats2jspre_string_substring_beg_end (str, i, j) { return str.substring(i, j) ; } function ats2jspre_string_substring_beg_len (str, i, len) { return str.substring(i, i+len) ; } // /* ****** ****** */ // function ats2jspre_lt_string_string(x, y) { return (x < y); } function ats2jspre_lte_string_string(x, y) { return (x <= y); } // function ats2jspre_gt_string_string(x, y) { return (x > y); } function ats2jspre_gte_string_string(x, y) { return (x >= y); } // function ats2jspre_eq_string_string(x, y) { return (x === y); } function ats2jspre_neq_string_string(x, y) { return (x !== y); } // /* ****** ****** */ // function ats2jspre_compare_string_string(x, y) { if (x < y) return -1; else if (x > y) return 1; else return 0; } // /* ****** ****** */ function ats2jspre_string_charAt(str, i) { return str.charAt(i) ; } function ats2jspre_string_charCodeAt(str, i) { return str.charCodeAt(i) ; } /* ****** ****** */ // function ats2jspre_string_fromCharCode_1 (c1) { return String.fromCharCode(c1) ; } function ats2jspre_string_fromCharCode_2 (c1,c2) { return String.fromCharCode(c1,c2) ; } function ats2jspre_string_fromCharCode_3 (c1,c2,c3) { return String.fromCharCode(c1,c2,c3) ; } function ats2jspre_string_fromCharCode_4 (c1,c2,c3,c4) { return String.fromCharCode(c1,c2,c3,c4) ; } function ats2jspre_string_fromCharCode_5 (c1,c2,c3,c4,c5) { return String.fromCharCode(c1,c2,c3,c4,c5) ; } function ats2jspre_string_fromCharCode_6 (c1,c2,c3,c4,c5,c6) { return String.fromCharCode(c1,c2,c3,c4,c5,c6) ; } // /* ****** ****** */ // function ats2jspre_strstr (str, key) { return str.indexOf(key) ; } function ats2jspre_string_indexOf_2 (str, key) { return str.indexOf(key) ; } function ats2jspre_string_indexOf_3 (str, key, start) { return str.indexOf(key, start) ; } // /* ****** ****** */ function ats2jspre_string_lastIndexOf_2 (str, key) { return str.lastIndexOf(key) ; } function ats2jspre_string_lastIndexOf_3 (str, key, start) { return str.lastIndexOf(key, start) ; } /* ****** ****** */ function ats2jspre_string_append(str1, str2) { return str1.concat(str2) ; } /* ****** ****** */ // function ats2jspre_string_concat_2(str1, str2) { return str1.concat(str2) ; } function ats2jspre_string_concat_3(str1, str2, str3) { return str1.concat(str2, str3) ; } // /* ****** ****** */ /* end of [string_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/JSLIBC/0000755000175000017500000000000013431250607023374 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/JSLIBC/JSdate_cats.js0000644000175000017500000000347613431250607026130 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [JSdate_cats.js] ****** */ /* ****** ****** */ // function ats2jspre_Date_new_0 () { return new Date(); } function ats2jspre_Date_new_1_int (msec) { return new Date(msec); } function ats2jspre_Date_new_1_string (date) { return new Date(date); } function ats2jspre_Date_new_7_all (year, mon, day, hour, min, sec, ms) { return new Date(year, mon, day, hour, min, sec, ms); } // /* ****** ****** */ // function ats2jspre_getTime (date) { return date.getTime(); } function ats2jspre_getTimezoneOffset (date) { return date.getTimezoneOffset(); } // /* ****** ****** */ // function ats2jspre_getDay(date) { return date.getDay(); } function ats2jspre_getDate(date) { return date.getDate(); } function ats2jspre_getMonth(date) { return date.getMonth(); } function ats2jspre_getFullYear(date) { return date.getFullYear(); } // function ats2jspre_getHours(date) { return date.getHours(); } function ats2jspre_getMinutes(date) { return date.getMinutes(); } function ats2jspre_getSeconds(date) { return date.getSeconds(); } function ats2jspre_getMilliseconds(date) { return date.getMilliseconds(); } // /* ****** ****** */ // function ats2jspre_getUTCDay(date) { return date.getUTCDay(); } function ats2jspre_getUTCDate(date) { return date.getUTCDate(); } function ats2jspre_getUTCMonth(date) { return date.getUTCMonth(); } function ats2jspre_getUTCFullYear(date) { return date.getUTCFullYear(); } // function ats2jspre_getUTCHours(date) { return date.getUTCHours(); } function ats2jspre_getUTCMinutes(date) { return date.getUTCMinutes(); } function ats2jspre_getUTCSeconds(date) { return date.getUTCSeconds(); } function ats2jspre_getUTCMilliseconds(date) { return date.getUTCMilliseconds(); } // /* ****** ****** */ /* end of [JSdate_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/JSLIBC/JSmath_cats.js0000644000175000017500000000336713431250607026143 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [JSmath_cats.js] ****** */ /* ****** ****** */ // var ats2jspre_JSmath_E = Math.E var ats2jspre_JSmath_PI = Math.PI var ats2jspre_JSmath_SQRT2 = Math.SQRT2 var ats2jspre_JSmath_SQRT1_2 = Math.SQRT1_2 var ats2jspre_JSmath_LN2 = Math.LN2 var ats2jspre_JSmath_LN10 = Math.LN10 var ats2jspre_JSmath_LOG2E = Math.LOG2E var ats2jspre_JSmath_LOG10E = Math.LOG10E // /* ****** ****** */ // function ats2jspre_JSmath_abs(x) { return Math.abs(x); } // function ats2jspre_JSmath_max(x, y) { return Math.max(x, y); } // function ats2jspre_JSmath_min(x, y) { return Math.min(x, y); } // /* ****** ****** */ // function ats2jspre_JSmath_sqrt(x) { return Math.sqrt(x); } // /* ****** ****** */ // function ats2jspre_JSmath_exp(x) { return Math.exp(x); } // function ats2jspre_JSmath_pow(x, y) { return Math.pow(x, y); } // function ats2jspre_JSmath_log(x) { return Math.log(x); } // /* ****** ****** */ // function ats2jspre_JSmath_ceil(x) { return Math.ceil(x); } function ats2jspre_JSmath_floor(x) { return Math.floor(x); } function ats2jspre_JSmath_round(x) { return Math.round(x); } // /* ****** ****** */ // function ats2jspre_JSmath_sin(x) { return Math.sin(x); } function ats2jspre_JSmath_cos(x) { return Math.cos(x); } function ats2jspre_JSmath_tan(x) { return Math.tan(x); } // /* ****** ****** */ // function ats2jspre_JSmath_asin(x) { return Math.asin(x); } function ats2jspre_JSmath_acos(x) { return Math.acos(x); } function ats2jspre_JSmath_atan(x) { return Math.atan(x); } function ats2jspre_JSmath_atan2(y, x) { return Math.atan2(y, x); } // /* ****** ****** */ // function ats2jspre_JSmath_random() { return Math.random(); } // /* ****** ****** */ /* end of [JSmath_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/JSLIBC/JSmisc_cats.js0000644000175000017500000000231313431250607026133 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [JSmisc_cats.js] ****** */ /* ****** ****** */ function ats2jspre_eval(code) { return eval(code); } /* ****** ****** */ function ats2jspre_Number(obj) { return Number(obj); } function ats2jspre_String(obj) { return String(obj); } /* ****** ****** */ function ats2jspre_isFinite_int(x) { return isFinite(x); } function ats2jspre_isFinite_double(x) { return isFinite(x); } /* ****** ****** */ function ats2jspre_isNaN_int(x) { return isNaN(x); } function ats2jspre_isNaN_double(x) { return isNaN(x); } /* ****** ****** */ function ats2jspre_parseInt_1(rep) { return parseInt(rep); } function ats2jspre_parseInt_2(rep, base) { return parseInt(rep, base); } /* ****** ****** */ function ats2jspre_parseFloat(rep) { return parseFloat(rep); } /* ****** ****** */ function ats2jspre_encodeURI(uri) { return encodeURI(uri); } function ats2jspre_decodeURI(uri) { return decodeURI(uri); } /* ****** ****** */ function ats2jspre_encodeURIComponent(uri) { return encodeURIComponent(uri); } function ats2jspre_decodeURIComponent(uri) { return decodeURIComponent(uri); } /* ****** ****** */ /* end of [JSmisc_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/float_cats.js0000644000175000017500000000545113431250607025110 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [float_cats.js] ****** */ /* ****** ****** */ // function ats2jspre_int2double(x) { return x; } function ats2jspre_double_of_int(x) { return x; } // function ats2jspre_double2int(x) { return (x >= 0 ? Math.floor(x) : Math.ceil(x)); } function ats2jspre_int_of_double(x) { return (x >= 0 ? Math.floor(x) : Math.ceil(x)); } // /* ****** ****** */ function ats2jspre_neg_double(x) { return ( -x ); } /* ****** ****** */ function ats2jspre_abs_double(x) { return Math.abs(x); } /* ****** ****** */ // function ats2jspre_add_int_double(x, y) { return (x + y); } function ats2jspre_add_double_int(x, y) { return (x + y); } // function ats2jspre_sub_int_double(x, y) { return (x - y); } function ats2jspre_sub_double_int(x, y) { return (x - y); } // function ats2jspre_mul_int_double(x, y) { return (x * y); } function ats2jspre_mul_double_int(x, y) { return (x * y); } // function ats2jspre_div_int_double(x, y) { return (x / y); } function ats2jspre_div_double_int(x, y) { return (x / y); } // /* ****** ****** */ function ats2jspre_pow_double_int1(x, y) { var res = 1; while(y >= 2) { if (y%2 > 0) res *= x; x = x * x; y = Math.floor(y/2); } return (y > 0) ? (x * res) : res; } /* ****** ****** */ function ats2jspre_add_double_double(x, y) { return (x + y); } function ats2jspre_sub_double_double(x, y) { return (x - y); } function ats2jspre_mul_double_double(x, y) { return (x * y); } function ats2jspre_div_double_double(x, y) { return (x / y); } /* ****** ****** */ // function ats2jspre_lt_int_double(x, y) { return (x < y); } function ats2jspre_lt_double_int(x, y) { return (x < y); } // function ats2jspre_lte_int_double(x, y) { return (x <= y); } function ats2jspre_lte_double_int(x, y) { return (x <= y); } // function ats2jspre_gt_int_double(x, y) { return (x > y); } function ats2jspre_gt_double_int(x, y) { return (x > y); } // function ats2jspre_gte_int_double(x, y) { return (x >= y); } function ats2jspre_gte_double_int(x, y) { return (x >= y); } // /* ****** ****** */ function ats2jspre_lt_double_double(x, y) { return (x < y); } function ats2jspre_lte_double_double(x, y) { return (x <= y); } function ats2jspre_gt_double_double(x, y) { return (x > y); } function ats2jspre_gte_double_double(x, y) { return (x >= y); } function ats2jspre_eq_double_double(x, y) { return (x === y); } function ats2jspre_neq_double_double(x, y) { return (x !== y); } /* ****** ****** */ function ats2jspre_compare_double_double(x, y) { if (x < y) return -1; else if (x > y) return 1; else return 0; } /* ****** ****** */ // function ats2jspre_max_double_double(x, y) { return (x >= y) ? x : y ; } function ats2jspre_min_double_double(x, y) { return (x <= y) ? x : y ; } // /* ****** ****** */ /* end of [float_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/HTML/0000755000175000017500000000000013431250607023172 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/HTML/canvas-2d/0000755000175000017500000000000013431250607024750 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/HTML/canvas-2d/canvas2d_cats.js0000644000175000017500000001216313431250607030024 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [canvas2d_cats.js] ****** */ /* ****** ****** */ function ats2js_HTML5_canvas_getById (id) { var canvas = document.getElementById(id); if(!canvas) { throw "ats2js_HTML5_canvas_getById: canvas is not found"; } return canvas; } /* ****** ****** */ function ats2js_HTML5_canvas2d_getById (id) { var canvas = document.getElementById(id); if(!canvas) { throw "ats2js_HTML5_canvas_getById: canvas is not found"; } if(!canvas.getContext) { throw "ats2js_HTML5_canvas2d_getById: canvas-2d is not supported"; } return canvas.getContext("2d"); } /* ****** ****** */ function ats2js_HTML5_canvas2d_beginPath (ctx) { ctx.beginPath(); return; } function ats2js_HTML5_canvas2d_closePath (ctx) { ctx.closePath(); return; } /* ****** ****** */ function ats2js_HTML5_canvas2d_moveTo (ctx, x, y) { ctx.moveTo(x, y); return; } function ats2js_HTML5_canvas2d_lineTo (ctx, x, y) { ctx.lineTo(x, y); return; } /* ****** ****** */ // function ats2js_HTML5_canvas2d_translate (ctx, x, y) { ctx.translate(x, y); return; } // function ats2js_HTML5_canvas2d_scale (ctx, sx, sy) { ctx.scale(sx, sy); return; } // function ats2js_HTML5_canvas2d_rotate (ctx, rangle) { ctx.rotate(rangle); return; } // /* ****** ****** */ function ats2js_HTML5_canvas2d_rect (ctx, xul, yul, width, height) { ctx.rect(xul, yul, width, height); return; } /* end of [ats2js_HTML5_canvas2d_rect] */ function ats2js_HTML5_canvas2d_arc (ctx, xc, yc, rad, angle_beg, angle_end, CCW) { ctx.arc(xc, yc, rad, angle_beg, angle_end, CCW); return; } /* end of [ats2js_HTML5_canvas2d_arc] */ /* ****** ****** */ function ats2js_HTML5_canvas2d_clearRect (ctx, xul, yul, width, height) { ctx.clearRect(xul, yul, width, height); return; } /* end of [ats2js_HTML5_canvas2d_clearRect] */ /* ****** ****** */ // function ats2js_HTML5_canvas2d_fill(ctx) { ctx.fill(); return; } function ats2js_HTML5_canvas2d_stroke(ctx) { ctx.stroke(); return; } // /* ****** ****** */ // function ats2js_HTML5_canvas2d_fillRect (ctx, xul, yul, width, height) { ctx.fillRect(xul, yul, width, height); return; } /* end of [ats2js_HTML5_canvas2d_fillRect] */ // function ats2js_HTML5_canvas2d_strokeRect (ctx, xul, yul, width, height) { ctx.strokeRect(xul, yul, width, height); return; } /* end of [ats2js_HTML5_canvas2d_strokeRect] */ // /* ****** ****** */ // function ats2js_HTML5_canvas2d_fillText (ctx, text, xstart, ystart) { ctx.fillText(text, xstart, ystart); return; } function ats2js_HTML5_canvas2d_fillText2 (ctx, text, xstart, ystart, maxWidth) { ctx.fillText2(text, xstart, ystart, maxWidth); return; } // /* ****** ****** */ function ats2js_HTML5_canvas2d_save(ctx) { ctx.save(); return; } function ats2js_HTML5_canvas2d_restore(ctx) { ctx.restore(); return; } /* ****** ****** */ // function ats2js_HTML5_canvas2d_get_lineWidth (ctx) { return ctx.lineWidth; } function ats2js_HTML5_canvas2d_set_lineWidth_int (ctx, lineWidth) { ctx.lineWidth = lineWidth; return; } function ats2js_HTML5_canvas2d_set_lineWidth_double (ctx, lineWidth) { ctx.lineWidth = lineWidth; return; } // /* ****** ****** */ function ats2js_HTML5_canvas2d_set_font_string (ctx, font) { ctx.font = font; return; } function ats2js_HTML5_canvas2d_set_textAlign_string (ctx, textAlign) { ctx.textAlign = textAlign; return; } function ats2js_HTML5_canvas2d_set_textBaseline_string (ctx, textBaseline) { ctx.textBaseline = textBaseline; return; } /* ****** ****** */ function ats2js_HTML5_canvas2d_set_fillStyle_string (ctx, fillStyle) { ctx.fillStyle = fillStyle; return; } function ats2js_HTML5_canvas2d_set_strokeStyle_string (ctx, strokeStyle) { ctx.strokeStyle = strokeStyle; return; } /* ****** ****** */ function ats2js_HTML5_canvas2d_set_shadowColor_string (ctx, shadowColor) { ctx.shadowColor = shadowColor; return; } /* ****** ****** */ function ats2js_HTML5_canvas2d_set_shadowBlur_int (ctx, shadowBlur) { ctx.shadowBlur = shadowBlur; return; } function ats2js_HTML5_canvas2d_set_shadowBlur_string (ctx, shadowBlur) { ctx.shadowBlur = shadowBlur; return; } /* ****** ****** */ // function ats2js_HTML5_canvas2d_set_shadowOffsetX_int (ctx, X) { ctx.shadowOffsetX = X; return; } function ats2js_HTML5_canvas2d_set_shadowOffsetX_double (ctx, X) { ctx.shadowOffsetX = X; return; } // function ats2js_HTML5_canvas2d_set_shadowOffsetY_int (ctx, Y) { ctx.shadowOffsetY = Y; return; } function ats2js_HTML5_canvas2d_set_shadowOffsetY_double (ctx, Y) { ctx.shadowOffsetY = Y; return; } // /* ****** ****** */ function ats2js_HTML5_canvas2d_createLinearGradient (ctx, x0, y0, x1, y1) { return ctx.createLinearGradient(x0, y0, x1, y1); } /* ****** ****** */ // function ats2js_HTML5_canvas2d_gradient_addColorStop (grad, stop, color) { grad.addColorStop(stop, color); return; } // /* ****** ****** */ // function ats2js_HTML5_canvas2d_set_fillStyle_gradient (ctx, gradient) { ctx.fillStyle = gradient; return; } function ats2js_HTML5_canvas2d_set_strokeStyle_gradient (ctx, gradient) { ctx.strokeStyle = gradient; return; } // /* ****** ****** */ /* end of [canvas2d_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/gvalue_cats.js0000644000175000017500000000130113431250607025254 0ustar brandonbrandon/* ****** * * HX-2015-12: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [gvalue_cats.js] ****** */ /* ****** ****** */ // function ats2jspre_gvhashtbl_make_nil() { return {}; } // /* ****** ****** */ // function ats2jspre_gvhashtbl_get_atkey(tbl, k0) { var res = tbl[k0]; return (res !== undefined ? res : ats2jspre_gvalue_nil()); } // /* ****** ****** */ // function ats2jspre_gvhashtbl_set_atkey(tbl, k0, x0) { tbl[k0] = x0; return; } // /* ****** ****** */ // function ats2jspre_gvhashtbl_exch_atkey(tbl, k0, x0) { var res = tbl[k0]; tbl[k0] = x0; return (res !== undefined ? res : ats2jspre_gvalue_nil()); } // /* ****** ****** */ /* end of [gvalue_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/JSarray_cats.js0000644000175000017500000000370013431250607025351 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [JSarray_cats.js] ****** */ /* ****** ****** */ function ats2jspre_JSarray_nil() { return []; } function ats2jspre_JSarray_sing(x) { return [x]; } function ats2jspre_JSarray_pair(x1, x2) { return [x1, x2]; } /* ****** ****** */ function ats2jspre_JSarray_copy_arrayref(A, n) { // var A2 = new Array(n); for (var i = 0; i < n; i += 1) A2[i] = A[i]; return A2; // } // end of [ats2jspre_JSarray_copy_arrayref] /* ****** ****** */ // function ats2jspre_JSarray_get_at (A, i) { return A[i]; } function ats2jspre_JSarray_set_at (A, i, x0) { A[i] = x0; return; } // function ats2jspre_JSarray_exch_at (A, i, x0) { var x1 = A[i]; A[i] = x0; return x1; } // /* ****** ****** */ // function ats2jspre_JSarray_length(A) { return A.length; } // /* ****** ****** */ function ats2jspre_JSarray_pop(A) { return A.pop(); } function ats2jspre_JSarray_push(A, x) { return A.push(x); } /* ****** ****** */ function ats2jspre_JSarray_shift(A) { return A.shift(); } function ats2jspre_JSarray_unshift(A, x) { return A.unshift(x); } /* ****** ****** */ function ats2jspre_JSarray_reverse(A) { return A.reverse(); } /* ****** ****** */ function ats2jspre_JSarray_copy(A) { return A.slice(0); } /* ****** ****** */ function ats2jspre_JSarray_concat(A1, A2) { return A1.concat(A2); } /* ****** ****** */ // function ats2jspre_JSarray_insert_at (A, i, x) { A.splice(i, 0, x); return; } // function ats2jspre_JSarray_takeout_at (A, i) { var res = A.splice(i, 1); return res[0]; } // function ats2jspre_JSarray_remove_at(A, i) { A.splice(i, 1); return; } // /* ****** ****** */ // function ats2jspre_JSarray_join(A) { return A.join(""); } function ats2jspre_JSarray_join_sep(A, sep) { return A.join(sep); } // /* ****** ****** */ // function ats2jspre_JSarray_sort_2(A, cmp) { A.sort(ats2jspre_cloref2fun2(cmp)); return; } // /* ****** ****** */ /* end of [JSarray_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/bool_cats.js0000644000175000017500000000337013431250607024734 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [bool_cats.js] ****** */ /* ****** ****** */ // function ats2jspre_bool2int0(x) { return ( x ? 1 : 0 ); } function ats2jspre_bool2int1(x) { return ( x ? 1 : 0 ); } // /* ****** ****** */ // function ats2jspre_int2bool0(x) { return ( x !== 0 ? true : false ) ; } function ats2jspre_int2bool1(x) { return ( x !== 0 ? true : false ) ; } // /* ****** ****** */ // function ats2jspre_neg_bool0(x) { return ( x ? false : true ); } function ats2jspre_neg_bool1(x) { return ( x ? false : true ); } // /* ****** ****** */ function ats2jspre_add_bool0_bool0(x, y) { return (x || y); } function ats2jspre_add_bool0_bool1(x, y) { return (x || y); } function ats2jspre_add_bool1_bool0(x, y) { return (x || y); } function ats2jspre_add_bool1_bool1(x, y) { return (x || y); } /* ****** ****** */ function ats2jspre_mul_bool0_bool0(x, y) { return (x && y); } function ats2jspre_mul_bool0_bool1(x, y) { return (x && y); } function ats2jspre_mul_bool1_bool0(x, y) { return (x && y); } function ats2jspre_mul_bool1_bool1(x, y) { return (x && y); } /* ****** ****** */ // function ats2jspre_eq_bool0_bool0(x, y) { return (x === y); } function ats2jspre_neq_bool0_bool0(x, y) { return (x !== y); } // function ats2jspre_eq_bool1_bool1(x, y) { return (x === y); } function ats2jspre_neq_bool1_bool1(x, y) { return (x !== y); } // /* ****** ****** */ // function ats2jspre_int2bool0(x) { return (x !== 0 ? true : false) ; } function ats2jspre_int2bool1(x) { return (x !== 0 ? true : false) ; } // /* ****** ****** */ // function ats2jspre_bool2int0(x) { return (x ? 1 : 0); } function ats2jspre_bool2int1(x) { return (x ? 1 : 0); } // /* ****** ****** */ /* end of [bool_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/basics_cats.js0000644000175000017500000001014113431250607025237 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [basics_cats.js] ****** */ /* ****** ****** */ var the_atsptr_null = 0; /* ****** ****** */ function ATSCKiseqz(x) { return (x === 0); } function ATSCKisneqz(x) { return (x !== 0); } /* ****** ****** */ function ATSCKptrisnull(xs) { return (xs === null); } function ATSCKptriscons(xs) { return (xs !== null); } /* ****** ****** */ function ATSCKpat_int(tmp, given) { return (tmp === given); } function ATSCKpat_bool(tmp, given) { return (tmp === given); } function ATSCKpat_char(tmp, given) { return (tmp === given); } function ATSCKpat_float(tmp, given) { return (tmp === given); } function ATSCKpat_string(tmp, given) { return (tmp === given); } /* ****** ****** */ function ATSCKpat_con0 (con, tag) { return (con === tag); } function ATSCKpat_con1 (con, tag) { return (con[0] === tag); } /* ****** ****** */ // function ATSINScaseof_fail(errmsg) { throw new Error("ATSINScaseof_fail:"+errmsg); return; } // function ATSINSdeadcode_fail() { throw new Error("ATSINSdeadcode_fail"); return; } // /* ****** ****** */ function ATSPMVempty() { return; } /* ****** ****** */ // function ATSPMVlazyval(thunk) { return [0, thunk]; } // /* ****** ****** */ function ATSPMVlazyval_eval(lazyval) { // var flag, mythunk; // flag = lazyval[0]; // if(flag===0) { lazyval[0] = 1; mythunk = lazyval[1]; lazyval[1] = mythunk[0](mythunk); } else { lazyval[0] = flag + 1; } // end of [if] // return (lazyval[1]); // } // end of [ATSPMVlazyval_eval] /* ****** ****** */ // function ATSPMVllazyval(thunk){ return thunk; } // /* ****** ****** */ // function ATSPMVllazyval_eval(llazyval) { return llazyval[0](llazyval, true); } function atspre_lazy_vt_free(llazyval) { return llazyval[0](llazyval, false); } // /* ****** ****** */ function ats2jspre_alert(msg) { alert(msg); return; } /* ****** ****** */ function ats2jspre_confirm(msg) { return confirm(msg); } /* ****** ****** */ // function ats2jspre_prompt_none (msg) { return prompt(msg); } // function ats2jspre_prompt_some (msg, dflt) { return prompt(msg, dflt); } // /* ****** ****** */ function ats2jspre_typeof(obj) { return typeof(obj); } /* ****** ****** */ // function ats2jspre_tostring(obj) { return String(obj); } function ats2jspre_toString(obj) { return String(obj); } // /* ****** ****** */ function ats2jspre_console_log(obj) { return console.log(obj); } /* ****** ****** */ function ats2jspre_lazy2cloref(lazyval) { return lazyval[1]; } /* ****** ****** */ // function ats2jspre_ListSubscriptExn_throw (/*void*/) { throw new Error("ListSubscriptionExn"); } function ats2jspre_ArraySubscriptExn_throw (/*void*/) { throw new Error("ArraySubscriptionExn"); } function ats2jspre_StreamSubscriptExn_throw (/*void*/) { throw new Error("StreamSubscriptionExn"); } // /* ****** ****** */ // function ats2jspre_assert_bool0(tfv) { if (!tfv) throw new Error("Assert"); return; } function ats2jspre_assert_bool1(tfv) { if (!tfv) throw new Error("Assert"); return; } // /* ****** ****** */ // function ats2jspre_assert_errmsg_bool0 (tfv, errmsg) { if (!tfv) throw new Error(errmsg); return; } function ats2jspre_assert_errmsg_bool1 (tfv, errmsg) { if (!tfv) throw new Error(errmsg); return; } // /* ****** ****** */ // /* // // HX-2015-10-25: // Commenting out // implementation in basics.dats // */ function ats2jspre_cloref0_app(cf) { return cf[0](cf); } function ats2jspre_cloref1_app(cf, x) { return cf[0](cf, x); } function ats2jspre_cloref2_app(cf, x1, x2) { return cf[0](cf, x1, x2); } function ats2jspre_cloref3_app(cf, x1, x2, x3) { return cf[0](cf, x1, x2, x3); } // /* ****** ****** */ // function ats2jspre_cloref2fun0(cf) { return function(){return ats2jspre_cloref0_app(cf);}; } function ats2jspre_cloref2fun1(cf) { return function(x){return ats2jspre_cloref1_app(cf,x);}; } function ats2jspre_cloref2fun2(cf) { return function(x1,x2){return ats2jspre_cloref2_app(cf,x1,x2);}; } function ats2jspre_cloref2fun3(cf) { return function(x1,x2,x3){return ats2jspre_cloref2_app(cf,x1,x2,x3);}; } // /* ****** ****** */ /* end of [basics_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/PRINT/0000755000175000017500000000000013431250607023322 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/PRINT/print_store_cats.js0000644000175000017500000000220413431250607027240 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [print_store_cats.js] ****** */ /* ****** ****** */ // var ats2jspre_the_print_store = [] ; // /* ****** ****** */ function ats2jspre_the_print_store_join() { return ats2jspre_the_print_store.join(""); } /* ****** ****** */ function ats2jspre_the_print_store_clear() { ats2jspre_the_print_store.length = 0; return; } /* ****** ****** */ function ats2jspre_print_int(x) { ats2jspre_the_print_store.push(String(x)); return; } /* ****** ****** */ function ats2jspre_print_uint(x) { ats2jspre_the_print_store.push(String(x)); return; } /* ****** ****** */ function ats2jspre_print_bool(x) { ats2jspre_the_print_store.push(String(x)); return; } /* ****** ****** */ function ats2jspre_print_double(x) { ats2jspre_the_print_store.push(String(x)); return; } /* ****** ****** */ function ats2jspre_print_string(x) { ats2jspre_the_print_store.push(x); return; } /* ****** ****** */ function ats2jspre_print_newline() { ats2jspre_the_print_store.push("\n"); return; } /* ****** ****** */ /* end of [print_store_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/integer_cats.js0000644000175000017500000001144413431250607025437 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [integer_cats.js] ****** */ /* ****** ****** */ // // HX: for signed integers // /* ****** ****** */ function ats2jspre_neg_int0(x) { return ( -x ); } function ats2jspre_neg_int1(x) { return ( -x ); } /* ****** ****** */ function ats2jspre_abs_int0(x) { return Math.abs(x); } /* ****** ****** */ function ats2jspre_succ_int0(x) { return (x + 1); } function ats2jspre_pred_int0(x) { return (x - 1); } /* ****** ****** */ function ats2jspre_half_int0(x) { return (x >= 0) ? Math.floor(x/2) : Math.ceil(x/2); } /* ****** ****** */ function ats2jspre_succ_int1(x) { return (x + 1); } function ats2jspre_pred_int1(x) { return (x - 1); } /* ****** ****** */ function ats2jspre_half_int1(x) { return ats2jspre_half_int0(x); } /* ****** ****** */ function ats2jspre_add_int0_int0(x, y) { return (x + y); } function ats2jspre_sub_int0_int0(x, y) { return (x - y); } function ats2jspre_mul_int0_int0(x, y) { return (x * y); } function ats2jspre_div_int0_int0(x, y) { var q = x / y; return (q >= 0 ? Math.floor(q) : Math.ceil(q)); } function ats2jspre_mod_int0_int0(x, y) { return (x % y); } // /* ****** ****** */ function ats2jspre_add_int1_int1(x, y) { return (x + y); } function ats2jspre_sub_int1_int1(x, y) { return (x - y); } function ats2jspre_mul_int1_int1(x, y) { return (x * y); } function ats2jspre_div_int1_int1(x, y) { return ats2jspre_div_int0_int0(x, y); } // function ats2jspre_mod_int1_int1(x, y) { return (x % y); } function ats2jspre_nmod_int1_int1(x, y) { return (x % y); } // /* ****** ****** */ function ats2jspre_pow_int0_int1(x, y) { var res = 1; while(y >= 2) { if (y%2 > 0) res *= x; x = x * x; y = Math.floor(y/2); } return (y > 0) ? (x * res) : res; } /* ****** ****** */ function ats2jspre_asl_int0_int1(x, y) { return (x << y); } function ats2jspre_asr_int0_int1(x, y) { return (x >> y); } /* ****** ****** */ function ats2jspre_lnot_int0(x) { return (~x); } function ats2jspre_lor_int0_int0(x, y) { return (x | y); } function ats2jspre_lxor_int0_int0(x, y) { return (x ^ y); } function ats2jspre_land_int0_int0(x, y) { return (x & y); } /* ****** ****** */ function ats2jspre_lt_int0_int0(x, y) { return (x < y); } function ats2jspre_lte_int0_int0(x, y) { return (x <= y); } function ats2jspre_gt_int0_int0(x, y) { return (x > y); } function ats2jspre_gte_int0_int0(x, y) { return (x >= y); } function ats2jspre_eq_int0_int0(x, y) { return (x === y); } function ats2jspre_neq_int0_int0(x, y) { return (x !== y); } /* ****** ****** */ function ats2jspre_compare_int0_int0(x, y) { if (x < y) return -1; else if (x > y) return 1; else return 0; } /* ****** ****** */ function ats2jspre_lt_int1_int1(x, y) { return (x < y); } function ats2jspre_lte_int1_int1(x, y) { return (x <= y); } function ats2jspre_gt_int1_int1(x, y) { return (x > y); } function ats2jspre_gte_int1_int1(x, y) { return (x >= y); } function ats2jspre_eq_int1_int1(x, y) { return (x === y); } function ats2jspre_neq_int1_int1(x, y) { return (x !== y); } /* ****** ****** */ // function ats2jspre_max_int0_int0(x, y) { return (x >= y) ? x : y ; } function ats2jspre_min_int0_int0(x, y) { return (x <= y) ? x : y ; } // function ats2jspre_max_int1_int1(x, y) { return (x >= y) ? x : y ; } function ats2jspre_min_int1_int1(x, y) { return (x <= y) ? x : y ; } // /* ****** ****** */ // // HX: for unsigned integers // /* ****** ****** */ function ats2jspre_succ_uint0(x) { return (x + 1); } function ats2jspre_pred_uint0(x) { return (x - 1); } /* ****** ****** */ function ats2jspre_add_uint0_uint0(x, y) { return (x + y); } function ats2jspre_sub_uint0_uint0(x, y) { return (x - y); } function ats2jspre_mul_uint0_uint0(x, y) { return (x * y); } function ats2jspre_div_uint0_uint0(x, y) { return Math.floor(x/y); } function ats2jspre_mod_uint0_uint0(x, y) { return (x % y); } /* ****** ****** */ function ats2jspre_lsl_uint0_int1(x, y) { return (x << y); } function ats2jspre_lsr_uint0_int1(x, y) { return (x >>> y); } /* ****** ****** */ function ats2jspre_lnot_uint0(x) { return (~x); } function ats2jspre_lor_uint0_uint0(x, y) { return (x | y); } function ats2jspre_lxor_uint0_uint0(x, y) { return (x ^ y); } function ats2jspre_land_uint0_uint0(x, y) { return (x & y); } /* ****** ****** */ function ats2jspre_lt_uint0_uint0(x, y) { return (x < y); } function ats2jspre_lte_uint0_uint0(x, y) { return (x <= y); } function ats2jspre_gt_uint0_uint0(x, y) { return (x > y); } function ats2jspre_gte_uint0_uint0(x, y) { return (x >= y); } function ats2jspre_eq_uint0_uint0(x, y) { return (x === y); } function ats2jspre_neq_uint0_uint0(x, y) { return (x !== y); } /* ****** ****** */ function ats2jspre_compare_uint0_uint0(x, y) { if (x < y) return -1; else if (x > y) return 1; else return 0; } /* ****** ****** */ /* end of [integer_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/Node.js/0000755000175000017500000000000013431250607023726 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/Node.js/process_cats.js0000644000175000017500000000244713431250607026763 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** ****** */ // var ats2nodejs_process_stdin = process.stdin var ats2nodejs_process_stdout = process.stdout var ats2nodejs_process_stderr = process.stderr // /* ****** ****** */ // var ats2nodejs_process_argv = process.argv var ats2nodejs_process_execArgv = process.execArgv var ats2nodejs_process_execPath = process.execPath // var ats2nodejs_process_env = process.env // var ats2nodejs_process_pid = process.pid // var ats2nodejs_process_version = process.version var ats2nodejs_process_versions = process.versions // /* ****** ****** */ // function ats2nodejs_process_cwd() { return process.cwd() ; } // function ats2nodejs_process_chdir(dir) { process.chdir(dir) ; return ; } // /* ****** ****** */ // function ats2nodejs_process_getgid() { return process.getgid() ; } // function ats2nodejs_process_setgid(id) { process.setgid(id) ; return ; } // /* ****** ****** */ // function ats2nodejs_process_getuid() { return process.getuid() ; } // function ats2nodejs_process_setuid(id) { process.setuid(id) ; return ; } // /* ****** ****** */ function ats2nodejs_process_uptime() { return process.uptime() ; } function ats2nodejs_process_hrtime() { return process.hrtime() ; } /* ****** ****** */ /* end of [process_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/Node.js/basics_cats.js0000644000175000017500000000115313431250607026542 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ** This part is based on Node.js */ /* ****** ****** */ // function ats2nodejs_assert_bool0(tfv) { if (!tfv) process.exit(1); return; } function ats2nodejs_assert_bool1(tfv) { if (!tfv) process.exit(1); return; } // function ats2nodejs_assert_errmsg_bool0(tfv, errmsg) { if (!tfv) { process.stderr.write(errmsg); process.exit(1); }; return; } function ats2nodejs_assert_errmsg_bool1(tfv, errmsg) { if (!tfv) { process.stderr.write(errmsg); process.exit(1); }; return; } // /* ****** ****** */ /* end of [basics_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/Node.js/fprint_cats.js0000644000175000017500000000214013431250607026575 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ** This part is based on Node.js */ /* ****** ****** */ // function ats2jspre_print_newline() { process.stdout.write('\n'); return; } function ats2jspre_prerr_newline() { process.stderr.write('\n'); return; } // function ats2nodejs_fprint_newline(out) { out.write('\n'); return; } // /* ****** ****** */ function ats2jspre_print_obj(x) { process.stdout.write(x.toString()); return; } function ats2jspre_prerr_obj(x) { process.stderr.write(x.toString()); return; } /* ****** ****** */ // function ats2jspre_print_int(x) { process.stdout.write(x.toString()); return; } function ats2jspre_prerr_int(x) { process.stderr.write(x.toString()); return; } function ats2nodejs_fprint_int(out, x) { out.write(x.toString()); return; } // /* ****** ****** */ // function ats2jspre_print_string(x) { process.stdout.write(x); return; } function ats2jspre_prerr_string(x) { process.stderr.write(x); return; } function ats2nodejs_fprint_string(out, x) { out.write(x); return; } // /* ****** ****** */ /* end of [fprint_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/Bacon.js/0000755000175000017500000000000013431250607024063 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/Bacon.js/baconjs_cats.js0000644000175000017500000001423413431250607027056 0ustar brandonbrandon/* ****** * * HX-2015-04: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [baconjs_cats.js] ****** */ /* ****** ****** */ // function ats2js_bacon_Bacon_more() { return Bacon.more; } function ats2js_bacon_Bacon_noMore() { return Bacon.noMore; } // /* ****** ****** */ // function ats2js_bacon_Bacon_once(x) { return Bacon.once(x); } function ats2js_bacon_Bacon_never() { return Bacon.never(); } // function ats2js_bacon_Bacon_later(delay, x) { return Bacon.later(delay, x); } // /* ****** ****** */ // function ats2js_bacon_Bacon_interval (int, x) { return Bacon.interval(int, x); } // function ats2js_bacon_Bacon_repeatedly (int, xs) { return Bacon.repeatedly(int, xs); } // function ats2js_bacon_Bacon_sequentially (int, xs) { return Bacon.sequentially(int, xs); } // /* ****** ****** */ // function ats2js_bacon_Bacon_repeat(fopr) { return Bacon.repeat(function(i){return ats2jspre_cloref1_app(fopr, i);}); } // ats2js_bacon_Bacon_repeat // /* ****** ****** */ function ats2js_bacon_Bacon_fromPoll(ms, fopr) { return Bacon.fromPoll(ms, function(){return ats2jspre_cloref0_app(fopr);}); } // ats2js_bacon_Bacon_fromPoll /* ****** ****** */ // function ats2js_bacon_EStream_map(xs, f) { return ats2js_bacon_Observable_map(xs, f); } function ats2js_bacon_Property_map(xs, f) { return ats2js_bacon_Observable_map(xs, f); } function ats2js_bacon_Observable_map(xs, f) { return xs.map( function(x){return ats2jspre_cloref1_app(f, x);} ); // end of [return] } // /* ****** ****** */ // function ats2js_bacon_EStream_filter(xs, f) { return ats2js_bacon_Observable_filter(xs, f); } function ats2js_bacon_Property_filter(xs, f) { return ats2js_bacon_Observable_filter(xs, f); } function ats2js_bacon_Observable_filter(xs, f) { return xs.filter( function(x){return ats2jspre_cloref1_app(f, x);} ); // end of [return] } // /* ****** ****** */ // function ats2js_bacon_EStream_map_property(xs, ys) { return xs.map(ys); } function ats2js_bacon_EStream_filter_property(xs, bs) { return xs.filter(bs); } // /* ****** ****** */ function ats2js_bacon_EStream_scan(xs, ini, f) { return xs.scan( ini, function(y, x){return ats2jspre_cloref2_app(f, y, x);} ); // end of [return] } /* ****** ****** */ // function ats2js_bacon_EStream_merge2 ( xs1, xs2 ) { return Bacon.mergeAll(xs1, xs2); } function ats2js_bacon_EStream_merge3 ( xs1, xs2, xs3 ) { return Bacon.mergeAll(xs1, xs2, xs3); } function ats2js_bacon_EStream_merge4 ( xs1, xs2, xs3, xs4 ) { return Bacon.mergeAll(xs1, xs2, xs3, xs4); } function ats2js_bacon_EStream_merge5 ( xs1, xs2, xs3, xs4, xs5 ) { return Bacon.mergeAll(xs1, xs2, xs3, xs4, xs5); } function ats2js_bacon_EStream_merge6 ( xs1, xs2, xs3, xs4, xs5, xs6 ) { return Bacon.mergeAll(xs1, xs2, xs3, xs4, xs5, xs6); } // /* ****** ****** */ // function ats2js_bacon_EStream_flatMap(xs, f) { return ats2js_bacon_Observable_flatMap(xs, f); } function ats2js_bacon_Property_flatMap(xs, f) { return ats2js_bacon_Observable_flatMap(xs, f); } function ats2js_bacon_Observable_flatMap(xs, f) { return xs.flatMap( function(x){return ats2jspre_cloref1_app(f, x);} ); // end of [return] } // /* ****** ****** */ function ats2js_bacon_Bacon_combineWith2(xs1, xs2, f) { var theCombined = Bacon.combineWith( function(x1,x2){ return ats2jspre_cloref2_app(f, x1, x2); }, xs1, xs2 ) // end of [var] return theCombined; } function ats2js_bacon_Bacon_combineWith3(xs1, xs2, xs3, f) { var theCombined = Bacon.combineWith( function(x1,x2,x3){ return ats2jspre_cloref3_app(f, x1, x2, x3); }, xs1, xs2, xs3 ) // end of [var] return theCombined; } /* ****** ****** */ // function ats2js_bacon_EStream_toProperty(xs) { return xs.toProperty(); } function ats2js_bacon_EStream_toProperty_init(xs, x0) { return xs.toProperty(x0); } // /* ****** ****** */ // function ats2js_bacon_Property_changes(xs) { return xs.changes(); } function ats2js_bacon_Property_toEventStream(xs) { return xs.toEventStream(); } // /* ****** ****** */ function ats2js_bacon_EStream_onValue(xs, f) { return ats2js_bacon_Observable_onValue(xs, f); } function ats2js_bacon_Property_onValue(xs, f) { return ats2js_bacon_Observable_onValue(xs, f); } function ats2js_bacon_Observable_onValue(xs, f) { return xs.onValue(function(x){return ats2jspre_cloref1_app(f, x);}); } /* ****** ****** */ function ats2js_bacon_EStream_subscribe(xs, f) { return ats2js_bacon_Observable_subscribe(xs, f); } function ats2js_bacon_Property_subscribe(xs, f) { return ats2js_bacon_Observable_subscribe(xs, f); } function ats2js_bacon_Observable_subscribe(xs, f) { return xs.subscribe(function(x){return ats2jspre_cloref1_app(f, x);}); } /* ****** ****** */ // function ats2js_bacon_Property_startWith (xs, x0) { return xs.startWith(x0); } // /* ****** ****** */ // function ats2js_bacon_EStream_doAction(xs, f0) { return ats2js_bacon_Observable_doAction(xs, f0); } function ats2js_bacon_Property_doAction(xs, f0) { return ats2js_bacon_Observable_doAction(xs, f0); } function ats2js_bacon_Observable_doAction(xs, f0) { return xs.doAction( function(x){ats2jspre_cloref1_app(f0, x); return;} ); // end of [return] } // /* ****** ****** */ // function ats2js_bacon_Property_sampledBy_estream (xs, ys) { return xs.sampledBy(ys); } function ats2js_bacon_Property_sampledBy_estream_cfun(xs, ys, f) { return xs.sampledBy( ys,function(x,y){return ats2jspre_cloref2_app(f,x,y);} ); // end of [return] } // /* ****** ****** */ // function ats2js_bacon_Property_sampledBy_property (xs, ys) { return xs.sampledBy(ys); } function ats2js_bacon_Property_sampledBy_property_cfun(xs, ys, f0) { return xs.sampledBy( ys,function(x,y){return ats2jspre_cloref2_app(f0,x,y);} ); // end of [return] } // /* ****** ****** */ // function ats2js_bacon_EStream_zip_estream_cfun(xs, ys, f0) { return xs.zip( ys,function(x,y){return ats2jspre_cloref2_app(f0,x,y);} ); /* end of [return] */ } // /* ****** ****** */ function ats2js_bacon_Bacon_new_bus() { return new Bacon.Bus(); } /* ****** ****** */ // function ats2js_bacon_EStream_bus_push(bus, x0) { return bus.push(x0); } function ats2js_bacon_EStream_bus_plug(bus, xs) { return bus.plug(xs); } // /* ****** ****** */ /* end of [baconjs_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/HTTP/0000755000175000017500000000000013431250607023205 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/HTTP/Ajax/0000755000175000017500000000000013431250607024070 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/CATS/HTTP/Ajax/Ajax_cats.js0000644000175000017500000000312113431250607026320 0ustar brandonbrandon/* ****** * * HX-2014-08: * for JavaScript code * translated from ATS * ****** */ /* ****** * beg of [Ajax_cats.js] ****** */ /* ****** ****** */ function ats2js_Ajax_XMLHttpRequest_new ( // argumentless ) { var res = new XMLHttpRequest(); return res; } /* ****** ****** */ // function ats2js_Ajax_XMLHttpRequest_open (xmlhttp, method, URL, async) { xmlhttp.open(method, URL, async); return; } // /* ****** ****** */ // function ats2js_Ajax_XMLHttpRequest_send_0 (xmlhttp) { xmlhttp.send(); return; } function ats2js_Ajax_XMLHttpRequest_send_1 (xmlhttp, msg) { xmlhttp.send(msg); return; } // /* ****** ****** */ // function ats2js_Ajax_XMLHttpRequest_setRequestHeader (xmlhttp, header, value) { xmlhttp.setRequestHeader(header, value); return; } // /* ****** ****** */ // function ats2js_Ajax_XMLHttpRequest_get_responseXML (xmlhttp) { return xmlhttp.responseXML; } function ats2js_Ajax_XMLHttpRequest_get_responseText (xmlhttp) { return xmlhttp.responseText; } // /* ****** ****** */ // function ats2js_Ajax_XMLHttpRequest_get_status (xmlhttp) { return xmlhttp.status; } // function ats2js_Ajax_XMLHttpRequest_get_readyState (xmlhttp) { return xmlhttp.readyState; } // function ats2js_Ajax_XMLHttpRequest_set_onreadystatechange (xmlhttp, f_action) { xmlhttp.onreadystatechange = function() { f_action[0](f_action); }; } // /* ****** ****** */ // // HX-2014-09: Convenience functions // /* ****** ****** */ // function ats2js_Ajax_XMLHttpRequest_is_ready_okay (xmlhttp) { return xmlhttp.readyState===4 && xmlhttp.status===200; } // /* ****** ****** */ /* end of [Ajax_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/0000755000175000017500000000000013431250607022446 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/gvalue.sats0000644000175000017500000000235613431250607024633 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/gvalue.sats" // (* ****** ****** *) // datatype gvalue = // | GVnil of () // | GVint of (int) // | GVbool of (bool) // | GVfloat of (double) // | GVstring of (string) // | GVobject of (JSobj) // | GVlist of gvlist | GVarray of gvarray | GVhashtbl of gvhashtbl // (* ****** ****** *) // fun gvalue_nil(): gvalue = "mac#%" // fun gvalue_int(int): gvalue = "mac#%" // fun gvalue_bool(bool): gvalue = "mac#%" // fun gvalue_float(double): gvalue = "mac#%" // fun gvalue_string(string): gvalue = "mac#%" // (* ****** ****** *) // fun gvhashtbl_get_atkey (tbl: gvhashtbl, k: string): gvalue = "mac#%" fun gvhashtbl_set_atkey (tbl: gvhashtbl, k: string, x: gvalue): void = "mac#%" fun gvhashtbl_exch_atkey (tbl: gvhashtbl, k: string, x: gvalue): gvalue = "mac#%" // (* ****** ****** *) // overload [] with gvhashtbl_get_atkey overload [] with gvhashtbl_set_atkey // (* ****** ****** *) (* end of [gvalue.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/intrange.sats0000644000175000017500000000062013431250607025147 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/intrange.sats" // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/float.sats0000644000175000017500000000745713431250607024464 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // (* prefix for external names *) // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // fun double2int(x: double):<> int = "mac#%" fun int_of_double(x: double):<> int = "mac#%" // fun int2double(x: int):<> double = "mac#%" fun double_of_int(x: int):<> double = "mac#%" // (* ****** ****** *) // fun abs_double : double -<> double = "mac#%" overload abs with abs_double of 100 // (* ****** ****** *) // fun neg_double : double -<> double = "mac#%" overload ~ with neg_double of 100 overload neg with neg_double of 100 // (* ****** ****** *) // fun succ_double : double -<> double = "mac#%" fun pred_double : double -<> double = "mac#%" // overload succ with succ_double of 100 overload pred with pred_double of 100 // (* ****** ****** *) // fun add_int_double : (int, double) -<> double = "mac#%" fun add_double_int : (double, int) -<> double = "mac#%" // fun sub_int_double : (int, double) -<> double = "mac#%" fun sub_double_int : (double, int) -<> double = "mac#%" // fun mul_int_double : (int, double) -<> double = "mac#%" fun mul_double_int : (double, int) -<> double = "mac#%" // fun div_int_double : (int, double) -<> double = "mac#%" fun div_double_int : (double, int) -<> double = "mac#%" // (* ****** ****** *) overload + with add_int_double of 100 overload + with add_double_int of 100 overload - with sub_int_double of 100 overload - with sub_double_int of 100 overload * with mul_int_double of 100 overload * with mul_double_int of 100 overload / with div_int_double of 100 overload / with div_double_int of 100 (* ****** ****** *) // fun pow_double_int1 : (double, intGte(0)) -<> double = "mac#%" // overload ** with pow_double_int1 of 110 // (* ****** ****** *) typedef float_aop_type = (double, double) -<> double (* ****** ****** *) // fun add_double_double: float_aop_type = "mac#%" fun sub_double_double : float_aop_type = "mac#%" fun mul_double_double : float_aop_type = "mac#%" fun div_double_double : float_aop_type = "mac#%" // (* ****** ****** *) // overload + with add_double_double of 100 overload - with sub_double_double of 100 overload * with mul_double_double of 100 overload / with div_double_double of 100 // (* ****** ****** *) // fun lt_int_double : (int, double) -<> bool = "mac#%" fun lt_double_int : (double, int) -<> bool = "mac#%" // fun lte_int_double : (int, double) -<> bool = "mac#%" fun lte_double_int : (double, int) -<> bool = "mac#%" // fun gt_int_double : (int, double) -<> bool = "mac#%" fun gt_double_int : (double, int) -<> bool = "mac#%" // fun gte_int_double : (int, double) -<> bool = "mac#%" fun gte_double_int : (double, int) -<> bool = "mac#%" // (* ****** ****** *) typedef float_cmp_type = (double, double) -<> bool (* ****** ****** *) // fun lt_double_double: float_cmp_type = "mac#%" fun lte_double_double: float_cmp_type = "mac#%" fun gt_double_double: float_cmp_type = "mac#%" fun gte_double_double: float_cmp_type = "mac#%" // fun eq_double_double: float_cmp_type = "mac#%" fun neq_double_double: float_cmp_type = "mac#%" // (* ****** ****** *) // overload < with lt_double_double of 100 overload <= with lte_double_double of 100 overload > with gt_double_double of 100 overload >= with gte_double_double of 100 overload = with eq_double_double of 100 overload != with neq_double_double of 100 overload <> with neq_double_double of 100 // (* ****** ****** *) // fun compare_double_double (x1: double, x2: double):<> Sgn = "mac#%" // overload compare with compare_double_double of 100 // (* ****** ****** *) // fun max_double_double : (double, double) -<> double = "mac#%" fun min_double_double : (double, double) -<> double = "mac#%" // overload max with max_double_double of 100 overload min with min_double_double of 100 // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/filebas.sats0000644000175000017500000000077713431250607024762 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // (* val STDIN : JSfilr = "mac#" val STDOUT : JSfilr = "mac#" val STDERR : JSfilr = "mac#" *) macdef STDIN = $extval (JSfilr, "0") macdef STDOUT = $extval (JSfilr, "1") macdef STDERR = $extval (JSfilr, "2") // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/JSLIBC/0000755000175000017500000000000013431250607023414 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/JSLIBC/JSmisc.sats0000644000175000017500000000256113431250607025504 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) #staload "./../../basics_js.sats" (* ****** ****** *) fun eval(code: string): JSobj = "mac#%" (* ****** ****** *) fun Number{a:t0p}(obj: a): double = "mac#%" fun String{a:t0p}(obj: a): string = "mac#%" (* ****** ****** *) // fun isFinite_int (int): bool = "mac#%" fun isFinite_double (double): bool = "mac#%" // symintr isFinite overload isFinite with isFinite_int overload isFinite with isFinite_double // (* ****** ****** *) // fun isNaN_int (int): bool = "mac#%" fun isNaN_double (double): bool = "mac#%" // symintr isNaN overload isNaN with isNaN_int overload isNaN with isNaN_double // (* ****** ****** *) // fun parseInt_1 (rep: string): int = "mac#%" fun parseInt_2 (rep: string, base: int): int = "mac#%" // symintr parseInt overload parseInt with parseInt_1 overload parseInt with parseInt_2 // (* ****** ****** *) // fun parseFloat(rep: string): double = "mac#%" // (* ****** ****** *) fun encodeURI(uri: string): string = "mac#%" fun decodeURI(uri: string): string = "mac#%" (* ****** ****** *) fun encodeURIComponent(uri: string): string = "mac#%" fun decodeURIComponent(uri: string): string = "mac#%" (* ****** ****** *) (* end of [JSmisc.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/JSLIBC/JSdate.sats0000644000175000017500000000334213431250607025464 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) #staload "./../../basics_js.sats" (* ****** ****** *) // fun Date_new_0 ((*void*)): JSdate = "mac#%" // fun Date_new_1_int (msec: int): JSdate = "mac#%" fun Date_new_1_string (date: string): JSdate = "mac#%" // fun Date_new_7_all ( year: int, mon: int, day: int , hour: int, min: int, sec: int, msec: int ) : JSdate = "mac#%" // (* ****** ****** *) // symintr Date_new overload Date_new with Date_new_0 overload Date_new with Date_new_1_int overload Date_new with Date_new_1_string overload Date_new with Date_new_7_all // (* ****** ****** *) fun getTime (JSdate): intGte(0) = "mac#%" fun getTimezoneOffset (JSdate): int = "mac#%" (* ****** ****** *) // fun getDay (JSdate): intBtw(0, 7) = "mac#%" fun getDate (JSdate): intBtw(1, 24) = "mac#%" fun getMonth (JSdate): intBtw(0, 12) = "mac#%" fun getFullYear (JSdate): intGte( 0 ) = "mac#%" // fun getHours (JSdate): intBtw(0, 24) = "mac#%" fun getMinutes (JSdate): intBtw(0, 60) = "mac#%" fun getSeconds (JSdate): intBtw(0, 60) = "mac#%" fun getMilliseconds (JSdate): intBtw(0, 1000) = "mac#%" // (* ****** ****** *) // fun getUTCDay (JSdate): intBtw(0, 7) = "mac#%" fun getUTCDate (JSdate): intBtw(1, 24) = "mac#%" fun getUTCMonth (JSdate): intBtw(0, 12) = "mac#%" fun getUTCFullYear (JSdate): intGte( 0 ) = "mac#%" // fun getUTCHours (JSdate): intBtw(0, 24) = "mac#%" fun getUTCMinutes (JSdate): intBtw(0, 60) = "mac#%" fun getUTCSeconds (JSdate): intBtw(0, 60) = "mac#%" fun getUTCMilliseconds (JSdate): intBtw(0, 1000) = "mac#%" // (* ****** ****** *) (* end of [JSdate.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/JSLIBC/JSmath.sats0000644000175000017500000000337413431250607025505 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) #staload "./../../basics_js.sats" (* ****** ****** *) val JSmath_E : double = "mac#%" val JSmath_PI : double = "mac#%" val JSmath_SQRT2 : double = "mac#%" val JSmath_SQRT1_2 : double = "mac#%" val JSmath_LN2 : double = "mac#%" val JSmath_LN10 : double = "mac#%" val JSmath_LOG2E : double = "mac#%" val JSmath_LOG10E : double = "mac#%" (* ****** ****** *) fun JSmath_abs : double -<> double = "mac#%" (* ****** ****** *) // fun JSmath_max : (double, double) -<> double = "mac#%" fun JSmath_min : (double, double) -<> double = "mac#%" // (* ****** ****** *) fun JSmath_sqrt : double -<> double = "mac#%" (* ****** ****** *) fun JSmath_exp : double -<> double = "mac#%" fun JSmath_pow : (double, double) -<> double = "mac#%" fun JSmath_log : double -<> double = "mac#%" (* ****** ****** *) fun JSmath_ceil : double -<> double = "mac#%" fun JSmath_floor : double -<> double = "mac#%" fun JSmath_round : double -<> double = "mac#%" (* ****** ****** *) // fun JSmath_sin : double -<> double = "mac#%" fun JSmath_cos : double -<> double = "mac#%" fun JSmath_tan : double -<> double = "mac#%" // (* ****** ****** *) // fun JSmath_asin : double -<> double = "mac#%" fun JSmath_acos : double -<> double = "mac#%" fun JSmath_atan : double -<> double = "mac#%" fun JSmath_atan2 (y: double, x: double): double = "mac#%" // (* ****** ****** *) // fun JSmath_random ((*void*)): double = "mac#%" // (* ****** ****** *) // // HX-2016-12-25 // fun{} JSmath_randint {n:int|n >= 1}(int(n)): natLt(n) = "mac#%" // (* ****** ****** *) (* end of [JSmath.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/list.sats0000644000175000017500000000125413431250607024317 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/list.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list (JSfilr, List(INV(a))): void = "mac#%" // fun{} fprint_list$sep(out: JSfilr): void = "mac#%" // fun{a:t0p} fprint_list_sep (JSfilr, List(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list of 100 // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/char.sats0000644000175000017500000000072613431250607024264 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // typedef char = int // (* ****** ****** *) fun char_isalpha(c: char): bool = "mac#%" fun char_isalnum(c: char): bool = "mac#%" fun char_isdigit(c: char): bool = "mac#%" (* ****** ****** *) fun char_isspace(c: char): bool = "mac#%" (* ****** ****** *) (* end of [char.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/HTML/0000755000175000017500000000000013431250607023212 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/HTML/canvas-2d/0000755000175000017500000000000013431250607024770 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/HTML/canvas-2d/canvas2d.sats0000644000175000017500000001552513431250607027375 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** API in ATS for HTML5/canvas-2d *) (* ****** ****** *) (* ** Author: Will Blair ** Authoremail: wdblairATgmailDOTcom ** Start Time: October, 2013 *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2013 *) (* ****** ****** *) (* #define ATS_STALOADFLAG 0 *) // // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_HTML5_" // (* ****** ****** *) // abstype canvas_type typedef canvas = canvas_type // abstype canvas2d_type typedef canvas2d = canvas2d_type // (* ****** ****** *) // fun canvas_getById (id: string): canvas = "mac#%" fun canvas2d_getById (id: string): canvas2d = "mac#%" // (* ****** ****** *) fun canvas2d_clearRect ( canvas2d , x: int, y: int, wd: int, ht: int ) : void = "mac#%" // endfun overload .clearRect with canvas2d_clearRect (* ****** ****** *) // fun canvas2d_beginPath (canvas2d): void = "mac#%" fun canvas2d_closePath (canvas2d): void = "mac#%" // overload .beginPath with canvas2d_beginPath overload .closePath with canvas2d_closePath // (* ****** ****** *) // fun canvas2d_moveTo (canvas2d, x: double, y: double): void = "mac#%" // fun canvas2d_lineTo (canvas2d, x: double, y: double): void = "mac#%" // overload .moveTo with canvas2d_moveTo overload .lineTo with canvas2d_lineTo // (* ****** ****** *) fun canvas2d_rect ( canvas2d , xul: double, yul: double , width: double, height: double ) : void = "mac#%" // endfun overload .rect with canvas2d_rect (* ****** ****** *) fun canvas2d_arc ( canvas2d , xc: double, yc: double, rad: double , angle_beg: double, angle_end: double, ccw: bool ) : void = "mac#%" // endfun overload .arc with canvas2d_arc (* ****** ****** *) // fun canvas2d_fill (canvas2d): void = "mac#%" fun canvas2d_stroke (canvas2d): void = "mac#%" // overload .fill with canvas2d_fill overload .stroke with canvas2d_stroke // (* ****** ****** *) // fun canvas2d_fillRect ( canvas2d , xul: double, yul: double, width: double, height: double ) : void = "mac#%" fun canvas2d_strokeRect ( canvas2d , xul: double, yul: double, width: double, height: double ) : void = "mac#%" // overload .fillRect with canvas2d_fillRect overload .strokeRect with canvas2d_strokeRect // (* ****** ****** *) // fun canvas2d_fillText (canvas2d, text: string, x: double, y: double): void = "mac#%" fun canvas2d_fillText2 (canvas2d, text: string, x: double, y: double, maxWidth: double): void = "mac#%" // overload .fillText with canvas2d_fillText overload .fillText2 with canvas2d_fillText2 // (* ****** ****** *) // fun canvas2d_scale (canvas2d, sx: double, sy: double): void = "mac#%" fun canvas2d_rotate (canvas2d, angle: double(*radian*)): void = "mac#%" fun canvas2d_translate (can: canvas2d, x: double, y: double): void = "mac#%" // overload .scale with canvas2d_scale overload .rotate with canvas2d_rotate overload .translate with canvas2d_translate // (* ****** ****** *) // absview canvas2d_save_v // fun canvas2d_save (canvas: canvas2d): (canvas2d_save_v | void) = "mac#%" fun canvas2d_restore (pf: canvas2d_save_v | canvas: canvas2d): void = "mac#%" // overload .save with canvas2d_save overload .restore with canvas2d_restore // (* ****** ****** *) // fun canvas2d_get_lineWidth (canvas2d): double = "mac#%" fun canvas2d_set_lineWidth_int (canvas2d, int): void = "mac#%" fun canvas2d_set_lineWidth_double (canvas2d, double): void = "mac#%" // overload .lineWidth with canvas2d_get_lineWidth overload .lineWidth with canvas2d_set_lineWidth_int overload .lineWidth with canvas2d_set_lineWidth_double // (* ****** ****** *) // fun canvas2d_set_font_string (canvas2d, font: string): void = "mac#%" fun canvas2d_set_textAlign_string (canvas2d, value: string): void = "mac#%" fun canvas2d_set_textBaseline_string (canvas2d, value: string): void = "mac#%" // overload .font with canvas2d_set_font_string overload .textAlign with canvas2d_set_textAlign_string overload .textBaseline with canvas2d_set_textBaseline_string // (* ****** ****** *) // fun canvas2d_set_fillStyle_string (canvas2d, style: string): void = "mac#%" fun canvas2d_set_strokeStyle_string (canvas2d, style: string): void = "mac#%" // overload .fillStyle with canvas2d_set_fillStyle_string overload .strokeStyle with canvas2d_set_strokeStyle_string // (* ****** ****** *) // fun canvas2d_set_shadowColor_string (canvas2d, color: string): void = "mac#%" // overload .shadowColor with canvas2d_set_shadowColor_string // (* ****** ****** *) // fun canvas2d_set_shadowBlur_int (canvas2d, blur: int): void = "mac#%" fun canvas2d_set_shadowBlur_double (canvas2d, blur: double): void = "mac#%" // overload .shadowBlur with canvas2d_set_shadowBlur_int overload .shadowBlur with canvas2d_set_shadowBlur_double // (* ****** ****** *) // fun canvas2d_set_shadowOffsetX_int (canvas2d, int): void = "mac#%" fun canvas2d_set_shadowOffsetX_double (canvas2d, double): void = "mac#%" // overload .shadowOffsetX with canvas2d_set_shadowOffsetX_int overload .shadowOffsetX with canvas2d_set_shadowOffsetX_double // (* ****** ****** *) // fun canvas2d_set_shadowOffsetY_int (canvas2d, int): void = "mac#%" fun canvas2d_set_shadowOffsetY_double (canvas2d, double): void = "mac#%" // overload .shadowOffsetY with canvas2d_set_shadowOffsetY_int overload .shadowOffsetY with canvas2d_set_shadowOffsetY_double // (* ****** ****** *) // abstype gradient_type typedef gradient = gradient_type // (* ****** ****** *) // fun canvas2d_createLinearGradient ( canvas2d , x0: double, y0: double, x1: double, y1: double ) : gradient = "mac#%" // end-of-fun // overload .createLinearGradient with canvas2d_createLinearGradient // (* ****** ****** *) // fun canvas2d_gradient_addColorStop (gradient, stop: double, color: string): void = "mac#%" // overload .addColorStop with canvas2d_gradient_addColorStop // (* ****** ****** *) // fun canvas2d_set_fillStyle_gradient (canvas2d, style: gradient): void = "mac#%" fun canvas2d_set_strokeStyle_gradient (canvas2d, style: gradient): void = "mac#%" // overload .fillStyle_gradient with canvas2d_set_fillStyle_gradient overload .strokeStyle_gradient with canvas2d_set_strokeStyle_gradient // (* ****** ****** *) (* end of [canvas2d.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/HTML/WebGL/0000755000175000017500000000000013431250607024152 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/HTML/WebGL/WebGL.sats0000644000175000017500000000267613431250607026021 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** API in ATS for HTML5/WebGL *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: November, 2014 *) (* ****** ****** *) #define ATS_STALOADFLAG 0 // no staloading at run-time #define ATS_EXTERN_PREFIX "ats2js_HTML5_" // prefix for external names (* ****** ****** *) // abstype canvas_type typedef canvas = canvas_type // abstype canvasgl_type typedef canvasgl = canvasgl_type // (* ****** ****** *) // fun canvas_getById(id: string): canvas = "mac#%" fun canvasgl_getById(id: string): canvasgl = "mac#%" // (* ****** ****** *) (* end of [WebGL.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/list_vt.sats0000644000175000017500000000062013431250607025024 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/list_vt.sats" // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/arrayref.sats0000644000175000017500000000077513431250607025166 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/arrayref.sats" // (* ****** ****** *) // fun arrayref_uninitized {a:vt0p}{n:nat} (asz: int(n)): arrayref(a?, n) = "mac#%" // (* ****** ****** *) (* end of [arrayref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/matrixref.sats0000644000175000017500000000106513431250607025345 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/matrixref.sats" // (* ****** ****** *) // fun matrixref_uninitized {a:vt0p} {m,n:nat} ( nrow: int(m) , ncol: int(n) ) : matrixref(a?, m, n) = "mac#%" // (* ****** ****** *) (* end of [matrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/string.sats0000644000175000017500000001405113431250607024651 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // typedef char = int typedef strchr = string(1) // (* ****** ****** *) // fun strchr_code(strchr): char = "mac#%" // (* ****** ****** *) // fun string_get_at {n:int} {i:nat | i < n} ( str: string(n), i0: int(i) ) : strchr = "mac#%" // end-of-fun // overload [] with string_get_at of 100 // (* ****** ****** *) // fun string_fset_at {n:int} {i:nat | i < n} ( str: string(n), i0: int(i), c0: strchr ) : string(n) = "mac#%" // end-of-fun // (* ****** ****** *) // fun string_substring_beg_end {n:int} {i,j:int | 0 <= i; i <= j; j <= n} ( str: string(n), i0: int(i), j0: int(j) ) : string(j-i) = "mac#%" // end-of-fun // // fun string_substring_beg_len {n:int} {i,len:nat | i + len <= n} ( str: string(n), i0: int(i), len: int(len) ) : string(len) = "mac#%" // end-of-fun // (* ****** ****** *) // fun string_length {n:int}(string(n)): int(n) = "mac#%" // overload length with string_length of 100 // (* ****** ****** *) // fun string0_is_empty (str: string): bool = "mac#%" fun string0_isnot_empty (str: string): bool = "mac#%" // fun string1_is_empty {n:int}(string(n)): bool(n==0) = "mac#%" fun string1_isnot_empty {n:int}(string(n)): bool(n > 0) = "mac#%" // overload iseqz with string0_is_empty of 100 overload iseqz with string1_is_empty of 100 // overload isneqz with string0_isnot_empty of 110 overload isneqz with string1_isnot_empty of 110 // (* ****** ****** *) // fun lt_string_string : (string, string) -> bool = "mac#%" fun lte_string_string : (string, string) -> bool = "mac#%" fun gt_string_string : (string, string) -> bool = "mac#%" fun gte_string_string : (string, string) -> bool = "mac#%" // fun eq_string_string : (string, string) -> bool = "mac#%" fun neq_string_string : (string, string) -> bool = "mac#%" // (* ****** ****** *) // overload < with lt_string_string of 100 overload <= with lte_string_string of 100 overload > with gt_string_string of 100 overload >= with gte_string_string of 100 // overload = with eq_string_string of 100 overload != with neq_string_string of 100 overload <> with neq_string_string of 100 // (* ****** ****** *) // fun compare_string_string: (string, string) -> intBtwe(~1, 1) = "mac#%" // overload compare with compare_string_string of 100 // (* ****** ****** *) // fun string_charAt{n:int} (str: string(n), i: natLt(n)): strchr = "mac#%" fun string_charCodeAt{n:int} (str: string(n), index: natLt(n)): int = "mac#%" // overload .charAt with string_charCodeAt of 100 overload .charCodeAt with string_charCodeAt of 100 // (* ****** ****** *) // fun string_fromCharCode_1 (c1: int): string(1) = "mac#%" fun string_fromCharCode_2 (c1: int, c2: int): string(2) = "mac#%" fun string_fromCharCode_3 (c1: int, c2: int, c3: int): string(3) = "mac#%" fun string_fromCharCode_4 (c1: int, c2: int, c3: int, c4: int): string(4) = "mac#%" fun string_fromCharCode_5 (c1: int, c2: int, c3: int, c4: int, c5: int): string(5) = "mac#%" fun string_fromCharCode_6 (c1: int, c2: int, c3: int, c4: int, c5: int, c6: int): string(6) = "mac#%" // symintr string_fromCharCode overload string_fromCharCode with string_fromCharCode_1 overload string_fromCharCode with string_fromCharCode_2 overload string_fromCharCode with string_fromCharCode_3 overload string_fromCharCode with string_fromCharCode_4 overload string_fromCharCode with string_fromCharCode_5 overload string_fromCharCode with string_fromCharCode_6 // (* ****** ****** *) // fun strstr // libc-function (str: string, key: string): int = "mac#%" fun string_indexOf_2 (str: string, key: string): int = "mac#%" fun string_indexOf_3 (str: string, key: string, start: int): int = "mac#%" // symintr string_indexOf // overload string_indexOf with string_indexOf_2 of 100 overload string_indexOf with string_indexOf_3 of 100 // overload .indexOf with string_indexOf of 100 // (* ****** ****** *) // fun string_lastIndexOf_2 (str: string, key: string): int = "mac#%" fun string_lastIndexOf_3 (str: string, key: string, start: int): int = "mac#%" // symintr string_lastIndexOf // overload string_lastIndexOf with string_lastIndexOf_2 of 100 overload string_lastIndexOf with string_lastIndexOf_3 of 100 // overload .lastIndexOf with string_lastIndexOf of 100 // (* ****** ****** *) // fun string_append ( str1: string, str2: string ) : string = "mac#%" // overload + with string_append of 100 // (* ****** ****** *) // fun string_concat_2 ( str1: string, str2: string ) : string = "mac#%" // endfun fun string_concat_3 ( str1: string, str2: string, str3: string ) : string = "mac#%" // end-of-fun // symintr string_concat // overload string_concat with string_concat_2 of 100 overload string_concat with string_concat_3 of 100 // (* ****** ****** *) // fun string_exists_cloref ( string, pred: cfun(strchr, bool) ) : bool = "mac#%" // string_exists_cloref fun string_exists_method ( string)(pred: cfun(strchr, bool) ) : bool = "mac#%" // string_exists_method // overload .exists with string_exists_method // (* ****** ****** *) // fun string_forall_cloref ( string, pred: cfun(strchr, bool) ) : bool = "mac#%" // string_forall_cloref fun string_forall_method ( string)(pred: cfun(strchr, bool) ) : bool = "mac#%" // string_forall_method // overload .forall with string_forall_method // (* ****** ****** *) // fun string_foreach_cloref ( string, fwork: cfun(strchr, void) ) : void = "mac#%" // string_foreach_cloref fun string_foreach_method ( string)(fwork: cfun(strchr, void) ) : void = "mac#%" // string_foreach_method // overload .foreach with string_foreach_method // (* ****** ****** *) // fun string_tabulate_cloref {n:nat} ( n0: int(n), fopr: cfun(natLt(n), charNZ) ) : string(n) = "mac#%" // string_tabulate_cloref // (* ****** ****** *) // fun streamize_string_code (str0: string): stream_vt(int) = "mac#%" // (* ****** ****** *) // fun streamize_string_line (inp: string): stream_vt(string) = "mac#%" // (* ****** ****** *) (* end of [string.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/stream_vt.sats0000644000175000017500000000064713431250607025355 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/stream_vt.sats" // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/integer.sats0000644000175000017500000001622613431250607025006 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // // HX: for signed integers // (* ****** ****** *) // fun abs_int0 : int - int = "mac#%" // overload abs with abs_int0 of 100 // (* ****** ****** *) // fun neg_int0 : int - int = "mac#%" // fun neg_int1 : {i:int} int(i) - int(~i) = "mac#%" // overload ~ with neg_int0 of 100 overload ~ with neg_int1 of 110 overload neg with neg_int0 of 100 overload neg with neg_int1 of 110 // (* ****** ****** *) // fun succ_int0 : int - int = "mac#%" fun pred_int0 : int - int = "mac#%" // fun succ_int1 : {i:int} int(i) - int(i+1) = "mac#%" fun pred_int1 : {i:int} int(i) - int(i-1) = "mac#%" // overload succ with succ_int0 of 100 overload pred with pred_int0 of 100 // overload succ with succ_int1 of 110 overload pred with pred_int1 of 110 // (* ****** ****** *) // fun half_int0 : int - int = "mac#%" fun half_int1 : {i:int} int(i) - int(i/2) = "mac#%" // overload half with half_int0 of 100 overload half with half_int1 of 110 // (* ****** ****** *) // fun add_int0_int0: (int, int) - int = "mac#%" fun sub_int0_int0 : (int, int) - int = "mac#%" fun mul_int0_int0 : (int, int) - int = "mac#%" fun div_int0_int0 : (int, int) - int = "mac#%" fun mod_int0_int0 : (int, int) - int = "mac#%" // fun add_int1_int1 : {i,j:int} (int(i), int(j)) - int(i+j) = "mac#%" fun sub_int1_int1 : {i,j:int} (int(i), int(j)) - int(i-j) = "mac#%" fun mul_int1_int1 : {i,j:int} (int(i), int(j)) - int(i*j) = "mac#%" fun div_int1_int1 : {i,j:int} (int(i), int(j)) - int(i/j) = "mac#%" // (* ****** ****** *) // fun nmod_int1_int1 { i,j:int | i >= 0; j > 0 } (i: int(i), j: int(j)): int(nmod(i, j)) = "mac#%" // (* ****** ****** *) // overload + with add_int0_int0 of 100 overload - with sub_int0_int0 of 100 overload * with mul_int0_int0 of 100 overload / with div_int0_int0 of 100 overload % with mod_int0_int0 of 100 overload mod with mod_int0_int0 of 100 // overload + with add_int1_int1 of 120 overload - with sub_int1_int1 of 120 overload * with mul_int1_int1 of 120 overload / with div_int1_int1 of 120 // (* ****** ****** *) // fun pow_int0_int1 : (int, intGte(0)) - int = "mac#%" // overload ** with pow_int0_int1 of 110 // (* ****** ****** *) // fun asl_int0_int1 : (int, intGte(0)) - int = "mac#%" fun asr_int0_int1 : (int, intGte(0)) - int = "mac#%" // (* ****** ****** *) // overload << with asl_int0_int1 of 110 overload >> with asr_int0_int1 of 110 // (* ****** ****** *) fun lnot_int0 : (int) - int = "mac#%" fun lor_int0_int0 : (int, int) - int = "mac#%" fun lxor_int0_int0 : (int, int) - int = "mac#%" fun land_int0_int0 : (int, int) - int = "mac#%" (* ****** ****** *) // overload lnot with lnot_int0 of 100 overload lor with lor_int0_int0 of 100 overload lxor with lxor_int0_int0 of 100 overload land with land_int0_int0 of 100 // (* ****** ****** *) // fun lt_int0_int0: (int, int) - bool = "mac#%" fun lte_int0_int0: (int, int) - bool = "mac#%" fun gt_int0_int0: (int, int) - bool = "mac#%" fun gte_int0_int0: (int, int) - bool = "mac#%" // fun eq_int0_int0: (int, int) - bool = "mac#%" fun neq_int0_int0: (int, int) - bool = "mac#%" // fun compare_int0_int0: (int, int) - int = "mac#%" // fun lt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i < j) = "mac#%" fun lte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i <= j) = "mac#%" fun gt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i > j) = "mac#%" fun gte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i >= j) = "mac#%" // fun eq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i == j) = "mac#%" fun neq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i != j) = "mac#%" // (* ****** ****** *) // overload < with lt_int0_int0 of 100 overload <= with lte_int0_int0 of 100 overload > with gt_int0_int0 of 100 overload >= with gte_int0_int0 of 100 overload = with eq_int0_int0 of 100 overload != with neq_int0_int0 of 100 overload <> with neq_int0_int0 of 100 // overload compare with compare_int0_int0 of 100 // (* ****** ****** *) // overload < with lt_int1_int1 of 120 overload <= with lte_int1_int1 of 120 overload > with gt_int1_int1 of 120 overload >= with gte_int1_int1 of 120 overload = with eq_int1_int1 of 120 overload != with neq_int1_int1 of 120 overload <> with neq_int1_int1 of 120 // (* ****** ****** *) // fun max_int0_int0: (int, int) - int = "mac#%" fun min_int0_int0: (int, int) - int = "mac#%" // fun max_int1_int1 : {i,j:int} (int(i), int(j)) - int(max(i,j)) = "mac#%" fun min_int1_int1 : {i,j:int} (int(i), int(j)) - int(min(i,j)) = "mac#%" // (* ****** ****** *) // overload max with max_int0_int0 of 100 overload min with min_int0_int0 of 100 // overload max with max_int1_int1 of 120 overload min with min_int1_int1 of 120 // (* ****** ****** *) // // HX: for unsigned integers // (* ****** ****** *) // fun succ_uint0 : uint - uint = "mac#%" fun pred_uint0 : uint - uint = "mac#%" // fun add_uint0_uint0 : (uint, uint) - uint = "mac#%" fun sub_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mul_uint0_uint0 : (uint, uint) - uint = "mac#%" fun div_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mod_uint0_uint0 : (uint, uint) - uint = "mac#%" // (* ****** ****** *) // overload succ with succ_uint0 overload pred with pred_uint0 // overload + with add_uint0_uint0 of 100 overload - with sub_uint0_uint0 of 100 overload * with mul_uint0_uint0 of 100 overload / with div_uint0_uint0 of 100 overload % with mod_uint0_uint0 of 100 overload mod with mod_uint0_uint0 of 100 // (* ****** ****** *) // fun lsl_uint0_int1 : (uint, intGte(0)) - int = "mac#%" fun lsr_uint0_int1 : (uint, intGte(0)) - int = "mac#%" // (* ****** ****** *) // overload << with lsl_uint0_int1 of 110 overload >> with lsr_uint0_int1 of 110 // (* ****** ****** *) // fun lnot_uint0 : (uint) - uint = "mac#%" fun lor_uint0_uint0 : (uint, uint) - uint = "mac#%" fun lxor_uint0_uint0 : (uint, uint) - uint = "mac#%" fun land_uint0_uint0 : (uint, uint) - uint = "mac#%" // (* ****** ****** *) // overload lnot with lnot_uint0 of 100 overload lor with lor_uint0_uint0 of 100 overload lxor with lxor_uint0_uint0 of 100 overload land with land_uint0_uint0 of 100 // (* ****** ****** *) // fun lt_uint0_uint0: (uint, uint) - bool = "mac#%" fun lte_uint0_uint0: (uint, uint) - bool = "mac#%" fun gt_uint0_uint0: (uint, uint) - bool = "mac#%" fun gte_uint0_uint0: (uint, uint) - bool = "mac#%" // fun eq_uint0_uint0: (uint, uint) - bool = "mac#%" fun neq_uint0_uint0: (uint, uint) - bool = "mac#%" // fun compare_uint0_uint0: (uint, uint) - int = "mac#%" // (* ****** ****** *) // overload < with lt_uint0_uint0 of 100 overload <= with lte_uint0_uint0 of 100 overload > with gt_uint0_uint0 of 100 overload >= with gte_uint0_uint0 of 100 overload = with eq_uint0_uint0 of 100 overload != with neq_uint0_uint0 of 100 overload <> with neq_uint0_uint0 of 100 // overload compare with compare_uint0_uint0 of 100 // (* ****** ****** *) (* end of [integer.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/XMLDOC/0000755000175000017500000000000013431250607023434 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/XMLDOC/XMLDOC.sats0000644000175000017500000000244313431250607025321 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: September, 2014 *) (* ****** ****** *) // (* #define ATS_STALOADFLAG 0 *) // // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_XMLDOC_" // (* ****** ****** *) // abstype Xmldoc_type // (* ****** ****** *) // typedef Xmldoc = Xmldoc_type typedef Xmldoclst = List0(Xmldoc) typedef Xmldocopt = Option(Xmldoc) // (* ****** ****** *) (* end of [XMLDOC.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/bool.sats0000644000175000017500000000465613431250607024310 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // fun bool2int0 (b: bool):<> natLt(2) = "mac#%" fun bool2int1 {b:bool} (b: bool(b)):<> int(bool2int(b)) = "mac#%" // symintr bool2int overload bool2int with bool2int0 of 100 overload bool2int with bool2int1 of 110 // (* ****** ****** *) // fun int2bool0 (i: int):<> bool = "mac#%" fun int2bool1 {i:int}(i: int(i)):<> bool(i != 0) = "mac#%" // symintr int2bool overload int2bool with int2bool0 of 100 overload int2bool with int2bool1 of 110 // (* ****** ****** *) // fun neg_bool0 : bool -> bool = "mac#%" fun neg_bool1 : {b:bool} bool(b) -> bool(~b) = "mac#%" // overload ~ with neg_bool0 of 100 overload ~ with neg_bool1 of 110 // overload not with neg_bool0 of 100 overload not with neg_bool1 of 110 // (* ****** ****** *) fun add_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload + with add_bool0_bool0 of 100 fun add_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 || b2) = "mac#%" overload + with add_bool0_bool1 of 110 fun add_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 || b2) = "mac#%" overload + with add_bool1_bool0 of 110 fun add_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 || b2) = "mac#%" overload + with add_bool1_bool1 of 120 (* ****** ****** *) fun mul_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload * with mul_bool0_bool0 of 100 fun mul_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool0_bool1 of 110 fun mul_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool0 of 110 fun mul_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool1 of 120 (* ****** ****** *) // fun eq_bool0_bool0 : (bool, bool) -> bool = "mac#%" fun neq_bool0_bool0 : (bool, bool) -> bool = "mac#%" // fun eq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 == b2) = "mac#%" fun neq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 != b2) = "mac#%" // overload = with eq_bool0_bool0 of 100 overload = with eq_bool1_bool1 of 120 // overload != with neq_bool0_bool0 of 100 overload != with neq_bool1_bool1 of 120 // (* ****** ****** *) (* end of [bool.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/qlistref.sats0000644000175000017500000000067313431250607025201 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_PACKNAME "ATSCC2JS.qlistref" #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/qlistref.sats" // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Node.js/0000755000175000017500000000000013431250607023746 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Node.js/basics.sats0000644000175000017500000000122313431250607026104 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Node.js/basics *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2nodejs_" // (* ****** ****** *) // fun assert_errmsg_bool0 (x: bool, msg: string): void = "mac#%" fun assert_errmsg_bool1 {b:bool} (x: bool b, msg: string): [b] void = "mac#%" // overload assert_errmsg with assert_errmsg_bool0 of 120 overload assert_errmsg with assert_errmsg_bool1 of 130 // (* ****** ****** *) // macdef assertloc (x) = assert_errmsg (,(x), $mylocation) // (* ****** ****** *) (* end of [basics.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Node.js/fprint.sats0000644000175000017500000000307613431250607026152 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Node.js/fprint *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2nodejs_" // (* ****** ****** *) abstype NJSstream // readable/writable (* ****** ****** *) // typedef fprint_type ( a:t@ype ) = (NJSstream(*out*), a) - void // (* ****** ****** *) // (* fun print_int : (int) -> void = "mac#%" fun prerr_int : (int) -> void = "mac#%" *) // fun fprint_int: (NJSstream, int) -> void = "mac#%" // overload fprint with fprint_int of 100 // (* ****** ****** *) // (* fun print_bool : (bool) -> void = "mac#%" fun prerr_bool : (bool) -> void = "mac#%" *) // fun fprint_bool: (NJSstream, bool) -> void = "mac#%" // overload fprint with fprint_bool of 100 // (* ****** ****** *) // (* fun print_string (str: string): void = "mac#%" fun prerr_string (str: string): void = "mac#%" *) fun fprint_string (NJSstream, string): void = "mac#%" // overload fprint with fprint_string of 100 // (* ****** ****** *) // (* fun print_obj{a:t0p}(obj: a): void = "mac#%" fun prerr_obj{a:t0p}(obj: a): void = "mac#%" *) fun fprint_obj{a:t0p}(NJSstream, a): void = "mac#%" // (* fun println_obj{a:t0p}(obj: a): void = "mac#%" fun prerrln_obj{a:t0p}(obj: a): void = "mac#%" *) fun fprintln_obj{a:t0p}(NJSstream, a): void = "mac#%" // (* ****** ****** *) // (* fun print_newline ((*void*)): void = "mac#%" fun prerr_newline ((*void*)): void = "mac#%" *) fun fprint_newline (NJSstream): void = "mac#%" // (* ****** ****** *) (* end of [fprint.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Node.js/process.sats0000644000175000017500000000261013431250607026317 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Node.js/process *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2nodejs_" // (* ****** ****** *) // staload "./../../basics_js.sats" // staload "./basics.sats"; staload "./fprint.sats"; // (* ****** ****** *) val process_stdin : NJSstream = "mac#%" val process_stdout : NJSstream = "mac#%" val process_stderr : NJSstream = "mac#%" (* ****** ****** *) val process_argv : JSarray(string) = "mac#%" (* ****** ****** *) val process_execPath : string = "mac#%" val process_execArgv : JSarray(string) = "mac#%" (* ****** ****** *) (* val process_env : Dictionary(string) = "mac#%" *) (* ****** ****** *) val process_pid : int = "mac#%" // of the node (* ****** ****** *) val process_version : string = "mac#%" (* val process_versions : Dictionary(string) = "mac#%" *) (* ****** ****** *) fun process_cwd (): string = "mac#%" fun process_chdir (dir: string): void = "mac#%" (* ****** ****** *) fun process_getgid (): int = "mac#%" fun process_setgid (id: int): void = "mac#%" (* ****** ****** *) fun process_getuid (): int = "mac#%" fun process_setuid (id: int): void = "mac#%" (* ****** ****** *) fun process_uptime (): int = "mac#%" fun process_hrtime (): JSarray(int) = "mac#%" (* ****** ****** *) (* end of [process.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/reference.sats0000644000175000017500000000062413431250607025302 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/reference.sats" // (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Worker/0000755000175000017500000000000013431250607023717 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Worker/channel_session.sats0000644000175000017500000001251013431250607027765 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // // HX-2015-11-25: // (* ****** ****** *) (* #define ATS_STALOADFLAG 0 *) // // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_worker_" // (* ****** ****** *) // // Session Combinators // (* ****** ****** *) staload "./channel.sats" (* ****** ****** *) // abstype chanpos_session(ss:type) abstype channeg_session(ss:type) // (* ****** ****** *) // fun{ a:t@ype } chanpos1_session_send ( cfun0(a) // getting data ) : chanpos_session(chsnd(a)::chnil) fun{ a:t@ype } chanpos1_session_recv ( cfun1(a, void) // setting data ) : chanpos_session(chrcv(a)::chnil) // (* ****** ****** *) // fun{ a:t@ype } channeg1_session_recv ( cfun0(a) // getting data ) : channeg_session(chrcv(a)::chnil) fun{ a:t@ype } channeg1_session_send ( cfun1(a, void) // setting data ) : channeg_session(chsnd(a)::chnil) // (* ****** ****** *) // fun{} chanpos1_session_initize {ss:type} ( fwork: cfun0(void), ssp: chanpos_session(ss) ) : chanpos_session(ss) // fun{} channeg1_session_initize {ss:type} ( fwork: cfun0(void), ssn: channeg_session(ss) ) : channeg_session(ss) // (* ****** ****** *) // fun{} chanpos1_session_finalize {ss:type} ( ssp: chanpos_session(ss), fwork: cfun0(void) ) : chanpos_session(ss) // fun{} channeg1_session_finalize {ss:type} ( ssn: channeg_session(ss), fwork: cfun0(void) ) : channeg_session(ss) // (* ****** ****** *) // fun chanpos1_session_nil ( // argumentless ) : chanpos_session(chnil) // fun{} chanpos1_session_cons {a:type}{ss:type} ( chanpos_session(chsing(a)), chanpos_session(ss) ) : chanpos_session(a::ss) // (* ****** ****** *) // fun channeg1_session_nil ( // argumentless ) : channeg_session(chnil) // fun{} channeg1_session_cons {a:type}{ss:type} ( channeg_session(chsing(a)), channeg_session(ss) ) : channeg_session(a::ss) // (* ****** ****** *) // fun{} chanpos1_session_append {ss1,ss2:type} ( ssp1: chanpos_session(ss1) , ssp2: chanpos_session(ss2) ) : chanpos_session(ssappend(ss1, ss2)) // fun{} channeg1_session_append {ss1,ss2:type} ( ssn1: channeg_session(ss1) , ssn2: channeg_session(ss2) ) : channeg_session(ssappend(ss1, ss2)) // (* ****** ****** *) // fun{} chanpos1_session_choose_conj {ss0,ss1:type} ( ssp0: chanpos_session(ss0) , ssp1: chanpos_session(ss1) ) : chanpos_session(sschoose_conj(ss0,ss1)) // fun{} channeg1_session_choose_conj {ss0,ss1:type} ( ssn0: channeg_session(ss0) , ssn1: channeg_session(ss1) ) : channeg_session(sschoose_conj(ss0,ss1)) // (* ****** ****** *) // fun{} chanpos1_session_choose_disj {ss0,ss1:type} ( ssp0: chanpos_session(ss0) , ssp1: chanpos_session(ss1) ) : chanpos_session(sschoose_disj(ss0,ss1)) // fun{} channeg1_session_choose_disj {ss0,ss1:type} ( ssn0: channeg_session(ss0) , ssn1: channeg_session(ss1) ) : channeg_session(sschoose_disj(ss0,ss1)) // (* ****** ****** *) // fun{} chanpos1_session_option_conj {ss:type} ( ssp: chanpos_session(ss) ) : chanpos_session(ssoption_conj(ss)) // fun{} channeg1_session_option_conj {ss:type} ( ssn: channeg_session(ss) ) : channeg_session(ssoption_conj(ss)) // (* ****** ****** *) // fun{} chanpos1_session_option_disj {ss:type} ( ssp: chanpos_session(ss) ) : chanpos_session(ssoption_disj(ss)) // fun{} channeg1_session_option_disj {ss:type} ( ssp: channeg_session(ss) ) : channeg_session(ssoption_disj(ss)) // (* ****** ****** *) // fun{} chanpos1_session_repeat_conj {ss:type} ( ssp: chanpos_session(ss) ) : chanpos_session(ssrepeat_conj(ss)) // fun{} channeg1_session_repeat_conj {ss:type} ( ssn: channeg_session(ss) ) : channeg_session(ssrepeat_conj(ss)) // (* ****** ****** *) // fun{} chanpos1_session_repeat_disj {ss:type} ( ssp: chanpos_session(ss) ) : chanpos_session(ssrepeat_disj(ss)) // fun{} channeg1_session_repeat_disj {ss:type} ( ssn: channeg_session(ss) ) : channeg_session(ssrepeat_disj(ss)) // (* ****** ****** *) // // HX-2105-12-03: // [chanpos1_session_run] // should be called only once in a worker // fun{} chanpos1_session_run {ss:type} ( chanpos_session(ss) , chp: chanpos(ss), kx0: chpcont0_nil(*void*) ) : void = "mac#%" // fun{} chanpos1_session_run_close {ss:type}(chanpos_session(ss), chanpos(ss)): void = "mac#%" // (* ****** ****** *) // fun{} channeg1_session_run {ss:type} ( channeg_session(ss) , chn: channeg(ss), kx0: chncont0_nil(*void*) ) : void = "mac#%" // fun{} channeg1_session_run_close {ss:type}(channeg_session(ss), channeg(ss)): void = "mac#%" // (* ****** ****** *) (* end of [channel_session.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Worker/channel.sats0000644000175000017500000002423613431250607026232 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: October, 2015 *) (* ****** ****** *) // // HX-2015-10-25: // (* ****** ****** *) (* #define ATS_STALOADFLAG 0 *) // // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_worker_" // (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // typedef cfun0(res: vt0p) = () - res typedef cfun1(a: vt0p, res: vt0p) = (a) - res typedef cfun2(a1: vt0p, a2: vt0p, res: vt0p) = (a1, a2) - res // (* ****** ****** *) // abstype chmsg_type(a:t@ype+) // typedef chmsg(a:t0p) = chmsg_type(a) // (* ****** ****** *) // abstype chanpos() abstype channeg() // (* ****** ****** *) // typedef chpcont0() = cfun1(chanpos(), void) typedef chpcont1(a:t0p) = cfun2(chanpos(), a, void) // (* ****** ****** *) // typedef chncont0() = cfun1(channeg(), void) typedef chncont1(a:t0p) = cfun2(channeg(), a, void) // (* ****** ****** *) // fun{a:t0p} chmsg_parse(chmsg(INV(a))): (a) // (* ****** ****** *) fun chanpos0_close(chanpos()): void = "mac#%" (* ****** ****** *) // fun chanpos0_send {a:t0p} ( chanpos(), x0: a, k0: chpcont0() ) : void = "mac#%" // end-of-fun // fun chanpos0_recv {a:t0p} ( chanpos(), k0: chpcont1(chmsg(a)) ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // fun channeg0_new_file (filename: string): channeg() = "mac#%" // fun channeg0_close(channeg((*nil*))): void = "mac#%" // (* ****** ****** *) // fun channeg0_recv {a:t0p} ( channeg(), x0: a, k0: chncont0() ) : void = "mac#%" // end-of-fun // fun channeg0_send {a:t0p} ( channeg(), k0: chncont1(chmsg(a)) ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // fun {a:t0p} {b:t0p} rpc_server (chanpos(), fopr: (a) - b): void = "mac#%" // fun {a:t0p} {b:t0p} rpc_server_cont (chanpos(), fopr: (a) - b): void = "mac#%" // (* ****** ****** *) // fun {a:t0p} {b:t0p} rpc_client (channeg(), a, (b) - void): void = "mac#%" // (* ****** ****** *) // abstype chsnd(a:vt@ype) abstype chrcv(a:vt@ype) // abstype chnil abstype chcons(a:type, ss:type) // stadef :: = chcons // (* ****** ****** *) stadef chsing(x:type) = chcons(x, chnil) (* ****** ****** *) // (* abstype ssnot(ss:type) *) // (* ****** ****** *) // abstype ssconj(ss:type) abstype ssdisj(ss:type) // abstype ssdisj_nil and ssconj_nil // (* ****** ****** *) // abstype ssappend(ss1:type, ss2:type) // (* ****** ****** *) // abstype ssoption(ss:type) // typedef ssoption_conj (ss:type) = ssconj(ssoption(ss)) typedef ssoption_disj (ss:type) = ssdisj(ssoption(ss)) // (* ****** ****** *) // abstype ssrepeat(ss:type) // typedef ssrepeat_conj (ss:type) = ssconj(ssrepeat(ss)) typedef ssrepeat_disj (ss:type) = ssdisj(ssrepeat(ss)) // (* ****** ****** *) // abstype sschoose_conj(ss1:type, ss2:type) abstype sschoose_disj(ss1:type, ss2:type) // (* ****** ****** *) absvtype chanpos(ss:type) absvtype channeg(ss:type) (* ****** ****** *) // typedef chpcont0(ss:type) = cfun1(chanpos(ss), void) typedef chpcont1(ss:type, a:t0p) = cfun2(chanpos(ss), a, void) // typedef chncont0(ss:type) = cfun1(channeg(ss), void) typedef chncont1(ss:type, a:t0p) = cfun2(channeg(ss), a, void) // (* ****** ****** *) typedef chpcont0_nil = chpcont0(chnil) typedef chncont0_nil = chncont0(chnil) (* ****** ****** *) // fun chanpos1_send {a:t0p}{ss:type} ( chanpos(chsnd(a)::ss), x0: a, k0: chpcont0(ss) ) : void = "mac#%" // end-of-fun // fun chanpos1_recv {a:t0p}{ss:type} ( chanpos(chrcv(a)::ss), k0: chpcont1(ss, chmsg(a)) ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // fun channeg1_recv {a:t0p}{ss:type} ( channeg(chrcv(a)::ss), x0: a, k0: chncont0(ss) ) : void = "mac#%" // end-of-fun // fun channeg1_send {a:t0p}{ss:type} ( channeg(chsnd(a)::ss), k0: chncont1(ss, chmsg(a)) ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // vtypedef chanpos_nil = chanpos(chnil) vtypedef channeg_nil = channeg(chnil) // (* ****** ****** *) // fun chanpos1_close(chanpos_nil): void = "mac#%" fun channeg1_close(channeg_nil): void = "mac#%" // (* ****** ****** *) // (* overload channel1_send with chanpos1_send overload channel1_recv with chanpos1_recv overload channel1_send with channeg1_recv overload channel1_recv with channeg1_send overload channel1_close with chanpos1_close overload channel1_close with channeg1_close *) // (* ****** ****** *) // typedef chanpos_nullify(ss:type) = (chanpos(ss), chpcont0_nil) - void typedef channeg_nullify(ss:type) = (channeg(ss), chncont0_nil) - void // (* ****** ****** *) // fun{} chanpos1_append {ss1,ss2:type} ( chanpos(ssappend(ss1,ss2)), k0: chpcont0_nil , fserv1: chanpos_nullify(ss1), fserv2: chanpos_nullify(ss2) ) : void // end of [chanpos1_append] // fun{} channeg1_append {ss1,ss2:type} ( channeg(ssappend(ss1,ss2)), k0: chncont0_nil , fserv1: channeg_nullify(ss1), fserv2: channeg_nullify(ss2) ) : void // end of [channeg1_append] // (* ****** ****** *) // fun{} chanpos1_choose_conj {ss1,ss2:type} ( chanpos(sschoose_conj(ss1,ss2)), k0: chpcont0_nil , fserv1: chanpos_nullify(ss1), fserv2: chanpos_nullify(ss2) ) : void // end of [chanpos1_choose_conj] // fun{} channeg1_choose_conj {ss1,ss2:type} ( channeg(sschoose_conj(ss1,ss2)), k0: chncont0_nil , fserv1: channeg_nullify(ss1), fserv2: channeg_nullify(ss2) ) : void // end of [channeg1_choose_conj] // fun{} channeg1_choose_conj$choose(): natLt(2) fun{} chanpos1_choose_conj$fwork_tag(tag: int): void fun{} channeg1_choose_conj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_choose_disj {ss1,ss2:type} ( chanpos(sschoose_disj(ss1,ss2)), k0: chpcont0_nil , fserv1: chanpos_nullify(ss1), fserv2: chanpos_nullify(ss2) ) : void // end of [chanpos1_choose_disj] fun{} channeg1_choose_disj {ss1,ss2:type} ( channeg(sschoose_disj(ss1,ss2)), k0: chncont0_nil , fserv1: channeg_nullify(ss1), fserv2: channeg_nullify(ss2) ) : void // end of [channeg1_choose_disj] // fun{} chanpos1_choose_disj$choose(): natLt(2) fun{} chanpos1_choose_disj$fwork_tag(tag: int): void fun{} channeg1_choose_disj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_option_conj {ss:type} ( chanpos(ssoption_conj(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_option_conj] fun{} channeg1_option_conj {ss:type} ( channeg(ssoption_conj(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_option_conj] // fun{} channeg1_option_conj$choose(): natLt(2) fun{} chanpos1_option_conj$fwork_tag(tag: int): void fun{} channeg1_option_conj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_option_disj {ss:type} ( chanpos(ssoption_disj(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_option_disj] fun{} channeg1_option_disj {ss:type} ( channeg(ssoption_disj(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_option_disj] // fun{} chanpos1_option_disj$choose(): natLt(2) fun{} chanpos1_option_disj$fwork_tag(tag: int): void fun{} channeg1_option_disj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_repeat_conj {ss:type} ( chanpos(ssrepeat_conj(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_repeat_conj] // fun{} channeg1_repeat_conj {ss:type} ( channeg(ssrepeat_conj(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_repeat_conj] // fun{} chanpos1_repeat_conj$init(): void fun{} channeg1_repeat_conj$init(): void // fun{} channeg1_repeat_conj$choose(): natLt(2) // fun{} chanpos1_repeat_conj$fwork_tag(tag: int): void fun{} channeg1_repeat_conj$fwork_tag(tag: int): void // fun{} channeg1_repeat_conj$spawn(() - void): void // (* ****** ****** *) // fun{} chanpos1_repeat_disj {ss:type} ( chanpos(ssrepeat_disj(ss)) , k0: chpcont0_nil, fserv: chanpos_nullify(ss) ) : void // end of [chanpos1_repeat_disj] // fun{} channeg1_repeat_disj {ss:type} ( channeg(ssrepeat_disj(ss)) , k0: chncont0_nil, fserv: channeg_nullify(ss) ) : void // end of [channeg1_repeat_disj] // fun{} chanpos1_repeat_disj$init(): void fun{} channeg1_repeat_disj$init(): void // fun{} chanpos1_repeat_disj$choose(): natLt(2) // fun{} chanpos1_repeat_disj$fwork_tag(tag: int): void fun{} channeg1_repeat_disj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_choose_conj {ss1,ss2:type} ( chanpos(sschoose_conj(ss1,ss2)) , k0: chpcont0_nil, f1: chanpos_nullify(ss1), f2: chanpos_nullify(ss2) ) : void // end of [chanpos1_choose_conj] // fun{} channeg1_choose_conj {ss1,ss2:type} ( channeg(sschoose_conj(ss1,ss2)) , k0: chncont0_nil, f1: channeg_nullify(ss1), f2: channeg_nullify(ss2) ) : void // end of [channeg1_choose_cons] // fun{} channeg1_choose_conj$choose((*void*)): natLt(2) fun{} chanpos1_choose_conj$fwork_tag(tag: int): void fun{} channeg1_choose_conj$fwork_tag(tag: int): void // (* ****** ****** *) // fun{} chanpos1_choose_disj {ss1,ss2:type} ( chanpos(sschoose_disj(ss1,ss2)) , k0: chpcont0_nil, f1: chanpos_nullify(ss1), f2: chanpos_nullify(ss2) ) : void // end of [chanpos1_choose_disj] // fun{} channeg1_choose_disj {ss1,ss2:type} ( channeg(sschoose_disj(ss1,ss2)) , k0: chncont0_nil, f1: channeg_nullify(ss1), f2: channeg_nullify(ss2) ) : void // end of [channeg1_choose_cons] // fun{} chanpos1_choose_disj$choose((*void*)): natLt(2) fun{} chanpos1_choose_disj$fwork_tag(tag: int): void fun{} channeg1_choose_disj$fwork_tag(tag: int): void // (* ****** ****** *) (* end of [channel.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Worker/channel_session2.sats0000644000175000017500000000301313431250607030045 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: October, 2015 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX-2015-12-09: // (* ****** ****** *) (* #define ATS_STALOADFLAG 0 *) // // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_worker_" // (* ****** ****** *) // // Session Combinators // (* ****** ****** *) // staload "./channel.sats" staload "./channel_session.sats" // (* ****** ****** *) // fun{} chanpos1_session_guardby {ss1,ss2:type} ( ss1: chanpos_session(ss1) , ss2: chanpos_session(ss2) ) : chanpos_session(ssappend(ss2, ssoption_disj(ss1))) // fun{} chanpos1_session_guardby$guard((*void*)): bool // (* ****** ****** *) (* end of [channel_session2.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/BUCS320/0000755000175000017500000000000013431250607023427 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/BUCS320/parcomb.sats0000644000175000017500000000071513431250607025751 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2016-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_BUCS320_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) #staload "./../../basics_js.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/BUCS320/parcomb.sats" // (* ****** ****** *) (* end of [parcomb.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/BUCS320/words.sats0000644000175000017500000000071013431250607025457 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2016-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_BUCS320_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../../basics_js.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/BUCS320/words.sats" // (* ****** ****** *) (* end of [words.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/slistref.sats0000644000175000017500000000067613431250607025206 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_PACKNAME "ATSCC2JS.slistref" // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/slistref.sats" // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/option.sats0000644000175000017500000000075413431250607024660 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/option.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option (JSfilr, Option(INV(a))): void = "mac#%" // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/funarray.sats0000644000175000017500000000064313431250607025174 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/funarray.sats" // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/stream.sats0000644000175000017500000000111413431250607024632 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/stream.sats" // (* ****** ****** *) // fun stream_nth_exn {a:t0p} ( xs: stream(INV(a)), n: intGte(0) ) : (a) = "mac#%" // end-of-function // overload [] with stream_nth_exn of 100 // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/JSarray.sats0000644000175000017500000000521013431250607024713 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // macdef Array = $extval(JSobj, "Array") // (* ****** ****** *) // fun JSarray_nil {a:vt0p}(): JSarray(a) = "mac#%" fun JSarray_sing {a:vt0p}(a): JSarray(a) = "mac#%" fun JSarray_pair {a:vt0p}(a, a): JSarray(a) = "mac#%" // (* ****** ****** *) // fun JSarray_make_list {a:t0p}(List(INV(a))): JSarray(a) = "mac#%" fun JSarray_make_list_vt {a:vt0p}(List_vt(INV(a))): JSarray(a) = "mac#%" // (* ****** ****** *) // fun JSarray_get_at {a:t0p}(JSarray(a), int): a = "mac#%" fun JSarray_set_at {a:t0p}(JSarray(a), int, a): void = "mac#%" // fun JSarray_exch_at {a:vt0p}(JSarray(a), int, x0: a): (a) = "mac#%" // (* ****** ****** *) // fun JSarray_length{a:vt0p}(JSarray(a)): int = "mac#%" // (* ****** ****** *) // fun JSarray_pop{a:vt0p}(A: JSarray(a)): a = "mac#%" fun JSarray_push{a:vt0p}(A: JSarray(a), x: a): int = "mac#%" // (* ****** ****** *) // fun JSarray_shift{a:vt0p}(A: JSarray(a)): (a) = "mac#%" fun JSarray_unshift{a:vt0p}(A: JSarray(a), x0: a): int = "mac#%" // (* ****** ****** *) // fun JSarray_reverse{a:vt0p}(A: JSarray(a)): void = "mac#%" // (* ****** ****** *) // fun JSarray_copy{a:t@ype}(JSarray(a)): JSarray(a) = "mac#%" // fun JSarray_copy_arrayref {a:t@ype}{n:int} (A: arrayref(a, n), asz: int(n)): JSarray(a) = "mac#" // (* ****** ****** *) // fun JSarray_concat{a:t@ype} (A1: JSarray(a), A2: JSarray(a)): JSarray(a) = "mac#%" // (* ****** ****** *) // // HX: these are based on [splice] // fun JSarray_insert_at {a:vt0p}(JSarray(a), int, a): void = "mac#%" // fun JSarray_takeout_at {a:vt0p}(JSarray(a), ofs: int): (a) = "mac#%" // fun JSarray_remove_at {a:t@ype}(JSarray(a), ofs: int): void = "mac#%" // (* ****** ****** *) // fun JSarray_tabulate_cloref {a:vt0p}{n:nat} (int(n), cfun(natLt(n), a)): JSarray(a) = "mac#%" // (* ****** ****** *) // fun JSarray_join {a:t@ype}(JSarray(a)): string = "mac#%" fun JSarray_join_sep {a:t@ype}(JSarray(a), sep: string): string = "mac#%" // (* ****** ****** *) // fun{a:t0p} JSarray_sort_1(A: JSarray(a)): void fun JSarray_sort_2{a:t0p} (A: JSarray(a), cmp: (a, a) - int): void = "mac#%" // (* ****** ****** *) // // Some function overloading // (* ****** ****** *) // overload [] with JSarray_get_at overload [] with JSarray_set_at // (* ****** ****** *) // overload .pop with JSarray_pop overload .push with JSarray_push // (* ****** ****** *) overload length with JSarray_length (* ****** ****** *) (* end of [JSarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/gmatrixref.sats0000644000175000017500000000067713431250607025524 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_PACKNAME "ATSCC2JS.gmatrixref" #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/gmatrixref.sats" // (* ****** ****** *) (* end of [gmatrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Bacon.js/0000755000175000017500000000000013431250607024103 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Bacon.js/baconjs.sats0000644000175000017500000002370713431250607026427 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: April, 2015 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* #define ATS_STALOADFLAG 0 // no staloading at run-time *) // // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_bacon_" // (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // (* ** For Opaque values *) // abstype Value_type = ptr typedef Value = Value_type // (* ****** ****** *) // abstype Event_type = ptr typedef Event = Event_type // (* ****** ****** *) // abstype EStream(a:t@ype) = ptr // invariant! abstype Property(a:t@ype) = ptr // invariant! // (* ****** ****** *) fun Bacon_more(): Value = "mac#%" fun Bacon_noMore(): Value = "mac#%" (* ****** ****** *) // fun Bacon_once {a:t0p}(x: a): EStream(a) = "mac#%" fun Bacon_never {a:t0p}((*void*)): EStream(a) = "mac#%" // (* ****** ****** *) // fun Bacon_later {a:t0p} (ms: intGte(0), x: a): EStream(a) = "mac#%" // (* ****** ****** *) // fun Bacon_interval {a:t0p} (ms: intGte(0), x: a): EStream(a) = "mac#%" // fun Bacon_repeatedly {a:t0p} (ms: intGte(0), xs: JSarray(a)): EStream(a) = "mac#%" // fun Bacon_sequentially {a:t0p} (ms: intGte(0), xs: JSarray(a)): EStream(a) = "mac#%" // (* ****** ****** *) // fun Bacon_repeat{a:t0p} ( fopr: cfun(intGte(0), EStream(a)) ) : EStream(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun Bacon_fromPoll {a:t0p} (ms: intGte(0), fopr: cfun(a)): EStream(a) = "mac#%" // (* ****** ****** *) // fun EStream_map {a:t0p}{b:t0p} ( xs: EStream(a), fopr: cfun(a, b) ) : EStream(b) = "mac#%" // end-of-fun fun EStream_map_method {a:t0p}{b:t0p} ( xs: EStream(a), TYPE(b))(fopr: cfun(a, b) ) : EStream(b) = "mac#%" // end-of-fun // fun Property_map {a:t0p}{b:t0p} ( xs: Property(a), fopr: cfun(a, b) ) : Property(b) = "mac#%" // end-of-fun fun Property_map_method {a:t0p}{b:t0p} ( xs: Property(a), TYPE(b))(fopr: cfun(a, b) ) : Property(b) = "mac#%" // end-of-fun // (* overload map with EStream_map overload map with Property_map *) overload .map with EStream_map_method overload .map with Property_map_method // (* ****** ****** *) // fun EStream_map_property {a:t0p}{b:t0p} ( xs: EStream(a), ys: Property(b) ) : EStream(b) = "mac#%" // end-of-fun // overload map with EStream_map_property overload .map with EStream_map_property // (* ****** ****** *) // fun EStream_filter {a:t0p} ( xs: EStream(a), test: cfun(a, bool) ) : EStream(a) = "mac#%" // end-of-fun fun EStream_filter_method {a:t0p} ( xs: EStream(a))(test: cfun(a, bool) ) : EStream(a) = "mac#%" // end-of-fun // (* overload filter with EStream_filter *) overload .filter with EStream_filter_method // (* ****** ****** *) // fun EStream_filter_property {a:t0p} ( xs: EStream(a), bs: Property(bool) ) : EStream(a) = "mac#%" // end-of-fun // overload filter with EStream_filter_property overload .filter with EStream_filter_property // (* ****** ****** *) // fun EStream_scan {a:t0p}{b:t0p} ( xs: EStream(b), ini: a, fopr: cfun(a, b, a) ) : Property(a) = "mac#%" // end-of-function fun EStream_scan_method {a:t0p}{b:t0p} ( xs: EStream(b), _: TYPE(a))(ini: a, fopr: cfun(a, b, a) ) : Property(a) = "mac#%" // end-of-function // (* overload scan with EStream_scan *) overload .scan with EStream_scan_method // (* ****** ****** *) // fun EStream_merge2 {a:t0p} (EStream(a), EStream(a)): EStream(a) = "mac#%" fun EStream_merge3 {a:t0p} (EStream(a), EStream(a), EStream(a)): EStream(a) = "mac#%" fun EStream_merge4 {a:t0p} (EStream(a), EStream(a), EStream(a), EStream(a)): EStream(a) = "mac#%" fun EStream_merge5 {a:t0p} (EStream(a), EStream(a), EStream(a), EStream(a), EStream(a)): EStream(a) = "mac#%" fun EStream_merge6 {a:t0p} (EStream(a), EStream(a), EStream(a), EStream(a), EStream(a), EStream(a)): EStream(a) = "mac#%" // overload merge with EStream_merge2 overload merge with EStream_merge3 overload merge with EStream_merge4 overload merge with EStream_merge5 overload merge with EStream_merge6 // (* overload .merge with EStream_merge2 overload .merge with EStream_merge3 overload .merge with EStream_merge4 *) // (* ****** ****** *) // fun EStream_flatMap {a:t0p}{b:t0p} ( xs: EStream(a), fopr: cfun(a, EStream(b)) ) : EStream(b) = "mac#%" // end-of-function fun EStream_flatMap_method {a:t0p}{b:t0p} ( EStream(a), TYPE(b))(fopr: cfun(a, EStream(b)) ) : EStream(b) = "mac#%" // end-of-function // fun Property_flatMap {a:t0p}{b:t0p} ( xs: Property(a), fopr: cfun(a, EStream(b)) ) : EStream(b) = "mac#%" // end-of-function fun Property_flatMap_method {a:t0p}{b:t0p} ( Property(a), TYPE(b))(fopr: cfun(a, EStream(b)) ) : EStream(b) = "mac#%" // end-of-function // (* overload flatMap with EStream_flatMap overload flatMap with Property_flatMap *) overload .flatMap with EStream_flatMap_method overload .flatMap with Property_flatMap_method // (* ****** ****** *) // fun Bacon_combineWith2 {a,b:t0p}{c:t0p} ( Property(a), Property(b), cfun(a, b, c) ) : Property(c) = "mac#%" // end-of-function fun Bacon_combineWith3 {a,b,c:t0p}{d:t0p} ( Property(a), Property(b), Property(c), cfun(a, b, c, d) ) : Property(d) = "mac#%" // end-of-function // overload combineWith with Bacon_combineWith2 overload combineWith with Bacon_combineWith3 // (* ****** ****** *) // fun EStream_toProperty {a:t0p}(EStream(a)): Property(a) = "mac#%" fun EStream_toProperty_init {a:t0p}(EStream(a), x0: a): Property(a) = "mac#%" // overload toProperty with EStream_toProperty overload toProperty with EStream_toProperty_init overload .toProperty with EStream_toProperty overload .toProperty with EStream_toProperty_init // (* ****** ****** *) // fun Property_changes {a:t0p}(Property(a)): EStream(a) = "mac#%" // overload changes with Property_changes overload .changes with Property_changes // fun Property_toEventStream {a:t0p}(Property(a)): EStream(a) = "mac#%" // overload toEventStream with Property_toEventStream overload .toEventStream with Property_toEventStream // (* ****** ****** *) // fun EStream_onValue {a:t0p}(EStream(a), cfun(a, void)): void = "mac#%" fun Property_onValue {a:t0p}(Property(a), cfun(a, void)): void = "mac#%" fun EStream_onValue_method {a:t0p}(EStream(a))(cfun(a, void)): void = "mac#%" fun Property_onValue_method {a:t0p}(Property(a))(cfun(a, void)): void = "mac#%" // (* overload onValue with EStream_onValue overload onValue with Property_onValue *) overload .onValue with EStream_onValue_method overload .onValue with Property_onValue_method // (* ****** ****** *) // fun EStream_subscribe {a:t0p}(EStream(a), cfun(Event, void)): void = "mac#%" fun Property_subscribe {a:t0p}(Property(a), cfun(Event, void)): void = "mac#%" fun EStream_subscribe_method {a:t0p}(EStream(a))(cfun(Event, void)): void = "mac#%" fun Property_subscribe_method {a:t0p}(Property(a))(cfun(Event, void)): void = "mac#%" // (* overload subscribe with EStream_subscribe overload subscribe with Property_subscribe *) overload .subscribe with EStream_subscribe_method overload .subscribe with Property_subscribe_method // (* ****** ****** *) // fun Property_startWith {a:t0p}(Property(a), a): Property(a) = "mac#%" // (* ****** ****** *) // fun EStream_doAction {a:t0p} (xs: EStream(a), f: cfun(a, void)): EStream(a) = "mac#%" fun Property_doAction {a:t0p} (xs: Property(a), f: cfun(a, void)): Property(a) = "mac#%" fun EStream_doAction_method {a:t0p} (xs: EStream(a))(f: cfun(a, void)): EStream(a) = "mac#%" fun Property_doAction_method {a:t0p} (xs: Property(a))(f: cfun(a, void)): Property(a) = "mac#%" // (* overload doAction with EStream_doAction overload doAction with Property_doAction *) overload .doAction with EStream_doAction_method overload .doAction with Property_doAction_method // (* ****** ****** *) // fun Property_sampledBy_estream {a,b:t0p}(Property(a), EStream(b)): EStream(a) = "mac#%" fun Property_sampledBy_property {a,b:t0p}(Property(a), Property(b)): Property(a) = "mac#%" // overload sampledBy with Property_sampledBy_estream overload sampledBy with Property_sampledBy_property overload .sampledBy with Property_sampledBy_estream overload .sampledBy with Property_sampledBy_property // (* ****** ****** *) // fun Property_sampledBy_estream_cfun {a,b:t0p}{c:t0p} ( Property(a), EStream(b), cfun(a, b, c) ) : EStream(c) = "mac#%" // end-of-function fun Property_sampledBy_property_cfun {a,b:t0p}{c:t0p} ( Property(a), Property(b), cfun(a, b, c) ) : Property(c) = "mac#%" // end-of-function // overload sampledBy with Property_sampledBy_estream_cfun overload sampledBy with Property_sampledBy_property_cfun // (* ****** ****** *) // fun EStream_zipwith_estream_cfun {a,b:t0p}{c:t0p} ( xs: EStream(a), ys: EStream(b), fopr: cfun(a, b, c) ) : EStream(c) = "mac#%" // end-of-function // overload zipwith with EStream_zipwith_estream_cfun // (* ****** ****** *) // // HX-2015-10-10: // Bus: an Estream // onto which values can be pushed // fun Bacon_new_bus{a:t0p}(): EStream(a) = "mac#%" // fun EStream_bus_push {a:t0p}(bus: EStream(a), x0: a): void = "mac#%" fun EStream_bus_plug {a:t0p}(bus: EStream(a), xs: EStream(a)): void = "mac#%" // overload push with EStream_bus_push overload plug with EStream_bus_plug // overload .push with EStream_bus_push overload .plug with EStream_bus_plug // (* ****** ****** *) (* end of [baconjs.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Bacon.js/channel.sats0000644000175000017500000000433713431250607026416 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: December, 2015 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX-2015-12-05: // (* ****** ****** *) // (* #define ATS_STALOADFLAG 0 // no staloading at run-time *) #define ATS_EXTERN_PREFIX "ats2js_bacon_" // prefix for external names // (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // abstype chanpos_type abstype channeg_type // typedef chanpos() = chanpos_type typedef channeg() = channeg_type // (* ****** ****** *) // typedef chpcont0() = cfun1(chanpos(), void) typedef chpcont1(a:t0p) = cfun2(chanpos(), a, void) // (* ****** ****** *) // typedef chncont0() = cfun1(channeg(), void) typedef chncont1(a:t0p) = cfun2(channeg(), a, void) // (* ****** ****** *) // fun chanpos0_send {a:t0p} ( chanpos(), x: a, k0: chpcont0() ) : void = "mac#%" // end-of-fun // fun chanpos0_recv {a:t0p} (chp: chanpos(), k0: chpcont1(a)): void = "mac#%" // (* ****** ****** *) // fun channeg0_recv {a:t0p} ( channeg(), x: a, k0: chncont0() ) : void = "mac#%" // end-of-fun // fun channeg0_send {a:t0p} (chn: channeg(), k0: chncont1(a)): void = "mac#%" // (* ****** ****** *) // abstype chsnd(a:vt@ype) abstype chrcv(a:vt@ype) // abstype chnil() abstype chcons(a:type, ss:type) // stadef :: = chcons // (* ****** ****** *) stadef chsing(x:type) = chcons(x, chnil()) (* ****** ****** *) (* end of [channel.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/Bacon.js/baconjs_ext.sats0000644000175000017500000000470413431250607027303 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: October, 2015 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // (* #define ATS_STALOADFLAG 0 // no staloading at run-time *) // // HX: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_bacon_ext_" // (* ****** ****** *) // staload "./../../basics_js.sats" // (* ****** ****** *) // staload "./baconjs.sats" // (* ****** ****** *) // // HX: // EValue is // updated by EStream // abstype EValue(a:t@ype) = ptr // invariant! // (* ****** ****** *) // fun EStream_scan_stream_opt {a,b,c:t0p} ( xs: EStream(b) , ini: a, ys: stream(c) , fopr: cfun(a, b, c, Option_vt(a)) ) : Property(a) = "mac#%" // end-of-function // overload scan with EStream_scan_stream_opt overload .scan with EStream_scan_stream_opt // (* ****** ****** *) // fun EValue_get_elt {a:t0p} (x: EValue(a)): (a) = "mac#%" // overload [] with EValue_get_elt // fun EValue_make_property {a:t0p}(Property(a)): EValue(a) = "mac#%" fun EValue_make_estream_scan {a,b:t0p} ( x0: a, ys: EStream(b), fopr: cfun(a, b, a) ) : EValue(a) = "mac#%" // EValue_make_estream_scan // (* ****** ****** *) // datatype singpair(a: t@ype+) = | Sing of (a) | Pair of (a, a) // (* ****** ****** *) // // HX-2016-11-13: // // For grouping two consecutive events // if the second occurs with delta ms of the first // For instance, [EStream_singpair_trans] can be employed // to support an implementation of double clicking // fun EStream_singpair_trans {a:t0p} ( xs: EStream(a), delta(*ms*): intGte(0) ) : EStream(singpair(a)) = "mac#%" // EStream_singpair_trans // (* ****** ****** *) (* end of [baconjs_ext.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/print.sats0000644000175000017500000000256713431250607024510 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // (* HX: prefix for external names *) // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // (* typedef fprint_type ( a:t@ype ) = (JSfilr, a) - void *) // (* ****** ****** *) fun print_int : int -> void = "mac#%" fun print_uint : uint -> void = "mac#%" (* ****** ****** *) fun print_bool : bool -> void = "mac#%" (* ****** ****** *) fun print_double : double -> void = "mac#%" (* ****** ****** *) // fun print_string : string -> void = "mac#%" fun fprint_string (JSfilr, string): void = "mac#%" // (* ****** ****** *) fun print_obj{a:t0p}(obj: a): void = "mac#%" (* ****** ****** *) fun print_newline : ((*void*)) -> void = "mac#%" (* ****** ****** *) overload print with print_int of 100 overload print with print_uint of 100 overload print with print_bool of 100 overload print with print_double of 100 overload print with print_string of 100 (* ****** ****** *) // fun {a:t0p} print_val (x: a): void = "mac#%" // fun {a:t0p} fprint_val (JSfilr, x: a): void = "mac#%" // (* ****** ****** *) // // HX-2014-09-19: // these are implemented in // CATS/PRINT/print_store_cats.js // fun the_print_store_join (): string = "mac#%" fun the_print_store_clear : () -> void = "mac#%" // (* ****** ****** *) (* end of [print.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/HTTP/0000755000175000017500000000000013431250607023225 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/HTTP/Ajax/0000755000175000017500000000000013431250607024110 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/HTTP/Ajax/Ajax.sats0000644000175000017500000000613113431250607025670 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start Time: September, 2014 *) (* ****** ****** *) // (* #define ATS_STALOADFLAG 0 *) // #define ATS_EXTERN_PREFIX "ats2js_Ajax_" // prefix for external names // (* ****** ****** *) // #staload "./../../../basics_js.sats" // (* ****** ****** *) // #staload "./../../XMLDOC/XMLDOC.sats" // typedef Xmldoc = Xmldoc typedef Xmldoclst = Xmldoclst typedef Xmldocopt = Xmldocopt // (* ****** ****** *) // abstype XMLHttpRequest_type typedef XMLHttpRequest = XMLHttpRequest_type // (* ****** ****** *) // fun XMLHttpRequest_new ((*void*)): XMLHttpRequest = "mac#%" // (* ****** ****** *) // fun XMLHttpRequest_open ( XMLHttpRequest , method: string, URL: string, async: bool ) : void = "mac#%" // end-of-fun // fun XMLHttpRequest_send_0 (XMLHttpRequest): void = "mac#%" fun XMLHttpRequest_send_1 (XMLHttpRequest, msg: string): void = "mac#%" // overload .open with XMLHttpRequest_open overload .send with XMLHttpRequest_send_0 overload .send with XMLHttpRequest_send_1 // (* ****** ****** *) // fun XMLHttpRequest_setRequestHeader (XMLHttpRequest, header: string, value: string): void = "mac#%" // overload .setRequestHeader with XMLHttpRequest_setRequestHeader // (* ****** ****** *) // fun XMLHttpRequest_get_responseXML (XMLHttpRequest): Xmldoc = "mac#%" // overload .responseXML with XMLHttpRequest_get_responseXML // fun XMLHttpRequest_get_responseText (XMLHttpRequest): string = "mac#%" // overload .responseText with XMLHttpRequest_get_responseText // (* ****** ****** *) // fun XMLHttpRequest_get_status (xmlhttpreq: XMLHttpRequest): int = "mac#%" // overload .status with XMLHttpRequest_get_status // fun XMLHttpRequest_get_readyState (xmlhttpreq: XMLHttpRequest): int = "mac#%" // overload .readyState with XMLHttpRequest_get_readyState // fun XMLHttpRequest_set_onreadystatechange (xmlhttpreq: XMLHttpRequest, f_action: cfun(void)): void = "mac#%" // overload .onreadystatechange with XMLHttpRequest_set_onreadystatechange // (* ****** ****** *) // // HX-2014-09: Some convenience functions // (* ****** ****** *) // fun XMLHttpRequest_is_ready_okay (xmlhttpreq: XMLHttpRequest): bool = "mac#%" // overload .is_ready_okay with XMLHttpRequest_is_ready_okay // (* ****** ****** *) (* end of [Ajax.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/gprint.sats0000644000175000017500000000061413431250607024646 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/gprint.sats" // (* ****** ****** *) (* end of [gprint.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/ML/0000755000175000017500000000000013431250607022756 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/ML/option0.sats0000644000175000017500000000104713431250607025244 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_js.sats" // #include "{$LIBATSCC}/SATS/ML/option0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option0 (JSfilr, option0(INV(a))): void = "mac#%" // overload fprint with fprint_option0 of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/ML/matrix0.sats0000644000175000017500000000065413431250607025243 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_js.sats" // #include "{$LIBATSCC}/SATS/ML/matrix0.sats" // (* ****** ****** *) (* end of [matrix0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/ML/list0.sats0000644000175000017500000000237013431250607024707 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_js.sats" // #include "{$LIBATSCC}/SATS/ML/list0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list0 (JSfilr, list0(INV(a))): void = "mac#%" // fun{} fprint_list0$sep(out: JSfilr): void = "mac#%" // fun{a:t0p} fprint_list0_sep (JSfilr, list0(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list0 of 100 // (* ****** ****** *) // fun list0_head_exn {a:t0p} (list0(INV(a))): (a) = "mac#%" fun list0_tail_exn {a:t0p} (list0(INV(a))): list0(a) = "mac#%" // overload .head with list0_head_exn overload .tail with list0_tail_exn // (* ****** ****** *) // fun list0_get_at_exn {a:t0p} (list0(INV(a)), intGte(0)): (a) = "mac#%" // (* ****** ****** *) // fun list0_insert_at_exn {a:t0p} ( xs: list0(INV(a)), i: intGte(0), x0: a ) : list0(a) = "mac#%" // end-of-function // (* ****** ****** *) // fun list0_remove_at_exn {a:t0p} (xs: list0(INV(a)), i: intGte(0)): list0(a) = "mac#%" // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/SATS/ML/array0.sats0000644000175000017500000000062713431250607025055 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_js.sats" // #include "{$LIBATSCC}/SATS/ML/array0.sats" // (* ****** ****** *) (* end of [array0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/0000755000175000017500000000000013431250607023174 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/DATS/0000755000175000017500000000000013431250607023727 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/DATS/.gitkeep0000644000175000017500000000000013431250607025346 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/CATS/0000755000175000017500000000000013431250607023726 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/CATS/process_cats.js0000777000175000017500000000000013431250607034457 2../../CATS/Node.js/process_cats.jsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/CATS/basics_cats.js0000777000175000017500000000000013431250607034033 2../../CATS/Node.js/basics_cats.jsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/CATS/fprint_cats.js0000777000175000017500000000000013431250607034127 2../../CATS/Node.js/fprint_cats.jsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/SATS/0000755000175000017500000000000013431250607023746 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/SATS/basics.sats0000777000175000017500000000000013431250607032743 2../../SATS/Node.js/basics.satsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/SATS/fprint.sats0000777000175000017500000000000013431250607033037 2../../SATS/Node.js/fprint.satsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Node.js/SATS/process.sats0000777000175000017500000000000013431250607033367 2../../SATS/Node.js/process.satsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/staloadall.hats0000644000175000017500000000404513431250607024700 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09-09 // (* ****** ****** *) // #staload "./basics_js.sats" #staload _ = "./DATS/basics.dats" // (* ****** ****** *) // #staload "./SATS/integer.sats" // (* ****** ****** *) // #staload "./SATS/bool.sats" #staload "./SATS/char.sats" #staload "./SATS/float.sats" #staload "./SATS/string.sats" // #staload "./SATS/gvalue.sats" // (* ****** ****** *) // #staload "./SATS/gprint.sats" #staload _ = "./DATS/gprint.dats" // (* ****** ****** *) // #staload "./SATS/list.sats" #staload _ = "./DATS/list.dats" // #staload "./SATS/list_vt.sats" #staload _ = "./DATS/list_vt.dats" // (* ****** ****** *) // #staload "./SATS/option.sats" #staload _ = "./DATS/option.dats" // (* ****** ****** *) // #staload "./SATS/stream.sats" #staload _ = "./DATS/stream.dats" // #staload "./SATS/stream_vt.sats" #staload _ = "./DATS/stream_vt.dats" // (* ****** ****** *) #staload "./SATS/JSarray.sats" (* ****** ****** *) // #staload "./SATS/intrange.sats" #staload "./SATS/arrayref.sats" #staload "./SATS/matrixref.sats" #staload "./SATS/reference.sats" // (* ****** ****** *) // #staload "./SATS/JSLIBC/JSmisc.sats" // JS library // #staload "./SATS/JSLIBC/JSmath.sats" // JS library #staload _(*anon*) = "./DATS/JSLIBC/JSmath.dats" // JS library // #staload "./SATS/JSLIBC/JSdate.sats" // JS library // (* ****** ****** *) #staload "./SATS/slistref.sats" // list-based stack #staload "./SATS/qlistref.sats" // list-based queue (* ****** ****** *) // #staload "./SATS/ML/list0.sats" // un-indexed list #staload "./SATS/ML/array0.sats" // un-indexed array #staload "./SATS/ML/option0.sats" // un-indexed option #staload "./SATS/ML/matrix0.sats" // un-indexed matrix // #staload _(*anon*) = "./DATS/ML/list0.dats" // un-indexed list #staload _(*anon*) = "./DATS/ML/array0.dats" // un-indexed array #staload _(*anon*) = "./DATS/ML/option0.dats" // un-indexed option #staload _(*anon*) = "./DATS/ML/matrix0.dats" // un-indexed matrix // (* ****** ****** *) (* end of [staloadall.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/README0000644000175000017500000000105513431250607022555 0ustar brandonbrandon# # Libatscc2js # The libatscc2js library is meant for the JS code generated from ATS source via the transpiler atscc2js. ###### Please execute the following two command-lines: make all make all_in_one In the output directory, please find the following files containg JS code: # # The all-in-one: # libatscc2js_all.js # # For printing stuff # libatscc2js_print_store_cats.js # # For interfacing Bacon.js # libatscc2js_baconjs_all.js # # For a basic implementation of parsing combinators: # libatscc2js_bucs320_parcomb.js ###### end of [README] ######ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/0000755000175000017500000000000013431250607023331 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/DATS/0000755000175000017500000000000013431250607024064 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/DATS/baconjs.dats0000777000175000017500000000000013431250607033467 2../../DATS/Bacon.js/baconjs.datsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/DATS/baconjs_ext.dats0000777000175000017500000000000013431250607035227 2../../DATS/Bacon.js/baconjs_ext.datsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/CATS/0000755000175000017500000000000013431250607024063 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/CATS/baconjs_cats.js0000777000175000017500000000000013431250607034653 2../../CATS/Bacon.js/baconjs_cats.jsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/SATS/0000755000175000017500000000000013431250607024103 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/SATS/baconjs.sats0000777000175000017500000000000013431250607033563 2../../SATS/Bacon.js/baconjs.satsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/SATS/channel.sats0000777000175000017500000000000013431250607033545 2../../SATS/Bacon.js/channel.satsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/ATS2-0.3.2/Bacon.js/SATS/baconjs_ext.sats0000777000175000017500000000000013431250607035323 2../../SATS/Bacon.js/baconjs_ext.satsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/.keeper0000644000175000017500000000000013431250607021767 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/0000755000175000017500000000000013431250607021277 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/gvalue.sats0000644000175000017500000000234313431250607023460 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/gvalue.sats" // (* ****** ****** *) // datatype gvalue = // | GVnil of () // | GVint of (int) // | GVbool of (bool) // | GVfloat of (double) // | GVstring of (string) // | GVobject of (JSobj) // | GVlist of gvlist | GVarray of gvarray | GVhashtbl of gvhashtbl // (* ****** ****** *) // fun gvalue_nil(): gvalue = "mac#%" // fun gvalue_int(int): gvalue = "mac#%" // fun gvalue_bool(bool): gvalue = "mac#%" // fun gvalue_float(double): gvalue = "mac#%" // fun gvalue_string(string): gvalue = "mac#%" // (* ****** ****** *) // fun gvhashtbl_get_atkey (tbl: gvhashtbl, k: string): gvalue = "mac#%" fun gvhashtbl_set_atkey (tbl: gvhashtbl, k: string, x: gvalue): void = "mac#%" fun gvhashtbl_exch_atkey (tbl: gvhashtbl, k: string, x: gvalue): gvalue = "mac#%" // (* ****** ****** *) // overload [] with gvhashtbl_get_atkey overload [] with gvhashtbl_set_atkey // (* ****** ****** *) (* end of [gvalue.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/intrange.sats0000644000175000017500000000060513431250607024003 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/intrange.sats" // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/float.sats0000644000175000017500000000710013431250607023276 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // (* prefix for external names *) // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // fun double2int(x: double):<> int = "mac#%" fun int_of_double(x: double):<> int = "mac#%" // fun int2double(x: int):<> double = "mac#%" fun double_of_int(x: int):<> double = "mac#%" // (* ****** ****** *) // fun abs_double : double -<> double = "mac#%" overload abs with abs_double of 100 // (* ****** ****** *) // fun neg_double : double -<> double = "mac#%" overload ~ with neg_double of 100 overload neg with neg_double of 100 // (* ****** ****** *) // fun succ_double : double -<> double = "mac#%" fun pred_double : double -<> double = "mac#%" // overload succ with succ_double of 100 overload pred with pred_double of 100 // (* ****** ****** *) // fun add_int_double : (int, double) -<> double = "mac#%" fun add_double_int : (double, int) -<> double = "mac#%" // fun sub_int_double : (int, double) -<> double = "mac#%" fun sub_double_int : (double, int) -<> double = "mac#%" // fun mul_int_double : (int, double) -<> double = "mac#%" fun mul_double_int : (double, int) -<> double = "mac#%" // fun div_int_double : (int, double) -<> double = "mac#%" fun div_double_int : (double, int) -<> double = "mac#%" // (* ****** ****** *) overload + with add_int_double of 100 overload + with add_double_int of 100 overload - with sub_int_double of 100 overload - with sub_double_int of 100 overload * with mul_int_double of 100 overload * with mul_double_int of 100 overload / with div_int_double of 100 overload / with div_double_int of 100 (* ****** ****** *) // fun pow_double_int1 : (double, intGte(0)) -<> double = "mac#%" // overload ** with pow_double_int1 of 110 // (* ****** ****** *) typedef float_aop_type = (double, double) -<> double (* ****** ****** *) // fun add_double_double: float_aop_type = "mac#%" fun sub_double_double : float_aop_type = "mac#%" fun mul_double_double : float_aop_type = "mac#%" fun div_double_double : float_aop_type = "mac#%" // (* ****** ****** *) // overload + with add_double_double of 100 overload - with sub_double_double of 100 overload * with mul_double_double of 100 overload / with div_double_double of 100 // (* ****** ****** *) // fun lt_int_double : (int, double) -<> bool = "mac#%" fun lt_double_int : (double, int) -<> bool = "mac#%" // fun lte_int_double : (int, double) -<> bool = "mac#%" fun lte_double_int : (double, int) -<> bool = "mac#%" // fun gt_int_double : (int, double) -<> bool = "mac#%" fun gt_double_int : (double, int) -<> bool = "mac#%" // fun gte_int_double : (int, double) -<> bool = "mac#%" fun gte_double_int : (double, int) -<> bool = "mac#%" // (* ****** ****** *) typedef float_cmp_type = (double, double) -<> bool (* ****** ****** *) // fun lt_double_double: float_cmp_type = "mac#%" fun lte_double_double: float_cmp_type = "mac#%" fun gt_double_double: float_cmp_type = "mac#%" fun gte_double_double: float_cmp_type = "mac#%" // fun eq_double_double: float_cmp_type = "mac#%" fun neq_double_double: float_cmp_type = "mac#%" // (* ****** ****** *) // overload < with lt_double_double of 100 overload <= with lte_double_double of 100 overload > with gt_double_double of 100 overload >= with gte_double_double of 100 overload = with eq_double_double of 100 overload != with neq_double_double of 100 overload <> with neq_double_double of 100 // (* ****** ****** *) // fun compare_double_double (x1: double, x2: double):<> Sgn = "mac#%" // overload compare with compare_double_double of 100 // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/filebas.sats0000644000175000017500000000077713431250607023613 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // (* val STDIN : JSfilr = "mac#" val STDOUT : JSfilr = "mac#" val STDERR : JSfilr = "mac#" *) macdef STDIN = $extval (JSfilr, "0") macdef STDOUT = $extval (JSfilr, "1") macdef STDERR = $extval (JSfilr, "2") // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/JSLIBC/0000755000175000017500000000000013431250607022245 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/JSLIBC/JSmisc.sats0000644000175000017500000000256313431250607024337 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_libc_" // (* ****** ****** *) #staload "./../../basics_js.sats" (* ****** ****** *) fun eval(code: string): JSobj = "mac#%" (* ****** ****** *) // fun Number{a:t0p}(obj: a): double = "mac#%" fun String{a:t0p}(obj: a): string = "mac#%" // (* ****** ****** *) // fun isFinite_int(int): bool = "mac#%" fun isFinite_double(double): bool = "mac#%" // symintr isFinite overload isFinite with isFinite_int overload isFinite with isFinite_double // (* ****** ****** *) // fun isNaN_int(int): bool = "mac#%" fun isNaN_double(double): bool = "mac#%" // symintr isNaN overload isNaN with isNaN_int overload isNaN with isNaN_double // (* ****** ****** *) // fun parseInt_1 (rep: string): int = "mac#%" fun parseInt_2 (rep: string, base: int): int = "mac#%" // symintr parseInt overload parseInt with parseInt_1 overload parseInt with parseInt_2 // (* ****** ****** *) // fun parseFloat(rep: string): double = "mac#%" // (* ****** ****** *) fun encodeURI(uri: string): string = "mac#%" fun decodeURI(uri: string): string = "mac#%" (* ****** ****** *) fun encodeURIComponent(uri: string): string = "mac#%" fun decodeURIComponent(uri: string): string = "mac#%" (* ****** ****** *) (* end of [JSmisc.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/JSLIBC/JSdate.sats0000644000175000017500000000334713431250607024322 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_libc_" // (* ****** ****** *) #staload "./../../basics_js.sats" (* ****** ****** *) // fun Date_new_0 ((*void*)): JSdate = "mac#%" // fun Date_new_1_int (msec: int): JSdate = "mac#%" fun Date_new_1_string (date: string): JSdate = "mac#%" // fun Date_new_7_all ( year: int, mon: int, day: int , hour: int, min: int, sec: int, msec: int ) : JSdate = "mac#%" // (* ****** ****** *) // symintr Date_new overload Date_new with Date_new_0 overload Date_new with Date_new_1_int overload Date_new with Date_new_1_string overload Date_new with Date_new_7_all // (* ****** ****** *) fun getTime (JSdate): intGte(0) = "mac#%" (* ****** ****** *) fun getTimezoneOffset (JSdate): int = "mac#%" (* ****** ****** *) // fun getDay (JSdate): intBtw(0, 7) = "mac#%" fun getDate (JSdate): intBtw(1, 24) = "mac#%" fun getMonth (JSdate): intBtw(0, 12) = "mac#%" fun getFullYear (JSdate): intGte( 0 ) = "mac#%" // fun getHours (JSdate): intBtw(0, 24) = "mac#%" fun getMinutes (JSdate): intBtw(0, 60) = "mac#%" fun getSeconds (JSdate): intBtw(0, 60) = "mac#%" fun getMilliseconds (JSdate): intBtw(0, 1000) = "mac#%" // (* ****** ****** *) // fun getUTCDay (JSdate): intBtw(0, 7) = "mac#%" fun getUTCDate (JSdate): intBtw(1, 24) = "mac#%" fun getUTCMonth (JSdate): intBtw(0, 12) = "mac#%" fun getUTCFullYear (JSdate): intGte( 0 ) = "mac#%" // fun getUTCHours (JSdate): intBtw(0, 24) = "mac#%" fun getUTCMinutes (JSdate): intBtw(0, 60) = "mac#%" fun getUTCSeconds (JSdate): intBtw(0, 60) = "mac#%" fun getUTCMilliseconds (JSdate): intBtw(0, 1000) = "mac#%" // (* ****** ****** *) (* end of [JSdate.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/JSLIBC/JSmath.sats0000644000175000017500000000335313431250607024333 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_libc_" // (* ****** ****** *) #staload "./../../basics_js.sats" (* ****** ****** *) val JSmath_E : double = "mac#%" val JSmath_PI : double = "mac#%" val JSmath_SQRT2 : double = "mac#%" val JSmath_SQRT1_2 : double = "mac#%" val JSmath_LN2 : double = "mac#%" val JSmath_LN10 : double = "mac#%" val JSmath_LOG2E : double = "mac#%" val JSmath_LOG10E : double = "mac#%" (* ****** ****** *) fun JSmath_abs : double -<> double = "mac#%" (* ****** ****** *) // fun JSmath_max : (double, double) -<> double = "mac#%" fun JSmath_min : (double, double) -<> double = "mac#%" // (* ****** ****** *) fun JSmath_sqrt : double -<> double = "mac#%" (* ****** ****** *) fun JSmath_exp : double -<> double = "mac#%" fun JSmath_pow : (double, double) -<> double = "mac#%" fun JSmath_log : double -<> double = "mac#%" (* ****** ****** *) fun JSmath_ceil : double -<> double = "mac#%" fun JSmath_floor : double -<> double = "mac#%" fun JSmath_round : double -<> double = "mac#%" (* ****** ****** *) // fun JSmath_sin : double -<> double = "mac#%" fun JSmath_cos : double -<> double = "mac#%" fun JSmath_tan : double -<> double = "mac#%" // (* ****** ****** *) // fun JSmath_asin : double -<> double = "mac#%" fun JSmath_acos : double -<> double = "mac#%" fun JSmath_atan : double -<> double = "mac#%" fun JSmath_atan2 (y: double, x: double): double = "mac#%" // (* ****** ****** *) // fun JSmath_random ((*void*)): double = "mac#%" // (* ****** ****** *) // // HX-2016-12-25 // fun{} JSmath_randint {n:int|n >= 1}(int(n)): natLt(n) = "mac#%" // (* ****** ****** *) (* end of [JSmath.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/list.sats0000644000175000017500000000123713431250607023151 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/list.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list (JSfilr, List(INV(a))): void = "mac#%" // fun{} fprint_list$sep(out: JSfilr): void = "mac#%" // fun{a:t0p} fprint_list_sep (JSfilr, List(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list of 100 // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/char.sats0000644000175000017500000000072613431250607023115 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // typedef char = int // (* ****** ****** *) fun char_isalpha(c: char): bool = "mac#%" fun char_isalnum(c: char): bool = "mac#%" fun char_isdigit(c: char): bool = "mac#%" (* ****** ****** *) fun char_isspace(c: char): bool = "mac#%" (* ****** ****** *) (* end of [char.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/list_vt.sats0000644000175000017500000000060313431250607023656 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/list_vt.sats" // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/arrayref.sats0000644000175000017500000000076213431250607024013 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/arrayref.sats" // (* ****** ****** *) // fun arrayref_uninitized {a:vt0p}{n:nat} (asz: int(n)): arrayref(a?, n) = "mac#%" // (* ****** ****** *) (* end of [arrayref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/matrixref.sats0000644000175000017500000000102513431250607024172 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/matrixref.sats" // (* ****** ****** *) // fun matrixref_uninitized {a:vt0p} {m,n:nat} ( nrow: int(m) , ncol: int(n) ) : matrixref(a?, m, n) = "mac#%" // (* ****** ****** *) (* end of [matrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/string.sats0000644000175000017500000001405113431250607023502 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #staload "./../basics_js.sats" // (* ****** ****** *) // typedef char = int typedef strchr = string(1) // (* ****** ****** *) // fun strchr_code(strchr): char = "mac#%" // (* ****** ****** *) // fun string_get_at {n:int} {i:nat | i < n} ( str: string(n), i0: int(i) ) : strchr = "mac#%" // end-of-fun // overload [] with string_get_at of 100 // (* ****** ****** *) // fun string_fset_at {n:int} {i:nat | i < n} ( str: string(n), i0: int(i), c0: strchr ) : string(n) = "mac#%" // end-of-fun // (* ****** ****** *) // fun string_substring_beg_end {n:int} {i,j:int | 0 <= i; i <= j; j <= n} ( str: string(n), i0: int(i), j0: int(j) ) : string(j-i) = "mac#%" // end-of-fun // // fun string_substring_beg_len {n:int} {i,len:nat | i + len <= n} ( str: string(n), i0: int(i), len: int(len) ) : string(len) = "mac#%" // end-of-fun // (* ****** ****** *) // fun string_length {n:int}(string(n)): int(n) = "mac#%" // overload length with string_length of 100 // (* ****** ****** *) // fun string0_is_empty (str: string): bool = "mac#%" fun string0_isnot_empty (str: string): bool = "mac#%" // fun string1_is_empty {n:int}(string(n)): bool(n==0) = "mac#%" fun string1_isnot_empty {n:int}(string(n)): bool(n > 0) = "mac#%" // overload iseqz with string0_is_empty of 100 overload iseqz with string1_is_empty of 100 // overload isneqz with string0_isnot_empty of 110 overload isneqz with string1_isnot_empty of 110 // (* ****** ****** *) // fun lt_string_string : (string, string) -> bool = "mac#%" fun lte_string_string : (string, string) -> bool = "mac#%" fun gt_string_string : (string, string) -> bool = "mac#%" fun gte_string_string : (string, string) -> bool = "mac#%" // fun eq_string_string : (string, string) -> bool = "mac#%" fun neq_string_string : (string, string) -> bool = "mac#%" // (* ****** ****** *) // overload < with lt_string_string of 100 overload <= with lte_string_string of 100 overload > with gt_string_string of 100 overload >= with gte_string_string of 100 // overload = with eq_string_string of 100 overload != with neq_string_string of 100 overload <> with neq_string_string of 100 // (* ****** ****** *) // fun compare_string_string: (string, string) -> intBtwe(~1, 1) = "mac#%" // overload compare with compare_string_string of 100 // (* ****** ****** *) // fun string_charAt{n:int} (str: string(n), i: natLt(n)): strchr = "mac#%" fun string_charCodeAt{n:int} (str: string(n), index: natLt(n)): int = "mac#%" // overload .charAt with string_charCodeAt of 100 overload .charCodeAt with string_charCodeAt of 100 // (* ****** ****** *) // fun string_fromCharCode_1 (c1: int): string(1) = "mac#%" fun string_fromCharCode_2 (c1: int, c2: int): string(2) = "mac#%" fun string_fromCharCode_3 (c1: int, c2: int, c3: int): string(3) = "mac#%" fun string_fromCharCode_4 (c1: int, c2: int, c3: int, c4: int): string(4) = "mac#%" fun string_fromCharCode_5 (c1: int, c2: int, c3: int, c4: int, c5: int): string(5) = "mac#%" fun string_fromCharCode_6 (c1: int, c2: int, c3: int, c4: int, c5: int, c6: int): string(6) = "mac#%" // symintr string_fromCharCode overload string_fromCharCode with string_fromCharCode_1 overload string_fromCharCode with string_fromCharCode_2 overload string_fromCharCode with string_fromCharCode_3 overload string_fromCharCode with string_fromCharCode_4 overload string_fromCharCode with string_fromCharCode_5 overload string_fromCharCode with string_fromCharCode_6 // (* ****** ****** *) // fun strstr // libc-function (str: string, key: string): int = "mac#%" fun string_indexOf_2 (str: string, key: string): int = "mac#%" fun string_indexOf_3 (str: string, key: string, start: int): int = "mac#%" // symintr string_indexOf // overload string_indexOf with string_indexOf_2 of 100 overload string_indexOf with string_indexOf_3 of 100 // overload .indexOf with string_indexOf of 100 // (* ****** ****** *) // fun string_lastIndexOf_2 (str: string, key: string): int = "mac#%" fun string_lastIndexOf_3 (str: string, key: string, start: int): int = "mac#%" // symintr string_lastIndexOf // overload string_lastIndexOf with string_lastIndexOf_2 of 100 overload string_lastIndexOf with string_lastIndexOf_3 of 100 // overload .lastIndexOf with string_lastIndexOf of 100 // (* ****** ****** *) // fun string_append ( str1: string, str2: string ) : string = "mac#%" // overload + with string_append of 100 // (* ****** ****** *) // fun string_concat_2 ( str1: string, str2: string ) : string = "mac#%" // endfun fun string_concat_3 ( str1: string, str2: string, str3: string ) : string = "mac#%" // end-of-fun // symintr string_concat // overload string_concat with string_concat_2 of 100 overload string_concat with string_concat_3 of 100 // (* ****** ****** *) // fun string_exists_cloref ( string, pred: cfun(strchr, bool) ) : bool = "mac#%" // string_exists_cloref fun string_exists_method ( string)(pred: cfun(strchr, bool) ) : bool = "mac#%" // string_exists_method // overload .exists with string_exists_method // (* ****** ****** *) // fun string_forall_cloref ( string, pred: cfun(strchr, bool) ) : bool = "mac#%" // string_forall_cloref fun string_forall_method ( string)(pred: cfun(strchr, bool) ) : bool = "mac#%" // string_forall_method // overload .forall with string_forall_method // (* ****** ****** *) // fun string_foreach_cloref ( string, fwork: cfun(strchr, void) ) : void = "mac#%" // string_foreach_cloref fun string_foreach_method ( string)(fwork: cfun(strchr, void) ) : void = "mac#%" // string_foreach_method // overload .foreach with string_foreach_method // (* ****** ****** *) // fun string_tabulate_cloref {n:nat} ( n0: int(n), fopr: cfun(natLt(n), charNZ) ) : string(n) = "mac#%" // string_tabulate_cloref // (* ****** ****** *) // fun streamize_string_code (str0: string): stream_vt(int) = "mac#%" // (* ****** ****** *) // fun streamize_string_line (inp: string): stream_vt(string) = "mac#%" // (* ****** ****** *) (* end of [string.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/stream_vt.sats0000644000175000017500000000063213431250607024200 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/stream_vt.sats" // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/integer.sats0000644000175000017500000001622613431250607023637 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // // HX: for signed integers // (* ****** ****** *) // fun abs_int0 : int - int = "mac#%" // overload abs with abs_int0 of 100 // (* ****** ****** *) // fun neg_int0 : int - int = "mac#%" // fun neg_int1 : {i:int} int(i) - int(~i) = "mac#%" // overload ~ with neg_int0 of 100 overload ~ with neg_int1 of 110 overload neg with neg_int0 of 100 overload neg with neg_int1 of 110 // (* ****** ****** *) // fun succ_int0 : int - int = "mac#%" fun pred_int0 : int - int = "mac#%" // fun succ_int1 : {i:int} int(i) - int(i+1) = "mac#%" fun pred_int1 : {i:int} int(i) - int(i-1) = "mac#%" // overload succ with succ_int0 of 100 overload pred with pred_int0 of 100 // overload succ with succ_int1 of 110 overload pred with pred_int1 of 110 // (* ****** ****** *) // fun half_int0 : int - int = "mac#%" fun half_int1 : {i:int} int(i) - int(i/2) = "mac#%" // overload half with half_int0 of 100 overload half with half_int1 of 110 // (* ****** ****** *) // fun add_int0_int0: (int, int) - int = "mac#%" fun sub_int0_int0 : (int, int) - int = "mac#%" fun mul_int0_int0 : (int, int) - int = "mac#%" fun div_int0_int0 : (int, int) - int = "mac#%" fun mod_int0_int0 : (int, int) - int = "mac#%" // fun add_int1_int1 : {i,j:int} (int(i), int(j)) - int(i+j) = "mac#%" fun sub_int1_int1 : {i,j:int} (int(i), int(j)) - int(i-j) = "mac#%" fun mul_int1_int1 : {i,j:int} (int(i), int(j)) - int(i*j) = "mac#%" fun div_int1_int1 : {i,j:int} (int(i), int(j)) - int(i/j) = "mac#%" // (* ****** ****** *) // fun nmod_int1_int1 { i,j:int | i >= 0; j > 0 } (i: int(i), j: int(j)): int(nmod(i, j)) = "mac#%" // (* ****** ****** *) // overload + with add_int0_int0 of 100 overload - with sub_int0_int0 of 100 overload * with mul_int0_int0 of 100 overload / with div_int0_int0 of 100 overload % with mod_int0_int0 of 100 overload mod with mod_int0_int0 of 100 // overload + with add_int1_int1 of 120 overload - with sub_int1_int1 of 120 overload * with mul_int1_int1 of 120 overload / with div_int1_int1 of 120 // (* ****** ****** *) // fun pow_int0_int1 : (int, intGte(0)) - int = "mac#%" // overload ** with pow_int0_int1 of 110 // (* ****** ****** *) // fun asl_int0_int1 : (int, intGte(0)) - int = "mac#%" fun asr_int0_int1 : (int, intGte(0)) - int = "mac#%" // (* ****** ****** *) // overload << with asl_int0_int1 of 110 overload >> with asr_int0_int1 of 110 // (* ****** ****** *) fun lnot_int0 : (int) - int = "mac#%" fun lor_int0_int0 : (int, int) - int = "mac#%" fun lxor_int0_int0 : (int, int) - int = "mac#%" fun land_int0_int0 : (int, int) - int = "mac#%" (* ****** ****** *) // overload lnot with lnot_int0 of 100 overload lor with lor_int0_int0 of 100 overload lxor with lxor_int0_int0 of 100 overload land with land_int0_int0 of 100 // (* ****** ****** *) // fun lt_int0_int0: (int, int) - bool = "mac#%" fun lte_int0_int0: (int, int) - bool = "mac#%" fun gt_int0_int0: (int, int) - bool = "mac#%" fun gte_int0_int0: (int, int) - bool = "mac#%" // fun eq_int0_int0: (int, int) - bool = "mac#%" fun neq_int0_int0: (int, int) - bool = "mac#%" // fun compare_int0_int0: (int, int) - int = "mac#%" // fun lt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i < j) = "mac#%" fun lte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i <= j) = "mac#%" fun gt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i > j) = "mac#%" fun gte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i >= j) = "mac#%" // fun eq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i == j) = "mac#%" fun neq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i != j) = "mac#%" // (* ****** ****** *) // overload < with lt_int0_int0 of 100 overload <= with lte_int0_int0 of 100 overload > with gt_int0_int0 of 100 overload >= with gte_int0_int0 of 100 overload = with eq_int0_int0 of 100 overload != with neq_int0_int0 of 100 overload <> with neq_int0_int0 of 100 // overload compare with compare_int0_int0 of 100 // (* ****** ****** *) // overload < with lt_int1_int1 of 120 overload <= with lte_int1_int1 of 120 overload > with gt_int1_int1 of 120 overload >= with gte_int1_int1 of 120 overload = with eq_int1_int1 of 120 overload != with neq_int1_int1 of 120 overload <> with neq_int1_int1 of 120 // (* ****** ****** *) // fun max_int0_int0: (int, int) - int = "mac#%" fun min_int0_int0: (int, int) - int = "mac#%" // fun max_int1_int1 : {i,j:int} (int(i), int(j)) - int(max(i,j)) = "mac#%" fun min_int1_int1 : {i,j:int} (int(i), int(j)) - int(min(i,j)) = "mac#%" // (* ****** ****** *) // overload max with max_int0_int0 of 100 overload min with min_int0_int0 of 100 // overload max with max_int1_int1 of 120 overload min with min_int1_int1 of 120 // (* ****** ****** *) // // HX: for unsigned integers // (* ****** ****** *) // fun succ_uint0 : uint - uint = "mac#%" fun pred_uint0 : uint - uint = "mac#%" // fun add_uint0_uint0 : (uint, uint) - uint = "mac#%" fun sub_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mul_uint0_uint0 : (uint, uint) - uint = "mac#%" fun div_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mod_uint0_uint0 : (uint, uint) - uint = "mac#%" // (* ****** ****** *) // overload succ with succ_uint0 overload pred with pred_uint0 // overload + with add_uint0_uint0 of 100 overload - with sub_uint0_uint0 of 100 overload * with mul_uint0_uint0 of 100 overload / with div_uint0_uint0 of 100 overload % with mod_uint0_uint0 of 100 overload mod with mod_uint0_uint0 of 100 // (* ****** ****** *) // fun lsl_uint0_int1 : (uint, intGte(0)) - int = "mac#%" fun lsr_uint0_int1 : (uint, intGte(0)) - int = "mac#%" // (* ****** ****** *) // overload << with lsl_uint0_int1 of 110 overload >> with lsr_uint0_int1 of 110 // (* ****** ****** *) // fun lnot_uint0 : (uint) - uint = "mac#%" fun lor_uint0_uint0 : (uint, uint) - uint = "mac#%" fun lxor_uint0_uint0 : (uint, uint) - uint = "mac#%" fun land_uint0_uint0 : (uint, uint) - uint = "mac#%" // (* ****** ****** *) // overload lnot with lnot_uint0 of 100 overload lor with lor_uint0_uint0 of 100 overload lxor with lxor_uint0_uint0 of 100 overload land with land_uint0_uint0 of 100 // (* ****** ****** *) // fun lt_uint0_uint0: (uint, uint) - bool = "mac#%" fun lte_uint0_uint0: (uint, uint) - bool = "mac#%" fun gt_uint0_uint0: (uint, uint) - bool = "mac#%" fun gte_uint0_uint0: (uint, uint) - bool = "mac#%" // fun eq_uint0_uint0: (uint, uint) - bool = "mac#%" fun neq_uint0_uint0: (uint, uint) - bool = "mac#%" // fun compare_uint0_uint0: (uint, uint) - int = "mac#%" // (* ****** ****** *) // overload < with lt_uint0_uint0 of 100 overload <= with lte_uint0_uint0 of 100 overload > with gt_uint0_uint0 of 100 overload >= with gte_uint0_uint0 of 100 overload = with eq_uint0_uint0 of 100 overload != with neq_uint0_uint0 of 100 overload <> with neq_uint0_uint0 of 100 // overload compare with compare_uint0_uint0 of 100 // (* ****** ****** *) (* end of [integer.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/xmldoc.sats0000644000175000017500000000237713431250607023472 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: September, 2014 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // (* #define ATS_STALOADFLAG 0 #define ATS_EXTERN_PREFIX "ats2js_XMLDOC_" // *) // (* ****** ****** *) // abstype Xmldoc_type // (* ****** ****** *) // typedef Xmldoc = Xmldoc_type typedef Xmldoclst = List0(Xmldoc) typedef Xmldocopt = Option(Xmldoc) // (* ****** ****** *) (* end of [xmldoc.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/bool.sats0000644000175000017500000000465613431250607023141 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // fun bool2int0 (b: bool):<> natLt(2) = "mac#%" fun bool2int1 {b:bool} (b: bool(b)):<> int(bool2int(b)) = "mac#%" // symintr bool2int overload bool2int with bool2int0 of 100 overload bool2int with bool2int1 of 110 // (* ****** ****** *) // fun int2bool0 (i: int):<> bool = "mac#%" fun int2bool1 {i:int}(i: int(i)):<> bool(i != 0) = "mac#%" // symintr int2bool overload int2bool with int2bool0 of 100 overload int2bool with int2bool1 of 110 // (* ****** ****** *) // fun neg_bool0 : bool -> bool = "mac#%" fun neg_bool1 : {b:bool} bool(b) -> bool(~b) = "mac#%" // overload ~ with neg_bool0 of 100 overload ~ with neg_bool1 of 110 // overload not with neg_bool0 of 100 overload not with neg_bool1 of 110 // (* ****** ****** *) fun add_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload + with add_bool0_bool0 of 100 fun add_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 || b2) = "mac#%" overload + with add_bool0_bool1 of 110 fun add_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 || b2) = "mac#%" overload + with add_bool1_bool0 of 110 fun add_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 || b2) = "mac#%" overload + with add_bool1_bool1 of 120 (* ****** ****** *) fun mul_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload * with mul_bool0_bool0 of 100 fun mul_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool0_bool1 of 110 fun mul_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool0 of 110 fun mul_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool1 of 120 (* ****** ****** *) // fun eq_bool0_bool0 : (bool, bool) -> bool = "mac#%" fun neq_bool0_bool0 : (bool, bool) -> bool = "mac#%" // fun eq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 == b2) = "mac#%" fun neq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 != b2) = "mac#%" // overload = with eq_bool0_bool0 of 100 overload = with eq_bool1_bool1 of 120 // overload != with neq_bool0_bool0 of 100 overload != with neq_bool1_bool1 of 120 // (* ****** ****** *) (* end of [bool.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/qlistref.sats0000644000175000017500000000065613431250607024033 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_PACKNAME "ATSCC2JS.qlistref" #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/qlistref.sats" // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/reference.sats0000644000175000017500000000060713431250607024134 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/reference.sats" // (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/slistref.sats0000644000175000017500000000066113431250607024031 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_PACKNAME "ATSCC2JS.slistref" // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/slistref.sats" // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/option.sats0000644000175000017500000000073713431250607023512 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/option.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option (JSfilr, Option(INV(a))): void = "mac#%" // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/funarray.sats0000644000175000017500000000063013431250607024021 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/funarray.sats" // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/stream.sats0000644000175000017500000000107713431250607023473 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/stream.sats" // (* ****** ****** *) // fun stream_nth_exn {a:t0p} ( xs: stream(INV(a)), n: intGte(0) ) : (a) = "mac#%" // end-of-function // overload [] with stream_nth_exn of 100 // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/JSarray.sats0000644000175000017500000000521013431250607023544 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // macdef Array = $extval(JSobj, "Array") // (* ****** ****** *) // fun JSarray_nil {a:vt0p}(): JSarray(a) = "mac#%" fun JSarray_sing {a:vt0p}(a): JSarray(a) = "mac#%" fun JSarray_pair {a:vt0p}(a, a): JSarray(a) = "mac#%" // (* ****** ****** *) // fun JSarray_make_list {a:t0p}(List(INV(a))): JSarray(a) = "mac#%" fun JSarray_make_list_vt {a:vt0p}(List_vt(INV(a))): JSarray(a) = "mac#%" // (* ****** ****** *) // fun JSarray_get_at {a:t0p}(JSarray(a), int): a = "mac#%" fun JSarray_set_at {a:t0p}(JSarray(a), int, a): void = "mac#%" // fun JSarray_exch_at {a:vt0p}(JSarray(a), int, x0: a): (a) = "mac#%" // (* ****** ****** *) // fun JSarray_length{a:vt0p}(JSarray(a)): int = "mac#%" // (* ****** ****** *) // fun JSarray_pop{a:vt0p}(A: JSarray(a)): a = "mac#%" fun JSarray_push{a:vt0p}(A: JSarray(a), x: a): int = "mac#%" // (* ****** ****** *) // fun JSarray_shift{a:vt0p}(A: JSarray(a)): (a) = "mac#%" fun JSarray_unshift{a:vt0p}(A: JSarray(a), x0: a): int = "mac#%" // (* ****** ****** *) // fun JSarray_reverse{a:vt0p}(A: JSarray(a)): void = "mac#%" // (* ****** ****** *) // fun JSarray_copy{a:t@ype}(JSarray(a)): JSarray(a) = "mac#%" // fun JSarray_copy_arrayref {a:t@ype}{n:int} (A: arrayref(a, n), asz: int(n)): JSarray(a) = "mac#" // (* ****** ****** *) // fun JSarray_concat{a:t@ype} (A1: JSarray(a), A2: JSarray(a)): JSarray(a) = "mac#%" // (* ****** ****** *) // // HX: these are based on [splice] // fun JSarray_insert_at {a:vt0p}(JSarray(a), int, a): void = "mac#%" // fun JSarray_takeout_at {a:vt0p}(JSarray(a), ofs: int): (a) = "mac#%" // fun JSarray_remove_at {a:t@ype}(JSarray(a), ofs: int): void = "mac#%" // (* ****** ****** *) // fun JSarray_tabulate_cloref {a:vt0p}{n:nat} (int(n), cfun(natLt(n), a)): JSarray(a) = "mac#%" // (* ****** ****** *) // fun JSarray_join {a:t@ype}(JSarray(a)): string = "mac#%" fun JSarray_join_sep {a:t@ype}(JSarray(a), sep: string): string = "mac#%" // (* ****** ****** *) // fun{a:t0p} JSarray_sort_1(A: JSarray(a)): void fun JSarray_sort_2{a:t0p} (A: JSarray(a), cmp: (a, a) - int): void = "mac#%" // (* ****** ****** *) // // Some function overloading // (* ****** ****** *) // overload [] with JSarray_get_at overload [] with JSarray_set_at // (* ****** ****** *) // overload .pop with JSarray_pop overload .push with JSarray_push // (* ****** ****** *) overload length with JSarray_length (* ****** ****** *) (* end of [JSarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/gmatrixref.sats0000644000175000017500000000066413431250607024351 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_PACKNAME "ATSCC2JS.gmatrixref" #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/gmatrixref.sats" // (* ****** ****** *) (* end of [gmatrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/print.sats0000644000175000017500000000256713431250607023341 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // (* HX: prefix for external names *) // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) #staload "./../basics_js.sats" (* ****** ****** *) // (* typedef fprint_type ( a:t@ype ) = (JSfilr, a) - void *) // (* ****** ****** *) fun print_int : int -> void = "mac#%" fun print_uint : uint -> void = "mac#%" (* ****** ****** *) fun print_bool : bool -> void = "mac#%" (* ****** ****** *) fun print_double : double -> void = "mac#%" (* ****** ****** *) // fun print_string : string -> void = "mac#%" fun fprint_string (JSfilr, string): void = "mac#%" // (* ****** ****** *) fun print_obj{a:t0p}(obj: a): void = "mac#%" (* ****** ****** *) fun print_newline : ((*void*)) -> void = "mac#%" (* ****** ****** *) overload print with print_int of 100 overload print with print_uint of 100 overload print with print_bool of 100 overload print with print_double of 100 overload print with print_string of 100 (* ****** ****** *) // fun {a:t0p} print_val (x: a): void = "mac#%" // fun {a:t0p} fprint_val (JSfilr, x: a): void = "mac#%" // (* ****** ****** *) // // HX-2014-09-19: // these are implemented in // CATS/PRINT/print_store_cats.js // fun the_print_store_join (): string = "mac#%" fun the_print_store_clear : () -> void = "mac#%" // (* ****** ****** *) (* end of [print.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/gprint.sats0000644000175000017500000000060113431250607023473 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../basics_js.sats" // #include "{$LIBATSCC}/SATS/gprint.sats" // (* ****** ****** *) (* end of [gprint.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/ML/0000755000175000017500000000000013431250607021607 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/ML/option0.sats0000644000175000017500000000105513431250607024074 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../../basics_js.sats" // #include "{$LIBATSCC}/SATS/ML/option0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option0 (JSfilr, option0(INV(a))): void = "mac#%" // overload fprint with fprint_option0 of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/ML/matrix0.sats0000644000175000017500000000063713431250607024075 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../../basics_js.sats" // #include "{$LIBATSCC}/SATS/ML/matrix0.sats" // (* ****** ****** *) (* end of [matrix0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/ML/list0.sats0000644000175000017500000000237613431250607023546 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../../basics_js.sats" // #include "{$LIBATSCC}/SATS/ML/list0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list0 (JSfilr, list0(INV(a))): void = "mac#%" // fun{} fprint_list0$sep(out: JSfilr): void = "mac#%" // fun{a:t0p} fprint_list0_sep (JSfilr, list0(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list0 of 100 // (* ****** ****** *) // fun list0_head_exn {a:t0p} (list0(INV(a))): (a) = "mac#%" fun list0_tail_exn {a:t0p} (list0(INV(a))): list0(a) = "mac#%" // overload .head with list0_head_exn overload .tail with list0_tail_exn // (* ****** ****** *) // fun list0_get_at_exn {a:t0p} (list0(INV(a)), intGte(0)): (a) = "mac#%" // (* ****** ****** *) // fun list0_insert_at_exn {a:t0p} ( xs: list0(INV(a)), i: intGte(0), x0: a ) : list0(a) = "mac#%" // end-of-function // (* ****** ****** *) // fun list0_remove_at_exn {a:t0p} (xs: list0(INV(a)), i: intGte(0)): list0(a) = "mac#%" // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/SATS/ML/array0.sats0000644000175000017500000000061213431250607023700 0ustar brandonbrandon(* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" // #staload "./../../basics_js.sats" // #include "{$LIBATSCC}/SATS/ML/array0.sats" // (* ****** ****** *) (* end of [array0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/0000755000175000017500000000000013431250607021506 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/DivideConquer/0000755000175000017500000000000013431250607024247 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/DivideConquer/DATS/0000755000175000017500000000000013431250607025002 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/DivideConquer/DATS/DivideConquer.dats0000644000175000017500000000134413431250607030422 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // #define ATS_EXTERN_PREFIX "ats2js_bucs320_" // // prefix for external names (* // // HX: // DivideConquer // is entirely template-based // #define ATS_STATIC_PREFIX "_ats2js_bucs320_divideconquer_" *) // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // #include "{$LIBATSCC}/BUCS320/DivideConquer/DATS/DivideConquer.dats" // (* ****** ****** *) (* end of [DivideConquer.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/DivideConquer/mylibies.hats0000644000175000017500000000031213431250607026741 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-04-08: // // Generic Divide-Conquer // (* ****** ****** *) // #staload DivideConquer = "./DATS/DivideConquer.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/DivideConquer/TEST/0000755000175000017500000000000013431250607025026 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/DivideConquer/TEST/test01.dats0000644000175000017500000000362113431250607027025 0ustar brandonbrandon(* ****** ****** *) (* ** DivideConquer: ** Fibonacci numbers ** *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test01_dynload" // #define ATS_STATIC_PREFIX "_test01_" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #include "{$LIBATSCC2JS}/mylibies.hats" // #staload "{$LIBATSCC2JS}/SATS/print.sats" // (* ****** ****** *) // #staload "./../DATS/DivideConquer.dats" // (* ****** ****** *) // extern fun Fibonacci(int): int // (* ****** ****** *) assume input_t0ype = int assume output_t0ype = int (* ****** ****** *) // implement DivideConquer$base_test<> (n) = ( if n >= 2 then false else true ) // (* ****** ****** *) // implement DivideConquer$base_solve<> (n) = n // (* ****** ****** *) // implement DivideConquer$divide<> (n) = ( cons0 (n-1, cons0(n-2, nil0())) ) // (* ****** ****** *) implement DivideConquer$conquer$combine<> (_, rs) = r1 + r2 where { // val-list0_cons(r1, rs) = rs val-list0_cons(r2, rs) = rs // } (* ****** ****** *) implement Fibonacci(n) = let // val () = println! ( "Fibonacci(", n, ")" ) // (* implement DivideConquer$solve_rec<> (n) = Fibonacci(n) *) // in DivideConquer$solve<>(n) end // end of [Fibonacci] (* ****** ****** *) // val () = { val () = println! ("Fibonacci(10) = ", Fibonacci(10)) val () = println! ("Fibonacci(20) = ", Fibonacci(20)) (* // // HX: it takes a bit too long: // val () = println! ("Fibonacci(30) = ", Fibonacci(30)) // *) } (* end of [val] *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); %} // end of [%{^] (* ****** ****** *) %{$ test01_dynload(); process.stdout.write(ats2jspre_the_print_store_join()); %} // end of [%{$] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/DivideConquer/TEST/Makefile0000644000175000017500000000117013431250607026465 0ustar brandonbrandon###### # # A simple Makefile # ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2JS=${PATSHOME}/bin/atscc2js ###### NODEJS=nodejs ###### all:: ###### all:: \ test01 test01: \ test01_dats.js test01_dats.c: \ test01.dats; $(PATSOPT) -o $@ -d $< test01_dats.js: \ test01_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: \ test_test01 test_test01: test01_dats.js; $(NODEJS) $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.js ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/parcomb/0000755000175000017500000000000013431250607023131 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/parcomb/DATS/0000755000175000017500000000000013431250607023664 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/parcomb/DATS/parcomb.dats0000644000175000017500000000125313431250607026165 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // (* HX-2014-08: *) // #define ATS_EXTERN_PREFIX "ats2js_bucs320_" #define ATS_STATIC_PREFIX "_ats2js_bucs320_parcomb_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // #staload "./../SATS/parcomb.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/BUCS320/parcomb/DATS/parcomb.dats" // (* ****** ****** *) (* end of [parcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/parcomb/SATS/0000755000175000017500000000000013431250607023703 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/parcomb/SATS/parcomb.sats0000644000175000017500000000104413431250607026221 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2016-11: // #define ATS_EXTERN_PREFIX "ats2js_bucs320_" // // prefix for external names // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #staload "{$LIBATSCC2JS}/basics_js.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/BUCS320/parcomb/SATS/parcomb.sats" // (* ****** ****** *) (* end of [parcomb.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/words/0000755000175000017500000000000013431250607022644 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/words/SATS/0000755000175000017500000000000013431250607023416 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/words/SATS/words.sats0000644000175000017500000000103613431250607025450 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) // // HX-2016-11: // #define ATS_EXTERN_PREFIX "ats2js_bucs320_" // // prefix for external names // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #staload "{$LIBATSCC2JS}/basics_js.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/BUCS320/words/SATS/words.sats" // (* ****** ****** *) (* end of [words.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphStreamize/0000755000175000017500000000000013431250607024433 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphStreamize/DATS/0000755000175000017500000000000013431250607025166 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphStreamize/DATS/GraphStreamize_dfs.dats0000644000175000017500000000143713431250607031631 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_bucs320_" #define ATS_STATIC_PREFIX "_ats2js_bucs320_graphstreamize_dfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // macdef slistref_insert = slistref_push macdef slistref_takeout_opt = slistref_pop_opt // (* ****** ****** *) // #include "{$LIBATSCC}/BUCS320/GraphStreamize/DATS/GraphStreamize_dfs.dats" // (* ****** ****** *) (* end of [GraphStreamize_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphStreamize/DATS/GraphStreamize_bfs.dats0000644000175000017500000000144613431250607031627 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_bucs320_" #define ATS_STATIC_PREFIX "_ats2js_bucs320_graphstreamize_bfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // macdef qlistref_insert = qlistref_enqueue macdef qlistref_takeout_opt = qlistref_dequeue_opt // (* ****** ****** *) // #include "{$LIBATSCC}/BUCS320/GraphStreamize/DATS/GraphStreamize_bfs.dats" // (* ****** ****** *) (* end of [GraphStreamize_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphStreamize/mylibies.hats0000644000175000017500000000070313431250607027131 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-04-08: // // For streamizing graphs // (* ****** ****** *) // #ifdef GRAPHSTREAMIZE_BFS #then // #staload GraphStreamize_bfs = "./DATS/GraphStreamize_bfs.dats" // #endif // #ifdef(GRAPHSTREAMIZE_BFS) // (* ****** ****** *) // #ifdef GRAPHSTREAMIZE_DFS #then // #staload GraphStreamize_dfs = "./DATS/GraphStreamize_dfs.dats" // #endif // #ifdef(GRAPHSTREAMIZE_DFS) // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphStreamize/TEST/0000755000175000017500000000000013431250607025212 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphStreamize/TEST/QueenPuzzle_dfs.dats0000644000175000017500000000410013431250607031205 0ustar brandonbrandon(* For testing GraphStreamize_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_dfs_" // (* ****** ****** *) // #include "./../../../mylibies.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../DATS/GraphStreamize_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theStreamizeStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theStreamizeStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // extern fun QueenPuzzle_solve ( // argumentless ) : stream(node) = "mac#" // implement QueenPuzzle_solve ((*void*)) = res where { val store = slistref_make_nil{node}() // val () = slistref_insert(store, nil0) // val res = GraphStreamize_dfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) // extern fun QueenPuzzle_solve_print () : void = "mac#" // implement QueenPuzzle_solve_print ((*void*)) = let // val xss = QueenPuzzle_solve() val xss = (xss).filter()(lam(xs) => length(xs) >= N) // in println! ("There are ", length(xss), " (full) solutions in total.") end // end of [QueenPuzzle_solve_print] (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // QueenPuzzle_solve_print(); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [QueenPuzzle_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphStreamize/TEST/Makefile0000644000175000017500000000155313431250607026656 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2JS=${PATSHOME}/bin/atscc2js ###### NODEJS=nodejs ###### all:: ###### # all:: \ QueenPuzzle_dfs_dats.js QueenPuzzle_dfs_dats.c: \ QueenPuzzle_dfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_dfs_dats.js: \ QueenPuzzle_dfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: QueenPuzzle_dfs_dats.js; $(NODEJS) $< # ###### # all:: \ QueenPuzzle_bfs_dats.js QueenPuzzle_bfs_dats.c: \ QueenPuzzle_bfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_bfs_dats.js: \ QueenPuzzle_bfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: QueenPuzzle_bfs_dats.js; $(NODEJS) $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.js ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphStreamize/TEST/QueenPuzzle_bfs.dats0000644000175000017500000000410013431250607031203 0ustar brandonbrandon(* For testing GraphStreamize_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_bfs_" // (* ****** ****** *) // #include "./../../../mylibies.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../DATS/GraphStreamize_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theStreamizeStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theStreamizeStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // extern fun QueenPuzzle_solve ( // argumentless ) : stream(node) = "mac#" // implement QueenPuzzle_solve ((*void*)) = res where { val store = qlistref_make_nil{node}() // val () = qlistref_insert(store, nil0) // val res = GraphStreamize_bfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) // extern fun QueenPuzzle_solve_print () : void = "mac#" // implement QueenPuzzle_solve_print ((*void*)) = let // val xss = QueenPuzzle_solve() val xss = (xss).filter()(lam(xs) => length(xs) >= N) // in println! ("There are ", length(xss), " (full) solutions in total.") end // end of [QueenPuzzle_solve_print] (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // QueenPuzzle_solve_print(); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [QueenPuzzle_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/0000755000175000017500000000000013431250607023675 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/DATS/0000755000175000017500000000000013431250607024430 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/DATS/GraphSearch_dfs.dats0000644000175000017500000000142313431250607030330 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_bucs320_" #define ATS_STATIC_PREFIX "_ats2js_bucs320_graphsearch_dfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // macdef slistref_insert = slistref_push macdef slistref_takeout_opt = slistref_pop_opt // (* ****** ****** *) // #include "{$LIBATSCC}/BUCS320/GraphSearch/DATS/GraphSearch_dfs.dats" // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/DATS/GraphSearch_bfs.dats0000644000175000017500000000143213431250607030326 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2js_bucs320_" #define ATS_STATIC_PREFIX "_ats2js_bucs320_graphsearch_bfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc" #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // macdef qlistref_insert = qlistref_enqueue macdef qlistref_takeout_opt = qlistref_dequeue_opt // (* ****** ****** *) // #include "{$LIBATSCC}/BUCS320/GraphSearch/DATS/GraphSearch_bfs.dats" // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/mylibies.hats0000644000175000017500000000067513431250607026403 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-04-08: // // Generic Graph Search // Depth-first and Breath-first // (* ****** ****** *) // #ifdef GRAPHSEARCH_BFS // #staload GraphSearch_bfs = "./DATS/GraphSearch_bfs.dats" // #endif // #ifdef(GRAPHSEARCH_BFS) // (* ****** ****** *) // #ifdef GRAPHSEARCH_DFS // #staload GraphSearch_dfs = "./DATS/GraphSearch_dfs.dats" // #endif // #ifdef(GRAPHSEARCH_DFS) // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/TEST/0000755000175000017500000000000013431250607024454 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/TEST/GameOf24Play_dfs.dats0000644000175000017500000001040313431250607030315 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX"_GameOf24Play_dfs_" // (* ****** ****** *) // #include "./../../../mylibies.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../DATS/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } // (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = slistref_make_nil{node}() val () = slistref_insert(store, nx) // in // GraphSearch_dfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // GameOf24Play(3, 3, 8, 8); GameOf24Play(3, 5, 7, 13); GameOf24Play(4, 4, 10, 10); GameOf24Play(5, 5, 7, 11); GameOf24Play(5, 7, 7, 11); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [GameOf24Play_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/TEST/GameOf24Play_bfs.dats0000644000175000017500000001040013431250607030310 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX"_GameOf24Play_bfs_" // (* ****** ****** *) // #include "./../../../mylibies.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../DATS/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = qlistref_make_nil{node}() val () = qlistref_insert(store, nx) // in // GraphSearch_bfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // GameOf24Play(3, 3, 8, 8); GameOf24Play(3, 5, 7, 13); GameOf24Play(4, 4, 10, 10); GameOf24Play(5, 5, 7, 11); GameOf24Play(5, 7, 7, 11); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [GameOf24Play_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/TEST/QueenPuzzle_dfs.dats0000644000175000017500000000354713431250607030465 0ustar brandonbrandon(* For testing GraphSearch_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_dfs_" // (* ****** ****** *) // #include "./../../../mylibies.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../DATS/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = slistref_make_nil{node}() // val () = slistref_insert(store, nil0) // val () = GraphSearch_dfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // QueenPuzzle_solve(); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [QueenPuzzle_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/TEST/Makefile0000644000175000017500000000252513431250607026120 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2JS=${PATSHOME}/bin/atscc2js ###### NODEJS=nodejs ###### all:: ###### # all:: \ QueenPuzzle_dfs_dats.js QueenPuzzle_dfs_dats.c: \ QueenPuzzle_dfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_dfs_dats.js: \ QueenPuzzle_dfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: QueenPuzzle_dfs_dats.js; $(NODEJS) $< # ###### # all:: \ QueenPuzzle_bfs_dats.js QueenPuzzle_bfs_dats.c: \ QueenPuzzle_bfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_bfs_dats.js: \ QueenPuzzle_bfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: QueenPuzzle_bfs_dats.js; $(NODEJS) $< # ###### # all:: \ GameOf24Play_dfs_dats.js GameOf24Play_dfs_dats.c: \ GameOf24Play_dfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_dfs_dats.js: \ GameOf24Play_dfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: GameOf24Play_dfs_dats.js; $(NODEJS) $< # ###### # all:: \ GameOf24Play_bfs_dats.js GameOf24Play_bfs_dats.c: \ GameOf24Play_bfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_bfs_dats.js: \ GameOf24Play_bfs_dats.c; $(ATSCC2JS) -o $@ -i $< # regress:: GameOf24Play_bfs_dats.js; $(NODEJS) $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.js ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/BUCS320/GraphSearch/TEST/QueenPuzzle_bfs.dats0000644000175000017500000000354613431250607030462 0ustar brandonbrandon(* For testing GraphSearch_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_bfs_" // (* ****** ****** *) // #include "./../../../mylibies.hats" // #staload "./../../../SATS/print.sats" #staload _ = "./../../../DATS/print.dats" // (* ****** ****** *) // #staload "./../DATS/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = qlistref_make_nil{node}() // val () = qlistref_insert(store, nil0) // val () = GraphSearch_bfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{^ // // file inclusion // var fs = require('fs'); eval(fs.readFileSync('./../../../output/libatscc2js_all.js').toString()); eval(fs.readFileSync('./../../../CATS/PRINT/print_store_cats.js').toString()); // %} // end of [%{^] (* ****** ****** *) %{$ // QueenPuzzle_solve(); process.stdout.write(ats2jspre_the_print_store_join()); // %} // end of [%{$] (* ****** ****** *) (* end of [QueenPuzzle_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/0000755000175000017500000000000013431250607022162 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/output/0000755000175000017500000000000013431250607023522 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/output/DATS/0000755000175000017500000000000013431250607024255 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/output/DATS/.gitkeep0000644000175000017500000000000013431250607025674 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/DATS/0000755000175000017500000000000013431250607022715 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/DATS/baconjs.dats0000644000175000017500000000522713431250607025217 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: November, 2016 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // no run-time dynloading // #define ATS_EXTERN_PREFIX "ats2js_baconjs_" // prefix for extern names #define ATS_STATIC_PREFIX "_ats2js_baconjs_" // prefix for static names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // staload "./../SATS/baconjs.sats" // (* ****** ****** *) // implement EStream_map_method (xs, _) = lam(fopr) => EStream_map(xs, fopr) // implement Property_map_method (xs, _) = lam(fopr) => Property_map(xs, fopr) // (* ****** ****** *) // implement EStream_filter_method (xs) = lam(pred) => EStream_filter(xs, pred) // (* ****** ****** *) // implement EStream_scan_method (xs, _(*type*)) = lam(ini, fopr) => EStream_scan(xs, ini, fopr) // (* ****** ****** *) // implement EStream_flatMap_method (xs, _) = lam(fopr) => EStream_flatMap(xs, fopr) // implement Property_flatMap_method (xs, _) = lam(fopr) => Property_flatMap(xs, fopr) // (* ****** ****** *) // implement EStream_onValue_method (xs) = lam(fopr) => EStream_onValue(xs, fopr) // implement Property_onValue_method (xs) = lam(fopr) => Property_onValue(xs, fopr) // (* ****** ****** *) // implement EStream_subscribe_method (xs) = lam(fopr) => EStream_subscribe(xs, fopr) // implement Property_subscribe_method (xs) = lam(fopr) => Property_subscribe(xs, fopr) // (* ****** ****** *) // implement EStream_doAction_method (xs) = lam(fopr) => EStream_doAction(xs, fopr) // implement Property_doAction_method (xs) = lam(fopr) => Property_doAction(xs, fopr) // (* ****** ****** *) (* end of [baconjs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/DATS/baconjs_ext.dats0000644000175000017500000001126513431250607026076 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: October, 2015 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // no run-time dynloading // #define ATS_EXTERN_PREFIX "ats2js_baconjs_ext_" // prefix for extern names #define ATS_STATIC_PREFIX "_ats2js_baconjs_ext_" // prefix for static names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // staload "./../SATS/baconjs.sats" staload "./../SATS/baconjs_ext.sats" // (* ****** ****** *) // (* fun EStream_scan_stream_opt {a,b,c:t0p} ( xs: EStream(b) , ini: a, ys: stream(c), fopr: cfun(a, b, c, Option_vt(a)) ) : Property(a) = "mac#%" // end-of-function *) // implement EStream_scan_stream_opt {a,b,c} (xs, ini, ys, fopr) = let // val rys = ref{stream(c)}(ys) // val fopr2 = lam ( ini: a, x: b ) : a = let val ys = rys[] in // case+ !ys of | stream_nil() => ini | stream_cons(y, ys) => let val opt = fopr(ini, x, y) in case+ opt of | ~None_vt() => ini | ~Some_vt(ini) => (rys[] := ys; ini) end // end of [stream_cons] // end // end of [fopr2] // in EStream_scan(xs, ini, fopr2) end // end of [EStream_scan_stream_opt] // (* ****** ****** *) // (* fun EValue_get_elt {a:t0p} (x: EValue(a)): (a) = "mac#%" *) implement EValue_get_elt {a}(eval) = ref_get_elt($UN.cast{ref(a)}(eval)) // (* ****** ****** *) // (* fun EValue_make_property {a:t0p}(Property(a)): EValue(a) = "mac#%" *) // implement EValue_make_property {a}(xs) = let // val x0 = $UN.cast{a}(0) // val xref = ref{a}(x0) // val ((*void*)) = Property_onValue (xs, lam(x) = xref[] := x) // in $UN.cast{EValue(a)}(xref) end // end of [EValue_make_property] (* ****** ****** *) // (* fun EValue_make_estream_scan {a,b:t0p} ( x0: a, ys: EStream(b), fopr: cfun(a, b, a) ) : EValue(a) = "mac#%" // end-of-fun *) // implement EValue_make_estream_scan {a,b} ( x0, ys, fopr ) = let // val xref = ref{a}(x0) // val () = EStream_onValue{b}( ys, lam(y) = xref[] := fopr(xref[], y) ) (* end of [val] *) // in $UN.cast{EValue(a)}(xref) end // end of [EValue_make_estream_scan] (* ****** ****** *) local // datatype tagged(a:t@ype+) = | Opening of (int, a) | Closing of (int) // in (* in-of-local *) implement EStream_singpair_trans {a}(xs, delta) = let // val x0 = $UN.cast{a}(0) // val xs_tagged = EStream_scan{tagged(a)}{a} ( xs , Opening(0, x0) , lam(res, x) => let val-Opening(n, _) = res in Opening(n+1, x) end ) (* end of [EStream_scan] *) val xs_tagged = Property_changes(xs_tagged) // val ys_tagged = EStream_flatMap {tagged(a)}{tagged(a)} ( xs_tagged , lam x => let val-Opening(n, _) = x in Bacon_later(delta(*ms*), Closing(n)) end ) // datatype state(a:t0p) = | Issued of Option(singpair(a)) | Waiting of (int, a) // in // ( ( Property_changes ( EStream_scan {state(a)}{tagged(a)} ( merge ( xs_tagged, ys_tagged ) , Issued(None()) // initial , lam(state, tagged) => ( case+ state of | Issued(_) => ( case+ tagged of | Closing(n) => Issued(None()) | Opening(n, x) => Waiting(n, x) ) | Waiting(n0, x0) => ( case+ tagged of | Closing(n) => if n < n0 then state else Issued(Some(Sing(x0))) // end of [if] | Opening(_, x1) => Issued(Some(Pair(x0, x1))) ) // end of [case+] ) ) ) ).filter() ( lam(state) => case+ state of Issued(opt) => opt.is_some() | _ => false // end of [lam] ) ).map(TYPE{singpair(a)}) ( lam(state) => case- state of Issued(opt) => (case- opt of Some(x) => x) // end of [lam] ) // end // end of [EStream_singpair_trans] end // end of [local] (* ****** ****** *) (* end of [baconjs_ext.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/Makefile0000644000175000017500000000155613431250607023631 0ustar brandonbrandon###### # # For generating libatscc2js # ###### PATSOPT=$(PATSHOME)/bin/patsopt ATSCC2JS=$(PATSHOME)/bin/atscc2js ###### CAT=cat CPF=cp -f RMF=rm -f SCPR=scp -r ###### all:: all_in_one:: ###### # all:: ; \ $(PATSOPT) -d ./DATS/baconjs.dats | \ $(ATSCC2JS) -o ./output/DATS/baconjs_dats.js -i all:: ; \ $(PATSOPT) -d ./DATS/baconjs_ext.dats | \ $(ATSCC2JS) -o ./output/DATS/baconjs_ext_dats.js -i # ###### LIBATSCC2JS_BACONJS_ALL_JS=\ output/libatscc2js_baconjs_all.js ###### # all_in_one:: \ libatscc2js_baconjs_all libatscc2js_baconjs_all:: ; \ $(CAT) \ >$(LIBATSCC2JS_BACONJS_ALL_JS) \ CATS/baconjs_cats.js \ output/DATS/baconjs_dats.js \ output/DATS/baconjs_ext_dats.js \ # ###### clean:: ; $(RMF) *~ */*~ ###### cleanall:: clean cleanall:: ; $(RMF) output/DATS/*_dats.js cleanall:: ; $(RMF) $(LIBATSCC2JS_BACONJS_ALL_JS) ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/mylibies.hats0000644000175000017500000000036313431250607024662 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2017-01-30: ** For downstream static loading *) (* ****** ****** *) // #staload BACONJS = "./SATS/baconjs.sats" #staload BACONJS_EXT = "./SATS/baconjs_ext.sats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/TEST/0000755000175000017500000000000013431250607022741 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/TEST/Counter/0000755000175000017500000000000013431250607024360 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/TEST/Counter/Makefile0000644000175000017500000000065113431250607026022 0ustar brandonbrandon###### # # A simple Makefile # ###### PATSCC=$(PATSHOME)/bin/patscc ATSCC2JS=$(PATSHOME)/bin/atscc2js ###### all:: ###### # all:: \ Counter_dats.js # Counter_dats.c: Counter.dats; $(PATSCC) -ccats $< Counter_dats.js: Counter_dats.c; $(ATSCC2JS) -o $@ -i $< # ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_dats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_dats.js ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/TEST/Counter/Counter.html0000644000175000017500000000164713431250607026675 0ustar brandonbrandon Bacon.js

A Counter

For a little taste of Bacon.js :)

Counting up and down as you click:

00
ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/TEST/Counter/Counter.dats0000644000175000017500000000437413431250607026664 0ustar brandonbrandon(* ** FRP via Bacon.js *) (* ****** ****** *) #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "my_dynload" (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // staload _(*anon*) = { #include "./../../mylibies.dats" } (*staload*) // #include "./../../mylibies.hats" // (* ****** ****** *) // staload $BACONJS // opening [BACONJS] // (* ****** ****** *) %{^ // var theUps = $("#up").asEventStream("click") var theDowns = $("#down").asEventStream("click") var theRandoms = $("#random").asEventStream("click") var theResets = $("#reset").asEventStream("click") // var theCounts = 0 // %} // end of [%{^] (* ****** ****** *) // val theUps = $extval(EStream(void), "theUps") val theDowns = $extval(EStream(void), "theDowns") val theRandoms = $extval(EStream(void), "theRandoms") val theResets = $extval(EStream(void), "theResets") // (* ****** ****** *) datatype action = Up | Down | Random | Reset (* ****** ****** *) // val theUps = theUps.map(TYPE{action})(lam(x) => Up()) val theDowns = theDowns.map(TYPE{action})(lam(x) => Down()) val theRandoms = theRandoms.map(TYPE{action})(lam(x) => Random()) val theResets = theResets.map(TYPE{action})(lam(x) => Reset()) // val theClicks = theUps val theClicks = merge(theClicks, theDowns) val theClicks = merge(theClicks, theRandoms) val theClicks = merge(theClicks, theResets) // (* ****** ****** *) // val theCounts = $BACONJS.EStream_scan {int}{action} ( theClicks, 0 , lam(y, x) = case+ x of | Up() => min(99, y+1) | Down() => max(0, y-1) | Random() => double2int(100*JSmath_random()) | Reset() => 0 ) // val theCounts = let // fun stringize ( x0: int ) : string = let // val d0 = x0 % 10 val x1 = x0 / 10 val d1 = x1 % 10 // in String(d1) + String(d0) end // end of [stringize] // in // theCounts.map(TYPE{string})(lam(x) = stringize(x)) // end // end of [val] // extvar "theCounts" = theCounts // (* ****** ****** *) %{$ // function Counter_initize() { var _ = my_dynload() var _ = theCounts.assign($("#counter"), "text") } // jQuery(document).ready(function(){Counter_initize();}); // %} // end of [%{$] (* ****** ****** *) (* end of [Counter.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/TEST/Counter_bus/0000755000175000017500000000000013431250607025231 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/TEST/Counter_bus/Makefile0000644000175000017500000000067513431250607026701 0ustar brandonbrandon###### # # A simple Makefile # ###### PATSCC=$(PATSHOME)/bin/patscc ATSCC2JS=$(PATSHOME)/bin/atscc2js ###### all:: ###### # all:: \ Counter_bus_dats.js # Counter_bus_dats.c: Counter_bus.dats; $(PATSCC) -ccats $< Counter_bus_dats.js: Counter_bus_dats.c; $(ATSCC2JS) -o $@ -i $< # ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_dats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_dats.js ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/TEST/Counter_bus/Counter_bus.html0000644000175000017500000000166513431250607030417 0ustar brandonbrandon Bacon.js

A Counter (via Bus)

For a little taste of Bacon.js :)

Counting up and down as you click:

00
ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/TEST/Counter_bus/Counter_bus.dats0000644000175000017500000000504113431250607030376 0ustar brandonbrandon(* ** FRP via Bacon.js *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "my_dynload" // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // (* ****** ****** *) // #include "{$LIBATSCC2JS}/mylibies.hats" // (* ****** ****** *) // staload _(*anon*) = { #include "./../../mylibies.dats" } (*staload*) // #include "./../../mylibies.hats" // (* ****** ****** *) // staload $BACONJS // opening [BACONJS] // (* ****** ****** *) %{^ // var theUps = $("#up").asEventStream("click") var theDowns = $("#down").asEventStream("click") var theRandoms = $("#random").asEventStream("click") var theResets = $("#reset").asEventStream("click") // var theCounts = 0 // %} // end of [%{^] (* ****** ****** *) // val theUps = $extval(EStream(void), "theUps") val theDowns = $extval(EStream(void), "theDowns") val theRandoms = $extval(EStream(void), "theRandoms") val theResets = $extval(EStream(void), "theResets") // (* ****** ****** *) datatype action = Up | Down | Random | Reset (* ****** ****** *) // val theUps = theUps.map(TYPE{action})(lam(x) => Up()) val theDowns = theDowns.map(TYPE{action})(lam(x) => Down()) val theRandoms = theRandoms.map(TYPE{action})(lam(x) => Random()) val theResets = theResets.map(TYPE{action})(lam(x) => Reset()) // (* ****** ****** *) // val theClicks = theUps val theClicks = merge(theClicks, theDowns) val theClicks = merge(theClicks, theRandoms) val theClicks = merge(theClicks, theResets) // (* ****** ****** *) val theCounts = let // val state = ref{int}(0) val mybus = Bacon_new_bus() // fun aux ( x: action ) : void = let // val n = state[] // val n = ( case+ x of | Up() => if n < 99 then n+1 else 0 | Down() => if n > 0 then n-1 else 99 | Random() => double2int(100*JSmath_random()) | Reset() => 0 ) : int // end of [val] // val () = state[] := n // in mybus.push(n) end // end of [aux] // val () = theClicks.onValue()(lam(x) => aux(x)) // in mybus end // end of [theCounts] (* ****** ****** *) // val theCounts = let // fun stringize ( x0: int ) : string = let // val d0 = x0 % 10 val x1 = x0 / 10 val d1 = x1 % 10 // in String(d1) + String(d0) end // end of [stringize] // in theCounts.map(TYPE{string})(lam(x) => stringize(x)) end // end of [val] // extvar "theCounts" = theCounts // (* ****** ****** *) %{$ // function Counter_initize() { var _ = my_dynload() var _ = theCounts.assign($("#counter"), "text") } // jQuery(document).ready(function(){Counter_initize();}); // %} // end of [%{$] (* ****** ****** *) (* end of [Counter.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/CATS/0000755000175000017500000000000013431250607022714 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/CATS/baconjs_cats.js0000644000175000017500000001527413431250607025714 0ustar brandonbrandon/* ****** // // HX-2015-04: // for JavaScript code // translated from ATS source // ****** */ /* // //beg of [baconjs_cats.js] // */ /* ****** ****** */ // function ats2js_baconjs_Bacon_more() { return Bacon.more; } function ats2js_baconjs_Bacon_noMore() { return Bacon.noMore; } // /* ****** ****** */ // function ats2js_baconjs_Bacon_once(x) { return Bacon.once(x); } function ats2js_baconjs_Bacon_never() { return Bacon.never(); } // /* ****** ****** */ // function ats2js_baconjs_Bacon_later (delay, x) { return Bacon.later(delay, x); } // /* ****** ****** */ // function ats2js_baconjs_Bacon_interval (int, x) { return Bacon.interval(int, x); } // function ats2js_baconjs_Bacon_repeatedly (int, xs) { return Bacon.repeatedly(int, xs); } // function ats2js_baconjs_Bacon_sequentially (int, xs) { return Bacon.sequentially(int, xs); } // /* ****** ****** */ // function ats2js_baconjs_Bacon_repeat (fopr) { return Bacon.repeat( function(i) {return ats2jspre_cloref1_app(fopr, i);} // end of [function] ); // end of [Bacon.repeat] } // /* ****** ****** */ function ats2js_baconjs_Bacon_fromPoll (int, fopr) { return Bacon.fromPoll( int , function(){return ats2jspre_cloref0_app(fopr);} ); // end of [Bacon.fromPoll] } // ats2js_baconjs_Bacon_fromPoll /* ****** ****** */ // function ats2js_baconjs_EStream_map (xs, fopr) { return ats2js_baconjs_Observable_map(xs, fopr); } function ats2js_baconjs_Property_map (xs, fopr) { return ats2js_baconjs_Observable_map(xs, fopr); } function ats2js_baconjs_Observable_map (xs, fopr) { return xs.map( function(x){return ats2jspre_cloref1_app(fopr, x);} ); // end of [return] } // /* ****** ****** */ // function ats2js_baconjs_EStream_filter (xs, fopr) { return ats2js_baconjs_Observable_filter(xs, fopr); } function ats2js_baconjs_Property_filter (xs, fopr) { return ats2js_baconjs_Observable_filter(xs, fopr); } function ats2js_baconjs_Observable_filter (xs, fopr) { return xs.filter( function(x){return ats2jspre_cloref1_app(fopr, x);} ); // end of [return] } // /* ****** ****** */ // function ats2js_baconjs_EStream_map_property (xs, ys) { return xs.map(ys); } function ats2js_baconjs_EStream_filter_property (xs, bs) { return xs.filter(bs); } // /* ****** ****** */ function ats2js_baconjs_EStream_scan (xs, ini, fopr) { return xs.scan( ini, function(y, x){return ats2jspre_cloref2_app(fopr, y, x);} ); // end of [return] } /* ****** ****** */ // function ats2js_baconjs_EStream_merge2 ( xs1, xs2 ) { return Bacon.mergeAll(xs1, xs2); } function ats2js_baconjs_EStream_merge3 ( xs1, xs2, xs3 ) { return Bacon.mergeAll(xs1, xs2, xs3); } function ats2js_baconjs_EStream_merge4 ( xs1, xs2, xs3, xs4 ) { return Bacon.mergeAll(xs1, xs2, xs3, xs4); } function ats2js_baconjs_EStream_merge5 ( xs1, xs2, xs3, xs4, xs5 ) { return Bacon.mergeAll(xs1, xs2, xs3, xs4, xs5); } function ats2js_baconjs_EStream_merge6 ( xs1, xs2, xs3, xs4, xs5, xs6 ) { return Bacon.mergeAll(xs1, xs2, xs3, xs4, xs5, xs6); } // /* ****** ****** */ // function ats2js_baconjs_EStream_flatMap (xs, fopr) { return ats2js_baconjs_Observable_flatMap(xs, fopr); } function ats2js_baconjs_Property_flatMap (xs, fopr) { return ats2js_baconjs_Observable_flatMap(xs, fopr); } function ats2js_baconjs_Observable_flatMap (xs, fopr) { return xs.flatMap( function(x){return ats2jspre_cloref1_app(fopr, x);} ); // end of [return] } // /* ****** ****** */ function ats2js_baconjs_Bacon_combineWith2 (xs1, xs2, fopr) { var theCombined = Bacon.combineWith( function(x1,x2){ return ats2jspre_cloref2_app(fopr, x1, x2); }, xs1, xs2 ) // end of [var] return theCombined; } function ats2js_baconjs_Bacon_combineWith3 (xs1, xs2, xs3, fopr) { var theCombined = Bacon.combineWith( function(x1,x2,x3){ return ats2jspre_cloref3_app(fopr, x1, x2, x3); }, xs1, xs2, xs3 ) // end of [var] return theCombined; } /* ****** ****** */ // function ats2js_baconjs_EStream_toProperty (xs) { return xs.toProperty(); } function ats2js_baconjs_EStream_toProperty_init (xs, x0) { return xs.toProperty(x0); } // /* ****** ****** */ // function ats2js_baconjs_Property_changes (xs) { return xs.changes(/*void*/); } function ats2js_baconjs_Property_toEventStream (xs) { return xs.toEventStream(/*void*/); } // /* ****** ****** */ function ats2js_baconjs_EStream_onValue (xs, fopr) { return ats2js_baconjs_Observable_onValue(xs, fopr); } function ats2js_baconjs_Property_onValue (xs, fopr) { return ats2js_baconjs_Observable_onValue(xs, fopr); } function ats2js_baconjs_Observable_onValue (xs, fopr) { return xs.onValue( function(x){return ats2jspre_cloref1_app(fopr, x);} ); // end of [return] } /* ****** ****** */ function ats2js_baconjs_EStream_subscribe (xs, fopr) { return ats2js_baconjs_Observable_subscribe(xs, fopr); } function ats2js_baconjs_Property_subscribe (xs, fopr) { return ats2js_baconjs_Observable_subscribe(xs, fopr); } function ats2js_baconjs_Observable_subscribe (xs, fopr) { return xs.subscribe( function(x){return ats2jspre_cloref1_app(fopr, x);} ); // end of [return] } /* ****** ****** */ // function ats2js_baconjs_Property_startWith (xs, x0) { return xs.startWith(x0); } // /* ****** ****** */ // function ats2js_baconjs_EStream_doAction (xs, fopr) { return ats2js_baconjs_Observable_doAction(xs, fopr); } function ats2js_baconjs_Property_doAction (xs, fopr) { return ats2js_baconjs_Observable_doAction(xs, fopr); } function ats2js_baconjs_Observable_doAction (xs, fopr) { return xs.doAction( function(x){ats2jspre_cloref1_app(fopr, x); return;} ); // end of [return] } // /* ****** ****** */ // function ats2js_baconjs_Property_sampledBy_estream (xs, ys) { return xs.sampledBy(ys); } function ats2js_baconjs_Property_sampledBy_estream_cfun (xs, ys, fopr) { return xs.sampledBy( ys,function(x,y){return ats2jspre_cloref2_app(fopr, x, y);} ); // end of [return] } // /* ****** ****** */ // function ats2js_baconjs_Property_sampledBy_property (xs, ys) { return xs.sampledBy(ys); } function ats2js_baconjs_Property_sampledBy_property_cfun (xs, ys, fopr) { return xs.sampledBy( ys,function(x,y){return ats2jspre_cloref2_app(fopr, x, y);} ); // end of [return] } // /* ****** ****** */ // function ats2js_baconjs_EStream_zip_estream_cfun (xs, ys, fopr) { return xs.zip( ys,function(x,y){return ats2jspre_cloref2_app(fopr, x, y);} ); /* end of [return] */ } // /* ****** ****** */ function ats2js_baconjs_Bacon_new_bus() { return new Bacon.Bus(); } /* ****** ****** */ // function ats2js_baconjs_EStream_bus_push(bus, x0) { return bus.push(x0); } function ats2js_baconjs_EStream_bus_plug(bus, xs) { return bus.plug(xs); } // /* ****** ****** */ /* end of [baconjs_cats.js] */ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/SATS/0000755000175000017500000000000013431250607022734 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/SATS/baconjs.sats0000644000175000017500000002366213431250607025260 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: April, 2015 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX: // prefix for // external names // #define ATS_EXTERN_PREFIX "ats2js_baconjs_" // (* #define // no staloading at ATS_STALOADFLAG 0 // run-time *) // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // #staload "{$LIBATSCC2JS}/basics_js.sats" // (* ****** ****** *) // (* For Opaque values *) abstype Value = ptr // abstype Event = ptr // abstype EStream(a:t@ype) = ptr // invariant! abstype Property(a:t@ype) = ptr // invariant! // (* ****** ****** *) fun Bacon_more(): Value = "mac#%" fun Bacon_noMore(): Value = "mac#%" (* ****** ****** *) // fun Bacon_once {a:t0p}(x: a): EStream(a) = "mac#%" fun Bacon_never {a:t0p}((*void*)): EStream(a) = "mac#%" // (* ****** ****** *) // fun Bacon_later {a:t0p} (ms: intGte(0), x: a): EStream(a) = "mac#%" // (* ****** ****** *) // fun Bacon_interval {a:t0p} (ms: intGte(0), x: a): EStream(a) = "mac#%" // fun Bacon_repeatedly {a:t0p} (ms: intGte(0), xs: JSarray(a)): EStream(a) = "mac#%" // fun Bacon_sequentially {a:t0p} (ms: intGte(0), xs: JSarray(a)): EStream(a) = "mac#%" // (* ****** ****** *) // fun Bacon_repeat {a:t0p} ( fopr: cfun(intGte(0), EStream(a)) ) : EStream(a) = "mac#%" // end of [Bacon_repeat] // (* ****** ****** *) // fun Bacon_fromPoll {a:t0p} (ms: intGte(0), fopr: cfun(a)): EStream(a) = "mac#%" // (* ****** ****** *) // fun EStream_map {a:t0p}{b:t0p} ( xs: EStream(a), fopr: cfun(a, b) ) : EStream(b) = "mac#%" // end-of-fun fun EStream_map_method {a:t0p}{b:t0p} ( xs: EStream(a), TYPE(b))(fopr: cfun(a, b) ) : EStream(b) = "mac#%" // end-of-fun // fun Property_map {a:t0p}{b:t0p} ( xs: Property(a), fopr: cfun(a, b) ) : Property(b) = "mac#%" // end-of-fun fun Property_map_method {a:t0p}{b:t0p} ( xs: Property(a), TYPE(b))(fopr: cfun(a, b) ) : Property(b) = "mac#%" // end-of-fun // (* overload map with EStream_map overload map with Property_map *) overload .map with EStream_map_method overload .map with Property_map_method // (* ****** ****** *) // fun EStream_map_property {a:t0p}{b:t0p} ( xs: EStream(a), ys: Property(b) ) : EStream(b) = "mac#%" // end-of-fun // overload map with EStream_map_property overload .map with EStream_map_property // (* ****** ****** *) // fun EStream_filter {a:t0p} ( xs: EStream(a), test: cfun(a, bool) ) : EStream(a) = "mac#%" // end-of-fun fun EStream_filter_method {a:t0p} ( xs: EStream(a))(test: cfun(a, bool) ) : EStream(a) = "mac#%" // end-of-fun // (* overload filter with EStream_filter *) overload .filter with EStream_filter_method // (* ****** ****** *) // fun EStream_filter_property {a:t0p} ( xs: EStream(a), bs: Property(bool) ) : EStream(a) = "mac#%" // end-of-fun // overload filter with EStream_filter_property overload .filter with EStream_filter_property // (* ****** ****** *) // fun EStream_scan {a:t0p}{b:t0p} ( xs: EStream(b), ini: a, fopr: cfun(a, b, a) ) : Property(a) = "mac#%" // end-of-function fun EStream_scan_method {a:t0p}{b:t0p} ( xs: EStream(b), _: TYPE(a))(ini: a, fopr: cfun(a, b, a) ) : Property(a) = "mac#%" // end-of-function // (* overload scan with EStream_scan *) overload .scan with EStream_scan_method // (* ****** ****** *) // fun EStream_merge2 {a:t0p} (EStream(a), EStream(a)): EStream(a) = "mac#%" fun EStream_merge3 {a:t0p} ( EStream(a) , EStream(a), EStream(a)): EStream(a) = "mac#%" fun EStream_merge4 {a:t0p} ( EStream(a), EStream(a) , EStream(a), EStream(a)): EStream(a) = "mac#%" fun EStream_merge5 {a:t0p} ( EStream(a), EStream(a) , EStream(a), EStream(a), EStream(a)): EStream(a) = "mac#%" fun EStream_merge6 {a:t0p} ( EStream(a), EStream(a), EStream(a) , EStream(a), EStream(a), EStream(a) ): EStream(a) = "mac#%" // overload merge with EStream_merge2 overload merge with EStream_merge3 overload merge with EStream_merge4 overload merge with EStream_merge5 overload merge with EStream_merge6 // (* overload .merge with EStream_merge2 overload .merge with EStream_merge3 overload .merge with EStream_merge4 *) // (* ****** ****** *) // fun EStream_flatMap {a:t0p}{b:t0p} ( xs: EStream(a), fopr: cfun(a, EStream(b)) ) : EStream(b) = "mac#%" // end-of-function fun EStream_flatMap_method {a:t0p}{b:t0p} ( EStream(a), TYPE(b))(fopr: cfun(a, EStream(b)) ) : EStream(b) = "mac#%" // end-of-function // fun Property_flatMap {a:t0p}{b:t0p} ( xs: Property(a), fopr: cfun(a, EStream(b)) ) : EStream(b) = "mac#%" // end-of-function fun Property_flatMap_method {a:t0p}{b:t0p} ( xs: Property(a), _: TYPE(b))(fopr: cfun(a, EStream(b)) ) : EStream(b) = "mac#%" // end-of-function // (* overload flatMap with EStream_flatMap overload flatMap with Property_flatMap *) overload .flatMap with EStream_flatMap_method overload .flatMap with Property_flatMap_method // (* ****** ****** *) // fun Bacon_combineWith2 {a,b:t0p}{c:t0p} ( Property(a), Property(b), cfun(a, b, c) ) : Property(c) = "mac#%" // end-of-function fun Bacon_combineWith3 {a,b,c:t0p}{d:t0p} ( Property(a), Property(b), Property(c), cfun(a, b, c, d) ) : Property(d) = "mac#%" // end-of-function // overload combineWith with Bacon_combineWith2 overload combineWith with Bacon_combineWith3 // (* ****** ****** *) // fun EStream_toProperty {a:t0p}(EStream(a)): Property(a) = "mac#%" fun EStream_toProperty_init {a:t0p}(EStream(a), x0: a): Property(a) = "mac#%" // overload toProperty with EStream_toProperty overload toProperty with EStream_toProperty_init overload .toProperty with EStream_toProperty overload .toProperty with EStream_toProperty_init // (* ****** ****** *) // fun Property_changes {a:t0p}(Property(a)): EStream(a) = "mac#%" // overload changes with Property_changes overload .changes with Property_changes // fun Property_toEventStream {a:t0p}(Property(a)): EStream(a) = "mac#%" // overload toEventStream with Property_toEventStream overload .toEventStream with Property_toEventStream // (* ****** ****** *) // fun EStream_onValue {a:t0p}(EStream(a), cfun(a, void)): void = "mac#%" fun Property_onValue {a:t0p}(Property(a), cfun(a, void)): void = "mac#%" fun EStream_onValue_method {a:t0p}(EStream(a))(cfun(a, void)): void = "mac#%" fun Property_onValue_method {a:t0p}(Property(a))(cfun(a, void)): void = "mac#%" // (* overload onValue with EStream_onValue overload onValue with Property_onValue *) overload .onValue with EStream_onValue_method overload .onValue with Property_onValue_method // (* ****** ****** *) // fun EStream_subscribe {a:t0p}(EStream(a), cfun(Event, void)): void = "mac#%" fun Property_subscribe {a:t0p}(Property(a), cfun(Event, void)): void = "mac#%" fun EStream_subscribe_method {a:t0p}(EStream(a))(cfun(Event, void)): void = "mac#%" fun Property_subscribe_method {a:t0p}(Property(a))(cfun(Event, void)): void = "mac#%" // (* overload subscribe with EStream_subscribe overload subscribe with Property_subscribe *) overload .subscribe with EStream_subscribe_method overload .subscribe with Property_subscribe_method // (* ****** ****** *) // fun Property_startWith {a:t0p}(Property(a), a): Property(a) = "mac#%" // (* ****** ****** *) // fun EStream_doAction {a:t0p} (xs: EStream(a), f: cfun(a, void)): EStream(a) = "mac#%" fun Property_doAction {a:t0p} (xs: Property(a), f: cfun(a, void)): Property(a) = "mac#%" fun EStream_doAction_method {a:t0p} (xs: EStream(a))(f: cfun(a, void)): EStream(a) = "mac#%" fun Property_doAction_method {a:t0p} (xs: Property(a))(f: cfun(a, void)): Property(a) = "mac#%" // (* overload doAction with EStream_doAction overload doAction with Property_doAction *) overload .doAction with EStream_doAction_method overload .doAction with Property_doAction_method // (* ****** ****** *) // fun Property_sampledBy_estream {a,b:t0p}(Property(a), EStream(b)): EStream(a) = "mac#%" fun Property_sampledBy_property {a,b:t0p}(Property(a), Property(b)): Property(a) = "mac#%" // overload sampledBy with Property_sampledBy_estream overload sampledBy with Property_sampledBy_property overload .sampledBy with Property_sampledBy_estream overload .sampledBy with Property_sampledBy_property // (* ****** ****** *) // fun Property_sampledBy_estream_cfun {a,b:t0p}{c:t0p} ( Property(a), EStream(b), cfun(a, b, c) ) : EStream(c) = "mac#%" // end-of-function fun Property_sampledBy_property_cfun {a,b:t0p}{c:t0p} ( Property(a), Property(b), cfun(a, b, c) ) : Property(c) = "mac#%" // end-of-function // overload sampledBy with Property_sampledBy_estream_cfun overload sampledBy with Property_sampledBy_property_cfun // (* ****** ****** *) // fun EStream_zipwith_estream_cfun {a,b:t0p}{c:t0p} ( xs: EStream(a), ys: EStream(b), fopr: cfun(a, b, c) ) : EStream(c) = "mac#%" // end-of-function // overload zipwith with EStream_zipwith_estream_cfun // (* ****** ****** *) // // HX-2015-10-10: // Bus: an Estream // onto which values can be pushed // fun Bacon_new_bus{a:t0p}(): EStream(a) = "mac#%" // fun EStream_bus_push {a:t0p}(bus: EStream(a), x0: a): void = "mac#%" fun EStream_bus_plug {a:t0p}(bus: EStream(a), xs: EStream(a)): void = "mac#%" // overload push with EStream_bus_push overload plug with EStream_bus_plug // overload .push with EStream_bus_push overload .plug with EStream_bus_plug // (* ****** ****** *) (* end of [baconjs.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/SATS/baconjs_ext.sats0000644000175000017500000000500013431250607026122 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into JavaScript *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: October, 2015 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // // HX: // for external names // #define ATS_EXTERN_PREFIX "ats2js_baconjs_ext_" // (* #define // no staloading at ATS_STALOADFLAG 0 // run-time *) // (* ****** ****** *) // #define LIBATSCC2JS_targetloc "$PATSHOME/contrib/libatscc2js" // #staload "{$LIBATSCC2JS}/basics_js.sats" // (* ****** ****** *) // #staload "./baconjs.sats" // basics for Bacon.js // (* ****** ****** *) // abstype EValue(a:t@ype) = ptr // updated by EStream // (* ****** ****** *) // fun EStream_scan_stream_opt {a,b,c:t0p} ( xs: EStream(b) , ini: a, ys: stream(c) , fopr: cfun(a, b, c, Option_vt(a)) ) : Property(a) = "mac#%" // end-of-function // overload scan with EStream_scan_stream_opt overload .scan with EStream_scan_stream_opt // (* ****** ****** *) // fun EValue_get_elt {a:t0p} (x: EValue(a)): (a) = "mac#%" // overload [] with EValue_get_elt // fun EValue_make_property {a:t0p}(Property(a)): EValue(a) = "mac#%" fun EValue_make_estream_scan {a,b:t0p} ( x0: a, ys: EStream(b), fopr: cfun(a, b, a) ) : EValue(a) = "mac#%" // EValue_make_estream_scan // (* ****** ****** *) // datatype singpair(a: t@ype+) = | Sing of (a) | Pair of (a, a) // (* ****** ****** *) // // HX-2016-11-13: // // For grouping two consecutive events // if the second occurs with delta ms of the first // For instance, [EStream_singpair_trans] can be employed // to support an implementation of double clicking // fun EStream_singpair_trans {a:t0p} ( xs: EStream(a), delta(*ms*): intGte(0) ) : EStream(singpair(a)) = "mac#%" // EStream_singpair_trans // (* ****** ****** *) (* end of [baconjs_ext.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/mylibies.dats0000644000175000017500000000100513431250607024650 0ustar brandonbrandon(* ****** ****** *) (* ** HX-2017-01-30: ** For downstream static loading *) (* ****** ****** *) // #ifdef LIBATSCC2JS_BACONJS_NONE #then #else local #include "./DATS/baconjs.dats" in (* nothing *) end // end of [local] #endif // #ifdef(LIBATSCC2JS_BACONJS_NONE) // (* ****** ****** *) // #ifdef LIBATSCC2JS_BACONJS_EXT_NONE #then #else local #include "./DATS/baconjs_ext.dats" in (* nothing *) end // end of [local] #endif // #ifdef(LIBATSCC2JS_BACONJS_EXT_NONE) // (* ****** ****** *) (* end of [mylibies.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2js/Bacon.js/package.json0000644000175000017500000000101113431250607024441 0ustar brandonbrandon{ "name": "libatscc2js-baconjs" , "version": "1.0.1" , "description": "The package implements a partial API in ATS for Bacon.js." , "main": "N/A" , "scripts": {} , "repository": { "url": "https://github.com/githwxi/ATS-Postiats/tree/master/contrib/libatscc/libatscc2js/Bacon.js" } , "keywords": [ "ATS", "atscc2js", "Bacon.js" ] , "dependencies" : {} , "author": "Hongwei Xi " , "license": "MIT" , "note-for-me": "This package is stored at ${PATSHOME}/contrib/libatscc/libatscc2js/Bacon.js/." } ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/0000755000175000017500000000000013431250607020524 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/0000755000175000017500000000000013431250607021673 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/output/0000755000175000017500000000000013431250607023233 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/output/DATS/0000755000175000017500000000000013431250607023766 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/output/DATS/.keeper0000644000175000017500000000000013431250607025230 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/output/DATS/ML/0000755000175000017500000000000013431250607024276 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/output/DATS/ML/.keeper0000644000175000017500000000000013431250607025540 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/output/.keeper0000644000175000017500000000000013431250607024475 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/0000755000175000017500000000000013431250607022426 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/qlistref.dats0000644000175000017500000000124313431250607025134 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX: list-based queue // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_qlistref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/qlistref.dats" // (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/intrange.dats0000644000175000017500000000134613431250607025116 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_intrange_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/intrange.dats" // (* ****** ****** *) %{$ ###### 1; #note that it is needed by 'use' or 'require' ###### %} // end of [%{$] (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/list.dats0000644000175000017500000000237213431250607024262 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" staload "./../SATS/filebas.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" // staload "./../SATS/stream_vt.sats" staload _ = "./../DATS/stream.dats" // staload "./../SATS/stream_vt.sats" staload _ = "./../DATS/stream_vt.dats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list.dats" // (* ****** ****** *) // implement {a}(*tmp*) print_list (xs) = fprint_list
(STDOUT, xs) implement {a}(*tmp*) print_list_sep (xs, sep) = fprint_list_sep (STDOUT, xs, sep) // (* ****** ****** *) %{$ ###### 1; #note that it is needed by 'use' or 'require' ###### %} // end of [%{$] (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/option.dats0000644000175000017500000000124613431250607024616 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_option_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/option.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/option.dats" // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/stream.dats0000644000175000017500000000172613431250607024604 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_stream_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../basics_pl.sats" (* ****** ****** *) // staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" staload "./../SATS/reference.sats" // (* ****** ****** *) staload "./../SATS/stream.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream.dats" // (* ****** ****** *) %{$ ###### 1; #note that it is needed by 'use' or 'require' ###### %} // end of [%{$] (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/reference.dats0000644000175000017500000000243413431250607025244 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_reference_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_pl.sats" staload "./../SATS/PLarray.sats" // (* ****** ****** *) // staload "./../SATS/reference.sats" // (* ****** ****** *) // (* assume ref_vt0ype_type(a:t@ype) = PLarray(a) *) // (* ****** ****** *) // implement ref (x) = ref_make_elt (x) // implement ref_make_elt{a}(x) = $UN.cast{ref(a)}(PLarray_sing(x)) // (* ****** ****** *) implement ref_get_elt{a}(r) = let val r = $UN.cast{PLarray(a)}(r) in PLarray_get_at(r, 0) end // end of [ref_get_elt] (* ****** ****** *) implement ref_set_elt{a}(r, x0) = let val r = $UN.cast{PLarray(a)}(r) in PLarray_set_at(r, 0, x0) end // end of [ref_set_elt] (* ****** ****** *) implement ref_exch_elt{a}(r, x0) = let val r = $UN.cast{PLarray(a?)}(r) // end of [val] val x1 = PLarray_get_at(r, 0) in PLarray_set_at(r, 0, $UN.castvwtp0{a?}(x0)); $UN.castvwtp0{a}(x1) end // end of [ref_exch_elt] (* ****** ****** *) (* end of [reference.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/slistref.dats0000644000175000017500000000124313431250607025136 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX: list-based stack // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_slistref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/slistref.dats" // (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/BUCS320/0000755000175000017500000000000013431250607023407 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025576 5ustar brandonbrandon././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.d0000644000175000017500000000150313431250607030765 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2plpre_BUCS320_GraphSearch_dfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../../../basics_pl.sats" // staload "./../../../SATS/bool.sats" staload "./../../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../../SATS/slistref.sats" // macdef slistref_insert = slistref_push macdef slistref_takeout_opt = slistref_pop_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.d0000644000175000017500000000151213431250607030763 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2plpre_BUCS320_GraphSearch_bfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../../../basics_pl.sats" // staload "./../../../SATS/bool.sats" staload "./../../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../../SATS/qlistref.sats" // macdef qlistref_insert = qlistref_enqueue macdef qlistref_takeout_opt = qlistref_dequeue_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/list_vt.dats0000644000175000017500000000137713431250607024777 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_pl.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list_vt.dats" // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/print.dats0000644000175000017500000000137113431250607024441 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_print_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" staload "./../SATS/filebas.sats" // (* ****** ****** *) implement print_val (x) = fprint_val (STDOUT, x) (* ****** ****** *) implement fprint_val = fprint_int implement fprint_val = fprint_bool implement fprint_val = fprint_double implement fprint_val = fprint_string (* ****** ****** *) (* end of [print.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/funarray.dats0000644000175000017500000000142413431250607025133 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_funarray_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // (* #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" *) // (* ****** ****** *) // #staload "./../SATS/funarray.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/funarray.dats" // (* ****** ****** *) (* end of [funarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/stream_vt.dats0000644000175000017500000000200013431250607025277 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" #define ATS_STATIC_PREFIX "_ats2plpre_stream_vt_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_pl.sats" // (* ****** ****** *) // staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" // (* ****** ****** *) staload "./../SATS/list.sats" staload "./../SATS/list_vt.sats" (* ****** ****** *) staload "./../SATS/stream.sats" staload "./../SATS/stream_vt.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream_vt.dats" // (* ****** ****** *) %{$ ###### 1; #note that it is needed by 'use' or 'require' ###### %} // end of [%{$] (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/ML/0000755000175000017500000000000013431250607022736 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/ML/option0.dats0000644000175000017500000000130013431250607025175 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_ML_" #define ATS_STATIC_PREFIX "_ats2plpre_ML_option0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_pl.sats" // (* ****** ****** *) // #staload "./../../SATS/ML/option0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/option0.dats" // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/ML/list0.dats0000644000175000017500000000304413431250607024647 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_ML_" #define ATS_STATIC_PREFIX "_ats2plpre_ML_list0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../../basics_pl.sats" // (* ****** ****** *) // staload "./../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../SATS/print.sats" staload "./../../SATS/filebas.sats" // (* ****** ****** *) // staload "./../../SATS/list.sats" staload "./../../SATS/ML/list0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/list0.dats" // (* ****** ****** *) // implement {a}(*tmp*) print_list0 (xs) = fprint_list0 (STDOUT, xs) // implement {a}(*tmp*) print_list0_sep (xs, sep) = fprint_list0_sep (STDOUT, xs, sep) // (* ****** ****** *) // (* implement list0_head_exn {a}(xs) = ( case+ xs of | list0_cons (x, _) => (x) // list0_cons | list0_nil() => ( $extfcall(a, "ats2plpre_ListSubscriptExn_throw") ) (* list0_nil *) ) (* end of [list0_head_exn] *) *) // (* ****** ****** *) // (* implement list0_tail_exn {a}(xs) = ( case+ xs of | list0_cons (_, xs) => (xs) // list0_cons | list0_nil() => ( $extfcall(list0(a), "ats2plpre_ListSubscriptExn_throw") ) (* list0_nil *) ) (* end of [list0_tail_exn] *) *) // (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/DATS/ML/array0.dats0000644000175000017500000000154613431250607025017 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_ML_" #define ATS_STATIC_PREFIX "_ats2plpre_ML_array0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../../basics_pl.sats" // (* ****** ****** *) // staload "./../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../SATS/print.sats" staload "./../../SATS/filebas.sats" // (* ****** ****** *) // staload "./../../SATS/arrayref.sats" staload "./../../SATS/ML/array0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/array0.dats" // (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/basics_pl.sats0000644000175000017500000000172713431250607024535 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_PACKNAME "ATSCC2PL" // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/basics.sats" // (* ****** ****** *) abstype PLfilr (* ****** ****** *) abstype PLarray(a:vt@ype) (* ****** ****** *) // fun lazy2cloref {a:t0p}(lazy(a)): ((*void*)) - (a) = "mac#%" // (* ****** ****** *) // fun assert_errmsg_bool0 (x: bool, msg: string): void = "mac#%" fun assert_errmsg_bool1 {b:bool} (x: bool b, msg: string): [b] void = "mac#%" // overload assert_errmsg with assert_errmsg_bool0 of 100 overload assert_errmsg with assert_errmsg_bool1 of 110 // (* ****** ****** *) // macdef assertloc (x) = assert_errmsg (,(x), $mylocation) // (* ****** ****** *) (* end of [basics_pl.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/Makefile0000644000175000017500000000653313431250607023342 0ustar brandonbrandon# # For generating libatscc2pl # ###### PATSOPT=$(PATSHOME)/bin/patsopt ATSCC2PL=$(PATSHOME)/bin/atscc2pl ###### CAT=cat CPF=cp -f RMF=rm -f ###### all:: all_in_one:: ###### all:: ; \ $(PATSOPT) -d ./DATS/list.dats | \ $(ATSCC2PL) -o ./output/DATS/list_dats.pl -i all:: ; \ $(PATSOPT) -d ./DATS/option.dats | \ $(ATSCC2PL) -o ./output/DATS/option_dats.pl -i all:: ; \ $(PATSOPT) -d ./DATS/stream.dats | \ $(ATSCC2PL) -o ./output/DATS/stream_dats.pl -i all:: ; \ $(PATSOPT) -d ./DATS/stream_vt.dats | \ $(ATSCC2PL) -o ./output/DATS/stream_vt_dats.pl -i all:: ; \ $(PATSOPT) -d ./DATS/intrange.dats | \ $(ATSCC2PL) -o ./output/DATS/intrange_dats.pl -i all:: ; \ $(PATSOPT) -d ./DATS/reference.dats | \ $(ATSCC2PL) -o ./output/DATS/reference_dats.pl -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/funarray.dats | \ $(ATSCC2PL) -o ./output/DATS/funarray_dats.pl -i all:: ; \ $(PATSOPT) -d ./DATS/slistref.dats | \ $(ATSCC2PL) -o ./output/DATS/slistref_dats.pl -i all:: ; \ $(PATSOPT) -d ./DATS/qlistref.dats | \ $(ATSCC2PL) -o ./output/DATS/qlistref_dats.pl -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/ML/list0.dats | \ $(ATSCC2PL) -o ./output/DATS/ML/list0_dats.pl -i all:: ; \ $(PATSOPT) -d ./DATS/ML/array0.dats | \ $(ATSCC2PL) -o ./output/DATS/ML/array0_dats.pl -i all:: ; \ $(PATSOPT) -d ./DATS/ML/option0.dats | \ $(ATSCC2PL) -o ./output/DATS/ML/option0_dats.pl -i # ###### # LIBATSCC2PL_ALL_PL=\ output/libatscc2pl_all.pl # ###### all_in_one:: libatscc2pl_all ###### # DATE=/bin/date ECHO=/bin/echo -en # PRINTF=printf # ###### # # libatscc2pl_all:: ; \ # $(ECHO) | $(CAT) - >$(LIBATSCC2PL_ALL_PL) # libatscc2pl_all:: ; \ $(PRINTF) '\n' | $(CAT) - >$(LIBATSCC2PL_ALL_PL) libatscc2pl_all:: ; \ $(PRINTF) '######\n' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL) libatscc2pl_all:: ; \ $(PRINTF) '#\n' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL) libatscc2pl_all:: ; \ $(PRINTF) '# Time of Generation:\n' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL) libatscc2pl_all:: ; \ ($(PRINTF) '# ' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL); $(DATE) | $(CAT) - >>$(LIBATSCC2PL_ALL_PL)) libatscc2pl_all:: ; \ $(PRINTF) '#\n' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL) libatscc2pl_all:: ; \ $(PRINTF) '######\n\n' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL) # ###### libatscc2pl_all:: ; \ $(CAT) >>$(LIBATSCC2PL_ALL_PL) \ CATS/basics_cats.pl \ CATS/integer_cats.pl \ CATS/bool_cats.pl \ CATS/float_cats.pl \ CATS/string_cats.pl \ CATS/print_cats.pl \ CATS/PLarray_cats.pl \ libatscc2pl_all:: ; \ $(CAT) >>$(LIBATSCC2PL_ALL_PL) \ output/DATS/list_dats.pl \ output/DATS/option_dats.pl \ output/DATS/stream_dats.pl \ output/DATS/stream_vt_dats.pl \ output/DATS/intrange_dats.pl \ output/DATS/reference_dats.pl \ output/DATS/funarray_dats.pl \ output/DATS/slistref_dats.pl \ output/DATS/qlistref_dats.pl \ output/DATS/ML/list0_dats.pl \ output/DATS/ML/array0_dats.pl \ output/DATS/ML/option0_dats.pl \ ###### # libatscc2pl_all:: ; $(PRINTF) '\n' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL) libatscc2pl_all:: ; $(PRINTF) '## ###### ###### ##' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL) libatscc2pl_all:: ; $(PRINTF) '\n' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL) # libatscc2pl_all:: ; \ $(PRINTF) '\n## end of [libatscc2pl_all.pl] ##\n' | $(CAT) - >>$(LIBATSCC2PL_ALL_PL) # ###### clean:: ; $(RMF) *~ */*~ ###### cleanall:: clean cleanall:: ; $(RMF) output/DATS/*_dats.pl cleanall:: ; $(RMF) output/DATS/ML/*_dats.pl cleanall:: ; $(RMF) $(LIBATSCC2PL_ALL_PL) ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/0000755000175000017500000000000013431250607022452 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/test01.dats0000644000175000017500000000137113431250607024451 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2pl // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test01_dynload" // #define ATS_STATIC_PREFIX "_test01__" // (* ****** ****** *) // val () = repeat(3, $delay(println!("Hello, world!"))) val () = repeat(3, lam() = println!("Hello, world!")) // val () = (3).repeat()(lam() = println!("Hello, world!")) val () = (3).foreach()(lam(i) = println!(i, ": Hello, world!")) // (* ****** ****** *) %{$ ###### test01_dynload(); ###### %} // end of [%{$] (* ****** ****** *) %{^ ####### require "./../output/libatscc2pl_all.pl"; ####### %} (* end of [%{^] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/Makefile0000644000175000017500000000201313431250607024106 0ustar brandonbrandon# # A simple Makefile # ###### PERL=perl ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2PL=${PATSHOME}/bin/atscc2pl ###### # all:: \ test01 test01: test01_dats.pl test01_dats.c: test01.dats; $(PATSOPT) -o $@ -d $< test01_dats.pl: test01_dats.c; $(ATSCC2PL) -o $@ -i $< # regress:: test_test01 test_test01: test01_dats.pl; $(PERL) $< # ###### # all:: \ test02 test02: test02_dats.pl test02_dats.c: test02.dats; $(PATSOPT) -o $@ -d $< test02_dats.pl: test02_dats.c; $(ATSCC2PL) -o $@ -i $< # regress:: test_test02 test_test02: test02_dats.pl; $(PERL) $< # ###### # all:: \ test03 test03: test03_dats.pl test03_dats.c: test03.dats; $(PATSOPT) -o $@ -d $< test03_dats.pl: test03_dats.c; $(ATSCC2PL) -o $@ -i $< # regress:: test_test03 test_test03: test03_dats.pl; $(PERL) $< # ###### RMF=rm -f ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.pl ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/0000755000175000017500000000000013431250607023433 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025622 5ustar brandonbrandon././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs.0000644000175000017500000001012213431250607030605 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_GameOf24Play_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = slistref_make_nil{node}() val () = slistref_insert(store, nx) // in // GraphSearch_dfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{$ ###### GameOf24Play(3, 3, 8, 8); GameOf24Play(3, 5, 7, 13); GameOf24Play(4, 4, 10, 10); GameOf24Play(5, 5, 7, 11); GameOf24Play(5, 7, 7, 11); ###### %} (* end of [%{$] *) (* ****** ****** *) %{^ ###### require "./../../../output/libatscc2pl_all.pl"; ###### %} (* end of [%{^] *) (* ****** ****** *) (* end of [GameOf24Play_dfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs.0000644000175000017500000001012113431250607030602 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_GameOf24Play_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = qlistref_make_nil{node}() val () = qlistref_insert(store, nx) // in // GraphSearch_bfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{$ ###### GameOf24Play(3, 3, 8, 8); GameOf24Play(3, 5, 7, 13); GameOf24Play(4, 4, 10, 10); GameOf24Play(5, 5, 7, 11); GameOf24Play(5, 7, 7, 11); ###### %} (* end of [%{$] *) (* ****** ****** *) %{^ ###### require "./../../../output/libatscc2pl_all.pl"; ###### %} (* end of [%{^] *) (* ****** ****** *) (* end of [GameOf24Play_bfs.dats] *) ././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.d0000644000175000017500000000316713431250607031121 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = slistref_make_nil{node}() // val () = slistref_insert(store, nil0) // val () = GraphSearch_dfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{$ ###### QueenPuzzle_solve(); ###### %} (* end of [%{$] *) (* ****** ****** *) %{^ ###### require "./../../../output/libatscc2pl_all.pl"; ###### %} (* end of [%{^] *) (* ****** ****** *) (* end of [QueenPuzzle_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/Makefile0000644000175000017500000000251113431250607027261 0ustar brandonbrandon# # A simple Makefile # ###### PERL=perl ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2PL=${PATSHOME}/bin/atscc2pl ###### all:: ###### # all:: \ QueenPuzzle_dfs_dats.pl QueenPuzzle_dfs_dats.c: \ QueenPuzzle_dfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_dfs_dats.pl: \ QueenPuzzle_dfs_dats.c; $(ATSCC2PL) -o $@ -i $< # regress:: QueenPuzzle_dfs_dats.pl; $(PERL) $< # ###### # all:: \ QueenPuzzle_bfs_dats.pl QueenPuzzle_bfs_dats.c: \ QueenPuzzle_bfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_bfs_dats.pl: \ QueenPuzzle_bfs_dats.c; $(ATSCC2PL) -o $@ -i $< # regress:: QueenPuzzle_bfs_dats.pl; $(PERL) $< # ###### # all:: \ GameOf24Play_dfs_dats.pl GameOf24Play_dfs_dats.c: \ GameOf24Play_dfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_dfs_dats.pl: \ GameOf24Play_dfs_dats.c; $(ATSCC2PL) -o $@ -i $< # regress:: GameOf24Play_dfs_dats.pl; $(PERL) $< # ###### # all:: \ GameOf24Play_bfs_dats.pl GameOf24Play_bfs_dats.c: \ GameOf24Play_bfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_bfs_dats.pl: \ GameOf24Play_bfs_dats.c; $(ATSCC2PL) -o $@ -i $< # regress:: GameOf24Play_bfs_dats.pl; $(PERL) $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.pl ###### ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015000000000000011577 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.d0000644000175000017500000000316613431250607031116 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = qlistref_make_nil{node}() // val () = qlistref_insert(store, nil0) // val () = GraphSearch_bfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{$ ###### QueenPuzzle_solve(); ###### %} (* end of [%{$] *) (* ****** ****** *) %{^ ###### require "./../../../output/libatscc2pl_all.pl"; ###### %} (* end of [%{^] *) (* ****** ****** *) (* end of [QueenPuzzle_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/test02.dats0000644000175000017500000000132113431250607024445 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2pl // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test02_dynload" // #define ATS_STATIC_PREFIX "_test02_" // (* ****** ****** *) #define :: list_cons (* ****** ****** *) val xs = ( 0 :: 1 :: 2 :: 3 :: 4 :: 5 :: 6 :: 7 :: 8 :: 9 :: nil() ) : List0 (int) (* ****** ****** *) val () = println! ("xs = ", xs) val () = println! ("xs + xs = ", xs + xs) (* ****** ****** *) %{$ ###### test02_dynload(); ###### %} // end of [%{$] (* ****** ****** *) %{^ ####### require "./../output/libatscc2pl_all.pl"; ####### %} (* end of [%{^] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/TEST/test03.dats0000644000175000017500000000200413431250607024445 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2pl // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test03_dynload" // #define ATS_STATIC_PREFIX "_test03_" // (* ****** ****** *) // val A = PLarray_pair{int}(0, 1) // val () = println! ("length(A) = ", length(A)) // val A2 = PLarray_copy (A) // val () = A2[0] := A2[0] * 2 val () = A2[1] := A2[1] * 2 // val () = println! ("A[0] = ", A[0]) val () = println! ("A[1] = ", A[1]) val () = println! ("A2[0] = ", A2[0]) val () = println! ("A2[1] = ", A2[1]) // val _ = A2.push(2) val _ = A2.push(3) val () = println! ("PLarray_pop(A2) = ", PLarray_pop(A2)) val () = println! ("PLarray_pop(A2) = ", PLarray_pop(A2)) val () = println! ("length(A2) = ", length(A2)) // (* ****** ****** *) %{$ ###### test03_dynload(); ###### %} // end of [%{$] (* ****** ****** *) %{^ ####### require "./../output/libatscc2pl_all.pl"; ####### %} (* end of [%{^] *) (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/CATS/0000755000175000017500000000000013431250607022425 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/CATS/print_cats.pl0000644000175000017500000000363513431250607025137 0ustar brandonbrandon###### # # HX-2014-11: # for Perl code translated from ATS # ###### ###### #beg of [print_cats.pl] ###### ############################################ # sub ats2plpre_print_int($) { ats2plpre_fprint_int(STDOUT, $_[0]); return; } sub ats2plpre_prerr_int($) { ats2plpre_fprint_int(STDERR, $_[0]); return; } # sub ats2plpre_fprint_int($$) { print {$_[0]} $_[1]; return; } # ############################################ # sub ats2plpre_print_bool($) { ats2plpre_fprint_bool(STDOUT, $_[0]); return; } sub ats2plpre_prerr_bool($) { ats2plpre_fprint_bool(STDERR, $_[0]); return; } # sub ats2plpre_fprint_bool($$) { if($_[1]) { print {$_[0]} "true"; } else { print {$_[0]} "false"; }; return; } # ############################################ # sub ats2plpre_print_double($) { ats2plpre_fprint_double(STDOUT, $_[0]); return; } sub ats2plpre_prerr_double($) { ats2plpre_fprint_double(STDERR, $_[0]); return; } # sub ats2plpre_fprint_double($$) { print {$_[0]} $_[1]; return; } # ############################################ # sub ats2plpre_print_string($) { ats2plpre_fprint_string(STDOUT, $_[0]); return; } sub ats2plpre_prerr_string($) { ats2plpre_fprint_string(STDERR, $_[0]); return; } # sub ats2plpre_fprint_string($$) { print {$_[0]} "$_[1]"; return; } # ############################################ # sub ats2plpre_print_obj($) { ats2plpre_fprint_obj(STDOUT, $_[0]); return; } sub ats2plpre_prerr_obj($) { ats2plpre_fprint_obj(STDERR, $_[0]); return; } # sub ats2plpre_fprint_obj($$) { print {$_[0]} $_[1]; return; } # ############################################ # sub ats2plpre_print_newline() { STDOUT->printflush("\n"); return; } sub ats2plpre_prerr_newline() { STDERR->printflush("\n"); return; } sub ats2plpre_fprint_newline($) { $_[0]->printflush("\n"); return; } # ############################################ ###### 1; #note that it is needed by 'use' or 'require' ###### ###### #end of [print_cats.pl] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/CATS/PLarray_cats.pl0000644000175000017500000000272113431250607025350 0ustar brandonbrandon###### # # HX-2014-11: # for Perl code translated from ATS # ###### ###### #beg of [PLarray_cats.pl] ###### sub ats2plpre_PLarray_nil() { return []; } sub ats2plpre_PLarray_sing($) { return [$_[0]]; } sub ats2plpre_PLarray_pair($$) { return [$_[0], $_[1]]; } ###### sub ats2plpre_PLarray_get_at($$) { my($A, $i) = @_; return $A->[$i]; } sub ats2plpre_PLarray_set_at($$$) { my($A, $i, $x) = @_; $A->[$i] = $x; return; } ###### sub ats2plpre_PLarray_length($) { return scalar(@{$_[0]}); } ###### sub ats2plpre_PLarray_pop_0($) { return pop(@{$_[0]}); } sub ats2plpre_PLarray_pop_1($$) { return splice(@{$_[0]}, $_[1], 1); } ###### sub ats2plpre_PLarray_push($$) { return push(@{$_[0]}, $_[1]); } ###### sub ats2plpre_PLarray_extend($$) { push(@{$_[0]}, $_[1]); return; } ###### # sub ats2plpre_PLarray_reverse($) { my $A = @_; my $i = 0 ; my $j = scalar(@{$A}) - 1; while ($i < $j) { my $tmp = $A->[i]; $A->[i] = $A->[j]; $A->[j] = $tmp; $i++; $j--; } return; } #ats2plpre_PLarray_reverse # ###### sub ats2plpre_PLarray_copy($) { my @A2 = @{$_[0]}; return \@A2; } sub ats2plpre_PLarray_revcopy($) { my @A2 = reverse(@{$_[0]}); return \@A2; } ###### sub ats2plpre_PLarray_append_2($$) { my @res = (@{$_[0]}, @{$_[1]}); return \@res; } sub ats2plpre_PLarray_append_3($$$) { my @res = (@{$_[0]}, @{$_[1]}, @{$_[2]}); return \@res; } ###### ###### 1; #note that it is needed by 'use' or 'require' ###### ###### #end of [PLarray_cats.pl] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/CATS/bool_cats.pl0000644000175000017500000000061613431250607024732 0ustar brandonbrandon###### # # HX-2014-11: # for Perl code translated from ATS # ###### ###### #beg of [bool_cats.pl] ###### ############################################ sub ats2plpre_neg_bool0($) { return !($_[0]); } sub ats2plpre_neg_bool1($) { return !($_[0]); } ############################################ ###### 1; #note that it is needed by 'use' or 'require' ###### ###### #end of [bool_cats.pl] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/CATS/basics_cats.pl0000644000175000017500000000507613431250607025250 0ustar brandonbrandon###### # # HX-2014-11: # for Perl code translated from ATS # ###### ###### #beg of [basics_cats.pl] ###### ############################################ sub ATSCKiseqz($) { return ($_[0] == 0); } sub ATSCKisneqz($) { return ($_[0] != 0); } ############################################ sub ATSCKptrisnull($) { return ($_[0] == 0); } sub ATSCKptriscons($) { return ($_[0] != 0); } ############################################ sub ATSCKpat_int($$) { return ($_[0] == $_[1]); } sub ATSCKpat_bool($$) { return ($_[0] == $_[1]); } sub ATSCKpat_char($$) { return ($_[0] == $_[1]); } sub ATSCKpat_float($$) { return ($_[0] == $_[1]); } ############################################ # sub ATSCKpat_con0($$) { return ($_[0] == $_[1]); } sub ATSCKpat_con1($$) { my $con = $_[0]; return ($con->[0] == $_[1]); } # ############################################ # sub ATSINScaseof_fail($) { STDERR->printflush("ATSINScaseof_fail:$_[0]"); exit(1); return; } # sub ATSINSdeadcode_fail() { STDERR->printflush("ATSINSdeadcode_fail"); exit(1); return; } # ############################################ # sub ATSPMVempty(){ return; } # ############################################ sub ATSPMVlazyval($){ return [0, $_[0]]; } ############################################ sub ATSPMVlazyval_eval($) { # my($lazyval) = @_; my($flag); my($mythunk); # $flag = $lazyval->[0]; # if($flag==0) { $lazyval->[0] = 1; $mythunk = $lazyval->[1]; $lazyval->[1] = &{$mythunk->[0]}($mythunk); } else { $lazyval->[0] = $flag + 1; } #end-of-[if] return ($lazyval->[1]); # } #end-of-[ATSPMVlazyval_eval] ############################################ sub ATSPMVllazyval($){ return $_[0]; } ############################################ # sub ATSPMVllazyval_eval($) { my($lazyval) = @_; return &{$lazyval->[0]}($lazyval, 1); } # sub atspre_lazy_vt_free($) { my($lazyval) = @_; return &{$lazyval->[0]}($lazyval, 0); } # ############################################ sub ats2plpre_lazy2cloref($) { return $_[0]->[1]; } ############################################ # sub ats2plpre_assert_bool0($) { my($tfv) = @_; if (!$tfv) { exit(1); } return; } sub ats2plpre_assert_bool1($$) { ats2plpre_assert_bool0($_[0]); return; } # sub ats2plpre_assert_errmsg_bool0($$) { my($tfv, $errmsg) = @_; if (!$tfv) { STDERR->printflush($errmsg); exit(1); } return; } sub ats2plpre_assert_errmsg_bool1($$) { ats2plpre_assert_errmsg_bool0($_[0], $_[1]); return; } # ############################################ ###### 1; #note that it is needed by 'use' or 'require' ###### ###### #end of [basics_cats.js] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/CATS/float_cats.pl0000644000175000017500000000406313431250607025104 0ustar brandonbrandon###### # # HX-2014-11: # for Perl code translated from ATS # ###### ###### #beg of [float_cats.pl] ###### ############################################ # sub ats2plpre_double2int($) { return int($_[0]); } sub ats2plpre_int_of_double($) { return int($_[0]); } # sub ats2plpre_int2double($) { return ($_[0]) ; } sub ats2plpre_double_of_int($) { return ($_[0]) ; } # ############################################ # sub ats2plpre_abs_double($) { return abs($_[0]); } sub ats2plpre_neg_double($) { return ( -$_[0] ); } # sub ats2plpre_succ_double($) { return ($_[0] + 1); } sub ats2plpre_pred_double($) { return ($_[0] + 1); } # ############################################ # sub ats2plpre_add_int_double($$) { return ($_[0] + $_[1]); } sub ats2plpre_sub_int_double($$) { return ($_[0] - $_[1]); } sub ats2plpre_mul_int_double($$) { return ($_[0] * $_[1]); } sub ats2plpre_div_int_double($$) { return ($_[0] / $_[1]); } # ############################################ # sub ats2plpre_add_double_int($$) { return ($_[0] + $_[1]); } sub ats2plpre_sub_double_int($$) { return ($_[0] - $_[1]); } sub ats2plpre_mul_double_int($$) { return ($_[0] * $_[1]); } sub ats2plpre_div_double_int($$) { return ($_[0] / $_[1]); } # ############################################ # sub ats2plpre_add_double_double($$) { return ($_[0] + $_[1]); } sub ats2plpre_sub_double_double($$) { return ($_[0] - $_[1]); } sub ats2plpre_mul_double_double($$) { return ($_[0] * $_[1]); } sub ats2plpre_div_double_double($$) { return ($_[0] / $_[1]); } # ############################################ # sub ats2plpre_lt_double_double($$) { return ($_[0] < $_[1]); } sub ats2plpre_lte_double_double($$) { return ($_[0] <= $_[1]); } sub ats2plpre_gt_double_double($$) { return ($_[0] > $_[1]); } sub ats2plpre_gte_double_double($$) { return ($_[0] >= $_[1]); } # sub ats2plpre_eq_double_double($$) { return ($_[0] == $_[1]); } sub ats2plpre_neq_double_double($$) { return ($_[0] != $_[1]); } # ############################################ ###### 1; #note that it is needed by 'use' or 'require' ###### ###### #end of [float_cats.pl] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/CATS/string_cats.pl0000644000175000017500000000126113431250607025302 0ustar brandonbrandon###### # # HX-2014-11: # for Perl code translated from ATS # ###### ###### #beg of [string_cats.pl] ###### ############################################ sub ats2plpre_lt_string_string($$) { return ($_[0] < $_[1]); } sub ats2plpre_lte_string_string($$) { return ($_[0] <= $_[1]); } sub ats2plpre_gt_string_string($$) { return ($_[0] > $_[1]); } sub ats2plpre_gte_string_string($$) { return ($_[0] >= $_[1]); } sub ats2plpre_eq_string_string($$) { return ($_[0] == $_[1]); } sub ats2plpre_neq_string_string($$) { return ($_[0] != $_[1]); } ############################################ ###### 1; #note that it is needed by 'use' or 'require' ###### ###### end of [string_cats.pl] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/CATS/integer_cats.pl0000644000175000017500000000464313431250607025440 0ustar brandonbrandon###### # # HX-2014-11: # for Perl code translated from ATS # ###### ###### #beg of [integer_cats.pl] ###### ############################################ sub ats2plpre_abs_int0($) { return abs($_[0]); } ############################################ sub ats2plpre_neg_int0($) { return ( -($_[0]) ); } sub ats2plpre_neg_int1($) { return ( -($_[0]) ); } ############################################ sub ats2plpre_succ_int0($) { return ($_[0] + 1); } sub ats2plpre_pred_int0($) { return ($_[0] - 1); } ############################################ sub ats2plpre_half_int0($) { return int($_[0] / 2); } sub ats2plpre_half_int1($) { return int($_[0] / 2); } ############################################ sub ats2plpre_add_int0_int0($$) { return ($_[0] + $_[1]); } sub ats2plpre_sub_int0_int0($$) { return ($_[0] - $_[1]); } sub ats2plpre_mul_int0_int0($$) { return ($_[0] * $_[1]); } sub ats2plpre_div_int0_int0($$) { return int($_[0] / $_[1]); } sub ats2plpre_mod_int0_int0($$) { return ($_[0] % $_[1]); } ############################################ # sub ats2plpre_add_int1_int1($$) { return ($_[0] + $_[1]); } sub ats2plpre_sub_int1_int1($$) { return ($_[0] - $_[1]); } sub ats2plpre_mul_int1_int1($$) { return ($_[0] * $_[1]); } sub ats2plpre_div_int1_int1($$) { return int($_[0] / $_[1]); } # sub ats2plpre_mod_int1_int1($$) { return ($_[0] % $_[1]); } sub ats2plpre_nmod_int1_int1($$) { return ($_[0] % $_[1]); } # ############################################ sub ats2plpre_lt_int0_int0($$) { return ($_[0] < $_[1]); } sub ats2plpre_lte_int0_int0($$) { return ($_[0] <= $_[1]); } sub ats2plpre_gt_int0_int0($$) { return ($_[0] > $_[1]); } sub ats2plpre_gte_int0_int0($$) { return ($_[0] >= $_[1]); } sub ats2plpre_eq_int0_int0($$) { return ($_[0] == $_[1]); } sub ats2plpre_neq_int0_int0($$) { return ($_[0] != $_[1]); } ############################################ sub ats2plpre_lt_int1_int1($$) { return ($_[0] < $_[1]); } sub ats2plpre_lte_int1_int1($$) { return ($_[0] <= $_[1]); } sub ats2plpre_gt_int1_int1($$) { return ($_[0] > $_[1]); } sub ats2plpre_gte_int1_int1($$) { return ($_[0] >= $_[1]); } sub ats2plpre_eq_int1_int1($$) { return ($_[0] == $_[1]); } sub ats2plpre_neq_int1_int1($$) { return ($_[0] != $_[1]); } ############################################ ###### 1; #note that it is needed by 'use' or 'require' ###### ############################################ #end of [integer_cats.pl] ############################################ ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/0000755000175000017500000000000013431250607022445 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/intrange.sats0000644000175000017500000000064213431250607025152 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_pl.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/intrange.sats" // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/float.sats0000644000175000017500000000550513431250607024453 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // fun double2int (x: double): int = "mac#%" fun int_of_double (x: double): int = "mac#%" // fun int2double (x: int): double = "mac#%" fun double_of_int (x: int): double = "mac#%" // (* ****** ****** *) fun abs_double : (double) -> double = "mac#%" fun neg_double : (double) -> double = "mac#%" (* ****** ****** *) overload abs with abs_double of 100 overload neg with neg_double of 100 (* ****** ****** *) fun succ_double : (double) -> double = "mac#%" fun pred_double : (double) -> double = "mac#%" (* ****** ****** *) overload succ with succ_double of 100 overload pred with pred_double of 100 (* ****** ****** *) // fun add_int_double : (int, double) - double = "mac#%" fun add_double_int : (double, int) - double = "mac#%" // fun sub_int_double : (int, double) - double = "mac#%" fun sub_double_int : (double, int) - double = "mac#%" // fun mul_int_double : (int, double) - double = "mac#%" fun mul_double_int : (double, int) - double = "mac#%" // fun div_int_double : (int, double) - double = "mac#%" fun div_double_int : (double, int) - double = "mac#%" // (* ****** ****** *) overload + with add_int_double of 100 overload + with add_double_int of 100 overload - with sub_int_double of 100 overload - with sub_double_int of 100 overload * with mul_int_double of 100 overload * with mul_double_int of 100 overload / with div_int_double of 100 overload / with div_double_int of 100 (* ****** ****** *) typedef float_aop_type = (double, double) -> double (* ****** ****** *) // fun add_double_double : float_aop_type = "mac#%" fun sub_double_double : float_aop_type = "mac#%" fun mul_double_double : float_aop_type = "mac#%" fun div_double_double : float_aop_type = "mac#%" // (* ****** ****** *) // overload + with add_double_double of 100 overload - with sub_double_double of 100 overload * with mul_double_double of 100 overload / with div_double_double of 100 // (* ****** ****** *) typedef float_cmp_type = (double, double) -> bool (* ****** ****** *) // fun lt_double_double : float_cmp_type = "mac#%" fun lte_double_double : float_cmp_type = "mac#%" fun gt_double_double : float_cmp_type = "mac#%" fun gte_double_double : float_cmp_type = "mac#%" // fun eq_double_double : float_cmp_type = "mac#%" fun neq_double_double : float_cmp_type = "mac#%" // (* ****** ****** *) // overload < with lt_double_double of 100 overload <= with lte_double_double of 100 overload > with gt_double_double of 100 overload >= with gte_double_double of 100 overload = with eq_double_double of 100 overload != with neq_double_double of 100 overload <> with neq_double_double of 100 // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/filebas.sats0000644000175000017500000000100613431250607024743 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) staload "./../basics_pl.sats" (* ****** ****** *) // (* val STDIN : PLfilr = "mac#" val STDOUT : PLfilr = "mac#" val STDERR : PLfilr = "mac#" *) macdef STDIN = $extval (PLfilr, "STDIN") macdef STDOUT = $extval (PLfilr, "STDOUT") macdef STDERR = $extval (PLfilr, "STDERR") // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/list.sats0000644000175000017500000000125213431250607024314 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_pl.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/list.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list (PLfilr, List(INV(a))): void = "mac#%" // fun{} fprint_list$sep (out: PLfilr): void = "mac#%" // fun{a:t0p} fprint_list_sep (PLfilr, List(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list of 100 // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/list_vt.sats0000644000175000017500000000063613431250607025032 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_pl.sats" // #include "{$LIBATSCC}/SATS/list_vt.sats" // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/arrayref.sats0000644000175000017500000000060213431250607025152 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/arrayref.sats" // (* ****** ****** *) (* end of [arrayref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/string.sats0000644000175000017500000000122413431250607024646 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // fun string_get_at {n:int}{i:nat | i < n} (str: string(n), i: int(i)): charNZ = "mac#%" // overload [] with string_get_at of 100 // (* ****** ****** *) fun string_isalnum : string -> bool = "mac#%" fun string_isalpha : string -> bool = "mac#%" fun string_isdecimal : string -> bool = "mac#%" (* ****** ****** *) fun string_lower (str: string): string = "mac#%" fun string_upper (str: string): string = "mac#%" (* ****** ****** *) (* end of [string.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/PLarray.sats0000644000175000017500000000374213431250607024721 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-11-17: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) staload "./../basics_pl.sats" (* ****** ****** *) // fun PLarray_nil{a:vt0p}(): PLarray(a) = "mac#%" fun PLarray_sing{a:vt0p}(a): PLarray(a) = "mac#%" fun PLarray_pair{a:vt0p}(a, a): PLarray(a) = "mac#%" // (* ****** ****** *) // fun PLarray_get_at {a:t@ype}(PLarray(a), int): a = "mac#%" fun PLarray_set_at {a:t@ype}(PLarray(a), int, a): void = "mac#%" // fun PLarray_exch_at {a:vt@ype}(PLarray(a), int, x0: a): (a) = "mac#%" // (* ****** ****** *) // fun PLarray_length{a:vt0p}(PLarray(a)): int = "mac#%" // (* ****** ****** *) // symintr PLarray_pop_0 // fun PLarray_pop_0 {a:vt0p}(A: PLarray(a)): a = "mac#%" fun PLarray_pop_1 {a:vt0p}(A: PLarray(a), i: int): a = "mac#%" // overload PLarray_pop with PLarray_pop_0 overload PLarray_pop with PLarray_pop_1 // (* ****** ****** *) // fun PLarray_push {a:vt0p}(A: PLarray(a), x: a): int = "mac#%" // (* ****** ****** *) // fun PLarray_extend{a:vt0p}(PLarray(a), a): void = "mac#%" // (* ****** ****** *) fun PLarray_reverse{a:vt0p}(PLarray(a)): void = "mac#%" (* ****** ****** *) // fun PLarray_copy{a:t0p}(PLarray(a)): PLarray(a) = "mac#%" fun PLarray_revcopy{a:t0p}(PLarray(a)): PLarray(a) = "mac#%" // (* ****** ****** *) // fun PLarray_append_2 {a:t0p}(PLarray(a), PLarray(a)): PLarray(a) = "mac#%" fun PLarray_append_3 {a:t0p}(PLarray(a), PLarray(a), PLarray(a)): PLarray(a) = "mac#%" // symintr PLarray_append overload PLarray_append with PLarray_append_2 overload PLarray_append with PLarray_append_3 // (* ****** ****** *) // // Some function overloading // (* ****** ****** *) // overload [] with PLarray_get_at overload [] with PLarray_set_at // (* ****** ****** *) // overload .pop with PLarray_pop overload .push with PLarray_push // (* ****** ****** *) overload length with PLarray_length (* ****** ****** *) (* end of [PLarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/stream_vt.sats0000644000175000017500000000064413431250607025351 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_pl.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/stream_vt.sats" // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/integer.sats0000644000175000017500000000721013431250607024776 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-11-16: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) staload "./../basics_pl.sats" (* ****** ****** *) // fun abs_int0 : int - int = "mac#%" overload abs with abs_int0 of 100 // (* ****** ****** *) // fun neg_int0 : int - int = "mac#%" // fun neg_int1 : {i:int} int(i) - int(~i) = "mac#%" // overload ~ with neg_int0 of 100 overload ~ with neg_int1 of 110 overload neg with neg_int0 of 100 overload neg with neg_int1 of 110 // (* ****** ****** *) // fun succ_int0 : int - int = "mac#%" fun pred_int0 : int - int = "mac#%" // fun succ_int1 : {i:int} int(i) - int(i+1) = "mac#%" fun pred_int1 : {i:int} int(i) - int(i-1) = "mac#%" // overload succ with succ_int0 of 100 overload pred with pred_int0 of 100 // overload succ with succ_int1 of 110 overload pred with pred_int1 of 110 // (* ****** ****** *) // fun half_int0 : int - int = "mac#%" fun half_int1 : {i:int} int(i) - int(i/2) = "mac#%" // overload half with half_int0 of 100 overload half with half_int1 of 110 // (* ****** ****** *) // fun add_int0_int0: (int, int) - int = "mac#%" fun sub_int0_int0 : (int, int) - int = "mac#%" fun mul_int0_int0 : (int, int) - int = "mac#%" fun div_int0_int0 : (int, int) - int = "mac#%" fun mod_int0_int0 : (int, int) - int = "mac#%" // (* ****** ****** *) // fun add_int1_int1 : {i,j:int} (int(i), int(j)) - int(i+j) = "mac#%" fun sub_int1_int1 : {i,j:int} (int(i), int(j)) - int(i-j) = "mac#%" fun mul_int1_int1 : {i,j:int} (int(i), int(j)) - int(i*j) = "mac#%" fun div_int1_int1 : {i,j:int} (int(i), int(j)) - int(i/j) = "mac#%" // (* ****** ****** *) // fun nmod_int1_int1 { i,j:int | i >= 0; j > 0 } (i: int(i), j: int(j)): int(nmod(i, j)) = "mac#%" // (* ****** ****** *) // overload + with add_int0_int0 of 100 overload - with sub_int0_int0 of 100 overload * with mul_int0_int0 of 100 overload / with div_int0_int0 of 100 overload % with mod_int0_int0 of 100 // overload mod with mod_int0_int0 of 100 // overload + with add_int1_int1 of 120 overload - with sub_int1_int1 of 120 overload * with mul_int1_int1 of 120 overload / with div_int1_int1 of 120 // (* ****** ****** *) // fun lt_int0_int0: (int, int) - bool = "mac#%" fun lte_int0_int0: (int, int) - bool = "mac#%" fun gt_int0_int0: (int, int) - bool = "mac#%" fun gte_int0_int0: (int, int) - bool = "mac#%" // fun eq_int0_int0: (int, int) - bool = "mac#%" fun neq_int0_int0: (int, int) - bool = "mac#%" // fun lt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i < j) = "mac#%" fun lte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i <= j) = "mac#%" fun gt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i > j) = "mac#%" fun gte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i >= j) = "mac#%" // fun eq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i == j) = "mac#%" fun neq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i != j) = "mac#%" // (* ****** ****** *) // overload < with lt_int0_int0 of 100 overload <= with lte_int0_int0 of 100 overload > with gt_int0_int0 of 100 overload >= with gte_int0_int0 of 100 overload = with eq_int0_int0 of 100 overload != with neq_int0_int0 of 100 overload <> with neq_int0_int0 of 100 // overload < with lt_int1_int1 of 120 overload <= with lte_int1_int1 of 120 overload > with gt_int1_int1 of 120 overload >= with gte_int1_int1 of 120 overload = with eq_int1_int1 of 120 overload != with neq_int1_int1 of 120 overload <> with neq_int1_int1 of 120 // (* ****** ****** *) (* end of [integer.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/bool.sats0000644000175000017500000000466613431250607024310 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-11-16: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // fun bool2int0 (b: bool):<> natLt(2) = "mac#%" fun bool2int1 {b:bool} (b: bool(b)):<> int(bool2int(b)) = "mac#%" // symintr bool2int overload bool2int with bool2int0 of 100 overload bool2int with bool2int1 of 110 // (* ****** ****** *) // fun int2bool0 (i: int):<> bool = "mac#%" fun int2bool1 {i:int}(i: int(i)):<> bool(i != 0) = "mac#%" // symintr int2bool overload int2bool with int2bool0 of 100 overload int2bool with int2bool1 of 110 // (* ****** ****** *) // fun neg_bool0 : bool -> bool = "mac#%" fun neg_bool1 : {b:bool} bool(b) -> bool(~b) = "mac#%" // overload ~ with neg_bool0 of 100 overload ~ with neg_bool1 of 110 // overload not with neg_bool0 of 100 overload not with neg_bool1 of 110 // (* ****** ****** *) fun add_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload + with add_bool0_bool0 of 100 fun add_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 || b2) = "mac#%" overload + with add_bool0_bool1 of 110 fun add_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 || b2) = "mac#%" overload + with add_bool1_bool0 of 110 fun add_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 || b2) = "mac#%" overload + with add_bool1_bool1 of 120 (* ****** ****** *) fun mul_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload * with mul_bool0_bool0 of 100 fun mul_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool0_bool1 of 110 fun mul_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool0 of 110 fun mul_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool1 of 120 (* ****** ****** *) // fun eq_bool0_bool0 : (bool, bool) -> bool = "mac#%" fun neq_bool0_bool0 : (bool, bool) -> bool = "mac#%" // fun eq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 == b2) = "mac#%" fun neq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 != b2) = "mac#%" // overload = with eq_bool0_bool0 of 100 overload = with eq_bool1_bool1 of 120 // overload != with neq_bool0_bool0 of 100 overload != with neq_bool1_bool1 of 120 // (* ****** ****** *) (* end of [bool.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/qlistref.sats0000644000175000017500000000065013431250607025173 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_PACKNAME "ATSCC2PL.qlistref" #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/qlistref.sats" // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/reference.sats0000644000175000017500000000060113431250607025274 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/reference.sats" // (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/slistref.sats0000644000175000017500000000065013431250607025175 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_PACKNAME "ATSCC2PL.slistref" #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/slistref.sats" // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/option.sats0000644000175000017500000000077413431250607024661 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_pl.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/option.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option (PLfilr, Option(INV(a))): void = "mac#%" // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/funarray.sats0000644000175000017500000000063613431250607025175 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_pl.sats" // #include "{$LIBATSCC}/SATS/funarray.sats" // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/stream.sats0000644000175000017500000000063613431250607024641 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../basics_pl.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/stream.sats" // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/print.sats0000644000175000017500000000334013431250607024475 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_" // (* ****** ****** *) staload "./../basics_pl.sats" (* ****** ****** *) // fun print_int : (int) -> void = "mac#%" fun prerr_int : (int) -> void = "mac#%" fun fprint_int : (PLfilr, int) -> void = "mac#%" // overload print with print_int of 100 overload prerr with prerr_int of 100 overload fprint with fprint_int of 100 // (* ****** ****** *) // fun print_bool : (bool) -> void = "mac#%" fun prerr_bool : (bool) -> void = "mac#%" // fun fprint_bool : (PLfilr, bool) -> void = "mac#%" // overload print with print_bool of 100 overload prerr with prerr_bool of 100 overload fprint with fprint_bool of 100 // (* ****** ****** *) // fun print_double : (double) -> void = "mac#%" fun prerr_double : (double) -> void = "mac#%" fun fprint_double : (PLfilr, double) -> void = "mac#%" // overload print with print_double of 100 overload prerr with prerr_double of 100 overload fprint with fprint_double of 100 // (* ****** ****** *) // fun print_string : (string) -> void = "mac#%" fun prerr_string : (string) -> void = "mac#%" fun fprint_string (PLfilr, string): void = "mac#%" // overload print with print_string of 100 overload prerr with prerr_string of 100 overload fprint with fprint_string of 100 // (* ****** ****** *) fun print_obj{a:t0p}(obj: a): void = "mac#%" (* ****** ****** *) fun{a:t0p} print_val (x: a): void = "mac#%" fun{a:t0p} fprint_val (out: PLfilr, x: a): void = "mac#%" (* ****** ****** *) fun print_newline ((*void*)): void = "mac#%" fun prerr_newline ((*void*)): void = "mac#%" fun fprint_newline (out: PLfilr): void = "mac#%" (* ****** ****** *) (* end of [print.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/ML/0000755000175000017500000000000013431250607022755 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/ML/option0.sats0000644000175000017500000000104013431250607025234 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_pl.sats" // #include "{$LIBATSCC}/SATS/ML/option0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option0 (PLfilr, option0(INV(a))): void = "mac#%" // overload fprint with fprint_option0 of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/ML/list0.sats0000644000175000017500000000131613431250607024705 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../../basics_pl.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/ML/list0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list0 (PLfilr, list0(INV(a))): void = "mac#%" // fun{} fprint_list0$sep(out: PLfilr): void = "mac#%" // fun{a:t0p} fprint_list0_sep (PLfilr, list0(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list0 of 100 // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/SATS/ML/array0.sats0000644000175000017500000000067313431250607025055 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Perl5 *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2plpre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../../basics_pl.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/ML/array0.sats" // (* ****** ****** *) (* end of [array0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/ATS2-0.3.2/staloadall.hats0000644000175000017500000000245013431250607024675 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Perl *) (* ****** ****** *) // // HX-2014-09-09 // (* ****** ****** *) // staload "./basics_pl.sats" // (* ****** ****** *) // staload "./SATS/integer.sats" // (* ****** ****** *) // staload "./SATS/bool.sats" staload "./SATS/float.sats" staload "./SATS/string.sats" // (* ****** ****** *) // staload "./SATS/print.sats" staload _ = "./DATS/print.dats" // (* ****** ****** *) // staload "./SATS/filebas.sats" // (* ****** ****** *) staload "./SATS/PLarray.sats" (* ****** ****** *) // staload "./SATS/list.sats" staload _ = "./DATS/list.dats" // (* ****** ****** *) // staload "./SATS/option.sats" staload _ = "./DATS/option.dats" // (* ****** ****** *) // staload "./SATS/stream.sats" staload "./SATS/stream_vt.sats" // staload _ = "./DATS/stream.dats" staload _ = "./DATS/stream_vt.dats" // (* ****** ****** *) // staload "./SATS/intrange.sats" (* staload _(*anon*) = "./DATS/intrange.dats" *) // (* ****** ****** *) staload "./SATS/reference.sats" (* ****** ****** *) // // HX: one-list-based // HX: two-list-based // staload "./SATS/slistref.sats" staload "./SATS/qlistref.sats" // (* ****** ****** *) // // HX: un-indexed list // staload "./SATS/ML/list0.sats" staload _(*anon*) = "./DATS/ML/list0.dats" // (* ****** ****** *) (* end of [staloadall.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2pl/.keeper0000644000175000017500000000000013431250607021766 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/0000755000175000017500000000000013431250607020142 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/0000755000175000017500000000000013431250607023664 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/DATS/0000755000175000017500000000000013431250607024417 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/DATS/intinf_t.dats0000644000175000017500000002040613431250607027110 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT gmail DOT com // Start Time: April, 2013 // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/intinf.sats" // vtypedef intinf_vt(i:int) = intinf_vtype(i) // (* ****** ****** *) // #staload "./../SATS/intinf_t.sats" #staload VT = "./../SATS/intinf_vt.sats" // (* ****** ****** *) // implement {}(*tmp*) intinf_make_int (i) = // intinf_make_int intinf_vt2t($VT.intinf_make_int(i)) implement {}(*tmp*) intinf_make_uint (i) = // intinf_make_uint intinf_vt2t($VT.intinf_make_uint(i)) implement {}(*tmp*) intinf_make_lint (i) = // intinf_make_lint intinf_vt2t($VT.intinf_make_lint(i)) implement {}(*tmp*) intinf_make_ulint (i) = // intinf_make_ulint intinf_vt2t($VT.intinf_make_ulint(i)) // (* ****** ****** *) implement {}(*tmp*) intinf_get_int (x) = res where { // val ( fpf | x ) = intinf_takeout (x) // val res = $VT.intinf_get_int(x) // prval ((*returned*)) = fpf(x) // } (* end of [intinf_get_int] *) implement {}(*tmp*) intinf_get_lint (x) = res where { // val ( fpf | x ) = intinf_takeout (x) // val res = $VT.intinf_get_lint(x) // prval ((*returned*)) = fpf(x) // } (* end of [intinf_get_lint] *) (* ****** ****** *) implement {}(*tmp*) intinf_get_string (x, base) = let // val ( fpf | x ) = intinf_takeout (x) val str = $VT.intinf_get_strptr (x, base) prval () = fpf (x) // in strptr2string(str) end (* end of [intinf_get_string] *) (* ****** ****** *) // implement {}(*tmp*) print_intinf (x) = fprint_intinf(stdout_ref, x) implement {}(*tmp*) prerr_intinf (x) = fprint_intinf(stderr_ref, x) // implement {}(*tmp*) fprint_intinf (out, x) = fprint_intinf_base(out, x, 10(*base*)) // (* ****** ****** *) implement {}(*tmp*) fprint_intinf_base (out, x, base) = { // val ( fpf | x ) = intinf_takeout (x) val () = $VT.fprint_intinf_base (out, x, base) prval ((*returned*)) = fpf(x) // } (* fprint_intinf_base *) (* ****** ****** *) implement {}(*tmp*) neg_intinf (x) = let // val ( fpf | x ) = intinf_takeout(x) val res = $VT.neg_intinf1(x) // prval ((*returned*)) = fpf(x) // in intinf_vt2t(res) end (* end of [neg_intinf] *) (* ****** ****** *) implement {}(*tmp*) abs_intinf (x) = let // val ( fpf | x ) = intinf_takeout (x) // val res = $VT.abs_intinf1(x) // prval ((*returned*)) = fpf(x) // in intinf_vt2t(res) end (* end of [abs_intinf] *) (* ****** ****** *) implement {}(*tmp*) succ_intinf(x) = add_intinf_int (x, 1) implement {}(*tmp*) pred_intinf(x) = sub_intinf_int (x, 1) (* ****** ****** *) implement {}(*tmp*) add_intinf_int (x, y) = let // val ( fpf | x ) = intinf_takeout (x) // val res = $VT.add_intinf1_int (x, y) // prval ((*returned*)) = fpf(x) // in intinf_vt2t(res) end // end of [add_intinf_int] implement {}(*tmp*) add_int_intinf (x, y) = let // val ( fpf | y ) = intinf_takeout(y) // val res = $VT.add_int_intinf1(x, y) // prval ((*returned*)) = fpf(y) // in intinf_vt2t(res) end // end of [add_int_intinf] implement {}(*tmp*) add_intinf_intinf (x, y) = let // val ( fpf1 | x ) = intinf_takeout(x) val ( fpf2 | y ) = intinf_takeout(y) val res = $VT.add_intinf1_intinf1(x, y) // prval ((*returned*)) = fpf1(x) prval ((*returned*)) = fpf2(y) // in intinf_vt2t(res) end (* end of [add_intinf_intinf] *) (* ****** ****** *) implement {}(*tmp*) sub_intinf_int (x, y) = let // val ( fpf | x ) = intinf_takeout(x) // val res = $VT.sub_intinf1_int(x, y) // prval ((*returned*)) = fpf (x) // in intinf_vt2t(res) end // end of [sub_intinf_int] implement {}(*tmp*) sub_int_intinf (x, y) = let // val ( fpf | y ) = intinf_takeout (y) // val res = $VT.sub_int_intinf1(x, y) // prval ((*returned*)) = fpf(y) // in intinf_vt2t(res) end // end of [sub_int_intinf] implement {}(*tmp*) sub_intinf_intinf (x, y) = let // val ( fpf1 | x ) = intinf_takeout (x) val ( fpf2 | y ) = intinf_takeout (y) val res = $VT.sub_intinf1_intinf1 (x, y) // prval ((*returned*)) = fpf1 (x) prval ((*returned*)) = fpf2 (y) // in intinf_vt2t(res) end (* end of [sub_intinf_intinf] *) (* ****** ****** *) implement {}(*tmp*) mul_intinf_int (x, y) = let // val ( fpf | x ) = intinf_takeout(x) // val res = $VT.mul_intinf1_int(x, y) // prval ((*returned*)) = fpf(x) // in intinf_vt2t(res) end // end of [mul_intinf_int] implement {}(*tmp*) mul_int_intinf (x, y) = let // val ( fpf | y ) = intinf_takeout(y) // val res = $VT.mul_int_intinf1(x, y) // prval ((*returned*)) = fpf(y) // in intinf_vt2t(res) end // end of [mul_int_intinf] implement {}(*tmp*) mul_intinf_intinf (x, y) = let // val ( fpf1 | x ) = intinf_takeout (x) val ( fpf2 | y ) = intinf_takeout (y) val res = $VT.mul_intinf1_intinf1(x, y) // prval ((*returned*)) = fpf1(x) prval ((*returned*)) = fpf2(y) // in intinf_vt2t(res) end (* end of [mul_intinf_intinf] *) (* ****** ****** *) implement {}(*tmp*) div_intinf_int (x, y) = let // val ( fpf | x ) = intinf_takeout (x) // val res = $VT.div_intinf1_int (x, y) // prval ((*returned*)) = fpf (x) // in intinf_vt2t(res) end // end of [div_intinf_int] implement {}(*tmp*) div_intinf_intinf (x, y) = let // val ( fpf1 | x ) = intinf_takeout (x) val ( fpf2 | y ) = intinf_takeout (y) val res = $VT.div_intinf1_intinf1(x, y) // prval ((*returned*)) = fpf1(x) prval ((*returned*)) = fpf2(y) // in intinf_vt2t(res) end (* end of [div_intinf_intinf] *) (* ****** ****** *) implement {}(*tmp*) nmod_intinf_int (x, y) = res where { // val ( fpf | x ) = intinf_takeout(x) // val res = $VT.nmod_intinf1_int(x, y) // prval ((*returned*)) = fpf(x) // } (* end of [nmod_intinf_int] *) (* ****** ****** *) implement {}(*tmp*) compare_intinf_int (x, y) = let // val ( fpf1 | x ) = intinf_takeout (x) val sgn = $VT.compare_intinf_int (x, y) prval () = fpf1 (x) // in sgn (* HX: -1/0/1 *) end (* end of [compare_intinf_int] *) implement {}(*tmp*) compare_int_intinf (x, y) = let // val ( fpf2 | y ) = intinf_takeout (y) val sgn = $VT.compare_int_intinf (x, y) prval () = fpf2 (y) // in sgn (* HX: -1/0/1 *) end (* end of [compare_int_intinf] *) implement {}(*tmp*) compare_intinf_intinf (x, y) = let // val ( fpf1 | x ) = intinf_takeout (x) val ( fpf2 | y ) = intinf_takeout (y) val sgn = $VT.compare_intinf_intinf (x, y) prval () = fpf1 (x) prval () = fpf2 (y) // in sgn (* HX: -1/0/1 *) end (* end of [compare_intinf_intinf] *) (* ****** ****** *) implement {}(*tmp*) pow_int_int (base, exp) = let // val res = $VT.pow_int_int(base, exp) // in intinf_vt2t(res) end (* end of [pow_int_int] *) (* ****** ****** *) implement {}(*tmp*) pow_intinf_int (base, exp) = let // val ( fpf | base ) = intinf_takeout(base) // val res = $VT.pow_intinf_int(base, exp) // prval ((*returned*)) = fpf(base) // in intinf_vt2t(res) end (* end of [pow_intinf_int] *) (* ****** ****** *) (* end of [intinf_t.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/DATS/intinf_vt.dats0000644000175000017500000003474413431250607027310 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: April, 2013 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../mydepies.hats" // vtypedef mpz = $GMP.mpz_vt0ype // (* ****** ****** *) // #staload "./../SATS/intinf.sats" #staload "./../SATS/intinf_vt.sats" // (* ****** ****** *) // macdef i2u(x) = g1int2uint_int_uint(,(x)) macdef i2ul(x) = g1int2uint_int_ulint(,(x)) // (* ****** ****** *) local assume intinf_vtype (i:int) = // HX: [i] is a fake [l:addr] (mpz@l, mfree_gc_v(l) | ptr(l)) // end of [intinf_vtype] in (* in of [local] *) implement {}(*tmp*) intinf_make_int (i) = (x) where { // val x = ptr_alloc() val () = $GMP.mpz_init_set_int(!(x.2), i) // } (* end of [intinf_make_int] *) implement {}(*tmp*) intinf_make_uint (i) = (x) where { // val x = ptr_alloc() val () = $GMP.mpz_init_set_uint(!(x.2), i) // } (* end of [intinf_make_uint] *) implement {}(*tmp*) intinf_make_lint (i) = (x) where { // val x = ptr_alloc() val () = $GMP.mpz_init_set_lint(!(x.2), i) // } (* end of [intinf_make_lint] *) implement {}(*tmp*) intinf_make_ulint (i) = (x) where { // val x = ptr_alloc () val () = $GMP.mpz_init_set_ulint(!(x.2), i) // } (* end of [intinf_make_ulint] *) (* ****** ****** *) implement {}(*tmp*) intinf_free(x) = let val (pfat, pfgc | p) = x val () = $GMP.mpz_clear (!p) in ptr_free(pfgc, pfat | p) end (* end of [intinf_free] *) (* ****** ****** *) implement {}(*tmp*) intinf_get_int(x) = $GMP.mpz_get_int(!(x.2)) implement {}(*tmp*) intinf_get_lint(x) = $GMP.mpz_get_lint(!(x.2)) (* ****** ****** *) // implement {}(*tmp*) intinf_get_strptr (x, base) = $GMP.mpz_get_str_null(base, !(x.2)) // end of [intinf_get_strptr] // (* ****** ****** *) // implement {}(*tmp*) fprint_intinf_base (out, x, base) = let // val nsz = $GMP.mpz_out_str(out, base, !(x.2)) // in // if (nsz = 0) then exit_errmsg(1, "libgmp/gmp: fprint_intinf_base") // end of [if] // end (* fprint_intinf_base *) // (* ****** ****** *) implement {}(*tmp*) neg_intinf0 (x) = (x) where { // val () = $GMP.mpz_neg(!(x.2)) // } (* end of [neg_intinf0] *) implement {}(*tmp*) neg_intinf1 (x) = (y) where { // val y = ptr_alloc() val () = $GMP.mpz_init(!(y.2)) val () = $GMP.mpz_neg(!(y.2), !(x.2)) // } (* end of [neg_intinf1] *) (* ****** ****** *) implement {}(*tmp*) abs_intinf0 (x) = (x) where { // val () = $GMP.mpz_abs(!(x.2)) // } (* end of [abs_intinf0] *) implement {}(*tmp*) abs_intinf1 (x) = (y) where { // val y = ptr_alloc() // val () = $GMP.mpz_init(!(y.2)) val () = $GMP.mpz_abs(!(y.2), !(x.2)) // } (* end of [abs_intinf1] *) (* ****** ****** *) // implement {}(*tmp*) succ_intinf0 (x) = add_intinf0_int(x, 1) implement {}(*tmp*) succ_intinf1 (x) = add_intinf1_int(x, 1) // (* ****** ****** *) // implement {}(*tmp*) pred_intinf0 (x) = sub_intinf0_int(x, 1) implement {}(*tmp*) pred_intinf1 (x) = sub_intinf1_int(x, 1) // (* ****** ****** *) implement {}(*tmp*) square_intinf0 (x) = res where { val res = square_intinf1(x) val ((*freed*)) = intinf_free(x) } (* end of [square_intinf0] *) (* ****** ****** *) implement {}(*tmp*) square_intinf1 (x) = (y) where { // val y = ptr_alloc() val () = $GMP.mpz_init_set_mpz(!(y.2), !(x.2)) // val () = $GMP.mpz_mul2_mpz(!(y.2), !(x.2)) // } (* end of [square_intinf1] *) (* ****** ****** *) implement {}(*tmp*) add_int_intinf0 (x, y) = add_intinf0_int(y, x) implement {}(*tmp*) add_int_intinf1 (x, y) = add_intinf1_int(y, x) (* ****** ****** *) implement {}(*tmp*) add_intinf0_int (x, y) = (x) where { // val () = $GMP.mpz_add2_int(!(x.2), y) // } (* end of [add_intinf0_int] *) implement {}(*tmp*) add_intinf1_int (x, y) = (z) where { // val z = ptr_alloc() val () = $GMP.mpz_init(!(z.2)) val () = $GMP.mpz_add3_int(!(z.2), !(x.2), y) // } (* end of [add_intinf1_int] *) (* ****** ****** *) implement {}(*tmp*) add_intinf0_intinf1 (x, y) = (x) where { // val () = $GMP.mpz_add2_mpz(!(x.2), !(y.2)) // } (* end of [add_intinf0_intinf1] *) implement {}(*tmp*) add_intinf1_intinf0 (x, y) = (y) where { // val () = $GMP.mpz_add2_mpz(!(y.2), !(x.2)) // } (* end of [add_intinf1_intinf0] *) (* ****** ****** *) implement {}(*tmp*) add_intinf1_intinf1 (x, y) = (z) where { // val z = ptr_alloc() val () = $GMP.mpz_init(!(z.2)) val () = $GMP.mpz_add3_mpz(!(z.2), !(x.2), !(y.2)) // } (* end of [add_intinf1_intinf1] *) (* ****** ****** *) implement {}(*tmp*) sub_intinf0_int (x, y) = (x) where { // val () = $GMP.mpz_sub2_int(!(x.2), y) // } (* end of [sub_intinf0_int] *) implement {}(*tmp*) sub_intinf1_int (x, y) = (z) where { // val z = ptr_alloc() val () = $GMP.mpz_init(!(z.2)) val () = $GMP.mpz_sub3_int(!(z.2), !(x.2), y) // } (* end of [sub_intinf1_int] *) (* ****** ****** *) implement {}(*tmp*) sub_int_intinf0(x, y) = let val z = sub_intinf0_int (y, x) in neg_intinf0(z) end (* end of [sub_int_intinf0] *) implement {}(*tmp*) sub_int_intinf1(x, y) = let val z = sub_intinf1_int (y, x) in neg_intinf0(z) end (* end of [sub_int_intinf1] *) (* ****** ****** *) implement {}(*tmp*) sub_intinf0_intinf1 (x, y) = (x) where { // val () = $GMP.mpz_sub2_mpz (!(x.2), !(y.2)) // } (* end of [sub_intinf0_intinf1] *) implement {}(*tmp*) sub_intinf1_intinf0 (x, y) = neg_intinf0 (sub_intinf0_intinf1 (y, x)) // end of [sub_intinf1_intinf0] implement {}(*tmp*) sub_intinf1_intinf1 (x, y) = (z) where { // val z = ptr_alloc () val () = $GMP.mpz_init (!(z.2)) val () = $GMP.mpz_sub3_mpz (!(z.2), !(x.2), !(y.2)) // } (* end of [sub_intinf1_intinf1] *) (* ****** ****** *) // implement {}(*tmp*) mul_int_intinf0 (x, y) = mul_intinf0_int(y, x) implement {}(*tmp*) mul_int_intinf1 (x, y) = mul_intinf1_int(y, x) // (* ****** ****** *) implement {}(*tmp*) mul_intinf0_int (x, y) = (x) where { // val () = $GMP.mpz_mul2_int (!(x.2), y) // } (* end of [mul_intinf0_int] *) implement {}(*tmp*) mul_intinf1_int (x, y) = (z) where { // val z = ptr_alloc () val () = $GMP.mpz_init (!(z.2)) val () = $GMP.mpz_mul3_int (!(z.2), !(x.2), y) // } (* end of [mul_intinf1_int] *) (* ****** ****** *) implement {}(*tmp*) mul_intinf0_intinf1 (x, y) = (x) where { // val () = $GMP.mpz_mul2_mpz (!(x.2), !(y.2)) // } (* end of [mul_intinf0_intinf1] *) implement {}(*tmp*) mul_intinf1_intinf0 (x, y) = (y) where { // val () = $GMP.mpz_mul2_mpz(!(y.2), !(x.2)) // } (* end of [mul_intinf0_intinf1] *) (* ****** ****** *) implement {}(*tmp*) mul_intinf1_intinf1 (x, y) = (z) where { // val z = ptr_alloc() val () = $GMP.mpz_init(!(z.2)) val () = $GMP.mpz_mul3_mpz(!(z.2), !(x.2), !(y.2)) // } (* end of [mul_intinf1_intinf1] *) (* ****** ****** *) implement {}(*tmp*) div_intinf0_int {i,j} (x, y) = let in // if (y >= 0) then let val () = $GMP.mpz_tdiv2_q_uint(!(x.2), i2u(y)) in x end // end of [then] else let val () = $GMP.mpz_tdiv2_q_uint(!(x.2), i2u(~y)) in neg_intinf0(x) end // end of [else] // end (* end of [div_intinf0_int] *) implement {}(*tmp*) div_intinf1_int {i,j} (x, y) = let // val z = ptr_alloc() val () = $GMP.mpz_init(!(z.2)) // in // if (y >= 0) then let val () = $GMP.mpz_tdiv3_q_uint(!(z.2), !(x.2), i2u(y)) in z end // end of [then] else let val () = $GMP.mpz_tdiv3_q_uint(!(z.2), !(x.2), i2u(~y)) in neg_intinf0(z) end // end of [else] // end (* end of [div_intinf1_int] *) (* ****** ****** *) implement {}(*tmp*) div_intinf0_intinf1 (x, y) = (x) where { // val () = $GMP.mpz_tdiv2_q_mpz(!(x.2), !(y.2)) // } (* end of [div_intinf0_intinf1] *) (* ****** ****** *) implement {}(*tmp*) div_intinf1_intinf1 (x, y) = (z) where { // val z = ptr_alloc() val () = $GMP.mpz_init(!(z.2)) val () = $GMP.mpz_tdiv3_q_mpz(!(z.2), !(x.2), !(y.2)) // } (* end of [div_intinf1_intinf1] *) (* ****** ****** *) // implement {}(*tmp*) ndiv_intinf0_int(x, y) = div_intinf0_int(x, y) implement {}(*tmp*) ndiv_intinf1_int(x, y) = div_intinf1_int(x, y) // implement {}(*tmp*) ndiv_intinf1_intinf1(x, y) = div_intinf1_intinf1(x, y) // (* ****** ****** *) implement {}(*tmp*) nmod_intinf0_int {i,j}(x, y) = let // val rem = $GMP.mpz_fdiv_uint(!(x.2), i2u(y)) // val () = intinf_free(x) // in $UN.cast{intBtw(0,j)}(rem) end (* end of [nmod_intinf0_int] *) implement {}(*tmp*) nmod_intinf1_int {i,j}(x, y) = let // val rem = $GMP.mpz_fdiv_uint(!(x.2), i2u(y)) // in $UN.cast{intBtw(0,j)}(rem) end (* end of [nmod_intinf1_int] *) (* ****** ****** *) implement {}(*tmp*) nmod_intinf0_intinf1 {i,j}(x, y) = $UN.castvwtp0(x) where { // val () = $GMP.mpz_mod2_mpz(!(x.2), !(y.2)) // } (* end of [nmod_intinf0_intinf1] *) implement {}(*tmp*) nmod_intinf1_intinf1 {i,j}(x, y) = $UN.castvwtp0(z) where { // val z = ptr_alloc() val () = $GMP.mpz_init(!(z.2)) val () = $GMP.mpz_mod3_mpz(!(z.2), !(x.2), !(y.2)) // } (* end of [nmod_intinf1_intinf1] *) (* ****** ****** *) // // comparison-functions // (* ****** ****** *) implement {}(*tmp*) lt_intinf_int {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_int (!(x.2), y) val ans = (if sgn < 0 then true else false): bool // in $UN.cast{bool(i < j)}(ans) end // end of [lt_intinf_int] implement {}(*tmp*) lt_intinf_intinf {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_mpz (!(x.2), !(y.2)) val ans = (if sgn < 0 then true else false): bool // in $UN.cast{bool(i < j)}(ans) end // end of [lt_intinf_intinf] (* ****** ****** *) implement {}(*tmp*) lte_intinf_int {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_int (!(x.2), y) val ans = (if sgn <= 0 then true else false): bool // in $UN.cast{bool(i <= j)}(ans) end // end of [lte_intinf_int] implement {}(*tmp*) lte_intinf_intinf {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_mpz (!(x.2), !(y.2)) val ans = (if sgn <= 0 then true else false): bool // in $UN.cast{bool(i <= j)}(ans) end // end of [lte_intinf_intinf] (* ****** ****** *) implement {}(*tmp*) gt_intinf_int {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_int (!(x.2), y) val ans = (if sgn > 0 then true else false): bool // in $UN.cast{bool(i > j)}(ans) end // end of [gt_intinf_int] implement {}(*tmp*) gt_intinf_intinf {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_mpz (!(x.2), !(y.2)) val ans = (if sgn > 0 then true else false): bool // in $UN.cast{bool(i > j)}(ans) end // end of [gt_intinf_intinf] (* ****** ****** *) implement {}(*tmp*) gte_intinf_int {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_int (!(x.2), y) val ans = (if sgn >= 0 then true else false): bool // in $UN.cast{bool(i >= j)}(ans) end // end of [gte_intinf_int] implement {}(*tmp*) gte_intinf_intinf {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_mpz (!(x.2), !(y.2)) val ans = (if sgn >= 0 then true else false): bool // in $UN.cast{bool(i >= j)}(ans) end // end of [gte_intinf_intinf] (* ****** ****** *) implement {}(*tmp*) eq_intinf_int {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_int (!(x.2), y) val ans = (if sgn = 0 then true else false): bool // in $UN.cast{bool(i == j)}(ans) end // end of [eq_intinf_int] implement {}(*tmp*) eq_intinf_intinf {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_mpz (!(x.2), !(y.2)) val ans = (if sgn = 0 then true else false): bool // in $UN.cast{bool(i == j)}(ans) end // end of [eq_intinf_intinf] (* ****** ****** *) implement {}(*tmp*) neq_intinf_int {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_int (!(x.2), y) val ans = (if sgn != 0 then true else false): bool // in $UN.cast{bool(i != j)}(ans) end // end of [neq_intinf_int] implement {}(*tmp*) neq_intinf_intinf {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_mpz (!(x.2), !(y.2)) val ans = (if sgn != 0 then true else false): bool // in $UN.cast{bool(i != j)}(ans) end // end of [neq_intinf_intinf] (* ****** ****** *) implement {}(*tmp*) compare_intinf_int {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_int (!(x.2), y) val sgn = (if sgn < 0 then ~1 else (if sgn > 0 then 1 else 0)): int // in $UN.cast{int(sgn(i-j))}(sgn) end // end of [compare_intinf_int] implement {}(*tmp*) compare_int_intinf {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_int(!(y.2), x) val sgn = (if(sgn > 0)then(~1)else(if sgn < 0 then 1 else 0)): int // in $UN.cast{int(sgn(i-j))}(sgn) end // end of [compare_int_intinf] implement {}(*tmp*) compare_intinf_intinf {i,j} (x, y) = let // val sgn = $GMP.mpz_cmp_mpz(!(x.2), !(y.2)) val sgn = (if(sgn < 0)then(~1)else(if sgn > 0 then 1 else 0)): int // in $UN.cast{int(sgn(i-j))}(sgn) end // end of [compare_intinf_intinf] (* ****** ****** *) implement {}(*tmp*) pow_int_int (base, exp) = $UN.castvwtp0(r0) where { // val r0 = ptr_alloc() val () = $GMP.mpz_init(!(r0.2)) val () = $GMP.mpz_ui_pow_ui(!(r0.2), i2ul(base), i2ul(exp)) // } (* end of [pow_intinf_int] *) implement {}(*tmp*) pow_intinf_int (base, exp) = $UN.castvwtp0(r0) where { // val r0 = ptr_alloc() val () = $GMP.mpz_init(!(r0.2)) val () = $GMP.mpz_pow_uint(!(r0.2), !(base.2), i2u(exp)) // } (* end of [pow_intinf_int] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) // implement{} print_intinf(x) = fprint_intinf(stdout_ref, x) implement{} prerr_intinf(x) = fprint_intinf(stderr_ref, x) implement{} fprint_intinf(out, x) = fprint_intinf_base(out, x, 10(*base*)) // (* ****** ****** *) (* end of [intinf_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/DATS/gintinf_t.dats0000644000175000017500000001166213431250607027263 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT gmail DOT com // Start Time: July, 2014 // (* ****** ****** *) #staload "./../SATS/intinf.sats" #staload "./../SATS/intinf_t.sats" (* ****** ****** *) (* #staload _ = "./../DATS/intinf_t.dats" #staload _ = "./../DATS/intinf_vt.dats" *) (* ****** ****** *) // abstype intinf_type = ptr typedef intinf = intinf_type // (* ****** ****** *) // extern castfn g0ofg1_intinf:Intinf - intinf extern castfn g1ofg0_intinf:intinf - Intinf // overload g0ofg1 with g0ofg1_intinf of 0 overload g1ofg0 with g1ofg0_intinf of 0 // (* ****** ****** *) // extern fun{} print_intinf : (intinf) -> void extern fun{} prerr_intinf : (intinf) -> void extern fun{} fprint_intinf : (FILEref, intinf) -> void // overload print with print_intinf of 0 overload prerr with prerr_intinf of 0 // overload fprint with fprint_intinf of 0 // (* ****** ****** *) // implement {}(*tmp*) print_intinf (x) = fprint_intinf(stdout_ref, x) implement {}(*tmp*) prerr_intinf (x) = fprint_intinf(stderr_ref, x) // implement {}(*tmp*) fprint_intinf(out, x) = fprint(out, g1ofg0(x)) // (* ****** ****** *) // // Generic operations on intinf-values // (* ****** ****** *) // implement gnumber_int (x) = let // val x = g1ofg0(x) val y = $effmask_all(intinf_make_int(x)) // in g0ofg1_intinf(y) end // end of [gnumber_int] // (* ****** ****** *) implement gneg_val (x) = let // val x = g1ofg0(x) val y = $effmask_all(neg_intinf(x)) // in g0ofg1_intinf(y) end // end of [gneg_val] (* ****** ****** *) implement gabs_val (x) = let // val x = g1ofg0(x) val y = $effmask_all(abs_intinf(x)) // in g0ofg1_intinf(y) end // end of [gabs_val] (* ****** ****** *) implement gsucc_val (x) = let // val x = g1ofg0(x) val y = $effmask_all(succ_intinf(x)) // in g0ofg1_intinf(y) end // end of [gsucc_val] (* ****** ****** *) implement gpred_val (x) = let // val x = g1ofg0(x) val y = $effmask_all(pred_intinf(x)) // in g0ofg1_intinf(y) end // end of [gpred_val] (* ****** ****** *) implement gadd_val_val (x1, x2) = let // val x1 = g1ofg0(x1) and x2 = g1ofg0(x2) val res = $effmask_all(add_intinf_intinf(x1, x2)) // in g0ofg1_intinf(res) end // end of [gadd_val_val] (* ****** ****** *) implement gsub_val_val (x1, x2) = let // val x1 = g1ofg0(x1) and x2 = g1ofg0(x2) val res = $effmask_all(sub_intinf_intinf(x1, x2)) // in g0ofg1_intinf(res) end // end of [gsub_val_val] (* ****** ****** *) implement gmul_val_val (x1, x2) = let // val x1 = g1ofg0(x1) and x2 = g1ofg0(x2) val res = $effmask_all(mul_intinf_intinf(x1, x2)) // in g0ofg1_intinf(res) end // end of [gmul_val_val] (* ****** ****** *) implement gdiv_val_val (x1, x2) = let // val x1 = g1ofg0(x1) and x2 = g1ofg0(x2) // val sgn = compare_intinf_int(x2, 0) // in // if sgn != 0 then let // val res = $effmask_all(div_intinf_intinf(x1, x2)) // in g0ofg1_intinf(res) end // end of [then] else $raise IllegalArgExn("gdiv_val_val:division-by-zero") // end // end of [gdiv_val_val] (* ****** ****** *) implement gequal_val_val (x1, x2) = let // val sgn = gcompare_val_val(x1, x2) // in if sgn = 0 then true else false end // end of [gequal_val_val] (* ****** ****** *) implement gcompare_val_val (x1, x2) = let val x1 = g1ofg0(x1) and x2 = g1ofg0(x2) in compare_intinf_intinf(x1, x2) end // end of [gcompare_val_val] (* ****** ****** *) (* end of [gintinf_t.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/mylibies.hats0000644000175000017500000000070013431250607026357 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-28: // For downstream staloading // (* ****** ****** *) // #staload INTINF = "./SATS/intinf.sats" #staload INTINF_t = "./SATS/intinf_t.sats" #staload INTINF_vt = "./SATS/intinf_vt.sats" // (* ****** ****** *) // #staload _(*INTINF_t*) = "./DATS/intinf_t.dats" #staload _(*INTINF_vt*) = "./DATS/intinf_vt.dats" // #staload GINTINF_t = "./DATS/gintinf_t.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/mydepies.hats0000644000175000017500000000050613431250607026365 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-21: // For handling dependencies // (* ****** ****** *) // local // #define LIBGMP_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-libgmp" // in (*in-of-local*) // #staload GMP = "{$LIBGMP}/SATS/gmp.sats" // end // end of [local] // (* ****** ****** *) (* end of [mydepies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/.keeper0000644000175000017500000000000013431250607025126 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/TEST/0000755000175000017500000000000013431250607024443 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/TEST/test01.dats0000644000175000017500000000273313431250607026445 0ustar brandonbrandon(* ** // // Factorials via GMP // ** Author: Hongwei Xi ** Authoremail: hwxi AT gmail DOT com ** Start Time: February, 2013 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload T = "./../SATS/intinf_t.sats" #staload VT = "./../SATS/intinf_vt.sats" // #staload _(*T*) = "./../DATS/intinf_t.dats" #staload _(*VT*) = "./../DATS/intinf_vt.dats" // (* ****** ****** *) overload print with $T.print_intinf overload print with $VT.print_intinf (* ****** ****** *) fun fact_t{i:nat} ( x: int (i) ) : $T.Intinf = let in // if x > 0 then let val r1 = fact_t (x - 1) in $T.mul_int_intinf (x, r1) end else $T.int2intinf (1) // end of [if] // end // end of [fact_t] (* ****** ****** *) fun fact_vt{i:nat} ( x: int (i) ) : $VT.Intinf = let in // if x > 0 then let val r1 = fact_vt (x - 1) in $VT.mul_int_intinf0 (x, r1) end else $VT.int2intinf (1) // end of [if] // end // end of [fact_vt] (* ****** ****** *) extern fun atoi: string -> int = "mac#atoi" (* ****** ****** *) implement main ( argc, argv ) = let val N = 10 val N = ( if argc >= 2 then atoi (argv[1]) else N ) : int // end of [val] val N = g1ofg0_int (N) val () = assertloc (N >= 0) // val res = fact_t (N) val () = println! ("fact_t(", N, ") = ", res) // val res = fact_vt (N) val () = println! ("fact_vt(", N, ") = ", res) val () = $VT.intinf_free (res) // in 0(*normalexit*) end // end of [main] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/TEST/test06.dats0000644000175000017500000000176413431250607026455 0ustar brandonbrandon(* ** // // Generic Fibonacci // ** Author: Hongwei Xi ** Start Time: July, 2014 ** Authoremail: hwxi AT gmail DOT com ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "./../DATS/gintinf_t.dats" // staload _ = "./../DATS/intinf_t.dats" staload _ = "./../DATS/intinf_vt.dats" // (* ****** ****** *) extern fun{a:t0p} gfib(x: int): a (* ****** ****** *) implement {a}(*tmp*) gfib (x) = let // macdef gint = gnumber_int macdef gadd = gadd_val_val // fun loop ( x: int, res1: a, res2: a ) : a = ( if x >= 1 then loop (x-1, res2, res1 \gadd res2) else res1 // end of [if] ) // in loop (x, gint(0), gint(1)) end // end of [gfib] (* ****** ****** *) implement main0 () = { // val out = stdout_ref val () = fprintln! (out, "fib(10) = ", gfib (10)) val () = fprintln! (out, "fib(50) = ", gfib (50)) val () = fprintln! (out, "fib(1000) = ", gfib (1000)) // } (* end of [main0] *) (* ****** ****** *) (* end of [test06.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/TEST/test05.dats0000644000175000017500000000142713431250607026450 0ustar brandonbrandon(* ** // // Generic factorial // ** Author: Hongwei Xi ** Authoremail: hwxi AT gmail DOT com ** Start Time: July, 2014 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "./../DATS/gintinf_t.dats" // staload _ = "./../DATS/intinf_t.dats" staload _ = "./../DATS/intinf_vt.dats" // (* ****** ****** *) // extern fun{ a:t0p } gfact(x: int): (a) // implement {a}(*tmp*) gfact (x) = let // macdef gint = gnumber_int macdef gmul = gmul_val_val // in // if x > 0 then gint(x) \gmul gfact (x-1) else gint(1) // end // end of [gfact] // (* ****** ****** *) implement main0 () = { // val out = stdout_ref val () = fprintln! (out, "fact(100) = ", gfact (100)) // } (* end of [main0] *) (* ****** ****** *) (* end of [test05.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/TEST/Makefile0000644000175000017500000000247213431250607026110 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=patscc PATSOPT=patsopt PATSFIND=patsfind PATSHOMEQ="$(PATSHOME)" ###### # export \ PATSHOMELOCS=\ ./node_modules:./../../node_modules # ###### all:: ###### CFLAGS:= CFLAGS+=-I"./../.." CFLAGS+=-DATS_MEMALLOC_LIBC ###### all:: \ test01 test01: \ test01.dats ; \ $(PATSCC) -cleanaft $(CFLAGS) -o $@ $< -lgmp regress:: test01; ./$< cleanall:: ; $(RMF) test01 ###### all:: \ test02 test02: \ test02.dats ; \ $(PATSCC) -cleanaft $(CFLAGS) -o $@ $< -lgmp regress:: test02; ./$< cleanall:: ; $(RMF) test02 ###### all:: \ test03 test03: \ test03.dats ; \ $(PATSCC) -cleanaft $(CFLAGS) -o $@ $< -lgmp regress:: test03; ./$< cleanall:: ; $(RMF) test03 ###### all:: \ test04 test04: \ test04.dats ; \ $(PATSCC) -cleanaft $(CFLAGS) -o $@ $< -lgmp regress:: test04; ./$< cleanall:: ; $(RMF) test04 ###### all:: \ test05 test05: \ test05.dats ; \ $(PATSCC) -cleanaft $(CFLAGS) -o $@ $< -lgmp regress:: test05; ./$< cleanall:: ; $(RMF) test05 ###### all:: \ test06 test06: \ test06.dats ; \ $(PATSCC) -cleanaft $(CFLAGS) -o $@ $< -lgmp regress:: test06; ./$< cleanall:: ; $(RMF) test06 ###### RMF=rm -f ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/TEST/README0000644000175000017500000000030013431250607025314 0ustar brandonbrandon# # README for tests # ###### test01: factorial test02: Fibonacci test03: sum of digits test04: fast power test05: generic factorial test06: generic fibonacci ###### end of [README] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/TEST/test02.dats0000644000175000017500000000374013431250607026445 0ustar brandonbrandon(* ** // // Fibonaccis via GMP // ** Author: Hongwei Xi ** Authoremail: hwxi AT gmail DOT com ** Start Time: February, 2013 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload T = "./../SATS/intinf_t.sats" staload VT = "./../SATS/intinf_vt.sats" (* ****** ****** *) staload _(*T*) = "./../DATS/intinf_t.dats" staload _(*VT*) = "./../DATS/intinf_vt.dats" (* ****** ****** *) overload print with $T.print_intinf overload print with $VT.print_intinf (* ****** ****** *) fun fib_t {n:nat} ( n: int (n) ) : $T.Intinf = let // fun loop {n:int | n >= 1} .. ( f0: $T.Intinf, f1: $T.Intinf, n: int n ) : $T.Intinf = let in // if n >= 2 then let val f2 = $T.add_intinf_intinf (f0, f1) // end of [val] in loop (f1, f2, n-1) end else f1 // end of [if] // end (* end of [loop] *) // val f0 = $T.int2intinf (0) // in if n >= 1 then loop (f0, $T.int2intinf (1), n) else f0 end // end of [fib_t] (* ****** ****** *) fun fib_vt {n:nat} ( n: int (n) ) : $VT.Intinf = let // fun loop {n:int | n >= 1} .. ( f0: $VT.Intinf, f1: $VT.Intinf, n: int n ) : $VT.Intinf = let in // if n >= 2 then let val f2 = $VT.add_intinf0_intinf1 (f0, f1) // end of [val] in loop (f1, f2, n-1) end else let val () = $VT.intinf_free (f0) in f1 end (* end of [if] *) // end (* end of [loop] *) // val f0 = $VT.int2intinf (0) // in if n >= 1 then loop (f0, $VT.int2intinf (1), n) else f0 end // end of [fib_vt] (* ****** ****** *) extern fun atoi: string -> int = "mac#atoi" (* ****** ****** *) implement main ( argc, argv ) = let val N = 10 val N = ( if argc >= 2 then atoi (argv[1]) else N ) : int // end of [val] val N = g1ofg0_int (N) val () = assertloc (N >= 0) // val res = fib_t (N) val () = println! ("fib_t(", N, ") = ", res) // val res = fib_vt (N) val () = println! ("fib_vt(", N, ") = ", res) val () = $VT.intinf_free (res) // in 0(*normalexit*) end // end of [main] (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/TEST/test04.dats0000644000175000017500000000267513431250607026455 0ustar brandonbrandon(* ** // // fast power computation // ** Author: Hongwei Xi ** Authoremail: hwxi AT gmail DOT com ** Start Time: April, 2013 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/intinf.sats" staload "./../SATS/intinf_vt.sats" (* ****** ****** *) staload _(*VT*) = "./../DATS/intinf_vt.dats" (* ****** ****** *) fun square ( x0: !Intinf ) : Intinf = let val ( fpf | x1 ) = intinf_vt_vcopy(x0) // val res = x0 * x1 prval () = fpf(x1) // in res end (* end of [square] *) (* ****** ****** *) fun mypower {n:nat} .. ( x0: !Intinf, n: int(n) ) : Intinf = let in // if (n > 0) then let val n2 = half(n) val x2 = square(x0) val res = mypower(x2, n2) val ((*freed*)) = intinf_free(x2) in // if n > 2*n2 then mul_intinf1_intinf0(x0, res) else res // end of [if] // end // end of [then] else int2intinf(1) // [else] // end (* end of [power] *) (* ****** ****** *) implement main0 () = { // #define N 1000 // val x0 = int2intinf(2) // val res = mypower(x0, N) val str = intinf_get_strptr (res, 10) // val () = println! "power (2, " N ") =\n" str // val () = intinf_free(res) val () = strptr_free(str) // val res = pow_intinf_int(x0, N) val str = intinf_get_strptr(res, 10) // val () = println! "power (2, " N ") = // built-in\n" str // val () = intinf_free(res) val () = strptr_free(str) // val ((*freed*)) = intinf_free(x0) // } (* end of [main0] *) (* ****** ****** *) (* end of [test04.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/TEST/test03.dats0000644000175000017500000000163413431250607026446 0ustar brandonbrandon(* ** // // testing division/modulo-functions // ** Author: Hongwei Xi ** Authoremail: hwxi AT gmail DOT com ** Start Time: April, 2013 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/intinf_vt.sats" (* ****** ****** *) staload _(*VT*) = "./../DATS/intinf_vt.dats" (* ****** ****** *) fun digitsum (x: Intinf): int = let // fun loop (x: Intinf, res: int): int = ( if x > 0 then let val res = res + nmod_intinf1_int (x, 10) // end of [val] in loop (ndiv_intinf0_int (x, 10), res) end else let val () = intinf_free (x) in res end (* end of [if] *) ) (* end of [loop] *) // in loop (x, 0) end (* end of [digitsum] *) (* ****** ****** *) implement main0 () = { val x0 = intinf_make_int (123456789) val () = assertloc (digitsum (x0) = 1+2+3+4+5+6+7+8+9) } (* end of [main0] *) (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/0000755000175000017500000000000013431250607024436 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/intinf_vt.sats0000644000175000017500000002426413431250607027342 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: February, 2013 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.intinf_vt" // (* ****** ****** *) // // HX-2013-02: // For multiple-precision integers // (* ****** ****** *) staload "./intinf.sats" (* ****** ****** *) stadef intinf = intinf_vtype // vtypedef Intinf = [i:int] intinf(i) // vtypedef intinfLt(i0:int) = [i:int | i < i0] intinf(i) vtypedef intinfLte(i0:int) = [i:int | i <= i0] intinf(i) vtypedef intinfGt(i0:int) = [i:int | i > i0] intinf(i) vtypedef intinfGte(i0:int) = [i:int | i >= i0] intinf(i) vtypedef intinfBtw(i1:int, i2:int) = [i:int | i1 <= i; i < i2] intinf(i) vtypedef intinfBtwe(i1:int, i2:int) = [i:int | i1 <= i; i <= i2] intinf(i) // (* ****** ****** *) // // HX: taken from GMP // typedef intinf_base = intBtwe(2, 36) // (* ****** ****** *) // fun{} intinf_make_int {i:int}(x: int(i)): intinf(i) // macdef int2intinf(x) = intinf_make_int(,(x)) // (* ****** ****** *) fun{} intinf_make_lint {i:int}(x: lint(i)): intinf(i) fun{} intinf_make_llint {i:int}(x: llint(i)): intinf(i) (* ****** ****** *) fun{} intinf_make_uint {i:int}(x: uint(i)): intinf(i) fun{} intinf_make_ulint {i:int}(x: ulint(i)): intinf(i) fun{} intinf_make_ullint {i:int}(x: ullint(i)): intinf(i) (* ****** ****** *) fun{} intinf_free(x: Intinf): void (* ****** ****** *) // fun{} intinf_get_int(x: !Intinf): int fun{} intinf_get_lint(x: !Intinf): lint // (* ****** ****** *) // fun{} intinf_get_strptr (x: !Intinf, base: intinf_base): Strptr1 // end of [intinf_get_strptr] // (* ****** ****** *) // fun{} print_intinf(x: !Intinf): void fun{} prerr_intinf(x: !Intinf): void fun{} fprint_intinf (out: FILEref, x: !Intinf): void // fun{} fprint_intinf_base ( out: FILEref, x: !Intinf, base: intinf_base ) : void // end of [fprint_intinf_base] // overload print with print_intinf overload prerr with prerr_intinf overload fprint with fprint_intinf // (* ****** ****** *) // // arithmetic-functions // (* ****** ****** *) // fun{} neg_intinf0 {i:int}(x: intinf(i)): intinf(~i) // fun{} neg_intinf1 {i:int}(x: !intinf(i)): intinf(~i) // overload ~ with neg_intinf1 // (* ****** ****** *) // fun{} abs_intinf0 {i:int}(x: intinf(i)): intinf(abs(i)) // fun{} abs_intinf1 {i:int}(x: !intinf(i)): intinf(abs(i)) // overload abs with abs_intinf1 // (* ****** ****** *) // fun{} succ_intinf0 {i:int}(x: intinf(i)): intinf(i+1) fun{} succ_intinf1 {i:int}(x: !intinf(i)): intinf(i+1) // overload succ with succ_intinf1 // (* ****** ****** *) // fun{} pred_intinf0 {i:int}(x: intinf(i)): intinf(i-1) // fun{} pred_intinf1 {i:int}(x: !intinf(i)): intinf(i-1) // overload pred with pred_intinf1 // (* ****** ****** *) // fun{} square_intinf0 {i:int}(x: intinf(i)): intinf(i*i) // fun{} square_intinf1 {i:int}(x: !intinf(i)): intinf(i*i) // overload square with square_intinf1 // (* ****** ****** *) // fun{} add_int_intinf0 {i,j:int} (x: int(i), y: intinf(j)): intinf(i+j) fun{} add_int_intinf1 {i,j:int} (x: int(i), y: !intinf(j)): intinf(i+j) // fun{} add_intinf0_int {i,j:int} (x: intinf(i), y: int(j)): intinf(i+j) // fun{} add_intinf1_int {i,j:int} (x: !intinf(i), y: int(j)): intinf(i+j) // fun{} add_intinf0_intinf1 {i,j:int} (x: intinf(i), y: !intinf(j)): intinf(i+j) fun{} add_intinf1_intinf0 {i,j:int} (x: !intinf(i), y: intinf(j)): intinf(i+j) fun{} add_intinf1_intinf1 {i,j:int} (x: !intinf(i), y: !intinf(j)): intinf(i+j) // overload + with add_intinf1_int overload + with add_int_intinf1 overload + with add_intinf1_intinf1 // (* ****** ****** *) // fun{} sub_int_intinf0 {i,j:int} (x: int(i), y: intinf(j)): intinf(i-j) fun{} sub_int_intinf1 {i,j:int} (x: int(i), y: !intinf(j)): intinf(i-j) // fun{} sub_intinf0_int {i,j:int} (x: intinf(i), y: int(j)): intinf(i-j) fun{} sub_intinf1_int {i,j:int} (x: !intinf(i), y: int(j)): intinf(i-j) // fun{} sub_intinf0_intinf1 {i,j:int} (x: intinf(i), y: !intinf(j)): intinf(i-j) fun{} sub_intinf1_intinf0 {i,j:int} (x: !intinf(i), y: intinf(j)): intinf(i-j) fun{} sub_intinf1_intinf1 {i,j:int} (x: !intinf(i), y: !intinf(j)): intinf(i-j) // overload - with sub_int_intinf1 overload - with sub_intinf1_int overload - with sub_intinf1_intinf1 // (* ****** ****** *) // fun{} mul_int_intinf0 {i,j:int} (x: int(i), y: intinf(j)): intinf(i*j) // fun{} mul_int_intinf1 {i,j:int} (x: int(i), y: !intinf(j)): intinf(i*j) // fun{} mul_intinf0_int {i,j:int} (x: intinf(i), y: int(j)): intinf(i*j) // fun{} mul_intinf1_int {i,j:int} (x: !intinf(i), y: int(j)): intinf (i*j) // fun{} mul_intinf0_intinf1 {i,j:int} (x: intinf(i), y: !intinf(j)): intinf(i*j) fun{} mul_intinf1_intinf0 {i,j:int} (x: !intinf(i), y: intinf(j)): intinf(i*j) // fun{} mul_intinf1_intinf1 {i,j:int} (x: !intinf(i), y: !intinf(j)): intinf(i*j) // overload * with mul_int_intinf1 overload * with mul_intinf1_int overload * with mul_intinf1_intinf1 // (* ****** ****** *) // fun{} div_intinf0_int {i,j:int | j != 0} (x: intinf(i), y: int(j)): intinf(i/j) // fun{} div_intinf1_int {i,j:int | j != 0} (x: !intinf(i), y: int(j)): intinf(i/j) // fun{} div_intinf0_intinf1 {i,j:int} (x: intinf(i), y: !intinf(j)): intinf(i/j) fun{} div_intinf1_intinf0 {i,j:int} (x: !intinf(i), y: intinf(j)): intinf(i/j) fun{} div_intinf1_intinf1 {i,j:int} (x: !intinf(i), y: !intinf(j)): intinf(i/j) // overload / with div_intinf1_int overload / with div_intinf1_intinf1 // (* ****** ****** *) // fun{} ndiv_intinf0_int {i,j:int | i >= 0; j > 0} (x: intinf i, y: int j): intinf(ndiv(i,j)) // fun{} ndiv_intinf1_int {i,j:int | i >= 0; j > 0} (x: !intinf i, y: int j): intinf(ndiv(i,j)) // fun{} ndiv_intinf0_intinf1 {i,j:nat | j > 0} (x: intinf(i), y: !intinf(j)): intinf(ndiv(i,j)) fun{} ndiv_intinf1_intinf0 {i,j:nat | j > 0} (x: !intinf(i), y: intinf(j)): intinf(ndiv(i,j)) fun{} ndiv_intinf1_intinf1 {i,j:nat | j > 0} (x: !intinf(i), y: !intinf(j)): intinf(ndiv(i,j)) // overload ndiv with ndiv_intinf1_int overload ndiv with ndiv_intinf1_intinf1 // (* ****** ****** *) // fun{} nmod_intinf0_int {i,j:int | j > 0} (x: intinf(i), y: int(j)): intBtw(0, j) // fun{} nmod_intinf1_int {i,j:int | j > 0} (x: !intinf(i), y: int(j)): intBtw(0, j) // fun{} nmod_intinf0_intinf1 {i,j:int | j > 0} (x: intinf(i), y: !intinf(j)): intinfBtw(0, j) fun{} nmod_intinf1_intinf0 {i,j:int | j > 0} (x: !intinf(i), y: intinf(j)): intinfBtw(0, j) fun{} nmod_intinf1_intinf1 {i,j:int | j > 0} (x: !intinf(i), y: !intinf(j)): intinfBtw(0, j) // overload nmod with nmod_intinf1_int overload nmod with nmod_intinf1_intinf1 // (* ****** ****** *) // // comparison-functions // (* ****** ****** *) fun{} lt_intinf_int {i,j:int} (x: !intinf(i), y: int(j)):<> bool(i < j) fun{} lt_intinf_intinf {i,j:int} (x: !intinf(i), y: !intinf(j)):<> bool(i < j) // overload < with lt_intinf_int overload < with lt_intinf_intinf // (* ****** ****** *) // fun{} lte_intinf_int {i,j:int} (x: !intinf(i), y: int(j)):<> bool(i <= j) fun{} lte_intinf_intinf {i,j:int} (x: !intinf(i), y: !intinf(j)):<> bool(i <= j) // overload <= with lte_intinf_int overload <= with lte_intinf_intinf // (* ****** ****** *) // fun{} gt_intinf_int {i,j:int} (x: !intinf(i), y: int(j)):<> bool(i > j) fun{} gt_intinf_intinf {i,j:int} (x: !intinf(i), y: !intinf(j)):<> bool(i > j) // overload > with gt_intinf_int overload > with gt_intinf_intinf // (* ****** ****** *) fun{} gte_intinf_int {i,j:int} (x: !intinf(i), y: int(j)):<> bool(i >= j) fun{} gte_intinf_intinf {i,j:int} (x: !intinf(i), y: !intinf(j)):<> bool(i >= j) // overload >= with gte_intinf_int overload >= with gte_intinf_intinf // (* ****** ****** *) // fun{} eq_intinf_int {i,j:int} (x: !intinf(i), y: int(j)):<> bool(i == j) fun{} eq_intinf_intinf {i,j:int} (x: !intinf(i), y: !intinf(j)):<> bool(i == j) // overload = with eq_intinf_int overload = with eq_intinf_intinf // (* ****** ****** *) // fun{} neq_intinf_int {i,j:int} (x: !intinf(i), y: int(j)):<> bool(i != j) fun{} neq_intinf_intinf {i,j:int} (x: !intinf(i), y: !intinf(j)):<> bool (i != j) // overload != with neq_intinf_int overload != with neq_intinf_intinf // (* ****** ****** *) // fun{} compare_intinf_int {i,j:int} (x: !intinf(i), y: int(j)):<> int(sgn(i-j)) fun{} compare_int_intinf {i,j:int} (x: int(i), y: !intinf(j)):<> int(sgn(i-j)) fun{} compare_intinf_intinf {i,j:int} (x: !intinf(i), y: !intinf(j)):<> int(sgn(i-j)) // overload compare with compare_intinf_int overload compare with compare_int_intinf overload compare with compare_intinf_intinf // (* ****** ****** *) // fun{} pow_int_int {b,n:nat}(base: int(b), exp: int(n)): intinfGte(0) fun{} pow_intinf_int {b,n:nat}(base: !intinf(b), exp: int(n)): intinfGte(0) // (* ****** ****** *) (* end of [intinf_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/intinf.sats0000644000175000017500000000457513431250607026634 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: February, 2013 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // // HX-2013-02: // For multi-precision integers // (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.intinf" // (* ****** ****** *) // abstype intinf_type(i:int) = ptr absvtype intinf_vtype(i:int) = ptr // (* ****** ****** *) // castfn intinf_vt2t{i:int} (x: intinf_vtype(i)):<> intinf_type(i) // end of [intinf_vt2t] // (* ****** ****** *) // castfn intinf_takeout {i:int} (x: intinf_type(i)):<> vttakeout0(intinf_vtype(i)) // end of [intinf_takeout] // (* ****** ****** *) // castfn intinf_t_vcopy {i:int} (x: intinf_type(i)):<> vttakeout0(intinf_vtype(i)) // end of [intinf_t_vcopy] castfn intinf_vt_vcopy {i:int} (x: !intinf_vtype(i)):<> vttakeout0(intinf_vtype(i)) // end of [intinf_vt_vcopy] // (* ****** ****** *) (* end of [intinf.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/intinf_t.sats0000644000175000017500000001445113431250607027151 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: February, 2013 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.intinf_t" // (* ****** ****** *) // // HX-2013-02: // For multiple-precision integers // (* ****** ****** *) staload "./intinf.sats" (* ****** ****** *) // stadef intinf = intinf_type // typedef Intinf = [i:int] intinf(i) // typedef intinfLt(i0:int) = [i:int | i < i0] intinf(i) typedef intinfLte(i0:int) = [i:int | i <= i0] intinf(i) typedef intinfGt(i0:int) = [i:int | i > i0] intinf(i) typedef intinfGte(i0:int) = [i:int | i >= i0] intinf(i) typedef intinfBtw(i1:int, i2:int) = [i:int | i1 <= i; i < i2] intinf(i) typedef intinfBtwe(i1:int, i2:int) = [i:int | i1 <= i; i <= i2] intinf(i) // (* ****** ****** *) // // HX: taken from GMP: // typedef intinf_base = intBtwe(2, 36) // (* ****** ****** *) // fun{} intinf_make_int {i:int}(x: int(i)): intinf(i) // macdef int2intinf(x) = intinf_make_int(,(x)) // (* ****** ****** *) fun{} intinf_make_lint {i:int}(x: lint(i)): intinf(i) fun{} intinf_make_llint {i:int}(x: llint(i)): intinf(i) (* ****** ****** *) fun{} intinf_make_uint {i:int}(x: uint(i)): intinf(i) fun{} intinf_make_ulint {i:int}(x: ulint(i)): intinf(i) fun{} intinf_make_ullint {i:int}(x: ullint(i)): intinf(i) (* ****** ****** *) // fun{} intinf_get_int(x: Intinf): int fun{} intinf_get_lint(x: Intinf): lint // (* ****** ****** *) // fun{} intinf_get_string (x: Intinf, base: intinf_base): string // end of [intinf_get_string] // (* ****** ****** *) // fun{} print_intinf(x: Intinf): void fun{} prerr_intinf(x: Intinf): void fun{} fprint_intinf (out: FILEref, x: Intinf): void // fun{} fprint_intinf_base ( out: FILEref, x: Intinf, base: intinf_base ) : void // end of [fprint_intinf_base] // overload print with print_intinf overload prerr with prerr_intinf overload fprint with fprint_intinf // (* ****** ****** *) fun{} neg_intinf {i:int}(x: intinf(i)): intinf (~i) overload ~ with neg_intinf (* ****** ****** *) fun{} abs_intinf {i:int}(x: intinf(i)): intinf(abs(i)) overload abs with abs_intinf (* ****** ****** *) fun{} succ_intinf {i:int}(x: intinf(i)): intinf (i+1) overload succ with succ_intinf (* ****** ****** *) fun{} pred_intinf {i:int} (x: intinf(i)): intinf (i-1) overload pred with pred_intinf (* ****** ****** *) // fun{} add_intinf_int {i,j:int} (x: intinf(i), y: int(j)): intinf(i+j) fun{} add_int_intinf {i,j:int} (x: int(i), y: intinf(j)): intinf(i+j) fun{} add_intinf_intinf {i,j:int} (x: intinf(i), y: intinf(j)): intinf(i+j) // overload + with add_intinf_int overload + with add_int_intinf overload + with add_intinf_intinf // (* ****** ****** *) // fun{} sub_intinf_int {i,j:int} (x: intinf(i), y: int(j)): intinf(i-j) fun{} sub_int_intinf {i,j:int} (x: int(i), y: intinf(j)): intinf(i-j) fun{} sub_intinf_intinf {i,j:int} (x: intinf(i), y: intinf(j)): intinf (i-j) // overload - with sub_intinf_int overload - with sub_int_intinf overload - with sub_intinf_intinf // (* ****** ****** *) // fun{} mul_intinf_int {i,j:int} (x: intinf(i), y: int(j)): intinf(i*j) fun{} mul_int_intinf {i,j:int} (x: int(i), y: intinf(j)): intinf(i*j) fun{} mul_intinf_intinf {i,j:int} (x: intinf(i), y: intinf(j)): intinf(i*j) // overload * with mul_intinf_int overload * with mul_int_intinf overload * with mul_intinf_intinf // (* ****** ****** *) // fun{} div_intinf_int {i,j:int | j != 0} (x: intinf(i), y: int(j)): intinf(i/j) fun{} div_intinf_intinf {i,j:int | j != 0} (x: intinf(i), y: intinf(j)): intinf(i/j) // overload / with div_intinf_int overload / with div_intinf_intinf // (* ****** ****** *) // fun{} nmod_intinf_int {i,j:nat | j > 0} (x: intinf(i), y: int(j)): intBtw(0, j) fun{} nmod_intinf_intinf {i,j:nat | j > 0} (x: intinf(i), y: intinf(j)): intinfBtw(0, j) // overload nmod with nmod_intinf_int overload nmod with nmod_intinf_intinf // (* ****** ****** *) // fun{} ndiv_intinf_int {i,j:nat | j > 0} (x: intinf(i), y: int(j)): intinf(ndiv(i,j)) fun{} ndiv_intinf_intinf {i,j:nat | j > 0} (x: intinf(i), y: intinf(j)): intinf(ndiv(i,j)) // overload ndiv with ndiv_intinf_int overload ndiv with ndiv_intinf_intinf // (* ****** ****** *) // // comparison-functions // (* ****** ****** *) // fun{} compare_int_intinf {i,j:int} (x: int(i), y: intinf(j)):<> int(sgn(i-j)) fun{} compare_intinf_int {i,j:int} (x: intinf(i), y: int(j)):<> int(sgn(i-j)) fun{} compare_intinf_intinf {i,j:int} (x: intinf(i), y: intinf(j)):<> int(sgn(i-j)) // overload compare with compare_int_intinf overload compare with compare_intinf_int overload compare with compare_intinf_intinf // (* ****** ****** *) // fun{} pow_int_int {b,n:nat} (base: int(b), exp: int(n)): intinfGte(0) fun{} pow_intinf_int {b,i:nat} (base: intinf(b), exp: int(i)): intinfGte(0) // (* ****** ****** *) (* end of [intinf_t.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/0000755000175000017500000000000013431250607025522 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/intinf_vt.atxt0000644000175000017500000000602313431250607030425 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../intinf_vt.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/libats-hwxi_intinf_vt") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/libats-hwxi/intinf_vt\ ") (* ****** ****** *) #declpreamble('\ #para('\ This package is for supporting integers of unlimited precision, and it is implemented based on the GMP library. The primary purpose of the package is to provide a simple and clean approach to programming with large integers that is also memory-efficient.\ ')#comment("para") ')#comment("declpreamble") (* ****** ****** *) #declname("intinf") %{ (* #declnamesynop("intinf_vtype") *) %} (* ****** ****** *) #declnamesynop("Intinf") (* ****** ****** *) #declnamesynop("intinfLt") #declnamesynop("intinfLte") #declnamesynop("intinfGt") #declnamesynop("intinfGte") #declnamesynop("intinfBtw") #declnamesynop("intinfBtwe") (* ****** ****** *) #declnamesynop("intinf_make_int") #declnamesynop("intinf_make_uint") #declnamesynop("intinf_make_lint") #declnamesynop("intinf_make_ulint") (* ****** ****** *) #declnamesynop("intinf_free") (* ****** ****** *) #declnamesynop("print_intinf") #declnamesynop("prerr_intinf") #declnamesynop("fprint_intinf") #declnamesynop("fprint_intinf_base") (* ****** ****** *) #declnamesynop("abs_intinf0") #declnamesynop("abs_intinf1") #declnamesynop("neg_intinf0") #declnamesynop("neg_intinf1") (* ****** ****** *) #declnamesynop("succ_intinf0") #declnamesynop("succ_intinf1") #declnamesynop("pred_intinf0") #declnamesynop("pred_intinf1") (* ****** ****** *) #declnamesynop("add_intinf0_int") #declnamesynop("add_intinf1_int") #declnamesynop("add_int_intinf0") #declnamesynop("add_int_intinf1") #declnamesynop("add_intinf0_intinf1") #declnamesynop("add_intinf1_intinf0") #declnamesynop("add_intinf1_intinf1") (* ****** ****** *) #declnamesynop("sub_intinf0_int") #declnamesynop("sub_intinf1_int") #declnamesynop("sub_int_intinf0") #declnamesynop("sub_int_intinf1") #declnamesynop("sub_intinf0_intinf1") #declnamesynop("sub_intinf1_intinf0") #declnamesynop("sub_intinf1_intinf1") (* ****** ****** *) #declnamesynop("mul_intinf0_int") #declnamesynop("mul_intinf1_int") #declnamesynop("mul_int_intinf0") #declnamesynop("mul_int_intinf1") #declnamesynop("mul_intinf0_intinf1") #declnamesynop("mul_intinf1_intinf0") #declnamesynop("mul_intinf1_intinf1") (* ****** ****** *) #declnamesynop("div_intinf0_int") #declnamesynop("div_intinf1_int") #declnamesynop("div_intinf0_intinf1") #declnamesynop("div_intinf1_intinf0") #declnamesynop("div_intinf1_intinf1") (* ****** ****** *) #declnamesynop("ndiv_intinf0_int") #declnamesynop("ndiv_intinf1_int") (* ****** ****** *) #declnamesynop("nmod_intinf0_int") #declnamesynop("nmod_intinf1_int") (* ****** ****** *) #declnamesynop("compare_int_intinf") #declnamesynop("compare_intinf_int") #declnamesynop("compare_intinf_intinf") (* ****** ****** *) #declnamesynop("pow_intinf_int") (* ****** ****** *) (* end of [intinf_vt.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/intinf_t.atxt0000644000175000017500000000406613431250607030244 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../intinf_t.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/libats-hwxi_intinf") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/libats-hwxi/intinf_t\ ") (* ****** ****** *) #declpreamble('\ #para('\ This package is for supporting integers of unlimited precision, and it is implemented based on the GMP library. The primary purpose of the package is to provide a simple and clean approach to programming with large integers.\ ')#comment("para") ')#comment("declpreamble") (* ****** ****** *) #declnamesynop("intinf") %{ (* #declnamesynop("intinf_type") *) %} (* ****** ****** *) #declnamesynop("Intinf") (* ****** ****** *) #declnamesynop("intinfLt") #declnamesynop("intinfLte") #declnamesynop("intinfGt") #declnamesynop("intinfGte") #declnamesynop("intinfBtw") #declnamesynop("intinfBtwe") (* ****** ****** *) #declnamesynop("intinf_make_int") #declnamesynop("intinf_make_uint") #declnamesynop("intinf_make_lint") #declnamesynop("intinf_make_ulint") (* ****** ****** *) #declnamesynop("intinf_free") (* ****** ****** *) #declnamesynop("print_intinf") #declnamesynop("prerr_intinf") #declnamesynop("fprint_intinf") #declnamesynop("fprint_intinf_base") (* ****** ****** *) #declnamesynop("abs_intinf") #declnamesynop("neg_intinf") (* ****** ****** *) #declnamesynop("succ_intinf1") #declnamesynop("pred_intinf1") (* ****** ****** *) #declnamesynop("add_intinf_int") #declnamesynop("add_int_intinf") #declnamesynop("add_intinf_intinf") (* ****** ****** *) #declnamesynop("sub_intinf_int") #declnamesynop("sub_int_intinf") #declnamesynop("sub_intinf_intinf") (* ****** ****** *) #declnamesynop("mul_intinf_int") #declnamesynop("mul_int_intinf") #declnamesynop("mul_intinf_intinf") (* ****** ****** *) #declnamesynop("compare_int_intinf") #declnamesynop("compare_intinf_int") #declnamesynop("compare_intinf_intinf") (* ****** ****** *) #declnamesynop("pow_intinf_int") (* ****** ****** *) (* end of [intinf_t.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/Makefile.gen0000777000175000017500000000000013431250607034315 2../../../../share/Makefile.genustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/HTML/0000755000175000017500000000000013431250607026266 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/HTML/.keeper0000644000175000017500000000000013431250607027530 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/Makefile0000644000175000017500000000667113431250607027174 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/utils/libatsopt LDPATH += -L$(PATSHOME)/utils/libatsynmark ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \ declatext_sats.o \ declatext_dats.o \ declatext_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \ htmlgendecl_sats.o \ htmlgendecl_dats.o \ htmlgendecl_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: all_html:: HTML/intinf.html HTML/intinf.html: intinf_atxt.exe ; ./$< > $@ intinf_atxt.txt: intinf.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ intinf_atxt.exe: htmlgendecl_atxt.dats intinf_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) $(ATSGCFLAG) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_intinf:: ; scp HTML/intinf.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/intinf/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) intinf_atxt.exe cleanall:: ; $(RMF) HTML/intinf.html all_html:: HTML/intinf_t.html HTML/intinf_t.html: intinf_t_atxt.exe ; ./$< > $@ intinf_t_atxt.txt: intinf_t.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ intinf_t_atxt.exe: htmlgendecl_atxt.dats intinf_t_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) $(ATSGCFLAG) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_intinf_t:: ; scp HTML/intinf_t.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/intinf/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) intinf_t_atxt.exe cleanall:: ; $(RMF) HTML/intinf_t.html all_html:: HTML/intinf_vt.html HTML/intinf_vt.html: intinf_vt_atxt.exe ; ./$< > $@ intinf_vt_atxt.txt: intinf_vt.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ intinf_vt_atxt.exe: htmlgendecl_atxt.dats intinf_vt_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) $(ATSGCFLAG) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_intinf_vt:: ; scp HTML/intinf_vt.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/intinf/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) intinf_vt_atxt.exe cleanall:: ; $(RMF) HTML/intinf_vt.html ###### uploadall:: ; scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/intinf/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/theDeclpostamble.html0000644000175000017500000000075113431250607031672 0ustar brandonbrandon
This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. SourceForge.net Logo
ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/Makefile.atxt0000644000175000017500000000532613431250607030147 0ustar brandonbrandon%{ // staload STDIO = "libc/SATS/stdio.sats" staload TIME = "libc/SATS/time.sats" // dynload "libatsdoc/dynloadall.dats" // staload "libatsdoc/SATS/libatsdoc_atext.sats" // %}\ %{ fun comment (x: string): atext = atext_nil () // end of [comment] fun make_entry (nm: string): atext = let // val ent = sprintf ("\ all_html:: HTML/%s.html\n\ HTML/%s.html: \ %s_atxt.exe ; ./$< > $@ %s_atxt.txt: %s.atxt ; $(CAT) $< | \ $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ %s_atxt.exe: htmlgendecl_atxt.dats \ %s_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; \ $(ATSCC) $(INCLUDE) $(INCLATS) $(ATSGCFLAG) -o $@ $< \ $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_%s:: ; \ scp HTML/%s.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/intinf/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) %s_atxt.exe cleanall:: ; $(RMF) HTML/%s.html ", @(nm, nm, nm, nm, nm, nm, nm, nm, nm, nm, nm) ) // end of [val] // in atext_strptr (ent) end // end of [make_entry] %}\ # # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/utils/libatsopt LDPATH += -L$(PATSHOME)/utils/libatsynmark ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \\ declatext_sats.o \\ declatext_dats.o \\ declatext_sats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \\ htmlgendecl_sats.o \\ htmlgendecl_dats.o \\ htmlgendecl_sats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \\ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: #make_entry("intinf") #make_entry("intinf_t") #make_entry("intinf_vt") ###### uploadall:: ; \ scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/intinf/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### \ %{ implement main () = fprint_filsub (stdout_ref, "Makefile_atxt.txt") %}\ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/SATS/DOCUGEN/intinf.atxt0000644000175000017500000000173513431250607027721 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../intinf.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/libats-hwxi_intinf") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/libats-hwxi/intinf\ ") (* ****** ****** *) #declpreamble('\ #para('\ This package is for supporting integers of unlimited precision, and it is implemented based on the GMP library. The primary purpose of the package is to provide a simple and clean approach to programming with large integers.\ ')#comment("para") ')#comment("declpreamble") (* ****** ****** *) #declnamesynop("intinf_type") #declnamesynop("intinf_vtype") (* ****** ****** *) #declnamesynop("intinf_vt2t") #declnamesynop("intinf_takeout") #declnamesynop("intinf_vcopy") (* ****** ****** *) #declname2("intinf_t.sats", "intinf_t.html") #declname2("intinf_vt.sats", "intinf_vt.html") (* ****** ****** *) (* end of [intinf.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-intinf/README.md0000644000175000017500000000313713431250607025147 0ustar brandonbrandon# Intinf A simple package based on libgmp for arithmetic operations (plus some other common operations on integers) ## Description ###SATS Files 1. SATS/intinf.sats: The abstract types `intinf_type(int)` (nonlin) and `intinf_vtype(int)` (linear) are introduced, and a few functions are declared for going between values of these two types. Given a static integer `i`, the type `intinf_type(i)` is for a dynamic value representing `i` while the type `intinf_vtype(i)` is for a (linear) dynamic value representing `i`. 2. SATS/intinf_t.sats: The interface for arithmetic operations and some other operations on integers represented as dynamic values of the type `intinf_type`. In general, using functions declared in `intinf_t.sats` may require some support of GC. 3. SATS/intinf_vt.sats: The interface for arithmetic operations and some other operations on integers represented as linear dynamic values of the type `intinf_vtype`. While it is a bit more involved to use functions declared in `intinf_vt.sats` than in `intinf_t.sats`, the resulting code can be significantly more efficent both time-wise and memory-wise. ###DATS Files 1. DATS/intinf_t.dats: The file contains implementation for the templates declared in `intinf_t.sats`. 2. DATS/intinf_vt.dats: The file contains implementation for the templates declared in `intinf_vt.sats`. 3. DATS/gintinf_t.dats: The file contains implementation for using values of the type `intinf_type` as gnumbers (generic numbers). ###TEST Files The files in the TEST directory contain code that gives details on using various templates implemented in this package. ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/0000755000175000017500000000000013431250607024031 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/DATS/0000755000175000017500000000000013431250607024564 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/DATS/getargs.dats0000644000175000017500000003125213431250607027100 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2017 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** For parsing ** command-line arguments and more *) (* ****** ****** *) // // Author: Hongwei Xi // Start time: May, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" (* ****** ****** *) #staload UN = $UNSAFE (* ****** ****** *) #staload "./../SATS/getargs.sats" (* ****** ****** *) // implement {}(*tmp*) print_optargs(x) = fprint_optargs<>(stdout_ref, x) implement {}(*tmp*) prerr_optargs(x) = fprint_optargs<>(stderr_ref, x) // implement {}(*tmp*) fprint_optargs(out, x) = ( case+ x of | OPTARGS0(arg) => fprint!(out, "OPTARGS0(", arg, ")") | OPTARGS1(opt, nil0()) => fprint!(out, "OPTARGS1(", opt, ")") | OPTARGS1(opt, args) => fprint!(out, "OPTARGS1(", opt, "; ", args, ")") ) // (* ****** ****** *) // implement {}(*tmp*) print_optarty(x) = fprint_optarty<>(stdout_ref, x) implement {}(*tmp*) prerr_optarty(x) = fprint_optarty<>(stderr_ref, x) // implement {}(*tmp*) fprint_optarty(out, x) = ( case+ x of | OPTARTY0() => fprint!(out, "OPTARTY0()") | OPTARTY1() => fprint!(out, "OPTARTY1()") | OPTARTYeq(n) => fprint!(out, "OPTARTYeq(", n, ")") | OPTARTYgte(n) => fprint!(out, "OPTARTYgte(", n, ")") ) // (* ****** ****** *) // implement fprint_val = fprint_optargs<> implement fprint_val = fprint_optarty<> // (* ****** ****** *) // implement {}(*tmp*) outchan_close (out) = ( case+ out of | OUTCHANref(filr) => () | OUTCHANptr(filr) => fileref_close(filr) ) // (* ****** ****** *) // implement {}(*tmp*) outchan_fileref (out) = ( case+ out of | OUTCHANptr(filr) => filr | OUTCHANref(filr) => filr ) // (* ****** ****** *) // implement {}(*tmp*) getargs_is_opt (arg) = let // val n = getargs_get_ndash(arg) // in // if (n >= 1) then ( if (n >= 2) then true else isneqz ($UN.ptr0_get_at(string2ptr(arg), 1)) ) else false // end // end of [getargs_is_opt] // (* ****** ****** *) // implement {}(*tmp*) getargs_is_arg (arg) = not(getargs_is_opt<>(arg)) // (* ****** ****** *) // implement {}(*tmp*) getargs_usage() = ( fprintln! (stderr_ref, "Hello from [getargs_usage]!") ) (* getargs_usage *) // (* ****** ****** *) implement //{}(*tmp*) getargs_get_ndash (arg) = let // fun loop ( p: ptr, i: intGte(0) ) : intGte(0) = let val c = $UN.ptr0_get(p) in // if (c != '-') then i (*exit*) else loop(ptr_succ(p), i+1) // end of [if] // end // in loop(string2ptr(arg), 0) end // end of [getargs_get_ndash] (* ****** ****** *) // implement {}(*tmp*) getargs_is_help (opt) = ( case+ opt of | "-h" => true | "--help" => true | _(*rest-of-string*) => false ) // (* ****** ****** *) // implement {}(*tmp*) getargs_is_input (opt) = ( case+ opt of | "-i" => true | "--input" => true | _(*rest-of-string*) => false ) // (* ****** ****** *) // implement {}(*tmp*) getargs_is_output (opt) = ( ifcase // | (opt="-o") => true | (opt="--output") => true // | getargs_is_output_a(opt) => true // | getargs_is_output_w(opt) => true // | _(* else *) => false // ) // implement {}(*tmp*) getargs_is_output_w (opt) = ( case+ opt of | "--output-w" => true | _(* rest-of-string *) => false ) implement {}(*tmp*) getargs_is_output_a (opt) = ( case+ opt of | "--output-a" => true | _(* rest-of-string *) => false ) // (* ****** ****** *) // local // val table = gvhashtbl_make_nil(16) // in (* in-of-local *) // implement the_optarty_get() = table // end // end of [local] (* ****** ****** *) // implement {}(*tmp*) the_optarty_get_key (k0) = let // val table = the_optarty_get() // in // case+ table[k0] of (*case+*) | GVptr(p0) => $UN.cast{optarty}(p0) // GVptr | _(*non-GVptr*) => OPTARTY0 // end // end of [the_optarty_get_key] // implement {}(*tmp*) the_optarty_set_key (k0, art) = let // val table = the_optarty_get() // in // table[k0] := gvalue_box(art) // end // end of [the_optarty_set_key] // (* ****** ****** *) implement {}(*tmp*) the_optarty_initset ((*void*)) = { // (* // // HX: // there is no need // for this as it is the default // val () = the_optarty_set_key("-h", OPTARTY0) val () = the_optarty_set_key("--helo", OPTARTY0) *) // val () = the_optarty_set_key("-i", OPTARTY1) val () = the_optarty_set_key("--input", OPTARTY1) // val () = the_optarty_set_key("-o", OPTARTY1) val () = the_optarty_set_key("--output", OPTARTY1) val () = the_optarty_set_key("--output-a", OPTARTY1) val () = the_optarty_set_key("--output-w", OPTARTY1) // } (* end of [the_optarty_initset] *) (* ****** ****** *) // implement {}(*tmp*) the_outchan_get() = ! ( the_outchan_getref<>() ) // (* ****** ****** *) // local // typedef gvhashtblopt = Option(gvhashtbl) // val optref = ref(None) // in (* in-of-local *) implement the_state_optref_get () = let // val opt = !optref // in // case+ opt of | Some(x0) => x0 | None((*void*)) => x0 where { val x0 = gvhashtbl_make_nil(16) // end of [val] val () = !optref := Some(x0) } // end // end of [the_state_ref_get] end // end of [local] // implement {}(*tmp*) the_state_get ((*void*)) = the_state_optref_get() // (* ****** ****** *) implement {}(*tmp*) the_state_get_key (k0) = state[k0] where { // val state = the_state_get<>() // } // end of [the_state_get_key] implement {}(*tmp*) the_state_set_key (k0, gv) = (state[k0] := gv) where { // val state = the_state_get<>() // } // end of [the_state_set_key] (* ****** ****** *) implement {}(*tmp*) the_state_get_output_mode ((*void*)) = let // val gv = the_state_get_key(OUTPUT_MODE) // in // case+ gv of | GVstring"s" => file_mode_w | GVstring"a" => file_mode_a | _(*unrecognized*) => file_mode_w // end // the_state_get_output_mode (* ****** ****** *) // implement {}(*tmp*) getargs_do_help (fxs) = () where { val () = getargs_usage((*void*)) } // (* ****** ****** *) // implement {}(*tmp*) getargs_do_input (fxs) = let // val- OPTARGS1(f, xs) = fxs // val-list0_cons(x, _) = xs // in // case+ x of | "-"(*stdin*) => let val inp = stdin_ref in getargs_do_input$some<>(inp) end // end of [dash] | _(*non-dash*) => let val fm = file_mode_r val fopt = fileref_open_opt(x, fm) // end of [val] in case+ fopt of | ~None_vt() => getargs_do_input$none<>() | ~Some_vt(inp) => getargs_do_input$some<>(inp) end // end of [non-dash] // end // end of [getargs_do_input] // implement {}(*tmp*) getargs_do_input$none() = () implement {}(*tmp*) getargs_do_input$some(inp) = fileref_close(inp) // (* ****** ****** *) // implement {}(*tmp*) getargs_do_output (fxs) = let // val- OPTARGS1(f, xs) = fxs // val-list0_cons(x, _) = xs // macdef is_output_a = getargs_is_output_a macdef is_output_w = getargs_is_output_w // val () = ( ifcase | is_output_a(f) => the_state_set_key (OUTPUT_MODE, GVstring"a") | is_output_w(f) => the_state_set_key (OUTPUT_MODE, GVstring"w") | _(*no-mode-specified*) => ((*void*)) ) // val r0 = the_outchan_getref<>() // val () = outchan_close(!r0) // in // case+ x of | "-" => let val cout = OUTCHANref(stdout_ref) in !r0 := cout end // end of [dash] | _(*non-dash*) => let val fm = the_state_get_output_mode() // end of [val] val fopt = fileref_open_opt(x, fm) in case+ fopt of | ~Some_vt(filr) => (!r0 := OUTCHANptr(filr)) | ~None_vt((*void*)) => (!r0 := OUTCHANref(stderr_ref)) // end of [None_vt] end // end of [non-dash] // end // end of [getargs_do_output] // (* ****** ****** *) implement {}(*tmp*) optargs_eval_one (fxs) = let // (* val () = println! ("optargs_eval_one") *) // in // case+ fxs of | OPTARGS0 _ => optargs_eval_arg(fxs) | OPTARGS1 _ => optargs_eval_opt(fxs) // end // end of [optargs_eval_one] (* ****** ****** *) // implement {}(*tmp*) optargs_eval_arg (fxs) = let // val out = stderr_ref // in // fprintln! (out, "optargs_eval_arg: fxs = ", fxs) // end // end of [optargs_eval_arg] // (* ****** ****** *) implement {}(*tmp*) optargs_eval_opt (fxs) = let // macdef is_help = getargs_is_help macdef is_input = getargs_is_input macdef is_output = getargs_is_output // val- OPTARGS1(f, _) = fxs // in (* in-of-let *) // ifcase // | is_help(f) => getargs_do_help<>(fxs) // | is_input(f) => getargs_do_input<>(fxs) // | is_output(f) => getargs_do_output<>(fxs) // | _(*non-special*) => optargs_eval2_opt<>(fxs) // end // end of [optargs_eval_opt] (* ****** ****** *) // implement {}(*tmp*) optargs_eval2_opt (fxs) = ( fprintln! ( stderr_ref , "optargs_eval2_opt: fxs = ", fxs ) (* fprintln! *) ) // (* ****** ****** *) implement {}(*tmp*) optargs_eval_all (fxss) = ( case+ fxss of | list0_nil ((*void*)) => { val () = optargs_eval_all$after<>() } | list0_cons (fxs, fxss) => { val () = optargs_eval_one<>(fxs) val () = optargs_eval_all<>(fxss) } (* end of [list0_cons] *) ) (* ****** ****** *) // implement {}(*tmp*) optargs_eval_all$after ((*void*)) = { // val r0 = the_outchan_getref() // end of [val] val () = outchan_close(!r0) // } (* optargs_eval_all$after *) // (* ****** ****** *) implement {}(*tmp*) optargs_parse_one (opt, xs) = let // val art = the_optarty_get_key(opt) // local // macdef return (p0, xs, res) = let val () = $UN.ptr0_set(,(p0), ,(xs)) in ,(res) end // fun loop ( p0: ptr, xs: list0(string), i0: int, res: List0_vt(string) ) : List0_vt(string) = ( // if (i0 > 0) then ( case+ xs of | list0_nil() => return(p0, xs, res) | list0_cons(x, xs) => ( if getargs_is_arg(x) then loop ( p0, xs , i0-1, cons_vt(x, res) ) (* loop *) else return(p0, xs, res) ) (* end of [list0_cons] *) ) (* end of [then] *) else return(p0, xs, res) // ) (* end of [loop] *) // in // fun auxeq ( xs: &list0(string) >> _, i0: int ) : list0(string) = let // val p0 = addr@xs // val res = list_vt_nil(*void*) val res = loop(p0, xs, i0, res) // in list0_of_list_vt(list_vt_reverse(res)) end // end of [auxeq] // fun auxgte ( xs: &list0(string) >> _, i0: int ) : list0(string) = let // fun loop2 ( p0: ptr , xs: list0(string) , res: List0_vt(string) ) : List0_vt(string) = ( case+ xs of | list0_nil() => return(p0, xs, res) | list0_cons(x, xs) => ( if getargs_is_arg(x) then loop2(p0, xs, cons_vt(x, res)) else return(p0, xs, res) ) (* end of [list0_cons] *) ) // val p0 = addr@xs // val res = list_vt_nil(*void*) val res = loop(p0, xs, i0, res) // val res = loop2(p0, xs, res) // in list0_of_list_vt(list_vt_reverse(res)) end // end of [auxgte] // end // end of [local] // in // case+ art of | OPTARTY0() => list0_nil(*void*) | OPTARTY1() => auxeq(xs, 1) | OPTARTYeq(n) => auxeq(xs, n) | OPTARTYgte(n) => auxgte(xs, n) // end // end of [optargs_parse_one] (* ****** ****** *) // implement {}(*tmp*) optargs_parse_all (xs) = let // fun loop ( xs: list0(string) , res: List0_vt(optargs) ) : List0_vt(optargs) = ( case+ xs of | list0_nil() => res | list0_cons(x, xs) => ( if getargs_is_arg(x) then let val res = list_vt_cons(OPTARGS0(x), res) in loop(xs, res) end // end of [then] else let var xs = xs val ys = optargs_parse_one(x, xs) val res = list_vt_cons(OPTARGS1(x, ys), res) in loop(xs, res) end // end of [else] ) ) // val res = list_vt_nil((*void*)) // in list0_of_list_vt(list_vt_reverse(loop(xs, res))) end // end of [optargs_parse_all] (* ****** ****** *) (* end of [getargs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/mylibies.hats0000644000175000017500000000040613431250607026527 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-05-09: // For downstream staloading // (* ****** ****** *) // #staload GETARGS = "./SATS/getargs.sats" // (* ****** ****** *) // #staload _(*GETARGS*) = "./DATS/getargs.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/.keeper0000644000175000017500000000000013431250607025273 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/TEST/0000755000175000017500000000000013431250607024610 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/TEST/test01.dats0000644000175000017500000000632613431250607026614 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [getargs] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2017 ** Authoremail: gmhwxiATgmailDOTedu *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $GETARGS // opening it // #include "./../mylibies_link.hats" // (* ****** ****** *) implement {}(*tmp*) getargs_usage() = let // val arg0 = getargs_arg0<>() // in // println! ("Usage: ", arg0, " ... \n"); println! ("where a is of one of the following forms:\n"); // println! (" -h,--help (for printing out this help usage)"); // println! (" -ev,--eval (for outputing * )"); // println! (" -a1,--arg1: (for inputing the 1st argument)"); // println! (" -a2,--arg2: (for inputing the 2nd argument)"); // println! (" -o,--output: (output into )"); println! (" -ow,-output-w: (output-write into )"); println! (" -oa,-output-a: (output-append into )"); // end (* end of [getargs_usage] *) (* ****** ****** *) implement {}(*tmp*) getargs_is_output_w (opt) = ( case+ opt of | "-ow" => true | "--output-w" => true | _(* rest-of-string *) => false ) implement {}(*tmp*) getargs_is_output_a (opt) = ( case+ opt of | "-oa" => true | "--output-a" => true | _(* rest-of-string *) => false ) (* ****** ****** *) implement optargs_eval2_opt<> (fxs) = let // val-OPTARGS1(f, xs) = fxs // in // ifcase | ( f="-a1"|| f="--arg1" ) => the_state_set_key ("--arg1", GVint(g0string2int(xs.head()))) | ( f="-a2"|| f="--arg2" ) => the_state_set_key ("--arg2", GVint(g0string2int(xs.head()))) | ( f="-ev"|| f="--eval" ) => let val out = the_outchan_get() val out = outchan_fileref(out) val-GVint(i1) = the_state_get_key("--arg1") val-GVint(i2) = the_state_get_key("--arg2") in fprintln! ( out , "The product of arg1 and arg2 is: ", i1 * i2 ) (* fprintln! *) end | _(* rest-of-flag *) => ( fprintln!(stderr_ref, "optargs_eval2_opt: unrecognized flag: ", f) ) // end // end of [optargs_eval2_opt] (* ****** ****** *) local var ocr = OUTCHANref(stdout_ref) // fun focr ( // argless ) : ref(outchan) = $UN.cast(addr@ocr) // in implement the_outchan_getref<>() = focr((*void*)) end // end of [local] (* ****** ****** *) // val () = the_optarty_set_key("-ow", OPTARTYeq(1)) val () = the_optarty_set_key("-oa", OPTARTYeq(1)) // val () = the_optarty_set_key("-a1", OPTARTYeq(1)) val () = the_optarty_set_key("--arg1", OPTARTYeq(1)) // val () = the_optarty_set_key("-a2", OPTARTYeq(1)) val () = the_optarty_set_key("--arg2", OPTARTYeq(1)) // (* ****** ****** *) implement main0(argc, argv) = { // val arg0 = argv[0] // implement getargs_arg0<>() = arg0 // val () = the_optarty_initset((*void*)) // val xs = listize_argc_argv(argc, argv) // val xs = list0_of_list_vt(xs) val optargss = optargs_parse_all(xs) // (* val () = println!("optargss = ", optargss) *) // val () = optargs_eval_all(optargss.tail()) // } // end of [main0] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/TEST/test00.dats0000644000175000017500000000132113431250607026601 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [getargs] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2017 ** Authoremail: gmhwxiATgmailDOTedu *) (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $GETARGS // opening it // (* ****** ****** *) implement main0(argc, argv) = { // local val arg0 = argv[0] in (*in-of-local*) implement getargs_arg0<>() = arg0 end // end of [local] // val () = println! ("Hello from [getargs]!") // val () = getargs_usage() // var cout = OUTCHANref(stdout_ref) // implement the_outchan_getref<>() = $UN.cast(addr@cout) // } // end of [main0] (* ****** ****** *) (* end of [test00.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/TEST/Makefile0000644000175000017500000000130713431250607026251 0ustar brandonbrandon# # A simple Makefile # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### all:: regress:: cleanall:: ###### # all:: \ test00 test00: \ test00.dats ; \ $(PATSCC) \ -DATS_MEMALLOC_LIBC -o $@ $< # regress:: test00; ./$< cleanall:: ; $(RMF) test00 # ###### # all:: \ test01 test01: \ test01.dats ; \ $(PATSCC) \ -DATS_MEMALLOC_LIBC -o $@ $< -latslib # regress:: test01; ./$< --arg1 10 --arg2 10 --eval cleanall:: ; $(RMF) test01 # ###### RMF=rm -f ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/SATS/0000755000175000017500000000000013431250607024603 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/SATS/getargs.sats0000644000175000017500000000652713431250607027145 0ustar brandonbrandon(* ****** ****** *) (* ** Simple templates ** for parsing command-line ** arguments and more *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) #staload "libats/ML/SATS/basis.sats" (* ****** ****** *) // datatype optargs = | OPTARGS0 of ( string(*arg*) ) | OPTARGS1 of ( string(*opt*) , list0(string)(*args*)) // (* ****** ****** *) // // HX: // The default is interpreted // as argumentless: OPTARTYeq(0) // datatype optarty = | OPTARTY0 of () | OPTARTY1 of () | OPTARTYeq of (int) | OPTARTYgte of (int) // (* ****** ****** *) // fun{} print_optargs: print_type(optargs) fun{} prerr_optargs: print_type(optargs) fun{} fprint_optargs: fprint_type(optargs) // overload print with print_optargs overload prerr with prerr_optargs overload fprint with fprint_optargs // (* ****** ****** *) // fun{} print_optarty: print_type(optarty) fun{} prerr_optarty: print_type(optarty) fun{} fprint_optarty: fprint_type(optarty) // overload print with print_optarty overload prerr with prerr_optarty overload fprint with fprint_optarty // (* ****** ****** *) // datatype outchan = | OUTCHANptr of (FILEref) // need for closing | OUTCHANref of (FILEref) // no need for closing // (* ****** ****** *) // fun{} getargs_arg0(): string // (* ****** ****** *) fun{} outchan_close(outchan): void fun{} outchan_fileref(outchan): FILEref (* ****** ****** *) // fun{} getargs_usage(): void // (* ****** ****** *) // fun{} getargs_is_opt(string): bool fun{} getargs_is_arg(string): bool // fun//{} getargs_get_ndash(string): intGte(0) // (* ****** ****** *) // fun{} getargs_is_help(string): bool // fun{} getargs_do_help(optargs): void // (* ****** ****** *) // fun{} getargs_is_input(string): bool // fun{} getargs_do_input(optargs): void fun{} getargs_do_input$none(): void fun{} getargs_do_input$some(inp: FILEref): void // (* ****** ****** *) // fun{} getargs_is_output(string): bool fun{} getargs_is_output_a(string): bool fun{} getargs_is_output_w(string): bool // fun{} getargs_do_output(fxs: optargs): void // (* ****** ****** *) // fun{} the_optarty_initset(): void // (* ****** ****** *) // fun the_optarty_get ((*void*)): gvhashtbl // fun{} the_optarty_get_key (k0: string): optarty fun{} the_optarty_set_key (k0: string, art: optarty): void // (* ****** ****** *) #define OUTCHAN "outchan" #define OUTPUT_MODE "output_mode" (* ****** ****** *) // fun{} the_outchan_get ((*void*)): outchan fun{} the_outchan_getref ((*void*)): ref(outchan) // (* ****** ****** *) // fun{} the_state_get(): gvhashtbl fun//{} the_state_optref_get(): gvhashtbl // (* ****** ****** *) // fun{} the_state_get_key (k0: string): gvalue fun{} the_state_set_key (k0: string, gv: gvalue): void // (* ****** ****** *) // fun{} the_state_get_output_mode(): file_mode // (* ****** ****** *) // fun{} optargs_eval_arg(fxs: optargs): void // fun{} optargs_eval_opt(fxs: optargs): void fun{} optargs_eval2_opt(fxs: optargs): void // (* ****** ****** *) // fun{} optargs_eval_one(fxs: optargs): void // (* ****** ****** *) // fun{} optargs_eval_all (fxss: list0(optargs)): void // fun{} optargs_eval_all$after((*void*)): void // (* ****** ****** *) // fun{} optargs_parse_one ( opt: string, xs: &list0(string) >> _ ) : list0(string) // (* ****** ****** *) // fun{} optargs_parse_all (arglst: list0(string)): list0(optargs) // (* ****** ****** *) (* end of [getargs.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/README.md0000644000175000017500000000075213431250607025314 0ustar brandonbrandon# Atscntr-hx-getargs A simple package to facilitate building command-line support for utilities. ## Description ### SATS Files * [getargs.sats](https://github.com/githwxi/ATS-Postiats/tree/master/contrib/atscntrb-hx-getargs/SATS/getargs.sats) ### DATS Files * [getargs.dats](https://github.com/githwxi/ATS-Postiats/tree/master/contrib/atscntrb-hx-getargs/DATS/getargs.dats) ### TEST Files The files in the TEST directory contain examples that make typical use of the pakcage. ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-getargs/mylibies_link.hats0000644000175000017500000000035113431250607027543 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-05-09: // For downstream including // (* ****** ****** *) // local // #include "./DATS/getargs.dats" // in (*nothing*) end // end of [local] // (* ****** ****** *) (* end of [mylibies_link.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/0000755000175000017500000000000013431250607024020 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/HATS/0000755000175000017500000000000013431250607024557 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/HATS/gdeqarray.hats0000644000175000017500000002144113431250607027421 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* absvt@ype T #define CAPACITY1 (= CAPACITY + 1) *) (* ****** ****** *) extern fun get_size ():<> size_t extern fun get_capacity ():<> size_t (* ****** ****** *) extern fun is_nil ():<> bool extern fun isnot_nil ():<> bool extern fun is_full ():<> bool extern fun isnot_full ():<> bool (* ****** ****** *) // exception GDEQARRAYinsert of () // extern fun insert_atbeg ( x0: T, res: &T? >> opt (T, b) ) : #[b:bool] bool(b) // endfun // extern fun insert_atbeg_exn (x0: T): void extern fun insert_atbeg_opt (x0: T): Option_vt (T) // extern fun insert_atend ( x0: T, res: &T? >> opt (T, b) ) : #[b:bool] bool(b) // endfun // extern fun insert_atend_exn (x0: T): void extern fun insert_atend_opt (x0: T): Option_vt (T) // (* ****** ****** *) // exception GDEQARRAYtakeout of () // extern fun takeout_atbeg ( x0: &T? >> opt (T, b) ) : #[b:bool] bool (b) // endfun // extern fun takeout_atbeg_exn ((*void*)): T extern fun takeout_atbeg_opt ((*void*)): Option_vt (T) // extern fun takeout_atend ( x0: &T? >> opt (T, b) ) : #[b:bool] bool (b) // endfun // extern fun takeout_atend_exn ((*void*)): T extern fun takeout_atend_opt ((*void*)): Option_vt (T) // (* ****** ****** *) local // staload UN = "prelude/SATS/unsafe.sats" // staload "libats/SATS/deqarray.sats" staload _ = "libats/DATS/deqarray.dats" // #define CAPACITY (CAPACITY1-1) // local // var _array_ = @[T][CAPACITY1]() // in(*in-of-local*) val theArrayptr = $UN.castvwtp0{arrayptr(T?,CAPACITY1)}((view@_array_ | addr@_array_)) end // end of [local] // local val cap = CAPACITY var _struct_ : deqarray_tsize (*uninitized*) // in (*in-of-local*) val (pfngc|theDQA0) = deqarray_make_ngc__tsz{T}(view@_struct_ | addr@_struct_, theArrayptr, i2sz(cap), sizeof) end // end of [local] // vtypedef DQA = [n:nat] deqarray(T, CAPACITY, n) // val theDQA0_ptr = $UN.castvwtp0{ptr}((pfngc | theDQA0)) // in (* in-of-local *) implement get_size () = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val res = deqarray_get_size (dqa) prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [get_size] *) implement get_capacity () = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val res = deqarray_get_capacity (dqa) prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [get_capacity] *) (* ****** ****** *) implement is_nil () = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val res = deqarray_is_nil (dqa) prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [is_nil] *) implement isnot_nil () = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val res = deqarray_isnot_nil (dqa) prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [isnot_nil] *) (* ****** ****** *) implement is_full () = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val res = deqarray_is_full (dqa) prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [is_full] *) implement isnot_full () = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val res = deqarray_isnot_full (dqa) prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [isnot_full] *) (* ****** ****** *) implement insert_atbeg (x0, res) = let // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val isnot = deqarray_isnot_full (dqa) // in // if isnot then let val () = deqarray_insert_atbeg (dqa, x0) prval ((*void*)) = opt_none (res) prval ((*void*)) = $UN.cast2void (dqa) in false end // end of [then] else let val () = res := x0 prval ((*void*)) = opt_some (res) prval ((*void*)) = $UN.cast2void (dqa) in true end // end of [else] // end of [if] // end // end of [insert_atbeg] (* ****** ****** *) implement insert_atbeg_exn(x0) = () where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) // val ((*void*)) = ( // if deqarray_isnot_full (dqa) then deqarray_insert_atbeg (dqa, x0) else $raise GDEQARRAYinsert((*void*)) // ) : void // end of [val] // prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [insert_atbeg_exn] *) implement insert_atbeg_opt(x0) = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val res = deqarray_insert_atbeg_opt (dqa, x0) prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [insert_atbeg_opt] *) (* ****** ****** *) implement insert_atend (x0, res) = let // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val isnot = deqarray_isnot_full (dqa) // in // if isnot then let val () = deqarray_insert_atend (dqa, x0) prval ((*void*)) = opt_none (res) prval ((*void*)) = $UN.cast2void (dqa) in false end // end of [then] else let val () = res := x0 prval ((*void*)) = opt_some (res) prval ((*void*)) = $UN.cast2void (dqa) in true end // end of [else] // end of [if] // end // end of [insert_atend] (* ****** ****** *) implement insert_atend_exn(x0) = () where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) // val ((*void*)) = ( // if deqarray_isnot_full (dqa) then deqarray_insert_atend (dqa, x0) else $raise GDEQARRAYinsert((*void*)) // ) : void // end of [val] // prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [insert_atend_exn] *) implement insert_atend_opt(x0) = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val res = deqarray_insert_atend_opt (dqa, x0) prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [insert_atend_opt] *) (* ****** ****** *) implement takeout_atbeg(x0) = let // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val isnot = deqarray_isnot_nil (dqa) // in // if isnot then let val () = x0 := deqarray_takeout_atbeg (dqa) prval () = opt_some{T}(x0) prval ((*void*)) = $UN.cast2void (dqa) in true end // end of [then] else let prval () = opt_none{T}(x0) prval ((*void*)) = $UN.cast2void (dqa) in false end // end of [else] // end of [if] // end // end of [takeout_atbeg] (* ****** ****** *) implement takeout_atbeg_exn() = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) // val res = ( // if deqarray_isnot_nil(dqa) then deqarray_takeout_atbeg (dqa) else $raise GDEQARRAYtakeout((*void*)) // ) : T // end of [val] // prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [takeout_atbeg_exn] *) implement takeout_atbeg_opt() = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val res = deqarray_takeout_atbeg_opt (dqa) prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [takeout_atbeg_opt] *) (* ****** ****** *) implement takeout_atend(x0) = let // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) val isnot = deqarray_isnot_nil (dqa) // in // if isnot then let val () = x0 := deqarray_takeout_atend (dqa) prval ((*void*)) = opt_some{T}(x0) prval ((*void*)) = $UN.cast2void (dqa) in true end // end of [then] else let prval ((*void*)) = opt_none{T}(x0) prval ((*void*)) = $UN.cast2void(dqa) in false end // end of [else] // end of [if] // end // end of [takeout_atend] (* ****** ****** *) implement takeout_atend_exn() = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) // val res = ( // if deqarray_isnot_nil(dqa) then deqarray_takeout_atend(dqa) else $raise GDEQARRAYtakeout((*void*)) // ) : T // end of [val] // prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [takeout_atend_exn] *) implement takeout_atend_opt() = res where { // val dqa = $UN.castvwtp0{DQA}(theDQA0_ptr) // val res = deqarray_takeout_atend_opt (dqa) // prval ((*void*)) = $UN.cast2void (dqa) // } (* end of [takeout_atend_opt] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [gdeqarray.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/HATS/ghashtbl_linprb.hats0000644000175000017500000001371113431250607030605 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* abst@ype key absvt@ype itm #define CAPACITY *) (* ****** ****** *) // // HX-2014-03: // the current number of items // extern fun get_size ((*void*)): size_t // // HX-2014-03: // the size of the underlying array // extern fun get_capacity ((*void*)): size_t // (* ****** ****** *) // extern fun search ( k0: key, res: &itm? >> opt (itm, b) ) : #[b:bool] bool(b) // endfun extern fun search_ref (k0: key): cPtr0 (itm) extern fun search_opt (k0: key): Option_vt (itm) // (* ****** ****** *) // extern fun insert ( k0: key, x0: itm, res: &itm? >> opt (itm, b) ) : #[b:bool] bool (b) // endfun extern fun insert_opt (k0: key, x0: itm): Option_vt (itm) // (* ****** ****** *) // extern fun takeout ( k0: key, res: &itm? >> opt(itm, b) ) : #[b:bool] bool(b) // end-of-fun extern fun takeout_opt (k0: key): Option_vt (itm) // (* ****** ****** *) extern fun remove (k0: key): bool (* ****** ****** *) extern fun listize1 (): List0_vt @(key, itm) (* ****** ****** *) extern fun takeout_all (): List0_vt @(key, itm) (* ****** ****** *) // extern fun foreach_cloref (fwork: (key, &itm >> _) - void): void // (* ****** ****** *) local // staload UNSAFE = "prelude/SATS/unsafe.sats" // staload "libats/SATS/hashtbl_linprb.sats" // staload _ = "libats/DATS/hashfun.dats" // staload _ = "libats/DATS/qlist.dats" staload _ = "libats/DATS/hashtbl_linprb.dats" // val the_hashtbl = hashtbl_make_nil (i2sz(CAPACITY)) // val the_hashtbl_ptr = $UNSAFE.castvwtp0{ptr}(the_hashtbl) // vtypedef HTBL = hashtbl (key, itm) // in (* in-of-local *) (* ****** ****** *) implement get_size () = res where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val res = hashtbl_get_size (htbl) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [get_size] *) implement get_capacity () = res where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val res = hashtbl_get_capacity (htbl) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [get_capacity] *) (* ****** ****** *) implement search (k0, res) = ans where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ans = hashtbl_search (htbl, k0, res) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [search] *) implement search_ref (k0) = ref where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ref = hashtbl_search_ref (htbl, k0) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [search_ref] *) implement search_opt (k0) = opt where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val opt = hashtbl_search_opt (htbl, k0) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [search_opt] *) (* ****** ****** *) implement insert (k0, x0, res) = let // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ans = hashtbl_insert (htbl, k0, x0, res) prval ((*void*)) = $UNSAFE.cast2void (htbl) // in ans end (* end of [insert] *) implement insert_opt (k0, x0) = let // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val opt = hashtbl_insert_opt (htbl, k0, x0) prval ((*void*)) = $UNSAFE.cast2void (htbl) // in opt end (* end of [insert_opt] *) (* ****** ****** *) implement takeout (k0, res) = let // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ans = hashtbl_takeout (htbl, k0, res) prval ((*void*)) = $UNSAFE.cast2void (htbl) // in ans end (* end of [takeout] *) implement takeout_opt (k0) = let // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val opt = hashtbl_takeout_opt (htbl, k0) prval ((*void*)) = $UNSAFE.cast2void (htbl) // in opt end (* end of [takeout_opt] *) (* ****** ****** *) implement remove (k0) = ans where { // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ans = hashtbl_remove (htbl, k0) prval ((*void*)) = $UNSAFE.cast2void (htbl) // } (* end of [remove] *) (* ****** ****** *) implement listize1 () = kxs where { // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val kxs = hashtbl_listize1 (htbl) prval ((*void*)) = $UNSAFE.cast2void (htbl) // } (* end of [listize1] *) (* ****** ****** *) (* implement takeout_all () = kxs where { // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val kxs = hashtbl_takeout_all (htbl) prval ((*void*)) = $UNSAFE.cast2void (htbl) // } (* end of [takeout_all] *) *) (* ****** ****** *) implement foreach_cloref(fwork) = { // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val kxs = hashtbl_foreach_cloref (htbl, fwork) prval ((*void*)) = $UNSAFE.cast2void (htbl) // } (* end of [foreach_cloref] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [ghashtbl_linprb.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/HATS/gstacklst.hats0000644000175000017500000001036713431250607027446 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* absvt@ype T *) (* ****** ****** *) extern fun is_nil(): bool extern fun is_cons(): bool (* ****** ****** *) extern fun get_size(): intGte(0) (* ****** ****** *) // extern fun pop_exn(): T extern fun pop_opt(): Option_vt(T) // extern fun push(x: T): void // extern fun pop_all((*void*)): List0_vt(T) // (* ****** ****** *) extern fun getref_top((*void*)): cPtr0(T) (* ****** ****** *) // // HX: these need to be implemented // extern fun get_top_exn((*void*)): T extern fun get_top_opt((*void*)): Option_vt(T) // (* ****** ****** *) local // #include "share/atspre_staload.hats" // vtypedef TS = List0_vt(T) // var _stack: TS = list_vt_nil(*void*) // val r_stack = ref_make_viewptr{TS}(view@_stack | addr@_stack) // (* ****** ****** *) in (* in of [local] *) (* ****** ****** *) implement is_nil() = let // val(vbox(pf)|p) = ref_get_viewptr(r_stack) // end of [val] in list_vt_is_nil(!p) end // end of [is_nil] (* ****** ****** *) implement is_cons() = let // val(vbox(pf)|p) = ref_get_viewptr(r_stack) // in list_vt_is_cons(!p) end // end of [is_cons] (* ****** ****** *) implement get_size() = let val(vbox(pf)|p) = ref_get_viewptr(r_stack) // in list_vt_length(!p) end // end of [get_size] (* ****** ****** *) implement pop_exn() = x where { // val (vbox(pf)|p) = ref_get_viewptr(r_stack) val-~list_vt_cons(x, xs) = !p; val ((*void*)) = !p := xs // } (* end of [pop_exn] *) (* ****** ****** *) implement pop_opt() = let // val (vbox(pf)|p) = ref_get_viewptr(r_stack) // in (* in-of-let *) // case+ !p of | ~list_vt_cons (x, xs) => let val () = !p := (xs: TS) in Some_vt{T}(x) end | list_vt_nil((*void*)) => None_vt((*void*)) // end // end of [pop_opt] (* ****** ****** *) implement pop_all() = res where { // val(vbox(pf)|p) = ref_get_viewptr(r_stack) // val res = !p; val () = !p := list_vt_nil((*void*)) // } (* end of [pop_all] *) (* ****** ****** *) implement push(x) = let // val(vbox(pf)|p) = ref_get_viewptr(r_stack) // end of [val] in !p := list_vt_cons{T}(x, !p) end // end of [push] (* ****** ****** *) implement getref_top() = let // val (vbox(pf)|p) = ref_get_viewptr(r_stack) // in (* in-of-let *) // case+ !p of | list_vt_nil ((*void*)) => cptr_null() | @list_vt_cons(x, _) => let val res = addr@(x) prval () = fold@(!p) in $UNSAFE.cast{cPtr1(T)}(res) end // end of [list_cons] // end // end of [getref_top] (* ****** ****** *) implement get_top_exn() = let val p = getref_top() val () = assertloc(isneqz(p)) in $UNSAFE.cptr_get(p) end // end of [get_top_exn] implement get_top_opt () = let val p = getref_top() in if isneqz(p) then Some_vt($UNSAFE.cptr_get(p)) else None_vt() end // end of [get_top_opt] (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [gstacklst.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/HATS/gobjptr.hats0000644000175000017500000000604413431250607027113 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* absvtype objptr(l:addr) = ptr(l) *) (* ****** ****** *) vtypedef objptr0 = [l:addr] objptr(l) vtypedef objptr1 = [l:addr | l > null] objptr(l) (* ****** ****** *) // extern fun initset {l:agz} (x: objptr (l)): void // extern fun takeout ((*void*)): [l:addr] objptr(l) extern fun vtakeout ((*void*)): [l:addr] vttakeout0 (objptr(l)) // extern fun exchange {l:addr} (x: objptr(l)): [l:addr] objptr(l) // (* ****** ****** *) local // var obj: objptr0 = $UNSAFE.castvwtp0{objptr(null)}(0) // val p_obj = addr@(obj) prval pf_obj = view@(obj) // val r_obj = ref_make_viewptr{objptr0}(pf_obj | p_obj) in (* in of [local] *) (* ****** ****** *) implement initset (x_init) = { val (vbox pf | p) = ref_get_viewptr (r_obj) val x_null = !p; val ((*void*)) = !p := x_init val () = assertloc ($UNSAFE.castvwtp0{ptr}(x_null) = the_null_ptr) } (* end of [initset] *) implement takeout () = x_current where { val (vbox pf | p) = ref_get_viewptr (r_obj) val x_null = $UNSAFE.castvwtp0{objptr(null)}(0) val x_current = !p; val ((*void*)) = !p := x_null } (* end of [where] *) // end of [takeout] (* ****** ****** *) implement vtakeout () = let val (vbox pf | p) = ref_get_viewptr (r_obj) in $UNSAFE.castvwtp1(!p) end // end of [let] // end [vtakeout] (* ****** ****** *) implement exchange (x_new) = x_current where { val (vbox pf | p) = ref_get_viewptr (r_obj) val x_current = !p; val ((*void*)) = !p := x_new } // end of [where] (* end of [initset] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [gobjptr.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/HATS/ghashtbl_chain.hats0000644000175000017500000001446413431250607030407 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* abst@ype key absvt@ype itm #define CAPACITY *) (* ****** ****** *) // // HX-2014-03: // the current number of items // extern fun get_size ((*void*)): size_t // // HX-2014-03: // the size of the underlying array // extern fun get_capacity ((*void*)): size_t // (* ****** ****** *) // extern fun search ( k0: key, res: &itm? >> opt (itm, b) ) : #[b:bool] bool(b) // endfun extern fun search_ref (k0: key): cPtr0 (itm) extern fun search_opt (k0: key): Option_vt (itm) // (* ****** ****** *) // extern fun insert ( k0: key, x0: itm, res: &itm? >> opt (itm, b) ) : #[b:bool] bool (b) // endfun extern fun insert_opt (k0: key, x0: itm): Option_vt (itm) // extern fun insert_any (k0: key, x0: itm): void // HX: always inserted // (* ****** ****** *) // extern fun takeout ( k0: key, res: &itm? >> opt(itm, b) ) : #[b:bool] bool(b) // end-of-fun extern fun takeout_opt (k0: key): Option_vt (itm) // (* ****** ****** *) extern fun remove (k0: key): bool (* ****** ****** *) extern fun listize1 (): List0_vt @(key, itm) (* ****** ****** *) extern fun takeout_all (): List0_vt @(key, itm) (* ****** ****** *) // extern fun foreach_cloref (fwork: (key, &itm >> _) - void): void // (* ****** ****** *) local // staload UNSAFE = "prelude/SATS/unsafe.sats" // staload "libats/SATS/hashtbl_chain.sats" // staload _ = "libats/DATS/hashfun.dats" // staload _ = "libats/DATS/qlist.dats" staload _ = "libats/DATS/linmap_list.dats" staload _ = "libats/DATS/hashtbl_chain.dats" // val the_hashtbl = hashtbl_make_nil (i2sz(CAPACITY)) // val the_hashtbl_ptr = $UNSAFE.castvwtp0{ptr}(the_hashtbl) // vtypedef HTBL = hashtbl(key, itm) // in (* in-of-local *) (* ****** ****** *) implement get_size () = res where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val res = hashtbl_get_size (htbl) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [get_size] *) implement get_capacity () = res where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val res = hashtbl_get_capacity (htbl) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [get_capacity] *) (* ****** ****** *) implement search (k0, res) = ans where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ans = hashtbl_search (htbl, k0, res) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [search] *) implement search_ref (k0) = ref where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ref = hashtbl_search_ref (htbl, k0) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [search_ref] *) implement search_opt (k0) = opt where { val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val opt = hashtbl_search_opt (htbl, k0) prval ((*void*)) = $UNSAFE.cast2void (htbl) } (* end of [search_opt] *) (* ****** ****** *) implement insert (k0, x0, res) = let // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ans = hashtbl_insert (htbl, k0, x0, res) prval ((*void*)) = $UNSAFE.cast2void (htbl) // in ans end (* end of [insert] *) implement insert_opt (k0, x0) = let // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val opt = hashtbl_insert_opt (htbl, k0, x0) prval ((*void*)) = $UNSAFE.cast2void (htbl) // in opt end (* end of [insert_opt] *) (* ****** ****** *) implement insert_any (k0, x0) = let // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ((*void*)) = hashtbl_insert_any (htbl, k0, x0) prval ((*void*)) = $UNSAFE.cast2void (htbl) // in // nothing end (* end of [insert_any] *) (* ****** ****** *) implement takeout (k0, res) = let // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ans = hashtbl_takeout (htbl, k0, res) prval ((*void*)) = $UNSAFE.cast2void (htbl) // in ans end (* end of [takeout] *) implement takeout_opt (k0) = let // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val opt = hashtbl_takeout_opt (htbl, k0) prval ((*void*)) = $UNSAFE.cast2void (htbl) // in opt end (* end of [takeout_opt] *) (* ****** ****** *) implement remove (k0) = ans where { // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val ans = hashtbl_remove (htbl, k0) prval ((*void*)) = $UNSAFE.cast2void (htbl) // } (* end of [remove] *) (* ****** ****** *) implement listize1 () = kxs where { // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val kxs = hashtbl_listize1 (htbl) prval ((*void*)) = $UNSAFE.cast2void (htbl) // } (* end of [listize1] *) (* ****** ****** *) implement takeout_all () = kxs where { // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val kxs = hashtbl_takeout_all (htbl) prval ((*void*)) = $UNSAFE.cast2void (htbl) // } (* end of [takeout_all] *) (* ****** ****** *) implement foreach_cloref(fwork) = { // val htbl = $UNSAFE.castvwtp0{HTBL}(the_hashtbl_ptr) val kxs = hashtbl_foreach_cloref (htbl, fwork) prval ((*void*)) = $UNSAFE.cast2void (htbl) // } (* end of [foreach_cloref] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [ghashtbl_chain.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/HATS/gcount.hats0000644000175000017500000000533413431250607026744 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) extern fun get (): int extern fun set (x: int): void extern fun inc (): void extern fun dec (): void extern fun reset (): void (* ****** ****** *) extern fun incby (int): void extern fun decby (int): void (* ****** ****** *) extern fun getinc (): int extern fun decget (): int (* ****** ****** *) local var _val: int = 0 val p_val = addr@(_val) prval pf_val = view@(_val) val r_val = ref_make_viewptr{int}(pf_val | p_val) // end of [val] in (* in of [local] *) implement get () = !r_val implement set (x) = !r_val := x (* ****** ****** *) implement inc () = let val n = !r_val in !r_val := n + 1 end // end of [inc] implement dec () = let val n = !r_val in !r_val := n - 1 end // end of [dec] (* ****** ****** *) implement reset () = !r_val := 0 (* ****** ****** *) implement incby (x) = let val n = !r_val in !r_val := n + x end // end of [incby] implement decby (x) = let val n = !r_val in !r_val := n - x end // end of [decby] (* ****** ****** *) implement getinc () = let val n = !r_val in !r_val := n + 1; (n) end // end of [getinc] implement decget () = let val n1 = !r_val - 1 in !r_val := n1; (n1) end // end of [decget] end // end of [local] (* ****** ****** *) (* end of [gcount.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/HATS/globvar.hats0000644000175000017500000000425613431250607027103 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2013 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* abst@ype T *) (* ****** ****** *) extern fun get (): T extern fun set (x: T): void extern fun getref (): [l:addr] vtakeoutptr (T) (* ****** ****** *) local var _val: T val p_val = addr@(_val) prval pf_val = view@(_val) val () = initize (!p_val) val r_val = ref_make_viewptr{T}(pf_val | p_val) // end of [val] in (* in of [local] *) implement get () = !r_val implement set (x) = !r_val := x (* ****** ****** *) implement getref () = let // extern praxi __assert{l:addr} (ptr: ptr (l)): vtakeout0 (T@l) // prval (pf, fpf) = __assert (p_val) // in (pf, fpf | p_val) end // end of [getref] end // end of [local] (* ****** ****** *) (* end of [globvar.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/.keeper0000644000175000017500000000000013431250607025262 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/TEST/0000755000175000017500000000000013431250607024577 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/TEST/test01.dats0000644000175000017500000000174613431250607026604 0ustar brandonbrandon(* ** HX-2013-06: ** Statically allocated global variables *) (* ****** ****** *) staload I = { // typedef T = int // fun initize (x: &T? >> T): void = x := 0 // #include "./../HATS/globvar.hats" // } (* end of [staload] *) (* ****** ****** *) staload F = { // typedef T = double // fun initize (x: &T? >> T): void = x := 0.0 // #include "./../HATS/globvar.hats" // } (* end of [staload] *) (* ****** ****** *) implement main0 () = { // val () = println! ("$I.get() = ", $I.get ()) val () = $I.set (1) val () = println! ("$I.get() = ", $I.get ()) val () = $I.set (2) val () = println! ("$I.get() = ", $I.get ()) // val () = println! ("$F.get() = ", $F.get ()) val () = $F.set (1.0) val () = println! ("$F.get() = ", $F.get ()) val () = $F.set (2.0) val () = println! ("$F.get() = ", $F.get ()) // val (pf, fpf | p) = $F.getref () val () = !p := 3.0 prval () = fpf (pf) // val () = println! ("$F.get() = ", $F.get ()) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/TEST/Makefile0000644000175000017500000000276113431250607026245 0ustar brandonbrandon# # A simple Makefile # for testing libats-hwxi/globals # ###### CC=gcc ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### PATSLIB=$(PATSHOME)/ccomp/atslib/lib ###### PATSCCOMP=$(CC) -D_XOPEN_SOURCE -I${PATSHOME} -I${PATSHOME}/ccomp/runtime ###### export PATSCCOMP ###### all:: regress:: cleanall:: ###### # all:: \ test01 test01: \ test01.dats ; $(PATSCC) -o $@ $< # regress:: test01; ./$< cleanall:: ; $(RMF) test01 # ###### # all:: \ test02 test02: \ test02.dats ; $(PATSCC) -o $@ $< # regress:: test02; ./$< cleanall:: ; $(RMF) test02 # ###### # all:: \ test03 test03: \ test03.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< # regress:: test03; ./$< cleanall:: ; $(RMF) test03 # ###### # all:: \ test04 test04: \ test04.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< # regress:: test04; ./$< cleanall:: ; $(RMF) test04 # ###### # all:: \ test05-1 test05-1: \ test05-1.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib # regress:: test05-1; ./$< cleanall:: ; $(RMF) test05-1 # ###### # all:: \ test05-2 test05-2: \ test05-2.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib # regress:: test05-2; ./$< cleanall:: ; $(RMF) test05-2 # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/TEST/test05-2.dats0000644000175000017500000000301713431250607026740 0ustar brandonbrandon(* ** HX-2014-05: ** Toplevel hashtable_linprb *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload HT = { // typedef key = string typedef itm = int(*0/1*) // #define CAPACITY 1024 // staload _ ="libats/DATS/qlist.dats" // #include "./../HATS/ghashtbl_linprb.hats" // } (* end of [staload] *) (* ****** ****** *) #define WORDS "/usr/share/dict/words" (* ****** ****** *) implement main0 () = { // (* val () = println! ("$HT.get_size() = ", $HT.get_size()) val () = println! ("$HT.get_capacity() = ", $HT.get_capacity()) *) // val-~Some_vt(filr) = fileref_open_opt (WORDS, file_mode_r) // val () = let // fun loop ( filr: FILEref ) : void = let val isnot = fileref_isnot_eof (filr) in if isnot then let val str = fileref_get_line_string (filr) val str = strptr2string (str) val-~None_vt() = $HT.insert_opt (str, 1) in loop (filr) end // end of [then] else () // end of [else] // end of [if] end // end of [loop] // in loop (filr) end // end of [val] // val ((*void*)) = fileref_close (filr) // val () = println! ("$HT.get_size() = ", $HT.get_size()) val () = println! ("$HT.get_capacity() = ", $HT.get_capacity()) // val () = assertloc (cptr2ptr($HT.search_ref ("zucchini")) > 0) val () = assertloc (cptr2ptr($HT.search_ref ("Geizella")) = 0) val () = assertloc (cptr2ptr($HT.search_ref ("Anairiats")) = 0) val () = assertloc (cptr2ptr($HT.search_ref ("Postiats")) = 0) // } (* end of [main0] *) (* ****** ****** *) (* end of [test05-2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/TEST/test02.dats0000644000175000017500000000177313431250607026605 0ustar brandonbrandon(* ** HX-2013-06: ** Statically allocated global variables *) (* ****** ****** *) staload C1 = { // staload _(*anon*) = "prelude/DATS/integer.dats" // #include "./../HATS/gcount.hats" // } (* end of [staload] *) (* ****** ****** *) staload C2 = { // staload _(*anon*) = "prelude/DATS/integer.dats" // #include "./../HATS/gcount.hats" // } (* end of [staload] *) (* ****** ****** *) implement main0 () = { // val () = println! ("$C1.getinc() = ", $C1.getinc ()) val () = println! ("$C1.getinc() = ", $C1.getinc ()) val () = println! ("$C1.getinc() = ", $C1.getinc ()) // val () = $C1.reset () // val () = println! ("$C1.getinc() = ", $C1.getinc ()) val () = println! ("$C1.getinc() = ", $C1.getinc ()) val () = println! ("$C1.getinc() = ", $C1.getinc ()) // val () = $C2.set (10) val () = println! ("$C2.decget() = ", $C2.decget ()) val () = println! ("$C2.decget() = ", $C2.decget ()) val () = println! ("$C2.decget() = ", $C2.decget ()) // } (* end of [main0] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/TEST/test04.dats0000644000175000017500000000150113431250607026574 0ustar brandonbrandon(* ** HX-2014: ** Toplevel array-based deque *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload D = { // typedef T = double // #define CAPACITY1 1024 // #include "./../HATS/gdeqarray.hats" // } (* end of [staload] *) (* ****** ****** *) implement main0 () = { // val () = println! ("$D.get_size() = ", $D.get_size()) val () = println! ("$D.get_capacity() = ", $D.get_capacity()) // val () = $D.insert_atbeg_exn (1.0) val-~None_vt() = $D.insert_atbeg_opt (2.0) val () = println! ("$D.get_size() = ", $D.get_size()) // val x1 = $D.takeout_atend_exn () val () = assertloc (x1 = 1.0) val-~Some_vt(x2) = $D.takeout_atend_opt () val () = assertloc (x2 = 2.0) val () = println! ("$D.get_size() = ", $D.get_size()) // } (* end of [main0] *) (* ****** ****** *) (* end of [test04.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/TEST/test03.dats0000644000175000017500000000200413431250607026572 0ustar brandonbrandon(* ** HX-2013-06: ** Toplevel list-based stack *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload S = { // typedef T = int // #include "./../HATS/gstacklst.hats" // } (* end of [staload] *) (* ****** ****** *) implement main0 () = { // val () = $S.push(0) val () = println! ("$S.push(0)") val () = $S.push(1) val () = println! ("$S.push(1)") val () = $S.push(2) val () = println! ("$S.push(2)") val () = println! ("$S.get_top_exn() = ", $S.get_top_exn()) // val () = println! ("$S.pop_exn() = ", $S.pop_exn()) val () = println! ("$S.pop_exn() = ", $S.pop_exn()) // val () = $S.push(3) val () = println! ("$S.push(3)") val () = println! ("$S.get_top_exn() = ", $S.get_top_exn()) // val () = println! ("$S.pop_exn() = ", $S.pop_exn()) val () = println! ("$S.pop_exn() = ", $S.pop_exn()) // val () = println! ("$S.is_nil((*void*)) = ", $S.is_nil()) val () = println! ("$S.is_cons((*void*)) = ", $S.is_cons()) // } (* end of [main0] *) (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/TEST/test05-1.dats0000644000175000017500000000312713431250607026741 0ustar brandonbrandon(* ** HX-2014-05: ** Toplevel hashtable_chain *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload HT = { // typedef key = string typedef itm = int(*0/1*) // #define CAPACITY 1024 // staload _ ="libats/DATS/qlist.dats" // #include "./../HATS/ghashtbl_chain.hats" // } (* end of [staload] *) (* ****** ****** *) #define WORDS "/usr/share/dict/words" (* ****** ****** *) implement main0(argc, argv) = let // (* val () = println! ("$HT.get_size() = ", $HT.get_size()) val () = println! ("$HT.get_capacity() = ", $HT.get_capacity()) *) // val opt = fileref_open_opt(WORDS, file_mode_r) // in // case+ opt of | ~None_vt() => () | ~Some_vt(filr) => { // val () = loop(filr) where { fun loop ( filr: FILEref ) : void = let val isnot = fileref_isnot_eof(filr) in if isnot then let val str = fileref_get_line_string (filr) val str = strptr2string (str) val-~None_vt() = $HT.insert_opt (str, 1) in loop (filr) end // end of [then] else () // end of [else] // end of [if] end // end of [loop] } (* end of [val] *) // val ((*void*)) = fileref_close (filr) // val () = println! ("$HT.get_size() = ", $HT.get_size()) val () = println! ("$HT.get_capacity() = ", $HT.get_capacity()) // val () = assertloc(cptr2ptr($HT.search_ref("zucchini")) > 0) val () = assertloc(cptr2ptr($HT.search_ref("Geizella")) = 0) val () = assertloc(cptr2ptr($HT.search_ref("Anairiats")) = 0) val () = assertloc(cptr2ptr($HT.search_ref("Postiats")) = 0) // } (* end of [where] *) // end (* end of [main0] *) (* ****** ****** *) (* end of [test05-1.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-globals/README.md0000644000175000017500000000050013431250607025272 0ustar brandonbrandon# Statically Allocated Globals A simple package for statically allocated global data structures, including counter, stack, deque, hashtable, etc. ## Description ###HATS Files ###TEST Files The files in the TEST directory contain code samples showing details on using various templates implemented in this package. ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/0000755000175000017500000000000013431250607023647 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/DATS/0000755000175000017500000000000013431250607024402 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/DATS/gmp.dats0000644000175000017500000000217413431250607026046 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for libgmp // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // // HX-2013-09: This file is yet empty! // (* ****** ****** *) (* end of [gmp.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/mylibies.hats0000644000175000017500000000036613431250607026352 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-29: // For downstream staloading // (* ****** ****** *) // #staload GMP = "./SATS/gmp.sats" // (* ****** ****** *) // #staload _(*GMP*) = "./DATS/gmp.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/.keeper0000644000175000017500000000000013431250607025111 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/TEST/0000755000175000017500000000000013431250607024426 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/TEST/pidigits/0000755000175000017500000000000013431250607026242 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/TEST/pidigits/Makefile0000644000175000017500000000100213431250607027673 0ustar brandonbrandon###### # # for SHOOTOUT/pidigits # ###### # PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt # ###### all:: ###### INCLUDE=./../../.. ###### # all:: \ pidigits pidigits: \ pidigits.dats ; \ $(PATSCC) -I$(INCLUDE) -O2 $< -o $@ -lgmp # regress:: \ pidigits; ./pidigits 1000 # cleanall:: ; $(RMF) pidigits # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_dats.c ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/TEST/pidigits/pidigits.dats0000644000175000017500000001064313431250607030737 0ustar brandonbrandon(* ** The Great Computer Language Shootout ** http://shootout.alioth.debian.org/ ** ** contributed by Hongwei Xi (gmhwxiATgmailDOTcom) *) (* ****** ****** *) (* pidigits: pidigits.dats ; \ $(PATSCC) -I${PATSHOMERELOC}/contrib \ -pipe -O3 -fomit-frame-pointer -march=native $< -o $@ -lgmp *) (* ****** ****** *) #include "share/atspre_define.hats" #include "share/atspre_staload.hats" (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/libc/SATS/stdio.sats" // staload "./../../SATS/gmp.sats" // (* ****** ****** *) local var t1: mpz val ((*void*)) = mpz_init (t1) var t2: mpz val ((*void*)) = mpz_init (t2) in (* in-of-local *) val p_t1 = addr@t1 val p_t2 = addr@t2 end // end of [local] (* ****** ****** *) local var acc: mpz val ((*void*)) = mpz_init_set(acc, 0u) var num: mpz val ((*void*)) = mpz_init_set(num, 1u) var den: mpz val ((*void*)) = mpz_init_set(den, 1u) in (* in-of-local *) val p_acc = addr@acc val p_num = addr@num val p_den = addr@den end // end of [local] (* ****** ****** *) extern fun extract_digit (nth: uint): uint implement extract_digit (nth) = res where { // val (pf1, fpf1 | p_t1) = $UN.ptr0_vtake{mpz}(p_t1) val (pf2, fpf2 | p_t2) = $UN.ptr0_vtake{mpz}(p_t2) val (pf3, fpf3 | p_acc) = $UN.ptr0_vtake{mpz}(p_acc) val (pf4, fpf4 | p_num) = $UN.ptr0_vtake{mpz}(p_num) val (pf5, fpf5 | p_den) = $UN.ptr0_vtake{mpz}(p_den) // val () = mpz_mul (!p_t1, !p_num, nth) val () = mpz_add (!p_t2, !p_t1, !p_acc) val () = mpz_tdiv_q (!p_t1, !p_t2, !p_den) val res = mpz_get_uint (!p_t1) // prval () = fpf1 (pf1) prval () = fpf2 (pf2) prval () = fpf3 (pf3) prval () = fpf4 (pf4) prval () = fpf5 (pf5) // } (* ****** ****** *) extern fun eliminate_digit (d: uint): void implement eliminate_digit (d) = { // val (pf3, fpf3 | p_acc) = $UN.ptr0_vtake{mpz}(p_acc) val (pf4, fpf4 | p_num) = $UN.ptr0_vtake{mpz}(p_num) val (pf5, fpf5 | p_den) = $UN.ptr0_vtake{mpz}(p_den) val (pf32, fpf32 | p2_acc) = $UN.ptr0_vtake{mpz}(p_acc) val (pf42, fpf42 | p2_num) = $UN.ptr0_vtake{mpz}(p_num) // val () = mpz_submul (!p_acc, !p_den, d) val () = mpz_mul (!p_acc, !p2_acc, 10) val () = mpz_mul (!p_num, !p2_num, 10) // prval () = fpf3 (pf3) prval () = fpf4 (pf4) prval () = fpf5 (pf5) prval () = fpf32 (pf32) prval () = fpf42 (pf42) // } (* ****** ****** *) extern fun next_term (k: uint): void implement next_term (k) = { val k2 = succ (2u * k) // val (pf3, fpf3 | p_acc) = $UN.ptr0_vtake{mpz}(p_acc) val (pf32, fpf32 | p2_acc) = $UN.ptr0_vtake{mpz}(p_acc) val (pf4, fpf4 | p_num) = $UN.ptr0_vtake{mpz}(p_num) val (pf42, fpf42 | p2_num) = $UN.ptr0_vtake{mpz}(p_num) val (pf5, fpf5 | p_den) = $UN.ptr0_vtake{mpz}(p_den) val (pf52, fpf52 | p2_den) = $UN.ptr0_vtake{mpz}(p_den) // val () = mpz_addmul (!p_acc, !p_num, 2u) val () = mpz_mul (!p_acc, !p2_acc, k2) val () = mpz_mul (!p_den, !p2_den, k2) val () = mpz_mul (!p_num, !p2_num, k) // prval () = fpf3 (pf3) prval () = fpf4 (pf4) prval () = fpf5 (pf5) prval () = fpf32 (pf32) prval () = fpf42 (pf42) prval () = fpf52 (pf52) // } (* ****** ****** *) fun compare_num_acc (): int = sgn where { val (pf3, fpf3 | p_acc) = $UN.ptr0_vtake{mpz}(p_acc) val (pf4, fpf4 | p_num) = $UN.ptr0_vtake{mpz}(p_num) val sgn = mpz_cmp (!p_num, !p_acc) prval () = fpf3 (pf3) prval () = fpf4 (pf4) } (* end of [compare_num_acc] *) (* ****** ****** *) fun pidigits_loop ( n: uint , i: uint, k: uint ) : void = let in // if i < n then let val k = succ(k) val () = next_term (k) val sgn = compare_num_acc () in if sgn > 0 then pidigits_loop (n, i, k) else let val d3 = extract_digit (3u) val d4 = extract_digit (4u) in if d3 != d4 then pidigits_loop (n, i, k) else let val i = succ (i) val _ = putchar0 (char2int0('0') + g0u2i(d3)) val () = if (i mod 10u = 0u) then $extfcall (void, "printf", "\t:%u\n", i) val () = eliminate_digit (d3) in pidigits_loop (n, i, k) end // end of [else] end // end of [else] end // end of [then] else () // end of [else] // end // end of [pidigits_loop] (* ****** ****** *) implement main0 (argc, argv) = let // var n: int = 27 val () = if argc >= 2 then (n := g0string2int (argv[1])) val n2 = g1ofg0(n) val () = assertloc (n2 >= 0) // in pidigits_loop (g0i2u(n2), 0u, 0u) end // end of [main0] (* ****** ****** *) (* end of [pidigits.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/CATS/0000755000175000017500000000000013431250607024401 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/CATS/gmp.cats0000644000175000017500000002470213431250607026045 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for libgmp // /* ****** ****** */ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) */ /* ****** ****** */ /* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom */ /* ****** ****** */ #ifndef ATSCNTRB_LIBGMP_GMP_CATS #define ATSCNTRB_LIBGMP_GMP_CATS /* ****** ****** */ #include /* ****** ****** */ typedef __mpz_struct atscntrb_gmp_mpz ; typedef atscntrb_gmp_mpz *ptrmpz; /* ****** ****** */ // // init/clear/realloc // #define atscntrb_gmp_mpz_init mpz_init #define atscntrb_gmp_mpz_init2 mpz_init2 #define atscntrb_gmp_mpz_clear mpz_clear #define atscntrb_gmp_mpz_realloc2 mpz_realloc2 // /* ****** ****** */ // // get-functions // #define atscntrb_gmp_mpz_get_int mpz_get_si #define atscntrb_gmp_mpz_get_uint mpz_get_ui #define atscntrb_gmp_mpz_get_lint mpz_get_si #define atscntrb_gmp_mpz_get_ulint mpz_get_ui #define atscntrb_gmp_mpz_get_double mpz_get_d #define atscntrb_gmp_mpz_get_str mpz_get_str #define atscntrb_gmp_mpz_get_str_null(base, mpz) mpz_get_str((char*)0, base, mpz) // /* ****** ****** */ // // set-functions // #define atscntrb_gmp_mpz_set_int mpz_set_si #define atscntrb_gmp_mpz_set_uint mpz_set_ui #define atscntrb_gmp_mpz_set_lint mpz_set_si #define atscntrb_gmp_mpz_set_ulint mpz_set_ui #define atscntrb_gmp_mpz_set_mpz mpz_set // /* ****** ****** */ // // init-set functions // #define atscntrb_gmp_mpz_init_set_mpz mpz_init_set #define atscntrb_gmp_mpz_init_set_int mpz_init_set_si #define atscntrb_gmp_mpz_init_set_uint mpz_init_set_ui #define atscntrb_gmp_mpz_init_set_lint mpz_init_set_si #define atscntrb_gmp_mpz_init_set_ulint mpz_init_set_ui // /* ****** ****** */ #define atscntrb_gmp_mpz_size mpz_size /* ****** ****** */ // // input-output-functions // #define atscntrb_gmp_mpz_inp_str mpz_inp_str #define atscntrb_gmp_mpz_out_str mpz_out_str // /* ****** ****** */ ATSinline() atsvoid_t0ype atscntrb_gmp_fprint_mpz_base ( atstype_ref out, atstype_ptr x, atstype_int base ) { size_t ndigit ; ndigit = mpz_out_str ((FILE*)out, base, (ptrmpz)x) ; return ; } // end of [atscntrb_gmp_fprint_mpz_base] #define atscntrb_gmp_fprint_mpz(out, x) \ atscntrb_gmp_fprint_mpz_base(out, x, 10) /* ****** ****** */ // #define atscntrb_gmp_mpz_inp_raw mpz_inp_raw #define atscntrb_gmp_mpz_out_raw mpz_out_raw // /* ****** ****** */ #define atscntrb_gmp_mpz_odd_p(x) mpz_odd_p((ptrmpz)x) #define atscntrb_gmp_mpz_even_p(x) mpz_even_p((ptrmpz)x) /* ****** ****** */ #define atscntrb_gmp_mpz_neg1(x) mpz_neg(x, x) #define atscntrb_gmp_mpz_neg2(x, y) mpz_neg(x, y) /* ****** ****** */ #define atscntrb_gmp_mpz_abs1(x) mpz_abs(x, x) #define atscntrb_gmp_mpz_abs2(x, y) mpz_abs(x, y) /* ****** ****** */ // // addition-functions // ATSinline() atsvoid_t0ype mpz_add_si ( mpz_t rop , mpz_t op1, atstype_lint op2 ) { if (op2 >= 0) mpz_add_ui (rop, op1, op2) ; else mpz_add_ui (rop, op1, -op2) ; // end of [if] } /* end of [mpz_add_si] */ // // x := x+y // y+z // #define atscntrb_gmp_mpz_add2_mpz(x, y) mpz_add(x, x, y) #define atscntrb_gmp_mpz_add2_int(x, y) mpz_add_si(x, x, y) #define atscntrb_gmp_mpz_add2_uint(x, y) mpz_add_ui(x, x, y) #define atscntrb_gmp_mpz_add2_lint(x, y) mpz_add_si(x, x, y) #define atscntrb_gmp_mpz_add2_ulint(x, y) mpz_add_ui(x, x, y) #define atscntrb_gmp_mpz_add3_mpz(x, y, z) mpz_add(x, y, z) #define atscntrb_gmp_mpz_add3_int(x, y, z) mpz_add_si(x, y, z) #define atscntrb_gmp_mpz_add3_uint(x, y, z) mpz_add_ui(x, y, z) #define atscntrb_gmp_mpz_add3_lint(x, y, z) mpz_add_si(x, y, z) #define atscntrb_gmp_mpz_add3_ulint(x, y, z) mpz_add_ui(x, y, z) // /* ****** ****** */ // // subtraction-functions // ATSinline() atsvoid_t0ype mpz_sub_si ( mpz_t rop , mpz_t op1, atstype_lint op2 ) { if (op2 >= 0) mpz_sub_ui (rop, op1, op2) ; else mpz_sub_ui (rop, op1, -op2) ; // end of [if] } /* end of [mpz_sub_si] */ // #define atscntrb_gmp_mpz_sub2_mpz(x, y) mpz_sub(x, x, y) #define atscntrb_gmp_mpz_sub2_int(x, y) mpz_sub_si(x, x, y) #define atscntrb_gmp_mpz_sub2_uint(x, y) mpz_sub_ui(x, x, y) #define atscntrb_gmp_mpz_sub2_lint(x, y) mpz_sub_si(x, x, y) #define atscntrb_gmp_mpz_sub2_ulint(x, y) mpz_sub_ui(x, x, y) #define atscntrb_gmp_mpz_sub3_mpz(x, y, z) mpz_sub(x, y, z) #define atscntrb_gmp_mpz_sub3_int(x, y, z) mpz_sub_si(x, y, z) #define atscntrb_gmp_mpz_sub3_uint(x, y, z) mpz_sub_ui(x, y, z) #define atscntrb_gmp_mpz_sub3_lint(x, y, z) mpz_sub_si(x, y, z) #define atscntrb_gmp_mpz_sub3_ulint(x, y, z) mpz_sub_ui(x, y, z) // /* ****** ****** */ // // multiplication-functions // // x := x * y // y * z // #define atscntrb_gmp_mpz_mul2_mpz(x, y) mpz_mul(x, x, y) #define atscntrb_gmp_mpz_mul2_int(x, y) mpz_mul_si(x, x, y) #define atscntrb_gmp_mpz_mul2_uint(x, y) mpz_mul_ui(x, x, y) #define atscntrb_gmp_mpz_mul2_lint(x, y) mpz_mul_si(x, x, y) #define atscntrb_gmp_mpz_mul2_ulint(x, y) mpz_mul_ui(x, x, y) #define atscntrb_gmp_mpz_mul3_mpz(x, y, z) mpz_mul(x, y, z) #define atscntrb_gmp_mpz_mul3_int(x, y, z) mpz_mul_si(x, y, z) #define atscntrb_gmp_mpz_mul3_uint(x, y, z) mpz_mul_ui(x, y, z) #define atscntrb_gmp_mpz_mul3_lint(x, y, z) mpz_mul_si(x, y, z) #define atscntrb_gmp_mpz_mul3_ulint(x, y, z) mpz_mul_ui(x, y, z) // #define atscntrb_gmp_mpz_mul3_2exp(x, y, z) mpz_mul_2exp(x, y, z) // /* ****** ****** */ // // trunc-division-functions // #define atscntrb_gmp_mpz_tdiv2_q_mpz(x, y) mpz_tdiv_q(x, x, y) #define atscntrb_gmp_mpz_tdiv2_q_uint(x, y) mpz_tdiv_q_ui(x, x, y) #define atscntrb_gmp_mpz_tdiv2_q_ulint(x, y) mpz_tdiv_q_ui(x, x, y) #define atscntrb_gmp_mpz_tdiv3_q_mpz(x, y, z) mpz_tdiv_q(x, y, z) #define atscntrb_gmp_mpz_tdiv3_q_uint(x, y, z) mpz_tdiv_q_ui(x, y, z) #define atscntrb_gmp_mpz_tdiv3_q_ulint(x, y, z) mpz_tdiv_q_ui(x, y, z) // #define atscntrb_gmp_mpz_tdiv2_r_mpz(x, y) mpz_tdiv_r(x, x, y) #define atscntrb_gmp_mpz_tdiv2_r_uint(x, y) mpz_tdiv_r_ui(x, x, y) #define atscntrb_gmp_mpz_tdiv2_r_ulint(x, y) mpz_tdiv_r_ui(x, x, y) #define atscntrb_gmp_mpz_tdiv3_r_mpz(x, y, z) mpz_tdiv_r(x, y, z) #define atscntrb_gmp_mpz_tdiv3_r_uint(x, y, z) mpz_tdiv_r_ui(x, y, z) #define atscntrb_gmp_mpz_tdiv3_r_ulint(x, y, z) mpz_tdiv_r_ui(x, y, z) // #define atscntrb_gmp_mpz_tdiv3_qr_mpz(xq, xr, y) mpz_tdiv_qr(xq, xr, xq, y) #define atscntrb_gmp_mpz_tdiv3_qr_uint(xq, xr, y) mpz_tdiv_qr_ui(xq, xr, xq, y) #define atscntrb_gmp_mpz_tdiv3_qr_ulint(xq, xr, y) mpz_tdiv_qr_ui(xq, xr, xq, y) #define atscntrb_gmp_mpz_tdiv4_qr_mpz(xq, xr, y, z) mpz_tdiv_qr(xq, xr, y, z) #define atscntrb_gmp_mpz_tdiv4_qr_uint(xq, xr, y, z) mpz_tdiv_qr_ui(xq, xr, y, z) #define atscntrb_gmp_mpz_tdiv4_qr_ulint(xq, xr, y, z) mpz_tdiv_qr_ui(xq, xr, y, z) // /* ****** ****** */ // // floor-division-functions // #define atscntrb_gmp_mpz_fdiv_uint(x, y) mpz_fdiv_ui(x, y) #define atscntrb_gmp_mpz_fdiv_ulint(x, y) mpz_fdiv_ui(x, y) // #define atscntrb_gmp_mpz_fdiv2_q_mpz(x, y) mpz_fdiv_q(x, x, y) #define atscntrb_gmp_mpz_fdiv2_q_uint(x, y) mpz_fdiv_q_ui(x, x, y) #define atscntrb_gmp_mpz_fdiv2_q_ulint(x, y) mpz_fdiv_q_ui(x, x, y) #define atscntrb_gmp_mpz_fdiv3_q_mpz(x, y, z) mpz_fdiv_q(x, y, z) #define atscntrb_gmp_mpz_fdiv3_q_uint(x, y, z) mpz_fdiv_q_ui(x, y, z) #define atscntrb_gmp_mpz_fdiv3_q_ulint(x, y, z) mpz_fdiv_q_ui(x, y, z) // #define atscntrb_gmp_mpz_fdiv4_qr_mpz(q, r, dd, dr) mpz_fdiv_qr(q, r, dd, dr) #define atscntrb_gmp_mpz_fdiv4_qr_ulint(q, r, dd, dr) mpz_fdiv_qr_ui(q, r, dd, dr) // /* ****** ****** */ // // ceiling-division-functions // #define atscntrb_gmp_mpz_cdiv_uint(x, y) mpz_cdiv_ui(x, y) #define atscntrb_gmp_mpz_cdiv_ulint(x, y) mpz_cdiv_ui(x, y) // #define atscntrb_gmp_mpz_cdiv2_q_mpz(x, y) mpz_cdiv_q(x, x, y) #define atscntrb_gmp_mpz_cdiv2_q_uint(x, y) mpz_cdiv_q_ui(x, x, y) #define atscntrb_gmp_mpz_cdiv2_q_ulint(x, y) mpz_cdiv_q_ui(x, x, y) #define atscntrb_gmp_mpz_cdiv3_q_mpz(x, y, z) mpz_cdiv_q(x, y, z) #define atscntrb_gmp_mpz_cdiv3_q_uint(x, y, z) mpz_cdiv_q_ui(x, y, z) #define atscntrb_gmp_mpz_cdiv3_q_ulint(x, y, z) mpz_cdiv_q_ui(x, y, z) // /* ****** ****** */ // // modulo-functions // // x := x mod y // y mod z // #define atscntrb_gmp_mpz_mod2_mpz(x, y) mpz_mod(x, x, y) #define atscntrb_gmp_mpz_mod2_uint(x, y) mpz_mod_ui(x, x, y) #define atscntrb_gmp_mpz_mod2_ulint(x, y) mpz_mod_ui(x, x, y) #define atscntrb_gmp_mpz_mod3_mpz(x, y, z) mpz_mod(x, y, z) #define atscntrb_gmp_mpz_mod3_uint(x, y, z) mpz_mod_ui(x, y, z) #define atscntrb_gmp_mpz_mod3_ulint(x, y, z) mpz_mod_ui(x, y, z) // /* ****** ****** */ // #define atscntrb_gmp_mpz_addmul3_mpz(x, y, z) mpz_addmul(x, y, z) #define atscntrb_gmp_mpz_addmul3_uint(x, y, z) mpz_addmul_ui(x, y, z) #define atscntrb_gmp_mpz_addmul3_ulint(x, y, z) mpz_addmul_ui(x, y, z) // #define atscntrb_gmp_mpz_submul3_mpz(x, y, z) mpz_submul(x, y, z) #define atscntrb_gmp_mpz_submul3_uint(x, y, z) mpz_submul_ui(x, y, z) #define atscntrb_gmp_mpz_submul3_ulint(x, y, z) mpz_submul_ui(x, y, z) // /* ****** ****** */ // // comparison-functions // #define atscntrb_gmp_mpz_cmp_mpz(x, y) mpz_cmp((ptrmpz)x, y) #define atscntrb_gmp_mpz_cmp_int(x, y) mpz_cmp_si((ptrmpz)x, y) #define atscntrb_gmp_mpz_cmp_uint(x, y) mpz_cmp_ui((ptrmpz)x, y) #define atscntrb_gmp_mpz_cmp_lint(x, y) mpz_cmp_si((ptrmpz)x, y) #define atscntrb_gmp_mpz_cmp_ulint(x, y) mpz_cmp_ui((ptrmpz)x, y) // /* ****** ****** */ // // power-functions // #define atscntrb_gmp_mpz_pow_uint(pow, base, exp) mpz_pow_ui(pow, base, exp) #define atscntrb_gmp_mpz_pow_ulint(pow, base, exp) mpz_pow_ui(pow, base, exp) // #define atscntrb_gmp_mpz_ui_pow_ui(pow, base, exp) mpz_ui_pow_ui(pow, base, exp) // /* ****** ****** */ #define atscntrb_gmp_mpz_fac_uint(res, n) mpz_fac_ui(res, n) /* ****** ****** */ // #define atscntrb_gmp_mpz_fib_uint(res, n) mpz_fib_ui(res, n) #define atscntrb_gmp_mpz_fib2_uint(res1, res2, n) mpz_fib2_ui(res1, res2, n) // /* ****** ****** */ #endif // ifndef ATSCNTRB_LIBGMP_GMP_CATS /* ****** ****** */ /* end of [gmp.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/0000755000175000017500000000000013431250607024421 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/gmp.sats0000644000175000017500000004144613431250607026111 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for libgmp // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi // MPZ and MPQ ** Authoremail: hwxi AT cs DOT bu DOT edu *) (* ** Author: Shivkumar Chandrasekaran // MPF ** Authoremail: shiv AT ece DOT ucsb DOT edu) *) (* ****** ****** *) // %{# // #include \ "atscntrb-hx-libgmp/CATS/gmp.cats" // %} // end of [%{#] // (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.gmp" // (* ****** ****** *) // // HX: prefix for extern names // HX: prefix for static names // #define ATS_EXTERN_PREFIX "atscntrb_gmp_" #define ATS_EXTERN_STATIC "_atscntrb_gmp_" // (* ****** ****** *) // // integral numbers // absvt@ype mpz_vt0ype = $extype"atscntrb_gmp_mpz" // // rational numbers // absvt@ype mpq_vt0ype = $extype"atscntrb_gmp_mpq" // // floating point numbers // absvt@ype mpf_vt0ype = $extype"atscntrb_gmp_mpf" // (* ****** ****** *) // stadef mpz = mpz_vt0ype: vt@ype stadef mpq = mpq_vt0ype: vt@ype stadef mpf = mpf_vt0ype: vt@ype // (* ****** ****** *) // // HX: for // outputing MP numbers // typedef mp_base = intBtwe(2, 36): t@ype // (* ****** ****** *) // // integral number operations // (* ****** ****** *) // // [x] is initialized with 0 // fun mpz_init (x: &mpz? >> mpz): void = "mac#%" // (* ****** ****** *) // // [x] is initialized with 0 while given [n]-bit space // fun mpz_init2 (x: &mpz? >> mpz, n: ulint): void = "mac#%" // (* ****** ****** *) // // [x] is cleared // fun mpz_clear(x: &mpz >> mpz?): void = "mac#%" // (* ****** ****** *) // // [x] is reallocated // the original value of [x] is carried over if there // is enough space, or 0 is assigned to [x] otherwise. // fun mpz_realloc2 (x: &mpz >> mpz, n: ulint): void = "mac#%" // (* ****** ****** *) // fun mpz_get_int (x: &RD(mpz)): int = "mac#%" fun mpz_get_lint (x: &RD(mpz)): lint = "mac#%" // fun mpz_get_uint (x: &RD(mpz)): uint = "mac#%" fun mpz_get_ulint (x: &RD(mpz)): ulint = "mac#%" // fun mpz_get_double (x: &RD(mpz)): double = "mac#%" // (* ****** ****** *) // // HX-2013-04: // [res] should hold enough memory for output // fun mpz_get_str ( res: ptr , base: mp_base, x: &RD(mpz) ) : Strptr1 = "mac#%" fun mpz_get_str_null (base: mp_base, x: &RD(mpz)) : Strptr1 = "mac#%" // (* ****** ****** *) // // x := y // fun mpz_set_int (x: &mpz >> _, y: int): void = "mac#%" fun mpz_set_lint (x: &mpz >> _, y: lint): void = "mac#%" // fun mpz_set_uint (x: &mpz >> _, y: uint): void = "mac#%" fun mpz_set_ulint (x: &mpz >> _, y: ulint): void = "mac#%" // fun mpz_set_double (x: &mpz >> _, y: double): void = "mac#%" // fun mpz_set_mpz (x: &mpz >> _, y: &RD(mpz)): void = "mac#%" fun mpz_set_mpq (x: &mpz >> _, y: &RD(mpq)): void = "mac#%" fun mpz_set_mpf (x: &mpz >> _, y: &RD(mpf)): void = "mac#%" // (* ****** ****** *) // // HX: the function returns 0/-1 if the string is valid/not // fun mpz_set_str (x: &mpz >> _, inp: string, base: mp_base): int = "mac#%" // end of [mpz_set_str] // fun mpz_set_str_exn (x: &mpz >> _, inp: string, base: mp_base): void = "mac#%" // end of [mpz_set_str_exn] (* ****** ****** *) // fun mpz_init_set_mpz (x: &mpz? >> mpz, y: &mpz): void = "mac#%" // fun mpz_init_set_int (x: &mpz? >> mpz, y: int): void = "mac#%" fun mpz_init_set_uint (x: &mpz? >> mpz, y: uint): void = "mac#%" fun mpz_init_set_lint (x: &mpz? >> mpz, y: lint): void = "mac#%" fun mpz_init_set_ulint (x: &mpz? >> mpz, y: ulint): void = "mac#%" // symintr mpz_init_set // x := y // overload mpz_init_set with mpz_init_set_mpz overload mpz_init_set with mpz_init_set_int overload mpz_init_set with mpz_init_set_uint overload mpz_init_set with mpz_init_set_lint overload mpz_init_set with mpz_init_set_ulint // (* ****** ****** *) fun mpz_size (x: &RD(mpz)): size_t = "mac#%" (* ****** ****** *) // fun mpz_out_str (out: FILEref, base: mp_base, x: &RD(mpz)): size_t = "mac#%" // end of [mpz_out_str] fun mpz_inp_str (x: &mpz >> _, inp: FILEref, base: mp_base): size_t = "mac#%" // end of [mpz_inp_str] // (* ****** ****** *) // fun fprint_mpz (out: FILEref, x: &RD(mpz)): void = "mac#%" fun fprint_mpz_base (out: FILEref, x: &RD(mpz), base: mp_base): void = "mac#%" // overload fprint with fprint_mpz overload fprint with fprint_mpz_base // (* ****** ****** *) fun mpz_out_raw (out: FILEref, x: &RD(mpz)): size_t = "mac#%" fun mpz_inp_raw (x: &mpz >> _, out: FILEref): size_t = "mac#%" (* ****** ****** *) fun mpz_odd_p (x: &RD(mpz)):<> bool = "mac#%" fun mpz_even_p (x: &RD(mpz)):<> bool = "mac#%" (* ****** ****** *) // // HX: negation // symintr mpz_neg // // x := -x // -y // fun mpz_neg1 (x: &mpz >> _): void = "mac#%" fun mpz_neg2 (x: &mpz >> _, y: &mpz): void = "mac#%" overload mpz_neg with mpz_neg1 overload mpz_neg with mpz_neg2 // (* ****** ****** *) // // absolute value // symintr mpz_abs // // x := |x| // |y| // fun mpz_abs1 (x: &mpz >> _): void = "mac#%" fun mpz_abs2 (x: &mpz >> _, y: &mpz): void = "mac#%" overload mpz_abs with mpz_abs1 overload mpz_abs with mpz_abs2 // (* ****** ****** *) // // addition // symintr mpz_add // fun mpz_add2_mpz (x: &mpz >> _, y: &mpz): void = "mac#%" fun mpz_add2_int (x: &mpz >> _, y: int): void = "mac#%" fun mpz_add2_lint (x: &mpz >> _, y: lint): void = "mac#%" fun mpz_add2_uint (x: &mpz >> _, y: uint): void = "mac#%" fun mpz_add2_ulint (x: &mpz >> _, y: ulint): void = "mac#%" fun mpz_add3_mpz (x: &mpz >> _, y: &mpz, z: &mpz): void = "mac#%" fun mpz_add3_int (x: &mpz >> _, y: &mpz, z: int): void = "mac#%" fun mpz_add3_lint (x: &mpz >> _, y: &mpz, z: lint): void = "mac#%" fun mpz_add3_uint (x: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_add3_ulint (x: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // overload mpz_add with mpz_add2_mpz overload mpz_add with mpz_add2_int overload mpz_add with mpz_add2_lint overload mpz_add with mpz_add2_uint overload mpz_add with mpz_add2_ulint overload mpz_add with mpz_add3_mpz overload mpz_add with mpz_add3_int overload mpz_add with mpz_add3_lint overload mpz_add with mpz_add3_uint overload mpz_add with mpz_add3_ulint // (* ****** ****** *) // // subtraction // fun mpz_sub2_mpz (x: &mpz >> _, y: &mpz): void = "mac#%" fun mpz_sub2_int (x: &mpz >> _, y: int): void = "mac#%" fun mpz_sub2_lint (x: &mpz >> _, y: lint): void = "mac#%" fun mpz_sub2_uint (x: &mpz >> _, y: uint): void = "mac#%" fun mpz_sub2_ulint (x: &mpz >> _, y: ulint): void = "mac#%" fun mpz_sub3_mpz (x: &mpz >> _, y: &mpz, z: &mpz): void = "mac#%" fun mpz_sub3_int (x: &mpz >> _, y: &mpz, z: int): void = "mac#%" fun mpz_sub3_lint (x: &mpz >> _, y: &mpz, z: lint): void = "mac#%" fun mpz_sub3_uint (x: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_sub3_ulint (x: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // symintr mpz_sub // overload mpz_sub with mpz_sub2_mpz overload mpz_sub with mpz_sub2_int overload mpz_sub with mpz_sub2_lint overload mpz_sub with mpz_sub2_uint overload mpz_sub with mpz_sub2_ulint overload mpz_sub with mpz_sub3_mpz overload mpz_sub with mpz_sub3_int overload mpz_sub with mpz_sub3_lint overload mpz_sub with mpz_sub3_uint overload mpz_sub with mpz_sub3_ulint // (* ****** ****** *) // // multiplication // fun mpz_mul2_mpz (x: &mpz >> _, y: &mpz): void = "mac#%" fun mpz_mul2_int (x: &mpz >> _, y: int): void = "mac#%" fun mpz_mul2_lint (x: &mpz >> _, y: lint): void = "mac#%" fun mpz_mul2_uint (x: &mpz >> _, y: uint): void = "mac#%" fun mpz_mul2_ulint (x: &mpz >> _, y: ulint): void = "mac#%" fun mpz_mul3_mpz (x: &mpz >> _, y: &mpz, z: &mpz): void = "mac#%" fun mpz_mul3_int (x: &mpz >> _, y: &mpz, z: int): void = "mac#%" fun mpz_mul3_lint (x: &mpz >> _, y: &mpz, z: lint): void = "mac#%" fun mpz_mul3_uint (x: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_mul3_ulint (x: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // symintr mpz_mul // overload mpz_mul with mpz_mul2_mpz overload mpz_mul with mpz_mul2_int overload mpz_mul with mpz_mul2_lint overload mpz_mul with mpz_mul2_uint overload mpz_mul with mpz_mul2_ulint overload mpz_mul with mpz_mul3_mpz overload mpz_mul with mpz_mul3_int overload mpz_mul with mpz_mul3_lint overload mpz_mul with mpz_mul3_uint overload mpz_mul with mpz_mul3_ulint // (* ****** ****** *) (* ** ** Author: Zhiqiang Ren ** Authoremail: arenATcsDOTbuDOTedu ** ** Description: ** Set res to arg * (2 ^ exp) ** The same object can be passed for both res and arg1. ** It's up to an application to call functions like mpz_mul_2exp when appropriate. ** General purpose functions like mpz_mul make no attempt to identify powers of two ** or other special forms. ** *) // fun mpz_mul3_2exp ( res: &mpz >> _, arg: &mpz, exp: ulint ) : void = "mac#%" // end-of-function // symintr mpz_mul_2exp // overload mpz_mul_2exp with mpz_mul3_2exp // (* ****** ****** *) // // trunc-division-functions // x := trunc(x/y) // trunc(y/z) // fun mpz_tdiv2_q_mpz (x: &mpz >> _, y: &mpz): void = "mac#%" fun mpz_tdiv2_q_uint (x: &mpz >> _, y: uint): void = "mac#%" fun mpz_tdiv2_q_ulint (x: &mpz >> _, y: ulint): void = "mac#%" // fun mpz_tdiv3_q_mpz (x: &mpz >> _, y: &mpz, z: &mpz): void = "mac#%" fun mpz_tdiv3_q_uint (x: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_tdiv3_q_ulint (x: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // symintr mpz_tdiv_q // overload mpz_tdiv_q with mpz_tdiv2_q_mpz overload mpz_tdiv_q with mpz_tdiv2_q_uint overload mpz_tdiv_q with mpz_tdiv2_q_ulint overload mpz_tdiv_q with mpz_tdiv3_q_mpz overload mpz_tdiv_q with mpz_tdiv3_q_uint overload mpz_tdiv_q with mpz_tdiv3_q_ulint // // x := x-trunc(x/y)*y // y-trunc(y/z)*z // fun mpz_tdiv2_r_mpz (x: &mpz >> _, y: &mpz): void = "mac#%" fun mpz_tdiv2_r_uint (x: &mpz >> _, y: uint): void = "mac#%" fun mpz_tdiv2_r_ulint (x: &mpz >> _, y: ulint): void = "mac#%" fun mpz_tdiv3_r_mpz (x: &mpz >> _, y: &mpz, z: &mpz): void = "mac#%" fun mpz_tdiv3_r_uint (x: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_tdiv3_r_ulint (x: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // symintr mpz_tdiv_r // overload mpz_tdiv_r with mpz_tdiv2_r_mpz overload mpz_tdiv_r with mpz_tdiv2_r_uint overload mpz_tdiv_r with mpz_tdiv2_r_ulint overload mpz_tdiv_r with mpz_tdiv3_r_mpz overload mpz_tdiv_r with mpz_tdiv3_r_uint overload mpz_tdiv_r with mpz_tdiv3_r_ulint // (* ****** ****** *) // fun mpz_tdiv3_qr_mpz (xq: &mpz >> _, xr: &mpz >> _, y: &mpz): void = "mac#%" fun mpz_tdiv3_qr_uint (xq: &mpz >> _, xr: &mpz >> _, y: uint): void = "mac#%" fun mpz_tdiv3_qr_ulint (xq: &mpz >> _, xr: &mpz >> _, y: ulint): void = "mac#%" fun mpz_tdiv4_qr_mpz (xq: &mpz >> _, xr: &mpz >> _, y: &mpz, z: &mpz): void = "mac#%" fun mpz_tdiv4_qr_uint (xq: &mpz >> _, xr: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_tdiv4_qr_ulint (xq: &mpz >> _, xr: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // symintr mpz_tdiv_qr // overload mpz_tdiv_qr with mpz_tdiv3_qr_mpz overload mpz_tdiv_qr with mpz_tdiv3_qr_uint overload mpz_tdiv_qr with mpz_tdiv3_qr_ulint overload mpz_tdiv_qr with mpz_tdiv4_qr_mpz overload mpz_tdiv_qr with mpz_tdiv4_qr_uint overload mpz_tdiv_qr with mpz_tdiv4_qr_ulint // (* ****** ****** *) // // floor-division-functions // fun mpz_fdiv_uint (x: &mpz, d: uint): uint = "mac#%" fun mpz_fdiv_ulint (x: &mpz, d: ulint): ulint = "mac#%" // symintr mpz_fdiv // overload mpz_fdiv with mpz_fdiv_uint overload mpz_fdiv with mpz_fdiv_ulint // // x := floor(x/y) // floor(y/z) // fun mpz_fdiv2_q_uint (x: &mpz >> _, y: uint): void = "mac#%" fun mpz_fdiv2_q_ulint (x: &mpz >> _, y: ulint): void = "mac#%" fun mpz_fdiv3_q_uint (x: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_fdiv3_q_ulint // x := floor(y / z) (x: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // symintr mpz_fdiv_q // overload mpz_fdiv_q with mpz_fdiv2_q_uint overload mpz_fdiv_q with mpz_fdiv2_q_ulint overload mpz_fdiv_q with mpz_fdiv3_q_uint overload mpz_fdiv_q with mpz_fdiv3_q_ulint // (* ****** ****** *) (* ** ** ** Author: Zhiqiang Ren ** Authoremail: arenATcsDOTbuDOTedu ** ** Description: ** Set quot and rem so that dividend = quot * divisor + rem ** Rounds quot down towards negative infinity, and rem will ** have the same sign as divisor, and 0 <= |rem| < |divisor|. ** The same object cannot be passed for both quot and rem, or the result will be ** unpredictable. No other constraints on the passing arguments. *) // fun mpz_fdiv4_qr_mpz ( quot: &mpz >> _, rem: &mpz >> _, dividend: &mpz, divisor: &mpz ) :<> void = "mac#%" fun mpz_fdiv4_qr_ulint ( quot: &mpz >> _, rem: &mpz >> _, dividend: &mpz, divisor: ulint ) :<> ulint = "mac#%" // symintr mpz_fdiv_qr // overload mpz_fdiv_qr with mpz_fdiv4_qr_mpz overload mpz_fdiv_qr with mpz_fdiv4_qr_ulint // (* ****** ****** *) // // ceiling-division-functions // fun mpz_cdiv_uint (x: &mpz, d: uint): uint = "mac#%" fun mpz_cdiv_ulint (x: &mpz, d: ulint): ulint = "mac#%" // symintr mpz_cdiv // overload mpz_cdiv with mpz_cdiv_uint overload mpz_cdiv with mpz_cdiv_ulint // // x := ceiling(x/y) // ceiling(y/z) // fun mpz_cdiv2_q_uint (x: &mpz >> _, y: uint): void = "mac#%" fun mpz_cdiv2_q_ulint (x: &mpz >> _, y: uint): void = "mac#%" fun mpz_cdiv3_q_uint (x: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_cdiv3_q_ulint // x := ceiling(y / z) (x: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // symintr mpz_cdiv_q // overload mpz_cdiv_q with mpz_cdiv2_q_uint overload mpz_cdiv_q with mpz_cdiv2_q_ulint overload mpz_cdiv_q with mpz_cdiv3_q_uint overload mpz_cdiv_q with mpz_cdiv3_q_ulint // (* ****** ****** *) // // modulo-functions // fun mpz_mod2_mpz (r: &mpz >> _, d: &mpz): void = "mac#%" // fun mpz_mod2_uint (r: &mpz >> _, d: uint): uint = "mac#%" // fun mpz_mod2_ulint (r: &mpz >> _, d: ulint): ulint = "mac#%" // fun mpz_mod3_mpz (r: &mpz >> _, n: &mpz, d: &mpz): void = "mac#%" fun mpz_mod3_uint (r: &mpz >> _, n: &mpz, d: uint): uint = "mac#%" fun mpz_mod3_ulint (r: &mpz >> _, n: &mpz, d: ulint): ulint = "mac#%" // symintr mpz_mod // overload mpz_mod with mpz_mod2_mpz overload mpz_mod with mpz_mod2_uint overload mpz_mod with mpz_mod2_ulint overload mpz_mod with mpz_mod3_mpz overload mpz_mod with mpz_mod3_uint overload mpz_mod with mpz_mod3_ulint // (* ****** ****** *) // // add/mul combination // addmul (x, y, z): x := x + y * z // fun mpz_addmul3_mpz (x: &mpz >> _, y: &mpz, z: &mpz): void = "mac#%" fun mpz_addmul3_uint (x: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_addmul3_ulint (x: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // symintr mpz_addmul // overload mpz_addmul with mpz_addmul3_mpz overload mpz_addmul with mpz_addmul3_uint overload mpz_addmul with mpz_addmul3_ulint // // sub/mul combination // submul (x, y, z): x := x - y * z // fun mpz_submul3_mpz (x: &mpz >> _, y: &mpz, z: &mpz): void = "mac#%" fun mpz_submul3_uint (x: &mpz >> _, y: &mpz, z: uint): void = "mac#%" fun mpz_submul3_ulint (x: &mpz >> _, y: &mpz, z: ulint): void = "mac#%" // symintr mpz_submul // overload mpz_submul with mpz_submul3_mpz overload mpz_submul with mpz_submul3_uint overload mpz_submul with mpz_submul3_ulint // (* ****** ****** *) // // comparison-functions // fun mpz_cmp_mpz (x: &mpz, y: &mpz):<> int = "mac#%" fun mpz_cmp_int (x: &mpz, y: int):<> int = "mac#%" fun mpz_cmp_uint (x: &mpz, y: uint):<> int = "mac#%" fun mpz_cmp_lint (x: &mpz, y: lint):<> int = "mac#%" fun mpz_cmp_ulint (x: &mpz, y: ulint):<> int = "mac#%" // symintr mpz_cmp // overload mpz_cmp with mpz_cmp_mpz overload mpz_cmp with mpz_cmp_int overload mpz_cmp with mpz_cmp_uint overload mpz_cmp with mpz_cmp_lint overload mpz_cmp with mpz_cmp_ulint // (* ****** ****** *) // fun mpz_fac_uint (x: &mpz >> _, n: uint): void = "mac#%" // (* ****** ****** *) // fun mpz_pow_uint (pwr: &mpz >> _, base: &mpz, exp: uint): void = "mac#%" fun mpz_pow_ulint (pwr: &mpz >> _, base: &mpz, exp: ulint): void = "mac#%" // fun mpz_ui_pow_ui (pwr: &mpz >> _, base: ulint, exp: ulint): void = "mac#%" // symintr mpz_pow // overload mpz_pow with mpz_cmp_uint overload mpz_pow with mpz_cmp_ulint // (* ****** ****** *) // fun mpz_fib_uint (x: &mpz >> _, n: uint): void = "mac#%" fun mpz_fib2_uint (x1: &mpz >> _, x2: &mpz >> _, n: uint): void = "mac#%" // symintr mpz_fib symintr mpz_fib2 // overload mpz_fib with mpz_fib_uint overload mpz_fib2 with mpz_fib2_uint // (* ****** ****** *) (* end of [gmp.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/0000755000175000017500000000000013431250607025505 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/gmp.atxt0000644000175000017500000000363413431250607027200 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../gmp.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_libgmp_gmp") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/libgmp/gmp\ ") (* ****** ****** *) #declpreamble('\ #para('\ This package contains an API in ATS for the libgmp package.\ ') ')#comment("declpreamble") (* ****** ****** *) #declnamesynop("mpz_vt0ype") #declnamesynop("mpq_vt0ype") #declnamesynop("mpf_vt0ype") (* ****** ****** *) #declnamesynop("mp_base") (* ****** ****** *) #declnamesynop("mpz_init") #declnamesynop("mpz_init2") (* ****** ****** *) #declnamesynop("mpz_clear") #declnamesynop("mpz_realloc2") (* ****** ****** *) #declnamesynop("mpz_get_int") #declnamesynop("mpz_get_lint") #declnamesynop("mpz_get_uint") #declnamesynop("mpz_get_ulint") #declnamesynop("mpz_get_double") (* ****** ****** *) #declnamesynop("mpz_get_str") (* ****** ****** *) #declnamesynop("mpz_set_int") #declnamesynop("mpz_set_lint") #declnamesynop("mpz_set_uint") #declnamesynop("mpz_set_ulint") #declnamesynop("mpz_set_double") #declnamesynop("mpz_set_mpz") #declnamesynop("mpz_set_mpq") #declnamesynop("mpz_set_mpf") (* ****** ****** *) #declnamesynop("mpz_set_str") #declnamesynop("mpz_set_str_exn") (* ****** ****** *) #declnamesynop("mpz_neg") #declnamesynop("mpz_neg1") #declnamesynop("mpz_neg2") (* ****** ****** *) #declnamesynop("mpz_abs") #declnamesynop("mpz_abs1") #declnamesynop("mpz_abs2") (* ****** ****** *) #declnamesynop("mpz_add") #declnamesynop("mpz_add2_int") #declnamesynop("mpz_add2_lint") #declnamesynop("mpz_add2_uint") #declnamesynop("mpz_add2_ulint") #declnamesynop("mpz_add2_mpz") #declnamesynop("mpz_add3_int") #declnamesynop("mpz_add3_lint") #declnamesynop("mpz_add3_uint") #declnamesynop("mpz_add3_ulint") #declnamesynop("mpz_add3_mpz") (* ****** ****** *) (* end of [gmp.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/Makefile.gen0000777000175000017500000000000013431250607034300 2../../../../share/Makefile.genustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/HTML/0000755000175000017500000000000013431250607026251 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/HTML/.keeper0000644000175000017500000000000013431250607027513 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/gmp_atxt.txt0000644000175000017500000000173013431250607030072 0ustar brandonbrandon(* ****** ****** *) (* ****** ****** *) (* ****** ****** *) #__datatok1$ (* ****** ****** *) #__datatok2$#__datatok4$ (* ****** ****** *) #__datatok5$ #__datatok6$ #__datatok7$ (* ****** ****** *) #__datatok8$ (* ****** ****** *) #__datatok9$ #__datatok10$ (* ****** ****** *) #__datatok11$ #__datatok12$ (* ****** ****** *) #__datatok13$ #__datatok14$ #__datatok15$ #__datatok16$ #__datatok17$ (* ****** ****** *) #__datatok18$ (* ****** ****** *) #__datatok19$ #__datatok20$ #__datatok21$ #__datatok22$ #__datatok23$ #__datatok24$ #__datatok25$ #__datatok26$ (* ****** ****** *) #__datatok27$ #__datatok28$ (* ****** ****** *) #__datatok29$ #__datatok30$ #__datatok31$ (* ****** ****** *) #__datatok32$ #__datatok33$ #__datatok34$ (* ****** ****** *) #__datatok35$ #__datatok36$ #__datatok37$ #__datatok38$ #__datatok39$ #__datatok40$ #__datatok41$ #__datatok42$ #__datatok43$ #__datatok44$ #__datatok45$ (* ****** ****** *) (* end of [gmp.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/Makefile0000644000175000017500000000417713431250607027156 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/utils/libatsopt LDPATH += -L$(PATSHOME)/utils/libatsynmark ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= declatext_sats.o declatext_dats.o declatext_sats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= htmlgendecl_sats.o htmlgendecl_dats.o htmlgendecl_sats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: ###### all_html:: HTML/gmp.html HTML/gmp.html: gmp_atxt.exe ; ./$< > $@ gmp_atxt.txt: gmp.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ gmp_atxt.exe: htmlgendecl_atxt.dats gmp_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) -D_ATS_GCATS -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_gmp:: ; scp HTML/gmp.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libgmp/SATS/DOCUGEN/HTML clean:: ; $(RMF) gmp_atxt.exe cleanall:: ; $(RMF) HTML/gmp.html ###### # uploadall:: ; scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libgmp/SATS/DOCUGEN/HTML # ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats clean:: ; $(RMF) Makefile.exe cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/theDeclpostamble.html0000644000175000017500000000075113431250607031655 0ustar brandonbrandon
This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. SourceForge.net Logo
././@LongLink0000644000000000000000000000014700000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/htmlgendecl_data_atxt.datsATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/htmlgendecl_data_atxt.da0000644000175000017500000001702413431250607032336 0ustar brandonbrandon(* : 22(line=3, offs=1) -- 72(line=5, offs=3) *) implement srcfilename_get () = "../gmp.sats" (* : 95(line=9, offs=1) -- 189(line=12, offs=3) *) val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_libgmp_gmp") (* : 213(line=16, offs=2) -- 255(line=18, offs=3) *) val __datatok1 = decltitle("\ ATSLIB/contrib/libgmp/gmp\ ") val () = theAtextMap_insert_str ("__datatok1", __datatok1) (* : 297(line=24, offs=2) -- 403(line=28, offs=3) *) val __datatok3 = para("\ This package contains an API in ATS for the libgmp package.\ ") val () = theAtextMap_insert_str ("__datatok3", __datatok3) (* : 279(line=22, offs=2) -- 407(line=30, offs=3) *) val __datatok2 = declpreamble("\ #__datatok3$ ") val () = theAtextMap_insert_str ("__datatok2", __datatok2) (* : 408(line=30, offs=4) -- 431(line=30, offs=27) *) val __datatok4 = comment("declpreamble") val () = theAtextMap_insert_str ("__datatok4", __datatok4) (* : 455(line=34, offs=2) -- 482(line=34, offs=29) *) val __datatok5 = declnamesynop("mpz_vt0ype") val () = theAtextMap_insert_str ("__datatok5", __datatok5) (* : 484(line=35, offs=2) -- 511(line=35, offs=29) *) val __datatok6 = declnamesynop("mpq_vt0ype") val () = theAtextMap_insert_str ("__datatok6", __datatok6) (* : 513(line=36, offs=2) -- 540(line=36, offs=29) *) val __datatok7 = declnamesynop("mpf_vt0ype") val () = theAtextMap_insert_str ("__datatok7", __datatok7) (* : 564(line=40, offs=2) -- 588(line=40, offs=26) *) val __datatok8 = declnamesynop("mp_base") val () = theAtextMap_insert_str ("__datatok8", __datatok8) (* : 612(line=44, offs=2) -- 637(line=44, offs=27) *) val __datatok9 = declnamesynop("mpz_init") val () = theAtextMap_insert_str ("__datatok9", __datatok9) (* : 639(line=45, offs=2) -- 665(line=45, offs=28) *) val __datatok10 = declnamesynop("mpz_init2") val () = theAtextMap_insert_str ("__datatok10", __datatok10) (* : 689(line=49, offs=2) -- 715(line=49, offs=28) *) val __datatok11 = declnamesynop("mpz_clear") val () = theAtextMap_insert_str ("__datatok11", __datatok11) (* : 717(line=50, offs=2) -- 746(line=50, offs=31) *) val __datatok12 = declnamesynop("mpz_realloc2") val () = theAtextMap_insert_str ("__datatok12", __datatok12) (* : 770(line=54, offs=2) -- 798(line=54, offs=30) *) val __datatok13 = declnamesynop("mpz_get_int") val () = theAtextMap_insert_str ("__datatok13", __datatok13) (* : 800(line=55, offs=2) -- 829(line=55, offs=31) *) val __datatok14 = declnamesynop("mpz_get_lint") val () = theAtextMap_insert_str ("__datatok14", __datatok14) (* : 831(line=56, offs=2) -- 860(line=56, offs=31) *) val __datatok15 = declnamesynop("mpz_get_uint") val () = theAtextMap_insert_str ("__datatok15", __datatok15) (* : 862(line=57, offs=2) -- 892(line=57, offs=32) *) val __datatok16 = declnamesynop("mpz_get_ulint") val () = theAtextMap_insert_str ("__datatok16", __datatok16) (* : 894(line=58, offs=2) -- 925(line=58, offs=33) *) val __datatok17 = declnamesynop("mpz_get_double") val () = theAtextMap_insert_str ("__datatok17", __datatok17) (* : 949(line=62, offs=2) -- 977(line=62, offs=30) *) val __datatok18 = declnamesynop("mpz_get_str") val () = theAtextMap_insert_str ("__datatok18", __datatok18) (* : 1001(line=66, offs=2) -- 1029(line=66, offs=30) *) val __datatok19 = declnamesynop("mpz_set_int") val () = theAtextMap_insert_str ("__datatok19", __datatok19) (* : 1031(line=67, offs=2) -- 1060(line=67, offs=31) *) val __datatok20 = declnamesynop("mpz_set_lint") val () = theAtextMap_insert_str ("__datatok20", __datatok20) (* : 1062(line=68, offs=2) -- 1091(line=68, offs=31) *) val __datatok21 = declnamesynop("mpz_set_uint") val () = theAtextMap_insert_str ("__datatok21", __datatok21) (* : 1093(line=69, offs=2) -- 1123(line=69, offs=32) *) val __datatok22 = declnamesynop("mpz_set_ulint") val () = theAtextMap_insert_str ("__datatok22", __datatok22) (* : 1125(line=70, offs=2) -- 1156(line=70, offs=33) *) val __datatok23 = declnamesynop("mpz_set_double") val () = theAtextMap_insert_str ("__datatok23", __datatok23) (* : 1158(line=71, offs=2) -- 1186(line=71, offs=30) *) val __datatok24 = declnamesynop("mpz_set_mpz") val () = theAtextMap_insert_str ("__datatok24", __datatok24) (* : 1188(line=72, offs=2) -- 1216(line=72, offs=30) *) val __datatok25 = declnamesynop("mpz_set_mpq") val () = theAtextMap_insert_str ("__datatok25", __datatok25) (* : 1218(line=73, offs=2) -- 1246(line=73, offs=30) *) val __datatok26 = declnamesynop("mpz_set_mpf") val () = theAtextMap_insert_str ("__datatok26", __datatok26) (* : 1270(line=77, offs=2) -- 1298(line=77, offs=30) *) val __datatok27 = declnamesynop("mpz_set_str") val () = theAtextMap_insert_str ("__datatok27", __datatok27) (* : 1300(line=78, offs=2) -- 1332(line=78, offs=34) *) val __datatok28 = declnamesynop("mpz_set_str_exn") val () = theAtextMap_insert_str ("__datatok28", __datatok28) (* : 1356(line=82, offs=2) -- 1380(line=82, offs=26) *) val __datatok29 = declnamesynop("mpz_neg") val () = theAtextMap_insert_str ("__datatok29", __datatok29) (* : 1382(line=83, offs=2) -- 1407(line=83, offs=27) *) val __datatok30 = declnamesynop("mpz_neg1") val () = theAtextMap_insert_str ("__datatok30", __datatok30) (* : 1409(line=84, offs=2) -- 1434(line=84, offs=27) *) val __datatok31 = declnamesynop("mpz_neg2") val () = theAtextMap_insert_str ("__datatok31", __datatok31) (* : 1458(line=88, offs=2) -- 1482(line=88, offs=26) *) val __datatok32 = declnamesynop("mpz_abs") val () = theAtextMap_insert_str ("__datatok32", __datatok32) (* : 1484(line=89, offs=2) -- 1509(line=89, offs=27) *) val __datatok33 = declnamesynop("mpz_abs1") val () = theAtextMap_insert_str ("__datatok33", __datatok33) (* : 1511(line=90, offs=2) -- 1536(line=90, offs=27) *) val __datatok34 = declnamesynop("mpz_abs2") val () = theAtextMap_insert_str ("__datatok34", __datatok34) (* : 1560(line=94, offs=2) -- 1584(line=94, offs=26) *) val __datatok35 = declnamesynop("mpz_add") val () = theAtextMap_insert_str ("__datatok35", __datatok35) (* : 1586(line=95, offs=2) -- 1615(line=95, offs=31) *) val __datatok36 = declnamesynop("mpz_add2_int") val () = theAtextMap_insert_str ("__datatok36", __datatok36) (* : 1617(line=96, offs=2) -- 1647(line=96, offs=32) *) val __datatok37 = declnamesynop("mpz_add2_lint") val () = theAtextMap_insert_str ("__datatok37", __datatok37) (* : 1649(line=97, offs=2) -- 1679(line=97, offs=32) *) val __datatok38 = declnamesynop("mpz_add2_uint") val () = theAtextMap_insert_str ("__datatok38", __datatok38) (* : 1681(line=98, offs=2) -- 1712(line=98, offs=33) *) val __datatok39 = declnamesynop("mpz_add2_ulint") val () = theAtextMap_insert_str ("__datatok39", __datatok39) (* : 1714(line=99, offs=2) -- 1743(line=99, offs=31) *) val __datatok40 = declnamesynop("mpz_add2_mpz") val () = theAtextMap_insert_str ("__datatok40", __datatok40) (* : 1745(line=100, offs=2) -- 1774(line=100, offs=31) *) val __datatok41 = declnamesynop("mpz_add3_int") val () = theAtextMap_insert_str ("__datatok41", __datatok41) (* : 1776(line=101, offs=2) -- 1806(line=101, offs=32) *) val __datatok42 = declnamesynop("mpz_add3_lint") val () = theAtextMap_insert_str ("__datatok42", __datatok42) (* : 1808(line=102, offs=2) -- 1838(line=102, offs=32) *) val __datatok43 = declnamesynop("mpz_add3_uint") val () = theAtextMap_insert_str ("__datatok43", __datatok43) (* : 1840(line=103, offs=2) -- 1871(line=103, offs=33) *) val __datatok44 = declnamesynop("mpz_add3_ulint") val () = theAtextMap_insert_str ("__datatok44", __datatok44) (* : 1873(line=104, offs=2) -- 1902(line=104, offs=31) *) val __datatok45 = declnamesynop("mpz_add3_mpz") val () = theAtextMap_insert_str ("__datatok45", __datatok45) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/htmlgendecl_atxt.dats0000644000175000017500000001055313431250607031714 0ustar brandonbrandon(* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1(line=1, offs=1) -- 1666(line=70, offs=3) *) // dynload "libatsdoc/dynloadall.dats" // dynload "utils/libatsynmark/dynloadall.dats" staload "utils/libatsynmark/SATS/libatsynmark.sats" // #include "utils/atsdoc/HATS/pats2xhtmlatxt.hats" // dynload "declatext.dats" staload "declatext.sats" dynload "htmlgendecl.dats" staload "htmlgendecl.sats" // staload _(*anon*) = "prelude/DATS/list.dats" staload _(*anon*) = "prelude/DATS/list_vt.dats" staload _(*anon*) = "prelude/DATS/reference.dats" // extern fun theDeclrepLst_initize (fil: FILEref): void implement theDeclrepLst_initize (filr) = let val cs = char_list_vt_make_file (filr) val replst = charlst_declitemize (0(*sta*), cs) in theDeclrepLst_set (replst) end // end of [theDeclrepLst] // extern fun srcfilename_get (): string // extern fun htmlgendecl_initize (): void // val () = htmlgendecl_initize () // #include "htmlgendecl_data_atxt.dats" // #ifndef IMPLEMENT_HTMLGENDECL_INITIZE // implement htmlgendecl_initize () = let // val name = srcfilename_get () val filr = open_file_exn (name, file_mode_r) val () = libatsynmark_filename_set_current (name) val () = theDeclrepLst_initize (filr) val () = close_file_exn (filr) // in // nothing end // end of [htmlgendecl_initize] // #endif // [IMPLEMENT_HTMLGENDECL_INITIZE] // val theDecltitle = theDecltitle_get () val theDeclpreamble = theDeclpreamble_get () val theDeclpostamble = theDeclpostamble_get () // val theDeclnameLst_menu = theDeclnameLst_make_menu () val theDeclitemLst_content = theDeclitemLst_make_content () // val () = theAtextMap_insert_str ("theDeclnameLst_menu", theDeclnameLst_menu) val () = theAtextMap_insert_str ("theDeclitemLst_content", theDeclitemLst_content) // (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1698(line=74, offs=2) -- 1717(line=74, offs=21) *) val __tok1 = title(theDecltitle) val () = theAtextMap_insert_str ("__tok1", __tok1) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1787(line=76, offs=2) -- 1804(line=76, offs=19) *) val __tok2 = patsyntax_style() val () = theAtextMap_insert_str ("__tok2", __tok2) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1806(line=77, offs=2) -- 1830(line=77, offs=26) *) val __tok3 = patscode_jquery_min_js() val () = theAtextMap_insert_str ("__tok3", __tok3) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1832(line=78, offs=2) -- 1860(line=78, offs=30) *) val __tok4 = patscode_tryit_bind_all_js() val () = theAtextMap_insert_str ("__tok4", __tok4) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1878(line=82, offs=2) -- 1894(line=82, offs=18) *) val __tok5 = H1(theDecltitle) val () = theAtextMap_insert_str ("__tok5", __tok5) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1897(line=84, offs=2) -- 1926(line=84, offs=31) *) val __tok6 = atext_strsub(theDeclpreamble) val () = theAtextMap_insert_str ("__tok6", __tok6) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1929(line=86, offs=2) -- 1934(line=86, offs=7) *) val __tok7 = HR(2) val () = theAtextMap_insert_str ("__tok7", __tok7) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1937(line=88, offs=2) -- 1975(line=88, offs=40) *) val __tok8 = atext_strsub("#theDeclnameLst_menu$") val () = theAtextMap_insert_str ("__tok8", __tok8) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1978(line=90, offs=2) -- 1983(line=90, offs=7) *) val __tok9 = HR(2) val () = theAtextMap_insert_str ("__tok9", __tok9) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 1986(line=92, offs=2) -- 2027(line=92, offs=43) *) val __tok10 = atext_strsub("#theDeclitemLst_content$") val () = theAtextMap_insert_str ("__tok10", __tok10) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 2030(line=94, offs=2) -- 2035(line=94, offs=7) *) val __tok11 = HR(2) val () = theAtextMap_insert_str ("__tok11", __tok11) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 2038(line=96, offs=2) -- 2077(line=96, offs=41) *) val __tok12 = atext_filepath("theDeclpostamble.html") val () = theAtextMap_insert_str ("__tok12", __tok12) (* /home/hwxi/Research/ATS-Postiats/share/DOCUGEN/htmlgendecl.atxt: 2096(line=101, offs=1) -- 2172(line=103, offs=3) *) implement main () = fprint_filsub (stdout_ref, "htmlgendecl_atxt.txt") ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/htmlgendecl_atxt.txt0000644000175000017500000000037313431250607031577 0ustar brandonbrandon #__tok1$ #__tok2$ #__tok3$ #__tok4$ #__tok5$ #__tok6$ #__tok7$ #__tok8$ #__tok9$ #__tok10$ #__tok11$ #__tok12$ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/Makefile_atxt.txt0000644000175000017500000000302213431250607031020 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/utils/libatsopt LDPATH += -L$(PATSHOME)/utils/libatsynmark ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= declatext_sats.o declatext_dats.o declatext_sats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= htmlgendecl_sats.o htmlgendecl_dats.o htmlgendecl_sats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: ###### #__tok1$ ###### # uploadall:: ; scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libgmp/SATS/DOCUGEN/HTML # ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/Makefile.atxt0000644000175000017500000000521213431250607030124 0ustar brandonbrandon%{ // staload STDIO = "libc/SATS/stdio.sats" staload TIME = "libc/SATS/time.sats" // dynload "libatsdoc/dynloadall.dats" // staload "libatsdoc/SATS/libatsdoc_atext.sats" // %}\ %{ fun comment (x: string): atext = atext_nil () // end of [comment] fun make_entry (nm: string): atext = let // val ent = sprintf ("\ all_html:: HTML/%s.html\n\ HTML/%s.html: \ %s_atxt.exe ; ./$< > $@ %s_atxt.txt: %s.atxt ; $(CAT) $< | \ $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ %s_atxt.exe: htmlgendecl_atxt.dats \ %s_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -D_ATS_GCATS -o $@ $< \ $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_%s:: ; \ scp HTML/%s.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libgmp/SATS/DOCUGEN/HTML clean:: ; $(RMF) %s_atxt.exe cleanall:: ; $(RMF) HTML/%s.html ", @(nm, nm, nm, nm, nm, nm, nm, nm, nm, nm, nm) ) // end of [val] // in atext_strptr (ent) end // end of [make_entry] %}\ # # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/ccomp/atslib/lib LDPATH += -L$(PATSHOME)/utils/libatsynmark ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \ declatext_sats.o \ declatext_dats.o \ declatext_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \ htmlgendecl_sats.o \ htmlgendecl_dats.o \ htmlgendecl_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: ###### #make_entry("gmp") ###### # uploadall:: ; \ scp HTML/*.html \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libgmp/SATS/DOCUGEN/HTML # ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### \ %{ implement main () = fprint_filsub (stdout_ref, "Makefile_atxt.txt") %}\ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/SATS/DOCUGEN/Makefile_atxt.dats0000644000175000017500000000264413431250607031145 0ustar brandonbrandon(* Makefile.atxt: 1(line=1, offs=1) -- 176(line=11, offs=3) *) // staload STDIO = "libc/SATS/stdio.sats" staload TIME = "libc/SATS/time.sats" // dynload "libatsdoc/dynloadall.dats" // staload "libatsdoc/SATS/libatsdoc_atext.sats" // (* Makefile.atxt: 178(line=12, offs=1) -- 1029(line=42, offs=3) *) fun comment (x: string): atext = atext_nil () // end of [comment] fun make_entry (nm: string): atext = let // val ent = sprintf ("\ all_html:: HTML/%s.html\n\ HTML/%s.html: \ %s_atxt.exe ; ./$< > $@ %s_atxt.txt: %s.atxt ; $(CAT) $< | \ $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ %s_atxt.exe: htmlgendecl_atxt.dats \ %s_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -D_ATS_GCATS -o $@ $< \ $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_%s:: ; \ scp HTML/%s.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libgmp/SATS/DOCUGEN/HTML clean:: ; $(RMF) %s_atxt.exe cleanall:: ; $(RMF) HTML/%s.html ", @(nm, nm, nm, nm, nm, nm, nm, nm, nm, nm, nm) ) // end of [val] // in atext_strptr (ent) end // end of [make_entry] (* Makefile.atxt: 2279(line=117, offs=2) -- 2296(line=117, offs=19) *) val __tok1 = make_entry("gmp") val () = theAtextMap_insert_str ("__tok1", __tok1) (* Makefile.atxt: 2623(line=140, offs=1) -- 2696(line=142, offs=3) *) implement main () = fprint_filsub (stdout_ref, "Makefile_atxt.txt") ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libgmp/README.md0000644000175000017500000000117413431250607025131 0ustar brandonbrandon# Libgmp A simple package for calling GMP-functions in ATS ## Description ###CATS Files 1. CATS/gmp.cats: This file contains various C-macros that are needed for compiling the C code generated from ATS source. Note that the include-path must be properly set for the C-compiler so as to allow it to have access to `gmp.cats`. ###SATS Files 1. SATS/gmp.sats: This file contains the interface (in ATS) for various GMP-functions. ###DATS Files 1. DATS/gmp.dats: It is yet empty at this moment. ###TEST Files The pidigits directory contains an example that computes to a given position all of the digits in the famous constant PI. ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/0000755000175000017500000000000013431250607024232 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/H/0000755000175000017500000000000013431250607024421 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/H/sds.h0000644000175000017500000000707213431250607025371 0ustar brandonbrandon/* SDS (Simple Dynamic Strings), A C dynamic strings library. * * Copyright (c) 2006-2014, Salvatore Sanfilippo * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Redis nor the names of its contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __SDS_H #define __SDS_H #define SDS_MAX_PREALLOC (1024*1024) #include #include typedef char *sds; struct sdshdr { int len; int free; char buf[]; }; static inline size_t sdslen(const sds s) { struct sdshdr *sh = (void*)(s-sizeof *sh); return sh->len; } static inline size_t sdsavail(const sds s) { struct sdshdr *sh = (void*)(s-sizeof *sh); return sh->free; } sds sdsnewlen(const void *init, size_t initlen); sds sdsnew(const char *init); sds sdsempty(void); size_t sdslen(const sds s); sds sdsdup(const sds s); void sdsfree(sds s); size_t sdsavail(const sds s); sds sdsgrowzero(sds s, size_t len); sds sdscatlen(sds s, const void *t, size_t len); sds sdscat(sds s, const char *t); sds sdscatsds(sds s, const sds t); sds sdscpylen(sds s, const char *t, size_t len); sds sdscpy(sds s, const char *t); sds sdscatvprintf(sds s, const char *fmt, va_list ap); #ifdef __GNUC__ sds sdscatprintf(sds s, const char *fmt, ...) __attribute__((format(printf, 2, 3))); #else sds sdscatprintf(sds s, const char *fmt, ...); #endif void sdstrim(sds s, const char *cset); void sdsrange(sds s, int start, int end); void sdsupdatelen(sds s); void sdsclear(sds s); int sdscmp(const sds s1, const sds s2); sds *sdssplitlen(const char *s, int len, const char *sep, int seplen, int *count); void sdsfreesplitres(sds *tokens, int count); void sdstolower(sds s); void sdstoupper(sds s); sds sdsfromlonglong(long long value); sds sdscatrepr(sds s, const char *p, size_t len); sds *sdssplitargs(const char *line, int *argc); sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen); sds sdsjoin(char **argv, int argc, char *sep, size_t seplen); sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen); /* Low level functions exposed to the user API */ sds sdsMakeRoomFor(sds s, size_t addlen); void sdsIncrLen(sds s, int incr); sds sdsRemoveFreeSpace(sds s); size_t sdsAllocSize(sds s); #endif ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/H/sds.c0000644000175000017500000007014313431250607025363 0ustar brandonbrandon/* SDS (Simple Dynamic Strings), A C dynamic strings library. * * Copyright (c) 2006-2014, Salvatore Sanfilippo * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Redis nor the names of its contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include #include #include #include #include #include "sds.h" /* Create a new sds string with the content specified by the 'init' pointer * and 'initlen'. * If NULL is used for 'init' the string is initialized with zero bytes. * * The string is always null-termined (all the sds strings are, always) so * even if you create an sds string with: * * mystring = sdsnewlen("abc",3"); * * You can print the string with printf() as there is an implicit \0 at the * end of the string. However the string is binary safe and can contain * \0 characters in the middle, as the length is stored in the sds header. */ sds sdsnewlen(const void *init, size_t initlen) { struct sdshdr *sh; if (init) { sh = malloc(sizeof *sh+initlen+1); } else { sh = calloc(sizeof *sh+initlen+1,1); } if (sh == NULL) return NULL; sh->len = initlen; sh->free = 0; if (initlen && init) memcpy(sh->buf, init, initlen); sh->buf[initlen] = '\0'; return (char*)sh->buf; } /* Create an empty (zero length) sds string. Even in this case the string * always has an implicit null term. */ sds sdsempty(void) { return sdsnewlen("",0); } /* Create a new sds string starting from a null termined C string. */ sds sdsnew(const char *init) { size_t initlen = (init == NULL) ? 0 : strlen(init); return sdsnewlen(init, initlen); } /* Duplicate an sds string. */ sds sdsdup(const sds s) { return sdsnewlen(s, sdslen(s)); } /* Free an sds string. No operation is performed if 's' is NULL. */ void sdsfree(sds s) { if (s == NULL) return; free(s-sizeof(struct sdshdr)); } /* Set the sds string length to the length as obtained with strlen(), so * considering as content only up to the first null term character. * * This function is useful when the sds string is hacked manually in some * way, like in the following example: * * s = sdsnew("foobar"); * s[2] = '\0'; * sdsupdatelen(s); * printf("%d\n", sdslen(s)); * * The output will be "2", but if we comment out the call to sdsupdatelen() * the output will be "6" as the string was modified but the logical length * remains 6 bytes. */ void sdsupdatelen(sds s) { struct sdshdr *sh = (void*) (s-sizeof *sh);; int reallen = strlen(s); sh->free += (sh->len-reallen); sh->len = reallen; } /* Modify an sds string on-place to make it empty (zero length). * However all the existing buffer is not discarded but set as free space * so that next append operations will not require allocations up to the * number of bytes previously available. */ void sdsclear(sds s) { struct sdshdr *sh = (void*) (s-sizeof *sh);; sh->free += sh->len; sh->len = 0; sh->buf[0] = '\0'; } /* Enlarge the free space at the end of the sds string so that the caller * is sure that after calling this function can overwrite up to addlen * bytes after the end of the string, plus one more byte for nul term. * * Note: this does not change the *length* of the sds string as returned * by sdslen(), but only the free buffer space we have. */ sds sdsMakeRoomFor(sds s, size_t addlen) { struct sdshdr *sh, *newsh; size_t free = sdsavail(s); size_t len, newlen; if (free >= addlen) return s; len = sdslen(s); sh = (void*) (s-sizeof *sh);; newlen = (len+addlen); if (newlen < SDS_MAX_PREALLOC) newlen *= 2; else newlen += SDS_MAX_PREALLOC; newsh = realloc(sh, sizeof *newsh+newlen+1); if (newsh == NULL) return NULL; newsh->free = newlen - len; return newsh->buf; } /* Reallocate the sds string so that it has no free space at the end. The * contained string remains not altered, but next concatenation operations * will require a reallocation. * * After the call, the passed sds string is no longer valid and all the * references must be substituted with the new pointer returned by the call. */ sds sdsRemoveFreeSpace(sds s) { struct sdshdr *sh; sh = (void*) (s-sizeof *sh);; sh = realloc(sh, sizeof *sh+sh->len+1); sh->free = 0; return sh->buf; } /* Return the total size of the allocation of the specifed sds string, * including: * 1) The sds header before the pointer. * 2) The string. * 3) The free buffer at the end if any. * 4) The implicit null term. */ size_t sdsAllocSize(sds s) { struct sdshdr *sh = (void*) (s-sizeof *sh);; return sizeof(*sh)+sh->len+sh->free+1; } /* Increment the sds length and decrements the left free space at the * end of the string according to 'incr'. Also set the null term * in the new end of the string. * * This function is used in order to fix the string length after the * user calls sdsMakeRoomFor(), writes something after the end of * the current string, and finally needs to set the new length. * * Note: it is possible to use a negative increment in order to * right-trim the string. * * Usage example: * * Using sdsIncrLen() and sdsMakeRoomFor() it is possible to mount the * following schema, to cat bytes coming from the kernel to the end of an * sds string without copying into an intermediate buffer: * * oldlen = sdslen(s); * s = sdsMakeRoomFor(s, BUFFER_SIZE); * nread = read(fd, s+oldlen, BUFFER_SIZE); * ... check for nread <= 0 and handle it ... * sdsIncrLen(s, nread); */ void sdsIncrLen(sds s, int incr) { struct sdshdr *sh = (void*) (s-sizeof *sh);; assert(sh->free >= incr); sh->len += incr; sh->free -= incr; assert(sh->free >= 0); s[sh->len] = '\0'; } /* Grow the sds to have the specified length. Bytes that were not part of * the original length of the sds will be set to zero. * * if the specified length is smaller than the current length, no operation * is performed. */ sds sdsgrowzero(sds s, size_t len) { struct sdshdr *sh = (void*) (s-sizeof *sh); size_t totlen, curlen = sh->len; if (len <= curlen) return s; s = sdsMakeRoomFor(s,len-curlen); if (s == NULL) return NULL; /* Make sure added region doesn't contain garbage */ sh = (void*)(s-sizeof *sh); memset(s+curlen,0,(len-curlen+1)); /* also set trailing \0 byte */ totlen = sh->len+sh->free; sh->len = len; sh->free = totlen-sh->len; return s; } /* Append the specified binary-safe string pointed by 't' of 'len' bytes to the * end of the specified sds string 's'. * * After the call, the passed sds string is no longer valid and all the * references must be substituted with the new pointer returned by the call. */ sds sdscatlen(sds s, const void *t, size_t len) { struct sdshdr *sh; size_t curlen = sdslen(s); s = sdsMakeRoomFor(s,len); if (s == NULL) return NULL; sh = (void*) (s-sizeof *sh);; memcpy(s+curlen, t, len); sh->len = curlen+len; sh->free = sh->free-len; s[curlen+len] = '\0'; return s; } /* Append the specified null termianted C string to the sds string 's'. * * After the call, the passed sds string is no longer valid and all the * references must be substituted with the new pointer returned by the call. */ sds sdscat(sds s, const char *t) { return sdscatlen(s, t, strlen(t)); } /* Append the specified sds 't' to the existing sds 's'. * * After the call, the modified sds string is no longer valid and all the * references must be substituted with the new pointer returned by the call. */ sds sdscatsds(sds s, const sds t) { return sdscatlen(s, t, sdslen(t)); } /* Destructively modify the sds string 's' to hold the specified binary * safe string pointed by 't' of length 'len' bytes. */ sds sdscpylen(sds s, const char *t, size_t len) { struct sdshdr *sh = (void*) (s-sizeof *sh);; size_t totlen = sh->free+sh->len; if (totlen < len) { s = sdsMakeRoomFor(s,len-sh->len); if (s == NULL) return NULL; sh = (void*) (s-sizeof *sh);; totlen = sh->free+sh->len; } memcpy(s, t, len); s[len] = '\0'; sh->len = len; sh->free = totlen-len; return s; } /* Like sdscpylen() but 't' must be a null-termined string so that the length * of the string is obtained with strlen(). */ sds sdscpy(sds s, const char *t) { return sdscpylen(s, t, strlen(t)); } /* Like sdscatpritf() but gets va_list instead of being variadic. */ sds sdscatvprintf(sds s, const char *fmt, va_list ap) { va_list cpy; char *buf, *t; size_t buflen = 16; while(1) { buf = malloc(buflen); if (buf == NULL) return NULL; buf[buflen-2] = '\0'; va_copy(cpy,ap); vsnprintf(buf, buflen, fmt, cpy); if (buf[buflen-2] != '\0') { free(buf); buflen *= 2; continue; } break; } t = sdscat(s, buf); free(buf); return t; } /* Append to the sds string 's' a string obtained using printf-alike format * specifier. * * After the call, the modified sds string is no longer valid and all the * references must be substituted with the new pointer returned by the call. * * Example: * * s = sdsempty("Sum is: "); * s = sdscatprintf(s,"%d+%d = %d",a,b,a+b). * * Often you need to create a string from scratch with the printf-alike * format. When this is the need, just use sdsempty() as the target string: * * s = sdscatprintf(sdsempty(), "... your format ...", args); */ sds sdscatprintf(sds s, const char *fmt, ...) { va_list ap; char *t; va_start(ap, fmt); t = sdscatvprintf(s,fmt,ap); va_end(ap); return t; } /* Remove the part of the string from left and from right composed just of * contiguous characters found in 'cset', that is a null terminted C string. * * After the call, the modified sds string is no longer valid and all the * references must be substituted with the new pointer returned by the call. * * Example: * * s = sdsnew("AA...AA.a.aa.aHelloWorld :::"); * s = sdstrim(s,"A. :"); * printf("%s\n", s); * * Output will be just "Hello World". */ void sdstrim(sds s, const char *cset) { struct sdshdr *sh = (void*) (s-sizeof *sh);; char *start, *end, *sp, *ep; size_t len; sp = start = s; ep = end = s+sdslen(s)-1; while(sp <= end && strchr(cset, *sp)) sp++; while(ep > start && strchr(cset, *ep)) ep--; len = (sp > ep) ? 0 : ((ep-sp)+1); if (sh->buf != sp) memmove(sh->buf, sp, len); sh->buf[len] = '\0'; sh->free = sh->free+(sh->len-len); sh->len = len; } /* Turn the string into a smaller (or equal) string containing only the * substring specified by the 'start' and 'end' indexes. * * start and end can be negative, where -1 means the last character of the * string, -2 the penultimate character, and so forth. * * The interval is inclusive, so the start and end characters will be part * of the resulting string. * * The string is modified in-place. * * Example: * * s = sdsnew("Hello World"); * sdsrange(s,1,-1); => "ello World" */ void sdsrange(sds s, int start, int end) { struct sdshdr *sh = (void*) (s-sizeof *sh);; size_t newlen, len = sdslen(s); if (len == 0) return; if (start < 0) { start = len+start; if (start < 0) start = 0; } if (end < 0) { end = len+end; if (end < 0) end = 0; } newlen = (start > end) ? 0 : (end-start)+1; if (newlen != 0) { if (start >= (signed)len) { newlen = 0; } else if (end >= (signed)len) { end = len-1; newlen = (start > end) ? 0 : (end-start)+1; } } else { start = 0; } if (start && newlen) memmove(sh->buf, sh->buf+start, newlen); sh->buf[newlen] = 0; sh->free = sh->free+(sh->len-newlen); sh->len = newlen; } /* Apply tolower() to every character of the sds string 's'. */ void sdstolower(sds s) { int len = sdslen(s), j; for (j = 0; j < len; j++) s[j] = tolower(s[j]); } /* Apply toupper() to every character of the sds string 's'. */ void sdstoupper(sds s) { int len = sdslen(s), j; for (j = 0; j < len; j++) s[j] = toupper(s[j]); } /* Compare two sds strings s1 and s2 with memcmp(). * * Return value: * * 1 if s1 > s2. * -1 if s1 < s2. * 0 if s1 and s2 are exactly the same binary string. * * If two strings share exactly the same prefix, but one of the two has * additional characters, the longer string is considered to be greater than * the smaller one. */ int sdscmp(const sds s1, const sds s2) { size_t l1, l2, minlen; int cmp; l1 = sdslen(s1); l2 = sdslen(s2); minlen = (l1 < l2) ? l1 : l2; cmp = memcmp(s1,s2,minlen); if (cmp == 0) return l1-l2; return cmp; } /* Split 's' with separator in 'sep'. An array * of sds strings is returned. *count will be set * by reference to the number of tokens returned. * * On out of memory, zero length string, zero length * separator, NULL is returned. * * Note that 'sep' is able to split a string using * a multi-character separator. For example * sdssplit("foo_-_bar","_-_"); will return two * elements "foo" and "bar". * * This version of the function is binary-safe but * requires length arguments. sdssplit() is just the * same function but for zero-terminated strings. */ sds *sdssplitlen(const char *s, int len, const char *sep, int seplen, int *count) { int elements = 0, slots = 5, start = 0, j; sds *tokens; if (seplen < 1 || len < 0) return NULL; tokens = malloc(sizeof(sds)*slots); if (tokens == NULL) return NULL; if (len == 0) { *count = 0; return tokens; } for (j = 0; j < (len-(seplen-1)); j++) { /* make sure there is room for the next element and the final one */ if (slots < elements+2) { sds *newtokens; slots *= 2; newtokens = realloc(tokens,sizeof(sds)*slots); if (newtokens == NULL) goto cleanup; tokens = newtokens; } /* search the separator */ if ((seplen == 1 && *(s+j) == sep[0]) || (memcmp(s+j,sep,seplen) == 0)) { tokens[elements] = sdsnewlen(s+start,j-start); if (tokens[elements] == NULL) goto cleanup; elements++; start = j+seplen; j = j+seplen-1; /* skip the separator */ } } /* Add the final element. We are sure there is room in the tokens array. */ tokens[elements] = sdsnewlen(s+start,len-start); if (tokens[elements] == NULL) goto cleanup; elements++; *count = elements; return tokens; cleanup: { int i; for (i = 0; i < elements; i++) sdsfree(tokens[i]); free(tokens); *count = 0; return NULL; } } /* Free the result returned by sdssplitlen(), or do nothing if 'tokens' is NULL. */ void sdsfreesplitres(sds *tokens, int count) { if (!tokens) return; while(count--) sdsfree(tokens[count]); free(tokens); } /* Create an sds string from a long long value. It is much faster than: * * sdscatprintf(sdsempty(),"%lld\n", value); */ sds sdsfromlonglong(long long value) { char buf[32], *p; unsigned long long v; v = (value < 0) ? -value : value; p = buf+31; /* point to the last character */ do { *p-- = '0'+(v%10); v /= 10; } while(v); if (value < 0) *p-- = '-'; p++; return sdsnewlen(p,32-(p-buf)); } /* Append to the sds string "s" an escaped string representation where * all the non-printable characters (tested with isprint()) are turned into * escapes in the form "\n\r\a...." or "\x". * * After the call, the modified sds string is no longer valid and all the * references must be substituted with the new pointer returned by the call. */ sds sdscatrepr(sds s, const char *p, size_t len) { s = sdscatlen(s,"\"",1); while(len--) { switch(*p) { case '\\': case '"': s = sdscatprintf(s,"\\%c",*p); break; case '\n': s = sdscatlen(s,"\\n",2); break; case '\r': s = sdscatlen(s,"\\r",2); break; case '\t': s = sdscatlen(s,"\\t",2); break; case '\a': s = sdscatlen(s,"\\a",2); break; case '\b': s = sdscatlen(s,"\\b",2); break; default: if (isprint(*p)) s = sdscatprintf(s,"%c",*p); else s = sdscatprintf(s,"\\x%02x",(unsigned char)*p); break; } p++; } return sdscatlen(s,"\"",1); } /* Helper function for sdssplitargs() that returns non zero if 'c' * is a valid hex digit. */ int is_hex_digit(char c) { return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); } /* Helper function for sdssplitargs() that converts a hex digit into an * integer from 0 to 15 */ int hex_digit_to_int(char c) { switch(c) { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; case 'a': case 'A': return 10; case 'b': case 'B': return 11; case 'c': case 'C': return 12; case 'd': case 'D': return 13; case 'e': case 'E': return 14; case 'f': case 'F': return 15; default: return 0; } } /* Split a line into arguments, where every argument can be in the * following programming-language REPL-alike form: * * foo bar "newline are supported\n" and "\xff\x00otherstuff" * * The number of arguments is stored into *argc, and an array * of sds is returned. * * The caller should free the resulting array of sds strings with * sdsfreesplitres(). * * Note that sdscatrepr() is able to convert back a string into * a quoted string in the same format sdssplitargs() is able to parse. * * The function returns the allocated tokens on success, even when the * input string is empty, or NULL if the input contains unbalanced * quotes or closed quotes followed by non space characters * as in: "foo"bar or "foo' */ sds *sdssplitargs(const char *line, int *argc) { const char *p = line; char *current = NULL; char **vector = NULL; *argc = 0; while(1) { /* skip blanks */ while(*p && isspace(*p)) p++; if (*p) { /* get a token */ int inq=0; /* set to 1 if we are in "quotes" */ int insq=0; /* set to 1 if we are in 'single quotes' */ int done=0; if (current == NULL) current = sdsempty(); while(!done) { if (inq) { if (*p == '\\' && *(p+1) == 'x' && is_hex_digit(*(p+2)) && is_hex_digit(*(p+3))) { unsigned char byte; byte = (hex_digit_to_int(*(p+2))*16)+ hex_digit_to_int(*(p+3)); current = sdscatlen(current,(char*)&byte,1); p += 3; } else if (*p == '\\' && *(p+1)) { char c; p++; switch(*p) { case 'n': c = '\n'; break; case 'r': c = '\r'; break; case 't': c = '\t'; break; case 'b': c = '\b'; break; case 'a': c = '\a'; break; default: c = *p; break; } current = sdscatlen(current,&c,1); } else if (*p == '"') { /* closing quote must be followed by a space or * nothing at all. */ if (*(p+1) && !isspace(*(p+1))) goto err; done=1; } else if (!*p) { /* unterminated quotes */ goto err; } else { current = sdscatlen(current,p,1); } } else if (insq) { if (*p == '\\' && *(p+1) == '\'') { p++; current = sdscatlen(current,"'",1); } else if (*p == '\'') { /* closing quote must be followed by a space or * nothing at all. */ if (*(p+1) && !isspace(*(p+1))) goto err; done=1; } else if (!*p) { /* unterminated quotes */ goto err; } else { current = sdscatlen(current,p,1); } } else { switch(*p) { case ' ': case '\n': case '\r': case '\t': case '\0': done=1; break; case '"': inq=1; break; case '\'': insq=1; break; default: current = sdscatlen(current,p,1); break; } } if (*p) p++; } /* add the token to the vector */ vector = realloc(vector,((*argc)+1)*sizeof(char*)); vector[*argc] = current; (*argc)++; current = NULL; } else { /* Even on empty input string return something not NULL. */ if (vector == NULL) vector = malloc(sizeof(void*)); return vector; } } err: while((*argc)--) sdsfree(vector[*argc]); free(vector); if (current) sdsfree(current); *argc = 0; return NULL; } /* Modify the string substituting all the occurrences of the set of * characters specified in the 'from' string to the corresponding character * in the 'to' array. * * For instance: sdsmapchars(mystring, "ho", "01", 2) * will have the effect of turning the string "hello" into "0ell1". * * The function returns the sds string pointer, that is always the same * as the input pointer since no resize is needed. */ sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen) { size_t j, i, l = sdslen(s); for (j = 0; j < l; j++) { for (i = 0; i < setlen; i++) { if (s[j] == from[i]) { s[j] = to[i]; break; } } } return s; } /* Join an array of C strings using the specified separator (also a C string). * Returns the result as an sds string. */ sds sdsjoin(char **argv, int argc, char *sep, size_t seplen) { sds join = sdsempty(); int j; for (j = 0; j < argc; j++) { join = sdscat(join, argv[j]); if (j != argc-1) join = sdscatlen(join,sep,seplen); } return join; } /* Like sdsjoin, but joins an array of SDS strings. */ sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen) { sds join = sdsempty(); int j; for (j = 0; j < argc; j++) { join = sdscatsds(join, argv[j]); if (j != argc-1) join = sdscatlen(join,sep,seplen); } return join; } #ifdef SDS_TEST_MAIN #include #include "testhelp.h" int main(void) { { struct sdshdr *sh; sds x = sdsnew("foo"), y; test_cond("Create a string and obtain the length", sdslen(x) == 3 && memcmp(x,"foo\0",4) == 0) sdsfree(x); x = sdsnewlen("foo",2); test_cond("Create a string with specified length", sdslen(x) == 2 && memcmp(x,"fo\0",3) == 0) x = sdscat(x,"bar"); test_cond("Strings concatenation", sdslen(x) == 5 && memcmp(x,"fobar\0",6) == 0); x = sdscpy(x,"a"); test_cond("sdscpy() against an originally longer string", sdslen(x) == 1 && memcmp(x,"a\0",2) == 0) x = sdscpy(x,"xyzxxxxxxxxxxyyyyyyyyyykkkkkkkkkk"); test_cond("sdscpy() against an originally shorter string", sdslen(x) == 33 && memcmp(x,"xyzxxxxxxxxxxyyyyyyyyyykkkkkkkkkk\0",33) == 0) sdsfree(x); x = sdscatprintf(sdsempty(),"%d",123); test_cond("sdscatprintf() seems working in the base case", sdslen(x) == 3 && memcmp(x,"123\0",4) ==0) sdsfree(x); x = sdsnew("xxciaoyyy"); sdstrim(x,"xy"); test_cond("sdstrim() correctly trims characters", sdslen(x) == 4 && memcmp(x,"ciao\0",5) == 0) y = sdsdup(x); sdsrange(y,1,1); test_cond("sdsrange(...,1,1)", sdslen(y) == 1 && memcmp(y,"i\0",2) == 0) sdsfree(y); y = sdsdup(x); sdsrange(y,1,-1); test_cond("sdsrange(...,1,-1)", sdslen(y) == 3 && memcmp(y,"iao\0",4) == 0) sdsfree(y); y = sdsdup(x); sdsrange(y,-2,-1); test_cond("sdsrange(...,-2,-1)", sdslen(y) == 2 && memcmp(y,"ao\0",3) == 0) sdsfree(y); y = sdsdup(x); sdsrange(y,2,1); test_cond("sdsrange(...,2,1)", sdslen(y) == 0 && memcmp(y,"\0",1) == 0) sdsfree(y); y = sdsdup(x); sdsrange(y,1,100); test_cond("sdsrange(...,1,100)", sdslen(y) == 3 && memcmp(y,"iao\0",4) == 0) sdsfree(y); y = sdsdup(x); sdsrange(y,100,100); test_cond("sdsrange(...,100,100)", sdslen(y) == 0 && memcmp(y,"\0",1) == 0) sdsfree(y); sdsfree(x); x = sdsnew("foo"); y = sdsnew("foa"); test_cond("sdscmp(foo,foa)", sdscmp(x,y) > 0) sdsfree(y); sdsfree(x); x = sdsnew("bar"); y = sdsnew("bar"); test_cond("sdscmp(bar,bar)", sdscmp(x,y) == 0) sdsfree(y); sdsfree(x); x = sdsnew("aar"); y = sdsnew("bar"); test_cond("sdscmp(bar,bar)", sdscmp(x,y) < 0) sdsfree(y); sdsfree(x); x = sdsnewlen("\a\n\0foo\r",7); y = sdscatrepr(sdsempty(),x,sdslen(x)); test_cond("sdscatrepr(...data...)", memcmp(y,"\"\\a\\n\\x00foo\\r\"",15) == 0) { int oldfree; sdsfree(x); x = sdsnew("0"); sh = (void*) (x-(sizeof(struct sdshdr))); test_cond("sdsnew() free/len buffers", sh->len == 1 && sh->free == 0); x = sdsMakeRoomFor(x,1); sh = (void*) (x-(sizeof(struct sdshdr))); test_cond("sdsMakeRoomFor()", sh->len == 1 && sh->free > 0); oldfree = sh->free; x[1] = '1'; sdsIncrLen(x,1); test_cond("sdsIncrLen() -- content", x[0] == '0' && x[1] == '1'); test_cond("sdsIncrLen() -- len", sh->len == 2); test_cond("sdsIncrLen() -- free", sh->free == oldfree-1); } } test_report() return 0; } #endif ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/H/LICENSE0000644000175000017500000000246713431250607025437 0ustar brandonbrandonCopyright (c) 2006-2014, Salvatore Sanfilippo All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/DATS/0000755000175000017500000000000013431250607024765 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/DATS/sdstring.dats0000644000175000017500000000561613431250607027507 0ustar brandonbrandon(* ****** ****** *) (* ** For Simple Dynamic Strings: ** https://github.com/antirez/sds/ *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // staload "./../SATS/sdstring.sats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) %{$ // #include \ "atscntrb-hx-sdstring/H/sds.c" // %} // end of [%{$] (* ****** ****** *) // implement {}(*tmp*) sdstring_get_at_int (sds, i) = ( sdstring_get_at_size(sds, i2sz(i)) ) // implement {}(*tmp*) sdstring_get_at_size (sds, i) = let // val p0 = sdstring2ptr(sds) // in // if p0 > 0 then let val n = sdslen(sds) in if i < n then uchar2int0($UN.ptr0_get_at(p0, i)) else ~1 end // end of [then] else (~1) // end of [else] // end // end of [sdstring_get_at_size] // (* ****** ****** *) // implement {}(*tmp*) sdstring_set_at_int (sds, i, c) = ( sdstring_set_at_size(sds, i2sz(i), c) ) // implement {}(*tmp*) sdstring_set_at_size (sds, i, c) = let // val p0 = sdstring2ptr(sds) // in // if p0 > 0 then let val n = sdslen(sds) in if i < n then ( let val () = $UN.ptr0_set_at(p0, i, c) in 0 end ) (* end of [then] *) else (~1) // end of [else] // end of [if] end // end of [then] else (~1) // end of [else] // end // end of [sdstring_set_at_size] // (* ****** ****** *) implement {}(*tmp*) sdstring_foreach (sds) = let // var env: void = () in sdstring_foreach_env (sds, env) // end // end of [sdstring_foreach] (* ****** ****** *) implement {env}(*tmp*) sdstring_foreach_env (sds, env) = let // implement array_foreach$cont (x, env) = sdstring_foreach$cont(x, env) implement array_foreach$fwork (x, env) = sdstring_foreach$fwork(x, env) // val p0 = sdstring2ptr(sds) // in // if p0 > 0 then let // val n = sdslen(sds) val [n:int] n = g1ofg0(n) val (pf, fpf | p) = $UN.ptr_vtake{array(char, n)}(p0) // val res = array_foreach_env (!p, n, env) // prval () = fpf(pf) // in res end // end of [then] else i2sz(0) // end of [else] // end // end of [sdstring_foreach_env] (* ****** ****** *) // implement {env}(*tmp*) sdstring_foreach$cont(x, env) = true // (* ****** ****** *) (* end of [sdstring.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/.keeper0000644000175000017500000000000013431250607025474 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/TEST/0000755000175000017500000000000013431250607025011 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/TEST/test01.dats0000644000175000017500000000125013431250607027004 0ustar brandonbrandon(* ** For testing sdstring *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #include "./../mylibies.hats" #include "./../mylibies_link.hats" // #staload $SDSTRING // opening it! // (* ****** ****** *) implement main0((*void*)) = { // val foo = sdsnew("foo") val () = assertloc(ptrcast(foo) > the_null_ptr) // val () = println! ("foo = ", $UNSAFE.castvwtp1{string}(foo)) // val foobar = sdscat(foo, "bar") val () = assertloc(ptrcast(foobar) > the_null_ptr) // val () = println! ("foobar = ", $UNSAFE.castvwtp1{string}(foobar)) // val ((*freed*)) = sdsfree(foobar) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/TEST/Makefile0000644000175000017500000000140413431250607026450 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=${PATSHOME}/bin/patscc ###### # INCLATS += -I./../.. # #INCLATS += -I${PATSHOME}/contrib # ###### all:: ###### # all:: \ test01 test01: \ test01.dats; \ $(PATSCC) $(INCLATS) -o $@ $< # regress:: test01; ./$< cleanall:: ; $(RMF) test01 # ###### # all:: \ test02 test02: \ test02.dats; \ $(PATSCC) $(INCLATS) -o $@ $< # regress:: test02; ./$< cleanall:: ; $(RMF) test02 # ###### # all:: \ test03 test03: \ test03.dats; \ $(PATSCC) $(INCLATS) -o $@ $< # regress:: test03; ./$< cleanall:: ; $(RMF) test03 # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/TEST/test02.dats0000644000175000017500000000174413431250607027015 0ustar brandonbrandon(* ** For testing sdstring *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #include "./../mylibies.hats" #include "./../mylibies_link.hats" // #staload $SDSTRING // opening it! // (* ****** ****** *) implement main0((*void*)) = { // val foo = sdsnew("foo") val foo1 = sdsdup(foo) // val foo2 = sdscat(foo1, "foo") val foo3 = sdscatsds(foo2, foo) val () = println! ("foo3 = ", $UNSAFE.castvwtp1{string}(foo3)) // val bar3 = sdscpy(foo3, "barbarbar") val () = println! ("bar3 = ", $UNSAFE.castvwtp1{string}(bar3)) // val () = sdstoupper(bar3) val () = println! ("BAR3 = ", $UNSAFE.castvwtp1{string}(bar3)) // val () = sdstolower(bar3) val () = println! ("bar3 = ", $UNSAFE.castvwtp1{string}(bar3)) // val () = sdsmapchars(bar3, "bar", "foo", i2sz(3)) val () = println! ("bar3 = ", $UNSAFE.castvwtp1{string}(bar3)) // val ((*freed*)) = sdsfree(foo) val ((*freed*)) = sdsfree(bar3) // } (* end of [main0] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/TEST/test03.dats0000644000175000017500000000201513431250607027006 0ustar brandonbrandon(* ** For testing sdstring *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #include "./../mylibies.hats" #include "./../mylibies_link.hats" // #staload $SDSTRING // opening it! // (* ****** ****** *) implement main0((*void*)) = { // val foo = sdsnew("foo") val () = println! ("foo = ", $UNSAFE.castvwtp1{string}(foo)) // implement{env} sdstring_foreach$fwork(c, env) = c := toupper(c) // val n = sdstring_foreach(foo) val () = println! ("foo = ", $UNSAFE.castvwtp1{string}(foo)) val () = println! ("length(foo) = ", n) // #define i2c int2char0 // val () = assertloc (i2c(foo[0]) = 'F') val () = assertloc (i2c(foo[1]) = 'O') val () = assertloc (i2c(foo[2]) = 'O') // val () = assertloc (sdstring_set_at(foo, 0, 'f') = 0) val () = assertloc (sdstring_set_at(foo, 1, 'o') = 0) val () = assertloc (sdstring_set_at(foo, 2, 'o') = 0) val () = assertloc (sdstring_set_at(foo, 3, '?') < 0) // val ((*freed*)) = sdsfree(foo) // } (* end of [main0] *) (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/CATS/0000755000175000017500000000000013431250607024764 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/CATS/sdstring.cats0000644000175000017500000000532113431250607027476 0ustar brandonbrandon/* ** For Simple Dynamic Strings: ** https://github.com/antirez/sds/ */ /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ #ifndef SDSTRING_CATS #define SDSTRING_CATS /* ****** ****** */ #include \ "atscntrb-hx-sdstring/H/sds.h" /* ****** ****** */ #define \ atscntrb_sdstring_sdsnew sdsnew #define \ atscntrb_sdstring_sdsnewlen sdsnewlen /* ****** ****** */ #define \ atscntrb_sdstring_sdsempty sdsempty /* ****** ****** */ #define atscntrb_sdstring_sdsdup sdsdup /* ****** ****** */ #define atscntrb_sdstring_sdsfree sdsfree /* ****** ****** */ #define atscntrb_sdstring_sdscmp sdscmp /* ****** ****** */ #define atscntrb_sdstring_sdslen sdslen #define atscntrb_sdstring_sdsavail sdsavail /* ****** ****** */ #define \ atscntrb_sdstring_sdsgrowzero sdsgrowzero /* ****** ****** */ // #define \ atscntrb_sdstring_sdscat(sds, str) \ sdscat(sds, (const char*)str) #define \ atscntrb_sdstring_sdscatsds(sds1, sds2) \ sdscatsds(sds1, (const sds)sds2) #define \ atscntrb_sdstring_sdscatlen(sds, str, size) \ sdscatlen(sds, (const char*)str, size) /* fun sdscatrepr(sds0, string, size_t): sds0 fun sdscatprintf{ts:t@ype}(sds, fmt: string, ts): sds0 */ // /* ****** ****** */ // #define \ atscntrb_sdstring_sdscpy(sds, str) \ sdscpy(sds, (const char*)str) #define \ atscntrb_sdstring_sdscpylen(sds, str, size) \ sdscpylen(sds, (const char*)str, size) // /* ****** ****** */ #define atscntrb_sdstring_sdstrim sdstrim #define atscntrb_sdstring_sdsrange sdsrange /* ****** ****** */ #define atscntrb_sdstring_sdstolower sdstolower #define atscntrb_sdstring_sdstoupper sdstoupper /* ****** ****** */ #define \ atscntrb_sdstring_sdsfromlonglong sdsfromlonglong /* ****** ****** */ #define atscntrb_sdstring_sdsjoin sdsjoin #define atscntrb_sdstring_sdsjoinsds sdsjoinsds /* ****** ****** */ #define \ atscntrb_sdstring_sdsmapchars(sds, _from, _to, size) \ sdsmapchars(sds, (const char*)_from, (const char*)_to, size) /* ****** ****** */ #endif // end of [ifndef] /* ****** ****** */ /* end of [sdstring.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/SATS/0000755000175000017500000000000013431250607025004 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/SATS/sdstring.sats0000644000175000017500000001052713431250607027542 0ustar brandonbrandon(* ****** ****** *) (* ** For Simple Dynamic Strings: ** https://github.com/antirez/sds/ *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hanwen Wu (Summer 2014) ** Author: Hongwei Xi (February 2015) *) (* ****** ****** *) #define ATS_PACKNAME "ATSCNTRB.sdstring" // package name #define ATS_EXTERN_PREFIX "atscntrb_sdstring_" // prefix for external names (* ****** ****** *) %{# // #include \ "atscntrb-hx-sdstring/CATS/sdstring.cats" // %} // end of [%{#} (* ****** ****** *) // absvtype sds_vtype(l:addr) = ptr(l) // vtypedef sds(l:addr) = sds_vtype(l) // vtypedef sds0 = [l:addr] sds(l) vtypedef sds1 = [l:addr | l > null] sds(l) // (* ****** ****** *) // castfn sdstring2ptr {l:addr}(!sds(l)):<> ptr(l) // overload ptrcast with sdstring2ptr // (* ****** ****** *) // fun sdsnew(RD(string)): sds0 = "mac#%" // fun sdsnewlen{n:int} (arrayref(char, n), sizeLte(n)): sds0 = "mac#%" // (* ****** ****** *) fun sdsempty((*void*)): sds0 = "mac#%" (* ****** ****** *) fun sdsdup(sds: !sds0): sds0 = "mac#%" (* ****** ****** *) fun sdsfree (sds: sds0): void = "mac#%" (* ****** ****** *) fun sdscmp (!sds0, !sds0): int = "mac#%" (* ****** ****** *) fun sdslen(sds: !sds0): size_t = "mac#%" fun sdsavail(sds: !sds0): size_t = "mac#%" (* ****** ****** *) // fun sdsgrowzero(sds: sds0, len: size_t): sds0 = "mac#%" // (* ****** ****** *) // fun sdscat(sds: sds0, string): sds0 = "mac#%" fun sdscatsds(sds1: sds0, sds2: !sds0): sds0 = "mac#%" // fun sdscatlen {n:int} (sds0, arrayref(char, n), size_t(n)): sds0 = "mac#%" // (* fun sdscatlen(sds0, string, size_t): sds0 = "mac#%" fun sdscatrepr(sds0, string, size_t): sds0 = "mac#%" fun sdscatprintf{ts:t@ype}(sds, fmt: string, ts): sds0 = "mac#%" *) // (* ****** ****** *) // fun sdscpy(sds: sds0, string): sds0 = "mac#%" // fun sdscpylen {n:int} (sds0, arrayref(char, n), size_t(n)): sds0 = "mac#%" // (* ****** ****** *) // fun sdstrim{l:addr} (sds: !sds(l) >> _, string): void = "mac#%" fun sdsrange{l:addr} (sds: !sds(l) >> _, _beg: int, _end: int): void = "mac#%" // (* ****** ****** *) fun sdstolower{l:addr}(sds: !sds(l) >> _): void = "mac#%" fun sdstoupper{l:addr}(sds: !sds(l) >> _): void = "mac#%" (* ****** ****** *) fun sdsfromlonglong(inp: llint): sds0 = "mac#%" (* ****** ****** *) fun sdsjoin{n,n2:int} ( arrayref(string, n), int(n), sep: string(n2), size_t(n2) ) : sds0 = "mac#%" // end of [sdsjoin] fun sdsjoinsds{n,n2:int} ( sdss: !arrayptr(sds0, n), int(n), sep: string(n2), size_t(n2) ) : sds0 = "mac#%" // end of [sdsjoinsds] (* ****** ****** *) fun sdsmapchars{l:addr}{n:int} ( sds: !sds(l) >> _, _from: string(n), _to: string(n), size_t(n) ) : void = "mac#%" // end of [sdsmapchars] (* ****** ****** *) // // HX: Some extensions based on features in ATS // (* ****** ****** *) // fun{} sdstring_get_at_int (sds: !sds0, intGte(0)): int fun{} sdstring_get_at_size (sds: !sds0, i: size_t): int // overload [] with sdstring_get_at_int overload [] with sdstring_get_at_size // fun{} sdstring_set_at_int {l:addr}(sds: !sds(l) >> _, intGte(0), char): int(*err*) fun{} sdstring_set_at_size {l:addr}(sds: !sds(l) >> _, i: size_t, c: char): int(*err*) // symintr sdstring_set_at overload sdstring_set_at with sdstring_set_at_int overload sdstring_set_at with sdstring_set_at_size // (* ****** ****** *) // fun{ } sdstring_foreach {l:addr}(sds: !sds(l) >> _): size_t fun{ env:vt0p } sdstring_foreach_env {l:addr}(sds: !sds(l) >> _, env: &(env) >> _): size_t // end of [sdstring_foreach_env] // fun{env:vt0p} sdstring_foreach$cont (c: &char, env: &env): bool fun{env:vt0p} sdstring_foreach$fwork (c: &char >> _, env: &env): void // (* ****** ****** *) (* end of [sdstring.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-sdstring/README.md0000644000175000017500000000026113431250607025510 0ustar brandonbrandon# Simple Dynamic Strings ## Project Description An API in ATS for [simple dynamic strings](https://github.com/antirez/sds) by Salvatore Sanfilippo. ## The End of [README.md] ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/.keeper0000644000175000017500000000000013431250607021404 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/0000755000175000017500000000000013431250607024015 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/DATS/0000755000175000017500000000000013431250607024550 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/DATS/pcre.dats0000644000175000017500000001263513431250607026365 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for PCRE // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/pcre.sats" (* ****** ****** *) implement {}(*tmp*) pcre_match_string (code, subject) = let // val subject = g1ofg0(subject) // in // pcre_match_substring (code, subject, i2sz(0), length(subject)) // end // end of [pcre_match_string] (* ****** ****** *) implement {}(*tmp*) pcre_match_substring {n}{st,ln} ( code, subject, st, ln ) = ret where { // prval () = lemma_g1uint_param(st) prval () = lemma_g1uint_param(ln) // val extra = $UN.castvwtp0{pcreptr_extra(null)}(0) val subject2 = $UN.cast{arrayref(char, st+ln)}(subject) val length = sz2i(st+ln) and startoffset = sz2i(st) and options = 0u val ovector = $UN.cast{arrayref(int,0)}(0) val ret = pcre_exec (code, extra, subject2, length, startoffset, options, ovector, 0) prval ((*void*)) = pcre_free_study_null (extra) // } // end of [pcre_match_substring] (* ****** ****** *) implement pcre_match2_substring {n}{st,ln} ( code, subject, st, ln , matched_beg, matched_end ) = ret where { // prval () = lemma_g1uint_param (st) prval () = lemma_g1uint_param (ln) // val extra = $UN.castvwtp0{pcreptr_extra(null)}(0) val subject2 = $UN.cast{arrayref(char, st+ln)}(subject) val length = sz2i(st+ln) val startoffset = sz2i(st) val options = 0u var int3 = @[int][48]() // HX: is [16] adequate? val ovector = $UN.cast{arrayref(int,48)}(addr@int3) val ret = pcre_exec ( code, extra, subject2, length, startoffset, options, ovector, 48 ) (* end of [val] *) prval ((*void*)) = pcre_free_study_null (extra) // val [n0:int] _beg = ( if ret >= 0 then $UN.cast{Int}(int3.[0]) else ~1 ) : Int // end of [val] val [n1:int] _end = ( if ret >= 0 then $UN.cast{Int}(int3.[1]) else ~1 ) : Int // end of [val] // val () = matched_beg := _beg and () = matched_end := _end prval ( ) = __assert () where { extern praxi __assert (): [n0 <= n1; n1 <= st+ln] void } (* end of [prval] *) // } (* end of [pcre_match2_substring] *) (* ****** ****** *) local #define BSZ 16 #define BSZ3 48 vtypedef res_vt = List0_vt(Strptr0) extern fun memcpy ( ptr, ptr, size_t ) : ptr = "mac#atscntrb_hx_pcre_memcpy" // end of [memcpy] fun auxlst ( subject: string , p0: ptr, ret: int ) : res_vt = let // fun aux ( b: int, e: int ) : Strptr0 = let // val n = $UN.cast{Size}(e-b) val n1 = g1uint_succ_size (n) val (pf, pfgc | p) = malloc_gc (n1) // val p = memcpy (p, ptr_add(string2ptr(subject), b), n) // val p_n = ptr_add (p, n) val ((*void*)) = $UN.ptr0_set (p_n, '\000') // in $UN.castvwtp0((pf, pfgc | p)) end // end of [aux] // val ret1 = ( if ret = 0 then BSZ-1 else ret-1 ) : int // end of [ret1] val p2 = ptr_add (p0, 2) // fun loop ( p: ptr, i: int, res: &ptr? >> res_vt ) : void = if i < ret1 then let val b = $UN.ptr0_get (p) val p = ptr_succ (p) val e = $UN.ptr0_get (p) val p = ptr_succ (p) val be = ( if b >= 0 then aux (b, e) else strptr_null () // end of [if] ) : Strptr0 // end of [val] val () = res := list_vt_cons{Strptr0}{0}(be, _) val+list_vt_cons (_, res1) = res val ((*void*)) = loop (p, i+1, res1) in fold@ (res) end else ( res := list_vt_nil(*void*) ) (* end of [if] *) // var res: ptr val () = loop (p2, 0, res) // in res end // end of [auxlst] in (* in of [local] *) implement pcre_match3_substring {n}{st,ln} ( code, subject, st, ln , matched_beg, matched_end, err ) = let // prval () = lemma_g1uint_param(st) prval () = lemma_g1uint_param(ln) // val extra = $UN.castvwtp0{pcreptr_extra(null)}(0) val subject2 = $UN.cast{arrayref(char, st+ln)}(subject) // val length = sz2i(st+ln) val startoffset = sz2i(st) val options = 0u var int3 = @[int][BSZ3]() // HX: is [16] adequate? val ovector = $UN.cast{arrayref(int,BSZ3)}(addr@int3) val ret = pcre_exec ( code, extra, subject2, length, startoffset, options, ovector, BSZ3 ) (* end of [val] *) prval ((*void*)) = pcre_free_study_null (extra) // val () = err := ret // val [n0:int] _beg = ( if ret >= 0 then $UN.cast{Int}(int3.[0]) else ~1 ) : Int // end of [val] val [n1:int] _end = ( if ret >= 0 then $UN.cast{Int}(int3.[1]) else ~1 ) : Int // end of [val] // val () = matched_beg := _beg and () = matched_end := _end // prval () = __assert() where { extern praxi __assert(): [n0 <= n1; n1 <= st+ln] void } (* end of [prval] *) // in if ret >= 0 then auxlst(subject, addr@int3, ret) else list_vt_nil(*void*) end // end of [pcre_match3_substring] end // end of [local] (* ****** ****** *) (* end of [pcre.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/DATS/pcre_ML.dats0000644000175000017500000001163713431250607026756 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for PCRE // A quasi ML-style API in ATS for pcre // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/pcre.sats" staload "./../SATS/pcre_ML.sats" (* ****** ****** *) implement {}(*tmp*) regstr_match_string (regstr, subject) = let // val subject = g1ofg0(subject) // in // regstr_match_substring (regstr, subject, i2sz(0), length(subject)) // end // end of [regstr_match_string] (* ****** ****** *) implement {}(*tmp*) regstr_match_substring (regstr, subject, st, ln) = let // var errptr: ptr var erroffset: int val tableptr = the_null_ptr // val code = pcre_compile (regstr, 0u, errptr, erroffset, tableptr) // val p_code = pcreptr2ptr(code) // in // if (p_code > 0) then rets where { val rets = pcre_match_substring (code, subject, st, ln) // end of [val] val ((*freed*)) = pcre_free(code) } else let prval ((*freed*)) = pcre_free_null(code) in ~1(*PCRE_ERROR_NOMATCH*) end // end of [if] // end // end of [regstr_match_substring] (* ****** ****** *) implement {}(*tmp*) regstr_match2_string ( regstr, subject, matched_beg, matched_end ) = let in // regstr_match2_substring ( regstr, subject , i2sz(0), length(subject), matched_beg, matched_end ) (* regstr_match2_substring *) // end // end of [regstr_match2_string] (* ****** ****** *) implement {}(*tmp*) regstr_match2_substring ( regstr, subject, st, ln , matched_beg, matched_end ) = let // prval () = lemma_g1uint_param(st) prval () = lemma_g1uint_param(ln) // var errptr: ptr var erroffset: int val tableptr = the_null_ptr // val code = pcre_compile (regstr, 0u, errptr, erroffset, tableptr) // val p_code = pcreptr2ptr(code) // in // if (p_code > 0) then rets where { val rets = pcre_match2_substring (code, subject, st, ln, matched_beg, matched_end) // end of [val] val ((*freed*)) = pcre_free(code) } else let val () = matched_beg := ~1 and () = matched_end := ~1 prval ((*freed*)) = pcre_free_null(code) in ~1(*PCRE_ERROR_NOMATCH*) end // end of [if] // end // end of [regstr_match2_substring] (* ****** ****** *) implement {}(*tmp*) regstr_match3_string ( regstr, subject , matched_beg, matched_end, err ) = let // val st = i2sz(0) and ln = length(subject) // in // regstr_match3_substring ( regstr, subject, st, ln, matched_beg, matched_end, err ) (* regstr_match3_substring *) // end // end of [regstr_match3_string] (* ****** ****** *) implement {}(*tmp*) regstr_match3_substring ( regstr, subject, st, ln , matched_beg, matched_end, err ) = let // prval () = lemma_g1uint_param (st) prval () = lemma_g1uint_param (ln) // var errptr: ptr var erroffset: int val tableptr = the_null_ptr // val code = pcre_compile (regstr, 0u, errptr, erroffset, tableptr) // val p_code = pcreptr2ptr(code) // in // if (p_code > 0) then rets where { val rets = pcre_match3_substring (code, subject, st, ln, matched_beg, matched_end, err) // end of [val] val ((*freed*)) = pcre_free(code) } else let val () = err := ~1 val () = matched_beg := ~1 and () = matched_end := ~1 prval ((*freed*)) = pcre_free_null(code) in list_vt_nil((*void*)) end // end of [if] // end // end of [regstr_match3_substring] (* ****** ****** *) implement {}(*tmp*) regstr_match3_string_easy (regstr, subject) = let // val subject = g1ofg0(subject) // in regstr_match3_substring_easy(regstr, subject, i2sz(0), length(subject)) end // end of [regstr_match3_string_easy] (* ****** ****** *) implement {}(*tmp*) regstr_match3_substring_easy (regstr, subject, st, ln) = let // var _beg_: int and _end_: int var _err_: int // val rets = regstr_match3_substring (regstr, subject, st, ln, _beg_, _end_, _err_) // in // if (_err_ >= 0) then Some_vt(rets) else None_vt(*void*) where { val () = loop(rets) where { fun loop(xs: List_vt(Strptr0)): void = ( case+ xs of | ~list_vt_nil() => () | ~list_vt_cons(x, xs) => (strptr_free(x); loop(xs)) ) } (* end of [val] *) } (* end of [else] *) // end // end of [regstr_match3_string_easy] (* ****** ****** *) (* end of [pcre_ML.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/mylibies.hats0000644000175000017500000000052113431250607026511 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-29: // For downstream staloading // (* ****** ****** *) // #staload PCRE = "./SATS/pcre.sats" #staload PCRE_ML = "./SATS/pcre_ML.sats" // (* ****** ****** *) // #staload _(*PCRE*) = "./DATS/pcre.dats" #staload _(*PCRE_ML*) = "./DATS/pcre_ML.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/.keeper0000644000175000017500000000000013431250607025257 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/TEST/0000755000175000017500000000000013431250607024574 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/TEST/test01.dats0000644000175000017500000000170313431250607026572 0ustar brandonbrandon(* ****** ****** *) // // Some code for testing the API in ATS for pcre // (* ****** ****** *) (* ##myatsccdef=\ patscc \ -I./../.. \ -DATS_MEMALLOC_LIBC \ -o $fname($1) $1 -lpcre *) (* ****** ****** *) #include "share/atspre_staload.hats" (* ****** ****** *) #include "./../mylibies.hats" #staload $PCRE_ML // opening it (* ****** ****** *) // #include "./../mylibies_link.hats" // (* ****** ****** *) implement main0 () = () where { // val ret0 = regstr_match_string ("http", "http://www.ats-lang.org") val () = println! ("ret0 = ", ret0) // val ret0_2 = regstr_match_string ("^http", "http://www.ats-lang.org") val () = println! ("ret0_2 = ", ret0_2) // val ret1 = regstr_match_string ("ats-lang", "http://www.ats-lang.org") val () = println! ("ret1 = ", ret1) // val ret1_2 = regstr_match_string ("^ats-lang", "http://www.ats-lang.org") val () = println! ("ret1_2 = ", ret1_2) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/TEST/test00.dats0000644000175000017500000000050213431250607026565 0ustar brandonbrandon// // Some code for testing the API in ATS for pcre // (* ****** ****** *) staload "./../SATS/pcre.sats" (* ****** ****** *) val () = { // val () = println! ("The pcre version is ", pcre_version ()) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [test00.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/TEST/test06.dats0000644000175000017500000000264513431250607026605 0ustar brandonbrandon(* ****** ****** *) // // Some code for // testing the API in ATS for pcre // (* ****** ****** *) (* ##myatsccdef=\ patscc -I./../.. \ -DATS_MEMALLOC_LIBC -o $fname($1) $1 -latslib -lpcre *) (* ****** ****** *) #include "share/atspre_staload.hats" (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #include "./../mylibies.hats" #staload $PCRE_ML // opening it (* ****** ****** *) // staload "libats/libc/SATS/dirent.sats" // staload _(*anon*) = "libats/libc/DATS/dirent.dats" // (* ****** ****** *) // #include "./../mylibies_link.hats" // (* ****** ****** *) val () = { // val dirp = opendir_exn (".") // val dents = streamize_DIRptr_dirent(dirp) // val names = stream_vt_map_cloptr (dents, lam(x) => dirent_get_d_name_gc(x)) // local implement(a) stream_vt_filterlin$pred(x) = $effmask_all ( 0 = regstr_match_string ("^test\\d{2}\\.dats$", $UN.castvwtp1{string}(x)) ) (* stream_vt_filterlin$pred *) // implement(a) stream_vt_filterlin$clear(x) = free($UN.castvwtp0{Strptr1}(x)) in val names = stream_vt_filterlin(names) end // end of [val] // val ((*void*)) = stream_vt_foreach_cloptr ( names , lam(x) => let val x = x in println! ("streamize: ", $UN.strptr2string(x)); free(x) end // end of [let] ) (* stream_vt_foreach_cloptr *) // } (* end of [val] *) (* ****** ****** *) implement main0() = () (* ****** ****** *) (* end of [test06.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/TEST/test05.dats0000644000175000017500000000333513431250607026601 0ustar brandonbrandon(* ****** ****** *) // // Some code for // testing the API in ATS for pcre // (* ****** ****** *) (* ##myatsccdef=\ patscc -I./../.. \ -DATS_MEMALLOC_LIBC -o $fname($1) $1 -latslib -lpcre *) (* ****** ****** *) #include "share/atspre_staload.hats" (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #include "./../mylibies.hats" // #staload $PCRE // opening it #staload $PCRE_ML // opening it // (* ****** ****** *) // #include "./../mylibies_link.hats" // (* ****** ****** *) extern fun mygrep (inp: FILEref, out: FILEref, regstr: string): void // end of [mygrep] (* ****** ****** *) implement mygrep (inp, out, regstr) = let // fun loop ( regexp: !pcreptr1, nline: int ) : void = let // val isnot = fileref_isnot_eof (inp) // in if isnot then let val line = fileref_get_line_string (inp) val nret = pcre_match_string (regexp, $UN.strptr2string(line)) val () = if nret >= 0 then fprintln! (out, "line(", nline, "): ", line) val () = strptr_free (line) in loop (regexp, nline+1) end else () // end of [if] end // end of [loop] // var errptr: ptr var erroffset: int val tableptr = the_null_ptr val regexp = pcre_compile (regstr, 0u, errptr, erroffset, tableptr) // val p0 = ptrcast (regexp) // in // if p0 > 0 then let val () = loop (regexp, 1(*nline*)) val () = pcre_free (regexp) in // nothing end else let prval () = pcre_free_null (regexp) in // nothing end // end of [if] // end // end of [mygrep] (* ****** ****** *) implement main0 (argc, argv) = { // val inp = stdin_ref val out = stdout_ref // val regstr = (if argc >= 2 then argv[1] else ""): string val () = mygrep (inp, out, regstr) } (* end of [main0] *) (* ****** ****** *) (* end of [test05.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/TEST/Makefile0000644000175000017500000000307713431250607026243 0ustar brandonbrandon###### # # A simple Makefile # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### all:: regress:: cleanall:: ###### INCLUDE=./../.. ###### all:: \ test00 test00: \ test00.dats ; $(PATSCC) -I$(INCLUDE) -o $@ $< -lpcre regress:: test00; ./$< cleanall:: ; $(RMF) test00 ###### all:: \ test01 test01: \ test01.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -I$(INCLUDE) -o $@ $< -lpcre regress:: test01; ./$< cleanall:: ; $(RMF) test01 ###### # all:: \ test02 test02: test02.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -I$(INCLUDE) -o $@ $< -lpcre # regress:: test02; ./$< cleanall:: ; $(RMF) test02 # ###### # all:: \ test03 test03: test03.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -I$(INCLUDE) -o $@ $< -lpcre # regress:: test03; ./$< cleanall:: ; $(RMF) test03 # ###### # all:: \ test04 test04: \ test04.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -I$(INCLUDE) -o $@ $< -lpcre # regress:: test04; ./$< cleanall:: ; $(RMF) test04 # ###### # all:: \ test05 test05: \ test05.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -I$(INCLUDE) -o $@ $< -latslib -lpcre # regress:: \ test05 ; \ cat test05.dats | ./test05 # cleanall:: ; $(RMF) test05 # ###### # all:: \ test06 test06: \ test06.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -I$(INCLUDE) -o $@ $< -latslib -lpcre # regress:: \ test06 ; \ cat test06.dats | ./test06 # cleanall:: ; $(RMF) test06 # ###### RMF=rm -f ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/TEST/test02.dats0000644000175000017500000000204513431250607026573 0ustar brandonbrandon(* ****** ****** *) // // Some code for testing the API in ATS for pcre // (* ****** ****** *) (* ##myatsccdef=\ patscc \ -I./../.. \ -DATS_MEMALLOC_LIBC \ -o $fname($1) $1 -lpcre *) (* ****** ****** *) #include "share/atspre_staload.hats" (* ****** ****** *) #include "./../mylibies.hats" #staload $PCRE_ML // opening it (* ****** ****** *) // #include "./../mylibies_link.hats" // (* ****** ****** *) implement main0 () = () where { // val str = "http://www.ats-lang.org" // val ret0 = regstr_match_string ("\\..*\\.", str) val () = println! ("ret0 = ", ret0) // var ibeg: int and iend: int val ret0_2 = regstr_match2_string ("\\..*\\.", str, ibeg, iend) // val () = println! ("ret0_2 = ", ret0_2) val () = println! ("ibeg = ", ibeg, " and iend = ", iend) // val () = assertloc (ibeg >= 0) // val str2 = string_make_substring (str, i2sz(ibeg), i2sz(iend-ibeg)) val str2 = strnptr2strptr (str2) val ((*void*)) = println! ("str2 = ", str2) // val ((*void*)) = strptr_free (str2) // } (* end of [main0] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/TEST/test04.dats0000644000175000017500000000250613431250607026577 0ustar brandonbrandon(* ****** ****** *) // // Some code for // testing the API in ATS for pcre // (* ****** ****** *) (* ##myatsccdef=\ patscc -I./../.. \ -DATS_MEMALLOC_LIBC -o $fname($1) $1 -lpcre *) (* ****** ****** *) #include "share/atspre_staload.hats" (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) #include "./../mylibies.hats" #staload $PCRE_ML // opening it (* ****** ****** *) // #include "./../mylibies_link.hats" // (* ****** ****** *) fun tally ( subject: string ) : int = let // val regstr = "(-?[0-9]+)" // fun loop ( p: ptr, sum: int ) : int = let var _beg: int and _end: int var err: int val res = regstr_match3_string (regstr, $UN.cast{String}(p), _beg, _end, err) in // case+ res of | ~list_vt_nil () => sum | ~list_vt_cons (x, res) => let val-~list_vt_nil () = res val () = assertloc (strptr2ptr(x) > 0) val int = g0string2int ($UN.strptr2string(x)) val () = strptr_free (x) in loop (ptr_add (p, _end), sum + int) end // end of [loop] // end // end of [loop] // in loop (string2ptr(subject), 0) end // end of [tally] (* ****** ****** *) implement main0 () = () where { // val subject0 = "-1,2,-3,4,-5,6,-7,8,-9,10" // val () = println! ("tally(", subject0, ") = ", tally(subject0)) // } (* end of [main0] *) (* ****** ****** *) (* end of [test04.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/TEST/test03.dats0000644000175000017500000000327013431250607026575 0ustar brandonbrandon(* ****** ****** *) // // Some code for testing the API in ATS for pcre // (* ****** ****** *) (* ##myatsccdef=\ patscc \ -I./../.. \ -DATS_MEMALLOC_LIBC \ -o $fname($1) $1 -lpcre *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #include "./../mylibies.hats" #staload $PCRE_ML // opening it (* ****** ****** *) // #include "./../mylibies_link.hats" // (* ****** ****** *) implement main0 () = () where { // val locstr = "\ /home/hwxi/research/Postiats/git/doc/PROJECT/SMALL/UTFPL/parsing/TEST/test01.dats\ : 119(line=11, offs=1) -- 171(line=12, offs=38)\ " // end of [val] // val ret0 = regstr_match_string (": [0-9]+\\(line=[0-9]+, offs=[0-9]+\\) -- [0-9]+\\(line=[0-9]+, offs=[0-9]+\\)$", locstr) val () = println! ("ret0 = ", ret0) // var err: int var mbeg: int and mend: int val res = regstr_match3_string (": ([0-9]+)\\(line=([0-9]+), offs=([0-9]+)\\) -- ([0-9]+)\\(line=([0-9]+), offs=([0-9]+)\\)$", locstr, mbeg, mend, err) // val () = println! ("err = ", err) // val-~cons_vt (ntot0, res) = res val-~cons_vt (line0, res) = res val-~cons_vt (offs0, res) = res val-~cons_vt (ntot1, res) = res val-~cons_vt (line1, res) = res val-~cons_vt (offs1, res) = res val-~list_vt_nil ((*void*)) = res // val () = println! ("ntot0 = ", ntot0) val () = println! ("line0 = ", line0) val () = println! ("offs0 = ", offs0) val () = println! ("ntot1 = ", ntot1) val () = println! ("line1 = ", line1) val () = println! ("offs1 = ", offs1) // val () = strptr_free (ntot0) val () = strptr_free (line0) val () = strptr_free (offs0) val () = strptr_free (ntot1) val () = strptr_free (line1) val () = strptr_free (offs1) // } (* end of [main0] *) (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/CATS/0000755000175000017500000000000013431250607024547 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/CATS/pcre.cats0000644000175000017500000000433313431250607026357 0ustar brandonbrandon/* ****** ****** */ // // API in ATS for PCRE // /* ****** ****** */ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: August, 2013 *) */ /* ****** ****** */ #ifndef ATSCNTRB_HX_LIBPCRE_PCRE_CATS #define ATSCNTRB_HX_LIBPCRE_PCRE_CATS /* ****** ****** */ // #include // #include // /* ****** ****** */ typedef unsigned char uchar ; /* ****** ****** */ #define \ atscntrb_hx_pcre_memcpy memcpy /* ****** ****** */ #define \ atscntrb_hx_pcre_pcre_version() ((char*)(pcre_version())) /* ****** ****** */ #define \ atscntrb_hx_pcre_pcre_compile(code, options, errptr, erroffset, tableptr) \ pcre_compile(code, (int)options, (const char**)errptr, (int*)erroffset, (const uchar*)tableptr) #define \ atscntr_pcre_pcre_compile2(code, options, errorcodeptr, errptr, erroffset, tableptr) \ pcre_compile2(code, (int)options, (int*)errorcodeptr, (const char**)errptr, (int*)erroffset, (const uchar*)tableptr) /* ****** ****** */ #define \ atscntrb_hx_pcre_pcre_free pcre_free /* ****** ****** */ #define \ atscntrb_hx_pcre_pcre_study pcre_study #define \ atscntrb_hx_pcre_pcre_free_study pcre_free_study /* ****** ****** */ #define \ atscntrb_hx_pcre_pcre_exec pcre_exec /* ****** ****** */ #endif // end of [ifndef(ATSCNTRB_HX_LIBPCRE_PCRE_CATS)] /* ****** ****** */ /* end of [pcre.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/0000755000175000017500000000000013431250607024567 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/pcre_ML.sats0000644000175000017500000000535113431250607027010 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for PCRE // A quasi ML-style API in ATS for pcre // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.pcre_ML" #define ATS_EXTERN_PREFIX "atscntrb_hx_pcre_ML_" // prefix for external names // (* ****** ****** *) staload "./pcre.sats" (* ****** ****** *) // fun{} regstr_match_string (regstr: string, subject: string): int // fun{} regstr_match_substring {n:int} {st,ln:int|st+ln <= n} ( regstr: string , subject: string(n), st: size_t st, ln: size_t ln ) : int // end of [regstr_match_substring] // (* ****** ****** *) // fun{} regstr_match2_string{n:int} ( regstr: string , subject: string(n) , matched_beg: &int? >> int(n0) , matched_end: &int? >> int(n1) ) : #[n0,n1:int | n0 <= n1; n1 <= n] int // end-of-fun // fun{} regstr_match2_substring {n:int} {st,ln:int|st+ln <= n} ( regstr: string , subject: string(n) , st: size_t st, ln: size_t ln , matched_beg: &int? >> int(n0) , matched_end: &int? >> int(n1) ) : #[n0,n1:int | n0 <= n1; n1 <= st+ln] int // end-of-fun // (* ****** ****** *) // fun{} regstr_match3_string {n:int} ( regstr: string , subject: string(n) , matched_beg: &int? >> int(n0) , matched_end: &int? >> int(n1), err: &int? >> int ) : #[n0,n1:int|n0 <= n1; n1 <= n] List0_vt(Strptr0) // fun{} regstr_match3_substring {n:int} {st,ln:int|st+ln <= n} ( regstr: string , subject: string(n) , st: size_t st, ln: size_t ln , matched_beg: &int? >> int(n0) , matched_end: &int? >> int(n1), err: &int? >> int ) : #[n0,n1:int|n0 <= n1; n1 <= st+ln] List0_vt(Strptr0) // (* ****** ****** *) // fun{} regstr_match3_string_easy ( regstr: string , subject: string): Option_vt(List0_vt(Strptr0)) fun{} regstr_match3_substring_easy {n:int}{st,ln:int|st+ln <= n} ( regstr: string , subject: string(n) , st: size_t st, ln: size_t ln): Option_vt(List0_vt(Strptr0)) // (* ****** ****** *) (* end of [pcre_ML.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/pcre.sats0000644000175000017500000001511713431250607026421 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for PCRE // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start time: December, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // %{# // #include \ "atscntrb-hx-libpcre/CATS/pcre.cats" // %} // end of [%{#] // (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.pcre" #define ATS_EXTERN_PREFIX "atscntrb_hx_pcre_" // prefix for external names // (* ****** ****** *) // /* const char *pcre_version( void ) ; */ fun pcre_version((*void*)): string = "mac#%" // (* ****** ****** *) // absvtype pcreptr (l:addr) = ptr // vtypedef pcreptr0 = [l:agez] pcreptr (l) vtypedef pcreptr1 = [l:addr | l > null] pcreptr (l) // (* ****** ****** *) // absvtype pcreptr_extra (l:addr) = ptr // vtypedef pcreptr0_extra = [l:agez] pcreptr_extra (l) vtypedef pcreptr1_extra = [l:addr | l > null] pcreptr_extra (l) // (* ****** ****** *) // castfn pcreptr2ptr {l:addr} (!pcreptr (l)): ptr (l) castfn pcreptr2ptr_extra {l:addr} (!pcreptr_extra (l)): ptr (l) // overload ptrcast with pcreptr2ptr overload ptrcast with pcreptr2ptr_extra // (* ****** ****** *) /* pcre *pcre_compile ( const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr ) ; */ fun pcre_compile ( pattern: RD(string) , options: uint(*bits*) , errptr: &ptr? >> ptr, erroffset: &int? >> int, tableptr: ptr ) : pcreptr0 = "mac#%" // end of [pcre_compile] (* ****** ****** *) /* pcre *pcre_compile2 ( const char *pattern, int options, int *errorcodeptr, const char **errptr, int *erroffset, const unsigned char *tableptr ) ; */ fun pcre_compile2 ( pattern: RD(string) , options: uint(*bits*) , errorcodeptr: &int? >> int , errptr: &ptr? >> ptr, erroffset: &int? >> int, tableptr: ptr ) : pcreptr0 = "mac#%" // end of [pcre_compile2] (* ****** ****** *) fun pcre_free (code: pcreptr0): void = "mac#%" praxi pcre_free_null (code: pcreptr (null)): void (* ****** ****** *) /* pcre_extra* pcre_study ( const pcre *code, int options, const char **errptr ) ; // pcre_study */ fun pcre_study ( pcre: !pcreptr1, options: uint, errptr: &ptr? >> ptr ) : pcreptr0_extra = "mac#%" (* ****** ****** *) /* void pcre_free_study(pcre_extra *extra); */ fun pcre_free_study (extra: pcreptr0_extra): void = "mac#%" praxi pcre_free_study_null (extra: pcreptr_extra (null)): void (* ****** ****** *) macdef PCRE_ERROR_NOMATCH = $extval(int, "PCRE_ERROR_NOMATCH") // (-1) macdef PCRE_ERROR_NULL = $extval(int, "PCRE_ERROR_NULL") // (-2) macdef PCRE_ERROR_BADOPTION = $extval(int, "PCRE_ERROR_BADOPTION") // (-3) macdef PCRE_ERROR_BADMAGIC = $extval(int, "PCRE_ERROR_BADMAGIC") // (-4) macdef PCRE_ERROR_UNKNOWN_OPCODE = $extval(int, "PCRE_ERROR_UNKNOWN_OPCODE") // (-5) (* macdef PCRE_ERROR_UNKNOWN_NODE = $extval(int, "PCRE_ERROR_UNKNOWN_NODE") // (-5) /* For backward compatibility */ *) macdef PCRE_ERROR_NOMEMORY = $extval(int, "PCRE_ERROR_NOMEMORY") // (-6) macdef PCRE_ERROR_NOSUBSTRING = $extval(int, "PCRE_ERROR_NOSUBSTRING") // (-7) macdef PCRE_ERROR_MATCHLIMIT = $extval(int, "PCRE_ERROR_MATCHLIMIT") // (-8) macdef PCRE_ERROR_CALLOUT = $extval(int, "PCRE_ERROR_CALLOUT") // (-9) /* Never used by PCRE itself */ macdef PCRE_ERROR_BADUTF8 = $extval(int, "PCRE_ERROR_BADUTF8") // (-10) macdef PCRE_ERROR_BADUTF8_OFFSET = $extval(int, "PCRE_ERROR_BADUTF8_OFFSET") // (-11) macdef PCRE_ERROR_PARTIAL = $extval(int, "PCRE_ERROR_PARTIAL") // (-12) macdef PCRE_ERROR_BADPARTIAL = $extval(int, "PCRE_ERROR_BADPARTIAL") // (-13) macdef PCRE_ERROR_INTERNAL = $extval(int, "PCRE_ERROR_INTERNAL") // (-14) macdef PCRE_ERROR_BADCOUNT = $extval(int, "PCRE_ERROR_BADCOUNT") // (-15) macdef PCRE_ERROR_DFA_UITEM = $extval(int, "PCRE_ERROR_DFA_UITEM") // (-16) macdef PCRE_ERROR_DFA_UCOND = $extval(int, "PCRE_ERROR_DFA_UCOND") // (-17) macdef PCRE_ERROR_DFA_UMLIMIT = $extval(int, "PCRE_ERROR_DFA_UMLIMIT") // (-18) macdef PCRE_ERROR_DFA_WSSIZE = $extval(int, "PCRE_ERROR_DFA_WSSIZE") // (-19) macdef PCRE_ERROR_DFA_RECURSE = $extval(int, "PCRE_ERROR_DFA_RECURSE") // (-20) macdef PCRE_ERROR_RECURSIONLIMIT = $extval(int, "PCRE_ERROR_RECURSIONLIMIT") // (-21) macdef PCRE_ERROR_NULLWSLIMIT = $extval(int, "PCRE_ERROR_NULLWSLIMIT") // (-22) /* No longer actually used */ macdef PCRE_ERROR_BADNEWLINE = $extval(int, "PCRE_ERROR_BADNEWLINE") // (-23) macdef PCRE_ERROR_BADOFFSET = $extval(int, "PCRE_ERROR_BADOFFSET") // (-24) macdef PCRE_ERROR_SHORTUTF8 = $extval(int, "PCRE_ERROR_SHORTUTF8") // (-25) (* ****** ****** *) /* int pcre_exec ( const pcre *code, const pcre_extra *extra, const char *subject, int length, int startoffset, int options, int *ovector, int ovecsize ) ; */ fun pcre_exec{n,n2:int} ( code: !pcreptr1, extra: !pcreptr0_extra , subject: arrayref(char, n), length: int n , startoffset: natLte(n), options: uint(*bits*) , ovector: arrayref(int, n2), ovecsize: int(n2) ) : int = "mac#%" // end of [pcre_exec] (* ****** ****** *) // // HX-2013-12: some convenience functions // (* ****** ****** *) // fun{} pcre_match_string (code: !pcreptr1, subject: string): int fun{} pcre_match_substring {n:int}{st,ln:int | st+ln <= n} ( code: !pcreptr1 , subject: string(n), st: size_t(st), ln: size_t(ln) ) : int // end of [pcre_match_substring] // (* ****** ****** *) // fun pcre_match2_substring {n:int}{st,ln:int | st+ln <= n} ( code: !pcreptr1 , subject: string(n), st: size_t(st), ln: size_t(ln) , matched_beg: &int? >> int(n0), matched_end: &int? >> int(n1) ) : #[n0,n1:int | n0 <= n1; n1 <= st+ln] int // (* ****** ****** *) // fun pcre_match3_substring {n:int}{st,ln:int | st+ln <= n} ( code: !pcreptr1 , subject: string(n), st: size_t(st), ln: size_t(ln) , matched_beg: &int? >> int(n0), matched_end: &int? >> int(n1), err: &int? >> int ) : #[n0,n1:int | n0 <= n1; n1 <= st+ln] List0_vt(Strptr0) // (* ****** ****** *) (* end of [pcre.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/DOCUGEN/0000755000175000017500000000000013431250607025653 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/DOCUGEN/pcre.atxt0000644000175000017500000000263613431250607027515 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../pcre.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_pcre_pcre") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/pcre/pcre\ ") (* ****** ****** *) #declpreamble('\ #para('\ This package contains an API in ATS for the pcre package.\ ') ')#comment("declpreamble") (* ****** ****** *) #declnamesynop("pcreptr") #declnamesynop("pcreptr0") #declnamesynop("pcreptr1") (* ****** ****** *) #declnamesynop("pcreptr_extra") #declnamesynop("pcreptr0_extra") #declnamesynop("pcreptr1_extra") (* ****** ****** *) #declnamesynop("pcreptr2ptr") #declnamesynop("pcreptr2ptr_extra") (* ****** ****** *) #declnamesynop("pcre_compile") #declnamesynop("pcre_compile2") (* ****** ****** *) #declnamesynop("pcre_free") (* ****** ****** *) #declnamesynop("pcre_study") (* ****** ****** *) #declnamesynop("pcre_free_study") (* ****** ****** *) #declnamesynop("pcre_exec") (* ****** ****** *) #declnamesynop("pcre_match_string") #declnamesynop("pcre_match_substring") #declnamesynop("pcre_match2_substring") #declnamesynop("pcre_match3_substring") (* ****** ****** *) #declname2("pcre_ML.sats", "pcre_ML.html") // #declsynop2('\ This file contains an API in ATS of quasi ML-style that is directly based on the pcre package. ') (* ****** ****** *) (* end of [pcre.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/DOCUGEN/Makefile.gen0000777000175000017500000000000013431250607034446 2../../../../share/Makefile.genustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/DOCUGEN/HTML/0000755000175000017500000000000013431250607026417 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/DOCUGEN/HTML/.keeper0000644000175000017500000000000013431250607027661 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/DOCUGEN/theDeclpostamble.html0000644000175000017500000000075113431250607032023 0ustar brandonbrandon
This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. SourceForge.net Logo
ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/DOCUGEN/Makefile.atxt0000644000175000017500000000532613431250607030300 0ustar brandonbrandon%{ // staload STDIO = "libc/SATS/stdio.sats" staload TIME = "libc/SATS/time.sats" // dynload "libatsdoc/dynloadall.dats" // staload "libatsdoc/SATS/libatsdoc_atext.sats" // %}\ %{ fun comment (x: string): atext = atext_nil () // end of [comment] fun make_entry (nm: string): atext = let // val ent = sprintf ("\ all_html:: HTML/%s.html\n\ HTML/%s.html: \ %s_atxt.exe ; ./$< > $@ %s_atxt.txt: %s.atxt ; $(CAT) $< | \ $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ %s_atxt.exe: htmlgendecl_atxt.dats \ %s_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -D_ATS_GCATS -o $@ $< \ $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_%s:: ; \ scp HTML/%s.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libgmp/SATS/DOCUGEN/HTML clean:: ; $(RMF) %s_atxt.exe cleanall:: ; $(RMF) HTML/%s.html ", @(nm, nm, nm, nm, nm, nm, nm, nm, nm, nm, nm) ) // end of [val] // in atext_strptr (ent) end // end of [make_entry] %}\ # # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/utils/libatsopt LDPATH += -L$(PATSHOME)/utils/libatsynmark ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \ declatext_sats.o \ declatext_dats.o \ declatext_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \ htmlgendecl_sats.o \ htmlgendecl_dats.o \ htmlgendecl_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: ###### #make_entry("pcre") #make_entry("pcre_ML") ###### # uploadall:: ; \ scp HTML/*.html \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/pcre/SATS/DOCUGEN/HTML # ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats clean:: ; $(RMF) Makefile.exe ###### cleanall:: clean ###### end of [Makefile] ###### \ %{ implement main () = fprint_filsub (stdout_ref, "Makefile_atxt.txt") %}\ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/SATS/DOCUGEN/pcre_ML.atxt0000644000175000017500000000476013431250607030105 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../pcre_ML.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_pcre_pcre_ML") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/pcre/pcre_ML\ ") (* ****** ****** *) #declpreamble('\ #para('\ This package contains an API in ATS of quasi ML-style that is directly based on the pcre package.\ ') ')#comment("declpreamble") (* ****** ****** *) #declnamesynop("regstr_match_string") #decldescrpt("\ Given a pcre-style regular expression (represented as a string) and a subject string, this function tests whether the subject string contains a portion that matches the given regular expression. ") #declfunretval("\ The function returns 0 to indicate that a match is found. Otherwise, it returns a negative integer to indicate its failure in finding a match. Note that a failure may also mean that the given regular expression is ill-formed. ") (* ****** ****** *) #declnamesynop("regstr_match_substring") #decldescrpt("\ This function is a slightly generalized variant of #dyncode("regstr_match_string"). ") (* ****** ****** *) #declnamesynop("regstr_match2_string") #decldescrpt("\ Compared with #dyncode("regstr_match_string"), this function takes two additional call-by-reference arguments that are used to store the beginning and ending positions of the portion of the given subject string that matches the given regular expression. ") (* ****** ****** *) #declnamesynop("regstr_match2_substring") #decldescrpt("\ This function is a slightly generalized variant of #dyncode("regstr_match2_string"). ") (* ****** ****** *) #declnamesynop("regstr_match3_string") #decldescrpt("\ Compared with #dyncode("regstr_match2_string"), this function returns a list of (linear) strings that are copies of the captured portions in the given subject string. Note that the integer value stored in the call-by-reference argument err indicates whether matching succeeded or failed; if the value is negative, then matching failed; if the value is zero, then matching succeeded and the length of the returned list equals a fixed integer (currently chosen to be 15); otherwise, matching succeeded and the length of the returned list equals the value minus 1.\ ") (* ****** ****** *) #declnamesynop("regstr_match3_substring") #decldescrpt("\ This function is a slightly generalized variant of #dyncode("regstr_match3_string"). ") (* ****** ****** *) (* end of [pcre_ML.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libpcre/mylibies_link.hats0000644000175000017500000000070213431250607027527 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-04-29: // For downstream linking // (* ****** ****** *) // local // #include "./DATS/pcre.dats" // in (* in of [local] *) // // HX: it is intentionally left to be empty // end // end of [local] // (* ****** ****** *) // local // #include "./DATS/pcre_ML.dats" // in (* in of [local] *) // // HX: it is intentionally left to be empty // end // end of [local] // (* ****** ****** *) (* end of [mylibies_link.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/0000755000175000017500000000000013431250607024033 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/DATS/0000755000175000017500000000000013431250607024566 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/DATS/cstream_cloref.dats0000644000175000017500000000500413431250607030432 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** stream of characters *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/cstream.sats" (* ****** ****** *) typedef cstruct = @{ getc= (ptr) -> int , free= (ptr) -> void , data= ((*void*)) - int } (* end of [cstruct] *) (* ****** ****** *) datavtype cstream = CS of cstruct (* ****** ****** *) fun cstream_getc (p: ptr): int = ret where { // typedef data = ((*void*)) - int // val (pf, fpf | p) = $UN.ptr0_vtake{data}(p) // val ret = !p() // prval () = fpf (pf) // } (* end of [cstream_getc] *) (* ****** ****** *) fun cstream_free (p: ptr): void = () (* ****** ****** *) implement cstream_make_cloref (getc) = let // val cs0 = CS (_) val+CS(cstruct) = cs0 // val () = cstruct.getc := cstream_getc // val () = cstruct.free := cstream_free // val () = cstruct.data := getc // in $UN.castvwtp0{cstream(TKcloref)}((view@cstruct | cs0)) end // end of [cstream_make_cloref] (* ****** ****** *) (* end of [cstream_cloref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/DATS/cstream.dats0000644000175000017500000001561513431250607027111 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // (* ** cstream: ** stream of characters *) // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/cstream.sats" // (* ****** ****** *) reassume cstream_vtype(*tkind*) (* ****** ****** *) implement cstream_free (cs0) = () where { // val+@CS(cstruct) = cs0 val () = cstruct.free(addr@(cstruct.data)) val ((*void*)) = free@cs0 // } // end of [cstream_free] (* ****** ****** *) implement {}(*tmp*) cstream_get_char (cs0) = ret where { // val+@CS(cstruct) = cs0 val ret = cstruct.getc(addr@(cstruct.data)) prval ((*void*)) = fold@cs0 // } // end of [cstream_get_char] (* ****** ****** *) implement {tk}(*tmp*) cstream_getv_char {n} (cs0, A, n) = let // fun loop ( cs0: !cstream, p: ptr, n: int ) : int = ( if (n > 0) then let // val i = cstream_get_char(cs0) // in // if i >= 0 then let val c = int2char0(i) val () = $UN.ptr0_set(p, c) in loop (cs0, ptr_succ(p), pred(n)) end // end of [then] else (n) // end of [else] // end of [if] end else (0) // end of [if] // ) (* end of [loop] *) // val n2 = loop (cs0, addr@A, n) // in $UN.cast{natLte(n)}(n-n2) end // end of [cstream_getv_char] (* ****** ****** *) implement {}(*tmp*) cstream_get_charlst (cs0, n) = let // fun loop ( cs0: !cstream, n: int , res: &ptr? >> List0_vt(char) ) : void = let in // if n != 0 then let val i = cstream_get_char(cs0) // end of [val] in if i > 0 then let val c = int2char0(i) val () = res := list_vt_cons{char}{0}(c, _) val+list_vt_cons (_, res1) = res val () = loop (cs0, pred(n), res1) prval () = fold@res in // nothing end // end of [then] else let val () = res := list_vt_nil () in // nothing end // end of [else] // end of [if] end // end of [then] else let val () = res := list_vt_nil () in // nothing end // end of [else] // end of [if] // end (* end of [loop] *) // var res: ptr val () = loop (cs0, n, res) // in res end // end of [cstream_get_charlst] (* ****** ****** *) // // HX-2014-05-08: // Some common tokenizing functions // (* ****** ****** *) implement {}(*tmp*) cstream_tokenize_uint (cs0, c0) = let // #define i2c int2char0 // fun loop ( cs0: !cstream, res: &int >> _ ) : int(*c*) = let val i = cstream_get_char (cs0) in // if i >= 0 then ( if isdigit (i) then let val d = i2c(i) - '0' val () = res := 10*res+d in loop (cs0, res) end // end-of-then else (i) // end-of-else ) else (i) // end // end of [loop] // var res: int = i2c(c0) -'0' val () = c0 := loop (cs0, res) // in g0int2uint(res) end // end of [cstream_tokenize_uint] (* ****** ****** *) implement {}(*tmp*) cstream_tokenize_ident (cs0, c0, sbf) = let // fun isalnum_ (i: int): bool = if isalnum (i) then true else (i = char2int0('_')) // end of [if] // fun loop ( cs0: !cstream , sbf: !stringbuf ) : int = let // val i = cstream_get_char (cs0) // in // if i >= 0 then ( // if isalnum_ (i) then let val c = $UN.cast{charNZ}(i) val _ = $SBF.stringbuf_insert(sbf, c) in loop(cs0, sbf) end // end-of-then else (i) // end-of-else // ) (* end of [then] *) else (i) // end of [else] // end // end of [tokener_get_ide] // val _ = $SBF.stringbuf_insert(sbf, $UN.cast{charNZ}(c0)) // val () = (c0 := loop (cs0, sbf)) // in $SBF.stringbuf_truncout_all (sbf) end // end of [cstream_tokenize_ident] (* ****** ****** *) implement {}(*tmp*) cstream_tokenize_string (cs0, c0, sbf) = let // fnx loop ( cs0: !cstream , sbf: !stringbuf , nerr: &int >> _ ) : int = let // val i = cstream_get_char (cs0) val c = int2char0 (i) // in // if i >= 0 then ( case+ c of | '"' => cstream_get_char (cs0) | '\\' => loop_escaped (cs0, sbf, nerr) | '\0' => (0) | _(*any*) => let val c = $UN.cast{charNZ}(i) val _ = $SBF.stringbuf_insert (sbf, c) in loop (cs0, sbf, nerr) end // end of [any] ) else (0) // end of [if] // end // end of [loop] // and loop_escaped ( cs0: !cstream , sbf: !stringbuf , nerr: &int >> _ ) : int = let // val i = cstream_get_char (cs0) val c = int2char0 (i) // in // if i >= 0 then ( case+ c of | '"' => let val c = $UN.cast{charNZ}(c) val _ = $SBF.stringbuf_insert (sbf, c) in loop (cs0, sbf, nerr) end // end of ... | '\\' => let val c = $UN.cast{charNZ}(c) val _ = $SBF.stringbuf_insert (sbf, c) in loop (cs0, sbf, nerr) end // end of ... | 'n' => let val _ = $SBF.stringbuf_insert (sbf, '\n') in loop (cs0, sbf, nerr) end // end of ... | 't' => let val _ = $SBF.stringbuf_insert (sbf, '\t') in loop (cs0, sbf, nerr) end // end of ... | 'b' => let val _ = $SBF.stringbuf_insert (sbf, '\b') in loop (cs0, sbf, nerr) end // end of ... | 'f' => let val _ = $SBF.stringbuf_insert (sbf, '\f') in loop (cs0, sbf, nerr) end // end of ... | 'r' => let val _ = $SBF.stringbuf_insert (sbf, '\r') in loop (cs0, sbf, nerr) end // end of ... // | '\0' => (0) // | _(*any*) => let val c = $UN.cast{charNZ}(c) val _ = $SBF.stringbuf_insert (sbf, c) val () = nerr := (nerr + 1) in loop (cs0, sbf, nerr) end // end of [any] ) else (0) // end of [if] // end // end of [loop_escaped] // var nerr: int = 0 val ((*void*)) = c0 := loop (cs0, sbf, nerr) // in $SBF.stringbuf_truncout_all (sbf) end // end of [cstream_tokenize_string] (* ****** ****** *) (* end of [cstream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/DATS/cstream_tokener.dats0000644000175000017500000000767213431250607030644 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** cstream-based tokener *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../SATS/cstream.sats" staload "./../SATS/cstream_tokener.sats" (* ****** ****** *) #define BUFSZ 1024 (* ****** ****** *) datavtype tokener(a:type) = TOKENER of (cstream, int, $SBF.stringbuf) // end of [tokener] (* ****** ****** *) assume tokener_vtype = tokener (* ****** ****** *) implement{a} tokener_make_cstream (cs0) = let // val c0 = cstream_get_char (cs0) val buf = $SBF.stringbuf_make_nil (i2sz(BUFSZ)) in TOKENER{a}(cs0, c0, buf) // end of [val] end // end of [tokener_make_cstream] (* ****** ****** *) implement{a} tokener_free (buf) = () where { val+~TOKENER(cs0, _, sbf) = buf val ((*void*)) = cstream_free (cs0) val ((*void*)) = $SBF.stringbuf_free (sbf) } (* end of [tokener_getfree_cstream] *) (* ****** ****** *) implement{token} tokener_get_token (buf) = tok where { val+@TOKENER(cs0, c0, sbf) = buf val tok = tokener_get_token$main (cs0, c0, sbf) prval ((*void*)) = fold@ (buf) } (* end of [lexinguf_get_token] *) (* ****** ****** *) datavtype tokener2(token:type) = TOKENER2 of (tokener(token), token) // end of [tokener2] (* ****** ****** *) assume token_v = unit_v assume tokener2_vtype(a:type) = tokener2(a) (* ****** ****** *) implement {a}(*tmp*) tokener2_get (t2knr) = let // val+TOKENER2(_, tok) = t2knr // in (unit_v() | tok) end // end of [tokener2_get] (* ****** ****** *) implement {token} tokener2_unget (pf | t2knr) = let prval unit_v () = pf in () end // end of [tokener2_unget] implement {token} tokener2_getaft (pf | t2knr) = { // prval unit_v () = pf // val+@TOKENER2(tknr, tok) = t2knr val () = tok := tokener_get_token (tknr) prval ((*void*)) = fold@ (t2knr) // } (* end of [tokener2_getaft] *) (* ****** ****** *) implement {token} tokener2_getout (t2knr) = tok_ where { // val+@TOKENER2(tknr, tok) = t2knr val tok_ = tok val ((*void*)) = tok := tokener_get_token (tknr) // prval ((*void*)) = fold@ (t2knr) // } (* end of [tokener2_getout] *) (* ****** ****** *) implement {a}(*tmp*) tokener2_free (t2knr) = let // val+~TOKENER2(tknr, tok) = t2knr in tokener_free (tknr) // end // end of [tokener2_free] (* ****** ****** *) implement {a}(*tmp*) tokener2_make_tokener (tknr) = let // val tok = tokener_get_token (tknr) in TOKENER2 (tknr, tok) // end // end of [tokener2_make] (* ****** ****** *) (* end of [cstream_tokener.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/DATS/cstream_string.dats0000644000175000017500000000651313431250607030474 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** stream of characters *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/cstream.sats" (* ****** ****** *) typedef cstruct = @{ getc= (ptr) -> int , free= (ptr) -> void , data= @(string, ptr) } (* end of [cstruct] *) (* ****** ****** *) datavtype cstream = CS of cstruct (* ****** ****** *) #define NUL '\000' (* ****** ****** *) fun cstream_getc (p: ptr): int = i where { // typedef data = @(string, ptr) // val (pf, fpf | p) = $UN.ptr0_vtake{data}(p) // val p1 = p->1 // val c = $UN.ptr0_get (p1) val i = (if c != NUL then char2u2int0(c) else ~1): int val () = if i >= 0 then p->1 := ptr_succ (p1) // prval () = fpf (pf) // } (* end of [cstream_getc] *) (* ****** ****** *) fun cstream_free (p: ptr): void = () (* ****** ****** *) implement cstream_make_string (str0) = let // val cs0 = CS (_) val+CS(cstruct) = cs0 // val () = cstruct.getc := cstream_getc // val () = cstruct.free := cstream_free // val p0 = string2ptr(str0) val () = cstruct.data := @(str0, p0) // in $UN.castvwtp0{cstream(TKstring)}((view@cstruct | cs0)) end // end of [cstream_make_string] (* ****** ****** *) implement cstream_string_get_range (cs0, i, j) = let // val cs0 = $UN.castvwtp1{cstream}(cs0) // val+CS(cstruct) = cs0 val data = cstruct.data prval () = $UN.cast2void(cs0) // val str = data.0 val p0 = string2ptr(str) and p1 = data.1 val len = $UN.cast{size_t}(p1 - p0) // val i = i2sz(i) and j = i2sz(j) val i = (if i <= len then i else len): size_t val j = (if j <= len then j else len): size_t // val [n:int] str = g1ofg0(str) val [i:int] i = $UN.cast{sizeLte(n)}(i) val [j:int] j = $UN.cast{sizeBtwe(i,n)}(j) // in $UN.castvwtp0{Strptr1}(string_make_substring (str, i, j-i)) end // end of [cstream_string_get_range] (* ****** ****** *) (* end of [cstream_string.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/DATS/cstream_strptr.dats0000644000175000017500000000635113431250607030524 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** stream of characters *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/cstream.sats" (* ****** ****** *) typedef cstruct = @{ getc= (ptr) -> int , free= (ptr) -> void , data= @(string, ptr) } (* end of [cstruct] *) (* ****** ****** *) datavtype cstream = CS of cstruct (* ****** ****** *) #define NUL '\000' (* ****** ****** *) fun cstream_getc (p: ptr): int = i where { // typedef data = @(string, ptr) // val (pf, fpf | p) = $UN.ptr0_vtake{data}(p) // val p1 = p->1 // val c = $UN.ptr0_get (p1) val i = (if c != NUL then char2u2int0(c) else ~1): int val () = if i >= 0 then p->1 := ptr_succ (p1) // prval () = fpf (pf) // } (* end of [cstream_getc] *) (* ****** ****** *) fun cstream_free (p: ptr): void = () where { // vtypedef data = @(Strptr1, ptr) // val (pf, fpf | p) = $UN.ptr0_vtake{data}(p) // val ((*void*)) = strptr_free ($UN.castvwtp1{Strptr1}(p->0)) // prval () = $UN.cast2void ((pf, fpf | p)) // } (* end of [cstream_getc] *) (* ****** ****** *) implement cstream_make_strptr (str0) = let // val cs0 = CS (_) val+CS(cstruct) = cs0 // val () = cstruct.getc := cstream_getc // val () = cstruct.free := cstream_free // val str0 = $UN.castvwtp0{string}(str0) // val p0 = string2ptr(str0) val () = cstruct.data := @(str0, p0) // in $UN.castvwtp0{cstream(TKstrptr)}((view@cstruct | cs0)) end // end of [cstream_make_strptr] (* ****** ****** *) implement cstream_strptr_get_range (cs0, i, j) = res where { // val cs0 = $UN.castvwtp1{cstream(TKstring)}(cs0) // val res = cstream_string_get_range (cs0, i, j) // prval ((*void*)) = $UN.cast2void(cs0) // } (* end of [cstream_strptr_get_range] *) (* ****** ****** *) (* end of [cstream_strptr.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/DATS/cstream_fileptr.dats0000644000175000017500000000621013431250607030625 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** stream of characters *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // staload STDIO = "libats/libc/SATS/stdio.sats" // (* ****** ****** *) staload "./../SATS/cstream.sats" (* ****** ****** *) #define NUL '\000' (* ****** ****** *) typedef cstruct = @{ getc= (ptr) -> int , free= (ptr) -> void , data= FILEref } (* end of [cstruct] *) (* ****** ****** *) datavtype cstream = CS of cstruct (* ****** ****** *) fun cstream_getc ( p: ptr ) : int = ret where { // typedef data = FILEref // val (pf, fpf | p) = $UN.ptr0_vtake{data}(p) // val ret = $STDIO.fgetc0(!p) // prval ((*returned*)) = fpf(pf) // } (* end of [cstream_getc] *) (* ****** ****** *) fun cstream_free ( p: ptr ) : void = ((*void*)) where { // vtypedef data = $STDIO.FILEptr1 // val (pf, fpf | p) = $UN.ptr0_vtake{data}(p) // val err = $STDIO.fclose0($UN.castvwtp0{FILEref}(!p)) // prval ((*returned*)) = $UN.cast2void((pf, fpf | p)) // } (* end of [cstream_free] *) (* ****** ****** *) implement cstream_make_fileptr (pfmode | inp) = let // val cs0 = CS(_) val+CS(cstruct) = cs0 // val () = cstruct.getc := cstream_getc // val () = cstruct.free := cstream_free // val () = cstruct.data := $UN.castvwtp0{FILEref}(inp) // in $UN.castvwtp0{cstream(TKfileptr)}((view@cstruct | cs0)) end // end of [cstream_make_fileptr] (* ****** ****** *) implement cstream_getv_char {n} (cs0, A, n) = n2 where { // val cs0 = $UN.castvwtp1{cstream(TKfileref)}(cs0) // val n2 = cstream_getv_char(cs0, A, n) // prval ((*returned*)) = $UN.cast2void(cs0) // } (* end of [cstream_getv_char] *) (* ****** ****** *) (* end of [cstream_fileptr.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/DATS/cstream_fileref.dats0000644000175000017500000000557013431250607030604 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** stream of characters *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // staload STDIO = "libats/libc/SATS/stdio.sats" // (* ****** ****** *) staload "./../SATS/cstream.sats" (* ****** ****** *) #define NUL '\000' (* ****** ****** *) typedef cstruct = @{ getc= (ptr) -> int , free= (ptr) -> void , data= FILEref } (* end of [cstruct] *) (* ****** ****** *) datavtype cstream = CS of cstruct (* ****** ****** *) fun cstream_getc (p: ptr): int = ret where { // typedef data = FILEref // val (pf, fpf | p) = $UN.ptr0_vtake{data}(p) // val ret = $STDIO.fgetc0 (!p) // prval () = fpf (pf) // } (* end of [cstream_getc] *) (* ****** ****** *) fun cstream_free(p: ptr): void = () (* ****** ****** *) implement cstream_make_fileref (inp) = let // val cs0 = CS (_) val+CS(cstruct) = cs0 // val () = cstruct.getc := cstream_getc // val () = cstruct.free := cstream_free // val () = cstruct.data := inp // in $UN.castvwtp0{cstream(TKfileref)}((view@cstruct | cs0)) end // end of [cstream_make_fileref] (* ****** ****** *) implement cstream_getv_char {n} (cs0, A, n) = let // val cs0 = $UN.castvwtp1{cstream}(cs0) // val+CS(cstruct) = cs0 // val n2 = $STDIO.fread0 (A, i2sz(1), i2sz(n), cstruct.data) // prval () = $UN.cast2void (cs0) // in sz2i(n2) end // end of [cstream_getv_char] (* ****** ****** *) (* end of [cstream_fileref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/DATS/cstream_fun.dats0000644000175000017500000000475113431250607027760 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) (* ** stream of characters *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/cstream.sats" (* ****** ****** *) typedef cstruct = @{ getc= (ptr) -> int , free= (ptr) -> void , data= ((*void*)) -> int } (* end of [cstruct] *) (* ****** ****** *) datavtype cstream = CS of cstruct (* ****** ****** *) fun cstream_getc (p: ptr): int = ret where { // typedef data = ((*void*)) -> int // val (pf, fpf | p) = $UN.ptr0_vtake{data}(p) // val ret = !p() // prval () = fpf (pf) // } (* end of [cstream_getc] *) (* ****** ****** *) fun cstream_free (p: ptr): void = () (* ****** ****** *) implement cstream_make_fun (getc) = let // val cs0 = CS (_) val+CS(cstruct) = cs0 // val () = cstruct.getc := cstream_getc // val () = cstruct.free := cstream_free // val () = cstruct.data := getc // in $UN.castvwtp0{cstream(TKfun)}((view@cstruct | cs0)) end // end of [cstream_make_fun] (* ****** ****** *) (* end of [cstream_fun.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/.keeper0000644000175000017500000000000013431250607025275 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/TEST/0000755000175000017500000000000013431250607024612 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/TEST/test01.dats0000644000175000017500000000175613431250607026620 0ustar brandonbrandon(* ** stream of characters *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdio.sats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $CSTREAM #staload $CSTOKENER // #include "./../mylibies_link.hats" // (* ****** ****** *) implement main0 ((*void*)) = { // val Hello = "Hello" // #define i2c int2char0 // val cs = cstream_make_string (Hello) val c0 = cstream_get_char (cs) val c1 = cstream_get_char (cs) val c2 = cstream_get_char (cs) val c3 = cstream_get_char (cs) val c4 = cstream_get_char (cs) // val () = print! ((i2c)c0) val () = print! ((i2c)c1) val () = print! ((i2c)c2) val () = print! ((i2c)c3) val () = print! ((i2c)c4) val () = println! ((*void*)) // val str = cstream_get_range (cs, 0, 5) val () = fprintln! (stdout_ref, "range(0, 5) = ", str) val ((*void*)) = strptr_free (str) // val ((*void*)) = cstream_free (cs) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/TEST/tokener.dats0000644000175000017500000001114513431250607027140 0ustar brandonbrandon(* ** A simple implementation ** of tokenization based on cstream *) (* ****** ****** *) (* ** Author: HX-2014-01-09 (gmhwxiATgmailDOTcom) *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // #staload "libats/SATS/stringbuf.sats" // #staload _ = "libats/DATS/stringbuf.dats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $CSTREAM #staload $CSTOKENER // (* ****** ****** *) #include "./../mylibies_link.hats" (* ****** ****** *) datatype token = | TOKide of string | TOKint of int | TOKlparen of () | TOKrparen of () | TOKerr of (int) | TOKeof of ((*void*)) // end of [token] (* ****** ****** *) extern fun fprint_token (out: FILEref, x: token): void overload fprint with fprint_token (* ****** ****** *) implement fprint_token (out, x) = ( case+ x of // | TOKide(ide) => fprint! (out, "TOKide(", ide, ")") | TOKint(int) => fprint! (out, "TOKint(", int, ")") // | TOKlparen() => fprint! (out, "TOKlparen(", ")") | TOKrparen() => fprint! (out, "TOKrparen(", ")") // | TOKerr(int) => fprint! (out, "TOKerr(", int, ")") | TOKeof((*void*)) => fprint! (out, "TOKeof(", ")") ) (* end of [fprint_token] *) (* ****** ****** *) // #define c2i char2int0 #define i2c int2char0 // fun isalnum_ (x: int): bool = let val x = i2c(x) in isalnum(x) || (x = '_') end // (* ****** ****** *) // extern fun tokener_get_ide ( !cstream, i0: &int >> _, sbf: !stringbuf ) : Strptr1 // end of [tokener_get_ide] // implement tokener_get_ide (cs0, i0, sbf) = let // fun loop ( cs0: !cstream , sbf: !stringbuf ) : int = let // val i = cstream_get_char(cs0) // in // if i >= 0 then ( // if isalnum_(i) then let // val c = $UN.cast{charNZ}(i) val _ = stringbuf_insert(sbf, c) in loop(cs0, sbf) // end // end-of-then else (i) // end-of-else // ) else (i) // end // end of [tokener_get_ide] // val _ = stringbuf_insert(sbf, $UN.cast{charNZ}(i0)) // val () = i0 := loop(cs0, sbf) // in stringbuf_truncout_all (sbf) end // end of [tokener_get_ide] (* ****** ****** *) extern fun tokener_get_int (!cstream, i0: &int >> _, !stringbuf): int // implement tokener_get_int (cs0, i0, sbf) = let // fun loop ( cs0: !cstream, res: &int >> _ ) : int = let val i = cstream_get_char (cs0) in // if i >= 0 then ( if isdigit (i) then let val d = i2c(i) - '0' val () = res := 10*res+d in loop (cs0, res) end // end-of-then else (i) // end-of-else ) else (i) // end // end of [loop] // var res: int = (i2c(i0) - '0') val ((*void*)) = i0 := loop (cs0, res) // in res end // end of [tokener_get_int] (* ****** ****** *) // %{^ #define LPAREN '(' #define RPAREN ')' %} // macdef LPAREN = $extval (int, "LPAREN") macdef RPAREN = $extval (int, "RPAREN") // (* ****** ****** *) // extern fun cstream_WS_skip (cs0: !cstream, i0: &int >> _): void // implement cstream_WS_skip (cs0, i0) = let // fun loop (cs0: !cstream): int = let val c = cstream_get_char (cs0) in if isspace (c) then loop (cs0) else c end // end of [loop] // in if isspace (i0) then i0 := loop (cs0) end // end of [cstream_WS_skip] // (* ****** ****** *) implement tokener_get_token$main (cs0, i0, sbf) = let // val () = cstream_WS_skip (cs0, i0) // in // if ( i0 >= 0 ) then ( case+ 0 of | _ when (i0 = LPAREN) => let val () = i0 := cstream_get_char (cs0) in TOKlparen () end | _ when (i0 = RPAREN) => let val () = i0 := cstream_get_char (cs0) in TOKrparen () end | _ when isalpha (i0) => let val ide = tokener_get_ide (cs0, i0, sbf) in TOKide (strptr2string (ide)) end | _ when isdigit (i0) => let val int = tokener_get_int (cs0, i0, sbf) in TOKint (int) end | _ (*unrecogized*) => let val i1 = i0 val () = i0 := cstream_get_char (cs0) in TOKerr (i1) end ) else ( TOKeof(*void*) ) (* end of [if] *) // end // end of [tokener_get_token$main] (* ****** ****** *) implement main0 (argc, argv) = { // val fname = ( if argc >= 2 then argv[1] else "tokener.dats" // end of [if] ) : string // val-~Some_vt(inp) = fileref_open_opt (fname, file_mode_r) val cs0 = cstream_make_fileref (inp) // val tknr = tokener_make_cstream (cs0) // var tok: token = tokener_get_token (tknr) // val () = while (true) { val () = fprintln! (stdout_ref, "tok = ", tok) val () = ( case+ tok of | TOKeof () => $break | _ => (tok := tokener_get_token (tknr)) ) : void // end of [val] } (* end of [where] *) // end of [val] // val ((*void*)) = tokener_free (tknr) // val ((*void*)) = fileref_close (inp) // } (* end of [main0] *) (* ****** ****** *) (* end of [tokener.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/TEST/Makefile0000644000175000017500000000147513431250607026261 0ustar brandonbrandon###### # # A simple Makefile # ###### include \ $(PATSHOME)/share/atsmake-pre.mk ###### MALLOCFLAG = -DATS_MEMALLOC_LIBC ###### all:: test01 test01: test01.dats ; $(PATSCC2) $(MALLOCFLAG) -o $@ $< regress:: test01; ./$< cleanall:: ; $(RMF) test01 ###### all:: test02 test02: test02.dats ; $(PATSCC2) $(MALLOCFLAG) -o $@ $< regress:: test02; ./$< cleanall:: ; $(RMF) test02 ###### all:: test03 test03: test03.dats ; $(PATSCC2) $(MALLOCFLAG) -o $@ $< regress:: test03; ./$< cleanall:: ; $(RMF) test03 ###### all:: tokener tokener: tokener.dats ; $(PATSCC2) -O2 $(MALLOCFLAG) -o $@ $< regress:: tokener; ./$< cleanall:: ; $(RMF) tokener ###### include \ $(PATSHOME)/share/atsmake-post.mk ###### testall:: all testall:: regress testall:: cleanall ###### cleanats:: ; $(RMF) *_?ats.c ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/TEST/test02.dats0000644000175000017500000000130313431250607026605 0ustar brandonbrandon(* ****** ****** *) (* ** stream of characters *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $CSTREAM #staload $CSTOKENER // #include "./../mylibies_link.hats" // (* ****** ****** *) implement main0 ((*void*)) = { // val Hello = string0_copy "Hello" // val cs = cstream_make_strptr (Hello) val res = cstream_get_charlst (cs, ~1) val ((*void*)) = cstream_free (cs) // local implement fprint_list_vt$sep<> (out) = () in(*in-of-local*) val () = fprintln! (stdout_ref, "Hello = ", res) end // end of [local] // val ((*void*)) = list_vt_free (res) // // } (* end of [main0] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/TEST/test03.dats0000644000175000017500000000172213431250607026613 0ustar brandonbrandon(* ** stream of characters *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdio.sats" // (* ****** ****** *) // #include "./../mylibies.hats" // #staload $CSTREAM #staload $CSTOKENER // #include "./../mylibies_link.hats" // (* ****** ****** *) implement main0 ( argc, argv ) = // main0 { // val fname = ( if argc >= 2 then argv[1] else "test03.dats" // end of [if] ) : string // end of [val] // val-~Some_vt(inp) = fileref_open_opt (fname, file_mode_r) // val cs0 = cstream_make_cloref (lam () => $STDLIB.fgetc0 (inp)) // val xs = cstream_get_charlst (cs0, ~1) // val ((*void*)) = cstream_free (cs0) // val ((*void*)) = fileref_close (inp) // local implement fprint_list_vt$sep<> (out) = () in(*in-of-local*) val () = fprint_list_vt (stdout_ref, xs) end // end of [local] // val ((*void*)) = list_vt_free (xs) // } (* end of [main0] *) (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/0000755000175000017500000000000013431250607024605 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/cstream.sats0000644000175000017500000001017113431250607027137 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: January, 2014 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.cstream" // (* ****** ****** *) // (* ** cstream: ** stream of characters *) // (* ****** ****** *) // staload "libats/libc/SATS/stdio.sats" // (* ****** ****** *) // absvtype cstream_vtype(tkind) = ptr // (* ****** ****** *) typedef cstruct = @{ getc= (ptr) -> int , free= (ptr) -> void , data= @[ulint][0] // well-aligned } (* end of [cstruct] *) datavtype cstream = CS of cstruct // local assume cstream_vtype(tk) = cstream in (* assume *) end // (* ****** ****** *) // vtypedef cstream(tk:tkind) = cstream_vtype(tk) vtypedef cstream = [tk:tkind] cstream(tk) // (* ****** ****** *) tkindef TKfun = "TKfun" tkindef TKcloref = "TKcloref" tkindef TKstring = "TKstring" tkindef TKstrptr = "TKstrptr" tkindef TKfileref = "TKfileref" tkindef TKfileptr = "TKfileptr" (* ****** ****** *) fun{} cstream_get_char (!cstream): int (* ****** ****** *) fun{tk:tk} cstream_getv_char{n:nat} (!cstream(tk), &bytes(n) >> _, n: int(n)): natLte(n) // end of [cstream_getv_char] (* ****** ****** *) // // HX-2014-01: // read at most n chars if n >= 0 // read the rest of chars if n < 0 // fun{} cstream_get_charlst (!cstream, n: int): List0_vt(char) // (* ****** ****** *) fun cstream_free (cstream): void (* ****** ****** *) fun cstream_make_fun (() -> int): cstream(TKfun) (* ****** ****** *) fun cstream_make_cloref (() - int): cstream(TKcloref) (* ****** ****** *) // symintr cstream_get_range // fun cstream_string_get_range {i,j:nat | i <= j} (!cstream(TKstring), int i, int j): Strptr1 fun cstream_strptr_get_range {i,j:nat | i <= j} (!cstream(TKstrptr), int i, int j): Strptr1 // overload cstream_get_range with cstream_string_get_range overload cstream_get_range with cstream_strptr_get_range // (* ****** ****** *) fun cstream_make_string (string): cstream(TKstring) fun cstream_make_strptr (Strptr1): cstream(TKstrptr) (* ****** ****** *) // fun cstream_make_fileref (FILEref): cstream(TKfileref) // fun cstream_make_fileptr {l:agz}{m:fmode} (file_mode_lte(m, r) | FILEptr(l, m)): cstream(TKfileptr) // (* ****** ****** *) // // HX-2014-05-08: // Convenience functions // for performing tokenization // (* ****** ****** *) // staload SBF = "libats/SATS/stringbuf.sats" // vtypedef stringbuf = $SBF.stringbuf // fun{} cstream_tokenize_uint (!cstream, c0: &int >> _): uint // fun{} cstream_tokenize_ident (!cstream, c0: &int >> _, !stringbuf): Strptr1 // fun{} cstream_tokenize_string (!cstream, c0: &int >> _, !stringbuf): Strptr1 // (* ****** ****** *) (* end of [cstream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/cstream_tokener.sats0000644000175000017500000000564513431250607030700 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/libats-hwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2014 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: January, 2014 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.cstream" // (* ****** ****** *) // (* ** cstream: ** stream of characters *) // (* ****** ****** *) staload "./cstream.sats" (* ****** ****** *) // staload SBF = "libats/SATS/stringbuf.sats" // vtypedef stringbuf = $SBF.stringbuf // (* ****** ****** *) // absvtype tokener_vtype(a: type) = ptr vtypedef tokener(a: type) = tokener_vtype(a) // (* ****** ****** *) // fun{a:type} tokener_free(tknr: tokener(a)): void // (* ****** ****** *) // fun{a:type} tokener_make_cstream(cs0: cstream): tokener(a) // (* ****** ****** *) // fun{a:type} tokener_get_token (lxbf: !tokener(a)): (a) // fun{ token:type } tokener_get_token$main ( cs0: !cstream, i0: &int >> _, sbf: !stringbuf ) : token // end of [tokener_get_token$main] // (* ****** ****** *) absvtype tokener2_vtype(a:type) = ptr vtypedef tokener2(a:type) = tokener2_vtype(a) (* ****** ****** *) fun{a:type} tokener2_free(t2nkr: tokener2(a)): void fun{a:type} tokener2_make_tokener(tokener(a)): tokener2(a) (* ****** ****** *) // absview token_v // fun{a:type} tokener2_get (!tokener2(a)): (token_v | a) fun{a:type} tokener2_unget (token_v | !tokener2(a)): void fun{a:type} tokener2_getaft (token_v | !tokener2(a)): void // fun{a:type} tokener2_getout (!tokener2(a)): (a) // (* ****** ****** *) (* end of [cstream_tokener.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/DOCUGEN/0000755000175000017500000000000013431250607025671 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/DOCUGEN/cstream.atxt0000644000175000017500000000444413431250607030237 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../cstream.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/libats-hwxi_cstream") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/libats-hwxi/cstream\ ") (* ****** ****** *) #declpreamble('\ #para('\ This package implements streams of characters.\ ') ')#comment("declpreamble") (* ****** ****** *) #declnamesynop("cstream") #declnamesynop("cstream_vtype") (* ****** ****** *) #declnamesynop("cstream_get_char") #decldescrpt('\ If the current position in the character stream represented by a given cstream-value is not at the end, then this function returns the character at the position while advancing the position by 1. Otherwise, the function returns -1.\ ') (* ****** ****** *) #declnamesynop("cstream_getv_char") #decldescrpt('\ A reference implementation of this function calls #dyncode("cstream_get_char") repeatedly until either the number of calls reaches the value of its third argument or -1 is returned, and it stores the characters returned by calls to #dyncode("cstream_get_char") in its second (call-by-reference) argument. The return value of #dyncode("cstream_getv_char") indicates how many characters are actually stored. ') (* ****** ****** *) #declnamesynop("cstream_get_charlst") #decldescrpt('\ This function calls #dyncode("cstream_get_char") repeatedly until either the number of calls reaches the value of its second argument or -1 is returned, and it returns a list consisting of all the characters returned by calls to #dyncode("cstream_get_char"). Note that this function returns a list consisting of all the characters in the character stream associated with its first argument if its second argument is a negative integer. ') (* ****** ****** *) #declnamesynop("cstream_make_fun") #declnamesynop("cstream_make_cloref") (* ****** ****** *) #declnamesynop("cstream_get_range") #declnamesynop("cstream_string_get_range") #declnamesynop("cstream_strptr_get_range") #declnamesynop("cstream_make_string") #declnamesynop("cstream_make_strptr") (* ****** ****** *) #declnamesynop("cstream_make_fileref") #declnamesynop("cstream_make_fileptr") (* ****** ****** *) #declname2("cstream_tokener.sats", "cstream_tokener.html") (* ****** ****** *) (* end of [cstream.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/DOCUGEN/cstream_tokener.atxt0000644000175000017500000000120413431250607031755 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../cstream_tokener.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/libats-hwxi_cstream_tokener") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/libats-hwxi/cstream_tokener\ ") (* ****** ****** *) #declnamesynop("tokener") #declnamesynop("tokener_vtype") (* ****** ****** *) #declnamesynop("tokener_free") (* ****** ****** *) #declnamesynop("tokener_make_cstream") (* ****** ****** *) #declnamesynop("tokener_get_token") #declnamesynop("tokener_get_token$main") (* ****** ****** *) (* end of [cstream_tokener.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/DOCUGEN/Makefile.gen0000777000175000017500000000000013431250607034464 2../../../../share/Makefile.genustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/DOCUGEN/HTML/0000755000175000017500000000000013431250607026435 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/DOCUGEN/HTML/.keeper0000644000175000017500000000000013431250607027677 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/DOCUGEN/Makefile0000644000175000017500000000557513431250607027345 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/utils/libatsopt LDPATH += -L$(PATSHOME)/utils/libatsynmark ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \ declatext_sats.o \ declatext_dats.o \ declatext_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \ htmlgendecl_sats.o \ htmlgendecl_dats.o \ htmlgendecl_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: all_html:: HTML/cstream.html HTML/cstream.html: cstream_atxt.exe ; ./$< > $@ cstream_atxt.txt: cstream.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cstream_atxt.exe: htmlgendecl_atxt.dats cstream_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) $(ATSGCFLAG) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cstream:: ; scp HTML/cstream.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/cstream/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cstream_atxt.exe cleanall:: ; $(RMF) HTML/cstream.html all_html:: HTML/cstream_tokener.html HTML/cstream_tokener.html: cstream_tokener_atxt.exe ; ./$< > $@ cstream_tokener_atxt.txt: cstream_tokener.atxt ; $(CAT) $< | $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ cstream_tokener_atxt.exe: htmlgendecl_atxt.dats cstream_tokener_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; $(ATSCC) $(INCLUDE) $(INCLATS) $(ATSGCFLAG) -o $@ $< $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_cstream_tokener:: ; scp HTML/cstream_tokener.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/cstream/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) cstream_tokener_atxt.exe cleanall:: ; $(RMF) HTML/cstream_tokener.html ###### uploadall:: ; scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/cstream/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/DOCUGEN/theDeclpostamble.html0000644000175000017500000000075113431250607032041 0ustar brandonbrandon
This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. SourceForge.net Logo
ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/SATS/DOCUGEN/Makefile.atxt0000644000175000017500000000530713431250607030315 0ustar brandonbrandon%{ // staload STDIO = "libc/SATS/stdio.sats" staload TIME = "libc/SATS/time.sats" // dynload "libatsdoc/dynloadall.dats" // staload "libatsdoc/SATS/libatsdoc_atext.sats" // %}\ %{ fun comment (x: string): atext = atext_nil () // end of [comment] fun make_entry (nm: string): atext = let // val ent = sprintf ("\ all_html:: HTML/%s.html\n\ HTML/%s.html: \ %s_atxt.exe ; ./$< > $@ %s_atxt.txt: %s.atxt ; $(CAT) $< | \ $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ %s_atxt.exe: htmlgendecl_atxt.dats \ %s_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; \ $(ATSCC) $(INCLUDE) $(INCLATS) $(ATSGCFLAG) -o $@ $< \ $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_%s:: ; \ scp HTML/%s.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/cstream/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) %s_atxt.exe cleanall:: ; $(RMF) HTML/%s.html ", @(nm, nm, nm, nm, nm, nm, nm, nm, nm, nm, nm) ) // end of [val] // in atext_strptr (ent) end // end of [make_entry] %}\ # # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/utils/libatsopt LDPATH += -L$(PATSHOME)/utils/libatsynmark ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \\ declatext_sats.o \\ declatext_dats.o \\ declatext_sats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \\ htmlgendecl_sats.o \\ htmlgendecl_dats.o \\ htmlgendecl_sats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \\ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: #make_entry("cstream") #make_entry("cstream_tokener") ###### uploadall:: ; \ scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libats-hwxi/cstream/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### \ %{ implement main () = fprint_filsub (stdout_ref, "Makefile_atxt.txt") %}\ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-cstream/README.md0000644000175000017500000000045713431250607025320 0ustar brandonbrandon# CStream A simple package for generating character streams. The source of such a stream can be a string, a file, etc. ## Description ###SATS Files ###DATS Files ###TEST Files The files in the TEST directory contain code that gives details on using various functions implemented in this package. ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/0000755000175000017500000000000013431250607024537 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/DATS/0000755000175000017500000000000013431250607025272 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/DATS/jansson.dats0000644000175000017500000000317613431250607027631 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start Time: September, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/jansson.sats" (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no dynloading (* ****** ****** *) // // HX-2013-09: It is still empty // (* ****** ****** *) (* end of [jansson.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/mylibies.hats0000644000175000017500000000040613431250607027235 0ustar brandonbrandon(* ****** ****** *) // // HX-2018-01-25: // For downstream staloading // (* ****** ****** *) // #staload JANSSON = "./SATS/jansson.sats" // (* ****** ****** *) // #staload _(*JANSSON*) = "./DATS/jansson.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/.keeper0000644000175000017500000000000013431250607026001 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/TEST/0000755000175000017500000000000013431250607025316 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/TEST/test01.dats0000644000175000017500000000145513431250607027320 0ustar brandonbrandon(* ** Some testing code for [jansson] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Time: September, 2012 *) (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/jansson.sats" (* ****** ****** *) implement main0 () = { // var err: json_err? val out = stdout_ref // val rt = json_loads ("{\"one\":1}", 0, err) val () = assertloc (JSONptr_isnot_null (rt)) // val (fpf | one) = json_object_get_exnloc (rt, "one") val ji = json_integer_value (one) val () = println! ("int = ", $UN.cast2int(ji)) prval () = minus_addback (fpf, one | rt) // val err = json_dumpf (rt, out, 0) val ((*void*)) = json_decref (rt) val ((*void*)) = fprint_newline (out) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/TEST/github_commit_query.dats0000644000175000017500000001306213431250607032254 0ustar brandonbrandon(* // // For testing the ATS API for jansson // Only the ATS code here is written by Hongwei Xi // *) %{^ /* * Copyright (c) 2009-2012 Petri Lehtinen * * Jansson is free software; you can redistribute it and/or modify * it under the terms of the MIT license. See LICENSE for details. */ #include #include #include #include #define BUFFER_SIZE (256 * 1024) /* 256 KB */ /* Return the offset of the first newline in text or the length of text if there's no newline */ struct write_result { char *data; int pos; }; static size_t write_response ( void *ptr, size_t size, size_t nmemb, void *stream ) { struct write_result *result = (struct write_result *)stream; if(result->pos + size * nmemb >= BUFFER_SIZE - 1) { fprintf(stderr, "error: too small buffer\n"); return 0; } memcpy(result->data + result->pos, ptr, size * nmemb); result->pos += size * nmemb; return size * nmemb; } static char *request (const char *url) { CURL *curl; CURLcode status; char *data; long code; curl = curl_easy_init(); data = malloc(BUFFER_SIZE); if(!curl || !data) return NULL; struct write_result write_result = { .data = data, .pos = 0 }; curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_response); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &write_result); status = curl_easy_perform(curl); if(status != 0) { fprintf(stderr, "error: unable to request data from %s:\n", url); fprintf(stderr, "%s\n", curl_easy_strerror(status)); return NULL; } curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code); if(code != 200) { fprintf(stderr, "error: server responded with code %ld\n", code); return NULL; } curl_easy_cleanup(curl); curl_global_cleanup(); /* zero-terminate the result */ data[write_result.pos] = '\0'; return data; } %} // end of [%{^] (* ****** ****** *) #include "share/atspre_staload.hats" (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../SATS/jansson.sats" (* ****** ****** *) extern fun request (url: string): Strptr0 = "mac#" (* ****** ****** *) // extern fun process_root {l:addr} (root: !JSONptr l, err: &json_err): void // extern fun process_root_array {l:agz} (root: !JSONptr l): void // (* ****** ****** *) implement process_root {l} (root, err) = let // prval ( ) = lemma_addr_param {l} () // val isnot = JSONptr_isnot_null (root) val () = ( if ~isnot then let val () = prerrln! ("ERROR: on line ", err.line, ": ", $UN.cast{string}(err.text)) val () = exit_void (1) in // nothing end // end of [if] ) val () = assert (isnot) // val isa = json_is_array (root) val () = ( if ~isa then let val () = prerrln! ("ERROR: root is not an array") val () = exit_void (1) in // nothing end // end of [if] ) in process_root_array {l} (root) end // end of [process_root] macdef JPNZ (x) = assertloc (JSONptr_isnot_null ,(x)) // end of [JPNZ] implement process_root_array {l} (root) = let // val n = json_array_size (root) // fun loop ( root: !JSONptr l, n: size_t, i: size_t ) : void = let in // if i < n then let // val data = json_array_get1_exnloc (root, i) // end of [val] val () = assertloc (json_is_object (data)) // val sha = json_object_get1_exnloc (data, "sha") // end of [val] val () = assertloc (json_is_string (sha)) // val commit = json_object_get1_exnloc (data, "commit") // end of [val] val () = assertloc (json_is_object (commit)) // val message = json_object_get1_exnloc (commit, "message") // end of [val] val () = assertloc (json_is_string (message)) // val (fpf1 | sha_value) = json_string_value (sha) val (fpf2 | message_value) = json_string_value (message) // val () = println! ($UN.strptr2string(sha_value)) val () = println! () val () = println! ($UN.strptr2string(message_value)) val () = println! () // prval () = minus_addback (fpf1, sha_value | sha) prval () = minus_addback (fpf2, message_value | message) val () = json_decref (commit) val () = json_decref (sha) val () = json_decref (message) val () = json_decref (data) // in loop (root, n, succ(i)) end else () // end of [if] // end // end of [loop] // in loop (root, n, g1int2uint(0)) end // end of [process_root_array] (* ****** ****** *) %{^ static char *auxurl ( char *urlfmt, char *USER, char *REPO ) { char *res ; int bsz = 1024 ; int err = 0 ; res = atspre_malloc_gc (bsz) ; err = snprintf (res, bsz, urlfmt, USER, REPO) ; return res ; } %} extern fun auxurl : (string, string, string) -> Strptr1 = "mac#" (* ****** ****** *) implement main0 (argc, argv) = let // // Usage: argv[0] USER REPO // val cmd = argv[0] var arg1: string = "githwxi" var arg2: string = "ATS-Postiats" // val () = if argc >= 2 then arg1 := argv[1] val () = if argc >= 3 then arg2 := argv[2] // val FMT = "https://api.github.com/repos/%s/%s/commits" val url = auxurl (FMT, arg1, arg2) // val () = println! ("url = ", url) // val text = request ($UN.strptr2string (url)) val () = strptr_free (url) // val isnot = strptr_isnot_null (text) // in // if isnot then let var err: json_err val root = json_loads ($UN.strptr2string(text), 0, err) val () = strptr_free (text) val () = process_root (root, err) val () = json_decref(root) in // nothing end else let prval () = strptr_free_null (text) in // nothing end // end of [if] // end // end of [main0] (* ****** ****** *) (* end of [github_commits.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/TEST/Makefile0000644000175000017500000000234613431250607026763 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### CC=gcc CCOPT=$(CC) -std=c99 -D_GNU_SOURCE ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### CFLAGS += -I./../.. CFLAGS += -I$(PATSHOMEQ) CFLAGS += -I$(PATSHOMEQ)/ccomp/runtime ###### all:: regress:: cleanall:: ###### LNS=ln -s RMF=rm -f ###### # all:: \ test01 test01: \ test01_dats.c ; \ $(CCOPT) -DATS_MEMALLOC_LIBC $(CFLAGS) -o $@ $< -ljansson # regress:: test01 ; ./$< cleanall:: ; $(RMF) test01 # ###### # all:: \ test02 test02: \ test02_dats.c ; \ $(CCOPT) -DATS_MEMALLOC_LIBC $(CFLAGS) -o $@ $< -ljansson # regress:: test02 ; ./$< cleanall:: ; $(RMF) test02 # ###### # all:: \ github_commit_query github_commit_query: \ github_commit_query_dats.c ; \ $(CCOPT) -DATS_MEMALLOC_LIBC $(CFLAGS) -o $@ $< -lcurl -ljansson # regress:: github_commit_query ; ./$< cleanall:: ; $(RMF) github_commit_query # ###### %_dats.c: %.dats ; $(PATSOPT) -o $@ -d $< ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/TEST/test02.dats0000644000175000017500000000171613431250607027321 0ustar brandonbrandon(* ** Some testing code for [jansson] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Time: September, 2012 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/jansson.sats" (* ****** ****** *) #define isnz JSONptr_isnot_null (* ****** ****** *) implement main0 () = let // val a = json_string("this is a string") val () = assertloc(isnz(a)) val () = assertloc(json_is_string(a)) // val ( fpf | s ) = json_string_value(a) val s2 = string0_copy ($UN.strptr2string(s)) prval () = minus_addback (fpf, s | a) // val err = json_string_set(a, $UN.strptr2string(s2)) val () = print_string("Value is: ") val () = print_string($UN.strptr2string(s2)) val () = print_newline() val () = strptr_free (s2) val () = json_decref(a) // in // nothing end // end of [main0] (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/CATS/0000755000175000017500000000000013431250607025271 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/CATS/CODEGEN/0000755000175000017500000000000013431250607026335 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/CATS/CODEGEN/Makefile0000644000175000017500000000124213431250607027774 0ustar brandonbrandon# # # A simple Makefile # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### all:: ###### all:: jansson.cats jansson.cats: jansson_atxt.exe ; ./$< > $@ jansson_atxt.exe: jansson_atxt.dats $(ATSCC) -D_ATS_GCATS -o $@ jansson_atxt.dats -latsdoc jansson_atxt.dats: jansson.atxt $(ATSDOC) --outcode $@ -i jansson.atxt > jansson_atxt.txt clean:: ; $(RMF) jansson_atxt.exe cleanall:: ; $(RMF) jansson.cats ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/CATS/CODEGEN/jansson.atxt0000644000175000017500000001725213431250607030721 0ustar brandonbrandon%{ #define ATSCODEFORMAT "txt" #if (ATSCODEFORMAT == "txt") #include "utils/atsdoc/HATS/postiatsatxt.hats" #endif // end of [ATSCCODEFORMAT] val _thisfilename = atext_strcst"jansson.cats" val () = theAtextMap_insert_str ("thisfilename", _thisfilename) fun atscntrb_jansson_define (fname: string): atext = ( atext_strptr (sprintf ("#define atscntrb_jansson_%s %s", @(fname, fname))) ) // end of [atscntrb_jansson_define] %}\ /* ** Copyright (C) 2010 Chris Double. ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #atscode_separator_for_C() /* ** Time: September, 2012 ** Author Hongwei Xi (gmhwxi AT gmail DOT com) ** ** The API is simplied a bit in the hope that it can be used more easily. */ #atscode_separator_for_C() \#ifndef JANSSON_JANSSON_CATS \#define JANSSON_JANSSON_CATS #atscode_separator_for_C() \#include #atscode_separator_for_C() typedef json_t *JSONptr ; typedef const json_t *JSONconstptr ; #atscode_separator_for_C() #atscntrb_jansson_define("json_typeof") #atscode_separator_for_C() \#define \\ atscntrb_jansson_json_is_null(x) json_is_null((JSONptr)x) \#define \\ atscntrb_jansson_json_is_true(x) json_is_true((JSONptr)x) \#define \\ atscntrb_jansson_json_is_false(x) json_is_false((JSONptr)x) \#define \\ atscntrb_jansson_json_is_boolean(x) json_is_boolean((JSONptr)x) \#define \\ atscntrb_jansson_json_is_integer(x) json_is_integer((JSONptr)x) \#define \\ atscntrb_jansson_json_is_real(x) json_is_real((JSONptr)x) \#define \\ atscntrb_jansson_json_is_number(x) json_is_number((JSONptr)x) \#define \\ atscntrb_jansson_json_is_string(x) json_is_string((JSONptr)x) \#define \\ atscntrb_jansson_json_is_array(x) json_is_array((JSONptr)x) \#define \\ atscntrb_jansson_json_is_object(x) json_is_object((JSONptr)x) #atscode_separator_for_C() #atscntrb_jansson_define("json_incref") #atscntrb_jansson_define("json_decref") #atscode_separator_for_C() #atscntrb_jansson_define("json_null") #atscntrb_jansson_define("json_true") #atscntrb_jansson_define("json_false") #atscode_separator_for_C() #atscntrb_jansson_define("json_integer") #atscntrb_jansson_define("json_integer_value") #atscntrb_jansson_define("json_integer_set") #atscode_separator_for_C() #atscntrb_jansson_define("json_real") #atscntrb_jansson_define("json_real_value") #atscntrb_jansson_define("json_real_set") #atscode_separator_for_C() #atscntrb_jansson_define("json_number_value") #atscode_separator_for_C() #atscntrb_jansson_define("json_string") #atscntrb_jansson_define("json_string_nocheck") \#define \\ atscntrb_jansson_json_string_value(x) ((char*)json_string_value(x)) #atscntrb_jansson_define("json_string_set") #atscntrb_jansson_define("json_string_set_nocheck") #atscode_separator_for_C() #atscntrb_jansson_define("json_array") #atscntrb_jansson_define("json_array_size") #atscode_separator_for_C() #atscntrb_jansson_define("json_array_get") #atscode_separator_for_C() ATSinline() atstype_ptr atscntrb_jansson_json_array_get_exnmsg ( atstype_ptr json, atstype_size ind, atstype_ptr msg ) { JSONptr itm ; itm = atscntrb_jansson_json_array_get (json, ind) ; if (!itm) { fprintf (stderr, "exit(ATS): json_array_get: %s\n", (char*)msg) ; exit (1); } // end of [if] return itm ; } // end of [atscntrb_jansson_json_array_get_exnmsg] #atscode_separator_for_C() ATSinline() atstype_ptr atscntrb_jansson_json_array_get1 ( atstype_ptr json, atstype_size ind ) { JSONptr itm ; itm = json_array_get((JSONptr)json, ind); if (itm) json_incref(itm) ; return (itm) ; } // end of [atscntrb_jansson_json_array_get1] ATSinline() atstype_ptr atscntrb_jansson_json_array_get1_exnmsg ( atstype_ptr json, atstype_size ind, atstype_ptr msg ) { JSONptr itm ; itm = atscntrb_jansson_json_array_get1 (json, ind) ; if (!itm) { fprintf (stderr, "exit(ATS): json_array_get1: %s\n", (char*)msg) ; exit (1); } // end of [if] return (itm) ; } // end of [atscntrb_jansson_json_array_get1_exnmsg] #atscode_separator_for_C() #atscntrb_jansson_define("json_array_set") #atscntrb_jansson_define("json_array_set_new") #atscntrb_jansson_define("json_array_append") #atscntrb_jansson_define("json_array_append_new") #atscntrb_jansson_define("json_array_insert") #atscntrb_jansson_define("json_array_insert_new") #atscntrb_jansson_define("json_array_remove") #atscntrb_jansson_define("json_array_clear") #atscntrb_jansson_define("json_array_extend") #atscode_separator_for_C() #atscntrb_jansson_define("json_object") #atscntrb_jansson_define("json_object_size") #atscode_separator_for_C() #atscntrb_jansson_define("json_object_get") ATSinline() atstype_ptr atscntrb_jansson_json_object_get_exnmsg ( atstype_ptr json, atstype_ptr key, atstype_ptr msg ) { JSONptr itm ; itm = atscntrb_jansson_json_object_get (json, key) ; if (!itm) { fprintf (stderr, "exit(ATS): json_object_get: %s\n", (char*)msg) ; exit (1); } // end of [if] return itm ; } // end of [atscntrb_jansson_json_object_get_exnmsg] #atscode_separator_for_C() ATSinline() atstype_ptr atscntrb_jansson_json_object_get1 ( atstype_ptr json, atstype_ptr key ) { JSONptr itm ; itm = atscntrb_jansson_json_object_get (json, key) ; if (itm) json_incref(itm) ; return (itm) ; } // end of [atscntrb_jansson_json_object_get1] ATSinline() atstype_ptr atscntrb_jansson_json_object_get1_exnmsg ( atstype_ptr json, atstype_ptr key, atstype_ptr msg ) { JSONptr itm ; itm = atscntrb_jansson_json_object_get1 (json, key) ; if (!itm) { fprintf (stderr, "exit(ATS): json_object_get1: %s\n", (char*)msg) ; exit (1); } // end of [if] return (itm) ; } // end of [atscntrb_jansson_json_object_get1_exnmsg] #atscode_separator_for_C() #atscntrb_jansson_define("json_object_set") #atscntrb_jansson_define("json_object_set_nocheck") #atscntrb_jansson_define("json_object_set_new") #atscntrb_jansson_define("json_object_set_new_nocheck") #atscntrb_jansson_define("json_object_del") #atscntrb_jansson_define("json_object_clear") #atscntrb_jansson_define("json_object_update") #atscntrb_jansson_define("json_object_update_existing") #atscntrb_jansson_define("json_object_update_missing") #atscode_separator_for_C() #atscntrb_jansson_define("json_object_iter") #atscntrb_jansson_define("json_object_iter_at") #atscntrb_jansson_define("json_object_iter_next") #atscntrb_jansson_define("json_object_iter_nextret") #atscode_separator_for_C() #atscntrb_jansson_define("json_object_iter_key") #atscntrb_jansson_define("json_object_iter_value") #atscntrb_jansson_define("json_object_iter_set") #atscntrb_jansson_define("json_object_iter_set_new") #atscntrb_jansson_define("json_object_key_to_iter") #atscode_separator_for_C() #atscntrb_jansson_define("json_loads") #atscntrb_jansson_define("json_loadb") #atscntrb_jansson_define("json_loadf") #atscntrb_jansson_define("json_load_file") #atscntrb_jansson_define("json_dumps") #atscntrb_jansson_define("json_dumpf") #atscntrb_jansson_define("json_dump_file") #atscode_separator_for_C() \#endif // ifndef JANSSON_JANSSON_CATS #atscode_separator_for_C() #atscode_eof_strsub_for_C("\#thisfilename$")\ %{ implement main () = fprint_filsub (stdout_ref, "jansson_atxt.txt") %}\ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/CATS/CODEGEN/jansson.cats0000644000175000017500000001737313431250607030677 0ustar brandonbrandon/* ** Copyright (C) 2010 Chris Double. ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Time: September, 2012 ** Author Hongwei Xi (gmhwxi AT gmail DOT com) ** ** The API is simplied a bit in the hope that it can be used more easily. */ /* ****** ****** */ #ifndef JANSSON_JANSSON_CATS #define JANSSON_JANSSON_CATS /* ****** ****** */ #include /* ****** ****** */ typedef json_t *JSONptr ; typedef const json_t *JSONconstptr ; /* ****** ****** */ #define atscntrb_jansson_json_typeof json_typeof /* ****** ****** */ #define \ atscntrb_jansson_json_is_null(x) json_is_null((JSONptr)x) #define \ atscntrb_jansson_json_is_true(x) json_is_true((JSONptr)x) #define \ atscntrb_jansson_json_is_false(x) json_is_false((JSONptr)x) #define \ atscntrb_jansson_json_is_boolean(x) json_is_boolean((JSONptr)x) #define \ atscntrb_jansson_json_is_integer(x) json_is_integer((JSONptr)x) #define \ atscntrb_jansson_json_is_real(x) json_is_real((JSONptr)x) #define \ atscntrb_jansson_json_is_number(x) json_is_number((JSONptr)x) #define \ atscntrb_jansson_json_is_string(x) json_is_string((JSONptr)x) #define \ atscntrb_jansson_json_is_array(x) json_is_array((JSONptr)x) #define \ atscntrb_jansson_json_is_object(x) json_is_object((JSONptr)x) /* ****** ****** */ #define atscntrb_jansson_json_incref json_incref #define atscntrb_jansson_json_decref json_decref /* ****** ****** */ #define atscntrb_jansson_json_null json_null #define atscntrb_jansson_json_true json_true #define atscntrb_jansson_json_false json_false /* ****** ****** */ #define atscntrb_jansson_json_integer json_integer #define atscntrb_jansson_json_integer_value json_integer_value #define atscntrb_jansson_json_integer_set json_integer_set /* ****** ****** */ #define atscntrb_jansson_json_real json_real #define atscntrb_jansson_json_real_value json_real_value #define atscntrb_jansson_json_real_set json_real_set /* ****** ****** */ #define atscntrb_jansson_json_number_value json_number_value /* ****** ****** */ #define atscntrb_jansson_json_string json_string #define atscntrb_jansson_json_string_nocheck json_string_nocheck #define \ atscntrb_jansson_json_string_value(x) ((char*)json_string_value(x)) #define atscntrb_jansson_json_string_set json_string_set #define atscntrb_jansson_json_string_set_nocheck json_string_set_nocheck /* ****** ****** */ #define atscntrb_jansson_json_array json_array #define atscntrb_jansson_json_array_size json_array_size /* ****** ****** */ #define atscntrb_jansson_json_array_get json_array_get /* ****** ****** */ ATSinline() atstype_ptr atscntrb_jansson_json_array_get_exnmsg ( atstype_ptr json, atstype_size ind, atstype_ptr msg ) { JSONptr itm ; itm = atscntrb_jansson_json_array_get (json, ind) ; if (!itm) { fprintf (stderr, "exit(ATS): json_array_get: %s\n", (char*)msg) ; exit (1); } // end of [if] return itm ; } // end of [atscntrb_jansson_json_array_get_exnmsg] /* ****** ****** */ ATSinline() atstype_ptr atscntrb_jansson_json_array_get1 ( atstype_ptr json, atstype_size ind ) { JSONptr itm ; itm = json_array_get((JSONptr)json, ind); if (itm) json_incref(itm) ; return (itm) ; } // end of [atscntrb_jansson_json_array_get1] ATSinline() atstype_ptr atscntrb_jansson_json_array_get1_exnmsg ( atstype_ptr json, atstype_size ind, atstype_ptr msg ) { JSONptr itm ; itm = atscntrb_jansson_json_array_get1 (json, ind) ; if (!itm) { fprintf (stderr, "exit(ATS): json_array_get1: %s\n", (char*)msg) ; exit (1); } // end of [if] return (itm) ; } // end of [atscntrb_jansson_json_array_get1_exnmsg] /* ****** ****** */ #define atscntrb_jansson_json_array_set json_array_set #define atscntrb_jansson_json_array_set_new json_array_set_new #define atscntrb_jansson_json_array_append json_array_append #define atscntrb_jansson_json_array_append_new json_array_append_new #define atscntrb_jansson_json_array_insert json_array_insert #define atscntrb_jansson_json_array_insert_new json_array_insert_new #define atscntrb_jansson_json_array_remove json_array_remove #define atscntrb_jansson_json_array_clear json_array_clear #define atscntrb_jansson_json_array_extend json_array_extend /* ****** ****** */ #define atscntrb_jansson_json_object json_object #define atscntrb_jansson_json_object_size json_object_size /* ****** ****** */ #define atscntrb_jansson_json_object_get json_object_get ATSinline() atstype_ptr atscntrb_jansson_json_object_get_exnmsg ( atstype_ptr json, atstype_ptr key, atstype_ptr msg ) { JSONptr itm ; itm = atscntrb_jansson_json_object_get (json, key) ; if (!itm) { fprintf (stderr, "exit(ATS): json_object_get: %s\n", (char*)msg) ; exit (1); } // end of [if] return itm ; } // end of [atscntrb_jansson_json_object_get_exnmsg] /* ****** ****** */ ATSinline() atstype_ptr atscntrb_jansson_json_object_get1 ( atstype_ptr json, atstype_ptr key ) { JSONptr itm ; itm = atscntrb_jansson_json_object_get (json, key) ; if (itm) json_incref(itm) ; return (itm) ; } // end of [atscntrb_jansson_json_object_get1] ATSinline() atstype_ptr atscntrb_jansson_json_object_get1_exnmsg ( atstype_ptr json, atstype_ptr key, atstype_ptr msg ) { JSONptr itm ; itm = atscntrb_jansson_json_object_get1 (json, key) ; if (!itm) { fprintf (stderr, "exit(ATS): json_object_get1: %s\n", (char*)msg) ; exit (1); } // end of [if] return (itm) ; } // end of [atscntrb_jansson_json_object_get1_exnmsg] /* ****** ****** */ #define atscntrb_jansson_json_object_set json_object_set #define atscntrb_jansson_json_object_set_nocheck json_object_set_nocheck #define atscntrb_jansson_json_object_set_new json_object_set_new #define atscntrb_jansson_json_object_set_new_nocheck json_object_set_new_nocheck #define atscntrb_jansson_json_object_del json_object_del #define atscntrb_jansson_json_object_clear json_object_clear #define atscntrb_jansson_json_object_update json_object_update #define atscntrb_jansson_json_object_update_existing json_object_update_existing #define atscntrb_jansson_json_object_update_missing json_object_update_missing /* ****** ****** */ #define atscntrb_jansson_json_object_iter json_object_iter #define atscntrb_jansson_json_object_iter_at json_object_iter_at #define atscntrb_jansson_json_object_iter_next json_object_iter_next #define atscntrb_jansson_json_object_iter_nextret json_object_iter_nextret /* ****** ****** */ #define atscntrb_jansson_json_object_iter_key json_object_iter_key #define atscntrb_jansson_json_object_iter_value json_object_iter_value #define atscntrb_jansson_json_object_iter_set json_object_iter_set #define atscntrb_jansson_json_object_iter_set_new json_object_iter_set_new #define atscntrb_jansson_json_object_key_to_iter json_object_key_to_iter /* ****** ****** */ #define atscntrb_jansson_json_loads json_loads #define atscntrb_jansson_json_loadb json_loadb #define atscntrb_jansson_json_loadf json_loadf #define atscntrb_jansson_json_load_file json_load_file #define atscntrb_jansson_json_dumps json_dumps #define atscntrb_jansson_json_dumpf json_dumpf #define atscntrb_jansson_json_dump_file json_dump_file /* ****** ****** */ #endif // ifndef JANSSON_JANSSON_CATS /* ****** ****** */ /* end of [jansson.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/CATS/jansson.cats0000777000175000017500000000000013431250607033210 2CODEGEN/jansson.catsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/0000755000175000017500000000000013431250607025311 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/jansson.sats0000644000175000017500000003075313431250607027670 0ustar brandonbrandon(* ****** ****** *) (* ** Copyright (C) 2010 Chris Double. ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** Time: September, 2012 ** Author Hongwei Xi (gmhwxi AT gmail DOT com) ** ** The API is modified in the hope that it can be used more conveniently. *) (* ****** ****** *) %{# // #include \ "atscntrb-hx-libjansson/CATS/jansson.cats" // %} // end of [%{#] (* ****** ****** *) #define ATS_PACKNAME "ATSCNTRB.jansson" #define ATS_EXTERN_PREFIX "atscntrb_jansson_" // prefix for external names (* ****** ****** *) typedef SHR(x:type) = x // for commenting purpose typedef NSH(x:type) = x // for commenting purpose (* ****** ****** *) typedef charptr = ptr (* ****** ****** *) // abst@ype json_type = $extype"json_type" // macdef JSON_OBJECT = $extval (json_type, "JSON_OBJECT") macdef JSON_ARRAY = $extval (json_type, "JSON_ARRAY") macdef JSON_STRING = $extval (json_type, "JSON_STRING") macdef JSON_INTEGER = $extval (json_type, "JSON_INTEGER") macdef JSON_REAL = $extval (json_type, "JSON_REAL") macdef JSON_TRUE = $extval (json_type, "JSON_TRUE") macdef JSON_FALSE = $extval (json_type, "JSON_FALSE") macdef JSON_NULL = $extval (json_type, "JSON_NULL") // abst@ype json_t = $extype"json_t" // json_type + refcount // typedef json_error_t = $extype_struct"json_error_t" of { line= int, column= int, position= int, source= charptr, text= charptr } // end of [json_error_t] // abst@ype json_int_t = $extype"json_int_t" // largest available int type // (* ****** ****** *) absvtype JSONptr (l:addr) = ptr // json_t* vtypedef JSONptr0 = [l:addr] JSONptr (l) vtypedef JSONptr1 = [l:addr | l > null] JSONptr (l) (* ****** ****** *) absvtype JSONiter (l1:addr, l2:addr) = ptr vtypedef JSONiter0 (l1:addr) = [l2:addr] JSONiter (l1, l2) vtypedef JSONiter1 (l1:addr) = [l2:addr | l2 > null] JSONiter (l1, l2) (* ****** ****** *) praxi JSONptr_is_gtez {l:addr} (x: !JSONptr(l)): [l >= null] void (* ****** ****** *) castfn JSONptr2ptr {l:addr} (x: !JSONptr(l)):<> ptr (l) castfn JSONiter2ptr {l1,l2:addr} (x: !JSONiter (l1, l2)):<> ptr (l2) (* ****** ****** *) praxi JSONptr_free_null {l:addr | l <= null} (x: JSONptr(l)): void // end of [JSONptr_free_null] (* ****** ****** *) // fun JSONptr_is_null {l:addr} (x: !JSONptr l):<> bool (l==null) = "mac#atspre_ptr_is_null" fun JSONptr_isnot_null {l:addr} (x: !JSONptr (l)):<> bool (l > null) = "mac#atspre_ptr_isnot_null" // overload iseqz with JSONptr_is_null overload isneqz with JSONptr_isnot_null // (* ****** ****** *) fun json_typeof (json: !JSONptr1): int = "mac#%" (* ****** ****** *) // // HX-2012-09: // these functions currently indeed return 0/1 for false/true // fun json_is_null {l:addr} (json: !JSONptr (l)) : bool = "mac#%" fun json_is_true {l:addr} (json: !JSONptr (l)) : bool = "mac#%" fun json_is_false {l:addr} (json: !JSONptr (l)) : bool = "mac#%" // (* ****** ****** *) fun json_is_boolean {l:addr} (json: !JSONptr (l)) : bool = "mac#%" (* ****** ****** *) fun json_is_integer {l:addr} (json: !JSONptr (l)) : bool = "mac#%" fun json_is_real {l:addr} (json: !JSONptr (l)) : bool = "mac#%" fun json_is_number {l:addr} (json: !JSONptr (l)) : bool = "mac#%" (* ****** ****** *) fun json_is_string {l:addr} (json: !JSONptr (l)) : bool = "mac#%" fun json_is_array {l:addr} (json: !JSONptr (l)) : bool = "mac#%" fun json_is_object {l:addr} (json: !JSONptr (l)) : bool = "mac#%" (* ****** ****** *) // fun json_incref{l:agz} (json: !JSONptr(l)) : JSONptr(l) = "mac#%" fun json_decref (json: JSONptr0): void = "mac#%" // (* ****** ****** *) fun json_null () : JSONptr1 = "mac#%" fun json_true () : JSONptr1 = "mac#%" fun json_false () : JSONptr1 = "mac#%" (* ****** ****** *) fun json_string (value: NSH(string)) : JSONptr0 = "mac#%" // end of [json_string] fun json_string_nocheck (value: NSH(string)) : JSONptr0 = "mac#%" // end of [json_string_nocheck] fun json_string_value {l1:agz} ( json: !JSONptr (l1) ) : [l2:agz] vtget1(JSONptr(l1), strptr(l2)) = "mac#%" // end of [json_string_value] fun json_string_set (json: !JSONptr1, value: NSH(string)): int = "mac#%" fun json_string_set_nocheck (json: !JSONptr1, value: NSH(string)): int = "mac#%" (* ****** ****** *) typedef json_int = json_int_t castfn int2json_int (x: int): json_int castfn lint2json_int (x: lint): json_int castfn llint2json_int (x: llint): json_int fun json_integer (value: json_int) : JSONptr0 = "mac#%" fun json_integer_value (json: !JSONptr1): json_int = "mac#%" fun json_integer_set (json: !JSONptr1, value: json_int): int(*err*) = "mac#%" (* ****** ****** *) fun json_real (value: double): JSONptr0 = "mac#%" fun json_real_value (json: !JSONptr1): double = "mac#%" fun json_real_set (json: !JSONptr1, value: double): int = "mac#%" (* ****** ****** *) fun json_number_value (json: !JSONptr1): double = "mac#%" (* ****** ****** *) fun json_array ((*void*)) : JSONptr0 = "mac#%" fun json_array_size (json: !JSONptr1) : size_t = "mac#%" (* ****** ****** *) fun json_array_get {l1:agz} ( json: !JSONptr (l1), index: size_t ) : [l2:agez] vtget1(JSONptr(l1), JSONptr(l2)) = "mac#%" // end of [json_array_get] fun json_array_get_exnmsg {l1:agz} ( json: !JSONptr (l1), index: size_t, msg: NSH(string) ) : [l2 : agz] vtget1(JSONptr(l1), JSONptr(l2)) = "mac#%" // end of [json_array_get_exnmsg] macdef json_array_get_exnloc (x, i) = json_array_get_exnmsg (,(x), ,(i), $mylocation) // end of [json_array_get_exnloc] (* ****** ****** *) fun json_array_get1 (json: !JSONptr1, index: size_t): JSONptr0 = "mac#%" fun json_array_get1_exnmsg (json: !JSONptr1, index: size_t, msg: NSH(string)): JSONptr1 = "mac#%" macdef json_array_get1_exnloc (x, i) = json_array_get1_exnmsg (,(x), ,(i), $mylocation) // end of [json_array_get1_exnloc] (* ****** ****** *) fun json_array_set ( json: !JSONptr1, index: size_t, value: !JSONptr0(*preserved*) ) : int(*err*) = "mac#%" fun json_array_set_new ( json: !JSONptr1, index: size_t, value: (JSONptr0)/*consumed*/ ) : int(*err*) = "mac#%" fun json_array_append ( json: !JSONptr1, value: !JSONptr0(*preserved*) ) : int(*err*) = "mac#%" fun json_array_append_new ( json: !JSONptr1, value: (JSONptr0)/*consumed*/ ) : int(*err*) = "mac#%" fun json_array_insert ( json: !JSONptr1, index: size_t, value: !JSONptr0(*preserved*) ) : int(*err*) = "mac#%" fun json_array_insert_new ( json: !JSONptr1, index: size_t, value: (JSONptr0)/*consumed*/ ) : int(*err*) = "mac#%" fun json_array_remove (json: !JSONptr1, index: size_t): int(*err*) = "mac#%" fun json_array_clear (json: !JSONptr1): int(*0*) = "mac#%" fun json_array_extend (json1: !JSONptr1, json2: !JSONptr0): int(*err*) = "mac#%" // end of [json_array_extend] (* ****** ****** *) fun json_object ((*void*)) : JSONptr0 = "mac#%" fun json_object_size (json: !JSONptr1): size_t = "mac#%" fun json_object_get {l1:agz} ( json: !JSONptr l1, key: NSH(string) ) : [l2:agez] vtget1(JSONptr(l1), JSONptr(l2)) = "mac#%" // end of [json_object_get] fun json_object_get_exnmsg {l1:agz} ( json: !JSONptr l1, key: NSH(string), msg: NSH(string) ) : [l2 : agz] vtget1(JSONptr(l1), JSONptr(l2)) = "mac#%" // end of [json_object_get_exnmsg] macdef json_object_get_exnloc (x, k) = json_object_get_exnmsg (,(x), ,(k), $mylocation) // end of [json_object_get_exnloc] (* ****** ****** *) fun json_object_get1 (json: !JSONptr1, key: NSH(string)): JSONptr0 = "mac#%" fun json_object_get1_exnmsg (json: !JSONptr1, key: NSH(string), msg: NSH(string)): JSONptr1 = "mac#%" // end of [json_object_get1_exnmsg] macdef json_object_get1_exnloc (x, k) = json_object_get1_exnmsg (,(x), ,(k), $mylocation) // end of [json_object_get1_exnloc] (* ****** ****** *) fun json_object_set ( json: !JSONptr1, key: NSH(string), value: !JSONptr0 (*preserved*) ) : int(*err*) = "mac#%" // endfun fun json_object_set_nocheck ( json: !JSONptr1, key: NSH(string), value: !JSONptr0 (*preserved*) ) : int(*err*) = "mac#%" fun json_object_set_new ( json: !JSONptr1, key: NSH(string), value: (JSONptr0)/*consumed*/ ) : int(*err*) = "mac#%" fun json_object_set_new_nocheck ( json: !JSONptr1, key: NSH(string), value: (JSONptr0)/*consumed*/ ) : int(*err*) = "mac#%" fun json_object_del ( json: !JSONptr1, key: NSH(string) ) : int(*err*) = "mac#%" fun json_object_clear (json: !JSONptr1): int(*err*) = "mac#%" fun json_object_update (json1: !JSONptr1, json2: !JSONptr0) : int(*err*) = "mac#%" fun json_object_update_existing (json1: !JSONptr1, json2: !JSONptr0) : int(*err*) = "mac#%" fun json_object_update_missing (json1: !JSONptr1, json2: !JSONptr0) : int(*err*) = "mac#%" // end of [json_object_update_missing] (* ****** ****** *) praxi JSONiter_is_gtez {l1,l2:addr} (x: !JSONiter (l1, l2)): [l2 >= null] void // end of [JSONiter_is_gtez] praxi JSONiter_free_null {l1,l2:addr | l2 <= null} (x: JSONiter (l1, l2)): void // end of [JSONiter_free_null] praxi JSONiter_return {l1,l2:addr} (json: !JSONptr l1, iter: JSONiter (l1, l2)): void // end of [JSONiter_return] (* ****** ****** *) fun JSONiter_is_null {l1,l2:addr} (x: !JSONiter (l1, l2)):<> bool (l2==null) = "mac#atspre_ptr_is_null" // end of [JSONiter_is_null] fun JSONiter_isnot_null {l1,l2:addr} (x: !JSONiter (l1, l2)):<> bool (l2 > null) = "mac#atspre_ptr_isnot_null" // end of [JSONiter_isnot_null] overload ~ with JSONiter_isnot_null (* ****** ****** *) // fun json_object_iter {l:agz} (json: !JSONptr (l)) : JSONiter0 (l) = "mac#%" // fun json_object_iter_at{l:agz} (json: !JSONptr (l), key: NSH(string)): JSONiter0 (l) = "mac#%" // fun json_object_iter_next{l1,l2:agz} (json: !JSONptr l1, iter: !JSONiter (l1, l2)): JSONiter0 (l1) = "mac#%" fun json_object_iter_nextret{l1,l2:agz} (json: !JSONptr l1, iter: (JSONiter (l1, l2))): JSONiter0 (l1) = "mac#%" // (* ****** ****** *) absvtype objkey_addr_vtype (l:addr) = ptr stadef objkey = objkey_addr_vtype (* ****** ****** *) praxi objkey_return {l:addr} (json: !JSONptr l, key: objkey l):<> void // end of [objkey_return] (* ****** ****** *) fun json_object_iter_key {l1,l2:agz} (iter: !JSONiter (l1, l2)): objkey l1 = "mac#%" fun json_object_iter_value {l1,l2:agz} (iter: !JSONiter (l1, l2)): JSONptr1 = "mac#%" (* ****** ****** *) fun json_object_iter_set {l1,l2,l3:agz} ( json: !JSONptr l1 , iter: !JSONiter (l1, l2) , value: !JSONptr l3(*preserved*) ) : int(*err*) = "mac#%" // endfun fun json_object_iter_set_new {l1,l2,l3:agz} ( json: !JSONptr l1 , iter: !JSONiter (l1, l2) , value: JSONptr l3 /*consumed*/ ) : int(*err*) = "mac#%" // endfun (* ****** ****** *) /* void *json_object_key_to_iter(const char *key) */ fun json_object_key_to_iter {l:addr} (key: objkey (l)): JSONiter1 (l) = "mac#%" // end of [json_object_key_to_iter] (* ****** ****** *) macdef JSON_COMPACT = $extval (int, "JSON_COMPACT") macdef JSON_ENSURE_ASCII = $extval (int, "JSON_ENSURE_ASCII") macdef JSON_SORT_KEYS = $extval (int, "JSON_SORT_KEYS") macdef JSON_PRESERVE_ORDER = $extval (int, "JSON_PRESERVE_ORDER") macdef JSON_ENCODE_ANY = $extval (int, "JSON_ENCODE_ANY") (* ****** ****** *) typedef json_err = json_error_t (* ****** ****** *) fun json_loads ( inp: NSH(string) , flags: int , error: &json_err? >> _ ) : JSONptr0 = "mac#%" // endfun fun json_loadb {lb:addr} {n1,n2:int | n1 >= n2} ( pf: !bytes(n1) @ lb | bufp: ptr lb, n2: size_t n2 , flags: int , error: &json_err? >> _ ) : JSONptr0 = "mac#%" // endfun fun json_loadf ( inp: FILEref , flags: int , error: &json_err? >> _ ) : JSONptr0 = "mac#%" // endfun fun json_load_file ( path: NSH(string) , flags: int , error: &json_err? >> _ ) : JSONptr0 = "mac#%" // endfun (* ****** ****** *) fun json_dumps (root: !JSONptr1, flags: int): Strptr0 = "mac#%" // end of [json_dumps] fun json_dumpf (root: !JSONptr1, out: FILEref, flags: int): int(*err*) = "mac#%" fun json_dump_file (root: !JSONptr1, path: NSH(string), flags: int): int(*err*) = "mac#%" (* ****** ****** *) // // Some convenience functions // (* ****** ****** *) (* end of [jansson.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/0000755000175000017500000000000013431250607026375 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/Makefile.gen0000777000175000017500000000000013431250607035403 2../../../../../share/Makefile.genustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/HTML/0000755000175000017500000000000013431250607027141 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/HTML/.keeper0000644000175000017500000000000013431250607030403 0ustar brandonbrandon././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/theDeclpostamble.htmlATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/theDeclpostamble.htm0000644000175000017500000000075113431250607032371 0ustar brandonbrandon
This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. SourceForge.net Logo
ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/Makefile.atxt0000644000175000017500000000520213431250607031013 0ustar brandonbrandon%{ // staload STDIO = "libc/SATS/stdio.sats" staload TIME = "libc/SATS/time.sats" // dynload "libatsdoc/dynloadall.dats" // staload "libatsdoc/SATS/libatsdoc_atext.sats" // %}\ %{ fun comment (x: string): atext = atext_nil () // end of [comment] fun make_entry (nm: string): atext = let // val ent = sprintf ("\ all_html:: HTML/%s.html\n\ HTML/%s.html: \ %s_atxt.exe ; ./$< > $@ %s_atxt.txt: %s.atxt ; $(CAT) $< | \ $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ %s_atxt.exe: htmlgendecl_atxt.dats \ %s_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -o $@ $< \ $(DECLATEXT) $(HTMLGENDECL) $(LDPATH) -latsynmark -latsopt -latsdoc -lats -lgmp upload_%s:: ; \ scp HTML/%s.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/jansson/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) %s_atxt.exe cleanall:: ; $(RMF) HTML/%s.html ", @(nm, nm, nm, nm, nm, nm, nm, nm, nm, nm, nm) ) // end of [val] // in atext_strptr (ent) end // end of [make_entry] %}\ # # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### LDPATH := LDPATH += -L$(PATSHOME)/ccomp/atslib/lib ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \\ declatext_sats.o \\ declatext_dats.o \\ declatext_sats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \\ htmlgendecl_sats.o \\ htmlgendecl_dats.o \\ htmlgendecl_sats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \\ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \\ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: #make_entry("jansson") ###### uploadall:: ; \ scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/jansson/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats ###### cleanall:: clean cleanall:: ; $(RMF) TRYIT/*.?ats ###### end of [Makefile] ###### \ %{ implement main () = fprint_filsub (stdout_ref, "Makefile_atxt.txt") %}\ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/jansson.atxt0000644000175000017500000001130413431250607030751 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../jansson.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_jansson_jansson") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/jansson/jansson\ ") (* ****** ****** *) #declpreamble('\ #para('\ This package contains an API in ATS for the
jansson library. ') ')#comment("declpreamble") (* ****** ****** *) #declnamesynop("JSONptr2ptr") #declnamesynop("JSONptr_is_gtez") #declnamesynop("JSONptr_free_null") #declnamesynop("JSONptr_is_null") #declnamesynop("JSONptr_isnot_null") (* ****** ****** *) #declnamesynop("JSONiter2ptr") #declnamesynop("JSONiter_is_gtez") #declnamesynop("JSONiter_free_null") #declnamesynop("JSONiter_return") #declnamesynop("JSONiter_is_null") #declnamesynop("JSONiter_isnot_null") (* ****** ****** *) #declnamesynop("json_typeof") (* ****** ****** *) #declnamesynop("json_is_null") #declnamesynop("json_is_true") #declnamesynop("json_is_false") #declnamesynop("json_is_boolean") #declnamesynop("json_is_integer") #declnamesynop("json_is_real") #declnamesynop("json_is_number") #declnamesynop("json_is_string") #declnamesynop("json_is_array") #declnamesynop("json_is_object") (* ****** ****** *) #declnamesynop("json_incref") #declnamesynop("json_decref") (* ****** ****** *) #declnamesynop("json_null") #declnamesynop("json_true") #declnamesynop("json_false") (* ****** ****** *) #declnamesynop("int2json_int") #declnamesynop("lint2json_int") #declnamesynop("llint2json_int") #declnamesynop("json_integer") #declnamesynop("json_integer_value") #declnamesynop("json_integer_set") (* ****** ****** *) #declnamesynop("json_string") #declnamesynop("json_string_nocheck") #declnamesynop("json_string_value") #declnamesynop("json_string_set") #declnamesynop("json_string_set_nocheck") (* ****** ****** *) #declnamesynop("json_array") #declnamesynop("json_array_size") (* ****** ****** *) #declnamesynop("json_array_get") #declnamesynop("json_array_get_exnmsg") #declnamesynop("json_array_get_exnloc") #declnamesynop("json_array_get1") #declnamesynop("json_array_get1_exnmsg") #declnamesynop("json_array_get1_exnloc") (* ****** ****** *) #declnamesynop("json_array_set") #declnamesynop("json_array_set_new") #declnamesynop("json_array_append") #declnamesynop("json_array_append_new") #declnamesynop("json_array_insert") #declnamesynop("json_array_insert_new") #declnamesynop("json_array_remove") #declnamesynop("json_array_clear") #declnamesynop("json_array_extend") (* ****** ****** *) #declnamesynop("json_object") #declnamesynop("json_object_size") (* ****** ****** *) #declnamesynop("json_object_get") #declnamesynop("json_object_get_exnmsg") #declnamesynop("json_object_get_exnloc") #declnamesynop("json_object_get1") #declnamesynop("json_object_get1_exnmsg") #declnamesynop("json_object_get1_exnloc") (* ****** ****** *) #declnamesynop("json_object_set") #declnamesynop("json_object_set_nocheck") #declnamesynop("json_object_set_new") #declnamesynop("json_object_set_new_nocheck") #declnamesynop("json_object_del") #declnamesynop("json_object_clear") #declnamesynop("json_object_update") #declnamesynop("json_object_update_existing") #declnamesynop("json_object_update_missing") (* ****** ****** *) #declnamesynop("json_object_iter") #declnamesynop("json_object_iter_at") #declnamesynop("json_object_iter_next") #declnamesynop("json_object_iter_nextret") (* ****** ****** *) #declnamesynop("json_object_iter_key") #declnamesynop("json_object_iter_value") #declnamesynop("json_object_iter_set") #declnamesynop("json_object_iter_set_new") #declnamesynop("json_object_key_to_iter") (* ****** ****** *) #declnamesynop("json_loads") #declexample('\ The following code creates a JSON-value based on a given string representation, prints it onto the standard output channel and then free the JSON-value: #pats2xhtmld_tryit('\ // staload "jansson/SATS/jansson.sats" // implement main () = let // var err: json_err? // val root = json_loads ("{\\\\"int\\\\":0}", 0(*flag*), err) val () = assertloc (JSONptr_isnot_null (root)) // val _(*err*) = json_dumpf (rt, stdout_ref, 0) // end of [val] val () = fprint_newline (stdout_ref) // val () = json_decref (root) in // nothing end // end of [main] ') ') #declnamesynop("json_loadb") #declnamesynop("json_loadf") #declnamesynop("json_load_file") (* ****** ****** *) #declnamesynop("json_dumps") #declnamesynop("json_dumpf") #declnamesynop("json_dump_file") (* ****** ****** *) // // HX: various overloaded symbols // (* ****** ****** *) #declname("Overloaded Symbols") (* ****** ****** *) #declnamesynop("iseqz") #declnamesynop("isneqz") (* ****** ****** *) (* end of [jansson.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/TRYIT/0000755000175000017500000000000013431250607027310 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjansson/SATS/DOCUGEN/TRYIT/.keeper0000644000175000017500000000000013431250607030552 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/0000755000175000017500000000000013431250607024420 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/DATS/0000755000175000017500000000000013431250607025153 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/DATS/timing.dats0000644000175000017500000000664513431250607027332 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2012-2018 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM ** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ** THE SOFTWARE. ** *) (* ****** ****** *) (* ** HX-2018-01-09: ** Some timing functions *) (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload TIME = "libats/libc/SATS/time.sats" #staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) #staload "./../SATS/timing.sats" (* ****** ****** *) implement {}(*tmp*) time_spent$show (time) = ( println! ("The time spent: ", time, "(sec)") ) (* end of [time_spent_add$show] *) (* ****** ****** *) implement {}(*tmp*) time_spent_add$show (time) = ( println! ("The time spent: ", time, "(sec)") ) (* end of [time_spent_add$show] *) (* ****** ****** *) implement {a}(*tmp*) time_spent_cloptr (f0) = result where { // val f1 = $UN.castvwtp1{cfun0(a)}(f0) val result = time_spent_cloref(f1) val ((*freed*)) = cloptr_free{void}($UN.castvwtp0(f0)) // } (* end of [time_spent_cloptr] *) implement {a}(*tmp*) time_spent_cloref (f0) = result where { // val clock0 = $UN.cast{double}($TIME.clock()) // val result = f0() // val clock1 = $UN.cast{double}($TIME.clock()) // val tspent = (clock1-clock0) / $UN.cast{double}($TIME.CLOCKS_PER_SEC) // val ((*void*)) = time_spent$show<>(tspent) // } (* end of [time_spent_cloref] *) (* ****** ****** *) // implement {a}(*tmp*) time_spent_add_cloptr (f0, time) = result where { // val f1 = $UN.castvwtp1{cfun0(a)}(f0) val result = time_spent_add_cloref(f1, time) val ((*freed*)) = cloptr_free{void}($UN.castvwtp0(f0)) // } (* end of [time_spent_add_cloptr] *) // implement {a}(*tmp*) time_spent_add_cloref (f0, time) = result where { // val clock0 = $UN.cast{double}($TIME.clock()) // val result = f0() // val clock1 = $UN.cast{double}($TIME.clock()) // val tspent = (clock1-clock0) / $UN.cast{double}($TIME.CLOCKS_PER_SEC) // val ((*void*)) = (time := time + tspent) // val ((*void*)) = time_spent_add$show<>(time) // } (* end of [time_spent_add_cloref] *) // (* ****** ****** *) (* end of [timing.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/DATS/foldleft.dats0000644000175000017500000000713613431250607027636 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2012-2018 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM ** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ** THE SOFTWARE. ** *) (* ****** ****** *) (* ** Functions ** for left-folding aggregates *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/foldleft.sats" // (* ****** ****** *) implement {res}(*tmp*) foldleft_int (n, ini) = let // fun loop {n:int} {i:nat | i <= n} .. ( n: int n, i: int i, acc: res ) : res = ( if (i < n) then let // val acc = foldleft_int$fwork(acc, i) in loop(n, succ(i), acc) // end else acc // end of [if] ) (* end of [loop] *) // in loop(n, 0, ini) end // end of [foldleft_int] (* ****** ****** *) implement {x}{res} foldleft_list (xs, ini) = let // prval () = lemma_list_param (xs) // fun loop {n:nat} .. ( xs: list (x, n), acc: res ) : res = ( case+ xs of | list_cons (x, xs) => let val acc = foldleft_list$fwork (acc, x) in loop (xs, acc) end // end of [list_cons] | list_nil((*void*)) => acc ) (* end of [loop] *) // in loop (xs, ini) end // end of [foldleft_list] (* ****** ****** *) implement {x}{res} foldleft_list_vt (xs, ini) = let // prval () = lemma_list_vt_param (xs) // fun loop {n:nat} .. ( xs: !list_vt (x, n), acc: res ) : res = // loop ( case+ xs of | @list_vt_cons (x, xs1) => let val acc = foldleft_list_vt$fwork (acc, x) val res = loop (xs1, acc); prval () = fold@(xs) in res end // end of [list_cons] | list_vt_nil((*void*)) => acc ) (* end of [loop] *) // in loop (xs, ini) end // end of [foldleft_list_vt] (* ****** ****** *) implement {a}{res} foldleft_array (A, n, ini) = let // prval() = lemma_array_param (A) // fun loop {l:addr}{n:nat} .. ( pf: !array_v (a, l, n) | p: ptr l, n: size_t n, acc: res ) : res = // loop ( if (n > 0) then let // prval (pf1, pf2) = array_v_uncons(pf) val acc = foldleft_array$fwork(acc, !p) val res = loop (pf2 | ptr1_succ(p), pred(n), acc) prval ((*returned*)) = pf := array_v_cons(pf1, pf2) // in res end // end of [then] else (acc) // end of [else] // ) (* end of [loop] *) // in loop (view@(A) | addr@(A), n, ini) end // end of [foldleft_array] (* ****** ****** *) (* end of [foldleft.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/DATS/randgen.dats0000644000175000017500000001137313431250607027453 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2012-2018 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM ** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ** THE SOFTWARE. ** *) (* ****** ****** *) (* ** HX: ** Some functions for ** generating random data *) (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/randgen.sats" // (* ****** ****** *) local // staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* For seeding, please use // fun srandom(seed: uint): void // *) // in (* in of [local] *) implement {}(*tmp*) randint{n}(n) = let // val x = $STDLIB.random() // in $UN.cast{natLt(n)}(x mod $UN.cast2lint(n)) end // end of [randint] end // end of [local] (* ****** ****** *) // implement randgen_val () = 0 implement randgen_val () = 0u // implement randgen_val () = 0l implement randgen_val () = 0ul // implement randgen_val () = 0ll implement randgen_val () = 0ull // implement randgen_val () = 0.0f implement randgen_val () = 0.0 implement randgen_val () = 0.0l // (* ****** ****** *) // implement {a}(*tmp*) randgen_ref(x0) = (x0 := randgen_val((*void*))) // (* ****** ****** *) // implement {a}(*tmp*) randgen_list(n) = list_vt2t(randgen_list_vt(n)) // (* ****** ****** *) // implement {a}(*tmp*) randgen_list_vt (n) = res where { // fun loop {n:nat} .. ( n: int n, res: &ptr? >> list_vt (a, n) ) : void = let in // if n > 0 then let // val () = res := cons_vt{a}{0} (_, _) // end of [val] val+list_vt_cons (x, res1) = res val () = randgen_ref (x) val () = loop (pred (n), res1) // in fold@ (res) end else res := nil_vt((*void*)) // end // end of [loop] // var res: ptr // uninitialized val () = loop (n, res) // } (* end of [randgen_list_vt] *) // (* ****** ****** *) implement {a}(*tmp*) randgen_arrayptr (n) = A where { // val A = arrayptr_make_uninitized (n) // implement array_initize$init (_, x) = randgen_ref (x) // prval pf = arrayptr_takeout (A) val () = array_initize (!(ptrcast(A)), n) prval () = arrayptr_addback (pf | A) // } // end of [randgen_arrayptr] (* ****** ****** *) implement {a}(*tmp*) randgen_arrayref(n) = arrayptr_refize{a}(randgen_arrayptr(n)) // end of [randgen_arrayref] implement {a}(*tmp*) randgen_arrszref(n) = let // val n = g1ofg0_uint(n) in // arrszref_make_arrayref{a}(randgen_arrayref(n), n) // end // end of [randgen_arrszref] (* ****** ****** *) implement {a}(*tmp*) randarr_initize (A, n) = let // implement array_initize$init(_, x) = randgen_ref(x) // in array_initize (A, n) end // end of [randarr_initize] (* ****** ****** *) implement {a}(*tmp*) randgen_matrixptr {m,n}(m, n) = let // val mn = m * n val A0 = arrayptr_make_uninitized(mn) // implement array_initize$init (_, x0) = randgen_ref(x0) // prval pf = arrayptr_takeout{a?}(A0) // val () = array_initize(!(ptrcast(A0)), mn) // prval () = arrayptr_addback{a}(pf | A0) // in $UN.castvwtp0{matrixptr(a,m,n)}(A0) end // end of [randgen_matrixptr] (* ****** ****** *) implement{a} randgen_matrixref (m, n) = ( // matrixptr_refize{a}(randgen_matrixptr(m, n)) // ) // end of [randgen_matrixref] (* ****** ****** *) implement{a} randgen_mtrxszref (m, n) = let // val m = g1ofg0_uint (m) and n = g1ofg0_uint (n) // in // mtrxszref_make_matrixref{a}(randgen_matrixref(m, n), m, n) // end // end of [randgen_mtrxszref] (* ****** ****** *) (* end of [randgen.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/.keeper0000644000175000017500000000000013431250607025662 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/TEST/0000755000175000017500000000000013431250607025177 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/TEST/test01.dats0000644000175000017500000000201613431250607027173 0ustar brandonbrandon(* ** ** Author: Hongwei Xi (hwxi AT gmail DOT com) ** Start Time: June, 2012 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/foldleft.sats" staload _(*anon*) = "./../DATS/foldleft.dats" (* ****** ****** *) fun factorial {n:nat} (n: int n): int = let // typedef res = int // implement foldleft_int$fwork (acc, n) = acc * (n+1) // in foldleft_int (n, 1) end // end of [factorial] (* ****** ****** *) fun fibonacci {n:nat} (n: int n): int = let // typedef res = (int, int) // implement foldleft_int$fwork (acc, n) = (acc.1, acc.0 + acc.1) // in // if n > 0 then let val acc = foldleft_int (n-1, @(0, 1)) in acc.1 end else 0 // end of [if] // end // end of [fibonacci] (* ****** ****** *) implement main () = let // val () = assertloc ( factorial (10) = 1*2*3*4*5*6*7*8*9*10 ) (* end of [val] *) // val () = assertloc (fibonacci (20) = 6765) // in 0(*normal-exit*) end // end of [main] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/TEST/Makefile0000644000175000017500000000147413431250607026645 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=patscc ###### all:: regress:: cleanall:: ###### # all:: \ test01 test01: test01.dats ; \ $(PATSCC) -cleanaft -IATS $(PATSHOME)/contrib -o $@ $< # regress:: test01; ./$< cleanall:: ; $(RMF) test01 # ###### # all:: \ test02 test02: test02.dats ; \ $(PATSCC) -cleanaft -DATS_MEMALLOC_LIBC -IATS $(PATSHOME)/contrib -o $@ $< # regress:: test02; ./$< cleanall:: ; $(RMF) test02 # ###### # all:: \ test03 test03: test03.dats ; \ $(PATSCC) -cleanaft -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -IATS $(PATSHOME)/contrib -o $@ $< # regress:: test03; ./$< cleanall:: ; $(RMF) test03 # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean ###### ###### end of [Makefile] ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/TEST/test02.dats0000644000175000017500000000160613431250607027200 0ustar brandonbrandon(* ** ** Author: Hongwei Xi (hwxi AT gmail DOT com) ** Start Time: June, 2012 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "./../SATS/foldleft.sats" staload _(*anon*) = "./../DATS/foldleft.dats" (* ****** ****** *) fun factorial {n:nat} (n: int n): int = let // val xs = list_tabulate (n) where { implement list_tabulate$fopr (i) = i } // end of [where] // end of [val] // typedef res = int // val res = foldleft_list_vt (xs, 1) where { implement foldleft_list_vt$fwork (acc, n) = acc * (n+1) } // end of [where] // end of [val] // val () = list_vt_free (xs) // in res end // end of [factorial] (* ****** ****** *) implement main () = let // val () = assertloc (factorial (10) = 1*2*3*4*5*6*7*8*9*10) // in 0(*normal-exit*) end // end of [main] (* ****** ****** *) (* end of [test2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/TEST/test03.dats0000644000175000017500000000227613431250607027205 0ustar brandonbrandon(* ** ** Author: Hongwei Xi (hwxi AT gmail DOT com) ** Start Time: June, 2012 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload TIME = "libats/libc/SATS/time.sats" staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) staload "./../SATS/randgen.sats" staload _(*anon*) = "./../DATS/randgen.dats" (* ****** ****** *) // #define N 100 // implement randgen_val () = $UNSAFE.cast{int}($STDLIB.random()) mod N // implement randgen_val () = $STDLIB.drand48() // (* ****** ****** *) implement main () = let // val out = stdout_ref // val () = $STDLIB.srand48 ($UNSAFE.cast2lint($TIME.time_get())) val () = $STDLIB.srandom ($UNSAFE.cast2uint($TIME.time_get())) // val xs = randgen_list (10) val () = fprintln! (out, "xs = ", xs) // val xs = randgen_list_vt (10) val () = fprintln! (out, "xs = ", xs) val ((*freed*)) = list_vt_free (xs) // val n = i2sz(10) val xs = randgen_arrayptr(n) val () = ( fprint! (out, "xs = "); fprint_arrayptr(out, xs, n); fprint_newline(out) ) val ((*freed*)) = arrayptr_free (xs) // in 0(*normal-exit*) end // end of [main] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/SATS/0000755000175000017500000000000013431250607025172 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/SATS/randgen.sats0000644000175000017500000000550513431250607027511 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2012-2018 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. ** *) (* ****** ****** *) (* ** Functions for generating random data *) (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.mytesting" // (* ****** ****** *) (* sortdef t0p = t@ype and vt0p = viewt@ype *) (* ****** ****** *) (* ** HX: ** please use srandom for seeding *) (* ****** ****** *) // fun{} randint{n:pos}(n: int n): natLt(n) // (* ****** ****** *) // fun {a:vt0p} randgen_val(): (a) // for randval generation // fun {a:vt0p} // for randval randgen_ref(x: &(a?) >> a): void // initialization // (* ****** ****** *) fun {a:t0p} randgen_list{n:nat}(n: int n): list(a, n) fun {a:vt0p} randgen_list_vt{n:nat}(n: int n): list_vt(a, n) (* ****** ****** *) // fun {a:vt0p} randgen_arrayptr {n:int}(n: size_t(n)): arrayptr(a, n) // fun {a:vt0p} randgen_arrayref {n:int}(n: size_t(n)): arrayref(a, n) // fun {a:vt0p} randgen_arrszref(n: size_t): arrszref(a) // (* ****** ****** *) // fun {a:vt0p} randarr_initize {n:int} (A: &(@[a?][n]) >> @[a][n], n: size_t(n)): void // end of [randarr_initize] // (* ****** ****** *) // fun {a:vt0p} randgen_matrixptr {m,n:int} (m: size_t(m), n: size_t(n)): matrixptr(a, m, n) // fun {a:vt0p} randgen_matrixref {m,n:int} (m: size_t(m), n: size_t(n)): matrixref(a, m, n) // fun {a:vt0p} randgen_mtrxszref(m: size_t, n: size_t): mtrxszref(a) // (* ****** ****** *) (* end of [randgen.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/SATS/timing.sats0000644000175000017500000000420713431250607027360 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2012-2018 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM ** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ** THE SOFTWARE. ** *) (* ****** ****** *) (* ** HX-2018-01-09: ** Some timing functions *) (* ****** ****** *) // typedef cfun0(a:vt0p) = () - a // (* ****** ****** *) // fun{} time_spent$show(time: double): void // fun {a:vt0p} time_spent_cloptr (f0: ((*void*)) - (a)): (a) fun {a:vt0p} time_spent_cloref (f0: ((*void*)) - (a)): (a) // (* ****** ****** *) // fun{} time_spent_add$show(time: double): void // (* ****** ****** *) fun {a:vt0p} time_spent_add_cloptr (f0: () - (a), time: &double >> _): a fun {a:vt0p} time_spent_add_cloref (f0: () - (a), time: &double >> _): a // (* ****** ****** *) (* end of [timing.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/SATS/foldleft.sats0000644000175000017500000000461513431250607027673 0ustar brandonbrandon(***********************************************************************) (* *) (* ATS/contrib/atshwxi *) (* *) (***********************************************************************) (* ** Copyright (C) 2012-2018 Hongwei Xi, ATS Trustful Software, Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), ** to deal in the Software without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Software, and to permit persons to whom the ** Software is furnished to do so, subject to the following stated conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ** IN THE SOFTWARE. ** *) (* ****** ****** *) (* ** HX: ** Some functions for ** left-folding aggregates *) (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.HX.mytesting" // (* ****** ****** *) // fun {res:vt0p} foldleft_int(n: intGte(0), ini: res): res fun {res:vt0p} foldleft_int$fwork(res: res, i: intGte(0)): res // (* ****** ****** *) // fun {x:t0p} {res:vt0p} foldleft_list (xs: List(x), ini: res): res fun {x:t0p} {res:vt0p} foldleft_list$fwork(res: res, x: x): res // (* ****** ****** *) // fun {x:vt0p} {res:vt0p} foldleft_list_vt (xs: !List_vt(x), ini: res): res fun {x:vt0p} {res:vt0p} foldleft_list_vt$fwork(res: res, x: &x >> _): res // (* ****** ****** *) // fun {x:vt0p} {res:vt0p} foldleft_array {n:int} ( A: &(@[x][n]) >> _, n: size_t n, ini: res ) : res // end of [foldleft_array] fun {x:vt0p} {res:vt0p} foldleft_array$fwork(acc: res, x: &x >> _): res // (* ****** ****** *) (* end of [foldleft.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-mytesting/README0000644000175000017500000000057713431250607025311 0ustar brandonbrandon###### # # README for mytesting # ###### # # HX-2017-01-16: # # Note that the package is moved to # $PATSHOME/atscntrb/atscntrb-hx-mytesting # This package is for backward compatibility # # Please avoid using it and use prelude/grandom # instead!!! # ###### # # HX-2015-06-28: # # Note that randgen-functions have all been moved into prelude/grandom. # ###### end of [README] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/0000755000175000017500000000000013431250607024255 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/DATS/0000755000175000017500000000000013431250607025010 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/DATS/json.dats0000644000175000017500000001761413431250607026647 0ustar brandonbrandon(* ****** ****** *) (* ** ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom ** *) (* ****** ****** *) (* ** API in ATS for json-c *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) (* ** ** Author Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com ** Start time: May, 2013 ** *) (* ****** ****** *) // // HX-2013-05: // mostly for some convenience functions // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/json.sats" (* ****** ****** *) staload "./../SATS/arraylist.sats" (* ****** ****** *) implement{} not_json_bool (tf) = if tf != 0 then json_false else json_true // end of [not_json_bool] (* ****** ****** *) // implement{} json_object_is_null (jso) = json_object2ptr (jso) = the_null_ptr implement{} json_object_isnot_null (jso) = json_object2ptr (jso) > the_null_ptr // (* ****** ****** *) // implement{} print_json_object (jso) = fprint_json_object (stdout_ref, jso) implement{} print_json_object_ext (jso, flags) = fprint_json_object_ext (stdout_ref, jso, flags) // implement{} prerr_json_object (jso) = fprint_json_object (stderr_ref, jso) implement{} prerr_json_object_ext (jso, flags) = fprint_json_object_ext (stderr_ref, jso, flags) // (* ****** ****** *) implement{} fprint_json_object (out, jso) = let val (fpf | str) = json_object_to_json_string (jso) val () = fprint_strptr (out, str) prval () = fpf (str) in // nothing end // end of [fprint_json_object] implement{} fprint_json_object_ext (out, jso, flags) = let val (fpf | str) = json_object_to_json_string_ext (jso, flags) val () = fprint_strptr (out, str) prval () = fpf (str) in // nothing end // end of [fprint_json_object_ext] (* ****** ****** *) implement{env} json_object_iforeach$cont (i, v, env) = true (* implement{env} json_object_iforeach$fwork (i, v, env) = () *) implement{} json_object_iforeach (jso) = let var env: void = () in json_object_iforeach_env (jso, env) end // end of [json_object_iforeach] implement{env} json_object_iforeach_env (jso, env) = let // stadef jso = json_object // fun loop ( alst: !array_list1 , n: int, i: intGte(0), env: &(env) >> _ ) : void = let in // if i < n then let val [l:addr] jsi = array_list_get_idx (alst, i) val jsi = $UN.castvwtp0{jso(l)}(jsi) val cont = json_object_iforeach$cont (i, jsi, env) val () = if cont then json_object_iforeach$fwork (i, jsi, env) prval () = $UN.cast2void (jsi) in loop (alst, n, i+1, env) end else () // end of [if] // end // end of [loop] // val isarr = json_object_is_type (jso, json_type_array) val () = if (isarr = 0) then { val ( ) = assertmsgloc (false , "[json_object_iforeach] is applied to a non-array json object:\n" ) (* end of [val] *) } // val (fpf | alst) = json_object_get_array (jso) // val () = assertloc (ptrcast (alst) > 0) val () = loop (alst, array_list_length (alst), 0, env) prval () = minus_addback (fpf, alst | jso) // in // nothing end // end of [json_object_iforeach_env] (* ****** ****** *) implement{env} json_object_kforeach$cont (k, v, env) = true (* implement{env} json_object_kforeach$fwork (k, v, env) = () *) implement{} json_object_kforeach (jso) = let var env: void = () in json_object_kforeach_env (jso, env) end // end of [json_object_kforeach] implement{env} json_object_kforeach_env (jso, env) = let // stadef jso = json_object stadef iter(l:addr) = json_object_iterator(l) // overload != with json_object_iter_notequal of 10 // fun loop{l:addr} ( jso: !jso(l) , jsi: &iter(l), jsiEnd: &iter(l) , env: &env >> _ ) : void = let in // if jsi != jsiEnd then let val (fpf_k | k) = json_object_iter_peek_name (jsi) val (fpf_v | v) = json_object_iter_peek_value (jsi) val cont = json_object_kforeach$cont (k, v, env) val () = if cont then json_object_kforeach$fwork (k, v, env) prval () = fpf_k (k) prval () = fpf_v (v) val () = json_object_iter_next (jsi) in loop (jso, jsi, jsiEnd, env) end else () // end of [if] // end // end of [loop] // val isobj = json_object_is_type (jso, json_type_object) val () = if (isobj = 0) then { val ( ) = assertmsgloc (false , "[json_object_kforeach] is applied to a non-object json-object:\n" ) (* end of [val] *) } // var jsi = json_object_iter_begin (jso) var jsiEnd = json_object_iter_end (jso) // val () = loop (jso, jsi, jsiEnd, env) // val () = json_object_iter_clear (jso, jsi) val () = json_object_iter_clear (jso, jsiEnd) // in // nothing end // end of [json_object_kforeach_env] (* ****** ****** *) implement{} json_objlst_from_file (fname) = let // val opt = fileref_open_opt (fname, file_mode_r) // in // case+ opt of | ~Some_vt (inp) => let val str = fileref_get_file_string (inp) val () = fileref_close (inp) val res = json_tokener_parse_list ($UN.strptr2string(str)) val ((*void*)) = strptr_free (str) in res end // end of [Some_vt] | ~None_vt ((*void*)) => list_vt_nil () // end // end of [json_objlst_from_file] implement{} json_objlst_from_file_delim (fname, delim) = let // implement json_tokener_parse$skip<> (inp) = let val nskip = strspn (inp, delim) in g1u2i(nskip) end // end of [json_tokener_parse$skip] // in json_objlst_from_file (fname) end // end of [json_objlst_from_file_delim] (* ****** ****** *) implement{} json_tokener_parse$skip (inp) = let prval () = lemma_string_param (inp) in 0 end implement{} json_tokener_parse_list (inp) = let // vtypedef jobj0 = json_object0 vtypedef res = List0_vt (jobj0) // overload + with add_ptr_bsz // fnx loop ( tok: !json_tokener1 , inp: string, len: intGte(0), res: &res? >> res ) : void = let val inp = g1ofg0(inp) val nskip = json_tokener_parse$skip (inp) val inp = $UN.cast{string}(string2ptr(inp) + i2sz(nskip)) val len = $UN.cast{intGte(0)}(len - nskip) in if len > 0 then loop2 (tok, inp, len, res) else res := list_vt_nil{jobj0}() // end of [if] end // end of [loop] and loop2 ( tok: !json_tokener1 , inp: string, len: intGte(0) , res: &res? >> res ) : void = let // val jso = json_tokener_parse_ex (tok, inp, len) val err = json_tokener_get_error (tok) // in // case+ 0 of | _ when err = json_tokener_success => let val () = res := list_vt_cons{jobj0}{0}(jso, _) val+list_vt_cons (_, res1) = res val ofs = json_tokener_get_char_offset (tok) val inp2 = $UN.cast{string}(string2ptr(inp) + g0i2u(ofs)) val len2 = len - ofs val len2 = $UN.cast{intGte(0)}(len2) val () = loop (tok, inp2, len2, res1) prval () = fold@ (res) in // nothing end // end of [_ when ...] | _ => let val _freed = json_object_put (jso) in res := list_vt_nil{jobj0}() end // end of [_] // end // end of [loop2] // val tok = json_tokener_new () val () = assertloc (json_tokener2ptr(tok) > 0) // var res: ptr val len = length(inp) val len = g1ofg0(len) val () = loop (tok, inp, g1u2i(len), res) val () = json_tokener_free (tok) // in res end // end of [jso_tokener_parse_list] (* ****** ****** *) implement{} json_tokener_parse_list_delim (inp, delim) = let // implement json_tokener_parse$skip<> (inp) = let val nskip = strspn (inp, delim) in g1u2i(nskip) end // end of [json_tokener_parse$skip] // in json_tokener_parse_list (inp) end // end of [json_tokener_parse_list_delim] (* ****** ****** *) (* end of [json.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/DATS/json_ML.dats0000644000175000017500000001640013431250607027227 0ustar brandonbrandon(* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) (* ** A quasi ML-style API in ATS for json-c *) (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../SATS/json.sats" #staload "./../SATS/json_ML.sats" (* ****** ****** *) implement print_jsonval(jsv) = fprint_jsonval(stdout_ref, jsv) implement prerr_jsonval(jsv) = fprint_jsonval(stderr_ref, jsv) (* ****** ****** *) implement fprint_val = fprint_jsonval (* ****** ****** *) implement fprint_jsonval (out, jsv) = let // (* val () = println!("fprint_jsonval") *) // in // case+ jsv of // | JSONnul() => fprint! (out, "JSONnul(", ")") | JSONint(lli) => fprint! (out, "JSONint(", lli, ")") | JSONbool(bool) => fprint! (out, "JSONbool(", bool, ")") | JSONfloat(dbl) => fprint! (out, "JSONfloat(", dbl, ")") | JSONstring(str) => fprint! (out, "JSONstring(", str, ")") // | JSONarray(xs) => { val () = fprint(out, "JSONarray(") val () = fprint_jsonvalist(out, xs) val ((*closing*)) = fprint(out, ")") } // | JSONobject(lxs) => { val () = fprint(out, "JSONobject(") val () = fprint_labjsonvalist(out, lxs) val ((*closing*)) = fprint(out, ")") } // end // end of [fprint_jsonval] (* ****** ****** *) implement fprint_jsonvalist (out, xs) = let // macdef SEP = ("; ") // fun loop ( xs: jsonvalist, i0: int ) : void = let // in // case+ xs of | list_nil () => ((*void*)) // list_nil | list_cons (x, xs) => let val () = if i0 > 0 then fprint(out, SEP) // end of [if] val () = fprint_jsonval(out, x) in loop(xs, i0+1) end // end of [list_cons] // end // end of [loop] // in loop (xs, 0(*i0*)) end // end of [fprint_jsonvalist] (* ****** ****** *) implement fprint_labjsonvalist (out, lxs) = let // macdef SEP = "; " macdef MAPTO = ": " // fun loop ( lxs: labjsonvalist, i0: int ) : void = let // in // case+ lxs of | list_nil () => ((*void*)) | list_cons (lx, lxs) => let val () = if i0 > 0 then fprint(out, SEP) // end of [if] val () = fprint!(out, lx.0, MAPTO, lx.1) in loop(lxs, i0+1) end // end of [list_cons] // end // end of [loop] // in loop(lxs, 0(*i0*)) end // end of [fprint_labjsonvalist] (* ****** ****** *) implement jsonval_ofstring(str) = let val jso = json_tokener_parse(str) in json_object2val0(jso) end // end of [jsonval_ofstring] (* ****** ****** *) implement jsonval_tostring (jsv) = rep2 where { // val jso = jsonval_objectify(jsv) // val (fpf | rep) = json_object_to_json_string(jso) val rep2 = string0_copy($UN.strptr2string(rep)) prval ((*returned*)) = fpf(rep) // val freed(*1*) = json_object_put(jso) // } (* end of [jsonval_tostring] *) (* ****** ****** *) implement json_object2val0 (jso) = let val jsv = json_object2val1(jso) val _(*int*) = json_object_put(jso) in jsv end // end of [json_object2val0] (* ****** ****** *) implement json_object2val1 (jso) = let // extern praxi __assert_agz {l:addr} ( x0: !json_object(l) ) : [l > null] void // val type = json_object_get_type(jso) // in // case+ 0 of | _ when type = json_type_null => JSONnul() | _ when type = json_type_int => let prval () = __assert_agz(jso) val i = json_object_get_int(jso) in JSONint($UN.cast2llint(i)) end // end of [json_type_int] | _ when type = json_type_boolean => let prval () = __assert_agz(jso) val tf = json_object_get_boolean(jso) in JSONbool(tf) end // end of [json_type_boolean] | _ when type = json_type_double => let prval () = __assert_agz (jso) val dbl = json_object_get_double(jso) in JSONfloat(dbl) end // end of [json_type_double] | _ when type = json_type_string => let prval () = __assert_agz(jso) val (fpf | str) = json_object_get_string(jso) val str2 = strptr2string(strptr1_copy(str)) prval ((*returned*)) = fpf(str) in JSONstring(str2) end // end of [json_type_string] | _ when type = json_type_array => let vtypedef tenv = ptr(* list_vt *) prval () = __assert_agz(jso) val asz = json_object_array_length(jso) local implement json_object_iforeach$fwork (i, v, env) = { val v2 = json_object2val1(v) val vs2 = $UN.castvwtp0{jsonvalist_vt}(env) val () = ( env := $UN.castvwtp0{ptr} (list_vt_cons{jsonval}(v2, vs2)) ) (* end of [val] *) } in (* in of [local] *) // var env: tenv = the_null_ptr val (_) = json_object_iforeach_env(jso, env) val vs2 = $UN.castvwtp0{jsonvalist_vt}(env) // end // end of [local] in JSONarray(list_vt2t(list_vt_reverse(vs2))) end // end of [json_type_array] | _ when type = json_type_object => let typedef tenv = ptr prval () = __assert_agz (jso) local implement json_object_kforeach$fwork (k, v, env) = { val k2 = strptr1_copy(k) val k2 = strptr2string(k2) val v2 = json_object2val1 (v) val kvs = $UN.cast{labjsonvalist}(env) val kvs = list_cons{labjsonval}((k2, v2), kvs) val ((*void*)) = env := $UN.cast2ptr (kvs) } in (* in of [local] *) // var env: tenv = the_null_ptr val (_) = json_object_kforeach_env(jso, env) // end // end of [local] val kvs = $UN.castvwtp0{List0_vt(labjsonval)}(env) val kvs = list_vt_reverse (kvs) in JSONobject(list_vt2t(kvs)) end // end of [json_type_object] | _ (*deadcode*) => let val () = assertloc (false) in exit(1) end // end // end of [json_object2val1] (* ****** ****** *) implement jsonval_objectify (jsv0) = let // fun auxarr ( jarr: !json_object1 , jsvs: jsonvalist, i0: intGte(0) ) : void = ( case+ jsvs of | list_nil ((*void*)) => ((*void*)) | list_cons (jsv, jsvs) => let val jso = jsonval_objectify(jsv) val err = json_object_array_add(jarr, jso) in auxarr(jarr, jsvs, succ(i0)) end // end of [list_cons] ) // fun auxobj ( jobj: !json_object1 , ljsvs: labjsonvalist ) : void = ( case+ ljsvs of | list_nil () => ((*void*)) // list_nil | list_cons ( (l, jsv), ljsvs ) => let val jso = jsonval_objectify(jsv) val ((*void*)) = json_object_object_add(jobj, l, jso) in auxobj ( jobj, ljsvs ) end // end of [list_cons] ) // in // case+ jsv0 of // | JSONnul() => $UN.castvwtp0{json_object0}(the_null_ptr) // | JSONint(lli) => json_object_new_int64($UN.cast{int64}(lli)) // | JSONbool(tf) => json_object_new_boolean(tf) // | JSONfloat(dbl) => json_object_new_double(dbl) // | JSONstring(str) => json_object_new_string(str) // | JSONarray(jsvs) => let val jarr = json_object_new_array() val isnot = json_object_isnot_null(jarr) val ((*void*)) = if isnot then auxarr(jarr, jsvs, 0) in jarr // end of [val] end // end of [JSONarray] // | JSONobject(ljsvs) => let val jobj = json_object_new_object() val isnot = json_object_isnot_null(jobj) val ((*void*)) = if isnot then auxobj(jobj, ljsvs) in jobj end // end of [JSONobject] // end // end of [jsonval_objectify] (* ****** ****** *) (* end of [json_ML.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/mylibies.hats0000644000175000017500000000052113431250607026751 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-29: // For downstream staloading // (* ****** ****** *) // #staload JSON = "./SATS/json.sats" #staload JSON_ML = "./SATS/json_ML.sats" // (* ****** ****** *) // #staload _(*JSON*) = "./DATS/json.dats" #staload _(*JSON_ML*) = "./DATS/json_ML.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/.keeper0000644000175000017500000000000013431250607025517 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/0000755000175000017500000000000013431250607025034 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/test01.dats0000644000175000017500000000341513431250607027034 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [json] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT edu ** Start Time: May, 2013 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/linkhash.sats" (* ****** ****** *) implement main0 () = { // fun free_fn ( x: lh_entry0 ) : void = let // val ptr = $UN.castvwtp0{ptr}(x) // in println! ("[free_fn] is called") end // end of [free_fn] // val HT = lh_kchar_table_new (10, "mytable_kchar", free_fn) val () = assertloc (ptrcast(HT) > 0) // val () = assertloc (lh_table_insert (HT, string2ptr"girl1", string2ptr"Zoe") = 0) val () = assertloc (lh_table_insert (HT, string2ptr"girl2", string2ptr"Chloe") = 0) // local var x0: ptr val found = lh_table_lookup_ex(HT, string2ptr"girl1", x0) in val () = assertloc (found > 0) val () = println! ("HT[girl1] = ", $UN.cast{string}(x0)) end // end of [local] // local val ( fpf | ent ) = lh_table_lookup_entry (HT, string2ptr"girl2") in // val () = assertloc (ptrcast(ent) > 0) // val k0 = lh_entry_get_key(ent) and x0 = lh_entry_get_val(ent) // val () = println! ("HT[", $UN.cast{string}(k0), "] = ", $UN.cast{string}(x0)) // prval ((*returned*)) = fpf (ent) // end // end of [local] // local val ( fpf | ent ) = lh_table_lookup_entry (HT, string2ptr"girl3") in val () = assertloc (ptrcast(ent) = 0) prval ((*returned*)) = fpf(ent) end // end of [local] // val () = assertloc (lh_table_delete (HT, string2ptr"girl1") = 0) val () = assertloc (lh_table_delete (HT, string2ptr"girl2") = 0) val () = assertloc (lh_table_delete (HT, string2ptr"girl3") < 0) // val () = lh_table_free (HT) // } // end of [main0] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/test00.dats0000644000175000017500000000103213431250607027024 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [libjson-c] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxi AT gmail DOT edu *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "./../SATS/json.sats" // (* ****** ****** *) implement main0 () = { // val () = println!("json-c version str = ", json_c_version()) val () = println!("json-c version num = ", json_c_version_num()) // } // end of [main0] (* ****** ****** *) (* end of [test00.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/testlib.dats0000644000175000017500000000067613431250607027370 0ustar brandonbrandon// // Some library code for testing // (* ****** ****** *) #define ATS_PACKNAME "testlib" (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) local // #include "./../DATS/json.dats" #include "./../DATS/json_ML.dats" // in (* in of [local] *) // // HX: it is intentionally left to be empty // end // end of [local] (* ****** ****** *) (* end of [testlib.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/test07.dats0000644000175000017500000000352213431250607027041 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [json_ML] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: July, 2013 ** Authoremail: gmhwxiATgmailDOTedu *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/json.sats" staload "./../SATS/json_ML.sats" (* ****** ****** *) staload _(*anon*) = "./../DATS/json.dats" staload _(*anon*) = "./../DATS/json_ML.dats" (* ****** ****** *) fun json_object2val0_list ( xs: List_vt(json_object0) ) : List0_vt(jsonval) = let in // case+ xs of | ~list_vt_cons (x, xs) => let val v = json_object2val0(x) val vs = json_object2val0_list(xs) in list_vt_cons{jsonval}(v, vs) end // end of [list_vt_cons] | ~list_vt_nil() => list_vt_nil() // end // end of [json_object2val0_list] (* ****** ****** *) val () = { // val x = jsonval_ofstring "1" val () = fprintln! (stdout_ref, "x = ", x) // val x = jsonval_ofstring "1.0" val () = fprintln! (stdout_ref, "x = ", x) // val x = jsonval_ofstring "'foo'" val () = fprintln! (stdout_ref, "x = ", x) // val x = jsonval_ofstring "[1, 2, 3]" val () = fprintln! (stdout_ref, "x = ", x) // val x = jsonval_ofstring "{'a':1, 'b':2, 'c':3}" val () = fprintln! (stdout_ref, "x = ", x) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val xs = json_tokener_parse_list ("\ {'relation':'self', 'name':'Hongwei'}\n\ {'relation':'wife', 'name':'Jinning'}\n\ {'relation':'daughter', 'name':'Zoe'}\n\ {'relation':'daughter', 'name':'Chloe'}\n\ ") // val vs = json_object2val0_list (xs) // val () = fprint_list_vt_sep(out, vs, "\n") val () = list_vt_free(vs) val () = fprint_newline(out) // } // end of [val] (* ****** ****** *) implement main0((*void*)) = () (* ****** ****** *) (* end of [test07.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/test06.dats0000644000175000017500000000233313431250607027037 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [json] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: July, 2013 ** Authoremail: gmhwxiATgmailDOTedu *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/json.sats" staload _(*anon*) = "./../DATS/json.dats" (* ****** ****** *) fun json_objlst_fprint_and_free ( out: FILEref, xs: List_vt (json_object0), i: int ) : void = let in // case+ xs of | ~list_vt_cons (x, xs) => let val () = fprint! (out, "jobj(", i, ") = ", x) val () = fprint_newline (out) val _freed = json_object_put (x) in json_objlst_fprint_and_free (out, xs, i+1) end // end of [list_vt_cons] | ~list_vt_nil () => () // end // end of [json_objlst_fprint_and_free] (* ****** ****** *) implement main0((*void*)) = { // val out = stdout_ref // val xs = json_tokener_parse_list ("\ {'relation':'self', 'name':'Hongwei'}\n\ {'relation':'wife', 'name':'Jinning'}\n\ {'relation':'daughter', 'name':'Zoe'}\n\ {'relation':'daughter', 'name':'Chloe'}\n\ ") // val () = json_objlst_fprint_and_free (out, xs, 0) // } // end of [main0] (* ****** ****** *) (* end of [test06.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/test05.dats0000644000175000017500000000360213431250607027036 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [json] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTedu *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/json.sats" staload _(*anon*) = "./../DATS/json.dats" (* ****** ****** *) fun foo1{l:agz} ( jso: !json_object(l) ) : void = { // vtypedef iter = json_object_iterator(l) // var it: iter = json_object_iter_begin(jso); var itEnd: iter = json_object_iter_end(jso); // val () = while (it != itEnd) { val ( fpf | name ) = json_object_iter_peek_name (it) val () = println! ("name1 = ", name) prval () = fpf (name) val ( fpf | value ) = json_object_iter_peek_value (it) val () = println! ("value1 = ", value) prval () = fpf (value) val () = json_object_iter_next (it) } // val () = json_object_iter_clear (jso, it) val () = json_object_iter_clear (jso, itEnd) // } (* end of [foo1] *) (* ****** ****** *) fun foo2{l:agz} (jso: !json_object(l)): void = let // implement{env} json_object_kforeach$fwork (k, v, env) = { val () = println! ("name2 = ", k) val () = println! ("value2 = ", v) } // in json_object_kforeach (jso) end // end of [foo2] (* ****** ****** *) implement main0((*void*)) = { // val out = stdout_ref // val jso1 = json_tokener_parse ("{'relation':'daughter', 'name':'Zoe', 'age':8}") val () = assertloc (ptrcast (jso1) > 0) val () = fprintln! (out, "jso1 = ", jso1) // val jso2 = json_tokener_parse ("{'relation':'daughter', 'name':'Chloe', 'age':0}") val () = assertloc (ptrcast (jso2) > 0) val () = fprintln! (out, "jso2 = ", jso2) // val () = foo1 (jso1) val () = foo2 (jso2) // val () = assertloc (json_object_put(jso1) > 0) val () = assertloc (json_object_put(jso2) > 0) // } // end of [main0] (* ****** ****** *) (* end of [test05.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/Makefile0000644000175000017500000000361013431250607026474 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=patscc PATSHOMEQ="$(PATSHOME)" ###### CFLAGS := CFLAGS += -I./../.. CFLAGS += $(shell pkg-config --cflags json-c) ###### LDFLAGS := LDFLAGS += $(shell pkg-config --libs json-c) LDFLAGS2 := LDFLAGS2 += -lgc LDFLAGS2 += $(shell pkg-config --libs json-c) ###### all:: regress:: cleanall:: ###### # all:: \ test00 test00: \ test00.dats ; \ $(PATSCC) $(CFLAGS) -o $@ $< $(LDFLAGS) # regress:: test00; ./$< cleanall:: ; $(RMF) test00 # ###### # all:: \ test01 test01: \ test01.dats ; \ $(PATSCC) -cleanaft $(CFLAGS) -o $@ $< $(LDFLAGS) # regress:: test01; ./$< cleanall:: ; $(RMF) test01 # ###### # all:: \ test02 test02: \ test02.dats ; \ $(PATSCC) -cleanaft \ -DATS_MEMALLOC_GCBDW $(CFLAGS) -o $@ $< $(LDFLAGS2) # regress:: test02; ./$< cleanall:: ; $(RMF) test02 # ###### # all:: \ test03 test03: \ test03.dats ; \ $(PATSCC) -cleanaft \ -DATS_MEMALLOC_GCBDW $(CFLAGS) -o $@ $< $(LDFLAGS2) # regress:: test03; ./$< cleanall:: ; $(RMF) test03 # ###### # all:: \ test04 test04: \ test04.dats ; \ $(PATSCC) -cleanaft \ -DATS_MEMALLOC_GCBDW $(CFLAGS) -o $@ $< $(LDFLAGS2) # regress:: test04; ./$< cleanall:: ; $(RMF) test04 # ###### all:: \ test05 test05: \ test05.dats ; \ $(PATSCC) -cleanaft \ -DATS_MEMALLOC_GCBDW $(CFLAGS) -o $@ $< $(LDFLAGS2) regress:: test05; ./$< cleanall:: ; $(RMF) test05 ###### # all:: \ test06 test06: \ test06.dats ; \ $(PATSCC) -cleanaft \ -DATS_MEMALLOC_GCBDW $(CFLAGS) -o $@ $< $(LDFLAGS2) # regress:: test06; ./$< cleanall:: ; $(RMF) test06 # ###### # all:: \ test07 test07: \ test07.dats ; \ $(PATSCC) -cleanaft \ -DATS_MEMALLOC_GCBDW $(CFLAGS) -o $@ $< testlib.dats $(LDFLAGS2) # regress:: test07; ./$< cleanall:: ; $(RMF) test07 # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/test02.dats0000644000175000017500000000205313431250607027032 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [json] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTedu *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/arraylist.sats" (* ****** ****** *) implement main0 () = { // fun free_fn (x: ptr): void = () // val AL = array_list_new (free_fn) val () = assertloc (ptrcast(AL) > 0) // val () = println! ("AL.length = ", array_list_length (AL)) // val () = assertloc (array_list_add (AL, string2ptr"0") = 0) val () = println! ("AL.length = ", array_list_length (AL)) // val () = assertloc (array_list_add (AL, string2ptr"1") = 0) val () = println! ("AL.length = ", array_list_length (AL)) // val () = println! ("AL[0] = ", $UN.cast{string}(array_list_get_idx (AL, 0))) val () = println! ("AL[1] = ", $UN.cast{string}(array_list_get_idx (AL, 1))) // val () = array_list_free (AL) // } // end of [main0] (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/test04.dats0000644000175000017500000000422613431250607027040 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [json] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTedu *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/json.sats" staload _(*anon*) = "./../DATS/json.dats" (* ****** ****** *) implement main0((*void*)) = { // val arr = json_object_new_array () val () = assertloc (ptrcast(arr) > 0) // val jso1 = json_object_new_string ("Zoe") val jso2 = json_object_new_string ("Chloe") // val () = assertloc (json_object_array_add2 (arr, jso1) = 0) val () = assertloc (json_object_array_add2 (arr, jso2) = 0) // val () = println! ("stringOf(arr) = ", arr) // val freed = json_object_put (arr) // val obj =json_object_new_object () val () = assertloc (ptrcast(obj) > 0) // val jso1 = json_object_new_string ("Zoe") val jso2 = json_object_new_string ("Chloe") val () = json_object_object_add (obj, "girl1", jso1) val () = json_object_object_add (obj, "girl2", jso2) // val () = println! ("stringOf(obj) = ", obj) // var jsi: json_object_iterator? var jsiEnd: json_object_iterator? val () = jsi := json_object_iter_begin (obj) val () = jsiEnd := json_object_iter_end (obj) // val () = println! ("[jsi] and [jsiEnd] are initialized.") // val x = json_object_iter_peek_name (jsi) val () = println! ("json_object_iter_peek_name") val () = println! ("name1 = ", x.1) prval () = x.0 (x.1) // val (fpf | value1) = json_object_iter_peek_value (jsi) val () = println! ("stringOf(value1) = ", value1) prval () = fpf (value1) // val () = json_object_iter_next (jsi) // val x = json_object_iter_peek_name (jsi) val () = println! ("name2 = ", x.1) prval () = x.0 (x.1) // val (fpf | value2) = json_object_iter_peek_value (jsi) val () = println! ("stringOf(value2) = ", value2) prval () = fpf (value2) // val () = json_object_iter_next (jsi) // val () = assertloc (json_object_iter_equal (jsi, jsiEnd)) val () = json_object_iter_clear (obj, jsi) val () = json_object_iter_clear (obj, jsiEnd) // val freed = json_object_put (obj) // } // end of [main0] (* ****** ****** *) (* end of [test04.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/TEST/test03.dats0000644000175000017500000000144113431250607027033 0ustar brandonbrandon(* ****** ****** *) (* ** Testing code for [json] *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTedu *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./../SATS/printbuf.sats" (* ****** ****** *) implement main0 () = { // val pb = printbuf_new() val () = assertloc(ptrcast(pb) > 0) // val cnt = $extfcall ( int , "sprintbuf" , ptrcast(pb) , "Hello from [sprintbuf]!" )(*$extfcall*) // val () = println! ("cnt = ", cnt) val (fpf | buf) = printbuf_get_buf(pb) val () = println!("buf = ", buf) prval ((*returned*)) = fpf(buf) val ((*freed*)) = printbuf_free(pb) // } // end of [main0] (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/CATS/0000755000175000017500000000000013431250607025007 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/CATS/json.cats0000644000175000017500000002056713431250607026646 0ustar brandonbrandon/* ** API for json-c in ATS */ /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Start Time: May, 2013 ** Author Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com */ /* ****** ****** */ #ifndef JSONC_JSON_CATS #define JSONC_JSON_CATS /* ****** ****** */ // /* #include */ #include <../json-c/json.h> // /* ****** ****** */ #define \ atscntrb_jsonc_json_c_version() ((char*)(json_c_version())) #define \ atscntrb_jsonc_json_c_version_num() ((int)(json_c_version_num())) /* ****** ****** */ typedef struct json_object_iterator json_object_iterator_struct ; /* ****** ****** */ #define atscntrb_jsonc_array_list_new array_list_new #define atscntrb_jsonc_array_list_free array_list_free #define atscntrb_jsonc_array_list_length array_list_length #define atscntrb_jsonc_array_list_add array_list_add #define atscntrb_jsonc_array_list_put_idx array_list_put_idx #define atscntrb_jsonc_array_list_get_idx array_list_get_idx #define atscntrb_jsonc_array_list_sort array_list_sort /* ****** ****** */ ATSinline() atstype_ptr atscntrb_jsonc_lh_entry_get_key(atstype_ptr ent) { return (atstype_ptr)(((struct lh_entry*)ent)->k) ; } ATSinline() atstype_ptr atscntrb_jsonc_lh_entry_get_val(atstype_ptr ent) { return (atstype_ptr)(((struct lh_entry*)ent)->v) ; } /* ****** ****** */ // #define atscntrb_jsonc_lh_table_new lh_table_new // #define atscntrb_jsonc_lh_char_hash lh_char_hash #define atscntrb_jsonc_lh_char_equal lh_char_equal // #define \ atscntrb_jsonc_lh_kchar_table_new(size, name, free_fn) \ lh_kchar_table_new(size, name, (lh_entry_free_fn*)free_fn) // #define atscntrb_jsonc_lh_ptr_hash lh_ptr_hash #define atscntrb_jsonc_lh_ptr_equal lh_ptr_equal // #define \ atscntrb_jsonc_lh_kptr_table_new(size, name, free_fn) \ lh_kptr_table_new(size, name, (lh_entry_free_fn*)free_fn) // #define atscntrb_jsonc_lh_table_free lh_table_free // #define atscntrb_jsonc_lh_table_length lh_table_length // #define atscntrb_jsonc_lh_table_insert lh_table_insert // #define atscntrb_jsonc_lh_table_delete lh_table_delete #define atscntrb_jsonc_lh_table_delete_entry lh_table_delete_entry // #if(0) // // HX-2016-12: deprecated // #define \ atscntrb_jsonc_lh_table_lookup(t, k) ((void*)(lh_table_lookup(t, k))) #endif // end of [#if(0)] // #define \ atscntrb_jsonc_lh_table_lookup_ex(t, k, v) lh_table_lookup_ex(t, k, v) #define \ atscntrb_jsonc_lh_table_lookup_entry(t, k) lh_table_lookup_entry(t, k) // #define atscntrb_jsonc_lh_table_resize lh_table_resize // /* ****** ****** */ // #define atscntrb_jsonc_json_parse_int64 json_parse_int64 #define atscntrb_jsonc_json_parse_double json_parse_double // #define atscntrb_jsonc_json_object_to_file json_object_to_file #define atscntrb_jsonc_json_object_to_file_ext json_object_to_file_ext // #define atscntrb_jsonc_json_object_from_file json_object_from_file // #define atscntrb_jsonc_json_type_to_name(type) ((void*)(json_type_to_name(type))) // /* ****** ****** */ #define atscntrb_jsonc_json_hex_chars json_hex_chars #define atscntrb_jsonc_json_number_chars json_number_chars /* ****** ****** */ #define atscntrb_jsonc_json_object_new json_object_new #define atscntrb_jsonc_json_object_get json_object_get #define atscntrb_jsonc_json_object_put json_object_put #define atscntrb_jsonc_json_object_is_type json_object_is_type #define atscntrb_jsonc_json_object_get_type json_object_get_type #define atscntrb_jsonc_json_object_to_json_string(jso) ((void*)(json_object_to_json_string(jso))) #define atscntrb_jsonc_json_object_to_json_string_ext(jso, flags) ((void*)(json_object_to_json_string_ext(jso, flags))) /* ****** ****** */ #define atscntrb_jsonc_json_object_new_boolean json_object_new_boolean #define atscntrb_jsonc_json_object_get_boolean json_object_get_boolean #define atscntrb_jsonc_json_object_new_int json_object_new_int #define atscntrb_jsonc_json_object_get_int json_object_get_int #define atscntrb_jsonc_json_object_new_int64 json_object_new_int64 #define atscntrb_jsonc_json_object_get_int64 json_object_get_int64 #define atscntrb_jsonc_json_object_new_double json_object_new_double #define atscntrb_jsonc_json_object_get_double json_object_get_double /* ****** ****** */ #define atscntrb_jsonc_json_object_new_string json_object_new_string #define atscntrb_jsonc_json_object_new_string_len json_object_new_string_len #define atscntrb_jsonc_json_object_get_string(jso) ((char*)(json_object_get_string(jso))) #define atscntrb_jsonc_json_object_get_string_len json_object_get_string_len /* ****** ****** */ ATSinline() int json_object_array_add2 ( struct json_object *jso , struct json_object *val ) { int err ; err = json_object_array_add(jso, val) ; if (err < 0) { json_object_put (val) ; } return err ; } ATSinline() int json_object_array_put2_idx ( struct json_object *jso , int idx, struct json_object *val ) { int err ; err = json_object_array_put_idx(jso, idx, val) ; if (err < 0) { json_object_put (val) ; } return err ; } /* ****** ****** */ #define atscntrb_jsonc_json_object_new_array json_object_new_array #define atscntrb_jsonc_json_object_get_array json_object_get_array #define atscntrb_jsonc_json_object_array_length json_object_array_length #define atscntrb_jsonc_json_object_array_add json_object_array_add #define atscntrb_jsonc_json_object_array_add2 json_object_array_add2 #define atscntrb_jsonc_json_object_array_put_idx json_object_array_put_idx #define atscntrb_jsonc_json_object_array_put2_idx json_object_array_put2_idx #define atscntrb_jsonc_json_object_array_get_idx json_object_array_get_idx /* ****** ****** */ #define atscntrb_jsonc_json_object_new_object json_object_new_object #define atscntrb_jsonc_json_object_get_object json_object_get_object #define atscntrb_jsonc_jsob_object_object_length jsob_object_object_length #define atscntrb_jsonc_json_object_object_add json_object_object_add #define atscntrb_jsonc_json_object_object_del json_object_object_del #define atscntrb_jsonc_json_object_object_get json_object_object_get /* ****** ****** */ ATSinline() atsvoid_t0ype atscntrb_jsonc_json_object_iter_clear (void* jso, void *jsi) { return ; } // end of [json_object_iter_clear] ATSinline() atstype_bool atscntrb_jsonc_json_object_iter_equal (void *jsi1, void *jsi2) { int equal = json_object_iter_equal(jsi1, jsi2) ; return (equal != 0 ? 1 : 0) ; } ATSinline() atstype_bool atscntrb_jsonc_json_object_iter_notequal (void *jsi1, void *jsi2) { int equal = json_object_iter_equal(jsi1, jsi2) ; return (equal != 0 ? 0 : 1) ; } #define atscntrb_jsonc_json_object_iter_begin json_object_iter_begin #define atscntrb_jsonc_json_object_iter_end json_object_iter_end #define atscntrb_jsonc_json_object_iter_next json_object_iter_next #define atscntrb_jsonc_json_object_iter_peek_name(jsi) ((void*)(json_object_iter_peek_name(jsi))) #define atscntrb_jsonc_json_object_iter_peek_value(jsi) ((void*)(json_object_iter_peek_value(jsi))) /* ****** ****** */ ATSinline() atstype_int atscntrb_jsonc_json_tokener_get_char_offset (void *tok) { return ((json_tokener*)tok)->char_offset ; } /* ****** ****** */ #define \ atscntrb_jsonc_json_tokener_error_desc json_tokener_error_desc #define atscntrb_jsonc_json_tokener_get_error json_tokener_get_error #define atscntrb_jsonc_json_tokener_new json_tokener_new #define atscntrb_jsonc_json_tokener_new_ex json_tokener_new_ex #define atscntrb_jsonc_json_tokener_free json_tokener_free #define atscntrb_jsonc_json_tokener_reset json_tokener_reset #define atscntrb_jsonc_json_tokener_parse json_tokener_parse #define atscntrb_jsonc_json_tokener_parse_verbose json_tokener_parse_verbose #define atscntrb_jsonc_json_tokener_parse_ex json_tokener_parse_ex #define atscntrb_jsonc_json_tokener_set_flags json_tokener_set_flags /* ****** ****** */ #endif // ifndef JSONC_JSON_CATS /* ****** ****** */ /* end of [json.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/CATS/printbuf.cats0000644000175000017500000000354013431250607027516 0ustar brandonbrandon/* ** API for json-c in ATS */ /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ /* ** Start Time: May, 2013 ** Author Hongwei Xi ** Authoremail: gmhwxi AT gmail DOT com */ /* ****** ****** */ #ifndef JSONC_PRINTBUF_CATS #define JSONC_PRINTBUF_CATS /* ****** ****** */ #include <../json-c/printbuf.h> /* ****** ****** */ ATSinline() atstype_ptr atscntrb_jsonc_printbuf_get_buf (atstype_ptr pb) { return ((struct printbuf*)pb)->buf ; } // end of [atscntrb_jsonc_printbuf_get_buf] ATSinline() atstype_int atscntrb_jsonc_printbuf_get_size (atstype_ptr pb) { return ((struct printbuf *)pb)->size ; } // end of [atscntrb_jsonc_printbuf_get_size] /* ****** ****** */ #define atscntrb_jsonc_printbuf_new printbuf_new #define atscntrb_jsonc_printbuf_free printbuf_free #define atscntrb_jsonc_printbuf_reset printbuf_reset #define atscntrb_jsonc_printbuf_length printbuf_length #define atscntrb_jsonc_printbuf_memappend printbuf_memappend #define atscntrb_jsonc_printbuf_memset printbuf_memset /* #define atscntrb_jsonc_sprintbuf sprintbuf */ /* ****** ****** */ #endif // ifndef JSONC_PRINTBUF_CATS /* ****** ****** */ /* end of [printbuf.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/0000755000175000017500000000000013431250607025027 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/json_object.sats0000644000175000017500000002100013431250607030213 0ustar brandonbrandon(* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) // castfn json_object2ptr {l:addr} (al: !json_object(l)):<> ptr(l) // overload ptrcast with json_object2ptr // (* ****** ****** *) // fun{} json_object_is_null {l:addr} (al: !json_object (l)):<> bool (l==null) fun{} json_object_isnot_null {l:addr} (al: !json_object (l)):<> bool (l > null) // overload iseqz with json_object_is_null overload isneqz with json_object_isnot_null // (* ****** ****** *) (* const char* json_hex_chars *) macdef json_hex_chars = $extval (string, "atscntrb_json_hex_chars") (* const char* json_number_chars *) macdef json_number_chars = $extval (string, "atscntrb_json_number_chars") (* ****** ****** *) fun json_object_get{l:addr} (jso: !json_object(l)): json_object(l) = "mac#%" (* ****** ****** *) fun json_object_put (jso: json_object0): int = "mac#%" (* ****** ****** *) fun json_object_is_type (jso: !json_object0, type: json_type):<> int = "mac#%" (* ****** ****** *) fun json_object_get_type (jso: !json_object0):<> json_type = "mac#%" (* ****** ****** *) (* #define JSON_C_TO_STRING_PLAIN 0 #define JSON_C_TO_STRING_SPACED (1<<0) #define JSON_C_TO_STRING_PRETTY (1<<1) #define JSON_C_TO_STRING_NOZERO (1<<2)) *) macdef JSON_C_TO_STRING_PLAIN = $extval (int, "JSON_C_TO_STRING_PLAIN") macdef JSON_C_TO_STRING_SPACED = $extval (int, "JSON_C_TO_STRING_SPACED") macdef JSON_C_TO_STRING_PRETTY = $extval (int, "JSON_C_TO_STRING_PRETTY") macdef JSON_C_TO_STRING_NOZERO = $extval (int, "JSON_C_TO_STRING_NOZERO") (* ****** ****** *) fun json_object_to_json_string (jso: !json_object0): vStrptr1 = "mac#%" fun json_object_to_json_string_ext (jso: !json_object0, flags: int): vStrptr1 = "mac#%" (* ****** ****** *) // // HX-2013-05: for convenience // fun{ } print_json_object (jso: !json_object0): void fun{ } print_json_object_ext (jso: !json_object0, flags: int): void overload print with print_json_object overload print with print_json_object_ext // fun{ } prerr_json_object (jso: !json_object0): void fun{ } prerr_json_object_ext (jso: !json_object0, flags: int): void overload prerr with prerr_json_object overload prerr with prerr_json_object_ext // fun{ } fprint_json_object (out: FILEref, jso: !json_object0): void fun{ } fprint_json_object_ext (out: FILEref, jso: !json_object0, flags: int): void // overload fprint with fprint_json_object overload fprint with fprint_json_object_ext // (* ****** ****** *) (* void json_object_set_serializer ( json_object *jso , json_object_to_json_string_fn to_string_func , void *userdata , json_object_delete_fn *user_delete ) ; // end of [json_object_set_serializer] *) (* ****** ****** *) // // HX: for json-object-boolean // (* ****** ****** *) (* struct json_object* json_object_new_boolean (json_bool b) *) fun json_object_new_boolean (b: json_bool): json_object0 = "mac#%" (* json_bool json_object_get_boolean (struct json_object *obj) *) fun json_object_get_boolean (obj: !json_object1): json_bool = "mac#%" (* ****** ****** *) // // HX: for json-object-int32 // (* ****** ****** *) (* struct json_object* json_object_new_int (int32_t i) *) fun json_object_new_int (i: int32): json_object0 = "mac#%" (* int32_t json_object_get_int (struct json_object *obj) *) fun json_object_get_int (obj: !json_object1): int32 = "mac#%" (* ****** ****** *) // // HX: for json-object-int64 // (* ****** ****** *) (* struct json_object* json_object_new_int64 (int64_t i) *) fun json_object_new_int64 (i: int64): json_object0 = "mac#%" (* int64_t json_object_get_int64 (struct json_object *obj) *) fun json_object_get_int64 (obj: !json_object1): int64 = "mac#%" (* ****** ****** *) // // HX: for json-object-double // (* ****** ****** *) (* struct json_object* json_object_new_double (double d) *) fun json_object_new_double (d: double): json_object0 = "mac#%" (* double json_object_get_double (struct json_object *obj) *) fun json_object_get_double (obj: !json_object1): double = "mac#%" (* ****** ****** *) // // HX: for json-object-string // (* ****** ****** *) (* struct json_object* json_object_new_string (const char *s) *) fun json_object_new_string (s: string): json_object0 = "mac#%" (* struct json_object* json_object_new_string_len (const char *s, int len) *) fun json_object_new_string_len (s: string, len: intGte(0)): json_object0 = "mac#%" (* ****** ****** *) (* const char* json_object_get_string (struct json_object *obj) *) fun json_object_get_string (jso: !json_object1): vStrptr1 = "mac#%" (* int json_object_get_string_len (struct json_object *obj) *) fun json_object_get_string_len (jso: !json_object1): intGte(0) = "mac#%" (* ****** ****** *) // // HX: for json-object-array // (* ****** ****** *) (* struct json_object* json_object_new_array (void) *) fun json_object_new_array (): json_object0 = "mac#%" (* ****** ****** *) (* struct array_list* json_object_get_array (struct json_object *obj) *) fun json_object_get_array {l:agz} (jso: !json_object(l)) : [l2:agez] vtget1(json_object(l), array_list(l2)) = "mac#%" // end of [json_object_get_array] (* ****** ****** *) (* int json_object_array_length (struct json_object *obj) *) fun json_object_array_length (jso: !json_object1): intGte(0) = "mac#%" (* ****** ****** *) (* int json_object_array_add (struct json_object *obj, struct json_object *val) *) fun json_object_array_add (jso: !json_object1, _val: json_object0): int = "mac#%" fun json_object_array_add2 (jso: !json_object1, _val: json_object0): int = "mac#%" (* ****** ****** *) (* struct json_object* json_object_array_get_idx (struct json_object *obj, int idx) *) fun json_object_array_get_idx{l:agz} ( jso: !json_object(l), idx: intGte(0) ) : [l2:agez] vtget1(json_object(l), json_object(l2)) = "mac#%" // end of [json_object_array_get_idx] (* ****** ****** *) (* int json_object_array_put_idx (struct json_object *obj, int idx, struct json_object *val) *) fun json_object_array_put_idx {l:agz;l2:addr} ( jso: !json_object(l), idx: intGte(0) , _val: !json_object(l2) >> opt (json_object(l2), i < 0) ) : #[i:int | i <= 0] int (i) = "mac#%" fun json_object_array_put2_idx (jso: !json_object1, idx: intGte(0), _val: json_object0): int = "mac#%" (* ****** ****** *) (* void json_object_array_sort ( struct json_object *jso, int(*cmp)(const void*, const void*) ) ; // end of [json_object_array_sort] *) fun json_object_array_sort ( jso: !json_object1, cmp: (json_object0, json_object0) -> int ) : void = "mac#%" // end of [json_object_array_sort] (* ****** ****** *) // // HX: for json-object-object // (* ****** ****** *) (* struct json_object* json_object_new_object (void) *) fun json_object_new_object (): json_object0 = "mac#%" (* ****** ****** *) (* struct lh_table* json_object_get_object(struct json_object *obj); *) fun json_object_get_object {l:agz} (jso: !json_object(l)) : [l2:agez] vtget1(json_object(l), lh_table(l2)) = "mac#%" // end of [json_object_get_object] (* ****** ****** *) (* int json_object_object_length(struct json_object *jso) *) fun jsob_object_object_length (jso: !json_object1): intGte(0) = "mac#%" (* ****** ****** *) (* void json_object_object_add ( struct json_object* jso, const char *key, struct json_object *val ) *) fun json_object_object_add ( jso: !json_object1, key: string, jso_val: json_object0(*consumed*) ) : void = "mac#%" // end of [json_object_object_add] (* ****** ****** *) (* void json_object_object_del (struct json_object *jso, const char *key) *) fun json_object_object_del (jso: !json_object1, key: string): void = "mac#%" (* ****** ****** *) (* struct json_object* json_object_object_get(struct json_object* obj, const char *key); *) fun json_object_object_get{l:agz} ( jso: !json_object(l), key: string ) : [l2:agez] vtget1(json_object(l), json_object(l2)) = "mac#%" // end of [json_object_object_get] (* ****** ****** *) fun{env:vt0p} json_object_iforeach$cont (i: int, v: !json_object0, env: &env): bool fun{env:vt0p} json_object_iforeach$fwork (i: int, v: !json_object0, env: &env >> _): void fun{} json_object_iforeach (jso: !json_object1): void fun{env:vt0p} json_object_iforeach_env (jso: !json_object1, env: &env >> _): void (* ****** ****** *) fun{env:vt0p} json_object_kforeach$cont (k: !Strptr1, v: !json_object0, env: &env): bool fun{env:vt0p} json_object_kforeach$fwork (k: !Strptr1, v: !json_object0, env: &env >> _): void fun{} json_object_kforeach (jso: !json_object1): void fun{env:vt0p} json_object_kforeach_env (jso: !json_object1, env: &env >> _): void (* ****** ****** *) (* end of [json_object.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/json_ML.sats0000644000175000017500000000470413431250607027271 0ustar brandonbrandon(* ****** ****** *) (* ** ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom ** *) (* ****** ****** *) (* ** A quasi ML-style API in ATS for json-c *) (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) staload "./json.sats" (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.jsonc_ML" #define ATS_EXTERN_PREFIX "atscntrb_jsonc_ML_" // prefix for external names // (* ****** ****** *) datatype jsonval = | JSONnul of () // | JSONint of (json_int) | JSONbool of (json_bool) | JSONfloat of (double) | JSONstring of (string) // | JSONarray of (jsonvalist) // array | JSONobject of (labjsonvalist) // hashtable // end of [jsonval] where json_int = llint and jsonvalist = List0(jsonval) and labjsonval = @(string, jsonval) and labjsonvalist = List0(labjsonval) (* ****** ****** *) vtypedef jsonvalist_vt = List0_vt(jsonval) (* ****** ****** *) // fun print_jsonval(jsonval): void fun prerr_jsonval(jsonval): void fun fprint_jsonval(out: FILEref, x: jsonval): void // overload print with print_jsonval overload prerr with prerr_jsonval overload fprint with fprint_jsonval // (* ****** ****** *) // fun fprint_jsonvalist (out: FILEref, xs: jsonvalist): void fun fprint_labjsonvalist (out: FILEref, lxs: labjsonvalist): void // (* ****** ****** *) fun jsonval_ofstring(str: string): jsonval fun jsonval_tostring(jsv: jsonval): Strptr1 (* ****** ****** *) fun json_object2val0(jso: json_object0): jsonval fun json_object2val1(jso: !json_object0): jsonval (* ****** ****** *) fun jsonval_objectify(jsv: jsonval): json_object0 (* ****** ****** *) (* end of [json_ML.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/json_object_iterator.sats0000644000175000017500000000425013431250607032134 0ustar brandonbrandon(* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) // // HX: not sure about this one // (* struct json_object_iterator json_object_iter_init_default (void) *) (* ****** ****** *) // // HX-2013-05: I added this one // fun json_object_iter_clear{l:addr} ( jso: !json_object(l), iter: &json_object_iterator(l) >> _? ) : void = "mac#%" // end of [json_object_iter_clear] (* ****** ****** *) (* struct json_object_iterator json_object_iter_begin (struct json_object *obj) *) fun json_object_iter_begin {l:agz} (jso: !json_object(l)): json_object_iterator(l) = "mac#%" // end of [json_object_iter_begin] (* struct json_object_iterator json_object_iter_end (const struct json_object *obj) *) fun json_object_iter_end {l:agz} (jso: !json_object(l)): json_object_iterator(l) = "mac#%" // end of [json_object_iter_end] (* void json_object_iter_next (struct json_object_iterator *iter) *) fun json_object_iter_next {l:addr} (jso: &json_object_iterator(l) >> _): void = "mac#%" (* const char* json_object_iter_peek_name (const struct json_object_iterator *iter) *) fun json_object_iter_peek_name {l:addr} (jso: &json_object_iterator(l)): vStrptr1 = "mac#%" (* struct json_object* json_object_iter_peek_value (const struct json_object_iterator *iter) *) fun json_object_iter_peek_value{l:addr} (jso: &json_object_iterator(l)): [l2:agez] vttakeout0 (json_object(l2)) = "mac#%" // end of [json_object_iter_peek_value] (* ****** ****** *) (* json_bool json_object_iter_equal ( const struct json_object_iterator *iter1 , const struct json_object_iterator *iter2 ) ; // end of [json_object_iter_equal] *) fun json_object_iter_equal{l:addr} ( iter1: &json_object_iterator(l) , iter2: &json_object_iterator(l) ) : bool = "mac#%" // end of [json_object_iter_equal] fun json_object_iter_notequal{l:addr} ( iter1: &json_object_iterator(l) , iter2: &json_object_iterator(l) ) : bool = "mac#%" // end of [json_object_iter_notequal] // overload = with json_object_iter_equal overload != with json_object_iter_notequal // (* ****** ****** *) (* end of [json_object_iterator.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/linkhash.sats0000644000175000017500000001013113431250607027520 0ustar brandonbrandon(* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.jsonc" // // HX: prefix for extern names // #define ATS_EXTERN_PREFIX "atscntrb_jsonc_" // (* ****** ****** *) // staload JSON = "./json.sats" // (* ****** ****** *) // typedef json_bool = $JSON.json_bool // vtypedef lh_entry0 = $JSON.lh_entry0 vtypedef lh_entry1 = $JSON.lh_entry1 vtypedef lh_entry(l:addr) = $JSON.lh_entry(l) // vtypedef lh_table0 = $JSON.lh_table0 vtypedef lh_table1 = $JSON.lh_table1 vtypedef lh_table(l:addr) = $JSON.lh_table(l) // typedef lh_entry_free_fn_type = $JSON.lh_entry_free_fn_type // typedef lh_hash_fn_type = $JSON.lh_hash_fn_type typedef lh_equal_fn_type = $JSON.lh_equal_fn_type // (* ****** ****** *) // castfn lh_entry2ptr {l:addr}(ent: !lh_entry(l)):<> ptr(l) // castfn lh_table2ptr{l:addr}(tbl: !lh_table (l)):<> ptr(l) // castfn ptr2lh_entry {l:addr}(p: ptr(l)):<> vttakeout(ptr(l), lh_entry(l)) // (* ****** ****** *) // overload ptrcast with lh_entry2ptr overload ptrcast with lh_table2ptr // (* ****** ****** *) // fun lh_entry_get_key (ent: !lh_entry1):<> Ptr0 = "mac#%" fun lh_entry_get_val (ent: !lh_entry1):<> Ptr0 = "mac#%" // (* ****** ****** *) (* struct lh_table* lh_table_new ( int size , const char *name , lh_entry_free_fn *free_fn , lh_hash_fn *hash_fn, lh_equal_fn *equal_fn ) *) fun lh_table_new ( size: intGte(0), name: string , free_fn: lh_entry_free_fn_type , hash_fn: lh_hash_fn_type, equal_fn: lh_equal_fn_type ) : lh_table0 = "mac#%" // end of [lh_table_new] (* ****** ****** *) (* void lh_abort (const char *msg, ... ) *) (* ****** ****** *) (* unsigned long lh_char_hash (const void *k) *) fun lh_char_hash : lh_hash_fn_type = "mac#%" (* int lh_char_equal (const void *k1, const void *k2) *) fun lh_char_equal : lh_equal_fn_type = "mac#%" (* struct lh_table* lh_kchar_table_new (int size, const char *name, lh_entry_free_fn *free_fn) *) fun lh_kchar_table_new ( size: intGt(0), name: string, free_fn: lh_entry_free_fn_type ) : lh_table0 = "mac#%" // end of [lh_kchar_table_new] (* ****** ****** *) (* unsigned long lh_ptr_hash (const void *k) *) fun lh_ptr_hash : lh_hash_fn_type = "mac#%" (* int lh_ptr_equal (const void *k1, const void *k2) *) fun lh_ptr_equal : lh_equal_fn_type = "mac#%" fun lh_kptr_table_new ( size: intGte(0), name: string, free_fn: lh_entry_free_fn_type ) : lh_table0 = "mac#%"// end of [lh_kptr_table_new] (* ****** ****** *) (* void lh_table_free (struct lh_table *t) *) fun lh_table_free (t: lh_table1): void = "mac#%" (* ****** ****** *) (* int lh_table_length (struct lh_table *t) *) fun lh_table_length (t: !lh_table1):<> intGte(0) = "mac#%" (* ****** ****** *) (* int lh_table_delete (struct lh_table *t, const void *k) *) fun lh_table_delete (t: !lh_table1, k: Ptr0): int(*err*) = "mac#%" (* ****** ****** *) (* int lh_table_delete_entry (struct lh_table *t, struct lh_entry *e) *) fun lh_table_delete_entry (t: !lh_table1, e: Ptr0): int(*err*) = "mac#%" (* ****** ****** *) (* int lh_table_insert (struct lh_table *t, void *k, const void *v) *) fun lh_table_insert (t: !lh_table1, k: Ptr0, v: Ptr0): int(*err*) = "mac#%" (* ****** ****** *) // // HX: this one is deprecated! // (* void* lh_table_lookup(struct lh_table *t, const void *k) *) (* fun lh_table_lookup (t: !lh_table1, k: Ptr0):<> Ptr0(*val*) = "mac#%" // end of [lh_table_lookup] *) // (* ****** ****** *) (* json_bool lh_table_lookup_ex (struct lh_table *t, const void *k, void **v) *) fun lh_table_lookup_ex (t: !lh_table1, k: Ptr0, v: &ptr? >> Ptr0): json_bool = "mac#%" // end of [lh_table_lookup_ex] (* ****** ****** *) (* struct lh_entry* lh_table_lookup_entry (struct lh_table *t, const void *k) *) fun lh_table_lookup_entry (t: !lh_table1, k: Ptr0):<> [l:addr] vttakeout0 (lh_entry(l)) = "mac#%" // end of [lh_table_lookup_entry] (* ****** ****** *) (* void lh_table_resize (struct lh_table *t, int new_size) *) fun lh_table_resize (t: !lh_table1, new_size: intGte(0)): void = "mac#%" // end of [lh_table_resize] (* ****** ****** *) (* end of [linkhash.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/arraylist.sats0000644000175000017500000000344013431250607027736 0ustar brandonbrandon(* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #define ATS_PACKNAME "ATSCNTRB.jsonc" #define ATS_EXTERN_PREFIX "atscntrb_jsonc_" // prefix for external names (* ****** ****** *) // staload JSON = "./json.sats" // stadef array_list = $JSON.array_list stadef array_list0 = $JSON.array_list0 stadef array_list1 = $JSON.array_list1 stadef free_fn_type = $JSON.free_fn_type // (* ****** ****** *) // (* // struct array_list* array_list_new (array_list_free_fn *free_fn) void array_list_free(struct array_list *al) // int array_list_length(struct array_list *al) // int array_list_put_idx (struct array_list *al, int i, void *data) void *array_list_get_idx (struct array_list *al, int i) // int array_list_add(struct array_list *al, void *data) void array_list_sort (struct array_list *arr, int(*compar)(const void *, const void *)) // *) // (* ****** ****** *) // castfn array_list2ptr {l:addr} (al: !array_list(l)):<> ptr(l) // overload ptrcast with array_list2ptr // (* ****** ****** *) fun array_list_new (free_fn: free_fn_type): array_list0 = "mac#%" // end of [array_list_new] (* ****** ****** *) fun array_list_free(al: array_list1): void = "mac#%" (* ****** ****** *) fun array_list_length (al: !array_list1):<> intGte(0) = "mac#%" (* ****** ****** *) // fun array_list_add (al: !array_list1, data: Ptr0): int(*err*) = "mac#%" fun array_list_put_idx (al: !array_list1, i: intGte(0), data: Ptr0): int(*err*) = "mac#%" // (* ****** ****** *) // fun array_list_get_idx(al: !array_list1, i: intGte(0)):<> Ptr0 = "mac#%" // (* ****** ****** *) // fun array_list_sort (al: !array_list1, cmp: (ptr, ptr) - int): void = "mac#%" // (* ****** ****** *) (* end of [arraylist.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/mybasis.sats0000644000175000017500000001522713431250607027401 0ustar brandonbrandon(* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #ifndef ATSCNTRB_LIBJSONC_MYBASIS_SATS #define ATSCNTRB_LIBJSONC_MYBASIS_SATS (* ****** ****** *) // typedef json_bool = int // (* ****** ****** *) // macdef json_true = 1 and json_false = 0 // (* ****** ****** *) // fun{} not_json_bool(tf: json_bool): json_bool // (* ****** ****** *) // absvtype lh_entry_vtype (l:addr) = ptr vtypedef lh_entry(l:addr) = lh_entry_vtype(l) // vtypedef lh_entry0 = [l:agez] lh_entry(l) vtypedef lh_entry1 = [l:addr | l > null] lh_entry(l) // (* ****** ****** *) // absvtype lh_table_vtype(l:addr) = ptr vtypedef lh_table(l:addr) = lh_table_vtype(l) // vtypedef lh_table0 = [l:agez] lh_table(l) vtypedef lh_table1 = [l:addr | l > null] lh_table(l) // (* ****** ****** *) // absvtype array_list_vtype(l:addr) = ptr vtypedef array_list(l:addr) = array_list_vtype(l) // vtypedef array_list0 = [l:agez] array_list(l) vtypedef array_list1 = [l:addr | l > null] array_list(l) // (* ****** ****** *) typedef free_fn_type = (Ptr1(*data*)) -> void (* ****** ****** *) (* typedef void(lh_entry_free_fn)(struct lh_entry *e) *) typedef lh_entry_free_fn_type = (lh_entry1) -> void (* typedef unsigned long(lh_hash_fn)(const void *k) *) typedef lh_hash_fn_type = (Ptr0) -<> ulint (* typedef int(lh_equal_fn)(const void *k1, const void *k2) *) typedef lh_equal_fn_type = (Ptr0, Ptr0) -<> int (* ****** ****** *) // absvtype printbuf_vtype(l:addr) = ptr vtypedef printbuf(l:addr) = printbuf_vtype(l) // vtypedef printbuf0 = [l:agez] printbuf(l) vtypedef printbuf1 = [l:addr | l > null] printbuf(l) // (* ****** ****** *) // typedef json_type = int // (* typedef enum json_type { /* If you change this, be sure to update json_type_to_name() too */ json_type_null, json_type_boolean, json_type_double, json_type_int, json_type_object, json_type_array, json_type_string, } json_type ; *) // macdef json_type_null = $extval(json_type, "json_type_null") macdef json_type_boolean = $extval(json_type, "json_type_boolean") macdef json_type_int = $extval(json_type, "json_type_int") macdef json_type_double = $extval(json_type, "json_type_double") macdef json_type_string = $extval(json_type, "json_type_string") macdef json_type_array = $extval(json_type, "json_type_array") macdef json_type_object = $extval(json_type, "json_type_object") // (* ****** ****** *) // absvtype json_object_vtype (l:addr) = ptr vtypedef json_object(l:addr) = json_object_vtype(l) // vtypedef json_object0 = [l:agez] json_object(l) vtypedef json_object1 = [l:addr | l > null] json_object(l) // (* ****** ****** *) // (* ** HX: the address [l] refers to the address of the object *) // absvt0ype json_object_iterator_vt0ype (l:addr) = $extype"json_object_iterator_struct" // vtypedef json_object_iterator (l:addr) = json_object_iterator_vt0ype(l) // vtypedef json_object_iterator = [l:addr] json_object_iterator(l) // (* ****** ****** *) typedef json_tokener_error = int macdef json_tokener_success = $extval (int, "json_tokener_success") macdef json_tokener_continue = $extval (int, "json_tokener_continue") macdef json_tokener_error_depth = $extval (int, "json_tokener_error_depth") macdef json_tokener_error_parse_eof = $extval (int, "json_tokener_error_parse_eof,") macdef json_tokener_error_parse_unexpected = $extval (int, "json_tokener_error_parse_unexpected") macdef json_tokener_error_parse_null = $extval (int, "json_tokener_error_parse_null") macdef json_tokener_error_parse_boolean = $extval (int, "json_tokener_error_parse_boolean") macdef json_tokener_error_parse_number = $extval (int, "json_tokener_error_parse_number,") macdef json_tokener_error_parse_array = $extval (int, "json_tokener_error_parse_array") macdef json_tokener_error_parse_object_key_name = $extval (int, "json_tokener_error_parse_object_key_name") macdef json_tokener_error_parse_object_key_sep = $extval (int, "json_tokener_error_parse_object_key_sep") macdef json_tokener_error_parse_object_value_sep = $extval (int, "json_tokener_error_parse_object_value_sep,") macdef json_tokener_error_parse_string = $extval (int, "json_tokener_error_parse_string") macdef json_tokener_error_parse_comment = $extval (int, "json_tokener_error_parse_comment") (* ****** ****** *) typedef json_tokener_state = int macdef json_tokener_state_eatws = $extval (int, "json_tokener_state_eatws") macdef json_tokener_state_start = $extval (int, "json_tokener_state_start") macdef json_tokener_state_finish = $extval (int, "json_tokener_state_finish") macdef json_tokener_state_null = $extval (int, "json_tokener_state_null,") macdef json_tokener_state_comment_start = $extval (int, "json_tokener_state_comment_start") macdef json_tokener_state_comment = $extval (int, "json_tokener_state_comment") macdef json_tokener_state_comment_eol = $extval (int, "json_tokener_state_comment_eol") macdef json_tokener_state_comment_end = $extval (int, "json_tokener_state_comment_end") macdef json_tokener_state_string = $extval (int, "json_tokener_state_string") macdef json_tokener_state_string_escape = $extval (int, "json_tokener_state_string_escape") macdef json_tokener_state_escape_unicode = $extval (int, "json_tokener_state_escape_unicode") macdef json_tokener_state_boolean = $extval (int, "json_tokener_state_boolean") macdef json_tokener_state_number = $extval (int, "json_tokener_state_number") macdef json_tokener_state_array = $extval (int, "json_tokener_state_array") macdef json_tokener_state_array_add = $extval (int, "json_tokener_state_array_add") macdef json_tokener_state_array_sep = $extval (int, "json_tokener_state_array_sep") macdef json_tokener_state_object_field_start = $extval (int, "json_tokener_state_object_field_start") macdef json_tokener_state_object_field = $extval (int, "json_tokener_state_object_field") macdef json_tokener_state_object_field_end = $extval (int, "json_tokener_state_object_field_end") macdef json_tokener_state_object_value = $extval (int, "json_tokener_state_object_value") macdef json_tokener_state_object_value_add = $extval (int, "json_tokener_state_object_value_add") macdef json_tokener_state_object_sep = $extval (int, "json_tokener_state_object_sep") macdef json_tokener_state_array_after_sep = $extval (int, "json_tokener_state_array_after_sep") macdef json_tokener_state_object_field_start_after_sep = $extval (int, "json_tokener_state_object_field_start_after_sep") (* ****** ****** *) // absvtype json_tokener_vtype(l:addr) = ptr vtypedef json_tokener(l:addr) = json_tokener_vtype(l) // (* ****** ****** *) // vtypedef json_tokener0 = [l:agez] json_tokener(l) vtypedef json_tokener1 = [l:addr | l > null] json_tokener(l) // (* ****** ****** *) #endif // end of #ifndef(LIBJSONC_MYBASIS_SATS) (* ****** ****** *) (* end of [mybasis.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/printbuf.sats0000644000175000017500000000335513431250607027562 0ustar brandonbrandon(* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) %{# #include \ "atscntrb-hx-libjson-c/CATS/printbuf.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.jsonc" // // HX: prefix for extern names // #define ATS_EXTERN_PREFIX "atscntrb_jsonc_" // (* ****** ****** *) // staload JSON = "./json.sats" // stadef printbuf = $JSON.printbuf stadef printbuf0 = $JSON.printbuf0 stadef printbuf1 = $JSON.printbuf1 // (* ****** ****** *) // castfn printbuf2ptr {l:addr} (prbuf: !printbuf(l)):<> ptr(l) // overload ptrcast with printbuf2ptr // (* ****** ****** *) fun printbuf_get_buf (pb: !printbuf1): vStrptr1 = "mac#%" // end of [printbuf_get_buf] (* ****** ****** *) (* struct printbuf *printbuf_new (void) *) fun printbuf_new(): printbuf0 = "mac#%" (* ****** ****** *) (* void printbuf_free (struct printbuf *pb) *) fun printbuf_free(pb: printbuf0): void = "mac#%" (* ****** ****** *) (* void printbuf_reset (struct printbuf *p) *) fun printbuf_reset(pb: !printbuf1): void = "mac#%" (* ****** ****** *) fun printbuf_length(pb: !printbuf1): intGte(0) = "mac#%" (* ****** ****** *) (* int printbuf_memappend (struct printbuf *pb, const char *buf, int size) *) fun printbuf_memappend (pb: !printbuf1, buf: Ptr1, size: intGte(0)): int = "mac#%" // end of [printbuf_memappend] (* ****** ****** *) (* int printbuf_memset (struct printbuf *pb, int offset, int charvalue, int len) *) fun printbuf_memset ( pb: !printbuf1, offset: int, charvalue: int, len: intGte(0) ) : int = "mac#%" // end of [printbuf_memset] (* ****** ****** *) (* int sprintbuf (struct printbuf *p, const char *msg,...) *) (* ****** ****** *) (* end of [printbuf.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/json.sats0000644000175000017500000000362413431250607026701 0ustar brandonbrandon(* ****** ****** *) (* ** ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom ** *) (* ****** ****** *) (* ** API in ATS for json-c *) (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) %{# #include \ "atscntrb-hx-libjson-c/CATS/json.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.jsonc" // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "atscntrb_jsonc_" // (* ****** ****** *) fun json_c_version(): string = "mac#%" fun json_c_version_num(): int = "mac#%" (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) (* #include "./linkhash.sats" // HX: for hashtable *) (* ****** ****** *) (* #include "./arraylist.sats" // HX: for dynamic arrays *) (* ****** ****** *) (* #include "./printbuf.sats" // HX: for buffered printing *) (* ****** ****** *) #include "./json_util.sats" (* ****** ****** *) #include "./json_object.sats" #include "./json_object_iterator.sats" (* ****** ****** *) #include "./json_tokener.sats" (* ****** ****** *) (* end of [json.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/0000755000175000017500000000000013431250607026113 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/json_object.atxt0000644000175000017500000000621313431250607031316 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../json_object.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_json-c_json") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/json_object\ ") (* ****** ****** *) #declnamesynop("json_object2ptr") (* ****** ****** *) #declnamesynop("json_object_get") #declnamesynop("json_object_put") #declnamesynop("json_object_is_type") #declnamesynop("json_object_get_type") (* ****** ****** *) #declnamesynop("json_object_to_json_string") #declnamesynop("json_object_to_json_string_ext") (* ****** ****** *) #declnamesynop("print_json_object") #declnamesynop("print_json_object_ext") #declnamesynop("prerr_json_object") #declnamesynop("prerr_json_object_ext") (* ****** ****** *) #declnamesynop("fprint_json_object") #declnamesynop("fprint_json_object_ext") (* ****** ****** *) #declnamesynop("json_object_new_boolean") #declnamesynop("json_object_get_boolean") #declnamesynop("json_object_new_int") #declnamesynop("json_object_get_int") #declnamesynop("json_object_new_int64") #declnamesynop("json_object_get_int64") #declnamesynop("json_object_new_double") #declnamesynop("json_object_get_double") (* ****** ****** *) #declnamesynop("json_object_new_string") #declnamesynop("json_object_new_string_len") #declnamesynop("json_object_get_string") #declnamesynop("json_object_get_string_len") (* ****** ****** *) #declnamesynop("json_object_new_array") #declnamesynop("json_object_get_array") #declnamesynop("json_object_array_length") #declnamesynop("json_object_array_add") #declnamesynop("json_object_array_get_idx") #declnamesynop("json_object_array_put_idx") #declnamesynop("json_object_array_put2_idx") (* ****** ****** *) #declnamesynop("json_object_new_object") #declnamesynop("json_object_get_object") #declnamesynop("jsob_object_object_length") #declnamesynop("json_object_object_add") #declnamesynop("json_object_object_del") #declnamesynop("json_object_object_get") (* ****** ****** *) #declnamesynop("json_object_iforeach") #decldescrpt('\ This function is a special case of #dyncode("json_object_iforeach_env") where the third argument named env is ignored. ') #declnamesynop("json_object_iforeach_env") #decldescrpt('\ This function can be employed to traverse the fields of a given json array. ') #declnamesynop("json_object_iforeach$cont") #declnamesynop("json_object_iforeach$fwork") (* ****** ****** *) #declnamesynop("json_object_kforeach") #decldescrpt('\ This function is a special case of #dyncode("json_object_kforeach_env") where the third argument named env is ignored. ') #declnamesynop("json_object_kforeach_env") #decldescrpt('\ This function can be employed to traverse the fields of a given json object. ') #declnamesynop("json_object_kforeach$cont") #declnamesynop("json_object_kforeach$fwork") (* ****** ****** *) // // HX: various overloaded symbols // (* ****** ****** *) #declname("Overloaded Symbols") (* ****** ****** *) #declnamesynop("iseqz") #declnamesynop("isneqz") (* ****** ****** *) #declnamesynop("print") #declnamesynop("prerr") #declnamesynop("fprint") (* ****** ****** *) (* end of [json_object.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/json_ML.atxt0000644000175000017500000000202113431250607030351 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../json_ML.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_jsonc_json_ML") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/json_ML\ ") (* ****** ****** *) #declpreamble("\ #para('\ This package contains an API in ATS of quasi ML-style that is directly based on the json-c package.\ ') ")#comment("declpreamble") (* ****** ****** *) #declnamesynop("jsonval") (* ****** ****** *) #declnamesynop("jsonvalist_vt") (* ****** ****** *) #declnamesynop("fprint_jsonval") #declnamesynop("fprint_jsonvalist") #declnamesynop("fprint_labjsonvalist") (* ****** ****** *) #declnamesynop("jsonval_ofstring") (* ****** ****** *) #declnamesynop("jsonval_tostring") (* ****** ****** *) #declnamesynop("json_object2val0") #declnamesynop("json_object2val1") (* ****** ****** *) #declnamesynop("jsonval_objectify") (* ****** ****** *) (* end of [json_ML.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/Makefile.gen0000777000175000017500000000000013431250607034706 2../../../../share/Makefile.genustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/json_tokener.atxt0000644000175000017500000000161613431250607031521 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../json_tokener.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_json-c_json") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/json_tokener\ ") (* ****** ****** *) #declnamesynop("json_tokener2ptr") (* ****** ****** *) #declnamesynop("json_tokener_get_error") #declnamesynop("json_tokener_error_desc") (* ****** ****** *) #declnamesynop("json_tokener_new") #declnamesynop("json_tokener_new_ex") (* ****** ****** *) #declnamesynop("json_tokener_free") (* ****** ****** *) #declnamesynop("json_tokener_reset") (* ****** ****** *) #declnamesynop("json_tokener_parse") #declnamesynop("json_tokener_parse_verbose") #declnamesynop("json_tokener_parse_ex") (* ****** ****** *) #declnamesynop("json_tokener_set_flags") (* ****** ****** *) (* end of [json_tokener.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/json.atxt0000644000175000017500000000413213431250607027766 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../json.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_jsonc_json") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/json\ ") (* ****** ****** *) #declpreamble("\ #para('\ This package contains an API for programming json-c in ATS. ') ")#comment("declpreamble") (* ****** ****** *) #declnamesynop("json_c_version") #declnamesynop("json_c_version_num") (* ****** ****** *) #declname2("mybasis.sats", "mybasis.html") // #declsynop2('\ This file, which is included in [json.sats], mostly contains type definitions and macros in the json-c package. ') (* ****** ****** *) #declname2("arraylist.sats", "arraylist.html") // #declsynop2('\ This file contains an API for a simple array-list (that is, dynamic array) implementation. ') (* ****** ****** *) #declname2("linkhash.sats", "linkhash.html") // #declsynop2('\ This file contains an API for a simple hashtable implementation. ') (* ****** ****** *) #declname2("printbuf.sats", "printbuf.html") // #declsynop2('\ This file contains an API for functions declared in [printbuf.h]. ') (* ****** ****** *) #declname2("json_util.sats", "json_util.html") // #declsynop2('\ This file contains an API for functions declared in [json_util.h]. ') (* ****** ****** *) #declname2("json_object.sats", "json_object.html") // #declsynop2('\ This file contains an API for functions declared in [json_object.h]. ') (* ****** ****** *) #declname2("json_object_iterator.sats", "json_object_iterator.html") // #declsynop2('\ This file contains an API for functions declared in [json_object_iterator.h]. ') (* ****** ****** *) #declname2("json_tokener.sats", "json_tokener.html") // #declsynop2('\ This file contains an API for functions declared in [json_tokener.h]. ') (* ****** ****** *) #declname2("json_ML.sats", "json_ML.html") // #declsynop2('\ This file contains an API in ATS of quasi ML-style that is directly based on the json-c package. ') (* ****** ****** *) (* end of [json.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/theDeclpostamble.html0000644000175000017500000000075113431250607032263 0ustar brandonbrandon
This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. SourceForge.net Logo
ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/Makefile.atxt0000644000175000017500000000542413431250607030537 0ustar brandonbrandon%{ // staload STDIO = "libc/SATS/stdio.sats" staload TIME = "libc/SATS/time.sats" // dynload "libatsdoc/dynloadall.dats" // staload "libatsdoc/SATS/libatsdoc_atext.sats" // %}\ %{ fun comment (x: string): atext = atext_nil () // end of [comment] fun make_entry (nm: string): atext = let // val ent = sprintf ("\ all_html:: HTML/%s.html\n\ HTML/%s.html: \ %s_atxt.exe ; ./$< > $@ %s_atxt.txt: %s.atxt ; $(CAT) $< | \ $(ATSDOC) --prefix __datatok --outcode htmlgendecl_data_atxt.dats > $@ %s_atxt.exe: htmlgendecl_atxt.dats \ %s_atxt.txt $(DECLATEXT) $(HTMLGENDECL) ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -D_ATS_GCATS -o $@ $< \ $(DECLATEXT) $(HTMLGENDECL) $(PATSHOMEQ)/libatsynmark/libatsynmark.a -latsdoc upload_%s:: ; \ scp HTML/%s.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/json-c/SATS/DOCUGEN/HTML/ clean:: ; $(RMF) %s_atxt.exe cleanall:: ; $(RMF) HTML/%s.html ", @(nm, nm, nm, nm, nm, nm, nm, nm, nm, nm, nm) ) // end of [val] // in atext_strptr (ent) end // end of [make_entry] %}\ # # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### ATSHOMEQ="$(ATSHOME)" ATSCC=$(ATSHOMEQ)/bin/atscc ATSOPT=$(ATSHOMEQ)/bin/atsopt ATSDOC=$(ATSHOMEQ)/bin/atsdoc ###### PATSHOMEQ="$(PATSHOME)" ###### SHAREDOCU=$(PATSHOMEQ)/share/DOCUGEN ###### INCLUDE:=-I $(PATSHOMEQ)/src INCLATS:=-IATS $(SHAREDOCU) -IATS $(PATSHOMEQ) -IATS $(ATSHOMEQ) ###### CAT=cat ###### all:: all_html ###### DECLATEXT= \ declatext_sats.o \ declatext_dats.o \ declatext_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.sats declatext_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/declatext.dats ###### HTMLGENDECL= \ htmlgendecl_sats.o \ htmlgendecl_dats.o \ htmlgendecl_sats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.sats htmlgendecl_dats.o: ; \ $(ATSCC) $(INCLUDE) $(INCLATS) -c $(ATSCCFLAGS) $(SHAREDOCU)/htmlgendecl.dats htmlgendecl_atxt.dats: ; \ $(ATSDOC) --outcode $@ -i $(SHAREDOCU)/htmlgendecl.atxt > htmlgendecl_atxt.txt ###### all_html:: ###### #make_entry("json") #make_entry("mybasis") #make_entry("linkhash") #make_entry("arraylist") #make_entry("printbuf") #make_entry("json_util") #make_entry("json_object") #make_entry("json_object_iterator") #make_entry("json_tokener") ###### #make_entry("json_ML") ###### uploadall:: ; \ scp HTML/*.html ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/json-c/SATS/DOCUGEN/HTML/ ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### \ %{ implement main () = fprint_filsub (stdout_ref, "Makefile_atxt.txt") %}\ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/json_util.atxt0000644000175000017500000000155513431250607031031 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../json_util.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_json-c_json") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/json_util\ ") (* ****** ****** *) #declnamesynop("json_object_from_file") (* ****** ****** *) #declnamesynop("json_objlst_from_file") #decldescrpt('\ This function is based on #dyncode("json_tokener_parse_list"). It essentially parses the content of a given file into a list of (possibly null) json-objects.\ ') (* ****** ****** *) #declnamesynop("json_object_to_file") #declnamesynop("json_object_to_file_ext") (* ****** ****** *) #declnamesynop("json_parse_int64") #declnamesynop("json_parse_double") (* ****** ****** *) #declnamesynop("json_type_to_name") (* ****** ****** *) (* end of [json_util.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/arraylist.atxt0000644000175000017500000000135713431250607031035 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../arraylist.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_json-c_json") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/arraylist\ ") (* ****** ****** *) #declnamesynop("array_list2ptr") (* ****** ****** *) #declnamesynop("array_list_new") (* ****** ****** *) #declnamesynop("array_list_free") (* ****** ****** *) #declnamesynop("array_list_length") (* ****** ****** *) #declnamesynop("array_list_add") (* ****** ****** *) #declnamesynop("array_list_get_idx") #declnamesynop("array_list_put_idx") (* ****** ****** *) #declnamesynop("array_list_sort") (* ****** ****** *) (* end of [arraylist.atxt] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/json_object_iterator.atxtATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/json_object_iterator.0000644000175000017500000000160713431250607032330 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../json_object_iterator.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_json-c_json") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/json_object_iterator\ ") (* ****** ****** *) #declnamesynop("json_object_iter_clear") #decldescrpt('\ This function is for invalidating a given iterator so that it is no longer available for use subsequently. ') (* ****** ****** *) #declnamesynop("json_object_iter_begin") #declnamesynop("json_object_iter_end") #declnamesynop("json_object_iter_next") #declnamesynop("json_object_iter_peek_name") #declnamesynop("json_object_iter_peek_value") #declnamesynop("=") #declnamesynop("json_object_iter_equal") #declnamesynop("!=") #declnamesynop("json_object_iter_notequal") (* ****** ****** *) (* end of [json_object_iterator.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/linkhash.atxt0000644000175000017500000000235413431250607030622 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../linkhash.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_json-c_json") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/linkhash\ ") (* ****** ****** *) #declnamesynop("lh_entry2ptr") (* ****** ****** *) #declnamesynop("lh_entry_get_key") #declnamesynop("lh_entry_get_val") (* ****** ****** *) #declnamesynop("lh_table2ptr") (* ****** ****** *) #declnamesynop("lh_table_new") (* ****** ****** *) #declnamesynop("lh_char_hash") #declnamesynop("lh_char_equal") #declnamesynop("lh_kchar_table_new") (* ****** ****** *) #declnamesynop("lh_ptr_hash") #declnamesynop("lh_ptr_equal") #declnamesynop("lh_kptr_table_new") (* ****** ****** *) #declnamesynop("lh_table_free") (* ****** ****** *) #declnamesynop("lh_table_length") (* ****** ****** *) #declnamesynop("lh_table_insert") (* ****** ****** *) #declnamesynop("lh_table_delete") #declnamesynop("lh_table_delete_entry") (* ****** ****** *) #declnamesynop("lh_table_lookup") #declnamesynop("lh_table_lookup_ex") #declnamesynop("lh_table_lookup_entry") (* ****** ****** *) #declnamesynop("lh_table_resize") (* ****** ****** *) (* end of [linkhash.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/mybasis.atxt0000644000175000017500000000306713431250607030472 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../mybasis.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_json-c_json") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/mybasis\ ") (* ****** ****** *) #declnamesynop("json_bool") (* ****** ****** *) #declnamesynop("lh_entry") #declnamesynop("lh_entry_vtype") #declnamesynop("lh_entry0") #declnamesynop("lh_entry1") #declnamesynop("lh_table") #declnamesynop("lh_table_vtype") #declnamesynop("lh_table0") #declnamesynop("lh_table1") (* ****** ****** *) #declnamesynop("lh_entry_free_fn_type") #declnamesynop("lh_hash_fn_type") #declnamesynop("lh_equal_fn_type") (* ****** ****** *) #declnamesynop("array_list") #declnamesynop("array_list_vtype") #declnamesynop("array_list0") #declnamesynop("array_list1") (* ****** ****** *) #declnamesynop("printbuf") #declnamesynop("printbuf_vtype") #declnamesynop("printbuf0") #declnamesynop("printbuf1") (* ****** ****** *) #declnamesynop("json_type") (* ****** ****** *) #declnamesynop("json_object") #declnamesynop("json_object_vtype") #declnamesynop("json_object0") #declnamesynop("json_object1") (* ****** ****** *) #declnamesynop("json_object_iterator") #declnamesynop("json_object_iterator_vt0ype") (* ****** ****** *) #declnamesynop("json_tokener_error") #declnamesynop("json_tokener_state") (* ****** ****** *) #declnamesynop("json_tokener") #declnamesynop("json_tokener_vtype") #declnamesynop("json_tokener0") #declnamesynop("json_tokener1") (* ****** ****** *) (* end of [mybasis.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/DOCUGEN/printbuf.atxt0000644000175000017500000000125113431250607030645 0ustar brandonbrandon(* ****** ****** *) %{ implement srcfilename_get () = "../printbuf.sats" %} (* ****** ****** *) %{ val () = patscode_count_reset() val () = patscode_prefix_set("TRYIT/contrib_json-c_json") %} (* ****** ****** *) #decltitle("\ ATSLIB/contrib/json-c/printbuf\ ") (* ****** ****** *) #declnamesynop("printbuf2ptr") (* ****** ****** *) #declnamesynop("printbuf_new") #declnamesynop("printbuf_free") #declnamesynop("printbuf_reset") #declnamesynop("printbuf_length") #declnamesynop("printbuf_memappend") #declnamesynop("printbuf_memset") (* ****** ****** *) (* int sprintbuf (struct printbuf *p, const char *msg,...) *) (* ****** ****** *) (* end of [printbuf.atxt] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/json_util.sats0000644000175000017500000000302113431250607027725 0ustar brandonbrandon(* ****** ****** *) (* ** Author: Hongwei Xi ** Start Time: May, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) (* struct json_object* json_object_from_file (const char *filename) *) fun json_object_from_file (filename: string): json_object0 = "mac#%" // end of [json_object_from_file] (* ****** ****** *) (* ** HX-2013-07: ** this one is in extension *) fun{ } json_objlst_from_file (filename: string): List0_vt (json_object0) // end of [json_objlst_from_file] fun{ } json_objlst_from_file_delim (filename: string, delim: string): List0_vt (json_object0) // end of [json_objlst_from_file_delim] (* ****** ****** *) (* int json_object_to_file (char *filename, struct json_object *obj) *) fun json_object_to_file (filename: string, !json_object0): int(*err*) = "mac#%" (* int json_object_to_file_ext (char *filename, struct json_object *obj, int flags) *) fun json_object_to_file_ext (filename: string, !json_object0, flags: int): int(*err*) = "mac#%" (* ****** ****** *) (* int json_parse_int64 (const char *buf, int64_t *retval) *) fun json_parse_int64 ( buf: string, retval: &int64? >> opt(int64, i==0) ) : #[i:int | i >= 0] int(i) = "mac#%" (* int json_parse_double (const char *buf, double *retval) *) fun json_parse_double ( buf: string, retval: &double? >> opt(double, i==0) ) : #[i:int | i >= 0] int(i) = "mac#%" (* ****** ****** *) fun json_type_to_name (type: json_type): string = "mac#%" (* ****** ****** *) (* end of [json_util.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/SATS/json_tokener.sats0000644000175000017500000000465113431250607030431 0ustar brandonbrandon(* ** Start Time: May, 2013 ** Author: Hongwei Xi (gmhwxi AT gmail DOT com) *) (* ****** ****** *) #include "./mybasis.sats" (* ****** ****** *) castfn json_tokener2ptr {l:addr} (tok: !json_tokener (l)):<> ptr (l) overload ptrcast with json_tokener2ptr (* ****** ****** *) (* ** HX-2013-07: field-selection *) fun json_tokener_get_char_offset (tok: !json_tokener1):<> int = "mac#%" (* ****** ****** *) (* const char* json_tokener_error_desc (enum json_tokener_error jerr) *) fun json_tokener_error_desc (jerr: json_tokener_error): string = "mac#%" // end of [json_tokener_error_desc] (* ****** ****** *) (* enum json_tokener_error json_tokener_get_error (struct json_tokener *tok) *) fun json_tokener_get_error (tok: !json_tokener1): json_tokener_error = "mac#%" // end of [json_tokener_get_error] (* ****** ****** *) (* struct json_tokener* json_tokener_new (void) *) fun json_tokener_new (): json_tokener0 = "mac#%" (* struct json_tokener* json_tokener_new_ex (int depth) *) fun json_tokener_new_ex (depth: intGte(0)): json_tokener0 = "mac#%" (* ****** ****** *) (* void json_tokener_free (struct json_tokener *tok) *) fun json_tokener_free (tok: json_tokener1): void = "mac#%" (* ****** ****** *) (* void json_tokener_reset (struct json_tokener *tok) *) fun json_tokener_reset (tok: !json_tokener1): void = "mac#%" (* ****** ****** *) (* struct json_object* json_tokener_parse (const char *str) *) fun json_tokener_parse (str: string): json_object0 = "mac#%" (* struct json_object* json_tokener_parse_verbose (const char *str, enum json_tokener_error *error) *) fun json_tokener_parse_verbose (str: string, error: &json_tokener_error): json_object0 = "mac#%" (* ****** ****** *) (* ** HX-2013-07: this one is in extension *) fun{ } json_tokener_parse$skip {n:int} (string n): natLte (n) fun{ } json_tokener_parse_list (inp: string): List0_vt (json_object0) fun{ } json_tokener_parse_list_delim (inp: string, delim: string): List0_vt (json_object0) // (* ****** ****** *) (* struct json_object* json_tokener_parse_ex (struct json_tokener *tok, const char *str, int len) *) fun json_tokener_parse_ex (tok: !json_tokener1, str: string, len: intGte(0)): json_object0 = "mac#%" // end of [json_tokener_parse_ex] (* ****** ****** *) (* void json_tokener_set_flags (struct json_tokener *tok, int flags) *) fun json_tokener_set_flags (tok: !json_tokener1, flags: int): void = "mac#%" (* ****** ****** *) (* end of [json_tokener.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libjson-c/mylibies_link.hats0000644000175000017500000000046013431250607027770 0ustar brandonbrandon(* ****** ****** *) // // HX-2018-01-14: // For link-time // (* ****** ****** *) local // #include "./DATS/json.dats" #include "./DATS/json_ML.dats" // in (* in of [local] *) // // HX: it is intentionally left to be empty // end // end of [local] (* ****** ****** *) (* end of [mylibies_link.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/0000755000175000017500000000000013431250607024031 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/DATS/0000755000175000017500000000000013431250607024564 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/DATS/curl_curl.dats0000644000175000017500000000227513431250607027441 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for libcurl // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // (* // Author: Hongwei Xi // Start time: 2017-01 // Authoremail: gmhwxiATgmailDOTcom *) // (* ****** ****** *) // // HX-2017-01: It is included in curl.dats // This file is yet empty! // (* ****** ****** *) (* end of [curl_curl.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/DATS/curl.dats0000644000175000017500000000224613431250607026412 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for libcurl // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // (* // Author: Hongwei Xi // Start time: 2017-01 // Authoremail: gmhwxiATgmailDOTcom *) // (* ****** ****** *) #include "./curl_curl.dats" #include "./curl_easy.dats" (* ****** ****** *) (* end of [curl.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/DATS/curl_easy.dats0000644000175000017500000000227513431250607027435 0ustar brandonbrandon(* ****** ****** *) // // API in ATS for libcurl // (* ****** ****** *) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2017 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // (* // Author: Hongwei Xi // Start time: 2017-01 // Authoremail: gmhwxiATgmailDOTcom *) // (* ****** ****** *) // // HX-2017-01: It is included in curl.dats // This file is yet empty! // (* ****** ****** *) (* end of [curl_easy.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/mylibies.hats0000644000175000017500000000037213431250607026531 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-01-29: // For downstream staloading // (* ****** ****** *) // #staload CURL = "./SATS/curl.sats" // (* ****** ****** *) // #staload _(*CURL*) = "./DATS/curl.dats" // (* ****** ****** *) (* end of [mylibies.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/.keeper0000644000175000017500000000000013431250607025273 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/TEST/0000755000175000017500000000000013431250607024610 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/TEST/test01.dats0000644000175000017500000000433513431250607026612 0ustar brandonbrandon// // Some code for testing the API in ATS for libcurl // (* ****** ****** *) #include "share/atspre_staload.hats" (* ****** ****** *) staload "./../SATS/curl.sats" (* ****** ****** *) extern fun{} get_URL (): string (* ****** ****** *) implement get_URL<>() = "http://www.ats-lang.org" (* ****** ****** *) implement main0 (argc, argv) = () where { // val URL = ( if argc >= 2 then argv[1] else get_URL() ) : string // end of [val] // val opt = ( if (argc >= 3) then fileref_open_opt(argv[2], file_mode_w) else None_vt((*void*)) ) : Option_vt(FILEref) val out = ( case+ opt of | ~Some_vt(out) => out | ~None_vt((*void*)) => stdout_ref ) : FILEref // val err = curl_global_init(CURL_GLOBAL_SSL) val ((*void*)) = assertloc(err = CURLE_OK) // val curl = curl_easy_init((*void*)) val p_curl = ptrcast(curl) val ((*void*)) = assertloc(p_curl > 0) // val err = $extfcall ( CURLerror , "curl_easy_setopt", p_curl, CURLOPT_URL, URL ) (* end of [val] *) val ((*void*)) = assertloc(err = CURLE_OK) // val err = $extfcall ( CURLerror , "curl_easy_setopt", p_curl, CURLOPT_FILE, out ) (* end of [val] *) val ((*void*)) = assertloc(err = CURLE_OK) // val err = $extfcall ( CURLerror , "curl_easy_setopt", p_curl, CURLOPT_SSL_VERIFYPEER, 1L) val err = CURLerror2code(err) val errmsg = curl_easy_strerror(err) val ((*void*)) = ( if (err != CURLE_OK) then println! ("errmsg = ", errmsg) // end of [if] ) (* // This results in an error: curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST , 1L) // HX: Note that 1L needs to be changed to 2L!!! // *) val err = $extfcall ( CURLerror , "curl_easy_setopt", p_curl, CURLOPT_SSL_VERIFYHOST, 2L) val err = CURLerror2code(err) val errmsg = curl_easy_strerror(err) val ((*void*)) = ( if (err != CURLE_OK) then println! ("errmsg = ", errmsg) // end of [if] ) val ((*void*)) = assertloc(err = CURLE_OK) // val err = curl_easy_perform(curl) // val err = CURLerror2code(err) // val errmsg = curl_easy_strerror(err) val ((*void*)) = ( if (err != CURLE_OK) then println! ("errmsg = ", errmsg) // end of [if] ) // val ((*void*)) = assertloc (err = CURLE_OK) // val () = curl_easy_cleanup (curl) // val () = curl_global_cleanup ((*void*)) // } (* end of [main0] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/TEST/test00.dats0000644000175000017500000000051013431250607026600 0ustar brandonbrandon// // Some code for testing // the API in ATS for libcurl // (* ****** ****** *) staload "./../SATS/curl.sats" (* ****** ****** *) val () = { // val () = println! ("The cURL version is ", curl_version ()) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [test00.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/TEST/Makefile0000644000175000017500000000124613431250607026253 0ustar brandonbrandon# # A simple Makefile # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc ###### all:: regress:: cleanall:: ###### INCLUDE=./../.. ###### all:: \ test00 test00: \ test00.dats ; \ $(PATSCC) -I$(INCLUDE) -o $@ $< -lcurl # regress:: test00 ; ./$< cleanall:: ; $(RMF) test00 # ###### # all:: \ test01 test01: \ test01.dats ; \ $(PATSCC) -I$(INCLUDE) -DATS_MEMALLOC_LIBC -o $@ $< -lcurl # regress:: test01 ; ./$< cleanall:: ; $(RMF) test01 # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c clean:: ; $(RMF) *_?ats.o cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/CATS/0000755000175000017500000000000013431250607024563 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/CATS/curl.cats0000644000175000017500000000530613431250607026410 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: September, 2013 *) */ /* ****** ****** */ #ifndef LIBCURL_CURL_CATS #define LIBCURL_CURL_CATS /* ****** ****** */ #include /* ****** ****** */ #define atscntrb_curl_curl_version curl_version /* ****** ****** */ #define \ atscntrb_curl_eq_CURLcode_CURLcode atspre_eq_int_int #define \ atscntrb_curl_eq_CURLerror_CURLcode atspre_eq_int_int /* ****** ****** */ #define \ atscntrb_curl_neq_CURLcode_CURLcode atspre_neq_int_int #define \ atscntrb_curl_neq_CURLerror_CURLcode atspre_neq_int_int /* ****** ****** */ #define atscntrb_curl_curl_global_init curl_global_init #define atscntrb_curl_curl_global_cleanup curl_global_cleanup /* ****** ****** */ #define atscntrb_curl_curl_easy_init curl_easy_init #define atscntrb_curl_curl_easy_setopt curl_easy_setopt #define atscntrb_curl_curl_easy_perform curl_easy_perform #define atscntrb_curl_curl_easy_cleanup curl_easy_cleanup /* ****** ****** */ #define atscntrb_curl_curl_easy_recv curl_easy_recv #define atscntrb_curl_curl_easy_send curl_easy_send /* ****** ****** */ #define atscntrb_curl_curl_easy_reset curl_easy_reset /* ****** ****** */ #define atscntrb_curl_curl_easy_duphandle curl_easy_duphandle /* ****** ****** */ #define \ atscntrb_curl_curl_easy_strerror(err) ((char*)(curl_easy_strerror(err))) /* ****** ****** */ #endif // ifndef LIBCURL_CURL_CATS /* ****** ****** */ /* end of [curl.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/SATS/0000755000175000017500000000000013431250607024603 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/SATS/curl_curl.sats0000644000175000017500000000352613431250607027477 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: September, 2013 *) (* ****** ****** *) // /* const char *curl_easy_strerror(CURLcode); */ fun curl_easy_strerror(CURLcode): string = "mac#%" // (* ****** ****** *) /* CURLcode curl_global_init(long flags); */ fun curl_global_init(flags: lint): CURLcode = "mac#%" // (* ****** ****** *) macdef CURL_GLOBAL_DEFAULT = $extval(lint, "CURL_GLOBAL_DEFAULT") (* ****** ****** *) // /* void curl_global_cleanup(void) ; */ fun curl_global_cleanup((*void*)): void = "mac#%" // (* ****** ****** *) (* end of [curl_curl.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/SATS/curl.sats0000644000175000017500000001215513431250607026450 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Start time: September, 2013 ** Authoremail: gmhwxiATgmailDOTcom *) (* ****** ****** *) %{# #include \ "atscntrb-hx-libcurl/CATS/curl.cats" %} // end of [%{#] (* ****** ****** *) // #define ATS_PACKNAME "ATSCNTRB.curl" #define ATS_EXTERN_PREFIX "atscntrb_curl_" // prefix for external names // (* ****** ****** *) // fun curl_version(): string = "mac#%" // (* ****** ****** *) absvtype CURLptr_vtype(l:addr) = ptr (* ****** ****** *) // vtypedef CURLptr(l:addr) = CURLptr_vtype(l) vtypedef CURLptr0 = [l:agez] CURLptr_vtype(l) vtypedef CURLptr1 = [l:addr | l > null] CURLptr_vtype(l) // (* ****** ****** *) // castfn CURLptr2ptr {l:addr}(curl: !CURLptr(l)):<> ptr(l) // overload ptrcast with CURLptr2ptr // (* ****** ****** *) // abst0ype CURLcode = $extype"CURLcode" absvt0ype CURLerror = $extype"CURLcode" // (* ****** ****** *) // castfn CURLerror2code(err: CURLerror):<> CURLcode // (* ****** ****** *) // fun eq_CURLcode_CURLcode (CURLcode, CURLcode):<> bool = "mac#%" fun neq_CURLcode_CURLcode (CURLcode, CURLcode):<> bool = "mac#%" // overload = with eq_CURLcode_CURLcode overload != with neq_CURLcode_CURLcode // fun eq_CURLerror_CURLcode (CURLerror, CURLcode):<> bool = "mac#%" fun neq_CURLerror_CURLcode (CURLerror, CURLcode):<> bool = "mac#%" // overload = with eq_CURLerror_CURLcode overload != with neq_CURLerror_CURLcode // (* ****** ****** *) macdef CURLE_OK = $extval(CURLcode, "CURLE_OK") (* ****** ****** *) // typedef CURL = lint // macdef CURL_GLOBAL_ALL = $extval(CURL, "CURL_GLOBAL_ALL") macdef CURL_GLOBAL_SSL = $extval(CURL, "CURL_GLOBAL_SSL") macdef CURL_GLOBAL_WIN32 = $extval(CURL, "CURL_GLOBAL_WIN32") // (* ****** ****** *) // abst@ype CURLOPT = $extype"CURLOPT" abst@ype CURLINFO = $extype"CURLINFO" // (* ****** ****** *) // macdef CURLOPT_URL = $extval(CURLOPT, "CURLOPT_URL") // 2 macdef CURLOPT_FILE = $extval(CURLOPT, "CURLOPT_FILE") // 1 macdef CURLOPT_PORT = $extval(CURLOPT, "CURLOPT_PORT") // 3 macdef CURLOPT_PROXY = $extval(CURLOPT, "CURLOPT_PROXY") // 4 macdef CURLOPT_USERPWD = $extval(CURLOPT, "CURLOPT_USERPWD") // 5 macdef CURLOPT_PROXYUSERPWD = $extval(CURLOPT, "CURLOPT_PROXYUSERPWD") // 6 macdef CURLOPT_RANGE = $extval(CURLOPT, "CURLOPT_RANGE") // 7 // HX: [8] is not used macdef CURLOPT_INFILE = $extval(CURLOPT, "CURLOPT_INFILE") // 9 macdef CURLOPT_ERRORBUFFER = $extval(CURLOPT, "CURLOPT_ERRORBUFFER") // 10 macdef CURLOPT_WRITEFUNCTION = $extval(CURLOPT, "CURLOPT_WRITEFUNCTION") // 11 macdef CURLOPT_READFUNCTION = $extval(CURLOPT, "CURLOPT_READFUNCTION") // 12 macdef CURLOPT_TIMEOUT = $extval(CURLOPT, "CURLOPT_TIMEOUT") // 13 macdef CURLOPT_INFILESIZE = $extval(CURLOPT, "CURLOPT_INFILESIZE") // 14 macdef CURLOPT_POSTFIELDS = $extval(CURLOPT, "CURLOPT_POSTFIELDS") // 15 macdef CURLOPT_REFERER = $extval(CURLOPT, "CURLOPT_REFERER") // 16 macdef CURLOPT_FTPPORT = $extval(CURLOPT, "CURLOPT_FTPPORT") // 17 macdef CURLOPT_USERAGENT = $extval(CURLOPT, "CURLOPT_USERAGENT") // 18 // macdef CURLOPT_READDATA = $extval(CURLOPT, "CURLOPT_READDATA") // = CURLOPT_INFILE macdef CURLOPT_WRITEDATA = $extval(CURLOPT, "CURLOPT_WRITEDATA") // = CURLOPT_FILE // macdef CURLOPT_SSL_VERIFYPEER = $extval(CURLOPT, "CURLOPT_SSL_VERIFYPEER") macdef CURLOPT_SSL_VERIFYHOST = $extval(CURLOPT, "CURLOPT_SSL_VERIFYHOST") // (* ****** ****** *) // macdef CURLINFO_TEXT = $extval(CURLINFO, "CURLINFO_TEXT") macdef CURLINFO_HEADER_IN = $extval(CURLINFO, "CURLINFO_HEADER_IN") macdef CURLINFO_HEADER_OUT = $extval(CURLINFO, "CURLINFO_HEADER_OUT") macdef CURLINFO_DATA_IN = $extval(CURLINFO, "CURLINFO_DATA_IN") macdef CURLINFO_DATA_OUT = $extval(CURLINFO, "CURLINFO_DATA_OUT") // (* ****** ****** *) // macdef CURLINFO_SSL_DATA_IN = $extval(CURLINFO, "CURLINFO_SSL_DATA_IN") macdef CURLINFO_SSL_DATA_OUT = $extval(CURLINFO, "CURLINFO_SSL_DATA_OUT") // (* ****** ****** *) #include "./curl_curl.sats" #include "./curl_easy.sats" (* ****** ****** *) (* end of [curl.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/atscntrb/atscntrb-hx-libcurl/SATS/curl_easy.sats0000644000175000017500000000554513431250607027476 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: September, 2013 *) (* ****** ****** *) /* CURL *curl_easy_init(); */ fun curl_easy_init (): CURLptr0 = "mac#%" fun curl_easy_init_exn (): CURLptr1 = "mac#%" (* ****** ****** *) /* CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); */ (* ****** ****** *) /* CURLcode curl_easy_perform(CURL *curl); */ fun curl_easy_perform (curl: !CURLptr1): CURLerror = "mac#%" (* ****** ****** *) // fun curl_easy_cleanup (curl: CURLptr1): void = "mac#%" // praxi curl_easy_cleanup_null (curl: CURLptr(null)): void // (* ****** ****** *) /* CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); */ (* ****** ****** *) /* CURLcode curl_easy_send ( CURL *curl , const void * buffer , size_t buflen , size_t *n ) ; // end of [curl_easy_send] */ fun curl_easy_send {m:int}{n:nat | n <= m} ( curl: !CURLptr1, buf: &bytes(m), len: size_t(m), n: &size_t(n) >> size_t(n2) ) : #[n2:int] CURLerror = "mac#%" // end of [curl_easy_send] (* ****** ****** *) /* CURLcode curl_easy_recv ( CURL *curl, void *buffer, size_t buflen, size_t *n ) ; // end of [curl_easy_recv] */ fun curl_easy_recv {m:int}{n:nat | n <= m} ( curl: !CURLptr1, buf: &bytes(m) >> _, len: size_t(m), n: &size_t(n) >> size_t(n2) ) : #[n2:int] CURLerror = "mac#%" // end of [curl_easy_recv] (* ****** ****** *) /* CURL* curl_easy_duphandle(CURL *curl); */ fun curl_easy_duphandle (curl: CURLptr1): CURLptr0 = "mac#%" (* ****** ****** *) /* void curl_easy_reset(CURL *curl); */ fun curl_easy_reset(curl: CURLptr1): void = "mac#%" (* ****** ****** *) (* end of [curl_easy.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/0000755000175000017500000000000013431250607020700 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/0000755000175000017500000000000013431250607022047 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/output/0000755000175000017500000000000013431250607023407 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/output/DATS/0000755000175000017500000000000013431250607024142 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/output/DATS/.keeper0000644000175000017500000000000013431250607025404 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/output/DATS/ML/0000755000175000017500000000000013431250607024452 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/output/DATS/ML/.keeper0000644000175000017500000000000013431250607025714 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/0000755000175000017500000000000013431250607022602 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/qlistref.dats0000644000175000017500000000122213431250607025305 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX: list-based queue // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_qlistref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/qlistref.dats" // (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/matrixref.dats0000644000175000017500000000505013431250607025460 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_matrixref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_php.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/PHParref.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/matrixref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/matrixref.dats" // (* ****** ****** *) // (* assume matrixref_vt0ype_type(a, m, n) = PHParray(a) *) // (* ****** ****** *) // implement matrixref_make_elt {a}{m,n}(m, n, x) = let val mn = $UN.cast{Nat}(m*n) in // $UN.cast {matrixref(a,m,n)}(PHParref_make_elt(mn, x)) // end // end of [matrixref_make_elt] // (* ****** ****** *) implement matrixref_get_at {a}(A, i, n, j) = let // val A = $UN.cast{PHParref(a)}(A) in PHParref_get_at(A, i*n+j) // end // end of [matrixref_get_at] (* ****** ****** *) implement matrixref_set_at {a}(A, i, n, j, x) = let // val A = $UN.cast{PHParref(a)}(A) in PHParref_set_at(A, i*n+j, x) // end // end of [matrixref_set_at] (* ****** ****** *) %{^ // function ats2phppre_mtrxszref_make_matrixref ($matrix, $nrow, $ncol) { return array($matrix, $nrow, $ncol); } // function ats2phppre_mtrxszref_get_nrow($MSZ) { return $MSZ[1]; } function ats2phppre_mtrxszref_get_ncol($MSZ) { return $MSZ[2]; } // function ats2phppre_mtrxszref_get_at ($MSZ, $i, $j) { $nrow = $MSZ[1]; $ncol = $MSZ[2]; if ($i < 0) throw new RangeException("mtrxszref_get_at"); if ($j < 0) throw new RangeException("mtrxszref_get_at"); if ($i >= $nrow) throw new RangeException("mtrxszref_get_at"); if ($j >= $ncol) throw new RangeException("mtrxszref_get_at"); return ats2phppre_PHParref_get_at($MSZ[0], $i*$ncol+$j); } // function ats2phppre_mtrxszref_set_at ($MSZ, $i, $j, $x0) { $nrow = $MSZ[1]; $ncol = $MSZ[2]; if ($i < 0) throw new RangeException("mtrxszref_set_at"); if ($j < 0) throw new RangeException("mtrxszref_set_at"); if ($i >= $nrow) throw new RangeException("mtrxszref_set_at"); if ($j >= $ncol) throw new RangeException("mtrxszref_set_at"); ats2phppre_PHParref_set_at($MSZ[0], $i*$ncol+$j, $x0); return; } // %} // end of [%{^] (* ****** ****** *) (* end of [matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/arrayref.dats0000644000175000017500000000361513431250607025277 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_arrayref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_php.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/PHParref.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/arrayref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/arrayref.dats" // (* ****** ****** *) // (* assume arrayref_vt0ype_type(a, n) = PHParref(a) *) // (* ****** ****** *) // implement arrayref_make_elt {a}{n}(n, x) = ( $UN.cast{arrayref(a,n)}(PHParref_make_elt(n, x)) ) // (* ****** ****** *) implement arrayref_get_at {a}(A, i) = let // val A = $UN.cast{PHParref(a)}(A) in PHParref_get_at(A, i) // end // end of [arrayref_get_at] (* ****** ****** *) implement arrayref_set_at {a}(A, i, x) = let // val A = $UN.cast{PHParref(a)}(A) in PHParref_set_at(A, i, x) // end // end of [arrayref_set_at] (* ****** ****** *) // // Array-with-size // (* ****** ****** *) // implement arrszref_make_arrayref {a}(A, n) = $UN.cast{arrszref(a)}(A) // (* ****** ****** *) // implement arrszref_size{a}(A) = ( PHParref_length($UN.cast{PHParref(a)}(A)) ) (* end of [arrszref_size] *) // (* ****** ****** *) // implement arrszref_get_at{a}(A, i) = let // val A = $UN.cast{PHParref(a)}(A) in PHParref_get_at(A, i) // end // end of [arrszref_get_at] // implement arrszref_set_at{a}(A, i, x) = let // val A = $UN.cast{PHParref(a)}(A) in PHParref_set_at(A, i, x) // end // end of [arrszref_set_at] // (* ****** ****** *) (* end of [arrayref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/intrange.dats0000644000175000017500000000115013431250607025263 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_intrange_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/intrange.dats" // (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/list.dats0000644000175000017500000000220413431250607024430 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" // #staload "./../SATS/stream_vt.sats" #staload _ = "./../DATS/stream.dats" // #staload "./../SATS/stream_vt.sats" #staload _ = "./../DATS/stream_vt.dats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list.dats" // (* ****** ****** *) // implement {a}(*tmp*) print_list(xs) = fprint_list (STDOUT, xs) implement {a}(*tmp*) print_list_sep (xs, sep) = fprint_list_sep (STDOUT, xs, sep) // (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/basics.dats0000644000175000017500000000342113431250607024723 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_basics_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/basics.dats" // (* ****** ****** *) implement {}(*tmp*) echo0 () = () implement {a1}//tmp echo1(x1) = echo_tmp(x1) implement {a1,a2} echo2(x1, x2) = (echo_tmp(x1); echo_tmp(x2)) implement {a1,a2,a3} echo3(x1, x2, x3) = ( echo_tmp(x1); echo_tmp(x2); echo_tmp(x3) ) implement {a1,a2,a3,a4} echo4(x1, x2, x3, x4) = ( echo_tmp(x1); echo_tmp(x2); echo_tmp(x3); echo_tmp(x4) ) implement {a1,a2,a3,a4,a5} echo5(x1, x2, x3, x4, x5) = ( echo_tmp(x1); echo_tmp(x2); echo_tmp(x3); echo_tmp(x4); echo_tmp(x5) ) implement {a1,a2,a3,a4,a5,a6} echo6(x1, x2, x3, x4, x5, x6) = ( echo_tmp(x1); echo_tmp(x2); echo_tmp(x3); echo_tmp(x4); echo_tmp(x5); echo_tmp(x6); ) implement {a1,a2,a3,a4,a5,a6,a7} echo7(x1, x2, x3, x4, x5, x6, x7) = ( echo_tmp(x1); echo_tmp(x2); echo_tmp(x3); echo_tmp(x4); echo_tmp(x5); echo_tmp(x6); echo_tmp(x7) ) implement {a1,a2,a3,a4,a5,a6,a7,a8} echo8(x1, x2, x3, x4, x5, x6, x7, x8) = ( echo_tmp(x1); echo_tmp(x2); echo_tmp(x3); echo_tmp(x4); echo_tmp(x5); echo_tmp(x6); echo_tmp(x7); echo_tmp(x8); ) (* ****** ****** *) implement{a} echo_tmp(x) = echo_obj(x) (* ****** ****** *) // implement fun2cloref0(fopr) = lam() => fopr() implement fun2cloref1(fopr) = lam(x) => fopr(x) implement fun2cloref2(fopr) = lam(x1, x2) => fopr(x1, x2) implement fun2cloref3(fopr) = lam(x1, x2, x3) => fopr(x1, x2, x3) // (* ****** ****** *) (* end of [basics.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/PHParref.dats0000644000175000017500000000232013431250607025123 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_PHParref_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_php.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/PHParray.sats" #staload "./../SATS/PHParref.sats" // (* ****** ****** *) implement PHParref_make_list {a}(xs) = (A) where { // val A = PHParref_nil() // fun loop (xs: List(a)): void = ( case+ xs of | list_nil ( // argless ) => ((*exit*)) | list_cons ( x, xs ) => loop(xs) where { val () = PHParref_extend(A, x) } (* end of [list_cons] *) ) // val () = loop(xs) // initizing // } (* PHParref_make_list *) (* ****** ****** *) // implement PHParref2list {a}(A) = PHParray2list{a}(PHParref2array(A)) // implement PHParref2list_rev {a}(A) = PHParray2list_rev{a}(PHParref2array(A)) // (* ****** ****** *) // implement PHParref_streamize_elt {a}(A) = PHParray_streamize_elt{a}(PHParref2array(A)) // (* ****** ****** *) (* end of [PHParref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/option.dats0000644000175000017500000000122713431250607024771 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_option_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/option.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/option.dats" // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/stream.dats0000644000175000017500000000151613431250607024755 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2jspre_" #define ATS_STATIC_PREFIX "_ats2jspre_stream_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_php.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // #staload "./../SATS/list.sats" #staload "./../SATS/reference.sats" // (* ****** ****** *) #staload "./../SATS/stream.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream.dats" // (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/reference.dats0000644000175000017500000000164313431250607025421 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_reference_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_php.sats" #staload "./../SATS/PHPref.sats" #staload "./../SATS/reference.sats" // (* ****** ****** *) // implement ref{a}(x) = ref_make_elt{a}(x) // implement ref_make_elt{a}(x) = $UN.cast{ref(a)}(PHPref_new(x)) // (* ****** ****** *) implement ref_get_elt{a}(r) = let val r = $UN.cast{PHPref(a)}(r) in PHPref_get_elt(r) end // end of [ref_get_elt] (* ****** ****** *) implement ref_set_elt{a}(r, x) = let val r = $UN.cast{PHPref(a)}(r) in PHPref_set_elt(r, x) end // end of [ref_set_elt] (* ****** ****** *) (* end of [reference.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/filebas.dats0000644000175000017500000000247513431250607025074 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_filebas_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_php.sats" #staload "./../SATS/bool.sats" #staload "./../SATS/filebas.sats" // (* ****** ****** *) implement streamize_fileref_line (inp) = auxmain(inp) where { // fun auxmain ( inp: PHPfilr ) : stream_vt(string) = $ldelay ( let // val line = $extfcall(string, "fgets", inp) // in if boolize(line) then stream_vt_cons(line, auxmain(inp)) else stream_vt_nil() // end of [if] end // end of [let] ) // } // end of [streamize_fileptr_line] (* ****** ****** *) implement streamize_fileptr_line (inp) = auxmain(inp) where { // fun auxmain ( inp: PHPfilp1 ) : stream_vt(string) = $ldelay ( let // val inp2 = $UN.castvwtp1{PHPfilr}(inp) val line = $extfcall(string, "fgets", inp2) // in if boolize(line) then stream_vt_cons(line, auxmain(inp)) else let val _ = fclose(inp) in stream_vt_nil() end // end of [if] end , ignoret(fclose(inp)) ) // } // end of [streamize_fileptr_line] (* ****** ****** *) (* end of [filebas.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/PHParray.dats0000644000175000017500000000642513431250607025154 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_PHParray_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_php.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/list.sats" #staload "./../SATS/PHParray.sats" #staload "./../SATS/PHParref.sats" // (* ****** ****** *) // implement PHParray_make_list {a}(xs) = ( $extfcall ( PHParray(a) , "ats2phppre_PHParref2array", A ) ) where { val A = PHParref_make_list{a}(xs) } // (* ****** ****** *) implement PHParray2list {a}(A) = let // val [n:int] asz = A.size() // fun loop {i:nat|i <= n} (i: int(i), res: list(a, n-i)): list(a, n) = ( if i > 0 then loop(i-1, list_cons(A[i-1], res)) else res // end of [if] ) (* end of [loop] *) // in loop(asz, list_nil()) end // end of [PHParray2list] (* ****** ****** *) implement PHParray2list_rev {a}(A) = let // val [n:int] asz = A.size() // fun loop {n:nat} {i:nat|i <= n} ( n: int(n) , i: int(i) , res: list(a, i)): list(a, n) = ( if (i < n) then loop(n, i+1, list_cons(A[i], res)) else res // end of [if] ) (* end of [loop] *) // in loop(asz, 0, list_nil()) end // end of [PHParray2list_rev] (* ****** ****** *) implement PHParray2list_map {a}{b}(A, fopr) = let // val [n:int] asz = A.size() // fun loop {n:nat} {i:nat|i <= n} ( n: int(n) , i: int(i) , res: list(b, i)): list(b, n) = ( if (i < n) then loop(n, i+1, list_cons(fopr(A[i]), res)) else res // end of [if] ) (* end of [loop] *) // in list_reverse(loop(asz, 0, list_nil())) end // end of [PHParray2list_map] (* ****** ****** *) implement PHParray2list_map_rev {a}{b}(A, fopr) = let // val [n:int] asz = A.size() // fun loop {i:nat|i <= n} (i: int(i), res: list(b, n-i)): list(b, n) = ( if i > 0 then loop(i-1, list_cons(fopr(A[i-1]), res)) else res // end of [if] ) (* end of [loop] *) // in list_reverse(loop(asz, list_nil())) end // end of [PHParray2list_map_rev] (* ****** ****** *) implement PHParray_forall (A, test) = loop(asz, 0) where { // val [n:int] asz = A.size() // fun loop {n:nat} {i:nat|i <= n} ( n: int(n) , i: int(i)): bool = ( if (i < n) then ( if test(A[i]) then loop(n, i+1) else false ) (* end of [then] *) else true // end of [else] // end of [if] ) (* end of [loop] *) // } // end of [PHParray_forall] (* ****** ****** *) implement PHParray_foreach (A, fwork) = loop(asz, 0) where { // val [n:int] asz = A.size() // fun loop {n:nat} {i:nat|i <= n} ( n: int(n) , i: int(i)): void = ( if (i < n) then ( let val () = fwork(A[i]) in loop(n, i+1) end // end of [let] ) (* end of [then] *) else ((*void*)) // end of [else] // end of [if] ) (* end of [loop] *) // } // end of [PHParray_foreach] (* ****** ****** *) implement PHParray_streamize_elt {a}(A) = auxmain(asz, 0) where { // val [n:int] asz = A.size() // fun auxmain {n:int} {i:nat|i <= n} ( n: int(n), i: int(i) ) : stream_vt(a) = $ldelay ( if i < n then stream_vt_cons (A[i], auxmain(n, i+1)) // then else stream_vt_nil((*void*)) // end of [if] ) (* end of [auxmain] *) // } (* end of [PHParray_streamize_elt] *) (* ****** ****** *) (* end of [PHParray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/slistref.dats0000644000175000017500000000122213431250607025307 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX: list-based stack // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_slistref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/slistref.dats" // (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/BUCS320/0000755000175000017500000000000013431250607023563 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/BUCS320/parcomb/0000755000175000017500000000000013431250607025206 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/BUCS320/parcomb/parcomb.dats0000644000175000017500000000133213431250607027505 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2phppre_BUCS320_parcomb_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../../basics_php.sats" // (* ****** ****** *) // #staload "./../../../SATS/list.sats" #staload "./../../../SATS/list_vt.sats" // (* ****** ****** *) // #staload "./../../../SATS/BUCS320/parcomb.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/parcomb/parcomb.dats" // (* ****** ****** *) (* end of [parcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025752 5ustar brandonbrandon././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.0000644000175000017500000000154113431250607030777 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2pypre_BUCS320_GraphSearch_dfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_php.sats" // (* ****** ****** *) // #staload "./../../../SATS/bool.sats" #staload "./../../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../../SATS/slistref.sats" // macdef slistref_insert = slistref_push macdef slistref_takeout_opt = slistref_pop_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.0000644000175000017500000000155013431250607030775 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2pypre_BUCS320_GraphSearch_bfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_php.sats" // (* ****** ****** *) // #staload "./../../../SATS/bool.sats" #staload "./../../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../../SATS/qlistref.sats" // macdef qlistref_insert = qlistref_enqueue macdef qlistref_takeout_opt = qlistref_dequeue_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/list_vt.dats0000644000175000017500000000136013431250607025143 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_list_vt_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_php.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list_vt.dats" // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/print.dats0000644000175000017500000000135213431250607024614 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_print_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" // (* ****** ****** *) implement print_val (x) = fprint_val (STDOUT, x) (* ****** ****** *) implement fprint_val = fprint_int implement fprint_val = fprint_bool implement fprint_val = fprint_double implement fprint_val = fprint_string (* ****** ****** *) (* end of [print.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/funarray.dats0000644000175000017500000000143313431250607025307 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_funarray_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // (* #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" *) // (* ****** ****** *) // #staload "./../SATS/funarray.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/funarray.dats" // (* ****** ****** *) (* end of [funarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/stream_vt.dats0000644000175000017500000000166613431250607025474 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_stream_vt_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_php.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // #staload "./../SATS/reference.sats" // (* ****** ****** *) #staload "./../SATS/stream.sats" #staload "./../SATS/stream_vt.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream_vt.dats" // (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/ML/0000755000175000017500000000000013431250607023112 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/ML/option0.dats0000644000175000017500000000125613431250607025363 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_ML_" #define ATS_STATIC_PREFIX "_ats2phppre_ML_option0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_php.sats" // (* ****** ****** *) // #staload "./../../SATS/ML/option0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/option0.dats" // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/ML/list0.dats0000644000175000017500000000204313431250607025021 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_ML_" #define ATS_STATIC_PREFIX "_ats2phppre_ML_list0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_php.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/list.sats" #staload "./../../SATS/ML/list0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/list0.dats" // (* ****** ****** *) // implement {a}(*tmp*) print_list0 (xs) = fprint_list0 (STDOUT, xs) // implement {a}(*tmp*) print_list0_sep (xs, sep) = fprint_list0_sep (STDOUT, xs, sep) // (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/ML/array0.dats0000644000175000017500000000155613431250607025174 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_ML_" #define ATS_STATIC_PREFIX "_ats2phppre_ML_array0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_php.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/arrayref.sats" #staload "./../../SATS/ML/array0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/array0.dats" // (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/DATS/ML/matrix0.dats0000644000175000017500000000161213431250607025353 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_ML_" #define ATS_STATIC_PREFIX "_ats2phppre_ML_matrix0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_php.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/matrixref.sats" #staload "./../../SATS/ML/matrix0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/matrix0.dats" // (* ****** ****** *) (* end of [matrix0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/basics_php.sats0000644000175000017500000000615013431250607025060 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_PACKNAME "ATSCC2PHP" #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/basics.sats" // (* ****** ****** *) abstype PHPobj (* ****** ****** *) abstype PHPfilr (* ****** ****** *) absvtype PHPfilp(l:addr) vtypedef PHPfilp0 = [l:addr] PHPfilp(l) vtypedef PHPfilp1 = [l:addr | l > null] PHPfilp(l) (* ****** ****** *) // fun PHPfilp_is_null {l:addr}(!PHPfilp(l)): bool(l==null) = "mac#%" fun PHPfilp_isnot_null {l:addr}(!PHPfilp(l)): bool(l > null) = "mac#%" // overload iseqz with PHPfilp_is_null overload isneqz with PHPfilp_isnot_null // (* ****** ****** *) // abstype PHPref(a:vt@ype) // reference // abstype PHParray(a:vt@ype) // risk on your own!!! abstype PHParref(a:vt@ype) // reference to PHParray // (* ****** ****** *) abstype PHPobjmap(a:vt@ype) // string-keyed hashmap (* ****** ****** *) // fun{ a:t0p } echo_tmp(obj: a): void // fun echo_obj{a:t0p}(obj: a): void = "mac#%" // (* ****** ****** *) // symintr echo // fun{ } echo0(): void fun{ a1:t0p } echo1 (INV(a1)): void fun{ a1,a2:t0p } echo2 (INV(a1), INV(a2)): void fun{ a1,a2,a3:t0p } echo3 (INV(a1), INV(a2), INV(a3)): void fun{ a1,a2,a3,a4:t0p } echo4 (INV(a1), INV(a2), INV(a3), INV(a4)): void fun{ a1,a2,a3,a4,a5:t0p } echo5 (INV(a1), INV(a2), INV(a3), INV(a4), INV(a5)): void fun{ a1,a2,a3,a4,a5,a6:t0p } echo6 (INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6)): void fun{ a1,a2,a3,a4,a5,a6,a7:t0p } echo7 (INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6), INV(a7)): void fun{ a1,a2,a3,a4,a5,a6,a7,a8:t0p } echo8 (INV(a1), INV(a2), INV(a3), INV(a4), INV(a5), INV(a6), INV(a7), INV(a8)): void // overload echo with echo0 overload echo with echo1 overload echo with echo2 overload echo with echo3 overload echo with echo4 overload echo with echo5 overload echo with echo6 overload echo with echo7 overload echo with echo8 // (* ****** ****** *) // typedef strchr = string(1) // (* ****** ****** *) // fun intval(rep: string): int = "mac#%" fun floatval(rep: string): double = "mac#%" // (* ****** ****** *) // fun lazy2cloref {a:t0p} ( lazy(a) ) : ((*void*)) - (a) = "mac#%" // (* ****** ****** *) // fun assert_errmsg_bool0 (x: bool, msg: string): void = "mac#%" // fun assert_errmsg_bool1 {b:bool} (x: bool b, msg: string): [b] void = "mac#%" // overload assert_errmsg with assert_errmsg_bool0 of 100 overload assert_errmsg with assert_errmsg_bool1 of 110 // (* ****** ****** *) // macdef assertloc(x) = assert_errmsg (,(x), $mylocation) // (* ****** ****** *) // fun fun2cloref0 {res:t@ype} (fopr: () -> res): cfun(res) = "mac#%" fun fun2cloref1 {a:t@ype}{res:t@ype} (fopr: (a) -> res): cfun(a, res) = "mac#%" fun fun2cloref2 {a1,a2:t@ype}{res:t@ype} (fopr: (a1, a2) -> res): cfun(a1, a2, res) = "mac#%" fun fun2cloref3 {a1,a2,a3:t@ype}{res:t@ype} (fopr: (a1, a2, a3) -> res): cfun(a1, a2, a3, res) = "mac#%" // (* ****** ****** *) (* end of [basics_php.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/Makefile0000644000175000017500000001022113431250607023503 0ustar brandonbrandon# # For generating libatscc2php # ###### PATSOPT=$(PATSHOME)/bin/patsopt ATSCC2PHP=$(PATSHOME)/bin/atscc2php ###### CAT=cat CPF=cp -f RMF=rm -f ###### all:: ; \ $(PATSOPT) -d ./DATS/list.dats | \ $(ATSCC2PHP) -o ./output/DATS/list_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/list_vt.dats | \ $(ATSCC2PHP) -o ./output/DATS/list_vt_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/option.dats | \ $(ATSCC2PHP) -o ./output/DATS/option_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/stream.dats | \ $(ATSCC2PHP) -o ./output/DATS/stream_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/stream_vt.dats | \ $(ATSCC2PHP) -o ./output/DATS/stream_vt_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/filebas.dats | \ $(ATSCC2PHP) -o ./output/DATS/filebas_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/intrange.dats | \ $(ATSCC2PHP) -o ./output/DATS/intrange_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/PHParray.dats | \ $(ATSCC2PHP) -o ./output/DATS/PHParray_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/PHParref.dats | \ $(ATSCC2PHP) -o ./output/DATS/PHParref_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/arrayref.dats | \ $(ATSCC2PHP) -o ./output/DATS/arrayref_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/matrixref.dats | \ $(ATSCC2PHP) -o ./output/DATS/matrixref_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/reference.dats | \ $(ATSCC2PHP) -o ./output/DATS/reference_dats.php -i ###### all:: ; \ $(PATSOPT) -d ./DATS/funarray.dats | \ $(ATSCC2PHP) -o ./output/DATS/funarray_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/slistref.dats | \ $(ATSCC2PHP) -o ./output/DATS/slistref_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/qlistref.dats | \ $(ATSCC2PHP) -o ./output/DATS/qlistref_dats.php -i ###### all:: ; \ $(PATSOPT) -d ./DATS/ML/list0.dats | \ $(ATSCC2PHP) -o ./output/DATS/ML/list0_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/ML/array0.dats | \ $(ATSCC2PHP) -o ./output/DATS/ML/array0_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/ML/option0.dats | \ $(ATSCC2PHP) -o ./output/DATS/ML/option0_dats.php -i all:: ; \ $(PATSOPT) -d ./DATS/ML/matrix0.dats | \ $(ATSCC2PHP) -o ./output/DATS/ML/matrix0_dats.php -i ###### # LIBATSCC2PHP_ALL_PHP=\ output/libatscc2php_all.php # ###### # DATE=/bin/date ECHO=/bin/echo -en # PRINTF=printf # ###### # # all_in_one:: ; \ # $(ECHO) | $(CAT) - >$(LIBATSCC2PHP_ALL_PHP) # all_in_one:: ; \ $(PRINTF) '\n' | $(CAT) - >$(LIBATSCC2PHP_ALL_PHP) all_in_one:: ; \ $(PRINTF) '>$(LIBATSCC2PHP_ALL_PHP) # all_in_one:: ; $(PRINTF) '/*\n' | $(CAT) - >>$(LIBATSCC2PHP_ALL_PHP) # all_in_one:: ; \ $(PRINTF) '** Time of Generation:\n** ' | $(CAT) - >>$(LIBATSCC2PHP_ALL_PHP) # all_in_one:: ; $(DATE) | $(CAT) - >>$(LIBATSCC2PHP_ALL_PHP) # all_in_one:: ; $(PRINTF) '*/\n' | $(CAT) - >>$(LIBATSCC2PHP_ALL_PHP) # all_in_one:: ; $(PRINTF) '?>\n' | $(CAT) - >>$(LIBATSCC2PHP_ALL_PHP) # ###### all_in_one:: ; \ $(CAT) >>$(LIBATSCC2PHP_ALL_PHP) \ CATS/basics_cats.php \ CATS/integer_cats.php \ CATS/bool_cats.php \ CATS/float_cats.php \ CATS/string_cats.php \ CATS/print_cats.php \ CATS/filebas_cats.php \ CATS/PHPref_cats.php \ CATS/PHParray_cats.php \ CATS/PHParref_cats.php \ all_in_one:: ; \ $(CAT) >>$(LIBATSCC2PHP_ALL_PHP) \ output/DATS/list_dats.php \ output/DATS/list_vt_dats.php \ output/DATS/option_dats.php \ output/DATS/stream_dats.php \ output/DATS/stream_vt_dats.php \ output/DATS/filebas_dats.php \ output/DATS/intrange_dats.php \ output/DATS/PHParray_dats.php \ output/DATS/PHParref_dats.php \ output/DATS/arrayref_dats.php \ output/DATS/matrixref_dats.php \ output/DATS/reference_dats.php \ output/DATS/funarray_dats.php \ output/DATS/slistref_dats.php \ output/DATS/qlistref_dats.php \ output/DATS/ML/list0_dats.php \ output/DATS/ML/array0_dats.php \ output/DATS/ML/option0_dats.php \ output/DATS/ML/matrix0_dats.php \ ###### # all_in_one:: ; \ $(PRINTF) '>$(LIBATSCC2PHP_ALL_PHP) # all_in_one:: ; \ $(PRINTF) '/*\n** end of [$(LIBATSCC2PHP_ALL_PHP)]\n*/\n' | $(CAT) - >>$(LIBATSCC2PHP_ALL_PHP) # all_in_one:: ; $(PRINTF) '?>\n' | $(CAT) - >>$(LIBATSCC2PHP_ALL_PHP) # ###### clean:: ; $(RMF) *~ */*~ ###### cleanall:: clean cleanall:: ; $(RMF) output/DATS/*_?ats.php cleanall:: ; $(RMF) output/DATS/ML/*_?ats.php cleanall:: ; $(RMF) $(LIBATSCC2PHP_ALL_PHP) ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/mylibies.hats0000777000175000017500000000000013431250607027543 2staloadall.hatsustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/0000755000175000017500000000000013431250607022626 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/test01.dats0000644000175000017500000000113113431250607024617 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2php // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_STATIC_PREFIX "_test01_" #define ATS_DYNLOADNAME "test01_dynload" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) %{$ test01_dynload(); %} (* end of [%{$] *) (* ****** ****** *) %{^ include "./../output/libatscc2php_all.php"; %} (* end of [%{^] *) (* ****** ****** *) // val () = repeat(3, $delay(println!("Hello, world!"))) val () = (3).foreach()(lam(i) = println!(i, ": Hello, world!")) // (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/Makefile0000644000175000017500000000223513431250607024270 0ustar brandonbrandon###### # # A simple Makefile # ###### PHP=php ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2PHP=${PATSHOME}/bin/atscc2php ###### all:: regress:: cleanall:: ###### # all:: \ test01_dats.php test01_dats.c: \ test01.dats; $(PATSOPT) -o $@ -d $< test01_dats.php: \ test01_dats.c; $(ATSCC2PHP) -o $@ -i $< # ###### # all:: \ test02_dats.php test02_dats.c: \ test02.dats; $(PATSOPT) -o $@ -d $< test02_dats.php: \ test02_dats.c; $(ATSCC2PHP) -o $@ -i $< # ###### # all:: \ test03_dats.php test03_dats.c: \ test03.dats; $(PATSOPT) -o $@ -d $< test03_dats.php: \ test03_dats.c; $(ATSCC2PHP) -o $@ -i $< # ###### # all:: \ test04_dats.php test04_dats.c: \ test04.dats; $(PATSOPT) -o $@ -d $< test04_dats.php: \ test04_dats.c; $(ATSCC2PHP) -o $@ -i $< # ###### # regress:: test01_dats.php; $(PHP) -f $< regress:: test02_dats.php; $(PHP) -f $< regress:: test03_dats.php; $(PHP) -f $< regress:: test04_dats.php; $(PHP) -f $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.php ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/0000755000175000017500000000000013431250607023607 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025776 5ustar brandonbrandon././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs0000644000175000017500000001010413431250607030703 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_GameOf24Play_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = slistref_make_nil{node}() val () = slistref_insert(store, nx) // in // GraphSearch_dfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{$ // GameOf24Play(3, 3, 8, 8); GameOf24Play(3, 5, 7, 13); GameOf24Play(4, 4, 10, 10); GameOf24Play(5, 5, 7, 11); GameOf24Play(5, 7, 7, 11); // %} (* end of [%{$] *) (* ****** ****** *) %{^ // include "./../../../output/libatscc2php_all.php"; // %} (* end of [%{^] *) (* ****** ****** *) (* end of [GameOf24Play_dfs.dats] *) ././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs0000644000175000017500000001010313431250607030700 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_GameOf24Play_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = qlistref_make_nil{node}() val () = qlistref_insert(store, nx) // in // GraphSearch_bfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{$ // GameOf24Play(3, 3, 8, 8); GameOf24Play(3, 5, 7, 13); GameOf24Play(4, 4, 10, 10); GameOf24Play(5, 5, 7, 11); GameOf24Play(5, 7, 7, 11); // %} (* end of [%{$] *) (* ****** ****** *) %{^ // include "./../../../output/libatscc2php_all.php"; // %} (* end of [%{^] *) (* ****** ****** *) (* end of [GameOf24Play_bfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.0000644000175000017500000000315113431250607031122 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = slistref_make_nil{node}() // val () = slistref_insert(store, nil0) // val () = GraphSearch_dfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{$ // QueenPuzzle_solve(); // %} (* end of [%{$] *) (* ****** ****** *) %{^ // include "./../../../output/libatscc2php_all.php"; // %} (* end of [%{^] *) (* ****** ****** *) (* end of [QueenPuzzle_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/Makefile0000644000175000017500000000252613431250607027443 0ustar brandonbrandon# # A simple Makefile # ###### PHP=php ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2PHP=${PATSHOME}/bin/atscc2php ###### all:: ###### # all:: \ QueenPuzzle_dfs_dats.php QueenPuzzle_dfs_dats.c: \ QueenPuzzle_dfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_dfs_dats.php: \ QueenPuzzle_dfs_dats.c; $(ATSCC2PHP) -o $@ -i $< # regress:: QueenPuzzle_dfs_dats.php; $(PHP) $< # ###### # all:: \ QueenPuzzle_bfs_dats.php QueenPuzzle_bfs_dats.c: \ QueenPuzzle_bfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_bfs_dats.php: \ QueenPuzzle_bfs_dats.c; $(ATSCC2PHP) -o $@ -i $< # regress:: QueenPuzzle_bfs_dats.php; $(PHP) $< # ###### # all:: \ GameOf24Play_dfs_dats.php GameOf24Play_dfs_dats.c: \ GameOf24Play_dfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_dfs_dats.php: \ GameOf24Play_dfs_dats.c; $(ATSCC2PHP) -o $@ -i $< # regress:: GameOf24Play_dfs_dats.php; $(PHP) $< # ###### # all:: \ GameOf24Play_bfs_dats.php GameOf24Play_bfs_dats.c: \ GameOf24Play_bfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_bfs_dats.php: \ GameOf24Play_bfs_dats.c; $(ATSCC2PHP) -o $@ -i $< # regress:: GameOf24Play_bfs_dats.php; $(PHP) $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.php ###### ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.0000644000175000017500000000315013431250607031117 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_QueenPuzzle_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = qlistref_make_nil{node}() // val () = qlistref_insert(store, nil0) // val () = GraphSearch_bfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{$ // QueenPuzzle_solve(); // %} (* end of [%{$] *) (* ****** ****** *) %{^ // include "./../../../output/libatscc2php_all.php"; // %} (* end of [%{^] *) (* ****** ****** *) (* end of [QueenPuzzle_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/test02.dats0000644000175000017500000000126613431250607024631 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2php // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_STATIC_PREFIX "_test02_" #define ATS_DYNLOADNAME "test02_dynload" // (* ****** ****** *) #define :: list_cons (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) %{$ test02_dynload(); %} (* end of [%{$] *) (* ****** ****** *) %{^ include "./../output/libatscc2php_all.php"; %} (* end of [%{^] *) (* ****** ****** *) val xs = ( 0 :: 1 :: 2 :: 3 :: 4 :: 5 :: 6 :: 7 :: 8 :: 9 :: nil() ) : List0 (int) (* ****** ****** *) val () = println! ("xs = ", xs) val () = println! ("xs + xs = ", xs + xs) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/test04.dats0000644000175000017500000000330113431250607024623 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2php // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_STATIC_PREFIX "_test04_" #define ATS_DYNLOADNAME "test04_dynload" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) %{$ test04_dynload(); %} (* end of [%{$] *) (* ****** ****** *) // val A0 = arrayref_make_elt{int}(10, 0) val () = arrayref_foreach_cloref (A0, 10, lam(i) => A0[i] := i*i) val () = arrayref_foreach_cloref (A0, 10, lam(i) => println!("A0[",i,"]=",A0[i])) // (* ****** ****** *) // val A1 = array0_make_elt{int}(10, 0) val () = A1.foreach()(lam(i) => A1[i] := i*i) val () = A1.foreach()(lam(i) => println!("A1[",i,"]=",A1[i])) // (* ****** ****** *) // val A1 = arrszref_make_elt{int}(10, 0) val () = A1.foreach()(lam(i) => A1[i] := i*i) val () = A1.foreach()(lam(i) => println!("A1[",i,"]=",A1[i])) // (* ****** ****** *) // val M0 = matrixref_make_elt{int}(2, 5, 0) val () = matrixref_foreach_cloref (M0, 2, 5, lam(i, j) => M0[i,5,j] := i*j) val () = matrixref_foreach_cloref ( M0, 2, 5 , lam(i, j) => println!("M0[", i, ",", j, "]=", M0[i,5,j])) // (* ****** ****** *) // val M1 = matrix0_make_elt{int}(2, 5, 0) val () = M1.foreach()(lam(i, j) => M1[i,j] := i*j) val () = M1.foreach() (lam(i, j) => println!("M1[", i, ",", j, "]=", M1[i,j])) // (* ****** ****** *) // val M1 = mtrxszref_make_elt{int}(2, 5, 0) val () = M1.foreach()(lam(i, j) => M1[i,j] := i*j) val () = M1.foreach() (lam(i, j) => println!("M1[", i, ",", j, "]=", M1[i,j])) // (* ****** ****** *) // (* val M1_55 = M1[5,5] // Uncaught RangeException *) // (* ****** ****** *) %{^ include "./../output/libatscc2php_all.php"; %} (* end of [%{^] *) (* ****** ****** *) (* end of [test04.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/TEST/test03.dats0000644000175000017500000000150013431250607024621 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2php // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_STATIC_PREFIX "_test03_" #define ATS_DYNLOADNAME "test03_dynload" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) %{$ test03_dynload(); %} (* end of [%{$] *) (* ****** ****** *) %{^ include "./../output/libatscc2php_all.php"; %} (* end of [%{^] *) (* ****** ****** *) // val () = println! ("sqrt(2) = ", sqrt(2.0)) val () = println! ("cbrt(2) = ", cbrt(2.0)) val () = println! ("(2.0)^10 = ", pow(2.0, 10)) val () = println! ("(2.0)^10 = ", pow(2.0, 10.0)) val () = println! ("exp(10.0) = ", exp(10.0)) val () = println! ("log(exp(10.0)) = ", log(exp(10.0))) val () = println! ("log(exp(10.0)) = ", log(exp(10.0), sqrt(exp(1)))) // (* ****** ****** *) (* end of [test03.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/0000755000175000017500000000000013431250607022601 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/PHParref_cats.php0000644000175000017500000000365313431250607026002 0ustar brandonbrandonarray); } // /* ****** ****** */ // function ats2phppre_PHParref_nil () { $res = new PHParref; $res->array = array(); return $res; } // function ats2phppre_PHParref_sing ($x) { $res = new PHParref; $res->array = array($x); return $res; } // function ats2phppre_PHParref_pair ($x1, $x2) { $res = new PHParref; $res->array = array($x1, x2); return $res; } // /* ****** ****** */ function ats2phppre_PHParref_make_elt ($asz, $x0) { $res = new PHParref; $res->array = array_fill(0, $asz, $x0); return $res; } /* ****** ****** */ function ats2phppre_PHParref_size ($A) { return count($A->array) ; } function ats2phppre_PHParref_length ($A) { return count($A->array) ; } // /* ****** ****** */ // function ats2phppre_PHParref_get_at ($A, $i) { return $A->array[$i] ; } // function ats2phppre_PHParref_set_at ($A, $i, $x) { $A->array[$i] = $x; return; } // /* ****** ****** */ // function ats2phppre_PHParref_unset ($A, $k) { unset($A->array[$k]); return; } // /* ****** ****** */ // function ats2phppre_PHParref_extend ($A, $x) { $A->array[] = $x; return; } // /* ****** ****** */ function ats2phppre_PHParref_copy ($A) { $A2 = new PHParref; $A2->array = $A->array; return $A2; } /* ****** ****** */ function ats2phppre_PHParref_values ($A) { $A2 = new PHParref; $A2->array = array_values($A->array); return $A2; // end-of-body } /* ****** ****** */ // function ats2phppre_PHParref_join ($A) { return (implode($A->array)); } function ats2phppre_PHParref_join_sep ($A, $sep) { return (implode($A->array, $sep)); } // /* ****** ****** */ /* end of [PHParref_cats.php] */ ?> ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/PHParray_cats.php0000644000175000017500000000173513431250607026020 0ustar brandonbrandon ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/bool_cats.php0000644000175000017500000000311013431250607025252 0ustar brandonbrandon ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/integer_cats.php0000644000175000017500000000550613431250607025767 0ustar brandonbrandon= 0) ? floor($x/2) : ceil($x/2); } /* ****** ****** */ function ats2phppre_succ_int1($x) { return ($x + 1); } function ats2phppre_pred_int1($x) { return ($x - 1); } /* ****** ****** */ function ats2phppre_half_int1($x) { return ats2phppre_half_int0($x); } /* ****** ****** */ function ats2phppre_add_int0_int0($x, $y) { return ($x + $y); } function ats2phppre_sub_int0_int0($x, $y) { return ($x - $y); } function ats2phppre_mul_int0_int0($x, $y) { return ($x * $y); } function ats2phppre_div_int0_int0($x, $y) { return intval($x / $y); } function ats2phppre_mod_int0_int0($x, $y) { return ($x % $y); } /* ****** ****** */ function ats2phppre_add_int1_int1($x, $y) { return ($x + $y); } function ats2phppre_sub_int1_int1($x, $y) { return ($x - $y); } function ats2phppre_mul_int1_int1($x, $y) { return ($x * $y); } function ats2phppre_div_int1_int1($x, $y) { return intval($x / $y); } /* ****** ****** */ // function ats2phppre_mod_int1_int1($x, $y) { return ($x % $y); } function ats2phppre_nmod_int1_int1($x, $y) { return ($x % $y); } // /* ****** ****** */ function ats2phppre_lt_int0_int0($x, $y) { return ($x < $y); } function ats2phppre_lte_int0_int0($x, $y) { return ($x <= $y); } function ats2phppre_gt_int0_int0($x, $y) { return ($x > $y); } function ats2phppre_gte_int0_int0($x, $y) { return ($x >= $y); } function ats2phppre_eq_int0_int0($x, $y) { return ($x === $y); } function ats2phppre_neq_int0_int0($x, $y) { return ($x !== $y); } /* ****** ****** */ function ats2phppre_compare_int0_int0($x, $y) { return ($x < $y ? -1 : ($x <= $y ? 0 : 1)); // HX: intcmp } /* ****** ****** */ function ats2phppre_lt_int1_int1($x, $y) { return ($x < $y); } function ats2phppre_lte_int1_int1($x, $y) { return ($x <= $y); } function ats2phppre_gt_int1_int1($x, $y) { return ($x > $y); } function ats2phppre_gte_int1_int1($x, $y) { return ($x >= $y); } function ats2phppre_eq_int1_int1($x, $y) { return ($x === $y); } function ats2phppre_neq_int1_int1($x, $y) { return ($x !== $y); } /* ****** ****** */ // function ats2phppre_max_int0_int0($x, $y) { return max($x, $y); } function ats2phppre_max_int1_int1($x, $y) { return max($x, $y); } // function ats2phppre_min_int0_int0($x, $y) { return min($x, $y); } function ats2phppre_min_int1_int1($x, $y) { return min($x, $y); } // /* ****** ****** */ /* end of [integer_cats.php] */ ?> ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/filebas_cats.php0000644000175000017500000000120213431250607025724 0ustar brandonbrandon ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/basics_cats.php0000644000175000017500000000741213431250607025574 0ustar brandonbrandon ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/string_cats.php0000644000175000017500000000334313431250607025635 0ustar brandonbrandon 0) ; } function ats2phppre_gte_string_string ($x1, $x2) { return (strcmp($x1, $x2) >= 0) ; } /* ****** ****** */ function ats2phppre_eq_string_string ($x1, $x2) { return (strcmp($x1, $x2) === 0) ; } function ats2phppre_neq_string_string ($x1, $x2) { return (strcmp($x1, $x2) !== 0) ; } /* ****** ****** */ // function ats2phppre_compare_string_string ($x1, $x2) { $sgn = strcmp($x1, $x2) ; return (($sgn < 0)? -1 : (($sgn > 0) ? 1 : 0)); } // /* ****** ****** */ function ats2phppre_string_append ($x1, $x2) { return ($x1.$x2) ; } /* ****** ****** */ // function ats2phppre_string_concat_2 ($x1, $x2) { return ($x1.$x2) ; } function ats2phppre_string_concat_3 ($x1, $x2, $x3) { return sprintf("%s%s%s", $x1, $x2, $x3) ; } function ats2phppre_string_concat_4 ($x1, $x2, $x3, $x4) { return sprintf("%s%s%s%s", $x1, $x2, $x3, $x4) ; } // /* ****** ****** */ /* end of [string_cats.php] */ ?> ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/float_cats.php0000644000175000017500000000535513431250607025441 0ustar brandonbrandon $y); } function ats2phppre_gte_double_double($x, $y) { return ($x >= $y); } function ats2phppre_eq_double_double($x, $y) { return ($x === $y); } function ats2phppre_neq_double_double($x, $y) { return ($x !== $y); } /* ****** ****** */ // function ats2phppre_max_double_double($x, $y) { return max($x, $y); } function ats2phppre_min_double_double($x, $y) { return min($x, $y); } // /* ****** ****** */ function ats2phppre_exp_int($n) { return exp($n); } function ats2phppre_exp_double($n) { return exp($n); } /* ****** ****** */ function ats2phppre_log_double($p) { return log($p); } function ats2phppre_log_double_double($p, $base) { return log($p, $base); } /* ****** ****** */ function ats2phppre_pow_double_int($base, $n) { return pow($base, $n); } function ats2phppre_pow_double_double($base, $n) { return pow($base, $n); } /* ****** ****** */ /* end of [float_cats.php] */ ?> ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/PHPref_cats.php0000644000175000017500000000122213431250607025445 0ustar brandonbrandonvalue = $x0; return $res; } function ats2phppre_PHPref_make_elt ($x0) { return PHPref_new($x0); } // /* ****** ****** */ // function ats2phppre_PHPref_get_elt ($A) { return $A->value ; } // function ats2phppre_PHPref_set_elt ($A, $x) { $A->value = $x; return ; } // /* ****** ****** */ /* end of [PHPref_cats.php] */ ?> ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/CATS/print_cats.php0000644000175000017500000000270513431250607025464 0ustar brandonbrandon ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/0000755000175000017500000000000013431250607022621 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/intrange.sats0000644000175000017500000000064413431250607025330 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/intrange.sats" // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/PHParref.sats0000644000175000017500000000430613431250607025167 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_PHParref_" // (* ****** ****** *) // #staload "./../basics_php.sats" // PHP datatypes // (* ****** ****** *) // fun PHParref_nil {a:vt0p}(): PHParref(a) = "mac#%" // fun PHParref_sing {a:vt0p}(x: a): PHParref(a) = "mac#%" // fun PHParref_pair {a:vt0p}(x1: a, x2: a): PHParref(a) = "mac#%" // (* ****** ****** *) // fun PHParref_is_nil {a:vt0p}(PHParref(a)): bool = "mac#%" // fun PHParref_isnot_nil {a:vt0p}(PHParref(a)): bool = "mac#%" // (* ****** ****** *) // fun PHParref_make_elt{a:t0p} (asz: intGte(0), x0: a): PHParref(a) = "mac#%" // (* ****** ****** *) // fun PHParref_make_list {a:t0p}(xs: List(INV(a))): PHParref(a) = "mac#%" // (* ****** ****** *) // fun PHParref_size {a:vt0p}(PHParref(a)): intGte(0) = "mac#%" fun PHParref_length {a:vt0p}(PHParref(a)): intGte(0) = "mac#%" // (* ****** ****** *) // fun PHParref_get_at {a:t0p}(A: PHParref(a), i: int): a = "mac#%" // fun PHParref_set_at {a:t0p} (A: PHParref(a), i: int, x: a): void = "mac#%" // (* ****** ****** *) overload [] with PHParref_get_at of 100 overload [] with PHParref_set_at of 100 (* ****** ****** *) // fun PHParref_unset {a:t0p} (A: PHParref(a), index: int): void = "mac#%" // (* ****** ****** *) // fun PHParref_extend {a:t0p}(A: PHParref(a), x0: a): void = "mac#%" // (* ****** ****** *) // fun PHParref_copy {a:t0p}(A0: PHParref(a)): PHParref(a) = "mac#%" fun PHParref_values {a:t0p}(A0: PHParref(a)): PHParref(a) = "mac#%" // (* ****** ****** *) // fun PHParref2array {a:t0p}(A0: PHParref(a)): PHParray(a) = "mac#%" // (* ****** ****** *) // fun PHParref2list {a:t0p}(A: PHParref(a)): List0(a) = "mac#%" fun PHParref2list_rev {a:t0p}(A: PHParref(a)): List0(a) = "mac#%" // (* ****** ****** *) // fun PHParref_streamize_elt {a:t0p}(A: PHParref(a)): stream_vt(a) = "mac#%" // (* ****** ****** *) // fun PHParref_join {a:t0p}(A: PHParref(a)): string = "mac#%" fun PHParref_join_sep {a:t0p}(A: PHParref(a), sep: string): string = "mac#%" // (* ****** ****** *) (* end of [PHParref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/PHParray.sats0000644000175000017500000000377113431250607025213 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_PHParray_" // (* ****** ****** *) // #staload "./../basics_php.sats" // PHP datatypes // (* ****** ****** *) // fun PHParray_nil {a:t0p}(): PHParray(a) = "mac#%" fun PHParray_sing {a:t0p}(a): PHParray(a) = "mac#%" fun PHParray_pair {a:t0p}(a, a): PHParray(a) = "mac#%" // (* ****** ****** *) // fun PHParray_make_elt {a:t0p} (asz: intGte(0), x0: a): PHParray(a) = "mac#%" // (* ****** ****** *) // fun PHParray_make_list {a:t0p}(xs: List(INV(a))): PHParray(a) = "mac#%" // (* ****** ****** *) // fun PHParray_size {a:t0p}(PHParray(a)): intGte(0) = "mac#%" // overload size with PHParray_size of 100 overload .size with PHParray_size of 100 // (* ****** ****** *) // fun PHParray_get_at {a:t0p}(A: PHParray(a), i: int): a = "mac#%" // overload [] with PHParray_get_at of 100 // (* ****** ****** *) // fun PHParray2list {a:t0p}(A: PHParray(a)): List0(a) = "mac#%" fun PHParray2list_rev {a:t0p}(A: PHParray(a)): List0(a) = "mac#%" // (* ****** ****** *) // fun PHParray2list_map {a:t0p}{b:t0p} (A: PHParray(a), fopr: cfun(a, b)): List0(b) = "mac#%" fun PHParray2list_map_rev {a:t0p}{b:t0p} (A: PHParray(a), fopr: cfun(a, b)): List0(b) = "mac#%" // (* ****** ****** *) // fun PHParray_forall {a:t0p} (A: PHParray(a), test: cfun(a, bool)): bool = "mac#%" fun PHParray_foreach {a:t0p} (A: PHParray(a), test: cfun(a, void)): void = "mac#%" // (* ****** ****** *) // fun PHParray_streamize_elt {a:t0p}(A: PHParray(a)): stream_vt(a) = "mac#%" // (* ****** ****** *) // fun PHParray_join {a:t0p}(A: PHParray(a)): string = "mac#%" fun PHParray_join_sep {a:t0p}(A: PHParray(a), sep: string): string = "mac#%" // (* ****** ****** *) // (* typedef strchr = string(1) *) fun PHParray_of_string(cs: string): PHParray(strchr) = "mac#%" // (* ****** ****** *) (* end of [PHParray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/float.sats0000644000175000017500000000762613431250607024635 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // fun double2int (x: double): int = "mac#%" fun int_of_double (x: double): int = "mac#%" // fun int2double (x: int): double = "mac#%" fun double_of_int (x: int): double = "mac#%" // (* ****** ****** *) fun abs_double : (double) -> double = "mac#%" overload abs with abs_double of 100 (* ****** ****** *) fun neg_double : (double) -> double = "mac#%" overload ~ with neg_double of 100 overload neg with neg_double of 100 (* ****** ****** *) // fun succ_double : (double) -> double = "mac#%" fun pred_double : (double) -> double = "mac#%" // overload succ with succ_double of 100 overload pred with pred_double of 100 // (* ****** ****** *) // fun sqrt_double : (double) -> double = "mac#%" fun cbrt_double : (double) -> double = "mac#%" // overload sqrt with sqrt_double of 100 overload cbrt with cbrt_double of 100 // (* ****** ****** *) // fun add_int_double : (int, double) - double = "mac#%" fun add_double_int : (double, int) - double = "mac#%" // fun sub_int_double : (int, double) - double = "mac#%" fun sub_double_int : (double, int) - double = "mac#%" // fun mul_int_double : (int, double) - double = "mac#%" fun mul_double_int : (double, int) - double = "mac#%" // fun div_int_double : (int, double) - double = "mac#%" fun div_double_int : (double, int) - double = "mac#%" // (* ****** ****** *) overload + with add_int_double of 100 overload + with add_double_int of 100 overload - with sub_int_double of 100 overload - with sub_double_int of 100 overload * with mul_int_double of 100 overload * with mul_double_int of 100 overload / with div_int_double of 100 overload / with div_double_int of 100 (* ****** ****** *) typedef float_aop_type = (double, double) -> double (* ****** ****** *) // fun add_double_double : float_aop_type = "mac#%" fun sub_double_double : float_aop_type = "mac#%" fun mul_double_double : float_aop_type = "mac#%" fun div_double_double : float_aop_type = "mac#%" // (* ****** ****** *) // overload + with add_double_double of 100 overload - with sub_double_double of 100 overload * with mul_double_double of 100 overload / with div_double_double of 100 // (* ****** ****** *) typedef float_cmp_type = (double, double) -> bool (* ****** ****** *) // fun lt_double_double : float_cmp_type = "mac#%" fun lte_double_double : float_cmp_type = "mac#%" fun gt_double_double : float_cmp_type = "mac#%" fun gte_double_double : float_cmp_type = "mac#%" // fun eq_double_double : float_cmp_type = "mac#%" fun neq_double_double : float_cmp_type = "mac#%" // (* ****** ****** *) // overload < with lt_double_double of 100 overload <= with lte_double_double of 100 overload > with gt_double_double of 100 overload >= with gte_double_double of 100 overload = with eq_double_double of 100 overload != with neq_double_double of 100 overload <> with neq_double_double of 100 // (* ****** ****** *) // fun max_double_double : (double, double) -<> double = "mac#%" fun min_double_double : (double, double) -<> double = "mac#%" // overload max with max_double_double of 100 overload min with min_double_double of 100 // (* ****** ****** *) // fun exp_int(int): double = "mac#%" fun exp_double : (double) -> double = "mac#%" // overload exp with exp_int of 100 overload exp with exp_double of 100 // (* ****** ****** *) // fun log_double : (double) -> double = "mac#%" fun log_double_double : (double, double) -> double = "mac#%" // overload log with log_double of 100 overload log with log_double_double of 100 // (* ****** ****** *) // fun pow_double_int : (double, int) -> double = "mac#%" fun pow_double_double : (double, double) -> double = "mac#%" // overload pow with pow_double_int of 100 overload pow with pow_double_double of 100 // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/filebas.sats0000644000175000017500000000243413431250607025125 0ustar brandonbrandon(* ** For writing ATS code ** that transpiles into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) #staload "./../basics_php.sats" (* ****** ****** *) // (* val STDIN : PHPfilr = "mac#" val STDOUT : PHPfilr = "mac#" val STDERR : PHPfilr = "mac#" *) macdef STDIN = $extval(PHPfilr, "STDIN") macdef STDOUT = $extval(PHPfilr, "STDOUT") macdef STDERR = $extval(PHPfilr, "STDERR") // (* ****** ****** *) // fun fclose_1(PHPfilp0): bool = "mac#%" // fun fclose_checkret(ret: bool): void = "mac#%" // symintr fclose overload fclose with fclose_1 // (* ****** ****** *) // fun unlink_1(fname: string): bool = "mac#%" // fun unlink_checkret(ret: bool): void = "mac#%" // symintr unlink overload unlink with unlink_1 // (* ****** ****** *) // fun fwrite_2 (!PHPfilp0, inp: string): int = "mac#%" fun fwrite_3 (!PHPfilp0, inp: string, maxlen: int): int = "mac#%" // fun fwrite_checkret(nwrit: int): void = "mac#%" // symintr fwrite overload fwrite with fwrite_2 overload fwrite with fwrite_3 // (* ****** ****** *) // fun streamize_fileref_line (inp: PHPfilr): stream_vt(string) = "mac#%" // fun streamize_fileptr_line (inp: PHPfilp1): stream_vt(string) = "mac#%" // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/PHPref.sats0000644000175000017500000000141213431250607024637 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_PHPref_" // (* ****** ****** *) // // PHP datatypes // #staload "./../basics_php.sats" // (* ****** ****** *) // fun PHPref_new{a:vt0p}(x: a): PHPref(a) = "mac#%" fun PHPref_make_elt{a:vt0p}(x: a): PHPref(a) = "mac#%" // (* ****** ****** *) // fun PHPref_get_elt{a:t0p}(ref: PHPref(a)): a = "mac#%" fun PHPref_set_elt{a:t0p}(ref: PHPref(a), x0: a): void = "mac#%" // fun PHPref_exch_elt{a:vt0p}(ref: PHPref(a), x0: a): (a) = "mac#%" // (* ****** ****** *) overload [] with PHPref_get_elt overload [] with PHPref_set_elt (* ****** ****** *) (* end of [PHPref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/list.sats0000644000175000017500000000125713431250607024475 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/list.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list (PHPfilr, List(INV(a))): void = "mac#%" // fun{} fprint_list$sep (out: PHPfilr): void = "mac#%" // fun{a:t0p} fprint_list_sep (PHPfilr, List(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list of 100 // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/char.sats0000644000175000017500000000074313431250607024436 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // typedef char = int // (* ****** ****** *) fun char_isalpha(c: char): bool = "mac#%" fun char_isalnum(c: char): bool = "mac#%" fun char_isdigit(c: char): bool = "mac#%" (* ****** ****** *) fun char_isspace(c: char): bool = "mac#%" (* ****** ****** *) (* end of [char.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/list_vt.sats0000644000175000017500000000064213431250607025203 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/list_vt.sats" // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/arrayref.sats0000644000175000017500000000064013431250607025330 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // #include "{$LIBATSCC}/SATS/arrayref.sats" // (* ****** ****** *) (* end of [arrayref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/matrixref.sats0000644000175000017500000000064213431250607025520 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // #include "{$LIBATSCC}/SATS/matrixref.sats" // (* ****** ****** *) (* end of [matrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/string.sats0000644000175000017500000000526213431250607025030 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_string_" // (* ****** ****** *) // #staload "./../basics_php.sats" // HX: strchr // (* ****** ****** *) // fun strval{a:t0p}(obj: a): string = "mac#%" // (* ****** ****** *) // fun strlen(x0: string): intGte(0) = "mac#%" fun string_length(x0: string): intGte(0) = "mac#%" // overload .length with string_length of 100 // (* ****** ****** *) // fun string0_is_empty (str: string): bool = "mac#%" fun string0_isnot_empty (str: string): bool = "mac#%" // fun string1_is_empty {n:int}(string(n)): bool(n==0) = "mac#%" fun string1_isnot_empty {n:int}(string(n)): bool(n > 0) = "mac#%" // overload iseqz with string0_is_empty of 100 overload iseqz with string1_is_empty of 100 // overload isneqz with string0_isnot_empty of 110 overload isneqz with string1_isnot_empty of 110 // (* ****** ****** *) // fun strcmp (string, string): int = "mac#%" fun strncmp (string, string, n: intGte(0)): int = "mac#%" // (* ****** ****** *) // fun lt_string_string : (string, string) -> bool = "mac#%" fun lte_string_string : (string, string) -> bool = "mac#%" fun gt_string_string : (string, string) -> bool = "mac#%" fun gte_string_string : (string, string) -> bool = "mac#%" // fun eq_string_string : (string, string) -> bool = "mac#%" fun neq_string_string : (string, string) -> bool = "mac#%" // (* ****** ****** *) // overload < with lt_string_string of 100 overload <= with lte_string_string of 100 overload > with gt_string_string of 100 overload >= with gte_string_string of 100 // overload = with eq_string_string of 100 overload != with neq_string_string of 100 overload <> with neq_string_string of 100 // (* ****** ****** *) // fun compare_string_string: (string, string) -> intBtwe(~1, 1) = "mac#%" // overload compare with compare_string_string of 100 // (* ****** ****** *) // fun string_append ( str1: string, str2: string ) : string = "mac#%" // overload + with string_append of 100 // (* ****** ****** *) // fun string_concat_2 ( x1: string, x2: string ) : string = "mac#%" // end-of-fun fun string_concat_3 ( x1: string, x2: string, x3: string ) : string = "mac#%" // end-of-fun fun string_concat_4 ( x1: string, x2: string, x3: string, x4: string ) : string = "mac#%" // end-of-fun // symintr string_concat // overload string_concat with string_concat_2 of 100 overload string_concat with string_concat_3 of 100 overload string_concat with string_concat_4 of 100 // (* ****** ****** *) // fun string_explode(cs: string): List0(strchr) = "mac#%" // (* ****** ****** *) (* end of [string.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/stream_vt.sats0000644000175000017500000000064613431250607025527 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/stream_vt.sats" // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/integer.sats0000644000175000017500000001027613431250607025160 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // fun abs_int0 : int - int = "mac#%" overload abs with abs_int0 of 100 // (* ****** ****** *) // fun neg_int0 : int - int = "mac#%" // fun neg_int1 : {i:int} int(i) - int(~i) = "mac#%" // overload ~ with neg_int0 of 100 overload ~ with neg_int1 of 110 overload neg with neg_int0 of 100 overload neg with neg_int1 of 110 // (* ****** ****** *) // fun succ_int0 : int - int = "mac#%" fun pred_int0 : int - int = "mac#%" // fun succ_int1 : {i:int} int(i) - int(i+1) = "mac#%" fun pred_int1 : {i:int} int(i) - int(i-1) = "mac#%" // overload succ with succ_int0 of 100 overload pred with pred_int0 of 100 // overload succ with succ_int1 of 110 overload pred with pred_int1 of 110 // (* ****** ****** *) // fun half_int0 : int - int = "mac#%" fun half_int1 : {i:int} int(i) - int(i/2) = "mac#%" // overload half with half_int0 of 100 overload half with half_int1 of 110 // (* ****** ****** *) // fun add_int0_int0: (int, int) - int = "mac#%" fun sub_int0_int0 : (int, int) - int = "mac#%" fun mul_int0_int0 : (int, int) - int = "mac#%" fun div_int0_int0 : (int, int) - int = "mac#%" fun mod_int0_int0 : (int, int) - int = "mac#%" // (* ****** ****** *) // fun add_int1_int1 : {i,j:int} (int(i), int(j)) - int(i+j) = "mac#%" fun sub_int1_int1 : {i,j:int} (int(i), int(j)) - int(i-j) = "mac#%" fun mul_int1_int1 : {i,j:int} (int(i), int(j)) - int(i*j) = "mac#%" fun div_int1_int1 : {i,j:int} (int(i), int(j)) - int(i/j) = "mac#%" // (* ****** ****** *) // fun nmod_int1_int1 { i,j:int | i >= 0; j > 0 } (i: int(i), j: int(j)): int(nmod(i, j)) = "mac#%" // (* ****** ****** *) // overload + with add_int0_int0 of 100 overload - with sub_int0_int0 of 100 overload * with mul_int0_int0 of 100 overload / with div_int0_int0 of 100 overload % with mod_int0_int0 of 100 // overload mod with mod_int0_int0 of 100 // overload + with add_int1_int1 of 120 overload - with sub_int1_int1 of 120 overload * with mul_int1_int1 of 120 overload / with div_int1_int1 of 120 // (* ****** ****** *) // fun lt_int0_int0: (int, int) - bool = "mac#%" fun lte_int0_int0: (int, int) - bool = "mac#%" fun gt_int0_int0: (int, int) - bool = "mac#%" fun gte_int0_int0: (int, int) - bool = "mac#%" // fun eq_int0_int0: (int, int) - bool = "mac#%" fun neq_int0_int0: (int, int) - bool = "mac#%" // fun compare_int0_int0: (int, int) - int = "mac#%" // (* ****** ****** *) // fun lt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i < j) = "mac#%" fun lte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i <= j) = "mac#%" fun gt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i > j) = "mac#%" fun gte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i >= j) = "mac#%" // fun eq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i == j) = "mac#%" fun neq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i != j) = "mac#%" // (* ****** ****** *) // overload < with lt_int0_int0 of 100 overload <= with lte_int0_int0 of 100 overload > with gt_int0_int0 of 100 overload >= with gte_int0_int0 of 100 overload = with eq_int0_int0 of 100 overload != with neq_int0_int0 of 100 overload <> with neq_int0_int0 of 100 // overload compare with compare_int0_int0 of 100 // (* ****** ****** *) // overload < with lt_int1_int1 of 120 overload <= with lte_int1_int1 of 120 overload > with gt_int1_int1 of 120 overload >= with gte_int1_int1 of 120 overload = with eq_int1_int1 of 120 overload != with neq_int1_int1 of 120 overload <> with neq_int1_int1 of 120 // (* ****** ****** *) // fun max_int0_int0: (int, int) - int = "mac#%" fun min_int0_int0: (int, int) - int = "mac#%" // fun max_int1_int1 : {i,j:int} (int(i), int(j)) - int(max(i,j)) = "mac#%" fun min_int1_int1 : {i,j:int} (int(i), int(j)) - int(min(i,j)) = "mac#%" // (* ****** ****** *) // overload max with max_int0_int0 of 100 overload min with min_int0_int0 of 100 // overload max with max_int1_int1 of 120 overload min with min_int1_int1 of 120 // (* ****** ****** *) (* end of [integer.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/bool.sats0000644000175000017500000000507013431250607024452 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-11-17: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // fun boolize {a:t@ype} (x: (a)): bool = "mac#%" fun boolize_vt {a:vt@ype} (x: !INV(a)): bool = "mac#%" // (* ****** ****** *) // fun bool2int0 (b: bool):<> natLt(2) = "mac#%" fun bool2int1 {b:bool} (b: bool(b)):<> int(bool2int(b)) = "mac#%" // symintr bool2int overload bool2int with bool2int0 of 100 overload bool2int with bool2int1 of 110 // (* ****** ****** *) // fun int2bool0 (i: int):<> bool = "mac#%" fun int2bool1 {i:int}(i: int(i)):<> bool(i != 0) = "mac#%" // symintr int2bool overload int2bool with int2bool0 of 100 overload int2bool with int2bool1 of 110 // (* ****** ****** *) // fun neg_bool0 : (bool) -> bool = "mac#%" fun neg_bool1 : {b:bool} bool(b) -> bool(~b) = "mac#%" // overload ~ with neg_bool0 of 100 overload ~ with neg_bool1 of 110 // overload not with neg_bool0 of 100 overload not with neg_bool1 of 110 // (* ****** ****** *) fun add_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload + with add_bool0_bool0 of 100 fun add_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 || b2) = "mac#%" overload + with add_bool0_bool1 of 110 fun add_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 || b2) = "mac#%" overload + with add_bool1_bool0 of 110 fun add_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 || b2) = "mac#%" overload + with add_bool1_bool1 of 120 (* ****** ****** *) fun mul_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload * with mul_bool0_bool0 of 100 fun mul_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool0_bool1 of 110 fun mul_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool0 of 110 fun mul_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool1 of 120 (* ****** ****** *) // fun eq_bool0_bool0 : (bool, bool) -> bool = "mac#%" fun neq_bool0_bool0 : (bool, bool) -> bool = "mac#%" // fun eq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 == b2) = "mac#%" fun neq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 != b2) = "mac#%" // overload = with eq_bool0_bool0 of 100 overload = with eq_bool1_bool1 of 120 // overload != with neq_bool0_bool0 of 100 overload != with neq_bool1_bool1 of 120 // (* ****** ****** *) (* end of [bool.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/qlistref.sats0000644000175000017500000000071613431250607025352 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_PACKNAME "ATSCC2PHP.qlistref" #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/qlistref.sats" // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/reference.sats0000644000175000017500000000061713431250607025457 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // #include "{$LIBATSCC}/SATS/reference.sats" // (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/BUCS320/0000755000175000017500000000000013431250607023602 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/BUCS320/parcomb.sats0000644000175000017500000000066413431250607026127 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2016-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_BUCS320_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/BUCS320/parcomb.sats" // (* ****** ****** *) (* end of [parcomb.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/BUCS320/words.sats0000644000175000017500000000070313431250607025634 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2016-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_BUCS320_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../../basics_php.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/BUCS320/words.sats" // (* ****** ****** *) (* end of [words.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/slistref.sats0000644000175000017500000000071613431250607025354 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_PACKNAME "ATSCC2PHP.slistref" #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/slistref.sats" // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/option.sats0000644000175000017500000000077713431250607025040 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/option.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option (PHPfilr, Option(INV(a))): void = "mac#%" // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/funarray.sats0000644000175000017500000000063613431250607025351 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // #include "{$LIBATSCC}/SATS/funarray.sats" // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/stream.sats0000644000175000017500000000072013431250607025007 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" #define ATS_STATIC_PREFIX "_ats2phppre_stream_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/stream.sats" // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/print.sats0000644000175000017500000000347113431250607024656 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_" // (* ****** ****** *) #staload "./../basics_php.sats" (* ****** ****** *) // fun print_int : (int) -> void = "mac#%" fun prerr_int : (int) -> void = "mac#%" // fun fprint_int: (PHPfilr, int) -> void = "mac#%" // overload print with print_int of 100 overload prerr with prerr_int of 100 overload fprint with fprint_int of 100 // (* ****** ****** *) // fun print_bool : (bool) -> void = "mac#%" fun prerr_bool : (bool) -> void = "mac#%" // fun fprint_bool: (PHPfilr, bool) -> void = "mac#%" // overload print with print_bool of 100 overload prerr with prerr_bool of 100 overload fprint with fprint_bool of 100 // (* ****** ****** *) // fun print_double : (double) -> void = "mac#%" fun prerr_double : (double) -> void = "mac#%" // fun fprint_double : (PHPfilr, double) -> void = "mac#%" // overload print with print_double of 100 overload prerr with prerr_double of 100 overload fprint with fprint_double of 100 // (* ****** ****** *) // fun print_string (str: string): void = "mac#%" fun prerr_string (str: string): void = "mac#%" // fun fprint_string: (PHPfilr, string) -> void = "mac#%" // (* ****** ****** *) // overload print with print_string of 100 overload prerr with prerr_string of 100 overload fprint with fprint_string of 100 // (* ****** ****** *) // fun print_obj{a:t0p}(obj: a): void = "mac#%" fun print_r_obj{a:t0p}(obj: a): void = "mac#%" // (* ****** ****** *) fun{a:t0p} print_val (x: a): void = "mac#%" fun{a:t0p} fprint_val (PHPfilr, x: a): void = "mac#%" (* ****** ****** *) fun print_newline ((*void*)): void = "mac#%" fun prerr_newline ((*void*)): void = "mac#%" fun fprint_newline (out: PHPfilr): void = "mac#%" (* ****** ****** *) (* end of [print.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/ML/0000755000175000017500000000000013431250607023131 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/ML/option0.sats0000644000175000017500000000104113431250607025411 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_php.sats" // #include "{$LIBATSCC}/SATS/ML/option0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option0 (PHPfilr, option0(INV(a))): void = "mac#%" // overload fprint with fprint_option0 of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/ML/matrix0.sats0000644000175000017500000000064713431250607025420 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_php.sats" // #include "{$LIBATSCC}/SATS/ML/matrix0.sats" // (* ****** ****** *) (* end of [matrix0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/ML/list0.sats0000644000175000017500000000145413431250607025064 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/ML/list0.sats" // (* ****** ****** *) // fun {a:t0p} fprint_list0 ( out: PHPfilr, xs: list0(INV(a)) ) : void = "mac#%" // end-of-function // fun{} fprint_list0$sep(out: PHPfilr): void = "mac#%" // fun {a:t0p} fprint_list0_sep ( out: PHPfilr, xs: list0(INV(a)), sep: string ) : void = "mac#%" // end-of-function // overload fprint with fprint_list0 of 100 overload fprint with fprint_list0_sep of 100 // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/SATS/ML/array0.sats0000644000175000017500000000065113431250607025225 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2phppre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_php.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/ML/array0.sats" // (* ****** ****** *) (* end of [array0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/ATS2-0.3.2/staloadall.hats0000644000175000017500000000315113431250607025050 0ustar brandonbrandon(* ** For writing ATS code ** that translates into PHP *) (* ****** ****** *) // // HX-2014-09-09 // (* ****** ****** *) // #staload "./basics_php.sats" // (* ****** ****** *) // #staload "./SATS/integer.sats" // (* ****** ****** *) // #staload "./SATS/bool.sats" #staload "./SATS/float.sats" #staload "./SATS/string.sats" // (* ****** ****** *) // #staload _(*anon*) = "./DATS/basics.dats" // (* ****** ****** *) // #staload "./SATS/print.sats" #staload _ = "./DATS/print.dats" // (* ****** ****** *) // #staload "./SATS/filebas.sats" // (* ****** ****** *) // #staload "./SATS/list.sats" #staload _ = "./DATS/list.dats" // (* ****** ****** *) // #staload "./SATS/stream.sats" #staload _ = "./DATS/stream.dats" // #staload "./SATS/stream_vt.sats" #staload _ = "./DATS/stream_vt.dats" // (* ****** ****** *) // #staload "./SATS/intrange.sats" #staload "./SATS/reference.sats" // (* ****** ****** *) // #staload "./SATS/PHPref.sats" #staload "./SATS/PHParray.sats" #staload "./SATS/PHParref.sats" // (* ****** ****** *) #staload "./SATS/arrayref.sats" #staload "./SATS/matrixref.sats" (* ****** ****** *) // // one-list-based stack // two-list-based queue // #staload "./SATS/slistref.sats" #staload "./SATS/qlistref.sats" // (* ****** ****** *) // // HX: un-indexed list // HX: un-indexed array // #staload "./SATS/ML/list0.sats" #staload "./SATS/ML/array0.sats" #staload "./SATS/ML/option0.sats" #staload "./SATS/ML/matrix0.sats" // #staload _ = "./DATS/ML/list0.dats" #staload _ = "./DATS/ML/array0.dats" #staload _ = "./DATS/ML/option0.dats" #staload _ = "./DATS/ML/matrix0.dats" // (* ****** ****** *) (* end of [staloadall.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2php/.keeper0000644000175000017500000000000013431250607022142 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/0000755000175000017500000000000013431250607020566 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/CATS-parsemit0000777000175000017500000000000013431250607025574 2../CATS-parsemitustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/bin/0000755000175000017500000000000013431250607021336 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/bin/.gitkeep0000644000175000017500000000000013431250607022755 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/DATS/0000755000175000017500000000000013431250607021321 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/DATS/atscc2js_emit2.dats0000644000175000017500000007152713431250607025026 0ustar brandonbrandon(* ****** ****** *) // // Atscc2js: // from ATS to JavaScript // (* ****** ****** *) // // HX-2014-08-20: start // HX-2015-05-22: restructure // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) // extern fun emit_tmpdeclst_initize ( out: FILEref, tds: tmpdeclst ) : void // end-of-fun // implement emit_tmpdeclst_initize (out, tds) = let // fun auxlst ( out: FILEref, tds: tmpdeclst ) : void = let in // case+ tds of | list_nil () => () | list_cons (td, tds) => ( case+ td.tmpdec_node of | TMPDECnone (tmp) => auxlst (out, tds) | TMPDECsome (tmp, _) => let val () = emit_nspc (out, 2(*ind*)) val () = ( emit_text (out, "var "); emit_tmpvar (out, tmp); emit_ENDL (out) ) (* end of [val] *) in auxlst (out, tds) end // end of [TMPDECsome] ) (* end of [list_cons] *) // end // end of [auxlst] // in auxlst (out, tds) end // end of [emit_tmpdeclst_initize] // (* ****** ****** *) // extern fun the_tmpdeclst_get (): tmpdeclst extern fun the_tmpdeclst_set (tds: tmpdeclst): void // (* ****** ****** *) // extern fun the_funbodylst_get (): instrlst extern fun the_funbodylst_set (inss: instrlst): void // (* ****** ****** *) // extern fun the_branchlablst_get (): labelist extern fun the_branchlablst_set (tls: labelist): void extern fun the_branchlablst_unset ((*void*)): void // (* ****** ****** *) local // val the_tmpdeclst = ref (list_nil) // val the_funbodylst = ref (list_nil) // // HX: this is a stack: // val the_branchlablstlst = ref (list_nil) // in (* in-of-local *) implement the_tmpdeclst_get () = !the_tmpdeclst implement the_tmpdeclst_set (xs) = !the_tmpdeclst := xs implement the_funbodylst_get () = !the_funbodylst implement the_funbodylst_set (xs) = !the_funbodylst := xs implement the_branchlablst_get ( ) = let // val xss = !the_branchlablstlst // in // case- xss of list_cons (xs, _) => xs // end // end of [the_branchlablst_get] implement the_branchlablst_set ( xs ) = let // val xss = !the_branchlablstlst // in !the_branchlablstlst := list_cons (xs, xss) end // end of [the_branchlablst_set] implement the_branchlablst_unset ( ) = let // val xss = !the_branchlablstlst // in // case- xss of | list_cons (_, xss) => !the_branchlablstlst := xss // end // end of [the_branchlablst_unset] end // end of [local] (* ****** ****** *) // extern fun funlab_get_index (fl: label): int extern fun tmplab_get_index (lab: label): int // (* ****** ****** *) implement funlab_get_index (fl0) = let // val n0 = fl0.i0dex_sym // fun auxlst ( xs: instrlst, i: int ) : int = ( // case+ xs of | list_nil () => ~1(*error*) | list_cons (x, xs) => ( case+ x.instr_node of | ATSfunbodyseq _ => let val fl = funbodyseq_get_funlab (x) in if n0 = fl.i0dex_sym then i else auxlst (xs, i+1) end // end of [ATSfunbodyseq] | _ (*non-ATSfunbody*) => auxlst (xs, i) ) (* end of [list_cons] *) // ) (* end of [auxlst] *) // in auxlst (the_funbodylst_get(), 1) end // end of [funlab_get_index] (* ****** ****** *) implement tmplab_get_index (lab0) = let // val n0 = lab0.i0dex_sym // fun auxlst ( xs: labelist, i: int ) : int = ( case+ xs of | list_nil () => ~1(*error*) | list_cons (x, xs) => if n0 = x.i0dex_sym then i else auxlst (xs, i+1) // end of [list_cons] ) // in auxlst (the_branchlablst_get(), 1) end // end of [tmplab_get_index] (* ****** ****** *) // fun emit_funlab_index (out: FILEref, fl: label): void = emit_int (out, funlab_get_index (fl)) // fun emit_tmplab_index (out: FILEref, lab: label): void = emit_int (out, tmplab_get_index (lab)) // (* ****** ****** *) // extern fun emit2_instr (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_instr_ln (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_instrlst (out: FILEref, ind: int, inss: instrlst) : void // (* ****** ****** *) // extern fun emit2_branchseqlst (out: FILEref, ind: int, inss: instrlst): void // (* ****** ****** *) // extern fun emit2_ATSfunbodyseq (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_con1 (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_boxrec (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_delay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_lazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_ldelay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_llazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // // HX-2014-08: // this one should not be used for // emitting multiple-line instructions // implement emit_instr (out, ins) = emit2_instr (out, 0(*ind*), ins) // (* ****** ****** *) implement emit2_instr (out, ind, ins0) = let in // case+ ins0.instr_node of // | ATSif ( d0e, inss, inssopt ) => let val () = emit_nspc (out, ind) val () = emit_text (out, "if") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_text (out, " {\n") val () = emit2_instrlst (out, ind+2, inss) in case+ inssopt of | None _ => { val () = emit_nspc (out, ind) val () = emit_text (out, "} // end-of-if") } (* end of [None] *) | Some (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "} else {\n") val () = emit2_instrlst (out, ind+2, inss) val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} // end-of-if") } (* end of [Some] *) end // end of [ATSif] // | ATSifthen(d0e, inss) => { // (* val-list_sing(ins) = inss *) // val () = emit_nspc (out, ind) val () = emit_text (out, "if(") val () = emit_d0exp (out, d0e) val ((*closing*)) = emit_text (out, ") {\n") val () = emit2_instrlst (out, ind+2, inss) val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} // ifthen") } // | ATSifnthen(d0e, inss) => { // (* val-list_sing(ins) = inss *) // val () = emit_nspc (out, ind) val () = emit_text (out, "if(!") val () = emit_d0exp (out, d0e) val ((*closing*)) = emit_text (out, ") {\n") val () = emit2_instrlst (out, ind+2, inss) val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} // ifnthen") } // | ATSbranchseq (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ATSbranchseq(...)") } // | ATScaseofseq (inss) => { // val tls = caseofseq_get_tmplablst (ins0) // end of [val] val () = the_branchlablst_set (tls) // val () = emit_nspc (out, ind) val () = emit_text (out, "// ATScaseofseq_beg") val () = emit_ENDL (out) val () = emit_nspc (out, ind) val () = emit_text (out, "tmplab_js = 1;") val () = emit_ENDL (out) val () = emit_nspc (out, ind) val () = emit_text (out, "while(true) {") val () = emit_ENDL (out) val () = emit_nspc (out, ind+2) val () = emit_text (out, "tmplab = tmplab_js; tmplab_js = 0;") val () = emit_ENDL (out) val () = emit_nspc (out, ind+2) val () = emit_text (out, "switch(tmplab) {\n") // val () = emit2_branchseqlst (out, ind+4, inss) // val () = emit_nspc (out, ind+2) val () = emit_text (out, "} // end-of-switch\n") // val () = emit_nspc (out, ind+2) val () = emit_text (out, "if (tmplab_js === 0) break;\n") // end of [val] // val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} // endwhile\n") // val () = emit_nspc (out, ind) val () = emit_text (out, "// ATScaseofseq_end") // val () = the_branchlablst_unset ((*void*)) // } (* end of [ATScaseofseq] *) // | ATSreturn (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, "return ") val () = emit_tmpvar (out, tmp) val () = emit_SEMICOLON (out) } | ATSreturn_void (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, "return/*_void*/") val () = emit_SEMICOLON (out) } // | ATSINSlab (lab) => { val () = emit_nspc (out, ind) val () = emit_text (out, "case ") val () = ( emit_tmplab_index (out, lab); emit_COLON (out) ) (* end of [val] *) val () = ( emit_text (out, " // "); emit_label (out, lab) ) (* end of [val] *) } (* end of [ATSINSlab] *) // | ATSINSgoto (lab) => { val () = emit_nspc (out, ind) val () = emit_text (out, "{ tmplab_js = ") // end of [val] val () = emit_tmplab_index (out, lab) val ((*closing*)) = emit_text (out, "; break; }") } (* end of [ATSINSgoto] *) // | ATSINSflab (flab) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ") val () = emit_label (out, flab) } (* end of [ATSINSflab] *) // | ATSINSfgoto (flab) => { val () = emit_nspc (out, ind) val () = emit_text (out, "funlab_js = ") val () = emit_funlab_index (out, flab) val () = ( emit_text (out, "; // "); emit_label (out, flab) ) (* end of [val] *) } (* end of [ATSINSfgoto] *) // | ATSINSfreeclo (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ") val () = emit_text (out, "ATSINSfreeclo") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSfreecon (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ") val () = emit_text (out, "ATSINSfreecon") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } // | ATSINSmove (tmp, d0e) => { val () = emit_nspc (out, ind) val () = ( emit_tmpvar (out, tmp); emit_text (out, " = "); emit_d0exp (out, d0e) ) (* end of [val] *) val () = emit_SEMICOLON (out) } (* end of [ATSINSmove] *) // | ATSINSmove_void (tmp, d0e(*command*)) => let val () = emit_nspc (out, ind) in case+ d0e.d0exp_node of | ATSPMVempty _ => emit_text (out, "// ATSINSmove_void") // end of [ATSempty] | _ (*non-ATSPMVempty*) => (emit_d0exp (out, d0e); emit_SEMICOLON (out)) // end of [non-ATSPMVempty] end (* end of [ATSINSmove_void] *) // | ATSINSmove_nil (tmp) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_text (out, "null") val () = emit_SEMICOLON (out) } | ATSINSmove_con0 (tmp, tag) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = ( emit_text (out, " = "); emit_PMVint (out, tag) ) (* end of [val] *) val () = emit_SEMICOLON (out) } // | ATSINSmove_con1 _ => emit2_ATSINSmove_con1 (out, ind, ins0) // | ATSINSmove_boxrec _ => emit2_ATSINSmove_boxrec (out, ind, ins0) // | ATSINSmove_delay _ => emit2_ATSINSmove_delay (out, ind, ins0) | ATSINSmove_lazyeval _ => emit2_ATSINSmove_lazyeval (out, ind, ins0) // | ATSINSmove_ldelay _ => emit2_ATSINSmove_ldelay (out, ind, ins0) | ATSINSmove_llazyeval _ => emit2_ATSINSmove_llazyeval (out, ind, ins0) // | ATStailcalseq (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ATStailcalseq_beg") val () = emit_ENDL (out) val () = emit2_instrlst (out, ind, inss) val () = emit_nspc (out, ind) val () = emit_text (out, "// ATStailcalseq_end") } (* end of [ATStailcalseq] *) // | ATSINSmove_tlcal (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e) val () = emit_SEMICOLON (out) } (* end of [ATSINSmove_tlcal] *) // | ATSINSargmove_tlcal (tmp1, tmp2) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp1) val () = emit_text (out, " = ") val () = emit_tmpvar (out, tmp2) val () = emit_SEMICOLON (out) } (* end of [ATSINSargmove_tlcal] *) // | ATSINSextvar_assign (ext, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_d0exp (out, ext) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } | ATSINSdyncst_valbind (d2c, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_i0de (out, d2c) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } // | ATSINScaseof_fail (errmsg) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINScaseof_fail") val () = emit_LPAREN (out) val () = emit_PMVstring (out, errmsg) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSdeadcode_fail (__tok__) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINSdeadcode_fail()") val () = emit_SEMICOLON (out) } // | ATSdynload (dummy) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ATSdynload()") } // | ATSdynloadset (flag) => { val () = emit_nspc (out, ind) val () = ( emit_tmpvar (out, flag); emit_text (out, " = 1 ; // flag is set") ) (* end of [val] *) } // | ATSdynloadfcall (fcall) => { val () = emit_nspc (out, ind) val () = ( emit_tmpvar (out, fcall); emit_text (out, "(/*void*/) ; // dynloading") ) (* end of [val] *) } // | ATSdynloadflag_sta (flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, "// ATSdynloadflag_sta(", flag, ")") } | ATSdynloadflag_ext (flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, "// ATSdynloadflag_ext(", flag, ")") } // | _ (*rest-of-instr*) => { val () = emit_nspc (out, ind) val ((*error*)) = fprint! (out, "UNRECOGNIZED-INSTRUCTION: ", ins0) } // end // end of [emit2_instr] (* ****** ****** *) implement emit2_instr_ln (out, ind, ins) = ( emit2_instr (out, ind, ins); emit_ENDL (out) ) (* end of [emit2_instr_ln] *) (* ****** ****** *) implement emit2_instrlst ( out, ind, inss ) = ( // case+ inss of | list_nil () => () | list_cons (ins, inss) => { val () = emit2_instr_ln (out, ind, ins) val () = emit2_instrlst (out, ind, inss) } // ) (* end of [emit2_instrlst] *) (* ****** ****** *) implement emit2_branchseqlst (out, ind, inss) = let // fun auxseq ( out: FILEref , ind: int, ins0: instr ) : void = let in // case- ins0.instr_node of // | ATSbranchseq (inss) => emit2_instrlst (out, ind, inss) // end of [ATSbranchseq] // end (* end of [auxseq] *) // fun auxseqlst ( out: FILEref , ind: int, inss: instrlst ) : void = let in // case+ inss of | list_nil () => () | list_cons (ins, inss) => let // val () = emit_nspc (out, ind) val () = emit_text (out, "// ATSbranchseq_beg\n") // val () = auxseq (out, ind, ins) // val () = emit_nspc (out, ind) val () = emit_text (out, "break;\n") // val () = emit_nspc (out, ind) val () = emit_text (out, "// ATSbranchseq_end\n") // in auxseqlst (out, ind, inss) end (* end of [list_cons] *) // end (* end of [auxseqlst] *) // in auxseqlst (out, ind, inss) end // end of [emit2_branchseqlst] (* ****** ****** *) implement emit2_ATSfunbodyseq (out, ind, ins) = let // val-ATSfunbodyseq (inss) = ins.instr_node // in emit2_instrlst (out, ind, inss) end // end of [emit2_ATS2funbodyseq] (* ****** ****** *) implement emit2_ATSINSmove_con1 (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_con1_ofs (_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_con1(inss) = ins0.instr_node // val-list_cons (ins, inss) = inss val-ATSINSmove_con1_new (tmp, _) = ins.instr_node // var opt: tokenopt = None() // val inss = ( case+ inss of | list_nil () => inss | list_cons (ins, inss2) => ( case+ ins.instr_node of // case+ | ATSINSstore_con1_tag (tmp, tag) => let val () = opt := Some(tag) in inss2 end // end of [ATSINSstore_con1_tag] | _ (*non-ATSINSstore_con1_tag*) => inss ) ) : instrlst // val d0es = getarglst (inss) val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_LBRACKET (out) val () = ( case+ opt of | None () => () | Some (tag) => emit_PMVint (out, tag) ) : void // end of [val] val () = ( case+ opt of | None _ => emit_d0explst (out, d0es) | Some _ => emit_d0explst_1 (out, d0es) ) : void // end of [val] // val () = emit_RBRACKET (out) // val () = emit_SEMICOLON (out) // in // nothing end // end of [emit2_ATSINSmove_con1] (* ****** ****** *) implement emit2_ATSINSmove_boxrec (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_boxrec_ofs(_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_boxrec(inss) = ins0.instr_node // val-list_cons (ins, inss) = inss val-ATSINSmove_boxrec_new (tmp, _) = ins.instr_node // val d0es = getarglst (inss) // val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_LBRACKET (out) val () = emit_d0explst (out, d0es) val () = emit_RBRACKET (out) // val () = emit_SEMICOLON (out) // in // nothing end // end of [emit2_ATSINSmove_boxrec] (* ****** ****** *) implement emit2_ATSINSmove_delay (out, ind, ins0) = let // val- ATSINSmove_delay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = emit_tmpvar(out, tmp) // val () = emit_text (out, " = ") // val () = ( emit_text(out, "ATSPMVlazyval"); emit_text(out, "("); emit_d0exp (out, thunk); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_delay] (* ****** ****** *) implement emit2_ATSINSmove_lazyeval (out, ind, ins0) = let // val- ATSINSmove_lazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc (out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVlazyval_eval("); emit_d0exp(out, lazyval); emit_text(out, "); ") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_lazyeval] (* ****** ****** *) implement emit2_ATSINSmove_ldelay (out, ind, ins0) = let // val- ATSINSmove_ldelay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = emit_tmpvar(out, tmp) // val () = emit_text(out, " = ") // val () = ( emit_text(out, "ATSPMVllazyval("); emit_d0exp(out, thunk); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_ldelay] (* ****** ****** *) implement emit2_ATSINSmove_llazyeval (out, ind, ins0) = let // val- ATSINSmove_llazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = emit_tmpvar(out, tmp) // val () = emit_text(out, " = ") // val () = emit_text(out, "ATSPMVllazyval_eval") val () = ( emit_text(out, "("); emit_d0exp(out, lazyval); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_llazyeval] (* ****** ****** *) #define ATSEXTCODE_BEG "/* ATSextcode_beg() */" #define ATSEXTCODE_END "/* ATSextcode_end() */" (* ****** ****** *) implement emit_d0ecl (out, d0c) = let in // case+ d0c.d0ecl_node of // | D0Cinclude _ => () // | D0Cifdef _ => () | D0Cifndef _ => () // | D0Ctypedef (id, def) => typedef_insert (id.i0dex_sym, def) // end of [D0Ctypedef] // | D0Cassume (id) => { val () = emit_ENDL (out) val () = emit_text (out, "// ATSassume(") val () = ( emit_i0de (out, id); emit_text (out, ")\n") ) (* end of [val] *) } // | D0Cdyncst_mac _ => () // | D0Cdyncst_extfun _ => () // | D0Cdyncst_valdec _ => () // | D0Cdyncst_valimp (id, s0e) => { val () = emit_ENDL (out) val () = ( emit_text (out, "var "); emit_i0de (out, id) ) (* end of [val] *) val () = emit_text (out, "\n") } // | D0Cextcode(toks) => { val () = emit_ENDL (out) val () = emit_text (out, ATSEXTCODE_BEG) // end of [val] val () = emit_extcode (out, toks) // HX: verbatim output val () = emit_text (out, ATSEXTCODE_END) // end of [val] val ((*void*)) = emit_newline (out) } (* end of [D0Cextcode] *) // | D0Cstatmp(tmp, opt) => { val () = emit_ENDL (out) val () = ( case+ opt of | Some _ => () | None () => emit_text(out, "/*\n") ) (* end of [val] *) val () = ( emit_text (out, "var "); emit_tmpvar (out, tmp); emit_ENDL (out) ) (* end of [val] *) val () = ( case+ opt of | Some _ => () | None () => emit_text(out, "*/\n") ) (* end of [val] *) } (* end of [D0Cstatmp] *) // | D0Cfundecl (fk, f0d) => emit_f0decl (out, f0d) // | D0Cclosurerize (fl, env, arg, res) => { val () = emit_closurerize (out, fl, env, arg, res) } // | D0Cdynloadflag_init (flag) => ( // // HX-2015-05-22: // it is skipped as JS does not have a link-time! // ) (* end of [D0Cdynloadflag_init] *) // | D0Cdynloadflag_minit (flag) => ( emit_text (out, "// dynloadflag_minit\n"); emit_text (out, "var "); emit_tmpvar (out, flag); emit_text (out, " = 0;\n") ) (* end of [D0Cdynloadflag_minit] *) // | D0Cdynexn_dec(idexn) => ( emit_text(out, "// dynexn_dec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_dec] *) | D0Cdynexn_extdec(idexn) => ( emit_text(out, "// dynexn_extdec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_extdec] *) | D0Cdynexn_initize(idexn, fullname) => ( emit_text(out, "// dynexn_initize("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_initize] *) // end // end of [emit_d0ecl] (* ****** ****** *) // extern fun emit_f0arg : emit_type (f0arg) extern fun emit_f0marg : emit_type (f0marg) extern fun emit_f0head : emit_type (f0head) // extern fun emit_f0body : emit_type (f0body) extern fun emit_f0body_0 : emit_type (f0body) extern fun emit_f0body_tlcal : emit_type (f0body) extern fun emit_f0body_tlcal2 : emit_type (f0body) // (* ****** ****** *) implement emit_f0arg (out, f0a) = let in // case+ f0a.f0arg_node of // | F0ARGnone _ => emit_text (out, "__NONE__") | F0ARGsome (arg, s0e) => emit_tmpvar (out, arg) // end // end of [emit_f0arg] (* ****** ****** *) implement emit_f0marg (out, f0ma) = let // fun loop ( out: FILEref, f0as: f0arglst, i: int ) : void = ( case+ f0as of | list_nil () => () | list_cons (f0a, f0as) => let val () = if i > 0 then emit_text (out, ", ") // end of [val] in emit_f0arg (out, f0a); loop (out, f0as, i+1) end // end of [list_cons] ) // in loop (out, f0ma.f0marg_node, 0) end // end of [emit_f0marg] (* ****** ****** *) implement emit_f0head (out, fhd) = let in // case+ fhd.f0head_node of | F0HEAD (fid, f0ma, res) => { // val () = emit_i0de(out, fid) // end of [val] // val () = emit_LPAREN (out) val () = emit_f0marg (out, f0ma) val () = emit_RPAREN (out) // } // end // end of [emit_f0head] (* ****** ****** *) implement emit_f0body (out, fbody) = let // val knd = f0body_classify (fbody) (* val () = println! ("emit_f0body: knd = ", knd) *) // val tmpdecs = f0body_get_tmpdeclst (fbody) val inss_body = f0body_get_bdinstrlst (fbody) // val () = the_tmpdeclst_set (tmpdecs) val () = the_funbodylst_set (inss_body) // val () = emit_text (out, "{\n") // val () = emit_text (out, "//\n") val () = emit_text (out, "// knd = ") val () = (emit_int (out, knd); emit_ENDL (out)) // val () = emit_tmpdeclst_initize (out, tmpdecs) // val () = if knd > 0 then { // val () = emit_nspc (out, 2) val () = emit_text (out, "var funlab_js\n") // } (* end of [if] *) // end of [val] // val () = emit_nspc (out, 2) val () = emit_text (out, "var tmplab, tmplab_js\n") // val () = emit_text (out, "//\n") // val () = ( // case+ knd of | 0 => emit_f0body_0 (out, fbody) | 1 => emit_f0body_tlcal (out, fbody) | 2 => emit_f0body_tlcal2 (out, fbody) | _ => let val () = assertloc(false) in (*nothing*) end // ) : void // end of [val] // val () = emit_text (out, "} // end-of-function\n") // in // nothing end (* end of [emit_f0body] *) (* ****** ****** *) implement emit_f0body_0 (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => let val-list_cons (ins1, inss2) = inss1 // val () = if i > 0 then emit_ENDL (out) val () = emit2_ATSfunbodyseq (out, 2(*ind*), ins0) val ((*return*)) = emit2_instr_ln (out, 2(*ind*), ins1) // in auxlst (out, inss2, i+1) end // end of [list_cons] // ) (* end of [auxlst] *) // in // case+ fbody.f0body_node of // | F0BODY (tds, inss) => { val () = auxlst (out, inss, 0(*i*)) } // end // end of [emit_f0body_0] (* ****** ****** *) implement emit_f0body_tlcal (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => let val-list_cons (ins1, inss2) = inss1 // val () = emit2_ATSfunbodyseq (out, 4(*ind*), ins0) // val () = emit_nspc (out, 4(*ind*)) val () = emit_text ( out, "if (funlab_js > 0) continue; else" ) (* end of [val] *) val () = emit2_instr_ln (out, 1(*ind*), ins1) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "} // endwhile-fun\n") // in auxlst (out, inss2(*nil*)) end // end of [list_cons] // ) (* end of [auxlst] *) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "while(true) {\n") val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "funlab_js = 0;\n") // val () = ( case+ fbody.f0body_node of // | F0BODY (tds, inss) => auxlst (out, inss) // ) (* end of [val] *) // in // nothing end // end of [emit_f0body_tlcal] (* ****** ****** *) // extern fun emit_the_funbodylst (out: FILEref): void // implement emit_the_funbodylst (out) = let // fun auxfun ( out: FILEref , ins0: instr, ins1: instr, i: int ) : void = let // val-ATSfunbodyseq(inss) = ins0.instr_node // val-list_cons (ins_fl, inss) = inss val-ATSINSflab (fl) = ins_fl.instr_node // val () = emit_nspc (out, 6) val () = ( emit_text (out, "case "); emit_int (out, i); emit_text (out, ": {") ) val () = emit_ENDL (out) val () = emit_nspc (out, 8) val () = emit_text (out, "funlab_js = 0;\n") val () = emit2_instrlst (out, 8(*ind*), inss) // val () = emit_nspc (out, 8) val () = emit_text ( out, "if (funlab_js > 0) continue; else" ) (* end of [val] *) val () = emit2_instr_ln (out, 1(*ind*), ins1) // val () = emit_nspc (out, 6) val () = emit_text (out, "} // end-of-case\n") // in // nothing end // end of [auxfun] // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( case+ inss of | list_nil () => () | list_cons _ => let val-list_cons (ins0, inss) = inss val-list_cons (ins1, inss) = inss val () = auxfun (out, ins0, ins1, i) in auxlst (out, inss, i+1) end // end of [auxlst] ) (* end of [auxlst] *) // in auxlst (out, the_funbodylst_get(), 1(*first*)) end // end of [emit_the_funbodylst] // (* ****** ****** *) implement emit_f0body_tlcal2 (out, fbody) = let // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "funlab_js = 1;") // val () = emit_ENDL (out) val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "while(true) {") // val () = emit_ENDL (out) val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "switch(funlab_js) {\n") // val () = emit_the_funbodylst (out) // val () = emit_nspc (out, 4(*ind*)) val ((*closing*)) = emit_text (out, "} // end-of-switch\n") // val () = emit_nspc (out, 2(*ind*)) val ((*closing*)) = emit_text (out, "} // endwhile-fun\n") // in // nothing end // end of [emit_f0body_tlcal2] (* ****** ****** *) implement emit_f0decl (out, fdec) = let in // case+ fdec.f0decl_node of | F0DECLnone (fhd) => () | F0DECLsome (fhd, fbody) => { val () = emit_ENDL (out) val () = emit_text (out, "function") val () = emit_ENDL (out) val () = emit_f0head (out, fhd) val () = emit_ENDL (out) val () = emit_f0body (out, fbody) val () = emit_newline (out) } (* end of [F0DECLsome] *) // end // end of [emit_f0decl] (* ****** ****** *) implement emit_toplevel (out, d0cs) = let // fun loop ( out: FILEref, d0cs: d0eclist ) : void = ( // case+ d0cs of | list_nil () => () | list_cons (d0c, d0cs) => let val () = emit_d0ecl (out, d0c) // end of [val] in loop (out, d0cs) end // end of [list_cons] // ) // in loop (out, d0cs) end // end of [emit_toplevel] (* ****** ****** *) (* end of [atscc2js_emit2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/DATS/libatscc2js_ext.dats0000644000175000017500000001631413431250607025266 0ustar brandonbrandon(* // // For [libatscc2js] // *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload FCNTL = "libats/libc/SATS/fcntl.sats" staload STDIO = "libats/libc/SATS/stdio.sats" staload STDLIB = "libats/libc/SATS/stdlib.sats" staload STRING = "libats/libc/SATS/string.sats" staload UNISTD = "libats/libc/SATS/unistd.sats" (* ****** ****** *) // extern fun atscc2js_main0_exn {n:pos} ( argc: int(n), argv: &(@[string][n]) ) : void = "ext#libatscc2js_atscc2js_main0" // extern fun atscc2js_main0_opt {n:pos} ( argc: int(n), argv: &(@[string][n]) ) : bool = "ext#libatscc2js_atscc2js_main0_opt" // (* ****** ****** *) // datatype comarg = // | COMARGstrlit of string // | COMARGstrinp of string // | COMARGprefil of string | COMARGpostfil of string // typedef comarglst0 = List0(comarg) typedef comarglst1 = List1(comarg) // (* ****** ****** *) // extern fun comarg_strlit (x: string): comarg = "ext#libatscc2js_comarg_strlit" extern fun comarg_strinp (x: string): comarg = "ext#libatscc2js_comarg_strinp" // extern fun comarg_prefil (x: string): comarg = "ext#libatscc2js_comarg_prefil" and comarg_postfil (x: string): comarg = "ext#libatscc2js_comarg_postfil" // (* ****** ****** *) // extern fun comarglst_nil ( // argumentless ) : comarglst0 = "ext#libatscc2js_comarglst_nil" and comarglst_cons ( x: comarg, xs: comarglst0 ) : comarglst1 = "ext#libatscc2js_comarglst_cons" // (* ****** ****** *) // extern fun libatscc2js_dynload ((*initialize*)): void = "ext#libatscc2js_dynload" // (* ****** ****** *) datatype atscc2jsres = ATSCC2JSRES of ( int(*nerr*) , string(*stdout*), string(*stderr*) ) (* ****** ****** *) // extern fun atscc2js_main0_arglst {n:pos} ( args: list(comarg, n) ) : int(*nerr*) = "ext#libatscc2js_atscc2js_main0_arglst" // (* ****** ****** *) // implement comarg_strlit(x) = COMARGstrlit(x) implement comarg_strinp(x) = COMARGstrinp(x) // implement comarg_prefil(x) = COMARGprefil(x) implement comarg_postfil(x) = COMARGpostfil(x) // (* ****** ****** *) // implement comarglst_nil() = list_nil((*void*)) implement comarglst_cons(x, xs) = list_cons(x, xs) // (* ****** ****** *) local fun auxexn ( exn: exn ) : bool = let // val exn = $UN.castvwtp0{ptr}(exn) // in false end // end of [auxexn] in (*in-of-local*) implement atscc2js_main0_opt (argc, argv) = let // extern fun atscc2js_main0: (int, ptr) -> void = "ext#libatscc2js_atscc2js_main0" // in // try let // val () = atscc2js_main0(argc, addr@argv) // in true end with exn => auxexn(exn) // end (* end of [atscc2js_main0_opt] *) end // end of [local] // (* ****** ****** *) // typedef stringlst = List0(string) // extern fun string2file ( content: string , prefils: stringlst , postfils: stringlst , number_of_errors: &int >> int ) : string // end-of-string2file // (* ****** ****** *) local // fun aux_prefils ( out: FILEref, xs: List(string), nerr: &int >> int ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => { val () = aux_prefils (out, xs, nerr) // end of [val] val ec = $STDIO.fputs0(x, out) val () = if ec < 0 then nerr := nerr + 1 } (* end of [list_cons] *) ) // fun aux_postfils ( out: FILEref, xs: List(string), nerr: &int >> int ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => { val () = aux_postfils (out, xs, nerr) // end of [val] val ec = $STDIO.fputs0(x, out) val () = if ec < 0 then nerr := nerr + 1 } (* end of [list_cons] *) ) // in (* in-of-local *) implement string2file ( content , prefils, postfils, nerr ) = let // val prfx = "libatscc2js_string2file_" // val tmp0 = string1_append(prfx, "XXXXXX") // val fildes = g1ofg0($STDLIB.mkstemp(tmp0)) // // in // if fildes >= 0 then let // val out = fdopen ( fildes, file_mode_w ) where { extern fun fdopen{fd:nat} ( fd: int fd, mode: file_mode ) : FILEref = "mac#fdopen" } (* end of [out] *) // val () = aux_prefils (out, prefils, nerr) // end of [val] // val ec = $STDIO.fputs0(content, out) val () = if ec < 0 then nerr := nerr + 1 // val () = aux_postfils (out, postfils, nerr) // end of [val] // val ec = $STDIO.fflush0(out) val () = if ec != 0 then nerr := nerr + 1 // val ec = $STDIO.fclose0(out) val () = if ec != 0 then nerr := nerr + 1 // in strnptr2string(tmp0) end // end of [then] else let val () = nerr := nerr + 1 in strnptr2string(tmp0) end // end of [else] // end // end of [string2file] end // end of [local] (* ****** ****** *) // implement atscc2js_main0_arglst (args) = let // vtypedef res = List0_vt(string) // fun auxarglst {n:nat} {l:addr} ( xs: List(comarg) , n0: int(n) , p0: ptr(l) , prefils: stringlst , postfils: stringlst , res: &res >> res, nerr: &int >> int ) : intGte(0) = ( // case+ xs of | list_nil() => n0 | list_cons(x, xs) => ( case+ x of | COMARGstrlit(x) => let val n1 = n0+1 val p1 = ptr_succ(p0) val () = $UN.ptr0_set(p0, x) in auxarglst(xs, n1, p1, prefils, postfils, res, nerr) end // end of [COMARGstrlit] | COMARGstrinp(x) => let val n1 = n0+1 val p1 = ptr_succ(p0) val f0 = string2file (x, prefils, postfils, nerr) // end of [val] val () = res := list_vt_cons(f0, res) // end of [val] val () = $UN.ptr0_set(p0, f0) in auxarglst(xs, n1, p1, prefils, postfils, res, nerr) end // end of [COMARGstrinp] | COMARGprefil(x) => let val n1 = n0 val p1 = p0 val prefils = list_cons(x, prefils) in auxarglst(xs, n1, p1, prefils, postfils, res, nerr) end // end of [COMARGprefil] | COMARGpostfil(x) => let val n1 = n0 val p1 = p0 val postfils = list_cons(x, postfils) in auxarglst(xs, n1, p1, prefils, postfils, res, nerr) end // end of [COMARGpostfil] ) (* end of [list_cons] *) // ) (* end of [auxarglst] *) // fun unlinklst ( xs: res ) : void = let // macdef unlink = $UNISTD.unlink // in // case+ xs of | ~list_vt_nil ((*void*)) => () | ~list_vt_cons (x, xs) => let val ec = unlink(x) in unlinklst(xs) end (* end of [list_cons] *) // end // end of [unlinklst] // val argc = list_length(args) val asz0 = g1int2uint_int_size(argc+1) // val (pfgc,pfarr|p0) = array_ptr_alloc (asz0) // val prefils = list_nil() val postfils = list_nil() // var res: res = list_vt_nil // var nerr: int = 0 (*errless*) // val p1 = ptr1_succ(p0) val () = $UN.ptr0_set(p0, "atscc2js") // val [n:int] argc = auxarglst ( args, 0, p1, prefils, postfils, res, nerr ) (* end of [val] *) // val ((*void*)) = ( // if nerr = 0 then let // val (pfarr,fpf|argv) = $UN.ptr1_vtake{@[string][n+1]}(p0) // val ans = atscc2js_main0_opt(argc+1, !argv) // prval ((*returned*)) = fpf (pfarr) // in // if not(ans) then nerr := nerr+1 // end // end of [then] else ((*void*)) // end of [else] // ) (* end of [if] *) // val () = unlinklst(res) val () = array_ptr_free(pfgc,pfarr|p0) // in nerr (*number-of-errors*) end // end of [atscc2js_main0_arglst] // (* ****** ****** *) (* end of [libatscc2js_ext.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/DATS/atscc2js_emit.dats0000644000175000017500000003317513431250607024741 0ustar brandonbrandon(* ****** ****** *) // // Atscc2js: // from ATS to JavaScript // (* ****** ****** *) // // HX-2014-08-20: start // HX-2015-05-21: restructure // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) local // staload TM = "libats/libc/SATS/time.sats" // typedef time_t = $TM.time_t // in (* in-of-local *) implement emit_time_stamp(out) = let // var tm: time_t val () = tm := $TM.time_get() val (pfopt | p_tm) = $TM.localtime(tm) // val () = emit_text (out, "/*\n"); val () = emit_text (out, "**\n"); val () = emit_text (out, "** The JavaScript code is generated by atscc2js\n") val () = emit_text (out, "** The starting compilation time is: ") // val () = if p_tm > 0 then let prval Some_v @(pf1, fpf1) = pfopt val tm_min = $TM.tm_get_min (!p_tm) val tm_hour = $TM.tm_get_hour (!p_tm) val tm_mday = $TM.tm_get_mday (!p_tm) val tm_mon = 1 + $TM.tm_get_mon (!p_tm) val tm_year = 1900 + $TM.tm_get_year (!p_tm) prval () = fpf1 (pf1) in $extfcall ( void , "fprintf" , out, "%i-%i-%i: %2ih:%2im\n", tm_year, tm_mon, tm_mday, tm_hour, tm_min ) end // end of [then] else let prval None_v () = pfopt in emit_text (out, "**TIME-ERROR**\n") end // end of [else] // val () = emit_text (out, "**\n") val () = emit_text (out, "*/\n") // in // emit_newline (out) end // end of [emit_time_stamp] end // end of [local] (* ****** ****** *) implement emit_PMVint (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVint] // implement emit_PMVintrep (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVintrep] // (* ****** ****** *) implement emit_PMVbool (out, tfv) = ( emit_text (out, if tfv then "true" else "false") ) (* end of [emit_PMVbool] *) (* ****** ****** *) implement emit_PMVstring (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVstring] (* ****** ****** *) implement emit_PMVfloat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVfloat] (* ****** ****** *) implement emit_PMVi0nt (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVi0nt] (* ****** ****** *) implement emit_PMVf0loat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVf0loat] (* ****** ****** *) // implement emit_PMVempty (out, _) = emit_text (out, "null") // implement emit_PMVextval (out, toks) = emit_tokenlst (out, toks) // (* ****** ****** *) // implement emit_PMVfunlab (out, flab) = emit_label (out, flab) // (* ****** ****** *) implement emit_PMVcfunlab (out, fl, d0es) = { // val () = emit_label (out, fl) val () = emit_text (out, "__closurerize") // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_PMVcfunlab] *) (* ****** ****** *) implement emit_CSTSPmyloc (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_CSTSPmyloc] (* ****** ****** *) // extern fun emit_fname_d0exp : (FILEref, string, d0exp) -> void extern fun emit_fname_d0exp2 : (FILEref, string, d0exp, d0exp) -> void // implement emit_fname_d0exp (out, fname, d0e) = { // val () = emit_text (out, fname) val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp] *) // implement emit_fname_d0exp2 (out, fname, d0e1, d0e2) = { // val () = emit_text (out, fname) // val () = emit_LPAREN (out) val () = ( emit_d0exp (out, d0e1); emit_text (out, ", "); emit_d0exp (out, d0e2) ) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp2] *) // (* ****** ****** *) // implement emit_ATSCKiseqz(out, d0e) = emit_fname_d0exp(out, "ATSCKiseqz", d0e) implement emit_ATSCKisneqz(out, d0e) = emit_fname_d0exp(out, "ATSCKisneqz", d0e) // (* ****** ****** *) // implement emit_ATSCKptriscons(out, d0e) = emit_fname_d0exp(out, "ATSCKptriscons", d0e) implement emit_ATSCKptrisnull(out, d0e) = emit_fname_d0exp(out, "ATSCKptrisnull", d0e) // (* ****** ****** *) // implement emit_ATSCKpat_int (out, d0e, i0) = emit_fname_d0exp2 (out, "ATSCKpat_int", d0e, i0) implement emit_ATSCKpat_bool (out, d0e, b0) = emit_fname_d0exp2 (out, "ATSCKpat_bool", d0e, b0) implement emit_ATSCKpat_string (out, d0e, s0) = emit_fname_d0exp2 (out, "ATSCKpat_string", d0e, s0) // (* ****** ****** *) implement emit_ATSCKpat_con0 (out, d0e, ctag) = { val () = emit_text (out, "ATSCKpat_con0(") val () = ( emit_d0exp (out, d0e); emit_text (out, ", "); emit_int (out, ctag); emit_RPAREN (out) ) (* end of [val] *) } (* end of [emit_ATSCKpat_con0] *) implement emit_ATSCKpat_con1 (out, d0e, ctag) = { val () = emit_text (out, "ATSCKpat_con1(") val () = ( emit_d0exp (out, d0e); emit_text (out, ", "); emit_int (out, ctag); emit_RPAREN (out) ) (* end of [val] *) } (* end of [emit_ATSCKpat_con1] *) (* ****** ****** *) // implement emit_tmpvar (out, tmp) = emit_i0de (out, tmp) // (* ****** ****** *) implement emit_d0exp (out, d0e0) = let in // case+ d0e0.d0exp_node of // | D0Eide (tmp) => { val () = emit_tmpvar (out, tmp) } // | D0Eappid (fid, d0es) => { val () = emit_i0de (out, fid) val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } | D0Eappexp (d0e, d0es) => { val () = emit_d0exp (out, d0e) val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } // | D0Elist (d0es) => { val () = emit_text (out, "D0Elist") val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } // | ATSPMVint (int) => emit_PMVint (out, int) | ATSPMVintrep (int) => emit_PMVintrep (out, int) // | ATSPMVbool (tfv) => emit_PMVbool (out, tfv) // | ATSPMVfloat (flt) => emit_PMVfloat (out, flt) // | ATSPMVstring (str) => emit_PMVstring (out, str) // | ATSPMVi0nt (int) => emit_PMVi0nt (out, int) | ATSPMVf0loat (flt) => emit_PMVf0loat (out, flt) // | ATSPMVempty (dummy) => emit_PMVempty (out, 0) | ATSPMVextval (toklst) => emit_PMVextval (out, toklst) // | ATSPMVrefarg0 (d0e) => emit_d0exp (out, d0e) | ATSPMVrefarg1 (d0e) => emit_d0exp (out, d0e) // | ATSPMVfunlab (fl) => emit_PMVfunlab (out, fl) | ATSPMVcfunlab (_(*knd*), fl, d0es) => emit_PMVcfunlab (out, fl, d0es) // end of [ATSPMVcfunlab] // | ATSPMVcastfn (_(*fid*), _(*s0e*), arg) => emit_d0exp (out, arg) // | ATSCSTSPmyloc (tok) => emit_CSTSPmyloc (out, tok) // | ATSCKiseqz(d0e) => emit_ATSCKiseqz (out, d0e) | ATSCKisneqz(d0e) => emit_ATSCKisneqz (out, d0e) | ATSCKptriscons(d0e) => emit_ATSCKptriscons (out, d0e) | ATSCKptrisnull(d0e) => emit_ATSCKptrisnull (out, d0e) // | ATSCKpat_int (d0e, int) => emit_ATSCKpat_int (out, d0e, int) | ATSCKpat_bool (d0e, bool) => emit_ATSCKpat_bool (out, d0e, bool) | ATSCKpat_string (d0e, string) => emit_ATSCKpat_bool (out, d0e, string) // | ATSCKpat_con0 (d0e, ctag) => emit_ATSCKpat_con0 (out, d0e, ctag) | ATSCKpat_con1 (d0e, ctag) => emit_ATSCKpat_con1 (out, d0e, ctag) // | ATSSELcon _ => emit_SELcon (out, d0e0) | ATSSELrecsin _ => emit_SELrecsin (out, d0e0) | ATSSELboxrec _ => emit_SELboxrec (out, d0e0) // // AS-2018-08-18: // For supporting native records: // | ATSSELfltrec _ => emit_SELfltrec (out, d0e0) (* | ATSSELfltrec _ => emit_text (out, "ATSSELfltrec(...)") *) // | ATSextfcall (_fun, _arg) => { val () = emit_i0de (out, _fun) val () = emit_d0exparg (out, _arg) } (* end of [ATSextfcall] *) | ATSextmcall (_obj, _mtd, _arg) => { // val () = emit_d0exp (out, _obj) val () = emit_DOT (out) val () = emit_d0exp (out, _mtd) // val () = emit_d0exparg (out, _arg) // } (* end of [ATSextmcall] *) // | ATSfunclo_fun (d0e, _(*arg*), _(*res*)) => emit_d0exp (out, d0e) | ATSfunclo_clo (d0e, _(*arg*), _(*res*)) => ( emit_d0exp (out, d0e); emit_LBRACKET (out); emit_int (out, 0); emit_RBRACKET (out) ) (* end of [ATSfunclo_clo] *) // end // end of [emit_d0exp] (* ****** ****** *) local fun loop ( out: FILEref, d0es: d0explst, i: int ) : void = ( case+ d0es of | list_nil () => () | list_cons (d0e, d0es) => let val () = if i > 0 then emit_text (out, ", ") // end of [val] in emit_d0exp (out, d0e); loop (out, d0es, i+1) end // end of [list_cons] ) in (* in-of-local *) implement emit_d0explst (out, d0es) = loop (out, d0es, 0) implement emit_d0explst_1 (out, d0es) = loop (out, d0es, 1) end // end of [local] (* ****** ****** *) implement emit_d0exparg (out, d0es) = { // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_d0exparg] *) (* ****** ****** *) // extern fun tyrec_labsel (tyrec: tyrec, lab: symbol): int // implement tyrec_labsel (tyrec, lab) = let // fun loop ( xs: tyfldlst, i: int ) : int = ( case+ xs of | list_cons (x, xs) => let val TYFLD (id, s0e) = x.tyfld_node in if lab = id.i0dex_sym then i else loop (xs, i+1) end // end of [list_cons | list_nil ((*void*)) => ~1(*error*) ) // in loop (tyrec.tyrec_node, 0) end // end of [tyrec_labsel] // (* ****** ****** *) implement emit_SELcon (out, d0e) = let // val- ATSSELcon (d0rec, s0e, id) = d0e.d0exp_node // val-S0Eide (name) = s0e.s0exp_node val-~Some_vt (s0rec) = typedef_search_opt (name) // val index = tyrec_labsel (s0rec, id.i0dex_sym) // val () = emit_d0exp (out, d0rec) // val () = emit_LBRACKET (out) val () = emit_int (out, index) val () = emit_RBRACKET (out) // in // nothing end // end of [emit_SELcon] (* ****** ****** *) implement emit_SELrecsin (out, d0e) = let // val- ATSSELrecsin (d0rec, s0e, id) = d0e.d0exp_node // in emit_d0exp (out, d0rec) end // end of [emit_SELrecsin] (* ****** ****** *) implement emit_SELboxrec (out, d0e) = let // val- ATSSELboxrec (d0rec, s0e, id) = d0e.d0exp_node // val-S0Eide (name) = s0e.s0exp_node val-~Some_vt (s0rec) = typedef_search_opt (name) // val index = tyrec_labsel (s0rec, id.i0dex_sym) // val () = emit_d0exp (out, d0rec) // val () = emit_LBRACKET (out) val () = emit_int (out, index) val () = emit_RBRACKET (out) // in // nothing end // end of [emit_SELboxrec] (* ****** ****** *) implement emit_SELfltrec (out, d0e) = let // val- ATSSELfltrec (d0rec, s0e, id) = d0e.d0exp_node // val () = emit_d0exp (out, d0rec) // val () = emit_DOT (out) val () = emit_i0de (out, id) // in // nothing end // end of [emit_SELfltrec] (* ****** ****** *) // implement emit_COMMENT_line (out, tok) = let // val- T_COMMENT_line (str) = tok.token_node // in emit_text (out, str) end // end of [emit_COMMENT_line] // implement emit_COMMENT_block (out, tok) = let // val- T_COMMENT_block (str) = tok.token_node // in emit_text (out, str) end // end of [emit_COMMENT_block] // (* ****** ****** *) local fun aux0_arglst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "arg"); emit_int (out, i) ) (* end of [val] *) in aux0_arglst (out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_arglst] *) fun aux0_envlst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil ((*void*)) => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text(out, ", ") // end of [if] val () = ( emit_text(out, "env"); emit_int(out, i) ) (* end of [val] *) in aux0_envlst(out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_envlst] *) fun aux1_envlst ( out: FILEref , s0es: s0explst, i: int ) : int = ( case+ s0es of | list_nil ((*void*)) => (i) | list_cons (s0e, s0es) => let val () = if i > 0 then emit_text (out, ", ") // end of [if] val () = ( emit_text(out, "cenv"); emit_LBRACKET(out); emit_int(out, i+1); emit_RBRACKET(out) ) (* end of [val] *) in aux1_envlst (out, s0es, i+1) end // end of [list_cons] ) (* end of [aux1_envlst] *) in (* in-of-local *) implement emit_closurerize ( out, fl, env, arg, res ) = let // val-S0Elist(s0es_env) = env.s0exp_node val-S0Elist(s0es_arg) = arg.s0exp_node // val () = emit_ENDL (out) // val () = emit_text (out, "function\n") val () = emit_label (out, fl) val () = emit_text (out, "__closurerize(") val () = aux0_envlst (out, s0es_env, 0, 0) val ((*closing*)) = emit_text (out, ")\n") // val ((*opening*)) = emit_text (out, "{\n") // val () = emit_nspc (out, 2) val () = emit_text (out, "return [") val () = emit_text (out, "function(") // val () = emit_text (out, "cenv") val () = aux0_arglst (out, s0es_arg, 1, 0) // val () = emit_text (out, ") { return ") // val () = emit_label (out, fl) val () = emit_LPAREN (out) val n0 = aux1_envlst (out, s0es_env, 0) val () = aux0_arglst (out, s0es_arg, n0, 0) val () = emit_RPAREN (out) // val ((*closing*)) = emit_text (out, "; }") // val () = aux0_envlst (out, s0es_env, 1, 0) val ((*closing*)) = emit_text (out, "];\n}\n") // val ((*flushing*)) = emit_newline (out) // in // nothing end // end of [emit_closurerize] end // end of [local] (* ****** ****** *) (* end of [atscc2js_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/DATS/.keeper0000644000175000017500000000000013431250607022563 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/DATS/atscc2js_main.dats0000644000175000017500000002660513431250607024727 0ustar brandonbrandon(* ****** ****** *) // // Atscc2js: // from ATS to JavaScript // (* ****** ****** *) // // HX-2014-08-20: start // HX-2015-05-21: restructure // (* ****** ****** *) // #define ATS_DYNLOADNAME "libatscc2js_dynload" // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload STDIO = "{$PATSLIBATSLIBC}/SATS/stdio.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_parsing.sats" // (* ****** ****** *) // val () = catsparse_all_dynload() where { extern fun catsparse_all_dynload(): void = "ext#" } (* end of [val] *) // (* ****** ****** *) #dynload "./atscc2js_emit.dats" #dynload "./atscc2js_emit2.dats" (* ****** ****** *) // datatype comarg = COMARG of (int, string) // typedef comarglst = List0 (comarg) // (* ****** ****** *) datatype waitkind = | WTKnone of () | WTKinput of () | WTKoutput of () // -o / --output // end of [waitkind] (* ****** ****** *) // datatype OUTCHAN = | OUTCHANref of (FILEref) | OUTCHANptr of (FILEref) // end of [OUTCHAN] // (* ****** ****** *) fun outchan_get_fileref (x: OUTCHAN): FILEref = ( // case+ x of | OUTCHANref(filr) => filr | OUTCHANptr(filr) => filr // ) (* end of [outchan_get_fileref] *) (* ****** ****** *) typedef cmdstate = @{ comarg0= comarg , ncomarg= int // number of arguments , waitkind= waitkind // number of processed input files; , ninputfile= int // waiting for STDIN if it is 0 , outchan= OUTCHAN // current output channel , nerror= int // number of accumulated errors } (* end of [cmdstate] *) (* ****** ****** *) fun cmdstate_set_outchan ( state: &cmdstate >> _, chan_new: OUTCHAN ) : void = let // val chan_old = state.outchan val ((*void*)) = state.outchan := chan_new // in // case+ chan_old of | OUTCHANref(filr) => () | OUTCHANptr(filp) => let val err = $STDIO.fclose0(filp) in (*nothing*) end // end of [OUTCHANptr] // end // end of [cmdstate_set_outchan] (* ****** ****** *) // extern fun atscc2js_fileref (state: &cmdstate >> _, filr: FILEref): void // implement atscc2js_fileref (state, inp) = let // val oc = state.outchan val out = outchan_get_fileref(oc) // val d0cs = parse_from_fileref(inp) // val () = emit_time_stamp(out) // val ((*void*)) = emit_toplevel(out, d0cs) // val () = emit_text (out, "\n/* ****** ****** */\n") val () = emit_text (out, "\n/* end-of-compilation-unit */") // val ((*flusing*)) = emit_newline(out) // in // nothing end // end of [atscc2js_fileref] (* ****** ****** *) // macdef fopen = $STDIO.fopen // extern fun atscc2js_basename ( state: &cmdstate >> _, fname: string ) : void // end-of-fun extern fun atscc2js_basename_ ( state: &cmdstate >> _, fname: string ) : void // end-of-fun // implement atscc2js_basename (state, fname) = ( case+ fname of | "-" => let val inp = stdin_ref in atscc2js_fileref(state, inp) end // end of [stdin] | _(*fname*) => atscc2js_basename_(state, fname) // end of [non-stdin] ) // implement atscc2js_basename_ (state, fname) = let // val inp = fopen(fname, file_mode_r) val p_inp = $STDIO.ptrcast(inp) // in // if p_inp > 0 then fileref_close(inp) where { // val inp = $UNSAFE.castvwtp0{FILEref}(inp) val () = the_filename_push(filename_make(fname)) // val () = atscc2js_fileref(state, inp) // } (* end of [then] *) else let // prval ( // freed ) = $STDIO.FILEptr_free_null(inp) val ((*void*)) = (state.nerror := state.nerror + 1) // in // nothing end // end of [else] // end // end of [atscc2js_basename_] (* ****** ****** *) fun cmdstate_set_outchan_basename ( state: &cmdstate >> _, basename: string ) : void = let // val filp = $STDIO.fopen (basename, file_mode_w) val p_out = $STDIO.ptrcast(filp) // (* val () = println! ("cmdstate_set_outchan_basename: p0 = ", p0) *) // in // if p_out > 0 then let val filp = $UNSAFE.castvwtp0{FILEref}(filp) in cmdstate_set_outchan(state, OUTCHANptr(filp)) end // end of [then] else let prval ( // freed ) = $STDIO.FILEptr_free_null(filp) val ((*void*)) = state.nerror := state.nerror + 1 in cmdstate_set_outchan(state, OUTCHANref(stderr_ref)) end // end of [else] // end // end of [cmdstate_set_outchan_basename] (* ****** ****** *) // fn isinwait (state: cmdstate): bool = ( case+ state.waitkind of WTKinput() => true | _ => false ) (* end of [isinwait] *) // fn isoutwait (state: cmdstate): bool = ( case+ state.waitkind of WTKoutput() => true | _ => false ) (* end of [isoutwait] *) // (* ****** ****** *) // extern fun comarg_warning (msg: string): void // implement comarg_warning (msg) = { val () = prerr("waring(ATS)") val () = prerr(": unrecognized command line argument [") val () = prerr(msg) val () = prerr("] is ignored.") val () = prerr_newline((*void*)) } (* end of [comarg_warning] *) // (* ****** ****** *) fun atscc2js_usage (cmd: string): void = { // val () = println! ( "Usage: ", cmd, " ... \n" ) val () = println! ( "where each is of one of the following forms:\n" ) // val () = println! (" -i : for processing ") val () = println! (" --input : for processing ") // val () = println! (" -o : output into ") val () = println! (" --output : output into ") // val () = println! (" -h : for printing out this help usage") val () = println! (" --help : for printing out this help usage") // } (* end of [atscc2js_usage] *) (* ****** ****** *) fun process_cmdline ( state: &cmdstate, arglst: comarglst ) : void = let in // case+ arglst of // | list_nil ((*void*)) => let val nif = state.ninputfile // end of [val] val wait0 = ( case+ 0 of | _ when nif < 0 => true | _ when nif = 0 => isinwait(state) | _ (* nif > 0 *) => false ) : bool // end of [val] in if wait0 then ( if state.ncomarg = 0 then atscc2js_usage("atscc2js") else atscc2js_fileref(state, stdin_ref) // end of [if] ) (* end of [if] *) end // end of [list_nil] // | list_cons (arg, arglst) => let val () = state.ncomarg := state.ncomarg + 1 // end of [val] in process_cmdline2(state, arg, arglst) end // end of [list_cons] // end // end of [process_cmdline] and process_cmdline2 ( state: &cmdstate, arg: comarg, arglst: comarglst ) : void = let in // case+ arg of // | _ when isoutwait(state) => let // val COMARG(_, fname) = arg // val () = cmdstate_set_outchan_basename(state, fname) // val () = state.waitkind := WTKnone((*void*)) // in process_cmdline(state, arglst) end // end of [_ when isoutwait] // | _ when isinwait(state) => let val nif = state.ninputfile in case+ arg of | COMARG(1, key) when nif > 0 => process_cmdline2_comarg1(state, arglst, key) | COMARG(2, key) when nif > 0 => process_cmdline2_comarg2(state, arglst, key) | COMARG(_, fname) => process_cmdline(state, arglst) where { val () = state.ninputfile := nif + 1 val () = atscc2js_basename(state, fname(*input*)) } (* end of [COMARG(_, _)] *) end // end of [_ when isinpwait] // | COMARG(1, key) => process_cmdline2_comarg1(state, arglst, key) | COMARG(2, key) => process_cmdline2_comarg2(state, arglst, key) // | COMARG(_, key) => process_cmdline(state, arglst) where { val () = comarg_warning(key) val () = state.waitkind := WTKnone((*void*)) } // end of [COMARG(_, _)] // end // end of [process_cmdline2] and process_cmdline2_comarg1 ( state: &cmdstate >> _ , arglst: comarglst, key: string ) : void = let // val () = ( // case+ key of // | "-i" => { val () = (state.ninputfile := 0) // end of [val] val () = state.waitkind := WTKinput() } (* end of [-i] *) // | "-o" => { val () = state.waitkind := WTKoutput() } (* end of [-o] *) // | "-h" => { val () = atscc2js_usage("atscc2js") val () = state.waitkind := WTKnone((*void*)) val () = if state.ninputfile >= 0 then () else state.ninputfile := 0 } (* end of [-h] *) // | _ (*unrecognized*) => comarg_warning(key) // ) : void // end of [val] // in process_cmdline(state, arglst) end // end of [process_cmdline2_comarg1] and process_cmdline2_comarg2 ( state: &cmdstate >> _ , arglst: comarglst, key: string ) : void = let // val () = state.waitkind := WTKnone() // val () = ( // case+ key of // | "--input" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [--input] *) // | "--output" => { val () = state.waitkind := WTKoutput() } (* end of [--output] *) // | "--help" => { val () = atscc2js_usage("atscc2js") val () = state.waitkind := WTKnone((*void*)) val () = if state.ninputfile >= 0 then () else state.ninputfile := 0 } (* end of [--help] *) // | _ (*unrecognized*) => comarg_warning(key) // ) : void // end of [val] // in process_cmdline(state, arglst) end // end of [process_cmdline2_comarg2] (* ****** ****** *) // extern fun comarg_parse(string):<> comarg // extern fun comarglst_parse{n:nat} (argc: int(n), argv: !argv(n)): list(comarg, n) // end of [comarglst_parse] // (* ****** ****** *) implement comarg_parse (str) = let // fun loop {n:int} {i:nat|i <= n} .. ( str: string(n), n: int(n), i: int(i) ) :<(*void*)> comarg = ( if (i < n) then ( if (str[i] != '-') then COMARG(i, str) else loop(str, n, i+1) ) else COMARG(n, str) ) (* end of [if] *) // end of [loop] // val str = g1ofg0(str) val len = string_length (str) // in loop (str, sz2i(len), 0) end // end of [comarg_parse] (* ****** ****** *) implement comarglst_parse {n}(argc, argv) = let // fun loop {i,j:nat | i <= n} .. ( argv: !argv(n), i: int(i), res: list_vt(comarg, j) ) : list_vt (comarg, n-i+j) = ( if i < argc then let val res = list_vt_cons(comarg_parse(argv[i]), res) in loop (argv, i+1, res) end // end of [then] else res // end of [else] // end of [if] ) (* end of [loop] *) // val res = loop (argv, 0, list_vt_nil()) // in list_vt2t (list_vt_reverse (res)) end // end of [comarglst_parse] (* ****** ****** *) // extern fun atscc2js_main0 {n:pos} ( argc: int(n), argv: !argv(n) ) : void = "ext#libatscc2js_atscc2js_main0" // implement atscc2js_main0 (argc, argv) = { // val () = prerrln! ("Hello from atscc2js!") // // val arglst = comarglst_parse(argc, argv) // val+list_cons(arg0, arglst) = arglst // var state = @{ comarg0= arg0 , ncomarg= 0 // counting from 0 , waitkind= WTKnone() // number of prcessed , ninputfile= ~1 // input files , outchan= OUTCHANref(stdout_ref) , nerror= 0 // number of accumulated errors } : cmdstate // end of [var] // val () = process_cmdline(state, arglst) // val () = if state.nerror = 1 then let val () = prerrln! ("atscc2js: there is a reported error.") in // nothing end // end of [then] else if state.nerror >= 2 then let val () = prerrln! ("atscc2js: there are some reported errors.") in // nothing end // end of [then] else () // end of [else] // (* val () = prerrln! ("Good-bye from atscc2js!") *) // } (* end of [atscc2js_main0] *) // (* ****** ****** *) #ifndef ATSCC2JS_MAIN_NONE // implement main0(argc, argv) = { // val () = atscc2js_main0(argc, argv) // } (* end of [main0] *) // #endif // ifndef(ATSCC2JS_MAIN_NONE) (* ****** ****** *) (* end of [atscc2js_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/Makefile0000644000175000017500000000353413431250607022233 0ustar brandonbrandon# # A simple Makefile # ###### AR=ar CPF=cp -f RMF=rm -f MAKE=make ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### all:: ###### CBOOT:: ; $(CPF) catsparse_sats.c CBOOT/. CBOOT:: ; $(CPF) atscc2js_*_dats.c CBOOT/. CBOOT:: ; $(CPF) libatscc2js_*_dats.c CBOOT/. ###### CATSPARSEMIT=./CATS-parsemit ###### # SOURCES_DATS := SOURCES_DATS += DATS/atscc2js_main.dats SOURCES_DATS += DATS/atscc2js_emit.dats SOURCES_DATS += DATS/atscc2js_emit2.dats # SOURCES_SATS := SOURCES_SATS += $(CATSPARSEMIT)/SATS/catsparse.sats # SOURCES_CATS := SOURCES_CATS += $(CATSPARSEMIT)/CATS/catsparse_all_dats.c # ###### # all:: ; \ $(MAKE) -C CATS-parsemit all # ###### # all:: \ bin_atscc2js bin_atscc2js: \ $(SOURCES_DATS); \ $(PATSCC) \ -O2 -DATS_MEMALLOC_GCBDW -o bin/atscc2js \ $(SOURCES_DATS) $(SOURCES_SATS) $(SOURCES_CATS) -lgc # ###### # npm:: bin_atscc2js npm:: ; $(CPF) catsparse_sats.c atscc2js_*_dats.c npm/CATS/. # ###### # OBJECTS := \ catsparse_sats.o \ catsparse_all_dats.o \ atscc2js_main_dats.o \ atscc2js_emit_dats.o \ atscc2js_emit2_dats.o \ libatscc2js_ext_dats.o \ # libatscc2js.a: $(OBJECTS); $(AR) -r $@ $(OBJECTS) # ###### # catsparse_sats.o: \ $(CATSPARSEMIT)/SATS/catsparse.sats; $(PATSCC) -O2 -c $< # catsparse_all_dats.o: \ $(CATSPARSEMIT)/CATS/catsparse_all_dats.c; $(PATSCC) -O2 -c $< # ###### # %_dats.o: DATS/%.dats; \ $(PATSCC) -D_GNU_SOURCE -DATS ATSCC2JS_MAIN_NONE -O2 -c $< # ###### # testall:: all testall:: cleanall # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) catsparse_sats.c clean:: ; $(RMF) atscc2js_*_?ats.c clean:: ; $(RMF) libatscc2js_ext_?ats.c ###### # cleanall:: clean # cleanall:: ; $(RMF) ./bin/atscc2js cleanall:: ; $(RMF) ./libatscc2js.a cleanall:: ; $(RMF) ./npm/CATS/catsparse_sats.c cleanall:: ; $(RMF) ./npm/CATS/atscc2js_*_dats.c # ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2js/.keeper0000644000175000017500000000000013431250607022030 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/.keeper0000644000175000017500000000000013431250607017564 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/0000755000175000017500000000000013431250607021152 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/ATS-extsolve0000777000175000017500000000000013431250607026024 2../ATS-extsolveustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/bin/0000755000175000017500000000000013431250607021722 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/bin/.keeper0000644000175000017500000000000013431250607023164 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/0000755000175000017500000000000013431250607021705 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/SOLVING/0000755000175000017500000000000013431250607023026 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/SOLVING/patsolve_z3_solving_interp.dats0000644000175000017500000001440413431250607031301 0ustar brandonbrandon(* ## ## ATS-extsolve-z3: ## Solving ATS-constraints with Z3 ## *) (* ****** ****** *) // #ifdef PATSOLVE_Z3_SOLVING #then #else #include "./myheader.hats" #endif // ifdef(PATSOLVE_Z3_SOLVING) // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // implement print_s2cinterp (x) = fprint_s2cinterp(stdout_ref, x) implement prerr_s2cinterp (x) = fprint_s2cinterp(stderr_ref, x) // implement fprint_s2cinterp (out, x) = let in // case+ x of // | S2CINTnone() => fprint! (out, "S2CINTnone()") // | S2CINTsome _ => fprint! (out, "S2CINTsome(...)") // | S2CINTbuiltin_0 _ => fprint! (out, "S2CINTbuiltin_0(...)") | S2CINTbuiltin_1 _ => fprint! (out, "S2CINTbuiltin_1(...)") | S2CINTbuiltin_2 _ => fprint! (out, "S2CINTbuiltin_2(...)") // | S2CINTbuiltin_list _ => fprint! (out, "S2CINTbuiltin_list(...)") // end // end of [fprint_s2cinterp] // (* ****** ****** *) implement fprint_val = fprint_s2cinterp (* ****** ****** *) local typedef key = string and itm = s2cinterp in (* in-of-local *) #include "libats/ML/HATS/myhashtblref.hats" end // end of [local] (* ****** ****** *) local // val the_s2cinterp_map = myhashtbl_make_nil(1024) // fun s2cinterp_insert ( name: string, itm: s2cinterp ) : void = { // val-~None_vt() = myhashtbl_insert(the_s2cinterp_map, name, itm) // end of [val] } (* end of [s2cinterp_insert] *) // in (* in-of-local *) // implement s2cst_get_s2cinterp (s2c) = let // val ptr = s2cst_get_payload(s2c) // in // if ptr > 0 then $UN.cast{s2cinterp}(ptr) else let // val key = symbol_get_name(s2c.name()) val opt = myhashtbl_search(the_s2cinterp_map, key) val itm = ( case+ opt of | ~Some_vt(itm) => itm | ~None_vt((*void*)) => S2CINTnone() ) : s2cinterp // end of [val] val () = s2cst_set_payload(s2c, $UN.cast{ptr}(itm)) // in itm end // end of [else] // end // end of [s2cst_get_s2cinterp] // implement the_s2cinterp_initize() = { // macdef insert = s2cinterp_insert // val () = insert("unit_p", S2CINTbuiltin_0(formula_true)) // val () = insert("null_addr", S2CINTbuiltin_0(formula_null)) // val () = insert("true_bool", S2CINTbuiltin_0(formula_true)) val () = insert("false_bool", S2CINTbuiltin_0(formula_false)) // val () = insert("neg_int", S2CINTbuiltin_1(formula_ineg)) // val () = insert("add_int_int", S2CINTbuiltin_2(formula_iadd)) val () = insert("sub_int_int", S2CINTbuiltin_2(formula_isub)) // val () = insert("mul_int_int", S2CINTbuiltin_2(formula_imul)) val () = insert("div_int_int", S2CINTbuiltin_2(formula_idiv)) val () = insert("idiv_int_int", S2CINTbuiltin_2(formula_idiv)) val () = insert("ndiv_int_int", S2CINTbuiltin_2(formula_ndiv)) // val () = insert("lt_int_int", S2CINTbuiltin_2(formula_ilt)) val () = insert("lte_int_int", S2CINTbuiltin_2(formula_ilte)) val () = insert("gt_int_int", S2CINTbuiltin_2(formula_igt)) val () = insert("gte_int_int", S2CINTbuiltin_2(formula_igte)) val () = insert("eq_int_int", S2CINTbuiltin_2(formula_ieq)) val () = insert("neq_int_int", S2CINTbuiltin_2(formula_ineq)) // val () = insert("abs_int", S2CINTbuiltin_1(formula_iabs)) val () = insert("sgn_int", S2CINTbuiltin_1(formula_isgn)) // val () = insert("max_int_int", S2CINTbuiltin_2(formula_imax)) val () = insert("min_int_int", S2CINTbuiltin_2(formula_imin)) // val () = insert("neg_bool", S2CINTbuiltin_1(formula_bneg)) // val () = insert("add_bool_bool", S2CINTbuiltin_2(formula_badd)) val () = insert("mul_bool_bool", S2CINTbuiltin_2(formula_bmul)) // val () = insert("lt_bool_bool", S2CINTbuiltin_2(formula_blt)) val () = insert("lte_bool_bool", S2CINTbuiltin_2(formula_blte)) val () = insert("gt_bool_bool", S2CINTbuiltin_2(formula_bgt)) val () = insert("gte_bool_bool", S2CINTbuiltin_2(formula_bgte)) val () = insert("eq_bool_bool", S2CINTbuiltin_2(formula_beq)) val () = insert("neq_bool_bool", S2CINTbuiltin_2(formula_bneq)) // val () = insert("add_addr_int", S2CINTbuiltin_2(formula_iadd)) val () = insert("sub_addr_int", S2CINTbuiltin_2(formula_isub)) val () = insert("sub_addr_addr", S2CINTbuiltin_2(formula_isub)) // val () = insert("lt_addr_addr", S2CINTbuiltin_2(formula_ilt)) val () = insert("lte_addr_addr", S2CINTbuiltin_2(formula_ilte)) val () = insert("gt_addr_addr", S2CINTbuiltin_2(formula_igt)) val () = insert("gte_addr_addr", S2CINTbuiltin_2(formula_igte)) val () = insert("eq_addr_addr", S2CINTbuiltin_2(formula_ieq)) val () = insert("neq_addr_addr", S2CINTbuiltin_2(formula_ineq)) // (* // // HX-2016-06-08: for operations on reals // *) // val () = insert("int2real", S2CINTbuiltin_1(formula_int2real)) // val () = insert("neg_real", S2CINTbuiltin_1(formula_neg_real)) val () = insert("abs_real", S2CINTbuiltin_1(formula_abs_real)) // val () = insert("add_real_real", S2CINTbuiltin_2(formula_add_real_real)) val () = insert("sub_real_real", S2CINTbuiltin_2(formula_sub_real_real)) val () = insert("mul_real_real", S2CINTbuiltin_2(formula_mul_real_real)) val () = insert("div_real_real", S2CINTbuiltin_2(formula_div_real_real)) // val () = insert("lt_real_real", S2CINTbuiltin_2(formula_lt_real_real)) val () = insert("lte_real_real", S2CINTbuiltin_2(formula_lte_real_real)) val () = insert("gt_real_real", S2CINTbuiltin_2(formula_gt_real_real)) val () = insert("gte_real_real", S2CINTbuiltin_2(formula_gte_real_real)) val () = insert("eq_real_real", S2CINTbuiltin_2(formula_eq_real_real)) val () = insert("neq_real_real", S2CINTbuiltin_2(formula_neq_real_real)) // (* val () = insert("add_int_real", S2CINTbuiltin_2(formula_add_int_real)) val () = insert("add_real_int", S2CINTbuiltin_2(formula_add_real_int)) val () = insert("sub_int_real", S2CINTbuiltin_2(formula_sub_int_real)) val () = insert("sub_real_int", S2CINTbuiltin_2(formula_sub_real_int)) val () = insert("mul_int_real", S2CINTbuiltin_2(formula_mul_int_real)) val () = insert("div_real_int", S2CINTbuiltin_2(formula_div_real_int)) *) // (* val () = insert("lt_real_int", S2CINTbuiltin_2(formula_lt_real_int)) val () = insert("lte_real_int", S2CINTbuiltin_2(formula_lte_real_int)) val () = insert("gt_real_int", S2CINTbuiltin_2(formula_gt_real_int)) val () = insert("gte_real_int", S2CINTbuiltin_2(formula_gte_real_int)) val () = insert("eq_real_int", S2CINTbuiltin_2(formula_eq_real_int)) val () = insert("neq_real_int", S2CINTbuiltin_2(formula_neq_real_int)) *) // } (* end of [the_s2cinterp_initize] *) end // end of [local] (* ****** ****** *) (* end of [patsolve_z3_solving_interp.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/SOLVING/patsolve_z3_solving_form.dats0000644000175000017500000007777613431250607030770 0ustar brandonbrandon(* ## ## ATS-extsolve-z3: ## Solving ATS-constraints with Z3 ## *) (* ****** ****** *) // #ifdef PATSOLVE_Z3_SOLVING #then #else #include "./myheader.hats" #endif // ifdef(PATSOLVE_Z3_SOLVING) // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // #staload "libats/ML/SATS/atspre.sats" #staload _ = "libats/ML/DATS/atspre.dats" // #staload "./patsolve_z3_solving_ctx.dats" // (* ****** ****** *) assume form_vtype = Z3_ast assume func_decl_vtype = Z3_func_decl (* ****** ****** *) implement formula_decref (ast) = () where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val () = Z3_dec_ref(ctx, ast) prval ((*void*)) = fpf(ctx) } (* ****** ****** *) implement formula_incref (ast) = ast2 where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val ast2 = Z3_inc_ref(ctx, ast) prval ((*void*)) = fpf(ctx) } (* ****** ****** *) // implement formula_null ((*void*)) = formula_int(0) // (* ****** ****** *) implement formula_true() = tt where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val tt = Z3_mk_true(ctx) prval ((*void*)) = fpf(ctx) } implement formula_false() = ff where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val ff = Z3_mk_false(ctx) prval ((*void*)) = fpf(ctx) } (* ****** ****** *) implement formula_int(i) = i2 where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val ty = Z3_mk_int_sort(ctx) val i2 = Z3_mk_int(ctx, i, ty) val () = Z3_sort_dec_ref(ctx, ty) prval ((*void*)) = fpf(ctx) } (* ****** ****** *) implement formula_intrep(rep) = i2 where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val ty = Z3_mk_int_sort(ctx) val i2 = Z3_mk_numeral(ctx, rep, ty) val () = Z3_sort_dec_ref(ctx, ty) prval ((*void*)) = fpf(ctx) } (* ****** ****** *) implement formula_not (s2e1) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_not (ctx, s2e1) // end of [val] val () = Z3_dec_ref(ctx, s2e1) prval ((*void*)) = fpf(ctx) } (* end of [formula_not] *) (* ****** ****** *) implement formula_conj (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_and2 (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_conj] *) (* ****** ****** *) implement formula_disj (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_or2 (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_disj] *) (* ****** ****** *) implement formula_impl (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_implies (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_impl] *) (* ****** ****** *) implement formula_conj_list (s2es) = let // fun aux ( s2e0: form, s2es: formlst ) : form = ( // case+ s2es of | ~list_vt_nil ((*void*)) => s2e0 | ~list_vt_cons (s2e1, s2es2) => aux(formula_conj(s2e0, s2e1), s2es2) // ) (* end of [aux] *) // in // case+ s2es of | ~list_vt_nil() => formula_true() | ~list_vt_cons(s2e, s2es) => aux(s2e, s2es) // end // end of [formula_conj_list] (* ****** ****** *) implement formula_conj_list1 (s2es_arg, s2e_res) = let in // case+ s2es_arg of | ~list_vt_nil() => s2e_res | list_vt_cons _ => formula_conj(formula_conj_list(s2es_arg), s2e_res) // end of [list_vt_cons] // end // end of [formula_conj_list1] implement formula_impl_list1 (s2es_arg, s2e_res) = let in // case+ s2es_arg of | ~list_vt_nil() => s2e_res | list_vt_cons _ => formula_impl(formula_conj_list(s2es_arg), s2e_res) // end of [list_vt_cons] // end // end of [formula_impl_list1] (* ****** ****** *) implement formula_ineg (s2e1) = res where { // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_unary_minus (ctx, s2e1) val () = Z3_dec_ref(ctx, s2e1) prval ((*void*)) = fpf(ctx) // } (* end of [formula_ineg] *) (* ****** ****** *) implement formula_iadd (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_add2 (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_iadd] *) (* ****** ****** *) implement formula_isub (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_sub2 (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_isub] *) (* ****** ****** *) implement formula_imul (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_mul2 (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_imul] *) (* ****** ****** *) // implement formula_idiv (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_div (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_idiv] *) // implement formula_ndiv (s2e1, s2e2) = formula_idiv(s2e1, s2e2) // (* ****** ****** *) implement formula_ilt (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_lt (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_ilt] *) implement formula_ilte (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_lte (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_ilte] *) (* ****** ****** *) implement formula_igt (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_gt (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_igt] *) implement formula_igte (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_gte (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_igte] *) (* ****** ****** *) implement formula_ieq (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_eq (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_ieq] *) (* ****** ****** *) // implement formula_ineq (s2e1, s2e2) = formula_not(formula_ieq(s2e1, s2e2)) // (* ****** ****** *) implement formula_iabs (s2e) = let val _0_ = formula_int(0) val s2e_1 = formula_incref(s2e) val s2e_2 = formula_ineg(formula_incref(s2e)) in formula_cond(formula_igte(s2e, _0_), s2e_1, s2e_2) end // end of [formula_iabs] (* ****** ****** *) implement formula_isgn (s2e) = let val s2e_ = formula_incref(s2e) val s2e_gtz = formula_igt(s2e, formula_int(0)) val s2e_ltz = formula_ilt(s2e_, formula_int(0)) in // formula_cond ( s2e_gtz, formula_int(1), formula_cond(s2e_ltz, formula_int(~1), formula_int(0)) ) // end // end of [formula_isgn] (* ****** ****** *) implement formula_imax (s2e1, s2e2) = let val s2e1_ = formula_incref(s2e1) val s2e2_ = formula_incref(s2e2) in formula_cond(formula_igte(s2e1, s2e2), s2e1_, s2e2_) end // end of [formula_imax] implement formula_imin (s2e1, s2e2) = let val s2e1_ = formula_incref(s2e1) val s2e2_ = formula_incref(s2e2) in formula_cond(formula_ilte(s2e1, s2e2), s2e1_, s2e2_) end // end of [formula_imin] (* ****** ****** *) // implement formula_bneg(s2e) = formula_not(s2e) // implement formula_badd (s2e1, s2e2) = formula_disj(s2e1, s2e2) // implement formula_bmul (s2e1, s2e2) = formula_conj(s2e1, s2e2) // (* ****** ****** *) // implement formula_blt (s2e1, s2e2) = formula_conj(formula_not(s2e1), s2e2) // implement formula_blte (s2e1, s2e2) = formula_impl(s2e1, s2e2) // implement formula_bgt (s2e1, s2e2) = formula_conj(s2e1, formula_not(s2e2)) // implement formula_bgte (s2e1, s2e2) = formula_impl(s2e2, s2e1) // (* ****** ****** *) implement formula_beq (s2e1, s2e2) = res where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_eq (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) } (* end of [formula_beq] *) (* ****** ****** *) // implement formula_bneq (s2e1, s2e2) = formula_not(formula_beq(s2e1, s2e2)) // (* ****** ****** *) // implement formula_real(p, q) = pq where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val pq = Z3_mk_real(ctx, p, q) prval ((*void*)) = fpf(ctx) } // implement formula_int2real (s2e1) = res where { // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_int2real(ctx, s2e1) // end of [val] val () = Z3_dec_ref(ctx, s2e1) prval ((*void*)) = fpf(ctx) // } // end of [formula_int2real] // implement formula_neg_real (s2e1) = formula_ineg(s2e1) // implement formula_abs_real (s2e) = let val _0_ = formula_real(0, 1) val s2e_1 = formula_incref(s2e) val s2e_2 = formula_neg_real(formula_incref(s2e)) in formula_cond(formula_gte_real_real(s2e, _0_), s2e_1, s2e_2) end // end of [formula_iabs] // implement formula_add_real_real (s2e1, s2e2) = formula_iadd(s2e1, s2e2) implement formula_sub_real_real (s2e1, s2e2) = formula_isub(s2e1, s2e2) implement formula_mul_real_real (s2e1, s2e2) = formula_imul(s2e1, s2e2) implement formula_div_real_real (s2e1, s2e2) = formula_idiv(s2e1, s2e2) // implement formula_lt_real_real (s2e1, s2e2) = formula_ilt(s2e1, s2e2) implement formula_lte_real_real (s2e1, s2e2) = formula_ilte(s2e1, s2e2) implement formula_gt_real_real (s2e1, s2e2) = formula_igt(s2e1, s2e2) implement formula_gte_real_real (s2e1, s2e2) = formula_igte(s2e1, s2e2) // implement formula_eq_real_real (s2e1, s2e2) = formula_ieq(s2e1, s2e2) implement formula_neq_real_real (s2e1, s2e2) = formula_ineq(s2e1, s2e2) // (* ****** ****** *) (* implement formula_add_int_real (s2e1, s2e2) = ( formula_add_real_real(formula_int2real(s2e1), s2e2) ) (* end of [formula_add_int_real] *) implement formula_add_real_int (s2e1, s2e2) = ( formula_add_real_real(s2e1, formula_int2real(s2e2)) ) (* end of [formula_add_real_int] *) // implement formula_sub_int_real (s2e1, s2e2) = ( formula_sub_real_real(formula_int2real(s2e1), s2e2) ) (* end of [formula_sub_int_real] *) implement formula_sub_real_int (s2e1, s2e2) = ( formula_sub_real_real(s2e1, formula_int2real(s2e2)) ) (* end of [formula_sub_real_int] *) // implement formula_mul_int_real (s2e1, s2e2) = ( formula_mul_real_real(formula_int2real(s2e1), s2e2) ) (* end of [formula_mul_int_real] *) implement formula_div_real_int (s2e1, s2e2) = ( formula_div_real_real(s2e1, formula_int2real(s2e2)) ) (* end of [formula_div_real_int] *) *) // (* implement formula_lt_real_int (s2e1, s2e2) = formula_ilt(s2e1, formula_int2real(s2e2)) implement formula_lte_real_int (s2e1, s2e2) = formula_ilte(s2e1, formula_int2real(s2e2)) implement formula_gt_real_int (s2e1, s2e2) = formula_igt(s2e1, formula_int2real(s2e2)) implement formula_gte_real_int (s2e1, s2e2) = formula_igte(s2e1, formula_int2real(s2e2)) implement formula_eq_real_int (s2e1, s2e2) = formula_ieq(s2e1, formula_int2real(s2e2)) implement formula_neq_real_int (s2e1, s2e2) = formula_ineq(s2e1, formula_int2real(s2e2)) *) // (* ****** ****** *) implement formula_cond ( s2e0, s2e1, s2e2 ) = res where { // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_ite (ctx, s2e0, s2e1, s2e2) // end of [val] // val ((*freed*)) = Z3_dec_ref(ctx, s2e0) val ((*freed*)) = Z3_dec_ref(ctx, s2e1) val ((*freed*)) = Z3_dec_ref(ctx, s2e2) // prval ((*void*)) = fpf(ctx) // } (* end of [formula_cond] *) (* ****** ****** *) implement formula_eqeq (s2e1, s2e2) = res where { // (* val () = println! ("formula_eqeq: enter") *) // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_eq (ctx, s2e1, s2e2) // end of [val] val () = Z3_dec_ref(ctx, s2e1) val () = Z3_dec_ref(ctx, s2e2) prval ((*void*)) = fpf(ctx) // (* val () = println! ("formula_eqeq: leave") *) // } (* end of [formula_eqeq] *) (* ****** ****** *) implement formula_sizeof_t0ype (s2e) = let // val r = sort_int() val a = sort_mk_t0ype() // val fd = func_decl_1("sizeof_t0ype", a, r) // in formula_fdapp_1(fd, s2e) end // end of [formula_sizeof] (* ****** ****** *) implement func_decl_1 (name, arg, res) = let // val (fpf | ctx) = the_Z3_context_vget() // end of [val] // val sym = Z3_mk_string_symbol(ctx, name) // val arg = $UN.castvwtp0{Z3_sort}(arg) val res = $UN.castvwtp0{Z3_sort}(res) // val fd1 = Z3_mk_func_decl_1(ctx, sym, arg, res) // val ((*void*)) = Z3_sort_dec_ref(ctx, res) val ((*void*)) = Z3_sort_dec_ref(ctx, arg) // prval ((*void*)) = fpf(ctx) // in fd1 end // end of [func_decl_1] (* ****** ****** *) implement formula_fdapp_1 (fd, arg) = res where { // val (fpf | ctx) = the_Z3_context_vget() // end of [val] // val res = Z3_mk_app_1 (ctx, fd, arg) // val () = Z3_func_decl_dec_ref(ctx, fd) // val ((*void*)) = Z3_dec_ref(ctx, arg) // prval ((*void*)) = fpf(ctx) // } (* end of [formula_fdapp_1] *) (* ****** ****** *) fun Z3_dec_ref_arrayptr {n:int} ( ctx: !Z3_context , args: arrayptr(Z3_ast, n), n: int(n) ) : void = let // fun loop ( ctx: !Z3_context, p: ptr, i: int ) : void = ( // if i < n then let // val () = Z3_dec_ref (ctx, $UN.ptr0_get(p)) // in loop (ctx, ptr0_succ(p), i+1) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // val () = loop(ctx, ptrcast(args), 0) // in arrayptr_free($UN.castvwtp0{arrayptr(ptr, n)}(args)) end // end of [Z3_dec_ref_arrayptr] (* ****** ****** *) implement func_decl_list (name, args, res) = let // val n = length(args) // prval [n:int] EQINT() = eqint_make_gint(n) // val args = arrayptr_make_list_vt(n, args) // val res = $UN.castvwtp0{Z3_sort}(res) val args = $UN.castvwtp0{arrayptr(Z3_sort, n)}(args) // val ( pfarr | p_args) = arrayptr_takeout_viewptr(args) // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val sym = Z3_mk_string_symbol(ctx, name) val fdl = Z3_mk_func_decl(ctx, sym, n, !p_args, res) // prval () = arrayptr_addback(pfarr | args) // val res = $UN.castvwtp0{Z3_ast}(res) val args = $UN.castvwtp0{arrayptr(Z3_ast, n)}(args) // val ((*void*)) = Z3_dec_ref(ctx, res) val ((*void*)) = Z3_dec_ref_arrayptr(ctx, args, n) // prval ((*void*)) = fpf(ctx) // in fdl end // end of [func_decl_list] (* ****** ****** *) implement formula_fdapp_list (fd, args) = res where { // val n = length(args) val args = arrayptr_make_list_vt(n, args) // val ( pfarr | p_args) = arrayptr_takeout_viewptr(args) // val (fpf | ctx) = the_Z3_context_vget() // end of [val] // val res = Z3_mk_app (ctx, fd, n, !p_args) // val () = Z3_func_decl_dec_ref(ctx, fd) // prval () = arrayptr_addback(pfarr | args) // val ((*void*)) = Z3_dec_ref_arrayptr(ctx, args, n) // prval ((*void*)) = fpf(ctx) // } (* end of [formula_fdapp_list] *) (* ****** ****** *) implement formula_error_s2cst (s2c0) = res where { // val () = prerrln! ("formula_error: s2c0 = ", s2c0) // val () = assertloc(false) val res = formula_error_s2cst(s2c0) // } (* end of [formula_error_s2cst] *) implement formula_error_s2exp (s2e0) = res where { // val () = prerrln! ("formula_error: s2e0 = ", s2e0) // val () = assertloc(false) val res = formula_error_s2exp(s2e0) // } (* end of [formula_error_s2exp] *) (* ****** ****** *) // extern fun Z3_mk_s2cst_symbol (ctx: !Z3_context, s2c: s2cst): Z3_symbol // extern fun Z3_mk_s2var_symbol (ctx: !Z3_context, s2v: s2var): Z3_symbol // (* ****** ****** *) implement Z3_mk_s2cst_symbol (ctx, s2c0) = sym0 where { // val name = s2c0.name() val name = symbol_get_name(name) val name = string0_copy(name) // val stamp = stamp_get_int(s2c0.stamp()) // val stamp = g0int2string(stamp) // var strarr = @[string]( $UN.strptr2string(name) , "(", $UN.strptr2string(stamp), ")" ) (* var *) // val name2 = stringarr_concat ( $UN.cast{arrayref(string,4)}(addr@strarr), i2sz(4) ) (* stringarr_concat *) // val () = strptr_free(name) val () = strptr_free(stamp) // val sym0 = Z3_mk_string_symbol(ctx, $UN.strptr2string(name2)) // val ((*freed*)) = strptr_free(name2) // } (* end of [Z3_mk_s2cst_symbol] *) (* ****** ****** *) implement Z3_mk_s2var_symbol (ctx, s2v0) = sym0 where { // val name = s2v0.name() val name = symbol_get_name(name) val name = string0_copy(name) // val stamp = stamp_get_int(s2v0.stamp()) // val stamp = g0int2string(stamp) // var strarr = @[string]( $UN.strptr2string(name) , "(", $UN.strptr2string(stamp), ")" ) (* var *) // val name2 = stringarr_concat ( $UN.cast{arrayref(string,4)}(addr@strarr), i2sz(4) ) (* stringarr_concat *) // val () = strptr_free(name) val () = strptr_free(stamp) // val sym0 = Z3_mk_string_symbol(ctx, $UN.strptr2string(name2)) // val ((*freed*)) = strptr_free(name2) // } (* end of [Z3_mk_s2var_symbol] *) (* ****** ****** *) implement formula_make_s2cst (env, s2c0) = let // val s2ci = s2cst_get_s2cinterp(s2c0) // in // case+ s2ci of // | S2CINTnone() => let val s2e = formula_make_s2cst_fresh(env, s2c0) val s2e_ = formula_incref(s2e) val s2e = S2CINTsome($UN.castvwtp0{ptr}(s2e)) val ((*void*)) = s2cst_set_payload(s2c0, $UN.cast{ptr}(s2e)) // end of [val] in s2e_ end // end of [S2CINTnone] // | S2CINTsome(ptr) => let val s2e = $UN.castvwtp0{form}(ptr) val s2e_ = formula_incref(s2e) prval () = $UN.cast2void(s2e) in s2e_ end // end of [S2CINTsome] // | S2CINTbuiltin_0(f) => f((*void*)) // | _(*rest-of-S2CINT*) => formula_error(s2c0) // end // end of [formula_make_s2cst] (* ****** ****** *) implement formula_make_s2cst_fresh (env, s2c0) = ast0 where { // val ty0 = sort_make_s2rt(s2c0.srt()) val ty0 = $UN.castvwtp0{Z3_sort}(ty0) // val (fpf|ctx) = the_Z3_context_vget((*void*)) val name = Z3_mk_s2cst_symbol(ctx, s2c0) // val ast0 = Z3_mk_const(ctx, name, ty0) // val ((*freed*)) = Z3_sort_dec_ref(ctx, ty0) // prval ((*returned*)) = fpf(ctx) // } (* end of [formula_make_s2cst_fresh] *) (* ****** ****** *) implement formula_make_s2var (env, s2v0) = let // (* val () = println! ( "formula_make_s2var: s2v0 = ", s2v0 ) (* end of [val] *) val () = println! ( "formula_make_s2var: s2v0.stamp = ", s2v0.stamp() ) (* end of [val] *) *) // val ptr = s2var_get_payload(s2v0) // in // if ptr > 0 then s2var_top_payload(s2v0) else formula_make_s2var_fresh(env, s2v0) // end // end of [formula_make_s2var] (* ****** ****** *) implement formula_make_s2var_fresh (env, s2v0) = ast0 where { // val ty0 = sort_make_s2rt(s2v0.srt()) val ty0 = $UN.castvwtp0{Z3_sort}(ty0) // val (fpf|ctx) = the_Z3_context_vget((*void*)) // val name = Z3_mk_s2var_symbol(ctx, s2v0) // val ast0 = Z3_mk_const(ctx, name, ty0) // val ((*freed*)) = Z3_sort_dec_ref(ctx, ty0) // prval ((*returned*)) = fpf(ctx) // } (* end of [formula_make_s2var_fresh] *) (* ****** ****** *) implement formula_make_s2Var_fresh (env, s2V0, s2t0) = ast where { // val stamp = stamp_get_int(s2V0.stamp()) // val stamp = g0int2string(stamp) // val name2 = string0_append ("s2Var$", $UN.strptr2string(stamp)) // val () = strptr_free(stamp) // val ty = sort_make_s2rt(s2t0) val ty = $UN.castvwtp0{Z3_sort}(ty) // val (fpf | ctx) = the_Z3_context_vget() // val sym = Z3_mk_string_symbol (ctx, $UN.strptr2string(name2)) // val ast = Z3_mk_const(ctx, sym, ty) // prval ((*void*)) = fpf(ctx) // val (fpf | ctx) = the_Z3_context_vget() // val ((*freed*)) = Z3_sort_dec_ref(ctx, ty) // prval ((*void*)) = fpf(ctx) // val () = strptr_free(name2) // } (* end of [formula_make_s2Var_fresh] *) (* ****** ****** *) implement s2cfun_initize_s2cinterp (s2c0) = let // val name = s2c0.name() val name = symbol_get_name(name) // val s2t0 = s2c0.srt() val-S2RTfun(s2ts_arg, s2t_res) = s2t0 (* val arity = list_length(s2ts_arg) *) // val fopr = lam ( xs: formlst ) : form = let // val range = sort_make_s2rt(s2t_res) // val domain = list_map_fun(s2ts_arg, sort_make_s2rt) // end of [val] // val fd0 = func_decl_list(name, domain, range) // in formula_fdapp_list(fd0, xs) end // end of [fopr] // in s2cst_set_payload(s2c0, $UN.cast{ptr}(S2CINTbuiltin_list(fopr))) end // end of [s2cfun_initize_s2cinterp] (* ****** ****** *) local fun aux_S2Ecst ( env: !smtenv, s2e0: s2exp ) : form = let // val-S2Ecst(s2c) = s2e0.s2exp_node // in formula_make_s2cst(env, s2c) end // end of [aux_S2Ecst] (* ****** ****** *) fun aux_S2Evar ( env: !smtenv, s2e0: s2exp ) : form = let // val-S2Evar(s2v) = s2e0.s2exp_node // in formula_make_s2var(env, s2v) end // end of [aux_S2Evar] (* ****** ****** *) fun aux_S2EVar ( env: !smtenv, s2e0: s2exp ) : form = let // val s2t = s2e0.s2exp_srt val-S2EVar(s2V) = s2e0.s2exp_node // in formula_make_s2Var_fresh(env, s2V, s2t) end // end of [aux_S2EVar] (* ****** ****** *) fun aux_S2Eeqeq ( env: !smtenv, s2e0: s2exp ) : form = let // val- S2Eeqeq(s2e1, s2e2) = s2e0.s2exp_node // val s2e1 = formula_make_s2exp(env, s2e1) and s2e2 = formula_make_s2exp(env, s2e2) in formula_eqeq (s2e1, s2e2) end // end of [aux_S2Eeqeq] (* ****** ****** *) fun aux_S2Eapp ( env: !smtenv, s2e0: s2exp ) : form = let // val-S2Eapp (s2e_fun, s2es_arg) = s2e0.s2exp_node // in // case+ s2e_fun.s2exp_node of // case+ | S2Ecst(s2c) => let val s2ci = s2cst_get_s2cinterp(s2c) // end of [val] in case+ s2ci of | S2CINTbuiltin_0(f) => f() | S2CINTbuiltin_1(f) => let val- list_cons (s2e1, s2es_arg) = s2es_arg // end of [val] val s2e1 = formula_make_s2exp(env, s2e1) in f(s2e1) end // end of [S2CINTbuiltin_1] | S2CINTbuiltin_2(f) => let val- list_cons (s2e1, s2es_arg) = s2es_arg // end of [val] val- list_cons (s2e2, s2es_arg) = s2es_arg // end of [val] val s2e1 = formula_make_s2exp(env, s2e1) val s2e2 = formula_make_s2exp(env, s2e2) in f(s2e1, s2e2) end // end of [S2CINTbuiltin_2] // | S2CINTbuiltin_list(f) => f(formulas_make_s2explst(env, s2es_arg)) // end of [S2CINTbuiltin_list] // | S2CINTsome _ => formula_error(s2e0) // | S2CINTnone() => aux_S2Eapp(env, s2e0) where { val ((*void*)) = s2cfun_initize_s2cinterp(s2c) } (* [S2CINTnone] *) // end // end of [S2Ecst] | _(*non-S2Ecst*) => formula_error(s2e0) // end // end of [aux_S2Eapp] (* ****** ****** *) fun aux_S2Emetdec ( env: !smtenv, s2e0: s2exp ) : form = let // val- S2Emetdec (s2es_met, s2es_bnd) = s2e0.s2exp_node // (* val () = println! ("aux_S2Emetdec: s2es_met = ", s2es_met) // val () = println! ("aux_S2Emetdec: s2es_bnd = ", s2es_bnd) *) // fun auxlst ( env: !smtenv , s2es10: s2explst , s2es20: s2explst ) : form = ( case+ s2es10 of | list_nil ((*void*)) => formula_false() | list_cons (s2e1, s2es1) => let val- list_cons (s2e2, s2es2) = s2es20 // end of [val] val s2e1 = formula_make_s2exp (env, s2e1) val s2e2 = formula_make_s2exp (env, s2e2) in case+ s2es1 of | list_nil _ => formula_ilt(s2e1, s2e2) | list_cons _ => let val s2e1_ = formula_incref (s2e1) val s2e2_ = formula_incref (s2e2) val s2e_ilt = formula_ilt(s2e1, s2e2) val s2e_ilte = formula_ilte(s2e1_, s2e2_) in formula_disj(s2e_ilt, formula_conj(s2e_ilte, auxlst(env, s2es1, s2es2))) end // end of [list_cons] end // end of [list_cons] ) // in auxlst(env, s2es_met, s2es_bnd) end // end of [aux_S2Emetdec] (* ****** ****** *) fun aux_S2Etop ( env: !smtenv, s2e0: s2exp ) : form = let // val- S2Etop(_, s2e) = s2e0.s2exp_node // in formula_make_s2exp(env, s2e) end // end of [aux_S2Etop] (* ****** ****** *) fun aux_S2Einvar ( env: !smtenv, s2e0: s2exp ) : form = let // val- S2Einvar(s2e) = s2e0.s2exp_node // in formula_make_s2exp(env, s2e) end // end of [aux_S2Einvar] (* ****** ****** *) fun aux_S2Esizeof ( env: !smtenv, s2e0: s2exp ) : form = let // val- S2Esizeof(s2e) = s2e0.s2exp_node // val s2e = formula_make_s2exp(env, s2e) // in formula_sizeof_t0ype(s2e) end // end of [aux_S2Esizeof] (* ****** ****** *) fun aux_S2Efun ( env: !smtenv, s2e0: s2exp ) : form = let // val s2t0 = s2e0.s2exp_srt // val- S2Efun (npf, s2es, s2e_res) = s2e0.s2exp_node // in // case+ s2t0 of // | S2RTprop() => let val s2es = formulas_make_s2explst(env, s2es) val s2e_res = formula_make_s2exp(env, s2e_res) in formula_impl_list1 (s2es, s2e_res) end // end of [S2Efun] // | _(*non-prop*) => formula_error_s2exp(s2e0) // end // end of [aux_S2Efun] (* ****** ****** *) fun aux_S2Etyrec ( env: !smtenv, s2e0: s2exp ) : form = let // val s2t0 = s2e0.s2exp_srt // val- S2Etyrec (knd, npf, ls2es) = s2e0.s2exp_node // in // case+ s2t0 of // | S2RTprop() => let val s2es = formulas_make_labs2explst(env, ls2es) // end of [val] in formula_conj_list(s2es) end // end of [S2RTprop] // | _(*non-prop*) => formula_error_s2exp(s2e0) // end // end of [aux_S2Etyrec] (* ****** ****** *) vtypedef Z3_symlst = List0_vt(Z3_symbol) vtypedef Z3_sortlst = List0_vt (Z3_sort) (* ****** ****** *) extern fun formula_quant ( knd: int , syms: Z3_symlst , s2ts: Z3_sortlst , s2ps: formlst, s2e_body: form ) : form // end-of-function (* ****** ****** *) implement formula_quant ( knd, syms, s2ts, s2ps, s2e_body ) = let // val npat = 0 val ndec = list_vt_length (syms) // fun auxtylst_free ( ctx: !Z3_context, s2ts: Z3_sortlst ) : void = ( // case+ s2ts of | ~list_vt_nil() => () | ~list_vt_cons(s2t, s2ts) => (Z3_sort_dec_ref(ctx, s2t); auxtylst_free(ctx, s2ts)) // end of [list_vt_cons] // ) (* end of [auxtylst_free] *) // fun auxtylst_init ( ctx: !Z3_context, s2ts: !Z3_sortlst, pz: ptr ) : void = ( // case+ s2ts of | list_vt_nil() => () | list_vt_cons(s2t, s2ts) => let val pz = ptr_pred(pz) val () = $UN.ptr0_set(pz, Z3_sort_inc_ref(ctx, s2t)) // end of [val] in auxtylst_init(ctx, s2ts, pz) end // end of [list_vt_cons] // ) (* end of [auxtylst_init] *) // val ( pf_s2ts2 , fpf_s2ts2 | p_s2ts2 ) = array_ptr_alloc(i2sz(ndec)) val ( pf_syms2 , fpf_syms2 | p_syms2 ) = array_ptr_alloc(i2sz(ndec)) // val () = array_initize_rlist_vt(!p_syms2, ndec, syms) // // val (fpf | ctx) = the_Z3_context_vget() val ((*initized*)) = auxtylst_init(ctx, s2ts, ptr_add(p_s2ts2, ndec)) // val s2e_body = ( // if knd > 0 then formula_impl_list1(s2ps, s2e_body) else formula_conj_list1(s2ps, s2e_body) // ) : form // end of [val] // prval [n:int] EQINT() = eqint_make_gint(ndec) // val ( pf2, fpf2 | p2 ) = $UN.ptr0_vtake{array(Z3_sort,n)}(p_s2ts2) // val s2e0 = Z3_mk_quantifier_nwp (ctx, knd > 0, ndec, !p2, !p_syms2, s2e_body) // prval () = fpf2(pf2) // val () = array_ptr_free(pf_s2ts2, fpf_s2ts2 | p_s2ts2) val () = array_ptr_free(pf_syms2, fpf_syms2 | p_syms2) // val () = Z3_dec_ref(ctx, s2e_body) // val () = auxtylst_free(ctx, s2ts) // prval ((*void*)) = fpf(ctx) // in $UN.castvwtp0{form}(s2e0) end // end of [formula_quant] (* ****** ****** *) fun aux_quant ( knd: int , env: !smtenv , s2vs: s2varlst, s2ps: s2explst, s2e_body: s2exp ) : form = ( case+ s2vs of // | list_nil() => let val s2ps = formulas_make_s2explst (env, s2ps) val s2e_body = formula_make_s2exp (env, s2e_body) in if knd > 0 then formula_impl_list1(s2ps, s2e_body) else formula_conj_list1(s2ps, s2e_body) // end of [if] end // end of [list_nil()] // | list_cons _ => aux_quant2(knd, env, s2vs, s2ps, s2e_body) ) (* end of [aux_quant] *) and aux_quant2 ( knd: int , env: !smtenv , s2vs: s2varlst, s2ps: s2explst, s2e_body: s2exp ) : form = let // fun auxlst1 ( ctx: !Z3_context, s2vs: s2varlst ) : Z3_symlst = ( // case+ s2vs of | list_nil ((*void*)) => list_vt_nil() // end of [list_nil] | list_cons (s2v, s2vs) => let val sym = Z3_mk_s2var_symbol(ctx, s2v) // end of [val] in list_vt_cons(sym, auxlst1(ctx, s2vs)) end // end of [list_vt_cons] // ) (* end of [auxlst1] *) // fun auxlst2 ( ctx: !Z3_context , s2vs: s2varlst, index: intGte(0) ) : Z3_sortlst = ( // case+ s2vs of | list_nil() => list_vt_nil() | list_cons (s2v, s2vs) => let val s2t = sort_make_s2rt(s2v.srt()) // end of [val] val s2t = $UN.castvwtp0{Z3_sort}(s2t) // end of [val] val x0 = Z3_mk_bound(ctx, index, s2t) val () = s2var_push_payload(s2v, $UN.castvwtp0{form}(x0)) in list_vt_cons(s2t, auxlst2(ctx, s2vs, index+1)) end // end of [list_vt_cons] // ) (* end of [auxlst2] *) // val (fpf | ctx) = the_Z3_context_vget() // val syms = auxlst1 (ctx, s2vs) val s2ts = auxlst2 (ctx, s2vs, 0(*index*)) // prval ((*void*)) = fpf(ctx) // val s2ps = formulas_make_s2explst (env, s2ps) val s2e_body = formula_make_s2exp (env, s2e_body) // val ((*void*)) = list_foreach_fun ( s2vs , lam s2v = formula_decref(s2var_pop_payload(s2v)) ) (* end of [val] *) // in formula_quant(knd, syms, s2ts, s2ps, s2e_body) end // end of [aux_quant2] fun aux_S2Euni ( env: !smtenv, s2e0: s2exp ) : form = let // val s2t0 = s2e0.s2exp_srt // (* val () = println! ("aux_S2Euni: s2t0 = ", s2t0) *) // val- S2Euni (s2vs, s2ps, s2e) = s2e0.s2exp_node // in // case+ s2t0 of // | S2RTprop() => aux_quant(1(*uni*), env, s2vs, s2ps, s2e) // end of [S2RTprop] // | _(*non-prop*) => formula_error_s2exp(s2e0) // end // end of [aux_S2Euni] fun aux_S2Eexi ( env: !smtenv, s2e0: s2exp ) : form = let // val s2t0 = s2e0.s2exp_srt // (* val () = println! ("aux_S2Eexi: s2t0 = ", s2t0) *) // val- S2Eexi (s2vs, s2ps, s2e) = s2e0.s2exp_node // in // case+ s2t0 of // | S2RTprop() => aux_quant(0(*knd*), env, s2vs, s2ps, s2e) // end of [S2RTprop] // | _(*non-prop*) => formula_error_s2exp(s2e0) // end // end of [aux_S2Eexi] (* ****** ****** *) in (* in-of-local *) implement formula_make_s2exp (env, s2e0) = let // (* val () = println! ("formula_make_s2exp: s2e0 = ", s2e0) *) // in // case+ s2e0.s2exp_node of // case+ // | S2Eint(i) => formula_int(i) | S2Eintinf(rep) => formula_intrep(rep) // | S2Ecst _ => aux_S2Ecst(env, s2e0) | S2Evar _ => aux_S2Evar(env, s2e0) // | S2EVar _ => aux_S2EVar(env, s2e0) // | S2Eeqeq _ => aux_S2Eeqeq(env, s2e0) // | S2Eapp _ => aux_S2Eapp (env, s2e0) // | S2Emetdec _ => aux_S2Emetdec (env, s2e0) // | S2Etop _=> aux_S2Etop (env, s2e0) // | S2Einvar _ => aux_S2Einvar (env, s2e0) // | S2Esizeof _ => aux_S2Esizeof (env, s2e0) // | S2Efun _ => aux_S2Efun (env, s2e0) // | S2Euni _ => aux_S2Euni (env, s2e0) | S2Eexi _ => aux_S2Eexi (env, s2e0) // | S2Etyrec _ => aux_S2Etyrec (env, s2e0) // | _ (*unrecognized*) => formula_error(s2e0) // end // end of [formula_make_s2exp] end // end of [local] (* ****** ****** *) implement formulas_make_s2explst (env, s2es) = ( // case+ s2es of | list_nil ((*void*)) => list_vt_nil() | list_cons (s2e, s2es) => let val s2e = formula_make_s2exp(env, s2e) val s2es = formulas_make_s2explst(env, s2es) in list_vt_cons(s2e, s2es) end // end of [list_cons] // ) (* end of [formulas_make_s2explst] *) (* ****** ****** *) implement formulas_make_labs2explst (env, ls2es) = ( // case+ ls2es of | list_nil ((*void*)) => list_vt_nil() | list_cons (ls2e, ls2es) => let val+SLABELED(l, s2e) = ls2e val s2e = formula_make_s2exp(env, s2e) val s2es = formulas_make_labs2explst(env, ls2es) in list_vt_cons(s2e, s2es) end // end of [list_cons] // ) (* end of [formulas_make_s2explst] *) (* ****** ****** *) (* end of [patsolve_z3_solving_form.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/SOLVING/patsolve_z3_solving_ctx.dats0000644000175000017500000000212313431250607030571 0ustar brandonbrandon(* ## ## ATS-extsolve-z3: ## Solving ATS-constraints with Z3 ## *) (* ****** ****** *) // #ifdef PATSOLVE_Z3_SOLVING #then #else #include "./myheader.hats" #endif // ifdef(PATSOLVE_Z3_SOLVING) // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) extern fun the_Z3_context_vget ( // argumentless ) : ( Z3_context - void | Z3_context ) = "ext#patsolve_the_Z3_context_vget" (* ****** ****** *) local // var the_context : Z3_context // val config = Z3_mk_config () (* val config_ = $UN.castvwtp1{ptr}(config) *) // val ((*void*)) = ( the_context := Z3_mk_context_rc (config) // the_context (* the_context := $extfcall(Z3_context, "Z3_mk_context", config_) *) ) (* end of [val] *) // val ((*void*)) = Z3_del_config (config) // in // implement the_Z3_context_vget ((*void*)) = let // prval fpf = __assert() where { extern praxi __assert(): Z3_context - void } // in (fpf | $UN.ptr0_get(addr@the_context)) end // end of [the_Z3_context_vget] end // end of [local] (* ****** ****** *) (* end of [patsolve_z3_solving_ctx.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/SOLVING/patsolve_z3_solving_smtenv.dats0000644000175000017500000001530113431250607031311 0ustar brandonbrandon(* ## ## ATS-extsolve-z3: ## Solving ATS-constraints with Z3 ## *) (* ****** ****** *) // #ifdef PATSOLVE_Z3_SOLVING #then #else #include "./myheader.hats" #endif // ifdef(PATSOLVE_Z3_SOLVING) // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // #staload "./patsolve_z3_solving_ctx.dats" // (* ****** ****** *) implement s2var_pop_payload (s2v0) = ast where { // val asts = s2var_get_payload(s2v0) val asts = $UN.castvwtp0{List1_vt(form)}(asts) // val+~list_vt_cons(ast, asts) = asts // val ((*void*)) = s2var_set_payload(s2v0, $UN.castvwtp0{ptr}(asts)) // } (* end of [s2var_pop_payload] *) (* ****** ****** *) implement s2var_top_payload (s2v0) = let // val asts = s2var_get_payload(s2v0) val asts = $UN.castvwtp0{List1_vt(Z3_ast)}(asts) // val+list_vt_cons(ast, _) = asts // val ( fpf | ctx ) = the_Z3_context_vget() // val ast2 = Z3_inc_ref(ctx, ast) // prval ((*void*)) = fpf(ctx) // prval ((*void*)) = $UN.cast2void(asts) // in $UN.castvwtp0{form}(ast2) end // end of [s2var_top_payload] (* ****** ****** *) implement s2var_push_payload (s2v0, ast) = let // val asts = s2var_get_payload(s2v0) val asts = list_vt_cons(ast, $UN.castvwtp0{formlst}(asts)) // in s2var_set_payload(s2v0, $UN.castvwtp0{ptr}(asts)) end (* end of [s2var_push_payload] *) (* ****** ****** *) datavtype smtenv = SMTENV of (smtenv_struct) where smtenv_struct = @{ // smtenv_solver= Z3_solver , smtenv_s2varlst = s2varlst_vt , smtenv_s2varlstlst = List0_vt(s2varlst_vt) // } (* end of [smtenv_struct] *) (* ****** ****** *) // extern fun smtenv_s2varlst_vt_free(s2varlst_vt): void extern fun smtenv_s2varlstlst_vt_free(List0_vt(s2varlst_vt)): void // (* ****** ****** *) implement smtenv_s2varlst_vt_free (s2vs) = loop(s2vs) where { // fun loop ( s2vs: s2varlst_vt ) : void = ( // case+ s2vs of | ~list_vt_nil ((*void*)) => () | ~list_vt_cons (s2v, s2vs) => let // val ast = s2var_pop_payload(s2v) val ast = $UN.castvwtp0{Z3_ast}(ast) val (fpf | ctx) = the_Z3_context_vget() val ((*freed*)) = Z3_dec_ref(ctx, ast) prval ((*void*)) = fpf(ctx) in loop(s2vs) end // end of [list_vt_cons] // ) (* end of [loop] *) // } (* end of [smtenv_s2varlst_vt_free] *) (* ****** ****** *) implement smtenv_s2varlstlst_vt_free (xss) = ( case+ xss of | ~list_vt_nil() => () | ~list_vt_cons(xs, xss) => ( smtenv_s2varlst_vt_free(xs); smtenv_s2varlstlst_vt_free(xss) ) ) (* smtenv_s2varlstlst_vt_free *) (* ****** ****** *) assume smtenv_vtype = smtenv assume smtenv_push_v = unit_v (* ****** ****** *) implement smtenv_create () = env where { // val env = SMTENV(_) val+SMTENV(env_s) = env // val (fpf | ctx) = the_Z3_context_vget() // val solver = Z3_mk_solver(ctx) // prval ((*void*)) = fpf(ctx) // val () = env_s.smtenv_solver := solver val () = env_s.smtenv_s2varlst := nil_vt() val () = env_s.smtenv_s2varlstlst := nil_vt() // prval () = fold@(env) // } (* end of [smtenv_create] *) (* ****** ****** *) implement smtenv_destroy (env) = let // val+~SMTENV(env_s) = env // val (fpf | ctx) = the_Z3_context_vget() // val () = Z3_solver_dec_ref(ctx, env_s.smtenv_solver) // prval ((*void*)) = fpf(ctx) // val () = smtenv_s2varlst_vt_free(env_s.smtenv_s2varlst) val () = smtenv_s2varlstlst_vt_free(env_s.smtenv_s2varlstlst) // in // nothing end // end of [smtenv_destroy] (* ****** ****** *) implement smtenv_pop (pf | env) = let // prval unit_v() = pf // val+@SMTENV(env_s) = env // val (fpf | ctx) = the_Z3_context_vget() // val ((*void*)) = Z3_solver_pop (ctx, env_s.smtenv_solver, 1u) // prval ((*void*)) = fpf(ctx) // val s2vs = env_s.smtenv_s2varlst val ((*void*)) = smtenv_s2varlst_vt_free(s2vs) val-~list_vt_cons(s2vs, s2vss) = env_s.smtenv_s2varlstlst // val ((*void*)) = env_s.smtenv_s2varlst := s2vs val ((*void*)) = env_s.smtenv_s2varlstlst := s2vss // prval ((*folded*)) = fold@(env) // in // nothing end // end of [smtenv_pop] (* ****** ****** *) implement smtenv_push (env) = let // val+@SMTENV(env_s) = env // val (fpf | ctx) = the_Z3_context_vget() // val ((*void*)) = Z3_solver_push (ctx, env_s.smtenv_solver) // prval ((*void*)) = fpf(ctx) // val s2vs = env_s.smtenv_s2varlst val s2vss = env_s.smtenv_s2varlstlst // val ((*void*)) = env_s.smtenv_s2varlst := nil_vt() val ((*void*)) = env_s.smtenv_s2varlstlst := cons_vt(s2vs, s2vss) // prval ((*folded*)) = fold@(env) // in (unit_v() | ()) end // end of [smtenv_push] (* ****** ****** *) implement smtenv_add_s2var (env, s2v0) = let // val+@SMTENV(env_s) = env // val s2vs = env_s.smtenv_s2varlst val ((*void*)) = env_s.smtenv_s2varlst := cons_vt(s2v0, s2vs) // prval ((*void*)) = fold@(env) // val ast0 = formula_make_s2var_fresh(env, s2v0) // in s2var_push_payload(s2v0, ast0) end // end of [smtenv_add_s2var] (* ****** ****** *) implement smtenv_add_s2exp (env, s2p0) = let // val s2p0 = formula_make_s2exp(env, s2p0) // val s2p0 = $UN.castvwtp0{Z3_ast}(s2p0) // val+@SMTENV(env_s) = env // val (fpf | ctx) = the_Z3_context_vget() // val ((*void*)) = Z3_solver_assert(ctx, env_s.smtenv_solver, s2p0) // prval ((*void*)) = fpf(ctx) // prval ((*void*)) = fold@(env) // val (fpf | ctx) = the_Z3_context_vget() // val () = Z3_dec_ref(ctx, s2p0) // prval ((*void*)) = fpf(ctx) // in // nothing end // end of [smtenv_add_s2exp] (* ****** ****** *) implement smtenv_add_h3ypo (env, h3p0) = let // (* val () = fprintln! ( stdout_ref , "smtenv_add_h3ypo: h3p0 = ", h3p0 ) (* end of [val] *) *) // in // case+ h3p0.h3ypo_node of (* case+ *) | H3YPOprop s2p => smtenv_add_s2exp(env, s2p) // end of [H3YPOprop] // | H3YPObind (s2v1, s2e2) => let in if s2var_is_impred(s2v1) then () else let val s2p = s2exp_eqeq (s2exp_var(s2v1), s2e2) // end of [val] in smtenv_add_s2exp(env, s2p) end // end of [else] end // end of [H3YPObind] // | H3YPOeqeq (s2e1, s2e2) => ( smtenv_add_s2exp(env, s2exp_eqeq(s2e1, s2e2)) ) (* end of [H3YPOeqeq] *) // end // end of [smtenv_add_h3ypo] (* ****** ****** *) implement smtenv_solve_formula (env, s2p0) = let // val+@SMTENV(env_s) = env // val (fpf | ctx) = the_Z3_context_vget() // val () = Z3_solver_push (ctx, env_s.smtenv_solver) // val s2p1 = formula_not(s2p0) val s2p1 = $UN.castvwtp0{Z3_ast}(s2p1) // val () = Z3_solver_assert (ctx, env_s.smtenv_solver, s2p1) // val ans = Z3_solver_check(ctx, env_s.smtenv_solver) // val ((*freed*)) = Z3_dec_ref(ctx, s2p1) // val () = Z3_solver_pop (ctx, env_s.smtenv_solver, 1u) // prval ((*void*)) = fpf(ctx) // prval ((*void*)) = fold@(env) // in // case+ 0 of | _ when ans = Z3_L_TRUE => 1 | _ when ans = Z3_L_FALSE => ~1 | _ (*when ans = Z3_L_UNDEF*) => 0 // end (* end of [smtenv_solve_formula] *) (* ****** ****** *) (* end of [patsolve_z3_solving_smtenv.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/SOLVING/patsolve_z3_solving_sort.dats0000644000175000017500000000663013431250607030771 0ustar brandonbrandon(* ## ## ATS-extsolve-z3: ## Solving ATS-constraints with Z3 ## *) (* ****** ****** *) // #ifdef PATSOLVE_Z3_SOLVING #then #else #include "./myheader.hats" #endif // ifdef(PATSOLVE_Z3_SOLVING) // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // #staload "./patsolve_z3_solving_ctx.dats" // (* ****** ****** *) assume sort_vtype = Z3_sort (* ****** ****** *) implement sort_decref (ty) = () where { val (fpf | ctx) = the_Z3_context_vget() // end of [val] val () = Z3_sort_dec_ref(ctx, ty) prval ((*void*)) = fpf(ctx) } (* ****** ****** *) implement sort_incref (ty) = ty2 where { // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val ty2 = Z3_sort_inc_ref(ctx, ty) // prval ((*void*)) = fpf(ctx) // } (* end of [sort_incref] *) (* ****** ****** *) // implement sort_int () = res where { // (* val () = println! ("sort_int") *) // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_int_sort (ctx) // prval ((*void*)) = fpf (ctx) // } (* end of [sort_int] *) // (* ****** ****** *) // implement sort_bool () = res where { // (* val () = println! ("sort_bool") *) // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_bool_sort (ctx) prval ((*void*)) = fpf (ctx) // } (* end of [sort_bool] *) // (* ****** ****** *) // implement sort_real () = res where { // (* val () = println! ("sort_real") *) // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val res = Z3_mk_real_sort (ctx) // prval ((*void*)) = fpf (ctx) // } (* end of [sort_real] *) // (* ****** ****** *) implement sort_mk_cls () = sort_mk_abstract("cls") implement sort_mk_eff () = sort_mk_abstract("eff") (* ****** ****** *) // implement sort_mk_type () = sort_mk_abstract("type") implement sort_mk_vtype () = sort_mk_abstract("type") // implement sort_mk_t0ype () = sort_mk_abstract("type") implement sort_mk_vt0ype () = sort_mk_abstract("type") // implement sort_mk_prop () = sort_bool() implement sort_mk_view () = sort_bool() // implement sort_mk_tkind () = sort_mk_abstract("tkind") // (* ****** ****** *) // (* implement sort_mk_abstract(name) = sort_int() *) // implement sort_mk_abstract (name) = res where { // val (fpf | ctx) = the_Z3_context_vget() // end of [val] val sym = Z3_mk_string_symbol (ctx, name) val res = Z3_mk_uninterpreted_sort (ctx, sym) prval ((*void*)) = fpf (ctx) // } (* end of [sort_mk_abstract] *) // (* ****** ****** *) implement sort_error (s2t0) = res where { // val () = prerrln! ("sort_error: s2t0 = ", s2t0) // val () = assertloc(false) val res = sort_error(s2t0) // } (* end of [sort_error] *) (* ****** ****** *) implement sort_make_s2rt(s2t0) = let // (* val () = println! ("sort_make: s2t0 = ", s2t0) *) // in // case+ s2t0 of // | S2RTint() => sort_int() | S2RTaddr() => sort_int() | S2RTbool() => sort_bool() // | S2RTreal() => sort_real() (* | S2RTfloat() => sort_float() | S2RTstring() => sort_string() *) // | S2RTcls() => sort_mk_cls() | S2RTeff() => sort_mk_eff() // | S2RTtype() => sort_mk_type() | S2RTvtype() => sort_mk_vtype() | S2RTt0ype() => sort_mk_t0ype() | S2RTvt0ype() => sort_mk_vt0ype() // | S2RTprop() => sort_mk_prop() | S2RTview() => sort_mk_view() // | S2RTtkind() => sort_mk_tkind() // | S2RTnamed(sym) => sort_mk_abstract(sym.name()) // end of [S2RTnamed] // | _(*rest-of-S2RT*) => sort_error(s2t0) // end (* end of [sort_make_s2rt] *) (* ****** ****** *) (* end of [patsolve_z3_solving_sort.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/SOLVING/myheader.hats0000644000175000017500000000075313431250607025512 0ustar brandonbrandon(* ## ## ATS-extsolve-z3: ## Solving ATS-constraints with Z3 ## *) (* ****** ****** *) // #define SMT_LIBZ3_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-smt-libz3" // #define PATSOLVE_targetloc "./../../ATS-extsolve" // (* ****** ****** *) // #staload "{$SMT_LIBZ3}/SATS/z3.sats" // (* ****** ****** *) // #staload "{$PATSOLVE}/SATS/patsolve_cnstrnt.sats" // (* ****** ****** *) // #staload "./../../SATS/patsolve_z3_solving.sats" // (* ****** ****** *) (* end of [myheader.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/patsolve_z3_solving.dats0000644000175000017500000002024013431250607026572 0ustar brandonbrandon(* ## ## ATS-extsolve-z3: ## Solving ATS-constraints with Z3 ## *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2015 *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #define PATSOLVE_targetloc "./../ATS-extsolve" // #define SMT_LIBZ3_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-smt-libz3" // (* ****** ****** *) // #staload "{$SMT_LIBZ3}/SATS/z3.sats" // (* ****** ****** *) // #staload "{$PATSOLVE}/SATS/patsolve_cnstrnt.sats" #staload "{$PATSOLVE}/SATS/patsolve_parsing.sats" // (* ****** ****** *) // #staload "./../SATS/patsolve_z3_solving.sats" // (* ****** ****** *) // implement fprint_val = fprint_s2cst implement fprint_val = fprint_s2var implement fprint_val = fprint_s2Var implement fprint_val = fprint_s2exp implement fprint_val = fprint_s3itm // (* ****** ****** *) extern fun c3nstr_solve_main ( env: !smtenv, c3t: c3nstr, unsolved : &uint >> _, nerr: &int >> _ ) : int(*status*) // end of [c3nstr_solve_main] (* ****** ****** *) // extern fun c3nstr_solve_errmsg (c3t: c3nstr, unsolved: uint): int // implement c3nstr_solve_errmsg (c3t, unsolved) = 0 where { // val () = ( // if unsolved = 0u then let val out = stderr_ref val loc = c3t.c3nstr_loc val c3tk = c3t.c3nstr_kind in // case+ c3tk of | C3TKmain() => ( fprintln! (out, "UnsolvedConstraint(main)@", loc, ":", c3t) ) | C3TKtermet_isnat() => ( fprintln! (out, "UnsolvedConstraint(termet_isnat)@", loc, ":", c3t) ) | C3TKtermet_isdec() => ( fprintln! (out, "UnsolvedConstraint(termet_isdec)@", loc, ":", c3t) ) | _(*rest-of-C3TK*) => ( fprintln! (out, "UnsolvedConstraint(unclassified)@", loc, ":", c3t) ) // end // end of [then] // ) (* end of [val] *) // } (* end of [c3nstr_solve_errmsg] *) // (* ****** ****** *) extern fun c3nstr_solve_prop ( loc0: loc_t , env: !smtenv, s2p: s2exp, nerr: &int >> _ ) : int (*status*) // end-of-function (* ****** ****** *) extern fun c3nstr_solve_itmlst ( loc0: loc_t, env: !smtenv , s3is: s3itmlst, unsolved: &uint >> _, nerr: &int >> _ ) : int(*status*) // end-of-function (* ****** ****** *) extern fun c3nstr_solve_itmlst_cnstr ( loc0: loc_t, env: !smtenv , s3is: s3itmlst, c3t: c3nstr, unsolved: &uint >> _, nerr: &int >> _ ) : int(*status*) // end-of-function (* ****** ****** *) extern fun c3nstr_solve_itmlst_disj ( loc0: loc_t, env: !smtenv , s3is: s3itmlst, s3iss: s3itmlstlst, unsolved: &uint >> _, nerr: &int >> _ ) : int(*status*) // end-of-function (* ****** ****** *) extern fun c3nstr_solve_solverify ( loc0: loc_t , env: !smtenv, s2e_prop: s2exp, nerr: &int >> _ ) : int (*status*) // end-of-function (* ****** ****** *) implement c3nstr_solve_prop ( loc0, env, s2p, nerr ) = let // val s2p = formula_make_s2exp (env, s2p) // // in smtenv_solve_formula (env, s2p) end // end of [c3nstr_solve_prop] (* ****** ****** *) implement c3nstr_solve_itmlst ( loc0, env, s3is, unsolved, nerr ) = let // (* val () = println! ("c3str_solve_itmlst: s3is = ", s3is) *) // in // case+ s3is of | list_nil ((*void*)) => ~1(*solved*) // end of [list_nil] | list_cons (s3i, s3is) => ( case+ s3i of | S3ITMsvar(s2v) => let val () = smtenv_add_s2var(env, s2v) in c3nstr_solve_itmlst(loc0, env, s3is, unsolved, nerr) end // end of [S3ITMsvar] | S3ITMhypo(h3p) => let val () = smtenv_add_h3ypo(env, h3p) in c3nstr_solve_itmlst(loc0, env, s3is, unsolved, nerr) end // end of [S3ITMhypo] | S3ITMsVar(s2V) => c3nstr_solve_itmlst(loc0, env, s3is, unsolved, nerr) | S3ITMcnstr(c3t) => c3nstr_solve_itmlst_cnstr(loc0, env, s3is, c3t, unsolved, nerr) | S3ITMcnstr_ref (loc_ref, opt) => ( case+ opt of | None() => ~1(*solved*) | Some(c3t) => c3nstr_solve_itmlst_cnstr(loc_ref, env, s3is, c3t, unsolved, nerr) ) (* end of [S3ITMcnstr] *) | S3ITMdisj(s3iss_disj) => ( c3nstr_solve_itmlst_disj(loc0, env, s3is, s3iss_disj, unsolved, nerr) ) (* end of [S3ITMdisj] *) | S3ITMsolassert (s2e_prop) => let val () = smtenv_add_s2exp(env, s2e_prop) in c3nstr_solve_itmlst(loc0, env, s3is, unsolved, nerr) end // end of [S3ITMsolassert] ) // end of [list_cons] // end // end of [c3nstr_solve_itmlst] (* ****** ****** *) implement c3nstr_solve_itmlst_cnstr ( loc0, env, s3is, c3t, unsolved, nerr ) = let val (pf|()) = smtenv_push (env) val ans1 = c3nstr_solve_main (env, c3t, unsolved, nerr) // end of [val] val ((*void*)) = smtenv_pop (pf | env) val ans2 = c3nstr_solve_itmlst (loc0, env, s3is, unsolved, nerr) // end of [val] in if ans1 >= 0 then 0(*unsolved*) else ans2 end // end of [c3nstr_solve_itmlst_cnstr] (* ****** ****** *) implement c3nstr_solve_itmlst_disj ( loc0, env , s3is0, s3iss(*disj*), unsolved, nerr ) = let (* val () = ( println! ("c3nstr_solve_itmlst_disj: s3iss = ...") ) (* end of [val] *) *) in // case+ s3iss of | list_nil ((*void*)) => ~1 (*solved*) // end of [list_nil] | list_cons (s3is, s3iss) => let val (pf|()) = smtenv_push (env) val s3is1 = list_append (s3is, s3is0) val ans = c3nstr_solve_itmlst (loc0, env, s3is1, unsolved, nerr) val ((*void*)) = smtenv_pop (pf | env) in c3nstr_solve_itmlst_disj (loc0, env, s3is0, s3iss, unsolved, nerr) end // end of [list_cons] // end // end of [c3nstr_solve_itmlst_disj] (* ****** ****** *) implement c3nstr_solve_solverify ( loc0, env, s2e_prop, nerr ) = let // (* val () = println! ("c3nstr_solve_solverify: s2e_prop = ", s2e_prop) *) // val s2e_prop = formula_make_s2exp (env, s2e_prop) // in smtenv_solve_formula (env, s2e_prop) end // end of [c3nstr_solve_solverify] (* ****** ****** *) implement c3nstr_solve_main ( env, c3t, unsolved, nerr ) = let // val loc0 = c3t.c3nstr_loc // var status: int = ( // // ~1: solved; 0: unsolved // case+ c3t.c3nstr_node of | C3NSTRprop(s2p) => c3nstr_solve_prop(loc0, env, s2p, nerr) // end of [C3NSTRprop] | C3NSTRitmlst(s3is) => c3nstr_solve_itmlst(loc0, env, s3is, unsolved, nerr) // end of [C3NSTRitmlst] | C3NSTRsolverify(s2e_prop) => c3nstr_solve_solverify(loc0, env, s2e_prop, nerr) // ) : int // end of [val] // val () = ( // if status >= 0 then { val iswarn = c3nstr_solve_errmsg (c3t, unsolved) // end of [val] val () = if iswarn > 0 then (status := ~1) } // end of [then] // ) (* end of [val] *) // val () = if status >= 0 then (unsolved := unsolved + 1u) // in status (* ~1/0: solved/unsolved *) end // end of [c3nstr_solve_main] (* ****** ****** *) implement c3nstr_z3_solve (c3t0) = let // val env = smtenv_create() // var unsolved: uint = 0u and err: int = 0 val _(*ans*) = c3nstr_solve_main (env, c3t0, unsolved, err) // val ((*void*)) = smtenv_destroy (env) in // case+ 0 of | _ when unsolved = 0u => let val () = ( prerrln! "typechecking is finished successfully!" ) (* end of [val] *) in // nothing end // end of [unsolved = 0] | _ (* unsolved > 0 *) => { val () = prerr "typechecking has failed" val () = if unsolved <= 1u then prerr ": there is one unsolved constraint" val () = if unsolved >= 2u then prerr ": there are some unsolved constraints" val () = ( prerrln! ": please inspect the above reported error message(s) for information." ) (* end of [val] *) } (* end of [_ when unsolved > 0] *) // end // end of [c3nstr_z3_solve] (* ****** ****** *) #define PATSOLVE_Z3_SOLVING 1 (* ****** ****** *) local // #include "./SOLVING/patsolve_z3_solving_ctx.dats" // in // nothing end // end of [local] (* ****** ****** *) local // #include "./SOLVING/patsolve_z3_solving_sort.dats" // in // nothing end // end of [local] (* ****** ****** *) local // #include "./SOLVING/patsolve_z3_solving_form.dats" // in // nothing end // end of [local] (* ****** ****** *) local // #include "./SOLVING/patsolve_z3_solving_smtenv.dats" // in // nothing end // end of [local] (* ****** ****** *) local // #include "./SOLVING/patsolve_z3_solving_interp.dats" // in // nothing end // end of [local] (* ****** ****** *) (* end of [patsolve_z3_solving.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/.keeper0000644000175000017500000000000013431250607023147 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/patsolve_z3_commarg.dats0000644000175000017500000001774113431250607026552 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2015 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDIO = "libats/libc/SATS/stdio.sats" // (* ****** ****** *) // #define PATSOLVE_targetloc "./../ATS-extsolve" // #staload "{$PATSOLVE}/SATS/patsolve_cnstrnt.sats" #staload "{$PATSOLVE}/SATS/patsolve_parsing.sats" // (* ****** ****** *) #staload "./../SATS/patsolve_z3_commarg.sats" #staload "./../SATS/patsolve_z3_solving.sats" (* ****** ****** *) implement fprint_commarg(out, ca) = ( // case+ ca of // | CAhelp(str) => fprint! (out, "CAhelp(", str, ")") // | CAgitem(str) => fprint! (out, "CAgitem(", str, ")") // | CAinput(str) => fprint! (out, "CAinput(", str, ")") // | CAoutput(str) => fprint! (out, "CAoutput(", str, ")") // | CAscript(str) => fprint! (out, "CAscript(", str, ")") // | CAargend((*void*)) => fprint! (out, "CAargend(", ")") // ) (* end of [fprint_commarg] *) (* ****** ****** *) fun{ } argv_getopt_at {n:int}{i:nat} ( n: int n, argv: !argv(n), i: int i ) : stropt = ( // if i < n then stropt_some (argv[i]) else stropt_none () // end of [if] // ) (* end of [argv_getopt_at] *) (* ****** ****** *) implement patsolve_z3_cmdline (argc, argv) = let // vtypedef res_vt = commarglst_vt // fun aux {n:int} {i:nat | i <= n} ( argc: int n , argv: !argv(n) , i: int i, res0: res_vt ) : res_vt = let in // if i < argc then let // val arg = argv[i] // in // case+ arg of // | "-h" => let val ca = CAhelp(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of ... | "--help" => let val ca = CAhelp(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of ... // | "-i" => let val ca = CAinput(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... | "--input" => let val ca = CAinput(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux2(argc, argv, i+1, res0) end // end of ... // | _ (*rest*) => let val ca = CAgitem(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of [...] // end // end of [then] else res0 // end of [else] // end // end of [aux] // and aux2 {n:int} {i:nat | i <= n} ( argc: int n , argv: !argv(n) , i: int i, res0: res_vt ) : res_vt = let in // if i < argc then let // val arg = argv[i] // val ca = CAgitem(arg) val res0 = cons_vt(ca, res0) // end of [val] in aux(argc, argv, i+1, res0) end // end of [then] else res0 // end of [else] // end // end of [aux2] // val args = aux(argc, argv, 0, nil_vt) // in // list_vt_reverse(list_vt_cons(CAargend(), args)) // end // end of [patsolve_z3_cmdline] (* ****** ****** *) // extern fun patsolve_z3_help(): void extern fun patsolve_z3_input(): void extern fun patsolve_z3_gitem(string): void extern fun patsolve_z3_input_arg(string): void // extern fun patsolve_z3_argend((*void*)): void // extern fun patsolve_z3_commarglst_finalize(): void // (* ****** ****** *) typedef state_struct = @{ // nerr= int // , input= int // , ninput= int // , fopen_inp= int , inpfil_ref= FILEref // } (* end of [state_struct] *) (* ****** ****** *) local // var the_state: state_struct? // val () = the_state.nerr := 0 // val () = the_state.input := 0 val () = the_state.ninput := 0 // val () = the_state.fopen_inp := 0 val () = the_state.inpfil_ref := stdin_ref // in (* in-of-local *) // val the_state : ref(state_struct) = ref_make_viewptr(view@the_state | addr@the_state) // end // end of [local] (* ****** ****** *) fun process_arg (x: commarg): void = let // (* val () = fprintln! ( stdout_ref , "patsolve_z3_commarglst: process_arg: x = ", x ) (* end of [val] *) *) // in // case+ x of // | CAhelp _ => patsolve_z3_help () // | CAinput _ => patsolve_z3_input () // | CAgitem(str) => patsolve_z3_gitem(str) // (* | CAoutput(str) => fprint! (out, "CAoutput(", str, ")") | CAscript(str) => fprint! (out, "CAscript(", str, ")") *) | CAargend() => patsolve_z3_argend () // | _ (*rest-of-CA*) => () // end // end of [process_arg] (* ****** ****** *) implement patsolve_z3_commarglst (xs) = let (* val () = println! ("patsolve_z3_commarglst") *) in // case+ xs of | ~list_vt_cons (x, xs) => let val () = process_arg(x) in patsolve_z3_commarglst (xs) end // end of [list_vt_cons] // | ~list_vt_nil ((*void*)) => patsolve_z3_commarglst_finalize () // end of [list_vt_nil] // end // end of [patsolve_z3_commarglst] (* ****** ****** *) implement patsolve_z3_help() = let // val out = stdout_ref val cmdname = "patsolve_z3" // in // fprintln! (out, "Usage: ", cmdname, " ... \n"); fprintln! (out, "where a is of one of the following forms:\n"); // fprintln! (out, " -h (for printing out this help usage)"); fprintln! (out, " -i (input from )"); // fprintln! (out); // fprintln! (out, " --help (for printing out this help usage)"); // fprintln! (out, " --input (input from )"); // fprintln! (out); // end (* end of [patsolve_z3_help] *) (* ****** ****** *) implement patsolve_z3_input() = { // (* val () = prerrln! ("patsolve_z3_input: ...") *) // val () = !the_state.input := 1 // } (* end of [patsolve_z3_input] *) (* ****** ****** *) implement patsolve_z3_gitem(arg) = let (* // val () = prerrln! ( "patsolve_z3_gitem: arg = ", arg ) (* println! *) // *) macdef input() = (!the_state.input > 0) // in // case+ 0 of | _ when input() => { val () = patsolve_z3_input_arg(arg) val () = !the_state.ninput := !the_state.ninput+1 } (* _ when input() *) | _ (*unrecognized*) => () // end (* end of [patsolve_z3_gitem] *) (* ****** ****** *) local fun auxmain ( path: string ) : void = let // val opt = fileref_open_opt(path, file_mode_r) // in // case+ opt of | ~Some_vt(filr) => { // val n0 = !the_state.fopen_inp val () = !the_state.fopen_inp := 1 // val f0 = !the_state.inpfil_ref val () = if n0 > 0 then fileref_close(f0) val () = !the_state.inpfil_ref := filr // val c3t0 = parse_fileref_constraints(filr) // end of [val] // (* val () = fprint! ( stdout_ref , "patsolve_z3_input_arg: c3t0 =\n" ) (* end of [fprint] *) val () = fpprint_c3nstr(stdout_ref, c3t0) val () = fprint_newline (stdout_ref) *) // val ((*void*)) = c3nstr_z3_solve(c3t0) // } (* end of [Some_vt] *) // | ~None_vt((*void*)) => { // val n0 = !the_state.fopen_inp val () = !the_state.fopen_inp := 0 // val f0 = !the_state.inpfil_ref val () = if n0 > 0 then fileref_close(f0) val () = !the_state.inpfil_ref := stdin_ref // val () = prerrln! ("The file [", path, "] cannot be opened for read!") // end of [val] // } (* end of [None_vt] *) // end // end of [auxmain] in (* in-of-local *) implement patsolve_z3_input_arg (path) = ( // case+ path of | "-" => { val inp = stdin_ref val c3t0 = parse_fileref_constraints(inp) // end of [val] val ((*void*)) = c3nstr_z3_solve(c3t0) } | _(* ... *) => auxmain(path) // ) (* end of [patsolve_z3_input_arg] *) end // end of [local] (* ****** ****** *) implement patsolve_z3_argend ((*void*)) = let // macdef mytest() = if !the_state.input > 0 then !the_state.ninput = 0 else false // end of [mytest] (* end of [macdef] *) // in // case+ 0 of | _ when mytest() => { val inp = stdin_ref val c3t0 = parse_fileref_constraints(inp) val ((*void*)) = c3nstr_z3_solve(c3t0) } | _ (*rest*) => ((*ignored*)) // end (* end of [patsolve_z3_argend] *) (* ****** ****** *) implement patsolve_z3_commarglst_finalize ((*void*)) = { val n0 = !the_state.fopen_inp val f0 = !the_state.inpfil_ref val () = if n0 > 0 then fileref_close(f0) } (* end of [patsolve_z3_commarglst_finalize] *) (* ****** ****** *) (* end of [patsolve_z3_commarg.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/patsolve_z3_main.dats0000644000175000017500000000232413431250607026040 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2015 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload "./../SATS/patsolve_z3_commarg.sats" #staload "./../SATS/patsolve_z3_solving.sats" // (* ****** ****** *) // (* dynload "ATS-extsolve/DATS/patsolve_cnstrnt.dats" *) val () = patsolve_cnstrnt__dynload() where { extern fun patsolve_cnstrnt__dynload(): void = "ext#" } // (* ****** ****** *) // (* dynload "ATS-extsolve/DATS/patsolve_parsing.dats" *) val () = patsolve_parsing__dynload() where { extern fun patsolve_parsing__dynload(): void = "ext#" } // (* ****** ****** *) dynload "./patsolve_z3_commarg.dats" dynload "./patsolve_z3_solving.dats" (* ****** ****** *) implement main0 (argc, argv) = { // val () = println! ("Hello from [patsolve_z3]!") // val () = the_s2cinterp_initize() // val arglst = patsolve_z3_cmdline (argc, argv) // // HX: skipping argv[0] // val-~list_vt_cons(_, arglst) = arglst // val () = patsolve_z3_commarglst(arglst) // } (* end of [main] *) (* ****** ****** *) (* end of [patsolve_z3_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/DATS/patsolve_z3_mylib.dats0000644000175000017500000000121013431250607026221 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2015 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // #define LIBJSONC_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-libjson-c" // (* ****** ****** *) // #staload "{$LIBJSONC}/DATS/json.dats" // (* ****** ****** *) // local #include "{$LIBJSONC}/DATS/json_ML.dats" in (*nothing*) end // end of [local] // (* ****** ****** *) (* end of [patsolve_z3_mylib.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/Makefile0000644000175000017500000000430313431250607022612 0ustar brandonbrandon## ## ATS-extsolve-z3: ## Solving ATS-constraints with Z3 ## ###### ## ## Author: Hongwei Xi ## Authoremail: gmhwxiATgmailDOTcom ## ## Start time: May, 2015 ## ###### CC=gcc ###### ifdef \ PATSHOME PATSHOMEQ="$(PATSHOME)" else ifdef ATSHOME PATSHOMEQ="$(ATSHOME)" else PATSHOMEQ="/usr/local/lib/ats2-postiats" endif endif ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt ###### all:: ###### # CFLAGS := CFLAGS += -DATS_MEMALLOC_LIBC # CFLAGS2 := CFLAGS2 +=-DATS_MEMALLOC_LIBC CFLAGS2 +=\ -I${PATSHOMEQ}/contrib/atscntrb CFLAGS2 += \ $(shell pkg-config --cflags json-c) # ###### EXTRA_CFLAGS := ###### PATSCC2 = \ $(PATSCC) \ $(CFLAGS2) $(EXTRA_CFLAGS) ###### # LDFLAGS := LDFLAGS += \ $(shell pkg-config --libs json-c) # LDFLAGS +=-lz3 LDFLAGS +=-lgc # ###### INCLUDE := INCLUDE += -I$(PATSHOMEQ) INCLUDE += -I$(PATSHOMEQ)/ccomp/runtime ###### PATSOLVE=./ATS-extsolve ###### SOURCES_SATS= \ $(PATSOLVE)/SATS/patsolve_cnstrnt.sats \ $(PATSOLVE)/SATS/patsolve_parsing.sats \ ###### SOURCES_CATS= \ $(PATSOLVE)/CATS/patsolve_cnstrnt_dats.c \ $(PATSOLVE)/CATS/patsolve_parsing_dats.c \ ###### SOURCES_DATS := SOURCES_DATS += patsolve_z3_main.dats SOURCES_DATS += patsolve_z3_mylib.dats SOURCES_DATS += patsolve_z3_commarg.dats SOURCES_DATS += patsolve_z3_solving.dats ###### TARGETS_DATS_O = \ $(patsubst %.dats, %_dats.o, $(SOURCES_DATS)) ###### # all:: ; \ $(MAKE) -C ATS-extsolve DATS_C # all:: \ bin_patsolve_z3 bin_patsolve_z3: \ $(TARGETS_DATS_O); \ $(PATSCC2) -O2 -o bin/patsolve_z3 \ $(SOURCES_SATS) $(SOURCES_CATS) $(TARGETS_DATS_O) $(LDFLAGS) # cleanall:: ; $(RMF) bin/patsolve_z3 # ###### # npm:: all npm:: ; $(CPF) patsolve_z3_*_dats.c npm/CATS/. npm:: ; $(CPF) patsolve_parsing_sats.c npm/CATS/. npm:: ; $(CPF) patsolve_cnstrnt_sats.c npm/CATS/. # ###### %_dats.o: DATS/%.dats; $(PATSCC2) -c $< ###### testall:: all testall:: cleanall ###### CPF=cp -f RMF=rm -f MAKE=make ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### # cleanall:: clean # cleanall:: ; $(RMF) ./npm/CATS/patsolve_z3_*_dats.c cleanall:: ; $(RMF) ./npm/CATS/patsolve_parsing_sats.c cleanall:: ; $(RMF) ./npm/CATS/patsolve_cnstrnt_sats.c # ###### ## end of [Makefile] ## ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/.keeper0000644000175000017500000000000013431250607022414 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/SATS/0000755000175000017500000000000013431250607021724 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/SATS/patsolve_z3_solving.sats0000644000175000017500000001654713431250607026647 0ustar brandonbrandon(* ## ## ATS-extsolve-z3: ## Solving ATS-constraints with Z3 ## *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2015 *) (* ****** ****** *) // #define ATS_PACKNAME "PATSOLVE_Z3_SOLVING" // (* ****** ****** *) // #define PATSOLVE_targetloc "./../ATS-extsolve" // #define SMT_LIBZ3_targetloc "\ $PATSHOME/contrib\ /atscntrb//atscntrb-smt-libz3" // (* ****** ****** *) // #staload "{$SMT_LIBZ3}/SATS/z3.sats" // #staload "{$PATSOLVE}/SATS/patsolve_cnstrnt.sats" // (* ****** ****** *) // fun c3nstr_z3_solve(c3nstr): void // (* ****** ****** *) // absvtype sort_vtype = ptr // vtypedef sort = sort_vtype vtypedef sortlst = List0_vt (sort) // absvtype form_vtype = ptr // vtypedef form = form_vtype vtypedef formlst = List0_vt (form) // absvtype func_decl_vtype = ptr vtypedef func_decl = func_decl_vtype // (* ****** ****** *) // fun sort_decref (sort): void fun sort_incref (!sort): sort // fun formula_decref (form): void fun formula_incref (!form): form // (* ****** ****** *) // fun sort_int (): sort fun sort_bool (): sort // fun sort_real (): sort (* fun sort_string (): sort *) (* ****** ****** *) fun sort_mk_cls (): sort fun sort_mk_eff (): sort (* ****** ****** *) // fun sort_mk_type (): sort fun sort_mk_vtype (): sort // fun sort_mk_t0ype (): sort fun sort_mk_vt0ype (): sort // fun sort_mk_prop (): sort fun sort_mk_view (): sort // fun sort_mk_tkind (): sort // (* ****** ****** *) fun sort_mk_abstract(name: string): sort (* ****** ****** *) // fun sort_error (s2rt): sort // (* ****** ****** *) // fun sort_make_s2rt (s2rt): sort // (* ****** ****** *) fun formula_null (): form fun formula_true (): form fun formula_false (): form (* ****** ****** *) fun formula_int (i: int): form fun formula_intrep (rep: string): form (* ****** ****** *) // fun formula_not (form): form fun formula_disj (form, form): form fun formula_conj (form, form): form fun formula_impl (form, form): form // (* ****** ****** *) fun formula_conj_list (formlst): form fun formula_conj_list1 (formlst, form): form fun formula_impl_list1 (formlst, form): form (* ****** ****** *) // fun formula_ineg (form): form // fun formula_iadd (form, form): form fun formula_isub (form, form): form // fun formula_imul (form, form): form // fun formula_idiv (form, form): form fun formula_ndiv (form, form): form // fun formula_ilt (form, form): form fun formula_ilte (form, form): form fun formula_igt (form, form): form fun formula_igte (form, form): form fun formula_ieq (form, form): form fun formula_ineq (form, form): form // (* ****** ****** *) // fun formula_iabs (form): form // fun formula_isgn (form): form // fun formula_imax (form, form): form fun formula_imin (form, form): form // (* ****** ****** *) // fun formula_bneg (form): form // fun formula_badd (form, form): form fun formula_bmul (form, form): form // fun formula_blt (form, form): form fun formula_blte (form, form): form fun formula_bgt (form, form): form fun formula_bgte (form, form): form fun formula_beq (form, form): form fun formula_bneq (form, form): form // (* ****** ****** *) // fun formula_real {p,q:int | q > 0} (num: int(p), den: int(q)): form // fun formula_int2real: (form) -> form // fun formula_neg_real: (form) -> form fun formula_abs_real: (form) -> form // fun formula_add_real_real(form, form): form fun formula_sub_real_real(form, form): form fun formula_mul_real_real(form, form): form fun formula_div_real_real(form, form): form // (* fun formula_add_int_real(form, form): form fun formula_add_real_int(form, form): form fun formula_sub_int_real(form, form): form fun formula_sub_real_int(form, form): form fun formula_mul_int_real(form, form): form fun formula_div_real_int(form, form): form *) // fun formula_lt_real_real: (form, form) -> form fun formula_lte_real_real: (form, form) -> form fun formula_gt_real_real: (form, form) -> form fun formula_gte_real_real: (form, form) -> form fun formula_eq_real_real: (form, form) -> form fun formula_neq_real_real: (form, form) -> form // (* fun formula_lt_real_int: (form, form) -> form fun formula_lte_real_int: (form, form) -> form fun formula_gt_real_int: (form, form) -> form fun formula_gte_real_int: (form, form) -> form fun formula_eq_real_int: (form, form) -> form fun formula_neq_real_int: (form, form) -> form *) // (* ****** ****** *) // fun formula_cond ( f_cond: form, f_then: form, f_else: form ) : form // end of [formula_cond] // (* ****** ****** *) // fun formula_eqeq (s2e1: form, s2e2: form): form // (* ****** ****** *) fun formula_sizeof_t0ype (s2e_t0ype: form): form (* ****** ****** *) // fun func_decl_0 (name: string, res: sort): func_decl fun func_decl_1 (name: string, arg: sort, res: sort): func_decl fun func_decl_2 (name: string, a0: sort, a1: sort, res: sort): func_decl // fun func_decl_list (name: string, domain: sortlst, range: sort): func_decl // (* ****** ****** *) // fun formula_fdapp_0(fd: func_decl): form fun formula_fdapp_1(fd: func_decl, arg: form): form fun formula_fdapp_2(fd: func_decl, a0: form, a1: form): form fun formula_fdapp_list(fd: func_decl, args: formlst): form // (* ****** ****** *) absvtype smtenv_vtype = ptr vtypedef smtenv = smtenv_vtype (* ****** ****** *) // fun smtenv_create(): smtenv fun smtenv_destroy(env: smtenv): void // (* ****** ****** *) // fun s2var_pop_payload(s2var): form fun s2var_top_payload(s2var): form fun s2var_push_payload(s2var, form): void // (* ****** ****** *) // fun smtenv_add_s2var (env: !smtenv, s2v: s2var): void fun smtenv_add_s2exp (env: !smtenv, s2e: s2exp): void fun smtenv_add_h3ypo (env: !smtenv, h3p: h3ypo): void // (* ****** ****** *) // fun formula_error_s2cst(s2c0: s2cst): form fun formula_error_s2exp(s2e0: s2exp): form // overload formula_error with formula_error_s2cst overload formula_error with formula_error_s2exp // (* ****** ****** *) // fun formula_make_s2cst (env: !smtenv, s2c: s2cst): form fun formula_make_s2cst_fresh (env: !smtenv, s2c: s2cst): form // fun formula_make_s2var (env: !smtenv, s2v: s2var): form fun formula_make_s2var_fresh (env: !smtenv, s2v: s2var): form // fun formula_make_s2Var_fresh (env: !smtenv, s2V: s2Var, s2t: s2rt): form // (* ****** ****** *) // fun formula_make_s2exp (env: !smtenv, s2e: s2exp): form fun formulas_make_s2explst (env: !smtenv, s2es: s2explst): formlst fun formulas_make_labs2explst (env: !smtenv, ls2es: labs2explst): formlst // fun formula_make_s2cst_s2explst (env: !smtenv, s2c: s2cst, s2es: s2explst): form // (* ****** ****** *) // datatype s2cinterp = // | S2CINTnone of () | S2CINTsome of (ptr) // | S2CINTbuiltin_0 of (() -> form) | S2CINTbuiltin_1 of (form -> form) | S2CINTbuiltin_2 of ((form, form) -> form) // | S2CINTbuiltin_list of ((formlst) - form) // // (* ****** ****** *) // fun print_s2cinterp (s2cinterp): void and prerr_s2cinterp (s2cinterp): void fun fprint_s2cinterp : fprint_type(s2cinterp) // overload print with print_s2cinterp overload prerr with prerr_s2cinterp overload fprint with fprint_s2cinterp // (* ****** ****** *) // fun s2cst_get_s2cinterp(s2cst): s2cinterp // fun s2cfun_initize_s2cinterp(s2cst): void // fun the_s2cinterp_initize((*void*)): void // (* ****** ****** *) absview smtenv_push_v (* ****** ****** *) // fun smtenv_pop (smtenv_push_v | !smtenv): void // fun smtenv_push (env: !smtenv): (smtenv_push_v | void) // (* ****** ****** *) // fun smtenv_solve_formula(!smtenv, form): Z3_lbool // (* ****** ****** *) (* end of [patsolve_z3_solving.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/SATS/patsolve_z3_commarg.sats0000644000175000017500000000167113431250607026603 0ustar brandonbrandon(* ** ATS-extsolve: ** For solving ATS-constraints ** with external SMT-solvers *) (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: gmhwxiATgmailDOTcom ** Start time: June, 2015 *) (* ****** ****** *) // #define ATS_PACKNAME "PATSOLVE_Z3_COMMARG" // (* ****** ****** *) datatype commarg = | CAhelp of (string) | CAgitem of (string) | CAinput of (string) | CAoutput of (string) | CAscript of (string) | CAargend of ((*void*)) // end of [commarg] (* ****** ****** *) // typedef commarglst = List0 (commarg) vtypedef commarglst_vt = List0_vt (commarg) // (* ****** ****** *) // fun fprint_commarg (out: FILEref, ca: commarg): void // overload fprint with fprint_commarg // (* ****** ****** *) // fun patsolve_z3_cmdline {n:nat} (argc: int(n), argv: !argv(n)): commarglst_vt // (* ****** ****** *) // fun patsolve_z3_commarglst(arglst: commarglst_vt): void // (* ****** ****** *) (* end of [patsolve_z3_commarg.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/SATS/.keeper0000644000175000017500000000000013431250607023166 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ATS-extsolve-z3/README0000644000175000017500000000061513431250607022034 0ustar brandonbrandon# # README for ATS-extsolve-z3 # ###### # # HX-2015-12: # # For now, please use the following # command-line to build [patsolve_z3]: # ###### make -C ATS-extsolve DATS_C; make all ###### # # HX-2015-12: # # Here is a script for installing ATS2 + patsolve_z3: # ###### https://github.com/ats-lang/ats-lang.github.io/blob/master/SCRIPT/C9-ATS2-install-cs520-z3.sh ###### end of [README] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/0000755000175000017500000000000013431250607020106 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/basics.sats0000644000175000017500000000610213431250607022245 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) // typedef fun0 (b:vt0p) = () - b typedef fun1 (a:t0p, b:vt0p) = (a) - b typedef fun2 (a1:t0p, a2:t0p, b:vt0p) = (a1, a2) - b typedef fun3 (a1:t0p, a2:t0p, a3: t0p, b:vt0p) = (a1, a2, a3) - b // (* ****** ****** *) // typedef cfun0 (b:vt0p) = () - b typedef cfun1 (a:t0p, b:vt0p) = (a) - b typedef cfun2 (a1:t0p, a2:t0p, b:vt0p) = (a1, a2) - b typedef cfun3 (a1:t0p, a2:t0p, a3: t0p, b:vt0p) = (a1, a2, a3) - b // stadef cfun = cfun0 stadef cfun = cfun1 stadef cfun = cfun2 stadef cfun = cfun3 // (* ****** ****** *) // fun cloref2fun0 {b:vt0p} (f: cfun0(b)): fun0(b) = "mac#%" // fun cloref2fun1 {a:t0p;b:vt0p} (f: cfun1(a, b)): fun1(a, b) = "mac#%" // fun cloref2fun2 {a1,a2:t0p;b:vt0p} (cfun2(a1, a2, b)): fun2(a1, a2, b) = "mac#%" fun cloref2fun3 {a1,a2,a3:t0p;b:vt0p} (cfun3(a1, a2, a3, b)): fun3(a1, a2, a3, b) = "mac#%" // (* ****** ****** *) // fun cloref0_app {b:vt0p} (f: cfun0(b)): b = "mac#%" // fun cloref1_app {a:t0p;b:vt0p} (f: cfun1(a, b), a): b = "mac#%" // fun cloref2_app {a1,a2:t0p;b:vt0p} (f: cfun2(a1, a2, b), a1, a2): b = "mac#%" // fun cloref3_app {a1,a2,a3:t0p;b:vt0p} (f: cfun3(a1, a2, a3, b), a1, a2, a3): b = "mac#%" // symintr cloref_app overload cloref_app with cloref0_app overload cloref_app with cloref1_app overload cloref_app with cloref2_app overload cloref_app with cloref3_app // (* ****** ****** *) // // HX-2016-04: // This is mostly for someone // not familiar with dependent types // datatype list0_t0ype_type (a:t@ype+) = | list0_nil of ((*void*)) | list0_cons of (a, list0(a)) // where list0(a:t@ype) = list0_t0ype_type(a) // (* ****** ****** *) // castfn g0ofg1_list : {a:t0p}(List(a)) - list0(a) castfn list0_of_list : {a:t0p}(List(a)) - list0(a) // castfn g1ofg0_list : {a:t0p}(list0(a)) - List0(a) castfn list_of_list0 : {a:t0p}(list0(a)) - List0(a) // overload g0ofg1 with g0ofg1_list of 100 overload g1ofg0 with g1ofg0_list of 100 // (* ****** ****** *) // castfn g0ofg1_list_vt : {a:t0p}(List_vt(a)) - list0(a) castfn list0_of_list_vt : {a:t0p}(List_vt(a)) - list0(a) // overload g0ofg1 with g0ofg1_list_vt of 100 // (* ****** ****** *) // datatype option0_t0ype_type ( a: t@ype+ ) = // option0_t0ype_type | Some0 of (a) | None0 of () // where option0 = option0_t0ype_type // (* ****** ****** *) // castfn g0ofg1_option : {a:t0p}(Option(a)) - option0(a) castfn option0_of_option : {a:t0p}(Option(a)) - option0(a) // overload g0ofg1 with g0ofg1_option of 100 // (* ****** ****** *) // castfn g0ofg1_option_vt : {a:t0p}(Option_vt(a)) - option0(a) castfn option0_of_option_vt : {a:t0p}(Option_vt(a)) - option0(a) // overload g0ofg1 with g0ofg1_option_vt of 100 // (* ****** ****** *) // abstype array0_vt0ype_type(a:vt@ype) = ptr typedef array0(a:vt@ype) = array0_vt0ype_type(a) // (* ****** ****** *) // abstype matrix0_vt0ype_type(a:vt@ype) = ptr typedef matrix0(a:vt@ype) = matrix0_vt0ype_type(a) // (* ****** ****** *) (* end of [basics.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/0000755000175000017500000000000013431250607020641 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/qlistref.dats0000644000175000017500000000536213431250607023355 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/qlistref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // datatype qlistref (a:vt@ype) = Q of ( ref(List0_vt(a)), ref(List0_vt(a)) ) // assume qlistref_type(a) = qlistref(a) // (* ****** ****** *) // implement qlistref_make_nil {a}((*void*)) = Q(f, r) where { // val f = ref(list_vt_nil) and r = ref(list_vt_nil) // } (* end of [qlistref_make_nil] *) // (* ****** ****** *) implement qlistref_length {a}(que) = let // val+Q(r0, r1) = que // val r0 = $UN.cast{ref(List0(a?))}(r0) val r1 = $UN.cast{ref(List0(a?))}(r1) // in list_length(r0[]) + list_length(r1[]) end // end of [qlistref_length] (* ****** ****** *) implement qlistref_enqueue {a}(que, x0) = let // val+Q(r0, r1) = que // val x0 = $UN.castvwtp0{a?}(x0) // val r0 = $UN.cast{ref(List0(a?))}(r0) val r1 = $UN.cast{ref(List0(a?))}(r1) // in r0[] := list_cons{a?}(x0, r0[]) end // end of [qlistref_enqueue] (* ****** ****** *) implement qlistref_dequeue_opt {a}(que) = let // val+Q(r0, r1) = que // val r0 = $UN.cast{ref(List0(a?))}(r0) val r1 = $UN.cast{ref(List0(a?))}(r1) // in // case+ r1[] of | list_nil() => let val xs = r0[] val () = r0[] := list_nil() in case+ xs of | list_nil() => None_vt(*void*) | list_cons(x0, xs) => ( r1[] := xs; Some_vt($UN.castvwtp0{a}(x0)) ) end // end of [list_nil] | list_cons(x0, xs) => ( r1[] := xs; Some_vt($UN.castvwtp0{a}(x0)) ) (* end of [list_cons] *) // end // end of [qlistref_dequeue_opt] (* ****** ****** *) implement qlistref_foldleft {res}{a} (que, init, fopr) = let // val+Q(r0, r1) = que // val r0 = $UN.cast{ref(List0(a))}(r0) val r1 = $UN.cast{ref(List0(a))}(r1) // val fopr = $UN.cast{(res, a) - res}(fopr) // fun auxl ( res: res, xs: List0(a) ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => auxl(fopr(res, x), xs) ) // fun auxr ( xs: List0(a), res: res ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => fopr(auxr(xs, res), x) ) // in auxr(r0[], auxl(init, r1[])) end // end of [qlistref_foldleft] (* ****** ****** *) implement qlistref_foldright {a}{res} (que, fopr, sink) = let // val+Q(r0, r1) = que // val r0 = $UN.cast{ref(List0(a))}(r0) val r1 = $UN.cast{ref(List0(a))}(r1) // val fopr = $UN.cast{(a, res) - res}(fopr) // fun auxl ( res: res, xs: List0(a) ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => auxl(fopr(x, res), xs) ) // fun auxr ( xs: List0(a), res: res ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => fopr(x, auxr(xs, res)) ) // in auxr(r1[], auxl(sink, r0[])) end // end of [qlistref_foldright] (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/matrixref.dats0000644000175000017500000000775113431250607023531 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/matrixref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement matrixref_exists_cloref (M, m, n, pred) = ( int2_exists_cloref (m, n, $UN.cast{cfun2(int,int,bool)}(pred)) // int2_exists_cloref ) (* matrixref_exists_cloref *) // (* ****** ****** *) // implement matrixref_forall_cloref (M, m, n, pred) = ( int2_forall_cloref (m, n, $UN.cast{cfun2(int,int,bool)}(pred)) // int2_forall_cloref ) (* matrixref_forall_cloref *) // (* ****** ****** *) // implement matrixref_foreach_cloref (M, m, n, fwork) = ( int2_foreach_cloref (m, n, $UN.cast{cfun2(int,int,void)}(fwork)) // int2_foreach_cloref ) (* matrixref_foreach_cloref *) // (* ****** ****** *) // implement cbind_matrixref_matrixref (M1, M2, m0, n1, n2) = let // prval () = lemma_matrixref_param(M1) prval () = lemma_matrixref_param(M2) // in // matrixref_tabulate_cloref ( m0(*nrow*), n1+n2(*ncol*) , lam(i, j) => if j < n1 then M1[i,n1,j] else M2[i,n2,j-n1]) // end (* end of [cbind_matrixref_matrixref] *) // (* ****** ****** *) // implement rbind_matrixref_matrixref (M1, M2, m1, m2, n0) = let // prval () = lemma_matrixref_param(M1) prval () = lemma_matrixref_param(M2) // in // matrixref_tabulate_cloref ( m1+m2(*nrow*), n0(*ncol*) , lam(i, j) => if i < m1 then M1[i,n0,j] else M2[i-m1,n0,j]) // end (* end of [cbind_matrixref_matrixref] *) // (* ****** ****** *) // // HX: matrix-with-size // (* ****** ****** *) // implement mtrxszref_make_elt {a}(m, n, x0) = ( mtrxszref_make_matrixref (matrixref_make_elt{a}(m, n, x0), m, n) // mtrxszref_make_matrixref ) (* end of [mtrxszref_make_elt] *) // (* ****** ****** *) // implement mtrxszref_exists_cloref (MSZ, ftest) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_exists_cloref (m, n, $UN.cast{cfun2(int,int,bool)}(ftest)) // end // end of [mtrxszref_exists_cloref] // (* ****** ****** *) // implement mtrxszref_forall_cloref (MSZ, ftest) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_forall_cloref (m, n, $UN.cast{cfun2(int,int,bool)}(ftest)) // end // end of [mtrxszref_forall_cloref] // (* ****** ****** *) // implement mtrxszref_exists_method (MSZ) = ( lam(ftest) => mtrxszref_exists_cloref(MSZ, ftest) // end of [lam] ) implement mtrxszref_forall_method (MSZ) = ( lam(ftest) => mtrxszref_forall_cloref(MSZ, ftest) // end of [lam] ) // (* ****** ****** *) // implement mtrxszref_foreach_cloref (MSZ, fwork) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_foreach_cloref (m, n, $UN.cast{cfun2(int,int,void)}(fwork)) // end // end of [mtrxszref_foreach_cloref] // implement mtrxszref_foreach_method {a}(MSZ) = ( lam(fwork) => mtrxszref_foreach_cloref{a}(MSZ, fwork) ) (* end of [mtrxszref_foreach_method] *) // (* ****** ****** *) // implement mtrxszref_foreach_row_cloref (MSZ, fwork) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_foreach_cloref (m, n, $UN.cast{cfun2(int,int,void)}(fwork)) // end // end of [mtrxszref_foreach_row_cloref] // implement mtrxszref_foreach_row_method {a}(MSZ) = ( lam(fwork) => mtrxszref_foreach_row_cloref{a}(MSZ, fwork) // end of [lam] ) (* end of [mtrxszref_foreach_row_method] *) // (* ****** ****** *) // implement mtrxszref_foreach_col_cloref (MSZ, fwork) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_foreach_cloref ( n, m , lam(j: int, i: int) => fwork($UN.cast{Nat}(i), $UN.cast{Nat}(j)) ) (* end of [int2_foreach_cloref] *) // end // end of [mtrxszref_foreach_col_cloref] // implement mtrxszref_foreach_col_method {a}(MSZ) = ( lam(fwork) => mtrxszref_foreach_col_cloref{a}(MSZ, fwork) // end of [lam] ) (* end of [mtrxszref_foreach_col_method] *) // (* ****** ****** *) // implement mtrxszref_tabulate_cloref {a}(m, n, fopr) = let // val fopr = $UN.cast(fopr) // in // $UN.cast ( mtrxszref_make_matrixref (matrixref_tabulate_cloref{a?}(m, n, fopr), m, n) ) end (* end of [mtrxszref_tabulate] *) // (* ****** ****** *) (* end of [matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/arrayref.dats0000644000175000017500000000343113431250607023332 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/arrayref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement arrayref_exists_cloref (A, n, pred) = ( int_exists_cloref(n, $UN.cast{cfun1(int,bool)}(pred)) ) implement arrayref_forall_cloref (A, n, pred) = ( int_forall_cloref(n, $UN.cast{cfun1(int,bool)}(pred)) ) // implement arrayref_foreach_cloref (A, n, fwork) = ( int_foreach_cloref(n, $UN.cast{cfun1(int,void)}(fwork)) ) // (* ****** ****** *) // // HX: array-with-size // (* ****** ****** *) // implement arrszref_make_elt {a}(n, x0) = let // val A = arrayref_make_elt{a}(n, x0) // in arrszref_make_arrayref{a}(A, n) end (* end of [arrszref_make_elt] *) // (* ****** ****** *) // implement arrszref_exists_cloref {a}(A, pred) = let val asz = arrszref_size(A) in // int_exists_cloref (asz, $UN.cast{cfun1(int,bool)}(pred)) // end // end of [arrszref_exists_cloref] // implement arrszref_forall_cloref {a}(A, pred) = let val asz = arrszref_size(A) in // int_forall_cloref (asz, $UN.cast{cfun1(int,bool)}(pred)) // end // end of [arrszref_forall_cloref] // (* ****** ****** *) // implement arrszref_foreach_cloref {a}(ASZ, fwork) = let val asz = arrszref_size(ASZ) in // int_foreach_cloref (asz, $UN.cast{cfun1(int,void)}(fwork)) // end // end of [arrszref_foreach_cloref] // implement arrszref_foreach_method {a}(ASZ) = ( lam(fwork) => arrszref_foreach_cloref{a}(ASZ, fwork) ) (* end of [mtrxszref_foreach_method] *) // (* ****** ****** *) // implement arrszref_tabulate_cloref {a}(asz, fopr) = let // val fopr = $UN.cast(fopr) // in // $UN.cast ( // arrszref_make_arrayref (arrayref_tabulate_cloref{a?}(asz, fopr), asz) // ) end (* end of [arrszref_tabulate] *) // (* ****** ****** *) (* end of [arrayref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/intrange.dats0000644000175000017500000002254613431250607023336 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" staload "./../SATS/intrange.sats" *) (* ****** ****** *) // implement int_repeat_lazy (n0, fwork) = ( // int_repeat_cloref(n0, lazy2cloref(fwork)) // ) (* end of [int_repeat_lazy] *) // (* ****** ****** *) // implement int_repeat_cloref (n0, fwork) = let // fun loop ( n: int, fwork: cfun0(void) ) : void = ( // if n > 0 then (fwork(); loop(n-1, fwork)) else () // ) (* end of [loop] *) // in loop (n0, fwork) end // end of [int_repeat_cloref] // implement int_repeat_method (n0) = lam(fwork) => int_repeat_cloref(n0, fwork) // (* ****** ****** *) // implement int_exists_cloref (n0, pred) = ( intrange_exists_cloref(0, n0, pred) ) implement int_forall_cloref (n0, pred) = ( intrange_forall_cloref (0, n0, pred) ) // implement int_exists_method (n0) = lam(f) => int_exists_cloref(n0, f) implement int_forall_method (n0) = lam(f) => int_forall_cloref(n0, f) // (* ****** ****** *) // implement int_foreach_cloref (n0, pred) = ( intrange_foreach_cloref(0, n0, pred) ) implement int_rforeach_cloref (n0, pred) = ( intrange_rforeach_cloref(0, n0, pred) ) // (* ****** ****** *) // implement int_foreach_method (n0) = lam(f) => int_foreach_cloref(n0, f) // (* ****** ****** *) // implement int_foldleft_cloref {res} (n0, ini, fopr) = ( intrange_foldleft_cloref{res}(0, n0, ini, fopr) ) // implement int_foldleft_method {res} ( n0, _(*TYPE*) ) = ( lam(ini, fopr) => int_foldleft_cloref{res}(n0, ini, fopr) ) (* int_foldleft_method *) // (* ****** ****** *) // implement int_foldright_cloref {res} (n0, fopr, snk) = ( intrange_foldright_cloref{res}(0, n0, fopr, snk) ) // implement int_foldright_method {res} ( n0, _(*TYPE*) ) = ( lam(fopr, snk) => int_foldright_cloref{res}(n0, fopr, snk) ) (* int_foldright_method *) // (* ****** ****** *) // implement int_list_map_cloref {a}{n}(n0, fopr) = let // fun aux { i:nat | i <= n } (i: int(i)): list(a, n-i) = ( // if (i < n0) then list_cons(fopr(i), aux(i+1)) else list_nil() // end of [if] ) // in aux(0) end // end of [int_list_map_cloref] // implement int_list_map_method {a}{n}(n0, tres) = ( // lam(fopr) => int_list_map_cloref{a}{n}(n0, fopr) // ) (* end of [int_list_map_method] *) // (* ****** ****** *) // implement int_list0_map_cloref {a}(n0, fopr) = let // val n0 = g1ofg0(n0) // in // if (n0 >= 0) then g0ofg1 ( int_list_map_cloref(n0, fopr) ) (* g0ofg1 *) else list0_nil(*void*) // end // end of [int_list0_map_cloref] // implement int_list0_map_method {a}(n0, tres) = ( // lam(fopr) => int_list0_map_cloref{a}(n0, fopr) // ) (* end of [int_list0_map_method] *) // (* ****** ****** *) #if defined(ATSCC_STREAM) // implement int_stream_map_cloref {a}(n0, fopr) = let // fun aux {i:nat} ( i: int(i) ) : stream(a) = $delay( // if (i < n0) then ( stream_cons(fopr(i), aux(i+1)) ) else stream_nil() // end of [if] ) // in aux(0) end // end of [aux] // implement int_stream_map_method {a}(n0, tres) = ( // lam(fopr) => int_stream_map_cloref{a}(n0, fopr) // ) (* end of [int_stream_map_method] *) // #endif // ATSCC_STREAM (* ****** ****** *) #if defined(ATSCC_STREAM_VT) // implement int_stream_vt_map_cloref {a}(n0, fopr) = let // fun aux {i:nat} ( i: int(i) ) : stream_vt(a) = $ldelay ( // if (i < n0) then ( stream_vt_cons(fopr(i), aux(i+1)) ) else stream_vt_nil((*void*)) // end of [if] ) : stream_vt_con(a) // [aux] // in aux(0) end // end of [aux] // implement int_stream_vt_map_method {a}(n0, tres) = ( // llam(fopr) => int_stream_vt_map_cloref{a}(n0, fopr) // ) (* end of [int_stream_vt_map_method] *) // #endif // ATSCC_STREAM_VT (* ****** ****** *) // implement int2_exists_cloref (n1, n2, pred) = ( intrange2_exists_cloref (0, n1, 0, n2, pred) ) implement int2_forall_cloref (n1, n2, pred) = ( intrange2_forall_cloref (0, n1, 0, n2, pred) ) // implement int2_foreach_cloref (n1, n2, fwork) = ( intrange2_foreach_cloref (0, n1, 0, n2, fwork) ) // (* ****** ****** *) // implement int_cross_exists_method (n1, n2) = ( lam(pred) => int2_exists_cloref(n1, n2, pred) ) (* int_cross_exists_method *) // implement int_cross_forall_method (n1, n2) = ( lam(pred) => int2_forall_cloref(n1, n2, pred) ) (* int_cross_forall_method *) // implement int_cross_foreach_method (n1, n2) = ( lam(fwork) => int2_foreach_cloref(n1, n2, fwork) ) (* int_cross_foreach_method *) // (* ****** ****** *) implement intrange_exists_cloref (l, r, pred) = let // fun loop ( l: int, r: int, pred: cfun1(int, bool) ) : bool = ( // if l < r then ( if pred(l) then true else loop (l+1, r, pred) ) else false // ) (* end of [loop] *) // in loop (l, r, pred) end // end of [intrange_exists_cloref] // implement intrange_exists_method(lr) = ( lam(pred) => intrange_exists_cloref(lr.0, lr.1, pred) ) (* intrange_exists_method *) // (* ****** ****** *) implement intrange_forall_cloref (l, r, pred) = let // fun loop ( l: int, r: int, pred: cfun1(int, bool) ) : bool = ( // if l < r then ( if pred(l) then loop(l+1, r, pred) else false ) else true // ) (* end of [loop] *) // in loop (l, r, pred) end // end of [intrange_forall_cloref] // implement intrange_forall_method(lr) = ( lam(pred) => intrange_forall_cloref(lr.0, lr.1, pred) ) (* intrange_forall_method *) // (* ****** ****** *) // implement intrange_foreach_cloref (l, r, fwork) = let // fun loop ( l: int, r: int, fwork: cfun1(int, void) ) : void = ( // if (l < r) then let val () = fwork(l) in loop(l+1, r, fwork) end // end of [then] else ((*void*)) // else // ) (* end of [loop] *) // in loop(l, r, fwork) end // end of [intrange_foreach_cloref] // implement intrange_foreach_method(lr) = ( lam(fwork) => intrange_foreach_cloref(lr.0, lr.1, fwork) ) (* intrange_foreach_method *) // (* ****** ****** *) // implement intrange_rforeach_cloref (l, r, fwork) = let // fun loop ( l: int, r: int, fwork: cfun1(int, void) ) : void = ( // if (l < r) then let val () = fwork(r-1) in loop(l, r-1, fwork) end // end of [then] else ((*void*)) // else // ) (* end of [loop] *) // in loop(l, r, fwork) end // end of [intrange_rforeach_cloref] // implement intrange_rforeach_method(lr) = ( lam(fwork) => intrange_rforeach_cloref(lr.0, lr.1, fwork) ) (* intrange_rforeach_method *) // (* ****** ****** *) // implement intrange_foldleft_cloref {res} ( l, r, ini, fopr ) = loop(l, r, ini) where { // fun loop ( l: int, r: int, ini: res ) : res = ( // if (l < r) then loop(l+1, r, fopr(ini, l)) else ini // end of [if] // ) (* end of [loop] *) // } (* end of [intrange_foldleft_cloref] *) // implement intrange_foldleft_method {res} ( $tup(l, r), _(*TYPE*) ) = ( lam(ini, fopr) => intrange_foldleft_cloref{res}(l, r, ini, fopr) // end of [lam] ) // (* ****** ****** *) implement intrange_foldright_cloref {res} ( l, r, fopr, snk ) = loop(l, r, snk) where { // fun loop ( l: int, r: int, snk: res ) : res = ( // if (l < r) then loop(l, r-1, fopr(r-1, snk)) else snk // ) (* end of [loop] *) // } (* end of [intrange_foldright_cloref] *) (* ****** ****** *) // implement intrange_foldright_method {res} ( $tup(l, r), _(*TYPE*) ) = ( lam(fopr, snk) => intrange_foldright_cloref{res}(l, r, fopr, snk) // end of [lam] ) // (* ****** ****** *) implement intrange2_exists_cloref (l1_, r1_, l2_, r2_, pred) = let // // HX-2016-07-26: // loop1 and loop2 need to have // the same number of arguments // in order to support atscc2clj // fnx loop1 ( l1: int, r1: int , l2: int, r2: int , f: cfun2 (int, int, bool) ) : bool = ( // if l1 < r1 then loop2(l1, r1, l2, r2, pred) else false // ) (* end of [loop1] *) // and loop2 ( l1: int, r1: int , l2: int, r2: int , pred: cfun2 (int, int, bool) ) : bool = ( // if ( l2 < r2 ) then ( // if ( pred(l1, l2) ) then true else loop2(l1, r1, l2+1, r2, pred) // end of [if] ) else loop1(l1+1, r1, l2_, r2_, pred) // ) (* end of [loop2] *) // in loop1(l1_, r1_, l2_, r2_, pred) end // end of [intrange2_exists_cloref] (* ****** ****** *) implement intrange2_forall_cloref (l1_, r1_, l2_, r2_, pred) = let // // HX-2016-07-26: // loop1 and loop2 need to have // the same number of arguments // in order to support atscc2clj // fnx loop1 ( l1: int, r1: int , l2: int, r2: int , pred: cfun2 (int, int, bool) ) : bool = ( // if l1 < r1 then loop2 (l1, r1, l2, r2, pred) else true // ) (* end of [loop1] *) // and loop2 ( l1: int, r1: int , l2: int, r2: int , pred: cfun2 (int, int, bool) ) : bool = ( // if ( l2 < r2 ) then ( if ( pred(l1, l2) ) then loop2(l1, r1, l2+1, r2, pred) else false // end of [if] ) else loop1(l1+1, r1, l2_, r2_, pred) // ) (* end of [loop2] *) // in loop1 (l1_, r1_, l2_, r2_, pred) end // end of [intrange2_forall_cloref] (* ****** ****** *) implement intrange2_foreach_cloref (l1_, r1_, l2_, r2_, fwork) = let // // HX-2016-07-26: // loop1 and loop2 need to have // the same number of arguments // in order to support atscc2clj // fnx loop1 ( l1: int, r1: int , l2: int, r2: int , fwork: cfun2 (int, int, void) ) : void = ( // if l1 < r1 then loop2(l1, r1, l2, r2, fwork) else ((*void*)) // ) (* end of [loop1] *) // and loop2 ( l1: int, r1: int , l2: int, r2: int , fwork: cfun2 (int, int, void) ) : void = ( // if ( l2 < r2 ) then ( // fwork(l1, l2); loop2(l1, r1, l2+1, r2, fwork) // ) else ( loop1(succ(l1), r1, l2_, r2_, fwork) ) (* end of [else] *) // ) (* end of [loop2] *) // in loop1 (l1_, r1_, l2_, r2_, fwork) end // end of [intrange2_foreach_cloref] (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/list.dats0000644000175000017500000003533413431250607022501 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/list.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) list_is_nil(xs) = ( case+ xs of list_nil() => true | _ =>> false ) implement {}(*tmp*) list_is_cons(xs) = ( case+ xs of list_cons _ => true | _ =>> false ) // (* ****** ****** *) // implement list_make_elt {x}(n, x) = loop(n, list_nil()) where { // fun loop {i,j:nat} .. ( i0: int(i), res: list(x, j) ) :<> list(x, i+j) = ( if i0 > 0 then loop(i0-1, list_cons{x}(x, res)) else res ) // } (* end of [list_make_elt] *) // (* ****** ****** *) // implement list_make_intrange_2 (l, r) = list_make_intrange_3 (l, r, 1) // (* ****** ****** *) implement list_make_intrange_3 (l, r, d) = let // fun loop1 ( n: int, x: int, d: intGt(0), res: List0(int) ) : List0(int) = if n > 0 then loop1 (n-1, x - d, d, list_cons (x, res)) else res fun loop2 ( n: int, x: int, d: intGt(0), res: List0(int) ) : List0(int) = if n > 0 then loop2 (n-1, x + d, d, list_cons (x, res)) else res // in // case+ 0 of | _ when d > 0 => if l < r then let val d = $UN.cast{intGt(0)}(d) // end of [val] val n = (r - l + d - 1) / d in loop1 (n, l + (n - 1) * d, d, list_nil) end else list_nil () | _ when d < 0 => if l > r then let val d = $UN.cast{intGt(0)}(~d) val n = (l - r + d - 1) / d in loop2 (n, l - (n - 1) * d, d, list_nil) end else list_nil () | _ (* d = 0 *) => list_nil () // end // end of [list_make_intrange_3] (* ****** ****** *) // implement {a}(*tmp*) fprint_list (out, xs) = let // fun loop ( xs: List(a), i: int ) : void = ( // case+ xs of | list_nil() => () | list_cons(x, xs) => ( if i > 0 then fprint_list$sep<>(out); // end of [if] fprint_val(out, x); loop(xs, i+1) ) (* end of [list_cons] *) // ) (* end of [loop] *) // in loop (xs, 0) end // end of [fprint_list] // (* ****** ****** *) // implement {}(*tmp*) fprint_list$sep (out) = fprint_string (out, ", ") // (* ****** ****** *) implement {a}(*tmp*) fprint_list_sep (out, xs, sep) = let // implement fprint_list$sep<> (out) = fprint_string (out, ", ") // in fprint_list (out, xs) end // end of [fprint_list_sep] (* ****** ****** *) implement list_length {a}(xs) = let // fun loop{i,j:int} ( xs: list(a, i), j: int(j) ) : int(i+j) = ( case+ xs of | list_nil () => j | list_cons (_, xs) => loop (xs, j+1) ) (* end of [loop] *) // in loop (xs, 0) end // end of [list_length] (* ****** ****** *) // implement list_length_gte {x}(xs, n2) = (list_length_compare{x}(xs, n2) >= 0) // implement list_length_compare {x}(xs, n2) = loop(xs, n2) where { // fun loop {i:nat;j:int} .. (xs: list(x, i), j: int j) :<> int(sgn(i-j)) = ( if (j < 0) then 1 else ( case+ xs of | list_cons (_, xs) => loop(xs, j-1) // list_cons | _ (*list_nil*) =>> (if j = 0 then 0 else ~1) ) ) (* end of [loop] *) // prval() = lemma_list_param(xs) // } (* end of [list_length_compare] *) (* ****** ****** *) // implement list_head(xs) = let val+list_cons(x, _) = xs in x end implement list_tail(xs) = let val+list_cons(_, xs) = xs in xs end // (* ****** ****** *) implement list_last(xs) = let val+list_cons(x, xs) = xs in case+ xs of | list_nil() => x | list_cons _ =>> list_last(xs) end // end of [list_last] (* ****** ****** *) implement list_get_at {a}(xs, i) = ( // if (i = 0) then let val+list_cons(x, xs) = xs in x end // end of [then] else let val+list_cons(_, xs) = xs in list_get_at(xs, i-1) end // end of [else] // ) (* end of [list_get_at] *) (* ****** ****** *) // implement list_snoc (xs, x0) = list_append(xs, list_sing(x0)) implement list_extend (xs, x0) = list_append(xs, list_sing(x0)) // (* ****** ****** *) implement list_append (xs, ys) = let // prval() = lemma_list_param(xs) prval() = lemma_list_param(ys) // in // case+ xs of | list_nil () => ys | list_cons (x, xs) => list_cons (x, list_append (xs, ys)) // end of [list_cons] // end // end of [list_append] (* ****** ****** *) // implement mul_int_list {a}{m,n}(m, xs) = let // fun loop {i,j:nat} ( i0: int(i), res: list(a, j*n) ) : list(a, (i+j)*n) = if (i0 > 0) then ( loop{i-1,j+1} (i0-1, list_append{a}(xs, res)) ) else ( res where { prval EQINT() = eqint_make{i,0}() } ) (* end of [else] *) // in loop{m,0}(m, list_nil((*void*))) end // end of [mul_int_list] // (* ****** ****** *) implement list_reverse{a}(xs) = ( list_reverse_append{a}(xs, list_nil(*void*)) ) (* end of [list_reverse] *) (* ****** ****** *) implement list_reverse_append {a}(xs, ys) = let // prval () = lemma_list_param (xs) prval () = lemma_list_param (ys) // fun loop{i,j:nat} ( xs: list(a, i), ys: list(a, j) ) : list(a, i+j) = ( case+ xs of | list_nil () => ys | list_cons (x, xs) => loop (xs, list_cons (x, ys)) ) (* end of [loop] *) // in loop (xs, ys) end // end of [list_reverse_append] (* ****** ****** *) implement list_concat {a}(xss) = auxlst(xss) where { // fun auxlst ( xss: List(List(a)) ) : List0(a) = ( // case+ xss of | list_nil() => list_nil() | list_cons (xs, xss) => list_append ( xs, auxlst(xss) ) where { prval () = lemma_list_param(xs) } (* end of [list_cons] *) // ) // } (* end of [list_concat] *) (* ****** ****** *) implement list_take(xs, i) = ( // if i > 0 then let val+list_cons(x, xs) = xs in list_cons(x, list_take(xs, i-1)) end // end of [then] else list_nil() // end of [else] // ) (* end of [list_take] *) implement list_drop(xs, i) = ( // if i > 0 then let val+list_cons(_, xs) = xs in list_drop(xs, i-1) end // end of [then] else xs // end of [else] // ) (* end of [list_drop] *) (* ****** ****** *) implement list_split_at (xs, i) = ( $tup(list_take(xs, i), list_drop(xs, i)) ) (* end of [list_split_at] *) (* ****** ****** *) implement list_insert_at (xs, i, x0) = ( // if (i > 0) then let // val+ list_cons(x, xs) = xs // in // list_cons (x, list_insert_at(xs, i-1, x0)) // end // end of [then] else list_cons(x0, xs) // ) (* end of [list_insert_at] *) (* ****** ****** *) implement list_remove_at (xs, i) = let // val+list_cons(x, xs) = xs // in // if (i > 0) then list_cons (x, list_remove_at(xs, i-1)) // end of [then] else xs // end of [else] // end (* end of [list_remove_at] *) (* ****** ****** *) implement list_takeout_at (xs, i) = let // val+list_cons (x, xs) = xs // in // if (i > 0) then let // val $tup(x_rem, xs) = list_takeout_at (xs, i-1) // in $tup(x_rem, list_cons(x, xs)) end // end of [then] else $tup(x, xs) // end of [else] // end (* end of [list_takeout_at] *) (* ****** ****** *) // implement list_exists (xs, pred) = ( case+ xs of | list_nil() => false | list_cons(x, xs) => (pred(x) || list_exists(xs, pred)) ) (* end of [list_exists] *) // implement list_exists_method {a}(xs) = lam(pred) => list_exists{a}(xs, pred) // (* ****** ****** *) // implement list_iexists {a} ( xs, pred ) = loop(0, xs) where { // fun loop ( i: intGte(0), xs: List(a) ) : bool = ( case+ xs of | list_nil() => false | list_cons(x, xs) => (pred(i, x) || loop(i+1, xs)) ) } (* end of [list_iexists] *) // implement list_iexists_method {a}(xs) = lam(pred) => list_iexists{a}(xs, pred) // (* ****** ****** *) // implement list_forall (xs, pred) = ( case+ xs of | list_nil() => (true) | list_cons(x, xs) => (pred(x) && list_forall(xs, pred)) ) (* end of [list_forall] *) // implement list_forall_method {a}(xs) = lam(pred) => list_forall{a}(xs, pred) // (* ****** ****** *) // implement list_iforall {a} ( xs, pred ) = loop(0, xs) where { // fun loop ( i: intGte(0), xs: List(a) ) : bool = ( case+ xs of | list_nil() => (true) | list_cons(x, xs) => (pred(i, x) && loop(i+1, xs)) ) } (* end of [list_iforall] *) // implement list_iforall_method {a}(xs) = lam(pred) => list_iforall{a}(xs, pred) // (* ****** ****** *) // implement list_app(xs, f) = list_foreach(xs, f) // implement list_foreach (xs, f) = ( // case+ xs of | list_nil() => () | list_cons(x, xs) => (f(x); list_foreach(xs, f)) // ) (* end of [list_foreach] *) // implement list_foreach_method {a}(xs) = lam(fwork) => list_foreach{a}(xs, fwork) // (* ****** ****** *) // implement list_iforeach {a}(xs, fwork) = let // fun aux ( i: Nat, xs: List(a) ) : void = // case+ xs of | list_nil() => () | list_cons(x, xs) => (fwork(i, x); aux(i+1, xs)) // in aux(0, xs) end (* end of [list_iforeach] *) // implement list_iforeach_method {a}(xs) = lam(fwork) => list_iforeach{a}(xs, fwork) // (* ****** ****** *) // implement list_rforeach (xs, f) = ( // case+ xs of | list_nil() => () | list_cons(x, xs) => (list_rforeach(xs, f); f(x)) // ) (* end of [list_rforeach] *) // implement list_rforeach_method {a}(xs) = lam(fwork) => list_rforeach{a}(xs, fwork) // (* ****** ****** *) implement list_filter {a}(xs, p) = aux(xs) where { // fun aux{n:int} ( xs: list(a, n) ) : listLte(a, n) = case+ xs of | list_nil() => list_nil() | list_cons(x, xs) => ( if p(x) then list_cons(x, aux(xs)) else aux(xs) // end of [if] ) // end of [list_cons] // } (* end of [list_filter] *) // implement list_filter_method {a}(xs) = lam(pred) => list_filter{a}(xs, pred) // (* ****** ****** *) // implement list_labelize {a}(xs) = list_imap{a}(xs, lam(i, x) => $tup(i, x)) // (* ****** ****** *) // implement list_map {a}{b} ( xs, fopr ) = aux(xs) where { // fun aux {n:nat} .. ( xs: list(a, n) ) : list(b, n) = ( case+ xs of | list_nil() => list_nil() | list_cons(x, xs) => list_cons(fopr(x), aux(xs)) ) (* end of [aux] *) // prval () = lemma_list_param(xs) // } (* end of [list_map] *) // implement list_map_method {a}(xs, _) = lam(fopr) => list_map{a}(xs, fopr) // (* ****** ****** *) // implement list_imap {a}{b} ( xs, fopr ) = aux(0, xs) where { // fun aux {n:nat} .. ( i0: Nat, xs: list(a, n) ) : list(b, n) = ( case+ xs of | list_nil() => list_nil() | list_cons(x, xs) => list_cons(fopr(i0, x), aux(i0+1, xs)) ) (* end of [aux] *) // prval () = lemma_list_param(xs) // } (* end of [list_imap] *) // implement list_imap_method {a}(xs, _) = lam(fopr) => list_imap{a}(xs, fopr) // (* ****** ****** *) // implement list_map2 ( xs1, xs2, fopr ) = let // prval() = lemma_list_param(xs1) prval() = lemma_list_param(xs2) // in // case+ xs1 of | list_nil() => list_nil() | list_cons(x1, xs1) => ( case+ xs2 of | list_nil() => list_nil() | list_cons(x2, xs2) => list_cons(fopr(x1, x2), list_map2(xs1, xs2, fopr)) ) // end (* end of [list_map2] *) // (* ****** ****** *) implement list_foldleft {res}{a} (xs, init, fopr) = let // fun loop ( res: res, xs: List(a) ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => loop(fopr(res, x), xs) ) // in loop(init, xs) end // end of [list_foldleft] // implement list_foldleft_method {a}(xs, init) = lam(fopr) => list_foldleft{a}(xs, init, fopr) // (* ****** ****** *) implement list_ifoldleft {res}{a} (xs, init, fopr) = let // fun loop ( i: Nat, res: res, xs: List(a) ) : res = ( case+ xs of | list_nil () => res // list_nil | list_cons (x, xs) => loop(i+1, fopr(i, res, x), xs) // list_cons ) // in loop(0(*index*), init, xs) end // end of [list_ifoldleft] // implement list_ifoldleft_method {a}(xs, init) = ( lam(fopr) => list_ifoldleft{a}(xs, init, fopr) ) (* list_ifoldleft_method *) // (* ****** ****** *) implement list_foldright {a}{res} ( xs, fopr, sink ) = aux(xs, sink) where { // fun aux ( xs: List(a), res: res ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => fopr(x, aux(xs, res)) ) // } (* end of [list_foldright] *) // implement list_foldright_method {a}{res}(xs, sink) = lam(fopr) => list_foldright{a}{res}(xs, fopr, sink) // (* ****** ****** *) implement list_ifoldright {a}{res} ( xs, fopr, sink ) = aux(0, xs, sink) where { // fun aux ( i: Nat, xs: List(a), res: res ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => fopr(i, x, aux(i+1, xs, res)) ) // } (* end of [list_foldright] *) // implement list_ifoldright_method {a}{res}(xs, sink) = ( lam(fopr) => list_ifoldright{a}{res}(xs, fopr, sink) ) // (* ****** ****** *) // implement {a}(*tmp*) list_sort_1(xs) = ( list_sort_2{a} (xs, lam(x1, x2) => gcompare_val_val(x1, x2)) // end of [list_sort_2] ) (* list_sort_1 *) // (* ****** ****** *) // implement list_mergesort {a}(xs, cmp) = let // fun msort {n:int} ( xs: list(a, n), n: int(n) ) : list(a, n) = ( if (n < 2) then xs else let val n2 = half(n) val $tup(xs1, xs2) = list_split_at(xs, n2) in merge(msort(xs1, n2), msort(xs2, n-n2)) end // end of [then] ) (* end of [msort] *) // and merge {n1,n2:int} ( xs10: list(a, n1) , xs20: list(a, n2) ) : list(a, n1+n2) = ( case+ xs10 of | list_nil() => xs20 | list_cons(x10, xs11) => ( case+ xs20 of | list_nil() => xs10 | list_cons(x20, xs21) => let val sgn = cmp(x10, x20) in if (sgn <= 0) then list_cons(x10, merge(xs11, xs20)) else list_cons(x20, merge(xs10, xs21)) end // end of [list_cons] ) ) // in msort(xs, list_length(xs)) end // end of [list_mergesort] // (* ****** ****** *) // #if defined (ATSCC_STREAM_VT) #then // implement streamize_list_elt {a}(xs) = let // fun auxmain ( xs: List(a) ) : stream_vt(a) = $ldelay ( // case+ xs of | list_nil() => stream_vt_nil() | list_cons(x, xs) => stream_vt_cons(x, auxmain(xs)) // ) (* end of [auxmain] *) // in $effmask_all(auxmain(xs)) end // #endif // if-defined(ATSCC_STREAM_VT) // (* ****** ****** *) #if defined (ATSCC_STREAM_VT) #then // implement streamize_list_zip {a,b}(xs, ys) = let // fun auxmain ( xs: List(a), ys: List(b) ) : stream_vt($tup(a, b)) = $ldelay ( case+ xs of | list_nil() => stream_vt_nil() | list_cons(x, xs) => ( case+ ys of | list_nil() => stream_vt_nil() | list_cons(y, ys) => stream_vt_cons($tup(x, y), auxmain(xs, ys)) ) (* end of [list_cons] *) ) : stream_vt_con($tup(a, b)) // auxmain // in $effmask_all(auxmain(xs, ys)) end // end of [streamize_list_zip] // #endif // if-defined(ATSCC_STREAM_VT) (* ****** ****** *) #if defined (ATSCC_STREAM_VT) #then // implement streamize_list_cross {a,b}(xs, ys) = let // fun auxone ( x0: a, ys: List(b) ) : stream_vt($tup(a, b)) = $ldelay ( case+ ys of | list_nil() => stream_vt_nil() | list_cons(y, ys) => stream_vt_cons($tup(x0, y), auxone(x0, ys)) ) : stream_vt_con($tup(a, b)) // fun auxmain ( xs: List(a), ys: List(b) ) : stream_vt($tup(a, b)) = $ldelay ( case+ xs of | list_nil() => stream_vt_nil() // end of [list_nil] | list_cons(x0, xs) => !(stream_vt_append(auxone(x0, ys), auxmain(xs, ys))) // end of [list_cons] ) : stream_vt_con($tup(a, b)) // auxmain // in $effmask_all(auxmain(xs, ys)) end // end of [streamize_list_cross] // #endif // if-defined(ATSCC_STREAM_VT) (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/basics.dats0000644000175000017500000000067413431250607022771 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./basics.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // #ifdef BASICS_CLOREF_APP // implement cloref0_app (cf) = cf() implement cloref1_app (cf, x) = cf(x) implement cloref2_app (cf, x1, x2) = cf(x1, x2) implement cloref3_app (cf, x1, x2, x3) = cf(x1, x2, x3) // #endif // #ifdef(BASICS_CLOREF_APP) // (* ****** ****** *) (* end of [basics.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/option.dats0000644000175000017500000000123213431250607023024 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/option.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement option_some(x) = Some(x) implement option_none((*void*)) = None(*void*) // (* ****** ****** *) // implement option_unsome (opt) = let val+Some(x) = opt in x end // (* ****** ****** *) // implement option_is_some(opt) = ( case+ opt of | Some _ => true | None () => false ) (* end of [option_is_some] *) // (* ****** ****** *) // implement option_is_none(opt) = ( case+ opt of | None () => true | Some _ => false ) (* end of [option_is_none] *) // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/stream.dats0000644000175000017500000002700213431250607023012 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/stream.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) stream_make_nil() = $delay(stream_nil()) // implement {}(*tmp*) stream_make_cons(x, xs) = $delay(stream_cons(x, xs)) // (* ****** ****** *) // implement {}(*tmp*) stream_sing(x) = stream_cons(x, stream_make_nil()) // implement {}(*tmp*) stream_make_sing(x0) = $delay( stream_cons(x0, stream_make_nil()) )(*$delay*) // (* ****** ****** *) // implement stream_make_list(xs) = $delay ( case+ xs of | list_nil() => stream_nil() | list_cons(x, xs) => stream_cons(x, stream_make_list(xs)) ) (* end of [stream_make_list] *) // implement stream_make_list0(xs) = stream_make_list(g1ofg0_list(xs)) // (* ****** ****** *) implement stream_nth_opt {a}(xs, n) = let // fun loop ( xs: stream(a), n: intGte(0) ) : Option_vt(a) = ( case+ !xs of | stream_nil () => None_vt() // stream_nil | stream_cons (x, xs) => ( if n > 0 then loop(xs, pred(n)) else Some_vt(x) // end of [if] ) ) (* end of [loop] *) // in loop (xs, n) end // end of [stream_nth_opt] (* ****** ****** *) implement stream_length {a}(xs) = loop(xs, 0) where { // fun loop ( xs: stream(a), res: intGte(0) ) : intGte(0) = ( case+ !xs of | stream_nil() => res | stream_cons(_, xs) => loop(xs, res+1) ) // } (* end of [stream_length] *) (* ****** ****** *) // implement stream2list {a}(xs) = aux(xs) where { // fun aux (xs: stream(a)): List0(a) = ( case+ !xs of | stream_nil() => list_nil() | stream_cons(x, xs) => list_cons(x, aux(xs)) ) // } // implement stream2list_rev {a}(xs) = loop(xs, list_nil) where { // fun loop ( xs: stream(a), ys: List0(a) ) : List0(a) = ( case+ !xs of | stream_nil() => ys | stream_cons(x, xs) => loop(xs, list_cons(x, ys)) ) // } (* end of [stream2list_rev] *) // (* ****** ****** *) // implement stream_takeLte {a}(xs, n) = $delay ( // if (n > 0) then ( case+ !xs of | stream_nil() => stream_nil(*void*) // end of [stream_nil] | stream_cons(x, xs) => stream_cons(x, stream_takeLte{a}(xs, n-1)) // end of [stream_cons] ) (* end of [then] *) else stream_nil(*void*) // else // ) (* end of [stream_takeLte] *) // implement stream_takeLte_vt {a}(xs, n) = $ldelay ( // if (n > 0) then ( case+ !xs of | stream_nil() => stream_vt_nil(*void*) // end of [stream_nil] | stream_cons(x, xs) => stream_vt_cons(x, stream_takeLte_vt{a}(xs, n-1)) // end of [stream_cons] ) (* end of [then] *) else stream_vt_nil(*void*) // else // ) (* end of [stream_takeLte_vt] *) // (* ****** ****** *) implement stream_take_opt {a}{n}(xs, n) = let // fun auxmain {i:nat | i <= n} ( xs: stream(a), i: int(i), res: list(a, i) ) : Option_vt(list(a, n)) = ( // if (i < n) then ( case+ !xs of | stream_nil() => None_vt() | stream_cons(x, xs) => auxmain(xs, i+1, list_cons(x, res)) ) (* end of [then] *) else Some_vt(list_reverse(res)) // ) (* end of [auxmain] *) // in auxmain(xs, 0, list_nil()) end // end of [stream_take_opt] (* ****** ****** *) implement stream_drop_opt {a}{n}(xs, n) = let // fun auxmain {i:nat | i <= n} ( xs: stream(a), i: int(i) ) : Option_vt(stream(a)) = ( // if (i < n) then ( case+ !xs of | stream_nil() => None_vt() | stream_cons(x, xs) => auxmain(xs, i+1) ) (* end of [then] *) else Some_vt(xs) // end of [else] // ) (* end of [auxmain] *) // in auxmain(xs, 0(*i*)) end // end of [stream_drop_opt] (* ****** ****** *) implement stream_append (xs, ys) = $delay ( case+ !xs of | stream_nil() => !ys | stream_cons(x, xs) => stream_cons(x, stream_append(xs, ys)) // end of [stream_cons] ) (* end of [stream_append] *) (* ****** ****** *) implement stream_concat (xss) = $delay ( // case+ !xss of | stream_nil() => stream_nil((*void*)) | stream_cons(xs, xss) => ( !(stream_append(xs, stream_concat(xss))) ) // ) (* end of [stream_concat] *) (* ****** ****** *) // implement stream_map_cloref {a}(xs, fopr) = $delay ( // case+ !xs of | stream_nil() => stream_nil() | stream_cons(x, xs) => stream_cons(fopr(x), stream_map_cloref(xs, fopr)) // end of [stream_cons] // ) (* end of [stream_map_cloref] *) // implement stream_map_method {a}(xs, _) = ( lam(fopr) => stream_map_cloref{a}(xs, fopr) ) // (* ****** ****** *) // implement stream_scan_cloref {res}{a} (xs, r0, fopr) = $delay ( // case+ !xs of | stream_nil() => stream_nil() | stream_cons(x, xs) => stream_cons ( r0 , stream_scan_cloref {res}{a}(xs, fopr(r0, x), fopr) // stream_scan_cloref ) (* end of [stream_cons] *) // ) (* end of [stream_scan_cloref] *) // implement stream_scan_method {res}{a}(xs, _) = ( lam(r0, fopr) => stream_scan_cloref{res}{a}(xs, r0, fopr) // end of [lam] ) (* stream_scan_method *) // (* ****** ****** *) // implement stream_filter_cloref {a}(xs, pred) = $delay ( // case+ !xs of | stream_nil ((*void*)) => stream_nil() // end of [stream_nil] | stream_cons (x, xs) => ( if pred(x) then stream_cons ( x, stream_filter_cloref(xs, pred) ) (* end of [then] *) else !(stream_filter_cloref(xs, pred)) // end of [if] ) (* end of [stream_cons] *) // ) (* end of [stream_filter_cloref] *) // implement stream_filter_method {a}(xs) = ( lam(pred) => stream_filter_cloref{a}(xs, pred) ) (* end of [stream_filter_method] *) // (* ****** ****** *) // implement stream_forall_cloref {a}(xs, pred) = ( // case+ !xs of | stream_nil() => true | stream_cons(x, xs) => ( if pred(x) then stream_forall_cloref{a}(xs, pred) else false // end of [if] ) (* end of [stream_cons] *) // ) (* end of [stream_forall_cloref] *) // implement stream_forall_method {a}(xs) = ( lam(pred) => stream_forall_cloref{a}(xs, pred) ) (* end of [stream_forall_method] *) // (* ****** ****** *) // implement stream_exists_cloref {a}(xs, pred) = ( // case+ !xs of | stream_nil() => false | stream_cons(x, xs) => ( if pred(x) then (true) else stream_exists_cloref{a}(xs, pred) // end of [if] ) (* end of [stream_cons] *) // ) (* end of [stream_exists_cloref] *) // implement stream_exists_method {a}(xs) = ( lam(pred) => stream_exists_cloref{a}(xs, pred) ) (* end of [stream_exists_method] *) // (* ****** ****** *) // implement stream_foreach_cloref {a}(xs, fwork) = ( case+ !xs of | stream_nil() => () | stream_cons(x, xs) => ( fwork(x); stream_foreach_cloref(xs, fwork) ) (* end of [stream_cons] *) ) (* end of [stream_foreach_cloref] *) // implement stream_foreach_method {a}(xs) = ( lam(fwork) => stream_foreach_cloref{a}(xs, fwork) ) (* end of [stream_foreach_method] *) // (* ****** ****** *) // implement stream_iforeach_cloref {a}(xs, fwork) = let // fun loop ( i: Nat, xs: stream(a) ) : void = ( case+ !xs of | stream_nil() => () | stream_cons(x, xs) => ( fwork(i, x); loop(i+1, xs) ) (* end of [stream_cons] *) ) (* end of [loop] *) // in loop(0(*index*), xs) end (* end of [stream_foreach_cloref] *) // implement stream_iforeach_method {a}(xs) = ( lam(fwork) => stream_iforeach_cloref{a}(xs, fwork) ) (* end of [stream_iforeach_method] *) // (* ****** ****** *) local #define :: stream_cons in (* in of [local] *) implement stream_merge_cloref {a} ( xs10, xs20, cmp ) = let // fun auxmain ( xs10: stream(a) , xs20: stream(a) ) : stream(a) = $delay ( case+ !xs10 of | stream_nil () => !xs20 // stream_nil | x1 :: xs1 => ( case+ !xs20 of | stream_nil () => ( stream_cons{a}(x1, xs1) ) (* stream_nil *) | x2 :: xs2 => let val sgn = cmp(x1, x2) in if (sgn <= 0) then stream_cons{a}(x1, auxmain(xs1, xs20)) else stream_cons{a}(x2, auxmain(xs10, xs2)) // end of [if] end // end of [::] ) (* end of [::] *) ) (* end of [auxmain] *) // in auxmain(xs10, xs20) end // end of [stream_merge_cloref] end // end of [local] (* ****** ****** *) // implement stream_merge_method ( xs1, xs2 ) = ( lam(fopr) => stream_merge_cloref(xs1, xs2, fopr) ) (* end of [stream_merge_method] *) // (* ****** ****** *) implement stream_tabulate_cloref {a}(fopr) = auxmain(0) where { // fun auxmain ( n0: intGte(0) ) : stream(a) = ( $delay(stream_cons(fopr(n0), auxmain(n0+1))) ) (* end of [auxmain] *) // } (* end of [stream_tabulate_cloref] *) (* ****** ****** *) implement cross_stream_list {a,b}(xs, ys) = let // fun auxmain ( x0: a, xs: stream(a) , ys: List0(b), zs: List0(b) ) : stream($tup(a, b)) = $delay ( case+ zs of | list_nil() => !(cross_stream_list(xs, ys)) | list_cons(z0, zs) => stream_cons( $tup(x0, z0), auxmain(x0, xs, ys, zs) ) (* stream_cons *) ) (* end of [auxmain] *) // in // $delay( case !xs of | stream_nil() => stream_nil() | stream_cons(x, xs) => !(auxmain(x, xs, ys, ys)) ) (* $delay *) // end // end of [cross_stream_list] (* ****** ****** *) // implement cross_stream_list0 (xs, ys) = cross_stream_list(xs, g1ofg0(ys)) // (* ****** ****** *) #if defined (ATSCC_REFERENCE) #then // implement stream2cloref_exn {a}(xs) = let // val rxs = ref{stream(a)}(xs) // in // lam() => let // val xs = rxs[] val-stream_cons(x, xs) = !xs // in rxs[] := xs; x end // end of [lam] // end // end of [stream2cloref_exn] // #endif // if-defined(ATSCC_REFERENCE) (* ****** ****** *) #if defined (ATSCC_REFERENCE) #then // implement stream2cloref_opt {a}(xs) = let // val rxs = ref{stream(a)}(xs) // in // lam() => let val xs = rxs[] in case+ !xs of | stream_nil() => None_vt() | stream_cons(x, xs) => (rxs[] := xs; Some_vt(x)) end // end of [lam] // end // end of [stream2cloref_opt] // #endif // if-defined(ATSCC_REFERENCE) (* ****** ****** *) #if defined (ATSCC_REFERENCE) #then // implement stream2cloref_last {a}(xs, x0) = let // val rxs = ref{stream(a)}(xs) // val rx0 = ref{a}(x0) // in // lam() => let val xs = rxs[] in case+ !xs of | stream_nil () => rx0[] // end of [stream_nil] | stream_cons (x1, xs2) => (rxs[] := xs2; rx0[] := x1; x1) // end of [stream_cons] end // end of [lam] // end // end of [stream2cloref] // #endif // if-defined(ATSCC_REFERENCE) (* ****** ****** *) implement stream_take_while_cloref {a}(xs, pred) = let // val $tup(xs, ys) = stream_rtake_while_cloref{a}(xs, pred) // in // $tup(xs, list_reverse(ys)) // end // end of [stream_take_while_cloref] (* ****** ****** *) implement stream_rtake_while_cloref {a}(xs, pred) = let // fun loop ( xs: stream(a) , i0: intGte(0), res: List0(a) ) : $tup(stream(a), List0(a)) = ( // case+ !xs of | stream_nil() => $tup(xs, res) | stream_cons(x, xs2) => if pred(i0, x) then loop(xs2, i0+1, list_cons(x, res)) else $tup(xs, res) // end of [if] // ) (* end of [loop] *) // in // loop(xs, 0, list_nil((*void*))) // end // end of [stream_take_while_cloref] (* ****** ****** *) // implement stream_take_until_cloref {a}(xs, pred) = ( stream_take_while_cloref(xs, lam(i, x) => ~pred(i, x)) ) (* end of [stream_take_until_cloref] *) // implement stream_rtake_until_cloref {a}(xs, pred) = ( stream_rtake_while_cloref(xs, lam(i, x) => ~pred(i, x)) ) (* end of [stream_take_until_cloref] *) // (* ****** ****** *) implement stream_list_xprod2 {a,b} ( xs, ys ) = auxlst(xs, ys) where { // fun aux ( x: a, ys: List0(b) ) : stream($tup(a, b)) = $delay ( case+ ys of | list_nil() => stream_nil() | list_cons(y, ys) => stream_cons($tup(x, y), aux(x, ys)) ) fun auxlst ( xs: List0(a), ys: List0(b) ): stream($tup(a, b)) = $delay ( case+ xs of | list_nil() => stream_nil() | list_cons(x, xs) => !(stream_append(aux(x, ys), auxlst(xs, ys))) ) } (* end of [stream_list_xprod2] *) (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/gmatrixref.dats0000644000175000017500000000240513431250607023667 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/matrixref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // assume gmatrixref ( a, m, n ) = // gmatrixref [ m0,n0:int;i0,j0:nat | i0+m <= m0; j0+n <= n0 ] $tup( matrixref(a, m0, n0) , int(m0), int(n0), int(i0), int(j0), int(m), int(n) ) (* $tup *) // (* ****** ****** *) // implement gmatrixref_make_matrixref (M, m, n) = $tup(M, m, n, 0, 0, m, n) // (* ****** ****** *) // implement gmatrixref_make_subregion (GM, i0, j0, m, n) = ( $tup(GM.0, GM.1, GM.2, (GM.3)+i0, (GM.4)+j0, m, n) ) // (* ****** ****** *) // implement gmatrixref_get_at (GM, i, j) = matrixref_get_at(GM.0, (GM.3)+i, GM.2, (GM.4)+j) implement gmatrixref_set_at (GM, i, j, x) = matrixref_set_at(GM.0, (GM.3)+i, GM.2, (GM.4)+j, x) // (* ****** ****** *) // implement gmatrixref_exists_cloref (GM, f) = ( int2_exists_cloref(GM.3, GM.4, $UN.cast{cfun2(int,int,bool)}(f)) ) implement gmatrixref_forall_cloref (GM, f) = ( int2_forall_cloref(GM.3, GM.4, $UN.cast{cfun2(int,int,bool)}(f)) ) // (* ****** ****** *) // implement gmatrixref_foreach_cloref (GM, f) = ( int2_foreach_cloref(GM.3, GM.4, $UN.cast{cfun2(int,int,void)}(f)) ) // (* ****** ****** *) (* end of [matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/slistref.dats0000644000175000017500000000277313431250607023362 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/slistref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // assume slistref_type (a:vt0p) = ref(List0_vt(a)) // (* ****** ****** *) // implement slistref_make_nil {a}((*void*)) = ref(list_vt_nil((*void*))) // (* ****** ****** *) implement slistref_length {a}(r0) = let // val r0 = $UN.cast{ref(List0(a?))}(r0) // in list_length(r0[]) end // end of [slistref_length] (* ****** ****** *) implement slistref_push {a}(r0, x0) = let // val r0 = $UN.cast{ref(List0(a?))}(r0) // in r0[] := list_cons{a?}($UN.castvwtp0(x0), r0[]) end // end of [slistref_push] (* ****** ****** *) implement slistref_pop_opt {a}(r0) = let // val r0 = $UN.cast{ref(List0(a?))}(r0) // in // case+ r0[] of | list_nil() => None_vt(*void*) | list_cons(x0, xs) => ( r0[] := xs; Some_vt($UN.castvwtp0{a}(x0)) ) // end // end of [slistref_pop_opt] (* ****** ****** *) implement slistref_foldleft {res}{a} (r0, init, fopr) = let // val r0 = $UN.cast{ref(List0(a))}(r0) // val fopr = $UN.cast{(res, a)-res}(fopr) // in list_foldleft{res}{a}(r0[], init, fopr) end // end of [slistref_foldleft] (* ****** ****** *) implement slistref_foldright {a}{res} (r0, fopr, sink) = let // val r0 = $UN.cast{ref(List0(a))}(r0) // val fopr = $UN.cast{(a, res)-res}(fopr) // in list_foldright{a}{res}(r0[], fopr, sink) end // end of [slistref_foldright] (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/list_vt.dats0000644000175000017500000000343713431250607023211 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/list_vt.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) list_vt_is_nil (xs) = ( case+ xs of | list_vt_nil() => true | list_vt_cons _ => false ) // (* ****** ****** *) // implement {}(*tmp*) list_vt_is_cons (xs) = ( case+ xs of | list_vt_nil() => false | list_vt_cons _ => true ) // (* ****** ****** *) // implement list_vt_length {a}(xs) = loop(xs, 0) where { // fun loop {i,j:nat} ( xs: !list_vt(a, i), j: int(j) ) : int(i+j) = ( case+ xs of | list_vt_nil() => j | list_vt_cons(_, xs) => loop(xs, j+1) ) // prval () = lemma_list_vt_param(xs) // } (* list_vt_length *) // (* ****** ****** *) // implement list_vt_snoc {a}(xs, x0) = ( list_vt_append{a}(xs, list_vt_sing(x0)) ) implement list_vt_extend {a}(xs, x0) = ( list_vt_append{a}(xs, list_vt_sing(x0)) ) // (* ****** ****** *) implement list_vt_append {a}(xs, ys) = let // fun aux {i,j:nat} .. ( xs: list_vt(a, i), ys: list_vt(a, j) ) : list_vt(a, i+j) = ( case+ xs of | ~list_vt_nil() => ys | ~list_vt_cons(x, xs) => list_vt_cons(x, aux(xs, ys)) ) // prval () = lemma_list_vt_param(xs) prval () = lemma_list_vt_param(ys) // in aux(xs, ys) end // end of [list_vt_append] (* ****** ****** *) // implement list_vt_reverse {a}(xs) = list_vt_reverse_append{a}(xs, nil_vt()) // (* ****** ****** *) // implement list_vt_reverse_append {a}(xs, ys) = loop(xs, ys) where { // fun loop {i,j:nat} .. ( xs: list_vt(a, i), ys: list_vt(a, j) ) : list_vt(a, i+j) = ( case+ xs of | ~list_vt_nil() => ys | ~list_vt_cons(x, xs) => loop(xs, list_vt_cons(x, ys)) ) // prval () = lemma_list_vt_param(xs) prval () = lemma_list_vt_param(ys) // } (* end of [list_vt_reverse_append] *) // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/gprint.dats0000644000175000017500000000262113431250607023022 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/gprint.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) gprint_flush ((*void*)) = () // (* ****** ****** *) // implement {}(*tmp*) gprint_unit(_) = () // (* ****** ****** *) // implement{} gprint_list$beg() = gprint_string "(" implement{} gprint_list$end() = gprint_string ")" implement{} gprint_list$sep() = gprint_string ", " // (* ****** ****** *) implement {a}(*tmp*) gprint_list (xs) = let // fun loop ( xs: List(a), i: int ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => ( if i > 0 then gprint_list$sep(); // end of [if] gprint_val(x); loop(xs, i+1) ) ) (* end of [loop] *) // in // gprint_list$beg(); loop(xs, 0); gprint_list$end() // end // end of [gprint_list] implement (a)(*tmp*) gprint_val (xs) = gprint_list (xs) (* ****** ****** *) implement {a}(*tmp*) gprint_arrayref {n}(xs, asz) = let // prval() = lemma_arrayref_param(xs) // fun loop { i:nat | i <= n } (i: int(i)): void = ( // if ( i < asz ) then let val () = if i > 0 then gprint_array$sep() // end of [if] in gprint_val(xs[i]); loop(i+1) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // in // gprint_array$beg(); loop(0); gprint_array$end() // end // end of [gprint_arrayref] (* ****** ****** *) (* end of [gprint.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/funarray.dats0000644000175000017500000001012713431250607023346 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/funarray.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) datatype brauntree (a:t@ype+, int) = | E (a, 0) of () | {n1,n2:nat | n2 <= n1; n1 <= n2+1} B (a, n1+n2+1) of (a, brauntree (a, n1), brauntree (a, n2)) // end of [brauntree] stadef bt = brauntree (* ****** ****** *) // assume funarray_t0ype_int_type (a:t@ype, n:int) = brauntree(a, n) // (* ****** ****** *) implement funarray_make_nil((*void*)) = E(*void*) (* ****** ****** *) implement funarray_size {a}(A) = let // fun diff { nl,nr:nat | nr <= nl && nl <= nr+1 } .. ( nr: int(nr), t0: bt (a, nl) ) : int (nl-nr) = ( case+ t0 of | E () => 0 | B (_, tl, tr) => if nr > 0 then let val nr2 = half(nr) in if nr > nr2 + nr2 then diff (nr2, tl) else diff (nr2-1, tr) end // end of [then] else 1 // end of [else] // end of [diff] ) (* end of [diff] *) // fun size {n:nat} .. ( t0: bt (a, n) ) : int(n) = ( case+ t0 of | E () => 0 | B (_, tl, tr) => let val nr = size(tr) val d1 = 1 + diff(nr, tl) in 2 * nr + d1 end // end of [B] // end of [size] ) (* end of [size] *) // prval() = lemma_funarray_param(A) // in size(A) end // end of [funarray_size] // (* ****** ****** *) implement funarray_get_at {a}{n}(A, i) = let // fun get_at { n,i:nat| i < n } .. ( t0: bt (a, n), i: int i ) : a = ( if i > 0 then let val i2 = half(i) in if i > i2 + i2 then let val+B(_, tl, _) = t0 in get_at (tl, i2) end // end of [then] else let val+B(_, _, tr) = t0 in get_at (tr, i2-1) end // end of [else] end // end of [then] else let val+B(x, _, _) = t0 in x end // end of [else] ) (* end of [get_at] *) // in get_at(A, i) end // end of [funarray_get_at] (* ****** ****** *) implement funarray_set_at {a}{n}(A, i, x0) = let // fun set_at { n,i:nat | i < n } .. ( t0: bt (a, n), i: int i, x0: a ) : bt (a, n) = ( if i > 0 then let val i2 = half(i) val+B(x, tl, tr) = t0 in if i > i2 + i2 then B(x, set_at (tl, i2, x0), tr) else B(x, tl, set_at (tr, i2-1, x0)) // end of [if] end // end of [then] else let val+B(_, t1, t2) = t0 in B(x0, t1, t2) end // end of [else] // ) (* end of [set_at] *) // in set_at(A, i, x0) end // end of [funarray_set_at] (* ****** ****** *) implement funarray_insert_l {a}{n}(A, x0) = let // fun ins_l {n:nat} .. ( t0: bt (a, n), x0: a ) :<> bt (a, n+1) = ( case+ t0 of | E () => B (x0, E (), E ()) | B (x, tl, tr) => B (x0, ins_l (tr, x), tl) ) (* end of [ins_l] *) // prval() = lemma_funarray_param(A) // in ins_l(A, x0) end // end of [funarray_insert_l] (* ****** ****** *) implement funarray_insert_r {a}{n}(A, n, x0) = let // fun ins_r {n:nat} .. ( t0: bt (a, n), n: int n, x0: a ) : bt (a, n+1) = ( // if n > 0 then let val n2 = half(n) val+B(x, tl, tr) = t0 in if n > n2 + n2 then B(x, ins_r (tl, n2, x0), tr) else B(x, tl, ins_r (tr, n2-1, x0)) // end of [if] end // end of [then] else B (x0, E (), E ()) // ) (* end of [ins_r] *) // prval() = lemma_funarray_param(A) // in ins_r(A, n, x0) end // end of [funarray_insert_r] (* ****** ****** *) implement funarray_remove_l {a}{n}(A) = let // fun rem_l {n:pos} .. ( t0: bt (a, n) ) : $tup(bt (a, n-1), a) = ( case+ t0 of | B(x, E(), _) => $tup(E(), x) | B(xl, tl, tr) =>> let val $tup(tl, x0) = rem_l(tl) in $tup(B(xl, tr, tl), x0) end // end of [lorem] ) // in rem_l(A) end // end of [funarray_remove_l] (* ****** ****** *) implement funarray_remove_r {a}{n}(A, n) = let // fun rem_r {n:pos} .. ( t0: bt (a, n), n: int n ) : $tup(bt (a, n-1), a) = let // val n2 = half(n); val+ B (x, tl, tr) = t0 // in // case+ tl of | E() => $tup(E(), x) | B _ => if n > n2 + n2 then let val $tup(tr, x0) = rem_r(tr, n2) in $tup(B(x, tl, tr), x0) end // end of [then] else let val $tup(tl, x0) = rem_r(tl, n2) in $tup(B(x, tl, tr), x0) end // end of [else] // end of [if] // end // end of [rem_r] // in rem_r(A, n) end // end of [funarray_remove_r] (* ****** ****** *) (* end of [funarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/stream_vt.dats0000644000175000017500000001624113431250607023526 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/stream.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) stream_vt_make_nil() = $ldelay(stream_vt_nil()) // (* ****** ****** *) // implement {}(*tmp*) stream_vt_make_cons(x, xs) = $ldelay( stream_vt_cons(x, xs), $effmask_wrt(~xs) )(*$ldelay*) // (* ****** ****** *) // implement {}(*tmp*) stream_vt_sing(x0) = stream_vt_cons(x0, stream_vt_make_nil()) // implement {}(*tmp*) stream_vt_make_sing(x0) = $ldelay ( stream_vt_cons(x0, stream_vt_make_nil()) ) (* $ldelay *) // (* ****** ****** *) // implement stream_vt_free{a}(xs) = ~(xs) // (* ****** ****** *) implement stream_vt2t {a}(xs) = ( $effmask_all(aux(xs)) where { // fun aux ( xs: stream_vt(a) ) : stream(a) = let // val xs = $UN.castvwtp0{ptr}(xs) // in // $delay ( let // val xs = $UN.castvwtp0{stream_vt(a)}(xs) // in case+ !xs of | ~stream_vt_nil() => stream_nil() | ~stream_vt_cons(x, xs) => stream_cons(x, aux(xs)) end // end of [let] ) // end // end of [aux] // } (* end of [where] *) ) (* end of [stream_vt2t] *) (* ****** ****** *) implement stream_vt_takeLte {a}(xs, n0) = ( $effmask_all (auxmain(xs, n0)) where { // fun auxmain ( xs: stream_vt(a), n0: Nat ) : stream_vt(a) = $ldelay ( // if (n0 > 0) then ( case+ !xs of | ~stream_vt_nil() => stream_vt_nil() | ~stream_vt_cons(x, xs) => stream_vt_cons(x, auxmain(xs, n0-1)) ) else ( ~(xs); stream_vt_nil() ) , ~(xs) // HX: called for freeing the stream! // ) (* [$ldelay] *) // } (* end of [where] *) ) (* end of [stream_vt_takeLte] *) (* ****** ****** *) implement stream_vt_length {a}(xs) = loop(xs, 0) where { // fun loop ( xs: stream_vt(a), len: intGte(0) ) : intGte(0) = ( case+ !xs of | ~stream_vt_nil() => len | ~stream_vt_cons(_, xs) => loop(xs, len+1) ) (* end of [loop] *) // } (* end of [stream_vt_length] *) (* ****** ****** *) // implement stream2list_vt {a}(xs) = aux(xs) where { // fun aux (xs: stream_vt(a)): List0_vt(a) = ( case+ !xs of | ~stream_vt_nil() => list_vt_nil() | ~stream_vt_cons(x, xs) => list_vt_cons(x, aux(xs)) ) // } // implement stream2list_vt_rev {a}(xs) = loop(xs, nil_vt()) where { // fun loop ( xs: stream_vt(a), res: List0_vt(a) ) : List0_vt(a) = ( case+ !xs of | ~stream_vt_nil() => res | ~stream_vt_cons(x, xs) => loop(xs, cons_vt(x, res)) ) (* end of [loop] *) // } (* end of [stream2list_vt_rev] *) (* ****** ****** *) implement stream_vt_append {a} ( xs, ys ) = $effmask_all (auxmain(xs, ys)) where { // fun auxmain ( xs: stream_vt(a) , ys: stream_vt(a) ) : stream_vt(a) = $ldelay ( ( case+ !xs of | ~stream_vt_nil() => !ys | ~stream_vt_cons(x, xs) => stream_vt_cons(x, auxmain(xs, ys)) // end of [stream_vt_cons] ) : stream_vt_con(a) , (~(xs); ~(ys)) // HX: for freeing the stream! ) (* end of [auxmain] *) // } (* end of [stream_vt_append] *) (* ****** ****** *) implement stream_vt_concat {a}(xss) = let // fun auxmain ( xss: stream_vt(stream_vt(a)) ) : stream_vt(a) = $ldelay ( // case+ !xss of | ~stream_vt_nil ((*void*)) => stream_vt_nil() | ~stream_vt_cons (xs, xss) => !(stream_vt_append(xs, auxmain(xss))) // , ~(xss) // HX: called for freeing the stream! ) (* end of [auxmain] *) // in $effmask_all(auxmain(xss)) end (* end of [stream_vt_concat] *) (* ****** ****** *) // implement stream_vt_map_cloref {a}{b} ( xs, f0 ) = auxmain(xs) where { // fun auxmain ( xs: stream_vt(a) ) : stream_vt(b) = $ldelay ( ( case+ !xs of | ~stream_vt_nil() => stream_vt_nil() | ~stream_vt_cons(x, xs) => stream_vt_cons(f0(x), auxmain(xs)) ) : stream_vt_con(b) , ~(xs) // called when the stream is freed ) (* end of [auxmain] *) // } (* end of [stream_vt_map_cloref] *) // implement stream_vt_map_method (xs, _) = ( llam(f0) => stream_vt_map_cloref(xs, f0) ) (* end of [stream_vt_map_method] *) // (* ****** ****** *) implement stream_vt_filter_cloref {a}(xs, p0) = auxmain(xs) where { // fun auxmain ( xs: stream_vt(a) ) : stream_vt(a) = $ldelay ( // let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil ((*_*)) => stream_vt_nil() // end of [stream_vt_nil] | ~stream_vt_cons (x, xs1) => ( if p0(x) then ( stream_vt_cons(x, auxmain(xs1)) ) (* end of [then] *) else ( !(auxmain(xs1)) ) (* end of [else] *) // end of [if] ) (* end of [stream_vt_cons] *) // end : stream_vt_con(a) // end of [let] // , // ~(xs) // called when the stream is freed // ) (* end of auxmain *) // } (* end of [stream_vt_filter_cloref] *) // implement stream_vt_filter_method (xs) = ( llam(p0) => stream_vt_filter_cloref(xs, p0) ) (* end of [stream_vt_filter_method] *) // (* ****** ****** *) // implement stream_vt_exists_cloref {a}(xs, pred) = loop(xs) where { // fun loop ( xs: stream_vt(a) ) : bool = ( case+ !xs of | ~stream_vt_nil() => false | ~stream_vt_cons(x, xs) => if pred(x) then (~xs; true) else loop(xs) // stream_vt_cons ) // } (* end of [stream_vt_exists_cloref] *) // implement stream_vt_exists_method (xs) = ( llam(pred) => stream_vt_exists_cloref(xs, pred) ) (* end of [stream_vt_exists_method] *) // (* ****** ****** *) // implement stream_vt_forall_cloref {a}(xs, pred) = loop(xs) where { // fun loop ( xs: stream_vt(a) ) : bool = ( case+ !xs of | ~stream_vt_nil() => true | ~stream_vt_cons(x, xs) => if pred(x) then loop(xs) else (~xs; false) // stream_vt_cons ) // } (* end of [stream_vt_forall_cloref] *) // implement stream_vt_forall_method (xs) = ( llam(pred) => stream_vt_forall_cloref(xs, pred) ) (* end of [stream_vt_forall_method] *) // (* ****** ****** *) // implement stream_vt_foreach_cloref {a}(*poly*) (xs, fwork) = loop(xs) where { // fun loop ( xs: stream_vt(a) ) : void = ( case+ !xs of | ~stream_vt_nil() => () | ~stream_vt_cons(x, xs) => (fwork(x); loop(xs)) ) // } (* end of [stream_vt_foreach_cloref] *) // implement stream_vt_foreach_method (xs) = ( llam(fwork) => stream_vt_foreach_cloref(xs, fwork) ) (* end of [stream_vt_foreach_method] *) // (* ****** ****** *) // implement stream_vt_iforeach_cloref {a}(*poly*) (xs, fwork) = loop(0, xs) where { // fun loop ( i: Nat, xs: stream_vt(a) ) : void = ( case+ !xs of | ~stream_vt_nil() => () | ~stream_vt_cons(x, xs) => (fwork(i, x); loop(i+1, xs)) ) // } (* end of [stream_vt_iforeach_cloref] *) // implement stream_vt_iforeach_method (xs) = ( llam(fwork) => stream_vt_iforeach_cloref(xs, fwork) ) (* end of [stream_vt_iforeach_method] *) // (* ****** ****** *) // implement stream_vt_rforeach_cloref {a}(*poly*) (xs, fwork) = auxmain(xs) where { // fun auxmain ( xs: stream_vt(a) ) : void = ( case+ !xs of | ~stream_vt_nil() => () | ~stream_vt_cons(x, xs) => (auxmain(xs); fwork(x)) ) // } (* end of [stream_vt_rforeach_cloref] *) // implement stream_vt_rforeach_method (xs) = ( llam(fwork) => stream_vt_rforeach_cloref(xs, fwork) ) (* end of [stream_vt_rforeach_method] *) // (* ****** ****** *) implement stream_vt_tabulate_cloref {a}(fopr) = auxmain(0) where { // fun auxmain ( n0: intGte(0) ) : stream_vt(a) = ( $ldelay(stream_vt_cons(fopr(n0), auxmain(n0+1))) ) (* end of [auxmain] *) // } (* end of [stream_tabulate_cloref] *) (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/ML/0000755000175000017500000000000013431250607021151 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/ML/option0.dats0000644000175000017500000000066613431250607023426 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../../SATS/ML/option0.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) option0_is_none (opt) = ( case+ opt of | None0() => true | Some0(_) => false ) implement {}(*tmp*) option0_is_some (opt) = ( case+ opt of | Some0(_) => true | None0() => false ) // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/ML/list0.dats0000644000175000017500000003030513431250607023062 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../../SATS/ML/list0.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) list0_sing(x) = list0_cons(x, list0_nil()) // implement {}(*tmp*) list0_pair(x, y) = list0_cons(x, list0_cons(y, list0_nil())) // (* ****** ****** *) // implement {}(*tmp*) list0_is_nil(xs) = ( case+ xs of | list0_nil() => true | _ =>> false ) implement {}(*tmp*) list0_is_cons(xs) = ( case+ xs of | list0_cons _ => true | _ =>> false ) // (* ****** ****** *) // implement list0_head_opt {a}(xs) = ( case+ xs of | list0_nil() => None_vt() | list0_cons(x, _) => Some_vt(x) ) (* end of [list0_head_opt] *) // (* ****** ****** *) // implement list0_tail_opt {a}(xs) = ( case+ xs of | list0_nil() => None_vt() | list0_cons(_, xs) => Some_vt(xs) ) (* end of [list0_tail_opt] *) // (* ****** ****** *) // implement list0_length{a}(xs) = list_length{a}($UN.cast{List0(a)}(xs)) // (* ****** ****** *) implement list0_last_opt {a}(xs) = let // fun loop ( x0: a, xs: list0(a) ) : a = ( case+ xs of | list0_nil() => x0 | list0_cons(x1, xs) => loop(x1, xs) ) // in case+ xs of | list0_nil() => None_vt() | list0_cons(x, xs) => Some_vt(loop(x, xs)) end // end of [list0_last_opt] (* ****** ****** *) implement list0_init_opt {a}(xs) = let // fun aux {n:nat} .. ( x0: a, xs: list(a, n) ) :<> list0(a) = ( case+ xs of | list_nil() => list0_nil() | list_cons(x, xs) => list0_cons(x0, aux(x, xs)) ) // in // case+ xs of | list0_nil() => None_vt() | list0_cons(x, xs) => Some_vt(aux(x, g1ofg0(xs))) // end // end of [list0_init_opt] (* ****** ****** *) // implement list0_get_at_opt (xs, n) = ( case+ xs of | list0_nil() => None_vt() // list0_nil | list0_cons(x, xs) => if n > 0 then list0_get_at_opt(xs, n-1) else Some_vt(x) // end of [list0_cons] ) (* end of [list0_get_at_opt] *) // (* ****** ****** *) implement list0_make_elt (n, x) = let // val n = g1ofg0(n) // in // if n >= 0 then g0ofg1(list_make_elt(n, x)) else list0_nil() // end // end of [list0_make_elt] (* ****** ****** *) // implement list0_make_intrange_2 (l, r) = $UN.cast(list_make_intrange_2(l, r)) implement list0_make_intrange_3 (l, r, d) = $UN.cast(list_make_intrange_3(l, r, d)) // (* ****** ****** *) // implement {a}(*tmp*) fprint_list0 (out, xs) = let // fun loop ( xs: list0(a), i0: int ) : void = ( // case+ xs of | list0_nil() => () | list0_cons(x, xs) => ( if i0 > 0 then fprint_list0$sep<>(out); // end of [if] fprint_val(out, x); loop(xs, i0+1) ) (* end of [list0_cons] *) // ) (* end of [loop] *) // in loop (xs, 0) end // end of [fprint_list0] // (* ****** ****** *) // implement {}(*tmp*) fprint_list0$sep (out) = ( fprint_string(out, ", ") ) // (* ****** ****** *) implement {a}(*tmp*) fprint_list0_sep (out, xs, sep) = let // implement fprint_list0$sep<> (out) = ( fprint_string(out, ", ") ) // in fprint_list0 (out, xs) end // end of [fprint_list0_sep] (* ****** ****** *) // implement list0_snoc{a}(xs, x0) = ( g0ofg1{a} ( list_snoc{a}(g1ofg0(xs), x0) ) ) implement list0_extend{a}(xs, x0) = ( g0ofg1{a} ( list_extend{a}(g1ofg0(xs), x0) ) ) // list0_extend // (* ****** ****** *) // implement list0_append {a}(xs, ys) = ( g0ofg1 ( list_append{a} (g1ofg0{a}(xs), g1ofg0{a}(ys)) ) ) // list0_append // (* ****** ****** *) // implement mul_int_list0 {a}(m, xs) = ( g0ofg1{a} (mul_int_list{a}(m, g1ofg0(xs))) ) // (* ****** ****** *) // implement list0_reverse{a}(xs) = ( g0ofg1(list_reverse{a}(g1ofg0(xs))) ) // implement list0_reverse_append{a}(xs, ys) = ( g0ofg1 ( list_reverse_append{a}(g1ofg0(xs), g1ofg0(ys)) ) ) // (* ****** ****** *) // implement list0_concat{a} (xss) = ( g0ofg1{a}(list_concat{a}($UN.cast(xss))) ) // list0_concat // (* ****** ****** *) implement list0_remove_at_opt {a} ( xs, i0 ) = aux(xs, 0) where { // fun aux ( xs: list0(a) , i0: intGte(0) ) : Option_vt(list0(a)) = ( case+ xs of | list0_nil() => None_vt() // list0_nil | list0_cons(x, xs) => if i0 > 0 then let val opt = aux(xs, i0-1) in case+ opt of | ~None_vt() => None_vt() | ~Some_vt(xs) => Some_vt(list0_cons(x, xs)) end // end of [then] else Some_vt(xs) // end of [else] // end of [if] ) // } (* end of [list0_remove_at_opt] *) (* ****** ****** *) // implement list0_exists (xs, pred) = list_exists(g1ofg0(xs), pred) // implement list0_exists_method {a}(xs) = lam(pred) => list0_exists{a}(xs, pred) // (* ****** ****** *) // implement list0_iexists (xs, pred) = list_iexists(g1ofg0(xs), pred) // implement list0_iexists_method {a}(xs) = lam(pred) => list0_iexists{a}(xs, pred) // (* ****** ****** *) // implement list0_forall (xs, pred) = list_forall(g1ofg0(xs), pred) // implement list0_forall_method {a}(xs) = lam(pred) => list0_forall{a}(xs, pred) // (* ****** ****** *) // implement list0_iforall (xs, pred) = list_iforall(g1ofg0(xs), pred) // implement list0_iforall_method {a}(xs) = lam(pred) => list0_iforall{a}(xs, pred) // (* ****** ****** *) // implement list0_app{a} (xs, fwork) = list0_foreach{a}(xs, fwork) implement list0_foreach{a} (xs, fwork) = list_foreach{a}(g1ofg0(xs), fwork) // implement list0_foreach_method {a}(xs) = lam(fwork) => list0_foreach{a}(xs, fwork) // (* ****** ****** *) // implement list0_iforeach{a} (xs, fwork) = list_iforeach{a}(g1ofg0(xs), fwork) // implement list0_iforeach_method {a}(xs) = lam(fwork) => list0_iforeach{a}(xs, fwork) // (* ****** ****** *) // implement list0_rforeach{a} (xs, fwork) = list_rforeach{a}(g1ofg0(xs), fwork) // implement list0_rforeach_method {a}(xs) = lam(fwork) => list0_rforeach{a}(xs, fwork) // (* ****** ****** *) // implement list0_filter {a}(xs, pred) = g0ofg1(list_filter(g1ofg0(xs), pred)) implement list0_filter_method {a}(xs) = lam(pred) => list0_filter{a}(xs, pred) // (* ****** ****** *) // implement list0_labelize {x}(xs) = g0ofg1(list_labelize(g1ofg0(xs))) // (* ****** ****** *) // implement list0_map {a}{b} (xs, fopr) = g0ofg1(list_map(g1ofg0(xs), fopr)) // implement list0_map_method {a}{b}(xs, _) = lam(fopr) => list0_map{a}{b}(xs, fopr) // (* ****** ****** *) // implement list0_imap {a}{b} (xs, fopr) = g0ofg1(list_imap(g1ofg0(xs), fopr)) // implement list0_imap_method {a}{b}(xs, _) = lam(fopr) => list0_imap{a}{b}(xs, fopr) // (* ****** ****** *) // implement list0_map2 {a1,a2}{b} (xs1, xs2, fopr) = g0ofg1 ( list_map2(g1ofg0(xs1), g1ofg0(xs2), fopr) ) (*g0ofg1*) // (* ****** ****** *) // implement list0_mapcons {a}(x0, xss) = ( case+ xss of | list0_nil() => list0_nil() | list0_cons(xs, xss) => list0_cons (list0_cons(x0, xs), list0_mapcons(x0, xss)) ) // (* ****** ****** *) implement list0_tabulate {a}(n0, fopr) = auxmain(0) where { // fun auxmain (i: int): list0(a) = ( if (i < n0) then list0_cons (fopr(i), auxmain(i+1)) else list0_nil((*void*)) ) // } (* end of [list0_tabulate] *) (* ****** ****** *) implement list0_find_opt (xs, pred) = ( case+ xs of | list0_nil() => None_vt((*void*)) | list0_cons(x, xs) => if pred(x) then Some_vt(x) else list0_find_opt(xs, pred) // end of [if] ) (* end of [list0_find_opt] *) implement list0_find_opt_method {a}(xs) = ( lam(pred) => list0_find_opt{a}(xs, pred) ) (* end of [list0_find_opt_method] *) (* ****** ****** *) implement list0_find_suffix (xs, pred) = ( case+ xs of | list0_nil() => list0_nil() | list0_cons(x0, xs1) => if pred(xs) then (xs) else list0_find_suffix(xs1, pred) // end of [if] ) (* end of [list0_find_suffix] *) implement list0_find_suffix_method {a}(xs) = ( lam(pred) => list0_find_suffix{a}(xs, pred) ) (* end of [list0_find_suffix_method] *) (* ****** ****** *) implement list0_zip {a,b} (xs, ys) = let // fun aux : $d2ctype (list0_zip) = lam(xs, ys) => ( case+ xs of | nil0() => nil0() | cons0(x, xs) => ( case+ ys of | nil0() => nil0() | cons0(y, ys) => cons0($tup(x, y), aux(xs, ys)) ) (* end of [cons0] *) ) // in aux{a,b}(xs, ys) end // end of [list0_zip] (* ****** ****** *) implement list0_zipwith {a1,a2}{b} (xs, ys, fopr) = let // fun aux : $d2ctype (list0_zipwith) = lam(xs, ys, fopr) => ( case+ xs of | nil0() => nil0() | cons0(x, xs) => ( case+ ys of | nil0() => nil0() | cons0(y, ys) => cons0(fopr(x, y), aux(xs, ys, fopr)) ) (* end of [cons0] *) ) // in aux{a1,a2}{b}(xs, ys, fopr) end // end of [list0_zipwith] implement list0_zipwith_method {a1,a2}{b}(xs, ys) = ( lam(fopr) => list0_zipwith{a1,a2}{b}(xs, ys, fopr) ) (* end of [list0_zipwith_method] *) (* ****** ****** *) implement list0_foldleft {res}{a} (xs, init, fopr) = let // fun aux ( res: res, xs: list0(a) ) : res = case+ xs of | list0_nil() => res | list0_cons(x, xs) => aux(fopr(res, x), xs) // in aux(init, xs) end // end of [list0_foldleft] implement list0_foldleft_method {res}{a}(xs, init) = ( // lam(fopr) => list0_foldleft{res}{a}(xs, init, fopr) // ) (* end of [list0_foldleft_method] *) (* ****** ****** *) implement list0_foldright {a}{res} (xs, fopr, sink) = let // fun aux ( xs: list0(a), res: res ) : res = ( case+ xs of | list0_nil() => res | list0_cons(x, xs) => fopr(x, aux(xs, sink)) ) (* end of [aux] *) // in aux(xs, sink) end // end of [list0_foldright] implement list0_foldright_method {res}{a}(xs, sink) = ( // lam(fopr) => list0_foldright{res}{a}(xs, fopr, sink) // ) (* end of [list0_foldright_method] *) (* ****** ****** *) implement list0_foldleft_suffix {res}{a} (xs, init, fopr) = let // fun aux ( res: res, xs: list0(a) ) : res = case+ xs of | list0_nil() => res | list0_cons(_, xs1) => aux(fopr(res, xs), xs1) // in aux(init, xs) end // end of [list0_foldleft_suffix] (* ****** ****** *) // implement {a}(*tmp*) list0_sort_1(xs) = g0ofg1(list_sort_1(g1ofg0(xs))) // implement list0_sort_2(xs, cmp) = g0ofg1(list_sort_2(g1ofg0(xs), cmp)) // (* ****** ****** *) // implement list0_mergesort {a}(xs, cmp) = g0ofg1(list_mergesort(g1ofg0(xs), cmp)) // (* ****** ****** *) // implement streamize_list0_zip {a,b}(xs, ys) = ( streamize_list_zip{a,b}(g1ofg0(xs), g1ofg0(ys)) ) implement streamize_list0_cross {a,b}(xs, ys) = ( streamize_list_cross{a,b}(g1ofg0(xs), g1ofg0(ys)) ) // (* ****** ****** *) #if defined(ATSCC_STREAM_VT) #then // implement streamize_list0_nchoose {a}(xs, n) = let // fun auxmain ( xs: list0(a), n: intGte(0) ) : stream_vt(list0(a)) = $ldelay ( // if (n > 0) then ( case+ xs of | list0_nil() => stream_vt_nil() // list0_nil | list0_cons(x0, xs1) => let val res1 = auxmain(xs1, n-1) // end of [val] val res2 = auxmain(xs1, n) in !( // lazy_vt_force stream_vt_append ( stream_vt_map_cloref {list0(a)}{list0(a)} (res1, lam(ys) => list0_cons(x0, ys)), res2 ) // stream_vt_append ) (* lazy_vt_force *) end // end of [list0_cons] ) (* end of [then] *) else ( stream_vt_cons(list0_nil, stream_vt_make_nil((*void*))) ) (* end of [else] *) // ) : stream_vt_con(list0(a)) // auxmain // in $effmask_all(auxmain(xs, n)) end (* end of [streamize_list0_nchoose] *) // #endif // ATSCC_STREAM_VT (* ****** ****** *) #if defined(ATSCC_STREAM_VT) #then // implement streamize_list0_nchoose_rest {a}(xs, n) = let // typedef tuplist = $tup(list0(a), list0(a)) // fun auxmain ( xs: list0(a), n: intGte(0) ) : stream_vt(tuplist) = $ldelay ( // if (n > 0) then ( case+ xs of | list0_nil() => stream_vt_nil() // list0_nil | list0_cons(x0, xs1) => let val res1 = auxmain(xs1, n-1) // end of [val] val res2 = auxmain(xs1, n) in !( // lazy_vt_force stream_vt_append ( stream_vt_map_cloref {tuplist}{tuplist} ( res1 , lam(ysys) => $tup(list0_cons(x0, ysys.0), ysys.1) ) , stream_vt_map_cloref {tuplist}{tuplist} ( res2 , lam(ysys) => $tup(ysys.0, list0_cons(x0, ysys.1)) ) ) // stream_vt_append ) (* lazy_vt_force *) end // end of [list0_cons] ) (* end of [then] *) else stream_vt_cons($tup(list0_nil, xs), stream_vt_make_nil()) // ) : stream_vt_con(tuplist) // auxmain // in $effmask_all(auxmain(xs, n)) end (* end of [streamize_list0_nchoose_rest] *) // #endif // ATSCC_STREAM_VT (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/ML/array0.dats0000644000175000017500000000267413431250607023235 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../../SATS/ML/array0.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // assume array0_vt0ype_type (a:vt0p) = arrszref(a) // (* ****** ****** *) // implement array0_make_elt (asz, x0) = arrszref_make_elt(asz, x0) // (* ****** ****** *) implement array0_size{a}(A) = arrszref_size{a}(A) (* ****** ****** *) implement array0_get_at(A, i) = arrszref_get_at(A, i) implement array0_set_at(A, i, x) = arrszref_set_at(A, i, x) implement array0_exch_at(A, i, x) = arrszref_exch_at(A, i, x) (* ****** ****** *) // implement array0_exists (A, pred) = arrszref_exists_cloref(A, pred) // implement array0_exists_method (A) = lam(pred) => array0_exists(A, pred) // (* ****** ****** *) // implement array0_forall (A, pred) = arrszref_forall_cloref(A, pred) // implement array0_forall_method (A) = lam(pred) => array0_forall(A, pred) // (* ****** ****** *) // implement array0_app (A, fwork) = array0_foreach(A, fwork) // implement array0_foreach (A, fwork) = arrszref_foreach_cloref(A, fwork) // implement array0_foreach_method (A) = lam(fwork) => array0_foreach(A, fwork) // (* ****** ****** *) implement array0_tabulate {a}(asz, fopr) = let // val asz = g1ofg0(asz) val asz = (if asz >= 0 then asz else 0): Nat // in arrszref_tabulate_cloref{a}(asz, fopr) end // end of [array0_tabulate] (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/DATS/ML/matrix0.dats0000644000175000017500000000350313431250607023413 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../../SATS/ML/array0.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // assume matrix0_vt0ype_type (a:vt0p) = mtrxszref(a) // (* ****** ****** *) // implement matrix0_make_elt {a}(nrow, ncol, x0) = mtrxszref_make_elt{a}(nrow, ncol, x0) // (* ****** ****** *) // implement matrix0_nrow(M) = mtrxszref_get_nrow(M) implement matrix0_ncol(M) = mtrxszref_get_ncol(M) // (* ****** ****** *) // implement matrix0_get_at (M, i, j) = mtrxszref_get_at(M, i, j) // implement matrix0_set_at (M, i, j, x0) = mtrxszref_set_at(M, i, j, x0) // (* ****** ****** *) // implement matrix0_foreach {a}(M0, fwork) = mtrxszref_foreach_cloref{a}(M0, fwork) implement matrix0_foreach_row {a}(M0, fwork) = mtrxszref_foreach_row_cloref{a}(M0, fwork) implement matrix0_foreach_col {a}(M0, fwork) = mtrxszref_foreach_col_cloref{a}(M0, fwork) // implement matrix0_foreach_method {a}(M0) = lam(fwork) => matrix0_foreach{a}(M0, fwork) implement matrix0_foreach_row_method {a}(M0) = lam(fwork) => matrix0_foreach_row{a}(M0, fwork) implement matrix0_foreach_col_method {a}(M0) = lam(fwork) => matrix0_foreach_col{a}(M0, fwork) // (* ****** ****** *) // implement matrix0_tabulate {a}{m,n} (nrow, ncol, fopr) = mtrxszref_tabulate_cloref{a}(nrow, ncol, fopr) // (* ****** ****** *) // implement cbind_matrix0_matrix0 {a}(M0, M1) = let // val m0 = M0.nrow() val m1 = M1.nrow() val n0 = M0.ncol() val n1 = M1.ncol() val () = assertloc(m0 = m1) // val M0 = mtrxszref_get_matrixref(M0) val M1 = mtrxszref_get_matrixref(M1) // in (* in-of-let *) // mtrxszref_make_matrixref ( cbind_matrixref_matrixref{a} ($UN.cast(M0), $UN.cast(M1), m0, n0, n1), m0, n0+n1 ) (* mtrxszref_make_matrixref *) // end // end of [cbind_matrix0_matrix0] // (* ****** ****** *) (* end of [matrix0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/0000755000175000017500000000000013431250607021255 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/basics.sats0000644000175000017500000000605613431250607023424 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) // typedef fun0 (b:vt0p) = () - b typedef fun1 (a:t0p, b:vt0p) = (a) - b typedef fun2 (a1:t0p, a2:t0p, b:vt0p) = (a1, a2) - b typedef fun3 (a1:t0p, a2:t0p, a3: t0p, b:vt0p) = (a1, a2, a3) - b // (* ****** ****** *) // typedef cfun0 (b:vt0p) = () - b typedef cfun1 (a:t0p, b:vt0p) = (a) - b typedef cfun2 (a1:t0p, a2:t0p, b:vt0p) = (a1, a2) - b typedef cfun3 (a1:t0p, a2:t0p, a3: t0p, b:vt0p) = (a1, a2, a3) - b // stadef cfun = cfun0 stadef cfun = cfun1 stadef cfun = cfun2 stadef cfun = cfun3 // (* ****** ****** *) // fun cloref2fun0 {b:vt0p} (f: cfun0(b)): fun0(b) = "mac#%" // fun cloref2fun1 {a:t0p;b:vt0p} (f: cfun1(a, b)): fun1(a, b) = "mac#%" // fun cloref2fun2 {a1,a2:t0p;b:vt0p} (cfun2(a1, a2, b)): fun2(a1, a2, b) = "mac#%" fun cloref2fun3 {a1,a2,a3:t0p;b:vt0p} (cfun3(a1, a2, a3, b)): fun3(a1, a2, a3, b) = "mac#%" // (* ****** ****** *) // fun cloref0_app {b:vt0p} (f: cfun0(b)): b = "mac#%" // fun cloref1_app {a:t0p;b:vt0p} (f: cfun1(a, b), a): b = "mac#%" // fun cloref2_app {a1,a2:t0p;b:vt0p} (f: cfun2(a1, a2, b), a1, a2): b = "mac#%" // fun cloref3_app {a1,a2,a3:t0p;b:vt0p} (f: cfun3(a1, a2, a3, b), a1, a2, a3): b = "mac#%" // symintr cloref_app overload cloref_app with cloref0_app overload cloref_app with cloref1_app overload cloref_app with cloref2_app overload cloref_app with cloref3_app // (* ****** ****** *) // // HX-2016-04: // This is mostly for someone // not familiar with dependent types // datatype list0_t0ype_type (a:t@ype+) = | list0_nil of ((*void*)) | list0_cons of (a, list0(a)) // where list0(a:t@ype) = list0_t0ype_type(a) // (* ****** ****** *) // castfn g0ofg1_list : {a:t0p}(List(a)) - list0(a) castfn list0_of_list : {a:t0p}(List(a)) - list0(a) // castfn g1ofg0_list : {a:t0p}(list0(a)) - List0(a) castfn list_of_list0 : {a:t0p}(list0(a)) - List0(a) // overload g0ofg1 with g0ofg1_list of 100 overload g1ofg0 with g1ofg0_list of 100 // (* ****** ****** *) // castfn g0ofg1_list_vt : {a:t0p}(List_vt(a)) - list0(a) castfn list0_of_list_vt : {a:t0p}(List_vt(a)) - list0(a) // overload g0ofg1 with g0ofg1_list_vt of 100 // (* ****** ****** *) // datatype option0_t0ype_type ( a: t@ype+ ) = // option0_t0ype_type | Some0 of (a) | None0 of () // where option0 = option0_t0ype_type // (* ****** ****** *) // castfn g0ofg1_option : {a:t0p}(Option(a)) - option0(a) castfn option0_of_option : {a:t0p}(Option(a)) - option0(a) // overload g0ofg1 with g0ofg1_option of 100 // (* ****** ****** *) // castfn g0ofg1_option_vt : {a:t0p}(Option_vt(a)) - option0(a) castfn option0_of_option_vt : {a:t0p}(Option_vt(a)) - option0(a) // overload g0ofg1 with g0ofg1_option_vt of 100 // (* ****** ****** *) // abstype array0_vt0ype_type(a:vt@ype) = ptr typedef array0(a:vt@ype) = array0_vt0ype_type(a) // (* ****** ****** *) // abstype matrix0_vt0ype_type(a:vt@ype) = ptr typedef matrix0(a:vt@ype) = matrix0_vt0ype_type(a) // (* ****** ****** *) (* end of [basics.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/0000755000175000017500000000000013431250607022010 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/qlistref.dats0000644000175000017500000000536213431250607024524 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/qlistref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // datatype qlistref (a:vt@ype) = Q of ( ref(List0_vt(a)), ref(List0_vt(a)) ) // assume qlistref_type(a) = qlistref(a) // (* ****** ****** *) // implement qlistref_make_nil {a}((*void*)) = Q(f, r) where { // val f = ref(list_vt_nil) and r = ref(list_vt_nil) // } (* end of [qlistref_make_nil] *) // (* ****** ****** *) implement qlistref_length {a}(que) = let // val+Q(r0, r1) = que // val r0 = $UN.cast{ref(List0(a?))}(r0) val r1 = $UN.cast{ref(List0(a?))}(r1) // in list_length(r0[]) + list_length(r1[]) end // end of [qlistref_length] (* ****** ****** *) implement qlistref_enqueue {a}(que, x0) = let // val+Q(r0, r1) = que // val x0 = $UN.castvwtp0{a?}(x0) // val r0 = $UN.cast{ref(List0(a?))}(r0) val r1 = $UN.cast{ref(List0(a?))}(r1) // in r0[] := list_cons{a?}(x0, r0[]) end // end of [qlistref_enqueue] (* ****** ****** *) implement qlistref_dequeue_opt {a}(que) = let // val+Q(r0, r1) = que // val r0 = $UN.cast{ref(List0(a?))}(r0) val r1 = $UN.cast{ref(List0(a?))}(r1) // in // case+ r1[] of | list_nil() => let val xs = r0[] val () = r0[] := list_nil() in case+ xs of | list_nil() => None_vt(*void*) | list_cons(x0, xs) => ( r1[] := xs; Some_vt($UN.castvwtp0{a}(x0)) ) end // end of [list_nil] | list_cons(x0, xs) => ( r1[] := xs; Some_vt($UN.castvwtp0{a}(x0)) ) (* end of [list_cons] *) // end // end of [qlistref_dequeue_opt] (* ****** ****** *) implement qlistref_foldleft {res}{a} (que, init, fopr) = let // val+Q(r0, r1) = que // val r0 = $UN.cast{ref(List0(a))}(r0) val r1 = $UN.cast{ref(List0(a))}(r1) // val fopr = $UN.cast{(res, a) - res}(fopr) // fun auxl ( res: res, xs: List0(a) ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => auxl(fopr(res, x), xs) ) // fun auxr ( xs: List0(a), res: res ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => fopr(auxr(xs, res), x) ) // in auxr(r0[], auxl(init, r1[])) end // end of [qlistref_foldleft] (* ****** ****** *) implement qlistref_foldright {a}{res} (que, fopr, sink) = let // val+Q(r0, r1) = que // val r0 = $UN.cast{ref(List0(a))}(r0) val r1 = $UN.cast{ref(List0(a))}(r1) // val fopr = $UN.cast{(a, res) - res}(fopr) // fun auxl ( res: res, xs: List0(a) ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => auxl(fopr(x, res), xs) ) // fun auxr ( xs: List0(a), res: res ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => fopr(x, auxr(xs, res)) ) // in auxr(r1[], auxl(sink, r0[])) end // end of [qlistref_foldright] (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/matrixref.dats0000644000175000017500000000754213431250607024676 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/matrixref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement matrixref_exists_cloref (M, m, n, pred) = ( int2_exists_cloref (m, n, $UN.cast{cfun2(int,int,bool)}(pred)) // int2_exists_cloref ) implement matrixref_forall_cloref (M, m, n, pred) = ( int2_forall_cloref (m, n, $UN.cast{cfun2(int,int,bool)}(pred)) // int2_forall_cloref ) // (* ****** ****** *) // implement matrixref_foreach_cloref (M, m, n, fwork) = ( int2_foreach_cloref (m, n, $UN.cast{cfun2(int,int,void)}(fwork)) // int2_foreach_cloref ) // (* ****** ****** *) // implement cbind_matrixref_matrixref (M1, M2, m0, n1, n2) = let // prval () = lemma_matrixref_param(M1) prval () = lemma_matrixref_param(M2) // in // matrixref_tabulate_cloref ( m0(*nrow*), n1+n2(*ncol*) , lam(i, j) => if j < n1 then M1[i,n1,j] else M2[i,n2,j-n1]) // end (* end of [cbind_matrixref_matrixref] *) // (* ****** ****** *) // implement rbind_matrixref_matrixref (M1, M2, m1, m2, n0) = let // prval () = lemma_matrixref_param(M1) prval () = lemma_matrixref_param(M2) // in // matrixref_tabulate_cloref ( m1+m2(*nrow*), n0(*ncol*) , lam(i, j) => if i < m1 then M1[i,n0,j] else M2[i-m1,n0,j]) // end (* end of [cbind_matrixref_matrixref] *) // (* ****** ****** *) // // HX: matrix-with-size // (* ****** ****** *) // implement mtrxszref_make_elt (m, n, x0) = ( mtrxszref_make_matrixref (matrixref_make_elt(m, n, x0), m, n) // mtrxszref_make_matrixref ) (* end of [mtrxszref_make_elt] *) // (* ****** ****** *) // implement mtrxszref_exists_cloref (MSZ, ftest) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_exists_cloref (m, n, $UN.cast{cfun2(int,int,bool)}(ftest)) // end // end of [mtrxszref_exists_cloref] // (* ****** ****** *) // implement mtrxszref_forall_cloref (MSZ, ftest) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_forall_cloref (m, n, $UN.cast{cfun2(int,int,bool)}(ftest)) // end // end of [mtrxszref_forall_cloref] // (* ****** ****** *) // implement mtrxszref_exists_method (MSZ) = ( lam(ftest) => mtrxszref_exists_cloref(MSZ, ftest) // end of [lam] ) implement mtrxszref_forall_method (MSZ) = ( lam(ftest) => mtrxszref_forall_cloref(MSZ, ftest) // end of [lam] ) // (* ****** ****** *) // implement mtrxszref_foreach_cloref (MSZ, fwork) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_foreach_cloref (m, n, $UN.cast{cfun2(int,int,void)}(fwork)) // end // end of [mtrxszref_foreach_cloref] // implement mtrxszref_foreach_method {a}(MSZ) = ( lam(fwork) => mtrxszref_foreach_cloref{a}(MSZ, fwork) ) (* end of [mtrxszref_foreach_method] *) // (* ****** ****** *) // implement mtrxszref_foreach_row_cloref (MSZ, fwork) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_foreach_cloref (m, n, $UN.cast{cfun2(int,int,void)}(fwork)) // end // end of [mtrxszref_foreach_row_cloref] // implement mtrxszref_foreach_row_method {a}(MSZ) = ( lam(fwork) => mtrxszref_foreach_row_cloref{a}(MSZ, fwork) ) (* end of [mtrxszref_foreach_row_method] *) // (* ****** ****** *) // implement mtrxszref_foreach_col_cloref (MSZ, fwork) = let val m = MSZ.nrow() val n = MSZ.ncol() in // int2_foreach_cloref ( n, m , lam(j: int, i: int) => fwork($UN.cast{Nat}(i), $UN.cast{Nat}(j)) ) (* end of [int2_foreach_cloref] *) // end // end of [mtrxszref_foreach_col_cloref] // implement mtrxszref_foreach_col_method {a}(MSZ) = ( lam(fwork) => mtrxszref_foreach_col_cloref{a}(MSZ, fwork) ) (* end of [mtrxszref_foreach_col_method] *) // (* ****** ****** *) // implement mtrxszref_tabulate_cloref {a}(m, n, fopr) = let // val fopr = $UN.cast(fopr) // in // $UN.cast ( mtrxszref_make_matrixref (matrixref_tabulate_cloref{a?}(m, n, fopr), m, n) ) end (* end of [mtrxszref_tabulate] *) // (* ****** ****** *) (* end of [matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/arrayref.dats0000644000175000017500000000415513431250607024505 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/arrayref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement arrayref_exists_cloref (A, n, pred) = ( int_exists_cloref(n, $UN.cast{cfun1(int,bool)}(pred)) ) // (* ****** ****** *) // implement arrayref_forall_cloref (A, n, pred) = ( int_forall_cloref(n, $UN.cast{cfun1(int,bool)}(pred)) ) // (* ****** ****** *) // implement arrayref_foreach_cloref (A, n, fwork) = ( int_foreach_cloref(n, $UN.cast{cfun1(int,void)}(fwork)) ) // (* ****** ****** *) // // HX: array-with-size // (* ****** ****** *) // implement arrszref_make_elt {a}(n, x0) = let // val A = arrayref_make_elt{a}(n, x0) // in arrszref_make_arrayref{a}(A, n) end (* end of [arrszref_make_elt] *) // (* ****** ****** *) // implement arrszref_exists_cloref {a}(A, pred) = let val asz = arrszref_size(A) in // int_exists_cloref (asz, $UN.cast{cfun1(int,bool)}(pred)) // end // end of [arrszref_exists_cloref] // implement arrszref_exists_method {a}(A) = ( lam(pred) => arrszref_exists_cloref{a}(A, pred) // end of [lam] ) // (* ****** ****** *) // implement arrszref_forall_cloref {a}(A, pred) = let val asz = arrszref_size(A) in // int_forall_cloref (asz, $UN.cast{cfun1(int,bool)}(pred)) // end // end of [arrszref_forall_cloref] // implement arrszref_forall_method {a}(A) = ( lam(pred) => arrszref_forall_cloref{a}(A, pred) // end of [lam] ) // (* ****** ****** *) // implement arrszref_foreach_cloref {a}(ASZ, fwork) = let val asz = arrszref_size(ASZ) in // int_foreach_cloref (asz, $UN.cast{cfun1(int,void)}(fwork)) // end // end of [arrszref_foreach_cloref] // implement arrszref_foreach_method {a}(ASZ) = ( lam(fwork) => arrszref_foreach_cloref{a}(ASZ, fwork) // end of [lam] ) (* end of [mtrxszref_foreach_method] *) // (* ****** ****** *) // implement arrszref_tabulate_cloref {a}(asz, fopr) = let // val fopr = $UN.cast(fopr) // in // $UN.cast ( // arrszref_make_arrayref (arrayref_tabulate_cloref{a?}(asz, fopr), asz) // ) end (* end of [arrszref_tabulate] *) // (* ****** ****** *) (* end of [arrayref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/intrange.dats0000644000175000017500000002254613431250607024505 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" staload "./../SATS/intrange.sats" *) (* ****** ****** *) // implement int_repeat_lazy (n0, fwork) = ( // int_repeat_cloref(n0, lazy2cloref(fwork)) // ) (* end of [int_repeat_lazy] *) // (* ****** ****** *) // implement int_repeat_cloref (n0, fwork) = let // fun loop ( n: int, fwork: cfun0(void) ) : void = ( // if n > 0 then (fwork(); loop(n-1, fwork)) else () // ) (* end of [loop] *) // in loop (n0, fwork) end // end of [int_repeat_cloref] // implement int_repeat_method (n0) = lam(fwork) => int_repeat_cloref(n0, fwork) // (* ****** ****** *) // implement int_exists_cloref (n0, pred) = ( intrange_exists_cloref(0, n0, pred) ) implement int_forall_cloref (n0, pred) = ( intrange_forall_cloref (0, n0, pred) ) // implement int_exists_method (n0) = lam(f) => int_exists_cloref(n0, f) implement int_forall_method (n0) = lam(f) => int_forall_cloref(n0, f) // (* ****** ****** *) // implement int_foreach_cloref (n0, pred) = ( intrange_foreach_cloref(0, n0, pred) ) implement int_rforeach_cloref (n0, pred) = ( intrange_rforeach_cloref(0, n0, pred) ) // (* ****** ****** *) // implement int_foreach_method (n0) = lam(f) => int_foreach_cloref(n0, f) // (* ****** ****** *) // implement int_foldleft_cloref {res} (n0, ini, fopr) = ( intrange_foldleft_cloref{res}(0, n0, ini, fopr) ) // implement int_foldleft_method {res} ( n0, _(*TYPE*) ) = ( lam(ini, fopr) => int_foldleft_cloref{res}(n0, ini, fopr) ) (* int_foldleft_method *) // (* ****** ****** *) // implement int_foldright_cloref {res} (n0, fopr, snk) = ( intrange_foldright_cloref{res}(0, n0, fopr, snk) ) // implement int_foldright_method {res} ( n0, _(*TYPE*) ) = ( lam(fopr, snk) => int_foldright_cloref{res}(n0, fopr, snk) ) (* int_foldright_method *) // (* ****** ****** *) // implement int_list_map_cloref {a}{n}(n0, fopr) = let // fun aux { i:nat | i <= n } (i: int(i)): list(a, n-i) = ( // if (i < n0) then list_cons(fopr(i), aux(i+1)) else list_nil() // end of [if] ) // in aux(0) end // end of [int_list_map_cloref] // implement int_list_map_method {a}{n}(n0, tres) = ( // lam(fopr) => int_list_map_cloref{a}{n}(n0, fopr) // ) (* end of [int_list_map_method] *) // (* ****** ****** *) // implement int_list0_map_cloref {a}(n0, fopr) = let // val n0 = g1ofg0(n0) // in // if (n0 >= 0) then g0ofg1 ( int_list_map_cloref(n0, fopr) ) (* g0ofg1 *) else list0_nil(*void*) // end // end of [int_list0_map_cloref] // implement int_list0_map_method {a}(n0, tres) = ( // lam(fopr) => int_list0_map_cloref{a}(n0, fopr) // ) (* end of [int_list0_map_method] *) // (* ****** ****** *) #if defined(ATSCC_STREAM) // implement int_stream_map_cloref {a}(n0, fopr) = let // fun aux {i:nat} ( i: int(i) ) : stream(a) = $delay( // if (i < n0) then ( stream_cons(fopr(i), aux(i+1)) ) else stream_nil() // end of [if] ) // in aux(0) end // end of [aux] // implement int_stream_map_method {a}(n0, tres) = ( // lam(fopr) => int_stream_map_cloref{a}(n0, fopr) // ) (* end of [int_stream_map_method] *) // #endif // ATSCC_STREAM (* ****** ****** *) #if defined(ATSCC_STREAM_VT) // implement int_stream_vt_map_cloref {a}(n0, fopr) = let // fun aux {i:nat} ( i: int(i) ) : stream_vt(a) = $ldelay ( // if (i < n0) then ( stream_vt_cons(fopr(i), aux(i+1)) ) else stream_vt_nil((*void*)) // end of [if] ) : stream_vt_con(a) // [aux] // in aux(0) end // end of [aux] // implement int_stream_vt_map_method {a}(n0, tres) = ( // llam(fopr) => int_stream_vt_map_cloref{a}(n0, fopr) // ) (* end of [int_stream_vt_map_method] *) // #endif // ATSCC_STREAM_VT (* ****** ****** *) // implement int2_exists_cloref (n1, n2, pred) = ( intrange2_exists_cloref (0, n1, 0, n2, pred) ) implement int2_forall_cloref (n1, n2, pred) = ( intrange2_forall_cloref (0, n1, 0, n2, pred) ) // implement int2_foreach_cloref (n1, n2, fwork) = ( intrange2_foreach_cloref (0, n1, 0, n2, fwork) ) // (* ****** ****** *) // implement int_cross_exists_method (n1, n2) = ( lam(pred) => int2_exists_cloref(n1, n2, pred) ) (* int_cross_exists_method *) // implement int_cross_forall_method (n1, n2) = ( lam(pred) => int2_forall_cloref(n1, n2, pred) ) (* int_cross_forall_method *) // implement int_cross_foreach_method (n1, n2) = ( lam(fwork) => int2_foreach_cloref(n1, n2, fwork) ) (* int_cross_foreach_method *) // (* ****** ****** *) implement intrange_exists_cloref (l, r, pred) = let // fun loop ( l: int, r: int, pred: cfun1(int, bool) ) : bool = ( // if l < r then ( if pred(l) then true else loop (l+1, r, pred) ) else false // ) (* end of [loop] *) // in loop (l, r, pred) end // end of [intrange_exists_cloref] // implement intrange_exists_method(lr) = ( lam(pred) => intrange_exists_cloref(lr.0, lr.1, pred) ) (* intrange_exists_method *) // (* ****** ****** *) implement intrange_forall_cloref (l, r, pred) = let // fun loop ( l: int, r: int, pred: cfun1(int, bool) ) : bool = ( // if l < r then ( if pred(l) then loop(l+1, r, pred) else false ) else true // ) (* end of [loop] *) // in loop (l, r, pred) end // end of [intrange_forall_cloref] // implement intrange_forall_method(lr) = ( lam(pred) => intrange_forall_cloref(lr.0, lr.1, pred) ) (* intrange_forall_method *) // (* ****** ****** *) // implement intrange_foreach_cloref (l, r, fwork) = let // fun loop ( l: int, r: int, fwork: cfun1(int, void) ) : void = ( // if (l < r) then let val () = fwork(l) in loop(l+1, r, fwork) end // end of [then] else ((*void*)) // else // ) (* end of [loop] *) // in loop(l, r, fwork) end // end of [intrange_foreach_cloref] // implement intrange_foreach_method(lr) = ( lam(fwork) => intrange_foreach_cloref(lr.0, lr.1, fwork) ) (* intrange_foreach_method *) // (* ****** ****** *) // implement intrange_rforeach_cloref (l, r, fwork) = let // fun loop ( l: int, r: int, fwork: cfun1(int, void) ) : void = ( // if (l < r) then let val () = fwork(r-1) in loop(l, r-1, fwork) end // end of [then] else ((*void*)) // else // ) (* end of [loop] *) // in loop(l, r, fwork) end // end of [intrange_rforeach_cloref] // implement intrange_rforeach_method(lr) = ( lam(fwork) => intrange_rforeach_cloref(lr.0, lr.1, fwork) ) (* intrange_rforeach_method *) // (* ****** ****** *) // implement intrange_foldleft_cloref {res} ( l, r, ini, fopr ) = loop(l, r, ini) where { // fun loop ( l: int, r: int, ini: res ) : res = ( // if (l < r) then loop(l+1, r, fopr(ini, l)) else ini // end of [if] // ) (* end of [loop] *) // } (* end of [intrange_foldleft_cloref] *) // implement intrange_foldleft_method {res} ( $tup(l, r), _(*TYPE*) ) = ( lam(ini, fopr) => intrange_foldleft_cloref{res}(l, r, ini, fopr) // end of [lam] ) // (* ****** ****** *) implement intrange_foldright_cloref {res} ( l, r, fopr, snk ) = loop(l, r, snk) where { // fun loop ( l: int, r: int, snk: res ) : res = ( // if (l < r) then loop(l, r-1, fopr(r-1, snk)) else snk // ) (* end of [loop] *) // } (* end of [intrange_foldright_cloref] *) (* ****** ****** *) // implement intrange_foldright_method {res} ( $tup(l, r), _(*TYPE*) ) = ( lam(fopr, snk) => intrange_foldright_cloref{res}(l, r, fopr, snk) // end of [lam] ) // (* ****** ****** *) implement intrange2_exists_cloref (l1_, r1_, l2_, r2_, pred) = let // // HX-2016-07-26: // loop1 and loop2 need to have // the same number of arguments // in order to support atscc2clj // fnx loop1 ( l1: int, r1: int , l2: int, r2: int , f: cfun2 (int, int, bool) ) : bool = ( // if l1 < r1 then loop2(l1, r1, l2, r2, pred) else false // ) (* end of [loop1] *) // and loop2 ( l1: int, r1: int , l2: int, r2: int , pred: cfun2 (int, int, bool) ) : bool = ( // if ( l2 < r2 ) then ( // if ( pred(l1, l2) ) then true else loop2(l1, r1, l2+1, r2, pred) // end of [if] ) else loop1(l1+1, r1, l2_, r2_, pred) // ) (* end of [loop2] *) // in loop1(l1_, r1_, l2_, r2_, pred) end // end of [intrange2_exists_cloref] (* ****** ****** *) implement intrange2_forall_cloref (l1_, r1_, l2_, r2_, pred) = let // // HX-2016-07-26: // loop1 and loop2 need to have // the same number of arguments // in order to support atscc2clj // fnx loop1 ( l1: int, r1: int , l2: int, r2: int , pred: cfun2 (int, int, bool) ) : bool = ( // if l1 < r1 then loop2 (l1, r1, l2, r2, pred) else true // ) (* end of [loop1] *) // and loop2 ( l1: int, r1: int , l2: int, r2: int , pred: cfun2 (int, int, bool) ) : bool = ( // if ( l2 < r2 ) then ( if ( pred(l1, l2) ) then loop2(l1, r1, l2+1, r2, pred) else false // end of [if] ) else loop1(l1+1, r1, l2_, r2_, pred) // ) (* end of [loop2] *) // in loop1 (l1_, r1_, l2_, r2_, pred) end // end of [intrange2_forall_cloref] (* ****** ****** *) implement intrange2_foreach_cloref (l1_, r1_, l2_, r2_, fwork) = let // // HX-2016-07-26: // loop1 and loop2 need to have // the same number of arguments // in order to support atscc2clj // fnx loop1 ( l1: int, r1: int , l2: int, r2: int , fwork: cfun2 (int, int, void) ) : void = ( // if l1 < r1 then loop2(l1, r1, l2, r2, fwork) else ((*void*)) // ) (* end of [loop1] *) // and loop2 ( l1: int, r1: int , l2: int, r2: int , fwork: cfun2 (int, int, void) ) : void = ( // if ( l2 < r2 ) then ( // fwork(l1, l2); loop2(l1, r1, l2+1, r2, fwork) // ) else ( loop1(succ(l1), r1, l2_, r2_, fwork) ) (* end of [else] *) // ) (* end of [loop2] *) // in loop1 (l1_, r1_, l2_, r2_, fwork) end // end of [intrange2_foreach_cloref] (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/list.dats0000644000175000017500000003557613431250607023660 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/list.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) list_is_nil(xs) = ( case+ xs of list_nil() => true | _ =>> false ) implement {}(*tmp*) list_is_cons(xs) = ( case+ xs of list_cons _ => true | _ =>> false ) // (* ****** ****** *) // implement list_make_elt {x}(n, x) = loop(n, list_nil()) where { // fun loop {i,j:nat} .. ( i0: int(i), res: list(x, j) ) :<> list(x, i+j) = ( if i0 > 0 then loop(i0-1, list_cons{x}(x, res)) else res ) // } (* end of [list_make_elt] *) // (* ****** ****** *) // implement list_make_intrange_2 (l, r) = list_make_intrange_3 (l, r, 1) // (* ****** ****** *) implement list_make_intrange_3 (l, r, d) = let // fun loop1 ( n: int, x: int, d: intGt(0), res: List0(int) ) : List0(int) = if n > 0 then loop1 (n-1, x - d, d, list_cons (x, res)) else res fun loop2 ( n: int, x: int, d: intGt(0), res: List0(int) ) : List0(int) = if n > 0 then loop2 (n-1, x + d, d, list_cons (x, res)) else res // in // case+ 0 of | _ when d > 0 => if l < r then let val d = $UN.cast{intGt(0)}(d) // end of [val] val n = (r - l + d - 1) / d in loop1 (n, l + (n - 1) * d, d, list_nil) end else list_nil () | _ when d < 0 => if l > r then let val d = $UN.cast{intGt(0)}(~d) val n = (l - r + d - 1) / d in loop2 (n, l - (n - 1) * d, d, list_nil) end else list_nil () | _ (* d = 0 *) => list_nil () // end // end of [list_make_intrange_3] (* ****** ****** *) // implement {a}(*tmp*) fprint_list (out, xs) = let // fun loop ( xs: List(a), i: int ) : void = ( // case+ xs of | list_nil () => () | list_cons (x, xs) => ( if i > 0 then fprint_list$sep<> (out); // end of [if] fprint_val (out, x); loop (xs, i+1) ) (* end of [list_cons] *) // ) (* end of [loop] *) // in loop (xs, 0) end // end of [fprint_list] // (* ****** ****** *) // implement {}(*tmp*) fprint_list$sep (out) = fprint_string (out, ", ") // (* ****** ****** *) implement {a}(*tmp*) fprint_list_sep (out, xs, sep) = let // implement fprint_list$sep<> (out) = fprint_string (out, ", ") // in fprint_list (out, xs) end // end of [fprint_list_sep] (* ****** ****** *) implement list_length {a}(xs) = let // fun loop{i,j:int} ( xs: list(a, i), j: int(j) ) : int(i+j) = ( case+ xs of | list_nil () => j | list_cons (_, xs) => loop (xs, j+1) ) (* end of [loop] *) // in loop (xs, 0) end // end of [list_length] (* ****** ****** *) // implement list_length_gte {x}(xs, n2) = (list_length_compare{x}(xs, n2) >= 0) // implement list_length_compare {x}(xs, n2) = loop(xs, n2) where { // fun loop {i:nat;j:int} .. (xs: list(x, i), j: int j) :<> int(sgn(i-j)) = ( if (j < 0) then 1 else ( case+ xs of | list_cons (_, xs) => loop(xs, j-1) // list_cons | _ (*list_nil*) =>> (if j = 0 then 0 else ~1) ) ) (* end of [loop] *) // prval() = lemma_list_param(xs) // } (* end of [list_length_compare] *) (* ****** ****** *) // implement list_head(xs) = let val+list_cons(x, _) = xs in x end implement list_tail(xs) = let val+list_cons(_, xs) = xs in xs end // (* ****** ****** *) implement list_last(xs) = let val+list_cons(x, xs) = xs in case+ xs of | list_nil() => x | list_cons _ =>> list_last(xs) end // end of [list_last] (* ****** ****** *) implement list_get_at {a}(xs, i) = ( // if (i = 0) then let val+list_cons(x, xs) = xs in x end // end of [then] else let val+list_cons(_, xs) = xs in list_get_at(xs, i-1) end // end of [else] // ) (* end of [list_get_at] *) (* ****** ****** *) // implement list_snoc (xs, x0) = list_append(xs, list_sing(x0)) implement list_extend (xs, x0) = list_append(xs, list_sing(x0)) // (* ****** ****** *) implement list_append (xs, ys) = let // prval() = lemma_list_param(xs) prval() = lemma_list_param(ys) // in // case+ xs of | list_nil () => ys | list_cons (x, xs) => list_cons (x, list_append (xs, ys)) // end of [list_cons] // end // end of [list_append] (* ****** ****** *) // implement mul_int_list {a}{m,n}(m, xs) = let // fun loop {i,j:nat} ( i0: int(i), res: list(a, j*n) ) : list(a, (i+j)*n) = if (i0 > 0) then ( loop{i-1,j+1} (i0-1, list_append{a}(xs, res)) ) else ( res where { prval EQINT() = eqint_make{i,0}() } ) (* end of [else] *) // in loop{m,0}(m, list_nil((*void*))) end // end of [mul_int_list] // (* ****** ****** *) implement list_reverse{a}(xs) = ( list_reverse_append{a}(xs, list_nil(*void*)) ) (* end of [list_reverse] *) (* ****** ****** *) implement list_reverse_append {a}(xs, ys) = let // prval () = lemma_list_param (xs) prval () = lemma_list_param (ys) // fun loop{i,j:nat} ( xs: list(a, i), ys: list(a, j) ) : list(a, i+j) = ( case+ xs of | list_nil () => ys | list_cons (x, xs) => loop (xs, list_cons (x, ys)) ) (* end of [loop] *) // in loop (xs, ys) end // end of [list_reverse_append] (* ****** ****** *) implement list_concat {a}(xss) = auxlst(xss) where { // fun auxlst ( xss: List(List(a)) ) : List0(a) = ( // case+ xss of | list_nil() => list_nil() | list_cons (xs, xss) => list_append ( xs, auxlst(xss) ) where { prval () = lemma_list_param(xs) } (* end of [list_cons] *) // ) // } (* end of [list_concat] *) (* ****** ****** *) implement list_take(xs, i) = ( // if i > 0 then let val+list_cons(x, xs) = xs in list_cons(x, list_take(xs, i-1)) end // end of [then] else list_nil() // end of [else] // ) (* end of [list_take] *) implement list_drop(xs, i) = ( // if i > 0 then let val+list_cons(_, xs) = xs in list_drop(xs, i-1) end // end of [then] else xs // end of [else] // ) (* end of [list_drop] *) (* ****** ****** *) implement list_split_at (xs, i) = ( $tup(list_take(xs, i), list_drop(xs, i)) ) (* end of [list_split_at] *) (* ****** ****** *) implement list_insert_at (xs, i, x0) = ( // if (i > 0) then let val+list_cons (x, xs) = xs in list_cons (x, list_insert_at (xs, i-1, x0)) end // end of [then] else list_cons (x0, xs) // ) (* end of [list_insert_at] *) (* ****** ****** *) implement list_remove_at (xs, i) = let // val+list_cons(x, xs) = xs // in // if (i > 0) then list_cons (x, list_remove_at(xs, i-1)) // end of [then] else xs // end of [else] // end (* end of [list_remove_at] *) (* ****** ****** *) implement list_takeout_at (xs, i) = let // val+list_cons (x, xs) = xs // in // if (i > 0) then let // val $tup(x_rem, xs) = list_takeout_at (xs, i-1) // in $tup(x_rem, list_cons(x, xs)) end // end of [then] else $tup(x, xs) // end of [else] // end (* end of [list_takeout_at] *) (* ****** ****** *) // implement list_exists (xs, pred) = ( case+ xs of | list_nil() => false | list_cons(x, xs) => if pred(x) then true else list_exists(xs, pred) // end of [if[ // end of [list_cons] ) (* end of [list_exists] *) // implement list_exists_method {a}(xs) = lam(pred) => list_exists{a}(xs, pred) // (* ****** ****** *) // implement list_iexists {a} ( xs, pred ) = loop(0, xs) where { // fun loop ( i: intGte(0), xs: List(a) ) : bool = ( case+ xs of | list_nil() => false | list_cons(x, xs) => if pred(i, x) then true else loop(i+1, xs) // end of [list_cons] ) } (* end of [list_iexists] *) // implement list_iexists_method {a}(xs) = lam(pred) => list_iexists{a}(xs, pred) // (* ****** ****** *) // implement list_forall (xs, pred) = ( case+ xs of | list_nil() => (true) | list_cons(x, xs) => if pred(x) then list_forall(xs, pred) else false // end of [if[ // end of [list_cons] ) (* end of [list_forall] *) // implement list_forall_method {a}(xs) = lam(pred) => list_forall{a}(xs, pred) // (* ****** ****** *) // implement list_iforall {a} ( xs, pred ) = loop(0, xs) where { // fun loop ( i: intGte(0), xs: List(a) ) : bool = ( case+ xs of | list_nil() => (true) | list_cons(x, xs) => if pred(i, x) then loop(i+1, xs) else false // end of [list_cons] ) } (* end of [list_iforall] *) // implement list_iforall_method {a}(xs) = lam(pred) => list_iforall{a}(xs, pred) // (* ****** ****** *) // implement list_app(xs, f) = list_foreach(xs, f) // implement list_foreach (xs, f) = ( // case+ xs of | list_nil() => () | list_cons(x, xs) => (f(x); list_foreach(xs, f)) // ) (* end of [list_foreach] *) // implement list_foreach_method {a}(xs) = lam(fwork) => list_foreach{a}(xs, fwork) // (* ****** ****** *) // implement list_iforeach {a}(xs, fwork) = let // fun aux ( i: Nat, xs: List(a) ) : void = // case+ xs of | list_nil() => () | list_cons(x, xs) => (fwork(i, x); aux(i+1, xs)) // in aux(0, xs) end (* end of [list_iforeach] *) // implement list_iforeach_method {a}(xs) = lam(fwork) => list_iforeach{a}(xs, fwork) // (* ****** ****** *) // implement list_rforeach (xs, f) = ( // case+ xs of | list_nil() => () | list_cons(x, xs) => (list_rforeach(xs, f); f(x)) // ) (* end of [list_rforeach] *) // implement list_rforeach_method {a}(xs) = lam(fwork) => list_rforeach{a}(xs, fwork) // (* ****** ****** *) implement list_filter {a}(xs, p) = aux(xs) where { // fun aux{n:int} ( xs: list(a, n) ) : listLte(a, n) = case+ xs of | list_nil() => list_nil() | list_cons(x, xs) => ( if p(x) then list_cons(x, aux(xs)) else aux(xs) // end of [if] ) // end of [list_cons] // } (* end of [list_filter] *) // implement list_filter_method {a}(xs) = lam(pred) => list_filter{a}(xs, pred) // (* ****** ****** *) // implement list_labelize {a}(xs) = list_imap{a}(xs, lam(i, x) => $tup(i, x)) // (* ****** ****** *) // implement list_map {a}{b} ( xs, fopr ) = aux(xs) where { // fun aux {n:nat} .. ( xs: list(a, n) ) : list(b, n) = ( case+ xs of | list_nil() => list_nil() | list_cons(x, xs) => list_cons(fopr(x), aux(xs)) ) (* end of [aux] *) // prval () = lemma_list_param(xs) // } (* end of [list_map] *) // implement list_map_method {a}(xs, _) = lam(fopr) => list_map{a}(xs, fopr) // (* ****** ****** *) // implement list_imap {a}{b} ( xs, fopr ) = aux(0, xs) where { // fun aux {n:nat} .. ( i0: Nat, xs: list(a, n) ) : list(b, n) = ( case+ xs of | list_nil() => list_nil() | list_cons(x, xs) => list_cons(fopr(i0, x), aux(i0+1, xs)) ) (* end of [aux] *) // prval () = lemma_list_param(xs) // } (* end of [list_imap] *) // implement list_imap_method {a}(xs, _) = lam(fopr) => list_imap{a}(xs, fopr) // (* ****** ****** *) // implement list_map2 ( xs1, xs2, fopr ) = let // prval() = lemma_list_param(xs1) prval() = lemma_list_param(xs2) // in // case+ xs1 of | list_nil() => list_nil() | list_cons(x1, xs1) => ( case+ xs2 of | list_nil() => list_nil() | list_cons(x2, xs2) => list_cons(fopr(x1, x2), list_map2(xs1, xs2, fopr)) ) // end (* end of [list_map2] *) // (* ****** ****** *) implement list_foldleft {res}{a} (xs, init, fopr) = let // fun loop ( res: res, xs: List(a) ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => loop(fopr(res, x), xs) ) // in loop(init, xs) end // end of [list_foldleft] // implement list_foldleft_method {a}(xs, init) = lam(fopr) => list_foldleft{a}(xs, init, fopr) // (* ****** ****** *) implement list_ifoldleft {res}{a} (xs, init, fopr) = let // fun loop ( i: Nat, res: res, xs: List(a) ) : res = ( case+ xs of | list_nil () => res // list_nil | list_cons (x, xs) => loop(i+1, fopr(i, res, x), xs) // list_cons ) // in loop(0(*index*), init, xs) end // end of [list_ifoldleft] // implement list_ifoldleft_method {a}(xs, init) = ( lam(fopr) => list_ifoldleft{a}(xs, init, fopr) ) (* list_ifoldleft_method *) // (* ****** ****** *) implement list_foldright {a}{res} ( xs, fopr, sink ) = aux(xs, sink) where { // fun aux ( xs: List(a), res: res ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => fopr(x, aux(xs, res)) ) // } (* end of [list_foldright] *) // implement list_foldright_method {a}{res}(xs, sink) = lam(fopr) => list_foldright{a}{res}(xs, fopr, sink) // (* ****** ****** *) implement list_ifoldright {a}{res} ( xs, fopr, sink ) = aux(0, xs, sink) where { // fun aux ( i: Nat, xs: List(a), res: res ) : res = ( case+ xs of | list_nil() => res | list_cons(x, xs) => fopr(i, x, aux(i+1, xs, res)) ) // } (* end of [list_foldright] *) // implement list_ifoldright_method {a}{res}(xs, sink) = ( lam(fopr) => list_ifoldright{a}{res}(xs, fopr, sink) ) // (* ****** ****** *) // implement {a}(*tmp*) list_sort_1(xs) = ( list_sort_2{a} (xs, lam(x1, x2) => gcompare_val_val(x1, x2)) // end of [list_sort_2] ) (* list_sort_1 *) // (* ****** ****** *) // implement list_mergesort {a}(xs, cmp) = let // fun msort {n:int} ( xs: list(a, n), n: int(n) ) : list(a, n) = ( if (n < 2) then xs else let val n2 = half(n) val $tup(xs1, xs2) = list_split_at(xs, n2) in merge(msort(xs1, n2), msort(xs2, n-n2)) end // end of [then] ) (* end of [msort] *) // and merge {n1,n2:int} ( xs10: list(a, n1) , xs20: list(a, n2) ) : list(a, n1+n2) = ( case+ xs10 of | list_nil() => xs20 | list_cons(x10, xs11) => ( case+ xs20 of | list_nil() => xs10 | list_cons(x20, xs21) => let val sgn = cmp(x10, x20) in if (sgn <= 0) then list_cons(x10, merge(xs11, xs20)) else list_cons(x20, merge(xs10, xs21)) end // end of [list_cons] ) ) // in msort(xs, list_length(xs)) end // end of [list_mergesort] // (* ****** ****** *) // #if defined(ATSCC_STREAM_VT) #then // implement streamize_list_elt {a}(xs) = let // fun auxmain ( xs: List(a) ) : stream_vt(a) = $ldelay ( // case+ xs of | list_nil() => stream_vt_nil() | list_cons(x, xs) => stream_vt_cons(x, auxmain(xs)) // ) (* end of [auxmain] *) // in $effmask_all(auxmain(xs)) end // #endif // ATSCC_STREAM_VT // (* ****** ****** *) #if defined(ATSCC_STREAM_VT) #then // implement streamize_list_zip {a,b}(xs, ys) = let // fun auxmain ( xs: List(a), ys: List(b) ) : stream_vt($tup(a, b)) = $ldelay ( case+ xs of | list_nil() => stream_vt_nil() | list_cons(x, xs) => ( case+ ys of | list_nil() => stream_vt_nil() | list_cons(y, ys) => stream_vt_cons($tup(x, y), auxmain(xs, ys)) ) (* end of [list_cons] *) ) : stream_vt_con($tup(a, b)) // auxmain // in $effmask_all(auxmain(xs, ys)) end // end of [streamize_list_zip] // #endif // ATSCC_STREAM_VT (* ****** ****** *) #if defined(ATSCC_STREAM_VT) #then // implement streamize_list_cross {a,b}(xs, ys) = let // fun auxone ( x0: a, ys: List(b) ) : stream_vt($tup(a, b)) = $ldelay ( case+ ys of | list_nil() => stream_vt_nil() | list_cons(y, ys) => stream_vt_cons($tup(x0, y), auxone(x0, ys)) ) : stream_vt_con($tup(a, b)) // fun auxmain ( xs: List(a), ys: List(b) ) : stream_vt($tup(a, b)) = $ldelay ( case+ xs of | list_nil() => stream_vt_nil() // end of [list_nil] | list_cons(x0, xs) => !(stream_vt_append(auxone(x0, ys), auxmain(xs, ys))) // end of [list_cons] ) : stream_vt_con($tup(a, b)) // auxmain // in $effmask_all(auxmain(xs, ys)) end // end of [streamize_list_cross] // #endif // ATSCC_STREAM_VT (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/basics.dats0000644000175000017500000000067413431250607024140 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./basics.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // #ifdef BASICS_CLOREF_APP // implement cloref0_app (cf) = cf() implement cloref1_app (cf, x) = cf(x) implement cloref2_app (cf, x1, x2) = cf(x1, x2) implement cloref3_app (cf, x1, x2, x3) = cf(x1, x2, x3) // #endif // #ifdef(BASICS_CLOREF_APP) // (* ****** ****** *) (* end of [basics.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/option.dats0000644000175000017500000000123213431250607024173 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/option.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement option_some(x) = Some(x) implement option_none((*void*)) = None(*void*) // (* ****** ****** *) // implement option_unsome (opt) = let val+Some(x) = opt in x end // (* ****** ****** *) // implement option_is_some(opt) = ( case+ opt of | Some _ => true | None () => false ) (* end of [option_is_some] *) // (* ****** ****** *) // implement option_is_none(opt) = ( case+ opt of | None () => true | Some _ => false ) (* end of [option_is_none] *) // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/stream.dats0000644000175000017500000002463313431250607024170 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/stream.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) stream_sing(x) = stream_cons(x, stream_make_nil()) // (* ****** ****** *) // implement {}(*tmp*) stream_make_nil() = $delay(stream_nil()) // implement {}(*tmp*) stream_make_sing(x0) = $delay( stream_cons(x0, stream_make_nil()) )(*$delay*) // (* ****** ****** *) // implement stream_make_list(xs) = $delay ( case+ xs of | list_nil() => stream_nil() | list_cons(x, xs) => stream_cons(x, stream_make_list(xs)) ) (* end of [stream_make_list] *) // implement stream_make_list0(xs) = stream_make_list(g1ofg0_list(xs)) // (* ****** ****** *) implement stream_nth_opt {a}(xs, n) = let // fun loop ( xs: stream(a), n: intGte(0) ) : Option_vt(a) = ( case+ !xs of | stream_nil () => None_vt() // stream_nil | stream_cons (x, xs) => ( if n > 0 then loop(xs, pred(n)) else Some_vt(x) // end of [if] ) ) (* end of [loop] *) // in loop (xs, n) end // end of [stream_nth_opt] (* ****** ****** *) implement stream_length {a}(xs) = loop(xs, 0) where { // fun loop ( xs: stream(a), res: intGte(0) ) : intGte(0) = ( case+ !xs of | stream_nil() => res | stream_cons(_, xs) => loop(xs, res+1) ) // } (* end of [stream_length] *) (* ****** ****** *) // (* implement stream2list {a}(xs) = aux(xs) where { // fun aux (xs: stream(a)): List0(a) = ( case+ !xs of | stream_nil() => list_nil() | stream_cons(x, xs) => list_cons(x, aux(xs)) ) // } *) // implement stream2list {a}(xs) = ( list_reverse (stream2list_rev(xs)) ) // (* ****** ****** *) // implement stream2list_rev {a}(xs) = loop(xs, list_nil) where { // fun loop ( xs: stream(a), ys: List0(a) ) : List0(a) = ( case+ !xs of | stream_nil() => ys | stream_cons(x, xs) => loop(xs, list_cons(x, ys)) ) // } (* end of [stream2list_rev] *) // (* ****** ****** *) // implement stream_takeLte (xs, n) = $delay ( // if (n > 0) then ( case+ !xs of | stream_nil() => stream_nil(*void*) // end of [stream_nil] | stream_cons(x, xs) => stream_cons(x, stream_takeLte(xs, n-1)) // end of [stream_cons] ) (* end of [then] *) else stream_nil(*void*) // else // ) (* end of [stream_takeLte] *) // implement stream_takeLte_vt (xs, n) = $ldelay ( // if (n > 0) then ( case+ !xs of | stream_nil() => stream_vt_nil(*void*) // end of [stream_nil] | stream_cons(x, xs) => stream_vt_cons(x, stream_takeLte_vt(xs, n-1)) // end of [stream_cons] ) (* end of [then] *) else stream_vt_nil(*void*) // else // ) (* end of [stream_takeLte_vt] *) // (* ****** ****** *) implement stream_take_opt {a}{n}(xs, n) = let // fun auxmain {i:nat | i <= n} ( xs: stream(a), i: int(i), res: list(a, i) ) : Option_vt(list(a, n)) = ( // if (i < n) then ( case+ !xs of | stream_nil() => None_vt() | stream_cons(x, xs) => auxmain(xs, i+1, list_cons(x, res)) ) (* end of [then] *) else Some_vt(list_reverse(res)) // ) (* end of [auxmain] *) // in auxmain(xs, 0, list_nil()) end // end of [stream_take_opt] (* ****** ****** *) implement stream_drop_opt {a}{n}(xs, n) = let // fun auxmain {i:nat | i <= n} ( xs: stream(a), i: int(i) ) : Option_vt(stream(a)) = ( // if (i < n) then ( case+ !xs of | stream_nil() => None_vt() | stream_cons(x, xs) => auxmain(xs, i+1) ) (* end of [then] *) else Some_vt(xs) // end of [else] // ) (* end of [auxmain] *) // in auxmain(xs, 0(*i*)) end // end of [stream_drop_opt] (* ****** ****** *) implement stream_append (xs, ys) = $delay ( case+ !xs of | stream_nil() => !ys | stream_cons(x, xs) => stream_cons(x, stream_append(xs, ys)) // end of [stream_cons] ) (* end of [stream_append] *) (* ****** ****** *) implement stream_concat (xss) = $delay ( // case+ !xss of | stream_nil() => stream_nil((*void*)) | stream_cons(xs, xss) => ( !(stream_append(xs, stream_concat(xss))) ) // ) (* end of [stream_concat] *) (* ****** ****** *) // implement stream_map_cloref {a}(xs, fopr) = $delay ( // case+ !xs of | stream_nil() => stream_nil((*void*)) | stream_cons(x, xs) => stream_cons (fopr(x), stream_map_cloref(xs, fopr)) // end of [stream_cons] // ) (* end of [stream_map_cloref] *) // implement stream_map_method {a}(xs, _) = ( lam(fopr) => stream_map_cloref{a}(xs, fopr) ) (* stream_map_method *) // (* ****** ****** *) // implement stream_scan_cloref {res}{a} (xs, r0, fopr) = $delay ( // case+ !xs of | stream_nil() => stream_nil() | stream_cons(x, xs) => stream_cons ( r0 , stream_scan_cloref {res}{a}(xs, fopr(r0, x), fopr) // stream_scan_cloref ) (* end of [stream_cons] *) // ) (* end of [stream_scan_cloref] *) // implement stream_scan_method {res}{a}(xs, _) = ( lam(r0, fopr) => stream_scan_cloref{res}{a}(xs, r0, fopr) // end of [lam] ) (* stream_scan_method *) // (* ****** ****** *) // implement stream_filter_cloref {a}(xs, pred) = $delay ( // case+ !xs of | stream_nil ((*void*)) => stream_nil() // end of [stream_nil] | stream_cons (x, xs) => ( if pred(x) then stream_cons ( x, stream_filter_cloref(xs, pred) ) (* end of [then] *) else !(stream_filter_cloref(xs, pred)) // end of [if] ) (* end of [stream_cons] *) // ) (* end of [stream_filter_cloref] *) // implement stream_filter_method {a}(xs) = ( lam(pred) => stream_filter_cloref{a}(xs, pred) ) (* end of [stream_filter_method] *) // (* ****** ****** *) // implement stream_forall_cloref {a}(xs, pred) = ( // case+ !xs of | stream_nil() => true | stream_cons(x, xs) => ( if pred(x) then stream_forall_cloref{a}(xs, pred) else false // end of [if] ) (* end of [stream_cons] *) // ) (* end of [stream_forall_cloref] *) // implement stream_forall_method {a}(xs) = ( lam(pred) => stream_forall_cloref{a}(xs, pred) ) (* end of [stream_forall_method] *) // (* ****** ****** *) // implement stream_exists_cloref {a}(xs, pred) = ( // case+ !xs of | stream_nil() => false | stream_cons(x, xs) => ( if pred(x) then (true) else stream_exists_cloref{a}(xs, pred) // end of [if] ) (* end of [stream_cons] *) // ) (* end of [stream_exists_cloref] *) // implement stream_exists_method {a}(xs) = ( lam(pred) => stream_exists_cloref{a}(xs, pred) ) (* end of [stream_exists_method] *) // (* ****** ****** *) // implement stream_foreach_cloref {a}(xs, fwork) = ( case+ !xs of | stream_nil() => () | stream_cons(x, xs) => ( fwork(x); stream_foreach_cloref(xs, fwork) ) (* end of [stream_cons] *) ) (* end of [stream_foreach_cloref] *) // implement stream_foreach_method {a}(xs) = ( lam(fwork) => stream_foreach_cloref{a}(xs, fwork) ) (* end of [stream_foreach_method] *) // (* ****** ****** *) // implement stream_iforeach_cloref {a}(xs, fwork) = let // fun loop ( i: Nat, xs: stream(a) ) : void = ( case+ !xs of | stream_nil() => () | stream_cons(x, xs) => ( fwork(i, x); loop(i+1, xs) ) (* end of [stream_cons] *) ) (* end of [loop] *) // in loop(0(*index*), xs) end (* end of [stream_foreach_cloref] *) // implement stream_iforeach_method {a}(xs) = ( lam(fwork) => stream_iforeach_cloref{a}(xs, fwork) ) (* end of [stream_iforeach_method] *) // (* ****** ****** *) implement stream_tabulate_cloref {a}(fopr) = auxmain(0) where { // fun auxmain ( n0: intGte(0) ) : stream(a) = ( $delay(stream_cons(fopr(n0), auxmain(n0+1))) ) (* end of [auxmain] *) // } (* end of [stream_tabulate_cloref] *) (* ****** ****** *) implement cross_stream_list {a,b}(xs, ys) = let // fun auxmain ( x0: a, xs: stream(a) , ys: List0(b), zs: List0(b) ) : stream($tup(a, b)) = $delay ( case+ zs of | list_nil() => !(cross_stream_list(xs, ys)) | list_cons(z0, zs) => stream_cons( $tup(x0, z0), auxmain(x0, xs, ys, zs) ) (* stream_cons *) ) (* end of [auxmain] *) // in // $delay( case !xs of | stream_nil() => stream_nil() | stream_cons(x, xs) => !(auxmain(x, xs, ys, ys)) ) (* $delay *) // end // end of [cross_stream_list] (* ****** ****** *) // implement cross_stream_list0 (xs, ys) = cross_stream_list(xs, g1ofg0(ys)) // (* ****** ****** *) implement stream2cloref_exn {a}(xs) = let // val rxs = ref{stream(a)}(xs) // in // lam() => let // val xs = rxs[] val-stream_cons(x, xs) = !xs // in rxs[] := xs; x end // end of [lam] // end // end of [stream2cloref_exn] (* ****** ****** *) implement stream2cloref_opt {a}(xs) = let // val rxs = ref{stream(a)}(xs) // in // lam() => let val xs = rxs[] in case+ !xs of | stream_nil() => None_vt() | stream_cons(x, xs) => (rxs[] := xs; Some_vt(x)) end // end of [lam] // end // end of [stream2cloref_opt] (* ****** ****** *) implement stream2cloref_last {a}(xs, x0) = let // val rxs = ref{stream(a)}(xs) // val rx0 = ref{a}(x0) // in // lam() => let val xs = rxs[] in case+ !xs of | stream_nil () => rx0[] // end of [stream_nil] | stream_cons (x1, xs2) => (rxs[] := xs2; rx0[] := x1; x1) // end of [stream_cons] end // end of [lam] // end // end of [stream2cloref] (* ****** ****** *) implement stream_take_while_cloref {a}(xs, pred) = let // val $tup(xs, ys) = stream_rtake_while_cloref{a}(xs, pred) // in // $tup(xs, list_reverse(ys)) // end // end of [stream_take_while_cloref] (* ****** ****** *) implement stream_rtake_while_cloref {a}(xs, pred) = let // fun loop ( xs: stream(a) , i0: intGte(0), res: List0(a) ) : $tup(stream(a), List0(a)) = ( // case+ !xs of | stream_nil() => $tup(xs, res) | stream_cons(x, xs2) => if pred(i0, x) then loop(xs2, i0+1, list_cons(x, res)) else $tup(xs, res) // end of [if] // ) (* end of [loop] *) // in // loop(xs, 0, list_nil((*void*))) // end // end of [stream_take_while_cloref] (* ****** ****** *) // implement stream_take_until_cloref {a}(xs, pred) = ( stream_take_while_cloref(xs, lam(i, x) => ~pred(i, x)) ) (* end of [stream_take_until_cloref] *) // implement stream_rtake_until_cloref {a}(xs, pred) = ( stream_rtake_while_cloref(xs, lam(i, x) => ~pred(i, x)) ) (* end of [stream_take_until_cloref] *) // (* ****** ****** *) implement stream_list_xprod2 {a,b} ( xs, ys ) = auxlst(xs, ys) where { // fun aux ( x: a, ys: List0(b) ) : stream($tup(a, b)) = $delay ( case+ ys of | list_nil() => stream_nil() | list_cons(y, ys) => stream_cons($tup(x, y), aux(x, ys)) ) fun auxlst ( xs: List0(a), ys: List0(b) ): stream($tup(a, b)) = $delay ( case+ xs of | list_nil() => stream_nil() | list_cons(x, xs) => !(stream_append(aux(x, ys), auxlst(xs, ys))) ) } (* end of [stream_list_xprod2] *) (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/gmatrixref.dats0000644000175000017500000000240513431250607025036 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/matrixref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // assume gmatrixref ( a, m, n ) = // gmatrixref [ m0,n0:int;i0,j0:nat | i0+m <= m0; j0+n <= n0 ] $tup( matrixref(a, m0, n0) , int(m0), int(n0), int(i0), int(j0), int(m), int(n) ) (* $tup *) // (* ****** ****** *) // implement gmatrixref_make_matrixref (M, m, n) = $tup(M, m, n, 0, 0, m, n) // (* ****** ****** *) // implement gmatrixref_make_subregion (GM, i0, j0, m, n) = ( $tup(GM.0, GM.1, GM.2, (GM.3)+i0, (GM.4)+j0, m, n) ) // (* ****** ****** *) // implement gmatrixref_get_at (GM, i, j) = matrixref_get_at(GM.0, (GM.3)+i, GM.2, (GM.4)+j) implement gmatrixref_set_at (GM, i, j, x) = matrixref_set_at(GM.0, (GM.3)+i, GM.2, (GM.4)+j, x) // (* ****** ****** *) // implement gmatrixref_exists_cloref (GM, f) = ( int2_exists_cloref(GM.3, GM.4, $UN.cast{cfun2(int,int,bool)}(f)) ) implement gmatrixref_forall_cloref (GM, f) = ( int2_forall_cloref(GM.3, GM.4, $UN.cast{cfun2(int,int,bool)}(f)) ) // (* ****** ****** *) // implement gmatrixref_foreach_cloref (GM, f) = ( int2_foreach_cloref(GM.3, GM.4, $UN.cast{cfun2(int,int,void)}(f)) ) // (* ****** ****** *) (* end of [matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/slistref.dats0000644000175000017500000000277313431250607024531 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/slistref.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // assume slistref_type (a:vt0p) = ref(List0_vt(a)) // (* ****** ****** *) // implement slistref_make_nil {a}((*void*)) = ref(list_vt_nil((*void*))) // (* ****** ****** *) implement slistref_length {a}(r0) = let // val r0 = $UN.cast{ref(List0(a?))}(r0) // in list_length(r0[]) end // end of [slistref_length] (* ****** ****** *) implement slistref_push {a}(r0, x0) = let // val r0 = $UN.cast{ref(List0(a?))}(r0) // in r0[] := list_cons{a?}($UN.castvwtp0(x0), r0[]) end // end of [slistref_push] (* ****** ****** *) implement slistref_pop_opt {a}(r0) = let // val r0 = $UN.cast{ref(List0(a?))}(r0) // in // case+ r0[] of | list_nil() => None_vt(*void*) | list_cons(x0, xs) => ( r0[] := xs; Some_vt($UN.castvwtp0{a}(x0)) ) // end // end of [slistref_pop_opt] (* ****** ****** *) implement slistref_foldleft {res}{a} (r0, init, fopr) = let // val r0 = $UN.cast{ref(List0(a))}(r0) // val fopr = $UN.cast{(res, a)-res}(fopr) // in list_foldleft{res}{a}(r0[], init, fopr) end // end of [slistref_foldleft] (* ****** ****** *) implement slistref_foldright {a}{res} (r0, fopr, sink) = let // val r0 = $UN.cast{ref(List0(a))}(r0) // val fopr = $UN.cast{(a, res)-res}(fopr) // in list_foldright{a}{res}(r0[], fopr, sink) end // end of [slistref_foldright] (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/0000755000175000017500000000000013431250607022771 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/parcomb/0000755000175000017500000000000013431250607024414 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/parcomb/parcomb.dats0000644000175000017500000001166713431250607026727 0ustar brandonbrandon(* ** HX-2016-11-27: ** Parsing combinators for libatscc *) (* ****** ****** *) // (* staload UN = "prelude/SATS/unsafe.sats" *) // (* ****** ****** *) // (* staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" *) // (* ****** ****** *) // (* staload "./../../SATS/BUCS320/parcomb.sats" *) // (* ****** ****** *) // implement parser_fail() = lam(inp) => PAROUT(None(), inp) // (* ****** ****** *) // implement parser_succeed(x0) = lam(inp) => PAROUT(Some(x0), inp) // (* ****** ****** *) // implement parser_anyone {a}() = lam(xs0) => ( case+ !xs0 of | stream_nil() => PAROUT(None{a}(), xs0) | stream_cons(x1, xs1) => PAROUT(Some{a}(x1), xs1) ) (* end of [parse_anyone] *) // (* ****** ****** *) // implement parser_satisfy {a}(pred) = lam(xs0) => ( case+ !xs0 of | stream_nil() => PAROUT(None{a}(), xs0) | stream_cons(x1, xs1) => if pred(x1) then PAROUT(Some(x1), xs1) else PAROUT(None{a}(), xs0) // end of [if[ ) (* end of [parse_satisfy] *) // (* ****** ****** *) implement parser_map {a}{t}{u} ( p0, fopr ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p0(inp0) // in case+ opt of | None() => PAROUT(None{u}(), inp0) | Some(x) => PAROUT(Some(fopr(x)), inp1) end // end of [parser_map] (* ****** ****** *) implement parser_map2 {a}{t1,t2}{u3} ( p1, p2, fopr ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{u3}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{u3}(), inp0) | Some(x2) => PAROUT(Some(fopr(x1, x2)), inp2) end // end of [Some] // end // end of [parser_map2] (* ****** ****** *) implement parser_map3 {a}{t1,t2,t3}{u4} ( p1, p2, p3, fopr ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{u4}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{u4}(), inp0) | Some(x2) => let val+ PAROUT(opt, inp3) = p3(inp2) in case+ opt of | None() => PAROUT(None{u4}(), inp0) | Some(x3) => PAROUT(Some(fopr(x1, x2, x3)), inp3) end end // end of [Some] // end // end of [parser_map3] (* ****** ****** *) implement parser_join2 {a}{t1,t2} (p1, p2) = lam(inp0) => let // typedef t12 = $tup(t1, t2) // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t12}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t12}(), inp0) | Some(x2) => PAROUT(Some($tup(x1, x2)), inp2) end // end of [Some] // end // end of [parser_join2] (* ****** ****** *) implement parser_tup2_fst {a}{t1,t2} ( p1, p2 ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t1}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t1}(), inp0) | Some(x2) => PAROUT(Some{t1}(x1), inp2) end // end of [Some] // end // end of [parser_tup2_fst] (* ****** ****** *) implement parser_tup2_snd {a}{t1,t2} ( p1, p2 ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t2}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t2}(), inp0) | Some(x2) => PAROUT(Some{t2}(x2), inp2) end // end of [Some] // end // end of [parser_tup2_snd] (* ****** ****** *) implement parser_orelse {a}{t} ( p1, p2 ) = lam(inp0) => let // val out = p1(inp0) val+PAROUT(opt, inp1) = out // in // case+ opt of | Some _ => out | None _ => p2(inp0) // end // end of [parser_orelse] (* ****** ****** *) implement parser_repeat0 {a}{t} (p0) = lam(inp0) => let // fun auxlst ( inp: parinp(a), xs: List0_vt(t) ) : parout(a, list0(t)) = let // val+PAROUT(opt, inp) = p0(inp) // in case+ opt of | None() => let val xs = list_vt_reverse(xs) in PAROUT(Some(g0ofg1(xs)), inp) end // end of [None_vt] | Some(x) => auxlst(inp, list_vt_cons(x, xs)) end // end of [auxlst] // in auxlst(inp0, list_vt_nil((*void*))) end // end of [parse_repeat0] (* ****** ****** *) implement parser_repeat1 {a}{t} (p0) = lam(inp0) => let // typedef ts = list0(t) // val+ PAROUT(opt, inp1) = p0(inp0) // in // case+ opt of | None() => PAROUT(None{ts}(), inp0) // end of [None_vt] | Some(x) => let val+ PAROUT (opt, inp2) = parser_repeat0(p0)(inp1) val-Some(xs) = opt in PAROUT(Some(list0_cons(x, xs)), inp2) end // end of [Some] // end // end of [parse_repeat1] (* ****** ****** *) // implement parser_unlazy(lp) = lam(inp0) => (!lp)(inp0) // (* ****** ****** *) (* end of [parcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/0000755000175000017500000000000013431250607025716 5ustar brandonbrandon././@LongLink0000644000000000000000000000015300000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize_df0000644000175000017500000000217613431250607031245 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph DFS-streamization // for libatscc // (* ****** ****** *) // #include "./GraphStreamize.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theStreamizeStore_get ((*void*)): slistref(node) // (* ****** ****** *) // implement theStreamizeStore_insert<> (nx) = let // val theStore = theStreamizeStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); slistref_insert(theStore, nx) ) // end (* end of [theStreamizeStore_insert] *) // implement theStreamizeStore_choose<> ((*void*)) = let // val theStore = theStreamizeStore_get() // in slistref_takeout_opt(theStore) end // end of [theStreamizeStore_choose] // (* ****** ****** *) // extern fun{} GraphStreamize_dfs (store: slistref(node)): stream(node) implement {}(*tmp*) GraphStreamize_dfs(store) = GraphStreamize<>() where { implement theStreamizeStore_get<>() = store } (* GraphStreamize_dfs *) // (* ****** ****** *) (* end of [GraphStreamize_dfs.dats] *) ././@LongLink0000644000000000000000000000014700000000000011605 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize.da0000644000175000017500000000225013431250607031150 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph streamization // for libatscc // (* ****** ****** *) abstype node_type = ptr absvtype nodelst_vtype = ptr (* ****** ****** *) typedef node = node_type vtypedef nodelst = nodelst_vtype (* ****** ****** *) // extern fun{} node_get_neighbors(nx: !node): nodelst // (* ****** ****** *) // extern fun{} theStreamizeStore_choose ((*void*)): Option_vt(node) // (* ****** ****** *) // extern fun{} theStreamizeStore_insert(node): void extern fun{} theStreamizeStore_insert_lst(nodelst): void // (* ****** ****** *) // extern fun{} GraphStreamize((*void*)): stream(node) // (* ****** ****** *) implement {}(*tmp*) GraphStreamize ((*void*)) = streamize() where { // fun streamize ( // argless ): stream(node) = $delay ( let // val opt = theStreamizeStore_choose<>() // in // case+ opt of | ~None_vt() => stream_nil() | ~Some_vt(nx) => let val nxs = node_get_neighbors<>(nx) val ((*void*)) = theStreamizeStore_insert_lst<>(nxs) in stream_cons(nx, streamize()) end // end of [Some] // end // end of [let] ) (* end of [streamize] *) // } (* end of [GraphStreamize] *) (* ****** ****** *) (* end of [GraphStreamize.dats] *) ././@LongLink0000644000000000000000000000015300000000000011602 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphStreamize/GraphStreamize_bf0000644000175000017500000000217613431250607031243 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph BFS-streamization // for libatscc // (* ****** ****** *) // #include "./GraphStreamize.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theStreamizeStore_get ((*void*)): qlistref(node) // (* ****** ****** *) // implement theStreamizeStore_insert<> (nx) = let // val theStore = theStreamizeStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); qlistref_insert(theStore, nx) ) // end (* end of [theStreamizeStore_insert] *) // implement theStreamizeStore_choose<> ((*void*)) = let // val theStore = theStreamizeStore_get() // in qlistref_takeout_opt(theStore) end // end of [theStreamizeStore_choose] // (* ****** ****** *) // extern fun{} GraphStreamize_bfs (store: qlistref(node)): stream(node) implement {}(*tmp*) GraphStreamize_bfs(store) = GraphStreamize<>() where { implement theStreamizeStore_get<>() = store } (* GraphStreamize_bfs *) // (* ****** ****** *) (* end of [GraphStreamize_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025160 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats0000644000175000017500000000210713431250607031060 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph-based DFS // for libatscc // (* ****** ****** *) // #include "./GraphSearch.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theSearchStore_get ((*void*)): slistref(node) // (* ****** ****** *) // implement theSearchStore_insert<> (nx) = let // val theStore = theSearchStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); slistref_insert(theStore, nx) ) // end (* end of [theSearchStore_insert] *) // implement theSearchStore_choose<> ((*void*)) = let // val theStore = theSearchStore_get() // in slistref_takeout_opt(theStore) end // end of [theSearchStore_choose] // (* ****** ****** *) // extern fun{} GraphSearch_dfs (store: slistref(node)): void // implement {}(*tmp*) GraphSearch_dfs(store) = GraphSearch<>() where { implement theSearchStore_get<>() = store } (* GraphSearch_dfs *) // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats0000644000175000017500000000210413431250607031053 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph-based BFS // for libatscc // (* ****** ****** *) // #include "./GraphSearch.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theSearchStore_get ((*void*)): qlistref(node) // (* ****** ****** *) // implement theSearchStore_insert<> (nx) = let // val theStore = theSearchStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); qlistref_insert(theStore, nx) ) // end (* end of [theSearchStore_insert] *) // implement theSearchStore_choose<> ((*void*)) = let // val theStore = theSearchStore_get() // in qlistref_takeout_opt(theStore) end // end of [theSearchStore_choose] // (* ****** ****** *) // extern fun{} GraphSearch_bfs (store: qlistref(node)): void implement {}(*tmp*) GraphSearch_bfs(store) = GraphSearch<>() where { implement theSearchStore_get<>() = store } (* GraphSearch_bfs *) // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch.dats0000644000175000017500000000240213431250607030222 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph-based Search // for libatscc // (* ****** ****** *) // abstype node_type = ptr absvtype nodelst_vtype = ptr // (* ****** ****** *) typedef node = node_type vtypedef nodelst = nodelst_vtype (* ****** ****** *) // extern fun{} node_get_neighbors(nx: node): nodelst // (* ****** ****** *) // extern fun{} process_node(nx: node): bool // (* ****** ****** *) // extern fun{} theSearchStore_insert(node): void extern fun{} theSearchStore_insert_lst(nodelst): void // (* ****** ****** *) // extern fun{} theSearchStore_choose((*void*)): Option_vt(node) // (* ****** ****** *) // extern fun{} GraphSearch(): void // (* ****** ****** *) implement {}(*tmp*) GraphSearch ((*void*)) = let // fun search ( // argless ): void = let // val opt = theSearchStore_choose() // in // case+ opt of | ~None_vt() => () | ~Some_vt(nx) => let val cont = process_node(nx) in if cont then let val nxs = node_get_neighbors(nx) // end of [val] in theSearchStore_insert_lst(nxs); search((*void*)) end // end of [then] // end of [if] end (* end of [Some_vt] *) // end (* end of [search] *) // in search((*void*)) end // end of [GraphSearch] (* ****** ****** *) (* end of [GraphSearch.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/list_vt.dats0000644000175000017500000000343713431250607024360 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/list_vt.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) list_vt_is_nil (xs) = ( case+ xs of | list_vt_nil() => true | list_vt_cons _ => false ) // (* ****** ****** *) // implement {}(*tmp*) list_vt_is_cons (xs) = ( case+ xs of | list_vt_nil() => false | list_vt_cons _ => true ) // (* ****** ****** *) // implement list_vt_length {a}(xs) = loop(xs, 0) where { // fun loop {i,j:nat} ( xs: !list_vt(a, i), j: int(j) ) : int(i+j) = ( case+ xs of | list_vt_nil() => j | list_vt_cons(_, xs) => loop(xs, j+1) ) // prval () = lemma_list_vt_param(xs) // } (* list_vt_length *) // (* ****** ****** *) // implement list_vt_snoc {a}(xs, x0) = ( list_vt_append{a}(xs, list_vt_sing(x0)) ) implement list_vt_extend {a}(xs, x0) = ( list_vt_append{a}(xs, list_vt_sing(x0)) ) // (* ****** ****** *) implement list_vt_append {a}(xs, ys) = let // fun aux {i,j:nat} .. ( xs: list_vt(a, i), ys: list_vt(a, j) ) : list_vt(a, i+j) = ( case+ xs of | ~list_vt_nil() => ys | ~list_vt_cons(x, xs) => list_vt_cons(x, aux(xs, ys)) ) // prval () = lemma_list_vt_param(xs) prval () = lemma_list_vt_param(ys) // in aux(xs, ys) end // end of [list_vt_append] (* ****** ****** *) // implement list_vt_reverse {a}(xs) = list_vt_reverse_append{a}(xs, nil_vt()) // (* ****** ****** *) // implement list_vt_reverse_append {a}(xs, ys) = loop(xs, ys) where { // fun loop {i,j:nat} .. ( xs: list_vt(a, i), ys: list_vt(a, j) ) : list_vt(a, i+j) = ( case+ xs of | ~list_vt_nil() => ys | ~list_vt_cons(x, xs) => loop(xs, list_vt_cons(x, ys)) ) // prval () = lemma_list_vt_param(xs) prval () = lemma_list_vt_param(ys) // } (* end of [list_vt_reverse_append] *) // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/gprint.dats0000644000175000017500000000262113431250607024171 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/gprint.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) gprint_flush ((*void*)) = () // (* ****** ****** *) // implement {}(*tmp*) gprint_unit(_) = () // (* ****** ****** *) // implement{} gprint_list$beg() = gprint_string "(" implement{} gprint_list$end() = gprint_string ")" implement{} gprint_list$sep() = gprint_string ", " // (* ****** ****** *) implement {a}(*tmp*) gprint_list (xs) = let // fun loop ( xs: List(a), i: int ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => ( if i > 0 then gprint_list$sep(); // end of [if] gprint_val(x); loop(xs, i+1) ) ) (* end of [loop] *) // in // gprint_list$beg(); loop(xs, 0); gprint_list$end() // end // end of [gprint_list] implement (a)(*tmp*) gprint_val (xs) = gprint_list (xs) (* ****** ****** *) implement {a}(*tmp*) gprint_arrayref {n}(xs, asz) = let // prval() = lemma_arrayref_param(xs) // fun loop { i:nat | i <= n } (i: int(i)): void = ( // if ( i < asz ) then let val () = if i > 0 then gprint_array$sep() // end of [if] in gprint_val(xs[i]); loop(i+1) end // end of [then] else () // end of [else] // ) (* end of [loop] *) // in // gprint_array$beg(); loop(0); gprint_array$end() // end // end of [gprint_arrayref] (* ****** ****** *) (* end of [gprint.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/funarray.dats0000644000175000017500000001010413431250607024510 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/funarray.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) datatype brauntree (a:t@ype+, int) = | E (a, 0) of () | {n1,n2:nat | n2 <= n1; n1 <= n2+1} B (a, n1+n2+1) of (a, brauntree (a, n1), brauntree (a, n2)) // end of [brauntree] stadef bt = brauntree (* ****** ****** *) // assume funarray_t0ype_int_type (a:t@ype, n:int) = brauntree(a, n) // (* ****** ****** *) implement funarray_make_nil((*void*)) = E(*void*) (* ****** ****** *) implement funarray_size {a}(A) = let // fun diff { nl,nr:nat | nr <= nl && nl <= nr+1 } .. ( nr: int(nr), t0: bt (a, nl) ) : int (nl-nr) = ( case+ t0 of | E () => 0 | B (_, tl, tr) => if nr > 0 then let val nr2 = half(nr) in if nr > nr2 + nr2 then diff (nr2, tl) else diff (nr2-1, tr) end // end of [then] else 1 // end of [else] // end of [diff] ) (* end of [diff] *) // fun size {n:nat} .. ( t0: bt (a, n) ) : int(n) = ( case+ t0 of | E () => 0 | B (_, tl, tr) => let val nr = size(tr) val d1 = 1 + diff(nr, tl) in 2 * nr + d1 end // end of [B] // end of [size] ) (* end of [size] *) // prval() = lemma_funarray_param(A) // in size(A) end // end of [funarray_size] // (* ****** ****** *) implement funarray_get_at {a}{n}(A, i) = let // fun get_at { n,i:nat| i < n } .. ( t0: bt (a, n), i: int i ) : a = ( if i > 0 then let val i2 = half(i) in if i > i2 + i2 then let val+B(_, tl, _) = t0 in get_at (tl, i2) end // end of [then] else let val+B(_, _, tr) = t0 in get_at (tr, i2-1) end // end of [else] end // end of [then] else let val+B(x, _, _) = t0 in x end // end of [else] ) (* end of [get_at] *) // in get_at(A, i) end // end of [funarray_get_at] (* ****** ****** *) implement funarray_set_at {a}{n}(A, i, x0) = let // fun set_at { n,i:nat | i < n } .. ( t0: bt (a, n), i: int i, x0: a ) : bt (a, n) = ( if i > 0 then let val i2 = half(i) val+B(x, tl, tr) = t0 in if i > i2 + i2 then B(x, set_at (tl, i2, x0), tr) else B(x, tl, set_at (tr, i2-1, x0)) // end of [if] end // end of [then] else let val+B(_, t1, t2) = t0 in B(x0, t1, t2) end // end of [else] // ) (* end of [set_at] *) // in set_at(A, i, x0) end // end of [funarray_set_at] (* ****** ****** *) implement funarray_insert_l {a}{n}(A, x0) = let // fun ins_l {n:nat} .. ( t0: bt (a, n), x0: a ) :<> bt (a, n+1) = ( case+ t0 of | E () => B (x0, E (), E ()) | B (x, tl, tr) => B (x0, ins_l (tr, x), tl) ) (* end of [ins_l] *) // prval() = lemma_funarray_param(A) // in ins_l(A, x0) end // end of [funarray_insert_l] (* ****** ****** *) implement funarray_insert_r {a}{n}(A, n, x0) = let // fun ins_r {n:nat} .. ( t0: bt (a, n), n: int n, x0: a ) : bt (a, n+1) = ( // if n > 0 then let val n2 = half(n) val+B(x, tl, tr) = t0 in if n > n2 + n2 then B(x, ins_r (tl, n2, x0), tr) else B(x, tl, ins_r (tr, n2-1, x0)) // end of [if] end // end of [then] else B (x0, E (), E ()) // ) (* end of [ins_r] *) // prval() = lemma_funarray_param(A) // in ins_r(A, n, x0) end // end of [funarray_insert_r] (* ****** ****** *) implement funarray_remove_l {a}{n}(A) = let // fun rem_l {n:pos} .. ( t0: bt (a, n) ) : $tup(bt (a, n-1), a) = ( case+ t0 of | B(x, E(), _) => $tup(E(), x) | B(xl, tl, tr) =>> let val $tup(tl, x0) = rem_l(tl) in $tup(B(xl, tr, tl), x0) end // end of [lorem] ) // in rem_l(A) end // end of [funarray_remove_l] (* ****** ****** *) implement funarray_remove_r {a}{n}(A, n) = let // fun rem_r {n:pos} .. ( t0: bt (a, n), n: int n ) : $tup(bt (a, n-1), a) = let // val n2 = half(n); val+ B (x, tl, tr) = t0 // in // case+ tl of | E() => $tup(E(), x) | B _ => if n > n2 + n2 then let val $tup(tr, x0) = rem_r(tr, n2) in $tup(B(x, tl, tr), x0) end // end of [then] else let val $tup(tl, x0) = rem_r(tl, n2) in $tup(B(x, tl, tr), x0) end // end of [else] // end of [if] // end // end of [rem_r] // in rem_r(A, n) end // end of [funarray_remove_r] (* ****** ****** *) (* end of [funarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/stream_vt.dats0000644000175000017500000001770213431250607024700 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../SATS/stream.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) stream_vt_make_nil() = $ldelay(stream_vt_nil()) // (* ****** ****** *) // implement {}(*tmp*) stream_vt_make_cons(x, xs) = $ldelay( stream_vt_cons(x, xs), $effmask_wrt(~xs) )(*$ldelay*) // (* ****** ****** *) // implement {}(*tmp*) stream_vt_sing(x0) = stream_vt_cons(x0, stream_vt_make_nil()) // implement {}(*tmp*) stream_vt_make_sing(x0) = $ldelay ( stream_vt_cons(x0, stream_vt_make_nil()) ) (* $ldelay *) // (* ****** ****** *) // implement stream_vt_free{a}(xs) = ~(xs) // (* ****** ****** *) implement stream_vt2t {a}(xs) = ( $effmask_all(aux(xs)) where { // fun aux ( xs: stream_vt(a) ) : stream(a) = let // val xs = $UN.castvwtp0{ptr}(xs) // in // $delay ( let // val xs = $UN.castvwtp0{stream_vt(a)}(xs) // in case+ !xs of | ~stream_vt_nil() => stream_nil() | ~stream_vt_cons(x, xs) => stream_cons(x, aux(xs)) end // end of [let] ) // end // end of [aux] // } (* end of [where] *) ) (* end of [stream_vt2t] *) (* ****** ****** *) implement stream_vt_takeLte {a}(xs, n0) = ( $effmask_all (auxmain(xs, n0)) where { // fun auxmain ( xs: stream_vt(a), n0: Nat ) : stream_vt(a) = $ldelay ( // if (n0 > 0) then ( case+ !xs of | ~stream_vt_nil() => stream_vt_nil() | ~stream_vt_cons(x, xs) => stream_vt_cons(x, auxmain(xs, n0-1)) ) else ( ~(xs); stream_vt_nil() ) , ~(xs) // HX: called for freeing the stream! // ) (* [$ldelay] *) // } (* end of [where] *) ) (* end of [stream_vt_takeLte] *) (* ****** ****** *) implement stream_vt_length {a}(xs) = loop(xs, 0) where { // fun loop ( xs: stream_vt(a), len: intGte(0) ) : intGte(0) = ( case+ !xs of | ~stream_vt_nil() => len | ~stream_vt_cons(_, xs) => loop(xs, len+1) ) (* end of [loop] *) // } (* end of [stream_vt_length] *) (* ****** ****** *) // (* implement stream2list_vt {a}(xs) = aux(xs) where { // fun aux (xs: stream_vt(a)): List0_vt(a) = ( case+ !xs of | ~stream_vt_nil() => list_vt_nil() | ~stream_vt_cons(x, xs) => list_vt_cons(x, aux(xs)) ) // } *) (* ****** ****** *) // implement stream2list_vt {a}(xs) = list_vt_reverse(stream2list_vt_rev(xs)) // (* ****** ****** *) // implement stream2list_vt_rev {a}(xs) = loop(xs, nil_vt()) where { // fun loop ( xs: stream_vt(a), res: List0_vt(a) ) : List0_vt(a) = ( case+ !xs of | ~stream_vt_nil() => res | ~stream_vt_cons(x, xs) => loop(xs, cons_vt(x, res)) ) (* end of [loop] *) // } (* end of [stream2list_vt_rev] *) (* ****** ****** *) implement stream_vt_append {a} ( xs, ys ) = $effmask_all (auxmain(xs, ys)) where { // fun auxmain ( xs: stream_vt(a) , ys: stream_vt(a) ) : stream_vt(a) = $ldelay ( ( case+ !xs of | ~stream_vt_nil() => !ys | ~stream_vt_cons(x, xs) => stream_vt_cons(x, auxmain(xs, ys)) // end of [stream_vt_cons] ) : stream_vt_con(a) , (~(xs); ~(ys)) // HX: for freeing the stream! ) (* end of [auxmain] *) // } (* end of [stream_vt_append] *) (* ****** ****** *) implement stream_vt_concat {a}(xss) = let // fun auxmain ( xss: stream_vt(stream_vt(a)) ) : stream_vt(a) = $ldelay ( // case+ !xss of | ~stream_vt_nil ((*void*)) => stream_vt_nil() | ~stream_vt_cons (xs, xss) => !(stream_vt_append(xs, auxmain(xss))) // , ~(xss) // HX: called for freeing the stream! ) (* end of [auxmain] *) // in $effmask_all(auxmain(xss)) end (* end of [stream_vt_concat] *) (* ****** ****** *) // implement stream_vt_map_cloref {a}{b} ( xs, f0 ) = auxmain(xs) where { // fun auxmain ( xs: stream_vt(a) ) : stream_vt(b) = $ldelay ( ( case+ !xs of | ~stream_vt_nil() => stream_vt_nil() | ~stream_vt_cons(x, xs) => stream_vt_cons(f0(x), auxmain(xs)) ) : stream_vt_con(b) , ~(xs) // called when the stream is freed ) (* end of [auxmain] *) // } (* end of [stream_vt_map_cloref] *) // implement stream_vt_map_method (xs, _) = ( llam(f0) => stream_vt_map_cloref(xs, f0) ) (* end of [stream_vt_map_method] *) // (* ****** ****** *) // implement stream_vt_mapopt_cloref {a}{b} ( xs, f0 ) = auxmain(xs) where { // fun auxmain ( xs: stream_vt(a) ) : stream_vt(b) = $ldelay ( ( case+ !xs of | ~stream_vt_nil() => stream_vt_nil() | ~stream_vt_cons(x, xs) => ( case+ f0(x) of | ~None_vt() => !(auxmain(xs)) | ~Some_vt(y) => stream_vt_cons(y, auxmain(xs)) // end of [Some_vt] ) ) : stream_vt_con(b) , ~(xs) // called when the stream is freed ) (* end of [auxmain] *) // } (* end of [stream_vt_mapopt_cloref] *) // implement stream_vt_mapopt_method (xs, _) = ( llam(f0) => stream_vt_mapopt_cloref(xs, f0) ) (* end of [stream_vt_map_method] *) // (* ****** ****** *) implement stream_vt_filter_cloref {a}(xs, p0) = auxmain(xs) where { // fun auxmain ( xs: stream_vt(a) ) : stream_vt(a) = $ldelay ( // let val xs_con = !xs in // case+ xs_con of | ~stream_vt_nil ((*_*)) => stream_vt_nil() // end of [stream_vt_nil] | ~stream_vt_cons (x, xs1) => ( if p0(x) then ( stream_vt_cons(x, auxmain(xs1)) ) (* end of [then] *) else ( !(auxmain(xs1)) ) (* end of [else] *) // end of [if] ) (* end of [stream_vt_cons] *) // end : stream_vt_con(a) // end of [let] // , // ~(xs) // called when the stream is freed // ) (* end of auxmain *) // } (* end of [stream_vt_filter_cloref] *) // implement stream_vt_filter_method (xs) = ( llam(p0) => stream_vt_filter_cloref(xs, p0) ) (* end of [stream_vt_filter_method] *) // (* ****** ****** *) // implement stream_vt_exists_cloref {a}(xs, pred) = loop(xs) where { // fun loop ( xs: stream_vt(a) ) : bool = ( case+ !xs of | ~stream_vt_nil() => false | ~stream_vt_cons(x, xs) => if pred(x) then (~xs; true) else loop(xs) // stream_vt_cons ) // } (* end of [stream_vt_exists_cloref] *) // implement stream_vt_exists_method (xs) = ( llam(pred) => stream_vt_exists_cloref(xs, pred) ) (* end of [stream_vt_exists_method] *) // (* ****** ****** *) // implement stream_vt_forall_cloref {a}(xs, pred) = loop(xs) where { // fun loop ( xs: stream_vt(a) ) : bool = ( case+ !xs of | ~stream_vt_nil() => true | ~stream_vt_cons(x, xs) => if pred(x) then loop(xs) else (~xs; false) // stream_vt_cons ) // } (* end of [stream_vt_forall_cloref] *) // implement stream_vt_forall_method (xs) = ( llam(pred) => stream_vt_forall_cloref(xs, pred) ) (* end of [stream_vt_forall_method] *) // (* ****** ****** *) // implement stream_vt_foreach_cloref {a}(*poly*) (xs, fwork) = loop(xs) where { // fun loop ( xs: stream_vt(a) ) : void = ( case+ !xs of | ~stream_vt_nil() => () | ~stream_vt_cons(x, xs) => (fwork(x); loop(xs)) ) // } (* end of [stream_vt_foreach_cloref] *) // implement stream_vt_foreach_method (xs) = ( llam(fwork) => stream_vt_foreach_cloref(xs, fwork) ) (* end of [stream_vt_foreach_method] *) // (* ****** ****** *) // implement stream_vt_iforeach_cloref {a}(*poly*) (xs, fwork) = loop(0, xs) where { // fun loop ( i: Nat, xs: stream_vt(a) ) : void = ( case+ !xs of | ~stream_vt_nil() => () | ~stream_vt_cons(x, xs) => (fwork(i, x); loop(i+1, xs)) ) // } (* end of [stream_vt_iforeach_cloref] *) // implement stream_vt_iforeach_method (xs) = ( llam(fwork) => stream_vt_iforeach_cloref(xs, fwork) ) (* end of [stream_vt_iforeach_method] *) // (* ****** ****** *) // implement stream_vt_rforeach_cloref {a}(*poly*) (xs, fwork) = auxmain(xs) where { // fun auxmain ( xs: stream_vt(a) ) : void = ( case+ !xs of | ~stream_vt_nil() => () | ~stream_vt_cons(x, xs) => (auxmain(xs); fwork(x)) ) // } (* end of [stream_vt_rforeach_cloref] *) // implement stream_vt_rforeach_method (xs) = ( llam(fwork) => stream_vt_rforeach_cloref(xs, fwork) ) (* end of [stream_vt_rforeach_method] *) // (* ****** ****** *) implement stream_vt_tabulate_cloref {a}(fopr) = auxmain(0) where { // fun auxmain ( n0: intGte(0) ) : stream_vt(a) = ( $ldelay(stream_vt_cons(fopr(n0), auxmain(n0+1))) ) (* end of [auxmain] *) // } (* end of [stream_tabulate_cloref] *) (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/ML/0000755000175000017500000000000013431250607022320 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/ML/option0.dats0000644000175000017500000000066613431250607024575 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../../SATS/ML/option0.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) option0_is_none (opt) = ( case+ opt of | None0() => true | Some0(_) => false ) implement {}(*tmp*) option0_is_some (opt) = ( case+ opt of | Some0(_) => true | None0() => false ) // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/ML/list0.dats0000644000175000017500000002635613431250607024244 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* // staload "./../../SATS/ML/list0.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // implement {}(*tmp*) list0_sing(x) = list0_cons(x, list0_nil()) // implement {}(*tmp*) list0_pair(x, y) = list0_cons(x, list0_cons(y, list0_nil())) // (* ****** ****** *) // implement {}(*tmp*) list0_is_nil(xs) = ( case+ xs of | list0_nil() => true | _ =>> false ) implement {}(*tmp*) list0_is_cons(xs) = ( case+ xs of | list0_cons _ => true | _ =>> false ) // (* ****** ****** *) // implement list0_head_opt {a}(xs) = ( case+ xs of | list0_nil() => None_vt() | list0_cons(x, _) => Some_vt(x) ) (* end of [list0_head_opt] *) // (* ****** ****** *) // implement list0_tail_opt {a}(xs) = ( case+ xs of | list0_nil() => None_vt() | list0_cons(_, xs) => Some_vt(xs) ) (* end of [list0_tail_opt] *) // (* ****** ****** *) // implement list0_length{a}(xs) = list_length{a}($UN.cast{List0(a)}(xs)) // (* ****** ****** *) implement list0_last_opt {a}(xs) = let // fun loop ( x0: a, xs: list0(a) ) : a = ( case+ xs of | list0_nil() => x0 | list0_cons(x1, xs) => loop(x1, xs) ) // in case+ xs of | list0_nil() => None_vt() | list0_cons(x, xs) => Some_vt(loop(x, xs)) end // end of [list0_last_opt] (* ****** ****** *) // implement list0_get_at_opt (xs, n) = ( case+ xs of | list0_nil() => None_vt() // list0_nil | list0_cons(x, xs) => if n > 0 then list0_get_at_opt(xs, n-1) else Some_vt(x) // end of [list0_cons] ) (* end of [list0_get_at_opt] *) // (* ****** ****** *) implement list0_make_elt (n, x) = let // val n = g1ofg0(n) // in // if n >= 0 then g0ofg1(list_make_elt(n, x)) else list0_nil() // end // end of [list0_make_elt] (* ****** ****** *) // implement list0_make_intrange_2 (l, r) = $UN.cast(list_make_intrange_2(l, r)) implement list0_make_intrange_3 (l, r, d) = $UN.cast(list_make_intrange_3(l, r, d)) // (* ****** ****** *) // implement {a}(*tmp*) fprint_list0 (out, xs) = let // fun loop ( xs: list0(a), i0: int ) : void = ( // case+ xs of | list0_nil() => () | list0_cons(x, xs) => ( if i0 > 0 then fprint_list0$sep<>(out); // end of [if] fprint_val(out, x); loop(xs, i0+1) ) (* end of [list0_cons] *) // ) (* end of [loop] *) // in loop (xs, 0) end // end of [fprint_list0] // (* ****** ****** *) // implement {}(*tmp*) fprint_list0$sep (out) = ( fprint_string(out, ", ") ) // (* ****** ****** *) implement {a}(*tmp*) fprint_list0_sep (out, xs, sep) = let // implement fprint_list0$sep<> (out) = ( fprint_string(out, ", ") ) // in fprint_list0 (out, xs) end // end of [fprint_list0_sep] (* ****** ****** *) // implement list0_snoc{a}(xs, x0) = ( g0ofg1{a} ( list_snoc{a}(g1ofg0(xs), x0) ) ) implement list0_extend{a}(xs, x0) = ( g0ofg1{a} ( list_extend{a}(g1ofg0(xs), x0) ) ) // list0_extend // (* ****** ****** *) // implement list0_append {a}(xs, ys) = ( g0ofg1 ( list_append{a} (g1ofg0{a}(xs), g1ofg0{a}(ys)) ) ) // list0_append // (* ****** ****** *) // implement mul_int_list0 {a}(m, xs) = ( g0ofg1{a} (mul_int_list{a}(m, g1ofg0(xs))) ) // (* ****** ****** *) // implement list0_reverse{a}(xs) = ( g0ofg1(list_reverse{a}(g1ofg0(xs))) ) // implement list0_reverse_append{a}(xs, ys) = ( g0ofg1 ( list_reverse_append{a}(g1ofg0(xs), g1ofg0(ys)) ) ) // (* ****** ****** *) // implement list0_concat{a} (xss) = ( g0ofg1{a}(list_concat{a}($UN.cast(xss))) ) // list0_concat // (* ****** ****** *) implement list0_remove_at_opt {a} ( xs, i0 ) = aux(xs, 0) where { // fun aux ( xs: list0(a) , i0: intGte(0) ) : Option_vt(list0(a)) = ( case+ xs of | list0_nil() => None_vt() // list0_nil | list0_cons(x, xs) => if i0 > 0 then let val opt = aux(xs, i0-1) in case+ opt of | ~None_vt() => None_vt() | ~Some_vt(xs) => Some_vt(list0_cons(x, xs)) end // end of [then] else Some_vt(xs) // end of [else] // end of [if] ) // } (* end of [list0_remove_at_opt] *) (* ****** ****** *) // implement list0_exists (xs, pred) = list_exists(g1ofg0(xs), pred) // implement list0_exists_method {a}(xs) = lam(pred) => list0_exists{a}(xs, pred) // (* ****** ****** *) // implement list0_iexists (xs, pred) = list_iexists(g1ofg0(xs), pred) // implement list0_iexists_method {a}(xs) = lam(pred) => list0_iexists{a}(xs, pred) // (* ****** ****** *) // implement list0_forall (xs, pred) = list_forall(g1ofg0(xs), pred) // implement list0_forall_method {a}(xs) = lam(pred) => list0_forall{a}(xs, pred) // (* ****** ****** *) // implement list0_iforall (xs, pred) = list_iforall(g1ofg0(xs), pred) // implement list0_iforall_method {a}(xs) = lam(pred) => list0_iforall{a}(xs, pred) // (* ****** ****** *) // implement list0_app{a} (xs, fwork) = list0_foreach{a}(xs, fwork) implement list0_foreach{a} (xs, fwork) = list_foreach{a}(g1ofg0(xs), fwork) // implement list0_foreach_method {a}(xs) = lam(fwork) => list0_foreach{a}(xs, fwork) // (* ****** ****** *) // implement list0_iforeach{a} (xs, fwork) = list_iforeach{a}(g1ofg0(xs), fwork) // implement list0_iforeach_method {a}(xs) = lam(fwork) => list0_iforeach{a}(xs, fwork) // (* ****** ****** *) // implement list0_rforeach{a} (xs, fwork) = list_rforeach{a}(g1ofg0(xs), fwork) // implement list0_rforeach_method {a}(xs) = lam(fwork) => list0_rforeach{a}(xs, fwork) // (* ****** ****** *) // implement list0_filter {a}(xs, pred) = g0ofg1(list_filter(g1ofg0(xs), pred)) // implement list0_filter_method {a}(xs) = lam(pred) => list0_filter{a}(xs, pred) // (* ****** ****** *) // implement list0_labelize {x}(xs) = g0ofg1(list_labelize(g1ofg0(xs))) // (* ****** ****** *) // implement list0_map {a}{b} (xs, fopr) = g0ofg1(list_map(g1ofg0(xs), fopr)) // implement list0_map_method {a}{b}(xs, _) = lam(fopr) => list0_map{a}{b}(xs, fopr) // (* ****** ****** *) // implement list0_imap {a}{b} (xs, fopr) = g0ofg1(list_imap(g1ofg0(xs), fopr)) // implement list0_imap_method {a}{b}(xs, _) = lam(fopr) => list0_imap{a}{b}(xs, fopr) // (* ****** ****** *) // implement list0_map2 {a1,a2}{b} ( xs1 , xs2 , fopr ) = g0ofg1 ( list_map2(g1ofg0(xs1), g1ofg0(xs2), fopr) ) (* g0ofg1 *) // (* ****** ****** *) // implement list0_mapcons {a}(x0, xss) = ( case+ xss of | list0_nil() => list0_nil() | list0_cons(xs, xss) => list0_cons (list0_cons(x0, xs), list0_mapcons(x0, xss)) ) // (* ****** ****** *) implement list0_tabulate {a}(n0, fopr) = auxmain(0) where { // fun auxmain (i: int): list0(a) = ( if (i < n0) then list0_cons (fopr(i), auxmain(i+1)) else list0_nil((*void*)) ) // } (* end of [list0_tabulate] *) (* ****** ****** *) implement list0_find_opt (xs, pred) = ( case+ xs of | list0_nil() => None_vt((*void*)) | list0_cons(x, xs) => if pred(x) then Some_vt(x) else list0_find_opt(xs, pred) // end of [if] ) (* end of [list0_find_opt] *) implement list0_find_opt_method {a}(xs) = ( lam(pred) => list0_find_opt{a}(xs, pred) ) (* end of [list0_find_opt_method] *) (* ****** ****** *) implement list0_find_suffix (xs, pred) = ( case+ xs of | list0_nil() => list0_nil() | list0_cons(x0, xs1) => if pred(xs) then (xs) else list0_find_suffix(xs1, pred) // end of [if] ) (* end of [list0_find_suffix] *) implement list0_find_suffix_method {a}(xs) = ( lam(pred) => list0_find_suffix{a}(xs, pred) ) (* end of [list0_find_suffix_method] *) (* ****** ****** *) implement list0_zip {a,b} (xs, ys) = let // fun aux : $d2ctype (list0_zip) = lam(xs, ys) => ( case+ xs of | nil0() => nil0() | cons0(x, xs) => ( case+ ys of | nil0() => nil0() | cons0(y, ys) => cons0($tup(x, y), aux(xs, ys)) ) (* end of [cons0] *) ) // in aux{a,b}(xs, ys) end // end of [list0_zip] (* ****** ****** *) implement list0_zipwith {a1,a2}{b} (xs, ys, fopr) = let // fun aux : $d2ctype (list0_zipwith) = lam(xs, ys, fopr) => ( case+ xs of | nil0() => nil0() | cons0(x, xs) => ( case+ ys of | nil0() => nil0() | cons0(y, ys) => cons0(fopr(x, y), aux(xs, ys, fopr)) ) (* end of [cons0] *) ) // in aux{a1,a2}{b}(xs, ys, fopr) end // end of [list0_zipwith] implement list0_zipwith_method {a1,a2}{b}(xs, ys) = ( lam(fopr) => list0_zipwith{a1,a2}{b}(xs, ys, fopr) ) (* end of [list0_zipwith_method] *) (* ****** ****** *) implement list0_foldleft {res}{a} (xs, init, fopr) = let // fun aux ( res: res, xs: list0(a) ) : res = case+ xs of | list0_nil() => res | list0_cons(x, xs) => aux(fopr(res, x), xs) // in aux(init, xs) end // end of [list0_foldleft] (* ****** ****** *) implement list0_foldright {a}{res} (xs, fopr, sink) = let // fun aux ( xs: list0(a), res: res ) : res = ( case+ xs of | list0_nil() => res | list0_cons(x, xs) => fopr(x, aux(xs, sink)) ) (* end of [aux] *) // in aux(xs, sink) end // end of [list0_foldright] (* ****** ****** *) // implement {a}(*tmp*) list0_sort_1(xs) = g0ofg1(list_sort_1(g1ofg0(xs))) // implement list0_sort_2(xs, cmp) = g0ofg1(list_sort_2(g1ofg0(xs), cmp)) // (* ****** ****** *) // implement list0_mergesort {a}(xs, cmp) = g0ofg1(list_mergesort(g1ofg0(xs), cmp)) // (* ****** ****** *) // implement streamize_list0_zip {a,b}(xs, ys) = ( streamize_list_zip{a,b}(g1ofg0(xs), g1ofg0(ys)) ) implement streamize_list0_cross {a,b}(xs, ys) = ( streamize_list_cross{a,b}(g1ofg0(xs), g1ofg0(ys)) ) // (* ****** ****** *) #if defined(ATSCC_STREAM_VT) #then // implement streamize_list0_nchoose {a}(xs, n) = let // fun auxmain ( xs: list0(a), n: intGte(0) ) : stream_vt(list0(a)) = $ldelay ( // if (n > 0) then ( case+ xs of | list0_nil() => stream_vt_nil() // list0_nil | list0_cons(x0, xs1) => let val res1 = auxmain(xs1, n-1) // end of [val] val res2 = auxmain(xs1, n) in !( // lazy_vt_force stream_vt_append ( stream_vt_map_cloref {list0(a)}{list0(a)} (res1, lam(ys) => list0_cons(x0, ys)), res2 ) // stream_vt_append ) (* lazy_vt_force *) end // end of [list0_cons] ) (* end of [then] *) else ( stream_vt_cons(list0_nil, stream_vt_make_nil((*void*))) ) (* end of [else] *) // ) : stream_vt_con(list0(a)) // auxmain // in $effmask_all(auxmain(xs, n)) end (* end of [streamize_list0_nchoose] *) // #endif // ATSCC_STREAM_VT (* ****** ****** *) #if defined(ATSCC_STREAM_VT) #then // implement streamize_list0_nchoose_rest {a}(xs, n) = let // typedef tuplist = $tup(list0(a), list0(a)) // fun auxmain ( xs: list0(a), n: intGte(0) ) : stream_vt(tuplist) = $ldelay ( // if (n > 0) then ( case+ xs of | list0_nil() => stream_vt_nil() // list0_nil | list0_cons(x0, xs1) => let val res1 = auxmain(xs1, n-1) // end of [val] val res2 = auxmain(xs1, n) in !( // lazy_vt_force stream_vt_append ( stream_vt_map_cloref {tuplist}{tuplist} ( res1 , lam(ysys) => $tup(list0_cons(x0, ysys.0), ysys.1) ) , stream_vt_map_cloref {tuplist}{tuplist} ( res2 , lam(ysys) => $tup(ysys.0, list0_cons(x0, ysys.1)) ) ) // stream_vt_append ) (* lazy_vt_force *) end // end of [list0_cons] ) (* end of [then] *) else stream_vt_cons($tup(list0_nil, xs), stream_vt_make_nil()) // ) : stream_vt_con(tuplist) // auxmain // in $effmask_all(auxmain(xs, n)) end (* end of [streamize_list0_nchoose_rest] *) // #endif // ATSCC_STREAM_VT (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/ML/array0.dats0000644000175000017500000000335413431250607024400 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../../SATS/ML/array0.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // assume array0_vt0ype_type (a:vt0p) = arrszref(a) // (* ****** ****** *) // implement array0_make_elt (asz, x0) = arrszref_make_elt(asz, x0) // (* ****** ****** *) implement array0_size{a}(A) = arrszref_size{a}(A) implement array0_length{a}(A) = arrszref_size{a}(A) (* ****** ****** *) implement array0_get_at(A, i) = arrszref_get_at(A, i) implement array0_set_at(A, i, x) = arrszref_set_at(A, i, x) implement array0_exch_at(A, i, x) = arrszref_exch_at(A, i, x) (* ****** ****** *) // implement array0_exists (A, pred) = arrszref_exists_cloref(A, pred) // implement array0_exists_method (A) = lam(pred) => array0_exists(A, pred) // (* ****** ****** *) // implement array0_forall (A, pred) = arrszref_forall_cloref(A, pred) // implement array0_forall_method (A) = lam(pred) => array0_forall(A, pred) // (* ****** ****** *) implement array0_find_index ( A, pred ) = loop(0, A.size()) where { fun loop(i: Nat, n: int): intGte(~1) = ( if i < n then ( if pred(i) then i else loop(i+1, n) ) else ~1 ) } (* end of [array0_find_index] *) (* ****** ****** *) // implement array0_app (A, fwork) = array0_foreach(A, fwork) // implement array0_foreach (A, fwork) = arrszref_foreach_cloref(A, fwork) // implement array0_foreach_method (A) = lam(fwork) => array0_foreach(A, fwork) // (* ****** ****** *) implement array0_tabulate {a}(asz, fopr) = let // val asz = g1ofg0(asz) val asz = (if asz >= 0 then asz else 0): Nat // in arrszref_tabulate_cloref{a}(asz, fopr) end // end of [array0_tabulate] (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/DATS/ML/matrix0.dats0000644000175000017500000000350413431250607024563 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* // staload "./../../SATS/ML/matrix0.sats" // staload UN = "prelude/SATS/unsafe.sats" // *) (* ****** ****** *) // assume matrix0_vt0ype_type (a:vt0p) = mtrxszref(a) // (* ****** ****** *) // implement matrix0_make_elt {a}(nrow, ncol, x0) = mtrxszref_make_elt{a}(nrow, ncol, x0) // (* ****** ****** *) // implement matrix0_nrow(M) = mtrxszref_get_nrow(M) implement matrix0_ncol(M) = mtrxszref_get_ncol(M) // (* ****** ****** *) // implement matrix0_get_at (M, i, j) = mtrxszref_get_at(M, i, j) // implement matrix0_set_at (M, i, j, x0) = mtrxszref_set_at(M, i, j, x0) // (* ****** ****** *) // implement matrix0_foreach {a}(M0, fwork) = mtrxszref_foreach_cloref{a}(M0, fwork) implement matrix0_foreach_row {a}(M0, fwork) = mtrxszref_foreach_row_cloref{a}(M0, fwork) implement matrix0_foreach_col {a}(M0, fwork) = mtrxszref_foreach_col_cloref{a}(M0, fwork) // implement matrix0_foreach_method {a}(M0) = lam(fwork) => matrix0_foreach{a}(M0, fwork) implement matrix0_foreach_row_method {a}(M0) = lam(fwork) => matrix0_foreach_row{a}(M0, fwork) implement matrix0_foreach_col_method {a}(M0) = lam(fwork) => matrix0_foreach_col{a}(M0, fwork) // (* ****** ****** *) // implement matrix0_tabulate {a}{m,n} (nrow, ncol, fopr) = mtrxszref_tabulate_cloref{a}(nrow, ncol, fopr) // (* ****** ****** *) // implement cbind_matrix0_matrix0 {a}(M0, M1) = let // val m0 = M0.nrow() val m1 = M1.nrow() val n0 = M0.ncol() val n1 = M1.ncol() val () = assertloc(m0 = m1) // val M0 = mtrxszref_get_matrixref(M0) val M1 = mtrxszref_get_matrixref(M1) // in (* in-of-let *) // mtrxszref_make_matrixref ( cbind_matrixref_matrixref{a} ($UN.cast(M0), $UN.cast(M1), m0, n0, n1), m0, n0+n1 ) (* mtrxszref_make_matrixref *) // end // end of [cbind_matrix0_matrix0] // (* ****** ****** *) (* end of [matrix0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/0000755000175000017500000000000013431250607022027 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/gvalue.sats0000644000175000017500000000070313431250607024206 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // abstype gvlist_type abstype gvarray_type abstype gvhashtbl_type // typedef gvlist = gvlist_type typedef gvarray = gvarray_type typedef gvhashtbl = gvhashtbl_type // (* ****** ****** *) // fun gvarray_make_nil(intGte(0)): gvarray = "mac#%" // fun gvhashtbl_make_nil((*void*)): gvhashtbl = "mac#%" // (* ****** ****** *) (* end of [gvalue.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/intrange.sats0000644000175000017500000001472613431250607024544 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // // HX-2013-04: // intrange (l, r) is for // integers i satisfying l <= i < r // (* ****** ****** *) // fun int_repeat_lazy (n: int, f: lazy(void)): void = "mac#%" fun int_repeat_cloref (n: int, f: cfun0(void)): void = "mac#%" fun int_repeat_method (n: int)(f: cfun0(void)): void = "mac#%" // overload * with int_repeat_lazy of 100 overload repeat with int_repeat_lazy of 100 overload repeat with int_repeat_cloref of 100 overload .repeat with int_repeat_method of 100 // (* ****** ****** *) // fun int_exists_cloref (n: int, f: cfun1(int, bool)): bool = "mac#%" fun int_exists_method (n: int) (f: cfun1(int, bool)): bool = "mac#%" // fun int_forall_cloref (n: int, f: cfun1(int, bool)): bool = "mac#%" fun int_forall_method (n: int) (f: cfun1(int, bool)): bool = "mac#%" // overload .exists with int_exists_method of 100 overload .forall with int_forall_method of 100 // (* ****** ****** *) // fun int_foreach_cloref (n: int, f: cfun1(int, void)): void = "mac#%" fun int_foreach_method (n: int) (f: cfun1(int, void)): void = "mac#%" // overload .foreach with int_foreach_method of 100 // (* ****** ****** *) // fun int_rforeach_cloref (n: int, f: cfun1(int, void)): void = "mac#%" fun int_rforeach_method (n: int) (f: cfun1(int, void)): void = "mac#%" // overload .rforeach with int_rforeach_method of 100 // (* ****** ****** *) // fun int_foldleft_cloref {res:t0p} ( n0: int , ini: res, fopr: cfun2(res, int, res) ) : res = "mac#%" // end of [int_foldleft_cloref] // fun int_foldleft_method {res:t0p} ( n0: int, _: TYPE(res) ) ( ini: res, fopr: cfun2(res, int, res) ) : res = "mac#%" // end of [int_foldleft_method] // overload .foldleft with int_foldleft_method of 100 // (* ****** ****** *) // fun int_foldright_cloref {res:t0p} ( n0: int , fopr: cfun2(int, res, res), snk: res ) : res = "mac#%" // end of [int_foldright_cloref] // fun int_foldright_method {res:t0p} ( n0: int, _: TYPE(res) ) ( fopr: cfun2(int, res, res), snk: res ) : res = "mac#%" // end of [int_foldright_method] // overload .foldright with int_foldright_method of 100 // (* ****** ****** *) // fun int_list_map_cloref {a:t0p}{n:nat} ( n: int(n), fopr: cfun(int, a) ) : list(a, n) = "mac#%" // end-of-fun fun int_list_map_method {a:t0p}{n:nat} ( n: int(n), _: TYPE(a))(fopr: cfun(int, a) ) : list(a, n) = "mac#%" // end-of-function // overload .list_map with int_list_map_method // (* ****** ****** *) // fun int_list0_map_cloref {a:t0p} (int, fopr: cfun(int, a)): list0(a) = "mac#%" // fun int_list0_map_method {a:t0p} (int, TYPE(a))(fopr: cfun(int, a)): list0(a) = "mac#%" // overload .list0_map with int_list0_map_method // (* ****** ****** *) // fun int_stream_map_cloref {a:t0p}{n:nat} ( n0: int(n), fopr: cfun1(natLt(n), a) ) : stream(a) = "mac#%" fun int_stream_map_method {a:t0p}{n:nat} (int(n), TYPE(a)) : (cfun1(natLt(n), a)) - stream(a) = "mac#%" // overload .stream_map with int_stream_map_method // (* ****** ****** *) // fun int_stream_vt_map_cloref {a:vt0p}{n:nat} ( n0: int(n), fopr: cfun1(natLt(n), a) ) : stream_vt(a) = "mac#%" // end-of-function fun int_stream_vt_map_method {a:vt0p}{n:nat} (n0: int(n), TYPE(a)) : (cfun1(natLt(n), a)) - stream_vt(a) = "mac#%" // overload .stream_vt_map with int_stream_vt_map_method // (* ****** ****** *) // // HX-2016-07-27: // no overloading for these int2-functions // fun int2_exists_cloref ( n1: int, n2: int , pred: cfun2(int, int, bool)): bool = "mac#%" fun int2_forall_cloref ( n1: int, n2: int , pred: cfun2(int, int, bool)): bool = "mac#%" // fun int2_foreach_cloref ( n1: int, n2: int , fwork: cfun2(int, int, void)): void = "mac#%" // (* ****** ****** *) // fun int_cross_exists_method (n1: int, n2: int) (pred: cfun2(int, int, bool)): bool = "mac#%" fun int_cross_forall_method (n1: int, n2: int) (pred: cfun2(int, int, bool)): bool = "mac#%" // overload .cross_exists with int_cross_exists_method overload .cross_forall with int_cross_forall_method // (* ****** ****** *) // fun int_cross_foreach_method (n1: int, n2: int) (fwork: cfun2(int, int, void)): void = "mac#%" // overload .cross_foreach with int_cross_foreach_method // (* ****** ****** *) // fun intrange_exists_cloref (l: int, r: int, f: cfun1(int, bool)): bool = "mac#%" fun intrange_exists_method (lr: $tup(int, int))(pred: cfun(int, bool)): bool = "mac#%" // fun intrange_forall_cloref (l: int, r: int, pred: cfun1(int, bool)): bool = "mac#%" fun intrange_forall_method (lr: $tup(int, int))(pred: cfun(int, bool)): bool = "mac#%" // overload .exists with intrange_exists_method overload .forall with intrange_forall_method // (* ****** ****** *) // fun intrange_foreach_cloref (l: int, r: int, fwork: cfun1(int, void)): void = "mac#%" fun intrange_foreach_method (lr: $tup(int, int))(fwork: cfun(int, void)): void = "mac#%" // overload .foreach with intrange_foreach_method // (* ****** ****** *) // fun intrange_rforeach_cloref (l: int, r: int, fwork: cfun1(int, void)): void = "mac#%" fun intrange_rforeach_method (lr: $tup(int, int))(fwork: cfun(int, void)): void = "mac#%" // overload .rforeach with intrange_rforeach_method // (* ****** ****** *) // fun intrange_foldleft_cloref {res:t@ype} ( l: int, r: int, ini: res, fopr: cfun2(res, int, res) ) : res = "mac#%" // end of [intrange_foldleft_cloref] fun intrange_foldleft_method {res:t@ype} ( lr: $tup(int, int), _: TYPE(res) )(ini: res, fopr: cfun2(res, int, res)): res = "mac#%" // overload .foldleft with intrange_foldleft_method of 100 // (* ****** ****** *) // fun intrange_foldright_cloref {res:t@ype} ( l: int, r: int, fopr: cfun2(int, res, res), snk: res ) : res = "mac#%" // end of [intrange_foldright_cloref] fun intrange_foldright_method {res:t@ype} ( lr: $tup(int, int), _: TYPE(res) )(fopr: cfun2(int, res, res), snk: res): res = "mac#%" // overload .foldright with intrange_foldright_method of 100 // (* ****** ****** *) // // HX-2016-07-27: // no overloading for these intrange2-functions // fun intrange2_exists_cloref ( l1: int, r1: int, l2: int, r2: int, f: cfun2(int, int, bool) ) : bool = "mac#%" // end of [intrange2_exists_cloref] fun intrange2_forall_cloref ( l1: int, r1: int, l2: int, r2: int, f: cfun2(int, int, bool) ) : bool = "mac#%" // end of [intrange2_forall_cloref] // fun intrange2_foreach_cloref ( l1: int, r1: int, l2: int, r2: int, f: cfun2(int, int, void) ) : void = "mac#%" // end of [intrange2_foreach_cloref] // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/list.sats0000644000175000017500000002261213431250607023701 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // macdef list_sing(x) = list_cons(,(x), list_nil) macdef list_pair(x1, x2) = list_cons(,(x1), list_cons(,(x2), list_nil)) // (* ****** ****** *) // fun{} list_is_nil {a:t0p}{n:int}(list(a, n)): bool(n==0) fun{} list_is_cons {a:t0p}{n:int}(list(a, n)): bool(n > 0) // overload iseqz with list_is_nil of 100 overload isneqz with list_is_cons of 100 // (* ****** ****** *) // fun list_make_elt {x:t0p}{n:nat} (n: int n, x: x): list(x, n) = "mac#%" // end of [list_make_elt] // (* ****** ****** *) // fun list_make_intrange_2 (l: int, r: int): List0(int) = "mac#%" fun list_make_intrange_3 (l: int, r: int, d: int): List0(int) = "mac#%" // symintr list_make_intrange // overload list_make_intrange with list_make_intrange_2 overload list_make_intrange with list_make_intrange_3 // (* ****** ****** *) // fun {a:t0p} print_list (List(INV(a))): void = "mac#%" fun {a:t0p} print_list_sep (List(INV(a)), sep: string): void = "mac#%" // overload print with print_list of 100 // (* ****** ****** *) // fun list_length {a:t0p}{n:int} (xs: list(a, n)): int(n) = "mac#%" // overload length with list_length of 100 // (* ****** ****** *) // fun list_length_gte {x:t0p}{n1,n2:int} (list(INV(x), n1), int(n2)): bool(n1 >= n2) = "mac#%" fun list_length_compare {x:t0p}{n1,n2:int} (list(INV(x), n1), int(n2)): int(sgn(n1-n2)) = "mac#%" // overload >= with list_length_gte of 100 overload compare with list_length_compare of 100 // (* ****** ****** *) // fun list_head {x:t0p}{n:pos} (list(INV(x), n)):<> (x) = "mac#%" fun list_tail {x:t0p}{n:pos} (SHR(list(INV(x), n))):<> list(x, n-1) = "mac#%" // (* ****** ****** *) // fun list_last {a:t0p}{n:pos} (xs: list(INV(a), n)): (a) = "mac#%" // (* ****** ****** *) // fun list_get_at {a:t0p}{n:int} (list(INV(a), n), natLt(n)): a = "mac#%" // overload [] with list_get_at of 100 // (* ****** ****** *) // fun list_snoc {a:t0p}{n:int} (list(INV(a), n), x0: a): list(a, n+1)= "mac#%" // fun list_extend {a:t0p}{n:int} (list(INV(a), n), x0: a): list(a, n+1)= "mac#%" // (* ****** ****** *) // fun list_append {a:t0p}{i,j:int} (list(INV(a), i), list(a, j)): list(a, i+j)= "mac#%" // overload + with list_append of 100 // infix // (* ****** ****** *) // fun mul_int_list {a:t0p} {m,n:int | m >= 0} (m: int(m), xs: list(INV(a), n)): list(a, m*n) = "mac#%" // overload * with mul_int_list of 100 // infix // (* ****** ****** *) // fun list_reverse {a:t0p}{n:int} (list(INV(a), n)): list(a, n) = "mac#%" // fun list_reverse_append {a:t0p}{i,j:int} (list(INV(a), i), list(a, j)): list(a, i+j) = "mac#%" // overload reverse with list_reverse of 100 overload revappend with list_reverse_append of 100 // (* ****** ****** *) // fun list_concat {x:t0p}(xss: List(List(INV(x)))): List0(x) = "mac#%" // (* ****** ****** *) // fun list_take {a:t0p} {n:int} {i:nat | i <= n} (xs: list(INV(a), n), i: int(i)): list(a, i) = "mac#%" fun list_drop {a:t0p} {n:int} {i:nat | i <= n} (xs: list(INV(a), n), i: int(i)): list(a, n-i) = "mac#%" // fun list_split_at {a:t0p} {n:int} {i:nat | i <= n} (list(INV(a), n), int(i)): $tup(list(a, i), list(a, n-i)) = "mac#%" // (* ****** ****** *) // fun list_insert_at {a:t0p} {n:int} {i:nat | i <= n} (list(INV(a), n), int(i), a): list(a, n+1) = "mac#%" // fun list_remove_at {a:t0p} {n:int}{i:nat | i < n} (xs: list(INV(a), n), i: int(i)): list(a, n-1) = "mac#%" fun list_takeout_at {a:t0p} {n:int}{i:nat | i < n} (list(INV(a), n), int(i)): $tup(a, list(a, n-1)) = "mac#%" // (* ****** ****** *) // fun list_exists {a:t0p} ( xs: List(INV(a)), pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function fun list_exists_method {a:t0p} ( xs: List(INV(a)))(pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function // overload .exists with list_exists_method // fun list_iexists {a:t0p} ( xs: List(INV(a)), pred: cfun(Nat, a, bool) ) : bool = "mac#%" // end of [list_iexists] fun list_iexists_method {a:t0p} ( xs: List(INV(a)))(pred: cfun(Nat, a, bool) ) : bool = "mac#%" // end of [list_iexists] // overload .iexists with list_iexists_method // (* ****** ****** *) // fun list_forall {a:t0p} ( xs: List(INV(a)), pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function fun list_forall_method {a:t0p} ( List(INV(a)))(pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function // overload .forall with list_forall_method // fun list_iforall {a:t0p} ( xs: List(INV(a)), pred: cfun(Nat, a, bool) ) : bool = "mac#%" // end of [list_iforall] fun list_iforall_method {a:t0p} ( xs: List(INV(a)))(pred: cfun(Nat, a, bool) ) : bool = "mac#%" // end of [list_iforall] // overload .iforall with list_iforall_method // (* ****** ****** *) // fun list_app {a:t0p} ( xs: List(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list_foreach {a:t0p} ( xs: List(INV(a)) , fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // fun list_foreach_method {a:t0p} ( xs: List(INV(a)))(fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // overload .foreach with list_foreach_method // (* ****** ****** *) // fun list_iforeach {a:t0p} ( xs: List(INV(a)) , fwork: cfun(Nat, a, void) ) : void = "mac#%" // end-of-function fun list_iforeach_method {a:t0p} ( xs: List(INV(a)))(fwork: cfun(Nat, a, void) ) : void = "mac#%" // end-of-function // overload .iforeach with list_iforeach_method // (* ****** ****** *) // fun list_rforeach {a:t0p} ( xs: List(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list_rforeach_method {a:t0p} ( xs: List(INV(a)))(fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // overload .rforeach with list_rforeach_method // (* ****** ****** *) // fun list_filter {a:t0p}{n:int} ( xs: list(INV(a), n), pred: cfun(a, bool) ) : listLte(a, n) = "mac#%" // end-of-fun fun list_filter_method {a:t0p}{n:int} ( xs: list(INV(a), n))(pred: cfun(a, bool) ) : listLte(a, n) = "mac#%" // end-of-fun // overload .filter with list_filter_method // (* ****** ****** *) // fun list_labelize {x:t0p}{n:int} (list(INV(x), n)): list($tup(int, x), n) = "mac#%" // end of [list_labelize] // (* ****** ****** *) // fun list_map {a:t0p}{b:t0p}{n:int} ( xs: list(INV(a), n), fopr: cfun(a, b) ) : list(b, n) = "mac#%" // end-of-function fun list_map_method {a:t0p}{b:t0p}{n:int} ( xs: list(INV(a), n), TYPE(b))(fopr: cfun(a, b) ) : list(b, n) = "mac#%" // end-of-function // overload .map with list_map_method // HX: xs.map(TYPE{b})(...) // (* ****** ****** *) // fun list_imap {a:t0p}{b:t0p}{n:int} ( xs: list(INV(a), n), fopr: cfun(Nat, a, b) ) : list(b, n) = "mac#%" // end-of-function fun list_imap_method {a:t0p}{b:t0p}{n:int} ( xs: list(INV(a), n), TYPE(b))(fopr: cfun(Nat, a, b) ) : list(b, n) = "mac#%" // end-of-function // overload .imap with list_imap_method // HX: xs.imap(TYPE{b})(...) // (* ****** ****** *) // fun list_map2 {a1,a2:t0p} {b:t0p}{n1,n2:int} ( xs1: list(INV(a1), n1) , xs2: list(INV(a2), n2), fopr: cfun(a1, a2, b) ) : list(b, min(n1,n2)) = "mac#%" // end-of-function // (* ****** ****** *) // fun list_foldleft {res:vt0p}{a:t0p} ( List(INV(a)), init: res, fopr: (res, a) - res ) : res = "mac#%" // end of [list_foldleft] fun list_foldleft_method {res:t@ype}{a:t0p} ( xs: List(INV(a)), init: res)(fopr: (res, a) - res ) : res = "mac#%" // end of [list_foldleft_method] // overload .foldleft with list_foldleft_method // (* ****** ****** *) // fun list_ifoldleft {res:vt0p}{a:t0p} ( List(INV(a)), init: res, fopr: (Nat, res, a) - res ) : res = "mac#%" // end of [list_foldleft] fun list_ifoldleft_method {res:t@ype}{a:t0p} ( xs: List(INV(a)), init: res)(fopr: (Nat, res, a) - res ) : res = "mac#%" // end of [list_foldleft_method] // overload .ifoldleft with list_ifoldleft_method // (* ****** ****** *) // fun list_foldright {a:t0p}{res:vt0p} ( List(INV(a)), fopr: (a, res) - res, sink: res ) : res = "mac#%" // end of [list_foldright] // fun list_foldright_method {a:t0p}{res:t@ype} ( xs: List(INV(a)), sink: res)(fopr: (a, res) - res ) : res = "mac#%" // end of [list_foldright] // overload .foldright with list_foldright_method // (* ****** ****** *) // fun list_ifoldright {a:t0p}{res:vt0p} ( List(INV(a)), fopr: (Nat, a, res) - res, sink: res ) : res = "mac#%" // end of [list_foldright] // fun list_ifoldright_method {a:t0p}{res:t@ype} ( xs: List(INV(a)), sink: res)(fopr: (Nat, a, res) - res ) : res = "mac#%" // end of [list_foldright] // overload .ifoldright with list_ifoldright_method // (* ****** ****** *) // fun {a:t0p} list_sort_1 {n:int} (list(INV(a), n)): list(a, n) = "mac#%" // fun list_sort_2 {a:t0p}{n:int} ( list(INV(a), n), cmp: (a, a) - int ) : list(a, n) = "mac#%" // symintr list_sort overload list_sort with list_sort_1 of 100 overload list_sort with list_sort_2 of 100 // (* ****** ****** *) // fun list_mergesort {a:t0p}{n:int} ( list(INV(a), n), cmp: (a, a) - int ) : list(a, n) = "mac#%" // (* ****** ****** *) // fun streamize_list_elt {a:t0p} ( xs: List(INV(a)) ) :<> stream_vt(a) = "mac#%" // end-of-function // (* ****** ****** *) // fun streamize_list_zip {a,b:t0p} ( List(INV(a)) , List(INV(b)) ) :<> stream_vt($tup(a,b)) = "mac#%" // end-of-fun // fun streamize_list_cross {a,b:t0p} ( xs: List(INV(a)) , ys: List(INV(b)) ) :<> stream_vt($tup(a,b)) = "mac#%" // end-of-fun // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/list_vt.sats0000644000175000017500000000240113431250607024404 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun{} list_vt_is_nil {a:vt0p}{n:int} (xs: !list_vt(a, n)): bool(n==0) fun{} list_vt_is_cons {a:vt0p}{n:int} (xs: !list_vt(a, n)): bool(n > 0) // overload iseqz with list_vt_is_nil of 100 overload isneqz with list_vt_is_cons of 100 // (* ****** ****** *) // fun list_vt_length {a:vt0p}{n:int} (xs: !list_vt(INV(a), n)): int(n) = "mac#%" // overload length with list_vt_length of 100 // (* ****** ****** *) // fun list_vt_snoc {a:vt0p}{n:int} (xs: list_vt(INV(a), n), x0: a): list_vt(a, n+1) = "mac#%" // fun list_vt_extend {a:vt0p}{n:int} (xs: list_vt(INV(a), n), x0: a): list_vt(a, n+1) = "mac#%" // (* ****** ****** *) // fun list_vt_append {a:vt0p}{i,j:int} (list_vt(INV(a), i), list_vt(a, j)): list_vt(a, i+j)= "mac#%" // overload + with list_vt_append of 100 // infix // (* ****** ****** *) // fun list_vt_reverse {a:vt0p}{n:int} (list_vt(INV(a), n)): list_vt(a, n) = "mac#%" // fun list_vt_reverse_append {a:vt0p}{i,j:int} (list_vt(INV(a), i), list_vt(a, j)): list_vt(a, i+j) = "mac#%" // overload reverse with list_vt_reverse of 100 overload revappend with list_vt_reverse_append of 100 // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/arrayref.sats0000644000175000017500000000665113431250607024546 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun arrayref_make_elt {a:t0p}{n:nat} (int(n), a): arrayref(a, n) = "mac#%" // (* ****** ****** *) // fun arrayref_get_at {a:t0p}{n:int} (arrayref(a, n), natLt(n)): a = "mac#%" // fun arrayref_set_at {a:t0p}{n:int} (arrayref(a, n), natLt(n), a): void = "mac#%" // fun arrayref_exch_at {a:vt0p}{n:int} (arrayref(a, n), natLt(n), x0: a): (a) = "mac#%" // (* ****** ****** *) overload [] with arrayref_get_at of 100 overload [] with arrayref_set_at of 100 (* ****** ****** *) // fun arrayref_exists_cloref {a:vt0p}{n:int} ( A0: arrayref(a, n) , asz: int(n), ftest: natLt(n) - bool ) : bool = "mac#%" // end-of-fun // fun arrayref_forall_cloref {a:vt0p}{n:int} ( A0: arrayref(a, n) , asz: int(n), ftest: natLt(n) - bool ) : bool = "mac#%" // end-of-fun // (* ****** ****** *) fun arrayref_foreach_cloref {a:vt0p}{n:int} ( A0: arrayref(a, n) , asz: int(n), fwork: natLt(n) - void ) : void = "mac#%" // end-of-fun (* ****** ****** *) // fun arrayref_tabulate_cloref {a:vt0p}{n:int} ( asz: int(n), fopr: (natLt(n)) - (a) ) : arrayref(a, n) = "mac#%" // end-of-fun // (* ****** ****** *) // // HX: array-with-size // (* ****** ****** *) // fun arrszref_size {a:vt0p} (A: arrszref(a)): intGte(0) = "mac#%" fun arrszref_get_size {a:vt0p} (A: arrszref(a)): intGte(0) = "mac#%" // overload size with arrszref_size overload .size with arrszref_get_size // (* ****** ****** *) // fun arrszref_make_elt {a:t0p}{n:nat} (int(n), a): arrszref(a) = "mac#%" // (* ****** ****** *) // fun arrszref_get_arrayref {a:t0p} (arrszref(a)): [n:nat] arrayref(a,n) = "mac#%" // fun arrszref_make_arrayref {a:t0p}{n:int} (arrayref(a, n), int(n)): arrszref(a) = "mac#%" // end of [arrszref_make_arrayref] // (* ****** ****** *) // fun arrszref_get_at {a:t0p}(A: arrszref(a), i: int): a = "mac#%" // fun arrszref_set_at {a:t0p}(A: arrszref(a), i: int, x0: a): void = "mac#%" // fun arrszref_exch_at {a:vt0p}(A: arrszref(a), i: int, x0: a): (a) = "mac#%" // (* ****** ****** *) overload [] with arrszref_get_at of 100 overload [] with arrszref_set_at of 100 (* ****** ****** *) // fun arrszref_exists_cloref {a:vt0p} ( A0: arrszref(a) , pred: intGte(0) - bool ) : bool = "mac#%" // arrszref_exists_cloref fun arrszref_exists_method {a:vt0p} ( A0: arrszref(a) ) ( pred: intGte(0) - bool ) : bool = "mac#%" // arrszref_exists_method // overload .exists with arrszref_exists_method of 100 // (* ****** ****** *) // fun arrszref_forall_cloref {a:vt0p} ( A0: arrszref(a) , pred: intGte(0) - bool ) : bool = "mac#%" // arrszref_forall_cloref fun arrszref_forall_method {a:vt0p} ( A0: arrszref(a) ) ( pred: intGte(0) - bool ) : bool = "mac#%" // arrszref_forall_method // overload .forall with arrszref_forall_method of 100 // (* ****** ****** *) // fun arrszref_foreach_cloref {a:vt0p} ( A0: arrszref(a) , fwork: intGte(0) - void ) : void = "mac#%" // arrszref_foreach_cloref // fun arrszref_foreach_method {a:vt0p} ( A: arrszref(a) ) ( fwork: intGte(0) - void ) : void = "mac#%" // arrszref_foreach_method // overload .foreach with arrszref_foreach_method of 100 // (* ****** ****** *) // fun arrszref_tabulate_cloref {a:vt0p}{n:int} ( asz: int(n) , fopr: (natLt(n)) - (a)): arrszref(a) = "mac#%" // (* ****** ****** *) (* end of [arrayref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/matrixref.sats0000644000175000017500000001151513431250607024727 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun matrixref_make_elt {a:t@ype}{m,n:nat} (int(m), int(n), a): matrixref(a, m, n) = "mac#%" // (* ****** ****** *) // fun matrixref_get_at {a:t@ype}{m,n:int} ( matrixref(a, m, n), natLt(m), int(n), natLt(n) ) : a = "mac#%" // end-of-function // fun matrixref_set_at {a:t@ype}{m,n:int} ( matrixref(a, m, n), natLt(m), int(n), natLt(n), a ) : void = "mac#%" // end-of-function // (* ****** ****** *) overload [] with matrixref_get_at of 100 overload [] with matrixref_set_at of 100 (* ****** ****** *) // fun matrixref_exists_cloref {a:vt@ype}{m,n:int} ( matrixref(a, m, n), int(m), int(n) , ftest: (natLt(m), natLt(n)) - bool ) : bool = "mac#%" // end-of-fun // fun matrixref_forall_cloref {a:vt@ype}{m,n:int} ( matrixref(a, m, n), int(m), int(n) , ftest: (natLt(m), natLt(n)) - bool ) : bool = "mac#%" // end-of-fun // (* ****** ****** *) // fun matrixref_foreach_cloref {a:vt@ype}{m,n:int} ( matrixref(a, m, n), int(m), int(n) , fwork: (natLt(m), natLt(n)) - void ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // fun matrixref_tabulate_cloref {a:vt@ype}{m,n:nat} ( int(m), int(n), fopr: (natLt(m), natLt(n)) - a ) : matrixref(a, m, n) = "mac#%" // end-of-fun // (* ****** ****** *) // fun cbind_matrixref_matrixref {a:t@ype}{m0,n1,n2:int} ( M1: matrixref(a, m0, n1) , M2: matrixref(a, m0, n2) , m0: int(m0), n1: int(n1), n2: int(n2)): matrixref(a, m0, n1+n2) = "mac#%" fun rbind_matrixref_matrixref {a:t@ype}{m1,m2,n0:int} ( M1: matrixref(a, m1, n0) , M2: matrixref(a, m2, n0) , m1: int(m1), m2: int(m2), n0: int(n0)): matrixref(a, m1+m2, n0) = "mac#%" // overload cbind with cbind_matrixref_matrixref overload rbind with rbind_matrixref_matrixref // (* ****** ****** *) // // HX: matrix-with-size // (* ****** ****** *) // fun mtrxszref_make_elt {a:t0p}{m,n:nat} (int(m), int(n), x0: a): mtrxszref(a) = "mac#%" // (* ****** ****** *) // fun mtrxszref_get_nrow {a:vt0p}(mtrxszref(a)): intGte(0) = "mac#%" fun mtrxszref_get_ncol {a:vt0p}(mtrxszref(a)): intGte(0) = "mac#%" // overload .nrow with mtrxszref_get_nrow of 100 overload .ncol with mtrxszref_get_ncol of 100 // (* ****** ****** *) // fun mtrxszref_get_matrixref {a:t0p} ( MSZ: mtrxszref(a) ) : [m:nat;n:nat] matrixref(a, m, n) = "mac#%" // (* ****** ****** *) // fun mtrxszref_make_matrixref {a:t0p}{m,n:int} (matrixref(a, m, n), int(m), int(n)): mtrxszref(a) = "mac#%" // end of [mtrxszref_make_matrixref] // (* ****** ****** *) // fun mtrxszref_get_at {a:t0p} (MSZ: mtrxszref(a), i: int, j: int): a = "mac#%" fun mtrxszref_set_at {a:t0p} (MSZ: mtrxszref(a), i: int, j: int, x: a): void = "mac#%" // (* ****** ****** *) overload [] with mtrxszref_get_at of 100 overload [] with mtrxszref_set_at of 100 (* ****** ****** *) // fun mtrxszref_exists_cloref {a:t@ype} ( MSZ: mtrxszref(a) , ftest: (Nat, Nat) - bool ) : bool = "mac#%" // end-of-function fun mtrxszref_exists_method {a:t@ype} ( MSZ: mtrxszref(a) ) ( ftest: (Nat, Nat) - bool ) : bool = "mac#%" // end-of-function // overload .exists with mtrxszref_exists_method of 100 // (* ****** ****** *) // fun mtrxszref_forall_cloref {a:t@ype} ( MSZ: mtrxszref(a) , ftest: (Nat, Nat) - bool ) : bool = "mac#%" // end-of-function fun mtrxszref_forall_method {a:t@ype} ( MSZ: mtrxszref(a) ) ( ftest: (Nat, Nat) - bool ) : bool = "mac#%" // end-of-function // overload .forall with mtrxszref_forall_method of 100 // (* ****** ****** *) // fun mtrxszref_foreach_cloref {a:vt@ype} ( MSZ: mtrxszref(a) , fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun mtrxszref_foreach_method {a:vt@ype} ( MSZ: mtrxszref(a) ) ( fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach with mtrxszref_foreach_method of 100 // (* ****** ****** *) // fun mtrxszref_foreach_row_cloref {a:vt@ype} ( MSZ: mtrxszref(a) , fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun mtrxszref_foreach_row_method {a:vt@ype} ( MSZ: mtrxszref(a) ) ( fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach_row with mtrxszref_foreach_row_method of 100 // (* ****** ****** *) // fun mtrxszref_foreach_col_cloref {a:vt@ype} ( MSZ: mtrxszref(a) , fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun mtrxszref_foreach_col_method {a:vt@ype} ( MSZ: mtrxszref(a) ) ( fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach_col with mtrxszref_foreach_col_method of 100 // (* ****** ****** *) // fun mtrxszref_tabulate_cloref {a:vt0p}{m,n:nat} ( nrow: int(m), ncol: int(n) , fopr: (natLt(m), natLt(n)) - (a)): mtrxszref(a) = "mac#%" // (* ****** ****** *) (* end of [matrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/stream_vt.sats0000644000175000017500000001050713431250607024732 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun{} stream_vt_make_nil {a:vt0p} ( // argless ) : stream_vt(a) = "mac#%" // fun{} stream_vt_make_cons {a:t0p} ( x0: a, xs: stream_vt(INV(a)) ) :<> stream_vt(a) = "mac#%" // (* ****** ****** *) // fun{} stream_vt_sing {a:t0p} (x0: a): stream_vt_con(a) = "mac#%" fun{} stream_vt_make_sing {a:t0p}(x0: a): stream_vt(a) = "mac#%" // (* ****** ****** *) // fun stream_vt_free {a:vt0p} (stream_vt(a)): void = "mac#%" // (* ****** ****** *) // fun stream_vt2t {a:t0p} ( xs: stream_vt(INV(a)) ) : stream(a) = "mac#%" // endfun // (* ****** ****** *) // fun stream_vt_length {a:t0p} (stream_vt(INV(a))): intGte(0) = "mac#%" // (* ****** ****** *) // fun stream_vt_takeLte {a:vt0p} ( xs: stream_vt(INV(a)), n0: intGte(0) ) :<> stream_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream2list_vt {a:vt0p} (stream_vt(INV(a))): List0_vt(a) = "mac#%" fun stream2list_vt_rev {a:vt0p} (stream_vt(INV(a))): List0_vt(a) = "mac#%" // (* ****** ****** *) // fun stream_vt_append {a:vt0p} ( stream_vt(INV(a)), stream_vt(a) ) :<> stream_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_vt_concat {a:vt0p} ( xss: stream_vt(stream_vt(INV(a))) ) :<> stream_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_vt_map_cloref {a:vt0p}{b:vt0p} ( xs: stream_vt(INV(a)), fopr: (a) - b ) : stream_vt(b) = "mac#%" // end-of-function // fun stream_vt_mapopt_cloref {a:vt0p}{b:vt0p} ( xs: stream_vt(INV(a)), fopr: (a) - Option_vt(b) ) : stream_vt(b) = "mac#%" // end-of-function // fun stream_vt_map_method {a:vt0p}{b:vt0p} ( xs: stream_vt(INV(a)), TYPE(b) ) : ( (a) - b ) - stream_vt(b) = "mac#%" // endfun fun stream_vt_mapopt_method {a:vt0p}{b:vt0p} ( xs: stream_vt(INV(a)), TYPE(b) ) : ( (a) - Option_vt(b) ) - stream_vt(b) = "mac#%" // endfun // (* ****** ****** *) // fun stream_vt_filter_cloref {a:t0ype} ( xs: stream_vt(INV(a)), pred: (a) - bool ) : stream_vt(a) = "mac#%" // end-of-function fun stream_vt_filter_method {a:t0ype} ( xs: stream_vt(INV(a)) ) : ( (a) - bool ) - stream_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_vt_exists_cloref {a:t0ype} ( stream_vt(INV(a)), pred: (a) - bool ) : bool = "mac#%" // end-of-function fun stream_vt_exists_method {a:t0ype} ( xs: stream_vt(INV(a)) ) : ((a) - bool) - bool = "mac#%" // (* ****** ****** *) // fun stream_vt_forall_cloref {a:t0ype} ( stream_vt(INV(a)), pred: (a) - bool ) : bool = "mac#%" // end-of-function fun stream_vt_forall_method {a:t0ype} ( xs: stream_vt(INV(a)) ) : ((a) - bool) - bool = "mac#%" // (* ****** ****** *) // fun stream_vt_foreach_cloref {a:vt0ype} ( xs: stream_vt(INV(a)), fwork: (a) - void ) : void = "mac#%" // end-of-function fun stream_vt_foreach_method {a:vt0ype} ( xs: stream_vt(INV(a)) ) :<> ((a) - void) - void = "mac#%" // (* ****** ****** *) // fun stream_vt_iforeach_cloref {a:vt0ype} ( xs: stream_vt(INV(a)), fwork: (Nat, a) - void ) : void = "mac#%" // end-of-function fun stream_vt_iforeach_method {a:vt0ype} ( xs: stream_vt(INV(a)) ) :<> ((Nat, a) - void) - void = "mac#%" // (* ****** ****** *) // fun stream_vt_rforeach_cloref {a:vt0ype} ( xs: stream_vt(INV(a)), fwork: (a) - void ) : void = "mac#%" // end-of-function fun stream_vt_rforeach_method {a:vt0ype} ( xs: stream_vt(INV(a)) ) :<> ((a) - void) - void = "mac#%" // (* ****** ****** *) // fun stream_vt_tabulate_cloref {a:t0p} (fopr: intGte(0) - a): stream_vt(a) = "mac#%" // (* ****** ****** *) // overload length with stream_vt_length of 100 overload append with stream_vt_append of 100 overload concat with stream_vt_concat of 100 // overload .takeLte with stream_vt_takeLte of 100 // overload .map with stream_vt_map_method of 100 overload .mapopt with stream_vt_mapopt_method of 100 overload .filter with stream_vt_filter_method of 100 overload .foreach with stream_vt_foreach_method of 100 overload .iforeach with stream_vt_iforeach_method of 100 overload .rforeach with stream_vt_rforeach_method of 100 // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/qlistref.sats0000644000175000017500000000175113431250607024560 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // abstype qlistref_type(a:vt@ype) // typedef qlistref(a:vt@ype) = qlistref_type(a) // (* ****** ****** *) fun qlistref_make_nil {a:vt0p}((*void*)): qlistref(a) = "mac#%" (* ****** ****** *) // fun qlistref_length {a:vt0p}(qlistref(a)): intGte(0) = "mac#%" // (* ****** ****** *) // fun qlistref_enqueue {a:vt0p}(qlistref(a), x0: a): void = "mac#%" // (* ****** ****** *) // fun qlistref_dequeue_exn {a:vt0p}(qlistref(a)): (a) = "mac#%" fun qlistref_dequeue_opt {a:vt0p}(qlistref(a)): Option_vt(a) = "mac#%" // (* ****** ****** *) // fun qlistref_foldleft {res:vt0p}{a:t0p} ( qlistref(a), init: res, fopr: (res, a) - res ) : res = "mac#%" // end of [qlistref_foldleft] // fun qlistref_foldright {a:t0p}{res:vt0p} ( qlistref(a), fopr: (a, res) - res, sink: res ) : res = "mac#%" // end of [qlistref_foldright] // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/reference.sats0000644000175000017500000000103013431250607024653 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun ref{a:vt0p}(x: a): ref(a) = "mac#%" // fun ref_make_elt{a:vt0p} (x: a): ref(a) = "mac#%" // (* ****** ****** *) // fun ref_get_elt{a:t0p} (r: ref a): a = "mac#%" fun ref_set_elt{a:t0p} (r: ref a, x0: a): void = "mac#%" // fun ref_exch_elt{a:vt0p} (r: ref a, x0: a): (a) = "mac#%" // (* ****** ****** *) overload [] with ref_get_elt of 100 overload [] with ref_set_elt of 100 (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/BUCS320/0000755000175000017500000000000013431250607023010 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/BUCS320/parcomb.sats0000644000175000017500000000463313431250607025335 0ustar brandonbrandon(* ** HX-2016-11-27: ** Parsing combinators ** for libatscc-common *) (* ****** ****** *) // (* #define ATS_PACKNAME "BUCS320.parcomb" *) // (* ****** ****** *) // typedef parinp(a:t@ype) = stream(a) // (* ****** ****** *) // datatype parout (a:t@ype, res:t@ype) = | PAROUT of (Option(res), parinp(a)) // (* ****** ****** *) typedef parser( a:t@ype, res:t@ype ) = parinp(a) - parout(a, res) (* ****** ****** *) // fun parser_fail {a:t@ype} {t:t@ype}(): parser(a, t) = "mac#%" fun parser_succeed {a:t@ype} {t:t@ype}(x0: t): parser(a, t) = "mac#%" // (* ****** ****** *) // fun parser_anyone {a:t@ype}((*void*)): parser(a, a) = "mac#%" // (* ****** ****** *) // fun parser_satisfy {a:t@ype} (pred: cfun(a, bool)): parser(a, a) = "mac#%" // (* ****** ****** *) // fun parser_join2 {a:t@ype} {t1,t2:t@ype} ( p1: parser(a, t1), p2: parser(a, t2) ) : parser(a, $tup(t1, t2)) = "mac#%" // end-of-fun // fun parser_join3 {a:t@ype} {t1,t2,t3:t@ype} ( p1: parser(a, t1), p2: parser(a, t2), p3: parser(a, t3) ) : parser(a, $tup(t1, t2, t3)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun parser_tup2_fst {a:t@ype} {t1,t2:t@ype} ( p1: parser(a, t1), p2: parser(a, t2) ) : parser(a, t1) = "mac#%" // end-of-function fun parser_tup2_snd {a:t@ype} {t1,t2:t@ype} ( p1: parser(a, t1), p2: parser(a, t2) ) : parser(a, t2) = "mac#%" // end-of-function // (* ****** ****** *) // fun parser_map {a:t@ype} {t:t@ype}{u:t@ype} ( p0: parser(a, t), fopr: (t) - u ) : parser(a, u) = "mac#%" // end-of-fun // fun parser_map2 {a:t@ype} {t1,t2:t@ype}{u3:t@ype} ( p1: parser(a, t1), p2: parser(a, t2), fopr: (t1, t2) - u3 ) : parser(a, u3) = "mac#%" // end-of-fun fun parser_map3 {a:t@ype} {t1,t2,t3:t@ype}{u4:t@ype} ( p1: parser(a, t1), p2: parser(a, t2), p3: parser(a, t3), fopr: (t1, t2, t3) - u4 ) : parser(a, u4) = "mac#%" // end-of-fun // (* ****** ****** *) // fun parser_orelse {a:t@ype}{t:t@ype} ( p1: parser(a, t), p2: parser(a, t) ) : parser(a, t) = "mac#%" // end-of-function // (* ****** ****** *) // fun parser_repeat0 {a:t@ype} {t:t@ype} (parser(a, t)): parser(a, list0(t)) = "mac#%" // (* ****** ****** *) // fun parser_repeat1 {a:t@ype} {t:t@ype} (parser(a, t)): parser(a, list0(t)) = "mac#%" // (* ****** ****** *) // fun parser_unlazy {a:t@ype} {t:t@ype} (lp: lazy(parser(a, t))): parser(a, t) = "mac#%" // (* ****** ****** *) (* end of [parcomb.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/BUCS320/words.sats0000644000175000017500000000076513431250607025052 0ustar brandonbrandon(* ** For processing English words *) (* ****** ****** *) // (* #define ATS_PACKNAME "BUCS320.words" *) // (* ****** ****** *) // fun theWords_size(): intGte(0) = "mac#%" // (* ****** ****** *) // fun theWords_get_at (intGte(0)): Option_vt(string) = "mac#%" // (* ****** ****** *) // fun theWords_streamize ((*void*)): stream_vt(string) = "mac#%" // (* ****** ****** *) // fun theWords_foreach_cloref ((string) - void): void = "mac#%" // (* ****** ****** *) (* end of [words.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/slistref.sats0000644000175000017500000000171713431250607024564 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // abstype slistref_type(a:vt@ype) // typedef slistref(a:vt@ype) = slistref_type(a) // (* ****** ****** *) fun slistref_make_nil {a:vt0p}(): slistref(a) = "mac#" (* ****** ****** *) // fun slistref_length {a:vt0p}(slistref(a)): intGte(0) = "mac#" // (* ****** ****** *) // fun slistref_push {a:vt0p}(slistref(a), x0: a): void = "mac#" // (* ****** ****** *) // fun slistref_pop_exn {a:vt0p}(slistref(a)): (a) = "mac#" fun slistref_pop_opt {a:vt0p}(slistref(a)): Option_vt(a) = "mac#" // (* ****** ****** *) // fun slistref_foldleft {res:vt0p}{a:t0p} ( slistref(a), init: res, fopr: (res, a) - res ) : res = "mac#" // end of [slistref_foldleft] // fun slistref_foldright {a:t0p}{res:vt0p} ( slistref(a), fopr: (a, res) - res, sink: res ) : res = "mac#" // end of [slistref_foldright] // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/option.sats0000644000175000017500000000146613431250607024242 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // castfn option_vt2t {a:t0p}{b:bool} (option_vt(INV(a), b)):<> option(a, b) // (* ****** ****** *) // fun option_some {a:t0p} (x0: a): option(a, true) = "mac#%" fun option_none {a:t0p} ((*void*)): option(a, false) = "mac#%" // (* ****** ****** *) // fun option_unsome {a:t0p} (opt: option(a, true)): (a) = "mac#%" // (* ****** ****** *) // fun option_is_some {a:t0p}{b:bool} (opt: option(a, b)): bool(b) = "mac#%" fun option_is_none {a:t0p}{b:bool} (opt: option(a, b)): bool(~b) = "mac#%" // overload is_some with option_is_some overload is_none with option_is_none // overload .is_some with option_is_some overload .is_none with option_is_none // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/funarray.sats0000644000175000017500000000240513431250607024553 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // abstype funarray_t0ype_int_type(a:t@ype+, n:int) // typedef funarray(a:t0p, n:int) = funarray_t0ype_int_type(a, n) // (* ****** ****** *) // praxi lemma_funarray_param {a:t0p}{n:int} (A: funarray(INV(a), n)): [n >= 0] void // (* ****** ****** *) // fun funarray_make_nil {a:t0p}((*void*)): funarray(a, 0) = "mac#%" // (* ****** ****** *) // fun funarray_size {a:t0p}{n:int}(A: funarray(INV(a), n)): int(n) = "mac#%" // (* ****** ****** *) // fun funarray_get_at {a:t0p}{n:int}(A: funarray(INV(a), n), i: natLt(n)): (a) = "mac#%" fun funarray_set_at {a:t0p}{n:int} (A: funarray(INV(a), n), i: natLt(n), x: a): funarray(a, n) = "mac#%" // (* ****** ****** *) // fun funarray_insert_l {a:t0p}{n:int} (A: funarray(INV(a), n), x: a): funarray(a, n+1) = "mac#%" fun funarray_insert_r {a:t0p}{n:int} (A: funarray(INV(a), n), n: int(n), x: a): funarray(a, n+1) = "mac#%" // (* ****** ****** *) // fun funarray_remove_l {a:t0p}{n:pos} (A: funarray(INV(a), n)): $tup(funarray(a, n-1), a) = "mac#%" fun funarray_remove_r {a:t0p}{n:pos} (A: funarray(INV(a), n), n: int(n)): $tup(funarray(a, n-1), a) = "mac#%" // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/stream.sats0000644000175000017500000001246713431250607024230 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun{} stream_make_nil {a:t0p}(): stream(a) = "mac#%" // (* ****** ****** *) // fun{} stream_sing {a:t0p}(a): stream_con(a) = "mac#%" fun{} stream_make_sing {a:t0p}(x0: a): stream(a) = "mac#%" // (* ****** ****** *) // fun stream_make_list {a:t0p} (xs: List0(a)): stream(a) = "mac#%" fun stream_make_list0 {a:t0p} (xs: list0(a)): stream(a) = "mac#%" // (* ****** ****** *) // fun stream_nth_opt {a:t0p} ( xs: stream(INV(a)), n: intGte(0) ) : Option_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_length {a:t0p} (stream(INV(a))): intGte(0) = "mac#%" // (* ****** ****** *) // fun stream2list {a:t0p}(stream(INV(a))): List0(a) = "mac#%" fun stream2list_rev {a:t0p}(stream(INV(a))): List0(a) = "mac#%" // (* ****** ****** *) // fun stream_takeLte {a:t0p} (stream(INV(a)), n0: Nat): stream(a) = "mac#%" fun stream_takeLte_vt {a:t0p} (stream(INV(a)), n0: Nat): stream_vt(a) = "mac#%" // (* ****** ****** *) // fun stream_take_opt {a:t0p}{n:nat} ( xs: stream(INV(a)), n: int(n) ) : Option_vt(list(a,n)) = "mac#%" // endfun // fun stream_drop_opt {a:t0p}{n:nat} ( xs: stream(INV(a)), n: int(n) ) : Option_vt(stream(a)) = "mac#%" // endfun // (* ****** ****** *) // fun stream_append {a:t0p} (stream(INV(a)), stream(a)): stream(a) = "mac#%" // (* ****** ****** *) // fun stream_concat {a:t0p} (xss: stream(stream(INV(a)))): stream(a) = "mac#%" // (* ****** ****** *) // fun stream_map_cloref {a:t0p}{b:t0p} ( xs: stream(INV(a)), fopr: (a) - b ) : stream(b) = "mac#%" // end-of-function // fun stream_map_method {a:t0p}{b:t0p} ( xs: stream(INV(a)), TYPE(b))(fopr: (a) - b ) : stream(b) = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_scan_cloref {res:t0p}{a:t0p} ( xs: stream(INV(a)) , r0: res, fopr: cfun(res, a, res)): stream(res) = "mac#%" fun stream_scan_method {res:t0p}{a:t0p} (stream(INV(a)), TYPE(res))(res, cfun(res, a, res)): stream(res) = "mac#%" // (* ****** ****** *) // fun stream_filter_cloref {a:t0p} ( xs: stream(INV(a)), pred: (a) - bool ) : stream(a) = "mac#%" // end-of-function fun stream_filter_method {a:t0p} ( xs: stream(INV(a)))(pred: (a) - bool ) : stream(a) = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_forall_cloref {a:t0p} ( xs: stream(INV(a)), pred: (a) - bool ) : bool = "mac#%" // end-of-function fun stream_forall_method {a:t0p} ( xs: stream(INV(a)))(pred: (a) - bool ) : bool = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_exists_cloref {a:t0p} ( xs: stream(INV(a)), pred: (a) - bool ) : bool = "mac#%" // end-of-function fun stream_exists_method {a:t0p} ( xs: stream(INV(a)))(pred: (a) - bool ) : bool = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_foreach_cloref {a:t0p} ( xs: stream(INV(a)) , fwork: (a) - void ) : void = "mac#%" // end-of-function fun stream_foreach_method {a:t0p} ( xs: stream(INV(a)))(fwork: (a) - void ) : void = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_iforeach_cloref {a:t0p} ( xs: stream(INV(a)) , fwork: (Nat, a) - void ) : void = "mac#%" // end-of-function fun stream_iforeach_method {a:t0p} ( xs: stream(INV(a)))(fwork: (Nat, a) - void ) : void = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_tabulate_cloref {a:t0p} (fopr: intGte(0) - a): stream(a) = "mac#%" // (* ****** ****** *) // fun cross_stream_list {a,b:t0p}{res:t0p} ( xs: stream(INV(a)), ys: List0(INV(b)) ) : stream($tup(a, b)) = "mac#%" // end-of-function fun cross_stream_list0 {a,b:t0p}{res:t0p} ( xs: stream(INV(a)), ys: list0(INV(b)) ) : stream($tup(a, b)) = "mac#%" // end-of-function // (* ****** ****** *) // fun stream2cloref_exn {a:t0p} (xs: stream(INV(a))): cfun(a) = "mac#%" fun stream2cloref_opt {a:t0p} (xs: stream(INV(a))): cfun(Option_vt(a)) = "mac#%" fun stream2cloref_last {a:t0p}(xs: stream(INV(a)), last: a): cfun(a) = "mac#%" // (* ****** ****** *) // fun stream_take_while_cloref {a:t0p} ( xs: stream(INV(a)), pred: (Nat, a) - bool ) : $tup(stream(a), List0(a)) = "mac#%" // end-of-fun fun stream_rtake_while_cloref {a:t0p} ( xs: stream(INV(a)), pred: (Nat, a) - bool ) : $tup(stream(a), List0(a)) = "mac#%" // end-of-fun // fun stream_take_until_cloref {a:t0p} ( xs: stream(INV(a)), pred: (Nat, a) - bool ) : $tup(stream(a), List0(a)) = "mac#%" // end-of-fun fun stream_rtake_until_cloref {a:t0p} ( xs: stream(INV(a)), pred: (Nat, a) - bool ) : $tup(stream(a), List0(a)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_list_xprod2 {a,b:t0p} (List0(INV(a)), List0(INV(b))): stream($tup(a, b)) = "mac#%" // (* ****** ****** *) // overload * with cross_stream_list of 100 overload * with cross_stream_list0 of 100 // overload length with stream_length of 100 overload .takeLte with stream_takeLte of 100 // overload .map with stream_map_method of 100 overload .filter with stream_filter_method of 100 overload .forall with stream_forall_method of 100 overload .exists with stream_exists_method of 100 overload .foreach with stream_foreach_method of 100 overload .iforeach with stream_iforeach_method of 100 // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/gmatrixref.sats0000644000175000017500000000274113431250607025077 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) abstype gmatrixref(a:t@ype, m:int, n:int) (* ****** ****** *) // fun gmatrixref_make_matrixref {a:t@ype}{m,n:nat} ( matrixref(a, m, n), m: int(m), n: int(n) ) : gmatrixref(a, m, n) = "mac#%" // (* ****** ****** *) // fun gmatrixref_make_subregion {a:t@ype} {m0,n0:int} {i0,j0,m,n:nat | i0+m <= m0; j0+n <= n0} ( gmatrixref(a, m0, n0) , i0: int(i0), j0: int(j0), m: int(m), n: int(n) ) : gmatrixref(a, m, n) = "mac#%" // (* ****** ****** *) // fun gmatrixref_get_at {a:t@ype} {m,n:int} ( gmatrixref(a, m, n), i: natLt(m), j: natLt(n) ) : a = "mac#%" // end-of-function // fun gmatrixref_set_at {a:t@ype} {m,n:int} ( gmatrixref(a, m, n), i: natLt(m), j: natLt(n), x: a ) : void = "mac#%" // end-of-function // (* ****** ****** *) overload [] with gmatrixref_get_at of 100 overload [] with gmatrixref_set_at of 100 (* ****** ****** *) // fun gmatrixref_exists_cloref {a:t@ype}{m,n:int} ( gmatrixref(a, m, n), ftest: (natLt(m), natLt(n)) - bool ) : bool = "mac#%" // end-of-fun fun gmatrixref_forall_cloref {a:t@ype}{m,n:int} ( gmatrixref(a, m, n), ftest: (natLt(m), natLt(n)) - bool ) : bool = "mac#%" // end-of-fun // (* ****** ****** *) // fun gmatrixref_foreach_cloref {a:t@ype}{m,n:int} ( gmatrixref(a, m, n), fwork: (natLt(m), natLt(n)) - void ) : void = "mac#%" // end-of-fun // (* ****** ****** *) (* end of [gmatrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/gprint.sats0000644000175000017500000000562613431250607024237 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: July, 2016 *) (* ****** ****** *) // fun{} gprint_flush(): void // (* ****** ****** *) fun{} gprint_newline(): void (* ****** ****** *) fun{a:t0p} gprint_val (x: INV(a)): void fun{a:vt0p} gprint_ref (x: &INV(a)): void (* ****** ****** *) // fun{} gprint_unit(unit): void // overload gprint with gprint_unit of 100 // (* ****** ****** *) fun{} gprint_int (x: int): void fun{} gprint_bool (x: bool): void fun{} gprint_char (x: char): void fun{} gprint_double (x: double): void fun{} gprint_string (x: string): void (* ****** ****** *) overload gprint with gprint_int of 100 overload gprint with gprint_bool of 100 overload gprint with gprint_char of 100 overload gprint with gprint_double of 100 overload gprint with gprint_string of 100 (* ****** ****** *) fun{} gprint_list$beg(): void fun{} gprint_list$end(): void fun{} gprint_list$sep(): void // fun{a:t0p} gprint_list (xs: List(a)): void // overload gprint with gprint_list of 100 // (* ****** ****** *) fun{} gprint_listlist$beg1(): void fun{} gprint_listlist$end1(): void fun{} gprint_listlist$sep1(): void // fun{} gprint_listlist$beg2(): void fun{} gprint_listlist$end2(): void fun{} gprint_listlist$sep2(): void // fun{a:t0p} gprint_listlist (xss: List(List(a))): void (* ****** ****** *) // fun{} gprint_array$beg(): void fun{} gprint_array$end(): void fun{} gprint_array$sep(): void // fun{a:t0p} gprint_arrayref {n:int} ( A: arrayref(a, n), asz: int(n) ) : void // end-of-function // fun{a:t0p} gprint_arrszref(ASZ: arrszref(a)): void // overload gprint with gprint_arrszref of 100 // (* ****** ****** *) (* end of [gprint.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/ML/0000755000175000017500000000000013431250607022337 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/ML/option0.sats0000644000175000017500000000055713431250607024632 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../../basics.sats" *) (* ****** ****** *) // fun{} option0_is_none {a:t0p}(xs: option0(INV(a))): bool fun{} option0_is_some {a:t0p}(xs: option0(INV(a))): bool // overload iseqz with option0_is_none of 100 overload isneqz with option0_is_some of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/ML/matrix0.sats0000644000175000017500000000430113431250607024615 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) // (* staload "./../../basics.sats" *) // (* ****** ****** *) // fun matrix0_make_elt {a:t@ype}{m,n:nat} ( nrow: int(m) , ncol: int(n), x0: a): matrix0(a) = "mac#%" // (* ****** ****** *) // fun matrix0_nrow {a:vt0p}(M: matrix0(a)): intGte(0) = "mac#%" // fun matrix0_ncol {a:vt0p}(M: matrix0(a)): intGte(0) = "mac#%" // (* ****** ****** *) // fun matrix0_get_at {a:t0p} (M: matrix0(a), i: int, j: int): a = "mac#%" // fun matrix0_set_at {a:t0p} (M: matrix0(a), i: int, j: int, x0: a): void = "mac#%" // fun matrix0_exch_at {a:vt0p} (M: matrix0(a), i: int, j: int, x0: a): ( a ) = "mac#%" // (* ****** ****** *) // overload [] with matrix0_get_at of 100 overload [] with matrix0_set_at of 100 // overload nrow with matrix0_nrow of 100 overload ncol with matrix0_ncol of 100 // (* ****** ****** *) // fun matrix0_foreach {a:vt0p} ( M0: matrix0(a) , fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun matrix0_foreach_method {a:vt0p} ( M0: matrix0(a) ) ( fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach with matrix0_foreach_method of 100 // (* ****** ****** *) // fun matrix0_foreach_row {a:vt0p} ( M0: matrix0(a) , fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun matrix0_foreach_row_method {a:vt0p} ( M0: matrix0(a) ) ( fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach_row with matrix0_foreach_row_method of 100 // (* ****** ****** *) // fun matrix0_foreach_col {a:vt0p} ( M0: matrix0(a) , fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun matrix0_foreach_col_method {a:vt0p} ( M0: matrix0(a) ) ( fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach_col with matrix0_foreach_col_method of 100 // (* ****** ****** *) // fun matrix0_tabulate {a:vt0p} {m,n:nat} ( nrow: int(m) , ncol: int(n) , fopr: (natLt(m), natLt(n)) - (a) ) : matrix0(a) = "mac#%" // end-of-function // (* ****** ****** *) // fun cbind_matrix0_matrix0 {a:t@ype} (matrix0(a), matrix0(a)): matrix0(a) = "mac#%" // (* ****** ****** *) (* end of [matrix0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/ML/list0.sats0000644000175000017500000002203013431250607024263 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../../basics.sats" *) (* ****** ****** *) // #define nil0 list0_nil #define cons0 list0_cons // #define sing0(x) list0_cons(x, list0_nil) // (* ****** ****** *) // fun{} list0_sing{a:t0p}(x: a): list0(a) fun{} list0_pair{a:t0p}(x: a, y: a): list0(a) // (* ****** ****** *) // fun{} list0_is_nil {a:t0p}(xs: list0(INV(a))): bool // fun{} list0_is_cons {a:t0p}(xs: list0(INV(a))): bool // overload iseqz with list0_is_nil overload isneqz with list0_is_cons // (* ****** ****** *) // fun list0_head_opt {a:t0p} (list0(INV(a))): Option_vt(a) = "mac#%" // fun list0_tail_opt {a:t0p} (list0(INV(a))): Option_vt(list0(a)) = "mac#%" // overload head_opt with list0_head_opt of 100 overload tail_opt with list0_tail_opt of 100 overload .head_opt with list0_head_opt of 100 overload .tail_opt with list0_tail_opt of 100 // (* ****** ****** *) // fun list0_length {a:t0p} (xs: list0(a)): intGte(0) = "mac#%" // overload length with list0_length of 100 overload .length with list0_length of 100 // (* ****** ****** *) // fun list0_last_opt {a:t0p} ( xs: list0(INV(a)) ) : Option_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun list0_get_at_opt {a:t0p} ( xs: list0(INV(a)), i: intGte(0) ) : Option_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun list0_make_elt {a:t0p} (n: intGte(0), x: a): list0(a) = "mac#%" // (* ****** ****** *) // fun list0_make_intrange_2 (l0: int, r0: int): list0(int) = "mac#%" fun list0_make_intrange_3 (l0: int, r0: int, d: int): list0(int) = "mac#%" // symintr list0_make_intrange // overload list0_make_intrange with list0_make_intrange_2 overload list0_make_intrange with list0_make_intrange_3 // (* ****** ****** *) // fun {a:t0p} print_list0 (xs: list0(INV(a))): void = "mac#%" fun {a:t0p} print_list0_sep (xs: list0(INV(a)), sep: string): void = "mac#%" // overload print with print_list0 of 100 // (* ****** ****** *) // fun list0_snoc {a:t0p} (list0(INV(a)), x0: a): list0(a)= "mac#%" // fun list0_extend {a:t0p} (list0(INV(a)), x0: a): list0(a)= "mac#%" // (* ****** ****** *) // fun list0_append {a:t0p} ( xs: list0(INV(a)), ys: list0(a) ) : list0(a) = "mac#%" // end-of-fun // overload + with list0_append of 100 // infix // (* ****** ****** *) // fun mul_int_list0 {a:t0p} ( m0: intGte(0), xs: list0(a) ) : list0(a) = "mac#%" // end-of-function // overload * with mul_int_list0 of 100 // infix // (* ****** ****** *) // fun list0_reverse {a:t0p} (xs: list0(INV(a))): list0(a) = "mac#%" // overload reverse with list0_reverse of 100 // fun list0_reverse_append {a:t0p} (xs: list0(INV(a)), ys: list0(a)): list0(a) = "mac#%" // macdef list0_revapp = list0_reverse_append // overload revapp with list0_reverse_append of 100 // (* ****** ****** *) // fun list0_concat {a:t0p}(xs: list0(list0(a))): list0(a) = "mac#%" // (* ****** ****** *) // fun list0_remove_at_opt {a:t0p} ( xs: list0(INV(a)), i: intGte(0) ) : Option_vt(list0(a)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun list0_exists {a:t0p} ( xs: list0(INV(a)), pred: cfun(a, bool) ) : bool = "mac#%" // end of [list0_exists] fun list0_exists_method {a:t0p} (list0(INV(a)))(pred: cfun(a, bool)): bool = "mac#%" // overload .exists with list0_exists_method // fun list0_iexists {a:t0p} ( xs: list0(INV(a)), pred: cfun(intGte(0), a, bool) ) : bool = "mac#%" // end of [list0_iexists] fun list0_iexists_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(intGte(0), a, bool) ) : bool = "mac#%" // end of [list0_iexists] // overload .iexists with list0_iexists_method // (* ****** ****** *) // fun list0_forall {a:t0p} ( xs: list0(INV(a)), pred: cfun(a, bool) ) : bool = "mac#%" // end of [list0_forall] fun list0_forall_method {a:t0p} (list0(INV(a)))(pred: cfun(a, bool)): bool = "mac#%" // overload .forall with list0_forall_method // fun list0_iforall {a:t0p} ( xs: list0(INV(a)), pred: cfun(intGte(0), a, bool) ) : bool = "mac#%" // end of [list0_iforall] fun list0_iforall_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(intGte(0), a, bool) ) : bool = "mac#%" // end of [list0_iforall] // overload .iforall with list0_iforall_method // (* ****** ****** *) // fun list0_app {a:t0p} ( xs: list0(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list0_foreach {a:t0p} ( xs: list0(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list0_foreach_method {a:t0p} ( xs: list0(INV(a)))(fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // overload .foreach with list0_foreach_method // (* ****** ****** *) // fun list0_iforeach {a:t0p} ( xs: list0(INV(a)), fwork: cfun(int, a, void) ) : void = "mac#%" // end-of-function fun list0_iforeach_method {a:t0p} ( xs: list0(INV(a)))(fwork: cfun(int, a, void) ) : void = "mac#%" // end-of-function // overload .iforeach with list0_iforeach_method // (* ****** ****** *) // fun list0_rforeach {a:t0p} ( xs: list0(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list0_rforeach_method {a:t0p} ( xs: list0(INV(a)))(fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // overload .rforeach with list0_rforeach_method // (* ****** ****** *) // fun list0_filter {a:t0p} ( xs: list0(INV(a)), pred: cfun(a, bool) ) : list0(a) = "mac#%" // end-of-function fun list0_filter_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(a, bool) ) : list0(a) = "mac#%" // end-of-function // overload .filter with list0_filter_method // (* ****** ****** *) // fun list0_labelize {x:t0p} (list0(INV(x))): list0($tup(int, x)) = "mac#%" // end of [list0_labelize] // (* ****** ****** *) // fun list0_map {a:t0p}{b:t0p} ( xs: list0(INV(a)), fopr: cfun(a, b) ) : list0(b) = "mac#%" // end-of-function fun list0_map_method {a:t0p}{b:t0p} ( xs: list0(INV(a)), TYPE(b))(fopr: cfun(a, b) ) : list0(b) = "mac#%" // end-of-function // overload .map with list0_map_method // (* ****** ****** *) // fun list0_imap {a:t0p}{b:t0p} ( xs: list0(INV(a)), fopr: cfun(Nat, a, b) ) : list0(b) = "mac#%" // end-of-function fun list0_imap_method {a:t0p}{b:t0p} ( xs: list0(INV(a)), TYPE(b))(fopr: cfun(Nat, a, b) ) : list0(b) = "mac#%" // end-of-function // overload .imap with list0_imap_method // (* ****** ****** *) // fun list0_map2 {a1,a2:t0p}{b:t0p} ( xs1: list0(INV(a1)) , xs2: list0(INV(a2)), fopr: cfun(a1, a2, b) ) : list0(b) = "mac#%" // end of [list0_map2] // (* ****** ****** *) // fun list0_mapcons {a:t0p} ( x0: (a) , xss: list0(list0(INV(a)))) : list0(list0(a)) = "mac#%" // (* ****** ****** *) // fun list0_tabulate {a:t0p} (n0: int, fopr: (int) - a): list0(a) = "mac#%" // (* ****** ****** *) // fun list0_find_opt {a:t0p} ( xs: list0(INV(a)), pred: cfun(a, bool) ) : Option_vt(a) = "mac#%" // end-of-fun fun list0_find_opt_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(a, bool) ) : Option_vt(a) = "mac#%" // end-of-fun // overload .find_opt with list0_find_opt_method // (* ****** ****** *) // fun list0_find_suffix {a:t0p} ( xs: list0(INV(a)), pred: cfun(list0(a), bool) ) : list0(a) = "mac#%" // end-of-fun fun list0_find_suffix_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(list0(a), bool) ) : list0(a) = "mac#%" // end-of-fun // overload .find_suffix with list0_find_suffix_method // (* ****** ****** *) // fun list0_zip {a1,a2:t0p} ( xs: list0(INV(a1)), ys: list0(INV(a2)) ) :<> list0($tup(a1, a2)) = "mac#%" // end-of-fun // fun list0_zipwith {a1,a2:t0p}{b:t0p} ( xs: list0(INV(a1)), ys: list0(INV(a2)), fopr: cfun(a1, a2, b) ) :<1> list0(b) = "mac#%" // end of [list0_zipwith] // fun list0_zipwith_method {a1,a2:t0p}{b:t0p} ( xs: list0(INV(a1)), ys: list0(INV(a2)))(fopr: cfun(a1, a2, b) ) :<1> list0(b) = "mac#%" // end of [list0_zipwith_method] // overload .map2 with list0_zipwith_method overload .zipwith with list0_zipwith_method // (* ****** ****** *) // fun list0_foldleft {res:t0p}{a:t0p} ( list0(INV(a)), init: res, fopr: cfun(res, a, res) ) : res = "mac#%" // end-of-function fun list0_foldright {a:t0p}{res:t0p} ( list0(INV(a)), fopr: cfun(a, res, res), sink: res ) : res = "mac#%" // end-of-function // (* ****** ****** *) // fun {a:t0p} list0_sort_1 (list0(INV(a))): list0(a) = "mac#%" // fun list0_sort_2 {a:t0p} ( list0(INV(a)), cmp: (a, a) - int ) : list0(a) = "mac#%" // symintr list0_sort // overload list0_sort with list0_sort_1 of 100 overload list0_sort with list0_sort_2 of 100 // (* ****** ****** *) // fun list0_mergesort {a:t0p} ( list0(INV(a)), cmp: (a, a) - int ) : list0(a) = "mac#%" // (* ****** ****** *) // fun streamize_list0_zip {a,b:t0p} ( xs: list0(INV(a)) , ys: list0(INV(b)) ) :<> stream_vt($tup(a,b)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun streamize_list0_cross {a,b:t0p} ( xs: list0(INV(a)) , ys: list0(INV(b)) ) :<> stream_vt($tup(a,b)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun streamize_list0_nchoose {a:t0p} ( xs: list0(INV(a)), n: intGte(0) ) :<> stream_vt(list0(a)) = "mac#%" // end-of-fun fun streamize_list0_nchoose_rest {a:t0p} ( xs: list0(INV(a)), n: intGte(0) ) :<> stream_vt($tup(list0(a), list0(a))) = "mac#%" // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/ATS2-0.3.2/SATS/ML/array0.sats0000644000175000017500000000405513431250607024435 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../../basics.sats" *) (* ****** ****** *) // fun array0_make_elt {a:t@ype}{n:nat} (asz: int(n), x0: a): array0(a) = "mac#%" // (* ****** ****** *) // fun array0_size {a:vt0p}(A: array0(a)): intGte(0) = "mac#%" fun array0_length {a:vt0p}(A: array0(a)): intGte(0) = "mac#%" // (* ****** ****** *) // fun array0_get_at {a:t0p}(A: array0(a), i: int): a = "mac#%" // fun array0_set_at {a:t0p}(A: array0(a), i: int, x0: a): void = "mac#%" // fun array0_exch_at {a:vt0p}(A: array0(a), i: int, x0: a): (a) = "mac#%" // (* ****** ****** *) // overload [] with array0_get_at of 100 overload [] with array0_set_at of 100 // overload size with array0_size of 100 overload length with array0_length of 100 // overload .size with array0_size of 100 overload .length with array0_length of 100 // (* ****** ****** *) // fun array0_exists {a:vt0p} ( A0: array0(a), pred: Nat - bool ) : bool = "mac#%" // array0_exists fun array0_exists_method {a:vt0p} (A: array0(a)) (pred: Nat - bool): bool = "mac#%" // overload .exists with array0_exists_method // (* ****** ****** *) // fun array0_forall {a:vt0p} ( A0: array0(a), pred: Nat - bool ) : bool = "mac#%" // array0_forall fun array0_forall_method {a:vt0p} (A: array0(a)) (pred: Nat - bool): bool = "mac#%" // overload .forall with array0_forall_method // (* ****** ****** *) // fun array0_find_index {a:vt0p} ( A0: array0(a), pred: Nat - bool ) : intGte(~1) = "mac#" // array0_find_index // (* ****** ****** *) // fun array0_app {a:t0p} ( xs: array0(a), fwork: cfun(Nat, void) ) : void = "mac#%" // end-of-function fun array0_foreach {a:vt0p} ( A: array0(a) , fwork: cfun(Nat, void)): void = "mac#%" fun array0_foreach_method {a:vt0p} (A: array0(a)) (fwork: cfun(Nat, void)): void = "mac#%" // overload .foreach with array0_foreach_method of 100 // (* ****** ****** *) // fun array0_tabulate {a:vt0p} ( asz: int , fopr: cfun(Nat, a)): array0(a) = "mac#%" // (* ****** ****** *) (* end of [array0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/.keeper0000644000175000017500000000000013431250607021350 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/0000755000175000017500000000000013431250607020660 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/gvalue.sats0000644000175000017500000000072613431250607023044 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // abstype gvlist_type abstype gvarray_type abstype gvhashtbl_type // typedef gvlist = gvlist_type typedef gvarray = gvarray_type typedef gvhashtbl = gvhashtbl_type // (* ****** ****** *) // fun gvarray_make_nil(intGte(0)): gvarray = "mac#%" // fun gvhashtbl_make_nil((*void*)): gvhashtbl = "mac#%" // (* ****** ****** *) (* end of [gvalue.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/intrange.sats0000644000175000017500000001472313431250607023372 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // // HX-2013-04: // intrange (l, r) is for // integers i satisfying l <= i < r // (* ****** ****** *) // fun int_repeat_lazy (n: int, f: lazy(void)): void = "mac#%" fun int_repeat_cloref (n: int, f: cfun0(void)): void = "mac#%" fun int_repeat_method (n: int)(f: cfun0(void)): void = "mac#%" // overload * with int_repeat_lazy of 100 // overload repeat with int_repeat_lazy of 100 overload repeat with int_repeat_cloref of 100 overload .repeat with int_repeat_method of 100 // (* ****** ****** *) // fun int_exists_cloref (n: int, f: cfun1(int, bool)): bool = "mac#%" fun int_exists_method (n: int) (f: cfun1(int, bool)): bool = "mac#%" // fun int_forall_cloref (n: int, f: cfun1(int, bool)): bool = "mac#%" fun int_forall_method (n: int) (f: cfun1(int, bool)): bool = "mac#%" // overload .exists with int_exists_method of 100 overload .forall with int_forall_method of 100 // (* ****** ****** *) // fun int_foreach_cloref (n: int, f: cfun1(int, void)): void = "mac#%" fun int_foreach_method (n: int) (f: cfun1(int, void)): void = "mac#%" // overload .foreach with int_foreach_method of 100 // (* ****** ****** *) // fun int_rforeach_cloref (n: int, f: cfun1(int, void)): void = "mac#%" fun int_rforeach_method (n: int) (f: cfun1(int, void)): void = "mac#%" // overload .rforeach with int_rforeach_method of 100 // (* ****** ****** *) // fun int_foldleft_cloref {res:t0p} ( n0: int , ini: res, fopr: cfun2(res, int, res) ) : res = "mac#%" // end of [int_foldleft_cloref] // fun int_foldleft_method {res:t0p} ( n0: int, _: TYPE(res) ) ( ini: res, fopr: cfun2(res, int, res) ) : res = "mac#%" // end of [int_foldleft_method] // overload .foldleft with int_foldleft_method of 100 // (* ****** ****** *) // fun int_foldright_cloref {res:t0p} ( n0: int , fopr: cfun2(int, res, res), snk: res ) : res = "mac#%" // end of [int_foldright_cloref] // fun int_foldright_method {res:t0p} ( n0: int, _: TYPE(res) ) ( fopr: cfun2(int, res, res), snk: res ) : res = "mac#%" // end of [int_foldright_method] // overload .foldright with int_foldright_method of 100 // (* ****** ****** *) // fun int_list_map_cloref {a:t0p}{n:nat} ( n: int(n), fopr: cfun(int, a) ) : list(a, n) = "mac#%" // end-of-fun fun int_list_map_method {a:t0p}{n:nat} ( n: int(n), _: TYPE(a))(fopr: cfun(int, a) ) : list(a, n) = "mac#%" // end-of-function // overload .list_map with int_list_map_method // (* ****** ****** *) // fun int_list0_map_cloref {a:t0p} (int, fopr: cfun(int, a)): list0(a) = "mac#%" // fun int_list0_map_method {a:t0p} (int, TYPE(a))(fopr: cfun(int, a)): list0(a) = "mac#%" // overload .list0_map with int_list0_map_method // (* ****** ****** *) // fun int_stream_map_cloref {a:t0p}{n:nat} ( n0: int(n), fopr: cfun1(natLt(n), a) ) : stream(a) = "mac#%" fun int_stream_map_method {a:t0p}{n:nat} (int(n), TYPE(a)) : (cfun1(natLt(n), a)) - stream(a) = "mac#%" // overload .stream_map with int_stream_map_method // (* ****** ****** *) // fun int_stream_vt_map_cloref {a:vt0p}{n:nat} ( n0: int(n), fopr: cfun1(natLt(n), a) ) : stream_vt(a) = "mac#%" // end-of-function fun int_stream_vt_map_method {a:vt0p}{n:nat} (int(n), TYPE(a)) : (cfun1(natLt(n), a)) - stream_vt(a) = "mac#%" // overload .stream_vt_map with int_stream_vt_map_method // (* ****** ****** *) // // HX-2016-07-27: // no overloading for these int2-functions // fun int2_exists_cloref ( n1: int, n2: int , pred: cfun2(int, int, bool)): bool = "mac#%" fun int2_forall_cloref ( n1: int, n2: int , pred: cfun2(int, int, bool)): bool = "mac#%" // fun int2_foreach_cloref ( n1: int, n2: int , fwork: cfun2(int, int, void)): void = "mac#%" // (* ****** ****** *) // fun int_cross_exists_method (n1: int, n2: int) (pred: cfun2(int, int, bool)): bool = "mac#%" fun int_cross_forall_method (n1: int, n2: int) (pred: cfun2(int, int, bool)): bool = "mac#%" // overload .cross_exists with int_cross_exists_method overload .cross_forall with int_cross_forall_method // (* ****** ****** *) // fun int_cross_foreach_method (n1: int, n2: int) (fwork: cfun2(int, int, void)): void = "mac#%" // overload .cross_foreach with int_cross_foreach_method // (* ****** ****** *) // fun intrange_exists_cloref (l: int, r: int, f: cfun1(int, bool)): bool = "mac#%" fun intrange_exists_method (lr: $tup(int, int))(pred: cfun(int, bool)): bool = "mac#%" // fun intrange_forall_cloref (l: int, r: int, pred: cfun1(int, bool)): bool = "mac#%" fun intrange_forall_method (lr: $tup(int, int))(pred: cfun(int, bool)): bool = "mac#%" // overload .exists with intrange_exists_method overload .forall with intrange_forall_method // (* ****** ****** *) // fun intrange_foreach_cloref (l: int, r: int, fwork: cfun1(int, void)): void = "mac#%" fun intrange_foreach_method (lr: $tup(int, int))(fwork: cfun(int, void)): void = "mac#%" // overload .foreach with intrange_foreach_method // (* ****** ****** *) // fun intrange_rforeach_cloref (l: int, r: int, fwork: cfun1(int, void)): void = "mac#%" fun intrange_rforeach_method (lr: $tup(int, int))(fwork: cfun(int, void)): void = "mac#%" // overload .rforeach with intrange_rforeach_method // (* ****** ****** *) // fun intrange_foldleft_cloref {res:t@ype} ( l: int, r: int, ini: res, fopr: cfun2(res, int, res) ) : res = "mac#%" // end of [intrange_foldleft_cloref] fun intrange_foldleft_method {res:t@ype} ( lr: $tup(int, int), _: TYPE(res) )(ini: res, fopr: cfun2(res, int, res)): res = "mac#%" // overload .foldleft with intrange_foldleft_method of 100 // (* ****** ****** *) // fun intrange_foldright_cloref {res:t@ype} ( l: int, r: int, fopr: cfun2(int, res, res), snk: res ) : res = "mac#%" // end of [intrange_foldright_cloref] fun intrange_foldright_method {res:t@ype} ( lr: $tup(int, int), _: TYPE(res) )(fopr: cfun2(int, res, res), snk: res): res = "mac#%" // overload .foldright with intrange_foldright_method of 100 // (* ****** ****** *) // // HX-2016-07-27: // no overloading for these intrange2-functions // fun intrange2_exists_cloref ( l1: int, r1: int, l2: int, r2: int, f: cfun2(int, int, bool) ) : bool = "mac#%" // end of [intrange2_exists_cloref] fun intrange2_forall_cloref ( l1: int, r1: int, l2: int, r2: int, f: cfun2(int, int, bool) ) : bool = "mac#%" // end of [intrange2_forall_cloref] // fun intrange2_foreach_cloref ( l1: int, r1: int, l2: int, r2: int, f: cfun2(int, int, void) ) : void = "mac#%" // end of [intrange2_foreach_cloref] // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/list.sats0000644000175000017500000002262513431250607022536 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // macdef list_sing(x) = list_cons(,(x), list_nil) macdef list_pair(x1, x2) = list_cons(,(x1), list_cons(,(x2), list_nil)) // (* ****** ****** *) // fun{} list_is_nil {a:t0p}{n:int}(list(a, n)): bool(n==0) fun{} list_is_cons {a:t0p}{n:int}(list(a, n)): bool(n > 0) // overload iseqz with list_is_nil of 100 overload isneqz with list_is_cons of 100 // (* ****** ****** *) // fun list_make_elt {x:t0p}{n:nat} (n: int n, x: x): list(x, n) = "mac#%" // end of [list_make_elt] // (* ****** ****** *) // fun list_make_intrange_2 (l: int, r: int): List0(int) = "mac#%" fun list_make_intrange_3 (l: int, r: int, d: int): List0(int) = "mac#%" // symintr list_make_intrange // overload list_make_intrange with list_make_intrange_2 overload list_make_intrange with list_make_intrange_3 // (* ****** ****** *) // fun {a:t0p} print_list (List(INV(a))): void = "mac#%" fun {a:t0p} print_list_sep (List(INV(a)), sep: string): void = "mac#%" // overload print with print_list of 100 // (* ****** ****** *) // fun list_length {a:t0p}{n:int} (xs: list(a, n)): int(n) = "mac#%" // overload length with list_length of 100 // (* ****** ****** *) // fun list_length_gte {x:t0p}{n1,n2:int} (list(INV(x), n1), int(n2)): bool(n1 >= n2) = "mac#" fun list_length_compare {x:t0p}{n1,n2:int} (list(INV(x), n1), int(n2)): int(sgn(n1-n2)) = "mac#" // overload >= with list_length_gte of 100 overload compare with list_length_compare of 100 // (* ****** ****** *) // fun list_head {x:t0p}{n:pos} (list(INV(x), n)):<> (x) = "mac#%" fun list_tail {x:t0p}{n:pos} (SHR(list(INV(x), n))):<> list(x, n-1) = "mac#%" // (* ****** ****** *) // fun list_last {a:t0p}{n:pos} (xs: list(INV(a), n)): (a) = "mac#%" // (* ****** ****** *) // fun list_get_at {a:t0p}{n:int} (list(INV(a), n), natLt(n)): a = "mac#%" // overload [] with list_get_at of 100 // (* ****** ****** *) // fun list_snoc {a:t0p}{n:int} (list(INV(a), n), x0: a): list(a, n+1)= "mac#%" // fun list_extend {a:t0p}{n:int} (list(INV(a), n), x0: a): list(a, n+1)= "mac#%" // (* ****** ****** *) // fun list_append {a:t0p}{i,j:int} (list(INV(a), i), list(a, j)): list(a, i+j)= "mac#%" // overload + with list_append of 100 // infix // (* ****** ****** *) // fun mul_int_list {a:t0p} {m,n:int | m >= 0} (m: int(m), xs: list(INV(a), n)): list(a, m*n) = "mac#%" // overload * with mul_int_list of 100 // infix // (* ****** ****** *) // fun list_reverse {a:t0p}{n:int} (list(INV(a), n)): list(a, n) = "mac#%" // fun list_reverse_append {a:t0p}{i,j:int} (list(INV(a), i), list(a, j)): list(a, i+j) = "mac#%" // overload reverse with list_reverse of 100 overload revappend with list_reverse_append of 100 // (* ****** ****** *) // fun list_concat {x:t0p}(xss: List(List(INV(x)))): List0(x) = "mac#%" // (* ****** ****** *) // fun list_take {a:t0p} {n:int} {i:nat | i <= n} (xs: list(INV(a), n), i: int(i)): list(a, i) = "mac#%" fun list_drop {a:t0p} {n:int} {i:nat | i <= n} (xs: list(INV(a), n), i: int(i)): list(a, n-i) = "mac#%" // fun list_split_at {a:t0p} {n:int} {i:nat | i <= n} (list(INV(a), n), int(i)): $tup(list(a, i), list(a, n-i)) = "mac#%" // (* ****** ****** *) // fun list_insert_at {a:t0p} {n:int} {i:nat | i <= n} (list(INV(a), n), int(i), a): list(a, n+1) = "mac#%" // fun list_remove_at {a:t0p} {n:int}{i:nat | i < n} (xs: list(INV(a), n), i: int(i)): list(a, n-1) = "mac#%" fun list_takeout_at {a:t0p} {n:int}{i:nat | i < n} (list(INV(a), n), int(i)): $tup(a, list(a, n-1)) = "mac#%" // (* ****** ****** *) // fun list_exists {a:t0p} ( xs: List(INV(a)), pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function fun list_exists_method {a:t0p} ( xs: List(INV(a)))(pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function // overload .exists with list_exists_method // fun list_iexists {a:t0p} ( xs: List(INV(a)), pred: cfun(Nat, a, bool) ) : bool = "mac#%" // end of [list_iexists] fun list_iexists_method {a:t0p} ( xs: List(INV(a)))(pred: cfun(Nat, a, bool) ) : bool = "mac#%" // end of [list_iexists] // overload .iexists with list_iexists_method // (* ****** ****** *) // fun list_forall {a:t0p} ( xs: List(INV(a)), pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function fun list_forall_method {a:t0p} ( List(INV(a)))(pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function // overload .forall with list_forall_method // fun list_iforall {a:t0p} ( xs: List(INV(a)), pred: cfun(Nat, a, bool) ) : bool = "mac#%" // end of [list_iforall] fun list_iforall_method {a:t0p} ( xs: List(INV(a)))(pred: cfun(Nat, a, bool) ) : bool = "mac#%" // end of [list_iforall] // overload .iforall with list_iforall_method // (* ****** ****** *) // fun list_app {a:t0p} ( xs: List(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list_foreach {a:t0p} ( xs: List(INV(a)) , fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // fun list_foreach_method {a:t0p} ( xs: List(INV(a)))(fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // overload .foreach with list_foreach_method // (* ****** ****** *) // fun list_iforeach {a:t0p} ( xs: List(INV(a)) , fwork: cfun(Nat, a, void) ) : void = "mac#%" // end-of-function fun list_iforeach_method {a:t0p} ( xs: List(INV(a)))(fwork: cfun(Nat, a, void) ) : void = "mac#%" // end-of-function // overload .iforeach with list_iforeach_method // (* ****** ****** *) // fun list_rforeach {a:t0p} ( xs: List(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list_rforeach_method {a:t0p} ( xs: List(INV(a)))(fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // overload .rforeach with list_rforeach_method // (* ****** ****** *) // fun list_filter {a:t0p}{n:int} ( xs: list(INV(a), n), pred: cfun(a, bool) ) : listLte(a, n) = "mac#%" // end-of-fun fun list_filter_method {a:t0p}{n:int} ( xs: list(INV(a), n))(pred: cfun(a, bool) ) : listLte(a, n) = "mac#%" // end-of-fun // overload .filter with list_filter_method // (* ****** ****** *) // fun list_labelize {x:t0p}{n:int} (list(INV(x), n)): list($tup(int, x), n) = "mac#%" // end of [list_labelize] // (* ****** ****** *) // fun list_map {a:t0p} {b:t0p}{n:int} ( xs: list(INV(a), n), fopr: cfun(a, b) ) : list(b, n) = "mac#%" // end-of-function fun list_map_method {a:t0p}{b:t0p}{n:int} ( xs: list(INV(a), n), TYPE(b))(fopr: cfun(a, b) ) : list(b, n) = "mac#%" // end-of-function // overload .map with list_map_method // HX: xs.map(TYPE{b})(...) // (* ****** ****** *) // fun list_imap {a:t0p} {b:t0p}{n:int} ( xs: list(INV(a), n), fopr: cfun(Nat, a, b) ) : list(b, n) = "mac#%" // end-of-function fun list_imap_method {a:t0p}{b:t0p}{n:int} ( xs: list(INV(a), n), TYPE(b))(fopr: cfun(Nat, a, b) ) : list(b, n) = "mac#%" // end-of-function // overload .imap with list_imap_method // HX: xs.imap(TYPE{b})(...) // (* ****** ****** *) // fun list_map2 {a1,a2:t0p} {b:t0p}{n1,n2:int} ( xs1: list(INV(a1), n1) , xs2: list(INV(a2), n2), fopr: cfun(a1, a2, b) ) : list(b, min(n1,n2)) = "mac#%" // end-of-function // (* ****** ****** *) // fun list_foldleft {res:vt0p}{a:t0p} ( List(INV(a)), init: res, fopr: (res, a) - res ) : res = "mac#%" // end of [list_foldleft] fun list_foldleft_method {res:t@ype}{a:t0p} ( xs: List(INV(a)), init: res)(fopr: (res, a) - res ) : res = "mac#%" // end of [list_foldleft_method] // overload .foldleft with list_foldleft_method // (* ****** ****** *) // fun list_ifoldleft {res:vt0p}{a:t0p} ( List(INV(a)), init: res, fopr: (Nat, res, a) - res ) : res = "mac#%" // end of [list_foldleft] fun list_ifoldleft_method {res:t@ype}{a:t0p} ( xs: List(INV(a)), init: res)(fopr: (Nat, res, a) - res ) : res = "mac#%" // end of [list_foldleft_method] // overload .ifoldleft with list_ifoldleft_method // (* ****** ****** *) // fun list_foldright {a:t0p}{res:vt0p} ( List(INV(a)), fopr: (a, res) - res, sink: res ) : res = "mac#%" // end of [list_foldright] // fun list_foldright_method {a:t0p}{res:t@ype} ( xs: List(INV(a)), sink: res)(fopr: (a, res) - res ) : res = "mac#%" // end of [list_foldright] // overload .foldright with list_foldright_method // (* ****** ****** *) // fun list_ifoldright {a:t0p}{res:vt0p} ( List(INV(a)), fopr: (Nat, a, res) - res, sink: res ) : res = "mac#%" // end of [list_foldright] // fun list_ifoldright_method {a:t0p}{res:t@ype} ( xs: List(INV(a)), sink: res)(fopr: (Nat, a, res) - res ) : res = "mac#%" // end of [list_foldright] // overload .ifoldright with list_ifoldright_method // (* ****** ****** *) // fun {a:t0p} list_sort_1 {n:int} (list(INV(a), n)): list(a, n) = "mac#%" // fun list_sort_2 {a:t0p}{n:int} ( list(INV(a), n), cmp: (a, a) - int ) : list(a, n) = "mac#%" // symintr list_sort overload list_sort with list_sort_1 of 100 overload list_sort with list_sort_2 of 100 // (* ****** ****** *) // fun list_mergesort {a:t0p}{n:int} ( list(INV(a), n), cmp: (a, a) - int ) : list(a, n) = "mac#%" // (* ****** ****** *) // fun streamize_list_elt {a:t0p} ( xs: List(INV(a)) ) :<> stream_vt(a) = "mac#%" // end-of-function // (* ****** ****** *) // fun streamize_list_zip {a,b:t0p} ( List(INV(a)) , List(INV(b)) ) :<> stream_vt($tup(a,b)) = "mac#%" // end-of-fun // fun streamize_list_cross {a,b:t0p} ( xs: List(INV(a)) , ys: List(INV(b)) ) :<> stream_vt($tup(a,b)) = "mac#%" // end-of-fun // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/list_vt.sats0000644000175000017500000000242413431250607023242 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun{} list_vt_is_nil {a:vt0p}{n:int} (xs: !list_vt(a, n)): bool(n==0) fun{} list_vt_is_cons {a:vt0p}{n:int} (xs: !list_vt(a, n)): bool(n > 0) // overload iseqz with list_vt_is_nil of 100 overload isneqz with list_vt_is_cons of 100 // (* ****** ****** *) // fun list_vt_length {a:vt0p}{n:int} (xs: !list_vt(INV(a), n)): int(n) = "mac#%" // overload length with list_vt_length of 100 // (* ****** ****** *) // fun list_vt_snoc {a:vt0p}{n:int} (xs: list_vt(INV(a), n), x0: a): list_vt(a, n+1) = "mac#%" // fun list_vt_extend {a:vt0p}{n:int} (xs: list_vt(INV(a), n), x0: a): list_vt(a, n+1) = "mac#%" // (* ****** ****** *) // fun list_vt_append {a:vt0p}{i,j:int} (list_vt(INV(a), i), list_vt(a, j)): list_vt(a, i+j)= "mac#%" // overload + with list_vt_append of 100 // infix // (* ****** ****** *) // fun list_vt_reverse {a:vt0p}{n:int} (list_vt(INV(a), n)): list_vt(a, n) = "mac#%" // fun list_vt_reverse_append {a:vt0p}{i,j:int} (list_vt(INV(a), i), list_vt(a, j)): list_vt(a, i+j) = "mac#%" // overload reverse with list_vt_reverse of 100 overload revappend with list_vt_reverse_append of 100 // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/arrayref.sats0000644000175000017500000000572313431250607023376 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun arrayref_make_elt {a:t0p}{n:nat} (int(n), a): arrayref(a, n) = "mac#%" // (* ****** ****** *) // fun arrayref_get_at {a:t0p}{n:int} (arrayref(a, n), natLt(n)): a = "mac#%" // fun arrayref_set_at {a:t0p}{n:int} (arrayref(a, n), natLt(n), a): void = "mac#%" // fun arrayref_exch_at {a:vt0p}{n:int} (arrayref(a, n), natLt(n), x0: a): (a) = "mac#%" // (* ****** ****** *) overload [] with arrayref_get_at of 100 overload [] with arrayref_set_at of 100 (* ****** ****** *) // fun arrayref_exists_cloref {a:vt0p}{n:int} ( A0: arrayref(a, n) , asz: int(n), ftest: natLt(n) - bool ) : bool = "mac#%" // end-of-fun // fun arrayref_forall_cloref {a:vt0p}{n:int} ( A0: arrayref(a, n) , asz: int(n), ftest: natLt(n) - bool ) : bool = "mac#%" // end-of-fun // (* ****** ****** *) fun arrayref_foreach_cloref {a:vt0p}{n:int} ( A0: arrayref(a, n) , asz: int(n), fwork: natLt(n) - void ) : void = "mac#%" // end-of-fun (* ****** ****** *) // fun arrayref_tabulate_cloref {a:vt0p}{n:int} ( asz: int(n), fopr: (natLt(n)) - (a) ) : arrayref(a, n) = "mac#%" // end-of-fun // (* ****** ****** *) // // HX: array-with-size // (* ****** ****** *) // fun arrszref_size {a:vt0p} (A: arrszref(a)): intGte(0) = "mac#%" fun arrszref_get_size {a:vt0p} (A: arrszref(a)): intGte(0) = "mac#%" // overload size with arrszref_size overload .size with arrszref_get_size // (* ****** ****** *) // fun arrszref_make_elt {a:t0p}{n:nat} (asz: int(n), a): arrszref(a) = "mac#%" // (* ****** ****** *) // fun arrszref_get_arrayref {a:t0p} (arrszref(a)): [n:nat] arrayref(a,n) = "mac#%" // fun arrszref_make_arrayref {a:t0p}{n:int} (arrayref(a, n), int(n)) : arrszref(a) = "mac#%" // (* ****** ****** *) // fun arrszref_get_at {a:t0p}(A: arrszref(a), i: int): a = "mac#%" // fun arrszref_set_at {a:t0p}(A: arrszref(a), i: int, x0: a): void = "mac#%" // fun arrszref_exch_at {a:vt0p}(A: arrszref(a), i: int, x0: a): (a) = "mac#%" // (* ****** ****** *) overload [] with arrszref_get_at of 100 overload [] with arrszref_set_at of 100 (* ****** ****** *) // fun arrszref_exists_cloref {a:vt0p} ( A0: arrszref(a), pred: intGte(0) - bool ) : bool = "mac#%" // arrszref_exists_cloref fun arrszref_forall_cloref {a:vt0p} ( A0: arrszref(a), pred: intGte(0) - bool ) : bool = "mac#%" // arrszref_forall_cloref // (* ****** ****** *) // fun arrszref_foreach_cloref {a:vt0p} ( A0: arrszref(a), fwork: intGte(0) - void ) : void = "mac#%" // arrszref_foreach_cloref fun arrszref_foreach_method {a:vt0p} (A: arrszref(a)) (fwork: intGte(0) - void): void = "mac#%" // overload .foreach with arrszref_foreach_method of 100 // (* ****** ****** *) // fun arrszref_tabulate_cloref {a:vt0p}{n:int} ( asz: int(n) , fopr: natLt(n) - a): arrszref(a) = "mac#%" // (* ****** ****** *) (* end of [arrayref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/matrixref.sats0000644000175000017500000001140213431250607023553 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun matrixref_make_elt {a:t@ype}{m,n:nat} ( nrow: int(m) , ncol: int(n), x0: a): matrixref(a, m, n) = "mac#%" // (* ****** ****** *) // fun matrixref_get_at {a:t@ype}{m,n:int} ( matrixref(a, m, n), natLt(m), int(n), natLt(n) ) : a = "mac#%" // end-of-function // fun matrixref_set_at {a:t@ype}{m,n:int} ( matrixref(a, m, n), natLt(m), int(n), natLt(n), a ) : void = "mac#%" // end-of-function // (* ****** ****** *) overload [] with matrixref_get_at of 100 overload [] with matrixref_set_at of 100 (* ****** ****** *) // fun matrixref_exists_cloref {a:vt@ype}{m,n:int} ( matrixref(a, m, n) , nrow: int(m), ncol: int(n) , ftest: (natLt(m), natLt(n)) - bool ) : bool = "mac#%" // end-of-fun // fun matrixref_forall_cloref {a:vt@ype}{m,n:int} ( matrixref(a, m, n) , nrow: int(m), ncol: int(n) , ftest: (natLt(m), natLt(n)) - bool ) : bool = "mac#%" // end-of-fun // (* ****** ****** *) // fun matrixref_foreach_cloref {a:vt@ype}{m,n:int} ( matrixref(a, m, n) , nrow: int(m), ncol: int(n) , fwork: (natLt(m), natLt(n)) - void ) : void = "mac#%" // end-of-fun // (* ****** ****** *) // fun matrixref_tabulate_cloref {a:vt@ype}{m,n:nat} ( int(m), int(n), fopr: (natLt(m), natLt(n)) - a ) : matrixref(a, m, n) = "mac#%" // end-of-fun // (* ****** ****** *) // fun cbind_matrixref_matrixref {a:t@ype}{m0,n1,n2:int} ( M1: matrixref(a, m0, n1) , M2: matrixref(a, m0, n2) , m0: int(m0), n1: int(n1), n2: int(n2)): matrixref(a, m0, n1+n2) = "mac#%" fun rbind_matrixref_matrixref {a:t@ype}{m1,m2,n0:int} ( M1: matrixref(a, m1, n0) , M2: matrixref(a, m2, n0) , m1: int(m1), m2: int(m2), n0: int(n0)): matrixref(a, m1+m2, n0) = "mac#%" // overload cbind with cbind_matrixref_matrixref overload rbind with rbind_matrixref_matrixref // (* ****** ****** *) // // HX: matrix-with-size // (* ****** ****** *) // fun mtrxszref_get_nrow {a:vt0p}(mtrxszref(a)): intGte(0) = "mac#%" fun mtrxszref_get_ncol {a:vt0p}(mtrxszref(a)): intGte(0) = "mac#%" // overload .nrow with mtrxszref_get_nrow of 100 overload .ncol with mtrxszref_get_ncol of 100 // (* ****** ****** *) // fun mtrxszref_get_matrixref {a:t0p} ( MSZ: mtrxszref(a) ) : [m:nat;n:nat] matrixref(a, m, n) = "mac#%" // (* ****** ****** *) // fun mtrxszref_make_elt {a:t0p}{m,n:nat} (int(m), int(n), x0: a): mtrxszref(a) = "mac#%" // fun mtrxszref_make_matrixref {a:t0p}{m,n:int} (matrixref(a, m, n), int(m), int(n)): mtrxszref(a) = "mac#%" // end of [mtrxszref_make_matrixref] // (* ****** ****** *) // fun mtrxszref_get_at {a:t0p}(mtrxszref(a), i: int, j: int): a = "mac#%" fun mtrxszref_set_at {a:t0p}(mtrxszref(a), i: int, j: int, x: a): void = "mac#%" // (* ****** ****** *) overload [] with mtrxszref_get_at of 100 overload [] with mtrxszref_set_at of 100 (* ****** ****** *) // fun mtrxszref_exists_cloref {a:t@ype} ( mtrxszref(a), ftest: (Nat, Nat) - bool ) : bool = "mac#%" // end-of-function fun mtrxszref_exists_method {a:t@ype} ( mtrxszref(a))(ftest: (Nat, Nat) - bool ) : bool = "mac#%" // end-of-function // fun mtrxszref_forall_cloref {a:t@ype} ( mtrxszref(a), ftest: (Nat, Nat) - bool ) : bool = "mac#%" // end-of-function fun mtrxszref_forall_method {a:t@ype} ( mtrxszref(a))(ftest: (Nat, Nat) - bool ) : bool = "mac#%" // end-of-function // overload .exists with mtrxszref_exists_method of 100 overload .forall with mtrxszref_forall_method of 100 // (* ****** ****** *) // fun mtrxszref_foreach_cloref {a:vt@ype} ( M: mtrxszref(a), fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun mtrxszref_foreach_method {a:vt@ype} ( M: mtrxszref(a))(fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach with mtrxszref_foreach_method of 100 // (* ****** ****** *) // fun mtrxszref_foreach_row_cloref {a:vt@ype} ( M: mtrxszref(a), fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun mtrxszref_foreach_row_method {a:vt@ype} ( M: mtrxszref(a))(fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach_row with mtrxszref_foreach_row_method of 100 // (* ****** ****** *) // fun mtrxszref_foreach_col_cloref {a:vt@ype} ( M: mtrxszref(a), fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun mtrxszref_foreach_col_method {a:vt@ype} ( M: mtrxszref(a))(fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach_col with mtrxszref_foreach_col_method of 100 // (* ****** ****** *) // fun mtrxszref_tabulate_cloref {a:vt0p} {m,n:nat} ( nrow: int(m), ncol: int(n) , fopr: (natLt(m), natLt(n)) - a): mtrxszref(a) = "mac#%" // (* ****** ****** *) (* end of [matrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/stream_vt.sats0000644000175000017500000000772213431250607023570 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun{} stream_vt_make_nil {a:vt0p} ( // argless ) : stream_vt(a) = "mac#%" // fun{} stream_vt_make_cons {a:t0p} ( x0: a, xs: stream_vt(INV(a)) ) :<> stream_vt(a) = "mac#%" // (* ****** ****** *) // fun{} stream_vt_sing {a:t0p} (x0: a): stream_vt_con(a) = "mac#%" fun{} stream_vt_make_sing {a:t0p}(x0: a): stream_vt(a) = "mac#%" // (* ****** ****** *) // fun stream_vt_free {a:vt0p} (stream_vt(a)): void = "mac#%" // (* ****** ****** *) // fun stream_vt2t {a:t0p} ( xs: stream_vt(INV(a)) ) : stream(a) = "mac#%" // endfun // (* ****** ****** *) // fun stream_vt_length {a:t0p} (stream_vt(INV(a))): intGte(0) = "mac#%" // (* ****** ****** *) // fun stream_vt_takeLte {a:vt0p} ( xs: stream_vt(INV(a)), n0: intGte(0) ) :<> stream_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream2list_vt {a:vt0p} (stream_vt(INV(a))): List0_vt(a) = "mac#%" fun stream2list_vt_rev {a:vt0p} (stream_vt(INV(a))): List0_vt(a) = "mac#%" // (* ****** ****** *) // fun stream_vt_append {a:vt0p} ( stream_vt(INV(a)), stream_vt(a) ) :<> stream_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_vt_concat {a:vt0p} ( xss: stream_vt(stream_vt(INV(a))) ) :<> stream_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_vt_map_cloref {a:vt0p}{b:vt0p} ( xs: stream_vt(INV(a)), fopr: (a) - b ) : stream_vt(b) = "mac#%" // end-of-function fun stream_vt_map_method {a:vt0p}{b:vt0p} ( xs: stream_vt(INV(a)), TYPE(b) ) : ( (a) - b ) - stream_vt(b) = "mac#%" // endfun // (* ****** ****** *) // fun stream_vt_filter_cloref {a:t0ype} ( xs: stream_vt(INV(a)), pred: (a) - bool ) : stream_vt(a) = "mac#%" // end-of-function fun stream_vt_filter_method {a:t0ype} ( xs: stream_vt(INV(a)) ) : ( (a) - bool ) - stream_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_vt_exists_cloref {a:t0ype} ( stream_vt(INV(a)), pred: (a) - bool ) : bool = "mac#%" // end-of-function fun stream_vt_exists_method {a:t0ype} ( xs: stream_vt(INV(a)) ) : ((a) - bool) - bool = "mac#%" // (* ****** ****** *) // fun stream_vt_forall_cloref {a:t0ype} ( stream_vt(INV(a)), pred: (a) - bool ) : bool = "mac#%" // end-of-function fun stream_vt_forall_method {a:t0ype} ( xs: stream_vt(INV(a)) ) : ((a) - bool) - bool = "mac#%" // (* ****** ****** *) // fun stream_vt_foreach_cloref {a:vt0ype} ( xs: stream_vt(INV(a)), fwork: (a) - void ) : void = "mac#%" // end-of-function fun stream_vt_foreach_method {a:vt0ype} ( xs: stream_vt(INV(a)) ) :<> ((a) - void) - void = "mac#%" // (* ****** ****** *) // fun stream_vt_iforeach_cloref {a:vt0ype} ( xs: stream_vt(INV(a)), fwork: (Nat, a) - void ) : void = "mac#%" // end-of-function fun stream_vt_iforeach_method {a:vt0ype} ( xs: stream_vt(INV(a)) ) :<> ((Nat, a) - void) - void = "mac#%" // (* ****** ****** *) // fun stream_vt_rforeach_cloref {a:vt0ype} ( xs: stream_vt(INV(a)), fwork: (a) - void ) : void = "mac#%" // end-of-function fun stream_vt_rforeach_method {a:vt0ype} ( xs: stream_vt(INV(a)) ) :<> ((a) - void) - void = "mac#%" // (* ****** ****** *) // fun stream_vt_tabulate_cloref {a:t0p} (fopr: intGte(0) - a): stream_vt(a) = "mac#%" // (* ****** ****** *) // overload length with stream_vt_length of 100 overload append with stream_vt_append of 100 overload concat with stream_vt_concat of 100 // overload .takeLte with stream_vt_takeLte of 100 // overload .map with stream_vt_map_method of 100 overload .filter with stream_vt_filter_method of 100 overload .foreach with stream_vt_foreach_method of 100 overload .iforeach with stream_vt_iforeach_method of 100 overload .rforeach with stream_vt_rforeach_method of 100 // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/qlistref.sats0000644000175000017500000000177413431250607023416 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // abstype qlistref_type(a:vt@ype) // typedef qlistref(a:vt@ype) = qlistref_type(a) // (* ****** ****** *) fun qlistref_make_nil {a:vt0p}((*void*)): qlistref(a) = "mac#%" (* ****** ****** *) // fun qlistref_length {a:vt0p}(qlistref(a)): intGte(0) = "mac#%" // (* ****** ****** *) // fun qlistref_enqueue {a:vt0p}(qlistref(a), x0: a): void = "mac#%" // (* ****** ****** *) // fun qlistref_dequeue_exn {a:vt0p}(qlistref(a)): (a) = "mac#%" fun qlistref_dequeue_opt {a:vt0p}(qlistref(a)): Option_vt(a) = "mac#%" // (* ****** ****** *) // fun qlistref_foldleft {res:vt0p}{a:t0p} ( qlistref(a), init: res, fopr: (res, a) - res ) : res = "mac#%" // end of [qlistref_foldleft] // fun qlistref_foldright {a:t0p}{res:vt0p} ( qlistref(a), fopr: (a, res) - res, sink: res ) : res = "mac#%" // end of [qlistref_foldright] // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/reference.sats0000644000175000017500000000115613431250607023515 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun ref{a:vt0p}(x: a): ref(a) = "mac#%" // fun ref_make_elt {a:vt0p}(x: a): ref(a) = "mac#%" // fun ref_make_type_elt {a:vt0p}(TYPE(a), x: a): ref(a) = "mac#%" // (* ****** ****** *) // fun ref_get_elt{a:t0p}(r: ref a): a = "mac#%" fun ref_set_elt{a:t0p}(r: ref a, x0: a): void = "mac#%" // fun ref_exch_elt{a:vt0p}(r: ref a, x0: a): (a) = "mac#%" // (* ****** ****** *) overload [] with ref_get_elt of 100 overload [] with ref_set_elt of 100 (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/slistref.sats0000644000175000017500000000174213431250607023413 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // abstype slistref_type(a:vt@ype) // typedef slistref(a:vt@ype) = slistref_type(a) // (* ****** ****** *) fun slistref_make_nil {a:vt0p}(): slistref(a) = "mac#" (* ****** ****** *) // fun slistref_length {a:vt0p}(slistref(a)): intGte(0) = "mac#" // (* ****** ****** *) // fun slistref_push {a:vt0p}(slistref(a), x0: a): void = "mac#" // (* ****** ****** *) // fun slistref_pop_exn {a:vt0p}(slistref(a)): (a) = "mac#" fun slistref_pop_opt {a:vt0p}(slistref(a)): Option_vt(a) = "mac#" // (* ****** ****** *) // fun slistref_foldleft {res:vt0p}{a:t0p} ( slistref(a), init: res, fopr: (res, a) - res ) : res = "mac#" // end of [slistref_foldleft] // fun slistref_foldright {a:t0p}{res:vt0p} ( slistref(a), fopr: (a, res) - res, sink: res ) : res = "mac#" // end of [slistref_foldright] // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/option.sats0000644000175000017500000000146613431250607023073 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // castfn option_vt2t {a:t0p}{b:bool} (option_vt(INV(a), b)):<> option(a, b) // (* ****** ****** *) // fun option_some {a:t0p} (x0: a): option(a, true) = "mac#%" fun option_none {a:t0p} ((*void*)): option(a, false) = "mac#%" // (* ****** ****** *) // fun option_unsome {a:t0p} (opt: option(a, true)): (a) = "mac#%" // (* ****** ****** *) // fun option_is_some {a:t0p}{b:bool} (opt: option(a, b)): bool(b) = "mac#%" fun option_is_none {a:t0p}{b:bool} (opt: option(a, b)): bool(~b) = "mac#%" // overload is_some with option_is_some overload is_none with option_is_none // overload .is_some with option_is_some overload .is_none with option_is_none // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/funarray.sats0000644000175000017500000000243013431250607023402 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // abstype funarray_t0ype_int_type(a:t@ype+, n:int) // typedef funarray(a:t0p, n:int) = funarray_t0ype_int_type(a, n) // (* ****** ****** *) // praxi lemma_funarray_param {a:t0p}{n:int} (A: funarray(INV(a), n)): [n >= 0] void // (* ****** ****** *) // fun funarray_make_nil {a:t0p}((*void*)): funarray(a, 0) = "mac#%" // (* ****** ****** *) // fun funarray_size {a:t0p}{n:int}(A: funarray(INV(a), n)): int(n) = "mac#%" // (* ****** ****** *) // fun funarray_get_at {a:t0p}{n:int}(A: funarray(INV(a), n), i: natLt(n)): (a) = "mac#%" fun funarray_set_at {a:t0p}{n:int} (A: funarray(INV(a), n), i: natLt(n), x: a): funarray(a, n) = "mac#%" // (* ****** ****** *) // fun funarray_insert_l {a:t0p}{n:int} (A: funarray(INV(a), n), x: a): funarray(a, n+1) = "mac#%" fun funarray_insert_r {a:t0p}{n:int} (A: funarray(INV(a), n), n: int(n), x: a): funarray(a, n+1) = "mac#%" // (* ****** ****** *) // fun funarray_remove_l {a:t0p}{n:pos} (A: funarray(INV(a), n)): $tup(funarray(a, n-1), a) = "mac#%" fun funarray_remove_r {a:t0p}{n:pos} (A: funarray(INV(a), n), n: int(n)): $tup(funarray(a, n-1), a) = "mac#%" // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/stream.sats0000644000175000017500000001322113431250607023046 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) // fun{} stream_make_nil {a:t0p}(): stream(a) = "mac#%" // fun{} stream_make_cons {a:t0p} (a, stream(a)): stream(a) = "mac#%" // (* ****** ****** *) // fun{} stream_sing {a:t0p}(a): stream_con(a) = "mac#%" fun{} stream_make_sing {a:t0p}(x0: a): stream(a) = "mac#%" // (* ****** ****** *) // fun stream_make_list {a:t0p} (xs: List0(a)): stream(a) = "mac#%" fun stream_make_list0 {a:t0p} (xs: list0(a)): stream(a) = "mac#%" // (* ****** ****** *) // fun stream_nth_opt {a:t0p} ( xs: stream(INV(a)), n: intGte(0) ) : Option_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_length {a:t0p} (stream(INV(a))): intGte(0) = "mac#%" // (* ****** ****** *) // fun stream2list {a:t0p}(stream(INV(a))): List0(a) = "mac#%" fun stream2list_rev {a:t0p}(stream(INV(a))): List0(a) = "mac#%" // (* ****** ****** *) // fun stream_takeLte {a:t0p} (stream(INV(a)), n0: Nat): stream(a) = "mac#%" fun stream_takeLte_vt {a:t0p} (stream(INV(a)), n0: Nat): stream_vt(a) = "mac#%" // (* ****** ****** *) // fun stream_take_opt {a:t0p}{n:nat} (stream(INV(a)), n: int(n)): Option_vt(list(a,n)) = "mac#%" // fun stream_drop_opt {a:t0p}{n:nat} (stream(INV(a)), n: int(n)): Option_vt(stream(a)) = "mac#%" // (* ****** ****** *) // fun stream_append {a:t0p} (stream(INV(a)), stream(a)): stream(a) = "mac#%" // (* ****** ****** *) // fun stream_concat {a:t0p} (xss: stream(stream(INV(a)))): stream(a) = "mac#%" // (* ****** ****** *) // fun stream_map_cloref {a:t0p}{b:t0p} ( xs: stream(INV(a)), fopr: (a) - b ) : stream(b) = "mac#%" // end-of-function // fun stream_map_method {a:t0p}{b:t0p} ( xs: stream(INV(a)), TYPE(b))(fopr: (a) - b ) : stream(b) = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_scan_cloref {res:t0p}{a:t0p} ( xs: stream(INV(a)) , r0: res, fopr: cfun(res, a, res)): stream(res) = "mac#%" fun stream_scan_method {res:t0p}{a:t0p} (stream(INV(a)), TYPE(res))(res, cfun(res, a, res)): stream(res) = "mac#%" // (* ****** ****** *) // fun stream_filter_cloref {a:t0p} (stream(INV(a)), pred: cfun(a, bool)): stream(a) = "mac#%" fun stream_filter_method {a:t0p} (stream(INV(a)))(pred: cfun(a, bool)): stream(a) = "mac#%" // (* ****** ****** *) // fun stream_forall_cloref {a:t0p} ( xs: stream(INV(a)), pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function fun stream_forall_method {a:t0p} ( xs: stream(INV(a)))(pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_exists_cloref {a:t0p} ( xs: stream(INV(a)), pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function fun stream_exists_method {a:t0p} ( xs: stream(INV(a)))(pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_foreach_cloref {a:t0p} ( xs: stream(INV(a)) , fwork: (a) - void ) : void = "mac#%" // end-of-function fun stream_foreach_method {a:t0p} ( xs: stream(INV(a)))(fwork: (a) - void ) : void = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_iforeach_cloref {a:t0p} ( xs: stream(INV(a)) , fwork: (Nat, a) - void ) : void = "mac#%" // end-of-function fun stream_iforeach_method {a:t0p} ( xs: stream(INV(a)))(fwork: (Nat, a) - void ) : void = "mac#%" // end-of-function // (* ****** ****** *) fun stream_merge_cloref {a:t0p} ( xs1: stream(INV(a)) , xs2: stream(INV(a)), cmp: (a, a) - (int) ) : stream(a) = "mac#%" // end-of-function fun stream_merge_method {a:t0p} ( xs1: stream(INV(a)) , xs2: stream(INV(a)))(cmp: (a, a) - (int) ) : stream(a) = "mac#%" // end-of-function // (* ****** ****** *) // fun stream_tabulate_cloref {a:t0p} (fopr: intGte(0) - a): stream(a) = "mac#%" // (* ****** ****** *) // fun cross_stream_list {a,b:t0p}{res:t0p} ( xs: stream(INV(a)), ys: List0(INV(b)) ) : stream($tup(a, b)) = "mac#%" // end-of-fun fun cross_stream_list0 {a,b:t0p}{res:t0p} ( xs: stream(INV(a)), ys: list0(INV(b)) ) : stream($tup(a, b)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream2cloref_exn {a:t0p} (xs: stream(INV(a))): cfun(a) = "mac#%" fun stream2cloref_opt {a:t0p} (xs: stream(INV(a))): cfun(Option_vt(a)) = "mac#%" fun stream2cloref_last {a:t0p}(xs: stream(INV(a)), last: a): cfun(a) = "mac#%" // (* ****** ****** *) // fun stream_take_while_cloref {a:t0p} ( xs: stream(INV(a)), pred: (Nat, a) - bool ) : $tup(stream(a), List0(a)) = "mac#%" // end-of-fun fun stream_rtake_while_cloref {a:t0p} ( xs: stream(INV(a)), pred: (Nat, a) - bool ) : $tup(stream(a), List0(a)) = "mac#%" // end-of-fun // fun stream_take_until_cloref {a:t0p} ( xs: stream(INV(a)), pred: (Nat, a) - bool ) : $tup(stream(a), List0(a)) = "mac#%" // end-of-fun fun stream_rtake_until_cloref {a:t0p} ( xs: stream(INV(a)), pred: (Nat, a) - bool ) : $tup(stream(a), List0(a)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun stream_list_xprod2 {a,b:t0p} (List0(INV(a)), List0(INV(b))): stream($tup(a, b)) = "mac#%" // (* ****** ****** *) // overload * with cross_stream_list of 100 overload * with cross_stream_list0 of 100 // overload length with stream_length of 100 overload .takeLte with stream_takeLte of 100 // overload .map with stream_map_method of 100 overload .filter with stream_filter_method of 100 overload .forall with stream_forall_method of 100 overload .exists with stream_exists_method of 100 overload .foreach with stream_foreach_method of 100 overload .iforeach with stream_iforeach_method of 100 // (* ****** ****** *) overload .merge with stream_merge_method of 100 (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/gmatrixref.sats0000644000175000017500000000274113431250607023730 0ustar brandonbrandon(* ** libatscc-common *) (* ****** ****** *) (* staload "./../basics.sats" *) (* ****** ****** *) abstype gmatrixref(a:t@ype, m:int, n:int) (* ****** ****** *) // fun gmatrixref_make_matrixref {a:t@ype}{m,n:nat} ( matrixref(a, m, n), m: int(m), n: int(n) ) : gmatrixref(a, m, n) = "mac#%" // (* ****** ****** *) // fun gmatrixref_make_subregion {a:t@ype} {m0,n0:int} {i0,j0,m,n:nat | i0+m <= m0; j0+n <= n0} ( gmatrixref(a, m0, n0) , i0: int(i0), j0: int(j0), m: int(m), n: int(n) ) : gmatrixref(a, m, n) = "mac#%" // (* ****** ****** *) // fun gmatrixref_get_at {a:t@ype} {m,n:int} ( gmatrixref(a, m, n), i: natLt(m), j: natLt(n) ) : a = "mac#%" // end-of-function // fun gmatrixref_set_at {a:t@ype} {m,n:int} ( gmatrixref(a, m, n), i: natLt(m), j: natLt(n), x: a ) : void = "mac#%" // end-of-function // (* ****** ****** *) overload [] with gmatrixref_get_at of 100 overload [] with gmatrixref_set_at of 100 (* ****** ****** *) // fun gmatrixref_exists_cloref {a:t@ype}{m,n:int} ( gmatrixref(a, m, n), ftest: (natLt(m), natLt(n)) - bool ) : bool = "mac#%" // end-of-fun fun gmatrixref_forall_cloref {a:t@ype}{m,n:int} ( gmatrixref(a, m, n), ftest: (natLt(m), natLt(n)) - bool ) : bool = "mac#%" // end-of-fun // (* ****** ****** *) // fun gmatrixref_foreach_cloref {a:t@ype}{m,n:int} ( gmatrixref(a, m, n), fwork: (natLt(m), natLt(n)) - void ) : void = "mac#%" // end-of-fun // (* ****** ****** *) (* end of [gmatrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/gprint.sats0000644000175000017500000000562613431250607023070 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: July, 2016 *) (* ****** ****** *) // fun{} gprint_flush(): void // (* ****** ****** *) fun{} gprint_newline(): void (* ****** ****** *) fun{a:t0p} gprint_val (x: INV(a)): void fun{a:vt0p} gprint_ref (x: &INV(a)): void (* ****** ****** *) // fun{} gprint_unit(unit): void // overload gprint with gprint_unit of 100 // (* ****** ****** *) fun{} gprint_int (x: int): void fun{} gprint_bool (x: bool): void fun{} gprint_char (x: char): void fun{} gprint_double (x: double): void fun{} gprint_string (x: string): void (* ****** ****** *) overload gprint with gprint_int of 100 overload gprint with gprint_bool of 100 overload gprint with gprint_char of 100 overload gprint with gprint_double of 100 overload gprint with gprint_string of 100 (* ****** ****** *) fun{} gprint_list$beg(): void fun{} gprint_list$end(): void fun{} gprint_list$sep(): void // fun{a:t0p} gprint_list (xs: List(a)): void // overload gprint with gprint_list of 100 // (* ****** ****** *) fun{} gprint_listlist$beg1(): void fun{} gprint_listlist$end1(): void fun{} gprint_listlist$sep1(): void // fun{} gprint_listlist$beg2(): void fun{} gprint_listlist$end2(): void fun{} gprint_listlist$sep2(): void // fun{a:t0p} gprint_listlist (xss: List(List(a))): void (* ****** ****** *) // fun{} gprint_array$beg(): void fun{} gprint_array$end(): void fun{} gprint_array$sep(): void // fun{a:t0p} gprint_arrayref {n:int} ( A: arrayref(a, n), asz: int(n) ) : void // end-of-function // fun{a:t0p} gprint_arrszref(ASZ: arrszref(a)): void // overload gprint with gprint_arrszref of 100 // (* ****** ****** *) (* end of [gprint.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/ML/0000755000175000017500000000000013431250607021170 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/ML/option0.sats0000644000175000017500000000060213431250607023452 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../../basics.sats" *) (* ****** ****** *) // fun{} option0_is_none {a:t0p}(xs: option0(INV(a))): bool fun{} option0_is_some {a:t0p}(xs: option0(INV(a))): bool // overload iseqz with option0_is_none of 100 overload isneqz with option0_is_some of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/ML/matrix0.sats0000644000175000017500000000427513431250607023460 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../../basics.sats" *) (* ****** ****** *) // fun matrix0_make_elt {a:t@ype}{m,n:nat} ( nrow: int(m) , ncol: int(n), x0: a): matrix0(a) = "mac#%" // (* ****** ****** *) // fun matrix0_nrow {a:vt0p}(M: matrix0(a)): intGte(0) = "mac#%" // fun matrix0_ncol {a:vt0p}(M: matrix0(a)): intGte(0) = "mac#%" // (* ****** ****** *) // fun matrix0_get_at {a:t0p} (M: matrix0(a), i: int, j: int): a = "mac#%" // fun matrix0_set_at {a:t0p} (M: matrix0(a), i: int, j: int, x0: a): void = "mac#%" // fun matrix0_exch_at {a:vt0p} (M: matrix0(a), i: int, j: int, x0: a): ( a ) = "mac#%" // (* ****** ****** *) // overload [] with matrix0_get_at of 100 overload [] with matrix0_set_at of 100 // overload nrow with matrix0_nrow of 100 overload ncol with matrix0_ncol of 100 // (* ****** ****** *) // fun matrix0_foreach {a:vt0p} ( M0: matrix0(a) , fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun matrix0_foreach_method {a:vt0p} ( M0: matrix0(a) ) ( fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach with matrix0_foreach_method of 100 // (* ****** ****** *) // fun matrix0_foreach_row {a:vt0p} ( M0: matrix0(a) , fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun matrix0_foreach_row_method {a:vt0p} ( M0: matrix0(a) ) ( fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach_row with matrix0_foreach_row_method of 100 // (* ****** ****** *) // fun matrix0_foreach_col {a:vt0p} ( M0: matrix0(a) , fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function fun matrix0_foreach_col_method {a:vt0p} ( M0: matrix0(a) ) ( fwork: (Nat, Nat) - void ) : void = "mac#%" // end-of-function // overload .foreach_col with matrix0_foreach_col_method of 100 // (* ****** ****** *) // fun matrix0_tabulate {a:vt0p} {m,n:nat} ( nrow: int(m) , ncol: int(n) , fopr: (natLt(m), natLt(n)) - (a) ) : matrix0(a) = "mac#%" // end-of-function // (* ****** ****** *) // fun cbind_matrix0_matrix0 {a:t@ype} (matrix0(a), matrix0(a)): matrix0(a) = "mac#%" // (* ****** ****** *) (* end of [matrix0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/ML/list0.sats0000644000175000017500000002346113431250607023125 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../../basics.sats" *) (* ****** ****** *) // #define nil0 list0_nil #define cons0 list0_cons // #define sing0(x) list0_cons(x, list0_nil) (* ****** ****** *) // fun{} list0_sing{a:t0p}(x: a): list0(a) fun{} list0_pair{a:t0p}(x: a, y: a): list0(a) // (* ****** ****** *) // fun{} list0_is_nil {a:t0p}(xs: list0(INV(a))): bool // fun{} list0_is_cons {a:t0p}(xs: list0(INV(a))): bool // overload iseqz with list0_is_nil of 100 overload isneqz with list0_is_cons of 100 // (* ****** ****** *) // fun list0_head_opt {a:t0p} (list0(INV(a))): Option_vt(a) = "mac#%" // fun list0_tail_opt {a:t0p} (list0(INV(a))): Option_vt(list0(a)) = "mac#%" // overload head_opt with list0_head_opt of 100 overload tail_opt with list0_tail_opt of 100 overload .head_opt with list0_head_opt of 100 overload .tail_opt with list0_tail_opt of 100 // (* ****** ****** *) // fun list0_length {a:t0p} (xs: list0(a)): intGte(0) = "mac#%" // overload length with list0_length of 100 overload .length with list0_length of 100 // (* ****** ****** *) // fun list0_last_opt {a:t0p} ( xs: list0(INV(a)) ) : Option_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun list0_init_opt {a:t0p} ( xs: list0(INV(a)) ) : Option_vt(list0(a)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun list0_get_at_opt {a:t0p} ( xs: list0(INV(a)), i: intGte(0) ) : Option_vt(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun list0_make_elt {a:t0p} (n: intGte(0), x: a): list0(a) = "mac#%" // (* ****** ****** *) // fun list0_make_intrange_2 (l0: int, r0: int): list0(int) = "mac#%" fun list0_make_intrange_3 (l0: int, r0: int, d: int): list0(int) = "mac#%" // symintr list0_make_intrange // overload list0_make_intrange with list0_make_intrange_2 of 100 overload list0_make_intrange with list0_make_intrange_3 of 100 // (* ****** ****** *) // fun {a:t0p} print_list0 (xs: list0(INV(a))): void = "mac#%" fun {a:t0p} print_list0_sep (xs: list0(INV(a)), sep: string): void = "mac#%" // overload print with print_list0 of 100 // (* ****** ****** *) // fun list0_snoc {a:t0p} (list0(INV(a)), x0: a): list0(a) = "mac#%" // fun list0_extend {a:t0p} (list0(INV(a)), x0: a): list0(a) = "mac#%" // (* ****** ****** *) // fun list0_append {a:t0p} ( xs: list0(INV(a)), ys: list0(a) ) : list0(a) = "mac#%" // end-of-fun // overload + with list0_append of 100 // infix // (* ****** ****** *) // fun mul_int_list0 {a:t0p} ( m0: intGte(0), xs: list0(a) ) : list0(a) = "mac#%" // end-of-function // overload * with mul_int_list0 of 100 // infix // (* ****** ****** *) // fun list0_reverse {a:t0p} (xs: list0(INV(a))): list0(a) = "mac#%" // overload reverse with list0_reverse of 100 // (* ****** ****** *) // fun list0_reverse_append {a:t0p} (xs: list0(INV(a)), ys: list0(a)): list0(a) = "mac#%" // macdef list0_revapp = list0_reverse_append // overload revapp with list0_reverse_append of 100 // (* ****** ****** *) // fun list0_concat {a:t0p} (xs: list0(list0(a))): list0(a) = "mac#%" // (* ****** ****** *) // fun list0_remove_at_opt {a:t0p} ( xs: list0(INV(a)), i: intGte(0) ) : Option_vt(list0(a)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun list0_exists {a:t0p} ( xs: list0(INV(a)), pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function fun list0_exists_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(a, bool) ) : bool = "mac#%" // end-of-function // fun list0_iexists {a:t0p} ( xs: list0(INV(a)), pred: cfun(intGte(0), a, bool) ) : bool = "mac#%" // end of [list0_iexists] fun list0_iexists_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(intGte(0), a, bool) ) : bool = "mac#%" // end of [list0_iexists] // overload .exists with list0_exists_method of 100 overload .iexists with list0_iexists_method of 100 // (* ****** ****** *) // fun list0_forall {a:t0p} (list0(INV(a)), pred: cfun(a, bool)): bool = "mac#%" fun list0_forall_method {a:t0p} (list0(INV(a)))(pred: cfun(a, bool)): bool = "mac#%" // fun list0_iforall {a:t0p} ( xs: list0(INV(a)), pred: cfun(intGte(0), a, bool) ) : bool = "mac#%" // end of [list0_iforall] fun list0_iforall_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(intGte(0), a, bool) ) : bool = "mac#%" // end of [list0_iforall_method] // overload .forall with list0_forall_method of 100 overload .iforall with list0_iforall_method of 100 // (* ****** ****** *) // fun list0_app {a:t0p} ( xs: list0(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list0_foreach {a:t0p} ( xs: list0(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list0_foreach_method {a:t0p} ( xs: list0(INV(a)))(fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // overload .foreach with list0_foreach_method of 100 // (* ****** ****** *) // fun list0_iforeach {a:t0p} ( xs: list0(INV(a)), fwork: cfun(int, a, void) ) : void = "mac#%" // end-of-function fun list0_iforeach_method {a:t0p} ( xs: list0(INV(a)))(fwork: cfun(int, a, void) ) : void = "mac#%" // end-of-function // overload .iforeach with list0_iforeach_method of 100 // (* ****** ****** *) // fun list0_rforeach {a:t0p} ( xs: list0(INV(a)), fwork: cfun(a, void) ) : void = "mac#%" // end-of-function fun list0_rforeach_method {a:t0p} ( xs: list0(INV(a)))(fwork: cfun(a, void) ) : void = "mac#%" // end-of-function // overload .rforeach with list0_rforeach_method of 100 // (* ****** ****** *) // fun list0_filter {a:t0p} ( xs: list0(INV(a)), pred: cfun(a, bool) ) : list0(a) = "mac#%" // end-of-function fun list0_filter_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(a, bool) ) : list0(a) = "mac#%" // end-of-function // overload .filter with list0_filter_method of 100 // (* ****** ****** *) // fun list0_labelize {x:t0p} (list0(INV(x))): list0($tup(int, x)) = "mac#%" // end of [list0_labelize] // (* ****** ****** *) // fun list0_map {a:t0p}{b:t0p} (list0(INV(a)), fopr: cfun(a, b)): list0(b) = "mac#%" fun list0_map_method {a:t0p}{b:t0p} (list0(INV(a)), TYPE(b))(fopr: cfun(a, b)): list0(b) = "mac#%" // overload .map with list0_map_method of 100 // (* ****** ****** *) // fun list0_imap {a:t0p}{b:t0p} (list0(INV(a)), fopr: cfun(Nat, a, b)): list0(b) = "mac#%" fun list0_imap_method {a:t0p}{b:t0p} (list0(INV(a)), TYPE(b))(fopr: cfun(Nat, a, b)): list0(b) = "mac#%" // overload .imap with list0_imap_method of 100 // (* ****** ****** *) // fun list0_map2 {a1,a2:t0p}{b:t0p} ( list0(INV(a1)), list0(INV(a2)), fopr: cfun(a1, a2, b) ) : list0(b) = "mac#%" // end of [list0_map2] // (* ****** ****** *) // fun list0_mapcons {a:t0p} (x0: a, xss: list0(list0(INV(a)))): list0(list0(a)) = "mac#%" // (* ****** ****** *) // fun list0_tabulate {a:t0p} ( n0: int , f0: cfun(int,a)): list0(a) = "mac#%" // (* ****** ****** *) // fun list0_find_opt {a:t0p} ( xs: list0(INV(a)), pred: cfun(a, bool) ) : Option_vt(a) = "mac#%" // end-of-fun fun list0_find_opt_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(a, bool) ) : Option_vt(a) = "mac#%" // end-of-fun // overload find_opt with list0_find_opt of 100 overload .find_opt with list0_find_opt_method of 100 // (* ****** ****** *) // fun list0_find_suffix {a:t0p} ( xs: list0(INV(a)), pred: cfun(list0(a), bool) ) : list0(a) = "mac#%" // end-of-fun fun list0_find_suffix_method {a:t0p} ( xs: list0(INV(a)))(pred: cfun(list0(a), bool) ) : list0(a) = "mac#%" // end-of-fun // overload find_suffix with list0_find_suffix of 100 overload .find_suffix with list0_find_suffix_method of 100 // (* ****** ****** *) // fun list0_zip {a1,a2:t0p} ( xs: list0(INV(a1)), ys: list0(INV(a2)) ) :<> list0($tup(a1, a2)) = "mac#%" // end-of-fun // fun list0_zipwith {a1,a2:t0p}{b:t0p} ( xs: list0(INV(a1)) , ys: list0(INV(a2)), fopr: cfun(a1, a2, b) ) :<1> list0(b) = "mac#%" // end of [list0_zipwith] // fun list0_zipwith_method {a1,a2:t0p}{b:t0p} ( xs: list0(INV(a1)) , ys: list0(INV(a2)))(fopr: cfun(a1, a2, b) ) :<1> list0(b) = "mac#%" // end of [list0_zipwith_method] // overload .map2 with list0_zipwith_method of 100 overload .zipwith with list0_zipwith_method of 100 // (* ****** ****** *) // fun list0_foldleft {res:t0p}{a:t0p} ( list0(INV(a)), init: res, fopr: cfun(res, a, res) ) : res = "mac#%" // end-of-function fun list0_foldleft_method {res:t0p}{a:t0p} ( list0(INV(a)), init: res)(fopr: cfun(res, a, res) ) : res = "mac#%" // end-of-function // fun list0_foldright {a:t0p}{res:t0p} ( list0(INV(a)), fopr: cfun(a, res, res), sink: res ) : res = "mac#%" // end-of-function fun list0_foldright_method {a:t0p}{res:t0p} ( list0(INV(a)), sink: res)(fopr: cfun(a, res, res) ) : res = "mac#%" // end-of-function // overload .foldleft with list0_foldleft_method of 100 overload .foldright with list0_foldright_method of 100 // (* ****** ****** *) // fun list0_foldleft_suffix {res:t0p}{a:t0p} ( list0(INV(a)), init: res, fopr: cfun(res, list0(a), res) ) : res = "mac#%" // end-of-function // (* ****** ****** *) // fun {a:t0p} list0_sort_1 (list0(INV(a))): list0(a) = "mac#%" // fun list0_sort_2 {a:t0p} ( list0(INV(a)), cmp: (a, a) - int ) : list0(a) = "mac#%" // symintr list0_sort // overload list0_sort with list0_sort_1 of 100 overload list0_sort with list0_sort_2 of 100 // (* ****** ****** *) // fun list0_mergesort {a:t0p} ( list0(INV(a)), cmp: (a, a) - int ) : list0(a) = "mac#%" // (* ****** ****** *) // fun streamize_list0_zip {a,b:t0p} ( xs: list0(INV(a)) , ys: list0(INV(b)) ) :<> stream_vt($tup(a,b)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun streamize_list0_cross {a,b:t0p} ( xs: list0(INV(a)) , ys: list0(INV(b)) ) :<> stream_vt($tup(a,b)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun streamize_list0_nchoose {a:t0p} ( xs: list0(INV(a)), n: intGte(0) ) :<> stream_vt(list0(a)) = "mac#%" // end-of-fun fun streamize_list0_nchoose_rest {a:t0p} ( xs: list0(INV(a)), n: intGte(0) ) :<> stream_vt($tup(list0(a), list0(a))) = "mac#%" // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/SATS/ML/array0.sats0000644000175000017500000000352413431250607023266 0ustar brandonbrandon(* ****** ****** *) (* ** libatscc-common *) (* ****** ****** *) (* staload "./../../basics.sats" *) (* ****** ****** *) // fun array0_make_elt {a:t0p}{n:nat} (asz: int(n), x0: a): array0(a) = "mac#%" // (* ****** ****** *) // fun array0_size {a:vt0p}(A: array0(a)): intGte(0) = "mac#%" fun array0_length {a:vt0p}(A: array0(a)): intGte(0) = "mac#%" // (* ****** ****** *) // fun array0_get_at {a:t0p}(A: array0(a), i: int): a = "mac#%" // fun array0_set_at {a:t0p}(A: array0(a), i: int, x0: a): void = "mac#%" // fun array0_exch_at {a:vt0p}(A: array0(a), i: int, x0: a): (a) = "mac#%" // (* ****** ****** *) // overload [] with array0_get_at of 100 overload [] with array0_set_at of 100 // overload size with array0_size of 100 overload size with array0_length of 100 // (* ****** ****** *) // fun array0_exists {a:vt0p} ( A0: array0(a), pred: Nat - bool ) : bool = "mac#%" // array0_exists fun array0_exists_method {a:vt0p} (A: array0(a)) (pred: Nat - bool): bool = "mac#%" // overload .exists with array0_exists_method of 100 // (* ****** ****** *) // fun array0_forall {a:vt0p} ( A0: array0(a), pred: Nat - bool ) : bool = "mac#%" // array0_forall fun array0_forall_method {a:vt0p} (A: array0(a)) (pred: Nat - bool): bool = "mac#%" // overload .forall with array0_forall_method of 100 // (* ****** ****** *) // fun array0_app {a:t0p} ( xs: array0(a), fwork: cfun(Nat, void) ) : void = "mac#%" // end-of-function fun array0_foreach {a:vt0p} ( A: array0(a) , fwork: cfun(Nat, void)): void = "mac#%" fun array0_foreach_method {a:vt0p} (A: array0(a)) (fwork: cfun(Nat, void)): void = "mac#%" // overload .foreach with array0_foreach_method of 100 // (* ****** ****** *) // fun array0_tabulate {a:vt0p} ( asz: int , fopr: cfun(Nat, a)): array0(a) = "mac#%" // (* ****** ****** *) (* end of [array0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/0000755000175000017500000000000013431250607021067 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/DivideConquer/0000755000175000017500000000000013431250607023630 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/DivideConquer/DATS/0000755000175000017500000000000013431250607024363 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/DivideConquer/DATS/DivideConquer.dats0000644000175000017500000000472613431250607030012 0ustar brandonbrandon(* ****** ****** *) // // Generic // Divide-and-Conquer // for libatscc // (* ****** ****** *) (* Author: Hongwei Xi *) (* Start time: March, 2017 *) (* Authoremail: hwxiATcsDOTbuDOTedu *) (* ****** ****** *) // (* #staload "libats/ML/SATS/basis.sats" #staload "libats/ML/SATS/list0.sats" *) // (* ****** ****** *) // abst@ype input_t0ype abst@ype output_t0ype // (* ****** ****** *) // typedef input = input_t0ype typedef output = output_t0ype // (* ****** ****** *) // extern fun{} DivideConquer$solve(input): output and DivideConquer$solve_rec(input): output // extern fun{} DivideConquer$solve$eval : (input) -> output // (* ****** ****** *) // extern fun{} DivideConquer$base_test(x0: input): bool // extern fun{} DivideConquer$base_solve(x0: input): output // (* ****** ****** *) // extern fun{} DivideConquer$divide(x0: input): list0(input) // (* ****** ****** *) // extern fun{} DivideConquer$conquer (x0: input, xs: list0(input)): output // extern fun{} DivideConquer$conquer$combine (x0: input, rs: list0(output)): output // (* ****** ****** *) // extern fun{} DivideConquer$solve$memo_get : (input) -> Option_vt(output) extern fun{} DivideConquer$solve$eval$memo_set : (input, output) -> void // (* ****** ****** *) implement {}(*tmp*) DivideConquer$solve (x0) = let // val opt = DivideConquer$solve$memo_get<>(x0) // in case+ opt of | ~Some_vt(r0) => r0 | ~None_vt((*void*)) => DivideConquer$solve$eval<>(x0) end // end of [DivideConquer$solve] (* ****** ****** *) // implement {}(*tmp*) DivideConquer$solve_rec (x0) = DivideConquer$solve<>(x0) // (* ****** ****** *) implement {}(*tmp*) DivideConquer$solve$eval (x0) = let // val test = DivideConquer$base_test<>(x0) // in (* in-of-let *) // if (test) then DivideConquer$base_solve<>(x0) else r0 where { val xs = DivideConquer$divide<>(x0) val r0 = DivideConquer$conquer<>(x0, xs) val () = DivideConquer$solve$eval$memo_set<>(x0, r0) } (* end of [else] *) // end // end of [DivideConquer$solve$eval] (* ****** ****** *) // implement {}(*tmp*) DivideConquer$solve$memo_get (x0) = None_vt() // implement {}(*tmp*) DivideConquer$solve$eval$memo_set (x0, r0) = ((*void*)) // (* ****** ****** *) // implement {}(*tmp*) DivideConquer$conquer (x0, xs) = r0 where { // val rs = list0_map{input}{output} ( xs , lam(x) => DivideConquer$solve_rec<>(x) ) (* end of [val] *) // val r0 = DivideConquer$conquer$combine<>(x0, rs) // } (* end of [DivideConquer$conquer] *) // (* ****** ****** *) (* end of [DivideConquer.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/parcomb/0000755000175000017500000000000013431250607022512 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/parcomb/DATS/0000755000175000017500000000000013431250607023245 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/parcomb/DATS/parcomb.dats0000644000175000017500000001150213431250607025544 0ustar brandonbrandon(* ** HX-2016-11-27: ** Parsing combinators for libatscc *) (* ****** ****** *) // (* staload "./../SATS/parcomb.sats" *) // (* ****** ****** *) // (* staload UN = "prelude/SATS/unsafe.sats" *) // (* ****** ****** *) // implement parser_fail() = lam(inp) => PAROUT(None(), inp) // (* ****** ****** *) // implement parser_succeed(x0) = lam(inp) => PAROUT(Some(x0), inp) // (* ****** ****** *) // implement parser_anyone {a}() = lam(xs0) => ( case+ !xs0 of | stream_nil() => PAROUT(None{a}(), xs0) | stream_cons(x1, xs1) => PAROUT(Some{a}(x1), xs1) ) (* end of [parse_anyone] *) // (* ****** ****** *) // implement parser_satisfy {a}(pred) = lam(xs0) => ( case+ !xs0 of | stream_nil() => PAROUT(None{a}(), xs0) | stream_cons(x1, xs1) => if pred(x1) then PAROUT(Some(x1), xs1) else PAROUT(None{a}(), xs0) // end of [if[ ) (* end of [parse_satisfy] *) // (* ****** ****** *) implement parser_map {a}{t}{u} ( p0, fopr ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p0(inp0) // in case+ opt of | None() => PAROUT(None{u}(), inp0) | Some(x) => PAROUT(Some(fopr(x)), inp1) end // end of [parser_map] (* ****** ****** *) implement parser_map2 {a}{t1,t2}{u3} ( p1, p2, fopr ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{u3}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{u3}(), inp0) | Some(x2) => PAROUT(Some(fopr(x1, x2)), inp2) end // end of [Some] // end // end of [parser_map2] (* ****** ****** *) implement parser_map3 {a}{t1,t2,t3}{u4} ( p1, p2, p3, fopr ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{u4}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{u4}(), inp0) | Some(x2) => let val+ PAROUT(opt, inp3) = p3(inp2) in case+ opt of | None() => PAROUT(None{u4}(), inp0) | Some(x3) => PAROUT(Some(fopr(x1, x2, x3)), inp3) end end // end of [Some] // end // end of [parser_map3] (* ****** ****** *) implement parser_join2 {a}{t1,t2} (p1, p2) = lam(inp0) => let // typedef t12 = $tup(t1, t2) // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t12}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t12}(), inp0) | Some(x2) => PAROUT(Some($tup(x1, x2)), inp2) end // end of [Some] // end // end of [parser_join2] (* ****** ****** *) implement parser_tup2_fst {a}{t1,t2} ( p1, p2 ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t1}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t1}(), inp0) | Some(x2) => PAROUT(Some{t1}(x1), inp2) end // end of [Some] // end // end of [parser_tup2_fst] (* ****** ****** *) implement parser_tup2_snd {a}{t1,t2} ( p1, p2 ) = lam(inp0) => let // val+ PAROUT(opt, inp1) = p1(inp0) // in // case+ opt of | None() => PAROUT(None{t2}(), inp0) // end of [None_vt] | Some(x1) => let val+ PAROUT(opt, inp2) = p2(inp1) in case+ opt of | None() => PAROUT(None{t2}(), inp0) | Some(x2) => PAROUT(Some{t2}(x2), inp2) end // end of [Some] // end // end of [parser_tup2_snd] (* ****** ****** *) implement parser_orelse {a}{t} ( p1, p2 ) = lam(inp0) => let // val out = p1(inp0) val+PAROUT(opt, inp1) = out // in // case+ opt of | Some _ => out | None _ => p2(inp0) // end // end of [parser_orelse] (* ****** ****** *) implement parser_repeat0 {a}{t} (p0) = lam(inp0) => let // fun auxlst ( inp: parinp(a), xs: List0_vt(t) ) : parout(a, list0(t)) = let // val+PAROUT(opt, inp) = p0(inp) // in case+ opt of | None() => let val xs = list_vt_reverse(xs) in PAROUT(Some(g0ofg1(xs)), inp) end // end of [None_vt] | Some(x) => auxlst(inp, list_vt_cons(x, xs)) end // end of [auxlst] // in auxlst(inp0, list_vt_nil((*void*))) end // end of [parse_repeat0] (* ****** ****** *) implement parser_repeat1 {a}{t} (p0) = lam(inp0) => let // typedef ts = list0(t) // val+ PAROUT(opt, inp1) = p0(inp0) // in // case+ opt of | None() => PAROUT(None{ts}(), inp0) // end of [None_vt] | Some(x) => let val+ PAROUT (opt, inp2) = parser_repeat0(p0)(inp1) val-Some(xs) = opt in PAROUT(Some(list0_cons(x, xs)), inp2) end // end of [Some] // end // end of [parse_repeat1] (* ****** ****** *) // implement parser_lazy(lp) = lam(inp0) => (!lp)(inp0) // (* ****** ****** *) (* end of [parcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/parcomb/SATS/0000755000175000017500000000000013431250607023264 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/parcomb/SATS/parcomb.sats0000644000175000017500000000463113431250607025607 0ustar brandonbrandon(* ** HX-2016-11-27: ** Parsing combinators ** for libatscc-common *) (* ****** ****** *) // (* #define ATS_PACKNAME "BUCS320.parcomb" *) // (* ****** ****** *) // typedef parinp(a:t@ype) = stream(a) // (* ****** ****** *) // datatype parout (a:t@ype, res:t@ype) = | PAROUT of (Option(res), parinp(a)) // (* ****** ****** *) typedef parser( a:t@ype, res:t@ype ) = parinp(a) - parout(a, res) (* ****** ****** *) // fun parser_fail {a:t@ype} {t:t@ype}(): parser(a, t) = "mac#%" fun parser_succeed {a:t@ype} {t:t@ype}(x0: t): parser(a, t) = "mac#%" // (* ****** ****** *) // fun parser_anyone {a:t@ype}((*void*)): parser(a, a) = "mac#%" // (* ****** ****** *) // fun parser_satisfy {a:t@ype} (pred: cfun(a, bool)): parser(a, a) = "mac#%" // (* ****** ****** *) // fun parser_join2 {a:t@ype} {t1,t2:t@ype} ( p1: parser(a, t1), p2: parser(a, t2) ) : parser(a, $tup(t1, t2)) = "mac#%" // end-of-fun // fun parser_join3 {a:t@ype} {t1,t2,t3:t@ype} ( p1: parser(a, t1), p2: parser(a, t2), p3: parser(a, t3) ) : parser(a, $tup(t1, t2, t3)) = "mac#%" // end-of-fun // (* ****** ****** *) // fun parser_tup2_fst {a:t@ype} {t1,t2:t@ype} ( p1: parser(a, t1), p2: parser(a, t2) ) : parser(a, t1) = "mac#%" // end-of-function fun parser_tup2_snd {a:t@ype} {t1,t2:t@ype} ( p1: parser(a, t1), p2: parser(a, t2) ) : parser(a, t2) = "mac#%" // end-of-function // (* ****** ****** *) // fun parser_map {a:t@ype} {t:t@ype}{u:t@ype} ( p0: parser(a, t), fopr: (t) - u ) : parser(a, u) = "mac#%" // end-of-fun // fun parser_map2 {a:t@ype} {t1,t2:t@ype}{u3:t@ype} ( p1: parser(a, t1), p2: parser(a, t2), fopr: (t1, t2) - u3 ) : parser(a, u3) = "mac#%" // end-of-fun fun parser_map3 {a:t@ype} {t1,t2,t3:t@ype}{u4:t@ype} ( p1: parser(a, t1), p2: parser(a, t2), p3: parser(a, t3), fopr: (t1, t2, t3) - u4 ) : parser(a, u4) = "mac#%" // end-of-fun // (* ****** ****** *) // fun parser_orelse {a:t@ype}{t:t@ype} ( p1: parser(a, t), p2: parser(a, t) ) : parser(a, t) = "mac#%" // end-of-function // (* ****** ****** *) // fun parser_repeat0 {a:t@ype} {t:t@ype} (parser(a, t)): parser(a, list0(t)) = "mac#%" // (* ****** ****** *) // fun parser_repeat1 {a:t@ype} {t:t@ype} (parser(a, t)): parser(a, list0(t)) = "mac#%" // (* ****** ****** *) // fun parser_lazy {a:t@ype} {t:t@ype} (lp: lazy(parser(a, t))): parser(a, t) = "mac#%" // (* ****** ****** *) (* end of [parcomb.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/words/0000755000175000017500000000000013431250607022225 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/words/SATS/0000755000175000017500000000000013431250607022777 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/words/SATS/words.sats0000644000175000017500000000101013431250607025021 0ustar brandonbrandon(* ****** ****** *) (* ** For processing English words *) (* ****** ****** *) // (* #define ATS_PACKNAME "BUCS320.words" *) // (* ****** ****** *) // fun theWords_size(): intGte(0) = "mac#%" // (* ****** ****** *) // fun theWords_get_at (intGte(0)): Option_vt(string) = "mac#%" // (* ****** ****** *) // fun theWords_streamize ((*void*)): stream_vt(string) = "mac#%" // (* ****** ****** *) // fun theWords_foreach_cloref ((string) - void): void = "mac#%" // (* ****** ****** *) (* end of [words.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphStreamize/0000755000175000017500000000000013431250607024014 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphStreamize/DATS/0000755000175000017500000000000013431250607024547 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphStreamize/DATS/GraphStreamize_dfs.dats0000644000175000017500000000217613431250607031213 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph DFS-streamization // for libatscc // (* ****** ****** *) // #include "./GraphStreamize.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theStreamizeStore_get ((*void*)): slistref(node) // (* ****** ****** *) // implement theStreamizeStore_insert<> (nx) = let // val theStore = theStreamizeStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); slistref_insert(theStore, nx) ) // end (* end of [theStreamizeStore_insert] *) // implement theStreamizeStore_choose<> ((*void*)) = let // val theStore = theStreamizeStore_get() // in slistref_takeout_opt(theStore) end // end of [theStreamizeStore_choose] // (* ****** ****** *) // extern fun{} GraphStreamize_dfs (store: slistref(node)): stream(node) implement {}(*tmp*) GraphStreamize_dfs(store) = GraphStreamize<>() where { implement theStreamizeStore_get<>() = store } (* GraphStreamize_dfs *) // (* ****** ****** *) (* end of [GraphStreamize_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphStreamize/DATS/GraphStreamize.dats0000644000175000017500000000225013431250607030350 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph streamization // for libatscc // (* ****** ****** *) abstype node_type = ptr absvtype nodelst_vtype = ptr (* ****** ****** *) typedef node = node_type vtypedef nodelst = nodelst_vtype (* ****** ****** *) // extern fun{} node_get_neighbors(nx: !node): nodelst // (* ****** ****** *) // extern fun{} theStreamizeStore_choose ((*void*)): Option_vt(node) // (* ****** ****** *) // extern fun{} theStreamizeStore_insert(node): void extern fun{} theStreamizeStore_insert_lst(nodelst): void // (* ****** ****** *) // extern fun{} GraphStreamize((*void*)): stream(node) // (* ****** ****** *) implement {}(*tmp*) GraphStreamize ((*void*)) = streamize() where { // fun streamize ( // argless ): stream(node) = $delay ( let // val opt = theStreamizeStore_choose<>() // in // case+ opt of | ~None_vt() => stream_nil() | ~Some_vt(nx) => let val nxs = node_get_neighbors<>(nx) val ((*void*)) = theStreamizeStore_insert_lst<>(nxs) in stream_cons(nx, streamize()) end // end of [Some] // end // end of [let] ) (* end of [streamize] *) // } (* end of [GraphStreamize] *) (* ****** ****** *) (* end of [GraphStreamize.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphStreamize/DATS/GraphStreamize_bfs.dats0000644000175000017500000000217613431250607031211 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph BFS-streamization // for libatscc // (* ****** ****** *) // #include "./GraphStreamize.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theStreamizeStore_get ((*void*)): qlistref(node) // (* ****** ****** *) // implement theStreamizeStore_insert<> (nx) = let // val theStore = theStreamizeStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); qlistref_insert(theStore, nx) ) // end (* end of [theStreamizeStore_insert] *) // implement theStreamizeStore_choose<> ((*void*)) = let // val theStore = theStreamizeStore_get() // in qlistref_takeout_opt(theStore) end // end of [theStreamizeStore_choose] // (* ****** ****** *) // extern fun{} GraphStreamize_bfs (store: qlistref(node)): stream(node) implement {}(*tmp*) GraphStreamize_bfs(store) = GraphStreamize<>() where { implement theStreamizeStore_get<>() = store } (* GraphStreamize_bfs *) // (* ****** ****** *) (* end of [GraphStreamize_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphSearch/0000755000175000017500000000000013431250607023256 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphSearch/DATS/0000755000175000017500000000000013431250607024011 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphSearch/DATS/GraphSearch_dfs.dats0000644000175000017500000000210713431250607027711 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph-based DFS // for libatscc // (* ****** ****** *) // #include "./GraphSearch.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theSearchStore_get ((*void*)): slistref(node) // (* ****** ****** *) // implement theSearchStore_insert<> (nx) = let // val theStore = theSearchStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); slistref_insert(theStore, nx) ) // end (* end of [theSearchStore_insert] *) // implement theSearchStore_choose<> ((*void*)) = let // val theStore = theSearchStore_get() // in slistref_takeout_opt(theStore) end // end of [theSearchStore_choose] // (* ****** ****** *) // extern fun{} GraphSearch_dfs (store: slistref(node)): void // implement {}(*tmp*) GraphSearch_dfs(store) = GraphSearch<>() where { implement theSearchStore_get<>() = store } (* GraphSearch_dfs *) // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphSearch/DATS/GraphSearch_bfs.dats0000644000175000017500000000210413431250607027704 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph-based BFS // for libatscc // (* ****** ****** *) // #include "./GraphSearch.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theSearchStore_get ((*void*)): qlistref(node) // (* ****** ****** *) // implement theSearchStore_insert<> (nx) = let // val theStore = theSearchStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); qlistref_insert(theStore, nx) ) // end (* end of [theSearchStore_insert] *) // implement theSearchStore_choose<> ((*void*)) = let // val theStore = theSearchStore_get() // in qlistref_takeout_opt(theStore) end // end of [theSearchStore_choose] // (* ****** ****** *) // extern fun{} GraphSearch_bfs (store: qlistref(node)): void implement {}(*tmp*) GraphSearch_bfs(store) = GraphSearch<>() where { implement theSearchStore_get<>() = store } (* GraphSearch_bfs *) // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc/BUCS320/GraphSearch/DATS/GraphSearch.dats0000644000175000017500000000240113431250607027052 0ustar brandonbrandon(* ****** ****** *) // // Generic // Graph-based Search // for libatscc // (* ****** ****** *) abstype node_type = ptr absvtype nodelst_vtype = ptr (* ****** ****** *) typedef node = node_type vtypedef nodelst = nodelst_vtype (* ****** ****** *) // extern fun{} node_get_neighbors(nx: node): nodelst // (* ****** ****** *) // extern fun{} process_node(nx: node): bool // (* ****** ****** *) // extern fun{} theSearchStore_choose ((*void*)): Option_vt(node) // (* ****** ****** *) // extern fun{} theSearchStore_insert(node): void extern fun{} theSearchStore_insert_lst(nodelst): void // (* ****** ****** *) // extern fun{} GraphSearch(): void // (* ****** ****** *) implement {}(*tmp*) GraphSearch ((*void*)) = let // fun search ( // argless ): void = let // val opt = theSearchStore_choose() // in // case+ opt of | ~None_vt() => () | ~Some_vt(nx) => let val cont = process_node(nx) in if cont then let val nxs = node_get_neighbors(nx) // end of [val] in theSearchStore_insert_lst(nxs); search((*void*)) end // end of [then] // end of [if] end (* end of [Some_vt] *) // end (* end of [search] *) // in search((*void*)) end // end of [GraphSearch] (* ****** ****** *) (* end of [GraphSearch.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/0000755000175000017500000000000013431250607017676 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/0000755000175000017500000000000013431250607020777 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_memalloc_libc.h0000644000175000017500000000670713431250607026154 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ // #include /* extern int fprintf (FILE *stream, const char *format, ...) ; */ /* ****** ****** */ // // stdlib.h // extern void exit (int code) ; // extern void free (void *ptr) ; extern void *malloc (size_t bsz) ; extern void *calloc(size_t asz, size_t tsz) ; extern void *realloc(void *ptr, size_t bsz) ; // /* ****** ****** */ // ATSinline() atsvoid_t0ype atsruntime_minit_libc() { return ; } // /* ****** ****** */ ATSinline() atsvoid_t0ype atsruntime_mfree_libc (atstype_ptr ptr) { free(ptr) ; return ; } // end of [atsruntime_mfree_libc] /* ****** ****** */ ATSinline() atstype_ptr atsruntime_malloc_libc (atstype_size bsz) { return malloc(bsz) ; } // end of [atsruntime_malloc_libc] ATSinline() atstype_ptr atsruntime_malloc_libc_exn (atstype_size bsz) { atstype_ptr p ; p = atsruntime_malloc_libc(bsz) ; if (!p) { fprintf(stderr, "exit(ATS): atsruntime_malloc_libc_exn: [malloc] failed.\n") ; exit(1) ; } // end of [if] return (p) ; } /* end of [atsruntime_malloc_libc_exn] */ /* ****** ****** */ ATSinline() atstype_ptr atsruntime_calloc_libc (atstype_size asz, atstype_size tsz) { return calloc(asz, tsz) ; } // end of [atsruntime_calloc_libc] ATSinline() atstype_ptr atsruntime_calloc_libc_exn ( atstype_size asz, atstype_size tsz ) { atstype_ptr p ; p = atsruntime_calloc_libc(asz, tsz) ; if (!p) { fprintf(stderr, "exit(ATS): atsruntime_calloc_libc_exn: [calloc] failed.\n") ; exit(1) ; } // end of [if] return (p) ; } /* end of [atsruntime_calloc_libc_exn] */ /* ****** ****** */ ATSinline() atstype_ptr atsruntime_realloc_libc (atstype_ptr ptr, atstype_size bsz) { return realloc(ptr, bsz) ; } // end of [atsruntime_realloc_libc] ATSinline() atstype_ptr atsruntime_realloc_libc_exn ( atstype_ptr ptr, atstype_size bsz ) { atstype_ptr p ; p = atsruntime_realloc_libc(ptr, bsz) ; if (!p) { fprintf(stderr, "exit(ATS): atsruntime_realloc_libc_exn: [realloc] failed.\n") ; exit(1) ; } // end of [if] return (p) ; } /* end of [atsruntime_realloc_libc_exn] */ /* ****** ****** */ /* end of [pats_ccomp_memalloc_libc.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_memalloc_user.h0000644000175000017500000000424413431250607026213 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ // #include /* extern int fprintf (FILE *stream, const char *format, ...) ; */ /* ****** ****** */ // // stdlib.h // extern void exit (int code) ; // /* ****** ****** */ extern void atsruntime_mfree_user (void *ptr) ; extern void *atsruntime_malloc_user (size_t bsz) ; extern void *atsruntime_calloc_user (size_t asz, size_t tsz) ; extern void *atsruntime_realloc_user (void *ptr, size_t bsz) ; /* ****** ****** */ ATSinline() atstype_ptr atsruntime_malloc_user_exn (atstype_size bsz) { atstype_ptr p ; p = atsruntime_malloc_user(bsz) ; if (!p) { fprintf(stderr, "exit(ATS): atsruntime_malloc_user_exn: [malloc] failed.\n") ; exit(1) ; } // end of [if] return (p) ; } /* end of [atsruntime_malloc_user_exn] */ /* ****** ****** */ /* end of [pats_ccomp_memalloc_user.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_memalloc_user2.h0000644000175000017500000000353013431250607026272 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ // #include /* extern int fprintf (FILE *stream, const char *format, ...) ; */ /* ****** ****** */ // // stdlib.h // extern void exit (int code) ; // /* ****** ****** */ extern void atsruntime_mfree_user2 (void *ptr) ; extern void *atsruntime_malloc_user2 (size_t bsz) ; extern void *atsruntime_calloc_user2 (size_t asz, size_t tsz) ; extern void *atsruntime_realloc_user2 (void *ptr, size_t bsz) ; /* ****** ****** */ /* end of [pats_ccomp_memalloc_user2.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ats2cpp_prelude.h0000644000175000017500000000337113431250607025277 0ustar brandonbrandon/* ****** ****** */ // // HX-2016-12: // For compiling via g++ // C code generated from ATS source // /* ****** ****** */ /* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* ****** ****** */ #ifndef PATS_ATS2CPP_PRELUDE_H #define PATS_ATS2CPP_PRELUDE_H /* ****** ****** */ // #include \ "prelude/CATS/basics.cats" // #include \ "prelude/CATS/integer.cats" #include \ "prelude/CATS/pointer.cats" // #include \ "prelude/CATS/integer_long.cats" #include \ "prelude/CATS/integer_size.cats" #include \ "prelude/CATS/integer_short.cats" // #include "prelude/CATS/bool.cats" #include "prelude/CATS/char.cats" // #include "prelude/CATS/float.cats" // /* #include \ "prelude/CATS/integer_fixed.cats" */ // #include "prelude/CATS/memory.cats" // #include "prelude/CATS/string.cats" // #include "prelude/CATS/fprintf.cats" // #include "prelude/CATS/filebas.cats" // #include "prelude/CATS/array.cats" #include "prelude/CATS/arrayptr.cats" #include "prelude/CATS/arrayref.cats" // /* ****** ****** */ #endif // end of [PATS_ATS2CPP_PRELUDE_H] /* ****** ****** */ /* end of [pats_ats2cpp_prelude.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_instrset.h0000644000175000017500000002652513431250607025245 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2012 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_INSTRSET_H #define PATS_CCOMP_INSTRSET_H /* ****** ****** */ // // HX: boolean values // #define atsbool_true 1 #define atsbool_false 0 // /* ****** ****** */ /* #define ATStyclo() struct{ void *cfun; } #define ATStysum() struct{ int contag; } */ #define ATStyexn() struct{ int exntag; char *exnmsg; } #define ATStylist(tyelt) struct{ tyelt head; void *tail; } /* ****** ****** */ // typedef struct{ void *cfun; } ATStyclo ; typedef ATStyclo *ATStyclo_ptr ; // typedef struct{ int contag; } ATStysum ; typedef ATStysum *ATStysum_ptr ; // /* ****** ****** */ // // HX: for supporting lazy-evaluation // #define \ ATStylazy(tyval) \ struct{ int flag; union{ void* thunk; tyval saved; } lazy; } // /* ****** ****** */ #define ATSif(x) if(x) #define ATSthen() #define ATSelse() else /* ****** ****** */ #define ATSifthen(x) if(x) #define ATSifnthen(x) if(!(x)) /* ****** ****** */ #define ATSdo() do #define ATSwhile(x) while(x) #define ATSbreak() break #define ATScontinue() continue /* ****** ****** */ // // HX: handling for/while loops // #define \ ATSloop_open(init, fini, cont) \ do { init: #define \ ATSloop_close(init, fini, cont) \ goto init ; fini: break ; } while(0) // #define ATSbreak2(fini) goto fini #define ATScontinue2(cont) goto cont // /* ****** ****** */ #define ATSreturn(x) return(x) #define ATSreturn_void(x) return /* ****** ****** */ #define ATSFCreturn(x) return(x) #define ATSFCreturn_void(x) (x); return /* ****** ****** */ // #define ATSbranch_beg() #define ATSbranch_end() break ; // #define ATScaseof_beg() do { #define ATScaseof_end() } while(0) ; // /* ****** ****** */ #define ATSextcode_beg() #define ATSextcode_end() /* ****** ****** */ #define ATSfunbody_beg() #define ATSfunbody_end() /* ****** ****** */ #define ATSPMVint(i) i #define ATSPMVintrep(rep) (rep) #define ATSPMVbool_true() atsbool_true #define ATSPMVbool_false() atsbool_false #define ATSPMVchar(c) (c) #define ATSPMVfloat(rep) (rep) #define ATSPMVstring(str) (str) #define ATSPMVi0nt(tok) (tok) #define ATSPMVf0loat(tok) (tok) /* ****** ****** */ #define ATSCSTSPmyfil(info) info #define ATSCSTSPmyloc(info) info /* ****** ****** */ // #define ATSPMVtop() atserror_top // #define ATSPMVempty() /*empty*/ #define ATSPMVextval(name) (name) // /* ****** ****** */ #define ATSPMVtyrep(tyrep) tyrep /* ****** ****** */ // #define ATSPMVfunlab(flab) (flab) // // HX-2015-07-06: not yet in use: // #define ATSPMVfunlab2(flab, arity) (flab) // /* ****** ****** */ #define ATSPMVcfunlab(knd, flab, env) (flab##__closurerize)env /* ****** ****** */ #define ATSPMVptrof(lval) (&(lval)) #define ATSPMVptrof_void(lval) ((void*)0) /* ****** ****** */ #define ATSPMVrefarg0(val) (val) #define ATSPMVrefarg1(ref) (ref) /* ****** ****** */ #define ATSPMVsizeof(hit) (sizeof(hit)) /* ****** ****** */ // // HX: castfn application // #define ATSPMVcastfn(d2c, hit, arg) ((hit)arg) // /* ****** ****** */ #define ATSfuncall(fun, funarg) fun funarg /* #define ATSfuncall(fun, funarg) (fun)funarg */ /* ****** ****** */ // #define ATSextfcall(fun, funarg) fun funarg /* #define ATSextfcall(fun, funarg) (fun)funarg */ // #define ATSextmcall(obj, mtd, funarg) (obj->mtd)funarg // /* ****** ****** */ // #define \ ATSfunclo_fun(pmv, targs, tres) ((tres(*)targs)(pmv)) #define \ ATSfunclo_clo(pmv, targs, tres) ((tres(*)targs)(((ATStyclo_ptr)pmv)->cfun)) // /* ****** ****** */ // #define ATStmpdec(tmp, hit) hit tmp #define ATStmpdec_void(tmp) // #define ATSstatmpdec(tmp, hit) static hit tmp #define ATSstatmpdec_void(tmp) // /* ****** ****** */ #define ATSderef(pmv, hit) (*(hit*)pmv) /* ****** ****** */ // // HX: [ATSSELcon] is the same as [ATSSELboxrec] // #define ATSSELcon(pmv, tysum, lab) (((tysum*)pmv)->lab) // #define ATSSELrecsin(pmv, tyrec, lab) (pmv) #define ATSSELfltrec(pmv, tyrec, lab) ((pmv).lab) #define ATSSELboxrec(pmv, tyrec, lab) (((tyrec*)pmv)->lab) #define ATSSELarrind(pmv, tyarr, lab) (((tyarr)pmv).lab) #define ATSSELarrptrind(pmv, tyelt, lab) (((tyelt*)pmv)lab) // /* ****** ****** */ // #define ATSCKnot(x) ((x)==0) // #define ATSCKiseqz(x) ((x)==0) #define ATSCKisneqz(x) ((x)!=0) // #define ATSCKptriscons(x) (0 != (void*)(x)) #define ATSCKptrisnull(x) (0 == (void*)(x)) // /* ****** ****** */ // #define ATSCKpat_int(pmv, pat) ((pmv)==pat) #define ATSCKpat_bool(pmv, pat) ((pmv)==pat) #define ATSCKpat_char(pmv, pat) ((pmv)==pat) #define ATSCKpat_float(pmv, pat) ((pmv)==pat) #define ATSCKpat_string(pmv, pat) (atspre_string_equal(pmv, pat)) // /* ** a datatype should not contain more than 1024 constructors! */ #define ATS_DATACONMAX 1024 // #define ATSCKpat_con0(pmv, tag) ((pmv)==(void*)tag) #define ATSCKpat_con1(pmv, tag) \ ((pmv)>=(void*)ATS_DATACONMAX && ((ATStysum_ptr)(pmv))->contag==tag) // #define ATSCKpat_exn0(pmv, d2con) ((pmv)==(void*)(&(d2con))) #define ATSCKpat_exn1(pmv, d2con) (((ATStyexn()*)(pmv))->exntag==(&(d2con))->exntag) // /* ****** ****** */ // #define ATSINSlab(lab) lab #define ATSINSgoto(lab) goto lab // #define ATSINSflab(flab) flab #define ATSINSfgoto(flab) goto flab // /* ****** ****** */ #define ATSINSfreeclo(cloptr) ATS_MFREE(cloptr) #define ATSINSfreecon(datconptr) ATS_MFREE(datconptr) /* ****** ****** */ #define ATSINSmove(tmp, val) (tmp = val) #define ATSINSpmove(tmp, hit, val) (*(hit*)tmp = val) /* ****** ****** */ /* ** HX-2013-01-20: ** Do not have parentheses around [command] */ #define ATSINSmove_void(tmp, command) command #define ATSINSpmove_void(tmp, hit, command) command /* ****** ****** */ #define ATSINSmove_ptralloc(tmp, hit) (tmp = ATS_MALLOC(sizeof(hit))) /* ****** ****** */ // #define \ ATSINSmove_nil(tmp) (tmp = ((void*)0)) // #define \ ATSINSmove_con0(tmp, tag) (tmp = ((void*)tag)) // #define ATSINSmove_con1_beg() #define ATSINSmove_con1_end() #define ATSINSmove_con1_new(tmp, tysum) (tmp = ATS_MALLOC(sizeof(tysum))) #define ATSINSstore_con1_tag(tmp, val) (((ATStysum_ptr)(tmp))->contag = val) #define ATSINSstore_con1_ofs(tmp, tysum, lab, val) (((tysum*)(tmp))->lab = val) // /* ****** ****** */ // #define ATSINSmove_exn0(tmp, d2con) (tmp = &(d2con)) // #define ATSINSmove_exn1_beg() #define ATSINSmove_exn1_end() #define ATSINSmove_exn1_new(tmp, tyexn) (tmp = ATS_MALLOC(sizeof(tyexn))) #define ATSINSstore_exn1_tag(tmp, d2con) (((ATStyexn()*)tmp)->exntag = (&(d2con))->exntag) #define ATSINSstore_exn1_msg(tmp, d2con) (((ATStyexn()*)tmp)->exnmsg = (&(d2con))->exnmsg) // /* ****** ****** */ // #define ATStailcal_beg() do { #define ATStailcal_end() } while(0) ; // #define ATSINSmove_tlcal(apy, tmp) (apy = tmp) #define ATSINSargmove_tlcal(arg, apy) (arg = apy) // /* ****** ****** */ #define ATSINSmove_fltrec_beg() #define ATSINSmove_fltrec_end() #define ATSINSstore_fltrec_ofs(tmp, tyrec, lab, val) ((tmp).lab = val) /* ****** ****** */ #define ATSINSmove_boxrec_beg() #define ATSINSmove_boxrec_end() #define ATSINSmove_boxrec_new(tmp, tyrec) (tmp = ATS_MALLOC(sizeof(tyrec))) #define ATSINSstore_boxrec_ofs(tmp, tyrec, lab, val) (((tyrec*)(tmp))->lab = val) /* ****** ****** */ #define ATSINSload(tmp, pmv) (tmp = pmv) #define ATSINSstore(pmv1, pmv2) (pmv1 = pmv2) #define ATSINSxstore(tmp, pmv1, pmv2) (tmp = pmv1, pmv1 = pmv2, pmv2 = tmp) /* ****** ****** */ // #define ATSINSmove_list_nil(tmp) (tmp = (void*)0) #define ATSINSmove_list_phead(tmp1, tmp2, tyelt) (tmp1 = &(((ATStylist(tyelt)*)(*(void**)tmp2))->head)) #define ATSINSmove_list_ptail(tmp1, tmp2, tyelt) (tmp1 = &(((ATStylist(tyelt)*)(*(void**)tmp2))->tail)) #define ATSINSpmove_list_nil(tmp) (*(void**)tmp = (void*)0) #define ATSINSpmove_list_cons(tmp, tyelt) (*(void**)tmp = ATS_MALLOC(sizeof(ATStylist(tyelt)))) // /* ****** ****** */ // #define ATSINSstore_arrpsz_asz(tmp, asz) ((tmp).size = asz) #define ATSINSstore_arrpsz_ptr(tmp, tyelt, asz) ((tmp).ptr = ATS_MALLOC(asz*sizeof(tyelt))) // #define ATSINSmove_arrpsz_ptr(tmp, psz) (tmp = (psz).ptr) // #define ATSINSupdate_ptrinc(tmp, tyelt) (tmp = (tyelt*)(tmp) + 1) #define ATSINSupdate_ptrdec(tmp, tyelt) (tmp = (tyelt*)(tmp) - 1) // /* ****** ****** */ #define ATSINSextvar_assign(var, pmv) var = (pmv) #define ATSINSdyncst_valbind(d2cst, pmv) d2cst = (pmv) /* ****** ****** */ #define ATSINSclosure_initize(flab, tmpenv) (flab##__closureinit)tmpenv /* ****** ****** */ // #define ATSINSraise_exn(tmp, pmv) atsruntime_raise(pmv) // /* ****** ****** */ // #define ATSINScaseof_fail(msg) atsruntime_handle_unmatchedval(msg) #define ATSINSfunarg_fail(msg) atsruntime_handle_unmatchedarg(msg) // /* ****** ****** */ #define \ ATSINSmove_delay(tmpret, tyval, pmv_thk) \ do { \ tmpret = \ ATS_MALLOC(sizeof(ATStylazy(tyval))) ; \ (*(ATStylazy(tyval)*)tmpret).flag = 0 ; \ (*(ATStylazy(tyval)*)tmpret).lazy.thunk = pmv_thk ; \ } while(0) ; /* end of [do ... while ...] */ #define \ ATSINSmove_lazyeval(tmpret, tyval, pmv_lazy) \ do { \ if ( \ (*(ATStylazy(tyval)*)pmv_lazy).flag==0 \ ) { \ (*(ATStylazy(tyval)*)pmv_lazy).flag += 1 ; \ atstype_cloptr __thunk = (*(ATStylazy(tyval)*)pmv_lazy).lazy.thunk ; \ tmpret = ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr), tyval), (__thunk)) ; \ (*(ATStylazy(tyval)*)pmv_lazy).lazy.saved = tmpret ; \ } else { \ tmpret = (*(ATStylazy(tyval)*)pmv_lazy).lazy.saved ; \ } /* end of [if] */ \ } while(0) /* end of [do ... while ...] */ /* ****** ****** */ #define \ ATSINSmove_ldelay(tmpret, tyval, __thunk) \ do { \ ATSINSmove(tmpret, __thunk) ; \ } while(0) /* end of [do ... while ...] */ #define \ ATSINSmove_llazyeval(tmpret, tyval, __thunk) \ do { \ tmpret = \ ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr, atstype_bool), tyval), (__thunk, atsbool_true)) ; \ ATS_MFREE(__thunk) ; \ } while(0) /* end of [do ... while ...] */ /* ****** ****** */ #define \ atspre_lazy_vt_free(__thunk) \ do { \ ATSfuncall(ATSfunclo_clo(__thunk, (atstype_cloptr, atstype_bool), void), (__thunk, atsbool_false)) ; \ ATS_MFREE(__thunk) ; \ } while(0) /* atspre_lazy_vt_free */ /* ****** ****** */ // // HX-2014-10: // #define atspre_lazy2cloref(pmv_lazy) ((*(ATStylazy(atstype_ptr)*)pmv_lazy).lazy.thunk) // /* ****** ****** */ #endif /* PATS_CCOMP_INSTRSET_H */ /* ****** ****** */ /* end of [pats_ccomp_instrset.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_typedefs.h0000644000175000017500000001061113431250607025202 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2012 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_TYPEDEFS_H #define PATS_CCOMP_TYPEDEFS_H /* ****** ****** */ /* ** HX: ** of indefinite size */ struct atstype_struct ; /* ****** ****** */ typedef void atstype_void ; typedef void atsvoid_t0ype ; /* ****** ****** */ typedef int atstype_int ; typedef unsigned int atstype_uint ; typedef long int atstype_lint ; typedef unsigned long int atstype_ulint ; typedef long long int atstype_llint ; typedef unsigned long long int atstype_ullint ; typedef short int atstype_sint ; typedef unsigned short int atstype_usint ; /* ****** ****** */ typedef atstype_lint atstype_ssize ; typedef atstype_ulint atstype_size ; /* ****** ****** */ // // HX: true/false: 1/0 // typedef int atstype_bool ; // /* ****** ****** */ typedef unsigned char atstype_byte ; /* ****** ****** */ typedef char atstype_char ; typedef signed char atstype_schar ; typedef unsigned char atstype_uchar ; /* ****** ****** */ typedef char *atstype_string ; typedef char *atstype_stropt ; typedef char *atstype_strptr ; /* ****** ****** */ typedef float atstype_float ; typedef double atstype_double ; typedef long double atstype_ldouble ; /* ****** ****** */ /* ** HX: for pointers */ typedef void *atstype_ptr ; typedef void *atstype_ptrk ; /* ** HX: for references */ typedef void *atstype_ref ; /* ** HX: for boxed values */ typedef void* atstype_boxed ; /* ** HX: for [datconptr] */ typedef void* atstype_datconptr ; /* ** HX: for [datcontyp] */ typedef void* atstype_datcontyp ; /* ****** ****** */ // typedef struct { // atstype_int exntag ; atstype_string exnmsg ; // } atstype_exncon ; // typedef atstype_exncon *atstype_exnconptr ; // /* ****** ****** */ /* ** HX: for pointers to arrays */ typedef void* atstype_arrptr ; /* ** HX: for arrays plus size info */ typedef struct { atstype_arrptr ptr ; atstype_size size ; } atstype_arrpsz ; /* ****** ****** */ typedef void* atstype_funptr ; typedef void* atstype_cloptr ; /* ****** ****** */ #define atstkind_type(tk) tk #define atstkind_t0ype(tk) tk /* ****** ****** */ // // HX-2014-09-16: // making it unusable unless // _ATS_ARRAY_FIELD is defined // #ifdef _ATS_ARRAY_FIELD_ #define atstyarr_field(fname) fname[] #else #define atstyarr_field(fname) atstyarr_field_undef(fname) #endif // end of [_ATS_ARRAY_FIELD_] // /* ****** ****** */ // // HX-2014-05: // making it not usable!!! // #ifdef _ATSTYPE_VAR_SIZE_ // HX: it is set by the user #else #define _ATSTYPE_VAR_SIZE_ 0X10000 #endif // end of [#ifdef] // // HX-2014-05: // for 8-bit or 16-bit march, // _ATSTYPE_VAR_SIZE can be set to 0X100 // typedef struct{char _[_ATSTYPE_VAR_SIZE_];} atstype_var[0] ; // /* ****** ****** */ #define atstyvar_type(a) atstype_var /* ****** ****** */ #define atstybox_type(hit) atstype_boxed /* ****** ****** */ #define atstyclo_top struct{ void *cfun; } #define atstyclo_type(flab) flab##__closure_t0ype /* ****** ****** */ #define atsrefarg0_type(hit) hit #define atsrefarg1_type(hit) atstype_ref /* ****** ****** */ #endif /* PATS_CCOMP_TYPEDEFS_H */ /* ****** ****** */ /* end of [pats_ccomp_typedefs.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_config.h0000644000175000017500000000310013431250607024617 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_CONFIG_H #define PATS_CCOMP_CONFIG_H /* ****** ****** */ // HX: it is yet empty /* ****** ****** */ #endif /* PATS_CCOMP_CONFIG_H */ /* end of [pats_ccomp_config.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_memalloca.h0000644000175000017500000000365513431250607025323 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_MEMALLOCA_H #define PATS_CCOMP_MEMALLOCA_H /* ****** ****** */ // // alloca.h // extern void *alloca (size_t bsz) ; // /* ****** ****** */ // // HX: [afree] matches [alloca] // ATSinline() atsvoid_t0ype atsruntime_afree_libc (atstype_ptr ptr) { return ; } // end of [atsruntime_afree_libc] ATSinline() atstype_ptr atsruntime_alloca_libc (atstype_size bsz) { return alloca(bsz) ; } // end of [atsruntime_alloca_libc] /* ****** ****** */ #endif /* PATS_CCOMP_MEMALLOCA_H */ /* ****** ****** */ /* end of [pats_ccomp_memalloca.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_exception.h0000644000175000017500000001016713431250607025363 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: June, 2013 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_EXCEPTION_H #define PATS_CCOMP_EXCEPTION_H /* ****** ****** */ /* use -D_XOPEN_SOURCE */ // #include #include /* extern "C" void *alloca(size_t bsz); */ // /* ****** ****** */ #define atstype_jmp_buf jmp_buf #define atspre_setjmp(env, mask) setjmp(env) #define atspre_longjmp(env, ret) longjmp(env, ret) /* ****** ****** */ /* extern atstype_exncon *atspre_AssertExn_make() ; extern atstype_exncon *atspre_NotFoundExn_make() ; extern atstype_exncon *atspre_IllegalArgExn_make(const char*) ; extern atstype_exncon *atspre_ListSubscriptExn_make() ; extern atstype_exncon *atspre_StreamSubscriptExn_make() ; extern atstype_exncon *atspre_ArraySubscriptExn_make() ; extern atstype_exncon *atspre_MatrixSubscriptExn_make() ; // extern atstype_exncon *atspre_NotSomeExn_make() ; // extern atstype_bool atspre_isListSubscriptExn (const atstype_exncon*) ; extern atstype_bool atspre_isStreamSubscriptExn (const atstype_exncon*) ; extern atstype_bool atspre_isArraySubscriptExn (const atstype_exncon*) ; extern atstype_bool atspre_isMatrixSubscriptExn (const atstype_exncon*) ; // extern atstype_bool atspre_isNotSomeExn (const atstype_exncon*) ; */ /* ****** ****** */ typedef struct atsexnframe { atstype_jmp_buf env ; atstype_exnconptr exn ; struct atsexnframe *prev ; } atsexnframe_t ; typedef atsexnframe_t *atsexnframe_ptr ; /* ****** ****** */ #define \ atsexnframe_alloc() alloca(sizeof(atsexnframe_t)) #define \ atsexnframe_mfree(frame) /* there-is-nothing-to-do */ /* ****** ****** */ extern "C" { atsexnframe_ptr *my_atsexnframe_getref() ; // throw (); } // end of [extern "C"] /* ****** ****** */ static inline void my_atsexnframe_enter ( atsexnframe_ptr frame , atsexnframe_ptr *framep ) { frame->prev = *framep ; *framep = frame ; return ; } // end of [my_atsexnframe_enter] static inline void my_atsexnframe_leave ( atsexnframe_ptr *framep ) { atsexnframe_mfree(*framep) ; *framep = (*framep)->prev ; return ; } // end of [my_atsexnframe_leave] /* ****** ****** */ /* ** HX: ** beg-of-WARNING: ** DO NOT USE THE FOLLOWING MACROS: */ #define \ ATStrywith_try(tmpexn) \ do { \ int flag ; \ atsexnframe_ptr frame ; \ atsexnframe_ptr *framep ; \ frame = atsexnframe_alloc() ; \ framep = my_atsexnframe_getref() ; \ my_atsexnframe_enter(frame, framep) ; \ flag = atspre_setjmp(frame->env, 1) ; \ if (flag==0) { /* normal */ #define \ ATStrywith_with(tmpexn) \ my_atsexnframe_leave(framep) ; \ } else { /* flag<>0 : exceptional */ \ tmpexn = (*framep)->exn ; \ my_atsexnframe_leave(framep) ; #define \ ATStrywith_end(tmpexn) \ } \ } while(0) ; /* end of [do] */ /* end-of-WARNING */ /* ****** ****** */ #endif /* PATS_CCOMP_EXCEPTION_H */ /* ****** ****** */ /* end of [pats_ccomp_exception.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_memalloc_gcbdw.h0000644000175000017500000000671113431250607026324 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ // #include /* extern int fprintf (FILE *stream, const char *format, ...) ; */ /* ****** ****** */ // #include // /* extern void exit (int code) ; */ /* ****** ****** */ // #include // /* extern void GC_init () ; extern void GC_free (void *ptr) ; extern void *GC_malloc(size_t bsz) ; extern void *GC_realloc(void *ptr, size_t bsz) ; */ /* ****** ****** */ ATSinline() atsvoid_t0ype atsruntime_minit_gcbdw (/*void*/) { GC_init() ; return ; } // end of [atsruntime_minit_gcbdw] /* ****** ****** */ ATSinline() atsvoid_t0ype atsruntime_mfree_gcbdw (void *ptr) { GC_free(ptr) ; return ; } // end of [atsruntime_mfree_gcbdw] /* ****** ****** */ ATSinline() atstype_ptr atsruntime_malloc_gcbdw (size_t bsz) { return GC_malloc(bsz) ; } // end of [atsruntime_malloc_gcbdw] ATSinline() atstype_ptr atsruntime_malloc_gcbdw_exn (size_t bsz) { void *ptr ; ptr = atsruntime_malloc_gcbdw(bsz) ; if (!ptr) { fprintf( stderr, "exit(ATS): atsruntime_malloc_gcbdw_exn: [malloc] failed.\n" ) ; exit(1) ; } // end of [if] return (ptr) ; } /* end of [atsruntime_malloc_gcbdw_exn] */ /* ****** ****** */ // // HX: [malloc] alreay clears the allocated region // ATSinline() atstype_ptr atsruntime_calloc_gcbdw (size_t asz, size_t tsz) { return atsruntime_malloc_gcbdw (asz*tsz) ; } // end of [atsruntime_calloc_gcbdw] ATSinline() atstype_ptr atsruntime_calloc_gcbdw_exn (size_t asz, size_t tsz) { return atsruntime_malloc_gcbdw_exn (asz*tsz) ; } // end of [atsruntime_calloc_gcbdw_exn] /* ****** ****** */ ATSinline() atstype_ptr atsruntime_realloc_gcbdw (void *ptr, size_t bsz) { return GC_realloc(ptr, bsz) ; } // end of [atsruntime_realloc_gcbdw] ATSinline() atstype_ptr atsruntime_realloc_gcbdw_exn (void *ptr, size_t bsz) { void *ptr2 ; ptr2 = atsruntime_realloc_gcbdw(ptr, bsz) ; if (!ptr2) { fprintf( stderr, "exit(ATS): atsruntime_realloc_gcbdw_exn: [realloc] failed.\n" ) ; exit(1) ; } // end of [if] return (ptr2) ; } /* end of [atsruntime_realloc_gcbdw_exn] */ /* ****** ****** */ /* end of [pats_ccomp_memalloc_gcbdw.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_memalloc.h0000644000175000017500000000664013431250607025157 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2012 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_MEMALLOC_H #define PATS_CCOMP_MEMALLOC_H /* ****** ****** */ // // HX: for size_t // #include // /* ****** ****** */ /* extern "C" { void atsruntime_mfree_undef(void *ptr) ; void *atsruntime_malloc_undef(size_t bsz) ; void *atsruntime_calloc_undef(size_t asz, size_t tsz) ; void *atsruntime_realloc_undef(void *ptr, size_t bsz) ; } */ // #include // /* ****** ****** */ #ifdef ATS_MEMALLOC_FLAG #undef ATS_MEMALLOC_FLAG #endif // ifdef(ATS_MEMALLOC_FLAG) /* ****** ****** */ #ifdef ATS_MEMALLOC_LIBC // #define ATS_MEMALLOC_FLAG // #include "pats_ccomp_memalloc_libc.h" // #define ATS_MINIT atsruntime_minit_libc #define ATS_MFREE atsruntime_mfree_libc #define ATS_MALLOC atsruntime_malloc_libc_exn #define ATS_CALLOC atsruntime_calloc_libc_exn #define ATS_REALLOC atsruntime_realloc_libc_exn // #endif // end of [ATS_MEMALLOC_LIBC] /* ****** ****** */ #ifdef ATS_MEMALLOC_GCBDW // #define ATS_MEMALLOC_FLAG // #include "pats_ccomp_memalloc_gcbdw.h" // #define ATS_MINIT atsruntime_minit_gcbdw #define ATS_MFREE atsruntime_mfree_gcbdw #define ATS_MALLOC atsruntime_malloc_gcbdw_exn #define ATS_CALLOC atsruntime_calloc_gcbdw_exn #define ATS_REALLOC atsruntime_realloc_gcbdw_exn // #endif // end of [ATS_MEMALLOC_GCBDW] /* ****** ****** */ #ifdef ATS_MEMALLOC_USER // #define ATS_MEMALLOC_FLAG // #include "pats_ccomp_memalloc_user.h" // #define ATS_MINIT atsruntime_minit_user #define ATS_MFREE atsruntime_mfree_user #define ATS_MALLOC atsruntime_malloc_user #define ATS_CALLOC atsruntime_calloc_user #define ATS_REALLOC atsruntime_realloc_user // #endif // end of [ATS_MEMALLOC_USER] /* ****** ****** */ #ifndef ATS_MEMALLOC_FLAG #define ATS_MEMALLOC_FLAG // #define ATS_MINIT atsruntime_minit_undef #define ATS_MFREE atsruntime_mfree_undef #define ATS_MALLOC atsruntime_malloc_undef #define ATS_CALLOC atsruntime_calloc_undef #define ATS_REALLOC atsruntime_realloc_undef // #endif // end of [ATS_MEMALLOC_FLAG] /* ****** ****** */ #endif /* PATS_CCOMP_MEMALLOC_H */ /* ****** ****** */ /* end of [pats_ccomp_memalloc.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_runtime_memalloc.c0000644000175000017500000000466613431250607026723 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2013 *) */ /* ****** ****** */ #ifdef ATS_MEMALLOC_LIBC extern "C" { // void atsruntime_mfree_undef (void *ptr) { atsruntime_mfree_libc (ptr) ; return ; } void *atsruntime_malloc_undef (size_t bsz) { return atsruntime_malloc_libc (bsz) ; } void *atsruntime_calloc_undef (size_t asz, size_t tsz) { return atsruntime_calloc_libc (asz, tsz) ; } void *atsruntime_realloc_undef (void *ptr, size_t bsz) { return atsruntime_realloc_libc (ptr, bsz) ; } // } // end of [extern "C"] #endif // ATS_MEMALLOC_LIBC /* ****** ****** */ #ifdef ATS_MEMALLOC_GCBDW extern "C" { // void atsruntime_mfree_undef (void *ptr) { atsruntime_mfree_gcbdw (ptr) ; return ; } extern void *atsruntime_malloc_undef (size_t bsz) { return atsruntime_malloc_gcbdw (bsz) ; } extern void *atsruntime_calloc_undef (size_t asz, size_t tsz) { return atsruntime_calloc_gcbdw (asz, tsz) ; } extern void *atsruntime_realloc_undef (void *ptr, size_t bsz) { return atsruntime_realloc_gcbdw (ptr, bsz) ; } // } // end of [extern "C"] // #endif // ATS_MEMALLOC_GCBDW /* ****** ****** */ /* end of [pats_ccomp_runtime_memalloc.c] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_basics.h0000644000175000017500000001016413431250607024626 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2012 *) */ /* ****** ****** */ #ifndef PATS_CCOMP_BASICS_H #define PATS_CCOMP_BASICS_H /* ****** ****** */ // // HX: boolean values // #define atsbool_true 1 #define atsbool_false 0 // #define atsptr_null ((void*)0) #define the_atsptr_null ((void*)0) // /* ****** ****** */ // #define ATSstruct struct // /* ****** ****** */ /* #define ATStypedef typedef */ // /* ****** ****** */ #ifndef \ ATS_EXTERN_DEF__ #define ATSextern() extern #else #define ATSextern() ATS_EXTERN_DEF__ #endif // #ifndef /* ****** ****** */ #ifndef \ ATS_STATIC_DEF__ #define ATSstatic() static #else #define ATSstatic() ATS_STATIC_DEF__ #endif // #ifndef /* ****** ****** */ #ifndef \ ATS_INLINE_DEF__ #define ATSinline() static inline #else #define ATSinline() ATS_INLINE_DEF__ #endif // #ifndef /* ****** ****** */ // #define ATSdynload() // #define ATSdynloadflag_sta(flag) #define ATSdynloadflag_ext(flag) ATSextern() int flag // #define ATSdynloadflag_init(flag) int flag = 0 // #define ATSdynloadflag_minit(flag) int flag = 0 // #define ATSdynloadset(flag) flag = 1 #define ATSdynloadfcall(dynloadfun) dynloadfun() // /* ****** ****** */ #ifndef \ _ATS_CCOMP_EXCEPTION_NONE_ // #define \ ATSdynexn_dec(d2c) \ atstype_exncon d2c = { 0, "__ATSEXNMSG__" } // #define \ ATSdynexn_extdec(d2c) ATSextern() atstype_exncon d2c // #define \ ATSdynexn_initize(d2c, exnmsg) the_atsexncon_initize(&(d2c), exnmsg) // #endif // end of [_ATS_CCOMP_EXCEPTION_NONE_] /* ****** ****** */ #define ATSassume(flag) void *flag = (void*)0 /* ****** ****** */ // #define ATSclosurerize_end(flab) #define ATSclosurerize_beg(flab, tenvs, targs, tres) // /* ****** ****** */ #define ATSdyncst_mac(d2c) #define ATSdyncst_castfn(d2c) #define ATSdyncst_extfun(d2c, targs, tres) ATSextern() tres d2c targs #define ATSdyncst_stafun(d2c, targs, tres) ATSstatic() tres d2c targs /* ****** ****** */ #define ATSdyncst_valimp(d2c, type) type d2c #define ATSdyncst_valdec(d2c, type) ATSextern() type d2c /* ****** ****** */ // #define \ ATSmainats_void_0(err) mainats_void_0() #define \ ATSmainats_argc_argv_0(argc, argv, err) mainats_argc_argv_0(argc, argv) #define \ ATSmainats_argc_argv_envp_0(argc, argv, envp, err) mainats_argc_argv_envp_0(argc, argv, envp) // #define \ ATSmainats_void_int(err) err = mainats_void_int() #define \ ATSmainats_argc_argv_int(argc, argv, err) err = mainats_argc_argv_int(argc, argv) #define \ ATSmainats_argc_argv_envp_int(argc, argv, envp, err) err = mainats_argc_argv_envp_int(argc, argv, envp) // /* ****** ****** */ // extern "C" { void atsruntime_raise (void *exn) ; void atsruntime_handle_uncaughtexn (void *exn0) ; void atsruntime_handle_unmatchedval (char *msg0) ; void atsruntime_handle_unmatchedarg (char *msg0) ; } // /* ****** ****** */ #endif /* PATS_CCOMP_BASICS_H */ /* ****** ****** */ /* end of [pats_ccomp_basics.h] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/ccomp/pats_ccomp_runtime.c0000644000175000017500000001016313431250607025037 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2013 *) */ /* ****** ****** */ // #include /* extern "C" void exit (int) ; // in [stdlib.h] */ // /* ****** ****** */ #include "pats_ccomp_basics.h" #include "pats_ccomp_typedefs.h" /* ****** ****** */ // // HX-2013-04: some pre-initialized exceptions // /* ****** ****** */ #ifndef \ _ATS_CCOMP_EXCEPTION_NONE_ // atstype_exncon ATSLIB_056_prelude__AssertExn = { 10, "AssertException" } ; atstype_exncon ATSLIB_056_prelude__GenerallyExn = { 20, "GenerallyException" } ; atstype_exncon ATSLIB_056_prelude__IllegalArgExn = { 30, "IllegalArgException" } ; // #endif // end of [_ATS_CCOMP_EXCEPTION_NONE_] /* ****** ****** */ #ifndef \ _ATS_CCOMP_EXCEPTION_NONE_ // atstype_exncon ATSLIB_056_prelude__NotSomeExn = { 40, "NotSomeException" } ; atstype_exncon ATSLIB_056_prelude__NotFoundExn = { 41, "NotFoundException" } ; // atstype_exncon ATSLIB_056_prelude__ListSubscriptExn = { 50, "ListSubscriptException" } ; atstype_exncon ATSLIB_056_prelude__StreamSubscriptExn = { 51, "StreamSubscriptException" } ; // atstype_exncon ATSLIB_056_prelude__ArraySubscriptExn = { 60, "ArraySubscriptException" } ; atstype_exncon ATSLIB_056_prelude__MatrixSubscriptExn = { 61, "MatrixSubscriptException" } ; // #endif // end of [_ATS_CCOMP_EXCEPTION_NONE_] /* ****** ****** */ #ifndef \ _ATS_CCOMP_EXCEPTION_NONE_ // extern "C" { void the_atsexncon_initize ( atstype_exncon *d2c, char* exnmsg ) { // static int the_atsexntag = 1024 ; // if (!d2c->exntag) { d2c->exntag = the_atsexntag ; the_atsexntag = the_atsexntag + 1 ; } d2c->exnmsg = exnmsg ; return ; } // end of [the_atsexncon_initize] } // end of [extern "C"] // #endif // end of [_ATS_CCOMP_EXCEPTION_NONE_] /* ****** ****** */ // // HX-2013: // for reporting pattern matching failure // extern "C" { void atsruntime_handle_unmatchedval (char *msg0) { fprintf ( stderr , "exit(ATS): unmatched value at run-time:\n%s\n", msg0 ) ; exit(1) ; return ; // deadcode } /* end of [atsruntime_handle_unmatchedval] */ } // end of [extern "C"] // /* ****** ****** */ // // HX-2014-06: // for reporting funarg-pattern matching failure // extern "C" { void atsruntime_handle_unmatchedarg (char *msg0) { fprintf ( stderr , "exit(ATS): unmatched funarg at run-time:\n%s\n", msg0 ) ; exit(1) ; return ; // deadcode } /* end of [atsruntime_handle_unmatchedarg] */ } // end of [extern "C"] // /* ****** ****** */ // // HX-2014-06: // for reporting failure due to uncaught exception // extern "C" { void atsruntime_handle_uncaughtexn_rest (atstype_exncon *exn0) { fprintf ( stderr , "exit(ATS): uncaught exception at run-time:\n%s(%d)\n", exn0->exnmsg, exn0->exntag ) ; exit(1) ; return ; // deadcode } /* end of [atsruntime_handle_uncaughtexn_rest] */ } // end of [extern "C"] // /* ****** ****** */ /* end of [pats_ccomp_runtime.c] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/H0000777000175000017500000000000013431250607021031 2ccompustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/0000755000175000017500000000000013431250607021154 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/0000755000175000017500000000000013431250607022137 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/0000755000175000017500000000000013431250607024326 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/DATS/0000755000175000017500000000000013431250607025061 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/DATS/GraphSearch_dfs.dats0000644000175000017500000000554613431250607030773 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom*) (* Start time: December, 2016 *) (* ****** ****** *) // staload "./GraphSearch.dats" // (* ****** ****** *) // staload "./../../../../STL/DATS/stack_stack.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theSearchStore_get ((*void*)): stack(node) extern fun{} theSearchStore_unget (stk: stack(node)): void // (* ****** ****** *) // implement theSearchStore_insert<> (nx) = let // val theStore = theSearchStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); stack_insert(theStore, nx); theSearchStore_unget(theStore) ) else ( theSearchStore_unget(theStore) ) // end // end of [theSearchStore_insert] // (* ****** ****** *) implement theSearchStore_choose<> ((*void*)) = opt where { // val theStore = theSearchStore_get() // val opt = stack_takeout_opt(theStore) // val () = theSearchStore_unget(theStore) // } (* end of [theSearchStore_choose] *) // (* ****** ****** *) // extern fun{} GraphSearch_dfs_stack (stk: stack(node)): void // implement {}(*tmp*) GraphSearch_dfs_stack (store) = () where { // val p_store = $UN.castvwtp1{ptr}(store) // implement theSearchStore_get<>() = $UN.castvwtp1{stack(node)}(p_store) implement theSearchStore_unget<>(store) = { prval () = $UN.cast2void(store) } // val () = GraphSearch((*void*)) // val () = stack_free_all(store) // } (* end of [GraphSearch_dfs_stack] *) // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/DATS/GraphSearch_bfs.dats0000644000175000017500000000554613431250607030771 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom*) (* Start time: December, 2016 *) (* ****** ****** *) // staload "./GraphSearch.dats" // (* ****** ****** *) // staload "./../../../../STL/DATS/queue_queue.dats" // (* ****** ****** *) // extern fun{} node_mark(node): void extern fun{} node_unmark(node): void // extern fun{} node_is_marked(node): bool overload .is_marked with node_is_marked // (* ****** ****** *) // extern fun{} theSearchStore_get ((*void*)): queue(node) extern fun{} theSearchStore_unget (stk: queue(node)): void // (* ****** ****** *) // implement theSearchStore_insert<> (nx) = let // val theStore = theSearchStore_get() // in // if ~(nx.is_marked()) then ( node_mark(nx); queue_insert(theStore, nx); theSearchStore_unget(theStore) ) else ( theSearchStore_unget(theStore) ) // end // end of [theSearchStore_insert] // (* ****** ****** *) implement theSearchStore_choose<> ((*void*)) = opt where { // val theStore = theSearchStore_get() // val opt = queue_takeout_opt(theStore) // val () = theSearchStore_unget(theStore) // } (* end of [theSearchStore_choose] *) // (* ****** ****** *) // extern fun{} GraphSearch_bfs_queue (stk: queue(node)): void // implement {}(*tmp*) GraphSearch_bfs_queue (store) = () where { // val p_store = $UN.castvwtp1{ptr}(store) // implement theSearchStore_get<>() = $UN.castvwtp1{queue(node)}(p_store) implement theSearchStore_unget<>(store) = { prval () = $UN.cast2void(store) } // val () = GraphSearch((*void*)) // val () = queue_free_all(store) // } (* end of [GraphSearch_bfs_queue] *) // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/DATS/GraphSearch.dats0000644000175000017500000000305713431250607030132 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom*) (* Start time: December, 2016 *) (* ****** ****** *) // #include "share/atspre_define.hats" // (* ****** ****** *) // #include "{$PATSLIBATS}/BUCS320/GraphSearch/DATS/GraphSearch.dats" // (* ****** ****** *) (* end of [GraphSearch.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/TEST/0000755000175000017500000000000013431250607025105 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/TEST/QueenPuzzle.dats0000644000175000017500000000323413431250607030253 0ustar brandonbrandon(* ****** ****** *) (* For testing GraphSearch_dfs *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // #include "share/HATS/atspre_staload_libats_ML.hats" // (* ****** ****** *) // staload "./../DATS/GraphSearch.dats" staload "./../DATS/GraphSearch_dfs.dats" // (* ****** ****** *) // staload "./../../../../STL/DATS/stack_stack.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement {}(*tmp*) node_get_neighbors (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void // implement QueenPuzzle_solve() = { // val store = stack_make_nil() val () = stack_insert(store, nil0) // val () = GraphSearch_dfs_stack(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) implement main0() = () where { // val () = QueenPuzzle_solve() // } (* end of [main0] *) (* ****** ****** *) (* end of [QueenPuzzle.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/TEST/Makefile0000644000175000017500000000305513431250607026550 0ustar brandonbrandon###### # PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt PATSLIB=$(PATSHOME)/ccomp/atslib/lib # ###### # CXXFLAGS = $(MYCFLAGS) # ###### # MYCFLAGS := -fpermissive -w # MYCFLAGS += -DATS_MEMALLOC_GCBDW # MYCFLAGS += -D_ATS_CCOMP_PRELUDE_NONE_ # MYCFLAGS += -D_ATS_CCOMP_EXCEPTION_NONE_ MYCFLAGS += -D_ATS_CCOMP_RUNTIME_TRYWITH_NONE_ # MYCFLAGS += -D_ATS_CCOMP_PRELUDE_USER_='"pats_ats2cpp_prelude.h"' # # MYCFLAGS += -D_ATSTYPE_VAR_SIZE_=1024 # MYCFLAGS += -I${PATSHOME}/contrib/ats2cpp MYCFLAGS += -I${PATSHOME}/contrib/ats2cpp/H MYCFLAGS += -I${PATSHOME}/contrib/ats2cpp/ccomp # ###### CC=gcc CPP=g++ ###### all:: ###### # all:: \ QueenPuzzle QueenPuzzle: \ QueenPuzzle_dats.c; $(CPP) $(CXXFLAGS) -o $@ $< -lgccpp -lgc QueenPuzzle_dats.c: QueenPuzzle.dats; $(PATSOPT) -o $@ -d $< # regress:: \ QueenPuzzle; ./$< cleanall:: ; rm -f QueenPuzzle # ###### # all:: \ GameOf24Play GameOf24Play: \ GameOf24Play_dats.c; $(CPP) $(CXXFLAGS) -o $@ $< -lgccpp -lgc GameOf24Play_dats.c: GameOf24Play.dats; $(PATSOPT) -o $@ -d $< # regress:: \ GameOf24Play; ./$< 3 3 8 8 cleanall:: ; rm -f GameOf24Play # ###### # all:: \ DoubletsPlay DoubletsPlay: \ DoubletsPlay_dats.c; \ $(CPP) $(CXXFLAGS) -o $@ $< -L$(PATSLIB) -latslib -lgccpp -lgc DoubletsPlay_dats.c: DoubletsPlay.dats; $(PATSOPT) -o $@ -d $< # regress:: \ DoubletsPlay; ./$< clean dirty cleanall:: ; rm -f DoubletsPlay # ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; rm -f *~ clean:: ; rm -f *_?ats.c clean:: ; rm -f *_?ats.o ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/TEST/GameOf24Play.dats0000644000175000017500000001136313431250607030120 0ustar brandonbrandon(* ****** ****** *) (* For testing GraphSearch_dfs *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // #include "share/HATS/atspre_staload_libats_ML.hats" #include "share/HATS/atslib_staload_libats_libc.hats" // (* ****** ****** *) // staload "./../DATS/GraphSearch.dats" staload "./../DATS/GraphSearch_dfs.dats" // (* ****** ****** *) // staload "./../../../../STL/DATS/stack_stack.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and fprint_expr : fprint_type(expr) // overload print with print_expr overload fprint with fprint_expr // implement print_expr(x0) = fprint_expr(stdout_ref, x0) // implement fprint_expr(out, x0) = ( case+ x0 of | EXPRval(v) => fprint(out, g0float2int_double_int(v)) | EXPRadd(e1, e2) => fprint!(out, "(", e1, "+", e2, ")") | EXPRsub(e1, e2) => fprint!(out, "(", e1, "-", e2, ")") | EXPRmul(e1, e2) => fprint!(out, "(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => fprint!(out, "(", e1, "/", e2, ")") ) // (* ****** ****** *) implement fprint_val = fprint_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = g0float_abs_double(!e - 0) < EPSILON implement expr_is_24(e) = g0float_abs_double(!e - 24) < EPSILON // (* ****** ****** *) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement {}(*tmp*) node_get_neighbors (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nsol = ref(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (!nsol := !nsol+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = stack_make_nil() // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(g0i2f(x))) // val () = stack_insert(store, nx) // in // GraphSearch_dfs_stack(store); if !nsol = 0 then println! ("There is no solution found!"); // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) implement main0 ( argc, argv ) = () where { // (* val () = println! ("Hello from [Game-of-24]!") *) // val () = $STDLIB.srandom ($UN.cast{uint}($TIME.time())) // val n1 = ( if argc >= 2 then g0string2int(argv[1]) else randint(13)+1 ) : int // end of [val] val n2 = ( if argc >= 3 then g0string2int(argv[2]) else randint(13)+1 ) : int // end of [val] val n3 = ( if argc >= 4 then g0string2int(argv[3]) else randint(13)+1 ) : int // end of [val] val n4 = ( if argc >= 5 then g0string2int(argv[4]) else randint(13)+1 ) : int // end of [val] // val () = println! ("n1 = ", n1) val () = println! ("n2 = ", n2) val () = println! ("n3 = ", n3) val () = println! ("n4 = ", n4) // val () = GameOf24Play(n1, n2, n3, n4) // } (* end of [main0] *) (* ****** ****** *) (* end of [GameOf24Play.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/BUCS520/GraphSearch/TEST/DoubletsPlay.dats0000644000175000017500000001027513431250607030376 0ustar brandonbrandon(* For Effective ATS *) (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // #include "share/HATS/atspre_staload_libats_ML.hats" // (* ****** ****** *) staload UN = $UNSAFE (* ****** ****** *) // staload "./../DATS/GraphSearch.dats" staload "./../DATS/GraphSearch_bfs.dats" // (* ****** ****** *) // staload "./../../../../STL/DATS/queue_queue.dats" // (* ****** ****** *) local typedef key = string and itm = int in (* in-of-local *) #include "libats/ML/HATS/myhashtblref.hats" end // end of [local] (* ****** ****** *) // extern fun theWords_map_search(string): bool // (* ****** ****** *) local val opt = fileref_open_opt ( "/usr/share/dict/words", file_mode_r ) (* end of [val] *) val-~Some_vt(filr) = opt // val theWords = myhashtbl_make_nil(128*1024) // val ws = streamize_fileref_line(filr) val () = ( ws ).foreach() (lam w =>theWords.insert_any(w, 0)) // (* val ((*void*)) = println! ("theWords.size() = ", theWords.size()) *) // in (* in-of-local *) implement theWords_map_search(w) = ( case+ theWords.search(w) of | ~Some_vt _ => true | ~None_vt _ => false ) end // end of [local] (* ****** ****** *) // extern fun // HX: implemented word_get_neighbors(word: string): stream_vt(string) // (* ****** ****** *) #define NAB 26 (* ****** ****** *) fun char_get_rest ( c0: natLt(NAB) ) : stream_vt(char) = let // val a = char2int0('a') // in ( ( ( ( NAB ).stream_vt_map (TYPE{int})(lam i => i) ).filter()(lam i => c0 != i) ).map(TYPE{char})(lam i => int2char0(a+i)) ) end // end of [char_get_rest] (* ****** ****** *) local fun string_replace_one {n:int}{i:nat | i < n} ( s0: string(n), i: int(i) ) : stream_vt(string(n)) = let val c = s0[i] in ( char_get_rest ( $UN.cast{natLt(NAB)}(c-'a') ) ).map(TYPE{string(n)}) (lam x => string_fset_at(s0, i2sz(i), ckastloc_charNZ(x))) end // end of [string_replace_one] fun string_replace_all {n:int} ( s0: string(n) ) : stream_vt(string(n)) = let // prval() = lemma_string_param(s0) // in // stream_vt_concat ( ( sz2i ( length(s0) ) ).stream_vt_map (TYPE{stream_vt(string(n))})(lam i => string_replace_one(s0, i)) ) (* stream_vt_concat *) // end // end of [string_replace_all] in // implement word_get_neighbors(w0) = ( string_replace_all(w0) ).filter()(lam w => theWords_map_search(w)) where { val w0 = g1ofg0(w0) } // end of [word_get_neighbors] // end // end of [local] (* ****** ****** *) assume node_type = list0(string) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement {}(*tmp*) node_get_neighbors (nx0) = let // val-cons0(w, _) = nx0 val ws = word_get_neighbors(w) // in // ws.map(TYPE{node})(lam w => cons0(w, nx0)) // end // end of [node_get_neighbors] (* ****** ****** *) // extern fun Doublets_play ( w1: string, w2: string ) : Option(list0(string)) // (* ****** ****** *) implement Doublets_play (w1, w2) = res[] where { // val res = ref(None) // val theMarked = myhashtbl_make_nil(1024) // implement node_mark<>(nx) = { // val- cons0(w, _) = nx val-~None_vt() = theMarked.insert(w, 0) // } // implement node_is_marked<>(nx) = let // val- cons0(w, _) = nx // val opt = theMarked.search(w) // in // case+ opt of | ~Some_vt _ => true | ~None_vt _ => false // end // end of [node_is_marked] // implement process_node<> (nx) = let val-cons0(w, _) = nx in if w = w2 then (res[] := Some(nx); false) else true end // end of [process_node] // val nx = list0_sing(w1) // val store = queue_make_nil() val p_store = $UN.castvwtp1{ptr}(store) // val () = queue_insert(store, nx) // val () = GraphSearch_bfs_queue(store) // } (* end of [Doublets_play] *) (* ****** ****** *) implement main0 ( argc, argv ) = let // val () = assertloc(argc >= 3) // val w1 = argv[1] and w2 = argv[2] // val opt = Doublets_play(w1, w2) // in // case+ opt of | None() => println! ( "[", w1, "] and [", w2, "] are not a doublet!" ) | Some(ws) => println! ( "[", w1, "] and [", w2, "] form a doublet: ", list0_reverse(ws) ) // end // end of [Doublets_play] (* ****** ****** *) (* end of [DoubletsPlay.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/0000755000175000017500000000000013431250607022065 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/0000755000175000017500000000000013431250607022617 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/math.cats0000644000175000017500000001506513431250607024433 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_MATH #define ATS2CPP_LIBATS_LIBC_CATS_MATH /* ****** ****** */ #include /* ****** ****** */ #define atslib_libats_libc_isfinite_float isfinite #define atslib_libats_libc_isfinite_double isfinite #define atslib_libats_libc_isfinite_ldouble isfinite /* ****** ****** */ #define atslib_libats_libc_isnormal_float isnormal #define atslib_libats_libc_isnormal_double isnormal #define atslib_libats_libc_isnormal_ldouble isnormal /* ****** ****** */ #define atslib_libats_libc_isinf_float isinf #define atslib_libats_libc_isinf_double isinf #define atslib_libats_libc_isinf_ldouble isinf /* ****** ****** */ #define atslib_libats_libc_isnan_float isnan #define atslib_libats_libc_isnan_double isnan #define atslib_libats_libc_isnan_ldouble isnan /* ****** ****** */ #define atslib_libats_libc_fpclassify_float fpclassify #define atslib_libats_libc_fpclassify_double fpclassify #define atslib_libats_libc_fpclassify_ldouble fpclassify /* ****** ****** */ #define atslib_libats_libc_ceil_float ceilf #define atslib_libats_libc_ceil_double ceil #define atslib_libats_libc_ceil_ldouble ceill /* ****** ****** */ #define atslib_libats_libc_floor_float floorf #define atslib_libats_libc_floor_double floor #define atslib_libats_libc_floor_ldouble floorl /* ****** ****** */ #define atslib_libats_libc_round_float roundf #define atslib_libats_libc_round_double round #define atslib_libats_libc_round_ldouble roundl /* ****** ****** */ #define atslib_libats_libc_trunc_float truncf #define atslib_libats_libc_trunc_double trunc #define atslib_libats_libc_trunc_ldouble truncl /* ****** ****** */ #define atslib_libats_libc_fmod_float fmodf #define atslib_libats_libc_fmod_double fmod #define atslib_libats_libc_fmod_ldouble fmodl /* ****** ****** */ #define atslib_libats_libc_fmax_float fmaxf #define atslib_libats_libc_fmax_double fmax #define atslib_libats_libc_fmax_ldouble fmaxl /* ****** ****** */ #define atslib_libats_libc_fmin_float fminf #define atslib_libats_libc_fmin_double fmin #define atslib_libats_libc_fmin_ldouble fminl /* ****** ****** */ #define atslib_libats_libc_fdim_float fdimf #define atslib_libats_libc_fdim_double fdim #define atslib_libats_libc_fdim_ldouble fdiml /* ****** ****** */ #define atslib_libats_libc_fma_float fmaf #define atslib_libats_libc_fma_double fma #define atslib_libats_libc_fma_ldouble fmal /* ****** ****** */ #define atslib_libats_libc_sqrt_float sqrtf #define atslib_libats_libc_sqrt_double sqrt #define atslib_libats_libc_sqrt_ldouble sqrtl /* ****** ****** */ #define atslib_libats_libc_cbrt_float cbrtf #define atslib_libats_libc_cbrt_double cbrt #define atslib_libats_libc_cbrt_ldouble cbrtl /* ****** ****** */ #define atslib_libats_libc_pow_float powf #define atslib_libats_libc_pow_double pow #define atslib_libats_libc_pow_ldouble powl /* ****** ****** */ #define atslib_libats_libc_exp_float expf #define atslib_libats_libc_exp_double exp #define atslib_libats_libc_exp_ldouble expl /* ****** ****** */ // #define atslib_libats_libc_log_float logf #define atslib_libats_libc_log_double log #define atslib_libats_libc_log_ldouble logl // #define atslib_libats_libc_log10_float log10f #define atslib_libats_libc_log10_double log10 #define atslib_libats_libc_log10_ldouble log10l // /* ****** ****** */ // #define atslib_libats_libc_sin_float sinf #define atslib_libats_libc_sin_double sin #define atslib_libats_libc_sin_ldouble sinl // #define atslib_libats_libc_cos_float cosf #define atslib_libats_libc_cos_double cos #define atslib_libats_libc_cos_ldouble cosl // #define atslib_libats_libc_tan_float tanf #define atslib_libats_libc_tan_double tan #define atslib_libats_libc_tan_ldouble tanl // /* ****** ****** */ // #define atslib_libats_libc_asin_float asinf #define atslib_libats_libc_asin_double asin #define atslib_libats_libc_asin_ldouble asinl // #define atslib_libats_libc_acos_float acosf #define atslib_libats_libc_acos_double acos #define atslib_libats_libc_acos_ldouble cosl // #define atslib_libats_libc_atan_float atanf #define atslib_libats_libc_atan_double atan #define atslib_libats_libc_atan_ldouble atanl // #define atslib_libats_libc_atan2_float atan2f #define atslib_libats_libc_atan2_double atan2 #define atslib_libats_libc_atan2_ldouble atan2l // /* ****** ****** */ // #define atslib_libats_libc_sinh_float sinhf #define atslib_libats_libc_sinh_double sinh #define atslib_libats_libc_sinh_ldouble sinhl // #define atslib_libats_libc_cosh_float coshf #define atslib_libats_libc_cosh_double cosh #define atslib_libats_libc_cosh_ldouble coshl // #define atslib_libats_libc_tanh_float tanhf #define atslib_libats_libc_tanh_double tanh #define atslib_libats_libc_tanh_ldouble tanhl // /* ****** ****** */ #define atslib_libats_libc_asinh_float asinhf #define atslib_libats_libc_asinh_double asinh #define atslib_libats_libc_asinh_ldouble asinhl // #define atslib_libats_libc_acosh_float acoshf #define atslib_libats_libc_acosh_double acosh #define atslib_libats_libc_acosh_ldouble acoshl // #define atslib_libats_libc_atanh_float atanhf #define atslib_libats_libc_atanh_double atanh #define atslib_libats_libc_atanh_ldouble atanhl // /* ****** ****** */ #endif // ifndef ATS2CPP_LIBATS_LIBC_CATS_MATH /* ****** ****** */ /* end of [math.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/float.cats0000644000175000017500000000315413431250607024603 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: October, 2014 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_FLOAT #define ATS2CPP_LIBATS_LIBC_CATS_FLOAT /* ****** ****** */ #include /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_FLOAT) /* ****** ****** */ /* end of [float.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/unistd.cats0000644000175000017500000001076413431250607025011 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: April, 2012 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_UNISTD #define ATS2CPP_LIBATS_LIBC_CATS_UNISTD /* ****** ****** */ #include /* ****** ****** */ #define atslib_libats_libc_close close #define atslib_libats_libc_close0 atslib_libats_libc_close #define atslib_libats_libc_close1 atslib_libats_libc_close #define atslib_libats_libc_close0_exn atslib_libats_libc_close_exn #define atslib_libats_libc_close1_exn atslib_libats_libc_close_exn /* ****** ****** */ #define atslib_libats_libc_dup dup #define atslib_libats_libc_dup_fildes dup #define atslib_libats_libc_dup2 dup2 #define atslib_libats_libc_dup3 dup3 /* ****** ****** */ #define atslib_libats_libc_execv(path, argv) execv((char*)path, (char**)argv) #define atslib_libats_libc_execvp(path, argv) execvp((char*)path, (char**)argv) /* ****** ****** */ #define atslib_libats_libc_encrypt encrypt /* ****** ****** */ #define atslib_libats_libc_fork fork /* ****** ****** */ #define atslib_libats_libc_getcwd getcwd /* ****** ****** */ #define atslib_libats_libc_getlogin getlogin #define atslib_libats_libc_getlogin_r getlogin_r /* ****** ****** */ #define atslib_libats_libc_getpid getpid #define atslib_libats_libc_getppid getppid /* ****** ****** */ #define atslib_libats_libc_getuid getuid #define atslib_libats_libc_setuid setuid #define atslib_libats_libc_geteuid geteuid #define atslib_libats_libc_seteuid seteuid /* ****** ****** */ #define atslib_libats_libc_getgid getgid #define atslib_libats_libc_setgid setgid #define atslib_libats_libc_getegid getegid #define atslib_libats_libc_setegid setegid /* ****** ****** */ #define atslib_libats_libc_setreuid setreuid #define atslib_libats_libc_setregid setregid #define atslib_libats_libc_setresuid setresuid #define atslib_libats_libc_setresgid setresgid /* ****** ****** */ #define atslib_libats_libc_setfsuid setfsuid #define atslib_libats_libc_setfsgid setfsgid /* ****** ****** */ #define atslib_libats_libc_pause pause /* ****** ****** */ #define atslib_libats_libc_read_err read #define atslib_libats_libc_write_err write /* ****** ****** */ #define atslib_libats_libc_pread pread #define atslib_libats_libc_pwrite pwrite /* ****** ****** */ #define atslib_libats_libc_alarm alarm #define atslib_libats_libc_alarm_set alarm #define atslib_libats_libc_alarm_cancel() alarm(0) /* ****** ****** */ #define atslib_libats_libc_sleep_int sleep #define atslib_libats_libc_sleep_uint sleep /* ****** ****** */ #define atslib_libats_libc_usleep_int usleep #define atslib_libats_libc_usleep_uint usleep /* ****** ****** */ #define atslib_libats_libc_rmdir rmdir /* ****** ****** */ #define atslib_libats_libc_link link #define atslib_libats_libc_unlink unlink /* ****** ****** */ #define atslib_libats_libc_symlink symlink #define atslib_libats_libc_readlink readlink /* ****** ****** */ #define atslib_libats_libc_sync sync #define atslib_libats_libc_fsync fsync #define atslib_libats_libc_fdatasync fdatasync /* ****** ****** */ #define atslib_libats_libc_truncate truncate #define atslib_libats_libc_ftruncate ftruncate /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_UNISTD) /* ****** ****** */ /* end of [unistd.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/sys/0000755000175000017500000000000013431250607023435 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/sys/wait.cats0000644000175000017500000000341213431250607025255 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: October, 2013 *) */ /* ****** ****** */ #ifndef \ ATS2CPP_LIBATS_LIBC_CATS_SYS_WAIT #define \ ATS2CPP_LIBATS_LIBC_CATS_SYS_WAIT /* ****** ****** */ // #include // /* ****** ****** */ // #define \ atslib_libats_libc_wait_void() wait((int*)0) #define \ atslib_libats_libc_wait_status(x) wait((int*)x) // /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_SYS_WAIT) /* ****** ****** */ /* end of [wait.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/sys/stat.cats0000644000175000017500000000415613431250607025272 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef \ ATS2CPP_LIBATS_LIBC_CATS_SYS_STAT #define \ ATS2CPP_LIBATS_LIBC_CATS_SYS_STAT /* ****** ****** */ #include /* ****** ****** */ typedef struct stat atslib_libats_libc_stat_struct ; /* ****** ****** */ #define atslib_libats_libc_umask umask /* ****** ****** */ #define atslib_libats_libc_chmod chmod /* ****** ****** */ #define atslib_libats_libc_mkdir mkdir #define atslib_libats_libc_mkdirat mkdirat /* ****** ****** */ #define atslib_libats_libc_mkfifo mkfifo /* ****** ****** */ #define atslib_libats_libc_stat stat #define atslib_libats_libc_fstat fstat #define atslib_libats_libc_lstat lstat /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_SYS_STAT) /* ****** ****** */ /* end of [stat.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/sys/types.cats0000644000175000017500000000776713431250607025476 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef \ ATS2CPP_LIBATS_LIBC_CATS_SYS_TYPES #define \ ATS2CPP_LIBATS_LIBC_CATS_SYS_TYPES /* ****** ****** */ #include /* ****** ****** */ typedef mode_t atslib_libats_libc_mode_type ; /* ****** ****** */ // // HX-2013-8: // [atslib_libats_libc_time_type] is already // defined in [libats/libc/CATS/time.cats] // typedef time_t atslib_libats_libc_types_time_type ; // /* ****** ****** */ #if(0) // // HX-2013-05: where are they? // HX-2013-06: they are declared in [time.h] // typedef clock_t atslib_libats_libc_clock_type ; typedef clockid_t atslib_libats_libc_clockid_type ; #endif /* ****** ****** */ typedef ino_t atslib_libats_libc_ino_type ; typedef off_t atslib_libats_libc_off_type ; /* ****** ****** */ typedef pid_t atslib_libats_libc_pid_type ; typedef uid_t atslib_libats_libc_uid_type ; typedef gid_t atslib_libats_libc_gid_type ; /* ****** ****** */ ATSinline() atslib_libats_libc_mode_type atslib_libats_libc_lor_mode_mode ( atslib_libats_libc_mode_type m1 , atslib_libats_libc_mode_type m2 ) { return (m1 | m2) ; } // end of [atslib_libats_libc_lor_mode_mode] ATSinline() atslib_libats_libc_mode_type atslib_libats_libc_land_mode_mode ( atslib_libats_libc_mode_type m1 , atslib_libats_libc_mode_type m2 ) { return (m1 & m2) ; } // end of [atslib_libats_libc_land_mode_mode] /* ****** ****** */ ATSinline() atstype_bool atslib_libats_libc_lt_time_time ( atslib_libats_libc_types_time_type t1 , atslib_libats_libc_types_time_type t2 ) { return \ (t1 < t2 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_lt_time_time] ATSinline() atstype_bool atslib_libats_libc_lte_time_time ( atslib_libats_libc_types_time_type t1 , atslib_libats_libc_types_time_type t2 ) { return \ (t1 <= t2 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_lte_time_time] /* ****** ****** */ #define \ atslib_libats_libc_gt_time_time(t1, t2) \ atslib_libats_libc_lt_time_time(t2, t1) #define \ atslib_libats_libc_gte_time_time(t1, t2) \ atslib_libats_libc_lte_time_time(t2, t1) /* ****** ****** */ ATSinline() atstype_bool atslib_libats_libc_eq_time_time ( atslib_libats_libc_types_time_type t1 , atslib_libats_libc_types_time_type t2 ) { return (t1 == t2 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_eq_time_time] ATSinline() atstype_bool atslib_libats_libc_neq_time_time ( atslib_libats_libc_types_time_type t1 , atslib_libats_libc_types_time_type t2 ) { return (t1 != t2 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_neq_time_time] /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_SYS_TYPES) /* ****** ****** */ /* end of [types.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/stdlib.cats0000644000175000017500000001200213431250607024747 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef \ ATS2CPP_LIBATS_LIBC_CATS_STDLIB #define \ ATS2CPP_LIBATS_LIBC_CATS_STDLIB /* ****** ****** */ #include /* ****** ****** */ #define \ atslib_libats_libc_abort abort /* ****** ****** */ #define \ atslib_libats_libc__Exit _Exit /* ****** ****** */ #define \ atslib_libats_libc_atexit atexit /* ****** ****** */ #define atslib_libats_libc_abs abs #define atslib_libats_libc_labs labs #define atslib_libats_libc_llabs llabs /* ****** ****** */ #define atslib_libats_libc_div div #define atslib_libats_libc_ldiv ldiv #define atslib_libats_libc_lldiv lldiv /* ****** ****** */ #define atslib_libats_libc_a64l a64l #define atslib_libats_libc_l64a l64a /* ****** ****** */ #define atslib_libats_libc_atoi atoi #define atslib_libats_libc_atol atol #define atslib_libats_libc_atoll atoll /* ****** ****** */ #define atslib_libats_libc_atof atof /* ****** ****** */ #define \ atslib_libats_libc_strtol0(nptr, base) \ atslib_libats_libc_strtol_unsafe(nptr, 0, base) #define \ atslib_libats_libc_strtol1(nptr, endptr, base) \ atslib_libats_libc_strtol_unsafe(nptr, endptr, base) #define \ atslib_libats_libc_strtol_unsafe(nptr, endptr, base) \ strtol((char*)(nptr), (char**)(endptr), base) /* ****** ****** */ #define \ atslib_libats_libc_strtoll0(nptr, base) \ atslib_libats_libc_strtoll_unsafe(nptr, 0, base) #define \ atslib_libats_libc_strtoll1(nptr, endptr, base) \ atslib_libats_libc_strtoll_unsafe(nptr, endptr, base) #define \ atslib_libats_libc_strtoll_unsafe(nptr, endptr, base) \ strtoll((char*)(nptr), (char**)(endptr), base) /* ****** ****** */ #define \ atslib_libats_libc_strtof0(nptr) \ atslib_libats_libc_strtof_unsafe(nptr, 0) #define \ atslib_libats_libc_strtof1(nptr, endptr) \ atslib_libats_libc_strtof_unsafe(nptr, endptr) #define \ atslib_libats_libc_strtof_unsafe(nptr, endptr) \ strtof((char*)(nptr), (char**)(endptr)) /* ****** ****** */ #define \ atslib_libats_libc_strtod0(nptr) \ atslib_libats_libc_strtod_unsafe(nptr, 0) #define \ atslib_libats_libc_strtod1(nptr, endptr) \ atslib_libats_libc_strtod_unsafe(nptr, endptr) #define \ atslib_libats_libc_strtod_unsafe(nptr, endptr) \ strtod((char*)(nptr), (char**)(endptr)) /* ****** ****** */ #define atslib_libats_libc_getenv getenv #define atslib_libats_libc_putenv putenv #define atslib_libats_libc_setenv setenv #define atslib_libats_libc_unsetenv unsetenv /* ****** ****** */ #define atslib_libats_libc_rand rand #define atslib_libats_libc_srand srand #define atslib_libats_libc_rand_r rand_r /* ****** ****** */ #define atslib_libats_libc_random random #define atslib_libats_libc_srandom srandom /* ****** ****** */ // #define atslib_libats_libc_seed48 seed48 #define atslib_libats_libc_srand48 srand48 // #define atslib_libats_libc_drand48 drand48 #define atslib_libats_libc_erand48 erand48 #define atslib_libats_libc_lrand48 lrand48 #define atslib_libats_libc_nrand48 nrand48 #define atslib_libats_libc_mrand48 mrand48 #define atslib_libats_libc_jrand48 jrand48 #define atslib_libats_libc_lcong48 lcong48 // /* ****** ****** */ #define \ atslib_libats_libc_qsort\ (base, nmemb, size, compar) \ qsort(base, nmemb, size, (void*)compar) /* ****** ****** */ #define \ atslib_libats_libc_bsearch\ (key, base, nmemb, size, compar) \ bsearch(key, base, nmemb, size, (void*)compar) /* ****** ****** */ #define \ atslib_libats_libc_mkstemp mkstemp #define \ atslib_libats_libc_mkostemp mkostemp /* ****** ****** */ #define \ atslib_libats_libc_mfree_libc free #define \ atslib_libats_libc_malloc_libc malloc /* ****** ****** */ #define atslib_libats_libc_system system /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_STDLIB) /* ****** ****** */ /* end of [stdlib.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/time.cats0000644000175000017500000001062013431250607024430 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_TIME #define ATS2CPP_LIBATS_LIBC_CATS_TIME /* ****** ****** */ #include /* ****** ****** */ // typedef time_t atslib_libats_libc_time_type ; // typedef struct tm atslib_libats_libc_tm_struct_type ; // /* ****** ****** */ typedef clock_t atslib_libats_libc_clock_type ; /* ****** ****** */ typedef struct timespec atslib_libats_libc_timespec_type ; /* ****** ****** */ #define \ atslib_libats_libc_difftime difftime /* ****** ****** */ #define \ atslib_libats_libc_time_get() time((time_t*)0) ATSinline() atstype_bool atslib_libats_libc_time_getset ( atstype_ref tval ) { return (time((time_t*)tval) >= 0 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_time_getset] /* ****** ****** */ #define \ atslib_libats_libc_ctime ctime #define \ atslib_libats_libc_ctime_r ctime_r /* ****** ****** */ ATSinline() atstype_int atslib_libats_libc_tm_get_sec (atstype_ptr tm) { return ((struct tm*)tm)->tm_sec ; } // end of [atslib_libats_libc_tm_get_sec] ATSinline() atstype_int atslib_libats_libc_tm_get_min (atstype_ptr tm) { return ((struct tm*)tm)->tm_min ; } // end of [atslib_libats_libc_tm_get_min] ATSinline() atstype_int atslib_libats_libc_tm_get_hour (atstype_ptr tm) { return ((struct tm*)tm)->tm_hour ; } // end of [atslib_libats_libc_tm_get_hour] ATSinline() atstype_int atslib_libats_libc_tm_get_mday (atstype_ptr tm) { return ((struct tm*)tm)->tm_mday ; } // end of [atslib_libats_libc_tm_get_mday] ATSinline() atstype_int atslib_libats_libc_tm_get_mon (atstype_ptr tm) { return ((struct tm*)tm)->tm_mon ; } // end of [atslib_libats_libc_tm_get_mon] ATSinline() atstype_int atslib_libats_libc_tm_get_year (atstype_ptr tm) { return ((struct tm*)tm)->tm_year ; } // end of [atslib_libats_libc_tm_get_year] ATSinline() atstype_int atslib_libats_libc_tm_get_wday (atstype_ptr tm) { return ((struct tm*)tm)->tm_wday ; } // end of [atslib_libats_libc_tm_get_wday] ATSinline() atstype_int atslib_libats_libc_tm_get_yday (atstype_ptr tm) { return ((struct tm*)tm)->tm_yday ; } // end of [atslib_libats_libc_tm_get_yday] ATSinline() atstype_int atslib_libats_libc_tm_get_isdst (atstype_ptr tm) { return ((struct tm*)tm)->tm_isdst ; } // end of [atslib_libats_libc_tm_get_isdst] /* ****** ****** */ #define \ atslib_libats_libc_mktime mktime /* ****** ****** */ #define \ atslib_libats_libc_asctime asctime /* ****** ****** */ #define \ atslib_libats_libc_gmtime gmtime #define \ atslib_libats_libc_gmtime_r gmtime_r /* ****** ****** */ #define \ atslib_libats_libc_localtime localtime #define \ atslib_libats_libc_localtime_r localtime_r /* ****** ****** */ #define atslib_libats_libc_tzset tzset /* ****** ****** */ #define atslib_libats_libc_clock clock #define \ atslib_libats_libc_clock_getres clock_getres /* ****** ****** */ #define \ atslib_libats_libc_clock_gettime clock_gettime #define \ atslib_libats_libc_clock_settime clock_settime /* ****** ****** */ #endif // ifndef ATS2CPP_LIBATS_LIBC_CATS_TIME /* ****** ****** */ /* end of [time.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/strings.cats0000644000175000017500000000372013431250607025166 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_STRINGS #define ATS2CPP_LIBATS_LIBC_CATS_STRINGS /* ****** ****** */ #include /* ****** ****** */ #define atslib_libats_libc_index_int index #define atslib_libats_libc_index_char(c) index((int)c) #define atslib_libats_libc_rindex_int rindex #define atslib_libats_libc_rindex_char(c) rindex((int)c) /* ****** ****** */ #define atslib_libats_libc_strcasecmp strcasecmp #define atslib_libats_libc_strncasecmp strncasecmp /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_STRINGS) /* ****** ****** */ /* end of [strings.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/dirent.cats0000644000175000017500000000575513431250607024774 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_DIRENT #define ATS2CPP_LIBATS_LIBC_CATS_DIRENT /* ****** ****** */ #include #include // HX: after sys/types /* ****** ****** */ // typedef DIR atslib_libats_libc_DIR_type ; // typedef struct dirent atslib_libats_libc_dirent_type ; // /* ****** ****** */ #define \ atslib_libats_libc_dirent_get_d_ino(ent) \ (((atslib_libats_libc_dirent_type*)ent)->d_ino) #define \ atslib_libats_libc_dirent_get_d_name(ent) \ (((atslib_libats_libc_dirent_type*)ent)->d_name) /* ****** ****** */ #define \ atslib_libats_libc_direntp_get_d_name(entp) \ (((atslib_libats_libc_dirent_type*)entp)->d_name) /* ****** ****** */ #define \ atslib_libats_libc_direntp_free(x) atspre_mfree_gc(x) /* ****** ****** */ #define atslib_libats_libc_alphasort alphasort #define atslib_libats_libc_versionsort versionsort /* ****** ****** */ #define atslib_libats_libc_opendir opendir /* ****** ****** */ #define atslib_libats_libc_closedir closedir /* ****** ****** */ #define \ atslib_libats_libc_readdir readdir #define \ atslib_libats_libc_readdir_r(dirp, ent, res) \ readdir_r((DIR*)dirp, (struct dirent*)ent, (struct dirent**)res) /* ****** ****** */ #define \ atslib_libats_libc_scandir(dirp, namelst, filter, compar) \ scandir((char*)dirp, (struct dirent***)namelst, (void*)filter, (void*)compar) /* ****** ****** */ #define \ atslib_libats_libc_rewinddir rewinddir /* ****** ****** */ #define atslib_libats_libc_seekdir seekdir #define atslib_libats_libc_telldir telldir /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_DIRENT) /* ****** ****** */ /* end of [dirent.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/signal.cats0000644000175000017500000000617113431250607024755 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: April, 2014 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_SIGNAL #define ATS2CPP_LIBATS_LIBC_CATS_SIGNAL /* ****** ****** */ #include /* ****** ****** */ // typedef int signum_t ; // typedef void (*sighandler_t)(signum_t) ; // /* ****** ****** */ typedef struct sigaction atslib_libats_libc_sigaction_struct ; /* ****** ****** */ #define atslib_libats_libc_signal signal /* ****** ****** */ #define atslib_libats_libc_sigaddset sigaddset #define atslib_libats_libc_sigdelset sigdelset #define atslib_libats_libc_sigemptyset sigemptyset #define atslib_libats_libc_sigfillset sigfillset /* ****** ****** */ #define \ atslib_libats_libc_sigaction sigaction #define \ atslib_libats_libc_sigaction_null(sgn, act) \ atslib_libats_libc_sigaction(sgn, act, (atslib_libats_libc_sigaction_struct*)0) /* ****** ****** */ #define atslib_libats_libc_kill kill #define atslib_libats_libc_killpg killpg #define atslib_libats_libc_raise raise /* ****** ****** */ #define atslib_libats_libc_sigset sigset #define atslib_libats_libc_sighold sighold #define atslib_libats_libc_sigignore sigignore #define atslib_libats_libc_sigrelse sigrelse /* ****** ****** */ #define atslib_libats_libc_sigwait sigwait /* ****** ****** */ #define atslib_libats_libc_sigpause sigpause #define atslib_libats_libc_sigsuspend sigsuspend /* ****** ****** */ #define atslib_libats_libc_sigpending sigpending #define atslib_libats_libc_siginterrupt siginterrupt /* ****** ****** */ #define atslib_libats_libc_psignal psignal /* ****** ****** */ /* // // declared in // extern "C" { char* strsignal(int signum) ; } // end of [extern "C"] */ #define atslib_libats_libc_strsignal strsignal /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_SIGNAL) /* ****** ****** */ /* end of [signal.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/string.cats0000644000175000017500000000707113431250607025006 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_STRING #define ATS2CPP_LIBATS_LIBC_CATS_STRING /* ****** ****** */ #include #include /* ****** ****** */ #define atslib_libats_libc_strcmp strcmp #define atslib_libats_libc_strncmp strncmp /* ****** ****** */ #define atslib_libats_libc_strcoll strcoll /* ****** ****** */ #define atslib_libats_libc_strspn strspn #define atslib_libats_libc_strcspn strcspn /* ****** ****** */ #define atslib_libats_libc_strlen strlen #define atslib_libats_libc_strnlen strnlen /* ****** ****** */ #define atslib_libats_libc_strcat strcat #define atslib_libats_libc_strcat_unsafe strcat #define atslib_libats_libc_strncat_unsafe strncat /* ****** ****** */ #define atslib_libats_libc_strcpy strcpy #define atslib_libats_libc_strcpy_unsafe strcpy #define atslib_libats_libc_strncpy_unsafe strncpy /* ****** ****** */ #define atslib_libats_libc_strdup strdup #define atslib_libats_libc_strndup strndup #define atslib_libats_libc_strdup_free atsruntime_mfree_libc #define atslib_libats_libc_strdupa strdupa #define atslib_libats_libc_strndupa strndupa #define atslib_libats_libc_strdupa_free atsruntime_afree_libc /* ****** ****** */ #define atslib_libats_libc_strfry strfry /* ****** ****** */ #define atslib_libats_libc_memcpy memcpy #define atslib_libats_libc_memcpy_unsafe memcpy /* ****** ****** */ #define atslib_libats_libc_memccpy_unsafe memccpy /* ****** ****** */ #define atslib_libats_libc_mempcpy mempcpy #define atslib_libats_libc_mempcpy_unsafe mempcpy /* ****** ****** */ #define atslib_libats_libc_memset_unsafe memset /* ****** ****** */ #define atslib_libats_libc_memmove_unsafe memmove /* ****** ****** */ #define atslib_libats_libc_strerror strerror #define atslib_libats_libc_strerror_r strerror_r /* ****** ****** */ ATSinline() atstype_ptr atslib_libats_libc_strdup_gc (atstype_string src) { char *dst ; size_t len, len1 ; len = atslib_libats_libc_strlen((char*)src) ; len1 = len + 1; dst = atspre_malloc_gc(len1) ; return atslib_libats_libc_memcpy(dst, src, len1) ; } // end of [atslib_libats_libc_strdup_gc] /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_STRING) /* ****** ****** */ /* end of [string.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/fcntl.cats0000644000175000017500000000455013431250607024605 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_FCNTL #define ATS2CPP_LIBATS_LIBC_CATS_FCNTL /* ****** ****** */ #include #include // HX: after sys/types /* ****** ****** */ #define atslib_libats_libc_fildes_get_int(fd) (fd) /* ****** ****** */ ATSinline() atstype_bool atslib_libats_libc_fildes_isgtez (atstype_int fd) { return (fd >= 0 ? atsbool_true : atsbool_false) ; } // end of [atslib_libats_libc_fildes_isgtez] /* ****** ****** */ #define \ atslib_libats_libc_fcntlflags_lor(x1, x2) ((x1)|(x2)) /* ****** ****** */ #define \ atslib_libats_libc_fcntl_getfl(fd) fcntl(fd, F_GETFL) #define \ atslib_libats_libc_fcntl_setfl(fd, flags) fcntl(fd, F_SETFL, flags) /* ****** ****** */ #define \ atslib_libats_libc_open_flags(path, flags) open((char*)path, flags) #define \ atslib_libats_libc_open_flags_mode(path, flags, mode) open((char*)path, flags, mode) /* ****** ****** */ #endif // ifndef ATS2CPP_LIBATS_LIBC_CATS_FCNTL /* ****** ****** */ /* end of [fcntl.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/stdio.cats0000644000175000017500000001432213431250607024617 0ustar brandonbrandon/* (* ** ATS2CPP: ** API for ATSLIB/stdio *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_STDIO #define ATS2CPP_LIBATS_LIBC_CATS_STDIO /* ****** ****** */ // #include #include /* extern void perror (const char* str) ; // in [stdio.h] extern void exit (int status) ; // in [stdlib.h] */ // /* ****** ****** */ #define \ atslib_libats_libc_clearerr(p) clearerr(((FILE*)p)) /* ****** ****** */ #define atslib_libats_libc_fopen fopen #define atslib_libats_libc_fopen_ref_exn atslib_libats_libc_fopen_exn /* ****** ****** */ #define atslib_libats_libc_fclose fclose #define atslib_libats_libc_fclose0 atslib_libats_libc_fclose #define atslib_libats_libc_fclose1 atslib_libats_libc_fclose #define atslib_libats_libc_fclose0_exn atslib_libats_libc_fclose_exn #define atslib_libats_libc_fclose1_exn atslib_libats_libc_fclose_exn /* #define atslib_libats_libc_fclose_stdin() atslib_libats_libc_fclose_exn(stdin) #define atslib_libats_libc_fclose_stdout() atslib_libats_libc_fclose_exn(stdout) #define atslib_libats_libc_fclose_stderr() atslib_libats_libc_fclose_exn(stderr) */ /* ****** ****** */ // #define atslib_libats_libc_fflush fflush #define atslib_libats_libc_fflush0 atslib_libats_libc_fflush #define atslib_libats_libc_fflush1 atslib_libats_libc_fflush #define atslib_libats_libc_fflush0_exn atslib_libats_libc_fflush_exn #define atslib_libats_libc_fflush1_exn atslib_libats_libc_fflush_exn // #define atslib_libats_libc_fflush_all() atslib_libats_libc_fclose_exn((FILE*)0) #define atslib_libats_libc_fflush_stdout() atslib_libats_libc_fclose_exn(stdout) // /* ****** ****** */ #define atslib_libats_libc_fileno fileno #define atslib_libats_libc_fileno0 atslib_libats_libc_fileno #define atslib_libats_libc_fileno1 atslib_libats_libc_fileno /* ****** ****** */ #define atslib_libats_libc_fdopen fdopen /* ****** ****** */ #define \ atslib_libats_libc_feof(p) feof(((FILE*)p)) #define atslib_libats_libc_feof0 atslib_libats_libc_feof #define atslib_libats_libc_feof1 atslib_libats_libc_feof /* ****** ****** */ #define \ atslib_libats_libc_ferror(p) ferror(((FILE*)p)) #define atslib_libats_libc_ferror0 atslib_libats_libc_ferror #define atslib_libats_libc_ferror1 atslib_libats_libc_ferror /* ****** ****** */ #define atslib_libats_libc_fgetc fgetc #define atslib_libats_libc_fgetc0 atslib_libats_libc_fgetc #define atslib_libats_libc_fgetc1 atslib_libats_libc_fgetc /* ****** ****** */ #define atslib_libats_libc_getchar getchar #define atslib_libats_libc_getchar0 atslib_libats_libc_getchar #define atslib_libats_libc_getchar1 atslib_libats_libc_getchar /* ****** ****** */ #define atslib_libats_libc_fputc fputc #define atslib_libats_libc_fputc0_int atslib_libats_libc_fputc #define atslib_libats_libc_fputc0_char(c, fp) atslib_libats_libc_fputc((int)c, fp) #define atslib_libats_libc_fputc1_int atslib_libats_libc_fputc #define atslib_libats_libc_fputc1_char(c, fp) atslib_libats_libc_fputc((int)c, fp) #define atslib_libats_libc_fputc0_exn_int atslib_libats_libc_fputc_exn #define atslib_libats_libc_fputc0_exn_char atslib_libats_libc_fputc_exn /* ****** ****** */ #define atslib_libats_libc_putchar putchar #define atslib_libats_libc_putchar0 atslib_libats_libc_putchar #define atslib_libats_libc_putchar1 atslib_libats_libc_putchar /* ****** ****** */ #define atslib_libats_libc_fgets fgets #define atslib_libats_libc_fgets0 atslib_libats_libc_fgets #define atslib_libats_libc_fgets1 atslib_libats_libc_fgets #define atslib_libats_libc_fgets1_err atslib_libats_libc_fgets #define atslib_libats_libc_fgets0_gc atslib_libats_libc_fgets_gc #define atslib_libats_libc_fgets1_gc atslib_libats_libc_fgets_gc /* ****** ****** */ #define atslib_libats_libc_fputs fputs #define atslib_libats_libc_fputs0 atslib_libats_libc_fputs #define atslib_libats_libc_fputs1 atslib_libats_libc_fputs #define atslib_libats_libc_fputs0_exn atslib_libats_libc_fputs_exn #define atslib_libats_libc_fputs1_exn atslib_libats_libc_fputs_exn /* ****** ****** */ #define atslib_libats_libc_puts puts /* ****** ****** */ #define atslib_libats_libc_fread fread #define atslib_libats_libc_fread0 atslib_libats_libc_fread #define atslib_libats_libc_fread1 atslib_libats_libc_fread /* ****** ****** */ #define atslib_libats_libc_fwrite fwrite #define atslib_libats_libc_fwrite0 atslib_libats_libc_fwrite #define atslib_libats_libc_fwrite1 atslib_libats_libc_fwrite /* ****** ****** */ #define atslib_libats_libc_fseek fseek #define atslib_libats_libc_fseek0 atslib_libats_libc_fseek #define atslib_libats_libc_fseek1 atslib_libats_libc_fseek /* ****** ****** */ #define atslib_libats_libc_ftell ftell #define atslib_libats_libc_ftell0 atslib_libats_libc_ftell #define atslib_libats_libc_ftell1 atslib_libats_libc_ftell /* ****** ****** */ #define atslib_libats_libc_perror perror /* ****** ****** */ #define atslib_libats_libc_popen popen /* ****** ****** */ #define atslib_libats_libc_pclose0_exn atslib_libats_libc_pclose_exn #define atslib_libats_libc_pclose1_exn atslib_libats_libc_pclose_exn /* ****** ****** */ #define atslib_libats_libc_remove remove #define atslib_libats_libc_rename rename /* ****** ****** */ #define atslib_libats_libc_rewind rewind #define atslib_libats_libc_rewind0 atslib_libats_libc_rewind #define atslib_libats_libc_rewind1 atslib_libats_libc_rewind /* ****** ****** */ #define atslib_libats_libc_tmpfile tmpfile #define atslib_libats_libc_tmpfile_ref_exn atslib_libats_libc_tmpfile_exn /* ****** ****** */ #endif // end of ifndef(ATS2CPP_LIBATS_LIBC_CATS_STDIO) /* ****** ****** */ /* end of [stdio.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/libc/CATS/errno.cats0000644000175000017500000000430713431250607024624 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/libc/CATS/CODEGEN/errno.atxt ** Time of generation: Mon Sep 5 20:36:41 2016 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: February, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_LIBC_CATS_ERRNO #define ATS2CPP_LIBATS_LIBC_CATS_ERRNO /* ****** ****** */ #define ENONE 0 /* ****** ****** */ // #include // typedef int errno_t ; // /* ****** ****** */ #define \ atslib_libats_libc_the_errno_get() (errno) #define \ atslib_libats_libc_the_errno_set(x) (errno = (x)) #define \ atslib_libats_libc_the_errno_reset() (errno = ENONE) /* ****** ****** */ ATSinline() atstype_bool atslib_libats_libc_the_errno_test(errno_t x) { // return (errno==(x)) ? atsbool_true : atsbool_false ; // } /* end of [atslib_libats_libc_the_errno_test] */ /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_LIBC_CATS_ERRNO) /* ****** ****** */ /* end of [errno.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/CATS/0000755000175000017500000000000013431250607021706 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/CATS/deqarray.cats0000644000175000017500000001566213431250607024404 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: October, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_CATS_DEQARRAY #define ATS2CPP_LIBATS_CATS_DEQARRAY /* ****** ****** */ typedef struct { atstype_ptr deqarray_beg ; // the beg pointer atstype_ptr deqarray_end ; // the end pointer atstype_ref deqarray_frnt ; // the frontal pointer atstype_ref deqarray_rear ; // the rear pointer } atslib_deqarray_struct ; /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_make_ngc__tsz ( atstype_ptr p , atstype_ptr A , atstype_size m , atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; // p_deq->deqarray_beg = A ; p_deq->deqarray_end = (char*)A + (m+1) * tsz ; p_deq->deqarray_frnt = A ; p_deq->deqarray_rear = A ; // return p_deq ; // } // end of [atslib_deqarray_make_ngc__tsz] /* ****** ****** */ ATSinline() atstype_size atslib_deqarray_get_size__tsz ( atstype_ptr p, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; // void *p_frnt = p_deq->deqarray_frnt ; void *p_rear = p_deq->deqarray_rear ; // if (p_frnt >= p_rear) { return ((char*)p_frnt-(char*)p_rear)/tsz ; } else { return ((char*)p_frnt-(char*)p_deq->deqarray_beg+(char*)p_deq->deqarray_end-(char*)p_rear)/tsz ; } /* end of [if] */ } // end of [atslib_deqarray_get_size__tsz] /* ****** ****** */ ATSinline() atstype_size atslib_deqarray_get_capacity__tsz ( atstype_ptr p, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; return (((char*)(p_deq->deqarray_end)-(char*)(p_deq->deqarray_beg))/tsz)-1; } // end of [atslib_deqarray_get_capacity__tsz] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_get_ptrbeg (atstype_ptr p) { return ((atslib_deqarray_struct*)p)->deqarray_beg ; } // end of [atslib_deqarray_get_ptrbeg] ATSinline() atstype_ptr atslib_deqarray_get_ptrend (atstype_ptr p) { return ((atslib_deqarray_struct*)p)->deqarray_end ; } // end of [atslib_deqarray_get_ptrend] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_get_ptrfrnt (atstype_ptr p) { return ((atslib_deqarray_struct*)p)->deqarray_frnt ; } // end of [atslib_deqarray_get_ptrfrnt] ATSinline() atsvoid_t0ype atslib_deqarray_set_ptrfrnt (atstype_ptr p, atstype_ptr p2) { ((atslib_deqarray_struct*)p)->deqarray_frnt = p2 ; return ; } // end of [atslib_deqarray_set_ptrfrnt] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_get_ptrrear (atstype_ptr p) { return ((atslib_deqarray_struct*)p)->deqarray_rear ; } // end of [atslib_deqarray_get_ptrrear] ATSinline() atsvoid_t0ype atslib_deqarray_set_ptrrear (atstype_ptr p, atstype_ptr p2) { ((atslib_deqarray_struct*)p)->deqarray_rear = p2 ; return ; } // end of [atslib_deqarray_set_ptrrear] /* ****** ****** */ ATSinline() atsvoid_t0ype atslib_deqarray_free_nil (atstype_ptr p) { atstype_ptr p_beg ; p_beg = ((atslib_deqarray_struct*)p)->deqarray_beg ; ATS_MFREE(p) ; ATS_MFREE(p_beg) ; return ; } // end of [atslib_deqarray_free_nil] /* ****** ****** */ ATSinline() atstype_bool atslib_deqarray_is_nil (atstype_ptr p) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; return (p_deq->deqarray_frnt == p_deq->deqarray_rear ? atsbool_true : atsbool_false) ; } // end of [atslib_deqarray_is_nil] ATSinline() atstype_bool atslib_deqarray_isnot_nil (atstype_ptr p) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; return (p_deq->deqarray_frnt != p_deq->deqarray_rear ? atsbool_true : atsbool_false) ; } // end of [atslib_deqarray_isnot_nil] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_ptr_succ__tsz ( atstype_ptr p , atstype_ptr p_elt, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; char *p1_elt = (char*)p_elt+tsz ; return (p1_elt < (char*)p_deq->deqarray_end) ? p1_elt : p_deq->deqarray_beg ; } // end of [atslib_deqarray_ptr_succ__tsz] /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_ptr_pred__tsz ( atstype_ptr p , atstype_ptr p_elt, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; char *p_beg = (char*)p_deq->deqarray_beg ; return ((char*)p_elt > p_beg) ? (char*)p_elt-tsz : (char*)p_deq->deqarray_end-tsz ; } // end of [atslib_deqarray_ptr_pred__tsz] /* ****** ****** */ ATSinline() atstype_bool atslib_deqarray_is_full__tsz (atstype_ptr p, atstype_size tsz) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; // /* fprintf ( stdout , "atslib_deqarray_is_full__tsz: tsz = %lu\n", tsz ) ; // fprintf */ void *p_frnt = p_deq->deqarray_frnt ; void *p_rear = p_deq->deqarray_rear ; // void *p1_frnt = atslib_deqarray_ptr_succ__tsz(p_deq, p_frnt, tsz) ; // return (p1_frnt==p_rear ? atsbool_true : atsbool_false) ; } // end of [atslib_deqarray_is_full__tsz] #if(0) ATSinline() atstype_bool atslib_deqarray_isnot_full__tsz (atstype_ptr p, atstype_size tsz) { return (atslib_deqarray_is_full__tsz(p, tsz)) ? atsbool_false : atsbool_true ; } // end of [atslib_deqarray_isnot_full__tsz] #endif /* ****** ****** */ ATSinline() atstype_ptr atslib_deqarray_getref_at__tsz ( atstype_ptr p , atstype_size i, atstype_size tsz ) { atslib_deqarray_struct *p_deq ; p_deq = (atslib_deqarray_struct*)p ; // void *p_rear_i = (char*)p_deq->deqarray_rear + i * tsz ; // if (p_rear_i >= p_deq->deqarray_end) p_rear_i = (char*)p_deq->deqarray_beg + (p_rear_i - p_deq->deqarray_end) ; // return p_rear_i ; // } // end of [atslib_deqarray_getref_at__tsz] /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_CATS_DEQARRAY) /* ****** ****** */ /* end of [deqarray.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/CATS/dynarray.cats0000644000175000017500000000331613431250607024416 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_CATS_DYNARRAY #define ATS2CPP_LIBATS_CATS_DYNARRAY /* ****** ****** */ #include /* ****** ****** */ #define atslib_dynarray_memcpy memcpy #define atslib_dynarray_memmove memmove /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_CATS_DYNARRAY) /* ****** ****** */ /* end of [dynarray.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/CATS/hashfun.cats0000644000175000017500000000363513431250607024225 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: March, 2014 *) */ /* ****** ****** */ #ifndef ATSLIB_LIBATS_CATS_HASHFUN #define ATSLIB_LIBATS_CATS_HASHFUN /* ****** ****** */ #if(0) ATSinline() atstype_uint32 atslib_inthash_jenkins (atstype_uint32 a) { a = (a+0x7ed55d16) + (a<<12); a = (a^0xc761c23c) ^ (a>>19); a = (a+0x165667b1) + (a<< 5); a = (a+0xd3a2646c) ^ (a<< 9); a = (a+0xfd7046c5) + (a<< 3); a = (a^0xb55a4f09) ^ (a>>16); return a; } /* end of [atslib_inthash_jenkins] */ #endif // #if(0) /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_CATS_HASHFUN /* ****** ****** */ /* end of [hashfun.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/CATS/stkarray.cats0000644000175000017500000001162313431250607024425 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_CATS_STKARRAY #define ATS2CPP_LIBATS_CATS_STKARRAY /* ****** ****** */ typedef struct { atstype_ptr stkarray_beg ; // the beg pointer atstype_ptr stkarray_end ; // the end pointer atstype_ref stkarray_cur ; // the current pointer } atslib_stkarray_struct ; /* ****** ****** */ ATSinline() atstype_ptr atslib_stkarray_make_ngc__tsz ( atstype_ptr p , atstype_ptr A , atstype_size m , atstype_size tsz ) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; p_stk->stkarray_beg = A ; p_stk->stkarray_end = (char*)A + m * tsz ; p_stk->stkarray_cur = A ; return p_stk ; } // end of [atslib_stkarray_make_ngc__tsz] /* ****** ****** */ ATSinline() atstype_size atslib_stkarray_get_size__tsz ( atstype_ptr p, atstype_size tsz ) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return ((char*)(p_stk->stkarray_cur) - (char*)(p_stk->stkarray_beg)) / tsz ; } // end of [atslib_stkarray_get_size__tsz] ATSinline() atstype_size atslib_stkarray_get_capacity__tsz ( atstype_ptr p, atstype_size tsz ) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return ((char*)(p_stk->stkarray_end) - (char*)(p_stk->stkarray_beg)) / tsz ; } // end of [atslib_stkarray_get_capacity__tsz] /* ****** ****** */ ATSinline() atstype_ptr atslib_stkarray_get_ptrbeg (atstype_ptr p) { return ((atslib_stkarray_struct*)p)->stkarray_beg ; } // end of [atslib_stkarray_get_ptrbeg] /* ****** ****** */ ATSinline() atstype_ptr atslib_stkarray_get_ptrcur (atstype_ptr p) { return ((atslib_stkarray_struct*)p)->stkarray_cur ; } // end of [atslib_stkarray_get_ptrcur] ATSinline() atsvoid_t0ype atslib_stkarray_set_ptrcur (atstype_ptr p, atstype_ptr p2) { ((atslib_stkarray_struct*)p)->stkarray_cur = p2 ; return ; } // end of [atslib_stkarray_set_ptrcur] /* ****** ****** */ ATSinline() atsvoid_t0ype atslib_stkarray_free_nil (atstype_ptr p) { atstype_ptr p_beg ; p_beg = ((atslib_stkarray_struct*)p)->stkarray_beg ; ATS_MFREE(p) ; ATS_MFREE(p_beg) ; return ; } // end of [atslib_stkarray_free_nil] /* ****** ****** */ ATSinline() atstype_ptr atslib_stkarray_getfree_arrayptr (atstype_ptr p) { atstype_ptr p_beg ; p_beg = ((atslib_stkarray_struct*)p)->stkarray_beg ; ATS_MFREE(p) ; return p_beg ; } // end of [atslib_stkarray_getfree_arrayptr] /* ****** ****** */ ATSinline() atstype_bool atslib_stkarray_is_nil (atstype_ptr p) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return (p_stk->stkarray_beg==p_stk->stkarray_cur ? atsbool_true : atsbool_false) ; } // end of [atslib_stkarray_is_nil] ATSinline() atstype_bool atslib_stkarray_isnot_nil (atstype_ptr p) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return (p_stk->stkarray_beg < p_stk->stkarray_cur ? atsbool_true : atsbool_false) ; } // end of [atslib_stkarray_isnot_nil] /* ****** ****** */ ATSinline() atstype_bool atslib_stkarray_is_full (atstype_ptr p) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return (p_stk->stkarray_cur==p_stk->stkarray_end ? atsbool_true : atsbool_false) ; } // end of [atslib_stkarray_is_full] ATSinline() atstype_bool atslib_stkarray_isnot_full (atstype_ptr p) { atslib_stkarray_struct *p_stk ; p_stk = (atslib_stkarray_struct*)p ; return (p_stk->stkarray_cur < p_stk->stkarray_end ? atsbool_true : atsbool_false) ; } // end of [atslib_stkarray_isnot_full] /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_CATS_STKARRAY) /* ****** ****** */ /* end of [stkarray.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/CATS/qlist.cats0000644000175000017500000000333213431250607023717 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: March, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_CATS_QLIST #define ATS2CPP_LIBATS_CATS_QLIST /* ****** ****** */ typedef struct { atstype_ptr qlist_nxf ; // the front pointer atstype_ref qlist_nxr ; // the address of rear pointer } atslib_qlist_struct ; /* ****** ****** */ #endif // ifndef ATS2CPP_LIBATS_CATS_QLIST /* ****** ****** */ /* end of [qlist.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/CATS/stringbuf.cats0000644000175000017500000000471113431250607024570 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: November, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_CATS_STRINGBUF #define ATS2CPP_LIBATS_CATS_STRINGBUF /* ****** ****** */ #include #include /* ****** ****** */ #define atslib_stringbuf_memcpy memcpy #define atslib_stringbuf_memmove memmove /* ****** ****** */ /* extern fun _stringbuf_pow2min (sizeGte(1), size_t): sizeGte(1) = "mac#%" implement _stringbuf_pow2min (s1, s2) = if s1 >= s2 then s1 else _stringbuf_pow2min (s1+s1, s2) // end of [if] */ ATSinline() atstype_size atslib__stringbuf_pow2min ( atstype_size s1, atstype_size s2 ) { while (s1 < s2) { s1 = s1 + s1 ; } ; return s1 ; } // end of [atslib__stringbuf_pow2min] /* ****** ****** */ // extern "C" { atstype_int atslib_stringbuf_insert_snprintf (atstype_ptr sbf, atstype_int recap, atstype_string fmt, ...) ; } extern "C" { atstype_int atslib_stringbuf_insert_vsnprintf ( atstype_ptr sbf, atstype_int recap, atstype_string fmt, va_list ap ) ; // end of [atslib_stringbuf_insert_vsnprintf] } // /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_CATS_STRINGBUF) /* ****** ****** */ /* end of [stringbuf.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/ML/0000755000175000017500000000000013431250607021464 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/ML/CATS/0000755000175000017500000000000013431250607022216 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/ML/CATS/array0.cats0000644000175000017500000000317313431250607024274 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: December, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_LIBATS_ML_ARRAY0_CATS #define ATS2CPP_LIBATS_ML_ARRAY0_CATS /* ****** ****** */ #define atslib_ML_array0_memcpy memcpy /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_ML_ARRAY0_CATS) /* ****** ****** */ /* end of [array0.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/libats/ML/CATS/strarr.cats0000644000175000017500000000346013431250607024412 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: April, 2013 *) */ /* ****** ****** */ #ifndef \ ATS2CPP_LIBATS_ML_STRARR_CATS #define \ ATS2CPP_LIBATS_ML_STRARR_CATS /* ****** ****** */ #include #include /* ****** ****** */ #define atslib_ML_strarr_memchr memchr #define atslib_ML_strarr_memcpy memcpy #define atslib_ML_strarr_strncmp strncmp #define atslib_ML_strarr_fwrite fwrite /* ****** ****** */ #endif // ifndef(ATS2CPP_LIBATS_ML_STRARR_CATS) /* ****** ****** */ /* end of [strarr.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/0000755000175000017500000000000013431250607021336 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/0000755000175000017500000000000013431250607022070 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/integer.cats0000644000175000017500000010776613431250607024422 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer.atxt ** Time of generation: Sun Aug 21 20:48:34 2016 */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_INTEGER #define ATS2CPP_PRELUDE_CATS_INTEGER /* ****** ****** */ // #define \ atspre_g0int2int_int_int(x) ((atstype_int)(x)) #define \ atspre_g1int2int_int_int(x) atspre_g0int2int_int_int(x) // /* ****** ****** */ // #define \ atspre_g0int2uint_int_uint(x) ((atstype_uint)(x)) #define \ atspre_g1int2uint_int_uint(x) atspre_g0int2uint_int_uint(x) // /* ****** ****** */ // #define atspre_g0uint2int_uint_int(x) ((atstype_int)(x)) // /* ****** ****** */ // #define \ atspre_g0uint2uint_uint_uint(x) (x) #define \ atspre_g1uint2uint_uint_uint(x) atspre_g0uint2uint_uint_uint(x) // /* ****** ****** */ // #define atspre_g0uint2uint_ulint_uint(x) ((atstype_uint)(x)) #define atspre_g0uint2uint_ulint_ulint(x) (x) #define atspre_g0uint2uint_ulint_ullint(x) ((atstype_ullint)(x)) #define atspre_g1uint2uint_ulint_uint atspre_g0uint2uint_ulint_uint #define atspre_g1uint2uint_ulint_ulint atspre_g0uint2uint_ulint_ulint #define atspre_g1uint2uint_ulint_ullint atspre_g0uint2uint_ulint_ullint // /* ****** ****** */ // #define atspre_g0uint2uint_usint_uint(x) ((atstype_uint)(x)) // /* ****** ****** */ // extern "C" { int atoi(const char *inp) throw (); long int atol(const char *inp) throw (); long long int atoll(const char *inp) throw (); } // extern "C" // ATSinline() atstype_int atspre_g0string2int_int (atstype_string inp) { return atoi((char*)inp) ; } ATSinline() atstype_lint atspre_g0string2int_lint (atstype_string inp) { return atol((char*)inp) ; } ATSinline() atstype_llint atspre_g0string2int_llint (atstype_string inp) { return atoll((char*)inp) ; } // /* ****** ****** */ // extern "C" { unsigned long int strtoul(const char *nptr, char **endptr, int base) throw (); unsigned long long int strtoull(const char *nptr, char **endptr, int base) throw (); } // extern "C" // ATSinline() atstype_uint atspre_g0string2uint_uint (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; } ATSinline() atstype_ulint atspre_g0string2uint_ulint (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; } ATSinline() atstype_ullint atspre_g0string2uint_ullint (atstype_string inp) { return strtoull((char*)inp, NULL, 10) ; } // /* ****** ****** */ // ATSinline() atstype_int atspre_g0int_neg_int (atstype_int x) { return (-x) ; } // end of [atspre_g0int_neg_int] ATSinline() atstype_int atspre_g0int_abs_int (atstype_int x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int] ATSinline() atstype_int atspre_g0int_succ_int (atstype_int x) { return (x + 1) ; } // end of [atspre_g0int_succ_int] ATSinline() atstype_int atspre_g0int_pred_int (atstype_int x) { return (x - 1) ; } // end of [atspre_g0int_pred_int] ATSinline() atstype_int atspre_g0int_half_int (atstype_int x) { return (x / 2) ; } // end of [atspre_g0int_half_int] ATSinline() atstype_int atspre_g0int_add_int (atstype_int x1, atstype_int x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int] ATSinline() atstype_int atspre_g0int_sub_int (atstype_int x1, atstype_int x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int] ATSinline() atstype_int atspre_g0int_mul_int (atstype_int x1, atstype_int x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int] ATSinline() atstype_int atspre_g0int_div_int (atstype_int x1, atstype_int x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int] ATSinline() atstype_int atspre_g0int_mod_int (atstype_int x1, atstype_int x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int] ATSinline() atstype_int atspre_g0int_nmod_int (atstype_int x1, atstype_int x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int] ATSinline() atstype_int atspre_g0int_asl_int (atstype_int x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int] ATSinline() atstype_int atspre_g0int_asr_int (atstype_int x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int] ATSinline() atstype_bool atspre_g0int_lt_int ( atstype_int x1, atstype_int x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int] ATSinline() atstype_bool atspre_g0int_lte_int ( atstype_int x1, atstype_int x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int] ATSinline() atstype_bool atspre_g0int_gt_int ( atstype_int x1, atstype_int x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int] ATSinline() atstype_bool atspre_g0int_gte_int ( atstype_int x1, atstype_int x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int] ATSinline() atstype_bool atspre_g0int_eq_int ( atstype_int x1, atstype_int x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int] ATSinline() atstype_bool atspre_g0int_neq_int ( atstype_int x1, atstype_int x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int] ATSinline() atstype_int atspre_g0int_compare_int ( atstype_int x1, atstype_int x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int] ATSinline() atstype_int atspre_g0int_max_int (atstype_int x1, atstype_int x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int] ATSinline() atstype_int atspre_g0int_min_int (atstype_int x1, atstype_int x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int] ATSinline() atstype_bool atspre_g0int_isltz_int (atstype_int x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int] ATSinline() atstype_bool atspre_g0int_isltez_int (atstype_int x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int] ATSinline() atstype_bool atspre_g0int_isgtz_int (atstype_int x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int] ATSinline() atstype_bool atspre_g0int_isgtez_int (atstype_int x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int] ATSinline() atstype_bool atspre_g0int_iseqz_int (atstype_int x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int] ATSinline() atstype_bool atspre_g0int_isneqz_int (atstype_int x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int] // ATSinline() atstype_lint atspre_g0int_neg_lint (atstype_lint x) { return (-x) ; } // end of [atspre_g0int_neg_lint] ATSinline() atstype_lint atspre_g0int_abs_lint (atstype_lint x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_lint] ATSinline() atstype_lint atspre_g0int_succ_lint (atstype_lint x) { return (x + 1) ; } // end of [atspre_g0int_succ_lint] ATSinline() atstype_lint atspre_g0int_pred_lint (atstype_lint x) { return (x - 1) ; } // end of [atspre_g0int_pred_lint] ATSinline() atstype_lint atspre_g0int_half_lint (atstype_lint x) { return (x / 2) ; } // end of [atspre_g0int_half_lint] ATSinline() atstype_lint atspre_g0int_add_lint (atstype_lint x1, atstype_lint x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_lint] ATSinline() atstype_lint atspre_g0int_sub_lint (atstype_lint x1, atstype_lint x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_lint] ATSinline() atstype_lint atspre_g0int_mul_lint (atstype_lint x1, atstype_lint x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_lint] ATSinline() atstype_lint atspre_g0int_div_lint (atstype_lint x1, atstype_lint x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_lint] ATSinline() atstype_lint atspre_g0int_mod_lint (atstype_lint x1, atstype_lint x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_lint] ATSinline() atstype_lint atspre_g0int_nmod_lint (atstype_lint x1, atstype_lint x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_lint] ATSinline() atstype_lint atspre_g0int_asl_lint (atstype_lint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_lint] ATSinline() atstype_lint atspre_g0int_asr_lint (atstype_lint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_lint] ATSinline() atstype_bool atspre_g0int_lt_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_lint] ATSinline() atstype_bool atspre_g0int_lte_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_lint] ATSinline() atstype_bool atspre_g0int_gt_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_lint] ATSinline() atstype_bool atspre_g0int_gte_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_lint] ATSinline() atstype_bool atspre_g0int_eq_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_lint] ATSinline() atstype_bool atspre_g0int_neq_lint ( atstype_lint x1, atstype_lint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_lint] ATSinline() atstype_int atspre_g0int_compare_lint ( atstype_lint x1, atstype_lint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_lint] ATSinline() atstype_lint atspre_g0int_max_lint (atstype_lint x1, atstype_lint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_lint] ATSinline() atstype_lint atspre_g0int_min_lint (atstype_lint x1, atstype_lint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_lint] ATSinline() atstype_bool atspre_g0int_isltz_lint (atstype_lint x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_lint] ATSinline() atstype_bool atspre_g0int_isltez_lint (atstype_lint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_lint] ATSinline() atstype_bool atspre_g0int_isgtz_lint (atstype_lint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_lint] ATSinline() atstype_bool atspre_g0int_isgtez_lint (atstype_lint x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_lint] ATSinline() atstype_bool atspre_g0int_iseqz_lint (atstype_lint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_lint] ATSinline() atstype_bool atspre_g0int_isneqz_lint (atstype_lint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_lint] // ATSinline() atstype_llint atspre_g0int_neg_llint (atstype_llint x) { return (-x) ; } // end of [atspre_g0int_neg_llint] ATSinline() atstype_llint atspre_g0int_abs_llint (atstype_llint x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_llint] ATSinline() atstype_llint atspre_g0int_succ_llint (atstype_llint x) { return (x + 1) ; } // end of [atspre_g0int_succ_llint] ATSinline() atstype_llint atspre_g0int_pred_llint (atstype_llint x) { return (x - 1) ; } // end of [atspre_g0int_pred_llint] ATSinline() atstype_llint atspre_g0int_half_llint (atstype_llint x) { return (x / 2) ; } // end of [atspre_g0int_half_llint] ATSinline() atstype_llint atspre_g0int_add_llint (atstype_llint x1, atstype_llint x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_llint] ATSinline() atstype_llint atspre_g0int_sub_llint (atstype_llint x1, atstype_llint x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_llint] ATSinline() atstype_llint atspre_g0int_mul_llint (atstype_llint x1, atstype_llint x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_llint] ATSinline() atstype_llint atspre_g0int_div_llint (atstype_llint x1, atstype_llint x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_llint] ATSinline() atstype_llint atspre_g0int_mod_llint (atstype_llint x1, atstype_llint x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_llint] ATSinline() atstype_llint atspre_g0int_nmod_llint (atstype_llint x1, atstype_llint x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_llint] ATSinline() atstype_llint atspre_g0int_asl_llint (atstype_llint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_llint] ATSinline() atstype_llint atspre_g0int_asr_llint (atstype_llint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_llint] ATSinline() atstype_bool atspre_g0int_lt_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_llint] ATSinline() atstype_bool atspre_g0int_lte_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_llint] ATSinline() atstype_bool atspre_g0int_gt_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_llint] ATSinline() atstype_bool atspre_g0int_gte_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_llint] ATSinline() atstype_bool atspre_g0int_eq_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_llint] ATSinline() atstype_bool atspre_g0int_neq_llint ( atstype_llint x1, atstype_llint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_llint] ATSinline() atstype_int atspre_g0int_compare_llint ( atstype_llint x1, atstype_llint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_llint] ATSinline() atstype_llint atspre_g0int_max_llint (atstype_llint x1, atstype_llint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_llint] ATSinline() atstype_llint atspre_g0int_min_llint (atstype_llint x1, atstype_llint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_llint] ATSinline() atstype_bool atspre_g0int_isltz_llint (atstype_llint x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_llint] ATSinline() atstype_bool atspre_g0int_isltez_llint (atstype_llint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_llint] ATSinline() atstype_bool atspre_g0int_isgtz_llint (atstype_llint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_llint] ATSinline() atstype_bool atspre_g0int_isgtez_llint (atstype_llint x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_llint] ATSinline() atstype_bool atspre_g0int_iseqz_llint (atstype_llint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_llint] ATSinline() atstype_bool atspre_g0int_isneqz_llint (atstype_llint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_llint] // /* ****** ****** */ #define atspre_g1int_neg_int atspre_g0int_neg_int #define atspre_g1int_abs_int atspre_g0int_abs_int #define atspre_g1int_succ_int atspre_g0int_succ_int #define atspre_g1int_pred_int atspre_g0int_pred_int #define atspre_g1int_half_int atspre_g0int_half_int #define atspre_g1int_add_int atspre_g0int_add_int #define atspre_g1int_sub_int atspre_g0int_sub_int #define atspre_g1int_mul_int atspre_g0int_mul_int #define atspre_g1int_div_int atspre_g0int_div_int #define atspre_g1int_nmod_int atspre_g0int_nmod_int #define atspre_g1int_isltz_int atspre_g0int_isltz_int #define atspre_g1int_isltez_int atspre_g0int_isltez_int #define atspre_g1int_isgtz_int atspre_g0int_isgtz_int #define atspre_g1int_isgtez_int atspre_g0int_isgtez_int #define atspre_g1int_iseqz_int atspre_g0int_iseqz_int #define atspre_g1int_isneqz_int atspre_g0int_isneqz_int #define atspre_g1int_lt_int atspre_g0int_lt_int #define atspre_g1int_lte_int atspre_g0int_lte_int #define atspre_g1int_gt_int atspre_g0int_gt_int #define atspre_g1int_gte_int atspre_g0int_gte_int #define atspre_g1int_eq_int atspre_g0int_eq_int #define atspre_g1int_neq_int atspre_g0int_neq_int #define atspre_g1int_compare_int atspre_g0int_compare_int #define atspre_g1int_max_int atspre_g0int_max_int #define atspre_g1int_min_int atspre_g0int_min_int /* ****** ****** */ #define atspre_g1int_neg_lint atspre_g0int_neg_lint #define atspre_g1int_succ_lint atspre_g0int_succ_lint #define atspre_g1int_pred_lint atspre_g0int_pred_lint #define atspre_g1int_half_lint atspre_g0int_half_lint #define atspre_g1int_add_lint atspre_g0int_add_lint #define atspre_g1int_sub_lint atspre_g0int_sub_lint #define atspre_g1int_mul_lint atspre_g0int_mul_lint #define atspre_g1int_div_lint atspre_g0int_div_lint #define atspre_g1int_nmod_lint atspre_g0int_nmod_lint #define atspre_g1int_isltz_lint atspre_g0int_isltz_lint #define atspre_g1int_isltez_lint atspre_g0int_isltez_lint #define atspre_g1int_isgtz_lint atspre_g0int_isgtz_lint #define atspre_g1int_isgtez_lint atspre_g0int_isgtez_lint #define atspre_g1int_iseqz_lint atspre_g0int_iseqz_lint #define atspre_g1int_isneqz_lint atspre_g0int_isneqz_lint #define atspre_g1int_lt_lint atspre_g0int_lt_lint #define atspre_g1int_lte_lint atspre_g0int_lte_lint #define atspre_g1int_gt_lint atspre_g0int_gt_lint #define atspre_g1int_gte_lint atspre_g0int_gte_lint #define atspre_g1int_eq_lint atspre_g0int_eq_lint #define atspre_g1int_neq_lint atspre_g0int_neq_lint #define atspre_g1int_compare_lint atspre_g0int_compare_lint #define atspre_g1int_max_lint atspre_g0int_max_lint #define atspre_g1int_min_lint atspre_g0int_min_lint /* ****** ****** */ #define atspre_g1int_neg_llint atspre_g0int_neg_llint #define atspre_g1int_succ_llint atspre_g0int_succ_llint #define atspre_g1int_pred_llint atspre_g0int_pred_llint #define atspre_g1int_half_llint atspre_g0int_half_llint #define atspre_g1int_add_llint atspre_g0int_add_llint #define atspre_g1int_sub_llint atspre_g0int_sub_llint #define atspre_g1int_mul_llint atspre_g0int_mul_llint #define atspre_g1int_div_llint atspre_g0int_div_llint #define atspre_g1int_nmod_llint atspre_g0int_nmod_llint #define atspre_g1int_isltz_llint atspre_g0int_isltz_llint #define atspre_g1int_isltez_llint atspre_g0int_isltez_llint #define atspre_g1int_isgtz_llint atspre_g0int_isgtz_llint #define atspre_g1int_isgtez_llint atspre_g0int_isgtez_llint #define atspre_g1int_iseqz_llint atspre_g0int_iseqz_llint #define atspre_g1int_isneqz_llint atspre_g0int_isneqz_llint #define atspre_g1int_lt_llint atspre_g0int_lt_llint #define atspre_g1int_lte_llint atspre_g0int_lte_llint #define atspre_g1int_gt_llint atspre_g0int_gt_llint #define atspre_g1int_gte_llint atspre_g0int_gte_llint #define atspre_g1int_eq_llint atspre_g0int_eq_llint #define atspre_g1int_neq_llint atspre_g0int_neq_llint #define atspre_g1int_compare_llint atspre_g0int_compare_llint #define atspre_g1int_max_llint atspre_g0int_max_llint #define atspre_g1int_min_llint atspre_g0int_min_llint /* ****** ****** */ // ATSinline() atstype_uint atspre_g0uint_succ_uint (atstype_uint x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint] ATSinline() atstype_uint atspre_g0uint_pred_uint (atstype_uint x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint] ATSinline() atstype_uint atspre_g0uint_half_uint (atstype_uint x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint] ATSinline() atstype_uint atspre_g0uint_add_uint (atstype_uint x1, atstype_uint x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint] ATSinline() atstype_uint atspre_g0uint_sub_uint (atstype_uint x1, atstype_uint x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint] ATSinline() atstype_uint atspre_g0uint_mul_uint (atstype_uint x1, atstype_uint x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint] ATSinline() atstype_uint atspre_g0uint_div_uint (atstype_uint x1, atstype_uint x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint] ATSinline() atstype_uint atspre_g0uint_mod_uint (atstype_uint x1, atstype_uint x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint] ATSinline() atstype_uint atspre_g0uint_lsl_uint (atstype_uint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint] ATSinline() atstype_uint atspre_g0uint_lsr_uint (atstype_uint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint] ATSinline() atstype_uint atspre_g0uint_lnot_uint (atstype_uint x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint] ATSinline() atstype_uint atspre_g0uint_lor_uint (atstype_uint x, atstype_uint y) { return (x | y) ; } // end of [atspre_g0uint_uint_uint] ATSinline() atstype_uint atspre_g0uint_land_uint (atstype_uint x, atstype_uint y) { return (x & y) ; } // end of [atspre_g0uint_uint_uint] ATSinline() atstype_uint atspre_g0uint_lxor_uint (atstype_uint x, atstype_uint y) { return (x ^ y) ; } // end of [atspre_g0uint_uint_uint] ATSinline() atstype_bool atspre_g0uint_lt_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint] ATSinline() atstype_bool atspre_g0uint_lte_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint] ATSinline() atstype_bool atspre_g0uint_gt_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint] ATSinline() atstype_bool atspre_g0uint_gte_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint] ATSinline() atstype_bool atspre_g0uint_eq_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint] ATSinline() atstype_bool atspre_g0uint_neq_uint ( atstype_uint x1, atstype_uint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint] ATSinline() atstype_int atspre_g0uint_compare_uint ( atstype_uint x1, atstype_uint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint] ATSinline() atstype_uint atspre_g0uint_max_uint (atstype_uint x1, atstype_uint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint] ATSinline() atstype_uint atspre_g0uint_min_uint (atstype_uint x1, atstype_uint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint] ATSinline() atstype_bool atspre_g0uint_isltez_uint (atstype_uint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint] ATSinline() atstype_bool atspre_g0uint_isgtz_uint (atstype_uint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint] ATSinline() atstype_bool atspre_g0uint_iseqz_uint (atstype_uint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint] ATSinline() atstype_bool atspre_g0uint_isneqz_uint (atstype_uint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint] // ATSinline() atstype_ulint atspre_g0uint_succ_ulint (atstype_ulint x) { return (x + 1) ; } // end of [atspre_g0uint_succ_ulint] ATSinline() atstype_ulint atspre_g0uint_pred_ulint (atstype_ulint x) { return (x - 1) ; } // end of [atspre_g0uint_pred_ulint] ATSinline() atstype_ulint atspre_g0uint_half_ulint (atstype_ulint x) { return (x >> 1) ; } // end of [atspre_g0uint_half_ulint] ATSinline() atstype_ulint atspre_g0uint_add_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_ulint] ATSinline() atstype_ulint atspre_g0uint_sub_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_ulint] ATSinline() atstype_ulint atspre_g0uint_mul_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_ulint] ATSinline() atstype_ulint atspre_g0uint_div_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_ulint] ATSinline() atstype_ulint atspre_g0uint_mod_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_ulint] ATSinline() atstype_ulint atspre_g0uint_lsl_ulint (atstype_ulint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_ulint] ATSinline() atstype_ulint atspre_g0uint_lsr_ulint (atstype_ulint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_ulint] ATSinline() atstype_ulint atspre_g0uint_lnot_ulint (atstype_ulint x) { return ~(x) ; } // end of [atspre_g0uint_lnot_ulint] ATSinline() atstype_ulint atspre_g0uint_lor_ulint (atstype_ulint x, atstype_ulint y) { return (x | y) ; } // end of [atspre_g0uint_ulint_ulint] ATSinline() atstype_ulint atspre_g0uint_land_ulint (atstype_ulint x, atstype_ulint y) { return (x & y) ; } // end of [atspre_g0uint_ulint_ulint] ATSinline() atstype_ulint atspre_g0uint_lxor_ulint (atstype_ulint x, atstype_ulint y) { return (x ^ y) ; } // end of [atspre_g0uint_ulint_ulint] ATSinline() atstype_bool atspre_g0uint_lt_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_ulint] ATSinline() atstype_bool atspre_g0uint_lte_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_ulint] ATSinline() atstype_bool atspre_g0uint_gt_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_ulint] ATSinline() atstype_bool atspre_g0uint_gte_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_ulint] ATSinline() atstype_bool atspre_g0uint_eq_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_ulint] ATSinline() atstype_bool atspre_g0uint_neq_ulint ( atstype_ulint x1, atstype_ulint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_ulint] ATSinline() atstype_int atspre_g0uint_compare_ulint ( atstype_ulint x1, atstype_ulint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_ulint] ATSinline() atstype_ulint atspre_g0uint_max_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_ulint] ATSinline() atstype_ulint atspre_g0uint_min_ulint (atstype_ulint x1, atstype_ulint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_ulint] ATSinline() atstype_bool atspre_g0uint_isltez_ulint (atstype_ulint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_ulint] ATSinline() atstype_bool atspre_g0uint_isgtz_ulint (atstype_ulint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_ulint] ATSinline() atstype_bool atspre_g0uint_iseqz_ulint (atstype_ulint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_ulint] ATSinline() atstype_bool atspre_g0uint_isneqz_ulint (atstype_ulint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_ulint] // ATSinline() atstype_ullint atspre_g0uint_succ_ullint (atstype_ullint x) { return (x + 1) ; } // end of [atspre_g0uint_succ_ullint] ATSinline() atstype_ullint atspre_g0uint_pred_ullint (atstype_ullint x) { return (x - 1) ; } // end of [atspre_g0uint_pred_ullint] ATSinline() atstype_ullint atspre_g0uint_half_ullint (atstype_ullint x) { return (x >> 1) ; } // end of [atspre_g0uint_half_ullint] ATSinline() atstype_ullint atspre_g0uint_add_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_ullint] ATSinline() atstype_ullint atspre_g0uint_sub_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_ullint] ATSinline() atstype_ullint atspre_g0uint_mul_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_ullint] ATSinline() atstype_ullint atspre_g0uint_div_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_ullint] ATSinline() atstype_ullint atspre_g0uint_mod_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_ullint] ATSinline() atstype_ullint atspre_g0uint_lsl_ullint (atstype_ullint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_ullint] ATSinline() atstype_ullint atspre_g0uint_lsr_ullint (atstype_ullint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_ullint] ATSinline() atstype_ullint atspre_g0uint_lnot_ullint (atstype_ullint x) { return ~(x) ; } // end of [atspre_g0uint_lnot_ullint] ATSinline() atstype_ullint atspre_g0uint_lor_ullint (atstype_ullint x, atstype_ullint y) { return (x | y) ; } // end of [atspre_g0uint_ullint_ullint] ATSinline() atstype_ullint atspre_g0uint_land_ullint (atstype_ullint x, atstype_ullint y) { return (x & y) ; } // end of [atspre_g0uint_ullint_ullint] ATSinline() atstype_ullint atspre_g0uint_lxor_ullint (atstype_ullint x, atstype_ullint y) { return (x ^ y) ; } // end of [atspre_g0uint_ullint_ullint] ATSinline() atstype_bool atspre_g0uint_lt_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_ullint] ATSinline() atstype_bool atspre_g0uint_lte_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_ullint] ATSinline() atstype_bool atspre_g0uint_gt_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_ullint] ATSinline() atstype_bool atspre_g0uint_gte_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_ullint] ATSinline() atstype_bool atspre_g0uint_eq_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_ullint] ATSinline() atstype_bool atspre_g0uint_neq_ullint ( atstype_ullint x1, atstype_ullint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_ullint] ATSinline() atstype_int atspre_g0uint_compare_ullint ( atstype_ullint x1, atstype_ullint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_ullint] ATSinline() atstype_ullint atspre_g0uint_max_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_ullint] ATSinline() atstype_ullint atspre_g0uint_min_ullint (atstype_ullint x1, atstype_ullint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_ullint] ATSinline() atstype_bool atspre_g0uint_isltez_ullint (atstype_ullint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_ullint] ATSinline() atstype_bool atspre_g0uint_isgtz_ullint (atstype_ullint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_ullint] ATSinline() atstype_bool atspre_g0uint_iseqz_ullint (atstype_ullint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_ullint] ATSinline() atstype_bool atspre_g0uint_isneqz_ullint (atstype_ullint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_ullint] // /* ****** ****** */ #define atspre_g1uint_succ_uint atspre_g0uint_succ_uint #define atspre_g1uint_pred_uint atspre_g0uint_pred_uint #define atspre_g1uint_half_uint atspre_g0uint_half_uint #define atspre_g1uint_add_uint atspre_g0uint_add_uint #define atspre_g1uint_sub_uint atspre_g0uint_sub_uint #define atspre_g1uint_mul_uint atspre_g0uint_mul_uint #define atspre_g1uint_div_uint atspre_g0uint_div_uint #define atspre_g1uint_mod_uint atspre_g0uint_mod_uint #define atspre_g1uint_isgtz_uint atspre_g0uint_isgtz_uint #define atspre_g1uint_iseqz_uint atspre_g0uint_iseqz_uint #define atspre_g1uint_isneqz_uint atspre_g0uint_isneqz_uint #define atspre_g1uint_lt_uint atspre_g0uint_lt_uint #define atspre_g1uint_lte_uint atspre_g0uint_lte_uint #define atspre_g1uint_gt_uint atspre_g0uint_gt_uint #define atspre_g1uint_gte_uint atspre_g0uint_gte_uint #define atspre_g1uint_eq_uint atspre_g0uint_eq_uint #define atspre_g1uint_neq_uint atspre_g0uint_neq_uint #define atspre_g1uint_compare_uint atspre_g0uint_compare_uint #define atspre_g1uint_max_uint atspre_g0uint_max_uint #define atspre_g1uint_min_uint atspre_g0uint_min_uint /* ****** ****** */ #define atspre_g1uint_succ_ulint atspre_g0uint_succ_ulint #define atspre_g1uint_pred_ulint atspre_g0uint_pred_ulint #define atspre_g1uint_half_ulint atspre_g0uint_half_ulint #define atspre_g1uint_add_ulint atspre_g0uint_add_ulint #define atspre_g1uint_sub_ulint atspre_g0uint_sub_ulint #define atspre_g1uint_mul_ulint atspre_g0uint_mul_ulint #define atspre_g1uint_div_ulint atspre_g0uint_div_ulint #define atspre_g1uint_mod_ulint atspre_g0uint_mod_ulint #define atspre_g1uint_isgtz_ulint atspre_g0uint_isgtz_ulint #define atspre_g1uint_iseqz_ulint atspre_g0uint_iseqz_ulint #define atspre_g1uint_isneqz_ulint atspre_g0uint_isneqz_ulint #define atspre_g1uint_lt_ulint atspre_g0uint_lt_ulint #define atspre_g1uint_lte_ulint atspre_g0uint_lte_ulint #define atspre_g1uint_gt_ulint atspre_g0uint_gt_ulint #define atspre_g1uint_gte_ulint atspre_g0uint_gte_ulint #define atspre_g1uint_eq_ulint atspre_g0uint_eq_ulint #define atspre_g1uint_neq_ulint atspre_g0uint_neq_ulint #define atspre_g1uint_compare_ulint atspre_g0uint_compare_ulint #define atspre_g1uint_max_ulint atspre_g0uint_max_ulint #define atspre_g1uint_min_ulint atspre_g0uint_min_ulint /* ****** ****** */ #define atspre_g1uint_succ_ullint atspre_g0uint_succ_ullint #define atspre_g1uint_pred_ullint atspre_g0uint_pred_ullint #define atspre_g1uint_half_ullint atspre_g0uint_half_ullint #define atspre_g1uint_add_ullint atspre_g0uint_add_ullint #define atspre_g1uint_sub_ullint atspre_g0uint_sub_ullint #define atspre_g1uint_mul_ullint atspre_g0uint_mul_ullint #define atspre_g1uint_div_ullint atspre_g0uint_div_ullint #define atspre_g1uint_mod_ullint atspre_g0uint_mod_ullint #define atspre_g1uint_isgtz_ullint atspre_g0uint_isgtz_ullint #define atspre_g1uint_iseqz_ullint atspre_g0uint_iseqz_ullint #define atspre_g1uint_isneqz_ullint atspre_g0uint_isneqz_ullint #define atspre_g1uint_lt_ullint atspre_g0uint_lt_ullint #define atspre_g1uint_lte_ullint atspre_g0uint_lte_ullint #define atspre_g1uint_gt_ullint atspre_g0uint_gt_ullint #define atspre_g1uint_gte_ullint atspre_g0uint_gte_ullint #define atspre_g1uint_eq_ullint atspre_g0uint_eq_ullint #define atspre_g1uint_neq_ullint atspre_g0uint_neq_ullint #define atspre_g1uint_compare_ullint atspre_g0uint_compare_ullint #define atspre_g1uint_max_ullint atspre_g0uint_max_ullint #define atspre_g1uint_min_ullint atspre_g0uint_min_ullint /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_INTEGER) /* ****** ****** */ /* end of [integer.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/float.cats0000644000175000017500000003742113431250607024060 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/float.atxt ** Time of generation: Sun Nov 27 09:09:17 2016 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2012 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_FLOAT #define ATS2CPP_PRELUDE_CATS_FLOAT /* ****** ****** */ ATSinline() atstype_float atspre_g0int2float_int_float (atstype_int x) { return ((atstype_float)x) ; } // end of [atspre_g0int2float_int_float] ATSinline() atstype_double atspre_g0int2float_int_double (atstype_int x) { return ((atstype_double)x) ; } // end of [atspre_g0int2float_int_double] ATSinline() atstype_double atspre_g0int2float_lint_double (atstype_lint x) { return ((atstype_double)x) ; } // end of [atspre_g0int2float_lint_double] /* ****** ****** */ ATSinline() atstype_int atspre_g0float2int_float_int (atstype_float x) { return ((atstype_int)x) ; } ATSinline() atstype_lint atspre_g0float2int_float_lint (atstype_float x) { return ((atstype_lint)x) ; } ATSinline() atstype_llint atspre_g0float2int_float_llint (atstype_float x) { return ((atstype_llint)x) ; } ATSinline() atstype_int atspre_g0float2int_double_int (atstype_double x) { return ((atstype_int)x) ; } ATSinline() atstype_lint atspre_g0float2int_double_lint (atstype_double x) { return ((atstype_lint)x) ; } ATSinline() atstype_llint atspre_g0float2int_double_llint (atstype_double x) { return ((atstype_llint)x) ; } /* ****** ****** */ ATSinline() atstype_float atspre_g0float2float_float_float (atstype_float x) { return (x) ; } ATSinline() atstype_double atspre_g0float2float_double_double (atstype_double x) { return (x) ; } ATSinline() atstype_double atspre_g0float2float_float_double ( atstype_float x ) { return ((atstype_double)x) ; } ATSinline() atstype_float atspre_g0float2float_double_float ( atstype_double x ) { return ((atstype_float)x) ; } /* ****** ****** */ // extern "C" { double atof (const char *inp) throw (); } // ATSinline() atstype_double atspre_g0string2float_double (atstype_string inp) { return atof((char*)inp) ; } // /* ****** ****** */ ATSinline() atstype_float atspre_g0float_neg_float (atstype_float f) { return (-f) ; } ATSinline() atstype_double atspre_g0float_neg_double (atstype_double f) { return (-f) ; } ATSinline() atstype_ldouble atspre_g0float_neg_ldouble (atstype_ldouble f) { return (-f) ; } ATSinline() atstype_float atspre_g0float_abs_float (atstype_float f) { return (f >= 0 ? f : -f) ; } ATSinline() atstype_double atspre_g0float_abs_double (atstype_double f) { return (f >= 0 ? f : -f) ; } ATSinline() atstype_ldouble atspre_g0float_abs_ldouble (atstype_ldouble f) { return (f >= 0 ? f : -f) ; } ATSinline() atstype_float atspre_g0float_succ_float (atstype_float f) { return (f+1) ; } ATSinline() atstype_double atspre_g0float_succ_double (atstype_double f) { return (f+1) ; } ATSinline() atstype_ldouble atspre_g0float_succ_ldouble (atstype_ldouble f) { return (f+1) ; } ATSinline() atstype_float atspre_g0float_pred_float (atstype_float f) { return (f-1) ; } ATSinline() atstype_double atspre_g0float_pred_double (atstype_double f) { return (f-1) ; } ATSinline() atstype_ldouble atspre_g0float_pred_ldouble (atstype_ldouble f) { return (f-1) ; } /* ****** ****** */ // ATSinline() atstype_float atspre_g0float_add_float (atstype_float f1, atstype_float f2) { return (f1 + f2) ; } // end of [atspre_g0float_add_float] ATSinline() atstype_float atspre_g0float_sub_float (atstype_float f1, atstype_float f2) { return (f1 - f2) ; } // end of [atspre_g0float_sub_float] ATSinline() atstype_float atspre_g0float_mul_float (atstype_float f1, atstype_float f2) { return (f1 * f2) ; } // end of [atspre_g0float_mul_float] ATSinline() atstype_float atspre_g0float_div_float (atstype_float f1, atstype_float f2) { return (f1 / f2) ; } // end of [atspre_g0float_div_float] // ATSinline() atstype_double atspre_g0float_add_double (atstype_double f1, atstype_double f2) { return (f1 + f2) ; } // end of [atspre_g0float_add_double] ATSinline() atstype_double atspre_g0float_sub_double (atstype_double f1, atstype_double f2) { return (f1 - f2) ; } // end of [atspre_g0float_sub_double] ATSinline() atstype_double atspre_g0float_mul_double (atstype_double f1, atstype_double f2) { return (f1 * f2) ; } // end of [atspre_g0float_mul_double] ATSinline() atstype_double atspre_g0float_div_double (atstype_double f1, atstype_double f2) { return (f1 / f2) ; } // end of [atspre_g0float_div_double] // ATSinline() atstype_ldouble atspre_g0float_add_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 + f2) ; } // end of [atspre_g0float_add_ldouble] ATSinline() atstype_ldouble atspre_g0float_sub_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 - f2) ; } // end of [atspre_g0float_sub_ldouble] ATSinline() atstype_ldouble atspre_g0float_mul_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 * f2) ; } // end of [atspre_g0float_mul_ldouble] ATSinline() atstype_ldouble atspre_g0float_div_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 / f2) ; } // end of [atspre_g0float_div_ldouble] // extern "C" { atstype_float fmodf (atstype_float, atstype_float) throw (); atstype_double fmod (atstype_double, atstype_double) throw (); atstype_ldouble fmodl (atstype_ldouble, atstype_ldouble) throw (); } // ATSinline() atstype_float atspre_g0float_mod_float (atstype_float f1, atstype_float f2) { return fmodf(f1, f2) ; } ATSinline() atstype_double atspre_g0float_mod_double (atstype_double f1, atstype_double f2) { return fmod(f1, f2) ; } ATSinline() atstype_ldouble atspre_g0float_mod_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return fmodl(f1, f2) ; } // /* ****** ****** */ // ATSinline() atstype_bool atspre_g0float_lt_float (atstype_float f1, atstype_float f2) { return (f1 < f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lt_float] ATSinline() atstype_bool atspre_g0float_lte_float (atstype_float f1, atstype_float f2) { return (f1 <= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lte_float] ATSinline() atstype_bool atspre_g0float_gt_float (atstype_float f1, atstype_float f2) { return (f1 > f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gt_float] ATSinline() atstype_bool atspre_g0float_gte_float (atstype_float f1, atstype_float f2) { return (f1 >= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gte_float] ATSinline() atstype_bool atspre_g0float_eq_float (atstype_float f1, atstype_float f2) { return (f1 == f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_eq_float] ATSinline() atstype_bool atspre_g0float_neq_float (atstype_float f1, atstype_float f2) { return (f1 != f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_neq_float] // ATSinline() atstype_bool atspre_g0float_lt_double (atstype_double f1, atstype_double f2) { return (f1 < f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lt_double] ATSinline() atstype_bool atspre_g0float_lte_double (atstype_double f1, atstype_double f2) { return (f1 <= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lte_double] ATSinline() atstype_bool atspre_g0float_gt_double (atstype_double f1, atstype_double f2) { return (f1 > f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gt_double] ATSinline() atstype_bool atspre_g0float_gte_double (atstype_double f1, atstype_double f2) { return (f1 >= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gte_double] ATSinline() atstype_bool atspre_g0float_eq_double (atstype_double f1, atstype_double f2) { return (f1 == f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_eq_double] ATSinline() atstype_bool atspre_g0float_neq_double (atstype_double f1, atstype_double f2) { return (f1 != f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_neq_double] // ATSinline() atstype_bool atspre_g0float_lt_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 < f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lt_ldouble] ATSinline() atstype_bool atspre_g0float_lte_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 <= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_lte_ldouble] ATSinline() atstype_bool atspre_g0float_gt_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 > f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gt_ldouble] ATSinline() atstype_bool atspre_g0float_gte_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 >= f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_gte_ldouble] ATSinline() atstype_bool atspre_g0float_eq_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 == f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_eq_ldouble] ATSinline() atstype_bool atspre_g0float_neq_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 != f2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0float_neq_ldouble] // /* ****** ****** */ ATSinline() atstype_int atspre_g0float_compare_float ( atstype_float f1, atstype_float f2 ) { if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ; } // end of [atspre_g0float_compare_float] ATSinline() atstype_int atspre_g0float_compare_double ( atstype_double f1, atstype_double f2 ) { if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ; } // end of [atspre_g0float_compare_double] ATSinline() atstype_int atspre_g0float_compare_ldouble ( atstype_ldouble f1, atstype_ldouble f2 ) { if (f1 > f2) return 1 ; else if (f1 < f2) return -1 ; else return 0 ; } // end of [atspre_g0float_compare_ldouble] /* ****** ****** */ ATSinline() atstype_float atspre_g0float_min_float (atstype_float f1, atstype_float f2) { return (f1 <= f2 ? f1 : f2) ; } // end of [atspre_g0float_min_float] ATSinline() atstype_double atspre_g0float_min_double (atstype_double f1, atstype_double f2) { return (f1 <= f2 ? f1 : f2) ; } // end of [atspre_g0float_min_double] ATSinline() atstype_ldouble atspre_g0float_min_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 <= f2 ? f1 : f2) ; } // end of [atspre_g0float_min_ldouble] ATSinline() atstype_float atspre_g0float_max_float (atstype_float f1, atstype_float f2) { return (f1 >= f2 ? f1 : f2) ; } // end of [atspre_g0float_max_float] ATSinline() atstype_double atspre_g0float_max_double (atstype_double f1, atstype_double f2) { return (f1 >= f2 ? f1 : f2) ; } // end of [atspre_g0float_max_double] ATSinline() atstype_ldouble atspre_g0float_max_ldouble (atstype_ldouble f1, atstype_ldouble f2) { return (f1 >= f2 ? f1 : f2) ; } // end of [atspre_g0float_max_ldouble] /* ****** ****** */ // ATSinline() atstype_float atspre_add_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) + f2) ; } // end of [atspre_add_int_float] ATSinline() atstype_float atspre_sub_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) - f2) ; } // end of [atspre_sub_int_float] ATSinline() atstype_float atspre_mul_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) * f2) ; } // end of [atspre_mul_int_float] ATSinline() atstype_float atspre_div_int_float (atstype_int i1, atstype_float f2) { return (((atstype_float)i1) / f2) ; } // end of [atspre_div_int_float] // ATSinline() atstype_double atspre_add_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) + f2) ; } // end of [atspre_add_int_double] ATSinline() atstype_double atspre_sub_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) - f2) ; } // end of [atspre_sub_int_double] ATSinline() atstype_double atspre_mul_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) * f2) ; } // end of [atspre_mul_int_double] ATSinline() atstype_double atspre_div_int_double (atstype_int i1, atstype_double f2) { return (((atstype_double)i1) / f2) ; } // end of [atspre_div_int_double] // ATSinline() atstype_ldouble atspre_add_int_ldouble (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) + f2) ; } // end of [atspre_add_int_ldouble] ATSinline() atstype_ldouble atspre_sub_int_ldouble (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) - f2) ; } // end of [atspre_sub_int_ldouble] ATSinline() atstype_ldouble atspre_mul_int_ldouble (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) * f2) ; } // end of [atspre_mul_int_ldouble] ATSinline() atstype_ldouble atspre_div_int_ldouble (atstype_int i1, atstype_ldouble f2) { return (((atstype_ldouble)i1) / f2) ; } // end of [atspre_div_int_ldouble] // /* ****** ****** */ // ATSinline() atstype_float atspre_add_float_int (atstype_float f1, atstype_int i2) { return (f1 + ((atstype_float)i2)) ; } // end of [atspre_add_float_int] ATSinline() atstype_float atspre_sub_float_int (atstype_float f1, atstype_int i2) { return (f1 - ((atstype_float)i2)) ; } // end of [atspre_sub_float_int] ATSinline() atstype_float atspre_mul_float_int (atstype_float f1, atstype_int i2) { return (f1 * ((atstype_float)i2)) ; } // end of [atspre_mul_float_int] ATSinline() atstype_float atspre_div_float_int (atstype_float f1, atstype_int i2) { return (f1 / ((atstype_float)i2)) ; } // end of [atspre_div_float_int] // ATSinline() atstype_double atspre_add_double_int (atstype_double f1, atstype_int i2) { return (f1 + ((atstype_double)i2)) ; } // end of [atspre_add_double_int] ATSinline() atstype_double atspre_sub_double_int (atstype_double f1, atstype_int i2) { return (f1 - ((atstype_double)i2)) ; } // end of [atspre_sub_double_int] ATSinline() atstype_double atspre_mul_double_int (atstype_double f1, atstype_int i2) { return (f1 * ((atstype_double)i2)) ; } // end of [atspre_mul_double_int] ATSinline() atstype_double atspre_div_double_int (atstype_double f1, atstype_int i2) { return (f1 / ((atstype_double)i2)) ; } // end of [atspre_div_double_int] // ATSinline() atstype_ldouble atspre_add_ldouble_int (atstype_ldouble f1, atstype_int i2) { return (f1 + ((atstype_ldouble)i2)) ; } // end of [atspre_add_ldouble_int] ATSinline() atstype_ldouble atspre_sub_ldouble_int (atstype_ldouble f1, atstype_int i2) { return (f1 - ((atstype_ldouble)i2)) ; } // end of [atspre_sub_ldouble_int] ATSinline() atstype_ldouble atspre_mul_ldouble_int (atstype_ldouble f1, atstype_int i2) { return (f1 * ((atstype_ldouble)i2)) ; } // end of [atspre_mul_ldouble_int] ATSinline() atstype_ldouble atspre_div_ldouble_int (atstype_ldouble f1, atstype_int i2) { return (f1 / ((atstype_ldouble)i2)) ; } // end of [atspre_div_ldouble_int] // /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_FLOAT) /* ****** ****** */ /* end of [float.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/char.cats0000644000175000017500000002171013431250607023662 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/char.atxt ** Time of generation: Fri Apr 4 23:21:55 2014 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_CHAR #define ATS2CPP_PRELUDE_CATS_CHAR /* ****** ****** */ ATSinline() atstype_char atspre_int2char (atstype_int i) { return ((atstype_char)i) ; } #define atspre_int2char0 atspre_int2char ATSinline() atstype_schar atspre_int2schar (atstype_int i) { return ((atstype_schar)i) ; } #define atspre_int2schar0 atspre_int2schar ATSinline() atstype_uchar atspre_int2uchar (atstype_int i) { return ((atstype_uchar)i) ; } #define atspre_int2uchar0 atspre_int2uchar /* ****** ****** */ ATSinline() atstype_int atspre_char2int (atstype_char c) { return ((atstype_int)c) ; } #define atspre_char2int0 atspre_char2int ATSinline() atstype_int atspre_schar2int (atstype_schar c) { return ((atstype_int)c) ; } #define atspre_schar2int0 atspre_schar2int ATSinline() atstype_int atspre_uchar2int (atstype_uchar c) { return ((atstype_int)c) ; } #define atspre_uchar2int0 atspre_uchar2int /* ****** ****** */ ATSinline() atstype_uint atspre_char2uint (atstype_char c) { return ((atstype_uint)c) ; } #define atspre_char2uint0 atspre_char2uint ATSinline() atstype_uint atspre_schar2uint (atstype_schar c) { return ((atstype_uint)c) ; } #define atspre_schar2uint0 atspre_schar2uint ATSinline() atstype_uint atspre_uchar2uint (atstype_uchar c) { return ((atstype_uint)c) ; } #define atspre_uchar2uint0 atspre_uchar2uint /* ****** ****** */ ATSinline() atstype_int atspre_char2u2int (atstype_char c) { return ((atstype_int)((atstype_uchar)c)) ; } #define atspre_char2u2int0 atspre_char2u2int ATSinline() atstype_uint atspre_char2u2uint (atstype_char c) { return ((atstype_uint)((atstype_uchar)c)) ; } #define atspre_char2u2uint0 atspre_char2u2uint /* ****** ****** */ ATSinline() atstype_bool atspre_char_iseqz (atstype_char c) { return ((c == 0) ? atsbool_true : atsbool_false) ; } // end of [atspre_char_iseqz] #define atspre_char0_iseqz(c) atspre_char_iseqz(c) #define atspre_char1_iseqz(c) atspre_char_iseqz(c) ATSinline() atstype_bool atspre_char_isneqz (atstype_char c) { return ((c != 0) ? atsbool_true : atsbool_false) ; } // end of [atspre_char_isneqz] #define atspre_char0_isneqz(c) atspre_char_isneqz(c) #define atspre_char1_isneqz(c) atspre_char_isneqz(c) /* ****** ****** */ ATSinline() atstype_char atspre_add_char_int (atstype_char c1, atstype_int i2) { return (c1 + i2) ; } // end of [atspre_add_char_int] #define atspre_add_char0_int0 atspre_add_char_int /* ****** ****** */ ATSinline() atstype_int atspre_sub_char_char (atstype_char c1, atstype_char c2) { return (c1 - c2) ; } // end of [sub_char0_char0] #define atspre_sub_char0_char0 atspre_sub_char_char /* ****** ****** */ ATSinline() atstype_bool atspre_lt_int_int (atstype_int i1, atstype_int i2) { return (i1 < i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lt_int_int] #define atspre_lt_char0_char0 atspre_lt_int_int #define atspre_lt_char1_char1 atspre_lt_int_int ATSinline() atstype_bool atspre_lte_int_int (atstype_int i1, atstype_int i2) { return (i1 <= i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lte_int_int] #define atspre_lte_char0_char0 atspre_lte_int_int #define atspre_lte_char1_char1 atspre_lte_int_int ATSinline() atstype_bool atspre_gt_int_int (atstype_int i1, atstype_int i2) { return (i1 > i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gt_int_int] #define atspre_gt_char0_char0 atspre_gt_int_int #define atspre_gt_char1_char1 atspre_gt_int_int ATSinline() atstype_bool atspre_gte_int_int (atstype_int i1, atstype_int i2) { return (i1 >= i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gte_int_int] #define atspre_gte_char0_char0 atspre_gte_int_int #define atspre_gte_char1_char1 atspre_gte_int_int ATSinline() atstype_bool atspre_eq_int_int (atstype_int i1, atstype_int i2) { return (i1 == i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_eq_int_int] #define atspre_eq_char0_char0 atspre_eq_int_int #define atspre_eq_char1_char1 atspre_eq_int_int ATSinline() atstype_bool atspre_neq_int_int (atstype_int i1, atstype_int i2) { return (i1 != i2 ? atsbool_true : atsbool_false) ; } // end of [atspre_neq_int_int] #define atspre_neq_char0_char0 atspre_neq_int_int #define atspre_neq_char1_char1 atspre_neq_int_int /* ****** ****** */ ATSinline() atstype_int atspre_compare_int_int (atstype_int i1, atstype_int i2) { return (i1 - i2) ; } // end of [atspre_compare_int_int] #define atspre_compare_char0_char0(c1, c2) atspre_compare_int_int(c1, c2) #define atspre_compare_char1_char1(c1, c2) atspre_compare_int_int(c1, c2) /* ****** ****** */ #define atspre_eq_char0_int0(c, i) atspre_eq_int_int(c, i) #define atspre_eq_int0_char0(i, c) atspre_eq_int_int(i, c) #define atspre_neq_char0_int0(c, i) atspre_neq_int_int(c, i) #define atspre_neq_int0_char0(i, c) atspre_neq_int_int(i, c) /* ****** ****** */ #define atspre_compare_char0_int0(c, i) atspre_compare_int_int(c, i) #define atspre_compare_int0_char0(i, c) atspre_compare_int_int(i, c) /* ****** ****** */ // // unsigned characters // /* ****** ****** */ ATSinline() atstype_bool atspre_lt_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 < c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lt_uchar_uchar] #define atspre_lt_uchar0_uchar0 atspre_lt_uchar_uchar #define atspre_lt_uchar1_uchar1 atspre_lt_uchar_uchar ATSinline() atstype_bool atspre_lte_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 <= c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lte_uchar_uchar] #define atspre_lte_uchar0_uchar0 atspre_lte_uchar_uchar #define atspre_lte_uchar1_uchar1 atspre_lte_uchar_uchar ATSinline() atstype_bool atspre_gt_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 > c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gt_uchar_uchar] #define atspre_gt_uchar0_uchar0 atspre_gt_uchar_uchar #define atspre_gt_uchar1_uchar1 atspre_gt_uchar_uchar ATSinline() atstype_bool atspre_gte_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 >= c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gte_uchar_uchar] #define atspre_gte_uchar0_uchar0 atspre_gte_uchar_uchar #define atspre_gte_uchar1_uchar1 atspre_gte_uchar_uchar ATSinline() atstype_bool atspre_eq_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 == c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_eq_uchar_uchar] #define atspre_eq_uchar0_uchar0 atspre_eq_uchar_uchar #define atspre_eq_uchar1_uchar1 atspre_eq_uchar_uchar ATSinline() atstype_bool atspre_neq_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return (c1 != c2 ? atsbool_true : atsbool_false) ; } // end of [atspre_neq_uchar_uchar] #define atspre_neq_uchar0_uchar0 atspre_neq_uchar_uchar #define atspre_neq_uchar1_uchar1 atspre_neq_uchar_uchar ATSinline() atstype_int atspre_compare_uchar_uchar (atstype_uchar c1, atstype_uchar c2) { return ((atstype_int)c1 - (atstype_int)c2) ; } // end of [atspre_compare_uchar_uchar] #define atspre_compare_uchar0_uchar0 atspre_compare_uchar_uchar #define atspre_compare_uchar1_uchar1 atspre_compare_uchar_uchar /* ****** ****** */ ATSinline() atstype_char atspre_int2digit (atstype_int i) { return ('0' + i) ; } // end of [atspre_int2digit] ATSinline() atstype_char atspre_int2xdigit (atstype_int i) { return (i < 10) ? ('0' + i) : ('a' + (i - 10)) ; } // end of [atspre_int2xdigit] ATSinline() atstype_char atspre_int2xxdigit (atstype_int i) { return (i < 10) ? ('0' + i) : ('A' + (i - 10)) ; } // end of [atspre_int2xxdigit] /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_CHAR) /* ****** ****** */ /* end of [char.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/integer_size.cats0000644000175000017500000003577513431250607025454 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer_size.atxt ** Time of generation: Sun Aug 21 20:48:34 2016 */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_INTEGER_SIZE #define ATS2CPP_PRELUDE_CATS_INTEGER_SIZE /* ****** ****** */ // #define \ atspre_g0int2uint_int_size(x) ((atstype_size)(x)) #define \ atspre_g1int2uint_int_size(x) atspre_g0int2uint_int_size(x) #define \ atspre_g0uint2uint_uint_size(x) ((atstype_size)(x)) #define \ atspre_g1uint2uint_uint_size(x) atspre_g0uint2uint_uint_size(x) // #define \ atspre_g0int2int_int_ssize(x) ((atstype_ssize)(x)) #define \ atspre_g1int2int_int_ssize(x) atspre_g0int2int_int_ssize(x) #define \ atspre_g0uint2int_uint_ssize(x) ((atstype_ssize)(x)) #define \ atspre_g1uint2int_uint_ssize(x) atspre_g0uint2int_uint_ssize(x) // /* ****** ****** */ // #define \ atspre_g0int2uint_lint_size(x) ((atstype_size)(x)) #define \ atspre_g1int2uint_lint_size(x) atspre_g0int2uint_lint_size(x) #define \ atspre_g0uint2uint_ulint_size(x) ((atstype_size)(x)) #define \ atspre_g1uint2uint_ulint_size(x) atspre_g0uint2uint_ulint_size(x) // /* ****** ****** */ // #define \ atspre_g0int2int_lint_ssize(ssz) ((atstype_ssize)(ssz)) #define \ atspre_g1int2int_lint_ssize(ssz) atspre_g0int2int_lint_ssize(ssz) // /* ****** ****** */ // #define \ atspre_g0uint2int_size_int(sz) ((atstype_int)(sz)) #define \ atspre_g1uint2int_size_int(sz) atspre_g0uint2int_size_int(sz) // #define \ atspre_g0uint2uint_size_uint(sz) ((atstype_uint)(sz)) #define \ atspre_g1uint2uint_size_uint(sz) atspre_g0uint2uint_size_uint(sz) // #define \ atspre_g0uint2uint_size_size(sz) ((atstype_size)(sz)) #define \ atspre_g1uint2uint_size_size(sz) atspre_g0uint2uint_size_size(sz) // /* ****** ****** */ // #define \ atspre_g0int2int_ssize_int(ssz) ((atstype_int)(ssz)) #define \ atspre_g1int2int_ssize_int(ssz) atspre_g0int2int_ssize_int(ssz) // #define \ atspre_g0int2uint_ssize_uint(ssz) ((atstype_uint)(ssz)) #define \ atspre_g1int2uint_ssize_uint(ssz) atspre_g0int2uint_ssize_uint(ssz) // #define \ atspre_g0int2int_ssize_ssize(ssz) ((atstype_ssize)(ssz)) #define \ atspre_g1int2int_ssize_ssize(ssz) atspre_g0int2int_ssize_ssize(ssz) // /* ****** ****** */ // #define \ atspre_g0uint2int_size_ssize(sz) ((atstype_ssize)(sz)) #define \ atspre_g1uint2int_size_ssize(sz) atspre_g0uint2int_size_ssize(sz) #define \ atspre_g0int2uint_ssize_size(ssz) ((atstype_size)(ssz)) #define \ atspre_g1int2uint_ssize_size(ssz) atspre_g0int2uint_ssize_size(ssz) // /* ****** ****** */ // ATSinline() atstype_size atspre_g0uint_succ_size (atstype_size x) { return (x + 1) ; } // end of [atspre_g0uint_succ_size] ATSinline() atstype_size atspre_g0uint_pred_size (atstype_size x) { return (x - 1) ; } // end of [atspre_g0uint_pred_size] ATSinline() atstype_size atspre_g0uint_half_size (atstype_size x) { return (x >> 1) ; } // end of [atspre_g0uint_half_size] ATSinline() atstype_size atspre_g0uint_add_size (atstype_size x1, atstype_size x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_size] ATSinline() atstype_size atspre_g0uint_sub_size (atstype_size x1, atstype_size x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_size] ATSinline() atstype_size atspre_g0uint_mul_size (atstype_size x1, atstype_size x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_size] ATSinline() atstype_size atspre_g0uint_div_size (atstype_size x1, atstype_size x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_size] ATSinline() atstype_size atspre_g0uint_mod_size (atstype_size x1, atstype_size x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_size] ATSinline() atstype_size atspre_g0uint_lsl_size (atstype_size x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_size] ATSinline() atstype_size atspre_g0uint_lsr_size (atstype_size x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_size] ATSinline() atstype_size atspre_g0uint_lnot_size (atstype_size x) { return ~(x) ; } // end of [atspre_g0uint_lnot_size] ATSinline() atstype_size atspre_g0uint_lor_size (atstype_size x, atstype_size y) { return (x | y) ; } // end of [atspre_g0uint_size_size] ATSinline() atstype_size atspre_g0uint_land_size (atstype_size x, atstype_size y) { return (x & y) ; } // end of [atspre_g0uint_size_size] ATSinline() atstype_size atspre_g0uint_lxor_size (atstype_size x, atstype_size y) { return (x ^ y) ; } // end of [atspre_g0uint_size_size] ATSinline() atstype_bool atspre_g0uint_lt_size ( atstype_size x1, atstype_size x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_size] ATSinline() atstype_bool atspre_g0uint_lte_size ( atstype_size x1, atstype_size x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_size] ATSinline() atstype_bool atspre_g0uint_gt_size ( atstype_size x1, atstype_size x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_size] ATSinline() atstype_bool atspre_g0uint_gte_size ( atstype_size x1, atstype_size x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_size] ATSinline() atstype_bool atspre_g0uint_eq_size ( atstype_size x1, atstype_size x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_size] ATSinline() atstype_bool atspre_g0uint_neq_size ( atstype_size x1, atstype_size x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_size] ATSinline() atstype_int atspre_g0uint_compare_size ( atstype_size x1, atstype_size x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_size] ATSinline() atstype_size atspre_g0uint_max_size (atstype_size x1, atstype_size x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_size] ATSinline() atstype_size atspre_g0uint_min_size (atstype_size x1, atstype_size x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_size] ATSinline() atstype_bool atspre_g0uint_isltez_size (atstype_size x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_size] ATSinline() atstype_bool atspre_g0uint_isgtz_size (atstype_size x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_size] ATSinline() atstype_bool atspre_g0uint_iseqz_size (atstype_size x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_size] ATSinline() atstype_bool atspre_g0uint_isneqz_size (atstype_size x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_size] // #define atspre_g1uint_succ_size atspre_g0uint_succ_size #define atspre_g1uint_pred_size atspre_g0uint_pred_size #define atspre_g1uint_half_size atspre_g0uint_half_size #define atspre_g1uint_add_size atspre_g0uint_add_size #define atspre_g1uint_sub_size atspre_g0uint_sub_size #define atspre_g1uint_mul_size atspre_g0uint_mul_size #define atspre_g1uint_div_size atspre_g0uint_div_size #define atspre_g1uint_mod_size atspre_g0uint_mod_size #define atspre_g1uint_lt_size atspre_g0uint_lt_size #define atspre_g1uint_lte_size atspre_g0uint_lte_size #define atspre_g1uint_gt_size atspre_g0uint_gt_size #define atspre_g1uint_gte_size atspre_g0uint_gte_size #define atspre_g1uint_eq_size atspre_g0uint_eq_size #define atspre_g1uint_neq_size atspre_g0uint_neq_size #define atspre_g1uint_compare_size atspre_g0uint_compare_size #define atspre_g1uint_max_size atspre_g0uint_max_size #define atspre_g1uint_min_size atspre_g0uint_min_size #define atspre_g1uint_isltez_size atspre_g0uint_isltez_size #define atspre_g1uint_isgtz_size atspre_g0uint_isgtz_size #define atspre_g1uint_iseqz_size atspre_g0uint_iseqz_size #define atspre_g1uint_isneqz_size atspre_g0uint_isneqz_size // /* ****** ****** */ // ATSinline() atstype_ssize atspre_g0int_neg_ssize (atstype_ssize x) { return (-x) ; } // end of [atspre_g0int_neg_ssize] ATSinline() atstype_ssize atspre_g0int_abs_ssize (atstype_ssize x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_ssize] ATSinline() atstype_ssize atspre_g0int_succ_ssize (atstype_ssize x) { return (x + 1) ; } // end of [atspre_g0int_succ_ssize] ATSinline() atstype_ssize atspre_g0int_pred_ssize (atstype_ssize x) { return (x - 1) ; } // end of [atspre_g0int_pred_ssize] ATSinline() atstype_ssize atspre_g0int_half_ssize (atstype_ssize x) { return (x / 2) ; } // end of [atspre_g0int_half_ssize] ATSinline() atstype_ssize atspre_g0int_add_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_ssize] ATSinline() atstype_ssize atspre_g0int_sub_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_ssize] ATSinline() atstype_ssize atspre_g0int_mul_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_ssize] ATSinline() atstype_ssize atspre_g0int_div_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_ssize] ATSinline() atstype_ssize atspre_g0int_mod_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_ssize] ATSinline() atstype_ssize atspre_g0int_nmod_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_ssize] ATSinline() atstype_ssize atspre_g0int_asl_ssize (atstype_ssize x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_ssize] ATSinline() atstype_ssize atspre_g0int_asr_ssize (atstype_ssize x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_ssize] ATSinline() atstype_bool atspre_g0int_lt_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_ssize] ATSinline() atstype_bool atspre_g0int_lte_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_ssize] ATSinline() atstype_bool atspre_g0int_gt_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_ssize] ATSinline() atstype_bool atspre_g0int_gte_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_ssize] ATSinline() atstype_bool atspre_g0int_eq_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_ssize] ATSinline() atstype_bool atspre_g0int_neq_ssize ( atstype_ssize x1, atstype_ssize x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_ssize] ATSinline() atstype_int atspre_g0int_compare_ssize ( atstype_ssize x1, atstype_ssize x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_ssize] ATSinline() atstype_ssize atspre_g0int_max_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_ssize] ATSinline() atstype_ssize atspre_g0int_min_ssize (atstype_ssize x1, atstype_ssize x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_ssize] ATSinline() atstype_bool atspre_g0int_isltz_ssize (atstype_ssize x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_ssize] ATSinline() atstype_bool atspre_g0int_isltez_ssize (atstype_ssize x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_ssize] ATSinline() atstype_bool atspre_g0int_isgtz_ssize (atstype_ssize x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_ssize] ATSinline() atstype_bool atspre_g0int_isgtez_ssize (atstype_ssize x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_ssize] ATSinline() atstype_bool atspre_g0int_iseqz_ssize (atstype_ssize x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_ssize] ATSinline() atstype_bool atspre_g0int_isneqz_ssize (atstype_ssize x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_ssize] // #define atspre_g1int_abs_ssize atspre_g0int_abs_ssize #define atspre_g1int_neg_ssize atspre_g0int_neg_ssize #define atspre_g1int_succ_ssize atspre_g0int_succ_ssize #define atspre_g1int_pred_ssize atspre_g0int_pred_ssize #define atspre_g1int_half_ssize atspre_g0int_half_ssize #define atspre_g1int_add_ssize atspre_g0int_add_ssize #define atspre_g1int_sub_ssize atspre_g0int_sub_ssize #define atspre_g1int_mul_ssize atspre_g0int_mul_ssize #define atspre_g1int_div_ssize atspre_g0int_div_ssize #define atspre_g1int_nmod_ssize atspre_g0int_nmod_ssize #define atspre_g1int_lt_ssize atspre_g0int_lt_ssize #define atspre_g1int_lte_ssize atspre_g0int_lte_ssize #define atspre_g1int_gt_ssize atspre_g0int_gt_ssize #define atspre_g1int_gte_ssize atspre_g0int_gte_ssize #define atspre_g1int_eq_ssize atspre_g0int_eq_ssize #define atspre_g1int_neq_ssize atspre_g0int_neq_ssize #define atspre_g1int_compare_ssize atspre_g0int_compare_ssize #define atspre_g1int_max_ssize atspre_g0int_max_ssize #define atspre_g1int_min_ssize atspre_g0int_min_ssize #define atspre_g1int_isltz_ssize atspre_g0int_isltz_ssize #define atspre_g1int_isltez_ssize atspre_g0int_isltez_ssize #define atspre_g1int_isgtz_ssize atspre_g0int_isgtz_ssize #define atspre_g1int_isgtez_ssize atspre_g0int_isgtez_ssize #define atspre_g1int_iseqz_ssize atspre_g0int_iseqz_ssize #define atspre_g1int_isneqz_ssize atspre_g0int_isneqz_ssize // /* ****** ****** */ // ATSinline() atstype_size atspre_g0string2uint_size (atstype_string inp) { return strtoul((char*)inp, NULL, 10) ; } // ATSinline() atstype_ssize atspre_g0string2int_ssize (atstype_string inp) { return atol((char*)inp) ; } // /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_INTEGER_SIZE) /* ****** ****** */ /* end of [integer_size.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/pointer.cats0000644000175000017500000001520113431250607024423 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/pointer.atxt ** Time of generation: Fri Apr 4 23:21:55 2014 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_POINTER #define ATS2CPP_PRELUDE_CATS_POINTER /* ****** ****** */ #ifndef memset extern "C" { // void *memset(void *bufp, int c, size_t n) throw() ; // } // end of [extern "C"] #endif // #ifndef /* ****** ****** */ ATSinline() atstype_ptr atspre_ptr_null () { return (void*)0 ; } /* ****** ****** */ ATSinline() atstype_bool atspre_ptr_is_null (atstype_ptr p) { return (p == (void*)0) ? atsbool_true : atsbool_false ; } // end of [atspre_ptr_is_null] #define atspre_ptr0_is_null atspre_ptr_is_null #define atspre_ptr1_is_null atspre_ptr_is_null ATSinline() atstype_bool atspre_ptr_isnot_null (atstype_ptr p) { return (p != (void*)0) ? atsbool_true : atsbool_false ; } // end of [atspre_ptr_isnot_null] #define atspre_ptr0_isnot_null atspre_ptr_isnot_null #define atspre_ptr1_isnot_null atspre_ptr_isnot_null /* ****** ****** */ ATSinline() atstype_ptr atspre_add_ptr_bsz (atstype_ptr p, atstype_size ofs) { return ((char*)p + ofs) ; } // end of [atspre_add_ptr_bsz] #define atspre_add_ptr0_bsz atspre_add_ptr_bsz #define atspre_add_ptr1_bsz atspre_add_ptr_bsz ATSinline() atstype_ptr atspre_sub_ptr_bsz (atstype_ptr p, atstype_size ofs) { return ((char*)p - ofs) ; } // end of [atspre_sub_ptr_bsz] #define atspre_sub_ptr0_bsz atspre_sub_ptr_bsz #define atspre_sub_ptr1_bsz atspre_sub_ptr_bsz /* ****** ****** */ ATSinline() atstype_ssize atspre_sub_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return ((char*)p1 - (char*)p2) ; } // end of [atspre_sub_ptr_ptr] #define atspre_sub_ptr0_ptr0 atspre_sub_ptr_ptr #define atspre_sub_ptr1_ptr1 atspre_sub_ptr_ptr /* ****** ****** */ ATSinline() atstype_bool atspre_lt_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 < p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lt_ptr_ptr] #define atspre_lt_ptr0_ptr0 atspre_lt_ptr_ptr #define atspre_lt_ptr1_ptr1 atspre_lt_ptr_ptr ATSinline() atstype_bool atspre_lte_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 <= p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_lte_ptr_ptr] #define atspre_lte_ptr0_ptr0 atspre_lte_ptr_ptr #define atspre_lte_ptr1_ptr1 atspre_lte_ptr_ptr ATSinline() atstype_bool atspre_gt_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 > p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gt_ptr_ptr] #define atspre_gt_ptr0_ptr0 atspre_gt_ptr_ptr #define atspre_gt_ptr1_ptr1 atspre_gt_ptr_ptr ATSinline() atstype_bool atspre_gte_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 >= p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_gte_ptr_ptr] #define atspre_gte_ptr0_ptr0 atspre_gte_ptr_ptr #define atspre_gte_ptr1_ptr1 atspre_gte_ptr_ptr ATSinline() atstype_bool atspre_eq_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 == p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_eq_ptr_ptr] #define atspre_eq_ptr0_ptr0 atspre_eq_ptr_ptr #define atspre_eq_ptr1_ptr1 atspre_eq_ptr_ptr ATSinline() atstype_bool atspre_neq_ptr_ptr (atstype_ptr p1, atstype_ptr p2) { return (p1 != p2 ? atsbool_true : atsbool_false) ; } // end of [atspre_neq_ptr_ptr] #define atspre_neq_ptr0_ptr0 atspre_neq_ptr_ptr #define atspre_neq_ptr1_ptr1 atspre_neq_ptr_ptr ATSinline() atstype_int atspre_compare_ptr_ptr ( atstype_ptr p1, atstype_ptr p2 ) { if (p1 >= p2) { if (p1 > p2) return 1 ; else return 0 ; } else return (-1) ; } // end of [atspre_compare_ptr_ptr] #define atspre_compare_ptr0_ptr0 atspre_compare_ptr_ptr #define atspre_compare_ptr1_ptr1 atspre_compare_ptr_ptr /* ****** ****** */ ATSinline() atstype_bool atspre_gt_ptr_intz (atstype_ptr p, atstype_int _) { return (p > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_gt_ptr_intz] #define atspre_gt_ptr0_intz atspre_gt_ptr_intz #define atspre_gt_ptr1_intz atspre_gt_ptr_intz ATSinline() atstype_bool atspre_eq_ptr_intz (atstype_ptr p, atstype_int _) { return (p == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_eq_ptr_intz] #define atspre_eq_ptr0_intz atspre_eq_ptr_intz #define atspre_eq_ptr1_intz atspre_eq_ptr_intz ATSinline() atstype_bool atspre_neq_ptr_intz (atstype_ptr p, atstype_int _) { return (p != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_neq_ptr_intz] #define atspre_neq_ptr0_intz atspre_neq_ptr_intz #define atspre_neq_ptr1_intz atspre_neq_ptr_intz /* ****** ****** */ // #define atspre_aptr_null() atsptr_null // #define atspre_aptr_is_null atspre_ptr_is_null #define atspre_aptr_isnot_null atspre_ptr_isnot_null // /* ****** ****** */ // #define atspre_cptr_null() atsptr_null // #define atspre_cptr_is_null atspre_ptr_is_null #define atspre_cptr_isnot_null atspre_ptr_isnot_null // /* ****** ****** */ #define atspre_gt_cptr_intz atspre_gt_ptr_intz #define atspre_eq_cptr_intz atspre_eq_ptr_intz #define atspre_neq_cptr_intz atspre_neq_ptr_intz /* ****** ****** */ // #define atspre_ptr_free atspre_mfree_gc #define atspre_ptr_alloc_tsz atspre_malloc_gc // /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_ptr_nullize_tsz ( atstype_ptr p, atstype_size tsz ) { memset (p, 0, tsz) ; return /*void*/ ; } // end of [atspre_ptr_nullize_tsz] /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_POINTER) /* ****** ****** */ /* end of [pointer.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/arrayptr.cats0000644000175000017500000000434113431250607024612 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/arrayptr.atxt ** Time of generation: Fri Feb 28 17:55:37 2014 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_ARRAYPTR #define ATS2CPP_PRELUDE_CATS_ARRAYPTR /* ****** ****** */ ATSinline() atstype_arrptr atspre_arrpsz_get_ptrsize ( atstype_arrpsz psz, atstype_ref asz ) { *(atstype_size*)asz = psz.size ; return (psz.ptr) ; } // en of [atspre_arrpsz_get_ptrsize] /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_arrayptr_free (atstype_arrptr p0) { ATS_MFREE (p0) ; return ; } // end of [atspre_arrayptr_free] /* ****** ****** */ ATSinline() atstype_arrptr atspre_arrayptr_make_arrpsz (atstype_arrpsz psz) { return (psz).ptr ; } // end of [atspre_arrayptr_make_arrpsz] /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_ARRAYPTR) /* ****** ****** */ /* end of [arrayptr.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/integer_long.cats0000644000175000017500000000732613431250607025430 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer_long.atxt ** Time of generation: Sun Aug 21 20:48:35 2016 */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_INTEGER_LONG #define ATS2CPP_PRELUDE_CATS_INTEGER_LONG /* ****** ****** */ // #define \ atspre_g0int2int_int_lint(x) ((atstype_lint)(x)) #define \ atspre_g1int2int_int_lint(x) atspre_g0int2int_int_lint(x) // #define \ atspre_g0int2int_int_llint(x) ((atstype_llint)(x)) #define \ atspre_g1int2int_int_llint(x) atspre_g0int2int_int_llint(x) // /* ****** ****** */ // #define \ atspre_g0int2int_lint_int(x) ((atstype_int)(x)) #define \ atspre_g1int2int_lint_int(x) atspre_g0int2int_lint_int(x) // #define \ atspre_g0int2int_lint_lint(x) ((atstype_lint)(x)) #define \ atspre_g1int2int_lint_lint(x) atspre_g0int2int_lint_lint(x) // #define \ atspre_g0int2int_lint_llint(x) ((atstype_llint)(x)) #define \ atspre_g1int2int_lint_llint(x) atspre_g0int2int_lint_llint(x) // /* ****** ****** */ // #define \ atspre_g0int2uint_int_ulint(x) ((atstype_ulint)(x)) #define \ atspre_g1int2uint_int_ulint(x) atspre_g0int2uint_int_ulint(x) // #define \ atspre_g0int2uint_int_ullint(x) ((atstype_ullint)(x)) #define \ atspre_g1int2uint_int_ullint(x) atspre_g0int2uint_int_ullint(x) // #define \ atspre_g0int2uint_lint_ulint(x) ((atstype_ulint)(x)) #define \ atspre_g1int2uint_lint_ulint(x) atspre_g0int2uint_lint_ulint(x) // #define \ atspre_g0int2uint_lint_ullint(x) ((atstype_ullint)(x)) #define \ atspre_g1int2uint_lint_ullint(x) atspre_g0int2uint_lint_ullint(x) // #define \ atspre_g0int2uint_llint_ullint(x) ((atstype_ullint)(x)) #define \ atspre_g1int2uint_llint_ullint(x) atspre_g0int2uint_llint_ullint(x) // /* ****** ****** */ #define atspre_g0uint2int_uint_lint(x) ((atstype_lint)(x)) #define atspre_g0uint2int_uint_llint(x) ((atstype_llint)(x)) #define atspre_g1uint2int_uint_int atspre_g0uint2int_uint_int #define atspre_g1uint2int_uint_lint atspre_g0uint2int_uint_lint #define atspre_g1uint2int_uint_llint atspre_g0uint2int_uint_llint #define atspre_g0uint2uint_uint_ulint(x) ((atstype_ulint)(x)) #define atspre_g0uint2uint_uint_ullint(x) ((atstype_ullint)(x)) #define atspre_g1uint2uint_uint_ulint atspre_g0uint2uint_uint_ulint #define atspre_g1uint2uint_uint_ullint atspre_g0uint2uint_uint_ullint /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_INTEGER_LONG) /* ****** ****** */ /* end of [integer_long.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/basics.cats0000644000175000017500000001132013431250607024205 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/basics.atxt ** Time of generation: Sun Nov 20 15:37:51 2016 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_BASICS #define ATS2CPP_PRELUDE_CATS_BASICS /* ****** ****** */ #include #include /* ****** ****** */ ATSinline() atstype_int atspre_lor_int_int ( atstype_int x1 , atstype_int x2 ) { return ((x1)|(x2)) ; } /* [atspre_lor_int_int] */ ATSinline() atstype_int atspre_land_int_int ( atstype_int x1 , atstype_int x2 ) { return ((x1)&(x2)) ; } /* [atspre_land_int_int] */ ATSinline() atstype_int atspre_lxor_int_int ( atstype_int x1 , atstype_int x2 ) { return ((x1)^(x2)) ; } /* [atspre_lxor_int_int] */ /* ****** ****** */ ATSinline() atstype_int atspre_int2sgn (atstype_int x) { return ((x < 0) ? -1 : ((x > 0) ? 1 : 0)) ; } /* [atspre_int2sgn] */ /* ****** ****** */ // #if(1) // ATSinline() atsvoid_t0ype atspre_cloptr_free ( atstype_cloptr pclo ) { ATS_MFREE(pclo) ; return ; } /* [atspre_cloptr_free] */ // #endif // #if(0) // /* ****** ****** */ ATSinline() atstype_string atspre_argv_get_at ( atstype_arrptr argv, atstype_int i ) { return (((atstype_string*)argv)[i]) ; } /* end of [atspre_argv_get_at] */ ATSinline() atsvoid_t0ype atspre_argv_set_at ( atstype_arrptr argv , atstype_int i, atstype_string x ) { ((atstype_string*)argv)[i] = x ; return ; } /* end of [atspre_argv_set_at] */ /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_exit (atstype_int ecode) { exit(ecode) ; return ; } // end of [atspre_exit] ATSinline() atsvoid_t0ype atspre_exit_errmsg ( atstype_int ecode, atstype_string msg ) { fprintf(stderr, "exit(ATS): %s", (char*)msg); exit(ecode); return; } // end of [atspre_exit_errmsg] /* ****** ****** */ #define atspre_exit_void atspre_exit #define atspre_exit_errmsg_void atspre_exit_errmsg /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_assert_bool (atstype_bool b) { if (!b) exit(1) ; return ; } /* endfun */ // #define atspre_assert_bool0 atspre_assert_bool #define atspre_assert_bool1 atspre_assert_bool // /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_assert_errmsg_bool ( atstype_bool b, atstype_string msg ) { if (!b) { fprintf(stderr, "%s", (char*)msg) ; exit(1) ; } // end of [if] return ; } /* endfun */ // #define atspre_assert_errmsg_bool0 atspre_assert_errmsg_bool #define atspre_assert_errmsg_bool1 atspre_assert_errmsg_bool // /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_assert_errmsg2_bool ( atstype_bool b , atstype_string msg1, atstype_string msg2 ) { if (!b) { fprintf(stderr, "%s%s", (char*)msg1, (char*)msg2) ; exit(1) ; } // end of [if] return ; } /* endfun */ // #define atspre_assert_errmsg2_bool0 atspre_assert_errmsg2_bool #define atspre_assert_errmsg2_bool1 atspre_assert_errmsg2_bool // /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_fprint_newline (atstype_ref out) { int n ; int err = -1 ; n = fprintf((FILE*)out, "\n") ; if (n > 0) err = fflush((FILE*)out) ; if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_newline] failed.") ; exit(1) ; } // end of [if] return ; } /* endfun */ // #define atspre_print_newline() atspre_fprint_newline(stdout) #define atspre_prerr_newline() atspre_fprint_newline(stderr) // /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_BASICS) /* ****** ****** */ /* end of [basics.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/integer_short.cats0000644000175000017500000003330113431250607025620 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer_short.atxt ** Time of generation: Sun Aug 21 20:48:35 2016 */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_INTEGER_SHORT #define ATS2CPP_PRELUDE_CATS_INTEGER_SHORT /* ****** ****** */ // #define \ atspre_g0int2int_int_sint(x) ((atstype_sint)(x)) #define \ atspre_g1int2int_int_sint(x) atspre_g0int2int_int_sint(x) #define \ atspre_g0uint2int_uint_sint(x) ((atstype_sint)(x)) #define \ atspre_g1uint2int_uint_sint(x) atspre_g0uint2int_uint_sint(x) // #define \ atspre_g0int2uint_int_usint(x) ((atstype_usint)(x)) #define \ atspre_g1int2uint_int_usint(x) atspre_g0int2uint_int_usint(x) #define \ atspre_g0uint2uint_uint_usint(x) ((atstype_usint)(x)) #define \ atspre_g1uint2uint_uint_usint(x) atspre_g0uint2uint_uint_usint(x) // /* ****** ****** */ // #define \ atspre_g0int2uint_sint_usint(x) ((atstype_usint)(x)) #define \ atspre_g1int2uint_sint_usint(x) atspre_g0int2uint_sint_usint(x) #define \ atspre_g0uint2int_usint_sint(x) ((atstype_usint)(x)) #define \ atspre_g1uint2int_usint_sint(x) atspre_g0uint2int_sint_usint(x) // /* ****** ****** */ // #define \ atspre_g0int2int_sint_int(x) ((atstype_int)(x)) #define \ atspre_g1int2int_sint_int(x) atspre_g0int2int_sint_int(x) // #define \ atspre_g0uint2uint_usint_uint(x) ((atstype_uint)(x)) #define \ atspre_g1uint2uint_usint_uint(x) atspre_g0uint2uint_usint_uint(x) // /* ****** ****** */ // ATSinline() atstype_sint atspre_g0int_neg_sint (atstype_sint x) { return (-x) ; } // end of [atspre_g0int_neg_sint] ATSinline() atstype_sint atspre_g0int_abs_sint (atstype_sint x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_sint] ATSinline() atstype_sint atspre_g0int_succ_sint (atstype_sint x) { return (x + 1) ; } // end of [atspre_g0int_succ_sint] ATSinline() atstype_sint atspre_g0int_pred_sint (atstype_sint x) { return (x - 1) ; } // end of [atspre_g0int_pred_sint] ATSinline() atstype_sint atspre_g0int_half_sint (atstype_sint x) { return (x / 2) ; } // end of [atspre_g0int_half_sint] ATSinline() atstype_sint atspre_g0int_add_sint (atstype_sint x1, atstype_sint x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_sint] ATSinline() atstype_sint atspre_g0int_sub_sint (atstype_sint x1, atstype_sint x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_sint] ATSinline() atstype_sint atspre_g0int_mul_sint (atstype_sint x1, atstype_sint x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_sint] ATSinline() atstype_sint atspre_g0int_div_sint (atstype_sint x1, atstype_sint x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_sint] ATSinline() atstype_sint atspre_g0int_mod_sint (atstype_sint x1, atstype_sint x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_sint] ATSinline() atstype_sint atspre_g0int_nmod_sint (atstype_sint x1, atstype_sint x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_sint] ATSinline() atstype_sint atspre_g0int_asl_sint (atstype_sint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_sint] ATSinline() atstype_sint atspre_g0int_asr_sint (atstype_sint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_sint] ATSinline() atstype_bool atspre_g0int_lt_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_sint] ATSinline() atstype_bool atspre_g0int_lte_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_sint] ATSinline() atstype_bool atspre_g0int_gt_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_sint] ATSinline() atstype_bool atspre_g0int_gte_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_sint] ATSinline() atstype_bool atspre_g0int_eq_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_sint] ATSinline() atstype_bool atspre_g0int_neq_sint ( atstype_sint x1, atstype_sint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_sint] ATSinline() atstype_int atspre_g0int_compare_sint ( atstype_sint x1, atstype_sint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_sint] ATSinline() atstype_sint atspre_g0int_max_sint (atstype_sint x1, atstype_sint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_sint] ATSinline() atstype_sint atspre_g0int_min_sint (atstype_sint x1, atstype_sint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_sint] ATSinline() atstype_bool atspre_g0int_isltz_sint (atstype_sint x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_sint] ATSinline() atstype_bool atspre_g0int_isltez_sint (atstype_sint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_sint] ATSinline() atstype_bool atspre_g0int_isgtz_sint (atstype_sint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_sint] ATSinline() atstype_bool atspre_g0int_isgtez_sint (atstype_sint x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_sint] ATSinline() atstype_bool atspre_g0int_iseqz_sint (atstype_sint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_sint] ATSinline() atstype_bool atspre_g0int_isneqz_sint (atstype_sint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_sint] // #define atspre_g1int_abs_sint atspre_g0int_abs_sint #define atspre_g1int_neg_sint atspre_g0int_neg_sint #define atspre_g1int_succ_sint atspre_g0int_succ_sint #define atspre_g1int_pred_sint atspre_g0int_pred_sint #define atspre_g1int_half_sint atspre_g0int_half_sint #define atspre_g1int_add_sint atspre_g0int_add_sint #define atspre_g1int_sub_sint atspre_g0int_sub_sint #define atspre_g1int_mul_sint atspre_g0int_mul_sint #define atspre_g1int_div_sint atspre_g0int_div_sint #define atspre_g1int_nmod_sint atspre_g0int_nmod_sint #define atspre_g1int_lt_sint atspre_g0int_lt_sint #define atspre_g1int_lte_sint atspre_g0int_lte_sint #define atspre_g1int_gt_sint atspre_g0int_gt_sint #define atspre_g1int_gte_sint atspre_g0int_gte_sint #define atspre_g1int_eq_sint atspre_g0int_eq_sint #define atspre_g1int_neq_sint atspre_g0int_neq_sint #define atspre_g1int_compare_sint atspre_g0int_compare_sint #define atspre_g1int_max_sint atspre_g0int_max_sint #define atspre_g1int_min_sint atspre_g0int_min_sint #define atspre_g1int_isltz_sint atspre_g0int_isltz_sint #define atspre_g1int_isltez_sint atspre_g0int_isltez_sint #define atspre_g1int_isgtz_sint atspre_g0int_isgtz_sint #define atspre_g1int_isgtez_sint atspre_g0int_isgtez_sint #define atspre_g1int_iseqz_sint atspre_g0int_iseqz_sint #define atspre_g1int_isneqz_sint atspre_g0int_isneqz_sint // /* ****** ****** */ // ATSinline() atstype_usint atspre_g0uint_succ_usint (atstype_usint x) { return (x + 1) ; } // end of [atspre_g0uint_succ_usint] ATSinline() atstype_usint atspre_g0uint_pred_usint (atstype_usint x) { return (x - 1) ; } // end of [atspre_g0uint_pred_usint] ATSinline() atstype_usint atspre_g0uint_half_usint (atstype_usint x) { return (x >> 1) ; } // end of [atspre_g0uint_half_usint] ATSinline() atstype_usint atspre_g0uint_add_usint (atstype_usint x1, atstype_usint x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_usint] ATSinline() atstype_usint atspre_g0uint_sub_usint (atstype_usint x1, atstype_usint x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_usint] ATSinline() atstype_usint atspre_g0uint_mul_usint (atstype_usint x1, atstype_usint x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_usint] ATSinline() atstype_usint atspre_g0uint_div_usint (atstype_usint x1, atstype_usint x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_usint] ATSinline() atstype_usint atspre_g0uint_mod_usint (atstype_usint x1, atstype_usint x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_usint] ATSinline() atstype_usint atspre_g0uint_lsl_usint (atstype_usint x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_usint] ATSinline() atstype_usint atspre_g0uint_lsr_usint (atstype_usint x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_usint] ATSinline() atstype_usint atspre_g0uint_lnot_usint (atstype_usint x) { return ~(x) ; } // end of [atspre_g0uint_lnot_usint] ATSinline() atstype_usint atspre_g0uint_lor_usint (atstype_usint x, atstype_usint y) { return (x | y) ; } // end of [atspre_g0uint_usint_usint] ATSinline() atstype_usint atspre_g0uint_land_usint (atstype_usint x, atstype_usint y) { return (x & y) ; } // end of [atspre_g0uint_usint_usint] ATSinline() atstype_usint atspre_g0uint_lxor_usint (atstype_usint x, atstype_usint y) { return (x ^ y) ; } // end of [atspre_g0uint_usint_usint] ATSinline() atstype_bool atspre_g0uint_lt_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_usint] ATSinline() atstype_bool atspre_g0uint_lte_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_usint] ATSinline() atstype_bool atspre_g0uint_gt_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_usint] ATSinline() atstype_bool atspre_g0uint_gte_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_usint] ATSinline() atstype_bool atspre_g0uint_eq_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_usint] ATSinline() atstype_bool atspre_g0uint_neq_usint ( atstype_usint x1, atstype_usint x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_usint] ATSinline() atstype_int atspre_g0uint_compare_usint ( atstype_usint x1, atstype_usint x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_usint] ATSinline() atstype_usint atspre_g0uint_max_usint (atstype_usint x1, atstype_usint x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_usint] ATSinline() atstype_usint atspre_g0uint_min_usint (atstype_usint x1, atstype_usint x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_usint] ATSinline() atstype_bool atspre_g0uint_isltez_usint (atstype_usint x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_usint] ATSinline() atstype_bool atspre_g0uint_isgtz_usint (atstype_usint x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_usint] ATSinline() atstype_bool atspre_g0uint_iseqz_usint (atstype_usint x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_usint] ATSinline() atstype_bool atspre_g0uint_isneqz_usint (atstype_usint x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_usint] // #define atspre_g1uint_succ_usint atspre_g0uint_succ_usint #define atspre_g1uint_pred_usint atspre_g0uint_pred_usint #define atspre_g1uint_half_usint atspre_g0uint_half_usint #define atspre_g1uint_add_usint atspre_g0uint_add_usint #define atspre_g1uint_sub_usint atspre_g0uint_sub_usint #define atspre_g1uint_mul_usint atspre_g0uint_mul_usint #define atspre_g1uint_div_usint atspre_g0uint_div_usint #define atspre_g1uint_mod_usint atspre_g0uint_mod_usint #define atspre_g1uint_lt_usint atspre_g0uint_lt_usint #define atspre_g1uint_lte_usint atspre_g0uint_lte_usint #define atspre_g1uint_gt_usint atspre_g0uint_gt_usint #define atspre_g1uint_gte_usint atspre_g0uint_gte_usint #define atspre_g1uint_eq_usint atspre_g0uint_eq_usint #define atspre_g1uint_neq_usint atspre_g0uint_neq_usint #define atspre_g1uint_compare_usint atspre_g0uint_compare_usint #define atspre_g1uint_max_usint atspre_g0uint_max_usint #define atspre_g1uint_min_usint atspre_g0uint_min_usint #define atspre_g1uint_isltez_usint atspre_g0uint_isltez_usint #define atspre_g1uint_isgtz_usint atspre_g0uint_isgtz_usint #define atspre_g1uint_iseqz_usint atspre_g0uint_iseqz_usint #define atspre_g1uint_isneqz_usint atspre_g0uint_isneqz_usint // /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_INTEGER_SHORT) /* ****** ****** */ /* end of [integer_short.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/integer_fixed.cats0000644000175000017500000011173513431250607025570 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: January, 2013 *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/integer_fixed.atxt ** Time of generation: Sun Aug 21 20:48:36 2016 */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_INTEGER_FIXED #define ATS2CPP_PRELUDE_CATS_INTEGER_FIXED /* ****** ****** */ /* #include */ /* ****** ****** */ typedef int8_t atstype_int8 ; typedef int16_t atstype_int16 ; typedef int32_t atstype_int32 ; typedef int64_t atstype_int64 ; typedef uint8_t atstype_uint8 ; typedef uint16_t atstype_uint16 ; typedef uint32_t atstype_uint32 ; typedef uint64_t atstype_uint64 ; /* ****** ****** */ #define \ atspre_g0int2int_int8_int(x) ((atstype_int)(x)) #define \ atspre_g0int2int_int16_int(x) ((atstype_int)(x)) #define \ atspre_g0int2int_int32_int(x) ((atstype_int)(x)) #define \ atspre_g0int2int_int64_int(x) ((atstype_int)(x)) /* ****** ****** */ // ATSinline() atstype_int8 atspre_g0int_neg_int8 (atstype_int8 x) { return (-x) ; } // end of [atspre_g0int_neg_int8] ATSinline() atstype_int8 atspre_g0int_abs_int8 (atstype_int8 x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int8] ATSinline() atstype_int8 atspre_g0int_succ_int8 (atstype_int8 x) { return (x + 1) ; } // end of [atspre_g0int_succ_int8] ATSinline() atstype_int8 atspre_g0int_pred_int8 (atstype_int8 x) { return (x - 1) ; } // end of [atspre_g0int_pred_int8] ATSinline() atstype_int8 atspre_g0int_half_int8 (atstype_int8 x) { return (x / 2) ; } // end of [atspre_g0int_half_int8] ATSinline() atstype_int8 atspre_g0int_add_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int8] ATSinline() atstype_int8 atspre_g0int_sub_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int8] ATSinline() atstype_int8 atspre_g0int_mul_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int8] ATSinline() atstype_int8 atspre_g0int_div_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int8] ATSinline() atstype_int8 atspre_g0int_mod_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int8] ATSinline() atstype_int8 atspre_g0int_nmod_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int8] ATSinline() atstype_int8 atspre_g0int_asl_int8 (atstype_int8 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int8] ATSinline() atstype_int8 atspre_g0int_asr_int8 (atstype_int8 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int8] ATSinline() atstype_bool atspre_g0int_lt_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int8] ATSinline() atstype_bool atspre_g0int_lte_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int8] ATSinline() atstype_bool atspre_g0int_gt_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int8] ATSinline() atstype_bool atspre_g0int_gte_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int8] ATSinline() atstype_bool atspre_g0int_eq_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int8] ATSinline() atstype_bool atspre_g0int_neq_int8 ( atstype_int8 x1, atstype_int8 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int8] ATSinline() atstype_int atspre_g0int_compare_int8 ( atstype_int8 x1, atstype_int8 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int8] ATSinline() atstype_int8 atspre_g0int_max_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int8] ATSinline() atstype_int8 atspre_g0int_min_int8 (atstype_int8 x1, atstype_int8 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int8] ATSinline() atstype_bool atspre_g0int_isltz_int8 (atstype_int8 x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int8] ATSinline() atstype_bool atspre_g0int_isltez_int8 (atstype_int8 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int8] ATSinline() atstype_bool atspre_g0int_isgtz_int8 (atstype_int8 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int8] ATSinline() atstype_bool atspre_g0int_isgtez_int8 (atstype_int8 x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int8] ATSinline() atstype_bool atspre_g0int_iseqz_int8 (atstype_int8 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int8] ATSinline() atstype_bool atspre_g0int_isneqz_int8 (atstype_int8 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int8] ATSinline() atstype_int16 atspre_g0int_neg_int16 (atstype_int16 x) { return (-x) ; } // end of [atspre_g0int_neg_int16] ATSinline() atstype_int16 atspre_g0int_abs_int16 (atstype_int16 x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int16] ATSinline() atstype_int16 atspre_g0int_succ_int16 (atstype_int16 x) { return (x + 1) ; } // end of [atspre_g0int_succ_int16] ATSinline() atstype_int16 atspre_g0int_pred_int16 (atstype_int16 x) { return (x - 1) ; } // end of [atspre_g0int_pred_int16] ATSinline() atstype_int16 atspre_g0int_half_int16 (atstype_int16 x) { return (x / 2) ; } // end of [atspre_g0int_half_int16] ATSinline() atstype_int16 atspre_g0int_add_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int16] ATSinline() atstype_int16 atspre_g0int_sub_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int16] ATSinline() atstype_int16 atspre_g0int_mul_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int16] ATSinline() atstype_int16 atspre_g0int_div_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int16] ATSinline() atstype_int16 atspre_g0int_mod_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int16] ATSinline() atstype_int16 atspre_g0int_nmod_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int16] ATSinline() atstype_int16 atspre_g0int_asl_int16 (atstype_int16 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int16] ATSinline() atstype_int16 atspre_g0int_asr_int16 (atstype_int16 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int16] ATSinline() atstype_bool atspre_g0int_lt_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int16] ATSinline() atstype_bool atspre_g0int_lte_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int16] ATSinline() atstype_bool atspre_g0int_gt_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int16] ATSinline() atstype_bool atspre_g0int_gte_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int16] ATSinline() atstype_bool atspre_g0int_eq_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int16] ATSinline() atstype_bool atspre_g0int_neq_int16 ( atstype_int16 x1, atstype_int16 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int16] ATSinline() atstype_int atspre_g0int_compare_int16 ( atstype_int16 x1, atstype_int16 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int16] ATSinline() atstype_int16 atspre_g0int_max_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int16] ATSinline() atstype_int16 atspre_g0int_min_int16 (atstype_int16 x1, atstype_int16 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int16] ATSinline() atstype_bool atspre_g0int_isltz_int16 (atstype_int16 x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int16] ATSinline() atstype_bool atspre_g0int_isltez_int16 (atstype_int16 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int16] ATSinline() atstype_bool atspre_g0int_isgtz_int16 (atstype_int16 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int16] ATSinline() atstype_bool atspre_g0int_isgtez_int16 (atstype_int16 x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int16] ATSinline() atstype_bool atspre_g0int_iseqz_int16 (atstype_int16 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int16] ATSinline() atstype_bool atspre_g0int_isneqz_int16 (atstype_int16 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int16] ATSinline() atstype_int32 atspre_g0int_neg_int32 (atstype_int32 x) { return (-x) ; } // end of [atspre_g0int_neg_int32] ATSinline() atstype_int32 atspre_g0int_abs_int32 (atstype_int32 x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int32] ATSinline() atstype_int32 atspre_g0int_succ_int32 (atstype_int32 x) { return (x + 1) ; } // end of [atspre_g0int_succ_int32] ATSinline() atstype_int32 atspre_g0int_pred_int32 (atstype_int32 x) { return (x - 1) ; } // end of [atspre_g0int_pred_int32] ATSinline() atstype_int32 atspre_g0int_half_int32 (atstype_int32 x) { return (x / 2) ; } // end of [atspre_g0int_half_int32] ATSinline() atstype_int32 atspre_g0int_add_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int32] ATSinline() atstype_int32 atspre_g0int_sub_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int32] ATSinline() atstype_int32 atspre_g0int_mul_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int32] ATSinline() atstype_int32 atspre_g0int_div_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int32] ATSinline() atstype_int32 atspre_g0int_mod_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int32] ATSinline() atstype_int32 atspre_g0int_nmod_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int32] ATSinline() atstype_int32 atspre_g0int_asl_int32 (atstype_int32 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int32] ATSinline() atstype_int32 atspre_g0int_asr_int32 (atstype_int32 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int32] ATSinline() atstype_bool atspre_g0int_lt_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int32] ATSinline() atstype_bool atspre_g0int_lte_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int32] ATSinline() atstype_bool atspre_g0int_gt_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int32] ATSinline() atstype_bool atspre_g0int_gte_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int32] ATSinline() atstype_bool atspre_g0int_eq_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int32] ATSinline() atstype_bool atspre_g0int_neq_int32 ( atstype_int32 x1, atstype_int32 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int32] ATSinline() atstype_int atspre_g0int_compare_int32 ( atstype_int32 x1, atstype_int32 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int32] ATSinline() atstype_int32 atspre_g0int_max_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int32] ATSinline() atstype_int32 atspre_g0int_min_int32 (atstype_int32 x1, atstype_int32 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int32] ATSinline() atstype_bool atspre_g0int_isltz_int32 (atstype_int32 x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int32] ATSinline() atstype_bool atspre_g0int_isltez_int32 (atstype_int32 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int32] ATSinline() atstype_bool atspre_g0int_isgtz_int32 (atstype_int32 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int32] ATSinline() atstype_bool atspre_g0int_isgtez_int32 (atstype_int32 x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int32] ATSinline() atstype_bool atspre_g0int_iseqz_int32 (atstype_int32 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int32] ATSinline() atstype_bool atspre_g0int_isneqz_int32 (atstype_int32 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int32] ATSinline() atstype_int64 atspre_g0int_neg_int64 (atstype_int64 x) { return (-x) ; } // end of [atspre_g0int_neg_int64] ATSinline() atstype_int64 atspre_g0int_abs_int64 (atstype_int64 x) { return (x >= 0 ? x : -x) ; } // end of [atspre_g0int_abs_int64] ATSinline() atstype_int64 atspre_g0int_succ_int64 (atstype_int64 x) { return (x + 1) ; } // end of [atspre_g0int_succ_int64] ATSinline() atstype_int64 atspre_g0int_pred_int64 (atstype_int64 x) { return (x - 1) ; } // end of [atspre_g0int_pred_int64] ATSinline() atstype_int64 atspre_g0int_half_int64 (atstype_int64 x) { return (x / 2) ; } // end of [atspre_g0int_half_int64] ATSinline() atstype_int64 atspre_g0int_add_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 + x2) ; } // end of [atspre_g0int_add_int64] ATSinline() atstype_int64 atspre_g0int_sub_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 - x2) ; } // end of [atspre_g0int_sub_int64] ATSinline() atstype_int64 atspre_g0int_mul_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 * x2) ; } // end of [atspre_g0int_mul_int64] ATSinline() atstype_int64 atspre_g0int_div_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 / x2) ; } // end of [atspre_g0int_div_int64] ATSinline() atstype_int64 atspre_g0int_mod_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 % x2) ; } // end of [atspre_g0int_mod_int64] ATSinline() atstype_int64 atspre_g0int_nmod_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 % x2) ; } // end of [atspre_g0int_nmod_int64] ATSinline() atstype_int64 atspre_g0int_asl_int64 (atstype_int64 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0int_asl_int64] ATSinline() atstype_int64 atspre_g0int_asr_int64 (atstype_int64 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0int_asr_int64] ATSinline() atstype_bool atspre_g0int_lt_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lt_int64] ATSinline() atstype_bool atspre_g0int_lte_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_lte_int64] ATSinline() atstype_bool atspre_g0int_gt_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gt_int64] ATSinline() atstype_bool atspre_g0int_gte_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_gte_int64] ATSinline() atstype_bool atspre_g0int_eq_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_eq_int64] ATSinline() atstype_bool atspre_g0int_neq_int64 ( atstype_int64 x1, atstype_int64 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_neq_int64] ATSinline() atstype_int atspre_g0int_compare_int64 ( atstype_int64 x1, atstype_int64 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0int_compare_int64] ATSinline() atstype_int64 atspre_g0int_max_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0int_max_int64] ATSinline() atstype_int64 atspre_g0int_min_int64 (atstype_int64 x1, atstype_int64 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0int_min_int64] ATSinline() atstype_bool atspre_g0int_isltz_int64 (atstype_int64 x) { return (x < 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltz_int64] ATSinline() atstype_bool atspre_g0int_isltez_int64 (atstype_int64 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isltez_int64] ATSinline() atstype_bool atspre_g0int_isgtz_int64 (atstype_int64 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtz_int64] ATSinline() atstype_bool atspre_g0int_isgtez_int64 (atstype_int64 x) { return (x >= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isgtez_int64] ATSinline() atstype_bool atspre_g0int_iseqz_int64 (atstype_int64 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_iseqz_int64] ATSinline() atstype_bool atspre_g0int_isneqz_int64 (atstype_int64 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0int_isneqz_int64] // /* ****** ****** */ // #define \ atspre_g0int2uint_int8_uint(x) ((atstype_uint)(x)) #define \ atspre_g0int2uint_int16_uint(x) ((atstype_uint)(x)) #define \ atspre_g0int2uint_int32_uint(x) ((atstype_uint)(x)) #define \ atspre_g0int2uint_int64_uint(x) ((atstype_uint)(x)) // #define \ atspre_g0uint2int_uint8_int(x) ((atstype_int)(x)) #define \ atspre_g0uint2int_uint16_int(x) ((atstype_int)(x)) #define \ atspre_g0uint2int_uint32_int(x) ((atstype_int)(x)) #define \ atspre_g0uint2int_uint64_int(x) ((atstype_int)(x)) // #define \ atspre_g0uint2uint_uint8_uint(x) ((atstype_uint)(x)) #define \ atspre_g0uint2uint_uint16_uint(x) ((atstype_uint)(x)) #define \ atspre_g0uint2uint_uint32_uint(x) ((atstype_uint)(x)) #define \ atspre_g0uint2uint_uint64_uint(x) ((atstype_uint)(x)) // /* ****** ****** */ // ATSinline() atstype_uint8 atspre_g0uint_succ_uint8 (atstype_uint8 x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint8] ATSinline() atstype_uint8 atspre_g0uint_pred_uint8 (atstype_uint8 x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint8] ATSinline() atstype_uint8 atspre_g0uint_half_uint8 (atstype_uint8 x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint8] ATSinline() atstype_uint8 atspre_g0uint_add_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint8] ATSinline() atstype_uint8 atspre_g0uint_sub_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint8] ATSinline() atstype_uint8 atspre_g0uint_mul_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint8] ATSinline() atstype_uint8 atspre_g0uint_div_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint8] ATSinline() atstype_uint8 atspre_g0uint_mod_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint8] ATSinline() atstype_uint8 atspre_g0uint_lsl_uint8 (atstype_uint8 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint8] ATSinline() atstype_uint8 atspre_g0uint_lsr_uint8 (atstype_uint8 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint8] ATSinline() atstype_uint8 atspre_g0uint_lnot_uint8 (atstype_uint8 x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint8] ATSinline() atstype_uint8 atspre_g0uint_lor_uint8 (atstype_uint8 x, atstype_uint8 y) { return (x | y) ; } // end of [atspre_g0uint_uint8_uint8] ATSinline() atstype_uint8 atspre_g0uint_land_uint8 (atstype_uint8 x, atstype_uint8 y) { return (x & y) ; } // end of [atspre_g0uint_uint8_uint8] ATSinline() atstype_uint8 atspre_g0uint_lxor_uint8 (atstype_uint8 x, atstype_uint8 y) { return (x ^ y) ; } // end of [atspre_g0uint_uint8_uint8] ATSinline() atstype_bool atspre_g0uint_lt_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint8] ATSinline() atstype_bool atspre_g0uint_lte_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint8] ATSinline() atstype_bool atspre_g0uint_gt_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint8] ATSinline() atstype_bool atspre_g0uint_gte_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint8] ATSinline() atstype_bool atspre_g0uint_eq_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint8] ATSinline() atstype_bool atspre_g0uint_neq_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint8] ATSinline() atstype_int atspre_g0uint_compare_uint8 ( atstype_uint8 x1, atstype_uint8 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint8] ATSinline() atstype_uint8 atspre_g0uint_max_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint8] ATSinline() atstype_uint8 atspre_g0uint_min_uint8 (atstype_uint8 x1, atstype_uint8 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint8] ATSinline() atstype_bool atspre_g0uint_isltez_uint8 (atstype_uint8 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint8] ATSinline() atstype_bool atspre_g0uint_isgtz_uint8 (atstype_uint8 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint8] ATSinline() atstype_bool atspre_g0uint_iseqz_uint8 (atstype_uint8 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint8] ATSinline() atstype_bool atspre_g0uint_isneqz_uint8 (atstype_uint8 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint8] ATSinline() atstype_uint16 atspre_g0uint_succ_uint16 (atstype_uint16 x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint16] ATSinline() atstype_uint16 atspre_g0uint_pred_uint16 (atstype_uint16 x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint16] ATSinline() atstype_uint16 atspre_g0uint_half_uint16 (atstype_uint16 x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint16] ATSinline() atstype_uint16 atspre_g0uint_add_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint16] ATSinline() atstype_uint16 atspre_g0uint_sub_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint16] ATSinline() atstype_uint16 atspre_g0uint_mul_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint16] ATSinline() atstype_uint16 atspre_g0uint_div_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint16] ATSinline() atstype_uint16 atspre_g0uint_mod_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint16] ATSinline() atstype_uint16 atspre_g0uint_lsl_uint16 (atstype_uint16 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint16] ATSinline() atstype_uint16 atspre_g0uint_lsr_uint16 (atstype_uint16 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint16] ATSinline() atstype_uint16 atspre_g0uint_lnot_uint16 (atstype_uint16 x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint16] ATSinline() atstype_uint16 atspre_g0uint_lor_uint16 (atstype_uint16 x, atstype_uint16 y) { return (x | y) ; } // end of [atspre_g0uint_uint16_uint16] ATSinline() atstype_uint16 atspre_g0uint_land_uint16 (atstype_uint16 x, atstype_uint16 y) { return (x & y) ; } // end of [atspre_g0uint_uint16_uint16] ATSinline() atstype_uint16 atspre_g0uint_lxor_uint16 (atstype_uint16 x, atstype_uint16 y) { return (x ^ y) ; } // end of [atspre_g0uint_uint16_uint16] ATSinline() atstype_bool atspre_g0uint_lt_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint16] ATSinline() atstype_bool atspre_g0uint_lte_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint16] ATSinline() atstype_bool atspre_g0uint_gt_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint16] ATSinline() atstype_bool atspre_g0uint_gte_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint16] ATSinline() atstype_bool atspre_g0uint_eq_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint16] ATSinline() atstype_bool atspre_g0uint_neq_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint16] ATSinline() atstype_int atspre_g0uint_compare_uint16 ( atstype_uint16 x1, atstype_uint16 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint16] ATSinline() atstype_uint16 atspre_g0uint_max_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint16] ATSinline() atstype_uint16 atspre_g0uint_min_uint16 (atstype_uint16 x1, atstype_uint16 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint16] ATSinline() atstype_bool atspre_g0uint_isltez_uint16 (atstype_uint16 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint16] ATSinline() atstype_bool atspre_g0uint_isgtz_uint16 (atstype_uint16 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint16] ATSinline() atstype_bool atspre_g0uint_iseqz_uint16 (atstype_uint16 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint16] ATSinline() atstype_bool atspre_g0uint_isneqz_uint16 (atstype_uint16 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint16] ATSinline() atstype_uint32 atspre_g0uint_succ_uint32 (atstype_uint32 x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint32] ATSinline() atstype_uint32 atspre_g0uint_pred_uint32 (atstype_uint32 x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint32] ATSinline() atstype_uint32 atspre_g0uint_half_uint32 (atstype_uint32 x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint32] ATSinline() atstype_uint32 atspre_g0uint_add_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint32] ATSinline() atstype_uint32 atspre_g0uint_sub_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint32] ATSinline() atstype_uint32 atspre_g0uint_mul_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint32] ATSinline() atstype_uint32 atspre_g0uint_div_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint32] ATSinline() atstype_uint32 atspre_g0uint_mod_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint32] ATSinline() atstype_uint32 atspre_g0uint_lsl_uint32 (atstype_uint32 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint32] ATSinline() atstype_uint32 atspre_g0uint_lsr_uint32 (atstype_uint32 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint32] ATSinline() atstype_uint32 atspre_g0uint_lnot_uint32 (atstype_uint32 x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint32] ATSinline() atstype_uint32 atspre_g0uint_lor_uint32 (atstype_uint32 x, atstype_uint32 y) { return (x | y) ; } // end of [atspre_g0uint_uint32_uint32] ATSinline() atstype_uint32 atspre_g0uint_land_uint32 (atstype_uint32 x, atstype_uint32 y) { return (x & y) ; } // end of [atspre_g0uint_uint32_uint32] ATSinline() atstype_uint32 atspre_g0uint_lxor_uint32 (atstype_uint32 x, atstype_uint32 y) { return (x ^ y) ; } // end of [atspre_g0uint_uint32_uint32] ATSinline() atstype_bool atspre_g0uint_lt_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint32] ATSinline() atstype_bool atspre_g0uint_lte_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint32] ATSinline() atstype_bool atspre_g0uint_gt_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint32] ATSinline() atstype_bool atspre_g0uint_gte_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint32] ATSinline() atstype_bool atspre_g0uint_eq_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint32] ATSinline() atstype_bool atspre_g0uint_neq_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint32] ATSinline() atstype_int atspre_g0uint_compare_uint32 ( atstype_uint32 x1, atstype_uint32 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint32] ATSinline() atstype_uint32 atspre_g0uint_max_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint32] ATSinline() atstype_uint32 atspre_g0uint_min_uint32 (atstype_uint32 x1, atstype_uint32 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint32] ATSinline() atstype_bool atspre_g0uint_isltez_uint32 (atstype_uint32 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint32] ATSinline() atstype_bool atspre_g0uint_isgtz_uint32 (atstype_uint32 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint32] ATSinline() atstype_bool atspre_g0uint_iseqz_uint32 (atstype_uint32 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint32] ATSinline() atstype_bool atspre_g0uint_isneqz_uint32 (atstype_uint32 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint32] ATSinline() atstype_uint64 atspre_g0uint_succ_uint64 (atstype_uint64 x) { return (x + 1) ; } // end of [atspre_g0uint_succ_uint64] ATSinline() atstype_uint64 atspre_g0uint_pred_uint64 (atstype_uint64 x) { return (x - 1) ; } // end of [atspre_g0uint_pred_uint64] ATSinline() atstype_uint64 atspre_g0uint_half_uint64 (atstype_uint64 x) { return (x >> 1) ; } // end of [atspre_g0uint_half_uint64] ATSinline() atstype_uint64 atspre_g0uint_add_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 + x2) ; } // end of [atspre_g0uint_add_uint64] ATSinline() atstype_uint64 atspre_g0uint_sub_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 - x2) ; } // end of [atspre_g0uint_sub_uint64] ATSinline() atstype_uint64 atspre_g0uint_mul_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 * x2) ; } // end of [atspre_g0uint_mul_uint64] ATSinline() atstype_uint64 atspre_g0uint_div_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 / x2) ; } // end of [atspre_g0uint_div_uint64] ATSinline() atstype_uint64 atspre_g0uint_mod_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 % x2) ; } // end of [atspre_g0uint_mod_uint64] ATSinline() atstype_uint64 atspre_g0uint_lsl_uint64 (atstype_uint64 x, atstype_int n) { return (x << n) ; } // end of [atspre_g0uint_lsl_uint64] ATSinline() atstype_uint64 atspre_g0uint_lsr_uint64 (atstype_uint64 x, atstype_int n) { return (x >> n) ; } // end of [atspre_g0uint_lsr_uint64] ATSinline() atstype_uint64 atspre_g0uint_lnot_uint64 (atstype_uint64 x) { return ~(x) ; } // end of [atspre_g0uint_lnot_uint64] ATSinline() atstype_uint64 atspre_g0uint_lor_uint64 (atstype_uint64 x, atstype_uint64 y) { return (x | y) ; } // end of [atspre_g0uint_uint64_uint64] ATSinline() atstype_uint64 atspre_g0uint_land_uint64 (atstype_uint64 x, atstype_uint64 y) { return (x & y) ; } // end of [atspre_g0uint_uint64_uint64] ATSinline() atstype_uint64 atspre_g0uint_lxor_uint64 (atstype_uint64 x, atstype_uint64 y) { return (x ^ y) ; } // end of [atspre_g0uint_uint64_uint64] ATSinline() atstype_bool atspre_g0uint_lt_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 < x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lt_uint64] ATSinline() atstype_bool atspre_g0uint_lte_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 <= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_lte_uint64] ATSinline() atstype_bool atspre_g0uint_gt_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 > x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gt_uint64] ATSinline() atstype_bool atspre_g0uint_gte_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 >= x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_gte_uint64] ATSinline() atstype_bool atspre_g0uint_eq_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 == x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_eq_uint64] ATSinline() atstype_bool atspre_g0uint_neq_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { return (x1 != x2 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_neq_uint64] ATSinline() atstype_int atspre_g0uint_compare_uint64 ( atstype_uint64 x1, atstype_uint64 x2 ) { if (x1 < x2) return -1 ; else if (x1 > x2) return 1 ; else return 0 ; } // end of [atspre_g0uint_compare_uint64] ATSinline() atstype_uint64 atspre_g0uint_max_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 >= x2 ? x1 : x2) ; } // end of [atspre_g0uint_max_uint64] ATSinline() atstype_uint64 atspre_g0uint_min_uint64 (atstype_uint64 x1, atstype_uint64 x2) { return (x1 <= x2 ? x1 : x2) ; } // end of [atspre_g0uint_min_uint64] ATSinline() atstype_bool atspre_g0uint_isltez_uint64 (atstype_uint64 x) { return (x <= 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isltez_uint64] ATSinline() atstype_bool atspre_g0uint_isgtz_uint64 (atstype_uint64 x) { return (x > 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isgtz_uint64] ATSinline() atstype_bool atspre_g0uint_iseqz_uint64 (atstype_uint64 x) { return (x == 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_iseqz_uint64] ATSinline() atstype_bool atspre_g0uint_isneqz_uint64 (atstype_uint64 x) { return (x != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_g0uint_isneqz_uint64] // /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_INTEGER_FIXED) /* ****** ****** */ /* end of [integer_fixed.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/arrayref.cats0000644000175000017500000000356313431250607024566 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/arrayref.atxt ** Time of generation: Fri Feb 28 17:55:38 2014 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_ARRAYREF #define ATS2CPP_PRELUDE_CATS_ARRAYREF /* ****** ****** */ ATSinline() atstype_arrptr atspre_arrayref_make_arrpsz (atstype_arrpsz psz) { return (psz).ptr ; } // end of [atspre_arrayref_make_arrpsz] /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_ARRAYREF_CATS) /* ****** ****** */ /* end of [arrayref.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/bool.cats0000644000175000017500000001215213431250607023700 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/bool.atxt ** Time of generation: Fri Feb 28 17:55:34 2014 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: February, 2012 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_BOOL #define ATS2CPP_PRELUDE_CATS_BOOL /* ****** ****** */ ATSinline() atstype_bool atspre_int2bool (atstype_int x) { return (x != 0 ? atsbool_true : atsbool_false) ; } #define atspre_int2bool0 atspre_int2bool #define atspre_int2bool1 atspre_int2bool /* ****** ****** */ #define atspre_bool2int0(x) x #define atspre_bool2int1(x) x /* ****** ****** */ ATSinline() atstype_bool atspre_neg_bool (atstype_bool b) { return (b) ? atsbool_false : atsbool_true ; } // end of [atspre_neg_bool] #define atspre_neg_bool0 atspre_neg_bool #define atspre_neg_bool1 atspre_neg_bool ATSinline() atstype_bool atspre_add_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? atsbool_true : (b2) ; } // end of [atspre_add_bool_bool] #define atspre_add_bool0_bool0 atspre_add_bool_bool #define atspre_add_bool1_bool1 atspre_add_bool_bool ATSinline() atstype_bool atspre_mul_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? (b2) : atsbool_false ; } // end of [atspre_mul_bool_bool] #define atspre_mul_bool0_bool0 atspre_mul_bool_bool #define atspre_mul_bool1_bool1 atspre_mul_bool_bool /* ****** ****** */ ATSinline() atstype_bool atspre_xor_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? (!b2) : (b2) ; } // end of [atspre_xor_bool_bool] #define atspre_xor_bool0_bool0 atspre_xor_bool_bool #define atspre_xor_bool1_bool1 atspre_xor_bool_bool /* ****** ****** */ ATSinline() atstype_bool atspre_lt_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? atsbool_false : (b2) ; } // end of [atspre_lt_bool_bool] #define atspre_lt_bool0_bool0 atspre_lt_bool_bool #define atspre_lt_bool1_bool1 atspre_lt_bool_bool ATSinline() atstype_bool atspre_lte_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1) ? (b2) : atsbool_true ; } // end of [atspre_lte_bool_bool] #define atspre_lte_bool0_bool0 atspre_lte_bool_bool #define atspre_lte_bool1_bool1 atspre_lte_bool_bool ATSinline() atstype_bool atspre_gt_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b2) ? atsbool_false : (b1) ; } // end of [atspre_gt_bool_bool] #define atspre_gt_bool0_bool0 atspre_gt_bool_bool #define atspre_gt_bool1_bool1 atspre_gt_bool_bool ATSinline() atstype_bool atspre_gte_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b2) ? (b1) : atsbool_true ; } // end of [atspre_gte_bool_bool] #define atspre_gte_bool0_bool0 atspre_gte_bool_bool #define atspre_gte_bool1_bool1 atspre_gte_bool_bool ATSinline() atstype_bool atspre_eq_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1 == b2) ; } // end of [atspre_eq_bool_bool] #define atspre_eq_bool0_bool0 atspre_eq_bool_bool #define atspre_eq_bool1_bool1 atspre_eq_bool_bool ATSinline() atstype_bool atspre_neq_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1 != b2) ; } // end of [atspre_neq_bool_bool] #define atspre_neq_bool0_bool0 atspre_neq_bool_bool #define atspre_neq_bool1_bool1 atspre_neq_bool_bool /* ****** ****** */ ATSinline() atstype_int atspre_compare_bool_bool ( atstype_bool b1, atstype_bool b2 ) { return (b1 - b2) ; } // end of [atspre_compare_bool_bool] #define atspre_compare_bool0_bool0 atspre_compare_bool_bool #define atspre_compare_bool1_bool1 atspre_compare_bool_bool /* ****** ****** */ ATSinline() atstype_string atspre_bool2string ( atstype_bool x ) { return (x) ? "true" : "false" ; } // end of [atspre_bool2string] ATSinline() atstype_string atspre_tostring_bool ( atstype_bool x ) { return (x) ? "true" : "false" ; } // end of [atspre_tostring_bool] /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_BOOL) /* ****** ****** */ /* end of [bool.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/string.cats0000644000175000017500000001235113431250607024254 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/string.atxt ** Time of generation: Fri Feb 28 17:55:36 2014 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: April, 2012 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_STRING #define ATS2CPP_PRELUDE_CATS_STRING /* ****** ****** */ // #include // /* ****** ****** */ #define atspre_stropt_none() atsptr_null /* ****** ****** */ ATSinline() atstype_bool atspre_lt_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn < 0 ? atsbool_true : atsbool_false) ; } // [atspre_lt_string_string] ATSinline() atstype_bool atspre_lte_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn <= 0 ? atsbool_true : atsbool_false) ; } // [atspre_lte_string_string] ATSinline() atstype_bool atspre_gt_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn > 0 ? atsbool_true : atsbool_false) ; } // [atspre_gt_string_string] ATSinline() atstype_bool atspre_gte_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn >= 0 ? atsbool_true : atsbool_false) ; } // [atspre_gte_string_string] ATSinline() atstype_bool atspre_eq_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn == 0 ? atsbool_true : atsbool_false) ; } // [atspre_eq_string_string] ATSinline() atstype_bool atspre_neq_string_string ( atstype_string x1, atstype_string x2 ) { int sgn = strcmp((char*)x1, (char*)x2) ; return (sgn != 0 ? atsbool_true : atsbool_false) ; } // [atspre_neq_string_string] /* ****** ****** */ #define atspre_string_equal atspre_eq_string_string #define atspre_string_noteq atspre_neq_string_string /* ****** ****** */ ATSinline() atstype_int atspre_compare_string_string ( atstype_string x1, atstype_string x2 ) { return atspre_int2sgn(strcmp((char*)x1, (char*)x2)) ; } // [atspre_compare_string_string] /* ****** ****** */ #define atspre_strcmp strcmp #define atspre_strlen strlen #define atspre_strchr strchr #define atspre_strrchr strrchr #define atspre_strstr strstr #define atspre_strspn strspn #define atspre_strcspn strcspn #define atspre_string_memcpy memcpy /* ****** ****** */ // // HX-2013-09: // declared in [stdio.h] // #ifndef snprintf extern int snprintf (char *str, size_t size, const char *format, ...) ; #endif // end of [ifndef] // /* ****** ****** */ // ATSinline() atstype_string atspre_g0int2string_int (atstype_int x) { size_t n0 ; char *res ; size_t ntot ; n0 = 4 ; res = ATS_MALLOC(n0) ; ntot = snprintf(res, n0, "%i", x) ; if (ntot >= n0) { ATS_MFREE(res) ; res = (char*)ATS_MALLOC(ntot+1) ; ntot = snprintf(res, ntot+1, "%i", x) ; } return res ; } // ATSinline() atstype_string atspre_g0int2string_lint (atstype_lint x) { size_t n0 ; char *res ; size_t ntot ; n0 = 4 ; res = ATS_MALLOC(n0) ; ntot = snprintf(res, n0, "%li", x) ; if (ntot >= n0) { ATS_MFREE(res) ; res = (char*)ATS_MALLOC(ntot+1) ; ntot = snprintf(res, ntot+1, "%li", x) ; } return res ; } // ATSinline() atstype_string atspre_g0int2string_llint (atstype_llint x) { size_t n0 ; char *res ; size_t ntot ; n0 = 8 ; res = ATS_MALLOC(n0) ; ntot = snprintf(res, n0, "%lli", x) ; if (ntot >= n0) { ATS_MFREE(res) ; res = (char*)ATS_MALLOC(ntot+1) ; ntot = snprintf(res, ntot+1, "%lli", x) ; } return res ; } // /* ****** ****** */ // #include // // HX-2013-11: // these are implemented in [string.dats] // extern "C" { atstype_string // Strptr0 atspre_string_make_snprintf(atstype_string fmt, ...) ; atstype_string // Strptr0 atspre_string_make_vsnprintf (atstype_size bsz0, atstype_string fmt, va_list ap0) ; } // /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_STRING) /* ****** ****** */ /* end of [string.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/array.cats0000644000175000017500000000407013431250607024063 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/array.atxt ** Time of generation: Fri Feb 28 17:55:37 2014 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_ARRAY #define ATS2CPP_PRELUDE_CATS_ARRAY /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_array_foreach_funenv_tsz ( atstype_ptr A , atstype_size n , atstype_size tsz , atstype_funptr f , atstype_boxed env ) { char *p ; atstype_size i ; p = (char*)A ; for (i = 0 ; i < n ; i += 1) { ((void(*)(void*, void*))(f))(p, env) ; p += tsz ; } return ; } // end of [atspre_array_foreach_funenv_tsz] /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_ARRAY) /* ****** ****** */ /* end of [array.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/filebas.cats0000644000175000017500000001671313431250607024361 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/filebas.atxt ** Time of generation: Sun Nov 20 15:37:55 2016 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef \ ATS2CPP_PRELUDE_CATS_FILEBAS #define \ ATS2CPP_PRELUDE_CATS_FILEBAS /* ****** ****** */ #include #include #include /* ****** ****** */ #define atspre_FILE_stdin stdin #define atspre_FILE_stdout stdout #define atspre_FILE_stderr stderr /* ****** ****** */ #define atspre_file_mode_r "r" #define atspre_file_mode_rr "r+" #define atspre_file_mode_w "w" #define atspre_file_mode_ww "w+" #define atspre_file_mode_a "a" #define atspre_file_mode_aa "a+" /* ****** ****** */ ATSinline() atstype_bool atspre_test_file_exists (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; return (err==0) ? atsbool_true : atsbool_false ; } // end of [atspre_test_file_exists] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_mode_fun ( atstype_string path, atstype_funptr pred ) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return ((atstype_bool(*)(atstype_uint))(pred))(st.st_mode) ? 1 : 0 ; } /* ****** ****** */ ATSinline() atstype_bool atspre_test_file_isreg (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISREG(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_isreg] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_isdir (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISDIR(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_isdir] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_isblk (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISBLK(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_isblk] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_ischr (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISCHR(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_ischr] /* ****** ****** */ ATSinline() atstype_int atspre_test_file_isfifo (atstype_string path) { int err; struct stat st ; err = stat ((const char*)path, &st) ; if (err < 0) return -1 ; return (S_ISFIFO(st.st_mode)) ? 1 : 0 ; } // end of [atspre_test_file_isfifo] /* ****** ****** */ ATSinline() atstype_ref atspre_fileref_open_exn (atstype_string path, atstype_string fm) { FILE* filr ; filr = fopen((char*)path, (char*)fm) ; if (!filr) { fprintf( stderr , "exit(ATS): [atspre_fileref_open_exn(%s, %s)] failed.\n" , (char*)path, (char*)fm ) ; exit(1) ; } return filr ; } // end of [atspre_fileref_open] /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fileref_close (atstype_ref filr) { int err ; err = fclose((FILE*)filr) ; if (err < 0) { fprintf( stderr , "exit(ATS): [atspre_fileref_close] failed.\n" ) ; exit(1) ; } return ; } // end of [atspre_fileref_close] /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fileref_flush (atstype_ref filr) { int err ; err = fflush((FILE*)filr) ; if (err < 0) { fprintf( stderr , "exit(ATS): [atspre_fileref_fflush] failed.\n" ) ; exit(1) ; } return ; } // end of [atspre_fileref_flush] /* ****** ****** */ ATSinline() atstype_int atspre_fileref_getc (atstype_ref filr) { return fgetc((FILE*)filr) ; } // end of [atspre_fileref_getc] /* ****** ****** */ // ATSinline() atsvoid_t0ype atspre_fileref_putc ( atstype_ref filr, atstype_int c ) { fputc (c, (FILE*)filr) ; return ; } // end of [atspre_fileref_putc] // #define atspre_fileref_putc_int atspre_fileref_putc #define atspre_fileref_putc_char atspre_fileref_putc // /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fileref_puts ( atstype_ref filr, atstype_ptr cs ) { fputs ((char*)cs, (FILE*)filr) ; return ; } // end of [atspre_fileref_puts] /* ****** ****** */ ATSinline() atstype_bool atspre_fileref_is_eof (atstype_ref filr) { int eof ; eof = feof ((FILE*)filr) ; return (eof != 0 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_is_eof] /* ****** ****** */ ATSinline() atstype_bool atspre_fileref_load_int (atstype_ref inp, atstype_ref x) { int n ; n = fscanf((FILE*)inp, "%i", (atstype_int*)x) ; return (n == 1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_int] ATSinline() atstype_bool atspre_fileref_load_lint (atstype_ref inp, atstype_ref x) { int n ; n = fscanf((FILE*)inp, "%li", (atstype_lint*)x) ; return (n == 1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_lint] /* ****** ****** */ ATSinline() atstype_bool atspre_fileref_load_uint (atstype_ref inp, atstype_ref x) { int n ; n = fscanf((FILE*)inp, "%u", (atstype_uint*)x) ; return (n == 1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_uint] ATSinline() atstype_bool atspre_fileref_load_ulint (atstype_ref inp, atstype_ref x) { int n ; n = fscanf((FILE*)inp, "%lu", (atstype_ulint*)x) ; return (n == 1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_ulint] /* ****** ****** */ ATSinline() atstype_bool atspre_fileref_load_float (atstype_ref inp, atstype_ref x) { int n ; n = fscanf((FILE*)inp, "%f", (atstype_float*)x) ; return (n == 1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_float] ATSinline() atstype_bool atspre_fileref_load_double (atstype_ref inp, atstype_ref x) { int n ; n = fscanf((FILE*)inp, "%lf", (atstype_double*)x) ; return (n == 1 ? atsbool_true : atsbool_false) ; } // end of [atspre_fileref_load_double] /* ****** ****** */ extern "C" { atstype_ptr atspre_fileref_get_line_string_main2 ( atstype_int bsz // int bsz , atstype_ptr filp // FILE* filp , atstype_ref nlen // int *nlen ) ; // endfun } /* end of [extern "C"] */ /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_FILEBAS) /* ****** ****** */ /* end of [filebas.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/memory.cats0000644000175000017500000000372013431250607024256 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/memory.atxt ** Time of generation: Sat Jun 27 21:39:49 2015 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: January, 2013 *) */ /* ****** ****** */ #ifndef ATS2CPP_PRELUDE_CATS_MEMORY #define ATS2CPP_PRELUDE_CATS_MEMORY /* ****** ****** */ #define atspre_minit_gc ATS_MINIT /* ****** ****** */ #define atspre_mfree_gc ATS_MFREE /* ****** ****** */ #define atspre_malloc_gc ATS_MALLOC /* ****** ****** */ #define atspre_calloc_gc ATS_CALLOC #define atspre_realloc_gc ATS_REALLOC /* ****** ****** */ #endif // ifndef(ATS2CPP_PRELUDE_CATS_MEMORY) /* ****** ****** */ /* end of [memory.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/CATS/fprintf.cats0000644000175000017500000003332313431250607024420 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** Source: ** $PATSHOME/prelude/CATS/CODEGEN/fprintf.atxt ** Time of generation: Sun Nov 20 15:37:54 2016 */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: hwxi AT cs DOT bu DOT edu *) (* Start time: September, 2015 *) */ /* ****** ****** */ #ifndef ATSLIB_PRELUDE_CATS_FPRINTF #define ATSLIB_PRELUDE_CATS_FPRINTF /* ****** ****** */ // // HX-2013-09: declared in [stdio.h] // #ifndef fprintf // extern "C" { int fprintf (FILE *stream, const char *format, ...) ; } // #endif // end of [ifndef] // /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_bool ( atstype_ref out, atstype_bool x ) { int err = 0 ; err += fprintf((FILE*)out, "%s", atspre_bool2string(x)) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_bool] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_bool] #define atspre_print_bool(x) atspre_fprint_bool(stdout, (x)) #define atspre_prerr_bool(x) atspre_fprint_bool(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_char ( atstype_ref out, atstype_char c ) { int err = 0 ; err += fprintf ((FILE*)out, "%c", c) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_char] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_char] #define atspre_print_char(c) atspre_fprint_char(stdout, (c)) #define atspre_prerr_char(c) atspre_fprint_char(stderr, (c)) ATSinline() atsvoid_t0ype atspre_fprint_uchar ( atstype_ref out, atstype_uchar c ) { atspre_fprint_char (out, (atstype_char)c) ; return ; } // end of [atspre_fprint_uchar] #define atspre_print_uchar(c) atspre_fprint_uchar(stdout, (c)) #define atspre_prerr_uchar(c) atspre_fprint_uchar(stderr, (c)) ATSinline() atsvoid_t0ype atspre_fprint_schar ( atstype_ref out, atstype_schar c ) { atspre_fprint_char (out, (atstype_char)c) ; return ; } // end of [atspre_fprint_schar] #define atspre_print_schar(c) atspre_fprint_schar(stdout, (c)) #define atspre_prerr_schar(c) atspre_fprint_schar(stderr, (c)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_int ( atstype_ref out, atstype_int x ) { int err = 0 ; err += fprintf((FILE*)out, "%i", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_int] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_int] #define atspre_print_int(x) atspre_fprint_int(stdout, (x)) #define atspre_prerr_int(x) atspre_fprint_int(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_lint ( atstype_ref out, atstype_lint x ) { int err = 0 ; err += fprintf((FILE*)out, "%li", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_lint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_lint] #define atspre_print_lint(x) atspre_fprint_lint(stdout, (x)) #define atspre_prerr_lint(x) atspre_fprint_lint(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_llint ( atstype_ref out, atstype_llint x ) { int err = 0 ; err += fprintf((FILE*)out, "%lli", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_llint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_llint] #define atspre_print_llint(x) atspre_fprint_llint(stdout, (x)) #define atspre_prerr_llint(x) atspre_fprint_llint(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_ssize ( atstype_ref out, atstype_ssize x ) { int err = 0 ; err += fprintf((FILE*)out, "%li", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_ssize] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_ssize] #define atspre_print_ssize(x) atspre_fprint_ssize(stdout, (x)) #define atspre_prerr_ssize(x) atspre_fprint_ssize(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_uint ( atstype_ref out, atstype_uint x ) { int err = 0 ; err += fprintf((FILE*)out, "%u", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_uint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_uint] #define atspre_print_uint(x) atspre_fprint_uint(stdout, (x)) #define atspre_prerr_uint(x) atspre_fprint_uint(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_ulint ( atstype_ref out, atstype_ulint x ) { int err = 0 ; err += fprintf((FILE*)out, "%lu", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_ulint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_ulint] #define atspre_print_ulint(x) atspre_fprint_ulint(stdout, (x)) #define atspre_prerr_ulint(x) atspre_fprint_ulint(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_ullint ( atstype_ref out, atstype_ullint x ) { int err = 0 ; err += fprintf((FILE*)out, "%llu", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_ullint] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_ullint] #define atspre_print_ullint(x) atspre_fprint_ullint(stdout, (x)) #define atspre_prerr_ullint(x) atspre_fprint_ullint(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_size ( atstype_ref out, atstype_size x ) { int err = 0 ; atstype_ulint x2 = x ; err += fprintf((FILE*)out, "%lu", x2) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_size] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_size] #define atspre_print_size(x) atspre_fprint_size(stdout, (x)) #define atspre_prerr_size(x) atspre_fprint_size(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_ptr ( atstype_ref out, atstype_ptr x ) { int err ; err = fprintf((FILE*)out, "%p", x) ; return ; } // end [atspre_fprint_ptr] #define atspre_print_ptr(x) atspre_fprint_ptr(stdout, (x)) #define atspre_prerr_ptr(x) atspre_fprint_ptr(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_float ( atstype_ref r, atstype_float x ) { int err = 0 ; err += fprintf((FILE*)r, "%f", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_float] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_float] #define atspre_print_float(x) atspre_fprint_float(stdout, (x)) #define atspre_prerr_float(x) atspre_fprint_float(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_double ( atstype_ref r, atstype_double x ) { int err = 0 ; err += fprintf((FILE*)r, "%f", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_double] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_double] #define atspre_print_double(x) atspre_fprint_double(stdout, (x)) #define atspre_prerr_double(x) atspre_fprint_double(stderr, (x)) ATSinline() atsvoid_t0ype atspre_fprint_ldouble ( atstype_ref r, atstype_ldouble x ) { int err = 0 ; err += fprintf((FILE*)r, "%Lf", x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_ldouble] failed.") ; exit(1) ; } // end of [if] */ return ; } // end [atspre_fprint_ldouble] #define atspre_print_ldouble(x) atspre_fprint_ldouble(stdout, (x)) #define atspre_prerr_ldouble(x) atspre_fprint_ldouble(stderr, (x)) /* ****** ****** */ #if(0) // ATSinline() atsvoid_t0ype atspre_fprint_intptr ( atstype_ref r, atstype_intptr x ) { int err ; err = fprintf((FILE*)r, "%lli", (atstype_llint)x) ; return ; } // end [atspre_fprint_intptr] #define atspre_print_intptr(x) atspre_fprint_intptr(stdout, (x)) #define atspre_prerr_intptr(x) atspre_fprint_intptr(stderr, (x)) // ATSinline() atsvoid_t0ype atspre_fprint_uintptr ( atstype_ref r, atstype_uintptr x ) { int err ; err = fprintf((FILE*)r, "%llu", (atstype_ullint)x) ; return ; } // end [atspre_fprint_uintptr] #define atspre_print_uintptr(x) atspre_fprint_uintptr(stdout, (x)) #define atspre_prerr_uintptr(x) atspre_fprint_uintptr(stderr, (x)) // #endif // [#if(0)] /* ****** ****** */ #if(0) // ATSinline() atsvoid_t0ype atspre_fprint_int8 ( atstype_ref r, atstype_int8 x ) { int err ; err = fprintf((FILE*)r, "%i", (atstype_int)x) ; return ; } // end [atspre_fprint_int8] #define atspre_print_int8(x) atspre_fprint_int8(stdout, (x)) #define atspre_prerr_int8(x) atspre_fprint_int8(stderr, (x)) // ATSinline() atsvoid_t0ype atspre_fprint_int16 ( atstype_ref r, atstype_int16 x ) { int err ; err = fprintf((FILE*)r, "%i", (atstype_int)x) ; return ; } // end [atspre_fprint_int16] #define atspre_print_int16(x) atspre_fprint_int16(stdout, (x)) #define atspre_prerr_int16(x) atspre_fprint_int16(stderr, (x)) // ATSinline() atsvoid_t0ype atspre_fprint_int32 ( atstype_ref r, atstype_int32 x ) { int err ; err = fprintf((FILE*)r, "%li", (atstype_lint)x) ; return ; } // end [atspre_fprint_int32] #define atspre_print_int32(x) atspre_fprint_int32(stdout, (x)) #define atspre_prerr_int32(x) atspre_fprint_int32(stderr, (x)) // ATSinline() atsvoid_t0ype atspre_fprint_int64 ( atstype_ref r, atstype_int64 x ) { int err ; err = fprintf((FILE*)r, "%lli", (atstype_llint)x) ; return ; } // end [atspre_fprint_int64] #define atspre_print_int64(x) atspre_fprint_int64(stdout, (x)) #define atspre_prerr_int64(x) atspre_fprint_int64(stderr, (x)) // #endif // [#if(0)] /* ****** ****** */ #if(0) // ATSinline() atsvoid_t0ype atspre_fprint_uint8 ( atstype_ref r, atstype_uint8 x ) { int err ; err = fprintf((FILE*)r, "%u", (atstype_uint)x) ; return ; } // end [atspre_fprint_uint8] #define atspre_print_uint8(x) atspre_fprint_uint8(stdout, (x)) #define atspre_prerr_uint8(x) atspre_fprint_uint8(stderr, (x)) // ATSinline() atsvoid_t0ype atspre_fprint_uint16 ( atstype_ref r, atstype_uint16 x ) { int err ; err = fprintf((FILE*)r, "%u", (atstype_uint)x) ; return ; } // end [atspre_fprint_uint16] #define atspre_print_uint16(x) atspre_fprint_uint16(stdout, (x)) #define atspre_prerr_uint16(x) atspre_fprint_uint16(stderr, (x)) // ATSinline() atsvoid_t0ype atspre_fprint_uint32 ( atstype_ref r, atstype_uint32 x ) { int err ; err = fprintf((FILE*)r, "%lu", (atstype_ulint)x) ; return ; } // end [atspre_fprint_uint32] #define atspre_print_uint32(x) atspre_fprint_uint32(stdout, (x)) #define atspre_prerr_uint32(x) atspre_fprint_uint32(stderr, (x)) // ATSinline() atsvoid_t0ype atspre_fprint_uint64 ( atstype_ref r, atstype_uint64 x ) { int err ; err = fprintf((FILE*)r, "%llu", (atstype_ullint)x) ; return ; } // end [atspre_fprint_uint64] #define atspre_print_uint64(x) atspre_fprint_uint64(stdout, (x)) #define atspre_prerr_uint64(x) atspre_fprint_uint64(stderr, (x)) // #endif // [#if(0)] /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_string ( atstype_ref out, atstype_string x ) { int err = 0 ; err += fprintf((FILE*)out, "%s", (char*)x) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_string] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_string] #define atspre_print_string(x) atspre_fprint_string(stdout, (x)) #define atspre_prerr_string(x) atspre_fprint_string(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_substring ( atstype_ref out , atstype_string x , atstype_size st, atstype_size ln ) { int err = 0 ; err += fwrite(((char*)x)+st, 1, ln, out) ; /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_substring] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_substring] /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_stropt ( atstype_ref out, atstype_stropt x ) { int err = 0 ; if (!x) { err += fprintf((FILE*)out, "strnone()") ; } else { err += fprintf((FILE*)out, "strsome(%s)", (char*)x) ; } /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_stropt] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_stropt] #define atspre_print_stropt(x) atspre_fprint_stropt(stdout, (x)) #define atspre_prerr_stropt(x) atspre_fprint_stropt(stderr, (x)) /* ****** ****** */ ATSinline() atsvoid_t0ype atspre_fprint_strptr ( atstype_ref out, atstype_strptr x ) { int err = 0 ; if (x != 0) { err += fprintf((FILE*)out, "%s", (char*)x) ; } else { err += fprintf((FILE*)out, "%s", "(strnull)") ; } // end of [if] /* if (err < 0) { fprintf(stderr, "exit(ATS): [fprint_strptr] failed.") ; exit(1) ; } // end of [if] */ return ; } // end of [atspre_fprint_strptr] #define atspre_print_strptr(x) atspre_fprint_strptr(stdout, (x)) #define atspre_prerr_strptr(x) atspre_fprint_strptr(stderr, (x)) /* ****** ****** */ #define atspre_fprint_strbuf atspre_fprint_strptr #define atspre_print_strbuf(x) atspre_fprint_strbuf(stdout, (x)) #define atspre_prerr_strbuf(x) atspre_fprint_strbuf(stderr, (x)) /* ****** ****** */ #endif // ifndef(ATSLIB_PRELUDE_CATS_FPRINTF) /* ****** ****** */ /* end of [fprintf.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/prelude/staloadall.hats0000644000175000017500000000151313431250607024337 0ustar brandonbrandon(* ****** ****** *) // // Templates for C++ // (* ****** ****** *) // staload _ = "prelude/DATS/integer.dats" staload _ = "prelude/DATS/pointer.dats" // (* ****** ****** *) // staload _ = "prelude/DATS/integer_long.dats" staload _ = "prelude/DATS/integer_size.dats" staload _ = "prelude/DATS/integer_short.dats" staload _ = "prelude/DATS/integer_fixed.dats" // (* ****** ****** *) staload _ = "prelude/DATS/bool.dats" staload _ = "prelude/DATS/char.dats" staload _ = "prelude/DATS/float.dats" staload _ = "prelude/DATS/string.dats" (* ****** ****** *) staload _ = "prelude/DATS/array.dats" staload _ = "prelude/DATS/arrayptr.dats" staload _ = "prelude/DATS/arrayref.dats" (* ****** ****** *) staload UNSAFE = "prelude/SATS/unsafe.sats" staload _(*UNSAFE*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) (* end of [staloadall.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/0000755000175000017500000000000013431250607020340 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/DATS/0000755000175000017500000000000013431250607021073 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/DATS/vector_stack.dats0000644000175000017500000001104213431250607024435 0ustar brandonbrandon(* ****** ****** *) (* ** A linear stack ** implementation based on STL:vector *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremal: gmhwxiATgmailDOTcom // Start Time: December, 2016 // (* ****** ****** *) // #define ATS_PACKNAME "ATS2CPP.STL" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "ats2cpp_STL_" // prefix for external names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) %{# // #ifndef \ ATS2CPP_STL_DATS_VECTOR_STACK #define \ ATS2CPP_STL_DATS_VECTOR_STACK // #include "STL/CATS/vector.cats" // #endif // end of ifndef(ATS2CPP_STL_DATS_VECTOR_STACK) // %} // end of [%{#] (* ****** ****** *) // absvtype stack_vtype (a:vt@ype+, n:int) = $extype"ats2cpp_STL_vectorptr"(a) // stadef stack = stack_vtype // vtypedef stack(a:vt@ype) = [n:int] stack_vtype(a, n) // (* ****** ****** *) // extern prfun lemma_stack_param {a:vt0p}{n:int} (stk: !stack(INV(a), n)): [n >= 0] void // (* ****** ****** *) // extern fun {a:vt@ype} stack_make_nil(): stack(a, 0) extern fun {a:vt@ype} stack_free_nil(stack(INV(a), 0)): void // (* ****** ****** *) // extern fun {a:vt0p} stack_length {n:int} (stk: !stack(a, n)): size_t(n) = "mac#%" // (* ****** ****** *) // extern fun {a:vt0p} stack_is_nil {n:int} (stk: !stack(a, n)): bool(n==0) = "mac#%" extern fun {a:vt0p} stack_isnot_nil {n:int} (stk: !stack(a, n)): bool(n > 0) = "mac#%" // (* ****** ****** *) // extern fun {a:vt0p} stack_insert {n:int} ( stk: !stack(a, n) >> stack(a, n+1), x: a ) : void = "mac#%" // end-of-function // (* ****** ****** *) // extern fun {a:vt0p} stack_takeout {n:int | n > 0} ( stk: !stack(a, n) >> stack(a, n-1) ) : (a) = "mac#%" // end-of-function // (* ****** ****** *) // overload iseqz with stack_is_nil overload isneqz with stack_isnot_nil // (* ****** ****** *) // overload length with stack_length // (* ****** ****** *) // overload .size with stack_length overload .length with stack_length // overload .insert with stack_insert overload .takeout with stack_takeout // (* ****** ****** *) // // HX-2016-12: // externally template-based implmentation // (* ****** ****** *) // implement {a}(*tmp*) stack_make_nil ( // argumentless ) = $extfcall ( stack(a, 0) , "ats2cpp_STL_vectorptr_new", $tyrep(a) ) (* stack_make_nil *) // (* ****** ****** *) // implement {a}(*tmp*) stack_free_nil ( p0 ) = let // val p0 = $UN.castvwtp0{ptr}(p0) // in // $extfcall ( void , "ats2cpp_STL_vectorptr_free", $tyrep(a), p0 ) (* $extfcall *) // end // end of [stack_free_nil] // (* ****** ****** *) // implement {a}(*tmp*) stack_length {n}(p0) = let // val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( size_t(n) , "ats2cpp_STL_vectorptr_size", $tyrep(a), p0 ) (* $extfcall *) // end // end of [stack_length] // (* ****** ****** *) // implement {a}(*tmp*) stack_is_nil {n}(p0) = let // val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( bool(n==0) , "ats2cpp_STL_vectorptr_empty", $tyrep(a), p0 ) (* $extfcall *) // end // end of [stack_is_nil] // // implement {a}(*tmp*) stack_isnot_nil(p0) = not(stack_is_nil(p0)) where { prval ((*n >= 0*)) = lemma_stack_param(p0) } (* end of [stack_isnot_nil] *) // (* ****** ****** *) // implement {a}(*tmp*) stack_insert (p0, x0) = let // prval () = $UN.castvwtp2void(p0) // val x0 = $UN.castvwtp0{a?}(x0) val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( void, "ats2cpp_STL_vectorptr_push_back", $tyrep(a), p0, x0 ) (* $extfcall *) // end // end of [stack_insert] // (* ****** ****** *) // implement {a}(*tmp*) stack_takeout (p0) = x0 where { // prval () = $UN.castvwtp2void(p0) // val p0 = $UN.castvwtp1{ptr}(p0) val x0 = $extfcall(a, "ats2cpp_STL_vectorptr_back", $tyrep(a), p0) val () = $extfcall(void, "ats2cpp_STL_vectorptr_pop_back", $tyrep(a), p0) // } (* end of [stack_insert] *) // (* ****** ****** *) (* end of [vector_stack.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/DATS/deque_queue.dats0000644000175000017500000000743613431250607024271 0ustar brandonbrandon(* ****** ****** *) (* ** A linear queue ** implementation based on STL:deque *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremal: gmhwxiATgmailDOTcom // Start Time: December, 2016 // (* ****** ****** *) // #define ATS_PACKNAME "ATS2CPP.STL" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "ats2cpp_STL_" // prefix for external names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) %{# // #ifndef \ ATS2CPP_STL_DATS_DEQUE_QUEUE #define \ ATS2CPP_STL_DATS_DEQUE_QUEUE // #include "STL/CATS/deque.cats" // #endif // end of ifndef(ATS2CPP_STL_DATS_DEQUE_QUEUE) // %} // end of [%{#] (* ****** ****** *) // absvtype queue_vtype (a:vt@ype+, n:int) = $extype"ats2cpp_STL_dequeptr"(a) // stadef queue = queue_vtype // vtypedef queue(a:vt@ype) = [n:int] queue_vtype(a, n) // (* ****** ****** *) // extern prfun lemma_queue_param {a:vt0p}{n:int} (stk: !queue(INV(a), n)): [n >= 0] void // (* ****** ****** *) // extern fun {a:vt@ype} queue_make_nil(): queue(a, 0) extern fun {a:vt@ype} queue_free_nil(queue(INV(a), 0)): void // (* ****** ****** *) // extern fun {a:vt0p} queue_length {n:int}(stk: !queue(a, n)): size_t(n) = "mac#%" // (* ****** ****** *) // extern fun {a:vt0p} queue_insert {n:int} ( stk: !queue(a, n) >> queue(a, n+1), x: a ) : void = "mac#%" // end-of-function // extern fun {a:vt0p} queue_takeout {n:int | n > 0} ( stk: !queue(a, n) >> queue(a, n-1) ) : (a) = "mac#%" // end-of-function // (* ****** ****** *) // overload length with queue_length // (* ****** ****** *) // overload .size with queue_length overload .length with queue_length // overload .insert with queue_insert overload .takeout with queue_takeout // (* ****** ****** *) // // HX-2016-12: // externally template-based implmentation // (* ****** ****** *) // implement {a}(*tmp*) queue_make_nil ( // argumentless ) = $extfcall ( queue(a, 0), "ats2cpp_STL_dequeptr_new", $tyrep(a) ) (* queue_make_nil *) // (* ****** ****** *) // implement {a}(*tmp*) queue_free_nil ( p0 ) = let // val p0 = $UN.castvwtp0{ptr}(p0) // in // $extfcall (void, "ats2cpp_STL_dequeptr_free", $tyrep(a), p0) // end // end of [queue_free_nil] // (* ****** ****** *) // implement {a}(*tmp*) queue_length {n}(p0) = let // val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall (size_t(n), "ats2cpp_STL_dequeptr_size", $tyrep(a), p0) // end // end of [queue_length] // (* ****** ****** *) // implement {a}(*tmp*) queue_insert (p0, x0) = let // prval () = $UN.castvwtp2void(p0) // val x0 = $UN.castvwtp0{a?}(x0) val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( void, "ats2cpp_STL_dequeptr_push_back", $tyrep(a), p0, x0 ) (* $extfcall *) // end // end of [queue_insert] // (* ****** ****** *) // implement {a}(*tmp*) queue_takeout (p0) = x0 where { // prval () = $UN.castvwtp2void(p0) // val p0 = $UN.castvwtp1{ptr}(p0) val x0 = $extfcall(a, "ats2cpp_STL_dequeptr_front", $tyrep(a), p0) val () = $extfcall(void, "ats2cpp_STL_dequeptr_pop_front", $tyrep(a), p0) // } (* end of [queue_insert] *) // (* ****** ****** *) (* end of [deque_queue.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/DATS/stack_stack.dats0000644000175000017500000001231313431250607024242 0ustar brandonbrandon(* ****** ****** *) (* ** A linear stack ** implementation based on STL:stack *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremal: gmhwxiATgmailDOTcom // Start Time: December, 2016 // (* ****** ****** *) // #define ATS_PACKNAME "ATS2CPP.STL" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "ats2cpp_STL_" // prefix for external names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) %{# // #ifndef \ ATS2CPP_STL_DATS_STACK_STACK #define \ ATS2CPP_STL_DATS_STACK_STACK // #include "STL/CATS/stack.cats" // #endif // end of ifndef(ATS2CPP_STL_DATS_STACK_STACK) // %} // end of [%{#] (* ****** ****** *) // absvtype stack_vtype (a:vt@ype+, n:int) = $extype"ats2cpp_STL_stackptr"(a) // stadef stack = stack_vtype // vtypedef stack(a:vt0p) = [n:int] stack_vtype(a, n) // (* ****** ****** *) // extern prfun lemma_stack_param {a:vt0p}{n:int} (stk: !stack(INV(a), n)): [n >= 0] void // (* ****** ****** *) // extern fun {a:vt0p} stack_make_nil(): stack(a, 0) // extern fun {a:vt0p} stack_free_nil(stack(INV(a), 0)): void extern fun {a:t@ype} stack_free_all(stk: stack(INV(a))): void // (* ****** ****** *) // extern fun {a:vt0p} stack_length {n:int} (stk: !stack(INV(a), n)): size_t(n) = "mac#%" // (* ****** ****** *) // extern fun {a:vt0p} stack_is_nil {n:int} (stk: !stack(INV(a), n)): bool(n==0) = "mac#%" extern fun {a:vt0p} stack_isnot_nil {n:int} (stk: !stack(INV(a), n)): bool(n > 0) = "mac#%" // (* ****** ****** *) // extern fun {a:vt0p} stack_insert {n:int} ( stk: !stack(INV(a), n) >> stack(a, n+1), x: a ) : void = "mac#%" // end-of-function // (* ****** ****** *) // extern fun {a:vt0p} stack_takeout {n:int | n > 0} ( stk: !stack(INV(a), n) >> stack(a, n-1) ) : (a) = "mac#%" // end-of-function // extern fun {a:vt0p} stack_takeout_opt {n:int} ( stk: !stack(INV(a), n) >> stack(a, n-b2i(b)) ) : #[b:bool] option_vt(a, b) = "mac#%" // (* ****** ****** *) // overload iseqz with stack_is_nil overload isneqz with stack_isnot_nil // overload length with stack_length // (* ****** ****** *) // overload .size with stack_length overload .length with stack_length // (* ****** ****** *) // overload .insert with stack_insert overload .takeout with stack_takeout // (* ****** ****** *) // // HX-2016-12: // Externally // template-based implmentation // (* ****** ****** *) // implement {a}(*tmp*) stack_make_nil ( // argumentless ) = $extfcall ( stack(a, 0) , "ats2cpp_STL_stackptr_new", $tyrep(a) ) (* stack_make_nil *) // (* ****** ****** *) // implement {a}(*tmp*) stack_free_nil ( p0 ) = let // val p0 = $UN.castvwtp0{ptr}(p0) // in // $extfcall ( void , "ats2cpp_STL_stackptr_free", $tyrep(a), p0 ) (* $extfcall *) // end // end of [stack_free_nil] // (* ****** ****** *) // implement {a}(*tmp*) stack_free_all ( p0 ) = let // val p0 = $UN.castvwtp0{ptr}(p0) // in // $extfcall ( void , "ats2cpp_STL_stackptr_free", $tyrep(a), p0 ) (* $extfcall *) // end // end of [stack_free_all] // (* ****** ****** *) // implement {a}(*tmp*) stack_length {n}(p0) = let // val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( size_t(n) , "ats2cpp_STL_stackptr_size", $tyrep(a), p0 ) (* $extfcall *) // end // end of [stack_length] // (* ****** ****** *) // implement {a}(*tmp*) stack_is_nil {n}(p0) = let // val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( bool(n==0) , "ats2cpp_STL_stackptr_empty", $tyrep(a), p0 ) (* $extfcall *) // end // end of [stack_is_nil] // // implement {a}(*tmp*) stack_isnot_nil(p0) = not(stack_is_nil(p0)) where { prval ((*n >= 0*)) = lemma_stack_param(p0) } (* end of [stack_isnot_nil] *) // (* ****** ****** *) // implement {a}(*tmp*) stack_insert (p0, x0) = let // prval () = $UN.castvwtp2void(p0) // val x0 = $UN.castvwtp0{a?}(x0) val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( void , "ats2cpp_STL_stackptr_push", $tyrep(a), p0, x0 ) (* $extfcall *) // end // end of [stack_insert] // (* ****** ****** *) // implement {a}(*tmp*) stack_takeout (p0) = x0 where { // prval () = $UN.castvwtp2void(p0) // val p0 = $UN.castvwtp1{ptr}(p0) // val x0 = $extfcall ( (a) , "ats2cpp_STL_stackptr_top", $tyrep(a), p0 ) (* $extfcall *) val () = $extfcall ( void , "ats2cpp_STL_stackptr_pop", $tyrep(a), p0 ) (* $extfcall *) // } (* end of [stack_insert] *) // implement {a}(*tmp*) stack_takeout_opt (p0) = let // prval () = lemma_stack_param(p0) // in // if iseqz(p0) then None_vt() else Some_vt(stack_takeout(p0)) // end // end of [stack_takeout_opt] // (* ****** ****** *) (* end of [stack_stack.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/DATS/vector_array.dats0000644000175000017500000001061313431250607024451 0ustar brandonbrandon(* ****** ****** *) (* ** A linear array ** implementation based on STL:vector *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremal: gmhwxiATgmailDOTcom // Start Time: December, 2016 // (* ****** ****** *) // #define ATS_PACKNAME "ATS2CPP.STL" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "ats2cpp_STL_" // prefix for external names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) %{# // #ifndef \ ATS2CPP_STL_DATS_VECTOR_ARRAY #define \ ATS2CPP_STL_DATS_VECTOR_ARRAY // #include "STL/CATS/vector.cats" // #endif // end of ifndef(ATS2CPP_STL_DATS_VECTOR_ARRAY) // %} // end of [%{#] (* ****** ****** *) // absvtype array_vtype (a:vt@ype+, n:int) = $extype"ats2cpp_STL_vectorptr"(a) // stadef array = array_vtype // vtypedef array(a:vt@ype) = [n:int] array_vtype(a, n) // (* ****** ****** *) // extern prfun lemma_array_param {a:vt0p}{n:int} (A0: !array(INV(a), n)): [n >= 0] void // (* ****** ****** *) // extern fun {a:t@ype} array_free {n:int}(A0: array(INV(a), n)): void = "mac#%" // (* ****** ****** *) // extern fun {a:t@ype} array_make_elt {n:int} (n: size_t(n), x0: a): array(a, n) = "mac#%" // (* ****** ****** *) // extern fun {a:vt0p} array_length {n:int} (A0: !array(INV(a), n)): size_t(n) = "mac#%" // (* ****** ****** *) // extern fun {a:t@ype} array_get_at_int {n:int} ( A0: !array(INV(a), n), i: natLt(n) ) : (a) = "mac#%" // end of [array_get_at_int] extern fun {a:t@ype} array_get_at_size {n:int} ( A0: !array(INV(a), n), i: sizeLt(n) ) : (a) = "mac#%" // end of [array_get_at_size] // (* ****** ****** *) // extern fun {a:t@ype} array_set_at_int {n:int} ( A0: !array(INV(a), n), i: natLt(n), x: a ) : void = "mac#%" // end of [array_set_at_int] extern fun {a:t@ype} array_set_at_size {n:int} ( A0: !array(INV(a), n), i: sizeLt(n), x: a ) : void = "mac#%" // end of [array_set_at_size] // (* ****** ****** *) // overload [] with array_get_at_int overload [] with array_get_at_size overload [] with array_set_at_int overload [] with array_set_at_size // overload length with array_length // overload .size with array_length overload .length with array_length // (* ****** ****** *) // // HX-2016-12: // externally template-based implmentation // (* ****** ****** *) implement {a}(*tmp*) array_free ( A0 ) = let // val p0 = $UN.castvwtp0{ptr}(A0) // in // $extfcall ( void , "ats2cpp_STL_vectorptr_free", $tyrep(a), p0 ) (* $extfcall *) // end // end of [array_free] // (* ****** ****** *) implement {a}(*tmp*) array_make_elt {n}(asz, x0) = let // var x0 = x0 // in // $extfcall ( array(a, n) , "ats2cpp_STL_vectorptr_new_fill" , $tyrep(a), asz, addr@x0(*call-by-ref*) ) (* $extfcall *) // end // end of [array_make_elt] (* ****** ****** *) // implement {a}(*tmp*) array_length {n}(p0) = let // val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( size_t(n) , "ats2cpp_STL_vectorptr_size", $tyrep(a), p0 ) (* $extfcall *) // end // end of [array_length] // (* ****** ****** *) // implement {a}(*tmp*) array_get_at_int(A0, i) = array_get_at_size(A0, i2sz(i)) // implement {a}(*tmp*) array_set_at_int(A0, i, x) = array_set_at_size(A0, i2sz(i), x) // (* ****** ****** *) // implement {a}(*tmp*) array_get_at_size ( A0, i ) = let // val p0 = $UN.castvwtp1{ptr}(A0) // in // $extfcall ( a, "ats2cpp_STL_vectorptr_get_at", $tyrep(a), p0, i ) (* $extfcall *) // end // end of [array_get_at_size] // implement {a}(*tmp*) array_set_at_size ( A0, i, x ) = let // val p0 = $UN.castvwtp1{ptr}(A0) // in // $extfcall ( void , "ats2cpp_STL_vectorptr_set_at", $tyrep(a), p0, i, x ) (* $extfcall *) // end // end of [array_set_at_size] // (* ****** ****** *) (* end of [vector_array.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/DATS/queue_queue.dats0000644000175000017500000001226313431250607024304 0ustar brandonbrandon(* ****** ****** *) (* ** A linear queue ** implementation based on STL:queue *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremal: gmhwxiATgmailDOTcom // Start Time: December, 2016 // (* ****** ****** *) // #define ATS_PACKNAME "ATS2CPP.STL" #define ATS_DYNLOADFLAG 0 // no dynloading at run-time #define ATS_EXTERN_PREFIX "ats2cpp_STL_" // prefix for external names // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) %{# // #ifndef \ ATS2CPP_STL_DATS_QUEUE_QUEUE #define \ ATS2CPP_STL_DATS_QUEUE_QUEUE // #include "STL/CATS/queue.cats" // #endif // end of ifndef(ATS2CPP_STL_DATS_QUEUE_QUEUE) // %} // end of [%{#] (* ****** ****** *) // absvtype queue_vtype (a:vt@ype+, n:int) = $extype"ats2cpp_STL_queueptr"(a) // stadef queue = queue_vtype // vtypedef queue(a:vt0p) = [n:int] queue_vtype(a, n) // (* ****** ****** *) // extern prfun lemma_queue_param {a:vt0p}{n:int} (stk: !queue(INV(a), n)): [n >= 0] void // (* ****** ****** *) // extern fun {a:vt0p} queue_make_nil(): queue(a, 0) // extern fun {a:vt0p} queue_free_nil(queue(INV(a), 0)): void extern fun {a:t@ype} queue_free_all{n:int}(queue(INV(a), n)): void // (* ****** ****** *) // extern fun {a:vt0p} queue_length {n:int} (stk: !queue(INV(a), n)): size_t(n) = "mac#%" // (* ****** ****** *) // extern fun {a:vt0p} queue_is_nil {n:int} (stk: !queue(INV(a), n)): bool(n==0) = "mac#%" extern fun {a:vt0p} queue_isnot_nil {n:int} (stk: !queue(INV(a), n)): bool(n > 0) = "mac#%" // (* ****** ****** *) // extern fun {a:vt0p} queue_insert {n:int} ( stk: !queue(INV(a), n) >> queue(a, n+1), x: a ) : void = "mac#%" // end-of-function // (* ****** ****** *) // extern fun {a:vt0p} queue_takeout {n:int | n > 0} ( stk: !queue(INV(a), n) >> queue(a, n-1) ) : (a) = "mac#%" // end-of-function // extern fun {a:vt0p} queue_takeout_opt {n:int} ( stk: !queue(INV(a), n) >> queue(a, n-b2i(b)) ) : #[b:bool] option_vt(a, b) = "mac#%" // (* ****** ****** *) // overload iseqz with queue_is_nil overload isneqz with queue_isnot_nil // overload length with queue_length // (* ****** ****** *) // overload .size with queue_length overload .length with queue_length // (* ****** ****** *) // overload .insert with queue_insert overload .takeout with queue_takeout // (* ****** ****** *) // // HX-2016-12: // externally template-based implmentation // (* ****** ****** *) // implement {a}(*tmp*) queue_make_nil ( // argumentless ) = $extfcall ( queue(a, 0), "ats2cpp_STL_queueptr_new", $tyrep(a) ) (* queue_make_nil *) // (* ****** ****** *) // implement {a}(*tmp*) queue_free_nil ( p0 ) = let // val p0 = $UN.castvwtp0{ptr}(p0) // in // $extfcall (void, "ats2cpp_STL_queueptr_free", $tyrep(a), p0) // end // end of [queue_free_nil] // (* ****** ****** *) // implement {a}(*tmp*) queue_free_all ( p0 ) = let // val p0 = $UN.castvwtp0{ptr}(p0) // in // $extfcall (void, "ats2cpp_STL_queueptr_free", $tyrep(a), p0) // end // end of [queue_free_all] // (* ****** ****** *) // implement {a}(*tmp*) queue_length {n}(p0) = let // val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( size_t(n) , "ats2cpp_STL_queueptr_size", $tyrep(a), p0 ) (* $extfcall *) // end // end of [queue_length] // (* ****** ****** *) // implement {a}(*tmp*) queue_is_nil {n}(p0) = let // val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( bool(n==0) , "ats2cpp_STL_queueptr_empty", $tyrep(a), p0 ) (* $extfcall *) // end // end of [queue_is_nil] // // implement {a}(*tmp*) queue_isnot_nil(p0) = not(queue_is_nil(p0)) where { prval ((*n >= 0*)) = lemma_queue_param(p0) } (* end of [queue_isnot_nil] *) // (* ****** ****** *) // implement {a}(*tmp*) queue_insert (p0, x0) = let // prval () = $UN.castvwtp2void(p0) // val x0 = $UN.castvwtp0{a?}(x0) val p0 = $UN.castvwtp1{ptr}(p0) // in // $extfcall ( void, "ats2cpp_STL_queueptr_push", $tyrep(a), p0, x0 ) (* $extfcall *) // end // end of [queue_insert] // (* ****** ****** *) // // implement {a}(*tmp*) queue_takeout (p0) = x0 where { // prval () = $UN.castvwtp2void(p0) // val p0 = $UN.castvwtp1{ptr}(p0) // val x0 = $extfcall ( (a) , "ats2cpp_STL_queueptr_front", $tyrep(a), p0 ) (* $extfcall *) val () = $extfcall ( void, "ats2cpp_STL_queueptr_pop", $tyrep(a), p0 ) (* $extfcall *) // } (* end of [queue_insert] *) // implement {a}(*tmp*) queue_takeout_opt (p0) = let // prval () = lemma_queue_param(p0) // in // if iseqz(p0) then None_vt() else Some_vt(queue_takeout(p0)) // end // end of [queue_takeout_opt] // (* ****** ****** *) (* end of [queue_queue.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/TEST/0000755000175000017500000000000013431250607021117 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/TEST/test_queue_queue.dats0000644000175000017500000000140613431250607025364 0ustar brandonbrandon(* ****** ****** *) // // HX-2016-12: // For testing // STL/queue_queue // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #staload "./../DATS/queue_queue.dats" // (* ****** ****** *) implement main0() = () where { // val () = println! ( "Hello from test_queue_queue!" ) (* end of [val] *) // val Q0 = queue_make_nil() // val-(0) = sz2i(length(Q0)) // val () = Q0.insert(1) // val-(1) = sz2i(length(Q0)) // val () = Q0.insert(2) // val-(2) = sz2i(length(Q0)) // val-(1) = Q0.takeout() // val (1) = sz2i(length(Q0)) // val-(2) = Q0.takeout() // val+true = iseqz(Q0) val+false = isneqz(Q0) // val (0) = sz2i(length(Q0)) // val ((*freed*)) = queue_free_nil(Q0) // } (* end of [main0] *) (* ****** ****** *) (* end of [test_queue_queue.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/TEST/test_deque_queue.dats0000644000175000017500000000132713431250607025345 0ustar brandonbrandon(* ****** ****** *) // // HX-2016-12: // For testing // STL/deque_queue // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #staload "./../DATS/deque_queue.dats" // (* ****** ****** *) implement main0() = () where { // val () = println! ( "Hello from test_deque_queue!" ) (* end of [val] *) // val Q0 = queue_make_nil() // val-(0) = sz2i(length(Q0)) // val () = Q0.insert(1) // val-(1) = sz2i(length(Q0)) // val () = Q0.insert(2) // val-(2) = sz2i(length(Q0)) // val-(1) = Q0.takeout() // val (1) = sz2i(length(Q0)) // val-(2) = Q0.takeout() // val (0) = sz2i(length(Q0)) // val ((*freed*)) = queue_free_nil(Q0) // } (* end of [main0] *) (* ****** ****** *) (* end of [test_deque_queue.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/TEST/Makefile0000644000175000017500000000401513431250607022557 0ustar brandonbrandon###### # PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt # ###### # CXXFLAGS = $(MYCFLAGS) # ###### # MYCFLAGS := -fpermissive -w # MYCFLAGS += -DATS_MEMALLOC_LIBC # MYCFLAGS += -D_ATS_CCOMP_PRELUDE_NONE_ # MYCFLAGS += -D_ATS_CCOMP_EXCEPTION_NONE_ MYCFLAGS += -D_ATS_CCOMP_RUNTIME_TRYWITH_NONE_ # MYCFLAGS += -D_ATS_CCOMP_PRELUDE_USER_='"pats_ats2cpp_prelude.h"' # # MYCFLAGS += -D_ATSTYPE_VAR_SIZE_=1024 # MYCFLAGS += -I${PATSHOME}/contrib/ats2cpp MYCFLAGS += -I${PATSHOME}/contrib/ats2cpp/H MYCFLAGS += -I${PATSHOME}/contrib/ats2cpp/ccomp # ###### CC=gcc CPP=g++ ###### all:: ###### # all:: \ test_deque_queue test_deque_queue: \ test_deque_queue_dats.c; $(CPP) $(CXXFLAGS) -o $@ $< test_deque_queue_dats.c: test_deque_queue.dats; $(PATSOPT) -o $@ -d $< # regress:: test_deque_queue; ./$< cleanall:: ; rm -f test_deque_queue # ###### # all:: \ test_queue_queue test_queue_queue: \ test_queue_queue_dats.c; $(CPP) $(CXXFLAGS) -o $@ $< test_queue_queue_dats.c: test_queue_queue.dats; $(PATSOPT) -o $@ -d $< # regress:: test_queue_queue; ./$< cleanall:: ; rm -f test_queue_queue # ###### # all:: \ test_stack_stack test_stack_stack: \ test_stack_stack_dats.c; $(CPP) $(CXXFLAGS) -o $@ $< test_stack_stack_dats.c: test_stack_stack.dats; $(PATSOPT) -o $@ -d $< # regress:: test_stack_stack; ./$< cleanall:: ; rm -f test_stack_stack # ###### # all:: \ test_vector_array test_vector_array: \ test_vector_array_dats.c; $(CPP) $(CXXFLAGS) -o $@ $< test_vector_array_dats.c: test_vector_array.dats; $(PATSOPT) -o $@ -d $< # regress:: test_vector_array; ./$< cleanall:: ; rm -f test_vector_array # ###### # all:: \ test_vector_stack test_vector_stack: \ test_vector_stack_dats.c; $(CPP) $(CXXFLAGS) -o $@ $< test_vector_stack_dats.c: test_vector_stack.dats; $(PATSOPT) -o $@ -d $< # regress:: test_vector_stack; ./$< cleanall:: ; rm -f test_vector_stack # ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; rm -f *~ clean:: ; rm -f *_?ats.c clean:: ; rm -f *_?ats.o ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/TEST/test_vector_stack.dats0000644000175000017500000000141613431250607025524 0ustar brandonbrandon(* ****** ****** *) // // HX-2016-12: // For testing // STL/vector_stack // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #staload "./../DATS/vector_stack.dats" // (* ****** ****** *) // implement main0() = () where { // val () = println! ( "Hello from [test_vector_stack]!" ) (* end of [val] *) // val S0 = stack_make_nil() // val-(0) = sz2i(length(S0)) // val () = S0.insert(1) // val-(1) = sz2i(length(S0)) // val () = S0.insert(2) // val-(2) = sz2i(length(S0)) // val-(2) = S0.takeout() // val (1) = sz2i(length(S0)) // val-(1) = S0.takeout() // val+true = iseqz(S0) val+false = isneqz(S0) // val (0) = sz2i(length(S0)) // val ((*freed*)) = stack_free_nil(S0) // } (* end of [main0] *) (* ****** ****** *) (* end of [test_vector_stack.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/TEST/test_stack_stack.dats0000644000175000017500000000141213431250607025323 0ustar brandonbrandon(* ****** ****** *) // // HX-2016-12: // For testing // STL/stack_stack // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // #staload "./../DATS/stack_stack.dats" // (* ****** ****** *) // implement main0() = () where { // val () = println! ( "Hello from [test_stack_stack]!" ) (* end of [val] *) // val S0 = stack_make_nil() // val-(0) = sz2i(length(S0)) // val () = S0.insert(1) // val-(1) = sz2i(length(S0)) // val () = S0.insert(2) // val-(2) = sz2i(length(S0)) // val-(2) = S0.takeout() // val (1) = sz2i(length(S0)) // val-(1) = S0.takeout() // val+true = iseqz(S0) val+false = isneqz(S0) // val (0) = sz2i(length(S0)) // val ((*freed*)) = stack_free_nil(S0) // } (* end of [main0] *) (* ****** ****** *) (* end of [test_stack_stack.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/TEST/test_vector_array.dats0000644000175000017500000000155013431250607025534 0ustar brandonbrandon(* ****** ****** *) // // HX-2016-12: // For testing // STL/vector_array // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) %{^ // #include \ "pats_ccomp_runtime.c" // %} // end of [%{^] (* ****** ****** *) // #staload "./../DATS/vector_array.dats" // (* ****** ****** *) extern fun mytest(): void = "mac#" // implement mytest() = { // val A0 = array_make_elt(i2sz(3), 0) // val-() = A0[1] := 1 val-() = A0[2] := 2 // val-(0) = A0[0] val-(1) = A0[1] val-(2) = A0[2] // val-(3) = sz2i(length(A0)) // val ((*freed*)) = array_free(A0) // } (* end of [mytest] *) (* ****** ****** *) // %{$ // #include // int main(int argc, int argv) { // std::cout << "Hello from [test_vector_array]!" << std::endl; // mytest(); // return 0; // } /* end of [main0] */ // %} // end of [%{^] // (* ****** ****** *) (* end of [test_vector_array.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/CATS/0000755000175000017500000000000013431250607021072 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/CATS/queue.cats0000644000175000017500000000415613431250607023100 0ustar brandonbrandon/* (* ** ATS2CPP: ** API for STL:queue *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) */ /* ****** ****** */ // // Author: Hongwei Xi // Authoremal: gmhwxiATgmailDOTcom // Start Time: December, 2016 // /* ****** ****** */ // #ifndef ATS2CPP_STL_CATS_QUEUE #define ATS2CPP_STL_CATS_QUEUE // /* ****** ****** */ // #include // /* ****** ****** */ // #define \ ats2cpp_STL_queueptr(elt) std::queue* // /* ****** ****** */ // #define \ ats2cpp_STL_queueptr_new(elt) \ new std::queue(/* empty */) // /* ****** ****** */ // #define \ ats2cpp_STL_queueptr_free(elt, p0) \ delete(static_cast*>(p0)) // /* ****** ****** */ // #define \ ats2cpp_STL_queueptr_size(elt, p0) \ (static_cast*>(p0))->size() // /* ****** ****** */ // #define \ ats2cpp_STL_queueptr_empty(elt, p0) \ (static_cast*>(p0))->empty() // /* ****** ****** */ // #define \ ats2cpp_STL_queueptr_back(elt, p0) \ (static_cast*>(p0))->back() #define \ ats2cpp_STL_queueptr_front(elt, p0) \ (static_cast*>(p0))->front() // /* ****** ****** */ // #define \ ats2cpp_STL_queueptr_pop(elt, p0) \ (static_cast*>(p0))->pop() // /* ****** ****** */ // #define \ ats2cpp_STL_queueptr_push(elt, p0, x0) \ (static_cast*>(p0))->push(x0) // /* ****** ****** */ // #endif // end of ifndef(ATS2CPP_STL_CATS_QUEUE) // /* ****** ****** */ /* end of [queue.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/CATS/stack.cats0000644000175000017500000000401513431250607023053 0ustar brandonbrandon/* (* ** ATS2CPP: ** API for STL:stack *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) */ /* ****** ****** */ // // Author: Hongwei Xi // Authoremal: gmhwxiATgmailDOTcom // Start Time: December, 2016 // /* ****** ****** */ // #ifndef ATS2CPP_STL_CATS_STACK #define ATS2CPP_STL_CATS_STACK // /* ****** ****** */ // #include // /* ****** ****** */ // #define \ ats2cpp_STL_stackptr(elt) std::stack* // /* ****** ****** */ // #define \ ats2cpp_STL_stackptr_new(elt) \ new std::stack(/* empty */) // /* ****** ****** */ // #define \ ats2cpp_STL_stackptr_free(elt, p0) \ delete(static_cast*>(p0)) // /* ****** ****** */ // #define \ ats2cpp_STL_stackptr_size(elt, p0) \ (static_cast*>(p0))->size() // /* ****** ****** */ // #define \ ats2cpp_STL_stackptr_empty(elt, p0) \ (static_cast*>(p0))->empty() // /* ****** ****** */ // #define \ ats2cpp_STL_stackptr_top(elt, p0) \ (static_cast*>(p0))->top() // /* ****** ****** */ // #define \ ats2cpp_STL_stackptr_pop(elt, p0) \ (static_cast*>(p0))->pop() // /* ****** ****** */ // #define \ ats2cpp_STL_stackptr_push(elt, p0, x0) \ (static_cast*>(p0))->push(x0) // /* ****** ****** */ // #endif // end of ifndef(ATS2CPP_STL_CATS_STACK) // /* ****** ****** */ /* end of [stack.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/CATS/vector.cats0000644000175000017500000000462113431250607023253 0ustar brandonbrandon/* (* ** ATS2CPP: ** API for STL:vector *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) */ /* ****** ****** */ // // Author: Hongwei Xi // Authoremal: gmhwxiATgmailDOTcom // Start Time: December, 2016 // /* ****** ****** */ // #ifndef ATS2CPP_STL_CATS_VECTOR #define ATS2CPP_STL_CATS_VECTOR // /* ****** ****** */ // #include // /* ****** ****** */ // #define \ ats2cpp_STL_vectorptr(elt) std::vector* // /* ****** ****** */ // #define \ ats2cpp_STL_vectorptr_new(elt) \ new std::vector(/* empty */) #define \ ats2cpp_STL_vectorptr_new_fill(elt, asz, val) \ new std::vector(asz, *(static_cast(val))) // /* ****** ****** */ // #define \ ats2cpp_STL_vectorptr_free(elt, p0) \ delete(static_cast*>(p0)) // /* ****** ****** */ // #define \ ats2cpp_STL_vectorptr_get_at(elt, p0, i) \ (*(static_cast*>(p0)))[i] #define \ ats2cpp_STL_vectorptr_set_at(elt, p0, i, x) \ ((*(static_cast*>(p0)))[i] = x) // /* ****** ****** */ // #define \ ats2cpp_STL_vectorptr_size(elt, p0) \ (static_cast*>(p0))->size() // /* ****** ****** */ // #define \ ats2cpp_STL_vectorptr_empty(elt, p0) \ (static_cast*>(p0))->empty() // /* ****** ****** */ // #define \ ats2cpp_STL_vectorptr_back(elt, p0) \ (static_cast*>(p0))->back() // /* ****** ****** */ // #define \ ats2cpp_STL_vectorptr_pop_back(elt, p0) \ (static_cast*>(p0))->pop_back() // /* ****** ****** */ // #define \ ats2cpp_STL_vectorptr_push_back(elt, p0, x0) \ (static_cast*>(p0))->push_back(x0) // /* ****** ****** */ // #endif // end of ifndef(ATS2CPP_STL_CATS_VECTOR) // /* ****** ****** */ /* end of [vector.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/STL/CATS/deque.cats0000644000175000017500000000452713431250607023061 0ustar brandonbrandon/* (* ** ATS2CPP: ** API for STL:deque *) (* ****** ****** *) (* ** Permission to use, copy, modify, and distribute this software for any ** purpose with or without fee is hereby granted, provided that the above ** copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) */ /* ****** ****** */ // // Author: Hongwei Xi // Authoremal: gmhwxiATgmailDOTcom // Start Time: December, 2016 // /* ****** ****** */ // #ifndef ATS2CPP_STL_CATS_DEQUE #define ATS2CPP_STL_CATS_DEQUE // /* ****** ****** */ // #include // /* ****** ****** */ // #define \ ats2cpp_STL_dequeptr(elt) std::deque* // /* ****** ****** */ // #define \ ats2cpp_STL_dequeptr_new(elt) \ new std::deque(/* empty */) #define \ ats2cpp_STL_dequeptr_new_fill(elt, asz, val) \ new std::deque(asz, *(static_cast(val))) // /* ****** ****** */ // #define \ ats2cpp_STL_dequeptr_free(elt, p0) \ delete(static_cast*>(p0)) // /* ****** ****** */ // #define \ ats2cpp_STL_dequeptr_size(elt, p0) \ (static_cast*>(p0))->size() // /* ****** ****** */ // #define \ ats2cpp_STL_dequeptr_back(elt, p0) \ (static_cast*>(p0))->back() // #define \ ats2cpp_STL_dequeptr_front(elt, p0) \ (static_cast*>(p0))->front() // /* ****** ****** */ // #define \ ats2cpp_STL_dequeptr_pop_back(elt, p0) \ (static_cast*>(p0))->pop_back() // #define \ ats2cpp_STL_dequeptr_pop_front(elt, p0) \ (static_cast*>(p0))->pop_front() // /* ****** ****** */ // #define \ ats2cpp_STL_dequeptr_push_back(elt, p0, x0) \ (static_cast*>(p0))->push_back(x0) // #define \ ats2cpp_STL_dequeptr_push_front(elt, p0, x0) \ (static_cast*>(p0))->push_front(x0) // /* ****** ****** */ // #endif // end of ifndef(ATS2CPP_STL_CATS_DEQUE) // /* ****** ****** */ /* end of [deque.cats] */ ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/.keeper0000644000175000017500000000000013431250607021140 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/TEST/0000755000175000017500000000000013431250607020455 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/TEST/test01.dats0000644000175000017500000000143113431250607022451 0ustar brandonbrandon(* ** For testing ats2cpp *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // extern fun fact(n: int): int = "ext#" // implement fact(n) = if n > 0 then n * fact(n-1) else 1 // (* ****** ****** *) // extern fun ffact(n: int): double = "ext#" // implement ffact(n) = if n > 0 then n * ffact(n-1) else 1.0 // (* ****** ****** *) implement main0() = () where { // val () = println! ("fact(10) = ", fact(10)) val () = println! ("ffact(10) = ", ffact(10)) // } (* end of [main0] *) (* ****** ****** *) /* %{$ #include int main() { printf("fact(10) = %i\n", fact(10)); printf("ffact(10) = %f\n", ffact(10)); return 0; } %} // end of [%{$] */ (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/TEST/Makefile0000644000175000017500000000220213431250607022111 0ustar brandonbrandon###### # PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt # ###### # CXXFLAGS = $(MYCFLAGS) # ###### # MYCFLAGS := -fpermissive -w # MYCFLAGS += -DATS_MEMALLOC_LIBC # MYCFLAGS += -D_ATS_CCOMP_PRELUDE_NONE_ # MYCFLAGS += -D_ATS_CCOMP_EXCEPTION_NONE_ MYCFLAGS += -D_ATS_CCOMP_RUNTIME_TRYWITH_NONE_ # MYCFLAGS += -D_ATS_CCOMP_PRELUDE_USER_='"pats_ats2cpp_prelude.h"' # # MYCFLAGS += -D_ATSTYPE_VAR_SIZE_=1024 # MYCFLAGS += -I${PATSHOME}/contrib/ats2cpp MYCFLAGS += -I${PATSHOME}/contrib/ats2cpp/H MYCFLAGS += -I${PATSHOME}/contrib/ats2cpp/ccomp # ###### CC=gcc CPP=g++ ###### all:: ###### # all:: \ test01 test01: \ test01_dats.c; $(CPP) $(CXXFLAGS) -o $@ $< test01_dats.c: test01.dats; $(PATSOPT) -o $@ -d $< # regress:: test01; ./$< cleanall:: ; rm -f test01 # ###### # all:: \ test02 test02: \ test02_dats.c; $(CPP) $(CXXFLAGS) -o $@ $< test02_dats.c: test02.dats; $(PATSOPT) -o $@ -d $< # regress:: test02; ./$< cleanall:: ; rm -f test02 # ###### testall:: all testall:: regress testall:: cleanall ###### clean:: ; rm -f *~ clean:: ; rm -f *_?ats.c clean:: ; rm -f *_?ats.o ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/TEST/README0000644000175000017500000000023113431250607021331 0ustar brandonbrandon# # Compiling via g++ # the C code generated from patsopt # ###### test01: plain C code test02: making use of std:vector ###### end of [README] ###### ATS2-Postiats-gmp-0.3.13/./contrib/ats2cpp/TEST/test02.dats0000644000175000017500000000541013431250607022453 0ustar brandonbrandon(* ** For testing ats2cpp *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) %{^ #undef ATSextfcall #define ATSextfcall(fun, funarg) fun funarg %} // end of [%{^] (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) %{^ // #include // #define \ fvectorptr(elt) std::vector* // #define \ fvectorptr_new(elt) new std::vector() #define \ fvectorptr_free(elt, p0) \ delete(static_cast*>(p0)) // #define \ fvectorptr_get_at(elt, p0, i) \ (*(static_cast*>(p0)))[i] // #define \ fvectorptr_push_back(elt, p0, x0) \ (static_cast*>(p0))->push_back(x0) // %} // end of [%{^] (* ****** ****** *) // absvtype vectorptr(a:t@ype+) = $extype"fvectorptr"(a) // (* ****** ****** *) // extern fun {a:t@ype} vectorptr_new(): vectorptr(a) extern fun {a:t@ype} vectorptr_free(vectorptr(a)): void // extern fun {a:t@ype} vectorptr_get_at (p0: !vectorptr(INV(a)), int): a // overload [] with vectorptr_get_at // extern fun {a:t@ype} vectorptr_push_back (p0: !vectorptr(INV(a)), a): void // (* ****** ****** *) // implement {elt} vectorptr_new ( // argumentless ) = $extfcall ( vectorptr(elt), "fvectorptr_new", $tyrep(elt) ) (* vectorptr_new *) // (* ****** ****** *) // implement {elt} vectorptr_free ( p0 ) = let // val p0 = $UNSAFE.castvwtp0{ptr}(p0) // in // $extfcall (void, "fvectorptr_free", $tyrep(elt), p0) // end // end of [vectorptr_free] // (* ****** ****** *) // implement {elt} vectorptr_get_at (p0, i) = let // val p0 = $UNSAFE.castvwtp1{ptr}(p0) // in // $extfcall (elt, "fvectorptr_get_at", $tyrep(elt), p0, i) // end // end of [vectorptr_get_at] // (* ****** ****** *) // implement {a}(*tmp*) vectorptr_push_back (p0, x) = let val p0 = $UNSAFE.castvwtp1{ptr}(p0) in $extfcall(void, "fvectorptr_push_back", $tyrep(a), p0, x) end // end of [vectorptr_push_back] // (* ****** ****** *) // extern fun fact(n: int): int = "ext#" // (* ****** ****** *) implement fact(n) = res where { // val p0 = vectorptr_new() // end of [val] val () = loop(p0, 0) where { fun loop ( p0: !vectorptr(int), i: int ) : void = if i < n then ( vectorptr_push_back(p0, i+1); loop(p0, i+1) ) // end of [loop] } val res = loop(p0, 0, 1) where { fun loop ( p0: !vectorptr(int), i: int, res: int ) : int = if i < n then loop(p0, i+1, res * p0[i]) else res // end of [loop] } // val ((*freed*)) = vectorptr_free(p0) // } (* end of [fact] *) (* ****** ****** *) (* implement main0() = println! ("fact(10) = ", fact(10)) *) (* ****** ****** *) %{$ #include int main() { // std::cout << "fact(10) = " << fact(10) << std::endl; // return 0; // } /* end of [main] */ %} // end of [%{$] (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/0000755000175000017500000000000013431250607020734 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/CATS-parsemit0000777000175000017500000000000013431250607025742 2../CATS-parsemitustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/bin/0000755000175000017500000000000013431250607021504 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/bin/.gitkeep0000644000175000017500000000000013431250607023123 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/DATS/0000755000175000017500000000000013431250607021467 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/DATS/atscc2scm_emit2.dats0000644000175000017500000013174013431250607025334 0ustar brandonbrandon(* ****** ****** *) // // Atscc2scm: // from ATS to Scheme // (* ****** ****** *) // // HX-2015-06-29: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_fundecl.sats" // (* ****** ****** *) staload "./atscc2scm_emit.dats" (* ****** ****** *) // extern fun emit_tmpdeclst_initize ( out: FILEref, tds: tmpdeclst ) : void // end-of-fun // local fun skipds ( p1: ptr ) : ptr = let val c1 = $UN.ptr0_get(p1) in if isdigit(c1) then skipds(ptr_succ(p1)) else p1 // end of [if] end // end of [skipds] fun emit_axrg__ ( out: FILEref, sym: symbol ) : void = let // val p0 = string2ptr (symbol_get_name(sym)) // string2ptr val p1 = skipds(ptr_succ(p0)) // val p1_2 = ptr_add(p1, 2) // in emit_text(out, "arg"); emit_text(out, $UN.cast{string}(p1_2)) end // end of [emit_axrg__] in (* in-of-local *) implement emit_tmpdeclst_initize (out, tds) = let // fun auxlst ( out: FILEref, tds: tmpdeclst ) : void = let // (* val () = println! ("auxlst: tds = ", tds) *) // in // case+ tds of | list_nil() => () | list_cons(td, tds) => ( case+ td.tmpdec_node of // case+ | TMPDECnone (tmp) => auxlst (out, tds) // TMPDECnone | TMPDECsome (tmp, _) => auxlst (out, tds) where { // val sym = tmp.i0dex_sym // val isapy = ( if tmpvar_is_apy(sym) then true else tmpvar_is_axpy(sym) ) : bool // end of [if] val isaxrg = tmpvar_is_axrg(sym) // val () = if not(isapy) then emit_text(out, " (") else emit_text(out, ";;(") // end of [val] // val () = ( emit_tmpvar(out, tmp); emit_SPACE(out); ( if not(isaxrg) then emit_text(out, "#f") else emit_axrg__(out, sym) // end of [if] ) ) (* end of [val] *) // val ((*closing*)) = emit_text(out, ")\n") // } (* end of [TMPDECsome] *) ) (* end of [list_cons] *) // end // end of [auxlst] // in auxlst (out, tds) end // end of [emit_tmpdeclst_initize] end // end of [local] // (* ****** ****** *) // extern fun the_casefnxx_new (): int extern fun the_casefnxx_reset (): void // (* ****** ****** *) // extern fun the_funlabind_get (): int extern fun the_funlabind_set (i0: int): void // (* ****** ****** *) // extern fun the_tmpdeclst_get (): tmpdeclst extern fun the_tmpdeclst_set (tds: tmpdeclst): void // (* ****** ****** *) // extern fun the_f0headopt_get (): f0headopt extern fun the_f0headopt_set (fhd: f0head): void // (* ****** ****** *) // extern fun the_funbodyknd_get (): int extern fun the_funbodyknd_set (knd: int): void // (* ****** ****** *) // extern fun the_funbodylst_get (): instrlst extern fun the_funbodylst_set (inss: instrlst): void // (* ****** ****** *) // extern fun the_branchlablst_get (): labelist extern fun the_branchlablst_set (tls: labelist): void extern fun the_branchlablst_unset ((*void*)): void // (* ****** ****** *) // extern fun funlab_get_index(flab: label): int extern fun tmplab_get_index(tlab: label): int // implement funlab_get_index (fl0) = let // val n0 = fl0.i0dex_sym // fun auxlst ( xs: instrlst, i: int ) : int = ( // case+ xs of | list_nil ((*error*)) => ~1 // end of [list_nil] | list_cons(x, xs) => ( case+ x.instr_node of // case+ | ATSfunbodyseq _ => let val fl = funbodyseq_get_funlab (x) in if n0 = fl.i0dex_sym then i else auxlst (xs, i+1) end // end of [ATSfunbodyseq] | _ (*non-ATSfunbody*) => auxlst (xs, i) ) (* end of [list_cons] *) // ) (* end of [auxlst] *) // in auxlst (the_funbodylst_get(), 1) end // end of [funlab_get_index] // implement tmplab_get_index (lab0) = let // val n0 = lab0.i0dex_sym // fun auxlst ( xs: labelist, i: int ) : int = ( case+ xs of | list_nil ((*error*)) => ~1 // end of [list_nil] | list_cons (x, xs) => if n0 = x.i0dex_sym then i else auxlst (xs, i+1) // end of [list_cons] ) // in auxlst (the_branchlablst_get(), 1) end // end of [tmplab_get_index] // (* ****** ****** *) local // val the_casefnxx = ref (1) // val the_funlabind = ref (~1) // val the_tmpdeclst = ref (list_nil) // val the_f0headopt = ref (None()) // val the_funbodyknd = ref (~1) val the_funbodylst = ref (list_nil) // // HX: this is a stack: // val the_branchlablstlst = ref (list_nil) // in (* in-of-local *) implement the_casefnxx_new ((*void*)) = fx where { val fx = !the_casefnxx val () = !the_casefnxx := fx+1 } implement the_casefnxx_reset() = !the_casefnxx := 1 implement the_funlabind_get() = !the_funlabind implement the_funlabind_set(i0) = !the_funlabind := i0 implement the_tmpdeclst_get() = !the_tmpdeclst implement the_tmpdeclst_set(xs) = !the_tmpdeclst := xs implement the_f0headopt_get() = !the_f0headopt implement the_f0headopt_set(fhd) = !the_f0headopt := Some(fhd) implement the_funbodyknd_get() = !the_funbodyknd implement the_funbodyknd_set(knd) = !the_funbodyknd := knd implement the_funbodylst_get() = !the_funbodylst implement the_funbodylst_set(inss) = !the_funbodylst := inss implement the_branchlablst_get ( ) = let // val xss = !the_branchlablstlst // in // case- xss of list_cons (xs, _) => xs // end // end of [the_branchlablst_get] implement the_branchlablst_set ( xs ) = let // val xss = !the_branchlablstlst // in !the_branchlablstlst := list_cons (xs, xss) end // end of [the_branchlablst_set] implement the_branchlablst_unset ( ) = let // val xss = !the_branchlablstlst // in // case- xss of | list_cons (_, xss) => !the_branchlablstlst := xss // end // end of [the_branchlablst_unset] end // end of [local] (* ****** ****** *) // fun emit_funlab_index (out: FILEref, fl: label): void = emit_int (out, funlab_get_index (fl)) // fun emit_tmplab_index (out: FILEref, lab: label): void = emit_int (out, tmplab_get_index (lab)) // (* ****** ****** *) // extern fun emit_casefnx (out: FILEref): void extern fun emit_casefnx2 (out: FILEref, tli: int): void // implement emit_casefnx (out) = emit_text(out, "casefnx") // implement emit_casefnx2 (out, tli) = () where { // val () = emit_LPAREN(out) val () = emit_casefnx(out) val () = (emit_SPACE(out); emit_int(out, tli)) val () = emit_RPAREN(out) // } (* end of [emit_casefnx2] *) // (* ****** ****** *) // extern fun emit_casefnxx (out: FILEref, x: int): void extern fun emit_casefnxx2 (out: FILEref, x: int, tli: int): void // implement emit_casefnxx(out, x) = emit_casefnx(out) implement emit_casefnxx2(out, x, tli) = emit_casefnx2(out, tli) // (* implement emit_casefnxx (out, x) = (emit_text(out, "casefnxx"); emit_int(out, x)) // implement emit_casefnxx2 (out, x, tli) = () where { // val () = emit_LPAREN(out) // val () = ( emit_casefnxx(out, x); emit_SPACE(out); emit_int(out, tli) ) (* end of [val] *) // val () = emit_RPAREN(out) // } (* end of [emit_casefnxx2] *) *) // (* ****** ****** *) // extern fun emit_tmpvar_set ( out: FILEref, tmp: i0de ) : void // end-of-function // implement emit_tmpvar_set (out, tmp) = () where { // val sym = tmp.i0dex_sym val istmp = tmpvar_is_tmp(sym) // val () = emit_text ( out , if istmp then "ATSINStmpset" else "ATSINSstatmpset" // end of [if] ) (* emit_text *) val () = emit_SPACE(out) val () = emit_symbol(out, sym) // } (* end of [emit_tmpvar_set] *) // (* ****** ****** *) // extern fun emit2_instr (out: FILEref, ind: int, ins: instr): void // extern fun emit2_instr_ln (out: FILEref, ind: int, ins: instr): void // extern fun emit2_instrlst (out: FILEref, ind: int, inss: instrlst): void // (* extern fun emit2_instrlst_ln (out: FILEref, ind: int, inss: instrlst): void *) // extern fun emit2_instrlst_end (out: FILEref, ind: int, inss: instrlst, sep: string): void // extern fun emit2_instrlst_sepln (out: FILEref, ind: int, inss: instrlst, sep: string): void // (* ****** ****** *) // extern fun emit2_branchlst (out: FILEref, ind: int, inss: instrlst): void extern fun emit2_branchseqlst (out: FILEref, ind: int, inss: instrlst): void // (* ****** ****** *) // extern fun emit2_tailcalseqlst (out: FILEref, ind: int, inss: instrlst): void // (* ****** ****** *) // extern fun emit2_ATSfunbodyseq (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_con1 (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_boxrec (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_delay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_lazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_ldelay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_llazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // // HX-2014-08: // this one should not be used for // emitting multiple-line instructions // implement emit_instr (out, ins) = emit2_instr (out, 0(*ind*), ins) // (* ****** ****** *) implement emit2_instr (out, ind, ins0) = let // fun emit_not_d0exp (out: FILEref, d0e: d0exp): void = { val () = emit_fname_d0exp(out, "not", d0e) } (* end of [emit_not_d0exp] *) // in // case+ ins0.instr_node of // case+ // | ATSif ( d0e, inss, inssopt ) => let val () = emit_nspc (out, ind) val () = emit_text (out, "(if") val () = emit_SPACE (out) val () = (emit_d0exp (out, d0e); emit_ENDL(out)) val () = emit2_instrlst_sepln (out, ind+2, inss, " ;; if-then\n") in case+ inssopt of | None() => { val () = (emit_nspc (out, ind); emit_RPAREN (out)) } (* end of [None] *) | Some(inss) => { val () = emit2_instrlst_sepln (out, ind+2, inss, " ;; if-else\n") val () = (emit_nspc (out, ind); emit_RPAREN (out)) } (* end of [Some] *) end // end of [ATSif] // | ATSifthen (d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "(if") val () = emit_SPACE (out) val () = emit_d0exp (out, d0e) val () = emit_SPACE (out) val () = emit_instr (out, ins) val () = emit_RPAREN (out) } // | ATSifnthen (d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "(if") val () = emit_SPACE (out) val () = emit_not_d0exp (out, d0e) val () = emit_SPACE (out) val () = emit_instr (out, ins) val () = emit_RPAREN (out) } // | ATSbranchseq (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ATSbranchseq(...)") } // | ATScaseofseq (inss) => { // val tls = caseofseq_get_tmplablst (ins0) // end of [val] val () = the_branchlablst_set (tls) // val () = emit_nspc (out, ind) val () = emit_text (out, "(letrec(\n") (* val () = emit_nspc (out, ind) val () = emit_text (out, ";while(true) {\n") *) // val fx = the_casefnxx_new() // val () = emit_nspc(out, ind+2) val () = ( emit_LPAREN(out); emit_casefnxx (out, fx); emit_ENDL(out) ) (* end of [val] *) val () = ( emit_nspc(out, ind+3); emit_text(out, "(lambda(tmplab)(case tmplab\n") ) (* end of [val] *) // val () = emit2_branchseqlst (out, ind+4, inss) // val () = emit_nspc (out, ind+4) val () = emit_text (out, ") ;; end-of-case\n") // val () = emit_nspc (out, ind+3) val () = emit_text (out, ") ;; end-of-lambda\n") // val () = emit_nspc (out, ind+2) val () = emit_text (out, ") ;; end-of-casefnx\n") // val () = emit_nspc (out, ind+1) val () = emit_text (out, ") ") val () = ( emit_casefnxx2(out, fx, 1); emit_ENDL(out) ) (* end of [val] *) val () = emit_nspc (out, ind+0) val () = emit_text (out, ") ;; end-of-letrec") // val () = the_branchlablst_unset ((*void*)) // } (* end of [ATScaseofseq] *) // | ATSreturn (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; return ") val () = emit_tmpvar (out, tmp) val () = emit_SEMICOLON (out) } | ATSreturn_void (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; return/*_void*/") val () = emit_SEMICOLON (out) } // | ATSINSlab (lab) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; case ") val () = ( emit_tmplab_index (out, lab); emit_COLON (out) ) (* end of [val] *) val () = ( emit_text (out, " // "); emit_label (out, lab) ) (* end of [val] *) } (* end of [ATSINSlab] *) // | ATSINSgoto (lab) => { // val () = emit_nspc (out, ind) val () = emit_casefnx2 (out, tmplab_get_index(lab)) // } (* end of [ATSINSgoto] *) // | ATSINSflab (flab) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_label (out, flab) } (* end of [ATSINSflab] *) // | ATSINSfgoto(flab) => { val () = emit_nspc(out, ind) // val () = let val fi = funlab_get_index (flab) // end of [val] val () = the_funlabind_set(fi) in emit_text (out, ";; funlab_scm = "); emit_int (out, fi) end (* end of [val] *) // val () = (emit_text (out, "; // "); emit_label (out, flab)) } (* end of [ATSINSfgoto] *) // | ATSINSfreeclo (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_text (out, "ATSINSfreeclo") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSfreecon (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_text (out, "ATSINSfreecon") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } // | ATSINSmove (tmp, d0e) => { // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // end of [val] // val () = if isret then ( emit_d0exp (out, d0e) ) (* end of [then] *) else ( emit_LPAREN (out); emit_tmpvar_set(out, tmp); emit_SPACE(out); emit_d0exp (out, d0e); emit_RPAREN (out); ) (* end of [else] *) // end of [if] // } (* end of [ATSINSmove] *) // | ATSINSmove_void (tmp, d0e(*command*)) => let val () = emit_nspc (out, ind) in case+ d0e.d0exp_node of // case+ | ATSPMVempty _ => emit_text (out, "ATSINSmove0_void") // end of [ATSempty] | _ (*non-ATSPMVempty*) => emit_fname_d0exp (out, "ATSINSmove1_void", d0e) // end of [non-ATSPMVempty] end (* end of [ATSINSmove_void] *) // | ATSINSmove_nil(tmp) => { // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret(tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) } (* end of [val] *) // val () = if isnot then emit_SPACE(out) val () = emit_text(out, "atscc2scm_null") // end of [val] val () = if isnot then emit_RPAREN(out) // } // | ATSINSmove_con0(tmp, tag) => { // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret(tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_PMVint(out, tag) // val () = if isnot then emit_RPAREN(out) // } // | ATSINSmove_con1 _ => emit2_ATSINSmove_con1 (out, ind, ins0) // | ATSINSmove_boxrec _ => emit2_ATSINSmove_boxrec (out, ind, ins0) // | ATSINSmove_delay _ => emit2_ATSINSmove_delay (out, ind, ins0) | ATSINSmove_lazyeval _ => emit2_ATSINSmove_lazyeval (out, ind, ins0) // | ATSINSmove_ldelay _ => emit2_ATSINSmove_ldelay (out, ind, ins0) | ATSINSmove_llazyeval _ => emit2_ATSINSmove_llazyeval (out, ind, ins0) // | ATSINSmove_tlcal (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e) // val () = emit_SEMICOLON (out) } (* end of [ATSINSmove_tlcal] *) // | ATSINSargmove_tlcal (tmp1, tmp2) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_tmpvar (out, tmp1) val () = emit_text (out, " = ") val () = emit_tmpvar (out, tmp2) // val () = emit_SEMICOLON (out) } (* end of [ATSINSargmove_tlcal] *) // | ATStailcalseq(inss) => { val () = emit2_tailcalseqlst(out, ind, inss) // end of [val] } (* end of [ATStailcalseq] *) // | ATSINSextvar_assign (ext, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; ") val () = emit_d0exp (out, ext) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } // | ATSINSdyncst_valbind (d2c, d0e_r) => { val () = emit_nspc(out, ind) val () = emit_text(out, "(ATSINSdyncst_valbind ") val () = ( emit_i0de(out, d2c); emit_SPACE(out); emit_d0exp(out, d0e_r) ) (* end of [val] *) val () = emit_RPAREN (out) } // | ATSINScaseof_fail(errmsg) => { // val () = emit_nspc(out, ind) // val () = emit_text(out, "(ATSINScaseof_fail ") val () = ( emit_PMVstring(out, errmsg); emit_RPAREN(out) ) (* end of [val] *) // } | ATSINSdeadcode_fail(__tok__) => { val () = emit_nspc (out, ind) val () = emit_text (out, "(ATSINSdeadcode_fail)") } // | ATSdynload(dummy) => { val () = emit_nspc (out, ind) val () = emit_text (out, ";; (ATSdynload)") } // | ATSdynloadset(flag) => { val () = emit_nspc (out, ind) val () = emit_text ( out , ";; initizing flag is set\n" ) (* emit_text *) val () = emit_nspc (out, ind) val () = ( emit_text(out, "(ATSdynloadset "); emit_tmpvar(out, flag); emit_text(out, " 1)") ) (* end of [val] *) } // | ATSdynloadfcall(fcall) => { val () = emit_nspc (out, ind) val () = ( emit_LPAREN(out); emit_tmpvar(out, fcall); emit_RPAREN(out) ) (* end of [val] *) } // | ATSdynloadflag_sta(flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, ";; (ATSdynloadflag_sta ", flag, ")") } | ATSdynloadflag_ext(flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, ";; (ATSdynloadflag_ext ", flag, ")") } // | _ (*rest-of-instr*) => { val () = emit_nspc (out, ind) val ((*error*)) = fprint! (out, "UNRECOGNIZED-INSTRUCTION: ", ins0) } // end // end of [emit2_instr] (* ****** ****** *) implement emit2_instr_ln (out, ind, ins) = ( emit2_instr (out, ind, ins); emit_ENDL (out) ) (* end of [emit2_instr_ln] *) (* ****** ****** *) implement emit2_instrlst ( out, ind, inss ) = let // fun auxlst ( i: int, inss: instrlst ) : void = ( // case+ inss of | list_nil ((*void*)) => () | list_cons (ins, inss) => let val () = if i > 0 then emit_ENDL (out) val () = emit2_instr (out, ind, ins) in auxlst (i+1, inss) end // end of [list_cons] // ) // in auxlst (0, inss) end (* end of [emit2_instrlst] *) (* ****** ****** *) implement emit2_instrlst_end (out, ind, inss, sep) = ( // case+ inss of // | list_cons _ => let val () = emit2_instrlst (out, ind, inss) // end of [val] val () = emit_text (out, sep) in // nothing end // end of [list_cons] // | list_nil() => ((*error*)) // ) (* end of [emit2_instrlst_end] *) (* ****** ****** *) implement emit2_instrlst_sepln (out, ind, inss, sep) = { // val () = emit_nspc(out, ind) val () = emit_text(out, "(begin\n") // val () = emit2_instrlst_end(out, ind+1, inss, "\n") // val () = emit_nspc(out, ind) val () = (emit_text(out, ")"); emit_text(out, sep)) // } (* end of [emit2_instrlst_sepln] *) (* ****** ****** *) implement emit2_branchlst (out, ind, inss) = let // fun emit_not_d0exp ( out: FILEref, d0e: d0exp ) : void = emit_fname_d0exp(out, "not", d0e) // fun auxins ( ind: int , tli: int, ins: instr ) : void = let in emit2_instr(out, ind, ins) end // end of [auxins] // fun auxinss0 ( ind: int, inss: instrlst ) : void = ( case inss of | list_nil((*void*)) => () | list_cons(ins1, inss1) => ( case+ ins1.instr_node of // case+ | ATSINSlab(lab) => let val tli1 = tmplab_get_index(lab) in auxinss1 (ind, tli1, inss1) end | _ (*non-ATSINSlab*) => auxinss0 (ind, inss1) ) ) // and auxinss1 ( ind: int , tli: int, inss: instrlst ) : void = let // val () = emit_nspc (out, ind) // val () = emit_LPAREN(out) // val () = ( emit_LPAREN(out); emit_int (out, tli); emit_RPAREN(out) ) (* end of [val] *) // val () = emit_ENDL(out) // val inss = auxinss2 (ind+1, tli, 0, inss) // val () = emit_ENDL(out) val () = emit_nspc(out, ind) val () = emit_text(out, ") ;; end-of-branch\n") // in auxinss0 (ind, inss) end (* end of [auxinss1] *) // and auxinss2 ( ind: int , tli: int, i: int, inss: instrlst ) : instrlst = ( case+ inss of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (ins1, inss1) => let val () = if i > 0 then emit_ENDL(out) in case+ ins1.instr_node of // case+ | ATSINSlab(lab) => let val () = emit_nspc (out, ind) val () = emit_casefnx2 (out, tli+1) in inss end // end of [ATSINSlab] | _ (*non-ATSINSlab*) => auxinsinss2 (ind, tli, i, ins1, inss1) end // end of [non-ATSINSlab] ) // and auxinss2_ ( ind: int , tli: int, i: int, inss: instrlst ) : instrlst = inss where { val () = emit_nspc(out, ind) val () = emit_text(out, "(begin\n") val inss = auxinss2(ind+1, tli, i, inss) val _void_ = emit_ENDL(out) val _void_ = (emit_nspc(out, ind); emit_RPAREN(out)) } // and auxinsinss2 ( ind: int , tli: int, i: int , ins: instr, inss: instrlst ) : instrlst = ( case+ ins.instr_node of // case+ | ATSINSlab(lab) => let val () = emit_nspc (out, ind) val () = emit_casefnx2 (out, tli+1) in inss end // end of [ATSINSlab] // | ATSifthen (d0e, inss2) => let // val-list_cons (ins2, _) = inss2 // val () = emit_nspc (out, ind) val () = emit_text (out, "(if ") val () = ( emit_d0exp (out, d0e); emit_ENDL(out) ) (* end of [val] *) val () = emit2_instr_ln (out, ind+2, ins2) val inss = auxinss2_ (ind+2, tli, 0, inss) val _void_ = emit_ENDL (out) val _void_ = (emit_nspc (out, ind); emit_RPAREN (out)) in inss end // end of [ATSifthen] | ATSifnthen (d0e, inss2) => let // val-list_cons(ins2, _) = inss2 // val () = emit_nspc (out, ind) val () = emit_text (out, "(if ") val () = ( emit_not_d0exp (out, d0e); emit_ENDL(out) ) (* end of [val] *) // val () = emit2_instr_ln (out, ind+2, ins2) val inss = auxinss2_ (ind+2, tli, 0, inss) val _void_ = emit_ENDL(out) val _void_ = (emit_nspc(out, ind); emit_RPAREN(out)) in inss end // end of [ATSifnthen] // | _ (*rest-of-ATSINS*) => ( auxins (ind, tli, ins); auxinss2 (ind, tli, i+1, inss) ) (* end of [rest-of-ATSINS] *) // ) (* end of [auxinsinss2] *) // in auxinss0 (ind, inss) end // end of [emit2_branchlst] (* ****** ****** *) implement emit2_branchseqlst (out, ind, inss) = let // fun auxseq ( out: FILEref , ind: int, ins0: instr ) : void = let in // case- ins0.instr_node of // | ATSbranchseq (inss) => emit2_branchlst (out, ind, inss) // end of [ATSbranchseq] // end (* end of [auxseq] *) // fun auxseqlst ( out: FILEref , ind: int, inss: instrlst ) : void = let in // case+ inss of | list_nil ((*void*)) => () | list_cons (ins, inss) => let // val () = emit_nspc (out, ind) val () = emit_text (out, ";; ATSbranchseq_beg\n") // val () = auxseq (out, ind, ins) // (* val () = emit_nspc (out, ind) val () = emit_text (out, "break;\n") *) // val () = emit_nspc (out, ind) val () = emit_text (out, ";; ATSbranchseq_end\n") // in auxseqlst (out, ind, inss) end (* end of [list_cons] *) // end (* end of [auxseqlst] *) // val () = auxseqlst (out, ind, inss) // val () = emit_nspc (out, ind) val () = emit_text (out, ";; (else (atscc2scm_caseof_deadcode _FILE_ _LINE_))\n") // in // nothing end // end of [emit2_branchseqlst] (* ****** ****** *) implement emit2_tailcalseqlst (out, ind, inss) = let // fun auxenvlst ( out: FILEref, i: int, xs: f0arglst ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => ( case+ x.f0arg_node of // case+ | F0ARGnone _ => () | F0ARGsome(arg, s0e) => if tmpvar_is_env(arg.i0dex_sym) then ( (if i > 0 then emit_SPACE(out)); emit_tmpvar(out, arg); auxenvlst(out, i+1, xs) ) (* end of [then] *) // end of [F0ARGsome] ) (* end of [list_cons] *) ) // fun auxarglst ( out: FILEref, i: int, xs: instrlst ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => ( case+ x.instr_node of | ATSINSmove_tlcal (_, d0e) => let val () = if i > 0 then emit_text(out, " ") // end of [if] val () = emit_d0exp(out, d0e) in auxarglst(out, i+1, xs) end // end of [ATSINSmove_tlcal] | _(*non-ATSINSmove_tlcal*) => () ) ) // val () = emit2_instrlst(out, ind, inss) // val knd = the_funbodyknd_get() val-Some(fhd) = the_f0headopt_get() // in // case+ fhd.f0head_node of // case+ | F0HEAD (fid, f0ma, res) => { // val () = emit_ENDL(out) val () = emit_nspc(out, ind) // (* val () = emit_text (out, ";; ") *) // val () = emit_LPAREN(out) // val () = emit_i0de(out, fid) val () = if knd >= 2 then let val fi = the_funlabind_get() in emit_text(out, "__ "); emit_int(out, fi) end // end of [then] // end of [val] // val xs = f0ma.f0marg_node val () = auxenvlst(out, 1(*i*), xs) // val () = auxarglst(out, 1(*i*), inss) // val () = emit_RPAREN(out) // } (* end of [F0HEAD] *) // end // end of [emit2_tailcalseqlst] (* ****** ****** *) implement emit2_ATSfunbodyseq (out, ind, ins) = let // val-ATSfunbodyseq(inss) = ins.instr_node // in emit2_instrlst_end (out, ind, inss, "\n") end // end of [emit2_ATS2funbodyseq] (* ****** ****** *) // (* datatype tyfld_node = TYFLD of (i0de, s0exp) typedef tyfld = '{ tyfld_loc= loc_t , tyfld_node= tyfld_node } (* end of [tyfld] *) // typedef tyfldlst = List0 (tyfld) // typedef tyrec = '{ tyrec_loc= loc_t, tyrec_node= tyfldlst } (* end of [tyrec] *) *) // extern fun emit_tyrec (FILEref, tyrec): void // implement emit_tyrec (out, s0rec) = let // fun auxlst ( i: int, tfs: tyfldlst ) : void = ( case+ tfs of // | list_nil() => () // | list_cons (tf, tfs) => let val+TYFLD(id, _) = tf.tyfld_node val () = if i > 0 then emit_text(out, ", ") // end of [val] val ((*void*)) = emit_i0de(out, id) in auxlst (i+1, tfs) end // end of [list_cons] ) // val () = emit_LBRACE(out) val () = auxlst(0, s0rec.tyrec_node) val () = emit_RBRACE(out) // in // nothing end // end of [emit_tyrec] // extern fun emit_typedef (FILEref, i0de, tyrec): void // implement emit_typedef (out, id, s0rec) = let // val () = emit_text(out, "-record") // val () = emit_LPAREN(out) val () = emit_i0de(out, id) val () = emit_text(out, ", ") val () = emit_tyrec(out, s0rec) val () = emit_RPAREN(out) val () = emit_text(out, ".\n") // in end // end of [emit_typedef] // extern fun emit_tyrec_d0explst_1 (FILEref, d0explst): void extern fun emit_tysum_d0explst_1 (FILEref, tag: tokenopt, d0explst): void // implement emit_tyrec_d0explst_1 (out, d0es) = ( emit_d0explst_1 (out, d0es) ) // end of [emit_tyrec_d0explst] implement emit_tysum_d0explst_1 (out, opt, d0es) = ( // case+ opt of | None() => emit_d0explst_1 (out, d0es) | Some(tag) => let val () = emit_SPACE(out) val () = emit_PMVint(out, tag) in emit_d0explst_1 (out, d0es) end // end of [Some] // ) // end of [emit_tysum_d0explst] // (* ****** ****** *) implement emit2_ATSINSmove_con1 (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_con1_ofs (_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_con1(inss) = ins0.instr_node // val-list_cons(ins, inss) = inss val-ATSINSmove_con1_new(tmp, _) = ins.instr_node // var opt: tokenopt = None() // val inss = ( case+ inss of | list_nil () => inss | list_cons (ins, inss2) => ( case+ ins.instr_node of // case+ | ATSINSstore_con1_tag (tmp, tag) => let val () = opt := Some(tag) in inss2 end // end of [ATSINSstore_con1_tag] | _ (*non-ATSINSstore_con1_tag*) => inss ) ) : instrlst // val d0es = getarglst (inss) // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret(tmp.i0dex_sym) // end of [val] // val isnot = not(isret) // val () = if isnot then { val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // (* val () = emit_SHARP (out) val () = emit_symbol (out, name) *) val () = emit_LPAREN(out) // val () = emit_text(out, "ATSPMVtysum") val () = emit_tysum_d0explst_1 (out, opt, d0es) // val () = emit_RPAREN(out) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_con1] (* ****** ****** *) implement emit2_ATSINSmove_boxrec (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_boxrec_ofs(_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_boxrec(inss) = ins0.instr_node // val-list_cons(ins, inss) = inss val-ATSINSmove_boxrec_new(tmp, _) = ins.instr_node // val d0es = getarglst (inss) // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // (* val () = emit_SHARP (out) val () = emit_symbol (out, name) *) val () = emit_LPAREN(out) // val () = emit_text(out, "ATSPMVtyrec") val () = emit_tyrec_d0explst_1 (out, d0es) // val () = emit_RPAREN(out) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_boxrec] (* ****** ****** *) implement emit2_ATSINSmove_delay (out, ind, ins0) = let // val- ATSINSmove_delay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { // val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_fname_d0exp (out, "ATSPMVlazyval", thunk) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_delay] (* ****** ****** *) implement emit2_ATSINSmove_lazyeval (out, ind, ins0) = let // val- ATSINSmove_lazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { // val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_fname_d0exp (out, "ATSPMVlazyval_eval", lazyval) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_lazyeval] (* ****** ****** *) implement emit2_ATSINSmove_ldelay (out, ind, ins0) = let // val- ATSINSmove_ldelay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { // val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_fname_d0exp (out, "ATSPMVllazyval", thunk) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_ldelay] (* ****** ****** *) implement emit2_ATSINSmove_llazyeval (out, ind, ins0) = let // val- ATSINSmove_llazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc (out, ind) // val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // val isnot = not(isret) // val () = if isnot then { // val () = emit_LPAREN(out) val () = emit_tmpvar_set(out, tmp) // } (* end of [val] *) // val () = if isnot then emit_SPACE(out) // val () = emit_fname_d0exp (out, "ATSPMVllazyval_eval", lazyval) // val () = if isnot then emit_RPAREN(out) // in // nothing end // end of [emit2_ATSINSmove_llazyeval] (* ****** ****** *) // #define ATSEXTCODE_BEG ";;\n;; ATSextcode_beg()\n;;" #define ATSEXTCODE_END ";;\n;; ATSextcode_end()\n;;" // (* ****** ****** *) implement emit_d0ecl (out, d0c) = let in // case+ d0c.d0ecl_node of // case+ // | D0Cinclude _ => () // | D0Cifdef _ => () | D0Cifndef _ => () // | D0Ctypedef (id, def) => let (* val () = emit_typedef(out, id, def) // end of [val] *) in (* typedef_insert (id.i0dex_sym, def) *) end // end of [D0Ctypedef] // | D0Cassume (id) => { val () = emit_ENDL(out) val () = emit_text(out, ";; ATSassume(") val () = ( emit_i0de(out, id); emit_text(out, ")\n") ) (* end of [val] *) } // | D0Cdyncst_mac _ => () // | D0Cdyncst_extfun _ => () // | D0Cdyncst_valdec _ => () // | D0Cdyncst_valimp (id, s0e) => { val () = emit_ENDL(out) val () = ( emit_text(out, "(define "); emit_i0de(out, id); emit_text(out, " #f)") ) (* end of [val] *) val () = emit_ENDL(out) } // | D0Cextcode(toks) => { val () = emit_ENDL (out) val () = emit_text (out, ATSEXTCODE_BEG) // end of [val] val () = emit_extcode (out, toks) // HX: verbatim output val () = emit_text (out, ATSEXTCODE_END) // end of [val] val ((*void*)) = emit_newline (out) } (* end of [D0Cextcode] *) // | D0Cstatmp(tmp, opt) => { val () = emit_ENDL(out) val () = ( case+ opt of | Some _ => () | None _ => emit_text(out, "/*\n") ) (* end of [val] *) val () = ( emit_text(out, "(define "); emit_tmpvar(out, tmp); emit_text(out, " #f)\n") ) (* end of [val] *) val () = ( case+ opt of | Some _ => () | None _ => emit_text(out, "*/\n") ) (* end of [val] *) } (* end of [D0Cstatmp] *) // | D0Cfundecl(fk, f0d) => emit_f0decl(out, f0d) // | D0Cclosurerize (fl, env, arg, res) => { val () = emit_closurerize(out, fl, env, arg, res) } // | D0Cdynloadflag_init (flag) => ( // // HX-2015-05-22: // it is skipped as Scheme does not have a link-time! // ) (* end of [D0Cdynloadflag_init] *) // | D0Cdynloadflag_minit (flag) => ( emit_text(out, ";; dynloadflag_minit\n"); emit_text(out, "(define "); emit_tmpvar(out, flag); emit_text(out, " 0)\n") ) (* end of [D0Cdynloadflag_minit] *) // | D0Cdynexn_dec(idexn) => ( emit_text(out, ";; dynexn_dec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_dec] *) | D0Cdynexn_extdec(idexn) => ( emit_text(out, ";; dynexn_extdec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_extdec] *) | D0Cdynexn_initize(idexn, fullname) => ( emit_text(out, ";; dynexn_initize("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_initize] *) // end // end of [emit_d0ecl] (* ****** ****** *) // extern fun emit_f0arg : emit_type (f0arg) extern fun emit_f0marg : emit_type (f0marg) extern fun emit_f0head : emit_type (f0head) // extern fun emit_f0headbd : emit_type (f0head) extern fun emit_f0headhd : emit_type (f0head) // extern fun emit_f0body : emit_type (f0body) extern fun emit_f0body_0 : emit_type (f0body) extern fun emit_f0body_tlcal : emit_type (f0body) extern fun emit_f0body_tlcal2 : emit_type (f0body) // (* ****** ****** *) implement emit_f0arg (out, f0a) = let in // case+ f0a.f0arg_node of // case+ // | F0ARGnone _ => emit_text (out, "__NONE__") | F0ARGsome(arg, s0e) => emit_tmpvar(out, arg) // end // end of [emit_f0arg] (* ****** ****** *) implement emit_f0marg (out, f0ma) = let // fun loop ( out: FILEref , f0as: f0arglst, i: int ) : void = ( case+ f0as of | list_nil() => () | list_cons(f0a, f0as) => let val () = if i > 0 then emit_SPACE(out) // end of [val] in emit_f0arg(out, f0a); loop(out, f0as, i+1) end // end of [list_cons] ) // in loop(out, f0ma.f0marg_node, 1) end // end of [emit_f0marg] (* ****** ****** *) implement emit_f0head (out, fhd) = let in // case+ fhd.f0head_node of // case+ | F0HEAD (fid, f0ma, res) => { // val () = emit_LPAREN (out) // val () = emit_i0de (out, fid) val () = emit_f0marg (out, f0ma) // val () = emit_RPAREN (out) // } // end // end of [emit_f0head] (* ****** ****** *) implement emit_f0headbd (out, fhd) = let in // case+ fhd.f0head_node of // case+ | F0HEAD (fid, f0ma, res) => { // val () = emit_LPAREN(out) // val () = ( emit_i0de(out, fid); emit_text(out, "__"); ) (* end of [val] *) // val () = ( emit_text(out, " 1"); emit_f0marg(out, f0ma) ) (* end of [val] *) // val () = emit_text (out, ")\n") // } (* F0HEAD *) // end // end of [emit_f0headbd] implement emit_f0headhd (out, fhd) = let in // case+ fhd.f0head_node of // case+ | F0HEAD (fid, f0ma, res) => { // val () = emit_LPAREN(out) // val () = ( emit_i0de(out, fid); emit_text(out, "__"); ) (* end of [val] *) // val () = ( emit_text(out, " funlab"); emit_f0marg(out, f0ma) ) (* end of [val] *) // val () = emit_RPAREN (out) // } (* F0HEAD *) // end // end of [emit_f0headhd] (* ****** ****** *) implement emit_f0body (out, fbody) = let // val k0 = f0body_classify(fbody) // val () = the_funbodyknd_set(k0) (* // val () = println! ("emit_f0body: knd = ", k0) // *) // val () = the_casefnxx_reset((*void*)) // val tmpdecs = f0body_get_tmpdeclst(fbody) val inss_body = f0body_get_bdinstrlst(fbody) // val () = the_tmpdeclst_set(tmpdecs) val () = the_funbodylst_set(inss_body) // val () = emit_text (out, "\n(let(\n") // val () = emit_text(out, ";;knd = ") val () = (emit_int(out, k0); emit_ENDL(out)) // val () = emit_tmpdeclst_initize (out, tmpdecs) // val () = if k0 > 0 then { // val () = emit_text(out, ";;var funlab_scm\n") // } (* end of [if] *) // end of [val] // val () = emit_text(out, ";;var tmplab,tmplab_scm\n") // val () = emit_text (out, ") ;; in-of-let\n") // val () = ( // case+ k0 of | 0 => emit_f0body_0 (out, fbody) | 1 => emit_f0body_tlcal (out, fbody) | 2 => emit_f0body_tlcal2 (out, fbody) | _ => let val () = assertloc(false) in (*nothing*) end // ) : void // end of [val] // val () = emit_text (out, ") ;; end-of-let\n") // in // nothing end (* end of [emit_f0body] *) (* ****** ****** *) implement emit_f0body_0 (out, fbody) = let // fun auxlst ( out: FILEref, i: int, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => let val-list_cons(ins1, inss2) = inss1 // val () = if i > 0 then emit_ENDL(out) // val () = emit2_ATSfunbodyseq(out, 2(*ind*), ins0) // end of [val] (* val ((*ret*)) = emit2_instr_ln (out, 2(*ind*), ins1) *) // in auxlst (out, i+1, inss2) end // end of [list_cons] // ) (* end of [auxlst] *) // in // case+ fbody.f0body_node of // case+ // | F0BODY (tds, inss) => { val () = auxlst (out, 0(*i*), inss) } // end // end of [emit_f0body_0] (* ****** ****** *) implement emit_f0body_tlcal (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => let val-list_cons (ins1, inss2) = inss1 // val () = emit2_ATSfunbodyseq(out, 4(*ind*), ins0) // val () = emit_nspc(out, 4(*ind*)) val () = emit_text ( out, ";; if (funlab_scm > 0) continue; else" ) (* end of [val] *) val () = emit2_instr_ln (out, 1(*ind*), ins1) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, ";} // endwhile-fun\n") // in auxlst (out, inss2(*nil*)) end // end of [list_cons] // ) (* end of [auxlst] *) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, ";while(true) {\n") val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, ";; funlab_scm = 0;\n") // val () = ( case+ fbody.f0body_node of // case+ // | F0BODY(tds, inss) => auxlst(out, inss) // ) (* end of [val] *) // in // nothing end // end of [emit_f0body_tlcal] (* ****** ****** *) // extern fun emit_the_funbodylst (out: FILEref): void // implement emit_the_funbodylst (out) = let // fun auxfun ( out: FILEref , ins0: instr, ins1: instr, i: int ) : void = let // val-ATSfunbodyseq(inss) = ins0.instr_node // val-list_cons (ins_fl, inss) = inss val-ATSINSflab (fl) = ins_fl.instr_node // val () = emit_nspc (out, 6) val () = ( emit_text (out, ";case "); emit_int (out, i); emit_text (out, ": {\n") ) val () = emit_nspc (out, 6) val () = ( emit_LPAREN(out); emit_text(out, "("); emit_int (out, i); emit_text(out, ")\n") ) // val () = emit_nspc (out, 8) val () = emit_text (out, ";; funlab_scm = 0;\n") val () = emit2_instrlst_end (out, 8(*ind*), inss, ";\n") // val () = emit_nspc (out, 8) val () = emit_text ( out, ";; if (funlab_scm > 0) continue; else" ) (* end of [val] *) val () = emit2_instr_ln (out, 1(*ind*), ins1) // val () = emit_nspc (out, 6) val () = emit_text (out, ") ;} // end-of-case\n") // in // nothing end // end of [auxfun] // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( case+ inss of | list_nil () => () | list_cons _ => let val-list_cons (ins0, inss) = inss val-list_cons (ins1, inss) = inss val () = auxfun (out, ins0, ins1, i) in auxlst (out, inss, i+1) end // end of [auxlst] ) (* end of [auxlst] *) // in auxlst (out, the_funbodylst_get(), 1(*first*)) end // end of [emit_the_funbodylst] // (* ****** ****** *) implement emit_f0body_tlcal2 (out, fbody) = let // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, ";; funlab_scm = 1;") // val () = emit_ENDL (out) val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, ";while(true) {") // val () = emit_ENDL (out) val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, ";switch(funlab_scm) {\n") val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "(case funlab\n") // val () = emit_the_funbodylst (out) // val () = emit_nspc (out, 4(*ind*)) val ((*closing*)) = emit_text (out, ") ;} // end-of-switch\n") // val () = emit_nspc (out, 2(*ind*)) val ((*closing*)) = emit_text (out, ";} // endwhile-fun\n") // in // nothing end // end of [emit_f0body_tlcal2] (* ****** ****** *) implement emit_f0decl (out, fdec) = let // (* val () = println!("emit_f0decl") *) // in // case+ fdec.f0decl_node of // case+ | F0DECLnone(fhd) => { val () = the_f0headopt_set(fhd) // end of [val] } | F0DECLsome(fhd, fbody) => { // val () = the_f0headopt_set(fhd) // end of [val] // val () = emit_text (out, "\n;;fun\n") val () = emit_text (out, "(define\n") // val () = emit_f0head(out, fhd) // val k0 = f0body_classify(fbody) // val () = if k0 >= 2 then { val () = emit_ENDL (out) val () = emit_f0headbd (out, fhd) val () = emit_text (out, ") ;; end-of-fun\n") val () = emit_text (out, "(define\n") // end of [val] val () = emit_f0headhd (out, fhd) } // val () = emit_f0body (out, fbody) // val () = emit_text (out, ") ;; end-of-fun\n") // val ((*endfun*)) = emit_newline (out) // } (* end of [F0DECLsome] *) // end // end of [emit_f0decl] (* ****** ****** *) implement emit_toplevel (out, d0cs) = let // fun aux1 ( d0c: d0ecl ) : void = ( // case+ d0c.d0ecl_node of // case+ // | D0Ctypedef (id, def) => ( typedef_insert (id.i0dex_sym, def) ) // | D0Cfundecl (fk, f0d) => ( case+ f0d.f0decl_node of // case+ | F0DECLnone (fhd) => f0head_insert(fhd) | F0DECLsome (fhd, _) => f0head_insert(fhd) ) // | _(* rest-of-D0C *) => () // ) (* end of [aux1] *) // fun auxlst1 ( d0cs: d0eclist ) : void = ( // case+ d0cs of | list_nil () => () | list_cons (d0c, d0cs) => ( aux1 (d0c); auxlst1 (d0cs) ) // end of [list_cons] // ) // fun auxlst2 ( out: FILEref, d0cs: d0eclist ) : void = ( // case+ d0cs of | list_nil () => () | list_cons (d0c, d0cs) => let val () = emit_d0ecl (out, d0c) // end of [val] in auxlst2 (out, d0cs) end // end of [list_cons] // ) // val () = auxlst1 (d0cs) val () = auxlst2 (out, d0cs) // in // nothing end // end of [emit_toplevel] (* ****** ****** *) (* end of [atscc2scm_emit2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/DATS/atscc2scm_main.dats0000644000175000017500000002607613431250607025245 0ustar brandonbrandon(* ****** ****** *) // // Atscc2scm: // from ATS to Scheme // (* ****** ****** *) // // HX-2016-05-19: start // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #define ATS_DYNLOADNAME"libatscc2scm_dynload" // (* ****** ****** *) // staload STDIO = "{$PATSLIBATSLIBC}/SATS/stdio.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_parsing.sats" // (* ****** ****** *) // val () = catsparse_all_dynload() where { extern fun catsparse_all_dynload(): void = "ext#" } (* end of [val] *) // (* ****** ****** *) #dynload "./atscc2scm_emit.dats" #dynload "./atscc2scm_emit2.dats" (* ****** ****** *) // datatype comarg = COMARGkey of (int, string) // typedef comarglst = List0 (comarg) // (* ****** ****** *) datatype waitkind = | WTKnone of () | WTKinput of () | WTKoutput of () // -o / --output // end of [waitkind] (* ****** ****** *) datatype OUTCHAN = | OUTCHANref of (FILEref) | OUTCHANptr of (FILEref) // end of [OUTCHAN] fun outchan_get_fileref (x: OUTCHAN): FILEref = ( // case+ x of | OUTCHANref (filr) => filr | OUTCHANptr (filp) => filp // ) (* end of [outchan_get_fileref] *) (* ****** ****** *) typedef cmdstate = @{ comarg0= comarg , ncomarg= int // number of arguments , waitkind= waitkind // number of processed input files; , ninputfile= int // waiting for STDIN if it is 0 , outchan= OUTCHAN // current output channel , nerror= int // number of accumulated errors } (* end of [cmdstate] *) (* ****** ****** *) fun cmdstate_set_outchan ( state: &cmdstate >> _, chan_new: OUTCHAN ) : void = let // val chan_old = state.outchan val ((*void*)) = state.outchan := chan_new // in // case+ chan_old of | OUTCHANref (filr) => () | OUTCHANptr (filp) => let val err = $STDIO.fclose0 (filp) in (*nothing*) end // end of [OUTCHANptr] // end // end of [cmdstate_set_outchan] (* ****** ****** *) // extern fun atscc2scm_fileref (state: &cmdstate >> _, filr: FILEref): void // implement atscc2scm_fileref (state, inp) = let // val oc = state.outchan val out = outchan_get_fileref (oc) // val d0cs = parse_from_fileref (inp) // val () = emit_time_stamp (out) // val ((*void*)) = emit_toplevel (out, d0cs) // val () = emit_text (out, ";;;;;;\n") val () = emit_text (out, ";;\n") val () = emit_text (out, ";; end-of-compilation-unit") val () = emit_text (out, "\n;;") val () = emit_text (out, "\n;;;;;;") // val ((*flusing*)) = emit_newline (out) // in // nothing end // end of [atscc2scm_fileref] (* ****** ****** *) // macdef fopen = $STDIO.fopen // extern fun atscc2scm_basename ( state: &cmdstate >> _, fname: string ) : void // end-of-fun // implement atscc2scm_basename (state, fname) = let // val inp = fopen (fname, file_mode_r) // val p_inp = $STDIO.ptrcast(inp) // in // if p_inp > 0 then let // val inp = $UNSAFE.castvwtp0{FILEref}(inp) val ((*void*)) = the_filename_push(filename_make(fname)) // in atscc2scm_fileref (state, inp) end // end of [then] else let // prval ( // freed ) = $STDIO.FILEptr_free_null (inp) val ((*void*)) = state.nerror := state.nerror + 1 // in // nothing end // end of [else] // end // end of [atscc2scm_basename] (* ****** ****** *) fun cmdstate_set_outchan_basename ( state: &cmdstate >> _, basename: string ) : void = let // val filp = $STDIO.fopen (basename, file_mode_w) val p0 = $STDIO.ptrcast(filp) // (* val () = println! ("cmdstate_set_outchan_basename: p0 = ", p0) *) // in // if p0 > 0 then let val filp = $UNSAFE.castvwtp0{FILEref}(filp) in cmdstate_set_outchan (state, OUTCHANptr (filp)) end // end of [then] else let prval ( // freed ) = $STDIO.FILEptr_free_null (filp) val ((*void*)) = state.nerror := state.nerror + 1 in cmdstate_set_outchan (state, OUTCHANref (stderr_ref)) end // end of [else] // end // end of [cmdstate_set_outchan_basename] (* ****** ****** *) // fn isinwait (state: cmdstate): bool = ( case+ state.waitkind of WTKinput () => true | _ => false ) (* end of [isinwait] *) // fn isoutwait (state: cmdstate): bool = ( case+ state.waitkind of WTKoutput () => true | _ => false ) (* end of [isoutwait] *) // (* ****** ****** *) // extern fun comarg_warning (string): void // implement comarg_warning (str) = { val () = prerr ("waring(ATS)") val () = prerr (": unrecognized command line argument [") val () = prerr (str) val () = prerr ("] is ignored.") val () = prerr_newline () } (* end of [comarg_warning] *) // (* ****** ****** *) fun atscc2scm_usage (cmd: string): void = { // val () = println! ( "Usage: ", cmd, " ... \n" ) val () = println! ( "where each is of one of the following forms:\n" ) // val () = println! (" -i : for processing ") val () = println! (" --input : for processing ") // val () = println! (" -o : output into ") val () = println! (" --output : output into ") // val () = println! (" -h : for printing out this help usage") val () = println! (" --help : for printing out this help usage") // } (* end of [atscc2scm_usage] *) (* ****** ****** *) fun process_cmdline ( state: &cmdstate, arglst: comarglst ) : void = let in // case+ arglst of // | list_nil () => let val nif = state.ninputfile val wait0 = ( case+ 0 of | _ when nif < 0 => true | _ when nif = 0 => isinwait (state) | _ (* nif > 0 *) => false ) : bool // end of [val] in if wait0 then ( if state.ncomarg = 0 then atscc2scm_usage ("atscc2scm") else atscc2scm_fileref (state, stdin_ref) ) (* end of [if] *) end // end of [list_nil] // | list_cons (arg, arglst) => let val () = state.ncomarg := state.ncomarg + 1 // end of [val] in process_cmdline2 (state, arg, arglst) end // end of [list_cons] // end // end of [process_cmdline] and process_cmdline2 ( state: &cmdstate, arg: comarg, arglst: comarglst ) : void = let in // case+ arg of // | _ when isinwait(state) => let val nif = state.ninputfile in case+ arg of | COMARGkey (1, key) when nif > 0 => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) when nif > 0 => process_cmdline2_COMARGkey2 (state, arglst, key) | COMARGkey (_, fname) => let val () = state.ninputfile := nif + 1 val () = atscc2scm_basename (state, fname(*input*)) in process_cmdline (state, arglst) end // end of [COMARGkey] end // end of [_ when isinpwait] // | _ when isoutwait(state) => let // val COMARGkey (_, fname) = arg // val () = cmdstate_set_outchan_basename (state, fname) // val () = state.waitkind := WTKnone () // in process_cmdline (state, arglst) end // end of [_ when isoutwait] // | COMARGkey (1, key) => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) => process_cmdline2_COMARGkey2 (state, arglst, key) // | COMARGkey (_, key) => let val () = comarg_warning (key) val () = state.waitkind := WTKnone () in process_cmdline (state, arglst) end // end of [COMARGkey] // end // end of [process_cmdline2] and process_cmdline2_COMARGkey1 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = ( // case+ key of // | "-i" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [-i] *) // | "-o" => { val () = state.waitkind := WTKoutput () } (* end of [-o] *) // | "-h" => { val () = atscc2scm_usage ("atscc2scm") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [-h] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey1] and process_cmdline2_COMARGkey2 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = state.waitkind := WTKnone () // val () = ( // case+ key of // | "--input" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [--input] *) // | "--output" => { val () = state.waitkind := WTKoutput () } (* end of [--output] *) // | "--help" => { val () = atscc2scm_usage ("atscc2scm") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [--help] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey2] (* ****** ****** *) // extern fun comarg_parse (string):<> comarg // extern fun comarglst_parse{n:nat} (argc: int n, argv: !argv(n)): list (comarg, n) // end of [comarglst_parse] // (* ****** ****** *) implement comarg_parse (str) = let // fun loop {n,i:nat | i <= n} .. ( str: string n, n: int n, i: int i ) :<> comarg = ( if i < n then ( if (str[i] != '-') then COMARGkey (i, str) else loop (str, n, i+1) ) else COMARGkey (n, str) ) (* end of [if] *) // end of [loop] // val str = g1ofg0(str) val len = string_length (str) // in loop (str, sz2i(len), 0) end // end of [comarg_parse] (* ****** ****** *) implement comarglst_parse {n}(argc, argv) = let // fun loop {i,j:nat | i <= n} .. ( argv: !argv(n), i: int(i), res: list_vt(comarg, j) ) : list_vt (comarg, n-i+j) = ( // if i < argc then let val res = list_vt_cons (comarg_parse (argv[i]), res) in loop (argv, i+1, res) end // end of [then] else res // end of [else] // end of [if] ) (* end of [loop] *) // val res = loop (argv, 0, list_vt_nil()) // in list_vt2t (list_vt_reverse (res)) end // end of [comarglst_parse] (* ****** ****** *) // extern fun atscc2scm_main0 {n:pos} ( argc: int(n), argv: !argv(n) ) : void = "ext#libatscc2scm_atscc2scm_main0" // implement atscc2scm_main0 (argc, argv) = () where { // val () = prerrln! ( "Hello from atscc2scm!" ) (* end of [val] *) // // val arglst = comarglst_parse (argc, argv) // val+list_cons (arg0, arglst) = arglst // var state = @{ comarg0= arg0 , ncomarg= 0 // counting from 0 , waitkind= WTKnone () // number of prcessed , ninputfile= ~1 // input files , outchan= OUTCHANref (stdout_ref) , nerror= 0 // number of accumulated errors } : cmdstate // end of [var] // val () = process_cmdline (state, arglst) // val () = if state.nerror = 1 then let val () = prerrln! ("atscc2scm: there is a reported error.") in // nothing end // end of [then] else if state.nerror >= 2 then let val () = prerrln! ("atscc2scm: there are some reported errors.") in // nothing end // end of [then] else () // end of [else] // (* val () = prerrln! ("Good-bye from atscc2scm!") *) // } (* end of [atscc2scm_main0] *) (* ****** ****** *) #ifndef ATSCC2SCM_MAIN_NONE // implement main0 (argc, argv) = { // val () = atscc2scm_main0(argc, argv) // } (* end of [main0] *) // #endif // ifndef(ATSCC2SCM_MAIN_NONE) (* ****** ****** *) (* end of [atscc2scm_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/DATS/.keeper0000644000175000017500000000000013431250607022731 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/DATS/atscc2scm_emit.dats0000644000175000017500000003721413431250607025253 0ustar brandonbrandon(* ****** ****** *) // // Atscc2scm: // from ATS to Scheme // (* ****** ****** *) // // HX-2016-05-19: start // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_fundecl.sats" // (* ****** ****** *) local // staload TM = "libats/libc/SATS/time.sats" // typedef time_t = $TM.time_t // in (* in-of-local *) implement emit_time_stamp(out) = let // var tm: time_t val () = tm := $TM.time_get() val (pfopt | p_tm) = $TM.localtime(tm) // val () = emit_text (out, ";;;;;;\n") val () = emit_text (out, ";;\n") val () = emit_text (out, ";; The Scheme code is generated by atscc2scm\n") val () = emit_text (out, ";; The starting compilation time is: ") // val () = if p_tm > 0 then let prval Some_v @(pf1, fpf1) = pfopt val tm_min = $TM.tm_get_min (!p_tm) val tm_hour = $TM.tm_get_hour (!p_tm) val tm_mday = $TM.tm_get_mday (!p_tm) val tm_mon = 1 + $TM.tm_get_mon (!p_tm) val tm_year = 1900 + $TM.tm_get_year (!p_tm) prval () = fpf1 (pf1) in $extfcall ( void , "fprintf" , out, "%i-%i-%i: %2ih:%2im\n", tm_year, tm_mon, tm_mday, tm_hour, tm_min ) end // end of [then] else let prval None_v () = pfopt in emit_text (out, "**TIME-ERROR**\n") end // end of [else] // val () = emit_text (out, ";;\n") val () = emit_text (out, ";;;;;;\n") // in // emit_newline (out) end // end of [emit_time_stamp] end // end of [local] (* ****** ****** *) implement emit_PMVint (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVint] // implement emit_PMVintrep (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVintrep] // (* ****** ****** *) implement emit_PMVbool (out, tfv) = ( // emit_text ( out , if tfv then "atscc2scm_true" else "atscc2scm_false" // end of [if] ) (* end of [emit_text] *) // ) (* end of [emit_PMVbool] *) (* ****** ****** *) implement emit_PMVstring (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVstring] (* ****** ****** *) implement emit_PMVfloat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVfloat] (* ****** ****** *) implement emit_PMVi0nt (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVi0nt] (* ****** ****** *) implement emit_PMVf0loat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVf0loat] (* ****** ****** *) // implement emit_PMVempty (out, _) = emit_text (out, "null") // implement emit_PMVextval (out, toks) = emit_tokenlst (out, toks) // (* ****** ****** *) // extern fun f0ide_get_arity (fid: i0de): int // implement f0ide_get_arity (fid) = let // val opt = f0head_search_opt(fid.i0dex_sym) // in // case+ opt of | ~None_vt() => ~1 | ~Some_vt(fhd) => ( case+ fhd.f0head_node of // case+ | F0HEAD(fid, fma, _) => list_length (fma.f0marg_node) // end of [F0HEAD] ) (* end of [Some_vt] *) // end // end of [f0ide_get_arity] // (* ****** ****** *) // implement emit_PMVfunlab (out, flab) = { // (* val n0 = f0ide_get_arity(flab) *) // val () = emit_label (out, flab) // } (* end of [emit_PMVfunlab] *) // (* ****** ****** *) implement emit_PMVcfunlab (out, flab, d0es_env) = { // val () = emit_LPAREN(out) // val () = ( emit_label(out, flab); emit_text(out, "__closurerize") ) // val () = emit_d0explst_1 (out, d0es_env) // val () = emit_RPAREN(out) // } (* end of [emit_PMVcfunlab] *) (* ****** ****** *) implement emit_CSTSPmyloc (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_CSTSPmyloc] (* ****** ****** *) // extern fun emit_fname_d0exp : (FILEref, string, d0exp) -> void extern fun emit_fname_d0exp2 : (FILEref, string, d0exp, d0exp) -> void extern fun emit_fname_d0exp_int : (FILEref, string, d0exp, int(*ctag*)) -> void // implement emit_fname_d0exp (out, fname, d0e) = { // val () = emit_LPAREN (out) // val () = ( emit_text (out, fname); emit_SPACE (out); emit_d0exp (out, d0e) ) (* end of [val] *) // val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp] *) // implement emit_fname_d0exp2 (out, fname, d0e1, d0e2) = { // val () = emit_LPAREN (out) val () = ( emit_text (out, fname); emit_SPACE (out); emit_d0exp (out, d0e1); emit_SPACE (out); emit_d0exp (out, d0e2) ) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp2] *) // implement emit_fname_d0exp_int (out, fname, d0e, ctag) = { // val () = emit_LPAREN (out) val () = ( emit_text (out, fname); emit_SPACE (out); emit_d0exp (out, d0e); emit_SPACE (out); emit_int (out, ctag) ) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp_int] *) // (* ****** ****** *) // implement emit_ATSCKiseqz(out, d0e) = emit_fname_d0exp(out, "ATSCKiseqz", d0e) implement emit_ATSCKisneqz(out, d0e) = emit_fname_d0exp(out, "ATSCKisneqz", d0e) // (* ****** ****** *) // implement emit_ATSCKptriscons(out, d0e) = emit_fname_d0exp(out, "ATSCKptriscons", d0e) implement emit_ATSCKptrisnull(out, d0e) = emit_fname_d0exp(out, "ATSCKptrisnull", d0e) // (* ****** ****** *) // implement emit_ATSCKpat_int (out, d0e, i0) = emit_fname_d0exp2 (out, "ATSCKpat_int", d0e, i0) implement emit_ATSCKpat_bool (out, d0e, b0) = emit_fname_d0exp2 (out, "ATSCKpat_bool", d0e, b0) implement emit_ATSCKpat_string (out, d0e, s0) = emit_fname_d0exp2 (out, "ATSCKpat_string", d0e, s0) // (* ****** ****** *) // implement emit_ATSCKpat_con0 (out, d0e, ctag) = emit_fname_d0exp_int (out, "ATSCKpat_con0", d0e, ctag) implement emit_ATSCKpat_con1 (out, d0e, ctag) = emit_fname_d0exp_int (out, "ATSCKpat_con1", d0e, ctag) // (* ****** ****** *) // implement emit_tmpvar (out, tmp) = let // val sym = tmp.i0dex_sym val name = g1ofg0(symbol_get_name(sym)) // in // if isneqz(name) then ( emit_text(out, name) ) (* end of [then] *) else () // end of [else] // end // end of [emit_tmpvar] // (* ****** ****** *) fun s0exp_get_arity (s0e: s0exp): int = ( case+ s0e.s0exp_node of // case+ | S0Elist(s0es) => list_length(s0es) | _ => ~1 ) (* end of [s0exp_get_arity] *) (* ****** ****** *) implement emit_d0exp (out, d0e0) = let in // case+ d0e0.d0exp_node of // | D0Eide (tmp) => { val () = emit_tmpvar (out, tmp) } // | D0Eappid (fid, d0es) => { val () = emit_LPAREN (out) // val () = emit_i0de (out, fid) val () = emit_d0explst_1 (out, d0es) // val () = emit_RPAREN (out) } | D0Eappexp (d0e, d0es) => { val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_d0explst_1 (out, d0es) val () = emit_RPAREN (out) } // | D0Elist (d0es) => { val () = emit_LPAREN (out) val () = emit_text (out, "D0Elist") val () = emit_d0explst_1 (out, d0es) val () = emit_RPAREN (out) } // | ATSPMVint (int) => emit_PMVint (out, int) | ATSPMVintrep (int) => emit_PMVintrep (out, int) // | ATSPMVbool (tfv) => emit_PMVbool (out, tfv) // | ATSPMVfloat (flt) => emit_PMVfloat (out, flt) // | ATSPMVstring (str) => emit_PMVstring (out, str) // | ATSPMVi0nt (int) => emit_PMVi0nt (out, int) | ATSPMVf0loat (flt) => emit_PMVf0loat (out, flt) // | ATSPMVempty (dummy) => emit_PMVempty (out, 0) | ATSPMVextval (toklst) => emit_PMVextval (out, toklst) // | ATSPMVrefarg0 (d0e) => emit_d0exp (out, d0e) | ATSPMVrefarg1 (d0e) => emit_d0exp (out, d0e) // | ATSPMVfunlab (fl) => emit_PMVfunlab (out, fl) | ATSPMVcfunlab (_(*knd*), fl, d0es) => emit_PMVcfunlab (out, fl, d0es) // end of [ATSPMVcfunlab] // | ATSPMVcastfn (_(*fid*), _(*s0e*), arg) => emit_d0exp (out, arg) // | ATSCSTSPmyloc (tok) => emit_CSTSPmyloc (out, tok) // // | ATSCKiseqz(d0e) => emit_ATSCKiseqz (out, d0e) | ATSCKisneqz(d0e) => emit_ATSCKisneqz (out, d0e) | ATSCKptriscons(d0e) => emit_ATSCKptriscons (out, d0e) | ATSCKptrisnull(d0e) => emit_ATSCKptrisnull (out, d0e) // | ATSCKpat_int (d0e, int) => emit_ATSCKpat_int (out, d0e, int) | ATSCKpat_bool (d0e, bool) => emit_ATSCKpat_bool (out, d0e, bool) | ATSCKpat_string (d0e, string) => emit_ATSCKpat_string (out, d0e, string) // | ATSCKpat_con0 (d0e, ctag) => emit_ATSCKpat_con0 (out, d0e, ctag) | ATSCKpat_con1 (d0e, ctag) => emit_ATSCKpat_con1 (out, d0e, ctag) // | ATSSELcon _ => emit_SELcon (out, d0e0) | ATSSELrecsin _ => emit_SELrecsin (out, d0e0) | ATSSELboxrec _ => emit_SELboxrec (out, d0e0) | ATSSELfltrec _ => emit_text (out, "ATSSELfltrec(...)") // | ATSextfcall (_fun, _arg) => { val () = emit_i0de (out, _fun) val () = emit_d0exparg (out, _arg) } (* end of [ATSextfcall] *) | ATSextmcall (_obj, _mtd, _arg) => { // val () = emit_d0exp (out, _obj) val () = emit_DOT (out) val () = emit_d0exp (out, _mtd) // val () = emit_d0exparg (out, _arg) // } (* end of [ATSextmcall] *) // | ATSfunclo_fun ( d0e_fun, s0e_arg, _(*res*) ) => ( emit_fname_d0exp(out, "ATSfunclo_fun", d0e_fun) ) (* end of [ATSfunclo_fun] *) // | ATSfunclo_clo ( d0e_fun, _(*arg*), _(*res*) ) => ( emit_fname_d0exp(out, "ATSfunclo_fclo", d0e_fun) ) (* end of [ATSfunclo_clo] *) // end // end of [emit_d0exp] (* ****** ****** *) local fun loop ( out: FILEref, d0es: d0explst, i: int ) : void = ( case+ d0es of | list_nil () => () | list_cons (d0e, d0es) => let val () = if i > 0 then emit_SPACE(out) // end of [val] in emit_d0exp (out, d0e); loop (out, d0es, i+1) end // end of [list_cons] ) in (* in-of-local *) implement emit_d0explst (out, d0es) = loop (out, d0es, 0) implement emit_d0explst_1 (out, d0es) = loop (out, d0es, 1) end // end of [local] (* ****** ****** *) implement emit_d0exparg (out, d0es) = { // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_d0exparg] *) (* ****** ****** *) // extern fun tyrec_labsel (tyrec: tyrec, lab: symbol): int // implement tyrec_labsel (tyrec, lab) = let // fun loop ( xs: tyfldlst, i: int ) : int = ( case+ xs of | list_cons (x, xs) => let val TYFLD (id, s0e) = x.tyfld_node in if lab = id.i0dex_sym then i else loop (xs, i+1) end // end of [list_cons | list_nil ((*void*)) => ~1(*error*) ) // in loop (tyrec.tyrec_node, 0) end // end of [tyrec_labsel] // (* ****** ****** *) implement emit_SELcon (out, d0e) = let // val- ATSSELcon (d0rec, s0e, id) = d0e.d0exp_node // val-S0Eide(name) = s0e.s0exp_node val-~Some_vt(s0rec) = typedef_search_opt(name) // val tupi = tyrec_labsel(s0rec, id.i0dex_sym) // val () = emit_text(out, "(ATSSELcon ") val () = ( emit_d0exp (out, d0rec); emit_SPACE(out); emit_int (out, tupi) ) (* end of [val] *) // val () = emit_RPAREN (out) // in // nothing end // end of [emit_SELcon] (* ****** ****** *) implement emit_SELrecsin (out, d0e) = let // val- ATSSELrecsin (d0rec, s0e, id) = d0e.d0exp_node // in emit_d0exp (out, d0rec) end // end of [emit_SELrecsin] (* ****** ****** *) implement emit_SELboxrec (out, d0e) = let // val- ATSSELboxrec (d0rec, s0e, id) = d0e.d0exp_node // val-S0Eide(name) = s0e.s0exp_node val-~Some_vt(s0rec) = typedef_search_opt(name) // val tupi = tyrec_labsel(s0rec, id.i0dex_sym) // val () = emit_text (out, "(ATSSELboxrec ") // // val () = ( emit_d0exp (out, d0rec); emit_SPACE(out); emit_int (out, tupi) ) (* end of [val] *) // val () = emit_RPAREN (out) // in // nothing end // end of [emit_SELboxrec] (* ****** ****** *) // implement emit_COMMENT_line (out, tok) = let // val- T_COMMENT_line (str) = tok.token_node // in emit_text (out, str) end // end of [emit_COMMENT_line] // implement emit_COMMENT_block (out, tok) = let // val- T_COMMENT_block (str) = tok.token_node // in emit_text (out, str) end // end of [emit_COMMENT_block] // (* ****** ****** *) local (* fun aux0_cenv ( out: FILEref , s0es: s0explst ) : void = let // fun auxlst ( i: int, s0es: s0explst ) : void = ( case+ s0es of | list_nil() => () | list_cons (_, s0es) => let val () = emit_text(out, " ") val () = ( emit_text(out, "Cenv"); emit_int(out, i) ) in auxlst(i+1, s0es) end // end of [auxlst] ) // val () = emit_LBRACE(out) val () = (emit_text(out, "_"); auxlst(1, s0es)) val () = emit_RBRACE(out) // in // nothing end (* end of [aux0_cenv] *) *) fun aux0_cenv ( out: FILEref , s0es: s0explst ) : void = ( emit_text(out, "_fcenvs_") ) fun aux0_arglst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( // case+ s0es of | list_nil ((*void*)) => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then ( emit_text (out, " ") ) (* then *) // end of [if] val () = ( emit_text (out, "xarg"); emit_int (out, i) ) (* end of [val] *) in aux0_arglst (out, s0es, n0, i+1) end // end of [list_cons] // ) (* end of [aux0_arglst] *) fun aux0_envlst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( // case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then ( emit_text(out, " ") ) (* then *) // end of [if] val () = ( emit_text (out, "xenv"); emit_int (out, i) ) (* end of [val] *) in aux0_envlst (out, s0es, n0, i+1) end // end of [list_cons] // ) (* end of [aux0_envlst] *) fun aux0_fcenvs_at ( out: FILEref , s0es: s0explst, i: int ) : void = () where { val () = emit_LPAREN(out) val () = if (i <= 3) then ( emit_text(out, "ATSCCget_"); emit_int(out, i); emit_text(out, " _fcenvs_") ) (* end of [then] *) else ( emit_text(out, "ATSCCget_at"); emit_text(out, " _fcenvs_ "); emit_int(out, i) ) (* end of [else] *) // end of [if] val () = emit_RPAREN(out) } (* end of [aux0_fcenvs_at] *) fun aux1_envlst ( out: FILEref , s0es: s0explst, i: int ) : int = ( case+ s0es of | list_nil ((*void*)) => (i) | list_cons (s0e, s0es) => let // val () = if i > 0 then emit_text (out, " ") val () = aux0_fcenvs_at(out, s0es, i) // in aux1_envlst (out, s0es, i+1) end // end of [list_cons] ) (* end of [aux1_envlst] *) in (* in-of-local *) implement emit_closurerize ( out, flab, env, arg, res ) = let // val-S0Elist(s0es_env) = env.s0exp_node val-S0Elist(s0es_arg) = arg.s0exp_node // val () = emit_ENDL (out) // (* val () = emit_text (out, ";;fun;;\n") *) val () = emit_text (out, "(define\n") // val () = emit_LPAREN(out) // val () = ( emit_label(out, flab); emit_text (out, "__closurerize") ) val () = aux0_envlst (out, s0es_env, 1, 0) val ((*closing*)) = emit_text (out, ")\n") // val ((*opening*)) = emit_text (out, ";;%{\n") // val () = emit_nspc (out, 2) val () = emit_text (out, "(list ") val () = emit_text (out, "(lambda") // val () = emit_LPAREN (out) // val () = aux0_cenv (out, s0es_env) val () = aux0_arglst (out, s0es_arg, 1, 0) // val () = emit_RPAREN (out) // val () = emit_LPAREN (out) // val () = emit_label (out, flab) val n0 = aux1_envlst (out, s0es_env, 1) val () = aux0_arglst (out, s0es_arg, n0, 0) // val () = emit_RPAREN (out) // val () = emit_RPAREN (out) // val () = aux0_envlst (out, s0es_env, 1, 0) val ((*closing*)) = emit_text (out, ")\n") val ((*closing*)) = emit_text (out, ";;%}\n") val ((*closing*)) = emit_text (out, ") ;; define\n") // val ((*flushing*)) = emit_newline (out) // in // nothing end // end of [emit_closurerize] end // end of [local] (* ****** ****** *) (* end of [atscc2scm_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/Makefile0000644000175000017500000000206613431250607022400 0ustar brandonbrandon# # A simple Makefile # ###### MAKE=make ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### all:: ###### CATSPARSEMIT=./CATS-parsemit ###### SOURCES_DATS := SOURCES_DATS += DATS/atscc2scm_main.dats SOURCES_DATS += DATS/atscc2scm_emit.dats SOURCES_DATS += DATS/atscc2scm_emit2.dats SOURCES_SATS := SOURCES_SATS += $(CATSPARSEMIT)/SATS/catsparse.sats SOURCES_CATS := SOURCES_CATS += $(CATSPARSEMIT)/CATS/catsparse_all_dats.c ###### # all:: ; \ $(MAKE) -C CATS-parsemit all # ###### # all:: \ bin_atscc2scm bin_atscc2scm: \ $(SOURCES_DATS); \ $(PATSCC) \ -DATS_MEMALLOC_GCBDW -O2 -o bin/atscc2scm \ $(SOURCES_DATS) $(SOURCES_SATS) $(SOURCES_CATS) -lgc # ###### # npm:: bin_atscc2scm npm:: ; $(CPF) catsparse_sats.c atscc2scm_*_dats.c npm/CATS/. # ###### CPF=cp -f RMF=rm -f ###### # testall:: all testall:: cleanall # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) catsparse_sats.c clean:: ; $(RMF) atscc2scm_*_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) ./bin/atscc2scm ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2scm/.keeper0000644000175000017500000000000013431250607022176 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/0000755000175000017500000000000013431250607020661 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/0000755000175000017500000000000013431250607022030 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/output/0000755000175000017500000000000013431250607023370 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/output/DATS/0000755000175000017500000000000013431250607024123 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/output/DATS/.keeper0000644000175000017500000000000013431250607025365 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/output/DATS/ML/0000755000175000017500000000000013431250607024433 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/output/DATS/ML/.keeper0000644000175000017500000000000013431250607025675 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/output/.keeper0000644000175000017500000000000013431250607024632 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/0000755000175000017500000000000013431250607022563 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/qlistref.dats0000644000175000017500000000114713431250607025274 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX: list-bsaed queue // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_qlistref_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #include "./../staloadall.hats" // #include "{$LIBATSCC}/DATS/qlistref.dats" // (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/intrange.dats0000644000175000017500000000157613431250607025260 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2016-07: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_intrange_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../basics_clj.sats" // (* ****** ****** *) // staload "./../SATS/bool.sats" staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" // staload "./../SATS/stream.sats" staload "./../SATS/stream_vt.sats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // staload "./../SATS/intrange.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/intrange.dats" // (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/list.dats0000644000175000017500000000464013431250607024417 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_clj.sats" // (* ****** ****** *) // staload "./../SATS/bool.sats" staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" staload "./../SATS/filebas.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" // staload "./../SATS/CLJlist.sats" // (* ****** ****** *) // staload "./../SATS/stream_vt.sats" staload _ = "./../DATS/stream.dats" // staload "./../SATS/stream_vt.sats" staload _ = "./../DATS/stream_vt.dats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // %{^ ;; list.dats ;; declared: stream_vt.dats (declare ats2cljpre_stream_vt_append) %} (* end of [%{^] *) // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list.dats" // (* ****** ****** *) // extern fun{} print_list$sep((*void*)): void // implement {}(*tmp*) print_list$sep ((*void*)) = print_string(", ") // implement {a}(*tmp*) print_list (xs) = let // implement fprint_val (out, x) = print_val (x) implement fprint_list$sep<> (out) = print_list$sep<> () // in fprint_list (STDOUT, xs) end // end of [print_list] // (* ****** ****** *) // implement {a}(*tmp*) print_list_sep (xs, sep) = let // implement fprint_val (out, x) = print_val (x) implement fprint_list$sep<> (out) = print_string (sep) // in fprint_list (STDOUT, xs) end // end of [print_list_sep] // (* ****** ****** *) implement CLJlist_oflist_rev{a}(xs) = let // fun aux ( xs: List(a), res: CLJlist(a) ) : CLJlist(a) = case+ xs of | list_nil() => res | list_cons(x, xs) => let val res = CLJlist_cons(x, res) in aux(xs, res) end // end of [list_cons] // in aux(xs, CLJlist_nil((*void*))) end // end of [CLJlist_oflist_rev] (* ****** ****** *) // implement list_sort_2 {a}{n}(xs, cmp) = let // val xs = CLJlist_oflist_rev{a}(xs) val ys = CLJlist_sort_2{a}(xs, lam(x1, x2) => ~cmp(x1, x2)) // in $UN.cast{list(a,n)}(CLJlist2list_rev(ys)) end // end of [list_sort_2] // (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/basics.dats0000644000175000017500000000165313431250607024711 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_basics_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../basics_clj.sats" // (* ****** ****** *) // #staload "./../SATS/bool.sats" #staload "./../SATS/integer.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/basics.dats" // (* ****** ****** *) // implement gcompare_val_val (x, y) = $effmask_all(compare_int0_int0(x, y)) // (* ****** ****** *) // implement gcompare_val_val (x, y) = ( // if (x) then (if y then 0(*t/t*) else 1(*t/f*)) else (if y then ~1(*f/t*) else 0(*f/f*)) // ) (* gcompare_val_val *) // (* ****** ****** *) (* end of [basics.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/option.dats0000644000175000017500000000123013431250607024744 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_option_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/option.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/option.dats" // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/stream.dats0000644000175000017500000000157713431250607024745 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2016-07: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_stream_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_clj.sats" // (* ****** ****** *) // staload "./../SATS/bool.sats" staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" staload "./../SATS/reference.sats" // (* ****** ****** *) staload "./../SATS/stream.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream.dats" // (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/CLJlist.dats0000644000175000017500000000161113431250607024743 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_CLJlist_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../basics_clj.sats" (* ****** ****** *) // staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" staload "./../SATS/filebas.sats" // (* ****** ****** *) staload "./../SATS/list.sats" staload "./../SATS/CLJlist.sats" (* ****** ****** *) // implement {a}(*tmp*) CLJlist_sort_1(xs) = CLJlist_sort_2 (xs, lam(x1, x2) => gcompare_val_val(x1, x2)) // (* ****** ****** *) (* end of [CLJlist.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/slistref.dats0000644000175000017500000000114713431250607025276 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX: list-bsaed stack // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_slistref_" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #include "./../staloadall.hats" // #include "{$LIBATSCC}/DATS/slistref.dats" // (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/BUCS320/0000755000175000017500000000000013431250607023544 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025733 5ustar brandonbrandon././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.0000644000175000017500000000151013431250607030754 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2cljpre_BUCS320_GraphSearch_dfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../../../basics_clj.sats" // staload "./../../../SATS/bool.sats" staload "./../../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../../SATS/slistref.sats" // macdef slistref_insert = slistref_push macdef slistref_takeout_opt = slistref_pop_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.0000644000175000017500000000151713431250607030761 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2cljpre_BUCS320_GraphSearch_bfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../../../basics_clj.sats" // staload "./../../../SATS/bool.sats" staload "./../../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../../SATS/qlistref.sats" // macdef qlistref_insert = qlistref_enqueue macdef qlistref_takeout_opt = qlistref_dequeue_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/list_vt.dats0000644000175000017500000000135713431250607025132 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_list_vt_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./../basics_clj.sats" (* ****** ****** *) // staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" staload "./../SATS/list_vt.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list_vt.dats" // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/gprint.dats0000644000175000017500000000206613431250607024747 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_gprint_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../SATS/gprint.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/gprint.dats" // (* ****** ****** *) // extern fun tostring {a:t@ype}(x: a): string = "mac#%" // (* ****** ****** *) // implement {a}(*tmp*) gprint_val(x) = gprint_string(tostring(x)) // (* ****** ****** *) // implement {}(*tmp*) gprint_int(x) = gprint_string(tostring(x)) // (* ****** ****** *) // implement {}(*tmp*) gprint_bool(x) = gprint_string(if x then "true" else "false") // (* ****** ****** *) implement {}(*tmp*) gprint_char(x) = gprint_string(tostring(x)) (* ****** ****** *) implement {}(*tmp*) gprint_double(x) = gprint_string(tostring(x)) (* ****** ****** *) (* end of [gprint.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/print.dats0000644000175000017500000000152113431250607024573 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_print_" // (* ****** ****** *) // staload "./../basics_clj.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" staload "./../SATS/filebas.sats" // (* ****** ****** *) // implement print_val = print_int implement print_val = print_bool implement print_val = print_double implement print_val = print_string // (* ****** ****** *) // implement fprint_val = fprint_int implement fprint_val = fprint_bool implement fprint_val = fprint_double implement fprint_val = fprint_string // (* ****** ****** *) (* end of [print.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/funarray.dats0000644000175000017500000000143013431250607025265 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_funarray_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // (* #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" *) // (* ****** ****** *) // #staload "./../SATS/funarray.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/funarray.dats" // (* ****** ****** *) (* end of [funarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/stream_vt.dats0000644000175000017500000000171713431250607025452 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" #define ATS_STATIC_PREFIX "_ats2cljpre_stream_vt_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../basics_clj.sats" // (* ****** ****** *) // staload "./../SATS/bool.sats" staload "./../SATS/integer.sats" // (* ****** ****** *) // staload "./../SATS/print.sats" // (* ****** ****** *) // staload "./../SATS/list.sats" staload "./../SATS/list_vt.sats" // staload "./../SATS/reference.sats" // (* ****** ****** *) staload "./../SATS/stream.sats" staload "./../SATS/stream_vt.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream_vt.dats" // (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/ML/0000755000175000017500000000000013431250607023073 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/ML/option0.dats0000644000175000017500000000130513431250607025337 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_ML_" #define ATS_STATIC_PREFIX "_ats2cljpre_ML_option0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_clj.sats" // (* ****** ****** *) // #staload "./../../SATS/ML/option0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/option0.dats" // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/DATS/ML/list0.dats0000644000175000017500000000313013431250607025000 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_ML_" #define ATS_STATIC_PREFIX "_ats2cljpre_ML_list0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./../../basics_clj.sats" // (* ****** ****** *) // staload "./../../SATS/integer.sats" // (* ****** ****** *) // staload "./../../SATS/print.sats" staload "./../../SATS/filebas.sats" // (* ****** ****** *) // staload "./../../SATS/list.sats" // (* ****** ****** *) // staload "./../../SATS/stream.sats" // staload "./../../SATS/stream_vt.sats" staload _ = "./../../DATS/stream_vt.dats" // (* ****** ****** *) // staload "./../../SATS/ML/list0.sats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/list0.dats" // (* ****** ****** *) // local // staload "./../list.dats" // in (* in-of-local *) // extern fun{} print_list0$sep (): void // implement {}(*tmp*) print_list0$sep ((*void*)) = print_string (", ") // implement {a}(*tmp*) print_list0(xs) = let // implement print_list$sep<> = print_list0$sep<> // in print_list(g1ofg0(xs)) end // end of [print_list0] // implement {a}(*tmp*) print_list0_sep(xs, sep) = let // in print_list_sep(g1ofg0(xs), sep) end // end of [print_list0_sep] // end // end of [local] // (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/Makefile0000644000175000017500000000713313431250607023474 0ustar brandonbrandon# # For generating libatscc2clj # ###### PATSOPT=$(PATSHOME)/bin/patsopt ATSCC2CLJ=$(PATSHOME)/bin/atscc2clj ###### CAT=cat CPF=cp -f RMF=rm -f SCPR=scp -r ###### all:: all_in_one:: ###### # all:: ; \ $(PATSOPT) -d ./DATS/basics.dats | \ $(ATSCC2CLJ) -o ./output/DATS/basics_dats.clj -i # all:: ; \ $(PATSOPT) -d ./DATS/list.dats | \ $(ATSCC2CLJ) -o ./output/DATS/list_dats.clj -i all:: ; \ $(PATSOPT) -d ./DATS/list_vt.dats | \ $(ATSCC2CLJ) -o ./output/DATS/list_vt_dats.clj -i # all:: ; \ $(PATSOPT) -d ./DATS/option.dats | \ $(ATSCC2CLJ) -o ./output/DATS/option_dats.clj -i # all:: ; \ $(PATSOPT) -d ./DATS/stream.dats | \ $(ATSCC2CLJ) -o ./output/DATS/stream_dats.clj -i all:: ; \ $(PATSOPT) -d ./DATS/stream_vt.dats | \ $(ATSCC2CLJ) -o ./output/DATS/stream_vt_dats.clj -i # all:: ; \ $(PATSOPT) -d ./DATS/intrange.dats | \ $(ATSCC2CLJ) -o ./output/DATS/intrange_dats.clj -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/funarray.dats | \ $(ATSCC2CLJ) -o ./output/DATS/funarray_dats.clj -i # all:: ; \ $(PATSOPT) -d ./DATS/slistref.dats | \ $(ATSCC2CLJ) -o ./output/DATS/slistref_dats.clj -i # all:: ; \ $(PATSOPT) -d ./DATS/qlistref.dats | \ $(ATSCC2CLJ) -o ./output/DATS/qlistref_dats.clj -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/ML/list0.dats | \ $(ATSCC2CLJ) -o ./output/DATS/ML/list0_dats.clj -i all:: ; \ $(PATSOPT) -d ./DATS/ML/option0.dats | \ $(ATSCC2CLJ) -o ./output/DATS/ML/option0_dats.clj -i # ###### LIBATSCC2CLJ_ALL_CLJ=\ output/libatscc2clj_all.clj ###### all_in_one:: libatscc2clj_all ###### # DATE=/bin/date ECHO=/bin/echo -en # PRINTF=printf # ###### # # libatscc2clj_all:: ; \ # $(ECHO) | $(CAT) - >$(LIBATSCC2CLJ_ALL_CLJ) # libatscc2clj_all:: ; \ $(PRINTF) '\n' | $(CAT) - >$(LIBATSCC2CLJ_ALL_CLJ) libatscc2clj_all:: ; \ $(PRINTF) ';;\n' | $(CAT) - >>$(LIBATSCC2CLJ_ALL_CLJ) libatscc2clj_all:: ; \ $(PRINTF) ';; Time of Generation:\n' | $(CAT) - >>$(LIBATSCC2CLJ_ALL_CLJ) libatscc2clj_all:: ; \ $(PRINTF) ';; ' | $(CAT) - >>$(LIBATSCC2CLJ_ALL_CLJ) && $(DATE) | $(CAT) - >>$(LIBATSCC2CLJ_ALL_CLJ) libatscc2clj_all:: ; \ $(PRINTF) ';;\n\n' | $(CAT) - >>$(LIBATSCC2CLJ_ALL_CLJ) # ###### # libatscc2clj_all:: ; \ $(CAT) >>$(LIBATSCC2CLJ_ALL_CLJ) \ CATS/basics_cats.clj \ CATS/integer_cats.clj \ CATS/bool_cats.clj \ CATS/float_cats.clj \ CATS/print_cats.clj \ CATS/reference_cats.clj # libatscc2clj_all:: ; \ $(CAT) >>$(LIBATSCC2CLJ_ALL_CLJ) \ CATS/filebas_cats.clj # libatscc2clj_all:: ; \ $(CAT) >>$(LIBATSCC2CLJ_ALL_CLJ) \ CATS/CLJlist_cats.clj # ###### libatscc2clj_all:: ; \ $(CAT) >>$(LIBATSCC2CLJ_ALL_CLJ) \ output/DATS/list_dats.clj \ output/DATS/list_vt_dats.clj \ output/DATS/option_dats.clj \ output/DATS/stream_dats.clj \ output/DATS/stream_vt_dats.clj \ output/DATS/intrange_dats.clj \ output/DATS/funarray_dats.clj \ output/DATS/slistref_dats.clj \ output/DATS/qlistref_dats.clj \ output/DATS/ML/list0_dats.clj \ output/DATS/ML/option0_dats.clj \ ###### # libatscc2clj_all:: ; \ $(PRINTF) '\n;; ****** ****** ;;\n' | $(CAT) - >>$(LIBATSCC2CLJ_ALL_CLJ) libatscc2clj_all:: ; \ $(PRINTF) '\n;; end of [libatscc2clj_all.clj] ;;\n' | $(CAT) - >>$(LIBATSCC2CLJ_ALL_CLJ) # ###### # upload_source:: ; \ $(SCPR) \ basics_clj.sats \ staloadall.hats \ CATS SATS DATS \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libatscc/libatscc2clj/. # upload_libatscc2clj:: ; \ $(SCPR) \ $(LIBATSCC2CLJ_ALL_CLJ) \ ats-hwxi,ats-lang@web.sourceforge.net:htdocs/LIBRARY/contrib/libatscc/libatscc2clj/. # ###### clean:: ; $(RMF) *~ */*~ ###### cleanall:: clean cleanall:: ; $(RMF) output/DATS/*_?ats.clj cleanall:: ; $(RMF) output/DATS/ML/*_?ats.clj cleanall:: ; $(RMF) $(LIBATSCC2CLJ_ALL_CLJ) ###### ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/basics_clj.sats0000644000175000017500000000302613431250607025021 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2015-06: // prefix for external names // #define ATS_PACKNAME "ATSCC2CLJ.basics" #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/basics.sats" // (* ****** ****** *) // abstype CLJval_type typedef CLJval = CLJval_type // (* ****** ****** *) abstype CLJlist(a:t0ype+) // functional (* ****** ****** *) // fun cloref0_app{b:t0p}(cfun0(b)): b = "mac#%" // fun cloref1_app {a:t0p}{b:t0p}(cfun1(a, b), a): b = "mac#%" // fun cloref2_app {a1,a2:t0p}{b:t0p} (cfun2(a1, a2, b), a1, a2): b = "mac#%" fun cloref3_app {a1,a2,a3:t0p}{b:t0p} (cfun3(a1, a2, a3, b), a1, a2, a3): b = "mac#%" // overload cloref_app with cloref0_app overload cloref_app with cloref1_app overload cloref_app with cloref2_app overload cloref_app with cloref3_app // (* ****** ****** *) // abstype CLJfilr(*fileref*) // (* ****** ****** *) // fun lazy2cloref {a:t0p}(lazy(a)): ((*void*)) - (a) = "mac#%" // (* ****** ****** *) // fun assert_errmsg_bool0 (x: bool, msg: string): void = "mac#%" fun assert_errmsg_bool1 {b:bool} (x: bool b, msg: string): [b] void = "mac#%" // overload assert_errmsg with assert_errmsg_bool0 of 100 overload assert_errmsg with assert_errmsg_bool1 of 110 // (* ****** ****** *) // macdef assertloc (x) = assert_errmsg (,(x), $mylocation) // (* ****** ****** *) (* end of [basics_clj.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/0000755000175000017500000000000013431250607022607 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/test01.dats0000644000175000017500000000107613431250607024610 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2clj // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test01_dynload" // #define ATS_STATIC_PREFIX "_test01_" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // val () = repeat(3, $delay(println!("Hello, world!"))) // val () = (3).repeat()(lam() => println!("Hello, world!")) // val () = (3).foreach()(lam(i) => println!(i, ": Hello, world!")) // (* ****** ****** *) %{$ ;; (test01_dynload); ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/Makefile0000644000175000017500000000162713431250607024255 0ustar brandonbrandon# # A Simple Makefile # ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ATSCC2CLJ=$(PATSHOME)/bin/atscc2clj ###### # JAVA=java # CLOJURE=\ $(JAVA) -Xss4m \ -cp /usr/share/java/clojure-1.4.jar # CLOJURE2=\ $(CLOJURE) clojure.main \ -i ./../output/libatscc2clj_all.clj # ###### all:: regress:: cleanall:: ###### all:: \ test01 test01: test01_dats.clj regress:: \ test_test01 test_test01: \ test01_dats.clj ; $(CLOJURE2) $< cleanall:: ; $(RMF) test01_dats.clj ###### all:: \ test02 test02: test02_dats.clj regress:: \ test_test02 test_test02: \ test02_dats.clj ; $(CLOJURE2) $< cleanall:: ; $(RMF) test02_dats.clj ###### %_dats.clj: %.dats ; $(PATSOPT) -d $< | $(ATSCC2CLJ) -o $@ ###### testall:: all testall:: regress testall:: cleanall ###### # RMF=rm -f RMRF=rm -rf # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/0000755000175000017500000000000013431250607023570 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025757 5ustar brandonbrandon././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs0000644000175000017500000000776513431250607030707 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "GameOf24Play_dfs_dynload" // #define ATS_STATIC_PREFIX"_GameOf24Play_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = slistref_make_nil{node}() val () = slistref_insert(store, nx) // in // GraphSearch_dfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{$ ;; (do (GameOf24Play 3 3 8 8) (GameOf24Play 3 5 7 13) (GameOf24Play 4 4 10 10) (GameOf24Play 5 5 7 11) (GameOf24Play 5 7 7 11) ) ;; end-of-do ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [GameOf24Play_dfs.dats] *) ././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs0000644000175000017500000000776413431250607030704 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "GameOf24Play_bfs_dynload" // #define ATS_STATIC_PREFIX"_GameOf24Play_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = qlistref_make_nil{node}() val () = qlistref_insert(store, nx) // in // GraphSearch_bfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{$ ;; (do (GameOf24Play 3 3 8 8) (GameOf24Play 3 5 7 13) (GameOf24Play 4 4 10 10) (GameOf24Play 5 5 7 11) (GameOf24Play 5 7 7 11) ) ;; end-of-do ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [GameOf24Play_bfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.0000644000175000017500000000331313431250607031103 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "QueenPuzzle_dfs_dynload" // #define ATS_STATIC_PREFIX "_QueenPuzzle_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = let // (* val () = println! ( "process_node: nx = ", nx ) (* end of [val] *) *) // in // if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // end // end of [process_node] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = slistref_make_nil{node}() // val () = slistref_insert(store, nil0) // val () = GraphSearch_dfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{$ ;; (QueenPuzzle_solve); ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [QueenPuzzle_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/Makefile0000644000175000017500000000301713431250607027420 0ustar brandonbrandon###### # # A simple Makefile # ###### # PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt # ATSCC2CLJ=${PATSHOME}/bin/atscc2clj # ###### # JAVA=java # CLOJURE=\ $(JAVA) -Xss4m \ -cp /usr/share/java/clojure-1.4.jar # CLOJURE2=\ $(CLOJURE) clojure.main \ -i ./../../../output/libatscc2clj_all.clj # ###### all:: ###### # all:: \ QueenPuzzle_dfs_dats.clj QueenPuzzle_dfs_dats.c: \ QueenPuzzle_dfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_dfs_dats.clj: \ QueenPuzzle_dfs_dats.c; $(ATSCC2CLJ) -o $@ -i $< # regress:: QueenPuzzle_dfs_dats.clj; $(CLOJURE2) $< # ###### # all:: \ QueenPuzzle_bfs_dats.clj QueenPuzzle_bfs_dats.c: \ QueenPuzzle_bfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_bfs_dats.clj: \ QueenPuzzle_bfs_dats.c; $(ATSCC2CLJ) -o $@ -i $< # regress:: QueenPuzzle_bfs_dats.clj; $(CLOJURE2) $< # ###### # all:: \ GameOf24Play_dfs_dats.clj GameOf24Play_dfs_dats.c: \ GameOf24Play_dfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_dfs_dats.clj: \ GameOf24Play_dfs_dats.c; $(ATSCC2CLJ) -o $@ -i $< # regress:: GameOf24Play_dfs_dats.clj; $(CLOJURE2) $< # ###### # all:: \ GameOf24Play_bfs_dats.clj GameOf24Play_bfs_dats.c: \ GameOf24Play_bfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_bfs_dats.clj: \ GameOf24Play_bfs_dats.c; $(ATSCC2CLJ) -o $@ -i $< # regress:: GameOf24Play_bfs_dats.clj; $(CLOJURE2) $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.clj ###### ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.0000644000175000017500000000311713431250607031103 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "QueenPuzzle_bfs_dynload" // #define ATS_STATIC_PREFIX "_QueenPuzzle_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = qlistref_make_nil{node}() // val () = qlistref_insert(store, nil0) // val () = GraphSearch_bfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{$ ;; (QueenPuzzle_solve); ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [QueenPuzzle_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/TEST/test02.dats0000644000175000017500000000133113431250607024603 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2clj // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test02_dynload" // #define ATS_STATIC_PREFIX "_test02_" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) #define :: list_cons (* ****** ****** *) val xs = ( 0 :: 1 :: 2 :: 3 :: 4 :: 5 :: 6 :: 7 :: 8 :: 9 :: nil() ) : List0 (int) (* ****** ****** *) val () = println! ("xs = ", xs) (* ****** ****** *) val ys = xs + xs val () = println! ("xs+xs = ", ys) (* ****** ****** *) val zs = list_sort(ys) val () = println! ("sort(xs+xs) = ", zs) (* ****** ****** *) %{$ ;; (test02_dynload); ;; %} (* end of [%{$] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/0000755000175000017500000000000013431250607022562 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/basics_cats.clj0000644000175000017500000001121113431250607025526 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-07: ; for Clojure code ; translated from ATS ; ;;;;;; ;; ****** ****** ;; (def ^:const atscc2clj_null '()) ;; ****** ****** ;; (def ^:const atscc2clj_true true) (def ^:const atscc2clj_false false) ;; ****** ****** ;; ;; (def ^:const atscc2clj_list_nil '()) ;; (defmacro ats2cljpre_list_cons[x xs] `(vector ~x ~xs)) ;; ;; ****** ****** ;; ;; (def ^:const ATSINSmove0_void atscc2clj_null) ;; (defmacro ATSINSmove1_void[cmd] `(do ~cmd)) ;; ;; ****** ****** ;; ;; (defmacro ATSINStmpset[tmp val] `(var-set ~tmp ~val) ) (defmacro ATSINSstatmpset[statmp val] `(alter-var-root (var ~statmp) (fn[x#] ~val)) ) ;; (defmacro ATSdynloadset[flag value] `(alter-var-root (var ~flag) (fn[x#] ~value)) ) (defmacro ATSINSdyncst_valbind[d2cst value] `(alter-var-root (var ~d2cst) (fn[x#] ~value)) ) ;; ;; ****** ****** ;; ;; (defmacro ATSfunclo_fun[fc] fc) (defmacro ATSfunclo_fclo[fc] `(first ~fc)) ;; ;; ****** ****** ;; (defmacro ATSCKiseqz[x] `(identical? ~x 0)) (defmacro ATSCKisneqz[x] `(not (identical? ~x 0))) ;; ****** ****** ;; ;; (defmacro ATSCKpat_int[x y] `(identical? ~x ~y) ) ;; (defmacro ATSCKpat_bool[x y] `(identical? ~x ~y) ) ;; (defmacro ATSCKpat_string[x y] `(= ~x ~y)) ;; ;; ****** ****** ;; ;; (defmacro ATSCKpat_con0[x tag] `(identical? ~x ~tag)) (defmacro ATSCKpat_con1[x tag] `(identical? (first ~x) ~tag)) ;; ;; ****** ****** ;; (defmacro ATSCKptrisnull[x] `(identical? ~x atscc2clj_null) ) (defmacro ATSCKptriscons[x] `(not (identical? ~x atscc2clj_null)) ) ;; ****** ****** ;; (defmacro ATSPMVtyrec[& xs] `(vector ~@(for [x xs] x)) ) (defmacro ATSPMVtysum[& xs] `(vector ~@(for [x xs] x)) ) ;; ****** ****** ;; (defmacro ATSCCget_at[xs i] `(nth ~xs ~i) ) (defmacro ATSCCget_0[xs] `(nth ~xs 0)) (defmacro ATSCCget_1[xs] `(nth ~xs 1)) (defmacro ATSCCget_2[xs] `(nth ~xs 2)) (defmacro ATSCCget_3[xs] `(nth ~xs 3)) ;; ****** ****** ;; ;; (defmacro ATSPMVlazyval[thunk] `(vector (atom 0) (atom ~thunk)) ) ;; (defmacro ATSPMVlazyval_evl[lazyval] `(let [flag# ( ATSCCget_0 ~lazyval ) flag2# (deref flag#) ] (if ( identical? flag2# 0 ) (do (reset! flag# 1) (let [ mythunk# (ATSCCget_1 ~lazyval) mythunk2# (deref mythunk#) ] ( reset! mythunk# ((ATSCCget_0 mythunk2#) mythunk2#) ;; end of [reset!] ) ) ;; end of [let] ) (reset! flag# (inc flag2#)) ) ) ;; let ) ;; end of [defmacro] ;; (defmacro ATSPMVlazyval_eval[lazyval] `(let [lazyval# ~lazyval] (ATSPMVlazyval_evl lazyval#) (deref (ATSCCget_1 lazyval#)) ) ) ;; end of [defmacro] ;; ;; ****** ****** ;; ;; (defmacro ATSPMVllazyval[thunk] thunk ) ;; (defmacro ATSPMVllazyval_eval[llazyval] `(let [llazyval# ~llazyval] ((ATSfunclo_fclo llazyval#) llazyval# true)) ) ;; end of [defmacro] ;; (defmacro atspre_lazy_vt_free[llazyval] `(let [llazyval# ~llazyval] ((ATSfunclo_fclo llazyval#) llazyval# false)) ) ;; end of [defmacro] ;; ;; ****** ****** ;; ;; (defmacro ATSSELcon[xs i] `(ATSCCget_at ~xs ~i) ) (defmacro ATSSELboxrec[xs i] `(ATSCCget_at ~xs ~i) ) ;; ;; ****** ****** ;; ;; (defn ATSINSdeadcode_fail[] (System/exit 1) ) ;; (defn ATSINScaseof_fail[msg] (do (.println *err* msg) (System/exit 1)) ) ;; end-of-define ;; ;; ****** ****** ;; ;; (defn ats2cljpre_tostring[x] (.toString x)) ;; ;; ****** ****** ;; ;; (defn ats2cljpre_assert_bool0[tfv] (if (not tfv) (System/exit 1)) ) (defn ats2cljpre_assert_bool1[tfv] (if (not tfv) (System/exit 1)) ) ;; (defn ats2cljpre_assert_errmsg_bool0[msg tfv] (if (not tfv) (do (.println *err* msg) (System/exit 1)) ) ) ;; end-of-define (defn ats2cljpre_assert_errmsg_bool1[msg tfv] (if (not tfv) (do (.println *err* msg) (System/exit 1)) ) ) ;; end-of-define ;; ;; ****** ****** ;; (defmacro ats2cljpre_cloref0_app[cf] `(let [cf# ~cf] ((ATSfunclo_fclo cf#) cf#)) ) ; defmacro (defmacro ats2cljpre_cloref1_app[cf x] `(let [cf# ~cf] ((ATSfunclo_fclo cf#) cf# ~x)) ) ; defmacro (defmacro ats2cljpre_cloref2_app[cf x1 x2] `(let [cf# ~cf] ((ATSfunclo_fclo cf#) cf# ~x1 ~x2)) ) ; defmacro (defmacro ats2cljpre_cloref3_app[cf x1 x2 x3] `(let [cf# ~cf] ((ATSfunclo_fclo cf#) cf# ~x1 ~x2 ~x3)) ) ; defmacro ;; ****** ****** ;; ;; (defn ats2cljpre_cloref2fun0[cf] (fn [] (ats2cljpre_cloref0_app cf)) ) ; defn (defn ats2cljpre_cloref2fun1[cf] (fn [x] (ats2cljpre_cloref1_app cf x)) ) ; defn (defn ats2cljpre_cloref2fun2[cf] (fn [x1 x2] (ats2cljpre_cloref2_app cf x1 x2)) ) ; defn (defn ats2cljpre_cloref2fun3[cf] (fn [x1 x2 x3] (ats2cljpre_cloref3_app cf x1 x2 x3)) ) ; defn ;; ;; ****** ****** ;; (defmacro ats2cljpre_lazy2cloref[lazyval] `(deref (ATSCCget_1 ~lazyval)) ) ;; end-of-define ;; ****** ****** ;; ;;;;;; end of [basics_cats.clj] ;;;;;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/CLJlist_cats.clj0000644000175000017500000000330513431250607025573 0ustar brandonbrandon;;;;;; ; ; HX-2016-07: ; for Clojure code translated from ATS ; ;;;;;; ;;;;;; ; beg of [CLJlist_cats.clj] ;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (defmacro ats2cljpre_CLJlist_nil[] `()) (defmacro ats2cljpre_CLJlist_sing[x] `(list ~x)) (defmacro ats2cljpre_CLJlist_pair[x1 x2] `(list ~x1 ~x2)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defmacro ats2cljpre_CLJlist_cons[x0 xs] `(cons ~x0 ~xs)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (defmacro ats2cljpre_CLJlist_make_elt[n x0] `(repeat ~n ~x0)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (defmacro ats2cljpre_CLJlist_is_nil[xs] `(empty? ~xs)) (defmacro ats2cljpre_CLJlist_is_cons[xs] `(not (empty? ~xs))) (defmacro ats2cljpre_CLJlist_isnot_nil[xs] `(not (empty? ~xs))) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defmacro ats2cljpre_CLJlist_length[xs] `(count ~xs) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defmacro ats2cljpre_CLJlist_tail[xs] `(rest ~xs)) (defmacro ats2cljpre_CLJlist_head[xs] `(first ~xs)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defmacro ats2cljpre_CLJlist_get_at[xs i] `(nth ~xs ~i) ) ; defmacro ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (defmacro ats2cljpre_CLJlist_append[xs ys] `(concat ~xs ~ys) ) ;; (defmacro ats2cljpre_CLJlist_reverse[xs] `(reverse ~xs)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (defmacro ats2cljpre_CLJlist2list_rev[xs] `(reduce #(ats2cljpre_list_cons %2 %1) atscc2clj_null ~xs) ) ; defmacro ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defmacro ats2cljpre_CLJlist_sort_2[xs cmp] `(let [cmp# (ats2cljpre_cloref2fun2 ~cmp)] (sort cmp# ~xs)) ) ; defmacro ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;; end of [CLJlist_cats.clj] ;;;;;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/bool_cats.clj0000644000175000017500000000044413431250607025223 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-07: ; for Clojure code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [bool_cats.clj] ;;;;;; ;; ;; ****** ****** ;; (defmacro ats2cljpre_neg_bool0[x] `(not ~x) ) (defmacro ats2cljpre_neg_bool1[x] `(not ~x) ) ;; ****** ****** ;; ;; end of [bool_cats.clj] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/integer_cats.clj0000644000175000017500000000502113431250607025721 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-07: ; for Clojure code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [integer_cats.clj] ;;;;;; ;; ;; ****** ****** ;; ;; ;; HX: for signed integers ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_neg_int0[x] `(- ~x) ) (defmacro ats2cljpre_neg_int1[x] `(- ~x) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_abs_int0[x] `(let [x# ~x] (if (>= x# 0) x# (- x#))) ) (defmacro ats2cljpre_abs_int1[x] `(let [x# ~x] (if (>= x# 0) x# (- x#))) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_succ_int0[x] `(+ ~x 1) ) (defmacro ats2cljpre_pred_int0[x] `(- ~x 1) ) ;; (defmacro ats2cljpre_succ_int1[x] `(+ ~x 1) ) (defmacro ats2cljpre_pred_int1[x] `(- ~x 1) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_half_int0[x] `(quot ~x 2) ) (defmacro ats2cljpre_half_int1[x] `(quot ~x 2) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_add_int0_int0[x y] `(+ ~x ~y) ) (defmacro ats2cljpre_sub_int0_int0[x y] `(- ~x ~y) ) (defmacro ats2cljpre_mul_int0_int0[x y] `(* ~x ~y) ) (defmacro ats2cljpre_div_int0_int0[x y] `(quot ~x ~y) ) ;; (defmacro ats2cljpre_mod_int0_int0[x y] `(mod ~x ~y) ) (defmacro ats2cljpre_rem_int0_int0[x y] `(rem ~x ~y) ) ;; (defmacro ats2cljpre_add_int1_int1[x y] `(+ ~x ~y) ) (defmacro ats2cljpre_sub_int1_int1[x y] `(- ~x ~y) ) (defmacro ats2cljpre_mul_int1_int1[x y] `(* ~x ~y) ) (defmacro ats2cljpre_div_int1_int1[x y] `(quot ~x ~y) ) ;; (defmacro ats2cljpre_mod_int1_int1[x y] `(mod ~x ~y) ) (defmacro ats2cljpre_nmod_int1_int1[x y] `(mod ~x ~y) ) ;; (defmacro ats2cljpre_rem_int1_int1[x y] `(rem ~x ~y) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_lt_int0_int0[x y] `(< ~x ~y) ) (defmacro ats2cljpre_lte_int0_int0[x y] `(<= ~x ~y) ) (defmacro ats2cljpre_gt_int0_int0[x y] `(> ~x ~y) ) (defmacro ats2cljpre_gte_int0_int0[x y] `(>= ~x ~y) ) ;; (defmacro ats2cljpre_eq_int0_int0[x y] `(= ~x ~y) ) (defmacro ats2cljpre_neq_int0_int0[x y] `(not (= ~x ~y)) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_lt_int1_int1[x y] `(< ~x ~y) ) (defmacro ats2cljpre_lte_int1_int1[x y] `(<= ~x ~y) ) (defmacro ats2cljpre_gt_int1_int1[x y] `(> ~x ~y) ) (defmacro ats2cljpre_gte_int1_int1[x y] `(>= ~x ~y) ) ;; (defmacro ats2cljpre_eq_int1_int1[x y] `(= ~x ~y) ) (defmacro ats2cljpre_neq_int1_int1[x y] `(not (= ~x ~y)) ) ;; ;; ****** ****** ;; (defmacro ats2cljpre_compare_int0_int0[x y] `(let [x# ~x y# ~y] (if (< x# y#) -1 (if (<= x# y#) 0 1))) ) (defmacro ats2cljpre_compare_int1_int1[x y] `(let [x# ~x y# ~y] (if (< x# y#) -1 (if (<= x# y#) 0 1))) ) ;; ****** ****** ;; ;; end of [integer_cats.clj] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/float_cats.clj0000644000175000017500000000351613431250607025400 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-07: ; for Clojure code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [float_cats.clj] ;;;;;; ;; ;; ****** ****** ;; ;; ;; HX: for signed floats ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_int2double[x] x) (defmacro ats2cljpre_double_of_int[x] x) ;; (defmacro ats2cljpre_double2int[x] `(int ~x)) (defmacro ats2cljpre_int_of_double[x] `(int ~x)) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_neg_double[x] `(- ~x) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_abs_double[x] `(let [x# ~x] (if (>= x# 0.0) x# (- x#))) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_succ_double[x] `(+ ~x 1) ) (defmacro ats2cljpre_pred_double[x] `(- ~x 1) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_add_int_double[x y] `(+ ~x ~y) ) (defmacro ats2cljpre_sub_int_double[x y] `(- ~x ~y) ) (defmacro ats2cljpre_mul_int_double[x y] `(* ~x ~y) ) (defmacro ats2cljpre_div_int_double[x y] `(/ ~x ~y) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_add_double_int[x y] `(+ ~x ~y) ) (defmacro ats2cljpre_sub_double_int[x y] `(- ~x ~y) ) (defmacro ats2cljpre_mul_double_int[x y] `(* ~x ~y) ) (defmacro ats2cljpre_div_double_int[x y] `(/ ~x ~y) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_add_double_double[x y] `(+ ~x ~y) ) (defmacro ats2cljpre_sub_double_double[x y] `(- ~x ~y) ) (defmacro ats2cljpre_mul_double_double[x y] `(* ~x ~y) ) (defmacro ats2cljpre_div_double_double[x y] `(/ ~x ~y) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_lt_double_double[x y] `(< ~x ~y) ) (defmacro ats2cljpre_lte_double_double[x y] `(<= ~x ~y) ) (defmacro ats2cljpre_gt_double_double[x y] `(> ~x ~y) ) (defmacro ats2cljpre_gte_double_double[x y] `(>= ~x ~y) ) ;; (defmacro ats2cljpre_eq_double_double[x y] `(= ~x ~y) ) (defmacro ats2cljpre_neq_double_double[x y] `(not (= ~x ~y)) ) ;; ;; ****** ****** ;; ;; end of [float_cats.clj] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/char_cats.clj0000644000175000017500000000026013431250607025201 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-07: ; for Clojure code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [char_cats.clj] ;;;;;; ;; ;; ****** ****** ;; ;; end of [char_cats.clj] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/print_cats.clj0000644000175000017500000000231513431250607025423 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-07: ; for Clojure code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [print_cats.clj] ;;;;;; ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_print_int[x] `(print ~x) ) ;; (defmacro ats2cljpre_print_bool[x] `(print (if ~x "true" "false")) ) (defmacro ats2cljpre_print_char[x] `(print ~x)) ;; (defmacro ats2cljpre_print_double[x] `(print ~x) ) (defmacro ats2cljpre_print_string[x] `(print ~x) ) ;; (defmacro ats2cljpre_print_CLJval[x] `(print ~x) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_print_newline[] `(newline) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_fprint_bool[out x] `(.write ~out (if ~x "true" "false")) ) (defmacro ats2cljpre_fprint_char[out x] `(.write ~out (int ~x)) ) ;; (defmacro ats2cljpre_fprint_int[out x] `(.write ~out (.toString ~x)) ) ;; (defmacro ats2cljpre_fprint_double[out x] `(.write ~out (.toString ~x)) ) (defmacro ats2cljpre_fprint_string[out x] `(.write ~out (.toString ~x)) ) (defmacro ats2cljpre_fprint_CLJval[out x] `(.write ~out (.toString ~x)) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_fprint_newline[out] `(let [out# ~out] (do (.write out# (int \newline)) (.flush out#))) ) ;; ;; ****** ****** ;; ;; end of [print_cats.clj] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/reference_cats.clj0000644000175000017500000000067113431250607026230 0ustar brandonbrandon;; ;;;;;; ; ; HX-2016-07: ; for Clojure code ; translated from ATS ; ;;;;;; ;; ;; ;;;;;; ; beg of [reference_cats.clj] ;;;;;; ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_ref[x] `(atom ~x) ) (defmacro ats2cljpre_ref_make_elt[x] `(atom ~x) ) ;; ;; ****** ****** ;; ;; (defmacro ats2cljpre_ref_get_elt[r] `(deref ~r) ) (defmacro ats2cljpre_ref_set_elt[r x0] `(reset! ~r ~x0) ) ;; ;; ****** ****** ;; ;; end of [reference_cats.clj] ;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/CATS/filebas_cats.clj0000644000175000017500000000043713431250607025677 0ustar brandonbrandon;;;;;; ; ; HX-2016-07: ; for Clojure code translated from ATS ; ;;;;;; ;;;;;; ;beg of [filebas_cats.clj] ;;;;;; ;; (defmacro ats2cljpre_stdin_get[] *in*) (defmacro ats2cljpre_stdout_get[] *out*) (defmacro ats2cljpre_stderr_get[] *err*) ;; ;;;;;; ;;;;;; end of [filebas_cats.clj] ;;;;;; ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/0000755000175000017500000000000013431250607022602 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/intrange.sats0000644000175000017500000000067613431250607025316 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2016-07: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../basics_clj.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/intrange.sats" // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/float.sats0000644000175000017500000000663113431250607024611 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // fun double2int (x: double): int = "mac#%" fun int_of_double (x: double): int = "mac#%" // fun int2double (x: int): double = "mac#%" fun double_of_int (x: int): double = "mac#%" // (* ****** ****** *) // fun abs_double : double -> double = "mac#%" overload abs with abs_double of 100 // (* ****** ****** *) // fun neg_double : double -> double = "mac#%" overload ~ with neg_double of 100 overload neg with neg_double of 100 // (* ****** ****** *) // fun succ_double : double -> double = "mac#%" fun pred_double : double -> double = "mac#%" // overload succ with succ_double of 100 overload pred with pred_double of 100 // (* ****** ****** *) // fun add_int_double : (int, double) -> double = "mac#%" fun add_double_int : (double, int) -> double = "mac#%" // fun sub_int_double : (int, double) -> double = "mac#%" fun sub_double_int : (double, int) -> double = "mac#%" // fun mul_int_double : (int, double) -> double = "mac#%" fun mul_double_int : (double, int) -> double = "mac#%" // fun div_int_double : (int, double) -> double = "mac#%" fun div_double_int : (double, int) -> double = "mac#%" // (* ****** ****** *) overload + with add_int_double of 100 overload + with add_double_int of 100 overload - with sub_int_double of 100 overload - with sub_double_int of 100 overload * with mul_int_double of 100 overload * with mul_double_int of 100 overload / with div_int_double of 100 overload / with div_double_int of 100 (* ****** ****** *) typedef float_aop_type = (double, double) -> double (* ****** ****** *) // fun add_double_double: float_aop_type = "mac#%" fun sub_double_double : float_aop_type = "mac#%" fun mul_double_double : float_aop_type = "mac#%" fun div_double_double : float_aop_type = "mac#%" // (* ****** ****** *) // overload + with add_double_double of 100 overload - with sub_double_double of 100 overload * with mul_double_double of 100 overload / with div_double_double of 100 // (* ****** ****** *) // fun lt_int_double : (int, double) -> bool = "mac#%" fun lt_double_int : (double, int) -> bool = "mac#%" // fun lte_int_double : (int, double) -> bool = "mac#%" fun lte_double_int : (double, int) -> bool = "mac#%" // fun gt_int_double : (int, double) -> bool = "mac#%" fun gt_double_int : (double, int) -> bool = "mac#%" // fun gte_int_double : (int, double) -> bool = "mac#%" fun gte_double_int : (double, int) -> bool = "mac#%" // (* ****** ****** *) typedef float_cmp_type = (double, double) -> bool (* ****** ****** *) // fun lt_double_double: float_cmp_type = "mac#%" fun lte_double_double: float_cmp_type = "mac#%" fun gt_double_double: float_cmp_type = "mac#%" fun gte_double_double: float_cmp_type = "mac#%" // fun eq_double_double: float_cmp_type = "mac#%" fun neq_double_double: float_cmp_type = "mac#%" // (* ****** ****** *) // overload < with lt_double_double of 100 overload <= with lte_double_double of 100 overload > with gt_double_double of 100 overload >= with gte_double_double of 100 overload = with eq_double_double of 100 overload != with neq_double_double of 100 overload <> with neq_double_double of 100 // (* ****** ****** *) // fun compare_double_double (x1: double, x2: double): Sgn = "mac#%" // overload compare with compare_double_double of 100 // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/filebas.sats0000644000175000017500000000124113431250607025101 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2016-07: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) staload "./../basics_clj.sats" (* ****** ****** *) // (* val STDIN : CLJfilr = "mac#" val STDOUT : CLJfilr = "mac#" val STDERR : CLJfilr = "mac#" *) macdef STDIN = $extval (CLJfilr, "0") macdef STDOUT = $extval (CLJfilr, "1") macdef STDERR = $extval (CLJfilr, "2") // (* ****** ****** *) // fun stdin_get((*void*)): CLJfilr = "mac#%" fun stdout_get((*void*)): CLJfilr = "mac#%" fun stderr_get((*void*)) : CLJfilr = "mac#%" // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/CLJlist.sats0000644000175000017500000000306113431250607025002 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // // Clojure datatypes // staload "./../basics_clj.sats" // (* ****** ****** *) // fun CLJlist_nil {a:t0p}(): CLJlist(a) = "mac#%" // fun CLJlist_cons {a:t0p} ( x0: a, xs: CLJlist(INV(a)) ) : CLJlist(a) = "mac#%" // end-of-fun // (* ****** ****** *) // fun CLJlist_sing {a:t0p}(x: a): CLJlist(a) = "mac#%" // fun CLJlist_pair {a:t0p}(x1: a, x2: a): CLJlist(a) = "mac#%" // (* ****** ****** *) // fun CLJlist_make_elt {a:t0p}{n:nat} (n: int(n), x0: a): CLJlist(a) = "mac#%" // (* ****** ****** *) // fun CLJlist_is_nil {a:t0p}(CLJlist(INV(a))): bool = "mac#%" // fun CLJlist_is_cons {a:t0p}(CLJlist(INV(a))): bool = "mac#%" // fun CLJlist_isnot_nil {a:t0p}(CLJlist(INV(a))): bool = "mac#%" // (* ****** ****** *) // fun CLJlist_length {a:t0p}(xs: CLJlist(INV(a))): int = "mac#%" // (* ****** ****** *) // fun CLJlist2list {a:t0p}(CLJlist(INV(a))): List0(a) = "mac#%" fun CLJlist2list_rev {a:t0p}(CLJlist(INV(a))): List0(a) = "mac#%" // (* ****** ****** *) // fun CLJlist_oflist {a:t0p}(xs: List(INV(a))): CLJlist(a) = "mac#%" fun CLJlist_oflist_rev {a:t0p}(xs: List(INV(a))): CLJlist(a) = "mac#%" // (* ****** ****** *) // fun{a:t0p} CLJlist_sort_1 (xs: CLJlist(INV(a))): CLJlist(a) fun CLJlist_sort_2{a:t0p} ( xs: CLJlist(INV(a)), cmp: (a, a) - int ) : CLJlist(a) = "mac#%" // end-of-function // (* ****** ****** *) (* end of [CLJlist.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/list.sats0000644000175000017500000000130513431250607024450 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../basics_clj.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/list.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list (CLJfilr, List(INV(a))): void = "mac#%" // fun{} fprint_list$sep (out: CLJfilr): void = "mac#%" // fun{a:t0p} fprint_list_sep (CLJfilr, List(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list of 100 // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/list_vt.sats0000644000175000017500000000067013431250607025165 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../basics_clj.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/list_vt.sats" // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/stream_vt.sats0000644000175000017500000000070013431250607025477 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../basics_clj.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/stream_vt.sats" // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/integer.sats0000644000175000017500000001273113431250607025137 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // // HX: for signed integers // (* ****** ****** *) // fun abs_int0 : int - int = "mac#%" // fun abs_int1 : {i:int} (int(i)) - int(abs(i)) = "mac#%" // overload abs with abs_int0 of 100 overload abs with abs_int1 of 100 // (* ****** ****** *) // fun neg_int0 : int - int = "mac#%" // fun neg_int1 : {i:int} int(i) - int(~i) = "mac#%" // overload ~ with neg_int0 of 100 overload ~ with neg_int1 of 110 overload neg with neg_int0 of 100 overload neg with neg_int1 of 110 // (* ****** ****** *) // fun succ_int0 : int - int = "mac#%" fun pred_int0 : int - int = "mac#%" // fun succ_int1 : {i:int} int(i) - int(i+1) = "mac#%" fun pred_int1 : {i:int} int(i) - int(i-1) = "mac#%" // overload succ with succ_int0 of 100 overload pred with pred_int0 of 100 // overload succ with succ_int1 of 110 overload pred with pred_int1 of 110 // (* ****** ****** *) // fun half_int0 : int - int = "mac#%" fun half_int1 : {i:int} int(i) - int(i/2) = "mac#%" // overload half with half_int0 of 100 overload half with half_int1 of 110 // (* ****** ****** *) // fun add_int0_int0: (int, int) - int = "mac#%" fun sub_int0_int0 : (int, int) - int = "mac#%" fun mul_int0_int0 : (int, int) - int = "mac#%" fun div_int0_int0 : (int, int) - int = "mac#%" fun mod_int0_int0 : (int, int) - int = "mac#%" // fun add_int1_int1 : {i,j:int} (int(i), int(j)) - int(i+j) = "mac#%" fun sub_int1_int1 : {i,j:int} (int(i), int(j)) - int(i-j) = "mac#%" fun mul_int1_int1 : {i,j:int} (int(i), int(j)) - int(i*j) = "mac#%" fun div_int1_int1 : {i,j:int} (int(i), int(j)) - int(i/j) = "mac#%" // (* ****** ****** *) // overload + with add_int0_int0 of 100 overload - with sub_int0_int0 of 100 overload * with mul_int0_int0 of 100 overload / with div_int0_int0 of 100 overload % with mod_int0_int0 of 100 overload mod with mod_int0_int0 of 100 // overload + with add_int1_int1 of 120 overload - with sub_int1_int1 of 120 overload * with mul_int1_int1 of 120 overload / with div_int1_int1 of 120 // (* ****** ****** *) // fun nmod_int1_int1 { i,j:int | i >= 0; j > 0 } (i: int(i), j: int(j)): int(nmod(i, j)) = "mac#%" // (* ****** ****** *) // fun asl_int0_int1 : (int, intGte(0)) - int = "mac#%" fun asr_int0_int1 : (int, intGte(0)) - int = "mac#%" // (* ****** ****** *) // overload << with asl_int0_int1 of 110 overload >> with asr_int0_int1 of 110 // (* ****** ****** *) // fun lt_int0_int0: (int, int) - bool = "mac#%" fun lte_int0_int0: (int, int) - bool = "mac#%" fun gt_int0_int0: (int, int) - bool = "mac#%" fun gte_int0_int0: (int, int) - bool = "mac#%" // fun eq_int0_int0: (int, int) - bool = "mac#%" fun neq_int0_int0: (int, int) - bool = "mac#%" // fun compare_int0_int0: (int, int) - int = "mac#%" // (* ****** ****** *) // fun lt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i < j) = "mac#%" fun lte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i <= j) = "mac#%" fun gt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i > j) = "mac#%" fun gte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i >= j) = "mac#%" // fun eq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i == j) = "mac#%" fun neq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i != j) = "mac#%" // (* ****** ****** *) // overload < with lt_int0_int0 of 100 overload <= with lte_int0_int0 of 100 overload > with gt_int0_int0 of 100 overload >= with gte_int0_int0 of 100 overload = with eq_int0_int0 of 100 overload != with neq_int0_int0 of 100 overload <> with neq_int0_int0 of 100 // overload compare with compare_int0_int0 of 100 // (* ****** ****** *) // overload < with lt_int1_int1 of 120 overload <= with lte_int1_int1 of 120 overload > with gt_int1_int1 of 120 overload >= with gte_int1_int1 of 120 overload = with eq_int1_int1 of 120 overload != with neq_int1_int1 of 120 overload <> with neq_int1_int1 of 120 // (* ****** ****** *) // // HX: for unsigned integers // (* ****** ****** *) // fun add_uint0_uint0: (uint, uint) - uint = "mac#%" fun sub_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mul_uint0_uint0 : (uint, uint) - uint = "mac#%" fun div_uint0_uint0 : (uint, uint) - uint = "mac#%" fun mod_uint0_uint0 : (uint, uint) - uint = "mac#%" // (* ****** ****** *) // overload + with add_uint0_uint0 of 100 overload - with sub_uint0_uint0 of 100 overload * with mul_uint0_uint0 of 100 overload / with div_uint0_uint0 of 100 overload % with mod_uint0_uint0 of 100 overload mod with mod_uint0_uint0 of 100 // (* ****** ****** *) // fun lt_uint0_uint0: (uint, uint) - bool = "mac#%" fun lte_uint0_uint0: (uint, uint) - bool = "mac#%" fun gt_uint0_uint0: (uint, uint) - bool = "mac#%" fun gte_uint0_uint0: (uint, uint) - bool = "mac#%" // fun eq_uint0_uint0: (uint, uint) - bool = "mac#%" fun neq_uint0_uint0: (uint, uint) - bool = "mac#%" // fun compare_uint0_uint0: (uint, uint) - int = "mac#%" // (* ****** ****** *) // overload < with lt_uint0_uint0 of 100 overload <= with lte_uint0_uint0 of 100 overload > with gt_uint0_uint0 of 100 overload >= with gte_uint0_uint0 of 100 overload = with eq_uint0_uint0 of 100 overload != with neq_uint0_uint0 of 100 overload <> with neq_uint0_uint0 of 100 // overload compare with compare_uint0_uint0 of 100 // (* ****** ****** *) (* end of [integer.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/bool.sats0000644000175000017500000000260413431250607024433 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX: prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // fun bool2int0 (b: bool):<> natLt(2) = "mac#%" fun bool2int1 {b:bool} (b: bool(b)):<> int(bool2int(b)) = "mac#%" // symintr bool2int overload bool2int with bool2int0 of 100 overload bool2int with bool2int1 of 110 // (* ****** ****** *) // fun int2bool0 (i: int):<> bool = "mac#%" fun int2bool1 {i:int}(i: int(i)):<> bool(i != 0) = "mac#%" // symintr int2bool overload int2bool with int2bool0 of 100 overload int2bool with int2bool1 of 110 // (* ****** ****** *) // fun neg_bool0 : bool -> bool = "mac#%" fun neg_bool1 : {b:bool} bool(b) -> bool(~b) = "mac#%" // overload ~ with neg_bool0 of 100 overload ~ with neg_bool1 of 110 // overload not with neg_bool0 of 100 overload not with neg_bool1 of 110 // (* ****** ****** *) // fun eq_bool0_bool0 : (bool, bool) -> bool = "mac#%" fun neq_bool0_bool0 : (bool, bool) -> bool = "mac#%" // fun eq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 == b2) = "mac#%" fun neq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 != b2) = "mac#%" // overload = with eq_bool0_bool0 of 100 overload = with eq_bool1_bool1 of 120 // overload != with neq_bool0_bool0 of 100 overload != with neq_bool1_bool1 of 120 // (* ****** ****** *) (* end of [bool.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/qlistref.sats0000644000175000017500000000060313431250607025326 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/qlistref.sats" // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/reference.sats0000644000175000017500000000242513431250607025437 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/reference.sats" // (* ****** ****** *) // // HX: // linear references // (* ****** ****** *) // absvtype ref_vt0ype_vtype(a:vt@ype) = ptr vtypedef ref_vt(a:vt0p) = ref_vt0ype_vtype(a) // (* ****** ****** *) // fun ref_vt{a:vt0p}(x: a): ref_vt(a) = "mac#%" // fun ref_vt_make_elt{a:vt0p} (x: a): ref_vt(a) = "mac#%" // (* ****** ****** *) // fun ref_vt_get_elt{a:t0p} (r: !ref_vt a): a = "mac#%" fun ref_vt_set_elt{a:t0p} (r: !ref_vt a, x0: a): void = "mac#%" // fun ref_vt_exch_elt{a:vt0p} (r: !ref_vt a, x0: a): (a) = "mac#%" // (* ****** ****** *) overload [] with ref_vt_get_elt overload [] with ref_vt_set_elt (* ****** ****** *) // fun ref_vt_getfree_elt{a:t0p} (r: ref_vt(a)): a = "mac#%" // (* ****** ****** *) // absview ref_vt_takeout_v(a:vt@ype) // fun ref_vt_takeout {a:vt0p}(!ref_vt(a)): (ref_vt_takeout_v(a) | a) = "mac#%" fun ref_vt_addback {a:vt0p}(ref_vt_takeout_v(a) | !ref_vt(a), x0: a): void= "mac#%" // (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/slistref.sats0000644000175000017500000000060313431250607025330 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/slistref.sats" // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/option.sats0000644000175000017500000000066613431250607025016 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../basics_clj.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/option.sats" // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/funarray.sats0000644000175000017500000000064213431250607025327 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_clj.sats" // #include "{$LIBATSCC}/SATS/funarray.sats" // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/stream.sats0000644000175000017500000000067213431250607024776 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2016-06: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // staload "./../basics_clj.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/stream.sats" // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/print.sats0000644000175000017500000000326013431250607024633 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) staload "./../basics_clj.sats" (* ****** ****** *) // fun print_int : int -> void = "mac#%" fun print_bool : bool -> void = "mac#%" fun print_char : char -> void = "mac#%" fun print_double : double -> void = "mac#%" fun print_string : string -> void = "mac#%" // fun print_CLJval : (CLJval) -> void = "mac#%" // (* ****** ****** *) (* fun print_obj{a:t0p}(obj: a): void = "mac#%" *) (* ****** ****** *) overload print with print_int of 100 overload print with print_bool of 100 overload print with print_double of 100 overload print with print_string of 100 (* ****** ****** *) overload print with print_CLJval of 100 (* ****** ****** *) // fun {a:t0p} print_val (x: a): void = "mac#%" // (* ****** ****** *) // fun print_newline : ((*void*)) -> void = "mac#%" // (* ****** ****** *) // fun fprint_int : (CLJfilr, int) -> void = "mac#%" fun fprint_bool : (CLJfilr, bool) -> void = "mac#%" fun fprint_char : (CLJfilr, char) -> void = "mac#%" fun fprint_double : (CLJfilr, double) -> void = "mac#%" fun fprint_string : (CLJfilr, string) -> void = "mac#%" // fun fprint_CLJval : (CLJfilr, CLJval) -> void = "mac#%" // (* ****** ****** *) // overload fprint with fprint_int of 100 overload fprint with fprint_bool of 100 overload fprint with fprint_double of 100 overload fprint with fprint_string of 100 // (* ****** ****** *) // fun fprint_newline(out: CLJfilr): void = "mac#%" // (* ****** ****** *) // fun {a:t0p} fprint_val(out: CLJfilr, x0: a): void = "mac#%" // (* ****** ****** *) (* end of [print.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/gprint.sats0000644000175000017500000000066613431250607025011 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../basics_clj.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/gprint.sats" // (* ****** ****** *) (* end of [gprint.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/ML/0000755000175000017500000000000013431250607023112 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/ML/option0.sats0000644000175000017500000000107213431250607025376 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_clj.sats" // #include "{$LIBATSCC}/SATS/ML/option0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option0 (CLJfilr, option0(INV(a))): void = "mac#%" // overload fprint with fprint_option0 of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/SATS/ML/list0.sats0000644000175000017500000000132513431250607025042 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2016-07: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2cljpre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../../basics_clj.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/ML/list0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list0 (CLJfilr, list0(INV(a))): void = "mac#%" // fun{} fprint_list0$sep(out: CLJfilr): void = "mac#%" // fun{a:t0p} fprint_list0_sep (CLJfilr, list0(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list0 of 100 // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/ATS2-0.3.2/staloadall.hats0000644000175000017500000000256113431250607025035 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Clojure *) (* ****** ****** *) // // HX-2014-07 // (* ****** ****** *) // staload "./basics_clj.sats" staload _ = "./DATS/basics.dats" // (* ****** ****** *) // staload "./SATS/integer.sats" // (* ****** ****** *) // staload "./SATS/bool.sats" staload "./SATS/float.sats" // (* ****** ****** *) // staload "./SATS/print.sats" staload "./SATS/filebas.sats" // staload _(*anon*) = "./DATS/print.dats" // (* ****** ****** *) staload "./SATS/gprint.sats" staload _(*anon*) = "./DATS/gprint.dats" (* ****** ****** *) // (* staload "./SATS/intrange.sats" staload _(*anon*) = "./DATS/intrange.dats" *) // (* ****** ****** *) // staload "./SATS/list.sats" staload "./SATS/CLJlist.sats" // (* ****** ****** *) // staload "./SATS/stream.sats" staload "./SATS/stream_vt.sats" // (* ****** ****** *) staload "./SATS/intrange.sats" (* ****** ****** *) // staload "./SATS/reference.sats" // (* ****** ****** *) // staload _(*anon*) = "./DATS/list.dats" // staload _(*anon*) = "./DATS/CLJlist.dats" // staload _(*anon*) = "./DATS/stream.dats" // (* ****** ****** *) // staload "./SATS/slistref.sats" // list-based stack staload "./SATS/qlistref.sats" // list-based queue // (* ****** ****** *) staload "./SATS/ML/list0.sats" // un-indexed list staload _ = "./DATS/ML/list0.dats" // un-indexed list (* ****** ****** *) (* end of [staloadall.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2clj/.keeper0000644000175000017500000000000013431250607022123 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/0000755000175000017500000000000013431250607020741 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/CATS-parsemit0000777000175000017500000000000013431250607025747 2../CATS-parsemitustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/bin/0000755000175000017500000000000013431250607021511 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/bin/.gitkeep0000644000175000017500000000000013431250607023130 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/DATS/0000755000175000017500000000000013431250607021474 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/DATS/atscc2php_emit2.dats0000644000175000017500000005213013431250607025341 0ustar brandonbrandon(* ****** ****** *) // // Atscc2php: // from ATS to PHP // (* ****** ****** *) // // HX-2014-08-28: start // HX-2015-05-22: restructure // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) // extern fun emit_local : emit_type (i0de) // implement emit_local (out, name) = ( emit_DOLLAR (out); emit_i0de (out, name) ) (* end of [emit_local] *) // extern fun emit_global : emit_type (i0de) // implement emit_global (out, name) = ( emit_text (out, "$GLOBALS['"); emit_i0de (out, name); emit_text (out, "']") ) (* end of [emit_global] *) // (* ****** ****** *) // extern fun emit_tmpdeclst_initize ( out: FILEref, tds: tmpdeclst ) : void // end-of-fun // implement emit_tmpdeclst_initize (out, tds) = let // fun auxlst ( out: FILEref, tds: tmpdeclst ) : void = let in // case+ tds of | list_nil () => () | list_cons (td, tds) => ( case+ td.tmpdec_node of | TMPDECnone (tmp) => auxlst (out, tds) | TMPDECsome (tmp, _) => let val () = emit_nspc (out, 2(*ind*)) val () = ( // emit_text (out, "// "); emit_tmpvar(out, tmp); emit_text(out, " = NULL;\n") ) (* end of [val] *) in auxlst (out, tds) end // end of [TMPDECsome] ) (* end of [list_cons] *) // end // end of [auxlist] // in auxlst (out, tds) end // end of [emit_tmpdeclst_initize] // (* ****** ****** *) // extern fun the_tmpdeclst_get (): tmpdeclst extern fun the_tmpdeclst_set (tds: tmpdeclst): void // (* ****** ****** *) // local // val the_tmpdeclst = ref (list_nil) // in (* in-of-local *) implement the_tmpdeclst_get () = !the_tmpdeclst implement the_tmpdeclst_set (xs) = !the_tmpdeclst := xs end // end of [local] (* ****** ****** *) // extern fun emit2_instr (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_instr_ln (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_instrlst (out: FILEref, ind: int, inss: instrlst) : void // (* ****** ****** *) // extern fun emit2_ATSfunbodyseq (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_con1 (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_boxrec (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_delay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_lazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_ldelay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_llazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // // HX-2014-08: // this one should not be used for // emitting multiple-line instructions // implement emit_instr (out, ins) = emit2_instr (out, 0(*ind*), ins) // (* ****** ****** *) implement emit2_instr (out, ind, ins0) = let in // case+ ins0.instr_node of // | ATSif ( d0e, inss, inssopt ) => let val () = emit_nspc (out, ind) val () = emit_text (out, "if") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_text (out, " {\n") val () = emit2_instrlst (out, ind+2, inss) in case+ inssopt of | None _ => { val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} // endif") } (* end of [None] *) | Some (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "} else {\n") val () = emit2_instrlst (out, ind+2, inss) val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} // endif") } (* end of [Some] *) end // end of [ATSif] // | ATSifthen (d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "if(") val () = emit_d0exp (out, d0e) val ((*closing*)) = emit_text (out, ") ") val () = emit_instr (out, ins) } // | ATSifnthen (d0e, inss) => { // val-list_sing(ins) = inss // val () = emit_nspc (out, ind) val () = emit_text (out, "if(!") val () = emit_d0exp (out, d0e) val ((*closing*)) = emit_text (out, ") ") val () = emit_instr (out, ins) } // | ATSbranchseq (inss) => { // val () = emit_nspc (out, ind) val () = emit_text (out, "// ATSbranchseq_beg") // val () = emit_ENDL (out) val () = emit2_instrlst (out, ind, inss) // val () = emit_nspc (out, ind) val () = emit_text (out, "break;\n") // val () = emit_nspc (out, ind) val () = emit_text (out, "// ATSbranchseq_end") // } (* end of [ATSbranchseq] *) // | ATScaseofseq (inss) => { // val () = emit_nspc (out, ind) val () = emit_text (out, "// ATScaseofseq_beg") val () = emit_ENDL (out) val () = emit_nspc (out, ind) val () = emit_text (out, "do {\n") // val () = emit2_instrlst (out, ind+2, inss) // val () = emit_nspc (out, ind) val () = emit_text (out, "} while(0);\n") val () = emit_nspc (out, ind) val () = emit_text (out, "// ATScaseofseq_end") // } (* end of [ATScaseofseq] *) // | ATSreturn (tmp) => { val () = emit_nspc (out, ind) val () = ( emit_text (out, "return "); emit_tmpvar (out, tmp) ) (* end of [val] *) val () = emit_SEMICOLON (out) } | ATSreturn_void (tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, "return/*_void*/") val () = emit_SEMICOLON (out) } // | ATSINSlab (lab) => { val () = emit_nspc (out, ind) val () = ( emit_label (out, lab); emit_COLON (out) ) (* end of [val] *) } (* end of [ATSINSlab] *) // | ATSINSgoto (lab) => { val () = emit_nspc (out, ind) val () = ( emit_text (out, "goto "); emit_label (out, lab) ) (* end of [val] *) val () = emit_SEMICOLON (out) } (* end of [ATSINSgoto] *) // | ATSINSflab (flab) => { val () = emit_nspc (out, ind) val () = ( emit_label (out, flab); emit_COLON (out) ) (* end of [val] *) } (* end of [ATSINSflab] *) // | ATSINSfgoto (flab) => { val () = emit_nspc (out, ind) val () = ( emit_text (out, "goto "); emit_label (out, flab) ) (* end of [val] *) val () = emit_SEMICOLON (out) } (* end of [ATSINSfgoto] *) // | ATSINSfreeclo (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ") val () = emit_text (out, "ATSINSfreeclo") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSfreecon (d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ") val () = emit_text (out, "ATSINSfreecon") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } // | ATSINSmove (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = ( emit_text (out, " = "); emit_d0exp (out, d0e) ) (* end of [val] *) val () = emit_SEMICOLON (out) } (* end of [ATSINSmove] *) // | ATSINSmove_void (tmp, d0e) => { val () = emit_nspc (out, ind) val () = ( case+ d0e.d0exp_node of | ATSPMVempty _ => emit_text (out, "// ATSINSmove_void") // end of [ATSPMVempty] | _ (*non-ATSPMVempty*) => emit_d0exp (out, d0e) ) : void // end of [val] val () = emit_SEMICOLON (out) } (* end of [ATSINSmove_void] *) // | ATSINSmove_nil (tmp) => { val () = emit_nspc (out, ind) val () = ( emit_tmpvar(out, tmp); emit_text(out, " = NULL;") ) (* end of [val] *) } | ATSINSmove_con0 (tmp, tag) => { val () = emit_nspc(out, ind) val () = emit_tmpvar(out, tmp) val () = ( emit_text(out, " = "); emit_PMVint(out, tag); emit_SEMICOLON(out) ) (* end of [val] *) } // | ATSINSmove_con1 _ => emit2_ATSINSmove_con1 (out, ind, ins0) // | ATSINSmove_boxrec _ => emit2_ATSINSmove_boxrec (out, ind, ins0) // | ATSINSmove_delay _ => emit2_ATSINSmove_delay (out, ind, ins0) | ATSINSmove_lazyeval _ => emit2_ATSINSmove_lazyeval (out, ind, ins0) // | ATSINSmove_ldelay _ => emit2_ATSINSmove_ldelay (out, ind, ins0) | ATSINSmove_llazyeval _ => emit2_ATSINSmove_llazyeval (out, ind, ins0) // | ATStailcalseq (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ATStailcalseq_beg") val () = emit_ENDL (out) val () = emit2_instrlst (out, ind, inss) val () = emit_nspc (out, ind) val () = emit_text (out, "// ATStailcalseq_end") } (* end of [ATStailcalseq] *) // | ATSINSmove_tlcal (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e) val () = emit_SEMICOLON (out) } (* end of [ATSINSmove_tlcal] *) // | ATSINSargmove_tlcal (tmp1, tmp2) => { val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp1) val () = emit_text (out, " = ") val () = emit_tmpvar (out, tmp2) val () = emit_SEMICOLON (out) } (* end of [ATSINSargmove_tlcal] *) // | ATSINSextvar_assign (ext, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_d0exp (out, ext) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } | ATSINSdyncst_valbind (d2c, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_i0de (out, d2c) val () = emit_text (out, " = ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } // | ATSINScaseof_fail (errmsg) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINScaseof_fail") val () = emit_LPAREN (out) val () = emit_PMVstring (out, errmsg) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSdeadcode_fail (__tok__) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINSdeadcode_fail()") val () = emit_SEMICOLON (out) } // | ATSdynload (dummy) => { val () = emit_nspc (out, ind) val () = emit_text (out, "// ATSdynload()") } // | ATSdynloadset (flag) => { val () = emit_nspc (out, ind) val () = ( emit_global (out, flag); emit_text (out, " = 1 ; // dynflag is set") ) } // | ATSdynloadfcall (fcall) => { val () = emit_nspc (out, ind) val () = ( emit_tmpvar (out, fcall); emit_text (out, "(/*void*/) ; // dynloading") ) (* end of [val] *) } // | ATSdynloadflag_sta (flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, "// ATSdynloadflag_sta(", flag, ")") } | ATSdynloadflag_ext (flag) => { val () = emit_nspc (out, ind) val () = fprint! (out, "// ATSdynloadflag_ext(", flag, ")") } // | _ (*rest-of-instr*) => { val () = emit_nspc (out, ind) val ((*error*)) = fprint! (out, "UNRECOGNIZED-INSTRUCTION: ", ins0) } // end // end of [emit2_instr] (* ****** ****** *) implement emit2_instr_ln (out, ind, ins) = ( emit2_instr (out, ind, ins); emit_ENDL (out) ) (* end of [emit2_instr_ln] *) (* ****** ****** *) implement emit2_instrlst ( out, ind, inss ) = ( // case+ inss of | list_nil () => () | list_cons (ins, inss) => { val () = emit2_instr_ln (out, ind, ins) val () = emit2_instrlst (out, ind, inss) } // ) (* end of [emit2_instrlst] *) (* ****** ****** *) implement emit2_ATSfunbodyseq (out, ind, ins) = let // val-ATSfunbodyseq (inss) = ins.instr_node // in emit2_instrlst (out, ind, inss) end // end of [emit2_ATS2funbodyseq] (* ****** ****** *) implement emit2_ATSINSmove_con1 (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_con1_ofs (_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_con1 (inss) = ins0.instr_node // val-list_cons (ins, inss) = inss val-ATSINSmove_con1_new (tmp, _) = ins.instr_node // var opt: tokenopt = None() // val inss = ( case+ inss of | list_nil () => inss | list_cons (ins, inss2) => ( case+ ins.instr_node of | ATSINSstore_con1_tag (tmp, tag) => let val () = opt := Some(tag) in inss2 end // end of [ATSINSstore_con1_tag] | _ (*non-ATSINSstore_con1_tag*) => inss ) ) : instrlst // val d0es = getarglst (inss) val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_text (out, "array(") val () = ( case+ opt of | None () => () | Some (tag) => emit_PMVint (out, tag) ) : void // end of [val] val () = ( case+ opt of | None _ => emit_d0explst (out, d0es) | Some _ => emit_d0explst_1 (out, d0es) ) : void // end of [val] // val ((*closing*)) = emit_text (out, ");") // in // nothing end // end of [emit2_ATSINSmove_con1] (* ****** ****** *) implement emit2_ATSINSmove_boxrec (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_boxrec_ofs (_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_boxrec (inss) = ins0.instr_node // val-list_cons (ins, inss) = inss val-ATSINSmove_boxrec_new (tmp, _) = ins.instr_node // val d0es = getarglst (inss) // val () = emit_nspc (out, ind) val () = emit_tmpvar (out, tmp) val () = emit_text (out, " = ") val () = emit_text (out, "array(") val () = emit_d0explst (out, d0es) val ((*closing*)) = emit_text (out, ");") // in // nothing end // end of [emit2_ATSINSmove_boxrec] (* ****** ****** *) implement emit2_ATSINSmove_delay (out, ind, ins0) = let // val- ATSINSmove_delay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVlazyval("); emit_d0exp(out, thunk); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_delay] (* ****** ****** *) implement emit2_ATSINSmove_lazyeval (out, ind, ins0) = let // val- ATSINSmove_lazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVlazyval_eval("); emit_d0exp(out, lazyval); emit_text(out, "); ") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_lazyeval] (* ****** ****** *) implement emit2_ATSINSmove_ldelay (out, ind, ins0) = let // val- ATSINSmove_ldelay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVllazyval("); emit_d0exp(out, thunk); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_ldelay] (* ****** ****** *) implement emit2_ATSINSmove_llazyeval (out, ind, ins0) = let // val- ATSINSmove_llazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = ( emit_tmpvar(out, tmp); emit_text(out, " = ") ) (* end of [val] *) // val () = ( emit_text(out, "ATSPMVllazyval_eval("); emit_d0exp(out, lazyval); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_llazyeval] (* ****** ****** *) #define ATSEXTCODE_BEG "/* ATSextcode_beg() */" #define ATSEXTCODE_END "/* ATSextcode_end() */" (* ****** ****** *) implement emit_d0ecl (out, d0c) = let in // case+ d0c.d0ecl_node of // | D0Cinclude _ => () // | D0Cifdef _ => () | D0Cifndef _ => () // | D0Ctypedef (id, def) => typedef_insert (id.i0dex_sym, def) // end of [D0Ctypedef] // | D0Cassume (id) => { val () = emit_ENDL (out) val () = emit_text (out, "// ATSassume(") val () = ( emit_i0de (out, id); emit_text (out, ")\n") ) (* end of [val] *) } // | D0Cdyncst_mac _ => () | D0Cdyncst_extfun _ => () | D0Cdyncst_valdec _ => () | D0Cdyncst_valimp _ => () // | D0Cextcode (toks) => { val () = emit_ENDL (out) val () = emit_text (out, ATSEXTCODE_BEG) val () = emit_extcode (out, toks) // HX: verbatim output val () = emit_text (out, ATSEXTCODE_END) val ((*void*)) = emit_newline (out) } (* end of [D0Cextcode] *) // | D0Cstatmp (tmp, opt) => { val () = emit_ENDL (out) val () = ( case+ opt of | Some _ => () | None _ => () // emit_text(out, "/*\n") ) (* end of [val] *) val () = ( emit_tmpvar (out, tmp); emit_text(out, " = NULL;\n") ) (* end of [val] *) val () = ( case+ opt of | Some _ => () | None _ => () // emit_text(out, "*/\n") ) (* end of [val] *) } (* end of [D0Cstatmp] *) // | D0Cfundecl (fk, f0d) => emit_f0decl (out, f0d) // | D0Cclosurerize ( fl, env, arg, res ) => emit_closurerize (out, fl, env, arg, res) // | D0Cdynloadflag_init (flag) => ( // // HX-2015-05-22: // it is skipped as PHP does not have a link-time! // ) (* end of [D0Cdynloadflag_init] *) | D0Cdynloadflag_minit (flag) => ( emit_text (out, "// dynloadflag_minit\n"); emit_global (out, flag); emit_text (out, " = 0;\n") ) (* end of [D0Cdynloadflag_minit] *) // | D0Cdynexn_dec(idexn) => ( emit_text(out, "// dynexn_dec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_dec] *) | D0Cdynexn_extdec(idexn) => ( emit_text(out, "// dynexn_extdec("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_extdec] *) | D0Cdynexn_initize(idexn, fullname) => ( emit_text(out, "// dynexn_initize("); emit_i0de(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_initize] *) // end // end of [emit_d0ecl] (* ****** ****** *) // extern fun emit_f0arg : emit_type (f0arg) extern fun emit_f0marg : emit_type (f0marg) extern fun emit_f0head : emit_type (f0head) // extern fun emit_f0body : emit_type (f0body) extern fun emit_f0body_0 : emit_type (f0body) // (* ****** ****** *) implement emit_f0arg (out, f0a) = let in // case+ f0a.f0arg_node of // | F0ARGnone _ => emit_text (out, "**ERROR**") | F0ARGsome (arg, s0e) => emit_tmpvar (out, arg) // end // end of [emit_f0arg] (* ****** ****** *) implement emit_f0marg (out, f0ma) = let // fun loop ( out: FILEref, f0as: f0arglst, i: int ) : void = ( case+ f0as of | list_nil () => () | list_cons (f0a, f0as) => let val () = if i > 0 then emit_text (out, ", ") // end of [val] in emit_f0arg (out, f0a); loop (out, f0as, i+1) end // end of [list_cons] ) // in loop (out, f0ma.f0marg_node, 0) end // end of [emit_f0marg] (* ****** ****** *) implement emit_f0head (out, fhd) = let in // case+ fhd.f0head_node of | F0HEAD (fid, f0ma, res) => { // val () = emit_i0de (out, fid) // val () = emit_LPAREN (out) val () = emit_f0marg (out, f0ma) val () = emit_RPAREN (out) // } (* end of [F0HEAD] *) // end // end of [emit_f0head] (* ****** ****** *) implement emit_f0body (out, fbody) = let // val tmpdecs = f0body_get_tmpdeclst (fbody) val inss_body = f0body_get_bdinstrlst (fbody) // val () = the_tmpdeclst_set (tmpdecs) // val () = emit_text (out, "{\n") // val () = emit_text (out, "//\n") // val () = emit_tmpdeclst_initize (out, tmpdecs) // val () = emit_text (out, "//\n") // val ((*main*)) = emit_f0body_0 (out, fbody) // val ((*closing*)) = emit_text (out, "} // end-of-function\n") // in // nothing end (* end of [emit_f0body] *) (* ****** ****** *) implement emit_f0body_0 (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( case+ inss of // | list_nil () => () // | list_cons (ins0, inss1) => let val-list_cons(ins1, inss2) = inss1 val () = if i > 0 then emit_text (out, "//\n") val () = emit2_ATSfunbodyseq (out, 2(*ind*), ins0) val ((*return*)) = emit2_instr_ln (out, 2(*ind*), ins1) in auxlst (out, inss2, i+1) end // end of [list_cons] // ) (* end of [auxlst] *) // in // case+ fbody.f0body_node of // | F0BODY (tds, inss) => { val () = auxlst (out, inss, 0(*i*)) } // end // end of [emit_f0body_0] (* ****** ****** *) implement emit_f0decl (out, fdec) = let in // case+ fdec.f0decl_node of | F0DECLnone (fhd) => () | F0DECLsome (fhd, fbody) => { val () = emit_ENDL (out) val () = emit_text (out, "function") val () = emit_ENDL (out) val () = emit_f0head (out, fhd) val () = emit_ENDL (out) val () = emit_f0body (out, fbody) val () = emit_newline (out) } (* end of [F0DECLsome] *) // end // end of [emit_f0decl] (* ****** ****** *) implement emit_toplevel (out, d0cs) = let // fun loop ( out: FILEref, d0cs: d0eclist ) : void = ( // case+ d0cs of | list_nil () => () | list_cons (d0c, d0cs) => let val () = emit_d0ecl (out, d0c) in loop (out, d0cs) // end of [val] end // end of [list_cons] // ) // in loop (out, d0cs) end // end of [emit_toplevel] (* ****** ****** *) (* end of [atscc2php_emit2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/DATS/.keeper0000644000175000017500000000000013431250607022736 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/DATS/atscc2php_main.dats0000644000175000017500000002606013431250607025250 0ustar brandonbrandon(* ****** ****** *) // // Atscc2php: // from ATS to PHP // (* ****** ****** *) // // HX-2014-08-28: start // HX-2015-05-22: restructure // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // staload STDIO = "{$PATSLIBATSLIBC}/SATS/stdio.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_parsing.sats" // (* ****** ****** *) // val () = catsparse_all_dynload() where { extern fun catsparse_all_dynload(): void = "ext#" } (* end of [val] *) // (* ****** ****** *) #dynload "./atscc2php_emit.dats" #dynload "./atscc2php_emit2.dats" (* ****** ****** *) // datatype comarg = COMARGkey of (int, string) // typedef comarglst = List0 (comarg) // (* ****** ****** *) datatype waitkind = | WTKnone of () | WTKinput of () | WTKoutput of () // -o / --output // end of [waitkind] (* ****** ****** *) datatype OUTCHAN = | OUTCHANref of (FILEref) | OUTCHANptr of (FILEref) // end of [OUTCHAN] fun outchan_get_fileref (x: OUTCHAN): FILEref = ( // case+ x of | OUTCHANref(filr) => filr | OUTCHANptr(filp) => filp // ) (* end of [outchan_get_fileref] *) (* ****** ****** *) typedef cmdstate = @{ comarg0= comarg , ncomarg= int // number of arguments , waitkind= waitkind // number of processed input files; , ninputfile= int // waiting for STDIN if it is 0 , outchan= OUTCHAN // current output channel , nerror= int // number of accumulated errors } (* end of [cmdstate] *) (* ****** ****** *) fun cmdstate_set_outchan ( state: &cmdstate >> _, chan_new: OUTCHAN ) : void = let // val chan_old = state.outchan val ((*void*)) = state.outchan := chan_new // in // case+ chan_old of | OUTCHANref (filr) => () | OUTCHANptr (filp) => let val err = $STDIO.fclose0 (filp) in (*nothing*) end // end of [OUTCHANptr] // end // end of [cmdstate_set_outchan] (* ****** ****** *) // extern fun atscc2php_fileref (state: &cmdstate >> _, filr: FILEref): void // implement atscc2php_fileref (state, inp) = let // val out = outchan_get_fileref ( state.outchan ) (* end of [val] *) // val d0cs = parse_from_fileref(inp) // val () = emit_text (out, "\n") // val ((*flusing*)) = emit_flush (out) // in // nothing end // end of [atscc2php_fileref] (* ****** ****** *) // macdef fopen = $STDIO.fopen // extern fun atscc2php_basename ( state: &cmdstate >> _, fname: string ) : void // end-of-fun extern fun atscc2php_basename_ ( state: &cmdstate >> _, fname: string ) : void // end-of-fun // implement atscc2php_basename (state, fname) = ( case+ fname of | "-" => let val inp = stdin_ref in atscc2php_fileref(state, inp) end // end of [stdin] | _(*fname*) => atscc2php_basename_(state, fname) // end of [non-stdin] ) // implement atscc2php_basename_ (state, fname) = let // val inp = fopen(fname, file_mode_r) val p_inp = $STDIO.ptrcast(inp) // in // if p_inp > 0 then fileref_close(inp) where { // val inp = $UNSAFE.castvwtp0{FILEref}(inp) val () = the_filename_push(filename_make(fname)) // val () = atscc2php_fileref(state, inp) } (* end of [then] *) else let // prval ( // freed ) = $STDIO.FILEptr_free_null(inp) val ((*void*)) = (state.nerror := state.nerror + 1) // in // nothing end // end of [else] // end // end of [atscc2php_basename] (* ****** ****** *) fun cmdstate_set_outchan_basename ( state: &cmdstate >> _, basename: string ) : void = let // val filp = $STDIO.fopen (basename, file_mode_w) // val p_out = $STDIO.ptrcast(filp) // (* val () = println! ("cmdstate_set_outchan_basename: p0 = ", p0) *) // in // if p_out > 0 then let val filp = $UNSAFE.castvwtp0{FILEref}(filp) in cmdstate_set_outchan (state, OUTCHANptr (filp)) end // end of [then] else let prval ( // freed ) = $STDIO.FILEptr_free_null (filp) val ((*void*)) = state.nerror := state.nerror + 1 in cmdstate_set_outchan (state, OUTCHANref (stderr_ref)) end // end of [else] // end // end of [cmdstate_set_outchan_basename] (* ****** ****** *) // fn isinwait (state: cmdstate): bool = ( case+ state.waitkind of WTKinput () => true | _ => false ) (* end of [isinwait] *) // fn isoutwait (state: cmdstate): bool = ( case+ state.waitkind of WTKoutput () => true | _ => false ) (* end of [isoutwait] *) // (* ****** ****** *) // extern fun comarg_warning (msg: string): void // implement comarg_warning (msg) = { val () = prerr ("waring(ATS)") val () = prerr (": unrecognized command line argument [") val () = prerr (msg) val () = prerr ("] is ignored.") val () = prerr_newline ((*void*)) } (* end of [comarg_warning] *) // (* ****** ****** *) fun atscc2php_usage (cmd: string): void = { // val () = println! ( "Usage: ", cmd, " ... \n" ) val () = println! ( "where each is of one of the following forms:\n" ) // val () = println! (" -i : for processing ") val () = println! (" --input : for processing ") // val () = println! (" -o : output into ") val () = println! (" --output : output into ") // val () = println! (" -h : for printing out this help usage") val () = println! (" --help : for printing out this help usage") // } (* end of [atscc2php_usage] *) (* ****** ****** *) fun process_cmdline ( state: &cmdstate, arglst: comarglst ) : void = let in // case+ arglst of // | list_nil () => let val nif = state.ninputfile val wait0 = ( case+ 0 of | _ when nif < 0 => true | _ when nif = 0 => isinwait (state) | _ (* nif > 0 *) => false ) : bool // end of [val] in if wait0 then ( if state.ncomarg = 0 then atscc2php_usage ("atscc2php") else atscc2php_fileref (state, stdin_ref) ) (* end of [if] *) end // end of [list_nil] // | list_cons (arg, arglst) => let val () = state.ncomarg := state.ncomarg + 1 // end of [val] in process_cmdline2 (state, arg, arglst) end // end of [list_cons] // end // end of [process_cmdline] and process_cmdline2 ( state: &cmdstate, arg: comarg, arglst: comarglst ) : void = let in // case+ arg of // | _ when isinwait(state) => let val nif = state.ninputfile in case+ arg of | COMARGkey (1, key) when nif > 0 => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) when nif > 0 => process_cmdline2_COMARGkey2 (state, arglst, key) | COMARGkey (_, fname) => let val () = state.ninputfile := nif + 1 val () = atscc2php_basename (state, fname(*input*)) in process_cmdline (state, arglst) end // end of [COMARGkey] end // end of [_ when isinpwait] // | _ when isoutwait(state) => let // val COMARGkey (_, fname) = arg // val () = cmdstate_set_outchan_basename (state, fname) // val () = state.waitkind := WTKnone () // in process_cmdline (state, arglst) end // end of [_ when isoutwait] // | COMARGkey (1, key) => process_cmdline2_COMARGkey1 (state, arglst, key) | COMARGkey (2, key) => process_cmdline2_COMARGkey2 (state, arglst, key) // | COMARGkey (_, key) => let val () = comarg_warning (key) val () = state.waitkind := WTKnone () in process_cmdline (state, arglst) end // end of [COMARGkey] // end // end of [process_cmdline2] and process_cmdline2_COMARGkey1 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = ( // case+ key of // | "-i" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [-i] *) // | "-o" => { val () = state.waitkind := WTKoutput () } (* end of [-o] *) // | "-h" => { val () = atscc2php_usage ("atscc2php") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [-h] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey1] and process_cmdline2_COMARGkey2 ( state: &cmdstate >> _, arglst: comarglst, key: string ) : void = let // val () = state.waitkind := WTKnone () // val () = ( // case+ key of // | "--input" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [--input] *) // | "--output" => { val () = state.waitkind := WTKoutput () } (* end of [--output] *) // | "--help" => { val () = atscc2php_usage ("atscc2php") val () = state.waitkind := WTKnone(*void*) val () = if state.ninputfile < 0 then state.ninputfile := 0 } (* end of [--help] *) // | _ (*unrecognized*) => comarg_warning (key) // ) : void // end of [val] // in process_cmdline (state, arglst) end // end of [process_cmdline2_COMARGkey2] (* ****** ****** *) // extern fun comarg_parse (string):<> comarg // extern fun comarglst_parse{n:nat} (argc: int n, argv: !argv(n)): list (comarg, n) // end of [comarglst_parse] // (* ****** ****** *) implement comarg_parse (str) = let // fun loop {n,i:nat | i <= n} .. ( str: string n, n: int n, i: int i ) :<> comarg = ( if i < n then ( if (str[i] != '-') then COMARGkey (i, str) else loop (str, n, i+1) ) else COMARGkey (n, str) ) (* end of [if] *) // end of [loop] // val str = g1ofg0(str) val len = string_length (str) // in loop (str, sz2i(len), 0) end // end of [comarg_parse] (* ****** ****** *) implement comarglst_parse {n}(argc, argv) = let // fun loop {i,j:nat | i <= n} .. ( argv: !argv(n), i: int(i), res: list_vt(comarg, j) ) : list_vt (comarg, n-i+j) = ( if i < argc then let val res = list_vt_cons (comarg_parse (argv[i]), res) in loop (argv, i+1, res) end // end of [then] else res // end of [else] // end of [if] ) (* end of [loop] *) // val res = loop (argv, 0, list_vt_nil()) // in list_vt2t (list_vt_reverse (res)) end // end of [comarglst_parse] (* ****** ****** *) implement main0 (argc, argv) = { // val () = prerrln! ( "Hello from atscc2php!" ) (* end of [val] *) // // val arglst = comarglst_parse (argc, argv) // val+list_cons (arg0, arglst) = arglst // var state = @{ comarg0= arg0 , ncomarg= 0 // counting from 0 , waitkind= WTKnone () // number of prcessed , ninputfile= ~1 // input files , outchan= OUTCHANref (stdout_ref) , nerror= 0 // number of accumulated errors } : cmdstate // end of [var] // val () = process_cmdline (state, arglst) // val () = if state.nerror = 1 then let val () = prerrln! ("atscc2php: there is a reported error.") in // nothing end // end of [then] else if state.nerror >= 2 then let val () = prerrln! ("atscc2php: there are some reported errors.") in // nothing end // end of [then] else () // end of [else] // (* val () = prerrln! ("Good-bye from atscc2php!") *) // } (* end of [main0] *) (* ****** ****** *) (* end of [atscc2php_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/DATS/atscc2php_emit.dats0000644000175000017500000003561113431250607025264 0ustar brandonbrandon(* ****** ****** *) // // Atscc2php: // from ATS to PHP // (* ****** ****** *) // // HX-2014-08-28: start // HX-2015-05-22: restructure // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) local // staload TM = "libats/libc/SATS/time.sats" // typedef time_t = $TM.time_t // in (* in-of-local *) implement emit_time_stamp (out) = let // var tm: time_t val () = tm := $TM.time_get () val (pfopt | p_tm) = $TM.localtime (tm) // val () = emit_text (out, "/*\n"); val () = emit_text (out, "**\n"); val () = emit_text (out, "** The PHP code is generated by atscc2php\n") val () = emit_text (out, "** The starting compilation time is: ") // val () = if p_tm > 0 then let prval Some_v @(pf1, fpf1) = pfopt val tm_min = $TM.tm_get_min (!p_tm) val tm_hour = $TM.tm_get_hour (!p_tm) val tm_mday = $TM.tm_get_mday (!p_tm) val tm_mon = 1 + $TM.tm_get_mon (!p_tm) val tm_year = 1900 + $TM.tm_get_year (!p_tm) prval () = fpf1 (pf1) in $extfcall ( void , "fprintf" , out, "%i-%i-%i: %2ih:%2im\n", tm_year, tm_mon, tm_mday, tm_hour, tm_min ) end // end of [then] else let prval None_v () = pfopt in emit_text (out, "**TIME-ERROR**\n") end // end of [else] // val () = emit_text (out, "**\n") val () = emit_text (out, "*/\n") // in // emit_newline (out) end // end of [emit_time_stamp] end // end of [local] (* ****** ****** *) implement emit_PMVint (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVint] // implement emit_PMVintrep (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text(out, rep) end // end of [emit_PMVintrep] // (* ****** ****** *) implement emit_PMVbool (out, tfv) = ( emit_text ( out , if tfv then "true" else "false" ) (* emit_text *) ) (* end of [emit_PMVbool] *) (* ****** ****** *) implement emit_PMVfloat (out, tok) = let // val- T_FLOAT(_, rep) = tok.token_node in emit_text(out, rep) end // end of [emit_PMVfloat] (* ****** ****** *) implement emit_PMVstring (out, tok) = let // (* (** Dollar signs inject vars into php strings: they need to be escaped. Curly brackets are also live, but they should cause no issues so long as dollar signs are escaped. --m88 **) fun emit_php_string{n:nat} .. (out: FILEref, str: string n) : void = if string_isnot_empty(str) then case+ str.head() of | '$' => (fprint_string(out,"\\$"); emit_php_string(out,str.tail())) | c => (fileref_putc(out,c); emit_php_string(out,str.tail())) else () *) // val- T_STRING(rep) = tok.token_node // in // ignoret ( string_foreach<>(g1ofg0(rep)) ) where { implement (env)//tmp string_foreach$fwork (c0, env) = ( ifcase | c0 = '$' => fprint(out, "\\$") | _(*else*) => fprint_char(out, c0) ) } // end // end of [emit_PMVstring] (* ****** ****** *) implement emit_PMVi0nt (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_PMVi0nt] (* ****** ****** *) implement emit_PMVf0loat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text(out, rep) end // end of [emit_PMVf0loat] (* ****** ****** *) // implement emit_PMVempty (out, _) = { // val () = emit_text(out, "NULL") // } (* emit_PMVempty *) // implement emit_PMVextval (out, toks) = { // val () = emit_tokenlst(out, toks) // } (* emit_PMVextval *) // (* ****** ****** *) // implement emit_PMVfunlab (out, flab) = { val () = emit_label(out, flab) } // (* ****** ****** *) implement emit_PMVcfunlab (out, fl, d0es) = { // val () = emit_label(out, fl) val () = emit_text(out, "__closurerize") // val () = emit_LPAREN(out) val () = emit_d0explst(out, d0es) val () = emit_RPAREN(out) // } (* end of [emit_PMVcfunlab] *) (* ****** ****** *) implement emit_CSTSPmyloc (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_CSTSPmyloc] (* ****** ****** *) // extern fun emit_fname_d0exp : (FILEref, string, d0exp) -> void extern fun emit_fname_d0exp2 : (FILEref, string, d0exp, d0exp) -> void // implement emit_fname_d0exp (out, fname, d0e) = { // val () = emit_text(out, fname) // val () = emit_LPAREN(out) val () = emit_d0exp(out, d0e) val () = emit_RPAREN(out) // } (* end of [emit_fname_d0exp] *) // implement emit_fname_d0exp2 (out, fname, d0e1, d0e2) = { // val () = emit_text(out, fname) // val () = emit_LPAREN(out) val () = ( emit_d0exp(out, d0e1); emit_text(out, ", "); emit_d0exp(out, d0e2) ) val () = emit_RPAREN(out) // } (* end of [emit_fname_d0exp2] *) // (* ****** ****** *) // implement emit_ATSCKiseqz (out, d0e) = emit_fname_d0exp(out, "ATSCKiseqz", d0e) implement emit_ATSCKisneqz (out, d0e) = emit_fname_d0exp(out, "ATSCKisneqz", d0e) // (* ****** ****** *) // implement emit_ATSCKptriscons (out, d0e) = emit_fname_d0exp(out, "ATSCKptriscons", d0e) implement emit_ATSCKptrisnull (out, d0e) = emit_fname_d0exp(out, "ATSCKptrisnull", d0e) // (* ****** ****** *) // implement emit_ATSCKpat_int (out, d0e, i0) = emit_fname_d0exp2(out, "ATSCKpat_int", d0e, i0) implement emit_ATSCKpat_bool (out, d0e, b0) = emit_fname_d0exp2(out, "ATSCKpat_bool", d0e, b0) implement emit_ATSCKpat_string (out, d0e, s0) = emit_fname_d0exp2(out, "ATSCKpat_string", d0e, s0) // (* ****** ****** *) implement emit_ATSCKpat_con0 (out, d0e, ctag) = { // val () = emit_text (out, "ATSCKpat_con0") // end of [val] val () = emit_LPAREN(out) val () = ( emit_d0exp(out, d0e); emit_text(out, ", "); emit_int(out, ctag) ) (* end of [val] *) val () = emit_RPAREN(out) // } (* end of [emit_ATSCKpat_con0] *) implement emit_ATSCKpat_con1 (out, d0e, ctag) = { // val () = emit_text (out, "ATSCKpat_con1") // end of [val] val () = emit_LPAREN(out) val () = ( emit_d0exp(out, d0e); emit_text(out, ", "); emit_int(out, ctag) ) (* end of [val] *) val () = emit_RPAREN(out) // } (* end of [emit_ATSCKpat_con1] *) (* ****** ****** *) // implement emit_tmpvar (out, tmp) = let // val isloc = tmpvar_is_local(tmp.i0dex_sym) // in // if ( isloc ) then ( emit_DOLLAR(out); emit_i0de(out, tmp) ) else ( emit_text(out, "$GLOBALS['"); emit_i0de(out, tmp); emit_text (out, "']") ) (* end of [if] *) // end (* end of [emit_tmpvar] *) // (* ****** ****** *) implement emit_d0exp (out, d0e0) = let // (* val () = println! ("emit_d0exp: d0e0 = ", d0e0) *) // in // case+ d0e0.d0exp_node of (* case+ *) // | D0Eide (tmp) => { val () = emit_tmpvar(out, tmp) } // | D0Eappid (fid, d0es) => { val () = emit_i0de(out, fid) // val () = emit_LPAREN(out) val () = emit_d0explst(out, d0es) val () = emit_RPAREN(out) // } | D0Eappexp (d0e, d0es) => { val () = emit_d0exp(out, d0e) val () = emit_LPAREN(out) val () = emit_d0explst(out, d0es) val () = emit_RPAREN(out) } // | D0Elist (d0es) => { val () = emit_text(out, "D0Elist") val () = emit_LPAREN(out) val () = emit_d0explst(out, d0es) val () = emit_RPAREN(out) } // | ATSPMVint(int) => { val () = emit_PMVint(out, int) } | ATSPMVintrep(int) => { val () = emit_PMVintrep(out, int) } // | ATSPMVbool(tfv) => { val () = emit_PMVbool(out, tfv) } // | ATSPMVfloat(flt) => { val () = emit_PMVfloat(out, flt) } // | ATSPMVstring(str) => { val () = emit_PMVstring(out, str) } // | ATSPMVi0nt(int) => { val () = emit_PMVi0nt(out, int) } | ATSPMVf0loat(flt) => { val () = emit_PMVf0loat(out, flt) } // | ATSPMVempty(x) => { val () = emit_PMVempty(out, 0) } // | ATSPMVextval(toks) => { val () = emit_PMVextval(out, toks) } // | ATSPMVrefarg0(d0e) => { val () = emit_d0exp(out, d0e) } | ATSPMVrefarg1(d0e) => { val () = emit_d0exp(out, d0e) } // | ATSPMVfunlab(flab) => { val () = emit_SQUOTE(out) val () = emit_PMVfunlab(out, flab) val () = emit_SQUOTE(out) } (* end of [ATSPMVfunlab] *) // | ATSPMVcfunlab (_(*knd*), flab, d0es) => { val () = emit_PMVcfunlab(out, flab, d0es) } (* end of [ATSPMVcfunlab] *) // | ATSPMVcastfn ( _(*fid*), _(*s0e*), arg ) => { val () = emit_d0exp(out, arg) } // | ATSCSTSPmyloc (tok) => emit_CSTSPmyloc(out, tok) // | ATSCKpat_int (d0e, int) => emit_ATSCKpat_int(out, d0e, int) | ATSCKpat_bool (d0e, bool) => emit_ATSCKpat_bool(out, d0e, bool) | ATSCKpat_string (d0e, string) => emit_ATSCKpat_string(out, d0e, string) // | ATSCKpat_con0 (d0e, ctag) => emit_ATSCKpat_con0(out, d0e, ctag) | ATSCKpat_con1 (d0e, ctag) => emit_ATSCKpat_con1(out, d0e, ctag) // | ATSCKiseqz(d0e) => emit_ATSCKiseqz(out, d0e) | ATSCKisneqz(d0e) => emit_ATSCKisneqz(out, d0e) | ATSCKptriscons(d0e) => emit_ATSCKptriscons(out, d0e) | ATSCKptrisnull(d0e) => emit_ATSCKptrisnull(out, d0e) // | ATSSELcon _ => emit_SELcon(out, d0e0) | ATSSELrecsin _ => emit_SELrecsin(out, d0e0) | ATSSELboxrec _ => emit_SELboxrec(out, d0e0) | ATSSELfltrec _ => emit_text(out, "ATSSELfltrec(...)") // | ATSextfcall (_fun, _arg) => { // val () = emit_i0de(out, _fun) // val () = emit_d0exparg(out, _arg) // } (* end of [ATSextfcall] *) | ATSextmcall (_obj, _mtd, _arg) => { // val () = emit_d0exp(out, _obj) val () = emit_text( out, "->" ) val () = emit_d0exp(out, _mtd) // val () = emit_d0exparg (out, _arg) // } (* end of [ATSextmcall] *) // | ATSfunclo_fun (d0e, _(*arg*), _(*res*)) => { val () = ( case+ d0e.d0exp_node of (* case+ *) | ATSPMVfunlab(fl) => emit_PMVfunlab(out, fl) | _(*non-ATSPMVfunlab*) => emit_d0exp(out, d0e) ) (* end of [val] *) } | ATSfunclo_clo (d0e, _(*arg*), _(*res*)) => ( emit_d0exp(out, d0e); emit_LBRACKET(out); emit_int(out, 0(*fun*)); emit_RBRACKET(out) ) (* end of [ATSfunclo_clo] *) // end // end of [emit_d0exp] (* ****** ****** *) local fun loop ( out: FILEref , d0es: d0explst, i: int ) : void = ( case+ d0es of | list_nil() => () | list_cons (d0e, d0es) => let val () = if i > 0 then emit_text(out, ", ") // end of [val] in emit_d0exp(out, d0e); loop(out, d0es, i+1) end // end of [list_cons] ) in (* in-of-local *) implement emit_d0explst(out, d0es) = loop(out, d0es, 0) implement emit_d0explst_1(out, d0es) = loop(out, d0es, 1) end // end of [local] (* ****** ****** *) implement emit_d0exparg (out, d0es) = { // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_d0exparg] *) (* ****** ****** *) // extern fun tyrec_labsel (tyrec: tyrec, lab: symbol): int // implement tyrec_labsel (tyrec, lab) = let // fun loop ( xs: tyfldlst, i: int ) : int = ( case+ xs of | list_cons(x, xs) => let val+TYFLD(id, s0e) = x.tyfld_node in if lab = id.i0dex_sym then i else loop (xs, i+1) end // end of [list_cons | list_nil((*void*)) => ~1(*error*) ) // in loop(tyrec.tyrec_node, 0) end // end of [tyrec_labsel] // (* ****** ****** *) implement emit_SELcon (out, d0e) = let // val- ATSSELcon (d0rec, s0e, id) = d0e.d0exp_node // val-S0Eide (name) = s0e.s0exp_node val-~Some_vt (s0rec) = typedef_search_opt (name) // val index = tyrec_labsel (s0rec, id.i0dex_sym) // val () = emit_d0exp (out, d0rec) // val () = emit_LBRACKET (out) val () = emit_int (out, index) val () = emit_RBRACKET (out) // in // nothing end // end of [emit_SELcon] (* ****** ****** *) implement emit_SELrecsin (out, d0e) = let // val- ATSSELrecsin (d0rec, s0e, id) = d0e.d0exp_node // in emit_d0exp (out, d0rec) end // end of [emit_SELrecsin] (* ****** ****** *) implement emit_SELboxrec (out, d0e) = let // val- ATSSELboxrec (d0rec, s0e, id) = d0e.d0exp_node // val-S0Eide (name) = s0e.s0exp_node val-~Some_vt (s0rec) = typedef_search_opt (name) // val index = tyrec_labsel (s0rec, id.i0dex_sym) // val () = emit_d0exp (out, d0rec) // val () = emit_LBRACKET (out) val () = emit_int (out, index) val () = emit_RBRACKET (out) // in // nothing end // end of [emit_SELboxrec] (* ****** ****** *) // implement emit_COMMENT_line (out, tok) = emit_text (out, "// COMMENT_line(...)\n") // implement emit_COMMENT_block (out, tok) = emit_text (out, "// COMMENT_block(...)\n") // (* ****** ****** *) local fun aux0_arglst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "$arg"); emit_int (out, i) ) (* end of [val] *) in aux0_arglst (out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_arglst] *) fun aux0_envlst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "$env"); emit_int (out, i) ) (* end of [val] *) in aux0_envlst (out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_envlst] *) fun aux1_envlst ( out: FILEref , s0es: s0explst, i: int ) : int = ( case+ s0es of | list_nil () => (i) | list_cons (s0e, s0es) => let val () = if i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "$cenv"); emit_LBRACKET (out); emit_int (out, i+1); emit_RBRACKET (out) ) (* end of [val] *) in aux1_envlst (out, s0es, i+1) end // end of [list_cons] ) (* end of [aux1_envlst] *) in (* in-of-local *) implement emit_closurerize ( out, fl, env, arg, res ) = let // val-S0Elist(s0es_env) = env.s0exp_node val-S0Elist(s0es_arg) = arg.s0exp_node // val () = emit_text (out, "function\n") val () = emit_label (out, fl) val () = emit_text (out, "__closurerize(") val () = aux0_envlst (out, s0es_env, 0, 0) val ((*closing*)) = emit_text (out, ")\n") // val ((*opening*)) = emit_text (out, "{\n") // val () = emit_nspc (out, 2) val () = emit_text (out, "return ") val () = emit_text (out, "array(") val () = emit_text (out, "function(") // val () = emit_text (out, "$cenv") val () = aux0_arglst (out, s0es_arg, 1, 0) // val () = emit_text (out, ") { return ") // val () = emit_label (out, fl) val () = emit_LPAREN (out) val n0 = aux1_envlst (out, s0es_env, 0) val () = aux0_arglst (out, s0es_arg, n0, 0) val () = emit_RPAREN (out) // val ((*closing*)) = emit_text (out, "; }") // val () = aux0_envlst (out, s0es_env, 1, 0) val ((*closing*)) = emit_text (out, ");\n}\n") // val () = emit_newline (out) // in // nothing end // end of [emit_closurerize] end // end of [local] (* ****** ****** *) (* end of [atscc2php_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/Makefile0000644000175000017500000000216113431250607022401 0ustar brandonbrandon# # A simple Makefile # ###### MAKE=make ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### all:: ###### CATSPARSEMIT=./CATS-parsemit ###### SOURCES_DATS := SOURCES_DATS += DATS/atscc2php_main.dats SOURCES_DATS += DATS/atscc2php_emit.dats SOURCES_DATS += DATS/atscc2php_emit2.dats SOURCES_SATS := SOURCES_SATS += $(CATSPARSEMIT)/SATS/catsparse.sats SOURCES_CATS := SOURCES_CATS += $(CATSPARSEMIT)/CATS/catsparse_all_dats.c ###### # all:: ; \ $(MAKE) -C CATS-parsemit all # ###### # all:: \ bin_atscc2php bin_atscc2php: \ $(SOURCES_DATS); \ $(PATSCC) \ -DATS_MEMALLOC_GCBDW -O2 -o bin/atscc2php \ $(SOURCES_DATS) $(SOURCES_SATS) $(SOURCES_CATS) -lgc # ###### # npm:: bin_atscc2php npm:: ; $(CPF) catsparse_sats.c atscc2php_*_dats.c npm/CATS/. # ###### CPF=cp -f RMF=rm -f ###### # testall:: all testall:: cleanall # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) *_?ats.c ###### # cleanall:: clean # cleanall:: ; $(RMF) ./bin/atscc2php cleanall:: ; $(RMF) ./npm/CATS/catsparse_sats.c cleanall:: ; $(RMF) ./npm/CATS/atscc2php_*_dats.c # ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2php/.keeper0000644000175000017500000000000013431250607022203 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/0000755000175000017500000000000013431250607020562 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/CATS-parsemit0000777000175000017500000000000013431250607025570 2../CATS-parsemitustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/bin/0000755000175000017500000000000013431250607021332 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/bin/.gitkeep0000644000175000017500000000000013431250607022751 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/DATS/0000755000175000017500000000000013431250607021315 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/DATS/atscc2r34_main.dats0000644000175000017500000002664113431250607024717 0ustar brandonbrandon(* ****** ****** *) // // Atscc2r34: // from ATS to R(stat) // (* ****** ****** *) // // HX-2015-09-28: // copy from atscc2js // (* ****** ****** *) // #define ATS_DYNLOADNAME "libatscc2r34_dynload" // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) // #staload STDIO = "{$PATSLIBATSLIBC}/SATS/stdio.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_parsing.sats" // (* ****** ****** *) // val () = catsparse_all_dynload() where { // extern fun catsparse_all_dynload(): void = "ext#" // } (* end of [val] *) // (* ****** ****** *) #dynload "./atscc2r34_emit.dats" #dynload "./atscc2r34_emit2.dats" (* ****** ****** *) // datatype comarg = COMARG of (int, string) // typedef comarglst = List0(comarg) // (* ****** ****** *) datatype waitkind = | WTKnone of () | WTKinput of () | WTKoutput of () // -o / --output // end of [waitkind] (* ****** ****** *) // datatype OUTCHAN = | OUTCHANref of (FILEref) | OUTCHANptr of (FILEref) // end of [OUTCHAN] // (* ****** ****** *) fun outchan_get_fileref (x: OUTCHAN): FILEref = ( // case+ x of | OUTCHANref(filr) => filr | OUTCHANptr(filr) => filr // ) (* end of [outchan_get_fileref] *) (* ****** ****** *) typedef cmdstate = @{ comarg0= comarg , ncomarg= int // number of arguments , waitkind= waitkind // number of processed input files; , ninputfile= int // waiting for STDIN if it is 0 , outchan= OUTCHAN // current output channel , nerror= int // number of accumulated errors } (* end of [cmdstate] *) (* ****** ****** *) fun cmdstate_set_outchan ( state: &cmdstate >> _, chan_new: OUTCHAN ) : void = let // val chan_old = state.outchan val ((*void*)) = state.outchan := chan_new // in // case+ chan_old of | OUTCHANref(filr) => () | OUTCHANptr(filp) => let val err = $STDIO.fclose0(filp) in (*nothing*) end // end of [OUTCHANptr] // end // end of [cmdstate_set_outchan] (* ****** ****** *) // extern fun atscc2r34_fileref (state: &cmdstate >> _, filr: FILEref): void // implement atscc2r34_fileref (state, inp) = let // val oc = state.outchan val out = outchan_get_fileref(oc) // val d0cs = parse_from_fileref(inp) // val () = emit_time_stamp(out) // val ((*void*)) = emit_toplevel(out, d0cs) // val () = emit_text (out, "\n## ###### ###### ##\n") val () = emit_text (out, "\n## end-of-compilation-unit ##\n") // val ((*flusing*)) = emit_newline(out) // in // nothing end // end of [atscc2r34_fileref] (* ****** ****** *) // macdef fopen = $STDIO.fopen // extern fun atscc2r34_basename ( state: &cmdstate >> _, fname: string ) : void // end-of-fun extern fun atscc2r34_basename_ ( state: &cmdstate >> _, fname: string ) : void // end-of-fun // implement atscc2r34_basename (state, fname) = ( case+ fname of | "-" => let val inp = stdin_ref in atscc2r34_fileref(state, inp) end // end of [stdin] | _(*fname*) => atscc2r34_basename_(state, fname) // end of [non-stdin] ) // implement atscc2r34_basename_ (state, fname) = let // val inp = fopen(fname, file_mode_r) val p_inp = $STDIO.ptrcast(inp) // in // if p_inp > 0 then fileref_close(inp) where { // val inp = $UNSAFE.castvwtp0{FILEref}(inp) val () = the_filename_push(filename_make(fname)) // val () = atscc2r34_fileref(state, inp) // } (* end of [then] *) else let // prval ( // freed ) = $STDIO.FILEptr_free_null(inp) val ((*void*)) = (state.nerror := state.nerror + 1) // in // nothing end // end of [else] // end // end of [atscc2r34_basename_] (* ****** ****** *) fun cmdstate_set_outchan_basename ( state: &cmdstate >> _, basename: string ) : void = let // val filp = $STDIO.fopen (basename, file_mode_w) val p_out = $STDIO.ptrcast(filp) // (* val () = println! ("cmdstate_set_outchan_basename: p0 = ", p0) *) // in // if p_out > 0 then let val filp = $UNSAFE.castvwtp0{FILEref}(filp) in cmdstate_set_outchan(state, OUTCHANptr(filp)) end // end of [then] else let prval ( // freed ) = $STDIO.FILEptr_free_null(filp) val ((*void*)) = state.nerror := state.nerror + 1 in cmdstate_set_outchan(state, OUTCHANref(stderr_ref)) end // end of [else] // end // end of [cmdstate_set_outchan_basename] (* ****** ****** *) // fn isinwait (state: cmdstate): bool = ( case+ state.waitkind of WTKinput() => true | _ => false ) (* end of [isinwait] *) // fn isoutwait (state: cmdstate): bool = ( case+ state.waitkind of WTKoutput() => true | _ => false ) (* end of [isoutwait] *) // (* ****** ****** *) // extern fun comarg_warning (msg: string): void // implement comarg_warning (msg) = { val () = prerr("waring(ATS)") val () = prerr(": unrecognized command line argument [") val () = prerr(msg) val () = prerr("] is ignored.") val () = prerr_newline((*void*)) } (* end of [comarg_warning] *) // (* ****** ****** *) fun atscc2r34_usage (cmd: string): void = { // val () = println! ( "Usage: ", cmd, " ... \n" ) val () = println! ( "where each is of one of the following forms:\n" ) // val () = println! (" -i : for processing ") val () = println! (" --input : for processing ") // val () = println! (" -o : output into ") val () = println! (" --output : output into ") // val () = println! (" -h : for printing out this help usage") val () = println! (" --help : for printing out this help usage") // } (* end of [atscc2r34_usage] *) (* ****** ****** *) fun process_cmdline ( state: &cmdstate, arglst: comarglst ) : void = let in // case+ arglst of // | list_nil ((*void*)) => let val nif = state.ninputfile // end of [val] val wait0 = ( case+ 0 of | _ when nif < 0 => true | _ when nif = 0 => isinwait(state) | _ (* nif > 0 *) => false ) : bool // end of [val] in if wait0 then ( if state.ncomarg = 0 then atscc2r34_usage("atscc2r34") else atscc2r34_fileref(state, stdin_ref) // end of [if] ) (* end of [if] *) end // end of [list_nil] // | list_cons (arg, arglst) => let val () = state.ncomarg := state.ncomarg + 1 // end of [val] in process_cmdline2(state, arg, arglst) end // end of [list_cons] // end // end of [process_cmdline] and process_cmdline2 ( state: &cmdstate, arg: comarg, arglst: comarglst ) : void = let in // case+ arg of // | _ when isoutwait(state) => let // val COMARG(_, fname) = arg // val () = cmdstate_set_outchan_basename(state, fname) // val () = state.waitkind := WTKnone((*void*)) // in process_cmdline(state, arglst) end // end of [_ when isoutwait] // | _ when isinwait(state) => let val nif = state.ninputfile in case+ arg of | COMARG(1, key) when nif > 0 => process_cmdline2_comarg1(state, arglst, key) | COMARG(2, key) when nif > 0 => process_cmdline2_comarg2(state, arglst, key) | COMARG(_, fname) => process_cmdline(state, arglst) where { val () = state.ninputfile := nif + 1 val () = atscc2r34_basename(state, fname(*input*)) } (* end of [COMARG(_, _)] *) end // end of [_ when isinpwait] // | COMARG(1, key) => process_cmdline2_comarg1(state, arglst, key) | COMARG(2, key) => process_cmdline2_comarg2(state, arglst, key) // | COMARG(_, key) => process_cmdline(state, arglst) where { val () = comarg_warning(key) val () = state.waitkind := WTKnone((*void*)) } // end of [COMARG(_, _)] // end // end of [process_cmdline2] and process_cmdline2_comarg1 ( state: &cmdstate >> _ , arglst: comarglst, key: string ) : void = let // val () = ( // case+ key of // | "-i" => { val () = (state.ninputfile := 0) // end of [val] val () = state.waitkind := WTKinput() } (* end of [-i] *) // | "-o" => { val () = state.waitkind := WTKoutput() } (* end of [-o] *) // | "-h" => { val () = atscc2r34_usage("atscc2r34") val () = state.waitkind := WTKnone((*void*)) val () = if state.ninputfile >= 0 then () else state.ninputfile := 0 } (* end of [-h] *) // | _ (*unrecognized*) => comarg_warning(key) // ) : void // end of [val] // in process_cmdline(state, arglst) end // end of [process_cmdline2_comarg1] and process_cmdline2_comarg2 ( state: &cmdstate >> _ , arglst: comarglst, key: string ) : void = let // val () = state.waitkind := WTKnone() // val () = ( // case+ key of // | "--input" => { val () = state.ninputfile := 0 val () = state.waitkind := WTKinput() } (* end of [--input] *) // | "--output" => { val () = state.waitkind := WTKoutput() } (* end of [--output] *) // | "--help" => { val () = atscc2r34_usage("atscc2r34") val () = state.waitkind := WTKnone((*void*)) val () = if state.ninputfile >= 0 then () else state.ninputfile := 0 } (* end of [--help] *) // | _ (*unrecognized*) => comarg_warning(key) // ) : void // end of [val] // in process_cmdline(state, arglst) end // end of [process_cmdline2_comarg2] (* ****** ****** *) // extern fun comarg_parse(string):<> comarg // extern fun comarglst_parse{n:nat} (argc: int(n), argv: !argv(n)): list(comarg, n) // end of [comarglst_parse] // (* ****** ****** *) implement comarg_parse (str) = let // fun loop {n:int} {i:nat|i <= n} .. ( str: string(n), n: int(n), i: int(i) ) :<(*void*)> comarg = ( if (i < n) then ( if (str[i] != '-') then COMARG(i, str) else loop(str, n, i+1) ) else COMARG(n, str) ) (* end of [if] *) // end of [loop] // val str = g1ofg0(str) val len = string_length (str) // in loop (str, sz2i(len), 0) end // end of [comarg_parse] (* ****** ****** *) implement comarglst_parse {n}(argc, argv) = let // fun loop {i,j:nat | i <= n} .. ( argv: !argv(n), i: int(i), res: list_vt(comarg, j) ) : list_vt (comarg, n-i+j) = ( if i < argc then let val res = list_vt_cons(comarg_parse(argv[i]), res) in loop (argv, i+1, res) end // end of [then] else res // end of [else] // end of [if] ) (* end of [loop] *) // val res = loop (argv, 0, list_vt_nil()) // in list_vt2t (list_vt_reverse (res)) end // end of [comarglst_parse] (* ****** ****** *) // extern fun atscc2r34_main0 {n:pos} ( argc: int(n), argv: !argv(n) ) : void = "ext#libatscc2r34_atscc2r34_main0" // implement atscc2r34_main0 (argc, argv) = { // val () = prerrln! ("Hello from atscc2r34!") // // val arglst = comarglst_parse(argc, argv) // val+list_cons(arg0, arglst) = arglst // var state = @{ comarg0= arg0 , ncomarg= 0 // counting from 0 , waitkind= WTKnone() // number of prcessed , ninputfile= ~1 // input files , outchan= OUTCHANref(stdout_ref) , nerror= 0 // number of accumulated errors } : cmdstate // end of [var] // val () = process_cmdline(state, arglst) // val () = if state.nerror = 1 then let val () = prerrln! ("atscc2r34: there is a reported error.") in // nothing end // end of [then] else if state.nerror >= 2 then let val () = prerrln! ("atscc2r34: there are some reported errors.") in // nothing end // end of [then] else () // end of [else] // (* val () = prerrln! ("Good-bye from atscc2r34!") *) // } (* end of [atscc2r34_main0] *) // (* ****** ****** *) #ifndef ATSCC2R34_MAIN_NONE // implement main0(argc, argv) = { // val () = atscc2r34_main0(argc, argv) // } (* end of [main0] *) // #endif // ifndef(ATSCC2R34_MAIN_NONE) (* ****** ****** *) (* end of [atscc2r34_main.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/DATS/atscc2r34_emit.dats0000644000175000017500000003363313431250607024730 0ustar brandonbrandon(* ****** ****** *) // // Atscc2r34: // from ATS to R(stat) // (* ****** ****** *) // // HX-2015-09-28: // copy from atscc2js // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) local // staload TM = "libats/libc/SATS/time.sats" // typedef time_t = $TM.time_t // in (* in-of-local *) implement emit_time_stamp(out) = let // var tm: time_t val () = tm := $TM.time_get() val (pfopt | p_tm) = $TM.localtime(tm) // val () = emit_text (out, "##\n"); val () = emit_text (out, "##\n"); val () = emit_text (out, "## The R(stat) code is generated by atscc2r34\n") val () = emit_text (out, "## The starting compilation time is: ") // val () = if p_tm > 0 then let prval Some_v @(pf1, fpf1) = pfopt val tm_min = $TM.tm_get_min (!p_tm) val tm_hour = $TM.tm_get_hour (!p_tm) val tm_mday = $TM.tm_get_mday (!p_tm) val tm_mon = 1 + $TM.tm_get_mon (!p_tm) val tm_year = 1900 + $TM.tm_get_year (!p_tm) prval () = fpf1 (pf1) in $extfcall ( void , "fprintf" , out, "%i-%i-%i: %2ih:%2im\n", tm_year, tm_mon, tm_mday, tm_hour, tm_min ) end // end of [then] else let prval None_v () = pfopt in emit_text (out, "**TIME-ERROR**\n") end // end of [else] // val () = emit_text (out, "##\n") val () = emit_text (out, "##\n") // in // emit_newline (out) end // end of [emit_time_stamp] end // end of [local] (* ****** ****** *) implement emit_PMVint (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text(out, rep) end // end of [emit_PMVint] // implement emit_PMVintrep (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text(out, rep) end // end of [emit_PMVintrep] // (* ****** ****** *) implement emit_PMVbool (out, tfv) = ( emit_text ( out , if tfv then "TRUE" else "FALSE" ) (* emit_text *) ) (* end of [emit_PMVbool] *) (* ****** ****** *) implement emit_PMVstring (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text(out, rep) end // end of [emit_PMVstring] (* ****** ****** *) implement emit_PMVfloat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text(out, rep) end // end of [emit_PMVfloat] (* ****** ****** *) implement emit_PMVi0nt (out, tok) = let // val-T_INT(base, rep) = tok.token_node // in emit_text(out, rep) end // end of [emit_PMVi0nt] (* ****** ****** *) implement emit_PMVf0loat (out, tok) = let // val-T_FLOAT(base, rep) = tok.token_node // in emit_text(out, rep) end // end of [emit_PMVf0loat] (* ****** ****** *) // implement emit_PMVempty (out, _) = emit_text(out, "null") // implement emit_PMVextval (out, toks) = emit_tokenlst(out, toks) // (* ****** ****** *) // extern fun emit_f0ide : emit_type(i0de) = "ext#atscc2r34_emit_f0ide" extern fun emit_flabel : emit_type(label) = "ext#atscc2r34_emit_flabel" // implement emit_f0ide (out, fid) = let // val sym = fid.i0dex_sym val name = symbol_get_name(sym) // val c0 = $UN.ptr0_get (string2ptr(name)) // val () = if c0 = '_' then emit_text(out, "R") // in emit_symbol(out, sym) end // end of [emit_f0ide] // implement emit_flabel (out, flab) = emit_f0ide(out, flab) // (* ****** ****** *) // implement emit_PMVfunlab (out, flab) = emit_flabel(out, flab) // (* ****** ****** *) implement emit_PMVcfunlab (out, fl, d0es) = let // val () = emit_flabel(out, fl) val () = emit_text(out, "__closurerize") // in // emit_LPAREN(out); emit_d0explst(out, d0es); emit_RPAREN(out) // end (* end of [emit_PMVcfunlab] *) (* ****** ****** *) implement emit_CSTSPmyloc (out, tok) = let // val-T_STRING(rep) = tok.token_node // in emit_text (out, rep) end // end of [emit_CSTSPmyloc] (* ****** ****** *) // extern fun emit_fname_d0exp : (FILEref, string, d0exp) -> void extern fun emit_fname_d0exp2 : (FILEref, string, d0exp, d0exp) -> void // implement emit_fname_d0exp (out, fname, d0e) = { // val () = emit_text (out, fname) val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp] *) // implement emit_fname_d0exp2 (out, fname, d0e1, d0e2) = { // val () = emit_text (out, fname) // val () = emit_LPAREN (out) val () = ( emit_d0exp (out, d0e1); emit_text (out, ", "); emit_d0exp (out, d0e2) ) val () = emit_RPAREN (out) // } (* end of [emit_fname_d0exp2] *) // (* ****** ****** *) // implement emit_ATSCKiseqz(out, d0e) = emit_fname_d0exp(out, "ATSCKiseqz", d0e) implement emit_ATSCKisneqz(out, d0e) = emit_fname_d0exp(out, "ATSCKisneqz", d0e) // (* ****** ****** *) // implement emit_ATSCKptriscons(out, d0e) = emit_fname_d0exp(out, "ATSCKptriscons", d0e) implement emit_ATSCKptrisnull(out, d0e) = emit_fname_d0exp(out, "ATSCKptrisnull", d0e) // (* ****** ****** *) // implement emit_ATSCKpat_int (out, d0e, i0) = emit_fname_d0exp2 (out, "ATSCKpat_int", d0e, i0) implement emit_ATSCKpat_bool (out, d0e, b0) = emit_fname_d0exp2 (out, "ATSCKpat_bool", d0e, b0) implement emit_ATSCKpat_string (out, d0e, s0) = emit_fname_d0exp2 (out, "ATSCKpat_string", d0e, s0) // (* ****** ****** *) implement emit_ATSCKpat_con0 (out, d0e, ctag) = { val () = emit_text (out, "ATSCKpat_con0(") val () = emit_d0exp(out, d0e) val () = ( emit_text(out, ", "); emit_int(out, ctag); emit_RPAREN(out) ) (* end of [val] *) } (* end of [emit_ATSCKpat_con0] *) implement emit_ATSCKpat_con1 (out, d0e, ctag) = { val () = emit_text (out, "ATSCKpat_con1(") val () = emit_d0exp(out, d0e) val () = ( emit_text(out, ", "); emit_int(out, ctag); emit_RPAREN(out) ) (* end of [val] *) } (* end of [emit_ATSCKpat_con1] *) (* ****** ****** *) // implement emit_tmpvar (out, tmp) = emit_f0ide(out, tmp) // (* ****** ****** *) // fun emit_LBRACKET2 (out: FILEref): void = emit_text(out, "[[") fun emit_RBRACKET2 (out: FILEref): void = emit_text(out, "]]") // (* ****** ****** *) implement emit_d0exp (out, d0e0) = let in // case+ d0e0.d0exp_node of // | D0Eide(tmp) => { val () = emit_tmpvar(out, tmp) } // | D0Eappid (fid, d0es) => { val () = emit_f0ide (out, fid) val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } | D0Eappexp (d0e, d0es) => { val () = emit_d0exp (out, d0e) val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } // | D0Elist (d0es) => { val () = emit_text (out, "D0Elist") val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) } // | ATSPMVint (int) => emit_PMVint (out, int) | ATSPMVintrep (int) => emit_PMVintrep (out, int) // | ATSPMVbool (tfv) => emit_PMVbool (out, tfv) // | ATSPMVfloat (flt) => emit_PMVfloat (out, flt) // | ATSPMVstring (str) => emit_PMVstring (out, str) // | ATSPMVi0nt (int) => emit_PMVi0nt (out, int) | ATSPMVf0loat (flt) => emit_PMVf0loat (out, flt) // | ATSPMVempty (dummy) => emit_PMVempty (out, 0) | ATSPMVextval (toklst) => emit_PMVextval (out, toklst) // | ATSPMVrefarg0 (d0e) => emit_d0exp (out, d0e) | ATSPMVrefarg1 (d0e) => emit_d0exp (out, d0e) // | ATSPMVfunlab (fl) => emit_PMVfunlab (out, fl) | ATSPMVcfunlab (_(*knd*), fl, d0es) => emit_PMVcfunlab (out, fl, d0es) // end of [ATSPMVcfunlab] // | ATSPMVcastfn (_(*fid*), _(*s0e*), arg) => emit_d0exp (out, arg) // | ATSCSTSPmyloc (tok) => emit_CSTSPmyloc (out, tok) // | ATSCKiseqz(d0e) => emit_ATSCKiseqz (out, d0e) | ATSCKisneqz(d0e) => emit_ATSCKisneqz (out, d0e) | ATSCKptriscons(d0e) => emit_ATSCKptriscons (out, d0e) | ATSCKptrisnull(d0e) => emit_ATSCKptrisnull (out, d0e) // | ATSCKpat_int (d0e, int) => emit_ATSCKpat_int (out, d0e, int) | ATSCKpat_bool (d0e, bool) => emit_ATSCKpat_bool (out, d0e, bool) | ATSCKpat_string (d0e, string) => emit_ATSCKpat_bool (out, d0e, string) // | ATSCKpat_con0 (d0e, ctag) => emit_ATSCKpat_con0 (out, d0e, ctag) | ATSCKpat_con1 (d0e, ctag) => emit_ATSCKpat_con1 (out, d0e, ctag) // | ATSSELcon _ => emit_SELcon (out, d0e0) | ATSSELrecsin _ => emit_SELrecsin (out, d0e0) | ATSSELboxrec _ => emit_SELboxrec (out, d0e0) | ATSSELfltrec _ => emit_text (out, "ATSSELfltrec(...)") // | ATSextfcall (_fun, _arg) => { val () = emit_f0ide (out, _fun) val () = emit_d0exparg (out, _arg) } (* end of [ATSextfcall] *) | ATSextmcall (_obj, _mtd, _arg) => { // val () = emit_d0exp (out, _obj) val () = emit_DOT (out) val () = emit_d0exp (out, _mtd) // val () = emit_d0exparg (out, _arg) // } (* end of [ATSextmcall] *) // | ATSfunclo_fun (d0e, _(*arg*), _(*res*)) => emit_d0exp (out, d0e) | ATSfunclo_clo (d0e, _(*arg*), _(*res*)) => ( emit_d0exp(out, d0e); emit_LBRACKET2(out); emit_int(out, 1); emit_RBRACKET2(out) ) (* end of [ATSfunclo_clo] *) // end // end of [emit_d0exp] (* ****** ****** *) local fun loop ( out: FILEref, d0es: d0explst, i: int ) : void = ( case+ d0es of | list_nil () => () | list_cons (d0e, d0es) => let val () = if i > 0 then emit_text (out, ", ") // end of [val] in emit_d0exp (out, d0e); loop (out, d0es, i+1) end // end of [list_cons] ) in (* in-of-local *) implement emit_d0explst (out, d0es) = loop (out, d0es, 0) implement emit_d0explst_1 (out, d0es) = loop (out, d0es, 1) end // end of [local] (* ****** ****** *) implement emit_d0exparg (out, d0es) = { // val () = emit_LPAREN (out) val () = emit_d0explst (out, d0es) val () = emit_RPAREN (out) // } (* end of [emit_d0exparg] *) (* ****** ****** *) // extern fun tyrec_labsel (tyrec: tyrec, lab: symbol): int // implement tyrec_labsel (tyrec, lab) = let // fun loop ( xs: tyfldlst, i: int ) : int = ( case+ xs of | list_cons (x, xs) => let val TYFLD (id, s0e) = x.tyfld_node in if lab = id.i0dex_sym then i else loop (xs, i+1) end // end of [list_cons | list_nil ((*void*)) => ~1(*error*) ) // in loop (tyrec.tyrec_node, 0) end // end of [tyrec_labsel] // (* ****** ****** *) implement emit_SELcon (out, d0e) = let // val- ATSSELcon (d0rec, s0e, id) = d0e.d0exp_node // val- S0Eide(name) = s0e.s0exp_node val- ~Some_vt(s0rec) = typedef_search_opt(name) // val index = tyrec_labsel(s0rec, id.i0dex_sym) // val () = emit_d0exp(out, d0rec) in // // HX: R: index starting from 1 // emit_LBRACKET2(out); emit_int(out, index+1); emit_RBRACKET2(out) // end // end of [emit_SELcon] (* ****** ****** *) implement emit_SELrecsin (out, d0e) = let // val- ATSSELrecsin (d0rec, s0e, id) = d0e.d0exp_node // in emit_d0exp (out, d0rec) end // end of [emit_SELrecsin] (* ****** ****** *) implement emit_SELboxrec (out, d0e) = let // val- ATSSELboxrec (d0rec, s0e, id) = d0e.d0exp_node // val- S0Eide(name) = s0e.s0exp_node val- ~Some_vt(s0rec) = typedef_search_opt(name) // val index = tyrec_labsel(s0rec, id.i0dex_sym) // val () = emit_d0exp(out, d0rec) // in // // HX: R: index starting from 1 // emit_LBRACKET2(out); emit_int(out, index+1); emit_RBRACKET2(out) // end // end of [emit_SELboxrec] (* ****** ****** *) // implement emit_COMMENT_line (out, tok) = let // val- T_COMMENT_line (str) = tok.token_node // in emit_text (out, str) end // end of [emit_COMMENT_line] // implement emit_COMMENT_block (out, tok) = let // val- T_COMMENT_block (str) = tok.token_node // in emit_text (out, str) end // end of [emit_COMMENT_block] // (* ****** ****** *) local fun aux0_arglst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "arg"); emit_int (out, i) ) (* end of [val] *) in aux0_arglst (out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_arglst] *) fun aux0_envlst ( out: FILEref , s0es: s0explst , n0: int, i: int ) : void = ( case+ s0es of | list_nil () => () | list_cons (s0e, s0es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "env"); emit_int (out, i) ) (* end of [val] *) in aux0_envlst (out, s0es, n0, i+1) end // end of [list_cons] ) (* end of [aux0_envlst] *) fun aux1_envlst ( out: FILEref , s0es: s0explst, i: int ) : int = ( case+ s0es of | list_nil ((*void*)) => (i) | list_cons (s0e, s0es) => let val () = if i > 0 then emit_text (out, ", ") // end of [if] val () = ( emit_text(out, "cenv"); emit_LBRACKET2(out); emit_int(out, i+2); emit_RBRACKET2(out) ) (* end of [val] *) in aux1_envlst (out, s0es, i+1) end // end of [list_cons] ) (* end of [aux1_envlst] *) in (* in-of-local *) implement emit_closurerize ( out, fl, env, arg, res ) = let // val-S0Elist(s0es_env) = env.s0exp_node val-S0Elist(s0es_arg) = arg.s0exp_node // val () = emit_ENDL (out) // val () = emit_text(out, "##defun\n") // val () = emit_flabel(out, fl) val () = emit_text (out, "__closurerize <-\n") // val () = emit_text(out, "function(") val () = aux0_envlst(out, s0es_env, 0, 0) val ((*closing*)) = emit_text(out, ")\n") // val ((*opening*)) = emit_text (out, "{\n") // val () = emit_nspc (out, 2) val () = emit_text (out, "return") val () = emit_text (out, "(list(") val () = emit_text (out, "function(") // val () = emit_text (out, "cenv") val () = aux0_arglst (out, s0es_arg, 1, 0) // val () = emit_text (out, ") { return(") // val () = emit_flabel (out, fl) val () = emit_LPAREN (out) val n0 = aux1_envlst (out, s0es_env, 0) val () = aux0_arglst (out, s0es_arg, n0, 0) val () = emit_RPAREN (out) // val ((*closing*)) = emit_text (out, "); }") // val () = aux0_envlst (out, s0es_env, 1, 0) val ((*closing*)) = emit_text (out, "));\n}\n") // val ((*flushing*)) = emit_newline (out) // in // nothing end // end of [emit_closurerize] end // end of [local] (* ****** ****** *) (* end of [atscc2r34_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/DATS/.keeper0000644000175000017500000000000013431250607022557 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/DATS/atscc2r34_emit2.dats0000644000175000017500000010152113431250607025002 0ustar brandonbrandon(* ****** ****** *) // // Atscc2r34: // from ATS to R(stat) // (* ****** ****** *) // // HX-2015-09-28: // copy from atscc2js // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #if defined ( CATSPARSEMIT_targetloc ) #then #else // #define CATSPARSEMIT_targetloc "./../CATS-parsemit" // #endif // end of [ifdef] // (* ****** ****** *) // #staload "{$CATSPARSEMIT}/SATS/catsparse.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_emit.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_syntax.sats" #staload "{$CATSPARSEMIT}/SATS/catsparse_typedef.sats" // (* ****** ****** *) typedef tmpvar = i0de (* ****** ****** *) // extern fun emit_f0ide : emit_type(i0de) = "ext#atscc2r34_emit_f0ide" extern fun emit_flabel : emit_type(label) = "ext#atscc2r34_emit_flabel" // (* ****** ****** *) // extern fun emit_tmpdeclst_initize ( out: FILEref, tds: tmpdeclst ) : void // end-of-fun // implement emit_tmpdeclst_initize (out, tds) = let // fun auxlst ( out: FILEref, tds: tmpdeclst ) : void = let in // case+ tds of | list_nil () => () | list_cons (td, tds) => ( case+ td.tmpdec_node of | TMPDECnone (tmp) => auxlst (out, tds) | TMPDECsome (tmp, _) => let val isret = tmpvar_is_tmpret (tmp.i0dex_sym) // end of [val] val () = emit_nspc (out, 2(*ind*)) val () = if not(isret) then emit_text(out, "## ") // end of [if] val () = ( emit_tmpvar(out, tmp); emit_text(out, " <- NULL\n") ) (* end of [val] *) in auxlst (out, tds) end // end of [TMPDECsome] ) (* end of [list_cons] *) // end // end of [auxlst] // in auxlst (out, tds) end // end of [emit_tmpdeclst_initize] // (* ****** ****** *) // extern fun the_tmpdeclst_get (): tmpdeclst extern fun the_tmpdeclst_set (tds: tmpdeclst): void // (* ****** ****** *) // extern fun the_funbodylst_get (): instrlst extern fun the_funbodylst_set (inss: instrlst): void // (* ****** ****** *) // extern fun the_branchseq_get (): instrlst extern fun the_branchseq_set (ins: instrlst): void extern fun the_branchseq_unset ((*void*)): void // (* ****** ****** *) // extern fun the_branchlablst_get (): labelist extern fun the_branchlablst_set (tls: labelist): void extern fun the_branchlablst_unset ((*void*)): void // (* ****** ****** *) local // val the_tmpdeclst = ref (list_nil) // val the_funbodylst = ref (list_nil) (* HX: this is a stack: *) val the_branchseqlst = ref (list_nil) (* HX: this is a stack: *) val the_branchlablstlst = ref (list_nil) // in (* in-of-local *) implement the_tmpdeclst_get () = !the_tmpdeclst implement the_tmpdeclst_set (xs) = !the_tmpdeclst := xs implement the_funbodylst_get () = !the_funbodylst implement the_funbodylst_set (xs) = !the_funbodylst := xs (* ****** ****** *) implement the_branchseq_get ( ) = let // val xss = !the_branchseqlst // in // case- xss of list_cons (xs, _) => xs // end // end of [the_branchseq_get] implement the_branchseq_set ( xs ) = let // val xss = !the_branchseqlst // in !the_branchseqlst := list_cons (xs, xss) end // end of [the_branchseq_set] implement the_branchseq_unset ( ) = let // val xss = !the_branchseqlst // in // case- xss of | list_cons (_, xss) => !the_branchseqlst := xss // end // end of [the_branchseq_unset] (* ****** ****** *) implement the_branchlablst_get ( ) = let // val xss = !the_branchlablstlst // in // case- xss of list_cons (xs, _) => xs // end // end of [the_branchlablst_get] implement the_branchlablst_set ( xs ) = let // val xss = !the_branchlablstlst // in !the_branchlablstlst := list_cons (xs, xss) end // end of [the_branchlablst_set] implement the_branchlablst_unset ( ) = let // val xss = !the_branchlablstlst // in // case- xss of | list_cons (_, xss) => !the_branchlablstlst := xss // end // end of [the_branchlablst_unset] (* ****** ****** *) end // end of [local] (* ****** ****** *) // extern fun funlab_get_index (fl: label): int extern fun tmplab_get_index (lab: label): int // (* ****** ****** *) // extern fun tmplab_get_index_seq (lab: label): int // (* ****** ****** *) implement funlab_get_index (fl0) = let // val n0 = fl0.i0dex_sym // fun auxlst ( xs: instrlst, i: int ) : int = ( // case+ xs of | list_nil () => ~1(*error*) | list_cons (x, xs) => ( case+ x.instr_node of | ATSfunbodyseq _ => let val fl = funbodyseq_get_funlab (x) in if n0 = fl.i0dex_sym then i else auxlst (xs, i+1) end // end of [ATSfunbodyseq] | _ (*non-ATSfunbody*) => auxlst (xs, i) ) (* end of [list_cons] *) // ) (* end of [auxlst] *) // in auxlst (the_funbodylst_get(), 1) end // end of [funlab_get_index] (* ****** ****** *) implement tmplab_get_index (lab0) = let // val n0 = lab0.i0dex_sym // fun auxlst ( xs: labelist, i: int ) : int = ( case+ xs of | list_nil () => ~1(*error*) | list_cons (x, xs) => if n0 = x.i0dex_sym then i else auxlst (xs, i+1) // end of [list_cons] ) // in auxlst (the_branchlablst_get(), 1) end // end of [tmplab_get_index] (* ****** ****** *) implement tmplab_get_index_seq (lab0) = let // val n0 = lab0.i0dex_sym // fun auxlst ( inss: instrlst, i: int ) : int = ( case+ inss of | list_nil ((*void*)) => ~1(*error*) // end of [list_nil] | list_cons (ins, inss) => ( case+ ins.instr_node of | ATSINSlab(lab) => if n0 = lab.i0dex_sym then i else auxlst(inss, i+1) // end of [if] | _(* non-ATSINSlab *) => auxlst(inss, i) ) (* end of [list_cons] *) ) // in auxlst(the_branchseq_get((*void*)), 1) end // end of [tmplab_get_index_seq] (* ****** ****** *) // fun emit_funlab_index (out: FILEref, fl: label): void = emit_int (out, funlab_get_index (fl)) // fun emit_tmplab_index (out: FILEref, lab: label): void = emit_int (out, tmplab_get_index (lab)) // (* ****** ****** *) // extern fun emit2_instr (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_instr_ln (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_instrlst (out: FILEref, ind: int, inss: instrlst) : void // (* ****** ****** *) // extern fun emit2_branchseqlst (out: FILEref, ind: int, inss: instrlst): void // (* ****** ****** *) // extern fun emit2_ATSfunbodyseq (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_con1 (out: FILEref, ind: int, ins: instr) : void // extern fun emit2_ATSINSmove_boxrec (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_delay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_lazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit2_ATSINSmove_ldelay (out: FILEref, ind: int, ins: instr) : void extern fun emit2_ATSINSmove_llazyeval (out: FILEref, ind: int, ins: instr) : void // (* ****** ****** *) // extern fun emit_tmpvar_assign (out: FILEref, tmp: tmpvar): void extern fun emit_tmpvar_assign_nil (out: FILEref, tmp: tmpvar): void extern fun emit_tmpvar_assign_d0exp (out: FILEref, tmp: tmpvar, d0e: d0exp): void extern fun emit_tmpvar_assign_PMVint (out: FILEref, tmp: tmpvar, tag: token): void extern fun emit_tmpvar_assign_tmpvar (out: FILEref, tmp: tmpvar, tmp2: tmpvar): void // (* ****** ****** *) // implement emit_tmpvar_assign (out, tmp) = let // val issta = tmpvar_is_sta(tmp.i0dex_sym) // in emit_tmpvar(out, tmp); if not(issta) then emit_text(out, " <- ") else emit_text(out, " <<- "); // end of [if] end // end of [emit_tmpvar_assign] // implement emit_tmpvar_assign_nil (out, tmp) = ( emit_tmpvar_assign(out, tmp); emit_text(out, "NULL") ) implement emit_tmpvar_assign_d0exp (out, tmp, d0e) = ( emit_tmpvar_assign(out, tmp); emit_d0exp( out, d0e ) ) implement emit_tmpvar_assign_PMVint (out, tmp, tag) = ( emit_tmpvar_assign(out, tmp); emit_PMVint( out, tag ) ) implement emit_tmpvar_assign_tmpvar (out, tmp, tmp2) = ( emit_tmpvar_assign(out, tmp); emit_tmpvar( out, tmp2 ) ) // (* ****** ****** *) // // HX-2014-08: // this one should not be used for // emitting multiple-line instructions // implement emit_instr (out, ins) = emit2_instr (out, 0(*ind*), ins) // (* ****** ****** *) implement emit2_instr (out, ind, ins0) = let in // case+ ins0.instr_node of // | ATSif ( d0e, inss, inssopt ) => let val () = emit_nspc (out, ind) val () = emit_text (out, "if") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_text (out, " {\n") val () = emit2_instrlst (out, ind+2, inss) in case+ inssopt of | None _ => { val () = emit_nspc (out, ind) val () = emit_text (out, "} ## end-of-if") } (* end of [None] *) | Some (inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "} else {\n") val () = emit2_instrlst (out, ind+2, inss) val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} ## end-of-if") } (* end of [Some] *) end // end of [ATSif] // | ATSifthen(d0e, inss) => { // (* val-list_sing(ins) = inss *) // val () = emit_nspc (out, ind) val () = emit_text (out, "if(") val () = emit_d0exp (out, d0e) val ((*closing*)) = emit_text (out, ") {\n") val () = emit2_instrlst (out, ind+2, inss) val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} ## ifthen") } // | ATSifnthen(d0e, inss) => { // (* val-list_sing(ins) = inss *) // val () = emit_nspc (out, ind) val () = emit_text (out, "if(!") val () = emit_d0exp (out, d0e) val ((*closing*)) = emit_text (out, ") {\n") val () = emit2_instrlst (out, ind+2, inss) val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} ## ifnthen") } // | ATSbranchseq(inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "## ATSbranchseq(...)") } // | ATScaseofseq(inss) => { // val tls = caseofseq_get_tmplablst(ins0) // end of [val] val () = the_branchlablst_set(tls) // val () = emit_nspc (out, ind) val () = emit_text(out, "## ATScaseofseq_beg") // val () = emit_ENDL (out) val () = emit_nspc (out, ind) val () = emit_text (out, "tmplab_r34 <- 1;") val () = emit_ENDL (out) val () = emit_nspc (out, ind) val () = emit_text (out, "while(TRUE) {") val () = emit_ENDL (out) val () = emit_nspc (out, ind+2) val () = emit_text (out, "tmplab = tmplab_r34; tmplab_r34 <- 0;") val () = emit_ENDL (out) val () = emit_nspc (out, ind+2) val () = emit_text (out, "switch(tmplab, \n") // val () = emit2_branchseqlst (out, ind+4, inss) // val () = emit_nspc (out, ind+2) val () = emit_text (out, ") ## end-of-switch\n") // val () = emit_nspc (out, ind+2) val () = emit_text (out, "if (tmplab_r34 == 0) break;\n") // end of [val] // val () = emit_nspc (out, ind) val ((*closing*)) = emit_text (out, "} ## endwhile\n") // val () = emit_nspc (out, ind) val () = emit_text (out, "## ATScaseofseq_end") // val () = the_branchlablst_unset ((*void*)) // } (* end of [ATScaseofseq] *) // | ATSreturn(tmp) => { val () = emit_nspc(out, ind) val () = emit_text(out, "return") val () = emit_LPAREN (out) val () = emit_tmpvar (out, tmp) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSreturn_void(tmp) => { val () = emit_nspc (out, ind) val () = emit_text (out, "return(NULL)") val () = emit_SEMICOLON (out) } // | ATSINSlab(lab) => { // val i0 = tmplab_get_index_seq (lab) val idx = tmplab_get_index(lab) // val () = if (i0 > 1) then ( emit_nspc(out, ind); emit_text(out, " { tmplab_r34 <- "); emit_int(out, idx); emit_text(out, "; break; }\n"); emit_nspc(out, ind); emit_text(out, "}\n"); emit_nspc(out, ind); emit_text(out, "},\n"); ) // val () = emit_nspc (out, ind) val () = emit_text (out, "case") val () = emit_int (out, idx) val () = ( emit_text (out, "={"); emit_text (out, " ##"); emit_label (out, lab) ) (* end of [val] *) // val () = emit_ENDL (out) val () = emit_nspc (out, ind) val () = emit_text (out, "while(TRUE)\n") val () = ( emit_nspc (out, ind); emit_LBRACE (out) ) // } (* end of [ATSINSlab] *) // | ATSINSgoto(lab) => { val () = emit_nspc(out, ind) val () = emit_text(out, "{ tmplab_r34 <- ") // end of [val] val () = emit_tmplab_index(out, lab) val ((*closing*)) = emit_text(out, "; break; }") } (* end of [ATSINSgoto] *) // | ATSINSflab(flab) => { val () = emit_nspc (out, ind) // end of [val] val () = ( emit_text(out, "## "); emit_label(out, flab) ) (* end of [val] *) } (* end of [ATSINSflab] *) // | ATSINSfgoto(flab) => { val () = emit_nspc(out, ind) val () = emit_text(out, "funlab_r34 <- ") // end of [val] val () = emit_funlab_index (out, flab) val () = ( emit_text(out, "; ## "); emit_label(out, flab) ) (* end of [val] *) } (* end of [ATSINSfgoto] *) // | ATSINSfreeclo(d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "## ") val () = emit_text (out, "ATSINSfreeclo") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSfreecon(d0e) => { val () = emit_nspc (out, ind) val () = emit_text (out, "## ") val () = emit_text (out, "ATSINSfreecon") val () = emit_LPAREN (out) val () = emit_d0exp (out, d0e) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } // | ATSINSmove(tmp, d0e) => { val () = emit_nspc(out, ind) val () = emit_tmpvar_assign_d0exp(out, tmp, d0e) val () = emit_SEMICOLON (out) } (* end of [ATSINSmove] *) // | ATSINSmove_void (tmp, d0e(*command*)) => let val () = emit_nspc (out, ind) in case+ d0e.d0exp_node of | ATSPMVempty _ => emit_text (out, "## ATSINSmove_void") // end of [ATSempty] | _ (*non-ATSPMVempty*) => (emit_d0exp (out, d0e); emit_SEMICOLON (out)) // end of [non-ATSPMVempty] end (* end of [ATSINSmove_void] *) // | ATSINSmove_nil (tmp) => { val () = emit_nspc (out, ind) val () = emit_tmpvar_assign_nil(out, tmp) val () = emit_SEMICOLON (out) } | ATSINSmove_con0 (tmp, tag) => { val () = emit_nspc (out, ind) val () = emit_tmpvar_assign_PMVint (out, tmp, tag) val () = emit_SEMICOLON (out) } // | ATSINSmove_con1 _ => emit2_ATSINSmove_con1 (out, ind, ins0) // | ATSINSmove_boxrec _ => emit2_ATSINSmove_boxrec (out, ind, ins0) // | ATSINSmove_delay _ => emit2_ATSINSmove_delay (out, ind, ins0) | ATSINSmove_lazyeval _ => emit2_ATSINSmove_lazyeval (out, ind, ins0) // | ATSINSmove_ldelay _ => emit2_ATSINSmove_ldelay (out, ind, ins0) | ATSINSmove_llazyeval _ => emit2_ATSINSmove_llazyeval (out, ind, ins0) // | ATStailcalseq(inss) => { val () = emit_nspc (out, ind) val () = emit_text (out, "## ATStailcalseq_beg") val () = emit_ENDL (out) val () = emit2_instrlst (out, ind, inss) val () = emit_nspc (out, ind) val () = emit_text (out, "## ATStailcalseq_end") } (* end of [ATStailcalseq] *) // | ATSINSmove_tlcal (tmp, d0e) => { val () = emit_nspc (out, ind) val () = emit_tmpvar_assign_d0exp(out, tmp, d0e) val () = emit_SEMICOLON (out) } (* end of [ATSINSmove_tlcal] *) // | ATSINSargmove_tlcal (tmp1, tmp2) => { val () = emit_nspc (out, ind) val () = emit_tmpvar_assign_tmpvar(out, tmp1, tmp2) val () = emit_SEMICOLON (out) } (* end of [ATSINSargmove_tlcal] *) // | ATSINSextvar_assign (ext, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_d0exp (out, ext) val () = emit_text (out, " <<- ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } | ATSINSdyncst_valbind (d2c, d0e_r) => { val () = emit_nspc (out, ind) val () = emit_f0ide (out, d2c) val () = emit_text (out, " <<- ") val () = emit_d0exp (out, d0e_r) val () = emit_SEMICOLON (out) } // | ATSINScaseof_fail (errmsg) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINScaseof_fail") val () = emit_LPAREN (out) val () = emit_PMVstring (out, errmsg) val () = emit_RPAREN (out) val () = emit_SEMICOLON (out) } | ATSINSdeadcode_fail (__tok__) => { val () = emit_nspc (out, ind) val () = emit_text (out, "ATSINSdeadcode_fail()") val () = emit_SEMICOLON (out) } // | ATSdynload (dummy) => { val () = emit_nspc (out, ind) val () = emit_text (out, "## ATSdynload(void)") } // | ATSdynloadset (flag) => { val () = emit_nspc (out, ind) val () = ( emit_tmpvar (out, flag); emit_text (out, " <<- 1 ; ## dynflag is set") ) (* end of [val] *) } // | ATSdynloadfcall (fcall) => { val () = emit_nspc (out, ind) val () = ( emit_tmpvar (out, fcall); emit_text (out, "() ; ## dynload initializing") ) (* end of [val] *) } // | ATSdynloadflag_sta (flag) => { val () = emit_nspc(out, ind) val () = fprint!(out, "## ATSdynloadflag_sta(", flag, ")") } | ATSdynloadflag_ext (flag) => { val () = emit_nspc(out, ind) val () = fprint!(out, "## ATSdynloadflag_ext(", flag, ")") } // | _ (*rest-of-instr*) => { val () = emit_nspc(out, ind) val ((*error*)) = fprint! (out, "UNRECOGNIZED-INSTRUCTION: ", ins0) } // end // end of [emit2_instr] (* ****** ****** *) implement emit2_instr_ln (out, ind, ins) = ( emit2_instr (out, ind, ins); emit_ENDL (out) ) (* end of [emit2_instr_ln] *) (* ****** ****** *) implement emit2_instrlst ( out, ind, inss ) = ( // case+ inss of | list_nil () => () | list_cons (ins, inss) => { val () = emit2_instr_ln (out, ind, ins) val () = emit2_instrlst (out, ind, inss) } // ) (* end of [emit2_instrlst] *) (* ****** ****** *) implement emit2_branchseqlst (out, ind, inss) = let // fun auxseq ( out: FILEref , ind: int, ins0: instr ) : void = let in // case- ins0.instr_node of // | ATSbranchseq (inss) => () where { // val () = the_branchseq_set(inss) // val () = emit2_instrlst(out, ind, inss) // val () = the_branchseq_unset( (*void*) ) // } (* end of [ATSbranchseq] *) // end (* end of [auxseq] *) // fun auxseqlst ( out: FILEref , ind: int, inss: instrlst ) : void = let in // case+ inss of | list_nil() => () | list_cons (ins, inss) => let // val () = emit_nspc (out, ind) val () = emit_text (out, "## ATSbranchseq_beg\n") // val () = auxseq (out, ind, ins) // val () = emit_nspc (out, ind) val () = emit_text (out, "break;\n") // val () = emit_nspc (out, ind) val () = emit_text (out, "}\n") val () = emit_nspc (out, ind) val () = ( case+ inss of | list_nil _ => emit_text (out, "}\n") | list_cons _ => emit_text (out, "},\n") ) (* end of [val] *) // val () = emit_nspc (out, ind) val () = emit_text (out, "## ATSbranchseq_end\n") // in auxseqlst (out, ind, inss) end (* end of [list_cons] *) // end (* end of [auxseqlst] *) // in auxseqlst (out, ind, inss) end // end of [emit2_branchseqlst] (* ****** ****** *) implement emit2_ATSfunbodyseq (out, ind, ins) = let // val-ATSfunbodyseq (inss) = ins.instr_node // in emit2_instrlst (out, ind, inss) end // end of [emit2_ATS2funbodyseq] (* ****** ****** *) implement emit2_ATSINSmove_con1 (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () // list_nil | list_cons (ins, inss) => let val- ATSINSstore_con1_ofs(_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons(d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_con1(inss) = ins0.instr_node // val-list_cons(ins, inss) = inss val-ATSINSmove_con1_new(tmp, _) = ins.instr_node // var opt: tokenopt = None() // val inss = ( case+ inss of | list_nil () => inss | list_cons (ins, inss2) => ( case+ ins.instr_node of // case+ | ATSINSstore_con1_tag (tmp, tag) => let val () = opt := Some(tag) in inss2 end // end of [ATSINSstore_con1_tag] | _ (*non-ATSINSstore_con1_tag*) => inss ) ) : instrlst // val d0es = getarglst(inss) // val () = emit_nspc(out, ind) // val () = emit_tmpvar_assign(out, tmp) // val () = emit_text(out, "list") val () = emit_LPAREN(out) val () = ( case+ opt of | None() => () | Some(tag) => emit_PMVint(out, tag) ) : void // end of [val] val () = ( case+ opt of | None() => emit_d0explst(out, d0es) | Some(tag) => emit_d0explst_1(out, d0es) ) : void // end of [val] // val () = emit_RPAREN(out) // val () = emit_SEMICOLON (out) // in // nothing end // end of [emit2_ATSINSmove_con1] (* ****** ****** *) implement emit2_ATSINSmove_boxrec (out, ind, ins0) = let // fun getarglst ( inss: instrlst ) : d0explst = ( case+ inss of | list_nil () => list_nil () | list_cons (ins, inss) => let val-ATSINSstore_boxrec_ofs(_, _, _, d0e) = ins.instr_node val d0es = getarglst (inss) in list_cons (d0e, d0es) end // end of [list_cons] ) // val-ATSINSmove_boxrec(inss) = ins0.instr_node // val-list_cons (ins, inss) = inss val-ATSINSmove_boxrec_new (tmp, _) = ins.instr_node // val d0es = getarglst (inss) // val () = emit_nspc(out, ind) val () = emit_tmpvar_assign(out, tmp) val () = emit_text (out, "list") val () = ( emit_LPAREN(out); emit_d0explst(out, d0es); emit_RPAREN(out) ) // val () = emit_SEMICOLON(out) // in // nothing end // end of [emit2_ATSINSmove_boxrec] (* ****** ****** *) implement emit2_ATSINSmove_delay (out, ind, ins0) = let // val- ATSINSmove_delay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = emit_tmpvar_assign(out, tmp) // val () = ( emit_text(out, "ATSPMVlazyval"); emit_text(out, "("); emit_d0exp (out, thunk); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_delay] (* ****** ****** *) implement emit2_ATSINSmove_lazyeval (out, ind, ins0) = let // val- ATSINSmove_lazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc (out, ind) // val () = emit_tmpvar_assign(out, tmp) // val () = ( emit_text(out, "ATSPMVlazyval_eval("); emit_d0exp(out, lazyval); emit_text(out, "); ") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_lazyeval] (* ****** ****** *) implement emit2_ATSINSmove_ldelay (out, ind, ins0) = let // val- ATSINSmove_ldelay (tmp, s0e, thunk) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = emit_tmpvar_assign(out, tmp) // val () = ( emit_text(out, "ATSPMVllazyval("); emit_d0exp(out, thunk); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_ldelay] (* ****** ****** *) implement emit2_ATSINSmove_llazyeval (out, ind, ins0) = let // val- ATSINSmove_llazyeval (tmp, s0e, lazyval) = ins0.instr_node // val () = emit_nspc(out, ind) // val () = emit_tmpvar_assign(out, tmp) // val () = emit_text(out, "ATSPMVllazyval_eval") val () = ( emit_text(out, "("); emit_d0exp(out, lazyval); emit_text(out, ");") ) (* end of [val] *) // in // nothing end // end of [emit2_ATSINSmove_llazyeval] (* ****** ****** *) // #define ATSEXTCODE_BEG "##\n## ATSextcode_beg()\n##" #define ATSEXTCODE_END "##\n## ATSextcode_end()\n##" // (* ****** ****** *) implement emit_d0ecl (out, d0c) = let in // case+ d0c.d0ecl_node of // | D0Cinclude _ => () // | D0Cifdef _ => () | D0Cifndef _ => () // | D0Ctypedef (id, def) => typedef_insert (id.i0dex_sym, def) // end of [D0Ctypedef] // | D0Cassume (id) => { val () = emit_ENDL (out) val () = emit_text (out, "## ATSassume(") val () = ( emit_f0ide(out, id); emit_text(out, ")\n") ) (* end of [val] *) } // | D0Cdyncst_mac _ => () // | D0Cdyncst_extfun _ => () // | D0Cdyncst_valdec _ => () // | D0Cdyncst_valimp (id, s0e) => { val () = emit_ENDL(out) val () = emit_text(out, "##defvar\n") val () = ( emit_f0ide(out, id); emit_text(out, " = NULL\n") ) (* end of [val] *) } // | D0Cextcode(toks) => { val () = emit_ENDL(out) val () = emit_text(out, ATSEXTCODE_BEG) val () = emit_extcode(out, toks) // HX: verbatim output val () = emit_text (out, ATSEXTCODE_END) val ((*void*)) = emit_newline (out) } (* end of [D0Cextcode] *) // | D0Cstatmp(tmp, opt) => { val () = emit_ENDL (out) val () = ( case+ opt of | Some _ => () | None () => emit_text(out, "##\n") ) (* end of [val] *) val () = ( emit_text(out, "##defvar\n"); emit_tmpvar(out, tmp); emit_text(out, " = NULL\n") ) (* end of [val] *) val () = ( case+ opt of | Some _ => () | None () => emit_text(out, "##\n") ) (* end of [val] *) } (* end of [D0Cstatmp] *) // | D0Cfundecl (fk, f0d) => emit_f0decl (out, f0d) // | D0Cclosurerize (fl, env, arg, res) => { val () = emit_closurerize (out, fl, env, arg, res) } // | D0Cdynloadflag_init (flag) => ( // // HX-2015-05-22: // it is skipped as R34 does not have a link-time! // ) (* end of [D0Cdynloadflag_init] *) // | D0Cdynloadflag_minit (flag) => ( emit_text(out, "## dynloadflag_minit\n"); emit_text(out, "##defvar\n"); emit_tmpvar(out, flag); emit_text(out, " <- 0;\n") ) (* end of [D0Cdynloadflag_minit] *) // | D0Cdynexn_dec(idexn) => ( emit_text(out, "## dynexn_dec("); emit_f0ide(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_dec] *) | D0Cdynexn_extdec(idexn) => ( emit_text(out, "## dynexn_extdec("); emit_f0ide(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_extdec] *) | D0Cdynexn_initize(idexn, fullname) => ( emit_text(out, "## dynexn_initize("); emit_f0ide(out, idexn); emit_text(out, ")\n") ) (* end of [D0Cdynexn_initize] *) // end // end of [emit_d0ecl] (* ****** ****** *) // extern fun emit_f0arg : emit_type (f0arg) extern fun emit_f0marg : emit_type (f0marg) extern fun emit_f0head : emit_type (f0head) // extern fun emit_f0body : emit_type (f0body) extern fun emit_f0body_0 : emit_type (f0body) extern fun emit_f0body_tlcal : emit_type (f0body) extern fun emit_f0body_tlcal2 : emit_type (f0body) // (* ****** ****** *) implement emit_f0arg (out, f0a) = let in // case+ f0a.f0arg_node of // | F0ARGnone _ => emit_text (out, "__NONE__") | F0ARGsome (arg, s0e) => emit_tmpvar (out, arg) // end // end of [emit_f0arg] (* ****** ****** *) implement emit_f0marg (out, f0ma) = let // fun loop ( out: FILEref, f0as: f0arglst, i: int ) : void = ( case+ f0as of | list_nil () => () | list_cons (f0a, f0as) => let val () = if i > 0 then emit_text (out, ", ") // end of [val] in emit_f0arg (out, f0a); loop (out, f0as, i+1) end // end of [list_cons] ) // in loop (out, f0ma.f0marg_node, 0) end // end of [emit_f0marg] (* ****** ****** *) implement emit_f0head (out, fhd) = let in // case+ fhd.f0head_node of | F0HEAD (fid, f0ma, res) => { // val () = emit_f0ide(out, fid) val () = emit_text(out, " <- ") // val () = emit_ENDL (out) val () = emit_text (out, "function") val () = emit_LPAREN (out) val () = emit_f0marg (out, f0ma) val () = emit_RPAREN (out) // } // end // end of [emit_f0head] (* ****** ****** *) implement emit_f0body (out, fbody) = let // val knd = f0body_classify (fbody) (* val () = println! ("emit_f0body: knd = ", knd) *) // val tmpdecs = f0body_get_tmpdeclst (fbody) val inss_body = f0body_get_bdinstrlst (fbody) // val () = the_tmpdeclst_set (tmpdecs) val () = the_funbodylst_set (inss_body) // val () = emit_text (out, "{\n") // val () = emit_text (out, "##\n") val () = emit_text (out, "## knd = ") val () = (emit_int (out, knd); emit_ENDL (out)) // val () = emit_tmpdeclst_initize (out, tmpdecs) // val () = if knd > 0 then { // val () = emit_nspc (out, 2) val () = emit_text (out, "## var funlab_r34\n") // } (* end of [if] *) // end of [val] // val () = emit_nspc (out, 2) val () = emit_text (out, "## var tmplab, tmplab_r34\n") // val () = emit_text (out, "##\n") // val () = ( // case+ knd of | 0 => emit_f0body_0 (out, fbody) | 1 => emit_f0body_tlcal (out, fbody) | 2 => emit_f0body_tlcal2 (out, fbody) | _ => let val () = assertloc(false) in (*nothing*) end // ) : void // end of [val] // val () = emit_text (out, "} ## end-of-function\n") // in // nothing end (* end of [emit_f0body] *) (* ****** ****** *) implement emit_f0body_0 (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => let val-list_cons (ins1, inss2) = inss1 // val () = if i > 0 then emit_ENDL (out) val () = emit2_ATSfunbodyseq (out, 2(*ind*), ins0) val ((*return*)) = emit2_instr_ln (out, 2(*ind*), ins1) // in auxlst (out, inss2, i+1) end // end of [list_cons] // ) (* end of [auxlst] *) // in // case+ fbody.f0body_node of // | F0BODY (tds, inss) => { val () = auxlst (out, inss, 0(*i*)) } // end // end of [emit_f0body_0] (* ****** ****** *) implement emit_f0body_tlcal (out, fbody) = let // fun auxlst ( out: FILEref, inss: instrlst ) : void = ( case+ inss of | list_nil () => () | list_cons (ins0, inss1) => let val-list_cons (ins1, inss2) = inss1 // val () = emit2_ATSfunbodyseq (out, 4(*ind*), ins0) // val () = emit_nspc (out, 4(*ind*)) val () = emit_text ( out, "if (funlab_r34 > 0) next else" ) (* end of [val] *) val () = emit2_instr_ln (out, 1(*ind*), ins1) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "} ## endwhile-fun\n") // in auxlst (out, inss2(*nil*)) end // end of [list_cons] // ) (* end of [auxlst] *) // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "while(TRUE) {\n") val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "funlab_r34 <- 0;\n") // val () = ( case+ fbody.f0body_node of // | F0BODY (tds, inss) => auxlst (out, inss) // ) (* end of [val] *) // in // nothing end // end of [emit_f0body_tlcal] (* ****** ****** *) // extern fun emit_the_funbodylst (out: FILEref): void // implement emit_the_funbodylst (out) = let // fun auxfun ( out: FILEref , ins0: instr, ins1: instr, i: int ) : void = let // val- ATSfunbodyseq(inss) = ins0.instr_node // val-list_cons (ins_fl, inss) = inss val-ATSINSflab (fl) = ins_fl.instr_node // val () = emit_nspc (out, 6) val () = ( emit_text (out, "case"); emit_int (out, i); emit_text (out, "= {") ) val () = emit_ENDL (out) val () = emit_nspc (out, 8) val () = emit_text (out, "funlab_r34 <- 0;\n") val () = emit2_instrlst (out, 8(*ind*), inss) // val () = emit_nspc (out, 8) val () = emit_text ( out, "if (funlab_r34 > 0) next else" ) (* end of [val] *) val () = emit2_instr_ln (out, 1(*ind*), ins1) // val () = emit_nspc (out, 6) val () = emit_text (out, "} ## end-of-case\n") // in // nothing end // end of [auxfun] // fun auxlst ( out: FILEref, inss: instrlst, i: int ) : void = ( case+ inss of | list_nil () => () | list_cons _ => auxlst ( out, inss, i+1 ) where { val- list_cons (ins0, inss) = inss val- list_cons (ins1, inss) = inss val () = if (i > 1) then ( emit_nspc(out, 6); emit_text(out, ",\n") ) (* end of [val] *) val () = auxfun(out, ins0, ins1, i) } // end of [auxlst] ) (* end of [auxlst] *) // in auxlst (out, the_funbodylst_get(), 1(*first*)) end // end of [emit_the_funbodylst] // (* ****** ****** *) implement emit_f0body_tlcal2 (out, fbody) = let // val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "funlab_r34 <- 1;") // val () = emit_ENDL (out) val () = emit_nspc (out, 2(*ind*)) val () = emit_text (out, "while(TRUE) {") // val () = emit_ENDL (out) val () = emit_nspc (out, 4(*ind*)) val () = emit_text (out, "switch(funlab_r34, \n") // val () = emit_the_funbodylst (out) // val () = emit_nspc (out, 4(*ind*)) val ((*closing*)) = emit_text (out, ") ## end-of-switch\n") // val () = emit_nspc (out, 2(*ind*)) val ((*closing*)) = emit_text (out, "} ## endwhile-fun\n") // in // nothing end // end of [emit_f0body_tlcal2] (* ****** ****** *) implement emit_f0decl (out, fdec) = let in // case+ fdec.f0decl_node of | F0DECLnone (fhd) => () | F0DECLsome (fhd, fbody) => { // val () = emit_ENDL (out) val () = emit_text (out, "##defun") // val () = emit_ENDL (out) val () = emit_f0head (out, fhd) // val () = emit_ENDL (out) val () = emit_f0body (out, fbody) // val ((*flushout*)) = emit_newline (out) // } (* end of [F0DECLsome] *) // end // end of [emit_f0decl] (* ****** ****** *) implement emit_toplevel (out, d0cs) = let // fun loop ( out: FILEref, d0cs: d0eclist ) : void = ( // case+ d0cs of | list_nil () => () | list_cons (d0c, d0cs) => let val () = emit_d0ecl (out, d0c) // end of [val] in loop (out, d0cs) end // end of [list_cons] // ) // in loop (out, d0cs) end // end of [emit_toplevel] (* ****** ****** *) (* end of [atscc2r34_emit2.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/Makefile0000644000175000017500000000222513431250607022223 0ustar brandonbrandon# # A simple Makefile # ###### MAKE=make ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### all:: ###### CATSPARSEMIT=./CATS-parsemit ###### SOURCES_DATS := SOURCES_DATS += DATS/atscc2r34_main.dats SOURCES_DATS += DATS/atscc2r34_emit.dats SOURCES_DATS += DATS/atscc2r34_emit2.dats SOURCES_SATS := SOURCES_SATS += $(CATSPARSEMIT)/SATS/catsparse.sats SOURCES_CATS := SOURCES_CATS += $(CATSPARSEMIT)/CATS/catsparse_all_dats.c ###### # all:: ; \ $(MAKE) -C CATS-parsemit all # ###### # all:: \ bin_atscc2r34 bin_atscc2r34: \ $(SOURCES_DATS); \ $(PATSCC) \ -DATS_MEMALLOC_GCBDW -O2 -o bin/atscc2r34 \ $(SOURCES_DATS) $(SOURCES_SATS) $(SOURCES_CATS) -lgc # ###### # npm:: bin_atscc2r34 npm:: ; $(CPF) catsparse_sats.c atscc2r34_*_dats.c npm/CATS/. # ###### CPF=cp -f RMF=rm -f ###### # testall:: all testall:: cleanall # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o clean:: ; $(RMF) catsparse_sats.c clean:: ; $(RMF) atscc2r34_*_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) ./bin/atscc2r34 cleanall:: ; $(RMF) ./npm/CATS/catsparse_sats.c cleanall:: ; $(RMF) ./npm/CATS/atscc2r34_*_dats.c ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/CATS-atscc2r34/.keeper0000644000175000017500000000000013431250607022024 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/0000755000175000017500000000000013431250607020624 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/0000755000175000017500000000000013431250607021773 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/output/0000755000175000017500000000000013431250607023333 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/output/DATS/0000755000175000017500000000000013431250607024066 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/output/DATS/.keeper0000644000175000017500000000000013431250607025330 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/output/DATS/ML/0000755000175000017500000000000013431250607024376 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/output/DATS/ML/.keeper0000644000175000017500000000000013431250607025640 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/0000755000175000017500000000000013431250607022526 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/qlistref.dats0000644000175000017500000000127513431250607025241 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX: list-based queue // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_PACKNAME "ATSCC2PY3.qlistref" #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_qlistref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/qlistref.dats" // (* ****** ****** *) (* end of [qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/PYlist.dats0000644000175000017500000000160713431250607024633 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_PYlist_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_py.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" // (* ****** ****** *) #staload "./../SATS/list.sats" #staload "./../SATS/PYlist.sats" (* ****** ****** *) // implement {a}(*tmp*) PYlist_sort_1(xs) = PYlist_sort_2 (xs, lam(x1, x2) => gcompare_val_val(x1, x2)) // (* ****** ****** *) (* end of [PYlist.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/matrixref.dats0000644000175000017500000000452113431250607025406 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_matrixref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_py.sats" // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/PYlist.sats" #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/matrixref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/matrixref.dats" // (* ****** ****** *) // (* assume matrixref_vt0ype_type(a, m, n) = PYlist(a) *) // (* ****** ****** *) %{^ ###### def ats2pypre_matrixref_make_elt(m, n, x0): M = [] i0 = 0 mn = m * n while (i0 < mn): i0 = i0 + 1; M.append(x0) return M ###### %} // end of [%{^] (* ****** ****** *) implement matrixref_get_at {a}(A, i, n, j) = let val A = $UN.cast{PYlist(a)}(A) in PYlist_get_at(A, i*n+j) end // end of [matrixref_get_at] (* ****** ****** *) implement matrixref_set_at {a}(A, i, n, j, x) = let val A = $UN.cast{PYlist(a)}(A) in PYlist_set_at(A, i*n+j, x) end // end of [matrixref_set_at] (* ****** ****** *) %{^ ###### def ats2pypre_mtrxszref_make_matrixref(M, m, n): return { 'matrix' : M, 'nrow' : m, 'ncol' : n } ###### def ats2pypre_mtrxszref_get_nrow(MSZ): return MSZ['nrow'] def ats2pypre_mtrxszref_get_ncol(MSZ): return MSZ['ncol'] ###### def ats2pypre_mtrxszref_get_at(MSZ, i, j): nrow = MSZ['nrow'] ncol = MSZ['ncol'] if (i < 0): raise IndexError('mtrxszref_get_at') if (j < 0): raise IndexError('mtrxszref_get_at') if (i >= nrow): raise IndexError('mtrxszref_get_at') if (j >= ncol): raise IndexError('mtrxszref_get_at') return MSZ['matrix'][i*ncol+j] ###### def ats2pypre_mtrxszref_set_at(MSZ, i, j, x0): nrow = MSZ['nrow'] ncol = MSZ['ncol'] if (i < 0): raise IndexError('mtrxszref_set_at') if (j < 0): raise IndexError('mtrxszref_set_at') if (i >= nrow): raise IndexError('mtrxszref_set_at') if (j >= ncol): raise IndexError('mtrxszref_set_at') MSZ['matrix'][i*ncol+j] = x0; return#_void ###### %} // end of [%{^] (* ****** ****** *) (* end of [matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/arrayref.dats0000644000175000017500000000372113431250607025221 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_arrayref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_py.sats" // #staload "./../SATS/integer.sats" // #staload "./../SATS/PYlist.sats" // (* ****** ****** *) // #staload "./../SATS/intrange.sats" // (* ****** ****** *) // #staload "./../SATS/arrayref.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/arrayref.dats" // (* ****** ****** *) // (* assume arrayref(a, n) = PYlist(a) *) // (* ****** ****** *) // implement arrayref_make_elt {a}{n}(asz, x0) = $UN.cast(PYlist_make_elt(asz, x0)) // (* ****** ****** *) implement arrayref_get_at {a}(A, i) = let val A = $UN.cast{PYlist(a)}(A) in PYlist_get_at(A, i) // end of [val] end // end of [arrayref_get_at] (* ****** ****** *) implement arrayref_set_at {a}(A, i, x) = let val A = $UN.cast{PYlist(a)}(A) in PYlist_set_at(A, i, x) // end of [val] end // end of [arrayref_set_at] (* ****** ****** *) // // Array-with-size // (* ****** ****** *) // implement arrszref_make_arrayref {a}(A, n) = ( $UN.cast{arrszref(a)}(A) ) // (* ****** ****** *) // implement arrszref_size {a}(A) = let val A = $UN.cast{PYlist(a)}(A) in $UN.cast{intGte(0)}(PYlist_length(A)) end // end of [arrszref_size] // (* ****** ****** *) // implement arrszref_get_at {a}(A, i) = let val A = $UN.cast{PYlist(a)}(A) in PYlist_get_at(A, i) // end of [val] end // end of [arrszref_get_at] // implement arrszref_set_at {a}(A, i, x) = let val A = $UN.cast{PYlist(a)}(A) in PYlist_set_at(A, i, x) // end of [val] end // end of [arrszref_set_at] // (* ****** ****** *) (* end of [arrayref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/intrange.dats0000644000175000017500000000115113431250607025210 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_intrange_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/intrange.dats" // (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/list.dats0000644000175000017500000000451613431250607024364 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_py.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" // (* ****** ****** *) // #staload "./../SATS/stream.sats" #staload _ = "./../DATS/stream.dats" // #staload "./../SATS/stream_vt.sats" #staload _ = "./../DATS/stream_vt.dats" // (* ****** ****** *) // #staload "./../SATS/PYlist.sats" // (* ****** ****** *) // #define ATSCC_STREAM 1 #define ATSCC_STREAM_VT 1 // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list.dats" // (* ****** ****** *) // implement {a}(*tmp*) print_list (xs) = fprint_list (stdout, xs) // implement {a}(*tmp*) print_list_sep (xs, sep) = fprint_list_sep (stdout, xs, sep) // (* ****** ****** *) implement PYlist_oflist{a}(xs) = let // fun aux ( xs: List(a), res: PYlist(a) ) : PYlist(a) = case+ xs of | list_nil() => res | list_cons(x, xs) => let val () = PYlist_append(res, x) in aux(xs, res) end // end of [list_cons] // in aux(xs, PYlist_nil()) end // end of [PYlist_oflist] (* ****** ****** *) implement PYlist_oflist_rev{a}(xs) = let // fun aux ( xs: List(a), res: PYlist(a) ) : PYlist(a) = case+ xs of | list_nil() => res | list_cons(x, xs) => let val () = PYlist_cons(x, res) in aux(xs, res) end // end of [list_cons] // in aux(xs, PYlist_nil()) end // end of [PYlist_oflist_rev] (* ****** ****** *) implement list_sort_2 {a}{n}(xs, cmp) = let // val xs = PYlist_oflist{a}(xs) val () = PYlist_sort_2(xs, cmp) // val asz = PYlist_length(xs) // fun loop ( i0: int, res: List0(a) ) : List0(a) = ( // if (i0 < asz) then ( loop(i0+1, list_cons(xs.pop(), res)) ) else res // end of [if] // ) (* end of [loop] *) // in $UN.cast{list(a,n)}(loop(0, list_nil(*void*))) end // end of [list_sort_2] (* ****** ****** *) (* end of [list.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/basics.dats0000644000175000017500000000230113431250607024643 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Javascript *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_basics_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../basics_py.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // #staload "./../SATS/bool.sats" #staload "./../SATS/float.sats" #staload "./../SATS/string.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/basics.dats" // (* ****** ****** *) // implement gcompare_val_val (x, y) = $effmask_all(compare_int0_int0(x, y)) // (* ****** ****** *) // implement gcompare_val_val (x, y) = ( // if (x) then (if y then 0(*t/t*) else 1(*t/f*)) else (if y then ~1(*f/t*) else 0(*f/f*)) // ) (* gcompare_val_val *) // (* ****** ****** *) // implement gcompare_val_val (x, y) = $effmask_all(compare_double_double(x, y)) // implement gcompare_val_val (x, y) = $effmask_all(compare_string_string(x, y)) // (* ****** ****** *) (* end of [basics.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/option.dats0000644000175000017500000000126713431250607024721 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_option_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/bool.sats" #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/option.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/option.dats" // (* ****** ****** *) (* end of [option.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/stream.dats0000644000175000017500000000154413431250607024702 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_stream_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_py.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/reference.sats" // (* ****** ****** *) #staload "./../SATS/stream.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream.dats" // (* ****** ****** *) (* end of [stream.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/string.dats0000644000175000017500000000172713431250607024720 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2016-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_string_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_py.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) #staload "./../SATS/string.sats" #staload "./../SATS/PYlist.sats" (* ****** ****** *) implement string_fset_at {n}{i} ( str0, i0, c0 ) = let // val n0 = string_length(str0) val f0 = string_substring_beg_end(str0, 0, i0) val r0 = string_substring_beg_end(str0, i0+1, n0) // in $UN.cast{string(n)}(string_append_3(f0, c0, r0)) end // end of [string_fset_at] (* ****** ****** *) (* end of [string.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/reference.dats0000644000175000017500000000230513431250607025341 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_reference_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_py.sats" #staload "./../SATS/PYlist.sats" #staload "./../SATS/reference.sats" // (* ****** ****** *) // (* assume ref_vt0ype_type(a:t@ype) = PYlist(a) *) // (* ****** ****** *) (* // implement ref{a}(x) = $UN.cast{ref(a)}(PYlist_sing(x)) implement ref_make_elt{a}(x) = $UN.cast{ref(a)}(PYlist_sing(x)) // implement ref_get_elt{a}(r) = let val r = $UN.cast{PYlist(a)}(r) in PYlist_get_at(r, 0) end // end of [ref_get_elt] // implement ref_set_elt{a}(r, x0) = let val r = $UN.cast{PYlist(a)}(r) in PYlist_set_at(r, 0, x0) end // end of [ref_set_elt] // implement ref_exch_elt{a}(r, x0) = let val r = $UN.cast{PYlist(a?)}(r) // end of [val] val x1 = PYlist_get_at(r, 0) in PYlist_set_at(r, 0, $UN.castvwtp0{a?}(x0)); $UN.castvwtp0{a}(x1) end // end of [ref_exch_elt] // *) (* ****** ****** *) (* end of [reference.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/slistref.dats0000644000175000017500000000127513431250607025243 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX: list-based stack // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_PACKNAME "ATSCC2PY3.slistref" #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_slistref_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/slistref.dats" // (* ****** ****** *) (* end of [slistref.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/BUCS320/0000755000175000017500000000000013431250607023507 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/BUCS320/parcomb/0000755000175000017500000000000013431250607025132 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/BUCS320/parcomb/parcomb.dats0000644000175000017500000000136213431250607027434 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2pypre_BUCS320_parcomb_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_py.sats" // (* ****** ****** *) // #staload "./../../../SATS/list.sats" #staload "./../../../SATS/list_vt.sats" // (* ****** ****** *) // #staload "./../../../SATS/BUCS320/parcomb.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/parcomb/parcomb.dats" // (* ****** ****** *) (* end of [parcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025676 5ustar brandonbrandon././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_dfs.0000644000175000017500000000151113431250607030720 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2pypre_BUCS320_GraphSearch_dfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_py.sats" // #staload "./../../../SATS/bool.sats" #staload "./../../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../../SATS/slistref.sats" // macdef slistref_insert = slistref_push macdef slistref_takeout_opt = slistref_pop_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) (* end of [GraphSearch_dfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/BUCS320/GraphSearch/GraphSearch_bfs.0000644000175000017500000000152013431250607030716 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_BUCS320_" #define ATS_STATIC_PREFIX "_ats2pypre_BUCS320_GraphSearch_bfs_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload "./../../../basics_py.sats" // #staload "./../../../SATS/bool.sats" #staload "./../../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../../SATS/qlistref.sats" // macdef qlistref_insert = qlistref_enqueue macdef qlistref_takeout_opt = qlistref_dequeue_opt // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) (* end of [GraphSearch_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/list_vt.dats0000644000175000017500000000135513431250607025073 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_list_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) #staload "./../basics_py.sats" (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/list_vt.dats" // (* ****** ****** *) (* end of [list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/gprint.dats0000644000175000017500000000206413431250607024710 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_gprint_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) #staload "./../SATS/gprint.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/gprint.dats" // (* ****** ****** *) // extern fun tostring {a:t@ype}(x: a): string = "mac#%" // (* ****** ****** *) // implement {a}(*tmp*) gprint_val(x) = gprint_string(tostring(x)) // (* ****** ****** *) // implement {}(*tmp*) gprint_int(x) = gprint_string(tostring(x)) // (* ****** ****** *) // implement {}(*tmp*) gprint_bool(x) = gprint_string(if x then "true" else "false") // (* ****** ****** *) implement {}(*tmp*) gprint_char(x) = gprint_string(tostring(x)) (* ****** ****** *) implement {}(*tmp*) gprint_double(x) = gprint_string(tostring(x)) (* ****** ****** *) (* end of [gprint.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/print.dats0000644000175000017500000000135313431250607024541 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_print_" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" // (* ****** ****** *) implement print_val (x) = fprint_val (stdout, x) (* ****** ****** *) implement fprint_val = fprint_int implement fprint_val = fprint_bool implement fprint_val = fprint_double implement fprint_val = fprint_string (* ****** ****** *) (* end of [print.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/funarray.dats0000644000175000017500000000142613431250607025235 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_funarray_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // (* #staload "./../SATS/print.sats" #staload "./../SATS/filebas.sats" *) // (* ****** ****** *) // #staload "./../SATS/funarray.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/funarray.dats" // (* ****** ****** *) (* end of [funarray.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/stream_vt.dats0000644000175000017500000000155613431250607025416 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" #define ATS_STATIC_PREFIX "_ats2pypre_stream_vt_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../basics_py.sats" // (* ****** ****** *) // #staload "./../SATS/integer.sats" // (* ****** ****** *) // #staload "./../SATS/print.sats" // (* ****** ****** *) // #staload "./../SATS/list.sats" #staload "./../SATS/list_vt.sats" // (* ****** ****** *) #staload "./../SATS/stream_vt.sats" (* ****** ****** *) // #include "{$LIBATSCC}/DATS/stream_vt.dats" // (* ****** ****** *) (* end of [stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/ML/0000755000175000017500000000000013431250607023036 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/ML/option0.dats0000644000175000017500000000130213431250607025277 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_ML_" #define ATS_STATIC_PREFIX "_ats2pypre_ML_option0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_py.sats" // (* ****** ****** *) // #staload "./../../SATS/ML/option0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/option0.dats" // (* ****** ****** *) (* end of [option0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/ML/list0.dats0000644000175000017500000000232113431250607024744 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_ML_" #define ATS_STATIC_PREFIX "_ats2pypre_ML_list0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_py.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/list.sats" // (* ****** ****** *) // #staload "./../../SATS/stream.sats" // #staload "./../../SATS/stream_vt.sats" #staload _ = "./../../DATS/stream_vt.dats" // (* ****** ****** *) // #staload "./../../SATS/ML/list0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/list0.dats" // (* ****** ****** *) // implement {a}(*tmp*) print_list0 (xs) = fprint_list0 (stdout, xs) // implement {a}(*tmp*) print_list0_sep (xs, sep) = fprint_list0_sep (stdout, xs, sep) // (* ****** ****** *) (* end of [list0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/DATS/ML/array0.dats0000644000175000017500000000155713431250607025121 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) #define ATS_DYNLOADFLAG 0 (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_ML_" #define ATS_STATIC_PREFIX "_ats2pypre_ML_array0_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #staload "./../../basics_py.sats" // (* ****** ****** *) // #staload "./../../SATS/integer.sats" // (* ****** ****** *) // #staload "./../../SATS/print.sats" #staload "./../../SATS/filebas.sats" // (* ****** ****** *) // #staload "./../../SATS/arrayref.sats" #staload "./../../SATS/ML/array0.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/DATS/ML/array0.dats" // (* ****** ****** *) (* end of [array0.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/Makefile0000644000175000017500000001123113431250607023431 0ustar brandonbrandon# # For generating libatscc2py # ###### PATSOPT=$(PATSHOME)/bin/patsopt ATSCC2PY=$(PATSHOME)/bin/atscc2py3 ###### CAT=cat CPF=cp -f RMF=rm -f SCPR=scp -r ###### # all:: ; \ $(PATSOPT) -d ./DATS/string.dats | \ $(ATSCC2PY) -o ./output/DATS/string_dats.py -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/PYlist.dats | \ $(ATSCC2PY) -o ./output/DATS/PYlist_dats.py -i all:: ; \ $(PATSOPT) -d ./DATS/reference.dats | \ $(ATSCC2PY) -o ./output/DATS/reference_dats.py -i # all:: ; \ $(PATSOPT) -d ./DATS/list.dats | \ $(ATSCC2PY) -o ./output/DATS/list_dats.py -i all:: ; \ $(PATSOPT) -d ./DATS/list_vt.dats | \ $(ATSCC2PY) -o ./output/DATS/list_vt_dats.py -i # all:: ; \ $(PATSOPT) -d ./DATS/option.dats | \ $(ATSCC2PY) -o ./output/DATS/option_dats.py -i # all:: ; \ $(PATSOPT) -d ./DATS/stream.dats | \ $(ATSCC2PY) -o ./output/DATS/stream_dats.py -i all:: ; \ $(PATSOPT) -d ./DATS/stream_vt.dats | \ $(ATSCC2PY) -o ./output/DATS/stream_vt_dats.py -i # all:: ; \ $(PATSOPT) -d ./DATS/intrange.dats | \ $(ATSCC2PY) -o ./output/DATS/intrange_dats.py -i # all:: ; \ $(PATSOPT) -d ./DATS/arrayref.dats | \ $(ATSCC2PY) -o ./output/DATS/arrayref_dats.py -i all:: ; \ $(PATSOPT) -d ./DATS/matrixref.dats | \ $(ATSCC2PY) -o ./output/DATS/matrixref_dats.py -i # ###### # all:: ; \ $(PATSOPT) -d ./DATS/funarray.dats | \ $(ATSCC2PY) -o ./output/DATS/funarray_dats.py -i all:: ; \ $(PATSOPT) -d ./DATS/slistref.dats | \ $(ATSCC2PY) -o ./output/DATS/slistref_dats.py -i all:: ; \ $(PATSOPT) -d ./DATS/qlistref.dats | \ $(ATSCC2PY) -o ./output/DATS/qlistref_dats.py -i # ###### all:: ; \ $(PATSOPT) -d ./DATS/ML/list0.dats | \ $(ATSCC2PY) -o ./output/DATS/ML/list0_dats.py -i all:: ; \ $(PATSOPT) -d ./DATS/ML/array0.dats | \ $(ATSCC2PY) -o ./output/DATS/ML/array0_dats.py -i all:: ; \ $(PATSOPT) -d ./DATS/ML/option0.dats | \ $(ATSCC2PY) -o ./output/DATS/ML/option0_dats.py -i ###### # LIBATSCC2PY3_ALL_PY=\ output/libatscc2py3_all.py LIBATSCC2PY3_ALL_PYLIBC_PY=\ output/libatscc2py3_all_pylibc.py LIBATSCC2PY3_ALL_PYGAME_PY=\ output/libatscc2py3_all_pygame.py # ###### all_in_one:: libatscc2py3_all all_in_one:: libatscc2py3_all_pylibc all_in_one:: libatscc2py3_all_pygame ###### # DATE=/bin/date ECHO=/bin/echo -en # PRINTF=printf # ###### # # libatscc2py3_all:: ; \ # $(ECHO) '\n' | $(CAT) - >$(LIBATSCC2PY3_ALL_PY) # libatscc2py3_all:: ; \ $(PRINTF) '\n' | $(CAT) - >$(LIBATSCC2PY3_ALL_PY) libatscc2py3_all:: ; \ $(PRINTF) '######\n' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY) libatscc2py3_all:: ; \ $(PRINTF) '#\n' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY) libatscc2py3_all:: ; \ $(PRINTF) '# Time of Generation:\n' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY) libatscc2py3_all:: ; \ ($(PRINTF) '# ' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY); $(DATE) | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY)) libatscc2py3_all:: ; \ $(PRINTF) '#\n' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY) libatscc2py3_all:: ; \ $(PRINTF) '######\n\n' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY) # ###### libatscc2py3_all:: ; \ $(CAT) >>$(LIBATSCC2PY3_ALL_PY) \ CATS/basics_cats.py \ CATS/integer_cats.py \ CATS/bool_cats.py \ CATS/char_cats.py \ CATS/float_cats.py \ CATS/string_cats.py \ CATS/print_cats.py \ CATS/filebas_cats.py \ CATS/PYlist_cats.py \ CATS/reference_cats.py \ ###### libatscc2py3_all:: ; \ $(CAT) >>$(LIBATSCC2PY3_ALL_PY) \ output/DATS/string_dats.py \ output/DATS/PYlist_dats.py \ output/DATS/reference_dats.py \ output/DATS/list_dats.py \ output/DATS/list_vt_dats.py \ output/DATS/option_dats.py \ output/DATS/stream_dats.py \ output/DATS/stream_vt_dats.py \ output/DATS/intrange_dats.py \ output/DATS/arrayref_dats.py \ output/DATS/matrixref_dats.py \ output/DATS/funarray_dats.py \ output/DATS/slistref_dats.py \ output/DATS/qlistref_dats.py \ output/DATS/ML/list0_dats.py \ output/DATS/ML/array0_dats.py \ output/DATS/ML/option0_dats.py \ ###### # libatscc2py3_all:: ; \ $(PRINTF) '\n' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY) libatscc2py3_all:: ; \ $(PRINTF) '## ###### ###### ##' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY) libatscc2py3_all:: ; \ $(PRINTF) '\n' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY) # libatscc2py3_all:: ; \ $(PRINTF) '\n## end of [libatscc2py3_all.py] ##\n' | $(CAT) - >>$(LIBATSCC2PY3_ALL_PY) # ###### libatscc2py3_all_pylibc:: ; \ $(CAT) >$(LIBATSCC2PY3_ALL_PYLIBC_PY) \ CATS/PYLIBC_random_cats.py \ CATS/PYLIBC_datetime_cats.py \ ###### libatscc2py3_all_pygame:: ; \ $(CAT) >$(LIBATSCC2PY3_ALL_PYGAME_PY) \ CATS/PYGAME_pygame_cats.py \ ###### clean:: ; $(RMF) *~ */*~ ###### # cleanall:: clean # cleanall:: ; rm -rf output/__pycache__ # cleanall:: ; $(RMF) output/DATS/*_?ats.py cleanall:: ; $(RMF) output/DATS/ML/*_?ats.py # cleanall:: ; $(RMF) $(LIBATSCC2PY3_ALL_PY) cleanall:: ; $(RMF) $(LIBATSCC2PY3_ALL_PYLIBC_PY) cleanall:: ; $(RMF) $(LIBATSCC2PY3_ALL_PYGAME_PY) # ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/0000755000175000017500000000000013431250607022552 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/test01.dats0000644000175000017500000000131713431250607024551 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2clj // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test01_dynload" // #define ATS_STATIC_PREFIX "_test01_" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) // val () = repeat(3, $delay(println!("Hello, world!"))) // val () = (3).repeat()(lam() => println!("Hello, world!")) // val () = (3).foreach()(lam(i) => println!(i, ": Hello, world!")) // (* ****** ****** *) %{^ ###### from libatscc2py3_all import * ###### sys.setrecursionlimit(1000000) %} (* end of [%{^] *) (* ****** ****** *) %{$ if __name__=='__main__': test01_dynload() // %} (* end of [%{$] *) (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/PYLIBC/0000755000175000017500000000000013431250607023534 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/PYLIBC/test01.dats0000644000175000017500000000207013431250607025530 0ustar brandonbrandon(* ****** ****** *) // // Trying libatscc2py3/PYLIBC // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Starting time: May 23, 2016 // (* ****** ****** *) // #include"./../../staloadall.hats" // (* ****** ****** *) // staload "./../../SATS/PYLIBC/datetime.sats" // (* ****** ****** *) // extern fun test01_main ( // argless ) : void = "mac#" // (* ****** ****** *) implement test01_main() = { // val today = date_today() val ((*void*)) = println! ("today.ctime() = ", today.ctime()) val ((*void*)) = println! ("today.weekday() = ", today.weekday()) val ((*void*)) = println! ("today.isoweekday() = ", today.isoweekday()) // val today = datetime_today() val ((*void*)) = println! ("today.ctime() = ", today.ctime()) // } (* end of [test01_main] *) (* ****** ****** *) %{^ ###### import sys ###### sys.setrecursionlimit(1000000) ###### from libatscc2py3_all import * from libatscc2py3_all_pylibc import * ###### %} // end of [%{^] (* ****** ****** *) %{$ if __name__ == '__main__': test01_main() %} // end of [%{$] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/PYLIBC/Makefile0000644000175000017500000000114513431250607025175 0ustar brandonbrandon# # A simple Makefile # ###### PYTHON=python3 export PYTHONPATH=./../../output ###### # PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt # ATSCC2PY=$(PATSHOME)/bin/atscc2py3 # ###### # all:: \ test01_dats.py test01_dats.c: test01.dats; $(PATSOPT) -o $@ -d $< test01_dats.py: test01_dats.c; $(ATSCC2PY) -o $@ -i $< # regress:: \ test01_dats.py; $(PYTHON) $< # cleanall:: ; $(RMF) test01_dats.py # ###### testall:: all testall:: regress testall:: cleanall ###### CAT=cat RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### # cleanall:: clean # ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/Makefile0000644000175000017500000000144613431250607024217 0ustar brandonbrandon# # A Simple Makefile # ###### # PYTHON=python3 export PYTHONPATH=./../output # ###### PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt ###### ATSCC2PY=$(PATSHOME)/bin/atscc2py3 ###### all:: regress:: cleanall:: ###### all:: \ test01 test01: test01_dats.py regress:: \ test_test01 test_test01: \ test01_dats.py ; $(PYTHON) $< cleanall:: ; $(RMF) test01_dats.py ###### all:: \ test02 test02: test02_dats.py regress:: \ test_test02 test_test02: \ test02_dats.py ; $(PYTHON) $< cleanall:: ; $(RMF) test02_dats.py ###### %_dats.py: %.dats ; $(PATSOPT) -d $< | $(ATSCC2PY) -o $@ ###### testall:: all testall:: regress testall:: cleanall ###### # RMF=rm -f RMRF=rm -rf # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/PYGAME/0000755000175000017500000000000013431250607023534 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/PYGAME/test01.dats0000644000175000017500000000321713431250607025534 0ustar brandonbrandon(* ****** ****** *) // // Trying libatscc2py3/PYgame // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Starting time: May 23, 2016 // (* ****** ****** *) // #include"./../../staloadall.hats" // (* ****** ****** *) // staload "./../../SATS/PYGAME/pygame.sats" // (* ****** ****** *) // extern fun test01_main ( // argless ) : void = "mac#" // implement test01_main() = { // val npnf = pygame_init_ret() val ((*void*)) = println! ("np = ", npnf.0) val ((*void*)) = println! ("nf = ", npnf.1) // val res = $tup(500,500) val screen = display_set_mode(res) val _(*Rect*) = screen.fill(Color(0, 0, 0)) // val screen2 = Surface(screen.get_size(), SRCALPHA, 32) // (* val () = println! ("screen2_width = ", screen2.get_width()) val () = println! ("screen2_height = ", screen2.get_height()) *) // val c1 = Color(200, 200, 200) // val r0 = Rect(100, 100, 300, 300) // val _rect_ = screen2.fill(c1, r0, 0) // val _rect_ = draw_circle(screen2, Color(0,0,0), $tup(250,250), 100) // val _rect_ = screen.blit(screen2, $tup(0, 0)) // val ((*void*)) = display_flip((*void*)) // val () = loop() where { fun loop(): void = let val e = event_wait() val t = e.type() in ifcase | t = QUIT => () | t = KEYDOWN => () | _(*else*) => loop() end // end of [loop] } // val ((*void*)) = pygame_quit((*void*)) // } (* end of [test01_main] *) // (* ****** ****** *) %{^ ###### from libatscc2py3_all import * ###### from ats2py_pygame_pyame_cats import * ###### sys.setrecursionlimit(1000000) ###### %} // end of [%{^] (* ****** ****** *) %{$ if __name__ == '__main__': test01_main() %} // end of [%{$] (* ****** ****** *) (* end of [test01.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/PYGAME/Makefile0000644000175000017500000000114513431250607025175 0ustar brandonbrandon# # A simple Makefile # ###### PYTHON=python3 export PYTHONPATH=./../../output ###### # PATSCC=$(PATSHOME)/bin/patscc PATSOPT=$(PATSHOME)/bin/patsopt # ATSCC2PY=$(PATSHOME)/bin/atscc2py3 # ###### # all:: \ test01_dats.py test01_dats.c: test01.dats; $(PATSOPT) -o $@ -d $< test01_dats.py: test01_dats.c; $(ATSCC2PY) -o $@ -i $< # regress:: \ test01_dats.py; $(PYTHON) $< # cleanall:: ; $(RMF) test01_dats.py # ###### testall:: all testall:: regress testall:: cleanall ###### CAT=cat RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### # cleanall:: clean # ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/0000755000175000017500000000000013431250607023533 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/0000755000175000017500000000000013431250607025722 5ustar brandonbrandon././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_dfs0000644000175000017500000001007113431250607030632 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_GameOf24Play_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = slistref_make_nil{node}() val () = slistref_insert(store, nx) // in // GraphSearch_dfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{^ ###### from libatscc2py3_all import * ###### sys.setrecursionlimit(1000000) %} (* end of [%{^] *) (* ****** ****** *) %{$ // if __name__ == '__main__': GameOf24Play(3, 3, 8, 8) GameOf24Play(3, 5, 7, 13) GameOf24Play(4, 4, 10, 10) GameOf24Play(5, 5, 7, 11) GameOf24Play(5, 7, 7, 11) // %} (* end of [%{$] *) (* ****** ****** *) (* end of [GameOf24Play_dfs.dats] *) ././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/GameOf24Play_bfs0000644000175000017500000001007013431250607030627 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX "_GameOf24Play_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) // datatype expr = | EXPRval of double | EXPRadd of (expr, expr) | EXPRsub of (expr, expr) | EXPRmul of (expr, expr) | EXPRdiv of (expr, expr) // typedef exprlst = list0(expr) // (* ****** ****** *) // extern fun print_expr : expr -> void and print_expr : print_type(expr) // overload print with print_expr // implement print_expr(x0) = ( case+ x0 of | EXPRval(v) => print(double2int(v)) | EXPRadd(e1, e2) => print!("(", e1, "+", e2, ")") | EXPRsub(e1, e2) => print!("(", e1, "-", e2, ")") | EXPRmul(e1, e2) => print!("(", e1, "*", e2, ")") | EXPRdiv(e1, e2) => print!("(", e1, "/", e2, ")") ) // (* ****** ****** *) implement print_val = print_expr (* ****** ****** *) // #define EPSILON 1E-6 // extern fun eval_expr(expr): double overload ! with eval_expr // implement eval_expr(e0) = ( case+ e0 of | EXPRval(v) => v | EXPRadd(e1, e2) => !e1 + !e2 | EXPRsub(e1, e2) => !e1 - !e2 | EXPRmul(e1, e2) => !e1 * !e2 | EXPRdiv(e1, e2) => !e1 / !e2 ) (* end of [eval_expr] *) // (* ****** ****** *) // extern fun expr_is_0 : expr -> bool extern fun expr_is_24 : expr -> bool // overload iseqz with expr_is_0 // (* ****** ****** *) // implement expr_is_0(e) = abs_double(!e - 0) < EPSILON implement expr_is_24(e) = abs_double(!e - 24) < EPSILON // (* ****** ****** *) // #define list0_sing(x) list0_cons(x, list0_nil()) // extern fun arithops(x: expr, y: expr): exprlst // implement arithops(x, y) = list0_reverse(res) where { val res = nil0() val res = cons0(EXPRadd(x, y), res) val res = cons0(EXPRsub(x, y), res) val res = cons0(EXPRsub(y, x), res) val res = cons0(EXPRmul(x, y), res) val res = (if iseqz(y) then res else cons0(EXPRdiv(x, y), res)): exprlst val res = (if iseqz(x) then res else cons0(EXPRdiv(y, x), res)): exprlst } (* ****** ****** *) assume node_type = exprlst assume nodelst_vtype = list0(exprlst) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) implement node_get_neighbors<> (nx) = aux1(nx, nil0()) where { // fun aux1 ( xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => aux2(x, xs, ys) + aux1(xs, cons0(x, ys)) ) // and aux2 ( x0: expr , xs: exprlst , ys: exprlst ) : list0(exprlst) = ( case+ xs of | nil0() => list0_nil() | cons0(x, xs) => (arithops(x0, x)).map(TYPE{exprlst}) (lam x1 => cons0(x1, list0_reverse_append(ys, xs))) + aux2(x0, xs, cons0(x, ys)) ) (* end of [aux2] *) // } (* end of [node_get_neighbors] *) (* ****** ****** *) // extern fun GameOf24Play ( n1: int, n2: int, n3: int, n4: int ) : void = "mac#" // end-of-function // implement GameOf24Play ( n1, n2, n3, n4 ) = let // #define :: cons0 // val nx = ( n1::n2::n3::n4::nil0() ).map(TYPE{expr})(lam x => EXPRval(int2double(x))) // val nsol = ref{int}(0) // implement process_node<> (nx) = true where { // (* val () = println!("process_node: nx = ", nx) *) // val () = case+ nx of | list0_sing(x) => if expr_is_24(x) then (nsol[] := nsol[]+1; println!(x)) // end of [if] | _(*non-sing*) => () } // val store = qlistref_make_nil{node}() val () = qlistref_insert(store, nx) // in // GraphSearch_bfs(store); if nsol[] = 0 then println! ("There is no solution found!") // end of [if] // end (* end of [GameOf24Play] *) // (* ****** ****** *) %{^ ###### from libatscc2py3_all import * ###### sys.setrecursionlimit(1000000) %} (* end of [%{^] *) (* ****** ****** *) %{$ // if __name__ == '__main__': GameOf24Play(3, 3, 8, 8) GameOf24Play(3, 5, 7, 13) GameOf24Play(4, 4, 10, 10) GameOf24Play(5, 5, 7, 11) GameOf24Play(5, 7, 7, 11) // %} (* end of [%{$] *) (* ****** ****** *) (* end of [GameOf24Play_bfs.dats] *) ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_dfs.0000644000175000017500000000322713431250607031052 0ustar brandonbrandon(* For testing GraphSearh_dfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX"_QueenPuzzle_dfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_dfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).rforeach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = slistref_make_nil{node}() // val () = slistref_insert(store, nil0) // val () = GraphSearch_dfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{^ ###### from libatscc2py3_all import * ###### sys.setrecursionlimit(1000000) %} (* end of [%{^] *) (* ****** ****** *) %{$ // if __name__ == '__main__': QueenPuzzle_solve(); // %} (* end of [%{$] *) (* ****** ****** *) (* end of [QueenPuzzle_dfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/Makefile0000644000175000017500000000257313431250607027371 0ustar brandonbrandon# # A simple Makefile # ###### PATSCC=${PATSHOME}/bin/patscc PATSOPT=${PATSHOME}/bin/patsopt ATSCC2PY=${PATSHOME}/bin/atscc2py3 ###### PYTHON=python3 export PYTHONPATH=./../../../output ###### all:: ###### # all:: \ QueenPuzzle_dfs_dats.py QueenPuzzle_dfs_dats.c: \ QueenPuzzle_dfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_dfs_dats.py: \ QueenPuzzle_dfs_dats.c; $(ATSCC2PY) -o $@ -i $< # regress:: QueenPuzzle_dfs_dats.py; $(PYTHON) $< # ###### # all:: \ QueenPuzzle_bfs_dats.py QueenPuzzle_bfs_dats.c: \ QueenPuzzle_bfs.dats; $(PATSOPT) -o $@ -d $< QueenPuzzle_bfs_dats.py: \ QueenPuzzle_bfs_dats.c; $(ATSCC2PY) -o $@ -i $< # regress:: QueenPuzzle_bfs_dats.py; $(PYTHON) $< # ###### # all:: \ GameOf24Play_dfs_dats.py GameOf24Play_dfs_dats.c: \ GameOf24Play_dfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_dfs_dats.py: \ GameOf24Play_dfs_dats.c; $(ATSCC2PY) -o $@ -i $< # regress:: GameOf24Play_dfs_dats.py; $(PYTHON) $< # ###### # all:: \ GameOf24Play_bfs_dats.py GameOf24Play_bfs_dats.c: \ GameOf24Play_bfs.dats; $(PATSOPT) -o $@ -d $< GameOf24Play_bfs_dats.py: \ GameOf24Play_bfs_dats.c; $(ATSCC2PY) -o $@ -i $< # regress:: GameOf24Play_bfs_dats.py; $(PYTHON) $< # ###### testall:: all testall:: regress testall:: cleanall ###### RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.c ###### cleanall:: clean cleanall:: ; $(RMF) *_?ats.py ###### ###### end of [Makefile] ###### ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.datsATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/BUCS320/GraphSearch/QueenPuzzle_bfs.0000644000175000017500000000322613431250607031047 0ustar brandonbrandon(* For testing GraphSearh_bfs *) (* ****** ****** *) // #define ATS_STATIC_PREFIX"_QueenPuzzle_bfs_" // (* ****** ****** *) // #include "./../../../staloadall.hats" // (* ****** ****** *) // #staload "./../../../DATS/BUCS320/GraphSearch/GraphSearch_bfs.dats" // (* ****** ****** *) implement node_mark<>(nx) = () implement node_unmark<>(nx) = () implement node_is_marked<>(nx) = false (* ****** ****** *) #define N 8 (* ****** ****** *) assume node_type = list0(int) assume nodelst_vtype = stream_vt(node) (* ****** ****** *) // implement {}(*tmp*) theSearchStore_insert_lst(nxs) = ( nxs ).foreach()(lam nx => theSearchStore_insert(nx)) // (* ****** ****** *) // implement node_get_neighbors<> (nx0) = ( (N).stream_vt_map(TYPE{node})(lam x => cons0(x, nx0)) ).filter() ( lam nx => let val-cons0(x0, nx) = nx in nx.iforall()(lam(i, x) => x0 != x && abs(x0 - x) != i+1) end // end of [let] // end of [lam] ) // (* ****** ****** *) // implement process_node<> (nx) = if (length(nx) = N) then let // val () = println! (list0_reverse(nx)) // in true end // end of [then] else true // end of [else] // (* ****** ****** *) // extern fun QueenPuzzle_solve(): void = "mac#" // implement QueenPuzzle_solve() = { val store = qlistref_make_nil{node}() // val () = qlistref_insert(store, nil0) // val () = GraphSearch_bfs(store) // } (* end of [QueenPuzzle_solve] *) // (* ****** ****** *) %{^ ###### from libatscc2py3_all import * ###### sys.setrecursionlimit(1000000) %} (* end of [%{^] *) (* ****** ****** *) %{$ // if __name__ == '__main__': QueenPuzzle_solve(); // %} (* end of [%{$] *) (* ****** ****** *) (* end of [QueenPuzzle_bfs.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/TEST/test02.dats0000644000175000017500000000136513431250607024555 0ustar brandonbrandon(* ****** ****** *) // // For testing libatscc2scm // (* ****** ****** *) // #define ATS_MAINATSFLAG 1 #define ATS_DYNLOADNAME "test02_dynload" // #define ATS_STATIC_PREFIX "_test02_" // (* ****** ****** *) // #include "./../staloadall.hats" // (* ****** ****** *) #define :: list_cons (* ****** ****** *) val xs = ( 0 :: 1 :: 2 :: 3 :: 4 :: 5 :: 6 :: 7 :: 8 :: 9 :: nil() ) : List0 (int) (* ****** ****** *) val () = println! ("xs = ", xs) val () = println! ("xs + xs = ", xs + xs) (* ****** ****** *) %{^ ###### from libatscc2py3_all import * ###### sys.setrecursionlimit(1000000) %} (* end of [%{^] *) (* ****** ****** *) %{$ if __name__=='__main__': test02_dynload() // %} (* end of [%{$] *) (* ****** ****** *) (* end of [test02.dats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/0000755000175000017500000000000013431250607022525 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/PYLIBC/0000755000175000017500000000000013431250607023507 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/PYLIBC/datetime_cats.py0000644000175000017500000000251113431250607026666 0ustar brandonbrandon###### # # HX-2016-06: # for Python code translated from ATS # ###### ###### # beg of [datetime_cats.py] ###### ###### import datetime ###### ############################################ # # For date objects # ############################################ def ats2pylibc_datetime_date_ctime(dt): return dt.ctime() ############################################ def ats2pylibc_datetime_date_weekday(dt): return dt.weekday() def ats2pylibc_datetime_date_isoweekday(dt): return dt.isoweekday() ############################################ def ats2pylibc_datetime_date_replace_day(dt, d): return dt.replace(day=d) def ats2pylibc_datetime_date_replace_year(dt, y): return dt.replace(year=y) def ats2pylibc_datetime_date_replace_month(dt, m): return dt.replace(month=m) ############################################ def ats2pylibc_datetime_date_today(): return datetime.date.today() def ats2pylibc_datetime_date_make_ymd(y, m, d): return datetime.date(y, m, d) ############################################ # # For datetime objects # ############################################ def ats2pylibc_datetime_datetime_ctime(dtm): return dtm.ctime() ############################################ def ats2pylibc_datetime_datetime_today(): return datetime.datetime.today() ############################################ ###### end of [datetime_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/PYLIBC/random_cats.py0000644000175000017500000000104713431250607026355 0ustar brandonbrandon###### # # HX-2016-06: # for Python code translated from ATS # ###### ###### # beg of [random_cats.py] ###### ###### import random ###### ############################################ def ats2pylibc_random_random(): return random.random() ############################################ def ats2pylibc_random_randint(a, b): return random.randint(a, b) ############################################ def ats2pylibc_random_uniform(a, b): return random.uniform(a, b) ############################################ ###### end of [random_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/integer_cats.py0000644000175000017500000000534013431250607025550 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### #beg of [integer_cats.py] ###### ############################################ # def ats2pypre_abs_int0(x): return abs(x) # ############################################ # def ats2pypre_neg_int0(x): return ( -x ) def ats2pypre_neg_int1(x): return ( -x ) # ############################################ # def ats2pypre_succ_int0(x): return (x + 1) def ats2pypre_succ_int1(x): return (x + 1) # def ats2pypre_pred_int0(x): return (x - 1) def ats2pypre_pred_int1(x): return (x - 1) # ############################################ # def ats2pypre_half_int0(x): return (x // 2) def ats2pypre_half_int1(x): return (x // 2) # ############################################ # def ats2pypre_add_int0_int0(x, y): return (x + y) def ats2pypre_add_int1_int1(x, y): return (x + y) # def ats2pypre_sub_int0_int0(x, y): return (x - y) def ats2pypre_sub_int1_int1(x, y): return (x - y) # def ats2pypre_mul_int0_int0(x, y): return (x * y) def ats2pypre_mul_int1_int1(x, y): return (x * y) # def ats2pypre_div_int0_int0(x, y): return (x // y) def ats2pypre_div_int1_int1(x, y): return (x // y) # def ats2pypre_mod_int0_int0(x, y): return (x % y) def ats2pypre_mod_int1_int1(x, y): return (x % y) def ats2pypre_nmod_int1_int1(x, y): return (x % y) # ############################################ # def ats2pypre_lt_int0_int0(x, y): return (x < y) def ats2pypre_lt_int1_int1(x, y): return (x < y) # def ats2pypre_lte_int0_int0(x, y): return (x <= y) def ats2pypre_lte_int1_int1(x, y): return (x <= y) # def ats2pypre_gt_int0_int0(x, y): return (x > y) def ats2pypre_gt_int1_int1(x, y): return (x > y) # def ats2pypre_gte_int0_int0(x, y): return (x >= y) def ats2pypre_gte_int1_int1(x, y): return (x >= y) # def ats2pypre_eq_int0_int0(x, y): return (x == y) def ats2pypre_eq_int1_int1(x, y): return (x == y) # def ats2pypre_neq_int0_int0(x, y): return (x != y) def ats2pypre_neq_int1_int1(x, y): return (x != y) # ############################################ # def ats2pypre_compare_int0_int0(x, y): return -1 if (x < y) else (1 if (x > y) else 0) # ############################################ # def ats2pypre_max_int0_int0(x, y): return (max(x, y)) def ats2pypre_max_int1_int1(x, y): return (max(x, y)) # def ats2pypre_min_int0_int0(x, y): return (min(x, y)) def ats2pypre_min_int1_int1(x, y): return (min(x, y)) # ############################################ # # HX-2016-06 # The code is in print_cats.py: # # def ats2pypre_print_int(i): # return ats2pypre_fprint_int(sys.__stdout__, i) # def ats2pypre_prerr_int(i): # return ats2pypre_fprint_int(sys.__stderr__, i) # def ats2pypre_fprint_int(out, i): return ats2pypre_fprint_obj(out, i) # ############################################ ###### end of [integer_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/print_cats.py0000644000175000017500000000471113431250607025250 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### #beg of [print_cats.py] ###### ############################################ # def ats2pypre_print_int(i): return ats2pypre_fprint_int(sys.__stdout__, i) def ats2pypre_prerr_int(i): return ats2pypre_fprint_int(sys.__stderr__, i) # def ats2pypre_fprint_int(out, i): return ats2pypre_fprint_obj(out, i) # ############################################ # def ats2pypre_print_bool(b): return ats2pypre_fprint_bool(sys.__stdout__, b) def ats2pypre_prerr_bool(b): return ats2pypre_fprint_bool(sys.__stderr__, b) # def ats2pypre_fprint_bool(out, b): return ats2pypre_fprint_obj(out, b) # ############################################ # def ats2pypre_print_char(c): return ats2pypre_fprint_char(sys.__stdout__, c) def ats2pypre_prerr_char(c): return ats2pypre_fprint_char(sys.__stderr__, c) # def ats2pypre_fprint_char(out, c): return ats2pypre_fprint_obj(out, c) # ############################################ # def ats2pypre_print_double(i): return ats2pypre_fprint_double(sys.__stdout__, i) def ats2pypre_prerr_double(i): return ats2pypre_fprint_double(sys.__stderr__, i) # def ats2pypre_fprint_double(out, i): return ats2pypre_fprint_obj(out, i) # ############################################ # def ats2pypre_print_string(x): return ats2pypre_fprint_string(sys.__stdout__, x) def ats2pypre_prerr_string(x): return ats2pypre_fprint_string(sys.__stderr__, x) # def ats2pypre_fprint_string(out, x): return ats2pypre_fprint_obj(out, x) # ############################################ # def ats2pypre_print_obj(x): out = sys.__stdout__ ats2pypre_fprint_obj(out, x); return def ats2pypre_println_obj(x): out = sys.__stdout__ ats2pypre_fprintln_obj(out, x); return # def ats2pypre_prerr_obj(x): out = sys.__stderr__ ats2pypre_fprint_obj(out, x); return def ats2pypre_prerrln_obj(x): out = sys.__stderr__ ats2pypre_fprintln_obj(out, x); return # def ats2pypre_fprint_obj(out, x): print(x, file=out, end=''); return def ats2pypre_fprintln_obj(out, x): print(x, file=out, end='\n'); return # ############################################ # def ats2pypre_print_newline(): out = sys.__stdout__ ats2pypre_fprint_newline(out); return def ats2pypre_prerr_newline(): out = sys.__stderr__ ats2pypre_fprint_newline(out); return # def ats2pypre_fprint_newline(out): print(file=out, end='\n'); sys.stdout.flush(); return # ############################################ ###### end of [print_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/reference_cats.py0000644000175000017500000000104613431250607026050 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### # beg of [reference_cats.py] ###### ############################################ def ats2pypre_ref(x): return [x] def ats2pypre_ref_make_elt(x): return [x] ############################################ # def ats2pypre_ref_get_elt(ref): return ref[0] def ats2pypre_ref_set_elt(ref, x0): ref[0] = x0; return # def ats2pypre_ref_exch_elt(ref, x0): x1 = ref[0]; ref[0] = x0; return x1 # ############################################ ###### end of [reference_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/char_cats.py0000644000175000017500000000027713431250607025034 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### #beg of [char_cats.py] ###### ############################################ ###### end of [char_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/float_cats.py0000644000175000017500000000426313431250607025223 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### #beg of [float_cats.py] ###### ############################################ # def ats2pypre_double2int(x): return int(x) def ats2pypre_int_of_double(x): return int(x) # def ats2pypre_int2double(x): return float(x) def ats2pypre_double_of_int(x): return float(x) # ############################################ # def ats2pypre_abs_double(x): return abs(x) def ats2pypre_neg_double(x): return ( -x ) # def ats2pypre_succ_double(x): return (x + 1) def ats2pypre_pred_double(x): return (x + 1) # ############################################ # def ats2pypre_add_int_double(x, y): return (x + y) def ats2pypre_sub_int_double(x, y): return (x - y) def ats2pypre_mul_int_double(x, y): return (x * y) def ats2pypre_div_int_double(x, y): return (x / y) # def ats2pypre_add_double_int(x, y): return (x + y) def ats2pypre_sub_double_int(x, y): return (x - y) def ats2pypre_mul_double_int(x, y): return (x * y) def ats2pypre_div_double_int(x, y): return (x / y) # def ats2pypre_add_double_double(x, y): return (x + y) def ats2pypre_sub_double_double(x, y): return (x - y) def ats2pypre_mul_double_double(x, y): return (x * y) def ats2pypre_div_double_double(x, y): return (x / y) # ############################################ # def ats2pypre_lt_int_double(x, y): return (x < y) def ats2pypre_lte_int_double(x, y): return (x <= y) def ats2pypre_gt_int_double(x, y): return (x > y) def ats2pypre_gte_int_double(x, y): return (x >= y) # def ats2pypre_lt_double_int(x, y): return (x < y) def ats2pypre_lte_double_int(x, y): return (x <= y) def ats2pypre_gt_double_int(x, y): return (x > y) def ats2pypre_gte_double_int(x, y): return (x >= y) # ############################################ # def ats2pypre_lt_double_double(x, y): return (x < y) def ats2pypre_lte_double_double(x, y): return (x <= y) def ats2pypre_gt_double_double(x, y): return (x > y) def ats2pypre_gte_double_double(x, y): return (x >= y) # def ats2pypre_eq_double_double(x, y): return (x == y) def ats2pypre_neq_double_double(x, y): return (x != y) # def ats2pypre_compare_double_double(x, y): return cmp(x, y) # ############################################ ###### end of [float_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/bool_cats.py0000644000175000017500000000261013431250607025043 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### #beg of [bool_cats.py] ###### ############################################ # def ats2pypre_neg_bool0(x): return(not(x)) def ats2pypre_neg_bool1(x): return(not(x)) # ############################################ def ats2pypre_add_bool0_bool0(x, y): return(x or y) def ats2pypre_add_bool0_bool1(x, y): return(x or y) def ats2pypre_add_bool1_bool0(x, y): return(x or y) def ats2pypre_add_bool1_bool1(x, y): return(x or y) ############################################ def ats2pypre_mul_bool0_bool0(x, y): return(x and y) def ats2pypre_mul_bool0_bool1(x, y): return(x and y) def ats2pypre_mul_bool1_bool0(x, y): return(x and y) def ats2pypre_mul_bool1_bool1(x, y): return(x and y) ############################################ # def ats2pypre_eq_bool0_bool0(x, y): return(x == y) def ats2pypre_eq_bool1_bool1(x, y): return(x == y) # def ats2pypre_neq_bool0_bool0(x, y): return(x != y) def ats2pypre_neq_bool1_bool1(x, y): return(x != y) # ############################################ def ats2pypre_bool2int0(x): return(1 if x else 0) def ats2pypre_bool2int1(x): return(1 if x else 0) ############################################ def ats2pypre_int2bool0(x): return(True if x != 0 else False) def ats2pypre_int2bool1(x): return(True if x != 0 else False) ############################################ ###### end of [bool_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/filebas_cats.py0000644000175000017500000000137113431250607025520 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### #beg of [filebas_cats.py] ###### ############################################ # ats2pypre_stdin = sys.__stdin__ ats2pypre_stdout = sys.__stdout__ ats2pypre_stderr = sys.__stderr__ # ############################################ # def \ ats2pypre_fileref_open_exn(path, fm): return open(path, fm) def \ ats2pypre_fileref_open_opt(path, fm): try: filr = open(path, fm) return ats2pypre_option_some(filr) except IOError: return ats2pypre_option_none() # def \ ats2pypre_fileref_close(filr): return filr.close() # def \ ats2pypre_fileref_get_file_string(filr): return filr.read(-1) # ############################################ ###### end of [filebas_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/basics_cats.py0000644000175000017500000000626013431250607025361 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### #beg of [basics_cats.py] ###### ###### import sys ###### ############################################ # def ATSCKiseqz(x): return (x == 0) def ATSCKisneqz(x): return (x != 0) # def ATSCKptrisnull(xs): return (xs == None) def ATSCKptriscons(xs): return (xs != None) # def ATSCKpat_int(tmp, given): return (tmp == given) def ATSCKpat_bool(tmp, given): return (tmp == given) def ATSCKpat_char(tmp, given): return (tmp == given) def ATSCKpat_float(tmp, given): return (tmp == given) # def ATSCKpat_con0 (con, tag): return (con == tag) def ATSCKpat_con1 (con, tag): return (con[0] == tag) # ############################################ # def ats2pypre_list_nil(): return None def ats2pypre_list_cons(x, xs): return (x, xs) # ############################################ # def ATSINScaseof_fail(em): print("ATSINScaseof_fail:", em, file=sys.__stderr__); sys.exit(1) return # def ATSINSdeadcode_fail(): print("ATSINSdeadcode_fail(", ")", file=sys.__stderr__); sys.exit(1) return # ############################################ def ATSPMVempty(): return ############################################ def ATSPMVlazyval_eval(lazyval): flag = lazyval[0] if (flag==0): lazyval[0] = 1 mythunk = lazyval[1] lazyval[1] = mythunk[0](mythunk) else: lazyval[0] = flag + 1 #endif return lazyval[1] #end-of-[ATSPMVlazyval_eval] ############################################ # def ATSPMVllazyval_eval(llazyval): return llazyval[0](llazyval, True) def atspre_lazy_vt_free(llazyval): return llazyval[0](llazyval, False) # ############################################ def ats2pypre_tostring(x): return str(x) def ats2pypre_toString(x): return str(x) ############################################ def ats2pypre_lazy2cloref(lazyval): return lazyval[1] ############################################ # def ats2pypre_exit(ecode): sys.exit(ecode); return # def ats2pypre_exit_errmsg(ecode, errmsg): print(errmsg, file=sys.__stderr__); sys.exit(1); return # ############################################ # def ats2pypre_assert_bool0(tfv): if not(tfv): sys.exit(1) return def ats2pypre_assert_bool1(tfv): if not(tfv): sys.exit(1) return # def ats2pypre_assert_errmsg_bool0(tfv, errmsg): if not(tfv): print(errmsg, file=sys.__stderr__); sys.exit(1) return def ats2pypre_assert_errmsg_bool1(tfv, errmsg): if not(tfv): print(errmsg, file=sys.__stderr__); sys.exit(1) return # ############################################ # def ats2pypre_cloref0_app(cf): return cf[0](cf) def ats2pypre_cloref1_app(cf, x): return cf[0](cf, x) def ats2pypre_cloref2_app(cf, x1, x2): return cf[0](cf, x1, x2) def ats2pypre_cloref3_app(cf, x1, x2, x3): return cf[0](cf, x1, x2, x3) # ############################################ # def ats2pypre_cloref2fun0(cf): return lambda: ats2pypre_cloref0_app(cf) def ats2pypre_cloref2fun1(cf): return lambda x: ats2pypre_cloref1_app(cf, x) def ats2pypre_cloref2fun2(cf): return lambda x1, x2: ats2pypre_cloref2_app(cf, x1, x2) def ats2pypre_cloref2fun3(cf): return lambda x1, x2, x3: ats2pypre_cloref3_app(cf, x1, x2, x3) # ############################################ ###### end of [basics_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/PYGAME_pygame_cats.py0000777000175000017500000000000013431250607032262 2PYGAME/pygame_cats.pyustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/PYLIBC_datetime_cats.py0000777000175000017500000000000013431250607033106 2PYLIBC/datetime_cats.pyustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/PYLIBC_random_cats.py0000777000175000017500000000000013431250607032256 2PYLIBC/random_cats.pyustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/PYGAME/0000755000175000017500000000000013431250607023507 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/PYGAME/pygame_cats.py0000644000175000017500000001513313431250607026360 0ustar brandonbrandon###### # # HX-2016-05: pygame # ###### ###### #beg of [PYgame_pygame_cats.py] ###### import pygame ############################################ # def ats2py_pygame_pygame_init(): return pygame.init() def ats2py_pygame_pygame_init_ret(): return pygame.init() # def ats2py_pygame_pygame_quit(): return pygame.quit() # ############################################ # def ats2py_pygame_rect_top(obj): return obj.top def ats2py_pygame_rect_left(obj): return obj.left def ats2py_pygame_rect_bottom(obj): return obj.bottom def ats2py_pygame_rect_right(obj): return obj.right # def ats2py_pygame_rect_make_int4(t,l,w,h): return pygame.Rect(t,l,w,h) def ats2py_pygame_rect_make_int2_int2(tl, wh): return pygame.Rect(tl, wh) # ############################################ # def ats2py_pygame_rect_copy(obj): return obj.copy() # def ats2py_pygame_rect_fit(obj, obj2): return obj.fit(obj2) def ats2py_pygame_rect_clip(obj, obj2): return obj.clip(obj2) # def ats2py_pygame_rect_move(obj, x, y): return obj.move(x, y) def ats2py_pygame_rect_move_ip(obj, x, y): return obj.move_ip(x, y) # def ats2py_pygame_rect_inflate(obj, x, y): return obj.inflate(x, y) def ats2py_pygame_rect_inflate_ip(obj, x, y): return obj.inflate_ip(x, y) # def ats2py_pygame_rect_clamp(obj, obj2): return obj.clamp(obj2) def ats2py_pygame_rect_clamp_ip(obj, obj2): return obj.clamp_ip(obj2) # def ats2py_pygame_rect_contains(obj, obj2): return obj.contains(obj2) # ############################################ # def ats2py_pygame_color_r(obj): return obj.r def ats2py_pygame_color_g(obj): return obj.g def ats2py_pygame_color_b(obj): return obj.b def ats2py_pygame_color_a(obj): return obj.a # def ats2py_pygame_color_make_rgb(r, g, b): return pygame.Color(r, g, b, 255) def ats2py_pygame_color_make_rgba(r, g, b, a): return pygame.Color(r, g, b, a) # ############################################ # def ats2py_pygame_draw_rect_(s, c, r): return pygame.draw.rect(s, c, r) def ats2py_pygame_draw_rect_width(s, c, r, w): return pygame.draw.rect(s, c, r, w) # def ats2py_pygame_draw_polygon_(s, c, xs): return pygame.draw.polygon(s, c, xs) def ats2py_pygame_draw_polygon_width(s, c, xs, w): return pygame.draw.polygon(s, c, xs, w) # def ats2py_pygame_draw_circle_(s, c, o, r): return pygame.draw.circle(s, c, o, r) def ats2py_pygame_draw_circle_width(s, c, o, r, w): return pygame.draw.circle(s, c, o, r, w) # def ats2py_pygame_draw_line_(s, c, p0, p1): return pygame.draw.line(s, c, p0, p1) def ats2py_pygame_draw_line_width(s, c, p0, p1, width): return pygame.draw.line(s, c, p0, p1, width) # ############################################ # def ats2py_pygame_event_pump(): return pygame.event.pump() # ############################################ def ats2py_pygame_event_get(): return pygame.event.get() def ats2py_pygame_event_get_type(x): return pygame.event.get_type(x) def ats2py_pygame_event_get_types(xs): return pygame.event.get_types(xs) ############################################ # def ats2py_pygame_event_poll(): return pygame.event.poll() # def ats2py_pygame_event_wait(): return pygame.event.wait() # ############################################ def ats2py_pygame_event_clear(): return pygame.event.clear() def ats2py_pygame_event_clear_type(x): return pygame.event.clear(x) def ats2py_pygame_event_clear_types(xs): return pygame.event.clear(xs) ############################################ def ats2py_pygame_event_post(event): return pygame.event.post(event) ############################################ def ats2py_pygame_event_event_name(type): return pygame.event.event_name(type) ############################################ # def ats2py_pygame_event_set_blocked(): return pygame.event.set_blocked() def ats2py_pygame_event_set_blocked_type(x): return pygame.event.set_blocked(x) def ats2py_pygame_event_set_blocked_types(xs): return pygame.event.set_blocked(xs) # def ats2py_pygame_event_set_allowed(): return pygame.event.set_allowed() def ats2py_pygame_event_set_allowed_type(x): return pygame.event.set_allowed(x) def ats2py_pygame_event_set_allowed_types(xs): return pygame.event.set_allowed(xs) # def ats2py_pygame_event_get_blocked(type): return pygame.event.get_blocked(type) # ############################################ # def ats2py_pygame_event_type(obj): return obj.type def ats2py_pygame_event_type_equal(x, y): return (x == y) def ats2py_pygame_event_type_nequal(x, y): return (x != y) # def ats2py_pygame_event_keyup_key(obj): return obj.key def ats2py_pygame_event_keyup_mod(obj): return obj.mod def ats2py_pygame_event_keydown_key(obj): return obj.key def ats2py_pygame_event_keydown_mod(obj): return obj.mod # ############################################ # def ats2py_pygame_surface_make_(clr): return pyname.Surface(clr) def ats2py_pygame_surface_make_flags_depth(clr, flags, depth): return pygame.Surface(clr,flags,depth) def ats2py_pygame_surface_make_flags_surface(clr, flags, surface): return pygame.Surface(clr,flags,surface) # def ats2py_pygame_surface_get_size(obj): return obj.get_size() def ats2py_pygame_surface_get_width(obj): return obj.get_width() def ats2py_pygame_surface_get_height(obj): return obj.get_height() # def ats2py_pygame_surface_fill_(obj, clr): return obj.fill(clr) def ats2py_pygame_surface_fill_rect_flags(obj, clr, rect, flags): return obj.fill(clr,rect,flags) # def ats2py_pygame_surface_blit_xy(obj, src, dst): return obj.blit(src, dst) def ats2py_pygame_surface_blit_xy_area_flags(obj, src, dst, area, flags): return obj.blit(src,dst,area,flags) def ats2py_pygame_surface_blit_rect(obj, src, dst): return obj.blit(src, dst) def ats2py_pygame_surface_blit_rect_area_flags(obj, src, dst, area, flags): return obj.blit(src,dst,area,flags) # ############################################ # def ats2py_pygame_display_init(): return pygame.display.init() def ats2py_pygame_display_quit(): return pygame.display.quit() # def ats2py_pygame_display_get_init(): return pygame.display.get_init() def ats2py_pygame_display_get_active(): return pygame.display.get_active() # def ats2py_pygame_display_set_mode_resolution(res): return pygame.display.set_mode(res) def ats2py_pygame_display_set_mode_resolution_flags_depth(res,fs,dep): return pygame.display.set_mode(res,fs,dep) # def ats2py_pygame_display_flip(): return pygame.display.flip() def ats2py_pygame_display_update(xs): return pygame.display.update(xs) # def ats2py_pygame_display_iconify(xs): return pygame.display.iconify() # ############################################ # def ats2py_pygame_time_wait(ms): return pygame.time.wait(ms) def ats2py_pygame_time_delay(ms): return pygame.time.delay(ms) # def ats2py_pygame_time_get_ticks(): return pygame.time.get_ticks() # ############################################ ###### end of [PYgame_pygame_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/PYlist_cats.py0000644000175000017500000000464313431250607025344 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### # beg of [PYlist_cats.py] ###### ###### import functools ###### ############################################ def ats2pypre_PYlist_nil(): return [] def ats2pypre_PYlist_sing(x): return [x] def ats2pypre_PYlist_pair(x1, x2): return [x1, x2] ############################################ def ats2pypre_PYlist_cons(x0, xs): return xs.insert(0, x0) ############################################ def ats2pypre_PYlist_make_elt(n, x): res = [] while (n > 0): n = n - 1; res.append(x) return res ############################################ def ats2pypre_PYlist_is_nil(xs): return not(xs) def ats2pypre_PYlist_is_cons(xs): return True if xs else False def ats2pypre_PYlist_isnot_nil(xs): return True if xs else False ############################################ def ats2pypre_PYlist_length(xs): return xs.__len__() ############################################ def ats2pypre_PYlist_get_at(xs, ind): return xs[ind] def ats2pypre_PYlist_set_at(xs, ind, x): xs[ind] = x; return ############################################ def ats2pypre_PYlist_copy(xs): res = [] for x in iter(xs): res.append(x) return res ############################################ def ats2pypre_PYlist_append(xs, x): xs.append(x); return def ats2pypre_PYlist_extend(xs1, xs2): xs1.extend(xs2); return ############################################ def ats2pypre_PYlist_pop_0(xs): return xs.pop() def ats2pypre_PYlist_pop_1(xs, i): return xs.pop(i) ############################################ def ats2pypre_PYlist_insert(xs, i, x): xs.insert(i, x); return ############################################ def ats2pypre_PYlist_map(xs, f): return list(map(f, xs)) def ats2pypre_PYlist_filter(xs, f): return list(filter(f, xs)) ############################################ def ats2pypre_PYlist_string_join(xs): return ''.join(xs) ############################################ def \ ats2pypre_PYlist_reduce(xs, ini, f): res = ini for x in iter(xs): res = f(res, x) return res ############################################ def ats2pypre_PYlist2list_rev(xs): res = ats2pypre_list_nil() for x in iter(xs): res = ats2pypre_list_cons(x, res) return res ############################################ # def ats2pypre_PYlist_sort_2(xs, cmp): xs.sort(key=functools.cmp_to_key(ats2pypre_cloref2fun2(cmp))); return # ############################################ ###### end of [PYlist_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/CATS/string_cats.py0000644000175000017500000000352113431250607025420 0ustar brandonbrandon###### # # HX-2014-08: # for Python code translated from ATS # ###### ###### #beg of [string_cats.py] ###### def ats2pypre_strchr_chr(x): return chr(x) def ats2pypre_strchr_ord(x): return ord(x) ############################################ def ats2pypre_strlen(x): return (x.__len__()) ############################################ def ats2pypre_string_length(x): return len(x) ############################################ def ats2pypre_string_get_at(x, i): return(x[i]) ############################################ def ats2pypre_string_substring_beg_end(x, i, j): return(x[i:j]) def ats2pypre_string_substring_beg_len(x, i, n): return(x[i:i+n]) ############################################ # def ats2pypre_lt_string_string(x, y): return (x < y) def ats2pypre_lte_string_string(x, y): return (x <= y) # def ats2pypre_gt_string_string(x, y): return (x > y) def ats2pypre_gte_string_string(x, y): return (x >= y) # def ats2pypre_eq_string_string(x, y): return (x == y) def ats2pypre_neq_string_string(x, y): return (x != y) # ############################################ # def ats2pypre_compare_string_string(x, y): return -1 if (x < y) else (1 if (x > y) else 0) # ############################################ def ats2pypre_string_isalnum(x): return (x.isalnum()) def ats2pypre_string_isalpha(x): return (x.isalpha()) def ats2pypre_string_isdecimal(x): return (x.isdecimal()) ############################################ def ats2pypre_string_lower(x): return (x.lower()) def ats2pypre_string_upper(x): return (x.upper()) ############################################ def ats2pypre_string_append_2(x1, x2): return (x1+x2) def ats2pypre_string_append_3(x1, x2, x3): return "".join((x1, x2, x3)) def ats2pypre_string_append_4(x1, x2, x3, x4): return "".join((x1, x2, x3, x4)) ############################################ ###### end of [string_cats.py] ###### ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/0000755000175000017500000000000013431250607022545 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/PYLIBC/0000755000175000017500000000000013431250607023527 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/PYLIBC/random.sats0000644000175000017500000000073113431250607025704 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pylibc_random_" // (* ****** ****** *) // staload "./../../basics_py.sats" // (* ****** ****** *) // fun random(): double = "mac#%" // fun randint {l,r:int | l <= r} (int(l), int(r)): intBtwe(l, r) = "mac#%" // fun uniform(double, double): double = "mac#%" // (* ****** ****** *) (* end of [random.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/PYLIBC/datetime.sats0000644000175000017500000000271213431250607026221 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2016-07: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pylibc_datetime_" // (* ****** ****** *) // staload "./../../basics_py.sats" // (* ****** ****** *) // abstype date_object typedef date = date_object // abstype datetime_object typedef datetime = datetime_object // (* ****** ****** *) // // For date objects // (* ****** ****** *) // fun date_make_ymd ( y: int, m: int, d: int ) : date = "mac#%" // end-of-fun // fun date_today(): date = "mac#%" // (* ****** ****** *) // fun date_ctime(date): string = "mac#%" // overload .ctime with date_ctime // (* ****** ****** *) // fun date_weekday (dt: date): intBtwe(0, 6) = "mac#%" fun date_isoweekday (dt: date): intBtwe(1, 7) = "mac#%" // overload .weekday with date_weekday overload .isoweekday with date_isoweekday // (* ****** ****** *) // fun date_replace_day(date, int): date = "mac#%" overload .replace_day with date_replace_day // fun date_replace_year(date, int): date = "mac#%" fun date_replace_month(date, int): date = "mac#%" // overload .replace_year with date_replace_year overload .replace_month with date_replace_month // (* ****** ****** *) // // For datetime objects // (* ****** ****** *) // fun datetime_today(): datetime = "mac#%" // (* ****** ****** *) // fun datetime_ctime(datetime): string = "mac#%" // overload .ctime with datetime_ctime // (* ****** ****** *) (* end of [datetime.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/intrange.sats0000644000175000017500000000064513431250607025255 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/intrange.sats" // (* ****** ****** *) (* end of [intrange.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/float.sats0000644000175000017500000000670713431250607024560 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // fun double2int (x: double): int = "mac#%" fun int_of_double (x: double): int = "mac#%" // fun int2double (x: int): double = "mac#%" fun double_of_int (x: int): double = "mac#%" // (* ****** ****** *) fun abs_double : (double) -> double = "mac#%" fun neg_double : (double) -> double = "mac#%" (* ****** ****** *) overload abs with abs_double of 100 overload neg with neg_double of 100 (* ****** ****** *) fun succ_double : (double) -> double = "mac#%" fun pred_double : (double) -> double = "mac#%" (* ****** ****** *) overload succ with succ_double of 100 overload pred with pred_double of 100 (* ****** ****** *) // fun add_int_double : (int, double) - double = "mac#%" fun add_double_int : (double, int) - double = "mac#%" // fun sub_int_double : (int, double) - double = "mac#%" fun sub_double_int : (double, int) - double = "mac#%" // fun mul_int_double : (int, double) - double = "mac#%" fun mul_double_int : (double, int) - double = "mac#%" // fun div_int_double : (int, double) - double = "mac#%" fun div_double_int : (double, int) - double = "mac#%" // (* ****** ****** *) overload + with add_int_double of 100 overload + with add_double_int of 100 overload - with sub_int_double of 100 overload - with sub_double_int of 100 overload * with mul_int_double of 100 overload * with mul_double_int of 100 overload / with div_int_double of 100 overload / with div_double_int of 100 (* ****** ****** *) typedef float_aop_type = (double, double) -> double (* ****** ****** *) // fun add_double_double : float_aop_type = "mac#%" fun sub_double_double : float_aop_type = "mac#%" fun mul_double_double : float_aop_type = "mac#%" fun div_double_double : float_aop_type = "mac#%" // (* ****** ****** *) // overload + with add_double_double of 100 overload - with sub_double_double of 100 overload * with mul_double_double of 100 overload / with div_double_double of 100 // (* ****** ****** *) // fun lt_int_double : (int, double) - bool = "mac#%" fun lte_int_double : (int, double) - bool = "mac#%" fun gt_int_double : (int, double) - bool = "mac#%" fun gte_int_double : (int, double) - bool = "mac#%" // fun lt_double_int : (double, int) - bool = "mac#%" fun lte_double_int : (double, int) - bool = "mac#%" fun gt_double_int : (double, int) - bool = "mac#%" fun gte_double_int : (double, int) - bool = "mac#%" // (* ****** ****** *) typedef float_cmp_type = (double, double) - bool (* ****** ****** *) // fun lt_double_double : float_cmp_type = "mac#%" fun lte_double_double : float_cmp_type = "mac#%" // fun gt_double_double : float_cmp_type = "mac#%" fun gte_double_double : float_cmp_type = "mac#%" // fun eq_double_double : float_cmp_type = "mac#%" fun neq_double_double : float_cmp_type = "mac#%" // (* ****** ****** *) // fun compare_double_double : (double, double) - int // (* ****** ****** *) // overload < with lt_double_double of 100 overload <= with lte_double_double of 100 overload > with gt_double_double of 100 overload >= with gte_double_double of 100 overload = with eq_double_double of 100 overload != with neq_double_double of 100 overload <> with neq_double_double of 100 // overload compare with compare_double_double of 100 // (* ****** ****** *) (* end of [float.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/filebas.sats0000644000175000017500000000133013431250607025043 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) #staload "./../basics_py.sats" (* ****** ****** *) // val stdin : PYfilr = "mac#%" val stdout : PYfilr = "mac#%" val stderr : PYfilr = "mac#%" // (* ****** ****** *) // fun fileref_open_exn (path: string, fm: file_mode): PYfilr = "mac#%" fun fileref_open_opt (path: string, fm: file_mode): Option_vt(PYfilr) = "mac#%" // (* ****** ****** *) // fun fileref_close(fil: PYfilr): void = "mac#%" // (* ****** ****** *) // fun fileref_get_file_string(inp: PYfilr): string = "mac#%" // (* ****** ****** *) (* end of [filebas.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/list.sats0000644000175000017500000000122613431250607024415 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // #include "{$LIBATSCC}/SATS/list.sats" // (* ****** ****** *) // fun{a:t0p} fprint_list (PYfilr, List(INV(a))): void = "mac#%" // fun{} fprint_list$sep (out: PYfilr): void = "mac#%" // fun{a:t0p} fprint_list_sep (PYfilr, List(INV(a)), sep: string): void = "mac#%" // overload fprint with fprint_list of 100 // (* ****** ****** *) (* end of [list.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/char.sats0000644000175000017500000000033413431250607024356 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) (* end of [char.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/list_vt.sats0000644000175000017500000000061413431250607025126 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // #include "{$LIBATSCC}/SATS/list_vt.sats" // (* ****** ****** *) (* end of [list_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/arrayref.sats0000644000175000017500000000061613431250607025257 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // #include "{$LIBATSCC}/SATS/arrayref.sats" // (* ****** ****** *) (* end of [arrayref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/matrixref.sats0000644000175000017500000000065013431250607025443 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/matrixref.sats" // (* ****** ****** *) (* end of [matrixref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/string.sats0000644000175000017500000000535513431250607024757 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) typedef strchr = string(1) (* ****** ****** *) // fun strchr_chr : int -> strchr = "mac#%" // fun strchr_ord : strchr -> int = "mac#%" // (* ****** ****** *) // fun string_get_at {n:int}{i:nat | i < n} ( str: string(n), i: int(i) ) : strchr = "mac#%" // end-of-fun // overload [] with string_get_at of 100 // (* ****** ****** *) // fun string_fset_at {n:int} {i:nat | i < n} ( str: string(n), i0: int(i), c0: strchr ) : string(n) = "mac#%" // end-of-fun // (* ****** ****** *) // fun string_substring_beg_end {n:int} {i,j:int | 0 <= i; i <= j; j <= n} ( str: string(n), i0: int(i), j0: int(j) ) : string(j-i) = "mac#%" // end-of-fun // // fun string_substring_beg_len {n:int} {i,len:nat | i + len <= n} ( str: string(n), i0: int(i), len: int(len) ) : string(len) = "mac#%" // end-of-fun // (* ****** ****** *) // fun string_length {n:int}(string(n)): int(n) = "mac#%" // overload length with string_length of 100 // (* ****** ****** *) // fun lt_string_string : (string, string) -> bool = "mac#%" fun lte_string_string : (string, string) -> bool = "mac#%" fun gt_string_string : (string, string) -> bool = "mac#%" fun gte_string_string : (string, string) -> bool = "mac#%" // fun eq_string_string : (string, string) -> bool = "mac#%" fun neq_string_string : (string, string) -> bool = "mac#%" // (* ****** ****** *) // overload < with lt_string_string of 100 overload <= with lte_string_string of 100 overload > with gt_string_string of 100 overload >= with gte_string_string of 100 // overload = with eq_string_string of 100 overload != with neq_string_string of 100 overload <> with neq_string_string of 100 // (* ****** ****** *) // fun compare_string_string: (string, string) -> intBtwe(~1, 1) = "mac#%" // overload compare with compare_string_string of 100 // (* ****** ****** *) // fun string_isalnum : string -> bool = "mac#%" fun string_isalpha : string -> bool = "mac#%" fun string_isdecimal : string -> bool = "mac#%" // (* ****** ****** *) // fun string_lower(string): string = "mac#%" fun string_upper(string): string = "mac#%" // (* ****** ****** *) //` fun string_append_2 (string, string): string = "mac#%" // fun string_append_3 ( x1: string, x2: string, x3: string ) : string = "mac#%" // end-of-fun fun string_append_4 ( x1: string, x2: string, x3: string, x4: string ) : string = "mac#%" // end-of-fun // overload + with string_append_2 of 100 // overload string_append with string_append_2 of 100 overload string_append with string_append_3 of 100 overload string_append with string_append_4 of 100 // (* ****** ****** *) (* end of [string.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/stream_vt.sats0000644000175000017500000000062013431250607025443 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // #include "{$LIBATSCC}/SATS/stream_vt.sats" // (* ****** ****** *) (* end of [stream_vt.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/integer.sats0000644000175000017500000001027113431250607025077 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // fun abs_int0 : int - int = "mac#%" // overload abs with abs_int0 of 100 // (* ****** ****** *) // fun neg_int0 : int - int = "mac#%" // fun neg_int1 : {i:int} int(i) - int(~i) = "mac#%" // overload ~ with neg_int0 of 100 overload ~ with neg_int1 of 110 overload neg with neg_int0 of 100 overload neg with neg_int1 of 110 // (* ****** ****** *) // fun succ_int0 : int - int = "mac#%" fun pred_int0 : int - int = "mac#%" // fun succ_int1 : {i:int} int(i) - int(i+1) = "mac#%" fun pred_int1 : {i:int} int(i) - int(i-1) = "mac#%" // overload succ with succ_int0 of 100 overload pred with pred_int0 of 100 // overload succ with succ_int1 of 110 overload pred with pred_int1 of 110 // (* ****** ****** *) // fun half_int0 : int - int = "mac#%" fun half_int1 : {i:int} int(i) - int(i/2) = "mac#%" // overload half with half_int0 of 100 overload half with half_int1 of 110 // (* ****** ****** *) // fun add_int0_int0 : (int, int) - int = "mac#%" fun sub_int0_int0 : (int, int) - int = "mac#%" fun mul_int0_int0 : (int, int) - int = "mac#%" fun div_int0_int0 : (int, int) - int = "mac#%" fun mod_int0_int0 : (int, int) - int = "mac#%" // fun add_int1_int1 : {i,j:int} (int(i), int(j)) - int(i+j) = "mac#%" fun sub_int1_int1 : {i,j:int} (int(i), int(j)) - int(i-j) = "mac#%" fun mul_int1_int1 : {i,j:int} (int(i), int(j)) - int(i*j) = "mac#%" fun div_int1_int1 : {i,j:int} (int(i), int(j)) - int(i/j) = "mac#%" // (* ****** ****** *) // overload + with add_int0_int0 of 100 overload - with sub_int0_int0 of 100 overload * with mul_int0_int0 of 100 overload / with div_int0_int0 of 100 overload % with mod_int0_int0 of 100 overload mod with mod_int0_int0 of 100 // overload + with add_int1_int1 of 120 overload - with sub_int1_int1 of 120 overload * with mul_int1_int1 of 120 overload / with div_int1_int1 of 120 // (* ****** ****** *) // fun nmod_int1_int1 { i,j:int | i >= 0; j > 0 } (i: int(i), j: int(j)): int(nmod(i, j)) = "mac#%" // (* ****** ****** *) // fun lt_int0_int0 : (int, int) - bool = "mac#%" fun lte_int0_int0 : (int, int) - bool = "mac#%" fun gt_int0_int0 : (int, int) - bool = "mac#%" fun gte_int0_int0 : (int, int) - bool = "mac#%" // fun eq_int0_int0 : (int, int) - bool = "mac#%" fun neq_int0_int0 : (int, int) - bool = "mac#%" // fun compare_int0_int0: (int, int) - int = "mac#%" // (* ****** ****** *) // fun lt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i < j) = "mac#%" fun lte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i <= j) = "mac#%" fun gt_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i > j) = "mac#%" fun gte_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i >= j) = "mac#%" // fun eq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i == j) = "mac#%" fun neq_int1_int1 : {i,j:int} (int(i), int(j)) - bool(i != j) = "mac#%" // (* ****** ****** *) // overload < with lt_int0_int0 of 100 overload <= with lte_int0_int0 of 100 overload > with gt_int0_int0 of 100 overload >= with gte_int0_int0 of 100 overload = with eq_int0_int0 of 100 overload != with neq_int0_int0 of 100 overload <> with neq_int0_int0 of 100 // overload compare with compare_int0_int0 of 100 // (* ****** ****** *) // overload < with lt_int1_int1 of 120 overload <= with lte_int1_int1 of 120 overload > with gt_int1_int1 of 120 overload >= with gte_int1_int1 of 120 overload = with eq_int1_int1 of 120 overload != with neq_int1_int1 of 120 overload <> with neq_int1_int1 of 120 // (* ****** ****** *) // fun max_int0_int0: (int, int) - int = "mac#%" fun min_int0_int0: (int, int) - int = "mac#%" // fun max_int1_int1 : {i,j:int} (int(i), int(j)) - int(max(i,j)) = "mac#%" fun min_int1_int1 : {i,j:int} (int(i), int(j)) - int(min(i,j)) = "mac#%" // (* ****** ****** *) // overload max with max_int0_int0 of 100 overload min with min_int0_int0 of 100 // overload max with max_int1_int1 of 120 overload min with min_int1_int1 of 120 // (* ****** ****** *) (* end of [integer.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/PYlist.sats0000644000175000017500000000653713431250607024700 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // // Python datatypes // #staload "./../basics_py.sats" // (* ****** ****** *) // fun PYlist_nil {a:vt0p}(): PYlist(a) = "mac#%" // fun PYlist_sing {a:vt0p}(x: a): PYlist(a) = "mac#%" // fun PYlist_pair {a:vt0p}(x1: a, x2: a): PYlist(a) = "mac#%" // (* ****** ****** *) // fun PYlist_cons {a:vt0p}(x0: a, xs: PYlist(a)): void = "mac#%" // (* ****** ****** *) // fun PYlist_make_elt {a:t0p}{n:nat}(n: int(n), x0: a): PYlist(a) = "mac#%" // (* ****** ****** *) // fun PYlist_is_nil {a:vt0p}(xs: PYlist(a)): bool = "mac#%" // fun PYlist_is_cons {a:vt0p}(xs: PYlist(a)): bool = "mac#%" // fun PYlist_isnot_nil {a:vt0p}(xs: PYlist(a)): bool = "mac#%" // (* ****** ****** *) // fun PYlist_length{a:vt0p}(PYlist(a)): int = "mac#%" // (* ****** ****** *) // fun PYlist_get_at {a:t0p}(xs: PYlist(a), i: int): a = "mac#%" fun PYlist_set_at {a:t0p}(xs: PYlist(a), i: int, x0: a): void = "mac#%" // fun PYlist_exch_at {a:vt0p}(xs: PYlist(a), i: int, x0: a): (a) = "mac#%" // (* ****** ****** *) // fun PYlist_copy {a:t@ype}(PYlist(a)): PYlist(a) = "mac#%" // (* ****** ****** *) // // HX-2015-07: // Note that [append] and [extend] are used // in precisely the opposite manner as in ATS // fun PYlist_append {a:vt0p}(xs1: PYlist(a), x2: a): void = "mac#%" // fun PYlist_extend {a:t@ype}(xs1: PYlist(a), xs2: PYlist(a)): void = "mac#%" // (* ****** ****** *) // fun PYlist_pop_0 {a:vt0p}(xs: PYlist(a)): (a) = "mac#%" fun PYlist_pop_1 {a:vt0p}(xs: PYlist(a), i: intGte(0)): (a) = "mac#%" // symintr PYlist_pop overload PYlist_pop with PYlist_pop_0 overload PYlist_pop with PYlist_pop_1 // (* ****** ****** *) // fun PYlist_insert{a:vt0p} (xs: PYlist(a), i: intGte(0), x: a): void = "mac#%" // (* ****** ****** *) // fun PYlist_reverse{a:vt0p} (xs: PYlist(a)): void = "mac#%" // (* ****** ****** *) // fun PYlist_map {a:t0p}{b:t0p} (xs: PYlist(a), f: (a) -> b): PYlist(b) = "mac#%" // fun PYlist_map2 {a1,a2:t0p}{b:t0p} ( xs1: PYlist(a1), xs2: PYlist(a2), f: (a1, a2) -> b ) : PYlist(b) = "mac#%" // end of [PYlist_map2] // (* ****** ****** *) // fun PYlist_filter{a:t0p} (xs: PYlist(a), p: (a) -> bool): PYlist(a) = "mac#%" // (* ****** ****** *) // fun PYlist_reduce {a:t0p}{b:t0p} (xs: PYlist(b), ini: a, f: (a, b) -> a): (a) = "mac#%" // (* ****** ****** *) // fun PYlist2list{a:t0p} (xs: PYlist(a)): List0(a) = "mac#%" fun PYlist2list_rev{a:t0p} (xs: PYlist(a)): List0(a) = "mac#%" // (* ****** ****** *) // fun PYlist_string_join(xs: PYlist(string)): string = "mac#%" // (* ****** ****** *) // // HX-2016-05-25: // Implemented in [list.dats] // fun PYlist_oflist{a:t0p}(xs: List(INV(a))): PYlist(a) = "mac#%" fun PYlist_oflist_rev{a:t0p}(xs: List(INV(a))): PYlist(a) = "mac#%" // (* ****** ****** *) // fun{a:t0p} PYlist_sort_1(xs: PYlist(a)): void // = "mac#%" fun PYlist_sort_2{a:t0p} (xs: PYlist(a), cmp: (a, a) - int): void = "mac#%" // (* ****** ****** *) // // Some function overloading // (* ****** ****** *) // overload [] with PYlist_get_at overload [] with PYlist_set_at // (* ****** ****** *) overload .pop with PYlist_pop overload .push with PYlist_append (* ****** ****** *) overload length with PYlist_length (* ****** ****** *) (* end of [PYlist.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/PYGAME/0000755000175000017500000000000013431250607023527 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/PYGAME/pygame.sats0000644000175000017500000002252413431250607025712 0ustar brandonbrandon(* ** libatscc2py_pygame *) (* ****** ****** *) // // HX-2016-05: // prefix for external names // (* ****** ****** *) // staload "./../../basics_py.sats" // (* ****** ****** *) #define ATS_EXTERN_PREFIX "ats2py_pygame_" (* ****** ****** *) typedef int2 = $tup(int, int) typedef int3 = $tup(int, int, int) typedef int4 = $tup(int, int, int, int) (* ****** ****** *) (* abstype Key *) (* ****** ****** *) abstype Rect abstype Color (* ****** ****** *) // abstype Event // typedef Eventlist = PYlist(Event) // abstype Event_type // (* ****** ****** *) abstype Surface (* ****** ****** *) // fun pygame_init(): void = "mac#%" // fun pygame_init_ret ( // argumentless ) : $tup(int(*npass*), int(*nfail*)) = "mac#%" // (* ****** ****** *) fun pygame_quit(): void = "mac#%" (* ****** ****** *) // fun rect_make_int4 ( t:int, l:int, x:int, y:int ) : Rect = "mac#%" fun rect_make_int2_int2 (tl: int2, xy: int2) : Rect = "mac#%" // overload Rect with rect_make_int4 overload Rect with rect_make_int2_int2 // (* ****** ****** *) // fun rect_top : Rect -> int = "mac#%" fun rect_left : Rect -> int = "mac#%" fun rect_bottom : Rect -> int = "mac#%" fun rect_right : Rect -> int = "mac#%" // overload .top with rect_top overload .left with rect_left overload .bottom with rect_bottom overload .right with rect_right // (* ****** ****** *) // fun rect_copy (r0: Rect): Rect = "mac#%" // overload .copy with rect_copy // (* ****** ****** *) // fun rect_fit(Rect, Rect): Rect = "mac#%" // overload .fit with rect_fit // fun rect_clip(Rect, Rect): Rect = "mac#%" // overload .clip with rect_clip // (* ****** ****** *) // fun rect_contains(Rect, Rect): bool = "mac#%" // overload .contains with rect_contains // (* ****** ****** *) // fun rect_move (Rect, x: int, y: int): Rect = "mac#%" fun rect_move_ip (Rect, x: int, y: int): void = "mac#%" // overload .move with rect_move overload .move_ip with rect_move_ip // (* ****** ****** *) // fun rect_inflate (Rect, x: int, y: int): Rect = "mac#%" fun rect_inflate_ip (Rect, x: int, y: int): void = "mac#%" // overload .inflate with rect_inflate overload .inflate_ip with rect_inflate_ip // (* ****** ****** *) // fun rect_clamp(Rect, Rect): Rect = "mac#%" fun rect_clamp_ip(Rect, Rect): void = "mac#%" // overload .clamp with rect_clamp overload .clamp_ip with rect_clamp_ip // (* ****** ****** *) // fun rect_union(Rect, Rect): Rect = "mac#%" fun rect_union_ip(Rect, Rect): void = "mac#%" // overload .union with rect_union overload .union_ip with rect_union_ip // (* ****** ****** *) // fun color_r : Color -> int fun color_g : Color -> int fun color_b : Color -> int fun color_a : Color -> int // overload .r with color_r overload .g with color_g overload .b with color_b overload .a with color_a // (* ****** ****** *) // fun color_make_rgb (r:int, g:int, b:int): Color = "mac#%" fun color_make_rgba (r:int, g:int, b:int, a:int): Color = "mac#%" // overload Color with color_make_rgb overload Color with color_make_rgba // (* ****** ****** *) // fun draw_rect_ (Surface, Color, Rect): Rect = "mac#%" fun draw_rect_width (Surface, Color, Rect, width: int): Rect = "mac#%" // overload draw_rect with draw_rect_ overload draw_rect with draw_rect_width // (* ****** ****** *) // fun draw_polygon_ (Surface, Color, PYlist(int2)): Rect = "mac#%" fun draw_polygon_width (Surface, Color, PYlist(int2), width: int): Rect = "mac#%" // overload draw_polygon with draw_polygon_ overload draw_polygon with draw_polygon_width // (* ****** ****** *) // fun draw_circle_ ( Surface, Color, center: int2, radius: int ) : Rect = "mac#%" fun draw_circle_width ( Surface, Color, center: int2, radius: int, width: int ) : Rect = "mac#%" // overload draw_circle with draw_circle_ overload draw_circle with draw_circle_width // (* ****** ****** *) // fun draw_line_ (Surface, Color, p0: int2, p1: int2): Rect = "mac#%" fun draw_line_width (Surface, Color, p0: int2, p1: int2, width: int): Rect = "mac#%" // overload draw_line with draw_line_ overload draw_line with draw_line_width // (* ****** ****** *) (* QUIT none ACTIVEEVENT gain, state KEYDOWN unicode, key, mod KEYUP key, mod MOUSEMOTION pos, rel, buttons MOUSEBUTTONUP pos, button MOUSEBUTTONDOWN pos, button JOYAXISMOTION joy, axis, value JOYBALLMOTION joy, ball, rel JOYHATMOTION joy, hat, value JOYBUTTONUP joy, button JOYBUTTONDOWN joy, button VIDEORESIZE size, w, h VIDEOEXPOSE none USEREVENT code *) // macdef QUIT = $extval(Event_type, "pygame.QUIT") // macdef KEYUP = $extval(Event_type, "pygame.KEYUP") macdef KEYDOWN = $extval(Event_type, "pygame.KEYDOWN") // macdef NOEVENT = $extval(Event_type, "pygame.NOEVENT") // macdef USEREVENT = $extval(Event_type, "pygame.USEREVENT") // macdef ACTIVEEVENT = $extval(Event_type, "pygame.ACTIVEEVENT") // macdef MOUSEMOTION = $extval(Event_type, "pygame.MOUSEMOTION") // macdef MOUSEBUTTONUP = $extval(Event_type, "pygame.MOUSEBUTTONUP") macdef MOUSEBUTTONDOWN = $extval(Event_type, "pygame.MOUSEBUTTONDOWN") // macdef VIDEORESIZE = $extval(Event_type, "pygame.VIDEORESIZE") macdef VIDEOEXPOSE = $extval(Event_type, "pygame.VIDEOEXPOSE") // macdef JOYBUTTONUP = $extval(Event_type, "pygame.JOYBUTTONUP") macdef JOYBUTTONDOWN = $extval(Event_type, "pygame.JOYBUTTONDOWN") // macdef JOYHATMOTION = $extval(Event_type, "pygame.JOYHATMOTION") macdef JOYAXISMOTION = $extval(Event_type, "pygame.JOYAXISMOTION") macdef JOYBALLMOTION = $extval(Event_type, "pygame.JOYBALLMOTION") // (* ****** ****** *) // fun event_type (Event): Event_type = "mac#%" // overload .type with event_type // fun event_type_equal (x: Event_type, y: Event_type): bool = "mac#%" fun event_type_nequal (x: Event_type, y: Event_type): bool = "mac#%" // overload = with event_type_equal overload != with event_type_nequal // (* ****** ****** *) // fun event_keyup_key(x: Event): int = "mac#%" fun event_keyup_mod(x: Event): int = "mac#%" // overload .keyup_key with event_keyup_key overload .keyup_mod with event_keyup_mod // fun event_keydown_key(x: Event): int = "mac#%" fun event_keydown_mod(x: Event): int = "mac#%" // overload .keydown_key with event_keydown_key overload .keydown_mod with event_keydown_mod // (* ****** ****** *) // fun event_pump(): void = "mac#%" // (* ****** ****** *) // fun event_get(): Eventlist = "mac#%" fun event_get_type(Event_type): Eventlist = "mac#%" // (* ****** ****** *) // fun event_poll(): Event = "mac#%" // (* ****** ****** *) // fun event_wait(): Event = "mac#%" // (* ****** ****** *) // fun event_clear(): void = "mac#%" fun event_clear_type(Event_type): void = "mac#%" // (* ****** ****** *) // fun event_post(Event): void = "mac#%" // (* ****** ****** *) // fun event_event_name(Event_type): string = "mac#%" // (* ****** ****** *) // fun event_set_blocked(): bool = "mac#%" fun event_set_blocked_type(Event_type): bool = "mac#%" // (* ****** ****** *) // fun event_set_allowed(): bool = "mac#%" fun event_set_allowed_type(Event_type): bool = "mac#%" // (* ****** ****** *) // fun event_get_blocked (type: Event_type): bool = "mac#%" // (* ****** ****** *) // macdef SRCALPHA = $extval(int, "pygame.SRCALPHA") // fun surface_make_(wh: int2): Surface = "mac#%" fun surface_make_flags_depth(wh: int2, int, int): Surface = "mac#%" fun surface_make_flags_surface(wh: int2, int, Surface): Surface = "mac#%" // overload Surface with surface_make_ overload Surface with surface_make_flags_depth overload Surface with surface_make_flags_surface // fun surface_get_size(Surface): int2 = "mac#%" fun surface_get_width(Surface): int = "mac#%" fun surface_get_height(Surface): int = "mac#%" // overload .get_size with surface_get_size overload .get_width with surface_get_width overload .get_height with surface_get_height // (* ****** ****** *) // fun surface_fill_ (Surface, Color): Rect = "mac#%" fun surface_fill_rect_flags (Surface, Color, Rect, int): Rect = "mac#%" // overload .fill with surface_fill_ overload .fill with surface_fill_rect_flags // (* ****** ****** *) fun surface_blit_xy(obj: Surface, src: Surface, dst: int2): Rect = "mac#%" fun surface_blit_xy_area_flags (obj: Surface, src: Surface, dst: int2, area: Rect, flags: int): Rect = "mac#%" // fun surface_blit_rect(obj: Surface, src: Surface, dst: Rect): Rect = "mac#%" fun surface_blit_rect_area_flags (obj: Surface, src: Surface, dst: Rect, area: Rect, flags: int): Rect = "mac#%" // overload .blit with surface_blit_xy overload .blit with surface_blit_xy_area_flags overload .blit with surface_blit_rect overload .blit with surface_blit_rect_area_flags // (* ****** ****** *) // fun display_init(): void = "mac#%" // called by pygame_init fun display_quit(): void = "mac#%" // called by pygame_init // fun display_get_init(): bool = "mac#%" fun display_get_active(): bool = "mac#%" // fun display_set_mode_resolution (resolution: int2): Surface = "mac#%" fun display_set_mode_resolution_flags_depth (resolution: int2, flags: int, depth: int): Surface = "mac#%" // overload display_set_mode with display_set_mode_resolution overload display_set_mode with display_set_mode_resolution_flags_depth // fun display_get_surface(): Surface = "mac#%" // fun display_flip(): void = "mac#%" fun display_update(xs: PYlist(Rect)): void = "mac#%" // fun display_iconify(): bool = "mac#%" // (* ****** ****** *) // fun time_get_ticks(): int(*time*) = "mac#%" // fun time_wait(int(*millisec*)): int(*time*) = "mac#%" fun time_delay(int(*millisec*)): int(*time*) = "mac#%" // (* ****** ****** *) (* end of [pygame.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/bool.sats0000644000175000017500000000466513431250607024407 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // fun bool2int0 (b: bool):<> natLt(2) = "mac#%" fun bool2int1 {b:bool} (b: bool(b)):<> int(bool2int(b)) = "mac#%" // symintr bool2int overload bool2int with bool2int0 of 100 overload bool2int with bool2int1 of 110 // (* ****** ****** *) // fun int2bool0 (i: int):<> bool = "mac#%" fun int2bool1 {i:int}(i: int(i)):<> bool(i != 0) = "mac#%" // symintr int2bool overload int2bool with int2bool0 of 100 overload int2bool with int2bool1 of 110 // (* ****** ****** *) // fun neg_bool0 : bool -> bool = "mac#%" fun neg_bool1 : {b:bool} bool(b) -> bool(~b) = "mac#%" // overload ~ with neg_bool0 of 100 overload ~ with neg_bool1 of 110 // overload not with neg_bool0 of 100 overload not with neg_bool1 of 110 // (* ****** ****** *) fun add_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload + with add_bool0_bool0 of 100 fun add_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 || b2) = "mac#%" overload + with add_bool0_bool1 of 110 fun add_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 || b2) = "mac#%" overload + with add_bool1_bool0 of 110 fun add_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 || b2) = "mac#%" overload + with add_bool1_bool1 of 120 (* ****** ****** *) fun mul_bool0_bool0 (b1: bool, b2: bool):<> bool = "mac#%" overload * with mul_bool0_bool0 of 100 fun mul_bool0_bool1 {b2:bool} ( b1: bool, b2: bool b2 ) :<> [b1:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool0_bool1 of 110 fun mul_bool1_bool0 {b1:bool} ( b1: bool b1, b2: bool ) :<> [b2:bool] bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool0 of 110 fun mul_bool1_bool1 {b1,b2:bool} (b1: bool b1, b2: bool b2):<> bool(b1 && b2) = "mac#%" overload * with mul_bool1_bool1 of 120 (* ****** ****** *) // fun eq_bool0_bool0 : (bool, bool) -> bool = "mac#%" fun neq_bool0_bool0 : (bool, bool) -> bool = "mac#%" // fun eq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 == b2) = "mac#%" fun neq_bool1_bool1 : {b1,b2:bool}(bool(b1), bool(b2)) -> bool(b1 != b2) = "mac#%" // overload = with eq_bool0_bool0 of 100 overload = with eq_bool1_bool1 of 120 // overload != with neq_bool0_bool0 of 100 overload != with neq_bool1_bool1 of 120 // (* ****** ****** *) (* end of [bool.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/qlistref.sats0000644000175000017500000000061613431250607025275 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // #include "{$LIBATSCC}/SATS/qlistref.sats" // (* ****** ****** *) (* end of [qlistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/reference.sats0000644000175000017500000000062013431250607025375 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-10: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // #include "{$LIBATSCC}/SATS/reference.sats" // (* ****** ****** *) (* end of [reference.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/BUCS320/0000755000175000017500000000000013431250607023526 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/BUCS320/parcomb.sats0000644000175000017500000000071213431250607026045 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) // // HX-2016-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_BUCS320_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) #staload "./../../basics_py.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/BUCS320/parcomb.sats" // (* ****** ****** *) (* end of [parcomb.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/BUCS320/words.sats0000644000175000017500000000070513431250607025562 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) // // HX-2016-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_BUCS320_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) staload "./../../basics_py.sats" (* ****** ****** *) // #include "{$LIBATSCC}/SATS/BUCS320/words.sats" // (* ****** ****** *) (* end of [words.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/slistref.sats0000644000175000017500000000061613431250607025277 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-09: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // #include "{$LIBATSCC}/SATS/slistref.sats" // (* ****** ****** *) (* end of [slistref.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/option.sats0000644000175000017500000000077713431250607024764 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/option.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option (PYfilr, Option(INV(a))): void = "mac#%" // (* ****** ****** *) (* end of [option.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/funarray.sats0000644000175000017500000000064013431250607025270 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME/contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // #include "{$LIBATSCC}/SATS/funarray.sats" // (* ****** ****** *) (* end of [funarray.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/stream.sats0000644000175000017500000000061213431250607024733 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-11: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // #include "{$LIBATSCC}/SATS/stream.sats" // (* ****** ****** *) (* end of [stream.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/print.sats0000644000175000017500000000410513431250607024575 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) #staload "./../basics_py.sats" (* ****** ****** *) // fun print_int : (int) -> void = "mac#%" fun prerr_int : (int) -> void = "mac#%" // fun fprint_int : (PYfilr, int) -> void = "mac#%" // overload print with print_int of 100 overload prerr with prerr_int of 100 overload fprint with fprint_int of 100 // (* ****** ****** *) // fun print_bool : (bool) -> void = "mac#%" fun prerr_bool : (bool) -> void = "mac#%" // fun fprint_bool : (PYfilr, bool) -> void = "mac#%" // overload print with print_bool of 100 overload prerr with prerr_bool of 100 overload fprint with fprint_bool of 100 // (* ****** ****** *) // fun print_char : (char) -> void = "mac#%" fun prerr_char : (char) -> void = "mac#%" // fun fprint_char : (PYfilr, char) -> void = "mac#%" // overload print with print_char of 100 overload prerr with prerr_char of 100 overload fprint with fprint_char of 100 // (* ****** ****** *) // fun print_double : (double) -> void = "mac#%" fun prerr_double : (double) -> void = "mac#%" // fun fprint_double : (PYfilr, double) -> void = "mac#%" // overload print with print_double of 100 overload prerr with prerr_double of 100 overload fprint with fprint_double of 100 // (* ****** ****** *) // fun print_string (str: string): void = "mac#%" fun prerr_string (str: string): void = "mac#%" // fun fprint_string : (PYfilr, string) -> void = "mac#%" // overload print with print_string of 100 overload prerr with prerr_string of 100 overload fprint with fprint_string of 100 // (* ****** ****** *) // fun print_obj{a:t@ype}(obj: a): void = "mac#%" fun println_obj{a:t@ype}(obj: a): void = "mac#%" // (* ****** ****** *) fun{a:t0p} print_val (x: a): void = "mac#%" fun{a:t0p} fprint_val (out: PYfilr, x: a): void = "mac#%" (* ****** ****** *) fun print_newline ((*void*)): void = "mac#%" fun prerr_newline ((*void*)): void = "mac#%" fun fprint_newline (out: PYfilr): void = "mac#%" (* ****** ****** *) (* end of [print.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/gprint.sats0000644000175000017500000000064113431250607024745 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../basics_py.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/gprint.sats" // (* ****** ****** *) (* end of [gprint.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/ML/0000755000175000017500000000000013431250607023055 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/ML/option0.sats0000644000175000017500000000106713431250607025345 0ustar brandonbrandon(* ****** ****** *) (* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_py.sats" // #include "{$LIBATSCC}/SATS/ML/option0.sats" // (* ****** ****** *) // fun{a:t0p} fprint_option0 (PYfilr, option0(INV(a))): void = "mac#%" // overload fprint with fprint_option0 of 100 // (* ****** ****** *) (* end of [option0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/ML/list0.sats0000644000175000017500000000201713431250607025004 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // #staload "./../../basics_py.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/ML/list0.sats" // (* ****** ****** *) // fun {a:t0p} fprint_list0 ( out: PYfilr, xs: list0(INV(a)) ) : void = "mac#%" // end-of-function // fun{} fprint_list0$sep(out: PYfilr): void = "mac#%" // fun {a:t0p} fprint_list0_sep ( out: PYfilr, xs: list0(INV(a)), sep: string ) : void = "mac#%" // end-of-function // overload fprint with fprint_list0 of 100 overload fprint with fprint_list0_sep of 100 // (* ****** ****** *) // fun list0_head_exn {a:t0p} (list0(INV(a))): (a) = "mac#%" fun list0_tail_exn {a:t0p} (list0(INV(a))): list0(a) = "mac#%" // overload .head with list0_head_exn overload .tail with list0_tail_exn // (* ****** ****** *) (* end of [list0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/SATS/ML/array0.sats0000644000175000017500000000065213431250607025152 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Python3 *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_EXTERN_PREFIX "ats2pypre_ML_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // staload "./../../basics_py.sats" // (* ****** ****** *) // #include "{$LIBATSCC}/SATS/ML/array0.sats" // (* ****** ****** *) (* end of [array0.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/basics_py.sats0000644000175000017500000000464113431250607024650 0ustar brandonbrandon(* ****** ****** *) // (* ** For writing ATS code that translates into Python *) // (* ****** ****** *) // (* The MIT License (MIT) Copyright (c) 2014 Hongwei Xi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *) (* ****** ****** *) // // HX-2014-08: // prefix for external names // #define ATS_PACKNAME "ATSCC2PY3.basics" #define ATS_EXTERN_PREFIX "ats2pypre_" // (* ****** ****** *) // #define LIBATSCC_targetloc "$PATSHOME\ /contrib/libatscc/ATS2-0.3.2" // (* ****** ****** *) // #include "{$LIBATSCC}/basics.sats" // (* ****** ****** *) abstype PYobj // generic (* ****** ****** *) // abstype PYfilr(*fileref*) // (* ****** ****** *) // // HX-2014-08: // invariant constructors! // abstype PYlist(a:vt@ype) // mutable datastructure! // (* abstype PYset (a:t@ype) abstype PYdict (a:t@ype) *) // (* ****** ****** *) // fun lazy2cloref {a:t0p} ( lazyval: lazy(a) ) : ((*void*)) - (a) = "mac#%" // (* ****** ****** *) // fun exit(ecode: int): {a:t0p}(a) = "mac#%" // fun exit_errmsg (ecode: int, msg: string): {a:t0p}(a) = "mac#%" // (* ****** ****** *) // fun assert_errmsg_bool0 (x: bool, msg: string): void = "mac#%" fun assert_errmsg_bool1 {b:bool} (x: bool b, msg: string): [b] void = "mac#%" // overload assert_errmsg with assert_errmsg_bool0 of 100 overload assert_errmsg with assert_errmsg_bool1 of 110 // (* ****** ****** *) // macdef assertloc(x) = assert_errmsg(,(x), $mylocation) // (* ****** ****** *) (* end of [basics_py.sats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/ATS2-0.3.2/staloadall.hats0000644000175000017500000000271013431250607024774 0ustar brandonbrandon(* ** For writing ATS code ** that translates into Pythod *) (* ****** ****** *) // // HX-2014-09-09 // (* ****** ****** *) // #staload "./basics_py.sats" #staload _ = "./DATS/basics.dats" // (* ****** ****** *) // #staload "./SATS/integer.sats" // (* ****** ****** *) // #staload "./SATS/bool.sats" #staload "./SATS/char.sats" #staload "./SATS/float.sats" #staload "./SATS/string.sats" // (* ****** ****** *) // #staload "./SATS/print.sats" #staload "./SATS/filebas.sats" // #staload _ = "./DATS/print.dats" // (* ****** ****** *) #staload "./SATS/gprint.sats" #staload _ = "./DATS/gprint.dats" (* ****** ****** *) // #staload "./SATS/list.sats" #staload _ = "./DATS/list.dats" // #staload "./SATS/PYlist.sats" #staload _ = "./DATS/PYlist.dats" // (* ****** ****** *) // #staload "./SATS/stream.sats" #staload _ = "./DATS/stream.dats" // (* ****** ****** *) // #staload "./SATS/stream_vt.sats" #staload _ = "./DATS/stream_vt.dats" // (* ****** ****** *) // #staload "./SATS/intrange.sats" // (* ****** ****** *) // #staload "./SATS/arrayref.sats" #staload "./SATS/matrixref.sats" #staload "./SATS/reference.sats" // (* ****** ****** *) // #staload "./SATS/slistref.sats" #staload "./SATS/qlistref.sats" // (* ****** ****** *) // // HX: un-indexed list // HX: un-indexed array // #staload "./SATS/ML/list0.sats" #staload "./SATS/ML/array0.sats" // #staload _ = "./DATS/ML/list0.dats" #staload _ = "./DATS/ML/array0.dats" // (* ****** ****** *) (* end of [staloadall.hats] *) ATS2-Postiats-gmp-0.3.13/./contrib/libatscc2py3/.keeper0000644000175000017500000000000013431250607022066 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./CHANGES-contrib0000644000175000017500000000206113431250607017312 0ustar brandonbrandon###### # HX: # From this point on, ATS2-contrib will be released together with ATS2 # ###### 0.1.5 releasing atscc2pl releasing libatscc2pl ###### 0.1.4 improving atscc2js improving atscc2php ###### 0.1.3 releasing atscc2js releasing libatscc2js releasing atscc2php releasing libatscc2php ###### 0.1.2 releasing atscc2py releasing libatscc2py ###### 0.1.0 releasing libats-hwxi/teaching/mythread/ { channel, spinvar, spinref, nwaiter, workshop, parallelize } ###### 0.0.8 releasing openssl ###### 0.0.7 ###### 0.0.6 ###### 0.0.5

SDL2: Simple DirectLayer Media 2.0

###### 0.0.4

pcre: API for pcre

libgmp: API for gmp library

GTK
glib
cairo

hiredis: API for hiredis (C API for redis)

JNI
HTML

json-c
jansson

libcurl: API for cURL

zeromq

libats-hwxi
libats-hwxi/intinf
libats-hwxi/testing
libats-hwxi/cstream
libats-hwxi/teaching/myGTK
libats-hwxi/teaching/mydraw
libats-hwxi/teaching/mythread
libats-hwxi/teaching/fileAsLock

###### 0.0.3 ###### 0.0.2 ###### 0.0.1 ###### end of [CHANGES-contrib] ###### ATS2-Postiats-gmp-0.3.13/./missing0000755000175000017500000002415213431250607016265 0ustar brandonbrandon#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ATS2-Postiats-gmp-0.3.13/./src/0000755000175000017500000000000013431250607015451 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_funent.dats0000644000175000017500000001614313431250607022042 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload LAB = "./pats_label.sats" staload LOC = "./pats_location.sats" typedef location = $LOC.location (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) local typedef funent = '{ // funent_loc= location // , funent_lab= funlab // attached function label // , funent_imparg= s2varlst , funent_tmparg= s2explstlst , funent_tmpsub= tmpsubopt // , funent_tmpret= tmpvar // storing the return value // // HX-2013-04-12: // [flablst] may contain the following flabs: // 1. outer functions called internally // 2. sibling functions called internally // // [flablst_fin] may contain the following flabs: // 1. self // 1. outer functions called transitively // 2. sibling functions called transitively // , funent_flablst= funlablst // flabs in function body , funent_flablst_fin= Option(funlablst) // final value // , funent_d2envlst= d2envlst // d2vars in function body , funent_d2envlst_fin= Option(d2envlst) // final value // , funent_vbindmap= vbindmap // local varbind map // , funent_instrlst= instrlst // instructions of function body // , funent_tmpvarlst= tmpvarlst // tmpvars in function body // , funent_fnxlablst= funlablst // mutually tail-recursive funs // } (* end of [funent] *) assume funent_type = funent extern typedef "funent_t" = funent in (* in of [local] *) implement funent_make ( loc, flab , imparg, tmparg, tmpsub , tmpret, fls0, d2es, vbmap, inss, tmplst ) = let (* val () = fprintln! (stdout_ref, "funent_make: flab = ", flab) val () = fprintln! (stdout_ref, "funent_make: d2es = ", d2es) *) in '{ funent_loc= loc // , funent_lab= flab // , funent_imparg= imparg , funent_tmparg= tmparg , funent_tmpsub= tmpsub // , funent_tmpret= tmpret // , funent_flablst= fls0 , funent_flablst_fin= None() // , funent_d2envlst= d2es , funent_d2envlst_fin= None() // , funent_vbindmap= vbmap // , funent_instrlst= inss // , funent_tmpvarlst= tmplst // , funent_fnxlablst= list_nil() // } end // end of [funent_make] (* ****** ****** *) implement funent_get_loc (fent) = fent.funent_loc implement funent_get_lab (fent) = fent.funent_lab implement funent_get_level (fent) = funlab_get_level (fent.funent_lab) // end of [funent_get_level] implement funent_get_imparg (fent) = fent.funent_imparg implement funent_get_tmparg (fent) = fent.funent_tmparg implement funent_get_tmpsub (fent) = fent.funent_tmpsub implement funent_get_tmpret (fent) = fent.funent_tmpret implement funent_get_flablst (fent) = fent.funent_flablst implement funent_get_flablst_fin (fent) = fent.funent_flablst_fin implement funent_get_d2envlst (fent) = fent.funent_d2envlst implement funent_get_d2envlst_fin (fent) = fent.funent_d2envlst_fin implement funent_get_vbindmap (fent) = fent.funent_vbindmap implement funent_get_instrlst (fent) = fent.funent_instrlst implement funent_get_tmpvarlst (fent) = fent.funent_tmpvarlst (* ****** ****** *) implement funent_get_fnxlablst (fent) = fent.funent_fnxlablst (* ****** ****** *) end // end of [local] (* ****** ****** *) implement funent_make2 ( loc, flab , imparg, tmparg , tmpret, fls0, d2es, vbmap, inss ) = let val tmps = instrlst_get_tmpvarset (inss) val tmps = tmpvarset_vt_add (tmps, tmpret) val tmplst = tmpvarset_vt_listize_free (tmps) val tmplst = list_of_list_vt (tmplst) in // funent_make ( loc, flab , imparg, tmparg, None(*tsub*), tmpret, fls0, d2es, vbmap, inss, tmplst ) // end of [funent_make] // end // end of [funent_make2] (* ****** ****** *) implement fprint_funent (out, fent) = let // macdef prstr (s) = fprint_string (out, ,(s)) // val flab = funent_get_lab (fent) // val imparg = funent_get_imparg (fent) val tmparg = funent_get_tmparg (fent) val tsubopt = funent_get_tmpsub (fent) // val tmpret = funent_get_tmpret (fent) // val inss = funent_get_instrlst (fent) // val () = prstr "FUNENT(\n" // val () = prstr "lab=" val () = fprint_funlab (out, flab) val () = prstr "\n" // val () = prstr "imparg=" val () = fprint_s2varlst (out, imparg) val () = prstr "\n" // val () = prstr "tmparg=" val () = $UT.fprintlst (out, tmparg, "; ", fprint_s2explst) val () = prstr "\n" // val () = prstr "tmpsub=" val () = fprint_tmpsubopt (out, tsubopt) val () = prstr "\n" // val () = prstr "tmpret=" val () = fprint_tmpvar (out, tmpret) val () = prstr "\n" // val () = prstr "instrlst=\n" val () = fprint_instrlst (out, inss) // val () = prstr ")" in // nothing end // end of [fprint_funent] (* ****** ****** *) implement funent_is_tmplt (fent) = let val tmparg = funent_get_tmparg (fent) in // case+ tmparg of list_cons _ => true | list_nil () => false // end // end of [funent_is_tmplst] (* ****** ****** *) implement print_funent (fent) = fprint_funent (stdout_ref, fent) implement prerr_funent (fent) = fprint_funent (stderr_ref, fent) (* ****** ****** *) %{$ extern ats_void_type patsopt_funent_set_tmpsub ( ats_ptr_type fent, ats_ptr_type opt ) { ((funent_t)fent)->atslab_funent_tmpsub = opt ; return ; } // end of [patsopt_funent_set_tmpsub] extern ats_void_type patsopt_funent_set_flablst_fin ( ats_ptr_type fent, ats_ptr_type opt ) { ((funent_t)fent)->atslab_funent_flablst_fin = opt ; return ; } // end of [patsopt_funent_set_flablst_fin] extern ats_void_type patsopt_funent_set_d2envlst_fin ( ats_ptr_type fent, ats_ptr_type opt ) { ((funent_t)fent)->atslab_funent_d2envlst_fin = opt ; return ; } // end of [patsopt_funent_set_d2envlst_fin] extern ats_void_type patsopt_funent_set_fnxlablst ( ats_ptr_type fent, ats_ptr_type fls ) { ((funent_t)fent)->atslab_funent_fnxlablst = fls ; return ; } // end of [patsopt_funent_set_fnxlablst] %} // end of [%{$] (* ****** ****** *) (* end of [pats_ccomp_funent.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dmacro2.dats0000644000175000017500000002343713431250607020715 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: June, 2012 // (* ****** ****** *) // // HX: for handling macro expansion during typechecking // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_dmacro2" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_dmacro2.sats" (* ****** ****** *) implement m2val_true = M2Vbool (true) implement m2val_false = M2Vbool (false) (* ****** ****** *) implement liftval2dexp (loc0, m2v) = let in case+ m2v of | M2Vint (i) => d2exp_int (loc0, i) | M2Vchar (c) => d2exp_char (loc0, c) | M2Vfloat (rep) => d2exp_float (loc0, rep) | M2Vstring (s) => d2exp_string (loc0, s) | M2Vunit () => d2exp_empty (loc0) | _ => let val () = prerr_errmac_loc (loc0) val () = prerr ": a value representing code (AST) cannot be lifted." val () = prerr_newline () in d2exp_errexp (loc0) end // end of [_] end // end of [liftval2dexp] (* ****** ****** *) local // // HX: ptr for s2var or d2var // dataviewtype alphenv = | ALPHENVsadd of (s2var, s2var(*new*), alphenv) | ALPHENVdadd of (d2var, d2var(*new*), alphenv) | ALPHENVmark of (alphenv) // marking for unwinding | ALPHENVnil of () // end of [alphenv] assume alphenv_viewtype = alphenv in (* in of [local] *) implement alphenv_nil () = ALPHENVnil () implement alphenv_free (env) = let in // case+ env of | ~ALPHENVsadd (_, _, env) => alphenv_free (env) | ~ALPHENVdadd (_, _, env) => alphenv_free (env) | ~ALPHENVmark env => alphenv_free (env) | ~ALPHENVnil () => () // end // end of [alphenv_free] implement alphenv_sadd (env, s2v, s2v_new) = let in env := ALPHENVsadd (s2v, s2v_new, env) end // end of [alphenv_sadd] implement alphenv_dadd (env, d2v, d2v_new) = let in env := ALPHENVdadd (d2v, d2v_new, env) end // end of [alphenv_dadd] (* ****** ****** *) implement alphenv_sfind (env, key) = let // fun loop ( env: !alphenv, key: s2var ) : s2varopt_vt = let in // case+ env of | ALPHENVsadd (_key, _val, !p_env1) => let val ans = ( if key = _key then Some_vt (_val) else loop (!p_env1, key) // end of [if] ) : s2varopt_vt // end of [val] in fold@ (env); ans end | ALPHENVdadd (_key, _val, !p_env1) => let val ans = loop (!p_env1, key) in fold@ (env); ans end // end of [ALPHENVdadd] | ALPHENVmark (!p_env1) => let val ans = loop (!p_env1, key) in fold@ (env); ans end // end of [ALPHENVmark] | ALPHENVnil () => let prval () = fold@ env in None_vt () end // end of [ALPHENVnil] end // end of [loop] // in loop (env, key) end // end of [alphenv_sfind] (* ****** ****** *) implement alphenv_dfind (env, key) = let // fun loop ( env: !alphenv, key: d2var ) : d2varopt_vt = let in // case+ env of | ALPHENVsadd (_key, _val, !p_env1) => let val ans = loop (!p_env1, key) in fold@ (env); ans end // end of [ALPHENVsadd] | ALPHENVdadd (_key, _val, !p_env1) => let val ans = ( if key = _key then Some_vt (_val) else loop (!p_env1, key) // end of [if] ) : d2varopt_vt // end of [val] in fold@ (env); ans end | ALPHENVmark (!p_env1) => let val ans = loop (!p_env1, key) in fold@ (env); ans end // end of [ALPHENVmark] | ALPHENVnil () => let prval () = fold@ env in None_vt () end // end of [ALPHENVnil] end // end of [loop] // in loop (env, key) end // end of [alphenv_dfind] (* ****** ****** *) implement alphenv_pop (env) = let // fun loop (env: alphenv): alphenv = let in case+ env of | ~ALPHENVsadd (_, _, env) => loop (env) | ~ALPHENVdadd (_, _, env) => loop (env) | ~ALPHENVmark (env) => (env) | ~ALPHENVnil () => ALPHENVnil () end // end of [loop] // in env := loop (env) end // end of [alphenv_pop] implement alphenv_push (env) = (env := ALPHENVmark env) end // end of [local] (* ****** ****** *) local // datavtype evalctx = | EVALCTXnil of () | EVALCTXsadd of (s2var, m2val, evalctx) | EVALCTXdadd of (d2var, m2val, evalctx) // end of [eval0ctx] // assume evalctx_viewtype = evalctx // in (* in of [local] *) implement evalctx_nil () = EVALCTXnil () implement fprint_evalctx (out, ctx) = let in // case+ ctx of | EVALCTXsadd ( s2v, m2v, !p_ctx1 ) => let val () = fprint_s2var (out, s2v) val () = fprint_string (out, " - ") val () = fprint_m2val (out, m2v) val () = fprint_newline (out) val () = fprint_evalctx (out, !p_ctx1) prval () = fold@ (ctx) in // nothing end // end of [EVALCTXsadd] | EVALCTXdadd ( d2v, m2v, !p_ctx1 ) => let val () = fprint_d2var (out, d2v) val () = fprint_string (out, " - ") val () = fprint_m2val (out, m2v) val () = fprint_newline (out) val () = fprint_evalctx (out, !p_ctx1) prval () = fold@ (ctx) in // nothing end // end of [EVALCTXsadd] | EVALCTXnil () => let prval () = fold@ ctx in (*nothing*) end // end of [EVALCTXnil] // end // end of [fprint_evalctx] implement print_evalctx (ctx) = fprint_evalctx (stdout_ref, ctx) // end of [print_evalctx] implement prerr_evalctx (ctx) = fprint_evalctx (stderr_ref, ctx) // end of [prerr_evalctx] (* ****** ****** *) implement evalctx_sadd (ctx, s2v, m2v) = EVALCTXsadd (s2v, m2v, ctx) // end of [evalctx_sadd] implement evalctx_dadd (ctx, d2v, m2v) = EVALCTXdadd (d2v, m2v, ctx) // end of [evalctx_dadd] implement evalctx_dfind (ctx, d2v) = let in // case+ ctx of | EVALCTXsadd ( _key, _val, !p_ctx1 ) => let val ans = evalctx_dfind (!p_ctx1, d2v) prval () = fold@ (ctx) in ans end // end of [EVALCTXsadd] | EVALCTXdadd ( _key, _val, !p_ctx1 ) => let in if d2v = _key then let prval () = fold@ (ctx) in Some_vt (_val) end else let val ans = evalctx_dfind (!p_ctx1, d2v) prval () = fold@ (ctx) in ans end // end of [if] end // end of [EVALCTXdadd] | EVALCTXnil () => let prval () = fold@ (ctx) in None_vt () end // end of [EVALCTXnil] // end // end of [evalctx_dfind] implement evalctx_free (ctx) = ( case+ ctx of | ~EVALCTXsadd (_, _, ctx) => evalctx_free (ctx) | ~EVALCTXdadd (_, _, ctx) => evalctx_free (ctx) | ~EVALCTXnil () => () ) // end of [evalctx_free] (* ****** ****** *) // fun s2exp_make_m2val (m2v: m2val): s2exp = ( case m2v of | M2Vscode(s2e) => s2e | _ (*non-M2Vscode*) => s2exp_errexp(s2rt_t0ype) ) (* end of [s2exp_make_m2val] *) // implement stasub_make_evalctx (ctx) = let // fun aux ( ctx: !evalctx, sub: &stasub ) : void = let in case+ ctx of | EVALCTXsadd (_key, _val, !p_ctx1) => let val () = aux (!p_ctx1, sub) val s2v = _key val s2e = s2exp_make_m2val (_val) val () = stasub_add (sub, s2v, s2e) in fold@ (ctx) end | EVALCTXdadd (_key, _val, !p_ctx1) => let val () = aux (!p_ctx1, sub) in fold@ (ctx) end | EVALCTXnil () => fold@ (ctx) end // end of [aux] // var sub = stasub_make_nil () val () = aux (ctx, sub) // in sub end // end of [stasub_make_evalctx] // (* ****** ****** *) end // end of [local] (* ****** ****** *) implement dmacro_eval_xstage (d2e) = let val loc0 = d2e.d2exp_loc var ctx = evalctx_nil () var env = alphenv_nil () val m2v = eval0_d2exp (loc0, ctx, env, d2e) val () = alphenv_free (env) val () = evalctx_free (ctx) in liftval2dexp (loc0, m2v) end // end of [dmacro_eval_xstage] implement dmacro_eval_decode (d2e) = let val loc0 = d2e.d2exp_loc var ctx = evalctx_nil () var env = alphenv_nil () val m2v = eval0_d2exp (loc0, ctx, env, d2e) val () = alphenv_free (env) val () = evalctx_free (ctx) in // case+ m2v of | M2Vdcode (d2e_new) => d2e_new | _ => let val () = prerr_errmac_loc (loc0) val () = prerr ": the macro expansion should yield code (AST)" val () = prerr ", but the following value is obtained instead: " val () = prerr_m2val (m2v) val () = prerr_newline () in d2exp_errexp (loc0) end // end of [_] // end // end of [dmacro_eval_decode] (* ****** ****** *) implement dmacro_eval_app_short (loc0, d2m, d2as) = let var ctx = evalctx_nil () var env = alphenv_nil () val d2e = eval0_app_mac_short (loc0, d2m, ctx, env, d2as) val () = alphenv_free (env) val () = evalctx_free (ctx) in d2e end // end of [dmacro_eval_app_short] (* ****** ****** *) (* end of [pats_dmacro2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_histaexp_funlab.dats0000644000175000017500000000413613431250607022535 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) // // HX-2012-10: // Note that [funlab_type] is assumed in [pats_ccomp.sats] // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload CCOMP = "./pats_ccomp.sats" (* ****** ****** *) staload "./pats_histaexp.sats" (* ****** ****** *) implement fprint_funlab (out, fl) = let val name = $CCOMP.funlab_get_name ($UN.cast(fl)) in fprint_string (out, name) end // end of [fprint_funlab] implement print_funlab (fl) = fprint_funlab (stdout_ref, fl) implement prerr_funlab (fl) = fprint_funlab (stderr_ref, fl) (* ****** ****** *) (* end of [pats_histaexp_funlab.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_effect.sats0000644000175000017500000000660113431250607020633 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) abst@ype effect_t0ype = int typedef effect = effect_t0ype typedef effectlst = List (effect) abst@ype effset_t0ype = uint typedef effset = effset_t0ype (* ****** ****** *) val effect_ntm : effect val effect_exn : effect val effect_ref : effect val effect_wrt : effect val effectlst_all : effectlst fun effect_get_name (eff: effect): string fun print_effect (x: effect): void overload print with print_effect fun prerr_effect (x: effect): void overload prerr with prerr_effect fun fprint_effect : fprint_type (effect) fun fprint_effectlst : fprint_type (effectlst) fun eq_effect_effect (x1: effect, x2: effect):<> bool overload = with eq_effect_effect (* ****** ****** *) val effset_all: effset and effset_nil: effset val effset_ntm : effset val effset_exn : effset val effset_ref : effset val effset_wrt : effset fun effset_sing (eff: effect):<> effset fun eq_effset_effset (x1: effset, x2: effset):<> bool overload = with eq_effset_effset fun effset_add (efs: effset, eff: effect):<> effset fun effset_del (efs: effset, eff: effect):<> effset fun effset_isnil (efs: effset):<> bool fun effset_isall (efs: effset):<> bool (* ** HX-2012-03: ** [efs] is finite if its sign bit is clr ** [efs] is cofinite if its sign bit is set *) fun effset_isfin (efs: effset):<> bool fun effset_iscof (efs: effset):<> bool fun effset_ismem (efs: effset, eff: effect):<> bool fun effset_supset (efs1: effset, efs2: effset):<> bool fun effset_subset (efs1: effset, efs2: effset):<> bool (* ** HX: complement and difference *) fun effset_cmpl (efs: effset):<> effset fun effset_diff (efs1: effset, efs2: effset):<> effset (* ** HX: intersection and union *) fun effset_inter (efs1: effset, efs2: effset):<> effset fun effset_union (efs1: effset, efs2: effset):<> effset fun effset_is_inter (efs1: effset, efs2: effset):<> bool (* ****** ****** *) fun print_effset (efs: effset): void fun prerr_effset (efs: effset): void fun fprint_effset : fprint_type (effset) (* ****** ****** *) (* end of [pats_effect.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_reader.cats0000644000175000017500000000327613431250607020626 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_READER_CATS #define POSTIATS_SRC_PATS_READER_CATS /* ****** ****** */ typedef struct { // ats_ptr_type getchar ; // () - int ats_ptr_type freeres ; // () -> void // } pats_reader_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_READER_CATS] /* ****** ****** */ /* end of [pats_reader.cats] */ ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env_pfman.dats0000644000175000017500000003055613431250607022631 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_env_pfman" (* ****** ****** *) staload LAB = "./pats_label.sats" typedef label = $LAB.label (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_trans3_env.sats" (* ****** ****** *) dataviewtype d2varmrklst = // marked list | D2VMRKLSTcons of (d2var, d2varmrklst) | D2VMRKLSTmark of (int(*knd*), d2varmrklst) // knd: 0/1: stop/cont | D2VMRKLSTnil of () // end of [d2varmrklst] (* ****** ****** *) extern fun the_d2varmrklst_get_view_ptr () : [l:addr] ( d2varmrklst @ l, d2varmrklst @ l - void | ptr l ) // end of [the_d2varmrklst_get_view_ptr] (* ****** ****** *) local assume pfmanenv_push_v = unit_v (* ****** ****** *) val the_d2varmrklst = ref (D2VMRKLSTnil) // end of [val] fun pushenv .<>. (knd: int): ( pfmanenv_push_v | void ) = let val (vbox pf | p) = ref_get_view_ptr (the_d2varmrklst) val () = !p := D2VMRKLSTmark (knd, !p) in (unit_v | ()) end // end of [pushenv] in // in of [local] (* ****** ****** *) implement the_d2varmrklst_get_view_ptr () = let val [l:addr] (vbox pf | p) = ref_get_view_ptr (the_d2varmrklst) viewdef V = d2varmrklst @ l prval (pf, fpf) = __assert (pf) where { extern praxi __assert (pf: !V): (V, V - void) } // end of [prval] in (pf, fpf | p) end // end of [the_d2varmrklst_get_view_ptr] (* ****** ****** *) implement fprint_the_pfmanenv (out) = let fun loop ( out: FILEref, xs: !d2varmrklst ) : void = case+ xs of | D2VMRKLSTcons (d2v, !p_xs) => let val () = fprint_d2var (out, d2v) val () = fprint_newline (out) val () = loop (out, !p_xs) in fold@ (xs) end // end of [D2VARNLSTcons] | D2VMRKLSTmark (knd, !p_xs) => let val () = fprintf (out, "D2VMRKLSTmark(%d)", @(knd)) val () = fprint_newline (out) val () = loop (out, !p_xs) in fold@ (xs) end // end of [D2VARNLSTmark] | D2VMRKLSTnil () => fold@ (xs) // end of [loop] val () = fprint_string (out, "the current pfmanenv is:\n") val (vbox pf | p) = ref_get_view_ptr (the_d2varmrklst) in $effmask_ref (loop (out, !p)) end // end of [fprint_the_pfmanenv] (* ****** ****** *) implement the_pfmanenv_pop (pfpush | (*void*)) = let prval unit_v () = pfpush fun loop ( xs: d2varmrklst ) : d2varmrklst = case+ xs of | ~D2VMRKLSTcons (_, xs) => loop (xs) | ~D2VMRKLSTmark (knd, xs) => xs | ~D2VMRKLSTnil () => D2VMRKLSTnil () // end of [loop] val (vbox pf | p) = ref_get_view_ptr (the_d2varmrklst) in !p := $effmask_ref (loop (!p)) end // end of [the_pfmanenv_pop] (* ****** ****** *) #define PUSH_LET 1 // continue #define PUSH_LAM ~1 // stopping #define PUSH_LLAM 0 // flexible #define PUSH_TRY ~1 // stopping implement the_pfmanenv_push_let () = pushenv (PUSH_LET) implement the_pfmanenv_push_lam (lin: int) = pushenv (if lin = 0 then PUSH_LAM else PUSH_LLAM) implement the_pfmanenv_push_try () = pushenv (PUSH_TRY) (* ****** ****** *) implement the_pfmanenv_add_dvar (d2v) = let // val islin = d2var_is_linear (d2v) val () = if islin then let val (vbox pf | p) = ref_get_view_ptr (the_d2varmrklst) in !p := D2VMRKLSTcons (d2v, !p) end // end of [if] // val ismut = d2var_is_mutabl (d2v) val () = if ismut then let val-Some (d2vw) = d2var_get_view (d2v) val (vbox pf | p) = ref_get_view_ptr (the_d2varmrklst) in !p := D2VMRKLSTcons (d2vw, !p) end // end of [if] // in // nothing end // end of [the_pfmanenv_add_dvar] (* ****** ****** *) implement the_pfmanenv_add_dvarlst (d2vs) = ( list_app_fun (d2vs, the_pfmanenv_add_dvar) ) // end of [the_pfmanenv_add_dvarlst] implement the_pfmanenv_add_dvaropt (opt) = ( case+ opt of | Some (d2v) => the_pfmanenv_add_dvar (d2v) | None () => () ) // end of [the_pfmanenv_add_dvaropt] (* ****** ****** *) end // end of [local] (* ****** ****** *) extern fun the_pfmanenv_add_labp3atlst (xs: labp3atlst): void implement the_pfmanenv_add_p3at (p3t) = let // val opt = p3at_get_dvaropt (p3t) val () = the_pfmanenv_add_dvaropt (opt) // in // case+ p3t.p3at_node of // | P3Tany (d2v) => the_pfmanenv_add_dvar (d2v) | P3Tvar (d2v) => the_pfmanenv_add_dvar (d2v) // | P3Tcon ( _(*pck*), d2c, npf, p3ts ) => the_pfmanenv_add_p3atlst (p3ts) // | P3Tann (p3t, s2e) => the_pfmanenv_add_p3at (p3t) // | P3Tint _ => () | P3Tintrep _ => () // | P3Tbool _ => () | P3Tchar _ => () | P3Tfloat _ => () | P3Tstring _ => () // | P3Ti0nt _ => () | P3Tf0loat _ => () // | P3Tempty _ => () // | P3Trec ( knd, npf, pck, lp3ts ) => the_pfmanenv_add_labp3atlst(lp3ts) // end of [P3Trec] | P3Tlst ( lin, s2e_elt, p3ts ) => the_pfmanenv_add_p3atlst( p3ts ) // | P3Trefas (d2v, p3t) => { val () = the_pfmanenv_add_dvar(d2v) val () = the_pfmanenv_add_p3at(p3t) } // end of [P3Trefas] // | P3Texist (s2vs, p3t) => the_pfmanenv_add_p3at(p3t) // P3Texist // | P3Tvbox(d2v) => the_pfmanenv_add_dvar(d2v) // | P3Terrpat ((*void*)) => ((*ignore*)) // end // end of [the_pfmanenv_add_p3at] implement the_pfmanenv_add_p3atlst (p3ts) = list_app_fun (p3ts, the_pfmanenv_add_p3at) // end of [the_pfmanenv_add_p3atlst] implement the_pfmanenv_add_labp3atlst (xs) = loop (xs) where { fun loop ( xs: labp3atlst ) : void = case+ xs of | list_cons (x, xs) => let val LABP3AT (l, p3t) = x val () = the_pfmanenv_add_p3at (p3t) in loop (xs) end // end of [list_cons] | list_nil () => () // end of [loop] } // end of [the_pfmanenv_add_labp3atlst] (* ****** ****** *) extern fun s2exp_search_atview (s2e: s2exp, s2l: s2hnf): Option_vt @(s2exp (*ctx*), s2exp(*at*)) // end of [s2exp_search_atview] (* ****** ****** *) local extern fun d2var_search (d2v: d2var, s2l: s2exp, res: &s2exp): Option_vt (s2exp) // end of [d2var_search] extern fun d2var_search_sexp (d2v: d2var, s2l: s2exp, s2e: s2exp, res: &s2exp): Option_vt (s2exp) // end of [d2var_search_sexp] extern fun d2var_search_labsexplst (d2v: d2var, s2l: s2exp, ls2e: labs2explst, res: &s2exp): Option_vt (labs2explst) // end of [d2var_search_labsexplst] extern fun d2var_search_sexp_at (d2v: d2var, s2l: s2exp, s2e: s2exp, res: &s2exp): Option_vt (s2exp) // end of [d2var_search_at] extern fun d2var_search_sexp_tyrec (d2v: d2var, s2l: s2exp, s2e: s2exp, res: &s2exp): Option_vt (s2exp) // end of [d2var_search_sexp_tyrec] in // in of [local] implement d2var_search (d2v, s2l, res) = let (* val () = ( println! ("d2var_search: d2v = ", d2v); println! ("d2var_search: s2l = ", s2l); ) (* end of [val] *) *) // val opt = d2var_get_type (d2v) // in // case+ opt of | Some s2e => d2var_search_sexp (d2v, s2l, s2e, res) | None () => None_vt () // end // end of [d2var_search] implement d2var_search_sexp (d2v, s2l, s2e, res) = let val s2e = s2exp_hnfize (s2e) in case+ s2e.s2exp_node of | S2Eat _ => d2var_search_sexp_at (d2v, s2l, s2e, res) // end of [S2Eat] | S2Etyrec _ => d2var_search_sexp_tyrec (d2v, s2l, s2e, res) // end of [S2Etyrec] | _ => None_vt () end // end of [d2var_search_sexp] implement d2var_search_labsexplst (d2v, s2l, ls2es, res) = case+ ls2es of | list_cons (ls2e, ls2es) => let val SLABELED(l, name, s2e) = ls2e val opt = d2var_search_sexp(d2v, s2l, s2e, res) // end of [val] in case+ opt of | ~None_vt() => let val opt = ( d2var_search_labsexplst (d2v, s2l, ls2es, res) // d2var_search_labsexplst ) (* end of [val] *) in case+ opt of | ~None_vt ((*void*)) => None_vt() // end of [None_vt] | ~Some_vt(ls2es_ctx) => Some_vt (list_cons(ls2e, ls2es_ctx)) // end of [Some_vt] end // end of [None_vt] | ~Some_vt(s2e_ctx) => ( Some_vt(list_cons(SLABELED(l, name, s2e_ctx), ls2es)) ) (* en dof [Some_vt] *) // end of [case] end // end of [list_cons] | list_nil () => None_vt () // end of [d2var_search_labsexplst] implement d2var_search_sexp_at ( d2v, s2l, s2e, res ) = let // val- S2Eat(s2e1,s2e2) = s2e.s2exp_node // val iseq = s2exp_syneq(s2l, s2e2) // in // if iseq then let val () = res := s2e1 val s2t1 = s2e1.s2exp_srt val s2h1 = s2hole_make_srt(s2t1) val s2e1 = s2exp_hole(s2h1) val s2e_ctx = s2exp_at(s2e1, s2e2) in Some_vt(s2e_ctx) end else let val opt = d2var_search_sexp (d2v, s2l, s2e1, res) // d2var_search_sexp // end of [opt] in // case+ opt of | ~None_vt() => None_vt(*void*) | ~Some_vt(s2e_ctx) => Some_vt(s2exp_at(s2e_ctx, s2e2)) // end of [Some_vt] // end // end of [if] // end // end of [d2var_search_sexp_at] implement d2var_search_sexp_tyrec ( d2v, s2l, s2e, res ) = let // val- S2Etyrec(knd, npf, ls2es) = s2e.s2exp_node // var res2: labs2explst = list_nil() val opt = d2var_search_labsexplst(d2v, s2l, ls2es, res) // in // case+ opt of | ~None_vt ((*void*)) => None_vt () // end of [None_vt] | ~Some_vt (ls2es_ctx) => let val s2t = s2e.s2exp_srt in Some_vt(s2exp_tyrec_srt(s2t, knd, npf, ls2es_ctx)) end // end of [Some_vt] // end // end of [d2var_search_sexp_tyrec] implement pfobj_search_atview (s2l0) = let // (* val () = ( println! ("pfobj_search_atview: s2l0 = ", s2l0) ) (* end of [val] *) *) // fun loop ( xs: !d2varmrklst , s2l0: s2exp, res: &s2exp ) : Option_vt @(d2var, s2exp) = let // (* val () = println! ("pfobj_search_atview: loop") *) // in // case+ xs of // | D2VMRKLSTcons (d2v, !p_xs) => let val opt = d2var_search(d2v, s2l0, res) // end of [val] in case+ opt of | ~Some_vt (s2e_ctx) => ( fold@ (xs); Some_vt @(d2v, s2e_ctx) ) // end of [Some_vt] | ~None_vt () => let val opt = loop(!p_xs, s2l0, res) in fold@(xs); opt // end of [val] end // end of [None] end // end of [D2VMARKLSTcons] // // HX-2015-01-12: // searching is only blocked by [lam] // | D2VMRKLSTmark (knd, !p_xs) => ( if knd > 0 then let val opt = loop (!p_xs, s2l0, res) in fold@ (xs); opt // end of [val] end else (fold@ (xs); None_vt ()) ) (* end of [D2VMARKLSTmark] *) // | D2VMRKLSTnil((*void*)) => (fold@ (xs); None_vt()) // end // end of [loop] // var res: s2exp = s2exp_t0ype_err() val (pf, fpf | p0_lst) = the_d2varmrklst_get_view_ptr () // val opt = loop (!p0_lst, s2l0, res) // prval ((*void*)) = fpf (pf) // in // case+ opt of // | ~None_vt ((*void*)) => None_vt() // end of [None_vt] // | ~Some_vt(x) => let val obj = PFOBJ(x.0, x.1, res, s2l0) in Some_vt(obj) end // end of [Some_vt] // end // end of [pfobj_search_atview] end // end of [local] (* ****** ****** *) (* end of [pats_trans3_env_pfman.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_patcon.dats0000644000175000017500000003133413431250607022137 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_patcon" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) dataviewtype patcontrup = PATCONTRUP of (p2atlst, s2explst(*arg*), s2exp(*res*)) (* end of [patcontrup] *) (* ****** ****** *) // // HX-2012-05: // [patconknd]: nonlin/preserve/free/unfold: ~1/0/1/2 // extern fun p2at_trup_con (p2t0: p2at): patcontrup implement p2at_trup_con (p2t0) = let // val loc0 = p2t0.p2at_loc val-P2Tcon ( _(*pck*), d2c, s2qs, s2e_con, npf, p2ts_arg ) = p2t0.p2at_node // val () = let fun loop (s2qs: s2qualst): void = case+ s2qs of | list_cons (s2q, s2qs) => let val () = trans3_env_add_svarlst (s2q.s2qua_svs) in loop (s2qs) end // end of [list_cons] | list_nil () => () // end of [loop] in loop (s2qs) end // end of [val] // val () = let fun loop ( loc0: loc_t, s2qs: s2qualst ) : void = case+ s2qs of | list_cons (s2q, s2qs) => let val () = trans3_env_hypadd_proplst (loc0, s2q.s2qua_sps) in loop (loc0, s2qs) end // end of [list_cons] | list_nil () => () // end of [loop] in loop (loc0, s2qs) end // end of [val] // in // case+ s2e_con.s2exp_node of | S2Efun ( fc, lin, s2fe, npf_con, s2es_arg, s2e_res ) => let val err = $SOL.pfarity_equal_solve (loc0, npf, npf_con) val () = if err > 0 then { val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "p2at_trup_con" val () = prerr ": proof arity mismatch: the constructor [" val () = prerr_d2con (d2c) val () = prerrf ("] requires [%i] arguments.", @(npf_con)) val () = prerr_newline () val () = prerr_the_staerrlst () val () = the_trans3errlst_add (T3E_p2at_trup_con (p2t0)) } // end of [val] in PATCONTRUP (p2ts_arg, s2es_arg, s2e_res) end // end of [S2Efun] | _ => let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "p2at_trup_con" val () = prerr ": the constructor pattern is ill-typed." val () = prerr_newline () val () = the_trans3errlst_add (T3E_p2at_trup_con (p2t0)) val s2es_arg = aux (p2ts_arg) where { fun aux ( p2ts: p2atlst ) : s2explst = case+ p2ts of | list_cons (_, p2ts) => let val s2e = s2exp_t0ype_err () in list_cons (s2e, aux p2ts) end // end of [list_cons] | list_nil () => list_nil () // end of [aux] } // end of [val] val s2e_res = s2exp_t0ype_err () in PATCONTRUP (p2ts_arg, s2es_arg, s2e_res) end // end of [_] // end // end of [p2at_trup_con] (* ****** ****** *) extern fun p3at_lincon_update ( p3t0: p3at, d2c: d2con, p3ts_arg: p3atlst ) : void // end of [p3at_lincon_update] (* ****** ****** *) local fun auxvar (d2v: d2var): void = let // val islin = d2var_is_linear (d2v) // in // if islin then let val-Some (s2e) = d2var_get_mastype (d2v) // end of [val] in d2var_set_finknd (d2v, D2VFINsome (s2e)) end // end of [if] // end // end of [auxvar] fun auxpat (p3t: p3at): void = let in // case+ p3t.p3at_node of | P3Tvar (d2v) => auxvar (d2v) | P3Trefas (d2v, _) => auxvar (d2v) | _ => () end // end of [auxpat] in (* in of [local] *) implement p3at_lincon_update ( p3t0, d2c, p3ts_arg ) = let val () = list_app_fun (p3ts_arg, auxpat) in p3at_set_type_left (p3t0, Some (p3t0.p3at_type)) end // end of [p3at_lincon_update] end // end of [local] (* ****** ****** *) extern fun p3at_free_update ( p3t0: p3at, d2c: d2con, p3ts_arg: p3atlst ) : void // end of [p3at_free_update] local fun auxck ( p3t: p3at ) : void = let val loc = p3t.p3at_loc val opt = p3at_get_type_left (p3t) in // case+ opt of | Some (s2e) => let val () = prerr_error3_loc (loc) val () = prerr ": a value matching this pattern may not be freed"; val () = prerr ": it contains a linear component of the following type ["; val () = pprerr_s2exp (s2e) val () = prerr "]." val () = prerr_newline () in the_trans3errlst_add (T3E_p2at_free_update (p3t)) end (* end of [if] *) | None () => () end // end of [auxck] in (* in of [local] *) implement p3at_free_update (p3t0, d2c, p3ts_arg) = list_app_fun (p3ts_arg, auxck) // end of [p3at_free_update] end // end of [local] (* ****** ****** *) extern fun p3at_unfold_update ( p3t0: p3at, d2c: d2con, p3ts_arg: p3atlst ) : void // end of [p3at_unfold_update] local fun auxpat1 (p3t: p3at): d2var = let in // case+ p3t.p3at_node of | P3Tany (d2v) => let val opt = p3at_get_type_left (p3t) val opt = ( case+ opt of | Some _ => opt | None () => Some (s2exp_topize_1 (p3t.p3at_type)) ) : s2expopt // end of [val] val () = d2var_set_type (d2v, opt) in d2v end (* end of [P3Tany] *) | P3Tvar (d2v) => d2v | P3Trefas (d2v, _) => let val opt = p3at_get_type_left (p3t) // end of [val] (* val () = p3at_set_type_left (None) *) val () = ( case+ opt of | Some _ => d2var_set_type (d2v, opt) | None _ => () ) : void // end of [val] in d2v end // end of [P3Trefas] | _ => let val d2v = d2var_make_any (p3t.p3at_loc) val () = p3at_set_dvaropt (p3t, Some (d2v)) val opt = p3at_get_type_left (p3t) val opt = ( case+ opt of | Some _ => opt | None () => Some (s2exp_topize_1 (p3t.p3at_type)) ) : s2expopt // end of [val] val () = d2var_set_type (d2v, opt) in d2v end (* end of [_] *) // end // end of [auxpat1] fun auxpat2 (p3t: p3at): s2exp = let val loc = p3t.p3at_loc val d2v = auxpat1 (p3t) val-Some (s2e) = d2var_get_type (d2v) val d2vw = d2var_mutablize_none (loc, d2v, s2e) // making [d2v] mutable val-Some (s2l) = d2var_get_addr (d2v) in s2l end (* end of [auxpat2] *) fun s2dcp_make ( d2c: d2con, arg: s2explst ) : s2exp = let val s2v = s2var_make_srt (s2rt_addr) val () = trans3_env_add_svar (s2v) // adding svar val rt = s2exp_var (s2v) // the root of datconptr in s2exp_datconptr (d2c, rt, arg) end // end of [s2dcp_make] in (* in of [local] *) implement p3at_unfold_update (p3t0, d2c, p3ts_arg) = let (* val () = println! ("p3at_unfold_update: p3t0 = ", p3t0); val () = ( println! ("p3at_unfold_update: d2c = ", d2c); fprintln! (stdout_ref, "p3at_unfold_update: p3ts_arg = ", p3ts_arg); ) (* end of [val] *) *) // val s2ls = list_map_fun (p3ts_arg, auxpat2) val s2dcp = s2dcp_make (d2c, (l2l)s2ls) // in p3at_set_type_left (p3t0, Some (s2dcp)) end // end of [p3at_unfold_update] end // end of [local] (* ****** ****** *) local fun auxerr_arity ( p2t0: p2at, serr: int ) : void = let val loc0 = p2t0.p2at_loc val () = prerr_error3_loc (loc0) val () = prerr ": constructor arity mismatch" val () = if serr < 0 then prerr ": more arguments are expected." val () = if serr > 0 then prerr ": fewer arguments are expected." val () = prerr_newline () in the_trans3errlst_add (T3E_p2at_trdn_con_arity (p2t0, serr)) end // end of [val] in (* in of [local] *) implement p2at_trdn_con (p2t0, s2f0) = let (* val () = ( println! ("p2at_trdn_con: p2t0 = ", p2t0); println! ("p2at_trdn_con: s2f0 = ", s2f0); ) // end of [val] *) val loc0 = p2t0.p2at_loc val s2e0 = s2hnf2exp (s2f0) val-P2Tcon ( pck, d2c, s2qs, s2e_con, npf, p2ts_arg ) = p2t0.p2at_node // val s2c = d2con_get_scst (d2c) val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val s2f = s2exp2hnf (s2e) val s2e = s2hnf2exp (s2f) val s2f_head = s2hnf_get_head (s2f) val s2e_head = s2hnf2exp (s2f_head) // var flag: int = ~1 (*error*) var s2es_arg_alt: s2explst = list_nil () val () = ( case+ s2e_head.s2exp_node of | S2Ecst (s2c1) => if eq_s2cst_s2cst (s2c, s2c1) then flag := 0 | S2Edatcontyp (d2c1, s2es) => if eq_d2con_d2con (d2c, d2c1) then (flag := 1; s2es_arg_alt := s2es) | _ => ((*void*)) ) // end of [val] // val () = if (flag > 0) then ( case+ pck of | PCKfree () => let val ( ) = prerr_error3_loc (loc0) val () = prerr ": the pattern decoration ~(freeing) is wrongly applied." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) end // end of [PCKfree] | PCKunfold () => let val ( ) = prerr_error3_loc (loc0) val () = prerr ": the pattern decoration @(unfolding) is wrongly applied." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) end // end of [PCKunfold] | _ => () ) // end of [if] // end of [val] // val () = if (flag < 0) then let val ( ) = prerr_error3_loc (loc0) val () = prerr ": the constructor pattern cannot be assigned the type [" val () = pprerr_s2exp (s2e) val () = prerr "]." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) end (* end of [if] // end of [val] *) // val flag_vwtp = ( if flag > 0 then 1 else d2con_get_vwtp (d2c) ) : int // end of [val] // var pck: pckind = pck val ( ) = if pck = PCKcon then (if flag_vwtp > 0 then pck := PCKlincon) // val () = if flag_vwtp = 0 then ( case+ pck of | PCKfree () => let val ( ) = prerr_error3_loc (loc0) val () = prerr ": pattern decoration ~(freeing) cannot be applied." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) end // end of [PCKfree] | PCKunfold () => let val ( ) = prerr_error3_loc (loc0) val () = prerr ": pattern decoration ~(unfolding) cannot be applied." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) end // end of [PCKunfold] | _ => ((*void*)) ) (* end of [if] *) // end of [val] // (* val () = println! ("p2at_trdn_con: pck = ", pck) val () = println! ("p2at_trdn_con: flag = ", flag) *) // val p3t0 = ( case+ 0 of | _ when flag = 0 => let val+~PATCONTRUP (p2ts, s2es_arg, s2e_res) = p2at_trup_con (p2t0) val () = $SOL.s2exp_hypequal_solve (loc0, s2e_res, s2e) var serr: int = 0 val p3ts_arg = p2atlst_trdn (loc0, p2ts_arg, s2es_arg, serr) val () = if serr != 0 then auxerr_arity (p2t0, serr) val p3t0 = p3at_con (loc0, s2e, pck, d2c, npf, p3ts_arg) // val () = ( case+ pck of | PCKcon () => () | PCKlincon () => p3at_lincon_update (p3t0, d2c, p3ts_arg) | PCKfree () => p3at_free_update (p3t0, d2c, p3ts_arg) | PCKunfold () => p3at_unfold_update (p3t0, d2c, p3ts_arg) ) : void // end of [val] // in p3t0 end // end of [flag=0] | _ when flag > 0 => let var serr: int = 0 val p3ts_arg = p2atlst_trdn (loc0, p2ts_arg, s2es_arg_alt, serr) val () = if serr != 0 then auxerr_arity (p2t0, serr) val p3t0 = p3at_con (loc0, s2e, pck, d2c, npf, p3ts_arg) val () = p3at_unfold_update (p3t0, d2c, p3ts_arg) in p3t0 end // end of [flag>0] | _ => p3at_errpat (loc0, s2e) // HX: error already registered ) : p3at // end of [val] // in p3t0 end // end of [p2at_trdn_con] end // end of [local] (* ****** ****** *) (* end of [pats_trans3_patcon.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp2_dmac.dats0000644000175000017500000001051113431250607021730 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp overload compare with $STMP.compare_stamp_stamp staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol typedef symbolopt = $SYM.symbolopt (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) typedef d2mac_struct = @{ d2mac_loc= location , d2mac_sym= symbol , d2mac_kind= int // short/long: 0/1 , d2mac_arglst= m2acarglst // argument , d2mac_def= d2exp // definition , d2mac_stamp= stamp // uniqueness stamp } // end of [d2mac_struct] (* ****** ****** *) local assume d2mac_type = ref (d2mac_struct) in // in of [local] implement d2mac_make ( loc, name, knd, xs, def ) = let // val stamp = $STMP.d2mac_stamp_make () val (pfgc, pfat | p) = ptr_alloc () prval () = free_gc_elim {d2mac_struct?} (pfgc) // val () = p->d2mac_loc := loc val () = p->d2mac_sym := name val () = p->d2mac_kind := knd val () = p->d2mac_arglst := xs val () = p->d2mac_def := def val () = p->d2mac_stamp := stamp // in // in of [let] // ref_make_view_ptr (pfat | p) // end // end of [d2mac_make] implement d2mac_get_loc (d2m) = let val (vbox pf | p) = ref_get_view_ptr (d2m) in p->d2mac_loc end // end of [d2cst_get_loc] implement d2mac_get_sym (d2m) = let val (vbox pf | p) = ref_get_view_ptr (d2m) in p->d2mac_sym end // end of [d2mac_get_sym] implement d2mac_get_kind (d2m) = let val (vbox pf | p) = ref_get_view_ptr (d2m) in p->d2mac_kind end // end of [d2mac_get_kind] implement d2mac_get_arglst (d2m) = let val (vbox pf | p) = ref_get_view_ptr (d2m) in p->d2mac_arglst end // end of [d2mac_get_arglst] implement d2mac_get_def (d2m) = let val (vbox pf | p) = ref_get_view_ptr (d2m) in p->d2mac_def end // end of [d2mac_get_def] implement d2mac_set_def (d2m, def) = let val (vbox pf | p) = ref_get_view_ptr (d2m) in p->d2mac_def := def end // end of [d2mac_set_def] implement d2mac_get_stamp (d2m) = let val (vbox pf | p) = ref_get_view_ptr (d2m) in p->d2mac_stamp end // end of [d2mac_get_stamp] end // end of [local (* ****** ****** *) implement fprint_m2acarg (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ x of | M2ACARGsta (s2vs) => ( prstr "M2ACARGsta("; fprint_s2varlst (out, s2vs); prstr ")" ) // end of [M2ACARGsta] | M2ACARGdyn (d2vs) => ( prstr "M2ACARGdyn("; fprint_d2varlst (out, d2vs); prstr ")" ) // end of [M2ACARGdyn] // end // end of [fprint_m2acarg] implement fprint_m2acarglst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_m2acarg) // end of [fprint_m2acarglst] (* ****** ****** *) implement fprint_d2mac (out, x) = $SYM.fprint_symbol (out, d2mac_get_sym (x)) // end of [fprint_d2mac] implement print_d2mac (x) = fprint_d2mac (stdout_ref, x) implement prerr_d2mac (x) = fprint_d2mac (stderr_ref, x) (* ****** ****** *) (* end of [pats_dynexp2_dmac.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dmacro2_print.dats0000644000175000017500000000600713431250607022123 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: June, 2012 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_dmacro2.sats" (* ****** ****** *) implement fprint_m2val (out, x) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x of | M2Vint (i) => { val () = prstr "M2Vint(" val () = fprint_int (out, i) val () = prstr ")" } | M2Vbool (b) => { val () = prstr "M2Vbool(" val () = fprint_bool (out, b) val () = prstr ")" } | M2Vchar (c) => { val () = prstr "M2Vchar(" val () = fprint_char (out, c) val () = prstr ")" } | M2Vfloat (rep) => { val () = prstr "M2Vfloat(" val () = fprint_string (out, rep) val () = prstr ")" } | M2Vstring (str) => { val () = prstr "M2Vstring(" val () = fprint_string (out, str) val () = prstr ")" } | M2Vunit () => prstr "M2Vunit()" // | M2Vscode (s2e) => { val () = prstr "M2Vscode(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } | M2Vdcode (d2e) => { val () = prstr "M2Vdcode(" val () = fprint_d2exp (out, d2e) val () = prstr ")" } // | M2Vlist (xs) => { val () = prstr "M2Vlist(" val () = $UT.fprintlst (out, xs, ", ", fprint_m2val) val () = prstr ")" } // | M2Verr () => prstr "M2Verr()" // end // end of [fprint_m2val] implement print_m2val (x) = fprint_m2val (stdout_ref, x) implement prerr_m2val (x) = fprint_m2val (stderr_ref, x) (* ****** ****** *) implement fprint_m2valist (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_m2val) // end of [fprint_m2valist] (* ****** ****** *) (* end of [pats_dmacro2_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_utils.sats0000644000175000017500000001064113431250607020536 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) fun eqref_type{a:type}(x1: a, x2: a):<> bool (* ****** ****** *) // // HX: the [base] is stored inside [rep] // fun llint_make_string (rep: string): llint // (* ****** ****** *) fun double_make_string (rep: string): double (* ****** ****** *) // // HX: finding the base of [rep] // fun intrep_get_base (rep: string): int // // HX: finding the length of the suffix [UuLl]* fun intrep_get_nsfx (rep: string): uint // in the [rep] // (* ****** ****** *) // // HX: finding the length of the suffix [FfLl]* fun float_get_nsfx (rep: string): uint // in the [rep] // (* ****** ****** *) fun dirpath_append (dir: string, path: string, sep: char): Strptr1 // end of [dirpath_append] (* ****** ****** *) // fun print_stropt(opt: Stropt): void fun prerr_stropt(opt: Stropt): void fun fprint_stropt(out: FILEref, opt: Stropt): void // (* ****** ****** *) fun{ a:t@ype } fprintlst ( out: FILEref , xs: List a , sep: string , fprint: (FILEref, a) -> void ) : void // end of [fprintlst] fun{ a:t@ype } fprintopt ( out: FILEref , opt: Option a , fprint: (FILEref, a) -> void ) : void // end of [fprintopt] (* ****** ****** *) // // HX-2011: // for ordered lists // abstype lstord (a:type) // fun lstord_nil {a:type} (): lstord (a) fun lstord_sing {a:type} (x: a): lstord (a) // fun lstord_insert{a:type} ( xs: lstord a, x: a, cmp: (a, a) - int ) : lstord (a) // end of [lstord_insert] fun lstord_union{a:type} ( xs: lstord a, ys: lstord a, cmp: (a, a) - int ) : lstord (a) // end of [lstord_union] (* ** HX: it returns a list of the duplicates in [xs] *) fun lstord_get_dups {a:type} (xs: lstord a, cmp: (a, a) - int): List (a) // end of [lstord_get_dups] fun lstord2list {a:type} (xs: lstord a): List (a) (* ****** ****** *) // abstype charset_type typedef charset = charset_type // typedef charlst = List (char) vtypedef charlst_vt = List_vt (char) // fun charset_sing (x: char): charset fun charset_is_member (xs: charset, x: char): bool fun charset_add (xs: charset, x: char): charset // fun charset_listize (xs: charset): charlst_vt // fun fprint_charset (out: FILEref, xs: charset): void // (* ****** ****** *) local // staload Q = "libats/SATS/linqueue_arr.sats" // vtypedef QUEUE (m:int, n:int) = $Q.QUEUE (uchar, m, n) // in (* in of [local] *) // fun queue_get_strptr1 {m,n:int} {st,ln:nat | st+ln <= n} ( q: &QUEUE (m, n), st: size_t st, ln: size_t ln ) : strptr1 // end-of-function // end // end of [local] (* ****** ****** *) local staload FCNTL = "libc/SATS/fcntl.sats" in (*in-of-local*) stadef fildes_v = $FCNTL.fildes_v (* // // HX: [fd] is regular: no support for pipe // HX: the function returns [strptr_null] as error indication // *) fun file2strptr {fd:int} ( pf: !fildes_v fd | fd: int fd ) : strptr0 = "patsopt_file2strptr" // end of [file2strptr] // end // end of [local] (* ****** ****** *) fun{ a:t@ype } tostring_fprint (prfx: string, fpr: (FILEref, a) -> void, x: a): strptr0 // end of [tostring_fprint] (* ****** ****** *) // fun ptr_as_volatile (p: ptr): void // for stopping optimization // (* ****** ****** *) (* end of [pats_utils.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dmacro2_eval1.dats0000644000175000017500000005742613431250607022012 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_dmacro2_eval1" // (* ****** ****** *) staload LOC = "./pats_location.sats" overload print with $LOC.print_location (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans3.sats" (* ****** ****** *) staload "./pats_dmacro2.sats" (* ****** ****** *) // extern fun d2var_rename ( loc0: location, d2v: d2var ) : d2var // end-of-fun implement d2var_rename(loc0, d2v) = d2v // HX: is this okay? // (* ****** ****** *) // extern fun eval1_s2exp : eval1_type(s2exp) extern fun eval1_s2explst : eval1_type(s2explst) extern fun eval1_s2expopt : eval1_type(s2expopt) // extern fun eval1_s2exparg : eval1_type(s2exparg) extern fun eval1_s2exparglst : eval1_type(s2exparglst) // extern fun eval1_t2mpmarg : eval1_type(t2mpmarg) extern fun eval1_t2mpmarglst : eval1_type(t2mpmarglst) // (* ****** ****** *) extern fun eval1_d2var : eval1_type(d2var) (* ****** ****** *) extern fun eval1_i2nvarg : eval1_type(i2nvarg) extern fun eval1_i2nvarglst : eval1_type(i2nvarglst) extern fun eval1_i2nvresstate : eval1_type(i2nvresstate) (* ****** ****** *) // extern fun eval1_p2at : eval1_type(p2at) extern fun eval1_p2atlst : eval1_type(p2atlst) extern fun eval1_p2atopt : eval1_type(p2atopt) // extern fun eval1_labp2at : eval1_type(labp2at) extern fun eval1_labp2atlst : eval1_type(labp2atlst) // (* ****** ****** *) // extern fun eval1_d2explst : eval1_type(d2explst) extern fun eval1_d2expopt : eval1_type(d2expopt) // extern fun eval1_labd2exp : eval1_type(labd2exp) extern fun eval1_labd2explst : eval1_type(labd2explst) // extern fun eval1_d2lablst : eval1_type(d2lablst) // extern fun eval1_d2exparg : eval1_type(d2exparg) extern fun eval1_d2exparglst : eval1_type(d2exparglst) // (* ****** ****** *) // extern fun eval1_d2exp_applst : eval1_type(d2exp) extern fun eval1_d2exp_macsyn : eval1_type(d2exp) // (* ****** ****** *) extern fun eval1_gm2at : eval1_type(gm2at) extern fun eval1_gm2atlst : eval1_type(gm2atlst) extern fun eval1_c2lau : eval1_type(c2lau) extern fun eval1_c2laulst : eval1_type(c2laulst) (* ****** ****** *) // extern fun eval1_d2ecl : eval1_type(d2ecl) extern fun eval1_d2eclist : eval1_type(d2eclist) // (* ****** ****** *) implement eval1_listmap ( loc0, ctx, env, xs, fopr ) = ( // case+ xs of // | list_nil() => list_nil() // | list_cons(x, xs) => let val x = fopr(loc0, ctx, env, x) val xs = eval1_listmap(loc0, ctx, env, xs, fopr) in list_cons(x, xs) end // end of [list_cons] ) (* end of [eval1_listmap] *) (* ****** ****** *) implement eval1_s2exp ( loc0, ctx, env, s2e ) = s2e where { (* val () = println! ("eval1_s2exp: s2e(bef) = ", s2e) *) val sub = stasub_make_evalctx(ctx) val s2e = s2exp_subst(sub, s2e) // val () = stasub_free(sub) (* val () = println! ("eval1_s2exp: s2e(aft) = ", s2e) *) } (* end of [eval1_s2exp] *) (* ****** ****** *) implement eval1_s2explst (loc0, ctx, env, s2es) = eval1_listmap (loc0, ctx, env, s2es, eval1_s2exp) // end of [eval1_s2explst] implement eval1_s2expopt ( loc0, ctx, env, opt ) = ( case+ opt of | None() => None() | Some(s2e) => Some(eval1_s2exp(loc0, ctx, env, s2e)) ) // end of [eval1_s2expopt] (* ****** ****** *) implement eval1_s2exparg ( loc0, ctx, env, s2a ) = let // val s2an = s2a.s2exparg_node // in // case+ s2an of | S2EXPARGone() => s2exparg_one(loc0) | S2EXPARGall() => s2exparg_all(loc0) | S2EXPARGseq(s2es) => s2exparg_seq (loc0, eval1_s2explst(loc0, ctx, env, s2es)) // end of [S2EXPARGseq] // end // end of [eval1_s2exparg] implement eval1_s2exparglst (loc0, ctx, env, s2as) = eval1_listmap(loc0, ctx, env, s2as, eval1_s2exparg) // end of [eval1_s2exparglst] (* ****** ****** *) implement eval1_t2mpmarg ( loc0, ctx, env, t2ma ) = let // val s2es = eval1_s2explst(loc0, ctx, env, t2ma.t2mpmarg_arg) // in t2mpmarg_make (loc0, s2es) end // end of [eval1_t2mpmarg] implement eval1_t2mpmarglst (loc0, ctx, env, t2mas) = eval1_listmap(loc0, ctx, env, t2mas, eval1_t2mpmarg) // end of [eval1_t2mpmarglst] (* ****** ****** *) implement eval1_d2var (loc0, ctx, env, d2v) = let val opt = alphenv_dfind (env, d2v) in case+ opt of | ~Some_vt(d2v) => d2v | ~None_vt () => d2v end // end of [eval1_d2var] (* ****** ****** *) implement eval1_i2nvarg ( loc0, ctx, env, arg ) = let // val d2v = eval1_d2var(loc0, ctx, env, arg.i2nvarg_var) val opt = eval1_s2expopt(loc0, ctx, env, arg.i2nvarg_type) // in i2nvarg_make(d2v, opt) end // end of [eval1_i2nvarg] implement eval1_i2nvarglst (loc0, ctx, env, args) = eval1_listmap(loc0, ctx, env, args, eval1_i2nvarg) // end of [eval1_i2nvarglst] implement eval1_i2nvresstate (loc0, ctx, env, inv) = let val svs = inv.i2nvresstate_svs val gua = inv.i2nvresstate_gua val arg = eval1_i2nvarglst(loc0, ctx, env, inv.i2nvresstate_arg) val met = inv.i2nvresstate_met in i2nvresstate_make_met (svs, gua, arg, met) end // end of [eval1_i2nvresstate] (* ****** ****** *) implement eval1_p2at ( loc0, ctx, env, p2t0 ) = let (* val () = println! ("eval1_p2at: p2t0 = ", p2t0) *) in // case+ p2t0.p2at_node of (* case+ *) // | P2Tany _ => p2at_any(loc0) // | P2Tvar(d2v) => let val d2v_new = d2var_rename(loc0, d2v) val () = alphenv_dadd(env, d2v, d2v_new) // end of [val] in p2at_var(loc0, d2v_new) end // end of [P2Tvar] // | P2Tcon ( knd, d2c , s2qs, s2e_con, npf, p2ts_arg ) => let val p2ts_arg = eval1_p2atlst(loc0, ctx, env, p2ts_arg) in p2at_con(loc0, knd, d2c, s2qs, s2e_con, npf, p2ts_arg) end // end of [P2Tcon] // | P2Tint(i) => p2at_int(loc0, i) | P2Tintrep(rep) => p2at_intrep(loc0, rep) // | P2Tbool(b) => p2at_bool(loc0, b) | P2Tchar(c) => p2at_char(loc0, c) | P2Tfloat(rep) => p2at_float(loc0, rep) | P2Tstring(str) => p2at_string(loc0, str) // | P2Ti0nt(tok) => p2at_i0nt(loc0, tok) | P2Tf0loat(tok) => p2at_f0loat(loc0, tok) // | P2Tempty() => p2at_empty(loc0) // | P2Tlst(lin, p2ts) => let val p2ts = eval1_p2atlst(loc0, ctx, env, p2ts) in p2at_lst(loc0, lin, p2ts) end // end of [P2Tlst] // | P2Trec(knd, npf, lp2ts) => let val lp2ts = eval1_labp2atlst(loc0, ctx, env, lp2ts) in p2at_rec(loc0, knd, npf, lp2ts) end // end of [P2Trec] // | P2Tann(p2t, s2e) => p2at_ann(loc0, p2t, s2e) where { val p2t = eval1_p2at(loc0, ctx, env, p2t) val s2e = eval1_s2exp(loc0, ctx, env, s2e) } (* end of [P2Tann] *) // | _ (*P2T-rest*) => exitloc(1) where // HX: exit with loc-info { val () = println! ( "eval1_p2at: not implemented yet: p2t0 = ", p2t0 ) (* println! *) } (* [rest-of-p2at] *) // end // end of [eval1_p2at] (* ****** ****** *) implement eval1_p2atlst (loc0, ctx, env, p2ts) = eval1_listmap(loc0, ctx, env, p2ts, eval1_p2at) // end of [eval1_p2atlst] implement eval1_p2atopt (loc0, ctx, env, opt) = let in case+ opt of | Some (p2t) => Some (eval1_p2at (loc0, ctx, env, p2t)) | None ((*void*)) => None () end // end of [eval1_p2atopt] (* ****** ****** *) implement eval1_labp2at (loc0, ctx, env, lp2t) = let in // case+ lp2t of | LABP2ATnorm (l, p2t) => let val p2t = eval1_p2at (loc0, ctx, env, p2t) in LABP2ATnorm (l, p2t) end // end of [LABP2ATnor] | LABP2ATomit _ => LABP2ATomit (loc0) // end // end of [eval1_labp2at] implement eval1_labp2atlst (loc0, ctx, env, lp2ts) = eval1_listmap (loc0, ctx, env, lp2ts, eval1_labp2at) // end of [eval1_labp2atlst] (* ****** ****** *) implement eval1_d2explst (loc0, ctx, env, d2es) = eval1_listmap (loc0, ctx, env, d2es, eval1_d2exp) // end of [eval1_d2explst] implement eval1_d2expopt (loc0, ctx, env, opt) = ( case+ opt of | Some (d2e) => Some (eval1_d2exp (loc0, ctx, env, d2e)) | None () => None () ) // end of [eval1_d2expopt] (* ****** ****** *) implement eval1_labd2exp ( loc0, ctx, env, ld2e ) = let val $SYN.DL0ABELED (l, d2e) = ld2e in $SYN.DL0ABELED (l, eval1_d2exp (loc0, ctx, env, d2e)) end // end of [eval1_labd2exp] implement eval1_labd2explst (loc0, ctx, env, ld2es) = eval1_listmap (loc0, ctx, env, ld2es, eval1_labd2exp) // end of [eval1_labd2explst] (* ****** ****** *) implement eval1_d2lablst (loc0, ctx, env, d2ls) = let in // case+ d2ls of | list_cons (d2l, d2ls) => let val d2l = ( case+ d2l.d2lab_node of | D2LABlab _ => d2l | D2LABind (ind) => d2lab_ind (loc0, eval1_d2explst (loc0, ctx, env, ind)) ) : d2lab // end of [val] val d2ls = eval1_d2lablst (loc0, ctx, env, d2ls) in list_cons (d2l, d2ls) end // end of [list_cons] | list_nil () => list_nil () // end // end of [eval1_d2lablst] (* ****** ****** *) implement eval1_d2exparg (loc0, ctx, env, d2a) = let in // case+ d2a of | D2EXPARGsta (locarg, s2as) => D2EXPARGsta (loc0, s2as) | D2EXPARGdyn (npf, locarg, d2es) => let val d2es = eval1_d2explst (loc0, ctx, env, d2es) in D2EXPARGdyn (npf, loc0, d2es) end // end of [D2EXPARGdyn] // end // end of [eval1_d2exparg] implement eval1_d2exparglst (loc0, ctx, env, d2as) = eval1_listmap (loc0, ctx, env, d2as, eval1_d2exparg) // end of [eval1_d2exparglst] (* ****** ****** *) implement eval1_d2exp_applst ( loc0, ctx, env, d2e0 ) = let // val-D2Eapplst (d2e, d2as) = d2e0.d2exp_node val loc = d2e.d2exp_loc // fun auxerr ( loc0: location, d2e0: d2exp, d2m: d2mac ) : void = let val () = prerr_errmac_loc (loc0) val () = prerr ": the dynamic symbol [" val () = prerr_d2mac (d2m) val () = prerr "] at ("; val () = $LOC.prerr_location (d2e0.d2exp_loc) val () = prerr ") refers to a macrodef (to be called inside ,(...))." val () = prerr_newline (); in the_trans3errlst_add (T3E_dmacro_eval1_d2exp (loc0, d2e0)) end // end of [auxerr] // val d2e = eval1_d2exp (loc0, ctx, env, d2e) val d2as = eval1_d2exparglst (loc0, ctx, env, d2as) // in // case+ d2e.d2exp_node of // case+ | D2Emac (d2m) => let val knd = d2mac_get_kind (d2m) in if knd = 0 then ( // [d2m] is of short form eval0_app_mac_short (loc0, d2m, ctx, env, d2as) ) else let val () = auxerr (loc0, d2e0, d2m) in d2exp_errexp (loc0) // end of [val] end // end of [if] end // end of [D2Emac] | D2Eapplst (d2e1, d2as1) => ( d2exp_applst (loc0, d2e1, list_append (d2as1, d2as)) ) // end of [D2Eapplst] // | _ => d2exp_applst (loc0, d2e, d2as) // end // end of [eval1_d2exp_applst] (* ****** ****** *) implement eval1_d2exp_macsyn ( loc0, ctx, env, d2e0 ) = let val-D2Emacsyn (knd, d2e) = d2e0.d2exp_node in // case+ knd of | $SYN.MSKdecode () => let val m2v = eval0_d2exp (loc0, ctx, env, d2e) in case+ m2v of | M2Vdcode (d2e_new) => d2e_new | _ => let val () = prerr_errmac_loc (loc0) val () = prerr ": the expansion of the dynamic expression at ("; val () = $LOC.prerr_location (d2e.d2exp_loc) val ()= prerr ") is expected to return code (AST) but it does not."; (* val () = prerr "expanded exp: d2e = "; prerr_d2exp (d2e); prerr_newline (); val () = prerr "returned val: m2v = "; prerr_m2val (m2v); prerr_newline (); *) val () = prerr_newline () in d2exp_errexp (loc0) end // end of [_] end // end of [MSKdecode] | $SYN.MSKxstage () => let val m2v = eval0_d2exp (loc0, ctx, env, d2e) in liftval2dexp (loc0, m2v) end // end of [MSKxstage] | _ => let val () = prerr_errmac_loc (loc0) val () = prerr ": macro syntax is used incorrectly: " val () = prerr_d2exp (d2e0) val () = prerr_newline () in d2exp_errexp (loc0) end // end of [_] // end // end of [eval1_d2exp_macsyn] (* ****** ****** *) implement eval1_d2exp (loc0, ctx, env, d2e0) = let (* val () = ( println! ("eval1_d2exp: loc0 = ", loc0); println! ("eval1_d2exp: d2e0 = ", d2e0); ) (* end of [val] *) *) val d2en0 = d2e0.d2exp_node // macdef reloc () = d2exp_make_node (loc0, d2en0) // macdef eval1sexp (x) = eval1_s2exp (loc0, ctx, env, ,(x)) macdef eval1sexplst (xs) = eval1_s2explst (loc0, ctx, env, ,(xs)) macdef eval1sexpopt (opt) = eval1_s2expopt (loc0, ctx, env, ,(opt)) // macdef eval1sexparg (x) = eval1_s2exparg (loc0, ctx, env, ,(x)) macdef eval1sexparglst (xs) = eval1_s2exparglst (loc0, ctx, env, ,(xs)) // macdef eval1tmpmarg (x) = eval1_t2mpmarg (loc0, ctx, env, ,(x)) macdef eval1tmpmarglst (xs) = eval1_t2mpmarglst (loc0, ctx, env, ,(xs)) // macdef eval1dvar (x) = eval1_d2var (loc0, ctx, env, ,(x)) // macdef eval1dexp (x) = eval1_d2exp (loc0, ctx, env, ,(x)) macdef eval1dexplst (xs) = eval1_d2explst (loc0, ctx, env, ,(xs)) macdef eval1dexpopt (opt) = eval1_d2expopt (loc0, ctx, env, ,(opt)) // macdef eval1labdexp (x) = eval1_labd2exp (loc0, ctx, env, ,(x)) macdef eval1labdexplst (xs) = eval1_labd2explst (loc0, ctx, env, ,(xs)) // macdef eval1dlablst (xs) = eval1_d2lablst (loc0, ctx, env, ,(xs)) // macdef eval1invres (inv) = eval1_i2nvresstate (loc0, ctx, env, ,(inv)) // macdef eval1claulst (c2ls) = eval1_c2laulst (loc0, ctx, env, ,(c2ls)) // in // case+ d2en0 of // | D2Evar (d2v) => d2exp_var (loc0, eval1dvar (d2v)) // end of [D2Evar] // | D2Ecst _ => reloc () // | D2Eint _ => reloc () | D2Eintrep _ => reloc () | D2Echar _ => reloc () | D2Estring _ => reloc () | D2Efloat _ => reloc () // | D2Ei0nt _ => reloc () | D2Ec0har _ => reloc () | D2Es0tring _ => reloc () | D2Ef0loat _ => reloc () // | D2Ecstsp _ => reloc () // | D2Etop _ => reloc () | D2Eempty _ => reloc () // | D2Eextval (s2e, rep) => d2exp_extval (loc0, eval1sexp (s2e), rep) (* end of [D2Eextval] *) // | D2Eextfcall (res, _fun, _arg) => let val res = eval1sexp (res) val _arg = eval1dexplst (_arg) in d2exp_extfcall (loc0, res, _fun, _arg) end // end of [D2Eextfcall] | D2Eextmcall (res, _obj, _mtd, _arg) => let val res = eval1sexp (res) val _obj = eval1dexp(_obj) val _arg = eval1dexplst (_arg) in d2exp_extmcall (loc0, res, _obj, _mtd, _arg) end // end of [D2Eextmcall] // | D2Econ ( d2c, locfun, s2as, npf, locarg, d2es ) => let val s2as = eval1sexparglst (s2as) // end of [val] val d2es = eval1dexplst (d2es) in d2exp_con (loc0, d2c, locfun, s2as, npf, locarg, d2es) end // end of [D2Econ] // | D2Esym _ => reloc () // | D2Etmpid ( d2e_id, t2mas ) => let val d2en = d2e_id.d2exp_node val d2e_id = d2exp_make_node (loc0, d2en) val t2mas = eval1tmpmarglst (t2mas) in d2exp_tmpid (loc0, d2e_id, t2mas) end // end of [D2Etmpid] // | D2Elet (d2cs, d2e) => let val () = alphenv_push (env) val d2cs = eval1_d2eclist (loc0, ctx, env, d2cs) val d2e = eval1dexp (d2e) val () = alphenv_pop (env) in d2exp_let (loc0, d2cs, d2e) end // end of [D2Elet] | D2Ewhere (d2e, d2cs) => let val () = alphenv_push (env) val d2cs = eval1_d2eclist (loc0, ctx, env, d2cs) val d2e = eval1dexp (d2e) val () = alphenv_pop (env) in d2exp_where (loc0, d2e, d2cs) end // end of [D2Ewhere] // | D2Eapplst _ => eval1_d2exp_applst (loc0, ctx, env, d2e0) // end of [D2Eapplst] // | D2Eifhead ( inv, _test, _then, _else ) => let val inv = eval1invres (inv) val _test = eval1dexp (_test) val _then = eval1dexp (_then) val _else = eval1dexpopt (_else) in d2exp_ifhead (loc0, inv, _test, _then, _else) end // end of [D2Eifhead] | D2Esifhead ( inv, _test, _then, _else ) => let val inv = eval1invres (inv) val _test = eval1sexp (_test) val _then = eval1dexp (_then) val _else = eval1dexp (_else) in d2exp_sifhead (loc0, inv, _test, _then, _else) end // end of [D2Esifhead] // | D2Ecasehead ( knd, inv, d2es, c2ls ) => let val inv = eval1invres (inv) val d2es = eval1dexplst (d2es) val c2ls = eval1claulst (c2ls) in d2exp_casehead (loc0, knd, inv, d2es, c2ls) end // end of [D2Ecasehead] // | D2Esing (d2e) => d2exp_sing(loc0, eval1dexp (d2e)) | D2Elist (npf, d2es) => d2exp_list(loc0, npf, eval1dexplst (d2es)) // | D2Elst (lin, opt, d2es) => d2exp_lst ( loc0, lin, eval1sexpopt (opt), eval1dexplst (d2es) ) (* end of [D2Elst] *) // | D2Etup (knd, npf, d2es) => d2exp_tup (loc0, knd, npf, eval1dexplst (d2es)) | D2Erec (knd, npf, ld2es) => d2exp_rec (loc0, knd, npf, eval1labdexplst (ld2es)) // | D2Eseq (d2es) => d2exp_seq (loc0, eval1dexplst (d2es)) // | D2Eselab (d2e, d2ls) => d2exp_selab (loc0, eval1dexp (d2e), eval1dlablst (d2ls)) // | D2Eptrof (d2e) => d2exp_ptrof (loc0, eval1dexp (d2e)) | D2Eviewat (d2e) => d2exp_viewat (loc0, eval1dexp (d2e)) // | D2Ederef(d2s, d2e) => d2exp_deref(loc0, d2s, eval1dexp(d2e)) // | D2Eassgn(d2e_l, d2e_r) => d2exp_assgn(loc0, eval1dexp(d2e_l), eval1dexp(d2e_r)) | D2Exchng(d2e_l, d2e_r) => d2exp_xchng(loc0, eval1dexp(d2e_l), eval1dexp(d2e_r)) // | D2Earrsub ( d2s, d2e, locind, ind ) => d2exp_arrsub ( loc0, d2s, eval1dexp(d2e), loc0, eval1dexplst(ind) ) // end of [D2Earrsub] | D2Earrinit (elt, asz, ini) => d2exp_arrinit ( loc0 , eval1sexp(elt), eval1dexpopt (asz), eval1dexplst(ini) ) // end of [D2Earrinit] // | D2Earrpsz (opt, d2es) => d2exp_arrpsz(loc0, eval1sexpopt(opt), eval1dexplst(d2es)) // end of [D2Earrpsz] // | D2Eraise(d2e) => d2exp_raise(loc0, eval1dexp(d2e)) // | D2Evararg (d2es) => d2exp_vararg(loc0, eval1dexplst(d2es)) // end of [D2Evararg] // | D2Evcopyenv (knd, d2e) => d2exp_vcopyenv(loc0, knd, eval1dexp(d2e)) // end of [D2Evcopyenv] // | D2Eshowtype(d2e) => d2exp_showtype(loc0, eval1dexp(d2e)) // | D2Eexist(s2a, d2e) => d2exp_exist (loc0, eval1sexparg (s2a), eval1dexp (d2e)) // end of [D2Eexist] // | D2Elam_dyn (lin, npf, p2ts, d2e) => let val p2ts = eval1_p2atlst (loc0, ctx, env, p2ts) in d2exp_lam_dyn (loc0, lin, npf, p2ts, eval1dexp (d2e)) end // end of [D2Elam_dyn] // | D2Edelay (d2e) => d2exp_delay (loc0, eval1dexp (d2e)) | D2Eldelay (d2e, opt) => // (eval, free) d2exp_ldelay (loc0, eval1dexp (d2e), eval1dexpopt (opt)) // end of [D2Eldelay] // | D2Emac _ => reloc () // HX-2012-12: right? | D2Emacsyn _ => eval1_d2exp_macsyn (loc0, ctx, env, d2e0) // | D2Eann_type (d2e, s2e) => d2exp_ann_type (loc0, eval1dexp (d2e), eval1sexp (s2e)) // end of [D2Eann_type] | D2Eann_seff (d2e, s2fe) => d2exp_ann_seff (loc0, eval1dexp (d2e), s2fe) // end of [D2Eann_seff] | D2Eann_funclo (d2e, funclo) => d2exp_ann_funclo (loc0, eval1dexp (d2e), funclo) // end of [D2Eann_funclo] // | _ (*rest-of-d2exp*) => d2exp_errexp (loc0) // end // end of [eval1_d2exp] (* ****** ****** *) implement eval1_gm2at (loc0, ctx, env, gm2t) = let // val d2e = eval1_d2exp (loc0, ctx, env, gm2t.gm2at_exp) val opt = eval1_p2atopt (loc0, ctx, env, gm2t.gm2at_pat) // in gm2at_make (loc0, d2e, opt) end // end of [eval1_gm2at] implement eval1_gm2atlst (loc0, ctx, env, gm2ts) = eval1_listmap (loc0, ctx, env, gm2ts, eval1_gm2at) // end of [eval1_gm2atlst] (* ****** ****** *) implement eval1_c2lau (loc0, ctx, env, c2l) = let // val p2ts = eval1_p2atlst (loc0, ctx, env, c2l.c2lau_pat) val gm2ts = eval1_gm2atlst (loc0, ctx, env, c2l.c2lau_gua) val d2e_body = eval1_d2exp (loc0, ctx, env, c2l.c2lau_body) // in c2lau_make (loc0, p2ts, gm2ts, c2l.c2lau_seq, c2l.c2lau_neg, d2e_body) end // end of [eval1_c2lau] implement eval1_c2laulst (loc0, ctx, env, c2ls) = eval1_listmap (loc0, ctx, env, c2ls, eval1_c2lau) // end of [eval1_c2laulst] (* ****** ****** *) extern fun eval1_v2aldeclst : eval1_type (v2aldeclst) extern fun eval1_v2aldeclst_rec : eval1_type (v2aldeclst) (* ****** ****** *) implement eval1_d2ecl ( loc0, ctx, env, d2c0 ) = let in // case+ d2c0.d2ecl_node of // | D2Cnone ( ) => d2ecl_none (loc0) // | D2Clist (d2cs) => let val d2cs = eval1_d2eclist (loc0, ctx, env, d2cs) in d2ecl_list (loc0, d2cs) end // end of [D2Clist] // | D2Cvaldecs (knd, d2cs) => let val d2cs = eval1_v2aldeclst (loc0, ctx, env, d2cs) in d2ecl_valdecs (loc0, knd, d2cs) end // end of [D2Cvaldecs] | D2Cvaldecs_rec (knd, d2cs) => let val d2cs = eval1_v2aldeclst_rec (loc0, ctx, env, d2cs) in d2ecl_valdecs_rec (loc0, knd, d2cs) end // end of [D2Cvaldecs_rec] // | _(*not-handled*) => d2ecl_errdec (loc0) // end // end of [eval1_d2ecl] (* ****** ****** *) implement eval1_d2eclist (loc0, ctx, env, d2cs) = eval1_listmap (loc0, ctx, env, d2cs, eval1_d2ecl) // end of [eval1_d2eclist] (* ****** ****** *) implement eval1_v2aldeclst ( loc0, ctx, env, d2cs ) = let // fun auxlst1 ( loc0: location , ctx: !evalctx, env: &alphenv , d2cs: v2aldeclst ) : d2explst = ( case+ d2cs of | list_cons (d2c, d2cs) => let val d2e = eval1_d2exp (loc0, ctx, env, d2c.v2aldec_def) val d2es = auxlst1 (loc0, ctx, env, d2cs) in list_cons (d2e, d2es) end // end of [list_cons] | list_nil () => list_nil () ) // end of [auxlst1] val d2es = auxlst1 (loc0, ctx, env, d2cs) // fun auxlst2 ( loc0: location , ctx: !evalctx, env: &alphenv , d2cs: v2aldeclst, d2es: d2explst ) : v2aldeclst = let in // case+ d2cs of | list_cons (d2c, d2cs) => let val p2t = eval1_p2at (loc0, ctx, env, d2c.v2aldec_pat) val-list_cons (d2e, d2es) = d2es val ann = eval1_s2expopt (loc0, ctx, env, d2c.v2aldec_ann) val d2c = v2aldec_make (loc0, p2t, d2e, ann) val d2cs = auxlst2 (loc0, ctx, env, d2cs, d2es) in list_cons (d2c, d2cs) end // end of [list_cons] | list_nil () => list_nil () end // end of [auxlst2] // in auxlst2 (loc0, ctx, env, d2cs, d2es) end // end of [eval1_v2aldeclst] (* ****** ****** *) implement eval1_v2aldeclst_rec ( loc0, ctx, env, d2cs ) = let // fun auxlst1 ( loc0: location , ctx: !evalctx, env: &alphenv, d2cs: v2aldeclst ) : p2atlst = ( case+ d2cs of | list_cons (d2c, d2cs) => let val p2t = eval1_p2at (loc0, ctx, env, d2c.v2aldec_pat) val p2ts = auxlst1 (loc0, ctx, env, d2cs) in list_cons (p2t, p2ts) end // end of [list_cons] | list_nil () => list_nil () ) // end of [auxlst1] val p2ts = auxlst1 (loc0, ctx, env, d2cs) // fun auxlst2 ( loc0: location , ctx: !evalctx, env: &alphenv , d2cs: v2aldeclst, p2ts: p2atlst ) : v2aldeclst = ( case+ d2cs of | list_cons (d2c, d2cs) => let val d2e = eval1_d2exp (loc0, ctx, env, d2c.v2aldec_def) val-list_cons (p2t, p2ts) = p2ts val ann = eval1_s2expopt (loc0, ctx, env, d2c.v2aldec_ann) val d2c = v2aldec_make (loc0, p2t, d2e, ann) val d2cs = auxlst2 (loc0, ctx, env, d2cs, p2ts) in list_cons (d2c, d2cs) end | list_nil () => list_nil () ) // end of [auxlst2] // in auxlst2 (loc0, ctx, env, d2cs, p2ts) end // end of [eval1_v2aldeclst_rec] (* ****** ****** *) (* end of [pats_dmacro2_eval1.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_basics.dats0000644000175000017500000002077413431250607020633 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) #include "./pats_basics.hats" (* ****** ****** *) implement VIEWT0YPE_knd = VIEWT0YPE_int (* ****** ****** *) implement test_fltkind(knd) = let val knd = uint_of (knd) val fltflag = uint_of (FLTFLAG) in (knd \land_uint_uint fltflag) > 0u end // end of [test_fltkind] implement test_boxkind(knd) = if test_fltkind (knd) then false else true // end of [test_boxkind] implement test_linkind(knd) = let val knd = uint_of (knd) val linflag = uint_of (LINFLAG) in (knd \land_uint_uint linflag) > 0u end // end of [test_linkind] implement test_prfkind(knd) = let val knd = uint_of(knd) val prfflag = uint_of(PRFFLAG) in (knd \land_uint_uint prfflag) > 0u end // end of [test_prfkind] implement test_prgmkind(knd) = let val knd = uint_of(knd) val prfflag = uint_of(PRFFLAG) in (knd \land_uint_uint prfflag) = 0u end // end of [test_prgmkind] implement test_polkind (knd) = let val knd = uint_of (knd) val polflag = uint_of(POLFLAG) val knd = knd \land_uint_uint polflag in // if (knd = 0u) then 0 else (if knd < polflag then 1 else ~1) // end of [if] // end // end of [test_polkind] (* ****** ****** *) implement impkind_linearize(knd) = let val linflag = uint_of(LINFLAG) val knd = uint_of(knd) \lor_uint_uint linflag in int_of(knd) end // end of [impkind_linearize] implement impkind_neutralize(knd) = let val polflag = uint_of(POLFLAG) val knd = uint_of(knd) \land_uint_uint ~polflag in int_of(knd) end // end of [impkind_neutralize] (* ****** ****** *) implement lte_impkind_impkind(k1, k2) = let // val polflag = uint_of(POLFLAG) val polmask = ~polflag // val k1 = uint_of(k1) \land_uint_uint polmask val k2 = uint_of(k2) \land_uint_uint polmask // in (k1 \land_uint_uint ~k2) = 0u end // end of [lte_impkind_impkind] (* ****** ****** *) implement fprint_caskind (out, knd) = ( case+ knd of | CK_case () => fprint_string (out, "case") | CK_case_pos () => fprint_string (out, "case+") | CK_case_neg () => fprint_string (out, "case-") ) // end of [fprint_caskind] (* ****** ****** *) implement funkind_is_proof (fk) = let in // case+ fk of | FK_prfn () => true | FK_prfun () => true | FK_praxi () => true | _ (*non-proof*) => false // end // end of [funkind_is_proof] implement funkind_is_recursive (fk) = let in // case+ fk of // | FK_fun () => true | FK_fnx () => true // | FK_prfun () => true | FK_praxi () => true // HX: praxi=prfun // | FK_castfn () => true // | _ (*non-recursive*) => false // end // end of [funkind_is_recursive] (* ****** ****** *) implement funkind_is_mutailrec (fk) = ( // case+ fk of FK_fnx () => true | _ => false // ) (* end of [funkind_is_mutailrec] *) (* ****** ****** *) implement fprint_funkind (out, fk) = let in // case+ fk of // | FK_fn () => fprint_string (out, "fn") | FK_fnx () => fprint_string (out, "fnx") | FK_fun () => fprint_string (out, "fun") // | FK_prfn () => fprint_string (out, "prfn") | FK_prfun () => fprint_string (out, "prfun") // | FK_praxi () => fprint_string (out, "praxi") // | FK_castfn () => fprint_string (out, "castfn") // end // end of [fprint_funkind] (* ****** ****** *) (* implement valkind_is_model (vk) = case+ vk of VK_mcval () => true | _ => false // end of [valkind_is_model] *) implement valkind_is_proof (vk) = case+ vk of VK_prval () => true | _ => false // end of [valkind_is_proof] (* ****** ****** *) implement fprint_valkind (out, vk) = let in // case+ vk of | VK_val () => fprint_string (out, "val") | VK_val_pos () => fprint_string (out, "val+") | VK_val_neg () => fprint_string (out, "val-") | VK_prval () => fprint_string (out, "prval") // end (* end of [fprint_valkind] *) (* ****** ****** *) implement valkind2caskind (vk) = let in // case+ vk of | VK_val () => CK_case () | VK_prval () => CK_case_pos () // = val+ | VK_val_pos () => CK_case_pos () // val+ | VK_val_neg () => CK_case_neg () // val- // end // end of [valkind2caskind] (* ****** ****** *) implement dcstkind_is_fun (x) = case+ x of DCKfun () => true | _ => false // end of [dcstkind_is_fun] implement dcstkind_is_val (x) = case+ x of DCKval () => true | _ => false // end of [dcstkind_is_val] implement dcstkind_is_prfun (x) = case+ x of DCKprfun () => true | _ => false // end of [dcstkind_is_prfun] implement dcstkind_is_prval (x) = case+ x of DCKprval () => true | _ => false // end of [dcstkind_is_prval] (* ****** ****** *) implement dcstkind_is_proof (dk) = let in // case+ dk of | DCKpraxi () => true | DCKprfun () => true | DCKprval () => true | _ (*non-proof*) => false // end // end of [dcstkind_is_proof] implement dcstkind_is_castfn (dk) = case+ dk of DCKcastfn () => true | _ => false // end of [dcstkind_is_castfn] (* ****** ****** *) implement fprint_dcstkind (out, dk) = let in // case+ dk of | DCKfun () => fprint_string (out, "DCKfun()") | DCKval () => fprint_string (out, "DCKval()") | DCKpraxi () => fprint_string (out, "DCKpraxi()") | DCKprfun () => fprint_string (out, "DCKprfun()") | DCKprval () => fprint_string (out, "DCKprval()") | DCKcastfn () => fprint_string (out, "DCKcastfn()") // end // end of [fprint_dcstkind] (* ****** ****** *) implement funclo_is_clo (fc) = case+ fc of | FUNCLOclo (knd) => true | FUNCLOfun _ => false // end of [funclo_is_clo] (* ****** ****** *) implement funclo_is_ptr (fc) = case+ fc of | FUNCLOclo (knd) => knd != 0 | FUNCLOfun _ => true // end of [funclo_is_ptr] implement funclo_is_cloptr (fc) = case+ fc of | FUNCLOclo (knd) => knd != 0 | FUNCLOfun _ => false // end of [funclo_is_cloptr] (* ****** ****** *) implement eq_funclo_funclo (fc1, fc2) = case+ (fc1, fc2) of | (FUNCLOclo knd1, FUNCLOclo knd2) => knd1 = knd2 | (FUNCLOfun (), FUNCLOfun ()) => true | (_, _) => false // end of [eq_funclo_funclo] implement neq_funclo_funclo (fc1, fc2) = ~eq_funclo_funclo (fc1, fc2) (* ****** ****** *) implement fprint_funclo (out, fc) = ( case+ fc of | FUNCLOclo (knd) => fprintf (out, "CLO(%i)", @(knd)) | FUNCLOfun () => fprintf (out, "FUN", @()) ) (* end of [fprint_funclo] *) implement print_funclo (fc) = fprint_funclo (stdout_ref, fc) implement prerr_funclo (fc) = fprint_funclo (stderr_ref, fc) (* ****** ****** *) local // var the_flag: int = 0 // 1 val p_the_flag = &the_flag // val ( pf_the_flag | ((*void*)) ) = vbox_make_view_ptr{int}(view@ the_flag | p_the_flag) // in (* in-of-local *) implement debug_flag_get () = let prval vbox (pf) = pf_the_flag in !p_the_flag end // end of [debug_flag_get] implement debug_flag_set (x) = let prval vbox (pf) = pf_the_flag in !p_the_flag := x end // end of [debug_flag_set] end // end of [local] (* ****** ****** *) %{$ ats_void_type patsopt_vfprintf_ifdebug ( ats_ptr_type out , ats_ptr_type fmt , va_list ap // variadic arguments ) { // if (patsopt_debug_flag_get () > 0) { (void)vfprintf((FILE*)out, (char*)fmt, ap) ; } // end of [if] // return ; } // end of [patsopt_debug_printf] ats_void_type patsopt_prerrf_ifdebug ( ats_ptr_type fmt, ... ) { va_list ap ; va_start(ap, fmt) ; patsopt_vfprintf_ifdebug(stderr, (char*)fmt, ap) ; va_end(ap) ; return ; } // end of [patsopt_debug_prerrf] %} // end of [%{$] (* ****** ****** *) (* end of [pats_basics.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_ctxt.dats0000644000175000017500000000756713431250607022024 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2012 // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) datatype s2ctxt_datatype = S2CTXT of (s2exp, s2hole) assume s2ctxt_type = s2ctxt_datatype (* ****** ****** *) implement s2ctxt_make (s2e, s2h) = S2CTXT (s2e, s2h) (* ****** ****** *) extern fun s2exp_hrepl_flag (s2e0: s2exp, repl: s2exp, flag: &int): s2exp // end of [s2exp_hrepl_flag] extern fun labs2explst_hrepl_flag (ls2es: labs2explst, repl: s2exp, flag: &int): labs2explst // end of [labs2explst_hrepl_flag] implement s2exp_hrepl_flag ( s2e0, repl, flag ) = let in // case+ s2e0.s2exp_node of // | S2Ehole _ => let val () = flag := flag + 1 in repl end // end of [S2Ehole] // | S2Eat (s2e, s2a) => let val flag0 = flag val s2e = s2exp_hrepl_flag (s2e, repl, flag) in if flag > flag0 then s2exp_at (s2e, s2a) else s2e0 end // end of [S2Eat] | S2Etyrec (knd, npf, ls2es) => let val flag0 = flag val ls2es = labs2explst_hrepl_flag (ls2es, repl, flag) // end of [val] in if flag > flag0 then let val s2t = ( if s2exp_is_lin(repl) then s2rt_linearize(s2e0.s2exp_srt) else s2e0.s2exp_srt ) : s2rt // end of [val] in s2exp_tyrec_srt (s2t, knd, npf, ls2es) end else s2e0 // end of [if] end // end of [S2Etyrec] // | _ (* rest-of-s2exp*) => s2e0 // end // end of [s2exp_hrepl_flag] implement labs2explst_hrepl_flag (ls2es0, repl, flag) = let in // case+ ls2es0 of | list_cons (ls2e, ls2es) => let val flag0 = flag val SLABELED (l, name, s2e) = ls2e val s2e = s2exp_hrepl_flag (s2e, repl, flag) in if flag > flag0 then let val ls2e = SLABELED (l, name, s2e) in list_cons (ls2e, ls2es) end else let val ls2es = labs2explst_hrepl_flag (ls2es, repl, flag) in if flag > flag0 then list_cons (ls2e, ls2es) else ls2es0 end (* end of [if] *) end // end of [list_cons] | list_nil () => list_nil () // end // end of [labs2explst_hrepl_flag] (* ****** ****** *) implement s2exp_hrepl (s2e, repl) = let var flag: int = 0 in s2exp_hrepl_flag (s2e, repl, flag) end // end of [s2exp_hrepl] (* ****** ****** *) implement s2ctxt_hrepl (ctxt, repl) = let var flag: int = 0 val+S2CTXT (s2e_ctx, s2h) = ctxt val s2e = s2exp_hrepl_flag (s2e_ctx, repl, flag) in s2e end // end of [s2ctxt_hrepl] implement s2ctxtopt_hrepl (opt, repl) = ( case+ opt of | Some ctxt => Some (s2ctxt_hrepl (ctxt, repl)) | None () => None () ) // end of [s2ctxtopt_hrepl] (* ****** ****** *) (* end of [pats_staexp2_ctxt.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_ccompenv.dats0000644000175000017500000016536413431250607022367 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp (* ****** ****** *) staload FIL = "./pats_filename.sats" (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_dynexp2.sats" // (* ****** ****** *) // staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" // (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) local // vtypedef exndeclst_vt = List_vt(hidecl) vtypedef saspdeclst_vt = List_vt(hidecl) // val the_exndeclst = ref_make_elt(list_vt_nil()) val the_saspdeclst = ref_make_elt(list_vt_nil()) // end of [val] // in (* in of [local] *) implement the_exndeclst_add(x) = let // val ( vbox pf | p0 ) = ref_get_view_ptr(the_exndeclst) // in !p0 := list_vt_cons (x, !p0) end // end of [the_exndeclst_add] implement the_exndeclst_get() = let // val ( vbox pf | p0 ) = ref_get_view_ptr (the_exndeclst) val xs = !p0 val () = !p0 := list_vt_nil() val xs = list_vt_reverse(xs) // in list_of_list_vt(xs) end // end of [the_exndeclst_get] (* ****** ****** *) implement the_saspdeclst_add(x) = let // val ( vbox pf | p0 ) = ref_get_view_ptr(the_saspdeclst) // in !p0 := list_vt_cons (x, !p0) end // end of [the_saspdeclst_add] implement the_saspdeclst_get() = let // val ( vbox pf | p0 ) = ref_get_view_ptr(the_saspdeclst) // val xs = !p0 val () = !p0 := list_vt_nil() val xs = list_vt_reverse(xs) // in list_of_list_vt(xs) end // end of [the_saspdeclst_get] end // end of [local] (* ****** ****** *) local // vtypedef extypelst_vt = List_vt(hidecl) // val the_extypelst = ref_make_elt(list_vt_nil()) // end of [val] // in (* in of [local] *) implement the_extypelst_add(x) = let // val ( vbox pf | p0 ) = ref_get_view_ptr (the_extypelst) // in !p0 := list_vt_cons (x, !p0) end // end of [the_extypelst_add] implement the_extypelst_get () = let // val ( vbox pf | p0 ) = ref_get_view_ptr (the_extypelst) val xs = !p0 val () = !p0 := list_vt_nil() val xs = list_vt_reverse(xs) // in list_of_list_vt(xs) end // end of [the_extypelst_get] end // end of [local] (* ****** ****** *) local // vtypedef extcodelst_vt = List_vt(hidecl) // val the_extcodelst = ref_make_elt(list_vt_nil()) // end of [val] // in (* in of [local] *) implement the_extcodelst_add(x) = let // val ( vbox pf | p0 ) = ref_get_view_ptr(the_extcodelst) // in !p0 := list_vt_cons(x, !p0) end // end of [the_extcodelst_add] implement the_extcodelst_get() = let // val ( vbox pf | p0 ) = ref_get_view_ptr(the_extcodelst) // val xs = !p0 val () = !p0 := list_vt_nil() // var !p_cmp = @lam ( x1: &hidecl, x2: &hidecl ) : int = (pos1 - pos2) where { val-HIDextcode(knd1, pos1, _) = x1.hidecl_node val-HIDextcode(knd2, pos2, _) = x2.hidecl_node } (* end of [where] // end of [@lam] *) // val xs = list_vt_reverse(xs) val xs = list_vt_mergesort(xs, !p_cmp) // HX: stable-sorting // in list_of_list_vt (xs) end // end of [the_extcodelst_get] end // end of [local] (* ****** ****** *) local // vtypedef staloadlst_vt = List_vt(hidecl) vtypedef dynloadlst_vt = List_vt(hidecl) // val the_staloadlst = ref_make_elt(list_vt_nil()) val the_dynloadlst = ref_make_elt(list_vt_nil()) // in (* in of [local] *) implement the_staloadlst_add(x) = let // val ( vbox pf | p0 ) = ref_get_view_ptr(the_staloadlst) // in !p0 := list_vt_cons(x, !p0) end // end of [the_staloadlst_add] implement the_staloadlst_get() = let // val ( vbox pf | p0 ) = ref_get_view_ptr(the_staloadlst) val xs = !p0 val () = !p0 := list_vt_nil() val xs = list_vt_reverse(xs) // in list_of_list_vt(xs) end // end of [the_staloadlst_get] (* ****** ****** *) implement the_dynloadlst_add(x) = let // val ( vbox pf | p0 ) = ref_get_view_ptr (the_dynloadlst) // in !p0 := list_vt_cons (x, !p0) end // end of [the_dynloadlst_add] implement the_dynloadlst_get() = let // val ( vbox pf | p0 ) = ref_get_view_ptr(the_dynloadlst) // val xs = !p0 val () = !p0 := list_vt_nil() val xs = list_vt_reverse(xs) // in list_of_list_vt(xs) end // end of [the_dynloadlst_get] end // end of [local] (* ****** ****** *) local // val the_dyncstset = ref_make_elt(d2cstset_nil()) val the_dyncstlst = ref_make_elt(list_vt_nil()) // in (* in of [local] *) implement the_dyncstlst_add (d2c) = let val d2cs = !the_dyncstset val found = d2cstset_ismem(d2cs, d2c) in // if ~(found) then let val () = let val (vbox pf | p) = ref_get_view_ptr(the_dyncstlst) in !p := list_vt_cons{d2cst}(d2c, !p) end // end of [val] in !the_dyncstset := d2cstset_add(d2cs, d2c) end (* end of [if] *) // end // end of [the_dyncstlst_add] implement the_dyncstlst_get ((*void*)) = let // val d2cs = let val (vbox pf | p) = ref_get_view_ptr(the_dyncstlst) val d2cs = !p val ((*void*)) = !p := list_vt_nil() in list_vt_reverse(d2cs) end // end of [val] // in list_of_list_vt{d2cst}(d2cs) end // end of [the_dyncstlst_get] end // end of [local] (* ****** ****** *) local // val the_dynconset = ref_make_elt(d2conset_nil()) val the_dynconlst = ref_make_elt(list_vt_nil()) // in (* in of [local] *) implement the_dynconlst_add (d2c) = let val d2cs = !the_dynconset val found = d2conset_ismem(d2cs, d2c) in // if ~(found) then let val () = let val (vbox pf | p) = ref_get_view_ptr(the_dynconlst) in !p := list_vt_cons{d2con}(d2c, !p) end // end of [val] in !the_dynconset := d2conset_add(d2cs, d2c) end (* end of [if] *) // end // end of [the_dynconlst_add] implement the_dynconlst_get ((*void*)) = let // val d2cs = let val (vbox pf | p) = ref_get_view_ptr(the_dynconlst) val d2cs = !p val ((*void*)) = !p := list_vt_nil() in list_vt_reverse(d2cs) end // end of [val] // in list_of_list_vt{d2con}(d2cs) end // end of [the_dynconlst_get] end // end of [local] (* ****** ****** *) local vtypedef funlablst_vt = List_vt(funlab) val the_funlablst = ref_make_elt(list_vt_nil()) // end of [the_funlablst] in (* in of [local] *) implement the_funlablst_add(fl) = let // val (vbox pf | p) = ref_get_view_ptr(the_funlablst) // in !p := list_vt_cons(fl, !p) end // end of [the_funlablst_add] implement the_funlablst_addlst (fls) = list_app_fun(fls, the_funlablst_add) // end of [the_funlablst_addlst] (* ****** ****** *) implement the_funlablst_get ((*void*)) = let // val fls = fls where { // val (vbox pf | p) = ref_get_view_ptr(the_funlablst) // val fls = !p val ((*void*)) = !p := list_vt_nil() // } (* end of [val] *) // val fls = list_vt_reverse(fls) // in list_of_list_vt{funlab}(fls) end // end of [the_funlablst_get] end // end of [local] (* ****** ****** *) datavtype markenvlst_vt = | MARKENVLSTnil of () | MARKENVLSTmark of (markenvlst_vt) // | MARKENVLSTcons_var of (d2var, markenvlst_vt) // | MARKENVLSTcons_fundec of (hifundec, markenvlst_vt) | MARKENVLSTcons_fundec2 of (hifundec2, markenvlst_vt) // | MARKENVLSTcons_impdec of (hiimpdec, markenvlst_vt) | MARKENVLSTcons_impdec2 of (hiimpdec2, markenvlst_vt) // | MARKENVLSTcons_staload of (filenv, markenvlst_vt) // | MARKENVLSTcons_tmpsub of (tmpsub, markenvlst_vt) // | MARKENVLSTcons_tmpcstmat of (tmpcstmat, markenvlst_vt) | MARKENVLSTcons_tmpvarmat of (tmpvarmat, markenvlst_vt) // | MARKENVLSTcons_tempenver of (d2varlst, markenvlst_vt) // // end of [markenvlst] (* ****** ****** *) // extern fun markenvlst_vt_free (xs: markenvlst_vt): void // implement markenvlst_vt_free (xs) = let in case+ xs of | ~MARKENVLSTnil () => () | ~MARKENVLSTmark (xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_var (_, xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_fundec (_, xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_fundec2 (_, xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_impdec (_, xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_impdec2 (_, xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_staload (_, xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_tmpsub (_, xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_tmpcstmat (_, xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_tmpvarmat (_, xs) => markenvlst_vt_free (xs) | ~MARKENVLSTcons_tempenver (_, xs) => markenvlst_vt_free (xs) end // end of [markenvlst_vt_free] (* ****** ****** *) // extern fun fprint_markenvlst (out: FILEref, xs: !markenvlst_vt): void // implement fprint_markenvlst (out, xs) = let // fun loop ( out: FILEref, xs: !markenvlst_vt, i: int ) : void = let in // case+ xs of // | MARKENVLSTnil() => fold@ (xs) // | MARKENVLSTmark (!p_xs) => let val () = ( if i > 0 then fprint_string (out, ", ") ) val () = fprint_string (out, "||") val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTmark] | MARKENVLSTcons_var (!p_x, !p_xs) => let val () = ( if i > 0 then fprint_string (out, ", ") ) val () = fprint_d2var (out, !p_x) val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_var] // | MARKENVLSTcons_fundec (!p_x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [val] val hfd = !p_x val d2v = hfd.hifundec_var val () = fprint_d2var (out, d2v) val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_fundec] | MARKENVLSTcons_fundec2 (!p_x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [val] val () = fprint_hifundec2 (out, !p_x) val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_fundec2] // | MARKENVLSTcons_impdec (!p_x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [val] val imp = !p_x val d2c = imp.hiimpdec_cst val () = fprint! (out, "HIIMPDEC(", d2c, ")") // end of [val] val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_impdec] | MARKENVLSTcons_impdec2 (!p_x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [val] val () = fprint_hiimpdec2 (out, !p_x) val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_impdec2] // | MARKENVLSTcons_staload (!p_x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [if] val fname = filenv_get_name (!p_x) val () = $FIL.fprint_filename_full (out, fname) // end of [val] val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_staload] // | MARKENVLSTcons_tmpsub (!p_x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [val] val () = fprint_tmpsub (out, !p_x) val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_tmpsub] // | MARKENVLSTcons_tmpcstmat (!p_x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [if] val () = fprint_tmpcstmat (out, !p_x) val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_tmpcstmat] // | MARKENVLSTcons_tmpvarmat (!p_x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [val] val () = fprint_tmpvarmat (out, !p_x) val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_tmpvarmat] // | MARKENVLSTcons_tempenver (!p_x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [val] val () = fprint_d2varlst (out, !p_x) val () = loop (out, !p_xs, i+1) prval ((*void*)) = fold@ (xs) in // nothing end // end of [MARKENVLSTcons_tempenver] // end // end of [loop] // in loop (out, xs, 0) end // end of [fprint_markenvlst] (* ****** ****** *) vtypedef freeconenv = List_vt(primvalist_vt) extern fun freeconenv_free(xs: freeconenv): void implement freeconenv_free(xs) = let // (* val () = println! ("freeconenv_free") *) // in // case+ xs of | ~list_vt_nil() => () | ~list_vt_cons(x, xs) => let val () = list_vt_free (x) in freeconenv_free (xs) end // end of [list_vt_cons] // end // end of [freeconenv_free] (* ****** ****** *) datavtype looptmplab3 = LOOPTMPLAB3 of ( tmplab(*init*), tmplab(*fini*), tmplab(*cont*) ) // end of [looptmplab3] vtypedef loopexnenv = List_vt (looptmplab3) extern fun loopexnenv_free (xs: loopexnenv): void implement loopexnenv_free (xs) = let in // case+ xs of | ~list_vt_cons (x, xs) => let val+~LOOPTMPLAB3 (_, _, _) = x in loopexnenv_free (xs) end // end of [list_vt_cons] | ~list_vt_nil () => () // end // end of [loopexnenv_free] (* ****** ****** *) // datavtype tlcalitm = | TCIfun of funlab | TCIfnx of funlablst_vt // end of [tlcalitm] // vtypedef tailcalenv = List_vt (tlcalitm) // (* ****** ****** *) // extern fun tlcalitm_free (x: tlcalitm): void // implement tlcalitm_free (x) = let in // case+ x of | ~TCIfun (fl) => () | ~TCIfnx (fls) => list_vt_free (fls) // end // end of [tlcalitm_free] // (* ****** ****** *) // extern fun tailcalenv_free (xs: tailcalenv): void // implement tailcalenv_free (xs) = let in // case+ xs of | ~list_vt_cons (x, xs) => ( tlcalitm_free (x); tailcalenv_free (xs) ) // end of [list_vt_cons] | ~list_vt_nil () => () // end // end of [tailcalenv_free] // (* ****** ****** *) vtypedef flabsetenv = List_vt (funlabset_vt) extern fun flabsetenv_free (xs: flabsetenv): void implement flabsetenv_free (xs) = ( case+ xs of | ~list_vt_cons (x, xs) => ( funlabset_vt_free (x); flabsetenv_free (xs) ) | ~list_vt_nil () => () ) // end of [flabsetenv_free] (* ****** ****** *) vtypedef dvarsetenv = List_vt (d2envset_vt) (* ****** ****** *) extern fun dvarsetenv_free (xs: dvarsetenv): void implement dvarsetenv_free (xs) = ( case+ xs of | ~list_vt_cons (x, xs) => ( d2envset_vt_free (x); dvarsetenv_free (xs) ) | ~list_vt_nil () => () ) // end of [dvarsetenv_free] (* ****** ****** *) // vtypedef vbindmapenv = List_vt (vbindmap) // (* ****** ****** *) // extern fun vbindmapenv_free (xs: vbindmapenv): void // implement vbindmapenv_free (vbms) = let in // case+ vbms of | ~list_vt_cons (vbm, vbms) => vbindmapenv_free (vbms) | ~list_vt_nil () => () // end // end of [vbindmapenv_free] // (* ****** ****** *) viewtypedef ccompenv_struct = @{ ccompenv_tmplevel= int , ccompenv_tmprecdepth= int // , ccompenv_freeconenv= freeconenv , ccompenv_loopexnenv= loopexnenv // , ccompenv_tailcalenv= tailcalenv // , ccompenv_flabsetenv= flabsetenv , ccompenv_dvarsetenv= dvarsetenv , ccompenv_vbindmapenv= vbindmapenv // , ccompenv_markenvlst= markenvlst_vt , ccompenv_vbindmapall= d2varmaplst_vt (primval) // } // end of [ccompenv_struct] (* ****** ****** *) extern fun ccompenv_struct_uninitize (x: &ccompenv_struct >> ccompenv_struct?): void // end of [ccompenv_struct_uninitize] implement ccompenv_struct_uninitize (x) = let // val () = markenvlst_vt_free (x.ccompenv_markenvlst) (* end of [val] *) // val () = freeconenv_free (x.ccompenv_freeconenv) val () = loopexnenv_free (x.ccompenv_loopexnenv) // val () = tailcalenv_free (x.ccompenv_tailcalenv) // val () = flabsetenv_free (x.ccompenv_flabsetenv) val () = dvarsetenv_free (x.ccompenv_dvarsetenv) val () = vbindmapenv_free (x.ccompenv_vbindmapenv) // val () = d2varmaplst_vt_free (x.ccompenv_vbindmapall) // in // end of [ccompenv_struct_uninitize] end // end of [ccompenv_struct_uninitize] (* ****** ****** *) datavtype ccompenv_vt = CCOMPENV of ccompenv_struct (* ****** ****** *) assume ccompenv_vtype = ccompenv_vt (* ****** ****** *) implement ccompenv_make () = env where { val env = CCOMPENV(?) val CCOMPENV(!p) = env // val () = p->ccompenv_tmplevel := 0 val () = p->ccompenv_tmprecdepth := 0 // val () = p->ccompenv_freeconenv := list_vt_nil() val () = p->ccompenv_loopexnenv := list_vt_nil() // val () = p->ccompenv_tailcalenv := list_vt_nil() // val () = p->ccompenv_flabsetenv := list_vt_nil() val () = p->ccompenv_dvarsetenv := list_vt_nil() val () = p->ccompenv_vbindmapenv := list_vt_nil() // val () = p->ccompenv_markenvlst := MARKENVLSTnil() // val () = p->ccompenv_vbindmapall := d2varmaplst_vt_nil() // val () = fold@ (env) // val () = ccompenv_inc_flabsetenv(env) // toplevel flabs val () = ccompenv_inc_dvarsetenv(env) // toplevel d2vars val () = ccompenv_inc_vbindmapenv(env) // toplevel vbinds // } // end of [ccompenv_make] (* ****** ****** *) implement ccompenv_free(env) = let // (* val () = println! ("ccompenv_free") *) // in // case+ env of | CCOMPENV ( !p_env ) => free@ (env) where { val () = ccompenv_struct_uninitize(!p_env) } // end of [CCOMPENV] // end // end of [ccompenv_free] (* ****** ****** *) implement fprint_ccompenv (out, env) = let // (* val () = println! ("fprint_ccompenv") *) // in // case+ env of | CCOMPENV(!p_env) => { // val () = fprint_string(out, "ccompenv_markenvlst: ") val () = fprint_markenvlst(out, p_env->ccompenv_markenvlst) val () = fprint_newline(out) // prval ((*folded*)) = fold@ (env) // } // end of [CCOMPENV] // end // end of [fprint_ccompenv] (* ****** ****** *) implement ccompenv_get_tmplevel (env) = level where { // val CCOMPENV (!p) = env // val level = p->ccompenv_tmplevel // prval ((*folded*)) = fold@ (env) // } (* end of [ccompenv_get_tmplevel] *) implement ccompenv_inc_tmplevel (env) = let // val CCOMPENV(!p) = env // val level = p->ccompenv_tmplevel val ((*void*)) = (p->ccompenv_tmplevel := level + 1) // prval ((*folded*)) = fold@ (env) // in // nothing end // end of [ccompenv_inc_tmplevel] implement ccompenv_dec_tmplevel (env) = let // val CCOMPENV(!p) = env // val level = p->ccompenv_tmplevel val ((*void*)) = (p->ccompenv_tmplevel := level - 1) // prval ((*folded*)) = fold@ (env) // in // nothing end // end of [ccompenv_dec_tmplevel] (* ****** ****** *) implement ccompenv_get_tmprecdepth (env) = depth where { val CCOMPENV(!p) = env // val depth = p->ccompenv_tmprecdepth // prval ((*folded*)) = fold@ (env) // } (* end of [ccompenv_get_tmprecdepth] *) implement ccompenv_inc_tmprecdepth (env) = let // val CCOMPENV(!p) = env // val depth = p->ccompenv_tmprecdepth val ((*void*)) = p->ccompenv_tmprecdepth := depth+1 // prval ((*folded*)) = fold@ (env) // in // nothing end // end of [ccompenv_inc_tmprecdepth] implement ccompenv_dec_tmprecdepth (env) = let // val CCOMPENV(!p) = env // val depth = p->ccompenv_tmprecdepth val ((*void*)) = p->ccompenv_tmprecdepth := depth-1 // prval ((*folded*)) = fold@ (env) // in // nothing end // end of [ccompenv_dec_tmprecdepth] (* ****** ****** *) implement ccompenv_inc_freeconenv (env) = let // val CCOMPENV(!p) = env // val pmvs = list_vt_nil{primval}() val pmvss = p->ccompenv_freeconenv val ((*void*)) = p->ccompenv_freeconenv := list_vt_cons(pmvs, pmvss) // prval ((*folded*)) = fold@ (env) // in // nothing end // end of [ccompenv_inc_freeconenv] implement ccompenv_getdec_freeconenv (env) = pmvs where { // val CCOMPENV(!p) = env // val- ~list_vt_cons (pmvs, pmvss) = p->ccompenv_freeconenv val ((*void*)) = p->ccompenv_freeconenv := pmvss // prval ((*folded*)) = fold@ (env) // } // end of [ccompenv_getdec_freeconenv] (* ****** ****** *) implement ccompenv_add_freeconenv (env, pmv) = let // val CCOMPENV(!p) = env // val- list_vt_cons (!p_pmvs, _) = p->ccompenv_freeconenv // val ((*void*)) = !p_pmvs := list_vt_cons(pmv, !p_pmvs) // prval ((*folded*)) = fold@ (p->ccompenv_freeconenv) // prval ((*folded*)) = fold@ (env) // in // nothing end // end of [ccompenv_add_freeconenv] implement ccompenv_add_freetupenv_if (env, pmv, pck) = let // (* val () = println! ("ccompenv_add_freetupenv_if") *) // in // case+ pck of | PCKfree() => ccompenv_add_freeconenv(env, pmv) | _ (* non-PCKfree *) => ((*nothing*)) // end // end of [ccompenv_add_freetupenv_if] implement ccompenv_add_freeconenv_if (env, pmv, pck, d2c) = let // (* val () = println! ("ccompenv_add_freeconenv_if") *) // in // case+ pck of | PCKfree() => let val isnul = d2con_is_nullary(d2c) in if not(isnul) then ccompenv_add_freeconenv(env, pmv) // end of [if] end (* end of [PCKfree] *) | _ (* non-PCKfree *) => ((*nothing*)) // end // end of [ccompenv_add_freeconenv_if] (* ****** ****** *) implement ccompenv_inc_loopexnenv (env, tl1, tl2, tl3) = let val tlll = LOOPTMPLAB3 (tl1, tl2, tl3) val CCOMPENV (!p) = env val () = (p->ccompenv_loopexnenv := list_vt_cons (tlll, p->ccompenv_loopexnenv)) prval () = fold@ (env) in // nothing end // end of [ccompenv_inc_loopexnenv] implement ccompenv_dec_loopexnenv (env) = let val CCOMPENV (!p) = env val-~list_vt_cons (x, xs) = p->ccompenv_loopexnenv val+~LOOPTMPLAB3 (_, _, _) = x val () = (p->ccompenv_loopexnenv := xs) prval () = fold@ (env) in // nothing end // end of [ccompenv_dec_loopexnenv] implement ccompenv_get_loopfini (env) = let val CCOMPENV (!p) = env val-list_vt_cons (!px, _) = p->ccompenv_loopexnenv val+LOOPTMPLAB3 (_, tl_fini, _) = !px prval () = fold@ (!px) prval () = fold@ (p->ccompenv_loopexnenv) prval () = fold@ (env) in tl_fini end // end of [ccompenv_get_loopfini] implement ccompenv_get_loopcont (env) = let val CCOMPENV (!p) = env val-list_vt_cons (!px, _) = p->ccompenv_loopexnenv val+LOOPTMPLAB3 (_, _, tl_cont) = !px prval () = fold@ (!px) prval () = fold@ (p->ccompenv_loopexnenv) prval () = fold@ (env) in tl_cont end // end of [ccompenv_get_loopcont] (* ****** ****** *) implement ccompenv_inc_tailcalenv (env, fl) = () where { (* val ( ) = println! ("ccompenv_inc_tailcalenv: fl = ", fl) *) val CCOMPENV (!p) = env val tci = TCIfun (fl) val tcis = p->ccompenv_tailcalenv val ((*void*)) = p->ccompenv_tailcalenv := list_vt_cons (tci, tcis) prval () = fold@ (env) // } // end of [ccompenv_inc_tailcalenv] implement ccompenv_inc_tailcalenv_fnx (env, fls) = () where { // val CCOMPENV (!p) = env val tci = TCIfnx (fls) val tcis = p->ccompenv_tailcalenv val ((*void*)) = p->ccompenv_tailcalenv := list_vt_cons (tci, tcis) prval () = fold@ (env) // } // end of [ccompenv_inc_tailcalenv_fnx] implement ccompenv_dec_tailcalenv (env) = () where { // val CCOMPENV (!p) = env val-~list_vt_cons (tci, tcis) = p->ccompenv_tailcalenv val () = tlcalitm_free (tci) val () = p->ccompenv_tailcalenv := tcis prval () = fold@ (env) // } // end of [ccompenv_dec_tailcalenv] (* ****** ****** *) local (* ****** ****** *) fun auxfind ( s0: stamp, tci: !tlcalitm ) : int = let in // case+ tci of | TCIfun (fl) => let val s = funlab_get_stamp (fl) val iseq = $STMP.eq_stamp_stamp (s0, s) prval () = fold@ (tci) in if iseq then 0 else ~1 end // end of [TCIfun] | TCIfnx (!p_fls) => let val res = auxfind_lst (s0, $UN.linlst2lst(!p_fls), 1) prval () = fold@ (tci) in res end // end of [TCIfnx] // end // end of [auxfind] and auxfind_lst ( s0: stamp, fls: List(funlab), i: int ) : int = let in // case+ fls of // | list_nil() => ~1 // | list_cons (fl, fls) => let val s = funlab_get_stamp(fl) val iseq = $STMP.eq_stamp_stamp(s0, s) in if iseq then i else auxfind_lst(s0, fls, i+1) end // end of [list_cons] // end // end of [auxfind_lst] (* ****** ****** *) fun auxfind2 ( d2c0: d2cst, tci: !tlcalitm ) : funlabopt_vt = let // (* val () = println! ("auxfind2: d2c0 = ", d2c0) *) // in // case+ tci of | TCIfun(fl) => let val opt = funlab_get_d2copt (fl) // end of [val] prval ((*void*)) = fold@ (tci) in case+ opt of | Some(d2c) => let val iseq = eq_d2cst_d2cst(d2c0, d2c) in if iseq then Some_vt(fl) else None_vt() end // end of [Some] | None((*void*)) => None_vt((*void*)) end // end of [TCIfun] // | TCIfnx _ => (fold@(tci); None_vt ()) // TCIfnx // end // end of [auxfind2] (* ****** ****** *) fun auxfind3 ( d2v0: d2var, tci: !tlcalitm, ntl: &int ) : funlabopt_vt = let (* val () = println! ("auxfind3: d2v0 = ", d2v0) *) // in // case+ tci of | TCIfun(fl) => let val opt = funlab_get_d2vopt(fl) // end of [val] prval ((*void*)) = fold@(tci) in case+ opt of | Some(d2v) => let val iseq = eq_d2var_d2var(d2v0, d2v) in if iseq then Some_vt(fl) else None_vt() end // end of [Some] | None((*void*)) => None_vt() end // end of [TCIfun] // | TCIfnx(!p_fls) => let val () = ntl := 1 val res = auxfind3_lst (d2v0, $UN.linlst2lst(!p_fls), ntl) // end of [val] prval () = fold@ (tci) in res end // end of [TCIfnx] // end // end of [auxfind3] and auxfind3_lst ( d2v0: d2var, fls: List(funlab), ntl: &int ) : funlabopt_vt = let in // case+ fls of // | list_cons (fl, fls) => let val opt = funlab_get_d2vopt (fl) // end of [val] in case+ opt of | Some(d2v) => let val iseq = eq_d2var_d2var (d2v0, d2v) // end of [val] in if iseq then Some_vt(fl) else let val () = ntl := ntl + 1 in auxfind3_lst(d2v0, fls, ntl) end // end of [else] // end of [if] end // end of [Some] | None((*void*)) => None_vt() end // end of [list_cons] // | list_nil((*void*)) => None_vt() // end // end of [auxfind3_lst] in (* in of [local] *) implement ccompenv_find_tailcalenv (env, fl0) = let // val s0 = funlab_get_stamp (fl0) // val CCOMPENV (!p) = env val-list_vt_cons (!p_tci, _) = p->ccompenv_tailcalenv val ans = auxfind (s0, !p_tci) prval () = fold@ (p->ccompenv_tailcalenv) prval () = fold@ (env) // in ans end // end of [ccompenv_find_tailcalenv] implement ccompenv_find_tailcalenv_cst (env, d2c0) = let // val CCOMPENV (!p) = env // val-list_vt_cons (!p_tci, _) = p->ccompenv_tailcalenv // val ans = auxfind2 (d2c0, !p_tci) // prval () = fold@ (p->ccompenv_tailcalenv) prval () = fold@ (env) // in ans end // end of [ccompenv_find_tailcalenv_cst] implement ccompenv_find_tailcalenv_var (env, d2v0, ntl) = let // val CCOMPENV (!p) = env // val-list_vt_cons (!p_tci, _) = p->ccompenv_tailcalenv // val ans = auxfind3 (d2v0, !p_tci, ntl) // prval () = fold@ (p->ccompenv_tailcalenv) prval () = fold@ (env) // in ans end // end of [ccompenv_find_tailcalenv_var] end // end of [local] (* ****** ****** *) (* // implement ccompenv_find_tailcalenv_tmpcst (env, d2c0, t2mas) = ccompenv_find_tailcalenv_cst (env, d2c0) // implement ccompenv_find_tailcalenv_tmpvar (env, d2v0, t2mas, ntl) = ccompenv_find_tailcalenv_var (env, d2v0, ntl) // *) (* ****** ****** *) implement ccompenv_find_tailcalenv_tmpcst (env, d2c0, t2mas) = let // val opt = ccompenv_find_tailcalenv_cst (env, d2c0) // in // case+ opt of // | ~Some_vt(fl0) => let val ans = funlab_tmparg_match (fl0, t2mas) // end of [val] (* val () = println! ("ccompenv_find_tailcalenv_tmpcst: fl0 = ", fl0) val () = println! ("ccompenv_find_tailcalenv_tmpcst: ans = ", ans) *) in if ans then Some_vt (fl0) else None_vt () end // end [Some_vt] // | ~None_vt((*void*)) => None_vt() // end // end of [ccompenv_find_tailcalenv_tmpcst] (* ****** ****** *) implement ccompenv_find_tailcalenv_tmpvar (env, d2v0, t2mas, ntl) = let // val opt = ccompenv_find_tailcalenv_var (env, d2v0, ntl) // in // case+ opt of // | ~Some_vt (fl0) => let val ans = funlab_tmparg_match (fl0, t2mas) // end of [val] (* val () = println! ("ccompenv_find_tailcalenv_tmpcst: fl0 = ", fl0) val () = println! ("ccompenv_find_tailcalenv_tmpcst: ans = ", ans) *) in if ans then Some_vt (fl0) else None_vt () end // end [Some_vt] // | ~None_vt((*void*)) => None_vt() // end // end of [ccompenv_find_tailcalenv_tmpvar] (* ****** ****** *) (* implement ccompenv_get_funlevel (env) = n where { // val CCOMPENV (!p) = env val n = list_vt_length (p->ccompenv_flabsetenv) prval () = fold@ (env) // } // end of [ccompenv_get_funlevel] *) (* ****** ****** *) implement ccompenv_inc_dvarsetenv (env) = let // val CCOMPENV (!p) = env val d2es = d2envset_vt_nil () val d2ess = p->ccompenv_dvarsetenv val () = (p->ccompenv_dvarsetenv := list_vt_cons (d2es, d2ess)) prval () = fold@ (env) // in // nothing end // end of [ccompenv_inc_dvarsetenv] implement ccompenv_incwth_dvarsetenv (env, d2es) = let // val d2es = d2envlst2set (d2es) // val CCOMPENV (!p) = env val d2ess = p->ccompenv_dvarsetenv val () = ( p->ccompenv_dvarsetenv := list_vt_cons (d2es, d2ess) ) (* end of [val] *) prval () = fold@ (env) // in // nothing end // end of [ccompenv_incwth_dvarsetenv] (* ****** ****** *) implement ccompenv_getdec_dvarsetenv (env) = (d2vs) where { // val CCOMPENV (!p) = env val-~list_vt_cons (d2vs, d2vss) = p->ccompenv_dvarsetenv val () = p->ccompenv_dvarsetenv := d2vss prval () = fold@ (env) // } (* end of [ccompenv_getdec_dvarsetenv] *) (* ****** ****** *) implement ccompenv_add_dvarsetenv_var (env, d2v) = ((*void*)) where { // val lvl = d2var_get_level (d2v) // val () = if (lvl > 0) then { val CCOMPENV (!p) = env // val d2e = d2var2env (d2v) // val-list_vt_cons (!p_d2es, _) = p->ccompenv_dvarsetenv val () = !p_d2es := d2envset_vt_add (!p_d2es, d2e) prval () = fold@ (p->ccompenv_dvarsetenv) // prval () = fold@ (env) } (* end of [if] *) // } // end of [ccompenv_add_dvarsetenv] implement ccompenv_add_dvarsetenv_env (env, d2e) = ((*void*)) where { // val d2v = d2env_get_var (d2e) val lvl = d2var_get_level (d2v) // val () = if (lvl > 0) then { val CCOMPENV (!p) = env // val-list_vt_cons (!p_d2es, _) = p->ccompenv_dvarsetenv val () = !p_d2es := d2envset_vt_add (!p_d2es, d2e) prval () = fold@ (p->ccompenv_dvarsetenv) // prval () = fold@ (env) } (* end of [if] *) // } // end of [ccompenv_add_dvarsetenv] (* ****** ****** *) implement ccompenv_inc_flabsetenv (env) = let (* val () = println! ("ccompenv_inc_flabsetenv") *) val CCOMPENV (!p) = env val flset = funlabset_vt_nil () val () = ( p->ccompenv_flabsetenv := list_vt_cons (flset, p->ccompenv_flabsetenv) ) (* end of [val] *) prval () = fold@ (env) // in // nothing end // end of [ccompenv_inc_flabsetenv] implement ccompenv_getdec_flabsetenv (env) = (fls) where { // val CCOMPENV (!p) = env val-~list_vt_cons (fls, flss) = p->ccompenv_flabsetenv val () = p->ccompenv_flabsetenv := flss prval () = fold@ (env) (* val () = fprintln! (stdout_ref, "ccompenv_getdec_flabsetenv: fls = ", fls) *) } // end of [ccompenv_getdec_flabsetenv] (* ****** ****** *) implement ccompenv_add_flabsetenv (env, fl) = ((*void*)) where { (* val () = println! ("ccompenv_add_flabsetenv: fl = ", fl) *) // val CCOMPENV (!p) = env // val-list_vt_cons (!p_fls, _) = p->ccompenv_flabsetenv val () = !p_fls := funlabset_vt_add (!p_fls, fl) prval () = fold@ (p->ccompenv_flabsetenv) prval () = fold@ (env) // } // end of [ccompenv_add_flabsetenv] (* ****** ****** *) implement ccompenv_addlst_dvarsetenv_if (env, flvl0, d2es) = let // fun addlst_if ( env: !ccompenv , flvl0: int, d2es: d2envlst ) : void = let in // case+ d2es of | list_cons (d2e, d2es) => let val d2v = d2env_get_var (d2e) val lvl = d2var_get_level (d2v) val () = ( // HX: no need for handling siblings (=lvl0) if lvl <= flvl0 then ccompenv_add_dvarsetenv_env (env, d2e) ) : void // end of [val] in addlst_if (env, flvl0, d2es) end (* end of [list_cons] *) | list_nil ((*void*)) => () // end // end of [addlst_if] // in // addlst_if (env, flvl0, d2es) // end // end of [ccompenv_addlst_dvarsetenv_if] (* ****** ****** *) implement ccompenv_addlst_flabsetenv_ifmap (env, flvl0, vbmap, fls0) = let // fun auxenv ( env: !ccompenv , vbmap: vbindmap, d2es: d2envlst ) : void = let in // case+ d2es of | list_cons (d2e, d2es) => let val d2v = d2env_get_var (d2e) val opt = d2varmap_search (vbmap, d2v) val () = ( case+ opt of | ~Some_vt _ => () | ~None_vt _ => ccompenv_add_dvarsetenv_env (env, d2e) ) : void // end of [val] in auxenv (env, vbmap, d2es) end (* end of [list_cons] *) | list_nil () => () // end (* end of [auxenv] *) // fun addlst_if ( env: !ccompenv , flvl0: int, vbmap: vbindmap, fls: funlablst_vt ) : funlablst_vt = let in // case+ fls of | ~list_vt_cons (fl, fls) => let val flvl = funlab_get_level (fl) in if flvl > flvl0 then let val-Some(fent) = funlab_get_funent (fl) val () = auxenv (env, vbmap, funent_get_d2envlst (fent)) in addlst_if (env, flvl0, vbmap, fls) end else let val () = ccompenv_add_flabsetenv (env, fl) val fls = addlst_if (env, flvl0, vbmap, fls) in list_vt_cons (fl, fls) end (* end of [if] *) end // end of [list_cons] | ~list_vt_nil () => list_vt_nil () // end // end of [addlst_if] // in // addlst_if (env, flvl0, vbmap, fls0) // end // end of [ccompenv_addlst_flabsetenv_ifmap] (* ****** ****** *) implement ccompenv_inc_vbindmapenv (env) = let // val CCOMPENV (!p) = env val vbm = d2varmap_nil () val vbms = p->ccompenv_vbindmapenv val () = (p->ccompenv_vbindmapenv := list_vt_cons (vbm, vbms)) prval () = fold@ (env) // in // nothing end // end of [ccompenv_inc_vbindmapenv] implement ccompenv_getdec_vbindmapenv (env) = vbm where { // val CCOMPENV (!p) = env // val-~list_vt_cons (vbm, vbms) = p->ccompenv_vbindmapenv val () = p->ccompenv_vbindmapenv := vbms // prval () = fold@ (env) // } // end of [ccompenv_getdec_vbindmapenv] (* ****** ****** *) implement ccompenv_add_vbindmapenv (env, d2v, pmv) = let // val CCOMPENV (!p) = env // val-list_vt_cons (!p_vbm, _) = p->ccompenv_vbindmapenv val _(*replaced*) = d2varmap_insert (!p_vbm, d2v, pmv) prval () = fold@ (p->ccompenv_vbindmapenv) // prval () = fold@ (env) // in // nothing end (* end of [ccompenv_add_vbindmapenv] *) implement ccompenv_find_vbindmapenv (env, d2v) = opt where { // val CCOMPENV (!p) = env // val-list_vt_cons (!p_vbm, _) = p->ccompenv_vbindmapenv val opt = d2varmap_search (!p_vbm, d2v) prval () = fold@ (p->ccompenv_vbindmapenv) // prval () = fold@ (env) // } (* end of [ccompenv_find_vbindmapenv] *) (* ****** ****** *) local (* ****** ****** *) // assume ccompenv_push_v = unit_v // (* ****** ****** *) fun auxpop ( map: &d2varmaplst_vt (primval), xs: markenvlst_vt ) : markenvlst_vt = let in // case+ xs of // | MARKENVLSTnil () => let prval () = fold@ (xs) in xs end // | ~MARKENVLSTmark (xs) => xs | ~MARKENVLSTcons_var (d2v, xs) => let val _(*removed*) = d2varmaplst_vt_remove (map, d2v) in auxpop (map, xs) end // end of [MENVLSTcons_var] | ~MARKENVLSTcons_fundec (_, xs) => auxpop (map, xs) | ~MARKENVLSTcons_fundec2 (_, xs) => auxpop (map, xs) | ~MARKENVLSTcons_impdec (_, xs) => auxpop (map, xs) | ~MARKENVLSTcons_impdec2 (_, xs) => auxpop (map, xs) | ~MARKENVLSTcons_staload (_, xs) => auxpop (map, xs) | ~MARKENVLSTcons_tmpsub (_, xs) => auxpop (map, xs) | ~MARKENVLSTcons_tmpcstmat (_, xs) => auxpop (map, xs) | ~MARKENVLSTcons_tmpvarmat (_, xs) => auxpop (map, xs) | ~MARKENVLSTcons_tempenver (_, xs) => auxpop (map, xs) // end // end of [auxpop] (* ****** ****** *) (* fun auxjoin ( map: &d2varmaplst_vt (primval), xs: &markenvlst_vt ) : void = let in // case+ xs of // | MARKENVLSTnil () => let prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTnil] // | MARKENVLSTcons_var (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_var] // | MARKENVLSTcons_fundec (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_fundec] | MARKENVLSTcons_fundec2 (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_fundec2] // | MARKENVLSTcons_impdec (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_impdec] | MARKENVLSTcons_impdec2 (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_impdec2] // | MARKENVLSTcons_staload (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_staload] // | MARKENVLSTcons_tmpsub (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_tmpsub] // | MARKENVLSTcons_tmpcstmat (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_tmpcstmat] // | MARKENVLSTcons_tmpvarmat (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_tmpvarmat] // | MARKENVLSTcons_tempenver (_, !p_xs) => let val () = auxjoin (map, !p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_tempenver] // | ~MARKENVLSTmark (xs1) => (xs := auxpop (map, xs1)) // end // end of [auxjoin] *) (* ****** ****** *) fun auxpop2 (xs: &markenvlst_vt): void = let in // case+ xs of // | MARKENVLSTnil () => let prval () = fold@ (xs) in (*nothing*) end // | MARKENVLSTcons_var (_, !p_xs) => let val () = auxpop2 (!p_xs); prval () = fold@(xs) in (*nothing*) end // end of [MENVLSTcons_var] | MARKENVLSTcons_fundec (_, !p_xs) => let val () = auxpop2 (!p_xs); prval () = fold@(xs) in (*nothing*) end // end of [MENVLSTcons_fundec] | MARKENVLSTcons_fundec2 (_, !p_xs) => let val () = auxpop2 (!p_xs); prval () = fold@(xs) in (*nothing*) end // end of [MENVLSTcons_fundec2] // | ~MARKENVLSTmark (xs1) => xs := xs1 // | ~MARKENVLSTcons_impdec (_, xs1) => (xs := xs1; auxpop2(xs)) | ~MARKENVLSTcons_impdec2 (_, xs1) => (xs := xs1; auxpop2(xs)) // | ~MARKENVLSTcons_staload (_, xs1) => (xs := xs1; auxpop2(xs)) // | ~MARKENVLSTcons_tmpsub (_, xs1) => (xs := xs1; auxpop2(xs)) | ~MARKENVLSTcons_tmpcstmat (_, xs1) => (xs := xs1; auxpop2(xs)) | ~MARKENVLSTcons_tmpvarmat (_, xs1) => (xs := xs1; auxpop2(xs)) // | ~MARKENVLSTcons_tempenver (_, xs1) => (xs := xs1; auxpop2(xs)) // end // end of [auxpop2] fun auxjoin2 (xs: &markenvlst_vt) : void = let in // case+ xs of // | MARKENVLSTnil () => let prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTnil] // | MARKENVLSTcons_var (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_var] // | MARKENVLSTcons_fundec (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_fundec] | MARKENVLSTcons_fundec2 (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_fundec2] // | MARKENVLSTcons_impdec (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_impdec] | MARKENVLSTcons_impdec2 (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_impdec2] // | MARKENVLSTcons_staload (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_staload] // | MARKENVLSTcons_tmpsub (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_tmpsub] // | MARKENVLSTcons_tmpcstmat (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_tmpcstmat] // | MARKENVLSTcons_tmpvarmat (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_tmpvarmat] // | MARKENVLSTcons_tempenver (_, !p_xs) => let val () = auxjoin2 (!p_xs); prval () = fold@ (xs) in (*nothing*) end // end of [MENVLSTcons_tempenver] // | ~MARKENVLSTmark (xs1) => (xs := xs1; auxpop2 (xs)) // end // end of [auxjoin2] in (* in of [local] *) implement ccompenv_push (env) = let // val CCOMPENV (!p) = env // val xs = p->ccompenv_markenvlst // val xs = MARKENVLSTmark (xs) // val () = p->ccompenv_markenvlst := xs // prval () = fold@ (env) // in (unit_v | ()) end // end of [ccompenv_push] implement ccompenv_pop (pfpush | env) = let // prval unit_v () = pfpush // val CCOMPENV (!p) = env // val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := auxpop (p->ccompenv_vbindmapall, xs) // prval((*folded*)) = fold@ (env) // in // nothing end // end of [ccompenv_pop] (* implement ccompenv_localjoin ( pfpush, pfpush2 | env ) = let // prval unit_v () = pfpush prval unit_v () = pfpush2 // val CCOMPENV (!p) = env // val map = p->ccompenv_vbindmapall val ((*void*)) = auxjoin (map, p->ccompenv_markenvlst) // prval ((*folded*)) = fold@ (env) // in // nothing end // end of [ccompenv_localjoin] *) implement ccompenv_localjoin (pfpush, pfpush2 | env) = let // prval unit_v () = pfpush prval unit_v () = pfpush2 // val CCOMPENV (!p) = env // val () = auxjoin2 (p->ccompenv_markenvlst) // prval () = fold@ (env) // in // nothing end // end of [ccompenv_localjoin] end // end of [local] (* ****** ****** *) implement ccompenv_add_vbindmapall (env, d2v, pmv) = let // (* val () = ( println! ("ccompenv_add_vbindmapall: d2v = ", d2v); println! ("ccompenv_add_vbindmapall: pmv = ", pmv); ) : void // end of [val] *) // val CCOMPENV (!p) = env // val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_var (d2v, xs) val _(*replaced*) = d2varmaplst_vt_insert (p->ccompenv_vbindmapall, d2v, pmv) // prval () = fold@ (env) // in // nothing end // end of [ccompenv_add_vbindmapall] implement ccompenv_find_vbindmapall (env, d2v) = opt where { // val CCOMPENV (!p) = env val opt = d2varmaplst_vt_search (p->ccompenv_vbindmapall, d2v) prval () = fold@ (env) // } // end of [ccompenv_add_vbindmapall] (* ****** ****** *) implement ccompenv_add_vbindmapenvall (env, d2v, pmv) = () where { // val () = ccompenv_add_vbindmapenv (env, d2v, pmv) val () = ccompenv_add_vbindmapall (env, d2v, pmv) // } (* end of [ccompenv_add_vbindmapenvall] *) (* ****** ****** *) implement ccompenv_add_fundec (env, hfd) = let // val CCOMPENV (!p) = env val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_fundec (hfd, xs) prval () = fold@ (env) // in // nothing end // end of [ccompenv_add_fundec] implement ccompenv_add_fundec2 (env, hfd2) = let // val CCOMPENV (!p) = env val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_fundec2 (hfd2, xs) // prval () = fold@ (env) // in // nothing end // end of [ccompenv_add_fundec2] (* ****** ****** *) implement ccompenv_add_impdec (env, imp) = let // val CCOMPENV (!p) = env val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_impdec (imp, xs) prval () = fold@ (env) // in // nothing end // end of [ccompenv_add_impdec] implement ccompenv_add_impdec2 (env, imp2) = let // val CCOMPENV (!p) = env val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_impdec2 (imp2, xs) // prval () = fold@ (env) // in // nothing end // end of [ccompenv_add_impdec2] (* ****** ****** *) implement ccompenv_add_staload (env, fenv) = let // val CCOMPENV (!p) = env val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_staload (fenv, xs) // prval () = fold@ (env) // in // nothing end // end of [ccompenv_add_staload] (* ****** ****** *) implement ccompenv_add_tmpsub (env, tsub) = let // val CCOMPENV(!p) = env val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_tmpsub (tsub, xs) prval () = fold@ (env) // in // nothing end // end of [ccompenv_add_tmpsub] (* ****** ****** *) // extern fun ccompenv_find_tmpsub ( env: !ccompenv ) : tmpsubopt_vt // endfun // implement ccompenv_find_tmpsub (env) = let // fun loop ( xs: !markenvlst_vt ) : tmpsubopt_vt = let in // case+ xs of // | MARKENVLSTnil () => let prval () = fold@ (xs) in None_vt() end // end of [MARKENVLSTnil] // | MARKENVLSTcons_tmpsub (tsub, !p_xs) => let prval () = fold@ (xs) in Some_vt (tsub) end // end of [MARKENVLSTcons_tmpsub] // | MARKENVLSTmark (!p_xs) => let val res = loop (!p_xs); prval () = fold@ (xs) in res end // end of [MARKENVLSTcons_mark] // | MARKENVLSTcons_var (_, !p_xs) => res where { val res = loop (!p_xs); prval () = fold@ (xs) } // end of [MARKENVLSTcons_var] // | MARKENVLSTcons_fundec (_, !p_xs) => res where { val res = loop (!p_xs); prval () = fold@ (xs) } // end of [MARKENVLSTcons_fundec] | MARKENVLSTcons_fundec2 (_, !p_xs) => res where { val res = loop (!p_xs); prval () = fold@ (xs) } // end of [MARKENVLSTcons_fundec2] // | MARKENVLSTcons_impdec (_, !p_xs) => res where { val res = loop (!p_xs); prval () = fold@ (xs) } // end of [MARKENVLSTcons_impdec] | MARKENVLSTcons_impdec2 (_, !p_xs) => res where { val res = loop (!p_xs); prval () = fold@ (xs) } // end of [MARKENVLSTcons_impdec2] // | MARKENVLSTcons_staload (_, !p_xs) => res where { val res = loop (!p_xs); prval () = fold@ (xs) } // end of [MARKENVLSTcons_staload] // | MARKENVLSTcons_tmpcstmat (_, !p_xs) => res where { val res = loop (!p_xs); prval () = fold@ (xs) } // end of [MARKENVLSTcons_tmpcstmat] // | MARKENVLSTcons_tmpvarmat (_, !p_xs) => res where { val res = loop (!p_xs); prval () = fold@ (xs) } // end of [MARKENVLSTcons_tmpvarmat] // | MARKENVLSTcons_tempenver (_, !p_xs) => res where { val res = loop (!p_xs); prval () = fold@ (xs) } // end of [MARKENVLSTcons_tempenver] // end // end of [loop] // val CCOMPENV (!p) = env val res = loop (p->ccompenv_markenvlst) prval ((*void*)) = fold@ (env) // in res end // end of [ccompenv_find_tmpsub] // (* ****** ****** *) implement ccompenv_add_impdecloc (env, sub, imp) = let // val opt = ccompenv_find_tmpsub (env) // in // case+ opt of | ~Some_vt(tsub) => let val tmparg = s2explstlst_subst (sub, imp.hiimpdec_tmparg) // end of [val] in ccompenv_add_impdec2 (env, HIIMPDEC2(imp, tsub, tmparg)) end // end of [Some_vt] | ~None_vt((*void*)) => () // HX: this should never be reached! // end // end of [ccompenv_add_impdecloc] (* ****** ****** *) local fun auxlst ( env: !ccompenv, tsub: tmpsub, hfds: hifundeclst ) : void = let in // case+ hfds of | list_nil ((*void*)) => () | list_cons (hfd, hfds) => let val () = ccompenv_add_fundec2 (env, HIFUNDEC2 (hfd, tsub)) // end of [val] in auxlst (env, tsub, hfds) end // end of [list_cons] // end // end of [auxlst] in (* in of [local] *) implement ccompenv_add_fundecsloc (env, sub, knd, decarg, hfds) = let in // case+ decarg of | list_nil _ => () | list_cons _ => let val opt = ccompenv_find_tmpsub (env) in case+ opt of | ~Some_vt(tsub) => auxlst (env, tsub, hfds) | ~None_vt((*void*)) => () // HX: this should never be reached! end // end of [list_cons] // end // end of [ccompenv_add_fundecsloc] end // end of [local] (* ****** ****** *) implement ccompenv_add_tmpcstmat (env, tmpmat) = let // val CCOMPENV (!p) = env val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_tmpcstmat (tmpmat, xs) // prval () = fold@ (env) // in // nothing end // end of [ccompenv_add_tmpcstmat] implement ccompenv_add_tmpvarmat (env, tmpmat) = let // val CCOMPENV (!p) = env val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_tmpvarmat (tmpmat, xs) // prval () = fold@ (env) // in // nothing end // end of [ccompenv_add_tmpvarmat] (* ****** ****** *) local fun auxlst ( xs: !markenvlst_vt , d2c0: d2cst , t2mas: t2mpmarglst ) : tmpcstmat = let in // case+ xs of // | MARKENVLSTnil () => let prval () = fold@ (xs) in TMPCSTMATnone () end // end of [MARKENVLSTnil] // | MARKENVLSTmark (!p_xs) => let val res = auxlst (!p_xs, d2c0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTmark] *) // | MARKENVLSTcons_var (_, !p_xs) => let val res = auxlst (!p_xs, d2c0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_var] *) // | MARKENVLSTcons_fundec (_, !p_xs) => let val res = auxlst (!p_xs, d2c0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_fundec] *) | MARKENVLSTcons_fundec2 (_, !p_xs) => let val res = auxlst (!p_xs, d2c0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_fundec2] *) // | MARKENVLSTcons_impdec (imp, !p_xs) => res where { val res = hiimpdec_tmpcst_match (imp, d2c0, t2mas, 0(*local*)) // end of [val] val res = auxcont (res, !p_xs, d2c0, t2mas) prval () = fold@ (xs) } (* end of [MARKENVLSTcons_impdec] *) | MARKENVLSTcons_impdec2 (imp2, !p_xs) => res where { val res = hiimpdec2_tmpcst_match (imp2, d2c0, t2mas, 0(*local*)) // end of [val] val res = auxcont (res, !p_xs, d2c0, t2mas) prval () = fold@ (xs) } (* end of [MARKENVLSTcons_impdec2] *) // | MARKENVLSTcons_staload (fenv, !p_xs) => let val opt = filenv_get_tmpcstimpmapopt (fenv) in case+ opt of | Some (map) => let val implst = tmpcstimpmap_find (map, d2c0) val tmpmat = hiimpdeclst_tmpcst_match (implst, d2c0, t2mas, 1(*staload*)) val tmpmat = auxcont (tmpmat, !p_xs, d2c0, t2mas) in fold@ (xs); tmpmat end // end of [Some] // // HX-2013-10-08: pervasive SATS // | None ((*void*)) => let val tmpmat = auxlst (!p_xs, d2c0, t2mas) in fold@ (xs); tmpmat end // end of [None] end (* end of [MARKENVLSTcons_staload] *) // | MARKENVLSTcons_tmpsub (_, !p_xs) => let val res = auxlst (!p_xs, d2c0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_tmpsub] *) // | MARKENVLSTcons_tmpcstmat (tmpmat, !p_xs) => let val res = tmpcstmat_tmpcst_match(tmpmat, d2c0, t2mas) val res2 = auxcont (res, !p_xs, d2c0, t2mas) in fold@ (xs); res2 end // end of [MARKENVLSTcons_tmpcstmat] // | MARKENVLSTcons_tmpvarmat (_, !p_xs) => let val res = auxlst (!p_xs, d2c0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_tmpvarmat] *) // | MARKENVLSTcons_tempenver (_, !p_xs) => let val res = auxlst (!p_xs, d2c0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_tempenver] *) // end (* end of [auxlst] *) and auxcont ( opt: tmpcstmat , xs: !markenvlst_vt , d2c0: d2cst , t2mas: t2mpmarglst ) : tmpcstmat = let // (* val () = println!("ccompenv_tmpcst_match: auxcont") *) // in // case+ opt of // | TMPCSTMATsome _ => opt | TMPCSTMATsome2 _ => opt // | TMPCSTMATnone((*void*)) => auxlst(xs, d2c0, t2mas) // end // end of [auxcont] in (* in of [local] *) implement ccompenv_tmpcst_match (env, d2c0, t2mas) = let // val CCOMPENV (!p) = env // val opt = auxlst (p->ccompenv_markenvlst, d2c0, t2mas) prval () = fold@ (env) // in opt end // end of [ccompenv_tmpcst_match] end // end of [local] (* ****** ****** *) local fun auxlst ( xs: !markenvlst_vt , d2v0: d2var , t2mas: t2mpmarglst ) : tmpvarmat = let in // case+ xs of | MARKENVLSTnil () => let prval () = fold@ (xs) in TMPVARMATnone () end // end of [MARKENVLSTnil] // | MARKENVLSTmark (!p_xs) => let val res = auxlst (!p_xs, d2v0, t2mas) in fold@ (xs); res end // end of [MARKENVLSTmark] // | MARKENVLSTcons_var (_, !p_xs) => let val res = auxlst (!p_xs, d2v0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_var] *) // | MARKENVLSTcons_fundec (hfd, !p_xs) => res where { val res = hifundec_tmpvar_match (hfd, d2v0, t2mas) val res = auxcont (res, !p_xs, d2v0, t2mas) prval () = fold@ (xs) } (* end of [MARKENVLSTcons_fundec] *) | MARKENVLSTcons_fundec2 (hfd2, !p_xs) => res where { val res = hifundec2_tmpvar_match (hfd2, d2v0, t2mas) val res = auxcont (res, !p_xs, d2v0, t2mas) prval () = fold@ (xs) } (* end of [MARKENVLSTcons_fundec2] *) // | MARKENVLSTcons_impdec (_, !p_xs) => let val res = auxlst (!p_xs, d2v0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_impdec] *) | MARKENVLSTcons_impdec2 (_, !p_xs) => let val res = auxlst (!p_xs, d2v0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_impdec2] *) // | MARKENVLSTcons_staload (fenv, !p_xs) => tmpmat where { val-Some (map) = filenv_get_tmpvardecmapopt (fenv) val hfdopt = tmpvardecmap_find (map, d2v0) val tmpmat = hifundecopt2tmpvarmat (hfdopt, t2mas) val tmpmat = auxcont (tmpmat, !p_xs, d2v0, t2mas) prval () = fold@ (xs) } (* end of [MARKENVLSTcons_staload] *) // | MARKENVLSTcons_tmpsub (_, !p_xs) => let val res = auxlst (!p_xs, d2v0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_tmpsub] *) // | MARKENVLSTcons_tmpcstmat (_, !p_xs) => let val res = auxlst (!p_xs, d2v0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_tmpcstmat] *) // | MARKENVLSTcons_tmpvarmat (tmpmat, !p_xs) => let val res = tmpvarmat_tmpvar_match(tmpmat, d2v0, t2mas) val res2 = auxcont (res, !p_xs, d2v0, t2mas) in fold@ (xs); res2 end (* end of [MARKENVLSTcons_tmpvarmat] *) // | MARKENVLSTcons_tempenver (_, !p_xs) => let val res = auxlst (!p_xs, d2v0, t2mas) in fold@ (xs); res end (* end of [MARKENVLSTcons_tempenver] *) // end // end of [auxlst] and auxcont ( opt: tmpvarmat , xs: !markenvlst_vt , d2v0: d2var , t2mas: t2mpmarglst ) : tmpvarmat = let in // case+ opt of | TMPVARMATsome _ => opt | TMPVARMATsome2 _ => opt | TMPVARMATnone _ => auxlst (xs, d2v0, t2mas) // end // end of [auxcont] in (* in of [local] *) implement ccompenv_tmpvar_match (env, d2v0, t2mas) = let // val CCOMPENV (!p) = env val opt = auxlst (p->ccompenv_markenvlst, d2v0, t2mas) prval () = fold@ (env) // in opt end // end of [ccompenv_tmpvar_match] end // end of [local] (* ****** ****** *) local // val the_tmplst = ref(list_nil) val the_pmdlst = ref(list_nil) // in (* in-of-local *) // implement the_toplevel_getref_tmpvarlst ((*void*)) = $UN.cast2Ptr1 (the_tmplst) // implement the_toplevel_getref_primdeclst ((*void*)) = $UN.cast2Ptr1 (the_pmdlst) // end // end of [local] (* ****** ****** *) implement ccompenv_get_tempenver (env) = let // fun revapp ( d2vs: d2varlst, res: d2varlst_vt ) : d2varlst_vt = ( case+ d2vs of | list_nil ((*void*)) => res // list_nil | list_cons (d2v, d2vs) => revapp(d2vs, list_vt_cons(d2v, res)) // end of [list_cons] ) (* end of [revapp] *) // fun auxlst ( xs: !markenvlst_vt, res: d2varlst_vt ) : d2varlst_vt = ( case+ xs of // | MARKENVLSTnil ((*void*)) => (fold@(xs); res) // MARKENVLSTnil // | MARKENVLSTcons_tempenver (!p_x, !p_xs) => let val res = revapp (!p_x, res) val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_tempenver] // | MARKENVLSTmark(!p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTmark] // | MARKENVLSTcons_var (_, !p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_var] // | MARKENVLSTcons_fundec (_, !p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_fundec] | MARKENVLSTcons_fundec2 (_, !p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_fundec2] // | MARKENVLSTcons_impdec (_, !p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_impdec] | MARKENVLSTcons_impdec2 (_, !p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_impdec2] // | MARKENVLSTcons_staload (_, !p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_staload] // | MARKENVLSTcons_tmpsub (_, !p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_tmpsub] // | MARKENVLSTcons_tmpcstmat (_, !p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_tmpcstmat] | MARKENVLSTcons_tmpvarmat (_, !p_xs) => let val res = auxlst (!p_xs, res) in fold@(xs); res end // end of [MARKENVLSTcons_tmpvarmat] // ) (* end of [auxlst] *) // val CCOMPENV (!p) = env val d2vs = auxlst (p->ccompenv_markenvlst, list_vt_nil) prval ((*void*)) = fold@ (env) // in list_vt_reverse(d2vs) end // end of [ccompenv_get_tempenver] (* ****** ****** *) local val theFlag = ref (false) fun theFlag_get () = !theFlag fun theFlag_set () = !theFlag := true fun theFlag_unset () = !theFlag := false in (* in-of-local *) implement ccompenv_add_tempenver (env, d2vs) = let // (* val () = fprintln! (stdout_ref, "ccompenv_add_tempenver: d2vs = ", d2vs) *) // val () = theFlag_set() // val CCOMPENV(!p) = env // val xs = p->ccompenv_markenvlst val () = p->ccompenv_markenvlst := MARKENVLSTcons_tempenver(d2vs, xs) // prval ((*void*)) = fold@ (env) // in // nothing end // end of [ccompenv_add_tempenver] (* ****** ****** *) implement ccompenv_get2_tempenver (env) = let // val flag = theFlag_get() // in // if flag then let // val d2vs = ccompenv_get_tempenver(env) val ((*void*)) = if list_vt_is_nil(d2vs) then theFlag_unset() // in d2vs end // end of [then] // else list_vt_nil((*void*)) // end // end of [ccompenv_get2_tempenver] (* ****** ****** *) implement ccompenv_dvarsetenv_add_tempenver (env, d2es) = let // fun auxlst ( d2es: d2envset_vt , d2vs: d2varlst_vt ) : d2envset_vt = ( // case+ d2vs of | ~list_vt_nil ((*void*)) => d2es | ~list_vt_cons (d2v, d2vs) => let val d2es = d2envset_vt_add(d2es, d2var2env(d2v)) in auxlst(d2es, d2vs) end // end of [list_vt_cons] // ) (* end of [auxlst] *) // val d2vs = ccompenv_get2_tempenver(env) // (* val d2vs2 = $UN.list_vt2t{d2var}(d2vs) val ((*void*)) = fprintln! (stdout_ref, "ccompenv_dvarsetenv_add_tempenver: d2vs = ", d2vs2) *) // in auxlst(d2es, d2vs) end // end of [ccompenv_dvarsetenv_add_tempenver] end // end of [local] (* ****** ****** *) (* end of [pats_ccomp_ccompenv.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_instrseq.dats0000644000175000017500000001041213431250607022404 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload LQ = "libats/SATS/linqueue_lst.sats" staload _(*anon*) = "libats/DATS/linqueue_lst.dats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) datavtype instrseq = INSTRSEQ of ($LQ.QUEUE1 (instr)) assume instrseq_vtype = instrseq (* ****** ****** *) // macdef LQ_queue_initize = $LQ.queue_initialize{instr} macdef LQ_queue_uninitize = $LQ.queue_uninitialize // (* ****** ****** *) implement instrseq_make_nil () = res where { val res = INSTRSEQ(?) val+INSTRSEQ (!p_xs) = res val () = LQ_queue_initize (!p_xs) // end of [val] prval ((*folded*)) = fold@ (res) } // end of [instrseq_make_nil] (* ****** ****** *) implement instrseq_add (res, x) = let in // case+ res of | INSTRSEQ (!p_xs) => let val () = $LQ.queue_insert (!p_xs, x) in fold@ (res) end // end of [INSTRSEQ] // end // end of [instrseq_add] (* ****** ****** *) implement instrseq_add_comment (res, comment) = let // val loc = $LOC.location_dummy // in instrseq_add (res, instr_comment (loc, comment)) end // end of [instrseq_add_comment] (* ****** ****** *) implement instrseq_add_tmpdec (res, loc, tmp) = instrseq_add (res, instr_tmpdec (loc, tmp)) // end of [instrseq_add_tmpdec] (* ****** ****** *) implement instrseq_add_extvar (res, loc, xnm, pmv) = instrseq_add (res, instr_extvar (loc, xnm, pmv)) // end of [instrseq_add_extvar] (* ****** ****** *) implement instrseq_add_dcstdef (res, loc, d2c, pmv) = instrseq_add (res, instr_dcstdef (loc, d2c, pmv)) // end of [instrseq_add_dcstdef] (* ****** ****** *) implement instrseq_addlst (res, xs) = let in // case+ xs of | list_cons (x, xs) => let val () = instrseq_add (res, x) in instrseq_addlst (res, xs) end // end of [list_cons] | list_nil () => () // end // end of [instrseq_addlst] (* ****** ****** *) implement instrseq_addlst_vt (res, xs) = let in // case+ xs of | ~list_vt_cons (x, xs) => let val () = instrseq_add (res, x) in instrseq_addlst_vt (res, xs) end // end of [list_cons] | ~list_vt_nil () => () // end // end of [instrseq_addlst_vt] (* ****** ****** *) local fun auxlst ( res: !instrseq , loc0: loc_t, pmvs: primvalist_vt ) : void = let // in // case+ pmvs of | ~list_vt_cons (pmv, pmvs) => let val ins = instr_freecon (loc0, pmv) val () = instrseq_add (res, ins) in auxlst (res, loc0, pmvs) end // end of [list_vt_cons] | ~list_vt_nil () => () // end // end of [auxlist] in (* in of [local] *) implement instrseq_add_freeconlst (res, loc0, pmvs) = auxlst (res, loc0, pmvs) // end of [instrseq_add_freeconlst] end // end of [local] (* ****** ****** *) implement instrseq_get_free (res) = let val+INSTRSEQ(!p_xs) = res val xs = LQ_queue_uninitize (!p_xs) val ((*freed*)) = free@ (res) in list_of_list_vt (xs) end // end of [instrseq_get_free] (* ****** ****** *) (* end of [pats_ccomp_instrseq.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lexing.cats0000644000175000017500000000375213431250607020651 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_LEXING_CATS #define POSTIATS_SRC_PATS_LEXING_CATS /* ****** ****** */ typedef struct { // ats_empty_type empty ; // ats_lint_type sta_ntot ; /* ats_int_type sta_nlin ; ats_int_type sta_noff ; */ // ats_lint_type cur_ntot ; /* ats_int_type cur_nlin ; ats_int_type cur_noff ; */ // ats_int_type cur_char ; // ats_int_type leading_space ; // ats_uint_type nchr ; ats_ptr_type charbuf ; // queueref (char) // ats_ptr_type getchar ; // () - int // } pats_lexstate_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_LEXING_CATS] /* ****** ****** */ /* end of [pats_lexing.cats] */ ATS2-Postiats-gmp-0.3.13/./src/pats_tokbuf.dats0000644000175000017500000001621013431250607020647 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload LBF = "./pats_lexbuf.sats" // vtypedef lexbuf = $LBF.lexbuf // (* ****** ****** *) // staload DQ = "libats/ngc/SATS/deque_arr.sats" staload _(*DQ*) = "libats/ngc/DATS/deque_arr.dats" // stadef DEQUE = $DQ.DEQUE // double-ended queue // (* ****** ****** *) staload "./pats_lexing.sats" (* ****** ****** *) staload "./pats_tokbuf.sats" (* ****** ****** *) extern castfn u2sz1 (x: uint):<> Size (* ****** ****** *) vtypedef tokbuf_int_int (m: int, n:int) = $extype_struct "pats_tokbuf_struct" of { tbuf= DEQUE (token, m, n) , ntok= uint , lexbuf= lexbuf } // end of [tokbuf] typedef tokbuf0 = tokbuf_int_int(0, 0)? (* ****** ****** *) assume tokbuf_vt0ype = [m,n:int | m > 0] tokbuf_int_int (m, n) // end of [tokbuf_vt0ype] (* ****** ****** *) #define QINISZ 1024 // initial size (* ****** ****** *) // macdef DQ_deque_initize = $DQ.deque_initialize macdef DQ_deque_uninitize = $DQ.deque_uninitialize{token} // (* ****** ****** *) implement tokbuf_initize_filp (pfmod, pffil | buf, p) = { // extern prfun tokbuf0_trans (buf: &tokbuf? >> tokbuf0): void // prval () = tokbuf0_trans (buf) val ( pfgc, pfarr | pa ) = array_ptr_alloc (QINISZ) // val () = DQ_deque_initize (pfgc, pfarr | buf.tbuf, QINISZ, pa) // val () = buf.ntok := 0u val () = $LBF.lexbuf_initize_filp (pfmod, pffil | buf.lexbuf, p) // } // end of [tokbuf_initize_filp] (* ****** ****** *) implement tokbuf_initize_getc (buf, getc) = () where { // extern prfun tokbuf0_trans (buf: &tokbuf? >> tokbuf0): void // prval () = tokbuf0_trans (buf) // val ( pfgc, pfarr | pa ) = array_ptr_alloc (QINISZ) // val () = DQ_deque_initize (pfgc, pfarr | buf.tbuf, QINISZ, pa) // val () = buf.ntok := 0u val () = $LBF.lexbuf_initize_getc (buf.lexbuf, getc) // } // end of [tokbuf_initize_getc] (* ****** ****** *) implement tokbuf_initize_string (buf, inp) = () where { // extern prfun tokbuf0_trans (buf: &tokbuf? >> tokbuf0): void // prval () = tokbuf0_trans (buf) // val ( pfgc, pfarr | pa ) = array_ptr_alloc (QINISZ) // val () = DQ_deque_initize (pfgc, pfarr | buf.tbuf, QINISZ, pa) // val () = buf.ntok := 0u val () = $LBF.lexbuf_initize_string (buf.lexbuf, inp) // } // end of [tokbuf_initize_string] (* ****** ****** *) implement tokbuf_initize_lexbuf (buf, lbf) = () where { // extern prfun tokbuf0_trans (buf: &tokbuf? >> tokbuf0): void // prval () = tokbuf0_trans (buf) val ( pfgc, pfarr | pa ) = array_ptr_alloc (QINISZ) // val () = DQ_deque_initize (pfgc, pfarr | buf.tbuf, QINISZ, pa) // val () = buf.ntok := 0u val () = buf.lexbuf := lbf // } // end of [tokbuf_initize_lexbuf] (* ****** ****** *) implement tokbuf_uninitize (buf) = () where { // val ( pfgc, pfarr | pa ) = DQ_deque_uninitize (buf.tbuf) // val () = array_ptr_free (pfgc, pfarr | pa) val () = $LBF.lexbuf_uninitize (buf.lexbuf) // extern prfun tokbuf0_untrans (buf: &tokbuf0 >> tokbuf?): void // prval () = tokbuf0_untrans (buf) } // end of [tokbuf_uninitize] (* ****** ****** *) implement tokbuf_get_ntok (buf) = buf.ntok implement tokbuf_set_ntok (buf, n) = buf.ntok := n (* ****** ****** *) implement tokbuf_incby1 (buf) = buf.ntok := buf.ntok + 1u implement tokbuf_incby_count (buf, k) = buf.ntok := buf.ntok + k (* ****** ****** *) implement tokbuf_reset (buf) = let // prval () = $DQ.lemma_deque_param (buf.tbuf) // val ntok = buf.ntok val () = buf.ntok := 0u val ntok = (u2sz1)ntok val nqsz = $DQ.deque_size (buf.tbuf) in if ntok < nqsz then let val () = $DQ.deque_clear_beg (buf.tbuf, ntok) // end of [val] in // nothing end else let val () = $DQ.deque_clear_all {token} (buf.tbuf) in // nothing end (* end of [if] *) end // end of [tokbuf_reset] (* ****** ****** *) implement tokbuf_get_token (buf) = let // prval () = $DQ.lemma_deque_param (buf.tbuf) // val ntok = (u2sz1)buf.ntok val nqsz = $DQ.deque_size (buf.tbuf) // in // if ntok < nqsz then $DQ.deque_get_elt_at (buf.tbuf, ntok) else let val tok = lexing_next_token_ncmnt (buf.lexbuf) val m = $DQ.deque_cap {token} (buf.tbuf) val () = if ( m > nqsz ) then { val () = $DQ.deque_insert_end (buf.tbuf, tok) } else { val m2 = m + m (* val () = println! ("tokbuf_get_token: m2 = ", m2) *) val (pfgc2, pfarr2 | p2) = array_ptr_alloc (m2) val (pfgc1, pfarr1 | p1) = $DQ.deque_update_capacity (pfgc2, pfarr2 | buf.tbuf, m2, p2) val () = array_ptr_free (pfgc1, pfarr1 | p1) val () = $DQ.deque_insert_end (buf.tbuf, tok) } (* end of [if] *) in tok end // end of [else] // end // end of [tokbuf_get_token] (* ****** ****** *) implement tokbuf_getinc_token (buf) = tok where { val tok = tokbuf_get_token (buf) val ((*void*)) = buf.ntok := buf.ntok + 1u } (* end of [tokbuf_getinc_token] *) (* ****** ****** *) implement tokbuf_discard_all (buf) = while (true) let val tok = tokbuf_getinc_token (buf) (* val () = println! ("tokbuf_discard_all: tok = ", tok) *) in case+ tok.token_node of T_EOF () => break | _ => continue end // end of [tokbuf_discard_all] (* ****** ****** *) implement tokbuf_unget_token (buf, tok) = let // prval () = $DQ.lemma_deque_param (buf.tbuf) // val n = $DQ.deque_size (buf.tbuf) val m = $DQ.deque_cap {token} (buf.tbuf) // in // if( m > n ) then ( $DQ.deque_insert_beg (buf.tbuf, tok) ) else let val m2 = m + m (* val () = println! ("tokbuf_get_token: m2 = ", m2) *) val (pfgc2, pfarr2 | p2) = array_ptr_alloc (m2) val (pfgc1, pfarr1 | p1) = $DQ.deque_update_capacity (pfgc2, pfarr2 | buf.tbuf, m2, p2) val () = array_ptr_free (pfgc1, pfarr1 | p1) in $DQ.deque_insert_beg (buf.tbuf, tok) end (* end of [if] *) // end // end of [tokbuf_unget_token] (* ****** ****** *) (* end of [pats_tokbuf.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_pprint.dats0000644000175000017500000003526513431250607022352 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: January, 2012 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_basics.sats" staload "./pats_intinf.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" (* ****** ****** *) // staload EFF = "./pats_effect.sats" staload SYN = "./pats_syntax.sats" // (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) local #define MAXLEVEL 100 fun aux_s2exp ( out: FILEref, n: int, s2e0: s2exp ) : void = let // macdef prstr(x) = fprint_string (out, ,(x)) // in // case+ s2e0.s2exp_node of (* case+ *) // | S2Eint (x) => { val () = prstr "S2Eint(" val () = fprint_int (out, x) val () = prstr ")" } | S2Eintinf (x) => { val () = prstr "S2Eintinf(" val () = fprint_intinf (out, x) val () = prstr ")" } // | S2Efloat (rep) => { val () = prstr "S2Efloat(" val () = fprint_string (out, rep) val () = prstr ")" } | S2Estring (str) => { val () = prstr "S2Estring(" val () = fprint_string (out, str) val () = prstr ")" } // | S2Ecst (s2c) => { val () = prstr "S2Ecst(" val () = fprint_s2cst (out, s2c) val () = prstr ")" } // | S2Eextype (name, s2ess) => { val () = prstr "S2Eextype(" val () = fprint_string (out, name) val () = ( case+ s2ess of | list_nil () => () | list_cons _ => let val () = prstr ("; ") in aux_s2explstlst (out, n, s2ess) end // end of [list_cons] ) // end of [val] val () = prstr ")" } // end of [S2Eextype] | S2Eextkind (name, s2ess) => { val () = prstr "S2Eextkind(" val () = fprint_string (out, name) val () = ( case+ s2ess of | list_nil () => () | list_cons _ => let val () = prstr ("; ") in aux_s2explstlst (out, n, s2ess) end // end of [list_cons] ) // end of [val] val () = prstr ")" } // end of [S2Eextkind] // | S2Evar (x) => { val () = prstr "S2Evar(" val () = fprint_s2var (out, x) val () = prstr ")" } (* end of [S2Evar] *) | S2EVar (X) => { val () = prstr "S2EVar(" val () = fprint_s2Var (out, X) val () = let val opt = s2Var_get_link (X) in case+ opt of | None () => () | Some (s2e) => { val () = prstr "->" val () = aux_s2exp_if (out, n-1, s2e) } // end of [Some] end (* end of [val] *) val () = prstr ")" } (* end of [S2EVar] *) // | S2Ehole (s2h) => { val () = prstr "S2Ehole(" val () = fprint_s2hole (out, s2h) val () = prstr ")" } (* end of [S2Ehole] *) // | S2Eat (s2e1, s2e2) => { val () = prstr "S2Eat(" val () = aux_s2exp (out, n, s2e1) val () = prstr "; " val () = aux_s2exp (out, n, s2e2) val () = prstr ")" } (* end of [S2Eat] *) // | S2Edatcontyp (d2c, arg) => { val () = prstr "S2Edatcontyp(" val () = fprint_d2con (out, d2c) val () = prstr "; " val () = aux_s2explst (out, n, arg) val () = prstr ")" } // end of [S2Edatcontyp] | S2Edatconptr (d2c, rt, arg) => { val () = prstr "S2Edatconptr(" val () = fprint_d2con (out, d2c) val () = prstr "; " val () = aux_s2exp (out, n, rt) val () = prstr "; " val () = aux_s2explst (out, n, arg) val () = prstr ")" } // end of [S2Edatconptr] // | S2Esizeof (s2e) => { val () = prstr "S2Esizeof(" val () = aux_s2exp (out, n, s2e) val () = prstr ")" } // end of [S2Esizeof] // | S2Eeff (s2fe) => { val () = prstr "S2Eeff(" val () = aux_s2eff (out, n, s2fe) val () = prstr ")" } // end of [S2Eeff] // | S2Eeqeq(s2e1, s2e2) => { val () = prstr "S2Eeqeq(" val () = aux_s2exp (out, n, s2e1) val () = prstr "; " val () = aux_s2exp (out, n, s2e2) val () = prstr ")" } // end of [S2Eeqeq] | S2Eproj (s2a, s2e, s2ls) => { val () = prstr "S2Eproj(" val () = aux_s2exp (out, n, s2a) val () = prstr "; " val () = aux_s2exp (out, n, s2e) val () = prstr "; " val () = aux_s2lablst (out, n, s2ls) val () = prstr ")" } // end of [S2Eproj] // | S2Eapp ( s2e_fun, s2es_arg ) => { val () = prstr "S2Eapp(" val () = aux_s2exp (out, n, s2e_fun) val () = prstr "; " val () = aux_s2explst (out, n, s2es_arg) val () = prstr ")" } (* end of [S2Eapp] *) | S2Elam ( s2vs_arg, s2e_body ) => { val () = prstr "S2Elam(" val () = fprint_s2varlst (out, s2vs_arg) val () = prstr "; " val () = aux_s2exp (out, n, s2e_body) val () = prstr ")" } (* end of [S2Elam] *) // | S2Efun ( fc, lin, s2fe, npf, s2es_arg, s2e_res ) => { val () = prstr "S2Efun(" val () = fprint_funclo (out, fc) val () = prstr "; " val () = fprintf (out, "lin=%i", @(lin)) val () = prstr "; " val () = prstr "eff=" val () = aux_s2eff (out, n, s2fe) val () = prstr "; " val () = fprintf (out, "npf=%i", @(npf)) val () = prstr "; " val () = aux_s2explst (out, n, s2es_arg) val () = prstr "; " val () = aux_s2exp (out, n, s2e_res) val () = prstr ")" } (* end of [S2Efun] *) | S2Emetfun ( opt, s2es_met, s2e_body ) => { val () = prstr "S2Emetfun(" val () = aux_s2explst (out, n, s2es_met) val () = prstr "; " val () = ( case+ opt of | None () => () | Some stamp => $STMP.fprint_stamp(out, stamp) ) // end of [val] val () = prstr "; " val () = aux_s2exp (out, n, s2e_body) val () = prstr ")" } (* end of [S2Emetfun] *) // | S2Emetdec (s2es1, s2es2) => { val () = prstr "S2Emetdec((" val () = aux_s2explst (out, n, s2es1) val () = prstr ") < (" val () = aux_s2explst (out, n, s2es2) val () = prstr "))" } (* end of [S2Emetdec] *) // | S2Etop (knd, s2e) => { val () = prstr "S2Etop(" val () = fprintf (out, "knd=%i", @(knd)) val () = prstr "; " val () = aux_s2exp (out, n, s2e) val () = prstr ")" } // end of [S2Etop] | S2Ewithout (s2e) => { val () = prstr "S2Ewithout(" val () = aux_s2exp (out, n, s2e) val () = prstr ")" } // | S2Etyarr ( s2e_elt, s2es_dim ) => { val () = prstr "S2Etyarr(" val () = aux_s2exp (out, n, s2e_elt) val () = prstr "; " val () = aux_s2explst (out, n, s2es_dim) val () = prstr ")" } // end of [S2Etyarr] | S2Etyrec (knd, npf, ls2es) => { val () = prstr "S2Etyrec(" val () = fprint_tyreckind (out, knd) val () = prstr "; " val () = fprintf (out, "npf=%i", @(npf)) val () = prstr "; " val () = aux_labs2explst (out, n, ls2es) val () = prstr ")" } // end of [S2Etyrec] // | S2Einvar (s2e) => { val () = prstr "S2Einvar(" val () = aux_s2exp (out, n, s2e) val () = prstr ")" } // end of [S2Einvar] // | S2Erefarg (knd, s2e) => { // knd=0/1:val/ref val () = prstr "S2Erefarg(" val () = fprint_int (out, knd) val () = prstr "; " val () = aux_s2exp (out, n, s2e) val () = prstr ")" } // end of [S2Erefarg] // | S2Evararg (s2e) => { val () = prstr "S2Evararg(" val () = aux_s2exp (out, n, s2e) val () = prstr ")" } // end of [S2Evararg] // | S2Eexi ( s2vs, s2ps, s2e ) => { val () = prstr "S2Eexi(" val () = fprint_s2varlst (out, s2vs) val () = prstr "; " val () = aux_s2explst (out, n, s2ps) val () = prstr "; " val () = aux_s2exp (out, n, s2e) val () = prstr ")" } // end of [S2Eexi] | S2Euni ( s2vs, s2ps, s2e ) => { val () = prstr "S2Euni(" val () = fprint_s2varlst (out, s2vs) val () = prstr "; " val () = aux_s2explst (out, n, s2ps) val () = prstr "; " val () = aux_s2exp (out, n, s2e) val () = prstr ")" } // end of [S2Euni] // | S2Ewthtype (s2e, ws2es) => { val () = prstr "S2Ewth(" val () = aux_s2exp (out, n, s2e) val () = prstr "; " val () = aux_wths2explst (out, n, ws2es) val () = prstr ")" } // | S2Eerrexp((*void*)) => prstr "S2Eerrexp()" // (* | _ (*rest-of-s2exp*) => prstr "S2E...(...)" *) // end // end of [aux_s2exp] and aux_s2exp_if ( out: FILEref, n: int, s2e: s2exp ) : void = if n > 0 then aux_s2exp (out, n, s2e) else fprint_string (out, "...") // end of [if] // end of [aux_s2exp_if] and aux_s2explst ( out: FILEref, n:int, s2es: s2explst ) : void = let fun loop ( s2es: s2explst, i: int ) : void = case+ s2es of | list_cons (s2e, s2es) => { val () = if i > 0 then fprint_string (out, ", ") val () = aux_s2exp (out, n, s2e) val () = loop (s2es, i+1) } // end of [list_cons] | list_nil () => () // end of [list_nil] // end of [loop] in loop (s2es, 0) end // end of [aux_s2explst] and aux_s2explstlst ( out: FILEref, n:int, s2ess: s2explstlst ) : void = let fun loop ( s2ess: s2explstlst, i: int ) : void = case+ s2ess of | list_cons (s2es, s2ess) => { val () = if i > 0 then fprint_string (out, "; ") val () = aux_s2explst (out, n, s2es) val () = loop (s2ess, i+1) } // end of [list_cons] | list_nil () => () // end of [list_nil] // end of [loop] in loop (s2ess, 0) end // end of [aux_s2explstlst] and aux_labs2explst ( out: FILEref, n: int, ls2es: labs2explst ) : void = let fun loop ( ls2es: labs2explst, i: int ) : void = case+ ls2es of | list_cons (ls2e, ls2es) => { val SLABELED (l, name, s2e) = ls2e val () = if i > 0 then fprint_string (out, ", ") val () = $LAB.fprint_label (out, l) val () = fprint_string (out, "=") val () = aux_s2exp (out, n, s2e) val () = loop (ls2es, i+1) } // end of [list_cons] | list_nil () => () // end of [list_nil] // end of [loop] in loop (ls2es, 0) end // end of [aux_labs2explst] and aux_wths2explst ( out: FILEref, n: int, ws2es: wths2explst ) : void = let // fun loop ( out: FILEref, xs: wths2explst, i: int ) : void = let in // case+ xs of | WTHS2EXPLSTnil () => () | WTHS2EXPLSTcons_invar (k, x, xs) => let val () = if i > 0 then fprint_string (out, ", ") val () = fprint_string (out, "invar(") val () = fprint_int (out, k) val () = fprint_string (out, "; ") val () = aux_s2exp (out, n, x) val () = fprint_string (out, ")") in loop (out, xs, i+1) end // end of [WTHS2EXPLSTcons_invar] | WTHS2EXPLSTcons_trans (k, x, xs) => let val () = if i > 0 then fprint_string (out, ", ") val () = fprint_string (out, "trans(") val () = fprint_int (out, k) val () = fprint_string (out, "; ") val () = aux_s2exp (out, n, x) val () = fprint_string (out, ")") in loop (out, xs, i+1) end // end of [WTHS2EXPLSTcons_trans] | WTHS2EXPLSTcons_none (xs) => let val () = if i > 0 then fprint_string (out, ", ") val () = fprintf (out, "none()", @()) in loop (out, xs, i+1) end // end of [WTHS2EXPLSTcons_none] // end // end of [loop] // in loop (out, ws2es, 0) end // end of [aux_wths2explst] and aux_s2lab ( out: FILEref, n: int, s2l: s2lab ) : void = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ s2l of | S2LABlab (lab) => { val () = prstr "S2LABlab(" val () = $LAB.fprint_label (out, lab) val () = prstr ")" } | S2LABind (ind) => { val () = prstr "S2LABind(" val () = aux_s2explst (out, n, ind) val () = prstr ")" } // end // end of [aux_s2lab] and aux_s2lablst ( out: FILEref, n: int, s2ls: s2lablst ) : void = let fun loop ( s2ls: s2lablst, i: int ) : void = case+ s2ls of | list_cons (s2l, s2ls) => let val () = if i > 0 then fprint_string (out, ", ") val () = aux_s2lab (out, n, s2l) in loop (s2ls, i+1) end // end of [list_cons] | list_nil () => () // end of [list_nil] // end of [loop] in loop (s2ls, 0) end // end of [aux_s2lablst] and aux_s2eff ( out: FILEref, n: int, s2fe: s2eff ) : void = let macdef prstr (x) = fprint_string (out, ,(x)) in // case+ s2fe of | S2EFFset (efs) => { val () = prstr "S2EFFset(" val () = $EFF.fprint_effset (out, efs) val () = prstr ")" } // end of [S2EFFset] | S2EFFexp (s2e) => { val () = prstr "S2EFFexp(" val () = aux_s2exp (out, n, s2e) val () = prstr ")" } // end of [S2EFFexp] | S2EFFadd (s2fe1, s2fe2) => { val () = prstr "S2EFFadd(" val () = aux_s2eff (out, n, s2fe1) val () = prstr ", " val () = aux_s2eff (out, n, s2fe2) val () = prstr ")" } // end of [S2EFFadd] // end // end of [aux_s2eff] in (* in of [local] *) // implement fpprint_s2exp (out, s2e) = aux_s2exp(out, MAXLEVEL, s2e) // implement pprint_s2exp(s2e) = fpprint_s2exp(stdout_ref, s2e) implement pprerr_s2exp(s2e) = fpprint_s2exp(stderr_ref, s2e) // implement fpprint_s2explst (out, s2es) = aux_s2explst(out, MAXLEVEL, s2es) // implement pprint_s2explst(s2es) = fpprint_s2explst(stdout_ref, s2es) implement pprerr_s2explst(s2es) = fpprint_s2explst(stderr_ref, s2es) // implement fpprint_s2explstlst (out, s2ess) = aux_s2explstlst(out, MAXLEVEL, s2ess) // end of [fpprint_s2explstlst] // implement fpprint_labs2explst (out, ls2es) = aux_labs2explst(out, MAXLEVEL, ls2es) // end of [fpprint_labs2explst] // implement fpprint_wths2explst (out, ws2es) = aux_wths2explst(out, MAXLEVEL, ws2es) // end of [fpprint_wths2explst] // end // end of [local] (* ****** ****** *) implement fpprint_t2mpmarg (out, x) = fpprint_s2explst (out, x.t2mpmarg_arg) // end of [fpprint_t2mpmarg] implement fpprint_t2mpmarglst (out, xs) = $UT.fprintlst (out, xs, "><", fpprint_t2mpmarg) // end of [fpprint_t2mpmarglst] (* ****** ****** *) (* end of [pats_staexp2_pprint.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_label.sats0000644000175000017500000000514513431250607020460 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload SYM = "./pats_symbol.sats" // typedef symbol = $SYM.symbol // (* ****** ****** *) abstype label_type typedef label = label_type (* ****** ****** *) // fun label_make_int(i: int): label fun label_make_sym(sym: symbol): label fun label_make_string(str: string): label // (* ****** ****** *) // fun label_is_int(l: label): bool fun label_get_int(l: label): Option_vt(int) // (* ****** ****** *) // fun label_is_sym(l: label): bool fun label_get_sym(l: label): Option_vt(symbol) // (* ****** ****** *) fun label_dotize(l: label): symbol (* ****** ****** *) // fun eq_label_label (l1: label, l2: label):<> bool fun neq_label_label (l1: label, l2: label):<> bool // overload = with eq_label_label overload != with neq_label_label // (* ****** ****** *) // fun compare_label_label (l1: label, l2: label):<> Sgn // overload compare with compare_label_label // (* ****** ****** *) fun tostring_label (l: label): string (* ****** ****** *) // fun print_label(l: label): void fun prerr_label(l: label): void // overload print with print_label overload prerr with prerr_label // fun fprint_label(out: FILEref, x: label): void // (* ****** ****** *) datatype labeled (a:t@ype) = LABELED (a) of (label, a) (* ****** ****** *) (* end of [pats_label.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_util.sats0000644000175000017500000002012713431250607022021 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload EFF = "./pats_effect.sats" typedef effect = $EFF.effect typedef effset = $EFF.effset (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_staexp2.sats" (* ****** ****** *) fun s2rt_linearize (s2t: s2rt): s2rt (* ****** ****** *) fun s2rt_prf_lin_fc (loc0: location, isprf: bool, islin: bool, fc: funclo): s2rt // end of [s2rt_prf_lin_fc] (* ****** ****** *) fun s2rt_npf_lin_prf_boxed (npf: int, lin: int, prgm: int, boxed: int): s2rt // end of [s2rt_npf_lin_prg_boxed] fun s2rt_npf_lin_prf_prgm_boxed_labs2explst ( npf: int, lin: int, prf: int, prgm: int, boxed: int, ls2es: labs2explst ) : s2rt // end of [s2rt_npf_lin_prf_prgm_boxed_labs2explst] (* ****** ****** *) // fun s2cst_select_locs2explstlst (s2cs: s2cstlst, arg: List (locs2explst)): s2cstlst // end of [s2cst_select_locs2explstlst] // (* ****** ****** *) // fun s2exp_is_nonvar (s2e: s2exp):<> bool fun s2exp_is_wthtype (s2e: s2exp):<> bool fun s2exp_is_without (s2e: s2exp):<> bool // // HX-2012-05: this one does more elaborate checking // fun s2exp_is_lin2 (x: s2exp): bool // compared to [s2exp_is_lin] // (* ****** ****** *) fun s2hnf_get_head (s2f: s2hnf): s2hnf // the head in HNF fun s2hnf_is_abscon (s2f: s2hnf): bool // is abstract or datatype (* ****** ****** *) // fun s2eff_add_set (s2fe: s2eff, eff: effset): s2eff // fun s2eff_contain_set (s2fe: s2eff, efs: effset): bool fun s2eff_contain_exp (s2fe: s2eff, s2e: s2exp): bool fun s2eff_contain_s2eff (s2fe1: s2eff, s2fe2: s2eff): bool // (* ****** ****** *) absvtype stasub_vtype // for static subst vtypedef stasub = stasub_vtype (* ****** ****** *) // fun stasub_make_nil ((*void*)) : stasub // fun stasub_free (sub: stasub): void fun stasub_copy (sub: !stasub): stasub // (* ****** ****** *) fun fprint_stasub (out: FILEref, sub: !stasub): void (* ****** ****** *) fun stasub_add (sub: &stasub, s2v: s2var, s2f: s2exp): void fun stasub_addlst (sub: &stasub, s2vs: s2varlst, s2fs: s2explst): int(*err*) // end of [stasub_addlst] (* ****** ****** *) fun stasub_find (sub: !stasub, s2v: s2var): Option_vt (s2exp) // end of [stasub_find] (* ****** ****** *) // (* fun stasub_get_domain (sub: !stasub): List_vt (s2var) *) // fun stasub_occurcheck (sub: !stasub, s2V: s2Var): bool // (* ****** ****** *) fun stasub_extend_svarlst (sub: &stasub, s2vs: s2varlst): s2varlst_vt // end of [stasub_extend_svarlst] (* ****** ****** *) // fun s2exp_subst (sub: !stasub, s2e: s2exp): s2exp // fun s2explst_subst (sub: !stasub, s2es: s2explst): s2explst fun s2explst_subst_vt (sub: !stasub, s2es: s2explst): s2explst_vt // fun s2explstlst_subst (sub: !stasub, s2ess: s2explstlst): s2explstlst // fun s2expopt_subst (sub: !stasub, os2e: s2expopt): s2expopt // (* ****** ****** *) // fun s2exp_subst_flag (sub: !stasub, s2e: s2exp, flag: &int): s2exp // end of [s2exp_subst_flag] // fun s2explst_subst_flag (sub: !stasub, s2es: s2explst, flag: &int): s2explst // end of [s2explst_subst_flag] // (* ****** ****** *) fun s2zexp_subst_flag (sub: !stasub, s2ze: s2zexp, flag: &int): s2zexp // end of [s2zexp_subst_flag] (* ****** ****** *) fun s2exp_alpha (s2v: s2var, s2v_new: s2var, s2e: s2exp): s2exp // end of [s2exp_alpha] fun s2explst_alpha (s2v: s2var, s2v_new: s2var, s2es: s2explst): s2explst // end of [s2explst_alpha] (* ****** ****** *) // fun s2ctxt_hrepl (ctxt: s2ctxt, repl: s2exp): s2exp fun s2ctxtopt_hrepl (ctxtopt: s2ctxtopt, repl: s2exp): s2expopt // fun s2exp_hrepl (s2e: s2exp, repl: s2exp): s2exp // (* ****** ****** *) fun s2exp_linkrem (s2e: s2exp): s2exp (* ****** ****** *) // fun s2exp_topize_0 (s2e: s2exp): s2exp and s2exp_topize_1 (s2e: s2exp): s2exp fun s2exp_topize (knd: int, s2e: s2exp): s2exp // (* ****** ****** *) // fun s2exp_hnfize (x: SHARED(s2exp)): s2exp fun s2explst_hnfize (xs: SHARED(s2explst)): s2explst fun s2expopt_hnfize (opt: SHARED(s2expopt)): s2expopt fun s2explstlst_hnfize (xss: SHARED(s2explstlst)): s2explstlst // // HX: this one is implemented in [pats_trans3_env.sats] // fun s2exp_hnfize_flag_svar (s2e0: s2exp, s2v: s2var, flag: &int): s2exp // (* ****** ****** *) // // HX-2013-06: applying [hnfize] recursively // fun s2exp_mhnfize (x: SHARED(s2exp)): s2exp fun s2explst_mhnfize (x: SHARED(s2explst)): s2explst fun s2explstlst_mhnfize (x: SHARED(s2explstlst)): s2explstlst (* ****** ****** *) // fun s2exp2hnf (x: SHARED(s2exp)): s2hnf // = s2exp_hnfize fun s2exp2hnf_cast (x: SHARED(s2exp)): s2hnf // HX: a cast function // fun s2hnf2exp (x: SHARED(s2hnf)): s2exp // HX: a cast function // (* ****** ****** *) fun s2hnf_syneq (s2f1: s2hnf, s2f2: s2hnf): bool fun s2exp_syneq (s2e1: s2exp, s2e2: s2exp): bool fun s2explst_syneq (xs1: s2explst, xs2: s2explst): bool (* ****** ****** *) // // HX-2015-03: // this version handles bound variables: // fun s2hnf_syneq2 (s2f1: s2hnf, s2f2: s2hnf): bool fun s2exp_syneq2 (s2e1: s2exp, s2e2: s2exp): bool fun s2explst_syneq2 (xs1: s2explst, xs2: s2explst): bool // fun s2var_syneq_env ( env1: !s2varlst_vt , env2: !s2varlst_vt , s2v1: s2var, s2v2: s2var ) : bool // end of [s2var_syneq_env] // fun s2hnf_syneq_env ( env1: !s2varlst_vt , env2: !s2varlst_vt , s2f1: s2hnf, s2f2: s2hnf ) : bool // end of [s2hnf_syneq_env] // fun s2exp_syneq_env ( env1: !s2varlst_vt , env2: !s2varlst_vt , s2e1: s2exp, s2e2: s2exp ) : bool // end of [s2exp_syneq_env] // fun s2explst_syneq_env ( env1: !s2varlst_vt , env2: !s2varlst_vt , s2es1: s2explst, s2es2: s2explst ) : bool // end of [s2explst_syneq_env] // fun s2explstlst_syneq_env ( env1: !s2varlst_vt , env2: !s2varlst_vt , s2ess1: s2explstlst, s2ess2: s2explstlst ) : bool // end of [s2explstlst_syneq_env] // (* ****** ****** *) fun s2hnf_tszeq (s2f1: s2hnf, s2f2: s2hnf): bool // type-size-equality-test fun s2exp_tszeq (s2e1: s2exp, s2e2: s2exp): bool // type-size-equality-test fun s2explst_tszeq (s2es1: s2explst, s2es2: s2explst): bool // type-size-equality-test (* ****** ****** *) fun s2kexp_ismat (x1: s2kexp, x2: s2kexp): bool fun s2kexplst_ismat (xs1: s2kexplst, xs2: s2kexplst): bool (* ****** ****** *) fun s2zexp_syneq (x1: s2zexp, x2: s2zexp): bool fun s2zexp_merge (x1: s2zexp, x2: s2zexp): s2zexp (* ****** ****** *) // // HX: implemented in [pats_staexp2_util2.dats] // fun s2exp_absuni (s2e: s2exp): @(s2exp, s2varlst_vt, s2explst_vt) // fun s2exp_opnexi (s2e: s2exp): @(s2exp, s2varlst_vt, s2explst_vt) fun s2explst_opnexi (s2es: s2explst): @(s2explst, s2varlst_vt, s2explst_vt) // (* ****** ****** *) fun s2exp_freevars (s2e: s2exp): s2varset_vt (* ****** ****** *) fun s2Var_occurcheck_s2exp (s2V0: s2Var, s2e: s2exp) : (int, s2cstlst, s2varlst, s2Varlst) // end of [s2Var_occurcheck_s2exp] (* ****** ****** *) fun s2exp_isbot (s2e: s2exp): bool fun s2exp_fun_isbot (s2e: s2exp): bool (* ****** ****** *) (* end of [pats_staexp2_util.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lintprgm_myint_int.dats0000644000175000017500000001223113431250607023302 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Time: February 2012 // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time (* ****** ****** *) %{^ #include "pats_lintprgm_myint.cats" %} // end of [%{^] (* ****** ****** *) staload INTINF = "./pats_intinf.sats" (* ****** ****** *) staload "./pats_lintprgm.sats" (* ****** ****** *) viewtypedef myint = myint(intknd) extern castfn myint2int0 (x: myint):<> int // // HX: it is okay to use a castfn here as [myint] contains extern castfn myint2int1 (x: !myint):<> int // no resources // extern castfn int2myint (x: int):<> myint // macdef i2mi = int2myint macdef mi2i0 = myint2int0 macdef mi2i1 = myint2int1 (* ****** ****** *) extern praxi myint_int_free (x: myint): void extern castfn myint_int_copy (x: !myint):<> myint (* ****** ****** *) implement myint_make_int (x) = int2myint (x) implement myint_make_intinf (x) = let val x = $INTINF.intinf_get_int (x) in int2myint (x) end // end of [myint_make_intinf] (* ****** ****** *) implement myint_free (x) = let prval () = myint_int_free (x) in (*nothing*) end // end of [myint_free] implement myint_copy (x) = myint_int_copy (x) (* ****** ****** *) implement neg_myint (x) = i2mi(~(mi2i0)x) implement neg1_myint (x) = i2mi(~(mi2i1)x) (* ****** ****** *) implement add_myint_int (x, i) = i2mi((mi2i0)x + i) (* ****** ****** *) implement add01_myint_myint (x, y) = i2mi(res) where { val res = (mi2i0)x + (mi2i1)y } // end of [add_myint_myint] implement sub01_myint_myint (x, y) = (i2mi)res where { val res = (mi2i0)x - (mi2i1)y } // end of [sub_myint_myint] (* ****** ****** *) implement mul01_myint_myint (x, y) = i2mi((mi2i0)x * (mi2i1)y) implement mul10_myint_myint (x, y) = i2mi((mi2i1)x * (mi2i0)y) implement mul11_myint_myint (x, y) = i2mi((mi2i1)x * (mi2i1)y) (* ****** ****** *) implement div01_myint_myint (x, y) = (i2mi)res where { val res = (mi2i0)x / (mi2i1)y } // end of [div01_myint_myint] implement div11_myint_myint (x, y) = i2mi((mi2i1)x / (mi2i1)y) implement ediv01_myint_myint (x, y) = (i2mi)res where { val res = (mi2i0)x / (mi2i1)y } // end of [ediv_myint_myint] (* ****** ****** *) implement mod01_myint_myint (x, y) = (i2mi)res where { val res = op mod ((mi2i0)x, (mi2i1)y) } // end of [mod01_myint_myint] implement mod11_myint_myint (x, y) = i2mi((mi2i1)x mod (mi2i1)y) (* ****** ****** *) implement gcd01_myint_myint (x, y) = (i2mi)res where { val res = op gcd ((mi2i0)x, (mi2i1)y) } // end of [gcd_myint_myint] (* ****** ****** *) implement lt_myint_int (x, y) = (mi2i1)x < y implement lte_myint_int (x, y) = (mi2i1)x <= y implement gt_myint_int (x, y) = (mi2i1)x > y implement gte_myint_int (x, y) = (mi2i1)x >= y implement eq_myint_int (x, y) = (mi2i1)x = y implement neq_myint_int (x, y) = (mi2i1)x != y implement compare_myint_int (x, y) = compare ((mi2i1)x, y) (* ****** ****** *) implement lt_myint_myint (x, y) = ((mi2i1)x < (mi2i1)y) implement lte_myint_myint (x, y) = ((mi2i1)x <= (mi2i1)y) implement gt_myint_myint (x, y) = ((mi2i1)x > (mi2i1)y) implement gte_myint_myint (x, y) = ((mi2i1)x >= (mi2i1)y) (* ****** ****** *) implement fprint_myint (out, x) = fprint_int (out, mi2i1(x)) (* ****** ****** *) implement myintvec_free {n} (xs, n) = let // // HX: myint(int) is actually a type // viewtypedef vt = myint val (pfgc, pf | p) = __cast (xs) where { extern castfn __cast (x: myintvec (intknd, n)) :<> [l:addr] (free_gc_v (vt?, n, l), array_v(vt?, n, l) | ptr l) } // end of [val] in array_ptr_free (pfgc, pf | p) end // end of [myintvec_free] (* ****** ****** *) (* end of [pats_lintprgm_myint_int.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env_dvar.dats0000644000175000017500000005644613431250607022472 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_trans3_env_dvar" // (* ****** ****** *) staload LOC = "./pats_location.sats" overload print with $LOC.print_location (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) implement d2var_mutablize (loc0, d2v, s2e0, opt) = let (* val () = ( println! (": d2var_mutablize: d2v = ", d2v) ) // end of [val] *) // val s2e_elt = d2var_get_type_some (loc0, d2v) // val s2e_addr = let val opt = d2var_get_addr (d2v) in case+ opt of | Some (s2e_addr) => s2e_addr // HX: [d2v] is introduced by vardec | None () => let val sym = d2var_get_sym (d2v) val s2v_addr = s2var_make_id_srt (sym, s2rt_addr) val () = trans3_env_add_svar (s2v_addr) // adding svar val s2e_addr = s2exp_var (s2v_addr) val () = d2var_set_addr (d2v, Some s2e_addr) in s2e_addr end // end of [None] end // end of [let] // end of [val] // val s2e_ptr = s2exp_ptr_addr_type (s2e_addr) val () = d2var_set_type (d2v, Some (s2e_ptr)) val () = d2var_set_mastype (d2v, Some (s2e_ptr)) val () = d2var_set_linval (d2v, ~1(*nonlin*)) // // HX-2012-07: this is often needed in 'unsafe' programming style // val () = let val s2p = s2exp_agtz (s2e_addr) in trans3_env_hypadd_prop (loc0, s2p) end // end of [val] // val d2vw = d2var_ptr_viewat_make (d2v, opt) // linval is properly set val () = d2var_set_view (d2v, Some d2vw) // [d2v] is mutable // val s2at0 = s2exp_at (s2e0, s2e_addr) val () = d2var_set_mastype (d2vw, Some (s2at0)) val s2at_elt = s2exp_at (s2e_elt, s2e_addr) val () = d2var_set_type (d2vw, Some (s2at_elt)) // in d2vw end // end of [d2var_mutablize] implement d2var_mutablize_none (loc0, d2v, s2e0) = d2var_mutablize (loc0, d2v, s2e0, None ()) // end of [d2var_mutablize_none] (* ****** ****** *) extern fun the_d2varenv_push (): (d2varenv_push_v | void) local dataviewtype ld2vsetlst = // local dynamic variables | LD2VSset of (d2varset_vt, ld2vsetlst) // local dynamic variable set | LD2VSlam of (int(*lin*), d2varlst_vt, ld2vsetlst) // marker for lambdas | LD2VSnil of () // end of [ld2vsetlst] assume d2varenv_push_v = unit_v val the_ld2vs = ref (d2varset_vt_nil ()) // end of [val] val the_ld2vss = ref (LD2VSnil ()) in // in of [local] implement the_d2varenv_get_top () = let val (vbox pf | p) = ref_get_view_ptr (the_ld2vs) in d2varset_vt_listize (!p) end // end of [the_d2varenv_get_top] implement the_d2varenv_get_llamd2vs () = let val (vbox pf | pp) = ref_get_view_ptr (the_ld2vss) in case+ !pp of | LD2VSlam (lin, !p_d2vs, _) => let val d2vs = !p_d2vs; val () = !p_d2vs := list_vt_nil in fold@ (!pp); d2vs end // end of [LD2VSlam] | LD2VSset _ => (fold@ (!pp); list_vt_nil) | LD2VSnil _ => (fold@ (!pp); list_vt_nil) end // end of [the_d2varenv_get_llamd2vs] (* ****** ****** *) implement the_d2varenv_add_dvar (d2v) = let val (vbox pf | p) = ref_get_view_ptr (the_ld2vs) val () = !p := d2varset_vt_add (!p, d2v) val opt = d2var_get_view (d2v) in // case+ opt of | Some (d2vw) => !p := d2varset_vt_add (!p, d2vw) | None () => () // end // end of [the_d2varenv_add] implement the_d2varenv_add_dvarlst (d2vs) = let fun loop {n:nat} .. ( set: d2varset_vt, d2vs: list (d2var, n) ) :<> d2varset_vt = case+ d2vs of | list_cons (d2v, d2vs) => let val set = d2varset_vt_add (set, d2v) in loop (set, d2vs) end // end of [list_cons] | list_nil () => set // end of [loop] val (vbox pf | p) = ref_get_view_ptr (the_ld2vs) in !p := loop (!p, d2vs) end // end of [the_d2varenv_addlst] implement the_d2varenv_add_dvaropt (opt) = ( case+ opt of | Some (d2v) => the_d2varenv_add_dvar (d2v) | None () => () ) // end of [the_d2varenv_add_dvaropt] (* ****** ****** *) implement the_d2varenv_pop (pfpush | (*none*)) = let viewtypedef lset = d2varset_vt fun loop ( ld2vss: ld2vsetlst, res: &lset? >> lset ) : ld2vsetlst = case+ ld2vss of | ~LD2VSset (d2vs, ld2vss) => let val () = res := d2vs in ld2vss end // end of [LD2VSset] | ~LD2VSlam (lin, d2vs, ld2vss) => let val () = list_vt_free (d2vs) in loop (ld2vss, res) end // end of [LD2VSlam] | ~LD2VSnil () => let val () = res := d2varset_vt_nil () in LD2VSnil () end // end of [LD2VSnil] // end of [loop] prval unit_v () = pfpush val (vbox pf1 | p) = ref_get_view_ptr (the_ld2vs) val () = d2varset_vt_free (!p) val () = $effmask_ref let val (vbox pf2 | pp) = ref_get_view_ptr (the_ld2vss) in !pp := $effmask_ref (loop (!pp, !p)) end // end of [val] in // nothing end // end of [the_d2varenv_pop] (* ****** ****** *) implement the_d2varenv_push () = let val d2vs = d2vs where { val (vbox pf | p) = ref_get_view_ptr (the_ld2vs) val d2vs = !p val () = !p := d2varset_vt_nil () } // end of [val] val (vbox pf | pp) = ref_get_view_ptr (the_ld2vss) val () = !pp := LD2VSset (d2vs, !pp) in (unit_v () | ()) end // end of [the_d2varenv_push] implement the_d2varenv_push_lam (lin) = let val (pfpush | ()) = the_d2varenv_push () val (vbox pf | pp) = ref_get_view_ptr (the_ld2vss) val () = !pp := LD2VSlam (lin, list_vt_nil, !pp) in (pfpush | ()) end // end of [the_d2varenv_push_lam] implement the_d2varenv_push_let () = the_d2varenv_push () // HX: preventing implement // linear resources from being accessed the_d2varenv_push_try () = the_d2varenv_push_lam (0) (* ****** ****** *) implement the_d2varenv_d2var_is_llamlocal (d2v0) = let // [d2v0] is linear // fun loop ( ld2vss: !ld2vsetlst, d2v0: d2var ) : bool = ( case+ ld2vss of | LD2VSlam ( lin, !p_d2vs, !p_ld2vss ) => ( case+ 0 of | _ when lin > 0 => let val () = !p_d2vs := list_vt_cons (d2v0, !p_d2vs) // end of [val] val ans = loop (!p_ld2vss, d2v0) in fold@ (ld2vss); ans end // end of [llam] | _ => (fold@ (ld2vss); false) ) // end of [LD2VSlam] | LD2VSset (!p_d2vs, !p_ld2vss) => let val ans = d2varset_vt_ismem (!p_d2vs, d2v0) val ans = ( if ans then true else loop (!p_ld2vss, d2v0) ) // end of [val] in fold@ (ld2vss); ans end // end of [LD2VSset] | LD2VSnil () => (fold@ (ld2vss); false) ) (* end of [loop] *) // val ans = let // val ( vbox pf | p ) = ref_get_view_ptr (the_ld2vs) // in d2varset_vt_ismem (!p, d2v0) end // end of [val] // in // if ans then true else let val (vbox pf | pp) = ref_get_view_ptr (the_ld2vss) in $effmask_ref (loop (!pp, d2v0)) end // end of [if] // end // end of [the_d2varenv_d2var_is_llamlocal] (* ****** ****** *) implement the_d2varenv_save_lstbefitmlst () = let // fun aux ( d2v: d2var , res: &lstbefitmlst >> lstbefitmlst ) : void = let val linval = d2var_get_linval (d2v) (* val () = begin println! ("the_d2varenv_save_lstbefitmlst: aux: d2v = ", d2v); println! ("the_d2varenv_save_lstbefitmlst: aux: linval = ", linval); end // end of [val] *) in if linval >= 0 then let val x = lstbefitm_make (d2v, linval) in res := list_cons (x, res) end else () // end of [if] end // end of [aux] // fun auxlst ( d2vs: d2varlst_vt , res: &lstbefitmlst >> lstbefitmlst ) : void = ( case+ d2vs of | ~list_vt_cons (d2v, d2vs) => let val () = aux (d2v, res) in auxlst (d2vs, res) end // end of [list_vt_cons] | ~list_vt_nil () => () ) (* end of [auxlst] *) // fun auxset ( d2vs: !d2varset_vt , res: &lstbefitmlst >> lstbefitmlst ) : void = let val d2vs = d2varset_vt_listize (d2vs) in auxlst (d2vs, res) end // end of [auxset] // fun auxsetlst ( xs: !ld2vsetlst, res: &lstbefitmlst >> lstbefitmlst ) : void = let in // case+ xs of | LD2VSset (!p_d2vs, !p_xs) => { val () = auxset (!p_d2vs, res) val () = auxsetlst (!p_xs, res) prval () = fold@ (xs) } // end of [LD2VSset] | LD2VSlam ( lin, _(*d2vs*), !p_xs ) when lin > 0 => { val () = auxsetlst (!p_xs, res) prval () = fold@ (xs) } // end of [LD2VSlam(1)] | _ => () // end // end of [auxsetlst] // var res: lstbefitmlst = list_nil val () = let val (vbox pf | p) = ref_get_view_ptr (the_ld2vs) in $effmask_ref (auxset (!p, res)) end // end of [val] val () = let val (vbox pf | pp) = ref_get_view_ptr (the_ld2vss) in $effmask_ref (auxsetlst (!pp, res)) end // end of [val] (* val () = ( print "the_d2varset_save_lstbefitmlst: res = "; fprint_lstbefitmlst (stdout_ref, res); print_newline () ) (* end of [val] *) *) in res end // end of [the_d2varset_save_lstbefitmlst] (* ****** ****** *) end // end of [local] (* ****** ****** *) extern fun the_d2varenv_add_labp3atlst (xs: labp3atlst): void implement the_d2varenv_add_p3at (p3t) = let // val opt = p3at_get_dvaropt (p3t) val () = the_d2varenv_add_dvaropt (opt) // in // case+ p3t.p3at_node of // | P3Tany (d2v) => the_d2varenv_add_dvar (d2v) | P3Tvar (d2v) => the_d2varenv_add_dvar (d2v) // | P3Tcon ( _(*pck*), d2c, npf, p3ts ) => the_d2varenv_add_p3atlst (p3ts) // | P3Tann (p3t, s2e) => the_d2varenv_add_p3at (p3t) // | P3Tint _ => () | P3Tintrep _ => () // | P3Tbool _ => () | P3Tchar _ => () | P3Tfloat _ => () | P3Tstring _ => () // | P3Ti0nt _ => () | P3Tf0loat _ => () // | P3Tempty _ => () // | P3Trec ( knd, npf, pck, lp3ts ) => the_d2varenv_add_labp3atlst(lp3ts) // end of [P3Trec] | P3Tlst ( lin, _elt, p3ts ) => the_d2varenv_add_p3atlst( p3ts ) // | P3Trefas(d2v, p3t) => { val () = the_d2varenv_add_dvar(d2v) val () = the_d2varenv_add_p3at(p3t) } // end of [P3Trefas] // | P3Texist (s2vs, p3t) => the_d2varenv_add_p3at(p3t) // P3Texist // | P3Tvbox (d2v) => the_d2varenv_add_dvar(d2v) // | P3Terrpat ((*void*)) => ((*ignored*)) // end // end of [the_d2varenv_add_p3at] implement the_d2varenv_add_p3atlst (p3ts) = ( list_app_fun(p3ts, the_d2varenv_add_p3at) ) // end of [the_d2varenv_add_p3atlst] implement the_d2varenv_add_labp3atlst (xs) = loop (xs) where { fun loop ( xs: labp3atlst ) : void = case+ xs of | list_nil () => () | list_cons (x, xs) => loop(xs) where { val LABP3AT(l, p3t) = x val () = the_d2varenv_add_p3at (p3t) } (* end of [list_cons] *) // end of [loop] } // end of [the_d2varenv_add_labp3atlst] (* ****** ****** *) // extern fun d2vfin_check (loc0: loc_t, d2v: d2var): void // (* ****** ****** *) local fun d2vfin_check_some ( loc0: loc_t, d2v: d2var, s2e: s2exp ) : void = let // fun auxerr1 ( loc0: loc_t , d2v: d2var, s2e1: s2exp, s2e2: s2exp ) : void = { val () = prerr_error3_loc (loc0) val () = prerr ": the linear dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is preserved but with an incompatible type." val () = prerr_newline () val () = prerr_the_staerrlst () val () = the_trans3errlst_add (T3E_d2var_fin_some_some (loc0, d2v)) } (* end of [auxerr1] *) fun auxerr2 ( loc0: loc_t, d2v: d2var, s2e: s2exp ) : void = { val () = prerr_error3_loc (loc0) val () = prerr ": the linear dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] needs to be consumed but it is preserved with the type [" val () = prerr_s2exp (s2e) val () = prerr "] instead." val () = prerr_newline () val () = the_trans3errlst_add (T3E_d2var_fin_none_some (loc0, d2v)) } (* end of [auxerr2] *) // val d2vfin = d2var_get_finknd (d2v) (* val () = ( print "d2vfin_check_some: d2v = "; print_d2var(d2v); print_newline(); print "d2vfin_check_some: d2vfin = "; print_d2vfin(d2vfin); print_newline(); ) (* end of [val] *) *) in // case+ d2vfin of // | D2VFINnone() => let val islin = s2exp_is_lin2 (s2e) val () = if islin then auxerr2 (loc0, d2v, s2e) val linval = d2var_get_linval (d2v) in if linval >= 0 then d2var_set_type(d2v, None ()) end // end of [D2VFINnone] // | D2VFINsome (s2e_fin) => let val (pfpush | ()) = trans3_env_push() val err = $SOL.s2exp_tyleq_solve (loc0, s2e, s2e_fin) val () = if err > 0 then auxerr1 (loc0, d2v, s2e, s2e_fin) val knd = C3TKsome_fin (d2v, s2e_fin, s2e) val ((*void*)) = trans3_env_pop_and_add (pfpush | loc0, knd) in d2var_set_type (d2v, Some s2e_fin) end // end of [D2VFINsome] // | D2VFINsome_lvar (s2e_fin) => let // val (pfpush | ()) = trans3_env_push() // val s2e = ( case+ s2e.s2exp_node of // case+ | S2Eat(s2at, s2l) => let val isnonlin = s2exp_is_nonlin(s2at) in if isnonlin then s2exp_at(s2exp_topize_0(s2at), s2l) else s2e end // end of [S2Eat] | _ (* non-S2Eat *) => let val () = assertloc (false) in s2e // HX: this should be deadcode! end // end of [_] ) : s2exp // end of [val] // (* val () = println! ("d2vfin_check_some: D2VFINsome_lvar: s2e = ", s2e) *) // val err = $SOL.s2exp_tyleq_solve(loc0, s2e, s2e_fin) val () = if err > 0 then auxerr1(loc0, d2v, s2e, s2e_fin) // val knd = C3TKsome_lvar(d2v, s2e_fin, s2e) val ((*void*)) = trans3_env_pop_and_add(pfpush | loc0, knd) // in d2var_set_type (d2v, Some (s2e_fin)) end // end of [D2VFINsome_lvar] // | D2VFINsome_vbox (s2e_box) => let val (pfpush | ()) = trans3_env_push () val err = $SOL.s2exp_tyleq_solve (loc0, s2e, s2e_box) val () = if err > 0 then auxerr1 (loc0, d2v, s2e, s2e_box) val knd = C3TKsome_vbox (d2v, s2e_box, s2e) val ((*void*)) = trans3_env_pop_and_add (pfpush | loc0, knd) in d2var_set_type (d2v, Some (s2e_box)) end // end of [D2VFINsome_vbox] // | D2VFINdone _ => () // HX: handled by [funarg_d2vfin_check] // end of [case] // end // end of [d2vfin_check_some] fun d2vfin_check_none ( loc0: loc_t, d2v: d2var ) : void = let // fun auxerr ( loc0: loc_t, d2v: d2var ) : void = { val () = prerr_error3_loc (loc0) val () = prerr ": the linear dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] needs to be preserved but it is consumed instead." val () = prerr_newline () } (* end of [auxerr] *) // val d2vfin = d2var_get_finknd (d2v) (* val () = ( print "d2vfin_check_none: d2v = "; print_d2var (d2v); print_newline (); print "d2vfin_check_none: d2vfin = "; print_d2vfin (d2vfin); print_newline (); ) (* end of [val] *) *) in // case+ d2vfin of | D2VFINnone () => () | D2VFINsome _ => let val () = auxerr (loc0, d2v) in the_trans3errlst_add (T3E_d2var_fin_none_some (loc0, d2v)) end // end of [D2VFINsome] | D2VFINsome_lvar _ => let val () = auxerr (loc0, d2v) in the_trans3errlst_add (T3E_d2var_fin_none_some (loc0, d2v)) end // end of [D2VFINsome_lvar] | D2VFINsome_vbox _ => let val () = auxerr (loc0, d2v) in the_trans3errlst_add (T3E_d2var_fin_none_some (loc0, d2v)) end // end of [D2VFINsome_vbox] | D2VFINdone _ => () // HX: handled by [funarg_d2vfin_check] // end // end of [d2vfin_check_none] in // in of [local] implement d2vfin_check (loc0, d2v) = let // (* val () = ( println! ("d2vfin_check: d2v = ", d2v) ) // end of [val] *) // val opt = d2var_get_type (d2v) // in // case+ opt of | Some (s2e) => let (* val () = ( println! ("d2vfin_check: s2e = ", s2e) ) // end of [val] *) in d2vfin_check_some (loc0, d2v, s2e) end // end of [Some] | None () => d2vfin_check_none (loc0, d2v) // end // end of [d2vfin_check] implement the_d2varenv_check (loc0) = let (* val () = ( print "the_d2varenv_check"; print_newline () ) // end of [val] *) fun loop ( loc0: loc_t, d2vs: d2varlst_vt ) : void = case+ d2vs of | ~list_vt_cons (d2v, d2vs) => let val () = d2vfin_check (loc0, d2v) in loop (loc0, d2vs) end // end of [list_vt_cons] | ~list_vt_nil () => () (* end of [loop] *) // in loop (loc0, the_d2varenv_get_top ()) end // end of [the_d2varenv_check] implement the_d2varenv_check_llam (loc0) = let // fun aux ( loc0: loc_t, d2v: d2var ) : void = let val opt = d2var_get_type (d2v) in case+ opt of | Some (s2e) => let val islin = s2exp_is_lin (s2e) in if islin then let val () = prerr_error3_loc (loc0) val () = prerr ": the linear dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] needs to be consumed but it is preserved with the type [" val () = prerr_s2exp (s2e) val () = prerr "] instead." val () = prerr_newline () val () = assertloc (false) in exit (1) end else d2var_set_type (d2v, None ()) // end of [if] end // end of [Some] | None () => () end // end of [aux] // fun auxlst ( loc0: loc_t, d2vs: d2varlst_vt ) : void = ( case+ d2vs of | ~list_vt_cons (d2v, d2vs) => let val () = aux (loc0, d2v) val () = auxlst (loc0, d2vs) in // nothing end // end of [list_vt_cons] | ~list_vt_nil () => () ) (* end of [auxlst] *) // in auxlst (loc0, the_d2varenv_get_llamd2vs ()) end // end of [the_d2varenv_check_llam] (* ****** ****** *) end // end of [local] (* ****** ****** *) local fun d2vfin_checked (d2v: d2var): void = let val d2vfin = d2var_get_finknd (d2v) in // case+ d2vfin of | D2VFINdone _ => () | _ => d2var_set_finknd (d2v, D2VFINdone (d2vfin)) // end // end of [d2vfin_checked] in // in of [local] implement funarg_d2vfin_check (loc0) = let (* val () = ( println! ("funarg_d2vfin_check: enter") ) (* end of [val] *) *) fun auxvar ( loc0: loc_t, d2v: d2var ) : void = let (* val () = begin println! ("funarg_d2vfin_check: auxvar: d2v (bef) = ", d2v) end // end of [val] *) val d2v = let val opt = d2var_get_view (d2v) in case+ opt of Some (d2v) => d2v | None () => d2v end : d2var // end of [val] (* val () = begin println! ("funarg_d2vfin_check: auxvar: d2v (aft) = ", d2v) end // end of [val] *) // val () = d2vfin_check (loc0, d2v) // in d2vfin_checked (d2v) // HX: indicating that [d2vfin_check] should skip it end // end of [auxvar] // fun auxpatlst ( loc0: loc_t, p3ts: p3atlst ) : void = let in // case+ p3ts of | list_cons (p3t, p3ts) => let val () = ( case+ p3t.p3at_node of | P3Tvar (d2v) => auxvar (loc0, d2v) | P3Trefas (d2v, _) => auxvar (loc0, d2v) | _ => () ) : void // end of [val] in auxpatlst (loc0, p3ts) end // end of [list_cons] | list_nil () => () // end // end of [auxpatlst] // val opt = the_lamlpenv_get_funarg () // in // case+ opt of | ~Some_vt p3ts => let val () = auxpatlst (loc0, p3ts) in // nothing end // end of [Some_vt] // | ~None_vt () => let val () = prerr_interror_loc (loc0) val () = prerr ": funarg_d2vfin_check: there is no funarg." val () = prerr_newline () in assertloc (false) end // end of [None_vt] end (* end of [funarg_d2vfin_check] *) end // end of [local] (* ****** ****** *) implement s2exp_wthtype_instantiate (loc0, s2e0) = let // (* val () = begin println! ("s2exp_wthtype_instantiate: s2e0 = ", s2e0) end // end of [val] *) // fun p3at_get_var (p3t: p3at): d2var = let in // case+ p3t.p3at_node of | P3Tvar (d2v) => d2v | P3Trefas (d2v, _) => d2v | _ => let val () = prerr_interror_loc (p3t.p3at_loc) // end of [val] val () = prerr ": s2exp_wthtype_instantiate" val () = prerrln! ": p2at_get_var: the pattern is expected to be a variable." val ((*exit*)) = assertloc (false) in $ERR.abort_interr{d2var}((*deadcode*)) end // end of [_] // end // end of [p3at_get_var] // fun d2vfin_unchecked (d2v: d2var): void = let val d2vfin = d2var_get_finknd (d2v) in // case+ d2vfin of | D2VFINdone(d2vfin) => d2var_set_finknd(d2v, d2vfin) | _ (*non-D2VFINdone*) => () // HX: is this deadcode? // end // end of [d2vfin_unchecked] // fun aux_invar .<>. ( refknd: int, p3t: p3at, s2e: s2exp ) : void = let // val d2v = p3at_get_var (p3t) // in // case+ 0 of | _ when refknd = 0 => d2vfin_unchecked (d2v) | _ (* refknd = 1 *) => let val-Some ( d2v_view ) = d2var_get_view (d2v) in d2vfin_unchecked (d2v_view) end // end of [_] // end // end of [aux_invar] // fun aux_trans .<>. ( refknd: int, p3t: p3at, s2e: s2exp ) : void = let // val d2v = p3at_get_var (p3t) // (* val () = println! ("aux_trans: d2v = ", d2v) val () = println! ("aux_trans: s2e = ", s2e) *) // in // case+ 0 of | _ when refknd = 0 => d2var_set_finknd (d2v, D2VFINsome s2e) | _ (* refknd = 1 *) => let val-Some (d2v_view) = d2var_get_view (d2v) val-Some (s2e_addr) = d2var_get_addr (d2v) val s2e_at = s2exp_at (s2e, s2e_addr) in d2var_set_finknd (d2v_view, D2VFINsome (s2e_at)) end // end of [_] // end // end of [aux_trans] // fun auxlst ( loc0: loc_t , p3ts: p3atlst, wths2es: wths2explst ) : void = let in // case+ wths2es of | WTHS2EXPLSTcons_invar (refknd, s2e, wths2es) => let val-list_cons (p3t, p3ts) = p3ts val () = aux_invar (refknd, p3t, s2e) in auxlst (loc0, p3ts, wths2es) end // end of [WTHS2EXPLSTcons_invar] | WTHS2EXPLSTcons_trans (refknd, s2e, wths2es) => let val-list_cons (p3t, p3ts) = p3ts val () = aux_trans (refknd, p3t, s2e) in auxlst (loc0, p3ts, wths2es) end // end of [WTHS2EXPLSTcons_trans] | WTHS2EXPLSTcons_none (wths2es) => let val-list_cons (p3t, p3ts) = p3ts in auxlst (loc0, p3ts, wths2es) end // end of [WTHS2EXPLSTcons_none] | WTHS2EXPLSTnil () => () // end // end of [auxlst] // var err: int = 0 val (s2e, s2ps) = s2exp_exi_instantiate_all (s2e0, loc0, err) val () = trans3_env_add_proplst_vt (loc0, s2ps) // in // case+ s2e.s2exp_node of // | S2Ewthtype (s2e, wths2es) => let val-~Some_vt (p3ts) = opt where { val opt = the_lamlpenv_get_funarg () } // end of [val] val () = auxlst (loc0, p3ts, wths2es) in s2e end // end of [S2Ewthtype] // | _ (*non-withtype*) => (s2e) // end // end of [s2exp_wthtype_instantiate] (* ****** ****** *) (* end of [pats_trans3_env_dvar.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_e0xp.dats0000644000175000017500000002111213431250607021516 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UT = "./pats_utils.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" staload LOC = "./pats_location.sats" overload + with $LOC.location_combine // staload SYM = "./pats_symbol.sats" // macdef BACKSLASH = $SYM.symbol_BACKSLASH // overload = with $SYM.eq_symbol_symbol // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans1_e0xp" (* ****** ****** *) staload "./pats_lexing.sats" (* ****** ****** *) staload "./pats_fixity.sats" staload "./pats_syntax.sats" staload "./pats_staexp1.sats" (* ****** ****** *) staload "./pats_trans1.sats" staload "./pats_trans1_env.sats" (* ****** ****** *) staload "./pats_e1xpval.sats" (* ****** ****** *) #define l2l list_of_list_vt macdef list_sing (x) = list_cons (,(x), list_nil) (* ****** ****** *) local fun do_e0xpact_fprint ( out: FILEref, v0: v1al ) : void = ( // case+ v0 of // | V1ALint i => fprint(out, i) // | V1ALchar c => fprint(out, c) // | V1ALfloat f => fprint(out, f) // | V1ALstring s => fprint(out, s) // | V1ALerr () => let val () = assertloc(false) in (*deadcode*) end (* end of [V1ALerr] *) // ) (* end of [do_e0xpact_fprint] *) in (* in-of-local *) implement do_e0xpact_prerr(v) = do_e0xpact_fprint(stderr_ref, v) implement do_e0xpact_print(v) = do_e0xpact_fprint(stdout_ref, v) end // end of [local] (* ****** ****** *) implement do_e0xpact_error (loc, v) = let // val () = prerr_error1_loc (loc) val () = prerr ": [#error] directive is encountered: " // val () = (case+ v of | V1ALint i => prerr i | V1ALchar c => prerr c | V1ALstring s => prerr s | V1ALfloat f => prerr f | V1ALerr () => let val () = assertloc (false) in (*deadcode*) end (* end of [V1ALerr] *) ) : void // end of [val] in exit {void} (1) end // end of [do_e0xpact_error] (* ****** ****** *) implement do_e0xpact_assert (loc, v) = let val is_false = ( case+ v of | V1ALint i => i = 0 | V1ALstring s => let val s = string1_of_string s in string_is_empty s end // end of [V1ALstring] | V1ALfloat f => f = 0.0 | V1ALchar c => c = '\0' | V1ALerr () => let val () = assertloc (false) in false // HX: this should be deadcode! end (* end of [V1ALerr] *) ) : bool // end of [val] in if is_false then let val () = prerr_error1_loc loc val () = prerr ": [#assert] failed!" val () = prerr_newline () in exit {void} (1) end // end of [if] end // end of [do_e0xpact_assert] (* ****** ****** *) // // HX: translation of sorts // typedef e1xpitm = fxitm (e1xp) typedef e1xpitmlst = List (e1xpitm) (* ****** ****** *) local fn appf ( _fun: e1xp, _arg: e1xp ) : e1xpitm = let val loc_fun = _fun.e1xp_loc val loc_arg = _arg.e1xp_loc val loc = loc_fun + loc_arg val xs_arg = ( case+ _arg.e1xp_node of | E1XPlist xs => xs | _ => list_sing (_arg) ) : e1xplst // end of [val] val _app = e1xp_app (loc, _fun, loc_arg, xs_arg) in FXITMatm (_app) end // end of [appf] in (* in of [local] *) fn e1xpitm_app (loc: location): e1xpitm = fxitm_app (loc, appf) // end of [e1xpitm] end // end of [local] (* ****** ****** *) fn e1xp_get_loc (x: e1xp): location = x.e1xp_loc fn e1xp_make_opr ( opr: e1xp, f: fxty ) : e1xpitm = ( fxopr_make {e1xp} ( e1xp_get_loc , lam (loc, x, loc_arg, xs) => e1xp_app (loc, x, loc_arg, xs) , opr, f ) // end of [e1xp_make_opr] ) (* end of [e1xp_make_opr] *) fn e1xpitm_backslash (loc_opr: location) = ( fxopr_make_backslash {e1xp} ( lam x => x.e1xp_loc , lam (loc, x, loc_arg, xs) => e1xp_app (loc, x, loc_arg, xs) , loc_opr ) // end of [fxopr_make_backslash] ) (* end of [e1xpitm_backslash] *) (* ****** ****** *) local fn e0xp_tr_errmsg_opr (e0: e0xp): e1xp = let val loc0 = e0.e0xp_loc val () = prerr_error1_loc (loc0) val () = prerr ": the operator needs to be applied." val () = prerr_newline () val () = the_trans1errlst_add (T1E_e0xp_tr (e0)) in e1xp_err (loc0) end // end of [e0xp_tr_errmsg_opr] fn e0xp_tr_errmsg_float (e0: e0xp): void = let val () = prerr_error1_loc (e0.e0xp_loc) val () = prerr ": the floating point number is required to be of base 10." val () = prerr_newline () val () = the_trans1errlst_add (T1E_e0xp_tr (e0)) in // nothing end // end of [e0xp_tr_errmsg_float] in (* in of [local] *) implement e0xp_tr (e0) = let // fun aux_item (e0: e0xp): e1xpitm = let val loc0 = e0.e0xp_loc in case+ e0.e0xp_node of // | E0XPide id when id = BACKSLASH => e1xpitm_backslash (loc0) | E0XPide id => let val opt = the_fxtyenv_find (id) in case+ opt of | ~None_vt () => FXITMatm (e1xp_ide (loc0, id)) | ~Some_vt (fxty) => let val e = e1xp_ide (loc0, id) in e1xp_make_opr (e, fxty) end // end of [Some_vt] end // E0XPide(non-backslash) // | E0XPint (x) => let val-T_INT (base, rep, sfx) = x.token_node // end of [val] in FXITMatm (e1xp_intrep (loc0, rep)) end // end of [E0XPint] // | E0XPchar (x) => let val-T_CHAR (c) = x.token_node in FXITMatm (e1xp_char (loc0, c)) // end of [val] end // end of [E0XPchar] // | E0XPstring (x) => let val-T_STRING (str) = x.token_node in FXITMatm (e1xp_string (loc0, str)) // end of [val] end // end of [E0XPstring] | E0XPstringid (str) => FXITMatm (e1xp_string (loc0, str)) // | E0XPfloat (x) => let val-T_FLOAT (base, rep, sfx) = x.token_node val () = if base != 10 then e0xp_tr_errmsg_float (e0) in FXITMatm (e1xp_float (loc0, rep)) end // end of [E0XPfloat] // | E0XPlist (es) => FXITMatm (e1xp_list (loc0, e0xplst_tr (es))) // | E0XPapp _ => let val e0_new = fixity_resolve ( loc0, e1xp_get_loc, e1xpitm_app (loc0), aux_itemlst e0 ) // end of [val] in FXITMatm (e0_new) end // end of [E0XPapp] // | E0XPfun (arg, body) => FXITMatm (e1xp_fun (loc0, arg, e0xp_tr (body))) // | E0XPif ( e0_cond, e0_then, e0_else ) => let val e1_cond = e0xp_tr (e0_cond) val e1_then = e0xp_tr (e0_then) val e1_else = ( case e0_else of Some x => e0xp_tr (x) | None _ => e1xp_none (loc0) ) : e1xp (* end of [val] *) in FXITMatm (e1xp_if (loc0, e1_cond, e1_then, e1_else)) end // end of [E0Xpif] // | E0XPeval (e0) => let val e1 = e0xp_tr (e0) val v1 = e1xp_valize (e1) in FXITMatm (e1xp_v1al (loc0, v1)) end // end of [E0XPeval] // end // end of [aux_item] // and aux_itemlst (e0: e0xp): e1xpitmlst = let fun loop ( e0: e0xp, res: e1xpitmlst ) : e1xpitmlst = case+ e0.e0xp_node of | E0XPapp (e1, e2) => let val res = list_cons (aux_item e2, res) in loop (e1, res) end (* end of [E0XPapp] *) | _ => list_cons (aux_item e0, res) // end of [loop] in loop (e0, list_nil ()) end // end of [aux_itemlst] // in // case+ aux_item(e0) of // case+ | FXITMatm (e) => e | FXITMopr _ => e0xp_tr_errmsg_opr (e0) // end // end of [e0xp_tr] end // end of [local] implement e0xplst_tr (es) = l2l (list_map_fun (es, e0xp_tr)) (* ****** ****** *) (* end of [pats_trans1_e0xp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_environ.dats0000644000175000017500000002676513431250607022236 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2013 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload S2E = "./pats_staexp2.sats" typedef s2cst = $S2E.s2cst typedef d2con = $S2E.d2con (* ****** ****** *) staload D2E = "./pats_dynexp2.sats" typedef d2cst = $D2E.d2cst typedef d2var = $D2E.d2var typedef d2varlst = $D2E.d2varlst vtypedef d2varlst_vt = $D2E.d2varlst_vt typedef d2varset = $D2E.d2varset vtypedef d2varset_vt = $D2E.d2varset_vt (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "pats_ccomp.sats" (* ****** ****** *) vtypedef funlablst2_vt = List_vt (funlablst) (* ****** ****** *) overload fprint with fprint_vbindmap (* ****** ****** *) local extern fun funent_set_flablst_fin ( fent: funent, opt: Option(funlablst) ) : void = "ext#patsopt_funent_set_flablst_fin" (* fun aux_funlab_get_flablst ( flab: funlab ) : funlablst = let // val opt = funlab_get_funent(flab) // in // case+ opt of | Some(fent) => funent_get_flablst(fent) // end of [Some] | None((*void*)) => list_nil() // end // end of [aux_funlab_get_flablst] *) fun aux_funlab_get_flablst ( flab: funlab ) : funlablst = let // val-Some(fent) = funlab_get_funent(flab) // in funent_get_flablst(fent) end // end of [aux_funlab_get_flablst] fun auxtrclo ( flvl0: int , xs: funlablst , xss: funlablst2_vt , res: funlabset_vt ) : funlabset_vt = let (* val () = println! ( "auxtrclo: flvl0 = ", flvl0 ) (* println! *) *) in // case+ xs of | list_cons (x, xs) => let // // HX-2013-04-12: // Note that flvl <= flvl0 holds! // val flvl = funlab_get_level(x) in if flvl >= flvl0 then let val ismem = funlabset_vt_ismem(res, x) in if ismem then ( auxtrclo(flvl0, xs, xss, res) ) else let val res = funlabset_vt_add(res, x) val xs_new = aux_funlab_get_flablst(x) // (* val out = stdout_ref val () = fprintln! (out, "x = ", x) val () = fprintln! (out, "xs_new = ", xs_new) *) // in auxtrclo(flvl0, xs_new, list_vt_cons(xs, xss), res) end (* end of [if] *) end else let // parent val res = funlabset_vt_add(res, x) in auxtrclo(flvl0, xs, xss, res) // end of [val] end (* end of [if] *) end // end of [list_vt_cons] | list_nil((*void*)) => ( case+ xss of | ~list_vt_nil ((*void*)) => res | ~list_vt_cons (xs, xss) => auxtrclo(flvl0, xs, xss, res) // end of [list_vt_cons] ) (* end of [list_vt_nil] *) // end // end of [auxtrclo] in (* in of [local] *) implement funent_eval_flablst (fent) = let // (* (* val fl0 = funent_get_lab (fent) val () = println! ( "funent_eval_flablst: fent.lab = ", fl0 ) (* println! *) *) // val opt = funent_get_flablst_fin(fent) // (* val () = fprintln! ( stdout_ref, "funent_eval_flablst: opt = ", opt ) (* fprintln! *) *) // in // case+ opt of | Some(fls) => fls | None((*void*)) => fls where { // val fl0 = funent_get_lab(fent) val flvl = funent_get_level(fent) // val xs0 = funent_get_flablst(fent) val xss = list_vt_nil() // : funlablst2_vt val res = funlabset_vt_nil() val res = funlabset_vt_add(res, fl0) val res = auxtrclo(flvl, xs0, xss, res) val fls = funlabset_vt_listize_free(res) val fls = list_of_list_vt{funlab}(fls) val ((*void*)) = funent_set_flablst_fin(fent, Some(fls)) // (* val ((*void*)) = fprintln!(stdout_ref, "funent_eval_flablst(", fl0, "): fls = ", fls) // end of [val] *) } (* end of [None] *) // end // end of [funent_eval_flablst] end // end of [local] (* ****** ****** *) local extern fun funent_set_d2envlst_fin ( fent: funent, opt: Option (d2envlst) ) : void = "ext#patsopt_funent_set_d2envlst_fin" (* fun aux_funlab_get_d2envlst (flab: funlab): d2envlst = let // val opt = funlab_get_funent (flab) // in // case+ opt of | Some (fent) => funent_get_d2envlst (fent) // end of [Some] | None ((*void*)) => list_nil () // end // end of [aux_funlab_get_d2envlst] *) fun aux_funlab_get_d2envlst (flab: funlab): d2envlst = let // val-Some (fent) = funlab_get_funent (flab) val d2esopt = funent_get_d2envlst_fin (fent) // in // case+ d2esopt of | Some (d2es) => d2es | None ((*void*)) => funent_get_d2envlst (fent) (* HX-2013-10-09: error? *) // end of [None] // end // end of [aux_funlab_get_d2envlst] fun auxd2es ( d2es: d2envlst , vbmap: vbindmap, res: d2envset_vt ) : d2envset_vt = let in // case+ d2es of // | list_cons (d2e, d2es) => let (* // // HX-2013-04: [d2e] cannot be in [vbmap] // val d2v = d2env_get_var (d2e) val opt = $D2E.d2varmap_search (vbmap, d2v) val res = ( case+ opt of | ~None_vt _ => d2envset_vt_add (res, d2e) | ~Some_vt _ => res ) : d2envset_vt *) val res = d2envset_vt_add (res, d2e) in auxd2es (d2es, vbmap, res) end (* end of [list_cons] *) // | list_nil () => res // end // end of [auxd2es] (* ****** ****** *) // // HX-2013-04: // [vbmap] is not actually used. // fun auxtrclo ( fls: funlablst , vbmap: vbindmap, res: d2envset_vt ) : d2envset_vt = let (* val () = fprintln! (stdout_ref, "auxtrclo: fls = ", fls) *) in // case+ fls of | list_nil () => res | list_cons (fl, fls) => let val d2es = aux_funlab_get_d2envlst (fl) // end of [val] (* val () = fprintln! (stdout_ref, "auxtrclo: fl = ", fl) val () = fprintln! (stdout_ref, "auxtrclo: d2es = ", d2es) *) val res = auxd2es (d2es, vbmap, res) in auxtrclo (fls, vbmap, res) end (* end of [list_vt_cons] *) // end // end of [auxtrclo] in (* in of [local] *) implement funent_eval_d2envlst (fent) = let (* val fl = funent_get_lab (fent) val () = println! ("funent_eval_d2envlst: ======") val () = println! ("funent_eval_d2envlst: fent.lab = ", fl) *) // val opt = funent_get_d2envlst_fin (fent) // (* val () = fprintln! (stdout_ref, "funent_eval_d2envlst: opt = ", opt) *) // in // case+ opt of | Some (d2es) => d2es | None ((*void*)) => d2es where { val fls0 = funent_eval_flablst (fent) val vbmap = funent_get_vbindmap (fent) val d2es(*set*) = d2envset_vt_nil() val d2es(*set*) = auxtrclo (fls0, vbmap, d2es) val d2es(*list*) = d2envset_vt_listize_free (d2es) val d2es(*list*) = list_of_list_vt{d2env}(d2es) val ((*void*)) = funent_set_d2envlst_fin (fent, Some (d2es)) } (* end of [None] *) // end // end of [funent_eval_d2envlst] end // end of [local] (* ****** ****** *) implement funlab_is_envful (flab) = let // val opt = funlab_get_funent (flab) val d2es = ( case+ opt of | Some (fent) => funent_eval_d2envlst (fent) | None () => list_nil () ) : d2envlst // end of [val] // in list_is_cons (d2es) end // end of [funlab_is_envful] (* ****** ****** *) implement funlab_get_type_fullarg (flab) = let // fun aux ( d2es: d2envlst, hses: hisexplst ) : hisexplst = let in // case+ d2es of | list_cons (d2e, d2es) => let val hse = d2env_get_type (d2e) in list_cons(hse, aux (d2es, hses)) end // end of [list_cons] | list_nil((*void*)) => hses // end (* end of [aux] *) // val opt = funlab_get_funent (flab) val d2es = ( case+ opt of | Some(fent) => funent_eval_d2envlst(fent) | None() => list_nil() ) : d2envlst // end of [val] // val hses = funlab_get_type_arg (flab) // in aux (d2es, hses) end // end of [funlab_get_type_fullarg] (* ****** ****** *) local (* fun funent_varbindmap_initize (fent: funent): void fun funent_varbindmap_initize2 (fent: funent): void fun funent_varbindmap_uninitize (fent: funent): void fun the_funent_varbindmap_find (d2v: d2var): Option_vt (primval) *) vtypedef vbindlst_vt = List_vt @(d2var, primval) vtypedef vbindmap_vt = $D2E.d2varmap_vt (primval) val the_vbmap = let val map = $D2E.d2varmap_vt_nil () in ref (map) end // end of [val] in (* in of [local] *) implement funent_varbindmap_initize (fent0) = let // fun auxmap ( map: &vbindmap_vt, vbs: vbindlst_vt ) : void = let in // case+ vbs of | ~list_vt_cons (vb, vbs) => let val _ = ( // replaced $D2E.d2varmap_vt_insert (map, vb.0, vb.1) ) (* end of [val] *) in auxmap (map, vbs) end (* end of [list_cons] *) | ~list_vt_nil () => () // end // end of [auxmap] // fun auxenv ( map: &vbindmap_vt, loc0: loc_t, i: int, d2es: d2envlst ) : void = let in // case+ d2es of | list_nil ((*void*)) => () | list_cons (d2e, d2es) => let val d2v = d2env_get_var (d2e) val hse = d2env_get_type (d2e) val argenv = primval_argenv (loc0, hse, i) val _(*replaced*) = $D2E.d2varmap_vt_insert (map, d2v, argenv) in auxenv (map, loc0, i+1, d2es) end (* end of [list_cons] *) // end // end of [auxenv] // val loc0 = funent_get_loc (fent0) // val vbmap = funent_get_vbindmap (fent0) // val ( vbox pf | p ) = ref_get_view_ptr (the_vbmap) // val () = $effmask_ref (auxmap (!p, $D2E.d2varmap_listize(vbmap))) val () = $effmask_ref (auxenv (!p, loc0, 0, funent_eval_d2envlst(fent0))) // in (*nothing*) end // end of [funent_varbindmap_initize] (* ****** ****** *) implement funent_varbindmap_initize2 (fent0) = let // fun auxlst ( fls: funlablst ) : void = ( case+ fls of | list_nil () => () | list_cons (fl, fls) => let val opt = funlab_get_funent (fl) val ((*void*)) = ( case+ opt of | None () => () | Some (fent) => funent_varbindmap_initize (fent) // end of [Some] ) : void // end of [val] in auxlst (fls) end // end of [list_cons] ) // val fls0 = funent_get_fnxlablst (fent0) // (* val ((*void*)) = ( fprintln! (stdout_ref, "funent_varbindmap_initize2: fls0 = ", fls0) ) (* end of [val] *) *) // in // case+ fls0 of | list_nil () => () | list_cons (_, fls) => auxlst (fls) // end // end of [funent_varbindmap_initize2] (* ****** ****** *) implement funent_varbindmap_uninitize (fent0) = let // val ( vbox pf | p ) = ref_get_view_ptr (the_vbmap) val () = $D2E.d2varmap_vt_free (!p) val () = !p := $D2E.d2varmap_vt_nil () // in // nothing end // end of [the_funent_varbindmap_uninitize] (* ****** ****** *) implement the_funent_varbindmap_find (d2v) = let // val (vbox pf | p) = ref_get_view_ptr (the_vbmap) // in $D2E.d2varmap_vt_search (!p, d2v) end // end of [the_funent_varbindmap_find] end // end of [local] (* ****** ****** *) (* end of [pats_ccomp_environ.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_svar.dats0000644000175000017500000002625613431250607022011 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) // staload CNTR = "./pats_counter.sats" // staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol // staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp overload compare with $STMP.compare_stamp_stamp // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) typedef s2var_struct = @{ s2var_sym= symbol // the name , s2var_srt= s2rt // the sort , s2var_tmplev= int // the template level , s2var_sVarset= s2Varset // existential variable occurrences , s2var_stamp= stamp // uniqueness } // end of [s2var_struct] (* ****** ****** *) val the_s2var_name_counter = $CNTR.counter_make () fn s2var_name_make (): symbol = let val n = $CNTR.counter_getinc (the_s2var_name_counter) in $SYM.symbol_make_string ($CNTR.tostring_prefix_count ("$", n)) end // end of [s2var_name_make] fn s2var_name_make_prefix (pre: string): symbol = let val n = $CNTR.counter_getinc (the_s2var_name_counter) in $SYM.symbol_make_string (pre + $CNTR.tostring_prefix_count ("$", n)) end // end of [s2var_name_make_prefix] (* ****** ****** *) local assume s2var_type = ref (s2var_struct) in // in of [local] implement s2var_make_id_srt (id, s2t) = let // val stamp = $STMP.s2var_stamp_make () val (pfgc, pfat | p) = ptr_alloc () prval () = free_gc_elim {s2var_struct?} (pfgc) // val () = p->s2var_sym := id val () = p->s2var_srt := s2t val () = p->s2var_tmplev := 0 val () = p->s2var_sVarset := s2Varset_nil () val () = p->s2var_stamp := stamp // in ref_make_view_ptr (pfat | p) end // end of [s2var_make_id_srt] implement s2var_get_sym (s2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (s2v) in p->s2var_sym end // end of [s2var_get_sym] implement s2var_get_srt (s2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (s2v) in p->s2var_srt end // end of [s2var_get_srt] implement s2var_get_tmplev (s2v) = let val (vbox pf | p) = ref_get_view_ptr (s2v) in p->s2var_tmplev end // end of [s2var_get_tmplev] implement s2var_set_tmplev (s2v, lev) = let val (vbox pf | p) = ref_get_view_ptr (s2v) in p->s2var_tmplev := lev end // end of [s2var_set_tmplev] implement s2var_get_sVarset (s2v) = let val (vbox pf | p) = ref_get_view_ptr (s2v) in p->s2var_sVarset end // end of [s2var_get_sVarset] implement s2var_set_sVarset (s2v, xs) = let val (vbox pf | p) = ref_get_view_ptr (s2v) in p->s2var_sVarset := xs end // end of [s2var_set_sVarset] implement s2varlst_set_sVarset (s2vs, xs) = case+ s2vs of | list_cons (s2v, s2vs) => ( s2var_set_sVarset (s2v, xs); s2varlst_set_sVarset (s2vs, xs) ) // end of [list_cons] | list_nil () => () // end of [s2varlst_set_sVarset] implement s2var_get_stamp (s2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (s2v) in p->s2var_stamp end // end of [s2var_get_stamp] end // end of [local] (* ****** ****** *) implement s2var_is_bool (s2v) = let val s2t = s2var_get_srt (s2v) in s2rt_is_bool (s2t) end // end of [s2var_is_bool] (* ****** ****** *) implement s2var_make_srt (s2t) = let val id = s2var_name_make () in s2var_make_id_srt (id, s2t) end // end of [s2var_make_srt] implement s2var_dup (s2v0) = let val id0 = s2var_get_sym s2v0 val s2t0 = s2var_get_srt s2v0 val id_new = s2var_name_make_prefix ($SYM.symbol_get_name id0) in s2var_make_id_srt (id_new, s2t0) end // end of [s2var_dup] (* ****** ****** *) implement lt_s2var_s2var (x1, x2) = (compare (x1, x2) < 0) // end of [lt_s2var_s2var] implement lte_s2var_s2var (x1, x2) = (compare (x1, x2) <= 0) // end of [lte_s2var_s2var] implement eq_s2var_s2var (x1, x2) = (compare (x1, x2) = 0) // end of [eq_s2var_s2var] implement neq_s2var_s2var (x1, x2) = (compare (x1, x2) != 0) // end of [neq_s2var_s2var] implement compare_s2var_s2var (x1, x2) = let (* val () = $effmask_all ( print "compare_s2var_s2var: x1 = "; print_s2var x1; print_newline (); print "compare_s2var_s2var: x2 = "; print_s2var x2; print_newline (); ) // end of [val] *) in compare (s2var_get_stamp (x1), s2var_get_stamp (x2)) end // end of [compare_s2var_s2var] implement compare_s2vsym_s2vsym (x1, x2) = ( $SYM.compare_symbol_symbol (s2var_get_sym (x1), s2var_get_sym (x2)) ) // end of [compare_s2vsym_s2vsym] (* ****** ****** *) implement fprint_s2var (out, s2v) = let val () = $SYM.fprint_symbol (out, s2var_get_sym s2v) // (* val () = fprint_string (out, "(") val () = $STMP.fprint_stamp (out, s2var_get_stamp s2v) val () = fprint_string (out, ")") // *) in // empty end // end of [fprint_s2var] implement print_s2var (x) = fprint_s2var (stdout_ref, x) implement prerr_s2var (x) = fprint_s2var (stderr_ref, x) implement fprint_s2varlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s2var) // end of [fprint_s2varlst] implement print_s2varlst (xs) = fprint_s2varlst (stdout_ref, xs) implement prerr_s2varlst (xs) = fprint_s2varlst (stderr_ref, xs) (* ****** ****** *) local // staload FS = "libats/SATS/funset_avltree.sats" staload LS = "libats/SATS/linset_avltree.sats" staload _(*FS*) = "libats/DATS/funset_avltree.dats" staload _(*LS*) = "libats/DATS/linset_avltree.dats" // val cmp = lam ( s2v1: s2var, s2v2: s2var ) : int = compare_s2var_s2var (s2v1, s2v2) // end of [val] // assume s2varset_type = $FS.set (s2var) assume s2varset_vtype = $LS.set (s2var) // in (* in-of-local *) implement s2varset_nil ((*void*)) = $FS.funset_make_nil () implement s2varset_add (xs, x) = xs where { var xs = xs val _(*rplced*) = $FS.funset_insert (xs, x, cmp) } (* end of [s2varset_add] *) implement s2varset_del (xs, x) = xs where { var xs = xs val _(*removed*) = $FS.funset_remove (xs, x, cmp) } (* end of [s2varset_del] *) implement s2varset_union (xs, ys) = $FS.funset_union (xs, ys, cmp) implement s2varset_listize (xs) = $FS.funset_listize (xs) (* ****** ****** *) implement s2varset_vt_nil ((*void*)) = $LS.linset_make_nil () implement s2varset_vt_add (xs, x) = xs where { var xs = xs val _(*replaced*) = $LS.linset_insert (xs, x, cmp) } // end of [s2varset_vt_add] implement s2varset_vt_del (xs, x) = xs where { var xs = xs val _(*removed*) = $LS.linset_remove (xs, x, cmp) } // end of [s2varset_vt_del] implement s2varset_vt_delist (xs1, xs2) = let fun loop {n:nat} .. ( xs1: s2varset_vt, xs2: list (s2var, n) ) : s2varset_vt = case+ xs2 of | list_cons (x2, xs2) => loop (s2varset_vt_del (xs1, x2), xs2) | list_nil () => xs1 // end of [loop] in loop (xs1, xs2) end // end of [s2varset_vt_delist] implement s2varset_vt_union (xs, ys) = $LS.linset_union (xs, ys, cmp) implement s2varset_vt_free (xs) = $LS.linset_free (xs) implement s2varset_vt_listize_free (xs) = $LS.linset_listize_free (xs) end // end of [local] (* ****** ****** *) local staload MSET = "libats/SATS/funmset_listord.sats" staload _ = "libats/DATS/funmset_listord.dats" assume s2varmset_type = $MSET.mset (s2var) val cmp = lam ( s2v1: s2var, s2v2: s2var ) : int = compare_s2var_s2var (s2v2, s2v1) // first-in-first-occur // end of [val] in // in of [local] implement s2varmset_nil () = $MSET.funmset_make_nil () implement s2varmset_sing (x) = $MSET.funmset_make_sing (x) implement s2varmset_pair (x1, x2) = $MSET.funmset_make_pair (x1, x2, cmp) // end of [s2varmset_pair] implement s2varmset_gte (xs1, xs2) = $MSET.funmset_compare (xs1, xs2, cmp) >= 0 // end of [s2varmset_gte] implement s2varmset_is_equal (xs1, xs2) = $MSET.funmset_is_equal (xs1, xs2, cmp) // end of [s2varmset_is_equal] implement s2varmset_add (xs, x) = xs where { var xs = xs val () = $MSET.funmset_insert (xs, x, cmp) } // end of [s2varmset_add] implement s2varmset_del (xs, x) = xs where { var xs = xs val _(*removed*) = $MSET.funmset_remove (xs, x, cmp) } // end of [s2varmset_del] implement s2varmset_union (xs1, xs2) = $MSET.funmset_union (xs1, xs2, cmp) // end of [s2varmset_union] implement s2varmset_listize (xs) = $MSET.funmset_listize (xs) implement fprint_s2varmset (out, xs) = let // val xs = $MSET.funmset_mlistize(xs) val () = fprint_s2varlst (out, $UN.castvwtp1 {s2varlst} (xs)) val ((*freed*)) = list_vt_free (xs) // in end // end of [fprint_s2varmset] end // end of [local] (* ****** ****** *) local staload MAP = "libats/SATS/linmap_avltree.sats" staload _ = "libats/DATS/linmap_avltree.dats" val cmp = lam ( s2v1: s2var, s2v2: s2var ) : int = compare_s2var_s2var (s2v1, s2v2) // end of [val] assume s2varbindmap_vtype = $MAP.map (s2var, s2exp) in // in of [local] // implement s2varbindmap_make_nil ((*void*)) = $MAP.linmap_make_nil () // implement s2varbindmap_search (map, k) = let (* val () = ( println! ("s2varbindmap_search: k = ", k) ) (* end of [val] *) *) // var res: s2exp? // uninitized val found = $MAP.linmap_search (map, k, cmp, res) // in // if found then let prval() = opt_unsome{s2exp}(res) in Some_vt(res) end // end of [then] else let prval() = opt_unnone{s2exp}(res) in None_vt(*void*) end // end of [else] // end (* end of [s2varbindmap_search] *) // implement s2varbindmap_insert (map, k, x) = let (* val () = ( println! ("s2varbindmap_insert: k = ", k); println! ("s2varbindmap_insert: x = ", x); ) (* end of [val] *) *) // val x = s2hnf2exp (x) var res: s2exp? // unintialized // val replaced = $MAP.linmap_insert (map, k, x, cmp, res) // prval () = opt_clear (res) // in // nothing end // end of [s2varbindmap_insert] // implement s2varbindmap_remove (map, k) = let val _(*removed*) = $MAP.linmap_remove (map, k, cmp) in (*nothing*) end // end of [s2varbindmap_remove] // implement s2varbindmap_listize (map) = $MAP.linmap_listize (map) // end // end of [local] (* ****** ****** *) (* end of [pats_staexp2_svar.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_hidynexp_print.dats0000644000175000017500000005612713431250607022434 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: September, 2012 // (* ****** ****** *) // staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" // (* ****** ****** *) // staload "./pats_basics.sats" // (* ****** ****** *) // staload LAB = "./pats_label.sats" staload FIL = "./pats_filename.sats" // (* ****** ****** *) // staload SYN = "./pats_syntax.sats" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) implement fprint_hipat (out, x) = let // macdef prstr(str) = fprint_string (out, ,(str)) // in // case+ x.hipat_node of // | HIPany(d2v) => { val () = prstr "HIPany(" val () = fprint_d2var (out, d2v) val () = prstr ")" } (* end of [HIPany] *) | HIPvar(d2v) => { val () = prstr "HIPvar(" val () = fprint_d2var (out, d2v) val () = prstr ")" } (* end of [HIPvar] *) // | HIPcon ( pck, d2c, hse_sum, lhips ) => { val () = prstr "HIPcon(" val () = fprint_d2con (out, d2c) val () = prstr "(" val () = fprint_hisexp (out, hse_sum) val () = prstr "; " val () = fprint_labhipatlst (out, lhips) val () = prstr ")" val () = prstr ")" } | HIPcon_any(pck, d2c) => { val () = prstr "HIPcon_any(" val () = fprint_d2con (out, d2c) val () = prstr ")" } // | HIPint(i) => { val () = prstr "HIPint(" val () = fprint_int (out, i) val () = prstr ")" } | HIPintrep (intrep) => { val () = prstr "HIPintrep(" val () = fprint_string (out, intrep) val () = prstr ")" } | HIPbool(b) => { val () = prstr "HIPbool(" val () = fprint_bool (out, b) val () = prstr ")" } | HIPchar(c) => { val () = prstr "HIPchar(" val () = fprint_char (out, c) val () = prstr ")" } | HIPstring(str) => { val () = prstr "HIPstring(" val () = fprint_string (out, str) val () = prstr ")" } | HIPfloat(rep) => { val () = prstr "HIPfloat(" val () = fprint_string (out, rep) val () = prstr ")" } // | HIPi0nt(tok) => { val () = prstr "HIPi0nt(" val () = $SYN.fprint_i0nt (out, tok) val () = prstr ")" } | HIPf0loat(tok) => { val () = prstr "HIPf0loat(" val () = $SYN.fprint_f0loat (out, tok) val () = prstr ")" } // end of [HIPf0lat] // | HIPempty((*void*)) => prstr "HIPempty()" // (* | HIPlst ( hse_elt, hips_elt ) => { val () = prstr "HIPlst(" val () = fprint_hisexp (out, hse_elt) val () = prstr "; " val () = fprint_hipatlst (out, hips_elt) val () = prstr ")" } // end of [HIPlst] *) // | HIPrec ( knd, pck, lhips, hse_rec ) => { val () = prstr "HIPrec(" val () = fprintf (out, "knd= %i", @(knd)) val () = prstr "; " val () = fprint_labhipatlst (out, lhips) val () = prstr ")" } // end of [HIPrec] // | HIPrefas (d2v, hip) => { val () = prstr "HIPrefas(" val () = fprint_d2var (out, d2v) val () = prstr ", " val () = fprint_hipat (out, hip) val () = prstr (")") } (* end of [HIPrefas] *) // | HIPann (hip, ann) => { val () = prstr "HIPann(" val () = fprint_hipat (out, hip) val () = prstr " : " val () = fprint_hisexp (out, ann) val () = prstr ")" } (* end of [HIPann] *) // | HIPerr ((*void*)) => prstr "HIPerr()" // (* | _ => { val () = fprint_string (out, "HIP...(...)") } // end of [_] *) // end // end of [fprint_hipat] implement print_hipat (x) = fprint_hipat (stdout_ref, x) implement prerr_hipat (x) = fprint_hipat (stderr_ref, x) implement fprint_hipatlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_hipat) // end of [fprint_hipatlst] extern fun fprint_labhipat : fprint_type (labhipat) implement fprint_labhipat (out, lx) = { val LABHIPAT (l, x) = lx val () = $LAB.fprint_label (out, l) val () = fprint_string (out, "= ") val () = fprint_hipat (out, x) } // end of [fprint_labhipat] implement fprint_labhipatlst (out, lxs) = $UT.fprintlst (out, lxs, ", ", fprint_labhipat) // end of [fprint_labhipatlst] (* ****** ****** *) implement fprint_hilab (out, hil) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ hil.hilab_node of | HILlab (lab) => { val () = prstr "HILlab(" val () = $LAB.fprint_label (out, lab) val () = prstr ")" } // end of [HILlab] | HILind (ind) => { val () = prstr "HILind(" val () = $UT.fprintlst (out, ind, ", ", fprint_hidexp) val () = prstr ")" } // end of [HILind] // end // end of [fprint_hilab] implement fprint_hilablst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_hilab) // end of [fprint_hilablst] (* ****** ****** *) extern fun fprint_higmat : fprint_type (higmat) extern fun fprint_hiclau : fprint_type (hiclau) (* ****** ****** *) implement fprint_hidexp (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ x.hidexp_node of // | HDEcst (d2c) => { val () = prstr "HDEcst(" val () = fprint_d2cst (out, d2c) val () = prstr ")" } | HDEvar (d2v) => { val () = prstr "HDEvar(" val () = fprint_d2var (out, d2v) val () = prstr ")" } // | HDEint (i) => { val () = prstr "HDEint(" val () = fprint_int (out, i) val () = prstr ")" } | HDEintrep (rep) => { val () = prstr "HDEintrep(" val () = fprint_string (out, rep) val () = prstr ")" } | HDEbool (b) => { val () = prstr "HDEbool(" val () = fprint_bool (out, b) val () = prstr ")" } | HDEchar (c) => { val () = prstr "HDEchar(" val () = fprint_char (out, c) val () = prstr ")" } | HDEfloat (rep) => { val () = prstr "HDEfloat(" val () = fprint_string (out, rep) val () = prstr ")" } | HDEstring (str) => { val () = prstr "HDEstring(" val () = fprint_string (out, str) val () = prstr ")" } // | HDEi0nt (tok) => { val () = prstr "HDEi0nt(" val () = $SYN.fprint_i0nt (out, tok) val () = prstr ")" } | HDEf0loat (tok) => { val () = prstr "HDEf0loat(" val () = $SYN.fprint_f0loat (out, tok) val () = prstr ")" } // | HDEcstsp (cst) => { val () = prstr "HDEcstsp(" val () = $SYN.fprint_cstsp (out, cst) val () = prstr ")" } // | HDEtyrep (hse) => { val () = prstr "HDEtyrep(" val () = fprint_hisexp (out, hse) val () = prstr ")" } // | HDEtop () => prstr "HDEtop()" | HDEempty () => prstr "HDEempty()" | HDEignore (hde) => { val () = prstr "HDEignore(" val () = fprint_hidexp (out, hde) val () = prstr ")" } // | HDEcastfn (d2c, arg) => { val () = prstr "HDEcastfn(" val () = fprint_d2cst (out, d2c) val () = prstr ", " val () = fprint_hidexp (out, arg) val () = prstr ")" } // | HDEextval (name) => { val () = prstr "HDEextval(" val () = prstr "\"" val () = fprint_string (out, name) val () = prstr "\"" val () = prstr ")" } // | HDEextfcall (_fun, _arg) => { val () = prstr "HDEextfcall(" val () = prstr "\"" val () = fprint_string (out, _fun) val () = prstr "\"" val () = prstr "; " val () = fprint_hidexplst (out, _arg) val () = prstr ")" } | HDEextmcall (_obj, _mtd, _arg) => { val () = prstr "HDEextmcall(" val () = fprint_hidexp (out, _obj) val () = prstr "; " val () = prstr "\"" val () = fprint_string (out, _mtd) val () = prstr "\"" val () = prstr "; " val () = fprint_hidexplst (out, _arg) val () = prstr ")" } // | HDEcon ( d2c, hse_sum, lhdes ) => { val () = prstr "HDEcon(" val () = fprint_d2con (out, d2c) val () = prstr "(" val () = fprint_hisexp (out, hse_sum) val () = prstr "; " val () = fprint_labhidexplst (out, lhdes) val () = prstr ")" val () = prstr ")" } // end of [HDEcon] // | HDEtmpcst (d2c, t2mas) => { val () = prstr "HDEtmpcst(" val () = fprint_d2cst (out, d2c) val () = prstr "<" val () = fpprint_t2mpmarglst (out, t2mas) val () = prstr ">" val () = prstr ")" } | HDEtmpvar (d2v, t2mas) => { val () = prstr "HDEtmpvar(" val () = fprint_d2var (out, d2v) val () = prstr "<" val () = fpprint_t2mpmarglst (out, t2mas) val () = prstr ">" val () = prstr ")" } // | HDEfoldat () => prstr "HDEfoldat()" | HDEfreeat (hde) => { val () = prstr "HDEfreeat(" val () = fprint_hidexp (out, hde) val () = prstr ")" } // | HDElet (hids, hde) => { val () = prstr "HDElet(\n" val () = fprint_hideclist (out, hids) val () = prstr "**in**\n" val () = fprint_hidexp (out, hde) val () = prstr "\n)" } // | HDEapp ( _fun, hse_fun, _arg ) => { val () = prstr "HDEapp(" val () = fprint_hidexp (out, _fun) val () = prstr "(" val () = fprint_hisexp (out, hse_fun) val () = prstr "; " val () = fprint_hidexplst (out, _arg) val () = prstr ")" val () = prstr ")" } // | HDEif ( _cond, _then, _else ) => { val () = prstr "HDEif(" val () = fprint_hidexp (out, _cond) val () = prstr "; " val () = fprint_hidexp (out, _then) val () = prstr "; " val () = fprint_hidexp (out, _else) val () = prstr ")" } // end of [HDEif] | HDEsif ( _cond, _then, _else ) => { val () = prstr "HDEsif(" val () = fpprint_s2exp (out, _cond) val () = prstr "; " val () = fprint_hidexp (out, _then) val () = prstr "; " val () = fprint_hidexp (out, _else) val () = prstr ")" } // end of [HDEsif] // | HDEcase ( knd, hdes, hcls ) => { val () = prstr "HDEcase(\n" val () = fprint_caskind (out, knd) val () = prstr "\n" val () = fprint_hidexplst (out, hdes) val () = prstr "\n" val () = $UT.fprintlst (out, hcls, "\n", fprint_hiclau) val () = prstr "\n)" } // end of [HDEcase] // | HDElst ( lin, hse_elt, hdes ) => { val () = prstr "HDElst(" val () = fprintf (out, "lin= %i", @(lin)) val () = prstr "; " val () = fprint_hisexp (out, hse_elt) val () = prstr "; " val () = fprint_hidexplst (out, hdes) val () = prstr ")" } // end of [HDElst] | HDErec ( knd, lhdes, hse_rec ) => { val () = prstr "HDErec(" val () = fprintf (out, "knd= %i", @(knd)) val () = prstr "; " val () = fprint_labhidexplst (out, lhdes) val () = prstr ")" } // end of [HDErec] | HDEseq (hdes) => { val () = prstr "HDEseq(" val () = fprint_hidexplst (out, hdes) val () = prstr ")" } // | HDEselab ( hde, hse_flt, hils ) => { val () = prstr "HDEselab(" val () = fprint_hidexp (out, hde) val () = prstr "; " val () = fprint_hisexp (out, hse_flt) val () = prstr "; " val () = fprint_hilablst (out, hils) val () = prstr ")" } // | HDEptrofvar (d2v) => { val () = prstr "HDEptrofvar(" val () = fprint_d2var (out, d2v) val () = prstr ")" } | HDEptrofsel (hde, hse_rt, hils) => { val () = prstr "HDEptrofsel(" val () = fprint_hidexp (out, hde) val () = prstr "(" val () = fprint_hisexp (out, hse_rt) val () = prstr ")" val () = prstr "[" val () = fprint_hilablst (out, hils) val () = prstr "]" val () = prstr ")" } // | HDErefarg (knd, freeknd, hde) => { val () = prstr "HDErefarg(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, freeknd) val () = prstr "; " val () = fprint_hidexp (out, hde) val () = prstr ")" } // | HDEselvar (d2v, hse_rt, hils) => { val () = prstr "HDEselvar(" val () = fprint_d2var (out, d2v) val () = prstr "(" val () = fprint_hisexp (out, hse_rt) val () = prstr ")" val () = prstr "[" val () = fprint_hilablst (out, hils) val () = prstr "]" val () = prstr ")" } | HDEselptr (hde, hse_rt, hils) => { val () = prstr "HDEselptr(" val () = fprint_hidexp (out, hde) val () = prstr "(" val () = fprint_hisexp (out, hse_rt) val () = prstr ")" val () = prstr "[" val () = fprint_hilablst (out, hils) val () = prstr "]" val () = prstr ")" } // | HDEassgn_var ( d2v_l, hse_rt, hils, hde_r ) => { val () = prstr "HDEassgn_var(" val () = fprint_d2var (out, d2v_l) val () = prstr "(" val () = fprint_hisexp (out, hse_rt) val () = prstr ")" val () = prstr "[" val () = fprint_hilablst (out, hils) val () = prstr "]" val () = prstr " := " val () = fprint_hidexp (out, hde_r) val () = prstr ")" } | HDEassgn_ptr ( hde_l, hse_rt, hils, hde_r ) => { val () = prstr "HDEassgn_ptr(" val () = fprint_hidexp (out, hde_l) val () = prstr "(" val () = fprint_hisexp (out, hse_rt) val () = prstr ")" val () = prstr "[" val () = fprint_hilablst (out, hils) val () = prstr "]" val () = prstr " := " val () = fprint_hidexp (out, hde_r) val () = prstr ")" } // | HDExchng_var ( d2v_l, hse_rt, hils, hde_r ) => { val () = prstr "HDExchng_var(" val () = fprint_d2var (out, d2v_l) val () = prstr "(" val () = fprint_hisexp (out, hse_rt) val () = prstr ")" val () = prstr "[" val () = fprint_hilablst (out, hils) val () = prstr "]" val () = prstr " := " val () = fprint_hidexp (out, hde_r) val () = prstr ")" } | HDExchng_ptr ( hde_l, hse_rt, hils, hde_r ) => { val () = prstr "HDExchng_ptr(" val () = fprint_hidexp (out, hde_l) val () = prstr "(" val () = fprint_hisexp (out, hse_rt) val () = prstr ")" val () = prstr "[" val () = fprint_hilablst (out, hils) val () = prstr "]" val () = prstr " := " val () = fprint_hidexp (out, hde_r) val () = prstr ")" } // | HDEarrpsz ( hse_elt, hdes_elt, asz ) => { val () = prstr "HDEarrpsz(" val () = fprint_hisexp (out, hse_elt) val () = prstr "; " val () = fprint_hidexplst (out, hdes_elt) val () = prstr "; " val () = fprint_int (out, asz) val () = prstr ")" } | HDEarrinit ( hse_elt, hde_asz, hdes_elt, asz ) => { val () = prstr "HDEarrinit(" val () = fprint_hisexp (out, hse_elt) val () = prstr "; " val () = fprint_hidexp (out, hde_asz) val () = prstr "; " val () = fprint_hidexplst (out, hdes_elt) val () = prstr ")" } // | HDEraise(hde) => { val () = prstr "HDEraise(" val () = fprint_hidexp (out, hde) val () = prstr ")" } // | HDEvararg(hdes) => { val () = prstr "HDEvararg(" val () = fprint_hidexplst (out, hdes) val ((*closing*)) = prstr ")" } // (* | HDEvcopyenv (d2v) => HX: HDEvar(d2v) *) // | HDEtempenver(d2vs) => { val () = prstr "HDEtempenver(" val () = fprint_d2varlst (out, d2vs) val () = prstr ")" } // | HDElam (knd, _arg, _body) => { val () = prstr "HDElam(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_hipatlst (out, _arg) val () = prstr "; " val () = fprint_hidexp (out, _body) val () = prstr ")" } // end of [HDElam] // | HDEfix (knd, f_d2v, hde_def) => { val () = prstr "HDEfix(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_d2var (out, f_d2v) val () = prstr "; " val () = fprint_hidexp (out, hde_def) val () = prstr ")" } // end of [HDEfix] // | HDEdelay (hde) => { val () = prstr "HDEdelay(" val () = fprint_hidexp (out, hde) val () = prstr ")" } | HDEldelay (hde1, hde2) => { val () = prstr "HDEldelay(" val () = fprint_hidexp (out, hde1) val () = prstr "; " val () = fprint_hidexp (out, hde2) val () = prstr ")" } (* end of [HDEldelay] *) // | HDElazyeval (lin, hde) => { val () = prstr "HDElazyeval(" val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_hidexp (out, hde) val () = prstr ")" } // | HDEloop _ => { val () = prstr "HDEloop(...)" } | HDEloopexn (knd) => { val () = prstr "HDEloopexn(" val () = fprint_int (out, knd) val () = prstr ")" } // | HDEtrywith (hde, hicls) => { val () = prstr "HDEtrywith(" val () = fprint_hidexp (out, hde) val () = prstr "; " val () = fprint_string (out, "...") val () = prstr ")" } // | HDEerrexp ((*void*)) => prstr "HDEerrexp()" // (* | _ => { val () = fprint_string (out, "HDE...(...)") } // end of [_] *) // end // end of [fprint_hidexp] implement print_hidexp (x) = fprint_hidexp (stdout_ref, x) implement prerr_hidexp (x) = fprint_hidexp (stderr_ref, x) implement fprint_hidexplst (out, xs) = $UT.fprintlst (out, xs, "; ", fprint_hidexp) // end of [fprint_hidexplst] implement fprint_hidexpopt (out, opt) = $UT.fprintopt (out, opt, fprint_hidexp) // end of [fprint_hidexpopt] (* ****** ****** *) extern fun fprint_labhidexp : fprint_type (labhidexp) implement fprint_labhidexp (out, lx) = { val LABHIDEXP (l, x) = lx val () = $LAB.fprint_label (out, l) val () = fprint_string (out, "= ") val () = fprint_hidexp (out, x) } // end of [fprint_labhidexp] implement fprint_labhidexplst (out, lxs) = $UT.fprintlst (out, lxs, "; ", fprint_labhidexp) // end of [fprint_labhidexplst] (* ****** ****** *) implement fprint_higmat (out, x) = { val () = fprint_string (out, "HIGMAT(") val () = fprint_hidexp (out, x.higmat_exp) val () = fprint_string (out, "; ") val () = $UT.fprintopt (out, x.higmat_pat, fprint_hipat) val () = fprint_string (out, ")") } // end of [fprint_higmat] (* ****** ****** *) implement fprint_hiclau (out, x) = { val () = fprint_string (out, "HICLAU(") val () = fprint_hipatlst (out, x.hiclau_pat) val () = fprint_string (out, " => ") val () = fprint_hidexp (out, x.hiclau_body) val () = fprint_string (out, ")") } // end of [fprint_hiclau] (* ****** ****** *) // implement fprint_hidecl (out, hid) = let // macdef prstr(str) = fprint_string(out, ,(str)) // in (* in-of-let *) // case+ hid.hidecl_node of // case+ // | HIDnone() => prstr "HIDnone()" // | HIDlist(hids) => { val () = prstr "HIDlist(\n" val () = $UT.fprintlst (out, hids, "\n", fprint_hidecl) // end of [val] val () = prstr "\n)" } // | HIDsaspdec _ => prstr "HIDsaspdec(...)" | HIDreassume _ => prstr "HIDreassume(...)" // | HIDextcode (knd, pos, code) => { val () = prstr "HIDextcode(" val () = fprintf ( out, "knd=%i, pos=%i, code=...", @(knd, pos) ) (* fprintf *) val () = prstr ")" } (* end of [HIDextcode] *) // | HIDdatdecs (knd, s2cs) => { val () = prstr "HIDdatdecs(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_s2cstlst (out, s2cs) val () = prstr ")" } // | HIDexndecs (d2cs) => { val () = prstr "HIDexndecs(" val () = fprint_d2conlst (out, d2cs) val () = prstr ")" } // | HIDdcstdecs (dck, d2cs) => { val () = prstr "HIDdcstdecs(" val () = fprint_dcstkind (out, dck) val () = prstr "; " val () = fprint_d2cstlst (out, d2cs) val () = prstr ")" } // | HIDfundecs (knd, decarg, hfds) => { val () = prstr "HIDfundecs(\n" val () = $UT.fprintlst (out, hfds, "\n", fprint_hifundec) // end of [val] val () = prstr "\n)" } // end of [HIDfundec] // | HIDvaldecs (knd, hvds) => { val () = prstr "HIDvaldecs(\n" val () = $UT.fprintlst (out, hvds, "\n", fprint_hivaldec) // end of [val] val () = prstr "\n)" } // end of [HIDvaldec] | HIDvaldecs_rec (knd, hvds) => { val () = prstr "HIDvaldecs_rec(\n" val () = $UT.fprintlst (out, hvds, "\n", fprint_hivaldec) // end of [val] val () = prstr "\n)" } // end of [HIDvaldec_rec] // | HIDvardecs (hvds) => { val () = prstr "HIDvardecs(\n" val () = $UT.fprintlst (out, hvds, "\n", fprint_hivardec) // end of [val] val () = prstr "\n)" } // end of [HIDvardec] // | HIDimpdec (knd, himpdec) => { val () = prstr "HIDimpdec(\n" val () = fprint_hiimpdec(out, himpdec) val () = prstr "\n)" } (* end of [HIDimpdec] *) // | HIDinclude (knd, hids) => { val () = prstr("HIDinclude(") val () = fprint_int(out, knd) val () = prstr "\n" val () = $UT.fprintlst (out, hids, "\n", fprint_hidecl) // end of [val] val () = prstr "\n)" } (* end of [HIDinclude] *) // | HIDstaload (idopt, cfil, _, _, _) => { val () = prstr "HIDstaload(" val () = $FIL.fprint_filename_full(out, cfil) val () = prstr ")" } (* end of [HIDstaload] *) | HIDstaloadloc (pfil, nspace, hids) => { val () = prstr "HIDstaloadloc(" val () = $FIL.fprint_filename_full(out, pfil) val () = $SYM.fprint_symbol(out, nspace) val () = prstr ")" } (* end of [HIDstaloadloc] *) // | _ (* rest-of-hidecl *) => let val () = prstr "HID...(...)" in (*nothing*) end // end // end of [fprint_hidecl] // implement print_hidecl (hid) = fprint_hidecl(stdout_ref, hid) implement prerr_hidecl (hid) = fprint_hidecl(stderr_ref, hid) // (* ****** ****** *) implement fprint_hideclist (out, hids) = let in // case+ hids of | list_cons (hid, hids) => let val () = fprint_hidecl (out, hid) val () = fprint_newline (out) in fprint_hideclist (out, hids) end // end of [list_cons] | list_nil () => () // end // end of [fprint_hideclist] (* ****** ****** *) implement fprint_hiimpdec (out, himpdec) = { val () = fprint_d2cst (out, himpdec.hiimpdec_cst) val () = fprint_string (out, " = ") val () = fprint_hidexp (out, himpdec.hiimpdec_def) } // end of [fprint_hiimpdec] (* ****** ****** *) implement fprint_hifundec (out, hvd) = { val () = fprint_d2var (out, hvd.hifundec_var) val () = fprint_string (out, " = ") val () = fprint_hidexp (out, hvd.hifundec_def) } // end of [fprint_hifundec] implement fprint_hivaldec (out, hvd) = { val () = fprint_hipat (out, hvd.hivaldec_pat) val () = fprint_string (out, " = ") val () = fprint_hidexp (out, hvd.hivaldec_def) } // end of [fprint_hivaldec] implement fprint_hivardec (out, hvd) = let macdef prstr (s) = fprint_string (out, ,(s)) val () = fprint_d2var (out, hvd.hivardec_dvar_ptr) val () = prstr " : " val () = fprint_hisexp (out, hvd.hivardec_type) val () = prstr " = " val () = $UT.fprintopt (out, hvd.hivardec_init, fprint_hidexp) in // nothing end // end of [fprint_hivardec] (* ****** ****** *) (* end of [pats_hidynexp_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_codegen2.sats0000644000175000017500000000667413431250607021077 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: August, 2015 // (* ****** ****** *) // staload S1E = "pats_staexp1.sats" // typedef e1xp = $S1E.e1xp typedef e1xplst = $S1E.e1xplst // (* ****** ****** *) // staload S2E = "pats_staexp2.sats" staload D2E = "pats_dynexp2.sats" // typedef s2rt = $S2E.s2rt typedef s2cst = $S2E.s2cst typedef s2var = $S2E.s2var typedef s2exp = $S2E.s2exp typedef d2cst = $D2E.d2cst typedef d2ecl = $D2E.d2ecl typedef d2eclist = $D2E.d2eclist // (* ****** ****** *) // fun datcon_test_e1xp(name: e1xp): bool fun datcontag_test_e1xp(name: e1xp): bool // fun fprint_test_e1xp(name: e1xp): bool // fun absrec_test_e1xp(name: e1xp): bool // (* ****** ****** *) // fun codegen2_get_s2cst (name: e1xp): Option_vt(s2cst) // (* ****** ****** *) // fun codegen2_get_tydef (name: e1xp): Option_vt(s2cst) fun codegen2_get_datype (name: e1xp): Option_vt(s2cst) // (* ****** ****** *) // fun codegen2_get_d2cst (name: e1xp): Option_vt(d2cst) // (* ****** ****** *) // fun codegen2_emit_tmpcstapp (out: FILEref, d2cf: d2cst): void fun codegen2_emit_tmpcstimp (out: FILEref, d2cf: d2cst): void fun codegen2_emit_tmpcstdec (out: FILEref, d2cf: d2cst): void // (* ****** ****** *) // fun codegen2_emit_s2rt (out: FILEref, s2t0: s2rt): void fun codegen2_emit_s2cst (out: FILEref, s2c0: s2cst): void fun codegen2_emit_s2var (out: FILEref, s2v0: s2var): void fun codegen2_emit_s2exp (out: FILEref, s2e0: s2exp): void // (* ****** ****** *) // fun codegen2_process (out: FILEref, d2c0: d2ecl): void // (* ****** ****** *) // (* #codegen2(datcon, [datatype]) #codegen2(datcontag, [datatype]) *) // fun codegen2_datcon (out: FILEref, d2c0: d2ecl, xs: e1xplst): void fun codegen2_datcontag (out: FILEref, d2c0: d2ecl, xs: e1xplst): void // (* ****** ****** *) // (* #codegen2(fprint, [datatype], ) *) // fun codegen2_fprint (out: FILEref, d2c0: d2ecl, xs: e1xplst): void // (* ****** ****** *) // (* #codegen2(absrec, [rectype], ) *) // fun codegen2_absrec (out: FILEref, d2c0: d2ecl, xs: e1xplst): void // (* ****** ****** *) // fun d2eclist_codegen_out(out: FILEref, d2cs: d2eclist): void // (* ****** ****** *) (* end of [pats_codegen2.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_codegen2.dats0000644000175000017500000000751613431250607021054 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: August, 2015 // (* ****** ****** *) // staload LOC = "./pats_location.sats" // overload fprint with $LOC.fprint_location // (* ****** ****** *) // staload S1E = "./pats_staexp1.sats" // overload fprint with $S1E.fprint_e1xp // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_codegen2.sats" (* ****** ****** *) local fun auxerr_nil ( out: FILEref, d2c0: d2ecl ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") val () = fprint! (out, loc0, ": error(codegen2): #codegen2()\n") val () = fprint! (out, "*)\n") // } (* end of [auxerr_nil] *) fun auxerr_cons ( out: FILEref , d2c0: d2ecl, x: e1xp ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") val () = fprint! (out, loc0, ": error(codegen2): #codegen2(", x, ", ...)\n") val () = fprint! (out, "*)\n") // } (* end of [auxerr_cons] *) in (* in-of-local *) implement codegen2_process (out, d2c0) = let // (* val () = println! ("codegen2_process: d2c0 = ", d2c0) *) // macdef datcon_test = datcon_test_e1xp macdef datcontag_test = datcontag_test_e1xp // macdef fprint_test = fprint_test_e1xp // macdef absrec_test = absrec_test_e1xp // val-D2Ccodegen(knd, xs) = d2c0.d2ecl_node // in // case+ xs of // | list_cons (x, xs) => ( case+ x of // | _ when datcon_test(x) => codegen2_datcon(out, d2c0, xs) | _ when datcontag_test(x) => codegen2_datcontag(out, d2c0, xs) // | _ when fprint_test(x) => codegen2_fprint(out, d2c0, xs) // | _ when absrec_test(x) => codegen2_absrec(out, d2c0, xs) // | _ (*unrecognized*) => auxerr_cons(out, d2c0, x) // ) (* list_cons *) // | list_nil((*void*)) => auxerr_nil(out, d2c0) // end // end of [codegen2_process] end // end of [local] (* ****** ****** *) implement d2eclist_codegen_out (out, d2cs) = let // (* val () = println! ("d2eclist_codegen_out") *) // fun aux ( d2c0: d2ecl ) : void = ( case+ d2c0.d2ecl_node of // case+ | D2Ccodegen (knd, _) => ( if knd <= 2 then codegen2_process(out, d2c0) else () // end of [if] ) (* D2Ccodegen *) // | D2Clist(d2cs) => auxlst (d2cs) // | D2Clocal(_, d2cs_body) => auxlst (d2cs_body) // | _(*rest-of-d2ecl*) => () ) // and auxlst ( d2cs: d2eclist ) : void = ( // case+ d2cs of | list_nil() => () | list_cons(d2c, d2cs) => (aux(d2c); auxlst(d2cs)) // ) (* end of [auxlst] *) // in auxlst (d2cs) end // end of [d2eclist_codegen_out] (* ****** ****** *) (* end of [pats_codegen2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_jsonize.sats0000644000175000017500000001410613431250607021057 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload INTINF = "./pats_intinf.sats" typedef intinf = $INTINF.intinf (* ****** ****** *) staload "./pats_stamp.sats" staload "./pats_symbol.sats" staload "./pats_location.sats" (* ****** ****** *) staload "./pats_label.sats" (* ****** ****** *) (* ** HX-2013-11: JSON value representation *) datatype jsonval = // | JSONnul of () | JSONint of (int) | JSONintinf of (intinf) | JSONbool of (bool) | JSONfloat of (double) | JSONstring of (string) // | JSONlocation of (location) | JSONfilename of (filename) // | JSONlist of (jsonvalist) | JSONlablist of labjsonvalist | JSONoption of (jsonvalopt) // end of [jsonval] where jsonvalist = List (jsonval) and labjsonval = @(string, jsonval) and labjsonvalist = List0 (labjsonval) and jsonvalopt = Option (jsonval) (* ****** ****** *) // fun jsonval_int (x: int): jsonval fun jsonval_intinf (x: intinf): jsonval // fun jsonval_bool (x: bool): jsonval fun jsonval_double (x: double): jsonval fun jsonval_string (x: string): jsonval // (* ****** ****** *) // fun jsonval_location (loc: location): jsonval fun jsonval_filename (fil: filename): jsonval // (* ****** ****** *) // fun jsonval_sing (x: jsonval): jsonval fun jsonval_pair (x1: jsonval, x2: jsonval): jsonval // (* ****** ****** *) // fun jsonval_labval1 (l1: string, x1: jsonval): jsonval // fun jsonval_labval2 ( l1: string, x1: jsonval , l2: string, x2: jsonval ) : jsonval // end of [jsonval_labval2] // fun jsonval_labval3 ( l1: string, x1: jsonval , l2: string, x2: jsonval , l3: string, x3: jsonval ) : jsonval // end of [jsonval_labval3] // fun jsonval_labval4 ( l1: string, x1: jsonval , l2: string, x2: jsonval , l3: string, x3: jsonval , l4: string, x4: jsonval ) : jsonval // end of [jsonval_labval4] // fun jsonval_labval5 ( l1: string, x1: jsonval , l2: string, x2: jsonval , l3: string, x3: jsonval , l4: string, x4: jsonval , l5: string, x5: jsonval ) : jsonval // end of [jsonval_labval5] // fun jsonval_labval6 ( l1: string, x1: jsonval , l2: string, x2: jsonval , l3: string, x3: jsonval , l4: string, x4: jsonval , l5: string, x5: jsonval , l6: string, x6: jsonval ) : jsonval // end of [jsonval_labval6] // fun jsonval_labval7 ( l1: string, x1: jsonval , l2: string, x2: jsonval , l3: string, x3: jsonval , l4: string, x4: jsonval , l5: string, x5: jsonval , l6: string, x6: jsonval , l7: string, x7: jsonval ) : jsonval // end of [jsonval_labval7] // fun jsonval_labval8 ( l1: string, x1: jsonval , l2: string, x2: jsonval , l3: string, x3: jsonval , l4: string, x4: jsonval , l5: string, x5: jsonval , l6: string, x6: jsonval , l7: string, x7: jsonval , l8: string, x8: jsonval ) : jsonval // end of [jsonval_labval8] // (* ****** ****** *) // fun jsonval_conarglst (con: string, arglst: jsonvalist): jsonval // (* ****** ****** *) // fun jsonval_conarg0 (con: string): jsonval fun jsonval_conarg1 (con: string, arg: jsonval): jsonval fun jsonval_conarg2 (con: string, arg1: jsonval, arg2: jsonval): jsonval // fun jsonval_conarg3 ( con: string, arg1: jsonval, arg2: jsonval, arg3: jsonval ) : jsonval // end of [jsonval_conarg3] fun jsonval_conarg4 ( con: string , arg1: jsonval, arg2: jsonval, arg3: jsonval, arg4: jsonval ) : jsonval // end of [jsonval_conarg4] // (* ****** ****** *) // fun jsonval_none (): jsonval fun jsonval_some (x: jsonval): jsonval // (* ****** ****** *) // fun fprint_jsonval (out: FILEref, x: jsonval): void fun fprint_jsonvalist (out: FILEref, xs: jsonvalist): void fun fprint_labjsonvalist (out: FILEref, lxs: labjsonvalist): void // overload fprint with fprint_jsonval overload fprint with fprint_jsonvalist overload fprint with fprint_labjsonvalist // (* ****** ****** *) typedef jsonize_ftype (a:t@ype) = (a) -> jsonval (* ****** ****** *) fun jsonize_funclo : jsonize_ftype (funclo) (* ****** ****** *) fun jsonize_caskind : jsonize_ftype (caskind) (* ****** ****** *) fun jsonize_funkind : jsonize_ftype (funkind) fun jsonize_valkind : jsonize_ftype (valkind) (* ****** ****** *) fun jsonize_dcstkind : jsonize_ftype (dcstkind) (* ****** ****** *) fun jsonize_stamp : jsonize_ftype (stamp) fun jsonize_symbol : jsonize_ftype (symbol) fun jsonize_symbolopt : jsonize_ftype (symbolopt) (* ****** ****** *) fun jsonize_location : jsonize_ftype (location) fun jsonize_filename : jsonize_ftype (filename) (* ****** ****** *) fun jsonize_label : jsonize_ftype (label) (* ****** ****** *) fun jsonize_ignored{a:type} (x: a): jsonval (* ****** ****** *) // fun{a:t@ype} jsonize_list_fun (xs: List0 (a), f: jsonize_ftype (a)): jsonval // end of [jsonize_list_fun] // fun{a:t@ype} jsonize_option_fun (xs: Option (a), f: jsonize_ftype (a)): jsonval // end of [jsonize_option_fun] // (* ****** ****** *) (* end of [pats_jsonize.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env_termet.dats0000644000175000017500000001354713431250607023031 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_stamp.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans3_env.sats" (* ****** ****** *) implement s2explst_check_termet (loc0, s2es_met) = let // fun loop ( loc0: loc_t, s2es: s2explst ) : void = let in // case+ s2es of | list_cons (s2e, s2es) => let val isint = s2rt_is_int (s2e.s2exp_srt) val () = if isint then trans3_env_add_cnstr (c3nstr_termet_isnat (loc0, s2e)) // end of [val] in loop (loc0, s2es) end // end of [list_cons] | list_nil () => () // end of [list_nil] // end (* end of [loop] *) // in loop (loc0, s2es_met) end // end of [s2explst_check_termet] (* ****** ****** *) local // assume termetenv_push_v = unit_v // viewtypedef metbindlst_vt = List_vt @(stampset_vt, s2explst) // val the_metbindlst = ref_make_elt (list_vt_nil) // in // in of [local] implement termetenv_pop (pfpush | (*none*)) = let // vtypedef vt = @(stampset_vt, s2explst) // prval unit_v () = pfpush val (vbox pf | p) = ref_get_view_ptr (the_metbindlst) val-list_vt_cons (!p1_x, !p2_xs) = !p val () = stampset_vt_free (p1_x->0) val xs = !p2_xs val () = free@ {vt?}{0} (!p) val () = !p := xs // in (*nothing*) end // end of [termetenv_pop] implement termetenv_push (d2vs, s2es_met) = let // val ( vbox pf | p ) = ref_get_view_ptr (the_metbindlst) val ( ) = !p := list_vt_cons (@(d2vs, s2es_met), !p) // in (unit_v () | ()) end // end of [termetenv_push] implement termetenv_push_dvarlst (d2vs, s2es_met) = let vtypedef res = stampset_vt val res = stampset_vt_nil () fn f ( res: res, d2v: d2var ) : res = stampset_vt_add (res, d2var_get_stamp (d2v)) // end of [f] val res = list_fold_left_fun (f, res, d2vs) in termetenv_push (res, s2es_met) end // end of [termetenv_push_dvarlst] implement termetenv_get_termet (d2v) = let // vtypedef vt = @(stampset_vt, s2explst) vtypedef res = Option_vt (s2explst) fun loop {n:nat} .. ( xs: !list_vt (vt, n), d2v: stamp ) : res = let in // case+ xs of | list_vt_cons (!p1_x, !p2_xs) => let val ismem = stampset_vt_is_member (p1_x->0, d2v) val ans = ( if ismem then Some_vt (p1_x->1) else loop (!p2_xs, d2v) ) : res // end of [val] prval () = fold@ (xs) in ans end // end of [list_vt_cons] | list_vt_nil () => let prval () = fold@ xs in None_vt () end // end of [list_vt_nil] // end // end of [loop] // val (vbox pf | p) = ref_get_view_ptr (the_metbindlst) // in $effmask_ref (loop (!p, d2v)) end // end of [termetenv_get_termet] end // end of [local] implement s2exp_termet_instantiate (loc0, stamp, met) = let // val ans = termetenv_get_termet (stamp) // in // case+ ans of | ~Some_vt (met_bound) => let val c3t = c3nstr_termet_isdec (loc0, met, met_bound) in trans3_env_add_cnstr (c3t) end // end of [Some_vt] | ~None_vt () => let val s2p = s2exp_bool (false) in trans3_env_add_prop (loc0, s2p) end // end of [None_vt] // end // end of [s2exp_termet_instantiate] (* ****** ****** *) implement s2exp_metfun_load (s2e0, d2v0) = let // fun aux ( s2e0: s2exp , d2v0: d2var , s2ts0: &s2rtlst ) : Option_vt s2exp = let val s2f0 = s2exp2hnf (s2e0) val s2e0 = s2hnf2exp (s2f0) in // case+ s2e0.s2exp_node of | S2Efun ( fc, lin, s2fe, npf, s2es, s2e ) => let val ans = aux (s2e, d2v0, s2ts0) in case ans of | ~Some_vt (s2e) => Some_vt ( s2exp_fun_srt (s2e0.s2exp_srt, fc, lin, s2fe, npf, s2es, s2e) ) // end of [Some_vt] | ~None_vt () => None_vt () end // end of [S2Efun] | S2Emetfun ( _(*stampopt*), s2es, s2e ) => let val stamp = d2var_get_stamp (d2v0) val () = let val s2ts = list_map_fun (s2es, lam s2e =<0> s2e.s2exp_srt) in s2ts0 := list_of_list_vt (s2ts) end // end of [val] in Some_vt (s2exp_metfun (Some stamp, s2es, s2e)) end // end of [S2Emetfun] | S2Euni ( s2vs, s2ps, s2e ) => let val ans = aux (s2e, d2v0, s2ts0) in case+ ans of | ~Some_vt s2e => Some_vt (s2exp_uni (s2vs, s2ps, s2e)) | ~None_vt () => None_vt () end // end of [S2Euni] | _ => None_vt () // end // end of [aux] // var s2ts: s2rtlst = list_nil () // in // case+ aux (s2e0, d2v0, s2ts) of | ~Some_vt s2e => Some_vt @(s2e, s2ts) | ~None_vt () => None_vt () // end // end of [s2exp_metfun_load] (* ****** ****** *) (* end of [pats_trans3_env_termet.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp.sats0000644000175000017500000016130513431250607020503 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp (* ****** ****** *) staload LAB = "./pats_label.sats" typedef label = $LAB.label (* ****** ****** *) // staload FIL = "./pats_filename.sats" typedef filename = $FIL.filename // staload LOC = "./pats_location.sats" typedef loc_t = $LOC.location // (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol (* ****** ****** *) staload SYN = "./pats_syntax.sats" typedef i0nt = $SYN.i0nt typedef f0loat = $SYN.f0loat (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) // staload S2EUT = "./pats_staexp2_util.sats" vtypedef stasub = $S2EUT.stasub // (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) fun the_exndeclst_get (): hideclist fun the_exndeclst_add (hid: hidecl): void (* ****** ****** *) fun the_saspdeclst_get (): hideclist fun the_saspdeclst_add (hid: hidecl): void (* ****** ****** *) fun the_extypelst_get (): hideclist fun the_extypelst_add (hid: hidecl): void (* ****** ****** *) fun the_extcodelst_get (): hideclist fun the_extcodelst_add (hid: hidecl): void (* ****** ****** *) fun the_staloadlst_get (): hideclist fun the_staloadlst_add (hid: hidecl): void fun the_dynloadlst_get (): hideclist fun the_dynloadlst_add (hid: hidecl): void (* ****** ****** *) fun the_dynconlst_get (): d2conlst fun the_dynconlst_add (d2c: d2con): void (* ****** ****** *) fun the_dyncstlst_get (): d2cstlst fun the_dyncstlst_add (d2c: d2cst): void (* ****** ****** *) abstype tmplab_type typedef tmplab = tmplab_type typedef tmplabopt = Option (tmplab) (* ****** ****** *) fun tmplab_make (loc: loc_t): tmplab fun tmplab_get_loc (x: tmplab): loc_t fun tmplab_get_stamp (x: tmplab): stamp (* ****** ****** *) fun print_tmplab (x: tmplab): void fun prerr_tmplab (x: tmplab): void overload print with print_tmplab overload prerr with prerr_tmplab fun fprint_tmplab : fprint_type (tmplab) overload fprint with fprint_tmplab (* ****** ****** *) abstype tmpvar_type typedef tmpvar = tmpvar_type // typedef tmpvarlst = List (tmpvar) typedef tmpvaropt = Option (tmpvar) // vtypedef tmpvarlst_vt = List_vt (tmpvar) vtypedef tmpvaropt_vt = Option_vt (tmpvar) (* ****** ****** *) absvtype tmpvarset_vtype vtypedef tmpvarset_vt = tmpvarset_vtype absvtype tmpvarmap_vtype (a:type) vtypedef tmpvarmap_vt (a:type) = tmpvarmap_vtype (a) (* ****** ****** *) fun tmpvar_make (loc: loc_t, hse: hisexp): tmpvar fun tmpvar_make_ref (loc: loc_t, hse: hisexp): tmpvar fun tmpvar_make_ret (loc: loc_t, hse: hisexp): tmpvar (* ****** ****** *) fun tmpvar_copy_err (tmp: tmpvar): tmpvar (* ****** ****** *) // fun tmpvar_get_loc (tmp: tmpvar): loc_t // fun tmpvar_get_type (tmp: tmpvar): hisexp // fun tmpvar_isref (tmp: tmpvar): bool // tmpref? fun tmpvar_isret (tmp: tmpvar): bool // tmpret? fun tmpvar_iserr (tmp: tmpvar): bool // tmperr? // fun tmpvar_get_topknd (tmp: tmpvar): int // knd=0/1: local/(static)top // fun tmpvar_get_origin (tmp: tmpvar): tmpvaropt fun tmpvar_get_suffix (tmp: tmpvar): int // fun tmpvar_get_stamp (tmp: tmpvar): stamp // unicity // (* ****** ****** *) fun tmpvar_get_tailcal (tmp: tmpvar): int // if >= 2 fun tmpvar_inc_tailcal (tmp: tmpvar): void // incby 1 (* ****** ****** *) fun tmpvar_set_tyclo (tmp: tmpvar, fl: funlab): void (* ****** ****** *) // fun print_tmpvar (x: tmpvar): void fun prerr_tmpvar (x: tmpvar): void fun fprint_tmpvar : fprint_type (tmpvar) fun fprint_tmpvaropt : fprint_type (tmpvaropt) // overload print with print_tmpvar overload prerr with prerr_tmpvar overload fprint with fprint_tmpvar overload fprint with fprint_tmpvaropt // (* ****** ****** *) fun eq_tmpvar_tmpvar (x1: tmpvar, x2: tmpvar):<> bool overload = with eq_tmpvar_tmpvar fun compare_tmpvar_tmpvar (x1: tmpvar, x2: tmpvar):<> int overload compare with compare_tmpvar_tmpvar (* ****** ****** *) fun tmpvarset_vt_nil ():<> tmpvarset_vt fun tmpvarset_vt_free (xs: tmpvarset_vt):<> void fun tmpvarset_vt_add (xs: tmpvarset_vt, x: tmpvar):<> tmpvarset_vt fun tmpvarset_vt_listize (xs: !tmpvarset_vt):<> tmpvarlst_vt fun tmpvarset_vt_listize_free (xs: tmpvarset_vt):<> tmpvarlst_vt (* ****** ****** *) fun tmpvarmap_vt_nil {a:type} ():<> tmpvarmap_vt (a) fun tmpvarmap_vt_free {a:type} (map: tmpvarmap_vt(a)):<> void fun tmpvarmap_vt_search {a:type} (map: !tmpvarmap_vt(a), tmp: tmpvar): Option_vt (a) fun tmpvarmap_vt_insert {a:type} (map: &tmpvarmap_vt(a), tmp: tmpvar, x: a): bool(*found*) fun tmpvarmap_vt_remove {a:type} (map: &tmpvarmap_vt(a), tmp: tmpvar): bool(*found*) (* ****** ****** *) // abstype d2env_type // typedef d2env = d2env_type // typedef d2envlst = List (d2env) vtypedef d2envlst_vt = List_vt (d2env) // typedef d2envlstopt = Option (d2envlst) // (* ****** ****** *) fun d2var2env (d2v: d2var): d2env fun d2env_get_var (x: d2env):<> d2var fun d2env_get_type (x: d2env):<> hisexp fun d2env_make (d2v: d2var, hse: hisexp): d2env fun fprint_d2env : fprint_type (d2env) overload fprint with fprint_d2env fun fprint_d2envlst : fprint_type (d2envlst) overload fprint with fprint_d2envlst fun fprint_d2envlstopt : fprint_type (d2envlstopt) overload fprint with fprint_d2envlstopt (* ****** ****** *) absvtype d2envset_vtype vtypedef d2envset_vt = d2envset_vtype fun d2envset_vt_nil ():<> d2envset_vt fun d2envset_vt_free (xs: d2envset_vt): void fun d2envset_vt_ismem (xs: !d2envset_vt, x: d2env):<> bool fun d2envset_vt_add (xs: d2envset_vt, x: d2env):<> d2envset_vt fun d2envset_vt_listize (xs: !d2envset_vt):<> List_vt (d2env) fun d2envset_vt_listize_free (xs: d2envset_vt):<> List_vt (d2env) fun d2envlst2set (d2es: d2envlst): d2envset_vt (* ****** ****** *) // // HX: function label // abstype ccomp_funlab_type typedef funlab = ccomp_funlab_type typedef funlablst = List (funlab) vtypedef funlablst_vt = List_vt (funlab) typedef funlabopt = Option (funlab) vtypedef funlabopt_vt = Option_vt (funlab) // typedef funlablstopt = Option (funlablst) // fun print_funlab (x: funlab): void fun prerr_funlab (x: funlab): void overload print with print_funlab overload prerr with prerr_funlab // fun fprint_funlab : fprint_type (funlab) overload fprint with fprint_funlab fun fprint_funlablst : fprint_type (funlablst) overload fprint with fprint_funlablst // fun fprint_funlablstopt : fprint_type (funlablstopt) overload fprint with fprint_funlablstopt // (* ****** ****** *) // fun funlab_make ( name: string , level: int , hse0: hisexp , fcopt: fcopt_vt , qopt: d2cstopt , sopt: d2varopt , t2mas: t2mpmarglst , stamp: stamp ) : funlab // end of [funlab_make] // fun funlab_make_type (hse: hisexp): funlab // fun funlab_make_dcst_type (d2c: d2cst, hse: hisexp, opt: fcopt_vt): funlab fun funlab_make_dvar_type (d2v: d2var, hse: hisexp, opt: fcopt_vt): funlab // fun funlab_make_tmpcst_type ( d2c: d2cst, t2ms: t2mpmarglst, hse: hisexp, opt: fcopt_vt ) : funlab // endfun (* // // HX-2014-11-01: // Where is this needed? // fun funlab_make_tmpvar_type ( d2v: d2var, t2ms: t2mpmarglst, hse: hisexp, opt: fcopt_vt ) : funlab // endfun *) // (* ****** ****** *) // fun funlab_get_name (flab: funlab): string // fun funlab_get_level (flab: funlab): int // fun funlab_get_tmpknd (flab: funlab): int fun funlab_set_tmpknd (flab: funlab, knd: int): void // fun funlab_get_d2copt (flab: funlab): d2cstopt // global fun funlab_get_d2vopt (flab: funlab): d2varopt // static // fun funlab_get_type (flab: funlab): hisexp fun funlab_get_funclo (flab: funlab): funclo fun funlab_get_type_arg (flab: funlab): hisexplst fun funlab_get_type_res (flab: funlab): hisexp // fun funlab_get_ncopy (flab: funlab): int fun funlab_set_ncopy (flab: funlab, cnt: int): void fun funlab_incget_ncopy (flab: funlab): int // fun funlab_get_origin (flab: funlab): funlabopt fun funlab_set_origin (flab: funlab, opt: funlabopt): void // fun funlab_get_suffix (flab: funlab): int fun funlab_set_suffix (flab: funlab, sfx: int): void // fun funlab_get_tmparg (flab: funlab): t2mpmarglst // fun funlab_get_stamp (flab: funlab):<> stamp // (* ****** ****** *) fun funlab_is_envful (flab: funlab): bool (* ****** ****** *) // // HX: obtaining env+arg-list // fun funlab_get_type_fullarg (flab: funlab): hisexplst (* ****** ****** *) absvtype funlabset_vtype vtypedef funlabset_vt = funlabset_vtype fun funlabset_vt_nil (): funlabset_vt fun funlabset_vt_free (fls: funlabset_vt): void fun funlabset_vt_ismem (fls: !funlabset_vt, fl: funlab): bool fun funlabset_vt_add (fls: funlabset_vt, fl: funlab): funlabset_vt fun funlabset_vt_listize (fls: !funlabset_vt): funlablst_vt fun funlabset_vt_listize_free (fls: funlabset_vt): funlablst_vt fun funlablst2set (fls: funlablst): funlabset_vt fun fprint_funlabset_vt (out: FILEref, fls: !funlabset_vt): void overload fprint with fprint_funlabset_vt (* ****** ****** *) // // HX: function entry // abstype funent_type typedef funent = funent_type typedef funentlst = List (funent) typedef funentopt = Option (funent) vtypedef funentopt_vt = Option_vt (funent) // fun print_funent (x: funent): void overload print with print_funent fun prerr_funent (x: funent): void overload prerr with prerr_funent fun fprint_funent : fprint_type (funent) overload fprint with fprint_funent // (* ****** ****** *) fun funent_is_tmplt (feng: funent): bool (* ****** ****** *) fun funent_get_loc (fent: funent): loc_t // fun funent_get_lab (fent: funent): funlab // fun funent_get_level (fent: funent): int // fun funent_get_imparg (fent: funent): s2varlst fun funent_get_tmparg (fent: funent): s2explstlst // fun funent_get_tmpret (fent: funent): tmpvar // return value // fun funent_get_flablst (fent: funent): funlablst fun funent_get_flablst_fin (fent: funent): Option (funlablst) // fun funent_get_d2envlst (fent: funent): d2envlst fun funent_get_d2envlst_fin (fent: funent): Option (d2envlst) // fun funent_get_tmpvarlst (fent: funent): tmpvarlst // fun funent_get_fnxlablst (fent: funent): funlablst fun funent_set_fnxlablst (fent: funent, fls: funlablst): void = "patsopt_funent_set_fnxlablst" // (* ****** ****** *) (* // HX: transitive closure of called functions *) fun funent_eval_flablst (fent: funent): funlablst (* // HX: environvals occurring in called functions *) fun funent_eval_d2envlst (fent: funent): d2envlst // (* ****** ****** *) fun funlab_get_funent (flab: funlab): funentopt fun funlab_set_funent (flab: funlab, opt: funentopt): void (* ****** ****** *) fun the_funlablst_get (): funlablst fun the_funlablst_add (flab: funlab): void fun the_funlablst_addlst (fls: funlablst): void (* ****** ****** *) datatype tmpsub = | TMPSUBcons of (s2var, s2exp, tmpsub) | TMPSUBnil of () typedef tmpsubopt = Option (tmpsub) vtypedef tmpsubopt_vt = Option_vt (tmpsub) fun fprint_tmpsub : fprint_type (tmpsub) fun fprint_tmpsubopt : fprint_type (tmpsubopt) (* ****** ****** *) overload fprint with fprint_tmpsub overload fprint with fprint_tmpsubopt (* ****** ****** *) fun tmpsub2stasub (xs: tmpsub): stasub fun tmpsub_append (xs1: tmpsub, xs2: tmpsub): tmpsub (* ****** ****** *) datatype tmpcstmat = | TMPCSTMATnone of () | TMPCSTMATsome of (hiimpdec, tmpsub, int(*knd*)) | TMPCSTMATsome2 of (d2cst, s2explstlst, funlab) // end of [tmpcstmat] fun fprint_tmpcstmat : fprint_type (tmpcstmat) fun fprint_tmpcstmat_kind : fprint_type (tmpcstmat) // 1/0:found/not (* ****** ****** *) datatype tmpvarmat = | TMPVARMATnone of () | TMPVARMATsome of (hifundec, tmpsub, int(*knd*)) | TMPVARMATsome2 of (d2var, s2explstlst, funlab) // end of [tmpvarmat] fun fprint_tmpvarmat : fprint_type (tmpvarmat) fun fprint_tmpvarmat_kind : fprint_type (tmpvarmat) // 1/0:found/not (* ****** ****** *) overload fprint with fprint_tmpcstmat overload fprint with fprint_tmpvarmat (* ****** ****** *) abstype ccomp_instrlst_type typedef instrlst = ccomp_instrlst_type (* ****** ****** *) datatype primcstsp = | PMCSTSPmyfil of (filename) | PMCSTSPmyloc of (loc_t) | PMCSTSPmyfun of (funlab) // HX: for function name // end of [primcstsp] fun fprint_primcstsp : fprint_type (primcstsp) (* ****** ****** *) datatype primdec_node = // | PMDnone of () | PMDlist of (primdeclst) // | PMDsaspdec of (s2aspdec) // | PMDextvar of (string(*name*), instrlst) // end of [PMDextvar] // | PMDdatdecs of (s2cstlst) | PMDexndecs of (d2conlst) // | PMDfundecs of ( funkind, s2qualst, hifundeclst ) // end of [PMDfundecs] // | PMDvaldecs of (valkind, hivaldeclst, instrlst) // end of [PMDvaldecs] | PMDvaldecs_rec of (valkind, hivaldeclst, instrlst) // end of [PMDvaldecs_rec] // | PMDvardecs of (hivardeclst, instrlst) // | PMDimpdec of (hiimpdec) // | PMDinclude of (int(*knd*), primdeclst) // | PMDstaload of (hidecl) // HX: staloading // | PMDstaloadloc of (filename, symbol, primdeclst) // | PMDdynload of (hidecl) // HX: dynloading // | PMDlocal of (primdeclst, primdeclst) // end of [primdec_node] and primval_node = // | PMVtmp of (tmpvar) // temporary variables | PMVtmpref of (tmpvar) // for addresses of temporary variables // | PMVarg of (int) | PMVargref of (int) // call-by-reference | PMVargenv of (int) // arguments for environvals | PMVargtmpref of (int) // call-by-reference but treated as tmpvar // | PMVcst of (d2cst) // for constants | PMVenv of (d2var) // for environvals // | PMVint of (int) | PMVintrep of (string) // | PMVbool of (bool) | PMVchar of (char) | PMVfloat of (double) | PMVstring of (string) // | PMVi0nt of (i0nt) | PMVf0loat of (f0loat) // | PMVcstsp of (primcstsp) // | PMVtyrep of (hisexp) // $tyrep(...) // | PMVsizeof of (hisexp) // sizeof<...> // | PMVtop of () | PMVempty of () // | PMVextval of (string(*name*)) // | PMVcastfn of (d2cst, primval) // | PMVselcon of (primval, hisexp(*tysum*), label) | PMVselect of (primval, hisexp(*tyroot*), primlab) | PMVselect2 of (primval, hisexp(*tyroot*), primlablst) // | PMVselptr of (primval, hisexp(*tyroot*), primlablst) // end of [PMVselptr] // | PMVptrof of (primval) | PMVptrofsel of (primval, hisexp(*tyroot*), primlablst) // end of [PMVptrofsel] // | PMVvararg of (primvalist) // | PMVrefarg of (int(*knd*), int(*freeknd*), primval) // | PMVfunlab of (funlab) | PMVcfunlab of (int(*knd*), funlab) // | PMVd2vfunlab of (d2var, funlab) // for fundecloc reloc // | PMVlamfix of (d2varopt(*knd*), primval) // knd=0/1:lam/fix // | PMVtmpltcst of (d2cst, t2mpmarglst) // for template constants // end of [PMVtmpltcst] | PMVtmpltvar of (d2var, t2mpmarglst) // for template variables // end of [PMVtmpltvar] // | PMVtmpltcstmat of // for matched (d2cst, t2mpmarglst, tmpcstmat) // template constants // end of [PMVtmpltcstmat] | PMVtmpltvarmat of // for matched (d2var, t2mpmarglst, tmpvarmat) // template variables // end of [PMVtmpltvarmat] (* // // HX-2017-02-18: // | PMVtempenver of (d2varlst) // for specified environvals // end of [PMVtempenver] // *) // | PMVerror of ((*indication-of-erroneous-values*)) // // end of [primval_node] and primlab_node = | PMLlab of (label) | PMLind of (primvalist(*ind*)) // end of [primlab] and labprimval = LABPRIMVAL of (label, primval) (* ****** ****** *) where primdec = '{ primdec_loc= loc_t , primdec_node= primdec_node } // end of [primdec] and primdeclst = List (primdec) and primdeclst_vt = List_vt (primdec) and primval = '{ primval_loc= loc_t , primval_type= hisexp , primval_node= primval_node } // end of [primval] and primvalist = List (primval) and primvalist_vt = List_vt (primval) and primvalopt = Option (primval) and labprimvalist = List (labprimval) and labprimvalist_vt = List_vt (labprimval) and primlab = '{ primlab_loc= loc_t , primlab_node= primlab_node } // end of [primlab] and primlablst = List (primlab) (* ****** ****** *) fun print_primdec (pmd: primdec): void overload print with print_primdec fun prerr_primdec (pmd: primdec): void overload prerr with prerr_primdec fun fprint_primdec : fprint_type (primdec) fun fprint_primdeclst : fprint_type (primdeclst) (* ****** ****** *) fun primdec_none (loc: loc_t): primdec (* ****** ****** *) // fun primdec_list (loc: loc_t, pmds: primdeclst): primdec // (* ****** ****** *) fun primdec_saspdec (loc: loc_t, d2c: s2aspdec): primdec // end of [primdec_saspdec] (* ****** ****** *) fun primdec_extvar (loc: loc_t, name: string, inss: instrlst): primdec // end of [primdec_extvar] (* ****** ****** *) fun primdec_datdecs (loc: loc_t, s2cs: s2cstlst): primdec // end of [primdec_datdecs] fun primdec_exndecs (loc: loc_t, d2cs: d2conlst): primdec // end of [primdec_exndecs] (* ****** ****** *) fun primdec_fundecs ( loc: loc_t , knd: funkind, decarg: s2qualst, hfds: hifundeclst ) : primdec // end of [primdec_fundecs] (* ****** ****** *) fun primdec_valdecs ( loc: loc_t, knd: valkind, hvds: hivaldeclst, inss: instrlst ) : primdec // end of [primdec_valdecs] fun primdec_valdecs_rec ( loc: loc_t, knd: valkind, hvds: hivaldeclst, inss: instrlst ) : primdec // end of [primdec_valdecs_rec] (* ****** ****** *) fun primdec_vardecs (loc: loc_t, hvds: hivardeclst, inss: instrlst): primdec // end of [primdec_vardecs] (* ****** ****** *) fun primdec_impdec (loc: loc_t, imp: hiimpdec): primdec // end of [primdec_impdec] (* ****** ****** *) fun primdec_include (loc: loc_t, knd: int, pmds: primdeclst): primdec (* ****** ****** *) // fun primdec_staload (loc: loc_t, hid: hidecl): primdec // fun primdec_staloadloc ( loc: loc_t, pfil: filename, nspace: symbol, pmds: primdeclst ) : primdec // end of [primdec_staloadloc] // fun primdec_dynload (loc: loc_t, hid: hidecl): primdec // (* ****** ****** *) fun primdec_local (loc: loc_t, _head: primdeclst, _body: primdeclst): primdec // end of [primdec_local] (* ****** ****** *) // fun print_primval (x: primval): void fun prerr_primval (x: primval): void // overload print with print_primval overload prerr with prerr_primval // fun fprint_primval : fprint_type (primval) fun fprint_primvalist : fprint_type (primvalist) // overload fprint with fprint_primval overload fprint with fprint_primvalist // (* ****** ****** *) // fun print_primlab (x: primlab): void fun prerr_primlab (x: primlab): void // overload print with print_primlab overload prerr with prerr_primlab // fun fprint_primlab : fprint_type (primlab) fun fprint_primlablst : fprint_type (primlablst) // overload fprint with fprint_primlab overload fprint with fprint_primlablst // (* ****** ****** *) fun fprint_labprimvalist : fprint_type (labprimvalist) (* ****** ****** *) fun tmpvar_is_void (tmp: tmpvar): bool (* ****** ****** *) fun primval_is_void (pmv: primval): bool (* ****** ****** *) fun primval_is_top (pmv: primval): bool (* uninitiated *) fun primval_is_empty (pmv: primval): bool (* value of size(0) *) (* ****** ****** *) fun primval_is_nshared (pmv: primval): bool // left-val/field-sel (* ****** ****** *) fun primlab_is_lab (pml: primlab): bool fun primlab_is_ind (pml: primlab): bool (* ****** ****** *) fun primval_tmp (loc: loc_t, hse: hisexp, tmp: tmpvar): primval fun primval_tmpref (loc: loc_t, hse: hisexp, tmp: tmpvar): primval (* ****** ****** *) fun primval_arg (loc: loc_t, hse: hisexp, narg: int): primval fun primval_argref (loc: loc_t, hse: hisexp, narg: int): primval fun primval_argtmpref (loc: loc_t, hse: hisexp, narg: int): primval fun primval_argenv (loc: loc_t, hse: hisexp, nenv: int): primval (* ****** ****** *) fun primval_cst (loc: loc_t, hse: hisexp, d2c: d2cst): primval // end of [primval_cst] fun primval_env (loc: loc_t, hse: hisexp, d2v: d2var): primval // end of [primval_env] (* ****** ****** *) fun primval_int (loc: loc_t, hse: hisexp, i: int): primval fun primval_intrep (loc: loc_t, hse: hisexp, rep: string): primval (* ****** ****** *) fun primval_bool (loc: loc_t, hse: hisexp, b: bool): primval fun primval_char (loc: loc_t, hse: hisexp, c: char): primval fun primval_float (loc: loc_t, hse: hisexp, f: double): primval fun primval_string (loc: loc_t, hse: hisexp, str: string): primval (* ****** ****** *) fun primval_i0nt (loc: loc_t, hse: hisexp, tok: i0nt): primval fun primval_f0loat (loc: loc_t, hse: hisexp, tok: f0loat): primval (* ****** ****** *) // fun primval_cstsp ( loc: loc_t, hse: hisexp, cstsp: primcstsp ) : primval // end of [primval_cstsp] // (* ****** ****** *) // fun primval_tyrep (loc: loc_t, hse0: hisexp, hse: hisexp): primval // end of [primval_tyrep] // fun primval_sizeof (loc: loc_t, hse0: hisexp, hse: hisexp): primval // end of [primval_sizeof] // (* ****** ****** *) // fun primval_top(loc: loc_t, hse: hisexp): primval fun primval_empty(loc: loc_t, hse: hisexp): primval // (* ****** ****** *) // fun primval_extval (loc: loc_t, hse: hisexp, name: string): primval // end of [primval_extval] // (* ****** ****** *) // fun primval_castfn ( loc: loc_t, hse: hisexp, d2c: d2cst, arg: primval ) : primval // end of [primval_castfn] // (* ****** ****** *) // fun primval_selcon ( loc: loc_t , hse: hisexp, pmv: primval, hse_sum: hisexp, lab: label ) : primval // end of [primval_selcon] fun primval_select ( loc: loc_t , hse: hisexp, pmv: primval, hse_rt: hisexp, pml: primlab ) : primval // end of [primval_select] fun primval_select2 ( loc: loc_t , hse: hisexp, pmv: primval, hse_rt: hisexp, pmls: primlablst ) : primval // end of [primval_select2] // (* ****** ****** *) // fun primval_selptr ( loc: loc_t , hse: hisexp, pmv: primval, hse_rt: hisexp, pmls: primlablst ) : primval // end of [primval_selptr] // (* ****** ****** *) // fun primval_ptrof (loc: loc_t, hse: hisexp, pmv: primval): primval // end of [primval_ptrof] // fun primval_ptrofsel ( loc: loc_t , hse: hisexp, pmv: primval, hse_rt: hisexp, pmls: primlablst ) : primval // end of [primval_ptrofsel] // (* ****** ****** *) // fun primval_vararg ( loc: loc_t , hse: hisexp, pmvs: primvalist): primval // (* ****** ****** *) // fun primval_refarg ( loc: loc_t , hse: hisexp, knd: int, freeknd: int, pmv: primval ) : primval // end of [primval_refarg] // (* ****** ****** *) // fun primval_funlab (loc: loc_t, hse: hisexp, flab: funlab): primval fun primval_cfunlab (loc: loc_t, hse: hisexp, knd: int, flab: funlab): primval // (* ****** ****** *) fun primval_d2vfunlab ( loc: loc_t, hse: hisexp, d2v: d2var, flab: funlab ) : primval // end of [primval_d2vfunlab] (* ****** ****** *) fun primval_lamfix(knd: d2varopt, pmv_funval: primval): primval (* ****** ****** *) // fun primval_tmpltcst ( loc: loc_t , hse: hisexp, d2c: d2cst, t2mas: t2mpmarglst ) : primval // end of [primval_tmpltcst] fun primval_tmpltcstmat ( loc: loc_t , hse: hisexp, d2c: d2cst, t2mas: t2mpmarglst, mat: tmpcstmat ) : primval // end of [primval_tmpltcstmat] // (* ****** ****** *) // fun primval_tmpltvar ( loc: loc_t , hse: hisexp, d2v: d2var, t2mas: t2mpmarglst ) : primval // end of [primval_tmpltvar] fun primval_tmpltvarmat ( loc: loc_t , hse: hisexp, d2v: d2var, t2mas: t2mpmarglst, mat: tmpvarmat ) : primval // end of [primval_tmpltvarmat] // (* ****** ****** *) // (* fun primval_tempenver (loc: loc_t, hse: hisexp, d2vs: d2varlst): primval *) // (* ****** ****** *) fun primval_error (loc: loc_t, hse: hisexp): primval (* ****** ****** *) fun primval_make_sizeof (loc: loc_t, hselt: hisexp): primval (* ****** ****** *) fun primval_make_funlab (loc: loc_t, flab: funlab): primval fun primval_make2_funlab (loc: loc_t, hse0: hisexp, flab: funlab): primval (* ****** ****** *) fun primval_make_d2vfunlab (loc: loc_t, d2v: d2var, flab: funlab): primval // end of [primval_make_d2vfunlab] (* ****** ****** *) fun primval_make_tmp (loc: loc_t, tmp: tmpvar): primval fun primval_make_tmpref (loc: loc_t, tmp: tmpvar): primval (* ****** ****** *) fun primval_make_ptrofsel (loc: loc_t, pmv: primval, hse_rt: hisexp, pmls: primlablst): primval // end of [primval_make_ptrofsel] (* ****** ****** *) fun primlab_lab (loc: loc_t, lab: label): primlab fun primlab_ind (loc: loc_t, ind: primvalist): primlab (* ****** ****** *) datatype patck = // | PATCKcon of (d2con) // | PATCKint of (int) | PATCKbool of (bool) | PATCKchar of (char) | PATCKfloat of (double) | PATCKstring of (string) // | PATCKi0nt of (i0nt) | PATCKf0loat of (f0loat) // // end of [patck] (* ****** ****** *) datatype tmprimval = | TPMVnone of (primval) | TPMVsome of (tmpvar, primval) // end of [tmprimval] (* ****** ****** *) fun fprint_tmprimval (out: FILEref, x: tmprimval): void overload fprint with fprint_tmprimval (* ****** ****** *) typedef tmpmov = @( tmprimval(*src*), tmpvar(*dst*) ) (* end of [tmpmov] *) typedef tmpmovlst = List (tmpmov) vtypedef tmpmovlst_vt = List_vt (tmpmov) (* ****** ****** *) fun fprint_tmpmovlst (out: FILEref, xs: tmpmovlst): void overload fprint with fprint_tmpmovlst (* ****** ****** *) datatype patckont = | PTCKNTnone of () | PTCKNTtmplab of tmplab | PTCKNTtmplabint of (tmplab, int) | PTCKNTtmplabmov of (tmplab, tmpmovlst) | PTCKNTcaseof_fail of (loc_t) // run-time failure | PTCKNTfunarg_fail of (loc_t, funlab) // run-time failure | PTCKNTraise of (tmpvar(*ret*), primval) // end of [patckont] (* ****** ****** *) fun print_patck (x: patck): void overload print with print_patck fun prerr_patck (x: patck): void overload prerr with prerr_patck fun fprint_patck : fprint_type (patck) fun print_patckont (x: patckont): void overload print with print_patckont fun prerr_patckont (x: patckont): void overload prerr with prerr_patckont fun fprint_patckont : fprint_type (patckont) (* ****** ****** *) fun patckont_is_none (fail: patckont): bool (* ****** ****** *) datatype instr_node = // | INSfunlab of (funlab) | INStmplab of (tmplab) // | INScomment of (string) // | INSmove_val of (tmpvar, primval) // | INSpmove_val of (tmpvar(*ptr*), primval) // | INSmove_arg_val of (int(*arg*), primval) // | INSfcall of // regular funcall (tmpvar, primval(*fun*), hisexp, primvalist(*arg*)) | INSfcall2 of // tail-recursive funcall // ntl: 0/1+ : fun/fnx (tmpvar, funlab, int(*ntl*), hisexp, primvalist(*arg*)) // | INSextfcall of (tmpvar, string(*fun*), primvalist(*arg*)) | INSextmcall of (tmpvar, primval(*obj*), string(*mtd*), primvalist(*arg*)) // | INScond of ( // conditinal instruction primval(*test*), instrlst(*then*), instrlst(*else*) ) // end of [INScond] // | INSfreecon of (primval) // memory dealloc_t // | INSloop of ( tmplab(*init*) , tmplab(*fini*) , tmplab(*cont*) , instrlst(*init*) , primval(*test*), instrlst(*test*) , instrlst(*post*) , instrlst(*body*) ) // end of [INSloop] | INSloopexn of (int(*knd*), tmplab) // knd=0/1: break/continue // | INScaseof of (ibranchlst) // caseof-branch-statements // | INSletpop of () | INSletpush of (primdeclst) // | INSmove_con of (tmpvar, d2con, hisexp, labprimvalist(*arg*)) // | INSmove_ref of (tmpvar, primval) // tmp := ref (pmv) // | INSmove_boxrec of (tmpvar, labprimvalist(*arg*), hisexp) | INSmove_fltrec of (tmpvar, labprimvalist(*arg*), hisexp) // | INSpatck of (primval, patck, patckont) // pattern check // (* | INSmove_selcon of (tmpvar, primval, hisexp(*tysum*), label) // end of [INSmove_selcon] | INSmove_select of (tmpvar, primval, hisexp(*tyroot*), primlab) // end of [INSmove_select] | INSmove_select2 of (tmpvar, primval, hisexp(*tyroot*), primlablst) // end of [INSmove_select2] *) // | INSmove_ptrofsel of (tmpvar, primval, hisexp(*tyroot*), primlablst) // end of [INSmove_ptrofsel] // | INSstore_ptrofs of (primval(*left*), hisexp(*tyroot*), primlablst(*ofs*), primval(*right*)) | INSxstore_ptrofs of (tmpvar, primval(*left*), hisexp(*tyroot*), primlablst(*ofs*), primval(*right*)) // | INSraise of (tmpvar(*dummy*), primval) // raising an exception // | INSmove_delay of (tmpvar, int(*lin*), hisexp, primval(*thunk*)) // suspending evaluation | INSmove_lazyeval of (tmpvar, int(*lin*), hisexp, primval(*lazyval*)) // evaluating lazy-values // | INStrywith of (tmpvar(*exn*), instrlst, ibranchlst) // for try-with expressions // | INSmove_list_nil of (tmpvar) | INSpmove_list_nil of (tmpvar) | INSpmove_list_cons of (tmpvar, hisexp(*elt*)) | INSmove_list_phead of // hd <- &(tl->val) (tmpvar(*hd*), tmpvar(*tl*), hisexp(*elt*)) | INSmove_list_ptail of // tl_new <- &(tl_old->next) (tmpvar(*new*), tmpvar(*old*), hisexp(*elt*)) // | INSmove_arrpsz_ptr of (tmpvar, tmpvar) // | INSstore_arrpsz_asz of (tmpvar, int(*asz*)) | INSstore_arrpsz_ptr of (tmpvar, hisexp(*elt*), int(*asz*)) // | INSupdate_ptrinc of (tmpvar, hisexp(*elt*)) | INSupdate_ptrdec of (tmpvar, hisexp(*elt*)) // | INSclosure_initize of (tmpvar, d2varopt(*knd:lam/fix*), funlab) // | INStmpdec of (tmpvar) // HX-2013-01: this is a no-op // | INSextvar of (string, primval) // HX-2013-05: extvar def // | INSdcstdef of ( d2cst, primval ) // HX-2013-05: global const def // | INStempenver of(d2varlst) // HX-2017-02-18: $tempenver // // end of [instr_node] where instr = '{ instr_loc= loc_t, instr_node= instr_node } // end of [instr] and instrlst = List (instr) and instrlst_vt = List_vt (instr) and instrlstopt = Option (instrlst) and ibranch = '{ ibranch_loc= loc_t, ibranch_inslst= instrlst } (* end of [ibranch] *) and ibranchlst = List (ibranch) (* ****** ****** *) // fun print_instr(x: instr): void fun prerr_instr(x: instr): void // fun fprint_instr: fprint_type(instr) fun fprint_instrlst: fprint_type(instrlst) // overload prerr with prerr_instr overload print with print_instr // overload fprint with fprint_instr overload fprint with fprint_instrlst // (* ****** ****** *) fun instr_funlab (loc: loc_t, flab: funlab): instr fun instr_tmplab (loc: loc_t, tlab: tmplab): instr (* ****** ****** *) fun instr_comment (loc: loc_t, str: string): instr (* ****** ****** *) fun instr_move_val ( loc: loc_t, tmp: tmpvar, pmv: primval ) : instr // end of [instr_move_val] fun instr_pmove_val ( loc: loc_t, tmp: tmpvar, pmv: primval ) : instr // end of [instr_pmove_val] (* ****** ****** *) fun instr_move_arg_val (loc: loc_t, arg: int, pmv: primval): instr // end of [instr_move_arg_val] (* ****** ****** *) fun instr_fcall ( loc: loc_t , tmpret: tmpvar , pmv_fun: primval, hse_fun: hisexp, pmvs_arg: primvalist ) : instr // end of [instr_fcall] fun instr_fcall2 ( loc: loc_t , tmpret: tmpvar , fl: funlab, ntl: int, hse_fun: hisexp, pmvs_arg: primvalist ) : instr // end of [instr_fcall2] (* ****** ****** *) // fun instr_extfcall ( loc: loc_t , tmpret: tmpvar, _fun: string, _arg: primvalist ) : instr // end of [instr_extfcall] // fun instr_extmcall ( loc: loc_t , tmpret: tmpvar, _obj: primval, _mtd: string, _arg: primvalist ) : instr // end of [instr_extmcall] // (* ****** ****** *) fun instr_cond ( loc: loc_t , _cond: primval, _then: instrlst, _else: instrlst ) : instr // end of [instr_cond] (* ****** ****** *) fun instr_freecon (loc: loc_t, pmv: primval): instr (* ****** ****** *) fun instr_loop ( loc: loc_t , tlab_init: tmplab , tlab_fini: tmplab , tlab_cont: tmplab , inss_init: instrlst , pmv_test: primval, inss_test: instrlst , inss_post: instrlst , inss_body: instrlst ) : instr // end of [instr_loop] fun instr_loopexn ( loc: loc_t, knd: int, tlab: tmplab ) : instr // end of [instr_loopexn] (* ****** ****** *) fun instr_caseof (loc: loc_t, xs: ibranchlst): instr (* ****** ****** *) fun instr_letpop (loc: loc_t): instr fun instr_letpush (loc: loc_t, pmds: primdeclst): instr (* ****** ****** *) fun instr_move_con ( loc: loc_t , tmp: tmpvar, d2c: d2con, hse_sum: hisexp, lpmvs: labprimvalist ) : instr // end of [instr_move_con] (* ****** ****** *) fun instr_move_ref (loc: loc_t, tmp: tmpvar, pmv: primval): instr // end of [instr_move_ref] (* ****** ****** *) fun instr_move_boxrec ( loc: loc_t, tmp: tmpvar, arg: labprimvalist, hse: hisexp ) : instr // end of [instr_move_boxrec] fun instr_move_fltrec ( loc: loc_t, tmp: tmpvar, arg: labprimvalist, hse: hisexp ) : instr // end of [instr_move_fltrec] fun instr_move_fltrec2 ( loc: loc_t, tmp: tmpvar, arg: labprimvalist, hse: hisexp ) : instr // end of [instr_move_fltrec2] (* ****** ****** *) fun instr_patck ( loc: loc_t, pmv: primval, ptck: patck, ptknt: patckont ) : instr // pattern check (* ****** ****** *) fun instr_move_selcon ( loc: loc_t , tmp: tmpvar, hse: hisexp, pmv: primval, hse_sum: hisexp, lab: label ) : instr // end of [instr_move_selcon] fun instr_move_select ( loc: loc_t , tmp: tmpvar, hse: hisexp, pmv: primval, hse_rt: hisexp, pml: primlab ) : instr // end of [instr_move_select] fun instr_move_select2 ( loc: loc_t , tmp: tmpvar, hse: hisexp, pmv: primval, hse_rt: hisexp, pmls: primlablst ) : instr // end of [instr_move_select2] (* ****** ****** *) fun instr_move_ptrofsel ( loc: loc_t, tmp: tmpvar , pmv: primval, hse_rt: hisexp, pmls: primlablst ) : instr // end of [instr_move_ptrofsel] (* ****** ****** *) (* fun instr_load_ptrofs ( loc: loc_t, tmp: tmpvar , pmv: primval, hse_rt: hisexp, pmls: primlablst ) : instr // end of [instr_load_ptrofs] *) (* ****** ****** *) fun instr_store_ptrofs ( loc: loc_t , pmv_l: primval, hse_rt: hisexp, pmls: primlablst , pmv_r: primval ) : instr // end of [instr_store_ptrofs] fun instr_xstore_ptrofs ( loc: loc_t, tmp: tmpvar , pmv_l: primval, hse_rt: hisexp, pmls: primlablst , pmv_r: primval ) : instr // end of [instr_xstore_ptrofs] (* ****** ****** *) fun instr_raise ( loc: loc_t, tmp: tmpvar, pmv_exn: primval ) : instr // end of [instr_raise] (* ****** ****** *) fun instr_move_delay ( loc: loc_t, tmp: tmpvar, lin: int, hse: hisexp, thunk: primval ) : instr // end of [instr_move_delay] fun instr_move_lazyeval ( loc: loc_t, tmp: tmpvar, lin: int, hse: hisexp, pmv_lazy: primval ) : instr // end of [instr_move_lazyeval] (* ****** ****** *) fun instr_trywith ( loc: loc_t , tmp(*exn*): tmpvar, _try: instrlst, _with: ibranchlst ) : instr // end of [instr_trywith] (* ****** ****** *) // fun instr_move_list_nil (loc: loc_t, tmp: tmpvar): instr fun instr_pmove_list_nil (loc: loc_t, tmp: tmpvar): instr fun instr_pmove_list_cons (loc: loc_t, tmp: tmpvar, elt: hisexp): instr // (* ****** ****** *) // fun instr_move_list_phead (loc: loc_t, tmphd: tmpvar, tmptl: tmpvar, elt: hisexp): instr fun instr_move_list_ptail (loc: loc_t, tl_new: tmpvar, tl_old: tmpvar, elt: hisexp): instr // (* ****** ****** *) fun instr_move_arrpsz_ptr (loc: loc_t, tmp: tmpvar, psz: tmpvar): instr (* ****** ****** *) // fun instr_store_arrpsz_asz (loc: loc_t, tmp: tmpvar, asz: int) : instr // fun instr_store_arrpsz_ptr ( loc: loc_t, tmp: tmpvar, hse_elt: hisexp, asz: int ) : instr // end of [instr_store_arrpsz_asz] // (* ****** ****** *) // fun instr_update_ptrinc ( loc: loc_t, tmpelt: tmpvar, hse_elt: hisexp ) : instr // end of [instr_update_ptrinc] fun instr_update_ptrdec ( loc: loc_t, tmpelt: tmpvar, hse_elt: hisexp ) : instr // end of [instr_update_ptrdec] // (* ****** ****** *) // fun instr_closure_initize ( loc: loc_t , tmpret: tmpvar, knd: d2varopt(*lam/fix*), flab: funlab ) : instr // end of [instr_closure_initize] // (* ****** ****** *) fun instr_tmpdec(loc: loc_t, tmp: tmpvar): instr (* ****** ****** *) // fun instr_extvar (loc: loc_t, xnm: string, pmv: primval): instr // fun instr_dcstdef (loc: loc_t, d2c: d2cst, pmv: primval): instr // (* ****** ****** *) // fun instr_tempenver(loc: loc_t, d2vs: d2varlst): instr // (* ****** ****** *) fun ibranch_make (loc: loc_t, inss: instrlst): ibranch (* ****** ****** *) fun primlab_lab (loc: loc_t, lab: label): primlab fun primlab_ind (loc: loc_t, ind: primvalist): primlab (* ****** ****** *) fun instrlst_get_tmpvarset (xs: instrlst): tmpvarset_vt fun primdeclst_get_tmpvarset (xs: primdeclst): tmpvarset_vt (* ****** ****** *) absvtype instrseq_vtype vtypedef instrseq = instrseq_vtype (* ****** ****** *) fun instrseq_make_nil (): instrseq fun instrseq_get_free (res: instrseq): instrlst (* ****** ****** *) // fun instrseq_add (res: !instrseq, x: instr): void // (* ****** ****** *) // fun instrseq_add_comment (res: !instrseq, comment: string): void // (* ****** ****** *) // fun instrseq_add_tmpdec (res: !instrseq, loc: loc_t, tmp: tmpvar): void // (* ****** ****** *) // fun instrseq_add_extvar ( res: !instrseq, loc: loc_t, xnm: string, pmv: primval ) : void // end-of-fun // fun instrseq_add_dcstdef (res: !instrseq, loc: loc_t, d2c: d2cst, pmv: primval): void // (* ****** ****** *) // fun instrseq_addlst (res: !instrseq, xs: instrlst): void fun instrseq_addlst_vt (res: !instrseq, xs: instrlst_vt): void // (* ****** ****** *) // fun instrseq_add_freeconlst (res: !instrseq, loc0: loc_t, pmvs: primvalist_vt): void // (* ****** ****** *) fun hifundec_get_funlabopt (hfd: hifundec): Option (funlab) fun hifundec_set_funlabopt (hfd: hifundec, opt: Option (funlab)): void (* ****** ****** *) fun hiimpdec_get_funlabopt (imp: hiimpdec): Option (funlab) fun hiimpdec_set_funlabopt (imp: hiimpdec, opt: Option (funlab)): void (* ****** ****** *) fun hiimpdec_get_instrlstopt (imp: hiimpdec): Option (instrlst) fun hiimpdec_set_instrlstopt (imp: hiimpdec, opt: Option (instrlst)): void (* ****** ****** *) typedef vbindmap = d2varmap (primval) (* ****** ****** *) fun fprint_vbindmap (out: FILEref, vbmap: vbindmap): void (* ****** ****** *) fun funent_make ( loc: loc_t , flab: funlab , imparg: s2varlst , tmparg: s2explstlst , tmpsub: tmpsubopt , tmpret: tmpvar , fls0: funlablst, d2es: d2envlst , vbmap: vbindmap , inss_body: instrlst , tmplst: tmpvarlst ) : funent // end of [funent_make] fun funent_make2 ( loc: loc_t , flab: funlab , imparg: s2varlst , tmparg: s2explstlst , tmpret: tmpvar , fls0: funlablst, d2es: d2envlst , vbmap: vbindmap , inss_body: instrlst ) : funent // end of [funent_make2] (* ****** ****** *) fun funent_get_tmpsub (fent: funent): tmpsubopt fun funent_set_tmpsub (fent: funent, opt: tmpsubopt): void = "patsopt_funent_set_tmpsub" // end of [funent_set_tmpsub] fun funent_get_vbindmap (fent: funent): vbindmap fun funent_get_instrlst (fent: funent): instrlst (* ****** ****** *) // datatype hifundec2 = HIFUNDEC2 of (hifundec, tmpsub) // fun fprint_hifundec2 (out: FILEref, hfd2: hifundec2): void // datatype hiimpdec2 = HIIMPDEC2 of (hiimpdec, tmpsub, s2explstlst) // fun fprint_hiimpdec2 (out: FILEref, imp2: hiimpdec2): void // (* ****** ****** *) absvtype ccompenv_vtype vtypedef ccompenv = ccompenv_vtype fun ccompenv_make (): ccompenv fun ccompenv_free (env: ccompenv): void (* ****** ****** *) fun fprint_ccompenv (out: FILEref, env: !ccompenv): void (* ****** ****** *) fun ccompenv_get_tmplevel (env: !ccompenv): int fun ccompenv_inc_tmplevel (env: !ccompenv): void fun ccompenv_dec_tmplevel (env: !ccompenv): void (* ****** ****** *) fun ccompenv_get_tmprecdepth (env: !ccompenv): int fun ccompenv_inc_tmprecdepth (env: !ccompenv): void fun ccompenv_dec_tmprecdepth (env: !ccompenv): void (* ****** ****** *) // fun ccompenv_inc_freeconenv(env: !ccompenv): void fun ccompenv_getdec_freeconenv(env: !ccompenv): primvalist_vt // fun ccompenv_add_freeconenv (env: !ccompenv, pmv: primval): void // fun ccompenv_add_freetupenv_if (env: !ccompenv, pmv: primval, pck: pckind): void fun ccompenv_add_freeconenv_if (env: !ccompenv, pmv: primval, pck: pckind, d2c: d2con): void // (* ****** ****** *) fun ccompenv_get_loopfini (env: !ccompenv): tmplab fun ccompenv_get_loopcont (env: !ccompenv): tmplab fun ccompenv_inc_loopexnenv ( env: !ccompenv, init: tmplab, fini: tmplab, cont: tmplab ) : void // end of [ccompenv_inc_loopexnenv] fun ccompenv_dec_loopexnenv (env: !ccompenv): void (* ****** ****** *) // fun ccompenv_dec_tailcalenv (env: !ccompenv): void // fun ccompenv_inc_tailcalenv (env: !ccompenv, fl: funlab): void fun ccompenv_inc_tailcalenv_fnx (env: !ccompenv, fls: funlablst_vt): void // fun ccompenv_find_tailcalenv (env: !ccompenv, fl: funlab): int // fun ccompenv_find_tailcalenv_cst (env: !ccompenv, d2c: d2cst): funlabopt_vt fun ccompenv_find_tailcalenv_var (env: !ccompenv, d2v: d2var, ntl: &int): funlabopt_vt // fun ccompenv_find_tailcalenv_tmpcst (env: !ccompenv, d2c: d2cst, t2mas: t2mpmarglst): funlabopt_vt fun ccompenv_find_tailcalenv_tmpvar (env: !ccompenv, d2v: d2var, t2mas: t2mpmarglst, ntl: &int): funlabopt_vt // (* ****** ****** *) (* fun ccompenv_get_funlevel (env: !ccompenv): int (* function level *) *) (* ****** ****** *) // fun ccompenv_inc_dvarsetenv (env: !ccompenv): void fun ccompenv_incwth_dvarsetenv (env: !ccompenv, d2es: d2envlst): void fun ccompenv_getdec_dvarsetenv (env: !ccompenv): d2envset_vt // fun ccompenv_add_dvarsetenv_var (env: !ccompenv, d2v: d2var): void fun ccompenv_add_dvarsetenv_env (env: !ccompenv, d2e: d2env): void // (* ****** ****** *) // fun ccompenv_inc_flabsetenv (env: !ccompenv): void fun ccompenv_getdec_flabsetenv (env: !ccompenv): funlabset_vt fun ccompenv_add_flabsetenv (env: !ccompenv, fl: funlab): void // (* ****** ****** *) // fun ccompenv_addlst_dvarsetenv_if (env: !ccompenv, flev0: int, d2es: d2envlst): void fun ccompenv_addlst_flabsetenv_ifmap (env: !ccompenv, flev0: int, vbmap: vbindmap, fls0: funlablst_vt): funlablst_vt // (* ****** ****** *) // fun ccompenv_inc_vbindmapenv (env: !ccompenv): void fun ccompenv_getdec_vbindmapenv (env: !ccompenv): vbindmap // fun ccompenv_add_vbindmapenv (env: !ccompenv, d2v: d2var, pmv: primval): void fun ccompenv_find_vbindmapenv (env: !ccompenv, d2v: d2var): Option_vt (primval) // (* ****** ****** *) // absview ccompenv_push_v // fun ccompenv_push (env: !ccompenv): (ccompenv_push_v | void) // fun ccompenv_pop (pfpush: ccompenv_push_v | env: !ccompenv): void // fun ccompenv_localjoin (pf1: ccompenv_push_v, pf2: ccompenv_push_v | env: !ccompenv): void // (* ****** ****** *) fun ccompenv_add_vbindmapall (env: !ccompenv, d2v: d2var, pmv: primval): void // end of [ccompenv_add_vbindmapall] fun ccompenv_find_vbindmapall (env: !ccompenv, d2v: d2var): Option_vt (primval) // end of [ccompenv_find_vbindmapall] (* ****** ****** *) fun ccompenv_add_vbindmapenvall (env: !ccompenv, d2v: d2var, pmv: primval): void // end of [ccompenv_add_vbindmapenvall] (* ****** ****** *) // fun ccompenv_add_tmpsub (env: !ccompenv, tsub: tmpsub): void // (* ****** ****** *) // fun ccompenv_add_fundec (env: !ccompenv, hfd: hifundec): void fun ccompenv_add_fundec2 (env: !ccompenv, hfd2: hifundec2): void // fun ccompenv_add_impdec (env: !ccompenv, imp: hiimpdec): void fun ccompenv_add_impdec2 (env: !ccompenv, imp2: hiimpdec2): void // fun ccompenv_add_staload (env: !ccompenv, fenv: filenv): void // (* ****** ****** *) // fun ccompenv_add_impdecloc ( env: !ccompenv, sub: !stasub, imp: hiimpdec ) : void // end of [ccompenv_add_impdecloc] // fun ccompenv_add_fundecsloc ( env: !ccompenv , sub: !stasub, knd: funkind, decarg: s2qualst, hfds: hifundeclst ) : void // end of [ccompenv_add_fundecsloc] // fun ccompenv_add_tmpcstmat (env: !ccompenv, tmpmat: tmpcstmat): void fun ccompenv_add_tmpvarmat (env: !ccompenv, tmpmat: tmpvarmat): void // (* ****** ****** *) // // HX-2015-01-10: // [get] and [get2] return the same result // however, [get2] is supposed to be more efficient // fun ccompenv_get_tempenver (env: !ccompenv): d2varlst_vt fun ccompenv_get2_tempenver (env: !ccompenv): d2varlst_vt // fun ccompenv_add_tempenver (env: !ccompenv, d2vs: d2varlst): void // (* ****** ****** *) // fun ccompenv_dvarsetenv_add_tempenver (env: !ccompenv, d2es: d2envset_vt): d2envset_vt // (* ****** ****** *) fun hipatck_ccomp ( env: !ccompenv, res: !instrseq , fail: patckont, hip: hipat, pmv: primval ) : void // end of [hipatck_ccomp] (* ****** ****** *) fun himatch_ccomp ( env: !ccompenv, res: !instrseq , level: int, hip: hipat, pmv: primval // HX: [pmv] matches [hip] ) : void // end of [himatch_ccomp] fun himatch2_ccomp ( env: !ccompenv, res: !instrseq , level: int, hip: hipat, pmv: primval // HX: [pmv] matches [hip] ) : void // end of [himatch2_ccomp] (* ****** ****** *) fun hifunarg_ccomp ( env: !ccompenv, res: !instrseq , flab: funlab, level: int, loc_fun: loc_t, hips: hipatlst ) : void // end of [hifunarg_ccomp] (* ****** ****** *) typedef hidexp_ccomp_funtype = (!ccompenv, !instrseq, hidexp) -> primval // fun hidexp_ccomp : hidexp_ccomp_funtype fun hidexp_ccomp_lam : hidexp_ccomp_funtype fun hidexp_ccomp_fix : hidexp_ccomp_funtype fun hidexp_ccomp_loop : hidexp_ccomp_funtype fun hidexp_ccomp_loopexn : hidexp_ccomp_funtype // fun hidexp_ccompv : hidexp_ccomp_funtype // (* ****** ****** *) typedef hidexp_ccomp_ret_funtype = (!ccompenv, !instrseq, tmpvar(*ret*), hidexp) -> void // fun hidexp_ccomp_ret : hidexp_ccomp_ret_funtype // fun hidexp_ccomp_ret_case : hidexp_ccomp_ret_funtype // fun hidexp_ccomp_ret_raise : hidexp_ccomp_ret_funtype // fun hidexp_ccomp_ret_delay : hidexp_ccomp_ret_funtype fun hidexp_ccomp_ret_ldelay : hidexp_ccomp_ret_funtype fun hidexp_ccomp_ret_lazyeval : hidexp_ccomp_ret_funtype // fun hidexp_ccomp_ret_trywith : hidexp_ccomp_ret_funtype // (* ****** ****** *) // fun hidexplst_ccomp (env: !ccompenv, res: !instrseq, hdes: hidexplst): primvalist // end of [hidexplst_ccomp] // fun hidexplst_ccompv (env: !ccompenv, res: !instrseq, hdes: hidexplst): primvalist // end of [hidexplst_ccompv] // (* ****** ****** *) fun hidexp_ccomp_funlab_arg_body ( env: !ccompenv , flab: funlab // HX: needed for recursion , imparg: s2varlst , tmparg: s2explstlst , prolog: instrlst , loc_fun: loc_t , hips_arg: hipatlst , hde_body: hidexp ) : funent // end of [hidexp_ccomp_arg_body_funlab] (* ****** ****** *) fun hiclaulst_ccomp ( env: !ccompenv , lvl0: int , pmvs: primvalist , hicls: hiclaulst , tmpret: tmpvar , fail: patckont ) : ibranchlst // end of [hiclaulst_ccomp] (* ****** ****** *) fun hilab_ccomp (env: !ccompenv, res: !instrseq, hil: hilab): primlab fun hilablst_ccomp (env: !ccompenv, res: !instrseq, hils: hilablst): primlablst (* ****** ****** *) fun hiimpdec_ccomp ( env: !ccompenv, level: int, imp: hiimpdec, knd: int ) : void // end of [hiimpdec_ccomp] fun hiimpdec_ccomp_if ( env: !ccompenv, level: int, imp: hiimpdec, knd: int ) : void // end of [hiimpdec_ccomp_if] (* ****** ****** *) fun hifundeclst_ccomp ( env: !ccompenv, lvl0: int , knd: funkind, decarg: s2qualst, hfds: hifundeclst ) : void // end of [hifundeclst_ccomp] (* ****** ****** *) fun hidecl_ccomp (env: !ccompenv, hid: hidecl): primdec fun hideclist_ccomp (env: !ccompenv, hids: hideclist): primdeclst fun hideclist_ccomp0 (hids: hideclist): primdeclst (* ****** ****** *) // // HX-2013-04: for handling environvals // fun funent_varbindmap_initize (fent: funent): void fun funent_varbindmap_initize2 (fent: funent): void fun funent_varbindmap_uninitize (fent: funent): void fun the_funent_varbindmap_find (d2v: d2var): Option_vt (primval) // (* ****** ****** *) fun emit_text (out: FILEref, txt: string): void // end of [emit_text] fun emit_LPAREN (out: FILEref): void fun emit_RPAREN (out: FILEref): void fun emit_newline (out: FILEref): void (* ****** ****** *) // fun emit_location (out: FILEref, x: loc_t): void // (* ****** ****** *) fun emit_int (out: FILEref, x: int): void fun emit_intinf (out: FILEref, x: intinf): void fun emit_bool (out: FILEref, x: bool): void fun emit_char (out: FILEref, x: char): void fun emit_float (out: FILEref, x: double): void fun emit_string (out: FILEref, x: string): void (* ****** ****** *) fun emit_ATSPMVint (out: FILEref, x: int): void fun emit_ATSPMVintrep (out: FILEref, x: string): void fun emit_ATSPMVbool (out: FILEref, x: bool): void fun emit_ATSPMVchar (out: FILEref, x: char): void fun emit_ATSPMVfloat (out: FILEref, x: double): void fun emit_ATSPMVstring (out: FILEref, str: string): void fun emit_ATSPMVi0nt (out: FILEref, tok: $SYN.i0nt): void fun emit_ATSPMVf0loat (out: FILEref, tok: $SYN.f0loat): void (* ****** ****** *) fun emit_stamp (out: FILEref, x: stamp): void fun emit_symbol (out: FILEref, x: symbol): void (* ****** ****** *) fun emit_time_stamp (out: FILEref): void fun emit_ats_ccomp_header (out: FILEref): void fun emit_ats_ccomp_prelude (out: FILEref): void (* ****** ****** *) fun emit_ident (out: FILEref, id: string): void fun emit_label (out: FILEref, lab: label): void fun emit_atslabel (out: FILEref, lab: label): void fun emit_labelext (out: FILEref, knd: int, lab: label): void fun emit_filename (out: FILEref, fil: filename): void (* ****** ****** *) fun emit_primcstsp (out: FILEref, pmc: primcstsp): void (* ****** ****** *) fun emit_s2cst (out: FILEref, d2c: s2cst): void // HX: global fun emit2_s2cst (out: FILEref, d2c: s2cst): void // HX: local (* ****** ****** *) fun emit_d2con (out: FILEref, d2c: d2con): void fun emit_d2cst (out: FILEref, d2c: d2cst): void // HX: global fun emit2_d2cst (out: FILEref, d2c: d2cst): void // HX: local (* ****** ****** *) fun emit_d2env (out: FILEref, d2e: d2env): void fun emit_d2var_env (out: FILEref, d2v: d2var): void fun emit_d2envlst (out: FILEref, d2es: d2envlst, i: int): int(*nenv*) (* ****** ****** *) fun emit_exndec (out: FILEref, hid: hidecl): void fun emit_saspdec (out: FILEref, hid: hidecl): void (* ****** ****** *) fun emit_extype (out: FILEref, hid: hidecl): void fun emit_extcode (out: FILEref, hid: hidecl): void (* ****** ****** *) fun emit_staload (out: FILEref, hid: hidecl): void fun emit_dynload (out: FILEref, hid: hidecl): void (* ****** ****** *) // fun emit_d2con_extdec (out: FILEref, d2c: d2con): void fun emit_d2conlst_extdec (out: FILEref, d2cs: d2conlst): void fun emit_d2conlst_initize (out: FILEref, d2cs: d2conlst): void // fun emit_d2cst_extdec (out: FILEref, d2c: d2cst): void fun emit_d2cstlst_extdec (out: FILEref, d2cs: d2cstlst): void // (* ****** ****** *) fun emit_tyrep (out: FILEref, hse: hisexp): void fun emit_sizeof (out: FILEref, hse: hisexp): void (* ****** ****** *) fun emit_tmplab (out: FILEref, tlab: tmplab): void fun emit_tmplabint (out: FILEref, tlab: tmplab, i: int): void (* ****** ****** *) // fun emit_set_nfnx (n: int): void // fun emit_funarg (out: FILEref, n: int): void fun emit_funapy (out: FILEref, n: int): void // (* ****** ****** *) fun emit_tmpvar (out: FILEref, tmp: tmpvar): void (* ****** ****** *) fun emit_funlab (out: FILEref, flab: funlab): void // HX: global fun emit2_funlab (out: FILEref, flab: funlab): void // HX: local (* ****** ****** *) fun emit_tmpdec (out: FILEref, tmp: tmpvar): void fun emit_tmpdeclst (out: FILEref, tmps: tmpvarlst): void (* ****** ****** *) // // HX-2013-01: // these are implemented in [pats_ccomp_hitype.dats] // abstype hitype_type typedef hitype = hitype_type typedef hitypelst = List (hitype) // fun print_hitype (hit: hitype): void fun prerr_hitype (hit: hitype): void fun fprint_hitype : fprint_type (hitype) fun fprint_hitypelst : fprint_type (hitypelst) // overload print with print_hitype overload prerr with prerr_hitype overload fprint with fprint_hitype overload fprint with fprint_hitypelst // (* ****** ****** *) // // HX: flag=0/1: flatten/regular // fun hisexp_typize(flag: int, hse: hisexp): hitype // (* ****** ****** *) fun emit_hitype (out: FILEref, hit: hitype): void (* ****** ****** *) fun emit_hisexp (out: FILEref, hse: hisexp): void fun emit_hisexplst_sep (out: FILEref, hses: hisexplst, sep: string): void // end of [emit_hisexplst_sep] fun emit_hisexp_sel (out: FILEref, hse: hisexp): void (* ****** ****** *) (* // // HX-2016-01-01: // It is commented out as it is no in use // fun emit_funtype_arg_res (out: FILEref, _arg: hisexplst, _res: hisexp): void // end of [emit_funtype_arg_res] *) (* ****** ****** *) fun emit_primval (out: FILEref, pmv: primval): void fun emit_primvalist (out: FILEref, pmvs: primvalist): void (* ****** ****** *) fun emit_primval_deref (out: FILEref, pmv: primval, hse_rt: hisexp): void // end of [emit_primval_deref] (* ****** ****** *) fun emit_primlab (out: FILEref, extknd: int, pml: primlab): void (* ****** ****** *) // typedef emit_instr_type = (FILEref, instr) -> void // fun emit_instr : emit_instr_type // fun emit_instr_fcall : emit_instr_type fun emit_instr_fcall2 : emit_instr_type // fun emit_instr_extfcall : emit_instr_type fun emit_instr_extmcall : emit_instr_type // fun emit_instr_patck : emit_instr_type // (* ****** ****** *) fun emit_ibranchlst : (FILEref, ibranchlst) -> void (* ****** ****** *) fun emit_instrlst (out: FILEref, inss: instrlst): void fun emit_instrlst_ln (out: FILEref, inss: instrlst): void (* ****** ****** *) // fun emit_funenvlst (out: FILEref, d2es: d2envlst): int fun emit_funarglst (out: FILEref, nenv: int, hses_arg: hisexplst): void // (* ****** ****** *) // fun emit_the_tmpdeclst (out: FILEref): void fun emit_the_funlablst (out: FILEref): void fun emit_the_primdeclst (out: FILEref): void fun emit_the_typedeflst (out: FILEref): void // fun emit_the_dynconlst_extdec (out: FILEref): void fun emit_the_dyncstlst_extdec (out: FILEref): void // fun emit_the_primdeclst_valimp (out: FILEref): void // (* ****** ****** *) // // HX: for emitting the prototype of a function entry // fun emit_funent_ptype (out: FILEref, fent: funent): void // fun emit_funent_closure (out: FILEref, fent: funent): void // fun emit_funent_implmnt (out: FILEref, fent: funent): void // (* ****** ****** *) fun emit_primdeclst (out: FILEref, pmds: primdeclst): void (* ****** ****** *) // fun funlab_tmparg_match (fl0: funlab, t2mas: t2mpmarglst) : bool (* fun funlab_tmpcst_match (fl: funlab, d2c: d2cst, t2mas: t2mpmarglst): bool // end of [funlab_tmpcst_match] *) (* fun funlab_tmpvar_match (fl: funlab, d2v: d2var, t2mas: t2mpmarglst): bool // end of [funlab_tmpvar_match] *) // (* ****** ****** *) // fun hiimpdec_tmpcst_match ( imp: hiimpdec, d2c: d2cst, t2mas: t2mpmarglst, knd: int ) : tmpcstmat // end of [hiimpdec_tmpcst_match] // fun hiimpdec2_tmpcst_match ( imp2: hiimpdec2, d2c: d2cst, t2mas: t2mpmarglst, knd: int ) : tmpcstmat // end of [hiimpdec2_tmpcst_match] // fun hiimpdeclst_tmpcst_match ( imps: hiimpdeclst, d2c: d2cst, t2mas: t2mpmarglst, knd: int ) : tmpcstmat // end of [hiimpdeclst_tmpcst_match] // (* ****** ****** *) // fun hifundec2tmpvarmat (hfd: hifundec, t2mas: t2mpmarglst): tmpvarmat fun hifundecopt2tmpvarmat (opt: Option_vt (hifundec), t2mas: t2mpmarglst): tmpvarmat // fun hifundec_tmpvar_match (hfd: hifundec, d2v: d2var, t2mas: t2mpmarglst): tmpvarmat // end of [hifundec_tmpvar_match] fun hifundec2_tmpvar_match (hfd2: hifundec2, d2v: d2var, t2mas: t2mpmarglst): tmpvarmat // end of [hifundec2_tmpvar_match] (* ****** ****** *) fun ccomp_tmpcstmat ( env: !ccompenv , loc0: loc_t, hse0: hisexp , d2c: d2cst, t2ms: t2mpmarglst, tmpmat: tmpcstmat ) : primval // end-of-function fun tmpcstmat_tmpcst_match (mat: tmpcstmat, d2c: d2cst, t2mas: t2mpmarglst): tmpcstmat // end of [tmpcstmat_tmpcst_match] fun ccompenv_tmpcst_match (env: !ccompenv, d2c: d2cst, t2mas: t2mpmarglst): tmpcstmat // end of [ccompenv_tmpcst_match] (* ****** ****** *) fun ccomp_tmpvarmat ( env: !ccompenv , loc0: loc_t, hse0: hisexp , d2v: d2var, t2ms: t2mpmarglst, tmpmat: tmpvarmat ) : primval // end-of-function fun tmpvarmat_tmpvar_match (mat: tmpvarmat, d2v: d2var, t2mas: t2mpmarglst): tmpvarmat // end of [tmpvarmat_tmpvar_match] fun ccompenv_tmpvar_match (env: !ccompenv, d2v: d2var, t2mas: t2mpmarglst): tmpvarmat // end of [ccompenv_tmpvar_match] (* ****** ****** *) fun t2mpmarglst_subst (loc0: loc_t, sub: !stasub, t2mas: t2mpmarglst): t2mpmarglst // end of [t2mpmarglst_subst] fun t2mpmarglst_tsubst (loc0: loc_t, tsub: tmpsub, t2mas: t2mpmarglst): t2mpmarglst // end of [t2mpmarglst_tsubst] (* ****** ****** *) // fun d2envlst_subst (sub: !stasub, d2vs: d2envlst): d2envlst_vt // (* ****** ****** *) // fun funlab_subst (sub: !stasub, flab: funlab): funlab // fun funent_subst ( env: !ccompenv , sub: !stasub, flab2: funlab, fent: funent, sfx: int ) : funent // end of [funent_subst] (* ****** ****** *) fun the_toplevel_getref_tmpvarlst (): Ptr1 fun the_toplevel_getref_primdeclst (): Ptr1 (* ****** ****** *) fun ccomp_main ( out: FILEref, flag: int, infil: filename, hids: hideclist ) : void // end of [ccomp_main] (* ****** ****** *) (* end of [pats_ccomp.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2_dynexp.dats0000644000175000017500000015061513431250607022165 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> ((*void*)) = prerr "pats_trans2_dynexp" // (* ****** ****** *) staload LOC = "./pats_location.sats" overload print with $LOC.print_location (* ****** ****** *) staload SYM = "./pats_symbol.sats" overload = with $SYM.eq_symbol_symbol (* ****** ****** *) staload LEX = "./pats_lexing.sats" (* ****** ****** *) // staload SYN = "./pats_syntax.sats" typedef d0ynq = $SYN.d0ynq // overload fprint with $SYN.fprint_macsynkind // macdef print_dqid (dq, id) = ($SYN.print_d0ynq ,(dq); $SYM.print_symbol ,(id)) // end of [print_dqid] macdef prerr_dqid (dq, id) = ($SYN.prerr_d0ynq ,(dq); $SYM.prerr_symbol ,(id)) // end of [prerr_dqid] // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_e1xpval.sats" staload "./pats_dynexp1.sats" staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans2.sats" staload "./pats_trans2_env.sats" (* ****** ****** *) #include "./pats_basics.hats" (* ****** ****** *) // macdef l2l (x) = list_of_list_vt (,(x)) macdef list_sing (x) = list_cons (,(x), list_nil) // (* ****** ****** *) (* ** HX: dynamic special identifier *) datatype dynspecid = | SPDIDderef | SPDIDassgn | SPDIDxchng | SPDIDnone // end of [dynspecid] (* ****** ****** *) fun dynspecid_of_dqid ( dq: d0ynq, id: symbol ) : dynspecid = let in // case+ dq.d0ynq_node of // case+ | $SYN.D0YNQnone() => (case+ 0 of | _ when id = $SYM.symbol_BANG => SPDIDderef () | _ when id = $SYM.symbol_COLONEQ => SPDIDassgn () | _ when id = $SYM.symbol_COLONEQCOLON => SPDIDxchng () | _ => SPDIDnone () ) (* end of [D0YNQnone] *) | _ (*non-D0YNQnone*) => SPDIDnone () // end // end of [dynspecid_of_dqid] (* ****** ****** *) fun d2sym_bang (d1e0: d1exp): d2sym = let // val id = $SYM.symbol_BANG // end of [val] // var err: int = 0 var d2pis : d2pitmlst = list_nil() // end of [var] // val ans = the_d2expenv_find(id) val () = ( case+ ans of | ~None_vt ((*void*)) => (err := err + 1) // end of [None_vt] | ~Some_vt(d2i) => ( case+ d2i of | D2ITMsymdef(sym, xs) => d2pis := xs | _ (*non-D2ITMsymdef*) => (err := err+1) ) // end of [Some_vt] ) (* end of [val] *) // val loc0 = d1e0.d1exp_loc // val ((*void*)) = if (err > 0) then { val () = prerr_interror_loc(loc0) val () = prerrln! (": d2sym_bang: d1e0 = ", d1e0) } (* end of [if] *) // in // d2sym_make(loc0, $SYN.d0ynq_none(loc0), id, d2pis) // end // end of [d2sym_bang] fun d2sym_lrbrackets (d1e0: d1exp): d2sym = let // val id = $SYM.symbol_LRBRACKETS // end of [val] // var err: int = 0 var d2pis : d2pitmlst = list_nil() // end of [var] // val ans = the_d2expenv_find(id) val () = ( case+ ans of | ~None_vt ((*void*)) => (err := err + 1) // end of [None_vt] | ~Some_vt(d2i) => ( case+ d2i of | D2ITMsymdef(sym, xs) => d2pis := xs | _ (*non-D2ITMsymdef*) => (err := err+1) ) // end of [Some_vt] ) (* end of [val] *) // val loc0 = d1e0.d1exp_loc // val ((*void*)) = if (err > 0) then { val () = prerr_interror_loc(loc0) val () = prerrln! (": d2sym_lrbrackets: d1e0 = ", d1e0) } (* end of [if] *) // in // d2sym_make(loc0, $SYN.d0ynq_none(loc0), id, d2pis) // end // end of [d2sym_lrbrackets] (* ****** ****** *) fun macdef_check ( loc0: location , d2m0: d2mac, dq: d0ynq, id: symbol ) : void = let val lev = the_maclev_get () val knd = d2mac_get_kind (d2m0) in // if lev > 0 then ( if knd >= 1 then let val () = prerr_ERROR_beg() val () = prerr_error2_loc (loc0) val () = prerr ": the identifier [" val () = prerr_dqid (dq, id) val () = prerrln! ("] refers to a macdef in long form but one in short form is expected.") val () = prerr_ERROR_end() in the_trans2errlst_add (T2E_macdef_check (loc0, d2m0)) end else () // end of [if] ) else ( // lev = 0 if knd = 0 then let // val () = prerr_ERROR_beg() val () = prerr_error2_loc (loc0) val () = prerr ": the identifier [" val () = prerr_dqid (dq, id) val () = prerrln! ("] refers to a macdef in short form but one in long form is expected.") val () = prerr_ERROR_end() in the_trans2errlst_add (T2E_macdef_check (loc0, d2m0)) end else () // end of [if] ) (* end of [if] *) // end (* end of [macdef_check] *) fun macvar_check ( loc0: location, d2v: d2var, dq: d0ynq, id: symbol ) : void = let val lev = the_maclev_get () in // if lev > 0 then let val () = prerr_error2_loc (loc0) val () = prerr ": the identifier [" val () = prerr_dqid (dq, id) val () = prerr "] refers incorrectly to a macro argument variable."; val () = prerr_newline () in the_trans2errlst_add (T2E_macvar_check (loc0, d2v)) end (* end of [if] *) // end // end of [macvar_check] (* ****** ****** *) fun d1exp_tr_dqid ( d1e0: d1exp, dq: d0ynq, id: symbol ) : d2exp = let // fun auxerr ( d1e0: d1exp, dq: d0ynq, id: symbol ) : void = { val () = prerr_error2_loc (d1e0.d1exp_loc) // end of [val] val () = filprerr_ifdebug "d1exp_tr_dqid" val () = prerr ": the dynamic identifier [" val () = prerr_dqid (dq, id) val () = prerrln! "] is unrecognized." val () = the_trans2errlst_add (T2E_d1exp_tr(d1e0)) } (* end of [auxerr] *) // val loc0 = d1e0.d1exp_loc val ans0 = the_d2expenv_find_qua (dq, id) // in // case+ ans0 of | ~Some_vt d2i0 => ( case+ d2i0 of // | D2ITMcst d2c => d2exp_cst (loc0, d2c) | D2ITMvar d2v => d2exp_var (loc0, d2v) // | D2ITMcon d2cs => let val d2cs = d2con_select_arity (d2cs, 0) val-list_cons (d2c, _) = d2cs // HX: [d2cs] cannot be nil val locarg = $LOC.location_rightmost (loc0) in d2exp_con ( loc0, d2c, loc0, list_nil(*sarg*), ~1(*npf*), locarg, list_nil(*darg*) ) // end of [d2exp_con] end // end of [D2ITEMcon] // | D2ITMe1xp exp => let val d1e = d1exp_make_e1xp (loc0, exp) in d1exp_tr (d1e) end // end of [D2ITMe1xp] // | D2ITMsymdef (sym, d2pis) => let val d2s = d2sym_make (loc0, dq, id, d2pis) in d2exp_sym (loc0, d2s) end // end of [D2ITEMsymdef] // | D2ITMmacdef (d2m) => let val () = macdef_check (loc0, d2m, dq, id) in d2exp_mac (loc0, d2m) end // end of [D2ITEMmacdef] | D2ITMmacvar (d2v) => let val () = macvar_check (loc0, d2v, dq, id) in d2exp_var (loc0, d2v) end // end of [D2ITEMmacvar] // (* | _ (*rest-of-d2itm*) => let val () = ( print "d1exp_tr_dqid: d2i0 = "; print_d2itm d2i0; print_newline () ) // end of [val] val () = auxerr (d1e0, dq, id) in d2exp_err (loc0) end // end of [_(*rest-of-d2itm*)] *) // ) // end of [Some_vt] | ~None_vt () => let val () = auxerr (d1e0, dq, id) in d2exp_errexp (loc0) end // end of [None_vt] end // end of [d1exp_tr_dqid] (* ****** ****** *) extern fun d1exp_tr_app_dyn ( d1e0: d1exp // all , d1e1: d1exp // fun , locarg: location, npf: int, darg: d1explst ) : d2exp // end of [d1exp_tr_app_dyn] extern fun d1exp_tr_app_sta_dyn ( d1e0: d1exp // all , d1e1: d1exp // sapp , d1e2: d1exp // fun , sarg: s1exparglst // static arg , locarg: location, npf: int, darg: d1explst ) : d2exp // end of [d1exp_tr_app_sta_dyn] (* ****** ****** *) // extern fun d1exp_tr_deref(d1e0: d1exp, d1es: d1explst): d2exp and d1exp_tr_assgn(d1e0: d1exp, d1es: d1explst): d2exp and d1exp_tr_xchng(d1e0: d1exp, d1es: d1explst): d2exp // (* ****** ****** *) implement d1exp_tr_deref (d1e0, d1es) = let val loc0 = d1e0.d1exp_loc in case+ d1es of | list_cons ( d1e, list_nil() ) => let val d2s = d2sym_bang(d1e) in d2exp_deref(loc0, d2s, d1exp_tr(d1e)) end // end of [list_sing] | _ => let val () = prerr_interror_loc (loc0) val () = prerrln! (": d1exp_tr_deref: d1e0 = ", d1e0) in $ERR.abort_interr{d2exp}((*reachable*)) end // end of [_] end // end of [d1exp_tr_deref] implement d1exp_tr_assgn (d1e0, d1es) = let val loc0 = d1e0.d1exp_loc in case+ d1es of | list_cons ( d1e1, list_cons (d1e2, list_nil ()) ) => d2exp_assgn (loc0, d1exp_tr d1e1, d1exp_tr d1e2) // end of [...] | _ => let val () = prerr_interror_loc (loc0) val () = prerrln! (": d1exp_tr_assgn: d1e0 = ", d1e0) in $ERR.abort_interr{d2exp}((*reachable*)) end // end of [_] end // end of [d1exp_tr_assgn] implement d1exp_tr_xchng (d1e0, d1es) = let val loc0 = d1e0.d1exp_loc in case+ d1es of | list_cons ( d1e1, list_cons (d1e2, list_nil ()) ) => d2exp_xchng (loc0, d1exp_tr d1e1, d1exp_tr d1e2) // end of [...] | _ => let val () = prerr_interror_loc (loc0) val () = prerrln! (": d1exp_tr_xchng: d1e0 = ", d1e0) in $ERR.abort_interr{d2exp}((*reachable*)) end // end of [_] end // end of [d1exp_tr_xchng] (* ****** ****** *) fun d1exp_tr_app_dyn_dqid ( d1e0: d1exp // all , d1e1: d1exp // sapp , dq: d0ynq, id: symbol // d1e1 -> dqid , locarg: location, npf: int, darg: d1explst ) : d2exp = let // val spdid = dynspecid_of_dqid (dq, id) // in // case+ spdid of | SPDIDderef () => d1exp_tr_deref (d1e0, darg) | SPDIDassgn () => d1exp_tr_assgn (d1e0, darg) | SPDIDxchng () => d1exp_tr_xchng (d1e0, darg) | _ (*SPDIDnone*) => let val ans = the_d2expenv_find_qua (dq, id) in case+ ans of | ~Some_vt d2i => ( case+ d2i of | D2ITMe1xp (exp) => d1exp_tr_app_dyn_e1xp (d1e0, d1e1, exp, locarg, npf, darg) | _ => let val sarg = list_nil() in d1exp_tr_app_sta_dyn_dqid_itm (d1e0, d1e1, d1e1, dq, id, d2i, sarg, locarg, npf, darg) end // end of [_] ) // end of [Some_vt] | ~None_vt () => let val () = prerr_error2_loc (d1e1.d1exp_loc) val () = filprerr_ifdebug "d1exp_tr_app_dyn_dqid" val () = prerr ": the dynamic identifier [" val () = prerr_dqid (dq, id) val () = prerr "] is unrecognized." val () = prerr_newline ((*void*)) val () = the_trans2errlst_add (T2E_d1exp_tr (d1e0)) in d2exp_errexp (d1e0.d1exp_loc) end // end of [None_vt] end // end of [_] // end // end of [d1exp_tr_app_dyn_dqid] and d1exp_tr_app_dyn_e1xp ( d1e0: d1exp // all , d1e1: d1exp // fun , exp1: e1xp // exp1 <- d1e1 , locarg: location, npf: int, darg: d1explst ) : d2exp = let in // case+ exp1.e1xp_node of | E1XPfun _ => let val loc0 = d1e0.d1exp_loc // prval pfu = unit_v () // val exps = list_map_vclo {unit_v} ( pfu | darg, !p_clo ) where { var !p_clo = @lam (pf: !unit_v | d1e: d1exp): e1xp => e1xp_make_d1exp (loc0, d1e) } // end of [where] // end of [val] // prval unit_v () = pfu // val exp1 = e1xp_app (loc0, exp1, loc0, (l2l)exps) (* val () = println! ("d1exp_tr_app_dyn_e1xp: exp1 = ", exp1) *) val exp2 = e1xp_normalize (exp1) (* val () = println! ("d1exp_tr_app_dyn_e1xp: exp2 = ", exp2) *) val d1e0_new = d1exp_make_e1xp (loc0, exp2) in d1exp_tr (d1e0_new) end // end of [E1XPfun] | _ => let val loc1 = d1e1.d1exp_loc val d1e_fun = d1exp_make_e1xp (loc1, exp1) in d1exp_tr_app_dyn (d1e0, d1e_fun, locarg, npf, darg) end (* end of [_] *) // end // end of [d1exp_tr_app_dyn_e1xp] and d1exp_tr_app_sta_dyn_dqid ( d1e0: d1exp // all , d1e1: d1exp // sapp , d1e2: d1exp // fun , dq: d0ynq, id: symbol , sarg: s1exparglst // static arg , locarg: location, npf: int, darg: d1explst ) : d2exp = let val ans = the_d2expenv_find_qua (dq, id) in // case+ ans of | ~Some_vt d2i => let (* val () = ( println! ("d1exp_tr_app_sta_dyn_dqid: d2i = ", d2i) ) // end of [val] *) in d1exp_tr_app_sta_dyn_dqid_itm ( d1e0, d1e1, d1e1, dq, id, d2i, sarg, locarg, npf, darg ) // end of [...] end // end of [Some_vt] | ~None_vt () => let val () = prerr_error2_loc (d1e1.d1exp_loc) val () = filprerr_ifdebug "d1exp_tr_app_sta_dyn_dqid" val () = prerr ": unrecognized dynamic identifier [" val () = prerr_dqid (dq, id) val () = prerr "]." val () = prerr_newline () val () = the_trans2errlst_add (T2E_d1exp_tr (d1e0)) in d2exp_errexp (d1e0.d1exp_loc) end // end of [None_vt] end // end of [d1exp_tr_app_sta_dyn_dqid] and d1exp_tr_app_sta_dyn_dqid_itm ( d1e0: d1exp // all , d1e1: d1exp // sapp , d1e2: d1exp // fun , dq: d0ynq, id: symbol , d2i: d2itm , sarg: s1exparglst , locarg: location, npf: int, darg: d1explst ) : d2exp = let // val loc0 = d1e0.d1exp_loc val loc1 = d1e1.d1exp_loc val loc2 = d1e2.d1exp_loc // (* val () = ( println! ("d1exp_tr_app_sta_dyn_dqid_itm: loc0 = ", loc0); println! ("d1exp_tr_app_sta_dyn_dqid_itm: d1e0 = ", d1e0); println! ("d1exp_tr_app_sta_dyn_dqid_itm: d1e1 = ", d1e1); println! ("d1exp_tr_app_sta_dyn_dqid_itm: d1e2 = ", d1e2); ) // end of [val] val () = ( print "d1exp_tr_app_sta_dyn_dqid_itm: dqid = "; print_dqid (dq, id); print_newline () ) // end of [val] *) // in // case+ d2i of // | D2ITMcst (d2c) => let val d2e2 = d2exp_cst (loc2, d2c) // end of [val] val sarg = s1exparglst_tr (sarg) // end of [val] val darg = d1explst_tr (darg) in d2exp_app_sta_dyn (loc0, loc1, d2e2, sarg, locarg, npf, darg) end // end of [D2ITMcst] // | D2ITMvar (d2v) => let val d2e2 = d2exp_var (loc2, d2v) // end of [val] val sarg = s1exparglst_tr (sarg) // end of [val] val darg = d1explst_tr (darg) in d2exp_app_sta_dyn (loc0, loc1, d2e2, sarg, locarg, npf, darg) end // end of [D2ITMvar] // | D2ITMcon (d2cs) => let // val n = list_length (darg) val d2cs = d2con_select_arity (d2cs, n) // end of [val] val-list_cons (d2c, d2cs) = d2cs // val sarg = s1exparglst_tr (sarg) // end of [val] val darg = d1explst_tr (darg) // val npf = (if npf >= ~1 then npf else ~1): int // in d2exp_con (loc0, d2c, loc1, sarg, npf, locarg, darg) end // end of [D2ITEMcon] // | D2ITMe1xp (exp) => let val d1e2 = d1exp_make_e1xp (loc2, exp) in d1exp_tr_app_sta_dyn (d1e0, d1e1, d1e2, sarg, locarg, npf, darg) end // end of [D2ITMe1xp] // | D2ITMsymdef (sym, d2pis) => let // val d2s2 = d2sym_make(loc2, dq, id, d2pis) // end of [val] val d2e2 = d2exp_sym (loc2, d2s2) // val sarg = s1exparglst_tr (sarg) // end of [val] val darg = d1explst_tr (darg) // in d2exp_app_sta_dyn (loc0, loc1, d2e2, sarg, locarg, npf, darg) end // end of [D2ITMsymdef] // | D2ITMmacdef (d2m) => let // val loc2 = d1e2.d1exp_loc // val () = macdef_check(loc2,d2m,dq,id) // end of [val] // val d2e2 = d2exp_mac (loc2, d2m) // val sarg = s1exparglst_tr (sarg) // end of [val] val darg = d1explst_tr (darg) // in d2exp_app_sta_dyn (loc0, loc1, d2e2, sarg, locarg, npf, darg) end // end of [D2ITEMmacdef] // (* | D2ITMmacvar (d2v) => let val loc2 = d1e2.d1exp_loc val () = macvar_check (loc,d2v,dq,id) // end of [val] in d2exp_var (loc0, d2v) end // end of [D2ITEMmacvar] *) | _ => let // val () = prerr_error2_loc (loc2) val () = filprerr_ifdebug "d1exp_tr_app_sta_dyn_dqid_itm" // val () = prerr ": the identifier [" val () = prerr_dqid (dq, id) val () = prerr "] does not refer to any variable, constant or constructor." val () = prerr_newline ((*void*)) val () = the_trans2errlst_add (T2E_d1exp_tr (d1e0)) // in d2exp_errexp (loc0) end (* end of [_] *) // end // end of [d1exp_tr_app_sta_dyn_dqid_itm] (* ****** ****** *) implement d1exp_tr_app_dyn ( d1e0, d1e1, locarg, npf, darg ) = let (* val () = begin println! ("d1exp_tr_app_dyn: d1e0 = ", d1e0); end // end of [val] *) in // case+ d1e1.d1exp_node of | D1Eide (id) => let val dq = $SYN.the_d0ynq_none in d1exp_tr_app_dyn_dqid (d1e0, d1e1, dq, id, locarg, npf, darg) end | D1Edqid (dq, id) => d1exp_tr_app_dyn_dqid (d1e0, d1e1, dq, id, locarg, npf, darg) // end of [D1Edqid] | _ => let val d2e1 = d1exp_tr (d1e1) val darg = d1explst_tr (darg) in d2exp_app_dyn (d1e0.d1exp_loc, d2e1, npf, locarg, darg) end // end of [_] // end // end of [d1exp_tr_app_dyn] implement d1exp_tr_app_sta_dyn ( d1e0, d1e1, d1e2, sarg, locarg, npf, darg ) = let (* val () = ( println! ("d1exp_tr_app_sta_dyn: d1e0 = ", d1e0); fprintln! (stdout_ref, "d1exp_tr_app_sta_dyn: sarg = ", sarg); ) // end of [val] *) in // case+ d1e2.d1exp_node of | D1Eide (id) => let val dq = $SYN.the_d0ynq_none in d1exp_tr_app_sta_dyn_dqid (d1e0, d1e1, d1e2, dq, id, sarg, locarg, npf, darg) end | D1Edqid (dq, id) => d1exp_tr_app_sta_dyn_dqid (d1e0, d1e1, d1e2, dq, id, sarg, locarg, npf, darg) // end of [D1Edqid] | _ => let val d2e2 = d1exp_tr (d1e2) val sarg = s1exparglst_tr (sarg) val darg = d1explst_tr (darg) in d2exp_app_sta_dyn (d1e0.d1exp_loc, d1e1.d1exp_loc, d2e2, sarg, locarg, npf, darg) end // end of [_] // end // end of [d1exp_tr_app_sta_dyn] (* ****** ****** *) extern fun d1exp_tr_macsyn (d1e0: d1exp): d2exp // implement d1exp_tr_macsyn(d1e0) = let // val loc0 = d1e0.d1exp_loc val-D1Emacsyn (knd, d1e) = d1e0.d1exp_node (* val () = { val out = stdout_ref val () = fprintln! (out, "d1exp_tr_macsyn: knd = ", knd) val () = fprintln! (out, "d1exp_tr_macsyn: d1e = ", d1e) } (* end of [val] *) *) // macdef inc () = the_maclev_inc (loc0) macdef dec () = the_maclev_dec (loc0) // in // case+ knd of | $SYN.MSKxstage () => let val () = dec () val d2e = d1exp_tr (d1e) val () = inc () in d2exp_macsyn (loc0, knd, d2e) end // end of [MSKcross] | $SYN.MSKdecode () => let val () = dec () val d2e = d1exp_tr (d1e) val () = inc () in d2exp_macsyn (loc0, knd, d2e) end // end of [MSKdecode] | $SYN.MSKencode () => let val () = inc () val d2e = d1exp_tr (d1e) val () = dec () in d2exp_macsyn (loc0, knd, d2e) end // end of [MSKencode] // end // end of [d1exp_tr_macsyn] (* ****** ****** *) extern fun d1exp_tr_macfun (d1e0: d1exp): d2exp // implement d1exp_tr_macfun(d1e0) = let // val loc0 = d1e0.d1exp_loc val-D1Emacfun (name, d1es) = d1e0.d1exp_node // val d2es = d1explst_tr (d1es) // in d2exp_macfun (loc0, name, d2es) end // end of [d1exp_tr_macfun] (* ****** ****** *) fun d1exp_tr_arrsub ( d1e0: d1exp, arr: d1exp , locind: location, ind: d1explst ) : d2exp = let val loc0 = d1e0.d1exp_loc val d2s0 = d2sym_lrbrackets (d1e0) val arr = d1exp_tr (arr) val ind = d1explst_tr (ind) in d2exp_arrsub(loc0, d2s0, arr, locind, ind) end // end of [d1exp_tr_arrsub] (* ****** ****** *) // // HX: [w1ts] is assumed to be not empty // fun d1exp_tr_wths1explst ( d1e0: d1exp, w1ts: wths1explst ) : d2exp = let val loc0 = d1e0.d1exp_loc in // case+ d1e0.d1exp_node of | D1Eann_type (d1e, s1e) => let val d2e = d1exp_tr (d1e) val s2e = s1exp_trdn_res_impred (s1e, w1ts) in d2exp_ann_type (loc0, d2e, s2e) end // end of [D1Eann_type] | D1Eann_effc (d1e, efc) => let val d2e = d1exp_tr_wths1explst (d1e, w1ts) val s2fe = effcst_tr (efc) in d2exp_ann_seff (loc0, d2e, s2fe) end // end of [D1Eann_effc] | D1Eann_funclo (d1e, fc) => let val d2e = d1exp_tr_wths1explst (d1e, w1ts) in d2exp_ann_funclo (loc0, d2e, fc) end // end of[D1Eann_funclo] | _ => let val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug "d1exp_wths1explst_tr" val () = prerr ": the dynamic expression is expected to be ascribed a type but it is not." val () = prerr_newline ((*void*)) val () = the_trans2errlst_add (T2E_d1exp_tr (d1e0)) in d2exp_errexp (loc0) end // end of [_] end (* end of [d1exp_tr_wths1explst] *) fun d1exp_tr_arg_body ( p1t_arg: p1at, d1e_body: d1exp ) : @(int, p2atlst, d2exp) = let var w1ts = WTHS1EXPLSTnil () val p2t_arg = p1at_tr_arg (p1t_arg, w1ts) val () = w1ts := wths1explst_reverse (w1ts) var npf: int = ~1 // HX: default val p2ts_arg = ( case+ p2t_arg.p2at_node of | P2Tlist (npf1, p2ts) => (npf := npf1; p2ts) | _ => list_sing (p2t_arg) // HX: npf = -1 ) : p2atlst // end of [val] val (pfenv | ()) = the_trans2_env_push () val () = { val () = the_s2expenv_add_svarlst ($UT.lstord2list (p2t_arg.p2at_svs)) val () = the_d2expenv_add_dvarlst ($UT.lstord2list (p2t_arg.p2at_dvs)) } (* end of [val] *) // val (pfinc | ()) = the_d2varlev_inc () // val d2e_body = let val isnone = wths1explst_is_none (w1ts) in if isnone then d1exp_tr (d1e_body) // HX: regular else d1exp_tr_wths1explst (d1e_body, w1ts) // end of [if] end : d2exp // end of [val] // val () = the_d2varlev_dec (pfinc | (*none*)) // val () = the_trans2_env_pop (pfenv | (*none*)) // // val p2ts_arg = lamvararg_proc (p2ts_arg) // HX-2010-08-26: for handling variadic functions // in @(npf, p2ts_arg, d2e_body) end // end of [d1exp_tr_arg_body] (* ****** ****** *) fun d1exp_tr_delay (d1e0: d1exp): d2exp = let // #define nil list_nil #define cons list_cons #define :: list_cons // val loc0 = d1e0.d1exp_loc val-D1Edelay (lin, d1e) = d1e0.d1exp_node // in // case+ 0 of | _ when lin = 0 => ( d2exp_delay (loc0, d1exp_tr (d1e)) ) // end of [_ when lin = 0] | _ => ( // $ldelay: lin = 1 case+ d1e.d1exp_node of | D1Elist ( _(*npf*), d1es ) => ( case+ d1es of | cons ( d1e1, cons (d1e2, d1es) ) => let val d2e1 = d1exp_tr (d1e1) and d2e2 = d1exp_tr (d1e2) in d2exp_ldelay (loc0, d2e1, Some (d2e2)) end // cons (_, cons (_, nil)) | _ => ( d2exp_ldelay_none (loc0, d1exp_tr (d1e)) ) // end of [_] ) // end of [D1Elist] | _ => d2exp_ldelay_none (loc0, d1exp_tr (d1e)) ) // end of [_] // end // end of [d1exp_tr_delay] (* ****** ****** *) fun i1nvarg_tr (x: i1nvarg): Option_vt (i2nvarg) = let // fun auxerr1 (x: i1nvarg): void = { val () = prerr_error2_loc (x.i1nvarg_loc) val () = filprerr_ifdebug ("i1nvarglst_tr") val () = prerr ": the dynamic identifier [" val () = $SYM.prerr_symbol (x.i1nvarg_sym) val () = prerr "] should refer to a variable but it does not." val () = prerr_newline () val () = the_trans2errlst_add (T2E_i1nvarg_tr (x)) } // end of [auxerr1] fun auxerr2 (x: i1nvarg): void = { val () = prerr_error2_loc (x.i1nvarg_loc) val () = filprerr_ifdebug ("i1nvarglst_tr") val () = prerr ": the dynamic identifier [" val () = $SYM.prerr_symbol (x.i1nvarg_sym) val () = prerr "] is unrecognized." val () = prerr_newline () val () = the_trans2errlst_add (T2E_i1nvarg_tr (x)) } // end of [auxerr2] // val ans = the_d2expenv_find x.i1nvarg_sym // in // case+ ans of | ~Some_vt d2i => (case+ d2i of | D2ITMvar d2v => let val typ = ( case+ x.i1nvarg_type of | Some s1e => let val s2e = s1exp_trdn_impred (s1e) in Some (s2e) end // end of [Some] | None () => None () ) : s2expopt // end of [val] val arg = i2nvarg_make (d2v, typ) in Some_vt (arg) end // end of [D2ITEMvar] | _ => let val () = auxerr1 (x) in None_vt () end // end of [_] ) // end of [Some_vt] | ~None_vt () => let val () = auxerr2 (x) in None_vt () end // end of [None_vt] // end of [case] end // end of [i1nvarg_tr] fun i1nvarglst_tr (xs: i1nvarglst): i2nvarglst = let (* val () = print "i1nvarlst_tr: xs = " val () = fprint_i1nvarglst (stdout_ref, xs) val () = print_newline () *) in // case+ xs of | list_cons (x, xs) => let val opt = i1nvarg_tr (x) in case+ opt of | ~Some_vt (x) => list_cons (x, i1nvarglst_tr (xs)) | ~None_vt () => i1nvarglst_tr (xs) end (* end of [list_cons] *) | list_nil () => list_nil () // end // end of [i1nvarglst_tr] fun i1nvresstate_tr (r1es: i1nvresstate): i2nvresstate = let val s2q = s1qualst_tr (r1es.i1nvresstate_qua) val body = i1nvarglst_tr (r1es.i1nvresstate_arg) in i2nvresstate_make (s2q.s2qua_svs, s2q.s2qua_sps, body) end // end of [i1nvresstate_tr] fun loopi1nv_tr (inv: loopi1nv): loopi2nv = let val loc = inv.loopi1nv_loc val s2q = s1qualst_tr (inv.loopi1nv_qua) val met = inv.loopi1nv_met val met = ( case+ met of | Some s1es => let val s2es = s1explst_trdn_int s1es in Some (s2es) end // end of [Some] | None () => None () ) : s2explstopt // end of [val] val arg = i1nvarglst_tr (inv.loopi1nv_arg) val res = i1nvresstate_tr (inv.loopi1nv_res) in loopi2nv_make (loc, s2q.s2qua_svs, s2q.s2qua_sps, met, arg, res) end // end of [loopi1nv_tr] (* ****** ****** *) fun i1fcl_tr (ifcl: i1fcl): i2fcl = let val test = d1exp_tr(ifcl.i1fcl_test) val body = d1exp_tr(ifcl.i1fcl_body) in i2fcl_make(ifcl.i1fcl_loc, test, body) end // end of [i1fcl_tr] fun i1fclist_tr (xs: i1fclist): i2fclist = ( case+ xs of | list_cons (x, xs) => list_cons (i1fcl_tr(x), i1fclist_tr(xs)) | list_nil () => list_nil () ) (* end of [i1fclist_tr] *) (* ****** ****** *) fun gm1at_tr ( gm1t: gm1at ) : gm2at = let val d2e = d1exp_tr (gm1t.gm1at_exp) val p2topt = ( case+ gm1t.gm1at_pat of | Some p1t => let val p2t = p1at_tr p1t val s2vs = $UT.lstord2list (p2t.p2at_svs) val () = the_s2expenv_add_svarlst s2vs val d2vs = $UT.lstord2list (p2t.p2at_dvs) val () = the_d2expenv_add_dvarlst d2vs in Some (p2t) end // end of [Some] | None () => None () ) : p2atopt // end of [val] in gm2at_make (gm1t.gm1at_loc, d2e, p2topt) end // end of [gm1at_tr] (* ****** ****** *) fun c1lau_tr{n:nat} (n: int n, c1l: c1lau): c2lau = let // fun auxerr ( c1l: c1lau, n: int, n1: int ) : void = let val () = prerr_error2_loc (c1l.c1lau_loc) // end of [val] val () = filprerr_ifdebug ("c1lau_tr") val () = prerr ": this clause should contain " val () = prerr_string (if n >= n1 then "more" else "fewer") val () = prerr " patterns." val () = prerr_newline () val () = the_trans2errlst_add (T2E_c1lau_tr (c1l)) in // nothing end // end of [auxerr] // val loc = c1l.c1lau_loc val p1t = c1l.c1lau_pat val p1ts = ( case+ p1t.p1at_node of | P1Tlist (_(*npf*), p1ts) => p1ts | _ => list_sing (p1t) ) : p1atlst // end of [val] val p2ts = p1atlst_tr (p1ts) val np2ts = list_length (p2ts) // // HX-2016-05-13: // See bug-2016-05-13.dats // Fixing a bug with empty match p2atlst // val p2ts = ( // if np2ts > 0 then p2ts else let // val p2t0 = p2at_any(loc) // in list_cons(p2t0, list_nil()) end // end of [if] // ) : p2atlst // val np2ts = (if np2ts > 0 then np2ts else 1): int // (* val () = ( printf ("c1lau_tr: n = %i and n1 = %i\n", @(n, n1)) ) // end of [val] *) // val () = if n != np2ts then auxerr(c1l, n, np2ts) // end of [ifthen] // val (pfenv | ()) = the_trans2_env_push() // val () = let val s2vs = $UT.lstord2list(p2atlst_svs_union(p2ts)) in the_s2expenv_add_svarlst (s2vs) end // end of [val] val () = let val d2vs = $UT.lstord2list (p2atlst_dvs_union(p2ts)) in the_d2expenv_add_dvarlst (d2vs) end // end of [val] // val gua = c1l.c1lau_gua val gua = l2l (list_map_fun(gua, gm1at_tr)) // val body = d1exp_tr (c1l.c1lau_body) // val () = the_trans2_env_pop (pfenv | (*none*)) // in c2lau_make (loc, p2ts, gua, c1l.c1lau_seq, c1l.c1lau_neg, body) end // end of [c1lau_tr] fun c1laulst_tr {n:nat} (n: int n, c1ls: c1laulst): c2laulst = ( case+ c1ls of | list_cons (c1l, c1ls) => list_cons (c1lau_tr (n, c1l), c1laulst_tr (n, c1ls)) | list_nil () => list_nil () ) // end of [c1laulst_tr] (* ****** ****** *) fun sc1lau_trdn ( sc1l: sc1lau, s2t_pat: s2rt ) : sc2lau = let val sp1t = sc1l.sc1lau_pat val (pfenv | ()) = the_s2expenv_push_nil () val sp2t = sp1at_trdn (sp1t, s2t_pat) val () = the_s2expenv_add_sp2at (sp2t) val body = d1exp_tr (sc1l.sc1lau_body) val () = the_s2expenv_pop_free (pfenv | (*none*)) in sc2lau_make (sc1l.sc1lau_loc, sp2t, body) end // end of [sc1lau_tr] fun sc1laulst_trdn ( xs: sc1laulst, s2t: s2rt ) : sc2laulst = ( case+ xs of | list_cons (x, xs) => list_cons (sc1lau_trdn (x, s2t), sc1laulst_trdn (xs, s2t)) | list_nil () => list_nil () ) // end of [sc1laulst_trdn] (* ****** ****** *) local vtypedef sc2laulst_vt = List_vt (sc2lau) fun sc2lau_get_dstag .<>. ( sc2l: sc2lau ) :<> int = let val sp2t = sc2l.sc2lau_pat in case+ sp2t.sp2at_node of | SP2Tcon (s2c, _) => $effmask_all (s2cst_get_dstag (s2c)) | SP2Terr () => ~1 (*err*) end // end of [sc2lau_get_dstag] fun auxerr_lt (loc0: location, sc2l: sc2lau): void = let val loc = sc2l.sc2lau_loc val () = prerr_error2_loc (loc) val () = prerr ": the static clause is repeated." val () = prerr_newline () in the_trans2errlst_add (T2E_sc2laulst_coverck_repeat (loc0, sc2l)) end // end of [auxerr_lt] fun auxerr_gts ( loc0: location, s2cs: s2cstlst, n: int, tag: int ) : void = let in // if n < tag then ( case+ s2cs of | list_cons (s2c, s2cs) => ( if n > 0 then auxerr_gts (loc0, s2cs, n-1, tag-1) else let val () = prerr_error2_loc (loc0) val () = prerr ": the static clause associated with [" val () = prerr_s2cst (s2c) val () = prerr "] is missing." val () = prerr_newline () val () = the_trans2errlst_add (T2E_sc2laulst_coverck_missing (loc0, s2c)) // end of [val] in auxerr_gts (loc0, s2cs, 0, tag-1) end // end of [if] ) // end of [list_cons] | list_nil () => () ) else () // end of [if] // end // end of [auxerr_gts] fun auxmain1 ( loc0: location , sc2ls: sc2laulst , s2td_pat: s2rtdat ) : void = let val sc2ls2 = list_copy (sc2ls) val sc2ls2 = let var !p_clo = @lam ( x1: &sc2lau, x2: &sc2lau ) : int = sc2lau_get_dstag (x1) - sc2lau_get_dstag (x2) in list_vt_mergesort (sc2ls2, !p_clo) end // end of [val] val () = auxmain2 (loc0, sc2ls2, s2td_pat) in // empty end // end of [auxmain1] and auxmain2 ( loc0: location , sc2ls: List_vt (sc2lau) , s2td_pat: s2rtdat ) : void = let // fun loop ( loc0: location , sc2ls: sc2laulst_vt, s2cs: s2cstlst, n: int ) : void = let in // case+ sc2ls of | ~list_vt_cons (sc2l, sc2ls) => let val tag = sc2lau_get_dstag (sc2l) in if tag >= 0 then ( if tag < n then let val () = auxerr_lt (loc0, sc2l) in loop (loc0, sc2ls, s2cs, n) end else let val () = auxerr_gts (loc0, s2cs, n, tag) in loop (loc0, sc2ls, s2cs, tag+1) end // end of [if] ) else loop (loc0, sc2ls, s2cs, n) // skipping SP2Terr // end of [if] end // end of [list_vt_cons] | ~list_vt_nil () => let val ns2cs = list_length (s2cs) in auxerr_gts (loc0, s2cs, n, ns2cs) end // end of [list_vt_nil] end // end of [loop] // val s2cs = s2rtdat_get_sconlst (s2td_pat) // in loop (loc0, sc2ls, s2cs, 0) end // end of [auxmain2] in (* in of [local] *) implement sc2laulst_coverck (loc0, sc2ls, s2t_pat) = let // fun auxerr1 ( loc0: location, s2t_pat: s2rt ) : void = let val () = prerr_error2_loc (loc0) val () = prerr ": the static expression being analyzed is of the sort [" val () = prerr_s2rt (s2t_pat) val () = prerrln! ("], which is not a base sort as is required.") in the_trans2errlst_add (T2E_sc2laulst_coverck_sort (loc0, s2t_pat)) end // end of [auxerr1] fun auxerr2 ( loc0: location, s2t_pat: s2rt ) : void = let val () = prerr_error2_loc (loc0) val () = prerr ": the static expression being analyzed is of the sort [" val () = prerr_s2rt (s2t_pat) val () = prerrln! ("], which is not a datasort as is required.") in the_trans2errlst_add (T2E_sc2laulst_coverck_sort (loc0, s2t_pat)) end // end of [auxerr2] // in // case s2t_pat of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASdef s2td => auxmain1 (loc0, sc2ls, s2td) | _ (*non-S2RTBASdef*) => auxerr2 (loc0, s2t_pat) ) (* end of [S2RTbas] *) | _(*non-S2RTbas*) => auxerr1 (loc0, s2t_pat) // end // end of [sc2laulst_coverck] end // end of [local] (* ****** ****** *) // fun un_d1exp_sing (d1e: d1exp): d1exp = ( // case+ d1e.d1exp_node of | D1Esing(d1e) => un_d1exp_sing(d1e) | _ => d1e // ) (* end of [un_d1exp_sing] *) // (* ****** ****** *) implement d1exp_tr (d1e0) = let val loc0 = d1e0.d1exp_loc // (* fun aux_d2e2i (d2e: d2exp): int = ( case+ d2e.d2exp_node of // | D2Eint (i) => i // | D2Ei0nt (x) => let val-$LEX.T_INT (base, rep, sfx) = x.token_node in $UN.cast2int($UT.llint_make_string(rep)) end // end of [D2Ei0nt] | _(*rest-of-D2E*) => (~1) ) (* end of [aux_d2e2i] *) *) (* // val () = println! ("d1exp_tr: d1e0 = ", d1e0) // *) in // case+ d1e0.d1exp_node of // | D1Eide (id) => let val dq = $SYN.the_d0ynq_none in d1exp_tr_dqid (d1e0, dq, id) end // end of [D1Eide] | D1Edqid (dq, id) => d1exp_tr_dqid (d1e0, dq, id) // | D1Eint (i) => d2exp_int (loc0, i) | D1Eintrep (rep) => d2exp_intrep (loc0, rep) // | D1Ebool (b) => d2exp_bool (loc0, b) | D1Echar (c) => d2exp_char (loc0, c) // | D1Efloat (rep) => d2exp_float (loc0, rep) | D1Estring (str) => d2exp_string (loc0, str) // | D1Ei0nt (x) => d2exp_i0nt (loc0, x) | D1Ec0har (x) => d2exp_c0har (loc0, x) | D1Ef0loat (x) => d2exp_f0loat (loc0, x) | D1Es0tring (x) => d2exp_s0tring (loc0, x) // | D1Ecstsp (csp) => d2exp_cstsp (loc0, csp) // end of [D1Ecstsp] // | D1Etyrep (s1e) => d2exp_tyrep (loc0, s1exp_trdn_vt0ype(s1e)) // d2exp_tyrep // end of [D1Etyrep] // | D1Eliteral (d1e) => d2exp_literal(loc0, d1exp_tr(d1e)) // end of [D1Eliteral] // | D1Etop () => d2exp_top (loc0) | D1Eempty () => d2exp_empty (loc0) // | D1Eextval (s1e, name) => let val s2e = s1exp_trdn_vt0ype (s1e) // end of [val] in d2exp_extval (loc0, s2e, name) end (* end of [D1Eextval] *) // | D1Eextfcall (s1e, _fun, _arg) => let val s2e = s1exp_trdn_vt0ype (s1e) val _arg = d1explst_tr (_arg) in d2exp_extfcall (loc0, s2e, _fun, _arg) end (* end of [D1Eextfcall] *) | D1Eextmcall ( s1e, _obj, _mtd, _arg ) => let val s2e = s1exp_trdn_vt0ype (s1e) // end of [val] val _obj = d1exp_tr (_obj) val _arg = d1explst_tr (_arg) in d2exp_extmcall (loc0, s2e, _obj, _mtd, _arg) end (* end of [D1Eextmcall] *) // | D1Eloopexn (knd) => d2exp_loopexn (loc0, knd) // | D1Efoldat (s1as, d1e) => let val d1e = un_d1exp_sing (d1e) val s2as = s1exparglst_tr (s1as) in d2exp_foldat (loc0, s2as, d1exp_tr (d1e)) end // end of [D1Efoldat] | D1Efreeat (s1as, d1e) => let val d1e = un_d1exp_sing (d1e) val s2as = s1exparglst_tr (s1as) in d2exp_freeat (loc0, s2as, d1exp_tr (d1e)) end // end of [D1Efreeat] // | D1Etmpid (qid, t1mas) => let val q = qid.dqi0de_qua and id = qid.dqi0de_sym val d2e_qid = d1exp_tr_dqid (d1e0, q, id) val t2mas = t1mpmarglst_tr (t1mas) in d2exp_tmpid (loc0, d2e_qid, t2mas) end // end of [D1Etmpid] // | D1Elet (d1cs, d1e) => let val (pfenv | ()) = the_trans2_env_push () val d2cs = d1eclist_tr (d1cs); val d2e = d1exp_tr (d1e) val () = the_trans2_env_pop (pfenv | (*none*)) in d2exp_let (loc0, d2cs, d2e) end // end of [D1Elet] | D1Ewhere (d1e, d1cs) => let val (pfenv | ()) = the_trans2_env_push () val d2cs = d1eclist_tr (d1cs); val d2e = d1exp_tr (d1e) val () = the_trans2_env_pop (pfenv | (*none*)) in d2exp_where (loc0, d2e, d2cs) end // end of [D1Ewhere] | D1Edecseq (d1cs) => let val (pfenv | ()) = the_trans2_env_push () val d2cs = d1eclist_tr (d1cs); val d2e = d2exp_empty (loc0) val () = the_trans2_env_pop (pfenv | (*none*)) in d2exp_let (loc0, d2cs, d2e) end // end of [D1Edecseq] // | D1Eapp_dyn ( d1e1, locarg, npf, darg ) => ( case+ d1e1.d1exp_node of | D1Eapp_sta (d1e2, sarg) => d1exp_tr_app_sta_dyn ( d1e0, d1e1, d1e2, sarg, locarg, npf, darg ) // end of [D1Eapp_sta] | _ => d1exp_tr_app_dyn (d1e0, d1e1, locarg, npf, darg) ) // end of [D1Eapp_dyn] | D1Eapp_sta (d1e1, sarg) => let val locarg = loc0 // HX: it is just a dummy in d1exp_tr_app_sta_dyn ( d1e0, d1e0, d1e1, sarg, locarg, ~2(*fake*), list_nil(*darg*) ) // end of [d1exp_tr_app_sta_dyn] end // end of [D1Eapp_sta] // | D1Esing (d1e) => d2exp_sing(loc0, d1exp_tr (d1e)) // | D1Elist ( npf, d1es ) => ( case+ d1es of | list_cons _ => let val d2es = d1explst_tr (d1es) in d2exp_list (loc0, npf, d2es) end // end of [list_cons] | list_nil () => d2exp_empty (loc0) ) // end of [D1Elist] // | D1Eifhead ( r1es, _cond, _then, _else ) => let val r2es = i1nvresstate_tr(r1es) // end of [val] val _cond = d1exp_tr(_cond) val _then = d1exp_tr(_then) val _else = d1expopt_tr(_else) in d2exp_ifhead(loc0, r2es, _cond, _then, _else) end // end of [D1Eifhead] | D1Esifhead ( r1es, _cond, _then, _else ) => let val r2es = i1nvresstate_tr(r1es) // end of [val] val _cond = s1exp_trdn_bool(_cond) // end of [val] val _then = d1exp_tr(_then) and _else = d1exp_tr(_else) in d2exp_sifhead(loc0, r2es, _cond, _then, _else) end // end of [D1Eifhead] // | D1Eifcasehd (r1es, ifcls) => let val r2es = i1nvresstate_tr(r1es) // end of [val] val ifcls = i1fclist_tr(ifcls) in d2exp_ifcasehd(loc0, r2es, ifcls) end // end of [D1Eifcasehd] // | D1Ecasehead ( knd, r1es, d1es, c1ls ) => let val r2es = i1nvresstate_tr (r1es) val d2es = d1explst_tr (d1es) val ntup = list_length (d2es) // // HX-2016-05-13: // See bug-2016-05-13.dats // Fixing a bug with empty match d2explst // val d2es = ( if ntup > 0 then d2es else let val d2e0 = d2exp_empty(loc0) in list_cons(d2e0, list_nil(*none*)) end // end of [if] ) : d2explst val ntup = ( if (ntup > 0) then ntup else 1 ) : intGte(1) // end of [val] // val c2ls = c1laulst_tr (ntup, c1ls) // in d2exp_casehead (loc0, knd, r2es, d2es, c2ls) end // end of [D1Ecasehead] | D1Escasehead ( r1es, s1e, sc1ls ) => let val r2es = i1nvresstate_tr (r1es) val s2e = s1exp_trup (s1e) val s2t_pat = s2e.s2exp_srt val sc2ls = sc1laulst_trdn (sc1ls, s2t_pat) val () = sc2laulst_coverck (loc0, sc2ls, s2t_pat) // FIXME!!! // end of [val] in d2exp_scasehead (loc0, r2es, s2e, sc2ls) end // end of [D1Escasehead] // | D1Elst ( lin, s1eopt, d1es ) => let val opt = ( case+ s1eopt of | Some s1e => let val s2e = ( case+ lin of | 0 => s1exp_trdn_t0ype (s1e) | 1 => s1exp_trdn_vt0ype (s1e) | _ => s1exp_trdn_impred (s1e) // unspecified ) : s2exp // end of [val] in Some (s2e) end // end of [Some] | None () => None () ) : s2expopt // end of [val] val d2es = d1explst_tr (d1es) in d2exp_lst (loc0, lin, opt, d2es) end // end of [D1Elst] // | D1Etup ( tupknd, npf, d1es ) => let in d2exp_tup (loc0, tupknd, npf, d1explst_tr d1es) end // end of [D1Etup] | D1Erec ( recknd, npf, ld1es ) => let val ld2es = list_map_fun (ld1es, labd1exp_tr) // end of [val] in d2exp_rec (loc0, recknd, npf, (l2l)ld2es) end // end of [D1Erec] // | D1Eseq d1es => let val d2es = d1explst_tr (d1es) in d2exp_seq2 (loc0, d2es) end // end of [D1Eseq] // | D1Earrsub (arr, locind, ind) => let in d1exp_tr_arrsub (d1e0, arr, locind, ind) end // end of [D1Earrsub] | D1Earrpsz (elt, init) => let val opt = s1expopt_trup (elt) val opt = ( case+ opt of | Some s2e => Some (s2e) | None () => None () ) : s2expopt val init = d1explst_tr (init) in d2exp_arrpsz (loc0, opt, init) end // end of [D1Earrpsz] // | D1Earrinit ( s1e_elt, asz, init ) => let val s2t_elt = ( case+ asz of | Some _ => ( case+ init of | list_cons _ => s2rt_t0ype // cannot be linear | list_nil ((*uninitized*)) => s2rt_vt0ype // can be linear ) (* end of [Some] *) | None _ => s2rt_vt0ype // can be linear ) : s2rt // end of [val] val s2e_elt = s1exp_trdn (s1e_elt, s2t_elt) val asz = d1expopt_tr (asz) val init = d1explst_tr (init) in d2exp_arrinit (loc0, s2e_elt, asz, init) end // end of [D1Earrinit] // | D1Eptrof (d1e) => let val d1e = un_d1exp_sing (d1e) in d2exp_ptrof (loc0, d1exp_tr (d1e)) end // end of [D1Eptrof] // | D1Eviewat (d1e) => let val d1e = un_d1exp_sing (d1e) in d2exp_viewat (loc0, d1exp_tr (d1e)) end // end of [D1Eviewat] // | D1Eselab (knd, d1e, d1l) => let val d2e = d1exp_tr(d1e) val d2l = d1lab_tr(d1l) in if knd = 0 then ( // [.] case+ d2e.d2exp_node of // case+ | D2Eselab (d2e_root, d2ls) => ( d2exp_sel_dot(loc0, d2e_root, l2l(list_extend (d2ls, d2l))) ) (* end of [D2Eselab] *) | _ (*non-D2Eselab*) => d2exp_sel_dot(loc0, d2e, list_sing (d2l)) ) else let val d2s = d2sym_bang(d1e) in d2exp_sel_ptr(loc0, d2s, d2e, d2l) // [->] end (* end of [if] *) end (* end of [D1Eselab] *) // | D1Eraise (d1e_exn) => let val d1e_exn = un_d1exp_sing (d1e_exn) // end of [val] in d2exp_raise (loc0, d1exp_tr(d1e_exn)) end // end of [D1Eraise] // | D1Eeffmask (efc, d1e_body) => let val s2fe = effcst_tr(efc) val d1e_body = un_d1exp_sing (d1e_body) // end of [val] val d2e_body = d1exp_tr (d1e_body) in d2exp_effmask (loc0, s2fe, d2e_body) end // end of [D1Eeffmask] // | D1Evararg (d1es) => d2exp_vararg(loc0, d1explst_tr(d1es)) // | D1Evcopyenv (knd, d1e) => let val d1e = un_d1exp_sing(d1e) in d2exp_vcopyenv (loc0, knd, d1exp_tr d1e) end // end of [D1Evcopyenv] // | D1Eshowtype (d1e) => let val d1e = un_d1exp_sing(d1e) in d2exp_showtype (loc0, d1exp_tr(d1e)) end // end of [D1Eshowtype] // | D1Etempenver (d1e) => let // fun auxlst ( d2es: d2explst ) : d2varlst = ( case+ d2es of | list_nil ((*void*)) => list_nil () | list_cons (d2e, d2es) => auxlst2 (d2e, d2es) ) (* end of [auxlst] *) // and auxlst2 ( d2e: d2exp, d2es: d2explst ) : d2varlst = ( case+ d2e.d2exp_node of | D2Evar (d2v) => list_cons(d2v, auxlst(d2es)) // end of [D2Evar] | _(*non-D2Evar*) => auxlst(d2es) ) (* end of [auxlst2] *) // val d2e = d1exp_tr (d1e) // val d2vs = ( case+ d2e.d2exp_node of | D2Evar (d2v) => list_sing(d2v) | D2Esing (d2e) => auxlst2(d2e, list_nil(*void*)) // end of [D2Esing] | D2Elist (_(*npf*), d2es) => auxlst (d2es) // end of [D2Elist] | _(*rest-of-d2exp*) => list_nil(*void*) ) : d2varlst // end of [val] in d2exp_tempenver (loc0, d2vs) end // end of [D1Etempenver] // | D1Eexist (s1a, d1e) => let val s2a = s1exparg_tr(s1a) val d1e = un_d1exp_sing(d1e) in d2exp_exist (loc0, s2a, d1exp_tr(d1e)) end // end of [D1Eexist] // | D1Elam_dyn ( lin, p1t_arg, d1e_body ) => let val @( npf, p2ts_arg, d2e_body ) = d1exp_tr_arg_body (p1t_arg, d1e_body) // end of [val] in d2exp_lam_dyn (loc0, lin, npf, p2ts_arg, d2e_body) end // end of [D1Elam_dyn] | D1Elaminit_dyn ( lin, p1t_arg, d1e_body ) => let val @(npf, p2ts_arg, d2e_body) = d1exp_tr_arg_body (p1t_arg, d1e_body) in d2exp_laminit_dyn (loc0, lin, npf, p2ts_arg, d2e_body) end // end of [D1Elam_dyn] | D1Elam_met (locarg, met, body) => let val met = s1explst_trup (met) val body = d1exp_tr (body) in d2exp_lam_met_new (loc0, met, body) end (* end of [D1Elam_met] *) | D1Efix ( knd, id, d1e_body ) => let val d2v = d2var_make (id.i0de_loc, id.i0de_sym) // end of [val] val () = d2var_set_isfix (d2v, true) val (pfenv | ()) = the_d2expenv_push_nil () val () = the_d2expenv_add_dvar (d2v) val d2e_body = d1exp_tr (d1e_body) val () = the_d2expenv_pop_free (pfenv | (*none*)) in d2exp_fix (loc0, knd, d2v, d2e_body) end // end of [D1Efix] // | D1Elam_sta_syn ( _(*locarg*), s1qs, d1e ) => let val (pfenv | ()) = the_s2expenv_push_nil () val s2q = s1qualst_tr (s1qs) val d2e = d1exp_tr (d1e) val () = the_s2expenv_pop_free (pfenv | (*none*)) in d2exp_lam_sta (loc0, s2q.s2qua_svs, s2q.s2qua_sps, d2e) end // end of [D1Elam_sta_syn] // | D1Edelay _ => d1exp_tr_delay (d1e0) // | D1Ewhile ( i1nv, d1e_test, d1e_body ) => let val (pfenv | ()) = the_s2expenv_push_nil () val i2nv = loopi1nv_tr (i1nv) val d2e_test = d1exp_tr (d1e_test) val d2e_body = d1exp_tr (d1e_body) val () = the_s2expenv_pop_free (pfenv | (*none*)) in d2exp_while (loc0, i2nv, d2e_test, d2e_body) end // end of [D1Ewhile] // | D1Efor ( i1nv, init, test, post, body ) => let val init = d1exp_tr (init) val (pfenv | ()) = the_s2expenv_push_nil () val i2nv = loopi1nv_tr (i1nv) val test = ( case+ test.d1exp_node of | D1Eempty () => d2exp_bool (loc0, true) | _ => d1exp_tr test ) : d2exp // end of [val] val post = d1exp_tr (post) val body = d1exp_tr (body) val () = the_s2expenv_pop_free (pfenv | (*none*)) in d2exp_for (loc0, i2nv, init, test, post, body) end // end of [D1Efor] // | D1Etrywith (r1es, d1e, c1ls) => let val r2es = i1nvresstate_tr (r1es) val d2e = d1exp_tr (d1e) val c2ls = c1laulst_tr (1(*npat*), c1ls) in d2exp_trywith (loc0, r2es, d2e, c2ls) end // end of [D1Etrywith] // | D1Eann_type (d1e, s1e) => let val d2e = d1exp_tr (d1e) val s2e = s1exp_trdn_impred (s1e) in d2exp_ann_type (loc0, d2e, s2e) end // end of [D1Eann_type] | D1Eann_effc (d1e, efc) => let val d2e = d1exp_tr (d1e) val s2fe = effcst_tr (efc) in d2exp_ann_seff (loc0, d2e, s2fe) end // end of [D1Eann_effc] | D1Eann_funclo (d1e, funclo) => let val d2e = d1exp_tr (d1e) in d2exp_ann_funclo (loc0, d2e, funclo) end // end of [D1Eann_funclo] // | D1Emacsyn _ => d1exp_tr_macsyn (d1e0) | D1Emacfun _ => d1exp_tr_macfun (d1e0) // | D1Esolassert(d1e) => d2exp_solassert(loc0, d1exp_tr(d1e)) // end of [D1Esolassert] | D1Esolverify(s1e) => d2exp_solverify(loc0, s1exp_trdn(s1e, s2rt_prop)) // end of [D1Esolverify] // | D1Eerrexp((*void*)) => d2exp_errexp (loc0) // | D1Eidextapp (id, d1es) => let val () = prerr_error2_loc(loc0) val () = prerr ": the external id [" val () = $SYM.prerr_symbol (id) val () = prerr "] cannot be handled." val () = prerr_newline ((*void*)) val () = the_trans2errlst_add (T2E_d1exp_tr (d1e0)) in d2exp_errexp (loc0) end // end of [_] // | D1Esexparg _ => let val () = prerr_error2_loc(loc0) val () = prerr ": this form of expression is only allowed to occur as an argument." val () = prerr_newline ((*void*)) val () = the_trans2errlst_add (T2E_d1exp_tr (d1e0)) in d2exp_errexp (loc0) end // end of [D1Esexparg] // // (* | _ (*unsupported*) => let val () = prerr_interror_loc (loc0) val () = filprerr_ifdebug "d1exp_tr" val () = prerrln! (": not yet implemented: d1e0 = ", d1e0) in $ERR.abort_interr{d2exp}((*reachable*)) end // end of [_(*unsupported*)] // *) // end // end of [let] // end of [d1exp_tr] (* ****** ****** *) implement d1explst_tr (d1es) = l2l (list_map_fun (d1es, d1exp_tr)) implement d1expopt_tr (d1eopt) = ( case+ d1eopt of | Some (d1e) => Some (d1exp_tr (d1e)) | None () => None () ) (* end of [d1expopt_tr] *) (* ****** ****** *) implement labd1exp_tr (ld1e) = let val+$SYN.DL0ABELED (l, d1e) = ld1e in labd2exp_make (l, d1exp_tr (d1e)) end // end of [labd0exp_tr] (* ****** ****** *) implement d1lab_tr (d1l0) = let // val loc0 = d1l0.d1lab_loc // in // case+ d1l0.d1lab_node of | D1LABlab (lab) => let val dotid = $LAB.label_dotize (lab) // end of [dotid] val ans = the_d2expenv_find (dotid) val opt = ( case+ ans of | ~Some_vt (d2i) => ( case+ d2i of | D2ITMsymdef (sym, xs) => ( case+ xs of | list_nil () => None () | list_cons _ => let val dq = $SYN.the_d0ynq_none val d2s = d2sym_make (loc0, dq, dotid, xs) in Some (d2s) end // end of [list_cons] ) (* D2ITMsymdef *) | _ (*non-symdef*) => None () ) (* end of [some_vt] *) | ~None_vt ((*void*)) => None () ) : d2symopt // end of [val] in d2lab_lab (loc0, lab, opt) end // end of [d1lab_tr] | D1LABind (ind) => d2lab_ind (loc0, d1explst_tr (ind)) // end // end of [d1lab_tr] (* ****** ****** *) // // HX: it is declared in [pats_trans3_env.sats] // extern fun s2exp_tmp_instantiate_tmpmarglst ( s2f: s2exp , locarg: loc_t, s2qs: s2qualst, t2mas: t2mpmarglst, err: &int ) : (s2exp(*res*), t2mpmarglst) = "ext#patsopt_s2exp_tmp_instantiate_tmpmarglst" // implement S1Ed2ctype_tr(d2ctp) = let // val d2e0 = d1exp_tr($UN.cast{d1exp}(d2ctp)) // fun auxerr_cst ( d2c: d2cst ) : void = { val () = prerr_error2_loc (d2e0.d2exp_loc) val () = filprerr_ifdebug "S1Ed2ctype_tr" val () = prerrln! (": the dynamic constant [", d2c, "] should be instantiated.") val () = the_trans2errlst_add (T2E_S1Ed2ctype_tr(d2ctp)) } // fun auxerr1_tmpid ( d2e_id: d2exp ) : void = { val () = prerr_error2_loc (d2e_id.d2exp_loc) val () = filprerr_ifdebug "S1Ed2ctype_tr" val () = prerrln! (": a declared dynamic constant is expected instead of [", d2e_id, "].") } fun auxerr2_tmpid ( d2e_id: d2exp, d2c: d2cst ) : void = { val () = prerr_error2_loc (d2e_id.d2exp_loc) val () = filprerr_ifdebug "S1Ed2ctype_tr" val () = prerrln! (": the dynamic constant [", d2c, "] is required to be be fully instantiated.") val () = the_trans2errlst_add (T2E_S1Ed2ctype_tr(d2ctp)) } // in // case+ d2e0.d2exp_node of (* cast+ *) // | D2Ecst(d2c) => let val istmp = d2cst_is_tmpcst(d2c) val () = if istmp then auxerr_cst(d2c) in d2cst_get_type(d2c) end // end of [D2Ecst] // | D2Etmpid (d2e_id, t2mas) => ( case+ d2e_id.d2exp_node of (* case+ *) | D2Ecst (d2c) => let val loc0 = d2e0.d2exp_loc val locarg = $LOC.location_rightmost(loc0) val s2e = d2cst_get_type(d2c) val s2qs = d2cst_get_decarg (d2c) val s2e_d2c = d2cst_get_type (d2c) // var err: int = 0 val (s2e_tmp, t2mas2) = s2exp_tmp_instantiate_tmpmarglst(s2e_d2c, locarg, s2qs, t2mas, err) // val sgn = list_length_compare(t2mas, t2mas2) val ((*check*)) = if sgn < 0 then auxerr2_tmpid(d2e_id, d2c) // partial instantiation // in s2e_tmp end // end of [D2Ecst] | _ (*non-D2Ecst*) => let val () = auxerr1_tmpid(d2e_id) in s2exp_s2rt_err() end // end of [non-D2Ecst] ) (* end of [D2Etmpid] *) // | _(*rest-of-d2exp*) => let val () = prerr_error2_loc (d2e0.d2exp_loc) val () = filprerr_ifdebug "S1Ed2ctype_tr" val () = println! (": [$d2ctype] can only be applied to a declared dynamic constant.") val () = the_trans2errlst_add (T2E_S1Ed2ctype_tr(d2ctp)) in s2exp_s2rt_err((*error*)) end // end of [rest-d2exp] // end // end of [S1Ed2ctype_tr] (* ****** ****** *) (* end of [pats_trans2_dynexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2_decl.dats0000644000175000017500000016562113431250607021570 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" macdef castvwtp1 = $UN.castvwtp1 (* ****** ****** *) staload ERR = "./pats_error.sats" staload GLOB = "./pats_global.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_trans2_decl" // (* ****** ****** *) // staload FIL = "./pats_filename.sats" // overload print with $FIL.print_filename_full // (* ****** ****** *) staload SYM = "./pats_symbol.sats" // macdef EQEQ = $SYM.symbol_EQEQ // overload = with $SYM.eq_symbol_symbol overload != with $SYM.neq_symbol_symbol // overload print with $SYM.print_symbol // (* ****** ****** *) staload SYN = "./pats_syntax.sats" typedef i0de = $SYN.i0de typedef i0delst = $SYN.i0delst typedef s0taq = $SYN.s0taq typedef d0ynq = $SYN.d0ynq typedef sqi0de = $SYN.sqi0de typedef dqi0de = $SYN.dqi0de typedef impqi0de = $SYN.impqi0de typedef dcstextdef = $SYN.dcstextdef (* ****** ****** *) overload print with $SYN.print_i0de overload print with $SYN.print_dqi0de (* ****** ****** *) macdef prerr_dqid (dq, id) = ($SYN.prerr_d0ynq ,(dq); $SYM.prerr_symbol ,(id)) // end of [prerr_dqid] (* ****** ****** *) staload NS = "./pats_namespace.sats" (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" staload "./pats_staexp2.sats" staload "./pats_stacst2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans2.sats" staload "./pats_trans2_env.sats" (* ****** ****** *) #define l2l list_of_list_vt macdef list_sing (x) = list_cons (,(x), list_nil) (* ****** ****** *) fun symintr_tr (ids: i0delst): void = let // fun aux (ids: i0delst): void = let in case+ ids of | list_cons (id, ids) => let val sym = id.i0de_sym val () = the_d2expenv_add (sym, D2ITMsymdef (sym, list_nil)) // end of [val] in aux (ids) end // end of [list_cons] | list_nil ((*void*)) => () // end of [list_nil] end // end of [aux] // in aux ids end // end of [symintr_tr] (* ****** ****** *) fun symelim_tr (ids: i0delst): void = let // fun fproc (id: i0de): void = let val sym = id.i0de_sym val ans = the_d2expenv_find (sym) in // case+ ans of | ~Some_vt (d2i) => ( case+ d2i of | D2ITMsymdef _ => the_d2expenv_add (sym, D2ITMsymdef (sym, list_nil)) // end of [D2ITMsymdef] | _ (*non-symdef*) => () // HX: should a warning be reported? ) // end of [Some_vt] | ~None_vt ((*void*)) => () // end // end of [fproc] // in list_app_fun (ids, fproc) end // end of [symelim_tr] (* ****** ****** *) // extern fun overload_tr ( d1c0: d1ecl, id: i0de, dqid: dqi0de, pval: int ) : d2itmopt // end of [overload_tr] // extern fun overload_tr_def (loc0: location, id: i0de, pval: int, def: d2itm): void // end of [overload_tr_def] // extern fun overload_tr_d2eclist (d2cs: d2eclist): void // (* ****** ****** *) implement overload_tr ( d1c0, id, dqid, pval ) = let // val loc0 = d1c0.d1ecl_loc // (* val () = { val () = println! ("overload_tr: id = ", id) val () = println! ("overload_tr: dqid = ", dqid) } (* end of [val] *) *) // fun auxerr ( d1c0: d1ecl, dqid: $SYN.dqi0de ) : void = let val loc = dqid.dqi0de_loc val () = prerr_error2_loc (loc) val () = filprerr_ifdebug "overload_tr" val () = prerr ": the dynamic identifier [" val () = $SYN.prerr_dqi0de (dqid) val () = prerr "] is unrecognized." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_overload (d1c0)) end (* end of [auxerr] *) // val qua = dqid.dqi0de_qua and sym = dqid.dqi0de_sym val ans = the_d2expenv_find_qua (qua, sym) // val ans = option_of_option_vt (ans) val () = ( case+ ans of | Some (d2i) => overload_tr_def (loc0, id, pval, d2i) | None ((*void*)) => auxerr (d1c0, dqid) ) (* end of [val] *) // in ans end // end of [overload_tr] implement overload_tr_def (loc0, id, pval, def) = let // var err: int = 0 // fun auxerr1 ( loc0: location, id: i0de, err: &int ) : void = let val () = err := err + 1 val () = prerr_error2_loc (id.i0de_loc) val () = filprerr_ifdebug ("overload_tr_def") val () = prerr ": the overloaded identifier [" val () = $SYN.prerr_i0de (id) val () = prerr "] should refer to a symbol but it does not." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_overload_def (loc0)) end // end of [auxerr1] // fun auxerr2 ( loc0: location, id: i0de, err: &int ) : void = let val () = err := err + 1 val () = prerr_error2_loc (id.i0de_loc) val () = filprerr_ifdebug "overload_tr_def" val () = prerr ": the overloaded identifier [" val () = $SYN.prerr_i0de (id) val () = prerr "] is unrecognized." val () = prerr_newline () in // the_trans2errlst_add(T2E_d1ecl_tr_overload_def(loc0)) // end // end of [auxerr2] // val sym = id.i0de_sym val ans = ans where { val ans = the_d2expenv_current_find(sym) val ans = ( case+ ans of | Some_vt _ => (fold@ ans; ans) | ~None_vt () => the_d2expenv_pervasive_find(sym) ) : d2itmopt_vt } // end of [where] // end of [val] val d2pis = ( case+ ans of | ~Some_vt (d2i) => ( case+ d2i of | D2ITMsymdef (sym, d2pis) => d2pis // D2ITMsymdef | _ (*non-D2ITMsymdef*) => let val () = auxerr1(loc0, id, err) in list_nil() end // end of [_] ) // end of [Some_vt] (* // // HX-2014-01-30: // Is this design too cumbersome? // | ~None_vt () => let val () = auxerr2 (loc0, id, err) in list_nil() end // end of [None_vt] *) | ~None_vt() => d2pis where { val d2pis = list_nil() val () = the_d2expenv_add(sym, D2ITMsymdef(sym, d2pis)) // end of [val] } // end of [None_vt] ) : d2pitmlst // end of [val] (* val () = begin print "overload_tr_def: def := "; print_d2itm (def); print_newline (); print "overload_tr_def: d2is := "; print_d2itmlst (d2is); print_newline (); end // end of [val] *) in // if err = 0 then let val d2pi = D2PITM (pval, def) val d2pis_new = list_cons (d2pi, d2pis) in the_d2expenv_add (sym, D2ITMsymdef (sym, d2pis_new)) end // end of [if] // end (* end of [overload_tr_def] *) (* ****** ****** *) fun d1atsrtdec_tr ( res: s2rt, d1c: d1atsrtdec ) : s2cstlst = let // fun aux .<>. ( i: int , res: s2rt, d1c: d1atsrtcon ) : s2cst = s2c where { // val id = d1c.d1atsrtcon_sym val loc = d1c.d1atsrtcon_loc val arg = s1rtlst_tr (d1c.d1atsrtcon_arg) val s2t = s2rt_fun (arg, res) // val s2c = s2cst_make ( id // sym , loc // location , $FIL.filename_dummy , s2t // srt , None () // isabs , true // iscon , false // isrec , None () // isasp , None () // islst , list_nil () // argvarlst , None () // def ) (* end of [s2cst_make] *) // val () = s2cst_set_dstag (s2c, i) // val () = the_s2expenv_add_scst (s2c) // } (* end of [aux] *) // fun auxlst ( i: int, res: s2rt, d1cs: d1atsrtconlst ) : s2cstlst = let in // case+ d1cs of | list_cons (d1c, d1cs) => ( list_cons (aux (i, res, d1c), auxlst (i+1, res, d1cs)) ) // end of [cons] | list_nil () => list_nil () // end // end of [auxlst] // in auxlst (0, res, d1c.d1atsrtdec_con) end // end of [d1atsrtdec_tr] fun d1atsrtdeclst_tr (d1cs: d1atsrtdeclst) = let // typedef T = (d1atsrtdec, s2rtdat, s2rt) // fun loop1 ( xs0: List_vt (T) ) : void = let in case+ xs0 of | ~list_vt_cons (x, xs) => let val s2cs = d1atsrtdec_tr (x.2, x.0) val () = s2rtdat_set_sconlst (x.1, s2cs) in loop1 (xs) end // end of [list_vt_cons] | ~list_vt_nil () => () end // end of [loop1] // fun loop2 ( d1cs: d1atsrtdeclst, res: List_vt (T) ) : void = let in // case+ d1cs of | list_cons (d1c, d1cs) => let // val loc = d1c.d1atsrtdec_loc val sym = d1c.d1atsrtdec_sym val s2td = s2rtdat_make (sym) val s2t = S2RTbas (S2RTBASdef s2td) // val s2t_eqeq = s2rt_fun ('[s2t, s2t], s2rt_bool) // val s2c_eqeq = s2cst_make ( EQEQ // sym , loc // location , $FIL.filename_dummy , s2t_eqeq // srt , None () // isabs , false // iscon , false // isrec , None () // isasp , None () // islst , list_nil () // argvarlst , None () // def ) (* end of [s2cst_make] *) // val () = the_s2expenv_add_scst (s2c_eqeq) // val () = the_s2rtenv_add (sym, S2TEsrt s2t) in loop2 (d1cs, list_vt_cons ( @(d1c, s2td, s2t), res )) end // end of [list_cons] // | list_nil ((*void*)) => loop1 (res) // end // end of [loop2] // in loop2 (d1cs, list_vt_nil ()) end // end of [d1atsrtdeclst_tr] (* ****** ****** *) fun s1rtdef_tr (d: s1rtdef): void = let val id = d.s1rtdef_sym val s2te = s1rtext_tr (d.s1rtdef_def) in the_s2rtenv_add (id, s2te) end // end of [s1rtdef_tr] fun s1rtdeflst_tr (ds: s1rtdeflst): void = list_app_fun (ds, s1rtdef_tr) // end of [s1rtdeflst_tr] (* ****** ****** *) fun s1tacst_tr ( d0: s1tacst ) : s2cst = let // fun aux ( xs: a1msrtlst, res: s2rt ) : s2rt = case+ xs of | list_cons(x, xs) => s2rt_fun (a1msrt_tr_srt (x), aux (xs, res)) // end of [list_cons] | list_nil((*void*)) => res // end of [aux] // val id0 = d0.s1tacst_sym val loc = d0.s1tacst_loc val fil = d0.s1tacst_fil // val s2t_res = s1rt_tr(d0.s1tacst_res) // val s2cs2t = aux(d0.s1tacst_arg, s2t_res) // val s2c0 = s2cst_make ( id0 // sym , loc // location , fil // filename , s2cs2t // srt , None() // isabs , false // iscon , false // isrec , None() // isasp , None() // islst , list_nil() // argvarlst , None((*void*)) // s2cstdef ) (* end of [s2cst_make] *) // val () = s2cst_set_extdef (s2c0, d0.s1tacst_extdef) // in the_s2expenv_add_scst(s2c0); s2c0 end // end of [s1tacst_tr] fun s1tacstlst_tr (ds: s1tacstlst): s2cstlst = ( list_of_list_vt(list_map_fun(ds, s1tacst_tr)) ) (* end of [s1tacstlst_tr] *) (* ****** ****** *) fun s1tacon_tr ( s2t_res: s2rt, d0: s1tacon ) : s2cst = let // val id0 = d0.s1tacon_sym val loc = d0.s1tacon_loc val fil = d0.s1tacon_fil // val argvars = l2l ( list_map_fun ( d0.s1tacon_arg, a1msrt_tr_symsrt ) (* list_map_fun *) ) (* end of [val] *) // val s2t_fun = let // fun aux ( s2t_res: s2rt, xss: List(syms2rtlst) ) : s2rt = ( case+ xss of | list_nil ((*void*)) => s2t_res // list_nil | list_cons (xs0, xss) => let // val s2ts_arg = l2l ( list_map_fun (xs0, lam (x) = x.1) ) (* s2ts_arg *) // in s2rt_fun(s2ts_arg, aux(s2t_res, xss)) end (* end of [list_cons] *) ) (* end of [aux] *) in aux(s2t_res, argvars) end : s2rt // end of [val] // (* val () = ( // print "s1tacon_tr: sym = "; $SYM.print_symbol(id0); print_newline(); print "s1tacon_tr: s2t_fun = "; print_s2rt(s2t_fun); print_newline(); // ) (* end of [val] *) *) // val (pfenv|()) = the_s2expenv_push_nil((*void*)) // val s2vss = let fun f1(x: syms2rt): s2var = if x.0 = $SYM.symbol_empty then s2var_make_srt(x.1) else s2var_make_id_srt(x.0, x.1) // end of [if] fun f2 ( xs: syms2rtlst ) : s2varlst = let val s2vs = l2l(list_map_fun(xs, f1)) // end of [val] val ((*void*)) = the_s2expenv_add_svarlst(s2vs) // end of [val] in s2vs end // end of [f2] val s2vss = list_map_fun(argvars, f2) // in l2l (s2vss) end : List(s2varlst) // end of [val] // val def = let // fun aux ( s2t_fun: s2rt, s2vss: List(s2varlst), s2e: s2exp ) : s2exp = ( case+ s2vss of | list_cons (s2vs, s2vss) => let val-S2RTfun(_, s2t1_fun) = s2t_fun val s2e = aux(s2t1_fun, s2vss, s2e) val s2e_lam = s2exp_lam_srt(s2t_fun, s2vs, s2e) in s2e_lam end // end of [list_cons] | list_nil((*void*)) => s2e ) (* end of [aux] *) // val def = d0.s1tacon_def (* : s1expopt *) // in case+ def of | Some(s1e) => let val s2e = s1exp_trdn(s1e, s2t_res) // end of [val] val s2e_def = aux(s2t_fun, s2vss, s2e) in Some(s2e_def) end // end of [Some] | None((*void*)) => None() end : s2expopt // end of [val] // val () = the_s2expenv_pop_free(pfenv | (*none*)) // val s2c0 = s2cst_make ( id0 // sym , loc // location , fil // filename , s2t_fun // srt , Some(def) // isabs , true // iscon , false // isrec , None() // isasp , None() // islst , argvars // argvarlst , None() // definition ) (* s2cst_make *) // in the_s2expenv_add_scst(s2c0); s2c0 end // end of [s1tacon_tr] fun s1taconlst_tr ( knd: int, ds: s1taconlst ) : s2cstlst = let // fun auxlst ( s2t: s2rt, ds: s1taconlst ) : s2cstlst = ( // case+ ds of | list_cons (d, ds) => let val s2c = s1tacon_tr(s2t, d) // end of [val] in list_cons (s2c, auxlst(s2t, ds)) // list_cons end // end of [list_cons] | list_nil((*void*)) => list_nil() // ) (* end of [aux] *) // in auxlst(s2rt_impred(knd), ds) end // end of [s1taconlst_tr] (* ****** ****** *) (* // // HX-2012-05-23: removed // fun s1tavar_tr (d: s1tavar): s2tavar = let val loc = d.s1tavar_loc val s2t = s1rt_tr (d.s1tavar_srt) val s2v = s2var_make_id_srt (d.s1tavar_sym, s2t) val () = the_s2expenv_add_svar (s2v) in s2tavar_make (loc, s2v) end // end of [s1tavar_tr] fun s1tavarlst_tr (ds: s1tavarlst): s2tavarlst = l2l (list_map_fun (ds, s1tavar_tr)) // end of [s1tavarlst_tr] *) (* ****** ****** *) fun t1kindef_tr ( d: t1kindef ) : void = let // val sym = d.t1kindef_sym val loc_id = d.t1kindef_loc_id // val def = s1exp_trup (d.t1kindef_def) // val s2c = s2cst_make ( sym // name , loc_id // location , $FIL.filename_dummy , s2rt_tkind // tkind constant , None () // isabs , false // iscon , false // isrec , None () // isasp , None () // islst , list_nil() // argvar , Some (def) // definition ) (* end of [s2cst_make] *) // in the_s2expenv_add_scst (s2c) end // end of [t1kindef_tr] (* ****** ****** *) local fun s1expdef_tr_arg ( xs: s1marglst ) : List_vt (s2varlst) = let // fun fproc ( x: s1marg ) : s2varlst = s2vs where { val s2vs = s1arglst_trup (x.s1marg_arg) val () = the_s2expenv_add_svarlst (s2vs) } // end of [fproc] // in list_map_fun (xs, fproc) end // end of [s1expdef_tr_arg] fun s1expdef_tr_def ( xs: s1marglst, res: s2rtopt, def: s1exp ) : s2exp = let // val ( pfenv | () ) = the_s2expenv_push_nil () // val s2vss = s1expdef_tr_arg (xs) // val s2e_body = ( case+ res of | Some s2t => s1exp_trdn (def, s2t) | None ((*void*)) => s1exp_trup (def) ) : s2exp // end of [val] // val () = the_s2expenv_pop_free (pfenv | (*none*)) // val s2e_def = s2exp_lamlst ((castvwtp1)s2vss, s2e_body) val () = list_vt_free (s2vss) // in s2e_def end // end of [s1expdef_tr_def] in (* in-of-local *) fun s1expdef_tr ( res: s2rtopt, d: s1expdef ) : s2cst = let // fun auxerr (d: s1expdef): void = let // val ( ) = prerr_error2_loc (d.s1expdef_loc) val () = filprerr_ifdebug ("s1expdef_tr") val ( ) = prerr "\ : the sort for the static definition does not match the one assigned to the static constant [\ " // end of [val] val () = $SYM.prerr_symbol (d.s1expdef_sym) val () = prerr "]." val () = prerr_newline () // in the_trans2errlst_add (T2E_s1expdef_tr (d)) end // end of [auxerr] // val sym = d.s1expdef_sym and loc_id = d.s1expdef_loc_id and arg = d.s1expdef_arg and def = d.s1expdef_def val res1 = s1rtopt_tr (d.s1expdef_res) // val res2 = ( case+ res of | Some s2t => ( case+ res1 of | Some s2t1 => let val test = s2rt_ltmat1 (s2t1, s2t) in if test then res1 else (auxerr (d); res) end // end of [Some] | None () => res ) // end of [Some] | None () => res1 ) : s2rtopt // end of [val] // val def2 = s1expdef_tr_def (arg, res2, def) // in // s2cst_make ( sym // name , loc_id // location , $FIL.filename_dummy , def2.s2exp_srt // srt , None () // isabs , false // iscon , false // isrec , None () // isasp , None () // islst , list_nil() // argvar , Some (def2) // definition ) (* end of [s2cst_make] *) // end // end of [s1expdef_tr] fun s1expdeflst_tr (knd: int, ds: s1expdeflst): void = let // val res = ( if knd >= 0 then Some(s2rt_impred(knd)) else None() ) : s2rtopt // val s2cs = let fun aux ( ds: s1expdeflst ) : List_vt (s2cst) = ( case+ ds of | list_cons (d, ds) => let val s2c = s1expdef_tr (res, d) in list_vt_cons (s2c, aux ds) end // end of [list_cons] | list_nil () => list_vt_nil () ) // end of [aux] in aux (ds) end // end of [val] // val () = let // fun loop ( s2cs: List_vt (s2cst) ) : void = ( case+ s2cs of | ~list_vt_nil ((*void*)) => () | ~list_vt_cons (s2c, s2cs) => let val () = the_s2expenv_add_scst(s2c) in loop(s2cs) end // end of [list_vt_cons] ) (* end of [loop] *) // in loop(s2cs) end // end of [val] // in // nothing end // end of [s1expdeflst_tr] end // end of [local] (* ****** ****** *) local fun s1aspdec_tr_arg ( d0: s1aspdec, xs: s1marglst, s2t_fun: &s2rt ) : List0_vt (s2varlst) = let // fun auxerr ( d0: s1aspdec, x: s1marg ) : void = let val () = prerr_error2_loc(x.s1marg_loc) val () = filprerr_ifdebug("s1aspdec_tr_arg") val () = prerr ": too many arguments for the assumed static constant." val () = prerr_newline((*void*)) in the_trans2errlst_add(T2E_s1aspdec_tr_arg (d0, x)) end // end of [auxerr] // in (* in-of-let *) // case+ xs of | list_nil () => list_vt_nil() // end of [list_nil] | list_cons (x, xs) => ( case+ s2t_fun of | S2RTfun (s2ts_arg, s2t_res) => let val () = s2t_fun := s2t_res val s2vs = s1marg_trdn (x, s2ts_arg) val () = the_s2expenv_add_svarlst (s2vs) in list_vt_cons(s2vs, s1aspdec_tr_arg(d0, xs, s2t_fun)) end // end of [S2RTfun] | _ (*non-S2RTfun *)=> let val () = auxerr (d0, x) in list_vt_nil((*void*)) end (* end of [_] *) ) (* end of [list_cons] *) // end // end of [s1aspdec_tr_arg] fun s1aspdec_tr_res ( d0: s1aspdec, s2t_res: s2rt ) : s2rt = let // fun auxerr ( d0: s1aspdec, s2t1: s2rt, s2t2: s2rt ) : void = { // val () = prerr_error2_loc(d0.s1aspdec_loc) val () = filprerr_ifdebug("s1aspdec_tr_res") // val () = prerr(": the static assumption is given the sort [") val () = prerr_s2rt(s2t1) val () = prerr "] but it is expected to be of the sort [" val () = prerr_s2rt(s2t2) val () = prerr "]." val () = prerr_newline((*void*)) // val () = the_trans2errlst_add(T2E_s1aspdec_tr_res(d0, s2t1, s2t2)) } // end of [auxerr] // in // in of [let] // case+ d0.s1aspdec_res of // case+ | Some(s1t) => let val s2t = s1rt_tr(s1t) val test = s2rt_ltmat1(s2t, s2t_res) in if test then s2t else let val () = auxerr(d0, s2t, s2t_res) in s2t end (* end of [if] *) end // end of [Some] | None((*void*)) => s2t_res // end // end of [s1aspdec_tr_res] viewtypedef s2aspdecopt_vt = Option_vt (s2aspdec) in (* in-of-local *) fun s1aspdec_tr ( d1c: s1aspdec ) : s2aspdecopt_vt = let // fun auxerr1 ( d0: s1aspdec, q: s0taq, id: symbol ) : void = let val () = prerr_error2_loc(d0.s1aspdec_loc) // end of [val] val () = filprerr_ifdebug( "s1aspdec_tr" ) // end of [val] val () = prerr(": the static constant [") val () = ($SYN.prerr_s0taq(q); $SYM.prerr_symbol(id)) val () = prerrln! ("] is not abstract.") in the_trans2errlst_add(T2E_s1aspdec_tr(d0)) end // end of [auxerr1] // fun auxerr2 ( d0: s1aspdec, q: s0taq, id: symbol ) : void = let val () = prerr_error2_loc(d0.s1aspdec_loc) // end of [val] val () = filprerr_ifdebug( "s1aspdec_tr" ) // end of [val] val () = prerr(": the identifier [") val () = ($SYN.prerr_s0taq(q); $SYM.prerr_symbol(id)) val () = prerrln! ("] does not refer to a static constant.") in the_trans2errlst_add(T2E_s1aspdec_tr(d0)) end // end of [auxerr2] // fun auxerr3 ( d0: s1aspdec, q: s0taq, id: symbol ) : void = let val () = prerr_error2_loc(d0.s1aspdec_loc) // end of [val] val () = prerr ": the identifier [" val () = ($SYN.prerr_s0taq(q); $SYM.prerr_symbol(id)) val () = prerrln! ("] is unrecognized.") in the_trans2errlst_add(T2E_s1aspdec_tr(d0)) end // end of [auxerr3] // val loc = d1c.s1aspdec_loc val qid = d1c.s1aspdec_qid // val q0 = qid.sqi0de_qua and id = qid.sqi0de_sym // val ans = the_s2expenv_find_qua(q0, id) // in // case+ ans of | ~Some_vt(s2i) => ( case+ s2i of | S2ITMcst(s2cs) => let // val s2cs = list_filter_fun(s2cs, s2cst_is_abstr) // in case+ s2cs of | ~list_vt_nil ((*void*)) => let val () = auxerr1(d1c, q0, id) in None_vt() end // end of [list_vt_nil] | ~list_vt_cons (s2c, s2cs) => let // val ((*freed*)) = list_vt_free(s2cs) // val (pfenv | ()) = the_s2expenv_push_nil((*pushed*)) // end of [val] // var s2t_fun = s2cst_get_srt(s2c) // val s2vss = s1aspdec_tr_arg(d1c, d1c.s1aspdec_arg, s2t_fun) // end of [val] // val s2t_res = s1aspdec_tr_res(d1c, s2t_fun) val s2e_body = s1exp_trdn(d1c.s1aspdec_def, s2t_res) // val ((*popped*)) = the_s2expenv_pop_free (pfenv | (*none*)) // end of [val] // val s2e_def = s2exp_lamlst((castvwtp1)s2vss, s2e_body) // val ((*freed*)) = list_vt_free(s2vss) (* // HX: definition binding is to be done in [pats_trans3_decl.dats] *) // in Some_vt(s2aspdec_make(loc, s2c, s2e_def)) end // end of [list_vt_cons] end // end of [S2ITEMcst] | _ (*non-S2ITMcst*) => ( let val () = auxerr2(d1c, q0, id) in None_vt((*void*)) end ) (* end of [non-S2ITMcst] *) ) (* end of [Some_vt] *) | ~None_vt() => let val () = auxerr3(d1c, q0, id) in None_vt() end // end of [None_vt] // end // end of [s1aspdec_tr] end // end of [local] (* ****** ****** *) fun re1assume_tr ( qid: sqi0de ) : Option_vt(s2cst) = let // fun auxerr1 ( qid: sqi0de, q: s0taq, id: symbol ) : void = let val () = prerr_error2_loc(qid.sqi0de_loc) // end of [val] val () = filprerr_ifdebug( "re1assume_tr" ) // end of [val] val () = prerr(": the static constant [") val () = ($SYN.prerr_s0taq(q); $SYM.prerr_symbol(id)) val () = prerrln! ("] is not abstract.") in the_trans2errlst_add(T2E_re1assume_tr(qid)) end // end of [auxerr1] // fun auxerr2 ( qid: sqi0de, q: s0taq, id: symbol ) : void = let val () = prerr_error2_loc(qid.sqi0de_loc) // end of [val] val () = filprerr_ifdebug( "re1assume_tr" ) // end of [val] val () = prerr(": the identifier [") val () = ($SYN.prerr_s0taq(q); $SYM.prerr_symbol(id)) val () = prerrln! ("] does not refer to a static constant.") in the_trans2errlst_add(T2E_re1assume_tr(qid)) end // end of [auxerr2] // fun auxerr3 ( qid: sqi0de, q: s0taq, id: symbol ) : void = let val () = prerr_error2_loc(qid.sqi0de_loc) // end of [val] val () = prerr ": the identifier [" val () = ($SYN.prerr_s0taq(q); $SYM.prerr_symbol(id)) val () = prerrln! ("] is unrecognized.") in the_trans2errlst_add(T2E_re1assume_tr(qid)) end // end of [auxerr3] // val q0 = qid.sqi0de_qua and id = qid.sqi0de_sym // val ans = the_s2expenv_find_qua(q0, id) // in // case+ ans of | ~Some_vt(s2i) => ( case+ s2i of | S2ITMcst(s2cs) => let // val s2cs = list_filter_fun(s2cs, s2cst_is_abstr) // in case+ s2cs of | ~list_vt_nil ((*void*)) => let val () = auxerr1(qid, q0, id) in None_vt() end // end of [list_vt_nil] | ~list_vt_cons (s2c, s2cs) => Some_vt(s2c) where { val ((*freed*)) = list_vt_free(s2cs) } (* end of [list_vt_cons] *) end // end of [S2ITMcst] | _ (*non-S2ITMcst*) => let val () = auxerr2(qid, q0, id) in None_vt((*void*)) end ) (* end of [Some_vt] *) // | ~None_vt() => let val () = auxerr3(qid, q0, id) in None_vt() end // end of [None_vt] // end // end of [re1assume_tr] (* ****** ****** *) local fun d1atconlst_tr ( s2c: s2cst , islin: bool , isprf: bool , s2vss0: s2varlstlst , fil: filename , d1cs: d1atconlst ) : d2conlst = ( // case+ d1cs of | list_nil () => list_nil () | list_cons (d1c, d1cs) => let val d2c = d1atcon_tr (s2c, islin, isprf, s2vss0, fil, d1c) val d2cs = d1atconlst_tr (s2c, islin, isprf, s2vss0, fil, d1cs) in list_cons (d2c, d2cs) end // end of [cons] // ) (* end of [d1atconlst_tr] *) in (* in of [local] *) fun d1atdec_tr ( s2c: s2cst, s2vss0: s2varlstlst, d1c: d1atdec ) : void = let // val () = let val n = list_length (s2vss0) in if n >= 2 then { val () = prerr_error2_loc (d1c.d1atdec_loc) val () = filprerr_ifdebug "d1atdec_tr" // for debugging val () = prerr ": the declared type constructor is overly applied." val () = prerr_newline () val () = the_trans2errlst_add (T2E_d1atdec_tr (d1c)) } // end of [if] end // end of [val] // val s2t_fun = s2cst_get_srt (s2c) val s2t_res = ( case+ s2t_fun of | S2RTfun (_, s2t) => s2t | s2t => s2t ) : s2rt (* end of [val] *) // val islin = s2rt_is_lin s2t_res and isprf = s2rt_is_prf s2t_res // val d2cs = d1atconlst_tr ( s2c, islin, isprf , s2vss0, d1c.d1atdec_fil, d1c.d1atdec_con ) (* end of [val] *) // val () = let // // HX: // Assigning tags to // dynamic constructors // fun aux ( i: int, d2cs: d2conlst ) : void = ( case+ d2cs of | list_nil ((*void*)) => () // end of [list_nil] | list_cons (d2c, d2cs) => let val () = d2con_set_tag (d2c, i) in aux (i+1, d2cs) end // end of [list_cons] ) (* end of [aux] *) in aux (0, d2cs) end // end of [let] // end of [val] // val islst = ( // case+ d2cs of | list_cons ( d2c1 , list_cons(d2c2, list_nil()) ) => ( if d2con_get_arity_real(d2c1) = 0 then ( if d2con_get_arity_real(d2c2) > 0 then Some((d2c1, d2c2)) else None() ) else ( if d2con_get_arity_real(d2c2) = 0 then Some((d2c2, d2c1)) else None() ) (* end of [if] *) ) (* end of [cons(cons(nil))] *) | _ (* it-is-not-list-like *) => None () // ) : Option @(d2con, d2con) // val () = s2cst_set_islst (s2c, islst) val () = s2cst_set_dconlst (s2c, Some d2cs) // in // nothing end // end of [d1atdec_tr] end // end of [local] (* ****** ****** *) extern fun d1atdeclst_tr ( datknd: int , d1cs_dat: d1atdeclst , d1cs_def: s1expdeflst ) : s2cstlst // end-of-fun implement d1atdeclst_tr ( datknd, d1cs_dat, d1cs_def ) = let // typedef T = (d1atdec, s2cst, s2varlstlst) // val s2t_res = s2rt_impred (datknd) // val d1cs2cs2vsslst = let // var res : List (T) = list_nil () // end of [var] // fun aux .<>. ( d1c: d1atdec, res: &List (T) ) : void = let val argvar = list_of_list_vt ( list_map_fun (d1c.d1atdec_arg, a1msrt_tr_symsrt) // list_map_fun ) : List (syms2rtlst) val s2vss = let fun f ( xs: syms2rtlst ) : s2varlst = case+ xs of | list_nil() => list_nil() | list_cons (x, xs) => let val isnamed = (x.0 != $SYM.symbol_empty) in if isnamed then let val s2v = s2var_make_id_srt(x.0, x.1) in list_cons(s2v, f(xs)) end else f (xs) // end of [if] end // end of [list_cons] // end of [f] fun ff ( xss: List (syms2rtlst) ) : s2varlstlst = case+ xss of | list_nil() => list_nil() | list_cons(xs, xss) => let val s2vs = f(xs) and s2vss = ff(xss) in if list_is_cons(s2vs) then list_cons(s2vs, s2vss) else s2vss end // end of [list_vt_cons] // end of [ff] in ff (argvar) end : s2varlstlst // val s2tss_arg = let fun fopr (xs: syms2rtlst): s2rtlst = case+ xs of | list_nil() => list_nil() | list_cons(x, xs) => list_cons(x.1, fopr(xs)) // end of [] in l2l(list_map_fun(argvar, fopr)) end : s2rtlstlst // val s2c = s2cst_make_dat ( d1c.d1atdec_sym, d1c.d1atdec_loc, s2tss_arg, s2t_res, argvar ) (* end of [val] *) val () = the_s2expenv_add_scst (s2c) // in res := list_cons((d1c, s2c, s2vss), res) end // end of [val] // fun auxlst ( d1cs: d1atdeclst, res: &List(T) ) : void = ( case+ d1cs of | list_nil () => () | list_cons (d1c, d1cs) => let val () = aux (d1c, res) in auxlst (d1cs, res) end // end of [list_cons] ) (* end of [auxlst] *) // in auxlst (d1cs_dat, res); res end : List (T) // end of [d1cs2cs2vsslst] // fun aux2 ( d1cs: s1expdeflst ) : void = ( case+ d1cs of | list_nil () => () | list_cons (d1c, d1cs) => let val s2c = s1expdef_tr (None, d1c) val () = the_s2expenv_add_scst (s2c) in aux2 (d1cs) end // end of [cons] ) (* end of [aux2] *) // val () = aux2 (d1cs_def) // fun auxlst2 ( xs: List (T) ) : s2cstlst = case+ xs of | list_cons (x, xs) => let val () = d1atdec_tr (x.1, x.2, x.0) in list_cons (x.1, auxlst2 xs) end // end of [list_cons] | list_nil () => list_nil () // end of [auxlst2] in // auxlst2 (d1cs2cs2vsslst) // end // end of [d1atdeclst_tr] (* ****** ****** *) // // HX: [exn] is considered a viewtype constructor // fun e1xndec_tr ( s2c: s2cst, d1c: e1xndec ) : d2con = let val loc = d1c.e1xndec_loc val fil = d1c.e1xndec_fil and id = d1c.e1xndec_sym val (pfenv | ()) = the_s2expenv_push_nil () val s2qs = l2l (list_map_fun (d1c.e1xndec_qua, q1marg_tr)) val npf = d1c.e1xndec_npf val s1es_arg = d1c.e1xndec_arg val s2es_arg = s1explst_trdn_vt0ype (s1es_arg) val () = the_s2expenv_pop_free (pfenv | (*none*)) val d2c = d2con_make (loc, fil, id, s2c, 1(*vwtp*), s2qs, npf, s2es_arg, None(*ind*)) val () = d2con_set_tag (d2c, ~1) val () = the_d2expenv_add_dcon (d2c) in d2c (* HX: the defined exception constructor *) end // end of [e1xndec_tr] (* ****** ****** *) // extern fun e1xndeclst_tr (d1cs: e1xndeclst): d2conlst // implement e1xndeclst_tr (d1cs) = let // fun aux ( s2c: s2cst, d1cs: e1xndeclst ) : d2conlst = ( case+ d1cs of | list_nil ((*void*)) => list_nil () | list_cons (d1c, d1cs) => let val d2c = e1xndec_tr (s2c, d1c) in list_cons (d2c, aux (s2c, d1cs)) end // end of [list_cons] // end of [aux] ) (* end of [aux] *) // val s2c = s2cstref_get_cst (the_exception_vtype) // val d2cs = aux (s2c, d1cs) // val d2cs0 = ( // case+ s2cst_get_dconlst (s2c) of // case+ | None () => d2cs | Some d2cs0 => list_append (d2cs, d2cs0) // ) : d2conlst // end of [val] // val () = s2cst_set_dconlst (s2c, Some(d2cs0)) // in d2cs (*d2conlst*) end // end of [e1xndeclst_tr] // (* ****** ****** *) fun c1lassdec_tr ( id: i0de , sup: s1expopt ) : void = () where { // val sym = id.i0de_sym val loc = id.i0de_loc // val s2c = s2cst_make ( sym // sym , loc // location , $FIL.filename_dummy , s2rt_cls // sort for nominal classes , None(*isabs*) , false(*iscon*) , false(*isrec*) , None((*isasp*)) , None((*listlike*)) , list_nil(*argvar*) , None((*s2expopt*)) ) (* end of [s2cst_make] *) // val () = ( // case+ sup of | None () => () | Some s1e => { val s2e = s1exp_trdn (s1e, s2rt_cls) // end of [val] val ((*void*)) = s2cst_add_supcls (s2c, s2exp_hnfize(s2e)) // end of [val] } (* end of [Some] *) // ) (* end of [val] *) // val () = the_s2expenv_add_scst (s2c) // } (* end of [c1lassdec_tr] *) (* ****** ****** *) local fun dckfun_check ( d1c: d1cstdec , dck: dcstkind, s2e_cst: s2exp ) : void = ( // case+ dck of // | DCKfun () => let val isfun = s2exp_is_FUNCLOfun (s2e_cst) // end of [val] in if not(isfun) then { // val () = prerr_ERROR_beg() val () = prerr_error2_loc (d1c.d1cstdec_loc) // end of [val] val () = filprerr_ifdebug "d1cstdec_tr" // for debugging val () = prerrln!(": the function may need to be declared as a value") val () = prerr_ERROR_end() // val () = the_trans2errlst_add (T2E_d1cstdec_tr(d1c)) // } (* end of [if] *) end (* end of [DCKfun] *) // | _(*rest*) => ((*void*)) // ) (* end of [dckfun_check] *) fun s2exp_get_arylst (s2e: s2exp): List(int) = ( // case+ s2e.s2exp_node of // | S2Efun ( _, _, _, _, s2es, s2e ) => let val n = list_length (s2es) in list_cons (n, s2exp_get_arylst(s2e)) end // end of [S2Efun] // | S2Eexi (_, _, s2e) => s2exp_get_arylst(s2e) | S2Euni (_, _, s2e) => s2exp_get_arylst(s2e) // | S2Emetfun (_, _, s2e) => s2exp_get_arylst(s2e) // | _ (* rest-of-s2exp *) => list_nil ((*void*)) // ) (* end of [s2exp_get_arylst] *) in (* in of [local] *) fun d1cstdec_tr ( knd: int , dck: dcstkind, s2qs: s2qualst, d1c: d1cstdec ) : d2cst = d2c where { // val loc = d1c.d1cstdec_loc val fil = d1c.d1cstdec_fil val sym = d1c.d1cstdec_sym // (* val () = println! ("d1cstdec_tr: fil = ", fil) val () = println! ("d1cstdec_tr: sym = ", sym) *) // // HX-2012: // it is either prop or t@ype; it cannot be linear // val isprf = dcstkind_is_proof (dck) val s2t_cst = (if isprf then s2rt_prop else s2rt_t0ype): s2rt // val s1e_cst = d1c.d1cstdec_type val s2e_cst = s1exp_trdn (s1e_cst, s2t_cst) val s2e_cst = s2exp_hnfize (s2e_cst) val ((*void*)) = dckfun_check (d1c, dck, s2e_cst) // val arylst = s2exp_get_arylst (s2e_cst) // var extdef : dcstextdef = d1c.d1cstdec_extdef val () = ( case+ extdef of | $SYN.DCSTEXTDEFnone _ => if knd = 0 then (extdef := $SYN.DCSTEXTDEFnone (0)) | _(* DCSTEXTDEFsome... *) => () ) : void // end of [val] // val d2c = d2cst_make (sym, loc, fil, dck, s2qs, arylst, s2e_cst, extdef) // end of [val] // val ((*void*)) = the_d2expenv_add_dcst (d2c) // } (* end of [d1cstdec_tr] *) end // end of [local] (* ****** ****** *) fun d1cstdeclst_tr ( knd: int , dck: dcstkind , s2qs: s2qualst , d1cs: d1cstdeclst ) : d2cstlst = let in case+ d1cs of | list_cons (d1c, d1cs) => let val d2c = d1cstdec_tr (knd, dck, s2qs, d1c) in list_cons (d2c, d1cstdeclst_tr (knd, dck, s2qs, d1cs)) end // end of [cons] | list_nil () => list_nil () end // end of [d1cstdeclst_tr] (* ****** ****** *) local fun trans2_env_add_m2acarg (x: m2acarg): void = let in case+ x of | M2ACARGsta (s2vs) => the_s2expenv_add_svarlst (s2vs) // end of [M2ACARGsta] | M2ACARGdyn (d2vs) => the_d2expenv_add_dmacvarlst (d2vs) // end of [M2ACARGdyn] end // end of [trans2_env_add_m2acarg] fun trans2_env_add_m2acarglst (xs: m2acarglst): void = list_app_fun (xs, trans2_env_add_m2acarg) // end of [trans2_env_add_m2acarglst] in (* in of [local] *) fun m1acdef_tr ( knd: int, d2m: d2mac, d1c: m1acdef ) : void = let // val loc = d1c.m1acdef_loc and sym = d1c.m1acdef_sym val (pfenv | ()) = the_trans2_env_push () val arglst = d2mac_get_arglst (d2m) // (* val out = stdout_ref val () = fprintf (out, "m1acdef_tr: knd = %i\n", @(knd)) val () = fprint_string (out, "m1acdef_tr: arglst =\n") val () = fprint_m2acarglst (out, arglst) val () = fprint_newline (out) *) // val () = trans2_env_add_m2acarglst (arglst) val () = the_macdeflev_inc () val () = if knd >= 1 then the_maclev_dec (loc) val def = d1exp_tr (d1c.m1acdef_def) val () = if knd >= 1 then the_maclev_inc (loc) val () = the_macdeflev_dec () val () = the_trans2_env_pop (pfenv | (*none*)) val () = d2mac_set_def (d2m, def) // in // empty end // end of [m1acdef_tr] end // end of [local] local fun m1acarg_tr (x: m1acarg): m2acarg = let in case+ x.m1acarg_node of | M1ACARGdyn (ids) => let fun f (x: i0de): d2var = d2var_make (x.i0de_loc, x.i0de_sym) val d2vs = list_map_fun (ids, f) in M2ACARGdyn ((l2l)d2vs) end | M1ACARGsta (s1as) => let fun f (s1a: s1arg): s2var = let val s2t = ( case+ s1a.s1arg_srt of | Some (s1t) => s1rt_tr (s1t) | None () => s2rt_t0ype ) : s2rt // end of [val] in s2var_make_id_srt (s1a.s1arg_sym, s2t) end // end of [f] val s2vs = list_map_fun (s1as, f) in M2ACARGsta ((l2l)s2vs) end end // end of [m1acarg_tr] fun m1acarglst_tr (m1as: m1acarglst): m2acarglst = let val m2as = list_map_fun (m1as, m1acarg_tr) in (l2l)m2as end // end of [m1acarglst_tr] in (* in of [local] *) fun m1acdeflst_tr ( knd: int, d1cs: m1acdeflst ) : void = let // // knd: 0/1/2 => short/long/longrec // fun aux1 ( knd: int, d1cs: m1acdeflst ) : d2maclst = let in // case+ d1cs of | list_cons (d1c, d1cs) => let val loc = d1c.m1acdef_loc val sym = d1c.m1acdef_sym val def = d2exp_empty (loc) val args = m1acarglst_tr (d1c.m1acdef_arg) val d2m = d2mac_make (loc, sym, knd, args, def) val () = if knd >= 2 then the_d2expenv_add_dmacdef (d2m) val d2ms = aux1 (knd, d1cs) in list_cons (d2m, d2ms) end // end of [aux1] | list_nil () => list_nil () // end // end of [aux1] val d2ms = aux1 (knd, d1cs) // fun loop2 ( d2ms: d2maclst, d1cs: m1acdeflst ) : void = let in case+ d2ms of | list_cons (d2m, d2ms) => let val-list_cons (d1c, d1cs) = d1cs val knd = d2mac_get_kind (d2m) val d2c = m1acdef_tr (knd, d2m, d1c) val () = if knd <= 1 then the_d2expenv_add_dmacdef (d2m) in loop2 (d2ms, d1cs) end // end of [list_cons] | list_nil () => () end // end of [loop2] val () = loop2 (d2ms, d1cs) // in // nothing end // end of [m1acdeflst_tr] end // end of [local] (* ****** ****** *) fun f1undec_tr ( decarg: s2qualst , d2v: d2var, f1d: f1undec ) : f2undec = let val () = d2var_set_decarg (d2v, decarg) // end of [val] val def = d1exp_tr (f1d.f1undec_def) val isnot = not (d2exp_is_lam (def)) (* val () = begin print "f1undec_tr: d2v = "; print d2v; print_newline () print "f1undec_tr: def = "; print def; print_newline () end // end of [val] *) // val () = if isnot then let val () = prerr_error2_loc (def.d2exp_loc) val () = filprerr_ifdebug "f1undec_tr" val () = prerrln! ": function definition is required to be lam-abstract." in the_trans2errlst_add (T2E_f1undec_tr(f1d)) end // end of [if] // end of [val] // val ann = witht1ype_tr (f1d.f1undec_ann) // in f2undec_make (f1d.f1undec_loc, d2v, def, ann) end // end of [f1undec_tr] fun f1undeclst_tr ( knd: funkind , decarg: s2qualst, f1ds: f1undeclst ) : f2undeclst = let // val isprf = funkind_is_proof (knd) val isrec = funkind_is_recursive (knd) // val d2vs = let fun aux1 {n:nat} .. ( isprf: bool , f1ds: list (f1undec, n) ) : list (d2var, n) = case+ f1ds of | list_cons (f1d, f1ds) => let val sym = f1d.f1undec_sym val loc = f1d.f1undec_sym_loc val d2v = d2var_make (loc, sym) val () = d2var_set_isfix (d2v, true) val () = d2var_set_isprf (d2v, isprf) in list_cons (d2v, aux1 (isprf, f1ds)) end // end of [list_cons] | list_nil () => list_nil () // end of [aux1] in aux1 (isprf, f1ds) end // end of [val] // val () = ( if isrec then the_d2expenv_add_dvarlst (d2vs) else () ) : void // end of [val] // val f2ds = let fun aux2 {n:nat} .. ( decarg: s2qualst , d2vs: list (d2var, n) , f1ds: list (f1undec, n) ) : list (f2undec, n) = case+ d2vs of | list_cons (d2v, d2vs) => let val+list_cons (f1d, f1ds) = f1ds val f2d = f1undec_tr (decarg, d2v, f1d) val f2ds = aux2 (decarg, d2vs, f1ds) in list_cons (f2d, f2ds) end // end of [list_cons] | list_nil () => list_nil () // end of [aux2] in aux2 (decarg, d2vs, f1ds) end // end of [val] // val () = ( if isrec then () else the_d2expenv_add_dvarlst (d2vs) ) : void // end of [val] // in f2ds end // end of [f1undeclst_tr] (* ****** ****** *) fun v1aldec_tr ( v1d: v1aldec, p2t: p2at ) : v2aldec = let val loc = v1d.v1aldec_loc val def = d1exp_tr (v1d.v1aldec_def) val ann = witht1ype_tr (v1d.v1aldec_ann) in v2aldec_make (loc, p2t, def, ann) end // end of [v1aldec_tr] fun v1aldeclst_tr{n:nat} ( isrec: bool, v1ds: list (v1aldec, n) ) : v2aldeclst = let val p2ts = list_map_fun (v1ds, lam (v1d) =<1> p1at_tr (v1d.v1aldec_pat)) val p2ts = (l2l)p2ts: list (p2at, n) val s2vs = $UT.lstord2list (p2atlst_svs_union p2ts) val d2vs = $UT.lstord2list (p2atlst_dvs_union p2ts) in if not(isrec) then let val v2ds = list_map2_fun (v1ds, p2ts, v1aldec_tr) val () = the_s2expenv_add_svarlst s2vs val () = the_d2expenv_add_dvarlst d2vs in l2l (v2ds) end else let val () = the_d2expenv_add_dvarlst (d2vs) val v2ds = list_map2_fun (v1ds, p2ts, v1aldec_tr) val () = the_s2expenv_add_svarlst (s2vs) in l2l (v2ds) end // end of [if] end (* end of [v1aldeclst_tr] *) (* ****** ****** *) fun v1ardec_tr ( v1d: v1ardec ) : v2ardec = let (* // HX: toplevel stack allocation is supported. *) val loc = v1d.v1ardec_loc val knd = v1d.v1ardec_knd val sym = v1d.v1ardec_sym val loc_sym = v1d.v1ardec_sym_loc // val d2v = d2var_make (loc_sym, sym) // val d2vopt = ( if knd > 0 then let val d2v = d2var_make (loc_sym, sym) in Some(d2v) end else None((*void*)) ) : d2varopt // end of [val] // // HX-2013: // [s2v_addr] is introduced as a static variable of the val s2v_addr = s2var_make_id_srt (sym, s2rt_addr) // same name // val s2e_addr = s2exp_var (s2v_addr) val ((*void*)) = d2var_set_addr (d2v, Some (s2e_addr)) // val pfat = ( case+ v1d.v1ardec_pfat of // | None () => None () | Some (i0de) => let val d2v = d2var_make (i0de.i0de_loc, i0de.i0de_sym) in Some (d2v) end // end of [Some] ) : d2varopt // end of [val] // val s2eopt = ( case+ v1d.v1ardec_type of | None () => None((*void*)) | Some s1e => let val s2e = s1exp_trdn_impred (s1e) in Some (s2e) end // end of [Some] ) : s2expopt // end of [val] // val init = d1expopt_tr (v1d.v1ardec_init) // in // v2ardec_make ( loc, knd, s2v_addr, d2v, pfat, s2eopt, init, d2vopt ) (* end of [v2ardec_make] *) // end // end of [v1ardec_tr] fun v1ardeclst_tr ( v1ds: v1ardeclst ) : v2ardeclst = v2ds where { val v2ds = l2l (list_map_fun (v1ds, v1ardec_tr)) // val () = list_app_fun (v2ds, f) where { fn f (v2d: v2ardec): void = let val () = the_s2expenv_add_svar (v2d.v2ardec_svar) val () = the_d2expenv_add_dvar (v2d.v2ardec_dvar) // // HX-2013-09: // if added, this one shadows the previously added d2var // val () = the_d2expenv_add_dvaropt (v2d.v2ardec_dvaropt) in case+ v2d.v2ardec_pfat of Some (d2v) => the_d2expenv_add_dvar (d2v) | None () => () end // end of [f] } (* end of [val] *) // } (* end of [v1ardeclst_tr] *) (* ****** ****** *) local fun auxkndck ( v1d: v1ardec ) : void = let val stadyn = v1d.v1ardec_knd in // if stadyn > 0 then let val () = prerr_warning2_loc (v1d.v1ardec_loc) // end of [val] val () = filprerr_ifdebug "prv1ardec_tr" val () = prerr ": the dynalloc mark (!) is ignored." val () = prerr_newline () in (* the_trans2errlst_add (T2E_prv1ardec_tr (v1d)) *) end // end of [if] // end // end of [auxkndck] fun auxwthck ( v1d: v1ardec ) : void = let val idopt = v1d.v1ardec_pfat in case+ idopt of | Some id => let val () = prerr_warning2_loc (v1d.v1ardec_loc) // end of [val] val () = filprerr_ifdebug "prv1ardec_tr" val () = prerr ": the dynamic identifier [" val () = $SYN.prerr_i0de (id) val () = prerr "] is ignored." val () = prerr_newline ((*void*)) in (* the_trans2errlst_add (T2E_prv1ardec_tr (v1d)) *) end // end of [Some] | None ((*void*)) => () end // end of [auxwthck] in (* in of [local] *) fun prv1ardec_tr ( v1d: v1ardec ) : prv2ardec = let // val () = auxkndck (v1d) val () = auxwthck (v1d) // val sym = v1d.v1ardec_sym val loc_sym = v1d.v1ardec_sym_loc val d2v = d2var_make (loc_sym, sym) val s2eopt = ( case+ v1d.v1ardec_type of | Some s1e => let val s2e = s1exp_trdn_impred (s1e) in Some (s2e) end // end of [Some] | None () => None () ) : s2expopt // end of [val] // val d2eopt = d1expopt_tr (v1d.v1ardec_init) // in prv2ardec_make (v1d.v1ardec_loc, d2v, s2eopt, d2eopt) end // end of [prv1ardec_tr] end // end of [local] fun prv1ardeclst_tr ( v1ds: v1ardeclst ) : prv2ardeclst = v2ds where { val v2ds = l2l (list_map_fun (v1ds, prv1ardec_tr)) // end of [val] val () = list_app_fun (v2ds, f) where { fn f (v2d: prv2ardec): void = the_d2expenv_add_dvar (v2d.prv2ardec_dvar) } (* end of [where] *) // end of [val] } (* end of [prv1ardeclst_tr] *) (* ****** ****** *) (* // // HX: // it is implemented in [pats_trans2_impdec.dats]: // extern fun i1mpdec_tr (d1c: d1ecl): Option_vt (i2mpdec) // *) (* ****** ****** *) // extern fun s1taload_tr ( loc0: location , idopt: symbolopt , fil: filename, ldflag: int, d1cs: d1eclist , loaded: &int? >> int ) : filenv // end-of-fun // implement s1taload_tr ( loc0, idopt , fil, ldflag, d1cs, loaded ) = let (* val () = print "s1taload_tr: staid = " val () = ( case+ idopt of | Some id => $SYM.print_symbol (id) | None () => print "(*none*)" ) : void // end of [val] val () = print_newline () val () = begin print "s1taload_tr: filename = "; $FIL.print_filename_full fil; print_newline () end // end of [val] *) // val fsym = $FIL.filename_get_fullname(fil) val (pflev | ()) = the_staload_level_push() val ans = the_filenvmap_find(fsym) // val fenv = ( case+ :( loaded: int ) => ans of | ~Some_vt ( fenv ) => let val () = loaded := 1 in fenv end // end of [Some_vt] | ~None_vt() => let val () = loaded := 0 val ( pfsave | ((*void*)) ) = the_trans2_env_save() // val opt = $GLOB.the_PACKNAME_get() val d2cs = d1eclist_tr(d1cs) // HX: may set PACKNAME val ((*void*)) = $GLOB.the_PACKNAME_set(opt) // val (m0, m1, m2) = the_trans2_env_restore(pfsave | (*none*)) val fenv = filenv_make(fil, m0, m1, m2, d2cs) val ((*void*)) = the_filenvmap_add (fsym, fenv) in fenv end // end of [None_vt] ) : filenv // end of [val] // val () = ( case+ idopt of | Some (id) => the_s2expenv_add (id, S2ITMfilenv(fenv)) | None ((*void*)) => $NS.the_namespace_add (fenv) // opening file ) : void // end of [val] // val () = the_staload_level_pop (pflev | (*none*)) // in fenv end // end of [s1taload_tr] // (* ****** ****** *) // extern fun s1taloadnm_tr ( d1c0: d1ecl ) : void // end-of-fun // implement s1taloadnm_tr(d1c0) = let // fun auxerr ( d1c0: d1ecl, name: symbol ) : void = let val () = prerr_error2_loc (d1c0.d1ecl_loc) // end of [val] val () = filprerr_ifdebug "s1taloadnm_tr" // val () = prerr ": the name [" val () = $SYM.prerr_symbol(name) val () = prerr "] does not refer to a namespace." val () = prerr_newline((*void*)) // in the_trans2errlst_add(T2E_d1ecl_tr_staloadnm(d1c0)) end (* end of [auxerr] *) // val- D1Cstaloadnm (idopt, nspace) = d1c0.d1ecl_node // val ans = the_s2expenv_find(nspace) // in // case+ ans of | ~None_vt ((*void*)) => auxerr(d1c0, nspace) // end of [None_vt] | ~Some_vt(s2i) => ( case+ s2i of | S2ITMfilenv(fenv) => ( case+ idopt of | Some(id) => () where { val () = the_s2expenv_add(id, s2i) } | None((*void*)) => () where { val () = $NS.the_namespace_add(fenv) // // HX-2017-01-30: // Overloading declarations needs to be added // val d2cs = filenv_get_d2eclist(fenv) val ((*void*)) = overload_tr_d2eclist(d2cs) // } (* end of [None] *) ) (* end of [S2ITMfi1lenv] *) | _(*non-S2ITMfilenv*) => auxerr(d1c0, nspace) ) (* end of [Some_vt] *) // end // end of [s1taloadnm_tr] (* ****** ****** *) implement overload_tr_d2eclist (d2cs) = let in // case+ d2cs of | list_nil ((*void*)) => () | list_cons (d2c, d2cs) => let val () = ( case+ d2c.d2ecl_node of // | D2Csymintr ids => symintr_tr (ids) (* | D2Csymelim ids => symelim_tr (ids) // HX: is this really needed? *) | D2Coverload (id, pval, opt) => let val loc = d2c.d2ecl_loc in case+ opt of | Some (d2i) => overload_tr_def (loc, id, pval, d2i) | None () => () end (* end of [D2Coverload] *) // | D2Cinclude (knd, d2cs2) => overload_tr_d2eclist (d2cs2) // | _ (*ignored*) => () // ) : void // end of [val] in overload_tr_d2eclist (d2cs) end // end of [list_cons] // end // end of [overload_tr_d2eclist] (* ****** ****** *) implement d1ecl_tr(d1c0) = let // val loc0 = d1c0.d1ecl_loc // (* val () = begin print "d1ecl_tr: d1c0 = "; print_d1ecl d1c0; print_newline () end // end of [val] *) // fun auxcheck_impdec ( d1c0: d1ecl, knd: int, impdec: i2mpdec ) : void = let val d2c = impdec.i2mpdec_cst val okay = ( if knd < 0 then d2cst_is_prf (d2c) else d2cst_is_nonprf (d2c) ) : bool // end of [val] val () = if ~okay then let val () = prerr_error2_loc (d1c0.d1ecl_loc) val () = filprerr_ifdebug "d1ecl_tr: auxcheck_impdec" // for debugging val () = if knd < 0 then prerr ": the implemented dynamic constant is required to be proof." val () = if knd >= 0 then prerr ": the implemented dynamic constant is required to be non-proof." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [if] // end of [val] in // nothing end // end of [auxcheck_impdec] // in // case+ d1c0.d1ecl_node of // case+ // | D1Cnone() => d2ecl_none(loc0) // | D1Clist(ds) => let val ds = l2l(list_map_fun(ds, d1ecl_tr)) in d2ecl_list(loc0, ds) end // end of [D1Clist] // | D1Cpackname(opt) => let val () = $GLOB.the_PACKNAME_set(opt) in d2ecl_none(loc0) // end of [D1Cpackname] end (* end of [D1Cpackname] *) // | D1Csymintr (ids) => let val () = symintr_tr (ids) in d2ecl_symintr (loc0, ids) end // end of [D1Csymintr] | D1Csymelim (ids) => let val () = symelim_tr (ids) in d2ecl_symelim (loc0, ids) end // end of [D1Csymelim] // | D1Coverload (id, dqid, pval) => let val d2iopt = overload_tr (d1c0, id, dqid, pval) // end of [val] in d2ecl_overload (loc0, id, pval, d2iopt) end // end of [D1Coverload] // | D1Ce1xpdef (id, def) => let val () = the_s2expenv_add (id, S2ITMe1xp def) val () = the_d2expenv_add (id, D2ITMe1xp def) in d2ecl_none (loc0) end // end of [D1Ce1xpdef] | D1Ce1xpundef (id, def) => let val () = the_s2expenv_add (id, S2ITMe1xp def) val () = the_d2expenv_add (id, D2ITMe1xp def) in d2ecl_none (loc0) end // end of [D0Ce0xpundef] // | D1Cpragma (e1xps) => d2ecl_pragma(loc0, e1xps) | D1Ccodegen (knd, e1xps) => d2ecl_codegen(loc0, knd, e1xps) // | D1Cdatsrts(ds) => let val () = d1atsrtdeclst_tr(ds) in d2ecl_none(loc0) // end of [val] end // end of [D1Cdatsrts] // | D1Csrtdefs(ds) => let val () = s1rtdeflst_tr(ds) in d2ecl_none(loc0) end // end of [D1Csrtdefs] // | D1Cstacsts(ds) => let val s2cs = s1tacstlst_tr (ds) in d2ecl_stacsts(loc0, s2cs) // end of [val] end // end of [D1Cstacsts] | D1Cstacons(knd, ds) => let val s2cs = s1taconlst_tr (knd, ds) in d2ecl_stacons(loc0, knd, s2cs) // end of [val] end // end of [D1Cstacons] (* | D1Cstavars (d1s) => let val s2vs = s1tavarlst_tr (d1s) in d2ecl_stavars (loc0, s2vs) end // end of [D1Cstavars] *) // | D1Ctkindef(d) => let val () = t1kindef_tr (d) in d2ecl_none (loc0) end // end of [D1Ckindef] // | D1Csexpdefs(knd, ds) => let val () = s1expdeflst_tr (knd, ds) in d2ecl_none (loc0) // end of [val] end // end of [D1Csexpdefs] // | D1Csaspdec(d1c) => let val opt = s1aspdec_tr(d1c) in case+ opt of | ~Some_vt(d2c) => d2ecl_saspdec(loc0, d2c) // end of [Some_vt] (* // // HX: error is already reported // *) | ~None_vt((*void*)) => d2ecl_none(loc0) // end of [case] end // end of [D1Csaspdec] | D1Creassume(qid) => let val opt = re1assume_tr(qid) in case+ opt of | ~Some_vt(s2c) => ( d2ecl_reassume(loc0, s2c) ) (* end of [Some_vt] *) (* // // HX: error is already reported // *) | ~None_vt((*void*)) => d2ecl_none(loc0) end // end of [D1Creassume] *) // | D1Cexndecs(d1cs) => ( d2ecl_exndecs(loc0, e1xndeclst_tr(d1cs)) ) (* end of [D1Cexndecs] *) // | D1Cdatdecs ( knd, d1cs_dat, d1cs_def ) => let val s2cs = d1atdeclst_tr(knd, d1cs_dat, d1cs_def) // end of [val] in d2ecl_datdecs (loc0, knd, s2cs) end // end of [D1Cdatdecs] // | D1Cclassdec(id, sup) => let val () = c1lassdec_tr(id, sup) in d2ecl_none(loc0) end // end of [D1Cclassdec] // | D1Cextype ( name, s1e_def // arity=2 ) => let val s2e_def = s1exp_trdn_impred (s1e_def) // end of [val] in d2ecl_extype (loc0, name, s2e_def) end // end of [D1Cextype] | D1Cextype ( knd, name, s1e_def // arity=3 ) => let val s2t_def = s2rt_impred (knd) val s2e_def = s1exp_trdn (s1e_def, s2t_def) // end of [val] in d2ecl_extype (loc0, name, s2e_def) end // end of [D1Cextype] // | D1Cextvar (name, def) => let val def = d1exp_tr (def) in d2ecl_extvar (loc0, name, def) end // end of [D1Cextvar] | D1Cextcode (knd, pos, code) => d2ecl_extcode (loc0, knd, pos, code) // end of [D1Cextcode] // | D1Cdcstdecs ( knd, dck, decarg, d1cs ) => let val ( pfenv | () ) = the_s2expenv_push_nil () val s2qs = list_map_fun (decarg, q1marg_tr_dec) val d2cs = d1cstdeclst_tr (knd, dck, l2l(s2qs), d1cs) val ((*void*)) = the_s2expenv_pop_free (pfenv | (*none*)) in d2ecl_dcstdecs (loc0, knd, dck, d2cs) end // end of [D1Cdcstdecs] // | D1Cmacdefs ( knd, isrec, d1cs ) => let val knd = ( if isrec then (if knd = 0 then 0 else 2) else knd ) : int // end of [val] val () = m1acdeflst_tr (knd, d1cs) in d2ecl_none (loc0) end // end of [D1Cmacdefs] // | D1Cimpdec ( knd, _arg, _dec ) => let val d2copt = i1mpdec_tr (d1c0) in case+ d2copt of | ~Some_vt (impdec) => let val () = auxcheck_impdec (d1c0, knd, impdec) // end of [val] in d2ecl_impdec (loc0, knd, impdec) end // end of [Some_vt] // // HX: the error is already reported // | ~None_vt ((*void*)) => d2ecl_none (loc0) end // end of [D1Cimpdec] // | D1Cfundecs ( fk0, decarg, f1ds ) => let // val istmp = list_is_cons(decarg) val ismtr = funkind_is_mutailrec(fk0) // var fk0: funkind = fk0 // val () = if (istmp && ismtr) then let val () = fk0 := FK_fun() val () = prerr_warning2_loc(loc0) in prerrln! (": [fnx] is treated as [fun] for initiating function templates!") end (* end of [then] *) // val () = if istmp then the_tmplev_inc() // val (pfenv | ()) = the_trans2_env_push() // val tmplev = the_tmplev_get() // val s2qs = list_map_fun (decarg, q1marg_tr_dec) // end of [val] val s2qs = list_of_list_vt(s2qs) val ((*void*)) = s2qualstlst_set_tmplev(s2qs, tmplev) // end of [val] // val f2ds = f1undeclst_tr(fk0, s2qs, f1ds) // end of [val] // val () = if istmp then the_tmplev_dec() // val () = the_trans2_env_pop(pfenv | (*none*)) // val () = the_d2expenv_add_fundeclst(fk0, f2ds) // in d2ecl_fundecs(loc0, fk0, s2qs, f2ds) end // end of [D1Cfundecs] // | D1Cvaldecs ( knd, isrec, v1ds ) => let val v2ds = v1aldeclst_tr(isrec, v1ds) in if not(isrec) then d2ecl_valdecs(loc0, knd, v2ds) else d2ecl_valdecs_rec(loc0, knd, v2ds) // end of [if] end // end of [D1Cvaldecs] // | D1Cvardecs (knd, v1ds) => ( if knd = 0 then let val v2ds = v1ardeclst_tr (v1ds) in d2ecl_vardecs(loc0, v2ds) end else let // knd = 1 val v2ds = prv1ardeclst_tr (v1ds) in d2ecl_prvardecs(loc0, v2ds) end // end of [if] ) // end of [D1Cvardecs] // | D1Cinclude (knd, d1cs) => let val d2cs = d1eclist_tr (d1cs) in d2ecl_include (loc0, knd, d2cs) end // end of [D1Cinclude] // | D1Cstaload ( idopt, fil, ldflag, d1cs ) => let var loaded: int // val fenv = s1taload_tr (loc0, idopt, fil, ldflag, d1cs, loaded) // end of [val] // // HX-2013-10-30: // Overloading declarations // is not allowed to permeate a NAMED namespace!!! // val () = ( case+ idopt of | None() => { val d2cs = filenv_get_d2eclist(fenv) val ((*void*)) = overload_tr_d2eclist(d2cs) } (* end of [None] *) | Some(id) => ((*void*)) ) (* end of [val] *) // in d2ecl_staload(loc0, idopt, fil, ldflag, fenv, loaded) end // end of [D1Cstaload] // | D1Cstaloadnm _ => let val () = s1taloadnm_tr(d1c0) in d2ecl_none(loc0) end // end of [D1Cstaloadnm] // | D1Cstaloadloc ( pfil, nspace, d1cs_loc ) => let // val ( pfsave | ((*void*)) ) = the_trans2_env_save() // val opt = $GLOB.the_PACKNAME_get () val d2cs_loc = d1eclist_tr (d1cs_loc) // local declarations val ((*void*)) = $GLOB.the_PACKNAME_set (opt) // val (m0, m1, m2) = the_trans2_env_restore (pfsave | (*void*)) val fenv = filenv_make (pfil, m0, m1, m2, d2cs_loc) val ((*void*)) = the_s2expenv_add (nspace, S2ITMfilenv(fenv)) in d2ecl_staloadloc (loc0, pfil, nspace, fenv) end // end of [D1Cstaloadloc] // | D1Cdynload(fil) => d2ecl_dynload(loc0, fil) // | D1Clocal ( d1cs_head, d1cs_body ) => let val (pf1env | ()) = the_trans2_env_push () val d2cs_head = d1eclist_tr (d1cs_head) val (pf2env | ()) = the_trans2_env_push () val d2cs_body = d1eclist_tr (d1cs_body) val () = the_trans2_env_localjoin (pf1env, pf2env | (*none*)) in d2ecl_local (loc0, d2cs_head, d2cs_body) end // end of [D1Clocal] // (* | _ => let val () = prerr_error2_loc (loc0) val () = prerrln! (": d1ecl_tr: not implemented: d1c0 = ", d2c0) in d2ecl_none (loc0) end // end of [_] *) // end // end of [d1ecl_tr] (* ****** ****** *) implement d1eclist_tr(d1cs) = let // val d2cs = list_map_fun(d1cs, d1ecl_tr) // in list_of_list_vt{d2ecl}(d2cs) end // end of [d1eclist_tr] (* ****** ****** *) implement d1eclist_tr_errck (d1cs) = d2cs where { // val d2cs = d1eclist_tr(d1cs) // val ((*void*)) = the_trans2errlst_finalize() // } // end of [d1eclist_tr_errck] (* ****** ****** *) (* end of [pats_trans2_decl.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_appsym.dats0000644000175000017500000004413213431250607022164 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> ( // argless ) = prerr "pats_trans3_appsym" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) extern fun aritest_d2exparglst_s2exp (d2as: d2exparglst, s2e: s2exp): bool (* ** HX: for handling dynamic overloading *) local // fun loop ( d2as: d2exparglst , s2e: s2exp, npf: int, d2es: d2explst ) : bool = let val s2e = s2exp_hnfize (s2e) in case+ s2e.s2exp_node of | S2Efun ( _(*fc*), _(*lin*), _(*eff*), npf1, s2es_arg, s2e_res ) => if (npf = npf1) then let val sgn = list_length_compare (d2es, s2es_arg) in // end of [val] if sgn = 0 then aritest_d2exparglst_s2exp (d2as, s2e_res) else false // end of [if] end else false // end of [if] // end of [S2Efun] | S2Eexi (_(*s2vs*), _(*s2ps*), s2e) => loop (d2as, s2e, npf, d2es) | S2Euni (_(*s2vs*), _(*s2ps*), s2e) => loop (d2as, s2e, npf, d2es) | S2Emetfun (_(*opt*), _(*met*), s2e) => loop (d2as, s2e, npf, d2es) | _ => false // end of [_] end // end of [loop] // in // in of [local] implement aritest_d2exparglst_s2exp (d2as, s2e) = let in case+ d2as of | list_cons (d2a, d2as) => ( case+ d2a of | D2EXPARGdyn ( npf, _(*loc*), d2es ) => loop (d2as, s2e, npf, d2es) | D2EXPARGsta _ => aritest_d2exparglst_s2exp (d2as, s2e) ) // end of [list_cons] | list_nil ((*void*)) => true end // end of [aritest_d2exparglst_s2exp] end // end of [local] (* ****** ****** *) fun d2exp_trup_item ( loc0: loc_t, d2i: d2itm, t2mas: t2mpmarglst ) : d3exp = let (* val () = ( print "d2exp_trup_item: d2i = "; fprint_d2itm (stdout_ref, d2i); print_newline () ) // end [val] *) in // case+ d2i of | D2ITMcst d2c => let val s2qs = d2cst_get_decarg (d2c) // end of [val] val s2e = d2cst_get_type (d2c) val s2e = s2exp_unis (s2qs, s2e) in d3exp_item (loc0, s2e, d2i, t2mas) end | D2ITMvar d2v => let val s2qs = d2var_get_decarg (d2v) val-Some (s2e) = d2var_get_type (d2v) val s2e = s2exp_unis (s2qs, s2e) in d3exp_item (loc0, s2e, d2i, t2mas) end | _ => let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "d2exp_trup_item" val () = prerr ": a dynamic constant or variable is expected." val () = prerr_newline () val () = the_trans3errlst_add (T3E_d2exp_trup_item (loc0, d2i)) in d3exp_errexp (loc0) end // end of [_] // end // end of [d2exp_trup_item] (* ****** ****** *) fun d3exp_trup_item (d3e0: d3exp): d3exp = let // val loc0 = d3e0.d3exp_loc val-D3Eitem (d2i, t2mas) = d3e0.d3exp_node val isnil = list_is_nil (t2mas) // in // case+ d2i of | D2ITMcst d2c => ( if isnil then d2exp_trup_cst (loc0, d2c) else d2exp_trup_tmpcst (loc0, d2c, t2mas) // end of [if] ) // end of [D2ITMcst] | D2ITMvar d2v => ( if isnil then d2exp_trup_var (loc0, d2v) else d2exp_trup_tmpvar (loc0, d2v, t2mas) // end of [if] ) // end of [D2ITMvar] | _ => let val () = assertloc (false) in d3exp_errexp (loc0) end // end of [_] // end // end of [d3exp_trup_item] (* ****** ****** *) // datatype d3pitm = D3PITM of (int, d3exp) // typedef d3pitmlst = List(d3pitm) vtypedef d3pitmlst_vt = List_vt(d3pitm) // (* ****** ****** *) fun d3pitm_make ( pval: int, d3e: d3exp ) : d3pitm = D3PITM(pval, d3e) // end of [d3pitm_make] fun d3pitm_get_dexp ( d3pi: d3pitm ) : d3exp = let val D3PITM(pval, d3e) = d3pi in d3e end // end of [d3pitm_get_dexp] fun d3pitm_get_type ( d3pi: d3pitm ) : s2exp = let val D3PITM(pval, d3e) = d3pi in d3e.d3exp_type end // end of [d3pitm_get_type] fun d3pitm_get_pval ( d3pi: d3pitm ) : int = let val D3PITM(pval, d3e) = d3pi in pval end // end of [d3pitm_get_pval] fun fprint_d3pitm ( out: FILEref, x: d3pitm ) : void = let val D3PITM (pval, d3e) = x val-D3Eitem (d2i, t2mas) = d3e.d3exp_node val () = fprint_d2itm (out, d2i) val () = fprint_string (out, " of ") val () = fprint_int (out, pval) in // nothing end // end of [fprint_d3pitm] (* ****** ****** *) // datatype d3exparg = | D3EXPARGsta of (loc_t(*arg*), s2exparglst) // end of [D3EXPARGsta] | D3EXPARGdyn of // HX: notice the argument list [d3es] (int(*npf*), loc_t(*arg*), d3explst) // are not opened // end of [D3EXPARGdyn] // typedef d3exparglst = List(d3exparg) vtypedef d3exparglst_vt = List_vt(d3exparg) // (* ****** ****** *) extern fun d3exp_trup_applst ( d2e0: d2exp, d3e_fun: d3exp, d3as: d3exparglst ) : d3exp // end of [d3exp_trup_applst] implement d3exp_trup_applst (d2e0, d3e_fun, d3as) = let (* val () = ( print "d3exp_trup_applst: ..."; print_newline () ) // end of [val] *) val loc0 = d2e0.d2exp_loc in // case+ d3as of // | list_cons (d3a, d3as) => ( case+ d3a of | D3EXPARGsta (locarg, s2as) => let val loc_fun = d3e_fun.d3exp_loc val s2e_fun = d3e_fun.d3exp_type var err: int = 0 val (s2e_fun, s2ps) = s2exp_uni_instantiate_sexparglst (s2e_fun, s2as, err) // end of [val] val () = trans3_env_add_proplst_vt (loc_fun, s2ps) val d3e_fun = d3exp_app_sta (loc0, s2e_fun, d3e_fun) in d3exp_trup_applst (d2e0, d3e_fun, d3as) end // end of [D3EXPARGsta] | D3EXPARGdyn (npf, locarg, d3es_arg) => let val loc_fun = d3e_fun.d3exp_loc val s2e_fun = d3e_fun.d3exp_type val () = d3explst_open_and_add (d3es_arg) var err: int = 0 val (s2e_fun, s2ps) = s2exp_unimet_instantiate_all (s2e_fun, locarg, err) // HX: [err] is not used val () = trans3_env_add_proplst_vt (loc_fun, s2ps) val d3e_fun = d3exp_app_unista (loc0, s2e_fun, d3e_fun) val-S2Efun ( fc, _(*lin*), s2fe_fun, _(*npf*), s2es_fun_arg, s2e_fun_res ) = s2e_fun.s2exp_node // end of[val] // val loc_app = $LOC.location_combine (loc_fun, locarg) val s2es_fun_arg = s2fun_opninv_and_add (locarg, s2es_fun_arg, s2e_fun_res) val d3es_arg = d3explst_trdn_arg (d3es_arg, s2es_fun_arg) // val ( iswth, s2e_res, wths2es ) = un_s2exp_wthtype (loc_app, s2e_fun_res) // val d3e_fun = d3exp_fun_restore (fc, d3e_fun) val d3es_arg = ( if iswth then d3explst_arg_restore (d3es_arg, s2es_fun_arg, wths2es) else d3es_arg // end of [if] ) : d3explst // end of [val] // val err = the_effenv_check_s2eff (loc_app, s2fe_fun) val ( ) = if (err > 0) then ( the_trans3errlst_add (T3E_d3exp_trup_applst_eff (loc_app, s2fe_fun)) ) // end of [if] // end of [val] // val d3e_fun = d3exp_app_dyn (loc0, s2e_res, d3e_fun, npf, d3es_arg) in d3exp_trup_applst (d2e0, d3e_fun, d3as) end // end of [D3EXPARGdyn] ) (* end of [list_cons] *) // | list_nil ((*void*)) => d3e_fun // end of [list_nil] // end // end of [d3exp_trup_applst] (* ****** ****** *) local (* ****** ****** *) typedef XY = (d3pitm, s2kexp) (* ****** ****** *) fun auxsel_arity ( locsym: loc_t , d2pis: d2pitmlst , d2piss: List_vt(d2pitmlst) , t2mas: t2mpmarglst , d2args: d2exparglst ) : d3pitmlst_vt = let in // case+ d2pis of | list_nil ((*void*)) => ( case+ d2piss of | ~list_vt_nil() => list_vt_nil () | ~list_vt_cons(d2pis, d2piss) => auxsel_arity (locsym, d2pis, d2piss, t2mas, d2args) // end of [list_cons] ) (* end of [list_nil] *) | list_cons (d2pi, d2pis) => let val D2PITM (pval, d2i) = d2pi in case+ d2i of | D2ITMsymdef (_(*sym*), d2pis_new) => let val d2piss = list_vt_cons (d2pis, d2piss) in auxsel_arity (locsym, d2pis_new, d2piss, t2mas, d2args) end // end of [D2ITMsymdef] | _ => let val d3e = d2exp_trup_item(locsym, d2i, t2mas) val test = aritest_d2exparglst_s2exp(d2args, d3e.d3exp_type) val d3pis = auxsel_arity(locsym, d2pis, d2piss, t2mas, d2args) in if test then let val d3pi = d3pitm_make(pval, d3e) in list_vt_cons(d3pi, d3pis) end else d3pis // end of [if] end // end of [_] end // end of [list_cons] // end // end of [auxsel_arity] fun auxsel_skexplst ( xys:List_vt(XY) , s2kes: s2kexplst ) : List_vt(XY) = let (* val () = ( print "auxsel_skexplst: s2kes = "; fprint_s2kexplst (stdout_ref, s2kes); print_newline () ) // end of [val] *) in // case+ xys of | ~list_vt_nil() => list_vt_nil((*void*)) // list_vt_nil | ~list_vt_cons(xy, xys) => ( case+ xy.1 of | S2KEfun ( s2kes_arg, s2ke_res ) => let (* // val out = stdout_ref // val () = ( print "auxsel_skexplst: s2kes_arg = "; fprint_s2kexplst(out, s2kes_arg); print_newline() ) (* end of [val] *) *) val ismat = s2kexplst_ismat(s2kes, s2kes_arg) // end of [val] (* val () = println! ("auxsel_skexplst: ismat = ", ismat) *) val x = (xy.0, s2ke_res) val xs = auxsel_skexplst(xys, s2kes) in if ismat then list_vt_cons (x, xs) else xs end // end of [list_vt_cons] | _ (*non-S2KEfun*) => auxsel_skexplst(xys, s2kes) ) (* end of [list_vt_cons] *) // end // end of [auxsel_skexplst] fun auxsel_arglst ( xys: List_vt(XY) , d2as: d2exparglst, d3as: d3exparglst_vt ) : ( d3pitmlst , d3exparglst , d2exparglst ) = let // fun auxmap (xys: List_vt(XY)): d3pitmlst = ( case+ xys of | ~list_vt_nil ((*void*)) => list_nil() | ~list_vt_cons (xy, xys) => list_cons(xy.0, auxmap(xys)) ) (* end of [auxmap] *) // in // case+ d2as of | list_nil() => let val d3as = list_vt_reverse(d3as) // end of [val] in (auxmap(xys), (l2l)d3as, d2as) end // end of [list_nil] | list_cons(_, _) => ( case+ xys of | list_vt_nil ((*void*)) => let val () = free@{XY}(xys) val d3as = list_vt_reverse (d3as) // end of [val] in (list_nil(), (l2l)d3as, d2as) end // end of [list_vt_nil] | list_vt_cons (xy, !p_xys1) => ( case+ !p_xys1 of | ~list_vt_nil () => let val () = free@{XY}{0}(xys) val d3as = list_vt_reverse(d3as) in (list_sing(xy.0), (l2l)d3as, d2as) end | _ => let val () = fold@(xys) val+list_cons (d2a, d2as) = d2as in case+ d2a of | D2EXPARGsta (locarg, s2as) => let val d3a = D3EXPARGsta(locarg, s2as) in auxsel_arglst(xys, d2as, list_vt_cons(d3a, d3as)) end (* D2EXPARGsta *) | D2EXPARGdyn (npf, locarg, d2es) => let val d3es = d2explst_trup (d2es) val s2kes = list_map_fun (d3es, lam d3e =<1> s2kexp_make_s2exp(d3e.d3exp_type)) val xs = auxsel_skexplst(xys, $UN.castvwtp1{s2kexplst}(s2kes)) val () = list_vt_free (s2kes) val d3a = D3EXPARGdyn (npf, locarg, d3es) in auxsel_arglst (xs, d2as, list_vt_cons (d3a, d3as)) end (* D2EXPARGdyn *) end // end of [_] ) // end of [list_vt_cons] ) // end of [list_cons] // end // end of [auxsel_arglst] #define ITMPVALMIN ~1000000 fun auxselmax ( d3pis: d3pitmlst ) : d3pitmlst = let // fun loop ( xs: d3pitmlst, mpval: int ) : int = ( case+ xs of | list_nil() => mpval | list_cons(x, xs) => let val pval = d3pitm_get_pval(x) in loop(xs, max_int_int(mpval, pval)) end ) (* end of [loop] *) // val mpval = loop(d3pis, ITMPVALMIN) val d3pis = list_filter_cloptr ( d3pis , lam (x) =<1> d3pitm_get_pval(x) = mpval ) (* end of [val] *) // in list_of_list_vt(d3pis) end // end of [auxselmax] fun auxeq_d2itm ( d2i1: d2itm , d2i2: d2itm ) : bool = ( case+ d2i1 of | D2ITMcst(d2c1) => ( case+ d2i2 of | D2ITMcst(d2c2) => (d2c1 = d2c2) | _ => false ) | D2ITMvar(d2v1) => ( case+ d2i2 of | D2ITMvar(d2v2) => (d2v1 = d2v2) | _ => false ) | _(* rest-of-d2itm *) => false ) (* end of [auxeq_d2itm] *) fun auxeq_d3pitm ( d3pi1: d3pitm , d3pi2: d3pitm ) : bool = let // val d3e1 = d3pitm_get_dexp(d3pi1) val d3e2 = d3pitm_get_dexp(d3pi2) // in // case+ d3e1.d3exp_node of (* case+ *) | D3Eitem(d2i1, _) => ( case+ d3e2.d3exp_node of (* case+ *) | D3Eitem(d2i2, _) => auxeq_d2itm(d2i1, d2i2) | _ => false ) | _ (*non-D3Eitem*) => false // end // end of [auxeq_d3pitm] fun auxeq_d3pitm_remdup ( d3pis: d3pitmlst ) : d3pitmlst = ( case+ d3pis of | list_nil() => list_nil() | list_cons(d3pi0, d3pis) => let val d3pis = list_filter_cloptr ( d3pis , lam(x) =<1> ~auxeq_d3pitm(d3pi0, x) ) (* end of [val] *) in list_cons(d3pi0, list_of_list_vt(d3pis)) end ) (* end of [auxeq_d3pitm_remdup] *) in (* in of [local] *) implement d2exp_trup_applst_sym (d2e0, d2s, d2as) = let // val t2mas = list_nil(*void*) // in d2exp_trup_applst_tmpsym(d2e0, d2s, t2mas, d2as) end // end of [d2exp_trup_applst_sym] implement d2exp_trup_applst_tmpsym (d2e0, d2s, t2mas, d2as) = let (* val () = ( print "d2exp_trup_applst_sym: d2s = "; fprint_d2sym (stdout_ref, d2s); print_newline (); print "d2exp_trup_applst_sym: d2as = "; fprint_d2exparglst (stdout_ref, d2as); print_newline (); ) (* end of [val] *) *) val loc0 = d2e0.d2exp_loc val locsym = d2s.d2sym_loc // val d2pis = d2s.d2sym_pitmlst val d3pis = auxsel_arity (locsym, d2pis, list_vt_nil, t2mas, d2as) // val xys = let fun fopr ( d3pi: d3pitm ) : XY = let val s2e = d3pitm_get_type(d3pi) // end of [val] in (d3pi, s2kexp_make_s2exp(s2e)) end // end of [fopr] in list_map_fun ($UN.castvwtp1{d3pitmlst}(d3pis), fopr) // end of [list_map_fun] end // end of [val] val ((*freed*)) = list_vt_free(d3pis) // val xyz = auxsel_arglst(xys, d2as, list_vt_nil) // val d3pis = xyz.0 val d3pis = auxselmax(d3pis) // // HX-2017-02-12: // For removing duplicates of // overloaded dyncsts and dynvars val d3pis = auxeq_d3pitm_remdup(d3pis) // in // case+ d3pis of // | list_nil ( (*void*) ) => let val () = prerr_error3_loc (loc0) // end of [val] val () = prerr ": the symbol ["; val () = fprint_d2sym(stderr_ref, d2s) val () = prerr "] cannot be resolved as no match is found." val () = prerr_newline((*void*)) val () = the_trans3errlst_add (T3E_d2exp_trup_applst_sym_nil(d2e0, d2s)) // end of [val] in d3exp_errexp(loc0) end // end of [list_nil] // | list_cons ( d3pi, list_nil() ) => let val d3e_fun = d3pitm_get_dexp(d3pi) val d3e_fun = d3exp_trup_item(d3e_fun) val d3e_fun = d3exp_trup_applst(d2e0, d3e_fun, xyz.1) in d23exp_trup_applst(d2e0, d3e_fun, xyz.2) end // end of [list_sing] // | list_cons ( d3pi1, list_cons(d3pi2, _) ) => let val () = prerr_error3_loc(loc0) val () = prerr ": the symbol ["; val () = fprint_d2sym(stderr_ref, d2s) val () = prerr "] cannot be resolved due to too many matches:\n" val () = fprint_d3pitm(stderr_ref, d3pi1) val () = prerr_newline() val () = fprint_d3pitm(stderr_ref, d3pi2) val () = prerr_newline() val () = the_trans3errlst_add (T3E_d2exp_trup_applst_sym_cons2(d2e0, d2s)) // end of [val] in d3exp_errexp (loc0) end // end of [list_cons2] // end // end of [d2exp_trup_applst_tmpsym] // end // end of [local] (* ****** ****** *) local fun auxins ( npf: int , d2e_rt: d2exp, d2es: d2explst ) : d2explst = ( if npf > 0 then let val-list_cons (d2e, d2es) = d2es in list_cons (d2e, auxins (npf-1, d2e_rt, d2es)) end // end of [then] else list_cons (d2e_rt, d2es) // end of [if] ) fun auxins2 ( d2e0: d2exp , d2e_rt: d2exp, d2as: d2exparglst ) : d2exparglst = ( case+ d2as of // | list_nil() => let val d2a = D2EXPARGdyn(~1(*npf*), d2e0.d2exp_loc, list_sing(d2e_rt)) // end of [val] in list_sing (d2a) end // end of [list_nil] // | list_cons(d2a, d2as) => ( case+ d2a of | D2EXPARGsta _ => list_cons(d2a, auxins2 (d2e0, d2e_rt, d2as)) | D2EXPARGdyn(npf, loc_arg, d2es) => let val d2a = D2EXPARGdyn(npf, loc_arg, auxins (npf, d2e_rt, d2es)) // end of [val] in list_cons(d2a, d2as) end // end of [D2EXPARGdyn] ) (* end of [list_cons] *) // ) (* end of [auxins2] *) in (* in-of-local *) implement d2exp_trup_applst_seloverld (d2e0, d2e_fun, d2s, d2as_arg) = let // val d2e_rt = d2exp_get_seloverld_root(d2e_fun) val d2as_arg = auxins2(d2e0, d2e_rt, d2as_arg) // in d2exp_trup_applst_sym(d2e0, d2s, d2as_arg) end // end of [d2exp_trup_applst_seloverld] end // end of [local] (* ****** ****** *) (* end of [pats_trans3_funsel.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_dynexp.dats0000644000175000017500000013430013431250607022046 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_ccomp_dynexp" // (* ****** ****** *) // staload GLOBAL = "./pats_global.sats" // (* ****** ****** *) staload LOC = "./pats_location.sats" overload print with $LOC.print_location (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dyncst2.sats" (* ****** ****** *) staload "./pats_trans2_env.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload TYER = "./pats_typerase.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) macdef l2l (xs) = list_of_list_vt (,(xs)) macdef list_vt2t (xs) = $UN.linlst2lst (,(xs)) (* ****** ****** *) overload fprint with fprint_vbindmap (* ****** ****** *) extern fun d2var_ccomp ( env: !ccompenv , loc0: location, hse0: hisexp, d2v: d2var ) : primval // end of [d2var_ccomp] extern fun d2var_ccomp_some ( env: !ccompenv , loc0: location, hse0: hisexp, d2v: d2var, pmv: primval ) : primval // end of [d2var_ccomp_some] implement d2var_ccomp (env, loc0, hse0, d2v) = let // val opt = ccompenv_find_vbindmapall (env, d2v) // in case+ opt of | ~Some_vt(pmv) => d2var_ccomp_some(env, loc0, hse0, d2v, pmv) // end of [Some_vt] | ~None_vt((*void*)) => primval_error (loc0, hse0) // HX-2013-04: deadcode?! // end of [None_vt] // end // end of [d2var_ccomp] implement d2var_ccomp_some ( env, loc0, hse0, d2v, pmv ) = let // val lvl0 = the_d2varlev_get () val lvl1 = d2var_get_level (d2v) // in // case+ 0 of | _ when lvl1 < lvl0 => let (* environvar *) (* val () = println! ("d2var_ccomp_some: pmv = ", pmv) *) in case+ pmv.primval_node of | PMVfunlab (fl) => let val () = ccompenv_add_flabsetenv (env, fl) in pmv end // end of [PMVfunlab] | PMVcfunlab (_, fl) => let val () = ccompenv_add_flabsetenv (env, fl) in pmv end // end of [PMVcfunlab] | PMVd2vfunlab (d2v, fl) => let val () = ccompenv_add_flabsetenv (env, fl) in pmv end // end of [PMVd2vfunlab] | _ (*non-funlab*) => let val () = ccompenv_add_dvarsetenv_var (env, d2v) in if lvl1 > 0 then primval_env (loc0, hse0, d2v) else pmv(*toplevel*) end (* end of [_] *) end // end of [environvar] // | _ (*lvl1 >= lvl0*) => pmv (* [d2v] is at current-level *) // end // end of [d2var_ccomp_some] (* ****** ****** *) extern fun hidexp_ccomp_var : hidexp_ccomp_funtype extern fun hidexp_ccomp_cst : hidexp_ccomp_funtype extern fun hidexp_ccomp_string : hidexp_ccomp_funtype extern fun hidexp_ccomp_cstsp : hidexp_ccomp_funtype extern fun hidexp_ccomp_tyrep : hidexp_ccomp_funtype extern fun hidexp_ccomp_tmpcst : hidexp_ccomp_funtype extern fun hidexp_ccomp_tmpvar : hidexp_ccomp_funtype extern fun hidexp_ccomp_seq : hidexp_ccomp_funtype extern fun hidexp_ccomp_selab : hidexp_ccomp_funtype extern fun hidexp_ccomp_selvar : hidexp_ccomp_funtype extern fun hidexp_ccomp_selptr : hidexp_ccomp_funtype extern fun hidexp_ccomp_ptrofvar : hidexp_ccomp_funtype extern fun hidexp_ccomp_ptrofsel : hidexp_ccomp_funtype extern fun hidexp_ccomp_vararg: hidexp_ccomp_funtype extern fun hidexp_ccomp_refarg : hidexp_ccomp_funtype extern fun hidexp_ccomp_assgn_var : hidexp_ccomp_funtype extern fun hidexp_ccomp_assgn_ptr : hidexp_ccomp_funtype extern fun hidexp_ccomp_xchng_var : hidexp_ccomp_funtype extern fun hidexp_ccomp_xchng_ptr : hidexp_ccomp_funtype (* ****** ****** *) extern fun hilab_ccomp (env: !ccompenv, res: !instrseq, hil: hilab): primlab // end of [fun hilab_ccomp] extern fun hilablst_ccomp (env: !ccompenv, res: !instrseq, hils: hilablst): primlablst // end of [fun hilablst_ccomp] (* ****** ****** *) extern fun hidexp_ccomp_ret_con : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_app : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_extfcall : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_extmcall : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_if : hidexp_ccomp_ret_funtype (* extern fun hidexp_ccomp_ret_sif : hidexp_ccomp_ret_funtype *) extern fun hidexp_ccomp_ret_lst : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_rec : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_seq : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_arrpsz : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_arrinit : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_laminit : hidexp_ccomp_ret_funtype extern fun hidexp_ccomp_ret_fixinit : hidexp_ccomp_ret_funtype (* ****** ****** *) local fun auxret ( env: !ccompenv , res: !instrseq , hde0: hidexp ) : primval = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val tmpret = tmpvar_make(loc0, hse0) // val ((*void*)) = hidexp_ccomp_ret(env, res, tmpret, hde0) // in primval_make_tmp(loc0, tmpret) end // end of [auxret] in (* in of [local] *) implement hidexp_ccomp (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // (* val () = println! ("hidexp_ccomp: hse0 = ", hse0) val () = println! ("hidexp_ccomp: hde0 = ", hde0) *) // in // case+ hde0.hidexp_node of (* case+ *) // | HDEvar _ => hidexp_ccomp_var(env, res, hde0) | HDEcst _ => hidexp_ccomp_cst(env, res, hde0) // | HDEint(int) => primval_int(loc0, hse0, int) | HDEintrep(rep) => primval_intrep(loc0, hse0, rep) // | HDEbool(bool) => primval_bool(loc0, hse0, bool) | HDEchar(char) => primval_char(loc0, hse0, char) // | HDEfloat(rep) => let val float = $UT.double_make_string(rep) in primval_float(loc0, hse0, float) end // end of [HDEfloat] // | HDEstring _ => hidexp_ccomp_string(env, res, hde0) // | HDEi0nt (tok) => primval_i0nt(loc0, hse0, tok) | HDEf0loat (tok) => primval_f0loat(loc0, hse0, tok) // | HDEcstsp _ => hidexp_ccomp_cstsp(env, res, hde0) // | HDEtyrep _ => hidexp_ccomp_tyrep(env, res, hde0) // | HDEtop() => primval_top(loc0, hse0) | HDEempty() => primval_empty(loc0, hse0) | HDEignore(hde) => hidexp_ccomp(env, res, hde) // | HDEextval(name) => primval_extval (loc0, hse0, name) // | HDEcastfn ( d2c_fun, hde_arg ) => let val pmv_arg = hidexp_ccomp(env, res, hde_arg) in primval_castfn(loc0, hse0, d2c_fun, pmv_arg) end // end of [HDEcastfn] // | HDEextfcall _ => auxret(env, res, hde0) | HDEextmcall _ => auxret(env, res, hde0) // | HDEcon _ => auxret(env, res, hde0) // | HDEtmpcst _ => hidexp_ccomp_tmpcst(env, res, hde0) | HDEtmpvar (d2v, t2mas) => hidexp_ccomp_tmpvar(env, res, hde0) // | HDEfoldat _ => primval_empty(loc0, hse0) | HDEfreeat(hde) => let val pmv = hidexp_ccomp(env, res, hde) val ins_free = instr_freecon(loc0, pmv) val ((*void*)) = instrseq_add(res, ins_free) in primval_empty(loc0, hse0) end // end of [HDEfreeat] // | HDElet(hids, hde_scope) => let // val (pfpush|()) = ccompenv_push(env) // val pmds = hideclist_ccomp(env, hids) val ins_push = instr_letpush(loc0, pmds) val ((*void*)) = instrseq_add(res, ins_push) // val pmv_scope = hidexp_ccomp(env, res, hde_scope) // val ins_pop = instr_letpop(loc0) val ((*void*)) = instrseq_add(res, ins_pop) // val ((*popped*)) = ccompenv_pop(pfpush | env) // in pmv_scope(*returned*) end (* end of [HDElet] *) // | HDEapp _ => auxret(env, res, hde0) // | HDEif _ => let val pmv = auxret(env, res, hde0) in pmv end | HDEcase _ => let val pmv = auxret(env, res, hde0) in pmv end // | HDElst _ => let val pmv = auxret(env, res, hde0) in pmv end | HDErec _ => let val pmv = auxret(env, res, hde0) in pmv end // | HDEseq _ => hidexp_ccomp_seq(env, res, hde0) // | HDEselab _ => hidexp_ccomp_selab(env, res, hde0) // | HDEptrofvar _ => hidexp_ccomp_ptrofvar(env, res, hde0) // end of [HDEptrofvar] | HDEptrofsel _ => hidexp_ccomp_ptrofsel(env, res, hde0) // end of [HDEptrofsel] // | HDEvararg _ => hidexp_ccomp_vararg(env, res, hde0) // | HDErefarg _ => hidexp_ccomp_refarg(env, res, hde0) // | HDEselvar _ => hidexp_ccomp_selvar(env, res, hde0) | HDEselptr _ => hidexp_ccomp_selptr(env, res, hde0) // | HDEassgn_var _ => hidexp_ccomp_assgn_var(env, res, hde0) | HDEassgn_ptr _ => hidexp_ccomp_assgn_ptr(env, res, hde0) // | HDExchng_var _ => hidexp_ccomp_xchng_var(env, res, hde0) | HDExchng_ptr _ => hidexp_ccomp_xchng_ptr(env, res, hde0) // | HDEarrpsz _ => auxret(env, res, hde0) // | HDEraise (hde_exn) => auxret(env, res, hde0) // end of [HDEraise] // (* | HDEvcopyenv(d2v) => HX: HDEvar( d2v ) *) // | HDEtempenver(d2vs) => let // val () = ccompenv_add_tempenver(env, d2vs) val () = instrseq_add (res, instr_tempenver(loc0, d2vs)) // end of [val] // in primval_empty(loc0, hse0) end // end of [HDEtempenver] // | HDElam _ => hidexp_ccomp_lam (env, res, hde0) | HDEfix _ => hidexp_ccomp_fix (env, res, hde0) // | HDEdelay _ => auxret (env, res, hde0) | HDEldelay _ => auxret (env, res, hde0) | HDElazyeval _ => auxret (env, res, hde0) // | HDEloop _ => hidexp_ccomp_loop (env, res, hde0) | HDEloopexn _ => hidexp_ccomp_loopexn (env, res, hde0) // | HDEtrywith _ => auxret (env, res, hde0) // | HDEsif _(*error*) => let val () = prerr_errccomp_loc(loc0) val () = prerrln! ( ": [sif] is not supported after proof-erasure." ) (* end of [println!] *) in primval_error (loc0, hse0) end (* end of [HDEsif] *) // | _(*unspported*) => let val () = prerr_interror_loc(loc0) val () = prerrln! (": hidexp_ccomp: hde0 = ", hde0) in exitloc(1) end // end of [_(*unsupported*)] // end // end of [let] // end of [hidexp_ccomp] implement hidexp_ccompv (env, res, hde0) = let val islval = hidexp_is_lvalue (hde0) in if islval then auxret (env, res, hde0) else hidexp_ccomp (env, res, hde0) // end of [if] end // end of [hidexp_ccompv] end // end of [local] (* ****** ****** *) implement hidexplst_ccomp (env, res, hdes) = let // fun loop ( env: !ccompenv , res: !instrseq , hdes: hidexplst , pmvs: &primvalist_vt? >> primvalist_vt ) : void = let in // case+ hdes of | list_nil ((*void*)) => { val () = pmvs := list_vt_nil(*void*) } (* end of [list_nil] *) | list_cons (hde, hdes) => let val pmv = hidexp_ccomp(env, res, hde) // end of [val] val () = ( pmvs := list_vt_cons{..}{0}(pmv, ?) ) (* end of [val] *) val+list_vt_cons(_, !p_pmvs) = pmvs val () = loop(env, res, hdes, !p_pmvs) prval ((*folded*)) = fold@(pmvs) in // nothing end // end of [list_cons] // end // end of [loop] // var pmvs: primvalist_vt val () = loop (env, res, hdes, pmvs) // in // list_of_list_vt (pmvs) // end // end of [hidexplst_ccomp] (* ****** ****** *) implement hidexplst_ccompv (env, res, hdes) = let // fun loop ( env: !ccompenv , res: !instrseq , hdes: hidexplst , pmvs: &primvalist_vt? >> primvalist_vt ) : void = let in // case+ hdes of | list_cons (hde, hdes) => let val pmv = hidexp_ccompv (env, res, hde) val () = pmvs := list_vt_cons {..}{0} (pmv, ?) val list_vt_cons (_, !p_pmvs) = pmvs val () = loop (env, res, hdes, !p_pmvs) prval ((*folded*)) = fold@ (pmvs) in // nothing end // end of [list_cons] | list_nil () => let val () = pmvs := list_vt_nil () in (*nothing*) end // end of [list_nil] // end // end of [loop] // var pmvs: primvalist_vt val () = loop (env, res, hdes, pmvs) // in // list_of_list_vt (pmvs) // end // end of [hidexplst_ccompv] (* ****** ****** *) extern fun labhidexplst_ccomp ( env: !ccompenv, res: !instrseq, lhdes: labhidexplst ) : labprimvalist // end of [labhidexplst_ccomp] implement labhidexplst_ccomp (env, res, lhdes) = let // fun loop ( env: !ccompenv , res: !instrseq , lhdes: labhidexplst , lpmvs: &labprimvalist_vt? >> labprimvalist_vt ) : void = let // (* val () = println! ("labhidexplst_ccomp: loop") *) // in // case+ lhdes of | list_nil() => ( lpmvs := list_vt_nil() ) (* end of [list_nil] *) | list_cons (lhde, lhdes) => let // val LABHIDEXP(lab, hde) = lhde // (* val () = println! ("loop: hde = ", hde) // end of [val] val () = println! ("loop: hde.type = ", hde.hidexp_type) // end of [val] *) // val pmv = hidexp_ccomp (env, res, hde) // end of [val] // val lpmv = LABPRIMVAL (lab, pmv) val () = ( lpmvs := list_vt_cons{..}{0}(lpmv, ?) ) (* end of [val] *) val+list_vt_cons(_, !p_lpmvs) = lpmvs val () = loop (env, res, lhdes, !p_lpmvs) prval ((*folded*)) = fold@ (lpmvs) in // nothing end // end of [list_cons] // end // end of [loop] // in // let var lpmvs: labprimvalist_vt in loop(env, res, lhdes, lpmvs); list_of_list_vt(lpmvs) end // end of [let] // end // end of [labhidexplst_ccomp] (* ****** ****** *) local fun auxval ( env: !ccompenv , res: !instrseq , tmpret: tmpvar , hde0_val: hidexp ) : void = let val loc0 = hde0_val.hidexp_loc val pmv0 = hidexp_ccomp(env, res, hde0_val) val ins0 = instr_move_val(loc0, tmpret, pmv0) in instrseq_add(res, ins0) end // end of [auxval] in (* in of [local] *) implement hidexp_ccomp_ret ( env, res, tmpret, hde0 ) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // in // case+ hde0.hidexp_node of (* case+ *) // | HDEvar _ => auxval(env, res, tmpret, hde0) | HDEcst _ => auxval(env, res, tmpret, hde0) // | HDEint _ => auxval(env, res, tmpret, hde0) | HDEintrep _ => auxval(env, res, tmpret, hde0) // | HDEbool _ => auxval(env, res, tmpret, hde0) | HDEchar _ => auxval(env, res, tmpret, hde0) | HDEfloat _ => auxval(env, res, tmpret, hde0) | HDEstring _ => auxval(env, res, tmpret, hde0) // | HDEi0nt _ => auxval(env, res, tmpret, hde0) | HDEf0loat _ => auxval(env, res, tmpret, hde0) // | HDEtop _ => () | HDEempty _ => auxval(env, res, tmpret, hde0) | HDEignore (hde) => let val _ = hidexp_ccomp(env, res, hde) in (*nothing*) end (* end of [HDEignore] *) // | HDEcastfn _ => auxval(env, res, tmpret, hde0) // | HDEextval _ => auxval(env, res, tmpret, hde0) // | HDEextfcall _ => hidexp_ccomp_ret_extfcall(env, res, tmpret, hde0) (* end of [HDEextfcall] *) | HDEextmcall _ => hidexp_ccomp_ret_extmcall(env, res, tmpret, hde0) (* end of [HDEextmcall] *) // | HDEcon _ => hidexp_ccomp_ret_con(env, res, tmpret, hde0) (* end of [HDEcon] *) // | HDEtmpcst _ => auxval(env, res, tmpret, hde0) | HDEtmpvar _ => auxval(env, res, tmpret, hde0) // | HDEfoldat _ => auxval(env, res, tmpret, hde0) | HDEfreeat _ => auxval(env, res, tmpret, hde0) // | HDElet ( hids, hde_scope ) => let // val (pf | ()) = ccompenv_push (env) // val pmds = hideclist_ccomp (env, hids) val ins_push = instr_letpush (loc0, pmds) val () = instrseq_add(res, ins_push) // val () = hidexp_ccomp_ret(env, res, tmpret, hde_scope) // val ins_pop = instr_letpop(loc0) val () = instrseq_add(res, ins_pop) // val () = ccompenv_pop(pf(*push*) | env) // in // nothing end // end of [HDElet] // | HDEapp _ => hidexp_ccomp_ret_app(env, res, tmpret, hde0) // | HDEif _ => ( hidexp_ccomp_ret_if(env, res, tmpret, hde0) ) // | HDEcase _ => hidexp_ccomp_ret_case(env, res, tmpret, hde0) // | HDElst _ => hidexp_ccomp_ret_lst(env, res, tmpret, hde0) // | HDErec _ => hidexp_ccomp_ret_rec(env, res, tmpret, hde0) // | HDEseq _ => hidexp_ccomp_ret_seq(env, res, tmpret, hde0) // | HDEselab _ => auxval(env, res, tmpret, hde0) // | HDEptrofvar _ => auxval(env, res, tmpret, hde0) | HDEptrofsel _ => auxval(env, res, tmpret, hde0) // | HDEselvar _ => auxval(env, res, tmpret, hde0) | HDEselptr _ => auxval(env, res, tmpret, hde0) // | HDEassgn_var _ => auxval(env, res, tmpret, hde0) | HDEassgn_ptr _ => auxval(env, res, tmpret, hde0) // | HDExchng_var _ => auxval(env, res, tmpret, hde0) | HDExchng_ptr _ => auxval(env, res, tmpret, hde0) // | HDEarrpsz _ => hidexp_ccomp_ret_arrpsz(env, res, tmpret, hde0) | HDEarrinit _ => hidexp_ccomp_ret_arrinit(env, res, tmpret, hde0) // | HDEraise(hde_exn) => ( hidexp_ccomp_ret_raise(env, res, tmpret, hde0) ) // | HDEvararg(hdes_arg) => auxval(env, res, tmpret, hde0) // | HDElam(knd, _, _) => ( if knd != 0 then auxval (env, res, tmpret, hde0) else hidexp_ccomp_ret_laminit (env, res, tmpret, hde0) // end of [if] ) | HDEfix(knd, _, _) => ( if knd != 0 then auxval (env, res, tmpret, hde0) else hidexp_ccomp_ret_fixinit (env, res, tmpret, hde0) // end of [if] ) (* end of [HDEfix] *) // | HDEdelay _ => hidexp_ccomp_ret_delay (env, res, tmpret, hde0) | HDEldelay _ => hidexp_ccomp_ret_ldelay (env, res, tmpret, hde0) | HDElazyeval _ => hidexp_ccomp_ret_lazyeval (env, res, tmpret, hde0) // | HDEloop _ => auxval (env, res, tmpret, hde0) | HDEloopexn _ => auxval (env, res, tmpret, hde0) // | HDEtrywith _ => hidexp_ccomp_ret_trywith (env, res, tmpret, hde0) // | HDEsif _(*error*) => auxval (env, res, tmpret, hde0) // | _ => let val () = println! ("hidexp_ccomp_ret: loc0 = ", loc0) val () = println! ("hidexp_ccomp_ret: hde0 = ", hde0) in exitloc (1) end // end of [_] // end // end of [hidexp_ccomp_ret] end // end of [local] (* ****** ****** *) implement hilab_ccomp (env, res, hil) = let val loc = hil.hilab_loc in // case+ hil.hilab_node of | HILlab (lab) => primlab_lab (loc, lab) // end of [HILlab] | HILind (hdes_ind) => let val pmvs_ind = hidexplst_ccomp (env, res, hdes_ind) in primlab_ind (loc, pmvs_ind) end // end of [HILind] // end // end of [hilab_ccomp] implement hilablst_ccomp (env, res, hils) = let in // case hils of | list_cons (hil, hils) => let val pml = hilab_ccomp (env, res, hil) val pmls = hilablst_ccomp (env, res, hils) in list_cons (pml, pmls) end // end of [list_cons] | list_nil () => list_nil () // end // end of [hilablst_ccomp] (* ****** ****** *) implement hidexp_ccomp_var (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val- HDEvar(d2v) = hde0.hidexp_node // val pmv = d2var_ccomp(env, loc0, hse0, d2v) // in // case+ d2var_get_view(d2v) of (* case+ *) // | None _(*val*) => pmv | Some _(*ref*) => primval_selptr(loc0, hse0, pmv, hse0, list_nil) // end // end of [hidexp_ccomp_var] (* ****** ****** *) implement hidexp_ccomp_cst (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val- HDEcst(d2c) = hde0.hidexp_node val () = the_dyncstlst_add(d2c) // in primval_cst(loc0, hse0, d2c) end // end of [hidexp_ccomp_cst] (* ****** ****** *) implement hidexp_ccomp_string (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEstring (str) = hde0.hidexp_node // in primval_string (loc0, hse0, str) end // end of [hidexp_ccomp_string] (* ****** ****** *) implement hidexp_ccomp_cstsp (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEcstsp (x) = hde0.hidexp_node // val pmc = ( case+ x of | $SYN.CSTSPmyfil () => let val fil = $LOC.location_get_filename (loc0) // end of [val] in PMCSTSPmyfil (fil) end // end of [CSTSPmyfil] | $SYN.CSTSPmyloc () => PMCSTSPmyloc (loc0) | $SYN.CSTSPmyfun () => let val () = assertloc (false) in exit (1) end // end of [CSTSPmyfun] ) : primcstsp // end of [val] // in primval_cstsp (loc0, hse0, pmc) end // end of [hidexp_ccomp_cstsp] (* ****** ****** *) // implement hidexp_ccomp_tyrep (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEtyrep(hse) = hde0.hidexp_node // in primval_tyrep (loc0, hse0, hse) end // end of [hidexp_ccomp_tyrep] // (* ****** ****** *) implement hidexp_ccomp_tmpcst (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEtmpcst(d2c, t2mas) = hde0.hidexp_node // val tmplev = ccompenv_get_tmplevel(env) // in // case+ 0 of | _ when d2cst_is_sizeof(d2c) => let val-list_cons(t2ma, _) = t2mas val tloc = t2ma.t2mpmarg_loc val-list_cons(targ, _) = t2ma.t2mpmarg_arg val hselt = $TYER.s2exp_tyer_shallow(tloc, targ) in primval_make_sizeof (loc0, hselt) end // ... | _ when tmplev > 0 => let in primval_tmpltcst(loc0, hse0, d2c, t2mas) end // ... | _ => let val tmpmat = ccompenv_tmpcst_match (env, d2c, t2mas) // end of [val] (* val out = stdout_ref val () = println! ("hidexp_ccomp_tmpcst: d2c = ", d2c) val () = println! ("hidexp_ccomp_tmpcst: t2mas =") val () = ( fpprint_t2mpmarglst (out, t2mas); fprint_newline (out) ) val () = fprintln! (out, "hidexp_ccomp_tmpcst: mat = ", tmpmat) *) in ccomp_tmpcstmat (env, loc0, hse0, d2c, t2mas, tmpmat) end // end of [if] // end // end of [hidexp_ccomp_tmpcst] (* ****** ****** *) implement hidexp_ccomp_tmpvar (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEtmpvar (d2v, t2mas) = hde0.hidexp_node // val tmplev = ccompenv_get_tmplevel (env) // in // case+ 0 of | _ when tmplev > 0 => let in primval_tmpltvar (loc0, hse0, d2v, t2mas) end // end of [_ when ...] | _ => let val tmpmat = ccompenv_tmpvar_match (env, d2v, t2mas) // end of [val] (* val out = stdout_ref val () = println! ("hidexp_ccomp_tmpvar: d2v = ", d2v) val () = println! ("hidexp_ccomp_tmpvar: t2mas =") val () = ( fpprint_t2mpmarglst (out, t2mas); fprint_newline (out) ) val () = fprintln! (out, "hidexp_ccomp_tmpvar: mat = ", tmpmat) *) in ccomp_tmpvarmat (env, loc0, hse0, d2v, t2mas, tmpmat) end // end of [if] // end // end of [hidexp_ccomp_tmpvar] (* ****** ****** *) implement hidexp_ccomp_seq (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val-HDEseq (hdes) = hde0.hidexp_node // fun loop ( env: !ccompenv , res: !instrseq , hde0: hidexp, hdes: hidexplst ) : primval = let in // case+ hdes of | list_cons (hde, hdes) => let val _(*void*) = hidexp_ccomp (env, res, hde0) // end of [list_cons] in loop (env, res, hde, hdes) end // end of [list_cons] | list_nil () => hidexp_ccomp (env, res, hde0) // end // end of [loop] // in // case+ hdes of | list_cons (hde, hdes) => loop (env, res, hde, hdes) | list_nil () => primval_empty (loc0, hse0) // end // end of [hidexp_ccomp_seq] (* ****** ****** *) implement hidexp_ccomp_selab (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val-HDEselab (hde, hse_rt, hils) = hde0.hidexp_node // val pmv = hidexp_ccomp (env, res, hde) val pmls = hilablst_ccomp (env, res, hils) // in primval_select2 (loc0, hse0, pmv, hse_rt, pmls) end // end of [hidexp_ccomp_selab] (* ****** ****** *) implement hidexp_ccomp_selvar (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEselvar (d2v, hse_rt, hils) = hde0.hidexp_node // val pmv = d2var_ccomp (env, loc0, hse_rt, d2v) // (* val () = ( println! ("hidexp_ccomp_selvar: d2v = ", d2v); println! ("hidexp_ccomp_selvar: pmv = ", pmv); ) (* end of [val] *) *) // val pmls = hilablst_ccomp (env, res, hils) // in // case+ d2var_get_view (d2v) of // case+ | Some _ => primval_selptr (loc0, hse0, pmv, hse_rt, pmls) | None _ => primval_select2 (loc0, hse0, pmv, hse_rt, pmls) // end // end of [hidexp_ccomp_selvar] (* ****** ****** *) implement hidexp_ccomp_selptr (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEselptr (hde, hse_rt, hils) = hde0.hidexp_node val pmv = hidexp_ccomp (env, res, hde) val pmls = hilablst_ccomp (env, res, hils) // in primval_selptr (loc0, hse0, pmv, hse_rt, pmls) end // end of [hidexp_ccomp_selptr] (* ****** ****** *) implement hidexp_ccomp_ptrofvar (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEptrofvar (d2v) = hde0.hidexp_node // in d2var_ccomp (env, loc0, hse0, d2v) end // end of [hidexp_ccomp_ptrofvar] (* ****** ****** *) implement hidexp_ccomp_ptrofsel (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val-HDEptrofsel (hde, hse_rt, hils) = hde0.hidexp_node // val pmv = hidexp_ccomp (env, res, hde) val pmls = hilablst_ccomp (env, res, hils) // in primval_make_ptrofsel (loc0, pmv, hse_rt, pmls) end // end of [hidexp_ccomp_ptrofsel] (* ****** ****** *) implement hidexp_ccomp_vararg (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEvararg(hdes) = hde0.hidexp_node // val pmvs = hidexplst_ccomp(env, res, hdes) // in primval_vararg(loc0, hse0, pmvs) end // end of [hidexp_ccomp_vararg] (* ****** ****** *) implement hidexp_ccomp_refarg (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDErefarg (knd, freeknd, hde) = hde0.hidexp_node // val pmv = hidexp_ccomp (env, res, hde) // in primval_refarg (loc0, hse0, knd, freeknd, pmv) end // end of [hidexp_ccomp_refarg] (* ****** ****** *) implement hidexp_ccomp_assgn_var (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEassgn_var (d2v_l, hse_rt, hils, hde_r) = hde0.hidexp_node // end of [val] val pmv_l = d2var_ccomp (env, loc0, hse_rt, d2v_l) val pmls = hilablst_ccomp (env, res, hils) val pmv_r = hidexp_ccomp (env, res, hde_r) val ins = instr_store_ptrofs (loc0, pmv_l, hse_rt, pmls, pmv_r) val () = instrseq_add (res, ins) // in primval_empty (loc0, hse0) end // end of [hidexp_ccomp_assgn_var] implement hidexp_ccomp_assgn_ptr (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEassgn_ptr (hde_l, hse_rt, hils, hde_r) = hde0.hidexp_node // end of [val] val pmv1 = hidexp_ccomp (env, res, hde_l) val pmls = hilablst_ccomp (env, res, hils) val pmv2 = hidexp_ccomp (env, res, hde_r) val ins = instr_store_ptrofs (loc0, pmv1, hse_rt, pmls, pmv2) val () = instrseq_add (res, ins) // in primval_empty (loc0, hse0) end // end of [hidexp_ccomp_assgn_ptr] (* ****** ****** *) implement hidexp_ccomp_xchng_var (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDExchng_var (d2v_l, hse_rt, hils, hde_r) = hde0.hidexp_node // end of [val] val hse_r = hde_r.hidexp_type val tmp = tmpvar_make (loc0, hse_r) val pmv_l = d2var_ccomp (env, loc0, hse_rt, d2v_l) val pmls = hilablst_ccomp (env, res, hils) val pmv_r = hidexp_ccomp (env, res, hde_r) val ins = instr_xstore_ptrofs (loc0, tmp, pmv_l, hse_rt, pmls, pmv_r) val () = instrseq_add (res, ins) // in primval_empty (loc0, hse0) end // end of [hidexp_ccomp_xchng_var] implement hidexp_ccomp_xchng_ptr (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDExchng_ptr (hde_l, hse_rt, hils, hde_r) = hde0.hidexp_node // end of [val] val hse_r = hde_r.hidexp_type val tmp = tmpvar_make (loc0, hse_r) val pmv1 = hidexp_ccomp (env, res, hde_l) val pmls = hilablst_ccomp (env, res, hils) val pmv2 = hidexp_ccomp (env, res, hde_r) val ins = instr_xstore_ptrofs (loc0, tmp, pmv1, hse_rt, pmls, pmv2) val () = instrseq_add (res, ins) // in primval_empty (loc0, hse0) end // end of [hidexp_ccomp_xchng_ptr] (* ****** ****** *) implement hidexp_ccomp_ret_con (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val-HDEcon (d2c, hse_sum, _arg) = hde0.hidexp_node // val () = the_dynconlst_add (d2c) val lpmvs = labhidexplst_ccomp (env, res, _arg) val ins = instr_move_con (loc0, tmpret, d2c, hse_sum, lpmvs) // in instrseq_add (res, ins) end // end of [hidexp_ccomp_ret_con] (* ****** ****** *) implement hidexp_ccomp_ret_app (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEapp(hde_fun, hse_fun, hdes_arg) = hde0.hidexp_node // val pmv_fun = hidexp_ccomp(env, res, hde_fun) val pmvs_arg = hidexplst_ccomp(env, res, hdes_arg) // var added: int = 0 // val tlcalopt = $GLOBAL.the_CCOMPATS_tlcalopt_get() // val isret = ( if tlcalopt > 0 then tmpvar_isret(tmpret) else false ) : bool // end of [val] // (* val () = println! ("hidexp_ccomp_ret_app: loc0 = ", loc0) val () = println! ("hidexp_ccomp_ret_app: pmv_fun = ", pmv_fun) *) // val () = if isret then ( case+ pmv_fun.primval_node of // | PMVcst(d2c) => let val opt = ccompenv_find_tailcalenv_cst(env, d2c) // end of [val] in case+ opt of | ~Some_vt (fl) => let val ntl = 0 val ins = instr_fcall2(loc0, tmpret, fl, ntl, hse_fun, pmvs_arg) // end of [val] val ((*void*)) = added := added + 1 val ((*void*)) = instrseq_add(res, ins) in // nothing end // end of [Some_vt] | ~None_vt ((*void*)) => ((*void*)) end // end of [PMVcst] // | PMVfunlab(fl) => let val ntl = ccompenv_find_tailcalenv(env, fl) in case+ 0 of | _ when ntl >= 0 => let val ins = instr_fcall2(loc0, tmpret, fl, ntl, hse_fun, pmvs_arg) // end of [val] val ((*void*)) = added := added + 1 val ((*void*)) = instrseq_add(res, ins) in // nothing end // end of [ntl >= 0] | _ (*ntl < 0*) => ((*void*)) end // end of [PMVfunlab] // | PMVcfunlab(knd, fl) => let val ntl = ccompenv_find_tailcalenv(env, fl) in case+ 0 of | _ when ntl >= 0 => let val ins = instr_fcall2(loc0, tmpret, fl, ntl, hse_fun, pmvs_arg) // end of [val] val ((*void*)) = added := added + 1 val ((*void*)) = instrseq_add(res, ins) in // nothing end // end of [if] | _ (*ntl < 0*) => ((*void*)) end // end of [PMVcfunlab] // | PMVd2vfunlab(d2v, fl) => let val ntl = ccompenv_find_tailcalenv(env, fl) in case+ 0 of | _ when ntl >= 0 => let val ins = instr_fcall2(loc0, tmpret, fl, ntl, hse_fun, pmvs_arg) // end of [val] val ((*void*)) = added := added + 1 val ((*void*)) = instrseq_add(res, ins) in // nothing end // end of [if] | _ (*ntl < 0*) => ((*void*)) end // end of [PMVd2vfunlab] // | PMVtmpltcst(d2c, t2mas) => let val opt = ccompenv_find_tailcalenv_tmpcst(env, d2c, t2mas) // end of [val] in case+ opt of | ~Some_vt (fl) => let val ntl = 0 val ins = instr_fcall2(loc0, tmpret, fl, ntl, hse_fun, pmvs_arg) // end of [val] val ((*void*)) = added := added + 1 val ((*void*)) = instrseq_add(res, ins) in // nothing end // end of [Some_vt] | ~None_vt ((*void*)) => ((*void*)) end // end of [PMVtmpltcst] // | PMVtmpltvar(d2v, t2mas) => let var ntl: int = 0 val opt = ccompenv_find_tailcalenv_tmpvar(env, d2v, t2mas, ntl) // end of [val] in case+ opt of | ~Some_vt (fl) => let val ins = instr_fcall2(loc0, tmpret, fl, ntl, hse_fun, pmvs_arg) // end of [val] val ((*void*)) = added := added + 1 val ((*void*)) = instrseq_add(res, ins) in // nothing end // end of [Some_vt] | ~None_vt ((*void*)) => ((*void*)) end // end of [PMVtmpltvar] // | _ (*non-tail-recursive*) => () // HX: [INSfcall] is to be added // ) (* end of [if] *) // (* val () = println! ("hidexp_ccomp_ret_app: added = ", added) *) // val () = if added > 0 then tmpvar_inc_tailcal(tmpret) // val () = if added = 0 then let val ins = instr_fcall(loc0, tmpret, pmv_fun, hse_fun, pmvs_arg) in instrseq_add(res, ins) end // end of [then] // end of [if] // in // nothing end // end of [hidexp_ccomp_ret_app] (* ****** ****** *) implement hidexp_ccomp_ret_extfcall (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEextfcall (_fun, _arg) = hde0.hidexp_node // val _arg = hidexplst_ccomp (env, res, _arg) // val ins = instr_extfcall (loc0, tmpret, _fun, _arg) // in instrseq_add (res, ins) end // end of [hidexp_ccomp_ret_extfcall] (* ****** ****** *) implement hidexp_ccomp_ret_extmcall (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEextmcall (_obj, _mtd, _arg) = hde0.hidexp_node // val _obj = hidexp_ccomp (env, res, _obj) val _arg = hidexplst_ccomp (env, res, _arg) // val ins = instr_extmcall (loc0, tmpret, _obj, _mtd, _arg) // in instrseq_add (res, ins) end // end of [hidexp_ccomp_ret_extmcall] (* ****** ****** *) implement hidexp_ccomp_ret_if (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val-HDEif (hde_cond, hde_then, hde_else) = hde0.hidexp_node // val pmv_cond = hidexp_ccomp (env, res, hde_cond) // val tmpret_then = tmpret val res_then = instrseq_make_nil () val (pfpush | ()) = ccompenv_push (env) val () = hidexp_ccomp_ret (env, res_then, tmpret_then, hde_then) val () = ccompenv_pop (pfpush | env) val inss_then = instrseq_get_free (res_then) // val tmpret_else = tmpret val res_else = instrseq_make_nil () val (pfpush | ()) = ccompenv_push (env) val () = hidexp_ccomp_ret (env, res_else, tmpret_else, hde_else) val () = ccompenv_pop (pfpush | env) val inss_else = instrseq_get_free (res_else) // val ins = instr_cond (loc0, pmv_cond, inss_then, inss_else) // in instrseq_add (res, ins) end // end of [hidexp_ccomp_ret_if] (* ****** ****** *) local fun auxnode ( env: !ccompenv , res: !instrseq , tmphd: tmpvar, tmptl: tmpvar , hse_elt: hisexp, hde: hidexp ) : void = let // val loc = hde.hidexp_loc // val ins = instr_pmove_list_cons (loc, tmptl, hse_elt) val ( ) = instrseq_add (res, ins) val ins = instr_move_list_phead (loc, tmphd, tmptl, hse_elt) val ( ) = instrseq_add (res, ins) // val pmv = hidexp_ccomp (env, res, hde) val ins = instr_pmove_val (loc, tmphd, pmv) val () = instrseq_add (res, ins) // val ins = instr_move_list_ptail (loc, tmptl, tmptl, hse_elt) val () = instrseq_add (res, ins) // in // nothing end // end of [auxnode] fun auxnodelst ( env: !ccompenv , res: !instrseq , tmphd: tmpvar, tmptl: tmpvar , loc0: location, hse_elt: hisexp, hdes: hidexplst ) : void = let in // case+ hdes of | list_cons (hde, hdes) => let val () = auxnode (env, res, tmphd, tmptl, hse_elt, hde) // end of [list_cons] in auxnodelst (env, res, tmphd, tmptl, loc0, hse_elt, hdes) end // end of [list_cons] | list_nil () => let val ins = instr_pmove_list_nil (loc0, tmptl) in instrseq_add (res, ins) // end of [val] end // end of [list_nil] // end // end of [auxnodelst] in (* in of [local] *) implement hidexp_ccomp_ret_lst (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val ( ) = instrseq_add_tmpdec (res, loc0, tmpret) // val-HDElst (knd, hse_elt, hdes) = hde0.hidexp_node // in // case+ hdes of | list_cons _ => let val pmv = primval_make_tmp (loc0, tmpret) val pmv_ref = primval_ptrof (loc0, hisexp_typtr, pmv) val tmphd = tmpvar_make (loc0, hisexp_datconptr) val tmptl = tmpvar_make (loc0, hisexp_datconptr) val ins = instr_move_val (loc0, tmptl, pmv_ref) val ((*void*)) = instrseq_add (res, ins) in auxnodelst (env, res, tmphd, tmptl, loc0, hse_elt, hdes) end // end of [list_cons] | list_nil () => let val ins = instr_move_list_nil (loc0, tmpret) in instrseq_add (res, ins) // end of [val] end // end of [list_nil] end // end of [hidexp_ccomp_ret_lst] end // end of [local] (* ****** ****** *) local fun auxlst ( env: !ccompenv , res: !instrseq , lxs: labhidexplst ) : labprimvalist = let in // case+ lxs of | list_cons (lx, lxs) => let val LABHIDEXP (l, x) = lx val pmv = hidexp_ccomp (env, res, x) // end of [val] val lpmv = LABPRIMVAL (l, pmv) val lpmvs = auxlst (env, res, lxs) in list_cons (lpmv, lpmvs) end // end of [list_cons] | list_nil () => list_nil () // end // end of [auxlst] in (* in of [local] *) implement hidexp_ccomp_ret_rec (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val-HDErec(knd, lhdes, hse_rec) = hde0.hidexp_node // val lpmvs = auxlst(env, res, lhdes) // val ins = ( if knd > 0 then instr_move_boxrec(loc0, tmpret, lpmvs, hse_rec) else instr_move_fltrec2(loc0, tmpret, lpmvs, hse_rec) // end of [if] ) : instr // end of [val] // in instrseq_add(res, ins) end // end of [hidexp_ccomp_ret_rec] end // end of [local] (* ****** ****** *) implement hidexp_ccomp_ret_seq (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val-HDEseq (hdes) = hde0.hidexp_node // fun loop ( env: !ccompenv , res: !instrseq , hde0: hidexp, hdes: hidexplst , tmpret: tmpvar ) : void = let in // case+ hdes of | list_cons (hde, hdes) => let val _(*void*) = hidexp_ccomp (env, res, hde0) // end of [list_cons] in loop (env, res, hde, hdes, tmpret) end // end of [list_cons] | list_nil () => hidexp_ccomp_ret (env, res, tmpret, hde0) // end // end of [loop] // in // case+ hdes of | list_cons ( hde, hdes ) => loop (env, res, hde, hdes, tmpret) | list_nil () => () // end // end of [hidexp_ccomp_ret_seq] (* ****** ****** *) local fun auxlst ( env: !ccompenv , res: !instrseq , arrp: tmpvar , asz: int, hse_elt: hisexp, hdes_elt: hidexplst ) : void = ( // case+ hdes_elt of | list_cons _ => let val pmvs_elt = hidexplst_ccompv (env, res, hdes_elt) in auxlst2 (env, res, arrp, hse_elt, pmvs_elt, asz, pmvs_elt) end // end of [list_cons] | list_nil((*void*)) => () // HX: uninitized array // ) (* end of [auxlst] *) and auxlst2 ( env: !ccompenv , res: !instrseq , arrp: tmpvar , hse_elt: hisexp , pmvs_elt: primvalist , n: int, xs: primvalist ) : void = ( // if n > 0 then ( // case+ xs of // | list_cons (x, xs) => let // val n = n - 1 val loc = x.primval_loc // val ins = instr_pmove_val (loc, arrp, x) val () = instrseq_add (res, ins) // val () = ( if n >= 1 then let val ins = instr_update_ptrinc (loc, arrp, hse_elt) // end of [val] in instrseq_add (res, ins) end // end of [then] // end of [if] ) : void // end of [val] // in auxlst2 (env, res, arrp, hse_elt, pmvs_elt, n, xs) end // end of [list_cons] // | list_nil () => let val xs = pmvs_elt in auxlst2 (env, res, arrp, hse_elt, pmvs_elt, n, xs) end // end of [list_nil] // ) (* end of [then] *) // ) (* end of [auxlst2] *) in (* in of [local] *) implement hidexp_ccomp_ret_arrpsz (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type // val () = instrseq_add_tmpdec (res, loc0, tmpret) // val-HDEarrpsz (hse_elt, hdes, asz) = hde0.hidexp_node // val ins = instr_store_arrpsz_asz (loc0, tmpret, asz) val ((*void*)) = instrseq_add (res, ins) val ins = instr_store_arrpsz_ptr (loc0, tmpret, hse_elt, asz) val ((*void*)) = instrseq_add (res, ins) // val arrp = tmpvar_make (loc0, hisexp_arrptr) val ins = instr_move_arrpsz_ptr (loc0, arrp, tmpret) val ((*void*)) = instrseq_add (res, ins) // in auxlst (env, res, arrp, asz, hse_elt, hdes) end // end of [hidexp_ccomp_ret_arrpsz] (* ****** ****** *) implement hidexp_ccomp_ret_arrinit (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val-HDEarrinit (hse_elt, hde_asz, hdes, asz) = hde0.hidexp_node // val loc = tmpvar_get_loc (tmpret) val arrp = tmpvar_make (loc0, hisexp_arrptr) val ins = instr_move_val (loc0, arrp, primval_make_tmp (loc, tmpret)) val ((*void*)) = instrseq_add (res, ins) // in auxlst (env, res, arrp, asz, hse_elt, hdes) end // end of [hidexp_ccomp_ret_arrinit] end // end of [local] (* ****** ****** *) implement hidexp_ccomp_ret_raise (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val-HDEraise(hde_exn) = hde0.hidexp_node val pmv_exn = hidexp_ccomp(env, res, hde_exn) // val ins = instr_raise (loc0, tmpret, pmv_exn) val ((*void*)) = instrseq_add (res, ins) // in // nothing end // end of [hidexp_ccomp_ret_raise] (* ****** ****** *) implement hidexp_ccomp_funlab_arg_body ( env , flab , imparg , tmparg , prolog , loc_fun , hips_arg , hde_body ) = let (* val () = println! ( "hidexp_ccomp_funlab_arg_body: flab = ", flab ) (* end of [val] *) *) // val res = instrseq_make_nil () val ((*void*)) = instrseq_addlst (res, prolog) // val flvl0 = funlab_get_level (flab) // val (pfinc | ()) = the_d2varlev_inc () // val () = ccompenv_inc_flabsetenv (env) val () = ccompenv_inc_dvarsetenv (env) val () = ccompenv_inc_vbindmapenv (env) // val () = let val lvl1 = the_d2varlev_get () in hifunarg_ccomp (env, res, flab, lvl1, loc_fun, hips_arg) end // end of [val] // val loc_body = hde_body.hidexp_loc val hse_body = hde_body.hidexp_type val tmpret = tmpvar_make_ret (loc_body, hse_body) val () = hidexp_ccomp_ret (env, res, tmpret, hde_body) // val vbmap = ccompenv_getdec_vbindmapenv (env) // val flset = ccompenv_getdec_flabsetenv (env) val fls0 = funlabset_vt_listize_free (flset) val fls0 = ccompenv_addlst_flabsetenv_ifmap (env, flvl0, vbmap, fls0) // val d2es = ccompenv_getdec_dvarsetenv (env) // val d2es = d2envset_vt_listize_free (d2es) // val () = the_d2varlev_dec (pfinc | (*none*)) // val inss = instrseq_get_free (res) // val fent = funent_make2 ( loc_fun, flab , imparg, tmparg, tmpret, (l2l)fls0, (l2l)d2es, vbmap, inss ) (* end of [val] *) // in fent end // end of [hidexp_ccomp_funlab_arg_body] (* ****** ****** *) extern fun hidexp_ccomp_lam_flab ( env: !ccompenv , res: !instrseq, hde0: hidexp, flab: funlab ) : void // end of [hidexp_ccomp_lam_flab] (* ****** ****** *) implement hidexp_ccomp_lam_flab (env, res, hde0, flab) = let // val loc0 = hde0.hidexp_loc // val- HDElam (knd, hips_arg, hde_body) = hde0.hidexp_node // val () = ccompenv_inc_tailcalenv(env, flab) // val tmplev = ccompenv_get_tmplevel(env) val () = if tmplev > 0 then funlab_set_tmpknd(flab, 1) // val fent = let val imparg = list_nil(*s2vs*) val tmparg = list_nil(*s2ess*) val ins = instr_funlab (loc0, flab) val prolog = list_sing (ins) in hidexp_ccomp_funlab_arg_body (env, flab, imparg, tmparg, prolog, loc0, hips_arg, hde_body) // end of [hidexp_ccomp_funlab_arg_body] end // end of [val] val () = funlab_set_funent(flab, Some(fent)) // val () = ccompenv_dec_tailcalenv(env) // (* val out = stdout_ref val finfls = funent_eval_flablst (fent) val () = fprintln! (out, "hidexp_ccomp_lam: finfls = ", finfls) val find2es = funent_eval_d2envlst (fent) val () = fprintln! (out, "hidexp_ccomp_lam: find2es = ", find2es) val () = fprintln! (out, "hidexp_ccomp_lam: fent = ", fent) *) // in // nothing end // end of [hidexp_ccomp_lam_flab] (* ****** ****** *) implement hidexp_ccomp_lam (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val flab = funlab_make_type(hse0) val pmv0 = primval_make_funlab(loc0, flab) // val () = the_funlablst_add(flab) val () = ccompenv_add_flabsetenv(env, flab) val () = hidexp_ccomp_lam_flab(env, res, hde0, flab) // in primval_lamfix(None(*lam*), pmv0) end // end of [hidexp_ccomp_lam] (* ****** ****** *) implement hidexp_ccomp_fix (env, res, hde0) = let // val loc0 = hde0.hidexp_loc // val- HDEfix (knd, f_d2v, hde_def) = hde0.hidexp_node // val hse = hde_def.hidexp_type val flab = funlab_make_type(hse) // val pmv0 = let // val tmplev = ccompenv_get_tmplevel(env) // in // if (tmplev = 0) then primval_make_funlab(loc0, flab) else primval_make_d2vfunlab(loc0, f_d2v, flab) // end : primval // end of [val] // val () = the_funlablst_add(flab) // val () = ccompenv_add_flabsetenv(env, flab) val () = ccompenv_add_vbindmapenvall(env, f_d2v, pmv0) // val () = hidexp_ccomp_lam_flab(env, res, hde_def, flab) // in primval_lamfix(Some(f_d2v)(*fix*), pmv0) end // end of [hidexp_ccomp_fix] (* ****** ****** *) extern fun tmpvar_set2_tyclo (tmp: tmpvar, fl: funlab): void implement tmpvar_set2_tyclo (tmpret, flab) = let // typedef funlab = hisexp_funlab_type // in tmpvar_set_tyclo (tmpret, $UN.cast{funlab}(flab)) end // end of [tmpvar_set2_tyclo] (* ****** ****** *) implement hidexp_ccomp_ret_laminit (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val flab = funlab_make_type(hse0) val flvl = funlab_get_level(flab) // val ((*void*)) = the_funlablst_add(flab) val ((*void*)) = ccompenv_add_flabsetenv(env, flab) // val ((*void*)) = hidexp_ccomp_lam_flab(env, res, hde0, flab) // val ((*void*)) = if flvl > 0 then tmpvar_set2_tyclo(tmpret, flab) // end of [if] // end of [val] // val ins = instr_closure_initize(loc0, tmpret, None(*lam*), flab) // val ((*void*)) = instrseq_add(res, ins) // in // nothing end // end of [hidexp_ccomp_ret_laminit] (* ****** ****** *) implement hidexp_ccomp_ret_fixinit (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc // val-HDEfix(knd, f_d2v, hde_def) = hde0.hidexp_node // val loc = hde_def.hidexp_loc val hse = hde_def.hidexp_type // val flab = funlab_make_type(hse) // (* val flab = funlab_make_dvar_type (d2v, hse, None_vt((*fcopt*))) *) // val () = the_funlablst_add(flab) val () = ccompenv_add_flabsetenv(env, flab) // val pmv0 = let // val tmplev = ccompenv_get_tmplevel(env) // in // if (tmplev = 0) then primval_funlab(loc, hse, flab) else primval_make_d2vfunlab(loc, f_d2v, flab) // end : primval // end of [val] // val () = ccompenv_add_vbindmapenvall(env, f_d2v, pmv0) // val () = hidexp_ccomp_lam_flab(env, res, hde_def, flab) // val flvl = funlab_get_level(flab) // val () = if flvl > 0 then tmpvar_set2_tyclo(tmpret, flab) // end of [if] // end of [val] // val ins = instr_closure_initize(loc0, tmpret, Some(f_d2v), flab) // val ((*void*)) = instrseq_add(res, ins) // in // nothing end // end of [hidexp_ccomp_ret_fixinit] (* ****** ****** *) (* end of [pats_ccomp_dynexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2_sort.dats0000644000175000017500000001274013431250607021641 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans2_sort.dats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_staexp2.sats" (* ****** ****** *) staload "./pats_trans2.sats" staload "./pats_trans2_env.sats" (* ****** ****** *) #define l2l list_of_list_vt macdef list_sing (x) = list_cons (,(x), list_nil) (* ****** ****** *) extern fun s1rt_tr_app ( s1t0: s1rt, s1t_fun: s1rt, s1ts_arg: s1rtlst ) : s2rt // end of [s1rt_tr_app] extern fun s1rt_tr_qid (s1t0: s1rt, q: $SYN.s0rtq, id: symbol): s2rt // end of [s1rt_tr_qid] (* ****** ****** *) #define nil list_nil #define :: list_cons #define cons list_cons implement s1rt_tr_app ( s1t0, s1t_fun, s1ts_arg ) = let val loc0 = s1t0.s1rt_loc in // case+ s1t_fun.s1rt_node of | _ when s1rt_is_arrow (s1t_fun) => ( case+ s1ts_arg of | s1t1 :: s1t2 :: nil () => let val s1ts1 = (case+ s1t1.s1rt_node of | S1RTlist s1ts => s1ts | _ => list_sing (s1t1) ) : s1rtlst // end of [val] val s2ts1 = s1rtlst_tr (s1ts1) and s2t2 = s1rt_tr (s1t2) in S2RTfun (s2ts1, s2t2) end | _ => let val () = prerr_interror_loc (loc0) val () = prerrln! ": s1rt_tr_app: [->] is not an infix operator!" in $ERR.abort_interr{s2rt}((*unreachable*)) end // end of [_] ) // end of [s1rt_is_arrow] | _ => s2rt_err () where { val () = prerr_error2_loc (s1t0.s1rt_loc) val () = filprerr_ifdebug ("s1rt_tr_app") val () = prerr ": sort application is not supported." val () = prerr_newline () val () = the_trans2errlst_add (T2E_s1rt_tr (s1t0)) } // end of [_] // end // end of [s1rt_tr_app] (* ****** ****** *) implement s1rt_tr_qid (s1t0, q, id) = let val loc0 = s1t0.s1rt_loc val ans = the_s2rtenv_find_qua (q, id) in // case+ ans of | ~Some_vt (x) => ( case+ x of | S2TEsrt (s2t) => s2t | _ => let val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug ("s1rt_tr_qid") val () = prerr ": the identifier [" val () = $SYM.prerr_symbol (id) val () = prerr "] is expected to refer to a sort (instead of a subset sort)." val () = prerr_newline () val () = the_trans2errlst_add (T2E_s1rt_tr (s1t0)) in s2rt_err () end (* end of [_] *) ) // end of [Some_vt] | ~None_vt () => let val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug ("s1rt_tr_qid") val () = prerr ": the identifier [" val () = $SYM.prerr_symbol (id) val () = prerr "] does not refer to any recognized sort." val () = prerr_newline () val () = the_trans2errlst_add (T2E_s1rt_tr (s1t0)) in s2rt_err () end // end of [None_vt] // end // end of [s1rt_tr_qid] (* ****** ****** *) implement s1rt_tr (s1t0) = let val loc0 = s1t0.s1rt_loc (* val () = ( print loc0; print "s1rt_tr: S1RTapp: "; print_newline () ) // end of [val] *) in // case+ s1t0.s1rt_node of | S1RTapp ( s1t, s1ts ) => s1rt_tr_app (s1t0, s1t, s1ts) | S1RTtype (impknd) => s2rt_impred (impknd) | S1RTqid (q, id) => s1rt_tr_qid (s1t0, q, id) | S1RTlist (s1ts) => S2RTtup (s1rtlst_tr s1ts) | S1RTerr () => s2rt_err () // end // end of [s1rt_tr] (* ****** ****** *) implement s1rtlst_tr (xs) = l2l (list_map_fun (xs, s1rt_tr)) implement s1rtopt_tr (opt) = (case+ opt of | Some x => Some (s1rt_tr x) | None () => None () ) // end of [s1rtopt_tr] (* ****** ****** *) implement a1srt_tr_srt (x) = s1rt_tr (x.a1srt_srt) implement a1msrt_tr_srt (x) = l2l (list_map_fun (x.a1msrt_arg, a1srt_tr_srt)) (* ****** ****** *) implement a1srt_tr_symsrt (x) = let val sym = (case+ x.a1srt_sym of | None () => $SYM.symbol_empty | Some sym => sym ) : symbol // end of [val] val s2t = s1rt_tr (x.a1srt_srt) in (sym, s2t) end // end of [a1srt_tr_symsrt] implement a1msrt_tr_symsrt (x) = l2l (list_map_fun (x.a1msrt_arg, a1srt_tr_symsrt)) (* ****** ****** *) (* end of [pats_trans2_sort.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_typerase_dynexp.dats0000644000175000017500000007553113431250607022613 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: September, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_typerase_dynexp" // (* ****** ****** *) staload LAB = "./pats_label.sats" (* ****** ****** *) // staload LOC = "./pats_location.sats" typedef loc_t = $LOC.location overload print with $LOC.print_location // (* ****** ****** *) // staload SYM = "./pats_symbol.sats" overload = with $SYM.eq_symbol_symbol // (* ****** ****** *) // staload SYN = "./pats_syntax.sats" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_stacst2.sats" (* ****** ****** *) staload S2UT = "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_typerase.sats" (* ****** ****** *) implement labhipatlst_get_type (lxs) = let // fun fopr ( lx: labhipat ) : labhisexp = let // val LABHIPAT(l, x) = lx // in // HSLABELED ( l, None(*name*), x.hipat_type ) (* HSLABELED *) // end // end of [fopr] // val lhses = list_map_fun(lxs, fopr) // in list_of_list_vt{labhisexp}(lhses) end // end of [labhipatlst_get_type] implement labhidexplst_get_type (lxs) = let // fun fopr ( lx: labhidexp ) : labhisexp = let // val LABHIDEXP(l, x) = lx // in // HSLABELED ( l, None(*name*), x.hidexp_type ) (* HSLABELED *) // end // end of [f] // val lhses = list_map_fun(lxs, fopr) // in list_of_list_vt{labhisexp}(lhses) end // end of [labhidexplst_get_type] (* ****** ****** *) // extern fun p3at_tyer_con ( loc0: location, hse0: hisexp , pcknd: pckind, d2c: d2con, npf: int, p3ts: p3atlst ) : hipat // end of [p3at_tyer_con] // extern fun p3atlst_npf_tyer (npf: int, p3ts: p3atlst): hipatlst extern fun p3atlst_npf_tyer_labize (npf: int, p3ts: p3atlst): labhipatlst extern fun labp3atlst_npf_tyer (npf: int, lp3ts: labp3atlst): labhipatlst // (* ****** ****** *) implement d2var_tyer (d2v) = let // typedef hisexp0 = dynexp2_hisexp_type val opt = d2var_get_mastype (d2v) // in // case+ opt of | Some (s2e) => let val loc = d2var_get_loc (d2v) val hse = s2exp_tyer_deep (loc, s2e) val ((*void*)) = d2var_set2_hisexp (d2v, Some (hse)) in d2v end (* end of [Some] *) | None ((*void*)) => d2v // end // end of [d2var_tyer] (* ****** ****** *) implement d2cst_tyer (d2c) = let // val opt = d2cst_get2_hisexp (d2c) // in // case+ opt of | Some _ => d2c | None _ => d2c where { val loc = d2cst_get_loc (d2c) val s2e = d2cst_get_type (d2c) val hse = s2exp_tyer_deep (loc, s2e) val ((*void*)) = d2cst_set2_hisexp (d2c, Some (hse)) } (* end of [None] *) // end // end of [d2cst_tyer] (* ****** ****** *) implement p3at_tyer(p3t0) = let // val loc0 = p3t0.p3at_loc val s2e0 = p3at_get_type(p3t0) val hse0 = s2exp_tyer_shallow (loc0, s2e0) // (* val () = println! ("p3at_tyer: p3t0 = ", p3t0) val () = println! ("p3at_tyer: s2e0 = ", s2e0) val () = println! ("p3at_tyer: hse0 = ", hse0) *) // in // case+ p3t0.p3at_node of // | P3Tany(d2v) => let val d2v = d2var_tyer(d2v) in hipat_any(loc0, hse0, d2v) end (* end of [P3Tvar] *) | P3Tvar(d2v) => let val d2v = d2var_tyer(d2v) in hipat_var(loc0, hse0, d2v) end (* end of [P3Tvar] *) // | P3Tcon ( pck, d2c, npf, p3ts ) => ( p3at_tyer_con(loc0, hse0, pck, d2c, npf, p3ts) ) (* end of [P3Tcon] *) // | P3Tint(i) => hipat_int(loc0, hse0, i) | P3Tintrep(rep) => hipat_intrep(loc0, hse0, rep) // | P3Tbool(b) => hipat_bool(loc0, hse0, b) | P3Tchar(c) => hipat_char(loc0, hse0, c) | P3Tstring(str) => hipat_string(loc0, hse0, str) // | P3Ti0nt(tok) => hipat_i0nt(loc0, hse0, tok) | P3Tf0loat(tok) => hipat_f0loat(loc0, hse0, tok) // | P3Tempty((*void*)) => hipat_empty(loc0, hse0) // | P3Tlst ( lin, s2e_elt, p3ts ) => let val hse_elt = s2exp_tyer_shallow (loc0, s2e_elt) val hips = p3atlst_tyer (p3ts) in hipat_lst (loc0, lin, hse0, hse_elt, hips) end // end of [P3Tlst] // | P3Trec ( knd, npf, pck, lp3ts ) => let val lhips = labp3atlst_npf_tyer(npf, lp3ts) // end of [val] val lhses = labhipatlst_get_type(lhips) val recknd = ( if knd > 0 then TYRECKINDbox() else TYRECKINDflt0() // end of [if] ) : tyreckind // end of [val] val hse_rec = hisexp_tyrec2(recknd, lhses) in hipat_rec2(loc0, hse0, knd, pck, lhips, hse_rec) end // end of [P3Trec] // | P3Trefas (d2v, p3t_as) => let val d2v = d2var_tyer (d2v) val hip_as = p3at_tyer (p3t_as) in hipat_refas(loc0, hse0, d2v, hip_as) end // end of [P3Trefas] // | P3Texist (s2vs, p3t_scoop) => p3at_tyer(p3t_scoop) // | P3Tann (p3t, s2e_ann) => let val hip = p3at_tyer(p3t) val hse_ann = s2exp_tyer_shallow(loc0, s2e_ann) in hipat_ann(loc0, hse0, hip, hse_ann) end // end of [P3Tann] // | _ (* rest-of-p3at *) => exitloc(1) where { val () = println! ("p3at_tyer: loc0 = ", loc0) val () = println! ("p3at_tyer: p3t0 = ", p3t0) } // end of [rest-of-p3at] // end // endof [p3at_tyer] (* ****** ****** *) local fun auxerr_if (p3t: p3at): void = let // val isful = p3at_is_full(p3t) // in // if not(isful) then let // val () = prerr_ERROR_beg() // val () = prerr_error4_loc(p3t.p3at_loc) val () = prerrln! ( ": partial proof pattern [", p3t, "] is not allowed for erasure." ) (* end of [val] *) // val () = prerr_ERROR_end() // in the_trans4errlst_add(T4E_p3at_tyer_isprf(p3t)) end // end of [then] // end // end of [auxerr_if] in (* in-of-local *) implement p3atlst_tyer (p3ts) = let in // case+ p3ts of // | list_nil() => list_nil () // | list_cons (p3t, p3ts) => let // val isprf = p3at_is_prf(p3t) // in if isprf then let val () = auxerr_if(p3t) in p3atlst_tyer(p3ts) end // end of [then] else let val hip = p3at_tyer(p3t) val hips = p3atlst_tyer(p3ts) in list_cons(hip, hips) end // end of [else] // end of [if] end // end of [list_cons] // end // end of [p3atlst_tyer] (* ****** ****** *) implement p3atlst_tyer2 (d3es, p3ts) = let in // case+ p3ts of // | list_nil() => list_nil () // | list_cons (p3t, p3ts) => let // val- list_cons(d3e, d3es) = d3es val isprf = p3at_is_prf(p3t) val isprf = ( if isprf then true else d3exp_is_prf(d3e) ) : bool // end of [val] // in if isprf then let val () = auxerr_if(p3t) in p3atlst_tyer2(d3es, p3ts) end // end of [then] else let val hip = p3at_tyer(p3t) val hips = p3atlst_tyer2(d3es, p3ts) in list_cons(hip, hips) // end of [val] end // end of [else] // end of [if] end // end of [list_cons] // end // end of [p3atlst_tyer2] end // end of [local] (* ****** ****** *) implement p3atlst_npf_tyer (npf, p3ts) = let in if npf > 0 then let val- list_cons (_, p3ts) = p3ts in p3atlst_npf_tyer (npf-1, p3ts) end else p3atlst_tyer (p3ts) // end of [if] end // end of [p3atlst_npf_tyer] (* ****** ****** *) implement p3atlst_npf_tyer_labize (npf, p3ts) = let // fun auxlst ( npf: int, p3ts: p3atlst, i: int ) : labhipatlst = let in // if npf > 0 then let val-list_cons (_, p3ts) = p3ts in auxlst (npf-1, p3ts, i+1) end else ( // HX-2013-01: npf <= 0 // case+ p3ts of | list_cons (p3t, p3ts) => let val isprf = p3at_is_prf (p3t) in if isprf then auxlst (npf, p3ts, i+1) else let val lab = $LAB.label_make_int (i) val hip = p3at_tyer (p3t) val lhip = LABHIPAT (lab, hip) val lhips = auxlst (npf, p3ts, i+1) in list_cons (lhip, lhips) end // end of [if] end // end of [list_cons] | list_nil () => list_nil () // ) // end of [if] // end // end of [auxlst] // in auxlst (npf, p3ts, 0) end // end of [p3atlst_npf_tyer_labize] (* ****** ****** *) // extern fun labp3atlst_tyer (lxs: labp3atlst): labhipatlst // implement labp3atlst_tyer (lxs) = let in // case+ lxs of // | list_cons (lx, lxs) => let val+LABP3AT(l, x) = lx in if p3at_is_prf(x) then labp3atlst_tyer (lxs) else let val hip = p3at_tyer (x) val lhip = LABHIPAT (l, hip) in list_cons (lhip, labp3atlst_tyer (lxs)) end // end of [else] // end of [if] end // end of [list_cons] // | list_nil () => list_nil () // end // end of [labp3atlst_tyer] (* ****** ****** *) implement labp3atlst_npf_tyer (npf, lp3ts) = let in // if npf > 0 then let // val-list_cons (_, lp3ts) = lp3ts // in // labp3atlst_npf_tyer (npf-1, lp3ts) // end // end of [then] else labp3atlst_tyer (lp3ts) // [else] // end // end of [labp3atlst_npf_tyer] (* ****** ****** *) implement p3at_tyer_con ( loc0, hse0, pck, d2c, npf, p3ts ) = let // val lhips = p3atlst_npf_tyer_labize (npf, p3ts) // end of [val] val test = labhipatlst_is_unused (lhips) // in // case+ 0 of // | _ when test => hipat_con_any(loc0, hse0, pck, d2c) // | _ (*not-unused*) => let val lhses = labhipatlst_get_type (lhips) // end of [val] val hse_sum = hisexp_tysum (d2c, lhses) in hipat_con (loc0, hse0, pck, d2c, hse_sum, lhips) end // end of [_] // end // end of [p3at_tyer_con] (* ****** ****** *) // extern fun gm3at_tyer(gm3t: gm3at): higmat and gm3atlst_tyer(gm3ts: gm3atlst): higmatlst // extern fun c3lau_tyer(c3l: c3lau): hiclau and c3laulst_tyer(c3ls: c3laulst): hiclaulst // extern fun c3lau_tyer2 (d3es: d3explst, c3l: c3lau): hiclau and c3laulst_tyer2 (d3es: d3explst, c3ls: c3laulst): hiclaulst // (* ****** ****** *) extern fun d3exp_tyer_cst (loc0: location, hse0: hisexp, d2c: d2cst): hidexp // end of [d3exp_tyer_cst] extern fun d3exp_tyer_tmpcst ( loc0: location , hse0: hisexp, d2c: d2cst, t2mas: t2mpmarglst ) : hidexp // end of [d3exp_tyer_tmpcst] extern fun d3exp_tyer_tmpvar ( loc0: location , hse0: hisexp, d2v: d2var, t2mas: t2mpmarglst ) : hidexp // end of [d3exp_tyer_tmpvar] (* ****** ****** *) // extern fun d3explst_npf_tyer (npf: int, d3es: d3explst): hidexplst extern fun d3explst_npf_tyer_labize (npf: int, d3es: d3explst): labhidexplst extern fun labd3explst_npf_tyer (npf: int, ld3es: labd3explst): labhidexplst // (* ****** ****** *) // fun d3exp_tyer_type (d3e: d3exp): hisexp = let // val loc = d3e.d3exp_loc val s2e = d3exp_get_type (d3e) // in s2exp_tyer_deep (loc, s2e) end // end of [d3exp_tyer_type] // (* ****** ****** *) implement d3exp_tyer (d3e0) = let // val loc0 = d3e0.d3exp_loc // (* val () = println! ("d3exp_tyer: d3e0 = ", d3e0) *) // val s2e0 = d3exp_get_type (d3e0) val hse0 = s2exp_tyer_shallow (loc0, s2e0) // in // case+ d3e0.d3exp_node of // | D3Evar (d2v) => let val () = d2var_inc_utimes (d2v) // end of [val] in hidexp_var (loc0, hse0, d2v) end // end of [D3Evar] // | D3Ecst (d2c) => d3exp_tyer_cst (loc0, hse0, d2c) // end of [D3Ecst] // | D3Eint (i) => hidexp_int (loc0, hse0, i) | D3Eintrep (rep) => hidexp_intrep (loc0, hse0, rep) | D3Ebool (b) => hidexp_bool (loc0, hse0, b) | D3Echar (c) => hidexp_char (loc0, hse0, c) | D3Estring (str) => hidexp_string (loc0, hse0, str) // | D3Ei0nt (tok) => hidexp_i0nt (loc0, hse0, tok) | D3Ef0loat (tok) => hidexp_f0loat (loc0, hse0, tok) // | D3Efloat (rep) => hidexp_float (loc0, hse0, rep) // | D3Ecstsp (x) => hidexp_cstsp (loc0, hse0, x) // | D3Etyrep (s2e) => let val hse = s2exp_tyer_shallow(loc0, s2e) in hidexp_tyrep (loc0, hse0, hse) end // end of [D3Etyrep] // | D3Etop () => hidexp_top (loc0, hse0) | D3Eempty () => hidexp_empty (loc0, hse0) // | D3Eextval (name) => hidexp_extval(loc0, hse0, name) // end of [D3Eextval] // | D3Eextfcall (_fun, _arg) => let val _arg = d3explst_tyer(_arg) in hidexp_extfcall(loc0, hse0, _fun, _arg) end // end of [D3Eextfcall] | D3Eextmcall (_obj, _mtd, _arg) => let val _obj = d3exp_tyer (_obj) val _arg = d3explst_tyer (_arg) in hidexp_extmcall(loc0, hse0, _obj, _mtd, _arg) end // end of [D3Eextmcall] // | D3Econ ( d2c, npf, d3es ) => let val lhdes = d3explst_npf_tyer_labize(npf, d3es) // end of [val] val lhses = labhidexplst_get_type(lhdes) val hse_sum = hisexp_tysum(d2c, lhses) in hidexp_con(loc0, hse0, d2c, hse_sum, lhdes) end // end of [D3Econ] // | D3Etmpcst(d2c, t2mas) => d3exp_tyer_tmpcst (loc0, hse0, d2c, t2mas) | D3Etmpvar(d2v, t2mas) => d3exp_tyer_tmpvar (loc0, hse0, d2v, t2mas) // | D3Efoldat _ => hidexp_foldat (loc0, hse0) // end of [D3Efoldat] | D3Efreeat (d3e) => let val hde = d3exp_tyer (d3e) in hidexp_freeat (loc0, hse0, hde) end // end of [D3Efreeat] // | D3Elet ( d3cs, d3e_scope ) => let val hids = d3eclist_tyer (d3cs) val hde_scope = d3exp_tyer (d3e_scope) in hidexp_let_simplify (loc0, hse0, hids, hde_scope) end // end of [D3Elet] // | D3Eapp_dyn ( d3e_fun, npf, d3es_arg ) => let val s2e_fun = d3exp_get_type (d3e_fun) val hse_fun = s2exp_tyer_deep (loc0, s2e_fun) val hde_fun = d3exp_tyer (d3e_fun) val hdes_arg = d3explst_npf_tyer (npf, d3es_arg) in hidexp_app2 (loc0, hse0, hse_fun, hde_fun, hdes_arg) end // end of [D3Eapp_dyn] | D3Eapp_sta (d3e) => d3exp_tyer (d3e) // | D3Eif ( _cond, _then, _else ) => let val hde_cond = d3exp_tyer (_cond) val hde_then = d3exp_tyer (_then) val hde_else = d3exp_tyer (_else) in hidexp_if (loc0, hse0, hde_cond, hde_then, hde_else) end // end of [D3Eif] | D3Esif ( s2e_cond, _then, _else ) => let val hde_then = d3exp_tyer (_then) val hde_else = d3exp_tyer (_else) in hidexp_sif (loc0, hse0, s2e_cond, hde_then, hde_else) end // end of [D3Esif] // | D3Eifcase (knd, ifcls) => let // fun auxlst ( x0: i3fcl, xs: i3fclist ) : hidexp = ( case+ xs of | list_nil() => ( if knd > 0 then ( d3exp_tyer(x0.i3fcl_body) ) else let val hde_cond = d3exp_tyer(x0.i3fcl_test) val hde_then = d3exp_tyer(x0.i3fcl_body) val hde_else = hidexp_empty(loc0, hse0) in hidexp_if(loc0, hse0, hde_cond, hde_then, hde_else) end // end of [else] // end of [if] ) (* end of [list_nil *) | list_cons(x, xs) => let val hde_cond = d3exp_tyer(x0.i3fcl_test) val hde_then = d3exp_tyer(x0.i3fcl_body) val hde_else = auxlst(x, xs) in hidexp_if(loc0, hse0, hde_cond, hde_then, hde_else) end // end of [list_cons] ) (* end of [auxlst] *) // in case+ ifcls of | list_nil() => hidexp_empty (loc0, hse0) // list_nil | list_cons(x0, xs) => auxlst (x0, xs) end // end of [D3Eifcase] // | D3Ecase ( knd, d3es, c3ls ) => let val hdes = d3explst_tyer(d3es) val hcls = c3laulst_tyer2(d3es, c3ls) in hidexp_case (loc0, hse0, knd, hdes, hcls) end // end of [D3Ecase] // | D3Elst ( lin, s2e_elt, d3es ) => let val hse_elt = s2exp_tyer_shallow (loc0, s2e_elt) val hdes = list_map_fun (d3es, d3exp_tyer) val hdes = list_of_list_vt (hdes) in hidexp_lst (loc0, hse0, lin, hse_elt, hdes) end // end of [D3Elst] | D3Etup ( knd, npf, d3es ) => let val hse_rec = s2exp_tyer_deep (loc0, s2e0) // end of [val] val lhdes = d3explst_npf_tyer_labize (npf, d3es) // end of [val] in hidexp_rec2 (loc0, hse0, knd, lhdes, hse_rec) end // end of [D3Etup] // | D3Erec ( knd, npf, ld3es ) => let val hse_rec = s2exp_tyer_deep (loc0, s2e0) // end of [val] val lhdes = labd3explst_npf_tyer (npf, ld3es) in hidexp_rec2 (loc0, hse0, knd, lhdes, hse_rec) end // end of [D3Erec] // | D3Eseq (d3es) => let val hdes = list_map_fun(d3es, d3exp_tyer) // end of [val] val hdes = list_of_list_vt(hdes) in hidexp_seq_simplify(loc0, hse0, hdes) end // end of [D3Eseq] // | D3Eselab (d3e, d3ls) => let val hde = d3exp_tyer (d3e) val hse_flt = d3exp_tyer_type (d3e) val hils = d3lablst_tyer (d3ls) in hidexp_selab (loc0, hse0, hde, hse_flt, hils) end // end of [D3Eselab] // | D3Eptrofvar (d2v) => let val () = d2var_inc_utimes (d2v) in hidexp_ptrofvar (loc0, hse0, d2v) end // end of [D3Eptrofvar] | D3Eptrofsel (d3e, s2rt, d3ls) => let val hde = d3exp_tyer (d3e) val hse_rt = s2exp_tyer_shallow (loc0, s2rt) val hils = d3lablst_tyer (d3ls) in hidexp_ptrofsel (loc0, hse0, hde, hse_rt, hils) end // end of [D3Eptrofsel] // | D3Erefarg ( refval, freeknd, d3e ) => let val hde = d3exp_tyer (d3e) in hidexp_refarg (loc0, hse0, refval, freeknd, hde) end // end of [D3Erefarg] // | D3Esel_var (d2v, s2rt, d3ls) => let val () = d2var_inc_utimes (d2v) val hse_rt = s2exp_tyer_deep (loc0, s2rt) val hils = d3lablst_tyer (d3ls) in hidexp_selvar (loc0, hse0, d2v, hse_rt, hils) end // end of [D3Esel_var] | D3Esel_ptr (d3e, s2rt, d3ls) => let val hde = d3exp_tyer (d3e) val hse_rt = s2exp_tyer_deep (loc0, s2rt) val hils = d3lablst_tyer (d3ls) in hidexp_selptr (loc0, hse0, hde, hse_rt, hils) end // end of [D3Esel_ptr] | D3Esel_ref (d3e, s2rt, d3ls) => let val hde = d3exp_tyer (d3e) val hse_rt = s2exp_tyer_deep (loc0, s2rt) val hils = d3lablst_tyer (d3ls) in hidexp_selptr (loc0, hse0, hde, hse_rt, hils) end // end of [D3Esel_ref] // | D3Eassgn_var (_, _, _, d3e_r) when d3exp_is_prf (d3e_r) => hidexp_empty (loc0, hse0) | D3Eassgn_var ( d2v_l, s2rt, d3ls, d3e_r ) => let val () = d2var_inc_utimes (d2v_l) val hse_rt = s2exp_tyer_deep (loc0, s2rt) val hils = d3lablst_tyer (d3ls) val hde_r = d3exp_tyer (d3e_r) in hidexp_assgn_var (loc0, hse0, d2v_l, hse_rt, hils, hde_r) end // end of [D3Eassgn_var] // | D3Eassgn_ptr (_, _, _, d3e_r) when d3exp_is_prf (d3e_r) => hidexp_empty (loc0, hse0) | D3Eassgn_ptr ( d3e_l, s2rt, d3ls, d3e_r ) => let val hde_l = d3exp_tyer (d3e_l) val hse_rt = s2exp_tyer_deep (loc0, s2rt) val hils = d3lablst_tyer (d3ls) val hde_r = d3exp_tyer (d3e_r) in hidexp_assgn_ptr (loc0, hse0, hde_l, hse_rt, hils, hde_r) end // end of [D3Eassgn_ptr] // | D3Eassgn_ref ( d3e_l, s2rt, d3ls, d3e_r ) => let val hde_l = d3exp_tyer (d3e_l) val hse_rt = s2exp_tyer_deep (loc0, s2rt) val hils = d3lablst_tyer (d3ls) val hde_r = d3exp_tyer (d3e_r) in hidexp_assgn_ptr (loc0, hse0, hde_l, hse_rt, hils, hde_r) end // end of [D3Eassgn_ref] // | D3Exchng_var ( d2v_l, s2rt, d3ls, d3e_r ) => let val () = d2var_inc_utimes (d2v_l) val hse_rt = s2exp_tyer_deep (loc0, s2rt) val hils = d3lablst_tyer (d3ls) val hde_r = d3exp_tyer (d3e_r) in hidexp_xchng_var (loc0, hse0, d2v_l, hse_rt, hils, hde_r) end // end of [D3Exchng_var] | D3Exchng_ptr ( d3e_l, s2rt, d3ls, d3e_r ) => let val hde_l = d3exp_tyer (d3e_l) val hse_rt = s2exp_tyer_deep (loc0, s2rt) val hils = d3lablst_tyer (d3ls) val hde_r = d3exp_tyer (d3e_r) in hidexp_xchng_ptr (loc0, hse0, hde_l, hse_rt, hils, hde_r) end // end of [D3Exchng_ptr] | D3Exchng_ref ( d3e_l, s2rt, d3ls, d3e_r ) => let val hde_l = d3exp_tyer (d3e_l) val hse_rt = s2exp_tyer_deep (loc0, s2rt) val hils = d3lablst_tyer (d3ls) val hde_r = d3exp_tyer (d3e_r) in hidexp_xchng_ptr (loc0, hse0, hde_l, hse_rt, hils, hde_r) end // end of [D3Exchng_ref] // | D3Eviewat_assgn _ => hidexp_empty (loc0, hse0) // | D3Earrpsz ( s2e_elt, d3es_elt, asz ) => let val hse_elt = s2exp_tyer_shallow (loc0, s2e_elt) // end of [val] val hdes_elt = list_map_fun (d3es_elt, d3exp_tyer) val hdes_elt = list_of_list_vt (hdes_elt) in hidexp_arrpsz (loc0, hse0, hse_elt, hdes_elt, asz) end // end of [D3Earrpsz] | D3Earrinit ( s2e_elt, d3e_asz, d3es_elt ) => let val hse_elt = s2exp_tyer_shallow (loc0, s2e_elt) // end of [val] // val hde_asz = d3exp_tyer (d3e_asz) val s2e_asz = d3exp_get_type (d3e_asz) val s2f_asz = $S2UT.s2exp2hnf (s2e_asz) (* val () = println!("d3exp_tyer: s2e_asz = ", s2e_asz) val () = println!("d3exp_tyer: s2f_asz = ", s2f_asz) *) val- ~Some_vt(s2i) = un_s2exp_g1size_index_t0ype(s2f_asz) // end of [val] // val opt = un_s2exp_intconst(s2i) // end of [opt] val asz = ( case+ opt of | ~Some_vt(n) => n | ~None_vt() => ~1 ) : int // end of [val] // val hdes_elt = list_map_fun(d3es_elt, d3exp_tyer) val hdes_elt = list_of_list_vt(hdes_elt) // in hidexp_arrinit (loc0, hse0, hse_elt, hde_asz, hdes_elt, asz) // end of [hidexp_arrinit] end // end of [D3Earrinit] // | D3Eraise(d3e) => let val hde = d3exp_tyer(d3e) in hidexp_raise(loc0, hse0, hde) end // end of [D3Eraise] // | D3Eeffmask(s2fe, d3e) => d3exp_tyer(d3e) // | D3Evararg(d3es) => let val hdes = d3explst_tyer(d3es) in hidexp_vararg(loc0, hse0, hdes) end // end of [D3Evararg] // | D3Evcopyenv (knd, d2v) => let // // HX: hidexp_vcopyenv = hidexp_var // val () = d2var_inc_utimes (d2v) // end of [val] in hidexp_vcopyenv (loc0, hse0, d2v) end // end of [D3Evcopyenv] // | D3Etempenver(d2vs) => let val () = list_app_fun (d2vs, d2var_inc_utimes) // end of [val] in hidexp_tempenver (loc0, hse0, d2vs) end // end of [D3Etempenver] // | D3Eann_type(d3e, _(*ann*)) => d3exp_tyer (d3e) // | D3Elam_dyn ( lin, npf, p3ts_arg, d3e_body ) => let val hse_fun = s2exp_tyer_deep (loc0, s2e0) val hips_arg = p3atlst_npf_tyer (npf, p3ts_arg) val hde_body = d3exp_tyer (d3e_body) in hidexp_lam (loc0, hse_fun, 1(*boxed*), hips_arg, hde_body) end // end of [D3Elam_dyn] | D3Elaminit_dyn ( lin, npf, p3ts_arg, d3e_body ) => let val hse_fun = s2exp_tyer_deep (loc0, s2e0) val hips_arg = p3atlst_npf_tyer (npf, p3ts_arg) val hde_body = d3exp_tyer (d3e_body) in hidexp_lam (loc0, hse_fun, 0(*unboxed*), hips_arg, hde_body) end // end of [D3Elaminit_dyn] // | D3Elam_sta ( s2vs, s2ps, d3e_body ) => let val hde_body = d3exp_tyer (d3e_body) val isval = hidexp_is_value (hde_body) val () = if not(isval) then let val () = prerr_warning4_loc (loc0) val () = prerrln! ( ": a non-value body for static lam-abstraction is not supported." ) (* end of [val] *) in (* the_trans4errlst_add (T4E_d3exp_tyer_isnotval (d3e_body)) // HX: warning *) end (* end of [if] *) in hde_body end // end of [D3Elam_sta] | D3Elam_met (_(*met*), d3e) => d3exp_tyer (d3e) // | D3Efix ( knd, f_d2v, d3e_def ) => let val hde_def = d3exp_tyer (d3e_def) in hidexp_fix (loc0, hse0, knd, f_d2v, hde_def) end // end of [D3Efix] // | D3Edelay (d3e) => let val hde = d3exp_tyer (d3e) in hidexp_delay (loc0, hse0, hde) end // end of [D3Edelay] | D3Eldelay (d3e1, d3e2) => let val hde1 = d3exp_tyer (d3e1) val hde2 = d3exp_tyer (d3e2) in hidexp_ldelay (loc0, hse0, hde1, hde2) end // end of [D3Eldelay] | D3Elazyeval (lin, d3e) => let val hde = d3exp_tyer (d3e) in hidexp_lazyeval (loc0, hse0, lin, hde) end // end of [D3Elazyeval] // | D3Eloop ( init, test, post, body ) => let val init = d3expopt_tyer(init) // end of [val] val test = d3exp_tyer(test) val post = d3expopt_tyer (post) // end of [val] val body = d3exp_tyer (body) in hidexp_loop(loc0, hse0, init, test, post, body) end // end of [D3Eloop] | D3Eloopexn (knd) => hidexp_loopexn (loc0, hse0, knd) // | D3Etrywith (d3e_try, c3ls_with) => let val hde_try = d3exp_tyer (d3e_try) val hicls_with = c3laulst_tyer (c3ls_with) in hidexp_trywith(loc0, hse0, hde_try, hicls_with) end // end of [D3Etrywith] // | D3Esolverify _ => hidexp_empty(loc0, hisexp_void_t0ype((*void*))) // end of [D3Esolverify] // | D3Eerrexp((*void*)) => hidexp_errexp (loc0, hse0) // | _(*unspported*) => let val () = prerr_interror_loc(loc0) val () = prerrln! (": d3exp_tyer: d3e0 = ", d3e0) in exitloc(1) // end of [val] end (* end of [_(*unsupported*)] *) // end // end of [let] // end of [d3exp_tyer] (* ****** ****** *) implement d3explst_tyer (d3es) = let in // case+ d3es of | list_cons (d3e, d3es) => let val isprf = d3exp_is_prf (d3e) // end of [val] in if isprf then d3explst_tyer (d3es) else let val hde = d3exp_tyer (d3e) in list_cons (hde, d3explst_tyer (d3es)) end // end of [if] end | list_nil() => list_nil () // end // end of [d3explst_tyer] implement d3explst_npf_tyer (npf, d3es) = let in // if npf > 0 then let // val- list_cons(_, d3es) = d3es // in // d3explst_npf_tyer(npf-1, d3es) // end // end of [then] else d3explst_tyer(d3es) // [else] // end // end of [d3explst_npf_tyer] implement d3explst_npf_tyer_labize (npf, d3es) = let // fun aux1 ( npf: int, d3es: d3explst ) : d3explst = if npf > 0 then let val-list_cons (_, d3es) = d3es in aux1 (npf-1, d3es) end else d3es // end of [aux1] // fun aux2 ( i: int, d3es: d3explst ) : labhidexplst = let in // case+ d3es of | list_cons (d3e, d3es) => let val isprf = d3exp_is_prf (d3e) in if isprf then aux2 (i+1, d3es) else let val l = $LAB.label_make_int (i) val hde = d3exp_tyer (d3e) val lhde = LABHIDEXP (l, hde) in list_cons (lhde, aux2 (i+1, d3es)) end // end of [if] end | list_nil () => list_nil () // end // end of [aux2] // val i0 = (if npf >= 0 then npf else 0): int // in aux2 (i0, aux1 (npf, d3es)) end // end of [d3explst_npf_tyer_labize] (* ****** ****** *) implement d3expopt_tyer (opt) = ( case+ opt of | Some (d3e) => Some (d3exp_tyer (d3e)) | None () => None () ) // end of [d3expopt_tyer] (* ****** ****** *) extern fun labd3explst_tyer (lxs: labd3explst): labhidexplst implement labd3explst_tyer (lxs) = let in // case+ lxs of | list_cons (lx, lxs) => let val $SYN.DL0ABELED (l0, x) = lx in if d3exp_is_prf (x) then labd3explst_tyer (lxs) else let val hde = d3exp_tyer (x) val lhde = LABHIDEXP (l0.l0ab_lab, hde) in list_cons (lhde, labd3explst_tyer (lxs)) end // end of [if] end | list_nil () => list_nil () // end // end of [labd3explst_tyer] implement labd3explst_npf_tyer (npf, lxs) = let in // if npf > 0 then let val-list_cons (_, lxs) = lxs in labd3explst_npf_tyer (npf-1, lxs) end else labd3explst_tyer (lxs) // end of [if] // end // end of [labd3explst_npf_tyer] (* ****** ****** *) implement d3lab_tyer (d3l) = let // val loc0 = d3l.d3lab_loc // in // case+ d3l.d3lab_node of // case+ | D3LABlab (l) => hilab_lab (loc0, l) // end of [D3LABlab] | D3LABind (d3es_ind) => let val hdes_ind = list_map_fun (d3es_ind, d3exp_tyer) // end of [val] val hdes_ind = list_of_list_vt (hdes_ind) in hilab_ind (loc0, hdes_ind) end // end of [D3LABind] // end // end of [d3lab_tyer] implement d3lablst_tyer(d3ls) = ( list_of_list_vt(list_map_fun(d3ls, d3lab_tyer)) ) (* end of [d3lablst_tyer] *) (* ****** ****** *) implement d3exp_tyer_cst (loc0, hse0, d2c) = let // val sym = d2cst_get_sym (d2c) // in // case+ sym of | _ when sym = $SYM.symbol_TRUE_BOOL => hidexp_bool (loc0, hse0, true) | _ when sym = $SYM.symbol_FALSE_BOOL => hidexp_bool (loc0, hse0, false) | _ => let val d2c = d2cst_tyer (d2c) in hidexp_cst (loc0, hse0, d2c) end // end of [_] // end // end of [d3exp_tyer_cst] (* ****** ****** *) implement d3exp_tyer_tmpcst ( loc0, hse0, d2c, t2mas ) = let val t2mas2 = t2mpmarglst_mhnfize (t2mas) // end of [val] in hidexp_tmpcst (loc0, hse0, d2c, t2mas2) end (* end of [d3exp_tyer_tmpcst] *) implement d3exp_tyer_tmpvar ( loc0, hse0, d2v, t2mas ) = let val t2mas2 = t2mpmarglst_mhnfize (t2mas) // end of [val] in hidexp_tmpvar (loc0, hse0, d2v, t2mas2) end (* end of [d3exp_tyer_tmpvar] *) (* ****** ****** *) implement gm3at_tyer (gm3t) = let // val loc = gm3t.gm3at_loc // val hde = d3exp_tyer(gm3t.gm3at_exp) // val opt = ( case+ gm3t.gm3at_pat of | Some (p3t) => Some(p3at_tyer(p3t)) | None() => None() ) : hipatopt // end of [val] // in higmat_make (loc, hde, opt) end (* end of [gm3at_tyer] *) implement gm3atlst_tyer(gm3ts) = let // val hgmats = list_map_fun(gm3ts, gm3at_tyer) in list_of_list_vt(hgmats) // end // end of [gm3atlst_tyer] (* ****** ****** *) implement c3lau_tyer(c3l) = let // val loc = c3l.c3lau_loc val hips = p3atlst_tyer (c3l.c3lau_pat) // end of [val] val gua = gm3atlst_tyer (c3l.c3lau_gua) // val seq = c3l.c3lau_seq val neg = c3l.c3lau_neg val body = d3exp_tyer (c3l.c3lau_body) // in hiclau_make (loc, hips, gua, seq, neg, body) end // end of [c3lau_tyer] implement c3laulst_tyer(c3ls) = let // val hcls = list_map_fun(c3ls, c3lau_tyer) in list_of_list_vt(hcls) // end // end of [c3laulst_tyer] (* ****** ****** *) implement c3lau_tyer2 (d3es, c3l) = let // val loc = c3l.c3lau_loc // val hips = p3atlst_tyer2(d3es, c3l.c3lau_pat) // val gua = gm3atlst_tyer (c3l.c3lau_gua) // val seq = c3l.c3lau_seq val neg = c3l.c3lau_neg val body = d3exp_tyer (c3l.c3lau_body) // in hiclau_make (loc, hips, gua, seq, neg, body) end // end of [c3lau_tyer2] implement c3laulst_tyer2 (d3es, c3ls) = let in // case+ c3ls of | list_nil ((*void*)) => list_nil () | list_cons (c3l, c3ls) => let val hcl = c3lau_tyer2 (d3es, c3l) val hcls = c3laulst_tyer2 (d3es, c3ls) in list_cons (hcl, hcls) end // end of [list_cons] // end // end of [c3laulst_tyer2] (* ****** ****** *) (* end of [pats_typerase_dynexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_stamp.dats0000644000175000017500000001206313431250607020503 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload "./pats_stamp.sats" (* ****** ****** *) staload CNTR = "./pats_counter.sats" assume stamp_t0ype = $CNTR.count (* ****** ****** *) implement stamp_get_int (x) = $CNTR.count_get_int (x) (* ****** ****** *) // implement lt_stamp_stamp (x1, x2) = $CNTR.lt_count_count (x1, x2) implement lte_stamp_stamp (x1, x2) = $CNTR.lte_count_count (x1, x2) // implement eq_stamp_stamp (x1, x2) = $CNTR.eq_count_count (x1, x2) implement neq_stamp_stamp (x1, x2) = $CNTR.neq_count_count (x1, x2) // implement compare_stamp_stamp (x1, x2) = $CNTR.compare_count_count (x1, x2) // (* ****** ****** *) // implement tostring_stamp (x) = $CNTR.tostring_count (x) implement tostring_prefix_stamp (pre, x) = $CNTR.tostring_prefix_count (pre, x) // (* ****** ****** *) implement fprint_stamp (out, x) = $CNTR.fprint_count (out, x) (* ****** ****** *) // // HX: // Various stamp-gen functions // (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement s2rtdat_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement s2cst_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement s2var_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement s2Var_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement s2hole_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement d2con_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement d2cst_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement d2mac_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement d2var_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement hitype_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement tmplab_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement tmpvar_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // val cntr = $CNTR.counter_make () // in // implement funlab_stamp_make () = $CNTR.counter_getinc (cntr) // end // end of [local] (* ****** ****** *) local // staload LS = "libats/SATS/linset_avltree.sats" staload _ = "libats/DATS/linset_avltree.dats" // val cmp = lam ( x1: stamp, x2: stamp ) : int = compare_stamp_stamp (x1, x2) // assume stampset_viewtype = $LS.set (stamp) // in (* in-of-local *) implement stampset_vt_nil () = $LS.linset_make_nil () implement stampset_vt_is_nil (xs) = $LS.linset_is_empty (xs) implement stampset_vt_isnot_nil (xs) = $LS.linset_isnot_empty (xs) implement stampset_vt_is_member (xs, x) = $LS.linset_is_member (xs, x, cmp) implement stampset_vt_add (xs, x) = xs where { var xs = xs val _(*replaced*) = $LS.linset_insert (xs, x, cmp) } // end of [stampset_vt_add] implement stampset_vt_free (xs) = $LS.linset_free (xs) end // end of [local] (* ****** ****** *) (* end of [pats_stamp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_global.dats0000644000175000017500000001327513431250607020625 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: August, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_global.sats" (* ****** ****** *) #include "./pats_params.hats" (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" // (* ****** ****** *) local // val the_PACKNAME = ref(stropt_none) // in (* in of [local] *) implement the_PACKNAME_get() = !the_PACKNAME implement the_PACKNAME_set (opt) = !the_PACKNAME := opt end // end of [local] implement the_PACKNAME_set_name (ns) = the_PACKNAME_set(stropt_some(ns)) // end of [the_PACKNAME_set] implement the_PACKNAME_set_none ((*none*)) = the_PACKNAME_set(stropt_none) // end of [the_PACKNAME_set_none] (* ****** ****** *) local // val the_ATSRELOC = ref(0) val the_ATSRELOC_decl = ref(null) // in (* in-of-local *) // implement the_ATSRELOC_get() = !the_ATSRELOC implement the_ATSRELOC_set(flag) = !the_ATSRELOC := flag // implement the_ATSRELOC_get_decl() = let val d0c = !the_ATSRELOC_decl val ((*void*)) = !the_ATSRELOC_decl := null in d0c end // end of [the_ATSRELOC_get_decl] // implement the_ATSRELOC_set_decl(d0c) = !the_ATSRELOC_decl := d0c // end // end of [local] (* ****** ****** *) local // (* // // HX: it is no longer in use // val the_STALOADFLAG = ref (0) *) val the_DYNLOADFLAG = ref(0) // in (* in of [local] *) // (* // // HX-2014-06-06: // [STALOADFLAG] is no longer in use // implement the_STALOADFLAG_get() = !the_STALOADFLAG implement the_STALOADFLAG_set(flag) = !the_STALOADFLAG := flag *) // implement the_DYNLOADFLAG_get() = !the_DYNLOADFLAG implement the_DYNLOADFLAG_set(flag) = !the_DYNLOADFLAG := flag // end // end of [local] (* ****** ****** *) local // val the_DYNLOADNAME = ref(stropt_none) // in (* in-of-local *) implement the_DYNLOADNAME_get () = !the_DYNLOADNAME implement the_DYNLOADNAME_set_none () = !the_DYNLOADNAME := stropt_none(*void*) implement the_DYNLOADNAME_set_name (name) = !the_DYNLOADNAME := stropt_some(name) end // end of [local] (* ****** ****** *) local val the_MAINATSFLAG = ref(0) in (* in of [local] *) implement the_MAINATSFLAG_get() = !the_MAINATSFLAG implement the_MAINATSFLAG_set(flag) = !the_MAINATSFLAG := flag end // end of [local] (* ****** ****** *) local // val the_STATIC_PREFIX = ref(stropt_none) // in (* in-of-local *) // implement the_STATIC_PREFIX_get () = !the_STATIC_PREFIX implement the_STATIC_PREFIX_set_none () = !the_STATIC_PREFIX := stropt_none implement the_STATIC_PREFIX_set_name (x) = !the_STATIC_PREFIX := stropt_some(x) // end // end of [local] (* ****** ****** *) local // typedef dirlst = List0(string) // val the_IATS_dirlst = ref(list_nil(*void*)) // in (*in-of-local*) // implement the_IATS_dirlst_get () = !the_IATS_dirlst // implement the_IATS_dirlst_ppush (dir) = let val dirs = !the_IATS_dirlst in !the_IATS_dirlst := list_cons(dir, dirs) end // end of [the_IATS_dirlst_ppush] // (* // // HX-2017-02-01: reverted // HX-2017-01-31: push from the back! // implement the_IATS_dirlst_ppushb (dir) = let val dirs = !the_IATS_dirlst in !the_IATS_dirlst := list_of_list_vt(list_extend(dirs, dir)) end // end of [the_IATS_dirlst_ppushb] *) // end // end of [local] (* ****** ****** *) (* local // val rasmflag = ref (1) // in // implement the_ASSUME_check_get() = !rasmflag implement the_ASSUME_check_set(flag) = !rasmflag := flag // end // end of [local] *) (* ****** ****** *) local // val rdbgflag = ref(0) // in (*in-of-local*) // implement the_DEBUGATS_dbgflag_get() = !rdbgflag implement the_DEBUGATS_dbgflag_set(flag) = !rdbgflag := flag // end // end of [local] (* ****** ****** *) local // val rdbgline = ref(0) // in (*in-of-local*) // implement the_DEBUGATS_dbgline_get() = !rdbgline implement the_DEBUGATS_dbgline_set(flag) = !rdbgline := flag // end // end of [local] (* ****** ****** *) local // val rtlcalopt = ref(1) // in // implement the_CCOMPATS_tlcalopt_get() = !rtlcalopt implement the_CCOMPATS_tlcalopt_set(flag) = !rtlcalopt := flag // end // end of [local] (* ****** ****** *) local // val rmaxtmprecdepth = ref(CCOMPENV_MAXTMPRECDEPTH) // in (*in-of-local*) // implement the_CCOMPENV_maxtmprecdepth_get() = !rmaxtmprecdepth implement the_CCOMPENV_maxtmprecdepth_set(mtd) = !rmaxtmprecdepth := mtd // end // end of [local] (* ****** ****** *) (* end of [pats_global.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_util1.dats0000644000175000017500000010466413431250607022074 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LAB = "./pats_label.sats" staload EFF = "./pats_effect.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" overload = with $SYM.eq_symbol_symbol (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) fn prerr_error2_loc (loc: location): void = ( $LOC.prerr_location loc; prerr ": error(2)" ) // end of [prerr_error2_loc] (* ****** ****** *) local fn impname_linearize (name: $SYM.symbol): $SYM.symbol = let in // case+ 0 of | _ when name = $SYM.symbol_PROP => $SYM.symbol_VIEW | _ when name = $SYM.symbol_TYPE => $SYM.symbol_VIEWTYPE | _ when name = $SYM.symbol_T0YPE => $SYM.symbol_VIEWT0YPE | _ => name // end // end of [impname_linearize] in (* in of [local] *) implement s2rt_linearize (s2t) = let var err: int = 0 var s2t: s2rt = s2t val () = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASimp (knd, name) => let val knd = impkind_linearize (knd) val name = impname_linearize (name) in s2t := S2RTbas (S2RTBASimp (knd, name)) end // end of [S2RTBASimp] | _ => err := 1 ) // end of [S2RTbas] | _ (*non-S2RTbas*) => (err := 1) ) : void // end of [val] (* val () = assertloc (err > 0) // [s2t] maybe [S2RTerr] *) in s2t end // end of [s2rt_linearize] end // end of [local] (* ****** ****** *) local #define CLO 0 #define CLOPTR 1 #define CLOREF ~1 in (* in of [local] *) implement s2rt_prf_lin_fc ( loc0, isprf, islin, fc ) = begin if isprf then ( if islin then s2rt_view else s2rt_prop // end of [if] ) else begin case+ islin of | _ when islin => ( case+ fc of | FUNCLOclo(knd) => begin case+ knd of | CLO(*0*) => s2rt_vt0ype | CLOPTR(*1*) => s2rt_vtype(*ptr*) | _ (*CLOREF*) => s2rt_err() where { val () = prerr_error2_loc(loc0) val () = prerrln!(": a closure reference cannot be linear.") } // end of [_] end (* end of [FUNCLOclo] *) | FUNCLOfun((*void*)) => s2rt_vtype ) (* end of [_ when islin] *) | _ (* when ~islin *) => ( case+ fc of | FUNCLOclo(knd) => begin case+ knd of | CLO => s2rt_t0ype | CLOPTR => s2rt_vtype(*ptr*) | _ (*CLOREF*) => s2rt_type(*ref*) end // end of [FUNCLOclo] | FUNCLOfun((*void*)) => s2rt_type ) (* end of [_ when ~islin] *) end (* end of [if] *) end // end of [s2rt_prf_lin_fc] end // end of [local] (* ****** ****** *) (* ** HX: this function is called only when prgm = 0 *) implement s2rt_npf_lin_prf_boxed (npf, lin, prf, boxed) = ( // if (npf >= 0) then ( if (lin = 0) then if boxed > 0 then s2rt_type else s2rt_t0ype else if boxed > 0 then s2rt_vtype else s2rt_vt0ype // end of [if] ) else ( // if (prf = 0) then ( if (lin = 0) then if boxed > 0 then s2rt_type else s2rt_t0ype else if boxed > 0 then s2rt_vtype else s2rt_vt0ype // end of [if] ) else ( if (lin = 0) then if boxed > 0 then s2rt_type else s2rt_prop else if boxed > 0 then s2rt_vtype else s2rt_view // end of [if] ) (* end of [else] *) // ) (* end of [else] *) // ) (* end of [s2rt_lin_prf_boxed] *) (* ****** ****** *) implement s2rt_npf_lin_prf_prgm_boxed_labs2explst (npf, lin, prf, prgm, boxed, ls2es) = let // (* val () = print "s2rt_npf_lin_prf_prgm_boxed_labs2explst: npf = " val () = fprint_int (stdout_ref, npf) val () = print_newline () val () = print "s2rt_npf_lin_prf_prgm_boxed_labs2explst: lin = " val () = fprint_int (stdout_ref, lin) val () = print_newline () val () = print "s2rt_npf_lin_prf_prgm_boxed_labs2explst: prf = " val () = fprint_int (stdout_ref, prf) val () = print_newline () val () = print "s2rt_npf_lin_prf_prgm_boxed_labs2explst: prgm = " val () = fprint_int (stdout_ref, prgm) val () = print_newline () val () = print "s2rt_npf_lin_prf_prgm_boxed_labs2explst: boxed = " val () = fprint_int (stdout_ref, boxed) val () = print_newline () val () = print "s2rt_npf_lin_prf_prgm_boxed_labs2explst: labs2explst = " val () = fprint_labs2explst (stdout_ref, ls2es) val () = print_newline () *) // fun aux // HX: only when prgm = 1 ( npf: int, lin: int, xs: labs2explst ) : s2rt = let in // if (npf > 0) then let val-list_cons (_, xs) = xs in aux (npf-1, lin, xs) end else let val- list_cons(x, xs) = xs val SLABELED(_, _, s2e) = x val s2t = s2e.s2exp_srt (* val () = (println! ("aux: s2t = ", s2t) *) in // if s2rt_is_prf(s2t) then ( aux (0(*npf*), lin, xs) // HX: [xs] not nil ) else ( (if lin = 0 then s2t else s2rt_linearize(s2t)) ) (* end of [if] *) // end (* end of [else] *) // end // end of [aux] // in // if (prgm = 0) then ( s2rt_npf_lin_prf_boxed (npf, lin, prf, boxed) ) else ( // if (prgm = 1) then ( if boxed > 0 then if lin = 0 then s2rt_type else s2rt_vtype else aux (npf, lin, ls2es) ) else ( // HX: prgm >= 2 if lin = 0 then if boxed > 0 then s2rt_type else s2rt_t0ype else if boxed > 0 then s2rt_vtype else s2rt_vt0ype // end of [if] ) // end of [if] // ) (* end of [else] *) // end // end of [s2rt_npf_lin_prf_prgm_boxed_labs2explst] (* ****** ****** *) implement s2exp_tytup ( knd, npf, s2es ) = let // fun aux ( i: int, s2es: s2explst ) : labs2explst = let in // case+ s2es of // | list_nil ((*void*)) => list_nil() // list_nil // | list_cons (s2e, s2es) => let val lab = $LAB.label_make_int(i) // end of [val] val ls2e = SLABELED(lab, None(*name*), s2e) val ls2es = aux(i+1, s2es) in list_cons(ls2e, ls2es) end // end of [list_cons] // end // end of [aux] // val ls2es = aux(0, s2es) // in s2exp_tyrec(knd, npf, ls2es) end // end of [s2exp_tytup] (* ****** ****** *) implement s2exp_tyrec ( knd, npf, ls2es ) = let // fun aux01 ( i: int , npf: int, ls2es: labs2explst , lin: &int , prf: &int , prgm: &int ) : void = let in // case+ ls2es of | list_nil ((*void*)) => () // end of [list_nil] | list_cons (ls2e, ls2es) => let // val SLABELED (_, _, s2e) = ls2e // SLABELED // val s2t = s2e.s2exp_srt val () = if s2rt_is_lin(s2t) then (lin := lin+1) val () = if s2rt_is_prf(s2t) then (prf := prf+1) else (if i >= npf then prgm := prgm+1) // end of [if] // end of [val] in aux01(i+1, npf, ls2es, lin, prf, prgm) end // end of [list_cons] // end // end of [aux01] // var lin: int = 0 var prf: int = 0 and prgm: int = 0 val () = aux01(0, npf, ls2es, lin, prf, prgm) val boxed = knd // 0/1 val tyrecknd = ( case+ knd of | 0 => TYRECKINDflt0 | 1 => TYRECKINDbox() | 2 => TYRECKINDbox() | _ => TYRECKINDbox_lin() ) : tyreckind // end of [val] // val s2t_rec = ( if (knd >= 3) then s2rt_vtype else s2rt_npf_lin_prf_prgm_boxed_labs2explst(npf, lin, prf, prgm, boxed, ls2es) // end of [if] ) : s2rt // end of [val] // in s2exp_tyrec_srt (s2t_rec, tyrecknd, npf, ls2es) end // end of [s2exp_tyrec] (* ****** ****** *) implement s2cst_select_locs2explstlst (s2cs, xss) = let // fun test1 ( xs: locs2explst, s2ts: s2rtlst ) : bool = case+ xs of | list_cons (x, xs) => (case+ s2ts of | list_cons (s2t, s2ts) => let val s2e = x.1 in if s2rt_ltmat0 (s2e.s2exp_srt, s2t) then test1 (xs, s2ts) else false end // end of [list_cons] | list_nil () => false ) // end of [list_cons] | list_nil () => (case+ s2ts of | list_cons _ => false | list_nil () => true ) // end of [list_nil] (* end of [test1] *) // fun test2 ( s2t: s2rt, xss: List (locs2explst) ) : bool = case+ xss of | list_cons (xs, xss) => ( if s2rt_is_fun (s2t) then let val-S2RTfun (s2ts_arg, s2t_res) = s2t in if test1 (xs, s2ts_arg) then test2 (s2t_res, xss) else false end else false ) // end of [list_cons] | list_nil () => true (* end of [test2] *) // fun filter ( s2cs: s2cstlst, xss: List (locs2explst) ) : s2cstlst = case+ s2cs of | list_cons (s2c, s2cs) => let (* val () = print "s2cst_select_locs2explstlst: filter: s2c = " val () = print_s2cst (s2c) val () = print_newline () *) val s2t = s2cst_get_srt (s2c) (* val () = print "s2cst_select_locs2explstlst: filter: s2t = "; val () = print_s2rt (s2t) val () = print_newline () *) in if test2 (s2t, xss) then list_cons (s2c, filter (s2cs, xss)) else filter (s2cs, xss) // end of [if] end // end of [S2CSTLSTcons] | list_nil () => list_nil () (* end of [filter] *) // in if list_is_sing (s2cs) then s2cs else filter (s2cs, xss) // end of [if] end // end of [s2cst_select_locs2explstlst] (* ****** ****** *) implement s2exp_is_nonvar(s2e) = ( case+ s2e.s2exp_node of // case+ | S2Evar _ => false | _(*non-S2Evar*) => true ) (* end of [s2exp_is_nonvar] *) (* ****** ****** *) implement s2exp_is_wthtype(s2e) = ( case+ s2e.s2exp_node of (*case+*) | S2Ewthtype _ => true | S2Eexi(s2vs, s2ps, s2e) => s2exp_is_wthtype (s2e) | _ (*rest-of-s2exp*) => false ) (* end of [s2exp_is_wthtype] *) (* ****** ****** *) // extern fun labs2explst_is_without (xs: labs2explst):<> bool // implement s2exp_is_without(s2e) = ( case+ s2e.s2exp_node of // case+ | S2Ewithout _ => true | S2Etyrec(knd, npf, ls2es) => labs2explst_is_without (ls2es) | _ (*rest-of-s2exp*) => false ) (* end of [s2exp_is_without] *) // implement labs2explst_is_without (xs) = ( // case+ xs of | list_nil() => true | list_cons(x, xs) => let val SLABELED(_, _, s2e) = x in if s2exp_is_without(s2e) then labs2explst_is_without(xs) else false // end of [if] end // end of [list_cons] ) (* end of [labs2explst_is_without] *) // (* ****** ****** *) // extern fun labs2explst_is_lin2 (xs: labs2explst): bool // implement s2exp_is_lin2 (s2e) = let val s2e = s2exp_hnfize (s2e) val islin = s2exp_is_lin (s2e) in // if islin then ( case+ s2e.s2exp_node of (* case+ *) | S2Eat(s2e1, _) => if s2exp_is_without(s2e1) then false else true | S2Etyrec (knd, npf, ls2es) => ( if tyreckind_is_boxed(knd) then true else labs2explst_is_lin2(ls2es) ) // end of [S2Etyrec] | _ (*rest-of-s2exp*) => true ) else false // end of [if] // end // end of [s2exp_is_lin2] // implement labs2explst_is_lin2 (xs) = ( // case+ xs of | list_nil() => false | list_cons (x, xs) => let val SLABELED(_, _, s2e) = x in if s2exp_is_lin2 (s2e) then true else labs2explst_is_lin2 (xs) end // end of [list_cons] ) (* end of [labs2explst_is_lin2] *) // (* ****** ****** *) implement s2hnf_get_head (s2f) = let // fun loop(s2e: s2exp): s2exp = ( case+ s2e.s2exp_node of (* case+ *) | S2Eapp(s2e, _) => loop s2e | _ => s2e ) (* end of [loop] *) // val s2e = s2hnf2exp(s2f) // in s2exp2hnf_cast(loop(s2e)) end // end of [s2hnf_get_head] (* ****** ****** *) implement s2hnf_is_abscon (s2f) = let // fun loop ( s2e: s2exp ) : bool = case+ s2e.s2exp_node of | S2Ecst s2c => ( if s2cst_is_abstr (s2c) then true else if s2cst_is_tkind (s2c) then true else s2cst_get_iscon (s2c) ) // end of [S2Ecst] | S2Eapp (s2e, _) => loop (s2e) | _ => false // end of [loop] val s2e = s2hnf2exp (s2f) in loop (s2e) end // end of [s2hnf_is_abscon] (* ****** ****** *) implement s2eff_add_set (s2fe, efs) = ( case+ 0 of | _ when $EFF.effset_isnil (efs) => s2fe | _ when $EFF.effset_isall (efs) => s2eff_all | _ => let val s2fe2 = s2eff_effset (efs) in s2eff_add (s2fe, s2fe2) end // end of [_] ) // end of [s2eff_add_set] (* ****** ****** *) implement s2eff_contain_set (s2fe, efs0) = let // fun aux ( s2e: s2exp, efs0: effset ) : bool = let val s2f = s2exp2hnf (s2e) val s2e = s2hnf2exp (s2f) in case+ s2e.s2exp_node of | _ => false end // end of [aux] // in // case+ s2fe of | S2EFFset (efs) => $EFF.effset_supset (efs, efs0) | S2EFFexp (s2e) => aux (s2e, efs0) | S2EFFadd (s2fe1, s2fe2) => let val ans = s2eff_contain_set (s2fe1, efs0) in if ans then true else s2eff_contain_set (s2fe2, efs0) end // end of [S2EFFadd] // end // end of [s2eff_contain_set] (* ****** ****** *) implement s2eff_contain_exp (s2fe, s2e0) = let in // case+ s2fe of | S2EFFset (efs) => if $EFF.effset_isall (efs) then true else false | S2EFFexp (s2e) => s2exp_syneq (s2e0, s2e) | S2EFFadd (s2fe1, s2fe2) => let val ans = s2eff_contain_exp (s2fe1, s2e0) in if ans then true else s2eff_contain_exp (s2fe2, s2e0) end // end of [S2EFFadd] // end // end of [s2eff_contain_exp] (* ****** ****** *) local #define :: list_vt_cons assume stasub_vtype = List_vt @(s2var, s2exp) in (* in of [local] *) implement stasub_make_nil () = list_vt_nil () implement stasub_copy (sub) = list_vt_copy (sub) implement stasub_free (sub) = list_vt_free (sub) (* ****** ****** *) implement fprint_stasub (out, sub) = let // fun loop ( out: FILEref, xs: !stasub, i: int ) : void = let in // case+ xs of | list_vt_cons (x, !p_xs) => let val () = if i > 0 then fprint_string (out, ", ") // end of [val] val () = fprint_s2var (out, x.0) val () = fprint_string (out, "->") val () = fprint_s2exp (out, x.1) val () = loop (out, !p_xs, i+1) prval () = fold@ (xs) in // nothing end // end of [list_vt_cons] | list_vt_nil () => fold@ (xs) // end // end of [loop] // in loop (out, sub, 0) end // end of [fprint_stasub] (* ****** ****** *) implement stasub_add (sub, s2v, s2f) = sub := (s2v, s2f) :: sub // end of [stasub_add] implement stasub_addlst (sub, s2vs, s2fs) = let fun loop ( sub: &stasub, s2vs: s2varlst, s2fs: s2explst ) : int = case+ s2vs of | list_cons (s2v, s2vs) => ( case+ s2fs of | list_cons (s2f, s2fs) => let val () = stasub_add (sub, s2v, s2f) in loop (sub, s2vs, s2fs) end // end of [list_cons] | list_nil () => 1 ) // end of [list_cons] | list_nil () => ( case+ s2fs of list_cons _ => ~1 | list_nil () => 0 ) // end of [list_nil] // end of [loop] in loop (sub, s2vs, s2fs) end // end of [stasub_addlst] (* ****** ****** *) implement stasub_find (sub, s2v) = let typedef a = s2var and b = s2exp; typedef ab = (a, b) in list_assoc_fun ($UN.castvwtp1 {List(ab)} (sub), eq_s2var_s2var, s2v) // end of [list_assoc_fun] end // end of [stasub_find] (* ****** ****** *) (* implement stasub_get_domain (sub) = let typedef a = (s2var, s2exp) and b = s2var in list_map_fun
($UN.castvwtp1 {List(a)} (sub), lam (x) =<0> x.0) end // end of [stasub_get_domain] *) (* ****** ****** *) implement stasub_occurcheck (sub, s2V) = case+ sub of | list_vt_cons (x, !p_xs) => let val s2Vs = s2var_get_sVarset (x.0) val ismem = s2Varset_ismem (s2Vs, s2V) in if ismem then let prval () = fold@ (sub) in true end else let val ans = stasub_occurcheck (!p_xs, s2V) prval () = fold@ (sub) in ans end (* end of [if] *) end // end of [list_vt_cons] | list_vt_nil () => let prval () = fold@ (sub) in false end // end of [list_vt_nil] // end of [stasub_occurcheck] end // end of [local] (* ****** ****** *) implement stasub_extend_svarlst (sub, s2vs) = let // fun loop ( sub: &stasub, s2vs: s2varlst, s2vs1: s2varlst_vt ) : s2varlst_vt = case+ s2vs of | list_cons (s2v, s2vs) => let val s2v1 = s2var_dup (s2v) val s2e1 = s2exp_var (s2v1) val () = stasub_add (sub, s2v, s2e1) val s2vs1 = list_vt_cons (s2v1, s2vs1) in loop (sub, s2vs, s2vs1) end // end of [list_cons] | list_nil () => s2vs1 // end of [loop] // val s2vs1 = loop (sub, s2vs, list_vt_nil ()) // in // list_vt_reverse (s2vs1) // end // end of [stasub_extend_svarlst] (* ****** ****** *) extern fun s2explstlst_subst_flag (sub: !stasub, s2ess0: s2explstlst, flag: &int): s2explstlst // end of [s2explstlst_subst_flag] extern fun labs2explst_subst_flag (sub: !stasub, ls2es0: labs2explst, flag: &int): labs2explst // end of [labs2explst_subst_flag] extern fun wths2explst_subst_flag (sub: !stasub, wths2es0: wths2explst, flag: &int): wths2explst // end of [wths2explst_subst_flag] extern fun s2lab_subst_flag (sub: !stasub, s2l0: s2lab, flag: &int): s2lab // end of [s2lab_subst_flag] extern fun s2lablst_subst_flag (sub: !stasub, s2ls0: s2lablst, flag: &int): s2lablst // end of [s2lablst_subst_flag] extern fun s2eff_subst_flag (sub: !stasub, s2fe0: s2eff, flag: &int): s2eff // end of [s2eff_subst_flag] (* ****** ****** *) extern fun s2zexplst_subst_flag (sub: !stasub, s2zes0: s2zexplst, flag: &int): s2zexplst // end of [s2zexplst_subst_flag] extern fun labs2zexplst_subst_flag (sub: !stasub, ls2zes0: labs2zexplst, flag: &int): labs2zexplst // end of [labs2zexplst_subst_flag] (* ****** ****** *) fun s2var_subst_flag ( sub: !stasub , s2e0: s2exp, flag: &int, s2v: s2var ) : s2exp = let val ans = stasub_find (sub, s2v) in case+ ans of | ~Some_vt (s2e) => let val () = flag := flag + 1 in s2e end // end of [Some_vt] | ~None_vt () => s2e0 end // end of [s2var_subst_flag] fun s2Var_subst_flag ( sub: !stasub , s2e0: s2exp, flag: &int, s2V: s2Var ) : s2exp = let val opt = s2Var_get_link (s2V) in // case+ opt of | Some (s2f) => let val () = flag := flag + 1 in s2exp_subst_flag (sub, s2f, flag) end // end of [Some] | None () => let val isfound = stasub_occurcheck (sub, s2V) // end of [val] val () = if isfound then flag := flag + 1 in if ~isfound then s2e0 else s2exp_errexp(s2e0.s2exp_srt) // end of [if] end // end of [None] // end // end of [s2Var_subst_flag] fun s2exp_subst_flag_exiuni ( knd: int , sub: !stasub, s2e0: s2exp, flag: &int , s2vs: s2varlst, s2ps: s2explst, s2e: s2exp ) : s2exp = let val f0 = flag var sub1 = stasub_copy (sub) val s2vs = stasub_extend_svarlst (sub1, s2vs) val s2ps = s2explst_subst_flag (sub1, s2ps, flag) val s2e = s2exp_subst_flag (sub1, s2e, flag) val () = stasub_free (sub1) in if flag > f0 then let val s2vs = l2l (s2vs) val s2f_res = s2exp_exiuni (knd, s2vs, s2ps, s2e) in s2f_res end else let val () = list_vt_free (s2vs) in s2e0 end (* end of [if] *) end // end of [s2exp_subst_flag_exiuni] (* ****** ****** *) implement s2exp_subst_flag (sub, s2e0, flag) = let val s2t0 = s2e0.s2exp_srt in // case+ s2e0.s2exp_node of // | S2Eint _ => s2e0 | S2Eintinf _ => s2e0 // | S2Efloat _ => s2e0 | S2Estring _ => s2e0 // | S2Ecst _ => s2e0 // | S2Eextype (name, s2ess) => let val f0 = flag val s2ess = s2explstlst_subst_flag (sub, s2ess, flag) in if flag > f0 then let val s2e_res = s2exp_extype_srt (s2t0, name, s2ess) in s2e_res end else s2e0 // end of [if] end // end of [S2Eextype] | S2Eextkind (name, s2ess) => let val f0 = flag val s2ess = s2explstlst_subst_flag (sub, s2ess, flag) in if flag > f0 then let val s2e_res = s2exp_extkind_srt (s2t0, name, s2ess) in s2e_res end else s2e0 // end of [if] end // end of [S2Eextkind] // | S2Evar (s2v) => s2var_subst_flag (sub, s2e0, flag, s2v) | S2EVar (s2V) => s2Var_subst_flag (sub, s2e0, flag, s2V) // | S2Ehole _ => s2e0 // | S2Edatcontyp (d2c, arg) => let val f0 = flag val arg = s2explst_subst_flag (sub, arg, flag) in if flag > f0 then let val s2e_res = s2exp_datcontyp (d2c, arg) in s2e_res end else s2e0 end // end of [S2Edatcontyp] | S2Edatconptr (d2c, rt, arg) => let val f0 = flag val rt = s2exp_subst_flag (sub, rt, flag) val arg = s2explst_subst_flag (sub, arg, flag) in if flag > f0 then let val s2e_res = s2exp_datconptr (d2c, rt, arg) in s2e_res end else s2e0 end // end of [S2Edatconptr] // | S2Eat (s2e1, s2e2) => let val f0 = flag val s2e1 = s2exp_subst_flag (sub, s2e1, flag) val s2e2 = s2exp_subst_flag (sub, s2e2, flag) in if flag > f0 then let val s2e_res = s2exp_at (s2e1, s2e2) in s2e_res end else s2e0 // end of [if] end // end of [S2Eat] // | S2Esizeof (s2e) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > f0 then let val s2e_res = s2exp_sizeof (s2e) in s2e_res end else s2e0 // end of [if] end // end of [S2Esizeof] // | S2Eeff (s2fe) => let val f0 = flag val s2fe = s2eff_subst_flag (sub, s2fe, flag) in if flag > f0 then s2exp_eff (s2fe) else s2e0 end // end of [S2Eeff] | S2Eeqeq (s2e1, s2e2) => let val f0 = flag val s2e1 = s2exp_subst_flag (sub, s2e1, flag) val s2e2 = s2exp_subst_flag (sub, s2e2, flag) in if flag > f0 then let val s2e_res = s2exp_eqeq (s2e1, s2e2) in s2e_res end else s2e0 // end of [if] end // end of [S2Eeqeq] | S2Eproj (s2ae, s2te, s2ls) => let val f0 = flag val s2ae = s2exp_subst_flag (sub, s2ae, flag) val s2te = s2exp_subst_flag (sub, s2te, flag) val s2ls = s2lablst_subst_flag (sub, s2ls, flag) in if flag > f0 then s2exp_proj (s2ae, s2te, s2ls) else s2e0 // end of [if] end // end of [S2Eproj] // | S2Eapp (s2e_fun, s2es_arg) => let val f0 = flag val s2e_fun = s2exp_subst_flag (sub, s2e_fun, flag) val s2es_arg = s2explst_subst_flag (sub, s2es_arg, flag) in if flag > f0 then s2exp_app_srt (s2t0, s2e_fun, s2es_arg) else s2e0 // end of [if] end // end of [S2Eapp] | S2Elam (s2vs, s2e) => let val f0 = flag var sub1 = stasub_copy (sub) val s2vs = stasub_extend_svarlst (sub1, s2vs) val s2e = s2exp_subst_flag (sub1, s2e, flag) val () = stasub_free (sub1) in if flag > f0 then s2exp_lam_srt (s2t0, (l2l)s2vs, s2e) else let val () = list_vt_free (s2vs) in s2e0 end (* end of [if] *) end // end of [S2Elam] | S2Efun ( fc, lin, s2fe, npf, s2es_arg, s2e_res ) => let val f0 = flag val s2fe = s2eff_subst_flag (sub, s2fe, flag) val s2es_arg = s2explst_subst_flag (sub, s2es_arg, flag) val s2e_res = s2exp_subst_flag (sub, s2e_res, flag) in if flag > f0 then let val s2e_res = s2exp_fun_srt (s2t0, fc, lin, s2fe, npf, s2es_arg, s2e_res) in s2e_res end else s2e0 // end of [if] end // end of [S2Efun] | S2Emetfun (opt(*stamp*), s2es_met, s2e_body) => let val f0 = flag val s2es_met = s2explst_subst_flag (sub, s2es_met, flag) val s2e_body = s2exp_subst_flag (sub, s2e_body, flag) in if flag > f0 then let val s2e_res = s2exp_metfun (opt, s2es_met, s2e_body) in s2e_res end else s2e0 // end of [if] end // end of [S2Emetfun] // | S2Emetdec(s2es1, s2es2) => let val f0 = flag val s2es1 = s2explst_subst_flag (sub, s2es1, flag) val s2es2 = s2explst_subst_flag (sub, s2es2, flag) in if flag > f0 then s2exp_metdec (s2es1, s2es2) else s2e0 end // end of [S2Emetdec] // | S2Etop(knd, s2e) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > f0 then s2exp_top_srt (s2t0, knd, s2e) else s2e0 end // end of [S2Etop] | S2Ewithout(s2e) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > f0 then s2exp_without (s2e) else s2e0 end // end of [S2Ewithout] // | S2Etyarr(s2e_elt, s2es_int) => let val f0 = flag val s2e_elt = s2exp_subst_flag (sub, s2e_elt, flag) val s2es_int = s2explst_subst_flag (sub, s2es_int, flag) in if flag > f0 then let val s2e_res = s2exp_tyarr (s2e_elt, s2es_int) in s2e_res end else s2e0 end // end of [S2Etyarr] // | S2Etyrec(knd, npf, ls2es) => let val f0 = flag val ls2es = labs2explst_subst_flag (sub, ls2es, flag) in if flag > f0 then let val s2e_res = s2exp_tyrec_srt (s2t0, knd, npf, ls2es) in s2e_res // end of [val] end else s2e0 // end of [if] end // end of [S2Etyrec] // | S2Einvar(s2e) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > f0 then s2exp_invar (s2e) else s2e0 end // end of [S2Etyvarknd] // | S2Erefarg(knd, s2e) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > f0 then s2exp_refarg (knd, s2e) else s2e0 end // end of [S2Erefarg] // | S2Eexi(s2vs, s2ps, s2e) => s2exp_subst_flag_exiuni (0(*exi*), sub, s2e0, flag, s2vs, s2ps, s2e) // end of [S2Eexi] | S2Euni(s2vs, s2ps, s2e) => s2exp_subst_flag_exiuni (1(*uni*), sub, s2e0, flag, s2vs, s2ps, s2e) // end of [S2Euni] // | S2Evararg(s2e) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > f0 then s2exp_vararg (s2e) else s2e0 end // end of [S2Evararg] // | S2Ewthtype(s2e, ws2es) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) val ws2es = wths2explst_subst_flag (sub, ws2es, flag) in if flag > f0 then s2exp_wthtype (s2e, ws2es) else s2e0 end // end of [S2Ewth] // | S2Eerrexp((*void*)) => s2e0 // end of [case] end // end of [s2exp_subst_flag] (* ****** ****** *) implement s2explst_subst_flag (sub, s2es0, flag) = case+ s2es0 of | list_cons (s2e, s2es) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) val s2es = s2explst_subst_flag (sub, s2es, flag) in if flag > f0 then list_cons (s2e, s2es) else s2es0 end (* end of [list_cons] *) | list_nil () => list_nil () // end of [s2explst_subst_flag] implement s2explstlst_subst_flag (sub, s2ess0, flag) = case+ s2ess0 of | list_cons (s2es, s2ess) => let val f0 = flag val s2es = s2explst_subst_flag (sub, s2es, flag) val s2ess = s2explstlst_subst_flag (sub, s2ess, flag) in if flag > f0 then list_cons (s2es, s2ess) else s2ess0 end // end of [list_cons] | list_nil () => list_nil () // end of [s2explstlst_subst_flag] (* ****** ****** *) implement labs2explst_subst_flag (sub, ls2es0, flag) = ( case+ ls2es0 of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (ls2e, ls2es) => let val SLABELED(l, name, s2e) = ls2e val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) val ls2es = labs2explst_subst_flag (sub, ls2es, flag) in if flag > f0 then let val ls2e = SLABELED(l, name, s2e) in list_cons(ls2e, ls2es) end else ls2es0 // end of [if] end // end of [LABS2EXPLSTcons] ) (* end of [labs2explst_subst_flag] *) (* ****** ****** *) implement wths2explst_subst_flag (sub, ws2es0, flag) = ( // case+ ws2es0 of | WTHS2EXPLSTnil ((*void*)) => WTHS2EXPLSTnil() // end of [WTHS2EXPLSTnil] | WTHS2EXPLSTcons_invar (knd, s2e, ws2es) => let val f0 = flag val s2e = s2exp_subst_flag(sub, s2e, flag) val ws2es = wths2explst_subst_flag(sub, ws2es, flag) in if flag > f0 then WTHS2EXPLSTcons_invar(knd, s2e, ws2es) else ws2es0 // end of [if] end // end of [WTHS2EXPLSTcons_invar] | WTHS2EXPLSTcons_trans (knd, s2e, ws2es) => let val f0 = flag val s2e = s2exp_subst_flag(sub, s2e, flag) val ws2es = wths2explst_subst_flag(sub, ws2es, flag) in if flag > f0 then WTHS2EXPLSTcons_trans(knd, s2e, ws2es) else ws2es0 // end of [if] end // end of [WTHS2EXPLSTcons_trans] | WTHS2EXPLSTcons_none (ws2es) => let val f0 = flag val ws2es = wths2explst_subst_flag(sub, ws2es, flag) // end of [val] in if flag > f0 then WTHS2EXPLSTcons_none(ws2es) else ws2es0 end // end of [WTHS2EXPLSTcons_none] // ) (* end of [wths2explst_subst_flag] *) (* ****** ****** *) implement s2lab_subst_flag ( sub, s2l0, flag ) = ( // case+ s2l0 of | S2LABlab _ => s2l0 | S2LABind(s2es) => let val f0 = flag val s2es = s2explst_subst_flag (sub, s2es, flag) // end of [val] in if flag > f0 then S2LABind (s2es) else s2l0 end // end of [S2LABind] // ) (* end of [s2lab_subst_flag] *) implement s2lablst_subst_flag ( sub, s2ls0, flag ) = ( // case+ s2ls0 of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (s2l, s2ls) => let val f0 = flag val s2l = s2lab_subst_flag(sub, s2l, flag) val s2ls = s2lablst_subst_flag(sub, s2ls, flag) in if flag > f0 then list_cons(s2l, s2ls) else s2ls0 end // end of [list_cons] // ) (* end of [s2lablst_subst_flag] *) (* ****** ****** *) implement s2eff_subst_flag (sub, s2fe0, flag) = ( case+ s2fe0 of | S2EFFset (efs) => s2fe0 | S2EFFexp (s2e) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > f0 then S2EFFexp (s2e) else s2fe0 end // end of [S2EFFexp] | S2EFFadd (s2fe1, s2fe2) => let val f0 = flag val s2fe1 = s2eff_subst_flag (sub, s2fe1, flag) val s2fe2 = s2eff_subst_flag (sub, s2fe2, flag) in if flag > f0 then S2EFFadd (s2fe1, s2fe2) else s2fe0 end // end of [S2EFFadd] ) // end of s2eff_subst_flag (* ****** ****** *) implement s2zexp_subst_flag (sub, s2ze0, flag) = let in // case+ s2ze0 of // | S2ZEprf _ => s2ze0 | S2ZEptr _ => s2ze0 // | S2ZEcst _ => s2ze0 // | S2ZEvar (s2v) => let val f0 = flag val ans = stasub_find (sub, s2v) in case+ ans of | ~Some_vt (s2e) => let val () = flag := f0 + 1 in s2zexp_make_s2exp (s2e) end // end of [Some_vt] | ~None_vt ((*void*)) => s2ze0 end // end of [S2ZEvar] // | S2ZEVar (s2V) => s2ze where { val f0 = flag val s2ze = s2Var_get_szexp (s2V) val s2ze = s2zexp_subst_flag (sub, s2ze, flag) val () = flag := f0 + 1 } (* end of [S2ZEVar] *) // | S2ZEextype _ => s2ze0 | S2ZEextkind _ => s2ze0 // | S2ZEapp (s2ze1, s2zes2) => let val f0 = flag val s2ze1 = s2zexp_subst_flag (sub, s2ze1, flag) val s2zes2 = s2zexplst_subst_flag (sub, s2zes2, flag) in if flag > f0 then S2ZEapp (s2ze1, s2zes2) else s2ze0 // end of [if] end // end of [S2ZEapp] // | S2ZEtyarr (s2ze_elt, s2es_dim) => let val f0 = flag val s2ze_elt = s2zexp_subst_flag (sub, s2ze_elt, flag) val s2es_dim = s2explst_subst_flag (sub, s2es_dim, flag) in if flag > f0 then S2ZEtyarr (s2ze_elt, s2es_dim) else s2ze0 // end of [if] end // end of [S2ZEtyarr] // | S2ZEtyrec (knd, ls2zes) => let val f0 = flag val ls2zes = labs2zexplst_subst_flag (sub, ls2zes, flag) // end of [val] in if flag > f0 then S2ZEtyrec (knd, ls2zes) else s2ze0 end // end of [S2ZEtyrec] // | S2ZEclo _ => s2ze0 // | S2ZEbot _ => s2ze0 // end // end of [s2zexp_subst_flag] (* ****** ****** *) implement s2zexplst_subst_flag (sub, s2zes0, flag) = case+ s2zes0 of | list_cons (s2ze, s2zes) => let val f0 = flag val s2e = s2zexp_subst_flag (sub, s2ze, flag) val s2es = s2zexplst_subst_flag (sub, s2zes, flag) in if flag > f0 then list_cons (s2ze, s2zes) else s2zes0 end (* end of [list_cons] *) | list_nil () => list_nil () // end of [s2zexplst_subst_flag] (* ****** ****** *) implement labs2zexplst_subst_flag (sub, ls2zes0, flag) = case+ ls2zes0 of | list_cons (ls2ze, ls2zes) => let val SZLABELED (l, s2ze) = ls2ze val f0 = flag val s2ze = s2zexp_subst_flag (sub, s2ze, flag) val ls2zes = labs2zexplst_subst_flag (sub, ls2zes, flag) in if flag > f0 then let val ls2ze = SZLABELED (l, s2ze) in list_cons (ls2ze, ls2zes) end else ls2zes0 // end of [if] end // end of [LABS2ZEXPLSTcons] | list_nil ((*void*)) => list_nil () // end of [labs2zexplst_subst_flag] (* ****** ****** *) implement s2exp_subst (sub, s2e) = let var flag: int = 0 in s2exp_subst_flag (sub, s2e, flag) end // end of [s2exp_subst] (* ****** ****** *) implement s2explst_subst (sub, s2es) = let var flag: int = 0 in s2explst_subst_flag (sub, s2es, flag) end // end of [s2explst_subst] implement s2explst_subst_vt (sub, s2es) = case+ s2es of | list_cons (s2e, s2es) => let val s2e = s2exp_subst (sub, s2e) val s2es = s2explst_subst_vt (sub, s2es) in list_vt_cons (s2e, s2es) end // end of [list_cons] | list_nil () => list_vt_nil () // end of [s2explst_subst_vt] implement s2explstlst_subst (sub, s2ess) = let var flag: int = 0 in s2explstlst_subst_flag (sub, s2ess, flag) end // end of [s2explstlst_subst] (* ****** ****** *) implement s2expopt_subst (sub, opt) = case+ opt of | Some s2e => let var flag: int = 0 val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > 0 then Some (s2e) else opt end // end of [Some] | None () => opt // end of [s2expopt_subst] (* ****** ****** *) implement s2exp_alpha (s2v, s2v_new, s2e) = let var sub = stasub_make_nil () val () = stasub_add (sub, s2v, s2exp_var (s2v_new)) val s2e_new = s2exp_subst (sub, s2e) val () = stasub_free (sub) in s2e_new end // end of [s2exp_alpha] implement s2explst_alpha (s2v, s2v_new, s2es) = let fun aux ( s2es0: s2explst ) : s2explst = case+ s2es0 of | list_cons (s2e, s2es) => let var flag: int = 0 extern castfn ptrof {a:type} (x: a):<> ptr val s2e_new = s2exp_alpha (s2v, s2v_new, s2e) val () = if ptrof(s2e) != ptrof(s2e_new) then flag := flag + 1 val s2es_new = aux (s2es) val () = if ptrof (s2es) != ptrof (s2es_new) then flag := flag + 1 in if flag > 0 then list_cons (s2e_new, s2es_new) else s2es0 end // end of [list_cons] | list_nil () => s2es0 // end of [aux] in aux (s2es) end // end of [s2explst_alpha] (* ****** ****** *) (* end of [pats_staexp2_util1.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lexing_token.dats0000644000175000017500000004274213431250607022054 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" staload "./pats_lexing.sats" (* ****** ****** *) #include "./pats_basics.hats" (* ****** ****** *) implement DOT = T_DOT implement QMARK = T_IDENT_alp "?" implement PERCENT = T_IDENT_alp "%" (* ****** ****** *) implement ABSTYPE = T_ABSTYPE (TYPE_int) implement ABST0YPE = T_ABSTYPE (T0YPE_int) implement ABSPROP = T_ABSTYPE (PROP_int) implement ABSVIEW = T_ABSTYPE (VIEW_int) implement ABSVIEWTYPE = T_ABSTYPE (VIEWTYPE_int) implement ABSVIEWT0YPE = T_ABSTYPE (VIEWT0YPE_int) implement CASE = T_CASE (CK_case) implement CASE_pos = T_CASE (CK_case_pos) implement CASE_neg = T_CASE (CK_case_neg) implement DATATYPE = T_DATATYPE (TYPE_int) implement DATAPROP = T_DATATYPE (PROP_int) implement DATAVIEW = T_DATATYPE (VIEW_int) implement DATAVTYPE = T_DATATYPE (VIEWTYPE_int) implement FIX = T_FIX (TYPE_int) implement FIXAT = T_FIX (T0YPE_int) implement FN = T_FUN (FK_fn) implement FNX = T_FUN (FK_fnx) implement FUN = T_FUN (FK_fun) // implement PRFN = T_FUN (FK_prfn) implement PRFUN = T_FUN (FK_prfun) // implement PRAXI = T_FUN (FK_praxi) // implement CASTFN = T_FUN (FK_castfn) implement IMPLMNT = T_IMPLEMENT (0) implement IMPLEMENT = T_IMPLEMENT (1) implement PRIMPLMNT = T_IMPLEMENT (~1) implement INFIX = T_FIXITY (FXK_infix) implement INFIXL = T_FIXITY (FXK_infixl) implement INFIXR = T_FIXITY (FXK_infixr) implement PREFIX = T_FIXITY (FXK_prefix) implement POSTFIX = T_FIXITY (FXK_postfix) implement LAM = T_LAM (TYPE_int) implement LAMAT = T_LAM (T0YPE_int) implement LLAM = T_LAM (VIEWTYPE_int) implement LLAMAT = T_LAM (VIEWT0YPE_int) implement MACDEF = T_MACDEF (0) // short form implement MACRODEF = T_MACDEF (1) // long form (* ****** ****** *) (* // implement REF = T_IDENT_alp "ref" // implement REFAT = T_REFAT // HX: flattened ref // // HX-2015-12-10: 'ref@' is removed for now // *) (* ****** ****** *) // // HX: for introducing tkinds // implement TKINDEF = T_TKINDEF() // (* ****** ****** *) // implement PROP = T_IDENT_alp "prop" implement VIEW = T_IDENT_alp "view" // implement TYPE = T_IDENT_alp "type" implement TFLT = T_IDENT_alp "tflt" implement TBOX = T_IDENT_alp "tbox" // implement VTYPE = T_IDENT_alp "vtype" implement VTBOX = T_IDENT_alp "vtbox" implement VTFLT = T_IDENT_alp "vtflt" // implement VIEWTYPE = T_IDENT_alp "viewtype" (* implement VIEWTBOX = T_IDENT_alp "viewtbox" implement VIEWTFLT = T_IDENT_alp "viewtflt" *) // (* ****** ****** *) // (* implement TYPE = T_TYPE (TYPE_int) *) implement TYPE_pos = T_TYPE (TYPE_pos_int) implement TYPE_neg = T_TYPE (TYPE_neg_int) // implement T0YPE = T_TYPE (T0YPE_int) implement T0YPE_pos = T_TYPE (T0YPE_pos_int) implement T0YPE_neg = T_TYPE (T0YPE_neg_int) // (* ****** ****** *) // (* implement TYPES = T_IDENT_alp "types" implement TYPES_pos = T_TYPE (TYPES_pos_int) implement TYPES_neg = T_TYPE (TYPES_neg_int) *) // (* ****** ****** *) // (* implement PROP = T_TYPE (PROP_int) *) implement PROP_pos = T_TYPE (PROP_pos_int) implement PROP_neg = T_TYPE (PROP_neg_int) // (* ****** ****** *) // (* implement VIEW = T_TYPE (VIEW_int) *) implement VIEWAT = T_VIEWAT () // view@ implement VIEW_pos = T_TYPE (VIEW_pos_int) implement VIEW_neg = T_TYPE (VIEW_neg_int) // (* ****** ****** *) (* implement VIEWTYPE = T_TYPE (VIEWTYPE_int) *) implement VIEWTYPE_pos = T_TYPE (VIEWTYPE_pos_int) implement VIEWTYPE_neg = T_TYPE (VIEWTYPE_neg_int) // implement VIEWT0YPE = T_TYPE (VIEWT0YPE_int) implement VIEWT0YPE_pos = T_TYPE (VIEWT0YPE_pos_int) implement VIEWT0YPE_neg = T_TYPE (VIEWT0YPE_neg_int) (* ****** ****** *) implement PROPDEF = T_TYPEDEF (PROP_int) implement VIEWDEF = T_TYPEDEF (VIEW_int) implement TYPEDEF = T_TYPEDEF (T0YPE_int) implement VIEWTYPEDEF = T_TYPEDEF (VIEWT0YPE_int) (* ****** ****** *) implement VAL = T_VAL (VK_val) implement VAL_pos = T_VAL (VK_val_pos) implement VAL_neg = T_VAL (VK_val_neg) (* implement MCVAL = T_VAL (VK_mcval) *) implement PRVAL = T_VAL (VK_prval) implement VAR = T_VAR (0) implement PRVAR = T_VAR (1) implement FOR = T_FOR ((*void*)) implement FORSTAR = T_FORSTAR ((*void*)) implement WHILE = T_WHILE ((*void*)) implement WHILESTAR = T_WHILESTAR ((*void*)) implement WITHTYPE = T_WITHTYPE (T0YPE_int) implement WITHPROP = T_WITHTYPE (PROP_int) implement WITHVIEW = T_WITHTYPE (VIEW_int) implement WITHVIEWTYPE = T_WITHTYPE (VIEWT0YPE_int) (* ****** ****** *) implement ADDR = T_IDENT_alp "addr" implement ADDRAT = T_ADDRAT implement FOLD = T_IDENT_alp "fold" implement FOLDAT = T_FOLDAT implement FREE = T_IDENT_alp "free" implement FREEAT = T_FREEAT (* ****** ****** *) implement DLRDELAY = T_DLRDELAY(TYPE_int) implement DLRLDELAY = T_DLRDELAY(VIEWTYPE_int) (* ****** ****** *) // implement DLREFFMASK = T_DLREFFMASK () // implement DLREFFMASK_NTM = T_DLREFFMASK_ARG (0) implement DLREFFMASK_EXN = T_DLREFFMASK_ARG (1) implement DLREFFMASK_REF = T_DLREFFMASK_ARG (2) implement DLREFFMASK_WRT = T_DLREFFMASK_ARG (3) implement DLREFFMASK_ALL = T_DLREFFMASK_ARG (4) // (* ****** ****** *) implement DLRLST = T_DLRLST (~1) // unspecified implement DLRLST_T = T_DLRLST (TYPE_int) implement DLRLST_VT = T_DLRLST (VIEWTYPE_int) (* ****** ****** *) implement DLRREC = T_DLRREC (TYRECKIND_box) // unspecified implement DLRREC_T = T_DLRREC (TYRECKIND_box_t) implement DLRREC_VT = T_DLRREC (TYRECKIND_box_vt) implement DLRTUP = T_DLRTUP (TYTUPKIND_box) // unspecified implement DLRTUP_T = T_DLRTUP (TYTUPKIND_box_t) implement DLRTUP_VT = T_DLRTUP (TYTUPKIND_box_vt) (* ****** ****** *) implement DLRVCOPYENV_V = T_DLRVCOPYENV (VIEW_int) implement DLRVCOPYENV_VT = T_DLRVCOPYENV (VIEWTYPE_int) (* ****** ****** *) implement INTZERO = T_INT (10(*base*), "0", 0u(*sfx*)) (* ****** ****** *) implement tnode_is_comment (x) = case+ x of | T_COMMENT_line () => true | T_COMMENT_rest () => true | T_COMMENT_block () => true | _ (*non-T_COMMENT_...*)=> false // end of [tnode_is_comment] (* ****** ****** *) local %{^ typedef ats_ptr_type string ; typedef ats_ptr_type tnode ; %} // end of [%{^] staload "libats/SATS/hashtable_linprb.sats" staload _(*anon*) = "libats/DATS/hashtable_linprb.dats" // #define HASHTBLSZ 193 // symintr encode decode // abstype string_t = $extype"string" extern castfn string_encode (x: string):<> string_t extern castfn string_decode (x: string_t):<> string overload encode with string_encode overload decode with string_decode // abstype tnode_t = $extype"tnode" extern castfn tnode_encode (x: tnode):<> tnode_t extern castfn tnode_decode (x: tnode_t):<> tnode overload encode with tnode_encode overload decode with tnode_decode // typedef key = string_t typedef itm = tnode_t typedef keyitm = (key, itm) // implement keyitem_nullify (x) = () where { // extern prfun __assert (x: &keyitm? >> keyitm): void // end of [prfun] prval () = __assert (x) // val () = x.0 := $UN.cast{key}(null) prval () = Opt_some (x) // } (* end of [keyitem_nullify] *) // implement keyitem_isnot_null (x) = b where { // extern prfun __assert1 (x: &Opt(keyitm) >> keyitm): void prval () = __assert1 (x) // val b = $UN.cast{ptr}(x.0) <> null val [b:bool] b = bool1_of_bool (b) // extern prfun __assert2 (x: &keyitm >> opt (keyitm, b)): void prval () = __assert2 (x) // } (* end of [keyitem_isnot_null] *) // val hash0 = $UN.cast{hash(key)}(null) val eqfn0 = $UN.cast{eqfn(key)}(null) // implement hash_key (x, _) = string_hash_33 (decode(x)) // implement equal_key_key (x1, x2, _) = compare(decode(x1), decode(x2)) = 0 // val [l:addr] ptbl = hashtbl_make_hint (hash0, eqfn0, HASHTBLSZ) // fun insert ( ptbl: !HASHTBLptr (key, itm, l) , k: string, i: tnode ) : void = () where { val k = encode (k); val i = encode (i) var res: tnode_t val _ = hashtbl_insert (ptbl, k, i, res) prval () = opt_clear (res) } // end of [insert] // macdef ins (k, i) = insert (ptbl, ,(k), ,(i)) // val () = ins ("@", T_AT) val () = ins ("!", T_BANG) val () = ins ("|", T_BAR) val () = ins ("`", T_BQUOTE) val () = ins (":", T_COLON) val () = ins ("$", T_DOLLAR) val () = ins (".", T_DOT) val () = ins ("=", T_EQ) val () = ins ("#", T_HASH) val () = ins ("~", T_TILDE) // val () = ins ("..", T_DOTDOT) val () = ins ("...", T_DOTDOTDOT) // val () = ins ("=>", T_EQGT) val () = ins ("=<", T_EQLT) val () = ins ("=<>", T_EQLTGT) val () = ins ("=/=>", T_EQSLASHEQGT) val () = ins ("=>>", T_EQGTGT) val () = ins ("=/=>>", T_EQSLASHEQGTGT) // val () = ins ("<", T_LT) // opening a tmparg val () = ins (">", T_GT) // closing a tmparg // val () = ins ("><", T_GTLT) // val () = ins (".<", T_DOTLT) val () = ins (">.", T_GTDOT) // val () = ins (".<>.", T_DOTLTGTDOT) // val () = ins ("->", T_MINUSGT) val () = ins ("-<", T_MINUSLT) val () = ins ("-<>", T_MINUSLTGT) // (* val () = ins (":<", T_COLONLT) *) // val () = ins ("absprop", ABSPROP) val () = ins ("absview", ABSVIEW) // val () = ins ("abstype", ABSTYPE) val () = ins ("abst0ype", ABST0YPE) // val () = ins ("absvtype", ABSVIEWTYPE) val () = ins ("absviewtype", ABSVIEWTYPE) // val () = ins ("absvt0ype", ABSVIEWT0YPE) val () = ins ("absviewt0ype", ABSVIEWT0YPE) // val () = ins ("abstbox", ABSTYPE) val () = ins ("abstflt", ABST0YPE) val () = ins ("abstflat", ABST0YPE) val () = ins ("absvtbox", ABSVIEWTYPE) val () = ins ("absvtflt", ABSVIEWT0YPE) val () = ins ("absvtflat", ABSVIEWT0YPE) // val () = ins ("assume", T_ASSUME) val () = ins ("reassume", T_REASSUME) // val () = ins ("absimpl", T_ASSUME) val () = ins ("absreimpl", T_REASSUME) // val () = ins ("as", T_AS) // val () = ins ("and", T_AND) // val () = ins ("begin", T_BEGIN) // (* val () = ins ("case", CASE) *) // val () = ins ("classdec", T_CLASSDEC) // val () = ins ("datasort", T_DATASORT) // val () = ins ("datatype", DATATYPE) val () = ins ("dataprop", DATAPROP) val () = ins ("dataview", DATAVIEW) val () = ins ("datavtype", DATAVTYPE) val () = ins ("dataviewtype", DATAVTYPE) // val () = ins ("do", T_DO) // val () = ins ("end", T_END) // val () = ins ("extern", T_EXTERN) val () = ins ("extype", T_EXTYPE) val () = ins ("extvar", T_EXTVAR) // val () = ins ("exception", T_EXCEPTION) // val () = ins ("fn", FN) // non-recursive val () = ins ("fnx", FNX) // mutual tail-rec. val () = ins ("fun", FUN) // general-recursive // val () = ins ("prfn", PRFN) val () = ins ("prfun", PRFUN) // val () = ins ("praxi", PRAXI) val () = ins ("castfn", CASTFN) // val () = ins ("if", T_IF) val () = ins ("then", T_THEN) val () = ins ("else", T_ELSE) // val () = ins ("ifcase", T_IFCASE) // val () = ins ("in", T_IN) // val () = ins ("infix", INFIX) val () = ins ("infixl", INFIXL) val () = ins ("infixr", INFIXR) val () = ins ("prefix", PREFIX) val () = ins ("postfix", POSTFIX) // val () = ins ("implmnt", IMPLMNT) // 0 val () = ins ("implement", IMPLEMENT) // 1 // val () = ins ("primplmnt", PRIMPLMNT) // ~1 val () = ins ("primplement", PRIMPLMNT) // ~1 // val () = ins ("import", T_IMPORT) // for importing packages // (* val () = ins ("lam", LAM) val () = ins ("llam", LLAM) val () = ins ("fix", FIX) *) // val () = ins ("let", T_LET) // val () = ins ("local", T_LOCAL) // val () = ins ("macdef", MACDEF) val () = ins ("macrodef", MACRODEF) // val () = ins ("nonfix", T_NONFIX) // val () = ins ("symelim", T_SYMELIM) val () = ins ("symintr", T_SYMINTR) val () = ins ("symload", T_SYMLOAD) val () = ins ("overload", T_SYMLOAD) // first-used val () = ins ("#symload", T_SYMLOAD) // ATS-Xanadu // val () = ins ("of", T_OF) val () = ins ("op", T_OP) // val () = ins ("rec", T_REC) // val () = ins ("sif", T_SIF) val () = ins ("scase", T_SCASE) // val () = ins ("sortdef", T_SORTDEF) (* // HX: [sta] is now deprecated *) val () = ins ("sta", T_STACST) (* val () = ins ("dyn", T_DYNCST) // not in use *) // val () = ins ("stacst", T_STACST) val () = ins ("stadef", T_STADEF) val () = ins ("static", T_STATIC) (* val () = ins ("stavar", T_STAVAR) *) // // HX-2019-01-17: // val () = ins ("sexpdef", T_STADEF) // ATS-Xanadu // val () = ins ("try", T_TRY) // val () = ins ("tkindef", T_TKINDEF) // HX-2012-05-23 // (* val () = ins ("type", TYPE) *) val () = ins ("typedef", TYPEDEF) val () = ins ("propdef", PROPDEF) val () = ins ("viewdef", VIEWDEF) val () = ins ("vtypedef", VIEWTYPEDEF) val () = ins ("viewtypedef", VIEWTYPEDEF) // (* val () = ins ("val", VAL) *) val () = ins ("prval", PRVAL) // val () = ins ("var", VAR) val () = ins ("prvar", PRVAR) // val () = ins ("when", T_WHEN) val () = ins ("where", T_WHERE) // (* val () = ins ("for", T_FOR) val () = ins ("while", T_WHILE) *) // val () = ins ("with", T_WITH) // val () = ins ("withtype", WITHTYPE) val () = ins ("withprop", WITHPROP) val () = ins ("withview", WITHVIEW) val () = ins ("withvtype", WITHVIEWTYPE) val () = ins ("withviewtype", WITHVIEWTYPE) // val () = ins ("$delay", DLRDELAY) val () = ins ("$ldelay", DLRLDELAY) // val () = ins ("$arrpsz", T_DLRARRPSZ) val () = ins ("$arrptrsize", T_DLRARRPSZ) // val () = ins ("$tyrep", T_DLRTYREP) val () = ins ("$d2ctype", T_DLRD2CTYPE) // val () = ins ("$effmask", DLREFFMASK) val () = ins ("$effmask_ntm", DLREFFMASK_NTM) val () = ins ("$effmask_exn", DLREFFMASK_EXN) val () = ins ("$effmask_ref", DLREFFMASK_REF) val () = ins ("$effmask_wrt", DLREFFMASK_WRT) val () = ins ("$effmask_all", DLREFFMASK_ALL) // val () = ins ("$extern", T_DLREXTERN) val () = ins ("$extkind", T_DLREXTKIND) val () = ins ("$extype", T_DLREXTYPE) val () = ins ("$extype_struct", T_DLREXTYPE_STRUCT) // val () = ins ("$extval", T_DLREXTVAL) val () = ins ("$extfcall", T_DLREXTFCALL) val () = ins ("$extmcall", T_DLREXTMCALL) // val () = ins ("$literal", T_DLRLITERAL) // val () = ins ("$myfilename", T_DLRMYFILENAME) val () = ins ("$mylocation", T_DLRMYLOCATION) val () = ins ("$myfunction", T_DLRMYFUNCTION) // val () = ins ("$lst", DLRLST) val () = ins ("$lst_t", DLRLST_T) val () = ins ("$lst_vt", DLRLST_VT) val () = ins ("$list", DLRLST) val () = ins ("$list_t", DLRLST_T) val () = ins ("$list_vt", DLRLST_VT) // val () = ins ("$rec", DLRREC) val () = ins ("$rec_t", DLRREC_T) val () = ins ("$rec_vt", DLRREC_VT) val () = ins ("$record", DLRREC) val () = ins ("$record_t", DLRREC_T) val () = ins ("$record_vt", DLRREC_VT) // val () = ins ("$tup", DLRTUP) val () = ins ("$tup_t", DLRTUP_T) val () = ins ("$tup_vt", DLRTUP_VT) val () = ins ("$tuple", DLRTUP) val () = ins ("$tuple_t", DLRTUP_T) val () = ins ("$tuple_vt", DLRTUP_VT) // val () = ins ("$break", T_DLRBREAK) val () = ins ("$continue", T_DLRCONTINUE) // val () = ins ("$raise", T_DLRRAISE) // val () = ins ("$vararg", T_DLRVARARG) // val () = ins ("$vcopyenv_v", DLRVCOPYENV_V) val () = ins ("$vcopyenv_vt", DLRVCOPYENV_VT) // val () = ins ("$showtype", T_DLRSHOWTYPE) // val () = ins ("$tempenver", T_DLRTEMPENVER) // val () = ins ("$solver_assert", T_DLRSOLASSERT) val () = ins ("$solver_verify", T_DLRSOLVERIFY) // val () = ins ("#if", T_SRPIF) val () = ins ("#ifdef", T_SRPIFDEF) val () = ins ("#ifndef", T_SRPIFNDEF) // val () = ins ("#then", T_SRPTHEN) // val () = ins ("#elif", T_SRPELIF) val () = ins ("#elifdef", T_SRPELIFDEF) val () = ins ("#elifndef", T_SRPELIFNDEF) // val () = ins ("#else", T_SRPELSE) val () = ins ("#endif", T_SRPENDIF) // val () = ins ("#error", T_SRPERROR) // val () = ins ("#prerr", T_SRPPRERR) // outpui to stderr val () = ins ("#print", T_SRPPRINT) // output to stdout // val () = ins ("#assert", T_SRPASSERT) // val () = ins ("#undef", T_SRPUNDEF) val () = ins ("#define", T_SRPDEFINE) // val () = ins ("#include", T_SRPINCLUDE) // val () = ins ("staload", T_SRPSTALOAD) val () = ins ("#staload", T_SRPSTALOAD) // val () = ins ("dynload", T_SRPDYNLOAD) val () = ins ("#dynload", T_SRPDYNLOAD) // val () = ins ("#require", T_SRPREQUIRE) // val () = ins ("#pragma", T_SRPPRAGMA) // HX: general pragma val () = ins ("#codegen2", T_SRPCODEGEN2) // for level-2 codegen val () = ins ("#codegen3", T_SRPCODEGEN3) // for level-3 codegen // // HX: end of special tokens // val rtbl = HASHTBLref_make_ptr{key,itm}(ptbl) // in (* in of [local] *) // implement tnode_search (x) = let // var res: itm? // val (fptbl | ptbl) = HASHTBLref_takeout_ptr (rtbl) // val b = hashtbl_search (ptbl, encode(x), res) // prval ((*addback*)) = fptbl (ptbl) // in // if (b) then let prval () = opt_unsome{itm}(res) in decode(res) end // end of [then] else let prval () = opt_unnone{itm}(res) in T_NONE(*void*) end // end of [else] // end // end of [tnode_search] // end // end of [local] (* ****** ****** *) (* end of [pats_lexing_token.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_effect.dats0000644000175000017500000001236313431250607020616 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_effect" (* ****** ****** *) staload "./pats_effect.sats" (* ****** ****** *) assume effect_t0ype = uint (* ****** ****** *) // #define EFFntm 0 // nonterm #define EFFexn 1 // exception #define EFFref 2 // reference #define EFFwrt 3 // writeover // // HX-2012-03: // the maximal numberof effect is required to // strictly less than the size of unsigned int // as one bit is needed for the-rest-of-effects // #define MAX_EFFECT_NUMBER 4 // (* ****** ****** *) implement effect_ntm = (uint_of)EFFntm implement effect_exn = (uint_of)EFFexn implement effect_ref = (uint_of)EFFref implement effect_wrt = (uint_of)EFFwrt implement effectlst_all = '[ effect_ntm, effect_exn, effect_ref, effect_wrt ] // end of [effectlst_all] implement eq_effect_effect (eff1, eff2) = eq_uint_uint (eff1, eff2) (* ****** ****** *) implement effect_get_name (eff) = let // val eff = int_of(eff) // in case+ eff of | EFFntm => "ntm" | EFFexn => "exn" | EFFref => "ref" | EFFwrt => "wrt" | _ => let val () = assertloc (false) in $ERR.abort_interr((*deadcode*)) end // end of [_] end // end of [effect_get_name] (* ****** ****** *) implement fprint_effect (out, x) = fprint_string (out, effect_get_name (x)) (* ****** ****** *) assume effset_t0ype = uint (* ****** ****** *) // implement effset_nil = uint_of_int (0) // 0U implement effset_all = uint_of_int (~1) // 1...1U // implement effset_ntm = (1u << effect_ntm) implement effset_exn = (1u << effect_exn) implement effset_ref = (1u << effect_ref) implement effset_wrt = (1u << effect_wrt) // implement effset_sing (x) = (1u << x) // implement eq_effset_effset (efs1, efs2) = eq_uint_uint (efs1, efs2) // (* ****** ****** *) implement effset_add (xs, x) = xs lor (1u << x) implement effset_del (xs, x) = xs land ~(1u << x) (* ****** ****** *) implement effset_isnil (xs) = eq_effect_effect (xs, effset_nil) implement effset_isall (xs) = eq_effect_effect (xs, effset_all) implement effset_isfin (xs) = // finite (xs land (1u << MAX_EFFECT_NUMBER)) \eq_uint_uint 0u // end of [effset_isfin] implement effset_iscof (xs) = // cofinite (xs land (1u << MAX_EFFECT_NUMBER)) \lt_uint_uint 0u // end of [effset_iscof] (* ****** ****** *) implement effset_ismem (xs, x) = (xs land (1u << x)) > 0u implement effset_supset (xs1, xs2) = eq_uint_uint (~xs1 land xs2, 0u) // end of [effset_supset] implement effset_subset (xs1, xs2) = eq_uint_uint (xs1 land ~xs2, 0u) // end of [effset_subset] implement effset_is_inter (xs1, xs2) = ~effset_isnil (effset_inter (xs1, xs2)) // end of [effset_is_inter] implement effset_cmpl (xs) = lnot_uint (xs) implement effset_diff (xs1, xs2) = (xs1) land effset_cmpl(xs2) // end of [effset_diff] implement effset_inter (xs1, xs2) = xs1 land xs2 implement effset_union (xs1, xs2) = (xs1) lor (xs2) (* ****** ****** *) implement fprint_effset (out, efs) = let // fun loop ( out: FILEref , efs: effset, n: uint, i: uint, k: &int ) : void = let in // if i < n then let val isint = effset_is_inter (efs, effset_sing (i)) val () = if isint then { val () = if (k > 0) then fprint_string (out, ", ") val () = k := k + 1 val () = fprint_effect (out, i) } // end of [if] // end of [val] in loop (out, efs, n, i+1u, k) end // end of [if] // end // end of [loop] // var k: int = 0 // in // case+ 0 of | _ when effset_isnil(efs) => fprint_string (out, "0") | _ when effset_isall(efs) => fprint_string (out, "1") | _ => ( fprint_string (out, "["); loop (out, efs, (uint_of)MAX_EFFECT_NUMBER, 0u, k); fprint_string (out, "]"); ) (* end of [_] *) // end // end of [fprint_effset] implement print_effset (x) = fprint_effset (stdout_ref, x) implement prerr_effset (x) = fprint_effset (stderr_ref, x) (* ****** ****** *) (* end of [pats_effect.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_staexp.dats0000644000175000017500000006332613431250607022163 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans1_staexp" (* ****** ****** *) staload LOC = "./pats_location.sats" overload + with $LOC.location_combine staload SYM = "./pats_symbol.sats" // (* fun f (x: &int): void // read-only fun f (x: &?int): void // write-only fun f (x: &?!int): void // allowing both read and write *) macdef AMPERSAND = $SYM.symbol_AMPERSAND // & (r) macdef AMPERBANG = $SYM.symbol_AMPERBANG // &! (rw) macdef AMPERQMARK = $SYM.symbol_AMPERQMARK // &? (w) // macdef BACKSLASH = $SYM.symbol_BACKSLASH macdef BANG = $SYM.symbol_BANG macdef QMARK = $SYM.symbol_QMARK macdef QMARKBANG = $SYM.symbol_QMARKBANG macdef GTGT = $SYM.symbol_GTGT macdef MINUSGT = $SYM.symbol_MINUSGT // overload = with $SYM.eq_symbol_symbol // macdef fprint_symbol = $SYM.fprint_symbol // macdef symbol_get_name = $SYM.symbol_get_name // (* ****** ****** *) staload "./pats_effect.sats" staload "./pats_fixity.sats" staload "./pats_syntax.sats" staload "./pats_staexp1.sats" (* ****** ****** *) staload "./pats_trans1.sats" staload "./pats_trans1_env.sats" staload "./pats_e1xpval.sats" (* ****** ****** *) // macdef l2l(x) = list_of_list_vt(,(x)) macdef list_sing(x) = list_cons(,(x), list_nil()) // (* ****** ****** *) overload fprint with fprint_s0exp (* ****** ****** *) local // staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" // fun extprfx_add ( sym: symbol, pext: Ptr1 ) : string = let // val ext2 = $UN.cast{string}(pext+1) val ext2 = ( if string_is_empty(ext2) then symbol_get_name (sym) else ext2 // end of [if] ) : string // end of [val] // val opt = the_EXTERN_PREFIX_get() // end of [val] val issome = stropt_is_some(opt) // in // if issome then let val prfx = stropt_unsome(opt) val prfxext2 = sprintf ("%s%s", @(prfx, ext2)) // end of [val] in string_of_strptr(prfxext2) end // end of [then] else let (* // HX-2015-05: // Should a warning/error be reported? *) val prfxext2 = sprintf ("__ATS_EXTERN_PREFIX__%s", @(ext2)) // end of [val] in string_of_strptr(prfxext2) end // end of [else] // end // end of [extprfx_add] in (* in of [local] *) implement proc_extdef (sym, ext) = let // #define NUL '\000' // fun isemp (p: Ptr1): bool = $UN.ptrget (p) = NUL fun isperc (p: Ptr1): bool = $UN.ptrget (p) = '%' // val pext = $UN.cast2Ptr1 (ext) // in // case+ 0 of | _ when isemp(pext) => symbol_get_name(sym) | _ when isperc(pext) => extprfx_add(sym, pext) | _ (*non-special*) => ext // HX: no processing // end // end of [proc_extdef] end // end of [local] (* ****** ****** *) local // extern fun ismac ( ext: string, ext_new: &string ) : bool = "patsopt_extnam_ismac" extern fun issta ( ext: string, ext_new: &string ) : bool = "patsopt_extnam_issta" extern fun isext ( ext: string, ext_new: &string ) : bool = "patsopt_extnam_isext" // in (* in of [local] *) implement scstextdef_tr (s0c, sym, extopt) = let // (* // val () = print ("scstextdef_tr: sym = ...") val () = print ("scstextdef_tr: extopt = ...") // *) // macdef f(x) = proc_extdef(sym, ,(x)) // in // case+ extopt of // | None () => SCSTEXTDEFnone() // | Some (s0) => let val-$LEX.T_STRING(ext) = s0.token_node var ext2: string = (ext) // removing mac#, ext#, sta# in case+ 0 of | _ when isext(ext, ext2) => SCSTEXTDEFsome(f(ext2)) | _ (* rest-of-case *) => SCSTEXTDEFsome(f(ext2)) // no (recognized) prefix end // end of [_ when ...] // end // end of [scstextdef_tr] implement dcstextdef_tr (d0c, sym, extopt) = let // (* // val () = print ("dcstextdef_tr: sym = ...") val () = print ("dcstextdef_tr: extopt = ...") // *) // macdef f(x) = proc_extdef(sym, ,(x)) // in // case+ extopt of // | None () => DCSTEXTDEFnone(1) // extern // | Some (s0) => let val-$LEX.T_STRING(ext) = s0.token_node var ext2: string = (ext) // removing mac#, ext#, sta# in case+ 0 of | _ when ismac(ext, ext2) => DCSTEXTDEFsome_mac(f(ext2)) | _ when issta(ext, ext2) => DCSTEXTDEFsome_sta(f(ext2)) | _ when isext(ext, ext2) => DCSTEXTDEFsome_ext(f(ext2)) | _ (* rest-of-case *) => DCSTEXTDEFsome_ext(f(ext2)) // no (recognized) prefix end // end of [_ when ...] // end // end of [dcstextdef_tr] end // end of [local] (* ****** ****** *) implement s0arg_tr (x) = let val res = s0rtopt_tr (x.s0arg_srt) in s1arg_make (x.s0arg_loc, x.s0arg_sym, res) end // end of [s0arg_tr] implement s0arglst_tr (xs) = l2l (list_map_fun (xs, s0arg_tr)) implement s0marg_tr (x) = let val loc = x.s0marg_loc val arg = s0arglst_tr (x.s0marg_arg) in s1marg_make (loc, arg) end // end of [s0marg_tr] implement s0marglst_tr (xss) = l2l (list_map_fun (xss, s0marg_tr)) (* ****** ****** *) implement s0vararg_tr (s0v) = case+ s0v of | S0VARARGseq (loc, s0as) => S1VARARGseq (loc, s0arglst_tr s0as) | S0VARARGone (tok) => S1VARARGone (tok.token_loc) | S0VARARGall (tok) => S1VARARGall (tok.token_loc) // end of [s0vararg_tr] implement s0vararglst_tr (s0vs) = l2l (list_map_fun (s0vs, s0vararg_tr)) (* ****** ****** *) // // HX: translation of static expressions // typedef s1expitm = fxitm (s1exp) typedef s1expitmlst = List s1expitm (* ****** ****** *) local fn appf ( _fun: s1exp, _arg: s1exp ) : s1expitm = let val loc_arg = _arg.s1exp_loc val loc = _fun.s1exp_loc + loc_arg val xs_arg = ( case+ _arg.s1exp_node of | S1Elist(npf, s1es) => s1es // HX: should npf <= 0 be enforced? | _ (* non-S1Elist *) => list_sing (_arg) ) : s1explst // end of [val] val s1e_app = s1exp_app (loc, _fun, loc_arg, xs_arg) in FXITMatm (s1e_app) end // end of [appf] in (* in of [local] *) fn s1expitm_app (loc: location): s1expitm = fxitm_app (loc, appf) // end of [s1expitm_app] end // end of [local] fn s1exp_get_loc (x: s1exp): location = x.s1exp_loc fn s1exp_make_opr ( opr: s1exp, f: fxty ) : s1expitm = begin fxopr_make {s1exp} ( s1exp_get_loc , lam (loc, x, loc_arg, xs) => s1exp_app (loc, x, loc_arg, xs) , opr, f ) // end of [oper_make] end // end of [s1exp_make_opr] fn s1expitm_backslash (loc_opr: location) = begin fxopr_make_backslash {s1exp} ( lam x => x.s1exp_loc , lam (loc, x, loc_arg, xs) => s1exp_app (loc, x, loc_arg, xs) , loc_opr ) // end of [oper_make_backslash] end // end of [s1expitm_backslash] (* ****** ****** *) fn s0qua_tr (s0q: s0qua): s1qua = case+ s0q.s0qua_node of | S0QUAprop (s0p) => s1qua_prop (s0q.s0qua_loc, s0exp_tr s0p) | S0QUAvars ( id, ids, s0te ) => ( s1qua_vars (s0q.s0qua_loc, list_cons (id, ids), s0rtext_tr s0te) ) // end of [S0QUAvars] // end of [s0qua_tr] implement s0qualst_tr (xs) = l2l (list_map_fun (xs, s0qua_tr)) implement s0qualstlst_tr (xss) = l2l (list_map_fun (xss, s0qualst_tr)) (* ****** ****** *) local fn s0exp_tr_errmsg_opr (s0e0: s0exp): s1exp = let val loc0 = s0e0.s0exp_loc val () = prerr_error1_loc (loc0) val () = prerrln! (": the operator needs to be applied.") val () = the_trans1errlst_add (T1E_s0exp_tr(s0e0)) in s1exp_err (loc0) end // end of [s0exp_tr_errmsg_opr] fn aux_extarg (s0e: s0exp): s1explst = let val s1e = s0exp_tr (s0e) in case+ s1e.s1exp_node of | S1Elist (_(*npf*), s1es) => s1es | _ => list_sing (s1e) end // end of [aux_extarg] in (* in of [local] *) implement s0exp_tr s0e0 = let // #define :: list_cons // fun aux_item ( s0e0: s0exp ) : s1expitm = let // val loc0 = s0e0.s0exp_loc // in // case+ s0e0.s0exp_node of (* case+ *) // | S0Eide id when id = AMPERSAND => let fn f ( s1e: s1exp ) : s1expitm = let val loc = loc0 + s1e.s1exp_loc in FXITMatm (s1exp_invar (loc, 1(*ref:r*), s1e)) end // end of [f] in FXITMopr (loc0, FXOPRpre (invar_prec_sta, f)) end // end of [S0Eide when ...] | S0Eide id when id = AMPERQMARK => let fn f ( s1e: s1exp ) : s1expitm = let val loc = loc0 + s1e.s1exp_loc in FXITMatm (s1exp_invar (loc, 2(*ref:w*), s1e)) end // end of [f] in FXITMopr (loc0, FXOPRpre (invar_prec_sta, f)) end // end of [S0Eide when ...] | S0Eide id when id = AMPERBANG => let fn f ( s1e: s1exp ) : s1expitm = let val loc = loc0 + s1e.s1exp_loc in FXITMatm (s1exp_invar (loc, 3(*ref:rw*), s1e)) end // end of [f] in FXITMopr (loc0, FXOPRpre (invar_prec_sta, f)) end // end of [S0Eide when ...] // | S0Eide id when id = BACKSLASH => s1expitm_backslash (loc0) // end of [BACKSLASH] // | S0Eide id when id = BANG => let fn f ( s1e: s1exp ) : s1expitm = let val loc = loc0 + s1e.s1exp_loc in FXITMatm (s1exp_invar (loc, 0(*val*), s1e)) end // end of [f] in FXITMopr (loc0, FXOPRpre (invar_prec_sta, f)) end // end of [S0Eide when ...] // | S0Eide id when id = QMARK => let fn f ( s1e: s1exp ) : s1expitm = let val loc = s1e.s1exp_loc + loc0 in FXITMatm (s1exp_top (loc0, 0(*knd*), s1e)) end // end of [f] in FXITMopr (loc0, FXOPRpos (qmark_prec_sta, f)) end // end of [S0Eide when ...] | S0Eide id when id = QMARKBANG => let fn f ( s1e: s1exp ) : s1expitm = let val loc = s1e.s1exp_loc + loc0 in FXITMatm (s1exp_top (loc0, 1(*knd*), s1e)) end // end of [f] in FXITMopr (loc0, FXOPRpos (qmarkbang_prec_sta, f)) end // end of [S0Eide when ...] // | S0Eide id when id = GTGT => let fn f ( s1e1: s1exp , s1e2: s1exp ) : s1expitm = let val loc = s1e1.s1exp_loc + s1e2.s1exp_loc in FXITMatm (s1exp_trans (loc, s1e1, s1e2)) end // end of [f] in FXITMopr (loc0, FXOPRinf (trans_prec_sta, ASSOCnon, f)) end // end of [S0Eide when ...] // | S0Eide (id) => let val s1e = s1exp_ide (loc0, id) // end of [val] in case+ the_fxtyenv_find id of | ~Some_vt f => s1exp_make_opr (s1e, f) | ~None_vt () => FXITMatm (s1e) // end of [case] end // end of [S0Eide] // | S0Eopid (id) => FXITMatm (s1exp_ide (loc0, id)) | S0Esqid (sq, id) => FXITMatm (s1exp_sqid (loc0, sq, id)) // | S0Eint (int) => FXITMatm (s1exp_i0nt (loc0, int)) | S0Echar (char) => FXITMatm (s1exp_c0har (loc0, char)) // | S0Efloat (ftok) => FXITMatm (s1exp_f0loat (loc0, ftok)) | S0Estring (stok) => FXITMatm (s1exp_s0tring (loc0, stok)) // | S0Eextype (name, s0es) => let val s1ess = list_map_fun (s0es, aux_extarg) in FXITMatm (s1exp_extype (loc0, name, (l2l)s1ess)) end // end of [S0Eextype] // | S0Eextkind (name, s0es) => let val s1ess = list_map_fun (s0es, aux_extarg) in FXITMatm (s1exp_extkind (loc0, name, (l2l)s1ess)) end // end of [S0Eextkind] // | S0Eapp _ => let val s1e_app = fixity_resolve ( loc0, s1exp_get_loc, s1expitm_app (loc0), aux_itemlst s0e0 ) // end of [val] in FXITMatm (s1e_app) end // end of [S0Eapp] | S0Elam (arg, res, body) => let val arg = s0marg_tr arg val res = s0rtopt_tr res val body = s0exp_tr body val s1e_lam = s1exp_lam (loc0, arg, res, body) (* val () = println! ("s0exp_tr: S0Elam: s1e_lam = ", s1e_lam) // end of [val] *) in FXITMatm (s1e_lam) end // end of [S0Elam] | S0Eimp tags => let val ( ofc, lin, prf, efc ) = e0fftaglst_tr (tags) // val fc = ( case+ ofc of | Some(fc) => fc | None() => FUNCLOfun () // default is [function] ) : funclo // end of [val] (* val () = begin print "s0exp_tr: S0Eimp: efc = "; print_effcst efc; print_newline () end // end of [val] *) // val- ~Some_vt(f) = the_fxtyenv_find(MINUSGT) val s1e_imp = s1exp_imp(loc0, fc, lin, prf, Some efc) // in s1exp_make_opr(s1e_imp, f) end // end of [S0Eimp] // | S0Elist (s0es) => let val s1es = s0explst_tr s0es in FXITMatm (s1exp_list (loc0, s1es)) end // end of [S0Elist] | S0Elist2 (s0es1, s0es2) => let val s1es1 = list_map_fun (s0es1, s0exp_tr) val s1es2 = list_map_fun (s0es2, s0exp_tr) in FXITMatm (s1exp_list2 (loc0, s1es1, s1es2)) end // end of [S0Elist2] // | S0Etyarr (s0e_elt, s0es_dim) => let val s1e_elt = s0exp_tr (s0e_elt) val s1es_dim = s0explst_tr (s0es_dim) in FXITMatm (s1exp_tyarr (loc0, s1e_elt, s1es_dim)) end // end of [S0Etyarr] | S0Etytup (knd, npf, s0es) => let val s1es = s0explst_tr (s0es) in FXITMatm (s1exp_tytup (loc0, knd, npf, s1es)) end // end of [S0Etytup] | S0Etyrec (knd, npf, ls0es) => let val ls1es = l2l (list_map_fun (ls0es, labs0exp_tr)) in FXITMatm (s1exp_tyrec (loc0, knd, npf, ls1es)) end // end of [S0Etyrec] | S0Etyrec_ext (name, npf, ls0es) => let val ls1es = l2l (list_map_fun (ls0es, labs0exp_tr)) in FXITMatm (s1exp_tyrec_ext (loc0, name, npf, ls1es)) end // end of [S0Etyrec] // | S0Euni (s0qs) => let val s1qs = s0qualst_tr s0qs fn f ( body: s1exp ) : s1expitm = let val loc1 = loc0 + body.s1exp_loc in FXITMatm (s1exp_uni (loc1, s1qs, body)) end // end of [f] in FXITMopr (loc0, FXOPRpre (uni_prec_sta, f)) end // end of [S0Euni] | S0Eexi ( knd(*funres*), s0qs ) => let val s1qs = s0qualst_tr s0qs fn f ( body: s1exp ) : s1expitm = let val loc1 = loc0 + body.s1exp_loc in FXITMatm (s1exp_exi (loc1, knd, s1qs, body)) end // end of [f] in FXITMopr (loc0, FXOPRpre (exi_prec_sta, f)) end // end of [S0Eexi] // | S0Eann (s0e, s0t) => let val s1t = s0rt_tr (s0t) val s1e = s0exp_tr (s0e) in FXITMatm (s1exp_ann (loc0, s1e, s1t)) end // end of [S0Eann] // | S0Ed2ctype (d2ctp) => let val d2ctp = S0Ed2ctype_tr(d2ctp) in FXITMatm (s1exp_d2ctype(loc0, d2ctp)) end // end of [S0Ed2ctype] (* | _ (*rest-of-s0exp*) => let val () = fprintln! ( stdout_ref, "s0exp_tr: aux_item: s0e0 = ", s0e0 ) (* end of [fprintln!] *) val () = assertloc (false) in $ERR.abort_interr((*deadcode*)) end (* end of [_] *) *) // end // end of [aux_item] // and aux_itemlst (s0e0: s0exp): s1expitmlst = let fun loop (s0e0: s0exp, res: s1expitmlst): s1expitmlst = case+ s0e0.s0exp_node of | S0Eapp (s0e1, s0e2) => let val res = aux_item s0e2 :: res in loop (s0e1, res) end // end of [S0Eapp] | _ => aux_item s0e0 :: res // end of [loop] in loop (s0e0, list_nil ()) end // end of [aux_itemlist] // in // case+ aux_item (s0e0) of | FXITMatm (s1e) => s1e | FXITMopr _ => s0exp_tr_errmsg_opr (s0e0) // end // end of [s0exp_tr] end // end of [local] (* ****** ****** *) implement s0explst_tr (xs) = l2l (list_map_fun (xs, s0exp_tr)) implement s0expopt_tr (opt) = case+ opt of | Some x => Some (s0exp_tr (x)) | None () => None () // end of [s0expopt_tr] (* ****** ****** *) implement labs0exp_tr (x) = let val+SL0ABELED (l, name, s0e) = x in labs1exp_make (l, name, s0exp_tr (s0e)) end // end of [labs0exp_tr] (* ****** ****** *) implement s0rtext_tr (s0te) = let val loc = s0te.s0rtext_loc in // case+ s0te.s0rtext_node of | S0TEsrt s0t => s1rtext_srt (loc, s0rt_tr s0t) | S0TEsub (id, s0te, s0p, s0ps) => let val s1te = s0rtext_tr s0te val s1p = s0exp_tr s0p and s1ps = s0explst_tr s0ps in s1rtext_sub (loc, id.i0de_sym, s1te, list_cons (s1p, s1ps)) end // end // end of [s0rtext_tr] (* ****** ****** *) implement witht0ype_tr (x) = case+ x of | WITHT0YPEsome (knd, s0e) => WITHT1YPEsome (knd, s0exp_tr (s0e)) | WITHT0YPEnone () => WITHT1YPEnone () // end of [witht0ype_tr] (* ****** ****** *) implement q0marg_tr (x) = q1marg_make (x.q0marg_loc, s0qualst_tr (x.q0marg_arg)) // end of [q0marg_tr] implement q0marglst_tr (xs) = l2l (list_map_fun (xs, q0marg_tr)) (* ****** ****** *) implement i0mparg_tr (x) = case+ x of | I0MPARG_sarglst (s0as) => i1mparg_sarglst (s0arglst_tr s0as) | I0MPARG_svararglst (s0vs) => i1mparg_svararglst (s0vararglst_tr s0vs) // end of [i0mparg_tr] (* ****** ****** *) implement t0mpmarg_tr (x) = t1mpmarg_make (x.t0mpmarg_loc, s0explst_tr (x.t0mpmarg_arg)) // end of [t0mpmarg_tr] (* ****** ****** *) // (* implement a0typ_tr(x) = s0exp_tr(x.a0typ_typ) *) implement a0typ_tr(x) = let // val opt = x.a0typ_sym val s1e = s0exp_tr(x.a0typ_typ) // in // case+ opt of | None() => s1e | Some(id) => ( case+ s1e.s1exp_node of (* case+ *) | S1Elist(npf, s1es) => s1exp_tytup(s1e.s1exp_loc, 0(*knd*), npf, s1es) | _(* non-S1Elist *) => s1e ) // end // end of [a0typ_tr] // implement a0typlst_tr(xs) = l2l(list_map_fun (xs, a0typ_tr)) // (* ****** ****** *) implement sp0at_tr (sp0t) = ( case+ sp0t.sp0at_node of | SP0Tcstr (qid, s0as) => let val s1as = s0arglst_tr s0as in sp1at_cstr (sp0t.sp0at_loc, qid.sqi0de_qua, qid.sqi0de_sym, s1as) end // end of [SP0Tcon] ) // end of [sp0at_tr] (* ****** ****** *) implement s0exparg_tr (loc, s0a) = case+ s0a of | S0EXPARGone () => s1exparg_one (loc) | S0EXPARGall () => s1exparg_all (loc) | S0EXPARGseq (s0as) => s1exparg_seq (loc, s0explst_tr s0as) // end of [s0exparg_tr] (* ****** ****** *) // // HX: two or more groups of static arguments are merged into one // implement m0acarglst_tr (m0as) = let in // case+ m0as of | list_cons (m0a, m0as) => let val loc = m0a.m0acarg_loc val m1a = ( case+ m0a.m0acarg_node of | M0ACARGdyn (ids) => m1acarg_make_dyn (loc, ids) | M0ACARGsta (s0as) => let val s1as = s0arglst_tr (s0as) in m1acarg_make_sta (loc, s1as) end // end of [M0ACARGsta] ) : m1acarg // end of [val] val m1as = m0acarglst_tr (m0as) in case+ m1a.m1acarg_node of | M1ACARGdyn _ => list_cons (m1a, m1as) | M1ACARGsta (s1as) => ( case+ m1as of | list_cons (m1a2, m1as2) => ( case+ m1a2.m1acarg_node of | M1ACARGsta (s1as2) => let val s1as = list_append (s1as, s1as2) val loc = $LOC.location_combine (loc, m1a2.m1acarg_loc) val m1a = m1acarg_make_sta (loc, s1as) in list_cons (m1a, m1as2) end // end of [M1ACARGsta] | _ => list_cons (m1a, m1as) ) // end of [list_cons] | list_nil () => list_sing (m1a) ) end // end of [list_cons] | list_nil () => list_nil () // end // end of [m0acarglst_tr] (* ****** ****** *) implement d0atcon_tr(d0c) = let // val sym = d0c.d0atcon_sym val qua = d0c.d0atcon_qua val qua = q0marglst_tr (qua) (* // val () = ( print "d0atcon_tr: id = "; fprint_symbol (stdout_ref, sym); print_newline (); print "d0atcon_tr: qua = "; fprint_q1marglst (stdout_ref, qua); print_newline (); ) (* end of [val] *) // *) var npf0: int = ~1 // HX: default val arg = ( // case+ d0c.d0atcon_arg of // case+ // | Some s0e => let val s1e = s0exp_tr s0e in case+ s1e.s1exp_node of // case+ | S1Elist(npf, s1es) => (npf0 := npf; s1es) | _ (* non-S1Elist *) => list_cons(s1e, list_nil()) end // end of [Some] // | None((*void*)) => list_nil() // ) : s1explst // val ind = d0c.d0atcon_ind val ind = ( case+ ind of | Some s0e => let val s1es = ( case+ s0e.s0exp_node of | S0Elist (s0es) => s0explst_tr (s0es) | _(*non-S0Elist*) => let val () = prerr_interror() // end of [val] val () = prerrln!(": d0atcon_tr: index is required to be a list.") // end of [val] in $ERR.abort_interr{s1explst}((*reachable*)) end // end of [_] ) : s1explst // end of [val] in Some s1es end // end of [Some] | None () => None () // end of [None] ) : s1explstopt // end of [val] // in d1atcon_make(d0c.d0atcon_loc, sym, qua, npf0, arg, ind) end // end of [d0atcon_tr] (* ****** ****** *) local // // defining [d0cstdec_tr] // #define nil list_nil #define :: list_cons // fun aux1 ( d0c: d0cstdec , fc: funclo, lin: int, prf: int , efcopt: effcstopt , fst: int, lst: &int , xs: d0cstarglst , s1e_res: s1exp ) : s1exp = begin case+ xs of | x :: xs => begin case+ x.d0cstarg_node of | D0CSTARGdyn (npf, ys) => let val loc_x = x.d0cstarg_loc val s1e_arg = s1exp_npf_list (loc_x, npf, a0typlst_tr ys) val s1e_res = aux1 (d0c, fc, lin, prf, efcopt, fst+1, lst, xs, s1e_res) val loc_res = s1e_res.s1exp_loc val loc = loc_x + loc_res val fc = (if fst > 0 then FUNCLOcloref else fc): funclo val imp = ( if lst > 0 then begin s1exp_imp (loc_res, fc, 0, 0, None ()) end else begin s1exp_imp (loc_res, fc, lin, prf, efcopt) end // end of [if] ) : s1exp // end of [val] val () = lst := lst + 1 in s1exp_app (loc, imp, loc, s1e_arg :: s1e_res :: nil ()) end // end of [D0CSTARGdyn2] | D0CSTARGsta (s0qs) => let val loc_x = x.d0cstarg_loc val s1qs = s0qualst_tr s0qs val s1e_res = aux1 (d0c, fc, lin, prf, efcopt, fst, lst, xs, s1e_res) val loc_res = s1e_res.s1exp_loc val loc = loc_x + loc_res // var err: int = 0 val () = (case+ efcopt of | Some _ => if lst = 0 then (err := err + 1) | None _ => () ) : void // end of [val] val () = if err > 0 then let val () = prerr_error1_loc (loc) val () = prerrln! (": illegal use of effect annotation") val () = the_trans1errlst_add (T1E_d0cstdec_tr(d0c)) in // nothing end // end of [val] // in s1exp_uni (loc, s1qs, s1e_res) end (* end of [D0CSTARGsta] *) end (* end of [::] *) | nil () => s1e_res // end of [nil] end // end of [aux1] // fun aux2 .<>. ( d0c: d0cstdec , isfun: bool , isprf: bool , xs: d0cstarglst , otags: Option e0fftaglst , s1e_res: s1exp ) : s1exp = let var fc: funclo = FUNCLOfun () var lin: int = 0 and prf: int = (if isprf then 1 else 0): int var efcopt: effcstopt = None () val () = case+ otags of | Some tags => let val (ofc1, lin1, prf1, efc1) = e0fftaglst_tr (tags) val () = case+ ofc1 of | Some fc1 => fc := fc1 | None () => () // end of [val] in lin := lin1; prf := prf + prf1; efcopt := Some efc1 end // end of [Some] | None () => () // end of [None] // end of [val] val () = (case+ fc of | FUNCLOclo knd => begin if knd <> CLOREF then let // val loc0 = d0c.d0cstdec_loc val () = prerr_error1_loc (loc0) val () = if knd = 0 then { val () = prerr ": a closure struct is not allowed at the toplevel." } // end of [val] val () = if knd = 1 then { val () = prerr ": a closure pointer is not allowed at the toplevel." } // end of [val] val () = prerr_newline () val () = the_trans1errlst_add (T1E_d0cstdec_tr (d0c)) // in // nothing end // end of [if] end // end of [FUNCLOclo] | FUNCLOfun ((*void*)) => () // end of [FUNCLOfun] ) : void // end of [val] var lst: int = 0 in aux1 (d0c, fc, lin, prf, efcopt, 0, lst, xs, s1e_res) end // end of [aux2] // fn d0cstdec_tr ( isfun: bool, isprf: bool, d0c: d0cstdec ) : d1cstdec = let val loc = d0c.d0cstdec_loc // // HX; [fil] should be the includer instead of includee // val sym = d0c.d0cstdec_sym val fil = $FIL.filename_get_current () val s1e_res = s0exp_tr d0c.d0cstdec_res val arg = d0c.d0cstdec_arg and eff = d0c.d0cstdec_eff val s1e = aux2 (d0c, isfun, isprf, arg, eff, s1e_res) val extdef = dcstextdef_tr (d0c, sym, d0c.d0cstdec_extopt) in d1cstdec_make (loc, fil, sym, s1e, extdef) end // end of [d0cstdec_tr] // in (* in of [local] *) implement d0cstdeclst_tr ( isfun, isprf, ds ) = case+ ds of | list_nil () => list_nil () | list_cons (d, ds) => let val d = d0cstdec_tr (isfun, isprf, d) val ds = d0cstdeclst_tr (isfun, isprf, ds) in list_cons (d, ds) end // end of [list_cons] // end of [d0cstdeclst_tr] end // end of [local] (* ****** ****** *) (* end of [pats_trans1_staexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lintprgm_myint_gmp.dats0000644000175000017500000002332213431250607023276 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Time: February 2012 // (* ****** ****** *) #define ATS_DYNLOADFLAG 0 // no need for dynloading at run-time (* ****** ****** *) %{^ #include "pats_lintprgm_myint.cats" %} // end of [%{^] (* ****** ****** *) staload "libc/SATS/gmp.sats" (* ****** ****** *) staload INTINF = "./pats_intinf.sats" (* ****** ****** *) viewtypedef lintinf (l:addr) = // (free_gc_v (mpz_vt?, l), mpz_vt @ l | ptr l) viewtypedef lintinf = [l:addr] lintinf (l) (* ****** ****** *) staload "./pats_lintprgm.sats" (* ****** ****** *) viewtypedef myint = myint (gmpknd) extern castfn myint2int (x: myint):<> lintinf macdef mi2i = myint2int extern castfn int2myint (x: lintinf):<> myint macdef i2mi = int2myint extern praxi myintenc (x: !lintinf >> myint): void macdef mienc = myintenc extern praxi myintdec (x: !myint >> lintinf): void macdef midec = myintdec (* ****** ****** *) // implement fprint_myint (out, x) = let prval () = midec (x) prval pfat_x = x.1 val () = fprint0_mpz (out, !(x.2)) prval () = x.1 := pfat_x prval () = mienc (x) in (*nothing*) end // end of [fprint_myint] // implement print_myint (x) = fprint_myint (stdout_ref, x) implement prerr_myint (x) = fprint_myint (stderr_ref, x) // (* ****** ****** *) implement myint_make_int (i) = let val ( pfgc, pfat | p ) = ptr_alloc_tsz {mpz_vt} (sizeof) val () = mpz_init_set_int (!p, i) in int2myint @(pfgc, pfat | p) end // end of [intinf_make_int] (* ****** ****** *) local extern castfn intinf_takeout_mpz ( intinf: $INTINF.intinf ) : [l:addr] ( mpz_vt @ l, mpz_vt @ l - void | ptr l ) // end of [intinf_takeout_mpz] in (* in-of-local *) implement myint_make_intinf (i) = let val ( pfgc, pfat | p ) = ptr_alloc_tsz {mpz_vt} (sizeof) val (pf, fpf | p_i) = intinf_takeout_mpz (i) val () = mpz_init_set_mpz (!p, !p_i) prval () = fpf (pf) in int2myint @(pfgc, pfat | p) end // end of [intinf_make_int] end // end of [local] (* ****** ****** *) implement myint_copy (x) = let val (pfgc, pfat | p) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = midec (x) prval pfat_x = x.1 val () = mpz_init_set_mpz (!p, !(x.2)) prval () = x.1 := pfat_x prval () = mienc (x) in i2mi @(pfgc, pfat | p) end // end of [myint_copy] (* ****** ****** *) implement myint_free (x) = let val x = mi2i (x) prval pfat_x = x.1 val () = mpz_clear (!(x.2)) in ptr_free {mpz_vt?} (x.0, pfat_x | x.2) end // end of [myint_free] (* ****** ****** *) implement neg_myint (x) = i2mi(x) where { val x = mi2i (x) prval pfat_x = x.1 val () = mpz_neg (!(x.2)) prval () = x.1 := pfat_x } // end of [neg_myint] (* ****** ****** *) implement neg1_myint (x) = i2mi @(pfgc, pfat | p) where { val (pfgc, pfat | p) = ptr_alloc_tsz {mpz_vt} (sizeof) val () = mpz_init (!p) prval () = midec (x) prval pfat_x = x.1 val () = mpz_neg (!p, !(x.2)) prval () = x.1 := pfat_x prval () = mienc (x) } // end of [neg1_myint] (* ****** ****** *) implement add01_myint_myint (x, y) = i2mi(x) where { val x = mi2i (x); prval () = midec (y) prval pfat_x = x.1; prval pfat_y = y.1 val () = mpz_add2_mpz (!(x.2), !(y.2)) prval () = x.1 := pfat_x; prval () = y.1 := pfat_y prval () = mienc (y) } // end of [add_myint_myint] (* ****** ****** *) implement sub01_myint_myint (x, y) = i2mi(x) where { val x = mi2i (x); prval () = midec (y) prval pfat_x = x.1; prval pfat_y = y.1 val () = mpz_sub2_mpz (!(x.2), !(y.2)) prval () = x.1 := pfat_x; prval () = y.1 := pfat_y prval () = mienc (y) } // end of [sub_myint_myint] (* ****** ****** *) implement add_myint_int (x, i) = i2mi(x) where { val x = mi2i (x) prval pfat_x = x.1 val () = mpz_add2_int (!(x.2), i) prval () = x.1 := pfat_x } // end of [add_myint_int] (* ****** ****** *) implement mul01_myint_myint (x, y) = i2mi(x) where { val x = mi2i (x); prval () = midec (y) prval pfat_x = x.1; prval pfat_y = y.1 val () = mpz_mul2_mpz (!(x.2), !(y.2)) prval () = x.1 := pfat_x prval () = y.1 := pfat_y prval () = mienc (y) } // end of [mul01_myint_myint] implement mul10_myint_myint (x, y) = i2mi(y) where { prval () = midec (x); val y = mi2i (y) prval pfat_x = x.1; prval pfat_y = y.1 val [l:addr] ( pf_y, fpf_y | p_y ) = __cast (y.2) where { extern castfn __cast (p: ptr) :<> [l:addr] (mpz_vt@l, mpz_vt@l - void | ptr l) // end of [extern] } // end of [val] val () = mpz_mul3_mpz (!(y.2), !(x.2), !p_y) prval () = fpf_y (pf_y) prval () = x.1 := pfat_x prval () = mienc (x) prval () = y.1 := pfat_y } // end of [mul10_myint_myint] implement mul11_myint_myint (x, y) = let val (pfgc, pfat | p) = ptr_alloc_tsz {mpz_vt} (sizeof) val () = mpz_init (!p) prval () = midec (x) and () = midec (y) prval pfat_x = x.1; prval pfat_y = y.1 val () = mpz_mul3_mpz (!p, !(x.2), !(y.2)) prval () = x.1 := pfat_x and () = y.1 := pfat_y prval () = mienc (x) and () = mienc (y) in i2mi @(pfgc, pfat | p) end // end of [mul11_myint_myint] (* ****** ****** *) implement div01_myint_myint (x, y) = i2mi (x) where { val x = mi2i (x); prval () = midec (y) val [l:addr] ( pf_x, fpf_x | p_x ) = __cast (x.2) where { extern castfn __cast (p: ptr) :<> [l:addr] (mpz_vt@l, mpz_vt@l - void | ptr l) // end of [extern] } // end of [val] prval pfat_x = x.1; prval pfat_y = y.1 val () = mpz_tdiv3_q_mpz (!p_x, !(x.2), !(y.2)) prval () = x.1 := pfat_x and () = y.1 := pfat_y prval () = fpf_x (pf_x) prval () = mienc (y) } // end of [div01_myint_myint] (* ****** ****** *) implement ediv01_myint_myint (x, y) = i2mi (x) where { val x = mi2i (x); prval () = midec (y) val [l:addr] ( pf_x, fpf_x | p_x ) = __cast (x.2) where { extern castfn __cast (p: ptr) :<> [l:addr] (mpz_vt@l, mpz_vt@l - void | ptr l) // end of [extern] } // end of [val] prval pfat_x = x.1; prval pfat_y = y.1 val () = mpz_divexact3 (!p_x, !(x.2), !(y.2)) prval () = x.1 := pfat_x and () = y.1 := pfat_y prval () = fpf_x (pf_x) prval () = mienc (y) } // end of [ediv01_myint_myint] (* ****** ****** *) implement mod01_myint_myint (x, y) = i2mi (x) where { val x = mi2i (x); prval () = midec (y) val [l:addr] ( pf_x, fpf_x | p_x ) = __cast (x.2) where { extern castfn __cast (p: ptr) :<> [l:addr] (mpz_vt@l, mpz_vt@l - void | ptr l) // end of [extern] } // end of [val] prval pfat_x = x.1; prval pfat_y = y.1 val () = mpz_mod3_mpz (!p_x, !(x.2), !(y.2)) prval () = x.1 := pfat_x and () = y.1 := pfat_y prval () = fpf_x (pf_x) prval () = mienc (y) } // end of [mod01_myint_myint] implement mod11_myint_myint (x, y) = let val (pfgc, pfat | p) = ptr_alloc_tsz {mpz_vt} (sizeof) val () = mpz_init (!p) prval () = midec (x) and () = midec (y) prval pfat_x = x.1; prval pfat_y = y.1 val () = mpz_mod3_mpz (!p, !(x.2), !(y.2)) prval () = x.1 := pfat_x and () = y.1 := pfat_y prval () = mienc (x) and () = mienc (y) in i2mi @(pfgc, pfat | p) end // end of [mod11_myint_myint] (* ****** ****** *) implement gcd01_myint_myint (x, y) = i2mi (x) where { val x = mi2i (x); prval () = midec (y) val [l:addr] ( pf_x, fpf_x | p_x ) = __cast (x.2) where { extern castfn __cast (p: ptr) :<> [l:addr] (mpz_vt@l, mpz_vt@l - void | ptr l) // end of [extern] } // end of [val] prval pfat_x = x.1; prval pfat_y = y.1 val () = mpz_gcd3_mpz (!p_x, !(x.2), !(y.2)) prval () = x.1 := pfat_x and () = y.1 := pfat_y prval () = fpf_x (pf_x) prval () = mienc (y) } // end of [gcd01_myint_myint] (* ****** ****** *) implement compare_myint_int (x, i) = sgn where { prval () = midec (x) prval pfat_x = x.1 val sgn = mpz_cmp_int (!(x.2), i) prval () = x.1 := pfat_x prval () = mienc (x) } // end of [compare_intinf_int] (* ****** ****** *) implement compare_myint_myint (x, y) = sgn where { prval () = midec (x) and () = midec (y) prval pfat_x = x.1; prval pfat_y = y.1 val sgn = mpz_cmp_mpz (!(x.2), !(y.2)) prval () = x.1 := pfat_x and () = y.1 := pfat_y prval () = mienc (x) and () = mienc (y) } // end of [compare_intinf_int] (* ****** ****** *) (* end of [pats_lintprgm_myint_gmp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_jsonize_synent2.dats0000644000175000017500000012261113431250607022523 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: November, 2013 // (* ****** ****** *) // // Author: William Blair // Authoremail: william.douglass.blairATgmailDOTcom // Contribing Time: August 7, 2014 // (* ****** ****** *) // // HX-2014-12-09: Reorganizing // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload LEX = "./pats_lexing.sats" typedef token = $LEX.token (* ****** ****** *) staload SYN = "./pats_syntax.sats" (* ****** ****** *) // staload "./pats_jsonize.sats" // staload _(*anon*) = "./pats_jsonize.dats" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_jsonize_synent2.sats" (* ****** ****** *) #define nil list_nil #define :: list_cons #define cons list_cons (* ****** ****** *) macdef jsonize_loc (x) = jsonize_location (,(x)) (* ****** ****** *) // // Statics // (* ****** ****** *) extern fun jsonize_s2rtbas: jsonize_ftype (s2rtbas) (* ****** ****** *) implement jsonize_s2rtbas (s2tb) = let in // case+ s2tb of | S2RTBASpre (sym) => jsonize_symbol (sym) | S2RTBASimp (knd, sym) => jsonize_symbol (sym) | S2RTBASdef (s2td) => let val sym = s2rtdat_get_sym (s2td) in jsonize_symbol (sym) end // end of [S2RTBASdef] // end // end of [jsonize_s2rtbas] (* ****** ****** *) implement jsonize_s2rt (s2t0) = let in // case+ s2t0 of | S2RTbas(s2tb) => let val s2tb = jsonize_s2rtbas (s2tb) in jsonval_conarg1 ("S2RTbas", s2tb) end // end of [S2RTbas] // | S2RTfun (s2ts_arg, s2t_res) => let // val arg = jsonize_s2rtlst (s2ts_arg) // end of [val] val res = jsonize_s2rt (s2t_res) // in jsonval_conarg2 ("S2RTfun", arg, res) end // end of [S2RTfun] // | S2RTtup(s2ts) => let val s2ts = jsonize_s2rtlst (s2ts) in jsonval_conarg1 ("S2RTtup", s2ts) end // end of [S2RTtup] // | S2RTVar(s2tV) => jsonize_s2rt(s2rtVar_get_s2rt(s2tV)) // end of [S2RTVar] // | S2RTerr((*void*)) => jsonval_conarg0 ("S2RTerr") // end // end of [jsonize_s2rt] (* ****** ****** *) implement jsonize_s2rtlst (s2ts) = let // val jsvs = list_map_fun (s2ts, jsonize_s2rt) // in JSONlist (list_of_list_vt{jsonval}(jsvs)) end // end of [jsonize_s2rtlst] (* ****** ****** *) implement jsonize_s2cst (s2c) = let // val stamp = jsonize_stamp(s2cst_get_stamp(s2c)) // in jsonval_labval1 ("s2cst_stamp", stamp) end // end of [jsonize_s2cst] // implement jsonize_s2cst_long (s2c) = let // val sym = jsonize_symbol(s2cst_get_sym(s2c)) // val s2t = jsonize_s2rt(s2cst_get_srt(s2c)) val stamp = jsonize_stamp(s2cst_get_stamp(s2c)) // val extdef = let val opt = s2cst_get_extdef(s2c) in // case+ opt of | $SYN.SCSTEXTDEFnone() => jsonval_none() | $SYN.SCSTEXTDEFsome(name) => jsonval_some(jsonval_string(name)) // end // end of [extdef] // val supcls = jsonize0_s2explst(s2cst_get_supcls(s2c)) // val dconlstopt = let val opt = s2cst_get_dconlst (s2c) // end of [val] in // case+ opt of | None () => jsonval_none((*void*)) | Some (d2cs) => jsonval_some(jsonize_d2conlst(d2cs)) // end of [Some] end // end of [val] // in // jsonval_labval6 ( "s2cst_sym", sym , "s2cst_srt", s2t , "s2cst_stamp", stamp , "s2cst_extdef", extdef , "s2cst_supcls", supcls , "s2cst_dconlst", dconlstopt ) // end // end of [jsonize_s2cst_long] (* ****** ****** *) implement jsonize_s2cstlst (s2cs) = ( jsonize_list_fun(s2cs, jsonize_s2cst) ) (* end of [jsonize_s2cstlst] *) (* ****** ****** *) implement jsonize_s2rtdat_long (s2td) = let // val sym = jsonize_symbol(s2rtdat_get_sym(s2td)) val stamp = jsonize_stamp(s2rtdat_get_stamp(s2td)) // val sconlst= jsonize_list_fun (s2rtdat_get_sconlst(s2td), jsonize_s2cst_long) // in // jsonval_labval3 ( "s2rtdat_sym", sym , "s2rtdat_stamp", stamp , "s2rtdat_sconlst", sconlst ) // end // end of [jsonize_s2rtdat_long] (* ****** ****** *) // implement jsonize_s2var (s2v) = let // val stamp = jsonize_stamp(s2var_get_stamp(s2v)) // in jsonval_labval1 ("s2var_stamp", stamp) end // end of [jsonize_s2var] // implement jsonize_s2var_long (s2v) = let // val sym = jsonize_symbol(s2var_get_sym(s2v)) val s2rt = jsonize_s2rt (s2var_get_srt (s2v)) val stamp = jsonize_stamp (s2var_get_stamp (s2v)) // in // jsonval_labval3 ("s2var_sym", sym, "s2var_srt", s2rt, "s2var_stamp", stamp) // end // end of [jsonize_s2var_long] // (* ****** ****** *) implement jsonize_s2varlst (s2vs) = let // val jsvs = list_map_fun (s2vs, jsonize_s2var) // in JSONlist (list_of_list_vt{jsonval}(jsvs)) end // end of [jsonize_s2varlst] (* ****** ****** *) implement jsonize_s2Var (s2V) = let // val stamp = jsonize_stamp (s2Var_get_stamp (s2V)) val szexp = jsonize_s2zexp (s2Var_get_szexp (s2V)) // in jsonval_labval2 ("s2Var_stamp", stamp, "s2Var_szexp", szexp) end // end of [jsonize_s2Var] implement jsonize_s2Var_long (s2V) = jsonize_s2Var (s2V) (* ****** ****** *) // implement jsonize_d2con (d2c) = let // val stamp = jsonize_stamp(d2con_get_stamp(d2c)) // in jsonval_labval1 ("d2con_stamp", stamp) end // end of [jsonize_d2con] // implement jsonize_d2con_long (d2c) = let // val sym = jsonize_symbol (d2con_get_sym (d2c)) val _type = jsonize0_s2exp (d2con_get_type (d2c)) val stamp = jsonize_stamp (d2con_get_stamp (d2c)) // in // jsonval_labval3 ( "d2con_sym", sym , "d2con_type", _type , "d2con_stamp", stamp ) // end // end of [jsonize_d2con_long] // (* ****** ****** *) implement jsonize_d2conlst (d2cs) = ( jsonize_list_fun(d2cs, jsonize_d2con) ) (* end of [jsonize_d2conlst] *) (* ****** ****** *) implement jsonize_tyreckind (knd) = let in // case+ knd of // | TYRECKINDbox () => jsonval_conarg0 ("TYRECKINDbox") | TYRECKINDbox_lin () => jsonval_conarg0 ("TYRECKINDbox_lin") // | TYRECKINDflt0 () => jsonval_conarg0 ("TYRECKINDflt0") | TYRECKINDflt1 (x) => jsonval_conarg1 ("TYRECKINDflt1", jsonize_stamp (x)) | TYRECKINDflt_ext (name) => jsonval_conarg1 ("TYRECKINDflt_ext", jsonval_string (name)) // end // end of [jsonize_tyreckind] (* ****** ****** *) // implement jsonize0_s2exp (s2e) = jsonize_s2exp (0(*hnfize*), s2e) implement jsonize1_s2exp (s2e) = jsonize_s2exp (1(*hnfize*), s2e) // (* ****** ****** *) // implement jsonize0_s2explst (s2es) = jsonize_s2explst (0(*hnfize*), s2es) implement jsonize1_s2explst (s2es) = jsonize_s2explst (1(*hnfize*), s2es) // (* ****** ****** *) // implement jsonize0_s2expopt (opt) = jsonize_s2expopt (0(*hnfize*), opt) implement jsonize1_s2expopt (opt) = jsonize_s2expopt (1(*hnfize*), opt) // (* ****** ****** *) implement jsonize_s2exp (flag, s2e0) = let // fun auxmain ( flag: int, s2e0: s2exp ) : jsonval = let // val s2e0 = ( if flag = 0 then s2e0 else s2exp_hnfize (s2e0) ) : s2exp // end of [val] // in // case+ s2e0.s2exp_node of // case+ // | S2Eint(i) => jsonval_conarg1("S2Eint", jsonval_int(i)) | S2Eintinf(i) => jsonval_conarg1("S2Eintinf", jsonval_intinf(i)) // | S2Ecst(s2c) => jsonval_conarg1("S2Ecst", jsonize_s2cst(s2c)) // | S2Efloat(rep) => jsonval_conarg1("S2Efloat", jsonval_string(rep)) // | S2Eextype(name, arg) => jsonval_conarg1("S2Eextype", jsonval_string(name)) | S2Eextkind(name, arg) => jsonval_conarg1("S2Eextkind", jsonval_string(name)) // | S2Evar(s2v) => jsonval_conarg1("S2Evar", jsonize_s2var(s2v)) | S2EVar(s2V) => jsonval_conarg1("S2EVar", jsonize_s2Var(s2V)) // | S2Eat(s2elt, s2addr) => let val s2elt = jsonize_s2exp(flag, s2elt) val s2addr = jsonize_s2exp(flag, s2addr) in jsonval_conarg2("S2Eat", s2elt, s2addr) end // end of [S2Eat] | S2Esizeof(s2e) => jsonval_conarg1("S2Esizeof", jsonize_s2exp(flag, s2e)) // | S2Eeqeq (s2e1, s2e2) => let val s2e1 = jsonize_s2exp(flag, s2e1) and s2e2 = jsonize_s2exp(flag, s2e2) in jsonval_conarg2("S2Eeqeq", s2e1(*left*), s2e2(*right*)) end // end of [S2Eeqeq] // | S2Eapp (s2e1, s2es2) => let val s2e1 = jsonize_s2exp(flag, s2e1) val s2es2 = jsonize_s2explst(flag, s2es2) in jsonval_conarg2("S2Eapp", s2e1(*fun*), s2es2(*arglst*)) end // end of [S2Eapp] // | S2Efun ( fc, lin, s2fe, npf, _arg, _res ) => let val npf = jsonval_int(npf) val _arg = jsonize_s2explst(flag, _arg) val _res = jsonize_s2exp(flag, _res) in jsonval_conarg3("S2Efun", npf, _arg, _res) end // end of [S2Efun] // | S2Emetdec (s2es1, s2es2) => let val s2es1 = jsonize_s2explst(flag, s2es1) and s2es2 = jsonize_s2explst(flag, s2es2) in jsonval_conarg2 ("S2Emetdec", s2es1(*met*), s2es2(*bound*)) // jsonval_conarg2 end // end of [S2Emetdec] // | S2Etop(knd, s2e) => let val knd = jsonval_int(knd) val s2e = jsonize_s2exp(flag, s2e) in jsonval_conarg2("S2Etop", knd, s2e) end // end of [S2Etop] // | S2Ewithout(s2e) => jsonval_conarg1("S2Ewithout", jsonize_s2exp(flag, s2e)) // end of [S2Ewithout] // | S2Etyarr (_elt, _dim) => let val _elt = jsonize_s2exp(flag, _elt) val _dim = jsonize_s2explst(flag, _dim) in jsonval_conarg2("S2Etyarr", _elt, _dim) end // end of [S2Etyarr] // | S2Etyrec (knd, npf, ls2es) => let val knd = jsonize_tyreckind(knd) // end of [val] val npf = jsonval_int(npf) val ls2es = jsonize_labs2explst(flag, ls2es) in jsonval_conarg3("S2Etyrec", knd, npf, ls2es) end // end of [S2Etyrec] // | S2Einvar(s2e) => jsonval_conarg1("S2Einvar", jsonize_s2exp(flag, s2e)) // | S2Eexi ( s2vs, s2ps, s2e_body ) => let val s2vs = jsonize_s2varlst(s2vs) val s2ps = jsonize_s2explst(flag, s2ps) val s2e_body = jsonize_s2exp(flag, s2e_body) in jsonval_conarg3("S2Eexi", s2vs, s2ps, s2e_body) end // end of [S2Eexi] | S2Euni ( s2vs, s2ps, s2e_body ) => let val s2vs = jsonize_s2varlst(s2vs) val s2ps = jsonize_s2explst(flag, s2ps) val s2e_body = jsonize_s2exp(flag, s2e_body) in jsonval_conarg3("S2Euni", s2vs, s2ps, s2e_body) end // end of [S2Euni] // | S2Erefarg(knd, s2e) => let val knd = jsonval_int(knd) val s2e = jsonize_s2exp(flag, s2e) in jsonval_conarg2("S2Erefarg", knd, s2e) end // end of [S2Erefarg] // | S2Evararg(s2e) => jsonval_conarg1("S2Evararg", jsonize_s2exp(flag, s2e)) // end of [val] // | S2Ewthtype(s2e, ws2es) => let val s2e = jsonize_s2exp(flag, s2e) val ws2es = jsonize_wths2explst(flag, ws2es) in jsonval_conarg2("S2Ewthtype", s2e, ws2es) end // end of [S2Ewths2explst] // | S2Eerrexp((*void*)) => jsonval_conarg0("S2Eerrexp") // | _(* rest-of-s2exp *) => jsonval_conarg0("S2Eignored") // end // end of [auxmain] // val s2t0 = s2e0.s2exp_srt val s2t0 = jsonize_s2rt(s2t0) // val s2e0 = auxmain(flag, s2e0) // in jsonval_labval2("s2exp_srt", s2t0, "s2exp_node", s2e0) end // end of [jsonize_s2exp] (* ****** ****** *) implement jsonize_s2explst (flag, s2es) = let // fun auxlst ( flag: int, s2es: s2explst ) : jsonvalist = // case+ s2es of | list_cons (s2e, s2es) => let val s2e = jsonize_s2exp (flag, s2e) // end of [val] val s2es = auxlst (flag, s2es) in list_cons (s2e, s2es) end // end of [list_cons] | list_nil ((*void*)) => list_nil () // in JSONlist (auxlst (flag, s2es)) end // end of [jsonize_s2explst] (* ****** ****** *) implement jsonize_s2expopt (flag, opt) = let in // case+ opt of | None () => JSONoption (None ()) | Some (s2e) => JSONoption (Some (jsonize_s2exp (flag, s2e))) // end // end of [jsonize_s2expopt] (* ****** ****** *) implement jsonize_labs2explst (flag, ls2es) = let // fun auxlst ( flag: int, ls2es: labs2explst ) : jsonvalist = // case+ ls2es of | list_cons (ls2e, ls2es) => let val+SLABELED (lab, name, s2e) = ls2e val lab = jsonize_label (lab) val name = ( case+ name of | None () => jsonval_none () | Some (x) => jsonval_some (jsonval_string(x)) ) : jsonval val s2e = jsonize_s2exp (flag, s2e) val ls2e = jsonval_conarg3 ("SL0ABELED", lab, name, s2e) in list_cons (ls2e, auxlst (flag, ls2es)) end // end of [list_cons] | list_nil((*void*)) => list_nil () // in JSONlist (auxlst (flag, ls2es)) end // end of [jsonize_labs2explst] (* ****** ****** *) implement jsonize_wths2explst ( flag, ws2es ) = auxlst(flag, ws2es) where { // fun auxlst ( flag: int, ws2es: wths2explst ) : jsonval = // case+ ws2es of | WTHS2EXPLSTnil() => jsonval_conarg0("WTHS2EXPLSTnil") // WTHS2EXPLSTnil | WTHS2EXPLSTcons_none (ws2es) => jsonval_conarg1 ("WTHS2EXPLSTcons_none", auxlst(flag, ws2es)) // WTHS2EXPLSTcons_none | WTHS2EXPLSTcons_invar (knd, s2e, ws2es) => let val knd = jsonval_int(knd) val s2e = jsonize_s2exp(flag, s2e) in jsonval_conarg3 ("WTHS2EXPLSTcons_invar", knd, s2e, auxlst(flag, ws2es)) end // end of [WTHS2EXPLSTcons_invar] | WTHS2EXPLSTcons_trans (knd, s2e, ws2es) => let val knd = jsonval_int(knd) val s2e = jsonize_s2exp(flag, s2e) in jsonval_conarg3 ("WTHS2EXPLSTcons_trans", knd, s2e, auxlst(flag, ws2es)) end // end of [WTHS2EXPLSTcons_trans] // } (* end of [jsonize_wths2explst] *) (* ****** ****** *) implement jsonize_s2eff (s2fe) = jsonize_ignored (s2fe) (* ****** ****** *) implement jsonize_s2zexp (s2ze) = ( // case+ s2ze of // | S2ZEbot () => jsonval_conarg0 ("S2ZEbot") // | S2ZEvar (s2v) => let val s2v = jsonize_s2var(s2v) in jsonval_conarg1 ("S2ZEvar", s2v) end // end of [S2ZEvar] // | _(*ignored*) => jsonval_conarg0 ("S2ZEignored") // ) (* end of [jsonize_s2zexp] *) (* ****** ****** *) // // Dynamics // (* ****** ****** *) extern fun jsonize_i0nt (tok: token): jsonval extern fun jsonize_c0har (tok: token): jsonval extern fun jsonize_f0loat (tok: token): jsonval extern fun jsonize_s0tring (tok: token): jsonval (* ****** ****** *) extern fun jsonize_d2sym : jsonize_ftype (d2sym) (* ****** ****** *) extern fun jsonize_pckind : jsonize_ftype (pckind) (* ****** ****** *) extern fun jsonize_p2at : jsonize_ftype (p2at) extern fun jsonize_p2atlst : jsonize_ftype (p2atlst) extern fun jsonize_p2atopt : jsonize_ftype (p2atopt) (* ****** ****** *) extern fun jsonize_labp2at : jsonize_ftype (labp2at) extern fun jsonize_labp2atlst : jsonize_ftype (labp2atlst) (* ****** ****** *) extern fun jsonize_d2exp : jsonize_ftype (d2exp) extern fun jsonize_d2explst : jsonize_ftype (d2explst) extern fun jsonize_d2expopt : jsonize_ftype (d2expopt) (* ****** ****** *) extern fun jsonize_labd2exp : jsonize_ftype (labd2exp) extern fun jsonize_labd2explst : jsonize_ftype (labd2explst) (* ****** ****** *) extern fun jsonize_d2exparg : jsonize_ftype (d2exparg) extern fun jsonize_d2exparglst : jsonize_ftype (d2exparglst) (* ****** ****** *) extern fun jsonize_d2lab : jsonize_ftype (d2lab) extern fun jsonize_d2lablst : jsonize_ftype (d2lablst) (* ****** ****** *) extern fun jsonize_c2lau : jsonize_ftype (c2lau) extern fun jsonize_c2laulst : jsonize_ftype (c2laulst) (* ****** ****** *) extern fun jsonize_gm2at : jsonize_ftype (gm2at) extern fun jsonize_gm2atlst : jsonize_ftype (gm2atlst) (* ****** ****** *) implement jsonize_i0nt (tok) = let // val-$LEX.T_INT (base, rep, sfx) = tok.token_node // in jsonval_string (rep) end // end of [jsonize_i0nt] implement jsonize_c0har (tok) = let // val-$LEX.T_CHAR(c) = tok.token_node // in jsonval_int (int_of_char(c)) end (* end of [jsonize_c0har] *) implement jsonize_f0loat (tok) = let // val-$LEX.T_FLOAT (base, rep, sfx) = tok.token_node // in jsonval_string (rep) end // end of [jsonize_f0loat] implement jsonize_s0tring (tok) = let // val-$LEX.T_STRING(rep) = tok.token_node // in jsonval_string (rep) end // end of [jsonize_s0tring] (* ****** ****** *) // extern fun jsonize_dcstextdef (ext:dcstextdef): jsonval // implement jsonize_dcstextdef (ext) = let (* // val () = println! ("jsonize_dcstextdef") // *) in // case+ ext of | $SYN.DCSTEXTDEFnone(knd) => jsonval_conarg1("DCSTEXTDEFnone", jsonval_int(knd)) | $SYN.DCSTEXTDEFsome_ext(name) => jsonval_conarg1("DCSTEXTDEFsome_ext", jsonval_string(name)) | $SYN.DCSTEXTDEFsome_mac(name) => jsonval_conarg1("DCSTEXTDEFsome_mac", jsonval_string(name)) | $SYN.DCSTEXTDEFsome_sta(name) => jsonval_conarg1("DCSTEXTDEFsome_sta", jsonval_string(name)) // end // end of [jsonize_dcstextdef] (* ****** ****** *) // implement jsonize_d2cst (d2c) = let // val stamp = jsonize_stamp(d2cst_get_stamp(d2c)) // in // jsonval_labval1("d2cst_stamp", stamp) // end // end of [jsonize_d2cst] // // HX-2014-09-08: // [jsonize_d2cst_long] // may output more properties // implement jsonize_d2cst_long (d2c) = let // val sym = jsonize_symbol (d2cst_get_sym (d2c)) // val _type = jsonize0_s2exp (d2cst_get_type (d2c)) // val extdef = jsonize_dcstextdef(d2cst_get_extdef(d2c)) // val stamp = jsonize_stamp (d2cst_get_stamp (d2c)) // in // jsonval_labval4 ( "d2cst_sym", sym , "d2cst_type", _type , "d2cst_extdef", extdef , "d2cst_stamp", stamp ) // end // end of [jsonize_d2cst_long] (* ****** ****** *) implement jsonize_d2cstlst (d2cs) = ( jsonize_list_fun(d2cs, jsonize_d2cst) ) (* end of [jsonize_d2cstlst] *) (* ****** ****** *) implement jsonize_d2var (d2v) = let // val stamp = jsonize_stamp (d2var_get_stamp (d2v)) // in jsonval_labval1 ("d2var_stamp", stamp) end // end of [jsonize_d2var] (* ****** ****** *) implement jsonize_d2var_long (d2v) = let // val sym = jsonize_symbol (d2var_get_sym (d2v)) val stamp = jsonize_stamp (d2var_get_stamp (d2v)) // in // jsonval_labval2 ( "d2var_sym", sym, "d2var_stamp", stamp ) // end // end of [jsonize_d2var_long] (* ****** ****** *) implement jsonize_d2itm (d2i) = let // (* val () = println! ("jsonize_d2itm: d2i = ", d2i) *) // in // case+ d2i of // | D2ITMcst (d2c) => let val d2c = jsonize_d2cst (d2c) in jsonval_conarg1 ("D2ITMcst", d2c) end // end of [D2ITMcst] | D2ITMvar (d2v) => let val d2v = jsonize_d2var (d2v) in jsonval_conarg1 ("D2ITMvar", d2v) end // end of [D2ITMvar] | D2ITMcon (d2cs) => let val d2cs = jsonize_d2conlst (d2cs) in jsonval_conarg1 ("D2ITMcon", d2cs) end // end of [D2ITMcon] // | _ (*rest*) => jsonval_conarg0 ("D2ITMignored") // end // end of [jsonize_d2itm] (* ****** ****** *) implement jsonize_d2sym (d2s) = let // val sym = jsonize_symbol (d2s.d2sym_sym) // in jsonval_labval1 ("d2sym_sym", sym) end // end of [jsonize_d2sym] (* ****** ****** *) extern fun jsonize_i2mpdec : jsonize_ftype (i2mpdec) (* ****** ****** *) extern fun jsonize_f2undec : jsonize_ftype (f2undec) extern fun jsonize_f2undeclst : jsonize_ftype (f2undeclst) (* ****** ****** *) extern fun jsonize_v2aldec : jsonize_ftype (v2aldec) extern fun jsonize_v2aldeclst : jsonize_ftype (v2aldeclst) (* ****** ****** *) extern fun jsonize_v2ardec : jsonize_ftype (v2ardec) extern fun jsonize_v2ardeclst : jsonize_ftype (v2ardeclst) (* ****** ****** *) implement jsonize_pckind (knd) = ( case+ knd of | PCKcon () => jsonval_string "PCKcon" | PCKlincon () => jsonval_string "PCKlincon" | PCKfree () => jsonval_string "PCKfree" | PCKunfold () => jsonval_string "PCKunfold" ) (* end of [jsonize_pckind] *) (* ****** ****** *) implement jsonize_p2at (p2t0) = let // fun auxmain (p2t0: p2at): jsonval = let in // case+ p2t0.p2at_node of // | P2Tany () => jsonval_conarg0 ("P2Tany") // | P2Tvar (d2v) => let val d2v = jsonize_d2var (d2v) in jsonval_conarg1 ("P2Tvar", d2v) end // end of [P2Tvar] // | P2Tcon ( pcknd, d2c, s2qs, s2e_con, npf, p2ts ) => let // val jsv1 = jsonize_pckind (pcknd) val jsv2 = jsonize_d2con (d2c) val jsv3 = jsonize_ignored (s2qs) val jsv4 = jsonize_ignored (s2e_con) val jsv5 = jsonval_int (npf) val jsv6 = jsonize_p2atlst (p2ts) // val arglst = ( jsv1 :: jsv2 :: jsv3 :: jsv4 :: jsv5 :: jsv6 :: list_nil ) (* end of [val] *) // in jsonval_conarglst ("P2Tcon", arglst) end // end of [P2Tcon] // | P2Tint (i) => jsonval_conarg1 ("P2Tint", jsonval_int (i)) | P2Tintrep (rep) => jsonval_conarg1 ("P2Tintrep", jsonval_string (rep)) // | P2Tbool (b) => jsonval_conarg1 ("P2Tbool", jsonval_bool (b)) | P2Tchar (c) => jsonval_conarg1 ("P2Tchar", jsonval_int (int_of_char(c))) | P2Tfloat (rep) => jsonval_conarg1 ("P2Tfloat", jsonval_string (rep)) | P2Tstring (str) => jsonval_conarg1 ("P2Tstring", jsonval_string (str)) // | P2Ti0nt (tok) => jsonval_conarg1 ("P2Ti0nt", jsonize_i0nt (tok)) | P2Tf0loat (tok) => jsonval_conarg1 ("P2Tf0loat", jsonize_f0loat (tok)) // | P2Tempty ((*void*)) => jsonval_conarg0 ("P2Tempty") // | P2Trec (knd, npf, lp2ts) => let val knd = jsonval_int (knd) val npf = jsonval_int (npf) val lp2ts = jsonize_labp2atlst (lp2ts) in jsonval_conarg3 ("P2Trec", knd, npf, lp2ts) end (* end of [P2Trec] *) // | P2Trefas (d2v, p2t) => ( jsonval_conarg2 ("P2Trefas", jsonize_d2var(d2v), jsonize_p2at(p2t)) ) (* end of [P2Trefas] *) // | P2Tvbox (d2v) => jsonval_conarg1 ("P2Tvbox", jsonize_d2var (d2v)) // | P2Tann (p2t, ann) => ( jsonval_conarg2 ("P2Tann", jsonize_p2at (p2t), jsonize0_s2exp(ann)) ) (* end of [P2Tann] *) // | P2Terrpat ((*void*)) => jsonval_conarg0 ("P2Terrpat") // | _ (*yet-to-be-processed*) => jsonval_conarg0 ("P2Tignored") // end // end of [auxmain] // val loc0 = p2t0.p2at_loc val loc0 = jsonize_loc (loc0) val p2t0 = auxmain (p2t0) // in jsonval_labval2 ("p2at_loc", loc0, "p2at_node", p2t0) end // end of [jsonize_p2at] (* ****** ****** *) implement jsonize_p2atlst (p2ts) = ( jsonize_list_fun(p2ts, jsonize_p2at) ) // end of [jsonize_p2atlst] implement jsonize_p2atopt (p2topt) = ( jsonize_option_fun(p2topt, jsonize_p2at) ) // end of [jsonize_p2atopt] (* ****** ****** *) implement jsonize_labp2at (lp2t) = let in // case+ lp2t of | LABP2ATnorm (l0, p2t) => let val lab = jsonize_label (l0.l0ab_lab) val p2t = jsonize_p2at (p2t) in jsonval_labval1 ("LABP2ATnorm", jsonval_pair (lab, p2t)) end // end of [LABP2ATnorm] | LABP2ATomit (loc) => let val loc = jsonize_location (loc) in jsonval_labval1 ("LABP2ATomit", jsonval_sing (loc)) end // end of [LABP2ATomit] // end // end of [jsonize_labp2at] (* ****** ****** *) implement jsonize_labp2atlst (lp2ts) = ( jsonize_list_fun(lp2ts, jsonize_labp2at) ) // end of [jsonize_labp2atlst] (* ****** ****** *) implement jsonize_d2exp (d2e0) = let // fun auxmain (d2e0: d2exp): jsonval = let in // case+ d2e0.d2exp_node of // | D2Ecst (d2c) => let val jsv1 = jsonize_d2cst (d2c) in jsonval_conarg1 ("D2Ecst", jsv1) end // end of [D2Ecst] | D2Evar (d2v) => let val jsv1 = jsonize_d2var (d2v) in jsonval_conarg1 ("D2Evar", jsv1) end // end of [D2Evar] // | D2Eint (int) => jsonval_conarg1 ("D2Eint", jsonval_int (int)) | D2Eintrep (rep) => jsonval_conarg1 ("D2Eintrep", jsonval_string (rep)) // | D2Ei0nt (tok) => jsonval_conarg1 ("D2Ei0nt", jsonize_i0nt (tok)) | D2Ec0har (tok) => jsonval_conarg1 ("D2Ec0har", jsonize_c0har (tok)) | D2Ef0loat (tok) => jsonval_conarg1 ("D2Ef0loat", jsonize_f0loat (tok)) | D2Es0tring (tok) => jsonval_conarg1 ("D2Es0tring", jsonize_s0tring (tok)) // | D2Esym (d2s) => jsonval_conarg1 ("D2Esym", jsonize_d2sym (d2s)) // | D2Eempty ((*void*)) => jsonval_conarg0 ("D2Eempty") // | D2Eextval(s2e, name) => let val s2e = jsonize0_s2exp(s2e) val name = jsonval_string(name) in jsonval_conarg2("D2Eextval", s2e, name) end // end of [D2Eextval] | D2Eextfcall (s2e, name, d2es_arg) => let val s2e = jsonize0_s2exp(s2e) val name = jsonval_string(name) val d2es_arg = jsonize_d2explst(d2es_arg) in jsonval_conarg3("D2Eextfcall", s2e, name, d2es_arg) end // end of [D2Eextfcall] | D2Eextmcall (s2e, obj, name, d2es_arg) => let // val s2e = jsonize0_s2exp(s2e) // val obj = jsonize_d2exp(obj) val name = jsonval_string(name) val d2es_arg = jsonize_d2explst(d2es_arg) // in jsonval_conarg4("D2Eextmcall", s2e, obj, name, d2es_arg) end // end of [D2Eextmcall] // | D2Elet (d2cs, d2e_body) => let val d2cs = jsonize_d2eclist (d2cs) val d2e_body = jsonize_d2exp (d2e_body) in jsonval_conarg2 ("D2Elet", d2cs, d2e_body) end // end of [D2Elet] | D2Ewhere (d2e_body, d2cs) => let val d2cs = jsonize_d2eclist (d2cs) val d2e_body = jsonize_d2exp (d2e_body) in jsonval_conarg2 ("D2Ewhere", d2e_body, d2cs) end // end of [D2Ewhere] // | D2Eapplst (d2e, d2as) => let val jsv1 = jsonize_d2exp (d2e) val jsv2 = jsonize_d2exparglst (d2as) in jsonval_conarg2 ("D2Eapplst", jsv1, jsv2) end // end of [D2Eapplst] // | D2Eifhead ( inv, _test, _then, _else ) => let val jsv1 = jsonize_ignored (inv) val jsv2 = jsonize_d2exp (_test) val jsv3 = jsonize_d2exp (_then) val jsv4 = jsonize_d2expopt (_else) in jsonval_conarg4 ("D2Eifhead", jsv1, jsv2, jsv3, jsv4) end // end of [D2Eifhead] // | D2Ecasehead ( casknd, inv, d2es, c2ls ) => let val jsv1 = jsonize_caskind (casknd) // end of [val] val jsv2 = jsonize_ignored (inv) val jsv3 = jsonize_d2explst (d2es) val jsv4 = jsonize_c2laulst (c2ls) in jsonval_conarg4 ("D2Ecasehead", jsv1, jsv2, jsv3, jsv4) end // end of [D2Ecasehead] // | D2Esing(d2e) => let val jsv = jsonize_d2exp (d2e) in jsonval_conarg1 ("D2Esing", jsv) end // end of [D2Esing] | D2Elist (npf, d2es) => let val jsv1 = jsonval_int (npf) val jsv2 = jsonize_d2explst (d2es) in jsonval_conarg2 ("D2Elist", jsv1, jsv2) end // end of [D2Elist] // | D2Etup (knd, npf, d2es) => let val jsv1 = jsonval_int (knd) val jsv2 = jsonval_int (npf) val jsv3 = jsonize_d2explst (d2es) in jsonval_conarg3 ("D2Etup", jsv1, jsv2, jsv3) end // end of [D2Etup] // | D2Erec (knd, npf, ld2es) => let val jsv1 = jsonval_int (knd) val jsv2 = jsonval_int (npf) val jsv3 = jsonize_labd2explst (ld2es) in jsonval_conarg3 ("D2Erec", jsv1, jsv2, jsv3) end // end of [D2Erec] // | D2Eseq (d2es) => jsonval_conarg1 ("D2Eseq", jsonize_d2explst (d2es)) // | D2Eselab (d2e, d2ls) => let val d2e = jsonize_d2exp (d2e) val d2ls = jsonize_d2lablst (d2ls) in jsonval_conarg2("D2Eselab", d2e, d2ls) end // end of [D2Eselab] // | D2Ederef (d2s, d2e) => let val d2s = jsonize_d2sym (d2s) val d2e = jsonize_d2exp (d2e) in jsonval_conarg2("D2Ederef", d2s, d2e) end // end of [D2Ederef] | D2Eassgn (d2e_l, d2e_r) => let val d2e_l = jsonize_d2exp (d2e_l) val d2e_r = jsonize_d2exp (d2e_r) in jsonval_conarg2("D2Eassgn", d2e_l, d2e_r) end // end of [D2Eassgn] | D2Exchng (d2e_l, d2e_r) => let val d2e_l = jsonize_d2exp (d2e_l) val d2e_r = jsonize_d2exp (d2e_r) in jsonval_conarg2("D2Exchng", d2e_l, d2e_r) end // end of [D2Exchng] // | D2Elam_dyn ( lin, npf, p2ts_arg, d2e_body ) => let val jsv1 = jsonval_int (lin) val jsv2 = jsonval_int (npf) val jsv3 = jsonize_p2atlst (p2ts_arg) val jsv4 = jsonize_d2exp (d2e_body) in jsonval_conarg4 ("D2Elam_dyn", jsv1, jsv2, jsv3, jsv4) end // end of [D2Elam_dyn] // | D2Elam_met ( ref, s2es_met, d2e_body ) => let (* val jsv1 = jsonize_d2varlst (!ref) *) val jsv2 = jsonize0_s2explst (s2es_met) // end of [jsv2] val jsv3 = jsonize_d2exp (d2e_body) in jsonval_conarg2 ("D2Elam_met", jsv2, jsv3) end // end of [D2Elam_met] | D2Elam_sta (s2vs, s2ps, d2e) => let val jsv1 = jsonize_s2varlst (s2vs) val jsv2 = jsonize0_s2explst (s2ps) val jsv3 = jsonize_d2exp (d2e) in jsonval_conarg3 ("D2Elam_sta", jsv1, jsv2, jsv3) end // end of [D2Elam_sta] // | D2Eann_type (d2e, s2e) => let val jsv1 = jsonize_d2exp (d2e) val jsv2 = jsonize0_s2exp (s2e) in jsonval_conarg2 ("D2Eann_type", jsv1, jsv2) end // end of [D2Eann_type] | D2Eann_seff (d2e, s2fe) => let val jsv1 = jsonize_d2exp (d2e) val jsv2 = jsonize_s2eff (s2fe) in jsonval_conarg2 ("D2Eann_seff", jsv1, jsv2) end // end of [D2Eann_seff] | D2Eann_funclo (d2e, funclo) => let val jsv1 = jsonize_d2exp (d2e) val jsv2 = jsonize_funclo (funclo) in jsonval_conarg2 ("D2Eann_funclo", jsv1, jsv2) end // end of [D2Eann_funclo] // | D2Eerrexp ((*void*)) => jsonval_conarg0("D2Eerrexp") // | _ (*rest*) => let val () = prerrln! ( "warning(ATS): [jsonize_d2exp]: ignored: ", d2e0 ) (* end of [val] *) in jsonval_conarg0 ("D2Eignored") end (* end of [_] *) // end // end of [auxmain] // val loc0 = d2e0.d2exp_loc val loc0 = jsonize_loc (loc0) val d2e0 = auxmain (d2e0) // in jsonval_labval2 ("d2exp_loc", loc0, "d2exp_node", d2e0) end // end of [jsonize_d2exp] (* ****** ****** *) implement jsonize_d2explst (d2es) = ( jsonize_list_fun(d2es, jsonize_d2exp) ) // end of [jsonize_d2explst] (* ****** ****** *) implement jsonize_d2expopt (opt) = let in // case+ opt of | None () => jsonval_none () | Some (d2e) => jsonval_some (jsonize_d2exp (d2e)) // end // end of [jsonize_d2expopt] (* ****** ****** *) implement jsonize_labd2exp (ld2e) = let val+$SYN.DL0ABELED (l0, d2e) = ld2e val lab = jsonize_label (l0.l0ab_lab) val d2e = jsonize_d2exp (d2e) in jsonval_conarg2 ("DL0ABELED", lab, d2e) end // end of [jsonize_labd2exp] (* ****** ****** *) implement jsonize_labd2explst (ld2es) = ( jsonize_list_fun(ld2es, jsonize_labd2exp) ) // end of [jsonize_labd2explst] (* ****** ****** *) implement jsonize_d2exparg (d2a) = let in // case+ d2a of | D2EXPARGsta (loc, s2as) => let val arglst = JSONlist (list_nil) in jsonval_labval1 ("D2EXPARGsta", arglst) end // end of [D2EXPARGsta] | D2EXPARGdyn (npf, loc, d2es) => let val jsv1 = jsonval_int (npf) val jsv2 = jsonize_loc (loc) val jsv3 = jsonize_d2explst (d2es) val arglst = JSONlist (jsv1 :: jsv2 :: jsv3 :: list_nil) // end of [val] in jsonval_labval1 ("D2EXPARGdyn", arglst) end // end of [D2EXPARGdyn] // end // end of [jsonize_d2exparg] (* ****** ****** *) implement jsonize_d2exparglst (d2as) = ( jsonize_list_fun(d2as, jsonize_d2exparg) ) // end of [jsonize_d2exparglst] (* ****** ****** *) implement jsonize_d2lab (d2l0) = let // fun auxmain (d2l0: d2lab): jsonval = let in // case+ // d2l0.d2lab_node of // | D2LABlab (lab) => let val lab = jsonize_label (lab) in jsonval_labval1 ("D2LABlab", jsonval_sing(lab)) end // end of [D2LABlab] | D2LABind (d2es) => let val d2es = jsonize_d2explst (d2es) in jsonval_labval1 ("D2LABind", jsonval_sing(d2es)) end // end of [D2LABind] // end // end of [auxmain] // val loc0 = d2l0.d2lab_loc val loc0 = jsonize_loc (loc0) val d2l0 = auxmain (d2l0) // in jsonval_labval2 ("d2lab_loc", loc0, "d2lab_node", d2l0) end // end of [jsonize_d2lab] (* ****** ****** *) implement jsonize_d2lablst (d2ls) = ( jsonize_list_fun(d2ls, jsonize_d2lab) ) // end of [jsonize_d2lablst] (* ****** ****** *) implement jsonize_gm2at (gm2t) = let // val loc = jsonize_loc (gm2t.gm2at_loc) val exp = jsonize_d2exp (gm2t.gm2at_exp) val pat = jsonize_p2atopt (gm2t.gm2at_pat) // in // jsonval_labval3 ( "gm2at_loc", loc, "gm2at_exp", exp, "gm2at_pat", pat ) // end // end of [jsonize_gm2at] implement jsonize_gm2atlst (gm2ts) = ( jsonize_list_fun(gm2ts, jsonize_gm2at) ) // end of [jsonize_gm2atlst] (* ****** ****** *) implement jsonize_c2lau (c2l0) = let // val loc = jsonize_loc (c2l0.c2lau_loc) val pat = jsonize_p2atlst (c2l0.c2lau_pat) val gua = jsonize_gm2atlst (c2l0.c2lau_gua) val seq = jsonval_int (c2l0.c2lau_seq) val neg = jsonval_int (c2l0.c2lau_neg) val body = jsonize_d2exp (c2l0.c2lau_body) // in // jsonval_labval6 ( "c2lau_loc", loc , "c2lau_pat", pat , "c2lau_gua", gua , "c2lau_seq", seq , "c2lau_neg", neg , "c2lau_body", body ) (* end of [jsonize_labval6] *) // end // end of [jsonize_c2lau] (* ****** ****** *) implement jsonize_c2laulst (c2ls) = ( jsonize_list_fun(c2ls, jsonize_c2lau) ) // end of [jsonize_c2laulst] (* ****** ****** *) implement jsonize_d2ecl (d2c0) = let // (* val () = println! ("jsonize_d2ecl: d2c0 = ", d2c0) *) // fun auxmain (d2c0: d2ecl): jsonval = let (* val () = println! ("jsonize_d2ecl: auxmain: d2c0 = ", d0c0) *) in // case+ d2c0.d2ecl_node of // | D2Cnone() => jsonval_conarg0("D2Cnone") | D2Clist(xs) => let val xs = jsonize_d2eclist(xs) in jsonval_conarg1("D2Clist", xs) end // end of [D2Clist] // | D2Coverload (id, pval, opt) => let val sym = jsonize_symbol(id.i0de_sym) val pval = jsonval_int (pval) val opt = jsonize_option_fun(opt, jsonize_d2itm) in jsonval_conarg3("D2Coverload", sym, pval, opt) end // end of [D2Coverload] // | D2Cstacsts(s2cs) => let val s2cs = jsonize_s2cstlst(s2cs) in jsonval_conarg1("D2Cstacsts", s2cs) end // end of [D2Cstacsts] | D2Cstacons(knd, s2cs) => let val knd = jsonval_int(knd) val s2cs = jsonize_s2cstlst(s2cs) in jsonval_conarg2("D2Cstacsts", knd, s2cs) end // end of [D2Cstacons] // | D2Cextype (name, s2e_def) => let val name = jsonval_string(name) val s2e_def = jsonize0_s2exp(s2e_def) in jsonval_conarg2("D2Cextype", name, s2e_def) end // end of [D2Cextype] | D2Cextvar (name, d2e_def) => let val name = jsonval_string(name) val d2e_def = jsonize_d2exp(d2e_def) in jsonval_conarg2("D2Cextvar", name, d2e_def) end // end of [D2Cextvar] | D2Cextcode (knd, pos, code) => let val knd = jsonval_int(knd) val pos = jsonval_int(pos) val code = jsonval_string(code) in jsonval_conarg3("D2Cextcode", knd, pos, code) end // end of [D2Cextcode] // | D2Cdatdecs (knd, s2cs) => let val knd = jsonval_int(knd) val s2cs = jsonize_s2cstlst(s2cs) in jsonval_conarg2 ("D2Cdatdecs", knd, s2cs) end // end of [D2Cdatdecs] // | D2Cexndecs(d2cs) => let val d2cs = jsonize_d2conlst(d2cs) in jsonval_conarg1("D2Cexndecs", d2cs(*constr*)) end // end of [D2Cdatdecs] // | D2Cdcstdecs (knd, dck, d2cs) => let val knd = jsonval_int(knd) val dck = jsonize_dcstkind(dck) val d2cs = jsonize_d2cstlst(d2cs) in jsonval_conarg3("D2Cdcstdecs", knd, dck, d2cs) end // end of [D2Cdcstdecs] // | D2Cimpdec (knd, i2mp) => let val knd = jsonval_int(knd) val i2mp = jsonize_i2mpdec(i2mp) in jsonval_conarg2("D2Cimpdec", knd, i2mp) end // end of [D2Cimpdec] // | D2Cfundecs ( knd, s2qs, f2ds ) => let val knd = jsonize_funkind(knd) val s2qs = jsonize_ignored(s2qs) val f2ds = jsonize_f2undeclst(f2ds) in jsonval_conarg3("D2Cfundecs", knd, s2qs, f2ds) end // end of [D2Cfundecs] // | D2Cvaldecs (knd, v2ds) => let val knd = jsonize_valkind(knd) val v2ds = jsonize_v2aldeclst(v2ds) in jsonval_conarg2("D2Cvaldecs", knd, v2ds) end // end of [D2Cvaldecs] // | D2Cvardecs(v2ds) => let val v2ds = jsonize_v2ardeclst(v2ds) in jsonval_conarg1("D2Cvardecs", v2ds) end // end of [D2Cvardecs] // | D2Cinclude (knd, d2cs) => let val knd = jsonval_int(knd) val d2cs = jsonize_d2eclist(d2cs) in jsonval_conarg2("D2Cinclude", knd, d2cs) end // end of [D2Cinclude] // | D2Cstaload ( idopt, fname, loadflag, fenv, loaded ) => let val idopt = jsonize_symbolopt(idopt) // end of [val] val fname = jsonize_filename(fname) in jsonval_conarg2("D2Cstaload", idopt, fname) end // end of [D2Cstaload] // | D2Clocal (head, body) => let val head = jsonize_d2eclist(head) val body = jsonize_d2eclist(body) in jsonval_conarg2("D2Clocal", head, body) end // end of [D2Clocal] // | _ (*rest*) => jsonval_conarg0("D2Cignored") // end // end of [auxmain] // val loc0 = d2c0.d2ecl_loc val d2c0 = auxmain( d2c0 ) val loc0 = jsonize_loc(loc0) // in // jsonval_labval2 ("d2ecl_loc", loc0, "d2ecl_node", d2c0) // end // end of [jsonize_d2ecl] (* ****** ****** *) // implement jsonize_d2eclist (d2cs) = ( jsonize_list_fun(d2cs, jsonize_d2ecl) ) // (* ****** ****** *) implement jsonize_i2mpdec (i2mp) = let // val loc = jsonize_loc (i2mp.i2mpdec_loc) val locid = jsonize_loc (i2mp.i2mpdec_locid) // val d2c = jsonize_d2cst (i2mp.i2mpdec_cst) // val imparg = jsonize_ignored (i2mp.i2mpdec_imparg) val tmparg = jsonize_ignored (i2mp.i2mpdec_tmparg) val tmpgua = jsonize_ignored (i2mp.i2mpdec_tmpgua) // val def = jsonize_d2exp (i2mp.i2mpdec_def) // in // JSONlablist ( ( "i2mpdec_loc" , loc) :: ( "i2mpdec_locid" , locid) :: ( "i2mpdec_cst" , d2c) :: ("i2mpdec_imparg" , imparg) :: ("i2mpdec_tmparg" , tmparg) :: ("i2mpdec_tmpgua" , tmpgua) :: ( "i2mpdec_def" , def) :: list_nil () // end-of-list ) (* end of [jsonval_lablist] *) // end // end of [i2mpdec] (* ****** ****** *) implement jsonize_f2undec (f2d) = let // val loc = jsonize_loc (f2d.f2undec_loc) val d2v = jsonize_d2var (f2d.f2undec_var) val def = jsonize_d2exp (f2d.f2undec_def) val ann = jsonize0_s2expopt (f2d.f2undec_ann) // in // jsonval_labval4 ( "f2undec_loc", loc, "f2undec_var", d2v , "f2undec_def", def, "f2undec_ann", ann ) (* end of [jsonize_labval4] *) // end // end of [json_f2undec] (* ****** ****** *) implement jsonize_f2undeclst (f2ds) = ( jsonize_list_fun(f2ds, jsonize_f2undec) ) // end of [jsonize_f2undeclst] (* ****** ****** *) implement jsonize_v2aldec (v2d) = let // val loc = jsonize_loc (v2d.v2aldec_loc) val pat = jsonize_p2at (v2d.v2aldec_pat) val def = jsonize_d2exp (v2d.v2aldec_def) val ann = jsonize_ignored (v2d.v2aldec_ann) // in // jsonval_labval4 ( "v2aldec_loc", loc, "v2aldec_pat", pat , "v2aldec_def", def, "v2aldec_ann", ann ) (* end of [jsonize_labval4] *) // end // end of [json_v2aldec] implement jsonize_v2aldeclst (v2ds) = ( jsonize_list_fun(v2ds, jsonize_v2aldec) ) // end of [jsonize_v2aldeclst] (* ****** ****** *) implement jsonize_v2ardec (v2d) = let // val loc = jsonize_loc(v2d.v2ardec_loc) val knd = jsonval_int(v2d.v2ardec_knd) // val svar = jsonize_s2var(v2d.v2ardec_svar) val dvar = jsonize_d2var(v2d.v2ardec_dvar) // val init = jsonize_d2expopt(v2d.v2ardec_init) // val _type = jsonize0_s2expopt(v2d.v2ardec_type) // in // jsonval_labval6 ( "v2ardec_loc", loc, "v2ardec_knd", knd , "v2ardec_svar", svar, "v2ardec_dvar", dvar , "v2ardec_init", init, "v2ardec_type", _type ) (* jsonval_labval6 *) // end // end of [jsonize_v2ardec] implement jsonize_v2ardeclst (v2ds) = ( jsonize_list_fun(v2ds, jsonize_v2ardec) ) // end of [jsonize_v2ardeclst] (* ****** ****** *) implement d2eclist_jsonize_out (out, d2cls) = let // val ( s2cs , s2vs , s2Vs , d2cons , d2csts , d2vars ) = d2eclist_mapgen_all (d2cls) // val s2cs = s2cstset_vt_listize_free (s2cs) val s2vs = s2varset_vt_listize_free (s2vs) val s2Vs = s2Varset_vt_listize_free (s2Vs) val d2cons = d2conset_vt_listize_free (d2cons) val d2csts = d2cstset_vt_listize_free (d2csts) val d2vars = d2varset_vt_listize_free (d2vars) // val jsv_s2cs = jsonize_list_fun($UN.linlst2lst(s2cs), jsonize_s2cst_long) val () = list_vt_free (s2cs) // val jsv_s2vs = jsonize_list_fun($UN.linlst2lst(s2vs), jsonize_s2var_long) val () = list_vt_free (s2vs) // val jsv_s2Vs = jsonize_list_fun($UN.linlst2lst(s2Vs), jsonize_s2Var_long) val () = list_vt_free (s2Vs) // val jsv_d2cons = jsonize_list_fun($UN.linlst2lst(d2cons), jsonize_d2con_long) val () = list_vt_free (d2cons) // val jsv_d2csts = jsonize_list_fun($UN.linlst2lst(d2csts), jsonize_d2cst_long) val () = list_vt_free (d2csts) // val jsv_d2vars = jsonize_list_fun($UN.linlst2lst(d2vars), jsonize_d2var_long) val () = list_vt_free (d2vars) // val jsv_d2cls = jsonize_d2eclist(d2cls) // val () = fprint_string (out, "{\n\"s2cstmap\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_s2cs) val ((*void*)) = fprint_newline (out) // val () = fprint_string (out, ",\n\"s2varmap\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_s2vs) val ((*void*)) = fprint_newline (out) // val () = fprint_string (out, ",\n\"d2conmap\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_d2cons) val ((*void*)) = fprint_newline (out) // val () = fprint_string (out, ",\n\"d2cstmap\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_d2csts) val ((*void*)) = fprint_newline (out) // val () = fprint_string (out, ",\n\"d2varmap\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_d2vars) val ((*void*)) = fprint_newline (out) // val () = fprint_string (out, ",\n\"d2eclist\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_d2cls) val ((*void*)) = fprint_string (out, "\n}") val ((*void*)) = fprint_newline (out) // in // nothing end // end of [d2eclist_jsonize_out] (* ****** ****** *) (* end of [pats_jsonize_synent2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp2.dats0000644000175000017500000006651613431250607020764 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UNSAFE = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload LOC = "./pats_location.sats" // macdef location_combine = $LOC.location_combine // (* ****** ****** *) staload UT = "./pats_utils.sats" staload LEX = "./pats_lexing.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) #include "./pats_basics.hats" (* ****** ****** *) // macdef list_sing(x) = list_cons(,(x), list_nil) // #define l2l list_of_list_vt // (* ****** ****** *) implement d2sym_make ( loc, q, id, d2pis ) = '{ d2sym_loc= loc , d2sym_qua= q, d2sym_sym= id , d2sym_pitmlst= d2pis } // end of [d2sym_make] (* ****** ****** *) // // HX: dynamic patterns // (* ****** ****** *) typedef s2varset = $UT.lstord (s2var) (* ****** ****** *) val p2at_svs_nil : lstord (s2var) = $UT.lstord_nil () val p2at_dvs_nil : lstord (d2var) = $UT.lstord_nil () fun p2at_svs_add_svar ( svs: s2varset, s2v: s2var ) : s2varset = let in $UT.lstord_insert (svs, s2v, compare_s2vsym_s2vsym) end // end of [p2at_svs_add_svar] fun p2at_svs_add_svarlst ( svs: s2varset, s2vs: s2varlst ) : s2varset = let typedef svs = lstord (s2var) in list_fold_left_fun (p2at_svs_add_svar, svs, s2vs) end // end of [p2at_svs_add_svarlst] implement p2atlst_svs_union (p2ts) = let typedef svs = lstord (s2var) val cmp = compare_s2vsym_s2vsym in list_fold_left_fun ( lam (svs, p2t) =<1> $UT.lstord_union (svs, p2t.p2at_svs, cmp), p2at_svs_nil, p2ts ) // end of [list_fold_left] end // end of [p2atlst_svs_union] implement p2atlst_dvs_union (p2ts) = let typedef dvs = lstord (d2var) val cmp = compare_d2vsym_d2vsym in list_fold_left_fun ( lam (dvs, p2t) =<1> $UT.lstord_union (dvs, p2t.p2at_dvs, cmp), p2at_dvs_nil, p2ts ) // end of [list_fold_left] end // end of [p2atlst_dvs_union] (* ****** ****** *) implement eq_pckind_pckind (x1, x2) = ( case+ (x1, x2) of | (PCKcon (), PCKcon ()) => true | (PCKlincon (), PCKlincon ()) => true | (PCKfree (), PCKfree ()) => true | (PCKunfold (), PCKunfold ()) => true | (_, _) => false ) // end of [eq_pckind_pckind] (* ****** ****** *) implement p2at_make_node ( loc, svs, dvs, node ) = '{ p2at_loc= loc , p2at_svs= svs, p2at_dvs= dvs , p2at_type= None () // s2hnfopt , p2at_node= node } // end of [p2at_make_node] implement p2at_any (loc) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Tany ()) // end of [p2at_any] implement p2at_var (loc, d2v) = let val dvs = $UT.lstord_sing (d2v) in p2at_make_node (loc, p2at_svs_nil, dvs, P2Tvar (d2v)) end // end of [p2at_var] (* ****** ****** *) implement p2at_int (loc, i) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Tint (i)) // end of [p2at_int] implement p2at_intrep (loc, rep) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Tintrep (rep)) // end of [p2at_int] implement p2at_bool (loc, b) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Tbool (b)) // end of [p2at_bool] implement p2at_char (loc, c) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Tchar (c)) // end of [p2at_char] implement p2at_float (loc, rep) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Tfloat (rep)) // end of [p2at_float] implement p2at_string (loc, str) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Tstring (str)) // end of [p2at_string] (* ****** ****** *) implement p2at_i0nt (loc, x) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Ti0nt (x)) // end of [p2at_i0nt] implement p2at_f0loat (loc, x) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Tf0loat (x)) // end of [p2at_f0loat] (* ****** ****** *) implement p2at_empty (loc) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Tempty ()) // end of [p2at_empty] (* ****** ****** *) implement p2at_con ( loc, pck // '~' and '@' , d2c, s2qs, s2f, npf, darg ) = let val svs = p2atlst_svs_union (darg) val svs = let fn f ( res: s2varset, x: s2qua ) : s2varset = p2at_svs_add_svarlst (res, x.s2qua_svs) // end of [f] in list_fold_left_fun (f, svs, s2qs) end // end of [val] val dvs = p2atlst_dvs_union (darg) val node = P2Tcon (pck, d2c, s2qs, s2f, npf, darg) in p2at_make_node (loc, svs, dvs, node) end // end of [p2at_con] (* ****** ****** *) implement p2at_list (loc, npf, p2ts) = let val svs = p2atlst_svs_union (p2ts) val dvs = p2atlst_dvs_union (p2ts) in p2at_make_node (loc, svs, dvs, P2Tlist (npf, p2ts)) end // end of [p2at_list] (* ****** ****** *) implement p2at_rec (loc, knd, npf, lp2ts) = let val p2ts = aux (lp2ts) where { fun aux ( xs: labp2atlst ) : List_vt (p2at) = case+ xs of | list_cons (x, xs) => (case+ x of | LABP2ATnorm (l0, p2t) => list_vt_cons (p2t, aux xs) | LABP2ATomit (loc) => aux (xs) ) // end of [list_cons] | list_nil () => list_vt_nil () // end of [aux] } // end of [val] val svs = p2atlst_svs_union ($UNSAFE.castvwtp1(p2ts)) val dvs = p2atlst_dvs_union ($UNSAFE.castvwtp1(p2ts)) val () = list_vt_free (p2ts) in p2at_make_node (loc, svs, dvs, P2Trec (knd, npf, lp2ts)) end // end of [p2at_lp2ts] (* ****** ****** *) implement p2at_lst (loc, lin, p2ts) = let val svs = p2atlst_svs_union (p2ts) val dvs = p2atlst_dvs_union (p2ts) in p2at_make_node (loc, svs, dvs, P2Tlst (lin, p2ts)) end // end of [p2at_lst] (* ****** ****** *) implement p2at_refas (loc, d2v, p2t) = let val svs = p2t.p2at_svs val dvs = $UT.lstord_insert (p2t.p2at_dvs, d2v, compare_d2vsym_d2vsym) // end of [val] in p2at_make_node (loc, svs, dvs, P2Trefas (d2v, p2t)) end // end of [p2at_refas] (* ****** ****** *) implement p2at_exist (loc, s2vs, p2t) = let val svs = p2at_svs_add_svarlst (p2t.p2at_svs, s2vs) // end of [val] val dvs = p2t.p2at_dvs in p2at_make_node (loc, svs, dvs, P2Texist (s2vs, p2t)) end // end of [p2at_exist] (* ****** ****** *) implement p2at_ann ( loc, p2t, s2e ) = p2at_make_node ( loc, p2t.p2at_svs, p2t.p2at_dvs, P2Tann (p2t, s2e) ) // end of [p2at_ann] (* ****** ****** *) implement p2at_vbox (loc, d2v) = let val dvs = $UT.lstord_sing (d2v) in p2at_make_node (loc, p2at_svs_nil, dvs, P2Tvbox (d2v)) end // end of [p2at_vbox] (* ****** ****** *) implement p2at_errpat (loc) = p2at_make_node (loc, p2at_svs_nil, p2at_dvs_nil, P2Terrpat ()) // end of [p2at_errpat] (* ****** ****** *) // // HX: dynamic expressions // (* ****** ****** *) implement d2exp_make_node (loc, node) = '{ d2exp_loc= loc, d2exp_node= node, d2exp_type= None() } // end of [d2exp_make_node] (* ****** ****** *) implement d2exp_cst (loc, d2c) = d2exp_make_node (loc, D2Ecst (d2c)) implement d2exp_var (loc, d2v) = d2exp_make_node (loc, D2Evar (d2v)) (* ****** ****** *) implement d2exp_int (loc, i) = d2exp_make_node (loc, D2Eint (i)) implement d2exp_intrep (loc, rep) = d2exp_make_node (loc, D2Eintrep (rep)) implement d2exp_bool (loc, b) = d2exp_make_node (loc, D2Ebool (b)) implement d2exp_char (loc, c) = d2exp_make_node (loc, D2Echar (c)) implement d2exp_float (loc, rep) = d2exp_make_node (loc, D2Efloat (rep)) implement d2exp_string (loc, s) = d2exp_make_node (loc, D2Estring (s)) implement d2exp_i0nt (loc, x) = d2exp_make_node (loc, D2Ei0nt (x)) implement d2exp_c0har (loc, x) = d2exp_make_node (loc, D2Ec0har (x)) implement d2exp_f0loat (loc, x) = d2exp_make_node (loc, D2Ef0loat (x)) implement d2exp_s0tring (loc, x) = d2exp_make_node (loc, D2Es0tring (x)) (* ****** ****** *) implement d2exp_top (loc) = d2exp_make_node (loc, D2Etop()) implement d2exp_top2 (loc, s2e) = d2exp_make_node (loc, D2Etop2(s2e)) // implement d2exp_empty (loc) = d2exp_make_node (loc, D2Eempty()) // (* ****** ****** *) implement d2exp_cstsp (loc, csp) = d2exp_make_node(loc, D2Ecstsp(csp)) // end of [d2exp_cstsp] (* ****** ****** *) implement d2exp_tyrep (loc, s2e) = d2exp_make_node(loc, D2Etyrep(s2e)) // end of [d2exp_tyrep] (* ****** ****** *) implement d2exp_literal (loc, d2e) = d2exp_make_node(loc, D2Eliteral(d2e)) // end of [d2exp_literal] (* ****** ****** *) implement d2exp_extval (loc, s2e, name) = d2exp_make_node (loc, D2Eextval (s2e, name)) // end of [d2exp_extval] implement d2exp_extfcall (loc, s2e, _fun, _arg) = d2exp_make_node (loc, D2Eextfcall (s2e, _fun, _arg)) // end of [d2exp_extfcall] implement d2exp_extmcall (loc, s2e, _obj, _mtd, _arg) = d2exp_make_node (loc, D2Eextmcall (s2e, _obj, _mtd, _arg)) // end of [d2exp_extmcall] (* ****** ****** *) implement d2exp_con (loc, d2c, locfun, sarg, npf, locarg, darg) = d2exp_make_node (loc, D2Econ (d2c, locfun, sarg, npf, locarg, darg)) // end of [d2exp_con] implement d2exp_sym (loc, d2s) = d2exp_make_node (loc, D2Esym (d2s)) (* ****** ****** *) implement d2exp_foldat (loc, s2as, d2e) = d2exp_make_node (loc, D2Efoldat (s2as, d2e)) // end of [d2exp_foldat] implement d2exp_freeat (loc, s2as, d2e) = d2exp_make_node (loc, D2Efreeat (s2as, d2e)) // end of [d2exp_freeat] (* ****** ****** *) implement d2exp_tmpid (loc, d2e_id, t2mas) = d2exp_make_node (loc, D2Etmpid (d2e_id, t2mas)) // end of [d2exp_tmpid] (* ****** ****** *) implement d2exp_let (loc, d2cs, body) = d2exp_make_node (loc, D2Elet (d2cs, body)) // end of [d2exp_let] implement d2exp_where (loc, body, d2cs) = d2exp_make_node (loc, D2Ewhere (body, d2cs)) // end of [d2exp_where] (* ****** ****** *) implement d2exp_applst ( loc, d2e_fun, d2as_arg ) = d2exp_make_node (loc, D2Eapplst (d2e_fun, d2as_arg)) implement d2exp_app_sta ( loc0, d2e_fun, locarg, s2as ) = let (* val () = ( print "d2exp_app_sta: d2e_fun = "; print_d2exp d2e_fun; print_newline () ) // end of [val] *) in // case+ s2as of | list_cons _ => let val d2a = D2EXPARGsta (locarg, s2as) // end of [val] val node = ( case+ d2e_fun.d2exp_node of | D2Eapplst (d2e_fun, d2as) => let val d2as = list_extend (d2as, d2a) in D2Eapplst (d2e_fun, (l2l)d2as) end | _ => D2Eapplst (d2e_fun, list_sing (d2a)) ) : d2exp_node // end of [val] in d2exp_make_node (loc0, node) end // end of [list_cons] | list_nil _ => d2e_fun // end (* end of [d2exp_app_sta] *) implement d2exp_app_dyn ( loc0, d2e_fun, npf, locarg, darg ) = let (* val () = ( print "d2exp_app_fun: d2e_fun = "; print_d2exp d2e_fun; print_newline () ) // end of [val] *) val d2a = D2EXPARGdyn (npf, locarg, darg) // end of [val] val node = ( case+ d2e_fun.d2exp_node of | D2Eapplst (d2e_fun, d2as) => let val d2as = list_extend (d2as, (d2a)) in D2Eapplst (d2e_fun, (l2l)d2as) end | _ => D2Eapplst (d2e_fun, list_sing (d2a)) ) : d2exp_node // end of [val] in d2exp_make_node (loc0, node) end // end of [d2exp_app_dyn] implement d2exp_app_sta_dyn ( loc_dyn, loc_sta , d2e_fun, sarg, locarg, npf, darg ) = let val d2e_sta = d2exp_app_sta (loc_sta, d2e_fun, loc_sta, sarg) // end of [val] in if npf >= ~1 then // [npf] takes ~2 as a fake value d2exp_app_dyn (loc_dyn, d2e_sta, npf, locarg, darg) else d2e_sta // end of [if] end // end of [d2exp_app_sta_dyn] (* ****** ****** *) implement d2exp_ifhead ( loc, r2es, _cond, _then, _else ) = d2exp_make_node ( loc, D2Eifhead (r2es, _cond, _then, _else) ) // end of [d2exp_ifhead] implement d2exp_sifhead ( loc, r2es, _cond, _then, _else ) = d2exp_make_node ( loc, D2Esifhead (r2es, _cond, _then, _else) ) // end of [d2exp_sifhead] (* ****** ****** *) local fun i2fcl_is_else (ifcl: i2fcl): bool = let // val test = ifcl.i2fcl_test // in // case+ test.d2exp_node of | D2Etop _ => true | _ => false // end // end of [i2fcl_is_else] fun i2fclist_is_else (ifcls: i2fclist): bool = let // fun loop ( x: i2fcl, xs: i2fclist ) : bool = case+ xs of | list_nil() => i2fcl_is_else(x) | list_cons(x, xs) => loop(x, xs) // in // case+ ifcls of | list_nil() => true | list_cons(x, xs) => loop(x, xs) // end // end of [i2fclist_is_else] in (* in-of-local *) implement d2exp_ifcasehd ( loc, r2es, ifcls ) = let // val opt = i2fclist_is_else(ifcls) // val knd = (if opt then 1 else 0): int // (* val () = println! ("d2exp_ifcasehd: knd = ", knd) *) // in // d2exp_make_node (loc, D2Eifcasehd(knd, r2es, ifcls)) // end // end of [d2exp_ifcasehd] end // end of [local] (* ****** ****** *) // implement d2exp_casehead ( loc, knd, inv, d2es, c2ls ) = d2exp_make_node ( loc , D2Ecasehead (knd, inv, d2es, c2ls) ) // end of [d2exp_casehead] // implement d2exp_scasehead (loc, inv, s2f, sc2ls) = ( d2exp_make_node (loc, D2Escasehead(inv, s2f, sc2ls)) ) // (* ****** ****** *) // implement d2exp_sing(loc, d2e) = d2exp_make_node (loc, D2Esing(d2e)) // implement d2exp_list(loc, npf, d2es) = d2exp_make_node(loc, D2Elist(npf, d2es)) // (* ****** ****** *) implement d2exp_lst (loc, lin, elt, d2es) = d2exp_make_node(loc, D2Elst (lin, elt, d2es)) // end of [d2exp_lst] (* ****** ****** *) // implement d2exp_tup ( loc, knd, npf, d2es ) = ( d2exp_make_node (loc, D2Etup (knd, npf, d2es)) ) // implement d2exp_tup_flt (loc, npf, d2es) = ( d2exp_tup (loc, TYTUPKIND_flt(*knd*), npf, d2es) ) // (* ****** ****** *) // implement d2exp_rec ( loc, knd, npf, ld2es ) = ( d2exp_make_node(loc, D2Erec(knd, npf, ld2es)) ) // (* ****** ****** *) implement d2exp_seq(loc, d2es) = d2exp_make_node(loc, D2Eseq(d2es)) // end of [d2exp_seq] implement d2exp_seq2(loc, d2es) = ( case+ d2es of | list_nil() => d2exp_empty(loc) | list_cons (d2e, d2es1) => ( case+ d2es1 of | list_nil() => d2e | list_cons _ => d2exp_seq(loc, d2es) ) // end of [list_cons] ) (* end of [d2exp_seq2] *) (* ****** ****** *) implement d2exp_deref (loc, d2s, lval) = d2exp_make_node(loc, D2Ederef(d2s, lval)) // end of [d2exp_assgn] implement d2exp_assgn ( loc, _left, _right ) = d2exp_make_node(loc, D2Eassgn(_left, _right)) // end of [d2exp_assgn] implement d2exp_xchng ( loc, _left, _right ) = d2exp_make_node(loc, D2Exchng(_left, _right)) // end of [d2exp_xchng] (* ****** ****** *) // implement d2exp_arrsub ( loc, d2s, arr, locind, ind ) = ( d2exp_make_node (loc, D2Earrsub (d2s, arr, locind, ind)) ) // implement d2exp_arrpsz ( loc, s2eopt_elt, d2es_ini ) = ( d2exp_make_node (loc, D2Earrpsz (s2eopt_elt, d2es_ini)) ) // implement d2exp_arrinit ( loc, s2e_elt, asz, init ) = ( d2exp_make_node (loc, D2Earrinit (s2e_elt, asz, init)) ) // (* ****** ****** *) // implement d2exp_ptrof(loc, d2e) = d2exp_make_node (loc, D2Eptrof (d2e)) // implement d2exp_viewat(loc, d2e) = d2exp_make_node (loc, D2Eviewat (d2e)) // (* ****** ****** *) implement d2exp_selab (loc, d2e, d2ls) = d2exp_make_node(loc, D2Eselab (d2e, d2ls)) // end of [d2exp_selab] implement d2exp_sel_dot (loc, d2e, d2ls) = d2exp_selab (loc, d2e, d2ls) // end of [d2exp_sel_dot] implement d2exp_sel_ptr (loc, d2s, d2e, d2l) = let val loc2 = d2e.d2exp_loc val d2e_deref = d2exp_deref(loc2, d2s, d2e) in d2exp_selab(loc, d2e_deref, list_sing(d2l)) end // end of [d2exp_sel_ptr] (* ****** ****** *) // implement d2exp_raise (loc, d2e) = d2exp_make_node(loc, D2Eraise (d2e)) // implement d2exp_effmask (loc, s2fe, d2e) = d2exp_make_node(loc, D2Eeffmask (s2fe, d2e)) // end of [d2exp_effmask] // (* ****** ****** *) // implement d2exp_vararg (loc, d2es) = d2exp_make_node(loc, D2Evararg(d2es)) // (* ****** ****** *) implement d2exp_vcopyenv (loc, knd, d2e) = d2exp_make_node(loc, D2Evcopyenv(knd, d2e)) // end of [d2exp_vcopyenv] (* ****** ****** *) // implement d2exp_showtype (loc, d2e) = d2exp_make_node(loc, D2Eshowtype(d2e)) // (* ****** ****** *) // implement d2exp_tempenver (loc, d2vs) = d2exp_make_node(loc, D2Etempenver(d2vs)) // (* ****** ****** *) implement d2exp_exist (loc, s2a, d2e) = d2exp_make_node(loc, D2Eexist(s2a, d2e)) // end of [d2exp_exist] (* ****** ****** *) // implement d2exp_lam_dyn ( loc, knd, npf, arg, body ) = d2exp_make_node (loc, D2Elam_dyn(knd, npf, arg, body)) // implement d2exp_laminit_dyn ( loc, knd, npf, arg, body ) = d2exp_make_node (loc, D2Elaminit_dyn(knd, npf, arg, body)) // implement d2exp_lam_sta (loc, s2vs, s2ps, body) = d2exp_make_node(loc, D2Elam_sta(s2vs, s2ps, body)) // end of [d2exp_lam_sta] // implement d2exp_lam_met (loc, ref, met, body) = d2exp_make_node(loc, D2Elam_met(ref, met, body)) // end of [d2exp_lam_met] // implement d2exp_lam_met_new (loc, met, body) = let // val ref = ref(list_nil()) // in d2exp_lam_met(loc, ref, met, body) end // end of [d2exp_lam_met_new] // implement d2exp_fix ( loc, knd, d2v_fun, d2e_body ) = d2exp_make_node (loc, D2Efix(knd, d2v_fun, d2e_body)) // (* ****** ****** *) implement d2exp_delay (loc, d2e) = d2exp_make_node (loc, D2Edelay(d2e)) // end of [d2exp_delay] implement d2exp_ldelay (loc, _eval, _free) = d2exp_make_node(loc, D2Eldelay(_eval, _free)) // end of [d2exp_ldelay] implement d2exp_ldelay_none (loc, d2e) = d2exp_ldelay(loc, d2e, None(*void*)) // end of [d2exp_ldelay_none] (* ****** ****** *) implement d2exp_for ( loc, i2nv, init, test, post, body ) = d2exp_make_node (loc, D2Efor (i2nv, init, test, post, body)) // end of [d2exp_for] implement d2exp_while ( loc, i2nv, test, body ) = d2exp_make_node (loc, D2Ewhile(i2nv, test, body)) // end of [d2exp_while] implement d2exp_loopexn (loc, knd) = d2exp_make_node (loc, D2Eloopexn knd) // end of [d2exp_loopexn] (* ****** ****** *) implement d2exp_trywith ( loc, r2es, d2e, c2ls ) = d2exp_make_node (loc, D2Etrywith(r2es, d2e, c2ls)) (* ****** ****** *) implement d2exp_ann_type (loc, d2e, s2e) = d2exp_make_node (loc, D2Eann_type(d2e, s2e)) // end of [d2exp_ann_type] implement d2exp_ann_seff (loc, d2e, s2fe) = d2exp_make_node (loc, D2Eann_seff(d2e, s2fe)) // end of [d2exp_ann_seff] implement d2exp_ann_funclo (loc, d2e, fc) = d2exp_make_node (loc, D2Eann_funclo(d2e, fc)) // end of [d2exp_ann_funclo] (* ****** ****** *) implement d2exp_mac (loc, d2m) = d2exp_make_node (loc, D2Emac(d2m)) // end of [d2exp_mac] implement d2exp_macsyn (loc, knd, d2e) = d2exp_make_node (loc, D2Emacsyn(knd, d2e)) // end of [d2exp_macsyn] implement d2exp_macfun (loc, name, d2es) = d2exp_make_node (loc, D2Emacfun(name, d2es)) // end of [d2exp_macfun] (* ****** ****** *) // implement d2exp_solassert (loc, d2e_prf) = d2exp_make_node(loc, D2Esolassert(d2e_prf)) implement d2exp_solverify (loc, s2e_prop) = d2exp_make_node(loc, D2Esolverify(s2e_prop)) // (* ****** ****** *) // implement d2exp_errexp(loc) = d2exp_make_node (loc, D2Eerrexp((*void*))) // (* ****** ****** *) implement labd2exp_make (l, d2e) = $SYN.DL0ABELED(l, d2e) (* ****** ****** *) implement d2lab_lab ( loc, lab, opt ) = '{ d2lab_loc= loc , d2lab_node= D2LABlab (lab) , d2lab_overld= opt } // end of [d2lab_lab] implement d2lab_ind (loc, ind) = '{ d2lab_loc= loc , d2lab_node= D2LABind (ind) , d2lab_overld= None (*void*) } // end of [d2lab_ind] (* ****** ****** *) implement i2nvarg_make (d2v, s2e) = '{ i2nvarg_var= d2v, i2nvarg_type= s2e } (* end of [i2nvarg_make] *) (* ****** ****** *) implement i2nvarg_get_var (arg) = let val d2v = arg.i2nvarg_var val opt = d2var_get_view (d2v) in case+ opt of | Some(d2vw) => d2vw | None() => d2v end // end of [i2nvarg_get_var] implement i2nvarg_get_type (arg) = let // val opt = arg.i2nvarg_type // in // case+ opt of | None() => None() | Some(s2e) => let val d2v = arg.i2nvarg_var val ismut = d2var_is_mutabl (d2v) in if ismut then let val- Some(s2l) = d2var_get_addr(d2v) // end of [val] in Some(s2exp_at (s2e, s2l)) end // end of [then] else opt // end of [else] // end of [if] end // end of [Some] // end // end of [i2nvarg_get_type] (* ****** ****** *) implement i2nvresstate_nil = i2nvresstate_make ( list_nil(*svs*), list_nil(*gua*), list_nil(*arg*) ) // end of [i2nvresstate_nil] implement i2nvresstate_make (s2vs, s2ps, arg) = '{ i2nvresstate_svs= s2vs , i2nvresstate_gua= s2ps , i2nvresstate_arg= arg , i2nvresstate_met= None () } // end of [i2nvresstate_make] implement i2nvresstate_make_met (svs, gua, arg, met) = '{ i2nvresstate_svs= svs , i2nvresstate_gua= gua , i2nvresstate_arg= arg , i2nvresstate_met= met } // end of [i2nvresstate_make] (* ****** ****** *) implement loopi2nv_make ( loc, svs, gua, met, arg, res ) = '{ loopi2nv_loc= loc , loopi2nv_svs= svs , loopi2nv_gua= gua , loopi2nv_arg= arg , loopi2nv_met= met , loopi2nv_res= res } // end of [loopi2nv_make] (* ****** ****** *) implement i2fcl_make (loc, test, body) = '{ i2fcl_loc= loc , i2fcl_test= test, i2fcl_body= body } (* end of [i2fcl_make] *) (* ****** ****** *) implement gm2at_make (loc, d2e, p2topt) = '{ gm2at_loc= loc, gm2at_exp= d2e, gm2at_pat= p2topt } // end of [gm2at_make] implement c2lau_make ( loc, p2t, gua, seq, neg, d2e ) = '{ c2lau_loc= loc , c2lau_pat= p2t , c2lau_gua= gua , c2lau_seq= seq , c2lau_neg= neg , c2lau_body= d2e } // end of [c2lau_make] implement sc2lau_make (loc, sp2t, d2e) = '{ sc2lau_loc= loc, sc2lau_pat= sp2t, sc2lau_body= d2e } // end of [sc2lau_make] (* ****** ****** *) // // HX: various declarations // (* ****** ****** *) implement i2mpdec_make ( loc, locid , d2c, s2vs, s2ess, s2pss, def ) = '{ i2mpdec_loc= loc , i2mpdec_locid= locid , i2mpdec_cst= d2c , i2mpdec_imparg= s2vs , i2mpdec_tmparg= s2ess, i2mpdec_tmpgua= s2pss , i2mpdec_def= def } // end of [i2mpdec_make] (* ****** ****** *) implement f2undec_make ( loc, d2v, def, ann ) = '{ f2undec_loc= loc , f2undec_var= d2v , f2undec_def= def , f2undec_ann= ann } // end of [f2undec_make] (* ****** ****** *) implement v2aldec_make ( loc, p2t, def, ann ) = '{ v2aldec_loc= loc , v2aldec_pat= p2t , v2aldec_def= def , v2aldec_ann= ann } // end of [v2aldec_make] (* ****** ****** *) implement v2ardec_make ( loc, knd , s2v, d2v, pfat, s2eopt, init, d2vopt ) = '{ v2ardec_loc= loc , v2ardec_knd= knd // knd=0/1:var/ptr , v2ardec_svar= s2v // static address , v2ardec_dvar= d2v // dynamic address , v2ardec_pfat= pfat // proof of at-view , v2ardec_type= s2eopt // type annotation , v2ardec_init= init // value for initialization , v2ardec_dvaropt= d2vopt // address of variable } // end of [v2ardec_make] implement prv2ardec_make ( loc, d2v, s2eopt, init ) = '{ prv2ardec_loc= loc , prv2ardec_dvar= d2v , prv2ardec_type= s2eopt , prv2ardec_init= init } // end of [prv2ardec_make] (* ****** ****** *) // extern fun d2ecl_make_node ( loc: location, node: d2ecl_node ) : d2ecl // end-of-function implement d2ecl_make_node (loc, node) = '{ d2ecl_loc= loc, d2ecl_node= node } // (* ****** ****** *) // implement d2ecl_none(loc) = d2ecl_make_node (loc, D2Cnone()) // implement d2ecl_list(loc, xs) = d2ecl_make_node (loc, D2Clist(xs)) // (* ****** ****** *) implement d2ecl_symintr (loc, ids) = d2ecl_make_node (loc, D2Csymintr (ids)) // end of [d2ecl_symintr] implement d2ecl_symelim (loc, ids) = d2ecl_make_node (loc, D2Csymelim (ids)) // end of [d2ecl_symelim] (* ****** ****** *) implement d2ecl_overload ( loc, id, pval, def ) = d2ecl_make_node(loc, D2Coverload(id, pval, def)) // end of [d2ecl_overload] (* ****** ****** *) // implement d2ecl_pragma (loc, e1xps) = d2ecl_make_node(loc, D2Cpragma(e1xps)) // implement d2ecl_codegen (loc, knd, xs) = d2ecl_make_node(loc, D2Ccodegen(knd, xs)) // (* ****** ****** *) // implement d2ecl_stacsts (loc, s2cs) = d2ecl_make_node (loc, D2Cstacsts (s2cs)) implement d2ecl_stacons (loc, knd, s2cs) = d2ecl_make_node (loc, D2Cstacons (knd, s2cs)) // (* ****** ****** *) (* implement d2ecl_stavars (loc, xs) = d2ecl_make_node (loc, D2Cstavars (xs)) // end of [d2ecl_stavars] *) (* ****** ****** *) // implement d2ecl_saspdec (loc, d0) = d2ecl_make_node(loc, D2Csaspdec(d0)) // implement d2ecl_reassume (loc, s2c) = d2ecl_make_node(loc, D2Creassume(s2c)) // (* ****** ****** *) // implement d2ecl_extype (loc, name, def) = d2ecl_make_node (loc, D2Cextype (name, def)) implement d2ecl_extvar (loc, name, def) = d2ecl_make_node (loc, D2Cextvar (name, def)) implement d2ecl_extcode (loc, knd, pos, code) = d2ecl_make_node (loc, D2Cextcode (knd, pos, code)) // (* ****** ****** *) // implement d2ecl_exndecs (loc, d2cs) = d2ecl_make_node (loc, D2Cexndecs (d2cs)) // implement d2ecl_datdecs (loc, knd, s2cs) = d2ecl_make_node (loc, D2Cdatdecs (knd, s2cs)) // (* ****** ****** *) // implement d2ecl_dcstdecs (loc, knd, dck, d2cs) = d2ecl_make_node (loc, D2Cdcstdecs (knd, dck, d2cs)) // (* ****** ****** *) // implement d2ecl_fundecs (loc, knd, decarg, f2ds) = d2ecl_make_node (loc, D2Cfundecs (knd, decarg, f2ds)) // (* ****** ****** *) implement d2ecl_valdecs (loc, knd, v2ds) = d2ecl_make_node (loc, D2Cvaldecs (knd, v2ds)) implement d2ecl_valdecs_rec (loc, knd, v2ds) = d2ecl_make_node (loc, D2Cvaldecs_rec (knd, v2ds)) (* ****** ****** *) implement d2ecl_vardecs (loc, v2ds) = d2ecl_make_node (loc, D2Cvardecs (v2ds)) implement d2ecl_prvardecs (loc, v2ds) = d2ecl_make_node (loc, D2Cprvardecs (v2ds)) (* ****** ****** *) implement d2ecl_impdec (loc, knd, d2c) = d2ecl_make_node (loc, D2Cimpdec (knd, d2c)) (* ****** ****** *) implement d2ecl_include (loc, knd, d2cs) = d2ecl_make_node (loc, D2Cinclude (knd, d2cs)) (* ****** ****** *) implement d2ecl_staload ( loc, idopt, cfil, flag, fenv, loaded ) = d2ecl_make_node (loc, D2Cstaload (idopt, cfil, flag, fenv, loaded)) // endof [d2ecl_staload] implement d2ecl_staloadloc ( loc, pfil, nspace, fenv ) = d2ecl_make_node (loc, D2Cstaloadloc (pfil, nspace, fenv)) (* ****** ****** *) implement d2ecl_dynload (loc, fil) = d2ecl_make_node (loc, D2Cdynload (fil)) (* ****** ****** *) implement d2ecl_local (loc, head, body) = d2ecl_make_node (loc, D2Clocal (head, body)) // end of [d2ecl_local] (* ****** ****** *) implement d2ecl_errdec (loc) = d2ecl_make_node (loc, D2Cerrdec ()) (* ****** ****** *) extern typedef "p2at_t" = p2at extern typedef "d2exp_t" = d2exp %{$ ats_void_type patsopt_p2at_set_type ( ats_ptr_type p2t, ats_ptr_type opt ) { ((p2at_t)p2t)->atslab_p2at_type = opt ; return ; } // end of [patsopt_p2at_set_type] ats_void_type patsopt_d2exp_set_type ( ats_ptr_type d2e, ats_ptr_type opt ) { ((d2exp_t)d2e)->atslab_d2exp_type = opt ; return ; } // end of [patsopt_d2exp_set_type] %} // end of [%{$] (* ****** ****** *) (* end of [pats_dynexp2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_tmplab.dats0000644000175000017500000000455113431250607022022 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp staload LOC = "./pats_location.sats" typedef location = $LOC.location (* ****** ****** *) staload "./pats_histaexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) local assume tmplab_type = '{ tmplab_loc = location, tmplab_stamp = stamp } // end of [tmplab] in (* in of [local] *) implement tmplab_make (loc) = let val stamp = $STMP.tmplab_stamp_make () in '{ tmplab_loc= loc, tmplab_stamp= stamp } end // end of [tmplab_make] implement tmplab_get_loc (tl) = tl.tmplab_loc implement tmplab_get_stamp (tl) = tl.tmplab_stamp end // end of [local] (* ****** ****** *) implement fprint_tmplab (out, tl) = { val stamp = tmplab_get_stamp (tl) val () = fprint_string (out, "tmplab(") val () = $STMP.fprint_stamp (out, stamp) val () = fprint_string (out, ")") } (* end of [fprint_tmplab] *) (* ****** ****** *) (* end of [pats_ccomp_tmplab.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3_appenv.hats0000644000175000017500000000704113431250607023203 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: // Hongwei Xi // Authoremail: // gmhwxiATgmailDOTcom // Start Time: December, 2014 // (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) staload "./pats_trans3_env.sats" staload "./pats_constraint3.sats" (* ****** ****** *) (* #include "./pats_staexp2_appenv.hats" *) (* ****** ****** *) // extern fun s3itm_app : synent_app (s3itm) extern fun s3itmlst_app : synent_app (s3itmlst) extern fun s3itmlstlst_app : synent_app (s3itmlstlst) // extern fun h3ypo_app : synent_app (h3ypo) // extern fun c3nstr_app : synent_app (c3nstr) // (* ****** ****** *) implement s3itm_app (s3i, env) = let in // case+ s3i of // | S3ITMsvar(s2v) => s2var_app (s2v, env) | S3ITMhypo(h3p) => h3ypo_app (h3p, env) // | S3ITMsVar(s2V) => s2Var_app (s2V, env) // | S3ITMcnstr(c3t) => c3nstr_app (c3t, env) // | S3ITMcnstr_ref(c3tr) => let val ref = c3tr.c3nstroptref_ref in case+ !ref of | None() => () | Some(c3t) => c3nstr_app (c3t, env) end // end of [S3ITMcnstr_ref] // | S3ITMdisj(s3iss) => s3itmlstlst_app (s3iss, env) // | S3ITMsolassert(s2e) => s2exp_app (s2e, env) // end // end of [s3itm_app] (* ****** ****** *) // implement s3itmlst_app (xs, env) = let in // case+ xs of | list_nil () => () | list_cons (x, xs) => ( s3itm_app(x, env); s3itmlst_app(xs, env) ) (* end of [list_cons] *) // end (* end of [s3itmlst_app] *) // implement s3itmlstlst_app (xss, env) = let in // case+ xss of | list_nil () => () | list_cons (xs, xss) => ( s3itmlst_app(xs, env); s3itmlstlst_app(xss, env) ) (* end of [list_cons] *) // end (* end of [s3itmlstlst_app] *) // (* ****** ****** *) implement h3ypo_app (h3p0, env) = let in // case+ h3p0.h3ypo_node of // | H3YPOprop (s2e) => s2exp_app (s2e, env) | H3YPObind (s2v1, s2e2) => ( s2var_app (s2v1, env); s2exp_app (s2e2, env) ) | H3YPOeqeq (s2e1, s2e2) => ( s2exp_app (s2e1, env); s2exp_app (s2e2, env) ) // end // end of [h3ypo_app] (* ****** ****** *) implement c3nstr_app (c3t0, env) = let (* val () = println! ("c3nstr_app: c3t0 = ", c3t0) *) in // case+ c3t0.c3nstr_node of // | C3NSTRprop(s2e) => s2exp_app (s2e, env) | C3NSTRitmlst(s3is) => s3itmlst_app (s3is, env) | C3NSTRsolverify(s2e) => s2exp_app (s2e, env) // end // end of [c3nstr_app] (* ****** ****** *) (* end of [pats_constraint3_appenv.hats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_staexp.dats0000644000175000017500000010410213431250607022402 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) #include "./pats_basics.hats" (* ****** ****** *) staload "./pats_symbol.sats" staload "./pats_lexing.sats" staload "./pats_tokbuf.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) #define l2l list_of_list_vt #define t2t option_of_option_vt (* ****** ****** *) vtypedef s0explst12 = list12 (s0exp) vtypedef labs0explst12 = list12 (labs0exp) (* ****** ****** *) fun s0exp_list12 ( t_beg: token, ent2: s0explst12, t_end: token ) : s0exp = ( // case+ ent2 of | ~LIST12one(xs) => s0exp_list(t_beg, (l2l)xs, t_end) | ~LIST12two(xs1, xs2) => s0exp_list2(t_beg, (l2l)xs1, (l2l)xs2, t_end) // ) (* end of [s0exp_list12] *) (* ****** ****** *) fun s0exp_tytup12 ( knd: int , t_beg: token, ent2: s0explst12, t_end: token ) : s0exp = ( // case+ ent2 of | ~LIST12one(xs) => s0exp_tytup(knd, t_beg, ~1, (l2l)xs, t_end) | ~LIST12two(xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in s0exp_tytup(knd, t_beg, npf, (l2l)xs12, t_end) end // end of [LIST12two] // ) (* end of [s0exp_tytup12] *) (* ****** ****** *) fun s0exp_tyrec12 ( knd: int , t_beg: token, ent2: labs0explst12, t_end: token ) : s0exp = ( // case+ ent2 of | ~LIST12one(xs) => s0exp_tyrec(knd, t_beg, ~1, (l2l)xs, t_end) | ~LIST12two(xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in s0exp_tyrec(knd, t_beg, npf, (l2l)xs12, t_end) end // end of [LIST12two] // ) (* end of [s0exp_tyrec12] *) (* ****** ****** *) fun s0exp_tyrec12_ext ( name: string , t_beg: token, ent2: labs0explst12, t_end: token ) : s0exp = ( // case+ ent2 of | ~LIST12one(xs) => s0exp_tyrec_ext(name, t_beg, ~1, (l2l)xs, t_end) | ~LIST12two(xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in s0exp_tyrec_ext(name, t_beg, npf, (l2l)xs12, t_end) end // end of [LIST12two] // ) (* end of [s0exp_tyrec12_ext] *) (* ****** ****** *) fun p_s0expseq_BAR_s0expseq ( buf: &tokbuf, bt: int, err: &int ) : s0explst12 = plist12_fun (buf, bt, p_s0exp) // end of [p_s0expseq_BAR_s0expseq] fun p_labs0expseq_BAR_labs0expseq ( buf: &tokbuf, bt: int, err: &int ) : labs0explst12 = let val _ = p_COMMA_test (buf) in plist12_fun (buf, bt, p_labs0exp) end // end of [p_labs0expseq_BAR_labs0expseq] (* ****** ****** *) (* si0de | IDENTIFIER_alp | IDENTIFIER_sym (* | R0EAD // this one is removed in Postiats *) | AT | BANG | LT | GT | AMPERSAND | BACKSLASH | TILDE | MINUSGT // | REFAT // ref@ for flatten ref in a record // *) implement p_si0de (buf, bt, err) = let // val tok = tokbuf_get_token(buf) // val loc = tok.token_loc // macdef incby1() = tokbuf_incby1(buf) // in // case+ tok.token_node of // case+ // | T_IDENT_alp(x) => let val () = incby1() in i0de_make_string(loc, x) end | T_IDENT_sym(x) => let val () = incby1() in i0de_make_string(loc, x) end // | T_AT() => let val () = incby1() in i0de_make_sym(loc, symbol_AT) end | T_BANG() => let val () = incby1() in i0de_make_sym(loc, symbol_BANG) end // | T_LT() => let val () = incby1() in i0de_make_sym(loc, symbol_LT) end | T_GT() => let val () = incby1() in i0de_make_sym(loc, symbol_GT) end // | T_TILDE() => let val () = incby1() in i0de_make_sym(loc, symbol_TILDE) end // | T_MINUSGT() => let val () = incby1() in i0de_make_sym(loc, symbol_MINUSGT) end // | T_BACKSLASH() => let val () = incby1() in i0de_make_sym(loc, symbol_BACKSLASH) end // (* // // HX-2015-12-10: // 'ref@' is removed // | T_REFAT() => let val () = incby1() in i0de_make_sym(loc, symbol_REFAT) end // end of [T_REFAT] *) // | _ (*rest*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt(bt, loc, PE_si0de) in synent_null() // end of [val] end // end of [_] // end // end of [p_si0de] (* ****** ****** *) (* s0taq | /*empty*/ | i0de_dlr DOT | i0de_dlr COLON /* | DOLLAR LITERAL_string DOT // this one is removed */ *) implement p_s0taq (buf, bt, err) = let // val n0 = tokbuf_get_ntok (buf) // val tok = tokbuf_get_token (buf) // val loc = tok.token_loc // var ent: synent? // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ 0 of | _ when ptest_fun ( buf, p_i0de_dlr, ent ) => let val bt = 0 val ent1 = synent_decode{i0de}(ent) // end of [val] val tok2 = tokbuf_get_token (buf) in case+ tok2.token_node of | T_DOT () => let val () = incby1 () in s0taq_symdot (ent1, tok2) end (* // // HX-2017-01-24: // it is never in use // | T_COLON () => let val () = incby1 () in s0taq_symcolon (ent1, tok2) end *) | _ (*non-DOT-COLON*) => let val () = the_parerrlst_add_ifnbt (bt, loc, PE_s0taq) in tokbuf_set_ntok_null (buf, n0) end // end of [_] end (* end of [_ when ...] *) | _ (*rest*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_s0taq) in synent_null () end (* end of [_] *) // end // end of [p_s0taq] (* ****** ****** *) // (* sqi0de := si0de | s0taq si0de *) // implement p_sqi0de (buf, bt, err) = let // val err0 = err var ent: synent? // val n0 = tokbuf_get_ntok (buf) // in // case+ 0 of | _ when ptest_fun ( buf, p_si0de, ent ) => sqi0de_make_none (synent_decode{i0de}(ent)) // end of [_ when ...] | _ => let val ent1 = p_s0taq (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_si0de, err0) in if err = err0 then sqi0de_make_some (ent1, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [_] // end // end of [p_sqi0de] (* ****** ****** *) extern fun p_asnameopt : parser (s0tringopt) // COLON s0rt // end of [p_asnameopt] implement p_asnameopt (buf, bt, err) = t2t (ptokentopt_fun (buf, is_AS, p_s0tring)) // end of [p_colons0rtopt] (* ****** ****** *) (* // // HX-2011-10-15: // labs0exp ::= l0ab [AS string] EQ s0exp // typedef foo = $extype_struct "foo_struct" of { in_ as "in" = int // the C-name of the field is "in" } (* end of [foo] *) *) implement p_labs0exp ( buf, bt, err ) = let val err0 = err val tok = tokbuf_get_token(buf) // end of [val] val ent1 = p_l0ab(buf, bt, err) val ent2 = pif_fun(buf, bt, err, p_asnameopt, err0) // end of [val] val bt = 0 val ent3 = pif_fun(buf, bt, err, p_EQ, err0) val ent4 = pif_fun(buf, bt, err, p_s0exp, err0) in // if (err = err0) then labs0exp_make(ent1, ent2, ent4) else let val () = the_parerrlst_add_ifnbt(bt, tok.token_loc, PE_labs0exp) // end of [val] in synent_null((*void*)) end (* end of [if] *) // end // end of [p_labs0exp] (* ****** ****** *) // (* s0arrdim | LBRACKET s0expseq RBRACKET *) // fun p_s0arrdim ( buf: &tokbuf, bt: int, err: &int ) : s0arrdim = let val err0 = err val n0 = tokbuf_get_ntok (buf) val ent1 = p_LBRACKET (buf, bt, err) val bt = 0 val ent2 = ( if err = err0 then ( pstar_fun0_COMMA{s0exp}(buf, bt, p_s0exp) ) else list_vt_nil((*void*)) // end of [if] ) : s0explst_vt // end-of-val val ent3 = pif_fun(buf, bt, err, p_RBRACKET, err0) in if err = err0 then s0arrdim_make(ent1, (l2l)ent2, ent3) else let val () = list_vt_free(ent2) in tokbuf_set_ntok_null(buf, n0) end // end of [if] end (* end of [s0arrdim_make] *) // (* ****** ****** *) (* atms0exp | i0nt | LITERAL_char // | si0de | s0taq i0de | OP si0de // | LPAREN s0expseq [BAR s0expseq] RPAREN // | ATLPAREN s0expseq [BAR s0expseq] RPAREN // knd = 0 | QUOTELPAREN s0expseq [BAR s0expseq] RPAREN // knd = 1 // | ATLBRACE labs0expseq [BAR labs0expseq] RBRACE // knd = 0 | QUOTELBRACE labs0expseq [BAR labs0expseq] RBRACE // knd = 1 // | ATLBRACKET s0exp RBRACKET s0arrind // for instance: @[a][n] // // HX: boxed types // | DLRTUP_T LPAREN s0expseq RPAREN | DLRTUP_T LPAREN s0expseq BAR s0expseq RPAREN | DLRTUP_VT LPAREN s0expseq RPAREN | DLRTUP_VT LPAREN s0expseq BAR s0expseq RPAREN | DLRREC_T LBRACE labs0expseq RBRACE | DLRREC_T LBRACE labs0expseq BAR labs0expseq RBRACE | DLRREC_VT LBRACE labs0expseq RBRACE | DLRREC_VT LBRACE labs0expseq BAR labs0expseq RBRACE // // HX: unboxed external struct types // | DLREXTYPE_STRUCT LITERAL_string OF LBRACE labs0expseq RBRACE // | MINUSLT e0fftagseq GT | MINUSLTGT // | LBRACE s0quaseq RBRACE // | LBRACKET s0quaseq RBRACKET | HASHLBRACKET s0quaseq RBRACKET // | DLRD2CTYPE LPAREN S0Ed2ctype RPAREN // *) (* ****** ****** *) // extern fun p_atms0exp_tok ( buf: &tokbuf , bt: int, err: &int, tok: token ) : s0exp // end-of-fun // implement p_atms0exp (buf, bt, err) = ( ptokwrap_fun (buf, bt, err, p_atms0exp_tok, PE_atms0exp) ) (* end of [p_atms0exp] *) // implement p_atms0exp_tok ( buf, bt, err, tok ) = let // val err0 = err var ent: synent? // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | _ when ptest_fun (buf, p_si0de, ent) => s0exp_i0de (synent_decode{i0de}(ent)) // | T_INT _ => let val () = incby1 () in s0exp_i0nt(tok) end // end of [T_INT] // | T_CHAR (c) => let val () = incby1 () in s0exp_c0har(tok) end // end of [T_CHAR] // | T_FLOAT _ => let val () = incby1 () in s0exp_f0loat(tok) end // end of [T_FLOAT] // | T_STRING _ => let val () = incby1 () in s0exp_s0tring(tok) end // end of [T_STRING] // | T_OP((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_si0de (buf, bt, err) in if err = err0 then s0exp_opid (tok, ent2) else synent_null() // end of [if] end // | _ when ptest_fun (buf, p_s0taq, ent) => let val bt = 0 val ent1 = synent_decode {s0taq} (ent) val ent2 = p_si0de (buf, bt, err) // err=err0 in if err = err0 then s0exp_sqid (ent1, ent2) else synent_null () // end of [if] end // | T_LPAREN() => let val bt = 0 val () = incby1 () val ent2 = p_s0expseq_BAR_s0expseq(buf, bt, err) val ent3 = p_RPAREN (buf, bt, err) // err=err0 in if err = err0 then s0exp_list12 (tok, ent2, ent3) else let val () = list12_free (ent2) in synent_null() end // end of [if] end // | tnd when is_LPAREN_deco (tnd) => let val bt = 0 val () = incby1 () val ent2 = p_s0expseq_BAR_s0expseq(buf, bt, err) val ent3 = p_RPAREN (buf, bt, err) // err=err0 in if err = err0 then let val knd = ( if is_ATLPAREN(tnd) then TYTUPKIND_flt else TYTUPKIND_box // end of [if] ) : int // end of [val] in s0exp_tytup12 (knd, tok, ent2, ent3) end // end of [then] else let val () = list12_free (ent2) in synent_null() end // end of [else] // end of [if] end | tnd when is_LBRACE_deco (tnd) => let val bt = 0 val () = incby1 () val ent2 = p_labs0expseq_BAR_labs0expseq (buf, bt, err) // end of [val] val ent3 = p_RBRACE (buf, bt, err) // err=err0 in if err = err0 then let val knd = ( if is_ATLBRACE(tnd) then TYRECKIND_flt else TYRECKIND_box // end of [if] ) : int // end of [val] in s0exp_tyrec12 (knd, tok, ent2, ent3) end // end of [then] else let val () = list12_free (ent2) in synent_null() end // end of [else] // end of [if] end // | T_ATLBRACKET ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_s0exp (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RBRACKET, err0) val ent4 = pif_fun (buf, bt, err, p_s0arrdim, err0) in if err = err0 then s0exp_tyarr (tok, ent2, ent4) else synent_null() // end of [if] end // | T_DLRTUP(knd) => let val bt = 0 val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) in if err = err0 then let val ent3 = p_s0expseq_BAR_s0expseq (buf, bt, err) // end of [val] val ent4 = p_RPAREN (buf, bt, err) // err=err0 in if err = err0 then s0exp_tytup12 (knd, tok, ent3, ent4) else let val () = list12_free (ent3) in synent_null() end (* end of [else] *) // end of [if] end // end of [then] else synent_null((*error*)) // end of [if] end | T_DLRREC(knd) => let val bt = 0 val () = incby1 () val ent2 = p_LBRACE (buf, bt, err) in if err = err0 then let val ent3 = p_labs0expseq_BAR_labs0expseq(buf, bt, err) // end of [val] val ent4 = p_RBRACE (buf, bt, err) // err=err0 in if err = err0 then s0exp_tyrec12 (knd, tok, ent3, ent4) else let val () = list12_free (ent3) in synent_null() end (* end of [if] *) end else synent_null () // end of [if] end // | T_DLREXTYPE_STRUCT ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_s0tring (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_OF, err0) val ent4 = pif_fun (buf, bt, err, p_LBRACE, err0) in if err = err0 then let val ent5 = p_labs0expseq_BAR_labs0expseq(buf, bt, err) // end of [val] val ent6 = p_RBRACE (buf, bt, err) // err=err0 in if err = err0 then let val-T_STRING (name) = ent2.token_node in s0exp_tyrec12_ext (name, tok, ent5, ent6) end // end of [then] else let val () = list12_free (ent5) in synent_null() end (* end of [else] *) // end of [if] end // end of [then] else synent_null((*void*)) // end of [else] // end of [if] end // | T_MINUSLT() => let val bt = 0 val () = incby1 () val ent2 = p_e0fftaglst (buf, bt, err) val ent3 = p_GT (buf, bt, err) // err=err0 in if err = err0 then s0exp_imp (tok, ent2, ent3) else synent_null() (* end of [if] *) end | T_MINUSLTGT() => let val () = incby1 () in s0exp_imp_nil(tok) end // end of [T_MINUSLTGT] // | T_LBRACE() => let val bt = 0 val () = incby1 () val ent2 = p_s0quaseq (buf, bt, err) val ent3 = p_RBRACE (buf, bt, err) // err=err0 in if err = err0 then s0exp_uni (tok, ent2, ent3) else synent_null() // (* end of [if] *) end // | T_LBRACKET() => let val bt = 0 val () = incby1 () val ent2 = p_s0quaseq (buf, bt, err) val ent3 = p_RBRACKET (buf, bt, err) // err=err0 in if err = err0 then s0exp_exi (0(*funres*), tok, ent2, ent3) else synent_null() // end of [if] end | T_HASHLBRACKET ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_s0quaseq (buf, bt, err) val ent3 = p_RBRACKET (buf, bt, err) // err=err0 in if err = err0 then s0exp_exi (1(*funres*), tok, ent2, ent3) else synent_null() // end of [if] end // | T_DLRD2CTYPE() => let val bt = 0 val () = incby1 () // val ent2 = p_LPAREN (buf, bt, err) val ent3 = pif_fun(buf, bt, err, p_S0Ed2ctype, err0) val ent3 = $UN.cast{S0Ed2ctype}(ent3) val ent4 = pif_fun (buf, bt, err, p_RPAREN, err0) // in if err = err0 then s0exp_d2ctype(tok, ent3, ent4) else synent_null() // end of [if] end // | _ (*rest-of-tokens*) => let val () = err := err + 1 in synent_null() end // end // end of [p_atms0exp_tok] (* ****** ****** *) // (* apps0exp := {atms0exp}+ *) // fun p_apps0exp ( buf: &tokbuf, bt: int, err: &int ) : s0exp = let // fun loop ( x0: s0exp, xs1: s0explst_vt ) : s0exp = ( case+ xs1 of | ~list_vt_cons (x1, xs1) => let val x0 = s0exp_app (x0, x1) in loop (x0, xs1) end // end of [list_vt_cons] | ~list_vt_nil () => x0 ) (* end of [loop] *) // val xs = pstar1_fun (buf, bt, err, p_atms0exp) // in // case+ xs of | ~list_vt_cons (x, xs) => loop (x, xs) | ~list_vt_nil () => synent_null () // HX: [err] changed // end // end of [p_apps0exp] // (* ****** ****** *) // (* exts0exp := | DLREXTYPE LITERAL_string {atms0exp}* // eg: $extype"list" (int) | DLREXTKIND LITERAL_string {atms0exp}* // eg: $extkind"atstype_int64" *) // fun p_exts0exp ( buf: &tokbuf, bt: int, err: &int ) : s0exp = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_DLREXTYPE () => let val bt = 0 val () = incby1 () val str = p_s0tring (buf, bt, err) in if err = err0 then let val arg = pstar_fun (buf, bt, p_atms0exp) val arg = list_of_list_vt (arg) // nonlinization in s0exp_extype (tok, str, arg) end else tokbuf_set_ntok_null (buf, n0) // endif end // end of [T_DLREXTYPE] | T_DLREXTKIND () => let val bt = 0 val () = incby1 () val str = p_s0tring (buf, bt, err) in if err = err0 then let val arg = pstar_fun (buf, bt, p_atms0exp) val arg = list_of_list_vt (arg) // nonlinization in s0exp_extkind (tok, str, arg) end else tokbuf_set_ntok_null (buf, n0) // endif end // end of [T_DLREXTKIND] | _ => let val () = err := err + 1 (* val () = the_parerrlst_add_ifnbt (bt, loc, PE_exts0exp) *) in synent_null () end (* end of [_] *) // end // end of [p_exts0exp] // (* ****** ****** *) // (* s0exp0 ::= apps0exp | exts0exp *) // fun p_s0exp0 ( // no annotation buf: &tokbuf, bt: int, err: &int ) : s0exp = let // var ent: synent? // in // case+ 0 of | _ when ptest_fun ( buf, p_apps0exp, ent ) => synent_decode {s0exp} (ent) | _ when ptest_fun ( buf, p_exts0exp, ent ) => synent_decode {s0exp} (ent) | _ (*error*) => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [p_s0exp0] // (* ****** ****** *) // (* s0exp ::= | s0exp0 [COLON s0rt] | LAM s0margseq colons0rtopt EQGT s0exp // COLON > LAM *) // fun s0exp_annopt ( ent1: s0exp, ent2: s0rtopt ) : s0exp = ( case+ ent2 of | Some s0t => s0exp_ann (ent1, s0t) | None () => ent1 ) (* end of [s0exp_annopt] *) // (* ****** ****** *) // extern fun p_s0exp_tok ( // no annotation buf: &tokbuf , bt: int, err: &int, tok: token ) : s0exp // implement p_s0exp (buf, bt, err) = ( ptokwrap_fun (buf, bt, err, p_s0exp_tok, PE_s0exp) ) (* end of [p_s0exp] *) // implement p_s0exp_tok ( buf, bt, err, tok ) = let // val err0 = err var ent: synent? // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | _ when ptest_fun ( buf, p_s0exp0, ent ) => let val bt = 0 val ent1 = synent_decode {s0exp} (ent) val ent2 = p_colons0rtopt (buf, bt, err) in if err = err0 then s0exp_annopt (ent1, ent2) else synent_null ((*dangling COLON*)) // end of [if] end | T_LAM _ => let val bt = 0 val () = incby1 () val ent2 = pstar_fun {s0marg} (buf, bt, p_s0marg) val ent3 = p_colons0rtopt (buf, bt, err) // err = err0 val ent4 = pif_fun (buf, bt, err, p_EQGT, err0) val ent5 = pif_fun (buf, bt, err, p_s0exp, err0) in if err = err0 then s0exp_lams (tok, (l2l)ent2, ent3, ent5) else let val () = list_vt_free (ent2) in synent_null () end // end of [if] end | _ (*error*) => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [p_s0exp_tok] // (* ****** ****** *) // (* s0rtext | s0rt | LBRACE si0de COLON s0rt BAR s0exp barsemis0expseq RBRACE *) // implement p_s0rtext (buf, bt, err) = let // val err0 = err var ent: synent? // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | _ when ptest_fun (buf, p_s0rt, ent) => s0rtext_srt (synent_decode {s0rt} (ent)) // | T_LBRACE () => let val bt = 0 val () = incby1 () val ent2 = p_si0de (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_COLON, err0) val ent4 = pif_fun (buf, bt, err, p_s0rtext, err0) val ent5 = pif_fun (buf, bt, err, p_BAR, err0) val ent6 = pif_fun (buf, bt, err, p_s0exp, err0) val ent7 = ( if err = err0 then pstar_sep_fun (buf, bt, p_BARSEMI_test, p_s0exp) else list_vt_nil () ) : s0explst_vt val ent8 = pif_fun (buf, bt, err, p_RBRACE, err0) in if err = err0 then s0rtext_sub (tok, ent2, ent4, ent6, (l2l)ent7, ent8) else let val () = list_vt_free (ent7) val () = the_parerrlst_add_ifnbt (bt, loc, PE_s0rtext) in tokbuf_set_ntok_null (buf, n0) end (* end of [if] *) end // | _ (*error*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_s0rtext) in synent_null () end // end of [_] // end // end of [p_s0rtext] // (* ****** ****** *) // (* s0qua | apps0exp | si0de commasi0deseq COLON s0rtext *) // local // fun p_s0qua_rule2 ( buf: &tokbuf, bt: int, err: &int ) : s0qua = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val ent1 = p_si0de (buf, bt, err) (* val bt = 0 // HX: too many false positives *) val ent2 = ( if err = err0 then pstar_sep_fun(buf, bt, p_COMMA_test, p_si0de) else list_vt_nil((*void*)) // end of [if] ) : List_vt (i0de) // val ent3 = pif_fun (buf, bt, err, p_COLON, err0) val ent4 = pif_fun (buf, bt, err, p_s0rtext, err0) // in // if err = err0 then let val ent2 = (l2l)ent2 in s0qua_vars(ent1, ent2, ent4) end // end of [then] else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, n0) end (* end of [else] *) // end // end of [p_s0qua_rule2] // in // implement p_s0qua (buf, bt, err) = let // var ent: synent? // val tok = tokbuf_get_token(buf) // val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ 0 of | _ when ptest_fun ( buf, p_s0qua_rule2, ent ) => synent_decode {s0qua} (ent) | _ when ptest_fun(buf, p_apps0exp, ent) => s0qua_prop(synent_decode{s0exp}(ent)) | _ (*rest*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt(bt, loc, PE_s0qua) in synent_null () end // end // end of [p_s0qua] // end // end of [local] implement p_s0quaseq (buf, bt, err) = l2l(pstar_fun0_BARSEMI{s0qua}(buf, bt, p_s0qua)) // end of [p_s0quaseq] (* ****** ****** *) implement p_eqs0expopt (buf, bt, err) = t2t(ptokentopt_fun(buf, is_EQ, p_s0exp)) // end of [p_eqs0expopt] implement p_ofs0expopt (buf, bt, err) = t2t(ptokentopt_fun(buf, is_OF, p_s0exp)) // end of [p_ofs0expopt] implement p_colons0expopt (buf, bt, err) = t2t(ptokentopt_fun(buf, is_COLON, p_s0exp)) // end of [p_colons0expopt] (* ****** ****** *) (* q0marg ::= LBRACE s0quaseq RBRACE *) implement p_q0marg ( buf, bt, err ) : q0marg = let // val err0 = err // val n0 = tokbuf_get_ntok(buf) val tok = tokbuf_get_token(buf) // val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1(buf) // in // case+ tok.token_node of // case+ // | T_LBRACE() => let val bt = 0 val () = incby1 () val ent2 = p_s0quaseq(buf, bt, err) // end of [val] val ent3 = p_RBRACE(buf, bt, err) in if err = err0 then q0marg_make(tok, ent2, ent3) else let val () = the_parerrlst_add_ifnbt(bt, loc, PE_q0marg) // end of [val] in tokbuf_set_ntok_null (buf, n0) end // end of [else] // end of [if] end | _ => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt(bt, loc, PE_q0marg) in synent_null () end // end // end of [p_q0marg] implement p_q0margseq (buf, bt, err) = l2l(pstar_fun(buf, bt, p_q0marg)) // end of [p_q0margseq] (* ****** ****** *) (* cona0rgopt ::= | /*(empty)*/ | OF s0exp *) fun p_cona0rgopt ( buf: &tokbuf, bt: int, err: &int ) : s0expopt = p_ofs0expopt (buf, bt, err) (* coni0ndopt ::= /*(empty)*/ | LPAREN s0expseq RPAREN *) fun p_coni0ndopt ( buf: &tokbuf, bt: int, err: &int ) : s0expopt = let // val err0 = err // val n0 = tokbuf_get_ntok(buf) // val tok = tokbuf_get_token(buf) // val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ // | T_LPAREN() => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA{s0exp}(buf, bt, p_s0exp) // end of [val] val ent3 = p_RPAREN(buf, bt, err) in if err = err0 then let val ent2 = (l2l)ent2 val s0e = s0exp_list (tok, ent2, ent3) in Some (s0e) end // end of [then] else let val () = list_vt_free(ent2) (* val () = the_parerrlst_add_ifnbt(bt, tok.i0de_loc, PE_coni0nd) *) in tokbuf_set_ntok_null (buf, n0) // HX: missing RPAREN end // end of [else] // end of [if] end | _(*non-LPAREN*) => None((*void*)) // HX: there is no error // end // end of [p_coni0ndopt] (* ****** ****** *) (* e0xndec ::= conq0uaseq di0de cona0rgopt *) implement p_e0xndec (buf, bt, err) = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val ent1 = pstar_fun{q0marg}(buf, bt, p_q0marg) // val ent2 = p_di0de(buf, bt, err) // err=err0 // val bt = 0 val ent3 = ( if err = err0 then p_cona0rgopt(buf, bt, err) else None() ) : s0expopt // end of [val] // in // if err = err0 then let val ent1 = (l2l)ent1 in e0xndec_make (ent1, ent2, ent3) end // end of [then] else let val () = list_vt_free(ent1) in tokbuf_set_ntok_null(buf, n0) end // end of [else] // end // end of [p_e0xndec] (* ****** ****** *) // (* d0atcon ::= conq0uaseq di0de coni0ndopt cona0rgopt *) // fun p_d0atcon ( buf: &tokbuf, bt: int, err: &int ) : d0atcon = let // val err0 = err // val n0 = tokbuf_get_ntok(buf) // val ent1 = pstar_fun{q0marg}(buf, bt, p_q0marg) val ent2 = p_di0de(buf, bt, err) // err = err0 // val bt = 0 val ent3 = ( if err = err0 then p_coni0ndopt(buf, bt, err) else None() ) : s0expopt // end of [val] val ent4 = ( if err = err0 then p_cona0rgopt(buf, bt, err) else None() ) : s0expopt // end of [val] // in // if err = err0 then let val ent1 = (l2l)ent1 in d0atcon_make (ent1, ent2, ent3, ent4) end // end of [then] else let val () = list_vt_free(ent1) in tokbuf_set_ntok_null(buf, n0) end // end of [else] // end // end of [p_d0atcon] // implement p_d0atconseq (buf, bt, err) = let val _ = p_BAR_test(buf) in l2l(pstar_fun0_BAR (buf, bt, p_d0atcon)) end // end of [p_d0atconseq] // (* ****** ****** *) (* // a0typ ::= | s0exp0 | pi0de COLON s0exp0 // // s0exp0: annotation-free // *) implement p_a0typ (buf, bt, err) = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val tok = tokbuf_get_token (buf) val () = tokbuf_incby1 (buf) // val tok2 = tokbuf_get_token (buf) val () = tokbuf_set_ntok (buf, n0) // in // case+ tok2.token_node of // case+ // | T_COLON () => let // val ent1 = p_pi0de(buf, bt, err) // val bt = 0 val ent2 = pif_fun(buf, bt, err, p_COLON, err0) val ent3 = pif_fun(buf, bt, err, p_s0exp0, err0) // in if err = err0 then a0typ_make_some(ent1, ent3) else let (* val () = the_parerrlst_add_ifnbt(bt, tok.token_loc, PE_a0typ) *) in tokbuf_set_ntok_null (buf, n0) end (* end of [else] *) // end of [if] end | _ (*non-COLON*) => let val ent1 = p_s0exp0 (buf, bt, err) in if err = err0 then a0typ_make_none (ent1) else let (* val () = the_parerrlst_add_ifnbt(bt, tok.token_loc, PE_a0typ) *) in tokbuf_set_ntok_null (buf, n0) end (* end of [else] *) // end of [if] end // end // end of [p_a0typ] (* ****** ****** *) // vtypedef a0typlst12 = list12 (a0typ) // fun d0cstarg_atyplst12 ( t_beg: token, ent2: a0typlst12, t_end: token ) : d0cstarg = ( case+ ent2 of | ~LIST12one (xs) => d0cstarg_dyn (~1, t_beg, (l2l)xs, t_end) | ~LIST12two (xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in d0cstarg_dyn (npf, t_beg, (l2l)xs12, t_end) end ) (* end of [d0cstarg_amtyp12] *) // implement p_d0cstarg (buf, bt, err) = let // val err0 = err var ent: synent? // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ // | T_LBRACE () => let val bt = 0 val () = incby1 () val ent2 = p_s0quaseq (buf, bt, err) // end of [val] val ent3 = p_RBRACE (buf, bt, err) in if err = err0 then d0cstarg_sta (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | T_LPAREN () => let val bt = 0 val () = incby1 () val ent2 = plist12_fun (buf, bt, p_a0typ) // end of [val] val ent3 = p_RPAREN (buf, bt, err) in if err = err0 then d0cstarg_atyplst12 (tok, ent2, ent3) else let val () = list12_free (ent2) in tokbuf_set_ntok_null(buf, n0) end // end of [if] end | _ (*error*) => let val () = err := err + 1 in synent_null () end // end of [_] // end // end of [p_d0cstarg] // (* ****** ****** *) (* s0vararg ::= DOTDOT | DOTDOTDOT | s0argseq *) implement p_s0vararg (buf, bt, err) = let // val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // caes+ // | T_DOTDOT() => let val () = incby1 () in S0VARARGone(tok) end | T_DOTDOTDOT() => let val () = incby1 () in S0VARARGall(tok) end | _ (*rest*) => let val xs = pstar_fun0_COMMA{s0arg}(buf, bt, p_s0arg) // end of [val] val xs = list_of_list_vt (xs) val loc = ( case+ xs of | list_cons (x0, xs) => let val x0 = x0: s0arg val opt = list_last_opt (xs) in case+ opt of | ~Some_vt x1 => $LOC.location_combine (x0.s0arg_loc, x1.s0arg_loc) | ~None_vt () => x0.s0arg_loc end // end of [list_cons] | list_nil () => tok.token_loc ) : location // end of [val] in S0VARARGseq (loc, xs) end (* end of [_] *) // end // end of [p_s0vararg] (* s0exparg ::= DOTDOT | DOTDOTDOT | s0expseq *) implement p_s0exparg (buf, bt, err) = let // val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ // | T_DOTDOT() => let val () = incby1 () in S0EXPARGone() end | T_DOTDOTDOT() => let val () = incby1 () in S0EXPARGall() end | _ (*rest-of-tokens*) => let val xs = pstar_fun0_COMMA{s0exp}(buf, bt, p_s0exp) in S0EXPARGseq((l2l)xs) end // end // end of [p_s0exparg] (* ****** ****** *) (* witht0ype ::= [WITHTYPE s0exp] *) implement p_witht0ype (buf, bt, err) = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ // | T_WITHTYPE(knd) => let val bt = 0 val () = incby1 () val ent2 = p_s0exp (buf, bt, err) in if err = err0 then WITHT0YPEsome (knd, ent2) else tokbuf_set_ntok_null (buf, n0) // HX: [err] is set // end of [if] end | _ (*non-WITHTYPE*) => WITHT0YPEnone () // end // end of [p_witht0ype] (* ****** ****** *) fun p_atms0exp_ngt ( buf: &tokbuf, bt: int, err: &int ) : s0exp = let val tok = tokbuf_get_token (buf) in // case+ tok.token_node of // case+ // | T_GT () => let val () = err := err + 1 in synent_null() end // end of [T_GT] | _ (* non-GT *) => p_atms0exp (buf, bt, err) // end // end of [p_atms0exp_ngt] (* ****** ****** *) fun p_tmps0exp ( buf: &tokbuf, bt: int, err: &int ) : s0exp = let // fun loop ( x0: s0exp, xs: s0explst_vt ) : s0exp = let in // case+ xs of | ~list_vt_nil() => x0 | ~list_vt_cons(x, xs) => let val x0 = s0exp_app (x0, x) in loop(x0, xs) end // end of [list_vt_cons] // end // end of [loop] // val xs = pstar1_fun{s0exp}(buf, bt, err, p_atms0exp_ngt) // in // case+ xs of | ~list_vt_cons (x, xs) => loop(x, xs) // end of [cons] | ~list_vt_nil((*void*)) => synent_null() // [err] is set // end // end of [p_tmps0exp] implement p_tmps0expseq (buf, bt, err) = let // val tok = tokbuf_get_token (buf) val s0es = pstar_fun0_COMMA{s0exp}(buf, bt, p_tmps0exp) // in t0mpmarg_make (tok, (l2l)s0es) end // end of [p_tmps0expseq] (* ****** ****** *) implement p_S0Ed2ctype (buf, bt, err) = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) // var ent: synent? // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ // | _ when ptest_fun (buf, p_di0de, ent) => d0exp_ide (synent_decode{i0de}(ent)) // | _ when ptest_fun (buf, p_dqi0de, ent) => d0exp_dqid (synent_decode{dqi0de}(ent)) // | _ when ptest_fun ( buf, p_tmpqi0de, ent ) => let val bt = 0 val ent1 = synent_decode{dqi0de}(ent) val ent2 = pstar_fun1_sep{t0mpmarg}(buf, bt, err, p_tmps0expseq, p_GTLT_test) val ent3 = pif_fun (buf, bt, err, p_GT, err0) in if err = err0 then let val ent2 = (l2l)ent2 in d0exp_tmpid (ent1, ent2, ent3) end // end of [then] else let val () = list_vt_free(ent2) in synent_null() end (* end of [else] *) // end of [if] end // | _ (*rest-of-tokens*) => let val () = err := err + 1 in synent_null((*error*)) end // end // end of [p_S0Ed2ctype] (* ****** ****** *) (* end of [pats_parsing_staexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_env.dats0000644000175000017500000003531413431250607021443 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans1_staexp" (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload FIL = "./pats_filename.sats" staload FIX = "./pats_fixity.sats" staload SYM = "./pats_symbol.sats" (* ****** ****** *) staload "./pats_symmap.sats" staload "./pats_symenv.sats" (* ****** ****** *) staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" staload "./pats_trans1_env.sats" (* ****** ****** *) overload print with $LOC.print_location (* ****** ****** *) local // vtypedef e1xpenv = symenv (e1xp) // val [l0:addr] (pf | p0) = symenv_make_nil () val (pf0 | ()) = vbox_make_view_ptr{e1xpenv}(pf | p0) // assume e1xpenv_push_v = unit_v // HX: it is just a dummy // in (* in of [local] *) implement the_e1xpenv_add (k, i) = () where { prval vbox (pf) = pf0 val () = symenv_insert (!p0, k, i) } // end of [the_e1xpenv_add] implement the_e1xpenv_addperv (k, i) = () where { prval vbox (pf) = pf0 val () = symenv_pervasive_insert (!p0, k, i) } // end of [the_e1xpenv_addperv] implement the_e1xpenv_find (k) = let // prval vbox (pf) = pf0 // val ans = symenv_search (!p0, k) // in case+ ans of | Some_vt _ => (fold@ ans; ans) | ~None_vt () => symenv_pervasive_search (!p0, k) end // end of [the_e1xpenv_find] implement the_e1xpenv_pop ( pfenv | (*none*) ) = map where { prval vbox (pf) = pf0 prval unit_v () = pfenv val map = symenv_pop (!p0) } // end of [the_e1xpenv_pop_free] implement the_e1xpenv_push_nil () = (pfenv | ()) where { prval vbox (pf) = pf0 val () = symenv_push_nil (!p0) prval pfenv = unit_v () } // end of [the_e1xpenv_push_nil] fun the_e1xpenv_localjoin ( pfenv1: e1xpenv_push_v , pfenv2: e1xpenv_push_v | (*none*) ) = () where { prval vbox (pf) = pf0 prval unit_v () = pfenv1 prval unit_v () = pfenv2 val () = symenv_localjoin (!p0) } // end of [the_e1xpenv_localjoin] viewdef e1xpenv_save_v = unit_v fun the_e1xpenv_save () = let prval vbox (pf) = pf0 prval pfsave = unit_v () val () = symenv_savecur (!p0) in (pfsave | ()) end // end of [the_e1xpenv_save] fun the_e1xpenv_restore ( pfsave: e1xpenv_save_v | (*none*) ) : void = () where { prval vbox (pf) = pf0 prval unit_v () = pfsave val map = symenv_restore (!p0) val () = symmap_free (map) } // end of [the_e1xpenv_restore] end // end of [local] (* ****** ****** *) implement the_EXTERN_PREFIX_get () = let // macdef EXTPRFX = $SYM.symbol_ATS_EXTERN_PREFIX // val opt = the_e1xpenv_find (EXTPRFX) // in // case+ opt of | ~Some_vt (e) => ( case+ e.e1xp_node of | E1XPnone () => stropt_none | E1XPstring (x) => stropt_some (x) | _ => let val () = prerr_warning1_loc (e.e1xp_loc) val () = prerr ": a string definition is required for [ATS_EXTERN_PREFIX]." val () = prerr_newline () in stropt_none end // end of [_] ) // end of [Some_vt] | ~None_vt () => stropt_none // HX: [%] is kept to indicate a likely error // end of [None_vt] // end // end of [the_EXTERN_PREFIX_get] implement the_EXTERN_PREFIX_set (prfx) = let val e1xp = e1xp_string ($LOC.location_dummy, prfx) val () = the_e1xpenv_add ($SYM.symbol_ATS_EXTERN_PREFIX, e1xp) in // nothing end // end of [the_EXTERN_PREFIX_set] implement the_EXTERN_PREFIX_set_none () = let val e1xp = e1xp_none ($LOC.location_dummy) val () = the_e1xpenv_add ($SYM.symbol_ATS_EXTERN_PREFIX, e1xp) in // nothing end // end of [the_EXTERN_PREFIX_set_none] (* ****** ****** *) local vtypedef fxtyenv = symenv (fxty) val [l0:addr] (pf | p0) = symenv_make_nil () val (pf0 | ()) = vbox_make_view_ptr{fxtyenv} (pf | p0) assume fxtyenv_push_v = unit_v // HX: it is just a dummy in (* in of [local] *) implement the_fxtyenv_add (k, i) = () where { prval vbox (pf) = pf0 val () = symenv_insert (!p0, k, i) } // end of [the_fxtyenv_add] implement the_fxtyenv_find (k) = let prval vbox (pf) = pf0 val ans = symenv_search (!p0, k) in case+ ans of | Some_vt _ => (fold@ ans; ans) | ~None_vt () => symenv_pervasive_search (!p0, k) end // end of [the_fxtyenv_find] (* ****** ****** *) implement fprint_the_fxtyenv (out) = let prval vbox (pf) = pf0 in // HX: ref-effect is not allowed $effmask_ref (fprint_symenv_map (out, !p0, $FIX.fprint_fxty)) end // end of [fprint_the_fxtyenv] (* ****** ****** *) implement the_fxtyenv_pop ( pfenv | (*none*) ) = map where { prval vbox (pf) = pf0 prval unit_v () = pfenv val map = symenv_pop (!p0) } // end of [the_fxtyenv_pop_free] implement the_fxtyenv_push_nil () = (pfenv | ()) where { prval vbox (pf) = pf0 val () = symenv_push_nil (!p0) prval pfenv = unit_v () } // end of [the_fxtyenv_push_nil] fun the_fxtyenv_localjoin ( pfenv1: fxtyenv_push_v , pfenv2: fxtyenv_push_v | (*none*) ) = () where { prval vbox (pf) = pf0 prval unit_v () = pfenv1 prval unit_v () = pfenv2 val () = symenv_localjoin (!p0) } // end of [the_fxtyenv_localjoin] (* ****** ****** *) implement the_fxtyenv_pervasive_joinwth (map) = { prval vbox (pf) = pf0 val () = symenv_pervasive_joinwth0 (!p0, map) } // end of [the_fxtyenv_pervasive_joinwth] (* ****** ****** *) viewdef fxtyenv_save_v = unit_v fun the_fxtyenv_save () = let prval vbox (pf) = pf0 prval pfsave = unit_v () val ((*void*)) = symenv_savecur (!p0) in (pfsave | ()) end // end of [the_fxtyenv_save] fun the_fxtyenv_restore ( pfsave: fxtyenv_save_v | (*none*) ) : void = { prval vbox (pf) = pf0 prval unit_v () = pfsave val map = symenv_restore (!p0) val ((*void*)) = symmap_free (map) } // end of [the_fxtyenv_restore] end // end of [local] (* ****** ****** *) (* // // HX-2014-07: // these function are no longer in use // local var the_level: int = 0 val p_the_level = &the_level val ( pf_the_level | ((*void*)) ) = vbox_make_view_ptr{int} (view@the_level | p_the_level) assume trans1_level_v = unit_v // HX: it is just a dummy in (* in of [local] *) implement the_trans1_level_get () = let prval vbox (pf) = pf_the_level in !p_the_level end // end of [the_trans1_level_get] implement the_trans1_level_inc () = let prval pflev = unit_v () prval vbox (pf) = pf_the_level val () = !p_the_level := !p_the_level + 1 in (pflev | ()) end // end of [the_trans1_level_inc] implement the_trans1_level_dec (pflev | (*none*)) = { prval unit_v () = pflev prval vbox (pf) = pf_the_level val () = !p_the_level := !p_the_level - 1 } // end of [the_trans1_level_dec] end // end of [local] *) (* ****** ****** *) local assume trans1_env_push_v = (e1xpenv_push_v, fxtyenv_push_v) in (* in of [local] *) implement the_trans1_env_pop (pfenv | (*none*)) = () where { prval (pf1env, pf2env) = pfenv val map = the_e1xpenv_pop (pf1env | (*none*)) val () = symmap_free (map) val map = the_fxtyenv_pop (pf2env | (*none*)) val () = symmap_free (map) } // end of [the_trans1_env_pop] implement the_trans1_env_push () = (pfenv | ()) where { val (pf1env | ()) = the_e1xpenv_push_nil () val (pf2env | ()) = the_fxtyenv_push_nil () prval pfenv = (pf1env, pf2env) } // end of [the_trans1_env_pop] implement the_trans1_env_localjoin (pfenv1, pfenv2 | (*none*)) = () where { prval (pf1env1, pf2env1) = pfenv1 prval (pf1env2, pf2env2) = pfenv2 val () = the_e1xpenv_localjoin (pf1env1, pf1env2 | (*none*)) val () = the_fxtyenv_localjoin (pf2env1, pf2env2 | (*none*)) } // end of [the_trans1_env_localjoin] end // end of [local] (* ****** ****** *) local assume trans1_env_save_v = (e1xpenv_save_v, fxtyenv_save_v) in (* in of [local] *) implement the_trans1_env_save () = let val (pf1save | ()) = the_e1xpenv_save () val (pf2save | ()) = the_fxtyenv_save () prval pfsave = (pf1save, pf2save) in (pfsave | ()) end // end of [the_trans1_env_save] implement the_trans1_env_restore (pfsave | (*none*)) = { val () = the_e1xpenv_restore (pfsave.0 | (*none*)) val () = the_fxtyenv_restore (pfsave.1 | (*none*)) } // end of [the_trans1_env_restore] end // end of [local] (* ****** ****** *) local // staload UN = "prelude/SATS/unsafe.sats" staload LM = "libats/SATS/linmap_avltree.sats" staload _(*anon*) = "libats/DATS/linmap_avltree.dats" // typedef key = uint typedef itm = @(int, d1eclist) vtypedef map = $LM.map (key, itm) // val theStaloadMap = ref ($LM.linmap_make_nil ()) // val cmp0 = $UN.cast {$LM.cmp(key)} (null) implement $LM.compare_key_key (x1, x2, _) = compare (x1, x2) in (* in of [local] *) implement staload_file_search (fil) = let // val fname = $FIL.filename_get_fullname(fil) // val k0 = $SYM.symbol_get_stamp(fname) // val ( vbox(pf)|p ) = ref_get_view_ptr{map}(theStaloadMap) // var res: itm? // val found = $LM.linmap_search(!p, k0, cmp0, res) // in // if found then let prval () = opt_unsome{itm}(res) in Some_vt(res) end // end of [then] else let prval () = opt_unnone{itm}(res) in None_vt(*void*) end (* end of [else] *) // end // end of [staload_file_search] (* ****** ****** *) (* ** HX-2014-06-06: ** [ldflag] is no longer in use *) implement staload_file_insert (fil, ldflag, d1cs) = { // val fname = $FIL.filename_get_fullname (fil) // val k0 = $SYM.symbol_get_stamp (fname) // var x0: itm = (ldflag, d1cs) // HX: local var // val (vbox(pf) | p) = ref_get_view_ptr{map}(theStaloadMap) // var res: itm? val _(*isexi*) = $LM.linmap_insert (!p, k0, x0, cmp0, res) prval () = opt_clear {itm} (res) // } // end of [staload_file_insert] end // end of [local] (* ****** ****** *) implement fprint_atsrelocitm (out, itm) = let // macdef prstr(s) = fprint_string(out, ,(s)) // fun auxpr ( out: FILEref, d0c: $SYN.d0ecl ) : void = ( case+ d0c.d0ecl_node of (* case+ *) | $SYN.D0Cinclude _ => fprint (out, "include") | $SYN.D0Cstaload _ => fprint (out, "staload") | $SYN.D0Crequire _ => fprint (out, "require") | $SYN.D0Cdynload _ => fprint (out, "dynload") | _ (*rest/deadcode*) => fprint (out, "*ERROR*") ) // in // case+ itm of | ATSRELOCITM (d0c, given) => { val () = prstr "{\n" val () = prstr "\"atsreloc_kind\": " val () = prstr "\"" val () = auxpr (out, d0c) val () = prstr "\"" val () = prstr "\n,\n" val () = prstr "\"atsreloc_given\": " val () = prstr "\"" val () = fprint_string (out, given) val () = prstr "\"" val () = prstr "\n}\n" } | ATSRELOCITM2 (d0c, source, target) => { val () = prstr "{\n" val () = prstr "\"atsreloc_kind\": " val () = prstr "\"" val () = auxpr (out, d0c) val () = prstr "\"" val () = prstr "\n,\n" val () = prstr "\"atsreloc_target\": " val () = prstr "\"" val () = fprint_string (out, target) val () = prstr "\"" val () = prstr "\n,\n" val () = prstr "\"atsreloc_source\": " val () = prstr "\"" val () = fprint_string (out, source) val () = prstr "\"" val () = prstr "\n}\n" } // end // end of [fprint_atsrelocitm] implement fprint_atsrelocitmlst (out, xs) = let in // case+ xs of | list_nil () => () | list_cons (x, xs) => ( fprint_atsrelocitm (out, x); fprint_atsrelocitmlst (out, xs) ) (* end of [list_cons] *) // end // end of [fprint_atsrelocitmlst] (* ****** ****** *) local // val the_itmlst = ref (list_nil) // in (* in-of-local *) implement the_atsrelocitmlst_get () = let val xs = !the_itmlst val () = !the_itmlst := list_nil in list_of_list_vt (list_reverse (xs)) end // end of [the_itmlst_get] (* ****** ******* *) implement the_atsreloc_insert (d0c0, given) = let // val loc0 = d0c0.d0ecl_loc // (* val () = println! ("the_atsreloc_insert: loc0 = ", loc0) val () = println! ("the_atsreloc_insert: given = ", given) *) // val itm = ATSRELOCITM(d0c0, given) val ((*void*)) = !the_itmlst := list_cons(itm, !the_itmlst) // in // nothing end // end of [the_atsreloc_insert] implement the_atsreloc_insert2 (d0c0, given_s, given_t) = let // val loc0 = d0c0.d0ecl_loc // (* val ( ) = print ("the_atsreloc_insert: d0c0 = ") val () = $SYN.fprint_d0ecl (stdout_ref, d0c0) val () = fprint_newline (stdout_ref) *) (* val () = println! ("the_atsreloc_insert2: ", loc0) val () = println! ("the_atsreloc_insert2: sourceloc= ", given_s) val () = println! ("the_atsreloc_insert2: targetloc= ", given_t) *) // val itm = ATSRELOCITM2(d0c0, given_s, given_t) // val () = !the_itmlst := list_cons(itm, !the_itmlst) // in // nothing end // end of [the_atsreloc_insert2] end // end of [local] (* ****** ****** *) local %{^ // extern ats_ptr_type patsopt_PATSHOME_get() ; extern ats_ptr_type patsopt_PATSCONTRIB_get() ; /* extern ats_ptr_type patsopt_PATSHOMELOCS_get() ; */ // %} // end of [%{^] in (* in of [local] *) implement the_trans1_env_initialize ((*void*)) = { // val opt = get() where { extern fun get(): Stropt = "mac#patsopt_PATSHOME_get" } (* end of [val] *) // val issome = stropt_is_some(opt) // val () = if issome then let val k = $SYM.symbol_PATSHOME val x = e1xp_string($LOC.location_dummy, stropt_unsome(opt)) in the_e1xpenv_addperv(k, x) end // end of [if] // end of [val] // val opt = get() where { extern fun get(): Stropt = "mac#patsopt_PATSCONTRIB_get" } (* end of [val] *) val issome = stropt_is_some (opt) val () = if issome then let val k = $SYM.symbol_PATSCONTRIB val x = e1xp_string($LOC.location_dummy, stropt_unsome(opt)) in the_e1xpenv_addperv(k, x) end // end of [if] // end of [val] // } (* end of [the_trans1_env_initialize] *) end // end of [local] (* ****** ****** *) (* end of [pats_trans1_env.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_reader.sats0000644000175000017500000000513313431250607020640 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) %{# #include "pats_reader.cats" %} // end of [%{#] (* ****** ****** *) // // HX-2012-06: // this style is some sort of experiment; in retrospect, it seems more // approriate to represent a reader as an object (instead of a struct) // (* ****** ****** *) absviewt@ype reader_vt0ype = $extype "pats_reader_struct" viewtypedef reader = reader_vt0ype (* ****** ****** *) // sortdef fmode = file_mode // fun reader_initize_filp {m:fmode}{l0:addr} ( pfmod: file_mode_lte(m,r) , pffil: FILE(m) @ l0 | reader: &reader? >> reader, p0: ptr l0 ) : void // end of [reader_initize_filp] // (* ****** ****** *) fun reader_initize_getc ( r: &reader? >> reader, getc: () - int ) : void // end of [reader_initize_getc] (* ****** ****** *) fun reader_initize_string ( r: &reader? >> reader, inp: string ) : void // end of [reader_initize_string] (* ****** ****** *) fun reader_initize_charlst_vt ( r: &reader? >> reader, inp: List_vt (char) ) : void // end of [reader_initize_charlst_vt] (* ****** ****** *) fun reader_uninitize ( r: &reader >> reader? ) : void // end of [reader_uninitize] (* ****** ****** *) fun reader_get_char (r: &reader): int // HX: EOF(-1) is returned at the end (* ****** ****** *) (* end of [pats_reader.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp1_print.dats0000644000175000017500000006643313431250607022175 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload LAB = "./pats_label.sats" staload SYM = "./pats_symbol.sats" staload FIL = "./pats_filename.sats" (* ****** ****** *) staload SYN = "./pats_syntax.sats" macdef fprint_i0de = $SYN.fprint_i0de (* ****** ****** *) staload "./pats_basics.sats" staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" (* ****** ****** *) implement fprint_p1at (out, p1t0) = let macdef prstr (str) = fprint_string (out, ,(str)) in // case+ p1t0.p1at_node of // | P1Tany () => prstr "P1Tany()" | P1Tany2 () => prstr "P1Tany2()" // | P1Tide (id) => { val () = prstr "P1Tide(" val () = $SYM.fprint_symbol (out, id) val () = prstr ")" } | P1Tdqid (q, id) => { val () = prstr "P1Tdqid(" val () = $SYN.fprint_d0ynq (out, q) val () = $SYM.fprint_symbol (out, id) val () = prstr ")" } // | P1Tint (int) => { val () = prstr "P1Tint(" val () = fprint_int (out, int) val () = prstr ")" } | P1Tintrep (rep) => { val () = prstr "P1Tintrep(" val () = fprint_string (out, rep) val () = prstr ")" } | P1Tchar (x) => { val () = prstr "P1Tchar(" val () = fprint_char (out, x) val () = prstr ")" } | P1Tfloat (x) => { val () = prstr "P1Tfloat(" val () = fprint_string (out, x) val () = prstr ")" } | P1Tstring (x) => { val () = prstr "P1Tint(" val () = fprint_string (out, x) val () = prstr ")" } // | P1Ti0nt (x) => { val () = prstr "P1Ti0nt(" val () = $SYN.fprint_i0nt (out, x) val () = prstr ")" } | P1Tf0loat (x) => { val () = prstr "P1Tf0loat(" val () = $SYN.fprint_f0loat (out, x) val () = prstr ")" } // | P1Tempty () => prstr "P1Tempty()" // | P1Tapp_sta (p1t, s1vs) => { val () = prstr "P1Tapp_sta(" val () = $UT.fprintlst (out, s1vs, ", ", fprint_s1vararg) val () = prstr ")" } | P1Tapp_dyn ( p1t, locarg, npf, p1ts ) => { val () = prstr "P1Tapp_dyn(" val () = fprint_p1at (out, p1t) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_p1atlst (out, p1ts) val () = prstr ")" } // | P1Tlist (npf, p1ts) => { val () = prstr "P1Tlist(" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_p1atlst (out, p1ts) val () = prstr ")" } // | P1Ttup (knd, npf, p1ts) => { val () = prstr "P1Ttup(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_p1atlst (out, p1ts) val () = prstr ")" } | P1Trec (knd, npf, lp1ts) => { val () = prstr "P1Ttup(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = $UT.fprintlst (out, lp1ts, ", ", fprint_labp1at) val () = prstr ")" } | P1Tlst (lin, p1ts) => { val () = prstr "P1Tlst(" val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_p1atlst (out, p1ts) val () = prstr ")" } // | P1Tfree (p1t) => { val () = prstr "P1Tfree(" val () = fprint_p1at (out, p1t) val () = prstr ")" } | P1Tunfold (p1t) => { val () = prstr "P1Tunfold(" val () = fprint_p1at (out, p1t) val () = prstr ")" } // | P1Trefas (sym, loc_id, p1t) => { val () = prstr "P1Trefas(" val () = $SYM.fprint_symbol (out, sym) val () = prstr "; " val () = fprint_p1at (out, p1t) val () = prstr ")" } // | P1Texist (s1as, p1t) => { val () = prstr "P1Texist(" val () = fprint_s1arglst (out, s1as) val () = prstr "; " val () = fprint_p1at (out, p1t) val () = prstr ")" } | P1Tsvararg (s1v) => { val () = prstr "P1Tsvararg(" val () = fprint_s1vararg (out, s1v) val () = prstr ")" } // | P1Tann (p1t, s1e) => { val () = prstr "P1Tann(" val () = fprint_p1at (out, p1t) val () = fprint_string (out, " : ") val () = fprint_s1exp (out, s1e) val () = prstr ")" } // | P1Terrpat ((*void*)) => prstr "P1Terrpat()" // (* | _ => prstr "P1T...(...)" *) // end // end of [fprint_p1at] implement print_p1at (p1t) = fprint_p1at (stdout_ref, p1t) implement prerr_p1at (p1t) = fprint_p1at (stderr_ref, p1t) (* ****** ****** *) implement fprint_p1atlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_p1at) // end of [fprint_p1atlst] implement fprint_labp1at (out, x) = let // macdef prstr (str) = fprint_string (out, ,(str)) // in // case+ x.labp1at_node of | LABP1ATnorm (lab, p1t) => { val () = prstr "LABP1ATnorm(" val () = $SYN.fprint_l0ab (out, lab) val () = fprint_p1at (out, p1t) val () = prstr ")" } (* end of [LABP1ATnorm] *) | LABP1ATomit () => prstr "LABP1ATomit()" // end // end of [fprint_labp1at] (* ****** ****** *) implement fprint_d1exp (out, d1e0) = let macdef prstr (str) = fprint_string (out, ,(str)) in // case+ d1e0.d1exp_node of // | D1Eide (id) => { val () = prstr "D1Eide(" val () = $SYM.fprint_symbol (out, id) val () = prstr ")" } | D1Edqid (dq, id) => { val () = prstr "D1Edqid(" val () = $SYN.fprint_d0ynq (out, dq) val () = $SYM.fprint_symbol (out, id) val () = prstr ")" } // | D1Eidextapp (id, d1es) => { val () = prstr "D1Eidextapp(" val () = $SYM.fprint_symbol (out, id) val () = prstr "; " val () = fprint_d1explst (out, d1es) val () = prstr ")" } // | D1Eint (x) => { val () = prstr "D1Eint(" val () = fprint_int (out, x) val () = prstr ")" } | D1Eintrep (x) => { val () = prstr "D1Eintrep(" val () = fprint_string (out, x) val () = prstr ")" } | D1Ebool (x) => { val () = prstr "D1Ebool(" val () = fprint_bool (out, x) val () = prstr ")" } | D1Echar (x) => { val () = prstr "D1Echar(" val () = fprint_char (out, x) val () = prstr ")" } | D1Efloat (x) => { val () = prstr "D1Efloat(" val () = fprint_string (out, x) val () = prstr ")" } | D1Estring (x) => { val () = prstr "D1Estring(" val () = fprint_string (out, x) val () = prstr ")" } // | D1Ei0nt (x) => { val () = prstr "D1Ei0nt(" val () = $SYN.fprint_i0nt (out, x) val () = prstr ")" } | D1Ec0har (x) => { val () = prstr "D1Ec0har(" val () = $SYN.fprint_c0har (out, x) val () = prstr ")" } | D1Ef0loat (x) => { val () = prstr "D1Ef0loat(" val () = $SYN.fprint_f0loat (out, x) val () = prstr ")" } | D1Es0tring (x) => { val () = prstr "D1Es0tring(" val () = $SYN.fprint_s0tring (out, x) val () = prstr ")" } // | D1Etop () => prstr "D1Etop()" | D1Eempty () => prstr "D1Eempty()" // | D1Ecstsp (x) => { val () = prstr "D1Ecstsp(" val () = $SYN.fprint_cstsp (out, x) val () = prstr ")" } // | D1Etyrep (s1e) => { val () = ( prstr "D1Etyrep("; fprint_s1exp (out, s1e); prstr ")" ) (* end of [val] *) } (* end of [D1Etyrep] *) // | D1Eliteral (lit) => { val () = ( prstr "D1Eliteral("; fprint_d1exp (out, lit); prstr ")" ) (* end of [val] *) } (* end of [D1Eliteral] *) // | D1Eextval (s1e, name) => { val () = prstr "D1Eextval(" val () = fprint_s1exp (out, s1e) val () = prstr "; " val () = prstr "\"" val () = fprint_string (out, name) val () = prstr "\"" val ((*closing*)) = prstr ")" } // end of [D1Eextval] | D1Eextfcall (s1e, _fun, _arg) => { val () = prstr "D1Eextfcall(" val () = fprint_s1exp (out, s1e) val () = prstr "; " val () = prstr "\"" val () = fprint_string (out, _fun) val () = prstr "\"" val () = prstr "; " val () = fprint_d1explst (out, _arg) val ((*closing*)) = prstr ")" } (* end of [D1Eextfcall] *) | D1Eextmcall (s1e, _obj, _mtd, _arg) => { val () = prstr "D1Eextmcall(" val () = fprint_s1exp (out, s1e) val () = prstr "; " val () = fprint_d1exp (out, _obj) val () = prstr "; " val () = prstr "\"" val () = fprint_string (out, _mtd) val () = prstr "\"" val () = prstr "; " val () = fprint_d1explst (out, _arg) val ((*closing*)) = prstr ")" } (* end of [D1Eextmcall] *) // | D1Eloopexn (knd) => { val () = fprintf (out, "D1Eloopexn(%i)", @(knd)) } // end of [D1Eloopexn] // | D1Efoldat _ => { val () = fprintf (out, "D1Efoldat(...)", @()) } | D1Efreeat _ => { val () = fprintf (out, "D1Efreeat(...)", @()) } // | D1Etmpid (qid, arg) => { val () = prstr "D1Etmpid(" val () = $SYN.fprint_dqi0de (out, qid) val () = prstr "; " val () = prstr "..." val () = prstr ")" } // | D1Elet _ => { val () = prstr "D1Elet(" val () = prstr "..." val () = prstr ")" } | D1Ewhere _ => { val () = prstr "D1Ewhere(" val () = prstr "..." val () = prstr ")" } | D1Edecseq _ => { val () = prstr "D1Edecseq(" val () = prstr "..." val () = prstr ")" } // | D1Eapp_dyn ( _fun, _locarg, npf, _arg ) => { val () = prstr "D1Eapp_dyn(" val () = fprint_d1exp (out, _fun) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d1explst (out, _arg) val () = prstr ")" } | D1Eapp_sta ( d1e, s1as ) => { val () = prstr "D1Eapp_sta(" val () = fprint_d1exp (out, d1e) val () = prstr "; " val () = fprint_s1exparglst (out, s1as) val () = prstr ")" } // | D1Esing (d1e) => { val () = prstr "D1Esing(" val () = fprint_d1exp (out, d1e) val () = prstr ")" } | D1Elist (npf, d1es) => { val () = prstr "D1Elist(" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d1explst (out, d1es) val () = prstr ")" } // | D1Eifhead ( inv, _cond, _then, _else ) => { val () = prstr "D1Eifhead(" val () = fprint_d1exp (out, _cond) val () = prstr "; " val () = fprint_d1exp (out, _then) val () = prstr "; " val () = fprint_d1expopt (out, _else) val () = prstr ")" } | D1Esifhead ( inv, _cond, _then, _else ) => { val () = prstr "D1Esifhead(" val () = fprint_s1exp (out, _cond) val () = prstr "; " val () = fprint_d1exp (out, _then) val () = prstr "; " val () = fprint_d1exp (out, _else) val () = prstr ")" } // | D1Eifcasehd _ => { val () = prstr "D1Eifcasehd(" val () = prstr "..." val () = prstr ")" } // | D1Ecasehead _ => { val () = prstr "D1Ecasehead(" val () = prstr "..." val () = prstr ")" } | D1Escasehead _ => { val () = prstr "D1Escasehead(" val () = prstr "..." val () = prstr ")" } // | D1Elst (lin, opt, d1es) => { val () = prstr "D1Etup(" val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_s1expopt (out, opt) val () = prstr "; " val () = fprint_d1explst (out, d1es) val () = prstr ")" } // | D1Etup (knd, npf, d1es) => { val () = prstr "D1Etup(knd=" val () = fprint_int (out, knd) val () = prstr "; npf=" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d1explst (out, d1es) val () = prstr ")" } // end of [D1Etup] | D1Erec (knd, npf, ld1es) => { val () = prstr "D1Erec(knd=" val () = fprint_int (out, knd) val () = prstr "; npf=" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_labd1explst (out, ld1es) val () = prstr ")" } // end of [D1Erec] | D1Eseq (d1es) => { val () = prstr "D1Eseq(" val () = fprint_d1explst (out, d1es) val () = prstr ")" } // end of [D1Eseq] // | D1Earrsub _ => { val () = prstr "D1Earrsub(" val () = fprint_string (out, "...") val () = prstr ")" } | D1Earrpsz _ => { val () = prstr "D1Earrpsz(" val () = fprint_string (out, "...") val () = prstr ")" } | D1Earrinit _ => { val () = prstr "D1Earrinit(" val () = fprint_string (out, "...") val () = prstr ")" } // | D1Eselab (knd, d1e, d1l) => { val () = prstr "D1Eselab(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_d1exp (out, d1e) val () = prstr "; " val () = fprint_d1lab (out, d1l) val () = prstr ")" } // | D1Eptrof (d1e) => { val () = prstr "D1Eptrof(" val () = fprint_d1exp (out, d1e) val () = prstr ")" } | D1Eviewat (d1e) => { val () = prstr "D1Eviewat(" val () = fprint_d1exp (out, d1e) val () = prstr ")" } // | D1Eraise (d1e) => { val () = prstr "D1Eraise(" val () = fprint_d1exp (out, d1e) val () = prstr ")" } | D1Eeffmask _ => { val () = prstr "D1Eeffmask(" val () = fprint_string (out, "...") val () = prstr ")" } // | D1Evararg(d1es) => { val () = prstr "D1Evararg(" val () = fprint_d1explst (out, d1es) val ((*closing*)) = prstr ")" } // | D1Evcopyenv (knd, d1e) => { val () = prstr "D1Evcopyenv(" val () = fprint_int (out, knd) val () = prstr ", " val () = fprint_d1exp (out, d1e) val () = prstr ")" } // | D1Eshowtype (d1e) => { val () = prstr "D1Eshowtype(" val () = fprint_d1exp (out, d1e) val () = prstr ")" } // | D1Etempenver (d1e) => { val () = prstr "D1Etempenver(" val () = fprint_d1exp (out, d1e) val () = prstr ")" } // | D1Esexparg (s1a) => { val () = prstr "D1Esexparg(" val () = fprint_s1exparg (out, s1a) val () = prstr ")" } // | D1Eexist (s1a, d1e) => { val () = prstr "D1Eexist(" val () = fprint_s1exparg (out, s1a) val () = prstr "; " val () = fprint_d1exp (out, d1e) val () = prstr ")" } // | D1Elam_dyn _ => { val () = prstr "D1Elam_dyn(" val () = prstr "..." val () = prstr ")" } | D1Elaminit_dyn _ => { val () = prstr "D1Elaminit_dyn(" val () = prstr "..." val () = prstr ")" } | D1Elam_sta_ana _ => { val () = prstr "D1Elam_sta_ana(" val () = prstr "..." val () = prstr ")" } | D1Elam_sta_syn _ => { val () = prstr "D1Elam_sta_syn(" val () = prstr "..." val () = prstr ")" } | D1Elam_met _ => { val () = prstr "D1Elam_met(" val () = prstr "..." val () = prstr ")" } // | D1Efix _ => { val () = prstr "D1Efix(" val () = prstr "..." val () = prstr ")" } // | D1Edelay _ => { val () = prstr "D1Edelay(" val () = fprint_string (out, "...") val () = prstr ")" } // | D1Efor _ => { val () = prstr "D1Efor(" val () = prstr "..." val () = prstr ")" } | D1Ewhile _ => { val () = prstr "D1Ewhile(" val () = prstr "..." val () = prstr ")" } // | D1Etrywith _ => { val () = prstr "D1Etrywith(" val () = prstr "..." val () = prstr ")" } // | D1Eann_type(d1e, s1e) => { val () = prstr "D1Eann_type(" val () = fprint_d1exp (out, d1e) val () = prstr " : " val () = fprint_s1exp (out, s1e) val () = prstr ")" } | D1Eann_effc(d1e, efc) => { val () = prstr "D1Eann_effc(" val () = fprint_d1exp (out, d1e) val () = prstr " : " val () = fprint_effcst (out, efc) val () = prstr ")" } | D1Eann_funclo(d1e, fc) => { val () = prstr "D1Eann_funclo(" val () = fprint_d1exp (out, d1e) val () = prstr " : " val () = fprint_funclo (out, fc) val () = prstr ")" } // | D1Emacsyn(knd, d1e) => { val () = prstr "D1Emacsyn(" val () = $SYN.fprint_macsynkind (out, knd) val () = prstr "; " val () = fprint_d1exp (out, d1e) val () = prstr ")" } | D1Emacfun(name, d1es) => { val () = prstr "D1Emacfun(" val () = $SYM.fprint_symbol (out, name) val () = prstr "; " val () = fprint_d1explst (out, d1es) val () = prstr ")" } // | D1Esolassert(d1e) => { val () = prstr "D1Esolassert(" val () = fprint_d1exp (out, d1e) val () = prstr ")" } | D1Esolverify(s1e) => { val () = prstr "D1Esolverify(" val () = fprint_s1exp (out, s1e) val () = prstr ")" } // | D1Eerrexp ((*void*)) => prstr "D1Eerrexp()" // (* | _ => prstr "D1E...(...)" *) // end // end of [fprint_d1exp] implement print_d1exp (x) = fprint_d1exp (stdout_ref, x) implement prerr_d1exp (x) = fprint_d1exp (stderr_ref, x) (* ****** ****** *) implement fprint_d1explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_d1exp) // end of [fprint_d1explst] (* ****** ****** *) implement fprint_d1expopt (out, opt) = $UT.fprintopt (out, opt, fprint_d1exp) // end of [fprint_d1expopt] (* ****** ****** *) implement fprint_labd1exp (out, x) = { val $SYN.DL0ABELED (l, d1e) = x val () = $SYN.fprint_l0ab (out, l) val () = fprint_string (out, "=") val () = fprint_d1exp (out, d1e) } // end of [fprint_labd1exp] implement fprint_labd1explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_labd1exp) // end of [fprint_labs1explst] (* ****** ****** *) implement fprint_d1lab (out, d1l) = let macdef prstr (str) = fprint_string (out, ,(str)) in // case+ d1l.d1lab_node of | D1LABlab (lab) => { val () = prstr "D1LABlab(" val () = $LAB.fprint_label (out, lab) val () = prstr ")" } // end of [D1LABlab] | D1LABind (ind) => { val () = prstr "D1LABind(" val () = $UT.fprintlst (out, ind, ", ", fprint_d1exp) val () = prstr ")" } // end of [D1LABind] // end // end of [fprint_d1lab] (* ****** ****** *) extern fun fprint_m1acdef : fprint_type (m1acdef) implement fprint_m1acdef (out, m1d) = { val sym = m1d.m1acdef_sym val () = $SYM.fprint_symbol (out, sym) val () = fprint_string (out, "(...) = ") val () = fprint_d1exp (out, m1d.m1acdef_def) } (* end of [fprint_m1acdef] *) (* ****** ****** *) extern fun fprint_v1aldec : fprint_type (v1aldec) implement fprint_v1aldec (out, x) = { val () = fprint_p1at (out, x.v1aldec_pat) val () = fprint_string (out, " = ") val () = fprint_d1exp (out, x.v1aldec_def) } (* ****** ****** *) extern fun fprint_v1ardec : fprint_type (v1ardec) implement fprint_v1ardec (out, x) = let // macdef prstr (str) = fprint_string (out, ,(str)) // val () = fprint_int (out, x.v1ardec_knd) val () = prstr "; " val () = $SYM.fprint_symbol (out, x.v1ardec_sym) // val ( ) = ( case+ x.v1ardec_type of | None () => () | Some s1e => (prstr ": "; fprint_s1exp (out, s1e)) ) (* end of [val] *) val ( ) = ( case+ x.v1ardec_pfat of | None () => () | Some id => ( prstr " with "; $SYN.fprint_i0de (out, id) ) (* end of [Some] *) ) (* end of [val] *) val ( ) = ( case+ x.v1ardec_init of | None () => () | Some d1e => (prstr " = "; fprint_d1exp (out, d1e)) ) (* end of [val] *) // in // nothing end // end of [fprint_v1ardec] (* ****** ****** *) implement fprint_d1ecl (out, d1c0) = let macdef prstr (str) = fprint_string (out, ,(str)) in // case+ d1c0.d1ecl_node of // | D1Cnone () => prstr "D1Cnone()" // | D1Clist (ds) => { val () = prstr "D1Clist(\n" val () = fprint_d1eclist (out, ds) val () = prstr "\n)" } // end of [D1Clist] // | D1Cpackname (opt) => { val () = prstr "D1Cpackname(" val () = $UT.fprint_stropt (out, opt) val () = prstr ")" } // end of [D1Cpackname] // | D1Csymintr (ids) => { val () = prstr "D1Csymintr(" val () = $UT.fprintlst (out, ids, ", ", fprint_i0de) val () = prstr ")" } | D1Csymelim (ids) => { val () = prstr "D1Csymelim(" val () = $UT.fprintlst (out, ids, ", ", fprint_i0de) val () = prstr ")" } | D1Coverload (id, dqid, pval) => { val () = prstr "D1Coverload(" val () = fprint_i0de (out, id) val () = prstr "; " val () = $SYN.fprint_dqi0de (out, dqid) val () = prstr "; " val () = fprint_int (out, pval) val () = prstr ")" } // end of [D1Coverload] // | D1Ce1xpdef (id, def) => { val () = prstr "D1Ce1xpdef(" val () = $SYM.fprint_symbol (out, id) val () = prstr " = " val () = fprint_e1xp (out, def) val () = prstr ")" } | D1Ce1xpundef (id, _(*def*)) => { val () = prstr "D1Ce1xpundef(" val () = $SYM.fprint_symbol (out, id) val () = prstr ")" } // | D1Cpragma(xs) => { val () = prstr "D1Cpragma(" val () = $UT.fprintlst (out, xs, ", ", fprint_e1xp) val () = prstr (")") } | D1Ccodegen (knd, xs) => { val () = prstr "D1Ccodegen(" val () = fprint_int (out, knd) val () = prstr "; " val () = $UT.fprintlst (out, xs, ", ", fprint_e1xp) val () = prstr (")") } (* end of [D1Ccodegen] *) // | D1Cdatsrts (xs) => { val () = prstr "D1Cdatsrts(\n" val () = $UT.fprintlst (out, xs, "\n", fprint_d1atsrtdec) val () = prstr "\n)" } | D1Csrtdefs (xs) => { val () = prstr "D1Csrtdefs(\n" val () = $UT.fprintlst (out, xs, "\n", fprint_s1rtdef) val () = prstr "\n)" } // | D1Cstacsts (xs) => { val () = prstr "D1Cstacsts(\n" val () = $UT.fprintlst (out, xs, "\n", fprint_s1tacst) val () = prstr "\n)" } | D1Cstacons (knd, xs) => { val () = prstr "D1Cstacons(" val () = fprint_int (out, knd) val () = prstr "\n" val () = $UT.fprintlst (out, xs, "\n", fprint_s1tacon) val () = prstr "\n)" } // (* | D1Cstavars (xs) => { val () = prstr "D1Cstavars(\n" val () = $UT.fprintlst (out, xs, "\n", fprint_s1tavar) val () = prstr "\n)" } *) // | D1Csexpdefs (knd, xs) => { val () = prstr "D1Csexpdefs(" val () = fprint_int (out, knd) val () = prstr "\n" val () = $UT.fprintlst (out, xs, "\n", fprint_s1expdef) val () = prstr "\n)" } | D1Csaspdec (x) => { val () = prstr "D1Csaspdec(" val () = fprint_s1aspdec (out, x) val () = prstr ")" } // | D1Cdatdecs (knd, xs1, xs2) => { val () = prstr "D1Cdatdecs(" val () = fprint_int (out, knd) val () = prstr "\n" val () = prstr "..." val () = prstr "\n)" } | D1Cexndecs (xs) => { val () = prstr "D1Cexndecs(\n" val () = $UT.fprintlst (out, xs, "\n", fprint_e1xndec) val () = prstr "\n)" } // | D1Cclassdec (id, sup) => { val () = prstr "D1Cclassdec(" val () = fprint_i0de (out, id) val () = (case+ sup of | Some s1e => let val () = prstr " : " in fprint_s1exp (out, s1e) end // end of [Some] | None () => () ) : void // end of [val] val () = prstr ")" } // | D1Cdcstdecs ( knd, dck, qarg, xs ) => { val () = prstr "D1Cdcstdecs(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_dcstkind (out, dck) val () = prstr "\n" val () = $UT.fprintlst (out, xs, "\n", fprint_d1cstdec) val () = prstr "\n)" } // | D1Cextype (name, def) => { val () = prstr "D1Cextype(" val () = ( fprint_string (out, name); prstr " = "; fprint_s1exp (out, def) ) (* end of [val] *) val () = prstr ")" } | D1Cextype ( knd, name, def ) => { val () = prstr "D1Cextype(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_string (out, name) val () = prstr " = " val () = fprint_s1exp (out, def) val () = prstr ")" } // | D1Cextvar (name, def) => { val () = prstr "D1Cextvalr" val () = fprint_string (out, name) val () = prstr " = " val () = fprint_d1exp (out, def) val ((*closing*)) = prstr ")" } // | D1Cextcode ( knd, pos, code ) => { val () = prstr "D1Cextcode(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, pos) val () = prstr "\n" val () = prstr "..." val () = prstr "\n)" } // | D1Cmacdefs ( knd, isrec, ds ) => { val () = prstr "D1macdef(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_bool (out, isrec) val () = prstr "\n" val () = $UT.fprintlst (out, ds, "\n", fprint_m1acdef) val () = prstr "\n)" } // | D1Cimpdec ( knd, imparg, d ) => { val qid = d.i1mpdec_qid val () = prstr "D1Cimpdec[" val () = fprint_int (out, knd) val () = prstr "]" val () = fprint_i1mparg (out, imparg) val () = prstr "(\n" // val q = qid.impqi0de_qua and id = qid.impqi0de_sym val () = $SYN.fprint_d0ynq (out, q) val () = $SYM.fprint_symbol (out, id) // val () = prstr "; " val () = fprint_d1exp (out, d.i1mpdec_def) val () = prstr "\n)" } // | D1Cfundecs (knd, q1mas, ds) => { val () = prstr "D1Cfundecs(" val () = fprint_funkind (out, knd) val () = prstr "; " val () = $UT.fprintlst (out, q1mas, "; ", fprint_q1marg) val () = prstr "\n" val () = prstr "..." val () = prstr "\n)" } | D1Cvaldecs (knd, isrec, ds) => { val () = prstr "D1Cvaldecs(" val () = fprint_valkind (out, knd) val () = prstr "; " val () = fprint_bool (out, isrec) val () = prstr "\n" val () = $UT.fprintlst (out, ds, "\n", fprint_v1aldec) val () = prstr "\n)" } | D1Cvardecs (knd, ds) => { val () = prstr "D1Cvardecs(" val () = fprint_int (out, knd) val () = prstr "\n" val () = $UT.fprintlst (out, ds, "\n", fprint_v1ardec) val () = prstr "\n)" } // | D1Cinclude (knd, ds) => { val () = prstr "D1Cinclude(" val () = fprint_int (out, knd) val () = prstr "\n" val () = $UT.fprintlst (out, ds, "\n", fprint_d1ecl) val () = prstr "\n)" } // | D1Cstaload ( idopt, fname, _, _ ) => { val () = prstr "D1Cstaload(" val () = $SYM.fprint_symbolopt (out, idopt) val () = prstr "=" val () = $FIL.fprint_filename_full (out, fname) val () = prstr ")" } (* end of [D1Cstaload] *) | D1Cstaloadnm (alias, nspace) => { val () = prstr "D1Cstaloadnm(" val () = $SYM.fprint_symbolopt (out, alias) val () = prstr "=" val () = $SYM.fprint_symbol (out, nspace) val () = prstr ")" } (* end of [D1Cstaname] *) | D1Cstaloadloc (pfil, nspace, d1cs) => { val () = prstr "D1Cstaloadloc(" val () = $SYM.fprint_symbol (out, nspace) val ((*omitted*)) = prstr ", ...)" } (* end of [D1Cstaloadloc] *) // | D1Cdynload (fname) => { val () = prstr "D1Cdynload(" val () = $FIL.fprint_filename_full (out, fname) val () = prstr ")" } (* end of [D1Cdynload] *) // | D1Clocal ( ds_head, ds_body ) => { val () = prstr "D1Clocal(\n" val () = fprint_d1eclist (out, ds_head) val () = prstr "\n(*in*)\n" val () = fprint_d1eclist (out, ds_body) val () = prstr "\n)" } // | _ => prstr "D1C...(...)" // end // end of [fprint_d1ecl] implement print_d1ecl (x) = fprint_d1ecl (stdout_ref, x) implement prerr_d1ecl (x) = fprint_d1ecl (stderr_ref, x) (* ****** ****** *) implement fprint_d1eclist (out, xs) = $UT.fprintlst (out, xs, "\n", fprint_d1ecl) // end of [fprint_d1eclist] (* ****** ****** *) (* end of [pats_dynexp1_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_szexp.dats0000644000175000017500000003721713431250607022206 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: December, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_staexp2_szexp" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload LAB = "./pats_label.sats" overload = with $LAB.eq_label_label (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) extern fun fprint_labs2zexp : fprint_type (labs2zexp) implement fprint_s2zexp (out, x) = let macdef prstr (x) = fprint_string (out, ,(x)) in // case+ x of // | S2ZEprf () => prstr "S2ZEprf()" // | S2ZEptr () => prstr "S2ZEptr()" // | S2ZEcst (s2c) => { val () = prstr "S2ZEcst(" val () = fprint_s2cst (out, s2c) val () = prstr ")" } | S2ZEvar (s2v) => { val () = prstr "S2ZEvar(" val () = fprint_s2var (out, s2v) val () = prstr ")" } // | S2ZEVar (s2V) => { val () = prstr "S2ZE(" val () = fprint_s2Var (out, s2V) val () = prstr ")" } // | S2ZEextype (name, _arg) => { val () = prstr "S2ZEextype(" val () = fprint_string (out, name) val () = prstr ")" } // end of [S2ZEextype] | S2ZEextkind (name, _arg) => { val () = prstr "S2ZEextkind(" val () = fprint_string (out, name) val () = prstr ")" } // end of [S2ZEextkind] // | S2ZEapp (_fun, _arg) => { val () = prstr "S2ZEapp(" val () = fprint_s2zexp (out, _fun) val () = prstr "; " val () = $UT.fprintlst (out, _arg, ", ", fprint_s2zexp) val () = prstr ")" } // end of [S2ZEapp] // | S2ZEtyarr(_elt, _dim) => { val () = prstr "S2ZEtyarr(" val () = fprint_s2zexp (out, _elt) val () = prstr "; " val () = fprint_s2explst (out, _dim) val () = prstr ")" } // end of [S2ZEtyarr] | S2ZEtyrec(knd, ls2zes) => { val () = prstr "S2ZEtyrec(" val () = $UT.fprintlst (out, ls2zes, ", ", fprint_labs2zexp) val () = prstr ")" } // end of [S2ZEtyrec] // | S2ZEclo () => prstr "S2ZEclo()" // | S2ZEbot () => prstr "S2ZEbot()" // end // end of [fprint_s2zexp] implement print_s2zexp (x) = fprint_s2zexp (stdout_ref, x) implement prerr_s2zexp (x) = fprint_s2zexp (stderr_ref, x) implement fprint_labs2zexp (out, x) = let val SZLABELED (l, s2ze) = x val () = $LAB.fprint_label (out, l) val () = fprint_string (out, "=") val () = fprint_s2zexp (out, s2ze) in // nothing end // end of [fprint_labs2zexp] (* ****** ****** *) implement s2zexp_is_bot (x) = case+ x of S2ZEbot () => true | _ => false // end of [s2zexp_is_bot] (* ****** ****** *) extern fun s2zexp_make_s2cst (s2c: s2cst): s2zexp implement s2zexp_make_s2cst (s2c) = S2ZEcst s2c (* ****** ****** *) local absviewtype env extern fun env_make_nil (): env extern fun env_pop (env: &env): void extern fun env_push (env: &env, s2vs: s2varlst): void extern fun env_free (env: env): void extern fun env_find (env: &env, s2v: s2var): bool in // in of [local] local assume env = List_vt (s2varlst) in // in of [local] implement env_make_nil () = list_vt_nil () implement env_pop (env) = case+ env of | ~list_vt_cons (_, xss) => env := xss | _ => () // end of [env_pop] implement env_push (env, s2vs) = env := list_vt_cons (s2vs, env) implement env_free (env) = list_vt_free (env) implement env_find (env, x0) = let fun loop1 (s2vs: s2varlst): bool = case+ s2vs of | list_cons (s2v, s2vs) => if x0 = s2v then true else loop1 (s2vs) | list_nil () => false // end of [loop1] fun loop2 (s2vss: s2varlstlst): bool = case+ s2vss of | list_cons (s2vs, s2vss) => if loop1 (s2vs) then true else loop2 (s2vss) | list_nil () => false // end of [loop2] in loop2 ($UN.castvwtp1 {s2varlstlst} (env)) end // end of [env_find] end // end of [local] (* ****** ****** *) local fun s2zexp_tyrec ( knd: tyreckind, lxs: labs2zexplst ) : s2zexp = let // val isflt = ( case+ knd of | TYRECKINDflt0 _ => true | TYRECKINDflt1 _ => true | _(* non-flt01 *) => false ) in // if isflt then ( case+ lxs of | list_cons ( lx, list_nil() ) => // list_cons let val+SZLABELED(l, x) = lx in x end | _ (*non-sing*) => S2ZEtyrec(knd, lxs) ) else S2ZEtyrec(knd, lxs) // end // end of [s2zexp_tyrec] fun aux_s2exp ( env: &env, s2e0: s2exp ) : s2zexp = let (* val () = ( print "aux_s2exp: s2e0 = "; print_s2exp s2e0; print_newline () ) // end of [val] *) // val s2f0 = s2exp_hnfize(s2e0) // val s2t0 = s2f0.s2exp_srt // in // case+ s2f0.s2exp_node of (* case+ *) // | _ when s2rt_is_prf(s2t0) => S2ZEprf() | _ when s2rt_is_boxed(s2t0) => S2ZEptr() // | S2Ecst(s2c) => let val isabs = s2cst_get_isabs(s2c) in case+ isabs of | Some(Some(s2e)) => aux_s2exp(env, s2e) | _ (*non-Some^2*) => s2zexp_make_s2cst(s2c) end // end of [S2Ecst] // | S2Evar(s2v) => let val isexi = env_find(env, s2v) in if isexi then S2ZEbot() else S2ZEvar(s2v) // end of [if] end // end of [S2Evar] // | S2EVar(s2V) => let val s2ze = s2Var_get_szexp(s2V) in s2ze end // end of [S2EVar] // (* | S2Edatconptr _ => S2ZEptr () // boxed | S2Edatcontyp _ => S2ZEptr () // boxed *) | S2Eextype (name, _arg) => S2ZEextype (name, aux_arglstlst (env, _arg)) | S2Eextkind(name, _arg) => S2ZEextkind (name, aux_arglstlst (env, _arg)) // | S2Eapp(s2e_fun, s2es_arg) => aux_s2exp_app (env, s2f0.s2exp_srt, s2e_fun, s2es_arg) // end of [S2Eapp] // | S2Efun _ => S2ZEclo // HX: it is unboxed // | S2Etop(knd, s2e) => aux_s2exp (env, s2e) // | S2Etyarr(_elt, _dim) => let val _elt = aux_s2exp (env, _elt) in S2ZEtyarr(_elt, _dim) end // end of [S2Etyarr] | S2Etyrec(knd, npf, ls2es) => let val ls2zes = aux_labs2explst(env, npf, ls2es) in s2zexp_tyrec(knd, ls2zes) // end of [val] end // end of [S2Etyrec] // | S2Eexi ( s2vs, _(*s2ps*), s2e ) => let val () = env_push(env, s2vs) val s2ze = aux_s2exp (env, s2e) val ((*popped*)) = env_pop(env) in s2ze end // end of [S2Eexi] | S2Euni ( s2vs, _(*s2ps*), s2e ) => let val () = env_push(env, s2vs) val s2ze = aux_s2exp(env, s2e) val ((*popped*)) = env_pop(env) in s2ze end // end of [S2Eexi] // | S2Einvar(s2e) => aux_s2exp(env, s2e) // | S2Evararg _ => S2ZEbot() // HX: no info // | S2Ewthtype(s2e, _) => aux_s2exp(env, s2e) // | _ (*rest-of-s2zexp*) => S2ZEbot() // HX: no info end // end of [aux_s2exp] and aux_s2exp_app ( env: &env , s2t: s2rt, s2e_fun: s2exp, s2es_arg: s2explst ) : s2zexp = let (* val () = ( print "aux_s2exp_app: s2e_fun = "; print_s2exp s2e_fun; print_newline () ) // end of [val] val () = ( print "aux_s2exp_app: s2es_arg = "; print_s2explst s2es_arg; print_newline () ) // end of [val] *) val s2f_fun = s2exp_hnfize (s2e_fun) in case+ s2f_fun.s2exp_node of | S2Ecst s2c => let val isabs = s2cst_get_isabs (s2c) in case+ isabs of | Some (Some s2e_fun) => let val s2e = s2exp_app_srt (s2t, s2e_fun, s2es_arg) in aux_s2exp (env, s2e) end // end of [Some] | _ => let val s2ze_fun = s2zexp_make_s2cst (s2c) in S2ZEapp (s2ze_fun, aux_arglst (env, s2es_arg)) end // HX: can be incorrect for certain constructors end (* end of [S2Ecst] *) | _ => S2ZEbot () (* HX: really??? *) end // end of [aux_s2exp_app] and aux_arglst ( env: &env, s2es: s2explst ) : s2zexplst = case+ s2es of | list_cons (s2e, s2es) => let val s2t = s2e.s2exp_srt val keep = ( if s2rt_is_prgm (s2t) then true else s2rt_is_tkind (s2t) ) : bool // end of [val] in if keep then list_cons (aux_s2exp (env, s2e), aux_arglst (env, s2es)) else aux_arglst (env, s2es) // HX: non-types are all discarded // end of [if] end // end of [list_cons] | list_nil () => list_nil () // end of [aux_arglst] and aux_arglstlst ( env: &env, s2ess: s2explstlst ) : s2zexplstlst = case+ s2ess of | list_cons (s2es, s2ess) => list_cons (aux_arglst (env, s2es), aux_arglstlst (env, s2ess)) // end of [list_cons] | list_nil () => list_nil () // end of [aux_arglstlst] and aux_labs2explst ( env: &env, npf: int, ls2es: labs2explst ) : labs2zexplst = case+ ls2es of | list_cons (ls2e, ls2es) => if npf > 0 then aux_labs2explst (env, npf-1, ls2es) else let val SLABELED (l, _(*named*), s2e) = ls2e val s2ze = aux_s2exp (env, s2e) val ls2ze = SZLABELED (l, s2ze) in list_cons (ls2ze, aux_labs2explst (env, npf, ls2es)) end (* end of [if] *) // end of [list_cons] | list_nil () => list_nil () // end of [aux_labs2explst] in // in of [local] implement s2zexp_make_s2exp (s2e0) = s2ze where { // var env = env_make_nil() val s2ze = aux_s2exp(env, s2e0) (* val () = ( print "s2zexp_make_s2exp: s2ze = "; print_s2zexp s2ze; print_newline () ) // end of [val] *) val ((*void*)) = env_free(env) // } // end of [s2zexp_make_s2exp] end // end of [local] end // end of [local] (* ****** ****** *) exception S2ZEXPMERGEexn of () extern fun s2zexp_merge_exn (x1: s2zexp, x2: s2zexp): s2zexp // end of [s2zexp_merge_exn] extern fun s2zexplst_merge_exn (xs1: s2zexplst, xs2: s2zexplst): s2zexplst // end of [s2zexplst_merge_exn] extern fun s2zexplstlst_merge_exn (xss1: s2zexplstlst, xss2: s2zexplstlst): s2zexplstlst // end of [s2zexplstlst_merge_exn] extern fun labs2zexplst_merge_exn (lxs1: labs2zexplst, lxs2: labs2zexplst): labs2zexplst // end of [labs2zexplst_merge_exn] (* ****** ****** *) fun s2zexp_linkrem (x: s2zexp): s2zexp = case+ x of | S2ZEVar (s2V) => s2Var_get_szexp (s2V) | _ => x // end of [s2zexp_linkrem] (* ****** ****** *) implement s2zexp_merge_exn (x1, x2) = let // fn abort ( // argless ) : s2zexp = $raise S2ZEXPMERGEexn() // val s2ze1 = s2zexp_linkrem (x1) val s2ze2 = s2zexp_linkrem (x2) // (* val () = println! ("s2zexp_merge_exn: s2ze1 = ", s2ze1) val () = println! ("s2zexp_merge_exn: s2ze2 = ", s2ze2) *) // in // case+ (s2ze1, s2ze2) of // | (S2ZEbot (), _) => abort () | (_, S2ZEbot ()) => abort () // | (S2ZEprf(), S2ZEprf()) => s2ze1 // | (S2ZEptr(), S2ZEptr()) => s2ze1 // | (S2ZEcst(s2c1), S2ZEcst(s2c2)) => if s2c1 = s2c2 then s2ze1 else abort() | (S2ZEvar(s2v1), S2ZEvar(s2v2)) => if s2v1 = s2v2 then s2ze1 else abort() // | (S2ZEVar s2V1, _) => let val () = s2Var_set_szexp (s2V1, s2ze2) in s2ze2 // end of [val] end // end of [S2ZEVar, _] | (_, S2ZEVar s2V2) => let val () = s2Var_set_szexp (s2V2, s2ze1) in s2ze1 // end of [val] end // end of [_, S2ZEVar] // | ( S2ZEextype(name1, _arg1), S2ZEextype(name2, _arg2) ) => if name1 = name2 then let val _arg = s2zexplstlst_merge_exn (_arg1, _arg2) // end of [val] in S2ZEextype (name1, _arg) end else abort () // end of [if] | ( S2ZEextkind(name1, _arg1), S2ZEextkind(name2, _arg2) ) => if name1 = name2 then let val _arg = s2zexplstlst_merge_exn(_arg1, _arg2) // end of [val] in S2ZEextkind(name1, _arg) end else abort() // end of [if] // | (S2ZEapp(s2ze11, s2zes12), S2ZEapp(s2ze21, s2zes22)) => let val s2ze = s2zexp_merge_exn(s2ze11, s2ze21) val s2zes = s2zexplst_merge_exn(s2zes12, s2zes22) in S2ZEapp(s2ze, s2zes) end // | (S2ZEtyarr(elt1, dim1), S2ZEtyarr(elt2, dim2)) => let val elt = s2zexp_merge_exn(elt1, elt2) in if s2explst_syneq(dim1, dim2) then S2ZEtyarr(elt, dim1) else abort() // end of [if] end | (S2ZEtyrec(knd1, ls2zes1), S2ZEtyrec(knd2, ls2zes2)) => if knd1 = knd2 then S2ZEtyrec ( knd1 , labs2zexplst_merge_exn (ls2zes1, ls2zes2) ) (* S2ZEtyrec *) else $raise S2ZEXPMERGEexn() // end of [if] // // HX-2012-06: this holds as flat closures | (S2ZEclo(), S2ZEclo()) => S2ZEclo() // are immovable // | (_(*rest-of-s2zexp*), _(*rest-of-s2zexp*)) => abort() // end // end of [s2zexp] implement s2zexplst_merge_exn (xs1, xs2) = ( case+ (xs1, xs2) of | (list_cons(x1, xs1), list_cons(x2, xs2)) => let val x12 = s2zexp_merge_exn (x1, x2) in list_cons(x12, s2zexplst_merge_exn(xs1, xs2)) end // end of [cons, cons] | (list_nil (), list_nil ()) => list_nil () | (_, _) => $raise S2ZEXPMERGEexn() ) (* end of [s2zexplst_merge_exn] *) implement s2zexplstlst_merge_exn (xss1, xss2) = ( case+ (xss1, xss2) of | (list_cons (xs1, xss1), list_cons (xs2, xss2)) => let val xs12 = s2zexplst_merge_exn (xs1, xs2) in list_cons (xs12, s2zexplstlst_merge_exn (xss1, xss2)) end // end of [cons, cons] | (list_nil (), list_nil ()) => list_nil () | (_, _) => $raise S2ZEXPMERGEexn() ) (* end of [s2zexplstlst_merge_exn] *) implement labs2zexplst_merge_exn (lxs1, lxs2) = let in case+ (lxs1, lxs2) of | (list_cons (lx1, lxs1), list_cons (lx2, lxs2)) => let val SZLABELED (l1, x1) = lx1 and SZLABELED (l2, x2) = lx2 in if l1 = l2 then let val x12 = s2zexp_merge_exn (x1, x2) val lx = SZLABELED (l1, x12) val lxs = labs2zexplst_merge_exn (lxs1, lxs2) in list_cons (lx, lxs) end else $raise S2ZEXPMERGEexn() // end of [if] end // end of [cons, cons] | (list_nil (), list_nil ()) => list_nil () | (_, _) => $raise S2ZEXPMERGEexn() end // end of [labs2zexplst_ismat_exn] (* ****** ****** *) (* ** HX: this one is declared in [pats_staexp2_util.sats] *) implement s2zexp_merge (x1, x2) = try s2zexp_merge_exn (x1, x2) with ~S2ZEXPMERGEexn () => S2ZEbot () // HX: indication of error! // end of [s2zexp_merge] (* ****** ****** *) implement s2zexp_syneq (x1, x2) = let val x12 = s2zexp_merge (x1, x2) in if s2zexp_is_bot (x12) then false else true end // end of [s2zexp_syneq] (* ****** ****** *) implement s2hnf_tszeq (s2f1, s2f2) = let // val s2e1 = s2hnf2exp (s2f1) and s2e2 = s2hnf2exp (s2f2) // val s2ze1 = s2zexp_make_s2exp (s2e1) and s2ze2 = s2zexp_make_s2exp (s2e2) // (* val () = println! ("s2hnf_tszeq: s2ze1 = ", s2ze1) val () = println! ("s2hnf_tszeq: s2ze2 = ", s2ze2) *) // in s2zexp_syneq (s2ze1, s2ze2) end // end of [s2hnf_tszeq] (* ****** ****** *) // implement s2exp_tszeq(s2e1, s2e2) = ( s2hnf_tszeq(s2exp2hnf(s2e1), s2exp2hnf(s2e2)) ) (* end of [s2exp_tszeq] *) // (* ****** ****** *) (* end of [pats_staexp2_szexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_utils.dats0000644000175000017500000004136113431250607020522 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" staload _(*UN*) = "prelude/DATS/unsafe.dats" // (* ****** ****** *) // staload "./pats_utils.sats" // (* ****** ****** *) %{^ // static char *patsopt_PATSHOME = (char*)0 ; static char *patsopt_PATSCONTRIB = (char*)0 ; static char *patsopt_PATSHOMELOCS = (char*)0 ; static char *patsopt_PATSRELOCROOT = (char*)0 ; // #define \ patsopt_getenv(name) getenv(name) // extern ats_ptr_type patsopt_getenv_gc (ats_ptr_type name); // ATSextfun() ats_ptr_type patsopt_PATSHOME_get() { return patsopt_PATSHOME ; // optional string } // end of [patsopt_PATSHOME_get] ATSextfun() ats_void_type patsopt_PATSHOME_set() { // patsopt_PATSHOME = patsopt_getenv_gc("PATSHOME") ; // if ( !patsopt_PATSHOME ) { patsopt_PATSHOME = patsopt_getenv_gc("ATSHOME") ; } // return ; // } // end of [patsopt_PATSHOME_set] // ATSextfun() ats_ptr_type patsopt_PATSCONTRIB_get() { return patsopt_PATSCONTRIB ; // optional string } // end of [patsopt_PATSCONTRIB_get] ATSextfun() ats_void_type patsopt_PATSCONTRIB_set() { // patsopt_PATSCONTRIB = patsopt_getenv_gc("PATSCONTRIB") ; // if ( !patsopt_PATSCONTRIB ) { patsopt_PATSCONTRIB = patsopt_getenv_gc("ATSCONTRIB") ; } // return ; // } // end of [patsopt_PATSCONTRIB_set] // ATSextfun() ats_ptr_type patsopt_PATSHOMELOCS_get() { return patsopt_PATSHOMELOCS ; // optional string } // end of [patsopt_PATSHOMELOCS_get] ATSextfun() ats_void_type patsopt_PATSHOMELOCS_set() { // patsopt_PATSHOMELOCS = patsopt_getenv_gc("PATSHOMELOCS") ; // if ( !patsopt_PATSHOMELOCS ) { patsopt_PATSHOMELOCS = patsopt_getenv_gc("ATSHOMELOCS") ; } // return ; } // end of [patsopt_PATSHOMELOCS_set] // ATSextfun() ats_ptr_type patsopt_PATSRELOCROOT_get() { return patsopt_PATSRELOCROOT ; // optional string } // end of [patsopt_PATSRELOCROOR_get] ATSextfun() ats_void_type patsopt_PATSRELOCROOT_set() { // patsopt_PATSRELOCROOT = patsopt_getenv_gc("PATSRELOCROOT") ; // if ( !patsopt_PATSRELOCROOT ) { patsopt_PATSRELOCROOT = patsopt_getenv_gc("ATSRELOCROOT") ; } // return ; // } // end of [patsopt_PATSRELOCROOT_set] // %} (* end of [%{^] *) (* ****** ****** *) extern fun patsopt_getenv_gc ( name: string ) : Stropt = "ext#patsopt_getenv_gc" // implement patsopt_getenv_gc (name) = let // val opt = patsopt_getenv (name) where { extern fun patsopt_getenv (name: string): stropt = "mac#patsopt_getenv" } (* end of [val] *) // in // if stropt_is_some(opt) then stropt_some(string0_copy(stropt_unsome(opt))) else stropt_none(*void*) // end // end of [patsopt_getenv_gc] (* ****** ****** *) implement eqref_type {a} (x1, x2) = let extern castfn __cast (x: a):<> ptr val x1 = __cast (x1) and x2 = __cast (x2) in eq_ptr_ptr (x1, x2) end // end of [eqref_type] (* ****** ****** *) // // HX: case-insensitive string comparision // extern fun strcasecmp ( x1: string, x2: string ) :<> int = "ext#patsopt_strcasecmp" // implement strcasecmp (x1, x2) = let // #define NUL '\000' // fun loop ( p1: Ptr1, p2: Ptr1 ) : int = let // val c1 = char_toupper($UN.ptrget(p1)) val c2 = char_toupper($UN.ptrget(p2)) // in // if (c1 < c2) then (~1) else ( if (c1 > c2) then ( 1 ) else ( if c1 != NUL then loop(p1+1, p2+1) else (0) ) (* end of [else] *) ) (* end of [else] *) // end // end of [loop] // in // $effmask_all (loop($UN.cast2Ptr1(x1), $UN.cast2Ptr1(x2))) // end // end of [strcasecmp] // (* ****** ****** *) // extern fun string_test_prefix ( str: string, prfx: string ) :<> bool = "ext#patsopt_string_test_prefix" // implement string_test_prefix (str, prfx) = let // #define NUL '\000' // fun loop ( p1: Ptr1, p2: Ptr1 ) : bool = let val c1 = $UN.ptrget (p1) in // if c1 > NUL then let val c2 = $UN.ptrget (p2) in if c1 = c2 then loop (p1+1, p2+1) else false end else true // end of [if] // end // end of [loop] // in $effmask_all (loop ($UN.cast2Ptr1(prfx), $UN.cast2Ptr1(str))) end // end of [patsopt_string_test_prefix] // (* ****** ****** *) // extern fun string_test_sffx ( str: string, sffx: string ) :<> bool = "ext#patsopt_string_test_suffix" // implement string_test_sffx (str, sffx) = let // val n1 = string_length (str) val n2 = string_length (sffx) // in // if n1 >= n2 then let val p1 = $UN.cast2Ptr1(str) val str2 = $UN.cast{string}(p1 + (n1 - n2)) in str2 = sffx end // end of [then] else false // end of [else] // end // end of [string_test_sffx] // (* ****** ****** *) local (* ****** ****** *) staload STDLIB = "libc/SATS/stdlib.sats" (* ****** ****** *) fun llint_make_string_sgn {n,i:nat | i <= n} ( sgn: int, rep: string (n), i: size_t i ) : llint = let in // if string_isnot_atend (rep, i) then let val c0 = rep[i] in case+ c0 of | '0' => ( if string_isnot_atend (rep, i+1) then let val i = i+1 val c0 = rep[i] in if (c0 != 'x' && c0 != 'X') then llint_make_string_sgn_base (sgn, 8(*base*), rep, i) else llint_make_string_sgn_base (sgn, 16(*base*), rep, i+1) // end of [if] end else 0ll (* end of [if] *) ) // end of ['0'] | _ (*non-0*) => llint_make_string_sgn_base (sgn, 10(*base*), rep, i) end // end of [then] else 0ll // end of [else] // end // end of [llint_make_string_sgn] and llint_make_string_sgn_base {n,i:nat | i <= n} ( sgn: int, base: intBtw (2,36+1), rep: string (n), i: size_t i ) : llint = let // extern fun substring {n,i:nat | i <= n} (x: string n, i: size_t i): string (n-i) = "mac#atspre_padd_int" // in (llint_of)sgn * $STDLIB.strtoll_errnul (substring (rep, i), base) end // end of [llint_make_string_sgn_base] in (* in of [local] *) implement llint_make_string (rep) = let // var sgn: int = 1 val [n0:int] rep = string1_of_string (rep) val isnot = string_isnot_empty (rep) // in // if isnot then let val c0 = rep[0] in // case+ c0 of | '+' => llint_make_string_sgn ( 1(*sgn*), rep, 1) | '-' => llint_make_string_sgn (~1(*sgn*), rep, 1) | '~' => llint_make_string_sgn (~1(*sgn*), rep, 1) // HX: should it be supported? | _ (*rest*) => llint_make_string_sgn (1(*sgn*), rep, 0) // end else 0ll // end of [if] // end // end of [llint_make_string] implement double_make_string (rep) = $STDLIB.atof (rep) end // end of [local] (* ****** ****** *) implement intrep_get_base (rep) = let val rep = string1_of_string (rep) val isnot = string_isnot_atend (rep, 0) in // if isnot then let val c0 = rep[0] in // if c0 = '0' then let val isnot = string_isnot_atend (rep, 1) in if isnot then let val c1 = rep[1] val isxX = (if c1 = 'x' then true else c1 = 'X'): bool in if isxX then 16 else ( if char_isdigit (c1) then 8 else 10 ) // end of [if] end else 10 // end of [if] end else 10 // end of [if] // end else 10 // end of [if] // end // end of [intrep_get_base] implement intrep_get_nsfx (rep) = let // macdef test (c) = string_contains ("ulUL", ,(c)) // val [n:int] rep = string1_of_string (rep) // fun loop {i:nat | i <= n} .. ( rep: string n, i: size_t i, k: uint ) : uint = let in if i > 0 then let val i1 = i - 1 val c = rep[i1] in if test (c) then loop (rep, i1, k+1u) else k end else k end // end of [loop] // val n = string_length (rep) // in loop (rep, n, 0u) end // end of [intrep_get_nsfx] (* ****** ****** *) implement float_get_nsfx (rep) = let // macdef test (c) = string_contains ("fFlL", ,(c)) // val [n:int] rep = string1_of_string (rep) // fun loop {i:nat | i <= n} .. ( rep: string n, i: size_t i, k: uint ) : uint = let in if i > 0 then let val i1 = i - 1 val c = rep[i1] in if test (c) then loop (rep, i1, k+1u) else k end else k end // end of [loop] // val n = string_length (rep) // in loop (rep, n, 0u) end // end of [float_get_nsfx] (* ****** ****** *) local // assume lstord (a:type) = List (a) // in (* in of [local] *) implement lstord_nil () = list_nil () implement lstord_sing (x) = list_cons (x, list_nil ()) implement lstord_insert{a} (xs, x0, cmp) = let fun aux {n:nat} .. (xs: list (a, n)): list (a, n+1) = case+ xs of | list_cons (x, xs1) => if cmp (x0, x) <= 0 then list_cons (x0, xs) else list_cons (x, aux (xs1)) // end of [if] | list_nil () => list_cons (x0, list_nil) // end of [aux] in aux (xs) end // end of [lstord_insert] implement lstord_union{a} (xs1, xs2, cmp) = let // fun aux{n1,n2:nat} .. ( xs1: list (a, n1), xs2: list (a, n2) ) : list (a, n1+n2) = ( case+ xs1 of | list_nil () => xs2 | list_cons (x1, xs11) => ( case+ xs2 of | list_nil () => xs1 | list_cons (x2, xs21) => if cmp (x1, x2) <= 0 then list_cons (x1, aux (xs11, xs2)) else list_cons (x2, aux (xs1, xs21)) // end of [if] ) // end of [list_cons] ) (* end of [aux] *) // in aux (xs1, xs2) end // end of [lstord_union] implement lstord_get_dups {a} (xs, cmp) = let // fun aux {n:nat} .. ( x0: a, xs: list (a, n), cnt: int ) : List a = case+ xs of | list_cons (x, xs) => if cmp (x, x0) = 0 then aux (x0, xs, cnt+1) else ( // HX: x0 < x holds if cnt > 0 then list_cons (x0, aux (x, xs, 0)) else aux (x, xs, 0) // end of [if] ) // end of [if] | list_nil () => if cnt > 0 then list_cons (x0, list_nil) else list_nil // end of [list_nil] (* end of [aux] *) // in // case+ xs of | list_nil () => list_nil () | list_cons (x, xs) => aux (x, xs, 0) // end // end of [lstord_get_dups] implement lstord2list (xs) = xs end // end of [local] (* ****** ****** *) implement dirpath_append (dir, path, sep) = let // val p0 = $UN.cast2ptr (path) val c0 = $UN.ptr0_get (p0) // in if c0 = sep then sprintf ("%s%s", @(dir, path)) else sprintf("%s%c%s", @(dir, sep, path)) // end of [if] end // end of [dirpath_append] (* ****** ****** *) // implement print_stropt (opt) = fprint_stropt(stdout_ref, opt) implement prerr_stropt (opt) = fprint_stropt(stderr_ref, opt) // implement fprint_stropt (out, opt) = let in // if stropt_is_some(opt) then fprint_string(out, stropt_unsome(opt)) else fprint_string(out, "(none)") // end of [if] // end (* end of [fprint_stropt] *) // (* ****** ****** *) implement {a}(*tmp*) fprintlst ( out, xs, sep, fprint ) = let // fun aux ( xs: List a, i: int ) : void = ( case+ xs of | list_nil () => () | list_cons (x, xs) => let val () = if i > 0 then fprint_string (out, sep) // end of [val] in fprint (out, x); aux (xs, i+1) end // end of [list_cons] ) (* end of [aux] *) // in aux (xs, 0) end // end of [fprintlst] (* ****** ****** *) implement {a}(*tmp*) fprintopt ( out, opt, fprint ) = ( case+ opt of | None () => fprint_string (out, "None()") | Some (x) => let val () = fprint_string (out, "Some(") val () = fprint (out, x) val () = fprint_string (out, ")") in // nothing end // end of [Some] ) (* end of [fprintopt] *) (* ****** ****** *) local // staload "libats/SATS/funset_listord.sats" staload _(*anon*) = "libats/DATS/funset_listord.dats" // fn cmp ( x1: char, x2: char ) : int = compare_char_char (x1, x2) // assume charset_type = set (char) // in (*in-of-local*) implement charset_sing (x) = funset_make_sing (x) implement charset_is_member (xs, x) = funset_is_member (xs, x, cmp) // end of [val] implement charset_add (xs, x) = xs where { var xs = xs val _(*exist*) = funset_insert (xs, x, cmp) } (* end of [val] *) implement charset_listize (xs) = funset_listize (xs) end // end of [local] implement fprint_charset (out, xs) = let // val xs = charset_listize (xs) // fun loop ( out: FILEref, xs: charlst_vt, i: int ) : void = ( // case+ xs of | ~list_vt_nil () => () | ~list_vt_cons (x, xs) => let val () = if i > 0 then fprint (out, ", ") // end of [val] in fprint_char (out, x); loop (out, xs, i+1) end // end of [list_vt_cons] // ) (* end of [loop] *) // in loop (out, xs, 0) end // end of [fprint_charset] (* ****** ****** *) local // staload Q = "libats/SATS/linqueue_arr.sats" // staload _(*anon*) = "libats/DATS/linqueue_arr.dats" staload _(*anon*) = "libats/ngc/DATS/deque_arr.dats" // in (* in of [local] *) // implement queue_get_strptr1 (q, st, ln) = let val [l:addr] (pfgc, pfarr | p) = malloc_gc (ln+1) // end of [val] prval (pf1, fpf2) = __assert (pfarr) where { extern prfun __assert {k:nat} ( pfarr: b0ytes(k+1) @ l ) : ( @[uchar?][k] @ l, @[uchar][k] @ l - bytes(k+1) @ l ) (* end of [_assert] *) } // end of [prval] val () = $Q.queue_copyout (q, st, ln, !p) prval () = pfarr := fpf2 (pf1) val () = bytes_strbuf_trans (pfarr | p, ln) in strptr_of_strbuf @(pfgc, pfarr | p) end // end of [queue_get_strptr1] // end // end of [local] (* ****** ****** *) %{$ // extern ats_ssize_type atslib_fildes_read_all_err ( ats_int_type fd , ats_ref_type buf , ats_size_type ntot ) ; // end of [atslib_fildes_read_all_err] // ats_ptr_type patsopt_file2strptr ( ats_int_type fd ) { int err = 0 ; int nerr = 0 ; char* sbp = (char*)0 ; // long int ofs_beg, ofs_end, nbyte ; // ofs_beg = lseek (fd, 0L, SEEK_CUR) ; if (ofs_beg < 0) nerr += 1 ; ofs_end = lseek (fd, 0L, SEEK_END) ; if (ofs_end < 0) nerr += 1 ; ofs_beg = lseek (fd, ofs_beg, SEEK_SET) ; if (ofs_beg < 0) nerr += 1 ; nbyte = ofs_end - ofs_beg ; // if (nerr == 0) { sbp = ATS_MALLOC(nbyte + 1) ; } if (sbp == NULL) nerr += 1 ; // if (nerr == 0) { err = atslib_fildes_read_all_err (fd, sbp, nbyte) ; } if (err < 0) { nerr += 1 ; } // if (nerr==0) { sbp[ofs_end] = '\0'; return sbp ; } // if (sbp) free(sbp) ; return (NULL) ; } // end of [patsopt_file2strptr] // %} // end of [%{$] (* ****** ****** *) local // // HX-2015-10-07: // It can be interesting to implement // tostrong_fprint based on open_memstream // staload FCNTL = "libc/SATS/fcntl.sats" staload STDIO = "libc/SATS/stdio.sats" staload STDLIB = "libc/SATS/stdlib.sats" staload UNISTD = "libc/SATS/unistd.sats" // macdef SEEK_SET = $STDIO.SEEK_SET // in (* in of [local] *) implement{a} tostring_fprint (prfx, fpr, x) = let // val tmp0 = sprintf ("%sXXXXXX", @(prfx)) val [m,n:int] tmpbuf = strbuf_of_strptr(tmp0) // prval () = __assert () where { extern prfun __assert(): [n >= 6] void } (* end of [prval] *) // prval pfstr = tmpbuf.1 val (pfopt|fd) = $STDLIB.mkstemp !(tmpbuf.2) prval ((*ret*)) = tmpbuf.1 := pfstr // val tmpstr = strptr_of_strbuf(tmpbuf) // in // if fd >= 0 then let // prval $FCNTL.open_v_succ(pffil) = pfopt // val (fpf|out) = fdopen (pffil | fd, file_mode_w) where { extern fun fdopen{fd:nat} ( pffil: !fildes_v fd | fd: int fd, mode: file_mode ) : (fildes_v fd - void | FILEref) = "mac#fdopen" } (* end of [out] *) val () = fpr(out, x) // val err = $STDIO.fflush_err(out) val err = $STDIO.fseek_err(out, 0L, SEEK_SET) // val res = file2strptr(pffil | fd) prval ((*returned*)) = fpf (pffil) // val err = $STDIO.fclose_err(out) val err = $UNISTD.unlink($UN.castvwtp1{string}(tmpstr)) val ((*freed*)) = strptr_free(tmpstr) in res (*strptr*) end // end of [then] else let // prval $FCNTL.open_v_fail((*void*)) = pfopt // val ((*freed*)) = strptr_free(tmpstr) in strptr_null((*void*)) // end // end of [else] // end // end of [tostring_fprint] end // end of [local] (* ****** ****** *) // // HX-2015-01-27: // for stopping optimization // implement ptr_as_volatile(ptr) = ((*dummy*)) // (* ****** ****** *) (* end of [pats_utils.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_caseof.dats0000644000175000017500000004171113431250607022113 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_trans3_caseof" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" staload "./pats_patcst2.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) fn gm2at_trup ( gm2t: gm2at ) : gm3at = let val loc0 = gm2t.gm2at_loc val d2e = gm2t.gm2at_exp val d3e = d2exp_trup (d2e) val s2e = d3exp_get_type (d3e) val op2t = gm2t.gm2at_pat val op3t = ( case+ op2t of | Some p2t => let val p3t = p2at_trdn (p2t, s2e) in Some (p3t) end // end of [Some] | None () => let val () = guard_trdn (loc0, true(*gval*), s2e) in None () end // end of [None] ) : p3atopt // end of [val] in gm3at_make (loc0, d3e, op3t) end // end of [gm2at_tr_up] fn gm2atlst_trup ( gm2ts: gm2atlst ) : gm3atlst = let val m3ats = list_map_fun (gm2ts, gm2at_trup) in (l2l)m3ats end // end of [gm2atlst_trup] (* ****** ****** *) extern fun c2lau_trdn {n:nat} ( casknd: caskind , c2l: c2lau , ctr: c3nstroptref , d3es: list (d3exp, n) , s2es_pat: list (s2exp, n) , s2e_res: s2exp , cp2tss: p2atcstlstlst_vt ) : c3lau (n) // end of [c2lau_trdn] (* ****** ****** *) implement c2lau_trdn ( casknd, c2l, ctr, d3es, s2es_pat, s2e_res, cp2tcss ) = let // val loc0 = c2l.c2lau_loc val p2ts = c2l.c2lau_pat // (* val () = begin print "c2lau_trdn: p2ts = "; print_p2atlst (p2ts); print_newline (); print "c2lau_trdn: s2es_pat = "; print_s2explst (s2es_pat); print_newline (); print "c2lau_trdn: s2e_res = "; print_s2exp (s2e_res); print_newline (); end // end of [val] *) // val (pfpush | ()) = trans3_env_push () // val seq = c2l.c2lau_seq and neg = c2l.c2lau_neg // val () = if seq > 0 then let val cp2tcss = p2atcstlstlst_vt_copy (cp2tcss) in trans3_env_hypadd_patcstlstlst (loc0, cp2tcss, s2es_pat) end // end of [val] var serr: int = 0 val p3ts = p2atlst_trdn (loc0, p2ts, s2es_pat, serr) val () = if (serr != 0) then { val () = the_trans3errlst_add (T3E_c2lau_trdn_arity (c2l, s2es_pat)) } (* end of [val] *) // (* val () = ( print "c2lau_trdn: p3ts = "; fprint_p3atlst (stdout_ref, p3ts); print_newline () ) (* end of [val] *) *) // val (pfd2v | ()) = the_d2varenv_push_let () val () = the_d2varenv_add_p3atlst (p3ts) val (pfman | ()) = the_pfmanenv_push_let () val () = the_pfmanenv_add_p3atlst (p3ts) // val gua = gm2atlst_trup (c2l.c2lau_gua) // // HX-2012-05: // if p3t is a PCKlincon, it is assumed read-only! // val () = d3lvalist_set_pat_type_left (d3es, p3ts) val s2e_res = ( if neg > 0 then s2exp_bottom_t0ype_exi () else s2e_res ) : s2exp // end of [val] val d3e_body = d2exp_trdn (c2l.c2lau_body, s2e_res) // val () = the_d2varenv_check (loc0) // val () = p2atcstlstlst_vt_free (cp2tcss) // val () = the_d2varenv_pop (pfd2v | (*none*)) val () = the_pfmanenv_pop (pfman | (*none*)) // val () = trans3_env_add_cnstr_ref (ctr) val () = trans3_env_pop_and_add_main (pfpush | loc0) // in c3lau_make (loc0, p3ts, gua, seq, neg, d3e_body) end // end of [c2lau_trdn] (* ****** ****** *) fun c2laulst0_trdn ( loc0: loc_t , casknd: caskind , s2es_pat: s2explst , s2e_res: s2exp ) : void = let in // case+ casknd of | CK_case () => let val () = prerr_warning3_loc (loc0) val () = prerr ": a case-expression is expected to have at least one match clause." val () = prerr_newline () val _(*err*) = the_effenv_check_exn (loc0) // HX: handling potential match failure in // nothing end // end of [CK_case] | CK_case_pos () => let val () = prerr_error3_loc (loc0) val () = prerr ": a case+-expression is required to have at least one match clause." val () = prerr_newline () in the_trans3errlst_add (T3E_c2laulst0_trdn_noclause (loc0)) end // end of [CK_case_pos] | CK_case_neg () => () // end // end of [c2laulst0_trdn] (* ****** ****** *) fun c2laulst1_trdn {n:nat} ( loc0: loc_t , casknd: caskind , invres: i2nvresstate , c2l: c2lau , d3es: list (d3exp, n) , s2es_pat: list (s2exp, n) , s2e_res: s2exp ) : c3lau (n) = let (* val () = println! ( "c2laulst1_trdn: s2es_pat = ", s2es_pat ) (* end of [val] *) *) // val cp2tcss = ( case+ casknd of | CK_case () => c2lau_pat_comp (c2l) | CK_case_pos () => c2lau_pat_comp (c2l) | CK_case_neg () => list_vt_nil () ) : p2atcstlstlst_vt // end of [val] var cp2tcss : p2atcstlstlst_vt = cp2tcss // val lsbis = the_d2varenv_save_lstbefitmlst () var lsaft = lstaftc3nstr_initize (lsbis) // val ctr = c3nstroptref_make_none (c2l.c2lau_loc) val c3l = let val cp2tcss1 = c2lau_pat_any (c2l) in c2lau_trdn (casknd, c2l, ctr, d3es, s2es_pat, s2e_res, cp2tcss1) end // end of [val] val () = lstaftc3nstr_update (lsaft, ctr) // val isexhaust = ( // // HX: true for [case-] // if list_vt_is_nil (cp2tcss) then true else false ) : bool // end of [val] val () = if ~isexhaust then let val cp2tcss = p2atcstlstlst_vt_copy (cp2tcss) in trans3_env_add_patcstlstlst_false (loc0, casknd, cp2tcss, s2es_pat) end // end of [if] // end of [val] // val () = p2atcstlstlst_vt_free (cp2tcss) // val () = lstaftc3nstr_process (lsaft, invres) val () = lstaftc3nstr_finalize (lsaft) // HX: it must be processed // val () = if ~isexhaust then { val _(*err*) = the_effenv_caskind_check_exn (loc0, casknd) } // end of [if] // end of [val] // in c3l (* single-clause expression *) end // end of [c2laulst1_trdn] (* ****** ****** *) // extern fun c2laulst2_trdn {n:nat} ( loc0: loc_t , casknd: caskind , invres: i2nvresstate , c2l_fst: c2lau , c2ls_rest: c2laulst , d3es: list (d3exp, n) , s2es_pat: list (s2exp, n) , s2e_res: s2exp ) : c3laulst (n) // and c2laulst2_trdn_rest {n:nat} ( loc0: loc_t , casknd: caskind , invres: i2nvresstate , c3l_fst: c3lau n , lsbis: lstbefitmlst , lsaft: !lstaftc3nstr , c2ls_rest: c2laulst , d3es: list (d3exp, n) , s2es_pat: list (s2exp, n) , s2e_res: s2exp , cp2tcss: &p2atcstlstlst_vt ) : c3laulst (n) // (* ****** ****** *) implement c2laulst2_trdn{n} ( loc0 , casknd, invres , c2l_fst, c2ls_rest , d3es, s2es_pat, s2e_res ) = let (* val () = println! ( "c2laulst2_trdn: s2es_pat = ", s2es_pat ) (* end of [val] *) *) // val cp2tcss = ( case+ casknd of | CK_case () => c2lau_pat_comp (c2l_fst) | CK_case_pos () => c2lau_pat_comp (c2l_fst) | CK_case_neg () => list_vt_nil () ) : p2atcstlstlst_vt // end of [val] var cp2tcss : p2atcstlstlst_vt = cp2tcss // val lsbis = the_d2varenv_save_lstbefitmlst () var lsaft = lstaftc3nstr_initize (lsbis) // val loc_fst = c2l_fst.c2lau_loc val ctr = c3nstroptref_make_none (loc_fst) val c3l_fst = let val cp2tcss1 = c2lau_pat_any (c2l_fst) in c2lau_trdn (casknd, c2l_fst, ctr, d3es, s2es_pat, s2e_res, cp2tcss1) end // end of [val] val () = lstaftc3nstr_update (lsaft, ctr) // val c3ls_all = c2laulst2_trdn_rest ( loc0, casknd, invres, c3l_fst, lsbis, lsaft , c2ls_rest, d3es, s2es_pat, s2e_res, cp2tcss ) (* end of [c3ls_all] *) // val isexhaust = ( // HX: always true for [case-] if list_vt_is_nil (cp2tcss) then true else false ) : bool // end of [val] val () = if ~isexhaust then let val cp2tcss = p2atcstlstlst_vt_copy (cp2tcss) in trans3_env_add_patcstlstlst_false (loc0, casknd, cp2tcss, s2es_pat) end // end of [if] // end of [val] // val () = p2atcstlstlst_vt_free (cp2tcss) // val () = lstaftc3nstr_process (lsaft, invres) val () = lstaftc3nstr_finalize (lsaft) // HX: it must be processed // val () = if ~isexhaust then let val _(*err*) = the_effenv_caskind_check_exn (loc0, casknd) in // nothing end // end of [if] // end of [val] // in c3ls_all end (* end of [c2laulst2_trdn] *) (* ****** ****** *) implement c2laulst2_trdn_rest {n} ( loc0 , casknd , invres , c3l_fst , lsbis // : lstbefitmlst , lsaft // : lstaftc3nstr // linear , c2ls_rest , d3es , s2es_pat, s2e_res , cp2tcss // : &patcstlstlst_vt ) = let // fun auxred ( casknd: caskind , c2l: c2lau, cp2tcss_inter: !p2atcstlstlst_vt ) : void = let // fun auxerr ( xss: !p2atcstlstlst_vt ) : void = let val isnil = list_vt_is_nil (xss) val () = if isnil then { val () = prerr_error3_loc (c2l.c2lau_loc) val () = prerr ": this pattern match clause is redundant." val () = prerr_newline () val () = the_trans3errlst_add (T3E_c2laulst2_trdn_redundant (loc0, c2l)) } (* end of [val] *) in // nothing end // end of [auxerr] // in // case+ casknd of | CK_case () => auxerr (cp2tcss_inter) | CK_case_pos () => auxerr (cp2tcss_inter) | CK_case_neg () => () // end // end of [auxred] // fun auxmain ( c2ls: c2laulst , lsbis: lstbefitmlst , lsaft: !lstaftc3nstr , c3ls: c3laulst_vt (n) , cp2tcss: &p2atcstlstlst_vt ) : c3laulst n = let in case+ c2ls of | list_cons (c2l, c2ls) => let val p2tcs_c2l = p2at2cstlst (c2l.c2lau_pat) (* val () = begin print "c2laulst2_trdn_rest: p2tcs = "; print_p2atcstlst p2tcs_c2l; print_newline (); print "c2laulst2_trdn_rest: cp2tcss =\n"; print_p2atcstlstlst_vt cp2tcss; print_newline (); end (* end of [val] *) *) val cp2tcss_inter = let fun aux ( xss: !p2atcstlstlst_vt ) : p2atcstlstlst_vt = case+ xss of | list_vt_cons (!p1_xs, !p2_xss) => let val res = aux (!p2_xss) val test = p2atcstlst_inter_test ($UN.castvwtp1{p2atcstlst}{p2atcstlst_vt}(!p1_xs), p2tcs_c2l) // end of [val] in if test then let val xs = list_vt_copy (!p1_xs) prval () = fold@ (xss) in list_vt_cons (xs, res) end else let prval () = fold@ (xss) in res end // end of [if] end // end of [list_vt_cons] | list_vt_nil((*void*)) => (fold@ (xss); list_vt_nil()) // end of [aux] in aux (cp2tcss) end // end of [let] // end of [val] (* val () = ( print "c2laulst2_trdn_rest; print ": auxmain: cp2tcss_inter =\n"; print_p2atcstlstlst_vt (cp2tcss_inter); print_newline () ) (* end of [val] *) *) val () = auxred (casknd, c2l, cp2tcss_inter) // HX: redundancy checking // val () = lstbefitmlst_restore_type (lsbis) val ctr = c3nstroptref_make_none (c2l.c2lau_loc) val c3l = c2lau_trdn (casknd, c2l, ctr, d3es, s2es_pat, s2e_res, cp2tcss_inter) val () = lstaftc3nstr_update (lsaft, ctr) // val () = let val gua = c2l.c2lau_gua in case+ gua of | list_nil () => let fun aux ( xss: p2atcstlstlst_vt ) : p2atcstlstlst_vt = case+ xss of | ~list_vt_cons (xs, xss) => let val diff = p2atcstlst_diff ($UN.castvwtp1 {p2atcstlst} (xs), p2tcs_c2l) val () = list_vt_free (xs) in list_vt_append (diff, aux (xss)) end // end of [list_vt_cons] | ~list_vt_nil () => list_vt_nil () // end of [aux] in cp2tcss := aux (cp2tcss) end // end of [list_cons] | list_cons _ => () end // end of [val] val c3ls = list_vt_cons (c3l, c3ls) (* val () = begin print "c2laulst2_trdn_rest: auxmain"; print ": cp2tcss(aft) =\n"; print_p2atcstlstlst_vt (cp2tcss); print_newline () end // end of [val] *) in auxmain (c2ls, lsbis, lsaft, c3ls, cp2tcss) end // end of [list_cons] | list_nil () => let val c3ls = list_vt_reverse (c3ls) in (l2l)c3ls end // end of [list_nil] end (* end of [aux_main] *) val c3ls_rest = auxmain (c2ls_rest, lsbis, lsaft, list_vt_nil (), cp2tcss) // end of [val] (* val () = ( print "c2laulst2_trdn_rest: cp2tcss =\n"; print_p2atcstlstlst_vt (cp2tcss); print_newline () ) // end of [val] *) in list_cons (c3l_fst, c3ls_rest) end // end of [c2laulst2_trdn_rest] (* ****** ****** *) implement c2laulst_trdn{n} ( loc0, casknd, invres, c2ls, d3es, s2es_pat, s2e_res ) = let in // case+ c2ls of | list_nil () => let val () = c2laulst0_trdn (loc0, casknd, s2es_pat, s2e_res) in list_nil () end // end of [list_nil] | list_cons (c2l, c2ls) => ( case+ c2ls of | list_nil () => let val c3l = c2laulst1_trdn (loc0, casknd, invres, c2l, d3es, s2es_pat, s2e_res) // end of [val] in list_sing (c3l) end // end of [list_nil] | list_cons _ => c2laulst2_trdn (loc0, casknd, invres, c2l, c2ls, d3es, s2es_pat, s2e_res) ) // end of [list_cons] // end // end of [c2laulst_trdn] (* ****** ****** *) implement d2exp_trdn_casehead (d2e0, s2f0) = let (* val () = ( println! ("d2exp_trdn_casehead: s2f0 = ", s2f0) ) // end of [val] *) val loc0 = d2e0.d2exp_loc val-D2Ecasehead (casknd, invres, d2es, c2ls) = d2e0.d2exp_node val s2e0 = s2hnf2exp (s2f0) // val d3es = d2explst_trup (d2es) val _(*void*) = d3explst_open_and_add (d3es) val s2es_pat = list_map_fun (d3es, d3exp_get_type) val c3ls = let val s2es1_pat = __cast (s2es_pat) where { extern castfn __cast {n:int}(xs: !list_vt(s2exp, n)): list(s2exp, n) } // end of [where] // end of [val] in c2laulst_trdn (loc0, casknd, invres, c2ls, d3es, s2es1_pat, s2e0) end // end of [val] val () = list_vt_free (s2es_pat) // val () = i2nvresstate_update (loc0, invres) // in d3exp_case (loc0, s2e0, casknd, d3es, c3ls) end (* end of [d2exp_trdn_casehead] *) (* ****** ****** *) implement d2exp_trdn_scasehead (d2e0, s2f0) = let (* val () = ( println! ("d2exp_trdn_scasehead: s2f0 = ", s2f0) ) // end of [val] *) // val loc0 = d2e0.d2exp_loc val-D2Escasehead (invres, s2e_val, sc2ls) = d2e0.d2exp_node val s2e0 = s2hnf2exp (s2f0) // val lsbis = the_d2varenv_save_lstbefitmlst () var lsaft = lstaftc3nstr_initize (lsbis) // fun auxscl .<>. ( sc2l: sc2lau , s2e_val: s2exp , s2e_res: s2exp , isfst: bool , lsbis: lstbefitmlst , lsaft: !lstaftc3nstr ) : sc3lau = let val loc0 = sc2l.sc2lau_loc val () = if not(isfst) then lstbefitmlst_restore_type (lsbis) // end of [val] val ctr = c3nstroptref_make_none (loc0) val sp2t = sc2l.sc2lau_pat val d2e_body = sc2l.sc2lau_body val (pfpush | ()) = trans3_env_push () val () = trans3_env_add_sp2at (sp2t) val () = $SOL.s2exp_hypequal_solve (sp2t.sp2at_loc, s2e_val, sp2t.sp2at_exp) val d3e_body = d2exp_trdn (d2e_body, s2e_res) val () = trans3_env_add_cnstr_ref (ctr) val () = trans3_env_pop_and_add_main (pfpush | loc0) val () = lstaftc3nstr_update (lsaft, ctr) in sc3lau_make (loc0, sp2t, d3e_body) end // end of [auxscl] // fun auxsclist ( sc2ls: sc2laulst , s2e_val: s2exp , s2e_res: s2exp , isfst: bool , lsbis: lstbefitmlst , lsaft: !lstaftc3nstr ) : sc3laulst = case+ sc2ls of | list_cons (sc2l, sc2ls) => let val sc3l = auxscl ( sc2l, s2e_val, s2e_res, isfst, lsbis, lsaft ) // end of [val] val sc3ls = auxsclist ( sc2ls, s2e_val, s2e_res, false(*isfst*), lsbis, lsaft ) // end of [val] in list_cons (sc3l, sc3ls) end // end of [list_cons] | list_nil () => list_nil () // end of [auxsclist] // val sc3ls = auxsclist (sc2ls, s2e_val, s2e0, true(*isfst*), lsbis, lsaft) // val () = lstaftc3nstr_process (lsaft, invres) val () = lstaftc3nstr_finalize (lsaft) // HX: it must be processed // val () = i2nvresstate_update (loc0, invres) // in d3exp_scase (loc0, s2e0, s2e_val, sc3ls) end // end of [d2exp_trdn_scasehead] (* ****** ****** *) (* end of [pats_trans3_caseof.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_dynexp.dats0000644000175000017500000015415713431250607022424 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_symbol.sats" staload "./pats_lexing.sats" staload "./pats_tokbuf.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) #define l2l list_of_list_vt #define t2t option_of_option_vt (* ****** ****** *) viewtypedef d0explst12 = list12 (d0exp) viewtypedef labd0explst12 = list12 (labd0exp) (* ****** ****** *) fun d0exp_list12 ( t_beg: token , ent2: d0explst12 , t_end: token ) : d0exp = case+ ent2 of | ~LIST12one (xs) => d0exp_list (t_beg, ~1, (l2l)xs, t_end) | ~LIST12two (xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in d0exp_list (t_beg, npf, (l2l)xs12, t_end) end (* end of [LIST12two] *) // end of [d0exp_list12] (* ****** ****** *) fun d0exp_list12_if ( t_beg: token , ent2: d0explst12 , t_end: token , err: int, err0: int ) : d0exp = if err = err0 then d0exp_list12 (t_beg, ent2, t_end) else let val () = list12_free (ent2) in synent_null () end (* end of [if] *) // end of [d0exp_list12_if] (* ****** ****** *) fun d0exp_tup12 ( knd: int , t_beg: token , ent2: d0explst12 , t_end: token ) : d0exp = let in // case+ ent2 of | ~LIST12one (xs) => d0exp_tup (knd, t_beg, ~1, (l2l)xs, t_end) | ~LIST12two (xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in d0exp_tup (knd, t_beg, npf, (l2l)xs12, t_end) end (* end of [LIST12two] *) // end // end of [d0exp_tup12] (* ****** ****** *) fun d0exp_rec12 ( knd: int , t_beg: token, ent2: labd0explst12, t_end: token ) : d0exp = let in // case+ ent2 of | ~LIST12one (xs) => d0exp_rec (knd, t_beg, ~1, (l2l)xs, t_end) | ~LIST12two (xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in d0exp_rec (knd, t_beg, npf, (l2l)xs12, t_end) end // end // end of [d0exp_rec12] (* ****** ****** *) fun p_d0expseq_BAR_d0expseq ( buf: &tokbuf, bt: int, err: &int ) : d0explst12 = plist12_fun (buf, bt, p_d0exp) // end of [p_d0expseq_BAR_d0expseq] fun p1_d0expseq_BAR_d0expseq ( d0e: d0exp , buf: &tokbuf, bt: int, err: &int ) : d0explst12 = p1list12_fun (d0e, buf, bt, p_d0exp) // end of [p1_d0expseq_BAR_d0expseq] (* ****** ****** *) fun p_labd0expseq_BAR_labd0expseq ( buf: &tokbuf, bt: int, err: &int ) : labd0explst12 = let val _ = p_COMMA_test (buf) in plist12_fun (buf, bt, p_labd0exp) end // end of [p_labd0expseq_BAR_labd0expseq] (* ****** ****** *) (* di0de | IDENTIFIER_alp | IDENTIFIER_sym | BACKSLASH | BANG | EQ | GT | LT | TILDE | GTLT *) implement p_di0de (buf, bt, err) = let // val tok = tokbuf_get_token(buf) // end of [val] val loc = tok.token_loc macdef incby1() = tokbuf_incby1(buf) // in // case+ tok.token_node of // case+ | T_IDENT_alp (x) => let val () = incby1 () in i0de_make_string(loc, x) end | T_IDENT_sym (x) => let val () = incby1 () in i0de_make_string(loc, x) end // | T_LT () => let val () = incby1 () in i0de_make_sym(loc, symbol_LT) end | T_GT () => let val () = incby1 () in i0de_make_sym(loc, symbol_GT) end // | T_BACKSLASH ((*void*)) => let val () = incby1 () in i0de_make_sym(loc, symbol_BACKSLASH) end | T_BANG () => let val () = incby1 () in i0de_make_sym(loc, symbol_BANG) end | T_EQ () => let // [EQ] is a keyword in the statics val () = incby1 () in i0de_make_sym(loc, symbol_EQ) end | T_TILDE () => let val () = incby1 () in i0de_make_sym(loc, symbol_TILDE) end // | T_GTLT () => let val () = incby1 () in i0de_make_sym(loc, symbol_GTLT) end // | _ (*rest*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_di0de) in synent_null () end // end of [_] // end // end of [p_di0de] (* ****** ****** *) (* d0ynq ::= | i0de_dlr DOT | i0de_dlr COLON | i0de_dlr i0de_dlr COLON /* | DOLLAR LITERAL_string DOT | DOLLAR LITERAL_string i0de_dlr COLON */ *) implement p_d0ynq(buf, bt, err) = let // val err0 = err // val n0 = tokbuf_get_ntok(buf) // val tok = tokbuf_get_token(buf) // val loc = tok.token_loc // var ent: synent? // uninitized // macdef incby1() = tokbuf_incby1 (buf) // in // case+ 0 of | _ when ptest_fun ( buf, p_i0de_dlr, ent ) => let val bt = 0 val ent1 = synent_decode{i0de}(ent) // end of [val] val tok2 = tokbuf_get_token(buf) in case+ tok2.token_node of // case+ | T_DOT() => let val () = incby1() in d0ynq_symdot(ent1, tok2) end (* // // HX-2017-01-24: // removed due to no use // | T_COLON() => let val () = incby1() in d0ynq_symcolon(ent1, tok2) end *) | _ (*non-DOT*) => tokbuf_set_ntok_null(buf, n0) where { val () = the_parerrlst_add_ifnbt(bt, loc, PE_d0ynq) // end of [val] } // end of [non-DOT] (* // // HX-2017-01-24: // removed due to no use // | _ (*non-DOT-COLON*) => let val ent2 = p_i0de_dlr(buf, bt, err) val ent3 = pif_fun(buf, bt, err, p_COLON, err0) // end of [val] in if err = err0 then ( d0ynq_symdotcolon(ent1, ent2, ent3) ) (* end of [then] *) else let val () = the_parerrlst_add_ifnbt(bt, loc, PE_d0ynq) // end of [val] in tokbuf_set_ntok_null(buf, n0) end // end of [else] // end of [if] end // end of [non-DOT-COLON] *) end (* end of [_ when ...] *) // | _ (*rest-of-tokens*) => synent_null((*void*)) where { val () = err := err + 1 val () = the_parerrlst_add_ifnbt(bt, loc, PE_d0ynq) } (* end of [rest-of-tokens] *) // end // end of [p_d0ynq] (* ****** ****** *) fun pqi0de_fun ( buf: &tokbuf , bt: int, err: &int , f: parser (i0de) , enode: parerr_node ) : dqi0de = let // val err0 = err // val n0 = tokbuf_get_ntok(buf) // val tok = tokbuf_get_token (buf) // val loc = tok.token_loc // var ent: synent? // uninitized // in // case+ 0 of | _ when ptest_fun (buf, f, ent) => dqi0de_make_none(synent_decode{i0de}(ent)) | _ when ptest_fun(buf, p_d0ynq, ent) => let // val bt = 0 // HX: avoiding false positive val ent1 = synent_decode{d0ynq}(ent) val ent2 = f(buf, bt, err) // HX: err = err0 in if err = err0 then dqi0de_make_some(ent1, ent2) else tokbuf_set_ntok_null(buf, n0) // end of [if] end | _ (*rest*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, enode) in synent_null () end // end // end of [pqi0de_fun] (* dqi0de ::= di0de | d0ynq di0de *) implement p_dqi0de (buf, bt, err) = pqi0de_fun (buf, bt, err, p_di0de, PE_dqi0de) // end of [p_dqi0de] (* ****** ****** *) fun p_arri0de ( buf: &tokbuf, bt: int, err: &int ) : i0de = let val tok = tokbuf_get_token (buf) in // case+ tok.token_node of | T_IDENT_arr (name) => let val () = tokbuf_incby1 (buf) in i0de_make_string (tok.token_loc, name) end | _ => let val () = err := err + 1 in synent_null () end // end // end of [p_arri0de] implement p_arrqi0de (buf, bt, err) = pqi0de_fun (buf, bt, err, p_arri0de, PE_arrqi0de) // end of [p_arrqi0de] (* ****** ****** *) fun p_tmpi0de ( buf: &tokbuf, bt: int, err: &int ) : i0de = let val tok = tokbuf_get_token (buf) in // case+ tok.token_node of | T_IDENT_tmp (name) => let val () = tokbuf_incby1 (buf) in i0de_make_string (tok.token_loc, name) end | _ => let val () = err := err + 1 in synent_null () end // end // end of [p_tmpi0de] implement p_tmpqi0de (buf, bt, err) = pqi0de_fun (buf, bt, err, p_tmpi0de, PE_tmpqi0de) // end of [p_tmpqi0de] (* ****** ****** *) (* labd0exp ::= l0ab EQ d0exp *) implement p_labd0exp ( buf, bt, err ) = let val err0 = err val tok = tokbuf_get_token (buf) val+~SYNENT3 (ent1, ent2, ent3) = pseq3_fun{l0ab,token,d0exp}(buf, bt, err, p_l0ab, p_EQ, p_d0exp) (* end of [val] *) in // if (err = err0) then labd0exp_make (ent1, ent3) else let val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_labd0exp) in synent_null ((*okay*)) end (* end of [if] *) // end // end of [p_labd0exp] (* ****** ****** *) (* eqd0expopt :: = [EQ d0exp] *) implement p_eqd0expopt (buf, bt, err) = t2t (ptokentopt_fun (buf, is_EQ, p_d0exp)) // end of [p_eqd0expopt] (* ****** ****** *) (* d0expsemiseq = | d0exp {SEMICOLON d0exp}* {SEMICOLON}* | /*empty*/ *) implement p_d0expsemiseq (buf, bt, err) = let val err0 = err val x = p_d0exp (buf, 1(*bt*), err) // HX: optional macdef incby1 () = tokbuf_incby1 (buf) in // if err = err0 then let val tok = tokbuf_get_token (buf) in // case+ tok.token_node of | T_SEMICOLON () => let val () = incby1 () val xs = p_d0expsemiseq (buf, 1(*bt*), err) in list_cons (x, xs) end | _ (*non-SEMICOLON*) => list_sing (x) // end // end of [then] else let val () = err := err0 val semilst = pstar_fun (buf, bt, p_SEMICOLON) val () = list_vt_free (semilst) in list_nil () end // end of [else] // end // end of [p_d0expsemiseq] (* ****** ****** *) (* s0expelt ::= | LBRACE s0exp RBRACE | LBRACKET s0exp RBRACKET | /* empty*/ *) fun p_s0expelt ( buf: &tokbuf, bt: int, err: &int ) : s0expopt = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_LBRACE () => let // HX-2011-04-04: deprecated? val bt = 0 val () = incby1 () val ent2 = p_s0exp (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RBRACE, err0) in if err = err0 then Some (ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | T_LBRACKET () => let val bt = 0 val () = incby1 () val ent2 = p_s0exp (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RBRACKET, err0) in if err = err0 then Some (ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | _ => None () // HX: there is no error end // end of [p_s0expelt] (* ****** ****** *) (* arrdimopt ::= /*empty*/ | LBRACKET d0exp LBRACKET *) fun p_arrdimopt ( buf: &tokbuf, bt: int, err: &int ) : d0expopt = let val bt = 1 // HX: this is optional val err0 = err val+~SYNENT3 (ent1, ent2, ent3) = pseq3_fun {token,d0exp,token} (buf, bt, err, p_LBRACKET, p_d0exp, p_RBRACKET) // end of [val] in if err = err0 then Some (ent2) else (err := err0; None ()) end // end of [p_arrdimopt] (* ****** ****** *) (* d0arrind ::= d0expcommaseq RBRACKET [LBRACKET d0arrind] *) fun p_d0arrind ( buf: &tokbuf, bt: int, err: &int ) : d0arrind = let val err0 = err val n0 = tokbuf_get_ntok (buf) macdef incby1 () = tokbuf_incby1 (buf) // val ent1 = pstar_fun0_COMMA {d0exp} (buf, bt, p_d0exp) val ent2 = p_RBRACKET (buf, bt, err) // err = err0 // in // if err = err0 then let val bt = 0 val tok = tokbuf_get_token (buf) in case+ tok.token_node of | T_LBRACKET () => let val () = incby1 () val ent4 = p_d0arrind (buf, bt, err) in if err = err0 then d0arrind_cons ((l2l)ent1, ent4) else let val () = list_vt_free (ent1) in tokbuf_set_ntok_null (buf, n0) end // end of [if] end | _ => d0arrind_sing ((l2l)ent1, ent2) end else let val () = list_vt_free (ent1) in tokbuf_set_ntok_null (buf, n0) end (* end of [if] *) // end // end of [p_d0arrind] (* ****** ****** *) (* s0elop ::= DOT | MINUSGT *) fun p_s0elop ( buf: &tokbuf, bt: int, err: &int ) : s0elop = let val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_DOT () => let val () = incby1 () in s0elop_make_dot (tok) end | T_MINUSGT () => let val () = incby1 () in s0elop_make_minusgt (tok) end | _ => let val () = err := err + 1 in synent_null () end // end // end of [p_s0elop] (* ****** ****** *) (* s0expdarg ::= LBRACE s0exparg RBRACE *) fun p_s0expdarg ( buf: &tokbuf, bt: int, err: &int ) : d0exp = let val err0 = err typedef a1 = token and a2 = s0exparg and a3 = token val+~SYNENT3 (ent1, ent2, ent3) = pseq3_fun {a1,a2,a3} (buf, bt, err, p_LBRACE, p_s0exparg, p_RBRACE) // end of [val] in if err = err0 then d0exp_sexparg (ent1, ent2, ent3) else synent_null ((*okay*)) // end of [if] end // end of [p_s0expdarg] (* ****** ****** *) (* atmd0exp ::= | dqi0de | OP di0de | i0nt | s0tring | c0har | f0loat | #FILENAME | #LOCATION | BREAK | CONTINUE | LABEL // | DLREXTVAL LPAREN s0exp COMMA s0tring RPAREN | DLREXTFALL LPAREN s0exp COMMA s0tring commad0expseq RPAREN // | LPAREN d0exp SEMICOLON d0expsemiseq RPAREN | LPAREN d0expcommaseq [BAR d0expcommaseq] RPAREN // | ATLPAREN d0expcommaseq [BAR d0expcommaseq] RPAREN | QUOTELPAREN d0expcommaseq [BAR d0expcommaseq] RPAREN // | ATLBRACE labd0expseq [BAR labd0expseq] RBRACE | QUOTELBRACE labd0expseq [BAR labde0xpseq] RBRACE // | ATLBRACKET s0exp RBRACKET arrdimopt LPAREN d0expcommaseq RPAREN | HASHLBRACKET s0exparg BAR d0exp RBRACKET | QUOTELBRACKET d0expcommaseq RBRACKET // | arrqi0de d0arrind // | DLRARRPSZ s0expelt LPAREN d0expcommaseq RPAREN // | BEGIN d0expsemiseq END // | LET d0ecseq_dyn IN d0expsemiseq END | LBRACE d0ecseq_dyn RBRACE // | COMMALPAREN d0exp RPAREN // macsyn_decode | BQUOTELPAREN d0expsemiseq RPAREN // macsyn_encode_seq | PERCENTLPAREN d0exp RPAREN // macsyn_cross // *) fun p_atmd0exp ( buf: &tokbuf, bt: int, err: &int ) : d0exp = ( ptokwrap_fun (buf, bt, err, p_atmd0exp_tok, PE_atmd0exp) ) (* end of [p_atmd0exp] *) and p_atmd0exp_tok ( buf: &tokbuf, bt: int, err: &int, tok: token ) : d0exp = let // val err0 = err var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | _ when ptest_fun (buf, p_di0de, ent) => d0exp_ide (synent_decode{i0de}(ent)) | _ when ptest_fun (buf, p_i0dext, ent) => d0exp_idext (synent_decode{i0de}(ent)) // | T_INT _ => let val () = incby1 () in d0exp_i0nt (tok) end | T_CHAR _ => let val () = incby1 () in d0exp_c0har (tok) end | T_FLOAT _ => let val () = incby1 () in d0exp_f0loat (tok) end | T_STRING _ => let val () = incby1 () in d0exp_s0tring (tok) end // | T_OP _ => let val bt = 0 val () = incby1 () val ent2 = p_di0de (buf, bt, err) in if err = err0 then d0exp_opid (tok, ent2) else synent_null () // end of [if] end | _ when ptest_fun (buf, p_dqi0de, ent) => d0exp_dqid (synent_decode{dqi0de}(ent)) // | T_DLRMYFILENAME ((*void*)) => let val () = incby1 () in d0exp_MYFIL (tok) end | T_DLRMYLOCATION ((*void*)) => let val () = incby1 () in d0exp_MYLOC (tok) end | T_DLRMYFUNCTION ((*void*)) => let val () = incby1 () in d0exp_MYFUN (tok) end // | T_DLRTYREP() => let val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_s0exp, err0) val ent4 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0exp_tyrep(tok, ent3, ent4) else synent_null() // end of [if] end // end of [T_DLRTYREP] // | T_DLRLITERAL ((*void*)) => let val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_d0exp, err0) val ent4 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0exp_literal (tok, ent3, ent4) else synent_null () // end of [if] end // end of [T_DLRLITERAL] // | _ when ptest_fun ( buf, p_s0elop, ent // s0elop ::= DOT | MINUSGT ) => let val bt = 0 val ent1 = synent_decode {s0elop} (ent) // end of [val] val tok2 = tokbuf_get_token (buf) in case+ tok2.token_node of | T_LBRACKET () => let val () = incby1 () val ent2 = p_d0arrind (buf, bt, err) in if err = err0 then d0exp_sel_ind (ent1, ent2) else synent_null () // end of [if] end // end of [T_LBRACKET] | _ when ptest_fun ( buf, p_l0ab, ent ) => let val ent2 = synent_decode {l0ab} (ent) in d0exp_sel_lab (ent1, ent2) // end of [val] end // end of [when ...] | _ (*rest*) => let val () = err := err + 1 in synent_null((*dangling [s0elop]*)) end // end of [_] end // end of [p_s0elop] // | T_DOTINT _ => let val () = incby1 () in d0exp_sel_int (tok) end // end of [T_DOTINT] // | T_ADDRAT () => let val () = incby1 () in d0exp_ptrof (tok) end | T_VIEWAT () => let val () = incby1 () in d0exp_viewat (tok) end | T_FOLDAT () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun (buf, bt, p_s0expdarg) in d0exp_foldat (tok, (l2l)ent2) // HX: there is no failure end | T_FREEAT () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun (buf, bt, p_s0expdarg) in d0exp_freeat (tok, (l2l)ent2) // HX: there is no failure end // | _ when ptest_fun ( buf, p_tmpqi0de, ent ) => let val bt = 0 val ent1 = synent_decode{dqi0de}(ent) val ent2 = pstar_fun1_sep{t0mpmarg}(buf, bt, err, p_tmps0expseq, p_GTLT_test) val ent3 = pif_fun (buf, bt, err, p_GT, err0) in if err = err0 then let val ent2 = (l2l)ent2 in d0exp_tmpid (ent1, ent2, ent3) end // end of [then] else let val () = list_vt_free(ent2) in synent_null() end (* end of [else] *) // end of [if] end // | T_DLREXTVAL() => let val bt = 0 val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_s0exp, err0) val ent4 = pif_fun (buf, bt, err, p_COMMA, err0) val ent5 = pif_fun (buf, bt, err, p_s0tring, err0) val ent6 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0exp_extval(tok, ent3, ent5, ent6) else synent_null() // end of [if] end // | T_DLREXTFCALL ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_s0exp, err0) val ent4 = pif_fun (buf, bt, err, p_COMMA, err0) val ent5 = pif_fun (buf, bt, err, p_s0tring, err0) val ent6 = pstar_COMMA_fun {d0exp} (buf, bt, p_d0exp) val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) val okay = (if err = err0 then true else false): bool in if okay then let val ent6 = (l2l)ent6 in d0exp_extfcall(tok, ent3, ent5, ent6, ent7) end // end of [then] else let // HX: err > err0 val () = list_vt_free(ent6) in synent_null() end (* end of [else] *) // end of [if] end // end of [T_DLREXTFCALL] // | T_DLREXTMCALL ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_s0exp, err0) val ent4 = pif_fun (buf, bt, err, p_COMMA, err0) val ent5 = pif_fun (buf, bt, err, p_d0exp, err0) val ent6 = pif_fun (buf, bt, err, p_COMMA, err0) val ent7 = pif_fun (buf, bt, err, p_s0tring, err0) val ent8 = pstar_COMMA_fun {d0exp} (buf, bt, p_d0exp) val ent9 = pif_fun (buf, bt, err, p_RPAREN, err0) val okay = (if err = err0 then true else false): bool in if okay then let val ent8 = (l2l)ent8 in d0exp_extmcall (tok, ent3, ent5, ent7, ent8, ent9) end // end of [then] else let // HX: err > err0 val () = list_vt_free (ent8) in synent_null ((*void*)) end // end of [else] // end of [if] end // end of [T_DLREXTMCALL] // | T_LPAREN () => let val () = incby1 () val d0e = p_d0exp (buf, 1(*bt*), err) // HX: may backtrack! // end of [val] in if err = err0 then let val bt = 0 val tok2 = tokbuf_get_token(buf) in case+ tok2.token_node of // case+ | T_SEMICOLON() => let val () = incby1 () val d0es = p_d0expsemiseq(buf, bt, err) val ent3 = p_RPAREN(buf, bt, err) // err=err0 in if err = err0 then d0exp_seq(tok, list_cons(d0e, d0es), ent3) else synent_null() // end of [if] end | _ (*non-SEMICOLON*) => let val ent2 = p1_d0expseq_BAR_d0expseq(d0e, buf, bt, err) // end of [val] val ent3 = p_RPAREN(buf, bt, err) // HX: err = err0 in d0exp_list12_if (tok, ent2, ent3, err, err0) end end // end of [then] else let val bt = 0 val () = err := err0 val ent2 = p_d0expseq_BAR_d0expseq(buf, bt, err) val ent3 = p_RPAREN(buf, bt, err) // HX: err=err0 in d0exp_list12_if (tok, ent2, ent3, err, err0) end // end of [else] // end of [if] end // end of [let] // end of [T_LPAREN] // | tnd when is_LPAREN_deco (tnd) => let val bt = 0 val () = incby1 () val ent2 = p_d0expseq_BAR_d0expseq (buf, bt, err) // end of [val] val ent3 = p_RPAREN (buf, bt, err) // err=err0 in if err = err0 then let val knd = (if is_ATLPAREN(tnd) then 0 else 1): int // end of [val] in d0exp_tup12 (knd, tok, ent2, ent3) end // end of [then] else let val () = list12_free(ent2) in synent_null() end // end of [else] // end of [if] end | tnd when is_LBRACE_deco (tnd) => let val bt = 0 val () = incby1 () val ent2 = p_labd0expseq_BAR_labd0expseq(buf, bt, err) // end of [val] val ent3 = p_RBRACE (buf, bt, err) // err=err0 in if err = err0 then let val knd = (if is_ATLBRACE (tnd) then 0 else 1): int // end of [val] in d0exp_rec12 (knd, tok, ent2, ent3) end // end of [then] else let val () = list12_free(ent2) in synent_null() end // end of [else] // end of [if] end // (* | ATLBRACKET s0exp RBRACKET arrdimopt LPAREN d0expcommaseq RPAREN *) | T_ATLBRACKET ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_s0exp (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RBRACKET, err0) val ent4 = ( if err = err0 then p_arrdimopt (buf, bt, err) else None () ) : d0expopt val ent5 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent6 = ( if err = err0 then pstar_fun0_COMMA{d0exp}(buf, bt, p_d0exp) else list_vt_nil ((*void*)) // end of [if] ) : d0explst_vt val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0exp_arrinit (tok, ent2, ent4, (l2l)ent6, ent7) else let val () = list_vt_free (ent6) in synent_null () end (* end of [if] *) end // (* | HASHLBRACKET s0exparg BAR d0exp RBRACKET *) | T_HASHLBRACKET ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_s0exparg (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_BAR, err0) val ent4 = pif_fun (buf, bt, err, p_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_RBRACKET, err0) in if err = err0 then d0exp_exist(tok, ent2, ent3, ent4, ent5) else synent_null() // end of [if] end // (* | QUOTELBRACKET d0expseq RBRACKET *) | T_QUOTELBRACKET ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA{d0exp}(buf, bt, p_d0exp) // end of [val] val ent3 = p_RBRACKET(buf, bt, err) in if err = err0 then d0exp_lst_quote(tok, (l2l)ent2, ent3) else let val () = list_vt_free(ent2) in synent_null() end // end of [else] // end of [if] end // | _ when ptest_fun ( buf, p_arrqi0de, ent ) => let val bt = 0 val ent1 = synent_decode {dqi0de} (ent) val ent2 = p_d0arrind (buf, bt, err) // err = err0 in if err = err0 then d0exp_arrsub (ent1, ent2) else synent_null () // end of [if] end // | T_DLRARRPSZ ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_s0expelt (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent4 = ( if err = err0 then pstar_fun0_COMMA{d0exp}(buf, bt, p_d0exp) else list_vt_nil((*void*)) // end of [if] ) : d0explst_vt // end of [val] val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then let val ent4 = (l2l)ent4 in d0exp_arrpsz(tok, ent2, ent3, ent4, ent5) end // end of [then] else let val () = list_vt_free(ent4) in synent_null() end (* end of [else] *) // end of [if] end // | T_DLRLST(lin) => let val bt = 0 val () = incby1() val ent2 = p_s0expelt(buf, bt, err) val ent3 = pif_fun(buf, bt, err, p_LPAREN, err0) val ent4 = ( if err = err0 then pstar_fun0_COMMA{d0exp}(buf, bt, p_d0exp) else list_vt_nil((*void*)) // end of [if] ) : d0explst_vt // end of [val] val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then let val ent4 = (l2l)ent4 in d0exp_lst(lin, tok, ent2, ent3, ent4, ent5) end // end of [then] else let val () = list_vt_free(ent4) in synent_null() end (* end of [else] *) // end of [if] end | T_DLRTUP(knd) => let val bt = 0 val () = incby1 () val ent2 = p_LPAREN(buf, bt, err) // err = err0 val ent3 = p_d0expseq_BAR_d0expseq(buf, bt, err) val ent4 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0exp_tup12(knd, tok, ent3, ent4) else let val () = list12_free(ent3) in synent_null() end // end of [else] end | T_DLRREC(knd) => let val bt = 0 val () = incby1 () val ent2 = p_LBRACE (buf, bt, err) // err = err0 val ent3 = p_labd0expseq_BAR_labd0expseq(buf, bt, err) val ent4 = pif_fun (buf, bt, err, p_RBRACE, err0) in if err = err0 then d0exp_rec12 (knd, tok, ent3, ent4) else let val () = list12_free (ent3) in synent_null () end // end of [else] // end of [if] end // | T_BEGIN () => let val bt = 0 val () = incby1 () val ent2 = p_d0expsemiseq (buf, bt, err) val ent3 = p_END (buf, bt, err) // err = err0 in if err = err0 then d0exp_seq(tok, ent2, ent3) else synent_null() // end of [if] end // | T_LET () => let val bt = 0 val () = incby1 () val ent2 = p_d0eclseq_dyn (buf, bt, err) val ent3 = p_IN (buf, bt, err) // err= err0 val ent4 = pif_fun (buf, bt, err, p_d0expsemiseq, err0) val ent5 = pif_fun (buf, bt, err, p_END, err0) in if err = err0 then d0exp_let_seq (tok, ent2, ent3, ent4, ent5) else synent_null() // end of [if] end | T_LBRACE () => let val bt = 0 val () = incby1 () val ent2 = p_d0eclseq_dyn (buf, bt, err) val ent3 = p_RBRACE (buf, bt, err) // err = err0 in if err = err0 then d0exp_declseq(tok, ent2, ent3) else synent_null() // end of [if] end // | T_COMMALPAREN () => let val bt = 0 val () = incby1 () val ent2 = p_d0exp (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0exp_macsyn_decode(tok, ent2, ent3) else synent_null() // end of [if] end | T_BQUOTELPAREN () => let val bt = 0 val () = incby1 () val ent2 = p_d0expsemiseq (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0exp_macsyn_encode_seq(tok, ent2, ent3) else synent_null() // end of [if] end | T_PERCENTLPAREN () => let val bt = 0 val () = incby1 () val ent2 = p_d0exp (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0exp_macsyn_cross(tok, ent2, ent3) else synent_null() // end of [if] end // | _ (*rest-of-tokens*) => let val () = err := err + 1 in synent_null((*error*)) end // (* end of [case] *) end // end of [p_atmd0exp_tok] (* ****** ****** *) (* argd0exp ::= s0expdarg | atmd0exp *) fun p_argd0exp ( buf: &tokbuf, bt: int, err: &int ) : d0exp = let var ent: synent? in // case+ 0 of | _ when ptest_fun ( buf, p_s0expdarg, ent ) => synent_decode {d0exp} (ent) | _ when ptest_fun ( buf, p_atmd0exp, ent ) => synent_decode {d0exp} (ent) | _ => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [p_argd0exp] (* ****** ****** *) (* d0exp0 ::= | atmd0exp argd0expseq [COLON s0exp] | break | continue | $showtype d0exp | $vcopyenv_v d0exp | $vcopyenv_vt d0exp | $tempenver d0exp | $solassert d0exp | $solverify s0exp *) fun p_d0exp0 ( buf: &tokbuf, bt: int, err: &int ) : d0exp = let // val err0 = err var ent: synent? val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ | _ when ptest_fun ( buf, p_atmd0exp, ent ) => let val bt = 0 val ent1 = synent_decode{d0exp}(ent) // end of [val] val ent2 = pstar_fun{d0exp}(buf, bt, p_argd0exp) // end of [val] val ent3 = p_colons0expopt(buf, bt, err) // err = err0 // fun loop ( x0: d0exp, xs: d0explst_vt ) : d0exp = case+ xs of | ~list_vt_nil() => x0 | ~list_vt_cons(x, xs) => let val x0 = d0exp_app(x0, x) in loop(x0, xs) end // end of [list_vt_cons] // end of [loop] val d0e = loop (ent1, ent2) in case+ ent3 of | Some s0e => d0exp_ann(d0e, s0e) | None() => d0e end // | T_DLRBREAK() => let val () = incby1 () in d0exp_loopexn (0(*knd*), tok) end // end of [T_DLRBREAK] | T_DLRCONTINUE() => let val () = incby1 () in d0exp_loopexn (1(*knd*), tok) end // end of [T_DLRCONTINUE] // | T_DLRVARARG() => let // val bt = 0 val () = incby1() // val ent2 = p_LPAREN(buf, bt, err) // err = err0 val ent3 = pstar_fun0_COMMA{d0exp}(buf, bt, p_d0exp) // val ent4 = pif_fun(buf, bt, err, p_RPAREN, err0) // in if err = err0 then let val ent3 = (l2l)ent3 in d0exp_vararg(tok, ent3, ent4) end // end of [then] else let val () = list_vt_free(ent3) in tokbuf_set_ntok_null(buf, n0) end // end of [else] (* end of [if] *) end // | T_DLRVCOPYENV(knd) => let val bt = 0 val () = incby1 () val ent2 = p_d0exp0 (buf, bt, err) in if err = err0 then d0exp_vcopyenv (knd, tok, ent2) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end // | T_DLRSHOWTYPE() => let val bt = 0 val () = incby1 () val ent2 = p_d0exp0 (buf, bt, err) in if err = err0 then d0exp_showtype (tok, ent2) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end // | T_DLRTEMPENVER() => let val bt = 0 val () = incby1 () val ent2 = p_d0exp0 (buf, bt, err) in if err = err0 then d0exp_tempenver (tok, ent2) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end // | T_DLRSOLASSERT() => let val bt = 0 val () = incby1 () val ent2 = p_atmd0exp (buf, bt, err) in if err = err0 then d0exp_solassert (tok, ent2) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end | T_DLRSOLVERIFY() => let val bt = 0 val () = incby1 () val ent2 = p_atms0exp (buf, bt, err) in if err = err0 then d0exp_solverify (tok, ent2) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end // | _ (* rest-of-tokens *) => let val tok = tokbuf_get_token(buf) val loc = tok.token_loc val ((*void*)) = err := err + 1 val ((*void*)) = the_parerrlst_add_ifnbt (bt, loc, PE_d0exp0) in synent_null () end end // end of [p_d0exp0] (* ****** ****** *) (* d0exp1 ::= | d0exp0 {d0exp1}* | DLRRAISE d0exp0 // done! | DLREFFMASK d0exp0 // done! | DLREFFMASK_ARG d0exp0 // done! | DLRDELAY d0exp0 // done! *) fun p_d0exp1 ( buf: &tokbuf, bt: int, err: &int ) : d0exp = let val err0 = err var ent: synent? val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of // case+ | _ when ptest_fun ( buf, p_d0exp0, ent ) => let val bt = 0 val ent1 = synent_decode {d0exp} (ent) val ent2 = pstar_fun {d0exp} (buf, bt, p_d0exp1) fun loop ( x0: d0exp, xs: d0explst_vt ) : d0exp = case+ xs of | ~list_vt_cons (x, xs) => let val x0 = d0exp_app (x0, x) in loop (x0, xs) end | ~list_vt_nil () => x0 // end of [loop] in loop (ent1, ent2) end // | T_DLRDELAY(knd) => let val bt = 0 val () = incby1 () val ent2 = p_d0exp0 (buf, bt, err) in if err = err0 then d0exp_delay (knd, tok, ent2) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end // | T_DLRRAISE() => let val bt = 0 val () = incby1 () val ent2 = p_d0exp0 (buf, bt, err) in if err = err0 then d0exp_raise (tok, ent2) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end // | T_DLREFFMASK() => let val bt = 0 val () = incby1 () val ent2 = pif_fun (buf, bt, err, p_LBRACE, err0) val ent3 = pif_fun (buf, bt, err, p_e0fftaglst, err0) val ent4 = pif_fun (buf, bt, err, p_RBRACE, err0) val ent5 = pif_fun (buf, bt, err, p_d0exp1, err0) in if err = err0 then d0exp_effmask (tok, ent3, ent5) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end | T_DLREFFMASK_ARG(knd) => let val bt = 0 val () = incby1 () val ent2 = p_d0exp0 (buf, bt, err) in if err=err0 then d0exp_effmask_arg (knd, tok, ent2) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end // | _ (*rest-of-tokens*) => let val loc = tok.token_loc val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_d0exp1) in synent_null () end end // end of [p_d0exp1] (* ****** ****** *) (* i0nvarg ::= di0de COLON [s0exp] *) fun p_i0nvarg ( buf: &tokbuf, bt: int, err: &int ) : i0nvarg = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val ent1 = p_di0de (buf, bt, err) // val bt = 0 val ent2 = pif_fun (buf, bt, err, p_COLON, err0) val ent3 = let val s0e = pif_fun{s0exp}(buf, bt, err, p_s0exp, err0) // end of [val] in if err = err0 then Some(s0e) else None() end : s0expopt // end of [val] // in if err = err0 then i0nvarg_make (ent1, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // end of [p_i0nvarg] fun p_i0nvargseq ( buf: &tokbuf, bt: int, err: &int ) : i0nvarglst = l2l (pstar_fun0_COMMA (buf, bt, p_i0nvarg)) // end of [p_i0nvargseq] (* ****** ****** *) // (* i0nvqua :: /*(empty)*/ | LBRACE s0quaseq RBRACE *) fun p_i0nvqua ( buf: &tokbuf, bt: int, err: &int ) : Option (s0qualst) = let // val bt = 1 val err0 = err // typedef a1 = token typedef a2 = s0qualst typedef a3 = token // val+~SYNENT3 (ent1, ent2, ent3) = pseq3_fun{a1,a2,a3} (buf, bt, err, p_LBRACE, p_s0quaseq, p_RBRACE) // end of [pseq3_fun] in if err = err0 then Some(ent2) else (err := err0; None()) end // end of [p_i0nvqua] // (* i0nvresqua ::= /*(empty)*/ | LBRACKET s0quaseq RBRACKET *) fun p_i0nvresqua ( buf: &tokbuf, bt: int, err: &int ) : Option (s0qualst) = let // val bt = 1 val err0 = err // typedef a1 = token typedef a2 = s0qualst typedef a3 = token // val+~SYNENT3 (ent1, ent2, ent3) = pseq3_fun{a1,a2,a3} (buf, bt, err, p_LBRACKET, p_s0quaseq, p_RBRACKET) // end of [pseq3_fun] in if err = err0 then Some(ent2) else (err := err0; None()) end // end of [p_i0nvresqua] // (* ****** ****** *) (* i0nvmet ::= /*(empty)*/ | DOTLTGTDOT | DOTLT s0expseq GTDOT *) fun p_i0nvmet ( buf: &tokbuf, bt: int, err: &int ) : s0explstopt = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ | T_DOTLT () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA{s0exp}(buf, bt, p_s0exp) // end of [val] val ent3 = p_GTDOT (buf, bt, err) // err = err0 in if err = err0 then Some ((l2l)ent2) else let val () = list_vt_free(ent2) in tokbuf_set_ntok_null(buf, n0) end (* end of [else] *) end | T_DOTLTGTDOT () => let val () = incby1 () in Some (list_nil) end // end of [T_DOTLTGTDOT] | _ (*rest-of-tokens*) => None () // HX: there is no error // end // end of [p_i0nvmet] (* ****** ****** *) // (* i0nvargstate ::= LPAREN i0nvargseq RPAREN *) fun p_i0nvargstate ( buf: &tokbuf, bt: int, err: &int ) : i0nvarglst = let // val err0 = err // typedef a1 = token typedef a2 = i0nvarglst typedef a3 = token // val+~SYNENT3 (ent1, ent2, ent3) = pseq3_fun{a1,a2,a3} (buf, bt, err, p_LPAREN, p_i0nvargseq, p_RPAREN) // end of [pseq3_fun] // in if err = err0 then ent2 else synent_null((*void*)) end // end of [p_i0nvargstate] // (* i0nvresstate ::= COLON i0nvresqua LPAREN i0nvargseq RPAREN *) fun p_i0nvresstate ( buf: &tokbuf, bt: int, err: &int ) : i0nvresstate = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ | T_COLON () => let val bt = 0 val () = incby1 () val ent2 = p_i0nvresqua (buf, bt, err) typedef a1 = token and a2 = i0nvarglst and a3 = token val+~SYNENT3 (ent3, ent4, ent5) = pseq3_fun{a1,a2,a3}(buf, bt, err, p_LPAREN, p_i0nvargseq, p_RPAREN) // end of [val] in if err = err0 then ( i0nvresstate_make_some (tok, ent2, ent4, ent5) ) else tokbuf_set_ntok_null (buf, n0) end | _ (*non-COLON*) => let val () = err := err + 1 in synent_null() end // end // end of [p_i0nvresstate] // fun p_i0nvresstateopt ( buf: &tokbuf, bt: int, err: &int ) : i0nvresstate = let val err0 = err val tok = tokbuf_get_token (buf) val ent = p_i0nvresstate (buf, 1(*bt*), err) // HX: optional in if err = err0 then ent else let val () = err := err0 in i0nvresstate_make_none (tok.token_loc) end (* end of [if] *) end // end of [p_i0nvresstateopt] // (* ****** ****** *) // (* loopi0nv ::= i0nvqua i0nvmet i0nvargstate i0nvresstateopt *) // fun p_loopi0nv ( buf: &tokbuf, bt: int, err: &int ) : loopi0nv = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val ent1 = p_i0nvqua (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_i0nvmet, err0) val ent3 = pif_fun (buf, bt, err, p_i0nvargstate, err0) val ent4 = pif_fun (buf, bt, err, p_i0nvresstateopt, err0) // in // if err = err0 then loopi0nv_make(ent1, ent2, ent3, ent4) else tokbuf_set_ntok_null(buf, n0) // end // end of [loopi0nv] // (* ****** ****** *) (* funarrow ::= EQGT | EQLTGT | EQLT e0fftagseq GT *) fun p_funarrow ( buf: &tokbuf, bt: int, err: &int ) : e0fftaglstopt = let // val err0 = err // val n0 = tokbuf_get_ntok(buf) // val tok = tokbuf_get_token(buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ | T_EQGT () => let val () = incby1 () in None () end | T_EQLTGT () => let val () = incby1 () in Some (list_nil) end | T_EQLT () => let val bt = 0 val () = incby1 () val ent2 = p_e0fftaglst (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_GT, err0) in if err = err0 then Some(ent2) else tokbuf_set_ntok_null(buf, n0) // end of [if] end | _ (*rest*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt(bt, loc, PE_funarrow) in synent_null((*void*)) end // end of [_] // end // end of [p_funarrow] (* ****** ****** *) // (* pstar_where for { where LBRACE d0eclseq_dyn RBRACE }* *) // fun pstar_where ( d0e: d0exp , buf: &tokbuf, bt: int, err: &int ) : d0exp = let // val err0 = err // val n0 = tokbuf_get_ntok(buf) val tok = tokbuf_get_token(buf) // macdef incby1() = tokbuf_incby1(buf) // in // case+ tok.token_node of // case+ | T_WHERE() => let val bt = 0 val () = incby1() val tok2 = tokbuf_get_token(buf) typedef a2 = d0eclist and a3 = token in case+ tok2.token_node of // case+ | T_LBRACE() => let // val () = incby1() // val+ ~SYNENT2 (ent2, ent3) = pseq2_fun{a2,a3} (buf, bt, err, p_d0eclseq_dyn, p_RBRACE) // end of [val] // in if (err = err0) then let val d0e = d0exp_where(d0e, ent2, ent3) // end of [val] in pstar_where(d0e, buf, bt, err) end // end of [then] else tokbuf_set_ntok_null(buf, n0) end // end of [T_LBRACE] | _(*non-LBRACE*) => let // val+ ~SYNENT2 (ent2, ent3) = pseq2_fun{a2,a3}(buf, bt, err, p_d0eclseq_dyn, p_END) // in if (err = err0) then let val d0e = d0exp_where(d0e, ent2, ent3) // end of [val] in pstar_where(d0e, buf, bt, err) end // end of [then] else tokbuf_set_ntok_null(buf, n0) end // end of [non-LBRACE] end // end of [T_WHERE] | _ (*non-WHERE*) => d0e // HX: it is not a where-clause // end // end of [pstar_where] (* ****** ****** *) fun ptokhead_fun ( buf: &tokbuf , bt: int , err: &int , f: (tnode) -> bool , tokres: &token? >> token ) : Option (i0nvresstate) = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val () = tokres := tok macdef incby1 () = tokbuf_incby1 (buf) in // if f(tok.token_node) then let val () = incby1 () val ent2 = p_i0nvresstate(buf, 1(*bt*), err) // end of [val] in if err = err0 then let val ent3 = p_EQGT(buf, 0(*bt*), err) in if err = err0 then Some(ent2) else tokbuf_set_ntok_null(buf, n0) // end of [if] end // end of [then] else let val () = err := err0 in None () // errless end // end of [else] // end of [if] end // end of [then] else let val () = err := err + 1 in synent_null() end // end of [else] // end // end of [ptokhead_fun] (* ****** ****** *) (* ifhead: IF [i0nvresstate EQGT] *) fun p_ifhead ( buf: &tokbuf, bt: int, err: &int ) : ifhead = let // val err0 = err // var tok: token val res = ptokhead_fun(buf, bt, err, is_IF, tok) // in if err = err0 then ifhead_make(tok, res) else synent_null() // end of [if] end // end of [p_ifhead] (* sifhead: SIF [i0nvresstate EQGT] *) fun p_sifhead ( buf: &tokbuf, bt: int, err: &int ) : sifhead = let // val err0 = err // var tok: token val res = ptokhead_fun(buf, bt, err, is_SIF, tok) // in if err = err0 then sifhead_make(tok, res) else synent_null() // end of [if] end // end of [p_sifhead] (* ****** ****** *) (* ifhead: IFCASE [i0nvresstate EQGT] *) fun p_ifcasehd ( buf: &tokbuf, bt: int, err: &int ) : ifhead = let // val err0 = err // var tok: token val res = ptokhead_fun(buf, bt, err, is_IFCASE, tok) // in if err = err0 then ifhead_make(tok, res) else synent_null() // end of [if] end // end of [p_ifcasehd] (* ****** ****** *) (* casehead: CASE [i0nvresstate EQGT] *) fun p_casehead ( buf: &tokbuf, bt: int, err: &int ) : casehead = let // val err0 = err // var tok: token val res = ptokhead_fun(buf, bt, err, is_CASE, tok) // in if err = err0 then casehead_make(tok, res) else synent_null() // end of [if] end // end of [p_casehead] (* scasehead: SCASE [i0nvresstate EQGT] *) fun p_scasehead ( buf: &tokbuf, bt: int, err: &int ) : scasehead = let // val err0 = err // var tok: token val res = ptokhead_fun(buf, bt, err, is_SCASE, tok) // in if err = err0 then scasehead_make(tok, res) else synent_null() // end of [if] end // end of [p_scasehead] (* ****** ****** *) // (* forhead ::= FORSTAR loopi0nv EQGT // [for] is external id *) // fun p_forhead ( buf: &tokbuf, bt: int, err: &int ) : loophead = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val ent1 = p_FORSTAR (buf, bt, err) // val ent2 = pif_fun (buf, bt, err, p_loopi0nv, err0) // val ent3 = pif_fun (buf, bt, err, p_EQGT, err0) // in // if err = err0 then loophead_make_some (ent1, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end // end of [p_forhead] // (* ****** ****** *) // (* whilehead ::= WHILESTAR loopi0nv EQGT // [while] is external id *) // fun p_whilehead ( buf: &tokbuf, bt: int, err: &int ) : loophead = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val ent1 = p_WHILESTAR (buf, bt, err) // val ent2 = pif_fun (buf, bt, err, p_loopi0nv, err0) // val ent3 = pif_fun (buf, bt, err, p_EQGT, err0) // in if err = err0 then loophead_make_some (ent1, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) end // end of [p_whilehead] // (* ****** ****** *) // (* tryhead ::= TRY [i0nvresstate EQGT] *) // fun p_tryhead ( buf: &tokbuf, bt: int, err: &int ) : tryhead = let // val err0 = err // var tok: token val res = ptokhead_fun(buf, bt, err, is_TRY, tok) // in if err = err0 then tryhead_make(tok, res) else synent_null() end // end of [p_tryhead] // (* ****** ****** *) (* initestpost ::= LPAREN d0expcommaseq SEMICOLON d0expcommaseq SEMICOLON d0expcommaseq RPAREN ; /* initestpost */ *) fun p_initestpost ( buf: &tokbuf, bt: int, err: &int ) : initestpost = let val err0 = err val n0 = tokbuf_get_ntok (buf) val ent1 = p_LPAREN (buf, bt, err) val bt = 0 val ent2 = (if err = err0 then pstar_fun0_COMMA {d0exp} (buf, bt, p_d0exp) else list_vt_nil ) : d0explst_vt // end of [val] val ent3 = pif_fun (buf, bt, err, p_SEMICOLON, err0) val ent4 = (if err = err0 then pstar_fun0_COMMA {d0exp} (buf, bt, p_d0exp) else list_vt_nil ) : d0explst_vt // end of [val] val ent5 = pif_fun (buf, bt, err, p_SEMICOLON, err0) val ent6 = (if err = err0 then pstar_fun0_COMMA {d0exp} (buf, bt, p_d0exp) else list_vt_nil ) : d0explst_vt // end of [val] val ent7 = pif_fun (buf, bt, err, p_RPAREN, err0) in // if err = err0 then let val ent2 = (l2l)ent2 val ent4 = (l2l)ent4 val ent6 = (l2l)ent6 in initestpost_make (ent1, ent2, ent3, ent4, ent5, ent6, ent7) // initestpost_make end // end of [then] else let val () = list_vt_free(ent2) val () = list_vt_free(ent4) val () = list_vt_free(ent6) in tokbuf_set_ntok_null(buf, n0) end (* end of [else] *) // end // end of [p_initestpost] (* ****** ****** *) // (* d0exp :: = | d0exp1 {WHERE LBRACE d0ecseq_dyn RBRACE}* | ifhead d0exp1 THEN d0exp [ELSE d0exp] // done! | sifhead s0exp THEN d0exp ELSE d0exp // done! | casehead d0exp1 OF c0lauseq // done! | scasehead s0exp OF sc0lauseq // done! | ifcasehd i0fclseq // HX-2016-05-21: added | lamkind f0arg1seq colons0expopt funarrow d0exp // done! | fixkind di0de f0arg1seq colons0expopt funarrow d0exp // done! | whilehead atmd0exp d0exp // done! | forhead initestpost d0exp // done! | tryhead d0expsemiseq WITH c0lauseq // done! *) // extern fun p_d0exp_tok ( buf: &tokbuf , bt: int, err: &int, tok: token ) : d0exp // end-of-function // implement p_d0exp (buf, bt, err) = ( ptokwrap_fun (buf, bt, err, p_d0exp_tok, PE_d0exp) ) (* end of [p_d0exp] *) // implement p_d0exp_tok ( buf, bt, err, tok ) = let // val err0 = err var ent: synent? // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ | _ when ptest_fun ( buf, p_d0exp1, ent ) => let val d0e = synent_decode{d0exp}(ent) // end of [val] in pstar_where(d0e, buf, bt, err) end | _ when ptest_fun ( buf, p_ifhead, ent ) => let val bt = 0 val ent1 = synent_decode{ifhead}(ent) // end of [val] val ent2 = p_d0exp1(buf, bt, err) val ent3 = pif_fun(buf, bt, err, p_THEN, err0) val ent4 = pif_fun(buf, bt, err, p_d0exp, err0) val ent5 = ptokentopt_fun{d0exp}(buf, is_ELSE, p_d0exp) in if err = err0 then let val ent5 = (t2t)ent5 in d0exp_ifhead (ent1, ent2, ent4, ent5) end // end of [then] else let val () = option_vt_free(ent5) in synent_null() end (* end of [else] *) // end of [if] end | _ when ptest_fun ( buf, p_sifhead, ent ) => let val bt = 0 val ent1 = synent_decode{sifhead}(ent) // end of [val] val ent2 = p_s0exp (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_THEN, err0) val ent4 = pif_fun (buf, bt, err, p_d0exp, err0) val ent5 = pif_fun (buf, bt, err, p_ELSE, err0) val ent6 = pif_fun (buf, bt, err, p_d0exp, err0) in if err = err0 then d0exp_sifhead(ent1, ent2, ent4, ent6) else synent_null((*void*)) // end of [if] end | _ when ptest_fun ( buf, p_casehead, ent ) => let val bt = 0 val ent1 = synent_decode{casehead}(ent) // end of [val] val ent2 = p_d0exp1 (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_OF, err0) val ent4 = pif_fun (buf, bt, err, p_c0lauseq, err0) in if err = err0 then d0exp_casehead(ent1, ent2, ent3, ent4) else synent_null((*void*)) // end of [if] end | _ when ptest_fun ( buf, p_scasehead, ent ) => let val bt = 0 val ent1 = synent_decode{scasehead}(ent) // end of [val] val ent2 = p_s0exp (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_OF, err0) val ent4 = pif_fun (buf, bt, err, p_sc0lauseq, err0) in if err = err0 then d0exp_scasehead(ent1, ent2, ent3, ent4) else synent_null((*void*)) // end of [if] end // | _ when ptest_fun ( buf, p_ifcasehd, ent ) => let val bt = 0 val ent1 = synent_decode{ifhead}(ent) // end of [val] val ent2 = p_i0fclseq (buf, bt, err) in if err = err0 then d0exp_ifcasehd(ent1, ent2) else synent_null((*void*)) // end of [if] end // for [IFCASE] // | T_LAM (knd) => let val bt = 0 val () = incby1 () val ent2 = pstar_fun{f0arg}(buf, bt, p_f0arg1) val ent3 = p_colons0expopt(buf, bt, err) // err=err0 val ent4 = pif_fun (buf, bt, err, p_funarrow, err0) val ent5 = pif_fun (buf, bt, err, p_d0exp, err0) in if err = err0 then let val ent2 = (l2l)ent2 in d0exp_lam(knd, tok, ent2, ent3, ent4, ent5) end // end of [then] else let val () = list_vt_free(ent2) in synent_null() end // end of [else] // end of [if] end | T_FIX (knd) => let val bt = 0 val () = incby1 () val ent2 = p_di0de (buf, bt, err) val ent3 = ( if err = err0 then pstar_fun(buf, bt, p_f0arg1) else list_vt_nil((*void*)) // end of [if] ) : f0arglst_vt // end of [val] val ent4 = pif_fun (buf, bt, err, p_colons0expopt, err0) // end of [val] val ent5 = pif_fun (buf, bt, err, p_funarrow, err0) val ent6 = pif_fun (buf, bt, err, p_d0exp, err0) in if err = err0 then let val ent3 = (l2l)ent3 in d0exp_fix (knd, tok, ent2, ent3, ent4, ent5, ent6) // d0exp_fix end // end of [then] else let val () = list_vt_free(ent3) in synent_null() end (* end of [else] *) // end of [if] end // | T_FOR () => let val bt = 0 // no backtracking val () = incby1 () val ent1 = loophead_make_none (tok) val ent2 = p_initestpost (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_d0exp, err0) in if err = err0 then d0exp_forhead(ent1, ent2, ent3) else synent_null((*void*)) // end of [if] end | _ when ptest_fun ( buf, p_forhead, ent ) => let val bt = 0 val ent1 = synent_decode{loophead}(ent) val ent2 = p_initestpost (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_d0exp, err0) in if err = err0 then d0exp_forhead(ent1, ent2, ent3) else synent_null((*void*)) // end of [if] end // | T_WHILE () => let val bt = 0 // no backtracking val () = incby1 () val ent1 = loophead_make_none(tok) val ent2 = p_atmd0exp(buf, bt, err) val ent3 = pif_fun(buf, bt, err, p_d0exp, err0) in if err = err0 then d0exp_whilehead(ent1, ent2, ent3) else synent_null((*void*)) // end of [if] end | _ when ptest_fun ( buf, p_whilehead, ent ) => let val bt = 0 val ent1 = synent_decode{loophead}(ent) val ent2 = pif_fun (buf, bt, err, p_atmd0exp, err0) // end of [val] val ent3 = pif_fun (buf, bt, err, p_d0exp, err0) in if err = err0 then d0exp_whilehead(ent1, ent2, ent3) else synent_null((*void*)) // end of [if] end // | _ when ptest_fun ( buf, p_tryhead, ent ) => let val bt = 0 val ent1 = synent_decode{tryhead}(ent) val ent2 = p_d0expsemiseq(buf, bt, err) val ent3 = pif_fun(buf, bt, err, p_WITH, err0) val ent4 = pif_fun(buf, bt, err, p_c0lauseq, err0) in if err = err0 then d0exp_trywith_seq(ent1, ent2, ent3, ent4) else synent_null((*void*)) // end of [if] end // | _ (*rest-of-tokens*) => let val () = err := err + 1 in synent_null () end // end // end of [p_d0exp_tok] // (* ****** ****** *) (* // // HX-2016-05-21: supporting for ifcase! // *) local fun p_i0fcl ( buf: &tokbuf, bt: int, err: &int ) : i0fcl = let val err0 = err val n0 = tokbuf_get_ntok (buf) val ent1 = p_d0exp0(buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_EQGT, err0) val ent3 = pif_fun (buf, bt, err, p_d0exp, err0) in // if err = err0 then i0fcl_make (ent1, ent3) else let val tok = tokbuf_get_token (buf) val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_i0fcl) in tokbuf_set_ntok_null (buf, n0) end // end of [if] // end // end of [p_i0fcl] in (* in-of-local *) implement p_i0fclseq (buf, bt, err) = let val _ = p_BAR_test (buf) in l2l(pstar_fun0_BAR (buf, bt, p_i0fcl)) end // end of [p_i0fclseq] end // end of [local] (* ****** ****** *) (* end of [pats_parsing_dynexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_p0at.dats0000644000175000017500000004435213431250607021754 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) #include "./pats_basics.hats" (* ****** ****** *) staload "./pats_symbol.sats" staload "./pats_lexing.sats" staload "./pats_tokbuf.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) #define l2l list_of_list_vt #define t2t option_of_option_vt (* ****** ****** *) viewtypedef p0atlst12 = list12 (p0at) viewtypedef labp0atlst12 = list12 (labp0at) (* ****** ****** *) fun p0at_list12 ( t_beg: token , ent2: p0atlst12 , t_end: token ) : p0at = case+ ent2 of | ~LIST12one (xs) => p0at_list (t_beg, ~1, (l2l)xs, t_end) | ~LIST12two (xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in p0at_list (t_beg, npf, (l2l)xs12, t_end) end (* end of [LIST12two] *) // end of [p0at_list12] (* ****** ****** *) fun p0at_tup12 ( knd: int , t_beg: token , ent2: p0atlst12 , t_end: token ) : p0at = case+ ent2 of | ~LIST12one (xs) => p0at_tup (knd, t_beg, ~1, (l2l)xs, t_end) | ~LIST12two (xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in p0at_tup (knd, t_beg, npf, (l2l)xs12, t_end) end (* end of [LIST12two] *) // end of [p0at_tup12] (* ****** ****** *) fun p0at_rec12 ( knd: int , t_beg: token, ent2: labp0atlst12, t_end: token ) : p0at = case+ ent2 of | ~LIST12one (xs) => p0at_rec (knd, t_beg, ~1, (l2l)xs, t_end) | ~LIST12two (xs1, xs2) => let val npf = list_vt_length (xs1) val xs12 = list_vt_append (xs1, xs2) in p0at_rec (knd, t_beg, npf, (l2l)xs12, t_end) end // end of [p0at_rec12] (* ****** ****** *) fun p_p0atseq_BAR_p0atseq ( buf: &tokbuf, bt: int, err: &int ) : p0atlst12 = plist12_fun (buf, bt, p_p0at) // end of [p_p0atseq_BAR_p0atseq] fun p_labp0atseq_BAR_labp0atseq ( buf: &tokbuf, bt: int, err: &int ) : labp0atlst12 = let val _ = p_COMMA_test (buf) in plist12_fun (buf, bt, p_labp0at) end // end of [p_labp0atseq_BAR_labp0atseq] (* ****** ****** *) implement p_pi0de (buf, bt, err) = let val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_IDENT_alp (x) => let val () = incby1 () in i0de_make_string (loc, x) end | T_IDENT_sym (x) => let val () = incby1 () in i0de_make_string (loc, x) end | _ => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_pi0de) in synent_null () end // end of [_] end // end of [p_pi0de] (* ****** ****** *) (* labp0at ::= l0ab EQ p0at | DOTDOTDOT *) implement p_labp0at ( buf, bt, err ) = let val err0 = err val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_DOTDOTDOT () => let val () = incby1 () in labp0at_omit (tok) end | _ => let val+~SYNENT3 (ent1, ent2, ent3) = pseq3_fun {l0ab,token,p0at} (buf, bt, err, p_l0ab, p_EQ, p_p0at) // end of [val] in if (err = err0) then labp0at_norm (ent1, ent3) else let val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_labp0at) in synent_null () end (* end of [if] *) end // end of [_] // end // end of [p_labp0at] (* ****** ****** *) (* atmp0at ::= | LITERAL_char | LITERAL_int | LITERAL_float | LITERAL_string | pi0de (* | BANG pi0de // HX-2012-05: removed *) | OP pi0de | d0ynq pi0de // | LPAREN p0atseq {BAR p0atseq} RPAREN | ATLPAREN p0atseq {BAR p0atseq} RPAREN | QUOTELPAREN p0atseq {BAR p0atseq} RPAREN // | QUOTELBRACKET p0atseq RBRACKET // lists // | ATLBRACE labp0atseq {BAR labp0atseq} RBRACE | QUOTELBRACE labp0atseq {BAR labp0atseq} RBRACE // | LBRACKET s0argseq RBRACKET *) fun p_atmp0at_tok ( buf: &tokbuf, bt: int, err: &int, tok: token ) : p0at = let val err0 = err val loc = tok.token_loc var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | _ when ptest_fun ( buf, p_pi0de, ent ) => p0at_i0de (synent_decode (ent)) | T_OP _ => let val bt = 0 val () = incby1 () val ent2 = p_pi0de (buf, bt, err) in if err = err0 then p0at_opid (tok, ent2) else synent_null () // end of [if] end | T_INT _ => let val () = incby1 () in p0at_i0nt (tok) end | T_CHAR _ => let val () = incby1 () in p0at_c0har (tok) end | T_FLOAT _ => let val () = incby1 () in p0at_f0loat (tok) end | T_STRING _ => let val () = incby1 () in p0at_s0tring (tok) end | _ when ptest_fun ( buf, p_d0ynq, ent ) => let val bt = 0 val ent1 = synent_decode {d0ynq} (ent) val ent2 = p_pi0de (buf, bt, err) // err = err0 in if err = err0 then p0at_dqid (ent1, ent2) else synent_null () // end of [if] end // | T_LPAREN () => let val bt = 0 val () = incby1 () val ent2 = p_p0atseq_BAR_p0atseq (buf, bt, err) val ent3 = p_RPAREN (buf, bt, err) // err = err0 in if err = err0 then p0at_list12 (tok, ent2, ent3) else let val () = list12_free (ent2) in synent_null () end // end of [if] end // | T_LBRACKET () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA {s0arg} (buf, bt, p_s0arg) val ent3 = p_RBRACKET (buf, bt, err) // HX: err = err0 in if err = err0 then p0at_exist (tok, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in synent_null () end (* end of [if] *) end // | tnd when is_LPAREN_deco (tnd) => let val bt = 0 val () = incby1 () val ent2 = p_p0atseq_BAR_p0atseq (buf, bt, err) val ent3 = p_RPAREN (buf, bt, err) // err = err0 in if err = err0 then let val knd = ( if is_ATLPAREN (tnd) then TYTUPKIND_flt else TYTUPKIND_box ) : int // end of [val] in p0at_tup12 (knd, tok, ent2, ent3) end else let val () = list12_free (ent2) in synent_null () end // end of [if] end | tnd when is_LBRACE_deco (tnd) => let val bt = 0 val () = incby1 () val ent2 = p_labp0atseq_BAR_labp0atseq (buf, bt, err) val ent3 = p_RBRACE (buf, bt, err) // err = err0 in if err = err0 then let val knd = ( if is_ATLBRACE (tnd) then TYRECKIND_flt else TYRECKIND_box ) : int // end of [val] in p0at_rec12 (knd, tok, ent2, ent3) end else let val () = list12_free (ent2) in synent_null () end // end of [if] end // | T_DLRLST (lin) => let val bt = 0 val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) val ent3 = ( if err = err0 then pstar_fun0_COMMA{p0at}(buf, bt, p_p0at) else list_vt_nil() // end of [if] ) : p0atlst_vt // end of [val] val ent4 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then p0at_lst (lin, tok, (l2l)ent3, ent4) else let val () = list_vt_free (ent3) in synent_null () end (* end of [if] *) end // | T_DLRTUP (knd) => let val bt = 0 val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) val ent3 = p_p0atseq_BAR_p0atseq (buf, bt, err) val ent4 = p_RPAREN (buf, bt, err) // err = err0 in if err = err0 then p0at_tup12 (knd, tok, ent3, ent4) else let val () = list12_free (ent3) in synent_null () end (* end of [if] *) end // | T_DLRREC (knd) => let val bt = 0 val () = incby1 () val ent2 = p_LBRACE (buf, bt, err) val ent3 = p_labp0atseq_BAR_labp0atseq (buf, bt, err) val ent4 = p_RBRACE (buf, bt, err) // err = err0 in if err = err0 then p0at_rec12 (knd, tok, ent3, ent4) else let val () = list12_free (ent3) in synent_null () end (* end of [if] *) end // (* // // HX-2014-07: // a list-pattern // like '[x1, x2] is no longer supported // | T_QUOTELBRACKET () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA {p0at} (buf, bt, p_p0at) val ent3 = p_RBRACKET (buf, bt, err) in if err = err0 then p0at_lst_quote (tok, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in synent_null () end (* end of [if] *) end *) // | _ => let val () = err := err + 1 in synent_null () end // end // end of [p_atmp0at_tok] fun p_atmp0at ( buf: &tokbuf, bt: int, err: &int ) : p0at = ptokwrap_fun (buf, bt, err, p_atmp0at_tok, PE_atmp0at) // end of [p_atmp0at] (* ****** ****** *) (* argp0at ::= atmp0at | LBRACE s0vararg RBRACE *) fun p_argp0at ( buf: &tokbuf, bt: int, err: &int ) : p0at = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | _ when ptest_fun ( buf, p_atmp0at, ent ) => synent_decode {p0at} (ent) | T_LBRACE () => let val bt = 0 val () = incby1 () val ent2 = p_s0vararg (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RBRACE, err0) in if err = err0 then p0at_svararg (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | _ => let val () = err := err + 1 in synent_null () end // end // end of [p_a0rgpat] (* ****** ****** *) fun p_p0at0 ( buf: &tokbuf, bt: int, err: &int ) : p0at = let val tok = tokbuf_get_token (buf) var ent: synent? in // case+ 0 of | _ when ptest_fun ( buf, p_atmp0at, ent ) => let val bt = 0 val x0 = synent_decode {p0at} (ent) val xs = pstar_fun (buf, bt, p_argp0at) fun loop ( x0: p0at, xs: List_vt (p0at) ) : p0at = case+ xs of | ~list_vt_cons (x, xs) => let val x0 = p0at_app (x0, x) in loop (x0, xs) end | ~list_vt_nil () => x0 // end of [loop] in loop (x0, xs) end | _ => let val () = err := err + 1 in synent_null () end end // end of [p_p0at0] (* ****** ****** *) (* p0at | p0at0 | p0at0 AS p0at | p0at0 COLON s0exp | AT p0at // unfolded | TILDE p0at // freeed *) implement p_p0at (buf, bt, err) = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | _ when ptest_fun ( buf, p_p0at0, ent ) => let val bt = 0 val p0t = synent_decode {p0at} (ent) val tok2 = tokbuf_get_token (buf) in case+ tok2.token_node of | T_AS () => let val () = incby1 () val ent3 = p_p0at (buf, bt, err) in if err = err0 then p0at_refas (p0t, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | T_COLON () => let val () = incby1 () val ent3 = p_s0exp (buf, bt, err) in if err = err0 then p0at_ann (p0t, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | _ => p0t end | T_TILDE () => let val bt = 0 val () = incby1 () val ent2 = p_p0at (buf, bt, err) in if err = err0 then p0at_free (tok, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | T_AT () => let val bt = 0 val () = incby1 () val ent2 = p_p0at (buf, bt, err) in if err = err0 then p0at_unfold (tok, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | _ => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_p0at) in synent_null () end // end // end of [p_p0at] (* ****** ****** *) // (* f0arg1 ::= | atmp0at | LBRACE s0quaseq RBRACE | DOTLT s0expseq GTDOT | DOTLTGTDOT *) // implement p_f0arg1 (buf, bt, err) = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of // case+ | _ when ptest_fun ( buf, p_atmp0at, ent ) => f0arg_dyn (synent_decode {p0at} (ent)) | T_LBRACE () => let val bt = 0 val () = incby1 () val ent2 = p_s0quaseq (buf, bt, err) val ent3 = p_RBRACE (buf, bt, err) // err = 0 in if err = 0 then f0arg_sta1 (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | T_DOTLT() => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA {s0exp} (buf, bt, p_s0exp) val ent3 = p_GTDOT (buf, bt, err) // err = 0 in if err = err0 then f0arg_met (tok, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, n0) end (* end of [if] *) end | T_DOTLTGTDOT() => let val () = incby1 () in f0arg_met_nil (tok) end // end of [T_DOTLTGTDOT] | _ => let val () = err := err + 1 in synent_null () end // end // end of [p_f0arg1] (* f0arg2 ::= atmp0at | LBRACE s0argseq RBRACE *) implement p_f0arg2 (buf, bt, err) = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | _ when ptest_fun ( buf, p_atmp0at, ent ) => f0arg_dyn (synent_decode {p0at} (ent)) | T_LBRACE () => let val bt = 0 val () = incby1 () val ent2 = p_s0vararg (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RBRACE, err0) in if err = 0 then f0arg_sta2 (tok, ent2, ent3) else tokbuf_set_ntok_null (buf, n0) // end of [if] end | _ => let val () = err := err + 1 in synent_null () end // end // end of [p_f0arg2] (* ****** ****** *) // (* gm0at : d0exp { $$ = gm0at_make_none ($1) ; } | d0exp AS p0at { $$ = gm0at_make_some ($1, $3) ; } ; /* gm0at */ *) // fun p_gm0at ( buf: &tokbuf, bt: int, err: &int ) : gm0at = let val err0 = err val ent1 = p_d0exp (buf, bt, err) in // if err = err0 then let val ent2 = ptokentopt_fun{p0at}(buf, is_AS, p_p0at) // end of [val] in gm0at_make (ent1, (t2t)ent2) end else let val tok = tokbuf_get_token (buf) val ((*void*)) = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_gm0at) // end of [val] in synent_null ((*okay*)) // HX: [err] is already set end // end of [if] end // end of [p_gm0at] fun p_gm0atseq ( buf: &tokbuf, bt: int, err: &int ) : gm0atlst = l2l (pstar_fun1_AND (buf, bt, err, p_gm0at)) // end of [p_gm0atseq] fun p_guap0at ( buf: &tokbuf, bt: int, err: &int ) : guap0at = let val err0 = err val ent1 = p_p0at (buf, bt, err) in // if err = err0 then let val ent2 = ptokentopt_fun{gm0atlst}(buf, is_WHEN, p_gm0atseq) // end of [val] in guap0at_make (ent1, (t2t)ent2) end else let val tok = tokbuf_get_token (buf) val ((*void*)) = the_parerrlst_add_ifnbt(bt, tok.token_loc, PE_guap0at) // end of [val] in synent_null ((*okay*)) // HX: [err] is already set end // end of [if] end // end of [p_guap0at] (* ****** ****** *) (* c0lau | guap0at EQGT d0exp | guap0at EQGTGT d0exp | guap0at EQSLASHEQGT d0exp | guap0at EQSLASHEQGTGT d0exp *) fun p_c0lau ( buf: &tokbuf, bt: int, err: &int ) : c0lau = let val err0 = err val n0 = tokbuf_get_ntok (buf) val ent1 = p_guap0at (buf, bt, err) val bt = 0 var seq: int = 0 and neg: int = 0 val () = if err = err0 then let val tok2 = tokbuf_get_token (buf) val () = ( case+ tok2.token_node of | T_EQGT () => () | T_EQGTGT () => seq := 1 | T_EQSLASHEQGT () => neg := 1 | T_EQSLASHEQGTGT () => (seq := 1; neg := 1) | _ => (err := err + 1) ) : void // end of [val] in if err = err0 then tokbuf_incby1 (buf) end // end of [val] val ent3 = pif_fun (buf, bt, err, p_d0exp, err0) in // if err = err0 then c0lau_make(ent1, seq, neg, ent3) else let val tok = tokbuf_get_token (buf) val ((*void*)) = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_c0lau) // end of [val] in tokbuf_set_ntok_null (buf, n0) end // end of [if] end // end of [p_c0lau] (* ****** ****** *) // (* sp0at ::= sqi0de LPAREN s0argseq RPAREN *) // fun p_sp0at ( buf: &tokbuf, bt: int, err: &int ) : sp0at = let val err0 = err val n0 = tokbuf_get_ntok (buf) val ent1 = p_sqi0de (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_LPAREN, err0) val ent3 = ( if err = err0 then pstar_fun0_COMMA {s0arg} (buf, bt, p_s0arg) else list_vt_nil () ) : List_vt (s0arg) val ent4 = pif_fun (buf, bt, err, p_RPAREN, err0) in // if err = err0 then let val ent3 = (l2l)ent3 in sp0at_cstr(ent1, ent3, ent4) end // end of [then] else let val () = list_vt_free(ent3) val tok = tokbuf_get_token(buf) val () = the_parerrlst_add_ifnbt(bt, tok.token_loc, PE_sc0lau) // end of [val] in tokbuf_set_ntok_null(buf, n0) end (* end of [if] *) // end // end of [p_sp0at] fun p_sc0lau ( buf: &tokbuf, bt: int, err: &int ) : sc0lau = let val err0 = err val+~SYNENT3(ent1, ent2, ent3) = pseq3_fun(buf, bt, err, p_sp0at, p_EQGT, p_d0exp) // end of [val] in if err = err0 then sc0lau_make (ent1, ent3) else synent_null((*okay*)) // end of [if] end // end of [p_sc0lau] (* ****** ****** *) implement p_c0lauseq (buf, bt, err) = let val _ = p_BAR_test (buf) in l2l(pstar_fun0_BAR (buf, bt, p_c0lau)) end // end of [p_c0lauseq] implement p_sc0lauseq (buf, bt, err) = let val _ = p_BAR_test (buf) in l2l(pstar_fun0_BAR (buf, bt, p_sc0lau)) end // end of [p_sc0lauseq] (* ****** ****** *) (* end of [pats_parsing_p0at.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_dynexp.dats0000644000175000017500000006526213431250607022167 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) #include "./pats_params.hats" (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" staload LOC = "./pats_location.sats" overload + with $LOC.location_combine staload SYM = "./pats_symbol.sats" macdef BACKSLASH = $SYM.symbol_BACKSLASH macdef UNDERSCORE = $SYM.symbol_UNDERSCORE overload = with $SYM.eq_symbol_symbol (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans1_dynexp" (* ****** ****** *) staload "./pats_fixity.sats" staload "./pats_lexing.sats" staload "./pats_syntax.sats" staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" (* ****** ****** *) staload "./pats_trans1.sats" staload "./pats_trans1_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) // macdef list_sing (x) = list_cons (,(x), list_nil(*void*)) // (* ****** ****** *) // // HX: translation of dynamic expr // typedef d1expitm = fxitm (d1exp) typedef d1expitmlst = List (d1expitm) // (* ****** ****** *) // extern fun d1exp_app_proc ( loc0: location , d1e_fun: d1exp, d1e_arg: d1exp ) : d1exp // end-of-function // implement d1exp_app_proc ( loc0, d1e_fun, d1e_arg ) = let in // case+ d1e_fun.d1exp_node of // case+ // | D1Eidextapp (id, d1es_arg) => let val d1es_arg = list_cons (d1e_arg, d1es_arg) // end of [val] in d1exp_idextapp (loc0, id, d1es_arg) end // end of [D1Eidexpapp] | _ (*non-D1Eidextapp*) => let in case+ d1e_arg.d1exp_node of // case+ | D1Elist ( npf, d1es ) => let val locarg = d1e_arg.d1exp_loc in d1exp_app_dyn (loc0, d1e_fun, locarg, npf, d1es) end // end of [D1Elist] | D1Esexparg (s1a) => let in case+ d1e_fun.d1exp_node of // case+ | D1Eapp_sta (d1e_fun, s1as) => let val s1as = list_extend(s1as, s1a) in d1exp_app_sta(loc0, d1e_fun, l2l(s1as)) end // end of [d1exp_app_sta] | _ (*non-D1Eapp_sta*) => ( d1exp_app_sta (loc0, d1e_fun, list_sing(s1a)) ) (* end of [non-D1Eapp_sta] *) end // end of [D1Esexparg] | _ (*non-list-sexparg*) => let val npf = ~1 // HX: default val locarg = d1e_arg.d1exp_loc val d1es_arg = list_sing (d1e_arg) in d1exp_app_dyn (loc0, d1e_fun, locarg, npf, d1es_arg) end // end of [non-list-sexparg] end // end of [non-D1Eidextapp] // end // end of [d1exp_app_proc] (* ****** ****** *) local fn appf ( d1e1: d1exp , d1e2: d1exp ) : d1expitm = let val loc = d1e1.d1exp_loc + d1e2.d1exp_loc val d1e_app = d1exp_app_proc (loc, d1e1, d1e2) (* val () = begin println! ("d1expitm_app: f: d1e_app = ", d1e_app) end // end of [val] *) in FXITMatm (d1e_app) end // end of [appf] in (* in of [local] *) fn d1expitm_app (loc: location): d1expitm = fxitm_app (loc, appf) // end of [d1expitm_app] end // end of [local] fn d1exp_get_loc (x: d1exp): location = x.d1exp_loc fn d1exp_make_opr ( opr: d1exp, f: fxty ) : d1expitm = begin fxopr_make {d1exp} ( d1exp_get_loc , lam (loc, x, loc_arg, xs) => d1exp_app_dyn (loc, x, loc_arg, ~1(*npf*), xs) , opr, f ) // end of [fxopr_make] end // end of [d1exp_make_opr] fn d1expitm_backslash ( loc_opr: location ) : d1expitm = begin fxopr_make_backslash {d1exp} ( lam x => x.d1exp_loc , lam (loc, x, loc_arg, xs) => d1exp_app_dyn (loc, x, loc_arg, ~1(*npf*), xs) , loc_opr ) // end of [fxopr_make_backslash] end // end of [d1expitm_backslash] fn d1expitm_underscore (loc: location): d1expitm = FXITMatm (d1exp_top (loc)) // end of [d1expitm_underscore] (* ****** ****** *) fun s0expdarg_tr ( d0e: d0exp ) : s1exparg = let val d1e = d0exp_tr (d0e) in // case+ d1e.d1exp_node of | D1Esexparg (s1a) => s1a | _ => let val loc = d0e.d0exp_loc val () = prerr_interror_loc (loc) val () = prerrln! (": s0expdarg_tr: d1e = ", d1e) in $ERR.abort_interr{s1exparg}((*reachable*)) end // end of [_] // end // end of [s0expdarg_tr] fn s0expdarglst_tr (xs: d0explst): s1exparglst = l2l(list_map_fun (xs, s0expdarg_tr)) // end of [s0expdarglst_tr] (* ****** ****** *) // #if (FUNCLO_DEFAULT = 1) macdef FUNCLOdefault = FUNCLOcloptr #endif // #if (FUNCLO_DEFAULT = ~1) macdef FUNCLOdefault = FUNCLOcloref #endif // (* ****** ****** *) implement d0exp_tr_lams_dyn ( lamknd, locopt, fcopt, lin, args, res, efcopt, d0e_body ) = let // fun aux ( lamknd: int , args: f0arglst , d1e_body: d1exp , flag: int ) : d1exp = begin // case+ args of | list_cons (arg, args) => let val loc_arg = arg.f0arg_loc val d1e_body = aux ( lamknd, args, d1e_body, flag1 ) where { val f0a = arg.f0arg_node val flag1 = ( case+ f0a of F0ARGdyn _ => flag+1 | _ => flag ) : int // end of [val] } (* end of [where] *) val loc_body = d1e_body.d1exp_loc val loc = ( case+ locopt of | Some loc => loc | None () => loc_arg + loc_body ) : location // end of [val] in case+ arg.f0arg_node of // case+ // | F0ARGdyn p0t when flag = 0 => let val p1t = p0at_tr p0t val isbox = lamkind_isbox (lamknd) in if isbox > 0 then d1exp_lam_dyn (loc, lin, p1t, d1e_body) else d1exp_laminit_dyn (loc, lin, p1t, d1e_body) // end of [if] end // end of [F0ARGdyn when ...] // | F0ARGdyn p0t (* flag > 0 *) => let val p1t = p0at_tr (p0t) val fc0 = FUNCLOdefault(*mac*) val d1e_body = d1exp_ann_funclo_opt (loc_body, d1e_body, fc0) // end of [val] in d1exp_lam_dyn (loc, lin, p1t, d1e_body) end // end of [F0ARGdyn] // | F0ARGsta1 qua => d1exp_lam_sta_syn (loc, loc_arg, s0qualst_tr qua, d1e_body) // end of [F0ARGsta1] // | F0ARGsta2 s0v => d1exp_lam_sta_ana (loc, loc_arg, s0vararg_tr s0v, d1e_body) // end of [F0ARGsta2] // | F0ARGmet3 s0es => d1exp_lam_met (loc, loc_arg, s0explst_tr s0es, d1e_body) // end of [F0ARGmet3] end // end of [list_cons] // | list_nil ((*void*)) => d1e_body // end (* end of [aux] *) // val d1e_body = d0exp_tr (d0e_body) // val d1e_body = (case+ res of | Some s0e => let val loc = s0e.s0exp_loc + d1e_body.d1exp_loc val s1e = s0exp_tr (s0e) in d1exp_ann_type (loc, d1e_body, s1e) end // end of [Some] | None () => d1e_body // end of [None] ) : d1exp // val d1e_body = ( case+ efcopt of | Some efc => begin d1exp_ann_effc (d1e_body.d1exp_loc, d1e_body, efc) end // end of [Some] | None () => d1e_body ) : d1exp // end of [val] // val d1e_body = ( case+ fcopt of | Some fc => begin d1exp_ann_funclo (d1e_body.d1exp_loc, d1e_body, fc) end // end of [Some] | None () => d1e_body ) : d1exp // end of [val] // in aux (lamknd, args, d1e_body, 0(*flag*)) end // end of [d0exp_tr_lams_dyn] (* ****** ****** *) implement termet_check ( loc, ismet, efcopt ) = ( // case+ efcopt of | Some efc => let val okay = ( if ismet then true else effcst_contain_ntm (efc) ) : bool // end of [val] in if ~okay then { val () = prerr_error1_loc (loc) val () = prerrln! (": a termination metric is missing") val () = the_trans1errlst_add (T1E_termet_check(loc)) } (* end of [if] *) end // end of [Some] | None ((*void*)) => () // end of [None] // ) (* end of [termet_check] *) (* ****** ****** *) fn i0nvarg_tr (arg: i0nvarg): i1nvarg = let val opt = s0expopt_tr (arg.i0nvarg_typ) in i1nvarg_make (arg.i0nvarg_loc, arg.i0nvarg_sym, opt) end // end of [i0nvarg_tr] fun i0nvarglst_tr (xs: i0nvarglst): i1nvarglst = l2l(list_map_fun (xs, i0nvarg_tr)) fn i0nvresstate_tr (res: i0nvresstate): i1nvresstate = let val s1qs = ( case+ res.i0nvresstate_qua of | Some s0qs => s0qualst_tr (s0qs) | None () => list_nil () ) : s1qualst // end of [val] val arg = i0nvarglst_tr res.i0nvresstate_arg in i1nvresstate_make (s1qs, arg) end // end of [i0nvresstate_tr] (* ****** ****** *) fn loopi0nv_tr (loc: location, inv: loopi0nv): loopi1nv = let val qua = ( case+ inv.loopi0nv_qua of | Some s0qs => s0qualst_tr s0qs | None () => list_nil () ) : s1qualst val met = ( case+ inv.loopi0nv_met of | Some s0es => Some (s0explst_tr s0es) | None () => None () ) : s1explstopt val arg = i0nvarglst_tr inv.loopi0nv_arg val res = i0nvresstate_tr inv.loopi0nv_res in loopi1nv_make (loc, qua, met, arg, res) end // end of [loopi0nv_tr] (* ****** ****** *) fn i0fcl_tr (ifcl: i0fcl): i1fcl = let // val test = d0exp_tr(ifcl.i0fcl_test) val body = d0exp_tr(ifcl.i0fcl_body) // in i1fcl_make(ifcl.i0fcl_loc, test, body) end // of [i0fcl_tr] fn i0fclist_tr (ifcls: i0fclist): i1fclist = list_of_list_vt(list_map_fun(ifcls, i0fcl_tr)) // end of [i0fclist_tr] (* ****** ****** *) fn gm0at_tr (gm0t: gm0at): gm1at = let val d1e = d0exp_tr(gm0t.gm0at_exp) val opt = ( case+ gm0t.gm0at_pat of | Some p0t => Some(p0at_tr p0t) | None() => None() ) : p1atopt // end of [val] in gm1at_make (gm0t.gm0at_loc, d1e, opt) end // end of [gm0at_tr] fn gm0atlst_tr (gm0ts: gm0atlst): gm1atlst = list_of_list_vt(list_map_fun(gm0ts, gm0at_tr)) // end of [gm0atlst_tr] (* ****** ****** *) fn c0lau_tr (c0l: c0lau): c1lau = let // val loc = c0l.c0lau_loc val gp0t = c0l.c0lau_pat // val p1t = p0at_tr (gp0t.guap0at_pat) val gua = gm0atlst_tr (gp0t.guap0at_gua) // val body = d0exp_tr (c0l.c0lau_body) // in // c1lau_make ( loc, p1t, gua, c0l.c0lau_seq, c0l.c0lau_neg, body ) (* c1lau_make *) // end // end of [c0lau_tr] fn c0laulst_tr (c0ls: c0laulst): c1laulst = list_of_list_vt(list_map_fun(c0ls, c0lau_tr)) // end of [c0laulst_tr] fn sc0lau_tr (sc0l: sc0lau): sc1lau = let val sp1t = sp0at_tr (sc0l.sc0lau_pat) val body = d0exp_tr (sc0l.sc0lau_body) in sc1lau_make (sc0l.sc0lau_loc, sp1t, body) end // end of [sc0lau_tr] fn sc0laulst_tr (sc0ls: sc0laulst): sc1laulst = list_of_list_vt(list_map_fun(sc0ls, sc0lau_tr)) // end of [sc0laulst_tr] (* ****** ****** *) local fn d0exp_tr_errmsg_opr (d0e0: d0exp): d1exp = let val loc0 = d0e0.d0exp_loc val () = prerr_error1_loc (loc0) val () = prerrln! (": the operator needs to be applied.") val () = the_trans1errlst_add (T1E_d0exp_tr(d0e0)) in d1exp_errexp (loc0) end // end of [d0exp_tr_errmsg_opr] in (* in of [local] *) implement d0exp_tr (d0e0) = let // #define :: list_cons // fun aux_item ( d0e0: d0exp ) : d1expitm = let // val loc0 = d0e0.d0exp_loc // in // case+ d0e0.d0exp_node of // | D0Eide id when id = BACKSLASH => d1expitm_backslash (loc0) | D0Eide id when id = UNDERSCORE => d1expitm_underscore (loc0) // | D0Eide id => let val d1e = d1exp_ide (loc0, id) val opt = the_fxtyenv_find (id) in case+ opt of | ~None_vt() => FXITMatm (d1e) // HX: not operator // end of [None_vt] | ~Some_vt(f) => d1exp_make_opr(d1e, f) // HX: operator // end of [Some_vt] end // end of [D0Eide] // | D0Eopid (id) => FXITMatm (d1exp_ide (loc0, id)) | D0Edqid (dq, id) => FXITMatm (d1exp_dqid (loc0, dq, id)) // | D0Eidext id => FXITMatm (d1exp_idext (loc0, id)) // | D0Eint x => FXITMatm (d1exp_i0nt (loc0, x)) | D0Echar x => FXITMatm (d1exp_c0har (loc0, x)) | D0Efloat x => FXITMatm (d1exp_f0loat (loc0, x)) | D0Estring x => FXITMatm (d1exp_s0tring (loc0, x)) // | D0Eempty() => FXITMatm (d1exp_empty (loc0)) // | D0Ecstsp(x) => FXITMatm (d1exp_cstsp (loc0, x)) // | D0Etyrep(s0e) => FXITMatm (d1exp_tyrep (loc0, s0exp_tr (s0e))) // end of [D0Etyrep] // | D0Eliteral (d0e) => FXITMatm (d1exp_literal (loc0, d0exp_tr (d0e))) // end of [D0Eliteral] // | D0Eextval (s0e, name) => FXITMatm( d1exp_extval(loc0, s0exp_tr(s0e), name) ) (* [FXITMatm] *) // end of [D0Eextval] // | D0Eextfcall (s0e, _fun, _arg) => let val s1e = s0exp_tr (s0e) val _arg = d0explst_tr (_arg) in FXITMatm ( d1exp_extfcall (loc0, s1e, _fun, _arg) ) (* end of [FXITMatm] *) end // end of [D0Eextfcall] | D0Eextmcall (s0e, _obj, _mtd, _arg) => let val s1e = s0exp_tr (s0e) val _obj = d0exp_tr (_obj) val _arg = d0explst_tr (_arg) in FXITMatm ( d1exp_extmcall (loc0, s1e, _obj, _mtd, _arg) ) (* end of [FXITMatm] *) end // end of [D0Eextmcall] // (* | D0Elabel lab => d1exp_label (loc0, lab) *) | D0Eloopexn (knd) => FXITMatm (d1exp_loopexn (loc0, knd)) // | D0Efoldat (d0es) => let val s1as = s0expdarglst_tr (d0es) fn f ( d1e: d1exp ) : d1expitm = let val loc = loc0 + d1e.d1exp_loc in FXITMatm (d1exp_foldat (loc, s1as, d1e)) end // end of [f] in FXITMopr (loc0, FXOPRpre (foldat_prec_dyn, f)) end // end of [D0Efoldat] // | D0Efreeat (d0es) => let val s1as = s0expdarglst_tr (d0es) fn f ( d1e: d1exp ) : d1expitm = let val loc = loc0 + d1e.d1exp_loc in FXITMatm (d1exp_freeat (loc, s1as, d1e)) end // end of [f] in FXITMopr (loc0, FXOPRpre (freeat_prec_dyn, f)) end // end of [D0Efreeat] // | D0Etmpid (qid, tmparg) => let val tmparg = list_map_fun (tmparg, t0mpmarg_tr) // end of [val] in FXITMatm (d1exp_tmpid (loc0, qid, (l2l)tmparg)) end // end of [D0Etmpid] // | D0Elet (d0cs, d0e_body) => let // val (pfenv|()) = the_trans1_env_push() // val d1cs = d0eclist_tr (d0cs) val d1e_body = d0exp_tr (d0e_body) // val ((*popped*)) = the_trans1_env_pop (pfenv | (*none*)) // in FXITMatm (d1exp_let (loc0, d1cs, d1e_body)) end // end of [D0Elet] // | D0Edeclseq d0cs => let // val (pfenv|()) = the_trans1_env_push() // val d1cs = d0eclist_tr (d0cs) val body = d1exp_empty (loc0) // val ((*popped*)) = the_trans1_env_pop (pfenv | (*none*)) // in FXITMatm (d1exp_let (loc0, d1cs, body)) end // end of [D0Edeclseq] // | D0Ewhere (d0e_body, d0cs) => let // val (pfenv|()) = the_trans1_env_push() // val d1cs = d0eclist_tr (d0cs) val d1e_body = d0exp_tr (d0e_body) // val ((*popped*)) = the_trans1_env_pop (pfenv | (*none*)) // in FXITMatm (d1exp_where (loc0, d1e_body, d1cs)) end // end of [D0Ewhere] // | D0Eapp _ => let // val deis = aux_itemlst (d0e0) // val d1e0 = fixity_resolve ( loc0 , d1exp_get_loc, d1expitm_app(loc0), deis ) (* end of [val] *) // (* val () = println! ("d0exp_tr: aux_item: d1e0 = ", d1e0) // end of [val] *) // val d1e0 = d1exp_syndef_resolve (loc0, d1e0) // in FXITMatm (d1e0) end // end of [D0Eapp] // | D0Elist (npf, d0es) => let val d1es = d0explst_tr (d0es) in FXITMatm (d1exp_list (loc0, npf, d1es)) end // end of [D0Elist] // | D0Eifhead ( hd, _cond, _then, _else ) => let val inv = i0nvresstate_tr hd.ifhead_inv val _cond = d0exp_tr (_cond) val _then = d0exp_tr (_then) val _else = d0expopt_tr (_else) val d1e_if = d1exp_ifhead (loc0, inv, _cond, _then, _else) in FXITMatm (d1e_if) end // end of [D0Eifhead] | D0Esifhead ( hd, _cond, _then, _else ) => let val i0nv = hd.sifhead_inv val i1nv = i0nvresstate_tr (i0nv) val _cond = s0exp_tr (_cond) val _then = d0exp_tr (_then) val _else = d0exp_tr (_else) val d1e_sif = d1exp_sifhead (loc0, i1nv, _cond, _then, _else) in FXITMatm (d1e_sif) end // end of [D0Esifhead] // | D0Eifcasehd (ifhd, ifcls) => let val i0nv = ifhd.ifhead_inv val i1nv = i0nvresstate_tr(i0nv) val ifcls = i0fclist_tr (ifcls) val d1e_ifcase = d1exp_ifcasehd(loc0, i1nv, ifcls) in FXITMatm (d1e_ifcase) end // end of [D0Eifcasehd] // | D0Ecasehead (hd, d0e, c0ls) => let val tok = hd.casehead_tok val-T_CASE(knd) = tok.token_node val i0nv = hd.casehead_inv val i1nv = i0nvresstate_tr (i0nv) val d1e = d0exp_tr (d0e) val d1es = ( case+ d1e.d1exp_node of | D1Elist(_(*npf*), d1es) => d1es | _ => list_sing(d1e) ) : d1explst // end of [val] val c1ls = c0laulst_tr (c0ls) in FXITMatm(d1exp_casehead(loc0, knd, i1nv, d1es, c1ls)) end // end of [D0Ecasehead] | D0Escasehead (hd, s0e, sc0ls) => let // // HX: hd.casehead_knd is always 0 // val i0nv = hd.scasehead_inv val i1nv = i0nvresstate_tr(i0nv) // val s1e = s0exp_tr(s0e) val sc1ls = sc0laulst_tr(sc0ls) // in FXITMatm(d1exp_scasehead(loc0, i1nv, s1e, sc1ls)) end // end of [D0Escasehead] // | D0Elst (lin, elt, d0e_elts) => let val elt = s0expopt_tr(elt) val d1e_elts = d0exp_tr(d0e_elts) val d1es_elts = ( case+ d1e_elts.d1exp_node of (* case+ *) | D1Elist(_(*npf*), d1es) => d1es | _ => list_sing(d1e_elts) ) : d1explst // end of [val] val d1e_lst = d1exp_lst (loc0, lin, elt, d1es_elts) in FXITMatm (d1e_lst) end // end of [D0Elst] | D0Etup(knd, npf, d0es) => let val d1es = d0explst_tr d0es in FXITMatm(d1exp_tup (loc0, knd, npf, d1es)) end // end of [D0Etup] | D0Erec(knd, npf, ld0es) => let val ld1es = list_map_fun (ld0es, labd0exp_tr) // end of [val] in FXITMatm(d1exp_rec(loc0, knd, npf, (l2l)ld1es)) end // end of [D0Erec] | D0Eseq(d0es) => FXITMatm(d1exp_seq(loc0, d0explst_tr d0es)) // | D0Earrsub (qid, loc_ind, d0ess) => let val d1e_arr = d1exp_dqid(qid.dqi0de_loc, qid.dqi0de_qua, qid.dqi0de_sym) // end of [val] val d0es_ind = list_concat(d0ess) val d1es_ind = d0explst_tr($UN.castvwtp1{d0explst}(d0es_ind)) val ((*freed*)) = list_vt_free (d0es_ind) in FXITMatm(d1exp_arrsub(loc0, d1e_arr, loc_ind, d1es_ind)) end // end of [D0Earrsub] | D0Earrpsz(elt, d0e_elts) => let val elt = s0expopt_tr(elt) val d1e_elts = d0exp_tr(d0e_elts) val d1es_elts = ( case+ d1e_elts.d1exp_node of | D1Elist(_(*npf*), d1es) => d1es | _ => list_sing (d1e_elts) ) : d1explst // end of [val] in FXITMatm (d1exp_arrpsz (loc0, elt, d1es_elts)) end // end of [D0Earrpsz] | D0Earrinit (elt, asz, init) => let val elt = s0exp_tr (elt) val asz = d0expopt_tr (asz) val init = d0explst_tr (init) in FXITMatm(d1exp_arrinit(loc0, elt, asz, init)) end // end of [D0Earrinit] // | D0Eraise(d0e) => FXITMatm(d1exp_raise (loc0, d0exp_tr (d0e))) // | D0Eeffmask (eff, d0e) => let val ( fcopt, lin, prf, efc // HX: fcopt, lin, prf are all ignored! ) = e0fftaglst_tr (eff) val d1e = d0exp_tr (d0e) in FXITMatm(d1exp_effmask (loc0, efc, d1e)) end // end of [D0Eeffmask] | D0Eeffmask_arg (knd, d0e) => let val d1e = d0exp_tr (d0e) in FXITMatm(d1exp_effmask_arg (loc0, knd, d1e)) end // end of [D0Eeffmask_arg] // | D0Evararg (d0es) => FXITMatm(d1exp_vararg(loc0, d0explst_tr(d0es))) // end of [D0Evararg] // | D0Evcopyenv (knd, d0e) => FXITMatm(d1exp_vcopyenv(loc0, knd, d0exp_tr(d0e))) // end of [D0Evcopyenv] // | D0Eshowtype(d0e) => FXITMatm (d1exp_showtype(loc0, d0exp_tr(d0e))) // | D0Etempenver(d0e) => FXITMatm (d1exp_tempenver(loc0, d0exp_tr(d0e))) // | D0Eptrof () => let fn f (d1e: d1exp): d1expitm = let val loc = loc0 + d1e.d1exp_loc in FXITMatm (d1exp_ptrof (loc, d1e)) end (* end of [f] *) in FXITMopr (loc0, FXOPRpre (ptrof_prec_dyn, f)) end // end of [D0Eptrof] | D0Eviewat () => let fn f (d1e: d1exp) : d1expitm = let val loc = loc0 + d1e.d1exp_loc in FXITMatm (d1exp_viewat (loc, d1e)) end (* end of [f] *) in FXITMopr (loc0, FXOPRpre (viewat_prec_dyn, f)) end // end of [D0Eviewat] // | D0Esexparg (s0a) => FXITMatm (d1exp_sexparg (loc0, s0exparg_tr (loc0, s0a))) // end of [D0Esexparg] | D0Eexist (loc_qua, s0a, d0e) => let val s1a = s0exparg_tr (loc_qua, s0a) val d1e = d0exp_tr (d0e) in FXITMatm (d1exp_exist (loc0, s1a, d1e)) end // end of [D0Eexist] // | D0Elam ( knd, args, res, effopt, body ) => let val lin0 = lamkind_islin (knd) val ( fcopt, lin, efcopt ) = ( case+ effopt of | Some eff => let val ( fcopt, lin, prf, efc ) = e0fftaglst_tr (eff) val lin = (if lin0 > 0 then 1 else lin): int in (fcopt, lin, Some efc) end // end of [Some] | None () => (None (), lin0, None ()) ) : (fcopt, int, effcstopt) val d1e_lam = d0exp_tr_lams_dyn (knd, Some loc0, fcopt, lin, args, res, efcopt, body) // end of [val] in FXITMatm (d1e_lam) end // end of [D0Elam] | D0Efix ( knd, id, args, res, effopt, d0e_def ) => let val ( fcopt, lin, efcopt ) = ( case+ effopt of | Some(eff) => let val ( fcopt , lin, prf, efc ) = e0fftaglst_tr(eff) in (fcopt, lin, Some(efc)) end // end of [Some] | None((*void*)) => ( None(*fcopt*), 0(*lin*), None(*efcopt*) ) // end of [None] ) : (fcopt, int, effcstopt) // end of [val] val d1e_def = d0exp_tr_lams_dyn ( knd, Some loc0, fcopt, lin, args, res, efcopt, d0e_def ) (* end of [val] *) // val ismet = d1exp_is_metric (d1e_def) val () = termet_check (loc0, ismet, efcopt) // val isbox = lamkind_isbox (knd) // HX: fixind = lamkind val knd = (if isbox > 0 then 1 else 0): int // in FXITMatm (d1exp_fix (loc0, knd, id, d1e_def)) end // end of [D0Efix] // | D0Edelay (knd, d0e) => let val d1e = d0exp_tr (d0e) in FXITMatm (d1exp_delay (loc0, knd, d1e)) end // end of [D0Edelay] // | D0Esel_lab (knd, lab) => let val d1l = d1lab_lab (loc0, lab) fn f ( d1e: d1exp ) : d1expitm = let val loc = d1e.d1exp_loc + loc0 in FXITMatm (d1exp_selab (loc, knd, d1e, d1l)) end // end of [let] // end of [f] in FXITMopr (loc0, FXOPRpos (select_prec, f)) end // end of [D0Esel_lab] | D0Esel_ind (knd, d0ess) => let // val d0es_ind = list_concat (d0ess) val d1es_ind = d0explst_tr ($UN.castvwtp1{d0explst}(d0es_ind)) // end of [val] val () = list_vt_free (d0es_ind) // val d1l = d1lab_ind (loc0, d1es_ind) fn f ( d1e: d1exp ) : d1expitm = let val loc = d1e.d1exp_loc + loc0 in FXITMatm (d1exp_selab (loc, knd, d1e, d1l)) end // end of [let] // end of [f] in FXITMopr (loc0, FXOPRpos (select_prec, f)) end // end of [D0Esel_ind] // | D0Etrywith (hd, d0e, c0ls) => let val inv = i0nvresstate_tr (hd.tryhead_inv) val d1e = d0exp_tr (d0e) val c1ls = c0laulst_tr (c0ls) in FXITMatm (d1exp_trywith (loc0, inv, d1e, c1ls)) end // end of [D0Etrywith] // | D0Efor ( invopt, loc_inv, itp, body ) => let val inv = ( case+ invopt of | Some x => loopi0nv_tr (loc_inv, x) | None _ => loopi1nv_nil (loc_inv) ) : loopi1nv // end of [val] val init = d0exp_tr itp.itp_init val test = d0exp_tr itp.itp_test val post = d0exp_tr itp.itp_post val body = d0exp_tr body in FXITMatm (d1exp_for (loc0, inv, init, test, post, body)) end // end of [D0Efor] | D0Ewhile ( invopt, loc_inv, test, body ) => let val inv = ( case+ invopt of | Some x => loopi0nv_tr (loc_inv, x) | None _ => loopi1nv_nil (loc_inv) ) : loopi1nv // end of [val] val test = d0exp_tr (test) val body = d0exp_tr (body) in FXITMatm (d1exp_while (loc0, inv, test, body)) end // end of [D0Ewhile] // | D0Eann (d0e, s0e) => let val d1e = d0exp_tr d0e val s1e = s0exp_tr s0e in FXITMatm(d1exp_ann_type (loc0, d1e, s1e)) end // end of [D0Eann] // | D0Emacsyn(knd, d0e) => FXITMatm(d1exp_macsyn (loc0, knd, d0exp_tr(d0e))) // end of [D0Emacsyn] // | D0Esolassert(d0e) => FXITMatm(d1exp_solassert(loc0, d0exp_tr(d0e))) | D0Esolverify(s0e) => FXITMatm(d1exp_solverify(loc0, s0exp_tr(s0e))) // (* | _ => let val () = prerr_interror_loc (loc0) val () = fprintln! ( stderr_ref, "d0exp_tr: aux_item: d0e0 = ", d0e0 ) (* end of [fprintln!] *) val () = assertloc (false) in $ERR.abort_interr((*deadcode*)) end // end of [_] *) // end (* end of [aux_item] *) // and aux_itemlst (d0e0: d0exp): d1expitmlst = let fun loop (d0e0: d0exp, res: d1expitmlst): d1expitmlst = case+ d0e0.d0exp_node of | D0Eapp (d0e1, d0e2) => let val res = aux_item d0e2 :: res in loop (d0e1, res) end // end of [D0Eapp] | _ => aux_item d0e0 :: res // end of [loop] in loop (d0e0, list_nil ()) end // end of [aux_itemlist] // (* val () = { val loc0 = d0e0.d0exp_loc val () = $LOC. print_location (loc0) val () = print ": d0exp_tr: d0e0 = " val () = fprint_d0exp (stdout_ref, d0e0) val () = print_newline () } // end of [val] *) // in // case+ aux_item(d0e0) of (* case+ *) | FXITMatm(p1t) => p1t | FXITMopr(_, _) => d0exp_tr_errmsg_opr (d0e0) // end // end of [d0exp_tr] end // end of [local] (* ****** ****** *) implement d0explst_tr (xs) = l2l(list_map_fun(xs, d0exp_tr)) (* ****** ****** *) implement d0expopt_tr (opt) = ( // case+ opt of | Some(d0e) => Some(d0exp_tr(d0e)) | None() => None() // ) (* end of [d0expopt_tr] *) (* ****** ****** *) implement labd0exp_tr (ld0e) = let val+DL0ABELED (l, d0e) = ld0e in labd1exp_make(l, d0exp_tr(d0e)) end // end of [labd0exp_tr] (* ****** ****** *) // implement S0Ed2ctype_tr (d2ctp) = ( $UN.cast{S1Ed2ctype}(d0exp_tr($UN.cast{d0exp}(d2ctp))) ) (* end of [S0Ed2ctype_tr] *) // (* ****** ****** *) (* end of [pats_trans1_dynexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2_staexp.dats0000644000175000017500000020720213431250607022155 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" staload INT = "./pats_intinf.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> ( // argumentless ) = prerr("pats_trans2_staexp") // (* ****** ****** *) // staload LOC = "./pats_location.sats" staload LEX = "./pats_lexing.sats" // staload SYM = "./pats_symbol.sats" // typedef token = $LEX.token typedef symbol = $SYM.symbol // overload + with $LOC.location_combine overload = with $SYM.eq_symbol_symbol overload print with $SYM.print_symbol overload prerr with $SYM.prerr_symbol // (* ****** ****** *) // staload SYN = "./pats_syntax.sats" // typedef s0taq = $SYN.s0taq typedef d0ynq = $SYN.d0ynq typedef i0delst = $SYN.i0delst // macdef prerr_sqid (sq, id) = ($SYN.prerr_s0taq ,(sq); $SYM.prerr_symbol ,(id)) // end of [prerr_sqid] // (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_e1xpval.sats" staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_trans2.sats" staload "./pats_trans2_env.sats" (* ****** ****** *) #include "./pats_basics.hats" (* ****** ****** *) // macdef list_sing (x) = list_cons (,(x), list_nil) // #define :: list_cons #define l2l list_of_list_vt // (* ****** ****** *) // overload fprint with fprint_s1arg overload fprint with fprint_s1var // (* ****** ****** *) // (* ** HX: static special identifier *) datatype staspecid = SPSIDarrow | SPSIDnone // fun staspecid_of_sqid ( sq: s0taq, id: symbol ) : staspecid = ( // case+ sq.s0taq_node of (* case *) | $SYN.S0TAQnone () => ( if id = $SYM.symbol_MINUSGT then SPSIDarrow(*void*) else SPSIDnone(*void*) // end of [if] ) // end of [S0TAQnone] | _ (*non-S0TAQnone*) => SPSIDnone(*void*) // ) (* end of [staspecid_of_sqid] *) // (* ****** ****** *) fun effvar_tr (efv: effvar): s2exp = let // val loc = efv.i0de_loc val sym = efv.i0de_sym val ans = the_s2expenv_find (sym) // in // case+ ans of | ~Some_vt s2i => ( case+ s2i of | S2ITMvar (s2v) => let (* val () = s2var_check_tmplev (loc, s2v) *) in s2exp_var (s2v) end // end of [S2ITEMvar] | S2ITMcst (s2cs) => let val-list_cons (s2c, _) = s2cs in s2exp_cst (s2c) end // end of [S2ITMcst] | _ => let val s2t_err = s2rt_err () val () = prerr_error2_loc (loc) val () = filprerr_ifdebug "effvar_tr" val () = prerr! (": the static identifier [", sym) val () = prerrln! "] should refer to a variable or constant." val () = the_trans2errlst_add (T2E_effvar_tr (efv)) in s2exp_s2rt_err () end // end of [_] ) // end of [Some_vt] | ~None_vt () => let val s2t_err = s2rt_err () val () = prerr_error2_loc (loc) val () = filprerr_ifdebug ("effvar_tr") val () = prerrln! (": unrecognized static identifier [", sym, "].") val () = the_trans2errlst_add (T2E_effvar_tr (efv)) in s2exp_s2rt_err () end // end of [None_vt] end // end of [effvar_tr] fun effvarlst_tr (efvs: effvarlst): s2eff = ( case+ efvs of | list_cons (efv, efvs) => let val s2e = effvar_tr (efv) val s2fe1 = s2eff_exp (s2e) val s2fe2 = effvarlst_tr (efvs) in s2eff_add (s2fe1, s2fe2) end // end of [list_cons] | list_nil () => s2eff_nil ) // end of [effvarlst_tr] implement effcst_tr (efc) = begin case+ efc of | EFFCSTall () => s2eff_all | EFFCSTnil () => s2eff_nil | EFFCSTset (efs, efvs) => s2eff_add (s2eff_effset (efs), effvarlst_tr (efvs)) // end of [EFFSTset] end // end of [effcst_tr] (* ****** ****** *) implement s1arg_trup(s1a) = let // val s2t = ( case+ s1a.s1arg_srt of // case+ | Some (s1t) => s1rt_tr(s1t) | None ((*void*)) => S2RTVar(s2rtVar_make(s1a.s1arg_loc)) // end of [None] ) : s2rt // end of [val] // in s2var_make_id_srt(s1a.s1arg_sym, s2t) end // end of [s1arg_trup] implement s1arglst_trup (s1as) = l2l(list_map_fun(s1as, s1arg_trup)) // end of [s1arglst_trup] (* ****** ****** *) implement s1arg_trdn (s1a, s2t0) = let // (* val () = fprintln! (stdout_ref, "s1a = ", s1a) val () = fprintln! (stdout_ref, "s2t0 = ", s2t0) *) // fun auxerr ( s1a: s1arg, s2t: s2rt, s2t0: s2rt ) : void = let // val () = prerr_error2_loc(s1a.s1arg_loc) // val () = filprerr_ifdebug ("s1arg_trdn") // val () = prerr!(": the argument is assigned the sort [", s2t) val () = prerrln! ("] but it is expected to accept a static term of the sort [", s2t0, "].") // in the_trans2errlst_add (T2E_s1arg_trdn (s1a, s2t0)) end (* end of [auxerr] *) // in case+ s1a.s1arg_srt of (* case *) | None() => s2var_make_id_srt(s1a.s1arg_sym, s2t0) // end of [None] | Some(s1t) => let val s2t = s1rt_tr(s1t) val okay = s2rt_ltmat1(s2t0, s2t) val () = if ~okay then auxerr (s1a, s2t, s2t0) in s2var_make_id_srt(s1a.s1arg_sym, s2t0) // HX: yes, [s2t0] should be used! end // end of [Some] // end (* end of [s1arg_trdn] *) implement s1arglst_trdn_err (s1as, s2ts, serr) = let (* // val () = ( println! ("s1arglst_trdn_err: serr", serr) ) (* end of [val] *) // *) in // case+ (s1as, s2ts) of | (s1a :: s1as, s2t :: s2ts) => let val s2v = s1arg_trdn (s1a, s2t) val s2vs = s1arglst_trdn_err (s1as, s2ts, serr) in list_cons (s2v, s2vs) end // end of [::, ::] | (list_nil _, list_nil _) => list_nil | (list_cons _, list_nil _) => (serr := serr + 1; list_nil) | (list_nil _, list_cons _) => (serr := serr - 1; list_nil) // end // end of [s1arglst_trdn_err] implement s1marg_trdn (s1ma, s2ts) = let // fun auxerr ( s1ma: s1marg, s2ts: s2rtlst, serr: int ) : void = let val loc0 = s1ma.s1marg_loc val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug "s1marg_trdn" val () = prerr ": the static argument group is expected to contain " val () = prerr_string (if serr > 0 then "more" else "fewer") val () = prerrln! " components." in the_trans2errlst_add (T2E_s1marg_trdn (s1ma, s2ts)) end // end of [auxerr] // var serr: int = 0 val s2vs = s1arglst_trdn_err (s1ma.s1marg_arg, s2ts, serr) // end of [val] val () = if serr != 0 then auxerr (s1ma, s2ts, serr) // in s2vs end // end of [s1marg_trdn] (* ****** ****** *) local fun sp1at_get_dups (s2vs: s2varlst): s2varlst = let // typedef s2varset = $UT.lstord (s2var) // fun f ( svs: s2varset, s2v: s2var ) : s2varset = $UT.lstord_insert (svs, s2v, compare_s2vsym_s2vsym) // end of [f] // val svs = list_fold_left_fun (f, $UT.lstord_nil (), s2vs) // end of [val] // in $UT.lstord_get_dups (svs, compare_s2vsym_s2vsym) end // end of [sp1at_get_dups] fun sp1at_trdn_arg ( sp1t: sp1at , s2t_pat: s2rt , sq: s0taq, id: symbol , s1as: s1arglst, s2ts: s2rtlst ) : s2varlst = let // fun auxerr ( sp1t: sp1at, serr: int ) : void = let val loc0 = sp1t.sp1at_loc val () = prerr_error2_loc (loc0) val () = prerr ": the static constructor [" val () = prerr_sqid (sq, id) val () = prerr "] requires " val () = prerr_string (if serr > 0 then "more" else "fewer") val () = prerrln! " arguments." in the_trans2errlst_add (T2E_sp1at_trdn (sp1t, s2t_pat)) end // end of [auxerr] // var serr: int = 0 val s2vs = s1arglst_trdn_err (s1as, s2ts, serr) // end of [val] val () = if serr != 0 then auxerr (sp1t, serr) // in s2vs end // end of [sp2at_trdn_arg] in (* in of [local] *) implement sp1at_trdn (sp1t, s2t_pat) = let // val loc0 = sp1t.sp1at_loc // fun auxerr1 ( sq: s0taq, id: symbol ) : void = let // val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug ("sp1at_trdn") val () = prerr ": the static identifier [" val () = prerr_sqid (sq, id) val () = prerrln! ("] does not refer to a static constructor associated with the sort [", s2t_pat, "].") // in the_trans2errlst_add (T2E_sp1at_trdn (sp1t, s2t_pat)) end // end of [auxerr1] // fun auxerr2 ( sq: s0taq, id: symbol ) : void = let // val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug ("sp1at_trdn") val () = prerr ": the static identifier [" val () = prerr_sqid (sq, id) val () = prerrln! "] does not refer to a static constructor." // in the_trans2errlst_add(T2E_sp1at_trdn(sp1t, s2t_pat)) end // end of [auxerr2] // fun auxerr3 ( sq: s0taq, id: symbol ) : void = let // val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug ("sp1at_trdn") val () = prerr ": the static identifier [" val () = prerr_sqid (sq, id) val () = prerrln! "] is unrecognized." // in the_trans2errlst_add(T2E_sp1at_trdn(sp1t, s2t_pat)) end // end of [auxerr3] // fun auxcheck ( sp1t: sp1at, s2vs: s2varlst ) : void = let // fun procrepeat ( sp1t: sp1at, sym: symbol ) : void = ( case+ sp1t.sp1at_node of | SP1Tcstr (_(*sq*), _(*id*), s1as) => procrepeat2 (s1as, sym) ) and procrepeat2 ( s1as: s1arglst, sym: symbol ) : void = ( case+ s1as of | list_cons (s1a, s1as) => let val () = if s1a.s1arg_sym = sym then ( $LOC.prerr_location (s1a.s1arg_loc); prerr_newline () ) // end of [val] in procrepeat2 (s1as, sym) end // end of [list_cons] | list_nil () => () ) // end of [procrepeat2] // val s2vs_dups = sp1at_get_dups (s2vs) // in // case+ s2vs_dups of // case+ // | list_nil() => () // | list_cons (s2v, _) => { val sym = s2var_get_sym (s2v) val () = prerr_error2_loc (loc0) val () = prerr! (": the static variable [", sym) val () = prerrln! "] is not allowed to occur repeatedly in a pattern:" val () = procrepeat (sp1t, sym) val () = the_trans2errlst_add (T2E_sp1at_trdn (sp1t, s2t_pat)) } (* end of [list_cons] *) // end (* end of [auxcheck] *) // fun auxselect ( s2cs: s2cstlst , s2t_pat: s2rt, s2ts_arg: &s2rtlst ) : s2cstlst = let in // case+ s2cs of | list_cons (s2c, s2cs1) => let val s2t_s2c = s2cst_get_srt (s2c) in case+ s2t_s2c of | S2RTfun (s2ts, s2t) => let val test = s2rt_ltmat1 (s2t_pat, s2t) in if test then let val () = s2ts_arg := s2ts in s2cs end else auxselect (s2cs1, s2t_pat, s2ts_arg) // end of [if] end // end of [S2RTfun] | _ => auxselect (s2cs1, s2t_pat, s2ts_arg) end // end of [list_cons] | list_nil () => list_nil () // end // end of [auxselect] // in // case+ sp1t.sp1at_node of | SP1Tcstr (sq, id, s1as) => let val ans = the_s2expenv_find_qua (sq, id) in case+ ans of | ~Some_vt s2i => begin case+ s2i of | S2ITMcst (s2cs) => let var s2ts_arg: s2rtlst = list_nil () val s2cs = auxselect (s2cs, s2t_pat, s2ts_arg) in case+ s2cs of | list_cons (s2c, _) => let val s2vs = sp1at_trdn_arg (sp1t, s2t_pat, sq, id, s1as, s2ts_arg) // HX: checking for repeated occurrences val () = auxcheck (sp1t, s2vs) in sp2at_con (loc0, s2c, s2vs) end // end of [list_cons] | list_nil () => let // HX: [sqid] is not applicable val () = auxerr1 (sq, id) in sp2at_err (loc0) end // end of [list_nil] end // end of [S2ITMcst] | _ => let // HX: [sqid] does not refer to a static constructor val () = auxerr2 (sq, id) in sp2at_err (loc0) end (* end of [_] *) end // end of [Some_vt] | ~None_vt () => let // HX: [sqid] is unrecognized val () = auxerr3 (sq, id) in sp2at_err (loc0) end // end of [None_vt] end // end of [SP1Tcstr] // end // end of [sp1at_trdn] end // end of [local] (* ****** ****** *) fun s1exp_trup_sqid ( s1e0: s1exp, sq: s0taq, id: symbol ) : s2exp = let // val loc0 = s1e0.s1exp_loc val ans = the_s2expenv_find_qua (sq, id) // in // case+ ans of // | ~Some_vt s2i0 => begin case+ s2i0 of // | S2ITMcst s2cs => let val-list_cons (s2c, _) = s2cs // HX: [s2cs] cannot be empty // fun loop ( s2cs: s2cstlst, s2c0: s2cst ) : s2cst = // find the first non-functional one if it exists case+ s2cs of | list_cons (s2c, s2cs) => let val s2t = s2cst_get_srt (s2c) in if s2rt_is_fun (s2t) then loop (s2cs, s2c0) else s2c end // end of [list_cons] | list_nil () => s2c0 // end of [list_nil] val s2c = loop (s2cs, s2c) // val s2e0 = s2exp_cst (s2c) // in case+ s2cst_get_srt (s2c) of | S2RTfun ( list_nil (), s2t_res ) when s2rt_is_dat (s2t_res) => s2exp_app_srt (s2t_res, s2e0, list_nil ()) // HX: automatically applied // S2RTfun | _ (*non-S2RTfun*) => s2e0 // HX: [s2c] is not a nullary constructor end // end of [S2ITMcst] // | S2ITMe1xp e1xp => let val e1xp = e1xp_normalize (e1xp) val s1e = s1exp_make_e1xp (loc0, e1xp) in s1exp_trup (s1e) end // end of [S1ITMe1xp] // | S2ITMvar s2v => let (* val () = s2var_check_tmplev (loc0, s2v) *) in s2exp_var (s2v) end // end of [S2ITMvar] // | _ => let val () = prerr_interror_loc (loc0) val () = prerrln! (": s1exp_trup_sqid: s1e0 = ", s1e0) val () = prerrln! (": s1exp_trup_sqid: s2i0 = ", s2i0) in $ERR.abort_interr{s2exp}((*void*)) end (* end of [_] *) end // end of [Some_vt] // | ~None_vt () => let val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug "s1exp_trup_sqid" val () = prerr ": the static identifier [" val () = prerr_sqid (sq, id) val () = prerrln! "] is unrecognized." val () = the_trans2errlst_add (T2E_s1exp_trup (s1e0)) in s2exp_s2rt_err () end // end of [None_vt] // end // end of [s1exp_trup_sqid] (* ****** ****** *) fun s2exp_app_wind ( s1e0: s1exp , s2e_fun: s2exp, s2ess_arg: List_vt (locs2explst) ) : s2exp = let (* // val () = ( println! ("s2exp_app_wind: aux: s1e0 = ", s1e0) ) (* end of [val] *) // *) fun aux ( s1e0: s1exp, x: locs2exp, s2t: s2rt ) : s2exp = let val s2e = x.1 (* // val () = ( println! ("s2exp_app_wind: aux: s2e = ", s2e) ) (* end of [val] *) // *) val test = s2rt_ltmat1 (s2e.s2exp_srt, s2t) // in // if test then s2e else let val () = prerr_error2_loc (x.0) val () = filprerr_ifdebug "s1exp_app_wind" val () = prerr ": the static expression is of the sort [" val () = prerr_s2rt (s2e.s2exp_srt) val () = prerrln! ("] but it is expected to be of the sort [", s2t, "].") val () = the_trans2errlst_add (T2E_s1exp_trup (s1e0)) in s2exp_errexp(s2t) end // end of [else] // end // end of [s2exp_app_wind] // fun auxlst ( s1e0: s1exp, xs: locs2explst, s2ts: s2rtlst ) : s2explst = let in // case+ xs of | list_cons (x, xs) => ( case+ s2ts of | list_cons (s2t, s2ts) => let val s2e = aux (s1e0, x, s2t) in list_cons (s2e, auxlst (s1e0, xs, s2ts)) end | list_nil () => let val () = prerr_error2_loc (x.0) val () = filprerr_ifdebug "s1exp_app_wind" val ( ) = prerrln! ( ": arity mismatch: the static argument is discarded." ) (* end of [val] *) val () = the_trans2errlst_add (T2E_s1exp_trup (s1e0)) in auxlst (s1e0, xs, s2ts) end // end of [list_nil] ) (* end of [list_cons] *) | list_nil ((*void*)) => ( case+ s2ts of | list_cons (s2t, s2ts) => let val () = prerr_error2_loc (s1e0.s1exp_loc) val () = filprerr_ifdebug "s1exp_app_wind" val ( ) = prerrln! ( ": arity mismatch: more static arguments are needed." ) (* end of [val] *) val () = the_trans2errlst_add(T2E_s1exp_trup(s1e0)) val s2e = s2exp_errexp(s2t) // HX: a placeholder for continuing in list_cons (s2e, auxlst (s1e0, xs, s2ts)) end // end of [list_cons] | list_nil () => list_nil () ) (* end of [list_nil] *) // end // end of [auxlst] // fun loop ( s1e0: s1exp , s2t: s2rt , xss: List_vt (locs2explst) , s2e: s2exp ) : s2exp = let in // case+ xss of | ~list_vt_cons (xs, xss) => ( if s2rt_is_fun(s2t) then let val-S2RTfun (s2ts, s2t) = s2t var err: int = 0 val s2es = auxlst (s1e0, xs, s2ts) val s2e = s2exp_app_srt (s2t, s2e, s2es) in loop (s1e0, s2t, xss, s2e) end // end of [then] else let val () = list_vt_free (xss) val () = prerr_error2_loc (s1e0.s1exp_loc) val () = filprerr_ifdebug "s1exp_app_wind" val () = prerrln! ": the static term is overly applied." val () = the_trans2errlst_add (T2E_s1exp_trup (s1e0)) in s2exp_errexp(s2t) end // end of [else] // end of [if] ) // end of [list_cons] | ~list_vt_nil () => s2e // end (* end if [loop] *) // in loop (s1e0, s2e_fun.s2exp_srt, s2ess_arg, s2e_fun) end // end of [s2exp_app_wind] (* ****** ****** *) typedef locs1explst = @(location, s1explst) (* ****** ****** *) fun s1exp_app_unwind ( s1e0: s1exp, xs: &List_vt (locs1explst) ) : s1exp = let in // case+ s1e0.s1exp_node of | S1Eapp ( s1e, larg, s1es ) => let val x = (larg, s1es) val () = xs := list_vt_cons (x, xs) in s1exp_app_unwind (s1e, xs) end // end of [S1Eapp] | S1Eide (id) => let val ans = the_s2expenv_find (id) in case+ ans of | ~Some_vt s2i => ( case+ s2i of | S2ITMe1xp e0 => s1exp_app_unwind_e1xp (s1e0, e0, xs) | _ => s1e0 ) // end of [Some_vt] | ~None_vt () => s1e0 end (* end of [S1Eide] *) | _ => s1e0 // end of [_] // end // end of [s1exp_app_unwind] and s1exp_app_unwind_e1xp ( s1e0: s1exp, e0: e1xp, xs: &List_vt (locs1explst) ) : s1exp = let val loc0 = s1e0.s1exp_loc val nxs = list_vt_length (xs) in // case+ e0.e1xp_node of | E1XPfun _ when nxs > 0 => let val+~list_vt_cons (x, xs1) = xs val () = xs := xs1 // prval pfu = unit_v() // val es = list_map_vclo{unit_v}(pfu | x.1, !p_clo) where { var !p_clo = @lam (pf: !unit_v | s1e: s1exp): e1xp => e1xp_make_s1exp (loc0, s1e) // end of [var] } // end of [where] // end of [val] // prval unit_v () = pfu // val es = l2l(es) val e0 = e1xp_app(loc0, e0, loc0, es) val e1 = e1xp_normalize(e0) val s1e1 = s1exp_make_e1xp( loc0, e1 ) in s1exp_app_unwind( s1e1, xs ) end // end of [E1XPfun] | _ (* non-E1XPfun *) => let val e1 = e1xp_normalize(e0) val s1e1 = s1exp_make_e1xp(loc0, e1) in s1exp_app_unwind( s1e1, xs ) end // end of [_] // end // end of [s1exp_app_unwind_e1xp] (* ****** ****** *) fun s1exp_trup_invar ( refval: int, s1e: s1exp ) : s2exp = let val s2t = ( if refval = 0 then s2rt_view (*val*) else s2rt_vt0ype (*ref*) ) : s2rt // end of [val] val s2e: s2exp = s1exp_trdn (s1e, s2t) in s2exp_refarg (refval, s2e) end // end of [s1exp_trup_invar] (* ****** ****** *) (* ** HX-2012-05-24: ** for synthesizing the second arg of S1Etrans: ** T >> _ stands for T >> T ** T >> _? stands for T >> T? ** T >> _?! stands for T >> T?! ** T? >> _ stands for T? >> T *) fun s1exp_is_underscore (s1e: s1exp): bool = let in case+ s1e.s1exp_node of | S1Eide (sym) => if sym = $SYM.symbol_UNDERSCORE then true else false | _ => false // end of [_] end // end of [s1exp_is_underscore] fun s1exp_test_top_underscore (s1e: s1exp): int = let in case+ s1e.s1exp_node of | S1Etop (knd, s1e) => if s1exp_is_underscore (s1e) then knd else ~1 | _ => ~1 end // end of [s1exp_is_top_underscore] fun s1exp_untop_if (s1e: s1exp): s1exp = ( case+ s1e.s1exp_node of S1Etop (knd, s1e) => s1e | _ => s1e ) // end of [s1exp_untop_if] fun s1exp_trans_syn_arg2 ( s1e1: s1exp, s1e2: s1exp ) : s1exp = let val isUS = s1exp_is_underscore (s1e2) in if isUS then let val s1e = s1exp_untop_if (s1e1) in s1e end else let val knd = s1exp_test_top_underscore (s1e2) in if knd >= 0 then let val s1e = s1exp_untop_if (s1e1) in s1exp_top (s1e.s1exp_loc, knd, s1e) end else s1e2 // end of [if] end // end of [if] end // end of [s1exp_trans_syn_arg2] (* ****** ****** *) implement s1exp_trup_arg (s1e0, ws1es) = let (* // val () = ( println! ("s1exp_trup_arg: s1e0 = ", s1e0) ) (* end of [val] *) // *) in // case+ s1e0.s1exp_node of | S1Einvar (refval, s1e) => let val () = ws1es := WTHS1EXPLSTcons_some (0(*invar*), refval, s1e, ws1es) // end of [val] in s1exp_trup_invar (refval, s1e) end // end of [S1Einvar] | S1Etrans (s1e1, s1e2) => ( case+ s1e1.s1exp_node of | S1Einvar (refval, s1e_arg) => let val s1e2 = s1exp_trans_syn_arg2 (s1e_arg, s1e2) val () = ws1es := WTHS1EXPLSTcons_some (1(*trans*), refval, s1e2, ws1es) // end of [val] in s1exp_trup_invar (refval, s1e_arg) end // end of [S1Einvar] | _ => let val () = prerr_error2_loc (s1e1.s1exp_loc) val () = filprerr_ifdebug "s1exp_trup_arg" // for debugging val () = prerrln! ": a refval-type must begin with !(call-by-value) or &(call-by-reference)" val () = the_trans2errlst_add (T2E_s1exp_trup (s1e0)) in s2exp_s2rt_err () end // end of [_] ) // end of [S1Etrans] | _ => let val () = ws1es := WTHS1EXPLSTcons_none (ws1es) in s1exp_trup (s1e0) end // end of [_] // end // end of [s1exp_trup_arg] (* ****** ****** *) implement s1exp_trdn_res_impred (s1e0, ws1es) = let // fun auxwth ( ws1es: wths1explst ) : wths2explst = let in // case+ ws1es of | WTHS1EXPLSTcons_some (knd, refval, s1e, ws1es) => let val s2t = ( if refval = 0 then s2rt_view else s2rt_vt0ype ) : s2rt // end of [val] val s2e = s1exp_trdn (s1e, s2t) val ws2es = auxwth (ws1es) // // HX-2012-05: // hnfizing needed for removing READ, WRITE, etc. // val s2e = s2exp_hnfize (s2e) val isinv = ( if knd = 0 then s2exp_is_nonvar (s2e) else false ) : bool // end of [val] // in if isinv then WTHS2EXPLSTcons_invar (refval, s2e, ws2es) else WTHS2EXPLSTcons_trans (refval, s2e, ws2es) // end of [if] end // end of [WTHS1EXPLSTcons_invar] | WTHS1EXPLSTcons_none (ws1es) => let val ws2es = auxwth (ws1es) in WTHS2EXPLSTcons_none (ws2es) end // end of [WTHS1EXPLSTcons_none] | WTHS1EXPLSTnil () => WTHS2EXPLSTnil () // end // endof [auxwth] // fun auxres ( s1e: s1exp, ws1es: wths1explst ) : s2exp = let in // case+ s1e.s1exp_node of | S1Eexi ( 1(*funres*), s1qs, s1e_scope ) => let val (pf_s2expenv | ()) = the_s2expenv_push_nil () val s2q = s1qualst_tr (s1qs) val s2e_scope = auxres (s1e_scope, ws1es) val () = the_s2expenv_pop_free (pf_s2expenv | (*none*)) in s2exp_exi (s2q.s2qua_svs, s2q.s2qua_sps, s2e_scope) end // end of [S1Eexi] | _ => let val s2e = s1exp_trdn_impred (s1e) val ws2es = auxwth (ws1es) in s2exp_wthtype (s2e, ws2es) end // end of [_] // end // end of [auxres] // in // if wths1explst_is_none (ws1es) then s1exp_trdn_impred (s1e0) else auxres (s1e0, ws1es) // end of [if] // end // end of [s1exp_trdn_res_impred] (* ****** ****** *) fun s1exp_trup_arrow // arrow is a special type constructor ( s1e0: s1exp , fcopt: fcopt , islin: bool , isprf: bool , efcopt: effcstopt , xs: List_vt (locs1explst) ) : s2exp = let // #define nil list_nil #define cons list_cons #define :: list_cons // fun auxerr1 ( s1e0: s1exp, xs: !List_vt (locs1explst) ) : void = case+ xs of | list_vt_cons _ => fold@ (xs) | list_vt_nil () => { prval () = fold@ (xs) val () = prerr_error2_loc (s1e0.s1exp_loc) val () = filprerr_ifdebug "s1exp_trup_arrow" val () = prerrln! ": illegal static application." val () = the_trans2errlst_add (T2E_s1exp_trup (s1e0)) } // end of [list_vt_nil] // end of [auxerr1] fun auxerr2 ( s1e0: s1exp , xs: List_vt (locs1explst) ) : void = let in // case+ xs of | list_vt_cons _ => let // prval () = fold@(xs) // val () = list_vt_free(xs) val () = prerr_error2_loc(s1e0.s1exp_loc) val () = filprerr_ifdebug "s1exp_trup_arrow" val () = prerrln! ": illegal static application." val () = the_trans2errlst_add(T2E_s1exp_trup(s1e0)) in // nothing end // end of [list_vt_cons] | ~list_vt_nil((*void*)) => () // end // end of [auxerr2] // fun auxerr3 ( s1e0: s1exp, s1e: s1exp, s2t: s2rt ) : s2exp = let val () = prerr_error2_loc(s1e.s1exp_loc) val () = filprerr_ifdebug "s1exp_trup_arrow" val () = prerr ": the static expression needs to be impredicative" val () = prerrln!(" but is assigned the sort [", s2t, "].") val () = the_trans2errlst_add(T2E_s1exp_trup (s1e0)) in s2exp_s2rt_err((*void*)) end (* end of [auxerr3] *) // val () = auxerr1(s1e0, xs) // HX: is this really needed? val-~list_vt_cons(x, xs) = xs val () = auxerr2(s1e0, xs) // HX: reporting an error if [xs] is not nil val s1es = (x.1 : s1explst) val-s1e_arg :: s1e_res :: nil () = s1es // var npf: int = ~1 // HX: default var s1es_arg: s1explst = list_nil () // val () = ( case+ s1e_arg.s1exp_node of (* case+ *) | S1Elist(n, s1es) =>(npf := n; s1es_arg := s1es) | _(*non-S1Elist*) => s1es_arg := list_sing(s1e_arg) // HX: npf = -1 ) : void // end of [val] // var ws1es: wths1explst = WTHS1EXPLSTnil() // val s2es_arg = let fun aux ( s1es: s1explst, ws1es: &wths1explst ) : s2explst = case+ s1es of | list_nil() => list_nil() | list_cons (s1e, s1es) => let val s2e = s1exp_trup_arg(s1e, ws1es) val s2t = s2e.s2exp_srt var imp: int = 0 and types: int = 0 val () = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASimp(_, name) => { val () = imp := 1 // impredicative val () = if name = $SYM.symbol_TYPES then types := 1 // end of [if] } // end of [S2RTBASimp] | _ => () // end of [_] ) // end of [S2RTbas] | _ (*non-S2RTbas*) => () ) : void // end of [val] val s2e = ( if imp > 0 then (if types > 0 then s2exp_vararg(s2e) else s2e) else auxerr3 (s1e0, s1e, s2t) ) : s2exp // end of [val] in list_cons(s2e, aux(s1es, ws1es)) end // end of [list_cons] // end of [aux] in aux(s1es_arg, ws1es) end // end of [val] // val () = ( ws1es := wths1explst_reverse(ws1es) ) val s2e_res = s1exp_trdn_res_impred(s1e_res, ws1es) val s2t_res = s2e_res.s2exp_srt // val loc0 = s1e0.s1exp_loc // val isprf = (if isprf then isprf else s2rt_is_prf(s2t_res)): bool // val fc = ( case+ fcopt of | Some fc => fc | None () => FUNCLOfun() // default is [function] ) : funclo // end of [val] val s2t_fun = s2rt_prf_lin_fc(loc0, isprf, islin, fc) val lin = (if islin then 1 else 0): int // end of [val] val sf2e = ( case+ efcopt of | Some(efc) => effcst_tr(efc) | None((*void*)) => if isprf then s2eff_nil else s2eff_all ) : s2eff // end of [val] // in s2exp_fun_srt(s2t_fun, fc, lin, sf2e, npf, s2es_arg, s2e_res) end // end of [s1exp_trup_arrow] (* ****** ****** *) fun s1exp_trup_app ( s1e0: s1exp, s1opr: s1exp , _fun: s2exp, _arg: List_vt(locs1explst) ) : s2exp = let // fun auxerr1 ( s1e0: s1exp, loc: location, serr: int ) : void = { val () = prerr_error2_loc (loc) val () = filprerr_ifdebug "s1exp_trup_app" val () = prerr ": the static application needs " val () = prerr_string (if serr > 0 then "more" else "fewer") val () = prerrln! " arguments." val () = the_trans2errlst_add (T2E_s1exp_trup (s1e0)) } (* end of [auxerr1] *) // fun auxerr2 ( s1e0: s1exp, loc: location, s2e: s2exp ) : void = { val () = prerr_error2_loc (loc) val () = filprerr_ifdebug "s1exp_trup_app" val () = prerr! (": the static expression [", s2e) val () = prerrln! ("] is expected to be of a functional sort but it is assigned the sort [", s2e.s2exp_srt, "].") val () = the_trans2errlst_add (T2E_s1exp_trup_app (s1e0)) } (* end of [auxerr2] *) // fun loop ( s1e0: s1exp, loc: location , s2e_fun: s2exp, xs: List_vt (locs1explst) ) : s2exp = begin case+ xs of | ~list_vt_cons (x, xs) => let val s2t_fun = s2e_fun.s2exp_srt in if s2rt_is_fun(s2t_fun) then let val-S2RTfun(s2ts_arg, s2t_res) = s2t_fun var serr:int = 0 val s2es_arg = s1explst_trdn_err(x.1, s2ts_arg, serr) in case+ 0 of | _ when serr = 0 => let val s2e_fun = s2exp_app_srt(s2t_res, s2e_fun, s2es_arg) in loop (s1e0, loc, s2e_fun, xs) end // end of [_ when serr = 0] | _ => let val () = list_vt_free (xs) val () = auxerr1(s1e0, loc + x.0, serr) in s2exp_errexp(s2t_res) end // end of [_ when err != 0] // end of [case] end else let val () = list_vt_free (xs) val () = auxerr2 (s1e0, loc, s2e_fun) in s2exp_errexp(s2t_fun) end // end of [if] end (* end of [list_cons] *) | ~list_vt_nil _ => s2e_fun end // end of [loop] // in loop (s1e0, s1opr.s1exp_loc, _fun, _arg) end // end of [s1exp_trup_app] (* ****** ****** *) fun s1exp_trup_app_datcontyp ( s1e0: s1exp , s1opr: s1exp , d2c: d2con, xs: List_vt (locs1explst) ) : s2exp = let // fun auxck1 ( s1e0: s1exp , d2c: d2con, xs: List_vt (locs1explst) ) : int(*nerr*) = let in // case+ xs of | ~list_vt_cons (x, xs) => let val () = prerr_error2_loc (x.0) val () = prerrln! ": overly supplied static argument group." in auxck1 (s1e0, d2c, xs) + 1 end // end of [list_vt_cons] | ~list_vt_nil () => (0) // end // end of [auxck1] // fun auxck2 ( s1e0: s1exp , d2c: d2con, s1es: s1explst ) : void = let val n = list_length (s1es) val arity = d2con_get_arity_full (d2c) val sgn = n - arity in // if sgn != 0 then let val loc0 = s1e0.s1exp_loc val () = prerr_error2_loc (loc0) val () = prerr ": the type constructor [" val () = prerr_d2con (d2c) val () = if sgn < 0 then prerr "] expects more arguments."; val () = if sgn > 0 then prerr "] expects fewer arguments."; val () = prerr_newline ((*void*)) in the_trans2errlst_add (T2E_s1exp_trup (s1e0)) end // end of [if] // end // end of [auxck2] // val s1es = ( case+ xs of | ~list_vt_cons (x, xs) => let val nerr = auxck1 (s1e0, d2c, xs) val () = ( if nerr > 0 then the_trans2errlst_add (T2E_s1exp_trup (s1e0)) // end of [if] ) // end of [val] in x.1 end // end of [list_vt_cons] | ~list_vt_nil () => list_nil () ) : s1explst // end of [val] // val () = auxck2 (s1e0, d2c, s1es) val s2es = s1explst_trdn_impred (s1es) // in s2exp_datcontyp (d2c, s2es) end // end of [s1exp_trup_app_datcontyp] (* ****** ****** *) fun s1exp_trup_app_datconptr ( s1e0: s1exp , s1opr: s1exp , d2c: d2con, xs: List_vt (locs1explst) ) : s2exp = let // fun auxck1 ( s1e0: s1exp , d2c: d2con, xs: List_vt (locs1explst) ) : int(*nerr*) = let in // case+ xs of | ~list_vt_cons (x, xs) => let val () = prerr_error2_loc (x.0) val () = prerrln! ": overly supplied static argument group." in auxck1 (s1e0, d2c, xs) + 1 end // end of [list_vt_cons] | ~list_vt_nil () => (0) // end // end of [auxck1] // fun auxck2 ( s1e0: s1exp , d2c: d2con, s1es: s1explst ) : void = let val n = list_length (s1es) val arity = d2con_get_arity_full (d2c) val sgn = n - (1(*rt*) + arity) in // if sgn != 0 then let val loc0 = s1e0.s1exp_loc val () = prerr_error2_loc (loc0) val () = prerr ": the type constructor [" val () = prerr_d2con (d2c) val () = if sgn < 0 then prerr "] expects more arguments."; val () = if sgn > 0 then prerr "] expects fewer arguments."; val () = prerr_newline ((*void*)) in the_trans2errlst_add (T2E_s1exp_trup (s1e0)) end // end of [if] // end // end of [auxck2] // val s1es = ( case+ xs of | ~list_vt_cons (x, xs) => let val nerr = auxck1 (s1e0, d2c, xs) val () = ( if nerr > 0 then the_trans2errlst_add (T2E_s1exp_trup (s1e0)) // end of [if] ) // end of [val] in x.1 end // end of [list_vt_cons] | ~list_vt_nil () => list_nil () ) : s1explst // end of [val] // val () = auxck2 (s1e0, d2c, s1es) val s2es = s1explst_trdn_addr (s1es) val-list_cons (_rt, _arg) = s2es // in s2exp_datconptr (d2c, _rt, _arg) end // end [s1exp_trup_app_datconptr] (* ****** ****** *) fun s1exp_trup_app_sqid ( s1e0: s1exp , s1opr: s1exp , sq: s0taq, id: symbol , xs: List_vt (locs1explst) ) : s2exp = let // val spsid = staspecid_of_sqid (sq, id) // in // case+ spsid of | SPSIDarrow () => s1exp_trup_arrow ( s1e0, None(*fc*), false(*lin*), false(*prf*), None(*efc*), xs ) // end of [SPSIDarrow] | _(*SPSIDnone*) => let val ans = the_s2expenv_find_qua (sq, id) in case+ ans of | ~Some_vt s2i => s1exp_trup_app_sqid_itm (s1e0, s1opr, sq, id, s2i, xs) // end of [Some_vt] | ~None_vt () => let val () = list_vt_free (xs) val () = prerr_error2_loc (s1opr.s1exp_loc) val () = filprerr_ifdebug "s1exp_trup_app_sqid" val () = prerr ": unrecognized static identifier [" val () = prerr_sqid (sq, id) val () = prerrln! "]." in s2exp_s2rt_err () end // end of [None_vt] end // end of [SPSIDnone] // end // end of [s1exp_trup_app_sqid] and s1exp_trup_app_sqid_itm ( s1e0: s1exp , s1opr: s1exp , sq: s0taq, id: symbol, s2i0: s2itm , xs: List_vt (locs1explst) ) : s2exp = let // (* val () = ( println! ("s1exp_trup_app_sqid_itm: s1e0 = ", s1e0); println! ("s1exp_trup_app_sqid_itm: s1e0 = ", s2i0); ) (* end of [val] *) *) // in // case+ s2i0 of | S2ITMcst s2cs => let typedef T1 = locs1explst // = (loc)s1explst typedef T2 = locs2explst // = (locs2exp)lst val ys = let fun f (x: T1): T2 = l2l ( list_map_fun (x.1, lam s1e =<1> (s1e.s1exp_loc, s1exp_trup s1e)) ) // end of [f] // end of [fun] in list_map_fun ($UN.castvwtp1 {List(T1)} (xs), f) end // end of [val] val () = list_vt_free (xs) val s2cs = s2cst_select_locs2explstlst (s2cs, $UN.castvwtp1 {List(T2)} (ys)) in case+ s2cs of | list_cons (s2c, _) => s2exp_app_wind (s1e0, s2exp_cst (s2c), ys) // end of [list_cons] | list_nil () => let val () = list_vt_free (ys) val () = prerr_error2_loc (s1e0.s1exp_loc) val () = filprerr_ifdebug "s1exp_trup_app_sqid_itm" val () = prerr ": none of the static constants referred to by [" val () = prerr_sqid (sq, id) val () = prerrln! "] is applicable." val () = the_trans2errlst_add (T2E_s1exp_trup (s1e0)) in s2exp_s2rt_err () end // end of [_] end // end of [S2ITEMcst] | S2ITMvar s2v => let (* val () = s2var_check_tmplev (s1opr.s1exp_loc, s2v) // end of [val] *) in s1exp_trup_app (s1e0, s1opr, s2exp_var (s2v), xs) end // end of [S2ITEMvar] // | S2ITMdatcontyp d2c => s1exp_trup_app_datcontyp (s1e0, s1opr, d2c, xs) | S2ITMdatconptr d2c => s1exp_trup_app_datconptr (s1e0, s1opr, d2c, xs) // | _ => let val () = list_vt_free (xs) val () = prerr_interror_loc (s1opr.s1exp_loc) val () = prerr_newline ((*void*)) val () = prerrln! (": NIY: s1exp_trup_app_sqid_itm: s1e0 = ", s1e0) val () = prerrln! (": NIY: s1exp_trup_app_sqid_itm: s2i0 = ", s2i0) in $ERR.abort_interr{s2exp}((*reachable*)) end // end of [_] end // end of [s1exp_trup_app_sqid_itm] (* ****** ****** *) fun s1exp_trup_top ( knd: int, s1e: s1exp ) : s2exp = let val s2e = s1exp_trdn_impred (s1e) in s2exp_top (knd, s2e) end // end of [s1exp_trup_top] (* ****** ****** *) local fun aux01 // flt/box: 0/1 ( i: int , npf: int, s1es: s1explst , lin: &int, prf: &int, prgm: &int ) : labs2explst = let in // case+ s1es of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (s1e, s1es) => let // val lab = $LAB.label_make_int(i) // end of [val] // val s2e = s1exp_trdn_impred s1e // end of [val] val s2t = s2e.s2exp_srt val ls2e = SLABELED(lab, None(), s2e) // val () = if s2rt_is_lin(s2t) then (lin := lin+1) val () = if s2rt_is_prf(s2t) then (prf := prf+1) else (if i >= npf then (prgm := prgm+1)) // end of [if] // end of [val] in list_cons(ls2e, aux01(i+1, npf, s1es, lin, prf, prgm)) end (* end of [list_cons] *) // end // end of [aux01] fun aux23 // box_t/box_vt : 2/3 ( i: int , npf: int, s1es: s1explst , s2t_prf: s2rt, s2t_prgm: s2rt ) : labs2explst = let in // case+ s1es of | list_nil ((*void*)) => list_nil() | list_cons (s1e, s1es) => let val lab = $LAB.label_make_int(i) val s2e = ( if i >= npf then ( s1exp_trdn(s1e, s2t_prgm) ) else s1exp_trdn(s1e, s2t_prf) // end of [if] ) : s2exp // end of [val] val ls2e = SLABELED(lab, None(), s2e) in list_cons(ls2e, aux23(i+1, npf, s1es, s2t_prf, s2t_prgm)) end (* end of [list_cons] *) // end // end of [aux23] in (* in of [local] *) fun s1exp_trup_tytup ( s1e0: s1exp , knd: int, npf: int, s1es: s1explst ) : s2exp = let (* val () = ( println! ("s1exp_trup_tytup: s1e0 = ", s1e0) ) (* end of [val] *) *) in // case+ knd of | TYTUPKIND_flt => s1exp_trup_tytup_flt (s1e0, npf, s1es) // end of [TYTUPKIND_flt] | TYTUPKIND_box => let // var lin: int = 0 var prf: int = 0 and prgm: int = 0 // val ls2es = aux01 (0, npf, s1es, lin, prf, prgm) // end of [val] // val s2t_rec = ( s2rt_npf_lin_prf_prgm_boxed_labs2explst (npf, lin, prf, prgm, 1(*boxed*), ls2es) // s2rt_npf_lin_prf_prgm_boxed_labs2explst ) (* end of [val] *) // val knd = ( if s2rt_is_nonlin(s2t_rec) then TYRECKINDbox() else TYRECKINDbox_lin() ) : tyreckind // end of [val] in s2exp_tyrec_srt(s2t_rec, knd, npf, ls2es) end | TYTUPKIND_box_t => let val ls2es = aux23(0, npf, s1es, s2rt_prop, s2rt_t0ype) // end of [val] in s2exp_tyrec_srt(s2rt_type, TYRECKINDbox(), npf, ls2es) end | TYTUPKIND_box_vt => let val ls2es = aux23(0, npf, s1es, s2rt_view, s2rt_vt0ype) // end of [val] in s2exp_tyrec_srt (s2rt_vtype, TYRECKINDbox_lin (), npf, ls2es) // s2exp_tyrec_srt end | _ => let val () = assertloc (false) in s2exp_t0ype_err () end (* end of [_] *) end // end of [s1exp_trup_tytup] and s1exp_trup_tytup_flt ( s1e0: s1exp, npf: int, s1es: s1explst ) : s2exp = let var lin: int = 0 var prf: int = 0 and prgm: int = 0 val ls2es = aux01(0, npf, s1es, lin, prf, prgm) val boxed = 0 (* HX: this is the default *) val s2t_rec = ( s2rt_npf_lin_prf_prgm_boxed_labs2explst(npf, lin, prf, prgm, boxed, ls2es) ) (* end of [val] *) in s2exp_tyrec_srt(s2t_rec, TYRECKINDflt0(), npf, ls2es) end // end of [s1exp_trup_tytup_flt] end // end of [local] (* ****** ****** *) local fun string_of_s0tring (tok: token): string = let val-$LEX.T_STRING (str) = tok.token_node in str end // end of [string_of_s0tring] fun aux01 ( // flt/box: 0/1 i: int , npf: int, ls1es: labs1explst , lin: &int , prf: &int , prgm: &int ) : labs2explst = begin case+ ls1es of | list_cons (ls1e, ls1es) => let val $SYN.SL0ABELED (l0ab, name, s1e) = ls1e val lab = l0ab.l0ab_lab val name = (case+ name of | Some tok => let val str = string_of_s0tring (tok) in Some (str) end // end of [Some] | None () => None ) : Option (string) val s2e = s1exp_trdn_impred (s1e) val ls2e = SLABELED (lab, name, s2e) val s2t = s2e.s2exp_srt val () = if s2rt_is_lin (s2t) then (lin := lin+1) val () = if s2rt_is_prf (s2t) then (prf := prf+1) else (if i >= npf then prgm := prgm+1) // end of [val] in list_cons (ls2e, aux01 (i+1, npf, ls1es, lin, prf, prgm)) end (* end of [list_cons] *) | list_nil () => list_nil () end // end of [aux01] fun aux23 ( // box_t/box_vt : 2/3 i: int , npf: int, ls1es: labs1explst , s2t_prf: s2rt , s2t_prgm: s2rt ) : labs2explst = begin case+ ls1es of | list_cons (ls1e, ls1es) => let val $SYN.SL0ABELED (l0ab, name, s1e) = ls1e // end of [val] val lab = l0ab.l0ab_lab val name = ( case+ name of | None() => None() | Some(tok) => let val str = string_of_s0tring(tok) in Some(str) end // end of [Some] ) : Option (string) val s2e = ( if i >= npf then s1exp_trdn(s1e, s2t_prgm) else s1exp_trdn(s1e, s2t_prf) // end of [if] ) : s2exp // end of [val] in list_cons ( SLABELED(lab, name, s2e), aux23(i+1, npf, ls1es, s2t_prf, s2t_prgm) ) (* end of [list_cons] *) end (* end of [list_cons] *) | list_nil () => list_nil () end // end of [aux23] in (* in of [local] *) fun s1exp_trup_tyrec ( s1e0: s1exp , knd: int, npf: int, ls1es: labs1explst ) : s2exp = let (* // val () = println! ("s1exp_trup_tyrec: s1e0 = ", s1e0); // val () = println! ("s1exp_trup_tyrec: knd = ", knd) val () = println! ("s1exp_trup_tyrec: npf = ", npf) // *) in // case+ knd of | TYRECKIND_flt => let var lin: int = 0 var prf: int = 0 and prgm: int = 0 val ls2es = aux01(0, npf, ls1es, lin, prf, prgm) // end of [val] val s2t_rec = ( s2rt_npf_lin_prf_prgm_boxed_labs2explst (npf, lin, prf, prgm, 0(*boxed*), ls2es) // s2rt_npf_lin_prf_prgm_boxed_labs2explst ) (* end of [val] *) in s2exp_tyrec_srt(s2t_rec, TYRECKINDflt0(), npf, ls2es) end // end of [TYRECKIND_flt] | TYRECKIND_box => let var lin: int = 0 var prf: int = 0 and prgm: int = 0 val ls2es = aux01(0, npf, ls1es, lin, prf, prgm) // end of [val] val s2t_rec = ( s2rt_npf_lin_prf_prgm_boxed_labs2explst (npf, lin, prf, prgm, 1(*boxed*), ls2es) // s2rt_npf_lin_prf_prgm_boxed_labs2explst ) (* end of [val] *) in s2exp_tyrec_srt (s2t_rec, TYRECKINDbox(), npf, ls2es) end // end of [TYRECKIND_box] | TYRECKIND_box_t => let val ls2es = aux23(0, npf, ls1es, s2rt_prop, s2rt_t0ype) // end of [val] in s2exp_tyrec_srt(s2rt_type, TYRECKINDbox(), npf, ls2es) end // end of [TYRECKIND_box_t] | TYRECKIND_box_vt => let val ls2es = aux23(0, npf, ls1es, s2rt_view, s2rt_vt0ype) // end of [val] in s2exp_tyrec_srt(s2rt_vtype, TYRECKINDbox(), npf, ls2es) end // end of [TYRECKIND_box_vt] | _ => let val ((*exited*)) = assertloc(false) in s2exp_t0ype_err() end (* end of [_] *) end // end of [s1exp_trup_tyrec] fun s1exp_trup_tyrec_ext ( s1e0: s1exp , name: string, npf: int, ls1es: labs1explst ) : s2exp = let var lin: int = 0 var prf: int = 0 and prgm: int = 0 val ls2es = aux01(0, npf, ls1es, lin, prf, prgm) // end of [val] val s2t_rec = ( s2rt_npf_lin_prf_prgm_boxed_labs2explst (npf, lin, prf, prgm, 0(*boxed*), ls2es) // s2rt_npf_lin_prf_prgm_boxed_labs2explst ) (* end of [val] *) in s2exp_tyrec_srt(s2t_rec, TYRECKINDflt_ext name, npf, ls2es) end // end of [s1exp_tyrec_ext_tr_up] end // end of [local] (* ****** ****** *) implement s1exp_trup(s1e0) = let // val loc0 = s1e0.s1exp_loc // (* // val () = ( println! ("s1exp_trup: s1e0 = ", s1e0) ) (* end of [val] *) // *) in // case+ s1e0.s1exp_node of (* case+ *) // | S1Eide (id) => let val sq = $SYN.the_s0taq_none in s1exp_trup_sqid (s1e0, sq, id) end // end of [S1Eide] | S1Esqid (sq, id) => s1exp_trup_sqid (s1e0, sq, id) // | S1Eint (i) => s2exp_int (i) | S1Eintrep (rep) => let val i = $INTINF.intinf_make_string (rep) in s2exp_intinf (i) // end of [val] end // end of [S1Eintrep] // | S1Echar (c) => s2exp_int_char (c) // HX: it is signed! // | S1Efloat (rep) => s2exp_float (rep) // HX: for exporting | S1Estring (str) => s2exp_string (str) // HX: for exporting // | S1Eextype (name, s1ess) => let val s2ess = list_map_fun (s1ess, s1explst_trdn_vt0ype) // end of [val] in s2exp_extype_srt (s2rt_vt0ype, name, (l2l)s2ess) end // end of [S1Eextype] | S1Eextkind (name, s1ess) => let val s2ess = list_map_fun (s1ess, s1explst_trdn_vt0ype) // end of [val] in s2exp_extkind_srt (s2rt_tkind, name, (l2l)s2ess) end // end of [S1Eextkind] // | S1Eapp _ => let typedef T = locs1explst viewtypedef TS = List_vt (T) var xs: TS = list_vt_nil () val s1opr = s1exp_app_unwind (s1e0, xs) in case+ :(xs: TS?) => s1opr.s1exp_node of (* case+ *) | S1Eide (id) => let val sq = $SYN.the_s0taq_none in s1exp_trup_app_sqid (s1e0, s1opr, sq, id, xs) end // end of [S1Eide] | S1Esqid (sq, id) => s1exp_trup_app_sqid (s1e0, s1opr, sq, id, xs) // end of [S1Esqid] | S1Eimp (fc, lin, prf, oefc) => s1exp_trup_arrow (s1e0, Some fc, lin>0, prf>0, oefc, xs) // end of [S1Eimp] | _ (*rest-of-s1exp*) => let val s2opr = s1exp_trup (s1opr) in s1exp_trup_app (s1e0, s1opr, s2opr, xs) end // end of [_(*rest*)] end (* end of [S1Eapp] *) | S1Elam ( s1ma, s1topt, s1e_body ) => let val s2vs = s1arglst_trup (s1ma.s1marg_arg) // end of [val] val (pfenv|()) = the_s2expenv_push_nil() val ((*added*)) = the_s2expenv_add_svarlst (s2vs) val s2e_body = ( case+ s1topt of | Some s1t => let val s2t = s1rt_tr(s1t) in s1exp_trdn (s1e_body, s2t) // end of [val] end // end of [Some] | None ((*void*)) => s1exp_trup (s1e_body) ) : s2exp // end of [val] val ((*popped*)) = the_s2expenv_pop_free (pfenv | (*none*)) in s2exp_lam (s2vs, s2e_body) end // end of [S1Elam] // | S1Eimp _ => let val () = prerr_interror_loc(loc0) val () = prerrln! ( ": s1exp_trup: S1Eimp: s1e0 = ", s1e0 ) (* end of [val] *) in $ERR.abort_interr{s2exp}((*reachable*)) end // end of [S1Eimp] // | S1Etop (knd, s1e) => s1exp_trup_top (knd, s1e) // end of [S1Etop] // | S1Elist (npf, s1es) => s1exp_trup_tytup_flt (s1e0, npf, s1es) // | S1Etyarr (s1e_elt, s1es_ind) => let val s2e_elt = s1exp_trdn_vt0ype (s1e_elt) val s2es_ind = s1explst_trdn_int (s1es_ind) in s2exp_tyarr (s2e_elt, s2es_ind) end // end of [S1Etyarr] | S1Etytup (knd, npf, s1es) => s1exp_trup_tytup (s1e0, knd, npf, s1es) | S1Etyrec (knd, npf, ls1es) => s1exp_trup_tyrec (s1e0, knd, npf, ls1es) | S1Etyrec_ext (name, npf, ls1es) => s1exp_trup_tyrec_ext (s1e0, name, npf, ls1es) // | S1Einvar _ => let val () = prerr_error2_loc(loc0) val () = prerrln! ( ": invariant type can only be assigned to a function argument." ) (* end of [val] *) val () = the_trans2errlst_add(T2E_s1exp_trup(s1e0)) in s2exp_s2rt_err () end // end of [S1Einvar] | S1Etrans _ => let val () = prerr_error2_loc(loc0) val () = prerrln! ( ": transitional type can only be assigned to a function argument." ) (* end of [val] *) val () = the_trans2errlst_add(T2E_s1exp_trup(s1e0)) in s2exp_s2rt_err () end // end of [S1Etrans] // | S1Euni (s1qs, s1e_scope) => let (* val () = println! ("s1exp_trup: S1Euni: s1e0 = ", s1e0) // end of [val] *) val (pfenv|()) = the_s2expenv_push_nil() val s2q = s1qualst_tr (s1qs) val s2e_scope = s1exp_trdn_impred s1e_scope val ((*popped*)) = the_s2expenv_pop_free (pfenv | (*none*)) // end of [val] // in s2exp_uni (s2q.s2qua_svs, s2q.s2qua_sps, s2e_scope) end // end of [S1Euni] | S1Eexi (knd, s1qs, s1e_scope) => let (* val () = println! ("s1exp_trup: S1Eexi: s1e0 = ", s1e0) // end of [val] *) // val () = if knd > 0 then { val () = prerr_error2_loc(loc0) val () = prerrln! ( ": incorrect use of the existential quantifier #[...]" ) (* end of [val] *) val () = the_trans2errlst_add(T2E_s1exp_trup(s1e0)) // end of [val] } (* end of [if] *) // end of [val] // val (pfenv|()) = the_s2expenv_push_nil() val s2q = s1qualst_tr (s1qs) val s2e_scope = s1exp_trdn_impred (s1e_scope) val ((*popped*)) = the_s2expenv_pop_free (pfenv | (*none*)) in s2exp_exi (s2q.s2qua_svs, s2q.s2qua_sps, s2e_scope) end // end of [S1Eexi] // | S1Eann (s1e, s1t) => let val s2t = s1rt_tr (s1t) in s1exp_trdn (s1e, s2t) end // end of [S1Eann] // | S1Ed2ctype(d2ctp) => S1Ed2ctype_tr (d2ctp) // | S1Eerr((*error*)) => s2exp_s2rt_err((*void*)) // (* | _ (*rest-of-s1exp*) => let val () = prerr_interror_loc(loc0) val () = prerrln! (": NYI: s1exp_tr: s1e0 = ", s1e0) in $ERR.abort_interr((*unreachable*)) end // end of [_(*rest-of-s1exp*)] *) // end // end of [s1exp_trup] implement s1exp_trup_hnfize (s1e) = s2exp_hnfize (s1exp_trup s1e) (* ****** ****** *) implement s1explst_trup (s1es) = l2l (list_map_fun (s1es, s1exp_trup)) // end of [s1explst_trup] implement s1explst_trup_hnfize (s1es) = l2l (list_map_fun (s1es, s1exp_trup_hnfize)) // end of [s1explst_trup] (* ****** ****** *) implement s1expopt_trup (s1eopt) = case+ s1eopt of | Some s1e => Some (s1exp_trup s1e) | None () => None () // end of [s1expopt_trup] (* ****** ****** *) fun s1exp_trdn_lam ( s1e_lam: s1exp, s2t_fun: s2rt ) : s2exp = let // fun auxerr ( s1e: s1exp, s2t1: s2rt, s2t2: s2rt ) : void = { val () = prerr_error2_loc (s1e.s1exp_loc) val () = filprerr_ifdebug "s1exp_trdn_lam" val () = prerr ": the body of the static function is given the sort [" val () = prerr_s2rt (s2t1) val () = prerrln! ("] but it is expected to be of the sort [", s2t2, "].") val () = the_trans2errlst_add (T2E_s1exp_trdn (s1e_lam, s2t_fun)) } // end of [auxerr] // val-S1Elam ( s1ma, s1topt_res, s1e_body ) = s1e_lam.s1exp_node val-S2RTfun (s2ts_arg, s2t_res) = s2t_fun // var err: int = 0 val s2vs = s1marg_trdn (s1ma, s2ts_arg) // val s2t_res = (case+ s1topt_res of | Some s1t => s2t where { val s2t = s1rt_tr (s1t) val okay = s2rt_ltmat1 (s2t, s2t_res) val () = if ~okay then auxerr (s1e_lam, s2t, s2t_res) } // end of [Some] | None () => s2t_res ) : s2rt // end of [val] // val (pfenv | ()) = the_s2expenv_push_nil () val () = the_s2expenv_add_svarlst (s2vs) val s2e_body = s1exp_trdn (s1e_body, s2t_res) val () = the_s2expenv_pop_free (pfenv | (*none*)) // in s2exp_lam_srt (s2t_fun, s2vs, s2e_body) end // end of [s2exp_trdn_lam] implement s2exp_trdn (loc0, s2e, s2t) = let val s2t_new = s2e.s2exp_srt val test = s2rt_ltmat1 (s2t_new, s2t) in // if test then s2e else let val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug "s2exp_trdn" // for debugging // end of [val] val () = prerr ": the static expression is of the sort [" val () = prerr_s2rt (s2t_new) val () = prerrln! ("] but it is expected to be of the sort [", s2t, "].") val () = the_trans2errlst_add (T2E_s2exp_trdn (loc0, s2e, s2t)) in s2exp_errexp(s2t) end (* end of [else] *) // end // end of [s2exp_trdn] implement s1exp_trdn (s1e, s2t) = let // fun auxerr // for S2Eextype ( s1e: s1exp, s2t: s2rt ) : void = { val () = prerr_error2_loc (s1e.s1exp_loc) val () = filprerr_ifdebug ("s1exp_trdn") val () = prerrln! (": the static term (extype) cannot be given the sort [", s2t, "].") val () = the_trans2errlst_add (T2E_s1exp_trdn (s1e, s2t)) } (* end of [auxerr] *) // in // case+ (s1e.s1exp_node, s2t) of // | (S1Elam _, S2RTfun _) => s1exp_trdn_lam (s1e, s2t) // | (S1Eextype (name, s1ess), _) => if s2rt_ltmat1 (s2t, s2rt_vt0ype) then let val s2ess = list_map_fun (s1ess, s1explst_trdn_vt0ype) in s2exp_extype_srt (s2t, name, (l2l)s2ess) end else let val () = auxerr (s1e, s2t) in s2exp_errexp(s2t) end // end of [if] // | (_, _) => let val s2e = s1exp_trup (s1e) in s2exp_trdn (s1e.s1exp_loc, s2e, s2t) end (* end of [_] *) // end // end of [s1exp_trdn] (* ****** ****** *) implement s1exp_trdn_int (s1e) = s1exp_trdn (s1e, s2rt_int) implement s1exp_trdn_addr (s1e) = s1exp_trdn (s1e, s2rt_addr) implement s1exp_trdn_bool (s1e) = s1exp_trdn (s1e, s2rt_bool) implement s1exp_trdn_t0ype (s1e) = s1exp_trdn (s1e, s2rt_t0ype) implement s1exp_trdn_vt0ype (s1e) = s1exp_trdn (s1e, s2rt_vt0ype) (* ****** ****** *) implement s1exp_trdn_impred (s1e) = let // val s2e = s1exp_trup (s1e) val s2t = s2rt_delink (s2e.s2exp_srt) val isimp = s2rt_is_impred (s2t) // in // if isimp then s2e else let val () = prerr_error2_loc (s1e.s1exp_loc) val () = filprerr_ifdebug "s1exp_trdn_impred" val () = prerr ": the static expression needs to be impredicative" val () = ( prerr " but is assigned the sort ["; prerr_s2rt (s2t); prerr "]." ) (* end of [val] *) val () = prerr_newline () val () = the_trans2errlst_add (T2E_s1exp_trdn_impred (s1e)) in s2exp_errexp(s2t) end (* end of [else] *) // end // end of [s1exp_trdn_impred] (* ****** ****** *) implement s1explst_trdn_int (s1es) = l2l (list_map_fun (s1es, s1exp_trdn_int)) // end of [s1explst_trdn_int] implement s1explst_trdn_addr (s1es) = l2l (list_map_fun (s1es, s1exp_trdn_addr)) // end of [s1explst_trdn_addr] implement s1explst_trdn_bool (s1es) = l2l (list_map_fun (s1es, s1exp_trdn_bool)) // end of [s1explst_trdn_bool] implement s1explst_trdn_vt0ype (s1es) = l2l (list_map_fun (s1es, s1exp_trdn_vt0ype)) // end of [s1explst_trdn_vt0ype] implement s1explst_trdn_impred (s1es) = l2l (list_map_fun (s1es, s1exp_trdn_impred)) // end of [s1explst_trdn_impred] (* ****** ****** *) implement s1explst_trdn_err (s1es, s2ts, serr) = begin // case+ s1es of | list_cons (s1e, s1es) => ( case+ s2ts of | list_cons (s2t, s2ts) => let val s2e = s1exp_trdn (s1e, s2t) val s2es = s1explst_trdn_err (s1es, s2ts, serr) in list_cons (s2e, s2es) end // end of [list_cons] | list_nil () => let val () = serr := serr + 1 in list_nil () end // end of [list_nil] ) | list_nil () => list_nil () where { val () = (case+ s2ts of | list_cons _ => (serr := serr - 1) | list_nil () => () ) : void // end of [val] } // end of [list_nil] // end // end of [s1explst_trdn_err] (* ****** ****** *) implement s1exp_trdn_arg_impred (s1e, w1ts) = s2e where { // val s2e = s1exp_trup_arg (s1e, w1ts) val s2t = s2e.s2exp_srt val s2t = s2rt_delink (s2t) val isimp = s2rt_is_impred (s2t) // val () = if not(isimp) then let val () = prerr_error2_loc (s1e.s1exp_loc) val () = filprerr_ifdebug ("s1exp_trdn_arg_impred") val () = prerr ": the static expression needs to be impredicative" val () = prerrln! (" but it is assigned the sort [", s2t, "].") in the_trans2errlst_add (T2E_s1exp_trdn_impred (s1e)) end // end of [val] // } // end of [s1exp_trdn_arg_impred] (* ****** ****** *) implement witht1ype_tr (w1t) = ( case+ w1t of | WITHT1YPEsome (knd, s1e) => let val s2t = s2rt_impred (knd) in Some (s1exp_trdn (s1e, s2t)) end // end of [WiTHT1YPEsome] | WITHT1YPEnone () => None () ) // end of [witht1ype_tr] (* ****** ****** *) implement s1qualst_tr (s1qs) = let // fun loop ( s1qs: s1qualst , s2vs: &s2varlst_vt , s2ps: &s2explst_vt ) : void = let // fun auxsrt ( s2t1: s2rt , ids: i0delst , s2vs: &s2varlst_vt ) : void = case+ ids of | list_cons (id, ids) => let val s2v = s2var_make_id_srt (id.i0de_sym, s2t1) val () = the_s2expenv_add_svar (s2v) val () = s2vs := list_vt_cons (s2v, s2vs); in auxsrt (s2t1, ids, s2vs) end // end of [list_cons] | list_nil () => () (* end of [auxsrt] *) // fun auxsub1 ( s2v1: s2var , s2ps1: s2explst , s2v: s2var , s2ps: &s2explst_vt ) : void = case+ s2ps1 of | list_cons (s2p1, s2ps1) => let val s2p = s2exp_alpha (s2v1, s2v, s2p1) val () = s2ps := list_vt_cons (s2p, s2ps) in auxsub1 (s2v1, s2ps1, s2v, s2ps) end // end of [list_cons] | list_nil () => () (* end of [auxsub1] *) // fun auxsub2 ( s2v1: s2var , s2t1: s2rt , s2ps1: s2explst , ids: i0delst , s2vs: &s2varlst_vt , s2ps: &s2explst_vt ) : void = case+ ids of | list_cons (id, ids) => let val s2v = s2var_make_id_srt (id.i0de_sym, s2t1) // end of [val] val () = the_s2expenv_add_svar (s2v) val () = s2vs := list_vt_cons (s2v, s2vs) val () = auxsub1 (s2v1, s2ps1, s2v, s2ps) in auxsub2 (s2v1, s2t1, s2ps1, ids, s2vs, s2ps) end // end of [list_cons] | list_nil () => () (* end of [auxsub2] *) // in // case+ s1qs of | list_cons (s1q, s1qs) => begin case+ s1q.s1qua_node of | S1Qprop s1p => let val s2p = s1exp_trdn_bool (s1p) val () = s2ps := list_vt_cons (s2p, s2ps) in loop (s1qs, s2vs, s2ps) end | S1Qvars (ids, s1te) => let val s2te = s1rtext_tr (s1te) in case+ s2te of | S2TEsrt s2t1 => let val () = auxsrt (s2t1, ids, s2vs) in loop (s1qs, s2vs, s2ps) end // end of [S2TEsrt] | S2TEsub (s2v1, s2t1, s2ps1) => let val () = auxsub2 (s2v1, s2t1, s2ps1, ids, s2vs, s2ps) in loop (s1qs, s2vs, s2ps) end (* end of [S2TEsub] *) | S2TEerr () => let val s2t1 = s2rt_err () val () = auxsrt (s2t1, ids, s2vs) in loop (s1qs, s2vs, s2ps) end (* end of [S2TEerr] *) end // end of [S1Qvars] end // end of [list_cons] | list_nil () => () // end // end of [loop] // var s2vs : s2varlst_vt = list_vt_nil () var s2ps : s2explst_vt = list_vt_nil () // val () = loop (s1qs, s2vs, s2ps) // val s2vs = list_vt_reverse (s2vs) val s2ps = list_vt_reverse (s2ps) // in (* in of [let] *) // s2qua_make ((l2l)s2vs, (l2l)s2ps) // end // end of [s1qualst_tr] (* ****** ****** *) implement q1marg_tr (q1ma) = s1qualst_tr (q1ma.q1marg_arg) implement q1marg_tr_dec (q1ma) = let // val s2q = s1qualst_tr (q1ma.q1marg_arg) // in // if list_is_nil (s2q.s2qua_sps) then s2q else let // val loc = q1ma.q1marg_loc // val () = prerr_error3_loc (loc) // val () = filprerr_ifdebug "q1marg_tr_dec" // val () = prerrln! ": template arguments cannot be constrained." val () = the_trans2errlst_add (T2E_q1marg_tr_dec (q1ma)) // in s2qua_make (s2q.s2qua_svs, list_nil) // HX: sps is discarded end // end of [if] // end // end of [q1marg_tr_dec] (* ****** ****** *) implement s1rtext_tr (s1te0) = let (* val () = print "s1rtext_tr: s1te0 = " val () = fprint_s1rtext (stdout_ref, s1te0) val () = fprint_newline (stdout_ref) *) fun auxerr ( s1t: s1rt, q: s0rtq, id: symbol ) : void = let // val () = prerr_error2_loc (s1t.s1rt_loc) val () = filprerr_ifdebug "s1rtext_tr" // for debugging // val () = prerr ": the identifier ["; val () = ($SYN.prerr_s0rtq(q); $SYM.prerr_symbol(id)) val () = prerrln! "] refers to an unrecognized sort."; // in the_trans2errlst_add (T2E_s1rtext_tr (s1te0)) end // end of [auxerr] // in // case+ s1te0.s1rtext_node of // of [case+] | S1TEsrt (s1t) => ( case+ s1t.s1rt_node of | S1RTqid (q, id) => let val ans = the_s2rtenv_find_qua (q, id) in case+ ans of | ~Some_vt s2te => s2te | ~None_vt () => let val () = auxerr (s1t, q, id) in S2TEerr () end // end of [None_vt] end (* end of [S1RTqid] *) | _ => S2TEsrt (s1rt_tr s1t) ) // end of [S1TEsrt] | S1TEsub (id, s1te, s1ps) => let val s2te = s1rtext_tr s1te val s2t = (case+ s2te of | S2TEsrt s2t => s2t | S2TEsub (_, s2t, _) => s2t | S2TEerr () => s2rt_err () ) : s2rt // end of [val] val s2v_new = s2var_make_id_srt (id, s2t) val (pfenv | ()) = the_s2expenv_push_nil () val () = the_s2expenv_add_svar (s2v_new) val s2ps = s1explst_trdn_bool (s1ps) val () = the_s2expenv_pop_free (pfenv | (*none*)) val s2ps = ( case+ s2te of | S2TEsrt _ => s2ps | S2TEsub (s2v1, _, s2ps1) => begin list_append (s2ps, s2explst_alpha (s2v1, s2v_new, s2ps1)) end // end of [S2TEsub] | S2TEerr () => s2ps ) : s2explst // end of [val] in S2TEsub (s2v_new, s2t, s2ps) end // end of [S1TEsub] // end of [case] end // end of [s1rtext_tr] (* ****** ****** *) implement s1vararg_tr (x) = case+ x of | S1VARARGone (loc) => S2VARARGone () | S1VARARGall (loc) => S2VARARGall () | S1VARARGseq (loc, s1as) => let val s2vs = s1arglst_trup (s1as) in S2VARARGseq (s2vs) end // end of [S1VARARGseq] // end of [s1vararg_tr] implement s1exparg_tr (x) = let val loc = x.s1exparg_loc in // case+ x.s1exparg_node of | S1EXPARGone () => s2exparg_one (loc) | S1EXPARGall () => s2exparg_all (loc) | S1EXPARGseq (s1es) => s2exparg_seq (loc, s1explst_trup (s1es)) (* end of [S1EXPARGseq] *) // end // end of [s1exparg_tr] implement s1exparglst_tr (xs) = let val xs = list_map_fun (xs, s1exparg_tr) in (l2l)xs end // end of [s1exparglst_tr] (* ****** ****** *) implement t1mpmarg_tr (x) = let val loc = x.t1mpmarg_loc val s1es = x.t1mpmarg_arg val s2es = s1explst_trup (s1es) in t2mpmarg_make (loc, s2es) end // end of [t1mpmarg_tr] implement t1mpmarglst_tr (xs) = let val xs = list_map_fun (xs, t1mpmarg_tr) in (l2l)xs end // end of [t1mpmarglst_tr] (* ****** ****** *) implement d1atcon_tr ( s2c, islin, isprf, s2vss0, fil, d1c ) = let // fun auxerr1 ( d1c: d1atcon, id: symbol, serr: int ) : void = { // val loc = d1c.d1atcon_loc // val () = prerr_error2_loc (loc) val () = prerr ": the constructor [" // val () = $SYM.prerr_symbol (id) // val () = if serr < 0 then prerrln! "] is expected to be given more indexes." // val () = if serr > 0 then prerrln! "] is expected to be given fewer indexes." // val () = the_trans2errlst_add(T2E_d1atcon_tr(d1c)) // } (* end of [auxerr1] *) // fun auxerr2 ( d1c: d1atcon, id: symbol ) : void = { // val loc = d1c.d1atcon_loc // val () = prerr_error2_loc (loc) // val () = prerr! (": the constructor [", id) val () = prerrln! "] needs some indexes (but is given none)." // val () = the_trans2errlst_add (T2E_d1atcon_tr(d1c)) // } (* end of [auxerr2] *) // fun auxerr3 ( d1c: d1atcon, id: symbol ) : void = { val () = prerr_error2_loc (d1c.d1atcon_loc) val () = prerr! (": the constructor [", id) val () = prerrln! "] needs no indexes (but is given some)." val () = the_trans2errlst_add (T2E_d1atcon_tr(d1c)) } // end of [auxerr3] // val (pfenv|()) = the_s2expenv_push_nil() // val () = list_app_fun (s2vss0, the_s2expenv_add_svarlst) // var s2qs: List_vt (s2qua) = list_map_fun (d1c.d1atcon_qua, q1marg_tr) // val () = let fun aux ( s2qs: &List_vt (s2qua), xs: s2varlstlst ) : void = case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = aux (s2qs, xs) val s2q = s2qua_make (x, list_nil) in s2qs := list_vt_cons (s2q, s2qs) end // end of [list_cons] // end of [aux] in aux (s2qs, s2vss0) end // end of [val] val s2qs = l2l(s2qs) // val indopt_s2ts = let val s2t_fun = s2cst_get_srt(s2c) in case+ s2t_fun of S2RTfun (s2ts, _) => Some s2ts | _ => None () end : s2rtlstopt // end of [val] // val npf = d1c.d1atcon_npf and s1es_arg = d1c.d1atcon_arg // val s2es_arg = let val s2t_pfarg = ( if islin then s2rt_view else s2rt_prop ) : s2rt // end of [val] val s2t_arg = ( if isprf then s2t_pfarg else (if islin then s2rt_vt0ype else s2rt_t0ype) ) : s2rt // end of [val] fun aux ( i: int, s1es: s1explst ) : s2explst = case+ s1es of | list_cons (s1e, s1es) => let val s2t = ( if i < npf then s2t_pfarg else s2t_arg ) : s2rt val s2e = s1exp_trdn (s1e, s2t) in list_cons (s2e, aux (i+1, s1es)) end // end of [cons] | list_nil () => list_nil () // end of [list_nil] // end of [aux] in aux (0, s1es_arg) end // end of [val] // val id = d1c.d1atcon_sym val indopt_s1es = d1c.d1atcon_ind val indopt_s2es = ( // case+ ( indopt_s1es, indopt_s2ts ) of // of [case+] | (None (), None ()) => None () | (Some s1es, Some s2ts) => let var serr: int = 0 val s2es = s1explst_trdn_err (s1es, s2ts, serr) val () = if (serr != 0) then auxerr1 (d1c, id, serr) in Some (s2es) end // end of [Some, Some] | (None (), Some s2ts) => let val s2vs = ( case+ s2vss0 of | list_nil () => list_nil () | list_cons (s2vs, _) => s2vs ) : s2varlst // end of [val] val sgn = list_length_compare(s2vs, s2ts) // end of [val] val s2es = ( if sgn = 0 then let val s2es = list_map_fun(s2vs, s2exp_var) in (l2l)s2es end else let // sgn < 0 val () = auxerr2 (d1c, id) val s2es = list_map_fun(s2ts, s2exp_errexp) in (l2l)s2es // HX: placeholder for continuing end // end of [if] ) : s2explst // end of [val] in Some (s2es) end // end of [None, Some] | (Some _, None ()) => let val () = auxerr3 (d1c, id) in None () end // end of [Some, None] // ) : s2explstopt // end of [val] // val ((*popped*)) = the_s2expenv_pop_free(pfenv | (*none*)) // val loc0 = d1c.d1atcon_loc val vwtp = ( if isprf then 0 else if islin then 1 else 0 ) : int // end of [val] val d2c = d2con_make (loc0, fil, id, s2c, vwtp, s2qs, npf, s2es_arg, indopt_s2es) // end of [val] val () = the_d2expenv_add_dcon (d2c) // val () = if not(isprf) then { val () = the_s2expenv_add_datcontyp(d2c) // struct val () = if islin then the_s2expenv_add_datconptr(d2c) // unfold } // end of [if] // end of [val] // in d2c (*d2con*) end // end of [d1atcon_tr] (* ****** ****** *) implement stasub_extend_sarglst_svarlst (sub, s1as, s2vs, serr) = let // fun loop ( s1as: s1arglst , s2vs: s2varlst , sub: &stasub , s2vs1: s2varlst_vt , serr: &int ) : s2varlst_vt = case+ (s1as, s2vs) of | (s1a :: s1as, s2v :: s2vs) => let val s2t0 = s2var_get_srt (s2v) val s2v1 = s1arg_trdn (s1a, s2t0) val s2e1 = s2exp_var (s2v1) val () = stasub_add (sub, s2v, s2e1) val s2vs1 = list_vt_cons (s2v1, s2vs1) in loop (s1as, s2vs, sub, s2vs1, serr) end | (list_nil (), list_nil ()) => s2vs1 | (_ :: _, list_nil ()) => let val () = serr := serr + 1 in s2vs1 end // end of [nil, ::] | (list_nil _, _ :: _) => let val () = serr := serr - 1 in s2vs1 end // end of [::, nil] // val s2vs1 = loop (s1as, s2vs, sub, list_vt_nil, serr) in list_vt_reverse (s2vs1) end // end of [stasub_extend_sarglst_svarlst] (* ****** ****** *) implement s1vararg_bind_svarlst (s1va, s2vs, serr) = let (* val () = ( print "s1vararg_bind_svarlst: s1va = "; print_s1vararg (s1va); print_newline (); print "s1vararg_bind_svarlst: s2vs = "; print_s2varlst (s2vs); print_newline (); ) // end of [val] *) in // case+ s1va of | S1VARARGone (loc) => let var sub = stasub_make_nil () val s2vs1 = stasub_extend_svarlst (sub, s2vs) in (sub, s2vs1) end (* end of [S1VARARGone] *) | S1VARARGall (loc) => let var sub = stasub_make_nil () val s2vs1 = stasub_extend_svarlst (sub, s2vs) in (sub, s2vs1) end (* end of [S1VARARGone] *) | S1VARARGseq (locarg, s1as) => let var sub = stasub_make_nil () val s2vs1 = stasub_extend_sarglst_svarlst (sub, s1as, s2vs, serr) in (sub, s2vs1) end // end of [S1VARARGseq] // end // end of [s1vararg_bind_svarlst] (* ****** ****** *) (* end of [pats_trans2_staexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_solve.sats0000644000175000017500000001354713431250607022204 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) staload LOC = "./pats_location.sats" typedef location = $LOC.location (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) fun label_equal_solve_err ( loc0: location , lab1: label, lab2: label, err: &int ) : void // end of [label_equal_solve_err] fun stamp_equal_solve_err ( loc0: location , stamp1: stamp, stamp2: stamp, err: &int ) : void // end of [stamp_equal_solve_err] (* ****** ****** *) // fun funclo_equal_solve ( loc0: location, fc1: funclo, fc2: funclo ) : int(*err*) fun funclo_equal_solve_err ( loc0: location, fc1: funclo, fc2: funclo, err: &int ) : void // end of [funclo_equal_solve_err] // (* ****** ****** *) // fun clokind_equal_solve_err ( loc0: location, knd1: int, knd2: int, err: &int ) : void // end of [clokind_equal_solve_err] // (* ****** ****** *) // fun linearity_equal_solve ( loc: location, lin1: int, lin2: int ) : int(*err*) fun linearity_equal_solve_err ( loc0: location, lin1: int, lin2: int, err: &int ) : void // end of [linearity_equal_solve_err] // (* ****** ****** *) // fun pfarity_equal_solve ( loc0: location, npf1: int, npf2: int ) : int(*err*) fun pfarity_equal_solve_err ( loc0: location, npf1: int, npf2: int, err: &int ) : void // end of [pfarity_equal_solve_err] // (* ****** ****** *) // fun s2eff_subeq_solve ( loc0: location, s2fe1: s2eff, s2fe2: s2eff ) : int(*err*) fun s2eff_subeq_solve_err ( loc0: location, s2fe1: s2eff, s2fe2: s2eff, err: &int ) : void // end of [s2eff_subeq_solve_err] // (* ****** ****** *) // fun boxity_equal_solve_err ( loc0: location , knd1: int, knd2: tyreckind, err: &int ) : void // end of [boxity_equal_solve_err] // fun tyreckind_equal_solve_err ( loc0: location , knd1: tyreckind, knd2: tyreckind, err: &int ) : void // end of [tyreckind_equal_solve_err] // (* ****** ****** *) // fun refval_equal_solve_err ( loc0: location, knd1: int, knd2: int, err: &int ) : void // end of [refval_equal_solve_err] // (* ****** ****** *) // fun s2hnf_equal_solve ( loc0: location, s2f1: s2hnf, s2f2: s2hnf ) : int(*err*) // end of [s2hnf_equal_solve] fun s2exp_equal_solve ( loc0: location, s2e1: s2exp, s2e2: s2exp ) : int(*err*) // end of [s2exp_equal_solve] // (* ****** ****** *) // fun s2hnf_equal_solve_err ( loc0: location, s2f1: s2hnf, s2f2: s2hnf, err: &int ) : void // end of [s2hnf_equal_solve_err] // fun s2exp_equal_solve_err ( loc0: location, s2e1: s2exp, s2e2: s2exp, err: &int ) : void // end of [s2exp_equal_solve_err] // (* ****** ****** *) // fun s2explst_equal_solve_err ( loc0: location , s2es1: s2explst, s2es2: s2explst, err: &int ) : void // end of [s2explst_equal_solve_err] fun labs2explst_equal_solve_err ( loc0: location , ls2es1: labs2explst, ls2es2: labs2explst, err: &int ) : void // end of [labs2explst_equal_solve_err] fun wths2explst_equal_solve_err ( loc0: location , ws2es1: wths2explst, ws2es2: wths2explst, err: &int ) : void // end of [wths2explst_equal_solve_err] // (* ****** ****** *) // fun s2hnf_tyleq_solve (loc0: location, s2f1: s2hnf, s2f2: s2hnf): int(*err*) // end of [s2hnf_tyleq_solve] fun s2exp_tyleq_solve (loc0: location, s2e1: s2exp, s2e2: s2exp): int(*err*) // end of [s2exp_tyleq_solve] // (* ****** ****** *) // fun s2hnf_tyleq_solve_err ( loc0: location, s2f1: s2hnf, s2f2: s2hnf, err: &int ): void // end of [s2hnf_tyleq_solve] // (* ****** ****** *) // fun s2exp_tyleq_solve_err ( loc0: location, s2e1: s2exp, s2e2: s2exp, err: &int ) : void // end of [s2exp_tyleq_solve_err] fun s2explst_tyleq_solve_err ( loc0: location , s2es1: s2explst, s2es2: s2explst, err: &int ) : void // end of [s2explst_tyleq_solve_err] fun labs2explst_tyleq_solve_err ( loc0: location , ls2es1: labs2explst, ls2es2: labs2explst, err: &int ) : void // end of [labs2explst_tyleq_solve_err] fun wths2explst_tyleq_solve_err ( loc0: location , ws2es1: wths2explst, ws2es2: wths2explst, err: &int ) : void // end of [wths2explst_tyleq_solve_err] (* ****** ****** *) // // HX: handling abstract types // fun s2explst_tyleq_solve_argsrtlst_err ( loc: location // HX: containing info on , argsrts: syms2rtlst // argument variances , s2es1: s2explst, s2es2: s2explst, err: &int ) : void // end of [s2explst_tyleq_solve_argvarlst_err] // (* ****** ****** *) // fun s2hnf_hypequal_solve (loc: location, s2f1: s2hnf, s2f2: s2hnf): void fun s2exp_hypequal_solve (loc: location, s2e1: s2exp, s2e2: s2exp): void fun s2explst_hypequal_solve (loc: location, s2es1: s2explst, s2es2: s2explst): void // (* ****** ****** *) (* end of [pats_staexp2_solve.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_hidynexp_util.dats0000644000175000017500000003702513431250607022251 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: September, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "./prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> ((*void*)) = prerr "pats_hidynexp_util" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LAB = "./pats_label.sats" overload = with $LAB.eq_label_label (* ****** ****** *) staload LOC = "./pats_location.sats" overload print with $LOC.print_location (* ****** ****** *) staload S2E = "./pats_staexp2.sats" staload D2E = "./pats_dynexp2.sats" overload = with $S2E.eq_d2con_d2con overload = with $D2E.eq_d2var_d2var (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) // implement d2cst_get2_hisexp (d2c) = $UN.cast{hisexpopt}($D2E.d2cst_get_hisexp(d2c)) implement d2cst_set2_hisexp (d2c, opt) = $D2E.d2cst_set_hisexp (d2c, $UN.cast{$D2E.hisexpopt}(opt)) // (* ****** ****** *) implement $D2E.d2cst_is_fun (d2c) = let // val-Some (hse) = d2cst_get2_hisexp (d2c) // in // case+ hse.hisexp_node of | HSEfun (fc, _arg, _res) => ( case+ fc of FUNCLOfun () => true | _ => false ) // end of [HSEfun] | _ => false // end of [_] // end // end of [$D2E.d2cst_is_fun] (* ****** ****** *) implement d2cst_get2_type_arg (d2c) = let // val-Some(hse) = d2cst_get2_hisexp (d2c) // in // case+ hse.hisexp_node of | HSEfun ( _(*fc*), _arg, _(*res*) ) => _arg | _ => let val () = prerr_interror () val ( ) = ( prerrln! (": d2cst_get_type_arg: hse = ", hse) ) // end of [val] val () = assertloc (false) in exit (1) // HX: this is deadcode end (* end of [_] *) // end // end of [d2cst_get2_type_arg] implement d2cst_get2_type_res (d2c) = let // val-Some(hse) = d2cst_get2_hisexp (d2c) // in // case+ hse.hisexp_node of | HSEfun ( _(*fc*), _(*arg*), _res ) => _res | _ => let val () = prerr_interror () val ( ) = ( prerrln! (": d2cst_get_type_arg: hse = ", hse) ) // end of [val] val () = assertloc (false) in exit (1) // HX: this is deadcode end (* end of [_] *) // end // end of [d2cst_get_type_res] (* ****** ****** *) // implement d2var_get2_hisexp (d2v) = $UN.cast{hisexpopt}($D2E.d2var_get_hisexp(d2v)) implement d2var_set2_hisexp (d2v, opt) = $D2E.d2var_set_hisexp (d2v, $UN.cast{$D2E.hisexpopt}(opt)) // (* ****** ****** *) implement d2cst_get2_funclo (d2c) = let val opt = d2cst_get2_hisexp (d2c) in // case+ opt of | Some (hse) => ( case+ hse.hisexp_node of | HSEfun (fc, _, _) => Some_vt (fc) | _ => None_vt () ) | None () => None_vt () // end // end of [d2cst_get2_funclo] (* ****** ****** *) implement d2var_get2_funclo (d2v) = let val opt = d2var_get2_hisexp (d2v) in // case+ opt of | Some (hse) => ( case+ hse.hisexp_node of | HSEfun (fc, _, _) => Some_vt (fc) | _ => None_vt () ) | None () => None_vt () // end // end of [d2var_get2_funclo] (* ****** ****** *) implement hipat_is_wild (hip) = let in // case+ hip.hipat_node of | HIPany _ => true | HIPvar _ => true | HIPann (hip, _) => hipat_is_wild (hip) | HIPrefas (_, hip) => hipat_is_wild (hip) | _ => false // end // end of [hipat_is_wild] implement hipatlst_is_wild (hips) = list_forall_fun (hips, hipat_is_wild) // end of [hipatlst_is_wild] implement labhipatlst_is_wild (lhips) = let // fun labhipat_is_wild (lhip: labhipat): bool = let val LABHIPAT (_, hip) = lhip in hipat_is_wild (hip) end // end of [labhipat_is_wild] // in list_forall_fun (lhips, labhipat_is_wild) end // end of [labhipatlst_is_wild] (* ****** ****** *) implement hipat_subtest (hip1, hip2) = let // (* val () = ( println! ("hipat_subtest: hip1 = ", hip1); println! ("hipat_subtest: hip2 = ", hip2); ) // end of [val] *) // val hipn1 = hip1.hipat_node val hipn2 = hip2.hipat_node // in // case+ (hipn1, hipn2) of // | (_, HIPany _) => true | (_, HIPvar _) => true | (_, HIPann (hip2, _)) => hipat_subtest (hip1, hip2) | (_, HIPrefas (_, hip2)) => hipat_subtest (hip1, hip2) // | (HIPann (hip1, _), _) => hipat_subtest (hip1, hip2) | (HIPrefas (_, hip1), _) => hipat_subtest (hip1, hip2) // | (HIPcon (_, d2c1, _, lxs1), _) => ( case+ hipn2 of | HIPcon(_, d2c2, _, lxs2) => ( if d2c1 = d2c2 then labhipatlst_subtest (lxs1, lxs2) else false // end of [if] ) | HIPcon_any(_, d2c2) => d2c1 = d2c2 | _ (*non-HIPcon*) => false ) | (HIPcon_any(_, d2c1), _) => ( case+ hipn2 of | HIPcon(_, d2c2, _, lxs2) => if d2c1 = d2c2 then labhipatlst_is_wild (lxs2) else false | HIPcon_any(_, d2c2) => d2c1 = d2c2 | _ (*non-HIPcon*) => false ) // | (HIPint i1, _) => ( case+ hipn2 of HIPint i2 => i1 = i2 | _ => false ) | (HIPbool b1, _) => ( case+ hipn2 of HIPbool b2 => b1 = b2 | _ => false ) | (HIPchar c1, _) => ( case+ hipn2 of HIPchar c2 => c1 = c2 | _ => false ) | (HIPstring str1, _) => ( case+ hipn2 of | HIPstring str2 => str1 = str2 | _ => false ) | (HIPfloat f1, _) => ( case+ hipn2 of HIPfloat f2 => f1 = f2 | _ => false ) // | (HIPempty((*void*)), _) => ( case+ hipn2 of HIPempty((*void*)) => true | _ => false ) // (* // // HX-2014-07: [HIPlst] is no longer in use // | (HIPlst (_, xs1), _) => ( case+ hipn2 of | HIPlst (_, xs2) => hipatlst_subtest (xs1, xs2) | _ => false ) *) // | (HIPrec(_, _, lxs1, _), _) => ( case+ hipn2 of | HIPrec(_, _, lxs2, _) => labhipatlst_subtest(lxs1, lxs2) | _ => false ) // | (_, _) (*rest-of-hipat-hipat*) => false // end // end of [hipat_subtest] (* ****** ****** *) implement hipatlst_subtest (xs1, xs2) = let in // case+ xs1 of | list_cons (x1, xs1) => ( case+ xs2 of | list_cons (x2, xs2) => ( if hipat_subtest (x1, x2) then hipatlst_subtest (xs1, xs2) else false // end of [if] ) | list_nil () => false ) | list_nil () => ( case+ xs2 of list_cons _ => false | list_nil () => true ) // end // end of [hipatlst_subtest] (* ****** ****** *) local fun labhipat_subtest ( lx1: labhipat, lx2: labhipat ) : bool = let // val+LABHIPAT (l1, x1) = lx1 val+LABHIPAT (l2, x2) = lx2 // in if l1 = l2 then hipat_subtest (x1, x2) else false end // end of [labhipat_subtest] in (* in of [local] *) implement labhipatlst_subtest (lxs1, lxs2) = let in // case+ lxs1 of | list_cons (lx1, lxs1) => ( case+ lxs2 of | list_cons (lx2, lxs2) => ( if labhipat_subtest (lx1, lx2) then labhipatlst_subtest (lxs1, lxs2) else false // end of [if] ) | list_nil () => false ) | list_nil () => ( case+ lxs2 of list_cons _ => false | list_nil () => true ) // end // end of [labhipatlst_subtest] end // end of [local] (* ****** ****** *) // implement hidexp_is_empty (x0) = let (* val () = println! ( "hidexp_is_empty: x0 = ", x0 ) (* println! *) *) in // case+ x0.hidexp_node of (* case+ *) | HDEempty() => true | HDEfoldat() => true | HDEseq(hdes) => hidexplst_isall_empty(hdes) | _ (*rest-of-hidexp*) => false // end // end of [hidexp_is_empty] // implement hidexplst_isall_empty (xs) = list_forall_fun(xs, hidexp_is_empty) implement hidexplst_isexi_empty (xs) = list_exists_fun(xs, hidexp_is_empty) // (* ****** ****** *) local fun hidexplst_is_value (xs: hidexplst): bool = list_forall_fun (xs, hidexp_is_value) // end of [hidexplst_is_value] fun labhidexplst_is_value (lxs: labhidexplst): bool = let // fun ftest (lx: labhidexp) = let val LABHIDEXP (l, x) = lx in hidexp_is_value (x) end // end of [fun] // in list_forall_fun (lxs, ftest) end // end of [labhidexplst_is_value] fun hidecl_is_value (hid0: hidecl): bool = let in // case+ hid0.hidecl_node of // case+ | HIDnone() => true // | HIDlist(hids) => hideclist_is_value(hids) // | HIDfundecs _ => true | HIDvaldecs (_, hvds) => hivaldecs_is_value(hvds) // end of [HIDvaldecs] // | _(*rest-of-hidecl*) => false // end // end of [hidecl_is_value] and hideclist_is_value (hids: hideclist): bool = list_forall_fun(hids, hidecl_is_value) // end of [hideclist_is_value] and hivaldec_is_value (hvd: hivaldec): bool = hidexp_is_value(hvd.hivaldec_def) // and hivaldecs_is_value (hvds: hivaldeclst): bool = list_forall_fun(hvds, hivaldec_is_value) in (* in of [local] *) implement hidexp_is_value (hde0) = let in // case+ hde0.hidexp_node of // case+ // | HDEvar _ => true | HDEcst _ => true // | HDEbool _ => true | HDEchar _ => true | HDEstring _ => true // | HDEi0nt _ => true | HDEf0loat _ => true // | HDEextval _ => true // | HDElam _ => true | HDErec (_, lhdes, _) => labhidexplst_is_value (lhdes) // | HDEtmpcst _ => true | HDEtmpvar _ => true // | HDElet(hids, hde) => if hideclist_is_value(hids) then hidexp_is_value(hde) else false // | _ (*rest-of-hidexp*) => false // end // end of [hidexp_is_value] end // end of [local] (* ****** ****** *) local fun auxseq ( hde, hdes: hidexplst ) : bool = ( case+ hdes of | list_nil () => hidexp_is_lvalue (hde) | list_cons (hde, hdes) => auxseq (hde, hdes) ) (* end of [auxseq] *) in (*in-of-local*) implement hidexp_is_lvalue (hde0) = let in // case+ hde0.hidexp_node of | HDEvar (d2v) => $D2E.d2var_is_mutabl (d2v) | HDEselvar (d2v, _, _) => $D2E.d2var_is_mutabl (d2v) | HDEselptr (hde, _, _) => true // | HDEseq (hdes) => ( case+ hdes of | list_cons (hde, hdes) => auxseq (hde, hdes) | list_nil () => false ) (* end of [HDEseq] *) // | _ (* non-lvalue *) => false // end // end of [hidexp_is_lvalue] end // end of [local] (* ****** ****** *) (* implement un_hidexp_int (hde) = ( case+ hde.hidexp_node of | HDEint (int) => Some_vt (int) | HDEi0nt (tok) => | _(*noninteger*) => None_vt((*void*)) ) (* end of [un_hidexp_int] *) *) (* ****** ****** *) implement hidecl_is_empty (hid) = let in // case+ hid.hidecl_node of // | HIDnone () => true // | HIDlist (xs) => list_is_nil (xs) // | HIDfundecs (_, _, xs) => list_is_nil (xs) // | HIDvaldecs (_, xs) => list_is_nil (xs) | HIDvaldecs_rec (_, xs) => list_is_nil (xs) (* | HIDvardecs (xs) => list_is_nil (xs) *) | _ (* rest-of-hidecl *) => false // end // end of [hidecl_is_empty] (* ****** ****** *) implement hidexp_seq_simplify (loc, hse0, hdes) = let // val isexi = hidexplst_isexi_empty(hdes) // val hdes = ( // if isexi then let // val hdes = list_filter_fun ( hdes , lam(x) =<1> not(hidexp_is_empty(x)) ) (* list_filter_fun *) // in list_of_list_vt{hidexp}(hdes) end // end of [then] else hdes // end of [else] // ) : hidexplst // end of [val] // in case+ hdes of | list_cons (hde, list_nil()) => hde // list_sing | _(* non-singleton *) => hidexp_seq(loc, hse0, hdes) end // end of [hidexp_seq_simplify] (* ****** ****** *) local typedef d2var = $D2E.d2var datavtype hdevaremp = | HDEVEnone of () | HDEVEsome_var of (d2var) | HDEVEsome_emp of ((*void*)) // end of [hdevaremp] fun hidexp_is_varemp (hde0: hidexp): hdevaremp = let in // case+ hde0.hidexp_node of | HDEvar d2v => HDEVEsome_var (d2v) | HDEempty () => HDEVEsome_emp ((*void*)) | HDEfoldat () => HDEVEsome_emp ((*void*)) | HDErec (knd, lhdes, _) => ( if knd = 0 then ( case+ lhdes of | list_cons (lhde, list_nil ()) => let val+LABHIDEXP (lab, hde) = lhde in hidexp_is_varemp (hde) end // end of [list_cons (_, list_nil)] | _ => HDEVEnone () ) else HDEVEnone () // end of [if] ) (* end of [HIErec] *) | _ => HDEVEnone ((*void*)) // end // end of [hidexp_is_varemp] datavtype hianybind = | HABNDnone of () | HABNDsome_any of hidexp | HABNDsome_var of (d2var, hidexp) | HABNDsome_emp of hidexp fun hidecl_is_anybind (hid0: hidecl): hianybind = let // fun aux ( hip0: hipat, hde: hidexp ) : hianybind = let in // case+ hip0.hipat_node of (* case+ *) // | HIPany _ => HABNDsome_any (hde) // | HIPvar(d2v) => HABNDsome_var(d2v, hde) // | HIPempty((*void*)) => HABNDsome_emp(hde) // | HIPrec ( knd, pck, lhips, hse_rec ) => ( if knd = 0 then ( case+ lhips of | list_cons(lhip, list_nil()) => let val+LABHIPAT(lab, hip) = lhip in aux(hip, hde) end | _ (*non-list_sing*) => HABNDnone () ) else HABNDnone () // end of [if] ) (* end of [HIPrec] *) | _ (* rest-of-hipat *) => HABNDnone ((*void*)) // end // end of [aux] // in // case+ hid0.hidecl_node of (* case+ *) | HIDvaldecs (_, hvds) => ( case+ hvds of | list_cons ( hvd, list_nil() ) => aux(hvd.hivaldec_pat, hvd.hivaldec_def) | _ (* non-list_sing*) => HABNDnone ((*void*)) ) (* end of [HIDvaldecs] *) | _ (*non-HIDvaldecs*) => HABNDnone((*void*)) // end // end of [hidecl_is_anybind] fun dropz{n:pos} ( xs: list (hidecl, n) ) : list (hidecl, n-1) = let // val+list_cons (x, xs1) = xs // in // case+ xs1 of | list_cons _ => list_cons (x, dropz (xs1)) | list_nil () => list_nil () // end // end of [dropz] in (* in of [local] *) implement hidexp_let_simplify (loc, hse, hids, hde) = let // (* val () = println! ("hidexp_let_simplify") *) // in // case+ hids of // | list_cons _ => let val opt = hidexp_is_varemp (hde) in case+ opt of | ~HDEVEsome_var (d2v) => let val hid = list_last (hids) val opt2 = hidecl_is_anybind (hid) in case+ opt2 of | ~HABNDnone () => hidexp_let (loc, hse, hids, hde) | ~HABNDsome_var (d2v2, hde2) => if not(d2v=d2v2) then hidexp_let (loc, hse, hids, hde) else hidexp_let (loc, hse, dropz(hids), hde2) // end of [if] | ~HABNDsome_any _ => hidexp_let (loc, hse, hids, hde) | ~HABNDsome_emp _ => hidexp_let (loc, hse, hids, hde) end // end of [HDEVEsome_var] | ~HDEVEsome_emp ((*void*)) => let val hid = list_last (hids) val opt2 = hidecl_is_anybind (hid) in case+ opt2 of | ~HABNDnone () => hidexp_let (loc, hse, hids, hde) | ~HABNDsome_emp (hde2) => hidexp_let (loc, hse, dropz (hids), hde2) // end of [HABNDsome_emp] | ~HABNDsome_any _ => hidexp_let (loc, hse, hids, hde) | ~HABNDsome_var _ => hidexp_let (loc, hse, hids, hde) end // end of [HDEVEsome_emp] | ~HDEVEnone () => hidexp_let (loc, hse, hids, hde) end // end of [list_cons] // | list_nil ((*void*)) => hde // end // end of [hidexp_let_simplify] end // end of [local] (* ****** ****** *) (* end of [pats_hidynexp_util.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lexbuf.cats0000644000175000017500000000370713431250607020650 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_LEXBUF_CATS #define POSTIATS_SRC_PATS_LEXBUF_CATS /* ****** ****** */ #include "libats/CATS/linqueue_arr.cats" /* ****** ****** */ #include "pats_reader.cats" /* ****** ****** */ typedef struct { // atslib_linqueue_arr_QUEUE cbuf ; // ats_lint_type base ; ats_int_type base_nrow ; // line number ats_int_type base_ncol ; // line offset // ats_int_type nspace ; // leading space // pats_reader_struct reader ; // for getchar // } pats_lexbuf_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_LEXBUF_CATS] /* ****** ****** */ /* end of [pats_lexbuf.cats] */ ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env.sats0000644000175000017500000004177313431250607021472 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" typedef loc_t = $LOC.location (* ****** ****** *) staload STMP = "./pats_stamp.sats" viewtypedef stampset_vt = $STMP.stampset_vt (* ****** ****** *) staload EFF = "./pats_effect.sats" typedef effset = $EFF.effset typedef effect = $EFF.effect typedef effectlst = $EFF.effectlst (* ****** ****** *) staload JSON = "./pats_jsonize.sats" typedef jsonval = $JSON.jsonval (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_patcst2.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) // fun filenv_get_d3eclistopt (fenv: filenv): d3eclistopt // (* ****** ****** *) datatype c3nstrkind = // | C3TKmain of () // generic // | C3TKcase_exhaustiveness of (caskind (*case/case+*), p2atcstlst) // no [case-] // | C3TKtermet_isnat of () // term. metric welfounded | C3TKtermet_isdec of () // term. metric decreasing // | C3TKsome_fin of (d2var, s2exp(*fin*), s2exp) | C3TKsome_lvar of (d2var, s2exp(*lvar*), s2exp) | C3TKsome_vbox of (d2var, s2exp(*vbox*), s2exp) // | C3TKlstate of () // lstate merge | C3TKlstate_var of (d2var) // lstate merge for d2var // | C3TKloop of (int) // HX: ~1/0/1: enter/break/continue // | C3TKsolverify of () // HX-2015-06-12: $solver_verify // end of [c3nstrkind] datatype s3itm = | S3ITMsvar of s2var | S3ITMhypo of h3ypo | S3ITMsVar of s2Var | S3ITMcnstr of c3nstr | S3ITMcnstr_ref of c3nstroptref // HX: for handling state types | S3ITMdisj of s3itmlstlst | S3ITMsolassert of (s2exp) // $solver_assert // end of [s3item] and c3nstr_node = | C3NSTRprop of s2exp | C3NSTRitmlst of s3itmlst | C3NSTRsolverify of (s2exp) // $solve_verify // end of [c3nstr_node] and h3ypo_node = | H3YPOprop of s2exp | H3YPObind of (s2var, s2exp) | H3YPOeqeq of (s2exp, s2exp) // end of [h3ypo_node] where s3itmlst = List (s3itm) and s3itmlst_vt = List_vt (s3itm) and s3itmlstlst = List (s3itmlst) and c3nstr = '{ c3nstr_loc= loc_t , c3nstr_kind= c3nstrkind , c3nstr_node= c3nstr_node } // end of [c3nstr] and c3nstropt = Option (c3nstr) and c3nstroptref = '{ c3nstroptref_loc= loc_t , c3nstroptref_ref= ref (c3nstropt) } // end of [c3nstroptref] and h3ypo = '{ h3ypo_loc= loc_t , h3ypo_node= h3ypo_node } // end of [h3ypo] (* ****** ****** *) // fun c3nstr_prop (loc: loc_t, s2e: s2exp): c3nstr // fun c3nstr_itmlst ( loc: loc_t, knd: c3nstrkind, s3is: s3itmlst ) : c3nstr // end of [c3nstr_itmlst] // fun c3nstr_case_exhaustiveness ( loc: loc_t, casknd: caskind, p2tcs: !p2atcstlst_vt ) : c3nstr // end of [c3nstr_case_exhaustiveness] fun c3nstr_termet_isnat (loc: loc_t, s2e: s2exp): c3nstr // end of [c3nstr_termet_isnat] fun c3nstr_termet_isdec (loc: loc_t, met: s2explst, mbd: s2explst): c3nstr // end of [c3nstr_termet_isdec] // fun c3nstr_solverify(loc: loc_t, s2e_prop: s2exp): c3nstr // fun c3nstroptref_make_none (loc0: loc_t): c3nstroptref // (* ****** ****** *) fun h3ypo_prop (loc: loc_t, s2e: s2exp): h3ypo fun h3ypo_bind (loc: loc_t, s2v: s2var, s2f: s2hnf): h3ypo fun h3ypo_eqeq (loc: loc_t, s2f1: s2hnf, s2f2: s2hnf): h3ypo // end of [h3ypo_eqeq] (* ****** ****** *) // fun print_c3nstr (x: c3nstr): void and prerr_c3nstr (x: c3nstr): void fun fprint_c3nstr : fprint_type (c3nstr) // overload print with print_c3nstr overload prerr with prerr_c3nstr overload fprint with fprint_c3nstr // (* ****** ****** *) // fun fprint_c3nstrkind : fprint_type (c3nstrkind) // (* ****** ****** *) // fun print_h3ypo (x: h3ypo): void and prerr_h3ypo (x: h3ypo): void fun fprint_h3ypo : fprint_type (h3ypo) // (* ****** ****** *) // fun fprint_s3itm : fprint_type (s3itm) fun fprint_s3itmlst : fprint_type (s3itmlst) fun fprint_s3itmlstlst : fprint_type (s3itmlstlst) // overload fprint with fprint_s3itm overload fprint with fprint_s3itmlst overload fprint with fprint_s3itmlstlst // (* ****** ****** *) fun s2exp_Var_make_srt (loc: loc_t, s2t: s2rt): s2exp fun s2exp_Var_make_var (loc: loc_t, s2v: s2var): s2exp (* ****** ****** *) fun stasub_make_svarlst (loc: loc_t, s2vs: s2varlst): stasub // end of [stasub_make_svarlst] (* ****** ****** *) // fun s2exp_exi_instantiate_all (s2e: s2exp, locarg: loc_t, err: &int): (s2exp, s2explst_vt) fun s2exp_uni_instantiate_all (s2e: s2exp, locarg: loc_t, err: &int): (s2exp, s2explst_vt) // fun s2exp_exiuni_instantiate_all // knd=0/1:exi/uni (knd: int, s2e: s2exp, locarg: loc_t, err: &int): (s2exp, s2explst_vt) // (* ****** ****** *) // fun s2exp_termet_instantiate (loc: loc_t, stamp: stamp, met: s2explst): void fun s2exp_unimet_instantiate_all // HX: instantiating universal quantifiers and term. metrics (s2e: s2exp, locarg: loc_t, err: &int): (s2exp, s2explst_vt) // (* ****** ****** *) // fun s2exp_exi_instantiate_sexparg (s2e: s2exp, arg: s2exparg, err: &int): (s2exp, s2explst_vt) fun s2exp_uni_instantiate_sexparglst (s2e: s2exp, arg: s2exparglst, err: &int): (s2exp, s2explst_vt) // (* ****** ****** *) // fun s2exp_tmp_instantiate_rest ( s2f: s2exp, locarg: loc_t, s2qs: s2qualst, nerr: &int ) : (s2exp(*res*), t2mpmarglst) = "ext#patsopt_s2exp_tmp_instantiate_rest" // fun s2exp_tmp_instantiate_tmpmarglst ( s2f: s2exp , locarg: loc_t, s2qs: s2qualst, t2mas: t2mpmarglst, nerr: &int ) : (s2exp(*res*), t2mpmarglst) = "ext#patsopt_s2exp_tmp_instantiate_tmpmarglst" // (* ****** ****** *) // fun s2var_occurcheck_s2exp (s2v0: s2var, s2e: s2exp): bool // (* ****** ****** *) absview trans3_env_push_v fun trans3_env_pop (pf: trans3_env_push_v | (*none*)): s3itmlst_vt // end of [trans3_env_pop] fun trans3_env_pop_and_add (pf: trans3_env_push_v | loc: loc_t, knd: c3nstrkind): void // end of [trans3_env_pop_and_add] fun trans3_env_pop_and_add_main (pf: trans3_env_push_v | loc: loc_t): void // end of [trans3_env_pop_and_add_main] fun trans3_env_push (): (trans3_env_push_v | void) (* ****** ****** *) fun trans3_env_add_svar (s2v: s2var): void fun trans3_env_add_svarlst (s2vs: s2varlst): void fun trans3_env_add_squa (s2q: s2qua): void fun trans3_env_add_squalst (s2qs: s2qualst): void fun trans3_env_add_sp2at (sp2t: sp2at): void fun trans3_env_add_sVar (s2V: s2Var): void fun trans3_env_add_sVarlst (s2Vs: s2Varlst): void fun trans3_env_add_cnstr (c3t: c3nstr): void fun trans3_env_add_cnstr_ref (ctr: c3nstroptref): void fun trans3_env_add_prop (loc: loc_t, s2p: s2exp): void fun trans3_env_add_proplst (loc: loc_t, s2ps: s2explst): void fun trans3_env_add_proplst_vt (loc: loc_t, s2ps: s2explst_vt): void fun trans3_env_add_eqeq (loc: loc_t, s2e1: s2exp, s2e2: s2exp): void // end of [trans3_env_add_eqeq] fun trans3_env_add_patcstlstlst_false ( loc: loc_t , casknd: caskind, cp2tcss: p2atcstlstlst_vt, s2es_pat: s2explst ) : void // end of [trans3_env_add_p2atcstlstlst_false] (* ****** ****** *) // fun trans3_env_hypadd_prop (loc: loc_t, s2p: s2exp): void fun trans3_env_hypadd_proplst (loc: loc_t, s2ps: s2explst): void fun trans3_env_hypadd_proplst_vt (loc: loc_t, s2ps: s2explst_vt): void // fun trans3_env_hypadd_propopt (loc: loc_t, os2p: s2expopt): void fun trans3_env_hypadd_propopt_neg (loc: loc_t, os2p: s2expopt): void // fun trans3_env_hypadd_bind (loc: loc_t, s2v1: s2var, s2f2: s2hnf): void fun trans3_env_hypadd_eqeq (loc: loc_t, s2f1: s2hnf, s2f2: s2hnf): void // fun trans3_env_hypadd_patcst (loc: loc_t, p2tc: p2atcst, s2e: s2exp): void fun trans3_env_hypadd_patcstlst (loc: loc_t, p2tcs: p2atcstlst_vt, s2es: s2explst): void fun trans3_env_hypadd_labpatcstlst (loc: loc_t, lp2tcs: labp2atcstlst_vt, ls2es: labs2explst): void fun trans3_env_hypadd_patcstlstlst (loc: loc_t, p2tcs: p2atcstlstlst_vt, s2es: s2explst): void // (* ****** ****** *) // fun trans3_env_solver_assert(loc: loc_t, s2e: s2exp): void fun trans3_env_solver_verify(loc: loc_t, s2e: s2exp): void // (* ****** ****** *) // absview s2varbindmap_push_v // fun the_s2varbindmap_freetop (): void fun the_s2varbindmap_pop (pf: s2varbindmap_push_v | (*nothing*)): void fun the_s2varbindmap_push (): (s2varbindmap_push_v | void) // fun the_s2varbindmap_search (s2v: s2var): Option_vt (s2exp) fun the_s2varbindmap_insert (s2v: s2var, s2f: s2hnf): void // // HX: for the purpose of debugging // fun fprint_the_s3itmlst (out: FILEref): void fun fprint_the_s3itmlstlst (out: FILEref): void // fun fprint_the_s2varbindmap (out: FILEref): void // (* ****** ****** *) // absview s2cstbindlst_push_v // fun the_s2cstbindlst_add (s2c: s2cst): void fun the_s2cstbindlst_addlst (s2cs: s2cstlst_vt): void fun the_s2cstbindlst_bind_and_add (loc: loc_t, s2c: s2cst, s2f: s2hnf): void // end of [the_s2cstbindlst_bind_and_add] fun the_s2cstbindlst_pop (pf: s2cstbindlst_push_v | (*none*)): s2cstlst_vt fun the_s2cstbindlst_pop_and_unbind (pf: s2cstbindlst_push_v | (*none*)): void fun the_s2cstbindlst_push (): (s2cstbindlst_push_v | void) (* ****** ****** *) absview termetenv_push_v fun s2explst_check_termet (loc0: loc_t, met: s2explst): void // end of [s2explst_check_termet] fun termetenv_pop (pf: termetenv_push_v | (*none*)): void fun termetenv_push (d2vs: stampset_vt, met: s2explst): (termetenv_push_v | void) // end of [termetenv_push] fun termetenv_push_dvarlst (d2vs: d2varlst, met: s2explst): (termetenv_push_v | void) // end of [termetenv_push_dvarlst] fun termetenv_get_termet (x: stamp): Option_vt (s2explst) fun s2exp_metfun_load (s2e0: s2exp, d2v0: d2var): Option_vt @(s2exp, s2rtlst) // end of [s2exp_metfun_load] (* ****** ****** *) absview effenv_push_v fun the_effenv_add_eff (eff: effect): void fun the_effenv_pop (pf: effenv_push_v | (*none*)): void fun the_effenv_pop_if {b:bool} (pfopt: option_v (effenv_push_v, b) | test: bool b): void fun the_effenv_push (): (effenv_push_v | void) fun the_effenv_push_lam (s2fe: s2eff): (effenv_push_v | void) // fun the_effenv_push_set (efs: effset): (effenv_push_v | void) fun the_effenv_push_set_if {b:bool} (test: bool b, efs: effset): (option_v (effenv_push_v, b) | void) // end of [the_effenv_push_set_if] // fun the_effenv_push_effmask (s2fe: s2eff): (effenv_push_v | void) fun the_effenv_check_set (loc: loc_t, efs: effset): int (*succ/fail: 0/1*) // fun the_effenv_check_eff (loc: loc_t, eff: effect): int (*succ/fail: 0/1*) // fun the_effenv_check_exn (loc: loc_t): int (*succ/fail: 0/1*) fun the_effenv_check_ntm (loc: loc_t): int (*succ/fail: 0/1*) fun the_effenv_check_ref (loc: loc_t): int (*succ/fail: 0/1*) fun the_effenv_check_wrt (loc: loc_t): int (*succ/fail: 0/1*) // fun the_effenv_caskind_check_exn (loc: loc_t, knd: caskind): int (*succ/fail: 0/1*) // end of [the_effenv_caskind_check_exn] fun the_effenv_check_sexp (loc: loc_t, s2e: s2exp): int (*succ/fail: 0/1*) fun the_effenv_check_s2eff (loc: loc_t, s2fe: s2eff): int (*succ/fail: 0/1*) (* ****** ****** *) fun s2hnf_absuni_and_add (loc: loc_t, s2f: s2hnf): s2exp // end of [s2hnf_absuni_and_add] fun s2hnf_opnexi_and_add (loc: loc_t, s2f: s2hnf): s2exp // end of [s2hnf_opnexi_and_add] fun s2hnf_opn1exi_and_add (loc: loc_t, s2f: s2hnf): s2exp // end of [s2hnf_opn1exi_and_add] fun s2fun_opninv_and_add (loc: loc_t, arg: s2explst, res: s2exp): s2explst // end of [s2fun_opninv_and_add] (* ****** ****** *) fun d2var_opnset_and_add (loc: loc_t, d2v: d2var): void (* ****** ****** *) fun un_s2exp_wthtype ( loc: loc_t, s2e: s2exp ) : ( bool(*iswth*), s2exp, wths2explst ) // end of [un_s2exp_wthtype] (* ****** ****** *) fun d3exp_open_and_add (d3e: d3exp): void fun d3explst_open_and_add (d3es: d3explst): void (* ****** ****** *) // // HX: for turning val into var // fun d2var_mutablize ( loc0: loc_t , d2v: d2var, s2e0(*master*): s2exp, opt: d2varopt ) : d2var // end of [d2var_mutablize] fun d2var_mutablize_none (loc0: loc_t, d2v: d2var, s2e0(*master*): s2exp): d2var // end of [d2var_mutablize_none] (* ****** ****** *) // // HX: for tracking linear dynamic variables // absview d2varenv_push_v fun the_d2varenv_add_dvar (d2v: d2var): void fun the_d2varenv_add_dvarlst (d2vs: d2varlst): void fun the_d2varenv_add_dvaropt (opt: d2varopt): void fun the_d2varenv_add_p3at (p3t: p3at): void fun the_d2varenv_add_p3atlst (p3ts: p3atlst): void fun the_d2varenv_get_top (): d2varlst_vt fun the_d2varenv_get_llamd2vs (): d2varlst_vt fun the_d2varenv_pop (pf: d2varenv_push_v | (*none*)): void // end of [the_d2varenv_pop] fun the_d2varenv_push_lam (knd(*lin*): int): (d2varenv_push_v | void) fun the_d2varenv_push_let (): (d2varenv_push_v | void) fun the_d2varenv_push_try (): (d2varenv_push_v | void) fun the_d2varenv_d2var_is_llamlocal (d2v: d2var): bool (* ** HX-2012-03: ** [funarg_d2vfin_check] checks d2var_finknd of funarg *) fun funarg_d2vfin_check (loc0: loc_t): void (* ** HX-2012-03: ** [s2exp_wthtype_instantiate] resets d2var_finknd of funarg *) fun s2exp_wthtype_instantiate (loc: loc_t, s2e: s2exp): s2exp (* ****** ****** *) fun the_d2varenv_check (loc0: loc_t): void fun the_d2varenv_check_llam (loc0: loc_t): void (* ****** ****** *) (* ** HX-2012-05 *) typedef lstbefitm = '{ lstbefitm_var= d2var , lstbefitm_linval= int // HX: a relic no longer in use , lstbefitm_type= s2expopt } // end of [lstbefitm] typedef lstbefitmlst = List (lstbefitm) fun lstbefitm_make (d2v: d2var, linval: int): lstbefitm fun fprint_lstbefitm : fprint_type (lstbefitm) overload fprint with fprint_lstbefitm fun fprint_lstbefitmlst : fprint_type (lstbefitmlst) overload fprint with fprint_lstbefitmlst fun the_d2varenv_save_lstbefitmlst (): lstbefitmlst fun lstbefitmlst_restore_type (xs: lstbefitmlst): void fun lstbefitmlst_restore_linval_type (xs: lstbefitmlst): void (* ****** ****** *) absviewtype lstaftc3nstr_viewtype viewtypedef lstaftc3nstr = lstaftc3nstr_viewtype fun fprint_lstaftc3nstr : fprint_vtype (lstaftc3nstr) fun lstaftc3nstr_initize (xs: lstbefitmlst): lstaftc3nstr fun lstaftc3nstr_update (x: !lstaftc3nstr, ctr: c3nstroptref): void fun lstaftc3nstr_process (x: !lstaftc3nstr, res: i2nvresstate): void fun lstaftc3nstr_finalize (x: lstaftc3nstr): void (* ****** ****** *) fun i2nvarglst_update (loc: loc_t, args: i2nvarglst): void fun i2nvresstate_update (loc: loc_t, invres: i2nvresstate): void (* ****** ****** *) // absview lamlpenv_push_v // // HX: the break/continue statements are skipped during the 1st round // datatype lamlp = | LAMLPlam of p3atlst (* function arguments *) | LAMLPloop0 of () // 1st round typechecking for loops // // 2nd round typechekcing for loops // | LAMLPloop1 of (loopi2nv, lstbefitmlst, d2expopt(*post*)) viewtypedef lamlplst_vt = List_vt (lamlp) fun the_lamlpenv_top ((*void*)): Option_vt (lamlp) fun the_lamlpenv_get_funarg ((*void*)): Option_vt (p3atlst) fun the_lamlpenv_pop (pf: lamlpenv_push_v | (*none*)): void fun the_lamlpenv_push_lam (p3ts: p3atlst): (lamlpenv_push_v | void) fun the_lamlpenv_push_loop0 () : (lamlpenv_push_v | void) fun the_lamlpenv_push_loop1 (i2nv: loopi2nv, lbis: lstbefitmlst, post: d2expopt) : (lamlpenv_push_v | void) // end of [the_lamlpenv_push_loop1] (* ****** ****** *) absview pfmanenv_push_v fun fprint_the_pfmanenv (out: FILEref): void fun the_pfmanenv_push_let (): (pfmanenv_push_v | void) fun the_pfmanenv_push_lam (lin: int): (pfmanenv_push_v | void) fun the_pfmanenv_push_try (): (pfmanenv_push_v | void) fun the_pfmanenv_pop (pf: pfmanenv_push_v | (*none*)): void fun the_pfmanenv_add_dvar (d2v: d2var): void fun the_pfmanenv_add_dvaropt (opt: d2varopt): void fun the_pfmanenv_add_dvarlst (d2vs: d2varlst): void fun the_pfmanenv_add_p3at (p3t: p3at): void fun the_pfmanenv_add_p3atlst (p3ts: p3atlst): void (* ****** ****** *) // datavtype pfobj = PFOBJ of (d2var, s2exp(*ctx*), s2exp(*elt*), s2exp(*addr*)) vtypedef pfobjopt = Option_vt (pfobj) // fun pfobj_search_atview (s2l0: s2exp): pfobjopt // (* ****** ****** *) fun the_trans3_env_initialize (): void (* ****** ****** *) fun the_trans3_finget_constraint (): c3nstr (* ****** ****** *) (* end of [pats_trans3_env.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_appenv.hats0000644000175000017500000002006113431250607022317 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: // Hongwei Xi // Authoremail: // gmhwxiATgmailDOTcom // Start Time: December, 2014 // (* ****** ****** *) // // HX-2014-12-09: // This one implements a standard [app] function over the level-2 syntax tree // Note that [app] is often referred to as [foreach] // (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) // extern fun{} s2cstlst_app : synent_app (s2cstlst) // extern fun{} s2varlst_app : synent_app (s2varlst) // extern fun{} d2conlst_app : synent_app (d2conlst) // (* ****** ****** *) // implement {}(*tmp*) s2cstlst_app (xs, env) = synentlst_app (xs, env, s2cst_app) // (* ****** ****** *) // implement {}(*tmp*) s2varlst_app (xs, env) = synentlst_app (xs, env, s2var_app) // (* ****** ****** *) // implement {}(*tmp*) d2conlst_app (xs, env) = synentlst_app (xs, env, d2con_app) // (* ****** ****** *) // extern fun{} s2exp_app : synent_app (s2exp) // extern fun{} s2explst_app : synent_app (s2explst) extern fun{} s2explstlst_app : synent_app (s2explstlst) // extern fun{} labs2explst_app : synent_app (labs2explst) extern fun{} wths2explst_app : synent_app (wths2explst) // extern fun{} s2expopt_app : synent_app (s2expopt) // (* ****** ****** *) // extern fun{} s2qualst_app : synent_app (s2qualst) // (* ****** ****** *) // extern fun{} s2zexp_app : synent_app (s2zexp) extern fun{} s2zexplst_app : synent_app (s2zexplst) extern fun{} s2zexplstlst_app : synent_app (s2zexplstlst) // extern fun{} labs2zexplst_app : synent_app (labs2zexplst) // (* ****** ****** *) implement {}(*tmp*) s2exp_app (s2e0, env) = let in // case+ s2e0.s2exp_node of // | S2Eint _ => () | S2Eintinf _ => () // | S2Efloat _ => () | S2Estring _ => () // | S2Ecst(s2c) => s2cst_app(s2c, env) // | S2Eextype (name, s2ess) => s2explstlst_app(s2ess, env) | S2Eextkind (name, s2ess) => s2explstlst_app(s2ess, env) // | S2Evar(s2v) => s2var_app(s2v, env) // | S2EVar(s2V) => s2Var_app(s2V, env) // | S2Ehole(s2hole) => () // | S2Edatcontyp (d2c, s2es) => let val () = d2con_app (d2c, env) val () = s2explst_app (s2es, env) in // nothing end // end of [S2Edatcontyp] | S2Edatconptr (d2c, s2e1, s2es2) => let val () = d2con_app (d2c, env) val () = s2exp_app (s2e1, env) val () = s2explst_app (s2es2, env) in // nothing end // end of [S2Edatconptr] // | S2Eat (s2e1, s2e2) => ( s2exp_app (s2e1, env); s2exp_app (s2e2, env) ) (* end of [S2Eat] *) // | S2Esizeof (s2e) => s2exp_app (s2e, env) // | S2Eeff _ => () // | S2Eeqeq (s2e1, s2e2) => ( s2exp_app (s2e1, env); s2exp_app (s2e2, env) ) (* end of [S2Eeqeq] *) // | S2Eproj (s2e1, s2e2, s2ls) => ( s2exp_app (s2e1, env); s2exp_app (s2e2, env) ) (* end of [S2Eproj] *) // | S2Eapp (s2e1, s2es2) => ( s2exp_app (s2e1, env); s2explst_app (s2es2, env) ) (* end of [S2Eapp] *) // | S2Elam (s2vs1, s2e2_body) => ( s2varlst_app (s2vs1, env); s2exp_app (s2e2_body, env) ) (* end of [S2Elam] *) // | S2Efun (fc, lin, s2fe, npf, s2es1_arg, s2e2_res) => ( s2explst_app (s2es1_arg, env); s2exp_app (s2e2_res, env) ) (* end of [S2Efun] *) // | S2Emetfun (opt, s2es1, s2e2) => ( s2explst_app (s2es1, env); s2exp_app (s2e2, env) ) (* end of [S2Emetfun] *) | S2Emetdec (s2es1, s2es2) => ( s2explst_app (s2es1, env); s2explst_app (s2es2, env) ) (* end of [S2Emetdec] *) // | S2Etop (knd, s2e) => s2exp_app (s2e, env) | S2Ewithout (s2out) => s2exp_app (s2out, env) // | S2Etyarr (s2e1, s2es2) => ( s2exp_app (s2e1, env); s2explst_app (s2es2, env) ) (* end of [S2Etyarr] *) | S2Etyrec (knd, npf, ls2es) => labs2explst_app (ls2es, env) // | S2Einvar (s2e) => s2exp_app (s2e, env) // | S2Eexi (s2vs, s2ps, s2e_body) => ( s2varlst_app (s2vs, env); s2explst_app (s2ps, env); s2exp_app (s2e_body, env) ) (* end of [S2Eexi] *) | S2Euni (s2vs, s2ps, s2e_body) => ( s2varlst_app (s2vs, env); s2explst_app (s2ps, env); s2exp_app (s2e_body, env) ) (* end of [S2Euni] *) // | S2Erefarg (knd, s2e) => s2exp_app (s2e, env) // end of [S2Erefarg] // | S2Evararg(s2e) => s2exp_app (s2e, env) // | S2Ewthtype(s2e, ws2es) => ( s2exp_app (s2e, env); wths2explst_app (ws2es, env); ) // | S2Eerrexp((*void*)) => () // (* | _ (* rest-of-s2exp *) => () *) // end // end of [s2exp_app] (* ****** ****** *) // implement {}(*tmp*) s2explst_app (xs, env) = synentlst_app (xs, env, s2exp_app) // implement {}(*tmp*) s2explstlst_app (xss, env) = synentlst_app (xss, env, s2explst_app) // (* ****** ****** *) implement {}(*tmp*) labs2explst_app (lxs, env) = let in // case+ lxs of | list_nil () => () | list_cons (lx, lxs) => let val+SLABELED(_, _, x) = lx val () = s2exp_app (x, env) in labs2explst_app (lxs, env) end // end of [list_cons] // end // end of [labs2explst_app] (* ****** ****** *) implement {}(*tmp*) wths2explst_app (wxs, env) = let in // case+ wxs of | WTHS2EXPLSTnil () => () | WTHS2EXPLSTcons_invar(_, x, wxs) => ( s2exp_app (x, env); wths2explst_app (wxs, env) ) | WTHS2EXPLSTcons_trans(_, x, wxs) => ( s2exp_app (x, env); wths2explst_app (wxs, env) ) | WTHS2EXPLSTcons_none (wxs) => wths2explst_app (wxs, env) // end // end of [wths2explst_app] (* ****** ****** *) implement {}(*tmp*) s2expopt_app (opt, env) = ( // case+ opt of | Some (s2e) => s2exp_app (s2e, env) | None () => () // ) (* end of [s2expopt] *) (* ****** ****** *) implement {}(*tmp*) s2qualst_app (s2qs, env) = let in // case+ s2qs of | list_nil () => () | list_cons (s2q, s2qs) => ( s2varlst_app (s2q.s2qua_svs, env); s2explst_app (s2q.s2qua_sps, env); s2qualst_app (s2qs, env) ) (* end of [list_cons] *) // end // end of [s2qualst_app] (* ****** ****** *) implement {}(*tmp*) s2zexp_app (x0, env) = ( // case+ x0 of // | S2ZEprf () => () | S2ZEptr () => () // | S2ZEcst (s2c) => s2cst_app (s2c, env) | S2ZEvar (s2v) => s2var_app (s2v, env) | S2ZEVar (s2V) => s2Var_app (s2V, env) // | S2ZEextype (name, xss) => s2zexplstlst_app (xss, env) | S2ZEextkind (name, xss) => s2zexplstlst_app (xss, env) // | S2ZEapp (x1, xs2) => ( s2zexp_app (x1, env); s2zexplst_app (xs2, env) ) | S2ZEtyarr (x1, s2es_dim) => ( s2zexp_app (x1, env); s2explst_app (s2es_dim, env) ) | S2ZEtyrec (knd, lxs) => labs2zexplst_app (lxs, env) // | S2ZEclo () => () // | S2ZEbot () => () // ) (* end of [s2zexp_app] *) (* ****** ****** *) // implement {}(*tmp*) s2zexplst_app (xs, env) = synentlst_app (xs, env, s2zexp_app) // implement {}(*tmp*) s2zexplstlst_app (xss, env) = synentlst_app (xss, env, s2zexplst_app) // (* ****** ****** *) implement {}(*tmp*) labs2zexplst_app (lxs, env) = ( // case+ lxs of | list_nil () => () | list_cons (lx, lxs) => let val SZLABELED(l, x) = lx val ((*void*)) = s2zexp_app (x, env) in labs2zexplst_app (lxs, env) end // end of [list_cons] // ) (* end of [labs2zexplst_app] *) (* ****** ****** *) (* end of [pats_staexp2_appenv.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_dynexp_dn.dats0000644000175000017500000007721113431250607022647 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_dynexp_dn" (* ****** ****** *) staload LOC = "./pats_location.sats" overload print with $LOC.print_location (* ****** ****** *) staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_patcst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload MAC = "./pats_dmacro2.sats" staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) fun d2exp_funclopt_of_d2exp ( d2e0: d2exp , opt: &(fcopt_vt?) >> fcopt_vt ) : d2exp = let in // case+ :( opt: fcopt_vt ) => d2e0.d2exp_node of | D2Eann_funclo (d2e, fc) => let val () = opt := Some_vt fc in d2e end // end of [D2Eann_funclo] | _ => let val () = opt := None_vt () in d2e0 end // end of [_] // end // end of [d2exp_funclopt_of_d2exp] viewtypedef s2effopt_vt = Option_vt(s2eff) fun d2exp_s2effopt_of_d2exp ( d2e0: d2exp , opt: &(s2effopt_vt?) >> s2effopt_vt ) : d2exp = case+ :( opt: s2effopt_vt ) => d2e0.d2exp_node of | D2Eann_seff (d2e, s2fe) => let val () = opt := Some_vt s2fe in d2e end | _ => let val () = opt := None_vt () in d2e0 end // end of [_] // end of [d2exp_s2eff_opt_of_d2exp] (* ****** ****** *) extern fun d2exp_trdn_top(d2e0: d2exp, s2f0: s2hnf): d3exp (* ****** ****** *) extern fun d2exp_trdn_tup(d2e0: d2exp, s2f0: s2hnf): d3exp extern fun d2exp_trdn_rec(d2e0: d2exp, s2f0: s2hnf): d3exp extern fun d2exp_trdn_seq(d2e0: d2exp, s2f0: s2hnf): d3exp (* ****** ****** *) // extern fun d2exp_trdn_raise(d2e0: d2exp, s2f0: s2hnf): d3exp // extern fun d2exp_trdn_effmask(d2e0: d2exp, s2f0: s2hnf): d3exp // (* ****** ****** *) extern fun d2exp_trdn_exist(d2e0: d2exp, s2f0: s2hnf): d3exp (* ****** ****** *) // extern fun d2exp_trdn_lam_dyn(d2e: d2exp, s2f0: s2hnf): d3exp extern fun d2exp_trdn_lam_sta_nil(d2e: d2exp, s2f0: s2hnf): d3exp // (* ****** ****** *) // extern fun d2exp_trdn_delay (d2e0: d2exp, s2f0: s2hnf): d3exp extern fun d2exp_trdn_ldelay (d2e0: d2exp, s2f0: s2hnf): d3exp // (* ****** ****** *) // extern fun d2exp_trdn_trywith (d2e0: d2exp, s2f0: s2hnf): d3exp // (* ****** ****** *) implement d2exp_trdn (d2e0, s2e0) = let // (* val loc0 = d2e0.d2exp_loc // val () = println! ("d2exp_trdn: d2e0 = ", d2e0) val () = println! ("d2exp_trdn: loc0 = ", loc0) val () = println! ("d2exp_trdn: s2e0(bef) = ", s2e0) // *) // val s2f0 = s2exp2hnf(s2e0) val s2e0 = s2hnf2exp(s2f0) // (* val () = println! ("d2exp_trdn: s2e0(aft) = ", s2e0) *) // in // case+ d2e0.d2exp_node of // case+ // | D2Etop _ => d2exp_trdn_top(d2e0, s2f0) // end of [D2Etop] // | D2Elet (d2cs, d2e) => d2exp_trdn_letwhere(d2e0, s2f0, d2cs, d2e) // end of [D2Elet] | D2Ewhere (d2e, d2cs) => d2exp_trdn_letwhere(d2e0, s2f0, d2cs, d2e) // end of [D2Ewhere] // | D2Eapplst (_fun, _arg) => let val loc0 = d2e0.d2exp_loc (* val () = ( fprintln! (stdout_ref, "d2exp_trdn: D2Eapplst: _fun = ", _fun); fprintln! (stdout_ref, "d2exp_trdn: D2Eapplst: _arg = ", _arg); ) // end of [val] *) in case+ _fun.d2exp_node of // case+ | D2Emac d2m => let (* val () = println! ("d2exp_trdn: D2Eapplst: D2Emac(bef): d2e0 = ", d2e0) // end of [val] *) val d2e0 = $MAC.dmacro_eval_app_short(loc0, d2m, _arg) // end of [val] (* val () = ( println! ("d2exp_trdn: D2Eapplst: D2Emac(aft): loc0 = ", loc0); println! ("d2exp_trdn: D2Eapplst: D2Emac(aft): d2e0 = ", d2e0); ) (* end of [val] *) *) in d2exp_trdn(d2e0, s2e0) end // end of [D2Emac] | _ => d2exp_trdn_rest(d2e0, s2f0) end // end of [D2Eapplst] // | D2Eifhead _ => d2exp_trdn_ifhead(d2e0, s2f0) // end of [D2Eifhead] | D2Esifhead _ => d2exp_trdn_sifhead(d2e0, s2f0) // end of [D2Esifhead] // | D2Eifcasehd _ => d2exp_trdn_ifcasehd(d2e0, s2f0) // end of [D2Eifcasehd] // | D2Ecasehead _ => d2exp_trdn_casehead(d2e0, s2f0) // end of [D2Ecasehead] | D2Escasehead _ => d2exp_trdn_scasehead(d2e0, s2f0) // end of [D2Escasehead] // | D2Esing (d2e) => d2exp_trdn(d2e, s2e0) // | D2Elist (npf, d2es) => let val loc0 = d2e0.d2exp_loc val d2e0 = d2exp_tup_flt(loc0, npf, d2es) in d2exp_trdn(d2e0, s2e0) // end of [val] end // end of [D2Elist] // | D2Etup _ => d2exp_trdn_tup (d2e0, s2f0) | D2Erec _ => d2exp_trdn_rec (d2e0, s2f0) | D2Eseq _ => d2exp_trdn_seq (d2e0, s2f0) // | D2Eraise _ => d2exp_trdn_raise (d2e0, s2f0) // | D2Eeffmask _ => d2exp_trdn_effmask (d2e0, s2f0) // | D2Eshowtype (d2e) => d3e where { val d3e = d2exp_trdn(d2e, s2e0) val ((*void*)) = fshowtype_d3exp_dn(d3e) } (* end of [D2Eshowtype] *) // | D2Eexist _ => d2exp_trdn_exist(d2e0, s2f0) // | D2Elam_dyn _ => d2exp_trdn_lam_dyn(d2e0, s2f0) // | D2Elam_sta(s2vs, _, _) when list_is_nil(s2vs) => d2exp_trdn_lam_sta_nil(d2e0, s2f0) // end of [D2Elam_sta_nil] // | D2Edelay _ => d2exp_trdn_delay(d2e0, s2f0) | D2Eldelay _ => d2exp_trdn_ldelay(d2e0, s2f0) // | D2Etrywith _ => d2exp_trdn_trywith(d2e0, s2f0) // | _ (*rest-of-d2exp*) => d2exp_trdn_rest(d2e0, s2f0) // end // end of [d2exp_trdn] (* ****** ****** *) implement d2exp_trdn_rest (d2e0, s2f0) = let // (* val () = println! ("d2exp_trdn_rest: d2e0 = ", d2e0) val () = println! ("d2exp_trdn_rest: loc0 = ", d2e0.d2exp_loc) val () = println! ("d2exp_trdn_rest: s2f0 = ", s2f0) *) // val loc0 = d2e0.d2exp_loc val s2e0 = s2hnf2exp(s2f0) val d3e0 = d2exp_trup(d2e0) // val iswth = s2exp_is_wthtype(s2e0) // val s2e0 = ( // if iswth then let // val () = d3exp_open_and_add(d3e0) // end of [val] in s2exp_wthtype_instantiate(loc0, s2e0) end // end of [then] else s2e0 // HX: not carrying a state type // ) : s2exp // end of [val] (* // val () = println! ("d2exp_trdn_rest: s2e0 = ", s2e0) // *) // val () = if iswth then funarg_d2vfin_check(loc0) // in d3exp_trdn(d3e0, s2e0) end // end of [d2exp_trdn_rest] (* ****** ****** *) implement d2explst_trdn_elt (d2es, s2f) = let var !p_clo = @lam (pf: !unit_v | d2e: d2exp): d3exp = d2exp_trdn (d2e, s2f) // end of [var] prval pfu = unit_v val d3es = list_map_vclo {unit_v} (pfu | d2es, !p_clo) prval unit_v () = pfu in list_of_list_vt(d3es) end // end of [d2explst_trdn_elt] implement d2expopt_trdn_elt (od2e, s2f) = let (* // val () = println! ( "d2expopt_trdn_elt" ) (* println! *) // *) in // case+ od2e of // | None() => None() // | Some(d2e) => Some(d2exp_trdn(d2e, s2f)) // end of [Some] // end // end of [d2expopt_trdn_elt] (* ****** ****** *) implement d2exp_trdn_lam_dyn (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc val s2e0 = s2hnf2exp (s2f0) // (* val () = println! ("d2exp_trdn_lam_dyn: d2e0 = ", d2e0) val () = println! ("d2exp_trdn_lam_dyn: s2e0 = ", s2e0) *) // in // case+ s2e0.s2exp_node of | S2Efun ( fc1, lin1, s2fe1, npf1, s2es_arg, s2e_res ) => let val-D2Elam_dyn (lin, npf, p2ts_arg, d2e_body) = d2e0.d2exp_node // end of [val] val err = $SOL.pfarity_equal_solve (loc0, npf, npf1) val () = if err != 0 then { val () = prerr_the_staerrlst () val () = the_trans3errlst_add (T3E_d2exp_trdn_lam_dyn (d2e0, s2e0)) } // end of [val] val err = $SOL.linearity_equal_solve (loc0, lin, lin1) // end of [val] val () = if (err != 0) then { (* val () = prerr_error3_loc (loc0) // end of [val] val () = prerr ": linarity mismatch" // end of [val] val () = if lin > lin1 then prerr ": the linear function is assigned a nonlinear function type." val () = if lin < lin1 then prerr ": the nonlinear function is assigned a linear function type." val () = prerr_newline () *) val () = prerr_the_staerrlst () val () = the_trans3errlst_add (T3E_d2exp_trdn_lam_dyn (d2e0, s2e0)) } // end of [val] // val (pfpush | ()) = trans3_env_push () // var err: int = 0 var opt: fcopt_vt val d2e_body = d2exp_funclopt_of_d2exp (d2e_body, opt) val () = ( case+ opt of | ~None_vt () => () | ~Some_vt fc => $SOL.funclo_equal_solve_err(loc0, fc, fc1, err) ) : void // end of [val] val () = if err != 0 then let val () = prerr_the_staerrlst () in the_trans3errlst_add (T3E_d2exp_trdn_lam_dyn (d2e0, s2e0)) end // end of [if] // end of [val] // var err: int = 0 var opt: s2effopt_vt val d2e_body = d2exp_s2effopt_of_d2exp (d2e_body, opt) val s2fe = ( case+ opt of | ~Some_vt s2fe => let val () = $SOL.s2eff_subeq_solve_err (loc0, s2fe, s2fe1, err) in s2fe end // end of [Some_vt] | ~None_vt () => s2fe1 ) : s2eff // end of [val] val () = if err != 0 then let val () = prerr_the_staerrlst () in the_trans3errlst_add (T3E_d2exp_trdn_lam_dyn (d2e0, s2e0)) end // end of [if] // end of [val] // val (pfeff | ()) = the_effenv_push_lam (s2fe) // val () = funarg_patck_exhaust (loc0, p2ts_arg, s2es_arg) // var serr: int = 0 val p3ts_arg = p2atlst_trdn_arg (loc0, npf, p2ts_arg, s2es_arg, serr) // end of [val] val () = if (serr != 0) then let val () = prerr_error3_loc (loc0) val () = prerr ": dynamic arity mismatch" val () = if serr < 0 then prerrln! ": more arguments are expected." val () = if serr > 0 then prerrln! ": fewer arguments are expected." in the_trans3errlst_add (T3E_d2exp_trdn_lam_dyn (d2e0, s2e0)) end // end of [if] // end of [val] // val (pfd2v | ()) = the_d2varenv_push_lam (lin1) val () = the_d2varenv_add_p3atlst (p3ts_arg) val (pfman | ()) = the_pfmanenv_push_lam (lin1) // lin:0/1:stopping/continuing val () = the_pfmanenv_add_p3atlst (p3ts_arg) val (pflamlp | ()) = the_lamlpenv_push_lam (p3ts_arg) // val d3e_body = d2exp_trdn (d2e_body, s2e_res) // val () = the_d2varenv_check (loc0) val () = if lin > 0 then the_d2varenv_check_llam (loc0) // val () = the_effenv_pop (pfeff | (*none*)) val () = the_d2varenv_pop (pfd2v | (*none*)) val () = the_pfmanenv_pop (pfman | (*none*)) val () = the_lamlpenv_pop (pflamlp | (*none*)) // val () = trans3_env_pop_and_add_main (pfpush | loc0) // in d3exp_lam_dyn (loc0, s2e0, lin, npf, p3ts_arg, d3e_body) end // end of [S2Efun] // | S2Euni (s2vs, s2ps, s2e) => let val (pfpush | ()) = trans3_env_push () val () = trans3_env_add_svarlst (s2vs) val () = trans3_env_hypadd_proplst (loc0, s2ps) val d3e0 = d2exp_trdn (d2e0, s2e) val () = trans3_env_pop_and_add_main (pfpush | loc0) in d3exp_lam_sta (loc0, s2e0, s2vs, s2ps, d3e0) end // end of [S2Euni] // | S2Erefarg (knd, s2e) => let val s2f = s2exp2hnf (s2e) in d2exp_trdn_lam_dyn (d2e0, s2f) end // end of [s2Erefarg] // | _ => let val d3e0 = d2exp_trup (d2e0) in d3exp_trdn (d3e0, s2e0) end // end of [let] // end // end of [d2exp_trdn_lam_dyn] (* ****** ****** *) implement d2exp_trdn_lam_sta_nil (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc val s2e0 = s2hnf2exp (s2f0) // in // case+ s2e0.s2exp_node of | S2Euni (s2vs, s2ps, s2e) => let val (pfpush | ()) = trans3_env_push () val () = trans3_env_add_svarlst (s2vs) val () = trans3_env_hypadd_proplst (loc0, s2ps) val d3e0 = d2exp_trdn (d2e0, s2e) val () = trans3_env_pop_and_add_main (pfpush | loc0) in d3exp_lam_sta (loc0, s2e0, s2vs, s2ps, d3e0) end // end of [S2Euni] | _ => let val-D2Elam_sta (_(*s2vs*), s2ps, d2e_body) = d2e0.d2exp_node // end of [val] val () = trans3_env_add_proplst (loc0, s2ps) in d2exp_trdn (d2e_body, s2e0) end // end of [_] // end // end of [d2exp_trdn_lam_sta_nil] (* ****** ****** *) implement d2exp_trdn_ifhead (d2e0, s2f_if) = let (* val () = println! ("d2exp_trdn_ifhead: d2e0 = ", d2e0) val () = println! ("d2exp_trdn_ifhead: s2f_if = ", s2f_if) *) val loc0 = d2e0.d2exp_loc val-D2Eifhead (invres, d2e_cond, d2e_then, od2e_else) = d2e0.d2exp_node // end of [val] // val s2e_bool = s2exp_bool_t0ype() // val d3e_cond = d2exp_trup(d2e_cond) val () = d3exp_open_and_add(d3e_cond) val s2e_cond = d3exp_get_type(d3e_cond) val d3e_cond = d3exp_trdn (d3e_cond, s2e_bool) val s2f_cond = s2exp2hnf (s2e_cond) val os2p_cond = un_s2exp_bool_index_t0ype (s2f_cond) // val s2e0 = s2hnf2exp (s2f_if) val lsbis = the_d2varenv_save_lstbefitmlst () var lsaft = lstaftc3nstr_initize (lsbis) // val loc_then = d2e_then.d2exp_loc val ctr_then = c3nstroptref_make_none(loc_then) val d3e_then = let val (pfpush|()) = trans3_env_push((*void*)) val () = trans3_env_hypadd_propopt( d2e_cond.d2exp_loc , $UN.castvwtp1{s2expopt}{s2expopt_vt}(os2p_cond) ) (* trans3_env_hypadd_propopt *) val d3e_then = d2exp_trdn(d2e_then, s2e0) val () = trans3_env_add_cnstr_ref (ctr_then) val () = trans3_env_pop_and_add_main (pfpush | loc_then) in d3e_then end // end of [val] val ((*void*)) = lstaftc3nstr_update(lsaft, ctr_then) // val () = lstbefitmlst_restore_type(lsbis) // val d2e_else = ( case+ od2e_else of | Some d2e_else => d2e_else | None ((*void*)) => let val loc_else = $LOC.location_rightmost(loc_then) // end of [val] in d2exp_empty(loc_else) end // end of [None] ) : d2exp // end of [val] val loc_else = d2e_else.d2exp_loc val ctr_else = c3nstroptref_make_none(loc_else) val d3e_else = let val (pfpush|()) = trans3_env_push() val () = trans3_env_hypadd_propopt_neg ( d2e_cond.d2exp_loc , $UN.castvwtp1{s2expopt}{s2expopt_vt}(os2p_cond) ) (* trans3_env_hypadd_propopt_neg *) val d3e_else = d2exp_trdn(d2e_else, s2e0) val () = trans3_env_add_cnstr_ref(ctr_else) val () = trans3_env_pop_and_add_main(pfpush | loc_else) in d3e_else end // end of [val] val ((*void*)) = lstaftc3nstr_update (lsaft, ctr_else) // val ((*void*)) = option_vt_free (os2p_cond) // val ((*void*)) = lstaftc3nstr_process (lsaft, invres) // val () = lstaftc3nstr_finalize (lsaft) val ((*void*)) = i2nvresstate_update (loc0, invres) // in d3exp_if (loc0, s2e0, d3e_cond, d3e_then, d3e_else) end // end of [d2exp_trdn_ifhead] (* ****** ****** *) implement d2exp_trdn_sifhead (d2e0, s2f_sif) = let // val loc0 = d2e0.d2exp_loc val-D2Esifhead (invres, s2p_cond, d2e_then, d2e_else) = d2e0.d2exp_node // end of [val] // val s2e0 = s2hnf2exp (s2f_sif) val lsbis = the_d2varenv_save_lstbefitmlst () var lsaft = lstaftc3nstr_initize (lsbis) // val loc_then = d2e_then.d2exp_loc val ctr_then = c3nstroptref_make_none (loc_then) val d3e_then = let val (pfpush|()) = trans3_env_push() val () = trans3_env_hypadd_prop (loc0, s2p_cond) val d3e_then = d2exp_trdn (d2e_then, s2e0) val ((*void*)) = trans3_env_add_cnstr_ref (ctr_then) val ((*void*)) = trans3_env_pop_and_add_main (pfpush | loc_then) in d3e_then end // end of [val] val ((*void*)) = lstaftc3nstr_update(lsaft, ctr_then) // val () = lstbefitmlst_restore_type(lsbis) // val loc_else = d2e_then.d2exp_loc val ctr_else = c3nstroptref_make_none (loc_else) val d3e_else = let val (pfpush|()) = trans3_env_push() val () = trans3_env_hypadd_prop (loc0, s2exp_bneg(s2p_cond)) // trans3_env_hypadd_prop val d3e_else = d2exp_trdn(d2e_else, s2e0) val ((*void*)) = trans3_env_add_cnstr_ref(ctr_else) val ((*void*)) = trans3_env_pop_and_add_main(pfpush | loc_else) in d3e_else end // end of [val] val ((*void*)) = lstaftc3nstr_update(lsaft, ctr_else) // val ((*void*)) = lstaftc3nstr_process (lsaft, invres) // val () = lstaftc3nstr_finalize (lsaft) val ((*void*)) = i2nvresstate_update (loc0, invres) // in d3exp_sif(loc0, s2e0, s2p_cond, d3e_then, d3e_else) end // end of [d2exp_trdn_sifhead] (* ****** ****** *) // local // fun f_conjtest_conj ( os2p_conj: s2expopt_vt , os2p_test: s2expopt_vt ) : s2expopt_vt = ( case+ os2p_conj of | ~None_vt() => ( case+ os2p_test of | ~None_vt() => None_vt() | ~Some_vt(s2p_test) => Some_vt(s2exp_bneg(s2p_test)) // end of [Some_vt] ) (* None_vt *) | ~Some_vt(s2p_conj) => ( case+ os2p_test of | ~None_vt() => Some_vt(s2p_conj) | ~Some_vt(s2p_test) => Some_vt(s2exp_bmul(s2p_conj, s2exp_bneg(s2p_test))) // end of [Some_vt] ) (* Some_vt *) ) (* end of [f_conjtest_conj] *) // fun f_conjtest_test ( os2p_conj: !s2expopt_vt , os2p_test: !s2expopt_vt ) : s2expopt_vt = ( // case+ os2p_conj of | None_vt((*void*)) => let prval () = fold@(os2p_conj) in case+ os2p_test of | None_vt() => (fold@(os2p_test); None_vt()) | Some_vt(s2p_test) => (fold@(os2p_test); Some_vt(s2p_test)) end // end of [None_vt] | Some_vt(s2p_conj) => opt where { val opt = ( case+ os2p_test of | None_vt() => (fold@(os2p_test); Some_vt(s2p_conj)) | Some_vt(s2p_test) => (fold@(os2p_test); Some_vt(s2exp_bmul(s2p_conj, s2p_test))) ) : s2expopt_vt prval () = fold@(os2p_conj) } (* end of [Some_vt] *) ) (* end of [f_conjtest_test] *) // fun auxlst1_check ( x0: i2fcl , xs: i2fclist , s2e_if: s2exp , os2p_conj: s2expopt_vt , lsbis: lstbefitmlst, lsaft: !lstaftc3nstr ) : i3fclist = let // val loc = x0.i2fcl_loc val ctr = c3nstroptref_make_none(loc) val d2e_test = x0.i2fcl_test val d2e_body = x0.i2fcl_body // val s2e_bool = s2exp_bool_t0ype() // val d3e_test = ( // case+ d2e_test.d2exp_node of (* case+ *) | D2Etop() => let val loc = d2e_test.d2exp_loc in d3exp_bool(loc, s2e_bool, true) end // end of [D2Etop] | _(*non-D2Etop*) => d2exp_trup(d2e_test) // ) : d3exp // end of [val] // val () = d3exp_open_and_add(d3e_test) val s2e_test = d3exp_get_type(d3e_test) val d3e_test = d3exp_trdn(d3e_test, s2e_bool) // val s2f_test = s2exp2hnf(s2e_test) val os2p_test = un_s2exp_bool_index_t0ype(s2f_test) val os2p_test2 = f_conjtest_test(os2p_conj, os2p_test) // val (pfpush|()) = trans3_env_push((*void*)) val () = trans3_env_hypadd_propopt( d2e_test.d2exp_loc , $UN.castvwtp1{s2expopt}{s2expopt_vt}(os2p_test2) ) (* trans3_env_hypadd_propopt *) val d3e_body = d2exp_trdn(d2e_body, s2e_if) // val ((*void*)) = trans3_env_add_cnstr_ref(ctr) val ((*void*)) = trans3_env_pop_and_add_main(pfpush | loc) // val ifcl = i3fcl_make(loc, d3e_test, d3e_body) // val ((*void*)) = option_vt_free(os2p_test2) val ((*void*)) = lstaftc3nstr_update (lsaft, ctr) // in // case+ xs of | list_nil() => let val () = option_vt_free(os2p_conj) val () = option_vt_free(os2p_test) in list_cons(ifcl, list_nil((*void*))) end // end of [list_nil] | list_cons(x, xs) => list_cons(ifcl, ifcls_rest) where { val os2p_conj2 = f_conjtest_conj(os2p_conj, os2p_test) // end of [val] val () = lstbefitmlst_restore_type(lsbis) val ifcls_rest = auxlst1_check (x, xs, s2e_if, os2p_conj2, lsbis, lsaft) // auxlst1_check } (* end of [list_cons] *) // end // end of [auxlst1_check] // in (* in-of-local *) implement d2exp_trdn_ifcasehd (d2e0, s2f_if) = let // (* val () = println! ( "d2exp_trdn_ifcasehd: d2e0 = ", d2e0 ) (* println! *) val () = println! ( "d2exp_trdn_ifcasehd: s2f_if = ", s2f_if ) (* println! *) *) // val loc0 = d2e0.d2exp_loc // val- D2Eifcasehd (knd, invres, ifcls) = d2e0.d2exp_node // val s2e0 = s2hnf2exp(s2f_if) // val lsbis = the_d2varenv_save_lstbefitmlst() // var lsaft = lstaftc3nstr_initize(lsbis) // val ifcls = ( // case+ : ( lsaft: lstaftc3nstr ) => ifcls of | list_nil() => list_nil((*void*)) // end of [list_nil] | list_cons(x0, xs) => ( auxlst1_check (x0, xs, s2e0, None_vt(*conj*), lsbis, lsaft) // auxlst1_check ) (* end of [list_cons] *) // ) : i3fclist // end of [val] // val ((*void*)) = lstaftc3nstr_process(lsaft, invres) // val ((*void*)) = lstaftc3nstr_finalize(lsaft) val ((*void*)) = i2nvresstate_update(loc0, invres) // val () = if (knd = 0) then { // val () = prerr_error3_loc (loc0) // val () = prerrln! ( ": else-clause is missing in the ifcase-expression" ) (* println! *) // val () = the_trans3errlst_add(T3E_d2exp_trdn_ifcasehd(d2e0)) // } (* end of [if] *) // end of [val] // in d3exp_ifcase(loc0, s2e0, knd, ifcls) end // end of [d2exp_trdn_ifcasehd] // end // end of [local] // (* ****** ****** *) implement d2exp_trdn_letwhere (d2e0, s2f0, d2cs, d2e_scope) = let // (* val () = println! ( "d2exp_trdn_letwhere: d2e0 = ", d2e0 ) (* println! *) val () = println! ( "d2exp_trdn_letwhere: s2f0 = ", s2f0 ) (* println! *) *) // val loc0 = d2e0.d2exp_loc val s2e0 = s2hnf2exp(s2f0) // val (pfpush_eff | ()) = the_effenv_push () val (pfpush_s2cst | ()) = the_s2cstbindlst_push () val (pfpush_d2var | ()) = the_d2varenv_push_let () // val d3cs = d2eclist_tr (d2cs) val d3e_scope = d2exp_trdn (d2e_scope, s2e0) // val () = the_d2varenv_check (loc0) // val () = the_effenv_pop (pfpush_eff | (*none*)) val () = the_s2cstbindlst_pop_and_unbind (pfpush_s2cst | (*none*)) val () = the_d2varenv_pop (pfpush_d2var | (*none*)) // in d3exp_let (loc0, d3cs, d3e_scope) end // end of [d2exp_trdn_letwhere] (* ****** ****** *) implement d2exp_trdn_top (d2e0, s2f0) = let val loc0 = d2e0.d2exp_loc val s2e0 = s2hnf2exp (s2f0) in d3exp_top (loc0, s2e0) end // end of [d2exp_trdn_top] (* ****** ****** *) local fun auxerrlen ( loc0: loc_t, serr: int ) : void = () where { // val () = prerr_error3_loc(loc0) // val () = if serr < 0 then prerrln! ": more record fields than expected." val () = if serr > 0 then prerrln! ": fewer record fields than expected." // } // end if [auxerrlen] (* ****** ****** *) fun auxtup ( d2es: d2explst , ls2es: labs2explst, serr: &int ) : d3explst = let in // case+ d2es of | list_cons (d2e, d2es) => let in case+ ls2es of | list_nil() => let val () = serr := serr+1 in list_nil() // end of [val] end // end of [list_nil] | list_cons (ls2e, ls2es) => let val+ SLABELED (l, name, s2e) = ls2e // end of [val] val d3e = d2exp_trdn(d2e, s2e) val d3es = auxtup(d2es, ls2es, serr) in list_cons (d3e, d3es) end // end of [list_cons] end // end of [list_cons] | list_nil ((*void*)) => let in case+ ls2es of | list_nil() => list_nil() | list_cons _ => let val () = serr := serr-1 in list_nil() end // end of [list_cons] end // end of [list_nil] // end // end of [auxtup] fun auxrec ( ld2es: labd2explst , ls2es: labs2explst, serr: &int ) : labd3explst = let in // case+ ld2es of | list_nil ((*void*)) => let in case+ ls2es of | list_nil ((*void*)) => list_nil() // list_nil | list_cons _ => let val () = serr := serr-1 in list_nil() // end of [val] end // end of [list_cons] end // end of [list_nil] | list_cons (ld2e, ld2es) => let val $SYN.DL0ABELED(l0, d2e) = ld2e in case+ ls2es of | list_nil() => let val () = serr := serr+1 in list_nil() // end of [val] end // end of [list_nil] | list_cons (ls2e, ls2es) => let val+ SLABELED (_, name, s2e) = ls2e // end of [val] val d3e = d2exp_trdn(d2e, s2e) val ld3e = $SYN.DL0ABELED(l0, d3e) val ld3es = auxrec(ld2es, ls2es, serr) in list_cons(ld3e, ld3es) end // end of [list_cons] end // end of [list_cons] // end // end of [auxrec] in (* in-of-local *) implement d2exp_trdn_tup (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc val-D2Etup (knd, npf, d2es) = d2e0.d2exp_node val s2e0 = s2hnf2exp (s2f0) // in // case+ s2e0.s2exp_node of // | S2Etyrec ( knd1, npf1, ls2es ) => let // var err: int = 0 val () = $SOL.boxity_equal_solve_err (loc0, knd, knd1, err) val () = $SOL.pfarity_equal_solve_err (loc0, npf, npf1, err) val () = if err != 0 then { val () = prerr_the_staerrlst () val () = the_trans3errlst_add(T3E_d2exp_trdn_tup(d2e0, s2e0)) } (* end of [if] *) // end of [val] // var serr: int = 0 val d3es = auxtup (d2es, ls2es, serr) val () = if (serr != 0) then { val () = auxerrlen (loc0, serr) val () = the_trans3errlst_add(T3E_d2exp_trdn_tup(d2e0, s2e0)) } (* end of [if] *) // end of [val] // in d3exp_tup(loc0, s2e0, knd, npf, d3es) end // end of [S2Etyrec] | _ (*non-S2Etyrec*) => d2exp_trdn_rest(d2e0, s2f0) // end // end of [d2exp_trdn_tup] implement d2exp_trdn_rec (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc val-D2Erec (knd, npf, ld2es) = d2e0.d2exp_node val s2e0 = s2hnf2exp (s2f0) // in // case+ s2e0.s2exp_node of // case+ // | S2Etyrec ( knd1, npf1, ls2es ) => let var err: int = 0 val () = $SOL.boxity_equal_solve_err(loc0, knd, knd1, err) val () = $SOL.pfarity_equal_solve_err(loc0, npf, npf1, err) val () = if err != 0 then { val () = prerr_the_staerrlst () val () = the_trans3errlst_add(T3E_d2exp_trdn_rec(d2e0, s2e0)) } // end of [if] // end of [val] var serr: int = 0 val ld3es = auxrec (ld2es, ls2es, serr) val () = if (serr != 0) then { val () = auxerrlen (loc0, serr) val () = the_trans3errlst_add(T3E_d2exp_trdn_rec(d2e0, s2e0)) } // end of [if] // end of [val] // in d3exp_rec(loc0, s2e0, knd, npf, ld3es) end // end of [S2Etyrec] | _ (* non-S2Etyrec *) => d2exp_trdn_rest(d2e0, s2f0) // end // end of [d2exp_trdn_rec] end // end of [local] (* ****** ****** *) implement d2exp_trdn_seq (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc val-D2Eseq (d2es) = d2e0.d2exp_node val s2e0 = s2hnf2exp (s2f0) // fun aux ( d2e: d2exp , d2es: d2explst , s2e_void: s2exp , s2e0: s2exp ) : d3explst = ( case+ d2es of | list_cons (d2e1, d2es1) => let val d3e = d2exp_trdn (d2e, s2e_void) val d3es = aux (d2e1, d2es1, s2e_void, s2e0) in list_cons (d3e, d3es) end // end of [list_cons] | list_nil () => let val d3e = d2exp_trdn (d2e, s2e0) in list_sing (d3e) end // end of [list_nil] ) (* end of [aux] *) // val s2e_void = s2exp_void_t0ype () // in // case+ d2es of | list_cons (d2e, d2es) => let var s2e_res: s2exp // uninitized val d3es = aux (d2e, d2es, s2e_void, s2e0) in d3exp_seq (loc0, s2e0, d3es) end // end of [list_cons] | list_nil ((*void*)) => let val d3e = d3exp_empty (loc0, s2e_void) // end of [val] in d3exp_trdn (d3e, s2e0) end // end of [list_nil] end // end of [d2exp_trdn_seq] (* ****** ****** *) implement d2exp_trdn_raise (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc // val- D2Eraise (d2e_exn) = d2e0.d2exp_node // val err = the_effenv_check_exn (loc0) // end of [val] val () = if (err > 0) then the_trans3errlst_add(T3E_d2exp_trup_exn(loc0)) // end of [if] // end of [val] // val s2e0 = s2hnf2exp (s2f0) // val s2e_exn = s2exp_exception_vtype () val d3e_exn = d2exp_trdn (d2e_exn, s2e_exn) // in d3exp_raise (loc0, s2e0, d3e_exn) end // end of [d2exp_trdn_raise] (* ****** ****** *) implement d2exp_trdn_effmask (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc // val- D2Eeffmask (s2fe, d2e1) = d2e0.d2exp_node // val (pfpush|()) = the_effenv_push_effmask (s2fe) // val s2e0 = s2hnf2exp (s2f0) val d3e1 = d2exp_trdn (d2e1, s2e0) // val ((*void*)) = the_effenv_pop (pfpush | (*none*)) // in d3exp_effmask (loc0, s2fe, d3e1) end // end of [d2exp_trdn_effmask] (* ****** ****** *) implement d2exp_trdn_exist (d2e0, s2f0) = let val loc0 = d2e0.d2exp_loc val-D2Eexist (s2a, d2e1) = d2e0.d2exp_node val s2e0 = s2hnf2exp (s2f0) var err: int = 0; var s2ps0: s2explst_vt val s2e_ins = ( case+ s2e0.s2exp_node of | S2Ewthtype (s2e1, wths2e2) => let val (s2e1, s2ps1) = s2exp_exi_instantiate_sexparg (s2e1, s2a, err) val () = s2ps0 := s2ps1 in s2exp_wthtype (s2e1, wths2e2) end // end of [S2Ewthtype] | _ => s2e1 where { val (s2e1, s2ps1) = s2exp_exi_instantiate_sexparg (s2e0, s2a, err) val () = s2ps0 := s2ps1 } // end of [_] ) : s2exp // end of [val] val () = trans3_env_add_proplst_vt (loc0, s2ps0) (* val () = if err > 0 then { val () = prerr_error3_loc (loc0) val () = prerr ": existential abstraction mismatch" val () = the_trans3errlst_add (T3E_d2exp_trdn_exist (d2e0, s2e0)) } (* end of [if] *) // end of [val] *) in d2exp_trdn (d2e1, s2e_ins) end // end of [d2exp_trdn_exist] (* ****** ****** *) implement d2exp_trdn_delay (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc // val-D2Edelay(d2e) = d2e0.d2exp_node // val s2e0 = s2hnf2exp (s2f0) val s2eopt = un_s2exp_lazy_t0ype_type(s2f0) // in // case+ s2eopt of (* case+ *) // | ~None_vt((*void*)) => d2exp_trdn_rest(d2e0, s2f0) // end of [None_vt] | ~Some_vt(s2e) => d2exp_trup(d2e0) where { val loc = d2e.d2exp_loc val d2e = d2exp_ann_type(loc, d2e, s2e) val d2e0 = d2exp_delay(loc0, d2e) } (* end of [Some_vt] *) // end // end of [d2exp_trdn_delay] (* ****** ****** *) implement d2exp_trdn_ldelay (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc // val-D2Eldelay(d2e, d2eopt) = d2e0.d2exp_node // val s2e0 = s2hnf2exp (s2f0) val s2eopt = un_s2exp_lazy_vt0ype_vtype(s2f0) // in // case+ s2eopt of (* case+ *) // | ~None_vt((*void*)) => d2exp_trdn_rest(d2e0, s2f0) // end of [None_vt] | ~Some_vt(s2e) => d2exp_trup(d2e0) where { val d2e = d2exp_ann_type(d2e.d2exp_loc, d2e, s2e) // end of [val] val d2e0 = d2exp_ldelay(loc0, d2e, d2eopt) } (* end of [Some_vt] *) // end // end of [d2exp_trdn_ldelay] (* ****** ****** *) implement d2exp_trdn_trywith (d2e0, s2f0) = let // val loc0 = d2e0.d2exp_loc val-D2Etrywith (r2es, d2e, c2ls) = d2e0.d2exp_node // val (pfd2v | ()) = the_d2varenv_push_try () val (pfman | ()) = the_pfmanenv_push_try () // val s2e_res = s2hnf2exp (s2f0) val d3e = d2exp_trdn (d2e, s2e_res) val s2e_pat = s2exp_exception_vtype () val d3es = list_sing (d3e) val s2es_pat = list_sing (s2e_pat) val c3ls = c2laulst_trdn ( loc0, CK_case_neg, r2es, c2ls, d3es, s2es_pat, s2e_res ) (* end of [val] *) // val ((*void*)) = the_d2varenv_pop (pfd2v | (*none*)) val ((*void*)) = the_pfmanenv_pop (pfman | (*none*)) // in d3exp_trywith (loc0, d3e, c3ls) end // end of [d2exp_trdn_trywith] (* ****** ****** *) (* end of [pats_trans3_dynexp_dn.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_dynexp_up.dats0000644000175000017500000014732513431250607022676 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_trans3_dynexp_up" // (* ****** ****** *) // staload LAB = "./pats_label.sats" staload LOC = "./pats_location.sats" overload + with $LOC.location_combine overload print with $LOC.print_location // staload SYN = "./pats_syntax.sats" overload print with $SYN.print_macsynkind // (* ****** ****** *) (* ** for T_* constructors *) staload "./pats_lexing.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_patcst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload MAC = "./pats_dmacro2.sats" staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) extern fun d2exp_trup_sym (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_extval (d2e0: d2exp): d3exp extern fun d2exp_trup_extfcall (d2e0: d2exp): d3exp extern fun d2exp_trup_extmcall (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_con (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_tmpid (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_lst (d2e0: d2exp): d3exp extern fun d2exp_trup_tup (d2e0: d2exp): d3exp extern fun d2exp_trup_rec (d2e0: d2exp): d3exp extern fun d2exp_trup_seq (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_effmask(d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_vararg( d2e0: d2exp ): d3exp (* ****** ****** *) extern fun d2exp_trup_vcopyenv(d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_tempenver(d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_arg_body ( loc0: loc_t , fc0: funclo , lin: int, npf: int, p2ts: p2atlst, d2e: d2exp ) : (s2exp, p3atlst, d3exp) (* ****** ****** *) // extern fun d2exp_trup_letwhere (d2e0: d2exp, d2cs: d2eclist, d2e: d2exp): d3exp // end of [d2exp_trup_letwhere] // (* ****** ****** *) extern fun d2exp_trup_lam_dyn (d2e0: d2exp): d3exp extern fun d2exp_trup_laminit_dyn (d2e0: d2exp): d3exp extern fun d2exp_trup_lam_sta (d2e0: d2exp): d3exp extern fun d2exp_trup_lam_met (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_fix (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_delay (d2e0: d2exp): d3exp extern fun d2exp_trup_ldelay (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_for (d2e0: d2exp): d3exp extern fun d2exp_trup_while (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_trywith (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_mac (d2e0: d2exp): d3exp extern fun d2exp_trup_macsyn (d2e0: d2exp): d3exp (* ****** ****** *) extern fun d2exp_trup_solassert (d2e0: d2exp): d3exp extern fun d2exp_trup_solverify (d2e0: d2exp): d3exp (* ****** ****** *) fun d2exp_is_sym (d2e: d2exp): bool = let in // case+ d2e.d2exp_node of D2Esym _ => true | _ => false // end // end of [d2exp_is_sym] (* ****** ****** *) implement d2exp_trup (d2e0) = let // val loc0 = d2e0.d2exp_loc // (* val () = ( println! ("d2exp_trup: loc0 = ", loc0); println! ("d2exp_trup: d2e0 = ", d2e0); ) (* end of [val] *) *) // val d3e0 = ( case+ d2e0.d2exp_node of (* case+ *) // | D2Evar(d2v) => d2exp_trup_var(loc0, d2v) | D2Ecst(d2c) => d2exp_trup_cst(loc0, d2c) // | D2Eint(int) => d2exp_trup_int(d2e0, int) | D2Eintrep(rep) => d2exp_trup_intrep(d2e0, rep) // | D2Ebool(bool) => d2exp_trup_bool(d2e0, bool) | D2Echar(char) => d2exp_trup_char(d2e0, char) // | D2Efloat(rep) => d2exp_trup_float(d2e0, rep) | D2Estring(str) => d2exp_trup_string(d2e0, str) // | D2Ei0nt(tok) => d2exp_trup_i0nt(d2e0, tok) // | D2Ec0har(tok) => let val- T_CHAR(c) = tok.token_node in d2exp_trup_char(d2e0, c) end // end of [D2Ec0har] | D2Ef0loat (tok) => d2exp_trup_f0loat(d2e0, tok) | D2Es0tring (tok) => let val- T_STRING(str) = tok.token_node in d2exp_trup_string(d2e0, str) end // end of [D2Es0tring] // | D2Ecstsp(csp) => d2exp_trup_cstsp(d2e0, csp) // | D2Etyrep(s2e) => d2exp_trup_tyrep(d2e0, s2e) // | D2Eliteral(d2e) => d2exp_trup_literal(d2e0, d2e) // (* | D2Etop() => // case for analysis *) | D2Etop2(s2e) => d3exp_top(loc0, s2e) // | D2Eempty() => d3exp_empty(loc0, s2exp_void_t0ype()) // end of [D2Eempty] // | D2Eextval _ => d2exp_trup_extval (d2e0) | D2Eextfcall _ => d2exp_trup_extfcall (d2e0) | D2Eextmcall _ => d2exp_trup_extmcall (d2e0) // | D2Econ _ => d2exp_trup_con (d2e0) // | D2Esym _ => d2exp_trup_sym (d2e0) // | D2Efoldat _ => d2exp_trup_foldat (d2e0) | D2Efreeat _ => d2exp_trup_freeat (d2e0) // | D2Etmpid(_, _) => d2exp_trup_tmpid (d2e0) // | D2Elet (d2cs, d2e) => d2exp_trup_letwhere(d2e0, d2cs, d2e) // end of [D2Elet] | D2Ewhere (d2e, d2cs) => d2exp_trup_letwhere(d2e0, d2cs, d2e) // end of [D2Ewhere] // | D2Eapplst (_fun, _arg) => let (* val () = ( fprintln! (stdout_ref, "d2exp_trup: D2Eapplst: _fun = ", _fun); fprintln! (stdout_ref, "d2exp_trup: D2Eapplst: _arg = ", _arg); ) (* end of [val] *) *) in case+ _fun.d2exp_node of // case+ // | D2Esym(d2s) => d2exp_trup_applst_sym(d2e0, d2s, _arg) // end of [D2Esym] | D2Etmpid (d2e, t2mas) when d2exp_is_sym(d2e) => let val-D2Esym(d2s) = d2e.d2exp_node in d2exp_trup_applst_tmpsym(d2e0, d2s, t2mas, _arg) end // end of [D2Etmpid when ...] // | D2Emac(d2m) => let (* val () = ( println! ("d2exp_trup: D2Eapplst: D2Emac(bef): d2e0 = ", d2e0) ) (* end of [val] *) *) val d2e0 = $MAC.dmacro_eval_app_short (loc0, d2m, _arg) // end of [val] (* val () = ( println! ("d2exp_trup: D2Eapplst: D2Emac(aft): loc0 = ", loc0); println! ("d2exp_trup: D2Eapplst: D2Emac(aft): d2e0 = ", d2e0); ) (* end of [val] *) *) in d2exp_trup(d2e0) end // end of [D2Emac] // | _ (*rest-of-d0exp*) => let val opt = d2exp_get_seloverld(_fun) in case+ opt of | None () => d2exp_trup_applst(d2e0, _fun, _arg) // end of [None] | Some (d2s) => d2exp_trup_applst_seloverld(d2e0, _fun, d2s, _arg) // end of [Some] end // end of [rest-of-d0exp] end // end of [D2Eapplst] // | D2Eifhead (_, _, _, opt) => let val s2e_if = ( case+ opt of | None _ => s2exp_void_t0ype() | Some _ => s2exp_Var_make_srt (loc0, s2rt_t0ype) // end of [Some] ) : s2exp // end of [val] val s2f_if = s2exp2hnf_cast(s2e_if) in d2exp_trdn_ifhead (d2e0, s2f_if) end // end of [D2Eifhead] | D2Esifhead _ => let val s2e_sif = s2exp_Var_make_srt(loc0, s2rt_t0ype) val s2f_sif = s2exp2hnf_cast(s2e_sif) in d2exp_trdn_sifhead (d2e0, s2f_sif) end // end of [D2Esifhead] // | D2Eifcasehd (knd, _, _) => let val s2e_if = ( if knd = 0 then s2exp_void_t0ype() else s2exp_Var_make_srt(loc0, s2rt_t0ype) // end of [if] ) : s2exp // end of [val] val s2f_if = s2exp2hnf_cast(s2e_if) in d2exp_trdn_ifcasehd (d2e0, s2f_if) end // end of [D2Eifhead] // | D2Ecasehead _ => let val s2e_case = s2exp_Var_make_srt(loc0, s2rt_t0ype) val s2f_case = s2exp2hnf_cast(s2e_case) in d2exp_trdn_casehead (d2e0, s2f_case) end // end of [D2Ecasehead] | D2Escasehead _ => let val s2e_scase = s2exp_Var_make_srt(loc0, s2rt_t0ype) val s2f_scase = s2exp2hnf_cast(s2e_scase) in d2exp_trdn_scasehead (d2e0, s2f_scase) end // end of [D2Escasehead] // | D2Esing (d2e) => d2exp_trup (d2e) // | D2Elist (npf, d2es) => let val d2e0 = d2exp_tup_flt (loc0, npf,d2es) in d2exp_trup (d2e0) // end of [val] end // end of [D2Elist] // | D2Elst _ => d2exp_trup_lst (d2e0) | D2Etup _ => d2exp_trup_tup (d2e0) | D2Erec _ => d2exp_trup_rec (d2e0) | D2Eseq _ => d2exp_trup_seq (d2e0) // | D2Eselab (d2e, d2ls) => d2exp_trup_selab(loc0, d2e, d2ls) // end of [D2Eselab] // | D2Eptrof _ => d2exp_trup_ptrof (d2e0) | D2Eviewat _ => d2exp_trup_viewat (d2e0) // | D2Ederef(d2s, d2e) => d2exp_trup_deref(loc0, d2s, d2e, list_nil) // end of [D2Ederef] // | D2Eassgn _ => d2exp_trup_assgn (d2e0) | D2Exchng _ => d2exp_trup_xchng (d2e0) // | D2Earrsub ( d2s, arr, loc_ind, ind // d2s = lrbrackets ) => let val loc_arr = arr.d2exp_loc val loc_arg = (loc_arr + loc_ind) val d2es_arg = list_cons(arr, ind) val d2a = D2EXPARGdyn(~1(*npf*), loc_arg, d2es_arg) // val d2as = list_sing(d2a) // in d2exp_trup_applst_sym (d2e0, d2s, d2as) end // end of [D2Earrsub] | D2Earrpsz (opt, d2es) => let val s2e = ( case+ opt of | Some(s2e) => s2e | None((*void*)) => let val s2t = s2rt_t0ype in s2exp_Var_make_srt(loc0, s2t) end // end of [None] ) : s2exp // end of [val] val asz = list_length (d2es) val d3es = d2explst_trdn_elt(d2es, s2e) val s2e_arrpsz = s2exp_arrpsz_vt0ype_int_vt0ype(s2e, asz) // end of [val] in d3exp_arrpsz(loc0, s2e_arrpsz, s2e, d3es, asz) end // end of [D2Earrpsz] | D2Earrinit ( s2e_elt, opt, d2es ) => let // var s2i_asz : s2exp // val nxs = list_length (d2es) // val d3e_asz = ( case+ opt of // | None((*void*)) => d3e_asz where { val () = (s2i_asz := s2exp_int(nxs)) val s2e_asz = s2exp_int_index_t0ype(s2i_asz) val d3e_asz = d3exp_int (loc0, s2e_asz, nxs) } (* end of [None] *) // | Some (d2e_asz) => d3e_asz where { val d3e_asz = d2exp_trup(d2e_asz) val s2e_asz = d3exp_get_type(d3e_asz) val () = let val s2f = s2exp2hnf (s2e_asz) val opt = un_s2exp_g1size_index_t0ype(s2f) // end of [val] in case+ opt of | ~Some_vt(s2i) => (s2i_asz := s2i) | ~None_vt((*void*)) => let val s2i = s2exp_errexp(s2rt_int) in s2i_asz := s2i end // end of [None_vt] end // end of [let] // end of [val] } (* end of [Some] *) // ) : d3exp (* end of [val d3e_asz] *) // val s2e_elt = ( case+ d2es of | list_cons _ => s2e_elt | list_nil () => s2exp_top (0(*knd*), s2e_elt) ) : s2exp (* end of [val] *) val d3es = d2explst_trdn_elt (d2es, s2e_elt) // val s2e_tyarr = s2exp_tyarr (s2e_elt, list_sing(s2i_asz)) // in d3exp_arrinit (loc0, s2e_tyarr, s2e_elt, d3e_asz, d3es) end // end of [D2Earrinit] // | D2Eraise (d2e_exn) => let val err = the_effenv_check_exn (loc0) // end of [val] val () = if (err > 0) then the_trans3errlst_add (T3E_d2exp_trup_exn(loc0)) // end of [if] // end of [val] val s2e_exn = s2exp_exception_vtype () val d3e_exn = d2exp_trdn (d2e_exn, s2e_exn) val s2e_raise = s2exp_bottom_vt0ype_uni () in d3exp_raise (loc0, s2e_raise, d3e_exn) end // end of [D2Eraise] // | D2Eeffmask _ => d2exp_trup_effmask(d2e0) // | D2Evararg (_) => d2exp_trup_vararg(d2e0) // | D2Evcopyenv _ => d2exp_trup_vcopyenv(d2e0) // | D2Eshowtype (d2e) => d3e where { val d3e = d2exp_trup (d2e) val () = fshowtype_d3exp_up (d3e) } (* end of [D2Eshowtype] *) // | D2Etempenver _ => d2exp_trup_tempenver(d2e0) // | D2Elam_dyn _ => d2exp_trup_lam_dyn (d2e0) | D2Elaminit_dyn _ => d2exp_trup_laminit_dyn (d2e0) | D2Elam_sta _ => d2exp_trup_lam_sta (d2e0) | D2Elam_met _ => d2exp_trup_lam_met (d2e0) // | D2Efix(knd, d2v, def) => d2exp_trup_fix(d2e0) // | D2Edelay _ => d2exp_trup_delay(d2e0) | D2Eldelay _ => d2exp_trup_ldelay(d2e0) // | D2Efor _ => d2exp_trup_for (d2e0) | D2Ewhile _ => d2exp_trup_while (d2e0) | D2Eloopexn (knd) => d2exp_trup_loopexn (loc0, knd) // | D2Etrywith _ => d2exp_trup_trywith (d2e0) // | D2Eann_type (d2e, s2e_ann) => let val d3e = d2exp_trdn (d2e, s2e_ann) in d3exp_ann_type (loc0, d3e, s2e_ann) end // end of [D2Eann_type] // | D2Eann_seff (d2e, _(*s2fe*)) => let in d2exp_trup (d2e) // HX: [d2e] should be a value end // end of [D2Eann_seff] // | D2Emac _ => d2exp_trup_mac (d2e0) | D2Emacsyn _ => d2exp_trup_macsyn (d2e0) // | D2Esolassert _ => d2exp_trup_solassert (d2e0) | D2Esolverify _ => d2exp_trup_solverify (d2e0) // | D2Eerrexp((*error*)) => d3exp_errexp (loc0) // : [s2exp_t0ype_err] // | _(*unspported*) => let val () = prerr_interror_loc(loc0) val () = prerrln! (": d2exp_trup: d2e0 = ", d2e0) in exitloc(1) end // end of [_(*unsupported*)] // ) : d3exp // end of [val] (* val s2e0 = d3e0.d3exp_type val ( ) = ( print "d2exp_trup: d3e0.d3exp_type = "; pprint_s2exp (s2e0); print_newline () ) (* end of [val] *) *) in // d3e0 // the return value // end // end of [d2exp_trup] (* ****** ****** *) implement d2explst_trup (d2es) = l2l (list_map_fun (d2es, d2exp_trup)) // end of [d2explst_trup] (* ****** ****** *) fun d2explst_trup_arg ( d2es: d2explst ) : d23explst = let (* val () = println! ("d2explst_trup_arg: d2es = ", d2es) *) in // case+ d2es of // | list_cons (d2e, d2es) => let val d23e = let val isval = d2exp_is_varlamcst (d2e) (* val () = println! ("d2explst_trup_arg: d2e = ", d2e) val () = println! ("d2explst_trup_arg: isval = ", isval) *) in if isval then D23Ed2exp d2e else let val d3e = d2exp_trup (d2e) in D23Ed3exp d3e end // end of [else] // end of [if] end : d23exp // end of [val] val d23es = d2explst_trup_arg (d2es) in list_vt_cons (d23e, d23es) end // end of [cons] // | list_nil ((*void*)) => list_vt_nil () // end // end of [d2explst_trup_arg] (* ****** ****** *) fun d23explst_open_and_add {n:nat} .. ( d23es: !list_vt (d23exp, n) ) : void = let // fn fopr ( d23e: !d23exp ) : void = ( // case+ d23e of | D23Ed2exp d2e => let prval () = fold@(d23e) in (*nothing*) end // end of [D23Ed2exp] | D23Ed3exp d3e => let val () = d3exp_open_and_add(d3e) in fold@(d23e) // end of [val] end // end of [D23Ed3exp] // ) (* end of [fopr] *) // in case+ d23es of | list_vt_nil() => let prval () = fold@(d23es) in (*nothing*) end // end of [list_nil] | list_vt_cons (!p_d23e, !p_d23es) => let val () = fopr(!p_d23e) val () = d23explst_open_and_add(!p_d23es) prval ((*folded*)) = fold@(d23es) in // nothing end // end of [cons] end // end of [d23explst_open_and_add] (* ****** ****** *) (* // // HX-2014-03-02: not used? // fun d23explst_trup (d23es: d23explst): d3explst = case+ d23es of | ~list_vt_cons (d23e, d23es) => let val d3e = ( case+ d23e of | ~D23Ed2exp d2e => d2exp_trup (d2e) | ~D23Ed3exp d3e => d3e ) : d3exp // end of [val] in list_cons (d3e, d23explst_trup (d23es)) end // end of [cons] | ~list_vt_nil () => list_nil () // end of [d23explst_trup] *) (* ****** ****** *) fn d23explst_trdn ( locarg: loc_t , d23es: d23explst, s2es: s2explst ) : d3explst = let // fun aux ( d23es: d23explst, s2es: s2explst, err: &int ) : d3explst = let in // case+ d23es of | ~list_vt_nil () => ( case+ s2es of | list_nil() => list_nil() | list_cons _ => let val () = err := err - 1 in list_nil() end // end of [list_cons] ) (* end of [list_vt_nil] *) | ~list_vt_cons (d23e, d23es) => ( case+ s2es of | list_nil() => let val () = err := err + 1 val () = d23exp_free(d23e) val () = d23explst_free(d23es) in list_nil() end // end of [list_nil] | list_cons (s2e, s2es) => let val d3e = ( case+ d23e of | ~D23Ed2exp(d2e) => d2exp_trdn(d2e, s2e) | ~D23Ed3exp(d3e) => d3exp_trdn(d3e, s2e) ) : d3exp // end of [val] val d3es = aux(d23es, s2es, err) in list_cons(d3e, d3es) end // end of [list_cons] ) (* end of [list_vt_cons] *) end // end of [aux] // var serr: int = 0 val d3es = aux(d23es, s2es, serr) // val () = if (serr != 0) then let val () = prerr_error3_loc(locarg) val () = filprerr_ifdebug "d23explst_trdn" val () = prerr ": arity mismatch" val () = if serr < 0 then prerr ": more arguments are expected." val () = if serr > 0 then prerr ": fewer arguments are expected." val () = prerr_newline ((*void*)) in the_trans3errlst_add(T3E_d23explst_trdn_arity (locarg, serr)) end // end of [then] // in // d3es (* return value *) // end // end of [d23explst_trdn] (* ****** ****** *) implement d2var_get_type_some (loc0, d2v) = let // fun auxerr ( loc0: loc_t, d2v: d2var ) : void = let // val islin = d2var_is_linear(d2v) // val () = prerr_error3_loc (loc0) // val () = if islin then prerrln! (": the linear dynamic variable [", d2v, "] is no longer available.") // end of [if] // val () = if not(islin) then prerrln! (": the (non-linear) dynamic variable [", d2v, "] is not available for external use.") // end of [if] // in the_trans3errlst_add (T3E_d2var_typeless (loc0, d2v)) end // end of [auxerr] // val opt = d2var_get_type (d2v) // in // case+ opt of | Some s2e => s2e | None ((*void*)) => let val () = auxerr (loc0, d2v) in s2exp_t0ype_err () end // end of [None] // end // end of [d2var_get_type_some] (* ****** ****** *) implement d2exp_trup_var_mutabl (loc0, d2v) = let val-Some (s2l) = d2var_get_addr (d2v) var s2rt: s2exp val s2e_sel = s2addr_deref (loc0, s2l, list_nil, s2rt) in d3exp_var (loc0, s2e_sel, d2v) end // end of [d2exp_trup_var_mutabl] (* ****** ****** *) implement d2exp_trup_var_nonmut (loc0, d2v) = let // // HX: lin >= 0; nonlin = ~1 // val lin = d2var_get_linval (d2v) (* val () = ( println! ("d2exp_trup_var_nonmut: d2v = ", d2v); println! ("d2exp_trup_var_nonmut: lin = ", lin); ) (* end of [val] *) *) val s2qs = d2var_get_decarg (d2v) val s2e0 = d2var_get_type_some (loc0, d2v) // val () = if ( lin >= 0 ) then let val isllamlocal = the_d2varenv_d2var_is_llamlocal (d2v) // end of [val] in // if isllamlocal then let val () = d2var_inc_linval (d2v) in d2var_set_type (d2v, None) // HX: [d2v] is consumed end // end of [then] else let val () = prerr_error3_loc (loc0) val () = prerr ": the linear dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is expected to be local but it is not." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_d2var_trup_llamlocal (d2v)) end // end of [else] // end // end of [if] // end of [val] // in // case+ s2qs of | list_nil () => d3exp_var (loc0, s2e0, d2v) | list_cons _ => let var err: int = 0 val locsarg = $LOC.location_rightmost (loc0) val (s2e_tmp, s2ess) = s2exp_tmp_instantiate_rest (s2e0, locsarg, s2qs, err) in d3exp_tmpvar (loc0, s2e_tmp, d2v, s2ess) end // end of [list_cons] // end // end of [d2exp_trup_var_nonmut] implement d2exp_trup_var (loc0, d2v) = let in if d2var_is_mutabl (d2v) then d2exp_trup_var_mutabl (loc0, d2v) else d2exp_trup_var_nonmut (loc0, d2v) // end of [if] end // end of [d2exp_trup_var] (* ****** ****** *) implement d2exp_trup_cst (loc0, d2c) = let val s2e = d2cst_get_type (d2c) val s2qs = d2cst_get_decarg (d2c) in // case+ s2qs of | list_nil () => d3exp_cst (loc0, s2e, d2c) | list_cons _ => let var err: int = 0 val locsarg = $LOC.location_rightmost (loc0) val (s2e_tmp, s2ess) = s2exp_tmp_instantiate_rest (s2e, locsarg, s2qs, err) in d3exp_tmpcst (loc0, s2e_tmp, d2c, s2ess) end // end of [list_cons] // end // end of [d2cst_trup_cst] (* ****** ****** *) implement d2exp_trup_sym (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Esym(d2s) = d2e0.d2exp_node // val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "d2exp_trup_sym" // val () = prerrln! (": the symbol [", d2s, "] cannot be resolved.") // val () = the_trans3errlst_add (T3E_d2exp_trup_sym (d2e0)) // in d3exp_errexp (loc0) // : [s2exp_t0ype_err] end // end of [d2exp_trup_sym] (* ****** ****** *) implement d2exp_trup_extval (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Eextval(s2e, name) = d2e0.d2exp_node // in d3exp_extval (loc0, s2e, name) end // end of [d2exp_trup_extval] (* ****** ****** *) local fun auxerr ( loc0: loc_t, d3e: d3exp ) : void = let val loc = d3e.d3exp_loc val () = prerr_error3_loc (loc) val () = filprerr_ifdebug "d2exp_trup_extfcall" val () = prerr ": no linear argument is allowed for the extfcall." val () = prerr_newline () in the_trans3errlst_add (T3E_d3exp_extfcall_arg (loc0, d3e)) end // end of [auxerr] fun auxcheck ( loc0: loc_t, d3es: d3explst ) : void = let in // case+ d3es of | list_cons (d3e, d3es) => let val s2e = d3exp_get_type (d3e) val islin = s2exp_is_lin (s2e) val () = if islin then auxerr (loc0, d3e) in auxcheck (loc0, d3es) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [auxcheck] in (* in of [local] *) implement d2exp_trup_extfcall (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Eextfcall (s2e, _fun, _arg) = d2e0.d2exp_node val d3es_arg = d2explst_trup (_arg) val ((*void*)) = auxcheck (loc0, d3es_arg) in d3exp_extfcall (loc0, s2e, _fun, d3es_arg) end // end of [d2exp_trup_extfcall] end // end of [local] (* ****** ****** *) local fun auxerr ( loc0: loc_t, d3e: d3exp ) : void = let val loc = d3e.d3exp_loc val () = prerr_error3_loc (loc) val () = filprerr_ifdebug "d2exp_trup_extmcall" val () = prerr ": no linear argument is allowed for the extmcall." val () = prerr_newline () in the_trans3errlst_add (T3E_d3exp_extmcall_arg (loc0, d3e)) end // end of [auxerr] fun auxcheck ( loc0: loc_t, d3es: d3explst ) : void = let in // case+ d3es of | list_cons (d3e, d3es) => let val s2e = d3exp_get_type (d3e) val islin = s2exp_is_lin (s2e) val () = if islin then auxerr (loc0, d3e) in auxcheck (loc0, d3es) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [auxcheck] in (* in of [local] *) implement d2exp_trup_extmcall (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Eextmcall (s2e, _obj, _mtd, _arg) = d2e0.d2exp_node val d3e_obj = d2exp_trup (_obj) val d3es_arg = d2explst_trup (_arg) val ((*void*)) = auxcheck (loc0, d3es_arg) in d3exp_extmcall (loc0, s2e, d3e_obj, _mtd, d3es_arg) end // end of [d2exp_trup_extmcall] end // end of [local] (* ****** ****** *) implement d2exp_trup_con (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Econ ( d2c, locfun, s2as, npf, locarg, d2es_arg ) = d2e0.d2exp_node val s2e_con = d2con_get_type (d2c) // var err: int = 0 val (s2e, s2ps) = s2exp_uni_instantiate_sexparglst (s2e_con, s2as, err) // HX: [err] is not used val () = trans3_env_add_proplst_vt (locfun, s2ps) // val () = if (err > 0) then let val () = prerr_error3_loc (locfun) val () = filprerr_ifdebug "d2exp_trup_con" val () = prerr ": static application cannot be properly typechecked." val () = prerr_newline () in the_trans3errlst_add ( T3E_s2exp_uni_instantiate_sexparglst (locfun, s2e_con, s2as) ) // end of [the_trans3errlst_add] end // end of [val] // val d23es_arg = d2explst_trup_arg (d2es_arg) // end of [val] val () = d23explst_open_and_add (d23es_arg) // var err: int = 0 val locsarg = $LOC.location_rightmost (locfun) val (s2e, s2ps) = s2exp_uni_instantiate_all (s2e, locsarg, err) // HX: [err] is not used val () = trans3_env_add_proplst_vt (locsarg, s2ps) // in // case+ s2e.s2exp_node of | S2Efun ( _fc, _lin, _s2fe, npf_con, s2es_arg, s2e_res ) => let val err = $SOL.pfarity_equal_solve (loc0, npf_con, npf) val () = if (err > 0) then let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "d2exp_trup_con" val () = prerr ": proof arity mismatch: the constructor [" val () = prerr_d2con (d2c) val () = prerrf ("] requires [%i] arguments.", @(npf_con)) val () = prerr_newline () val () = prerr_the_staerrlst () in the_trans3errlst_add (T3E_d2exp_trup_con_npf (d2e0, npf)) // nothing end // end of [val] val d3es_arg = d23explst_trdn (locarg, d23es_arg, s2es_arg) in d3exp_con (loc0, s2e_res, d2c, npf, d3es_arg) end // end of [S2Efun] | _ => let val () = d23explst_free (d23es_arg) in d3exp_errexp (loc0) end // end of [_] // end // end [d2exp_trup_con] (* ****** ****** *) implement d2exp_trup_tmpcst (loc0, d2c, t2mas) = let // val locarg = $LOC.location_rightmost (loc0) // val s2qs = d2cst_get_decarg (d2c) val s2e_d2c = d2cst_get_type (d2c) // var err: int = 0 val (s2e_tmp, t2mas) = s2exp_tmp_instantiate_tmpmarglst (s2e_d2c, locarg, s2qs, t2mas, err) // end of [val] in d3exp_tmpcst (loc0, s2e_tmp, d2c, t2mas) end // end of [d2exp_trup_tmpcst] implement d2exp_trup_tmpvar (loc0, d2v, t2mas) = let // val locarg = $LOC.location_rightmost (loc0) val s2qs = d2var_get_decarg (d2v) val s2e_d2v = d2var_get_type_some (loc0, d2v) var err: int = 0 val (s2e_tmp, t2mas) = s2exp_tmp_instantiate_tmpmarglst (s2e_d2v, locarg, s2qs, t2mas, err) // end of [val] in d3exp_tmpvar (loc0, s2e_tmp, d2v, t2mas) end // end of [d2exp_trup_tmpvar] implement d2exp_trup_tmpid (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Etmpid (d2e_id, t2mas) = d2e0.d2exp_node // in // case+ d2e_id.d2exp_node of (* case+ *) | D2Ecst (d2c) => d2exp_trup_tmpcst (loc0, d2c, t2mas) | D2Evar (d2v) => d2exp_trup_tmpvar (loc0, d2v, t2mas) | _ => let // val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "d2exp_trup_tmpid" // val () = prerrln! ( ": a non-template is treated as a template: ", d2e0 ) (* end of [val] *) // val () = the_trans3errlst_add (T3E_d2exp_trup_tmpid (d2e0)) // in d3exp_errexp (loc0) end // end of [_] // end // end of [d2exp_trup_tmpid] (* ****** ****** *) implement d2exp_trup_applst (d2e0, d2e_fun, d2as_arg) = let val d3e_fun = d2exp_trup (d2e_fun) val () = d3exp_open_and_add (d3e_fun) in d23exp_trup_applst (d2e0, d3e_fun, d2as_arg) end // end of [d2exp_trup_applst] (* ****** ****** *) fun d23exp_trup_applst_sta ( d2e0: d2exp , d3e_fun: d3exp , s2as: s2exparglst, d2as: d2exparglst ) : d3exp = let (* val () = ( println! ("d23exp_trup_applst_sta: d2e0 = ", d2e0) ) (* end of [val] *) *) val loc_fun = d3e_fun.d3exp_loc val s2e_fun = d3e_fun.d3exp_type val loc_app = let fun aux ( loc: loc_t, s2as: s2exparglst ) : loc_t = ( case+ s2as of | list_nil () => loc | list_cons _ => let val s2a = list_last (s2as) in $LOC.location_combine (loc, s2a.s2exparg_loc) end // end of [list_cons] ) (* end of [aux] *) in aux (loc_fun, s2as) end // end of [let] // end of [val] // var err: int = 0 val (s2e_fun, s2ps) = s2exp_uni_instantiate_sexparglst (s2e_fun, s2as, err) val ((*void*)) = trans3_env_add_proplst_vt (loc_app, s2ps) // val ((*void*)) = if (err > 0) then let val () = prerr_error3_loc (loc_app) val () = filprerr_ifdebug "d2exp_trup_applst_sta" val ( ) = prerrln! (": static application cannot be properly typechecked.") // end of [val] in the_trans3errlst_add ( T3E_s2exp_uni_instantiate_sexparglst (loc_app, s2e_fun, s2as) ) // end of [the_trans3errlst_add] end // end of [let] // end of [val] // val d3e_fun = d3exp_app_sta (loc_app, s2e_fun, d3e_fun) in d23exp_trup_applst (d2e0, d3e_fun, d2as) end // end of [d2exp_trup_applst_sta] (* ****** ****** *) fun d23exp_trup_app23 ( d2e0: d2exp , d3e_fun: d3exp , npf: int, locarg: loc_t, d23es_arg: d23explst ) : d3exp = let // val loc_fun = d3e_fun.d3exp_loc val s2e_fun = d3e_fun.d3exp_type // (* val () = ( print "d23exp_trup_app23: s2e_fun = "; pprint_s2exp s2e_fun; print_newline () ) // end of [val] *) var err: int = 0 val locsarg = $LOC.location_rightmost (loc_fun) val (s2e_fun, s2ps) = s2exp_unimet_instantiate_all (s2e_fun, locsarg, err) val () = trans3_env_add_proplst_vt (locsarg, s2ps) (* val () = begin print "d23exp_trup_app23: s2e_fun = "; pprint_s2exp s2e_fun; print_newline () end // end of [val] *) val d3e_fun = d3exp_app_unista (loc_fun, s2e_fun, d3e_fun) // end of [d3e_fun] in // case+ s2e_fun.s2exp_node of // | S2Efun ( fc, _(*lin*), s2fe_fun, npf_fun, s2es_fun_arg, s2e_fun_res ) => let (* val () = begin print "d23exp_trup_app: s2e_fun = "; pprint_s2exp s2e_fun; print_newline (); print "d23exp_trup_app: s2fe_fun = "; pprint_s2eff s2fe_fun; print_newline (); printf ("d23exp_trup_app23: npf = %i and npf_fun = %i", @(npf, npf_fun)); print_newline () end // end of [val] *) // val err = $SOL.pfarity_equal_solve (loc_fun, npf_fun, npf) (* end of [val] *) // val () = if (err > 0) then let val () = prerr_error3_loc (loc_fun) val () = filprerr_ifdebug "d23exp_trup_app23" val () = prerr ": proof arity mismatch" val () = prerrf (": the function requires %i proof arguments.", @(npf_fun)) val () = prerr_newline () val () = prerr_the_staerrlst () in the_trans3errlst_add (T3E_d23exp_trup_app23_npf (loc_fun, npf)) end // end of [let] // end of [val] // val loc_app = $LOC.location_combine (loc_fun, locarg) val s2es_fun_arg = s2fun_opninv_and_add (locarg, s2es_fun_arg, s2e_fun_res) val d3es_arg = d23explst_trdn (locarg, d23es_arg, s2es_fun_arg) // val ( iswth , s2e_res , wths2es ) = un_s2exp_wthtype (loc_app, s2e_fun_res) // val d3e_fun = d3exp_fun_restore (fc, d3e_fun) val d3es_arg = ( if iswth then d3explst_arg_restore (d3es_arg, s2es_fun_arg, wths2es) else d3es_arg ) : d3explst // end of [val] // val err = the_effenv_check_s2eff (loc_app, s2fe_fun) // end of [val] val () = if (err > 0) then ( the_trans3errlst_add (T3E_d23exp_trup_app23_eff (loc_app, s2fe_fun)) ) // end of [if] // end of [val] in d3exp_app_dyn (loc_app, s2e_res, d3e_fun, npf, d3es_arg) end // end of [S2Efun] | _ => let val () = d23explst_free (d23es_arg) val () = prerr_error3_loc (loc_fun) val () = filprerr_ifdebug "d23exp_trup_app23" val ( ) = prerrln! ( ": the applied dynamic expression is of non-function type: ", s2e_fun ) (* end of [val] *) val () = the_trans3errlst_add (T3E_d23exp_trup_app23_fun (loc_fun, s2e_fun)) in d3exp_errexp (loc_fun) end // end of [_] // end // end of [d23exp_trup_app23] fun d23exp_trup_applst_dyn ( d2e0: d2exp , d3e_fun: d3exp , npf: int, locarg: loc_t, d2es_arg: d2explst , d2as: d2exparglst ) : d3exp = let val loc_fun = d3e_fun.d3exp_loc val loc_app = $LOC.location_combine (loc_fun, locarg) val s2e_fun = d3e_fun.d3exp_type val d23es_arg = d2explst_trup_arg (d2es_arg) val ((*void*)) = d23explst_open_and_add (d23es_arg) in // case+ s2e_fun.s2exp_node of | _ => let val d3e_fun = d23exp_trup_app23 ( d2e0, d3e_fun, npf, locarg, d23es_arg ) // end of [val] in d23exp_trup_applst (d2e0, d3e_fun, d2as) end (* end of [_] *) // end // end of [d2exp_trup_applst_dyn] (* ****** ****** *) implement d23exp_trup_applst ( d2e0: d2exp , d3e_fun: d3exp, d2as: d2exparglst ) : d3exp = let (* val () = ( fprintln! (stdout_ref, "d23exp_trup_applst: d3e_fun = ", d3e_fun); fprintln! (stdout_ref, "d23exp_trup_applst: d2as = ", d2as); ) // end of [val] *) in // case+ d2as of | list_cons (d2a, d2as) => ( case+ d2a of | D2EXPARGsta (locarg, s2as) => ( d23exp_trup_applst_sta (d2e0, d3e_fun, s2as, d2as) ) (* end of [D2EXPARGsta] *) | D2EXPARGdyn (npf, locarg, d2es_arg) => ( d23exp_trup_applst_dyn (d2e0, d3e_fun, npf, locarg, d2es_arg, d2as) ) (* end of [D2EXPARGdyn] *) ) // end of [cons] | list_nil ((*void*)) => d3e_fun // end // end of [d2exp_trup_applst] (* ****** ****** *) implement d2exp_trup_lst (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Elst (lin, opt, d2es) = d2e0.d2exp_node (* val () = println! ("d2exp_trup_lst: lin = ", lin) *) val islin = ( if lin >= 0 then test_linkind (lin) else false ) : bool // end of [val] val isnonlin = not(islin) val s2e_elt = ( // case+ opt of | Some s2e => s2e | None ((*void*)) => let val s2t = ( if isnonlin then s2rt_t0ype else s2rt_vt0ype ) : s2rt // end of [val] in s2exp_Var_make_srt (loc0, s2t) end // end of [None] // ) : s2exp // end of [val] val n = list_length (d2es) val d3es = d2explst_trdn_elt(d2es, s2e_elt) val isnonlin = ( if lin >= 0 then isnonlin else s2exp_is_nonlin (s2e_elt) // end of [if] ) : bool // end of [val] val s2e_lst = ( // if isnonlin then s2exp_list_t0ype_int_type (s2e_elt, n) else s2exp_list_vt0ype_int_vtype (s2e_elt, n) // ) : s2exp // end of [val] // in d3exp_lst(loc0, s2e_lst, lin, s2e_elt, d3es) end // end of [d2exp_trup_lst] (* ****** ****** *) implement d2exp_trup_tup (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Etup(knd, npf, d2es) = d2e0.d2exp_node // (* val () = ( fprintln! (stdout_ref, "d2exp_trup_tup: knd = ", knd); fprintln! (stdout_ref, "d2exp_trup_tup: d2es = ", d2es); ) *) // val d3es = d2explst_trup(d2es) // val ls2es = d3explst_get_labtype(d3es) val s2tup = s2exp_tyrec(knd, npf, ls2es) // (* val () = ( fprintln! (stdout_ref, "d2exp_trup_tup: s2e_tup = ", s2e_tup); ) *) // in d3exp_tup(loc0, s2tup, knd, npf, d3es) end // end of [d2exp_trup_tup] (* ****** ****** *) // extern fun labd3explst_get_type (ld3es: labd3explst): labs2explst // implement labd3explst_get_type(ld3es) = let fn fopr ( ld3e: labd3exp ) : labs2exp = let val $SYN.DL0ABELED (l, d3e) = ld3e in SLABELED (l.l0ab_lab, None, d3e.d3exp_type) end // end of [f] in list_of_list_vt(list_map_fun(ld3es, fopr)) end // end of [labd3explst_get_type] // (* ****** ****** *) implement d2exp_trup_rec (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Erec (recknd, npf, ld2es) = d2e0.d2exp_node // (* val () = ( print "d2exp_trup_rec: ld2es = "; print_labd2explst ld2es; print_newline () ) // end of [val] *) // fun aux ( ld2es: labd2explst ) : labd3explst = ( case+ ld2es of | list_nil() => list_nil() | list_cons(ld2e, ld2es) => let val $SYN.DL0ABELED(l, d2e) = ld2e val ld3e = $SYN.DL0ABELED(l, d2exp_trup (d2e)) // end of [val] in list_cons (ld3e, aux(ld2es)) end // end of [list_cons] ) (* end of [aux] *) // val ld3es = aux ld2es // val ls2es = labd3explst_get_type(ld3es) val s2e_rec = s2exp_tyrec(recknd, npf, ls2es) // in d3exp_rec(loc0, s2e_rec, recknd, npf, ld3es) end // end of [d2exp_trup_rec] (* ****** ****** *) implement d2exp_trup_seq (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Eseq (d2es) = d2e0.d2exp_node // fun aux ( d2e: d2exp , d2es: d2explst , s2e_res: &(s2exp?) >> s2exp , s2e_void: s2exp ) : d3explst = case+ :( s2e_res: s2exp ) => d2es of | list_cons (d2e1, d2es1) => let val d3e = d2exp_trdn (d2e, s2e_void) val d3es = aux (d2e1, d2es1, s2e_res, s2e_void) in list_cons (d3e, d3es) end // end of [cons] | list_nil () => let val d3e = d2exp_trup (d2e) val () = s2e_res := s2exp_hnfize (d3e.d3exp_type) in list_sing (d3e) end // end of [nil] // end of [aux] // val s2e_void = s2exp_void_t0ype () // in // case+ d2es of | list_cons (d2e, d2es) => let var s2e_res: s2exp // uninitized val d3es = aux (d2e, d2es, s2e_res, s2e_void) in d3exp_seq (loc0, s2e_res, d3es) end // end of [cons] | list_nil () => d3exp_empty (loc0, s2e_void) // end // end of [d2exp_trup_seq] (* ****** ****** *) implement d2exp_trup_letwhere (d2e0, d2cs, d2e_scope) = let val loc0 = d2e0.d2exp_loc val (pfpush_eff | ()) = the_effenv_push () val (pfpush_s2cst | ()) = the_s2cstbindlst_push () val (pfpush_d2var | ()) = the_d2varenv_push_let () // val d3cs = d2eclist_tr (d2cs) val d3e_scope = d2exp_trup (d2e_scope) // val () = the_d2varenv_check (loc0) // val () = the_effenv_pop (pfpush_eff | (*none*)) val () = the_s2cstbindlst_pop_and_unbind (pfpush_s2cst | (*none*)) val () = the_d2varenv_pop (pfpush_d2var | (*none*)) in d3exp_let (loc0, d3cs, d3e_scope) end // end of [d2exp_trup_letwhere] (* ****** ****** *) implement d2exp_trup_effmask (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Eeffmask (s2fe, d2e) = d2e0.d2exp_node val (pfpush | ()) = the_effenv_push_effmask (s2fe) val d3e = d2exp_trup (d2e) val () = the_effenv_pop (pfpush | (*none*)) // in d3exp_effmask (loc0, s2fe, d3e) end // end of [d2exp_trup_effmask] (* ****** ****** *) implement d2exp_trup_vararg (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Evararg(d2es) = d2e0.d2exp_node // (* val () = ( fprintln! (stdout_ref, "d2exp_trup_vararg: d2es = ", d2es); ) *) // val d3es = d2explst_trup(d2es) // val s2es = d3explst_get_type(d3es) val s2types = s2exp_types_list(s2es) // (* val () = ( fprintln! (stdout_ref, "d2exp_trup_vararg: s2e_res = ", s2e_res); ) *) // in d3exp_vararg(loc0, s2types, d3es) end // end of [d2exp_trup_vararg] (* ****** ****** *) implement d2exp_trup_vcopyenv (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Evcopyenv (knd, d2e) = d2e0.d2exp_node // in // case+ d2e.d2exp_node of | D2Evar (d2v) => let val opt = d2var_get_type (d2v) // end of [val] val s2f = ( case+ opt of | Some s2e => ( if test_prfkind(knd) then s2exp_vcopyenv_v(s2e) else s2exp_vcopyenv_vt(s2e) // end of [if] ) (* end of [Some] *) | None () => s2exp_void_t0ype () ) : s2exp // end of [val] in d3exp_vcopyenv (loc0, s2f, knd, d2v) end // end of [D2Evar] | _(*non-D2Evar*) => d2exp_trup (d2e) // HX: ignoring [$vcopyenv] // end // end of [d2exp_trup_vcopyenv] (* ****** ****** *) implement d2exp_trup_tempenver (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Etempenver(d2vs) = d2e0.d2exp_node // in d3exp_tempenver (loc0, s2exp_void_t0ype(), d2vs) end // end of [d2exp_trup_tempenver] (* ****** ****** *) implement funarg_patck_exhaust ( loc0, p2ts_arg, s2es_arg ) = () where { // (* val p2tcs = list_map_fun(p2ts_arg, p2at2cst) *) val p2tcs = let // fun auxlst ( p2ts: p2atlst , s2es: s2explst ) : p2atcstlst_vt = case+ p2ts of | list_nil() => list_vt_nil() | list_cons (p2t, p2ts) => ( case+ s2es of | list_nil() => list_vt_nil() | list_cons (s2e, s2es) => let val p2tc = p2at2cst(p2t) val ((*void*)) = auxlinck(p2t, p2tc, s2e) // end of [val] in list_vt_cons(p2tc, auxlst(p2ts, s2es)) end // end of [list_cons] ) // and auxlinck ( p2t: p2at, p2tc: p2atcst, s2e: s2exp ) : void = ( case+ p2tc of | P2TCany() => () | _(* non-P2TCany *) => let val islin = s2exp_is_lin(s2e) in if islin then let val () = prerr_error3_loc(p2t.p2at_loc) val () = filprerr_ifdebug("funarg_patck_exhaust") val () = prerrln! (": the linear pattern cannot be used as a function argument.") (* end of [val] *) in the_trans3errlst_add(T3E_d2exp_trup_arg_body_linpat(p2t)) end // end of [_] end // end of [non-P2TCany] ) // in auxlst(p2ts_arg, s2es_arg) end // end of [val] // val cp2tcss = p2atcstlst_comp($UN.castvwtp1{p2atcstlst}(p2tcs)) val ((*freed*)) = list_vt_free(p2tcs) val isexhaust = ( if list_vt_is_nil(cp2tcss) then true else false ) : bool // end of [val] val () = if ~isexhaust then let // val cp2tcss = p2atcstlstlst_vt_copy(cp2tcss) in // trans3_env_add_patcstlstlst_false(loc0, CK_case_pos, cp2tcss, s2es_arg) end // end of [if] // end of [val] // val ((*freed*)) = p2atcstlstlst_vt_free(cp2tcss) // } (* end of [funarg_patck_exhaust] *) (* ****** ****** *) implement d2exp_trup_arg_body ( loc0 , fc0, lin, npf , p2ts_arg, d2e_body ) = let (* val FNAME = "d2exp_trup_arg_body" val () = ( printf ("%s: npf = ", @(FNAME)); print_int (npf); print_newline () ) // end of [val] val () = ( printf ("%s: arg = ", @(FNAME)); print_p2atlst (p2ts_arg); print_newline () ) // end of [val] val () = ( printf ("%s: body = ", @(FNAME)); print_d2exp (d2e_body); print_newline () ) // end of [val] *) val (pfenv | ()) = trans3_env_push() // var fc: funclo = fc0 // val d2e_body = d2exp_funclo_of_d2exp(d2e_body, fc) // var s2fe : s2eff = s2eff_nil(*void*) val d2e_body = d2exp_s2eff_of_d2exp(d2e_body, s2fe) // val (pfeff | ()) = the_effenv_push_lam(s2fe) // val s2es_arg = p2atlst_syn_type(p2ts_arg) // val () = funarg_patck_exhaust(loc0, p2ts_arg, s2es_arg) // val p3ts_arg = p2atlst_trup_arg(npf, p2ts_arg) // val (pfd2v|()) = the_d2varenv_push_lam(lin) val () = the_d2varenv_add_p3atlst(p3ts_arg) val (pfman|()) = the_pfmanenv_push_lam(lin) // lin:0/1:stopping/continue val () = the_pfmanenv_add_p3atlst(p3ts_arg) // val (pflamlp|()) = the_lamlpenv_push_lam(p3ts_arg) // val d3e_body = d2exp_trup(d2e_body) // val () = the_d2varenv_check(loc0) val () = if lin > 0 then the_d2varenv_check_llam(loc0) // val () = the_effenv_pop(pfeff | (*none*)) val () = the_d2varenv_pop(pfd2v | (*none*)) val () = the_pfmanenv_pop(pfman | (*none*)) val () = the_lamlpenv_pop(pflamlp | (*none*)) // val () = trans3_env_pop_and_add_main(pfenv | loc0) // val s2e_res = d3e_body.d3exp_type // val islin = (lin > 0) val isprf = s2exp_is_prf(s2e_res) // val s2t_fun = s2rt_prf_lin_fc(loc0, isprf, islin, fc) // val s2e_fun = s2exp_fun_srt ( s2t_fun, fc, lin, s2fe, npf, s2es_arg, s2e_res ) (* end of [val] *) // in // (s2e_fun, p3ts_arg, d3e_body) // end // end of [d2exp_trup_arg_body] (* ****** ****** *) implement d2exp_trup_lam_dyn (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Elam_dyn (lin, npf, p2ts_arg, d2e_body) = d2e0.d2exp_node val fc0 = FUNCLOfun () // default val s2ep3tsd3e = d2exp_trup_arg_body (loc0, fc0, lin, npf, p2ts_arg, d2e_body) val s2e_fun = s2ep3tsd3e.0 val p3ts_arg = s2ep3tsd3e.1 val d3e_body = s2ep3tsd3e.2 in d3exp_lam_dyn (loc0, s2e_fun, lin, npf, p3ts_arg, d3e_body) end // end of [d2exp_trup_lam_dyn] (* ****** ****** *) implement d2exp_trup_laminit_dyn (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Elaminit_dyn (lin, npf, p2ts_arg, d2e_body) = d2e0.d2exp_node val fc0 = FUNCLOclo (0) // default val s2ep3tsd3e = d2exp_trup_arg_body (loc0, fc0, lin, npf, p2ts_arg, d2e_body) val s2e_fun = s2ep3tsd3e.0 val p3ts_arg = s2ep3tsd3e.1 val d3e_body = s2ep3tsd3e.2 val () = ( case+ s2e_fun.s2exp_node of | S2Efun ( fc, _, _, _, _, _ ) => ( case+ fc of | FUNCLOclo(0) => () // [CLO] | _ (*non-FUNCLOclo(0)*) => let val () = prerr_error3_loc(loc0) val () = filprerr_ifdebug("d2exp_trup_laminit_dyn") val () = prerrln! (": the initializing value is expected to be a flat closure but it is not.") (* end of [val] *) in the_trans3errlst_add(T3E_d2exp_trup_laminit_funclo(d2e0, fc)) end // end of [_] ) // end of [S2Efun] | _ (* non-S2Efun *) => ( (*deadcode*) ) ) : void // end of [val] in d3exp_laminit_dyn(loc0, s2e_fun, lin, npf, p3ts_arg, d3e_body) end // end of [d2exp_trup_laminit_dyn] (* ****** ****** *) implement d2exp_trup_lam_sta (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Elam_sta (s2vs, s2ps, d2e_body) = d2e0.d2exp_node // val (pfenv | ()) = trans3_env_push () val () = trans3_env_add_svarlst (s2vs) val () = trans3_env_hypadd_proplst (loc0, s2ps) // val d3e_body = d2exp_trup (d2e_body) // val () = trans3_env_pop_and_add_main (pfenv | loc0) // val s2e = d3e_body.d3exp_type val s2e_uni = s2exp_uni (s2vs, s2ps, s2e) in d3exp_lam_sta (loc0, s2e_uni, s2vs, s2ps, d3e_body) end // end of [d2exp_trup_lam_sta] (* ****** ****** *) implement d2exp_trup_lam_met (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Elam_met (d2vs_ref, s2es_met, d2e_body) = d2e0.d2exp_node // end of [val] val () = s2explst_check_termet (loc0, s2es_met) val (pfmet | ()) = termetenv_push_dvarlst (!d2vs_ref, s2es_met) val d3e_body = d2exp_trup (d2e_body) val () = termetenv_pop (pfmet | (*none*)) in d3exp_lam_met (loc0, s2es_met, d3e_body) end // end of [d2exp_trup_lam_met] (* ****** ****** *) local fun s2exp_clo2fun (s2e0: s2exp): s2exp = let in // case+ s2e0.s2exp_node of | S2Efun ( fc, lin, s2fe, npf, s2es_arg, s2e_res ) => s2exp_fun_srt (s2e0.s2exp_srt, FUNCLOfun, lin, s2fe, npf, s2es_arg, s2e_res) | _(*non-S2Efun*) => s2e0 // end // end of [s2exp_clo2fun] in (* in-of-local *) implement d2exp_trup_fix (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Efix (knd, d2v, d2e_def) = d2e0.d2exp_node // val s2e_def = d2exp_syn_type (d2e_def) val s2e2_def = s2exp_clo2fun (s2e_def) // val s2e2opt_def = Some (s2e2_def) val () = d2var_set_type (d2v, s2e2opt_def) val () = d2var_set_mastype (d2v, s2e2opt_def) // val d3e_def = d2exp_trup (d2e_def) // in d3exp_fix (loc0, s2e_def, knd, d2v, d3e_def) end // end of [d2exp_trup_fix] end // end of [local] (* ****** ****** *) implement d2exp_trup_delay (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Edelay (d2e_eval) = d2e0.d2exp_node val fc0 = FUNCLOfun () // HX: this is ignored val lin = 0 val npf = ~1 val p2ts_arg = list_nil {p2at} () val s2ep3tsd3e = d2exp_trup_arg_body (loc0, fc0, lin, npf, p2ts_arg, d2e_eval) val s2e_fun = s2ep3tsd3e.0 val p3ts_arg = s2ep3tsd3e.1 val d3e_eval = s2ep3tsd3e.2 // val s2e_eval = d3exp_get_type (d3e_eval) val s2e_lazy = s2exp_lazy_t0ype_type (s2e_eval) // val islin = s2exp_is_lin (s2e_eval) val () = if islin then let val () = prerr_error3_loc (loc0) val () = prerrln! (": it is not allowed to apply $delay to a linear value.") in the_trans3errlst_add (T3E_d3exp_delay (loc0, d3e_eval)) end // end of [val] // in d3exp_delay (loc0, s2e_lazy, d3e_eval) end // end of [d2exp_delay_trup] (* ****** ****** *) implement d2exp_trup_ldelay (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Eldelay (d2e_eval, opt) = d2e0.d2exp_node // val lsbis = the_d2varenv_save_lstbefitmlst () var lsaft = lstaftc3nstr_initize (lsbis) // val loc_eval = d2e_eval.d2exp_loc val ctr = c3nstroptref_make_none (loc_eval) val d3e_eval = let val (pfpush | ()) = trans3_env_push () val d3e_eval = d2exp_trup (d2e_eval) val () = trans3_env_add_cnstr_ref (ctr) val () = trans3_env_pop_and_add_main (pfpush | loc_eval) in d3e_eval end // end of [val] val () = lstaftc3nstr_update (lsaft, ctr) // val () = lstbefitmlst_restore_type (lsbis) // val d2e_free = ( case opt of Some(d2e) => d2e | None() => d2exp_empty(loc_eval) ) : d2exp // end of [val] // val loc_free = d2e_free.d2exp_loc val ctr = c3nstroptref_make_none (loc_free) val d3e_free = let val (pfpush | ()) = trans3_env_push () val s2e_void = s2exp_void_t0ype ((*void*)) val d3e_free = d2exp_trdn (d2e_free, s2e_void) val () = trans3_env_add_cnstr_ref (ctr) val () = trans3_env_pop_and_add_main (pfpush | loc_free) in d3e_free end // end of [val] val () = lstaftc3nstr_update (lsaft, ctr) // val invres = i2nvresstate_nil // val () = lstaftc3nstr_process (lsaft, invres) val () = lstaftc3nstr_finalize (lsaft) // val () = i2nvresstate_update (loc0, invres) // val s2e_eval = d3exp_get_type (d3e_eval) val s2e_lazy = s2exp_lazy_vt0ype_vtype (s2e_eval) // in d3exp_ldelay (loc0, s2e_lazy, d3e_eval, d3e_free) end // end of [d2exp_trup_ldelay] (* ****** ****** *) implement d2exp_trup_for (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Efor (i2nv, init, test, post, body) = d2e0.d2exp_node // in d2exp_trup_loop (loc0, i2nv, Some(init), test, Some(post), body) end // end of [d2exp_trup_for] implement d2exp_trup_while (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Ewhile (i2nv, test, body) = d2e0.d2exp_node // in d2exp_trup_loop (loc0, i2nv, None(*init*), test, None(*post*), body) end // end of [d2exp_trup_while] (* ****** ****** *) implement d2exp_trup_trywith (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Etrywith (r2es, d2e, c2ls) = d2e0.d2exp_node val d3e = d2exp_trup (d2e) val s2e_res = d3exp_get_type (d3e) // val (pfd2v | ()) = the_d2varenv_push_try () val (pfman | ()) = the_pfmanenv_push_try () // val s2e_pat = s2exp_exception_vtype () // end of [val] // val loc = d3e.d3exp_loc val d3e_dummy = d3exp_top (loc, s2e_pat) val d3es = list_sing (d3e_dummy) // val s2es_pat = list_sing (s2e_pat) // val c3ls = c2laulst_trdn ( loc0, CK_case_neg, r2es, c2ls, d3es, s2es_pat, s2e_res ) // end of [val] // val ((*void*)) = the_d2varenv_pop (pfd2v | (*none*)) val ((*void*)) = the_pfmanenv_pop (pfman | (*none*)) // in d3exp_trywith (loc0, d3e, c3ls) end // end of [d2exp_trup_trywith] (* ****** ****** *) implement d2exp_trup_mac (d2e0) = let val-D2Emac (d2m) = d2e0.d2exp_node (* val () = println! ("d2exp_trup: D2Emac: loc0 = ", d2e0.d2exp_loc) *) val d2e_mac = $MAC.dmacro_eval_app_short (d2e0.d2exp_loc, d2m, list_nil(*d2as*)) // end of [val] (* val () = println! ("d2exp_trup: D2Emac: loc_mac = ", d2e_mac.d2exp_loc) *) in d2exp_trup (d2e_mac) end // end of [D2Emac] implement d2exp_trup_macsyn (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Emacsyn (knd, d2e) = d2e0.d2exp_node // (* val () = ( println! ("d2exp_trup: D2Emacsyn: knd = ", knd); println! ("d2exp_trup: D2Emacsyn: d2e = ", d2e); ) (* end of [val] *) *) // val d2e_mac = ( // case+ knd of | $SYN.MSKdecode () => $MAC.dmacro_eval_decode (d2e) | $SYN.MSKxstage () => $MAC.dmacro_eval_xstage (d2e) | $SYN.MSKencode () => let val () = prerr_errmac_loc(loc0) val () = prerrln! ": the macro syntax `(...) is used incorrectly." in d2exp_errexp (loc0) end // end of [MSKINDencode] // ) : d2exp // end of [val] // (* val () = println! ("d2exp_trup: D2Emacsyn: d2e_mac = ", d2e_mac) *) // in d2exp_trup (d2e_mac) end // end of [d2exp_trup_macsyn] (* ****** ****** *) implement d2exp_trup_solassert (d2e0) = let // val loc0 = d2e0.d2exp_loc // val- D2Esolassert (d2e_prf) = d2e0.d2exp_node // val d3e_prf = d2exp_trup(d2e_prf) val s2e_prop = d3exp_get_type(d3e_prf) // (* val () = println! ("d2exp_trup: D2Esolassert: s2e_prop = ", s2e_prop) // end of [val] *) // val ((*added*)) = trans3_env_solver_assert (loc0, s2e_prop) // in d3exp_empty (loc0, s2exp_void_t0ype()) end // end of [D2Esolassert] (* ****** ****** *) implement d2exp_trup_solverify (d2e0) = let // val loc0 = d2e0.d2exp_loc // val- D2Esolverify (s2e_prop) = d2e0.d2exp_node // (* val () = println! ("d2exp_trup: D2Esolverify: s2e_prop = ", s2e_prop) *) // val s2f_prop = s2exp_hnfize(s2e_prop) // val ((*added*)) = trans3_env_solver_verify (loc0, s2f_prop) // in d3exp_solverify (loc0, s2f_prop) end // end of [D2Esolverify] (* ****** ****** *) (* end of [pats_trans3_dynexp_up.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_symenv.dats0000644000175000017500000001407313431250607020703 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_symmap.sats" staload "./pats_symenv.sats" (* ****** ****** *) vtypedef symmaplst ( itm:type, n:int ) = list_vt (symmap itm, n) vtypedef symmaplst (itm:type) = [n:nat] symmaplst (itm, n) (* ****** ****** *) fun symmaplst_free {itm:type} {n:nat} .. (xs: symmaplst (itm, n)):<> void = case+ xs of | ~list_vt_cons (x, xs) => (symmap_free (x); symmaplst_free (xs)) | ~list_vt_nil () => () // end of [symmaplst_free] fun symmaplst_search {itm:type} {n:nat} .. ( ms0: !symmaplst (itm, n), k: symbol ) :<> Option_vt itm = begin case+ ms0 of | list_vt_cons (!p_m, !p_ms) => let val ans = symmap_search (!p_m, k) in case+ ans of | Some_vt _ => ans where { val () = fold@ ms0; val () = fold@ ans } // end of [Some_vt] | ~None_vt () => ans where { val ans = symmaplst_search {itm} (!p_ms, k) val () = fold@ ms0 } // end of [None_vt] end (* end of [list_vt_cons] *) | list_vt_nil () => (fold@ ms0; None_vt ()) end // end of [symmaplst_search] (* ****** ****** *) assume symenv_vt0ype (itm:type) = @{ map= symmap (itm) , maplst= symmaplst (itm) , savedlst= List_vt @(symmap itm, symmaplst itm) , pervasive= symmap (itm) } // end of [symenv_v0type] (* ****** ****** *) implement symenv_make_nil {itm} () = let stadef T = symenv (itm) val (pfgc, pfat | p) = ptr_alloc () val () = p->map := symmap_make_nil () val () = p->maplst := list_vt_nil () val () = p->savedlst := list_vt_nil () val () = p->pervasive := symmap_make_nil () prval () = free_gc_elim (pfgc) in (pfat | p) end // end of [symenv_make_nil] (* ****** ****** *) implement symenv_search {itm} (env, k) = let val ans = symmap_search (env.map, k) in case+ ans of | Some_vt _ => (fold@ (ans); ans) | ~None_vt () => symmaplst_search (env.maplst, k) end // end of [symenv_search] (* ****** ****** *) implement symenv_insert {itm} (env, k, i) = symmap_insert {itm} (env.map, k, i) // end of [symenv_insert] (* ****** ****** *) implement symenv_pop (env) = map0 where { val map0 = env.map val-~list_vt_cons (map, maps) = env.maplst val () = env.map := map val () = env.maplst := maps } // end of [symenv_pop] implement symenv_pop_free (env) = () where { val map = symenv_pop (env) val () = symmap_free (map) } // end of [symmap_pop_free] implement symenv_push (env, map0) = () where { val () = env.maplst := list_vt_cons (env.map, env.maplst) val () = env.map := map0 } // end of [symenv_push] implement symenv_push_nil (env) = () where { val map = symmap_make_nil () val () = symenv_push (env, map) } // end of [symmap_push_nil] (* ****** ****** *) implement symenv_top_clear (env) = () where { // val () = symmap_free (env.map) val () = env.map := symmap_make_nil () // } (* end of [symenv_top_clear] *) (* ****** ****** *) implement symenv_savecur {itm}(env) = let val m = env.map val () = env.map := symmap_make_nil () val ms = env.maplst val () = env.maplst := list_vt_nil () val () = env.savedlst := list_vt_cons ((m, ms), env.savedlst) in // nothing end // end of [symenv_savecur] implement symenv_restore {itm}(env) = let vtypedef map = symmap (itm) val top = env.map val () = symmaplst_free (env.maplst) val-~list_vt_cons (x, xs) = env.savedlst val () = env.savedlst := xs val () = env.map := x.0 and () = env.maplst := x.1 in top end // end of [symenv_restore] (* ****** ****** *) implement symenv_localjoin {itm}(env) = let // val ms = env.maplst val-~list_vt_cons (m1, ms) = ms val () = symmap_free (m1) val-~list_vt_cons (m2, ms) = ms val () = env.maplst := ms // // HX-2013-06: // it is done in this way so that a binding // in [map1] can replace another one in [map2] // if they happen to be sharing the same key. // val m0 = env.map val () = env.map := m2 val () = symmap_joinwth{itm}(env.map, m0) val () = symmap_free{itm}(m0) // in // nothing end // end of [symenv_localjoin] (* ****** ****** *) implement symenv_pervasive_search (env, k) = symmap_search (env.pervasive, k) // end of [symenv_pervasive_search] implement symenv_pervasive_insert (env, k, i) = symmap_insert (env.pervasive, k, i) // end of [symenv_insert] (* ****** ****** *) implement symenv_pervasive_joinwth0 (env, map) = let // val () = symmap_joinwth (env.pervasive, map) // in symmap_free (map) end // end of [symenv_pervasive_joinwth0] implement symenv_pervasive_joinwth1 (env, map) = symmap_joinwth (env.pervasive, map) // end of [symenv_pervasive_joinwth1] (* ****** ****** *) implement fprint_symenv_map (out, env, f) = fprint_symmap (out, env.map, f) // end of [fprint_symenv_map] (* ****** ****** *) (* end of [pats_symenv.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lintprgm.sats0000644000175000017500000002736713431250607021247 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Time: February 2012 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload "./pats_intinf.sats" (* ****** ****** *) // (* ** HX: only the names are needed *) abstype intknd = $extype "intknd" abstype gmpknd = $extype "gmpknd" // (* ****** ****** *) absvt@ype myint(a:t@ype) = a // [a] is a kind (* ****** ****** *) fun{a:t@ype} fprint_myint (out: FILEref, x: !myint(a)): void fun{a:t@ype} print_myint (x: !myint(a)): void fun{a:t@ype} prerr_myint (x: !myint(a)): void (* ****** ****** *) fun{a:t@ype} myint_make_int (x: int):<> myint(a) fun{a:t@ype} myint_make_intinf (x: intinf): myint(a) fun{a:t@ype} myint_free (x: myint(a)):<> void fun{a:t@ype} myint_copy (x: !myint(a)):<> myint(a) (* ****** ****** *) fun{a:t@ype} neg_myint (x: myint(a)):<> myint(a) fun{a:t@ype} neg1_myint (x: !myint(a)):<> myint(a) fun{a:t@ype} add_myint_int (x: myint(a), i: int):<> myint(a) fun{a:t@ype} add01_myint_myint (x: myint(a), y: !myint(a)):<> myint(a) fun{a:t@ype} sub01_myint_myint (x: myint(a), y: !myint(a)):<> myint(a) fun{a:t@ype} mul01_myint_myint (x: myint(a), y: !myint(a)):<> myint(a) fun{a:t@ype} mul10_myint_myint (x: !myint(a), y: myint(a)):<> myint(a) fun{a:t@ype} mul11_myint_myint (x: !myint(a), y: !myint(a)):<> myint(a) fun{a:t@ype} div01_myint_myint (x: myint(a), y: !myint(a)):<> myint(a) fun{a:t@ype} div11_myint_myint (x: !myint(a), y: !myint(a)):<> myint(a) // // HX: ediv: even division is assumed // fun{a:t@ype} ediv01_myint_myint (x: myint(a), y: !myint(a)):<> myint(a) fun{a:t@ype} mod01_myint_myint (x: myint(a), y: !myint(a)):<> myint(a) fun{a:t@ype} mod11_myint_myint (x: !myint(a), y: !myint(a)):<> myint(a) fun{a:t@ype} gcd01_myint_myint (x: myint(a), y: !myint(a)):<> myint(a) (* ****** ****** *) fun{a:t@ype} lt_myint_int (x: !myint(a), y: int):<> bool fun{a:t@ype} lte_myint_int (x: !myint(a), y: int):<> bool overload < with lt_myint_int overload <= with lte_myint_int fun{a:t@ype} gt_myint_int (x: !myint(a), y: int):<> bool fun{a:t@ype} gte_myint_int (x: !myint(a), y: int):<> bool overload > with gt_myint_int overload >= with gte_myint_int fun{a:t@ype} eq_myint_int (x: !myint(a), y: int):<> bool fun{a:t@ype} neq_myint_int (x: !myint(a), y: int):<> bool overload = with eq_myint_int overload != with neq_myint_int fun{a:t@ype} compare_myint_int (x: !myint(a), y: int):<> int overload compare with compare_myint_int fun{a:t@ype} lt_myint_myint (x: !myint(a), y: !myint(a)):<> bool fun{a:t@ype} lte_myint_myint (x: !myint(a), y: !myint(a)):<> bool overload < with lt_myint_myint overload <= with lte_myint_myint fun{a:t@ype} gt_myint_myint (x: !myint(a), y: !myint(a)):<> bool fun{a:t@ype} gte_myint_myint (x: !myint(a), y: !myint(a)):<> bool overload > with gt_myint_myint overload >= with gte_myint_myint fun{a:t@ype} compare_myint_myint (x: !myint(a), y: !myint(a)):<> int (* ****** ****** *) (* ** ** HX-2012-02: ** [myintvec] is a [myint] array of positive length ** Suppose A: myintvec(n+1) for some n >= 0; then A ** as a linear constraint stands for the following ** inequality: ** ** A[0] + A[1]*x1 + A[2]*x2 + ... + A[n]*xn >= 0 ** *) absvtype myintvec (a:t@ype, n: int) // initialized absvtype myintvec0 (a:t@ype, n: int) // uninitialized absvtype myintvecout (a:t@ype, n: int, l:addr) // SHELL praxi lemma_myintvec_params {a:t@ype}{n:int} (iv: !myintvec (a, n)): [n>=0] void // end of [lemma_myintvec_params] (* ****** ****** *) fun{a:t@ype} fprint_myintvec {n:int} (out: FILEref, iv: !myintvec(a, n), n: int n): void // end of [fprint_myintvec] fun{a:t@ype} print_myintvec {n:int} (iv: !myintvec(a, n), n: int n): void (* ****** ****** *) castfn myintvec_takeout {a:t@ype}{n:int} ( iv: !myintvec (a, n) >> myintvecout (a, n, l) ) :<> #[l:addr] (array_v (myint(a), n, l) | ptr l) castfn myintvec0_takeout {a:t@ype}{n:int} ( iv: !myintvec0 (a, n) >> myintvecout (a, n, l) ) :<> #[l:addr] (array_v (myint(a)?, n, l) | ptr l) prfun myintvecout_addback {a:t@ype}{n:int}{l:addr} ( pf: array_v (myint(a), n, l) | iv: !myintvecout (a, n, l) >> myintvec (a, n) ) : void // end of [myintvecout_addback] prfun myintvecout0_addback {a:t@ype}{n:int}{l:addr} ( pf: array_v (myint(a)?, n, l) | iv: !myintvecout (a, n, l) >> myintvec0 (a, n) ) : void // end of [myintvecout0_addback] (* ****** ****** *) fun{a:t@ype} myintvec_get_at {n:int} (iv: !myintvec (a, n), i: natLt n):<> myint(a) overload [] with myintvec_get_at fun{a:t@ype} myintvec_set_at {n:int} (iv: !myintvec (a, n), i: natLt n, x: myint(a)):<> void overload [] with myintvec_set_at fun{a:t@ype} myintvec_add_int {n:int | n > 0} (iv: !myintvec (a, n), i:int): void // end of [myintvec_add_int] fun{a:t@ype} myintvec_compare_at {n:int} (iv: !myintvec (a, n), i: natLt n, x: int): int // end of [myintvec_compare_at] (* ****** ****** *) fun{a:t@ype} myintvec0_make {n:nat} (n: int n):<> myintvec0 (a, n) // end of [myintvec0_make] fun myintvec0_free {a:t@ype}{n:int} (iv: myintvec0 (a, n), n: int n):<> void // end of [myintvec0_free] fun{a:t@ype} myintvec_make {n:nat} (n: int n):<> myintvec (a, n) // initialized with zeros // end of [myintvec_make] fun{a:t@ype} myintvec_free {n:int} (iv: myintvec (a, n), n: int n):<> void // end of [myintvec_free] (* ****** ****** *) viewtypedef myintveclst (a:t@ype, n:int) = List_vt (myintvec (a, n)) fun{a:t@ype} fprint_myintveclst {n:int} (out: FILEref, ivs: !myintveclst (a, n), n: int n): void // end of [fprint_myintveclst] fun{a:t@ype} print_myintveclst {n:int} (ivs: !myintveclst (a, n), n: int n): void // end of [print_myintveclst] fun{a:t@ype} myintveclst_free {n:int} (ivs: myintveclst (a, n), n: int n):<> void // end of [myintveclst_free] (* ****** ****** *) // // HX: it is mapped abstype s3exp // to [s3exp] in pats_constraint3 typedef nat2 = natLt (2) typedef int2 = intBtwe (~2, 2) dataviewtype icnstr (a:t@ype, int) = | {n:int} // knd: gte/lt: 2/~2; eq/neq: 1/~1 ICvec (a, n) of (int2(*knd*), myintvec (a, n)) | {n:int} // knd:conj/disj: 0/1 ICveclst (a, n) of (nat2(*knd*), icnstrlst (a, n)) | {n:int} ICerr (a, n) of ($LOC.location, s3exp) // end of [icnstr] where icnstrlst (a:t@ype, n:int) = List_vt (icnstr(a, n)) // end of [icnstrlst] (* ****** ****** *) fun{a:t@ype} fprint_icnstr {n:int} (out: FILEref, ic: !icnstr(a, n), n: int n): void fun{a:t@ype} print_icnstr {n:int} (ic: !icnstr(a, n), n: int n): void fun{a:t@ype} fprint_icnstrlst {n:int}{s:int} ( out: FILEref, ics: !list_vt (icnstr(a, n), s), n: int n ) : void // end of [fprint_icnstrlst] fun{a:t@ype} print_icnstrlst {n:int}{s:int} (ics: !list_vt (icnstr(a, n), s), n: int n): void (* ****** ****** *) fun{a:t@ype} icnstr_copy {n:int} (ic: !icnstr (a, n), n: int n): icnstr (a, n) // end of [icnstr_copy] fun{a:t@ype} icnstrlst_copy {n:int}{s:int} (ics: !list_vt (icnstr (a, n), s), n: int n): icnstrlst (a, n) // end of [icnstrlst_copy] fun{a:t@ype} icnstr_negate {n:int} (ic: icnstr (a, n)): icnstr (a, n) // end of [icnstr_negate] fun{a:t@ype} icnstrlst_negate {n:int} (ics: icnstrlst (a, n)): icnstrlst (a, n) // end of [icnstrlst_negate] (* ****** ****** *) fun{a:t@ype} icnstr_free {n:int} (ic: icnstr (a, n), n: int n): void fun{a:t@ype} icnstrlst_free {n:int} (ics: icnstrlst (a, n), n: int n): void (* ****** ****** *) typedef Ans2 = [i:int | ~1 <= i; i <= 0] int (i) typedef Ans3 = [i:int | ~1 <= i; i <= 1] int (i) (* ****** ****** *) (* ** ~1/0/1: CONTRADICTION/UNDECIDED/TAUTOLOGY *) fun{a:t@ype} myintvec_inspect {n:pos} ( knd: int, vec: !myintvec (a, n), n: int n ) : Ans3 // end of [myintvec_inspect] fun{a:t@ype} myintvec_inspect_lt {n:pos} (vec: !myintvec (a, n), n: int n): Ans3 // end of [myintvec_inspect_lt] fun{a:t@ype} myintvec_inspect_gte {n:pos} (vec: !myintvec (a, n), n: int n): Ans3 // end of [myintvec_inspect_gte] fun{a:t@ype} myintvec_inspect_eq {n:pos} (vec: !myintvec (a, n), n: int n): Ans3 // end of [myintvec_inspect_eq] fun{a:t@ype} myintvec_inspect_neq {n:pos} (vec: !myintvec (a, n), n: int n): Ans3 // end of [myintvec_inspect_neq] fun{a:t@ype} myintveclst_inspect_gte {n:pos} (ivs: &myintveclst (a, n), n: int n): Ans2 // end of [myintveclst_inspect_gte] (* ****** ****** *) // // HX-2012-02: // the function computes gcd (iv[1], ..., iv[n]) // please note that iv[0] is skipped // fun{a:t@ype} myintvec_cffgcd {n:pos} (iv: !myintvec (a, n), n: int n): myint(a) // end of [myintvec_cffgcd] fun{a:t@ype} myintvec_normalize_gte {n:pos} (vec: !myintvec (a, n), n: int n): void // end of [myintvec_normalize_gte] fun{a:t@ype} myintveclst_normalize_gte {n:pos} (ivs: &myintveclst (a, n), n: int n): void // end of [myintveclst_normalize_gte] (* ****** ****** *) // // HX: return a copy of [vec] // fun{a:t@ype} myintvec_copy {n:int} (vec: !myintvec (a, n), n: int n):<> myintvec (a, n) // end of [myintvec_copy] // // HX: return a copy of [cff*vec] // fun{a:t@ype} myintvec_copy_cff {n:int} ( cff: !myint(a), vec: !myintvec (a, n), n: int n ) :<> myintvec (a, n) // end of [myintvec_copy_cff] (* ****** ****** *) // // vec1 := vec2 // fun{a:t@ype} myintvec_assign {n:int} ( iv1: !myintvec (a, n), iv2: !myintvec (a, n), n: int n ) :<> void // end of [myintvec_assign] (* ****** ****** *) // // vec1 := -vec1 // fun{a:t@ype} myintvec_negate {n:int} (vec: !myintvec (a, n), n: int n):<> void // end of [myintvec_negate] (* ****** ****** *) fun{a:t@ype} myintvec_scale {n:int} (cff: !myint (a), vec: !myintvec (a, n), n: int n):<> void // end of [myintvec_scale] (* ****** ****** *) // // vec1 := vec1 + vec2 // fun{a:t@ype} myintvec_addby {n:int} ( vec1: !myintvec (a, n), vec2: !myintvec (a, n), n: int n ) :<> void // end of [myintvec_addby] // // vec1 := vec1 - vec2 // fun{a:t@ype} myintvec_subby {n:int} ( vec1: !myintvec (a, n), vec2: !myintvec (a, n), n: int n ) :<> void // end of [myintvec_subby] // // vec1 := vec1 + cff * vec2 // fun{a:t@ype} myintvec_addby_cff {n:int} ( vec1: !myintvec (a, n), cff: !myint(a), vec2: !myintvec (a, n), n: int n ) :<> void // end of [myintvec_addby_cff] (* ****** ****** *) typedef index (n:int) = intBtw (1, n) abstype indexset (n:int) fun indexset_nil {n:int} ():<> indexset (n) fun indexset_is_member {n:int} (xs: indexset n, x: index n):<> bool fun indexset_add {n:pos} (xs: indexset n, x: index n):<> indexset n // end of [indexset_add] (* // // HX: 0/~1: unsolved constraints/contradiction reached // *) fun{a:t@ype} icnstrlst_solve {n:pos} ( iset(*hint*): indexset (n), ics: &icnstrlst (a, n), n: int n ) : Ans2 // end of [icnstrlst_solve] (* ****** ****** *) (* end of [pats_lintprgm.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_intinf_gmp.hats0000644000175000017500000002324413431250607021520 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "libc/SATS/gmp.sats" staload "./pats_intinf.sats" (* ****** ****** *) assume intinf_type = ref (mpz_vt) (* ****** ****** *) implement intinf_make_int (i) = let val (pfgc, pfat | p) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = free_gc_elim (pfgc) val () = mpz_init_set_int (!p, i) in ref_make_view_ptr (pfat | p) end // end of [intinf_make_int] implement intinf_make_size (sz) = let val (pfgc, pfat | p) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = free_gc_elim (pfgc) val sz = ulint_of_size (sz) val () = mpz_init_set_ulint (!p, sz) in ref_make_view_ptr (pfat | p) end // end of [intinf_make_size] (* ****** ****** *) (* ** HX: [rep] is unsigned! *) implement intinf_make_string (rep) = let val rep = string1_of_string (rep) in // if string_is_atend (rep, 0) then intinf_make_int (0) else let val c0 = rep[0] in if c0 = '0' then ( if string_is_atend (rep, 1) then intinf_make_int (0) else let val c1 = rep[1] in if (c1 != 'x' andalso c1 != 'X') then intinf_make_base_string_ofs (8, rep, 1) else intinf_make_base_string_ofs (16, rep, 2) // end of [if] end ) else intinf_make_base_string_ofs (10, rep, 0) // end of [if] end // end of [if] // end // end of [intinf_make_string] (* ****** ****** *) implement intinf_make_base_string_ofs (base, rep, ofs) = let // val rep = __cast (rep) where { extern castfn __cast (x: string): ptr } val rep_ofs = __cast (rep + ofs) where { extern castfn __cast (x: ptr): string } // // HX-2018-07-01: // "0x" is treated as "0x0" // val rep_ofs = (if string_is_empty(rep_ofs) then "0" else rep_ofs ) : string // end of [val] // val (pfgc, pfat | p) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = free_gc_elim (pfgc) val () = mpz_init_set_str_exn (!p, rep_ofs, base) in ref_make_view_ptr (pfat | p) end // end of [intinf_make_base_string_ofs] (* ****** ****** *) implement fprint_intinf (out, x) = let val (vbox pf_mpz | p) = ref_get_view_ptr (x) in $effmask_ref (fprint0_mpz (out, !p)) end // end of [fprint_intinf] (* ****** ****** *) implement intinf_get_int (x) = $effmask_ref (let val (vbox pf_mpz | p) = ref_get_view_ptr (x) in mpz_get_int (!p) end) // end of [intinf_get_int] (* ****** ****** *) implement lt_intinf_int (x1, x2) = compare_intinf_int (x1, x2) < 0 // end of [lt_intinf_int] implement lte_intinf_int (x1, x2) = compare_intinf_int (x1, x2) <= 0 // end of [lte_intinf_int] implement gt_intinf_int (x1, x2) = compare_intinf_int (x1, x2) > 0 // end of [gt_intinf_int] implement gte_intinf_int (x1, x2) = compare_intinf_int (x1, x2) >= 0 // end of [gte_intinf_int] (* ****** ****** *) implement eq_intinf_int (x1, x2) = compare_intinf_int (x1, x2) = 0 // end of [eq_intinf_int] implement eq_int_intinf (x1, x2) = compare_intinf_int (x2, x1) = 0 // end of [eq_int_intinf] implement eq_intinf_intinf (x1, x2) = compare_intinf_intinf (x1, x2) = 0 // end of [eq_intinf_intinf] (* ****** ****** *) implement neq_intinf_int (x1, x2) = compare_intinf_int (x1, x2) != 0 // end of [neq_intinf_int] implement neq_int_intinf (x1, x2) = compare_intinf_int (x2, x1) != 0 // end of [neq_int_intinf] implement neq_intinf_intinf (x1, x2) = compare_intinf_intinf (x1, x2) != 0 // end of [neq_intinf_intinf] (* ****** ****** *) implement compare_intinf_int (x1, x2) = $effmask_ref let val (vbox pf_mpz | p1) = ref_get_view_ptr (x1) in mpz_cmp_int (!p1, x2) end // end of [compare_intinf_int] implement compare_intinf_intinf (x1, x2) = $effmask_ref (let val (vbox pf_mpz | p1) = ref_get_view_ptr (x1) in $effmask_ref (let val (vbox pf_mpz | p2) = ref_get_view_ptr (x2) in mpz_cmp_mpz (!p1, !p2) end) end) // end of [compare_intinf_intinf] (* ****** ****** *) implement neg_intinf (x) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (x) val (pfgc_res, pfat_res | p_res) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = free_gc_elim (pfgc_res) val () = mpz_init_set_mpz (!p_res, !p) val () = mpz_neg1 (!p_res) in ref_make_view_ptr (pfat_res | p_res) end // end of [neg_intinf] (* ****** ****** *) implement add_intinf_int (x1, x2) = $effmask_ref (let val (vbox pf1 | p1) = ref_get_view_ptr (x1) val (pfgc_res, pfat_res | p_res) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = free_gc_elim (pfgc_res) val () = mpz_init_set_mpz (!p_res, !p1) val () = mpz_add (!p_res, x2) in ref_make_view_ptr (pfat_res | p_res) end) // end of [add_intinf_int] implement add_int_intinf (x1, x2) = add_intinf_int (x2, x1) implement add_intinf_intinf (x1, x2) = $effmask_ref (let val (vbox pf1 | p1) = ref_get_view_ptr (x1) in $effmask_ref (let val (vbox pf2 | p2) = ref_get_view_ptr (x2) val (pfgc_res, pfat_res | p_res) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = free_gc_elim (pfgc_res) val () = mpz_init_set_mpz (!p_res, !p1) val () = mpz_add (!p_res, !p2) in ref_make_view_ptr (pfat_res | p_res) end) end) // end of [add_intinf_intinf] (* ****** ****** *) implement sub_intinf_intinf (x1, x2) = $effmask_ref (let val (vbox pf1 | p1) = ref_get_view_ptr (x1) in $effmask_ref (let val (vbox pf2 | p2) = ref_get_view_ptr (x2) val (pfgc_res, pfat_res | p_res) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = free_gc_elim (pfgc_res) val () = mpz_init_set_mpz (!p_res, !p1) val () = mpz_sub (!p_res, !p2) in ref_make_view_ptr (pfat_res | p_res) end) end) // end of [sub_intinf_intinf] (* ****** ****** *) implement mul_intinf_int (x1, x2) = $effmask_ref (let val (vbox pf1 | p1) = ref_get_view_ptr (x1) val (pfgc_res, pfat_res | p_res) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = free_gc_elim (pfgc_res) val () = mpz_init_set_mpz (!p_res, !p1) val () = mpz_mul (!p_res, x2) in ref_make_view_ptr (pfat_res | p_res) end) // end of [mul_intinf_int] implement mul_int_intinf (x1, x2) = mul_intinf_int (x2, x1) implement mul_intinf_intinf (x1, x2) = $effmask_ref (let val (vbox pf1 | p1) = ref_get_view_ptr (x1) in $effmask_ref (let val (vbox pf2 | p2) = ref_get_view_ptr (x2) val (pfgc_res, pfat_res | p_res) = ptr_alloc_tsz {mpz_vt} (sizeof) prval () = free_gc_elim (pfgc_res) val () = mpz_init_set_mpz (!p_res, !p1) val () = mpz_mul (!p_res, !p2) in ref_make_view_ptr (pfat_res | p_res) end) end) // end of [mul_intinf_intinf] (* ****** ****** *) local // staload "libats/SATS/funset_listord.sats" staload _(*anon*) = "libats/DATS/funset_listord.dats" // fn cmp ( x1: intinf, x2: intinf ) : int = compare_intinf_intinf (x1, x2) // assume intinfset_type = set (intinf) // in (*in-of-local*) implement intinfset_sing (x) = funset_make_sing (x) implement intinfset_is_member (xs, x) = funset_is_member (xs, x, cmp) // end of [val] implement intinfset_add (xs, x) = xs where { var xs = xs val _(*exist*) = funset_insert (xs, x, cmp) } (* end of [val] *) implement intinfset_listize (xs) = funset_listize (xs) end // end of [local] (* ****** ****** *) implement fprint_intinfset (out, xs) = { val xs = intinfset_listize (xs) val () = $UT.fprintlst (out, $UN.castvwtp1{intinflst}(xs), ", ", fprint_intinf) val () = list_vt_free (xs) } (* end of [fprint_intinfset] *) (* ****** ****** *) val () = intinf_initialize () where { // extern fun intinf_initialize (): void = "patsopt_intinf_initialize" // } (* end of [where] *) // end of [val] (* ****** ****** *) %{$ // // This is necessary to prevent memory leak // static void* patsopt_intinf_malloc (size_t sz) { return ATS_MALLOC (sz) ; } // end of [patsopt_intinf_malloc] static void patsopt_intinf_free (void* ptr, size_t sz) { ATS_FREE (ptr) ; return ; } // end of [patsopt_intinf_free] static void* patsopt_intinf_realloc ( void* ptr, size_t sz_old, size_t sz_new ) { return ATS_REALLOC (ptr, sz_new) ; } // end of [patsopt_intinf_realloc] ats_void_type patsopt_intinf_initialize (/*argumentless*/) { mp_set_memory_functions ( &patsopt_intinf_malloc, &patsopt_intinf_realloc, &patsopt_intinf_free ) ; // end of [mp_set_memory_functions] return ; } // end of [patsopt_intinf_initialize] %} // end of [%{$] (* ****** ****** *) (* end of [pats_intinf_gmp.hats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lexing.sats0000644000175000017500000003341213431250607020665 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: March, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" stadef location = $LOC.location stadef position = $LOC.position (* ****** ****** *) staload LBF = "./pats_lexbuf.sats" stadef lexbuf = $LBF.lexbuf (* ****** ****** *) // typedef arrayref (a:t@ype, n:int) = array(a, n) // (* ****** ****** *) datatype token_node = // | T_NONE of () // dummy // | T_AT of () // @ // | T_BAR of () // | | T_BANG of () // ! | T_BQUOTE of () // ` | T_BACKSLASH of () // \ // | T_COLON of () // : | T_COLONLT of () // :< (* | T_COLONLTGT of () // :<> // HX: impossible *) // | T_DOLLAR of () // $ // | T_DOT of () // . | T_DOTDOT of () // .. | T_DOTDOTDOT of () // ... // | T_DOTINT of int // .[0-9]+ // | T_EQ of () // = | T_EQGT of () // => | T_EQLT of () // =< | T_EQLTGT of () // =<> | T_EQSLASHEQGT of () // =/=> | T_EQGTGT of () // =>> | T_EQSLASHEQGTGT of () // =/=>> // | T_HASH of () // # // | T_LT of () // < // for opening a tmparg | T_GT of () // > // for closing a tmparg // | T_GTLT of () // >< | T_DOTLT of () // .< // opening termetric | T_GTDOT of () // >. // closing termetric | T_DOTLTGTDOT of () // .<>. // for empty termetric // | T_MINUSGT of () // -> | T_MINUSLT of () // -< | T_MINUSLTGT of () // -<> // | T_TILDE of () // ~ // often for 'not', 'free', etc. // // HX: for absprop, abstype, abst@ype; | T_ABSTYPE of (int) // absview, absvtype, absvt@ype // | T_ASSUME of () // for implementing abstypes | T_REASSUME of () // for re-assuming abstypes // | T_AS of () // as // for refas-pattern | T_AND of () // and | T_BEGIN of () // begin // initiating a sequence | T_CASE of (caskind) // case, case-, case+, prcase | T_CLASSDEC of () // classdec | T_DATASORT of () // datasort | T_DATATYPE of int // datatype, dataprop, dataview, dataviewtype | T_DO of () // [do] | T_ELSE of () // [else] | T_END of () // the [end] keyword | T_EXCEPTION of () // [exception] // | T_EXTERN of () // extern | T_EXTYPE of () // externally named type | T_EXTVAR of () // externally named variable // | T_FIX of int // fix and fix@ | T_FIXITY of (fxtykind) // infix, infixl, infixr, prefix, postfix | T_FOR of () // for | T_FORSTAR of () // for* | T_FUN of (funkind) // fn, fnx, fun, prfn and prfun // | T_IF of () // (dynamic) if | T_IFCASE of () // (dynamic) ifcase // | T_IMPLEMENT of (int) // 0/1/-1: implmnt/implement/primplmnt | T_IMPORT of () // import (for packages) | T_IN of () // in | T_LAM of int // lam, llam (linear lam) and lam@ (flat lam) | T_LET of () // let | T_LOCAL of () // local | T_MACDEF of (int) // 0/1: macdef/macrodef | T_NONFIX of () // nonfix | T_OF of () // of | T_OP of () // op // HX: taken from ML | T_REC of () // rec // (* | T_REFAT of () // HX-2015-12-10: 'ref@' removed *) // | T_SIF of () // static if | T_SCASE of () // static case // | T_STACST of () // stacst | T_STADEF of () // stadef | T_STATIC of () // static | T_SORTDEF of () // sortdef (* | T_STAVAR of () // stavar // HX: a suspended hack *) // | T_SYMELIM of () // symelim | T_SYMINTR of () // symintr | T_SYMLOAD of () // symload // | T_THEN of () // the [then] keyword | T_TKINDEF of () // tkindef // for introducting tkinds | T_TRY of () // try | T_TYPE of int // type, type+, type- | T_TYPEDEF of (int) // typedef, propdef, viewdef, viewtypedef | T_VAL of (valkind) // val, val+, val-, prval | T_VAR of (int(*knd*)) // knd = 0/1: var/prvar | T_WHEN of () // when | T_WHERE of () // where | T_WHILE of () // while | T_WHILESTAR of () // while* | T_WITH of () // with | T_WITHTYPE of (int) // withtype, withprop, withview, withviewtype // end of [T_WITHTYPE] // HX: it is from DML and now rarely used // | T_ADDRAT of () // addr@ | T_FOLDAT of () // fold@ | T_FREEAT of () // free@ | T_VIEWAT of () // view@ // | T_DLRDELAY of (int(*lin*)) // $delay/$ldelay // | T_DLRARRPSZ of () // $arrpsz/$arrptrsize // | T_DLRTYREP of () // $tyrep(SomeType) | T_DLRD2CTYPE of () // $d2ctype(foo/foo<...>) // | T_DLREFFMASK of () // $effmask | T_DLREFFMASK_ARG of (int) // ntm(0), exn(1), ref(2), wrt(3), all(4) // | T_DLREXTERN of () // $extern | T_DLREXTYPE of () // externally named type | T_DLREXTKIND of () // $extkind | T_DLREXTYPE_STRUCT of () // externally named struct // | T_DLREXTVAL of () // externally named value | T_DLREXTFCALL of () // externally named fun-call | T_DLREXTMCALL of () // externally named method-call // | T_DLRLITERAL of () // $literal // | T_DLRMYFILENAME of () // $myfilename | T_DLRMYLOCATION of () // $mylocation | T_DLRMYFUNCTION of () // $myfunction // | T_DLRLST of int // $lst and $lst_t and $lst_vt | T_DLRREC of int // $rec and $rec_t and $rec_vt | T_DLRTUP of int // $tup and $tup_t and $tup_vt // | T_DLRBREAK of () // $break | T_DLRCONTINUE of () // $continue // | T_DLRRAISE of () // $raise // raising exceptions // | T_DLRVARARG of () // $vararg // variadicity support // | T_DLRVCOPYENV of (int) // $vcopyenv_v(v)/$vcopyenv_vt(vt) // | T_DLRSHOWTYPE of () // $showtype // for debugging purpose // | T_DLRTEMPENVER of () // $tempenver // for adding environvar // | T_DLRSOLASSERT of () // $solver_assert // assert(d2e_prf) | T_DLRSOLVERIFY of () // $solver_verify // verify(s2e_prop) // | T_SRPIF of () // #if | T_SRPIFDEF of () // #ifdef | T_SRPIFNDEF of () // #ifndef // | T_SRPTHEN of () // #then // | T_SRPELIF of () // #elif | T_SRPELIFDEF of () // #elifdef | T_SRPELIFNDEF of () // #elifndef | T_SRPELSE of () // #else // | T_SRPENDIF of () // #endif // | T_SRPERROR of () // #error | T_SRPPRERR of () // #prerr | T_SRPPRINT of () // #print // | T_SRPASSERT of () // #assert // | T_SRPUNDEF of () // #undef | T_SRPDEFINE of () // #define // | T_SRPINCLUDE of () // #include // (* | T_STALOAD of () // staload | T_DYNLOAD of () // dynload *) | T_SRPSTALOAD of () // #staload | T_SRPDYNLOAD of () // #dynload // | T_SRPREQUIRE of () // #require // | T_SRPPRAGMA of () // #pragma | T_SRPCODEGEN2 of () // #codegen2 | T_SRPCODEGEN3 of () // #codegen3 // | T_IDENT_alp of string // alnum | T_IDENT_sym of string // symbol | T_IDENT_arr of string // A[...] | T_IDENT_tmp of string // A<...> | T_IDENT_dlr of string // $alnum | T_IDENT_srp of string // #alnum | T_IDENT_ext of string // alnum! // | T_INT of ( int(*base*), string(*rep*), uint(*suffix*) ) (* end of [T_INT] *) // | T_CHAR of char (* character *) // | T_FLOAT of (int(*base*), string(*rep*), uint(*suffix*)) // | {n:int} T_CDATA of (arrayref(char, n), size_t(n)) // for binaries | T_STRING of (string) // (* | T_LABEL of (int(*knd*), string) // HX-2013-01: should it be supported? *) // | T_COMMA of () // , | T_SEMICOLON of () // ; // | T_LPAREN of () // ( | T_RPAREN of () // ) | T_LBRACKET of () // [ | T_RBRACKET of () // ] | T_LBRACE of () // { | T_RBRACE of () // } // | T_ATLPAREN of () // @( | T_QUOTELPAREN of () // '( | T_ATLBRACKET of () // @[ | T_QUOTELBRACKET of () // '[ | T_HASHLBRACKET of () // #[ | T_ATLBRACE of () // @{ | T_QUOTELBRACE of () // '{ // | T_BQUOTELPAREN of () // `( // macro syntax | T_COMMALPAREN of () // ,( // macro syntax | T_PERCENTLPAREN of () // %( // macro syntax // | T_EXTCODE of (int(*kind*), string) // external code // | T_COMMENT_line of () // line comment | T_COMMENT_rest of () // rest-of-file comment | T_COMMENT_block of () // (embeddable) block comment // | T_ERR of () // for errors // | T_EOF of () // end-of-file // (* end of [token_node] *) typedef token = '{ token_loc= location, token_node= token_node } (* end of [token] *) typedef tokenopt = Option (token) (* ****** ****** *) // typedef tnode = token_node // (* ****** ****** *) val ABSTYPE : tnode val ABST0YPE : tnode val ABSPROP : tnode val ABSVIEW : tnode val ABSVIEWTYPE : tnode val ABSVIEWT0YPE : tnode val ADDR : tnode val ADDRAT : tnode val CASE : tnode val CASE_pos : tnode val CASE_neg : tnode val DATATYPE : tnode val DATAPROP : tnode val DATAVIEW : tnode val DATAVTYPE : tnode val FN : tnode val FNX : tnode val FUN : tnode // val PRFN : tnode val PRFUN : tnode // val PRAXI : tnode // val CASTFN : tnode val FOLD : tnode val FOLDAT : tnode val FIX : tnode val FIXAT : tnode val FOR : tnode val FORSTAR : tnode val FREE : tnode val FREEAT : tnode val IMPLMNT : tnode // implmnt val IMPLEMENT : tnode // implement val PRIMPLMNT : tnode // primplmnt val INFIX : tnode val INFIXL : tnode val INFIXR : tnode val PREFIX : tnode val POSTFIX : tnode val LAM : tnode val LAMAT : tnode val LLAM : tnode val LLAMAT : tnode val MACDEF : tnode val MACRODEF : tnode (* // val REF : tnode // val REFAT : tnode // // HX-2015-12-10: 'ref@' removed // *) val TKINDEF : tnode (* ****** ****** *) // val PROP : tnode // ident val VIEW : tnode // ident val TYPE : tnode // ident val TBOX : tnode // ident val TFLT : tnode // ident val VTYPE : tnode // ident val VTBOX : tnode // ident val VTFLT : tnode // ident val VIEWTYPE : tnode // ident (* val VIEWTBOX : tnode // ident val VIEWTFLT : tnode // ident *) // val T0YPE : tnode // keyword val VT0YPE : tnode // keyword val VIEWT0YPE : tnode // keyword // (* ****** ****** *) val TYPE_pos : tnode val TYPE_neg : tnode val T0YPE_pos : tnode val T0YPE_neg : tnode (* val TYPES : tnode val TYPES_pos : tnode val TYPES_neg : tnode *) val PROP_pos : tnode val PROP_neg : tnode val VIEWAT : tnode val VIEW_pos : tnode val VIEW_neg : tnode val VIEWTYPE_pos : tnode val VIEWTYPE_neg : tnode val VIEWT0YPE_pos : tnode val VIEWT0YPE_neg : tnode val TYPEDEF : tnode val PROPDEF : tnode val VIEWDEF : tnode val VIEWTYPEDEF : tnode val VAL : tnode val VAL_pos : tnode val VAL_neg : tnode val MCVAL : tnode // for model-checking val PRVAL : tnode // for theorem-proving val VAR : tnode val PRVAR : tnode val WHILE : tnode val WHILESTAR : tnode val WITHTYPE : tnode val WITHPROP : tnode val WITHVIEW : tnode val WITHVIEWTYPE : tnode (* ****** ****** *) val DLRDELAY : tnode val DLRLDELAY : tnode val DLREFFMASK : tnode val DLREFFMASK_NTM : tnode val DLREFFMASK_EXN : tnode val DLREFFMASK_REF : tnode val DLREFFMASK_WRT : tnode val DLREFFMASK_ALL : tnode val DLRLST : tnode val DLRLST_T : tnode val DLRLST_VT : tnode val DLRREC : tnode val DLRREC_T : tnode val DLRREC_VT : tnode val DLRTUP : tnode val DLRTUP_T : tnode val DLRTUP_VT : tnode val DLRVCOPYENV_V : tnode val DLRVCOPYENV_VT : tnode (* ****** ****** *) val DOT : tnode // = T_DOT val QMARK : tnode // = IDENT_sym ("?") val PERCENT : tnode // = IDENT_sym ("%") (* ****** ****** *) val INTZERO : tnode // = T_INT_dec ("0") (* ****** ****** *) // fun print_token : token -> void fun prerr_token : token -> void fun fprint_token : fprint_type (token) // overload print with print_token overload prerr with prerr_token overload fprint with fprint_token // (* ****** ****** *) fun token_make (loc: location, node: tnode): token // end of [token_make] (* ****** ****** *) fun tnode_is_comment (node: tnode): bool (* ****** ****** *) // // HX-2011-03-11: // see if a name refers to a special token; // if the return is not T_NONE, then it does // fun tnode_search (x: string): tnode // (* ****** ****** *) datatype lexerr_node = | LE_CHAR_oct of () | LE_CHAR_hex of () | LE_CHAR_unclose of () | LE_QUOTE_dangling of () // | LE_STRING_unclose of () | LE_STRING_char_oct of () | LE_STRING_char_hex of () // | LE_COMMENT_block_unclose of () // | LE_EXTCODE_unclose of () // | LE_DIGIT_oct_89 of (char) // | LE_IDIGITS_empty of () // YD-2018-07-10: fix hex int format. // | LE_FEXPONENT_empty of () | LE_FEXPONENT_missing of () // YD-2018-07-09: fix hex float format. | LE_FINTFRAC_missing of () // YD-2018-07-10: fix hex float format. // | LE_UNSUPPORTED_char of (char) // end of [lexerr_node] // typedef lexerr = '{ lexerr_loc= location, lexerr_node= lexerr_node } (* end of [lexerr] *) // (* ****** ****** *) fun lexerr_make ( loc: location, node: lexerr_node ) : lexerr // end of [lexerr_make] fun the_lexerrlst_clear (): void fun the_lexerrlst_add (x: lexerr): void (* ****** ****** *) fun fprint_lexerr : fprint_type (lexerr) fun fprint_the_lexerrlst (out: FILEref): int(*err*) // 0/1 (* ****** ****** *) // (* ** HX-2011: ** obtaining the next token *) // fun lexing_next_token (buf: &lexbuf): token (* ** HX-2011: ** obtaining the next token that is not a comment *) fun lexing_next_token_ncmnt (buf: &lexbuf): token // (* ****** ****** *) (* end of [pats_lexing.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_fixity.sats0000644000175000017500000001131313431250607020707 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload LOC = "./pats_location.sats" // typedef location = $LOC.location // (* ****** ****** *) datatype assoc = | ASSOCnon | ASSOClft | ASSOCrgt fun fprint_assoc (out: FILEref, x: assoc): void overload fprint with fprint_assoc (* ****** ****** *) // // HX: precedence value // abst@ype prec_t0ype = int typedef prec = prec_t0ype // (* ****** ****** *) val neginf_prec : prec // lowest legal precedence value val posinf_prec : prec // highest legal precedence value (* ****** ****** *) val app_prec : prec // the precedence value for application (* ****** ****** *) val select_prec : prec // the precedence value for selection (* ****** ****** *) val backslash_prec : prec val infixtemp_prec : prec // for temp infix status (* ****** ****** *) val exi_prec_sta : prec and uni_prec_sta : prec (* ****** ****** *) val delay_prec_dyn : prec val exist_prec_dyn : prec (* ****** ****** *) val ptrof_prec_dyn : prec val addrat_prec_dyn : prec val foldat_prec_dyn : prec val freeat_prec_dyn : prec val viewat_prec_dyn : prec (* ****** ****** *) val invar_prec_sta : prec val qmark_prec_sta : prec val qmarkbang_prec_sta : prec val trans_prec_sta : prec // for >> val deref_prec_dyn : prec (* ****** ****** *) fun int_of_prec (p: prec): int fun prec_make_int (i: int): prec fun precedence_inc (p: prec, i: int): prec fun precedence_dec (p: prec, i: int): prec (* ****** ****** *) fun compare_prec_prec (p1: prec, p2: prec): Sgn overload compare with compare_prec_prec (* ****** ****** *) (* // HX: it is exported mainly for pretty printing *) datatype fxty = | FXTYnon | FXTYinf of (prec, assoc) | FXTYpre of prec | FXTYpos of prec // end of [fxty] (* ****** ****** *) fun prerr_fxty (fxty: fxty): void fun print_fxty (fxty: fxty): void fun fprint_fxty (out: FILEref, fxty: fxty): void // end of [fprint_fxty] (* ****** ****** *) val fxty_non : fxty fun fxty_inf (p: prec, a: assoc): fxty fun fxty_pre (p: prec): fxty fun fxty_pos (p: prec): fxty (* ****** ****** *) val deref_fxty_dyn : fxty // for dereference val selptr_fxty_dyn : fxty // for lab/ind selection (* ****** ****** *) fun fxty_get_prec (fxty: fxty): Option_vt (prec) (* ****** ****** *) datatype fxopr (a:type) = | FXOPRinf(a) of ( prec, assoc, (a, a) - fxitm a ) (* end of [FXOPRinf] *) | FXOPRpre(a) of (prec, a - fxitm a) | FXOPRpos(a) of (prec, a - fxitm a) // end of [fxopr] and fxitm (a:type) = FXITMatm(a) of a | FXITMopr(a) of (location, fxopr(a)) // end of [fxitm] fun fxopr_precedence {a:type} (opr: fxopr a): prec fun fxopr_associativity {a:type} (opr: fxopr a): assoc (* ****** ****** *) fun fxitm_app {a:type} ( loc: location, app: (a, a) - fxitm a ) : fxitm a // end of [fxitm_app] (* ****** ****** *) fun fxopr_make {a:type} ( locf: a -> location , appf: (location, a, location, List a) - a , oper: a, fxty: fxty ) : fxitm a // end of [fxopr_make] fun fxopr_make_backslash {a:type} ( // HX: for handling temp infix status locf: a -> location , appf: (location, a, location, List a) - a , loc0: location (* loc of [backslash] *) ) : fxitm a // end of [fxopr_make_backslash] (* ****** ****** *) fun fixity_resolve {a:type} ( loc: location , locf: a -> location, app: fxitm (a), xs: List (fxitm a) ) : (a) // end of [fixity_resolve] (* ****** ****** *) (* end of [pats_fixity.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_location.cats0000644000175000017500000000331613431250607021167 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_LOCATION_CATS #define POSTIATS_SRC_PATS_LOCATION_CATS /* ****** ****** */ typedef struct { ats_lint_type ntot ; ats_int_type nrow ; // line number ats_int_type ncol ; // line offset } pats_position_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_LOCATION_CATS] /* ****** ****** */ /* end of [pats_position.cats] */ ATS2-Postiats-gmp-0.3.13/./src/pats_symmap.dats0000644000175000017500000000370613431250607020671 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) #define SYMMAP_AVLTREE 1 #define SYMMAP_HTLINPRB 0 (* ****** ****** *) #assert(SYMMAP_AVLTREE >= 0) #assert(SYMMAP_AVLTREE <= 1) (* ****** ****** *) #assert(SYMMAP_HTLINPRB >= 0) #assert(SYMMAP_HTLINPRB <= 1) (* ****** ****** *) #assert(SYMMAP_AVLTREE+SYMMAP_HTLINPRB==1) (* ****** ****** *) #if(SYMMAP_AVLTREE) #include "./pats_symmap_avltree.hats" #endif // end of [SYMMAP_AVLTREE] (* ****** ****** *) #if(SYMMAP_HTLINPRB) #include "./pats_symmap_htlinprb.hats" // HX: hashtable for experiment #endif // end of [SYMMAP_HTLINPRB] (* ****** ****** *) (* end of [pats_symmap.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_error.dats0000644000175000017500000000525013431250607022000 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_trans1.sats" (* ****** ****** *) // vtypedef trans1errlst_vt = List_vt (trans1err) // (* ****** ****** *) local val the_trans1errlst = ref (list_vt_nil) fun the_trans1errlst_get ( // argumentless ) : trans1errlst_vt = let val (vbox pf | p) = ref_get_view_ptr (the_trans1errlst) val xs = !p val () = !p := list_vt_nil () in xs end // end of [the_trans1errlst_get] in (* in-of-local *) implement the_trans1errlst_add (x) = () where { val (vbox pf | p) = ref_get_view_ptr (the_trans1errlst) val () = !p := list_vt_cons (x, !p) } (* end of [the_trans1errlst_add] *) implement the_trans1errlst_finalize () = { val xs = the_trans1errlst_get () // end of [val] val nxs = list_vt_length (xs) val ((*freed*)) = list_vt_free (xs) // (* val () = if nxs > 0 then { val () = fprintf ( stderr_ref , "patsopt(TRANS1): there are [%i] errors in total.\n", @(nxs) ) (* end of [fprintf] *) } (* end of [if] *) // end of [val] // *) val () = if nxs > 0 then $raise($ERR.PATSOPT_TRANS1_EXN()) // end of [if] } (* end of [the_trans1errlst_finalize] *) end // end of [local] (* ****** ****** *) (* end of [pats_trans1_error.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dmacro2_eval0.dats0000644000175000017500000006733313431250607022007 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<>() = prerr "pats_dmacro2_eval0" // (* ****** ****** *) (* ** for T_* constructors *) staload LEX = "./pats_lexing.sats" (* ****** ****** *) // staload SYM = "./pats_symbol.sats" // macdef symbol_ADD = $SYM.symbol_ADD macdef symbol_SUB = $SYM.symbol_SUB macdef symbol_MUL = $SYM.symbol_MUL // macdef symbol_LT = $SYM.symbol_LT macdef symbol_LTEQ = $SYM.symbol_LTEQ // macdef symbol_GT = $SYM.symbol_GT macdef symbol_GTEQ = $SYM.symbol_GTEQ // macdef symbol_EQ = $SYM.symbol_EQ macdef symbol_LTGT = $SYM.symbol_LTGT macdef symbol_BANGEQ = $SYM.symbol_BANGEQ // macdef symbol_CAR = $SYM.symbol_CAR macdef symbol_CDR = $SYM.symbol_CDR macdef symbol_ISNIL = $SYM.symbol_ISNIL macdef symbol_ISCONS = $SYM.symbol_ISCONS macdef symbol_ISLIST = $SYM.symbol_ISLIST // overload = with $SYM.eq_symbol_symbol overload print with $SYM.print_symbol // staload SYN = "./pats_syntax.sats" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans3.sats" (* ****** ****** *) staload "./pats_dmacro2.sats" (* ****** ****** *) // // HX: not qualified dynamic symbol // fun d2sym_is_nonqua .<>. (d2s: d2sym): bool = let val q = d2s.d2sym_qua in case+ q.d0ynq_node of $SYN.D0YNQnone () => true | _ => false end // end of [d2sym_is_nonqua] (* ****** ****** *) // // HX-2012-08: // it is largely unclear how useful this feature is; so it is // now only given a primitive implementation, which can be readily // made more elaborate when a convincing need for it appears. // // extern fun eval0_app_sym ( loc: loc_t , sym: symbol , ctx: !evalctx , env: &alphenv, d2as: d2exparglst ) : m2val // end of [eval0_app_sym] (* ****** ****** *) local (* ****** ****** *) fun eval0_app_add ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : m2val = let (* val () = println! ("eval0_app_add") *) in // case+ m2v1 of | M2Vint (i1) => ( case+ m2v2 of | M2Vint(i2) => M2Vint(i1+i2) | _ => M2Verr() ) // end of [M2Vint] | _ (*non-M2Vint*) => M2Verr(*void*) // end // end of [eval0_app_add] fun eval0_app_sub ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : m2val = let (* val () = println! ("eval0_app_sub") *) in // case+ m2v1 of | M2Vint(i1) => ( case+ m2v2 of | M2Vint(i2) => M2Vint(i1-i2) | _ => M2Verr() ) // end of [M2Vint] | _ (*non-M2Vint*) => M2Verr(*void*) // end // end of [eval0_app_sub] fun eval0_app_mul ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : m2val = let (* val () = println! ("eval0_app_mul") *) in // case+ m2v1 of | M2Vint(i1) => ( case+ m2v2 of | M2Vint(i2) => M2Vint(i1*i2) | _ => M2Verr() ) // end of [M2Vint] | _ (*non-M2Vint*) => M2Verr(*void*) // end // end of [eval0_app_mul] (* ****** ****** *) fn eval0_app_cmp_int ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : Sgn = let // fun auxerr ( loc0: loc_t , m2v1: m2val, m2v2: m2val ) : Sgn = let val () = prerr_errmac_loc(loc0) val () = prerrln! ( ": values are compared that do not support comparison." ) val () = the_trans3errlst_add(T3E_dmacro_eval0_cmp(loc0, m2v1, m2v2)) in 0(*meaningless*) end // end of [auxerr] // in // case+ m2v1 of | M2Vint(i1) => ( case+ m2v2 of | M2Vint(i2) => compare_int_int(i1, i2) | _ (*non-M2Vint*) => auxerr(loc0, m2v1, m2v2) // end of [_] ) // end of [M2Vint] | _(*non-M2Vint*) => auxerr(loc0, m2v1, m2v2) // end // end of [eval0_app_cmp_int] (* ****** ****** *) fun eval0_app_lt ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : m2val = let // val sgn = eval0_app_cmp_int(loc0, m2v1, m2v2) // in if sgn < 0 then m2val_true else m2val_false end // end of [eval0_exp_app_lt] fun eval0_app_lte ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : m2val = let // val sgn = eval0_app_cmp_int(loc0, m2v1, m2v2) // in if sgn <= 0 then m2val_true else m2val_false end // end of [eval0_exp_app_lte] (* ****** ****** *) fun eval0_app_gt ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : m2val = let // val sgn = eval0_app_cmp_int(loc0, m2v1, m2v2) // in if sgn > 0 then m2val_true else m2val_false end // end of [eval0_exp_app_gt] fun eval0_app_gte ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : m2val = let // val sgn = eval0_app_cmp_int(loc0, m2v1, m2v2) // in if sgn >= 0 then m2val_true else m2val_false end // end of [eval0_exp_app_gte] (* ****** ****** *) fun eval0_app_eq ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : m2val = let // val sgn = eval0_app_cmp_int(loc0, m2v1, m2v2) // in if sgn = 0 then m2val_true else m2val_false end // end of [eval0_exp_app_eq] fun eval0_app_neq ( loc0: loc_t, m2v1: m2val, m2v2: m2val ) : m2val = let // val sgn= eval0_app_cmp_int(loc0, m2v1, m2v2) // in if sgn != 0 then m2val_true else m2val_false end // end of [eval0_exp_app_neq] (* ****** ****** *) fun d2exparg_get_d2explst (d2a: d2exparg): d2explst = let (* val () = println! ("d2exparg_get_d2explst") *) in case+ d2a of | D2EXPARGdyn ( _(*loc*), _(*npf*), d2es ) => d2es | D2EXPARGsta _ => list_nil((*void*)) end // end of [d2exparg_get_d2explst] (* ****** ****** *) fun eval0_d2exparg_1 ( loc: loc_t , ctx: !evalctx , env: &alphenv, d2a: d2exparg ) : m2val = let // val d2es = d2exparg_get_d2explst(d2a) // in // case+ d2es of | list_nil () => M2Verr() // list_nil | list_cons (d2e, _) => ( eval0_d2exp(loc, ctx, env, d2e) ) (* list_cons *) // end // end of [eval0_d2exparg_1] fun eval0_d2exparglst_1 ( loc: loc_t , ctx: !evalctx , env: &alphenv, d2as: d2exparglst ) : m2val = ( // case+ d2as of | list_nil () => M2Verr() // list_nil | list_cons (d2a, _) => ( eval0_d2exparg_1(loc, ctx, env, d2a) ) // end of [list_cons] // ) // end of [eval0_d2exparglst_1] (* ****** ****** *) typedef m2val2 = @(m2val, m2val) (* ****** ****** *) fun eval0_d2exparg_2 ( loc: loc_t , ctx: !evalctx , env: &alphenv, d2a: d2exparg ) : m2val2 = let val d2es = d2exparg_get_d2explst(d2a) in // case+ d2es of | list_nil () => (M2Verr(), M2Verr()) // list_nil | list_cons (d2e1, d2es) => let val m2v1 = eval0_d2exp(loc, ctx, env, d2e1) in case+ d2es of | list_nil() => (m2v1, M2Verr()) | list_cons(d2e2, _) => let val m2v2 = eval0_d2exp(loc, ctx, env, d2e2) in (m2v1, m2v2) end // end of [list_cons] end // end of [list_cons] // end // end of [eval0_d2exparg_2] fun eval0_d2exparglst_2 ( loc: loc_t , ctx: !evalctx , env: &alphenv, d2as: d2exparglst ) : m2val2 = let in // case+ d2as of | list_nil() => (M2Verr(), M2Verr()) | list_cons(d2a, _) => eval0_d2exparg_2(loc, ctx, env, d2a) // end of [list_cons] // end // end of [eval0_d2exparglst_2] (* ****** ****** *) in (* in of [local] *) implement eval0_app_sym ( loc0, sym, ctx, env, d2as ) = let (* // val () = println! ("eval0_app_sym: sym = ", sym) // *) in // case+ 0 of // | _ when sym = symbol_ADD => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_add(loc0, m2v1, m2v2) end | _ when sym = symbol_SUB => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_sub(loc0, m2v1, m2v2) end | _ when sym = symbol_MUL => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_mul(loc0, m2v1, m2v2) end // | _ when sym = symbol_LT => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_lt (loc0, m2v1, m2v2) end | _ when sym = symbol_LTEQ => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_lte(loc0, m2v1, m2v2) end // | _ when sym = symbol_GT => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_gt (loc0, m2v1, m2v2) end | _ when sym = symbol_GTEQ => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_gte(loc0, m2v1, m2v2) end // | _ when sym = symbol_EQ => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_eq (loc0, m2v1, m2v2) end | _ when sym = symbol_LTGT => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_neq(loc0, m2v1, m2v2) end | _ when sym = symbol_BANGEQ => let val (m2v1, m2v2) = eval0_d2exparglst_2(loc0, ctx, env, d2as) // end of [val] in eval0_app_neq(loc0, m2v1, m2v2) end // | _ (*unrecognized-operator*) => M2Verr((*void*)) // end // end of [eval0_app_sym] end // end of [local] (* ****** ****** *) fun eval0_app_eval ( loc0: loc_t, m2v: m2val ) : m2val = let // fun auxerr ( loc0: loc_t, m2v: m2val ) : m2val = M2Verr() where { val () = prerr_errmac_loc(loc0) val () = prerrln! ( ": evaluation is performed on a value not representing code." ) (* println! *) } (* end of [auxerr] *) // in // case+ m2v of | M2Vdcode(d2e) => let var ctx = evalctx_nil() var env = alphenv_nil() val m2v_res = eval0_d2exp(loc0, ctx, env, d2e) val () = alphenv_free(env) val () = evalctx_free(ctx) in m2v_res end // end of [V2ALcode] | _(*M2Vdcode*) => auxerr(loc0, m2v) // end // end of [eval0_app_eval] (* ****** ****** *) fun eval0_app_lift ( loc0: loc_t, m2v: m2val ) : m2val = let val d2e = liftval2dexp(loc0, m2v) in M2Vdcode(d2e) end // end of [eval0_app_lift] (* ****** ****** *) fun eval0_car (m2vs: m2valist): m2val = case+ m2vs of | list_cons(m2v, _) => ( case+ m2v of | M2Vlist (m2vs) => ( case m2vs of | list_cons(m2v, _) => m2v | _ => M2Verr() ) | _(*non-M2Vlist*) => M2Verr() ) | list_nil((*void*)) => M2Verr() // argumentless // end of [eval0_car] fun eval0_cdr (m2vs: m2valist): m2val = case+ m2vs of | list_cons(m2v, _) => ( case+ m2v of | M2Vlist(m2vs) => ( case m2vs of | list_cons (_, m2vs) => M2Vlist(m2vs) | _ => M2Verr() // list_cons ) | _(*non-M2Vlist*) => M2Verr() ) | list_nil((*void*)) => M2Verr() // argumentless // end of [eval0_cdr] (* ****** ****** *) fun eval0_islist (m2vs: m2valist): m2val = ( case+ m2vs of | list_cons(m2v, _) => ( case+ m2v of | M2Vlist _ => M2Vbool(true) | _(*non-M2Vlist*) => M2Vbool(false) ) | list_nil((*void*)) => M2Verr() // argumentless ) // end of [eval0_islist] (* ****** ****** *) // fun eval0_isnil (m2vs: m2valist): m2val = ( case+ m2vs of | list_cons(m2v, _) => ( case+ m2v of | M2Vlist(m2vs) => ( case+ m2vs of | list_cons _ => M2Vbool(false) | _ => M2Vbool(true) ) | _(*M2Vlist*) => M2Verr() ) | list_nil((*void*)) => M2Verr () // argumentless ) // end of [eval0_isnil] // fun eval0_iscons (m2vs: m2valist): m2val = ( case+ m2vs of | list_cons(m2v, _) => ( case+ m2v of | M2Vlist(m2vs) => ( case m2vs of | list_cons _ => M2Vbool(true) | _ => M2Vbool(false) ) | _(*M2Vlist*) => M2Verr() ) | list_nil((*void*)) => M2Verr() // argumentless ) // end of [eval0_iscons] // (* ****** ****** *) fun eval0_d2var ( loc: loc_t , ctx: !evalctx, d2v: d2var ) : m2val = let // fun auxerr ( loc: loc_t, d2v: d2var ) : m2val = let val () = prerr_errmac_loc(loc) val () = ( prerr ": the variable ["; prerr_d2var(d2v); prerr "] is unbound." ) (* end of [val] *) val () = prerr_newline() in M2Verr((*void*)) end (* end of [auxerr] *) // val opt = evalctx_dfind(ctx, d2v) // in // case+ opt of | ~Some_vt(m2v) => m2v | ~None_vt((*void*)) => auxerr(loc, d2v) // end (* end of [eval0_d2var] *) (* ****** ****** *) // extern fun eval0_d2explst ( loc: loc_t , ctx: !evalctx, env: &alphenv, d2es: d2explst ) : m2valist // end of [eval0_d2expopt] implement eval0_d2explst (loc, ctx, env, d2es) = let (* val () = println! ("eval0_d2explst") *) in case+ d2es of | list_cons (d2e, d2es) => let val m2v = eval0_d2exp(loc, ctx, env, d2e) val m2vs = eval0_d2explst(loc, ctx, env, d2es) in list_cons(m2v, m2vs) end // end of [list_cons] | list_nil((*void*)) => list_nil() end // end of [eval0_d2explst] // (* ****** ****** *) // extern fun eval0_d2expopt ( loc: loc_t , ctx: !evalctx, env: &alphenv, opt: d2expopt ) : m2val // end of [eval0_d2expopt] implement eval0_d2expopt (loc, ctx, env, opt) = let in case+ opt of | None() => M2Vunit() | Some(d2e) => eval0_d2exp(loc, ctx, env, d2e) end // end of [eval0_d2expopt] // (* ****** ****** *) implement eval0_d2exp (loc, ctx, env, d2e0) = let (* val () = ( println! ("eval0_d2exp: d2e0 = ", d2e0) ) // end of [val] *) // macdef eval0dexp(x) = eval0_d2exp(loc, ctx, env, ,(x)) macdef eval0dexplst(x) = eval0_d2explst(loc, ctx, env, ,(x)) macdef eval0dexpopt(x) = eval0_d2expopt(loc, ctx, env, ,(x)) // in // case+ d2e0.d2exp_node of // case+ // | D2Evar(d2v) => m2v where { val m2v = eval0_d2var(loc, ctx, d2v) } (* end of [D2Evar] *) // | D2Eint(i) => M2Vint(i) | D2Echar(c) => M2Vchar(c) | D2Efloat(rep) => M2Vfloat(rep) | D2Estring(str) => M2Vstring(str) // | D2Ei0nt(x) => let val-$LEX.T_INT (base, rep, sfx) = x.token_node // end of [val] in M2Vint(int_of_llint($UT.llint_make_string(rep))) end // end of [D2Ei0nt] | D2Ec0har(x) => let val-$LEX.T_CHAR(c) = x.token_node in M2Vchar(c) // end of [val] end // end of [D2Ec0har] | D2Ef0loat(x) => let val-$LEX.T_FLOAT (bas, rep, sfx) = x.token_node in M2Vfloat(rep) // end of [val] end // end of [D2Ef0loat] | D2Es0tring(x) => let val-$LEX.T_STRING(s) = x.token_node in M2Vstring(s) end // end of [D2Es0tring] // | D2Esing(d2e) => eval0dexp(d2e) // | D2Eapplst (d2e, d2as) => ( case+ d2e.d2exp_node of // case+ | D2Emac(d2m) => ( // expanding a macro in long form eval0_app_mac_long (loc, d2m, ctx, env, d2as) ) // end of [D2Emac] | D2Esym(d2s) when d2sym_is_nonqua d2s => ( // evaluating a predefined function (e.g., +, -, etc.) eval0_app_sym (loc, d2s.d2sym_sym, ctx, env, d2as) ) // end of [D2Esym] | _ => let val () = prerr_errmac_loc(loc) val () = prerr ": the dynamic expression at (" val () = $LOC.prerr_location(d2e.d2exp_loc) val () = prerr ") should be a macro but it is not." val () = prerr_newline((*void*)) in M2Verr((*void*)) end // end of [_] ) // end of [D2Eapplst] // | D2Eifhead ( i2nv, test, _then, _else ) => let val test = eval0dexp (test) in case+ test of | M2Vbool (b) => if b then eval0dexp (_then) else eval0dexpopt (_else) // end of [M2Vbool] | _ => M2Verr () end // end of [D2Eifhead] // | D2Emac(d2m) => let val d2as = list_nil() // argumentless in eval0_app_mac_long(loc, d2m, ctx, env, d2as) end // end of [D2Emac] // | D2Emacsyn(knd, d2e) => ( case+ knd of | $SYN.MSKencode() => let val d2e = eval1_d2exp(loc, ctx, env, d2e) // end of [val] in M2Vdcode (d2e) end // end of [MSKencode] | $SYN.MSKdecode() => eval0_app_eval(loc, eval0dexp(d2e)) // end of [MSKdecode] | $SYN.MSKxstage() => let val m2v_res = eval0_app_eval(loc, eval0dexp(d2e)) // end of [val] in M2Vdcode(liftval2dexp (loc, m2v_res)) end // end of [MSKxstage] ) // end of [D2Emacsyn] // | D2Emacfun(name, d2es) => let val m2vs = eval0dexplst(d2es) in case+ 0 of | _ when name = symbol_CAR => eval0_car (m2vs) | _ when name = symbol_CDR => eval0_cdr (m2vs) | _ when name = symbol_ISNIL => eval0_isnil (m2vs) | _ when name = symbol_ISCONS => eval0_iscons (m2vs) | _ when name = symbol_ISLIST => eval0_islist (m2vs) | _ => M2Verr () end // end of [D2Emacfun] // | _ (*rest-of-d2exp*) => let val () = prerr_errmac_loc(loc) val () = prerr ": the form of dynamic expression [" val () = prerr_d2exp(d2e0) val () = prerr "] is unsupported for macro expansion." val () = prerr_newline((*void*)) val () = the_trans3errlst_add (T3E_dmacro_eval0_d2exp (loc, d2e0)) // end of [val] in M2Verr((*void*)) end // end of [rest-of-d2exp] // end // end of [eval0_d2exp] (* ****** ****** *) extern fun evalctx_extend_arg ( loc: loc_t , d2m: d2mac , knd: int (* 0/1: short/long *) , ctx: !evalctx , env: &alphenv , arg: m2acarg , d2a: d2exparg , res: evalctx ) : evalctx // end-of-function extern fun evalctx_extend_sarg ( loc: loc_t , d2m: d2mac , knd: int (* 0/1: short/long *) , ctx: !evalctx , env: &alphenv , sarg: s2varlst, s2es: s2explst , res: evalctx ) : evalctx // end-of-functio extern fun evalctx_extend_darg ( loc: loc_t , d2m: d2mac , knd: int (* 0/1: short/long *) , ctx: !evalctx , env: &alphenv , darg: d2varlst, d2es: d2explst , res: evalctx ) : evalctx // end-of-function extern fun evalctx_extend_arglst ( loc: loc_t , d2m: d2mac , knd: int (* 0/1: short/long *) , ctx: !evalctx , env: &alphenv , args: m2acarglst , d2as: d2exparglst , res: evalctx ) : evalctx // end-of-function (* ****** ****** *) implement evalctx_extend_sarg ( loc, d2m, knd, ctx, env, s2vs, s2es, res ) = let // fun auxerr ( loc: loc_t, d2m: d2mac, sgn: int ) : void = let val () = prerr_errmac_loc(loc) val () = prerr ": some static argument group of the macro [" val () = prerr_d2mac(d2m) val () = if sgn < 0 then prerr "] is expected to contain more arguments." val () = if sgn > 0 then prerr "] is expected to contain fewer arguments." val () = prerr_newline((*void*)) in the_trans3errlst_add(T3E_dmacro_evalctx_extend(loc, d2m)) end // end of [auxerr] // in // case+ s2vs of | list_cons (s2v, s2vs) => ( case+ s2es of | list_cons (s2e, s2es) => let val res = evalctx_sadd(res, s2v, M2Vscode(s2e)) // end of [val] in evalctx_extend_sarg (loc, d2m, knd, ctx, env, s2vs, s2es, res) // evalctx_extend_sarg end // end of [list_cons] | list_nil((*void*))=> let val () = auxerr(loc, d2m, 1) in res end ) | list_nil((*void*)) => ( case+ s2es of | list_cons _ => let val () = auxerr(loc, d2m, ~1) in res end | list_nil((*void*)) => res ) // end // end of [evalctx_extend_sarg] (* ****** ****** *) implement evalctx_extend_darg ( loc, d2m, knd , ctx, env, d2vs, d2es, res ) = let // fun auxerr ( loc: loc_t, d2m: d2mac, sgn: int ) : void = let val () = prerr_errmac_loc(loc) val () = prerr ": some dynamic argument group of the macro [" val () = prerr_d2mac (d2m) val () = if sgn < 0 then prerr "] is expected to contain more arguments." val () = if sgn > 0 then prerr "] is expected to contain fewer arguments." val () = prerr_newline((*void*)) in the_trans3errlst_add(T3E_dmacro_evalctx_extend(loc, d2m)) end // end of [auxerr] // fun auxexp ( loc: loc_t, knd: int , ctx: !evalctx, env: &alphenv, d2e: d2exp ) : m2val = let in // if knd >= 1 then eval0_d2exp(loc, ctx, env, d2e) else let // short form val d2e = eval1_d2exp(loc, ctx, env, d2e) in M2Vdcode(d2e) // end of [val] end // end of [if] // end // end of [auxexp] // fun auxexplst ( loc: loc_t, knd: int , ctx: !evalctx, env: &alphenv, d2es: d2explst ) : m2valist = let in // case+ d2es of | list_cons (d2e, d2es) => let val m2v = auxexp(loc, knd, ctx, env, d2e) val m2vs = auxexplst(loc, knd, ctx, env, d2es) in list_cons(m2v, m2vs) end // end of [list_cons] | list_nil((*void*)) => list_nil((*void*)) // end // end of [auxexplst] // in // case+ d2vs of | list_cons (d2v, list_nil()) => ( case+ d2es of | list_cons (d2e, list_nil()) => let val m2v = auxexp(loc, knd, ctx, env, d2e) // end of [val] in evalctx_dadd(res, d2v, m2v) end // end of [list_sing] | _ => let val m2vs = auxexplst(loc, knd, ctx, env, d2es) // end of [val] in evalctx_dadd(res, d2v, M2Vlist (m2vs)) end // end of [_] ) // end of [list_sing] | list_cons (d2v, d2vs) => ( case+ d2es of | list_cons (d2e, d2es) => let val m2v = auxexp(loc, knd, ctx, env, d2e) // end of [val] val res = evalctx_dadd(res, d2v, m2v) in evalctx_extend_darg (loc, d2m, knd, ctx, env, d2vs, d2es, res) // evalctx_extend_darg end // end of [list_cons] | list_nil((*void*)) => let val () = auxerr(loc, d2m, 1) in res end // end of [_] ) | list_nil((*void*)) => ( case+ d2es of | list_cons _ => let val () = auxerr(loc, d2m, ~1) in res end // end of [list_cons] | list_nil((*void*)) => res ) // end // end of [evalctx_extend_darg] (* ****** ****** *) fun s2exparglst_join (s2as: s2exparglst): s2explst = let // fun auxwarn(loc: loc_t) = { val () = prerr_warning2_loc(loc) val () = prerrln! (": the static macro argument is ignored.") } // end of [auxwarn] // in // case+ s2as of | list_cons (s2a, s2as) => ( case+ s2a.s2exparg_node of | S2EXPARGseq (s2es) => ( case+ s2as of | list_cons _ => let val s2es2 = s2exparglst_join (s2as) in list_append (s2es, s2es2) // end of [val] end // end of [list_cons] | list_nil () => s2es // HX: this is most likely by far! ) | S2EXPARGone () => let val () = auxwarn (s2a.s2exparg_loc) in s2exparglst_join (s2as) // end of [val] end // end of [S2EXPARGone] | S2EXPARGall () => let val () = auxwarn (s2a.s2exparg_loc) in s2exparglst_join (s2as) // end of [val] end // end of [S2EXPARGall] ) // end of [list_cons] | list_nil () => list_nil () // end // end of [s2exparglst_join] (* ****** ****** *) implement evalctx_extend_arg ( loc, d2m, knd , ctx, env, arg, d2a, res ) = let // fun auxerr ( loc: loc_t , loca: loc_t, d2m: d2mac, stadyn: int ) : void = let val () = prerr_errmac_loc(loc) val () = prerr(": the macro argument at (") val () = $LOC.prerr_location(loca) val () = if (stadyn = 0) then prerr ") is expected to be static." val () = if (stadyn > 0) then prerr ") is expected to be dynamic." val () = prerr_newline((*void*)) in the_trans3errlst_add(T3E_dmacro_evalctx_extend(loc, d2m)) end // end of [auxerr_dyn] // in // case+ arg of | M2ACARGsta(s2vs) => ( case+ d2a of | D2EXPARGsta(loca, s2as) => let val s2es = s2exparglst_join(s2as) in evalctx_extend_sarg (loc, d2m, knd, ctx, env, s2vs, s2es, res) // evalctx_extend_sarg end // end of [D2EXPARGsta] | D2EXPARGdyn(npf, loca, _) => let val () = auxerr (loc, loca, d2m, 0(*sta*)) in res end // end of [D2EXPARGdyn] ) | M2ACARGdyn(d2vs) => ( case+ d2a of | D2EXPARGdyn (loca, npf, d2es) => ( evalctx_extend_darg (loc, d2m, knd, ctx, env, d2vs, d2es, res) // evalctx_extend_darg ) | D2EXPARGsta(loca, s2es) => let val () = auxerr(loc, loca, d2m, 1(*dyn*)) in res end // end of [D2EXPARGsta] ) // end // end of [eval0ctx_extend_arg] (* ****** ****** *) implement evalctx_extend_arglst ( loc, d2m, knd , ctx, env, args, d2as, res) = let in // case+ args of | list_nil ((*void*)) => res // list_nil | list_cons (arg, args) => let val-list_cons(d2a, d2as) = d2as val res = evalctx_extend_arg(loc, d2m, knd, ctx, env, arg, d2a, res) // end of [val] in evalctx_extend_arglst(loc, d2m, knd, ctx, env, args, d2as, res) end // end of [list_cons] // end // end of [evalctx_extend_arglst] (* ****** ****** *) // // HX: expanding macros in long form // implement eval0_app_mac_long ( loc, d2m, ctx, env, d2as ) = m2v where { // (* val () = println! ("eval0_app_mac_long: d2m = ", d2m) *) // val n0 = list_length(d2as) val args = d2mac_get_arglst(d2m) val narg = list_length(args) // val () = ( if (n0 != narg) then let val () = prerr_errmac_loc(loc) val () = prerr ": the macro function [" val () = prerr_d2mac(d2m) val () = if n0 > narg then prerr "] is overlly applied." val () = if n0 < narg then prerr "] is applied insufficiently." val () = prerr_newline((*void*)) in the_trans3errlst_add (T3E_dmacro_eval0_app_mac_arity(loc, d2m, d2as)) // the_trans3errlst_add end // end of [if] ) : void // end of [val] // val ctx_new = evalctx_nil () val ctx_new = evalctx_extend_arglst ( loc, d2m, 1(*long*), ctx, env, args, d2as, ctx_new ) (* end of [val] *) (* val () = begin print "eval0_app_mac_long: ctx_new =\n"; print ctx_new end // end of [val] *) // val d2e = d2mac_get_def(d2m) val m2v = eval0_d2exp(loc, ctx_new, env, d2e) // val ((*void*)) = evalctx_free(ctx_new) // } (* end of [eval0_app_mac_long] *) (* ****** ****** *) // // HX: expanding macros in short form // implement eval0_app_mac_short (loc, d2m, ctx, env, d2as) = let // (* val () = ( println! ("eval0_app_mac_short: d2m = ", d2m) ) (* end of [val] *) *) // val n0 = list_length(d2as) val args = d2mac_get_arglst(d2m) val narg = list_length(args) // (* val () = ( println! ("eval0_app_mac_short: n = ", n); println! ("eval0_app_mac_short: narg = ", narg); ) // end of [val] *) // val () = ( // if (n0 < narg) then let val () = prerr_errmac_loc(loc) val () = prerr ": the macro function [" val () = prerr_d2mac(d2m) val () = prerr "] is applied insufficiently." val () = prerr_newline((*void*)) in the_trans3errlst_add (T3E_dmacro_eval0_app_mac_arity(loc, d2m, d2as)) // the_trans3errlst_add end // end of [let] // end of [if] // ) : void // end of [val] // var d2as1 : d2exparglst = list_nil() // val d2as2 = ( // if (n0 >= narg) then xs2 where { val (xs1, xs2) = list_split_at(d2as, narg) val ((*void*)) = (d2as1 := list_of_list_vt(xs1)) } (* end of [then] *) else let val () = d2as1 := d2as in list_nil() end // end of [else] // ) : d2exparglst // end of [val] // val ctx_new = evalctx_extend_arglst ( loc, d2m, 0(*short*), ctx, env, args, d2as1, evalctx_nil() ) // end of [evalctx_extend_arglst] (* val () = ( print "eval0_app_mac_short: ctx_new =\n"; print_evalctx (ctx_new) ) // end of [val] *) // val d2e = eval1_d2exp ( loc, ctx_new, env, d2mac_get_def(d2m) ) (* end of [val] *) // val ((*freed*)) = evalctx_free(ctx_new) // in // case+ d2as2 of | list_nil () => (d2e) // list_nil() | list_cons _ => ( case+ d2e.d2exp_node of (* case+ *) | D2Eapplst (d2e_fun, d2as1) => ( d2exp_applst (loc, d2e_fun, list_append(d2as1, d2as2)) ) // end of [D2Eapplst] | _ (*non-D2Eapplst*) => d2exp_applst(loc, d2e, d2as2) ) (* end of [list_cons] *) // end // end of [eval0_app_mac_short] (* ****** ****** *) (* end of [pats_dmacro2_eval0.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_p2at.dats0000644000175000017500000011660013431250607021521 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: January, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_p2at" (* ****** ****** *) staload INTINF = "./pats_intinf.sats" (* ****** ****** *) staload LAB = "./pats_label.sats" overload = with $LAB.eq_label_label staload LOC = "./pats_location.sats" macdef print_location = $LOC.print_location (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) // extern fun p2at_trdn_any(p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_var(p2t0: p2at, s2f0: s2hnf): p3at // (* ****** ****** *) local extern fun aux_p2at (p2t0: p2at): s2exp extern fun aux_labp2atlst (lp2ts: labp2atlst): labs2explst in (* in of [local] *) implement aux_p2at (p2t0) = let (* val () = println! ("aux_p2at: p2t0 = ", p2t0) *) in // case+ p2t0.p2at_node of // | P2Tann (p2t, s2e_ann) => s2e_ann // | P2Tany _ => s2exp_Var_make_srt (p2t0.p2at_loc, s2rt_t0ype) // end of [P2Tany] | P2Tvar _ => s2exp_Var_make_srt (p2t0.p2at_loc, s2rt_t0ype) // end of [P2Tvar] // | P2Tint _ => s2exp_int_t0ype () // int0 | P2Tintrep (rep) => intrep_syn_type (p2t0.p2at_loc, rep) // intrep (* end of [P2Tintrep] *) // | P2Tbool _ => s2exp_bool_t0ype () // bool0 | P2Tchar _ => s2exp_char_t0ype () // char0 | P2Tstring _ => s2exp_string_type () // string0 | P2Tfloat _ => s2exp_double_t0ype () // double // | P2Ti0nt (x) => i0nt_syn_type (x) | P2Tf0loat (x) => f0loat_syn_type (x) // | P2Tempty () => s2exp_void_t0ype () // | P2Tcon _ => s2exp_Var_make_srt (p2t0.p2at_loc, s2rt_t0ype) (* end of [P2Tcon] *) // | P2Tlst (lin, p2ts) => s2exp_t0ype_err () // (* | P2Ttup : tuples have been turned into records *) // | P2Trec (knd, npf, lp2ts) => s2exp_tyrec (knd, npf, aux_labp2atlst (lp2ts)) // | P2Trefas (d2v, p2t) => p2at_syn_type (p2t) // | P2Tvbox (d2v) => let val s2e = s2exp_Var_make_srt (p2t0.p2at_loc, s2rt_view) // end of [val] in s2exp_vbox_view_prop (s2e) end // end of [P2Tvbox] // | P2Texist _ => s2exp_t0ype_err () // | P2Tlist (npf, p2ts) => s2exp_t0ype_err () // | P2Terrpat ((*void*)) => s2exp_t0ype_err () (* | _(*yet-to-be-processed*) => exitloc (1) *) // end // end of [aux_p2at] implement aux_labp2atlst (lp2ts) = let in // case+ lp2ts of | list_cons (lp2t, lp2ts) => ( case+ lp2t of | LABP2ATnorm (l0, p2t) => let val l = l0.l0ab_lab val s2e = p2at_syn_type (p2t) val ls2e = SLABELED (l, None(*name*), s2e) in list_cons (ls2e, aux_labp2atlst (lp2ts)) end // end of [LABP2ATnorm] | LABP2ATomit (loc) => list_nil () // HX: should an error be reported? ) // end of [list_cons] | list_nil ((*void*)) => list_nil () // end // end of [aux_labp2atlst] (* ****** ****** *) implement p2at_syn_type (p2t0) = s2e0 where { val s2e0 = aux_p2at (p2t0) val () = p2at_set_type (p2t0, Some (s2e0)) } // end of [p2at_syn_type] end // end of [local] (* ****** ****** *) implement p2atlst_syn_type (p2ts) = l2l (list_map_fun (p2ts, p2at_syn_type)) // end of [p2atlst_syn_type] (* ****** ****** *) implement p2at_trup_arg (p2t0) = let (* val () = begin println! ("p2at_trup_arg: p2t0 = ", p2t0) end // end of [val] *) in // case+ p2t0.p2at_node of (*case+*) | P2Tann(p2t, s2e) => p2at_trdn_arg(p2t, s2e) // end of [P2Tann] | _ (*non-P2Tann*) => let val-Some(s2e) = p2t0.p2at_type in p2at_trdn(p2t0, s2e) end // end of [_] // end // end of [p2at_trup_arg] (* ****** ****** *) local fn p2at_proofize (p2t: p2at) = let val dvs = p2t.p2at_dvs val dvs = $UT.lstord2list (dvs) in list_foreach_fun (dvs, lam d2v =<1> d2var_set_isprf (d2v, true)) end (* end of [p2at_proofize] *) in (* in-of-local *) implement p2atlst_trup_arg (npf, p2ts) = res where { // fun loop ( npf: int, p2ts: p2atlst , res: &p3atlst? >> p3atlst ) : void = ( // case+ p2ts of | list_nil() => (res := list_nil) | list_cons (p2t, p2ts) => let // val () = if npf > 0 then p2at_proofize(p2t) // end of [if] // val p3t = p2at_trup_arg(p2t) // val () = res := list_cons{p3at}{0}(p3t, ?) // val+list_cons(_, !p_res) = res // val () = loop(npf-1, p2ts, !p_res) // prval ((*folded*)) = fold@ (res) in // nothing end // end of [list_cons] // ) (* end of [loop] *) // var res: p3atlst // uninitized val ((*void*)) = loop(npf, p2ts, res) // } (* end of [p2atlst_trup_arg] *) (* ****** ****** *) local fun p2at_trdn_arg_refarg_var (p2t0: p2at, s2e0: s2exp): p3at = let // val loc0 = p2t0.p2at_loc val-S2Erefarg (refknd, s2e) = s2e0.s2exp_node val s2f = s2exp2hnf (s2e) val s2e = s2hnf2exp (s2f) val-P2Tvar (d2v) = p2t0.p2at_node // in // case+ 0 of | _ when refknd = 0 => let // call-by-value val p3t0 = p2at_trdn_var (p2t0, s2f) val () = p3at_set_type (p3t0, s2e0) val-Some (s2e) = d2var_get_type (d2v) val () = d2var_set_finknd (d2v, D2VFINsome (s2e)) // HX: may be overwritten later in p3t0 end // end of [refknd = 0] | _ (*refknd = 1*) => let // call-by-reference val loc0 = p2t0.p2at_loc val p3t0 = p3at_var (loc0, s2e0, d2v) val s2e_opn = s2hnf_opnexi_and_add (loc0, s2f) val sym = d2var_get_sym (d2v) val s2v_addr = s2var_make_id_srt (sym, s2rt_addr) val () = trans3_env_add_svar (s2v_addr) // adding svar val s2e_addr = s2exp_var (s2v_addr) val () = d2var_set_addr (d2v, Some s2e_addr) val s2e_ptr = s2exp_ptr_addr_type (s2e_addr) val () = d2var_set_type (d2v, Some (s2e_ptr)) val () = d2var_set_mastype (d2v, Some (s2e_ptr)) (* val () = let val s2p = s2exp_agtz (s2e_addr) in trans3_env_hypadd_prop (loc0, s2p) end // end of [val] *) val d2vw = d2var_ptr_viewat_make_none (d2v) val () = d2var_set_view (d2v, Some d2vw) // [d2v] is mutable val s2at = s2exp_at (s2e, s2e_addr) val () = d2var_set_mastype (d2vw, Some s2at) val s2at_opn = s2exp_at (s2e_opn, s2e_addr) val () = d2var_set_type (d2vw, Some (s2at_opn)) val () = d2var_set_finknd (d2vw, D2VFINsome (s2at_opn)) // HX: may be overwritten later in p3t0 end // end of [refknd = 1] end (* end of [p2at_trdn_arg_refarg_var] *) fun p2at_trdn_arg_refarg_err ( p2t0: p2at, s2e0: s2exp ) : p3at = let // val loc0 = p2t0.p2at_loc // val () = prerr_error3_loc(loc0) // val () = prerrln! (": the pattern is expected to be a variable.") // val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) // in p3at_errpat(loc0, s2e0) end // end of [p2at_trdn_arg_refarg_err] in (* in-of-local *) implement p2at_trdn_arg (p2t0, s2e0) = let // val s2f0 = s2exp2hnf (s2e0) val s2e0 = s2hnf2exp (s2f0) // (* // val () = println! ("p2at_trdn_arg: s2e0 = ", s2e0) // *) // in // case+ s2e0.s2exp_node of // case+ | S2Erefarg _ => ( case+ p2t0.p2at_node of (* | P2Tann(p2t1, _) => p2at_trdn_arg(p2t1, s2e0) // end of [P2Tann] *) | P2Tvar _ => p2at_trdn_arg_refarg_var(p2t0, s2e0) | _ (*non-P2Tvar*) => p2at_trdn_arg_refarg_err(p2t0, s2e0) ) (* S2Erefarg *) // | _ (*non-S2Erefarg*) => p2at_trdn(p2t0, s2e0) // end // end of [p2at_trdn_arg] end // end of [local] (* ****** ****** *) implement p2atlst_trdn_arg ( loc0, npf, p2ts, s2es, serr ) = let // fun aux {n:nat} .. ( npf: int , p2ts: p2atlst, s2es: list (s2exp, n) , serr: &int ) : list (p3at, n) = case+ p2ts of | list_cons (p2t, p2ts) => ( case+ s2es of | list_cons (s2e, s2es) => let val () = if npf > 0 then p2at_proofize (p2t) // end of [val] val p3t = p2at_trdn_arg (p2t, s2e) val p3ts = aux (npf-1, p2ts, s2es, serr) in list_cons (p3t, p3ts) end // end of [list_cons] | list_nil () => let val () = serr := serr + 1 in list_nil () end // end of [list_nil] ) // end of [list_cons] | list_nil () => ( case+ s2es of | list_cons (s2e, s2es) => let val () = serr := serr - 1 val p3t = p3at_errpat (loc0, s2e) val p3ts = aux (npf-1, p2ts, s2es, serr) in list_cons (p3t, p3ts) end // end of [list_cons] | list_nil () => list_nil () ) // end of [list_nil] // end of [aux] in aux (npf, p2ts, s2es, serr) end (* end of [p2atlst_trdn_arg] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) extern fun p2atlst_trdn_elt (p2ts: p2atlst, s2e: s2exp): p3atlst implement p2atlst_trdn_elt (p2ts, s2e) = case+ p2ts of | list_cons (p2t, p2ts) => let val p3t = p2at_trdn (p2t, s2e) in list_cons (p3t, p2atlst_trdn_elt (p2ts, s2e)) end | list_nil () => list_nil () // end of [p2atlst_trdn_elt] (* ****** ****** *) extern fun p2at_trdn_int (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_intrep (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_bool (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_char (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_float (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_string (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_i0nt (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_f0loat (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_empty (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_rec (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_lst (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_refas (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_exist (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_vbox (p2t0: p2at, s2f0: s2hnf): p3at extern fun p2at_trdn_ann (p2t0: p2at, s2f0: s2hnf): p3at (* ****** ****** *) implement p2at_trdn (p2t0, s2e0) = let // val loc0 = p2t0.p2at_loc val s2f0 = s2exp2hnf (s2e0) // (* val () = ( println! ("p2at_trdn: p2t0 = ", p2t0); println! ("p2at_trdn: s2f0 = ", s2f0); ) (* end of [val] *) *) // in // case+ p2t0.p2at_node of // | P2Tany _ => p2at_trdn_any(p2t0, s2f0) | P2Tvar _ => p2at_trdn_var(p2t0, s2f0) // | P2Tcon _ => p2at_trdn_con(p2t0, s2f0) // | P2Tint _ => p2at_trdn_int(p2t0, s2f0) | P2Tintrep _ => p2at_trdn_intrep(p2t0, s2f0) // | P2Tbool _ => p2at_trdn_bool(p2t0, s2f0) | P2Tchar _ => p2at_trdn_char(p2t0, s2f0) | P2Tfloat _ => p2at_trdn_float(p2t0, s2f0) | P2Tstring _ => p2at_trdn_string(p2t0, s2f0) // | P2Ti0nt _ => p2at_trdn_i0nt (p2t0, s2f0) | P2Tf0loat _ => p2at_trdn_f0loat (p2t0, s2f0) // | P2Tempty () => p2at_trdn_empty (p2t0, s2f0) // | P2Trec _ => p2at_trdn_rec (p2t0, s2f0) | P2Tlst _ => p2at_trdn_lst (p2t0, s2f0) // | P2Trefas _ => p2at_trdn_refas (p2t0, s2f0) // | P2Texist _ => p2at_trdn_exist (p2t0, s2f0) // | P2Tvbox _ => let val err = the_effenv_check_ref (loc0) val () = if err > 0 then the_trans3errlst_add (T3E_p2at_trdn_vbox_ref (p2t0)) // end of [val] val () = the_effenv_add_eff ($EFF.effect_ref) in p2at_trdn_vbox (p2t0, s2f0) end // end of [P2Tvbox] // | P2Tann _ => p2at_trdn_ann (p2t0, s2f0) // | P2Terrpat () => let val s2e = s2hnf2exp (s2f0) in p3at_errpat (loc0, s2e) end // end of [P2Terr] // | _ => let val ( ) = ( println! ("p2at_trdn: p2t0 = ", p2t0) ) // end of [val] in exitloc (1) end // end of [_] end // end of [p2at_trdn] (* ****** ****** *) implement p2atlst_trdn (loc0, p2ts, s2es, serr) = let (* val () = ( fprintln! (stdout_ref, "p2atlst_trdn: p2ts = ", p2ts); fprintln! (stdout_ref, "p2atlst_trdn: s2es = ", s2es); ) // end of [val] *) in // case+ p2ts of | list_cons (p2t, p2ts) => ( case+ s2es of | list_cons (s2e, s2es) => let val p3t = p2at_trdn (p2t, s2e) val p3ts = p2atlst_trdn (loc0, p2ts, s2es, serr) in list_cons (p3t, p3ts) end | list_nil () => let val () = serr := serr + 1 in list_nil () end ) // end of [list_cons] | list_nil () => ( case+ s2es of | list_cons (s2e, s2es) => let val () = serr := serr - 1 val p3t = p3at_errpat (loc0, s2e) val p3ts = p2atlst_trdn (loc0, p2ts, s2es, serr) in list_cons (p3t, p3ts) end // end of [list_cons] | list_nil () => list_nil () ) // end // end of [p2atlst_trdn] (* ****** ****** *) implement p2at_trdn_any (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val s2e0 = s2hnf2exp(s2f0) // val p3t0 = let val d2v = d2var_make_any(loc0) val s2e = s2hnf_opnexi_and_add(loc0, s2f0) val ((*void*)) = d2var_set_type(d2v, None()) val ((*void*)) = d2var_set_mastype(d2v, Some(s2e0)) in p3at_any(loc0, s2e, d2v) end // end of [val] // val islin = s2exp_is_lin(s2e0) val ((*void*)) = if islin then p3at_set_type_left(p3t0, Some(s2e0)) // in p3t0 end // end of [p2at_trdn_any] (* ****** ****** *) implement p2at_trdn_var (p2t0, s2f0) = let val loc0 = p2t0.p2at_loc val-P2Tvar(d2v) = p2t0.p2at_node // val s2e0 = s2hnf2exp (s2f0) val s2t0 = s2e0.s2exp_srt val islin = s2rt_is_lin (s2t0) // val () = d2var_set_mastype(d2v, Some s2e0) val () = if islin then { // linear var val () = d2var_set_linval (d2v, 0) val () = d2var_set_finknd (d2v, D2VFINnone()) } // end of [val] (* val () = begin println! ("p2at_trdn_var: d2v = ", d2v); println! ("p2at_trdn_var: s2e0 = ", s2e0); println! ("p2at_trdn_var: s2t0 = ", s2t0); end // end of [val] *) val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val () = d2var_set_type (d2v, Some s2e) (* val () = begin println! ("p2at_trdn_var: d2v = ", d2v); println! ("p2at_trdn_var: s2e = ", s2e); end // end of [val] *) in p3at_var (loc0, s2e, d2v) end // end of [p2at_trdn_var] (* ****** ****** *) implement p2at_trdn_int (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Tint (i) = p2t0.p2at_node // val s2c_knd = s2cstref_get_cst (the_int_kind) val s2e_knd = s2exp_cst (s2c_knd) val s2e_ind = s2exp_int (i) val s2f_ind = s2exp2hnf_cast (s2e_ind) val s2e_pat = s2exp_g1int_kind_index_t0ype (s2e_knd, s2e_ind) // val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val p3t0 = p3at_int (loc0, s2e, i) // var nerr: int = 0 val () = ( case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) when s2cstref_equ_exp ( the_g1int_int_t0ype, s2e_fun ) => let val-list_cons (s2e1_arg, s2es_arg) = s2es_arg val-list_cons (s2e2_arg, s2es_arg) = s2es_arg val () = $SOL.s2exp_tyleq_solve_err (loc0, s2e_knd, s2e1_arg, nerr) val s2f2_arg = s2exp2hnf (s2e2_arg) in trans3_env_hypadd_eqeq (loc0, s2f_ind, s2f2_arg) end (* end of [S2Eapp] *) | _ => $SOL.s2exp_tyleq_solve_err (loc0, s2e_pat, s2e, nerr) ) (* end of [val] *) // val () = if (nerr > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the integer pattern is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } // end of [val] // in p3t0 end // end of [p2at_trdn_int] (* ****** ****** *) implement p2at_trdn_bool (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Tbool (b) = p2t0.p2at_node val s2e_ind = s2exp_bool (b) val s2f_ind = s2exp2hnf_cast (s2e_ind) val s2e_pat = s2exp_bool_index_t0ype (s2e_ind) val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val p3t0 = p3at_bool (loc0, s2e, b) // in // case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) when s2cstref_equ_exp ( the_bool_bool_t0ype, s2e_fun ) => let val-list_cons (s2e_arg, _) = s2es_arg val s2f_arg = s2exp2hnf (s2e_arg) val () = trans3_env_hypadd_eqeq (loc0, s2f_ind, s2f_arg) in p3t0 end (* end of [S2Eapp] *) | _ => let val nerr = $SOL.s2exp_tyleq_solve (loc0, s2e_pat, s2e) val () = if (nerr > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the boolean pattern is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } // end of [val] in p3t0 end (* end of [_] *) // end // end of [p2at_trdn_bool] (* ****** ****** *) implement p2at_trdn_char (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Tchar (c) = p2t0.p2at_node val s2e_ind = s2exp_int_char (c) val s2f_ind = s2exp2hnf_cast (s2e_ind) val s2e_pat = s2exp_char_index_t0ype (s2e_ind) val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val p3t0 = p3at_char (loc0, s2e, c) // in // case+ s2e.s2exp_node of // case+ | S2Eapp ( s2e_fun, s2es_arg ) when s2cstref_equ_exp ( the_char_int_t0ype, s2e_fun ) => let val- list_cons (s2e_arg, _) = s2es_arg // end of [val] val s2f_arg = s2exp2hnf (s2e_arg) val () = trans3_env_hypadd_eqeq (loc0, s2f_ind, s2f_arg) in p3t0 end (* end of [S2Eapp] *) | _ (*non-S2Eapp*) => let val nerr = $SOL.s2exp_tyleq_solve (loc0, s2e_pat, s2e) // end of [val] val () = if (nerr > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the char pattern is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } (* end of [val] *) in p3t0 end (* end of [_] *) end // end of [p2at_trdn_char] (* ****** ****** *) implement p2at_trdn_float (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Tfloat(dbl) = p2t0.p2at_node // val s2e_pat = s2exp_double_t0ype((*void*)) // val s2e0 = s2hnf2exp (s2f0) val p3t0 = p3at_float (loc0, s2e0, dbl) // in case+ 0 of | _ (*non-S2Eapp*) => let val nerr = $SOL.s2exp_tyleq_solve (loc0, s2e_pat, s2e0) // end of [val] val () = if (nerr > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the floating-point pattern is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } (* end of [val] *) in p3t0 end // end of [_(*non-S2Eapp*)] end // end of [p2at_trdn_float] (* ****** ****** *) implement p2at_trdn_string (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Tstring(str) = p2t0.p2at_node val n = string_length (str) val n = $INTINF.intinf_make_size (n) // val s2e_ind = s2exp_intinf (n) val s2f_ind = s2exp2hnf_cast (s2e_ind) val s2e_pat = s2exp_string_index_type (s2e_ind) // val s2e = s2hnf_opnexi_and_add (loc0, s2f0) // val p3t0 = p3at_string (loc0, s2e, str) // in // case+ s2e.s2exp_node of // case+ | S2Eapp ( s2e_fun, s2es_arg ) when s2cstref_equ_exp ( the_string_int_type, s2e_fun ) => let val- list_cons (s2e_arg, _) = s2es_arg // end of [val-] val s2f_arg = s2exp2hnf (s2e_arg) val ((*void*)) = trans3_env_hypadd_eqeq (loc0, s2f_ind, s2f_arg) // end of [val] in p3t0 end (* end of [S2Eapp] *) // | _ (*non-S2Eapp*) => let val nerr = $SOL.s2exp_tyleq_solve (loc0, s2e_pat, s2e) // end of [val] val () = if (nerr > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the string pattern is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } (* end of [val] *) in p3t0 end // end of [_(*non-S2Eapp*)] // end // end of [p2at_trdn_string] (* ****** ****** *) local fun auxcheck ( loc0: loc_t, s2e: s2exp, s2e_pat: s2exp, nerr: &int ) : void = let // val-S2Eapp (s2e_pat_fun, s2es_pat_arg) = s2e_pat.s2exp_node val-list_cons (s2e_pat_knd, s2es_pat_arg) = s2es_pat_arg val-list_cons (s2e_pat_ind, s2es_pat_arg) = s2es_pat_arg // in // case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) => let val () = $SOL.s2exp_tyleq_solve_err (loc0, s2e_pat_fun, s2e_fun, nerr) // end of [val] in case+ s2es_arg of | list_cons (s2e1_arg, s2es_arg) => let val () = $SOL.s2exp_tyleq_solve_err (loc0, s2e_pat_knd, s2e1_arg, nerr) // end of [val] in case+ s2es_arg of | list_cons (s2e2_arg, _) => let val s2f_pat_ind = s2exp2hnf (s2e_pat_ind) // end of [val] val s2f2_arg = s2exp2hnf (s2e2_arg) in trans3_env_hypadd_eqeq (loc0, s2f_pat_ind, s2f2_arg) end // end of [list_cons] | list_nil () => () end // end of [list_cons] | list_nil () => (nerr := nerr + 1) end // end of [S2Eapp] | _ => $SOL.s2exp_tyleq_solve_err (loc0, s2e_pat, s2e, nerr) // end // end of [auxcheck] in (* in-of-local *) implement p2at_trdn_intrep (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Tintrep (rep) = p2t0.p2at_node val s2e_pat = intrep_syn_type_ind (loc0, rep) val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val p3t0 = p3at_intrep (loc0, s2e, rep) // var nerr: int = 0 val () = auxcheck (loc0, s2e, s2e_pat, nerr) val () = if (nerr > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the integer pattern is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } (* end of [val] *) // in p3t0 end // end of [p2at_trdn_intrep] implement p2at_trdn_i0nt (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Ti0nt (x) = p2t0.p2at_node val s2e_pat = i0nt_syn_type_ind (x) val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val p3t0 = p3at_i0nt (loc0, s2e, x) // var nerr: int = 0 val () = auxcheck (loc0, s2e, s2e_pat, nerr) // val () = if (nerr > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the integer pattern is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } (* end of [val] *) // in p3t0 end // end of [p2at_trdn_i0nt] end // end of [local] (* ****** ****** *) implement p2at_trdn_f0loat (p2t0, s2f0) = let val loc0 = p2t0.p2at_loc val-P2Tf0loat (x) = p2t0.p2at_node val s2e_pat = f0loat_syn_type (x) val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val nerr = $SOL.s2exp_tyleq_solve (loc0, s2e_pat, s2e) val () = if (nerr > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the pattern of floating point number is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } // end of [val] in p3at_f0loat (loc0, s2e, x) end // end of [p2at_trdn_f0loat] (* ****** ****** *) implement p2at_trdn_empty (p2t0, s2f0) = let val loc0 = p2t0.p2at_loc val-P2Tempty () = p2t0.p2at_node val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val s2e_pat = s2exp_void_t0ype () val err = $SOL.s2exp_tyleq_solve (loc0, s2e_pat, s2e) val () = if (err > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the void pattern is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } // end of [val] in p3at_empty (loc0, s2e) end // end of [p2at_trdn_empty] (* ****** ****** *) extern fun labp2atlst_trdn ( loc0: loc_t , lp2ts: labp2atlst, ls2es: labs2explst, nerr: &int ) : labp3atlst // end of [labp2atlst_trdn_labs2explst] implement labp2atlst_trdn (loc0, lp2ts, ls2es, nerr) = let // val isomit = aux (lp2ts) where { fun aux (xs: labp2atlst): bool = case+ xs of | list_cons (x, xs) => (case+ x of | LABP2ATnorm _ => aux (xs) | LABP2ATomit _ => true ) // end of [list_cons] | list_nil () => false // end of [aux] } // end of [val] // fun auxrest ( lp2ts: labp2atlst, nerr: &int ) : void = ( case+ lp2ts of | list_cons (lp2t, lp2ts) => ( case+ lp2t of | LABP2ATnorm (l0, _) => let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "labp2atlst_trdn" val () = prerr ": there is no component of the label [" val () = $LAB.prerr_label (l0.l0ab_lab) val () = prerr "] in the type assigned to the tuple/record pattern." val () = prerr_newline () val () = nerr := nerr + 1 in auxrest (lp2ts, nerr) end // end of [LABP2ATnorm] | LABP2ATomit (loc) => auxrest (lp2ts, nerr) ) // end of [list_cons] | list_nil () => () ) (* end of [auxrest] *) // fun auxfind ( lp2ts: &labp2atlst, l: label ) : Option_vt (p2at) = case+ lp2ts of | list_cons (lp2t, lp2ts1) => ( case+ lp2t of | LABP2ATnorm (l0, p2t) => if l = l0.l0ab_lab then let val () = lp2ts := lp2ts1 in Some_vt (p2t) end else let var lp2ts1 = lp2ts1 val res = auxfind (lp2ts1, l) val found = option_vt_is_some (res) val () = if found then (lp2ts := list_cons (lp2t, lp2ts1)) // end of [val] in res end // end of [if] | LABP2ATomit _ => let val () = lp2ts := list_sing (lp2t) in None_vt () end // end of [LABP2ATomit] ) (* end of [list_cons] *) | list_nil () => None_vt () // end of [auxfind] // fun auxcheck ( lp2ts: &labp2atlst, ls2es: labs2explst, err: &int ) : labp3atlst = let in // case+ ls2es of | list_cons (ls2e, ls2es) => let val SLABELED (l, _, s2e) = ls2e val opt = auxfind (lp2ts, l) in case+ opt of | ~Some_vt (p2t) => let val p3t = p2at_trdn (p2t, s2e) val lp3t = LABP3AT (l, p3t) val lp3ts = auxcheck (lp2ts, ls2es, err) in list_cons (lp3t, lp3ts) end // end of [Some_vt] | ~None_vt () => let var p3t: p3at val () = if isomit then { val d2v = d2var_make_any (loc0) val () = p3t := p3at_any (loc0, s2e, d2v) } else { // HX: no omission is allowed val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "labp2atlst_trdn" val () = prerr ": there is no component of the label [" val () = $LAB.prerr_label (l) val () = prerr "]" val () = prerr_newline () val () = err := err + 1 val () = p3t := p3at_errpat (loc0, s2e) } // end of [val] val lp3t = LABP3AT (l, p3t) val lp3ts = auxcheck (lp2ts, ls2es, err) in list_cons (lp3t, lp3ts) end // end of [None_vt] end (* end of [list_cons] *) | list_nil () => list_nil () end // end of [auxcheck] // var lp2ts = lp2ts val lp3ts = auxcheck (lp2ts, ls2es, nerr) val () = auxrest (lp2ts, nerr) // in lp3ts end // end of [labp2atlst_trdn] (* ****** ****** *) implement p2at_trdn_rec (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc // val- P2Trec (knd, npf, lp2ts) = p2t0.p2at_node // val s2e = s2hnf_opnexi_and_add(loc0, s2f0) // in // case+ s2e.s2exp_node of // | S2Etyrec ( knd1, npf1, ls2es ) => let // val isbox = (knd > 0) val islin = s2exp_is_lin(s2e) // val isbox1 = tyreckind_is_boxed(knd1) val () = if (isbox != isbox1) then { val () = prerr_error3_loc (loc0) val () = prerr ": the tuple/record pattern is " val () = if isbox then prerr "boxed but it is assigned a flat/unboxed type." val () = if ~isbox then prerr "flat/unboxed but it is assigned a boxed type." val () = prerr_newline () // val s2e0 = s2hnf2exp (s2f0) val ((*void*)) = the_trans3errlst_add(T3E_p2at_trdn(p2t0, s2e0)) // } (* end of [val] *) val nerr = $SOL.pfarity_equal_solve (loc0, npf, npf1) // end of [val] val () = if (nerr > 0) then { // val () = prerr_the_staerrlst() // val s2e0 = s2hnf2exp(s2f0) val ((*void*)) = the_trans3errlst_add(T3E_p2at_trdn(p2t0, s2e0)) } // end of [val] // var nerr: int = 0 val lp3ts = labp2atlst_trdn(loc0, lp2ts, ls2es, nerr) val () = if (nerr > 0) then { val s2e0 = s2hnf2exp(s2f0) val ((*void*)) = the_trans3errlst_add(T3E_p2at_trdn(p2t0, s2e0)) } // end of [val] // val pck = ( if (isbox && islin) then PCKfree() else PCKcon() ) : pckind // end of [val] // in p3at_rec(loc0, s2e, knd, npf, pck, lp3ts) end // end of [S2Etyrec] | _ (* non-S2Etyrec *) => p3at_errpat(loc0, s2e) where { // val () = prerr_error3_loc(loc0) val () = prerrln! (": the tuple/record pattern is ill-typed.") // val s2e0 = s2hnf2exp(s2f0) val ((*void*)) = the_trans3errlst_add(T3E_p2at_trdn(p2t0, s2e0)) // } // end of [rest-of-p2at] // end // end of [p2at_trdn_rec] (* ****** ****** *) local // fun auxerr_lin (p2t0: p2at): void = let val () = prerr_error3_loc (p2t0.p2at_loc) val () = prerrln! (": the list-pattern should be non-linear.") in the_trans3errlst_add (T3E_p2at_trdn_lst (0, p2t0)) end // end of [auxerr_lin] // fun auxerr_nonlin (p2t0: p2at): void = let val () = prerr_error3_loc (p2t0.p2at_loc) val () = prerrln! (": the list-pattern should be linear but it is not.") in the_trans3errlst_add (T3E_p2at_trdn_lst (1, p2t0)) end // end of [auxerr_nonlin] // in (* in-of-local *) implement p2at_trdn_lst (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Tlst (lin, p2ts) = p2t0.p2at_node val s2e = s2hnf_opnexi_and_add (loc0, s2f0) // val islin = ( if lin >= 0 then test_linkind(lin) else false ) : bool // end of [val] // in // case+ s2e.s2exp_node of // | S2Eapp ( s2e_fun, s2es_arg ) when s2cstref_equ_exp ( the_list_t0ype_int_type, s2e_fun ) => let val-list_cons (s2e1_arg, s2es_arg) = s2es_arg val-list_cons (s2e2_arg, s2es_arg) = s2es_arg val p3ts = p2atlst_trdn_elt (p2ts, s2e1_arg) val n = list_length (p3ts) val s2e_ind = s2exp_int (n) val s2f_ind = s2exp2hnf_cast (s2e_ind) // end of [val] val s2f2_arg = s2exp2hnf (s2e2_arg) val () = trans3_env_hypadd_eqeq (loc0, s2f_ind, s2f2_arg) // val () = if islin then auxerr_lin (p2t0) // in p3at_lst (loc0, s2e, 0(*lin*), s2e1_arg, p3ts) end // list_t0ype_int_type // | S2Eapp ( s2e_fun, s2es_arg ) when s2cstref_equ_exp ( the_list_vt0ype_int_vtype, s2e_fun ) => let val-list_cons (s2e1_arg, s2es_arg) = s2es_arg val-list_cons (s2e2_arg, s2es_arg) = s2es_arg val p3ts = p2atlst_trdn_elt (p2ts, s2e1_arg) val n = list_length (p3ts) val s2e_ind = s2exp_int (n) val s2f_ind = s2exp2hnf_cast (s2e_ind) // end of [val] val s2f2_arg = s2exp2hnf (s2e2_arg) val () = trans3_env_hypadd_eqeq (loc0, s2f_ind, s2f2_arg) // val () = if not(islin) then auxerr_nonlin (p2t0) // in p3at_lst (loc0, s2e, 1(*lin*), s2e1_arg, p3ts) end // list_vt0ype_int_vtype // | _ => let val () = prerr_error3_loc (loc0) val () = prerr ": the list pattern is ill-typed."; val () = prerr_newline () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) in p3at_errpat (loc0, s2e) end // end of [_] // end // end of [p2at_trdn_lst] end // end of [local] (* ****** ****** *) implement p2at_trdn_refas (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Trefas (d2v, p2t) = p2t0.p2at_node val s2e0 = s2hnf2exp (s2f0) val () = d2var_set_mastype (d2v, Some s2e0) val s2e1 = s2hnf_opnexi_and_add (loc0, s2f0) val p3t = p2at_trdn (p2t, s2e1) val p3t0 = p3at_refas (loc0, s2e0, d2v, p3t) val () = let val opt = p3at_get_type_left (p3t) in // case+ opt of | Some _ => { // // HX-2012-05: // [d2v] must be linear in this case // val () = d2var_set_type (d2v, opt) val () = d2var_set_linval (d2v, 0) } // end of [Some] | None () => ( d2var_set_type (d2v, Some (s2exp_topize_1 (s2e1))) ) // end of [None] // end // end of [val] // in p3t0 end // end of [p2at_trdn_refas] (* ****** ****** *) local fun auxerr1 ( loc0: loc_t , s2v1: s2var, s2v2: s2var ) : void = let val s2t1 = s2var_get_srt (s2v1) val s2t2 = s2var_get_srt (s2v2) val () = prerr_error3_loc (loc0) val () = prerr ": the static variable ["; val () = prerr_s2var (s2v1) val () = prerr "] is of the sort [" val () = prerr_s2rt (s2t1) val () = prerr "] but it is bound to a term of the sort [" val () = prerr_s2rt (s2t2) val () = prerr "]." val () = prerr_newline () in // nothing end // end of [auxerr1] // fun auxerr2 ( loc0: loc_t, s2v1: s2var ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": there is no binding for the static variable ["; val () = prerr_s2var (s2v1) val () = prerr "]" val () = prerr_newline () in // nothing end // end of [auxerr2] // fun auxbind ( loc0: loc_t , sub: &stasub, s2vs1: s2varlst, s2vs2: s2varlst , err: &int ) : void = let in // case+ s2vs1 of | list_cons (s2v1, s2vs1) => ( case+ s2vs2 of | list_cons (s2v2, s2vs2) => let val s2t1 = s2var_get_srt (s2v1) val s2t2 = s2var_get_srt (s2v2) var s2e1 // HX: [s2e1] is for [s2v2] : s2exp = s2exp_var_srt (s2t2, s2v1) // end of [var] val ismat = s2rt_ltmat1 (s2t2, s2t1) val () = if not(ismat) then { val () = err := err + 1 val () = auxerr1(loc0, s2v1, s2v2) val () = s2e1 := s2exp_errexp(s2t2) // for [s2v2] } // end of [val] val () = stasub_add (sub, s2v2, s2e1) in auxbind (loc0, sub, s2vs1, s2vs2, err) end // end of [list_cons] | list_nil () => let val () = err := err + 1 val () = auxerr2 (loc0, s2v1) in auxbind (loc0, sub, s2vs1, s2vs2, err) end // end of [list_nil] ) // end of [list_cons] | list_nil () => (case+ s2vs2 of | list_cons _ => auxbind (loc0, sub, s2vs1, s2vs2, err) | list_nil () => () ) // end of [list_nil] // end // end of [auxbind] in (* in-of-local *) implement p2at_trdn_exist (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Texist (s2vs, p2t) = p2t0.p2at_node val s2e0 = s2hnf2exp (s2f0) // in // case+ s2e0.s2exp_node of | S2Eexi (s2vs2, s2ps2, s2e) => let var sub: stasub = stasub_make_nil () var err: int = 0 val () = auxbind (loc0, sub, s2vs, s2vs2, err) val () = if (err > 0) then { val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) } // end of [val] val () = trans3_env_add_svarlst (s2vs) val s2ps2 = s2explst_subst_vt (sub, s2ps2) val () = trans3_env_hypadd_proplst_vt (loc0, s2ps2) val s2e = s2exp_subst (sub, s2e) val () = stasub_free (sub) val p3t = p2at_trdn (p2t, s2e) in p3at_exist (loc0, s2e0, s2vs, p3t) end // end of [S2Eexi] | _ => let val () = prerr_error3_loc (loc0) val () = prerr ": the pattern is given the type [" val () = prerr_s2exp (s2e0) val () = prerr "] but an existentially quantified type is expected." val () = prerr_newline () val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) in p3at_errpat (loc0, s2e0) end (* end of [_] *) // end // end of [p2at_trdn_exist] end // end of [local] (* ****** ****** *) implement p2at_trdn_vbox (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Tvbox (d2v) = p2t0.p2at_node val s2e0 = s2hnf2exp (s2f0) val opt = un_s2exp_vbox_view_prop (s2f0) in // case+ opt of // | ~Some_vt (s2e) => let val s2f = s2exp2hnf (s2e) val s2e = s2hnf2exp (s2f) val islin = s2exp_is_lin (s2e) val () = d2var_set_mastype (d2v, Some s2e) val () = if islin then { val () = d2var_set_linval (d2v, 0) val () = d2var_set_finknd (d2v, D2VFINsome_vbox (s2e)) } // end of [if] val s2e = s2hnf_opnexi_and_add (loc0, s2f) val () = d2var_set_type (d2v, Some s2e) in p3at_vbox (loc0, s2e0, d2v) end // end of [Some_vt] // | ~None_vt ((*void*)) => let val () = prerr_error3_loc (loc0) val () = prerr ": the pattern is given the type [" val () = prerr_s2exp (s2e0) val () = prerr "] but a vbox type is expected instead." val () = prerr_newline () val () = the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) in p3at_errpat (loc0, s2e0) end // end of [None_vt] // end // end of [p2at_trdn_vbox] (* ****** ****** *) implement p2at_trdn_ann (p2t0, s2f0) = let // val loc0 = p2t0.p2at_loc val-P2Tann (p2t, s2e_ann) = p2t0.p2at_node val s2e0 = s2hnf_opnexi_and_add (loc0, s2f0) val nerr = $SOL.s2exp_tyleq_solve (loc0, s2e0, s2e_ann) // val () = if (nerr > 0) then let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "p2at_trdn_ann" val () = prerr ": the pattern cannot be given the ascribed type." val () = prerr_newline () val () = prerr_the_staerrlst () in the_trans3errlst_add (T3E_p2at_trdn (p2t0, s2e0)) end // end of [if] // end of [val] // val p3t = p2at_trdn (p2t, s2e0) // in p3at_ann (loc0, s2e0, p3t, s2e_ann) end // end of [p2at_trdn_ann] (* ****** ****** *) implement guard_trdn (loc0, gval, s2e0) = let // val s2f0 = s2exp2hnf (s2e0) val s2e_ind = s2exp_bool (gval) val s2f_ind = s2exp2hnf_cast (s2e_ind) val s2e_gval = s2exp_bool_index_t0ype (s2e_ind) val s2e = s2hnf_opnexi_and_add (loc0, s2f0) in // case+ s2e.s2exp_node of // | S2Eapp ( s2e_fun, s2es_arg ) when s2cstref_equ_exp ( the_bool_bool_t0ype, s2e_fun ) => let val-list_cons (s2e_arg, _) = s2es_arg // end of [val] val s2f_arg = s2exp2hnf (s2e_arg) in trans3_env_hypadd_eqeq (loc0, s2f_ind, s2f_arg) end // end of [S2Eapp] // | _ (*non-app*) => let val nerr = $SOL.s2exp_tyleq_solve (loc0, s2e_gval, s2e) val () = if (nerr > 0) then { val () = prerr_error3_loc (loc0) val () = prerr ": the guard is ill-typed." val () = prerr_newline () val () = prerr_the_staerrlst () val s2e0 = s2hnf2exp (s2f0) val () = the_trans3errlst_add (T3E_guard_trdn (loc0, gval, s2e0)) } (* end of [if] *) // end of [val] in (* nothing *) end // end of [_] // end // end of [guard_trdn] (* ****** ****** *) (* implement p3at_mutablize (p3t0) = let val loc0 = p3t0.p3at_loc // fun auxvar ( loc0: loc_t, d2v: d2var ) : void = let val-Some (s2e0) = d2var_get_mastype (d2v) val d2vw = d2var_mutablize (loc0, d2v, s2e0) val-Some (s2l) = d2var_get_addr (d2v) val s2at0 = s2exp_at (s2exp_topize_0 (s2e0), s2l) val () = d2var_set_finknd (d2vw, D2VFINsome (s2at0)) in // nothing end // end of [auxvar] // in // case+ p3t0.p3at_node of | P3Tvar (d2v) => auxvar (loc0, d2v) | P3Trefas (d2v, _) => auxvar (loc0, d2v) | P3Tann (p3t, _) => p3at_mutablize (p3t) // | _ => () // end // end of [p3at_mutablize] *) (* ****** ****** *) (* end of [pats_trans3_p2at.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_tokbuf.sats0000644000175000017500000000616313431250607020674 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) %{# #include "pats_tokbuf.cats" %} // end of [%{#] (* ****** ****** *) staload LBF = "./pats_lexbuf.sats" stadef lexbuf = $LBF.lexbuf staload LEX = "./pats_lexing.sats" typedef token = $LEX.token staload LOC = "./pats_location.sats" typedef location = $LOC.location (* ****** ****** *) // // HX-2011-03-13: // [tokbuf] may store visited tokens to support backtracking // absviewt@ype tokbuf_vt0ype = $extype "pats_tokbuf_struct" // viewtypedef tokbuf = tokbuf_vt0ype // (* ****** ****** *) fun tokbuf_initize_filp {m:file_mode} {l:addr} ( pfmod: file_mode_lte (m, r) , pffil: FILE m @ l | r: &tokbuf? >> tokbuf, p: ptr l ) : void // end of [tokbuf_initize_filp] fun tokbuf_initize_getc ( buf: &tokbuf? >> tokbuf, getc: () - int ) : void // end of [tokbuf_initize_getc] fun tokbuf_initize_string ( buf: &tokbuf? >> tokbuf, inp: string ) : void // end of [tokbuf_initize_string] fun tokbuf_initize_lexbuf ( buf: &tokbuf? >> tokbuf, lbf: &lexbuf >> lexbuf? ) : void // end of [tokbuf_initize_lexbuf] (* ****** ****** *) // fun tokbuf_uninitize (buf: &tokbuf >> tokbuf?) : void // (* ****** ****** *) fun tokbuf_get_ntok (buf: &tokbuf): uint fun tokbuf_set_ntok (buf: &tokbuf, n0: uint): void (* ****** ****** *) fun tokbuf_incby1 (buf: &tokbuf): void fun tokbuf_incby_count (buf: &tokbuf, k: uint): void (* ****** ****** *) fun tokbuf_reset (buf: &tokbuf): void (* ****** ****** *) fun tokbuf_get_token (buf: &tokbuf): token fun tokbuf_getinc_token (buf: &tokbuf): token (* ****** ****** *) fun tokbuf_discard_all (buf: &tokbuf): void (* ****** ****** *) // // HX-2012-06: // for pushing back a given token // this one is needed by libatsynmark // fun tokbuf_unget_token (buf: &tokbuf, tok: token): void // (* ****** ****** *) (* end of [pats_tokbuf.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_hole.dats0000644000175000017500000000524613431250607021761 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload CNTR = "./pats_counter.sats" staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) typedef s2hole_struct = @{ s2hole_srt= s2rt , s2hole_stamp= stamp // uniqueness } // end of [s2hole_struct] (* ****** ****** *) local assume s2hole_type = ref (s2hole_struct) in (* in of [local] *) implement s2hole_make_srt (s2t) = let val stamp = $STMP.s2hole_stamp_make () val (pfgc, pfat | p) = ptr_alloc () prval () = free_gc_elim {s2hole_struct?} (pfgc) // val () = p->s2hole_srt := s2t val () = p->s2hole_stamp := stamp // in ref_make_view_ptr (pfat | p) end // end of [s2hole_make_srt] implement s2hole_get_srt (s2h) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (s2h) in p->s2hole_srt end // end of [s2hole_get_srt] implement s2hole_get_stamp (s2h) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (s2h) in p->s2hole_stamp end // end of [s2hole_get_stamp] end // end of [local] (* ****** ****** *) implement fprint_s2hole (out, s2h) = let val stamp = s2hole_get_stamp (s2h) // end of [val] in $STMP.fprint_stamp (out, stamp) end // end of [fprint_s2hole] (* ****** ****** *) (* end of [pats_staexp2_hole.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_viewat.dats0000644000175000017500000003254113431250607022153 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2012 // (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> ( // argumentless ) = prerr "pats_trans3_viewat" // (* ****** ****** *) staload LAB = "./pats_label.sats" overload = with $LAB.eq_label_label (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) local fun auxerr_pfobj ( loc0: loc_t, s2l: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": [view@] operation cannot be performed" val () = prerr ": the proof search for view located at [" val () = prerr_s2exp (s2l) val () = prerr "] failed to turn up a result." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_pfobj_search_none (loc0, s2l)) end // end of [auxerr_pfobj] fun auxerr_context ( loc0: loc_t, s2e: s2exp, d3ls: d3lablst ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": [view@] operation cannot be performed" val () = prerr ": context cannot be formed for the atview being taken." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_s2addr_viewat_deref_context (loc0, s2e, d3ls)) end // end of [auxerr_context] fun auxlabs ( d3ls: d3lablst ) : s2lablst = ( case+ d3ls of | list_cons (d3l, d3ls) => ( case+ d3l.d3lab_node of | D3LABlab (l) => list_cons (S2LABlab (l), auxlabs d3ls) | _ => list_nil () // deadcode ) // end of [list_cons] | list_nil () => list_nil () ) // end of [auxlabs] fun auxmain ( loc0: loc_t , pfobj: pfobj, d3ls: d3lablst ) : s2exp(*atview*) = let val+~PFOBJ ( d2vw, s2e_ctx, s2e_elt, s2l ) = pfobj // end of [val] var ctxtopt: s2ctxtopt = None () val s2e_sel = s2exp_get_dlablst_context (loc0, s2e_elt, d3ls, ctxtopt) // end of [val] in // case+ ctxtopt of | Some (ctxt) => let // val () = d2var_inc_linval (d2vw) // val s2e_out = s2exp_without (s2e_sel) val s2e_elt = s2ctxt_hrepl (ctxt, s2e_out) val s2e = s2exp_hrepl (s2e_ctx, s2e_elt) val () = d2var_set_type (d2vw, Some (s2e)) // val s2ls = auxlabs (d3ls) val s2rt = s2exp_proj (s2l, s2e_elt, s2ls) // in s2exp_at (s2e_sel, s2rt) end // end of [Some] | None ((*void*)) => let val ( ) = auxerr_context (loc0, s2e_elt, d3ls) in s2exp_errexp(s2rt_view) end // end of [None] // end // end of [auxmain] in (* in of [local] *) implement s2addr_viewat_deref (loc0, s2l, d3ls) = let val opt = pfobj_search_atview (s2l) in // case+ opt of | ~Some_vt(pfobj) => auxmain(loc0, pfobj, d3ls) | ~None_vt((*void*)) => let val () = auxerr_pfobj(loc0, s2l) in s2exp_errexp(s2rt_view) end (* end of [None_vt] *) end // end of [s2addr_viewat_deref] end // end of [local] (* ****** ****** *) fun s2addr_get_root ( s2l: s2exp , s2ls: &s2lablst? >> s2lablst ) : s2exp = case+ s2l.s2exp_node of | S2Eproj ( s2l1, _(*type*), s2ls1 ) => (s2ls := s2ls1; s2l1) | _ => (s2ls := list_nil; s2l) // end of [s2addr_get_root] fun eq_dlablst_slablst ( d3ls: d3lablst, s2ls: s2lablst ) : bool = case+ d3ls of | list_cons (d3l, d3ls) => ( case+ s2ls of | list_cons (s2l, s2ls) => ( case+ ( d3l.d3lab_node, s2l ) of // case+ | (D3LABlab l1, S2LABlab l2) => if l1 = l2 then eq_dlablst_slablst (d3ls, s2ls) else false | (_, _) => false ) | list_nil () => false ) // end of [list_cons] | list_nil () => ( case+ s2ls of | list_cons _ => false | list_nil _ => true ) // end of [list_nil] // end of [eq_dlablst_slablst] (* ****** ****** *) local fun auxerr_nonatview ( loc0: loc_t, s2at_new: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": viewat-restoration cannot be performed" val () = prerr ": proof of some atview is needed but one of the following type is given: " val () = (prerr "["; prerr_s2exp (s2at_new); prerr "]") val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_s2exp_set_viewat_atview (loc0, s2at_new)) end // end of [auxerr_nonatview] fun auxerr_nonwithout ( loc0: loc_t, s2e_old: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": viewat-restoration cannot be performed" val () = prerr ": the following type is expected to be a without-type but it is not: " val () = (prerr "["; prerr_s2exp (s2e_old); prerr "]") val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_s2exp_set_viewat_without (loc0, s2e_old)) end // end of [auxerr_nonwithout] fun auxck_addreq ( loc0: loc_t, s2e1, d3ls, s2e2 ) : void = let // val s2e2 = s2exp_hnfize (s2e2) var s2ls: s2lablst // uninitized val s2e2_rt = s2addr_get_root (s2e2, s2ls) val rooteq = s2exp_syneq (s2e1, s2e2_rt) val addreq = ( if rooteq then eq_dlablst_slablst (d3ls, s2ls) else false ) : bool // end of [val] // in // if ~addreq then let val () = prerr_error3_loc (loc0) val () = prerr ": viewat-restoration cannot be performed" val () = prerr ": mismatch of bef/aft locations of atviews:\n" val () = (prerr "bef: ["; prerr_s2exp (s2e1); prerr "]") val () = prerr_newline ((*void*)) val () = (prerr "aft: ["; prerr_s2exp (s2e2); prerr "]") val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_s2addr_viewat_addreq (loc0, s2e1, d3ls, s2e2)) end // end of [if] // end // end of [auxck_addreq] in (* in of [local] *) implement s2addr_set_viewat ( loc0, s2l, d3ls, s2at_new ) = let val s2at_new = s2exp_hnfize (s2at_new) in // case+ s2at_new.s2exp_node of | S2Eat (s2e1, s2e2) => let val s2e_old = s2addr_exch_type (loc0, s2l, d3ls, s2e1) val () = s2addr_set_viewat_check (loc0, s2l, d3ls, s2at_new, s2e_old, s2e1, s2e2) // end of [val] in // nothing end // end of [S2Eat] | _ => auxerr_nonatview (loc0, s2at_new) // end // end of [s2addr_set_viewat] implement s2addr_set_viewat_check ( loc0, s2l, d3ls, s2at_new, s2e_old, s2e_new, s2l_new ) = let (* val () = ( println! ("s2addr_set_viewat_check: s2l = ", s2l); println! ("s2addr_set_viewat_check: s2e_old = ", s2e_old); println! ("s2addr_set_viewat_check: s2e_new = ", s2e_new); ) // end of [val] *) val s2e_old = let val s2e_old = s2exp_hnfize (s2e_old) in case+ s2e_old.s2exp_node of | S2Ewithout (s2e) => s2e | _ => let val () = auxerr_nonwithout (loc0, s2e_old) in s2exp_t0ype_err () end // end of [_] end : s2exp // end of [val] (* // // HX-2012-05-10: // skipping the check to keep a benign loophole // val () = auxck_tszeq (loc0, s2e_old, s2e_new) *) val () = auxck_addreq (loc0, s2l, d3ls, s2l_new) in // exitloc (1) end // end of [s2addr_set_viewat_check] end // end of [local] (* ****** ****** *) local fun auxerr_nonptr ( loc0: loc_t, d3e: d3exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": the dynamic expression is expected to be a pointer." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_d3exp_nonderef (d3e)) end // end of [auxerr_nonptr] fun auxerr1 ( loc0: loc_t, d2v: d2var ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": the dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is not mutable and thus [view@] cannot be applied." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_d2var_nonmut (loc0, d2v)) end // end of [auxerr1] fun auxlablst1 ( loc0: loc_t , s2f0: s2hnf , d3e_l: d3exp , d3ls: d3lablst ) : s2exp = let val opt = un_s2exp_ptr_addr_type (s2f0) in // case+ opt of | ~Some_vt(s2l) => s2addr_viewat_deref (loc0, s2l, d3ls) | ~None_vt((*void*)) => let val () = auxerr_nonptr (loc0, d3e_l) in s2exp_t0ype_err () end (* end of [None_vt] *) // end // end of [auxlablst1] in (* in of [local] *) implement d2exp_trup_viewat (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Eviewat (d2e) = d2e0.d2exp_node val d2lv = d2exp_lvalize (d2e) // in // case+ d2lv of | D2LVALvar_mut (d2v, d2ls) => let val d3ls = d2lablst_trup (d2ls) val-Some (s2l) = d2var_get_addr (d2v) val s2e = d2var_get_type_some (loc0, d2v) val d3e = d3exp_ptrofvar (loc0, s2e, d2v) val s2e_at = s2addr_viewat_deref (loc0, s2l, d3ls) in d3exp_viewat (loc0, s2e_at, d3e, d3ls) end // end of [D2LVALvar_mut] | D2LVALderef (d2e, d2ls) => let val d3e = d2exp_trup (d2e) val () = d3exp_open_and_add (d3e) val d3ls = d2lablst_trup (d2ls) val s2e0 = d3exp_get_type (d3e) val s2f0 = s2exp2hnf (s2e0) val s2e_at = auxlablst1 (loc0, s2f0, d3e, d3ls) in d3exp_viewat (loc0, s2e_at, d3e, d3ls) end // end of [D2LVALderef] // | D2LVALvar_lin _ => let val () = prerr_error3_loc (loc0) val () = prerr ": [view@] operation cannot be applied" val () = prerr ": the dynamic expression is addressless." val () = prerr_newline ((*void*)) val () = the_trans3errlst_add (T3E_d2exp_addrless (d2e0)) in d3exp_errexp (loc0) end // end of [D2LVALvar_lin] // | _ (*rest-of-d2lval*) => let val () = prerr_error3_loc (loc0) val () = prerr ": [view@] operation cannot be applied: " val () = prerr_newline ((*void*)) val () = the_trans3errlst_add (T3E_d2exp_nonlval (d2e0)) in d3exp_errexp (loc0) end // end of [_(*rest-of-d2lval*)] // end // end of [d2exp_trup_viewat] end // end of [local] (* ****** ****** *) local fun auxerr_nonptr ( loc0: loc_t, d3e: d3exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": the dynamic expression is expected to be a pointer." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_d3exp_nonderef (d3e)) end // end of [auxerr_nonptr] fun auxlablst1 ( loc0: loc_t , s2f0: s2hnf , d3e_l: d3exp , d3ls: d3lablst , d3e_r: d3exp ) : d3exp = let // val opt = un_s2exp_ptr_addr_type (s2f0) // in // case+ opt of | ~Some_vt (s2l) => let val s2e_r = d3exp_get_type (d3e_r) val () = s2addr_set_viewat (loc0, s2l, d3ls, s2e_r) // end of [val] in d3exp_viewat_assgn (loc0, d3e_l, d3ls, d3e_r) end // end of [Some_vt] | ~None_vt ((*void*)) => let val ( ) = auxerr_nonptr (loc0, d3e_l) in d3exp_errexp_void (loc0) end // end of [None_vt] end // end of [auxlablst1] in (* in of [local] *) implement d2exp_trup_viewat_assgn (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Eassgn (d2e_l, d2e_r) = d2e0.d2exp_node val-D2Eviewat (d2e_l) = d2e_l.d2exp_node val d2lv_l = d2exp_lvalize (d2e_l) in // case+ d2lv_l of | D2LVALvar_mut (d2v, d2ls) => let val d3ls = d2lablst_trup (d2ls) val-Some (s2l) = d2var_get_addr (d2v) val d3e_r = d2exp_trup (d2e_r) val () = d3exp_open_and_add (d3e_r) val s2e_r = d3exp_get_type (d3e_r) val () = s2addr_set_viewat (loc0, s2l, d3ls, s2e_r) val loc = d2e_l.d2exp_loc val s2e_l = d2var_get_type_some (loc, d2v) val d3e_l = d3exp_ptrofvar (loc, s2e_l, d2v) in d3exp_viewat_assgn (loc0, d3e_l, d3ls, d3e_r) end // end of [D2LVALvar_mut] | D2LVALderef (d2e_l, d2ls) => let val d3e_l = d2exp_trup (d2e_l) val () = d3exp_open_and_add (d3e_l) val d3ls = d2lablst_trup (d2ls) val d3e_r = d2exp_trup (d2e_r) val () = d3exp_open_and_add (d3e_r) val s2e0 = d3exp_get_type (d3e_l) val s2f0 = s2exp2hnf (s2e0) in auxlablst1 (loc0, s2f0, d3e_l, d3ls, d3e_r) end // end of [D2LVALderef] // | D2LVALvar_lin _ => let val loc = d2e_l.d2exp_loc val () = prerr_error3_loc (loc) val () = prerr ": [view@] operation cannot be applied" val () = prerr ": the dynamic expression is addressless." val () = prerr_newline ((*void*)) val () = the_trans3errlst_add (T3E_d2exp_addrless (d2e0)) in d3exp_errexp_void (loc0) end // end of [D2LVALvar_lin] // | _ => let val loc = d2e_l.d2exp_loc val () = prerr_error3_loc (loc) val () = prerr ": [view@] operation cannot be applied: " val () = prerr_newline ((*void*)) val () = the_trans3errlst_add (T3E_d2exp_nonlval (d2e0)) in d3exp_errexp_void (loc0) end // end of [_] // end // end of [d2exp_trup_viewat_assgn] end // end of [local] (* ****** ****** *) (* end of [pats_trans3_view.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_main.dats0000644000175000017500000013227413431250607020312 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload STDIO = "libc/SATS/stdio.sats" // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload GLOB = "./pats_global.sats" (* ****** ****** *) // staload "./pats_basics.sats" // (* ****** ****** *) // macdef isdebug() = (debug_flag_get() > 0) // (* ****** ****** *) // staload "./pats_comarg.sats" // (* overload print with print_comarg *) // (* ****** ****** *) staload "./pats_lexing.sats" staload "./pats_tokbuf.sats" staload "./pats_parsing.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_jsonize.sats" (* ****** ****** *) staload DEPGEN = "./pats_depgen.sats" staload TAGGEN = "./pats_taggen.sats" (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" (* ****** ****** *) // staload TRANS1 = "./pats_trans1.sats" staload TRENV1 = "./pats_trans1_env.sats" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_stacst2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload TRANS2 = "./pats_trans2.sats" staload TRENV2 = "./pats_trans2_env.sats" (* ****** ****** *) staload CODEGEN2 = "./pats_codegen2.sats" staload JSONIZE2 = "./pats_jsonize_synent2.sats" (* ****** ****** *) staload "./pats_dynexp3.sats" (* ****** ****** *) staload TRANS3 = "./pats_trans3.sats" staload TRENV3 = "./pats_trans3_env.sats" (* ****** ****** *) staload CNSTR3 = "./pats_constraint3.sats" (* ****** ****** *) // staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" // (* ****** ****** *) staload TYER = "./pats_typerase.sats" (* ****** ****** *) staload CCOMP = "./pats_ccomp.sats" (* ****** ****** *) // // HX-2015-10-02: // #define ATS_DYNLOADFLAG 0 // manual dynloading #define ATS_DYNLOADFUN_NAME "libatsopt_dynloadall" // (* ****** ****** *) // dynload "pats_error.dats" // dynload "pats_intinf.dats" // dynload "pats_counter.dats" // dynload "pats_utils.dats" dynload "pats_global.dats" // dynload "pats_basics.dats" // dynload "pats_comarg.dats" // dynload "pats_stamp.dats" // dynload "pats_symbol.dats" // dynload "pats_filename.dats" // dynload "pats_location.dats" // dynload "pats_jsonize.dats" // dynload "pats_errmsg.dats" // (* ****** ****** *) dynload "pats_reader.dats" dynload "pats_lexbuf.dats" dynload "pats_lexing.dats" dynload "pats_lexing_error.dats" dynload "pats_lexing_print.dats" dynload "pats_lexing_token.dats" dynload "pats_label.dats" dynload "pats_effect.dats" dynload "pats_fixity_prec.dats" dynload "pats_fixity_fxty.dats" dynload "pats_syntax.dats" dynload "pats_syntax_print.dats" dynload "pats_depgen.dats" dynload "pats_taggen.dats" dynload "pats_tokbuf.dats" dynload "pats_parsing.dats" dynload "pats_parsing_util.dats" dynload "pats_parsing_error.dats" dynload "pats_parsing_kwds.dats" dynload "pats_parsing_base.dats" dynload "pats_parsing_e0xp.dats" dynload "pats_parsing_sort.dats" dynload "pats_parsing_staexp.dats" dynload "pats_parsing_p0at.dats" dynload "pats_parsing_dynexp.dats" dynload "pats_parsing_decl.dats" dynload "pats_parsing_toplevel.dats" // dynload "pats_symmap.dats" dynload "pats_symenv.dats" // dynload "pats_staexp1.dats" dynload "pats_staexp1_print.dats" dynload "pats_dynexp1.dats" dynload "pats_dynexp1_print.dats" // dynload "pats_trans1_env.dats" // dynload "pats_e1xpval.dats" dynload "pats_e1xpval_error.dats" // dynload "pats_filename_reloc.dats" // dynload "pats_trans1_e0xp.dats" dynload "pats_trans1_error.dats" dynload "pats_trans1_effect.dats" dynload "pats_trans1_sort.dats" dynload "pats_trans1_staexp.dats" dynload "pats_trans1_p0at.dats" dynload "pats_trans1_syndef.dats" dynload "pats_trans1_dynexp.dats" dynload "pats_trans1_decl.dats" // dynload "pats_staexp2.dats" dynload "pats_stacst2.dats" // dynload "pats_staexp2_print.dats" dynload "pats_staexp2_pprint.dats" // dynload "pats_staexp2_sort.dats" // dynload "pats_staexp2_scst.dats" dynload "pats_staexp2_svar.dats" dynload "pats_staexp2_svvar.dats" // dynload "pats_staexp2_hole.dats" dynload "pats_staexp2_ctxt.dats" // dynload "pats_staexp2_dcon.dats" // dynload "pats_staexp2_skexp.dats" dynload "pats_staexp2_szexp.dats" // dynload "pats_staexp2_util1.dats" dynload "pats_staexp2_util2.dats" dynload "pats_staexp2_util3.dats" // dynload "pats_staexp2_error.dats" dynload "pats_staexp2_solve.dats" // dynload "pats_patcst2.dats" // dynload "pats_dynexp2.dats" dynload "pats_dyncst2.dats" // dynload "pats_dynexp2_print.dats" // dynload "pats_dynexp2_dcst.dats" dynload "pats_dynexp2_dvar.dats" dynload "pats_dynexp2_dmac.dats" // dynload "pats_dynexp2_util.dats" // dynload "pats_dynexp2_mapgen.dats" // dynload "pats_namespace.dats" // dynload "pats_trans2_env.dats" dynload "pats_trans2_error.dats" dynload "pats_trans2_sort.dats" dynload "pats_trans2_staexp.dats" dynload "pats_trans2_p1at.dats" dynload "pats_trans2_dynexp.dats" dynload "pats_trans2_impdec.dats" dynload "pats_trans2_decl.dats" // dynload "pats_codegen2.dats" dynload "pats_codegen2_util.dats" dynload "pats_codegen2_absrec.dats" dynload "pats_codegen2_datype.dats" dynload "pats_codegen2_fprint.dats" // dynload "pats_jsonize_synent2.dats" // dynload "pats_dynexp3.dats" dynload "pats_dynexp3_print.dats" // dynload "pats_trans3_util.dats" dynload "pats_trans3_error.dats" // dynload "pats_trans3_env.dats" dynload "pats_trans3_env_print.dats" dynload "pats_trans3_env_scst.dats" dynload "pats_trans3_env_svar.dats" dynload "pats_trans3_env_termet.dats" dynload "pats_trans3_env_effect.dats" dynload "pats_trans3_env_dvar.dats" dynload "pats_trans3_env_lamlp.dats" dynload "pats_trans3_env_pfman.dats" dynload "pats_trans3_env_lstate.dats" // dynload "pats_dmacro2.dats" dynload "pats_dmacro2_print.dats" dynload "pats_dmacro2_eval0.dats" dynload "pats_dmacro2_eval1.dats" // dynload "pats_trans3_p2at.dats" dynload "pats_trans3_patcon.dats" dynload "pats_trans3_syncst.dats" dynload "pats_trans3_dynexp_up.dats" dynload "pats_trans3_dynexp_dn.dats" dynload "pats_trans3_appsym.dats" dynload "pats_trans3_caseof.dats" dynload "pats_trans3_selab.dats" dynload "pats_trans3_ptrof.dats" dynload "pats_trans3_viewat.dats" dynload "pats_trans3_deref.dats" dynload "pats_trans3_assgn.dats" dynload "pats_trans3_xchng.dats" dynload "pats_trans3_lvalres.dats" dynload "pats_trans3_fldfrat.dats" dynload "pats_trans3_looping.dats" dynload "pats_trans3_decl.dats" // dynload "pats_lintprgm.dats" dynload "pats_lintprgm_print.dats" (* // // HX: ATS_DYNLOADFLAG set to 0 // dynload pats_lintprgm_myint_int.dats dynload pats_lintprgm_myint_gmp.dats *) dynload "pats_lintprgm_solve.dats" // dynload "pats_constraint3.dats" // dynload "pats_constraint3_print.dats" // dynload "pats_constraint3_mapgen.dats" dynload "pats_constraint3_jsonize.dats" // dynload "pats_constraint3_init.dats" dynload "pats_constraint3_simplify.dats" dynload "pats_constraint3_icnstr.dats" dynload "pats_constraint3_solve.dats" // dynload "pats_histaexp.dats" dynload "pats_histaexp_print.dats" dynload "pats_histaexp_funlab.dats" // dynload "pats_hidynexp.dats" dynload "pats_hidynexp_print.dats" dynload "pats_hidynexp_util.dats" // dynload "pats_typerase_error.dats" dynload "pats_typerase_staexp.dats" dynload "pats_typerase_dynexp.dats" dynload "pats_typerase_decl.dats" // dynload "pats_ccomp.dats" dynload "pats_ccomp_print.dats" // dynload "pats_ccomp_hitype.dats" // dynload "pats_ccomp_tmplab.dats" dynload "pats_ccomp_tmpvar.dats" // dynload "pats_ccomp_d2env.dats" // dynload "pats_ccomp_funlab.dats" dynload "pats_ccomp_funent.dats" // dynload "pats_ccomp_util.dats" // dynload "pats_ccomp_ccompenv.dats" dynload "pats_ccomp_instrseq.dats" // dynload "pats_ccomp_hipat.dats" // dynload "pats_ccomp_dynexp.dats" // dynload "pats_ccomp_caseof.dats" dynload "pats_ccomp_claulst.dats" // dynload "pats_ccomp_lazyeval.dats" // dynload "pats_ccomp_trywith.dats" // dynload "pats_ccomp_looping.dats" // dynload "pats_ccomp_decl.dats" // dynload "pats_ccomp_subst.dats" dynload "pats_ccomp_environ.dats" dynload "pats_ccomp_template.dats" // dynload "pats_ccomp_emit.dats" dynload "pats_ccomp_emit2.dats" dynload "pats_ccomp_emit3.dats" dynload "pats_ccomp_main.dats" // (* ****** ****** *) %{^ // extern void patsopt_PATSHOME_set() ; extern char *patsopt_PATSHOME_get() ; // extern void patsopt_PATSCONTRIB_set() ; // extern void patsopt_PATSHOMELOCS_set() ; // extern void patsopt_PATSRELOCROOT_set() ; // %} // end of [%{^] (* ****** ****** *) fn patsopt_usage ( out: FILEref, arg0: comarg ) : void = let // val COMARG(_, cmdname) = arg0 // in // fprintln! (out, "Usage: ", cmdname, " ... \n"); fprintln! (out, "where a is of one of the following forms:\n"); // fprintln! (out, " -h (for printing out this help usage)"); fprintln! (out, " --help (for printing out this help usage)"); // fprintln! (out, " -v (for printing out the version)"); fprintln! (out, " --version (for printing out the version)"); // fprintln! (out, " -s (for compiling static filenames individually)"); fprintln! (out, " --static (for compiling static filenames individually)"); // fprintln! (out, " -d (for compiling dynamic filenames individually)"); fprintln! (out, " --dynamic (for compiling dynamic filenames individually)"); // fprintln! (out, " -dd (for compiling dynamic filenames in a combined manner)"); fprintln! (out, " --dynamics (for compiling dynamic filenames in a combined manner)"); // fprintln! (out, " -o (output into filename)"); fprintln! (out, " --output (output into filename)"); fprintln! (out, " --output-w (output-write into filename)"); fprintln! (out, " --output-a (output-append into filename)"); // fprintln! (out, " -cc (for compiling into C)"); fprintln! (out, " -tc (for typechecking only)"); fprintln! (out, " --compile (for compiling into C)"); fprintln! (out, " --typecheck (for typechecking only)"); // (* fprintln! (out, " -dep (for generating information on file dependencices)"); *) fprintln! (out, " --depgen (for generating information on file dependencices)"); (* fprintln! (out, " -tag (for generating tagging information on syntactic entities)"); *) fprintln! (out, " --taggen (for generating tagging information on syntactic entities)"); // fprintln! (out, " --gline (for generating line pragma information in target code)"); // fprintln! (out, " --debug (for enabling the generation of more informative error messages)"); fprintln! (out, " --debug2 (for enabling the generation of debugging information in target code)"); // fprintln! (out, " --atsreloc (for generating a script to help relocate packages in need)"); // fprintln! (out, " --codegen-2 (for outputing code generated from level-2 syntax)"); fprintln! (out, " --jsonize-2 (for outputing code in JSON based on level-2 syntax)"); // fprintln! (out, " --tlcalopt-disable (for disabling tail-call optimization)"); // fprintln! (out, " --constraint-export (for exporting constraints in JSON format)"); fprintln! (out, " --constraint-ignore (for entirely ignoring constraint-solving)"); // fprint_newline (out); // end // end of [patsopt_usage] (* ****** ****** *) // (* // HX: VERSION-0.0.1 released on September 2, 2013 HX: VERSION-0.0.2 released on September 19, 2013 HX: VERSION-0.0.3 released in the October of 2013 HX: VERSION-0.0.4 released in the November of 2013 HX: VERSION-0.0.5 released on January 15, 2014 HX: VERSION-0.0.6 released on February 16, 2014 HX: VERSION-0.0.7 released on March 30, 2014 HX: VERSION-0.0.8 released on Sunday, May 4, 2014 // HX: VERSION-0.1.0 released on Monday, June 9, 2014 HX: VERSION-0.1.1 released on Wednesday, July 30, 2014 HX: VERSION-0.1.2 released on Friday, August 29, 2014 HX: VERSION-0.1.3 released on Monday, September 29, 2014 HX: VERSION-0.1.4 released on Thursday, October 23, 2014 HX: VERSION-0.1.5 released on Thursday, November 20, 2014 HX: VERSION-0.1.6 released on Tuesday, January 6, 2015 HX: VERSION-0.1.7 released on Tuesday, January 20, 2015 HX: VERSION-0.1.8 released on Saturday, January 24, 2015 HX: VERSION-0.1.9 released on Friday, February 27, 2015 HX: VERSION-0.1.10 released on Sunday, March 22, 2015 HX: VERSION-0.1.11 released on Thursday, April 23, 2015 HX: VERSION-0.1.12 released on Saturday, May 16, 2015 HX: VERSION-0.1.13 released on Friday, May 22, 2015 // HX: VERSION-0.2.0 released on Tuesday, June 9, 2015 HX: VERSION-0.2.1 released on Sunday, July 12, 2015 HX: VERSION-0.2.2 released on Saturday, August 29, 2015 HX: VERSION-0.2.3 released on Tuesday, September 22, 2015 HX: VERSION-0.2.3 released on Wednesday, October 28, 2015 HX: VERSION-0.2.3 released on Tuesday, Decemember 22, 2015 HX: VERSION-0.2.6 released on Saturday, February 6, 2016) HX: VERSION-0.2.7 released on Saturday, May 14, 2016) HX: VERSION-0.2.8 released on Wednesday, June 29, 2016) // *) // (* ****** ****** *) // #define PATS_COPYRIGHT "Copyright (c) 2011-2018 Hongwei Xi" // (* ****** ****** *) // extern fun patsopt_version ( out: FILEref ) : void = "ext#libatsopt_patsopt_version" // implement patsopt_version(out) = { // val () = fprintf ( out , "ATS/Postiats version %i.%i.%i with %s\n" , @(PATS_MAJOR_VERSION, PATS_MINOR_VERSION, PATS_MICRO_VERSION, PATS_COPYRIGHT) ) (* end of [fprintf] *) // } (* end of [patsopt_version] *) // (* ****** ****** *) datatype waitknd = | WTKnone of () | WTKoutput of () // -o ... // | WTKinput_sta of () // -s ... | WTKinput_dyn of () // -d ... | WTKinputs_dyn of () // -dd ... // | WTKdefine of () // -DATS ... | WTKinclude of () // -IATS ... // end of [waitknd] fun waitknd_get_stadyn (knd: waitknd): int = ( case+ knd of | WTKinput_sta() => 0 | WTKinput_dyn() => 1 | WTKinputs_dyn() => 2 | _ (*rest-of-WTK*) => ~1 ) // end of [waitknd_get_stadyn] (* ****** ****** *) datatype outchan = | OUTCHANref of (FILEref) | OUTCHANptr of (FILEref) // end of [outchan] fun outchan_get_filr (oc: outchan): FILEref = ( case+ oc of | OUTCHANref(filr) => filr | OUTCHANptr(filr) => filr ) (* end of [outchan_get_filr] *) (* ****** ****** *) typedef fmode = [m:file_mode] file_mode(m) typedef cmdstate = @{ // comarg0= comarg // , ATSHOME= string // , waitknd= waitknd // // number of processed input files // , ninpfile= int // // prelude-loading is done or not // , preludeflag= int // , infil=filename // , outmode= fmode , outchan= outchan // , depgen= int // dep info generation , taggen= int // tagging info generation // , atsreloc= int // relocating packages // , codegenflag= int // codegen based on level-2 syntax , jsonizeflag= int // jsonize based on level-2 syntax // , typecheckflag= int // 0 by default // , cnstrsolveflag= int // 0 by default // , olevel= int // level for output // , nerror= int // number of accumulated errors } // end of [cmdstate] (* ****** ****** *) local fun auxmain ( state: &cmdstate, name: string ) : outchan = let // val (pfopt | filp) = $STDIO.fopen_err(name, state.outmode) // in // if filp > null then let // prval Some_v(pf) = pfopt // val filr = $UN.castvwtp_trans{FILEref}(@(pf | filp)) // in OUTCHANptr(filr) end // end of [then] else let prval None_v() = pfopt in OUTCHANref(stderr_ref) end // end of [else] // end // end of [auxmain] in (* in-of-local *) fun outchan_make_path ( state: &cmdstate, name: string ) : outchan = ( case+ name of | "-" => OUTCHANref(stdout_ref) // | _(*~special*) => auxmain(state, name) // ) (* outchan_make_path *) end // end of [local] (* ****** ****** *) fun cmdstate_set_outchan ( state: &cmdstate, out_new: outchan ) : void = let val out_old = state.outchan val ((*void*)) = state.outchan := out_new in // case+ out_old of // | OUTCHANref _ => () // | OUTCHANptr(filp) => let val err = $STDIO.fclose0_err(filp) in (*nothing*) end // end of [OUTCHANptr] // end // end of [cmdstate_set_outchan] (* ****** ****** *) fun isinpwait ( state: cmdstate ) : bool = ( case+ state.waitknd of // case+ | WTKinput_sta() => true | WTKinput_dyn() => true | WTKinputs_dyn() => true | _ (*non-WTKinput*) => false ) // end of [isinpwait] fun isoutwait (state: cmdstate): bool = ( case+ state.waitknd of | WTKoutput() => true | _(*non-WTKoutput*) => false ) (* end of [isoutwait] *) fun isdatswait (state: cmdstate): bool = ( case+ state.waitknd of | WTKdefine() => true | _(*non-WTKdefine*) => false ) (* end of [isdatswait] *) fun isiatswait (state: cmdstate): bool = ( case+ state.waitknd of | WTKinclude() => true | _(*non-WTKinclude*) => false ) (* end of [isiatswait] *) (* ****** ****** *) local var theOutFilename : Stropt = stropt_none // val (pf0 | ()) = vbox_make_view_ptr{Stropt}(view@(theOutFilename) | &theOutFilename) // end of [val] in (* in-of-local *) fun theOutFilename_get ( // argless ) : Stropt = out where { // prval vbox pf = pf0 // val out = theOutFilename val () = theOutFilename := stropt_none } // end of [theOutFilename_get] fun theOutFilename_set (name: Stropt) = () where { // prval vbox pf = pf0 // val () = theOutFilename := name } // end of [theOutFilename_set] end // end of [local] (* ****** ****** *) // extern fun the_fixity_load (PATSHOME: string): void = "ext#libatsopt_the_fixity_load" // implement the_fixity_load (PATSHOME) = let // val given = "prelude/fixity.ats" val fullname = $FIL.filename_dirbase(PATSHOME, given) val fullname = string_of_strptr(fullname) val filename = $FIL.filename_make(given, given, fullname) // val ( pffil | () ) = $FIL.the_filenamelst_push(filename) val d0cs = parse_from_filename_toplevel(0(*sta*), filename) val ((*popped*)) = $FIL.the_filenamelst_pop(pffil | (*none*)) // val ( pfenv | () ) = $TRENV1.the_fxtyenv_push_nil((*void*)) val d1cs = $TRANS1.d0eclist_tr_errck(d0cs) val fxtymap = $TRENV1.the_fxtyenv_pop (pfenv | (*none*)) val ((*joined*)) = $TRENV1.the_fxtyenv_pervasive_joinwth(fxtymap) // (* val () = println! "[the_fixity_load] is finished." *) // in // empty end // end of [the_fixity_load] (* ****** ****** *) // extern fun pervasive_load ( PATSHOME: string, given: string ) : void = "ext#libatsopt_pervasive_load" // implement pervasive_load (PATSHOME, given) = { // (* val () = ( println! ("pervasive_load: given = ", given) ) (* end of [val] *) *) // val fullname = $FIL.filename_dirbase(PATSHOME, given) val fullname = string_of_strptr(fullname) // val filename = $FIL.filename_make(given, given, fullname) // val (pfpush|()) = $FIL.the_filenamelst_push(filename) val d0cs = parse_from_filename_toplevel(0(*sta*), filename) val ((*popped*)) = $FIL.the_filenamelst_pop(pfpush | (*none*)) // val PACKNAME = "ATSLIB.prelude" val ((*default*)) = $GLOB.the_PACKNAME_set_name(PACKNAME) val ((*default*)) = $TRENV1.the_EXTERN_PREFIX_set("atspre_") // val (pfenv | ()) = $TRENV1.the_trans1_env_push((*void*)) val d1cs = $TRANS1.d0eclist_tr_errck(d0cs) val ((*popped*)) = $TRENV1.the_trans1_env_pop(pfenv | (*none*)) // val (pfenv | ()) = $TRENV2.the_trans2_env_push((*void*)) val d2cs = $TRANS2.d1eclist_tr_errck(d1cs) val ((*joined*)) = $TRENV2.the_trans2_env_pervasive_joinwth1(pfenv | filename, d2cs) // val ((*reset*)) = $GLOB.the_PACKNAME_set_none() val ((*reset*)) = $TRENV1.the_EXTERN_PREFIX_set_none() // } (* end of [pervasive_load] *) (* ****** ****** *) // // HX-2015-10-05: // For use in libatsopt // extern fun the_prelude_load ( PATSHOME: string ) : void = "ext#libatsopt_the_prelude_load" // implement the_prelude_load (PATSHOME) = { // val () = the_fixity_load(PATSHOME) // val () = pervasive_load(PATSHOME, "prelude/basics_pre.sats") val () = pervasive_load(PATSHOME, "prelude/basics_sta.sats") val () = pervasive_load(PATSHOME, "prelude/basics_dyn.sats") val () = pervasive_load(PATSHOME, "prelude/basics_gen.sats") // val () = pervasive_load(PATSHOME, "prelude/macrodef.sats") // val () = stacst2_initialize() // internalizing some static consts val () = $CNSTR3.constraint3_initialize() // internalizing some maps // (* // // HX: Primary // *) // val () = pervasive_load(PATSHOME, "prelude/SATS/integer.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/pointer.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/arith_prf.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/integer_long.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/integer_size.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/integer_short.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/bool.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/char.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/float.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/string.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/strptr.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/integer_ptr.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/integer_fixed.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/tuple.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/memory.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/reference.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/filebas.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/intrange.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/gorder.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/gnumber.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/grandom.sats") // (* // // HX: manual loading // val () = pervasive_load(PATSHOME, "prelude/SATS/unsafe.sats") // *) // val () = pervasive_load(PATSHOME, "prelude/SATS/checkast.sats") // (* // // HX: Secondary // *) // val () = pervasive_load(PATSHOME, "prelude/SATS/list.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/list_vt.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/option.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/option_vt.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/array.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/array_prf.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/arrayptr.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/arrayref.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/matrix.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/matrixptr.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/matrixref.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/stream.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/stream_vt.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/gprint.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/tostring.sats") // val () = pervasive_load(PATSHOME, "prelude/SATS/parray.sats") // null-terminated // val () = pervasive_load(PATSHOME, "prelude/SATS/extern.sats") // interfacing externs // (* val () = pervasive_load(PATSHOME, "prelude/SATS/giterator.sats") val () = pervasive_load(PATSHOME, "prelude/SATS/fcontainer.sats") *) // } (* end of [the_prelude_load] *) (* ****** ****** *) // // HX-2015-10-05: // For use in libatsopt // extern fun the_prelude_load_if ( PATSHOME: string, flag: &int ) : void = "ext#libatsopt_the_prelude_load_if" // implement the_prelude_load_if (PATSHOME, flag) = ( // if flag = 0 then let val () = flag := 1 in the_prelude_load(PATSHOME) end else () // end of [if] // ) (* end of [the_prelude_load_if] *) (* ****** ****** *) // extern fun do_depgen ( state: &cmdstate , given: string, d0cs: d0eclist ) : void // end of [do_depgen] extern fun do_taggen ( state: &cmdstate , given: string, d0cs: d0eclist ) : void // end of [do_taggen] // implement do_depgen (state, given, d0cs) = let // val ents = $DEPGEN.depgen_eval(d0cs) // // HX-2015-05-28: // [trans1] is not allowed after [depgen] // val ((*popped*)) = $FIL.the_filenamelst_ppop() // val filr = outchan_get_filr(state.outchan) // in $DEPGEN.fprint_entlst(filr, given, ents) end // end of [do_depgen] // implement do_taggen (state, given, d0cs) = let // val ents = $TAGGEN.taggen_proc(d0cs) // // HX-2015-05-28: // [trans1] is not allowed after [taggen] // val ((*popped*)) = $FIL.the_filenamelst_ppop() // val filr = outchan_get_filr(state.outchan) // in $TAGGEN.fprint_entlst(filr, given, ents) end // end of [do_taggen] // (* ****** ****** *) // extern fun do_atsreloc ( state: &cmdstate , given: string, d1cs: d1eclist ) : void // end of [do_atsreloc] // implement do_atsreloc (state, given, d1cs) = let // val itms = $TRENV1.the_atsrelocitmlst_get() // val filr = outchan_get_filr(state.outchan) // in // $TRENV1.fprint_atsrelocitmlst(filr, itms) // end // end of [do_atsreloc] // (* ****** ****** *) // extern fun do_codegen_2 ( state: &cmdstate , given: string(*unused*), d2cs: d2eclist ) : void // end-of-fun // (* ****** ****** *) implement do_codegen_2 (state, given, d2cs) = let // val out = state.outchan val out = outchan_get_filr(out) // in $CODEGEN2.d2eclist_codegen_out(out, d2cs) end // end of [do_codegen_2] (* ****** ****** *) // extern fun do_jsonize_2 ( state: &cmdstate , given: string(*unused*), d2cs: d2eclist ) : void // end-of-fun // (* ****** ****** *) local (* fun fprint_jsonlst ( out: FILEref, jsvs: jsonvalist ) : void = let // fun loop ( out: FILEref, jsvs: jsonvalist, i: int ) : void = let in // case+ jsvs of | list_nil ((*void*)) => () // list_nil | list_cons (jsv, jsvs) => let val () = if i > 0 then fprint_string (out, ",\n") // end of [if] val ((*void*)) = fprintln! (out, jsv) in loop (out, jsvs, i+1) end // end of [list_cons] // end // end of [loop] // in loop (out, jsvs, 0) end // end of [fprint_jsonlst] *) in (* in of [local] *) implement do_jsonize_2 ( state, given, d2cs ) = let // val out = state.outchan val out = outchan_get_filr(out) // in $JSONIZE2.d2eclist_jsonize_out(out, d2cs) end (* end of [do_jsonize_2] *) end // end of [local] (* ****** ****** *) // extern fun do_trans1 ( state: &cmdstate, given: string, d0cs: d0eclist ) : d1eclist // end-of-function // extern fun do_trans12 ( state: &cmdstate, given: string, d0cs: d0eclist ) : d2eclist // end-of-function // extern fun do_trans123 ( state: &cmdstate, given: string, d0cs: d0eclist ) : d3eclist // end-of-function // extern fun do_trans1234 ( state: &cmdstate, given: string, d0cs: d0eclist ) : hideclist // end-of-function // extern fun do_transfinal (state: &cmdstate, given: string, d0cs: d0eclist): void extern fun do_transfinal2 (state: &cmdstate, given: string, d0cs: d0eclist): void // (* ****** ****** *) implement do_trans1 ( state, given, d0cs ) = let // val d1cs = $TRANS1.d0eclist_tr_errck(d0cs) // end of [val] // val () = $TRANS1.trans1_finalize() // val () = if isdebug() then { val () = prerrln! ( "The 1st translation (fixity) of [", given, "] is successfully completed!" ) (* end of [val] *) } // end of [if] // end of [val] // in d1cs end // end of [do_trans1] (* ****** ****** *) implement do_trans12 ( state, given, d0cs ) = d2cs where { // val d1cs = do_trans1 (state, given, d0cs) // val () = if state.ninpfile >= 2 then ( $TRENV2.the_trans2_env_initialize() ) (* end of [then] *) // val d2cs = $TRANS2.d1eclist_tr_errck(d1cs) // val () = if isdebug() then { val () = prerrln! ( "The 2nd translation (binding) of [", given, "] is successfully completed!" ) (* end of [val] *) } // end of [if] // end of [val] // } (* end of [do_trans12] *) (* ****** ****** *) implement do_trans123 ( state, given, d0cs ) = d3cs where { // val d2cs = do_trans12(state, given, d0cs) // val () = $TRENV3.the_trans3_env_initialize() // val d3cs = $TRANS3.d2eclist_tr_errck(d2cs) // (* val () = { // val () = print "do_trans123: the_s3itmlst =\n" val () = $TRENV3.fprint_the_s3itmlst(stdout_ref) val ((*void*)) = print_newline((*void*)) // } (* end of [val] *) *) // val () = { // val flag = state.cnstrsolveflag val c3t0 = $TRENV3.the_trans3_finget_constraint() // end of [val] // val () = ( // if flag = 0 then { val () = $CNSTR3.c3nstr_ats2_solve(c3t0) } (* end of [then] *) // ) (* end of [val] *) // val () = if flag > 0 then { val filr = outchan_get_filr(state.outchan) val () = $CNSTR3.c3nstr_export(filr, c3t0) } (* end of [then] *) // } (* end of [val] *) // val () = if isdebug() then { val () = prerrln! ( "The 3rd translation (type-checking) of [", given, "] is successfully completed!" ) (* end of [val] *) } // end of [then] // end of [if] // end of [val] // } (* end of [do_trans123] *) (* ****** ****** *) implement do_trans1234 ( state, given, d0cs ) = hids where { // val d3cs = do_trans123(state, given, d0cs) // end of [d3cs] // val hids = $TYER.d3eclist_tyer_errck(d3cs) // (* val () = fprint_hideclist(stdout_ref, hids) *) // val () = if isdebug() then { val () = prerrln! ( "The 4th translation (type/proof-erasing) of [", given, "] is successfully completed!" ) (* end of [val] *) } // end of [if] // end of [val] // } (* end of [do_trans1234] *) (* ****** ****** *) implement do_transfinal (state, given, d0cs) = let // (* val () = println! ("PACKNAME=", $GLOB.the_PACKNAME_get()) val () = println! ("STATIC_PREFIX=", $GLOB.the_STATIC_PREFIX_get()) *) // in // case+ 0 of | _ when state.atsreloc > 0 => let val d1cs = do_trans1(state, given, d0cs) // end of [val] in do_atsreloc(state, given, d1cs) end // end of [when ...] | _ when state.codegenflag = 2 => let val d2cs = do_trans12(state, given, d0cs) // end of [val] in do_codegen_2(state, given, d2cs) end // end of [when ...] | _ when state.jsonizeflag = 2 => let val d2cs = do_trans12(state, given, d0cs) // end of [val] in do_jsonize_2(state, given, d2cs) end // end of [when ...] | _ when state.typecheckflag > 0 => { val d3cs = do_trans123(state, given, d0cs) } (* end of [when ...] *) | _ (*compilation*) => let val () = state.olevel := 1 // for output val hids = do_trans1234(state, given, d0cs) val filr = outchan_get_filr(state.outchan) val flag = waitknd_get_stadyn(state.waitknd) val ((*void*)) = $CCOMP.ccomp_main(filr, flag, state.infil, hids) // end of [val] in // nothing end // end of [_] // end (* end of [do_transfinal] *) (* ****** ****** *) local fun auxexn ( p0: ptr , given: string, d0cs: d0eclist, exn: exn ) : void = let // fun auxerr ( n: int, outfil: FILEref, given: string, msg: string ) : void = let val cmtl = "/* ****** ****** */\n" // in // if (n > 0) then fprintf ( outfil , "%s//\n#error(PATSOPT_ERROR_(patsopt(%s): %s))\n//\n%s", @(cmtl, given, msg, cmtl) ) // end of [fprintf] // end (* end of [auxerr] *) // val (pf, fpf | p) = $UN.ptr0_vtake{cmdstate}(p0) // val olevel = p->olevel val outfil = outchan_get_filr(p->outchan) // val nerror = p->nerror val ((*void*)) = p->nerror := nerror + 1 // prval ((*returned*)) = fpf(pf) // in // case+ exn of // | ~($ERR.PATSOPT_FIXITY_EXN()) => ( auxerr(olevel, outfil, given, "fixity-errors") ) // | ~($ERR.PATSOPT_TRANS1_EXN()) => ( auxerr(olevel, outfil, given, "trans1-errors") ) // | ~($ERR.PATSOPT_TRANS2_EXN()) => ( auxerr(olevel, outfil, given, "trans2-errors") ) // | ~($ERR.PATSOPT_TRANS3_EXN()) => ( auxerr(olevel, outfil, given, "trans3-errors") ) // | ~($ERR.PATSOPT_TRANS4_EXN()) => ( auxerr(olevel, outfil, given, "trans4-errors") ) // (* | $ERR.PATSOPT_FILENONE_EXN(fname) => ( fold@(exn); fprintf (outfil, "/* ****** ****** */\n//\n", @()); fprintf (outfil, "#error(patsopt(%s): [%s] cannot be accessed)\n", @(given, fname)); fprintf (outfil, "//\n/* ****** ****** */\n", @()); $raise(exn); ) *) // | exn => $raise(exn) // end // end of [auxexn] in (* in-of-local*) implement do_transfinal2 ( state, given, d0cs ) = let // val p0 = &state // in // try let // val (pf, fpf | p) = $UN.ptr0_vtake{cmdstate}(p0) // val () = do_transfinal(!p, given, d0cs) // prval ((*returned*)) = fpf(pf) // in // nothing end with exn => auxexn(p0, given, d0cs, exn) // end // end of [do_transfinal2] end // end of [local] (* ****** ****** *) fn parse_from_given_arglst_toplevel {n:nat} ( state: &cmdstate , given: string(*path*) , arglst: comarglst(n) ) : [i:nat | i <= n] ( comarglst(i), d0eclist ) = let // fun loop {i:nat | i <= n} ( state: &cmdstate , arglst: comarglst(i) , fnames: list_vt(string, n-i+1) ) : [i:nat | i <= n] ( comarglst(i), d0eclist ) = ( // case+ arglst of | list_vt_nil() => ( fold@(arglst); loop2(state, arglst, fnames) ) | list_vt_cons(!p_arg1, !p_arglst2) => ( case+ !p_arg1 of | COMARG(1, _) => (fold@(arglst); loop2(state, arglst, fnames)) | COMARG(2, _) => (fold@(arglst); loop2(state, arglst, fnames)) | COMARG(_, fname) => let val arglst2 = !p_arglst2 in free@{comarg}{0}(arglst); loop(state, arglst2, list_vt_cons(fname, fnames)) end // end of [COMARG] ) // ) (* end of [loop] *) // and loop2 {i:nat | i <= n} ( state: &cmdstate , arglst: comarglst(i) , fnames: list_vt(string, n-i+1) ) : ( comarglst(i), d0eclist ) = let val fnames = list_vt_reverse(fnames) val givens = $UN.list_vt2t(fnames) val d0cs = parse_from_givenames_toplocal2(1(*dyn*), givens, state.infil) val ((*freed*)) = list_vt_free(fnames) in (arglst, d0cs) end // end of [loop2] // val stadyn = waitknd_get_stadyn(state.waitknd) // in // if (stadyn <= 1) then let // -s / -d // val d0cs = parse_from_givename_toplevel (stadyn, given, state.infil) // in (arglst, d0cs) end // end of [then] else // stadyn >= 2 // -dd ( loop(state, arglst, list_vt_sing(given)) ) (* end of [else] *) // end // end of [parse_from_given_arglst_toplevel] (* ****** ****** *) fn process_nil ( state: &cmdstate ) : void = let // val stadyn = waitknd_get_stadyn(state.waitknd) // in // if stadyn >= 0 then () where { // val () = state.infil := $FIL.filename_stdin // val () = the_prelude_load_if (state.ATSHOME, state.preludeflag) // end of [val] // val () = if stadyn >= 1 then $GLOB.the_DYNLOADFLAG_set(1) // end of [if] // val d0cs = parse_from_stdin_toplevel(stadyn) // var istrans: bool = true // val isdepgen = state.depgen > 0 val istaggen = state.taggen > 0 // val () = if isdepgen then istrans := false val () = if istaggen then istrans := false // val given = "__STDIN__" // val () = if isdepgen then do_depgen(state, given, d0cs) // end of [val] val () = if istaggen then do_taggen(state, given, d0cs) // end of [val] // val () = if istrans then $FIL.the_filenamelst_ppush($FIL.filename_stdin) // val () = if istrans then do_transfinal2(state, given, d0cs) // } (* end of [then] *) // end // end of [process_nil] (* ****** ****** *) fn* process_cmdline {i:nat} .. ( state: &cmdstate , arglst: comarglst(i) ) : void = let in // case+ arglst of // | ~list_vt_nil() => ( if state.ninpfile = 0 then process_nil(state) else () ) // | ~list_vt_cons (arg, arglst) => ( process_cmdline2(state, arg, arglst) ) // end // end of [process_cmdline] (* ****** ****** *) and process_cmdline2 {i:nat} .. ( state: &cmdstate , arg: comarg, arglst: comarglst(i) ) : void = let // (* val () = println! ("process_cmdline2: arg = ", arg) *) // in // case+ arg of // | _ when isinpwait(state) => let // // HX: [inpwait] stays unchanged // val stadyn = waitknd_get_stadyn(state.waitknd) val nif = state.ninpfile in case+ arg of // | COMARG(1, key) when nif > 0 => process_cmdline2_comarg1(state, arglst, key) // | COMARG(2, key) when nif > 0 => process_cmdline2_comarg2(state, arglst, key) // | COMARG(_, "-") => let // val () = state.ninpfile := nif + 1 in process_nil(state); process_cmdline(state, arglst) end (* end of [COMARG] *) // | COMARG(_, given) => let // val () = state.ninpfile := nif + 1 // val () = the_prelude_load_if (state.ATSHOME, state.preludeflag) // the_prelude_load_if // val () = if stadyn >= 1 then $GLOB.the_DYNLOADFLAG_set(1) // end of [if] // var istrans: bool = true val isdepgen = state.depgen > 0 val () = if isdepgen then istrans := false val istaggen = state.taggen > 0 val () = if istaggen then istrans := false // (* val d0cs = // for -s / -d parse_from_givename_toplevel (stadyn, given, state.infil) *) val (arglst, d0cs) = parse_from_given_arglst_toplevel(state, given, arglst) // val () = if isdepgen then do_depgen(state, given, d0cs) val () = if istaggen then do_taggen(state, given, d0cs) // val () = if istrans then do_transfinal2(state, given, d0cs) // end of [val] // in process_cmdline(state, arglst) end (* end of [_] *) // end of [case] end // end of [_ when isinpwait] // | _ when isoutwait(state) => let val () = state.waitknd := WTKnone() // val COMARG(_, given) = arg // val opt = stropt_some(given) val ((*void*)) = theOutFilename_set(opt) // val _new = outchan_make_path(state, given) val ((*void*)) = cmdstate_set_outchan(state, _new) // in process_cmdline(state, arglst) end // end of [_ when isoutwait] // | _ when isdatswait(state) => let val () = state.waitknd := WTKnone() val COMARG(_, def) = arg val () = process_DATS_def(def) in process_cmdline(state, arglst) end // end of [_ when isdatswait] // | _ when isiatswait(state) => let val () = state.waitknd := WTKnone() val COMARG(_, dir) = arg val () = process_IATS_dir(dir) in process_cmdline(state, arglst) end // | COMARG(1, key) => process_cmdline2_comarg1(state, arglst, key) | COMARG(2, key) => process_cmdline2_comarg2(state, arglst, key) | COMARG(_, key) => let val () = comarg_warning(key) val () = state.waitknd := WTKnone() in process_cmdline(state, arglst) end // end of [COMARG] // end // end of [process_cmdline2] (* ****** ****** *) and process_cmdline2_comarg1 {i:nat} .. ( state: &cmdstate , arglst: comarglst(i), key: string ) : void = let // val () = state.waitknd := WTKnone() // val () = ( case+ key of // | "-o" => { val () = state.waitknd := WTKoutput } (* end of [-o] *) | "-s" => { val () = state.ninpfile := 0 val () = state.waitknd := WTKinput_sta } (* end of [-s] *) | "-d" => { val () = state.ninpfile := 0 val () = state.waitknd := WTKinput_dyn } (* end of [-d] *) | "-dd" => { val () = state.ninpfile := 0 val () = state.waitknd := WTKinputs_dyn } (* end of [-dd] *) // | "-cc" => (state.typecheckflag := 0) | "-tc" => (state.typecheckflag := 1) // | "-dep" => (state.depgen := 1) | "-tag" => (state.taggen := 1) // | _ when is_DATS_flag (key) => let val def = DATS_extract(key) val issome = stropt_is_some(def) in if issome then process_DATS_def(stropt_unsome(def)) else let val () = state.waitknd := WTKdefine() in // nothing end // end of [else] // end of [if] end // is_DATS_flag | _ when is_IATS_flag(key) => let val dir = IATS_extract(key) val issome = stropt_is_some(dir) in if issome then process_IATS_dir(stropt_unsome(dir)) else let val () = state.waitknd := WTKinclude() in // nothing end // end of [else] // end of [if] end // is_IATS_flag // | "-h" => let val cmd = state.comarg0 in patsopt_usage(stdout_ref, cmd) end // end of ["-h"] // | "-v" => patsopt_version(stdout_ref) // | _ (*rest*) => comarg_warning(key) // unrecognized key // ) : void // end of [val] // in process_cmdline(state, arglst) end // end of [process_cmdline2_comarg1] (* ****** ****** *) and process_cmdline2_comarg2 {i:nat} .. ( state: &cmdstate , arglst: comarglst(i), key: string ) : void = let // val () = state.waitknd := WTKnone(*void*) // val () = ( case+ key of // | "--help" => patsopt_usage (stdout_ref, state.comarg0) // end of [--help] // | "--output" => state.waitknd := WTKoutput() | "--output-w" => { val () = state.outmode := file_mode_w val () = state.waitknd := WTKoutput() } // end of [--output-w] | "--output-a" => { val () = state.outmode := file_mode_a val () = state.waitknd := WTKoutput() } // end of [--output-a] // | "--static" => { val () = state.waitknd := WTKinput_sta } // end of [--static] | "--dynamic" => { val () = state.waitknd := WTKinput_dyn } // end of [--dynamic] | "--dynamics" => { val () = state.waitknd := WTKinputs_dyn } // end of [--dynamics] // | "--compile" => (state.typecheckflag := 0) | "--typecheck" => (state.typecheckflag := 1) // | "--gline" => { val () = $GLOB.the_DEBUGATS_dbgline_set(1) } // end of [--gline] // mostly for debugging // | "--debug" => { val () = debug_flag_set(1) // in pats_basics } // end of [--debug] // more informative error messages | "--debug2" => { val () = debug_flag_set(1) val () = $GLOB.the_DEBUGATS_dbgflag_set(1) } // end of [--debug2] // debugging info in generated code // | "--depgen" => (state.depgen := 1) | "--taggen" => (state.taggen := 1) // | "--atsreloc" => { val () = state.atsreloc := 1 val () = $GLOB.the_ATSRELOC_set(1) } (* end of [--atsreloc] *) // | "--codegen-2" => (state.codegenflag := 2) | "--jsonize-2" => (state.jsonizeflag := 2) // | "--tlcalopt-disable" => { val () = $GLOB.the_CCOMPATS_tlcalopt_set(0) } // | "--constraint-export" => { val () = state.cnstrsolveflag := 1 } | "--constraint-ignore" => { val () = state.cnstrsolveflag := ~1 } // | "--version" => patsopt_version(stdout_ref) // | _ (* unrecognized *) => comarg_warning(key) // ) : void // end of [val] // in process_cmdline(state, arglst) end // end of [process_cmdline2_comarg2] (* ****** ****** *) // extern fun patsopt_main {n:pos} ( argc: int(n), argc: &(@[string][n]) ) : void = "ext#libatsopt_patsopt_main" // (* ****** ****** *) implement patsopt_main (argc, argv) = () where { // val () = set () where { extern fun set(): void = "mac#patsopt_PATSHOME_set" // end of [fun] } // end of [where] // end of [val] val () = set () where { extern fun set(): void = "mac#patsopt_PATSCONTRIB_set" // end of [fun] } // end of [where] // end of [val] // val () = set () where { extern fun set(): void = "mac#patsopt_PATSRELOCROOT_set" // end of [fun] } // end of [where] // end of [val] // val () = set () where { extern fun set(): void = "mac#patsopt_PATSHOMELOCS_set" // end of [fun] } // end of [where] // end of [val] // val PATSHOME = let // val opt = get() where { extern fun get ( // argless ) : Stropt = "mac#patsopt_PATSHOME_get" } (* end of [where] *) val issome = stropt_is_some(opt) // in // if issome then stropt_unsome(opt) else let val () = prerrln! ( "The environment variable PATSHOME is undefined!" ) (* end of [val] *) in $ERR.abort((*exit*)) end (* end of [else] *) // end : string // end of [val] // // for the run-time and atslib // val () = $FIL.the_prepathlst_push(PATSHOME) // val () = $TRENV1.the_trans1_env_initialize() val () = $TRENV2.the_trans2_env_initialize() // val+ ~list_vt_cons (arg0, arglst) = arglst where { val arglst = comarglst_parse(argc, argv) } (* end of [val] *) // var state = @{ comarg0= arg0 , ATSHOME= PATSHOME , waitknd= WTKnone() // // number of prcessed input files // , ninpfile= 0 // // load status of prelude files // , preludeflag= 0 // , infil= $FIL.filename_dummy // , outmode= file_mode_w , outchan= OUTCHANref(stdout_ref) // , depgen= 0 // file dependency generation , taggen= 0 // syntax tagging info generation // , atsreloc= 0 // for package relocation // , codegenflag= 0 // syntax level for CODEgen , jsonizeflag= 0 // syntax level for JSONize // , typecheckflag= 0 // compiling by default // , cnstrsolveflag= 0 // cnstr-solving by default // , olevel= 0 // level of output // , nerror= 0 // number of accumulated errors } : cmdstate // end of [var] // val () = process_PATSRELOCROOT() // val () = process_cmdline(state, arglst) // // HX-2015-01-09: // A tool like patscc // should be able to receive an error: // val () = if state.nerror > 0 then $ERR.abort{void}() // } (* end of [where] *) // end of [patsopt_main] // (* ****** ****** *) // #ifndef PATSOPT_MAIN_NONE // implement main(argc, argv) = ( // if (argc >= 2) then patsopt_main(argc, argv) else prerrln! ("Hello from ATS2(ATS/Postiats)!") // end of [if] ) (* end of [main] *) // #endif // ifndef(PATSOPT_MAIN_NONE) // (* ****** ****** *) (* end of [pats_main.dats] *) ATS2-Postiats-gmp-0.3.13/./src/Makefile0000644000175000017500000016124313431250607017120 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### # CC=gcc CCOMP=$(CC) # export ATSCCOMP=$(CC) # ###### ATSCC=$(ATSHOME)/bin/atscc ATSOPT=$(ATSHOME)/bin/atsopt ###### CFLAGS=-g CFLAGS=-g -O CFLAGS=-g -O2 ###### # GCFLAG= # # GCFLAG=-D_ATS_NGC # GCFLAG=-D_ATS_GCBDW # GCFLAG=-D_ATS_GCATS # ###### # # Bootstrapping: # # [gmpknd] for CBOOTgmp # [intknd] for CBOOTint # #C3NSTRINTKND=gmpknd #C3NSTRINTKND=intknd # ###### # DATSCC=-DATS \ C3NSTRINTKND=$(C3NSTRINTKND) # ###### LIBATS=-lats ###### # # HX: no [gmp] ifeq ($(C3NSTRINTKND),intknd) LIBGMP= endif # # HX: [gmp] needed ifeq ($(C3NSTRINTKND),gmpknd) LIBGMP=-lgmp endif # ###### SOURCES := \ pats_params.hats \ pats_error.sats \ pats_error.dats \ pats_intinf.sats \ pats_intinf.dats \ pats_intinf_int.hats \ pats_intinf_gmp.hats \ pats_counter.sats \ pats_counter.dats \ pats_utils.sats \ pats_utils.dats \ pats_global.sats \ pats_global.dats \ pats_basics.sats \ pats_basics.dats \ pats_basics.hats \ pats_comarg.sats \ pats_comarg.dats \ pats_stamp.sats \ pats_stamp.dats \ pats_symbol.sats \ pats_symbol.dats \ pats_filename.sats \ pats_filename.dats \ pats_filename_reloc.dats \ pats_location.sats \ pats_location.dats \ pats_location.cats \ pats_jsonize.sats \ pats_jsonize.dats \ pats_errmsg.sats \ pats_errmsg.dats \ pats_reader.sats \ pats_reader.dats \ pats_reader.cats \ pats_lexbuf.sats \ pats_lexbuf.dats \ pats_lexbuf.cats \ pats_lexing.sats \ pats_lexing.dats \ pats_lexing.cats \ pats_lexing_print.dats \ pats_lexing_error.dats \ pats_lexing_token.dats \ pats_label.sats \ pats_label.dats \ pats_effect.sats \ pats_effect.dats \ pats_fixity.sats \ pats_fixity_prec.dats \ pats_fixity_fxty.dats \ pats_syntax.sats \ pats_syntax.dats \ pats_syntax_print.dats \ pats_depgen.sats \ pats_depgen.dats \ pats_taggen.sats \ pats_taggen.dats \ pats_tokbuf.sats \ pats_tokbuf.dats \ pats_tokbuf.cats \ pats_parsing.sats \ pats_parsing.dats \ pats_parsing_error.dats \ pats_parsing_util.dats \ pats_parsing_kwds.dats \ pats_parsing_base.dats \ pats_parsing_e0xp.dats \ pats_parsing_sort.dats \ pats_parsing_staexp.dats \ pats_parsing_p0at.dats \ pats_parsing_dynexp.dats \ pats_parsing_decl.dats \ pats_parsing_toplevel.dats \ pats_symmap.sats \ pats_symmap.dats \ pats_symmap_avltree.hats \ pats_symmap_htlinprb.hats \ pats_symenv.sats \ pats_symenv.dats \ pats_staexp1.sats \ pats_staexp1.dats \ pats_staexp1_print.dats \ pats_dynexp1.sats \ pats_dynexp1.dats \ pats_dynexp1_print.dats \ pats_trans1.sats \ pats_trans1_env.sats \ pats_trans1_env.dats \ pats_e1xpval.sats \ pats_e1xpval.dats \ pats_e1xpval_error.dats \ pats_trans1_error.dats \ pats_trans1_e0xp.dats \ pats_trans1_effect.dats \ pats_trans1_sort.dats \ pats_trans1_staexp.dats \ pats_trans1_p0at.dats \ pats_trans1_syndef.dats \ pats_trans1_dynexp.dats \ pats_trans1_decl.dats \ pats_staexp2.sats \ pats_staexp2.dats \ pats_stacst2.sats \ pats_stacst2.dats \ pats_staexp2_print.dats \ pats_staexp2_pprint.dats \ pats_staexp2_sort.dats \ pats_staexp2_scst.dats \ pats_staexp2_svar.dats \ pats_staexp2_svvar.dats \ pats_staexp2_hole.dats \ pats_staexp2_ctxt.dats \ pats_staexp2_dcon.dats \ pats_staexp2_skexp.dats \ pats_staexp2_szexp.dats \ pats_staexp2_util.sats \ pats_staexp2_util1.dats \ pats_staexp2_util2.dats \ pats_staexp2_util3.dats \ pats_staexp2_error.sats \ pats_staexp2_error.dats \ pats_staexp2_solve.sats \ pats_staexp2_solve.dats \ pats_patcst2.sats \ pats_patcst2.dats \ pats_dynexp2.sats \ pats_dynexp2.dats \ pats_dyncst2.sats \ pats_dyncst2.dats \ pats_dynexp2_print.dats \ pats_dynexp2_dcst.dats \ pats_dynexp2_dvar.dats \ pats_dynexp2_dmac.dats \ pats_dynexp2_util.dats \ pats_staexp2_appenv.hats \ pats_dynexp2_appenv.hats \ pats_dynexp2_mapgen.dats \ pats_trans2.sats \ pats_namespace.sats \ pats_namespace.dats \ pats_trans2_env.sats \ pats_trans2_env.dats \ pats_trans2_error.dats \ pats_trans2_sort.dats \ pats_trans2_staexp.dats \ pats_trans2_p1at.dats \ pats_trans2_dynexp.dats \ pats_trans2_impdec.dats \ pats_trans2_decl.dats \ pats_codegen2.sats \ pats_codegen2.dats \ pats_codegen2_util.dats \ pats_codegen2_absrec.dats \ pats_codegen2_datype.dats \ pats_codegen2_fprint.dats \ pats_jsonize_synent2.sats \ pats_jsonize_synent2.dats \ pats_dynexp3.sats \ pats_dynexp3.dats \ pats_dynexp3_print.dats \ pats_trans3.sats \ pats_trans3_error.dats \ pats_trans3_util.dats \ pats_trans3_env.sats \ pats_trans3_env.dats \ pats_trans3_env_print.dats \ pats_trans3_env_scst.dats \ pats_trans3_env_svar.dats \ pats_trans3_env_termet.dats \ pats_trans3_env_effect.dats \ pats_trans3_env_dvar.dats \ pats_trans3_env_lamlp.dats \ pats_trans3_env_pfman.dats \ pats_trans3_env_lstate.dats \ pats_dmacro2.sats \ pats_dmacro2.dats \ pats_dmacro2_print.dats \ pats_dmacro2_eval0.dats \ pats_dmacro2_eval1.dats \ pats_trans3_p2at.dats \ pats_trans3_patcon.dats \ pats_trans3_syncst.dats \ pats_trans3_dynexp_up.dats \ pats_trans3_dynexp_dn.dats \ pats_trans3_appsym.dats \ pats_trans3_caseof.dats \ pats_trans3_selab.dats \ pats_trans3_ptrof.dats \ pats_trans3_viewat.dats \ pats_trans3_deref.dats \ pats_trans3_assgn.dats \ pats_trans3_xchng.dats \ pats_trans3_lvalres.dats \ pats_trans3_fldfrat.dats \ pats_trans3_looping.dats \ pats_trans3_decl.dats \ pats_lintprgm.sats \ pats_lintprgm.dats \ pats_lintprgm_print.dats \ pats_lintprgm_myint.cats \ pats_lintprgm_myint.dats \ pats_lintprgm_solve.dats \ pats_constraint3.sats \ pats_constraint3.dats \ pats_constraint3_print.dats \ pats_constraint3_appenv.hats \ pats_constraint3_mapgen.dats \ pats_constraint3_jsonize.dats \ pats_constraint3_init.dats \ pats_constraint3_simplify.dats \ pats_constraint3_icnstr.dats \ pats_constraint3_solve.dats \ pats_histaexp.sats \ pats_histaexp.dats \ pats_histaexp_print.dats \ pats_histaexp_funlab.dats \ pats_hidynexp.sats \ pats_hidynexp.dats \ pats_hidynexp_print.dats \ pats_hidynexp_util.dats \ pats_typerase.sats \ pats_typerase_error.dats \ pats_typerase_staexp.dats \ pats_typerase_dynexp.dats \ pats_typerase_decl.dats \ pats_ccomp.sats \ pats_ccomp.dats \ pats_ccomp_print.dats \ pats_ccomp_hitype.dats \ pats_ccomp_tmplab.dats \ pats_ccomp_tmpvar.dats \ pats_ccomp_d2env.dats \ pats_ccomp_funlab.dats \ pats_ccomp_funent.dats \ pats_ccomp_util.dats \ pats_ccomp_ccompenv.dats \ pats_ccomp_instrseq.dats \ pats_ccomp_hipat.dats \ pats_ccomp_dynexp.dats \ pats_ccomp_caseof.dats \ pats_ccomp_claulst.dats \ pats_ccomp_lazyeval.dats \ pats_ccomp_trywith.dats \ pats_ccomp_looping.dats \ pats_ccomp_decl.dats \ pats_ccomp_subst.dats \ pats_ccomp_environ.dats \ pats_ccomp_template.dats \ pats_ccomp_emit.dats \ pats_ccomp_emit2.dats \ pats_ccomp_emit3.dats \ pats_ccomp_main.dats \ SOURCESsta := $(filter %.sats, $(SOURCES)) SOURCESdyn := $(filter %.dats, $(SOURCES)) ###### TARGETS := \ pats_error_sats.c \ pats_error_dats.c \ pats_intinf_sats.c \ pats_intinf_dats.c \ pats_counter_sats.c \ pats_counter_dats.c \ pats_utils_sats.c \ pats_utils_dats.c \ pats_global_sats.c \ pats_global_dats.c \ pats_basics_sats.c \ pats_basics_dats.c \ pats_comarg_sats.c \ pats_comarg_dats.c \ pats_stamp_sats.c \ pats_stamp_dats.c \ pats_symbol_sats.c \ pats_symbol_dats.c \ pats_filename_sats.c \ pats_filename_dats.c \ pats_filename_reloc_dats.c \ pats_location_sats.c \ pats_location_dats.c \ pats_jsonize_sats.c \ pats_jsonize_dats.c \ pats_errmsg_sats.c \ pats_errmsg_dats.c \ pats_reader_sats.c \ pats_reader_dats.c \ pats_lexbuf_sats.c \ pats_lexbuf_dats.c \ pats_lexing_sats.c \ pats_lexing_dats.c \ pats_lexing_print_dats.c \ pats_lexing_error_dats.c \ pats_lexing_token_dats.c \ pats_label_sats.c \ pats_label_dats.c \ pats_effect_sats.c \ pats_effect_dats.c \ pats_fixity_sats.c \ pats_fixity_prec_dats.c \ pats_fixity_fxty_dats.c \ pats_syntax_sats.c \ pats_syntax_dats.c \ pats_syntax_print_dats.c \ pats_depgen_sats.c \ pats_depgen_dats.c \ pats_taggen_sats.c \ pats_taggen_dats.c \ pats_tokbuf_sats.c \ pats_tokbuf_dats.c \ pats_parsing_sats.c \ pats_parsing_dats.c \ pats_parsing_error_dats.c \ pats_parsing_util_dats.c \ pats_parsing_kwds_dats.c \ pats_parsing_base_dats.c \ pats_parsing_e0xp_dats.c \ pats_parsing_sort_dats.c \ pats_parsing_staexp_dats.c \ pats_parsing_p0at_dats.c \ pats_parsing_dynexp_dats.c \ pats_parsing_decl_dats.c \ pats_parsing_toplevel_dats.c \ pats_symmap_sats.c \ pats_symmap_dats.c \ pats_symenv_sats.c \ pats_symenv_dats.c \ pats_staexp1_sats.c \ pats_staexp1_dats.c \ pats_staexp1_print_dats.c \ pats_dynexp1_sats.c \ pats_dynexp1_dats.c \ pats_dynexp1_print_dats.c \ pats_trans1_sats.c \ pats_trans1_env_sats.c \ pats_trans1_env_dats.c \ pats_e1xpval_sats.c \ pats_e1xpval_dats.c \ pats_e1xpval_error_dats.c \ pats_trans1_error_dats.c \ pats_trans1_e0xp_dats.c \ pats_trans1_effect_dats.c \ pats_trans1_sort_dats.c \ pats_trans1_staexp_dats.c \ pats_trans1_p0at_dats.c \ pats_trans1_syndef_dats.c \ pats_trans1_dynexp_dats.c \ pats_trans1_decl_dats.c \ pats_staexp2_sats.c \ pats_staexp2_dats.c \ pats_stacst2_sats.c \ pats_stacst2_dats.c \ pats_staexp2_print_dats.c \ pats_staexp2_pprint_dats.c \ pats_staexp2_sort_dats.c \ pats_staexp2_scst_dats.c \ pats_staexp2_svar_dats.c \ pats_staexp2_svvar_dats.c \ pats_staexp2_hole_dats.c \ pats_staexp2_ctxt_dats.c \ pats_staexp2_dcon_dats.c \ pats_staexp2_skexp_dats.c \ pats_staexp2_szexp_dats.c \ pats_staexp2_util_sats.c \ pats_staexp2_util1_dats.c \ pats_staexp2_util2_dats.c \ pats_staexp2_util3_dats.c \ pats_staexp2_error_sats.c \ pats_staexp2_error_dats.c \ pats_staexp2_solve_sats.c \ pats_staexp2_solve_dats.c \ pats_patcst2_sats.c \ pats_patcst2_dats.c \ pats_dynexp2_sats.c \ pats_dynexp2_dats.c \ pats_dyncst2_sats.c \ pats_dyncst2_dats.c \ pats_dynexp2_print_dats.c \ pats_dynexp2_dcst_dats.c \ pats_dynexp2_dvar_dats.c \ pats_dynexp2_dmac_dats.c \ pats_dynexp2_util_dats.c \ pats_dynexp2_mapgen_dats.c \ pats_trans2_sats.c \ pats_namespace_sats.c \ pats_namespace_dats.c \ pats_trans2_env_sats.c \ pats_trans2_env_dats.c \ pats_trans2_error_dats.c \ pats_trans2_sort_dats.c \ pats_trans2_staexp_dats.c \ pats_trans2_p1at_dats.c \ pats_trans2_dynexp_dats.c \ pats_trans2_impdec_dats.c \ pats_trans2_decl_dats.c \ pats_codegen2_sats.c \ pats_codegen2_dats.c \ pats_codegen2_util_dats.c \ pats_codegen2_absrec_dats.c \ pats_codegen2_datype_dats.c \ pats_codegen2_fprint_dats.c \ pats_jsonize_synent2_sats.c \ pats_jsonize_synent2_dats.c \ pats_dynexp3_sats.c \ pats_dynexp3_dats.c \ pats_dynexp3_print_dats.c \ pats_trans3_sats.c \ pats_trans3_error_dats.c \ pats_trans3_util_dats.c \ pats_trans3_env_sats.c \ pats_trans3_env_dats.c \ pats_trans3_env_print_dats.c \ pats_trans3_env_scst_dats.c \ pats_trans3_env_svar_dats.c \ pats_trans3_env_termet_dats.c \ pats_trans3_env_effect_dats.c \ pats_trans3_env_dvar_dats.c \ pats_trans3_env_lamlp_dats.c \ pats_trans3_env_pfman_dats.c \ pats_trans3_env_lstate_dats.c \ pats_dmacro2_sats.c \ pats_dmacro2_dats.c \ pats_dmacro2_print_dats.c \ pats_dmacro2_eval0_dats.c \ pats_dmacro2_eval1_dats.c \ pats_trans3_p2at_dats.c \ pats_trans3_patcon_dats.c \ pats_trans3_syncst_dats.c \ pats_trans3_dynexp_up_dats.c \ pats_trans3_dynexp_dn_dats.c \ pats_trans3_appsym_dats.c \ pats_trans3_caseof_dats.c \ pats_trans3_selab_dats.c \ pats_trans3_ptrof_dats.c \ pats_trans3_viewat_dats.c \ pats_trans3_deref_dats.c \ pats_trans3_assgn_dats.c \ pats_trans3_xchng_dats.c \ pats_trans3_lvalres_dats.c \ pats_trans3_fldfrat_dats.c \ pats_trans3_looping_dats.c \ pats_trans3_decl_dats.c \ pats_lintprgm_sats.c \ pats_lintprgm_dats.c \ pats_lintprgm_print_dats.c \ pats_lintprgm_myint_dats.c \ pats_lintprgm_solve_dats.c \ pats_constraint3_sats.c \ pats_constraint3_dats.c \ pats_constraint3_print_dats.c \ pats_constraint3_mapgen_dats.c \ pats_constraint3_jsonize_dats.c \ pats_constraint3_init_dats.c \ pats_constraint3_simplify_dats.c \ pats_constraint3_icnstr_dats.c \ pats_constraint3_solve_dats.c \ pats_histaexp_sats.c \ pats_histaexp_dats.c \ pats_histaexp_print_dats.c \ pats_histaexp_funlab_dats.c \ pats_hidynexp_sats.c \ pats_hidynexp_dats.c \ pats_hidynexp_print_dats.c \ pats_hidynexp_util_dats.c \ pats_typerase_sats.c \ pats_typerase_error_dats.c \ pats_typerase_staexp_dats.c \ pats_typerase_dynexp_dats.c \ pats_typerase_decl_dats.c \ pats_ccomp_sats.c \ pats_ccomp_dats.c \ pats_ccomp_print_dats.c \ pats_ccomp_hitype_dats.c \ pats_ccomp_tmplab_dats.c \ pats_ccomp_tmpvar_dats.c \ pats_ccomp_d2env_dats.c \ pats_ccomp_funlab_dats.c \ pats_ccomp_funent_dats.c \ pats_ccomp_util_dats.c \ pats_ccomp_ccompenv_dats.c \ pats_ccomp_instrseq_dats.c \ pats_ccomp_hipat_dats.c \ pats_ccomp_dynexp_dats.c \ pats_ccomp_caseof_dats.c \ pats_ccomp_claulst_dats.c \ pats_ccomp_lazyeval_dats.c \ pats_ccomp_trywith_dats.c \ pats_ccomp_looping_dats.c \ pats_ccomp_decl_dats.c \ pats_ccomp_subst_dats.c \ pats_ccomp_environ_dats.c \ pats_ccomp_template_dats.c \ pats_ccomp_emit_dats.c \ pats_ccomp_emit2_dats.c \ pats_ccomp_emit3_dats.c \ pats_ccomp_main_dats.c \ TARGETS += pats_main_dats.c TARGETS += pats_main_none_dats.c ###### OBJECTS := \ pats_error_sats.o \ pats_error_dats.o \ pats_intinf_sats.o \ pats_intinf_dats.o \ pats_counter_sats.o \ pats_counter_dats.o \ pats_utils_sats.o \ pats_utils_dats.o \ pats_global_sats.o \ pats_global_dats.o \ pats_basics_sats.o \ pats_basics_dats.o \ pats_comarg_sats.o \ pats_comarg_dats.o \ pats_stamp_sats.o \ pats_stamp_dats.o \ pats_symbol_sats.o \ pats_symbol_dats.o \ pats_filename_sats.o \ pats_filename_dats.o \ pats_filename_reloc_dats.o \ pats_location_sats.o \ pats_location_dats.o \ pats_jsonize_sats.o \ pats_jsonize_dats.o \ pats_errmsg_sats.o \ pats_errmsg_dats.o \ pats_reader_sats.o \ pats_reader_dats.o \ pats_lexbuf_sats.o \ pats_lexbuf_dats.o \ pats_lexing_sats.o \ pats_lexing_dats.o \ pats_lexing_print_dats.o \ pats_lexing_error_dats.o \ pats_lexing_token_dats.o \ pats_label_sats.o \ pats_label_dats.o \ pats_effect_sats.o \ pats_effect_dats.o \ pats_fixity_sats.o \ pats_fixity_prec_dats.o \ pats_fixity_fxty_dats.o \ pats_syntax_sats.o \ pats_syntax_dats.o \ pats_syntax_print_dats.o \ pats_depgen_sats.o \ pats_depgen_dats.o \ pats_taggen_sats.o \ pats_taggen_dats.o \ pats_tokbuf_sats.o \ pats_tokbuf_dats.o \ pats_parsing_sats.o \ pats_parsing_dats.o \ pats_parsing_error_dats.o \ pats_parsing_util_dats.o \ pats_parsing_kwds_dats.o \ pats_parsing_base_dats.o \ pats_parsing_e0xp_dats.o \ pats_parsing_sort_dats.o \ pats_parsing_staexp_dats.o \ pats_parsing_p0at_dats.o \ pats_parsing_dynexp_dats.o \ pats_parsing_decl_dats.o \ pats_parsing_toplevel_dats.o \ pats_symmap_sats.o \ pats_symmap_dats.o \ pats_symenv_sats.o \ pats_symenv_dats.o \ pats_staexp1_sats.o \ pats_staexp1_dats.o \ pats_staexp1_print_dats.o \ pats_dynexp1_sats.o \ pats_dynexp1_dats.o \ pats_dynexp1_print_dats.o \ pats_trans1_sats.o \ pats_trans1_env_sats.o \ pats_trans1_env_dats.o \ pats_e1xpval_sats.o \ pats_e1xpval_dats.o \ pats_e1xpval_error_dats.o \ pats_trans1_error_dats.o \ pats_trans1_e0xp_dats.o \ pats_trans1_effect_dats.o \ pats_trans1_sort_dats.o \ pats_trans1_staexp_dats.o \ pats_trans1_p0at_dats.o \ pats_trans1_syndef_dats.o \ pats_trans1_dynexp_dats.o \ pats_trans1_decl_dats.o \ pats_staexp2_sats.o \ pats_staexp2_dats.o \ pats_stacst2_sats.o \ pats_stacst2_dats.o \ pats_staexp2_print_dats.o \ pats_staexp2_pprint_dats.o \ pats_staexp2_sort_dats.o \ pats_staexp2_scst_dats.o \ pats_staexp2_svar_dats.o \ pats_staexp2_svvar_dats.o \ pats_staexp2_hole_dats.o \ pats_staexp2_ctxt_dats.o \ pats_staexp2_dcon_dats.o \ pats_staexp2_skexp_dats.o \ pats_staexp2_szexp_dats.o \ pats_staexp2_util_sats.o \ pats_staexp2_util1_dats.o \ pats_staexp2_util2_dats.o \ pats_staexp2_util3_dats.o \ pats_staexp2_error_sats.o \ pats_staexp2_error_dats.o \ pats_staexp2_solve_sats.o \ pats_staexp2_solve_dats.o \ pats_patcst2_sats.o \ pats_patcst2_dats.o \ pats_dynexp2_sats.o \ pats_dynexp2_dats.o \ pats_dyncst2_sats.o \ pats_dyncst2_dats.o \ pats_dynexp2_print_dats.o \ pats_dynexp2_dcst_dats.o \ pats_dynexp2_dvar_dats.o \ pats_dynexp2_dmac_dats.o \ pats_dynexp2_util_dats.o \ pats_dynexp2_mapgen_dats.o \ pats_trans2_sats.o \ pats_namespace_sats.o \ pats_namespace_dats.o \ pats_trans2_env_sats.o \ pats_trans2_env_dats.o \ pats_trans2_error_dats.o \ pats_trans2_sort_dats.o \ pats_trans2_staexp_dats.o \ pats_trans2_p1at_dats.o \ pats_trans2_dynexp_dats.o \ pats_trans2_impdec_dats.o \ pats_trans2_decl_dats.o \ pats_codegen2_sats.o \ pats_codegen2_dats.o \ pats_codegen2_util_dats.o \ pats_codegen2_absrec_dats.o \ pats_codegen2_datype_dats.o \ pats_codegen2_fprint_dats.o \ pats_jsonize_synent2_sats.o \ pats_jsonize_synent2_dats.o \ pats_dynexp3_sats.o \ pats_dynexp3_dats.o \ pats_dynexp3_print_dats.o \ pats_trans3_sats.o \ pats_trans3_error_dats.o \ pats_trans3_util_dats.o \ pats_trans3_env_sats.o \ pats_trans3_env_dats.o \ pats_trans3_env_print_dats.o \ pats_trans3_env_scst_dats.o \ pats_trans3_env_svar_dats.o \ pats_trans3_env_termet_dats.o \ pats_trans3_env_effect_dats.o \ pats_trans3_env_dvar_dats.o \ pats_trans3_env_lamlp_dats.o \ pats_trans3_env_pfman_dats.o \ pats_trans3_env_lstate_dats.o \ pats_dmacro2_sats.o \ pats_dmacro2_dats.o \ pats_dmacro2_print_dats.o \ pats_dmacro2_eval0_dats.o \ pats_dmacro2_eval1_dats.o \ pats_trans3_p2at_dats.o \ pats_trans3_patcon_dats.o \ pats_trans3_syncst_dats.o \ pats_trans3_dynexp_up_dats.o \ pats_trans3_dynexp_dn_dats.o \ pats_trans3_appsym_dats.o \ pats_trans3_caseof_dats.o \ pats_trans3_selab_dats.o \ pats_trans3_ptrof_dats.o \ pats_trans3_viewat_dats.o \ pats_trans3_deref_dats.o \ pats_trans3_assgn_dats.o \ pats_trans3_xchng_dats.o \ pats_trans3_lvalres_dats.o \ pats_trans3_fldfrat_dats.o \ pats_trans3_looping_dats.o \ pats_trans3_decl_dats.o \ pats_lintprgm_sats.o \ pats_lintprgm_dats.o \ pats_lintprgm_print_dats.o \ pats_lintprgm_myint_dats.o \ pats_lintprgm_solve_dats.o \ pats_constraint3_sats.o \ pats_constraint3_dats.o \ pats_constraint3_print_dats.o \ pats_constraint3_mapgen_dats.o \ pats_constraint3_jsonize_dats.o \ pats_constraint3_init_dats.o \ pats_constraint3_simplify_dats.o \ pats_constraint3_icnstr_dats.o \ pats_constraint3_solve_dats.o \ pats_histaexp_sats.o \ pats_histaexp_dats.o \ pats_histaexp_print_dats.o \ pats_histaexp_funlab_dats.o \ pats_hidynexp_sats.o \ pats_hidynexp_dats.o \ pats_hidynexp_print_dats.o \ pats_hidynexp_util_dats.o \ pats_typerase_sats.o \ pats_typerase_error_dats.o \ pats_typerase_staexp_dats.o \ pats_typerase_dynexp_dats.o \ pats_typerase_decl_dats.o \ pats_ccomp_sats.o \ pats_ccomp_dats.o \ pats_ccomp_print_dats.o \ pats_ccomp_hitype_dats.o \ pats_ccomp_tmplab_dats.o \ pats_ccomp_tmpvar_dats.o \ pats_ccomp_d2env_dats.o \ pats_ccomp_funlab_dats.o \ pats_ccomp_funent_dats.o \ pats_ccomp_util_dats.o \ pats_ccomp_ccompenv_dats.o \ pats_ccomp_instrseq_dats.o \ pats_ccomp_hipat_dats.o \ pats_ccomp_dynexp_dats.o \ pats_ccomp_caseof_dats.o \ pats_ccomp_claulst_dats.o \ pats_ccomp_lazyeval_dats.o \ pats_ccomp_trywith_dats.o \ pats_ccomp_looping_dats.o \ pats_ccomp_decl_dats.o \ pats_ccomp_subst_dats.o \ pats_ccomp_environ_dats.o \ pats_ccomp_template_dats.o \ pats_ccomp_emit_dats.o \ pats_ccomp_emit2_dats.o \ pats_ccomp_emit3_dats.o \ pats_ccomp_main_dats.o \ ###### all:: patsopt ###### # # AS-20130407: # link order matters to GNU ld # please keep the order '$(LIBATS) $(LIBGMP)' # as the former depends on the latter # patsopt:: $(TARGETS) patsopt:: $(OBJECTS) ; \ $(ATSCC) $(CFLAGS) $(GCFLAG) \ -o $@ pats_main.dats $(OBJECTS) $(LIBATS) $(LIBGMP) # cleanall:: ; $(RMF) patsopt # ###### # libatsopt:: $(TARGETS) # libatsopt:: $(OBJECTS) pats_main_none_dats.o; $(ARR) libatsopt.a $^ # ###### # # for building patsopt through CMake # BUILD/init: ; cd BUILD; cmake ..; cd .. BUILD/clean: ; make -C BUILD -f Makefile clean BUILD/patsopt: ; make -C BUILD -j8 -f Makefile patsopt # ###### # CBOOTgmp:: ; $(CPF) pats_*.hats CBOOT CBOOTgmp:: ; $(CPF) pats_*.cats CBOOT CBOOTgmp:: ; $(CPF) pats_*_sats.c CBOOT CBOOTgmp:: ; $(CPF) pats_*_dats.c CBOOT CBOOTgmp:: ; $(CPF) Makefile_CBOOTgmp CBOOT/Makefile # ###### # CBOOTint:: ; $(CPF) pats_*.hats CBOOT CBOOTint:: ; $(CPF) pats_*.cats CBOOT CBOOTint:: ; $(CPF) pats_*_sats.c CBOOT CBOOTint:: ; $(CPF) pats_*_dats.c CBOOT CBOOTint:: ; $(CPF) Makefile_CBOOTint CBOOT/Makefile # ###### TAGATS:: ; $(RMF) $@ TAGATS:: ; $(ATSOPT) --output-a $@ --taggen -s $(SOURCESsta) -d $(SOURCESdyn) ###### # pats_error_sats.c: pats_error.sats; $(ATSCC) $(DATSCC) -cc $< pats_error_sats.o: pats_error_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_error_dats.c: pats_error.dats; $(ATSCC) $(DATSCC) -cc $< pats_error_dats.o: pats_error_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_intinf_sats.c: pats_intinf.sats; $(ATSCC) $(DATSCC) -cc $< pats_intinf_sats.o: pats_intinf_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_intinf_dats.c: pats_intinf.dats; $(ATSCC) $(DATSCC) -cc $< pats_intinf_dats.o: pats_intinf_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_counter_sats.c: pats_counter.sats; $(ATSCC) $(DATSCC) -cc $< pats_counter_sats.o: pats_counter_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_counter_dats.c: pats_counter.dats; $(ATSCC) $(DATSCC) -cc $< pats_counter_dats.o: pats_counter_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_utils_sats.c: pats_utils.sats; $(ATSCC) $(DATSCC) -cc $< pats_utils_sats.o: pats_utils_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_utils_dats.c: pats_utils.dats; $(ATSCC) $(DATSCC) -cc $< pats_utils_dats.o: pats_utils_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_global_sats.c: pats_global.sats; $(ATSCC) $(DATSCC) -cc $< pats_global_sats.o: pats_global_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_global_dats.c: pats_global.dats; $(ATSCC) $(DATSCC) -cc $< pats_global_dats.o: pats_global_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_basics_sats.c: pats_basics.sats; $(ATSCC) $(DATSCC) -cc $< pats_basics_sats.o: pats_basics_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_basics_dats.c: pats_basics.dats; $(ATSCC) $(DATSCC) -cc $< pats_basics_dats.o: pats_basics_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_comarg_sats.c: pats_comarg.sats; $(ATSCC) $(DATSCC) -cc $< pats_comarg_sats.o: pats_comarg_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_comarg_dats.c: pats_comarg.dats; $(ATSCC) $(DATSCC) -cc $< pats_comarg_dats.o: pats_comarg_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_stamp_sats.c: pats_stamp.sats; $(ATSCC) $(DATSCC) -cc $< pats_stamp_sats.o: pats_stamp_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_stamp_dats.c: pats_stamp.dats; $(ATSCC) $(DATSCC) -cc $< pats_stamp_dats.o: pats_stamp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_symbol_sats.c: pats_symbol.sats; $(ATSCC) $(DATSCC) -cc $< pats_symbol_sats.o: pats_symbol_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_symbol_dats.c: pats_symbol.dats; $(ATSCC) $(DATSCC) -cc $< pats_symbol_dats.o: pats_symbol_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_filename_sats.c: pats_filename.sats; $(ATSCC) $(DATSCC) -cc $< pats_filename_sats.o: pats_filename_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_filename_dats.c: pats_filename.dats; $(ATSCC) $(DATSCC) -cc $< pats_filename_dats.o: pats_filename_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_filename_reloc_dats.c: pats_filename_reloc.dats; $(ATSCC) $(DATSCC) -cc $< pats_filename_reloc_dats.o: pats_filename_reloc_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_location_sats.c: pats_location.sats; $(ATSCC) $(DATSCC) -cc $< pats_location_sats.o: pats_location_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_location_dats.c: pats_location.dats; $(ATSCC) $(DATSCC) -cc $< pats_location_dats.o: pats_location_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_jsonize_sats.c: pats_jsonize.sats; $(ATSCC) $(DATSCC) -cc $< pats_jsonize_sats.o: pats_jsonize_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_jsonize_dats.c: pats_jsonize.dats; $(ATSCC) $(DATSCC) -cc $< pats_jsonize_dats.o: pats_jsonize_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_errmsg_sats.c: pats_errmsg.sats; $(ATSCC) $(DATSCC) -cc $< pats_errmsg_sats.o: pats_errmsg_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_errmsg_dats.c: pats_errmsg.dats; $(ATSCC) $(DATSCC) -cc $< pats_errmsg_dats.o: pats_errmsg_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_reader_sats.c: pats_reader.sats; $(ATSCC) $(DATSCC) -cc $< pats_reader_sats.o: pats_reader_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_reader_dats.c: pats_reader.dats; $(ATSCC) $(DATSCC) -cc $< pats_reader_dats.o: pats_reader_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_lexbuf_sats.c: pats_lexbuf.sats; $(ATSCC) $(DATSCC) -cc $< pats_lexbuf_sats.o: pats_lexbuf_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_lexbuf_dats.c: pats_lexbuf.dats; $(ATSCC) $(DATSCC) -cc $< pats_lexbuf_dats.o: pats_lexbuf_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_lexing_sats.c: pats_lexing.sats; $(ATSCC) $(DATSCC) -cc $< pats_lexing_sats.o: pats_lexing_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_lexing_dats.c: pats_lexing.dats; $(ATSCC) $(DATSCC) -cc $< pats_lexing_dats.o: pats_lexing_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_lexing_print_dats.c: pats_lexing_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_lexing_print_dats.o: pats_lexing_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_lexing_error_dats.c: pats_lexing_error.dats; $(ATSCC) $(DATSCC) -cc $< pats_lexing_error_dats.o: pats_lexing_error_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_lexing_token_dats.c: pats_lexing_token.dats; $(ATSCC) $(DATSCC) -cc $< pats_lexing_token_dats.o: pats_lexing_token_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_label_sats.c: pats_label.sats; $(ATSCC) $(DATSCC) -cc $< pats_label_sats.o: pats_label_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_label_dats.c: pats_label.dats; $(ATSCC) $(DATSCC) -cc $< pats_label_dats.o: pats_label_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_effect_sats.c: pats_effect.sats; $(ATSCC) $(DATSCC) -cc $< pats_effect_sats.o: pats_effect_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_effect_dats.c: pats_effect.dats; $(ATSCC) $(DATSCC) -cc $< pats_effect_dats.o: pats_effect_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_fixity_sats.c: pats_fixity.sats; $(ATSCC) $(DATSCC) -cc $< pats_fixity_sats.o: pats_fixity_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_fixity_prec_dats.c: pats_fixity_prec.dats; $(ATSCC) $(DATSCC) -cc $< pats_fixity_prec_dats.o: pats_fixity_prec_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_fixity_fxty_dats.c: pats_fixity_fxty.dats; $(ATSCC) $(DATSCC) -cc $< pats_fixity_fxty_dats.o: pats_fixity_fxty_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_syntax_sats.c: pats_syntax.sats; $(ATSCC) $(DATSCC) -cc $< pats_syntax_sats.o: pats_syntax_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_syntax_dats.c: pats_syntax.dats; $(ATSCC) $(DATSCC) -cc $< pats_syntax_dats.o: pats_syntax_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_syntax_print_dats.c: pats_syntax_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_syntax_print_dats.o: pats_syntax_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_depgen_sats.c: pats_depgen.sats; $(ATSCC) $(DATSCC) -cc $< pats_depgen_sats.o: pats_depgen_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_depgen_dats.c: pats_depgen.dats; $(ATSCC) $(DATSCC) -cc $< pats_depgen_dats.o: pats_depgen_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_taggen_sats.c: pats_taggen.sats; $(ATSCC) $(DATSCC) -cc $< pats_taggen_sats.o: pats_taggen_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_taggen_dats.c: pats_taggen.dats; $(ATSCC) $(DATSCC) -cc $< pats_taggen_dats.o: pats_taggen_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_tokbuf_sats.c: pats_tokbuf.sats; $(ATSCC) $(DATSCC) -cc $< pats_tokbuf_sats.o: pats_tokbuf_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_tokbuf_dats.c: pats_tokbuf.dats; $(ATSCC) $(DATSCC) -cc $< pats_tokbuf_dats.o: pats_tokbuf_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_sats.c: pats_parsing.sats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_sats.o: pats_parsing_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_dats.c: pats_parsing.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_dats.o: pats_parsing_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_error_dats.c: pats_parsing_error.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_error_dats.o: pats_parsing_error_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_util_dats.c: pats_parsing_util.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_util_dats.o: pats_parsing_util_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_kwds_dats.c: pats_parsing_kwds.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_kwds_dats.o: pats_parsing_kwds_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_base_dats.c: pats_parsing_base.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_base_dats.o: pats_parsing_base_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_e0xp_dats.c: pats_parsing_e0xp.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_e0xp_dats.o: pats_parsing_e0xp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_sort_dats.c: pats_parsing_sort.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_sort_dats.o: pats_parsing_sort_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_staexp_dats.c: pats_parsing_staexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_staexp_dats.o: pats_parsing_staexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_p0at_dats.c: pats_parsing_p0at.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_p0at_dats.o: pats_parsing_p0at_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_dynexp_dats.c: pats_parsing_dynexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_dynexp_dats.o: pats_parsing_dynexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_decl_dats.c: pats_parsing_decl.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_decl_dats.o: pats_parsing_decl_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_parsing_toplevel_dats.c: pats_parsing_toplevel.dats; $(ATSCC) $(DATSCC) -cc $< pats_parsing_toplevel_dats.o: pats_parsing_toplevel_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_symmap_sats.c: pats_symmap.sats; $(ATSCC) $(DATSCC) -cc $< pats_symmap_sats.o: pats_symmap_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_symmap_dats.c: pats_symmap.dats; $(ATSCC) $(DATSCC) -cc $< pats_symmap_dats.o: pats_symmap_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_symenv_sats.c: pats_symenv.sats; $(ATSCC) $(DATSCC) -cc $< pats_symenv_sats.o: pats_symenv_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_symenv_dats.c: pats_symenv.dats; $(ATSCC) $(DATSCC) -cc $< pats_symenv_dats.o: pats_symenv_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp1_sats.c: pats_staexp1.sats; $(ATSCC) $(DATSCC) -cc $< pats_staexp1_sats.o: pats_staexp1_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp1_dats.c: pats_staexp1.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp1_dats.o: pats_staexp1_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp1_print_dats.c: pats_staexp1_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp1_print_dats.o: pats_staexp1_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp1_sats.c: pats_dynexp1.sats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp1_sats.o: pats_dynexp1_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp1_dats.c: pats_dynexp1.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp1_dats.o: pats_dynexp1_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp1_print_dats.c: pats_dynexp1_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp1_print_dats.o: pats_dynexp1_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_sats.c: pats_trans1.sats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_sats.o: pats_trans1_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_env_sats.c: pats_trans1_env.sats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_env_sats.o: pats_trans1_env_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_env_dats.c: pats_trans1_env.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_env_dats.o: pats_trans1_env_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_e1xpval_sats.c: pats_e1xpval.sats; $(ATSCC) $(DATSCC) -cc $< pats_e1xpval_sats.o: pats_e1xpval_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_e1xpval_dats.c: pats_e1xpval.dats; $(ATSCC) $(DATSCC) -cc $< pats_e1xpval_dats.o: pats_e1xpval_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_e1xpval_error_dats.c: pats_e1xpval_error.dats; $(ATSCC) $(DATSCC) -cc $< pats_e1xpval_error_dats.o: pats_e1xpval_error_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_error_dats.c: pats_trans1_error.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_error_dats.o: pats_trans1_error_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_e0xp_dats.c: pats_trans1_e0xp.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_e0xp_dats.o: pats_trans1_e0xp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_effect_dats.c: pats_trans1_effect.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_effect_dats.o: pats_trans1_effect_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_sort_dats.c: pats_trans1_sort.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_sort_dats.o: pats_trans1_sort_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_staexp_dats.c: pats_trans1_staexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_staexp_dats.o: pats_trans1_staexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_p0at_dats.c: pats_trans1_p0at.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_p0at_dats.o: pats_trans1_p0at_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_syndef_dats.c: pats_trans1_syndef.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_syndef_dats.o: pats_trans1_syndef_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_dynexp_dats.c: pats_trans1_dynexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_dynexp_dats.o: pats_trans1_dynexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans1_decl_dats.c: pats_trans1_decl.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans1_decl_dats.o: pats_trans1_decl_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_sats.c: pats_staexp2.sats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_sats.o: pats_staexp2_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_dats.c: pats_staexp2.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_dats.o: pats_staexp2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_stacst2_sats.c: pats_stacst2.sats; $(ATSCC) $(DATSCC) -cc $< pats_stacst2_sats.o: pats_stacst2_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_stacst2_dats.c: pats_stacst2.dats; $(ATSCC) $(DATSCC) -cc $< pats_stacst2_dats.o: pats_stacst2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_print_dats.c: pats_staexp2_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_print_dats.o: pats_staexp2_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_pprint_dats.c: pats_staexp2_pprint.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_pprint_dats.o: pats_staexp2_pprint_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_sort_dats.c: pats_staexp2_sort.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_sort_dats.o: pats_staexp2_sort_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_scst_dats.c: pats_staexp2_scst.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_scst_dats.o: pats_staexp2_scst_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_svar_dats.c: pats_staexp2_svar.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_svar_dats.o: pats_staexp2_svar_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_svvar_dats.c: pats_staexp2_svvar.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_svvar_dats.o: pats_staexp2_svvar_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_hole_dats.c: pats_staexp2_hole.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_hole_dats.o: pats_staexp2_hole_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_ctxt_dats.c: pats_staexp2_ctxt.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_ctxt_dats.o: pats_staexp2_ctxt_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_dcon_dats.c: pats_staexp2_dcon.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_dcon_dats.o: pats_staexp2_dcon_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_skexp_dats.c: pats_staexp2_skexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_skexp_dats.o: pats_staexp2_skexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_szexp_dats.c: pats_staexp2_szexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_szexp_dats.o: pats_staexp2_szexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_util_sats.c: pats_staexp2_util.sats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_util_sats.o: pats_staexp2_util_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_util1_dats.c: pats_staexp2_util1.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_util1_dats.o: pats_staexp2_util1_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_util2_dats.c: pats_staexp2_util2.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_util2_dats.o: pats_staexp2_util2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_util3_dats.c: pats_staexp2_util3.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_util3_dats.o: pats_staexp2_util3_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_error_sats.c: pats_staexp2_error.sats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_error_sats.o: pats_staexp2_error_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_error_dats.c: pats_staexp2_error.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_error_dats.o: pats_staexp2_error_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_solve_sats.c: pats_staexp2_solve.sats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_solve_sats.o: pats_staexp2_solve_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_staexp2_solve_dats.c: pats_staexp2_solve.dats; $(ATSCC) $(DATSCC) -cc $< pats_staexp2_solve_dats.o: pats_staexp2_solve_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_patcst2_sats.c: pats_patcst2.sats; $(ATSCC) $(DATSCC) -cc $< pats_patcst2_sats.o: pats_patcst2_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_patcst2_dats.c: pats_patcst2.dats; $(ATSCC) $(DATSCC) -cc $< pats_patcst2_dats.o: pats_patcst2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp2_sats.c: pats_dynexp2.sats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp2_sats.o: pats_dynexp2_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp2_dats.c: pats_dynexp2.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp2_dats.o: pats_dynexp2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dyncst2_sats.c: pats_dyncst2.sats; $(ATSCC) $(DATSCC) -cc $< pats_dyncst2_sats.o: pats_dyncst2_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_dyncst2_dats.c: pats_dyncst2.dats; $(ATSCC) $(DATSCC) -cc $< pats_dyncst2_dats.o: pats_dyncst2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp2_print_dats.c: pats_dynexp2_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp2_print_dats.o: pats_dynexp2_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp2_dcst_dats.c: pats_dynexp2_dcst.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp2_dcst_dats.o: pats_dynexp2_dcst_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp2_dvar_dats.c: pats_dynexp2_dvar.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp2_dvar_dats.o: pats_dynexp2_dvar_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp2_dmac_dats.c: pats_dynexp2_dmac.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp2_dmac_dats.o: pats_dynexp2_dmac_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp2_util_dats.c: pats_dynexp2_util.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp2_util_dats.o: pats_dynexp2_util_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp2_mapgen_dats.c: pats_dynexp2_mapgen.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp2_mapgen_dats.o: pats_dynexp2_mapgen_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_sats.c: pats_trans2.sats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_sats.o: pats_trans2_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_namespace_sats.c: pats_namespace.sats; $(ATSCC) $(DATSCC) -cc $< pats_namespace_sats.o: pats_namespace_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_namespace_dats.c: pats_namespace.dats; $(ATSCC) $(DATSCC) -cc $< pats_namespace_dats.o: pats_namespace_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_env_sats.c: pats_trans2_env.sats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_env_sats.o: pats_trans2_env_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_env_dats.c: pats_trans2_env.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_env_dats.o: pats_trans2_env_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_error_dats.c: pats_trans2_error.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_error_dats.o: pats_trans2_error_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_sort_dats.c: pats_trans2_sort.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_sort_dats.o: pats_trans2_sort_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_staexp_dats.c: pats_trans2_staexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_staexp_dats.o: pats_trans2_staexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_p1at_dats.c: pats_trans2_p1at.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_p1at_dats.o: pats_trans2_p1at_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_dynexp_dats.c: pats_trans2_dynexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_dynexp_dats.o: pats_trans2_dynexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_impdec_dats.c: pats_trans2_impdec.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_impdec_dats.o: pats_trans2_impdec_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans2_decl_dats.c: pats_trans2_decl.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans2_decl_dats.o: pats_trans2_decl_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_codegen2_sats.c: pats_codegen2.sats; $(ATSCC) $(DATSCC) -cc $< pats_codegen2_sats.o: pats_codegen2_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_codegen2_dats.c: pats_codegen2.dats; $(ATSCC) $(DATSCC) -cc $< pats_codegen2_dats.o: pats_codegen2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_codegen2_util_dats.c: pats_codegen2_util.dats; $(ATSCC) $(DATSCC) -cc $< pats_codegen2_util_dats.o: pats_codegen2_util_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_codegen2_absrec_dats.c: pats_codegen2_absrec.dats; $(ATSCC) $(DATSCC) -cc $< pats_codegen2_absrec_dats.o: pats_codegen2_absrec_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_codegen2_datype_dats.c: pats_codegen2_datype.dats; $(ATSCC) $(DATSCC) -cc $< pats_codegen2_datype_dats.o: pats_codegen2_datype_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_codegen2_fprint_dats.c: pats_codegen2_fprint.dats; $(ATSCC) $(DATSCC) -cc $< pats_codegen2_fprint_dats.o: pats_codegen2_fprint_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_jsonize_synent2_sats.c: pats_jsonize_synent2.sats; $(ATSCC) $(DATSCC) -cc $< pats_jsonize_synent2_sats.o: pats_jsonize_synent2_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_jsonize_synent2_dats.c: pats_jsonize_synent2.dats; $(ATSCC) $(DATSCC) -cc $< pats_jsonize_synent2_dats.o: pats_jsonize_synent2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp3_sats.c: pats_dynexp3.sats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp3_sats.o: pats_dynexp3_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp3_dats.c: pats_dynexp3.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp3_dats.o: pats_dynexp3_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dynexp3_print_dats.c: pats_dynexp3_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_dynexp3_print_dats.o: pats_dynexp3_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_sats.c: pats_trans3.sats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_sats.o: pats_trans3_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_error_dats.c: pats_trans3_error.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_error_dats.o: pats_trans3_error_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_util_dats.c: pats_trans3_util.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_util_dats.o: pats_trans3_util_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_sats.c: pats_trans3_env.sats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_sats.o: pats_trans3_env_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_dats.c: pats_trans3_env.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_dats.o: pats_trans3_env_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_print_dats.c: pats_trans3_env_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_print_dats.o: pats_trans3_env_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_scst_dats.c: pats_trans3_env_scst.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_scst_dats.o: pats_trans3_env_scst_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_svar_dats.c: pats_trans3_env_svar.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_svar_dats.o: pats_trans3_env_svar_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_termet_dats.c: pats_trans3_env_termet.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_termet_dats.o: pats_trans3_env_termet_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_effect_dats.c: pats_trans3_env_effect.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_effect_dats.o: pats_trans3_env_effect_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_dvar_dats.c: pats_trans3_env_dvar.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_dvar_dats.o: pats_trans3_env_dvar_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_lamlp_dats.c: pats_trans3_env_lamlp.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_lamlp_dats.o: pats_trans3_env_lamlp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_pfman_dats.c: pats_trans3_env_pfman.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_pfman_dats.o: pats_trans3_env_pfman_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_env_lstate_dats.c: pats_trans3_env_lstate.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_env_lstate_dats.o: pats_trans3_env_lstate_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dmacro2_sats.c: pats_dmacro2.sats; $(ATSCC) $(DATSCC) -cc $< pats_dmacro2_sats.o: pats_dmacro2_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_dmacro2_dats.c: pats_dmacro2.dats; $(ATSCC) $(DATSCC) -cc $< pats_dmacro2_dats.o: pats_dmacro2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dmacro2_print_dats.c: pats_dmacro2_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_dmacro2_print_dats.o: pats_dmacro2_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dmacro2_eval0_dats.c: pats_dmacro2_eval0.dats; $(ATSCC) $(DATSCC) -cc $< pats_dmacro2_eval0_dats.o: pats_dmacro2_eval0_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_dmacro2_eval1_dats.c: pats_dmacro2_eval1.dats; $(ATSCC) $(DATSCC) -cc $< pats_dmacro2_eval1_dats.o: pats_dmacro2_eval1_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_p2at_dats.c: pats_trans3_p2at.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_p2at_dats.o: pats_trans3_p2at_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_patcon_dats.c: pats_trans3_patcon.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_patcon_dats.o: pats_trans3_patcon_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_syncst_dats.c: pats_trans3_syncst.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_syncst_dats.o: pats_trans3_syncst_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_dynexp_up_dats.c: pats_trans3_dynexp_up.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_dynexp_up_dats.o: pats_trans3_dynexp_up_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_dynexp_dn_dats.c: pats_trans3_dynexp_dn.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_dynexp_dn_dats.o: pats_trans3_dynexp_dn_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_appsym_dats.c: pats_trans3_appsym.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_appsym_dats.o: pats_trans3_appsym_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_caseof_dats.c: pats_trans3_caseof.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_caseof_dats.o: pats_trans3_caseof_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_selab_dats.c: pats_trans3_selab.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_selab_dats.o: pats_trans3_selab_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_ptrof_dats.c: pats_trans3_ptrof.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_ptrof_dats.o: pats_trans3_ptrof_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_viewat_dats.c: pats_trans3_viewat.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_viewat_dats.o: pats_trans3_viewat_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_deref_dats.c: pats_trans3_deref.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_deref_dats.o: pats_trans3_deref_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_assgn_dats.c: pats_trans3_assgn.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_assgn_dats.o: pats_trans3_assgn_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_xchng_dats.c: pats_trans3_xchng.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_xchng_dats.o: pats_trans3_xchng_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_lvalres_dats.c: pats_trans3_lvalres.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_lvalres_dats.o: pats_trans3_lvalres_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_fldfrat_dats.c: pats_trans3_fldfrat.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_fldfrat_dats.o: pats_trans3_fldfrat_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_looping_dats.c: pats_trans3_looping.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_looping_dats.o: pats_trans3_looping_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_trans3_decl_dats.c: pats_trans3_decl.dats; $(ATSCC) $(DATSCC) -cc $< pats_trans3_decl_dats.o: pats_trans3_decl_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_lintprgm_sats.c: pats_lintprgm.sats; $(ATSCC) $(DATSCC) -cc $< pats_lintprgm_sats.o: pats_lintprgm_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_lintprgm_dats.c: pats_lintprgm.dats; $(ATSCC) $(DATSCC) -cc $< pats_lintprgm_dats.o: pats_lintprgm_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_lintprgm_print_dats.c: pats_lintprgm_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_lintprgm_print_dats.o: pats_lintprgm_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_lintprgm_myint_dats.c: pats_lintprgm_myint.dats; $(ATSCC) $(DATSCC) -cc $< pats_lintprgm_myint_dats.o: pats_lintprgm_myint_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_lintprgm_solve_dats.c: pats_lintprgm_solve.dats; $(ATSCC) $(DATSCC) -cc $< pats_lintprgm_solve_dats.o: pats_lintprgm_solve_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_constraint3_sats.c: pats_constraint3.sats; $(ATSCC) $(DATSCC) -cc $< pats_constraint3_sats.o: pats_constraint3_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_constraint3_dats.c: pats_constraint3.dats; $(ATSCC) $(DATSCC) -cc $< pats_constraint3_dats.o: pats_constraint3_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_constraint3_print_dats.c: pats_constraint3_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_constraint3_print_dats.o: pats_constraint3_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_constraint3_mapgen_dats.c: pats_constraint3_mapgen.dats; $(ATSCC) $(DATSCC) -cc $< pats_constraint3_mapgen_dats.o: pats_constraint3_mapgen_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_constraint3_jsonize_dats.c: pats_constraint3_jsonize.dats; $(ATSCC) $(DATSCC) -cc $< pats_constraint3_jsonize_dats.o: pats_constraint3_jsonize_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_constraint3_init_dats.c: pats_constraint3_init.dats; $(ATSCC) $(DATSCC) -cc $< pats_constraint3_init_dats.o: pats_constraint3_init_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_constraint3_simplify_dats.c: pats_constraint3_simplify.dats; $(ATSCC) $(DATSCC) -cc $< pats_constraint3_simplify_dats.o: pats_constraint3_simplify_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_constraint3_icnstr_dats.c: pats_constraint3_icnstr.dats; $(ATSCC) $(DATSCC) -cc $< pats_constraint3_icnstr_dats.o: pats_constraint3_icnstr_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_constraint3_solve_dats.c: pats_constraint3_solve.dats; $(ATSCC) $(DATSCC) -cc $< pats_constraint3_solve_dats.o: pats_constraint3_solve_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_histaexp_sats.c: pats_histaexp.sats; $(ATSCC) $(DATSCC) -cc $< pats_histaexp_sats.o: pats_histaexp_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_histaexp_dats.c: pats_histaexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_histaexp_dats.o: pats_histaexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_histaexp_print_dats.c: pats_histaexp_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_histaexp_print_dats.o: pats_histaexp_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_histaexp_funlab_dats.c: pats_histaexp_funlab.dats; $(ATSCC) $(DATSCC) -cc $< pats_histaexp_funlab_dats.o: pats_histaexp_funlab_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_hidynexp_sats.c: pats_hidynexp.sats; $(ATSCC) $(DATSCC) -cc $< pats_hidynexp_sats.o: pats_hidynexp_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_hidynexp_dats.c: pats_hidynexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_hidynexp_dats.o: pats_hidynexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_hidynexp_print_dats.c: pats_hidynexp_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_hidynexp_print_dats.o: pats_hidynexp_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_hidynexp_util_dats.c: pats_hidynexp_util.dats; $(ATSCC) $(DATSCC) -cc $< pats_hidynexp_util_dats.o: pats_hidynexp_util_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_typerase_sats.c: pats_typerase.sats; $(ATSCC) $(DATSCC) -cc $< pats_typerase_sats.o: pats_typerase_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_typerase_error_dats.c: pats_typerase_error.dats; $(ATSCC) $(DATSCC) -cc $< pats_typerase_error_dats.o: pats_typerase_error_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_typerase_staexp_dats.c: pats_typerase_staexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_typerase_staexp_dats.o: pats_typerase_staexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_typerase_dynexp_dats.c: pats_typerase_dynexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_typerase_dynexp_dats.o: pats_typerase_dynexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_typerase_decl_dats.c: pats_typerase_decl.dats; $(ATSCC) $(DATSCC) -cc $< pats_typerase_decl_dats.o: pats_typerase_decl_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_sats.c: pats_ccomp.sats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_sats.o: pats_ccomp_sats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_dats.c: pats_ccomp.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_dats.o: pats_ccomp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_print_dats.c: pats_ccomp_print.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_print_dats.o: pats_ccomp_print_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_hitype_dats.c: pats_ccomp_hitype.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_hitype_dats.o: pats_ccomp_hitype_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_tmplab_dats.c: pats_ccomp_tmplab.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_tmplab_dats.o: pats_ccomp_tmplab_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_tmpvar_dats.c: pats_ccomp_tmpvar.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_tmpvar_dats.o: pats_ccomp_tmpvar_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_d2env_dats.c: pats_ccomp_d2env.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_d2env_dats.o: pats_ccomp_d2env_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_funlab_dats.c: pats_ccomp_funlab.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_funlab_dats.o: pats_ccomp_funlab_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_funent_dats.c: pats_ccomp_funent.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_funent_dats.o: pats_ccomp_funent_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_util_dats.c: pats_ccomp_util.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_util_dats.o: pats_ccomp_util_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_ccompenv_dats.c: pats_ccomp_ccompenv.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_ccompenv_dats.o: pats_ccomp_ccompenv_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_instrseq_dats.c: pats_ccomp_instrseq.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_instrseq_dats.o: pats_ccomp_instrseq_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_hipat_dats.c: pats_ccomp_hipat.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_hipat_dats.o: pats_ccomp_hipat_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_dynexp_dats.c: pats_ccomp_dynexp.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_dynexp_dats.o: pats_ccomp_dynexp_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_caseof_dats.c: pats_ccomp_caseof.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_caseof_dats.o: pats_ccomp_caseof_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_claulst_dats.c: pats_ccomp_claulst.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_claulst_dats.o: pats_ccomp_claulst_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_lazyeval_dats.c: pats_ccomp_lazyeval.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_lazyeval_dats.o: pats_ccomp_lazyeval_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_trywith_dats.c: pats_ccomp_trywith.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_trywith_dats.o: pats_ccomp_trywith_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_looping_dats.c: pats_ccomp_looping.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_looping_dats.o: pats_ccomp_looping_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_decl_dats.c: pats_ccomp_decl.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_decl_dats.o: pats_ccomp_decl_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_subst_dats.c: pats_ccomp_subst.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_subst_dats.o: pats_ccomp_subst_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_environ_dats.c: pats_ccomp_environ.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_environ_dats.o: pats_ccomp_environ_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_template_dats.c: pats_ccomp_template.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_template_dats.o: pats_ccomp_template_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_emit_dats.c: pats_ccomp_emit.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_emit_dats.o: pats_ccomp_emit_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_emit2_dats.c: pats_ccomp_emit2.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_emit2_dats.o: pats_ccomp_emit2_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_emit3_dats.c: pats_ccomp_emit3.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_emit3_dats.o: pats_ccomp_emit3_dats.c; $(ATSCC) $(CFLAGS) -c $< pats_ccomp_main_dats.c: pats_ccomp_main.dats; $(ATSCC) $(DATSCC) -cc $< pats_ccomp_main_dats.o: pats_ccomp_main_dats.c; $(ATSCC) $(CFLAGS) -c $< # pats_main_dats.c: \ pats_main.dats; $(ATSOPT) $(DATSCC) -o $@ -d $< pats_main_none_dats.c: \ pats_main.dats; $(ATSOPT) $(DATSCC) -DATS PATSOPT_MAIN_NONE -o $@ -d $< # pats_main_none_dats.o: pats_main_none_dats.c; $(ATSCC) $(CFLAGS) -c -o $@ $< # ###### # # HX: '-o .depend' means appending instead of overwriting # depend:: $(RMF) .depend $(ATSOPT) --output-a .depend --depgen -d pats_main.dats $(ATSOPT) --output-a .depend --depgen -s $(SOURCESsta) -d $(SOURCESdyn) # -include .depend # ###### DIR=. ARR=ar -r CPF=cp -f RMF=rm -f WCL=wc -l ###### # srclines:: ; $(WCL) pats_main.dats $(SOURCES) # liblines:: ; $(WCL) ../prelude/*.sats ../prelude/?ATS/*.?ats ../libc/?ATS/*.?ats ../libats/?ATS/*.?ats ../libats/?ATS/SHARE/*.?ats # ###### clean:: ; $(RMF) $(DIR)/*~ clean:: ; $(RMF) $(DIR)/*_?ats.o clean:: ; $(RMF) $(DIR)/*_?ats.c cleanall:: clean cleanall:: ; $(RMF) TAGATS ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./src/pats_trans3.sats0000644000175000017500000004311413431250607020611 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" typedef loc_t = $LOC.location (* ****** ****** *) staload EFF = "./pats_effect.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" staload "./pats_dmacro2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) // // HX-2011-05: // the list of possible errors that may occur // during the level-3 translation // datatype trans3err = // | T3E_intsp of (loc_t, string(*rep*)) | T3E_floatsp of (loc_t, string(*rep*)) // | T3E_s2varlst_instantiate_nabs of (loc_t(*arg*), int(*-1/1*)) // exi | T3E_s2varlst_instantiate_napp of (loc_t(*arg*), int(*-1/1*)) // uni | T3E_s2varlst_instantiate_arity of (loc_t(*arg*), int(*-1/1*)) | T3E_s2varlst_instantiate_srtck of (loc_t(*arg*), s2rt(*s2v*), s2rt(*s2e*)) // | T3E_s2exp_uni_instantiate_sexparglst of (loc_t, s2exp, s2exparglst) // | T3E_d2var_typeless of (loc_t, d2var) // accessing a consumed linear d2var | T3E_d2var_fin_some_none of (loc_t, d2var) // should be preserved but is consumed | T3E_d2var_fin_none_some of (loc_t, d2var) // should be consumed but is preserved | T3E_d2var_fin_some_some of (loc_t, d2var) // is preserved but with something incompatible // | T3E_p2at_trdn of (p2at, s2exp) | T3E_p2at_trdn_vbox_ref of (p2at) // resulting in disallowed ref-effect // | T3E_p2at_trdn_lst of (int(*lin*), p2at) // | T3E_p2at_trup_con of p2at // pfarity // ill-typed | T3E_p2at_trdn_con_arity of (p2at, int(*serr*)) | T3E_p2at_free_update of (p3at) // linear constructor freeing // | T3E_d2exp_trup_item of (loc_t, d2itm) // | T3E_d2exp_trup_tmpid of (d2exp) // non-template treated as template // | T3E_d2var_trup_llamlocal of (d2var) // non-local linear variable // | T3E_d2exp_trup_con_npf of (d2exp, int(*npf*)) | T3E_d2exp_trup_laminit_funclo of (d2exp, funclo) // | T3E_d3exp_trdn of (d3exp, s2exp) | T3E_d23explst_trdn_arity of (loc_t, int(*serr*)) // | T3E_d3exp_trup_applst_eff of (loc_t(*app*), s2eff(*eff*)) // | T3E_d23exp_trup_app23_npf of (loc_t(*fun*), int(*npf*)) | T3E_d23exp_trup_app23_fun of (loc_t(*fun*), s2exp(*fun*)) | T3E_d23exp_trup_app23_eff of (loc_t(*app*), s2eff(*eff*)) // | T3E_d2exp_trup_sym of (d2exp) // non-applied sym | T3E_d2exp_trup_applst_sym_nil of (d2exp, d2sym) // found none | T3E_d2exp_trup_applst_sym_cons2 of (d2exp, d2sym) // found too many // | T3E_d2exp_trup_exn of (loc_t) | T3E_d2exp_trup_wrt of (loc_t) // | T3E_d2exp_trdn_tup of (d2exp, s2exp) | T3E_d2exp_trdn_rec of (d2exp, s2exp) | T3E_d2exp_trdn_exist of (d2exp, s2exp) | T3E_d2exp_trdn_lam_dyn of (d2exp, s2exp) // | T3E_d2exp_trup_arg_body_linpat of (p2at) // | T3E_d3exp_delay of (loc_t, d3exp) // | T3E_d3exp_foldat of (loc_t, d3exp) | T3E_d3exp_freeat of (loc_t, d3exp) // | T3E_d3exp_extfcall_arg of (loc_t, d3exp) | T3E_d3exp_extmcall_arg of (loc_t, d3exp) // | T3E_s2exp_selab_tyrec of (loc_t, s2exp) | T3E_s2exp_selab_labnot of (loc_t, s2exp, label) // label is not found | T3E_s2exp_selab_tyarr of (loc_t, s2exp) | T3E_d3exp_arrind of (d3exp) // arrind is not a generic integer | T3E_d3exp_arrdim of (loc_t, s2explst, d3explst) // array dimen/index mismatch | T3E_d3exp_selab_linrest of (loc_t, d3exp, d3lablst) // | T3E_d2var_nonmut of (loc_t, d2var) // no address for d2var // (* | T3E_d2var_lin_overld of (loc_t, d2var, d3lablst) | T3E_d2var_mul_overld of (loc_t, d2var, d3lablst) | T3E_d2exp_deref_overld of (loc_t, d2exp, d3lablst) *) // | T3E_d3lab_overld_app of (loc_t, d3lab) // dot-symbol not applied // | T3E_d2exp_nonlval of (d2exp) // non-lval expression | T3E_d2exp_addrless of (d2exp) // addressless lval | T3E_d3exp_nonderef of (d3exp) // non-deref expression | T3E_pfobj_search_none of (loc_t, s2exp(*addr*)) // pfobj not found // | T3E_s2exp_assgn_tszeq of (loc_t, s2exp(*bef*), s2exp(*aft*)) | T3E_s2addr_viewat_addreq of (loc_t, s2exp(*bef*), d3lablst, s2exp(*aft*)) // | T3E_s2addr_deref_context of (loc_t, s2exp, d3lablst) | T3E_s2addr_assgn_deref_linsel of (loc_t, s2exp, d3lablst) | T3E_s2addr_assgn_deref_sharing of (loc_t, s2exp, d3lablst) | T3E_s2addr_assgn_deref_proof of (loc_t, s2exp, d3lablst) | T3E_s2addr_assgn_deref_context of (loc_t, s2exp, d3lablst) // | T3E_s2addr_xchng_check_LHS of (loc_t, s2exp(*LHS*), s2exp(*RHS*)) | T3E_s2addr_xchng_check_RHS of (loc_t, s2exp(*LHS*), s2exp(*RHS*)) // | T3E_d2var_selab_context of (loc_t, d2var, d3lablst) // linsel | T3E_d3exp_deref_reflinsel of (d3exp, d3lablst) // ref linear selection | T3E_d3exp_assgn_deref_reflinsel of (d3exp, d3lablst) // linear selection | T3E_d3exp_assgn_deref_refsharing of (d3exp, d3lablst) // boxed non-linear field-update | T3E_d3exp_trdn_xchng_deref of (d3exp, d3lablst, s2exp) // type mismatch // | T3E_s2addr_viewat_deref_context of (loc_t, s2exp, d3lablst) // | T3E_s2exp_set_viewat_atview of (loc_t, s2exp(*root*)) | T3E_s2exp_set_viewat_without of (loc_t, s2exp(*root*)) (* | T3E_s2exp_set_viewat_tszeq of (loc_t, s2exp(*old*), s2exp(*new*)) | T3E_s2exp_set_viewat_addreq of (loc_t, s2exp(*root*), d3lablst, s2exp(*new*)) *) // | T3E_d3lval_fun of (d3exp) // non-left-val fun for call-by-ref | T3E_d3lval_funarg of (d3exp) // non-left-val funarg for call-by-ref | T3E_d3lval_refval of (loc_t, d2var) // non-mutable dvar used for call-by-ref | T3E_d3lval_linpatcon of (d3exp, s2exp) // non-left-val is matched against linpatcon // | T3E_d3exp_funclo_topized of (d3exp) // repeated application of a linear funclo // | T3E_s2addr_exch_type_linold of (loc_t, s2exp, d3lablst) // linear abandonment | T3E_s2addr_exch_type_oldnew of (loc_t, s2exp, d3lablst, s2exp(*new*)) | T3E_d3lval_exch_type_linold of (loc_t, d3exp, d3lablst) // linear abandonment // | T3E_effenv_check_set of (loc_t, $EFF.effset) // disallowed effects | T3E_effenv_check_sexp of (loc_t, s2exp(*S2Eeff*)) // disallowed effects // | T3E_d2exp_trdn_ifcasehd of (d2exp) // | T3E_guard_trdn of (loc_t, bool(*gval*), s2exp(*gtyp*)) // T3E_guard_trdn | T3E_c2lau_trdn_arity of (c2lau, s2explst) | T3E_c2laulst0_trdn_noclause of (loc_t) | T3E_c2laulst2_trdn_redundant of (loc_t, c2lau) // | T3E_cp2atcstlst_arity of (loc_t, int(*serr*)) // | T3E_loopexn of (loc_t, int(*knd*)) // HX: 0/1: break/continue // | T3E_d2var_some of (loc_t, d2var, s2exp) // should be retained but consumed | T3E_d2var_none of (loc_t, d2var, s2exp) // should be consumed but retained | T3E_d2var_some2 of (loc_t, d2var, s2exp(*0*), s2exp) // retained but with a type that fails to merge // end of [T3E_d2var_some2] // | T3E_dmacro_eval0_cmp of (loc_t, m2val, m2val) | T3E_dmacro_eval0_d2exp of (loc_t, d2exp) | T3E_dmacro_eval0_app_mac_arity of (loc_t, d2mac, d2exparglst) | T3E_dmacro_evalctx_extend of (loc_t, d2mac) | T3E_dmacro_eval1_d2exp of (loc_t, d2exp) // | T3E_reassume_tr_isnotasp of (loc_t, s2cst) // | T3E_f2undeclst_tr_termetsrtck of (f2undec, s2rtlstopt) | T3E_v2aldeclst_rec_tr_linearity of (v2aldec, s2exp(*linear*)) // end of [trans3err] fun the_trans3errlst_add (x: trans3err): void fun the_trans3errlst_finalize (): void // cleanup all the errors (* ****** ****** *) fun p2at_syn_type (p2t: p2at): s2exp fun p2atlst_syn_type (p2ts: p2atlst): s2explst (* ****** ****** *) // fun p2at_trup_arg (p2t: p2at): p3at fun p2atlst_trup_arg (npf: int, p2ts: p2atlst): p3atlst // fun p2at_trdn_arg (p2t: p2at, s2e: s2exp): p3at fun p2atlst_trdn_arg {n:nat} ( loc: loc_t, npf: int , p2ts: p2atlst, s2es: list (s2exp, n), serr: &int ) : list (p3at, n) // end of [p2atlst_trdn_arg] // fun p2at_trdn (p2t: p2at, s2e: s2exp): p3at fun p2at_trdn_con (p2t: p2at, s2f: s2hnf): p3at fun p2atlst_trdn {n:nat} ( loc: loc_t , p2ts: p2atlst, s2es: list (s2exp, n), serr: &int ) : list (p3at, n) // end of [p2atlst_trdn] // fun guard_trdn (loc: loc_t, gval: bool, gtyp: s2exp): void // end of [guard_trdn] (* ****** ****** *) (* fun p3at_mutablize (p3t0: p3at): void // HX: var [pat] = ... *) (* ****** ****** *) fun funarg_patck_exhaust ( loc0: location, p2ts_arg: p2atlst, s2es_arg: s2explst ) : void // end of [funarg_patck_exhaust] (* ****** ****** *) fun d2exp_funclo_of_d2exp (d2e0: d2exp, fc0: &funclo): d2exp // end of [d2exp_funclo_of_d2exp] fun d2exp_s2eff_of_d2exp (d2e0: d2exp, s2fe0: &s2eff? >> s2eff): d2exp // end of [d2exp_s2eff_of_d2exp] (* ****** ****** *) fun d2exp_syn_type (d2e: d2exp): s2exp fun d2explst_syn_type (d2es: d2explst): s2explst fun labd2explst_syn_type (ld2es: labd2explst): labs2explst (* ****** ****** *) fun fshowtype_d3exp_up (d3e: d3exp): void fun fshowtype_d3exp_dn (d3e: d3exp): void (* ****** ****** *) fun d3lablst_is_overld (d3ls: d3lablst): bool (* ****** ****** *) datavtype d23exp = | D23Ed2exp of d2exp | D23Ed3exp of d3exp viewtypedef d23explst = List_vt (d23exp) fun d23exp_free (x: d23exp): void fun d23explst_free (xs: d23explst): void fun d3exp_trdn (d3e: d3exp, s2f: s2exp): d3exp fun d3explst_trdn_arg (d3es: d3explst, s2es: s2explst): d3explst // end of [d3explst_trdn_arg] (* ****** ****** *) // fun d2exp_trup_int (d2e0: d2exp, i: int): d3exp // fun intrep_syn_type // for dyn-patterns (loc0: loc_t, rep: string): s2exp // g0int fun intrep_syn_type_ind // for dyn-expressions (loc0: loc_t, rep: string): s2exp // g1int fun d2exp_trup_intrep (d2e0: d2exp, rep: string): d3exp // fun d2exp_trup_bool (d2e0: d2exp, b: bool): d3exp fun d2exp_trup_char (d2e0: d2exp, c: char): d3exp fun d2exp_trup_string (d2e0: d2exp, str: string): d3exp // fun float_syn_type (loc0: loc_t, rep: string): s2exp fun d2exp_trup_float (d2e0: d2exp, rep: string): d3exp // fun i0nt_syn_type (x: i0nt): s2exp // g0int ... fun i0nt_syn_type_ind (x: i0nt): s2exp // g1int ... fun d2exp_trup_i0nt (d2e0: d2exp, x: i0nt): d3exp // fun f0loat_syn_type (x: f0loat): s2exp fun d2exp_trup_f0loat (d2e0: d2exp, x: f0loat): d3exp // (* ****** ****** *) fun cstsp_syn_type (d2e0: d2exp, x: $SYN.cstsp): s2exp fun d2exp_trup_cstsp (d2e0: d2exp, x: $SYN.cstsp): d3exp // end of [d2exp_trup_cstsp] (* ****** ****** *) // fun d2exp_trup_tyrep (d2e0: d2exp, s2e_rep: s2exp): d3exp // (* ****** ****** *) // fun d2exp_trup_literal (d2e0: d2exp, d2e_lit: d2exp): d3exp // (* ****** ****** *) fun d2var_get_type_some (loc: loc_t, d2v: d2var): s2exp // end of [d2var_get_type_some] fun d2exp_trup_cst (loc: loc_t, d2c: d2cst): d3exp fun d2exp_trup_var (loc: loc_t, d2v: d2var): d3exp fun d2exp_trup_var_mutabl (loc: loc_t, d2v: d2var): d3exp fun d2exp_trup_var_nonmut (loc: loc_t, d2v: d2var): d3exp (* ****** ****** *) fun d2exp_trup_tmpcst (loc0: loc_t, d2c: d2cst, t2mas: t2mpmarglst): d3exp // end of [d2exp_trup_tmpcst] fun d2exp_trup_tmpvar (loc0: loc_t, d2v: d2var, t2mas: t2mpmarglst): d3exp // end of [d2exp_trup_tmpvar] (* ****** ****** *) fun d2exp_trup_applst (d2e0: d2exp, _fun: d2exp, _arg: d2exparglst): d3exp // end of [d2exp_trup_applst] fun d23exp_trup_applst (d2e0: d2exp, _fun: d3exp, _arg: d2exparglst): d3exp // end of [d23exp_trup_applst] (* ****** ****** *) // fun d2exp_trup_applst_sym (d2e0: d2exp, d2s: d2sym, _arg: d2exparglst): d3exp // fun d2exp_trup_applst_tmpsym ( d2e0: d2exp, d2s: d2sym, t2mas: t2mpmarglst, _arg: d2exparglst ) : d3exp // end of [d2exp_trup_applst_tmpsym] // fun d2exp_trup_applst_seloverld (d2e0: d2exp, _fun: d2exp, d2s: d2sym, _arg: d2exparglst): d3exp // (* ****** ****** *) fun d2lab_trup (d2l: d2lab) : d3lab fun d2lablst_trup (d2ls: d2lablst) : d3lablst (* ****** ****** *) fun d3explst_get_ind (d3es: d3explst): s2explst fun s2exp_get_dlablst_linrest_sharing ( loc0: loc_t, s2e: s2exp, d3ls: d3lablst, linrest: &int, sharing: &int ) : (s2exp, s2explst_vt) // end of [fun] fun d2exp_trup_selab (loc0: loc_t, tup: d2exp, labs: d2lablst): d3exp // end of [d2exp_trup_selab] (* ****** ****** *) fun d2exp_trup_foldat (d2e0: d2exp): d3exp fun d2exp_trup_freeat (d2e0: d2exp): d3exp (* ****** ****** *) fun d2exp_trup_ptrof (d2e0: d2exp): d3exp (* ****** ****** *) fun s2exp_get_dlablst_context ( loc0: loc_t, s2e: s2exp, d3ls: d3lablst, context: &s2ctxtopt ) : s2exp (*selected*) // endfun fun s2exp_get_dlablst_context_check ( loc0: loc_t, s2e: s2exp, d3ls: d3lablst, context: &s2ctxtopt ) : (s2exp, s2explst_vt) // endfun (* ****** ****** *) fun d2exp_trup_deref ( loc0: loc_t, d2s: d2sym, d2e: d2exp, d2ls: d2lablst ) : d3exp // end of [d2exp_trup_deref] fun s2addr_deref ( loc0: loc_t, s2l: s2exp, d3ls: d3lablst, s2rt: &s2exp? >> s2exp ) : s2exp(*selected elt*) // end of [s2addr_deref] (* ****** ****** *) fun d2exp_trup_assgn (d2e0: d2exp): d3exp fun d2exp_trup_assgn_deref ( loc0: loc_t, d2e_l: d2exp, d2ls: d2lablst, d2e_r: d2exp ) : d3exp // end of [d2exp_trup_assgn_deref] fun s2addr_assgn_deref ( loc0: loc_t , s2l: s2exp, d3ls: d3lablst, d3e_r: d3exp, s2rt: &s2exp? >> s2exp ) : d3exp(*rval*) // end of [s2addr_assgn_deref] (* ****** ****** *) fun d2exp_trup_xchng (d2e0: d2exp): d3exp (* ** HX: evaluation of [d2e_r] should involving no proofs of views *) fun d2exp_trup_xchng_deref ( loc0: loc_t, d2e_l: d2exp, d2ls: d2lablst, d2e_r: d2exp ) : d3exp // end of [d2exp_trup_xchng_deref] fun s2addr_xchng_deref ( loc0: loc_t , s2l: s2exp, d3ls: d3lablst, d2e_r: d2exp, s2rt: &s2exp? >> s2exp ) : d3exp(*rval*) // end of [s2addr_xchng_deref] (* ****** ****** *) fun d2exp_trup_viewat (d2e0: d2exp): d3exp fun d2exp_trup_viewat_assgn (d2e0: d2exp): d3exp (* ****** ****** *) fun d2exp_trup_loop ( loc: loc_t , inv: loopi2nv , init: d2expopt, test: d2exp, post: d2expopt, body: d2exp ) : d3exp // end of [d2exp_trup_loop] fun d2exp_trup_loopexn (loc: loc_t, knd: int): d3exp (* ****** ****** *) fun d2exp_trup (d2e: d2exp): d3exp fun d2explst_trup (d2es: d2explst): d3explst (* ****** ****** *) fun d2exp_trdn (d2e: d2exp, s2e: s2exp): d3exp fun d2explst_trdn_elt (d2es: d2explst, s2e: s2exp): d3explst fun d2expopt_trdn_elt (od2e: d2expopt, s2e: s2exp): d3expopt (* ****** ****** *) // fun d2exp_trdn_rest (d2e: d2exp, s2f: s2hnf): d3exp // fun d2exp_trdn_ifhead (d2e: d2exp, s2f: s2hnf): d3exp fun d2exp_trdn_sifhead (d2e: d2exp, s2f: s2hnf): d3exp // fun d2exp_trdn_ifcasehd (d2e: d2exp, s2f: s2hnf): d3exp // fun c2laulst_trdn{n:nat} ( loc0: loc_t , casknd: caskind , invres: i2nvresstate , c2ls: c2laulst , d3es: list (d3exp, n) , s2es_pat: list (s2exp, n) , s2e_res: s2exp ) : c3laulst n // end of [c2laulst_trdn] fun d2exp_trdn_casehead (d2e: d2exp, s2f: s2hnf): d3exp fun d2exp_trdn_scasehead (d2e: d2exp, s2f: s2hnf): d3exp // fun d2exp_trdn_letwhere ( d2e0: d2exp, s2f0: s2hnf, d2cs: d2eclist, d2e_scope: d2exp ) : d3exp // end of [d2exp_trdn_letwhere] // fun d2exp_trdn_xchng (loc0: loc_t, d2e: d2exp, s2f: s2hnf): d3exp fun d2exp_trdn_xchng_deref ( loc0: loc_t, loc: loc_t, d2e: d2exp, d2ls: d2lablst, s2f: s2hnf ) : d3exp // end of [d2exp_trdn_xchng_deref] fun s2addr_xchng_check ( loc0: loc_t, loc: loc_t(*right*) , s2l: s2exp, d3ls: d3lablst, s2f: s2hnf, s2rt: &s2exp? >> s2exp ) : s2exp // end of [s2addr_xchng_check] (* ****** ****** *) fun s2addr_viewat_deref (loc0: loc_t, s2l: s2exp, d3ls: d3lablst): s2exp(*atview*) // end of [s2addr_viewat_deref] (* ****** ****** *) fun s2addr_exch_type ( loc0: location , s2l: s2exp, d3ls: d3lablst, s2e_new: s2exp ) : s2exp(*old*) // end of [s2addr_exch_type] fun s2addr_set_viewat ( loc0: loc_t , s2l: s2exp, d3ls: d3lablst, s2at_new: s2exp ) : void // end of [s2addr_set_viewat] fun s2addr_set_viewat_check ( loc0: loc_t , s2l: s2exp, d3ls: d3lablst, s2at_new: s2exp , s2e_old: s2exp, s2e_new: s2exp, s2l_new: s2exp ) : void // end of [s2addr_set_viewat_check] (* ****** ****** *) fun d3lval_set_type_err ( refval: int, d3e: d3exp, s2e: s2exp, err: &int ) : void // end of [d3lval_set_type_err] fun d3lval_set_pat_type_left (d3e0: d3exp, p3t: p3at): void // end of [fun] fun d3lvalist_set_pat_type_left (d3es: d3explst, p3ts: p3atlst): void // end of [fun] (* ****** ****** *) fun d3lval_arg_set_type (refval: int, d3e0: d3exp, s2e: s2exp): int (*freeknd*) // end of [d3lval_arg_set_type] (* ****** ****** *) fun d3exp_fun_restore (fc: funclo, d3e_fun: d3exp): d3exp fun d3explst_arg_restore ( d3es: d3explst, s2es_arg: s2explst, wths2es: wths2explst ) : d3explst // end of [d3explst_arg_restore] (* ****** ****** *) fun d2ecl_tr (d2c: d2ecl): d3ecl fun d2eclist_tr (d2cs: d2eclist): d3eclist (* ****** ****** *) fun d2eclist_tr_errck (d2cs: d2eclist): d3eclist (* ****** ****** *) (* end of [pats_trans3.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_xchng.dats0000644000175000017500000003603013431250607021760 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_xchng" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_dynexp3.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) local fun auxerr_pfobj ( loc0: loc_t, loc1: loc_t, s2l: s2exp ) : void = let val () = prerr_error3_loc (loc1) val () = prerr ": exchange cannot be performed" val () = prerr ": the proof search for view located at [" val () = prerr_s2exp (s2l) val () = prerr "] failed to turn up a result." val () = prerr_newline () in the_trans3errlst_add (T3E_pfobj_search_none (loc1, s2l)) end // end of [auxerr_pfobj] fun auxmain .<>. ( loc0: loc_t // all , loc1: loc_t // right , pfobj: pfobj , d3ls: d3lablst , s2f0_sel: s2hnf // left , s2rt: &s2exp? >> s2exp ) : s2exp = let // val+~PFOBJ ( d2vw, s2e_ctx, s2e_elt, s2l ) = pfobj val () = s2rt := s2e_elt // var ctxtopt: s2ctxtopt = None () val s2e_sel = s2exp_get_dlablst_context (loc1, s2e_elt, d3ls, ctxtopt) // end of [val] val s2e0_sel = s2hnf2exp (s2f0_sel) in // case+ ctxtopt of | Some (ctxt) => let val () = d2var_inc_linval (d2vw) val s2e_elt = s2ctxt_hrepl (ctxt, s2e0_sel) val s2e = s2exp_hrepl (s2e_ctx, s2e_elt) val () = d2var_set_type (d2vw, Some (s2e)) in s2e_sel end // end of [Some] | None () => let var linrest: int = 0 and sharing: int = 0 val (s2e_sel, s2ps) = s2exp_get_dlablst_linrest_sharing (loc1, s2e_elt, d3ls, linrest, sharing) val s2f_sel = s2exp2hnf (s2e_sel) val () = trans3_env_add_proplst_vt (loc1, s2ps) val err = $SOL.s2hnf_tyleq_solve (loc1, s2f0_sel, s2f_sel) val () = if err > 0 then let val () = prerr_error3_loc (loc1) val () = prerr ": the LHS of exchange cannot be given its RHS type." val () = prerr_newline () val () = prerr_the_staerrlst () in the_trans3errlst_add (T3E_s2addr_xchng_check_RHS (loc1, s2e0_sel, s2e_sel)) end // end of [if] // end of [val] in s2e_sel end // end of [None] // end // end of [auxmain] in (* in of [local] *) implement s2addr_xchng_check ( loc0(*all*), loc1(*right*) , s2l, d3ls, s2f0(*left*), s2rt ) = let val opt = pfobj_search_atview (s2l) in case+ opt of | ~Some_vt (pfobj) => auxmain (loc0, loc1, pfobj, d3ls, s2f0, s2rt) | ~None_vt () => let val s2e_sel = s2exp_t0ype_err () val () = s2rt := s2e_sel val () = auxerr_pfobj (loc0, loc1, s2l) in s2e_sel end // end of [None_vt] end // end of [s2addr_xchng_check] end // end of [local] (* ****** ****** *) local (* fun auxck_tszeq ( loc0: loc_t , s2f1: s2hnf, s2f2: s2hnf ) : void = let // val s2e1 = s2hnf2exp(s2f1) val s2e2 = s2hnf2exp(s2f2) // val tszeq = s2exp_tszeq(s2e1, s2e2) // in // if ~tszeq then let // val () = prerr_error3_loc (loc0) // val () = prerr ": assignment cannot be performed" val () = prerr ": mismatch of bef/aft type-sizes:\n" val () = (prerr "bef: ["; prerr_s2exp (s2e1); prerr "]") val () = prerr_newline ((*void*)) val () = (prerr "aft: ["; prerr_s2exp (s2e2); prerr "]") val () = prerr_newline ((*void*)) // in the_trans3errlst_add(T3E_s2exp_assgn_tszeq(loc0, s2e1, s2e2)) end // end of [if] // end of [val] // end // end of [auxck_tszeq] *) fun auxerr_nonderef ( d3e: d3exp ) : void = let val loc = d3e.d3exp_loc val () = prerr_error3_loc (loc) val () = prerrln! ": the dynamic expression cannot be dereferenced." in the_trans3errlst_add(T3E_d3exp_nonderef(d3e)) end // end of [auxerr_nonderef] fun auxerr1 ( loc0: loc_t // all , loc1: loc_t // right , s2f0_sel: s2hnf // left , s2f1_sel: s2hnf // right ) : void = let val () = prerr_error3_loc(loc0) val () = prerrln! (": the RHS of exchange cannot be given its LHS type.") val () = prerr_the_staerrlst() val s2e0_sel = s2hnf2exp(s2f0_sel) val s2e1_sel = s2hnf2exp(s2f1_sel) in the_trans3errlst_add (T3E_s2addr_xchng_check_LHS(loc1, s2e0_sel, s2e1_sel)) // the_trans3errlst_add end // end of [auxerr1] (* fun auxerr2 ( loc0: loc_t // all , loc1: loc_t // right , s2f0_sel: s2hnf // left , s2f1_sel: s2hnf // right ) : void = let val () = prerr_error3_loc(loc0) val () = prerrln! (": the LHS of exchange cannot be given its RHS type.") val () = prerr_the_staerrlst() val s2e0_sel = s2hnf2exp(s2f0_sel) val s2e1_sel = s2hnf2exp(s2f1_sel) in the_trans3errlst_add (T3E_s2addr_xchng_check_RHS (loc0, s2e0_sel, s2e1_sel)) // the_trans3errlst_add end // end of [auxerr2] *) fun aux1 ( loc0: loc_t // all , loc1: loc_t // right , s2f0: s2hnf // right , d3e: d3exp , d3ls: d3lablst , s2f0_sel: s2hnf // left ) : d3exp = let val opt = un_s2exp_ptr_addr_type(s2f0) in // case+ opt of | ~Some_vt(s2l) => let var s2rt: s2exp val s2e_sel = s2addr_xchng_check (loc0, loc1, s2l, d3ls, s2f0_sel, s2rt) // end of [val] val s2f_sel = s2exp2hnf(s2e_sel) // val err = $SOL.s2hnf_tyleq_solve (loc0, s2f_sel, s2f0_sel) // end of [val] val () = if err > 0 then auxerr1(loc0, loc1, s2f0_sel, s2f_sel) // end of [if] // (* val () = auxck_tszeq(loc0, s2f_sel, s2f0_sel) *) // in d3exp_sel_ptr( loc1, s2e_sel, d3e, s2rt, d3ls ) end // end of [Some_vt] | ~None_vt () => aux2(loc0, loc1, s2f0, d3e, d3ls, s2f0_sel) // end // end of [aux1] and aux2 ( loc0: loc_t // all , loc1: loc_t // right , s2f0: s2hnf // right , d3e: d3exp, d3ls: d3lablst , s2f0_sel: s2hnf // left ) : d3exp = let val opt = un_s2exp_ref_vt0ype_type(s2f0) in // case+ opt of | ~Some_vt(s2e) => let val s2rt = s2e var linrest: int = 0 and sharing: int = 0 val (s2e_sel, s2ps) = s2exp_get_dlablst_linrest_sharing (loc1, s2e, d3ls, linrest, sharing) // end of [val] val s2f_sel = s2exp2hnf(s2e_sel) val () = trans3_env_add_proplst_vt(loc1, s2ps) // val err = $SOL.s2hnf_tyleq_solve (loc1, s2f0_sel, s2f_sel) // end of [val] val () = if err > 0 then auxerr1(loc0, loc1, s2f0_sel, s2f_sel) // end of [if] // (* val () = auxck_tszeq(loc0, s2f_sel, s2f0_sel) *) // val _(*error*) = the_effenv_check_ref( loc0 ) in d3exp_sel_ref( loc1, s2e_sel, d3e, s2rt, d3ls ) end // end of [Some_vt] | ~None_vt () => aux3(loc0, loc1, s2f0, d3e, d3ls, s2f0_sel) // end // end of [aux2] and aux3 ( loc0: loc_t // all , loc1: loc_t // right , s2f0: s2hnf // right , d3e: d3exp, d3ls: d3lablst , s2f0_sel: s2hnf // left ) : d3exp = let val () = auxerr_nonderef (d3e) in d3exp_errexp (loc0) end // end of [aux3] in (* in of [local] *) implement d2exp_trdn_xchng_deref (loc0, loc1, d2e, d2ls, s2f0_sel) = let // val d3e = d2exp_trup (d2e) val () = d3exp_open_and_add (d3e) val d3ls = d2lablst_trup (d2ls) val s2e0 = d3exp_get_type (d3e) val s2f0 = s2exp2hnf_cast (s2e0) // in aux1(loc0, loc1, s2f0, d3e, d3ls, s2f0_sel) end // end of [d2exp_trdn_xchng_deref] implement d2exp_trdn_xchng (loc0, d2e, s2f0_sel) = let // val loc1 = d2e.d2exp_loc val d2lv = d2exp_lvalize(d2e) // in // case+ d2lv of | D2LVALvar_mut (d2v, d2ls) => let val d3ls = d2lablst_trup (d2ls) val-Some (s2l) = d2var_get_addr (d2v) var s2rt: s2exp val s2e_sel = s2addr_xchng_check (loc0, loc1, s2l, d3ls, s2f0_sel, s2rt) // end of [val] val s2f_sel = s2exp2hnf (s2e_sel) val s2e_sel = s2hnf2exp (s2f_sel) // val err = $SOL.s2hnf_tyleq_solve (loc0, s2f_sel, s2f0_sel) // end of [val] val ((*void*)) = if err > 0 then auxerr1(loc0, loc1, s2f0_sel, s2f_sel) // end of [if] // (* val () = auxck_tszeq(loc0, s2f_sel, s2f0_sel) *) // in d3exp_sel_var(loc1, s2e_sel, d2v, s2rt, d3ls) end // end of [D2LVALvar_mut] | D2LVALderef (d2e, d2ls) => d2exp_trdn_xchng_deref(loc0, loc1, d2e, d2ls, s2f0_sel) | _ (* error *) => let val () = prerr_error3_loc (loc1) val () = prerrln! (": a left-value is required but a non-left-value is given.") val () = the_trans3errlst_add (T3E_d2exp_nonlval (d2e) ) in d3exp_errexp (loc1) end // end of [_] // end // end of [d2exp_trdn_xchng] end // end of [local] (* ****** ****** *) local fun auxerr_pfobj ( loc0: loc_t, s2l: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": exchange cannot be performed" val () = prerr ": the proof search for view located at [" val () = prerr_s2exp (s2l) val () = prerr "] failed to turn up a result." val () = prerr_newline () in the_trans3errlst_add (T3E_pfobj_search_none (loc0, s2l)) end // end of [auxerr_pfobj] fun auxmain .<>. ( loc0: loc_t , pfobj: pfobj, d3ls: d3lablst , d2e_r: d2exp , s2rt: &s2exp? >> s2exp ) : d3exp = let val+~PFOBJ ( d2vw, s2e_ctx, s2e_elt, s2l ) = pfobj val () = s2rt := s2e_elt var linrest: int = 0 and sharing: int = 0 val (s2e_sel, s2ps) = s2exp_get_dlablst_linrest_sharing (loc0, s2e_elt, d3ls, linrest, sharing) val s2f_sel = s2exp2hnf (s2e_sel) val () = trans3_env_add_proplst_vt (loc0, s2ps) in d2exp_trdn_xchng (loc0, d2e_r, s2f_sel) end // end of [auxmain] in (* in of [local] *) implement s2addr_xchng_deref ( loc0, s2l, d3ls, d2e_r, s2rt ) = let val opt = pfobj_search_atview (s2l) in case+ opt of | ~Some_vt (pfobj) => auxmain (loc0, pfobj, d3ls, d2e_r, s2rt) | ~None_vt () => let val () = s2rt := s2exp_t0ype_err () // end of [val] val () = auxerr_pfobj (loc0, s2l) in d2exp_trup (d2e_r) end // end of [None_vt] end // end of [s2addr_xchng_deref] end // end of [local] (* ****** ****** *) local fun aux1 ( loc0: loc_t , s2f0: s2hnf // left , d3e_l: d3exp , d3ls: d3lablst , d2e_r: d2exp ) : d3exp = let val opt = un_s2exp_ptr_addr_type (s2f0) in // case+ opt of | ~Some_vt (s2l) => let var s2rt: s2exp val d3e_r = s2addr_xchng_deref (loc0, s2l, d3ls, d2e_r, s2rt) // end of [val] in d3exp_xchng_ptr (loc0, d3e_l, s2rt, d3ls, d3e_r) end // end of [Some_vt] | ~None_vt () => aux2 (loc0, s2f0, d3e_l, d3ls, d2e_r) // end // end of [aux1] and aux2 ( loc0: loc_t , s2f0: s2hnf // left , d3e_l: d3exp , d3ls: d3lablst , d2e_r: d2exp ) : d3exp = let val opt = un_s2exp_ref_vt0ype_type (s2f0) in // case+ opt of | ~Some_vt (s2e) => let val s2rt = s2e var linrest: int = 0 and sharing: int = 0 val (s2e_sel, s2ps) = s2exp_get_dlablst_linrest_sharing (loc0, s2e, d3ls, linrest, sharing) // end of [val] val s2f_sel = s2exp2hnf (s2e_sel) val () = trans3_env_add_proplst_vt (loc0, s2ps) val d3e_r = d2exp_trdn_xchng (loc0, d2e_r, s2f_sel) val _(*err*) = the_effenv_check_ref (d2e_r.d2exp_loc) in d3exp_xchng_ref (loc0, d3e_l, s2rt, d3ls, d3e_r) end // end of [Some_vt] | ~None_vt () => aux3 (loc0, s2f0, d3e_l, d3ls, d2e_r) // end // end of [aux2] and aux3 ( loc0: loc_t , s2f0: s2hnf // left , d3e_l: d3exp , d3ls: d3lablst , d2e_r: d2exp ) : d3exp = let in d3exp_errexp_void (loc0) end // end of [aux3] in (* in of [local] *) implement d2exp_trup_xchng_deref (loc0, d2e_l, d2ls, d2e_r) = let (* val () = ( print "d2exp_trup_deref: d2e_l = "; print_d2exp (d2e_l); print_newline (); print "d2exp_trup_deref: d2e_r = "; print_d2exp (d2e_r); print_newline (); ) // end of [val] *) val d3e_l = d2exp_trup (d2e_l) val () = d3exp_open_and_add (d3e_l) val d3ls = d2lablst_trup (d2ls) val s2e0 = d3exp_get_type (d3e_l) val s2f0 = s2exp2hnf_cast (s2e0) // in aux1 (loc0, s2f0, d3e_l, d3ls, d2e_r) end // end of [d2exp_trup_xchng_deref] end // end of [local] (* ****** ****** *) local fn auxerr_wrt_if (loc0: loc_t): void = let val err = the_effenv_check_wrt (loc0) in if (err > 0) then ( the_trans3errlst_add (T3E_d2exp_trup_wrt (loc0)) ) // end of [if] end // end of [auxerr_wrt] fun auxerr_lproof (d2e: d2exp): void = let val () = prerr_error3_loc (d2e.d2exp_loc) val () = prerr ": a non-proof left-value is expected." val () = prerr_newline () in the_trans3errlst_add (T3E_d2exp_nonlval (d2e)) end // end of [auxerr_lproof] fun auxerr_nonlval (d2e: d2exp): void = let val () = prerr_error3_loc (d2e.d2exp_loc) val () = prerr ": a left-value is required but a non-left-value is given." val () = prerr_newline () in the_trans3errlst_add (T3E_d2exp_nonlval (d2e)) end // end of [auxerr_nonlval] in (* in of [local] *) (* ** HX-2012-05-04: ** evaluation of [d2e_r] should not involve proofs of views! *) implement d2exp_trup_xchng (d2e0) = let val loc0 = d2e0.d2exp_loc val-D2Exchng (d2e_l, d2e_r) = d2e0.d2exp_node val d2lv_l = d2exp_lvalize (d2e_l) // in // case+ d2lv_l of | D2LVALvar_mut (d2v_l, d2ls) => let val d3ls = d2lablst_trup(d2ls) val-Some(s2l) = d2var_get_addr(d2v_l) var s2rt: s2exp val d3e_r = s2addr_xchng_deref(loc0, s2l, d3ls, d2e_r, s2rt) val ((*if-error*)) = auxerr_wrt_if(loc0) in d3exp_xchng_var(loc0, d2v_l, s2rt, d3ls, d3e_r) end // end of [D2LVALvar_mut] | D2LVALderef (d2e_l, d2ls) => let val ((*if-error*)) = auxerr_wrt_if(loc0) in d2exp_trup_xchng_deref(loc0, d2e_l, d2ls, d2e_r) end // end of [D2LVALderef] // | D2LVALvar_lin _ => let val () = auxerr_lproof(d2e_l) in d3exp_errexp_void(loc0) end // end of [_] | D2LVALviewat _ => let val () = auxerr_lproof(d2e_l) in d3exp_errexp_void(loc0) end // end of [_] // | _ => let val () = auxerr_nonlval(d2e_l) in d3exp_errexp_void(loc0) end // end of [_] // end // end of [d2exp_trup_xchng] end // end of [local] (* ****** ****** *) (* end of [pats_trans3_xchng.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp2.sats0000644000175000017500000013310113431250607020764 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: May, 2011 // (* ****** ****** *) staload UT = "./pats_utils.sats" typedef lstord (a:type) = $UT.lstord (a) (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LAB = "./pats_label.sats" typedef label = $LAB.label (* ****** ****** *) staload FIL = "./pats_filename.sats" typedef filename = $FIL.filename (* ****** ****** *) staload LOC = "./pats_location.sats" typedef loc_t = $LOC.location typedef location = $LOC.location (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol typedef symbolopt = $SYM.symbolopt (* ****** ****** *) // staload SYN = "./pats_syntax.sats" // typedef i0de = $SYN.i0de typedef i0delst = $SYN.i0delst // typedef i0nt = $SYN.i0nt typedef c0har = $SYN.c0har typedef f0loat = $SYN.f0loat typedef s0tring = $SYN.s0tring // typedef l0ab = $SYN.l0ab typedef dl0abeled (a:type) = $SYN.dl0abeled (a) // typedef dcstextdef = $SYN.dcstextdef typedef macsynkind = $SYN.macsynkind // (* ****** ****** *) // staload S1E = "./pats_staexp1.sats" staload D1E = "./pats_dynexp1.sats" // typedef e1xp = $S1E.e1xp typedef e1xplst = $S1E.e1xplst typedef s1exp = $S1E.s1exp typedef d1exp = $D1E.d1exp // (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) // // A place holder for [hisexp] // abstype dynexp2_hisexp_type typedef hisexp = dynexp2_hisexp_type typedef hisexpopt = Option (hisexp) // // A place holder for [funlab] // abstype dynexp2_funlab_type typedef funlab = dynexp2_funlab_type typedef funlabopt = Option (funlab) // (* ****** ****** *) // // HX: assumed in [pats_dynexp2_dcst.dats] // abstype d2cst_type typedef d2cst = d2cst_type typedef d2cstlst = List (d2cst) typedef d2cstopt = Option (d2cst) // vtypedef d2cstlst_vt = List_vt (d2cst) vtypedef d2cstopt_vt = Option_vt (d2cst) // abstype d2cstset_type typedef d2cstset = d2cstset_type // absvtype d2cstset_vtype vtypedef d2cstset_vt = d2cstset_vtype // abstype d2cstmap_type(a:type) typedef d2cstmap(a:type) = d2cstmap_type(a) // (* ****** ****** *) // abstype d2var_type typedef d2var = d2var_type typedef d2varlst = List (d2var) typedef d2varopt = Option (d2var) // vtypedef d2varlst_vt = List_vt (d2var) vtypedef d2varopt_vt = Option_vt (d2var) // abstype d2varset_type // assumed in [pats_dynexp2_dvar.dats] typedef d2varset = d2varset_type absvtype d2varset_vtype // assumed in [pats_dynexp2_dvar.dats] vtypedef d2varset_vt = d2varset_vtype // abstype d2varmap_type (a:type) // assumed in [pats_dynexp2_dvar.dats] typedef d2varmap (a:type) = d2varmap_type (a) absvtype d2varmap_vtype (a:type) // assumed in [pats_dynexp2_dvar.dats] vtypedef d2varmap_vt (a:type) = d2varmap_vtype (a) // absvtype d2varmaplst_vtype (a:type) // assumed in [pats_dynexp2_dvar.dats] vtypedef d2varmaplst_vt (a:type) = d2varmaplst_vtype (a) // (* ****** ****** *) abstype d2mac_type typedef d2mac = d2mac_type typedef d2maclst = List (d2mac) (* ****** ****** *) datatype d2itm = | D2ITMcst of d2cst | D2ITMvar of d2var | D2ITMcon of d2conlst | D2ITMe1xp of (e1xp) | D2ITMsymdef of (symbol, d2pitmlst) (* overloaded symbol *) | D2ITMmacdef of d2mac | D2ITMmacvar of d2var // end of [d2itm] and d2pitm = D2PITM of (int(*pval*), d2itm) where d2itmlst = List (d2itm) and d2pitmlst = List (d2pitm) typedef d2itmopt = Option (d2itm) vtypedef d2itmopt_vt = Option_vt (d2itm) (* ****** ****** *) // typedef d2sym = '{ d2sym_loc= loc_t , d2sym_qua= $SYN.d0ynq, d2sym_sym= symbol , d2sym_pitmlst= d2pitmlst } (* end of [d2sym] *) // (* ****** ****** *) // typedef d2symlst = List(d2sym) vtypedef d2symlst_vt = List_vt(d2sym) typedef d2symopt = Option(d2sym) // absvtype d2symset_vtype vtypedef d2symset_vt = d2symset_vtype // (* ****** ****** *) fun d2cst_make ( id: symbol , loc: loc_t // location of declaration , fil: filename // filename of declaration , dck: dcstkind , decarg: s2qualst , artylst: List int , s2e: s2exp // HX: there is no s2Var in it , extdef: dcstextdef ) : d2cst // end of [d2cst_make] (* ****** ****** *) // // HX: implemented in [pats_dynexp2_dcst.dats] // fun print_d2cst (x: d2cst): void fun prerr_d2cst (x: d2cst): void overload print with print_d2cst overload prerr with prerr_d2cst fun fprint_d2cst : fprint_type (d2cst) fun fprint_d2cstlst : fprint_type (d2cstlst) overload fprint with fprint_d2cst overload fprint with fprint_d2cstlst (* ****** ****** *) fun d2cst_get_loc (x: d2cst): loc_t fun d2cst_get_sym (x: d2cst): symbol fun d2cst_get_fil (x: d2cst): filename // fun d2cst_get_name (x: d2cst): string fun d2cst_get_kind (x: d2cst): dcstkind // fun d2cst_get_decarg (x: d2cst): s2qualst fun d2cst_set_decarg (x: d2cst, s2qs: s2qualst): void // fun d2cst_get_artylst (x: d2cst): List (int) // fun d2cst_get_type (x: d2cst): s2exp // fun d2cst_get_hisexp (x: d2cst): hisexpopt fun d2cst_set_hisexp (x: d2cst, opt: hisexpopt): void // fun d2cst_get_funlab (x: d2cst): funlabopt fun d2cst_set_funlab (x: d2cst, opt: funlabopt): void // fun d2cst_get_pack (x: d2cst): Stropt fun d2cst_get_extdef (x: d2cst): dcstextdef // fun d2cst_get_stamp (x: d2cst): stamp (* ****** ****** *) // fun d2cst_is_prf (d2c: d2cst): bool // a proof fun d2cst_is_nonprf (d2c: d2cst): bool // a nonproof // fun d2cst_is_mac (d2c: d2cst): bool // function fun d2cst_is_fun (d2c: d2cst): bool // function // fun d2cst_is_static (d2c: d2cst): bool // static // fun d2cst_is_fundec (d2c: d2cst): bool // fun declaration fun d2cst_is_valdec (d2c: d2cst): bool // val declaration fun d2cst_is_castfn (d2c: d2cst): bool // castfn declaration // fun d2cst_is_tmpcst (d2c: d2cst): bool // template? // fun d2cst_is_mainats (d2c: d2cst): bool // a [mainats] fun // (* ****** ****** *) fun lt_d2cst_d2cst (x1: d2cst, x2: d2cst):<> bool and lte_d2cst_d2cst (x1: d2cst, x2: d2cst):<> bool overload < with lt_d2cst_d2cst overload <= with lte_d2cst_d2cst fun eq_d2cst_d2cst (x1: d2cst, x2: d2cst):<> bool and neq_d2cst_d2cst (x1: d2cst, x2: d2cst):<> bool overload = with eq_d2cst_d2cst overload <> with neq_d2cst_d2cst overload != with neq_d2cst_d2cst fun compare_d2cst_d2cst (x1: d2cst, x2: d2cst):<> Sgn overload compare with compare_d2cst_d2cst (* ****** ****** *) fun d2cstset_nil ():<> d2cstset fun d2cstset_add (xs: d2cstset, x: d2cst):<> d2cstset fun d2cstset_ismem (xs: d2cstset, x: d2cst):<> bool (* ****** ****** *) fun d2cstset_vt_nil ():<> d2cstset_vt fun d2cstset_vt_add (xs: d2cstset_vt, x: d2cst):<> d2cstset_vt fun d2cstset_vt_listize_free (xs: d2cstset_vt):<> d2cstlst_vt (* ****** ****** *) // fun d2cstmap_nil{a:type} ():<> d2cstmap (a) fun d2cstmap_search {a:type}(map: d2cstmap(a), d2v: d2cst): Option_vt (a) fun d2cstmap_insert {a:type}(map: &d2cstmap(a), d2v: d2cst, x: a): bool(*found*) // (* ****** ****** *) // fun d2var_make (loc: loc_t, id: symbol): d2var fun d2var_make_any (loc: loc_t): d2var // fun d2var_ptr_viewat_make (ptr: d2var, opt: d2varopt): d2var fun d2var_ptr_viewat_make_none (ptr: d2var): d2var // (* ****** ****** *) fun print_d2var (x: d2var): void and prerr_d2var (x: d2var): void overload print with print_d2var overload prerr with prerr_d2var fun fprint_d2var : fprint_type (d2var) overload fprint with fprint_d2var fun fprint_d2varlst : fprint_type (d2varlst) overload fprint with fprint_d2varlst (* ****** ****** *) datatype d2vfin = | D2VFINnone of () | D2VFINsome of (s2exp) | D2VFINsome_lvar of (s2exp) // for local vars | D2VFINsome_vbox of (s2exp) // for vboxed proofs | D2VFINdone of (d2vfin) // funarg_d2vfin_checked // end of [d2vfin] fun print_d2vfin (x: d2vfin): void fun prerr_d2vfin (x: d2vfin): void fun fprint_d2vfin : fprint_type (d2vfin) (* ****** ****** *) fun d2var_get_loc (x: d2var):<> loc_t fun d2var_get_sym (x: d2var):<> symbol fun d2var_get_isfix (x: d2var):<> bool fun d2var_set_isfix (x: d2var, isfix: bool): void fun d2var_get_isprf (x: d2var):<> bool fun d2var_set_isprf (x: d2var, isprf: bool): void fun d2var_get_level (x: d2var):<> int fun d2var_set_level (x: d2var, level: int): void fun d2var_get_linval (x: d2var):<> int fun d2var_set_linval (x: d2var, linval: int): void fun d2var_inc_linval (x: d2var): void fun d2var_get_decarg (x: d2var):<> s2qualst fun d2var_set_decarg (x: d2var, decarg: s2qualst): void fun d2var_get_addr (x: d2var):<> s2expopt fun d2var_set_addr (x: d2var, opt: s2expopt): void fun d2var_get_view (x: d2var):<> d2varopt fun d2var_set_view (x: d2var, d2vopt: d2varopt): void fun d2var_get_finknd (_: d2var):<> d2vfin fun d2var_set_finknd (_: d2var, knd: d2vfin): void fun d2var_get_type (x: d2var):<> s2expopt fun d2var_set_type (x: d2var, opt: s2expopt): void // fun d2var_get_mastype (x: d2var):<> s2expopt fun d2var_set_mastype (x: d2var, opt: s2expopt): void // fun d2var_get_hisexp (x: d2var):<> hisexpopt fun d2var_set_hisexp (x: d2var, opt: hisexpopt): void // fun d2var_exch_type (x: d2var, opt: s2expopt): s2expopt // fun d2var_get_utimes (x: d2var):<> int fun d2var_set_utimes (x: d2var, nused: int):<> void fun d2var_inc_utimes (x: d2var):<> void // fun d2var_get_stamp (x: d2var):<> stamp (* ****** ****** *) (* ** HX: [d2v] is linear if its linval is nonneg *) fun d2var_is_linear (d2v: d2var): bool (* ** HX: [d2v] is mutable if it contains some view *) fun d2var_is_mutabl (d2v: d2var): bool (* ****** ****** *) fun eq_d2var_d2var (x1: d2var, x2: d2var):<> bool fun neq_d2var_d2var (x1: d2var, x2: d2var):<> bool overload = with eq_d2var_d2var overload != with neq_d2var_d2var overload <> with neq_d2var_d2var fun compare_d2var_d2var (x1: d2var, x2: d2var):<> Sgn overload compare with compare_d2var_d2var fun compare_d2vsym_d2vsym (x1: d2var, x2: d2var):<> Sgn (* ****** ****** *) fun d2varset_nil ():<> d2varset fun d2varset_ismem (xs: d2varset, x: d2var):<> bool fun d2varset_add (xs: d2varset, x: d2var):<> d2varset fun d2varset_listize (xs: !d2varset):<> List_vt (d2var) fun fprint_d2varset : fprint_type (d2varset) (* ****** ****** *) fun d2varset_vt_nil ():<> d2varset_vt fun d2varset_vt_free (xs: d2varset_vt):<> void fun d2varset_vt_ismem (xs: !d2varset_vt, x: d2var):<> bool fun d2varset_vt_add (xs: d2varset_vt, x: d2var):<> d2varset_vt fun d2varset_vt_listize (xs: !d2varset_vt):<> d2varlst_vt fun d2varset_vt_listize_free (xs: d2varset_vt):<> d2varlst_vt (* ****** ****** *) fun d2varmap_nil {a:type} ():<> d2varmap (a) fun d2varmap_search {a:type} (map: d2varmap(a), d2v: d2var):<> Option_vt (a) fun d2varmap_insert {a:type} (map: &d2varmap(a), d2v: d2var, x: a):<> bool(*found*) fun d2varmap_listize {a:type} (map: d2varmap(a)):<> List_vt @(d2var, a) (* ****** ****** *) // fun d2varmap_vt_nil {a:type} ():<> d2varmap_vt (a) fun d2varmap_vt_free {a:type} (map: d2varmap_vt(a)):<> void // fun d2varmap_vt_search {a:type} (map: !d2varmap_vt(a), d2v: d2var):<> Option_vt(a) fun d2varmap_vt_insert {a:type} (map: &d2varmap_vt(a), d2v: d2var, x: a):<> bool(*found*) fun d2varmap_vt_remove {a:type} (map: &d2varmap_vt(a), d2v: d2var):<> bool(*found*) // fun d2varmap_vt_listize {a:type} (map: !d2varmap_vt(a)):<> List_vt @(d2var, a) // (* ****** ****** *) // fun d2varmaplst_vt_nil {a:type} ():<> d2varmaplst_vt (a) fun d2varmaplst_vt_free {a:type} (map: d2varmaplst_vt(a)):<> void // fun d2varmaplst_vt_search {a:type} (map: !d2varmaplst_vt(a), d2v: d2var):<> Option_vt(a) fun d2varmaplst_vt_insert {a:type} (map: &d2varmaplst_vt(a), d2v: d2var, x: a):<> bool(*found*) fun d2varmaplst_vt_remove {a:type} (map: &d2varmaplst_vt(a), d2v: d2var):<> bool(*found*) // (* ****** ****** *) datatype m2acarg = | M2ACARGsta of s2varlst | M2ACARGdyn of d2varlst // end of [m2acarg] typedef m2acarglst = List (m2acarg) fun fprint_m2acarg : fprint_type (m2acarg) fun fprint_m2acarglst : fprint_type (m2acarglst) (* ****** ****** *) fun d2mac_get_loc (x: d2mac): loc_t fun d2mac_get_sym (x: d2mac): symbol fun d2mac_get_kind (x: d2mac): int (* 1/0: long/short form *) fun d2mac_get_stamp (x: d2mac): stamp fun d2mac_get_arglst (x: d2mac): m2acarglst (* ****** ****** *) fun print_d2mac (x: d2mac): void fun prerr_d2mac (x: d2mac): void fun fprint_d2mac : fprint_type (d2mac) // overload print with print_d2mac overload prerr with prerr_d2mac overload fprint with fprint_d2mac // (* ****** ****** *) // fun print_d2itm (x: d2itm): void fun prerr_d2itm (x: d2itm): void // fun fprint_d2itm : fprint_type (d2itm) fun fprint_d2itmlst : fprint_type (d2itmlst) // overload print with print_d2itm overload prerr with prerr_d2itm overload fprint with fprint_d2itm overload fprint with fprint_d2itmlst // (* ****** ****** *) fun fprint_d2pitm : fprint_type (d2pitm) fun fprint_d2pitmlst : fprint_type (d2pitmlst) (* ****** ****** *) // fun d2sym_make ( loc: loc_t , dq0: $SYN.d0ynq, id0: symbol, d2pis: d2pitmlst ) : d2sym // end of [d2sym_make] // (* ****** ****** *) // fun print_d2sym (d2s: d2sym): void fun prerr_d2sym (d2s: d2sym): void fun fprint_d2sym : fprint_type (d2sym) // overload print with print_d2sym overload prerr with prerr_d2sym overload fprint with fprint_d2sym // (* ****** ****** *) fun d2symset_vt_nil ():<> d2symset_vt fun d2symset_vt_add (xs: d2symset_vt, x: d2sym):<> d2symset_vt fun d2symset_vt_listize_free (xs: d2symset_vt):<> d2symlst_vt (* ****** ****** *) datatype pckind = | PCKcon of () // 0 // nonlin | PCKlincon of () // 1 // lincon | PCKfree of () // 2 // freeing | PCKunfold of () // 3 // folding // end of [pckind] typedef pckindopt = Option (pckind) (* ****** ****** *) // fun print_pckind (x: pckind): void fun prerr_pckind (x: pckind): void fun fprint_pckind : fprint_type (pckind) // overload print with print_pckind overload prerr with prerr_pckind overload fprint with fprint_pckind // (* ****** ****** *) fun fprint_pckindopt : fprint_type (pckindopt) (* ****** ****** *) fun eq_pckind_pckind (x1: pckind, x2: pckind): bool overload = with eq_pckind_pckind (* ****** ****** *) datatype p2at_node = // | P2Tany of () // wildcard | P2Tvar of d2var // mutability determined by the context // // constructor pattern // | P2Tcon of ( pckind, d2con, s2qualst, s2exp(*con*), int(*npf*), p2atlst ) (* end of [P2Tcon] *) // | P2Tint of int | P2Tintrep of string // | P2Tbool of bool | P2Tchar of char | P2Tfloat of string(*rep*) | P2Tstring of string // | P2Ti0nt of i0nt | P2Tf0loat of f0loat // | P2Tempty of () // | P2Tlst of (int(*lin*), p2atlst) // pattern list | P2Trec of (int(*knd*), int(*npf*), labp2atlst) // | P2Trefas of (d2var, p2at) // | P2Texist of (s2varlst, p2at) // existential opening // | P2Tvbox of d2var // vbox pattern for handling references // | P2Tann of (p2at, s2exp) // no s2Var in the ascribed type // | P2Tlist of (int(*npf*), p2atlst) // | P2Terrpat of () // HX: placeholder for indicating an error // end of [p2at_node] and labp2at = | LABP2ATomit of (loc_t) // for [...] | LABP2ATnorm of (l0ab, p2at) // for lab=pat // end of [labp2at] where p2at = '{ p2at_loc= loc_t , p2at_svs= lstord(s2var) , p2at_dvs= lstord(d2var) , p2at_type= s2expopt // ref@ (s2expopt) , p2at_node= p2at_node } (* end of [p2at] *) and p2atlst = List (p2at) and p2atopt = Option (p2at) and labp2atlst = List (labp2at) (* ****** ****** *) fun p2at_set_type ( p2t: p2at, opt: s2expopt ) : void = "ext#patsopt_p2at_set_type" (* ****** ****** *) fun p2atlst_svs_union (p2ts: p2atlst): lstord (s2var) fun p2atlst_dvs_union (p2ts: p2atlst): lstord (d2var) (* ****** ****** *) fun p2at_make_node ( loc: loc_t , svs: lstord(s2var), dvs: lstord(d2var) , node: p2at_node ) : p2at // end of [p2at_make_node] fun p2at_any (loc: loc_t): p2at fun p2at_var (loc: loc_t, d2v: d2var): p2at fun p2at_con ( loc: loc_t , pck: pckind , d2c: d2con , s2qs: s2qualst , s2f_con: s2exp , npf: int , darg: p2atlst ) : p2at // end of ... (* ****** ****** *) // fun p2at_int(loc: loc_t, i: int): p2at fun p2at_intrep(loc: loc_t, rep: string): p2at // fun p2at_bool(loc: loc_t, b: bool): p2at fun p2at_char(loc: loc_t, c: char): p2at fun p2at_float(loc: loc_t, rep: string): p2at fun p2at_string(loc: loc_t, str: string): p2at // fun p2at_i0nt(loc: loc_t, x: i0nt): p2at fun p2at_f0loat(loc: loc_t, x: f0loat): p2at // (* ****** ****** *) fun p2at_empty(loc: loc_t): p2at (* ****** ****** *) fun p2at_list // HX: flat tuple (loc: loc_t, npf: int, p2ts: p2atlst): p2at // end of [p2at_list] (* ****** ****** *) fun p2at_lst (loc: loc_t, lin: int, p2ts: p2atlst): p2at // end of [p2at_lst] fun p2at_rec ( loc: loc_t , knd: int(*boxity*), npf: int, lp2ts: labp2atlst ) : p2at // end of [p2at_tup] (* ****** ****** *) fun p2at_refas (loc: loc_t, d2v: d2var, p2t: p2at): p2at // end of [p2at_refas] fun p2at_exist (loc: loc_t, s2vs: s2varlst, p2t: p2at): p2at // end of [p2at_exist] fun p2at_vbox(loc: loc_t, d2v: d2var): p2at (* ****** ****** *) // fun p2at_ann (loc: loc_t, p2t: p2at, ann: s2exp): p2at // end of [p2at_ann] // (* ****** ****** *) fun p2at_errpat (loc: loc_t): p2at // end-of-fun (* ****** ****** *) // fun p2atlst_tupize (p2ts: p2atlst): labp2atlst // (* ****** ****** *) // fun print_p2at (x: p2at): void fun prerr_p2at (x: p2at): void fun fprint_p2at : fprint_type (p2at) // overload print with print_p2at overload prerr with prerr_p2at overload fprint with fprint_p2at // (* ****** ****** *) // fun print_p2atlst (xs: p2atlst): void fun prerr_p2atlst (xs: p2atlst): void fun fprint_p2atlst : fprint_type (p2atlst) // overload print with print_p2atlst overload prerr with prerr_p2atlst overload fprint with fprint_p2atlst // (* ****** ****** *) fun fprint_labp2at : fprint_type (labp2at) fun fprint_labp2atlst : fprint_type (labp2atlst) (* ****** ****** *) datatype d2ecl_node = // | D2Cnone of () // for something already erased | D2Clist of d2eclist // for list of declarations // | D2Csymintr of (i0delst) | D2Csymelim of (i0delst) // for temporary use | D2Coverload of // symbol overloading (i0de, int(*pval*), d2itmopt) // [None] indicates error // end of [D2Coverload] // | D2Cpragma of (e1xplst) // HX: #pragma ... | D2Ccodegen of (int(*knd*), e1xplst) // HX: #codegen ... // | D2Cstacsts of s2cstlst // for [stacst] declarations | D2Cstacons of (int(*knd*), s2cstlst) // for [stacon] declarations // end of [D2Cstacons] // (* | D2Cstavars of s2tavarlst // for [stavar] declarations *) // | D2Csaspdec of s2aspdec (* for static assumption *) | D2Creassume of s2cst(*abstype*) // for static re-assumption // | D2Cextype of (string(*name*), s2exp(*def*)) | D2Cextvar of (string(*name*), d2exp(*def*)) | D2Cextcode of (int(*knd*), int(*pos*), string(*code*)) // | D2Cdatdecs of (int(*knd*), s2cstlst) // datatype declarations | D2Cexndecs of (d2conlst) // exception constructor declarations // | D2Cdcstdecs of (int(*0/1:sta/ext*), dcstkind, d2cstlst) // dyncst // | D2Cimpdec of (int(*knd*), i2mpdec) // knd=0/1 : implement/primplmnt // | D2Cfundecs of (funkind, s2qualst, f2undeclst) | D2Cvaldecs of (valkind, v2aldeclst) // (nonrec) value declarations // end of [D2Cvaldecs] | D2Cvaldecs_rec of (valkind, v2aldeclst) // (recursive) value declarations // end of [D2Cvaldecs_rec] // | D2Cvardecs of (v2ardeclst) // variable declarations | D2Cprvardecs of (prv2ardeclst) // proof variable declarations // | D2Cinclude of (int(*knd*), d2eclist) (* file inclusion *) // | D2Cstaload of ( symbolopt, filename, int(*loadflag*), filenv, int(*loaded*) ) (* end of [D2staload] *) // | D2Cstaloadloc of (filename(*pfil*), symbol(*nspace*), filenv) // | D2Cdynload of (filename) (* dynamic load for initialization *) // | D2Clocal of (d2eclist(*head*), d2eclist(*body*)) // local declaration // | D2Cerrdec of ((*void*)) // HX: indication of erroneous declaration // end of [d2ecl_node] and d2exp_node = // | D2Ecst of d2cst (* dynamic constants *) | D2Evar of d2var (* dynamic variables *) // | D2Eint of int | D2Eintrep of string(*rep*) | D2Ebool of bool | D2Echar of char | D2Efloat of string(*rep*) | D2Estring of string // | D2Ei0nt of i0nt | D2Ec0har of c0har | D2Ef0loat of f0loat | D2Es0tring of s0tring // | D2Etop of () // a placeholder of unspecified type | D2Etop2 of (s2exp) // a placeholder of specified type | D2Eempty of () // the void-value (of unspecified size) // | D2Ecstsp of $SYN.cstsp // special constants // | D2Etyrep of (s2exp) // $tyrep(...) | D2Eliteral of (d2exp) // $literal: int, float, string // | D2Eextval of (s2exp(*type*), string(*name*)) | D2Eextfcall of ( s2exp(*res*), string(*fun*), d2explst(*arg*) ) (* end of [D2Eextfcall] *) | D2Eextmcall of ( s2exp(*res*), d2exp(*obj*), string(*method*), d2explst(*arg*) ) (* end of [D2Eextmcall] *) // // HX: data-constructor // | D2Econ of ( d2con, loc_t(*fun*) , s2exparglst(*sarg*), int(*npf*), loc_t(*arg*), d2explst(*darg*) ) (* end of [D2Econ] *) // | D2Esym of d2sym // overloaded dynamic symbol // | D2Efoldat of (* folding at a given address *) (s2exparglst, d2exp) | D2Efreeat of (* freeing at a given address *) (s2exparglst, d2exp) // | D2Etmpid of (d2exp(*id*), t2mpmarglst) // tmpcst/tmpvar instantiation // end of [D2Etmpid] // | D2Elet of (d2eclist, d2exp) // let-expression | D2Ewhere of (d2exp, d2eclist) // where-expression // | D2Eapplst of (d2exp, d2exparglst) // | D2Eifhead of // dynamic conditional (i2nvresstate, d2exp, d2exp, d2expopt) | D2Esifhead of // static conditional (i2nvresstate, s2exp, d2exp, d2exp(*else*)) // | D2Eifcasehd of (int(*else:0/1*), i2nvresstate, i2fclist) // | D2Ecasehead of ( // dynamic case-expression caskind, i2nvresstate, d2explst, c2laulst ) // end of [D2Ecaseof] | D2Escasehead of ( i2nvresstate, s2exp, sc2laulst // static case-expression ) // end of [D2Escaseof] // | D2Esing of (d2exp) // singleton | D2Elist of (int(*pfarity*), d2explst) // temporary // | D2Elst of (int(*lin*), s2expopt, d2explst) // list | D2Etup of (int(*knd*), int(*npf*), d2explst) // tuple | D2Erec of (int (*knd*), int (*npf*), labd2explst) // record | D2Eseq of d2explst // sequence-expressions // sequencing // | D2Eselab of (d2exp, d2lablst) // record/tuple field selection // | D2Eptrof of (d2exp) // taking the address of | D2Eviewat of (d2exp) // taking view at a given address // | D2Ederef of (d2sym, d2exp) // dereference // | D2Eassgn of (d2exp(*left*), d2exp(*right*)) | D2Exchng of (d2exp(*left*), d2exp(*right*)) // | D2Earrsub of (* array subscription *) (d2sym, d2exp, loc_t(*ind*), d2explst(*ind*)) | D2Earrpsz of (* $arrpsz expression *) (s2expopt(*eltype*), d2explst(*elements*)) | D2Earrinit of (* array initialization *) (s2exp(*elt*), d2expopt(*asz*), d2explst(*ini*)) // | D2Eraise of (d2exp) // raised exception // | D2Eeffmask of (s2eff, d2exp) // $effmask (s2eff, d2exp) // | D2Evararg of (d2explst) // $vararg: variadicity // | D2Evcopyenv of (int(*knd*), d2exp) // $vcopyenv_v/$vcopyenv_vt // | D2Eshowtype of (d2exp) // $showtype: for debugging // | D2Etempenver of (d2varlst) // $tempenver: for environvars // | D2Eexist of (s2exparg, d2exp) // witness-carrying expression // | D2Elam_dyn of (* boxed dynamic abstraction *) (int(*lin*), int(*npf*), p2atlst(*arg*), d2exp(*body*)) | D2Elaminit_dyn of (* flat dynamic abstraction *) (int(*lin*), int(*npf*), p2atlst(*arg*), d2exp(*body*)) | D2Elam_sta of (s2varlst, s2explst(*s2ps*), d2exp(*body*)) // static abstraction | D2Elam_met of (ref(d2varlst), s2explst(*met*), d2exp(*body*)) // termination metric // | D2Efix of ( int(*knd=0/1:flat/boxed*), d2var(*fixvar*), d2exp(*def*) ) (* end of [D2Efix] *) // | D2Edelay of (d2exp(*eval*)) // $delay | D2Eldelay of (d2exp(*eval*), d2expopt(*free*)) // $ldelay // | D2Efor of ( loopi2nv, d2exp(*init*), d2exp(*test*), d2exp(*post*), d2exp(*body*) ) // end of [D2Efor] | D2Ewhile of (loopi2nv, d2exp(*test*), d2exp(*body*)) // | D2Eloopexn of int(*knd*) // | D2Etrywith of (i2nvresstate, d2exp, c2laulst) // | D2Eann_type of (d2exp, s2exp) // ascribled expression | D2Eann_seff of (d2exp, s2eff) // ascribed with effects | D2Eann_funclo of (d2exp, funclo) // ascribed with funtype // | D2Emac of (d2mac) // macro-expression | D2Emacsyn of (macsynkind, d2exp) // backquote-comma-notation | D2Emacfun of (symbol(*name*), d2explst) // built-in macfun // | D2Esolassert of (d2exp) // $solve_assert(d2e_prf) | D2Esolverify of (s2exp) // $solve_verify(s2e_prop) // | D2Eerrexp of ((*void*)) // HX: placeholder for indicating an error // // end of [d2exp_node] and d2exparg = | D2EXPARGsta of (loc_t(*arg*), s2exparglst) | D2EXPARGdyn of (int(*npf*), loc_t(*arg*), d2explst) // end of [d2exparg] and d2lab_node = | D2LABlab of (label) | D2LABind of (d2explst) // end of [d2lab_node] where d2ecl = '{ d2ecl_loc= loc_t, d2ecl_node= d2ecl_node } // end of [d2ecl] and d2eclist = List (d2ecl) and d2exp = '{ d2exp_loc= loc_t , d2exp_node= d2exp_node, d2exp_type= s2expopt } (* end of [d2exp] *) and d2explst = List (d2exp) and d2expopt = Option (d2exp) and labd2exp = dl0abeled (d2exp) and labd2explst = List (labd2exp) and d2exparglst = List (d2exparg) (* ****** ****** *) and d2lab = '{ d2lab_loc= loc_t , d2lab_node= d2lab_node , d2lab_overld= d2symopt } // end of [d2lab] and d2lablst = List d2lab (* ****** ****** *) and i2nvarg = '{ i2nvarg_var= d2var , i2nvarg_type= s2expopt } // end of [i2nvarg] and i2nvarglst = List i2nvarg and i2nvresstate = '{ i2nvresstate_svs= s2varlst , i2nvresstate_gua= s2explst , i2nvresstate_arg= i2nvarglst , i2nvresstate_met= s2explstopt } // end of [i2nvresstate] and loopi2nv = '{ loopi2nv_loc= loc_t , loopi2nv_svs= s2varlst , loopi2nv_gua= s2explst , loopi2nv_arg= i2nvarglst (* argument *) , loopi2nv_met= s2explstopt (* metric *) , loopi2nv_res= i2nvresstate (* result *) } // end of [loopi2nv] (* ****** ****** *) and i2fcl = '{ // i2fcl_loc= loc_t , i2fcl_test= d2exp, i2fcl_body= d2exp // } (* end of [i2fcl] *) and i2fclist = List(i2fcl) (* ****** ****** *) and gm2at = '{ gm2at_loc= loc_t , gm2at_exp= d2exp, gm2at_pat= p2atopt } // end of [gm2at] and gm2atlst = List (gm2at) (* ****** ****** *) and c2lau = '{ c2lau_loc= loc_t , c2lau_pat= p2atlst , c2lau_gua= gm2atlst , c2lau_seq= int, c2lau_neg= int , c2lau_body= d2exp } // end of [c2lau] and c2laulst = List (c2lau) and sc2lau = '{ sc2lau_loc= loc_t , sc2lau_pat= sp2at , sc2lau_body= d2exp } // end of [sc2lau] and sc2laulst = List (sc2lau) (* ****** ****** *) and f2undec = '{ f2undec_loc= loc_t , f2undec_var= d2var , f2undec_def= d2exp , f2undec_ann= s2expopt } // end of [f2undec] and f2undeclst = List f2undec (* ****** ****** *) and v2aldec = '{ v2aldec_loc= loc_t , v2aldec_pat= p2at , v2aldec_def= d2exp , v2aldec_ann= s2expopt // [withtype] annotation } (* end of [v2aldec] *) and v2aldeclst = List (v2aldec) (* ****** ****** *) and v2ardec = '{ v2ardec_loc= loc_t , v2ardec_knd= int (* knd=0/1:var/ptr *) , v2ardec_svar= s2var // static address , v2ardec_dvar= d2var // dynamic variable , v2ardec_pfat= d2varopt // proof of at-view , v2ardec_type= s2expopt (* type annotation *) , v2ardec_init= d2expopt // value for initialization , v2ardec_dvaropt= d2varopt // address of variable } (* end of [v2ardec] *) and v2ardeclst = List (v2ardec) (* ****** ****** *) and prv2ardec = '{ prv2ardec_loc= loc_t , prv2ardec_dvar= d2var // dynamic address , prv2ardec_type= s2expopt (* optional type anno *) , prv2ardec_init= d2expopt // initial value (optional) } // end of [prv2ardec] and prv2ardeclst = List (prv2ardec) (* ****** ****** *) and i2mpdec = '{ i2mpdec_loc= loc_t , i2mpdec_locid= loc_t , i2mpdec_cst= d2cst , i2mpdec_imparg= s2varlst // static variables , i2mpdec_tmparg= s2explstlst // static args , i2mpdec_tmpgua= s2explstlst // static guards , i2mpdec_def= d2exp } // end of [i2mpdec] (* ****** ****** *) datatype d2lval = // type for left-values | D2LVALderef of (* ptr/ref path selection *) (d2exp(*ptr/ref*), d2lablst) | D2LVALvar_lin of (d2var, d2lablst) // linear d2var | D2LVALvar_mut of (d2var, d2lablst) // mutable d2var | D2LVALarrsub of (* array subscription *) (d2sym(*brackets*), d2exp, loc_t(*ind*), d2explst) | D2LVALviewat of (d2exp(*lval*)) // [lval] is 'addresssed' | D2LVALnone of d2exp (* non-left-values *) // end of [d2lval] (* ****** ****** *) // fun print_d2exp (x: d2exp): void fun prerr_d2exp (x: d2exp): void fun fprint_d2exp : fprint_type (d2exp) fun fprint_d2explst : fprint_type (d2explst) fun fprint_d2expopt : fprint_type (d2expopt) // overload print with print_d2exp overload prerr with prerr_d2exp overload fprint with fprint_d2exp overload fprint with fprint_d2explst overload fprint with fprint_d2expopt // (* ****** ****** *) fun fprint_labd2exp : fprint_type (labd2exp) fun fprint_labd2explst : fprint_type (labd2explst) overload fprint with fprint_labd2explst (* ****** ****** *) fun fprint_d2exparg : fprint_type (d2exparg) fun fprint_d2exparglst : fprint_type (d2exparglst) overload fprint with fprint_d2exparglst (* ****** ****** *) fun fprint_d2lab : fprint_type (d2lab) fun fprint_d2lablst : fprint_type (d2lablst) overload fprint with fprint_d2lablst (* ****** ****** *) fun fprint_loopi2nv : fprint_type (loopi2nv) fun fprint_i2nvarglst : fprint_type (i2nvarglst) fun fprint_i2nvresstate : fprint_type (i2nvresstate) (* ****** ****** *) // fun print_d2ecl (x: d2ecl): void fun prerr_d2ecl (x: d2ecl): void fun fprint_d2ecl : fprint_type (d2ecl) fun fprint_d2eclist : fprint_type (d2eclist) // overload print with print_d2ecl overload prerr with prerr_d2ecl overload fprint with fprint_d2ecl overload fprint with fprint_d2eclist // (* ****** ****** *) // fun print_d2lval (x: d2lval): void and prerr_d2lval (x: d2lval): void fun fprint_d2lval : fprint_type (d2lval) // overload print with print_d2lval overload prerr with prerr_d2lval overload fprint with fprint_d2lval // (* ****** ****** *) // // HX: dynamic expressions // (* ****** ****** *) fun d2exp_set_type ( d2e: d2exp, opt: s2expopt ) : void = "ext#patsopt_d2exp_set_type" (* ****** ****** *) fun d2exp_make_node (loc: location, node: d2exp_node): d2exp // end of [d2exp_make_node] (* ****** ****** *) fun d2exp_var (loc: location, d2v: d2var): d2exp (* ****** ****** *) fun d2exp_int (loc: location, i: int): d2exp fun d2exp_intrep (loc: location, rep: string): d2exp fun d2exp_bool (loc: location, b: bool): d2exp fun d2exp_char (loc: location, c: char): d2exp fun d2exp_float (loc: location, rep: string): d2exp fun d2exp_string (loc: location, s: string): d2exp (* ****** ****** *) fun d2exp_i0nt (loc: location, x: i0nt): d2exp fun d2exp_c0har (loc: location, x: c0har): d2exp fun d2exp_f0loat (loc: location, x: f0loat): d2exp fun d2exp_s0tring (loc: location, x: s0tring): d2exp (* ****** ****** *) fun d2exp_top (loc: location): d2exp fun d2exp_top2 (loc: location, s2e: s2exp): d2exp (* ****** ****** *) fun d2exp_empty (loc: location): d2exp (* ****** ****** *) // fun d2exp_cstsp ( loc: location, cst: $SYN.cstsp ) : d2exp // end-of-function // (* ****** ****** *) // fun d2exp_tyrep (loc: location, s2e: s2exp): d2exp // (* ****** ****** *) // fun d2exp_literal (loc: location, d2e_lit: d2exp): d2exp // (* ****** ****** *) // fun d2exp_extval ( loc: location, s2e: s2exp, name: string ) : d2exp // end of [d2exp_extval] // fun d2exp_extfcall ( loc: location , s2e: s2exp, _fun: string, _arg: d2explst ) : d2exp // end of [d2exp_extfcall] // fun d2exp_extmcall ( loc: location , s2e: s2exp, _obj: d2exp, _mtd: string, _arg: d2explst ) : d2exp // end of [d2exp_extmcall] // (* ****** ****** *) fun d2exp_cst (loc: location, d2c: d2cst): d2exp fun d2exp_con ( loc: location , d2c: d2con , locfun: location // HX: for d2c+sarg , sarg: s2exparglst , npf: int , locarg: location , darg: d2explst ) : d2exp // end of [d2exp_con] fun d2exp_sym (loc: location, d2s: d2sym): d2exp (* ****** ****** *) fun d2exp_loopexn (loc: location, knd: int): d2exp (* ****** ****** *) fun d2exp_foldat ( loc: location, s2as: s2exparglst, d2e: d2exp ) : d2exp // end of [d2exp_foldat] fun d2exp_freeat ( loc: location, s2as: s2exparglst, d2e: d2exp ) : d2exp // end of [d2exp_freeat] (* ****** ****** *) fun d2exp_tmpid ( loc: location, d2e_id: d2exp, t2mas: t2mpmarglst ): d2exp // end of [d2exp_tmpid] (* ****** ****** *) fun d2exp_let (loc: location, d2cs: d2eclist, body: d2exp): d2exp // end of [d2exp_let] fun d2exp_where (loc: location, body: d2exp, d2cs: d2eclist): d2exp // end of [d2exp_where] (* ****** ****** *) fun d2exp_applst ( loc: location , d2e_fun: d2exp, d2as: d2exparglst ) : d2exp // end of [d2exp_applst] fun d2exp_app_sta ( loc: location , d2e_fun: d2exp , locarg: location, sarg: s2exparglst ) : d2exp // end of [d2exp_app_sta] fun d2exp_app_dyn ( loc: location , d2e_fun: d2exp , npf: int, locarg: location, darg: d2explst ) : d2exp // end of [d2exp_app_dyn] fun d2exp_app_sta_dyn ( loc_dyn: location , loc_sta: location , d2e_fun: d2exp, sarg: s2exparglst , locarg: location, npf: int, darg: d2explst ) : d2exp // end of [d2exp_app_sta_dyn] (* ****** ****** *) fun d2exp_ifhead ( loc: location , res: i2nvresstate , _cond: d2exp, _then: d2exp, _else: d2expopt ) : d2exp // end of [d2exp_ifhead] fun d2exp_sifhead ( loc: location , res: i2nvresstate, cond: s2exp, _then: d2exp, _else: d2exp ) : d2exp // end of [d2exp_sifhead] (* ****** ****** *) // fun d2exp_ifcasehd (loc: location, res: i2nvresstate, ifcls: i2fclist): d2exp // (* ****** ****** *) fun d2exp_casehead ( loc: location , knd: caskind , res: i2nvresstate , d2es: d2explst , c2ls: c2laulst ) : d2exp // end of [d2exp_casehead] fun d2exp_scasehead ( loc: location , res: i2nvresstate, s2f: s2exp, sc2ls: sc2laulst ) : d2exp // end of [d2exp_scasehead] (* ****** ****** *) // fun d2exp_sing (loc: location, d2e: d2exp): d2exp fun d2exp_list (loc: location, npf: int, d2es: d2explst): d2exp // (* ****** ****** *) // fun d2exp_lst ( loc: location , lin: int, elt: s2expopt, d2es: d2explst ) : d2exp // end of [d2exp_lst] // fun d2exp_tup ( loc: location , knd: int, npf: int, d2es: d2explst ) : d2exp // end of [d2exp_tup] fun d2exp_tup_flt ( loc: location, npf: int, d2es: d2explst ) : d2exp // end of [d2exp_tup_flt] // fun d2exp_rec ( loc: location , knd: int, npf: int, ld2es: labd2explst ) : d2exp // end of [d2exp_rec] // (* ****** ****** *) fun d2exp_seq (loc: location, d2es: d2explst): d2exp fun d2exp_seq2 (loc: location, d2es: d2explst): d2exp (* ****** ****** *) // fun d2exp_deref (loc: location, d2s: d2sym, d2e_lval: d2exp): d2exp // fun d2exp_assgn (loc: location, _left: d2exp, _right: d2exp): d2exp // end of [d2exp_assgn] fun d2exp_xchng (loc: location, _left: d2exp, _right: d2exp): d2exp // end of [d2exp_xchng] // (* ****** ****** *) fun d2exp_arrsub ( loc: location , d2s: d2sym, arr: d2exp, ind: location, ind: d2explst ) : d2exp // end of [d2exp_arrsub] fun d2exp_arrpsz ( loc: location, elt: s2expopt, elts: d2explst ) : d2exp // end of [d2exp_arrpsz] fun d2exp_arrinit ( loc: location , elt: s2exp, asz: d2expopt, ini: d2explst ) : d2exp // end of [d2exp_arrinit] (* ****** ****** *) fun d2exp_ptrof (loc: location, d2e: d2exp): d2exp fun d2exp_viewat (loc: location, d2e: d2exp): d2exp (* ****** ****** *) // fun d2exp_selab ( loc: location, _rec: d2exp, d2ls: d2lablst ) : d2exp // end of [d2exp_selab] // fun d2exp_sel_dot // = d2exp_selab ( loc: location, _rec: d2exp, d2ls: d2lablst ) : d2exp // end of [d2exp_sel_dot] // fun d2exp_sel_ptr ( loc: location, d2s: d2sym, d2rec: d2exp, d2l: d2lab ) : d2exp // end of [d2exp_sel_ptr] // (* ****** ****** *) // fun d2exp_raise(loc: location, d2e: d2exp): d2exp // (* ****** ****** *) // fun d2exp_effmask (loc: location, s2fe: s2eff, d2e: d2exp): d2exp // (* ****** ****** *) // fun d2exp_vararg(loc: location, d2es: d2explst): d2exp // (* ****** ****** *) // fun d2exp_vcopyenv (loc: location, knd(*v/vt*): int, d2e: d2exp): d2exp // (* ****** ****** *) // fun d2exp_showtype (loc: location, d2e: d2exp): d2exp // fun d2exp_tempenver (loc: location, d2vs: d2varlst): d2exp // (* ****** ****** *) fun d2exp_exist (loc: location, s2a: s2exparg, d2e: d2exp): d2exp // end of [d2exp_exist] (* ****** ****** *) fun d2exp_lam_dyn ( loc: location , lin: int, npf: int, arg: p2atlst, body: d2exp ) : d2exp // end of [d2exp_lam_dyn] fun d2exp_laminit_dyn ( loc: location, knd: int, npf: int, arg: p2atlst, body: d2exp ) : d2exp // end of [d2exp_laminit_dyn] (* ****** ****** *) fun d2exp_lam_met ( loc: location , r: ref(d2varlst), met: s2explst, body: d2exp ) : d2exp // end of [d2exp_lam_met] fun d2exp_lam_met_new (loc: location, met: s2explst, body: d2exp): d2exp // end of [d2exp_lam_met_new] (* ****** ****** *) fun d2exp_lam_sta ( loc: location , s2vs: s2varlst, s2ps: s2explst, body: d2exp ) : d2exp // end of [d2exp_lam_sta] (* ****** ****** *) // fun d2exp_fix (loc: location, knd: int, f: d2var, body: d2exp): d2exp // (* ****** ****** *) // fun d2exp_delay (loc: location, _eval: d2exp): d2exp // fun d2exp_ldelay (loc: location, _eval: d2exp, _free: d2expopt): d2exp // fun d2exp_ldelay_none (loc: location, _eval: d2exp): d2exp // (* ****** ****** *) fun d2exp_while ( loc: location , i2nv: loopi2nv, test: d2exp, body: d2exp ) : d2exp // end of [d2exp_while] fun d2exp_for ( loc: location , i2nv: loopi2nv , init: d2exp, test: d2exp, post: d2exp, body: d2exp ) : d2exp // end of [d2exp_for] (* ****** ****** *) fun d2exp_trywith ( loc: location , r2es: i2nvresstate, d2e: d2exp, c2ls: c2laulst ) : d2exp // end of [d2exp_trywith] (* ****** ****** *) // fun d2exp_ann_type (loc: location, d2e: d2exp, ann: s2exp): d2exp // fun d2exp_ann_seff (loc: location, d2e: d2exp, s2fe: s2eff): d2exp // fun d2exp_ann_funclo (loc: location, d2e: d2exp, funclo: funclo): d2exp // (* ****** ****** *) fun d2exp_mac(loc: location, d2m: d2mac): d2exp fun d2exp_macsyn (loc: location, knd: macsynkind, d2e: d2exp): d2exp // end of [d2exp_macsyn] fun d2exp_macfun (loc: location, name: symbol, d2es: d2explst): d2exp // end of [d2exp_macfun] (* ****** ****** *) // fun d2exp_solassert (loc: location, d2e_prf: d2exp): d2exp // fun d2exp_solverify (loc: location, s2e_prop: s2exp): d2exp // (* ****** ****** *) // fun d2exp_errexp (loc: location): d2exp // HX: indicating error // (* ****** ****** *) fun labd2exp_make (l: l0ab, d2e: d2exp): labd2exp (* ****** ****** *) // fun d2lab_lab (loc: location, lab: label, opt: d2symopt): d2lab fun d2lab_ind (loc: location, ind: d2explst): d2lab // fun fprint_d2lab : fprint_type (d2lab) // (* ****** ****** *) // fun i2nvarg_make (d2v: d2var, s2f: s2expopt): i2nvarg // // HX-2012-06: // let [d2v] be [arg.i2nvarg_var]; this function // returns the proof of the atview of [d2v] if [d2v] // it is mutable; otherwise, [d2v] itself is returned // fun i2nvarg_get_var (arg: i2nvarg): d2var fun i2nvarg_get_type (arg: i2nvarg): s2expopt // val i2nvresstate_nil : i2nvresstate // fun i2nvresstate_make ( s2vs: s2varlst, s2ps: s2explst, arg: i2nvarglst ) : i2nvresstate // end of [i2nvresstate_make] // fun i2nvresstate_make_met ( s2vs: s2varlst , s2ps: s2explst, arg: i2nvarglst, met: s2explstopt ) : i2nvresstate // end of [i2nvresstate_make_met] // (* ****** ****** *) fun loopi2nv_make ( loc: location , svs: s2varlst , gua: s2explst , met: s2explstopt , arg: i2nvarglst , res: i2nvresstate ) : loopi2nv // end of [loopi2nv_make] (* ****** ****** *) fun i2fcl_make ( loc: location, test: d2exp, body: d2exp ) : i2fcl // end of [i2fcl_make] (* ****** ****** *) fun gm2at_make ( loc: location, d2e: d2exp, p2topt: p2atopt ) : gm2at // end of [gm2at_make] fun c2lau_make ( loc: location , p2ts: p2atlst , gua: gm2atlst , seq: int, neg: int , body: d2exp ) : c2lau // end of [c2lau_make] fun sc2lau_make (loc: location, sp2t: sp2at, body: d2exp): sc2lau // end of [sc2lau_make] (* ****** ****** *) fun d2cst_get_def (d2c: d2cst): d2expopt fun d2cst_set_def (d2c: d2cst, def: d2expopt): void (* ****** ****** *) fun d2mac_make ( loc: location , sym: symbol, knd: int, args: m2acarglst, def: d2exp ) : d2mac // end of [d2mac_make] fun d2mac_get_def (x: d2mac): d2exp fun d2mac_set_def (x: d2mac, def: d2exp): void (* ****** ****** *) fun i2mpdec_make ( loc: location , locid: location , d2c: d2cst , imparg: s2varlst , tmparg: s2explstlst , tmpgua: s2explstlst , def: d2exp ) : i2mpdec // end of [i2mpdec_make] (* ****** ****** *) fun f2undec_make ( loc: location, d2v: d2var, def: d2exp, ann: s2expopt ) : f2undec // end of [f2undec_make] (* ****** ****** *) fun v2aldec_make ( loc: location, p2t0: p2at, def: d2exp, ann: s2expopt ) : v2aldec // end of [v2aldec_make] (* ****** ****** *) fun v2ardec_make ( loc: location , knd: int // knd=0/1:var/ptr , s2v: s2var // static address , d2v: d2var // dynamic variable , pfat: d2varopt // proof of at-view , type: s2expopt // type annotatio , init: d2expopt // value for initialization , d2vopt: d2varopt // address of variable ) : v2ardec // end of [v2ardec_make] fun prv2ardec_make ( loc: location, d2v: d2var, type: s2expopt, init: d2expopt ) : prv2ardec // end of [prv2ardec_make] (* ****** ****** *) // // HX: various declarations // (* ****** ****** *) fun d2ecl_none(loc: location): d2ecl fun d2ecl_list(loc: location, xs: d2eclist): d2ecl (* ****** ****** *) // fun d2ecl_symintr(loc: location, ids: i0delst): d2ecl fun d2ecl_symelim(loc: location, ids: i0delst): d2ecl // (* ****** ****** *) // fun d2ecl_overload ( loc: location, id: i0de, pval: int, opt: d2itmopt ) : d2ecl // end of [d2ecl_overload] // (* ****** ****** *) // fun d2ecl_pragma (loc: location, e1xps: e1xplst): d2ecl fun d2ecl_codegen (loc: location, knd: int, e1xps: e1xplst): d2ecl // (* ****** ****** *) // fun d2ecl_stacsts (loc: location, s2cs: s2cstlst): d2ecl // fun d2ecl_stacons (loc: location, knd: int, s2cs: s2cstlst): d2ecl // (* fun d2ecl_stavars (loc: location, xs: s2tavarlst): d2ecl *) // (* ****** ****** *) // fun d2ecl_saspdec(loc: location, d0: s2aspdec): d2ecl fun d2ecl_reassume(loc: location, s2c_abs: s2cst): d2ecl // (* ****** ****** *) // fun d2ecl_extype (loc: location, name: string, def: s2exp): d2ecl // fun d2ecl_extvar (loc: location, name: string, def: d2exp): d2ecl // fun d2ecl_extcode (loc: location, knd: int, pos: int, code: string): d2ecl // end of [d2ecl_extcode] // (* ****** ****** *) // fun d2ecl_datdecs ( loc: location, knd: int, s2cs: s2cstlst ) : d2ecl // end of [d2ecl_datdecs] // fun d2ecl_exndecs (loc: location, d2cs: d2conlst): d2ecl // fun d2ecl_dcstdecs ( loc: location, knd: int, dck: dcstkind, d2cs: d2cstlst ) : d2ecl // end of [d2ecl_dcstdecs] // (* ****** ****** *) // fun d2ecl_fundecs ( loc: location, knd: funkind, decarg: s2qualst, f2ds: f2undeclst ) : d2ecl // end of [d2ecl_fundecs] // (* ****** ****** *) // fun d2ecl_valdecs ( loc: location, knd: valkind, v2ds: v2aldeclst ) : d2ecl // end of [d2ecl_valdecs] // fun d2ecl_valdecs_rec ( loc: location, knd: valkind, v2ds: v2aldeclst ) : d2ecl // end of [d2ecl_valdecs_rec] // (* ****** ****** *) // fun d2ecl_vardecs (loc: location, v2ds: v2ardeclst): d2ecl fun d2ecl_prvardecs (loc: location, v2ds: prv2ardeclst): d2ecl // (* ****** ****** *) fun d2ecl_impdec (loc: location, knd: int, d2c: i2mpdec): d2ecl // end of [d2ecl_impdec] (* ****** ****** *) fun d2ecl_include (loc: location, knd: int, d2cs: d2eclist): d2ecl // end of [d2ecl_include] (* ****** ****** *) // fun d2ecl_staload ( loc: location , idopt: symbolopt, cfil: filename , ldflag: int, fenv: filenv, loaded: int ) : d2ecl // end-of-fun // fun d2ecl_staloadloc ( loc: location , pfil: filename, nspace: symbol, fenv: filenv ) : d2ecl // end-of-fun // (* ****** ****** *) fun d2ecl_dynload (loc: location, fil: filename): d2ecl (* ****** ****** *) // fun d2ecl_local (loc: location, ds1: d2eclist, ds2: d2eclist): d2ecl // (* ****** ****** *) fun d2ecl_errdec (loc: location): d2ecl (* ****** ****** *) // abstype dynexp2_d3eclist_type // placeholer for [d3eclist] (* abstype dynexp2_hideclist_type // placeholer for [hideclist] *) // (* ****** ****** *) // abstype dynexp2_tmpcstimpmap_type // placeholer for [tmpcstimpmap] abstype dynexp2_tmpvardecmap_type // placeholer for [tmpvardecmap] // (* ****** ****** *) (* ** HX-2013-12: ** HX-2014-09: ** these functions are ** implemented in [pats_dynexp2_util.dats] *) // fun d2exp_is_lam(d2e: d2exp): bool // fun d2exp_is_varlamcst (d2e: d2exp): bool // fun d2con_select_arity (d2cs: d2conlst, n: int): d2conlst // fun d2exp_lvalize (d2e: d2exp): d2lval // fun d2cst_match_def (d2c: d2cst, def: d1exp): bool // fun d2exp_get_seloverld (d2e0: d2exp): d2symopt fun d2exp_get_seloverld_root (d2e0: d2exp): d2exp // (* ****** ****** *) // // HX-2014-12-11 // (* ****** ****** *) // fun d2eclist_mapgen_all ( d2cs: d2eclist ) : ( s2cstset_vt // static , s2varset_vt // static , s2Varset_vt // static , d2conset_vt // static , d2cstset_vt // dynamic , d2varset_vt // dynamic ) (* end of [d2eclist_mapgen_all] *) // (* ****** ****** *) (* end of [pats_dynexp2.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_jsonize_synent2.sats0000644000175000017500000000751213431250607022544 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: November, 2013 // (* ****** ****** *) // // Author: William Blair // Authoremail: william.douglass.blairATgmailDOTcom // Contribing Time: August 7, 2014 // (* ****** ****** *) // // HX-2014-12-09: Reorganizing // (* ****** ****** *) // staload JSON = "./pats_jsonize.sats" typedef jsonval = $JSON.jsonval // (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" // (* ****** ****** *) // // Statics // (* ****** ****** *) // fun jsonize_s2rt (s2t: s2rt): jsonval fun jsonize_s2rtlst (s2ts: s2rtlst): jsonval // fun jsonize_s2cst (s2c: s2cst): jsonval fun jsonize_s2cst_long (s2c: s2cst): jsonval fun jsonize_s2cstlst (s2cs: s2cstlst): jsonval // fun jsonize_s2rtdat_long (s2td: s2rtdat): jsonval // fun jsonize_s2var (s2v: s2var): jsonval fun jsonize_s2var_long (s2v: s2var): jsonval // fun jsonize_s2Var (s2V: s2Var): jsonval fun jsonize_s2Var_long (s2V: s2Var): jsonval // fun jsonize_s2varlst (s2vs: s2varlst): jsonval // fun jsonize_d2con (d2c: d2con): jsonval fun jsonize_d2con_long (d2c: d2con): jsonval fun jsonize_d2conlst (d2cs: d2conlst): jsonval // fun jsonize_tyreckind : tyreckind -> jsonval // fun jsonize_s2exp (flag: int, s2e: s2exp): jsonval fun jsonize_s2explst (flag: int, s2es: s2explst): jsonval fun jsonize_s2expopt (flag: int, s2eopt: s2expopt): jsonval // fun jsonize_labs2explst (flag: int, ls2es: labs2explst): jsonval // fun jsonize_wths2explst (flag: int, ws2es: wths2explst): jsonval // fun jsonize_s2eff (s2fe: s2eff): jsonval // fun jsonize_s2zexp (s2e: s2zexp): jsonval // (* ****** ****** *) // fun jsonize0_s2exp (s2e: s2exp): jsonval // w/o hnfizing fun jsonize1_s2exp (s2e: s2exp): jsonval // with hnfizing // fun jsonize0_s2explst (s2es: s2explst): jsonval // w/o hnfizing fun jsonize1_s2explst (s2es: s2explst): jsonval // with hnfizing // fun jsonize0_s2expopt (opt: s2expopt): jsonval // w/o hnfizing fun jsonize1_s2expopt (opt: s2expopt): jsonval // with hnfizing // (* ****** ****** *) // // Dynamics // (* ****** ****** *) fun jsonize_d2cst (d2c: d2cst): jsonval fun jsonize_d2cst_long (d2c: d2cst): jsonval fun jsonize_d2cstlst (d2cs: d2cstlst): jsonval (* ****** ****** *) fun jsonize_d2var (d2v: d2var): jsonval fun jsonize_d2var_long (d2v: d2var): jsonval (* ****** ****** *) fun jsonize_d2itm (d2i: d2itm): jsonval (* ****** ****** *) fun jsonize_d2ecl (d2c: d2ecl): jsonval fun jsonize_d2eclist (d2cs: d2eclist): jsonval (* ****** ****** *) // fun d2eclist_jsonize_out (out: FILEref, d2cs: d2eclist): void // (* ****** ****** *) (* end of [pats_jsonize_synent2.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_e0xp.dats0000644000175000017500000001530513431250607021760 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_lexing.sats" staload "./pats_tokbuf.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) #define l2l list_of_list_vt #define t2t option_of_option_vt (* ****** ****** *) (* e0xpseq ::= /*(empty)*/ | e0xp {COMMA e0xpseq}* *) fun p_e0xpseq_vt ( buf: &tokbuf , bt: int, err: &int ) : List_vt (e0xp) = ( pstar_fun0_COMMA {e0xp} (buf, bt, p_e0xp) ) (* p_e0xpseq_vt *) (* ****** ****** *) // implement p_e0xpseq (buf, bt, err) = l2l(p_e0xpseq_vt(buf, bt, err)) // (* ****** ****** *) // (* atme0xp ::= | i0de | LITERAL_char | LITERAL_float | LITERAL_int | LITERAL_string | LPAREN e0xpseq RPAREN | PERCENTLPAREN e0xp RPAREN ; /* atme0xp */ *) // fun p_atme0xp ( buf: &tokbuf, bt: int, err: &int ) : e0xp = ( ptokwrap_fun (buf, bt, err, p_atme0xp_tok, PE_atme0xp) ) (* p_atme0xp *) // and p_atme0xp_tok ( buf: &tokbuf, bt: int, err: &int, tok: token ) : e0xp = let // val err0 = err // var ent: synent? val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ // | _ when ptest_fun(buf, p_i0de, ent) => e0xp_i0de (synent_decode (ent)) // | T_INT _ => let val () = incby1 () in e0xp_i0nt (tok) end | T_CHAR _ => let val () = incby1 () in e0xp_c0har (tok) end | T_FLOAT _ => let val () = incby1 () in e0xp_f0loat (tok) end | T_STRING _ => let val () = incby1 () in e0xp_s0tring (tok) end // | T_LPAREN() => let val bt = 0 val () = incby1 () val ent2 = p_e0xpseq_vt (buf, bt, err) val ent3 = p_RPAREN (buf, bt, err) // err=err0 in if err = err0 then e0xp_list (tok, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in synent_null() end (* end of [if] *) end // end of [T_LPAREN] // | T_PERCENTLPAREN ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_e0xp (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then e0xp_eval (tok, ent2, ent3) else synent_null() // end of [if] end // end of [T_PERCENTLPAREN] // | _ (*rest-of-tokens*) => let val () = err := err + 1 in synent_null() end // end // end of [p_atme0xp_tok] // (* ****** ****** *) // (* e0xp0 ::= {atme0xp}+ *) // fun p_e0xp0 ( buf: &tokbuf, bt: int, err: &int ) : e0xp = let // fun loop ( x0: e0xp, xs1: List_vt (e0xp) ) : e0xp = ( case+ xs1 of | ~list_vt_nil () => x0 | ~list_vt_cons (x1, xs1) => let val x0 = e0xp_app (x0, x1) in loop (x0, xs1) end // end of [list_vt_cons] ) (* end of [loop] *) // val xs = pstar1_fun (buf, bt, err, p_atme0xp) // in // case+ xs of | ~list_vt_nil () => synent_null () | ~list_vt_cons (x, xs) => loop (x, xs) // end // end of [p_e0xp0] // (* ****** ****** *) // (* e0xp ::= e0xp0 [e0xp] | IF e0xp0 THEN e0xp [ELSE e0xp] *) // implement p_e0xp(buf, bt, err) = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) // var ent: synent? // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ | _ when ptest_fun ( buf, p_e0xp0, ent ) => let val ent1 = synent_decode {e0xp} (ent) val ent2 = p_e0xp (buf, 0(*bt*), err) // optional in if err = err0 then e0xp_app (ent1, ent2) else (err := err0; ent1) // end of [if] end | T_IF () => let val () = incby1 () val ent2 = p_e0xp0 (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_THEN, err0) val ent4 = pif_fun (buf, bt, err, p_e0xp, err0) val ent5 = ptokentopt_fun {e0xp} (buf, is_ELSE, p_e0xp) in if err = err0 then e0xp_if (tok, ent2, ent4, (t2t)ent5) else let val () = option_vt_free (ent5) in tokbuf_set_ntok_null (buf, n0) end (* end of [else] *) // end of [if] end // end of [T_IF] | _ (*rest-of-tokens*) => let val () = err := err + 1 in synent_null() end end // end of [p_e0xp] // (* ****** ****** *) // (* datsval ::= i0de | LITERAL_char | LITERAL_float | LITERAL_int | LITERAL_string *) // fun p_datsval ( buf: &tokbuf, bt: int, err: &int ) : e0xp = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) // var ent: synent? val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // case+ // | T_INT _ => let val () = incby1 () in e0xp_i0nt (tok) end | T_CHAR _ => let val () = incby1 () in e0xp_c0har (tok) end | T_FLOAT _ => let val () = incby1 () in e0xp_f0loat (tok) end | T_STRING _ => let val () = incby1 () in e0xp_s0tring (tok) end // | T_IDENT_alp (id) => let val () = incby1 () in e0xp_make_stringid (loc, id) end // end of [T_IDENT_alp] // | _(*rest-of-tokens*) => e0xp_make_stringid (loc, "") // end // end of [p_datsval] // (* ****** ****** *) // (* datsdef ::= i0de [EQ = datsval] // HX: for use in a command-line *) // implement p_datsdef (buf, bt, err) = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val ent1 = p_i0de (buf, bt, err) val ent2 = ( if err = err0 then ptokentopt_fun (buf, is_EQ, p_datsval) else None_vt () // end of [if] ) : Option_vt (e0xp) // in // if err = err0 then datsdef_make (ent1, (t2t)ent2) else let val () = option_vt_free (ent2) in tokbuf_set_ntok_null (buf, n0) end // end of [else] // end // end of [p_datsdef] // (* ****** ****** *) (* end of [pats_parsing_e0xp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_lazyeval.dats0000644000175000017500000001150313431250607022365 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: September, 2013 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) implement hidexp_ccomp_ret_delay (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val-HDEdelay (hde) = hde0.hidexp_node // val hse_res = hde.hidexp_type val hse_fun = hisexp_fun (FUNCLOclo(~1), list_nil, hse_res) val flab = funlab_make_type (hse_fun) val pmv0 = primval_make_funlab (loc0, flab) // val () = the_funlablst_add (flab) val () = ccompenv_add_flabsetenv (env, flab) // val () = ccompenv_inc_tailcalenv (env, flab) // val tmplev = ccompenv_get_tmplevel (env) val () = if tmplev > 0 then funlab_set_tmpknd (flab, 1) // val fent = let val imparg = list_nil(*s2vs*) val tmparg = list_nil(*s2ess*) val ins = instr_funlab (loc0, flab) val prolog = list_sing (ins) in // hidexp_ccomp_funlab_arg_body (env, flab, imparg, tmparg, prolog, loc0, list_nil, hde) // end of [hidexp_ccomp_funlab_arg_body] // end // end of [val] val () = funlab_set_funent (flab, Some(fent)) // val () = ccompenv_dec_tailcalenv (env) // val pmv0_tk = primval_lamfix(None(*lam*), pmv0) // val ins = instr_move_delay(loc0, tmpret, 0(*lin*), hse_res, pmv0_tk) // val ((*void*)) = instrseq_add (res, ins) // in // nothing end // end of [hidexp_ccomp_ret_delay] (* ****** ****** *) implement hidexp_ccomp_ret_ldelay (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val-HDEldelay (hde1, hde2) = hde0.hidexp_node // val hse_res = hde1.hidexp_type val hse_arg = hisexp_bool_t0ype () val hses_arg = list_cons{hisexp}(hse_arg, list_nil()) val hse_fun = hisexp_fun (FUNCLOclo(1), hses_arg, hse_res) val flab = funlab_make_type (hse_fun) val pmv0 = primval_make_funlab (loc0, flab) // val d2v_flag = d2var_make_any (loc0) val ((*void*)) = d2var_inc_utimes (d2v_flag) val hde_flag = hidexp_var (loc0, hse_arg, d2v_flag) val hde2 = hidexp_ignore (hde2.hidexp_loc, hse_res, hde2) val hde12_body = hidexp_if (loc0, hse_res, hde_flag, hde1, hde2) val hip_arg = hipat_var (loc0, hse_arg, d2v_flag) val hips_arg = list_cons{hipat}(hip_arg, list_nil()) // val () = the_funlablst_add (flab) val () = ccompenv_add_flabsetenv (env, flab) // val () = ccompenv_inc_tailcalenv (env, flab) // val tmplev = ccompenv_get_tmplevel (env) val () = if tmplev > 0 then funlab_set_tmpknd (flab, 1) // val fent = let val imparg = list_nil(*s2vs*) val tmparg = list_nil(*s2ess*) val ins = instr_funlab (loc0, flab) val prolog = list_sing (ins) in // hidexp_ccomp_funlab_arg_body ( env, flab , imparg, tmparg, prolog, loc0, hips_arg, hde12_body ) // end of [hidexp_ccomp_funlab_arg_body] // end // end of [val] val () = funlab_set_funent (flab, Some(fent)) // val () = ccompenv_dec_tailcalenv (env) // val pmv0_tk = primval_lamfix (None(*lam*), pmv0) // val ins = instr_move_delay(loc0, tmpret, 1(*lin*), hse_res, pmv0_tk) // val ((*void*)) = instrseq_add (res, ins) // in // nothing end // end of [ccomp_exp_lazy_ldelay] (* ****** ****** *) implement hidexp_ccomp_ret_lazyeval (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDElazyeval (lin, hde_lazy) = hde0.hidexp_node // val pmv_lazy = hidexp_ccomp (env, res, hde_lazy) val ins = instr_move_lazyeval (loc0, tmpret, lin, hse0, pmv_lazy) val ((*void*)) = instrseq_add (res, ins) // in // nothing end // end of [hidexp_ccomp_ret_lazyeval] (* ****** ****** *) (* end of [pats_ccomp_lazyeval.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_subst.dats0000644000175000017500000012451413431250607021705 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> ((*void*)) = prerr "pats_ccomp_subst" // (* ****** ****** *) staload ERR = "./pats_error.sats" staload GLOB = "./pats_global.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" overload print with $LOC.print_location (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans2_env.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) overload fprint with fprint_stasub overload fprint with fpprint_t2mpmarg overload fprint with fpprint_t2mpmarglst (* ****** ****** *) overload fprint with fprint_vbindmap (* ****** ****** *) macdef l2l (xs) = list_of_list_vt (,(xs)) macdef list_vt2t (xs) = $UN.linlst2lst (,(xs)) (* ****** ****** *) local fun auxlst ( loc0: location , sub: !stasub, xs: t2mpmarglst ) : t2mpmarglst = let in // case+ xs of | list_cons (x, xs) => let // val s2es = x.t2mpmarg_arg val s2es2 = s2explst_subst (sub, s2es) // (* val out = stdout_ref val () = fprintln! (out, "auxlst: s2es = ", s2es) val () = fprintln! (out, "auxlst: s2es2 = ", s2es2) *) // val x2 = t2mpmarg_make (loc0, s2es2) // in list_cons (x2, auxlst (loc0, sub, xs)) end // end of [list_cons] | list_nil () => list_nil () // end // end of [auxlst] in (* in of [local] *) implement t2mpmarglst_subst (loc0, sub, t2mas) = let // (* val out = stdout_ref val () = fprintln! (out, "t2mpmarglst_subst: sub = ", sub) val () = fprintln! (out, "t2mpmarglst_subst: t2mas = <", t2mas, ">") *) // in auxlst (loc0, sub, t2mas) end // end of [t2mpmarglst_subst] end // end of [local] (* ****** ****** *) implement t2mpmarglst_tsubst (loc0, tsub, t2mas) = let // val sub = tmpsub2stasub (tsub) val t2mas2 = t2mpmarglst_subst (loc0, sub, t2mas) val () = stasub_free (sub) in t2mas2 end // end of [t2mpmarglst_tsubst] (* ****** ****** *) // extern fun tmpvar_subst (sub: !stasub, tmp: tmpvar, sfx: int): tmpvar extern fun tmpvarlst_subst (sub: !stasub, tmplst: tmpvarlst, sfx: int): tmpvarlst // (* ****** ****** *) local extern fun tmpvar_set_ref (tmp: tmpvar, ref: int): void = "patsopt_tmpvar_set_ref" extern fun tmpvar_set_ret (tmp: tmpvar, ret: int): void = "patsopt_tmpvar_set_ret" extern fun tmpvar_set_origin ( tmp: tmpvar, opt: tmpvaropt ) : void = "patsopt_tmpvar_set_origin" extern fun tmpvar_set_suffix (tmp: tmpvar, sfx: int): void = "patsopt_tmpvar_set_suffix" // end of [tmpvar_set_suffix] in (* in of [local] *) implement tmpvar_subst (sub, tmp, sfx) = let val loc = tmpvar_get_loc (tmp) val hse = tmpvar_get_type (tmp) val hse = hisexp_subst (sub, hse) val tmp2 = tmpvar_make (loc, hse) val () = if tmpvar_isref(tmp) then tmpvar_set_ref (tmp2, 1) // end of [val] val () = if tmpvar_isret(tmp) then tmpvar_set_ret (tmp2, 1) // end of [val] val () = tmpvar_set_origin (tmp2, Some(tmp)) // end of [val] val () = tmpvar_set_suffix (tmp2, sfx) in tmp2 end // end of [tmpvar_subst] end // end of [local] (* ****** ****** *) implement tmpvarlst_subst (sub, tmplst, sfx) = let // fun loop ( sub: !stasub , xs: tmpvarlst, sfx: int, ys: tmpvarlst_vt ) : tmpvarlst_vt = let // in // case+ xs of | list_cons (x, xs) => let val y = tmpvar_subst (sub, x, sfx) in loop (sub, xs, sfx, list_vt_cons (y, ys)) end // end of [list_cons] | list_nil () => ys // end // end of [loop] // val tmplst2 = loop (sub, tmplst, sfx, list_vt_nil) val tmplst2 = list_vt_reverse (tmplst2) // in list_of_list_vt (tmplst2) end // end of [tmpvarlst_subst] (* ****** ****** *) vtypedef tmpmap = tmpvarmap_vt (tmpvar) (* ****** ****** *) // extern fun primval_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, pmv: primval, sfx: int ) : primval // end of [primval_subst] extern fun primvalist_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, pmvs: primvalist, sfx: int ) : primvalist // end of [primvalist_subst] // extern fun primlab_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, pml: primlab, sfx: int ) : primlab // end of [primlab_subst] extern fun primlablst_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, pmls: primlablst, sfx: int ) : primlablst // end of [primlablst_subst] // extern fun labprimval_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, lpmv: labprimval, sfx: int ) : labprimval // end of [labprimval_subst] extern fun labprimvalist_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, lpmvs: labprimvalist, sfx: int ) : labprimvalist // end of [labprimvalist_subst] // extern fun tmprimval_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, tpmv: tmprimval, sfx: int ) : tmprimval // end of [tmprimval_subst] extern fun tmpmovlst_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, tmvlst: tmpmovlst, sfx: int ) : tmpmovlst // end of [tmpmovlst_subst] // extern fun patckont_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, kont: patckont, sfx: int ) : patckont // end of [patckont_subst] // extern fun primdec_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, pmd: primdec, sfx: int ) : primdec // end of [primdec_subst] extern fun primdeclst_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, pmds: primdeclst, sfx: int ) : primdeclst // end of [primdeclst_subst] // extern fun vbindmap_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, vbmap: vbindmap, sfx: int ) : vbindmap // end of [vbindmap_subst] // (* ****** ****** *) // extern fun instr_subst ( env: !ccompenv, map: !tmpmap, sub: !stasub, ins: instr, sfx: int ) : instr // end of [instr_subst] extern fun instrlst_subst ( env: !ccompenv, map: !tmpmap, sub: !stasub, inss: instrlst, sfx: int ) : instrlst // end of [instrlst_subst] // extern fun ibranchlst_subst ( env: !ccompenv, map: !tmpmap, sub: !stasub, ibrs: ibranchlst, sfx: int ) : ibranchlst // end of [ibranchlst_subst] // (* ****** ****** *) // typedef instrlst0 = ccomp_instrlst_type // extern fun instrlst0_subst ( env: !ccompenv , map: !tmpmap, sub: !stasub, inss: instrlst0, sfx: int ) : instrlst0 // [instrlst0_subst] // (* ****** ****** *) // extern fun primval_lamfix_subst (env: !ccompenv, sub: !stasub, pmv: primval): primval // end of [primval_lamfix_subst] // (* ****** ****** *) extern fun ccompenv_add_fundecsloc_subst ( env: !ccompenv , sub: !stasub, knd: funkind, decarg: s2qualst, hfds: hifundeclst ) : void // end of [ccompenv_add_fundecsloc_subst] (* ****** ****** *) implement d2envlst_subst (sub, d2es) = let in // case+ d2es of | list_cons (d2e, d2es) => let val d2v = d2env_get_var (d2e) val hse = d2env_get_type (d2e) val hse2 = hisexp_subst (sub, hse) val d2e2 = d2env_make (d2v, hse2) val d2es2 = d2envlst_subst (sub, d2es) in list_vt_cons (d2e2, d2es2) end // end of [list_cons] | list_nil () => list_vt_nil () // end // end of [d2envlst_subst] (* ****** ****** *) implement funlab_subst (sub, flab) = flab2 where { // val name = funlab_get_name (flab) val flvl2 = the_d2varlev_get () val hse = funlab_get_type (flab) val hse2 = hisexp_subst (sub, hse) (* val () = fprintln! (stdout_ref, "funlab_subst: hse2 = ", hse2) *) val fc = funlab_get_funclo (flab) val qopt = funlab_get_d2copt (flab) val sopt = funlab_get_d2vopt (flab) val t2mas = funlab_get_tmparg (flab) val stamp = $STMP.funlab_stamp_make () // val flab2 = funlab_make ( name, flvl2, hse2, Some_vt(fc), qopt, sopt, t2mas, stamp ) (* end of [val] *) // val () = funlab_set_origin (flab2, Some (flab)) // } // end of [funlab_subst] (* ****** ****** *) extern fun tmpmap_make (xs: tmpvarlst): tmpmap implement tmpmap_make (xs) = let // fun loop ( xs: tmpvarlst, res: &tmpmap ) : void = let in // case+ xs of | list_cons (x, xs) => let val-Some (xp) = tmpvar_get_origin (x) val _(*replaced*) = tmpvarmap_vt_insert (res, xp, x) in loop (xs, res) end // end of [list_cons] | list_nil () => () // end // end of [loop] // var res : tmpmap = tmpvarmap_vt_nil () val () = loop (xs, res) // in res end // end of [tmpmap_make] (* ****** ****** *) extern fun tmpvar2var (map: !tmpmap, tmp: tmpvar): tmpvar implement tmpvar2var (map, tmp) = let val opt = tmpvarmap_vt_search (map, tmp) in // case+ opt of | ~Some_vt (tmp2) => tmp2 // Some_vt | ~None_vt () => let // val loc = tmpvar_get_loc (tmp) // (* val () = prerr_interror_loc (loc) val () = prerrln! (": tmpvar2var: copy is not found: tmp = ", tmp) *) // val () = prerr_warnccomp_loc (loc) val () = prerrln! ": referencing toplevel code in a template may be problematic." // in tmpvar_copy_err (tmp) end // end of [None_vt] // end // end of [tmpvar2var] (* ****** ****** *) (* extern fun tmpvarlst_reset_alias ( map: !tmpmap, tmplst: tmpvarlst ) : void // end of [tmpvarlst_reset_alias] // implement tmpvarlst_reset_alias (map, tmplst) = let in // case+ tmplst of | list_cons (tmp, tmplst) => let val-Some (tmp0) = tmpvar_get_origin (tmp) val opt = tmpvar_get_alias (tmp0) val () = ( case+ opt of | Some (atmp) => let val atmp2 = tmpvar2var (map, atmp) in tmpvar_set_alias (tmp, Some (atmp2)) end // end of [Some] | None () => () ) : void // end of [val] in tmpvarlst_reset_alias (map, tmplst) end // end of [list_cons] | list_nil () => () // end // end of [tmpvarlst_reset_alias] *) (* ****** ****** *) // extern fun funent_funlablst_update ( env: !ccompenv, fls: funlablst ) : funlablst_vt // end-of-fun // implement funent_funlablst_update (env, fls) = let // (* val () = fprintln! (stdout_ref, "funent_funlablst_update: fls = ", fls) *) // fun aux ( env: !ccompenv, fl: funlab ) : funlab = let // val d2vopt = funlab_get_d2vopt (fl) // in // case+ d2vopt of | Some (d2v) => let (* // val loc = d2var_get_loc(d2v) // val () = println! ("funent_funlablst_update: aux: fl = ", fl) val () = println! ("funent_funlablst_update: aux: d2v = ", d2v) val () = println! ("funent_funlablst_update: aux: d2v.loc = ", loc) *) val pmvopt = ccompenv_find_vbindmapall(env, d2v) // end of [val] in case+ pmvopt of | ~Some_vt(pmv) => ( case+ pmv.primval_node of // case+ | PMVfunlab(fl) => fl | PMVcfunlab(knd, fl) => fl | _ => fl ) (* end of [Some_vt] *) | ~None_vt((*void*)) => fl(*error?*) where { // // HX-2015-09-10: can this actually be happening? // val () = prerr_interror_loc(d2var_get_loc(d2v)) val () = prerr! (": unbound variable [", d2v, "]") val () = prerrln! ( ": appearance is likely during compilation of template instances." ) (* end of [val] *) // } (* end of [None_vt] *) end // end of [Some] | None ((*void*)) => fl(*error?*) // HX-2013-06-28: is this actually possible? // end // end of [aux] // fun auxlst ( env: !ccompenv, fls: funlablst ) : funlablst_vt = let in // case+ fls of | list_nil() => list_vt_nil() | list_cons(fl, fls) => list_vt_cons(aux(env, fl), auxlst(env, fls)) // end of [list_cons] // end // end of [auxlst] // in auxlst(env, fls) end // end of [funent_funlablst_update] (* ****** ****** *) implement funent_subst (env, sub, flab2, fent, sfx) = let // (* val () = ( println! ("funent_subst: flab2 = ", flab2) ) (* end of [val] *) *) // val loc = funent_get_loc(fent) val flab = funent_get_lab(fent) // val imparg = funent_get_imparg(fent) // val tmparg = funent_get_tmparg(fent) val tmparg2 = s2explstlst_subst(sub, tmparg) // val tmpret = funent_get_tmpret(fent) // val vbmap = funent_get_vbindmap(fent) val inss_body = funent_get_instrlst(fent) // val tmplst = funent_get_tmpvarlst(fent) val tmplst2 = tmpvarlst_subst(sub, tmplst, sfx) val tmpmap2 = tmpmap_make(tmplst2) // val tmpret2 = tmpvar2var(tmpmap2, tmpret) // val () = let val opt = funlab_get_d2copt(flab) in // case+ opt of | None() => () | Some(d2c) => ccompenv_add_tmpcstmat(env, TMPCSTMATsome2(d2c, tmparg2, flab2)) // end of [val] // end // end of [val] // val () = let val opt = funlab_get_d2vopt(flab) in // case+ opt of | None () => () | Some (d2v) => ( ccompenv_add_tmpvarmat(env, TMPVARMATsome2(d2v, tmparg2, flab2)) ) (* end of [Some] *) // end // end of [val] // val flvl2 = funlab_get_level(flab2) // val (pfinc | ()) = the_d2varlev_inc() // val d2es = funent_get_d2envlst(fent) val d2es2 = d2envlst_subst(sub, d2es) val () = ccompenv_inc_flabsetenv(env) val () = ccompenv_incwth_dvarsetenv(env, list_vt2t(d2es2)) val ((*freed*)) = list_vt_free(d2es2) // val inss2_body = instrlst_subst(env, tmpmap2, sub, inss_body, sfx) // val fls0_tmp = ccompenv_getdec_flabsetenv(env) val fls0_tmp = funlabset_vt_listize_free(fls0_tmp) val fls0_tmp = ccompenv_addlst_flabsetenv_ifmap(env, flvl2, vbmap, fls0_tmp) // val fls0 = funent_get_flablst(fent) val fls0 = funent_funlablst_update(env, fls0) val fls02 = list_vt_append(fls0, fls0_tmp) // val d2es2 = ccompenv_getdec_dvarsetenv(env) val d2es2 = ccompenv_dvarsetenv_add_tempenver(env, d2es2) val d2es2(*d2env-list*) = d2envset_vt_listize_free(d2es2) // val () = the_d2varlev_dec (pfinc | (*void*)) // val vbmap2 = vbindmap_subst (env, tmpmap2, sub, vbmap, sfx) // val () = tmpvarmap_vt_free (tmpmap2) // (* val out = stdout_ref typedef flab = funlab val () = fprintln! (out, "funent_subst: flab2 = ", flab2) val () = fprintln! (out, "funent_subst: flvl2 = ", flvl2) val () = fprintln! (out, "funent_subst: fls02 = ", $UN.linlst2lst{flab}(fls02)) val () = fprintln! (out, "funent_subst: d2es2 = ", $UN.linlst2lst{d2env}(d2es2)) val () = fprintln! (out, "funent_subst: vbmap2 = ", vbmap2) *) // val fent2 = funent_make ( loc, flab2 , imparg, tmparg, None(*tmpsub*), tmpret2 , (l2l)fls02, (l2l)d2es2, vbmap2, inss2_body, tmplst2 ) (* end of [val] *) // in fent2 end // end of [funent_subst] (* ****** ****** *) implement primval_subst ( env, map, sub, pmv0, sfx ) = let // (* val () = println! ("primval_subst: pmv0 = ", pmv0) *) // val loc0 = pmv0.primval_loc val hse0 = pmv0.primval_type val hse0 = hisexp_subst(sub, hse0) // macdef ftmp(x) = tmpvar2var(map, ,(x)) // macdef fpmv(x) = primval_subst(env, map, sub, ,(x), sfx) macdef fpmvlst(xs) = primvalist_subst(env, map, sub, ,(xs), sfx) // macdef fpml(x) = primlab_subst(env, map, sub, ,(x), sfx) macdef fpmlist(x) = primlablst_subst(env, map, sub, ,(x), sfx) // in // case+ pmv0.primval_node of // | PMVtmp(tmp) => let val tmp = ftmp(tmp) in primval_tmp(loc0, hse0, tmp) end // end of [PMVtmp] | PMVtmpref(tmp) => let val tmp = ftmp(tmp) in primval_tmpref(loc0, hse0, tmp) end // end of [PMVtmpref] // | PMVarg(n) => primval_arg (loc0, hse0, n) | PMVargref(n) => primval_argref (loc0, hse0, n) | PMVargenv(n) => primval_argenv (loc0, hse0, n) // | PMVtop() => primval_top (loc0, hse0) | PMVempty() => primval_empty (loc0, hse0) // | PMVextval (name) => primval_extval (loc0, hse0, name) // | PMVcastfn (d2c, pmv) => let val pmv = fpmv (pmv) in primval_castfn (loc0, hse0, d2c, pmv) end // end of [PMVcastfn] // | PMVtyrep(hse) => let val hse_sub = hisexp_subst (sub, hse) // end of [val] in primval_tyrep (loc0, hse0, hse_sub) end // end of [PMVtyrep] // | PMVsizeof(hse) => let val hse_sub = hisexp_subst (sub, hse) // end of [val] in primval_sizeof (loc0, hse0, hse_sub) end // end of [PMVsizeof] // | PMVselcon ( pmv, hse_sum, lab ) => let val pmv = fpmv (pmv) val hse_sum = hisexp_subst (sub, hse_sum) in primval_selcon (loc0, hse0, pmv, hse_sum, lab) end // end of [PMVselcon] // | PMVselect ( pmv, hse_rt, pml ) => let val pmv = fpmv(pmv) val hse_rt = hisexp_subst (sub, hse_rt) val pml = fpml(pml) in primval_select(loc0, hse0, pmv, hse_rt, pml) end // end of [PMVselect] | PMVselect2 ( pmv, hse_rt, pmls ) => let val pmv = fpmv(pmv) val hse_rt = hisexp_subst (sub, hse_rt) val pmls = fpmlist (pmls) in primval_select2(loc0, hse0, pmv, hse_rt, pmls) end // end of [PMVselect2] // | PMVselptr ( pmv, hse_rt, pmls ) => let val pmv = fpmv(pmv) val hse_rt = hisexp_subst (sub, hse_rt) val pmls = fpmlist(pmls) in primval_selptr(loc0, hse0, pmv, hse_rt, pmls) end // end of [PMVselptr] // | PMVptrof (pmv) => let val pmv = fpmv(pmv) in primval_ptrof(loc0, hse0, pmv) end // end of [PMVptrof] | PMVptrofsel ( pmv, hse_rt, pmls ) => let val pmv = fpmv(pmv) val hse_rt = hisexp_subst(sub, hse_rt) val pmls = fpmlist(pmls) in primval_ptrofsel(loc0, hse0, pmv, hse_rt, pmls) end // end of [PMVptrof] // | PMVrefarg ( knd, freeknd, pmv ) => let val pmv = fpmv (pmv) in primval_refarg (loc0, hse0, knd, freeknd, pmv) end // of [PMVrefarg] // | PMVfunlab (flab) => primval_funlab(loc0, hse0, flab) | PMVcfunlab (knd, flab) => primval_cfunlab(loc0, hse0, knd, flab) // | PMVd2vfunlab (d2v, flab) => let val opt = ccompenv_find_vbindmapall(env, d2v) in case+ opt of | ~Some_vt(pmv_flab) => pmv_flab | ~None_vt((*void*)) => primval_d2vfunlab(loc0, hse0, d2v, flab) end // end of [PMVd2vfunlab] // | PMVlamfix _ => primval_lamfix_subst(env, sub, pmv0) // | PMVtmpltcst (d2c, t2mas) => let (* val out = stdout_ref val () = fprintln! (out, "primval_subst: d2c = ", d2c) val () = fprintln! (out, "primval_subst: t2mas = <", t2mas, ">") *) val trd = ccompenv_get_tmprecdepth (env) val mtrd = $GLOB.the_CCOMPENV_maxtmprecdepth_get () in if trd < mtrd then let val t2mas = t2mpmarglst_subst (loc0, sub, t2mas) val tmpmat = ccompenv_tmpcst_match (env, d2c, t2mas) in ccomp_tmpcstmat (env, loc0, hse0, d2c, t2mas, tmpmat) end else pmv0 // HX-2013-01: maximal tmprecdepth has been reached! // end of [if] end // end of [PMVtmpltcst] // | PMVtmpltvar (d2v, t2mas) => let val trd = ccompenv_get_tmprecdepth (env) val mtrd = $GLOB.the_CCOMPENV_maxtmprecdepth_get () in if trd < mtrd then let val t2mas = t2mpmarglst_subst (loc0, sub, t2mas) val tmpmat = ccompenv_tmpvar_match (env, d2v, t2mas) in ccomp_tmpvarmat (env, loc0, hse0, d2v, t2mas, tmpmat) end else pmv0 // HX-2013-01: maximal tmprecdepth is reached! // end of [if] end // end of [PMVtmpltvar] // (* | PMVtempenver (d2vs) => pmv0 where { val () = fprintln! ( stdout_ref , "primval_subst: PMVtempenver: d2vs = ", d2vs ) (* end of [println!] *) } (* end of [PMVtempenver] *) *) // | _ (* rest-of-primval *) => pmv0 // end // end of [primval_subst] (* ****** ****** *) implement primvalist_subst ( env, map, sub, pmvs, sfx ) = let in // case+ pmvs of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (pmv, pmvs) => let val pmv = primval_subst (env, map, sub, pmv, sfx) val pmvs = primvalist_subst (env, map, sub, pmvs, sfx) in list_cons (pmv, pmvs) end // end of [list_cons] // end // end of [primvalist_subst] (* ****** ****** *) implement primlab_subst ( env, map, sub, pml0, sfx ) = let in // case+ pml0.primlab_node of | PMLlab (lab) => pml0 | PMLind (pmvs) => let val loc0 = pml0.primlab_loc val pmvs = primvalist_subst (env, map, sub, pmvs, sfx) // end of [val] in primlab_ind (loc0, pmvs) end (* end of [PMVind] *) // end (* end of [primlab_subst] *) (* ****** ****** *) implement primlablst_subst ( env, map, sub, pmls, sfx ) = let in // case+ pmls of | list_cons (pml, pmls) => let val pml = primlab_subst (env, map, sub, pml, sfx) val pmls = primlablst_subst (env, map, sub, pmls, sfx) in list_cons (pml, pmls) end // end of [list_cons] | list_nil () => list_nil () // end // end of [primlablst_subst] (* ****** ****** *) implement labprimval_subst ( env, map, sub, lpmv, sfx ) = let // val LABPRIMVAL (lab, pmv) = lpmv val pmv = primval_subst (env, map, sub, pmv, sfx) // in LABPRIMVAL (lab, pmv) end // end of [labprimval_subst] (* ****** ****** *) implement labprimvalist_subst ( env, map, sub, lpmvs, sfx ) = let in // case+ lpmvs of | list_cons (lpmv, lpmvs) => let val lpmv = labprimval_subst (env, map, sub, lpmv, sfx) val lpmvs = labprimvalist_subst (env, map, sub, lpmvs, sfx) in list_cons (lpmv, lpmvs) end // end of [list_cons] | list_nil () => list_nil () // end // end of [primvalist_subst] (* ****** ****** *) implement tmprimval_subst ( env, map, sub, tpmv, sfx ) = let // macdef ftmp (x) = tmpvar2var (map, ,(x)) macdef fpmv (x) = primval_subst (env, map, sub, ,(x), sfx) // in // case+ tpmv of | TPMVnone (pmv) => TPMVnone (fpmv(pmv)) | TPMVsome (tmp, pmv) => TPMVsome (ftmp(tmp), fpmv(pmv)) // end // end of [tmprimval_subst] (* ****** ****** *) implement tmpmovlst_subst ( env, map, sub, tmvs, sfx ) = let // macdef ftmp (x) = tmpvar2var (map, ,(x)) macdef ftpmv (x) = tmprimval_subst (env, map, sub, ,(x), sfx) in // case+ tmvs of | list_nil () => list_nil () | list_cons (tmv, tmvs) => let val tmv = (ftpmv(tmv.0), ftmp(tmv.1)) val tmvs = tmpmovlst_subst (env, map, sub, tmvs, sfx) in list_cons (tmv, tmvs) end // end of [list_cons] // end // end of [tmpmovlst_subst] (* ****** ****** *) implement patckont_subst ( env, map, sub, kont, sfx ) = let // macdef ftmp (x) = tmpvar2var (map, ,(x)) macdef fpmv (x) = primval_subst (env, map, sub, ,(x), sfx) macdef ftmvlst (xs) = tmpmovlst_subst (env, map, sub, ,(xs), sfx) // in // case+ kont of (* | PTCKNTnone of () | PTCKNTtmplab of tmplab | PTCKNTtmplabint of (tmplab, int) *) | PTCKNTtmplabmov (tl, xs) => PTCKNTtmplabmov (tl, ftmvlst (xs)) (* | PTCKNTcaseof_fail of (location) | PTCKNTfunarg_fail of (location, funlab) *) | PTCKNTraise (tmp, pmv) => PTCKNTraise (ftmp(tmp), fpmv(pmv)) | _ => kont // end // end of [patckont_subst] (* ****** ****** *) implement primdec_subst ( env, map, sub, pmd0, sfx ) = let // val loc0 = pmd0.primdec_loc // in // case+ pmd0.primdec_node of (* case+ *) // | PMDnone () => pmd0 // | PMDlist (pmds) => let val pmds = primdeclst_subst (env, map, sub, pmds, sfx) // end of [val] in primdec_list (loc0, pmds) end // end of [PMDlist] // | PMDsaspdec _ => pmd0 // | PMDextvar (name, inss) => let val inss = instrlst0_subst (env, map, sub, inss, sfx) // end of [val] in primdec_extvar (loc0, name, inss) end // end of [PMDextvar] // | PMDdatdecs _ => pmd0 | PMDexndecs _ => pmd0 // | PMDimpdec (imp) => let val () = ccompenv_add_impdecloc(env, sub, imp) in pmd0 // end of [val] end // end of [PMDimpdec] // | PMDfundecs (knd, decarg, hfds) => let val () = ccompenv_add_fundecsloc (env, sub, knd, decarg, hfds) // end of [val] val () = ccompenv_add_fundecsloc_subst (env, sub, knd, decarg, hfds) // end of [val] in pmd0 end // end of [PMDfundecs] // | PMDvaldecs (knd, hvds, inss) => let val inss = instrlst0_subst (env, map, sub, inss, sfx) // end of [val] in primdec_valdecs(loc0, knd, hvds, inss) end // end of [PMDvaldecs] | PMDvaldecs_rec (knd, hvds, inss) => let val inss = instrlst0_subst (env, map, sub, inss, sfx) // end of [val] in primdec_valdecs_rec(loc0, knd, hvds, inss) end // end of [PMDvaldecs_rec] // | PMDvardecs (hvds, inss) => let val inss = instrlst0_subst (env, map, sub, inss, sfx) // end of [val] in primdec_vardecs(loc0, hvds, inss) end // end of [PMDvardecs] // | PMDinclude (stadyn, pmds) => let val pmds = primdeclst_subst (env, map, sub, pmds, sfx) // end of [val] in primdec_include(loc0, stadyn, pmds) end // end of [PMDinclude] // | PMDstaload (hid) => pmd0 where { val-HIDstaload (_, _, _, fenv, loaded) = hid.hidecl_node val ((*void*)) = ccompenv_add_staload(env, fenv) } (* end of [PMDstaload] *) // | PMDstaloadloc ( pfil, nspace, pmds ) => pmd0 (*sanctuary*) // | PMDdynload(hid) => pmd0 // | PMDlocal ( pmds_head, pmds_body ) => let val (pf | ()) = ccompenv_push(env) val pmds_head = primdeclst_subst (env, map, sub, pmds_head, sfx) // end of [val] val (pf2 | ()) = ccompenv_push (env) val pmds_body = primdeclst_subst (env, map, sub, pmds_body, sfx) // end of [val] val ((*void*)) = ccompenv_localjoin(pf, pf2 | env) // end of [val] in primdec_local(loc0, pmds_head, pmds_body) end // end of [PMDlocal] // end // end of [primdec_subst] (* ****** ****** *) implement primdeclst_subst ( env, map, sub, pmds, sfx ) = let in // case+ pmds of | list_nil() => list_nil() | list_cons(pmd, pmds) => let val pmd = primdec_subst(env, map, sub, pmd, sfx) val pmds = primdeclst_subst(env, map, sub, pmds, sfx) in list_cons(pmd, pmds) end // end of [list_cons] // end // end of [primdeclst_subst] (* ****** ****** *) local vtypedef vbindlst_vt = List_vt @(d2var, primval) fun auxlst ( env: !ccompenv , map: !tmpmap, sub: !stasub, vbs: vbindlst_vt, sfx: int , res: &vbindmap ) : void = let in // case+ vbs of | ~list_vt_cons (vb, vbs) => let val pmv2 = primval_subst (env, map, sub, vb.1, sfx) val _(*replaced*) = d2varmap_insert (res, vb.0, pmv2) in auxlst (env, map, sub, vbs, sfx, res) end // end of [list_vt_cons] | ~list_vt_nil () => () // end (* end of [auxlst] *) in (* in of [local] *) implement vbindmap_subst ( env, map, sub, vbmap, sfx ) = res where { // var res: vbindmap = d2varmap_nil () val vblst = d2varmap_listize (vbmap) val () = auxlst (env, map, sub, vblst, sfx, res) // } // end of [vbindmap_subst] end (* end of [local] *) (* ****** ****** *) implement instr_subst ( env, map, sub, ins0, sfx ) = let // (* val () = println! ("instr_subst: ins0 = ", ins0) *) // val loc0 = ins0.instr_loc // macdef ftmp(x) = tmpvar2var(map, ,(x)) macdef fpmv(x) = primval_subst(env, map, sub, ,(x), sfx) macdef flabpmv(lx) = labprimval_subst(env, map, sub, ,(lx), sfx) macdef fpmvlst(xs) = primvalist_subst(env, map, sub, ,(xs), sfx) macdef flabpmvlst(lxs) = labprimvalist_subst(env, map, sub, ,(lxs), sfx) // macdef fkont(x) = patckont_subst(env, map, sub, ,(x), sfx) // macdef fpmd(x) = primdec_subst(env, map, sub, ,(x), sfx) macdef fpmdlst(xs) = primdeclst_subst(env, map, sub, ,(xs), sfx) // macdef finstrlst(inss) = instrlst_subst(env, map, sub, ,(inss), sfx) macdef fibranchlst(inss) = ibranchlst_subst(env, map, sub, ,(inss), sfx) // in (* in-of-let *) // case+ ins0.instr_node of (* case+ *) // | INSfunlab _ => ins0 | INStmplab _ => ins0 // | INScomment _ => ins0 // | INSmove_val (tmp, pmv) => let val tmp = ftmp(tmp) val pmv = fpmv(pmv) in instr_move_val(loc0, tmp, pmv) end // end of [INSmove_val] // | INSpmove_val (tmp, pmv) => let val tmp = ftmp(tmp) val pmv = fpmv(pmv) in instr_pmove_val(loc0, tmp, pmv) end // end of [INSpmove_val] // | INSmove_arg_val (narg, pmv) => let val pmv = fpmv(pmv) in instr_move_arg_val(loc0, narg, pmv) end // end of [INSmove_arg_val] // | INSfcall (tmp, _fun, hse, _arg) => let val tmp = ftmp(tmp) val _fun = fpmv(_fun) val hse = hisexp_subst (sub, hse) val _arg = fpmvlst(_arg) in instr_fcall(loc0, tmp, _fun, hse, _arg) end // end of [INSfcall] // | INSfcall2 (tmp, flab, ntl, hse, _arg) => let val tmp = ftmp(tmp) val () = tmpvar_inc_tailcal(tmp) // end of [val] val hse = hisexp_subst(sub, hse) val _arg = fpmvlst(_arg) in instr_fcall2(loc0, tmp, flab, ntl, hse, _arg) end // end of [INSfcall2] // | INSextfcall (tmp, _fun, _arg) => let val tmp = ftmp(tmp) val _arg = fpmvlst(_arg) in instr_extfcall(loc0, tmp, _fun, _arg) end // end of [INSextfcall] // | INSextmcall (tmp, _obj, _mtd, _arg) => let val tmp = ftmp(tmp) val _obj = fpmv(_obj) val _arg = fpmvlst(_arg) in instr_extmcall(loc0, tmp, _obj, _mtd, _arg) end // end of [INSextmcall] // | INScond ( pmv, _then, _else ) => let val pmv = fpmv(pmv) val _then = finstrlst(_then) val _else = finstrlst(_else) in instr_cond(loc0, pmv, _then, _else) end // end of [INScond] // | INSfreecon(pmv) => let val pmv = fpmv(pmv) in instr_freecon(loc0, pmv) end // end of [INSfreecon] // | INSloop ( tlab_init, tlab_fini, tlab_cont , inss_init, pmv_test, inss_test, inss_post, inss_body ) => let val inss_init = finstrlst (inss_init) val pmv_test = fpmv (pmv_test) val inss_test = finstrlst (inss_test) val inss_post = finstrlst (inss_post) val inss_body = finstrlst (inss_body) in instr_loop ( loc0, tlab_init, tlab_fini, tlab_cont , inss_init, pmv_test, inss_test, inss_post, inss_body ) // endfun end | INSloopexn _ => ins0 // | INScaseof (ibrs) => let val ibrs = fibranchlst (ibrs) in instr_caseof (loc0, ibrs) end // end of [INScaseof] // | INSletpop () => let prval pfpush = __assert () where { extern praxi __assert : () - ccompenv_push_v } // end of [prval] val () = ccompenv_pop (pfpush | env) in ins0 end // end of [INSletpop] // | INSletpush (pmds) => let val (pfpush | ()) = ccompenv_push (env) prval () = __assert (pfpush) where { extern praxi __assert : (ccompenv_push_v) - void } // end of [prval] val pmds = fpmdlst (pmds) in instr_letpush (loc0, pmds) end // end of [INSletpush] // | INSmove_con ( tmp, d2c, hse_sum, lpmvs ) => let val tmp = ftmp (tmp) val hse_sum = hisexp_subst (sub, hse_sum) val lpmvs = flabpmvlst (lpmvs) in instr_move_con (loc0, tmp, d2c, hse_sum, lpmvs) end // end of [INSmove_con] // | INSmove_ref (tmp, pmv) => let val tmp = ftmp (tmp) val pmv = fpmv (pmv) in instr_move_ref (loc0, tmp, pmv) end // end of [INSmove_ref] // | INSmove_boxrec ( tmp, lpmvs, hse_rec ) => let val tmp = ftmp (tmp) val hse_rec = hisexp_subst (sub, hse_rec) val lpmvs = flabpmvlst (lpmvs) in instr_move_boxrec (loc0, tmp, lpmvs, hse_rec) end // end of [INSmove_boxrec] | INSmove_fltrec ( tmp, lpmvs, hse_rec ) => let val tmp = ftmp (tmp) val hse_rec = hisexp_subst (sub, hse_rec) val lpmvs = flabpmvlst (lpmvs) in instr_move_fltrec (loc0, tmp, lpmvs, hse_rec) end // end of [INSmove_fltrec] // | INSpatck ( pmv, pck, kont ) => let val pmv = fpmv (pmv) val kont = fkont (kont) in instr_patck (loc0, pmv, pck, kont) end // end of [INSpatck] // (* | INSmove_ptrofsel of (tmpvar, primval, hisexp(*tyroot*), primlablst) // end of [INSmove_ptrofsel] *) | INSmove_ptrofsel ( tmp, pmv, hse_rt, pmls ) => let val tmp = ftmp (tmp) val pmv = fpmv (pmv) val hse_rt = hisexp_subst (sub, hse_rt) in instr_move_ptrofsel(loc0, tmp, pmv, hse_rt, pmls) end // end of [INSmove_ptrofsel] // (* | INSload_varofs (tmp, pmv, hse_rt, pmls) => let val tmp = ftmp (tmp) val pmv = fpmv (pmv) val hse_rt = hisexp_subst (sub, hse_rt) in instr_load_varofs (loc0, tmp, pmv, hse_rt, pmls) end // end of [INSload_varofs] | INSload_ptrofs (tmp, pmv, hse_rt, pmls) => let val tmp = ftmp (tmp) val pmv = fpmv (pmv) val hse_rt = hisexp_subst (sub, hse_rt) in instr_load_ptrofs (loc0, tmp, pmv, hse_rt, pmls) end // end of [INSload_ptrofs] *) // | INSstore_ptrofs ( pmv_l, hse_rt, pmls, pmv_r ) => let val pmv_l = fpmv (pmv_l) val hse_rt = hisexp_subst (sub, hse_rt) val pmv_r = fpmv (pmv_r) in instr_store_ptrofs (loc0, pmv_l, hse_rt, pmls, pmv_r) end // end of [INSstore_ptrofs] // | INSxstore_ptrofs ( tmp, pmv_l, hse_rt, pmls, pmv_r ) => let val tmp = ftmp (tmp) val pmv_l = fpmv (pmv_l) val hse_rt = hisexp_subst (sub, hse_rt) val pmv_r = fpmv (pmv_r) in instr_xstore_ptrofs (loc0, tmp, pmv_l, hse_rt, pmls, pmv_r) end // end of [INSxstore_ptrofs] // | INSmove_delay ( tmp, lin, hse, pmv_thunk ) => let val tmp = ftmp (tmp) val hse = hisexp_subst (sub, hse) val pmv_thunk = fpmv (pmv_thunk) in instr_move_delay (loc0, tmp, lin, hse, pmv_thunk) end // end of [INSmove_delay] | INSmove_lazyeval ( tmp, lin, hse, pmv_lazyval ) => let val tmp = ftmp (tmp) val hse = hisexp_subst (sub, hse) val pmv_lazyval = fpmv (pmv_lazyval) in instr_move_lazyeval (loc0, tmp, lin, hse, pmv_lazyval) end // end of [INSmove_lazyeval] // | INSraise (tmp, pmv_exn) => let val tmp = ftmp (tmp) val pmv_exn = fpmv (pmv_exn) in instr_raise (loc0, tmp, pmv_exn) end // end of [INSraise] // | INStrywith ( tmpexn, inss_try, ibrs_with ) => let val tmpexn = ftmp (tmpexn) val inss_try = finstrlst (inss_try) val ibrs_with = fibranchlst (ibrs_with) in instr_trywith (loc0, tmpexn, inss_try, ibrs_with) end // end of [INStrywith] // | INSmove_list_nil (tmp) => let val tmp = ftmp(tmp) in instr_move_list_nil (loc0, tmp) end // end of [INSmove_list_nil] // | INSpmove_list_nil (tmp) => let val tmp = ftmp (tmp) in instr_pmove_list_nil (loc0, tmp) end // end of [INSpmove_list_nil] | INSpmove_list_cons (tmp, hse) => let val tmp = ftmp (tmp) val hse = hisexp_subst (sub, hse) in instr_pmove_list_cons (loc0, tmp, hse) end // end of [INSpmove_list_cons] // | INSmove_list_phead (tmp_hd, tmp_tl, hse) => let val tmp_hd = ftmp (tmp_hd) val tmp_tl = ftmp (tmp_tl) val hse = hisexp_subst (sub, hse) in instr_move_list_phead (loc0, tmp_hd, tmp_tl, hse) end // end of [INSmove_list_phead] | INSmove_list_ptail (tmp_new, tmp_old, hse) => let val tmp_new = ftmp(tmp_new) val tmp_old = ftmp(tmp_old) val hse = hisexp_subst(sub, hse) in instr_move_list_ptail(loc0, tmp_new, tmp_old, hse) end // end of [INSmove_list_ptail] // | INSmove_arrpsz_ptr (tmp1, tmp2) => let val tmp1 = ftmp (tmp1) val tmp2 = ftmp (tmp2) in instr_move_arrpsz_ptr (loc0, tmp1, tmp2) end // end of [INSmove_arrpsz_ptr] // | INSstore_arrpsz_asz (tmp, asz) => let val tmp = ftmp(tmp) in instr_store_arrpsz_asz(loc0, tmp, asz) end // end of [INSstore_arrpsz_asz] // | INSstore_arrpsz_ptr ( tmp, hse_elt, asz ) => let val tmp = ftmp(tmp) val hse_elt = hisexp_subst(sub, hse_elt) // end of [val] in instr_store_arrpsz_ptr(loc0, tmp, hse_elt, asz) end // end of [INSstore_arrpsz_ptr] // | INSupdate_ptrinc (tmp, hse_elt) => let val tmp = ftmp(tmp) val hse_elt = hisexp_subst(sub, hse_elt) in instr_update_ptrinc(loc0, tmp, hse_elt) end // end of [INSupdate_ptrinc] | INSupdate_ptrdec (tmp, hse_elt) => let val tmp = ftmp(tmp) val hse_elt = hisexp_subst(sub, hse_elt) in instr_update_ptrdec(loc0, tmp, hse_elt) end // end of [INSupdate_ptrdec] // | INSclosure_initize (tmpret, knd, flab) => let // val sfx = funlab_incget_ncopy(flab) // val flab2 = funlab_subst(sub, flab) val () = funlab_set_suffix(flab2, sfx) // val () = the_funlablst_add(flab2) val () = ccompenv_add_flabsetenv(env, flab2) // val pmv_fun = primval_make_funlab(loc0, flab2) val () = ( case+ knd of | None() => () | Some(d2v) => ccompenv_add_vbindmapenvall(env, d2v, pmv_fun) ) : void // end of [val] // val-Some(fent) = funlab_get_funent(flab) // val fent2 = funent_subst(env, sub, flab2, fent, sfx) val ((*void*)) = funlab_set_funent(flab2, Some(fent2)) // val tmpret2 = ftmp(tmpret) typedef funlab = hisexp_funlab_type val ((*void*)) = tmpvar_set_tyclo(tmpret2, $UN.cast{funlab}(flab2)) // in instr_closure_initize(loc0, tmpret2, knd, flab2) end // end of [INSclosure_initize] // | INStmpdec _ => ins0 // | INSextvar(name, pmv) => instr_extvar(loc0, name, fpmv(pmv)) | INSdcstdef(d2c0, pmv) => instr_dcstdef(loc0, d2c0, fpmv(pmv)) // | INStempenver(d2vs) => ins0 where { // val () = ccompenv_add_tempenver(env, d2vs) // (* val () = fprintln! (stdout_ref, "instr_subst: INStempenver: d2vs = ", d2vs) // end of [val] *) // } (* end of [INStempenver] *) // end // end of [instr_subst] (* ****** ****** *) implement instrlst_subst (env, map, sub, inss, sfx) = let // fun loop ( env: !ccompenv , map: !tmpmap , sub: !stasub , inss: instrlst , sfx: int , res: &instrlst? >> instrlst ) : void = let in // case+ inss of | list_cons (ins, inss) => let val ins = instr_subst (env, map, sub, ins, sfx) // end of [val] val () = res := list_cons {instr}{0} (ins, ?) val list_cons (_, !p_res1) = res val () = loop (env, map, sub, inss, sfx, !p_res1) prval () = fold@ (res) in // nothing end // end of [list_cons] | list_nil () => (res := list_nil ()) // end // end of [loop] // var res: instrlst? val () = loop (env, map, sub, inss, sfx, res) // in res end // end of [instrlst_subst] (* ****** ****** *) implement ibranchlst_subst (env, map, sub, ibrs, sfx) = let in // case+ ibrs of | list_cons (ibr, ibrs) => let val loc = ibr.ibranch_loc val inss = ibr.ibranch_inslst val inss = instrlst_subst (env, map, sub, inss, sfx) val ibr = ibranch_make (loc, inss) val ibrs = ibranchlst_subst (env, map, sub, ibrs, sfx) in list_cons (ibr, ibrs) end // end of [list_cons] | list_nil () => list_nil () // end (* end of [ibranchlst_subst] *) (* ****** ****** *) implement instrlst0_subst (env, map, sub, inss, sfx) = let val inss = $UN.cast{instrlst} (inss) val inss = instrlst_subst (env, map, sub, inss, sfx) in $UN.cast{instrlst0} (inss) end // end of [instrlst0_subst] (* ****** ****** *) implement primval_lamfix_subst (env, sub, pmv0) = let // val- PMVlamfix ( knd, pmv ) = pmv0.primval_node // val loc = pmv.primval_loc val hse = pmv.primval_type // val fl = ( // case- pmv.primval_node of (* case+ *) | PMVfunlab(fl) => fl | PMVcfunlab(knd, fl) => fl | PMVd2vfunlab(d2v, fl) => fl // ) : funlab // end of [val] // val sfx = funlab_incget_ncopy(fl) // val flab2 = funlab_subst(sub, fl) val ((*void*)) = funlab_set_suffix(flab2, sfx) // val ((*void*)) = the_funlablst_add(flab2) val ((*void*)) = ccompenv_add_flabsetenv(env, flab2) // val pmv_fun = primval_make_funlab(loc, flab2) // val () = ( case+ knd of | None() => () | Some(d2v) => ccompenv_add_vbindmapenvall(env, d2v, pmv_fun) ) : void // end of [val] // val-Some(fent) = funlab_get_funent(fl) // val fent2 = funent_subst(env, sub, flab2, fent, sfx) val ((*void*)) = funlab_set_funent(flab2, Some(fent2)) // in primval_lamfix(knd, pmv_fun) end // end of [primval_lamfix_subst] (* ****** ****** *) local fun auxinit{n:nat} ( env: !ccompenv , sub: !stasub, hfds: list(hifundec, n), i: int ) : list (funlab, n) = let in // case+ hfds of | list_cons (hfd, hfds) => let // val-Some(fl) = hifundec_get_funlabopt(hfd) // end of [val] // val sfx = funlab_incget_ncopy(fl) // val flab2 = funlab_subst(sub, fl) val ((*void*)) = funlab_set_suffix(flab2, sfx) // // HX: only the first fnx-decl is added! // val () = ( if i <= 1 then the_funlablst_add(flab2) ) (* end of [val] *) // val () = ccompenv_add_flabsetenv(env, flab2) // val loc = hfd.hifundec_loc val d2v = hfd.hifundec_var val pmv = primval_make_funlab(loc, flab2) // val () = ccompenv_add_vbindmapenvall(env, d2v, pmv) // val i2 = (if i >= 1 then i+1 else i): int in list_cons (flab2, auxinit (env, sub, hfds, i2)) end (* end of [list_cons] *) | list_nil ((*void*)) => list_nil () // end // end of [auxinit] fun auxmain{n:nat} ( env: !ccompenv, sub: !stasub , hfds: list (hifundec, n), fls2: list (funlab, n) ) : void = let in // case+ hfds of | list_cons (hfd, hfds) => let val+list_cons (fl2, fls2) = fls2 val-Some (fl) = funlab_get_origin (fl2) val-Some (fent) = funlab_get_funent (fl) val sfx = funlab_get_suffix (fl2) val fent2 = funent_subst (env, sub, fl2, fent, sfx) val () = funlab_set_funent (fl2, Some (fent2)) in auxmain (env, sub, hfds, fls2) end // end of [list_cons] | list_nil () => let val+list_nil () = fls2 in (*nothing*) end // end of [list_nil] // end // end of [auxmain] fun auxfnxset ( fls: funlablst ) : void = let // val- list_cons (fl0, _) = fls // val- Some(fent0) = funlab_get_funent(fl0) // val ((*void*)) = funent_set_fnxlablst(fent0, fls) // fun fwork ( fl: funlab ) : void = let val-Some(fent) = funlab_get_funent(fl) in tmpvar_inc_tailcal(funent_get_tmpret(fent)) end // end of [fwork] // val ((*void*)) = list_foreach_fun(fls, fwork) // in // nothing end // end of [auxfnxset] in (* in of [local] *) implement ccompenv_add_fundecsloc_subst (env, sub, knd, decarg, hfds) = let in // case+ decarg of | list_cons _ => () | list_nil () => let // val tlcalopt = $GLOB.the_CCOMPATS_tlcalopt_get() val isfnx = ( if tlcalopt > 0 then funkind_is_mutailrec(knd) else false ) : bool // end of [val] // val i0 = (if isfnx then 1 else 0): int val fls = auxinit (env, sub, hfds, i0) val ((*void*)) = auxmain (env, sub, hfds, fls) val ((*void*)) = if isfnx then auxfnxset (fls) in // nothing end // end of [list_nil] // end // end of [ccompenv_add_fundecsloc_subst] end // end of [local] (* ****** ****** *) (* end of [pats_ccomp_subst.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_depgen.sats0000644000175000017500000000337513431250607020646 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: August, 2012 // (* ****** ****** *) staload SYN = "./pats_syntax.sats" (* ****** ****** *) fun depgen_eval (d0cs: $SYN.d0eclist): List_vt (string) // end of [depgen_eval] (* ****** ****** *) fun fprint_target (out: FILEref, given: string): void (* ****** ****** *) fun fprint_entlst (out: FILEref, given: string, xs: List_vt (string)): void // end of [fprint_entlst] (* ****** ****** *) (* end of [pats_depgen.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_error.sats0000644000175000017500000000404313431250607020526 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) exception FatalErrorExn of () exception FatalErrorExn_interr of () (* ****** ****** *) // // HX: // raising FatalErrorException // fun abort{a:viewt@ype}(): (a) // (* ****** ****** *) // // HX-2015-01-04: // raising FatalErrorException_interr // fun abort_interr{a:viewt@ype}(): (a) // (* ****** ****** *) // exception PATSOPT_FILENONE_EXN of (string) // (* ****** ****** *) // exception PATSOPT_FIXITY_EXN of () // (* ****** ****** *) // exception PATSOPT_TRANS1_EXN of () exception PATSOPT_TRANS2_EXN of () exception PATSOPT_TRANS3_EXN of () exception PATSOPT_TRANS4_EXN of () (* exception PATSOPT_TYPERASE_EXN of () *) // (* ****** ****** *) (* end of [pats_error.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_deref.dats0000644000175000017500000002121713431250607021737 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload LAB = "./pats_label.sats" macdef prerr_label = $LAB.prerr_label // overload = with $LAB.eq_label_label // (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_deref" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) local fun auxerr_pfobj ( loc0: loc_t, s2l: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": dereference cannot be performed" val () = prerr ": the proof search for view located at [" val () = prerr_s2exp (s2l) val () = prerr "] failed to turn up a result." val () = prerr_newline () in the_trans3errlst_add (T3E_pfobj_search_none (loc0, s2l)) end // end of [auxerr_pfobj] fun auxmain .<>. ( loc0: loc_t , pfobj: pfobj , d3ls: d3lablst , s2rt: &s2exp? >> s2exp ) : s2exp = let val+ ~PFOBJ ( d2vw , s2e_ctx, s2e_elt, s2l ) = pfobj val () = s2rt := s2e_elt // var linrest: int = 0 and sharing: int = 0 val (s2e_sel, s2ps) = s2exp_get_dlablst_linrest_sharing (loc0, s2e_elt, d3ls, linrest, sharing) // end of [val] // val s2e_sel = s2exp_hnfize (s2e_sel) val () = trans3_env_add_proplst_vt (loc0, s2ps) val islin = s2exp_is_lin (s2e_sel) in // if islin then let val s2t_elt = s2e_elt.s2exp_srt var ctxtopt: s2ctxtopt = None(*void*) val s2e_sel = s2exp_get_dlablst_context (loc0, s2e_elt, d3ls, ctxtopt) // end of [val] val isctx = ( case+ ctxtopt of Some _ => true | None _ => false ) : bool // end of [val] val () = if ~isctx then { val () = prerr_error3_loc (loc0) val () = prerr ": the linear component cannot taken out." val () = prerr_newline () val () = the_trans3errlst_add (T3E_s2addr_deref_context(loc0, s2e_elt, d3ls)) } // end of [val] // val () = d2var_inc_linval (d2vw) val () = let val s2e_sel = s2exp_topize (1, s2e_sel) val s2e_elt = ( case+ ctxtopt of | Some (ctxt) => s2ctxt_hrepl (ctxt, s2e_sel) | None () => s2e_elt ) : s2exp // end of [val] val s2e = s2exp_hrepl (s2e_ctx, s2e_elt) val () = d2var_set_type (d2vw, Some (s2e)) in // nothing end // end of [val] // in s2e_sel end // end of [then] else s2e_sel // end of [else] // end // end of [auxmain] in (* in-of-local *) implement s2addr_deref (loc0, s2l, d3ls, s2rt) = let val opt = pfobj_search_atview (s2l) in case+ opt of | ~Some_vt (pfobj) => auxmain (loc0, pfobj, d3ls, s2rt) | ~None_vt () => let val s2e_sel = s2exp_t0ype_err () // end of [val] val () = s2rt := s2e_sel val () = auxerr_pfobj (loc0, s2l) in s2e_sel end // end of [None] end // end of [s2addr_deref] end // end of [local] (* ****** ****** *) local fun auxerr_nonderef ( loc0: loc_t, d3e: d3exp ) : void = let // val () = prerr_error3_loc (loc0) val () = prerrln! ( ": the dynamic expression cannot be dereferenced." ) (* println! *) // in the_trans3errlst_add(T3E_d3exp_nonderef(d3e)) end // end of [auxerr_nonderef] fun auxerr_reflinsel ( loc0: loc_t , d3e: d3exp, d3ls: d3lablst, s2e_sel: s2exp ) : void = let // val () = prerr_error3_loc (loc0) val () = prerrln! ( ": the linear component cannot taken out." ) (* println! *) // in // the_trans3errlst_add (T3E_d3exp_deref_reflinsel (d3e, d3ls)) // end // end of [auxerr_reflinsel] (* ****** ****** *) fun aux1 ( loc0: loc_t, s2f0: s2hnf , d2sym: d2sym, d3e: d3exp, d3ls: d3lablst ) : d3exp = let // val opt = un_s2exp_ptr_addr_type (s2f0) // in // case+ opt of | ~None_vt () => aux2 (loc0, s2f0, d2sym, d3e, d3ls) | ~Some_vt (s2l) => let var s2rt: s2exp val s2e_sel = s2addr_deref (loc0, s2l, d3ls, s2rt) // end of [val] in d3exp_sel_ptr (loc0, s2e_sel, d3e, s2rt, d3ls) end // end of [Some_vt] // end // end of [aux1] and aux2 ( loc0: loc_t , s2f0: s2hnf , d2sym: d2sym, d3e: d3exp, d3ls: d3lablst ) : d3exp = let // val opt = un_s2exp_ref_vt0ype_type (s2f0) // in // case+ opt of | ~None_vt () => aux3 (loc0, s2f0, d2sym, d3e, d3ls) // end of [val] | ~Some_vt(s2e) => let // var s2rt = s2e // var linrest: int = 0 and sharing: int = 0 val (s2e_sel, s2ps) = s2exp_get_dlablst_linrest_sharing (loc0, s2e, d3ls, linrest, sharing) (* end of [val] *) // val s2e_sel = s2exp_hnfize (s2e_sel) val () = trans3_env_add_proplst_vt (loc0, s2ps) val islin = s2exp_is_lin (s2e_sel) // val () = if islin then auxerr_reflinsel (loc0, d3e, d3ls, s2e_sel) // end of [val] // val _(*err*) = the_effenv_check_ref (loc0) // in d3exp_sel_ref (loc0, s2e_sel, d3e, s2rt, d3ls) end // end of [Some_vt] // end // end of [aux2] and aux3 ( loc0: loc_t, s2f0: s2hnf , d2sym: d2sym, d3e: d3exp, d3ls: d3lablst ) : d3exp = let // // HX: [d3ls] is ignored!!! // val opt = un_s2exp_lazy_t0ype_type(s2f0) // in // case+ opt of | ~None_vt() => aux4 (loc0, s2f0, d2sym, d3e, d3ls) // end of [None_vt] | ~Some_vt(s2e) => d3exp_lazyeval (loc0, s2e, 0(*lin*), d3e) // end of [Some_vt] // end // end of [aux3] and aux4 ( loc0: loc_t, s2f0: s2hnf , d2sym: d2sym, d3e: d3exp, d3ls: d3lablst ) : d3exp = let // // HX: [d3ls] is ignored!!! // val opt = un_s2exp_lazy_vt0ype_vtype (s2f0) // in // case+ opt of | ~Some_vt(s2e) => d3exp_lazyeval (loc0, s2e, 1(*lin*), d3e) // end of [Some_vt] (* | ~None_vt((*void*)) => let val () = auxerr_nonderef (loc0, d3e) in d3exp_errexp (loc0) end // end of [None_vt] *) // | ~None_vt((*void*)) => let // val loc_arg = d3e.d3exp_loc val d2e_top = d2exp_top(loc0) // val s2e_arg = d3exp_get_type(d3e) val d2e_arg = d2exp_top2(loc_arg, s2e_arg) val d2es_arg = list_sing(d2e_arg) // val d2a = D2EXPARGdyn (~1(*npf*), loc_arg, d2es_arg) val d2as = list_sing(d2a) // val d3e_app = d2exp_trup_applst_sym(d2e_top, d2sym, d2as) // end of [val] in case+ d3e_app.d3exp_node of (* case+ *) | D3Eapp_dyn (d3e_fun, npf, _) => let val s2f = d3exp_get_type(d3e_app) // end of [val] val d3es_arg = list_sing(d3e) in d3exp_app_dyn(loc0, s2f, d3e_fun, npf, d3es_arg) end // end of [D3Eappdyn] | _(*non-D3Eappdyn*) => d3e_app end // end of [None_vt] // end // end of [aux4] in (* in-of-local *) implement d2exp_trup_deref ( loc0, d2sym, d2rt, d2ls ) = let (* val () = println! ( "d2exp_trup_deref: d2rt = ", d2rt ) (* end of [val] *) *) val d3rt = d2exp_trup (d2rt) val d3ls = d2lablst_trup (d2ls) val () = d3exp_open_and_add (d3rt) val s2e0 = d3exp_get_type (d3rt) val s2f0 = s2exp2hnf_cast (s2e0) // (* val () = ( // if d3lablst_is_overld (d3ls) then { // val () = prerr_error3_loc (loc0) val () = prerrln! ( ": overloaded dot-symbol should be applied." ) (* end of [val] *) // val () = the_trans3errlst_add (T3E_d2exp_deref_overld(loc0, d2rt, d3ls)) // } (* end of [if] *) // ) (* end of [val] *) *) // in aux1 (loc0, s2f0, d2sym, d3rt, d3ls) end // end of [d2exp_trup_deref] end // end of [local] (* ****** ****** *) (* end of [pats_trans3_deref.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_params.hats0000644000175000017500000000340013431250607020641 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // Start Time: March, 2012 // (* ****** ****** *) (* #define FUNCLO_DEFAULT 1 // FUNCLOptr *) #define FUNCLO_DEFAULT ~1 // FUNCLOref (* ****** ****** *) // // HX: this is used in [pats_constraint3_solve.dats] // (* ****** ****** *) // #ifndef C3NSTRINTKND (* #define C3NSTRINTKND "intknd" *) #define C3NSTRINTKND "gmpknd" #endif // end of [ifndef] // (* ****** ****** *) #define CCOMPENV_MAXTMPRECDEPTH 100 (* ****** ****** *) (* end of [pats_params.hats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lexing_print.dats0000644000175000017500000002671013431250607022065 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload "./pats_lexing.sats" (* ****** ****** *) #define c2i int_of_char (* ****** ****** *) implement fprint_token (out, tok) = case+ tok.token_node of // | T_AT () => fprintf (out, "AT()", @()) | T_BACKSLASH () => fprintf (out, "BACKSLASH()", @()) | T_BANG () => fprintf (out, "BANG()", @()) | T_BAR () => fprintf (out, "BAR()", @()) | T_BQUOTE () => fprintf (out, "BQUOTE()", @()) | T_COLON () => fprintf (out, "COLON()", @()) | T_DOLLAR () => fprintf (out, "DOLLAR()", @()) | T_DOT () => fprintf (out, "DOT()", @()) | T_EQ () => fprintf (out, "EQ()", @()) | T_HASH () => fprintf (out, "HASH()", @()) | T_TILDE () => fprintf (out, "TILDE()", @()) | T_DOTINT (x) => fprintf (out, "DOTINT(%i)", @(x)) | T_DOTDOT () => fprintf (out, "DOTDOT()", @()) | T_DOTDOTDOT () => fprintf (out, "DOTDOTDOT()", @()) | T_EQGT () => fprintf (out, "EQGT()", @()) | T_EQLT () => fprintf (out, "EQLT()", @()) | T_EQLTGT () => fprintf (out, "EQLTGT()", @()) | T_EQSLASHEQGT () => fprintf (out, "EQSLASHEQGT()", @()) | T_EQGTGT () => fprintf (out, "EQGTGT()", @()) | T_EQSLASHEQGTGT () => fprintf (out, "EQSLASHEQGTGT()", @()) // | T_LT () => fprintf (out, "LT()", @()) | T_GT () => fprintf (out, "GT()", @()) | T_GTLT () => fprintf (out, "GTLT()", @()) // | T_DOTLT () => fprintf (out, "DOTLT()", @()) | T_GTDOT () => fprintf (out, "GTDOT()", @()) // | T_DOTLTGTDOT () => fprintf (out, "DOTLTGTDOT()", @()) | T_MINUSGT () => fprintf (out, "MINUSGT()", @()) | T_MINUSLT () => fprintf (out, "MINUSLT()", @()) | T_MINUSLTGT () => fprintf (out, "MINUSLTGT()", @()) | T_COLONLT () => fprintf (out, "COLONLT()", @()) // | T_ABSTYPE (x) => fprintf (out, "ABSTYPE(%i)", @(x)) // end of [T_ABSTYPE] // | T_ASSUME () => fprintf (out, "ASSUME()", @()) | T_REASSUME () => fprintf (out, "REASSUME()", @()) // | T_AS () => fprintf (out, "AS()", @()) | T_AND () => fprintf (out, "AND()", @()) | T_BEGIN () => fprintf (out, "BEGIN()", @()) | T_CASE (x) => fprintf (out, "CASE(...)", @()) | T_CLASSDEC () => fprintf (out, "CLASSDEC()", @()) | T_DATASORT () => fprintf (out, "DATASORT()", @()) | T_DATATYPE (x) => fprintf (out, "DATATYPE(%i)", @(x)) | T_DO () => fprintf (out, "DO()", @()) | T_ELSE () => fprintf (out, "ELSE()", @()) | T_END () => fprintf (out, "END()", @()) | T_EXCEPTION () => fprintf (out, "EXCEPTION()", @()) | T_EXTERN () => fprintf (out, "EXTERN()", @()) | T_EXTYPE () => fprintf (out, "EXTYPE()", @()) | T_EXTVAR () => fprintf (out, "EXTVAR()", @()) // | T_FIX (x) => fprintf (out, "FIX(%i)", @(x)) | T_FIXITY (x) => fprintf (out, "FIXITY(...)", @()) | T_FOR () => fprintf (out, "FOR()", @()) | T_FORSTAR () => fprintf (out, "FORSTAR()", @()) | T_FUN (x) => fprintf (out, "FUN(...)", @()) // | T_IF () => fprintf (out, "IF()", @()) | T_IFCASE () => fprintf (out, "IFCASE()", @()) // | T_IMPLEMENT (k) => fprintf (out, "IMPLEMENT(%i)", @(k)) | T_IMPORT () => fprintf (out, "IMPORT()", @()) | T_IN () => fprintf (out, "IN()", @()) | T_LAM (x) => fprintf (out, "LAM(%i)", @(x)) | T_LET () => fprintf (out, "LET()", @()) | T_LOCAL () => fprintf (out, "LOCAL()", @()) | T_MACDEF (x) => fprintf (out, "MACDEF(%i)", @(x)) | T_NONFIX () => fprintf (out, "NONFIX()", @()) | T_OF () => fprintf (out, "OF()", @()) | T_OP () => fprintf (out, "OP()", @()) | T_REC () => fprintf (out, "REC()", @()) (* | T_REFAT () => fprintf (out, "REFAT()", @()) *) | T_SIF () => fprintf (out, "SIF()", @()) | T_SCASE () => fprintf (out, "SCASE()", @()) | T_SORTDEF () => fprintf (out, "SORTDEF()", @()) | T_STACST () => fprintf (out, "STACST()", @()) | T_STADEF () => fprintf (out, "STADEF()", @()) | T_STATIC () => fprintf (out, "STATIC()", @()) (* | T_STAVAR () => fprintf (out, "STAVAR()", @()) *) // | T_SYMELIM () => fprintf (out, "SYMELIM()", @()) | T_SYMINTR () => fprintf (out, "SYMINTR()", @()) | T_SYMLOAD () => fprintf (out, "SYMLOAD()", @()) // | T_THEN () => fprintf (out, "THEN()", @()) | T_TKINDEF () => fprintf (out, "TKINDEF()", @()) | T_TRY () => fprintf (out, "TRY()", @()) | T_TYPE (x) => fprintf (out, "TYPE(%i)", @(x)) | T_TYPEDEF (x) => fprintf (out, "TYPEDEF(%i)", @(x)) | T_VAL (x) => fprintf (out, "VAL(...)", @()) | T_VAR (x) => fprintf (out, "VAR(%i)", @(x)) | T_WHEN () => fprintf (out, "WHEN()", @()) | T_WHERE () => fprintf (out, "WHERE()", @()) | T_WHILE () => fprintf (out, "WHILE()", @()) | T_WHILESTAR () => fprintf (out, "WHILESTAR()", @()) | T_WITH () => fprintf (out, "WITH()", @()) | T_WITHTYPE (x) => fprintf (out, "WITHTYPE(%i)", @(x)) // | T_ADDRAT () => fprintf (out, "ADDRAT()", @()) // addr@ | T_FOLDAT () => fprintf (out, "FOLDAT()", @()) // fold@ | T_FREEAT () => fprintf (out, "FREEAT()", @()) // free@ | T_VIEWAT () => fprintf (out, "VIEWAT()", @()) // view@ // | T_DLRDELAY (x) => fprintf (out, "DLRDELAY(%i)", @(x)) // | T_DLRARRPSZ () => fprintf (out, "DLRARRPSZ()", @()) // | T_DLRTYREP () => fprintf (out, "DLRTYREP()", @()) | T_DLRD2CTYPE () => fprintf (out, "DLRD2CTYPE()", @()) // | T_DLREFFMASK () => fprintf (out, "DLREFFMASK()", @()) | T_DLREFFMASK_ARG (x) => fprintf (out, "DLREFFMASK(%i)", @(x)) // | T_DLREXTERN () => fprintf (out, "DLREXTERN()", @()) | T_DLREXTKIND () => fprintf (out, "DLREXTKIND()", @()) | T_DLREXTYPE () => fprintf (out, "DLREXTYPE()", @()) | T_DLREXTYPE_STRUCT () => fprintf (out, "DLREXTYPE_STRUCT()", @()) // | T_DLREXTVAL () => fprintf (out, "DLREXTVAL()", @()) | T_DLREXTFCALL () => fprintf (out, "DLREXTFCALL()", @()) | T_DLREXTMCALL () => fprintf (out, "DLREXTMCALL()", @()) // | T_DLRLITERAL () => fprintf (out, "DLRLITERAL()", @()) // | T_DLRMYFILENAME () => fprintf (out, "DLRMYFILENAME()", @()) | T_DLRMYLOCATION () => fprintf (out, "DLRMYLOCATION()", @()) | T_DLRMYFUNCTION () => fprintf (out, "DLRMYFUNCTION()", @()) // | T_DLRLST (x) => fprintf (out, "DLRLST(%i)", @(x)) | T_DLRREC (x) => fprintf (out, "DLRREC(%i)", @(x)) | T_DLRTUP (x) => fprintf (out, "DLRTUP(%i)", @(x)) // | T_DLRBREAK () => fprintf (out, "DLRBREAK()", @()) | T_DLRCONTINUE () => fprintf (out, "DLRCONTINUE()", @()) // | T_DLRRAISE () => fprintf (out, "DLRRAISE()", @()) // | T_DLRVARARG () => fprintf (out, "DLRVARARG()", @()) // | T_DLRVCOPYENV (x) => fprintf (out, "DLRVCOPYENV(%i)", @(x)) // | T_DLRSHOWTYPE () => fprintf (out, "DLRSHOWTYPE()", @()) // | T_DLRTEMPENVER () => fprintf (out, "DLRTEMPENVER()", @()) // | T_DLRSOLASSERT () => fprintf (out, "DLRSOLASSERT()", @()) | T_DLRSOLVERIFY () => fprintf (out, "DLRSOLVERIFY()", @()) // | T_SRPIF () => fprintf (out, "SRPIF()", @()) | T_SRPIFDEF () => fprintf (out, "SRPIFDEF()", @()) | T_SRPIFNDEF () => fprintf (out, "SRPIFNDEF()", @()) | T_SRPTHEN () => fprintf (out, "SRPTHEN()", @()) | T_SRPELSE () => fprintf (out, "SRPELSE()", @()) | T_SRPELIF () => fprintf (out, "SRPELIF()", @()) | T_SRPELIFDEF () => fprintf (out, "SRPELIFDEF()", @()) | T_SRPELIFNDEF () => fprintf (out, "SRPELIFNDEF()", @()) | T_SRPENDIF () => fprintf (out, "SRPENDIF()", @()) // | T_SRPERROR () => fprintf (out, "SRPERROR()", @()) | T_SRPPRERR () => fprintf (out, "SRPPRERR()", @()) | T_SRPPRINT () => fprintf (out, "SRPPRINT()", @()) // | T_SRPASSERT () => fprintf (out, "SRPASSERT()", @()) // | T_SRPUNDEF () => fprintf (out, "SRPUNDEF()", @()) | T_SRPDEFINE () => fprintf (out, "SRPDEFINE()", @()) // | T_SRPINCLUDE () => fprintf (out, "SRPINCLUDE()", @()) // | T_SRPSTALOAD () => fprintf (out, "SRPSTALOAD()", @()) | T_SRPDYNLOAD () => fprintf (out, "SRPDYNLOAD()", @()) // | T_SRPREQUIRE () => fprintf (out, "SRPREQUIRE()", @()) // | T_SRPPRAGMA () => fprintf (out, "SRPPRAGMA()", @()) | T_SRPCODEGEN2 () => fprintf (out, "SRPCODEGEN2()", @()) | T_SRPCODEGEN3 () => fprintf (out, "SRPCODEGEN3()", @()) // | T_IDENT_alp (x) => fprintf (out, "IDENT_alp(%s)", @(x)) | T_IDENT_sym (x) => fprintf (out, "IDENT_sym(%s)", @(x)) | T_IDENT_arr (x) => fprintf (out, "IDENT_arr(%s)", @(x)) | T_IDENT_tmp (x) => fprintf (out, "IDENT_tmp(%s)", @(x)) | T_IDENT_dlr (x) => fprintf (out, "IDENT_dlr(%s)", @(x)) | T_IDENT_srp (x) => fprintf (out, "IDENT_srp(%s)", @(x)) | T_IDENT_ext (x) => fprintf (out, "IDENT_ext(%s)", @(x)) // | T_INT (base, rep, sfx) => fprintf (out, "INT(%i; %s)", @(base, rep)) | T_CHAR (x) => fprintf (out, "CHAR(%c)", @(x)) | T_FLOAT (base, rep, sfx) => fprintf (out, "FLOAT(%i; %s)", @(base, rep)) // | T_CDATA _ => fprintf (out, "CDATA(...)", @()) | T_STRING (x) => fprintf (out, "STRING(%s)", @(x)) // (* | T_LABEL (knd, x) => fprintf (out, "LABEL(%i; %s)", @(knd, x)) *) // | T_COMMA () => fprintf (out, "COMMA()", @()) | T_SEMICOLON () => fprintf (out, "SEMICOLON()", @()) // | T_LPAREN () => fprintf (out, "LPAREN()", @()) | T_RPAREN () => fprintf (out, "RPAREN()", @()) | T_LBRACKET () => fprintf (out, "LBRACKET()", @()) | T_RBRACKET () => fprintf (out, "RBRACKET()", @()) | T_LBRACE () => fprintf (out, "LBRACE()", @()) | T_RBRACE () => fprintf (out, "RBRACE()", @()) // | T_ATLPAREN () => fprintf (out, "ATLPAREN()", @()) | T_QUOTELPAREN () => fprintf (out, "QUOTELPAREN()", @()) | T_ATLBRACKET () => fprintf (out, "ATLBRACKET()", @()) | T_QUOTELBRACKET () => fprintf (out, "QUOTELBRACKET()", @()) | T_HASHLBRACKET () => fprintf (out, "HASHLBRACKET()", @()) | T_ATLBRACE () => fprintf (out, "ATLBRACE()", @()) | T_QUOTELBRACE () => fprintf (out, "QUOTELBRACE()", @()) // | T_BQUOTELPAREN () => fprintf (out, "BQUOTELPAREN()", @()) | T_COMMALPAREN () => fprintf (out, "COMMALPAREN()", @()) | T_PERCENTLPAREN () => fprintf (out, "PERCENTLPAREN()", @()) // | T_EXTCODE (knd, x) => fprintf (out, "EXTCODE(%i, %s)", @(knd, x)) // | T_COMMENT_line () => fprintf (out, "COMMENT_line()", @()) | T_COMMENT_block () => fprintf (out, "COMMENT_block()", @()) | T_COMMENT_rest () => fprintf (out, "COMMENT_rest()", @()) // | T_ERR () => fprintf (out, "ERR()", @()) | T_EOF () => fprintf (out, "EOF()", @()) // | T_NONE () => fprintf (out, "NONE()", @()) (* | _ => fprintf (out, "TOKEN()", @()) *) // (* end of [fprint_token] *) implement print_token (tok) = fprint_token (stdout_ref, tok) (* ****** ****** *) (* end of [pats_lexing_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_selab.dats0000644000175000017500000005770713431250607021755 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_selab" // (* ****** ****** *) staload LAB = "./pats_label.sats" overload = with $LAB.eq_label_label overload prerr with $LAB.prerr_label (* ****** ****** *) staload LOC = "./pats_location.sats" stadef loc_t = $LOC.location (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) // implement d2lab_trup (d2l) = let val loc = d2l.d2lab_loc val opt = d2l.d2lab_overld in // case+ d2l.d2lab_node of // | D2LABlab (lab) => d3lab_lab (loc, lab, opt) // | D2LABind (ind) => let val ind = d2explst_trup (ind) in d3lab_ind (loc, ind) end // end of [D2LABind] // end // end of [d2lab_trup] // implement d2lablst_trup (d2ls) = let val d3ls = list_map_fun (d2ls, d2lab_trup) in (l2l)d3ls end // end of [d2lablst_trup] // (* ****** ****** *) local fun arrbndck .<>. ( d3e1: d3exp, s2i2: s2exp ) : s2explst_vt = let // fun auxerr (d3e: d3exp): void = let val loc = d3e.d3exp_loc val s2e = d3exp_get_type (d3e) val () = prerr_error3_loc (loc) val () = prerr ": the type of the array index is not " val () = prerr "a generic (signed or unsigned) integer type: [" val () = prerr_s2exp (s2e) val () = prerr "]." val () = prerr_newline () in the_trans3errlst_add (T3E_d3exp_arrind (d3e)) end (* end of [auxerr] *) // val () = d3exp_open_and_add (d3e1) // val s2e1 = d3exp_get_type (d3e1) val s2f1 = s2exp2hnf (s2e1) val opt = un_s2exp_g1int_index_t0ype (s2f1) // in // case+ opt of | ~Some_vt (s2i1) => let val s2p1 = s2exp_igtez (s2i1) val s2p2 = s2exp_intlt (s2i1, s2i2) in list_vt_pair (s2p1, s2p2) end // end of [Some_vt] | ~None_vt () => let val opt = un_s2exp_g1uint_index_t0ype (s2f1) in case+ opt of | ~Some_vt (s2i1) => let val s2p = s2exp_intlt (s2i1, s2i2) in list_vt_sing (s2p) end // end of [Some_vt] | ~None_vt () => let val () = auxerr (d3e1) in list_vt_nil () end // end of [None_vt] end // end of [None_vt] // end // end of [arrbndck] in (* in of [local] *) fun arrbndlst_check ( loc0: loc_t, ind: d3explst, dim: s2explst ) : s2explst_vt = let // fun auxerr ( loc0: loc_t , d3es_ind: d3explst, s2es_dim: s2explst, sgn: int ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": the label is expected to contain " val () = if sgn < 0 then prerr "more array indexes." val () = if sgn > 0 then prerr "fewer array indexes." val ((*void*)) = prerr_newline () in the_trans3errlst_add(T3E_d3exp_arrdim(loc0, s2es_dim, d3es_ind)) end // end of [auxerr] // val nind = list_length(ind) val ndim = list_length(dim) // fun auxcheck ( d3es: d3explst , s2es: s2explst ) : s2explst_vt = ( case+ d3es of | list_cons (d3e, d3es) => let val-list_cons (s2e, s2es) = s2es // match! val s2ps1 = arrbndck (d3e, s2e) val s2ps2 = auxcheck (d3es, s2es) in list_vt_append (s2ps1, s2ps2) end // end of [list_cons] | list_nil () => list_vt_nil () ) // end of [auxcheck] // val sgn = nind - ndim // in // if sgn < 0 then let // val () = auxerr(loc0, ind, dim, sgn) in list_vt_nil() // end else if sgn > 0 then let // val () = auxerr(loc0, ind, dim, sgn) in list_vt_nil() // end else auxcheck (ind, dim) // end of [if] // end // end of [arrbndlst_check] end // end of [local] (* ****** ****** *) local fun lincheck ( ls2es: labs2explst, linrest: &int ) : void = let in // if ( linrest = 0 ) then ( // case+ ls2es of | list_cons (ls2e, ls2es) => let val+SLABELED(_, _, s2e) = ls2e val () = if s2exp_is_lin(s2e) then linrest := linrest + 1 // end of [if] // end of [val] in lincheck (ls2es, linrest) end // end of [list_cons] | list_nil ((*void*)) => ((*done*)) // ) else () // end of [if] // end // end of [lincheck] fun labfind_lincheck ( l0: label , ls2es: labs2explst, linrest: &int, err: &int ) : s2exp = let in // case+ ls2es of | list_cons (ls2e, ls2es) => let val SLABELED (l, _, s2e) = ls2e in if l0 = l then let val () = lincheck(ls2es, linrest) in s2e end // end of [then] else let val () = if linrest = 0 then ( if s2exp_is_lin(s2e) then linrest := linrest + 1 ) (* end of [if] *) // end of [val] in labfind_lincheck(l0, ls2es, linrest, err) end // end of [else] // end of [if] end // end of [list_cons] | list_nil((*void*)) => let val () = err := err + 1 in s2exp_t0ype_err((*void*)) end // end of [list_nil] // end // end of [labfind_lincheck] fun auxlab_sexp ( loc0: loc_t, s2e: s2exp, d3l: d3lab , lab0: label, linrest: &int, sharing: &int ) : s2exp = let // val s2f = s2exp2hnf (s2e) // in auxlab_shnf(loc0, s2f, d3l, lab0, linrest, sharing) end // and [auxlab_sexp] and auxlab_shnf ( loc0: loc_t, s2f: s2hnf, d3l: d3lab , lab0: label, linrest: &int, sharing: &int ) : s2exp = let // val s2e = s2hnf2exp (s2f) // in // case+ s2e.s2exp_node of // case+ // | S2Etyrec (knd, npf, ls2es) => let var err: int = 0 val s2e1 = labfind_lincheck(lab0, ls2es, linrest, err) val () = if tyreckind_is_box (knd) then sharing := sharing + 1 val () = if (err > 0) then let val () = prerr_error3_loc (loc0) val () = prerr ": the record-type [" val () = prerr_s2exp (s2e) val () = prerr "] is expected to contain the label [" val () = $LAB.prerr_label (lab0) val () = prerr "] but it does not." val () = prerr_newline () in the_trans3errlst_add (T3E_s2exp_selab_labnot(loc0, s2e, lab0)) end // end of [if] // end of [val] in s2e1 end // end of [S2Etyrec] // | S2Eexi _ => let val s2f = s2exp2hnf (s2e) val s2e = s2hnf_opn1exi_and_add (loc0, s2f) in auxlab_sexp (loc0, s2e, d3l, lab0, linrest, sharing) end // end of [S2Eexi] // | _ (*rest-of-s2exp*) => let val opt = d3l.d3lab_overld in case+ opt of (* // // HX-2015-05-14: // It is commented out for now. // It can be reinstated if there is a genuine need. // | Some(d2s) => (s2e_sel) where { val _top = d2exp_top (loc0) val d2e_arg = d2exp_top2 (loc0, s2e) val d2a_arg = D2EXPARGdyn(~1(*npf*), loc0, list_sing(d2e_arg)) // end of [val] val d3e_sel = d2exp_trup_applst_sym((*d2e*)_top, d2s, list_sing(d2a_arg)) // end of [val] val s2e_sel = d3exp_get_type (d3e_sel) val ((*void*)) = d3lab_set_overld_app (d3l, Some(d3e_sel)) } (* end of [Some] *) // *) | Some(d2s) => let val () = prerr_error3_loc(loc0) val () = prerrln! ( ": overloaded dot-symbol: [", d2s, "] should be applied." ) (* end of [val] *) val () = the_trans3errlst_add(T3E_d3lab_overld_app(loc0, d3l)) in s2exp_t0ype_err((*void*)) end // end of [Some] | None((*void*)) => let val () = prerr_error3_loc(loc0) val () = prerr! ( ": [", lab0, "] cannot be found" ) (* end of [val] *) val () = prerrln! ( ": the type [", s2e, "] is expected to be a tyrec(record)." ) (* end of [val] *) val () = the_trans3errlst_add(T3E_s2exp_selab_tyrec(loc0, s2e)) in s2exp_t0ype_err((*void*)) end // end of [None] end (* rest-of-s2exp *) // end // end of [auxlab_shnf] fun auxind ( loc0: loc_t, s2e: s2exp, ind: d3explst ) : ( s2exp(*elt*), s2explst_vt(*array-bounds-checking*) ) = let val s2f = s2exp2hnf (s2e) val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of // | S2Etyarr ( s2e_elt, s2es_dim ) => let val s2ps = arrbndlst_check (loc0, ind, s2es_dim) // end of [val] in (s2e_elt, s2ps) end // end of [S2Etyarr] // | S2Eexi _ => let val s2f = s2exp2hnf (s2e) val s2e = s2hnf_opn1exi_and_add (loc0, s2f) in auxind (loc0, s2e, ind) end // end of [S2Eexi] // | _ => let val () = prerr_error3_loc (loc0) // end of [val] val () = prerr ": the type [" val () = prerr_s2exp (s2e) val () = prerr "] is expected to be a tyarr (array-type)." val () = prerr_newline () val () = the_trans3errlst_add (T3E_s2exp_selab_tyarr (loc0, s2e)) val s2e_elt = s2exp_t0ype_err () val s2ps = list_vt_nil () in (s2e_elt, s2ps) end // end of [_] // end // end of [auxind] fun auxsel ( s2e: s2exp, d3l: d3lab, linrest: &int, sharing: &int ) : ( s2exp, s2explst_vt ) = let // val loc0 = d3l.d3lab_loc // in // case+ d3l.d3lab_node of // case+ | D3LABlab (l0) => let val s2f = s2exp2hnf (s2e) val s2e = auxlab_shnf (loc0, s2f, d3l, l0, linrest, sharing) in (s2e, list_vt_nil) end // end of [S3LABlab] | D3LABind (ind) => let val s2es2ps = auxind (loc0, s2e, ind) val () = if s2exp_is_lin (s2es2ps.0) then linrest := linrest + 1 in s2es2ps end // end of [D3LABind] // end // end of [auxsel] and auxselist ( s2e: s2exp, d3ls: d3lablst, linrest: &int, sharing: &int ) : (s2exp, s2explst_vt) = let in // case+ d3ls of | list_nil ((*void*)) => (s2e, list_vt_nil ()) | list_cons (d3l, d3ls) => let val (s2e, s2ps1) = auxsel (s2e, d3l, linrest, sharing) val (s2e, s2ps2) = auxselist (s2e, d3ls, linrest, sharing) in (s2e, list_vt_append (s2ps1, s2ps2)) end // end of [list_cons] // end // end of [auxselist] in (* in of [local] *) implement s2exp_get_dlablst_linrest_sharing ( loc0, s2e, d3ls, linrest, sharing ) = auxselist (s2e, d3ls, linrest, sharing) // end of [s2exp_get_dlablst_linrest_sharing] end // end of [local] (* ****** ****** *) local fun labfind_context ( l0: label , ls2es: labs2explst , context: &Option_vt @(labs2explst, s2hole) , err: &int ) : s2exp = let in // case+ ls2es of | list_cons (ls2e, ls2es) => let val SLABELED (l, name, s2e) = ls2e in if l0 = l then let val s2t = s2e.s2exp_srt val s2h = s2hole_make_srt (s2t) val s2e_ctx = s2exp_hole (s2h) val ls2e_ctx = SLABELED (l, name, s2e_ctx) val ls2es_ctx = list_cons (ls2e_ctx, ls2es) val-None_vt () = context val () = context := Some_vt @(ls2es_ctx, s2h) in s2e end else let val s2e = labfind_context (l0, ls2es, context, err) val () = ( case+ context of | Some_vt (!p) => let val () = !p.0 := list_cons (ls2e, !p.0) in fold@ (context) end // end of [Some_vt] | None_vt () => fold@ (context) ) : void // end of [val] in s2e end // end of [if] end // end of [list_cons] | list_nil () => let val () = err := err + 1 in s2exp_t0ype_err () end // end of [list_nil] // end // end of [labfind_context] viewtypedef ctxtopt_vt = Option_vt @(s2exp, s2hole) fun auxlab ( loc0: loc_t, s2f: s2hnf , lab0: label, context: &ctxtopt_vt ) : s2exp = let // val s2e = s2hnf2exp (s2f) // in // case+ s2e.s2exp_node of // | S2Etyrec ( knd, npf, ls2es ) => let viewtypedef res2 = Option_vt @(labs2explst, s2hole) var context2 : res2 = None_vt () var err: int = 0 val s2e1 = labfind_context(lab0, ls2es, context2, err) val () = ( case+ context2 of | ~Some_vt @(ls2es_ctx, s2h) => let val s2t = s2e.s2exp_srt val s2e_ctx = s2exp_tyrec_srt (s2t, knd, npf, ls2es_ctx) val-None_vt () = context in context := Some_vt @(s2e_ctx, s2h) end // end of [val] | ~None_vt () => () ) : void // end of [val] val () = if (err > 0) then let val () = prerr_error3_loc (loc0) val () = prerr ": the record-type [" val () = prerr_s2exp (s2e) val () = prerr "] is expected to contain the label [" val () = $LAB.prerr_label (lab0) val () = prerr "] but it does not." val () = prerr_newline () in the_trans3errlst_add (T3E_s2exp_selab_labnot (loc0, s2e, lab0)) end // end of [val] in s2e1 end // end of [S2Etyrec] // | _ => let val () = prerr_error3_loc (loc0) val () = prerrln! ( ": the type [", s2e, "] is expected to be a tyrec(record)." ) (* end of [val] *) val () = the_trans3errlst_add (T3E_s2exp_selab_tyrec (loc0, s2e)) in s2exp_t0ype_err () end // end of [_] // end // end of [auxlab] fun auxind ( loc0: loc_t , s2f_arr: s2hnf, d3es_ind: d3explst , context: &ctxtopt_vt, ischeck: bool ) : (s2exp, s2explst_vt) = let // val s2e_arr = s2hnf2exp(s2f_arr) // in // case+ s2e_arr.s2exp_node of (* case+ *) | S2Etyarr ( s2e_elt, s2es_dim ) => let val s2ps = ( if ischeck then arrbndlst_check(loc0, d3es_ind, s2es_dim) else list_vt_nil() // end of [if] ) : s2explst_vt // end of [val] in (s2e_elt, s2ps) end // end of [S2Etyarr] | _ (*non-tyarr*) => let val s2e_elt = s2exp_t0ype_err() in (s2e_elt, list_vt_nil(*s2ps*)) end // end of [_] // end // end of [auxind] fun auxsel ( s2e: s2exp, d3l: d3lab , context: &ctxtopt_vt, ischeck: bool ) : (s2exp, s2explst_vt) = let val loc = d3l.d3lab_loc val s2f = s2exp2hnf (s2e) in // case+ d3l.d3lab_node of | D3LABlab (lab) => let val s2e_elt = auxlab (loc, s2f, lab, context) // end of [val] in (s2e_elt, list_vt_nil(*s2ps*)) end // end of [D3LABlab] | D3LABind (ind) => auxind (loc, s2f, ind, context, ischeck) // end of [D3LABind] // end // end of [auxsel] and auxselist ( s2e: s2exp, d3ls: d3lablst , context: &ctxtopt_vt, ischeck: bool ) : (s2exp, s2explst_vt) = let in // case+ d3ls of | list_cons ( d3l, list_nil () ) => auxsel (s2e, d3l, context, ischeck) // end of [list_sing] | list_cons (d3l, d3ls) => let val s2es2ps = auxsel (s2e, d3l, context, ischeck) val s2e = s2es2ps.0 val s2ps = s2es2ps.1 in case+ context of | ~Some_vt @( s2e1_ctx, s2h1 ) => let val () = context := None_vt () val s2es2ps = auxselist (s2e, d3ls, context, ischeck) val s2e = s2es2ps.0 val s2ps = list_vt_append (s2ps, s2es2ps.1) in case+ context of | Some_vt (!p) => let val () = !p.0 := s2exp_hrepl (s2e1_ctx, !p.0) prval () = fold@ (context) in @(s2e, s2ps) end // end of [Some_vt] | None_vt () => let prval () = fold@ (context) in @(s2e, s2ps) end // end of [None_vt] end // end of [Some_vt] | ~None_vt () => let val () = context := None_vt () val s2es2ps = auxselist (s2e, d3ls, context, ischeck) val s2e = s2es2ps.0 val s2ps = list_vt_append (s2ps, s2es2ps.1) val () = option_vt_free (context) val () = context := None_vt () in @(s2e, s2ps) end // end of [None_vt] end (* end of [list_cons] *) | list_nil () => let val s2t = s2e.s2exp_srt val s2h = s2hole_make_srt (s2t) val s2e_ctx = s2exp_hole (s2h) val-None_vt () = context val () = context := Some_vt @(s2e_ctx, s2h) in (s2e, list_vt_nil(*s2ps*)) end // end of [list_nil] // end // end of [auxselist] in (* in of [local] *) implement s2exp_get_dlablst_context (loc0, s2e, d3ls, context) = let // var context2: ctxtopt_vt = None_vt(*void*) // val s2es2ps = auxselist ( s2e, d3ls, context2, false(*ischeck*) ) (* end of [val] *) // val () = list_vt_free (s2es2ps.1) // val () = ( case+ context2 of | ~None_vt _ => () | ~Some_vt @(s2e_ctx, s2h) => ( context := Some(s2ctxt_make (s2e_ctx, s2h)) ) // end of [Some_vt] ) : void // end of [val] // in s2es2ps.0(*selected*) end // end of [s2exp_get_dlablst_context] implement s2exp_get_dlablst_context_check (loc0, s2e, d3ls, context) = let // var context2 : ctxtopt_vt = None_vt(*void*) // val s2es2ps = auxselist (s2e, d3ls, context2, true(*ischeck*)) // val () = ( case+ context2 of | ~None_vt ((*void*)) => () | ~Some_vt @(s2e_ctx, s2h) => context := Some (s2ctxt_make (s2e_ctx, s2h)) ) : void // end of [val] // in s2es2ps end // end of [s2exp_get_dlablst_context_check] end // end of [local] (* ****** ****** *) extern fun d2var_trup_selab ( loc0: loc_t , locd2v: loc_t, d2v: d2var, d2ls: d2lablst ) : d3exp // end of [d2var_trup_selab] (* ****** ****** *) extern fun d2var_trup_selab_lin ( loc0: loc_t , locd2v: loc_t, d2v: d2var, d2ls: d2lablst ) : d3exp // end of [d2var_trup_selab_lin] extern fun d2var_trup_selab_mut ( loc0: loc_t , locd2v: loc_t, d2v: d2var, d2ls: d2lablst ) : d3exp // end of [d2var_trup_selab_mut] (* ****** ****** *) extern fun d3exp_trup_selab (loc0: loc_t, d3e: d3exp, d3ls: d3lablst): d3exp // end of [d3exp_trup_selab] (* ****** ****** *) implement d2var_trup_selab_lin ( loc0, locd2v, d2v, d2ls ) = let (* val () = println! ( "d2var_trup_selab_lin: d2v = ", d2v ) (* end of [val] *) *) val s2e = d2var_get_type_some(locd2v, d2v) // val s2rt = s2e // HX: root type for selection val d3ls = d2lablst_trup (d2ls) // (* val () = ( // if d3lablst_is_overld (d3ls) then { // val () = prerr_error3_loc (loc0) val () = prerrln! (": overloaded dot-symbol should be applied.") // val () = the_trans3errlst_add (T3E_d2var_lin_overld(loc0, d2v, d3ls)) // } (* end of [if] *) // ) (* end of [val] *) *) // var linrest: int = 0 and sharing: int = 0 // val s2es2ps = s2exp_get_dlablst_linrest_sharing (loc0, s2e, d3ls, linrest, sharing) // end of [val] // val s2e_sel = s2exp_hnfize (s2es2ps.0) val () = trans3_env_add_proplst_vt (loc0, s2es2ps.1) val islin = s2exp_is_lin (s2e_sel) // in // if islin then let val s2t = s2e.s2exp_srt var ctxtopt: s2expopt = None () val s2e_sel = s2exp_get_dlablst_context (loc0, s2e, d3ls, ctxtopt) // end of [val] // val isctx = ( case+ ctxtopt of Some _ => true | None _ => false ) : bool // end of [val] val () = if ~isctx then { val () = prerr_error3_loc (loc0) val () = prerr ": the linear component cannot be taken out." val () = prerr_newline () val () = the_trans3errlst_add (T3E_d2var_selab_context (loc0, d2v, d3ls)) } (* end of [if] *) // end of [val] // val () = d2var_inc_linval (d2v) val () = let val s2e_sel = s2exp_topize (1, s2e_sel) val s2e = ( case+ ctxtopt of | Some (ctxt) => s2ctxt_hrepl (ctxt, s2e_sel) | None () => s2e ) : s2exp // end of [val] val () = d2var_set_type (d2v, Some (s2e)) in // nothing end // end of [val] in d3exp_sel_var (loc0, s2e_sel, d2v, s2rt, d3ls) end // end of [then] else ( d3exp_sel_var (loc0, s2e_sel, d2v, s2rt, d3ls) // there is no type-change ) (* end of [else] *) // end // end of [d2var_trup_selab_lin] (* ****** ****** *) (* ** HX-2012-05: ** [s2addr] implemented ** in [pats_trans3_deref] *) implement d2var_trup_selab_mut (loc0, loc, d2v, d2ls) = let // val- Some (s2l) = d2var_get_addr (d2v) // val d3ls = d2lablst_trup (d2ls) // (* val () = ( // if d3lablst_is_overld (d3ls) then { // val () = prerr_error3_loc (loc0) val () = prerrln! (": overloaded dot-symbol should be applied.") // val () = the_trans3errlst_add (T3E_d2var_mul_overld(loc0, d2v, d3ls)) // } (* end of [if] *) // ) (* end of [val] *) *) // var s2rt: s2exp val s2e_sel = s2addr_deref (loc0, s2l, d3ls, s2rt) // in d3exp_sel_var (loc0, s2e_sel, d2v, s2rt, d3ls) end // end of [d2var_trup_selab_mut] (* ****** ****** *) implement d2var_trup_selab (loc0, loc, d2v, d2ls) = ( // case+ 0 of | _ when d2var_is_linear (d2v) => d2var_trup_selab_lin (loc0, loc, d2v, d2ls) | _ when d2var_is_mutabl (d2v) => d2var_trup_selab_mut (loc0, loc, d2v, d2ls) | _ (*else*) => let val d3e = d2exp_trup_var_nonmut (loc, d2v) in d3exp_trup_selab (loc0, d3e, d2lablst_trup (d2ls)) end // end of [else] // ) (* end of [d2var_trup_selab] *) (* ****** ****** *) local fun auxerr_linrest ( loc0: loc_t, d3e: d3exp, d3ls: d3lablst ) : void = let // val () = prerr_error3_loc (loc0) val () = prerrln! ( ": a linear component is abandoned by field selection." ) (* prerrln! *) // in // the_trans3errlst_add (T3E_d3exp_selab_linrest (loc0, d3e, d3ls)) // end // end of [auxerr_linrest] fun auxfinize ( loc0: loc_t, s2e_sel: s2exp , d3e0: d3exp, d3ls0: d3lablst, d3ls: d3lablst, n: intGte(0) ) : d3exp = let in // case+ d3ls of // | list_cons (d3l, d3ls) => let val opt = d3l.d3lab_overld_app in case+ opt of | None () => auxfinize (loc0, s2e_sel, d3e0, d3ls0, d3ls, n+1) | Some (d3e_app) => let val d3ls_pre = list_take_exn (d3ls0, n) val d3ls_pre = list_of_list_vt (d3ls_pre) val s2e_app = d3exp_get_type (d3e_app) val-D3Eapp_dyn(d3e_fun, npf, d3es_arg) = d3e_app.d3exp_node val-list_cons (d3e_arg, d3es_arg) = d3es_arg val s2e_arg = d3exp_get_type (d3e_arg) val d3e_arg = d3exp_selab (loc0, s2e_arg, d3e0, d3ls_pre) val d3es_arg = list_cons (d3e_arg, d3es_arg) val d3e0_pre = d3exp_app_dyn (loc0, s2e_app, d3e_fun, npf, d3es_arg) in auxfinize (loc0, s2e_sel, d3e0_pre, d3ls, d3ls, 0) end end // end of [list_cons] // | list_nil((*void*)) => d3exp_selab (loc0, s2e_sel, d3e0, d3ls0) // end // end of [auxfinize] in (* in of [local] *) implement d3exp_trup_selab (loc0, d3e, d3ls) = let (* val () = println! ("d3exp_trup_selab: d3e = ", d3e) *) in // case+ d3ls of | list_cons _ => let // val s2e = d3exp_get_type (d3e) (* val () = println! ("d3exp_trup_selab: s2e = ", s2e) *) var linrest: int = 0 and sharing: int = 0 val (s2e_sel, s2ps) = s2exp_get_dlablst_linrest_sharing (loc0, s2e, d3ls, linrest, sharing) val s2e_sel = s2exp_hnfize (s2e_sel) val () = trans3_env_add_proplst_vt (loc0, s2ps) val () = if (linrest > 0) then auxerr_linrest (loc0, d3e, d3ls) val+list_cons (d3l, d3ls1) = d3ls // in auxfinize (loc0, s2e_sel, d3e, d3ls, d3ls, 0) end // end of [list_cons] // | list_nil ((*void*)) => d3e // HX: there is no need to open the type // end (* end of [d3exp_trup_selab] *) end // end of [local] (* ****** ****** *) implement d2exp_trup_selab (loc0, d2rt, d2ls) = let // (* val () = println! ("d2exp_trup_selab: loc0 = ", loc0) val () = println! ("d2exp_trup_selab: d2rt = ", d2rt) *) in // case+ d2rt.d2exp_node of // | D2Evar(d2v) => let val loc = d2rt.d2exp_loc in d2var_trup_selab(loc0, loc, d2v, d2ls) end // end of [D2Evar] // | D2Ederef(d2s, d2e) => d2exp_trup_deref(loc0, d2s, d2e, d2ls) // end of [D2Ederef] // | _ (*rest-of-d2exp*) => let val d3rt = d2exp_trup (d2rt) val d3ls = d2lablst_trup (d2ls) in d3exp_trup_selab (loc0, d3rt, d3ls) end (* end of [_] *) // end // end of [d2exp_trup_selab] (* ****** ****** *) (* end of [pats_trans3_selab.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env_lamlp.dats0000644000175000017500000001001713431250607022623 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_env_lamlp" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) local assume lamlpenv_push_v = unit_v val the_lamlplst = ref (list_vt_nil) in // in of [local] implement the_lamlpenv_top ((*void*)) = let val ( vbox pf | pp ) = ref_get_view_ptr (the_lamlplst) in case+ !pp of | list_vt_cons (x, _) => let prval () = fold@ (!pp) in Some_vt x end // end of [list_vt_cons] | list_vt_nil () => let prval () = fold@ (!pp) in None_vt () end // end of [list_vt_nil] end // end of [the_lamlpenv_push_top] (* ****** ****** *) implement the_lamlpenv_get_funarg ((*void*)) = let // fun loop ( xs: !lamlplst_vt ) : Option_vt (p3atlst) = let in // case+ xs of | list_vt_cons (x, !p_xs) => ( case+ x of | LAMLPlam (p3ts) => (fold@ (xs); Some_vt (p3ts)) | LAMLPloop0 _ => let val res = loop (!p_xs) in fold@ (xs); res end // end of [LAMLPloop0] | LAMLPloop1 _ => let val res = loop (!p_xs) in fold@ (xs); res end // end of [LAMLPloop1] ) // end of [list_vt_cons] | list_vt_nil () => (fold@ (xs); None_vt ()) // end // end of [loop] // val (vbox pf | pp) = ref_get_view_ptr (the_lamlplst) // in $effmask_ref (loop (!pp)) end // end of [the_lamlpenv_get_funarg] (* ****** ****** *) implement the_lamlpenv_pop (pfpush | (*none*)) = let prval () = unit_v_elim (pfpush) val (vbox pf | pp) = ref_get_view_ptr (the_lamlplst) val-~list_vt_cons (_, xs) = !pp in !pp := xs end // end of [the_lamlpenv_push_pop] (* ****** ****** *) implement the_lamlpenv_push_lam (p3ts) = let val (vbox pf | pp) = ref_get_view_ptr (the_lamlplst) val () = !pp := list_vt_cons (LAMLPlam (p3ts), !pp) prval pfpush = unit_v () in (pfpush | ()) end // end of [the_lamlpenv_push_lam] (* ****** ****** *) implement the_lamlpenv_push_loop0 () = let val (vbox pf | pp) = ref_get_view_ptr (the_lamlplst) val () = !pp := list_vt_cons (LAMLPloop0 (), !pp) prval pfpush = unit_v () in (pfpush | ()) end // end of [the_lamlpenv_push_loop0] implement the_lamlpenv_push_loop1 (i2nv, lbis, post) = let val (vbox pf | pp) = ref_get_view_ptr (the_lamlplst) val () = !pp := list_vt_cons (LAMLPloop1 (i2nv, lbis, post), !pp) prval pfpush = unit_v () in (pfpush | ()) end // end of [the_lamlpenv_push_loop1] (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [pats_trans3_env_lamlp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_typerase_decl.dats0000644000175000017500000003170613431250607022207 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: September, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_typerase_decl" // (* ****** ****** *) staload LOC = "./pats_location.sats" overload print with $LOC.print_location (* ****** ****** *) staload FIL = "./pats_filename.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload TRENV2 = "./pats_trans2_env.sats" staload TRENV3 = "./pats_trans3_env.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_typerase.sats" (* ****** ****** *) extern fun d3ecl_tyer_impdec (d3c0: d3ecl): hidecl extern fun d3ecl_tyer_fundecs (d3c0: d3ecl): hidecl extern fun d3ecl_tyer_valdecs (d3c0: d3ecl): hidecl extern fun d3ecl_tyer_valdecs_rec (d3c0: d3ecl): hidecl extern fun d3ecl_tyer_vardecs (d3c0: d3ecl): hidecl (* ****** ****** *) extern fun tmpcstimpmap_make_hideclist (xs: hideclist): tmpcstimpmap extern fun tmpvardecmap_make_hideclist (xs: hideclist): tmpvardecmap (* ****** ****** *) implement d3ecl_tyer (d3c0) = let // val loc0 = d3c0.d3ecl_loc // in // case+ d3c0.d3ecl_node of // | D3Cnone() => hidecl_none(loc0) // | D3Clist(d3cs) => let val hids = d3eclist_tyer(d3cs) in hidecl_list(loc0, hids) // end of [val] end // end of [D3Clist] // | D3Csaspdec(d2c) => hidecl_saspdec(loc0, d2c) // end of [D3Csaspdec] | D3Creassume(s2c) => hidecl_reassume(loc0, s2c) // end of [D3Creassume] // | D3Cextype (name, s2e_def) => let val hse_def = s2exp_tyer_deep(loc0, s2e_def) // end of [val] in hidecl_extype(loc0, name, hse_def) end // end of [D3Cextype] | D3Cextvar (name, d3e_def) => ( hidecl_extvar(loc0, name, d3exp_tyer(d3e_def)) ) (* end of [D3Cextvar] *) // | D3Cextcode (knd, pos, code) => hidecl_extcode(loc0, knd, pos, code) // end of [D3Cextcode] // | D3Cexndecs (d2cs) => hidecl_exndecs(loc0, d2cs) | D3Cdatdecs (knd, s2cs) => hidecl_datdecs(loc0, knd, s2cs) // | D3Cdcstdecs (knd, dck, d2cs) => hidecl_dcstdecs(loc0, dck, d2cs) // | D3Cimpdec _ => d3ecl_tyer_impdec(d3c0) // | D3Cfundecs _ => d3ecl_tyer_fundecs(d3c0) // | D3Cvaldecs _ => d3ecl_tyer_valdecs(d3c0) | D3Cvaldecs_rec _ => d3ecl_tyer_valdecs_rec(d3c0) // | D3Cvardecs _ => d3ecl_tyer_vardecs(d3c0) // | D3Cprvardecs _ => hidecl_none (loc0) // proof vars // | D3Cinclude (knd, d3cs) => let val hids = d3eclist_tyer (d3cs) in hidecl_include (loc0, knd, hids) end // end of [D3Cinclude] // | D3Cstaload ( idopt, fname, flag, fenv, loaded ) => let val-Some (d3cs) = $TRENV3.filenv_get_d3eclistopt (fenv) // end of [val] (* val () = ( println! ("d3ecl_tyer: D3Cstaload: fname = ", fname); println! ("d3ecl_tyer: D3Cstaload: loaded = ", loaded); ) // end of [val] *) val () = ( if (loaded = 0) then let val hids = d3eclist_tyer (d3cs) // val tcimap = tmpcstimpmap_make_hideclist (hids) val p = $TRENV2.filenv_getref_tmpcstimpmap (fenv) val () = $UN.ptrset (p, Some (tcimap)) // val tvdmap = tmpvardecmap_make_hideclist (hids) val p = $TRENV2.filenv_getref_tmpvardecmap (fenv) val () = $UN.ptrset (p, Some (tvdmap)) // in // nothing end // end of [Some] ) : void // end of [val] in hidecl_staload (loc0, idopt, fname, flag, fenv, loaded) end // end of [D3Cstaload] // | D3Cstaloadloc (pfil, nspace, fenv) => let val-Some (d3cs) = $TRENV3.filenv_get_d3eclistopt (fenv) val hids = d3eclist_tyer (d3cs) in hidecl_staloadloc (loc0, pfil, nspace, hids) end // end of [D3Cstaloadloc] // | D3Cdynload (cfil) => hidecl_dynload (loc0, cfil) // | D3Clocal (d3cs_head, d3cs_body) => let val hids_head = d3eclist_tyer (d3cs_head) val hids_body = d3eclist_tyer (d3cs_body) in hidecl_local (loc0, hids_head, hids_body) end // end of [D3Clocal] // (* | _ => let val () = println! ("d3exp_tyer: loc0 = ", loc0) val () = println! ("d3ecl_tyer: d3c0 = ", d3c0) in exitloc (1) end // end of [_] *) // end // end of [d3ecl_tyer] (* ****** ****** *) implement d3eclist_tyer (d3cs) = let // vtypedef res = List_vt (hidecl) // fun loop (d3cs: d3eclist, res: res): res = let in // case+ d3cs of | list_cons (d3c, d3cs) => let val hid = d3ecl_tyer (d3c) val isemp = hidecl_is_empty (hid) in if isemp then loop (d3cs, res) else loop (d3cs, list_vt_cons (hid, res)) // end of [if] end // end of [list_cons] | list_nil ((*void*)) => res // end // end of [loop] // val hids = loop (d3cs, list_vt_nil) val hids = list_vt_reverse (hids) // in list_of_list_vt (hids) end // end of [d3eclist_tyer] (* ****** ****** *) implement d3eclist_tyer_errck (d3cs) = hids where { val hids = d3eclist_tyer (d3cs) val () = the_trans4errlst_finalize () } // end of [d3eclist_tyer_errck] (* ****** ****** *) implement d3ecl_tyer_impdec (d3c0) = let // val loc0 = d3c0.d3ecl_loc val-D3Cimpdec (knd, impdec) = d3c0.d3ecl_node // in // if knd >= 0 then let // val loc = impdec.i3mpdec_loc val d2c = impdec.i3mpdec_cst val imparg = impdec.i3mpdec_imparg val tmparg = impdec.i3mpdec_tmparg val tmparg = s2explstlst_mhnfize (tmparg) // val d2c = d2cst_tyer (d2c) val hse = d3exp_tyer (impdec.i3mpdec_def) val himp = hiimpdec_make (loc, knd, d2c, imparg, tmparg, hse) // end of [val] // in hidecl_impdec (loc0, knd(*implmnt/implement*), himp) end // end of [then] else ( hidecl_none (loc0) ) (* end of [else] *) // end // end of [d3ecl_tyer_impdec] (* ****** ****** *) implement decarg2imparg (s2qs) = let in // case+ s2qs of | list_cons (s2q, s2qs) => list_append (s2q.s2qua_svs, decarg2imparg (s2qs)) // end of [list_cons] | list_nil () => list_nil () // end // end of [decarg2imparg] (* ****** ****** *) local fun f3undec_tyer ( imparg: s2varlst, f3d: f3undec ) : hifundec = let // val loc = f3d.f3undec_loc // val d2v_fun = f3d.f3undec_var val d3e_def = f3d.f3undec_def // val isprf = d3exp_is_prf (d3e_def) // val () = ( // if isprf then let // val () = prerr_error4_loc (loc) val () = prerrln! ( ": [fun] should be replaced with [prfun]." ) (* end of [val] *) // in the_trans4errlst_add (T4E_d3exp_tyer_isprf (d3e_def)) end // end of [if] // ) (* end of [val] *) // val d2v_fun = d2var_tyer (d2v_fun) val hde_def = d3exp_tyer (d3e_def) // in hifundec_make (loc, d2v_fun, imparg, hde_def) end // end of [f3undec_tyer] fun f3undeclst_tyer ( knd: funkind , decarg: s2qualst, f3ds: f3undeclst ) : hifundeclst = let val isprf = funkind_is_proof (knd) in // if isprf then list_nil () // proofs are erased else let val imparg = decarg2imparg (decarg) val hfds = list_map_cloptr (f3ds, lam (f3d) =<1> f3undec_tyer (imparg, f3d)) // end of [val] in list_of_list_vt (hfds) end // end of [else] // end // end of [f3undeclst_tyer] in (* in of [local] *) implement d3ecl_tyer_fundecs (d3c0) = hdc0 where { // val loc0 = d3c0.d3ecl_loc // val-D3Cfundecs (knd, decarg, f3ds) = d3c0.d3ecl_node // val hfds = f3undeclst_tyer (knd, decarg, f3ds) val hdc0 = hidecl_fundecs (loc0, knd, decarg, hfds) // val () = hifundeclst_set_hideclopt (hfds, Some(hdc0)) // } (* end of [d3ecl_tyer_fundecs] *) end // end of [local] (* ****** ****** *) local fun v3aldec_tyer ( v3d: v3aldec ) : hivaldec = let // val loc = v3d.v3aldec_loc val hip = p3at_tyer (v3d.v3aldec_pat) // end of [val] val d3e_def = v3d.v3aldec_def // val isprf = d3exp_is_prf(d3e_def) // val () = ( if isprf then let // val () = prerr_error4_loc (loc) val () = prerrln! ( ": [val] should be replaced with [prval]." ) (* end of [val] *) // in the_trans4errlst_add (T4E_d3exp_tyer_isprf (d3e_def)) end // end of [if] // ) (* end of [val] *) // val hde_def = d3exp_tyer (d3e_def) // in hivaldec_make (loc, hip, hde_def) end // end of [v3aldec_tyer] fun v3aldeclst_tyer ( knd: valkind, v3ds: v3aldeclst ) : hivaldeclst = let val isprf = valkind_is_proof (knd) in // if isprf then list_nil () // proofs are erased else let val hvds = list_map_fun (v3ds, v3aldec_tyer) in list_of_list_vt (hvds) end // end of [if] // end // end of [v3aldeclst_tyer] in (* in of [local] *) implement d3ecl_tyer_valdecs (d3c0) = let // val loc0 = d3c0.d3ecl_loc val-D3Cvaldecs (knd, v3ds) = d3c0.d3ecl_node val hvds = v3aldeclst_tyer (knd, v3ds) // in hidecl_valdecs (loc0, knd, hvds) end // end of [d3ecl_tyer_valdecs] implement d3ecl_tyer_valdecs_rec (d3c0) = let // val loc0 = d3c0.d3ecl_loc val-D3Cvaldecs_rec (knd, v3ds) = d3c0.d3ecl_node val hvds = v3aldeclst_tyer (knd, v3ds) // in hidecl_valdecs_rec (loc0, knd, hvds) end // end of [d3ecl_tyer_valdecs_rec] end // end of [local] (* ****** ****** *) local fun v3ardec_tyer ( v3d: v3ardec ) : hivardec = let // val loc = v3d.v3ardec_loc val knd = v3d.v3ardec_knd // val d2v = v3d.v3ardec_dvar_var val d2v = d2var_tyer (d2v) // val d2vw = v3d.v3ardec_dvar_view // val s2e = v3d.v3ardec_type val hse = s2exp_tyer_shallow (loc, s2e) // val init = d3expopt_tyer (v3d.v3ardec_init) // in hivardec_make (loc, knd, d2v, d2vw, hse, init) end // end of [v3ardec_tyer] in (* in of [local] *) implement d3ecl_tyer_vardecs (d3c0) = let // val loc0 = d3c0.d3ecl_loc val-D3Cvardecs (v3ds) = d3c0.d3ecl_node val hvds = list_map_fun (v3ds, v3ardec_tyer) val hvds = list_of_list_vt (hvds) // in hidecl_vardecs (loc0, hvds) end // end of [d3ecl_tyer_vardecs] end // end of [local] (* ****** ****** *) implement tmpcstimpmap_make_hideclist (xs) = let // fun aux ( map: &tmpcstimpmap, x: hidecl ) : void = let in // case+ x.hidecl_node of | HIDimpdec (knd, imp) => let val tmparg = imp.hiimpdec_tmparg in case+ tmparg of | list_cons _ => tmpcstimpmap_insert (map, imp) | list_nil () => () end // end of [HIDimpdec] // | HIDinclude (knd, xs_incl) => auxlst (map, xs_incl) (* end of [HIDinclude] *) // | HIDlocal (xs_head, xs_body) => ( auxlst (map, xs_head); auxlst (map, xs_body) ) // end of [HIDlocal] // | _ => () // end (* end of [aux] *) // and auxlst ( map: &tmpcstimpmap, xs: hideclist ) : void = let in // case+ xs of | list_cons (x, xs) => let val () = aux (map, x) in auxlst (map, xs) end (* end of [list_cons] *) | list_nil () => () // end (* end of [auxlst] *) // var map : tmpcstimpmap = d2cstmap_nil () val () = auxlst (map, xs) // in map end // end of [tmpcstimpmap_make_hideclist] (* ****** ****** *) implement tmpvardecmap_make_hideclist (xs) = let // fun aux ( map: &tmpvardecmap, x: hidecl ) : void = let in // case+ x.hidecl_node of | HIDfundecs (knd, s2qs, hfds) => let in case+ s2qs of | list_cons _ => tmpvardecmap_inserts (map, hfds) | list_nil () => () end // end of [HIDfundecs] // | HIDinclude (knd, xs_incl) => auxlst (map, xs_incl) (* end of [HIDinclude] *) // | HIDlocal (xs_head, xs_body) => ( auxlst (map, xs_head); auxlst (map, xs_body) ) // end of [HIDlocal] // | _ => () // end (* end of [aux] *) // and auxlst ( map: &tmpvardecmap, xs: hideclist ) : void = let in // case+ xs of | list_cons (x, xs) => let val () = aux (map, x) in auxlst (map, xs) end (* end of [list_cons] *) | list_nil () => () // end (* end of [auxlst] *) // var map : tmpvardecmap = d2varmap_nil () val () = auxlst (map, xs) // in map end // end of [tmpvardecmap_make_hideclist] (* ****** ****** *) (* end of [pats_typerase_decl.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3_solve.dats0000644000175000017500000004410513431250607023040 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) // #include "./pats_params.hats" // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_constraint3_solve" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_patcst2.sats" staload "./pats_dynexp2.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) staload "./pats_lintprgm.sats" staload "./pats_constraint3.sats" (* ****** ****** *) local // #include "./pats_lintprgm_myint.dats" // in (*nothing*) end (* ****** ****** *) local staload _(*anon*) = "./pats_lintprgm.dats" staload _(*anon*) = "./pats_lintprgm_solve.dats" staload _(*anon*) = "./pats_constraint3_icnstr.dats" fun{ a:t@ype } indexset_make_s3exp {n:nat} ( vim: !s2varindmap (n), s3e: s3exp ) : indexset (n+1) = let typedef res = indexset (n+1) vtypedef map = s2varindmap (n) fun loop ( s2vs: s2varlst_vt, vim: !map, res: res ) : res = case+ s2vs of | ~list_vt_cons (s2v, s2vs) => let val ind = s2varindmap_find (vim, s2v) val res = ( if ind > 0 then indexset_add (res, ind) else res ) : res // end of [val] in loop (s2vs, vim, res) end // end of [list_vt_cons] | ~list_vt_nil () => res // end of [loop] val s2vs = s3exp_get_fvs (s3e) val s2vs = s2varset_vt_listize_free (s2vs) in loop (s2vs, vim, indexset_nil ()) end // end of [indexset_make_s3exp] (* ****** ****** *) fun{ a:t@ype } auxsolve{n:nat} ( loc0: location , vim: !s2varindmap (n), n: int n , s3ps_asmp: s3explst, s3p_conc: s3exp ) : int(*~1/0*) = let // // HX: note that the order is reversed: // val ics_asmp = let // vtypedef res = icnstrlst (a, n+1) // fun loop ( loc0: location , vim: !s2varindmap (n), n: int n, s3ps: s3explst , res: res ) : res = let in case+ s3ps of | list_nil ((*void*)) => res | list_cons (s3p, s3ps) => let val ic = s3exp2icnstr (loc0, vim, n, s3p) // end ofl[val] (* val () = ( println! ("auxsolve: loop: s3p = ", s3p); print "auxsolve: loop: ic = "; print_icnstr (ic, n+1); print_newline (); ) (* end of [val] *) *) in loop (loc0, vim, n, s3ps, list_vt_cons (ic, res)) end // end of [list_cons] end // end of [loop] // in loop (loc0, vim, n, s3ps_asmp, list_vt_nil) end // end of [val] // val ic_conc = s3exp2icnstr (loc0, vim, n, s3p_conc) // val ic_conc_neg = icnstr_negate (ic_conc) // (* val () = ( print ("auxsolve: ic_conc_neg = "); print_icnstr (ic_conc_neg, n+1); print_newline () ) (* end of [val] *) *) // val iset = indexset_make_s3exp (vim, s3p_conc) // // HX: this is the entire constraint matrix var ics_all : icnstrlst (a, n+1) = list_vt_cons (ic_conc_neg, ics_asmp) // val ans = icnstrlst_solve (iset, ics_all, n+1) val () = icnstrlst_free (ics_all, n+1) // (* val () = println! ("auxsolve: ans = ", ans) *) in // ans // ~1: contradiction reached; 0: undecided yet // end // end of [auxsolve] in (* in of [local] *) implement s3explst_solve_s2exp (loc0, env, s2p, err) = let // val s3p = s3exp_make (env, s2p) val s3p = ( case+ s3p of | S3Eerr _ => let val () = prerr_warning3_loc (loc0) val () = prerr ": the constraint [" val () = pprerr_s2exp (s2p) val () = prerr "] cannot be translated into a form accepted by the constraint solver." val () = prerr_newline () in s3exp_false // HX: make it the worst scenario end // end of [S3Eerr] | _ => s3p // end of [_] ) : s3exp // end of [val] // var status: int = 0 val () = ( case+ s3p of | S3Ebool (true) => status := ~1 | _ => () ) // end of [val] // val () = if status >= 0 then { val s3p_conc = s3exp_lintize (env, s3p) // HX: processed for being turned into a vector // val (s2vs, s3ps) = s2vbcfenv_extract (env) val s2vs_ = $UN.castvwtp1 {s2varlst} (s2vs) // HX: cannot be SHARED! val s3ps_asmp = $UN.castvwtp1 {s3explst} (s3ps) // HX: cannot be SHARED! // (* val () = begin print "s3explst_solve_s2exp: s2vs = "; print_s2varlst (s2vs_); print_newline (); print "s3explst_solve_s2exp: s3ps =\n"; $UT.fprintlst ( stdout_ref, s3ps_asmp, "\n", fprint_s3exp ) ; print_newline (); println! ("s3explst_solve_s2exp: s2p = ", s2p); println! ("s3explst_solve_s2exp: s3p = ", s3p); end // end of [val] *) // val (vim, n) = s2varindmap_make (s2vs) // // HX: [C3NSTRINTKND] defined in [pats_params.hats] // #if C3NSTRINTKND="intknd" #then val ans = auxsolve (loc0, vim, n, s3ps_asmp, s3p_conc) #elif C3NSTRINTKND="gmpknd" #then val ans = auxsolve (loc0, vim, n, s3ps_asmp, s3p_conc) #else val () = assertloc (false) val ans = 0 // HX: it is never executed at run-time #endif // end of [#if] // val () = status := ans // val () = s2varindmap_free (vim) val () = list_vt_free (s2vs) and () = list_vt_free (s3ps) // } (* end of [status >= 0] *) // (* val () = ( println! ("s3explst_solve_s2exp: status = ", status) ) (* end of [val] *) *) // in status(*~1/0*) end // end of [s3explst_solve_s2exp] end // end of [local] (* ****** ****** *) // // HX-2012-03: // for errmsg reporting; the function returns 0 // normally; if it returns 1, then the reported // error should be treated as a warning instead. // extern fun c3nstr_solve_errmsg(c3t: c3nstr, unsolved: uint): int // (* ****** ****** *) extern fun c3nstr_solve_main ( env: &s2vbcfenv, c3t: c3nstr, unsolved: &uint, err: &int ) : int(*status*) // end of [c3nstr_solve_main] extern fun c3nstr_solve_prop ( loc0: location, env: &s2vbcfenv, s2p: s2exp, err: &int ) : int(*status*) // end of [c3nstr_solve_prop] extern fun c3nstr_solve_itmlst ( loc0: location , env: &s2vbcfenv , s3is: s3itmlst, unsolved: &uint, err: &int ) : int(*status*) // end of [c3nstr_solve_itmlst] extern fun c3nstr_solve_itmlst_cnstr ( loc0: location , env: &s2vbcfenv , s3is: s3itmlst, c3t: c3nstr, unsolved: &uint, err: &int ) : int(*status*) // end of [c3nstr_solve_itmlst_cnstr] extern fun c3nstr_solve_itmlst_disj ( loc0: location , env: &s2vbcfenv , s3is: s3itmlst, s3iss: s3itmlstlst, unsolved: &uint, err: &int ) : int(*status*) // end of [c3nstr_solve_itmlst_disj] extern fun c3nstr_solve_solverify ( loc0: location, env: &s2vbcfenv, s2e_prop: s2exp, err: &int ) : int(*status*) // end of [c3nstr_solve_solverify] (* ****** ****** *) extern fun prerr_case_exhaustiveness_errmsg ( loc0: location, casknd: caskind, p2tcs: p2atcstlst ) : void // end of [prerr_case_exhaustiveness_errmsg] implement prerr_case_exhaustiveness_errmsg (loc0, casknd, p2tcs) = let // fun prlst ( p2tcs: p2atcstlst ) : void = let in case+ p2tcs of | list_cons (p2tc, p2tcs) => let val () = fprint_p2atcst (stderr_ref, p2tc) // end of [val] val () = fprint_newline (stderr_ref) in prlst (p2tcs) end // end of [list_cons] | list_nil () => () end // end of [prlst] // in // case+ casknd of // | CK_case_pos () => let val () = prerr_error3_loc (loc0) val () = prerr ": pattern match is nonexhaustive:\n"; in prlst (p2tcs) end // end of [CK_case] | CK_case_neg () => () // HX: ignored per the wish of the programmer // // HX: this case is *not* recommended for use // | CK_case () => let val () = prerr_warning3_loc (loc0) val () = prerr ": pattern match is nonexhaustive:\n"; in prlst (p2tcs) end // end of [CK_case] // end // end of [prerr_case_exhaustiveness_errmsg] (* ****** ****** *) implement c3nstr_solve_errmsg (c3t, unsolved) = let // val loc0 = c3t.c3nstr_loc val c3tk = c3t.c3nstr_kind // fun prerr_c3nstr_if ( unsolved: uint, c3t: c3nstr ) : void = if (unsolved = 0u) then (prerr ": "; prerr_c3nstr c3t) // end of [prerr_c3nstr_if] // in // case+ c3tk of | C3TKmain((*void*)) => ( if unsolved = 0u then let val () = prerr_error3_loc (loc0) val () = prerrln! (": unsolved constraint: ", c3t) in 0 // this one is treated as an error end // end of [then] else 0 // this errmsg has already been reported // end of [if] ) (* end of [C3STRKmain] *) | C3TKcase_exhaustiveness (casknd, p2tcs) => let val () = prerr_case_exhaustiveness_errmsg (loc0, casknd, p2tcs) in case+ casknd of | CK_case () => 1 (*warning*) | CK_case_pos () => 0 (*error*) | CK_case_neg () => 0 (*deadcode*) end // end of [C3TKcase_exhaustiveness] // | C3TKtermet_isnat () => 0 where { val () = prerr_error3_loc (loc0) val () = prerr ( ": unsolved constraint for termetric being well-founded" ) (* end of [val] *) val () = prerr_c3nstr_if (unsolved, c3t) val () = prerr_newline ((*void*)) } // end of [C3TKtermet_isnat] | C3TKtermet_isdec () => 0 where { val () = prerr_error3_loc (loc0) val () = prerr ( ": unsolved constraint for termetric being strictly decreasing" ) (* end of [val] *) val () = prerr_c3nstr_if (unsolved, c3t) val () = prerr_newline ((*void*)) } // end of [C3STRKmetric_dec] // | C3TKsome_fin _ => (0) where { val () = prerr_error3_loc (loc0) val ((*void*)) = prerrln! ": unsolved constraint for var preservation" } (* end of [C3TKsome_fin] *) | C3TKsome_lvar _ => (0) where { val () = prerr_error3_loc (loc0) val ((*void*)) = prerrln! ": unsolved constraint for lvar preservation" } (* end of [C3TKsome_lvar] *) | C3TKsome_vbox _ => (0) where { val () = prerr_error3_loc (loc0) val ((*void*)) = prerrln! ": unsolved constraint for vbox preservation" } (* end of [C3TKsome_vbox] *) // | C3TKlstate () => 0 where { val () = prerr_error3_loc (loc0) val () = prerrln! ": unsolved constraint for lstate merging" } // end of [C3TKlstate] | C3TKlstate_var (d2v) => 0 where { val () = prerr_error3_loc (loc0) val () = prerrln! (": unsolved constraint for merging the lstate of [", d2v, "]") } // end of [C3TKlstate_var] // | C3TKloop(knd) => (0) where { val () = prerr_error3_loc (loc0) val () = if knd < 0 then prerr ": unsolved constraint for loop(enter)" val () = if knd = 0 then prerr ": unsolved constraint for loop(break)" val () = if knd > 0 then prerr ": unsolved constraint for loop(continue)" val () = prerr_newline ((*void*)) } (* end of [C3TKloop] *) // | C3TKsolverify() => (0) where { val () = prerr_error3_loc (loc0) val () = prerrln! ": the constraint is expected to be verified externally." } (* end of [C3TKsolver] *) // end // end of [c3nstr_solve_errmsg] (* ****** ****** *) implement c3nstr_solve_main ( env, c3t, unsolved, err ) = let // val loc0 = c3t.c3nstr_loc // (* // val () = println! ("c3nstr_solve_main: c3t = ", c3t) // *) // var status: int = ( // // ~1: solved; 0: unsolved // case+ c3t.c3nstr_node of // case+ | C3NSTRprop s2p => c3nstr_solve_prop (loc0, env, s2p, err) // end of [C3NSTRprop] | C3NSTRitmlst(s3is) => c3nstr_solve_itmlst (loc0, env, s3is, unsolved, err) // end of [C3NSTRitmlst] // | C3NSTRsolverify(s2e_prop) => c3nstr_solve_solverify (loc0, env, s2e_prop, err) // ) : int // end of [val] // val () = if status >= 0 then { val iswarn = c3nstr_solve_errmsg(c3t, unsolved) // end of [val] val () = if iswarn > 0 then (status := ~1) } (* end of [if] *) // (* // val () = println! ("c3nstr_solve_main: status = ", status) // *) // val () = if status >= 0 then (unsolved := unsolved + 1u) // in status (* 0: unsolved; ~1: solved *) end // end of [c3nstr_solve_main] (* ****** ****** *) implement c3nstr_solve_prop (loc0, env, s2p, err) = let (* val () = begin print "c3nstr_solve_prop: s2p = "; pprint_s2exp (s2p); print_newline (); end // end of [val] *) in s3explst_solve_s2exp (loc0, env, s2p, err) end // end of [c3nstr_solve_prop] (* ****** ****** *) implement c3nstr_solve_itmlst ( loc0, env, s3is, unsolved, err ) = let (* // val () = begin print "c3str_solve_itmlst: s3is = "; fprint_s3itmlst (stdout_ref, s3is); print_newline (); end // end of [val] // *) in // case+ s3is of | list_nil() => ~1 | list_cons(s3i, s3is) => ( case+ s3i of | S3ITMsvar(s2v) => let val () = s2vbcfenv_add_svar (env, s2v) in c3nstr_solve_itmlst(loc0, env, s3is, unsolved, err) end // end of [S3ITMsvar] | S3ITMhypo(h3p) => let val s3p = s3exp_make_h3ypo (env, h3p) val () = ( case+ s3p of | S3Eerr _ => let (* val () = begin prerr_warning3_loc (loc0); prerr ": unused hypothesis: ["; prerr_h3ypo (h3p); prerr "]"; prerr_newline () end // end of [val] *) in // nothing end // end of [S3Eerr] | _ (*non-S3Eerr*) => let val s3p = s3exp_lintize(env, s3p) in s2vbcfenv_add_sbexp (env, s3p) end // end of [_] ) : void // end of [val] in c3nstr_solve_itmlst(loc0, env, s3is, unsolved, err) end // end of [S3ITMhypo] | S3ITMsVar(s2V) => c3nstr_solve_itmlst(loc0, env, s3is, unsolved, err) | S3ITMcnstr(c3t) => c3nstr_solve_itmlst_cnstr(loc0, env, s3is, c3t, unsolved, err) | S3ITMcnstr_ref(ctr) => let val ref = ctr.c3nstroptref_ref in case+ !ref of | None () => ~1(*solved*) | Some c3t => c3nstr_solve_itmlst_cnstr(loc0, env, s3is, c3t, unsolved, err) // end of [Some] end // end of [S3ITMcnstr_ref] | S3ITMdisj(s3iss_disj) => c3nstr_solve_itmlst_disj(loc0, env, s3is, s3iss_disj, unsolved, err) // | S3ITMsolassert(s2e_prop) => let (* val () = print! "c3nstr_solve_itmlst" val () = println! (": S3ITMsolassert: s2e_prop = ", s2e_prop) // end of [val] *) in c3nstr_solve_itmlst(loc0, env, s3is, unsolved, err) end // end of [S3ITMsolassert] // ) (* end of [list_cons] *) // end // end of [c3nstr_solve_itmlst] (* ****** ****** *) implement c3nstr_solve_itmlst_cnstr ( loc0, env, s3is, c3t, unsolved, err ) = let val (pf1 | ()) = s2vbcfenv_push (env) val (pf2 | ()) = the_s2varbindmap_push () val ans1 = c3nstr_solve_main (env, c3t, unsolved, err) // end of [val] val () = the_s2varbindmap_pop (pf2 | (*none*)) val () = s2vbcfenv_pop (pf1 | env) val ans2 = c3nstr_solve_itmlst (loc0, env, s3is, unsolved, err) // end of [val] in if ans1 >= 0 then 0(*unsolved*) else ans2 end // end of [c3nstr_solve_itmlst_cnstr] (* ****** ****** *) implement c3nstr_solve_itmlst_disj ( loc0, env, s3is0, s3iss(*disj*), unsolved, err ) = let (* // val () = ( println! ("c3nstr_solve_itmlst_disj: s3iss = ...") ) (* end of [val] *) // *) in // case+ s3iss of | list_nil ((*void*)) => ~1(*solved*) // end of [list_nil] | list_cons (s3is, s3iss) => let val (pf1 | ()) = s2vbcfenv_push (env) val (pf2 | ()) = the_s2varbindmap_push () val s3is1 = list_append (s3is, s3is0) val _(*ans*) = c3nstr_solve_itmlst (loc0, env, s3is1, unsolved, err) val ((*void*)) = the_s2varbindmap_pop (pf2 | (*none*)) val ((*void*)) = s2vbcfenv_pop (pf1 |env) in c3nstr_solve_itmlst_disj (loc0, env, s3is0, s3iss, unsolved, err) end // end of [list_cons] // end // end of [c3nstr_solve_itmlst_disj] (* ****** ****** *) implement c3nstr_solve_solverify (loc0, env, s2e_prop, err) = let // (* val () = println! ("c3nstr_solve_solverify: s2e_prop = ", s2e_prop) // end of [val] *) // in 0(*unsolved*) end // end of [c3nstr_solve_solverify] (* ****** ****** *) implement c3nstr_ats2_solve (c3t) = let (* // val () = ( println! ("c3nstr_ats2_solve: c3t = ", c3t) ) (* end of [val] *) // *) var env: s2vbcfenv = s2vbcfenv_nil () // // HX-2010-09-09: this is needed for solving val () = the_s2varbindmap_freetop () // top-level constraints!!! // var unsolved: uint = 0u and err: int = 0 val _(*status*) = c3nstr_solve_main (env, c3t, unsolved, err) val ((*freed*)) = s2vbcfenv_free (env) // in // case+ 0 of | _ when unsolved = 0u => let (* val () = prerrln! ("typechecking is finished successfully!") // end of [val] *) in // nothing end // end of [unsolved = 0] | _ (*unsolved*) => // unsolved > 0 { val () = prerr "typechecking has failed" val () = if unsolved <= 1u then prerr ": there is one unsolved constraint" // end of [if] val () = if unsolved >= 2u then prerr ": there are some unsolved constraints" // end of [if] val () = prerrln! ( ": please inspect the above reported error message(s) for information." ) (* end of [val] *) val () = $ERR.abort{void}() } (* end of [_ when unsolved > 0] *) // end // end of [c3nstr_ats2_solve] (* ****** ****** *) (* end of [pats_constraint3_solve.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_util.dats0000644000175000017500000002465013431250607021633 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_util" (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) local fun fshowtype_d3exp ( knd: int, d3e: d3exp ) : void = let // val out = stdout_ref // val loc = d3e.d3exp_loc val s2e = d3exp_get_type (d3e) // val () = ( if knd > 0 then fprint (out, "**SHOWTYPE[UP]**") else fprint (out, "**SHOWTYPE[DN]**") ) (* end of [val] *) // val () = fprint (out, "(") val () = $LOC.fprint_location (out, loc) val () = fprint (out, ")") // val () = fprint (out, ": ") val () = fpprint_s2exp (out, s2e) // val () = fprint (out, ": ") val () = fprint_s2rt (out, s2e.s2exp_srt) // val () = fprint_newline (out) // in // nothing end // end of [fshowtype_d3exp] in (* in-of-local *) implement fshowtype_d3exp_up (d3e) = fshowtype_d3exp (1, d3e) implement fshowtype_d3exp_dn (d3e) = fshowtype_d3exp (~1, d3e) end // end of [local] (* ****** ****** *) implement d2exp_funclo_of_d2exp (d2e0, fc0) = case+ d2e0.d2exp_node of | D2Eann_funclo (d2e, fc) => let val () = fc0 := fc in d2e end // end of [D2Eann_funclo] | _ => d2e0 // end of [d2exp_funclo_of_d2exp] (* ****** ****** *) implement d2exp_s2eff_of_d2exp (d2e0, s2fe0) = case+ d2e0.d2exp_node of | D2Elam_dyn _ => (s2fe0 := s2eff_nil; d2e0) | D2Elaminit_dyn _ => (s2fe0 := s2eff_nil; d2e0) | D2Elam_sta _ => (s2fe0 := s2eff_nil; d2e0) | D2Eann_seff (d2e, s2fe) => let val () = s2fe0 := s2fe in d2e end // end of [D2Eann_seff] | _ => let val () = s2fe0 := s2eff_all in d2e0 end // end of [_] // end of [d2exp_s2eff_of_d2exp] (* ****** ****** *) // extern fun d2exp_syn_type_arg_body ( loc0: location , fc0: funclo, lin: int, npf: int , p2ts_arg: p2atlst, d2e_body: d2exp ) : s2exp // end of [d2exp_syn_type_arg_body] // implement d2exp_syn_type_arg_body ( loc0, fc0, lin, npf, p2ts_arg, d2e_body ) = let var fc: funclo = fc0 val s2es = p2atlst_syn_type (p2ts_arg) val s2e_res = d2exp_syn_type (d2e_body) val d2e_body = d2exp_funclo_of_d2exp (d2e_body, fc) val isprf = s2exp_is_prf (s2e_res) val islin = (if lin > 0 then true else false): bool var s2fe: s2eff val d2e_body = d2exp_s2eff_of_d2exp (d2e_body, s2fe) val s2t_fun = s2rt_prf_lin_fc (loc0, isprf, islin, fc) in s2exp_fun_srt (s2t_fun, fc, lin, s2fe, npf, s2es, s2e_res) end // end of [d2exp_syn_type_arg_body] // (* ****** ****** *) implement d2exp_syn_type (d2e0) = let // val loc0 = d2e0.d2exp_loc // val s2e0 =( case+ d2e0.d2exp_node of // | D2Eint _ => s2exp_int_t0ype () | D2Ebool _ => s2exp_bool_t0ype () | D2Echar _ => s2exp_char_t0ype () | D2Estring _ => s2exp_string_type () | D2Efloat _ => s2exp_double_t0ype () // | D2Ei0nt (x) => i0nt_syn_type (x) | D2Ec0har _ => s2exp_char_t0ype () | D2Es0tring _ => s2exp_string_type () | D2Ef0loat (x) => f0loat_syn_type (x) // | D2Ecstsp (x) => cstsp_syn_type (d2e0, x) // | D2Eempty () => s2exp_void_t0ype () // | D2Eextval (s2e, _(*name*)) => s2e // | D2Eassgn _ => s2exp_void_t0ype () // | D2Elst (lin, opt, d2es) => let val s2e = ( case+ opt of | Some s2e => s2e | None () => let val s2t = ( if lin = 0 then s2rt_t0ype else s2rt_vt0ype ) : s2rt // end of [val] in s2exp_Var_make_srt (loc0, s2t) end // end of [None] ) : s2exp // end of [val] val n = list_length (d2es) val isnonlin = s2exp_is_nonlin (s2e) in if isnonlin then s2exp_list_t0ype_int_type (s2e, n) else s2exp_list_vt0ype_int_vtype (s2e, n) // end of [if] end // end of [D2Elst] | D2Etup (knd, npf, d2es) => let val s2es = d2explst_syn_type (d2es) in s2exp_tytup (knd, npf, s2es) end // end of [D2Etup] | D2Erec (knd, npf, ld2es) => let val ls2es = labd2explst_syn_type (ld2es) in s2exp_tyrec (knd, npf, ls2es) end // end of [D2Erec] | D2Eseq (d2es) => (case+ d2es of | list_cons _ => let val d2e = list_last (d2es) in d2exp_syn_type (d2e) end | list_nil () => s2exp_void_t0ype () ) // end of [D2Eseq] // | D2Earrpsz (opt, d2es) => let val s2e = ( case+ opt of | Some s2e => s2e | None () => s2exp_Var_make_srt (loc0, s2rt_t0ype) ) : s2exp // end of [val] val n = list_length (d2es) in s2exp_arrpsz_vt0ype_int_vt0ype (s2e, n) end // end of [D2Earrpsz] // | D2Elam_dyn ( lin, npf, p2ts_arg, d2e_body ) => let val fc0 = FUNCLOfun // HX: default in d2exp_syn_type_arg_body (loc0, fc0, lin, npf, p2ts_arg, d2e_body) end // end of [D2Elam_dyn] // | D2Elaminit_dyn ( lin, npf, p2ts_arg, d2e_body ) => let val fc0 = FUNCLOclo(0) // HX: default in d2exp_syn_type_arg_body (loc0, fc0, lin, npf, p2ts_arg, d2e_body) end // end of [D2Elaminit_dyn] // | D2Elam_sta (s2vs, s2ps, d2e) => let val s2e = d2exp_syn_type (d2e) in s2exp_uni (s2vs, s2ps, s2e) end // end of [D2Elam_sta] | D2Elam_met (_ref, met, d2e) => let val s2e = d2exp_syn_type (d2e) in s2exp_metfun (None(*stamp*), met, s2e) end // end of [D2Elam_met] // | D2Efix (knd, d2v, d2e) => d2exp_syn_type (d2e) // | D2Eann_type (_, s2e) => s2e | D2Eann_seff (d2e, _) => d2exp_syn_type (d2e) | D2Eann_funclo (d2e, _) => d2exp_syn_type (d2e) // | D2Eerrexp ((*void*)) => s2exp_t0ype_err () // | _ => let val s2e = s2exp_Var_make_srt (loc0, s2rt_t0ype) // end of [val] in s2e end // end of [_] ) : s2exp // end of [val] in s2e0 end // end of [d2exp_syn_type] implement d2explst_syn_type (xs) = l2l (list_map_fun (xs, d2exp_syn_type)) // end of [d2explst_syn_type] implement labd2explst_syn_type (xs) = let fn f ( x: labd2exp ) : labs2exp = let val $SYN.DL0ABELED (l0, d2e) = x in SLABELED (l0.l0ab_lab, None(*none*), d2exp_syn_type d2e) end // end of [f] in l2l (list_map_fun (xs, f)) end // end of labd2explst_syn_type] (* ****** ****** *) implement d23exp_free (x) = ( // case+ x of | ~D23Ed2exp (d2e) => () | ~D23Ed3exp (d3e) => () // ) (* end of [d23exp_free] *) implement d23explst_free (xs) = ( // case+ xs of | ~list_vt_nil () => () | ~list_vt_cons (x, xs) => (d23exp_free (x); d23explst_free (xs)) // ) (* end of [d23explst_free] *) (* ****** ****** *) implement d3lablst_is_overld (d3ls) = ( // case+ d3ls of | list_nil () => false | list_cons (d3l, d3ls) => ( case+ d3l.d3lab_overld of | Some _ => true | None () => d3lablst_is_overld (d3ls) ) (* end of [list_cons] *) // ) (* end of [d3lablst_is_overld] *) // (* ****** ****** *) local fun aux .<>. ( d3e1: d3exp, s2f2: s2hnf ) : d3exp = d3e1 where { // val loc = d3e1.d3exp_loc val s2e1 = d3e1.d3exp_type val s2f1 = s2exp2hnf (s2e1) val s2e1 = s2hnf2exp (s2f1) val s2e2 = s2hnf2exp (s2f2) // (* val () = println! ("d3exp_trdn: aux: s2e1 = ", s2e1) // end of [val] val () = println! ("d3exp_trdn: aux: s2e2 = ", s2e2) // end of [val] *) // val err = $SOL.s2hnf_tyleq_solve(loc, s2f1, s2f2) // end of [val] val () = if (err != 0) then let val () = prerr_error3_loc(loc) // end of [val] val () = filprerr_ifdebug "d3exp_trdn" val () = prerr ": the dynamic expression cannot be assigned the type [" val () = prerr_s2exp (s2e2) val () = prerr "]." val () = prerr_newline () val () = prerr_the_staerrlst () // in the_trans3errlst_add(T3E_d3exp_trdn(d3e1, s2e2)) end // end of [if] // end of [val] // val ((*update*)) = ( case+ s2e1.s2exp_node of // case+ | S2EVar _ => d3exp_set_type(d3e1, s2e2) // // HX-2016-12-21: // Fixing bug-2016-06-26.dats // | _(*non-S2EVar*) => ((*void*)) ) // // *) // } (* end of [aux] *) in (* in of [local] *) implement d3exp_trdn (d3e1, s2e2) = let // val s2f2 = s2exp2hnf (s2e2) // in // case+ s2e2.s2exp_node of | S2Erefarg (_, s2e2) => d3exp_trdn (d3e1, s2e2) | _ => aux (d3e1, s2f2) // end (* end of [d3exp_trdn] *) end // end of [local] (* ****** ****** *) implement d3explst_trdn_arg (d3es, s2es) = case+ d3es of | list_cons (d3e, d3es) => ( case+ s2es of | list_cons (s2e, s2es) => let val d3e = d3exp_trdn (d3e, s2e) in list_cons (d3e, d3explst_trdn_arg (d3es, s2es)) end // end of [list_cons] | list_nil () => list_nil () ) // end of [list_cons] | list_nil () => list_nil () // end of [d3explst_trdn_arg] (* ****** ****** *) implement d3explst_get_ind (xs) = let // fun f (x: d3exp): s2exp = let val () = d3exp_open_and_add (x) in d3exp_get_type (x) end // end of [d3exp_get_ind] // in l2l (list_map_fun (xs, f)) end // end of [d3explst_get_ind] (* ****** ****** *) (* end of [pats_trans3_util.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_kwds.dats0000644000175000017500000002234413431250607022055 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_symbol.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_lexing.sats" // for tokenizing staload "./pats_tokbuf.sats" // for token buffering (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) implement is_AS (x) = case+ x of | T_AS () => true | _ => false implement p_AS (buf, bt, err) = ptoken_fun (buf, bt, err, is_AS, PE_AS) (* ****** ****** *) implement is_AND (x) = case+ x of | T_AND () => true | _ => false implement p_AND (buf, bt, err) = ptoken_fun (buf, bt, err, is_AND, PE_AND) implement p_AND_test (buf) = ptoken_test_fun (buf, is_AND) (* ****** ****** *) implement is_END (x) = case+ x of | T_END () => true | _ => false implement p_END (buf, bt, err) = ptoken_fun (buf, bt, err, is_END, PE_END) (* ****** ****** *) implement is_OF (x) = case+ x of | T_OF () => true | _ => false implement p_OF (buf, bt, err) = ptoken_fun (buf, bt, err, is_OF, PE_OF) implement is_IN (x) = case+ x of | T_IN () => true | _ => false implement p_IN (buf, bt, err) = ptoken_fun (buf, bt, err, is_IN, PE_IN) (* ****** ****** *) implement is_IF (x) = case+ x of | T_IF () => true | _ => false implement p_IF (buf, bt, err) = ptoken_fun (buf, bt, err, is_IF, PE_IF) implement is_SIF (x) = case+ x of | T_SIF () => true | _ => false implement p_SIF (buf, bt, err) = ptoken_fun (buf, bt, err, is_SIF, PE_SIF) (* ****** ****** *) implement is_CASE (x) = case+ x of | T_CASE _ => true | _ => false implement p_CASE (buf, bt, err) = ptoken_fun (buf, bt, err, is_CASE, PE_CASE) implement is_SCASE (x) = case+ x of | T_SCASE () => true | _ => false implement p_SCASE (buf, bt, err) = ptoken_fun (buf, bt, err, is_SCASE, PE_SCASE) (* ****** ****** *) implement is_IFCASE (x) = case+ x of | T_IFCASE () => true | _ => false implement p_IFCASE (buf, bt, err) = ptoken_fun (buf, bt, err, is_IFCASE, PE_IFCASE) (* ****** ****** *) implement is_THEN (x) = case+ x of | T_THEN () => true | _ => false implement p_THEN (buf, bt, err) = ptoken_fun (buf, bt, err, is_THEN, PE_THEN) implement is_ELSE (x) = case+ x of | T_ELSE () => true | _ => false implement p_ELSE (buf, bt, err) = ptoken_fun (buf, bt, err, is_ELSE, PE_ELSE) (* ****** ****** *) implement is_REC (x) = case+ x of | T_REC () => true | _ => false implement p_REC (buf, bt, err) = ptoken_fun (buf, bt, err, is_REC, PE_REC) implement p_REC_test (buf) = ptoken_test_fun (buf, is_REC) (* ****** ****** *) implement is_WITH (x) = case+ x of | T_WITH () => true | _ => false implement p_WITH (buf, bt, err) = ptoken_fun (buf, bt, err, is_WITH, PE_WITH) implement is_WHEN (x) = case+ x of | T_WHEN () => true | _ => false implement p_WHEN (buf, bt, err) = ptoken_fun (buf, bt, err, is_WHEN, PE_WHEN) (* ****** ****** *) implement is_FORSTAR (x) = case+ x of | T_FORSTAR () => true | _ => false implement p_FORSTAR (buf, bt, err) = ptoken_fun (buf, bt, err, is_FORSTAR, PE_FOR) implement is_WHILESTAR (x) = case+ x of | T_WHILESTAR () => true | _ => false implement p_WHILESTAR (buf, bt, err) = ptoken_fun (buf, bt, err, is_WHILESTAR, PE_WHILE) implement is_TRY (x) = case+ x of | T_TRY () => true | _ => false implement p_TRY (buf, bt, err) = ptoken_fun (buf, bt, err, is_TRY, PE_TRY) (* ****** ****** *) implement is_BAR (x) = case+ x of | T_BAR () => true | _ => false implement p_BAR (buf, bt, err) = ptoken_fun (buf, bt, err, is_BAR, PE_BAR) implement p_BAR_test (buf) = ptoken_test_fun (buf, is_BAR) implement is_COLON (x) = case+ x of | T_COLON () => true | _ => false implement p_COLON (buf, bt, err) = ptoken_fun (buf, bt, err, is_COLON, PE_COLON) implement p_COLON_test (buf) = ptoken_test_fun (buf, is_COLON) implement is_COMMA (x) = case+ x of | T_COMMA () => true | _ => false implement p_COMMA (buf, bt, err) = ptoken_fun (buf, bt, err, is_COMMA, PE_COMMA) implement p_COMMA_test (buf) = ptoken_test_fun (buf, is_COMMA) implement is_SEMICOLON (x) = case+ x of | T_SEMICOLON () => true | _ => false implement p_SEMICOLON (buf, bt, err) = ptoken_fun (buf, bt, err, is_SEMICOLON, PE_SEMICOLON) implement p_SEMICOLON_test (buf) = ptoken_test_fun (buf, is_SEMICOLON) // end of [p_SEMICOLON_test] implement is_BARSEMI (x) = case+ x of | T_BAR () => true | T_SEMICOLON () => true | _ => false implement p_BARSEMI_test (buf) = ptoken_test_fun (buf, is_BARSEMI) (* ****** ****** *) implement is_LPAREN (x) = case+ x of | T_LPAREN () => true | _ => false implement p_LPAREN (buf, bt, err) = ptoken_fun (buf, bt, err, is_LPAREN, PE_LPAREN) implement is_RPAREN (x) = case+ x of | T_RPAREN () => true | _ => false implement p_RPAREN (buf, bt, err) = ptoken_fun (buf, bt, err, is_RPAREN, PE_RPAREN) (* ****** ****** *) implement is_LBRACKET (x) = case+ x of | T_LBRACKET () => true | _ => false implement p_LBRACKET (buf, bt, err) = ptoken_fun (buf, bt, err, is_LBRACKET, PE_LBRACKET) implement is_RBRACKET (x) = case+ x of | T_RBRACKET () => true | _ => false implement p_RBRACKET (buf, bt, err) = ptoken_fun (buf, bt, err, is_RBRACKET, PE_RBRACKET) (* ****** ****** *) implement is_LBRACE (x) = case+ x of | T_LBRACE () => true | _ => false implement p_LBRACE (buf, bt, err) = ptoken_fun (buf, bt, err, is_LBRACE, PE_LBRACE) implement is_RBRACE (x) = case+ x of | T_RBRACE () => true | _ => false implement p_RBRACE (buf, bt, err) = ptoken_fun (buf, bt, err, is_RBRACE, PE_RBRACE) (* ****** ****** *) implement is_BANG (x) = case+ x of | T_BANG () => true | _ => false implement p_BANG (buf, bt, err) = ptoken_fun (buf, bt, err, is_BANG, PE_BANG) // end of [p_BANG] implement is_DOT (x) = case+ x of | T_DOT () => true | _ => false implement p_DOT (buf, bt, err) = ptoken_fun (buf, bt, err, is_DOT, PE_DOT) // end of [p_DOT] implement is_EQ (x) = case+ x of | T_EQ () => true | _ => false implement p_EQ (buf, bt, err) = ptoken_fun (buf, bt, err, is_EQ, PE_EQ) // end of [p_EQ] implement is_EQGT (x) = case+ x of | T_EQGT () => true | _ => false // end of [is_EQGT] implement p_EQGT (buf, bt, err) = ptoken_fun (buf, bt, err, is_EQGT, PE_EQGT) // end of [p_EQGT] implement is_GT (x) = case+ x of | T_GT () => true | _ => false // end of [is_GT] implement p_GT (buf, bt, err) = ptoken_fun (buf, bt, err, is_GT, PE_GT) // end of [p_GT] implement is_GTDOT (x) = case+ x of | T_GTDOT () => true | _ => false // end of [is_GTDOT] implement p_GTDOT (buf, bt, err) = ptoken_fun (buf, bt, err, is_GTDOT, PE_GTDOT) // end of [p_GTDOT] implement is_GTLT (x) = case+ x of | T_GTLT () => true | _ => false // end of [is_GTLT] implement p_GTLT (buf, bt, err) = ptoken_fun (buf, bt, err, is_GTLT, PE_GTLT) // end of [p_GTLT] implement p_GTLT_test (buf) = ptoken_test_fun (buf, is_GTLT) (* ****** ****** *) implement is_SRPTHEN (x) = case+ x of | T_SRPTHEN () => true | _ => false // end of [is_SRPTHEN] implement p_SRPTHEN (buf, bt, err) = ptoken_fun (buf, bt, err, is_SRPTHEN, PE_SRPTHEN) // end of [p_SRPTHEN] implement is_SRPENDIF (x) = case+ x of | T_SRPENDIF () => true | _ => false // end of [is_SRPENDIF] implement p_SRPENDIF (buf, bt, err) = ptoken_fun (buf, bt, err, is_SRPENDIF, PE_SRPENDIF) // end of [p_SRPENDIF] (* ****** ****** *) implement is_EOF (x) = case+ x of | T_EOF () => true | _ => false // end of [is_EOF] implement p_EOF (buf, bt, err) = ptoken_fun (buf, bt, err, is_EOF, PE_EOF) // end of [p_EOF] (* ****** ****** *) implement is_ATLPAREN (x) = case+ x of | T_ATLPAREN () => true | _ => false // end of [is_ATLPAREN] implement is_LPAREN_deco (x) = case+ x of | T_ATLPAREN () => true | T_QUOTELPAREN () => true | _ => false // end of [is_LPAREN_deco] implement is_ATLBRACE (x) = case+ x of | T_ATLBRACE () => true | _ => false // end of [is_ATLBRACE] implement is_LBRACE_deco (x) = case+ x of | T_ATLBRACE () => true | T_QUOTELBRACE () => true | _ => false // end of [is_LBRACE_deco] (* ****** ****** *) (* end of [pats_parsing_kwds.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2_impdec.dats0000644000175000017500000005725613431250607022126 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: June, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans2_impdec" (* ****** ****** *) staload SYM = "./pats_symbol.sats" staload SYN = "./pats_syntax.sats" macdef prerr_dqid (dq, id) = ($SYN.prerr_d0ynq ,(dq); $SYM.prerr_symbol ,(id)) // end of [prerr_dqid] (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans2.sats" staload "./pats_trans2_env.sats" (* ****** ****** *) #define :: list_cons #define l2l list_of_list_vt macdef list_sing (x) = list_cons (,(x), list_nil) (* ****** ****** *) fun i1mpdec_select_d2cst ( d1c0: d1ecl, impdec: i1mpdec ) : Option_vt (d2cst) = let // fn auxerr1 ( d1c: i1mpdec ) : void = let val qid = d1c.i1mpdec_qid val dq = qid.impqi0de_qua and id = qid.impqi0de_sym val () = prerr_error2_loc (d1c.i1mpdec_loc) val () = prerr ": there is no suitable dynamic constant declared for [" val () = prerr_dqid (dq, id) val () = prerr "]." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [auxerr1] fn auxerr2 ( d1c: i1mpdec ) : void = let val qid = d1c.i1mpdec_qid val dq = qid.impqi0de_qua and id = qid.impqi0de_sym val () = prerr_error2_loc (d1c.i1mpdec_loc) val () = prerr ": the identifier [" val () = prerr_dqid (dq, id) val () = prerr "] does not refer to a declared dynamic constant." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [auxerr2] fn auxerr3 ( d1c: i1mpdec ) : void = let val qid = d1c.i1mpdec_qid val dq = qid.impqi0de_qua and id = qid.impqi0de_sym val () = prerr_error2_loc (d1c.i1mpdec_loc) val () = prerr ": the identifier [" val () = prerr_dqid (dq, id) val () = prerr "] is unrecognized." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [auxerr3] // val qid = impdec.i1mpdec_qid val dq = qid.impqi0de_qua and id = qid.impqi0de_sym val def = impdec.i1mpdec_def // fun aux1 ( d2pis: d2pitmlst ) : List_vt (d2cst) = case+ d2pis of | list_cons (d2pi, d2pis) => let val D2PITM (_(*pval*), d2i) = d2pi in case+ d2i of | D2ITMcst (d2c) => let val d2cs = aux1 (d2pis) val ismat = d2cst_match_def (d2c, def) in if ismat then list_vt_cons (d2c, d2cs) else d2cs end (* end of [D2ITMcst] *) | _ => aux1 (d2pis) end // end of [list_cons] | list_nil () => list_vt_nil () (* end of [aux1] *) // fun aux2 ( d2cs: List_vt (d2cst) ) : Option_vt (d2cst) = case+ d2cs of | ~list_vt_cons (d2c, d2cs) => let val () = list_vt_free (d2cs) in Some_vt (d2c) end (* end of [list_vt_cons] *) | ~list_vt_nil () => let val () = auxerr1 (impdec) in None_vt () // HX: error is reported end (* end of [list_vt_nil] *) (* end of [aux2] *) // val ans = the_d2expenv_find_qua (dq, id) // in // case+ ans of | ~Some_vt (d2i) => ( case+ d2i of | D2ITMcst (d2c) => Some_vt (d2c) | D2ITMsymdef (sym, d2pis) => let val d2cs = aux1 (d2pis) in aux2 (d2cs) end // end of [D2ITMsymdef] | _ => let val () = auxerr2 (impdec) in None_vt () // HX: error is reported end (* end of [_] *) ) // end of [Some_vt] | ~None_vt () => let val () = auxerr3 (impdec) in None_vt () // HX: error is reported end (* end of [None_vt] *) // end // end of [i1mpdec_select_d2cst] (* ****** ****** *) fun d1exp_tr_ann ( d1e0: d1exp, s2e0: s2exp ) : d2exp = let // val loc0 = d1e0.d1exp_loc val s2f0 = s2exp2hnf (s2e0) val s2e0 = s2hnf2exp (s2f0) // (* val () = ( print "d1exp_tr_ann: d1e0 = "; print_d1exp (d1e0); print_newline (); print "d1exp_tr_ann: s2f0 = "; print_s2exp (s2e0); print_newline (); ) // end of [val] *) // fn auxerr ( d1e0: d1exp, s2e0: s2exp, locarg: location, serr: int ) : void = let val () = prerr_error2_loc (locarg) val () = prerr ": static arity mismatch" val () = if serr < 0 then prerr ": more arguments are expected." val () = if serr > 0 then prerr ": fewer arguments are expected." val () = prerr_newline () in the_trans2errlst_add (T2E_d1exp_tr_ann (d1e0, s2e0)) end // end of [auxerr] // in // case+ s2e0.s2exp_node of | S2Euni (s2vs, s2ps, s2e) => ( case+ d1e0.d1exp_node of | D1Elam_sta_ana (locarg, arg, body) => let // var serr: int = 0 val (sub, s2vs) = s1vararg_bind_svarlst (arg, s2vs, serr) val s2vs = list_of_list_vt (s2vs) val () = if serr != 0 then auxerr (d1e0, s2e0, locarg, serr) // val (pf_s2expenv | ()) = the_s2expenv_push_nil () val () = the_s2expenv_add_svarlst (s2vs) val s2ps = s2explst_subst (sub, s2ps) and s2e = s2exp_subst (sub, s2e) val () = stasub_free (sub) val body = d1exp_tr_ann (body, s2e) val () = the_s2expenv_pop_free (pf_s2expenv | (*none*)) in d2exp_lam_sta (loc0, s2vs, s2ps, body) end // end of [D1Elam_sta_ana] | _ => let val d2e0 = d1exp_tr_ann (d1e0, s2e) in d2exp_lam_sta (loc0, s2vs, s2ps, d2e0) end // end of [_] ) // end of [S2Euni] | S2Efun ( fc, lin1, s2fe, npf1, s2es_arg, s2e_res ) => ( case+ d1e0.d1exp_node of | D1Elam_dyn ( lin2, p1t_arg, d1e_body ) => let val @(p2ts_arg, d2e_body) = d1exp_tr_arg_body_ann ( d1e0, fc, lin1, s2fe, npf1, s2es_arg, s2e_res, lin2, p1t_arg, d1e_body ) // end of [val] in d2exp_lam_dyn (loc0, lin1, npf1, p2ts_arg, d2e_body) end // end of [D2Elam_dyn] | D1Elaminit_dyn ( lin2, p1t_arg, d1e_body ) => let val @(p2ts_arg, d2e_body) = d1exp_tr_arg_body_ann ( d1e0, fc, lin1, s2fe, npf1, s2es_arg, s2e_res, lin2, p1t_arg, d1e_body ) // end of [val] in d2exp_laminit_dyn (loc0, lin1, npf1, p2ts_arg, d2e_body) end // end of [D2Elam_dyn] | _ => let val d2e0 = d1exp_tr (d1e0) in d2exp_ann_type (loc0, d2e0, s2e0) end (* end of [_] *) ) // end of [S2Efun] | _ => let val d2e0 = d1exp_tr d1e0 in d2exp_ann_type (loc0, d2e0, s2e0) end (* end of [_] *) // end // end of [d1exp_tr_ann] and d1exp_tr_arg_body_ann ( d1e0: d1exp , fc: funclo, lin1: int , s2fe: s2eff, npf1: int , s2es_arg: s2explst, s2e_res: s2exp , lin2: int , p1t_arg: p1at, d1e_body: d1exp ) : @(p2atlst, d2exp) = let (* val () = ( println! ("d1exp_tr_arg_body_ann: p1t_arg = ", p1t_arg); println! ("d1exp_tr_arg_body_ann: s2es_arg = ", s2es_arg); println! ("d1exp_tr_arg_body_ann: d1e_body = ", d1e_body); ) // end of [val] *) val () = let fun auxck .<>. ( d1e0: d1exp, fc: funclo ) : void = case+ fc of | FUNCLOclo (knd) when knd = 0 => let val () = prerr_error2_loc (d1e0.d1exp_loc) val () = filprerr_ifdebug "d1exp_tr_arg_body_ann" val () = prerr ": the function cannot be given an unboxed closure type."; val ((*void*)) = prerr_newline ((*void*)) in the_trans2errlst_add (T2E_d1exp_tr (d1e0)) end // end of [FUNCLOclo] | _ => () // end of [auxck] in auxck (d1e0, fc) end (* end of [val] *) // val () = let fun auxck .<>. ( d1e0: d1exp, lin1: int, lin2: int ) : void = if lin1 != lin2 then let val loc0 = d1e0.d1exp_loc val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug "d1exp_tr_arg_body_ann" val () = if lin1 < lin2 then prerr ": linear function is given a nonlinear type." val () = if lin1 > lin2 then prerr ": nonlinear function is given a linear type." val ((*void*)) = prerr_newline () in the_trans2errlst_add (T2E_d1exp_tr (d1e0)) end // end of [if] in auxck (d1e0, lin1, lin2) end (* end of [val] *) // var wths1es = WTHS1EXPLSTnil () val p2t_arg = p1at_tr_arg (p1t_arg, wths1es) // val () = let fun auxck .<>. ( // check for refval types d1e0: d1exp, p1t_arg: p1at, wths1es: wths1explst ) : void = let val isnone = wths1explst_is_none (wths1es) in if ~isnone then let val loc = p1t_arg.p1at_loc val () = prerr_error2_loc (loc) val () = filprerr_ifdebug "d1exp_tr_arg_body_ann" val () = prerr ": the function argument cannot be ascribed refval types." val ((*void*)) = prerr_newline () in the_trans2errlst_add (T2E_d1exp_tr (d1e0)) end (* end of [if] *) end // end of [auxck] in auxck (d1e0, p1t_arg, wths1es) end (* end of [val] *) // var npf2: int = ~1 val p2ts_arg = ( case+ p2t_arg.p2at_node of | P2Tlist (npf, p2ts) => (npf2 := npf; p2ts) | _ => list_sing (p2t_arg) ) : p2atlst // end of [val] // val () = let fun auxck .<>. ( d1e0: d1exp, npf1: int, npf2: int ) : void = if npf1 != npf2 then let // check for pfarity match val () = prerr_error2_loc (d1e0.d1exp_loc) val () = filprerr_ifdebug "d1exp_tr_arg_body_ann" val () = prerr ": proof arity mismatch" val () = prerrf (": the expected number of proof arguments is [%i]", @(npf1)) val () = prerr_newline () in the_trans2errlst_add (T2E_d1exp_tr (d1e0)) end // end of [if] // end of [auxck] in auxck (d1e0, npf1, npf2) end (* end of [val] *) // val p2ts_arg = let // fn auxerr ( d1e0: d1exp, serr: int ) : void = let val loc0 = d1e0.d1exp_loc val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug "d1exp_tr_arg_body_ann" val () = prerr ": arity mismatch" val () = if serr < 0 then prerr ": more arguments are expected." val () = if serr > 0 then prerr ": fewer arguments are expected." val ((*void*)) = prerr_newline () in the_trans2errlst_add (T2E_d1exp_tr (d1e0)) end // end of [auxerr] // fun aux ( p2ts: p2atlst, s2es: s2explst, err: &int ) : p2atlst = case+ (p2ts, s2es) of | (p2t :: p2ts, s2e :: s2es) => let val s2f = s2exp_hnfize (s2e) val p2t = p2at_ann (p2t.p2at_loc, p2t, s2f) val p2ts = aux (p2ts, s2es, err) in list_cons (p2t, p2ts) end | (list_nil (), list_nil ()) => list_nil () | (list_cons _, list_nil ()) => let val () = err := err + 1 in list_nil () end | (list_nil (), list_cons _) => let val () = err := err - 1 in list_nil () end // end of [nil, cons] (* end of [aux] *) // var serr: int = 0 val p2ts_arg = aux (p2ts_arg, s2es_arg, serr) val () = if serr != 0 then auxerr (d1e0, serr) in p2ts_arg end // end of [val] // val (pfenv | ()) = the_trans2_env_push () val () = let val s2vs = $UT.lstord2list (p2t_arg.p2at_svs) in the_s2expenv_add_svarlst s2vs end // end of [val] val () = let val d2vs = $UT.lstord2list (p2t_arg.p2at_dvs) in the_d2expenv_add_dvarlst d2vs end // end of [val] // val (pflev | ()) = the_d2varlev_inc () // val () = let var err: int = 0 val () = (case+ d1e_body.d1exp_node of | D1Eann_effc _ => (err := err + 1) | D1Eann_funclo _ => (err := err + 1) | _ => () ) : void // end of [val] fun auxck .<>. (d1e0: d1exp, err: int): void = if err > 0 then let val () = prerr_error2_loc (d1e0.d1exp_loc) val () = prerr ": the [funclo/effect] annonation is redundant." val () = prerr_newline () in the_trans2errlst_add (T2E_d1exp_tr (d1e0)) end // end of [if] // end of [auxck] in auxck (d1e0, err) end (* end of [val] *) // val d2e_body = d1exp_tr_ann (d1e_body, s2e_res) // val () = the_d2varlev_dec (pflev | (*none*)) val () = the_trans2_env_pop (pfenv | (*none*)) // val loc_body = d2e_body.d2exp_loc val d2e_body = d2exp_ann_seff (loc_body, d2e_body, s2fe) val d2e_body = d2exp_ann_funclo (loc_body, d2e_body, fc) // in @(p2ts_arg, d2e_body) end // end of [d2exp_tr_arg_body_ann] (* ****** ****** *) fun stasub_add_tmparg ( sub: &stasub, s2qs: s2qualst, s2fss: s2explstlst ) : void = let in // case+ s2qs of | list_cons (s2q, s2qs) => ( case+ s2fss of | list_cons (s2fs, s2fss) => let val _(*err*) = stasub_addlst (sub, s2q.s2qua_svs, s2fs) in stasub_add_tmparg (sub, s2qs, s2fss) end // end of [list_cons] | list_nil () => () ) | list_nil () => () // end // end of [stasub_add_tmparg] (* ****** ****** *) // extern fun i1mpdec_tr_main ( d1c0: d1ecl , d2c: d2cst, imparg: i1mparg, impdec: i1mpdec ) : i2mpdec // end of [i1mpdec_tr_main] // implement i1mpdec_tr_main ( d1c0, d2c, imparg, impdec ) = let // fun aux_imparg_sarglst ( d1c0: d1ecl, s1as: s1arglst ) : s2varlst = s2vs where { val s2vs = s1arglst_trup (s1as) val () = the_s2expenv_add_svarlst (s2vs) } (* end of [aux_imparg_sarglst] *) // fun aux_imparg_svararg ( d1c0: d1ecl , s1v: s1vararg, s2qs: s2qualst, out: &s2varlstlst ) : s2qualst = let // fun auxerr1 .<>. (): void = let val () = prerr_error2_loc (d1c0.d1ecl_loc) val () = filprerr_ifdebug "i1mpdec_tr_main" val () = prerr ": the implementation is overly applied." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [auxerr1] fun auxerr2 .<>. ( loc: location, serr: int ) : void = let val () = prerr_error2_loc (loc) val () = filprerr_ifdebug "i1mpdec_tr_main" val () = prerr ": the implementation argument group is expected to contain " val () = prerr_string (if serr > 0 then "fewer" else "more") val () = prerr " components." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [auxerr2] // fun auxseq ( s1as: s1arglst, s2vs: s2varlst, serr: &int ) : s2varlst = ( case+ (s1as, s2vs) of | (s1a :: s1as, s2v :: s2vs) => let val s2t = s2var_get_srt (s2v) val s2v = s1arg_trdn (s1a, s2t) val s2vs = auxseq (s1as, s2vs, serr) in list_cons (s2v, s2vs) end | (list_nil (), list_nil ()) => list_nil () | (list_cons _, list_nil ()) => let val () = serr := serr + 1 in list_nil () end | (list_nil (), list_cons _) => let val () = serr := serr - 1 in list_nil () end ) (* end of [auxseq] *) // in case+ s1v of | S1VARARGone (loc) => ( case+ s2qs of | list_cons (s2q, s2qs) => let val s2vs = list_map_fun (s2q.s2qua_svs, s2var_dup) val s2vs = (l2l)s2vs val () = the_s2expenv_add_svarlst (s2vs) val () = out := list_cons (s2vs, out) in s2qs end // end of [list_cons] | list_nil () => let val () = auxerr1 () in list_nil () end // end of [list_nil] ) (* end of [S1VARARGone] *) | S1VARARGall (loc) => ( case+ s2qs of | list_cons (s2q, s2qs) => let val s2vs = list_map_fun (s2q.s2qua_svs, s2var_dup) val s2vs = (l2l)s2vs val () = the_s2expenv_add_svarlst (s2vs) val () = out := list_cons (s2vs, out) in aux_imparg_svararg (d1c0, s1v, s2qs, out) end | list_nil () => list_nil () ) (* end of [S1VARARGall] *) | S1VARARGseq (loc, s1as) => ( case+ s2qs of | list_cons (s2q, s2qs) => let var serr: int = 0 val s2vs = auxseq (s1as, s2q.s2qua_svs, serr) val () = the_s2expenv_add_svarlst (s2vs) val () = if serr != 0 then auxerr2 (loc, serr) val () = out := list_cons (s2vs, out) in s2qs end // end of [list_cons] | list_nil () => let val () = auxerr1 () in list_nil () end // end of [list_nil] ) (* end of [S1VARARGseq] *) end // end of [aux_imparg_svararg] // fun aux_imparg_svararglst ( d1c0: d1ecl , s2qs: s2qualst, s1vs: s1vararglst, out: &s2varlstlst ) : void = let fn auxerr (): void = let val () = prerr_error2_loc (d1c0.d1ecl_loc) val () = filprerr_ifdebug "i1mpdec_tr_main" val () = prerr ": the implementation is expected to be fully applied." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [auxerr] in case+ s1vs of | s1v :: s1vs => let val s2qs = aux_imparg_svararg (d1c0, s1v, s2qs, out) // end of [val] in aux_imparg_svararglst (d1c0, s2qs, s1vs, out) end // end of [::] | list_nil () => ( // // HX: make sure the implementation is fully applied // case+ s2qs of | list_cons _ => let val () = auxerr () in () end // end of [list_cons] | list_nil () => () ) (* end of [list_nil] *) end // end of [aux_imparg_svararglst] // fun aux_imparg ( d1c0: d1ecl , s2qs: s2qualst, imparg: i1mparg ) : ( s2varlst, Option_vt (s2varlstlst) ) = let in // case+ imparg of | I1MPARG_sarglst (s1as) => let val s2vs = aux_imparg_sarglst (d1c0, s1as) in (s2vs, None_vt ()) end // end of [I1MPARG_sarglst] | I1MPARG_svararglst (s1vs) => let var out: s2varlstlst = list_nil () val () = aux_imparg_svararglst (d1c0, s2qs, s1vs, out) val out = l2l (list_reverse (out)) val s2vs = l2l (list_concat (out)) in (s2vs, Some_vt (out)) end // end of [I1MPARG_svararglst] // end // end of [aux_imparg] // fun aux_tmparg_s1explst ( d1c0: d1ecl , s2vs: s2varlst, s1es: s1explst, serr: &int ) : s2explst = let (* val () = ( print "aux_tmparg_s1explst: s2vs = "; print_s2varlst (s2vs); print_newline () ) // end of [val] *) in case+ (s2vs, s1es) of | (s2v :: s2vs, s1e :: s1es) => let val s2t = s2var_get_srt (s2v) val s2e = s1exp_trdn (s1e, s2t) val s2es = aux_tmparg_s1explst (d1c0, s2vs, s1es, serr) in list_cons (s2e, s2es) end // end of [::, ::] | (list_nil (), list_nil ()) => list_nil () | (list_cons _, list_nil ()) => let val () = serr := serr + 1 in list_nil () end | (list_nil (), list_cons _) => let val () = serr := serr - 1 in list_nil () end end // end of [aux_tmparg_s1explst] // fun aux_tmparg_marglst ( d1c0: d1ecl, s2qs: s2qualst, xs: t1mpmarglst ) : s2explstlst = let // fn auxerr1 ( x: t1mpmarg, serr: int ) : void = let val () = prerr_error2_loc (x.t1mpmarg_loc) val () = filprerr_ifdebug "i1mpdec_tr_main: aux_tmparg_marglst" val () = prerr ": the template argument group is expected to be contain " val () = if serr > 0 then prerr_string "more components." val () = if serr < 0 then prerr_string "fewer components." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [auxerr1] // fn auxerr2 (): void = let val () = prerr_error2_loc (d1c0.d1ecl_loc) val () = filprerr_ifdebug "i1mpdec_tr_main: aux_tmparg_marglst" val () = prerr ": the template is expected to be fully applied but it is not." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [auxerr2] // fn auxerr3 (): void = let val () = prerr_error2_loc (d1c0.d1ecl_loc) val () = filprerr_ifdebug "i1mpdec_tr_main: aux_tmparg_marglst" val () = prerr ": the template is overly applied." val () = prerr_newline () in the_trans2errlst_add (T2E_d1ecl_tr_impdec (d1c0)) end // end of [auxerr3] in case+ (s2qs, xs) of | (s2q :: s2qs, x :: xs) => let var serr: int = 0 val s2es = aux_tmparg_s1explst (d1c0, s2q.s2qua_svs, x.t1mpmarg_arg, serr) val () = if serr != 0 then auxerr1 (x, serr) val s2ess = aux_tmparg_marglst (d1c0, s2qs, xs) in list_cons (s2es, s2ess) end | (list_nil (), list_nil ()) => list_nil () | (list_cons _, list_nil ()) => let val () = auxerr2 () in list_nil () end | (list_nil (), list_cons _) => let val () = auxerr3 () in list_nil () end end // end of [aux_tmparg_s1explstlst] // fun aux_tmparg ( d1c0: d1ecl , s2qs: s2qualst, tmparg: t1mpmarglst ) : s2explstlst = let in aux_tmparg_marglst (d1c0, s2qs, tmparg) end // end of [aux_tmparg] // fun auxerr_tmparg (d1c0: d1ecl): void = let val () = prerr_error2_loc (d1c0.d1ecl_loc) val () = filprerr_ifdebug "i1mpdec_tr_main" val () = prerr ": the redundantly provided template arguments are ignored." val () = prerr_newline ((*void*)) in the_trans2errlst_add (T2E_d1ecl_tr_impdec_tmparg (d1c0)) end // end of [auxerr_tmparg] // fun auxerr_nontop (d1c0: d1ecl): void = let val () = prerr_error2_loc (d1c0.d1ecl_loc) val () = filprerr_ifdebug "i1mpdec_tr_main" val () = prerr ": the implementation should be at the top-level but it is not." val () = prerr_newline ((*void*)) in the_trans2errlst_add (T2E_d1ecl_tr_impdec_nontop (d1c0)) end // end of [auxerr_nontop] // val s2qs = d2cst_get_decarg (d2c) val isdecarg = list_is_cons (s2qs) val tmparg = impdec.i1mpdec_tmparg var tmpargerr: int = 0 // HX: redundancy val (pfenv | ()) = the_s2expenv_push_nil () val () = if isdecarg then the_tmplev_inc () val (imparg, opt) = aux_imparg (d1c0, s2qs, imparg) val sfess = ( case+ opt of | ~Some_vt (s2vss) => let fn f ( s2vs: s2varlst ) : s2explst = l2l (list_map_fun (s2vs, s2exp_var)) // end of [f] val () = ( case+ tmparg of | list_cons _ => tmpargerr := 1 | _ => () ) : void // end of [val] in l2l (list_map_fun (s2vss, f)) end // end of [Some] | ~None_vt ((*void*)) => aux_tmparg (d1c0, s2qs, tmparg) ) : s2explstlst // end of [val] // val () = if tmpargerr > 0 then auxerr_tmparg (d1c0) // val tmparg = sfess val tmpgua = list_nil () // HX: temp guards not supported // val () = ( case+ sfess of | list_nil () => if the_d2varlev_get () > 0 then auxerr_nontop (d1c0) | list_cons _ => () ) (* end of [val] *) // val d2e = let var sub = stasub_make_nil () val () = stasub_add_tmparg (sub, s2qs, tmparg) val s2e = d2cst_get_type (d2c) val s2e = s2exp_subst (sub, s2e) // proper instantiation val ((*freed*)) = stasub_free (sub) in d1exp_tr_ann (impdec.i1mpdec_def, s2e) end // end of [val] // val () = if isdecarg then the_tmplev_dec () val () = the_s2expenv_pop_free (pfenv | (*none*)) // val () = d2cst_set_def (d2c, Some d2e) // val loc = impdec.i1mpdec_loc val qid = impdec.i1mpdec_qid val locid = qid.impqi0de_loc // in // i2mpdec_make (loc, locid, d2c, imparg, tmparg, tmpgua, d2e) // end // end of [i1mpdec_tr_main] // (* ****** ****** *) implement i1mpdec_tr (d1c0) = let val-D1Cimpdec (knd, imparg, impdec) = d1c0.d1ecl_node val d2copt = i1mpdec_select_d2cst (d1c0, impdec) in case+ d2copt of | ~Some_vt (d2c) => let val impdec = i1mpdec_tr_main (d1c0, d2c, imparg, impdec) in Some_vt (impdec) end // end of [Some_vt] | ~None_vt ((*void*)) => None_vt () end // end of [i1mpdec_tr] (* ****** ****** *) (* end of [pats_trans2_impdec.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3_icnstr.dats0000644000175000017500000002523513431250607023215 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_constraint3_icnstr" // (* ****** ****** *) staload "./pats_intinf.sats" (* ****** ****** *) // staload ERR = "./pats_error.sats" staload LOC = "./pats_location.sats" // overload prerr with $LOC.prerr_location // (* ****** ****** *) // staload "./pats_staexp2.sats" // (* ****** ****** *) staload "./pats_lintprgm.sats" staload "./pats_constraint3.sats" (* ****** ****** *) local // staload LM = "libats/SATS/linmap_avltree.sats" staload _(*anon*) = "libats/DATS/linmap_avltree.dats" // assume s2varindmap (n:int) = $LM.map (s2var, natLt (n)) fn cmp ( x1: s2var, x2: s2var ) : int = compare_s2var_s2var (x1, x2) in // in of [local] implement s2varindmap_make {n} (s2vs) = let // viewtypedef vmap = s2varindmap (n) // fun loop {k,nk:nat | k+nk==n} .. ( s2vs: !list_vt (s2var, k), nk: int nk, vmap: &vmap ) : int (n) = case+ s2vs of | list_vt_cons (s2v, !p_s2vs) => let var res: natLt (n) // uninitialized val _(*found*) = $LM.linmap_insert (vmap, s2v, nk, cmp, res) prval () = opt_clear (res) val n = loop (!p_s2vs, nk+1, vmap) in fold@ (s2vs); n end // end of [list_vt_cons] | list_vt_nil () => (fold@ (s2vs); nk) // end of [loop] // var vim : vmap = $LM.linmap_make_nil () val n = loop {n,0} (s2vs, 0, vim) // in (vim, n) end // end of [s2varindmap_make] implement s2varindmap_find {n} (vim, s2v) = let typedef res = natLt (n) var x: res? // unintialized val found = $LM.linmap_search (vim, s2v, cmp, x) in if found then let prval () = opt_unsome {res} (x) in x+1 end else let prval () = opt_unnone {res} (x) in 0(*error*) end (* end of [if] *) end // end of [s2varindmap] implement s2varindmap_free (vim) = $LM.linmap_free (vim) end // end of [local] (* ****** ****** *) extern fun{a:t@ype} myintvec_addby_const {n:pos} ( iv: !myintvec (a, n), cff: myint(a) ) : void // end of [myintvec_addby_const] extern fun{a:t@ype} myintvec_addby_cffvar {n:nat} ( iv: !myintvec (a, n+1) , vim: !s2varindmap (n), cff: myint(a), s2v: s2var, err: &int ) : void // end of [myintvec_addby_cffvar] (* ****** ****** *) implement{a} myintvec_addby_const (iv, cff) = () where { val (pf | p) = myintvec_takeout (iv) prval (pf1, pf2) = array_v_uncons {myint(a)} (pf) val () = !p := add01_myint_myint (!p, cff) val () = myint_free (cff) prval () = pf := array_v_cons {myint(a)} (pf1, pf2) prval () = myintvecout_addback (pf | iv) } // end of [myintvec_addby_const] implement{a} myintvec_addby_cffvar (iv, vim, cff, s2v, err) = let val i = s2varindmap_find (vim, s2v) in // if i > 0 then let val (pf | p) = myintvec_takeout (iv) val i = size1_of_int1 (i) val (pf1, fpf2 | pi) = array_ptr_takeout (pf | p, i) val () = !pi := add01_myint_myint (!pi, cff) val () = myint_free (cff) prval () = pf := fpf2 (pf1) prval () = myintvecout_addback (pf | iv) in (*nothing*) end else let val () = myint_free (cff) in err := err + 1 end // end of [if] // end // end of [myintvec_addby_cffvar] (* ****** ****** *) implement{a} s3exp2icnstr {n} (loc0, vim, n, s3e0) = let (* val () = println! ("s3exp2icnstr: s3e0 = ", s3e0) *) in // case+ s3e0 of | S3Ebool (b) => ( if b then ICveclst (0(*conj*), list_vt_nil) // ic_true else ICveclst (1(*disj*), list_vt_nil) // ic_false // end of [if] ) // end of [S3Ebool] // | S3Ebvar (s2v) => let val n1 = n + 1 val iv = myintvec_make (n1) val cff = myint_make_int (1) var err: int = 0 val () = myintvec_addby_cffvar (iv, vim, cff, s2v, err) val () = myintvec_add_int (iv, ~1) in if err > 0 then let val () = myintvec_free (iv, n1) in ICerr (loc0, $UN.cast(s3e0)) end else ICvec (1(*eq*), iv) end // end of [S3Ebvar] // | S3Ebneg (s3e) => let val ic = s3exp2icnstr (loc0, vim, n, s3e) in icnstr_negate (ic) end // end of [S3Ebneg] // | S3Ebadd (s3e1, s3e2) => let val ic1 = s3exp2icnstr (loc0, vim, n, s3e1) val ic2 = s3exp2icnstr (loc0, vim, n, s3e2) in ICveclst (1(*disj*), list_vt_pair (ic1, ic2)) end // end of [S3Ebadd] | S3Ebmul (s3e1, s3e2) => let val ic1 = s3exp2icnstr (loc0, vim, n, s3e1) val ic2 = s3exp2icnstr (loc0, vim, n, s3e2) in ICveclst (0(*conj*), list_vt_pair (ic1, ic2)) end // end of [S3Ebmul] // | S3Ebeq (s3e1, s3e2) => let val n1 = n + 1 val ic1 = s3exp2icnstr (loc0, vim, n, s3e1) val ic2 = s3exp2icnstr (loc0, vim, n, s3e2) val ic1_neg = icnstr_negate (icnstr_copy (ic1, n1)) val ic2_neg = icnstr_negate (icnstr_copy (ic2, n1)) val ic12 = ICveclst (0(*conj*), list_vt_pair (ic1, ic2)) val ic12_neg = ICveclst (0(*conj*), list_vt_pair (ic1_neg, ic2_neg)) in ICveclst (1(*disj*), list_vt_pair (ic12, ic12_neg)) end // end of [S3Ebeq] | S3Ebneq (s3e1, s3e2) => let val n1 = n + 1 val ic1 = s3exp2icnstr (loc0, vim, n, s3e1) val ic2 = s3exp2icnstr (loc0, vim, n, s3e2) val ic1_neg = icnstr_negate (icnstr_copy (ic1, n1)) val ic2_neg = icnstr_negate (icnstr_copy (ic2, n1)) val ic_1_neg2 = ICveclst (0(*conj*), list_vt_pair (ic1, ic2_neg)) val ic_neg1_2 = ICveclst (0(*conj*), list_vt_pair (ic1_neg, ic2)) in ICveclst (1(*disj*), list_vt_pair (ic_1_neg2, ic_neg1_2)) end // end of [S3Ebneq] // | S3Ebineq (knd, s3e) => let var err: int = 0 val iv = s3exp2myintvec (vim, n, s3e, err) in if err > 0 then let val () = myintvec_free (iv, n+1) in ICerr (loc0, $UN.cast(s3e0)) end else ICvec (knd, iv) end // end of [S3Ebineq] // | S3Ebdom (s2v) => ICveclst (0(*conj*), list_vt_nil) (* | S3Ebdom (s2v) => let // 0 <= s2v <= 1 // val n1 = n + 1 var err: int = 0 // val iv0 = myintvec_make (n1) val cff0 = myint_make_int (1) val () = myintvec_addby_cffvar (iv0, vim, cff0, s2v, err) // val iv1 = myintvec_make (n1) val cff1 = myint_make_int (~1) val () = myintvec_addby_cffvar (iv1, vim, cff1, s2v, err) val () = myintvec_add_int (iv1, 1) // in if err > 0 then let val () = myintvec_free (iv0, n1) val () = myintvec_free (iv1, n1) in ICerr (loc0, $UN.cast(s3e0)) end else let val ic0 = ICvec(2(*gte*), iv0) val ic1 = ICvec(2(*gte*), iv1) in ICveclst (0(*conj*), list_vt_pair (ic0, ic1)) end (* end of [if] *) end // end of [S3Ebdom] *) // | _ => let val () = prerr_error3_loc (loc0) val () = prerrln! ( ": this constraint cannot be s3exp2icnstr-handled: s3e0 = ", s3e0 ) (* end of [val] *) val () = $ERR.abort() (* val () = assertloc (false) *) in ICerr (loc0, $UN.cast(s3e0)) end // end of [_] // end // end of [s3exp2icnstr] (* ****** ****** *) local fun{a:t@ype} myintvec_addby_s3exp {n:nat} ( iv: !myintvec (a, n+1) , vim: !s2varindmap (n), s3e0: s3exp, err: &int ) : void = let (* val () = println! ("myintvec_addby_s3exp: s3e0 = ", s3e0) *) in // case+ s3e0 of | S3Evar (s2v) => let val cff = myint_make_int (1) in myintvec_addby_cffvar (iv, vim, cff, s2v, err) end // end of [S3Evar] // (* | S3Enull () => () // HX: this one seems inaccessible *) | S3Eunit () => let val cff = myint_make_int (1) in myintvec_addby_const (iv, cff) end // end of [S3Eunit] // | S3Eicff (cff, s3e) => ( case+ s3e of | S3Evar (s2v) => let val cff = myint_make_intinf (cff) in myintvec_addby_cffvar (iv, vim, cff, s2v, err) end // end of [S3Evar] | S3Eunit () => let val cff = myint_make_intinf (cff) in myintvec_addby_const (iv, cff) end // end of [S3Evar] | _ => (err := err + 1) ) // end of [S3Eicff] | _ => (err := err + 1) // end // end of [myintvec_addby_s3exp] fun{a:t@ype} myintvec_addby_s3explst {n:nat} ( iv: !myintvec (a, n+1) , vim: !s2varindmap (n), s3es: s3explst, err: &int ) : void = case+ s3es of | list_cons (s3e, s3es) => let val () = myintvec_addby_s3exp (iv, vim, s3e, err) // end of [val] in myintvec_addby_s3explst (iv, vim, s3es, err) end // end of [list_cons] | list_nil () => () // end of [myintvec_addby_s3explst] in (* in of [local] *) implement{a} s3exp2myintvec{n} ( vim, n, s3e0, err ) = let val iv = myintvec_make (n+1) in // case+ s3e0 of | S3Evar (s2v) => iv where { val cff = myint_make_int (1) val ( ) = myintvec_addby_cffvar (iv, vim, cff, s2v, err) } // end of [S3Evar] // | S3Enull () => iv | S3Eunit () => iv where { val cff = myint_make_int (1) val ( ) = myintvec_addby_const (iv, cff) } // end of [S3Eunit] // | S3Eicff (cff, s3e) => ( case+ s3e of | S3Evar (s2v) => iv where { val cff = myint_make_intinf (cff) val ( ) = myintvec_addby_cffvar (iv, vim, cff, s2v, err) } // end of [S3Eunit] | S3Eunit () => iv where { val cff = myint_make_intinf (cff) val ( ) = myintvec_addby_const (iv, cff) } // end of [S3Eunit] | _ => (err := err + 1; iv) ) // end of [S3Eicff] // | S3Eisum (s3es) => iv where { val () = myintvec_addby_s3explst (iv, vim, s3es, err) } // end of [S3Eisum] // | _ => (err := err + 1; iv) // end // end of [s3exp2myintvec] end // end of [local] (* ****** ****** *) (* end of [pats_constraint3_icnstr.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp3_print.dats0000644000175000017500000004263413431250607022174 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2012 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload LEX = "./pats_lexing.sats" (* ****** ****** *) staload FIL = "./pats_filename.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" macdef fprint_symbol = $SYM.fprint_symbol staload SYN = "./pats_syntax.sats" macdef fprint_l0ab = $SYN.fprint_l0ab macdef fprint_i0de = $SYN.fprint_i0de macdef fprint_cstsp = $SYN.fprint_cstsp macdef fprint_d0ynq = $SYN.fprint_d0ynq (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) implement fprint_p3at (out, p3t0) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ p3t0.p3at_node of // | P3Tany (d2v) => { val () = prstr "P3Tany(" val () = fprint_d2var (out, d2v) val () = prstr ")" } | P3Tvar (d2v) => { val () = prstr "P3Tvar(" val () = fprint_d2var (out, d2v) val () = prstr ")" } // | P3Tcon ( pck, d2c, npf, p3ts ) => { val () = prstr "P3Tcon(" val () = fprint_pckind (out, pck) val () = prstr "; " val () = fprint_d2con (out, d2c) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_p3atlst (out, p3ts) val () = prstr ")" } // end of [P3Tcon] // | P3Tint (i) => fprintf (out, "P3Tint(%i)", @(i)) | P3Tintrep (s) => fprintf (out, "P3Tintrep(%s)", @(s)) // | P3Tbool (b) => let val name = if b then "true" else "false" in fprintf (out, "P3Tbool(%s)", @(name)) end // end of [P3Tbool] | P3Tchar (c) => fprintf (out, "P3Tchar(%c)", @(c)) | P3Tfloat (rep) => fprintf (out, "P3Tfloat(%s)", @(rep)) | P3Tstring (str) => fprintf (out, "P3Tstring(%s)", @(str)) // | P3Ti0nt (i) => prstr "P3Ti0nt(...)" | P3Tf0loat (f) => prstr "P3Tf0loat(...)" // | P3Tempty () => prstr "P3Tempty()" // | P3Trec _ => prstr "P3Trec(...)" | P3Tlst ( lin, s2e_elt, p3ts ) => { val () = prstr "P3Tlst(" val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_s2exp (out, s2e_elt) val () = prstr "; " val () = fprint_p3atlst (out, p3ts) val () = prstr ")" } // | P3Trefas (d2v, p3t) => { val () = prstr "P3Trefas(" val () = fprint_d2var (out, d2v) val () = prstr " -> " val () = fprint_p3at (out, p3t) val () = prstr ")" } // end of [P3Trefas] // | P3Texist (s2vs, p3t) => { val () = prstr "P3Texist(" val () = fprint_s2varlst (out, s2vs) val () = prstr "; " val () = fprint_p3at (out, p3t) val () = prstr ")" } // end of [P3Texist] // | P3Tvbox (d2v) => { val () = prstr "P3Tvbox(" val () = fprint_d2var (out, d2v) val () = prstr ")" } // end of [P3Tvbox] // | P3Tann (p3t, s2e) => { val () = prstr "P3Tann(" val () = fprint_p3at (out, p3t) val () = prstr " : " val () = fprint_s2exp (out, s2e) val () = prstr ")" } // end of [P3Tann] // | P3Terrpat ((*void*)) => prstr "P3Terr()" // end of [p3at_node] end // end of [fprint_p3at] implement print_p3at (p3t) = fprint_p3at (stdout_ref, p3t) implement prerr_p3at (p3t) = fprint_p3at (stderr_ref, p3t) (* ****** ****** *) implement fprint_p3atlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_p3at) // end of [fprint_p3atlst] (* ****** ****** *) implement fprint_d3exp (out, d3e0) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ d3e0.d3exp_node of // | D3Ecst (d2c) => { val () = prstr "D3Ecst(" val () = fprint_d2cst (out, d2c) val () = prstr ")" } | D3Evar (d2v) => { val () = prstr "D3Evar(" val () = fprint_d2var (out, d2v) val () = prstr ")" } // | D3Eint (i) => { val () = prstr "D3Eint(" val () = fprint_int (out, i) val () = prstr ")" } | D3Eintrep (rep) => { val () = prstr "D3Eintrep(" val () = fprint_string (out, rep) val () = prstr ")" } | D3Ebool (b) => { val () = prstr "D3Ebool(" val () = fprint_bool (out, b) val () = prstr ")" } | D3Echar (c) => { val () = prstr "D3Echar(" val () = fprint_char (out, c) val () = prstr ")" } | D3Efloat (rep) => { val () = prstr "D3Efloat(" val () = fprint_string (out, rep) val () = prstr ")" } | D3Estring (str) => { val () = prstr "D3Estring(" val () = fprint_string (out, str) val () = prstr ")" } // | D3Ei0nt (tok) => { val () = prstr "D3Ei0nt(" val () = $SYN.fprint_i0nt (out, tok) val () = prstr ")" } | D3Ef0loat (tok) => { val () = prstr "D3Ef0loat(" val () = $SYN.fprint_f0loat (out, tok) val () = prstr ")" } // | D3Ecstsp (csp) => { val () = prstr "D3Ecstsp(" val () = $SYN.fprint_cstsp (out, csp) val () = prstr ")" } // | D3Etyrep (s2e) => { val () = prstr "D3Etyrep(" val () = fprint_s2exp (out, s2e) // $tyrep(...) val () = prstr ")" } // | D3Eliteral (d3e) => { val () = prstr "D3Eliteral(" val () = fprint_d3exp (out, d3e) // int, float, string val () = prstr ")" } // | D3Etop () => prstr "D3Etop()" | D3Eempty () => prstr "D3Eempty()" // | D3Eextval (name) => { val () = prstr "D3Eextval(" val () = fprint_string (out, name) val ((*closing*)) = prstr ")" } | D3Eextfcall (_fun, _arg) => { val () = prstr "D3Eextfcall(" val () = fprint_string (out, _fun) val () = prstr "; " val () = fprint_d3explst (out, _arg) val ((*closing*)) = prstr ")" } | D3Eextmcall (_obj, _mtd, _arg) => { val () = prstr "D3Eextmcall(" val () = fprint_d3exp (out, _obj) val () = prstr "; " val () = fprint_string (out, _mtd) val () = prstr "; " val () = fprint_d3explst (out, _arg) val ((*closing*)) = prstr ")" } // | D3Econ ( d2c, npf, d3es ) => { val () = prstr "D3Econ(" val () = fprint_d2con (out, d2c) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d3explst (out, d3es) val () = prstr ")" } // | D3Etmpcst (d2c, _) => { val () = prstr "D3Etmpcst(" val () = fprint_d2cst (out, d2c) val () = prstr "; " val () = prstr "..." val () = prstr ")" } | D3Etmpvar (d2v, _) => { val () = prstr "D3Etmpvar(" val () = fprint_d2var (out, d2v) val () = prstr "; " val () = prstr "..." val () = prstr ")" } // | D3Efoldat (d3e) => { val () = prstr "D3Efoldat(" val () = fprint_d3exp (out, d3e) val () = prstr ")" } | D3Efreeat (d3e) => { val () = prstr "D3Efreeat(" val () = fprint_d3exp (out, d3e) val () = prstr ")" } // | D3Elet _ => prstr "D3Elet(...)" // | D3Eapp_sta (d3e) => { val () = prstr "D3Eapp_sta(" val () = fprint_d3exp (out, d3e) val () = prstr ")" } | D3Eapp_dyn ( d3e, npf, d3es ) => { val () = prstr "D3Eapp_dyn(" val () = prstr "; " val () = fprint_d3exp (out, d3e) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d3explst (out, d3es) val () = prstr ")" } // end of [D3Eapp_dyn] // | D3Eitem (d2i, t2mas) => { val () = prstr "D3Eitem(" val () = fprint_d2itm (out, d2i) val () = prstr "; " val () = fpprint_t2mpmarglst (out, t2mas) val () = prstr ")" } // | D3Eif ( _cond, _then, _else ) => { val () = prstr "D3Eif(" val () = fprint_d3exp (out, _cond) val () = prstr "; " val () = fprint_d3exp (out, _then) val () = prstr "; " val () = fprint_d3exp (out, _else) val () = prstr ")" } | D3Esif ( _cond, _then, _else ) => { val () = prstr "D3Esif(" val () = fprint_s2exp (out, _cond) val () = prstr "; " val () = fprint_d3exp (out, _then) val () = prstr "; " val () = fprint_d3exp (out, _else) val () = prstr ")" } // | D3Ecase _ => { val () = prstr "D3Ecase(" val () = prstr "..." val () = prstr ")" } | D3Escase _ => { val () = prstr "D3Escase(" val () = prstr "..." val () = prstr ")" } // | D3Eifcase _ => { val () = prstr "D3Eifcase(...)" } (* [D3Eifcase] *) // | D3Elst ( lin, s2e, d3es ) => { val () = prstr "D3Elst(" val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_s2exp (out, s2e) val () = prstr "; " val () = fprint_d3explst (out, d3es) val () = prstr ")" } // end of [D3Elst] | D3Etup ( knd, npf, d3es ) => { val () = prstr "D3Etup(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d3explst (out, d3es) val () = prstr ")" } // end of [D3Etup] | D3Erec _ => prstr "D3Erec(...)" | D3Eseq (d3es) => { val () = prstr "D3Eseq(" val () = fprint_d3explst (out, d3es) val () = prstr ")" } // end of [D3Eseq] // | D3Eselab (d3e, d3ls) => { val () = prstr "D3Eselab(" val () = fprint_d3exp (out, d3e) val () = prstr "; " val () = fprint_string (out, "...") val () = prstr ")" } // | D3Eptrofvar (d2v) => { val () = prstr "D3Eptrofvar(" val () = fprint_d2var (out, d2v) val () = prstr ")" } | D3Eptrofsel (d3e, s2rt, d3ls) => { val () = prstr "D3Eptrofsel(" val () = fprint_d3exp (out, d3e) val () = prstr "; " val () = fprint_s2exp (out, s2rt) val () = prstr "; " val () = fprint_string (out, "...") val () = prstr ")" } | D3Eviewat (d3e, d3ls) => { val () = prstr "D3Eviewat(" val () = fprint_d3exp (out, d3e) val () = prstr "; " val () = fprint_string (out, "...") val () = prstr ")" } // | D3Erefarg ( refval, freeknd, d3e ) => { val () = prstr "D3Erefarg(" val () = fprint_int (out, refval) val () = prstr "; " val () = fprint_int (out, freeknd) val () = prstr "; " val () = fprint_d3exp (out, d3e) val () = prstr ")" } // | D3Esel_var (d2v, s2rt, d3ls) => { val () = prstr "D3Esel_var(" val () = fprint_d2var (out, d2v) val () = prstr "; " val () = fprint_s2exp (out, s2rt) val () = prstr "; " val () = fprint_string (out, "...") val () = prstr ")" } | D3Esel_ptr (d3e, s2rt, d3ls) => { val () = prstr "D3Esel_ptr(" val () = fprint_d3exp (out, d3e) val () = prstr "; " val () = fprint_s2exp (out, s2rt) val () = prstr "; " val () = fprint_string (out, "...") val () = prstr ")" } | D3Esel_ref (d3e, s2rt, d3ls) => { val () = prstr "D3Esel_ref(" val () = fprint_d3exp (out, d3e) val () = prstr "; " val () = fprint_s2exp (out, s2rt) val () = prstr "; " val () = fprint_string (out, "...") val () = prstr ")" } // | D3Eassgn_var _ => prstr "D3Eassgn_var(...)" | D3Eassgn_ptr _ => prstr "D3Eassgn_ptr(...)" | D3Eassgn_ref _ => prstr "D3Eassgn_ref(...)" // | D3Exchng_var _ => prstr "D3Exchng_var(...)" | D3Exchng_ptr _ => prstr "D3Exchng_ptr(...)" | D3Exchng_ref _ => prstr "D3Exchng_ref(...)" // | D3Eviewat_assgn _ => prstr "D3Eviewat_assgn(...)" // | D3Earrpsz (s2e, d3es, asz) => { val () = prstr "D3Earrpsz(" val () = fprint_s2exp (out, s2e) val () = prstr "; " val () = fprint_d3explst (out, d3es) val () = prstr "; " val () = fprint_int (out, asz) val () = prstr ")" } | D3Earrinit ( s2e_elt, d3e_asz, d3es_elt ) => { val () = prstr "D3Earrinit(" val () = fprint_s2exp (out, s2e_elt) val () = prstr "; " val () = fprint_d3exp(out, d3e_asz) val () = prstr "; " val () = fprint_d3explst(out, d3es_elt) val () = prstr ")" } // end of [D3Earrinit] // | D3Eraise(d3e) => { val () = prstr "D3Eraise(" val () = fprint_d3exp(out, d3e) val () = prstr ")" } | D3Eeffmask (s2fe, d3e) => { val () = prstr "D3Eraise(" val () = fprint_s2eff (out, s2fe) val () = prstr "; " val () = fprint_d3exp (out, d3e) val () = prstr ")" } // | D3Evararg(d3es) => { val () = prstr "D3Evararg(" val () = fprint_d3explst(out, d3es) val ((*closing*)) = prstr ")" } // | D3Evcopyenv (knd, d2v) => { val () = prstr "D3Evcopyenv(" val () = fprint_int (out, knd) val () = prstr ", " val () = fprint_d2var (out, d2v) val () = prstr ")" } // | D3Etempenver(d2vs) => { val () = prstr "D3Etempenver(" val () = fprint_d2varlst (out, d2vs) val () = prstr ")" } // | D3Eann_type (d3e, ann) => { val () = prstr "D3Eann_type(" val () = fprint_d3exp (out, d3e) val () = prstr " : " val () = fprint_s2exp (out, ann) val () = prstr ")" } // | D3Elam_dyn ( lin, npf, _arg, _body ) => { val () = prstr "D3Elam_dyn(" val () = prstr "lin=" val () = fprint_int (out, lin) val () = prstr "; " val () = prstr "npf=" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_p3atlst (out, _arg) val () = prstr "; " val () = fprint_d3exp (out, _body) val () = prstr ")" } // end of [D3Elam_dyn] | D3Elaminit_dyn _ => prstr "D3Elaminit_dyn(...)" | D3Elam_sta ( s2vs, s2ps, _body ) => { val () = prstr "D3Elam_sta(" val () = fprint_s2varlst (out, s2vs) val () = prstr "; " val () = fprint_s2explst (out, s2ps) val () = prstr "; " val () = fprint_d3exp (out, _body) val () = prstr ")" } | D3Elam_met (_met, _body) => { val () = prstr "D3Elam_met(" val () = fprint_s2explst (out, _met) val () = prstr "; " val () = fprint_d3exp (out, _body) val () = prstr ")" } // | D3Efix (knd, d2v, d3e) => { val () = prstr "D3Efix(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_d2var (out, d2v) val () = prstr "; " val () = fprint_d3exp (out, d3e) val () = prstr ")" } // | D3Edelay (d3e) => { val () = prstr "D3Edelay(" val () = fprint_d3exp (out, d3e) val () = prstr ")" } | D3Eldelay (d3e, opt) => { val () = prstr "D3Eldelay(" val () = fprint_d3exp (out, d3e) val () = prstr "; " val () = fprint_string (out, "...") val () = prstr ")" } | D3Elazyeval (lin, d3e) => { val () = prstr "D3Elazyeval(" val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_d3exp (out, d3e) val () = prstr ")" } // | D3Eloop _ => { val () = prstr "D3Eloop(" val () = fprint_string (out, "...") val () = prstr ")" } | D3Eloopexn (knd) => { val () = fprintf (out, "D3Eloopexn(%i)", @(knd)) } // | D3Etrywith _ => { val () = prstr "D3Etrywith(" val () = fprint_string (out, "...") val () = prstr ")" } // | D3Esolverify (s2e_prop) => { val () = prstr "D3Esolverify(" val () = fprint_s2exp (out, s2e_prop) val () = prstr ")" } // | D3Eerrexp ((*void*)) => prstr "D3Eerrexp()" // (* | _ => { val () = prstr "D3E...(...)" } *) // end // end of [fprint_d3exp] (* ****** ****** *) implement print_d3exp (x) = fprint_d3exp (stdout_ref, x) implement prerr_d3exp (x) = fprint_d3exp (stderr_ref, x) (* ****** ****** *) implement fprint_d3explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_d3exp) // end of [fprint_d3explst] (* ****** ****** *) implement fprint_d3ecl (out, d3c0) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ d3c0.d3ecl_node of // | D3Cnone _ => prstr "D3Cnone()" | D3Clist _ => prstr "D3Clist(...)" // // HX: needed for compiling abstract types // | D3Csaspdec _ => prstr "D3Csaspdec(...)" | D3Creassume _ => prstr "D3Creassume(...)" // | D3Cextype _ => prstr "D3Cextype(...)" | D3Cextvar _ => prstr "D3Cextvar(...)" | D3Cextcode _ => prstr "D3Cextcode(...)" // | D3Cdatdecs _ => prstr "D3Cdatdecs(...)" | D3Cexndecs _ => prstr "D3Cexndecs(...)" | D3Cdcstdecs _ => prstr "D3Cdcstdecs(...)" // | D3Cimpdec _ => prstr "D3Cimpdec(...)" // | D3Cfundecs _ => prstr "D3Cfundecs(...)" // | D3Cvaldecs _ => prstr "D3Cvaldecs(...)" | D3Cvaldecs_rec _ => prstr "D3Cvaldecs(...)" // | D3Cvardecs _ => prstr "D3Cvardecs(...)" | D3Cprvardecs _ => prstr "D3Cprvardecs(...)" // | D3Cinclude _ => prstr "D3Cinclude(...)" // | D3Cstaload _ => prstr "D3Cstaload(...)" | D3Cstaloadloc _ => prstr "D3Cstaloadloc(...)" // | D3Cdynload (cfil) => { val () = prstr "D3Cdynload(" val () = $FIL.fprint_filename_full (out, cfil) val () = prstr ")" } // | D3Clocal _ => prstr "D3Clocal(...)" // end // end of [fprint_d3ecl] (* ****** ****** *) implement print_d3ecl (x) = fprint_d3ecl (stdout_ref, x) implement prerr_d3ecl (x) = fprint_d3ecl (stderr_ref, x) (* ****** ****** *) (* end of [pats_dynexp3_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3_jsonize.dats0000644000175000017500000002436613431250607023400 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2013 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload "./pats_jsonize.sats" staload _(*anon*) = "./pats_jsonize.dats" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_jsonize_synent2.sats" (* ****** ****** *) staload "./pats_trans3_env.sats" staload "./pats_constraint3.sats" (* ****** ****** *) #define nil list_nil #define :: list_cons #define cons list_cons (* ****** ****** *) // macdef jsonize_loc (x) = jsonize_location (,(x)) // (* ****** ****** *) (* // // HX-2013-12-24: // this does not seem to be really useful // // HX-2015-06-06: // Change-of-mind! // *) extern fun jsonize_c3nstrkind : jsonize_ftype (c3nstrkind) // implement jsonize_c3nstrkind (knd) = let in // case+ knd of // | C3TKmain() => jsonval_conarg0 ("C3TKmain") // | C3TKcase_exhaustiveness (knd, p2tcss) => let val knd = jsonize_caskind (knd) val p2tcss = jsonize_ignored (p2tcss) in jsonval_conarg2 ("C3TKcase_exhaustiveness", knd, p2tcss) // end of [jsonval_conarg2] end // end of [C3TKcase_exhaustiveness] // | C3TKtermet_isnat() => jsonval_conarg0 ("C3TKtermet_isnat") | C3TKtermet_isdec() => jsonval_conarg0 ("C3TKtermet_isdec") // | C3TKsome_fin (d2v, s2e1, s2e2) => let val d2v = jsonize_d2var (d2v) val s2e1 = jsonize1_s2exp (s2e1) val s2e2 = jsonize1_s2exp (s2e2) in jsonval_conarg3 ("C3TKsome_fin", d2v, s2e1, s2e2) end // end of [C3TKsome_fin] | C3TKsome_lvar (d2v, s2e1, s2e2) => let val d2v = jsonize_d2var (d2v) val s2e1 = jsonize1_s2exp (s2e1) val s2e2 = jsonize1_s2exp (s2e2) in jsonval_conarg3 ("C3TKsome_lvar", d2v, s2e1, s2e2) end // end of [C3TKsome_lvar] | C3TKsome_vbox (d2v, s2e1, s2e2) => let val d2v = jsonize_d2var (d2v) val s2e1 = jsonize1_s2exp (s2e1) val s2e2 = jsonize1_s2exp (s2e2) in jsonval_conarg3 ("C3TKsome_vbox", d2v, s2e1, s2e2) end // end of [C3TKsome_vbox] // | C3TKlstate() => jsonval_conarg0 ("C3TKlstate") | C3TKlstate_var(d2v) => jsonval_conarg1 ("C3TKlstate_var", jsonize_d2var (d2v)) // end of [C3TKlstate_var] // | C3TKloop(knd) => jsonval_conarg1 ("C3TKloop", jsonval_int (knd)) // end of [C3TKloop] // | C3TKsolverify() => jsonval_conarg0 ("C3TKsolverify") // end // end of [jsonize_c3nstrkind] (* ****** ****** *) extern fun jsonize_s3itm: jsonize_ftype (s3itm) extern fun jsonize_s3itmlst: jsonize_ftype (s3itmlst) extern fun jsonize_s3itmlstlst: jsonize_ftype (s3itmlstlst) (* ****** ****** *) extern fun jsonize_h3ypo: jsonize_ftype (h3ypo) extern fun jsonize_c3nstropt: jsonize_ftype (c3nstropt) (* ****** ****** *) implement jsonize_s3itm (s3i) = let in // case+ s3i of // | S3ITMsvar(s2v) => jsonval_conarg1 ("S3ITMsvar", jsonize_s2var(s2v)) // end of [S3ITMsvar] // | S3ITMhypo(h3p) => jsonval_conarg1 ("S3ITMhypo", jsonize_h3ypo(h3p)) // end of [S3ITMhypo] // | S3ITMsVar(s2V) => jsonval_conarg1 ("S3ITMsVar", jsonize_s2Var(s2V)) // end of [S3ITMsVar] // | S3ITMcnstr(c3t) => jsonval_conarg1 ("S3ITMcnstr", jsonize_c3nstr(c3t)) // end of [S3ITMcnstr] // | S3ITMcnstr_ref(c3tr) => let val loc = c3tr.c3nstroptref_loc val ref = c3tr.c3nstroptref_ref val loc = jsonize_location (loc) val opt = jsonize_c3nstropt (!ref) in jsonval_conarg2 ("S3ITMcnstr_ref", loc, opt) end // end of [S3ITMcnstr_ref] // | S3ITMdisj(s3iss) => jsonval_conarg1 ("S3ITMdisj", jsonize_s3itmlstlst(s3iss)) // end of [S3ITMdisj] // | S3ITMsolassert(s2e_prop) => jsonval_conarg1 ("S3ITMsolassert", jsonize1_s2exp(s2e_prop)) // end of [S3ITMsolassert] // end // end of [jsonize_s3itm] (* ****** ****** *) // implement jsonize_s3itmlst (s3is) = jsonize_list_fun(s3is, jsonize_s3itm) implement jsonize_s3itmlstlst (s3iss) = jsonize_list_fun(s3iss, jsonize_s3itmlst) // (* ****** ****** *) implement jsonize_h3ypo (h3p0) = let // fun auxmain (h3p0: h3ypo): jsonval = let in // case+ h3p0.h3ypo_node of // | H3YPOprop (s2e) => let (* val () = println! ("jsonize_h3ypo: H3YPOprop: s2e = ", s2e) *) in jsonval_conarg1 ("H3YPOprop", jsonize1_s2exp (s2e)) end // end of [H3YPOprop] | H3YPObind (s2v1, s2e2) => let (* val () = println! ("jsonize_h3ypo: H3YPObind: s2v1 = ", s2v1) val () = println! ("jsonize_h3ypo: H3YPObind: s2e2 = ", s2e2) *) in jsonval_conarg2 ("H3YPObind", jsonize_s2var(s2v1), jsonize1_s2exp(s2e2)) end // end of [H3YPObind] | H3YPOeqeq (s2e1, s2e2) => let (* val () = println! ("jsonize_h3ypo: H3YPObind: s2e1 = ", s2e1) val () = println! ("jsonize_h3ypo: H3YPObind: s2e2 = ", s2e2) *) in jsonval_conarg2 ("H3YPOeqeq", jsonize1_s2exp(s2e1), jsonize1_s2exp(s2e2)) end // end of [H3YPOeqeq] // end // end of [auxmain] // val loc0 = h3p0.h3ypo_loc val loc0 = jsonize_loc (loc0) val h3p0 = auxmain (h3p0) // in jsonval_labval2 ("h3ypo_loc", loc0, "h3ypo_node", h3p0) end // end of [jsonize_h3ypo] (* ****** ****** *) implement jsonize_c3nstr (c3t0) = let // fun auxmain (c3t0: c3nstr): jsonval = let in // case+ c3t0.c3nstr_node of // | C3NSTRprop(s2e) => jsonval_conarg1 ("C3NSTRprop", jsonize1_s2exp (s2e)) // end of [C3NSTRprop] // | C3NSTRitmlst(s3is) => jsonval_conarg1 ("C3NSTRitmlst", jsonize_s3itmlst (s3is)) // end of [C3NSTRitmlst] // | C3NSTRsolverify(s2e_prop) => jsonval_conarg1 ("C3NSTRsolverify", jsonize1_s2exp(s2e_prop)) // end of [C3NSTRsolverify] // end // end of [auxmain] // val loc0 = c3t0.c3nstr_loc val loc0 = jsonize_loc (loc0) // val ctk0 = jsonize_c3nstrkind(c3t0.c3nstr_kind) // val c3t0 = auxmain (c3t0) // in // jsonval_labval3 ( "c3nstr_loc", loc0, "c3nstr_kind", ctk0, "c3nstr_node", c3t0 ) (* jsonval_labval3 *) // end // end of [jsonize_c3nstr] (* ****** ****** *) implement jsonize_c3nstropt (opt) = jsonize_option_fun(opt, jsonize_c3nstr) // end of [jsonize_c3nstropt] (* ****** ****** *) local // typedef s2tds = s2rtdatset // fun aux_s2rt ( s2t0: s2rt, res: s2tds ) : s2tds = ( case+ s2t0 of | S2RTbas(s2tb) => aux_s2rtbas(s2tb, res) | S2RTfun(s2ts, s2t) => let val res = aux_s2rtlst(s2ts, res) in aux_s2rt(s2t, res) end // end of [S2RTfun] | S2RTtup(s2ts) => aux_s2rtlst(s2ts, res) | S2RTVar _ => res | S2RTerr _ => res ) // and aux_s2rtlst ( s2ts: s2rtlst, res: s2tds ) : s2tds = ( case+ s2ts of | list_nil() => res | list_cons(s2t, s2ts) => let val res = aux_s2rt(s2t, res) in aux_s2rtlst(s2ts, res) end // end of [list_cons] ) // and aux_s2rtbas ( s2tb: s2rtbas, res: s2tds ) : s2tds = ( case+ s2tb of | S2RTBASpre _ => res | S2RTBASimp _ => res | S2RTBASdef(s2td) => s2rtdatset_add(res, s2td) ) // fun aux_s2cst ( s2c: s2cst, res: s2tds ) : s2tds = ( aux_s2rt(s2cst_get_srt(s2c), res) ) fun aux_s2cstlst ( s2cs: s2cstlst, res: s2tds ) : s2tds = ( case+ s2cs of | list_nil() => res | list_cons(s2c, s2cs) => aux_s2cstlst(s2cs, aux_s2cst(s2c, res)) // end of [list_cons] ) // fun aux_s2var ( s2v: s2var, res: s2tds ) : s2tds = ( aux_s2rt(s2var_get_srt(s2v), res) ) fun aux_s2varlst ( s2vs: s2varlst, res: s2tds ) : s2tds = ( case+ s2vs of | list_nil() => res | list_cons(s2v, s2vs) => aux_s2varlst(s2vs, aux_s2var(s2v, res)) // end of [list_cons] ) // in (* in-of-local *) fun c3nstr_get_s2rtdatlst ( s2cs: s2cstlst, s2vs: s2varlst ) : List_vt(s2rtdat) = let val res = s2rtdatset_nil() val res = aux_s2cstlst(s2cs, res) val res = aux_s2varlst(s2vs, res) in s2rtdatset_listize(res) end // end of [c3nstr_get_s2rtdatlst] end // end of [local] (* ****** ****** *) implement c3nstr_export (out, c3t0) = let // val ( s2cs, s2vs ) = c3nstr_mapgen_scst_svar (c3t0) // val s2cs = s2cstset_vt_listize_free (s2cs) val s2vs = s2varset_vt_listize_free (s2vs) // val jsv_s2cs = jsonize_list_fun($UN.linlst2lst(s2cs), jsonize_s2cst_long) val jsv_s2vs = jsonize_list_fun($UN.linlst2lst(s2vs), jsonize_s2var_long) // val s2tds = c3nstr_get_s2rtdatlst ($UN.linlst2lst(s2cs), $UN.linlst2lst(s2vs)) // val jsv_s2tds = jsonize_list_fun($UN.linlst2lst(s2tds), jsonize_s2rtdat_long) // val () = list_vt_free (s2cs) val () = list_vt_free (s2vs) val () = list_vt_free (s2tds) // val jsv_c3t0 = jsonize_c3nstr (c3t0) // val () = fprint_string (out, "{\n\"s2cstmap\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_s2cs) val ((*void*)) = fprint_newline (out) // val () = fprint_string (out, ",\n\"s2varmap\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_s2vs) val ((*void*)) = fprint_newline (out) // val () = fprint_string (out, ",\n\"s2rtdatmap\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_s2tds) val ((*void*)) = fprint_newline (out) // val () = fprint_string (out, ",\n\"c3nstrbody\":\n") // val ((*void*)) = fprint_jsonval (out, jsv_c3t0) val ((*void*)) = fprint_string (out, "\n}") val ((*void*)) = fprint_newline (out) // in // nothing end // end of [c3nstr_export] (* ****** ****** *) (* end of [pats_constraint3_jsonize.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_main.dats0000644000175000017500000007415113431250607021472 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: October, 2012 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) staload "pats_basics.sats" (* ****** ****** *) // staload FIL = "./pats_filename.sats" typedef filename = $FIL.filename // (* ****** ****** *) staload GLOB = "./pats_global.sats" (* ****** ****** *) // staload S2E = "./pats_staexp2.sats" typedef d2con = $S2E.d2con typedef d2conlst = $S2E.d2conlst // staload D2E = "./pats_dynexp2.sats" // typedef d2cst = $D2E.d2cst typedef d2cstlst = $D2E.d2cstlst typedef d2cstopt = $D2E.d2cstopt // (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) implement emit_ats_ccomp_header (out) = let // val () = emit_text (out, "/*\n") val () = emit_text (out, "** include runtime header files\n") val () = emit_text (out, "*/\n") // val () = emit_text (out, "#ifndef _ATS_CCOMP_HEADER_NONE_\n") // val () = emit_text (out, "#include \"pats_ccomp_config.h\"\n") val () = emit_text (out, "#include \"pats_ccomp_basics.h\"\n") val () = emit_text (out, "#include \"pats_ccomp_typedefs.h\"\n") val () = emit_text (out, "#include \"pats_ccomp_instrset.h\"\n") val () = emit_text (out, "#include \"pats_ccomp_memalloc.h\"\n") // val () = emit_text (out, "#ifndef _ATS_CCOMP_EXCEPTION_NONE_\n") val () = emit_text (out, "#include \"pats_ccomp_memalloca.h\"\n") val () = emit_text (out, "#include \"pats_ccomp_exception.h\"\n") val () = emit_text (out, "#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]\n") // val () = emit_text (out, "#endif /* _ATS_CCOMP_HEADER_NONE_ */\n") val () = emit_newline (out) in emit_newline (out) end // end of [emit_ats_ccomp_header] (* ****** ****** *) implement emit_ats_ccomp_prelude (out) = let // val () = emit_text (out, "/*\n") val () = emit_text (out, "** include prelude cats files\n") val () = emit_text (out, "*/\n") // val () = emit_text (out, "#ifndef _ATS_CCOMP_PRELUDE_NONE_\n") // // HX: primary prelude cats files // val () = emit_text (out, "//\n") val () = emit_text (out, "#include \"prelude/CATS/basics.cats\"\n") // val () = emit_text (out, "#include \"prelude/CATS/integer.cats\"\n") // val () = emit_text (out, "#include \"prelude/CATS/pointer.cats\"\n") // val () = emit_text (out, "#include \"prelude/CATS/integer_long.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/integer_size.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/integer_short.cats\"\n") // val () = emit_text (out, "#include \"prelude/CATS/bool.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/char.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/float.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/integer_ptr.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/integer_fixed.cats\"\n") // val () = emit_text (out, "#include \"prelude/CATS/memory.cats\"\n") // val () = emit_text (out, "#include \"prelude/CATS/string.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/strptr.cats\"\n") // val () = emit_text (out, "//\n") val () = emit_text (out, "#include \"prelude/CATS/fprintf.cats\"\n") val () = emit_text (out, "//\n") val () = emit_text (out, "#include \"prelude/CATS/filebas.cats\"\n") // // HX: secondary prelude cats files // val () = emit_text (out, "//\n") val () = emit_text (out, "#include \"prelude/CATS/list.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/option.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/array.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/arrayptr.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/arrayref.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/matrix.cats\"\n") val () = emit_text (out, "#include \"prelude/CATS/matrixptr.cats\"\n") // val () = emit_text (out, "//\n") val () = emit_text (out, "#endif /* _ATS_CCOMP_PRELUDE_NONE_ */\n") // val () = emit_text (out, "/*\n") val () = emit_text (out, "** for user-supplied prelude\n") val () = emit_text (out, "*/\n") val () = emit_text (out, "#ifdef _ATS_CCOMP_PRELUDE_USER_\n") val () = emit_text (out, "//\n") val () = emit_text (out, "#include _ATS_CCOMP_PRELUDE_USER_\n") val () = emit_text (out, "//\n") val () = emit_text (out, "#endif /* _ATS_CCOMP_PRELUDE_USER_ */\n") // val () = emit_text (out, "/*\n") val () = emit_text (out, "** for user2-supplied prelude\n") val () = emit_text (out, "*/\n") val () = emit_text (out, "#ifdef _ATS_CCOMP_PRELUDE_USER2_\n") val () = emit_text (out, "//\n") val () = emit_text (out, "#include _ATS_CCOMP_PRELUDE_USER2_\n") val () = emit_text (out, "//\n") val () = emit_text (out, "#endif /* _ATS_CCOMP_PRELUDE_USER2_ */\n") // in emit_newline (out) end // end of [emit_ats_ccomp_prelude] (* ****** ****** *) // extern fun the_dynconlst_get2(): d2conlst and the_dynconlst_set2(xs: d2conlst): void and the_dynconlst_initset2((*void*)): void // local val the_d2conlst = ref(None) in (*in-of-local*) implement the_dynconlst_get2 ((*void*)) = let // val opt = !the_d2conlst // in // case+ opt of | Some xs => xs | None () => xs where { val xs = the_dynconlst_get() val () = !the_d2conlst := Some(xs) } (* end of [None] *) // end // end of [the_dynconlst_get2] implement the_dynconlst_set2(xs) = !the_d2conlst := Some(xs) implement the_dynconlst_initset2() = !the_d2conlst := None(*void*) end // end of [local] // (* ****** ****** *) // extern fun emit_funlablst_ptype (out: FILEref, fls: funlablst): void // implement emit_funlablst_ptype (out, fls) = let // fun loop ( out: FILEref, fls: funlablst, i: int ) : void = let in // case+ fls of | list_cons (fl, fls) => let val-Some (fent) = funlab_get_funent (fl) // end of [val] val () = emit_funent_ptype (out, fent) in loop (out, fls, i+1) end // end of [list_cons] | list_nil () => () // end // end of [loop] // in loop (out, fls, 0) end // end of [emit_funlablst_ptype] // (* ****** ****** *) // extern fun emit_funlablst_closure (out: FILEref, fls: funlablst): void // implement emit_funlablst_closure (out, fls) = let // fun loop ( out: FILEref, fls: funlablst, i: int ) : void = let in // case+ fls of | list_nil() => () | list_cons(fl, fls) => let val tmpknd = funlab_get_tmpknd(fl) val istmp = ( if tmpknd > 0 then true else false ) : bool // end of [val] val isclo = ( if istmp then false else let val fc = funlab_get_funclo(fl) in funclo_is_clo(fc) end // end of [let] // end of [if] ) : bool // end of [val] val-Some(fent) = funlab_get_funent(fl) val () = if isclo then emit_funent_closure(out, fent) // end of [val] in loop(out, fls, i+1) end // end of [list_cons] // end // end of [loop] // in loop (out, fls, 0) end // end of [emit_funlablst_closure] // (* ****** ****** *) // extern fun emit_funlablst_implmnt (out: FILEref, fls: funlablst): void // implement emit_funlablst_implmnt (out, fls) = let // fun loop ( out: FILEref, fls: funlablst, i: int ) : void = let in // case+ fls of // | list_nil() => () // | list_cons (fl, fls) => let val tmpknd = funlab_get_tmpknd(fl) val-Some(fent) = funlab_get_funent(fl) val () = if tmpknd > 0 then fprint_string(out, "#if(0)\n") // end of [if] // end of [val] val () = emit_funent_implmnt(out, fent) val () = if tmpknd > 0 then fprint_string(out, "#endif // end of [TEMPLATE]\n") // end of [if] // end of [val] val ((*flushed*)) = emit_newline(out) in loop(out, fls, i+1) end // end of [list_cons] // end // end of [loop] // in loop (out, fls, 0) end // end of [emit_funlablst_implmnt] // (* ****** ****** *) local extern fun tmpvar_set_topknd ( x: tmpvar, knd: int ) : void = "ext#patsopt_tmpvar_set_topknd" fun auxlst_staticize (xs: tmpvarlst): void = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = tmpvar_set_topknd(x, 1(*static*)) in auxlst_staticize(xs) end // end of [list_cons] // end // end of [auxlst] in (*in-of-local*) implement emit_the_tmpdeclst (out) = let // val p = the_toplevel_getref_tmpvarlst () val tmplst = $UN.ptrget (p) val () = auxlst_staticize (tmplst) // in emit_tmpdeclst (out, tmplst) end // end of [emit_the_tmpdeclst] end // end of [local] (* ****** ****** *) implement emit_the_dynconlst_extdec (out) = let // val () = emit_text (out, "/*\n") val () = emit_text (out, "dynconlst-declaration(beg)\n") val () = emit_text (out, "*/\n") // val d2cs = the_dynconlst_get2 () val () = emit_d2conlst_extdec (out, d2cs) // val () = emit_text (out, "/*\n") val () = emit_text (out, "dynconlst-declaration(end)\n") val () = emit_text (out, "*/\n") // in // nothing end // end of [emit_the_dynconlst_extdec] (* ****** ****** *) // extern fun the_dyncstlst_get2(): d2cstlst and the_dyncstlst_set2(xs: d2cstlst): void and the_dyncstlst_initset2((*void*)): void // local val the_d2cstlst = ref (None) in (*in-of-local*) implement the_dyncstlst_get2 ((*void*)) = let // val opt = !the_d2cstlst // in // case+ opt of | Some (xs) => xs | None ( ) => let val xs = the_dyncstlst_get() val () = !the_d2cstlst := Some(xs) in xs end // end of [None] // end // end of [the_dyncstlst_get2] implement the_dyncstlst_set2(xs) = !the_d2cstlst := Some(xs) implement the_dyncstlst_initset2() = !the_d2cstlst := None(*void*) end // end of [local] // (* ****** ****** *) implement emit_the_dyncstlst_extdec (out) = let // val () = emit_text (out, "/*\n") val () = emit_text (out, "dyncstlst-declaration(beg)\n") val () = emit_text (out, "*/\n") // val d2cs = the_dyncstlst_get2 () val () = emit_d2cstlst_extdec (out, d2cs) // val () = emit_text (out, "/*\n") val () = emit_text (out, "dyncstlst-declaration(end)\n") val () = emit_text (out, "*/\n") // in // nothing end // end of [emit_the_dyncstlst_extdec] (* ****** ****** *) // extern fun the_extcodelst_get2(): hideclist and the_extcodelst_set2(xs: hideclist): void and the_extcodelst_initset2( (*void*) ): void // local val the_extlst = ref(None) in (*in-of-local*) implement the_extcodelst_get2 ((*void*)) = let // val opt = !the_extlst // in // case+ opt of | Some xs => xs | None () => let val xs = the_extcodelst_get() val () = !the_extlst := Some(xs) in xs end // end of [None] // end // end of [the_extcodelst_get2] implement the_extcodelst_set2(xs) = !the_extlst := Some(xs) implement the_extcodelst_initset2() = !the_extlst := None(*void*) end // end of [local] // (* ****** ****** *) // extern fun the_funlablst_get2 ((*void*)): funlablst and the_funlablst_set2 (fls: funlablst): void and the_funlablst_initset2(): void // local // val the_flablst = ref(None) // in (* in of [local] *) implement the_funlablst_get2 ((*void*)) = let // val opt = !the_flablst // in // case+ opt of | Some xs => xs | None () => xs where { val xs = the_funlablst_get() val () = !the_flablst := Some(xs) } (* end of [None] *) // end // end of [the_fublablst_get2] implement the_funlablst_set2(fls) = !the_flablst := Some(fls) implement the_funlablst_initset2() = !the_flablst := None(*void*) end // end of [local] // (* ****** ****** *) implement emit_the_funlablst (out) = let // val fls = the_funlablst_get2() // val () = emit_funlablst_ptype(out, fls) val () = emit_funlablst_closure(out, fls) val () = emit_funlablst_implmnt(out, fls) // in // nothing end // end of [emit_the_funlablst] (* ****** ****** *) implement emit_the_primdeclst (out) = let // val p0 = the_toplevel_getref_primdeclst() // val pmdlst = $UN.ptrget(p0) // in emit_primdeclst (out, pmdlst) end // end of [emit_the_primdeclst] (* ****** ****** *) local fun aux ( out: FILEref, x: primdec ) : void = let in // case+ x.primdec_node of // case+ // | PMDimpdec(imp) => let val opt = hiimpdec_get_instrlstopt(imp) // end of [val] in case+ opt of | None _ => () | Some _ => let // val d2c = imp.hiimpdec_cst val-Some(hse) = d2cst_get2_hisexp (d2c) // val () = emit_text(out, "ATSdyncst_valimp(") val () = emit_d2cst (out, d2c) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse) val () = emit_text (out, ") ;\n") // in // nothing end // end of [Some] end // end of [PMDimpdec] // | PMDlocal (xs_head, xs_body) => { val ((*void*)) = auxlst (out, xs_head) val ((*void*)) = auxlst (out, xs_body) } (* end of [PMDlocal] *) // | PMDinclude (knd, xs_incl) => if knd > 0 then auxlst(out, xs_incl) // end of [PMDinclude] // | _ (*rest-of-PMD*) => () // end // end of [aux] and auxlst ( out: FILEref, xs: primdeclst ) : void = let in // case+ xs of | list_nil () => () | list_cons(x, xs) => let val () = aux (out, x) in auxlst (out, xs) end // end of [list_cons] // end // end of [auxlst] in (* in of [local] *) implement emit_the_primdeclst_valimp (out) = let // val p = the_toplevel_getref_primdeclst () // end of [val] val pmdlst = $UN.ptrget (p) // val () = emit_text (out, "/*\n") val () = emit_text (out, "dynvalist-implementation(beg)\n") val () = emit_text (out, "*/\n") // val () = auxlst (out, pmdlst) // val () = emit_text (out, "/*\n") val () = emit_text (out, "dynvalist-implementation(end)\n") val () = emit_text (out, "*/\n") // in // nothing end // end of [emit_the_primdeclst_valimp] end // end of [local] (* ****** ****** *) (* #define MAIN_NONE 0 #define MAIN_VOID 1 // main() #define MAIN_ARGC_ARGV 2 // main(argc, argv) #define MAIN_ARGC_ARGV_ENVP 3 // main(argc, argv, envp) *) (* ****** ****** *) // extern fun the_mainats_initize(): void extern fun the_mainats_d2copt_get(): d2cstopt // (* ****** ****** *) local // val the_mainats_d2copt = ref(None(*void*)) // in (* in of [local] *) implement the_mainats_initize ((*void*)) = let // (* val () = println! ("the_mainats_initize") *) // fun loop(fls: funlablst): void = let // in // case+ fls of // | list_nil() => () // | list_cons (fl, fls) => let (* val () = println! ( "the_mainats_initize: loop: fl = ", fl ) (* println! *) *) val opt = funlab_get_d2copt(fl) // end of [val] val () = ( case+ opt of | None() => () | Some(d2c) => if $D2E.d2cst_is_mainats(d2c) then !the_mainats_d2copt := opt // end of [if] ) : void // end of [val] in loop(fls) end // end of [list_cons] // end // end of [loop] // val () = !the_mainats_d2copt := None // in loop(the_funlablst_get2((*void*))) end // end of [the_mainats_initize] implement the_mainats_d2copt_get() = !the_mainats_d2copt end // end of [local] (* ****** ****** *) extern fun the_dynloadflag_get(): int implement the_dynloadflag_get() = let // val the_mainatsflag = $GLOB.the_MAINATSFLAG_get() // in // if the_mainatsflag = 0 then let val opt = the_mainats_d2copt_get() in // case+ opt of | Some _ => (~1) | None () => $GLOB.the_DYNLOADFLAG_get() // end // end of [then] else (~1) // HX: mainatsflag overrules dynloadflag // end // end of [the_dynloadflag_get] (* ****** ****** *) extern fun emit_main_arglst_err (out: FILEref, arty: int): void implement emit_main_arglst_err (out, arty) = let // val () = if arty >= 1 then emit_text (out, "argc") val () = if arty >= 2 then emit_text (out, ", argv") val () = if arty >= 3 then emit_text (out, ", envp") val () = ( if arty <= 0 then emit_text (out, "err") else emit_text (out, ", err") // end of [if] ) : void // end of [val] // in // nothing end // end of [emit_main_arglst_err] (* ****** ****** *) extern fun emit_dynload (out: FILEref, infil: filename): void implement emit_dynload (out, infil) = { val () = emit_filename(out, infil) val () = emit_text(out, "__dynload") } extern fun emit_dynloadflag (out: FILEref, infil: filename): void implement emit_dynloadflag (out, infil) = { val () = emit_filename(out, infil) val () = emit_text(out, "__dynloadflag") } (* ****** ****** *) local (* ****** ****** *) // staload _ = "libc/SATS/fcntl.sats" staload _ = "libc/SATS/stdio.sats" staload _ = "libc/SATS/stdlib.sats" staload _ = "libc/SATS/unistd.sats" // (* ****** ****** *) // staload "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" // (* ****** ****** *) fun the_tmpdeclst_stringize ( ) = tostring_fprint ( "postiats_tmpdeclst_" , lam (out, _) => emit_the_tmpdeclst(out), 0 ) // end of [the_tmpdeclst_stringize] fun the_primdeclst_stringize ( ) = tostring_fprint ( "postiats_primdeclst_" , lam (out, _) => emit_the_primdeclst(out), 0 ) // end of [the_funlablst_stringize] fun the_funlablst_stringize ( ) = tostring_fprint ( "postiats_funlablst_", lam (out, _) => emit_the_funlablst(out), 0 ) // end of [the_funlablst_stringize] fun aux_staload (out: FILEref): void = let // fun loop ( out: FILEref, xs: hideclist ) : void = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = emit_staload(out, x) in loop(out, xs) // end of [val] end // end of [list_cons] // end // end of [loop] // val () = emit_text (out, "/*\n") val () = emit_text (out, "staload-prologues(beg)\n") val () = emit_text (out, "*/\n") // val () = loop(out, the_staloadlst_get()) // val () = emit_text (out, "/*\n") val () = emit_text (out, "staload-prologues(end)\n") val () = emit_text (out, "*/\n") // in // nothing end // end of [aux_staload] fun aux_dynload_ext (out: FILEref): void = let // fun loop ( out: FILEref, xs: hideclist ) : void = let in // case+ xs of // | list_nil () => () // | list_cons (x, xs) => let val-HIDdynload (fil) = x.hidecl_node val () = ( emit_text (out, "ATSdynloadflag_init("); emit_filename(out, fil); emit_text(out, "__dynloadflag) ;\n") ) (* end of [val] *) val () = emit_text (out, "ATSextern()\n") val () = emit_text (out, "atsvoid_t0ype\n") val () = ( emit_filename (out, fil); emit_text (out, "__dynload(/*void*/) ;\n") ) (* end of [val] *) in loop (out, xs) end (* end of [list_cons] *) // end // end of [loop] // in loop(out, the_dynloadlst_get()) end // end of [aux_dynload_ext] fun aux_dynload_ias ( out: FILEref , infil: filename ) : void = let // val opt = $GLOB.the_DYNLOADNAME_get() // in // if stropt_is_some(opt) then let // val name = stropt_unsome(opt) // val () = emit_text(out, "ATSextern()\n") val () = emit_text(out, "atsvoid_t0ype\n") // val () = ( emit_text(out, name); emit_text(out, "()\n{\n") ) // val () = emit_text(out, "ATSfunbody_beg()\n") // val () = emit_text(out, "ATSINSmove_void(tmpret_void, ") val () = ( emit_dynload(out, infil); emit_text(out, "()) ;\n") ) // val () = emit_text (out, "ATSfunbody_end()\n") // val () = emit_text (out, "ATSreturn_void(tmpret_void) ;\n") // val () = emit_text (out, "} // end-of-dynload-alias\n") // in // nothing end // end of [then] else () // end of [else] // end // end of [aux_dynload_ias] fun aux_dynload_def ( out: FILEref , infil: filename, fbody: string ) : void = let // val flag = the_dynloadflag_get() // (* val () = println! ( "aux_dynload_def: flag = ", flag ) (* println! *) *) // val () = if (flag = 0) then emit_text(out, "#if(0)\n") // val () = emit_text(out, "/*\n") val () = ( emit_text ( out , "** for initialization(dynloading)" ) (* emit_text *) ) (* end of [val] *) // val () = emit_text(out, "\n*/\n") // val () = if flag <= 0 then ( // emit_text(out, "ATSdynloadflag_minit("); emit_dynloadflag(out, infil); emit_text(out, ") ;\n") // ) (* end of [if] *) // val () = emit_text(out, "ATSextern()\n") val () = emit_text(out, "atsvoid_t0ype\n") // val () = emit_dynload(out, infil) val () = emit_text(out, "()\n{\n") // val () = emit_text(out, "ATSfunbody_beg()\n") // val () = emit_text(out, "ATSdynload(/*void*/)\n") // val () = if flag <= 0 then emit_text (out, "ATSdynloadflag_sta(\n") // val () = if flag >= 1 then emit_text (out, "ATSdynloadflag_ext(\n") // val () = emit_dynloadflag(out, infil) val () = emit_text (out, "\n) ;\n") val () = emit_text (out, "ATSif(\n") val () = emit_text (out, "ATSCKiseqz(\n") val () = emit_dynloadflag (out, infil) val () = emit_text (out, "\n)\n) ATSthen() {\n") val () = emit_text (out, "ATSdynloadset(") val () = emit_dynloadflag (out, infil) val ((*closing*)) = emit_text (out, ") ;\n") // val () = let val d2cs = the_dynconlst_get2() val () = emit_text (out, "/*\n") val () = emit_text (out, "dynexnlst-initize(beg)\n") val () = emit_text (out, "*/\n") val () = emit_d2conlst_initize (out, d2cs) val () = emit_text (out, "/*\n") val () = emit_text (out, "dynexnlst-initize(end)\n") val () = emit_text (out, "*/\n") in // nothing end // end of [val] // val () = emit_text (out, fbody) val () = emit_text (out, "} /* ATSendif */\n") // val () = emit_text (out, "ATSfunbody_end()\n") // val () = emit_text (out, "ATSreturn_void(tmpret_void) ;\n") val () = emit_text (out, "} /* end of [*_dynload] */\n") // val () = aux_dynload_ias (out, infil) // HX: creating an alias // val () = if flag = 0 then emit_text (out, "#endif // end of [#if(0)]\n") // in // nothing end // end of [aux_dynload_def] fun aux_main ( out: FILEref , infil: filename, d2cmain: d2cst ) : void = let // val () = emit_text (out, "\n/*\n") val () = emit_text (out, "** the ATS runtime") val () = emit_text (out, "\n*/\n") val () = emit_text (out, "#ifndef _ATS_CCOMP_RUNTIME_NONE_\n") val () = emit_text (out, "#include \"pats_ccomp_runtime.c\"\n") val () = emit_text (out, "#include \"pats_ccomp_runtime_memalloc.c\"\n") val () = emit_text (out, "#ifndef _ATS_CCOMP_EXCEPTION_NONE_\n") val () = emit_text (out, "#include \"pats_ccomp_runtime2_dats.c\"\n") val () = emit_text (out, "#ifndef _ATS_CCOMP_RUNTIME_TRYWITH_NONE_\n") val () = emit_text (out, "#include \"pats_ccomp_runtime_trywith.c\"\n") val () = emit_text (out, "#endif /* _ATS_CCOMP_RUNTIME_TRYWITH_NONE_ */\n") val () = emit_text (out, "#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]\n") val () = emit_text (out, "#endif /* _ATS_CCOMP_RUNTIME_NONE_ */\n") // val () = emit_text (out, "\n/*\n") val () = emit_text (out, "** the [main] implementation") val () = emit_text (out, "\n*/\n") // val () = emit_text (out, "int\n") val () = emit_text (out, "main\n") val () = emit_text (out, "(\n") val () = emit_text (out, "int argc, char **argv, char **envp") val () = emit_text (out, "\n) {\n") val () = emit_text (out, "int err = 0 ;\n") val () = { val () = emit_filename (out, infil) val () = emit_text (out, "__dynload() ;\n") } (* end of [val] *) // val arty = let // val ns = $D2E.d2cst_get_artylst(d2cmain) // in case+ ns of | list_nil() => 0 | list_cons(n, _) => n end : int // end of [val] // val () = emit_text (out, "ATS") val () = emit_d2cst (out, d2cmain) val () = emit_LPAREN (out) val () = emit_main_arglst_err (out, arty) val () = emit_RPAREN (out) val () = emit_text (out, " ;\n") // val () = emit_text (out, "return (err) ;\n") val () = emit_text (out, "} /* end of [main] */") val () = emit_newline (out) // in // nothing end // end of [aux_main] fun aux_main_ifopt ( out: FILEref, infil: filename ) : void = let // val opt = the_mainats_d2copt_get() // in // case+ opt of | None() => () | Some(d2c) => aux_main(out, infil, d2c) // end // end of [aux_main_ifopt] #define DYNBEG 1 #define DYNMID 10 #define DYNEND 99 fun aux_extcodelst_if ( out: FILEref, test: (int) -> bool ) : void = let // fun loop ( out: FILEref, test: (int) -> bool, xs: hideclist ) : hideclist = let in // case+ xs of | list_nil() => list_nil() | list_cons(x, xs1) => let val-HIDextcode(knd, pos, _) = x.hidecl_node in if test(pos) then let val () = emit_extcode(out, x) in loop(out, test, xs1) end else xs // end of [if] end // end of [if] // end // end of [loop] // val ((*set*)) = the_extcodelst_set2(xs2) where { val xs2 = loop(out, test, the_extcodelst_get2()) } // in // nothing end // end of [aux_extcodelst_if] fun aux_exndeclst (out: FILEref): void = let // fun loop ( out: FILEref, xs: hideclist ) : void = let in // case+ xs of | list_cons (x, xs) => let val () = emit_exndec(out, x) in loop(out, xs) end // end of [list_cons] | list_nil () => () // end // end of [loop] // val () = ( emit_text (out, "/*\n"); emit_text (out, "exnconlst-declaration(beg)\n"); emit_text (out, "*/\n"); ) (* end of [val] *) // val () = emit_text ( out , "#ifndef _ATS_CCOMP_EXCEPTION_NONE_\n" ) val () = emit_text ( out , "\ ATSextern()\n\ atsvoid_t0ype\n\ the_atsexncon_initize\n\ (\n\ atstype_exnconptr d2c, atstype_string exnmsg\n\ ) ;\n\ ") // end of [val] val () = emit_text (out, "#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]\n") // val hids = the_exndeclst_get () val ((*void*)) = loop (out, hids) // val () = ( emit_text (out, "/*\n"); emit_text (out, "exnconlst-declaration(end)\n"); emit_text (out, "*/\n"); ) (* end of [val] *) // in (* nothing *) end // end of [aux_exndeclst] (* ****** ****** *) fun aux_saspdeclst ( out: FILEref ) : void = let // fun loop ( out: FILEref, xs: hideclist ) : void = let in // case+ xs of | list_nil () => ((*void*)) // list_nil | list_cons ( x, xs ) => loop(out, xs) where { val () = emit_saspdec(out, x) } (* end of [list_cons] *) // end // end of [loop] // val () = emit_text(out, "/*\n") val () = emit_text(out, "assumelst-declaration(beg)\n") val () = emit_text(out, "*/\n") // val () = emit_text(out, "#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_\n") // val ((*void*)) = loop(out, hids) where { val hids = the_saspdeclst_get((*void*)) } (* end of [where] *) // end of [val] // val () = emit_text(out, "#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)\n") // val () = emit_text(out, "/*\n") val () = emit_text(out, "assumelst-declaration(end)\n") val () = emit_text(out, "*/\n") // in (* nothing *) end // end of [aux_saspdeclst] (* ****** ****** *) fun aux_extypelst (out: FILEref): void = let // fun loop ( out: FILEref, xs: hideclist ) : void = let in // case+ xs of | list_cons (x, xs) => let val () = emit_extype (out, x) in loop (out, xs) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [loop] // val () = emit_text (out, "/*\n") val () = emit_text (out, "extypelst-declaration(beg)\n") val () = emit_text (out, "*/\n") // val hids = the_extypelst_get () val ((*void*)) = loop (out, hids) // val () = emit_text (out, "/*\n") val () = emit_text (out, "extypelst-declaration(end)\n") val () = emit_text (out, "*/\n") // in (* nothing *) end // end of [aux_extypelst] in (* in of [local] *) implement ccomp_main ( out, flag, infil, hids ) = let // (* val () = print ("ccomp_main: infil = ") val () = $FIL.print_filename_full (infil) val () = print_newline ((*void*)) *) // val () = { // val () = the_dynconlst_initset2() val () = the_dyncstlst_initset2() val () = the_extcodelst_initset2() val () = the_funlablst_initset2() // } (* end of [val] *) // val () = emit_time_stamp(out) // val () = emit_ats_ccomp_header(out) val () = emit_ats_ccomp_prelude(out) // val () = let val pmds = hideclist_ccomp0(hids) val p_pmds = the_toplevel_getref_primdeclst() val () = $UN.ptrset(p_pmds, pmds) val tmps = primdeclst_get_tmpvarset(pmds) val tmps = tmpvarset_vt_listize_free(tmps) val tmps = list_of_list_vt(tmps) val p_tmps = the_toplevel_getref_tmpvarlst() val () = $UN.ptrset(p_tmps, tmps) in // nothing end // end of [val] // #if(0) val () = emit_the_tmpdeclst(out) val () = emit_the_primdeclst(out) val () = emit_the_funlablst(out) #endif // end of [#if(0)] // val the_tmpdeclst_rep = the_tmpdeclst_stringize() val the_primdeclst_rep = the_primdeclst_stringize() val the_funlablst_rep = the_funlablst_stringize() // val () = aux_staload(out) // val () = aux_extcodelst_if (out, lam (pos) => pos = DYNBEG) // val () = emit_the_typedeflst(out) // val () = emit_the_dynconlst_extdec(out) val () = emit_the_dyncstlst_extdec(out) // val () = emit_the_primdeclst_valimp(out) // val () = { val () = aux_exndeclst(out) val () = aux_extypelst(out) val () = aux_saspdeclst(out) } // val () = aux_extcodelst_if (out, lam (pos) => pos < DYNMID) // val () = fprint_strptr(out, the_tmpdeclst_rep) val () = strptr_free(the_tmpdeclst_rep) // val () = aux_extcodelst_if (out, lam (pos) => pos <= DYNMID) // val () = fprint_strptr(out, the_funlablst_rep) val () = strptr_free(the_funlablst_rep) // val () = // HX: the call must be made before the_mainats_initize() // aux_dynload is called // val () = aux_dynload_ext(out) val () = aux_dynload_def(out, infil, fbody) where { val fbody = $UN.castvwtp1{string}(the_primdeclst_rep) } // end of [where] // end of [val] val () = strptr_free (the_primdeclst_rep) // val () = aux_main_ifopt(out, infil) // val () = aux_extcodelst_if(out, lam (pos) => pos <= DYNEND) // val () = emit_text(out, "\n/* ****** ****** */\n") val () = emit_text(out, "\n/* end-of-compilation-unit */\n") // (* val () = println! ("ccomp_main: leave") *) // in // nothing end // end of [ccomp_main] end // end of [local for [ccomp_main]] (* ****** ****** *) (* end of [pats_ccomp_main.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_sort.dats0000644000175000017500000004732313431250607022023 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload SYM = "./pats_symbol.sats" overload = with $SYM.eq_symbol_symbol // (* ****** ****** *) // staload STMP = "./pats_stamp.sats" // typedef stamp = $STMP.stamp overload compare with $STMP.compare_stamp_stamp // (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) // fun prerr_interror(): void = prerr "INTERROR(pats_staexp2_sort)" // (* ****** ****** *) typedef s2rtdat_struct = @{ s2rtdat_sym= symbol // name , s2rtdat_sconlst= s2cstlst , s2rtdat_stamp= stamp // unique stamp } (* end of [s2rtdat_struct] *) (* ****** ****** *) local assume s2rtdat_type = ref(s2rtdat_struct) in (* in-of-local *) implement s2rtdat_make (id) = let // val stamp = $STMP.s2rtdat_stamp_make() // val (pfgc, pfat | p) = ptr_alloc () // prval () = free_gc_elim (pfgc) // val () = p->s2rtdat_sym := id val () = p->s2rtdat_sconlst := list_nil() val () = p->s2rtdat_stamp := stamp // in // in of [let] ref_make_view_ptr (pfat | p) end // end of [s2rtdat_make] (* ****** ****** *) implement s2rtdat_get_sym (s2td) = let val (vbox pf | p) = ref_get_view_ptr(s2td) in p->s2rtdat_sym end // end of [s2rtdat_get_sym] (* ****** ****** *) implement s2rtdat_get_sconlst (s2td) = let val (vbox pf | p) = ref_get_view_ptr(s2td) in p->s2rtdat_sconlst end // end of [s2rtdat_get_sconlst] implement s2rtdat_set_sconlst (s2td, s2cs) = let val (vbox pf | p) = ref_get_view_ptr(s2td) in p->s2rtdat_sconlst := s2cs end // end of [s2rtdat_set_sconlst] (* ****** ****** *) implement s2rtdat_get_stamp (s2td) = let val (vbox pf | p) = ref_get_view_ptr(s2td) in p->s2rtdat_stamp end // end of [s2rtdat_get_stamp] (* ****** ****** *) end // end of [local] (* ****** ****** *) // implement eq_s2rtdat_s2rtdat ( x1, x2 ) = (compare_s2rtdat_s2rtdat (x1, x2) = 0) // implement compare_s2rtdat_s2rtdat ( x1, x2 ) = $effmask_all ( compare(s2rtdat_get_stamp(x1), s2rtdat_get_stamp(x2)) ) (* end of [compare_s2rtdat_s2rtdat] *) // (* ****** ****** *) local // val s2tb_int: s2rtbas = S2RTBASpre($SYM.symbol_INT) val s2tb_addr: s2rtbas = S2RTBASpre($SYM.symbol_ADDR) val s2tb_bool: s2rtbas = S2RTBASpre($SYM.symbol_BOOL) // (* val s2tb_char: s2rtbas = S2RTBASpre ($SYM.symbol_CHAR) *) // val s2tb_real: s2rtbas = S2RTBASpre($SYM.symbol_REAL) // val s2tb_float: s2rtbas = S2RTBASpre($SYM.symbol_FLOAT) val s2tb_string: s2rtbas = S2RTBASpre($SYM.symbol_STRING) // val s2tb_cls : s2rtbas = S2RTBASpre($SYM.symbol_CLS) // for nominal classes // val s2tb_eff : s2rtbas = S2RTBASpre($SYM.symbol_EFF) // for sets of effects // val s2tb_tkind : s2rtbas = S2RTBASpre($SYM.symbol_TKIND) // for template arguments // in // in of [local] // implement s2rt_int = S2RTbas s2tb_int implement s2rt_addr = S2RTbas s2tb_addr implement s2rt_bool = S2RTbas s2tb_bool // (* implement s2rt_char = S2RTbas s2tb_char *) // implement s2rt_real = S2RTbas s2tb_real // implement s2rt_float = S2RTbas s2tb_float implement s2rt_string = S2RTbas s2tb_string // implement s2rt_cls = S2RTbas s2tb_cls // implement s2rt_eff = S2RTbas s2tb_eff // implement s2rt_tkind = S2RTbas s2tb_tkind // end // end of [local] (* ****** ****** *) local // #include "./pats_basics.hats" // val s2tb_prop: s2rtbas = S2RTBASimp(PROP_int, $SYM.symbol_PROP) val s2tb_prop_pos: s2rtbas = S2RTBASimp(PROP_pos_int, $SYM.symbol_PROP) val s2tb_prop_neg: s2rtbas = S2RTBASimp(PROP_neg_int, $SYM.symbol_PROP) // val s2tb_type: s2rtbas = S2RTBASimp(TYPE_int, $SYM.symbol_TYPE) val s2tb_type_pos: s2rtbas = S2RTBASimp(TYPE_pos_int, $SYM.symbol_TYPE) val s2tb_type_neg: s2rtbas = S2RTBASimp(TYPE_neg_int, $SYM.symbol_TYPE) // val s2tb_t0ype: s2rtbas = S2RTBASimp(T0YPE_int, $SYM.symbol_T0YPE) val s2tb_t0ype_pos: s2rtbas = S2RTBASimp(T0YPE_pos_int, $SYM.symbol_T0YPE) val s2tb_t0ype_neg: s2rtbas = S2RTBASimp(T0YPE_neg_int, $SYM.symbol_T0YPE) // val s2tb_types: s2rtbas = S2RTBASimp(TYPES_int, $SYM.symbol_TYPES) // val s2tb_view: s2rtbas = S2RTBASimp(VIEW_int, $SYM.symbol_VIEW) val s2tb_view_pos: s2rtbas = S2RTBASimp(VIEW_pos_int, $SYM.symbol_VIEW) val s2tb_view_neg: s2rtbas = S2RTBASimp(VIEW_neg_int, $SYM.symbol_VIEW) // val s2tb_vtype: s2rtbas = S2RTBASimp(VIEWTYPE_int, $SYM.symbol_VIEWTYPE) val s2tb_vtype_pos: s2rtbas = S2RTBASimp(VIEWTYPE_pos_int, $SYM.symbol_VIEWTYPE) val s2tb_vtype_neg: s2rtbas = S2RTBASimp(VIEWTYPE_neg_int, $SYM.symbol_VIEWTYPE) // val s2tb_vt0ype: s2rtbas = S2RTBASimp(VIEWT0YPE_int, $SYM.symbol_VIEWT0YPE) val s2tb_vt0ype_pos: s2rtbas = S2RTBASimp(VIEWT0YPE_pos_int, $SYM.symbol_VIEWT0YPE) val s2tb_vt0ype_neg: s2rtbas = S2RTBASimp(VIEWT0YPE_neg_int, $SYM.symbol_VIEWT0YPE) // in // in of [local] implement s2rt_prop = S2RTbas(s2tb_prop) implement s2rt_prop_pos = S2RTbas(s2tb_prop_pos) implement s2rt_prop_neg = S2RTbas(s2tb_prop_neg) implement s2rt_type = S2RTbas(s2tb_type) implement s2rt_type_pos = S2RTbas(s2tb_type_pos) implement s2rt_type_neg = S2RTbas(s2tb_type_neg) implement s2rt_t0ype = S2RTbas(s2tb_t0ype) implement s2rt_t0ype_pos = S2RTbas(s2tb_t0ype_pos) implement s2rt_t0ype_neg = S2RTbas(s2tb_t0ype_neg) implement s2rt_types = S2RTbas(s2tb_types) implement s2rt_view = S2RTbas(s2tb_view) implement s2rt_view_pos = S2RTbas(s2tb_view_pos) implement s2rt_view_neg = S2RTbas(s2tb_view_neg) implement s2rt_vtype = S2RTbas(s2tb_vtype) implement s2rt_vtype_pos = S2RTbas(s2tb_vtype_pos) implement s2rt_vtype_neg = S2RTbas(s2tb_vtype_neg) implement s2rt_vt0ype = S2RTbas(s2tb_vt0ype) implement s2rt_vt0ype_pos = S2RTbas(s2tb_vt0ype_pos) implement s2rt_vt0ype_neg = S2RTbas(s2tb_vt0ype_neg) implement s2rt_impred(knd) = let // (* val () = println! ("s2rt_impred: knd = ", knd) *) // in // case+ knd of // | PROP_int => s2rt_prop | TYPE_int => s2rt_type | T0YPE_int => s2rt_t0ype | VIEW_int => s2rt_view | VIEWTYPE_int => s2rt_vtype | VIEWT0YPE_int => s2rt_vt0ype // | PROP_pos_int => s2rt_prop_pos | PROP_neg_int => s2rt_prop_neg | TYPE_pos_int => s2rt_type_pos | TYPE_neg_int => s2rt_type_neg | T0YPE_pos_int => s2rt_t0ype_pos | T0YPE_neg_int => s2rt_t0ype_neg | VIEW_pos_int => s2rt_view_pos | VIEW_neg_int => s2rt_view_neg | VIEWTYPE_pos_int => s2rt_vtype_pos | VIEWTYPE_neg_int => s2rt_vtype_neg | VIEWT0YPE_pos_int => s2rt_vt0ype_pos | VIEWT0YPE_neg_int => s2rt_vt0ype_neg // | _ => let // val () = prerr_interror () val () = prerr ": s2rt_impred: knd = " val () = prerr_int (knd) val () = prerr_newline () val () = assertloc (false) in s2rt_t0ype // HX: this should be deadcode! end // end of [_] // end // end of [s2rt_impred] end // end of [local] (* ****** ****** *) implement s2rt_is_int (s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASpre (sym) => sym = $SYM.symbol_INT | _ => false ) // end of [S2RTbas] | _ => false ) // end of [s2rt_is_int] implement s2rt_is_addr (s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASpre (sym) => sym = $SYM.symbol_ADDR | _ => false ) // end of [S2RTbas] | _ => false ) // end of [s2rt_is_addr] implement s2rt_is_bool (s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASpre (sym) => sym = $SYM.symbol_BOOL | _ => false ) // end of [S2RTbas] | _ => false ) // end of [s2rt_is_bool] (* ****** ****** *) (* implement s2rt_is_char (s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASpre (sym) => sym = $SYM.symbol_CHAR | _ => false ) // end of [S2RTbas] | _ => false ) // end of [s2rt_is_char] *) (* ****** ****** *) implement s2rt_is_float (s2t) = ( // case+ s2t of | S2RTbas(s2tb) => ( case+ s2tb of | S2RTBASpre(sym) => sym = $SYM.symbol_FLOAT (* S2RTBASpre *) | _ (*non-S2RTBASpre*) => false ) (* [S2RTbas] *) | _ (*non-S2RTbas*) => false // ) // end of [s2rt_is_float] (* ****** ****** *) implement s2rt_is_dat(s2t) = ( case+ s2t of | S2RTbas(s2tb) => ( case+ s2tb of | S2RTBASdef( _ ) => true | _ => false ) (* end of [S2RTbas] *) | _ (*non-S2RTbas*) => false ) // end of [s2rt_is_dat] (* ****** ****** *) implement s2rt_is_fun(s2t) = ( case+ s2t of S2RTfun _ => true | _ => false ) // end of [s2rt_is_fun] implement s2rt_is_prf(s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASimp(knd, _) => test_prfkind(knd) | _ => false ) // end of [S2RTbas] | _ (*non-S2RTbas*) => false // end of [_] ) // end of [s2rt_is_prf] (* ****** ****** *) implement s2rt_is_lin(s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASimp(knd, _) => test_linkind(knd) | _ => false ) // end of [S2RTbas] | _ (*non-S2RTbas*) => false // end of [_] ) // end of [s2rt_is_lin] implement s2rt_is_nonlin(s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASimp(knd, _) => not(test_linkind(knd)) | _ => false ) // end of [S2RTbas] | _ (*non-S2RTbas*) => false // end of [_] ) // end of [s2rt_is_nonlin] (* ****** ****** *) implement s2rt_is_flat(s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASimp(knd, _) => test_fltkind(knd) | _ => false ) // end of [S2RTbas] | _ (*non-S2RTbas*) => false // end of [_] ) (* end of [s2rt_is_flat] *) implement s2rt_is_boxed(s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASimp(knd, _) => test_boxkind(knd) | _ => false ) // end of [S2RTbas] | _ (*non-S2RTbas*) => false // end of [_] ) (* end of [s2rt_is_boxed] *) (* ****** ****** *) implement s2rt_is_tkind(s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASpre(sym) => ( $SYM.eq_symbol_symbol(sym, $SYM.symbol_TKIND) ) (* S2RTBASpre *) | _ (*non-S2RTBASpre*) => false ) // end of [S2ETbas] | _ (*non-S2RTbas*) => false // end of [_] ) // end of [s2rt_is_tkind] (* ****** ****** *) implement s2rt_is_prgm(s2t) = ( case+ s2t of | S2RTbas s2tb => ( case+ s2tb of | S2RTBASimp(knd, _) => test_prgmkind(knd) | _ => false ) // end of [S2RTbas] | _ (*non-S2RTbas*) => false // end of [_] ) (* end of [s2rt_is_prgm] *) (* ****** ****** *) implement s2rt_is_impred (s2t) = ( // case+ s2t of | S2RTbas s2tb => ( case+ s2tb of S2RTBASimp _ => true | _ => false ) // end of [S2RTbas] | _ (*non-S2RTbas*) => false // end of [_] // ) (* end of [s2rt_is_impred] *) (* ****** ****** *) local fun s2rt_test_fun ( s2t: s2rt, ft: s2rt -> bool ): bool = ( case+ s2t of | S2RTfun(_, s2t) => s2rt_test_fun(s2t, ft) // end of [S2RTfun] | _ (*non-S2RTfun*) => ft(s2t) ) // end of [s2rt_test_fun] in (* in-of-local *) // implement s2rt_is_lin_fun (s2t) = s2rt_test_fun(s2t, s2rt_is_lin) // implement s2rt_is_flat_fun (s2t) = s2rt_test_fun(s2t, s2rt_is_flat) // implement s2rt_is_boxed_fun (s2t) = s2rt_test_fun(s2t, s2rt_is_boxed) // implement s2rt_is_tkind_fun (s2t) = s2rt_test_fun(s2t, s2rt_is_tkind) // implement s2rt_is_prgm_fun (s2t) = s2rt_test_fun(s2t, s2rt_is_prgm) implement s2rt_is_impred_fun (s2t) = s2rt_test_fun(s2t, s2rt_is_impred) // end // end of [local] (* ****** ****** *) implement s2rt_get_pol(s2t) = ( // case+ s2t of | S2RTbas(s2tb) => ( case+ s2tb of | S2RTBASimp(knd, _) => test_polkind(knd) | _ => 0 ) (* end of [S2RTbas] *) | _ (* non-S2RTbas *) => 0 // 0: polarity is neutral // ) (* end of [s2rt_get_pol] *) (* ****** ****** *) abstype s2rtnul (l:addr) typedef s2rtnul = [l:agez] s2rtnul (l) (* ****** ****** *) extern castfn s2rtnul_none (x: ptr null): s2rtnul (null) extern castfn s2rtnul_some (x: s2rt): [l:agz] s2rtnul (l) extern castfn s2rtnul_unsome {l:agz} (x: s2rtnul l): s2rt extern fun s2rtnul_is_null {l:addr} (x: s2rtnul (l)): bool (l==null) = "atspre_ptr_is_null" // end of [s2rtnul_is_null] extern fun s2rtnul_isnot_null {l:addr} (x: s2rtnul (l)): bool (l > null) = "atspre_ptr_isnot_null" // end of [s2rtnul_isnot_null] (* ****** ****** *) local // assume s2rtVar = ref (s2rtnul) // in (* in-of-local *) implement eq_s2rtVar_s2rtVar (x1, x2) = (p1 = p2) where { val p1 = ref_get_ptr (x1) and p2 = ref_get_ptr (x2) } // end of [eq_s2rtVar_s2rtVar] implement compare_s2rtVar_s2rtVar (x1, x2) = compare_ptr_ptr (p1, p2) where { val p1 = ref_get_ptr (x1) and p2 = ref_get_ptr (x2) } // end of [compare_s2rtVar_s2rtVar] (* ****** ****** *) implement s2rtVar_make (loc) = let val nul = s2rtnul_none (null) in ref_make_elt (nul) end // end of [s2rtVar_make] (* ****** ****** *) implement s2rt_delink (s2t0) = let // fun aux ( s2t0: s2rt ) : s2rt = ( case+ s2t0 of | S2RTVar ref => let val s2t = !ref val test = s2rtnul_isnot_null(s2t) // end of [val] in if test then let val s2t = s2rtnul_unsome(s2t) val s2t = aux (s2t) val ((*void*)) = !ref := s2rtnul_some(s2t) in s2t end // end of [then] else s2t0 // end of [else] // end of [if] end (* S2RTVar *) | _ (*non-S2RTVar*) => s2t0 ) (* end of [aux] *) // in aux (s2t0) end // end of [s2rt_delink] implement s2rt_delink_all (s2t0) = let // fun aux ( s2t0: s2rt, flag: &int ) : s2rt = ( case+ s2t0 of | S2RTfun (s2ts, s2t) => let val flag0 = flag val s2t = aux(s2t, flag) val s2ts = auxlst(s2ts, flag) in if flag > flag0 then S2RTfun (s2ts, s2t) else s2t0 // end of [if] end | S2RTtup(s2ts) => let val flag0 = flag val s2ts = auxlst (s2ts, flag) in if flag > flag0 then S2RTtup (s2ts) else s2t0 end | S2RTVar (ref) => let val s2t = !ref val isnotnull = s2rtnul_isnot_null (s2t) // end of [val] in if isnotnull then let val s2t = s2rtnul_unsome(s2t) val s2t = aux (s2t, flag) val ((*void*)) = !ref := s2rtnul_some(s2t) // end of [val] in flag := flag + 1; s2t end // end of [then] else s2t0 // end of [else] // end of [if] end (* S2RTVar *) | _ (*rest-of-s2rt*) => s2t0 ) (* end of [aux] *) // and auxlst ( s2ts0: s2rtlst, flag: &int ) : s2rtlst = ( // case+ s2ts0 of | list_nil ((*void*)) => list_nil() | list_cons (s2t, s2ts) => let val flag0 = flag val s2t = aux (s2t, flag) val s2ts = auxlst (s2ts, flag) in if flag > flag0 then list_cons(s2t, s2ts) else s2ts0 // end of [if] end // end of [list_cons] // ) (* end if [auxlst] *) // var flag: int = 0 // in aux (s2t0, flag) end // end of [s2rt_delink_all] (* ****** ****** *) implement s2rtVar_get_s2rt (s2tV) = let val s2t = !s2tV val isnot = s2rtnul_isnot_null(s2t) in // if isnot then s2rtnul_unsome(s2t) else S2RTerr() // end // end of [s2rtVar_set_s2rt] implement s2rtVar_set_s2rt (s2tV, s2t) = let val s2t = s2rtnul_some (s2t) in !s2tV := s2t end // end of [s2rtVar_set_s2rt] implement s2rtVar_occurcheck (s2tV, s2t0) = let // fun aux ( s2t0: s2rt ) : bool = ( // case+ s2t0 of // | S2RTbas _ => false // | S2RTfun (s2ts, s2t) => ( if auxlst (s2ts) then true else aux (s2t) ) (* end of [S2RTfun] *) // | S2RTtup (s2ts) => auxlst (s2ts) // | S2RTVar (s2tV1) => ( if s2tV = s2tV1 then true else let val s2t1 = !s2tV1 val isnot = s2rtnul_isnot_null(s2t1) in if isnot then aux (s2rtnul_unsome(s2t1)) else false // end of [if] end // end of [else] // end of [if] ) (* end of [S2RTVar] *) // | S2RTerr ((*void*)) => false // ) (* end of [aux] *) // and auxlst ( s2ts: s2rtlst ) : bool = ( // case+ s2ts of | list_nil () => false | list_cons (s2t, s2ts) => if aux (s2t) then true else auxlst (s2ts) // end of [list_cons] // ) (* end of [auxlst] *) // in aux (s2t0) end // end of [s2rtVar_occurcheck] (* ****** ****** *) end // end of [local] (* ****** ****** *) implement s2rt_fun (_arg, _res) = S2RTfun (_arg, _res) implement s2rt_tup (s2ts) = S2RTtup (s2ts) // HX: tuple sort not yet supported implement s2rt_err () = S2RTerr () // HX: error indication (* ****** ****** *) // extern fun lte_s2rtbas_s2rtbas (s2tb1: s2rtbas, s2tb2: s2rtbas): bool // overload <= with lte_s2rtbas_s2rtbas // implement lte_s2rtbas_s2rtbas (s2tb1, s2tb2) = ( case+ (s2tb1, s2tb2) of // case+ | (S2RTBASpre id1, S2RTBASpre id2) => (id1 = id2) | (S2RTBASimp(knd1, id1), S2RTBASimp(knd2, id2)) => lte_impkind_impkind(knd1, knd2) | (S2RTBASdef s2td1, S2RTBASdef s2td2) => (s2td1 = s2td2) | (_, _) => false ) (* end of [lte_s2rtbas_s2rtbas] *) // (* ****** ****** *) // (* ** HX: knd=0/1: dry-run / real-run *) extern fun s2rt_ltmat (knd: int, s2t1: s2rt, s2t2: s2rt): bool extern fun s2rtlst_ltmat (knd: int, xs1: s2rtlst, xs2: s2rtlst): bool // implement s2rt_ltmat (knd, s2t1, s2t2) = let // fun auxVar ( knd: int , s2tV: s2rtVar, s2t: s2rt ) : bool = ( // if (knd > 0) then let val test = s2rtVar_occurcheck(s2tV, s2t) in if test then false else let val () = s2rtVar_set_s2rt(s2tV, s2t) in true end (* end of [if] *) end else true // HX: a dry run always succeeds // ) (* end of [auxVar] *) // val s2t1 = s2rt_delink(s2t1) and s2t2 = s2rt_delink(s2t2) // in // case+ s2t1 of | S2RTbas (s2tb1) => ( case+ s2t2 of | S2RTbas(s2tb2) => s2tb1 <= s2tb2 | _ => false ) | S2RTfun ( s2ts1, s2t1 ) => ( case+ s2t2 of | S2RTfun ( s2ts2, s2t2 ) => if s2rtlst_ltmat(knd, s2ts2, s2ts1) then s2rt_ltmat(knd, s2t1, s2t2) else false // end of [if] | _ (*non-S2RTfun*) => false ) | S2RTtup(s2ts1) => ( case+ s2t2 of | S2RTtup(s2ts2) => s2rtlst_ltmat(knd, s2ts1, s2ts2) | _ => false ) | S2RTVar(s2tV1) => ( case+ s2t2 of | S2RTVar(s2tV2) when s2tV1 = s2tV2 => true | _ => auxVar(knd, s2tV1, s2t2) ) // | S2RTerr ((*void*)) => false // end // end of [s2rt_ltmat] // (* ****** ****** *) implement s2rtlst_ltmat (knd, xs1, xs2) = ( case+ (xs1, xs2) of | (list_nil (), list_nil ()) => true | (list_cons (x1, xs1), list_cons (x2, xs2)) => ( if s2rt_ltmat (knd, x1, x2) then s2rtlst_ltmat (knd, xs1, xs2) else false ) | (_, _) => false ) (* end of [s2rtlst_ltmat] *) (* ****** ****** *) implement s2rt_ltmat0(x1, x2) = s2rt_ltmat(0, x1, x2) implement s2rt_ltmat1(x1, x2) = s2rt_ltmat(1, x1, x2) (* ****** ****** *) local // staload FS = "libats/SATS/funset_avltree.sats" staload _(*FS*) = "libats/DATS/funset_avltree.dats" // val cmp = lam ( x1: s2rtdat, x2: s2rtdat ) : int = compare_s2rtdat_s2rtdat (x1, x2) // end of [val] // assume s2rtdatset_type = $FS.set (s2rtdat) // in (* in-of-local *) implement s2rtdatset_nil ((*void*)) = $FS.funset_make_nil () implement s2rtdatset_add (xs, x) = xs where { var xs = xs val _(*rplced*) = $FS.funset_insert (xs, x, cmp) } (* end of [s2rtdatset_add] *) implement s2rtdatset_listize (xs) = $FS.funset_listize (xs) end // end of [local] (* ****** ****** *) (* end of [pats_staexp2_sort.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env_scst.dats0000644000175000017500000001222513431250607022475 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_env_scst" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_trans3_env.sats" (* ****** ****** *) local assume s2cstbindlst_push_v = unit_v viewtypedef s2cstlstlst_vt = List_vt (s2cstlst_vt) val the_s2cstlst = ref_make_elt (list_vt_nil) val the_s2cstlstlst = ref_make_elt (list_vt_nil) in // in of [local] implement the_s2cstbindlst_add (s2c) = let (* val () = begin print "the_s2cstbindlst_add: s2c = "; print_s2cst (s2c); print_newline () end // end of [val] *) // val (vbox pf | p) = ref_get_view_ptr (the_s2cstlst) // in !p := list_vt_cons (s2c, !p) end // end of [the_s2cstbindlst_add] (* ****** ****** *) implement the_s2cstbindlst_addlst (s2cs) = let (* val () = begin print "the_s2cstbindlst_add: s2cs = "; print_s2cstlst ($UN.castvwtp1{s2cstlst}(s2cs)); print_newline () end // end of [val] *) // val (vbox pf | p) = ref_get_view_ptr (the_s2cstlst) // in !p := list_vt_append (s2cs, !p) // HX: not [reverse_append]! end // end of [the_s2cstbindlst_add] (* ****** ****** *) implement the_s2cstbindlst_bind_and_add (loc0, s2c, s2f) = let // val s2e = s2hnf2exp(s2f) // (* val () = begin println! ("the_s2cstbindlst_bind_and_add: s2c = ", s2c); println! ("the_s2cstbindlst_bind_and_add: s2e = ", s2e); end // end of [val] *) // val isasp = s2cst_get_isasp(s2c) // val () = ( case+ isasp of | None _ => () | Some _ => () where { val () = prerr_warning3_loc(loc0) val () = prerrln! ( ": the static constant [", s2c, "] is not abstract at this point." ) (* prerrln! *) } (* end of [if] // end of [val] *) ) (* end of [val] *) // val () = s2cst_set_def(s2c, Some(s2e)) val () = s2cst_set_isasp(s2c, Some(s2e)) // in the_s2cstbindlst_add(s2c) end // end of [the_s2cstbindlst_bind_and_add] (* ****** ****** *) implement the_s2cstbindlst_pop (pf | (*none*)) = let // prval() = unit_v_elim(pf) // val s2cs2 = let val (vbox pf | pp) = ref_get_view_ptr(the_s2cstlstlst) in case+ !pp of | list_vt_nil() => (fold@ (!pp); list_vt_nil()) | ~list_vt_cons(xs, xss) => (!pp := xss; xs) end : s2cstlst_vt // end of [val] // val (vbox pf | p) = ref_get_view_ptr(the_s2cstlst) // in // // HX: // It is originally stored in the_s2cstlst // let val s2cs1 = !p; val () = !p := s2cs2 in s2cs1 end // end // end of [the_s2cstbindlst_pop] (* ****** ****** *) implement the_s2cstbindlst_pop_and_unbind (pf | (*none*)) = let // fun loop ( s2cs: s2cstlst_vt ) : void = begin case+ s2cs of | ~list_vt_nil ((*void*)) => () | ~list_vt_cons (s2c, s2cs) => let (* val () = ( print "the_s2cstbindlst_pop_and_unbind: "; print "loop: s2c = "; print_s2cst (s2c); print_newline() ) (* end of [val] *) *) val () = s2cst_set_def(s2c, None()) // end of [val] in loop(s2cs) end // end of [S2CSTLSTcons] end // end of [loop] // in loop(the_s2cstbindlst_pop(pf | (*none*))) end // end of [the_s2cstbindlst_pop_and_unbind] (* ****** ****** *) implement the_s2cstbindlst_push ((*void*)) = let val s2cs = let val (vbox pf | p) = ref_get_view_ptr (the_s2cstlst) val s2cs = !p val () = !p := list_vt_nil () in s2cs end // end of [val] val (vbox pf | pp) = ref_get_view_ptr (the_s2cstlstlst) // end of [val] val () = !pp := list_vt_cons (s2cs, !pp) in (unit_v | ()) end // end of [the_s2cstbindlst_push] (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [pats_trans3_env_scst.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_emit2.dats0000644000175000017500000003043013431250607021556 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2013 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload S2E = "./pats_staexp2.sats" staload S2UT = "./pats_staexp2_util.sats" staload D2E = "./pats_dynexp2.sats" typedef d2var = $D2E.d2var typedef d2varlst = $D2E.d2varlst (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "pats_ccomp.sats" (* ****** ****** *) local fun funval_isbot (pmv: primval): bool = let in // case+ pmv.primval_node of | PMVcst (d2c) => $S2UT.s2exp_fun_isbot ($D2E.d2cst_get_type (d2c)) // end of [PMVcst] | _ => false // end of [_] // end // end of [funval_isbot] (* ****** ****** *) fun aux_funval ( out: FILEref , pmv_fun: primval, hse_fun: hisexp, isclo: &bool ) : void = let in // case+ pmv_fun.primval_node of // | PMVcst (d2c) => let val isfun = $D2E.d2cst_is_fundec (d2c) in if isfun then emit_d2cst (out, d2c) else aux_funval2 (out, pmv_fun, hse_fun, isclo) // end of [if] end // end of [PMVcst] // | PMVfunlab (flab) => emit_funlab (out, flab) | PMVcfunlab (knd, flab) => emit_funlab (out, flab) // | PMVtmpltcst _ => emit_primval (out, pmv_fun) | PMVtmpltvar _ => emit_primval (out, pmv_fun) // | PMVtmpltcstmat _ => emit_primval (out, pmv_fun) | PMVtmpltvarmat _ => emit_primval (out, pmv_fun) // | _(*funval*) => aux_funval2 (out, pmv_fun, hse_fun, isclo) // (* | _ => let val loc = pmv_fun.primval_loc val () = prerr_interror_loc (loc) val () = prerrln! (": emit_prmvfun: pmv_fun = ", pmv_fun) val () = prerrln! (": emit_prmvfun: hse_fun = ", hse_fun) val () = assertloc (false) in // nothing end // end of [_] *) end // end of [aux_funval] and aux_funval2 ( out: FILEref , pmv_fun: primval, hse_fun: hisexp, isclo: &bool ) : void = let // (* val () = println! ("aux_funval2: pmv_fun = ", pmv_fun) val () = println! ("aux_funval2: hse_fun = ", hse_fun) *) // val-HSEfun ( fc, hses_arg, hse_res ) = hse_fun.hisexp_node // val () = emit_text (out, "ATSfunclo") // val () = ( case+ fc of | FUNCLOfun _ => () | FUNCLOclo _ => isclo := true ) : void // end of [val] val () = ( if isclo then emit_text (out, "_clo") else emit_text (out, "_fun") // end of [if] ) : void // end of [val] // val () = emit_LPAREN (out) val () = emit_primval (out, pmv_fun) val () = emit_text (out, ", ") val () = emit_LPAREN (out) // val hses_arg = ( if isclo then list_cons (hisexp_cloptr, hses_arg) else (hses_arg) ) : hisexplst // end of [val] val () = emit_hisexplst_sep (out, hses_arg, ", ") // val () = emit_RPAREN (out) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse_res) val () = emit_RPAREN (out) // in // nothing end // end of [aux_funval2] (* ****** ****** *) fun aux_funenv ( out: FILEref, pmv_fun: primval ) : int(*nenv*) = let // fun auxflab ( out: FILEref, flab: funlab ) : int = let val opt = funlab_get_funent (flab) in // case+ opt of | Some (fent) => let val d2es = funent_eval_d2envlst (fent) // end of [val] in emit_d2envlst (out, d2es, 0(*i*)) end (* end of [Some] *) | None ((*void*)) => (0) // end // end of [auxflab] // in (* in of [let] *) // case+ pmv_fun.primval_node of // | PMVfunlab (flab) => auxflab (out, flab) | PMVcfunlab (knd, flab) => auxflab (out, flab) // | _ => (0) // end // end of [aux_funenv] (* ****** ****** *) fun emit_fparamlst ( out: FILEref, n: int, pmvs: primvalist ) : void = let in // case+ pmvs of | list_cons _ => let val () = if (n > 0) then emit_text (out, ", ") // end of [if] in emit_primvalist (out, pmvs) end (* end of [list_cons] *) | list_nil ((*void*)) => () // end // end of [emit_fparamlst] (* ****** ****** *) fun emit_freeaft_fun ( out: FILEref, pmv: primval ) : void = let in // case+ pmv.primval_node of | PMVrefarg (knd, freeknd, pmv) => if freeknd > 0 then ( emit_text (out, "ATSINSfreeclo("); emit_primval (out, pmv); emit_text (out, ") ;\n") ) (* end of [PMVrefarg] *) | _ => () // end // end of [emit_freeaft_fun] (* ****** ****** *) (* // // HX-2014-03-02: // no support for auto-freeing of funarg // as it may interfere with tail-recursion // fun emit_freeaft_funarg ( out: FILEref, pmvs: primvalist ) : void = let in // case+ pmvs of // | list_nil () => () // | list_cons (pmv, pmvs) => let val () = ( case+ pmv.primval_node of | PMVrefarg ( knd, freeknd, pmv ) when freeknd > 0 => { val () = emit_text (out, "ATSINSfreeclo(") val () = emit_primval (out, pmv) val () = emit_text (out, ") ;\n") } (* end of [PMVrefarg] *) | _ (*non-refarg*) => () ) : void // end of [val] in emit_freeaft_funarg (out, pmvs) end // end of [list_cons] // end // end of [emit_freeaft_funarg] *) in (* in of [local] *) implement emit_instr_fcall (out, ins) = let // val loc0 = ins.instr_loc val-INSfcall (tmp, pmv_fun, hse_fun, pmvs_arg) = ins.instr_node (* val () = ( println! ("emit_instr_fcall: pmv_fun = ", pmv_fun); println! ("emit_instr_fcall: hse_fun = ", hse_fun); ) // end of [val] *) val noret = tmpvar_is_void (tmp) val noret = ( if noret then true else funval_isbot (pmv_fun) ) : bool // end of [val] // val () = emit_text (out, "ATSINSmove") val () = ( if noret then emit_text (out, "_void") ) (* end of [val] *) val () = emit_text (out, "(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") // var isclo: bool = false val () = aux_funval (out, pmv_fun, hse_fun, isclo) // val pmvs_arg = ( if isclo then list_cons (pmv_fun, pmvs_arg) else (pmvs_arg) ) : primvalist // end of [val] // val () = emit_LPAREN (out) val ln = aux_funenv (out, pmv_fun) val () = emit_fparamlst (out, ln, pmvs_arg) val () = emit_RPAREN (out) // val () = emit_text (out, ") ;\n") // val () = emit_freeaft_fun (out, pmv_fun) // (* val () = emit_freeaft_funarg (out, pmvs_arg) *) // in // nothing end // end of [emit_instr_fcall] (* ****** ****** *) local fun aux1 ( out: FILEref , ntl: int, pmv: primval, i: int ) : void = let // val () = emit_text (out, "ATSINSmove_tlcal(") // val () = ( if ntl <= 1 then fprintf(out, "apy%i", @(i)) else fprintf(out, "a%ipy%i", @(ntl, i)) // end of [if] ) : void // end of [val] // val () = emit_text (out, ", ") val () = emit_primval (out, pmv) val () = emit_text (out, ") ;\n") // in // nothing end // end of [aux1] fun aux1lst ( out: FILEref , ntl: int, pmvs: primvalist, i: int ) : void = let in // case+ pmvs of | list_nil ((*void*)) => () | list_cons (pmv, pmvs) => ( aux1(out, ntl, pmv, i); aux1lst(out, ntl, pmvs, i+1) ) (* end of [list_cons] *) // end // end of [aux1lst] fun aux2 ( out: FILEref , ntl: int, pmv: primval, i: int ) : void = let // val () = emit_text ( out, "ATSINSargmove_tlcal(" ) (* val *) // val () = ( if (ntl <= 1) then fprintf(out, "arg%i", @(i)) else fprintf(out, "a%irg%i", @(ntl, i)) // end of [if] ) : void // end of [val] val () = ( if (ntl <= 1) then fprintf(out, ", apy%i", @(i)) else fprintf(out, ", a%ipy%i", @(ntl, i)) // end of [if] ) : void // end of [val] // val ((*void*)) = emit_text(out, ") ;\n") // in // nothing end // end of [aux2] fun aux2lst ( out: FILEref , ntl: int, pmvs: primvalist, i: int ) : void = let in // case+ pmvs of | list_nil ((*void*)) => () // list_nil | list_cons (pmv, pmvs) => ( aux2(out, ntl, pmv, i); aux2lst(out, ntl, pmvs, i+1) ) (* end of [list_cons] *) // end // end of [aux2lst] fun auxgoto ( out: FILEref, flab: funlab ) : void = let // val () = emit_text ( out, "ATSINSfgoto(" ) (* val *) // val () = emit_text(out, "__patsflab_") // val () = emit2_funlab(out, flab) // val ((*void*)) = emit_text(out, ") ;\n") // in // nothing end // end of [auxgoto] in (* in of [local] *) implement emit_instr_fcall2 (out, ins) = let // val- INSfcall2 ( tmp, flab , ntl, hse_fun, pmvs_arg ) = ins.instr_node // val () = emit_text (out, "ATStailcal_beg()\n") // val () = aux1lst(out, ntl, pmvs_arg, 0(*i*)) val () = aux2lst(out, ntl, pmvs_arg, 0(*i*)) // val () = auxgoto(out, flab) // HX: jump for tail-call // val () = emit_text(out, "ATStailcal_end()\n") // in // nothing end // end of [emit_instr_fcall2] end // end of [local] (* ****** ****** *) implement emit_instr_extfcall (out, ins) = let // val loc0 = ins.instr_loc // val- INSextfcall ( tmp , fun_name , pmvs_arg) = ins.instr_node // val noret = tmpvar_is_void(tmp) // val () = ( if ~noret then emit_text(out, "ATSINSmove(") else emit_text(out, "ATSINSmove_void(") // end of [if] ) : void // end of [val] // val () = ( emit_tmpvar(out, tmp); emit_text(out, ", ") ) (* end of [val] *) // val () = emit_text ( out, "ATSextfcall(" ) val () = emit_text(out, fun_name) val () = emit_text(out, ", ") val () = emit_text( out, "(" ) val () = emit_primvalist(out, pmvs_arg) val () = emit_text( out, "))) ;" ) // in // nothing end // end of [emit_instr_extfcall] (* ****** ****** *) implement emit_instr_extmcall (out, ins) = let // val loc0 = ins.instr_loc val- INSextmcall ( tmp , pmv_obj , mtd_name , pmvs_arg) = ins.instr_node // val noret = tmpvar_is_void(tmp) // val () = ( if ~noret then emit_text(out, "ATSINSmove(") else emit_text(out, "ATSINSmove_void(") // end of [if] ) : void // end of [val] // val () = ( emit_tmpvar(out, tmp); emit_text(out, ", ") ) (* end of [val] *) // val () = emit_text ( out, "ATSextmcall(" ) val () = emit_primval(out, pmv_obj) // val () = emit_text(out, ", ") val () = emit_text(out, mtd_name) // val () = emit_text(out, ", ") val () = emit_text( out, "(" ) val () = emit_primvalist(out, pmvs_arg) val () = emit_text( out, "))) ;" ) // in // nothing end // end of [emit_instr_extmcall] end // end of [local] (* ****** ****** *) implement emit_funenvlst (out, d2es) = let // (* val () = fprintln! ( stdout_ref , "emit_funenvlst: d2es = ", d2es) *) // fun loop ( out: FILEref , d2es: d2envlst, sep: string, i: int ) : int = let in // case+ d2es of | list_nil ((*void*)) => (i) // list_nil // | list_cons (d2e, d2es) => let val hse = d2env_get_type(d2e) val () = if i > 0 then emit_text(out, sep) // end of [val] val () = emit_hisexp(out, hse) val () = fprintf(out, " env%i", @(i)) in loop(out, d2es, sep, i+1) end (* end of [list_cons] *) // end (* end of [loop] *) // in loop (out, d2es, ", ", 0) end // end of [emit_funenvlst] implement emit_funarglst (out, nenv, hses) = let // fun loop ( out: FILEref, n: int , hses: hisexplst, sep: string, i: int ) : void = let (* val () = println! ("emit_funarglst: loop") *) in // case+ hses of | list_nil ((*void*)) => () // list_nil | list_cons (hse, hses) => let val () = if n > 0 then emit_text(out, sep) // end of [val] val () = emit_hisexp(out, hse) val () = fprintf(out, " arg%i", @(i)) in loop(out, n+1, hses, sep, i+1) end // end of [list_cons] // end // end of [loop] // in loop(out, nenv, hses, ", ", 0) end // end of [emit_funarglst] (* ****** ****** *) (* end of [pats_ccomp_emit2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp1.sats0000644000175000017500000007061413431250607020774 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload "./pats_basics.sats" staload "./pats_syntax.sats" staload "./pats_staexp1.sats" (* ****** ****** *) // staload LOC = "./pats_location.sats" typedef loc_t = $LOC.location // (* ****** ****** *) datatype p1at_node = // | P1Tany of () // wildcard: (_) // expandable | P1Tany2 of () // wildcard: (_) // non-expandable // | P1Tide of symbol // variable // qua: constructor // unqua: variable | P1Tdqid of (d0ynq, symbol) // constructor/variable // | P1Tint of (int) // int constant | P1Tintrep of string(*rep*) // int constant | P1Tchar of char // char constant | P1Tfloat of string (*rep*)// floating point constant | P1Tstring of string // string constant // | P1Ti0nt of i0nt | P1Tf0loat of f0loat // | P1Tempty of () // empty pattern // | P1Tapp_sta of (p1at, s1vararglst) // static app // end of [P1Tapp_sta] | P1Tapp_dyn of // dynamic constructor (p1at, loc_t(*arg*), int(*npf*), p1atlst) // end of [P1Tapp_dyn] // | P1Tlist of (int(*pfarity*), p1atlst) // pattern list // end of [P1Tlist] // | P1Ttup of (* boxed/unboxed tuples *) (int (*tupknd*), int (*pfarity*), p1atlst) | P1Trec of (* boxed/unboxed records *) (int (*recknd*), int (*pfarity*), labp1atlst) | P1Tlst of (int(*lin*), p1atlst) // list pattern // | P1Tfree of p1at (* freed constructor *) | P1Tunfold of p1at (* unfolded constructor *) // | P1Trefas of (symbol, loc_t, p1at) // refvar [as] pattern // | P1Texist of (s1arglst, p1at) // existentially qualified | P1Tsvararg of s1vararg (* static argument *) // | P1Tann of (p1at, s1exp(*ann*)) // ascribed pattern // | P1Terrpat of () // HX: for indicating an error // end of [p1at_node] and labp1at_node = | LABP1ATomit of () | LABP1ATnorm of (l0ab, p1at) // end of [labp1at_node] where p1at = '{ p1at_loc= loc_t, p1at_node= p1at_node } (* end of [p1at] *) and p1atlst = List(p1at) and p1atopt = Option(p1at) and labp1at = '{ labp1at_loc= loc_t, labp1at_node= labp1at_node } (* end of [labp1at] *) and labp1atlst = List (labp1at) (* ****** ****** *) fun p1at_make (loc: loc_t, node: p1at_node): p1at // end of [p1at_make] (* ****** ****** *) fun p1at_any (loc: loc_t): p1at fun p1at_any2 (loc: loc_t): p1at // fun p1at_ide (_: loc_t, id: symbol): p1at fun p1at_dqid (loc: loc_t, dq: d0ynq, id: symbol): p1at // fun p1at_int (loc: loc_t, int: int): p1at fun p1at_intrep (loc: loc_t, rep: string): p1at fun p1at_char (loc: loc_t, c: char): p1at fun p1at_float (loc: loc_t, rep: string): p1at fun p1at_string (loc: loc_t, s: string): p1at // fun p1at_i0nt (loc: loc_t, x: i0nt): p1at fun p1at_c0har (loc: loc_t, x: c0har): p1at fun p1at_f0loat (loc: loc_t, x: f0loat): p1at fun p1at_s0tring (loc: loc_t, x: s0tring): p1at // fun p1at_empty (loc: loc_t): p1at fun p1at_app_dyn ( loc: loc_t , p1t: p1at, loc_arg: loc_t, npf: int, p1ts: p1atlst ) : p1at // end of [p1at_app_dyn] fun p1at_app_sta (loc: loc_t, p1t: p1at, s1as: s1vararglst): p1at // end of [p1at_app_sta] fun p1at_list (loc: loc_t, npf: int, xs: p1atlst): p1at fun p1at_tup (loc: loc_t, knd: int, npf: int, xs: p1atlst): p1at fun p1at_rec (loc: loc_t, knd: int, npf: int, xs: labp1atlst): p1at fun p1at_lst (loc: loc_t, lin: int, xs: p1atlst): p1at fun p1at_free (loc: loc_t, p1t: p1at): p1at fun p1at_unfold (loc: loc_t, p1t: p1at): p1at fun p1at_refas (loc: loc_t, id: symbol, loc_id: loc_t, p1t: p1at): p1at fun p1at_exist (loc: loc_t, arg: s1arglst, p1t: p1at): p1at fun p1at_svararg (loc: loc_t, arg: s1vararg): p1at fun p1at_ann (loc: loc_t, p1t: p1at, s1e: s1exp): p1at fun p1at_errpat (loc: loc_t): p1at (* ****** ****** *) fun labp1at_norm (loc: loc_t, l: l0ab, p1t: p1at): labp1at fun labp1at_omit (loc: loc_t): labp1at (* ****** ****** *) fun print_p1at (p1t: p1at): void overload print with print_p1at fun prerr_p1at (p1t: p1at): void overload prerr with prerr_p1at fun fprint_p1at : fprint_type (p1at) fun fprint_p1atlst : fprint_type (p1atlst) fun fprint_labp1at : fprint_type (labp1at) fun fprint_labp1atlst : fprint_type (labp1atlst) (* ****** ****** *) // fun p1at_make_v1al (loc: loc_t, v: v1al): p1at fun p1at_make_e1xp (loc: loc_t, e: e1xp): p1at // fun e1xp_make_p1at (loc: loc_t, p1t: p1at): e1xp // (* ****** ****** *) typedef i1nvarg = '{ i1nvarg_loc= loc_t , i1nvarg_sym= symbol , i1nvarg_type= s1expopt } // end of [i1nvarg] typedef i1nvarglst = List i1nvarg typedef i1nvresstate = '{ i1nvresstate_qua= s1qualst, i1nvresstate_arg= i1nvarglst } // end of [i1nvresstate] typedef loopi1nv = '{ loopi1nv_loc= loc_t , loopi1nv_qua= s1qualst (* quantifier *) , loopi1nv_met= s1explstopt (* metric *) , loopi1nv_arg= i1nvarglst (* argument *) , loopi1nv_res= i1nvresstate (* result *) } (* end of [loopi1nv] *) (* ****** ****** *) // fun i1nvarg_make (loc: loc_t, id: symbol, opt: s1expopt): i1nvarg // end of [i1nvarg_make] // fun i1nvresstate_make (s1qs: s1qualst, arg: i1nvarglst): i1nvresstate // val i1nvresstate_nil: i1nvresstate // (* ****** ****** *) // fun loopi1nv_make ( loc: loc_t , qua: s1qualst , met: s1explstopt, arg: i1nvarglst, res: i1nvresstate ) : loopi1nv // end of [loopi1nv_make] // fun loopi1nv_nil (loc0: loc_t): loopi1nv // end-of-fun // (* ****** ****** *) typedef intlst = List(int) (* ****** ****** *) datatype d1ecl_node = | D1Cnone of () | D1Clist of d1eclist // | D1Cpackname of (Stropt) // HX: #define ATS_PACKNAME ... // | D1Csymintr of (* overloaded symbol intr *) i0delst | D1Csymelim of (* overloaded symbol elim *) i0delst | D1Coverload of (i0de, dqi0de, int(*pval*)) // overloading // | D1Ce1xpdef of (symbol, e1xp) // HX: #define | D1Ce1xpundef of (symbol, e1xp) // HX: #undef // | D1Cpragma of (e1xplst) // HX: meta-programming | D1Ccodegen of (int(*kind*), e1xplst) // HX: meta-programming // | D1Cdatsrts of d1atsrtdeclst // datasorts | D1Csrtdefs of s1rtdeflst // sort definitions // | D1Cstacsts of s1tacstlst // static constants | D1Cstacons of (int(*knd*), s1taconlst) // static constructors (* | D1Cstavars of s1tavarlst // static variables // HX: removed *) | D1Ctkindef of t1kindef // primitive tkind | D1Csexpdefs of (int(*knd*), s1expdeflst) // static definitions // | D1Csaspdec of s1aspdec // static assumption | D1Creassume of sqi0de(*abstype*) // static re-assumption // | D1Cexndecs of e1xndeclst // exception constructor declarations | D1Cdatdecs of (int(*knd*), d1atdeclst, s1expdeflst) // datatype declarations // end of [D1Cdatdecs] // | D1Cclassdec of (i0de, s1expopt) // | D1Cextype of (* external type *) (string (*name*), s1exp (*definition*)) | D1Cextype of (* external type *) (int(*knd*), string (*name*), s1exp (*definition*)) | D1Cextvar of (* external variable *) (string (*name*), d1exp (*definition*)) // | D1Cextcode of ( int(*knd: 0/1*), int(*pos: 0/1/2: top/?/end*), string(*code*) ) // end of [D1Cextcode] // | D1Cdcstdecs of ( int(*0/1:sta/ext*), dcstkind, q1marglst, d1cstdeclst // dyncst ) // end of [D2Cdcstdecs] // | D1Cmacdefs of (int(*knd*), bool(*isrec*), m1acdeflst) // | D1Cimpdec of (int(*knd*), i1mparg, i1mpdec) // knd=0/1: implement/primplement // end of [D1Cimpdec] // | D1Cfundecs of (funkind, q1marglst, f1undeclst) // function declaration | D1Cvaldecs of (valkind, bool(*isrec*), v1aldeclst) // val declarations | D1Cvardecs of (int(*knd*), v1ardeclst) (* variable declaration *) // knd=0/1:var/prvar // end of [D1Cvardecs] // | D1Cinclude of (int(*sta/dyn*), d1eclist) (* file inclusion *) // | D1Cstaload of (* staloading a file *) (symbolopt, filename, int(*loadflag*), d1eclist) | D1Cstaloadnm of (symbolopt(*alias*), symbol(*nspace*)) | D1Cstaloadloc of (filename(*pfil*), symbol(*nspace*), d1eclist) // | D1Cdynload of filename (* dynloading a file *) // | D1Clocal of (d1eclist(*head*), d1eclist(*body*)) // local declaration // end of [d1ecl_node] and d1exp_node = // | D1Eide of (symbol) // identifiers | D1Edqid of (d0ynq, symbol) // qualified identifiers // | D1Eidextapp of (symbol(*id*), d1explst) // id: external // | D1Eint of int // dynamic integers | D1Eintrep of string(*rep*) // dynamic integers | D1Ebool of bool // boolean constants | D1Echar of char // dynamic characters | D1Efloat of string(*rep*) (* dynamic floats *) | D1Estring of string (* dynamic strings *) // | D1Ei0nt of i0nt // dynamic integers | D1Ec0har of c0har // dynamic characters | D1Ef0loat of f0loat (* dynamic floats *) | D1Es0tring of s0tring (* dynamic strings *) // | D1Etop of () (* uninitialized exp *) | D1Eempty of () (* empty expression *) // | D1Ecstsp of cstsp // special constants // | D1Etyrep of s1exp // $tyrep(...) | D1Eliteral of d1exp // $literal: int, float, string // | D1Eextval of (s1exp (*type*), string (*name*)) | D1Eextfcall of // externally named fcall (s1exp(*res*), string(*fun*), d1explst(*arg*)) // end of [D1Eextfcall] | D1Eextmcall of // externally named fcall (s1exp(*res*), d1exp(*obj*), string(*method*), d1explst(*arg*)) // end of [D1Eextmcall] // | D1Efoldat of (* fold at a given address *) (s1exparglst, d1exp) | D1Efreeat of (* free at a given address *) (s1exparglst, d1exp) // | D1Etmpid of (dqi0de, t1mpmarglst) (* template instantiation *) // | D1Elet of (d1eclist, d1exp(*body*)) | D1Ewhere of (d1exp(*body*), d1eclist) | D1Edecseq of // = let decs in (*none*) end d1eclist (* HX: note that there is no [D2Edecseq] *) // | D1Eapp_dyn of (* dynamic application *) (d1exp, loc_t(*arg*), int (*pfarity*), d1explst) | D1Eapp_sta of (* static application *) (d1exp, s1exparglst) // | D1Esing of (d1exp) // singleton | D1Elist of (int(*pfarity*), d1explst) // temporary // | D1Eifhead of (i1nvresstate, d1exp, d1exp, d1expopt) | D1Esifhead of (i1nvresstate, s1exp, d1exp, d1exp(*else*)) // | D1Eifcasehd of (i1nvresstate, i1fclist) // for ifcase-expressions // | D1Ecasehead of (* case-expression *) (caskind, i1nvresstate, d1explst, c1laulst) | D1Escasehead of (i1nvresstate, s1exp, sc1laulst) // | D1Elst of (* dynamic list-expression *) (int (*lin*), s1expopt, d1explst) | D1Etup of (* dynamic tuple-expression *) (int (*tupknd*), int (*pfarity*), d1explst) | D1Erec of (* dynamic record-expression *) (int (*recknd*), int (*pfarity*), labd1explst) // HX: 0/1: flat/boxed | D1Eseq of d1explst // dynamic sequence-expression // | D1Earrsub of (* array subscription *) (d1exp, loc_t(*ind*), d1explst(*ind*)) | D1Earrinit of (* array initialization *) (s1exp (*eltyp*), d1expopt (*asz*), d1explst (*elt*)) | D1Earrpsz of (* arraysize expression *) (s1expopt (*element type*), d1explst (*elements*)) // | D1Eptrof of d1exp // taking the address of | D1Eviewat of d1exp // taking view at a given address | D1Eselab of (int(*knd*), d1exp, d1lab) // | D1Eraise of (d1exp) // raised exception | D1Eeffmask of (effcst(*eff*), d1exp(*body*)) // $effmask(...) // | D1Evararg of (d1explst) // $vararg for variadicity // | D1Evcopyenv of (int(*knd=0/1*), d1exp) // $vcopyenv_v/$vcopyenv_vt // | D1Eshowtype of (d1exp) // $showtype: for debugging // | D1Etempenver of (d1exp) // $tempenver: for environvar // | D1Esexparg of s1exparg (* for temporary use *) // | D1Eexist of (s1exparg, d1exp) // witness-carrying expression // | D1Elam_dyn of (* dynamic abstraction: alloc/init *) (int (*lin*), p1at, d1exp) | D1Elaminit_dyn of (* dynamic abstraction initialization *) (int (*lin*), p1at, d1exp) | D1Elam_met of (* metric abstraction *) (loc_t (*loc_arg*), s1explst, d1exp) | D1Elam_sta_ana of (* static abstraction: analysis *) (loc_t (*loc_arg*), s1vararg, d1exp) | D1Elam_sta_syn of (* static abstraction: synthesis *) (loc_t (*loc_arg*), s1qualst, d1exp) // | D1Efix of // dynamic fixed-point expression (int(*knd: 0/1: flat/boxed*), i0de, d1exp) // | D1Edelay of (int(*knd*), d1exp(*body*)) // $delay and $ldelay // | D1Efor of ( // for-loop loopi1nv , d1exp(*ini*) , d1exp(*test*) , d1exp(*post*) , d1exp(*body*) ) // end of [D1Efor] | D1Ewhile of (loopi1nv, d1exp, d1exp) // while-loop // | D1Eloopexn of int(*knd*) // | D1Etrywith of (i1nvresstate, d1exp, c1laulst) // | D1Eann_type of (d1exp, s1exp) // ascribed dynexp | D1Eann_effc of (d1exp, effcst) // ascribed with effects | D1Eann_funclo of (d1exp, funclo) // ascribed with funtype // | D1Emacsyn of (macsynkind, d1exp) // macro syntax | D1Emacfun of (symbol(*name*), d1explst) // built-in macfun // | D1Esolassert of (d1exp) // $solver_assert(d1e_prf) | D1Esolverify of (s1exp) // $solver_verify(s1e_prop) // | D1Eerrexp of () // HX: placeholder for indicating an error // end of [d1exp_node] and d1lab_node = | D1LABlab of (label) | D1LABind of (d1explst) // end of [d1lab_node] (* ****** ****** *) where d1ecl = '{ d1ecl_loc= loc_t , d1ecl_node= d1ecl_node } (* end of [d1ec] *) and d1eclist = List (d1ecl) (* ****** ****** *) and d1exp = '{ d1exp_loc= loc_t , d1exp_node= d1exp_node } and d1explst = List (d1exp) and d1expopt = Option (d1exp) and labd1exp = dl0abeled (d1exp) and labd1explst = List (labd1exp) (* ****** ****** *) and d1lab = '{ d1lab_loc= loc_t , d1lab_node= d1lab_node } and d1lablst = List (d1lab) (* ****** ****** *) and i1fcl = '{ // i1fcl_loc= loc_t // , i1fcl_test= d1exp, i1fcl_body= d1exp // } (* end of [i1fcl] *) and i1fclist = List(i1fcl) (* ****** ****** *) and gm1at = '{ gm1at_loc= loc_t , gm1at_exp= d1exp, gm1at_pat= p1atopt } // end of [gm1at] and gm1atlst = List(gm1at) (* ****** ****** *) and c1lau = '{ c1lau_loc= loc_t , c1lau_pat= p1at , c1lau_gua= gm1atlst , c1lau_seq= int , c1lau_neg= int , c1lau_body= d1exp } // end of [c1lau] and c1laulst = List(c1lau) (* ****** ****** *) and sc1lau = '{ sc1lau_loc= loc_t , sc1lau_pat= sp1at , sc1lau_body= d1exp } // end of [sc1lau] and sc1laulst = List sc1lau (* ****** ****** *) and m1acdef = '{ m1acdef_loc= loc_t , m1acdef_sym= symbol , m1acdef_arg= m1acarglst , m1acdef_def= d1exp } // end of [m1acdef] and m1acdeflst = List m1acdef (* ****** ****** *) and f1undec = '{ f1undec_loc= loc_t , f1undec_sym= symbol , f1undec_sym_loc= loc_t , f1undec_def= d1exp , f1undec_ann= witht1ype } // end of [f1undec] and f1undeclst = List f1undec (* ****** ****** *) and v1aldec = '{ v1aldec_loc= loc_t , v1aldec_pat= p1at , v1aldec_def= d1exp , v1aldec_ann= witht1ype } // end of [v1aldec] and v1aldeclst = List (v1aldec) (* ****** ****** *) and v1ardec = '{ v1ardec_loc= loc_t , v1ardec_knd= int (* knd=0/1:var/ptr *) , v1ardec_sym= symbol , v1ardec_sym_loc= loc_t , v1ardec_pfat= i0deopt // proof of at-view , v1ardec_type= s1expopt (* type annotation *) , v1ardec_init= d1expopt // value for initialization } // end of [v1ardec] and v1ardeclst = List v1ardec (* ****** ****** *) and i1mpdec = '{ i1mpdec_loc= loc_t , i1mpdec_qid= impqi0de , i1mpdec_tmparg= t1mpmarglst , i1mpdec_def= d1exp } // end of [i1mpdec] (* ****** ****** *) // // HX: dynamic expressions // (* ****** ****** *) fun d1exp_make (loc: loc_t, node: d1exp_node): d1exp // end of [d1exp_make] (* ****** ****** *) // fun d1exp_ide (loc: loc_t, id: symbol): d1exp fun d1exp_opid (loc: loc_t, id: symbol): d1exp // fun d1exp_dqid (loc: loc_t, dq: d0ynq, id: symbol): d1exp // fun d1exp_idext (loc: loc_t, id: symbol): d1exp fun d1exp_idextapp (loc: loc_t, id: symbol, arg: d1explst): d1exp // fun d1exp_int (loc: loc_t, i: int): d1exp fun d1exp_intrep (loc: loc_t, rep: string): d1exp fun d1exp_char (loc: loc_t, c: char): d1exp fun d1exp_float (loc: loc_t, rep: string): d1exp fun d1exp_string (loc: loc_t, str: string): d1exp // fun d1exp_i0nt (loc: loc_t, x: i0nt): d1exp fun d1exp_c0har (loc: loc_t, x: c0har): d1exp fun d1exp_f0loat (loc: loc_t, x: f0loat): d1exp fun d1exp_s0tring (loc: loc_t, x: s0tring): d1exp // fun d1exp_top (loc: loc_t): d1exp fun d1exp_empty (loc: loc_t): d1exp // (* ****** ****** *) // fun d1exp_cstsp (loc: loc_t, x: cstsp): d1exp // (* ****** ****** *) // fun d1exp_tyrep (loc: loc_t, s1e: s1exp): d1exp // (* ****** ****** *) // fun d1exp_literal (loc: loc_t, lit: d1exp): d1exp // (* ****** ****** *) // fun d1exp_extval ( loc: loc_t, _type: s1exp, name: string ) : d1exp // end of [d1exp_extval] // fun d1exp_extfcall ( loc: loc_t , _type: s1exp, _fun: string, _arg: d1explst ) : d1exp // end of [d1exp_extfcall] fun d1exp_extmcall ( loc: loc_t , _type: s1exp, _obj: d1exp, _mtd: string, _arg: d1explst ) : d1exp // end of [d1exp_extmcall] // (* ****** ****** *) // fun d1exp_foldat (loc: loc_t, arg: s1exparglst, d1e: d1exp): d1exp fun d1exp_freeat (loc: loc_t, arg: s1exparglst, d1e: d1exp): d1exp // fun d1exp_tmpid (loc: loc_t, qid: dqi0de, decarg: t1mpmarglst): d1exp // end of [d1exp_tmpid] (* ****** ****** *) fun d1exp_let ( loc: loc_t, d1cs: d1eclist, body: d1exp ) : d1exp // end of [d1exp_let] fun d1exp_where ( loc: loc_t, body: d1exp, d1cs: d1eclist ) : d1exp // end of [d1exp_where] (* ****** ****** *) fun d1exp_app_sta ( loc: loc_t, d1e: d1exp, s1as: s1exparglst ) : d1exp // end of [d1exp_app_sta] fun d1exp_app_dyn ( loc: loc_t , d1e: d1exp, loc_arg: loc_t, npf: int, d1es: d1explst ) : d1exp // end of [d1exp_app_dyn] (* ****** ****** *) // fun d1exp_sing (loc: loc_t, d1e: d1exp): d1exp // fun d1exp_list (loc: loc_t, npf: int, d1es: d1explst): d1exp // (* ****** ****** *) fun d1exp_ifhead ( loc: loc_t , inv: i1nvresstate , _cond: d1exp , _then: d1exp, _else: d1expopt ) : d1exp // end of [d1exp_if] fun d1exp_sifhead ( loc: loc_t , inv: i1nvresstate , _cond: s1exp, _then: d1exp, _else: d1exp ) : d1exp // end of [d1exp_if] (* ****** ****** *) fun d1exp_ifcasehd ( loc: loc_t, inv: i1nvresstate, ifcls: i1fclist ) : d1exp // end of [d1exp_ifcasehd] (* ****** ****** *) fun d1exp_casehead ( loc: loc_t , knd: caskind , inv: i1nvresstate , d1es: d1explst, c1las: c1laulst ) : d1exp // end of [d1exp_casehead] fun d1exp_scasehead ( loc: loc_t , inv: i1nvresstate , s1e: s1exp, c1las: sc1laulst ) : d1exp // end of [d1exp_scasehead] (* ****** ****** *) fun d1exp_lst ( loc: loc_t, knd: int, elt: s1expopt, d1es: d1explst ) : d1exp // end of [d1exp_lst] fun d1exp_tup ( loc: loc_t, knd: int, npf: int, d1es: d1explst ) : d1exp // end of [d1exp_tup] fun d1exp_rec ( loc: loc_t, knd: int, npf: int, ld1es: labd1explst ) : d1exp // end of [d1exp_rec] fun d1exp_seq (loc: loc_t, d1es: d1explst): d1exp (* ****** ****** *) fun d1exp_arrsub ( loc: loc_t, arr: d1exp, ind: loc_t, ind: d1explst ) : d1exp // end of [d1exp_arrsub] fun d1exp_arrpsz (loc: loc_t, elt: s1expopt, d1es: d1explst): d1exp // end of [d1exp_arrpsz] fun d1exp_arrinit ( loc: loc_t, elt: s1exp, asz: d1expopt, d1es: d1explst ) : d1exp // end of [d1exp_arrinit] (* ****** ****** *) // fun d1exp_sexparg (loc: loc_t, s1a: s1exparg): d1exp // fun d1exp_exist (loc: loc_t, s1a: s1exparg, d1e: d1exp): d1exp // (* ****** ****** *) // fun d1exp_selab (loc: loc_t, kind: int, root: d1exp, lab: d1lab): d1exp // end of [d1exp_selab] // (* ****** ****** *) fun d1exp_ptrof (loc: loc_t, d1e: d1exp): d1exp fun d1exp_viewat (loc: loc_t, d1e: d1exp): d1exp (* ****** ****** *) // fun d1exp_raise (loc: loc_t, d1e: d1exp): d1exp // (* ****** ****** *) // fun d1exp_effmask (loc: loc_t, eff: effcst, d1e: d1exp): d1exp // fun d1exp_effmask_arg ( loc: loc_t , knd(*ntm,exn,wrt,ref*): int, d1e: d1exp): d1exp // (* ****** ****** *) // fun d1exp_vararg(loc: loc_t, d1es: d1explst): d1exp // (* ****** ****** *) // fun d1exp_vcopyenv (loc: loc_t, knd(*0/1*): int, d1e: d1exp): d1exp // (* ****** ****** *) fun d1exp_showtype(loc: loc_t, d1e: d1exp): d1exp (* ****** ****** *) fun d1exp_tempenver (loc: loc_t, d1e: d1exp): d1exp (* ****** ****** *) // fun d1exp_lam_dyn (loc: loc_t, lin: int, arg: p1at, body: d1exp): d1exp // fun d1exp_laminit_dyn (loc: loc_t, lin: int, arg: p1at, body: d1exp): d1exp // (* ****** ****** *) fun d1exp_lam_met ( loc: loc_t, loc_arg: loc_t, met: s1explst, body: d1exp ) : d1exp // end of [d1exp_lam_met] fun d1exp_lam_sta_ana ( loc: loc_t, loc_arg: loc_t, arg: s1vararg, body: d1exp ) : d1exp // end of [d1exp_lam_sta_ana] fun d1exp_lam_sta_syn ( loc: loc_t, loc_arg: loc_t, arg: s1qualst, body: d1exp ) : d1exp // end of [d1exp_lam_sta_syn] fun d1exp_fix (loc: loc_t, knd: int, id: i0de, d1e: d1exp): d1exp // end of [d1exp_fix] (* ****** ****** *) fun d1exp_delay (loc: loc_t, knd: int, d1e: d1exp): d1exp (* ****** ****** *) fun d1exp_trywith ( loc: loc_t, inv: i1nvresstate, d1e: d1exp, handler: c1laulst ) : d1exp // end of [d1exp_trywith] (* ****** ****** *) fun d1exp_for ( loc: loc_t , inv: loopi1nv , init: d1exp, test: d1exp, post: d1exp, body: d1exp ) : d1exp // end of [d1exp_for] fun d1exp_while ( loc: loc_t, inv: loopi1nv, test: d1exp, body: d1exp ) : d1exp // end of [d1exp_while] fun d1exp_loopexn (loc: loc_t, knd: int): d1exp (* ****** ****** *) // fun d1exp_ann_type (loc: loc_t, d1e: d1exp, s1e: s1exp): d1exp fun d1exp_ann_effc (loc: loc_t, d1e: d1exp, efc: effcst): d1exp fun d1exp_ann_funclo (loc: loc_t, d1e: d1exp, fc0: funclo): d1exp fun d1exp_ann_funclo_opt (loc: loc_t, d1e: d1exp, fc0: funclo): d1exp // (* ****** ****** *) // fun d1exp_macsyn (loc: loc_t, knd: macsynkind, d1e: d1exp): d1exp // fun d1exp_macfun (loc: loc_t, name: symbol, d1es: d1explst): d1exp // (* ****** ****** *) // fun d1exp_solassert (loc: loc_t, d1e_prf: d1exp): d1exp fun d1exp_solverify (loc: loc_t, s1e_prop: s1exp): d1exp // (* ****** ****** *) // fun d1exp_errexp (loc: loc_t): d1exp // indicating error // (* ****** ****** *) fun print_d1exp (x: d1exp): void overload print with print_d1exp fun prerr_d1exp (x: d1exp): void overload prerr with prerr_d1exp fun fprint_d1exp : fprint_type (d1exp) overload fprint with fprint_d1exp fun fprint_d1explst : fprint_type (d1explst) overload fprint with fprint_d1explst fun fprint_d1expopt : fprint_type (d1expopt) (* ****** ****** *) fun labd1exp_make (l: l0ab, d1e: d1exp): labd1exp fun fprint_labd1exp : fprint_type (labd1exp) fun fprint_labd1explst : fprint_type (labd1explst) (* ****** ****** *) fun d1exp_is_metric (d1e: d1exp): bool (* ****** ****** *) // fun d1exp_make_v1al (loc: loc_t, v: v1al): d1exp fun d1exp_make_e1xp (loc: loc_t, e: e1xp): d1exp // fun e1xp_make_d1exp (loc: loc_t, d1e: d1exp): e1xp // (* ****** ****** *) fun d1lab_lab (loc: loc_t, lab: label): d1lab fun d1lab_ind (loc: loc_t, ind: d1explst): d1lab fun fprint_d1lab : fprint_type (d1lab) (* ****** ****** *) // fun i1fcl_make ( loc: loc_t, test: d1exp, body: d1exp ) : i1fcl // end of [i1fcl_make] // (* ****** ****** *) // fun gm1at_make (loc: loc_t, d1e: d1exp, opt: p1atopt): gm1at // end of [gm1at_make] // fun c1lau_make ( loc: loc_t , pat: p1at , gua: gm1atlst, seq: int, neg: int, body: d1exp ) : c1lau // end of [c1lau_make] // fun sc1lau_make (loc: loc_t, pat: sp1at, body: d1exp): sc1lau // end of [sc1lau_make] // (* ****** ****** *) // // HX: for various itemized declarations // (* ****** ****** *) fun m1acdef_make ( loc: loc_t , ide: symbol, arg: m1acarglst, def: d1exp ) : m1acdef // end of [m1acdef_make] (* ****** ****** *) // fun v1aldec_make ( loc: loc_t , pat: p1at, def: d1exp, typ: witht1ype): v1aldec // end of [v1aldec_make] // (* ****** ****** *) // fun f1undec_make ( loc: loc_t , ide: symbol, loc_id: loc_t, def: d1exp, typ: witht1ype ) : f1undec // end of [f1undec_make] // (* ****** ****** *) fun v1ardec_make ( loc: loc_t , knd: int (*BANG: knd = 1*) , id: symbol, loc_id: loc_t , pfat: i0deopt, type: s1expopt, init: d1expopt ) : v1ardec // end of [v1ardec_make] (* ****** ****** *) fun i1mpdec_make ( loc: loc_t , qid: impqi0de, tmparg: t1mpmarglst, def: d1exp ) : i1mpdec // end of [i1mpdec_make] (* ****** ****** *) // // HX: declarations // (* ****** ****** *) fun d1ecl_none (loc: loc_t): d1ecl fun d1ecl_list (loc: loc_t, ds: d1eclist): d1ecl (* ****** ****** *) fun d1ecl_packname (opt: Stropt): d1ecl (* ****** ****** *) fun d1ecl_symintr (loc: loc_t, ids: i0delst): d1ecl fun d1ecl_symelim (loc: loc_t, ids: i0delst): d1ecl (* ****** ****** *) fun d1ecl_overload (loc: loc_t, id: i0de, qid: dqi0de, pval: int): d1ecl // end of [d1ecl_overload] (* ****** ****** *) // fun d1ecl_e1xpdef(loc: loc_t, id: symbol, def: e1xp): d1ecl fun d1ecl_e1xpundef(loc: loc_t, id: symbol, def: e1xp): d1ecl // (* ****** ****** *) // fun d1ecl_pragma(loc: loc_t, e1xps: e1xplst): d1ecl fun d1ecl_codegen(loc: loc_t, knd: int, xs: e1xplst): d1ecl // (* ****** ****** *) // fun d1ecl_datsrts (loc: loc_t, ds: d1atsrtdeclst): d1ecl // fun d1ecl_srtdefs(loc: loc_t, ds: s1rtdeflst): d1ecl // (* ****** ****** *) // fun d1ecl_stacsts(loc: loc_t, ds: s1tacstlst): d1ecl fun d1ecl_stacons(loc: loc_t, knd: int, ds: s1taconlst): d1ecl // (* fun d1ecl_stavars (loc: loc_t, ds: s1tavarlst): d1ecl *) // (* ****** ****** *) // fun d1ecl_tkindef (loc: loc_t, d0: t1kindef): d1ecl // fun d1ecl_sexpdefs (loc: loc_t, knd: int, ds: s1expdeflst): d1ecl // end of [d1ecl_sexpdefs] // (* ****** ****** *) // fun d1ecl_saspdec(loc: loc_t, d0: s1aspdec): d1ecl // fun d1ecl_reassume(loc: loc_t, qid: sqi0de): d1ecl // (* ****** ****** *) // fun d1ecl_exndecs (loc: loc_t, ds: e1xndeclst): d1ecl // fun d1ecl_datdecs ( loc: loc_t , knd: int, ds1: d1atdeclst, ds2: s1expdeflst ) : d1ecl // end of [d1ecl_datdecs] // fun d1ecl_classdec (loc: loc_t, id: i0de, sup: s1expopt): d1ecl // (* ****** ****** *) fun d1ecl_dcstdecs ( loc: loc_t , knd: int(*0/1:sta/ext*) , dck: dcstkind, qarg: q1marglst, d1cs: d1cstdeclst ) : d1ecl // end of [d1ecl_dcstdecs] fun d1ecl_extype ( loc: loc_t, name: string, def: s1exp ) : d1ecl // end of [d1ecl_extype] fun d1ecl_extype2 ( loc: loc_t, knd: int, name: string, def: s1exp ) : d1ecl // end of [d1ecl_extype] fun d1ecl_extvar ( loc: loc_t, name: string, def: d1exp ) : d1ecl // end of [d1ecl_extvar] fun d1ecl_extcode ( loc: loc_t, knd: int, pos: int, code: string ) : d1ecl // end of [d1ecl_extcode] (* ****** ****** *) fun d1ecl_macdefs ( loc: loc_t, knd: int, isrec: bool, m1ds: m1acdeflst ) : d1ecl // end of [d1ecl_macdefs] (* ****** ****** *) fun d1ecl_impdec ( loc: loc_t, knd: int, imparg: i1mparg, d1c: i1mpdec ) : d1ecl // end of [d1ecl_impdec] (* ****** ****** *) fun d1ecl_fundecs ( loc: loc_t , knd: funkind, qarg: q1marglst, f1ds: f1undeclst ) : d1ecl // end of [d1ecl_fundecs] fun d1ecl_valdecs ( loc: loc_t, knd: valkind, isrec: bool, v1ds: v1aldeclst ) : d1ecl // end of [d1ecl_valdecs] fun d1ecl_vardecs (loc: loc_t, knd: int, v1ds: v1ardeclst): d1ecl (* ****** ****** *) fun d1ecl_include (loc: loc_t, stadyn: int, ds: d1eclist): d1ecl // end of [d1ecl_include] (* ****** ****** *) // fun d1ecl_staload ( loc: loc_t , idopt: symbolopt , cfil: filename, ldflag: int, d1cs: d1eclist ) : d1ecl // end of [d1ecl_staload] // fun d1ecl_staloadnm (loc: loc_t, alias: symbolopt, nspace: symbol): d1ecl fun d1ecl_staloadloc (loc: loc_t, pfil: filename, nspace: symbol, d1cs: d1eclist): d1ecl // (* ****** ****** *) // fun d1ecl_dynload(loc: loc_t, fil: filename): d1ecl // (* ****** ****** *) // fun d1ecl_local (loc: loc_t, ds1: d1eclist, ds2: d1eclist): d1ecl // (* ****** ****** *) fun print_d1ecl (x: d1ecl): void fun prerr_d1ecl (x: d1ecl): void fun fprint_d1ecl : fprint_type (d1ecl) fun fprint_d1eclist : fprint_type (d1eclist) (* ****** ****** *) (* end of [pats_dynexp1.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_location.sats0000644000175000017500000001106613431250607021210 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) %{# #include "pats_location.cats" %} // end of [%{#] (* ****** ****** *) staload FIL = "./pats_filename.sats" typedef filename = $FIL.filename (* ****** ****** *) abst@ype position_t0ype = $extype "pats_position_struct" typedef position = position_t0ype (* ****** ****** *) fun fprint_position (out: FILEref, pos: position): void overload fprint with fprint_position fun print_position (pos: position): void overload print with print_position (* ****** ****** *) // fun position_get_ntot (pos: &position): lint // total char offset fun position_get_nrow (pos: &position): int // line number fun position_get_ncol (pos: &position): int // line offset // (* ****** ****** *) // fun position_init ( pos0: &position? >> position, ntot: lint, nrow: int, ncol: int ) : void // end of [position_init] // fun position_copy ( pos0: &position? >> position, pos1: &position ) : void // end of [position_copy] // (* ****** ****** *) // fun position_incby_char (pos: &position, i: int): void // fun position_decby_count (pos: &position, n: uint): void fun position_incby_count (pos: &position, n: uint): void // (* ****** ****** *) abstype location_type typedef location = location_type (* ****** ****** *) (* ** HX: returning the beginning char count *) fun location_get_bchar (loc: location): lint (* ****** ****** *) // fun location_beg_nrow (loc: location): int // beg row count // (* ****** ****** *) // fun location_beg_ntot (loc: location): lint // beg char count fun location_end_ntot (loc: location): lint // end char count // (* ****** ****** *) fun location_get_filename (loc: location): filename (* ****** ****** *) // fun print_location (loc: location): void fun prerr_location (loc: location): void fun fprint_location (out: FILEref, loc: location): void // overload print with print_location overload prerr with prerr_location overload fprint with fprint_location // (* ****** ****** *) fun fprint_locrange (out: FILEref, loc: location): void (* ****** ****** *) // fun fprint2_location (out: FILEref, loc: location): void // (* ****** ****** *) // val location_dummy : location (* dummy location *) // fun location_filename_origin(fil: filename): location // (* ****** ****** *) fun location_make_pos_pos ( pos1: position, pos2: position ) : location // end of [location_make_pos_pos] fun location_make_fil_pos_pos ( fil: filename, pos1: position, pos2: position ) : location // end of [location_make_fil_pos_pos] (* ****** ****** *) fun location_leftmost(loc: location): location fun location_rightmost(loc: location): location (* ****** ****** *) // fun location_combine (loc1: location, loc2: location): location // (* ****** ****** *) // fun fprint_line_pragma(out: FILEref, loc: location): void // (* ****** ****** *) // abstype locpragma_type = ptr typedef locpragma = locpragma_type // fun locpragma0_make(): locpragma fun locpragma1_make(loc: string): locpragma fun locpragma2_make(fil: string, loc: string): locpragma // fun the_location_pragma_pop((*void*)): void fun the_location_pragma_push((*void*)): void // fun the_location_pragma_get(): locpragma fun the_location_pragma_set(x: locpragma): void // fun fprint_locpragma(out: FILEref, loc: locpragma): void // (* ****** ****** *) (* end of [pats_location.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_util.dats0000644000175000017500000002317413431250607022064 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_symbol.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_lexing.sats" // for tokenizing staload "./pats_tokbuf.sats" // for token buffering (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) implement tokbuf_set_ntok_null (buf, n0) = let val () = tokbuf_set_ntok (buf, n0) in synent_null () end // end of [tokbuf_set_ntok_null] (* ****** ****** *) implement ptoken_fun ( buf, bt, err, f, enode ) = let val tok = tokbuf_get_token (buf) in if f (tok.token_node) then let val () = tokbuf_incby1 (buf) in tok end else let val loc = tok.token_loc val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, enode) in $UN.cast{token}(null) end // end of [_] // end // end of [ptoken_fun] (* ****** ****** *) implement ptoken_test_fun (buf, f) = let val tok = tokbuf_get_token (buf) in if f (tok.token_node) then let val () = tokbuf_incby1 (buf) in true end else false end // end of [ptoken_test_fun] (* ****** ****** *) implement ptokentopt_fun (buf, f1, f2) = let val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) in if f1 (tok.token_node) then let val () = tokbuf_incby1 (buf) var err: int = 0 val ent = f2 (buf, 0(*bt*), err) in if err = 0 then Some_vt (ent) else let val () = tokbuf_set_ntok (buf, n0) in None_vt () end (* end of [if] *) end else None_vt () end // end of [ptokentopt_fun] (* ****** ****** *) // // HX: looping if [f] is nullable! // implement pstar_fun{a} (buf, bt, f) = let // vtypedef res_vt = List_vt (a) // fun loop ( buf: &tokbuf , res: &res_vt? >> res_vt , err: &int ) : void = let val x = f (buf, 1(*bt*), err) in case+ 0 of | _ when err > 0 => let val () = res := list_vt_nil in // nothing end | _ => let val () = res := list_vt_cons{a}{0}(x, ?) val+list_vt_cons (_, !p_res1) = res val ((*void*)) = loop (buf, !p_res1, err) prval ((*void*)) = fold@ (res) in // nothing end (* end of [_] *) end // end of [loop] var res: res_vt var err: int = 0 val () = loop (buf, res, err) in res (* properly ordered *) end // end of [pstar_fun] (* ****** ****** *) // // HX: looping if [f] is nullable! // implement pstar_sep_fun{a} (buf, bt, sep, f) = let // vtypedef res_vt = List_vt (a) // fun loop ( buf: &tokbuf , res: &res_vt? >> res_vt , err: &int ) : void = let val n0 = tokbuf_get_ntok (buf) in if sep (buf) then let val x = f (buf, 0(*bt*), err) in case+ 0 of | _ when err > 0 => let val () = tokbuf_set_ntok (buf, n0) val () = res := list_vt_nil () in // nothing end | _ => let val () = res := list_vt_cons{a}{0}(x, ?) // end of [val] val+list_vt_cons (_, !p_res1) = res val () = loop (buf, !p_res1, err) prval () = fold@ (res) in // nothing end end else ( res := list_vt_nil () ) // end of [val] end // end of [loop] var res: res_vt var err: int = 0 val () = loop (buf, res, err) in res (* properly ordered *) end // end of [pstar_sep_fun] (* ****** ****** *) implement pstar_COMMA_fun (buf, bt, f) = pstar_sep_fun (buf, bt, p_COMMA_test, f) // end of [pstar_COMMA_fun] (* ****** ****** *) implement pstar_fun0_sep (buf, bt, f, sep) = let var err: int = 0 val x0 = f (buf, 1(*bt*), err) in // case+ 0 of | _ when err > 0 => list_vt_nil () // HX: normal | _ => let val xs = pstar_sep_fun (buf, 1(*bt*), sep, f) in list_vt_cons (x0, xs) end // end of [_] // end // end of [pstar_fun0_sep] (* ****** ****** *) implement pstar_fun0_BAR (buf, bt, f) = pstar_fun0_sep (buf, bt, f, p_BAR_test) // end of [pstar_fun0_BAR] implement pstar_fun0_COMMA (buf, bt, f) = pstar_fun0_sep (buf, bt, f, p_COMMA_test) // end of [pstar_fun0_COMMA] implement pstar_fun0_SEMICOLON (buf, bt, f) = pstar_fun0_sep (buf, bt, f, p_SEMICOLON_test) // end of [pstar_fun0_SEMICOLON] implement pstar_fun0_BARSEMI (buf, bt, f) = pstar_fun0_sep (buf, bt, f, p_BARSEMI_test) // end of [pstar_fun0_BARSEMI] (* ****** ****** *) implement pstar_fun1_sep ( buf, bt, err, f, sep ) = let val x0 = f (buf, bt, err) in // case+ 0 of | _ when synent_isnot_null(x0) => let val xs = pstar_sep_fun (buf, 1(*bt*), sep, f) // end of [val] in list_vt_cons (x0, xs) end | _ => let val () = err := err + 1 in list_vt_nil((*error*)) end (* end of [_] *) // end // end of [pstar_fun1_sep] (* ****** ****** *) implement pstar_fun1_AND (buf, bt, err, f) = pstar_fun1_sep (buf, bt, err, f, p_AND_test) // end of [pstar_fun1_AND] (* ****** ****** *) implement pstar1_fun ( buf, bt, err, f ) = let val x0 = f (buf, bt, err) in // case+ 0 of | _ when synent_isnot_null (x0) => let val xs = pstar_fun (buf, 1(*bt*), f) in list_vt_cons (x0, xs) end | _ => let val () = err := err + 1 in list_vt_nil () end (* end of [_] *) // end // end of [pplus_fun] (* ****** ****** *) implement popt_fun{a} (buf, bt, f) = let var err: int = 0 val x = f (buf, 1(*bt*), err) in if err = 0 then Some_vt (x) else None_vt () end // end of [popt_fun] (* ****** ****** *) implement pseq2_fun{a1,a2} ( buf, bt, err, f1, f2 ) = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val ent1 = f1(buf, bt, err) // val bt = 0 // val ent2 = ( if err <= err0 then f2(buf, bt, err) else synent_null() // end of [if] ) : a2 // end of [val] // val () = if (err > err0) then tokbuf_set_ntok(buf, n0) // end of [val] // in SYNENT2 (ent1, ent2) end // end of [pseq2_fun] (* ****** ****** *) implement pseq3_fun{a1,a2,a3} ( buf, bt, err, f1, f2, f3 ) = let // val err0 = err // val n0 = tokbuf_get_ntok (buf) // val ent1 = f1(buf, bt, err) // val bt = 0 // val ent2 = ( if err <= err0 then f2 (buf, bt, err) else synent_null() // end of [if] ) : a2 // end of [val] val ent3 = ( if err <= err0 then f3 (buf, bt, err) else synent_null() // end of [if] ) : a3 // end of [val] // val ((*error*)) = if (err > err0) then tokbuf_set_ntok(buf, n0) // end of [val] // in SYNENT3 (ent1, ent2, ent3) end // end of [pseq3_fun] (* ****** ****** *) implement ptest_fun{a} (buf, f, ent) = let var err: int = 0 val () = ent := synent_encode (f (buf, 1(*bt*), err)) in err = 0 end // end of [ptest_fun] (* ****** ****** *) implement list12_free (ent) = ( case+ ent of | ~LIST12one xs => list_vt_free (xs) | ~LIST12two (xs1, xs2) => (list_vt_free (xs1); list_vt_free (xs2)) ) (* end of [list12_free] *) (* ****** ****** *) implement plist12_fun {a}(buf, bt, f) = let // val xs1 = pstar_fun0_COMMA{a}(buf, bt, f) // val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_BAR () => let val () = incby1 () val xs2 = pstar_fun0_COMMA{a}(buf, bt, f) in LIST12two (xs1, xs2) end | _ => LIST12one (xs1) // end // end of [plist12_fun] (* ****** ****** *) implement p1list12_fun{a} (x, buf, bt, f) = let // val xs1 = pstar_sep_fun{a} (buf, bt, p_COMMA_test, f) // val xs1 = list_vt_cons{a}(x, xs1) // val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_BAR () => let val () = incby1 () val xs2 = pstar_fun0_COMMA{a}(buf, bt, f) in LIST12two (xs1, xs2) end | _ (*non-BAR*) => LIST12one (xs1) // end // end of [p1list12_fun] (* ****** ****** *) implement pif_fun ( buf, bt, err, f, err0 ) = ( // if err <= err0 then f (buf, bt, err) else synent_null ((*void*)) // ) (* end of [pif_fun] *) (* ****** ****** *) implement ptokwrap_fun ( buf, bt, err, f, enode ) = x where { val err0 = err val () = err := 0 val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val x = f (buf, bt, err, tok) val () = if err > 0 then let val () = tokbuf_set_ntok (buf, n0) in the_parerrlst_add_ifnbt (bt, tok.token_loc, enode) end // end of [then] // end of [val] val () = err := err + err0 } (* end of [ptokwrap_fun] *) (* ****** ****** *) (* end of [pats_parsing_util.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_intinf_int.hats0000644000175000017500000001245313431250607021527 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: May, 2014 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_intinf.sats" (* ****** ****** *) datatype intinf = INTINF of (llint) (* ****** ****** *) // fun un .<>. ( intinf: intinf ) :<> llint = let val+INTINF(i) = intinf in i end // (* ****** ****** *) assume intinf_type = intinf (* ****** ****** *) implement intinf_make_int (i) = INTINF ($UN.cast{llint}(i)) implement intinf_make_size (sz) = INTINF ($UN.cast{llint}(sz)) (* ****** ****** *) // (* ** HX: [rep] is unsigned! *) implement intinf_make_string (rep) = let val i = $UT.llint_make_string (rep) in INTINF (i) end // end of [intinf_make_string] // (* ****** ****** *) local staload STDLIB = "libc/SATS/stdlib.sats" in (* in-of-local *) implement intinf_make_base_string_ofs (base, rep, ofs) = let // val rep = __cast (rep) where { extern castfn __cast (x: string): ptr } val rep_ofs = __cast (rep + ofs) where { extern castfn __cast (x: ptr): string } // val x = $STDLIB.strtoll_errnul (rep_ofs, base) // in INTINF (x) end // end of [intinf_make_base_string_ofs] end // end of [local] (* ****** ****** *) implement fprint_intinf (out, x) = fprint_llint (out, un(x)) (* ****** ****** *) implement intinf_get_int (x) = $UN.cast2int (un(x)) (* ****** ****** *) implement lt_intinf_int (x1, x2) = compare_intinf_int (x1, x2) < 0 implement lte_intinf_int (x1, x2) = compare_intinf_int (x1, x2) <= 0 implement gt_intinf_int (x1, x2) = compare_intinf_int (x1, x2) > 0 implement gte_intinf_int (x1, x2) = compare_intinf_int (x1, x2) >= 0 (* ****** ****** *) implement eq_intinf_int (x1, x2) = compare_intinf_int (x1, x2) = 0 implement eq_int_intinf (x1, x2) = compare_intinf_int (x2, x1) = 0 implement eq_intinf_intinf (x1, x2) = compare_intinf_intinf (x1, x2) = 0 (* ****** ****** *) implement neq_intinf_int (x1, x2) = compare_intinf_int (x1, x2) != 0 implement neq_int_intinf (x1, x2) = compare_intinf_int (x2, x1) != 0 implement neq_intinf_intinf (x1, x2) = compare_intinf_intinf (x1, x2) != 0 (* ****** ****** *) // implement compare_intinf_int (x1, x2) = let val i1 = un (x1) val i2 = llint_of_int (x2) in compare_llint_llint (i1, i2) end // end of [compare_intinf_int] // implement compare_intinf_intinf (x1, x2) = compare_llint_llint (un(x1), un(x2)) // (* ****** ****** *) // implement neg_intinf (x) = INTINF (~(un(x))) // (* ****** ****** *) // implement add_intinf_int (x1, x2) = INTINF (un(x1) + llint_of_int (x2)) implement add_int_intinf (x1, x2) = INTINF (llint_of_int (x1) + un(x2)) // implement add_intinf_intinf (x1, x2) = INTINF (un(x1) + un(x2)) // (* ****** ****** *) implement sub_intinf_intinf (x1, x2) = INTINF (un(x1) - un(x2)) (* ****** ****** *) // implement mul_intinf_int (x1, x2) = INTINF (un(x1) * llint_of_int (x2)) implement mul_int_intinf (x1, x2) = INTINF (llint_of_int (x1) * un(x2)) // implement mul_intinf_intinf (x1, x2) = INTINF (un(x1) * un(x2)) // (* ****** ****** *) local // staload "libats/SATS/funset_listord.sats" staload _(*anon*) = "libats/DATS/funset_listord.dats" // fn cmp ( x1: intinf, x2: intinf ) : int = compare_intinf_intinf (x1, x2) // assume intinfset_type = set (intinf) // in (*in-of-local*) implement intinfset_sing (x) = funset_make_sing (x) implement intinfset_is_member (xs, x) = funset_is_member (xs, x, cmp) // end of [val] implement intinfset_add (xs, x) = xs where { var xs = xs val _(*exist*) = funset_insert (xs, x, cmp) } (* end of [val] *) implement intinfset_listize (xs) = funset_listize (xs) end // end of [local] (* ****** ****** *) implement fprint_intinfset (out, xs) = { val xs = intinfset_listize (xs) val () = $UT.fprintlst (out, $UN.castvwtp1{intinflst}(xs), ", ", fprint_intinf) val () = list_vt_free (xs) } (* end of [fprint_intinfset] *) (* ****** ****** *) (* end of [pats_intinf_int.hats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_ptrof.dats0000644000175000017500000002013713431250607022004 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_ptrof" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) extern fun s2addr_ptrof ( loc0: loc_t , s2l: s2exp, d3ls: d3lablst, s2rt: &s2exp? >> s2exp ) : s2exp // end of [s2addr_ptrof] local fun auxerr_pfobj ( loc0: loc_t, s2l: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": [addr@] operation cannot be performed" val () = prerr ": the proof search for view located at [" val () = prerr_s2exp (s2l) val () = prerr "] failed to turn up a result." val () = prerr_newline () in the_trans3errlst_add (T3E_pfobj_search_none (loc0, s2l)) end // end of [auxerr_pfobj] fun auxlabs ( d3ls: d3lablst ) : s2lablst = ( case+ d3ls of | list_cons (d3l, d3ls) => ( case+ d3l.d3lab_node of | D3LABlab (lab) => let val s2l = S2LABlab (lab) in list_cons (s2l, auxlabs d3ls) end // end of [D3LABlab] | D3LABind (ind) => let val ind = d3explst_get_type (ind) val s2l = S2LABind (ind) in list_cons (s2l, auxlabs d3ls) end // end of [D3LABind] ) // end of [list_ons] | list_nil () => list_nil () ) // end of [auxlabs] fun auxmain ( loc0: loc_t , pfobj: pfobj , d3ls: d3lablst , s2rt: &s2exp? >> s2exp ) : s2exp = let // val+~PFOBJ ( d2vw, s2e_ctx, s2e_elt, s2l ) = pfobj // end of [val] // val () = s2rt := s2e_elt var linrest: int = 0 and sharing: int = 0 // val ( s2e_sel, s2ps ) = s2exp_get_dlablst_linrest_sharing ( loc0, s2e_elt, d3ls, linrest, sharing ) // endfcall // end of [val] // val s2e_sel = s2exp_hnfize (s2e_sel) val () = list_vt_free (s2ps) (*probing*) val s2ls = auxlabs (d3ls) // val s2e_prj = s2exp_proj (s2l, s2e_elt, s2ls) // in s2exp_ptr_addr_type (s2e_prj) end // end of [auxmain] in (* in of [local] *) implement s2addr_ptrof ( loc0, s2l, d3ls, s2rt ) = let val opt = pfobj_search_atview (s2l) in // case+ opt of | ~Some_vt (pfobj) => auxmain (loc0, pfobj, d3ls, s2rt) | ~None_vt () => let val s2e_sel = s2exp_t0ype_err () // end of [val] val () = s2rt := s2e_sel val () = auxerr_pfobj (loc0, s2l) in s2e_sel end // end of [None] // end // end of [s2addr_ptrof] end // end of [local] (* ****** ****** *) local fun auxerr_nonptr ( loc0: loc_t, d3e: d3exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": the dynamic expression is expected to be a pointer." val () = prerr_newline () in the_trans3errlst_add (T3E_d3exp_nonderef (d3e)) end // end of [auxerr_nonptr] fun auxerr_nonmut ( loc0: loc_t, d2v: d2var ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": the dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is not mutable and thus [addr@] cannot be applied." val () = prerr_newline () in the_trans3errlst_add (T3E_d2var_nonmut (loc0, d2v)) end // end of [auxerr_nonmut] fun auxerr_nonlval ( d2e0: d2exp ) : void = let val loc0 = d2e0.d2exp_loc val () = prerr_error3_loc (loc0) val () = prerr ": [addr@] operation cannot be performed" val () = prerr ": a left-value is required but a non-left-value is given." val () = prerr_newline () in the_trans3errlst_add (T3E_d2exp_nonlval (d2e0)) end // end of [auxerr_nonlval] in // in of [local] extern fun d2exp_trup_ptrof_varsel (loc0: loc_t, d2v: d2var, d2ls: d2lablst): d3exp extern fun d2exp_trup_ptrof_ptrsel (loc0: loc_t, d2e: d2exp, d2ls: d2lablst): d3exp implement d2exp_trup_ptrof (d2e0) = let // fun aux ( d2e0: d2exp, d2e: d2exp ) : d3exp = let // val loc0 = d2e0.d2exp_loc // in // case+ d2e.d2exp_node of // case+ // | D2Evar(d2v) => let val opt = d2var_get_addr (d2v) in case+ opt of | Some _ => let val s2e = d2var_get_type_some (loc0, d2v) // end of [val] in d3exp_ptrofvar (loc0, s2e, d2v) end // end of [Some] | None ((*void*)) => let val () = auxerr_nonmut (loc0, d2v) in d3exp_errexp (loc0) end // end of [None] end (* end of [D2Evar] *) // | D2Ederef(_(*!*), d2e) => d2exp_trup_ptrof_ptrsel(loc0, d2e, list_nil) // end of [D2Ederef] // | D2Eselab(d2e, d2ls) => ( case+ d2e.d2exp_node of (* case+ *) | D2Evar (d2v) => d2exp_trup_ptrof_varsel (loc0, d2v, d2ls) // end of [D2Evar] | D2Ederef(_(*!*), d2e) => d2exp_trup_ptrof_ptrsel (loc0, d2e, d2ls) // end of [D2Ederef] | _ => let val () = auxerr_nonlval (d2e0) in d3exp_errexp (loc0) end // end of [_] ) (* end of [D2Esel] *) // (* | D2Esing (d2e) => aux (d2e0, d2e) *) // | _ (*rest-of-d2exp*) => let val () = auxerr_nonlval (d2e0) in d3exp_errexp (loc0) end // end of [_] // end // end of [aux] // val-D2Eptrof (d2e) = d2e0.d2exp_node // in aux (d2e0, d2e) end // end of [d2exp_trup_ptrof] (* ****** ****** *) implement d2exp_trup_ptrof_varsel (loc0, d2v, d2ls) = let val ismut = d2var_is_mutabl (d2v) in // if ismut then let val d3ls = d2lablst_trup (d2ls) val-Some (s2e_ptr) = d2var_get_type (d2v) val d3e_ptr = d3exp_ptrofvar (loc0, s2e_ptr, d2v) in // case+ d3ls of | list_cons _ => let val-Some (s2l) = d2var_get_addr (d2v) var s2rt: s2exp val s2e_prj = s2addr_ptrof (loc0, s2l, d3ls, s2rt) in d3exp_ptrofsel (loc0, s2e_prj, d3e_ptr, s2rt, d3ls) end // end of [list_cons] | list_nil () => d3e_ptr // end of [list_nil] // end else let val () = auxerr_nonmut (loc0, d2v) in d3exp_errexp (loc0) // end of [val] end // end of [if] // end // end of [d2exp_trup_ptrof_varsel] (* ****** ****** *) implement d2exp_trup_ptrof_ptrsel (loc0, d2e, d2ls) = let val d3e = d2exp_trup (d2e) val () = d3exp_open_and_add (d3e) val d3ls = d2lablst_trup (d2ls) val s2e = d3exp_get_type (d3e) val s2f = s2exp2hnf (s2e) val opt = un_s2exp_ptr_addr_type (s2f) in // case+ opt of | ~Some_vt (s2l) => let var s2rt: s2exp val s2e_prj = ( case+ d3ls of | list_cons _ => s2addr_ptrof (loc0, s2l, d3ls, s2rt) | list_nil () => let val () = s2rt := s2exp_void_t0ype () in s2exp_ptr_addr_type (s2l) // end of [val] end // end of [list_nil] ) : s2exp // end of [val] in d3exp_ptrofsel (loc0, s2e_prj, d3e, s2rt, d3ls) end // end of [Some_vt] | ~None_vt () => let val () = auxerr_nonptr (loc0, d3e) in d3exp_errexp (loc0) end // end of [None_vt] // end // end of [d2exp_trup_ptrof_ptrset] (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [pats_trans3_ptrof.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lintprgm_myint.dats0000644000175000017500000000335013431250607022432 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: May, 2014 // (* ****** ****** *) #include "./pats_params.hats" (* ****** ****** *) #if C3NSTRINTKND="intknd" #then // #include "./pats_lintprgm_myint_int.dats" // #elif C3NSTRINTKND="gmpknd" #then // #include "./pats_lintprgm_myint_gmp.dats" // #else // #error ("ERROR: pats_lintprgm_myint: [C3NSTRINTKND] is undefined!\n") // #endif // end of [#if] (* ****** ****** *) (* end of [pats_lintprgm_myint.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_error.dats0000644000175000017500000002574513431250607022246 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload LOC = "./pats_location.sats" typedef location = $LOC.location overload fprint with $LOC.fprint_location (* ****** ****** *) staload "./pats_lexing.sats" (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) implement parerr_make (loc, node) = '{ parerr_loc= loc, parerr_node= node } // end of [parerr_make] (* ****** ****** *) vtypedef parerrlst_vt = List_vt (parerr) (* ****** ****** *) // // HX-2011-03-12: // [n] stores the total number of errors, some of // which may not be recorded // extern fun the_parerrlst_get (n: &int? >> int): parerrlst_vt // (* ****** ****** *) local // // HX-2011-03-22: // MAXLEN is the max number of errors to be reported // #define MAXLEN 100 #assert (MAXLEN > 0) // val the_length = ref (0) val the_parerrlst = ref (list_vt_nil) // in (* in-of-local *) implement the_parerrlst_clear () = () where { val () = !the_length := 0 val () = () where { val (vbox pf | p) = ref_get_view_ptr (the_parerrlst) val () = list_vt_free (!p) val () = !p := list_vt_nil () } // end of [val] } (* end of [the_parerrlst_clear] *) implement the_parerrlst_add (err) = () where { val n = let val (vbox pf | p) = ref_get_view_ptr (the_length) val n = !p val () = !p := n + 1 in n end // end of [val] val () = if n < MAXLEN then let val (vbox pf | p) = ref_get_view_ptr (the_parerrlst) in !p := list_vt_cons (err, !p) end // end of [val] } (* end of [the_parerrlst_add] *) implement the_parerrlst_get (n) = xs where { val () = n := !the_length val () = !the_length := 0 val (vbox pf | p) = ref_get_view_ptr (the_parerrlst) val xs = !p val xs = list_vt_reverse (xs) val () = !p := list_vt_nil () } (* end of [the_parerrlst_get] *) end // end of [local] (* ****** ****** *) implement the_parerrlst_add_ifnbt (bt, loc, node) = let in // if (bt = 0) then the_parerrlst_add (parerr_make (loc, node)) else () // end // end of [the_parerrlst_add_if0] (* ****** ****** *) implement the_parerrlst_add_ifunclosed (loc, name) = let val newline = '\n' in // if string_contains (name, newline) then the_parerrlst_add (parerr_make (loc, PE_fname_unclosed)) else () // end // end of [the_parerrlst_add_ifunclosed] (* ****** ****** *) fun synent_needed ( out: FILEref , x: parerr, name: string ) : void = () where { // val () = fprint (out, x.parerr_loc) val () = fprintf (out, ": error(parsing): the syntactic entity [%s] is needed.", @(name)) val () = fprint_newline (out) // } (* end of [synent_needed] *) (* ****** ****** *) fun keyword_needed ( out: FILEref , x: parerr, name: string ) : void = () where { val () = fprint (out, x.parerr_loc) val () = fprintf (out, ": error(parsing): the keyword [%s] is needed.", @(name)) val () = fprint_newline (out) } (* end of [keyword_needed] *) (* ****** ****** *) fun parenth_needed ( out: FILEref , x: parerr, name: string ) : void = () where { val () = fprint (out, x.parerr_loc) val () = fprintf (out, ": error(parsing): the keyword '%s' is needed.", @(name)) val () = fprint_newline (out) } (* end of [parenth_needed] *) (* ****** ****** *) fun fname_unclosed ( out: FILEref, x: parerr ) : void = () where { val () = fprint (out, x.parerr_loc) val () = fprintf (out, ": error(parsing): the filename is unclosed.", @()) val () = fprint_newline (out) } (* end of [fname_unclosed] *) (* ****** ****** *) fun token_discarded ( out: FILEref, x: parerr ) : void = () where { val () = fprint (out, x.parerr_loc) val () = fprintf (out, ": error(parsing): the token is discarded.", @()) val () = fprint_newline (out) } // end of [token_discarded] (* ****** ****** *) (* fun file_unavailable ( out: FILEref, x: parerr ) : void = let // val-PE_FILENONE(fname) = x.parerr_node val ((*void*)) = fprint (out, x.parerr_loc) val ((*void*)) = fprintf (out, ": error(parsing): the file [%s] is unavailable.", @(fname)) // in // nothing end // end of [file_unavailable] *) (* ****** ****** *) implement fprint_parerr (out, x) = let // val loc = x.parerr_loc and node = x.parerr_node // macdef SN (x, name) = synent_needed (out, ,(x), ,(name)) macdef KN (x, name) = keyword_needed (out, ,(x), ,(name)) macdef PN (x, name) = parenth_needed (out, ,(x), ,(name)) // in // case+ node of // | PE_AS() => KN (x, "as") // | PE_AND() => KN (x, "and") // | PE_END() => KN (x, "end") // | PE_OF() => KN (x, "of") | PE_IN() => KN (x, "in") // | PE_IF() => KN (x, "if") | PE_SIF() => KN (x, "sif") // | PE_CASE() => KN (x, "case") | PE_SCASE() => KN (x, "scase") // | PE_IFCASE() => KN (x, "ifcase") // | PE_THEN () => KN (x, "then") | PE_ELSE () => KN (x, "else") // | PE_REC () => KN (x, "rec") | PE_WHEN () => KN (x, "when") | PE_WITH () => KN (x, "with") // | PE_TRY () => KN (x, "try") // | PE_FOR () => KN (x, "for") | PE_WHILE () => KN (x, "while") // | PE_BAR () => KN (x, "|") | PE_COLON () => KN (x, ":") | PE_COMMA () => KN (x, ",") | PE_SEMICOLON () => KN (x, ";") | PE_BANG () => KN (x, "!") | PE_DOT () => KN (x, ",") | PE_EQ () => KN (x, "=") | PE_EQGT () => KN (x, "=>") | PE_GT () => KN (x, ">") | PE_GTDOT () => KN (x, ">.") | PE_GTLT () => KN (x, "><") | PE_SRPTHEN () => KN (x, "#then") | PE_SRPENDIF () => KN (x, "#endif") // | PE_LPAREN () => PN (x, "(") | PE_RPAREN () => PN (x, ")") | PE_LBRACKET () => PN (x, "[") | PE_RBRACKET () => PN (x, "]") | PE_LBRACE () => PN (x, "{") | PE_RBRACE () => PN (x, "}") // | PE_EOF () => { val () = fprint (out, loc) val () = fprintf (out, ": error(parsing): [EOF] is needed", @()) val () = fprint_newline (out) } // | PE_i0nt () => { val () = fprint (out, loc) val () = fprintf (out, ": error(parsing): [i0nt] is needed", @()) val () = fprint_newline (out) } | PE_c0har () => { val () = fprint (out, loc) val () = fprintf (out, ": error(parsing): [c0har] is needed", @()) val () = fprint_newline (out) } | PE_f0loat () => { val () = fprint (out, loc) val () = fprintf (out, ": error(parsing): [f0loat] is needed", @()) val () = fprint_newline (out) } | PE_s0tring () => { val () = fprint (out, loc) val () = fprintf (out, ": error(parsing): [s0tring] is needed", @()) val () = fprint_newline (out) } // | PE_i0de () => SN (x, "i0de") | PE_i0dext () => SN (x, "i0dext") // | PE_i0de_dlr () => SN (x, "i0de_dlr") // | PE_l0ab () => SN (x, "l0ab") | PE_p0rec () => SN (x, "p0rec") // | PE_funarrow () => SN (x, "funarrow") | PE_colonwith () => SN (x, "colonwith") // | PE_e0xp () => SN (x, "e0xp") | PE_atme0xp () => SN (x, "atme0xp") // | PE_s0rt () => SN (x, "s0rt") | PE_s0rtid () => SN (x, "s0rtid") | PE_atms0rt () => SN (x, "atms0rt") | PE_s0marg () => SN (x, "s0marg") | PE_a0msrt () => SN (x, "a0msrt") // | PE_s0exp () => SN (x, "s0exp") | PE_si0de () => SN (x, "si0de") | PE_s0taq () => SN (x, "s0taq") | PE_atms0exp () => SN (x, "atms0exp") | PE_labs0exp () => SN (x, "labs0exp") | PE_s0rtext () => SN (x, "s0rtext") | PE_s0qua () => SN (x, "s0qua") | PE_q0marg () => SN (x, "q0marg") // | PE_p0at () => SN (x, "p0at") | PE_pi0de () => SN (x, "pi0de") | PE_atmp0at () => SN (x, "atmp0at") | PE_labp0at () => SN (x, "labp0at") | PE_p0at_as () => SN (x, "p0at_as") // | PE_i0fcl () => SN (x, "i0fcl") // | PE_gm0at () => SN (x, "gm0at") | PE_guap0at () => SN (x, "guap0at") | PE_c0lau () => SN (x, "c0lau") | PE_sc0lau () => SN (x, "sc0lau") // | PE_di0de () => SN (x, "di0de") | PE_d0ynq () => SN (x, "d0ynq") | PE_dqi0de () => SN (x, "dqi0de") // | PE_arrqi0de () => SN (x, "arrqi0de") | PE_tmpqi0de () => SN (x, "tmpqi0de") | PE_impqi0de () => SN (x, "impqi0de") // | PE_d0exp () => SN (x, "d0exp") | PE_d0exp0 () => SN (x, "d0exp0") | PE_d0exp1 () => SN (x, "d0exp1") | PE_atmd0exp () => SN (x, "atmd0exp") | PE_labd0exp () => SN (x, "labd0exp") // | PE_d0ecl () => SN (x, "d0ecl") | PE_stai0de () => SN (x, "stai0de") | PE_d0ecl_sta () => SN (x, "d0ecl_sta") | PE_d0ecl_dyn () => SN (x, "d0ecl_dyn") | PE_guad0ecl () => SN (x, "guad0ecl") | PE_staloadarg () => SN (x, "staloadarg") // | PE_fname_unclosed () => fname_unclosed (out, x) // | PE_DISCARD () => token_discarded (out, x) (* | PE_FILENONE (fname) => file_unavailable (out, x) *) // (* | _ => { val () = fprint (out, loc) val () = fprintf (out, ": error(parsing): unspecified", @()) val () = fprint_newline (out) } (* end of [_] *) *) // end // end of [fprint_parerr] (* ****** ****** *) implement fprint_the_parerrlst (out) = let // var nerr: int? val xs = the_parerrlst_get (nerr) // fun loop ( out: FILEref , xs: parerrlst_vt , nerr: int , bchar_max: lint // local max , bchar_lst: lint // last char count ) : int = let in case+ xs of | ~list_vt_cons (x, xs) => let val loc = x.parerr_loc val bchar = $LOC.location_get_bchar (loc) in case+ 0 of | _ when bchar > bchar_max => let val () = fprint_parerr (out, x) in loop (out, xs, nerr-1, bchar, bchar) end | _ when bchar <= bchar_lst => let val () = fprint_parerr (out, x) in loop (out, xs, nerr-1, bchar_max, bchar) end | _ => loop (out, xs, nerr-1, bchar_max, bchar_lst) end // end of [list_vt_cons] | ~list_vt_nil ((*void*)) => nerr end // end of [loop] // in // case+ xs of | list_vt_cons _ => let prval () = fold@ (xs) val nerr = loop (out, xs, nerr, ~1l, ~1l) val () = if nerr > 0 then { val () = fprint_string (out, "There are possibly some additional errors.") val () = fprint_newline (out) } // end of [if] in 1 (* containing errors *) end // end of [list_vt_cons] | ~list_vt_nil () => 0 (* free of errors *) // end // end of [fprint_the_parerrlst] (* ****** ****** *) (* end of [pats_parsing_error.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3_mapgen.dats0000644000175000017500000000753713431250607023167 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: December, 2014 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./pats_jsonize.sats" (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) staload "./pats_constraint3.sats" (* ****** ****** *) local // extern fun s2cst_app : synent_app (s2cst) and s2var_app : synent_app (s2var) and s2Var_app : synent_app (s2Var) and d2con_app : synent_app (d2con) // #include "./pats_staexp2_appenv.hats" #include "./pats_constraint3_appenv.hats" // datavtype myenv = | MYENV of (s2cstset_vt, s2varset_vt, s2Varset_vt) // in // implement s2cst_app (s2c, env) = let // val env2 = $UN.castvwtp1{myenv}(env) val+MYENV (!p_s2cs, _, _) = env2 // val ismem = s2cstset_vt_ismem (!p_s2cs, s2c) // val () = ( if (ismem) then ((*void*)) else let // val () = !p_s2cs := s2cstset_vt_add(!p_s2cs, s2c) // in s2expopt_app (s2cst_get_def(s2c), env) end // end of [else] ) (* end of [val] *) // prval ((*void*)) = fold@ (env2) prval ((*void*)) = $UN.castvwtp0{void}(env2) // in // nothing end // end of [s2cst_app] implement s2var_app (s2v, env) = let // val env2 = $UN.castvwtp1{myenv}(env) val+MYENV (_, !p_s2vs, _) = env2 val ((*void*)) = !p_s2vs := s2varset_vt_add(!p_s2vs, s2v) prval ((*void*)) = fold@ (env2) prval ((*void*)) = $UN.castvwtp0{void}(env2) // in // nothing end // end of [s2var_app] implement s2Var_app (s2V, env) = let // val env2 = $UN.castvwtp1{myenv}(env) val+MYENV (_, _, !p_s2Vs) = env2 // val ismem = s2Varset_vt_ismem (!p_s2Vs, s2V) // val () = if (ismem) then ((*void*)) else let // val () = !p_s2Vs := s2Varset_vt_add(!p_s2Vs, s2V) // val opt = s2Var_get_link (s2V) val void = s2expopt_app (opt, env) // val s2ze = s2Var_get_szexp (s2V) val ((*void*)) = s2zexp_app (s2ze, env) // in // nothing end // end of [else] // prval ((*void*)) = fold@ (env2) prval ((*void*)) = $UN.castvwtp0{void}(env2) // in // nothing end // end of [s2Var_app] implement d2con_app (s2v, env) = () (* ****** ****** *) implement c3nstr_mapgen_scst_svar (c3t) = let // val s2cs = s2cstset_vt_nil () val s2vs = s2varset_vt_nil () val s2Vs = s2Varset_vt_nil () // val appenv = $UN.castvwtp0{appenv}(MYENV(s2cs, s2vs, s2Vs)) // val ((*void*)) = c3nstr_app (c3t, appenv) // val+~MYENV(s2cs, s2vs, s2Vs) = $UN.castvwtp0{myenv}(appenv) // val ((*void*)) = s2Varset_vt_free (s2Vs) // in (s2cs, s2vs) end // end of [c3nstr_mapgen_scst_svar] end // end of [local] (* ****** ****** *) (* end of [pats_constraint3_mapgen.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_print.dats0000644000175000017500000004635613431250607022175 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload INTINF = "./pats_intinf.sats" macdef fprint_intinf = $INTINF.fprint_intinf // (* ****** ****** *) // staload STMP = "./pats_stamp.sats" macdef fprint_stamp = $STMP.fprint_stamp // staload SYM = "./pats_symbol.sats" macdef fprint_symbol = $SYM.fprint_symbol // (* ****** ****** *) // staload SYN = "./pats_syntax.sats" // (* ****** ****** *) staload EFF = "./pats_effect.sats" (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) implement fprint_s2rtdat (out, x) = let val sym = s2rtdat_get_sym (x) in fprint_symbol (out, sym) end // end of [fprint_s2rtdat] (* ****** ****** *) implement fprint_s2rtbas (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ x of | S2RTBASpre (sym) => { val () = prstr "S2RTBASpre(" val () = fprint_symbol (out, sym) val () = prstr ")" } // end of [S2RTBASpre] | S2RTBASimp (knd, sym) => { val () = prstr "S2RTBASimp(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_symbol (out, sym) val pol = test_polkind (knd) val () = if pol > 0 then prstr "+" val () = if pol < 0 then prstr "-" val () = prstr ")" } // end of [S2RTBASimp] | S2RTBASdef (s2td) => { val () = prstr "S2RTBASdef(" val () = fprint_s2rtdat (out, s2td) val () = prstr ")" } // end of [S2RTBASdef] // end // end of [fprint_s2rtbas] (* ****** ****** *) // implement print_s2rt (x) = fprint_s2rt (stdout_ref, x) implement prerr_s2rt (x) = fprint_s2rt (stderr_ref, x) // implement fprint_s2rt (out, x) = let // val x = s2rt_delink (x) macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x of | S2RTbas (s2tb) => { val () = prstr "S2RTbas(" val () = fprint_s2rtbas (out, s2tb) val () = prstr ")" } | S2RTfun (s2ts, s2t) => { val () = prstr "S2RTfun(" val () = fprint_s2rtlst (out, s2ts) val () = prstr "; " val () = fprint_s2rt (out, s2t) val () = prstr ")" } | S2RTtup (s2ts) => { val () = prstr "S2RTtup(" val () = fprint_s2rtlst (out, s2ts) val () = prstr ")" } | S2RTVar _ => { val () = prstr "S2RTVar(" val () = fprint_string (out, "...") val () = prstr ")" } // | S2RTerr () => prstr "S2RTerr()" // end // end of [fprint_s2rt] // (* ****** ****** *) // implement print_s2rtlst (xs) = fprint_s2rtlst (stdout_ref, xs) implement prerr_s2rtlst (xs) = fprint_s2rtlst (stderr_ref, xs) // implement fprint_s2rtlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s2rt) // end of [fprint_s2rtlst] // (* ****** ****** *) implement print_s2itm (xs) = fprint_s2itm (stdout_ref, xs) implement prerr_s2itm (xs) = fprint_s2itm (stderr_ref, xs) implement fprint_s2itm (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ x of | S2ITMvar (s2v) => { val () = prstr "S2ITMvar(" val () = fprint_s2var (out, s2v) val () = prstr ")" } | S2ITMcst (s2cs) => { val () = prstr "S2ITMcst(" val () = fprint_s2cstlst (out, s2cs) val () = prstr ")" } | S2ITMe1xp (e1xp) => { val () = prstr "S2ITMe1xp(" val () = fprint_e1xp (out, e1xp) val () = prstr ")" } | S2ITMdatconptr (d2c) => { val () = prstr "S2ITMdatconptr(" val () = fprint_d2con (out, d2c) val () = prstr ")" } | S2ITMdatcontyp (d2c) => { val () = prstr "S2ITMdatcontyp(" val () = fprint_d2con (out, d2c) val () = prstr ")" } | S2ITMfilenv (fenv) => { val () = prstr "S2ITMfilenv(" val () = $FIL.fprint_filename_full (out, filenv_get_name fenv) val () = prstr ")" } (* end of [S2ITMfilenv] *) // end // end of [fprint_s2itm] (* ****** ****** *) // implement print_tyreckind (knd) = fprint_tyreckind (stdout_ref, knd) implement prerr_tyreckind (knd) = fprint_tyreckind (stderr_ref, knd) // implement fprint_tyreckind (out, knd) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ knd of | TYRECKINDbox () => fprint_string (out, "box") | TYRECKINDbox_lin () => fprint_string (out, "boxlin") | TYRECKINDflt0 () => fprint_string (out, "flt0") | TYRECKINDflt1 (stmp) => ( prstr "flt1("; fprint_stamp (out, stmp); prstr ")" ) // end of [TYRECKINDflt1] | TYRECKINDflt_ext (name) => fprintf (out, "fltext(%s)", @(name)) // end // end of [fprint_tyreckind] // (* ****** ****** *) // implement print_s2hnf (x) = print_s2exp (s2hnf2exp x) implement prerr_s2hnf (x) = prerr_s2exp (s2hnf2exp x) // implement fprint_s2hnf (out, x) = fprint_s2exp (out, s2hnf2exp x) // end of [fprint_s2hnf] // (* ****** ****** *) implement print_s2exp (x) = fprint_s2exp (stdout_ref, x) implement prerr_s2exp (x) = fprint_s2exp (stderr_ref, x) implement fprint_s2exp (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ x.s2exp_node of // | S2Eint (x) => { val () = prstr "S2Eint(" val () = fprint_int (out, x) val () = prstr ")" } | S2Eintinf (x) => { val () = prstr "S2Eintinf(" val () = fprint_intinf (out, x) val () = prstr ")" } // | S2Efloat (rep) => { val () = prstr "S2Efloat(" val () = fprint_string (out, rep) val () = prstr ")" } | S2Estring (str) => { val () = prstr "S2Estring(" val () = fprint_string (out, str) val () = prstr ")" } // | S2Ecst (s2c) => { val () = prstr "S2Ecst(" val () = fprint_s2cst (out, s2c) val () = prstr ")" } (* end of [S2Ecst] *) // | S2Eextype (name, s2ess) => { val () = prstr "S2Eextype(" val () = fprint_string (out, name) val () = ( case+ s2ess of | list_nil () => () | list_cons _ => let val () = prstr ("; ") in fprint_s2explstlst (out, s2ess) end // end of [list_cons] ) : void // end of [val] val () = prstr ")" } (* end of [S2Eextype] *) | S2Eextkind (name, s2ess) => { val () = prstr "S2Eextkind(" val () = fprint_string (out, name) val () = ( case+ s2ess of | list_nil () => () | list_cons _ => let val () = prstr ("; ") in fprint_s2explstlst (out, s2ess) end // end of [list_cons] ) : void // end of [val] val () = prstr ")" } (* end of [S2Eextype] *) // | S2Evar (x) => { val () = prstr "S2Evar(" val () = fprint_s2var (out, x) val ((*closing*)) = prstr ")" } (* end of [S2Evar] *) | S2EVar (X) => { val () = prstr "S2EVar(" val () = fprint_s2Var (out, X) val ((*closing*)) = prstr ")" } (* end of [S2EVar] *) // | S2Ehole (s2h) => { val () = prstr "S2Ehole(" val () = fprint_s2hole (out, s2h) val ((*closing*)) = prstr ")" } (* end of [S2Ehole] *) // | S2Edatcontyp (d2c, arg) => { val () = prstr "S2Edatcontyp(" val () = fprint_d2con (out, d2c) val () = prstr "; " val () = fprint_s2explst (out, arg) val ((*closing*)) = prstr ")" } // end of [S2Edatcontyp] | S2Edatconptr (d2c, rt, arg) => { val () = prstr "S2Edatconptr(" val () = fprint_d2con (out, d2c) val () = prstr "; " val () = fprint_s2exp (out, rt) val () = prstr "; " val () = fprint_s2explst (out, arg) val ((*closing*)) = prstr ")" } // end of [S2Edatconptr] // | S2Eat (s2e1, s2e2) => { val () = prstr "S2Eat(" val () = fprint_s2exp (out, s2e1) val () = prstr ", " val () = fprint_s2exp (out, s2e2) val () = prstr ")" } (* end of [S2Eat] *) | S2Esizeof (s2e) => { val () = prstr "S2Esizeof(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } // end of [S2Esizeof] // | S2Eeff (s2fe) => { val () = prstr "S2Eeff(" val () = fprint_s2eff (out, s2fe) val () = prstr ")" } (* end of [S2Eeff] *) | S2Eeqeq (s2e1, s2e2) => { val () = prstr "S2Eeqeq(" val () = fprint_s2exp (out, s2e1) val () = prstr "; " val () = fprint_s2exp (out, s2e2) val () = prstr ")" } (* end of [S2Eeqeq] *) // | S2Eproj ( s2ae, s2te, s2ls ) => { val () = prstr "S2Eproj(" val () = fprint_s2exp (out, s2ae) val () = prstr "; " val () = fprint_s2exp (out, s2te) val () = prstr "; " val () = fprint_s2lablst (out, s2ls) val () = prstr ")" } // end of [S2Eproj] // | S2Eapp ( s2e_fun, s2es_arg ) => { val () = prstr "S2Eapp(" val () = fprint_s2exp (out, s2e_fun) val () = prstr "; " val () = fprint_s2explst (out, s2es_arg) val () = prstr ")" } // end of [S2Eapp] // | S2Elam ( s2vs_arg, s2e_body ) => { val () = prstr "S2Elam(" val () = fprint_s2varlst (out, s2vs_arg) val () = prstr "; " val () = fprint_s2exp (out, s2e_body) val () = prstr ")" } // end of [S2Elam] // | S2Efun ( fc, lin, s2fe, npf, s2es_arg, s2e_res ) => { val () = prstr "S2Efun(" val () = fprint_funclo (out, fc) val () = prstr "; " val () = fprintf (out, "lin=%i", @(lin)) val () = prstr "; " val () = prstr "eff=" val () = fprint_s2eff (out, s2fe) val () = prstr "; " val () = fprintf (out, "npf=%i", @(npf)) val () = prstr "; " val () = fprint_s2explst (out, s2es_arg) val () = prstr "; " val () = fprint_s2exp (out, s2e_res) val () = prstr ")" } (* end of [S2Efun] *) // | S2Emetfun ( opt, s2es_met, s2e_body ) => { val () = prstr "S2Emetfun(" val () = fprint_s2explst (out, s2es_met) val () = prstr "; " val () = ( case+ opt of | Some stamp => $STMP.fprint_stamp (out, stamp) | None () => () ) // end of [val] val () = prstr "; " val () = fprint_s2exp (out, s2e_body) val () = prstr ")" } (* end of [S2Emetfun] *) // | S2Emetdec (s2es1, s2es2) => { val () = prstr "S2Emetdec((" val () = fprint_s2explst (out, s2es1) val () = prstr ") < (" val () = fprint_s2explst (out, s2es2) val () = prstr "))" } (* end of [S2Emetdec] *) // | S2Etop (knd, s2e) => { val () = prstr "S2Etop(" val () = fprintf (out, "knd=%i", @(knd)) val () = prstr "; " val () = fprint_s2exp (out, s2e) val () = prstr ")" } // end of [S2Etop] | S2Ewithout (s2e) => { val () = prstr "S2Ewithout(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } // | S2Etyarr ( s2e_elt, s2es_dim ) => { val () = prstr "S2Etyarr(" val () = fprint_s2exp (out, s2e_elt) val () = prstr "; " val () = fprint_s2explst (out, s2es_dim) val () = prstr ")" } // end of [S2Etyarr] | S2Etyrec ( knd, npf, ls2es ) => { val () = prstr "S2Etyrec(" val () = fprint_tyreckind (out, knd) val () = prstr "; " val () = fprintf (out, "npf=%i", @(npf)) val () = prstr "; " val () = fprint_labs2explst (out, ls2es) val () = prstr ")" } // end of [S2Etyrec] // | S2Einvar (s2e) => { val () = prstr "S2Einvar(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } // end of [S2Einvar] // | S2Erefarg (knd, s2e) => { // knd=0/1:val/ref val () = prstr "S2Erefarg(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_s2exp (out, s2e) val () = prstr ")" } (* end of [S2Erefarg] *) // | S2Evararg (s2e) => { val () = prstr "S2Evararg(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } // end of [S2Evararg] // | S2Eexi ( s2vs, s2ps, s2e ) => { val () = prstr "S2Eexi(" val () = fprint_s2varlst (out, s2vs) val () = prstr "; " val () = fprint_s2explst (out, s2ps) val () = prstr "; " val () = fprint_s2exp (out, s2e) val () = prstr ")" } (* end of [S2Eexi] *) | S2Euni ( s2vs, s2ps, s2e ) => { val () = prstr "S2Euni(" val () = fprint_s2varlst (out, s2vs) val () = prstr "; " val () = fprint_s2explst (out, s2ps) val () = prstr "; " val () = fprint_s2exp (out, s2e) val ((*closing*)) = prstr ")" } (* end of [S2Euni] *) // | S2Ewthtype (s2e, ws2es) => { val () = prstr "S2Ewth(" val () = fprint_s2exp (out, s2e) val () = prstr "; " val () = fprint_wths2explst (out, ws2es) val ((*closing*)) = prstr ")" } (* end of [S2Ewthtype] *) // | S2Eerrexp((*void*)) => prstr "S2Eerrexp()" // (* | _ => prstr "S2E...(...)" *) // end // end of [fprint_s2exp] (* ****** ****** *) implement print_s2explst (xs) = fprint_s2explst (stdout_ref, xs) implement prerr_s2explst (xs) = fprint_s2explst (stderr_ref, xs) implement fprint_s2explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s2exp) // end of [fprint_s2explst] (* ****** ****** *) implement fprint_s2expopt (out, opt) = let macdef prstr (s) = fprint_string (out, ,(s)) in case+ opt of | Some (s2e) => ( prstr "Some("; fprint_s2exp (out, s2e); prstr ")" ) // end of [Some] | None () => prstr "None()" end // end of [fprint_s2expopt] implement print_s2expopt (opt) = fprint_s2expopt (stdout_ref, opt) implement prerr_s2expopt (opt) = fprint_s2expopt (stderr_ref, opt) (* ****** ****** *) implement fprint_s2explstlst (out, xss) = $UT.fprintlst (out, xss, "; ", fprint_s2explst) // end of [fprint_s2explstlst] (* ****** ****** *) implement fprint_s2explstopt (out, opt) = let macdef prstr (s) = fprint_string (out, ,(s)) in case+ opt of | Some (s2es) => ( prstr "Some("; fprint_s2explst (out, s2es); prstr ")" ) // end of [Some] | None () => () end // end of [fprint_s2explstopt] (* ****** ****** *) extern fun fprint_labs2exp : fprint_type (labs2exp) implement fprint_labs2exp (out, x) = { val SLABELED (l, name, s2e) = x val () = $LAB.fprint_label (out, l) val () = fprint_string (out, "=") val () = fprint_s2exp (out, s2e) } // end of [fprint_labs2exp] implement fprint_labs2explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_labs2exp) // end of [fprint_labs2explst] (* ****** ****** *) implement fprint_wths2explst (out, ws2es) = let // fun loop ( out: FILEref, xs: wths2explst, i: int ) : void = let in // case+ xs of | WTHS2EXPLSTnil () => () | WTHS2EXPLSTcons_invar (k, x, xs) => let val () = if i > 0 then fprint_string (out, ", ") val () = fprint_string (out, "invar(") val () = fprint_int (out, k) val () = fprint_string (out, "; ") val () = fprint_s2exp (out, x) val () = fprint_string (out, ")") in loop (out, xs, i + 1) end // end of [WTHS2EXPLSTcons_invar] | WTHS2EXPLSTcons_trans (k, x, xs) => let val () = if i > 0 then fprint_string (out, ", ") val () = fprint_string (out, "trans(") val () = fprint_int (out, k) val () = fprint_string (out, "; ") val () = fprint_s2exp (out, x) val () = fprint_string (out, ")") in loop (out, xs, i + 1) end // end of [WTHS2EXPLSTcons_trans] | WTHS2EXPLSTcons_none (xs) => let val () = if i > 0 then fprint_string (out, ", ") val () = fprintf (out, "none()", @()) in loop (out, xs, i + 1) end // end of [WTHS2EXPLSTcons_none] // end // end of [loop] // in loop (out, ws2es, 0) end // end of [fprint_wths2explst] (* ****** ****** *) implement fprint_s2lab (out, s2l) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ s2l of | S2LABlab (lab) => { val () = prstr "S2LABlab(" val () = $LAB.fprint_label (out, lab) val () = prstr ")" } | S2LABind (ind) => { val () = prstr "S2LABind(" val () = $UT.fprintlst (out, ind, ", ", fprint_s2exp) val () = prstr ")" } // end // end of [fprint_s2lab] implement print_s2lab (x) = fprint_s2lab (stdout_ref, x) implement prerr_s2lab (x) = fprint_s2lab (stderr_ref, x) implement fprint_s2lablst (out, xs) = $UT.fprintlst (out, xs, " ,", fprint_s2lab) // end of [fprint_s2lablst] (* ****** ****** *) implement fprint_s2eff (out, s2fe) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ s2fe of | S2EFFset (efs) => { val () = prstr "S2EFFset(" val () = $EFF.fprint_effset (out, efs) val () = prstr ")" } // end of [S2EFFset] | S2EFFexp (s2e) => { val () = prstr "S2EFFexp(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } // end of [S2EFFexp] | S2EFFadd (s2fe1, s2fe2) => { val () = prstr "S2EFFadd(" val () = fprint_s2eff (out, s2fe1) val () = prstr ", " val () = fprint_s2eff (out, s2fe2) val () = prstr ")" } // end of [S2EFFadd] // end // end of [s2eff] implement print_s2eff (x) = fprint_s2eff (stdout_ref, x) implement prerr_s2eff (x) = fprint_s2eff (stderr_ref, x) (* ****** ****** *) implement fprint_s2qua (out, s2q) = { val () = fprint_s2varlst (out, s2q.s2qua_svs) val () = fprint_string (out, "; ") val () = fprint_s2explst (out, s2q.s2qua_sps) } // end of [fprint_s2qua] implement fprint_s2qualst (out, s2qs) = $UT.fprintlst (out, s2qs, "; ", fprint_s2qua) // end of [fprint_s2qualst] implement print_s2qualst (xs) = fprint_s2qualst (stdout_ref, xs) implement prerr_s2qualst (xs) = fprint_s2qualst (stderr_ref, xs) (* ****** ****** *) implement fprint_s2rtext (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ x of | S2TEsrt (s2t) => { val () = prstr "S2TEsrt(" val () = fprint_s2rt (out, s2t) val () = prstr ")" } | S2TEsub _ => { val () = prstr "S2TEsub(" val () = fprint_string (out, "...") val () = prstr ")" } | S2TEerr () => prstr "S2TEerr()" // end // end of [fprint_s2rtext] (* ****** ****** *) implement fprint_s2exparg (out, s2a) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ s2a.s2exparg_node of | S2EXPARGone () => prstr "S2EXPARGone()" | S2EXPARGall () => prstr "S2EXPARGall()" | S2EXPARGseq (s2es) => { val () = prstr "S2EXPARGseq(" val () = fprint_s2explst (out, s2es) val () = prstr ")" } // end of [S2EXPARGseq] // end // end of [fprint_s2exparg] implement fprint_s2exparglst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s2exparg) // end of [fprint_s2exparglst] (* ****** ****** *) implement fprint_sp2at (out, sp2t) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ sp2t.sp2at_node of | SP2Tcon (s2c, s2vs) => { val () = prstr "SP2Tcon(" val () = fprint_s2cst (out, s2c) val () = prstr "; " val () = fprint_s2varlst (out, s2vs) val () = prstr ")" } // end of [SP2Tcon] | SP2Terr () => prstr "SP2Terr()" // end // end of [fprint_sp2at] (* ****** ****** *) (* end of [pats_staexp2_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp3.dats0000644000175000017500000006427013431250607020760 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" // staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" // (* ****** ****** *) implement p3at_make_node (loc, s2f, node) = '{ p3at_loc= loc , p3at_node= node , p3at_type= s2f , p3at_dvaropt= None () , p3at_type_left= None () } // end of [p3at_make_node] implement p3at_any (loc, s2f, d2v) = p3at_make_node(loc, s2f, P3Tany(d2v)) // end of [p3at_any] implement p3at_var (loc, s2f, d2v) = p3at_make_node(loc, s2f, P3Tvar(d2v)) // end of [p3at_var] implement p3at_con (loc, s2f, pck, d2c, npf, p3ts) = ( p3at_make_node (loc, s2f, P3Tcon(pck, d2c, npf, p3ts)) ) // end of [p3at_con] implement p3at_int (loc, s2f, i) = p3at_make_node(loc, s2f, P3Tint(i)) // end of [p3at_int] implement p3at_intrep (loc, s2f, rep) = p3at_make_node(loc, s2f, P3Tintrep(rep)) // end of [p3at_intrep] implement p3at_bool (loc, s2f, b) = p3at_make_node(loc, s2f, P3Tbool(b)) // end of [p3at_bool] implement p3at_char (loc, s2f, c) = p3at_make_node(loc, s2f, P3Tchar(c)) // end of [p3at_char] implement p3at_float (loc, s2f, rep) = p3at_make_node(loc, s2f, P3Tfloat (rep)) // end of [p3at_float] implement p3at_string (loc, s2f, str) = p3at_make_node(loc, s2f, P3Tstring (str)) // end of [p3at_string] implement p3at_i0nt (loc, s2f, x) = p3at_make_node(loc, s2f, P3Ti0nt(x)) // end of [p3at_i0nt] implement p3at_f0loat (loc, s2f, x) = p3at_make_node(loc, s2f, P3Tf0loat(x)) // end of [p3at_f0loat] implement p3at_empty (loc, s2f) = p3at_make_node(loc, s2f, P3Tempty(*void*)) // end of [p3at_empty] (* ****** ****** *) // implement p3at_rec ( loc, s2f, knd, npf, pck, lp3ts ) = ( p3at_make_node(loc, s2f, P3Trec(knd, npf, pck, lp3ts)) ) // implement p3at_lst ( loc, s2f, lin, s2e_elt, p3ts ) = p3at_make_node(loc, s2f, P3Tlst(lin, s2e_elt, p3ts)) // (* ****** ****** *) implement p3at_refas ( loc, s2f, d2v, p3t ) = p3at_make_node (loc, s2f, P3Trefas (d2v, p3t)) implement p3at_exist ( loc, s2f, s2vs, p3t ) = p3at_make_node (loc, s2f, P3Texist (s2vs, p3t)) implement p3at_vbox ( loc, s2f, d2v ) = p3at_make_node (loc, s2f, P3Tvbox (d2v)) implement p3at_ann ( loc, s2f, p3t, ann ) = p3at_make_node (loc, s2f, P3Tann (p3t, ann)) implement p3at_errpat (loc, s2f) = p3at_make_node (loc, s2f, P3Terrpat ()) // end of [p3at_errpat] (* ****** ****** *) implement p3at_get_type (p3t) = p3t.p3at_type implement p3at_get_dvaropt (p3t) = p3t.p3at_dvaropt implement p3at_get_type_left (p3t) = p3t.p3at_type_left (* ****** ****** *) implement p3at_is_prf (p3t) = let val s2e = p3at_get_type(p3t) in s2exp_is_prf(s2e) end // end of [p3at_is_prf] (* ****** ****** *) implement p3at_is_lincon (p3t) = ( case+ p3t.p3at_node of | P3Tcon (pck, _, _, _) => pck = PCKlincon | _ => false ) (* end of [p3at_is_lincon] *) implement p3at_is_unfold (p3t) = ( case+ p3t.p3at_node of | P3Tcon (pck, _, _, _) => pck = PCKunfold | _ => false ) (* end of [p3at_is_unfold] *) (* ****** ****** *) local fun aux_labp3atlst ( lxs: labp3atlst ) : bool = ( case+ lxs of | list_nil ((*void*)) => true | list_cons (lx, lxs) => let val+LABP3AT(l, x) = lx in if p3at_is_full(x) then aux_labp3atlst(lxs) else false // end of [if] end // end of [list_con] ) in (* in-of-local *) implement p3at_is_full (p3t0) = ( // case+ p3t0.p3at_node of // | P3Tany _ => true | P3Tvar _ => true // | P3Tempty _ => true // | P3Trec ( knd, npf, pck, lxs ) => aux_labp3atlst (lxs) // | P3Trefas (_, p3t) => p3at_is_full (p3t) // end of [P3Trefas] | P3Texist (_, p3t) => p3at_is_full (p3t) // end of [P3Texist] // | P3Tann(p3t, _) => p3at_is_full (p3t) // | _ (*rest-of-P3T*) => false // ) (* end of [p3at_is_full] *) end // end of [local] (* ****** ****** *) // implement d3exp_get_type(d3e) = d3e.d3exp_type // (* ****** ****** *) // implement d3explst_get_type (d3es) = let // val s2es = list_map_fun(d3es, d3exp_get_type) // in list_of_list_vt(s2es) end // end of [d3explst_get_type] // (* ****** ****** *) // implement d3explst_get_labtype ( d3es ) = auxlst(d3es, 0) where { // fun auxlst ( d3es: d3explst, i: int ) : labs2explst = ( case+ d3es of | list_nil() => list_nil((*void*)) | list_cons(d3e, d3es) => let val l = $LAB.label_make_int(i) // end of [val] val s2e = d3e.d3exp_type val ls2e = SLABELED(l, None, s2e) in list_cons (ls2e, auxlst(d3es, i+1)) end ) (* end of [aux] *) // } (* end of [d3explst_get_labtype] *) // (* ****** ****** *) // implement d3exp_is_prf (d3e) = let val s2e = d3exp_get_type(d3e) in s2exp_is_prf(s2e) // end of [val] end // end of [d3exp_is_prf] // implement d3exp_isnot_prf (d3e) = (if d3exp_is_prf(d3e) then false else true) // (* ****** ****** *) implement d3exp_cst ( loc, s2f, d2c ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Ecst (d2c) } // end of [d3exp_cst] (* ****** ****** *) implement d3exp_var ( loc, s2f, d2v ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Evar (d2v) } // end of [d3exp_var] (* ****** ****** *) implement d3exp_int (loc, s2f, i) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eint (i) } // end of [d3exp_int] implement d3exp_intrep (loc, s2f, rep) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eintrep (rep) } // end of [d3exp_intrep] (* ****** ****** *) implement d3exp_bool (loc, s2f, b) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Ebool (b) } // end of [d3exp_bool] implement d3exp_char (loc, s2f, c) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Echar (c) } // end of [d3exp_char] implement d3exp_float (loc, s2f, rep) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Efloat (rep) } // end of [d3exp_float] implement d3exp_string (loc, s2f, str) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Estring (str) } // end of [d3exp_string] (* ****** ****** *) implement d3exp_i0nt (loc, s2f, x) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Ei0nt (x) } // end of [d3exp_i0nt] implement d3exp_f0loat (loc, s2f, x) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Ef0loat (x) } // end of [d3exp_f0loat] (* ****** ****** *) implement d3exp_top (loc, s2f) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Etop () } // end of [d3exp_top] implement d3exp_empty (loc, s2f) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eempty () } // end of [d3exp_empty] (* ****** ****** *) implement d3exp_cstsp (loc, s2f, csp) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Ecstsp (csp) } // end of [d3exp_cstsp] (* ****** ****** *) implement d3exp_tyrep (loc, s2f, s2e_rep) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Etyrep (s2e_rep) } // end of [d3exp_tyrep] (* ****** ****** *) implement d3exp_literal (loc, s2f, d3e_lit) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eliteral (d3e_lit) } // end of [d3exp_literal] (* ****** ****** *) implement d3exp_extval (loc, s2f, name) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eextval (name) } // end of [d3exp_extval] implement d3exp_extfcall (loc, s2f, _fun, _arg) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eextfcall (_fun, _arg) } // end of [d3exp_extfcall] implement d3exp_extmcall (loc, s2f, _obj, _mtd, _arg) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eextmcall (_obj, _mtd, _arg) } // end of [d3exp_extmcall] (* ****** ****** *) (* implement d3exp_con ( loc, s2f_res, d2c, npf, d3es_arg ) = '{ d3exp_loc= loc , d3exp_type= s2f_res , d3exp_node= D3Econ (d2c, npf, d3es_arg) } // end of [d3exp_con] *) local fun aux1 ( d3es: d3explst ) : bool = let fn f (d3e: d3exp): bool = case+ d3e.d3exp_node of | D3Etop _ => true | _ => false in list_exists_fun (d3es, f) end // end of [aux1] fun aux2 ( d3es: d3explst ) : s2explst = ( case+ d3es of | list_cons (d3e, d3es) => let val s2e = d3exp_get_type (d3e) val s2e = ( case+ d3e.d3exp_node of | D3Etop () => s2exp_topize_0 (s2e) | _ => s2e ) : s2exp // end of [val] val s2es = aux2 (d3es) in list_cons (s2e, s2es) end // end of [list_cons] | list_nil () => list_nil () ) // end of [aux2] in // in of [local] implement d3exp_con ( loc, s2e, d2c, npf, d3es_arg ) = let var s2e: s2exp = s2e val istop = aux1 (d3es_arg) val () = if istop then let val s2es_arg = aux2 (d3es_arg) in s2e := s2exp_datcontyp (d2c, s2es_arg) end // end of [if] in '{ d3exp_loc= loc , d3exp_type= s2e , d3exp_node= D3Econ (d2c, npf, d3es_arg) } end // end of [d3exp_con] end // end of [local] (* ****** ****** *) implement d3exp_tmpcst ( loc, s2f_res, d2c, t2mas ) = '{ d3exp_loc= loc , d3exp_type= s2f_res , d3exp_node= D3Etmpcst (d2c, t2mas) } // end of [d3exp_tmpcst] implement d3exp_tmpvar ( loc, s2f_res, d2v, t2mas ) = '{ d3exp_loc= loc , d3exp_type= s2f_res , d3exp_node= D3Etmpvar (d2v, t2mas) } // end of [d3exp_tmpvar] (* ****** ****** *) implement d3exp_foldat (loc, d3e) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Efoldat (d3e) } end // end of [d3exp_foldat] implement d3exp_freeat (loc, d3e) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Efreeat (d3e) } end // end of [d3exp_freeat] (* ****** ****** *) implement d3exp_item ( loc, s2f, d2i, t2mas ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eitem (d2i, t2mas) // d2i: d2itm } // end of [d3exp_item] (* ****** ****** *) implement d3exp_let ( loc, d3cs, d3e ) = let val s2f = d3exp_get_type (d3e) in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Elet (d3cs, d3e) } end // end of [d3exp_let] (* ****** ****** *) implement d3exp_app_sta (loc, s2f, d3e) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eapp_sta (d3e) } // end of [d3exp_app_sta] (* ****** ****** *) implement d3exp_app_unista (loc, s2f, d3e) = let val s2f0 = d3exp_get_type (d3e) in // case+ s2f0.s2exp_node of | S2Euni _ => d3exp_app_sta (loc, s2f, d3e) | S2Emetfun _ => d3exp_app_sta (loc, s2f, d3e) | _ => d3e // end // end of [d3exp_app_unista] (* ****** ****** *) implement d3exp_app_dyn ( loc, s2f, _fun, npf, _arg ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eapp_dyn (_fun, npf, _arg) } // end of [d3exp_app_dyn] (* ****** ****** *) implement d3exp_lst ( loc, s2f_lst, lin, s2f_elt, d3es ) = '{ d3exp_loc= loc , d3exp_type= s2f_lst , d3exp_node= D3Elst (lin, s2f_elt, d3es) } // end of [d3exp_lst] implement d3exp_tup ( loc, s2f_tup, knd, npf, d3es ) = '{ d3exp_loc= loc , d3exp_type= s2f_tup , d3exp_node= D3Etup (knd, npf, d3es) } // end of [d3exp_tup] implement d3exp_rec ( loc, s2f_rec, knd, npf, ld3es ) = '{ d3exp_loc= loc , d3exp_type= s2f_rec , d3exp_node= D3Erec (knd, npf, ld3es) } // end of [d3exp_rec] implement d3exp_seq ( loc, s2f, d3es ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eseq (d3es) } // end of [d3exp_seq] (* ****** ****** *) implement d3exp_if ( loc, s2e_if, _cond, _then, _else ) = '{ d3exp_loc= loc , d3exp_type= s2e_if , d3exp_node= D3Eif (_cond, _then, _else) } // end of [d3exp_if] implement d3exp_sif ( loc, s2e_sif, _cond, _then, _else ) = '{ d3exp_loc= loc , d3exp_type= s2e_sif , d3exp_node= D3Esif (_cond, _then, _else) } // end of [d3exp_sif] (* ****** ****** *) implement d3exp_ifcase ( loc, s2e_if, knd, ifcls ) = '{ d3exp_loc= loc , d3exp_type= s2e_if , d3exp_node= D3Eifcase (knd, ifcls) } // end of [d3exp_ifcase] (* ****** ****** *) implement d3exp_case ( loc, s2e_case, casknd, d3es, c3ls ) = let in '{ d3exp_loc= loc , d3exp_type= s2e_case , d3exp_node= D3Ecase (casknd, d3es, c3ls) } end // end of [d3exp_case] implement d3exp_scase ( loc, s2e_scase, s2e_val, sc3ls ) = let in '{ d3exp_loc= loc , d3exp_type= s2e_scase , d3exp_node= D3Escase (s2e_val, sc3ls) } end // end of [d3exp_scase] (* ****** ****** *) implement d3exp_selab ( loc, s2f, d3e, d3ls ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eselab (d3e, d3ls) } // end of [d3exp_selab] (* ****** ****** *) implement d3exp_ptrofvar (loc, s2f, d2v) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eptrofvar (d2v) } // end of [d3exp_ptrofvar] implement d3exp_ptrofsel ( loc, s2f, d3e, s2rt, d3ls ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eptrofsel (d3e, s2rt, d3ls) } // end of [d3exp_ptrofsel] (* ****** ****** *) implement d3exp_viewat (loc, s2at, d3e, d3ls) = '{ d3exp_loc= loc , d3exp_type= s2at , d3exp_node= D3Eviewat (d3e, d3ls) } // end of [d3exp_viewat] implement d3exp_viewat_assgn ( loc, d3e_l, d3ls, d3e_r ) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eviewat_assgn (d3e_l, d3ls, d3e_r) } end // end of [d3exp_viewat_assgn] (* ****** ****** *) implement d3exp_sel_var ( loc, s2f, d2v, s2rt, d3ls ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Esel_var (d2v, s2rt, d3ls) } // end of [d3exp_sel_var] (* ****** ****** *) implement d3exp_sel_ptr (loc, s2f, d3e, s2rt, d3ls) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Esel_ptr (d3e, s2rt, d3ls) } // end of [d3exp_sel_ptr] implement d3exp_sel_ref (loc, s2f, d3e, s2rt, d3ls) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Esel_ref (d3e, s2rt, d3ls) } // end of [d3exp_sel_ref] (* ****** ****** *) implement d3exp_assgn_var ( loc, d2v_l, s2rt, d3ls, d3e_r ) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eassgn_var (d2v_l, s2rt, d3ls, d3e_r) } end // end of [d3exp_assgn_var] implement d3exp_assgn_ptr ( loc, d3e_l, s2rt, d3ls, d3e_r ) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eassgn_ptr (d3e_l, s2rt, d3ls, d3e_r) } end // end of [d3exp_assgn_ptr] implement d3exp_assgn_ref ( loc, d3e_l, s2rt, d3ls, d3e_r ) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eassgn_ref (d3e_l, s2rt, d3ls, d3e_r) } end // end of [d3exp_assgn_ref] (* ****** ****** *) implement d3exp_xchng_var ( loc, d2v_l, s2rt, d3ls, d3e_r ) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Exchng_var (d2v_l, s2rt, d3ls, d3e_r) } end // end of [d3exp_xchng_var] implement d3exp_xchng_ptr ( loc, d3e_l, s2rt, d3ls, d3e_r ) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Exchng_ptr (d3e_l, s2rt, d3ls, d3e_r) } end // end of [d3exp_xchng_ptr] implement d3exp_xchng_ref ( loc, d3e_l, s2rt, d3ls, d3e_r ) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Exchng_ref (d3e_l, s2rt, d3ls, d3e_r) } end // end of [d3exp_xchng_ref] (* ****** ****** *) implement d3exp_refarg ( loc, s2e, refval, freeknd, d3e ) = '{ d3exp_loc= loc , d3exp_type= s2e , d3exp_node= D3Erefarg (refval, freeknd, d3e) } // end of [d3exp_refarg] (* ****** ****** *) implement d3exp_arrpsz ( loc, s2f_arrpsz, s2e, d3es_elt, asz ) = '{ d3exp_loc= loc , d3exp_type= s2f_arrpsz , d3exp_node= D3Earrpsz (s2e, d3es_elt, asz) } // end of [d3exp_arrpsz] implement d3exp_arrinit ( loc, s2e_arr, elt, d3e_asz, d3es_elt ) = '{ d3exp_loc= loc , d3exp_type= s2e_arr , d3exp_node= D3Earrinit (elt, d3e_asz, d3es_elt) } // end of [d3exp_arrinit] (* ****** ****** *) implement d3exp_raise ( loc, s2f, d3e ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eraise (d3e) } // end of [d3exp_raise] (* ****** ****** *) implement d3exp_effmask ( loc, s2fe, d3e ) = let // val s2f = d3exp_get_type (d3e) // in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eeffmask (s2fe, d3e) } end // end of [d3exp_effmask] (* ****** ****** *) implement d3exp_vararg ( loc, s2f, d3es ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Evararg(d3es) } // end of [d3exp_vararg] (* ****** ****** *) implement d3exp_vcopyenv ( loc, s2f, knd, d2v ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Evcopyenv (knd, d2v) } // end of [d3exp_vcopyenv] (* ****** ****** *) implement d3exp_tempenver ( loc, s2f, d2vs ) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Etempenver (d2vs) } // end of [d3exp_tempenver] (* ****** ****** *) implement d3exp_ann_type (loc, d3e, s2f) = '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eann_type (d3e, s2f) } // end of [d3exp_ann_type] (* ****** ****** *) implement d3exp_lam_dyn ( loc, s2f_fun, lin, npf, arg, body ) = '{ d3exp_loc= loc , d3exp_type= s2f_fun , d3exp_node= D3Elam_dyn (lin, npf, arg, body) } // end of [d3exp_lam_dyn] implement d3exp_laminit_dyn ( loc, s2f_fun, lin, npf, arg, body ) = '{ d3exp_loc= loc , d3exp_type= s2f_fun , d3exp_node= D3Elaminit_dyn (lin, npf, arg, body) } // end of [d3exp_laminit_dyn] implement d3exp_lam_sta ( loc, s2f_uni, s2vs, s2ps, body ) = '{ d3exp_loc= loc , d3exp_type= s2f_uni , d3exp_node= D3Elam_sta (s2vs, s2ps, body) } // end of [d3exp_lam_sta] implement d3exp_lam_met ( loc, s2es_met, d3e_body ) = '{ d3exp_loc= loc , d3exp_type= d3e_body.d3exp_type , d3exp_node= D3Elam_met (s2es_met, d3e_body) } // end of [d3exp_lam_met] (* ****** ****** *) implement d3exp_fix ( loc, s2e_def, knd, f_d2v, d3e_def ) = '{ d3exp_loc= loc , d3exp_type= s2e_def , d3exp_node= D3Efix (knd, f_d2v, d3e_def) } // end of [d3exp_fix] (* ****** ****** *) implement d3exp_delay ( loc, s2e, _eval ) = '{ d3exp_loc= loc , d3exp_type= s2e , d3exp_node= D3Edelay (_eval) } // end of [d3exp_delay] implement d3exp_ldelay ( loc, s2e, _eval, _free ) = '{ d3exp_loc= loc , d3exp_type= s2e , d3exp_node= D3Eldelay (_eval, _free) } // end of [d3exp_ldelay] (* ****** ****** *) implement d3exp_lazyeval ( loc, s2e_res, lin, delayed ) = '{ d3exp_loc= loc , d3exp_type= s2e_res , d3exp_node= D3Elazyeval (lin, delayed) } // end of [d3exp_lazyeval] (* ****** ****** *) implement d3exp_loop ( loc, init, test, post, body ) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eloop (init, test, post, body) } end // end of [d3exp_loop] implement d3exp_loopexn (loc, knd) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eloopexn (knd) } end // end of [d3exp_loopexn] (* ****** ****** *) implement d3exp_trywith ( loc, d3e_try, c3ls_wth ) = '{ d3exp_loc= loc , d3exp_type= d3e_try.d3exp_type , d3exp_node= D3Etrywith(d3e_try, c3ls_wth) } // end of [d3exp_trywith] (* ****** ****** *) implement d3exp_solverify (loc, s2e_prop) = let in '{ d3exp_loc= loc , d3exp_type= s2e_prop , d3exp_node= D3Esolverify(s2e_prop) } end // end of [d3exp_solverify] (* ****** ****** *) implement d3exp_errexp (loc) = let // val s2f = s2exp_t0ype_err () // in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eerrexp ((*void*)) } end // end of [d3exp_errexp] implement d3exp_errexp_void (loc) = let val s2f = s2exp_void_t0ype () in '{ d3exp_loc= loc , d3exp_type= s2f , d3exp_node= D3Eerrexp ((*void*)) } end // end of [d3exp_errexp_void] (* ****** ****** *) implement d3lab_lab ( loc, lab, opt ) = '{ d3lab_loc= loc , d3lab_node= D3LABlab (lab) , d3lab_overld= opt , d3lab_overld_app= None(*void*) } (* end of [d3lab_lab] *) implement d3lab_ind (loc, ind) = '{ d3lab_loc= loc , d3lab_node= D3LABind (ind) , d3lab_overld= None(*void*) , d3lab_overld_app= None(*void*) } (* end of [d3lab_ind] *) (* ****** ****** *) implement i3fcl_make ( loc, test, body ) = '{ i3fcl_loc= loc , i3fcl_test= test, i3fcl_body= body } (* end of [i3fcl_make] *) (* ****** ****** *) implement gm3at_make (loc, d3e, op3t) = '{ gm3at_loc= loc, gm3at_exp= d3e, gm3at_pat= op3t } // end of [gm3at_make] implement c3lau_make ( loc, p3ts, gua, seq, neg, d3e ) = '{ c3lau_loc= loc , c3lau_pat= p3ts , c3lau_gua= gua , c3lau_seq= seq, c3lau_neg= neg , c3lau_body= d3e } // end of [c3lau_make] implement sc3lau_make ( loc, sp2t, d3e ) = '{ sc3lau_loc= loc , sc3lau_pat= sp2t , sc3lau_body= d3e } // end of [sc3lau_make] (* ****** ****** *) // // HX: various declarations // (* ****** ****** *) implement i3mpdec_make ( loc, d2c, imparg, tmparg, d3e ) = '{ i3mpdec_loc= loc , i3mpdec_cst= d2c , i3mpdec_imparg= imparg , i3mpdec_tmparg= tmparg , i3mpdec_def= d3e } // end of [i3mpdec_make] (* ****** ****** *) implement f3undec_make (loc, d2v, d3e) = '{ f3undec_loc= loc , f3undec_var= d2v , f3undec_def= d3e } // end of [f3undec_make] (* ****** ****** *) implement v3aldec_make (loc, p3t, def) = '{ v3aldec_loc= loc , v3aldec_pat= p3t , v3aldec_def= def } // end of [v3aldec_make] (* ****** ****** *) implement v3ardec_make ( loc, knd , d2v, d2vw , s2e0, init, d2vopt ) = '{ v3ardec_loc= loc , v3ardec_knd= knd , v3ardec_dvar_var= d2v , v3ardec_dvar_view= d2vw , v3ardec_type= s2e0 , v3ardec_init= init , v3ardec_dvaropt= d2vopt } // end of [v3ardec_make] implement prv3ardec_make ( loc, d2v, s2e, init ) = '{ prv3ardec_loc= loc , prv3ardec_dvar= d2v , prv3ardec_type= s2e , prv3ardec_init= init } // end of [prv3ardec_make] (* ****** ****** *) implement d3ecl_make_node (loc, node) = '{ d3ecl_loc= loc, d3ecl_node= node } // end of [d3ecl_make_node] (* ****** ****** *) implement d3ecl_none (loc) = d3ecl_make_node(loc, D3Cnone()) // end of [d3ecl_none] implement d3ecl_list (loc, xs) = d3ecl_make_node (loc, D3Clist(xs)) // end of [d3ecl_list] (* ****** ****** *) // implement d3ecl_saspdec(loc, d2c) = d3ecl_make_node(loc, D3Csaspdec(d2c)) // end of [d3ecl_saspdec] implement d3ecl_reassume(loc, s2c) = d3ecl_make_node(loc, D3Creassume(s2c)) // end of [d3ecl_reassume] // (* ****** ****** *) implement d3ecl_extype (loc, name, s2e_def) = d3ecl_make_node (loc, D3Cextype (name, s2e_def)) // end of [d3ecl_extype] implement d3ecl_extvar (loc, name, d3e_def) = d3ecl_make_node (loc, D3Cextvar (name, d3e_def)) // end of [d3ecl_extvar] (* ****** ****** *) implement d3ecl_extcode (loc, knd, pos, code) = d3ecl_make_node (loc, D3Cextcode (knd, pos, code)) // end of [d3ecl_extcode] (* ****** ****** *) implement d3ecl_datdecs (loc, knd, s2cs) = d3ecl_make_node (loc, D3Cdatdecs (knd, s2cs)) // end of [d3ecl_datdecs] (* ****** ****** *) implement d3ecl_exndecs (loc, d2cs) = d3ecl_make_node (loc, D3Cexndecs (d2cs)) // end of [d3ecl_exndecs] (* ****** ****** *) implement d3ecl_dcstdecs (loc, knd, dck, d2cs) = d3ecl_make_node (loc, D3Cdcstdecs (knd, dck, d2cs)) // end of [d3ecl_dcstdecs] (* ****** ****** *) implement d3ecl_impdec (loc, knd, impdec) = d3ecl_make_node (loc, D3Cimpdec (knd, impdec)) // end of [d3ecl_impdec] (* ****** ****** *) implement d3ecl_fundecs (loc, funknd, decarg, f3ds) = d3ecl_make_node (loc, D3Cfundecs (funknd, decarg, f3ds)) // end of [d3ecl_fundecs] (* ****** ****** *) implement d3ecl_valdecs (loc, knd, v3ds) = d3ecl_make_node (loc, D3Cvaldecs (knd, v3ds)) // end of [d3ecl_valdecs] implement d3ecl_valdecs_rec (loc, knd, v3ds) = d3ecl_make_node (loc, D3Cvaldecs_rec (knd, v3ds)) // end of [d3ecl_valdecs_rec] (* ****** ****** *) implement d3ecl_vardecs (loc, v3ds) = d3ecl_make_node (loc, D3Cvardecs (v3ds)) // end of [d3ecl_vardecs] implement d3ecl_prvardecs (loc, v3ds) = d3ecl_make_node (loc, D3Cprvardecs (v3ds)) // end of [d3ecl_prvardecs] (* ****** ****** *) implement d3ecl_include (loc, knd, d3cs) = d3ecl_make_node (loc, D3Cinclude (knd, d3cs)) // end of [d3ecl_include] (* ****** ****** *) implement d3ecl_staload ( loc, idopt, cfil, flag, loaded, opt ) = d3ecl_make_node (loc, D3Cstaload (idopt, cfil, flag, loaded, opt)) // endof [d3ecl_staload] implement d3ecl_staloadloc (loc, pfil, nspace, fenv) = d3ecl_make_node (loc, D3Cstaloadloc (pfil, nspace, fenv)) // end of [d3ecl_staloadloc] (* ****** ****** *) implement d3ecl_dynload (loc, fil) = d3ecl_make_node (loc, D3Cdynload (fil)) // end of [d3ecl_dynload] (* ****** ****** *) implement d3ecl_local (loc, head, body) = d3ecl_make_node (loc, D3Clocal (head, body)) // endof [d3ecl_local] (* ****** ****** *) extern typedef "p3at_t" = p3at extern typedef "d3exp_t" = d3exp extern typedef "d3lab_t" = d3lab (* ****** ****** *) %{$ ats_void_type patsopt_p3at_set_type ( ats_ptr_type p3t, ats_ptr_type s2f ) { ((p3at_t)p3t)->atslab_p3at_type = s2f ; return ; } // end of [patsopt_p3at_set_type] ats_void_type patsopt_p3at_set_dvaropt ( ats_ptr_type p3t, ats_ptr_type opt ) { ((p3at_t)p3t)->atslab_p3at_dvaropt = opt ; return ; } // end of [patsopt_p3at_set_dvaropt] ats_void_type patsopt_p3at_set_type_left ( ats_ptr_type p3t, ats_ptr_type opt ) { ((p3at_t)p3t)->atslab_p3at_type_left = opt ; return ; } // end of [patsopt_p3at_set_type_left] ats_void_type patsopt_d3exp_set_type ( ats_ptr_type d3e, ats_ptr_type s2f ) { ((d3exp_t)d3e)->atslab_d3exp_type = s2f ; return ; } // end of [patsopt_d3exp_set_type] ats_void_type patsopt_d3lab_set_overld_app ( ats_ptr_type d3l, ats_ptr_type opt ) { ((d3lab_t)d3l)->atslab_d3lab_overld_app = opt ; return ; } // end of [patsopt_d3lab_set_overld_app] %} // end of [%{$] (* ****** ****** *) (* end of [pats_dynexp3.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing.sats0000644000175000017500000003752413431250607021052 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload LEX = "./pats_lexing.sats" typedef tnode = $LEX.tnode (* ****** ****** *) staload "./pats_tokbuf.sats" staload "./pats_syntax.sats" (* ****** ****** *) datatype parerr_node = // | PE_AS // | PE_AND // | PE_END // | PE_IN | PE_OF // | PE_IF | PE_SIF | PE_CASE | PE_SCASE // | PE_IFCASE // | PE_THEN | PE_ELSE // | PE_REC // | PE_WHEN // | PE_WITH // | PE_FOR | PE_WHILE | PE_TRY // | PE_BAR | PE_COLON | PE_COMMA | PE_SEMICOLON // | PE_LPAREN | PE_RPAREN | PE_LBRACKET | PE_RBRACKET | PE_LBRACE | PE_RBRACE // | PE_BANG | PE_DOT | PE_EQ | PE_EQGT | PE_GT | PE_GTDOT | PE_GTLT // | PE_SRPTHEN | PE_SRPENDIF // | PE_EOF // | PE_i0nt | PE_c0har | PE_f0loat | PE_s0tring // | PE_i0de | PE_i0dext | PE_i0de_dlr // | PE_s0rtid | PE_si0de // static identifier | PE_di0de // dynamic identifier | PE_pi0de // pattern identifier | PE_stai0de // (* | PE_s0rtq // not reported *) | PE_s0taq | PE_d0ynq // | PE_dqi0de | PE_arrqi0de | PE_tmpqi0de | PE_impqi0de // | PE_l0ab | PE_p0rec // | PE_funarrow | PE_colonwith // | PE_e0xp | PE_atme0xp // | PE_s0rt | PE_atms0rt | PE_s0marg | PE_a0msrt // | PE_s0exp | PE_atms0exp | PE_labs0exp | PE_s0rtext | PE_s0qua | PE_q0marg // | PE_p0at | PE_atmp0at | PE_labp0at | PE_p0at_as // | PE_i0fcl // for ifcase-clauses // | PE_gm0at | PE_guap0at | PE_c0lau // for case-clauses | PE_sc0lau // for scase-clauses // | PE_d0exp | PE_d0exp0 | PE_d0exp1 | PE_atmd0exp | PE_labd0exp // | PE_d0ecl | PE_d0ecl_sta | PE_d0ecl_dyn | PE_guad0ecl | PE_staloadarg // | PE_fname_unclosed of () // | PE_DISCARD of () (* | PE_FILENONE of string *) // end of [parerr_node] typedef parerr = '{ parerr_loc= location , parerr_node= parerr_node } // end of [parerr] fun parerr_make ( loc: location, node: parerr_node ) : parerr // end of [parerr_make] fun the_parerrlst_clear (): void (* ****** ****** *) // fun the_parerrlst_add(x: parerr): void // fun the_parerrlst_add_ifnbt ( bt: int, loc: location, node: parerr_node ) : void // end-of-function // fun the_parerrlst_add_ifunclosed (loc: location, content: string): void // (* ****** ****** *) // fun fprint_parerr(out: FILEref, x: parerr): void // fun fprint_the_parerrlst(out: FILEref): int(*err*) // 0/1 // (* ****** ****** *) // fun tokbuf_set_ntok_null{a:type}(buf: &tokbuf, n0: uint): (a) // (* ****** ****** *) typedef parser (a:type) = (&tokbuf(*>> _*), int(*bt*), &int(*err*)) -> a // end of [parser] typedef parser_tok (a:type) = (&tokbuf(*>> _*), int(*bt*), &int(*err*), token) -> a // end of [parser_tok] (* ****** ****** *) fun p_AND : parser (token) fun is_AND (x: tnode): bool fun p_AND_test (buf: &tokbuf): bool fun p_END : parser (token) fun is_END (x: tnode): bool fun p_THEN : parser (token) fun is_THEN (x: tnode): bool fun p_ELSE : parser (token) fun is_ELSE (x: tnode): bool fun p_AS : parser (token) fun is_AS (x: tnode): bool fun p_OF : parser (token) fun is_OF (x: tnode): bool fun p_IN : parser (token) fun is_IN (x: tnode): bool fun p_IF : parser (token) fun is_IF (x: tnode): bool fun p_SIF : parser (token) fun is_SIF (x: tnode): bool fun p_CASE : parser (token) fun is_CASE (x: tnode): bool fun p_SCASE : parser (token) fun is_SCASE (x: tnode): bool fun p_IFCASE : parser (token) fun is_IFCASE (x: tnode): bool fun p_REC : parser (token) fun is_REC (x: tnode): bool fun p_REC_test (buf: &tokbuf): bool fun p_WITH : parser (token) fun is_WITH (x: tnode): bool fun p_WHEN : parser (token) fun is_WHEN (x: tnode): bool fun p_FORSTAR : parser (token) fun is_FORSTAR (x: tnode): bool fun p_WHILESTAR : parser (token) fun is_WHILESTAR (x: tnode): bool fun p_TRY : parser (token) fun is_TRY (x: tnode): bool (* ****** ****** *) fun p_BAR : parser (token) fun is_BAR (x: tnode): bool fun p_BAR_test (buf: &tokbuf): bool fun p_COLON : parser (token) fun is_COLON (x: tnode): bool fun p_COLON_test (buf: &tokbuf): bool fun p_COMMA : parser (token) fun is_COMMA (x: tnode): bool fun p_COMMA_test (buf: &tokbuf): bool fun p_SEMICOLON : parser (token) fun is_SEMICOLON (x: tnode): bool fun p_SEMICOLON_test (buf: &tokbuf): bool fun is_BARSEMI (x: tnode): bool fun p_BARSEMI_test (buf: &tokbuf): bool (* ****** ****** *) fun p_LPAREN : parser (token) fun is_LPAREN (x: tnode): bool fun p_RPAREN : parser (token) fun is_RPAREN (x: tnode): bool fun p_LBRACKET : parser (token) fun is_LBRACKET (x: tnode): bool fun p_RBRACKET : parser (token) fun is_RBRACKET (x: tnode): bool fun p_LBRACE : parser (token) fun is_LBRACE (x: tnode): bool fun p_RBRACE : parser (token) fun is_RBRACE (x: tnode): bool (* ****** ****** *) fun p_BANG : parser (token) fun is_BANG (x: tnode): bool fun p_DOT : parser (token) fun is_DOT (x: tnode): bool fun p_EQ : parser (token) fun is_EQ (x: tnode): bool fun p_EQGT : parser (token) fun is_EQGT (x: tnode): bool fun p_GT : parser (token) fun is_GT (x: tnode): bool fun p_GTDOT : parser (token) fun is_GTDOT (x: tnode): bool fun p_GTLT : parser (token) fun is_GTLT (x: tnode): bool fun p_GTLT_test (buf: &tokbuf): bool (* ****** ****** *) fun p_SRPTHEN : parser (token) fun is_SRPTHEN (x: tnode): bool fun p_SRPENDIF : parser (token) fun is_SRPENDIF (x: tnode): bool (* ****** ****** *) fun p_EOF : parser (token) fun is_EOF (x: tnode): bool (* ****** ****** *) fun is_ATLPAREN (x: tnode): bool (* fun is_QUOTELPAREN (x: tnode): bool *) fun is_LPAREN_deco (x: tnode): bool fun is_ATLBRACE (x: tnode): bool (* fun is_QUOTELBRACE (x: tnode): bool *) fun is_LBRACE_deco (x: tnode): bool (* ****** ****** *) fun ptoken_fun ( buf: &tokbuf , bt: int, err: &int , f: (tnode) -> bool, enode: parerr_node ) : token // end of [ptoken_fun] fun ptoken_test_fun ( buf: &tokbuf, f: (tnode) -> bool ) : bool // end of [ptoken_test_fun] fun ptokentopt_fun {a:type} ( buf: &tokbuf , f1: (tnode) -> bool, f2: parser(a) ) : Option_vt(a) // end of [ptokentopt_fun] (* ****** ****** *) fun pstar_fun{a:type} (buf: &tokbuf, bt: int, f: parser(a)): List_vt(a) // end of [pstar_fun] (* ****** ****** *) fun pstar_sep_fun {a:type} ( buf: &tokbuf , bt: int, sep: (&tokbuf) -> bool, f: parser(a) ) : List_vt (a) // end of [pstar_sep_fun] (* ****** ****** *) fun pstar_COMMA_fun {a:type} (buf: &tokbuf, bt: int, f: parser(a)): List_vt(a) // end of [pstar_COMMA_fun] (* ****** ****** *) (* // HX: fun1_sep: fun sep_fun // HX: fun0_sep: /*empty*/ | fun1_sep *) fun pstar_fun0_sep {a:type} ( buf: &tokbuf, bt: int, f: parser (a), sep: (&tokbuf) -> bool ) : List_vt (a) // end of [pstar_fun0_sep] fun pstar_fun0_BAR {a:type} ( buf: &tokbuf, bt: int, f: parser (a) ) : List_vt (a) // end of [pstar_fun0_BAR] fun pstar_fun0_COMMA {a:type} ( buf: &tokbuf, bt: int, f: parser (a) ) : List_vt (a) // end of [pstar_fun0_COMMA] fun pstar_fun0_SEMICOLON {a:type} ( buf: &tokbuf, bt: int, f: parser (a) ) : List_vt (a) // end of [pstar_fun0_SEMICOLON] fun pstar_fun0_BARSEMI {a:type} ( buf: &tokbuf, bt: int, f: parser (a) ) : List_vt (a) // end of [pstar_fun0_BARSEMI] (* ****** ****** *) fun pstar_fun1_sep {a:type} ( buf: &tokbuf , bt: int, err: &int , f: parser (a), sep: (&tokbuf) -> bool ) : List_vt (a) // end of [pstar_fun1_sep] fun pstar_fun1_AND {a:type} ( buf: &tokbuf, bt: int, err: &int, f: parser (a) ) : List_vt (a) // end of [pstar_fun1_AND] (* ****** ****** *) fun pstar1_fun {a:type} ( buf: &tokbuf, bt: int, err: &int, f: parser (a) ) : List_vt (a) // end of [pplus_fun] (* ****** ****** *) fun popt_fun {a:type} ( buf: &tokbuf, bt: int, f: parser (a) ) : Option_vt (a) // end of [popt_fun] (* ****** ****** *) datavtype synent2 ( a1: viewtype, a2:viewtype ) = SYNENT2 (a1, a2) of (a1, a2) fun pseq2_fun {a1,a2:type} ( buf: &tokbuf , bt: int, err: &int , f1: parser (a1), f2: parser (a2) ) : synent2 (a1, a2) (* ****** ****** *) datavtype synent3 ( a1: viewtype, a2:viewtype, a3:viewtype ) = SYNENT3 (a1, a2, a3) of (a1, a2, a3) fun pseq3_fun {a1,a2,a3:type} ( buf: &tokbuf , bt: int, err: &int , f1: parser (a1), f2: parser (a2), f3: parser (a3) ) : synent3 (a1, a2, a3) (* ****** ****** *) fun ptest_fun {a:type} ( buf: &tokbuf, f: parser (a), ent: &synent? >> synent ) : bool // end of [ptest_fun] (* ****** ****** *) // // HX: for syntax like: ... | ... // dataviewtype list12 (a:type) = | LIST12one (a) of List_vt (a) | LIST12two (a) of (List_vt (a), List_vt (a)) // end of [list12] fun list12_free {a:type} (ent: list12 a): void fun plist12_fun {a:type} (buf: &tokbuf, bt: int, f: parser (a)): list12 (a) // end of [plist12_fun] fun p1list12_fun {a:type} (x: a, buf: &tokbuf, bt: int, f: parser (a)): list12 (a) // end of [p1list12_fun] (* ****** ****** *) fun pif_fun {a:type} ( buf: &tokbuf , bt: int, err: &int, f: parser (a), err0: int ) : (a) // end of [pif_fun] (* ****** ****** *) fun ptokwrap_fun {a:type} ( buf: &tokbuf , bt: int, err: &int, f: parser_tok (a), enode: parerr_node ) : (a) // end of [ptokwrap_fun] (* ****** ****** *) fun p_i0nt : parser (i0nt) // integers: dec, oct, hex, etc. fun p_c0har : parser (c0har) // characters fun p_f0loat : parser (f0loat) // floating point numbers fun p_s0tring : parser (s0tring) // strings (* ****** ****** *) fun p_i0de : parser (i0de) // identifier fun p_i0deseq1 : parser (i0delst) // = {i0de}+ (* ****** ****** *) fun p_i0dext : parser (i0de) // identifier! (* ****** ****** *) fun p_i0de_dlr : parser (i0de) // $identifier (* ****** ****** *) fun p_l0ab : parser (l0ab) fun p_p0rec : parser (p0rec) fun p_e0fftag : parser (e0fftag) fun p_e0fftaglst : parser (e0fftaglst) fun p_colonwith : parser (e0fftaglstopt) fun p_dcstkind : parser (token) fun p_extnamopt : parser (s0tringopt) (* ****** ****** *) fun p_e0xp : parser (e0xp) fun p_e0xpseq : parser (e0xplst) (* ****** ****** *) fun p_datsdef : parser (datsdef) (* ****** ****** *) fun p_s0rt : parser (s0rt) fun p_s0rtq : parser (s0rtq) // sort qualifier fun p_s0rtid : parser (i0de) // sort identifier // fun p_ofs0rtopt : parser (s0rtopt) // OF s0rt fun p_colons0rtopt : parser (s0rtopt) // COLON s0rt // fun p_s0arg : parser (s0arg) // static argument fun p_s0marg : parser (s0marg) // static multi-argument // fun p_a0srt : parser (a0srt) // static argument sort fun p_a0msrt : parser (a0msrt) // static argument multi-sort // fun p_d0atsrtconseq : parser (d0atsrtconlst) (* ****** ****** *) fun p_s0exp : parser (s0exp) fun p_si0de : parser (i0de) // static identifier fun p_s0taq : parser (s0taq) // static qualifier fun p_sqi0de : parser (sqi0de) // static qualified identifier fun p_atms0exp : parser (s0exp) // atomic staic exp. fun p_labs0exp : parser (labs0exp) // labeled static exp. // fun p_s0rtext : parser (s0rtext) // fun p_s0qua : parser (s0qua) fun p_s0quaseq : parser (s0qualst) // fun p_eqs0expopt : parser (s0expopt) // EQ s0exp fun p_ofs0expopt : parser (s0expopt) // OF s0exp fun p_colons0expopt : parser (s0expopt) // OF s0exp // (* HX: argument type *) fun p_a0typ : parser (a0typ) // (* HX: quantifier-like multi-argument *) fun p_q0marg : parser (q0marg) fun p_q0margseq : parser (q0marglst) // fun p_e0xndec : parser (e0xndec) fun p_d0atconseq : parser (d0atconlst) // fun p_d0cstarg : parser (d0cstarg) // fun p_s0vararg : parser (s0vararg) fun p_s0exparg : parser (s0exparg) // fun p_witht0ype : parser (witht0ype) // fun p_tmps0expseq : parser (t0mpmarg) // (* ****** ****** *) fun p_p0at : parser (p0at) fun p_pi0de : parser (i0de) // pattern identifier fun p_labp0at : parser (labp0at) // labeled pattern fun p_f0arg1 : parser (f0arg) fun p_f0arg2 : parser (f0arg) (* ****** ****** *) // fun p_d0exp : parser (d0exp) fun p_di0de : parser (i0de) // dynamic identifier fun p_d0ynq : parser (d0ynq) // dynamic qualifier fun p_dqi0de : parser (dqi0de) // dynamic qualified identifier fun p_labd0exp : parser (labd0exp) // labeled dynamic exp. fun p_arrqi0de : parser (dqi0de) fun p_tmpqi0de : parser (dqi0de) // fun p_eqd0expopt : parser (d0expopt) // EQ d0exp // fun p_d0expsemiseq : parser (d0explst) // (* ****** ****** *) // fun p_i0fclseq : parser (i0fclist) // fun p_c0lauseq : parser (c0laulst) // pattern-matching clauses fun p_sc0lauseq : parser (sc0laulst) // static pattern-matching clauses // (* ****** ****** *) fun p_S0Ed2ctype : parser (d0exp) (* ****** ****** *) fun p_d0ecl : parser (d0ecl) fun p_d0ecl_sta : parser (d0ecl) fun p_d0ecl_dyn : parser (d0ecl) // fun p_d0eclseq_fun{a:type} ( buf: &tokbuf, bt: int, f: parser a ) : List_vt (a) // end-of-fun // fun p_d0eclseq_sta : parser (d0eclist) fun p_d0eclseq_dyn : parser (d0eclist) // fun p_d0atsrtdecseq : parser (d0atsrtdeclst) // fun p_s0rtdefseq : parser (s0rtdeflst) // fun p_s0taconseq : parser (s0taconlst) fun p_s0tacstseq : parser (s0tacstlst) (* fun p_s0tavarseq : parser (s0tavarlst) *) fun p_t0kindef : parser (t0kindef) // fun p_s0expdefseq : parser (s0expdeflst) // fun p_s0aspdec : parser (s0aspdec) // fun p_e0xndecseq : parser (e0xndeclst) fun p_d0atdecseq : parser (d0atdeclst) // fun p_m0acdef : parser (m0acdef) // fun p_d0cstdecseq : parser (d0cstdeclst) // (* ****** ****** *) // fun p_toplevel_sta (buf: &tokbuf, nerr: &int? >> int): d0eclist // end of [p_toplevel_sta] // fun p_toplevel_dyn (buf: &tokbuf, nerr: &int? >> int): d0eclist // end of [p_toplevel_dyn] // (* ****** ****** *) // fun parse_from_string_parser {a:type} ( inp: string, fparse: parser(a) ) : Option_vt(a) // end-of-fun // (* ****** ****** *) fun parse_from_tokbuf_toplevel ( stadyn: int, buf: &tokbuf ) : d0eclist // end-of-function (* ****** ****** *) // // HX-2015-10-04: // This one is for libatsopt // fun parse_from_string_toplevel ( stadyn: int, inp: string ) : d0eclist = "ext#libatsopt_parse_from_string_toplevel" // (* ****** ****** *) // fun parse_from_stdin_toplevel (stadyn: int): d0eclist // fun parse_from_fileref_toplevel (stadyn: int, inp: FILEref): d0eclist // end of [parse_from_fileref_toplevel] // (* ****** ****** *) // fun parse_from_filename_toplevel (stadyn: int, fil: filename): d0eclist fun parse_from_filename_toplevel2 (stadyn: int, fil: filename): d0eclist // (* ****** ****** *) // fun parse_from_givename_toplevel ( stadyn: int , givename: string, filref: &filename? >> filename ) : d0eclist // end-of-function fun parse_from_givename_toplevel2 ( stadyn: int , givename: string, filref: &filename? >> filename ) : d0eclist // end-of-function // (* ****** ****** *) // // HX-2017-05-26: // [filref] is set // by the first [givename] // fun parse_from_givenames_toplocal2 ( stadyn: int , givenames: List(string), filref: &filename? >> filename ) : d0eclist // end of [parse_from_givename_toplocal2] // (* ****** ****** *) (* end of [pats_parsing.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_patcst2.sats0000644000175000017500000001201313431250607020751 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) // staload "./pats_basics.sats" // (* ****** ****** *) // staload UT = "./pats_utils.sats" // typedef charset = $UT.charset // (* ****** ****** *) // staload INTINF = "./pats_intinf.sats" // typedef intinf = $INTINF.intinf typedef intinfset = $INTINF.intinfset // (* ****** ****** *) staload LAB = "./pats_label.sats" stadef label = $LAB.label (* ****** ****** *) staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload STAEXP2 = "./pats_staexp2.sats" typedef d2con = $STAEXP2.d2con staload DYNEXP2 = "./pats_dynexp2.sats" typedef p2at = $DYNEXP2.p2at typedef p2atlst = $DYNEXP2.p2atlst typedef c2lau = $DYNEXP2.c2lau (* ****** ****** *) fun i0nt2intinf (x: $SYN.i0nt): intinf (* ****** ****** *) datatype p2atcst = // | P2TCany of () | P2TCcon of (d2con, p2atcstlst) | P2TCempty of () // | P2TCint of intinf | P2TCintc of intinfset // | P2TCbool of bool // | P2TCchar of char | P2TCcharc of charset // | P2TCfloat of string(*rep*) | P2TCstring of string // | P2TCrec of (int(*reckind*), labp2atcstlst) // end of [p2atcst] and labp2atcst = LABP2ATCST of (label, p2atcst) where p2atcstlst (n:int) = list (p2atcst, n) and p2atcstlst = List (p2atcst) and labp2atcstlst = List (labp2atcst) (* ****** ****** *) fun p2atcst_lst (lin: int, xs: p2atcstlst): p2atcst (* ****** ****** *) viewtypedef p2atcstlst_vt = List_vt (p2atcst) viewtypedef labp2atcstlst_vt = List_vt (labp2atcst) typedef p2atcstlstlst = List (p2atcstlst) typedef labp2atcstlstlst = List (labp2atcstlst) (* ****** ****** *) viewtypedef p2atcstlstlst_vt = List_vt (p2atcstlst_vt) viewtypedef labp2atcstlstlst_vt = List_vt (labp2atcstlst_vt) (* ****** ****** *) fun p2atcstlstlst_vt_free (xss: p2atcstlstlst_vt): void fun p2atcstlstlst_vt_copy (xss: !p2atcstlstlst_vt): p2atcstlstlst_vt (* ****** ****** *) // fun print_p2atcst (x: p2atcst): void and prerr_p2atcst (x: p2atcst): void fun fprint_p2atcst : fprint_type (p2atcst) // overload print with print_p2atcst overload prerr with prerr_p2atcst overload fprint with fprint_p2atcst // (* ****** ****** *) fun print_p2atcstlst (xs: p2atcstlst): void and prerr_p2atcstlst (xs: p2atcstlst): void fun print_p2atcstlst_vt (xs: !p2atcstlst_vt): void and prerr_p2atcstlst_vt (xs: !p2atcstlst_vt): void fun fprint_p2atcstlst : fprint_type (p2atcstlst) fun print_labp2atcstlst (xs: labp2atcstlst): void and prerr_labp2atcstlst (xs: labp2atcstlst): void fun fprint_labp2atcstlst : fprint_type (labp2atcstlst) fun print_p2atcstlstlst (xss: p2atcstlstlst): void and prerr_p2atcstlstlst (xss: p2atcstlstlst): void fun print_p2atcstlstlst_vt (xss: !p2atcstlstlst_vt): void fun prerr_p2atcstlstlst_vt (xss: !p2atcstlstlst_vt): void fun fprint_p2atcstlstlst : fprint_type (p2atcstlstlst) (* ****** ****** *) fun p2at2cst (p2t: p2at): p2atcst fun p2at2cstlst (p2ts: p2atlst): p2atcstlst (* ****** ****** *) fun p2atcst_comp (x: p2atcst): p2atcstlst_vt fun p2atcstlst_comp (xs: p2atcstlst): p2atcstlstlst_vt fun labp2atcstlst_comp (xs: labp2atcstlst): labp2atcstlstlst_vt (* ****** ****** *) // fun c2lau_pat_any (c2l: c2lau): p2atcstlstlst_vt // fun c2lau_pat_comp (c2l: c2lau): p2atcstlstlst_vt // (* ****** ****** *) fun p2atcst_inter_test (x1: p2atcst, x2: p2atcst): bool fun p2atcstlst_inter_test (xs1: p2atcstlst, xs2: p2atcstlst): bool fun labp2atcstlst_inter_test (xs1: labp2atcstlst, xs2: labp2atcstlst): bool (* ****** ****** *) fun p2atcst_diff (x1: p2atcst, x2: p2atcst): p2atcstlst_vt fun p2atcstlst_diff (xs1: p2atcstlst, xs2: p2atcstlst): p2atcstlstlst_vt // end of [p2atcstlst_diff] fun labp2atcstlst_diff (xs1: labp2atcstlst, xs2: labp2atcstlst): labp2atcstlstlst_vt // end of [labp2atcstlst_diff] (* ****** ****** *) (* end of [pats_patcst2.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_lvalres.dats0000644000175000017500000003720413431250607022325 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2012 // (* ****** ****** *) // // HX: for handling left-value type restoration after a function call // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_trans3_lvalres" // (* ****** ****** *) staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) local fun auxerr_pfobj ( loc0: loc_t, s2l: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": type-restoration cannot be performed" val () = prerr_newline () val () = prerr ": the proof search for view located at [" val () = prerr_s2exp (s2l) val () = prerr "] failed to turn up a result." val () = prerr_newline () in the_trans3errlst_add (T3E_pfobj_search_none (loc0, s2l)) end // end of [auxerr_pfobj] fun auxmain ( loc0: loc_t , pfobj: pfobj , d3ls: d3lablst , s2e_new: s2exp ) : s2exp = let // val+~PFOBJ ( d2v, s2e_ctx, s2e_elt, s2l ) = pfobj // end of [val] var ctxtopt: s2ctxtopt = None () (* val () = println! ("auxmain: s2e_elt = ", s2e_elt) *) val s2es2ps = s2exp_get_dlablst_context_check (loc0, s2e_elt, d3ls, ctxtopt) val s2e_old = s2es2ps.0 val () = trans3_env_add_proplst_vt (loc0, s2es2ps.1) // in // case+ ctxtopt of | Some (ctxt) => let val s2e_elt = s2ctxt_hrepl (ctxt, s2e_new) // end of [val] val s2e = s2exp_hrepl (s2e_ctx, s2e_elt) val () = d2var_set_type (d2v, Some (s2e)) in s2e_old end // end of [Some] | None () => let val err = $SOL.s2exp_tyleq_solve (loc0, s2e_new, s2e_old) val () = if err > 0 then let val () = prerr_error3_loc (loc0) val () = prerr ": mismatch of bef/aft types of call-by-reference: " val () = prerr_newline () val () = prerr_the_staerrlst () in the_trans3errlst_add (T3E_s2addr_exch_type_oldnew (loc0, s2e_elt, d3ls, s2e_new)) end // end of [if] // end of [val] in s2e_old end // end of [None] // end // end of [auxmain] in (* in of [local] *) implement s2addr_exch_type ( loc0, s2l, d3ls, s2e_new ) = let val opt = pfobj_search_atview (s2l) in // case+ opt of | ~Some_vt (pfobj) => auxmain (loc0, pfobj, d3ls, s2e_new) | ~None_vt () => let val () = auxerr_pfobj (loc0, s2l) in s2exp_t0ype_err () end // end of [None_vt] // end // end of [s2addr_exch_type] end // end of [local] (* ****** ****** *) local fun auxerr_linold ( loc0: loc_t , d3e: d3exp, d3ls: d3lablst, s2e_old: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": a linear component of the following type is abandoned: " val () = (prerr "["; prerr_s2exp (s2e_old); prerr "].") val () = prerr_newline () in the_trans3errlst_add (T3E_d3lval_exch_type_linold (loc0, d3e, d3ls)) end // end of [auxerr_linold] fun d2var_refval_check ( loc0: loc_t, d2v: d2var, refval: int ) : void = if refval > 0 then let val () = prerr_error3_loc (loc0) val () = prerr ": the dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is required to be mutable in order to support call-by-reference." val () = prerr_newline () in the_trans3errlst_add (T3E_d3lval_refval (loc0, d2v)) end // end of [if] // end of [d2var_refval_check] in (* in of [local] *) implement d3lval_set_type_err ( refval, d3e0, s2e_new, err ) = let // val loc0 = d3e0.d3exp_loc // (* val () = ( println! ("d3lval_set_type_err: d3e0 = ", d3e0); println! ("d3lval_set_type_err: s2e_new = ", s2e_new); ) // end of [val] *) // in // case+ d3e0.d3exp_node of // | D3Evar (d2v) when d2var_is_mutabl (d2v) => let val-Some (s2l) = d2var_get_addr (d2v) val d3ls = list_nil // HX: a special case of sel_var val _(*old*) = s2addr_exch_type (loc0, s2l, d3ls, s2e_new) in // nothing end // end of [D2Evar/mutabl] // | D3Evar (d2v) when d2var_is_linear (d2v) => let val () = d2var_refval_check (loc0, d2v, refval) // end of [val] val opt = d2var_exch_type (d2v, Some (s2e_new)) // end of [val] val () = d3exp_set_type (d3e0, s2e_new) in case+ opt of | Some (s2e_old) => let val islin = s2exp_is_lin (s2e_old) val () = if islin then auxerr_linold (loc0, d3e0, list_nil(*d3ls*), s2e_old) // end of [if] // end of [val] in // nothing end // end of [Some] | None ((*none*)) => () end // end of [D2Evar/linear] // (* | D3Evar (d2v) when d2var_get_isfix (d2v) => () *) // | D3Esel_var (d2v, s2rt, d3ls) when d2var_is_mutabl (d2v) => let val-Some (s2l) = d2var_get_addr (d2v) val _(*old*) = s2addr_exch_type (loc0, s2l, d3ls, s2e_new) in // nothing end // end of [D2Evar/mutabl] | D3Esel_var (d2v, s2rt, d3ls) when d2var_is_linear (d2v) => let val () = d2var_refval_check (loc0, d2v, refval) // end of [val] val s2e = d2var_get_type_some (loc0, d2v) var ctxtopt: s2expopt = None () val s2e_old = s2exp_get_dlablst_context (loc0, s2e, d3ls, ctxtopt) val s2e_old = s2exp_hnfize (s2e_old) val islin = s2exp_is_lin (s2e_old) val () = if islin then auxerr_linold (loc0, d3e0, d3ls, s2e_old) in case+ ctxtopt of | Some (ctxt) => let val s2e = s2ctxt_hrepl (ctxt, s2e_new) // end of [val] in d2var_set_type (d2v, Some (s2e)) end // end of [Some] | None () => let val () = prerr_interror_loc (loc0) val () = prerr ": type-restoration for the left-value failed." val () = prerr_newline () val () = assertloc (false) in // this error can occur in theory, but will it do in practice? end // end of [None] end // end of [D3Evar/linear] // | D3Esel_ptr (d3e_ptr, s2rt, d3ls) => let val s2e_ptr = d3exp_get_type (d3e_ptr) val s2f_ptr = s2exp2hnf (s2e_ptr) val opt = un_s2exp_ptr_addr_type (s2f_ptr) in case+ opt of | ~Some_vt (s2l) => { val _(*old*) = s2addr_exch_type (loc0, s2l, d3ls, s2e_new) } // end of [Some_vt] | ~None_vt () => () // HX: error already registered at this point end // end of [D2Esel_ptr] // | D3Eviewat (d3e_ptr, d3ls) => let val s2e_ptr = d3exp_get_type (d3e_ptr) val s2f_ptr = s2exp2hnf (s2e_ptr) val opt = un_s2exp_ptr_addr_type (s2f_ptr) in case+ opt of | ~Some_vt (s2l) => s2addr_set_viewat (loc0, s2l, d3ls, s2e_new) | ~None_vt () => () // HX: error already registered at this point end // end of [D2Eviewat] // (* | D3Eapp_sta(d3e) => d3lval_set_type_err (refval, d3e, s2e_new, err) // end of [D3Eapp_sta] *) // | _ (*D3E...: non-left-values*) => (err := err + 1) // (* | _ (*D3E...: non-left-values*) => let val () = prerr_error3_loc (loc0) val () = prerrln! ": type-restoration cannot be applied to a non-left-value." in the_trans3errlst_add (T3E_d3lval_funarg (d3e0)) end // end of [_] *) // end // end of [d3lval_set_type_err] end // end of [local] (* ****** ****** *) implement d3lval_set_pat_type_left (d3e0, p3t) = let // val opt = p3at_get_type_left (p3t) // in // case+ opt of | Some (s2e) => let var err: int = 0 val () = d3lval_set_type_err (0(*refval*), d3e0, s2e, err) in if err > 0 then let val loc0 = d3e0.d3exp_loc val () = prerr_error3_loc (loc0) val () = prerr ": the dynamic expression should be a left-value but it is not." val () = prerr_newline () in the_trans3errlst_add (T3E_d3lval_linpatcon (d3e0, s2e)) end (* end of [if] *) end // end of [Some] | None ((*void*)) => () // end // end of [d3lval_set_pat_type_left] (* ****** ****** *) local fun loop ( d3es: d3explst, p3ts: p3atlst ) : void = let in // case+ d3es of | list_cons (d3e, d3es) => ( case+ p3ts of | list_cons (p3t, p3ts) => let val () = d3lval_set_pat_type_left (d3e, p3t) in loop (d3es, p3ts) // end of [val] end // end of [list_cons] | list_nil () => () ) // end of [list_cons] | list_nil () => () // end // end of [loop] in (* in of [local] *) implement d3lvalist_set_pat_type_left (d3es, p3ts) = loop (d3es, p3ts) end // end of [local] (* ****** ****** *) local // fun auxerr ( d3e0: d3exp ) : void = let // val loc0 = d3e0.d3exp_loc // (* val () = prerr_error3_loc (loc0) val () = prerrln! (": auxerr: d3e0 = ", d3e0) *) // val () = prerr_error3_loc (loc0) val () = prerrln! (": the function argument needs to be a left-value.") // in the_trans3errlst_add (T3E_d3lval_funarg (d3e0)) end // end of [_] // in (* in of [local] *) implement d3lval_arg_set_type (refval, d3e0, s2e_new) = let (* val () = ( println! ("d3lval_arg_set_type: d3e0 = ", d3e0); println! ("d3lval_arg_set_type: refval = ", refval); println! ("d3lval_arg_set_type: s2e_new = ", s2e_new); ) (* end of [val] *) *) var err: int = 0 var freeknd: int = 0 // free [d3e0] if it is set to 1 val () = d3lval_set_type_err (refval, d3e0, s2e_new, err) val () = ( if err > 0 then ( case+ 0 of | _ when refval > 0 => auxerr (d3e0) | _ when s2exp_is_nonlin (s2e_new) => () // HX-2013-03: safely discarded (* | _ when s2exp_fun_is_freeptr (s2e_new) => (freeknd := 1) // auto-freeing *) | _ (* refval = 0 *) => auxerr (d3e0) ) // end of [if] ) : void // end of [val] // (* val () = println! ("d3lval_arg_set_type: freeknd = ", freeknd) *) // in freeknd // freeknd=1: a linear value must be freed if it cannot be returned end (* end of [d3lval_arg_set_type] *) end // end of [local] (* ****** ****** *) fun s2exp_fun_is_freeptr (s2e_fun: s2exp) : bool = let in // case+ s2e_fun.s2exp_node of | S2Efun ( fc, lin, _(*s2fe*), _(*npf*), _(*arg*), _(*res*) ) => ( case+ fc of | FUNCLOclo (knd) => if knd > 0 then (if lin <= 0 then true else false) else false // end of [if] | _ (*non-clofun*) => false ) // end of [S2Efun] | _ (*non-fun-type*) => false // end // end of [s2exp_fun_is_freeptr] (* ****** ****** *) local fun auxerr ( d3e0: d3exp ) : void = let val loc0 = d3e0.d3exp_loc val () = prerr_error3_loc (loc0) val () = prerr ": the function itself needs to be a left-value." val () = prerr_newline () in the_trans3errlst_add (T3E_d3lval_fun (d3e0)) end // end of [_] fun auxres ( d3e0: d3exp ) : d3exp = let // val loc0 = d3e0.d3exp_loc val s2e0 = d3exp_get_type (d3e0) val s2fun = s2exp_hnfize (s2e0) // val-S2Efun ( fc0, lin, s2fe, npf, s2es_arg, s2e_res ) = s2fun.s2exp_node // val s2fun_new = ( case+ lin of | _ when lin = 0 => s2fun | _ when lin = 1 => s2exp_fun_srt ( s2rt_vtype, fc0, ~1(*topized*), s2fe, npf, s2es_arg, s2e_res ) (* end of [lin=1] *) | _ (* lin = ~1 *) => let val () = prerr_error3_loc (loc0) val () = prerr ": a linear function cannot be applied repeatedly." val () = prerr_newline () val () = the_trans3errlst_add (T3E_d3exp_funclo_topized (d3e0)) in s2fun end // end of [_] ) : s2exp // end of [val] // val refval = ( case+ fc0 of | FUNCLOclo knd => if knd = 0 then 1 else 0 | FUNCLOfun () => 0 ) : int // end of [val] // var err: int = 0 var freeknd: int = 0 // free [d3e0] if it is set to 1 val () = d3lval_set_type_err (refval, d3e0, s2fun_new, err) val () = ( if err > 0 then ( case+ 0 of | _ when refval > 0 => auxerr (d3e0) | _ when s2exp_fun_is_freeptr (s2fun_new) => (freeknd := 1) // auto-freeing | _ (* refval = 0 *) => ((* fun or cloref *)) ) // end of [if] ) : void // end of [val] // in d3exp_refarg (loc0, s2fun_new, refval, freeknd, d3e0) end // end of [auxres] #define CLO 0; #define CLOPTR 1; #define CLOREF ~1 in (* in of [local] *) implement d3exp_fun_restore (fc, d3e_fun) = let in // case+ fc of | FUNCLOclo (knd) => ( // // knd: 0/1/~1: clo/cloptr/cloref // if knd >= CLO then auxres (d3e_fun) else d3e_fun ) // end of [FUNCLOclo] | FUNCLOfun () => d3e_fun // end // end of [d3exp_fun_restore] end // end of [local] (* ****** ****** *) local fun auxlst1 ( d3es: d3explst , s2es_arg: s2explst , wths2es: wths2explst ) : d3explst = case d3es of | list_nil () => list_nil () | list_cons _ => auxlst2 (d3es, s2es_arg, wths2es) // end of [auxlst1] and auxlst2 ( d3es: d3explst , s2es_arg: s2explst , wths2es: wths2explst ) : d3explst = let in // case+ wths2es of // | WTHS2EXPLSTnil ((*void*)) => list_nil () // | WTHS2EXPLSTcons_invar (_, _, wths2es) => let val-list_cons (d3e, d3es) = d3es val-list_cons (s2e_arg, s2es_arg) = s2es_arg val loc = d3e.d3exp_loc val-S2Erefarg(refval, s2e_res) = s2e_arg.s2exp_node val freeknd = // HX: freeknd = 0 d3lval_arg_set_type (refval, d3e, s2e_res) val d3e = d3exp_refarg (loc, s2e_res, refval, freeknd, d3e) val d3es = auxlst1 (d3es, s2es_arg, wths2es) in list_cons (d3e, d3es) end // end of [WTHS2EXPLSTcons_invar] // | WTHS2EXPLSTcons_trans (refval, s2e_res, wths2es) => let val-list_cons (d3e, d3es) = d3es val-list_cons (s2e_arg, s2es_arg) = s2es_arg val loc = d3e.d3exp_loc val s2f_res = s2exp2hnf (s2e_res) val s2e_res = s2hnf_opnexi_and_add (loc, s2f_res) (* val () = ( println! ("d3explst_arg_restore: auxlst2: d3e = ", d3e); println! ("d3explst_arg_restore: auxlst2: d3e.type = ", d3e.d3exp_type); println! ("d3explst_arg_restore: auxlst2: s2e_res = ", s2e_res); ) // end of [val] *) val freeknd = // HX: freeknd = 0 d3lval_arg_set_type (refval, d3e, s2e_res) val d3e = d3exp_refarg (loc, s2e_res, refval, freeknd, d3e) val d3es = auxlst1 (d3es, s2es_arg, wths2es) in list_cons (d3e, d3es) end // end of [WTHS2EXPLSTcons_trans] // | WTHS2EXPLSTcons_none (wths2es) => let val-list_cons (d3e, d3es) = d3es val-list_cons (s2e_arg, s2es_arg) = s2es_arg val d3es = auxlst1 (d3es, s2es_arg, wths2es) in list_cons (d3e, d3es) end // end of [WTHS2EXPLSTcons_none] // end // end of [d3explst_arg_restore] in (* in of [local] *) // implement d3explst_arg_restore (d3es, s2es, wths2es) = auxlst1 (d3es, s2es, wths2es) // end // end of [local] (* ****** ****** *) (* end of [pats_trans3_lvalres.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_symmap_avltree.hats0000644000175000017500000000707213431250607022417 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/linmap_avltree.sats" staload _(*anon*) = "libats/DATS/linmap_avltree.dats" (* ****** ****** *) staload "pats_symmap.sats" (* ****** ****** *) // typedef key = uint // assume symmap_vtype (itm:type) = map (key, itm) (* ****** ****** *) // val cmp0 = $UN.cast{cmp(key)} (null) // implement compare_key_key (x1, x2, _) = compare_uint_uint (x1, x2) // (* ****** ****** *) implement symmap_make_nil () = linmap_make_nil<> () implement symmap_free {itm} (map) = linmap_free (map) (* ****** ****** *) implement symmap_search {itm} (map, sym) = let val k = $SYM.symbol_get_stamp (sym) var res: itm? val found = linmap_search (map, k, cmp0, res) in if found then let prval () = opt_unsome {itm} (res) in Some_vt (res) end else let prval () = opt_unnone {itm} (res) in None_vt () end (* end of [if] *) end // end of [symmap_search] (* ****** ****** *) implement symmap_insert {itm} (map, sym, i) = { val k = $SYM.symbol_get_stamp (sym) var res: itm val _exist = linmap_insert (map, k, i, cmp0, res) prval () = opt_clear (res) } (* end of [symmap_insert] *) (* ****** ****** *) implement symmap_joinwth {itm} (map1, map2) = let // typedef keyitm = (key, itm) // fun loop {n:nat} .. ( map: &symmap (itm), kis: list_vt (keyitm, n) ) :<> void = let in // case+ kis of | list_vt_cons (!p_ki, kis1) => let var res: itm val _exist = linmap_insert (map, p_ki->0, p_ki->1, cmp0, res) prval () = opt_clear (res) val () = free@ {keyitm} {0} (kis) in loop (map, kis1) end // end of [list_vt_cons] | ~list_vt_nil () => () // end // end of [loop] // val kis = linmap_listize (map2) // in loop (map1, kis) end // end of [symmap_joinwth] (* ****** ****** *) implement fprint_symmap{itm} (out, map, f) = let var !p_clo = @lam (pf: !unit_v | k: key, i: &itm): void = $effmask_all (fprint (out, k); fprint (out, " -> "); f (out, i); fprint_newline (out)) prval pfu = unit_v () val () = linmap_foreach_vclo (pfu | map, !p_clo) prval unit_v () = pfu in // nothing end // end of [fprint_symmap] (* ****** ****** *) (* end of [pats_symmap_avltree.hats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_codegen2_absrec.dats0000644000175000017500000002666613431250607022402 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2016 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: August, 2016 // (* ****** ****** *) // staload LAB = "./pats_label.sats" // overload fprint with $LAB.fprint_label // (* ****** ****** *) // staload LOC = "./pats_location.sats" // overload fprint with $LOC.fprint_location // (* ****** ****** *) // staload SYM = "./pats_symbol.sats" // (* ****** ****** *) // staload "./pats_staexp1.sats" // (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" // (* ****** ****** *) staload "./pats_codegen2.sats" (* ****** ****** *) fun s2cst_get_name (s2c: s2cst): string = ( $SYM.symbol_get_name(s2cst_get_sym(s2c)) ) (* end of [s2cst_get_name] *) (* ****** ****** *) // extern fun absrec_emit_tydef_uni ( out: FILEref, s2e0: s2exp ) : void // end-of-function // implement absrec_emit_tydef_uni (out, s2e0) = let // fun aux_s2varlst ( out: FILEref , s2vs: s2varlst, i: int ) : void = ( case+ s2vs of | list_nil() => () | list_cons(s2v, s2vs) => { // val () = if i > 0 then fprint(out, ";") // end of [if] val () = let val s2t = s2var_get_srt(s2v) in codegen2_emit_s2var(out, s2v); fprint(out, ":"); codegen2_emit_s2rt(out, s2t) end (* end of [val] *) // val () = aux_s2varlst(out, s2vs, i+1) // } (* end of [list_cons] *) ) (* end of [aux_s2varlst] *) // in // case+ s2e0.s2exp_node of (* case+ *) | S2Elam ( s2vs, s2e_body ) => () where { val () = fprint(out, "{") val () = aux_s2varlst(out, s2vs, 0) val () = fprint(out, "}") val () = absrec_emit_tydef_uni(out, s2e_body) } (* S2Elam *) | _(*non-S2Elam*) => () // end // end of [absrec_emit_tydef_uni] // (* ****** ****** *) // extern fun absrec_emit_tydef_arg ( out: FILEref, s2e0: s2exp ) : void // end-of-function // implement absrec_emit_tydef_arg (out, s2e0) = let // fun aux_s2varlst ( out: FILEref , s2vs: s2varlst, i: int ) : void = ( case+ s2vs of | list_nil() => () | list_cons(s2v, s2vs) => { // val () = if i > 0 then fprint(out, ", ") // end of [if] val () = ( codegen2_emit_s2var(out, s2v) ) (* end of [val] *) // val () = aux_s2varlst(out, s2vs, i+1) // } (* end of [list_cons] *) ) (* end of [aux_s2varlst] *) // in // case+ s2e0.s2exp_node of (* case+ *) | S2Elam ( s2vs, s2e_body ) => () where { val () = fprint(out, "(") val () = aux_s2varlst(out, s2vs, 0) val () = fprint(out, ")") val () = absrec_emit_tydef_arg(out, s2e_body) } (* S2Elam *) | _(*non-S2Elam*) => () // end // end of [absrec_emit_tydef_arg] // (* ****** ****** *) // datatype absrecfld = // | ABSRECFLDget of s2exp | ABSRECFLDset of s2exp | ABSRECFLDgetset of s2exp // | ABSRECFLDexch of s2exp // (* | ABSRECFLDvtget0 of s2exp | ABSRECFLDvtget1 of s2exp *) // | ABSRECFLDgetref of s2exp // | ABSRECFLDunknown of s2exp // (* ****** ****** *) // extern fun absrecfld_of_s2exp (s2e0: s2exp): absrecfld // implement absrecfld_of_s2exp (s2e0) = let // macdef is_get(name) = (,(name) = "get") macdef is_set(name) = (,(name) = "set") macdef is_getset(name) = (,(name) = "getset") // macdef is_exch(name) = (,(name) = "exch") // (* macdef is_vtget0(name) = (,(name) = "vtget0") macdef is_vtget0(name) = (,(name) = "vtget1") *) // macdef is_getref(name) = (,(name) = "getref") // in // case+ s2e0.s2exp_node of | S2Eapp ( s2e1, list_nil() ) => ABSRECFLDunknown(s2e0) | S2Eapp ( s2e1, list_cons(s2e2, _) ) => ( case+ s2e1.s2exp_node of // case+ | S2Ecst(s2c1) => let val name = s2cst_get_name(s2c1) in case+ 0 of // | _ when is_get(name) => ABSRECFLDget(s2e2) | _ when is_set(name) => ABSRECFLDset(s2e2) | _ when is_getset(name) => ABSRECFLDgetset(s2e2) // | _ when is_exch(name) => ABSRECFLDexch(s2e2) // (* | _ when is_vtget0(name) => ABSRECFLDvtget0(s2e2) | _ when is_vtget1(name) => ABSRECFLDvtget1(s2e2) *) // | _ when is_getref(name) => ABSRECFLDgetref(s2e2) // | _(* unrecognized *) => ABSRECFLDunknown(s2e0) // end (* end of [S2Ecst] *) | _(*non-S2Ecst*) => ABSRECFLDunknown(s2e0) ) | _(*non-S2Eapp*) => ABSRECFLDunknown(s2e0) // end // end of [absrecfld_of_s2exp] // (* ****** ****** *) // extern fun absrec_emit_tyrecfld ( out: FILEref , s2c0: s2cst, tnm: string, ls2e: labs2exp ) : void // end of [absrec_emit_tyrecfld] // implement absrec_emit_tyrecfld ( out, s2c0, tnm, ls2e ) = let // val SLABELED (l0, _, s2e) = ls2e // val fld = absrecfld_of_s2exp(s2e) // fun auxproc ( fld: absrecfld ) : void = let // fun auxdecl ( fnm: string, s2e: s2exp ) : void = { // val s2t0 = s2cst_get_srt(s2c0) val- Some(s2def) = s2cst_get_def(s2c0) // val () = fprint!(out, "extern\nfun{}\n") // val () = fprint! ( out, tnm, fnm, "_", l0 ) (* fprint! *) val () = absrec_emit_tydef_uni(out, s2def) // val () = fprint!(out, " : absrec_", fnm, "_fun_") // val islin = s2rt_is_lin_fun(s2t0) val isboxed = s2rt_is_boxed_fun(s2t0) val () = if isboxed then ( // if ~islin then fprint(out, "type") else fprint(out, "vtype") // ) (* end of [then] *) else ( // if ~islin then fprint(out, "t0ype") else fprint(out, "vt0ype") // ) (* end of [else] *) // val () = fprint(out, "(") // val () = fprint!(out, s2c0) val () = absrec_emit_tydef_arg(out, s2def) // val () = fprint!(out, ", ") val () = codegen2_emit_s2exp(out, s2e) val () = fprint(out, ")\n") // } (* end of [auxdecl] *) // in // case+ fld of // | ABSRECFLDget(s2e) => { val () = auxdecl("get", s2e) val () = fprint!(out, "overload ", ".", l0, " with ", tnm, "get_", l0, "\n") val ((*void*)) = fprint_newline(out) } // | ABSRECFLDset(s2e) => { val () = auxdecl("set", s2e) val () = fprint!(out, "overload ", ".", l0, " with ", tnm, "set_", l0, "\n") val ((*void*)) = fprint_newline(out) } // | ABSRECFLDgetset(s2e) => { val () = auxdecl("get", s2e) val () = fprint!(out, "overload ", ".", l0, " with ", tnm, "get_", l0, "\n") val () = auxdecl("set", s2e) val () = fprint!(out, "overload ", ".", l0, " with ", tnm, "set_", l0, "\n") val ((*void*)) = fprint_newline(out) } // | ABSRECFLDexch(s2e) => { val () = auxdecl("exec", s2e) val ((*void*)) = fprint_newline(out) } // | ABSRECFLDgetref(s2e) => { val () = auxdecl("getref", s2e) val ((*void*)) = fprint_newline(out) } // | _(*rest-of-absrecfld*) => () // end // end of [auxproc] // in // auxproc(fld) // end (* end of [absrec_emit_tyrecfld] *) // (* ****** ****** *) // extern fun absrec_emit_tyrecfldlst ( out: FILEref , s2c0: s2cst, tnm: string, ls2es: labs2explst ) : void // end of [absrec_emit_tyrecfldlst] // implement absrec_emit_tyrecfldlst ( out, s2c0, tnm, ls2es ) = ( // case+ ls2es of | list_nil() => () | list_cons(ls2e, ls2es) => { val () = absrec_emit_tyrecfld(out, s2c0, tnm, ls2e) val () = absrec_emit_tyrecfldlst(out, s2c0, tnm, ls2es) } (* end of [list_cons] *) // ) (* end of [absrec_emit_tyrecfldlst] *) // (* ****** ****** *) // extern fun absrec_s2cst_get_tyrec ( s2c0: s2cst ) : s2expopt_vt // implement absrec_s2cst_get_tyrec (s2c0) = let // fun auxget ( s2e0: s2exp ) : s2expopt_vt = let // (* val () = print!("absrec_s2cst_get_tyrec") val () = println!(": auxget: s2e0 = ", s2e0) *) // in // case+ s2e0.s2exp_node of // case+ | S2Etyrec _ => Some_vt(s2e0) | S2Elam(s2vs, s2e) => auxget(s2e) (* | S2Eexi(s2vs, s2ps, s2e) => auxget(s2e) *) | _(*rest-of-s2exp*) => None_vt(*void*) // end // end of [auxget] // val-Some(s2e0) = s2cst_get_def(s2c0) // in auxget(s2e0) end // end of [absrec_s2cst_get_tyrec] (* ****** ****** *) local fun auxerr_nil ( out: FILEref, d2c0: d2ecl ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): absrec: no spec on typedef is given\n" ) (* end of [val] *) // val () = fprintln! (out, "*)") // } (* end of [auxerr_nil] *) fun auxerr_s2cst ( out: FILEref, d2c0: d2ecl ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): absrec: no typedef of the given spec\n" ) (* end of [val] *) // val () = fprintln! (out, "*)") // } (* end of [auxerr_s2cst] *) fun auxerr_s2cst_tyrec ( out: FILEref, d2c0: d2ecl, s2c: s2cst ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): absrec: [", s2c, "] does not refer to a record\n" ) (* end of [val] *) // val () = fprintln! (out, "*)") // } (* end of [auxerr_s2cst_tyrec] *) fun aux_tydef ( out: FILEref , d2c0: d2ecl , s2c0: s2cst, xs: e1xplst ) : void = let // (* val () = println! ( // "codegen2_absrec: aux_tydef: s2c0 = ", s2c0 // ) (* println! *) *) // val opt = absrec_s2cst_get_tyrec(s2c0) // in // case+ opt of | ~None_vt() => auxerr_s2cst_tyrec(out, d2c0, s2c0) | ~Some_vt(s2rec) => aux_tydef_tyrec(out, d2c0, s2c0, s2rec, xs) // end (* end of [aux_tydef] *) and aux_tydef_tyrec ( out: FILEref , d0c0: d2ecl , s2c0: s2cst , s2rec: s2exp, xs: e1xplst ) : void = let // (* val () = println! ( "codegen2_absrec: aux_tydef_tyrec: s2rec = ", s2rec ) (* println! *) *) // val tnm = ( // case+ xs of | list_nil() => s2cst_get_name(s2c0) // list_nil | list_cons(x0, _) => ( case+ x0.e1xp_node of // case+ | E1XPide(id) => $SYM.symbol_get_name(id) // E1XPide | E1XPstring(name) => name | _(*unrecogized*) => string0_append(s2cst_get_name(s2c0), "_") ) // ) : string // end of [val] // val- S2Etyrec (knd, npf, ls2es) = s2rec.s2exp_node // in absrec_emit_tyrecfldlst(out, s2c0, tnm, ls2es) end // end of [aux_tydef_tyrec] in (* in-of-local *) implement codegen2_absrec (out, d2c0, xs) = let // (* val () = println! ("codegen2_absrec: d2c0 = ", d2c0) *) // in // case+ xs of | list_nil() => auxerr_nil(out, d2c0) // end of [list_nil] | list_cons(x, xs) => let val opt = codegen2_get_tydef(x) in case+ opt of | ~None_vt() => auxerr_s2cst(out, d2c0) | ~Some_vt(s2c) => aux_tydef(out, d2c0, s2c, xs) end // end of [list_cons] // end // end of [codegen2_absrec] end // end of [local] (* ****** ****** *) (* end of [pats_codegen2_absrec.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_filename_reloc.dats0000644000175000017500000002170713431250607022330 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: September, 2013 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*UN*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) staload UT = "./pats_utils.sats" (* ****** ****** *) staload GLOB = "./pats_global.sats" (* ****** ****** *) staload FIL = "./pats_filename.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" (* ****** ****** *) staload SYN = "./pats_syntax.sats" (* ****** ****** *) // staload S1E = "./pats_staexp1.sats" // typedef e1xp = $S1E.e1xp typedef v1al = $S1E.v1al overload print with $S1E.print_e1xp // (* ****** ****** *) staload TRENV1 = "./pats_trans1_env.sats" (* ****** ****** *) (* typedef pkginfo = @{ // pkgname=string , pkgauthor=stropt , pkgauthoremail=stropt , pkgsrcloc=string , pkgdstloc=stropt // } (* end of [pkginfo] *) *) (* ****** ****** *) local // extern fun my_copy_string ( origin: string ) : strptr1 = "mac#atspre_string_copy" // extern fun my_make_substring ( origin: string, start: size_t, length: size_t ) : strptr1 = "mac#atspre_string_make_substring" // in (* in-of-local *) (* ****** ****** *) // extern fun pkgsrcname_get_gurl0 (given: string, ngurl: int): Strptr1 implement pkgsrcname_get_gurl0 (given, ngurl) = let // val start = $UN.cast2size(1) val length = $UN.cast2size(ngurl - 2) // in my_make_substring (given, start, length) end // end of [pkgsrcname_get_gurl0] // (* ****** ****** *) // extern fun pkgsrcname_get_gurl1 (given: string, ngurl: int): Strptr1 implement pkgsrcname_get_gurl1 (given, ngurl) = my_copy_string("$PATSRELOCROOT") // (* ****** ****** *) extern fun pkgsrcname_get2_gurl0 (given: string, ngurl: int): Strptr1 implement pkgsrcname_get2_gurl0 (given, ngurl) = let // val p0 = $UN.cast2ptr(given) val c1 = $UN.ptr0_get(add_ptr_int(p0, 1)) // in // case+ 0 of | _ when c1 = '$' => let val start = $UN.cast2size(2) val length = $UN.cast2size(ngurl - 3) // val key = my_make_substring(given, start, length) val key2 = sprintf("%s_sourceloc", @($UN.castvwtp1{string}(key))) // end of [val] // val () = strptr_free(key) val key2 = string_of_strptr(key2) val key2 = $SYM.symbol_make_string(key2) val opt2 = $TRENV1.the_e1xpenv_find(key2) in case+ opt2 of | ~None_vt() => pkgsrcname_get_gurl0(given, ngurl) // end of [None_vt] | ~Some_vt(e) => ( case+ e.e1xp_node of | $S1E.E1XPstring(x) => my_copy_string(x) | _ (*non-E1XPstring*) => pkgsrcname_get_gurl0(given, ngurl) ) (* end of [Some_vt] *) end // end of [variable] // | _ (*nonvariable*) => pkgsrcname_get_gurl0 (given, ngurl) // end // end of [pkgsrcname_get2_gurl0] (* ****** ****** *) extern fun pkgsrcname_get2_gurl1 (given: string, ngurl: int): Strptr1 implement pkgsrcname_get2_gurl1 (given, ngurl) = let // val p0 = $UN.cast2ptr (given) val c1 = $UN.ptr0_get (add_ptr_int (p0, 1)) // in // case+ 0 of | _ when c1 = '$' => let val start = $UN.cast2size(2) val length = $UN.cast2size(ngurl - 3) val key = my_make_substring(given, start, length) val key2 = sprintf("%s_targetloc", @($UN.castvwtp1{string}(key))) // end of [val] val () = strptr_free(key) val key2 = string_of_strptr(key2) (* val () = println! ("key2 = ", key2) *) val key2 = $SYM.symbol_make_string(key2) val opt2 = $TRENV1.the_e1xpenv_find(key2) in case+ opt2 of | ~None_vt() => pkgsrcname_get_gurl1(given, ngurl) // end of [None_vt] | ~Some_vt(e) => ( case+ e.e1xp_node of | $S1E.E1XPstring(x) => my_copy_string(x) | _ (*non-E1XPstring*) => pkgsrcname_get_gurl1(given, ngurl) ) (* end of [Some_vt] *) end // end of [variable] // | _ (*nonvariable*) => pkgsrcname_get_gurl1(given, ngurl) // end // end of [pkgsrcname_get2_gurl1] (* ****** ****** *) // extern fun pkgsrcname_eval (given: string): string // implement pkgsrcname_eval (given) = let // #define NDEPTH 100 // fun isalnum_ (c: char): bool = if char_isalnum(c) then true else (c = '_') // fun auxtrav ( p0: ptr, n: int ) : int = let val c0 = $UN.ptr0_get(p0) in // if isalnum_(c0) then ( auxtrav(add_ptr_int(p0, 1), n+1) ) else (n) // end of [if] // end (* end of [auxtrav] *) // fun auxeval0 ( given: string, ndepth: int ) : string = ( if ndepth < NDEPTH then auxeval1(given, ndepth) else given ) (* end of [auxeval0] *) // and auxeval1 ( given: string, ndepth: int ) : string = let // val p0 = $UN.cast2ptr(given) val c0 = $UN.ptr0_get(p0) // (* val () = println! ("pkgsrcname_eval: auxeval1: given = ", given) *) in // case+ c0 of | _ when c0 = '$' => let val p1 = add_ptr_int(p0, 1) val nk = auxtrav(p1, 0(*n*)) val st0 = $UN.cast2size(1) val len = $UN.cast2size(nk) val key = my_make_substring(given, st0, len) // end of [val] val key = string_of_strptr(key) (* val () = println! ("pkgsrcname_eval: auxeval1: key = ", key) // end of [val] *) val key = $SYM.symbol_make_string(key) val opt = $TRENV1.the_e1xpenv_find(key) // (* val ((*void*)) = let val opt = $UN.option_vt2t{e1xp}(opt) in case+ opt of | None() => println! ("pkgsrcname_eval: auxeval1: opt = None()") | Some(e) => println! ("pkgsrcname_eval: auxeval1: opt = Some(", e, ")") end // end of [let] // end of [val] *) // in case+ opt of | ~None_vt() => ( given ) (* end of [None_vt] *) | ~Some_vt(e) => ( case+ e.e1xp_node of | $S1E.E1XPstring(x) => let val pnk = add_ptr_int(p1, nk) val given2 = sprintf("%s%s", @(x, $UN.cast{string}(pnk))) in auxeval0(string_of_strptr(given2), ndepth+1) end (* end of [E1XPstring] *) | _ (*non-E1XPstring*) => given ) (* end of [Some_vt] *) end // end of [variable] | _ (*nonvariable*) => given // end // end of [auxeval1] // in auxeval0(given, 0(*ndepth*)) end // end of [pkgsrcname_eval] (* ****** ****** *) end // end of [local] (* ****** ****** *) implement $FIL.pkgsrcname_relocatize (given, ngurl) = let // val srcd0c = $GLOB.the_ATSRELOC_get_decl() // (* extern fun PATSHOME_get(): string = "ext#patsopt_PATSHOME_get" extern fun PATSCONTRIB_get(): Stropt = "ext#patsopt_PATSCONTRIB_get" *) // in // if (ngurl < 0) then let // val ((*void*)) = if srcd0c > null then { val srcd0c = $UN.cast{$SYN.d0ecl}(srcd0c) val ((*void*)) = $TRENV1.the_atsreloc_insert(srcd0c, given) } (* end of [if] *) // end of [val] // in given // target end // end of [then] else let // val p0 = $UN.cast2ptr(given) val p_ngurl = add_ptr_int(p0, ngurl) val p_ngurl = $UN.cast{string}(p_ngurl) // val dirsep = $FIL.theDirSep_get () // val gurl_t = // target pkgsrcname_get2_gurl1(given, ngurl) // val gurl_t_ = $UN.castvwtp1{string}(gurl_t) val given2_t = $UT.dirpath_append(gurl_t_, p_ngurl, dirsep) // val ((*freed*)) = strptr_free(gurl_t) // val given2_t = pkgsrcname_eval(string_of_strptr(given2_t)) // val () = if (srcd0c > null) then { // val gurl_s = // source pkgsrcname_get2_gurl0(given, ngurl) // val gurl_s_ = $UN.castvwtp1{string}(gurl_s) val given2_s = $UT.dirpath_append(gurl_s_, p_ngurl, dirsep) // val ((*freed*)) = strptr_free(gurl_s) // val given2_s = pkgsrcname_eval(string_of_strptr(given2_s)) // val srcd0c = $UN.cast{$SYN.d0ecl}(srcd0c) val ((*void*)) = $TRENV1.the_atsreloc_insert2(srcd0c, given2_s, given2_t) // } (* end of [if] *) // end of [val] // (* val () = println! ( "$FIL.pkgsrcname_relocatize: given2_t = ", given2_t ) (* println! *) *) // in given2_t // target end // end of [else] // end // end of [pkgsrcname_relocatize] (* ****** ****** *) (* end of [pats_filename_reloc.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3.dats0000644000175000017500000006131113431250607021626 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_constraint3" (* ****** ****** *) staload "./pats_intinf.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_trans3_env.sats" (* ****** ****** *) staload "./pats_constraint3.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) implement s3exp_err (s2t) = S3Eerr (s2t) (* ****** ****** *) implement s3exp_var (s2v) = let val isb = s2var_is_bool (s2v) in if isb then S3Ebvar (s2v) else S3Evar (s2v) end // end of [s3exp_var] (* ****** ****** *) implement s3exp_bvar (s2v) = S3Ebvar (s2v) (* ****** ****** *) implement s3exp_cst (s2c) = S3Ecst (s2c) (* ****** ****** *) implement s3exp_app (_fun, _arg) = S3Eapp (_fun, _arg) (* ****** ****** *) // implement s3exp_null = S3Enull () implement s3exp_unit = S3Enull () // implement s3exp_true = S3Ebool (true) implement s3exp_false = S3Ebool (false) // implement intinf_0 = intinf_make_int (0) implement intinf_1 = intinf_make_int (1) implement intinf_2 = intinf_make_int (2) implement intinf_neg_1 = intinf_make_int (~1) // implement s3exp_0 = S3Enull () implement s3exp_1 = S3Eunit () implement s3exp_2 = s3exp_intinf (intinf_2) implement s3exp_neg_1 = s3exp_intinf (intinf_neg_1) // (* ****** ****** *) implement s3exp_bool (b) = if b then s3exp_true else s3exp_false // end of [s3exp_bool] (* ****** ****** *) implement s3exp_get_srt (s3e) = let in // case+ s3e of | S3Evar (s2v) => s2var_get_srt (s2v) | S3Ecst (s2c) => s2cst_get_srt (s2c) | S3Enull () => s2rt_int | S3Eunit () => s2rt_int | S3Ebool (b) => s2rt_bool // | S3Ebvar _ => s2rt_bool | S3Ebneg _ => s2rt_bool | S3Ebadd _ => s2rt_bool | S3Ebmul _ => s2rt_bool | S3Ebeq _ => s2rt_bool | S3Ebneq _ => s2rt_bool | S3Ebineq _ => s2rt_bool // | S3Ebdom _ => s2rt_bool // | S3Eiatm _ => s2rt_int | S3Eicff _ => s2rt_int | S3Eisum _ => s2rt_int | S3Eimul _ => s2rt_int // | S3Esizeof _ => s2rt_int // | S3Eapp (s3e_fun, _) => s2t where { val-S2RTfun (_, s2t) = s3exp_get_srt (s3e_fun) } // end of [S3Eapp] // | S3Eerr (s2t) => s2t // end // end of [s3exp_get_srt] (* ****** ****** *) implement s3exp_get_fvs (s3e0) = let // viewtypedef res = s2varset_vt fun loop (res: res, s3e0: s3exp): res = let in // case+ s3e0 of | S3Evar (s2v) => s2varset_vt_add (res, s2v) | S3Ecst _ => res | S3Enull _ => res | S3Eunit _ => res | S3Ebool _ => res // | S3Ebvar (s2v) => s2varset_vt_add (res, s2v) | S3Ebneg (s3e) => loop (res, s3e) | S3Ebadd (s3e1, s3e2) => let val res = loop (res, s3e1) in loop (res, s3e2) end // end of [S3Ebadd] | S3Ebmul (s3e1, s3e2) => let val res = loop (res, s3e1) in loop (res, s3e2) end // end of [S3Ebmul] | S3Ebeq (s3e1, s3e2) => let val res = loop (res, s3e1) in loop (res, s3e2) end // end of [S3Ebeq] | S3Ebneq (s3e1, s3e2) => let val res = loop (res, s3e1) in loop (res, s3e2) end // end of [S3Ebneq] | S3Ebineq (_, s3e) => loop (res, s3e) // | S3Ebdom (s2v) => s2varset_vt_add (res, s2v) // | S3Eiatm (s2vs) => let fun traux ( res: s2varset_vt, xs: s2varlst_vt ) : s2varset_vt = case+ xs of | ~list_vt_cons (x, xs) => let val res = s2varset_vt_add (res, x) in traux (res, xs) end // end of [list_vt_cons] | ~list_vt_nil () => res // end of [traux] in traux (res, s2varmset_listize (s2vs)) end // end of [S3Eiatm] | S3Eicff (_, s3e) => loop (res, s3e) | S3Eisum (s3es) => list_fold_left_fun (loop, res, s3es) // end of [S3Eisum] | S3Eimul (s3e1, s3e2) => let val res = loop (res, s3e1) in loop (res, s3e2) end // end of [S3Eimul] // | S3Esizeof _ => res // | S3Eapp (s3e1, s3es2) => let val res = loop (res, s3e1) in list_fold_left_fun (loop, res, s3es2) end // end of [S3Eapp] // | S3Eerr (s2t) => res // end // end of [loop] // val res = s2varset_vt_nil () // in loop (res, s3e0) end // end of [s3exp_get_fvs] (* ****** ****** *) implement s3exp_syneq (x1, x2) = let in // case+ x1 of | S3Evar s2v1 => ( case+ x2 of S3Evar s2v2 => s2v1 = s2v2 | _ => false ) // end of [S3Evar] | S3Ecst s2c1 => ( case+ x2 of S3Ecst s2c2 => s2c1 = s2c2 | _ => false ) // end of [S3Ecst] // | S3Enull () => ( case+ x2 of S3Enull () => true | _ => false ) // end of [S3Enull] | S3Eunit () => ( case+ x2 of S3Eunit () => true | _ => false ) // end of [S3Eunit] | S3Ebool b1 => ( case+ x2 of S3Ebool b2 => b1 = b2 | _ => false ) // end of [S3Ebool] // | S3Ebvar (s2v1) => ( case+ x2 of S3Ebvar (s2v2) => s2v1 = s2v2 | _ => false ) // end of [S3Ebvar] // | S3Ebneg (x1) => ( case+ x2 of S3Ebneg (x2) => s3exp_syneq (x1, x2) | _ => false ) // end of [S3Ebneg] // | S3Ebadd (x11, x12) => ( case+ x2 of | S3Ebadd (x21, x22) => if s3exp_syneq (x11, x21) then s3exp_syneq (x12, x22) else false | _ => false // end of [_] ) (* end of [S3Ebadd] *) | S3Ebmul (x11, x12) => ( case+ x2 of | S3Ebmul (x21, x22) => if s3exp_syneq (x11, x21) then s3exp_syneq (x12, x22) else false | _ => false // end of [_] ) (* end of [S3Ebmul] *) // | S3Ebeq (x11, x12) => ( case+ x2 of | S3Ebeq (x21, x22) => if s3exp_syneq (x11, x21) then s3exp_syneq (x12, x22) else false | _ => false // end of [_] ) (* end of [S3Ebeq] *) | S3Ebneq (x11, x12) => ( case+ x2 of | S3Ebneq (x21, x22) => if s3exp_syneq (x11, x21) then s3exp_syneq (x12, x22) else false | _ => false // end of [_] ) (* end of [S3Ebneq] *) // | S3Ebineq (knd1, x1) => (case+ x2 of | S3Ebineq (knd2, x2) => if knd1 = knd2 then s3exp_syneq (x1, x2) else false | _ => false // end of [_] ) // end of [S3Ebineq] // | S3Ebdom (s2v1) => ( case+ x2 of S3Ebdom (s2v2) => s2v1 = s2v2 | _ => false ) // end of [S3Ebdom] // | S3Eiatm (s2vs1) => ( case+ x2 of | S3Eiatm (s2vs2) => s2varmset_is_equal (s2vs1, s2vs2) | _ => false ) (* end of [S3Eiatm] *) | S3Eicff (c1, x1) => ( case+ x2 of | S3Eicff (c2, x2) => if c1 = c2 then s3exp_syneq (x1, x2) else false | _ => false // end of [_] ) (* end of [S3Eicff] *) | S3Eisum (xs1) => ( case+ x2 of | S3Eisum (xs2) => s3explst_syneq (xs1, xs2) | _ => false ) (* end of [S3Eiadd] *) | S3Eimul (x11, x12) => ( case+ x2 of | S3Eimul (x21, x22) => if s3exp_syneq (x11, x21) then s3exp_syneq (x12, x22) else false | _ => false // end of [_] ) (* end of [S3Eimul] *) // | S3Esizeof (s2ze1) => ( case+ x2 of | S3Esizeof (s2ze2) => s2zexp_syneq (s2ze1, s2ze2) | _ => false ) (* end of [S3Esizeof] *) // | S3Eapp (x1, xs1) => ( case+ x2 of | S3Eapp (x2, xs2) => if s3exp_syneq (x1, x2) then s3explst_syneq (xs1, xs2) else false | _ => false // end of [_] ) (* end of [S3Eapp] *) // | S3Eerr (s2t) => false // end // end of [s3exp_syneq] (* ****** ****** *) implement s3explst_syneq (xs1, xs2) = ( case+ xs1 of | list_cons (x1, xs1) => ( case+ xs2 of | list_cons (x2, xs2) => if s3exp_syneq (x1, x2) then s3explst_syneq (xs1, xs2) else false | list_nil () => false ) // end of [list_cons] | list_nil () => ( case+ xs2 of list_cons _ => false | list_nil () => true ) (* end of [list_nil] *) ) (* end of [s3explst_syneq] *) (* ****** ****** *) local fun synlt_s2hnf_s2hnf ( s2f1: s2hnf, s2f2: s2hnf ) : bool = let val s2e2 = s2hnf2exp s2f2 (* // val () = ( println! ("synlt_s2hnf_s2hnf: s2f1 = ", s2f1); println! ("synlt_synlt_s2hnf: s2f2 = ", s2f2); ) (* end of [val] *) *) in case+ s2e2.s2exp_node of | S2Eapp (_, s2es2) => synlte_s2hnf_s2explst (s2f1, s2es2) | _ => false end // end pf [s2exp_synlt] and synlte_s2hnf_s2hnf ( s2f1: s2hnf, s2f2: s2hnf ) : bool = s2hnf_syneq (s2f1, s2f2) orelse synlt_s2hnf_s2hnf (s2f1, s2f2) (* end of [synlte_s2hnf_s2hnf] *) // // HX-2012-02: // [s2f1] <= at least one of [s2es2] // and synlte_s2hnf_s2explst ( s2f1: s2hnf, s2es2: s2explst ): bool = case+ s2es2 of | list_cons (s2e2, s2es2) => let val s2f2 = s2exp2hnf (s2e2) in if synlte_s2hnf_s2hnf (s2f1, s2f2) then true else synlte_s2hnf_s2explst (s2f1, s2es2) // end of [if] end // end of [list_cons] | list_nil () => false // end of [synlte_s2hnf_s2explst] in (* in of [local] *) fun s2exp_synlt ( s2e1: s2exp, s2e2: s2exp ) : bool = let val s2f1 = s2exp2hnf (s2e1) and s2f2 = s2exp2hnf (s2e2) in synlt_s2hnf_s2hnf (s2f1, s2f2) end // end of [s2exp_synlt] fun s2exp_synlte ( s2e1: s2exp, s2e2: s2exp ) : bool = let val s2f1 = s2exp2hnf (s2e1) and s2f2 = s2exp2hnf (s2e2) in synlte_s2hnf_s2hnf (s2f1, s2f2) end // end of [s2exp_synlt] end // end of [local] (* ****** ****** *) local fun auxlt ( isint: bool , s2e1: s2exp, s2e2: s2exp , lt: &int(0) >> int ) : s2exp = if isint then s2exp_intlt (s2e1, s2e2) else let val islt = s2exp_synlt (s2e1, s2e2) val () = (if islt then lt := 1 else lt := ~1): void in s2exp_bool (islt) end // end of [if] // end of [auxlt] // fun auxlte ( isint: bool , s2e1: s2exp, s2e2: s2exp , lte: &int(0) >> int ) : s2exp = if isint then s2exp_intlte (s2e1, s2e2) else let val islte = s2exp_synlte (s2e1, s2e2) val () = (if islte then lte := 1 else lte := ~1): void in s2exp_bool (islte) end // end of [if] // fun auxlst ( s2es1: s2explst, s2es2: s2explst ) : s2exp = let (* // val () = ( println! ("s2exp_metdec_reduce: auxlst: s2es1 = ", s2es1); println! ("s2exp_metdec_reduce: auxlst: s2es2 = ", s2es2); ) (* end of [val] *) *) in // case+ s2es1 of | list_cons (s2e1, s2es1) => let var lt: int = 0 and lte: int = 0 in case+ s2es2 of | list_cons (s2e2, s2es2) => let val isint = s2rt_is_int (s2e1.s2exp_srt) val s2p_lt = auxlt (isint, s2e1, s2e2, lt) in case+ lt of | _ when lt > 0 => s2p_lt (*true*) | _ when lt = 0 => let val s2p_lte = auxlte (isint, s2e1, s2e2, lte) // end of [val] val s2p_rest = auxlst (s2es1, s2es2) in s2exp_badd (s2p_lt, s2exp_bmul (s2p_lte, s2p_rest)) end // end of [lt = 0] | _ (* lt < 0 *) => let val s2p_lte = auxlte (isint, s2e1, s2e2, lte) // end of [val] in if lte >= 0 then auxlst (s2es1, s2es2) else s2p_lte (*false*) // end of [if] end // end of [lt < 0] end // end of [list_cons] | list_nil () => s2exp_bool (true) end (* end of [list_cons] *) | list_nil () => s2exp_bool (false) // end // end of [auxlst] in (* in of [local] *) fun s2exp_metdec_reduce (met: s2explst, met_bound: s2explst): s2exp = auxlst (met, met_bound) // end of [s2exp_metdec_reduce] end // end of [local] (* ****** ****** *) local fun auxeq ( env: &s2vbcfenv, s2e1: s2exp, s2e2: s2exp ) : s3exp = let // val s2t1 = s2e1.s2exp_srt val s3e1 = s3exp_make (env, s2e1) and s3e2 = s3exp_make (env, s2e2) // (* val () = println! ("auxeq: s3e1 = ", s3e1) and () = println! ("auxeq: s3e2 = ", s3e2) *) // in // case+ 0 of | _ when s2rt_is_int (s2t1) => s3exp_ieq (s3e1, s3e2) | _ when s2rt_is_addr (s2t1) => s3exp_ieq (s3e1, s3e2) | _ when s2rt_is_bool (s2t1) => s3exp_beq (s3e1, s3e2) (* | _ when s2rt_is_char (s2t1) => s3exp_ieq (s3e1, s3e2) *) | _ => ( if s2exp_syneq (s2e1, s2e2) then s3exp_true else s3exp_err (s2rt_bool) ) // end of [_] // end // end of [auxeq] fun auxbind ( loc0: location , env: &s2vbcfenv, s2v1: s2var, s2e2: s2exp ) : s3exp = let (* val () = ( println! ("auxbind: s2v1 = ", s2v1); println! ("auxbind: s2e2 = ", s2e2); ) (* end of [val] *) *) // val s2e1 = s2exp_var (s2v1) val s3be = auxeq (env, s2e1, s2e2) val s2f2 = s2exp2hnf (s2e2) val () = trans3_env_hypadd_bind (loc0, s2v1, s2f2) // in s3be end // end of [aux_bind] in (* in of [local] *) implement s3exp_make (env, s2e0) = let val s2f0 = s2exp2hnf (s2e0) val s2e0 = s2hnf2exp (s2f0) (* val () = begin print "s3exp_make: s2e0 = "; pprint_s2exp (s2e0); print_newline () end // end of [val] *) in // case+ s2e0.s2exp_node of // | S2Evar s2v => s3exp_var (s2v) // | S2Eint i => s3exp_int (i) | S2Eintinf (int) => s3exp_intinf (int) // | S2Ecst s2c => (case+ s2c of | _ when s2cstref_equ_cst (the_null_addr, s2c) => s3exp_null | _ when s2cstref_equ_cst (the_true_bool, s2c) => s3exp_true | _ when s2cstref_equ_cst (the_false_bool, s2c) => s3exp_false (* | _ => let val () = s2vbcfenv_add_scst (env, s2c) in s3exp_cst (s2c) end (* end of [_] *) *) | _ (*non-primitive-cst*) => s3exp_cst (s2c) ) (* end of [S2Ecst] *) // | S2Eapp (s2e1, s2es2) => ( case+ s2e1.s2exp_node of | S2Ecst s2c1 => s3exp_make_s2cst_s2explst (env, s2c1, s2es2) // end of [S2Ecst] | _ (*non-cst*) => let val s3e1 = s3exp_make (env, s2e1) val s3es2 = s3explst_make (env, s2es2) in S3Eapp (s3e1, s3es2) end // end of [non-cst] ) (* end of [S2Eapp] *) | S2Eeqeq (s2e1, s2e2) => auxeq (env, s2e1, s2e2) | S2Emetdec (met, met_bound) => let val s2e_met = s2exp_metdec_reduce (met, met_bound) in s3exp_make (env, s2e_met) end // end of [S3Emetdec] | S2Esizeof (s2e) => let val s2ze = s2zexp_make_s2exp (s2e) in S3Esizeof (s2ze) end // end of [S2Esizeof] // | _ => let // an expression that cannot be handled (* val () = begin prerr "warning(3): s3exp_make: s2e0 = "; prerr_s2exp (s2e0); prerr_newline (); end // end of [val] *) in s3exp_err (s2e0.s2exp_srt) end // end of [_] // end // end of [s3exp_make] implement s3exp_make_h3ypo (env, h3p) = ( case+ h3p.h3ypo_node of | H3YPOprop s2p => s3exp_make (env, s2p) | H3YPObind (s2v1, s2e2) => auxbind (h3p.h3ypo_loc, env, s2v1, s2e2) | H3YPOeqeq (s2e1, s2e2) => auxeq (env, s2e1, s2e2) ) // end of [s3exp_make_h3ypo] end // end of [local] (* ****** ****** *) implement s3explst_make (env, s2es) = let macdef f (x) = s3exp_make (env, ,(x)) in // case+ s2es of | list_cons (s2e, s2es) => list_cons (f (s2e), s3explst_make (env, s2es)) | list_nil () => list_nil () // end // end of [s3explst_make] (* ****** ****** *) local // viewtypedef s3expopt_vt = Option_vt (s3exp) // dataviewtype s2vbclst = | S2VBCFLSTsvar of (s2var, s2vbclst) | S2VBCFLSTsbexp of (s3exp, s2vbclst) | S2VBCFLSTcons of ( s2cst(*scf*), s3explst(*arg*), s2var(*res*), s3expopt_vt(*rel*), s2vbclst ) // end of [S2VBCFLSTcons] | S2VBCFLSTnonlin of (s2var, s3exp, s2vbclst) | S2VBCFLSTmark of s2vbclst | S2VBCFLSTnil of () // end of [s2vbclst] assume s2vbcfenv_viewtype = s2vbclst assume s2vbcfenv_push_v = unit_v in (* in of [local] *) implement s2vbcfenv_nil () = S2VBCFLSTnil () implement s2vbcfenv_free (env) = ( case+ env of | ~S2VBCFLSTsvar (_, env) => s2vbcfenv_free (env) | ~S2VBCFLSTsbexp (_, env) => s2vbcfenv_free (env) | ~S2VBCFLSTcons (_, _, _, opt, env) => let val () = option_vt_free (opt) in s2vbcfenv_free (env) end // end of [S2VBCFLSTcons] | ~S2VBCFLSTnonlin (_, _, env) => s2vbcfenv_free (env) | ~S2VBCFLSTmark (env) => s2vbcfenv_free (env) | ~S2VBCFLSTnil () => () ) // end of [s2vbcfenv_free] implement s2vbcfenv_pop (pf | env) = let fun aux ( env: s2vbclst ) : s2vbclst = case+ env of | ~S2VBCFLSTsvar (_, env) => aux (env) | ~S2VBCFLSTsbexp (_, env) => aux (env) | ~S2VBCFLSTcons (_, _, _, opt, env) => let val () = option_vt_free (opt) in aux (env) end (* end of [S2VBCFLSTcons] *) | ~S2VBCFLSTnonlin (_, _, env) => aux (env) | ~S2VBCFLSTmark (env) => env // HX: pop is done | ~S2VBCFLSTnil () => S2VBCFLSTnil () // end of [aux] prval unit_v () = pf in env := aux (env) end (* end of [s2vbcflst_pop] *) implement s2vbcfenv_push (env) = let val () = env := S2VBCFLSTmark (env) in (unit_v () | ()) end // end of [s2vbcfenv_push] (* ****** ****** *) implement s2vbcfenv_find_cstapp (env0, s2c0, s3es0) = let in // case+ env0 of // | S2VBCFLSTsvar (_, !p_env) => let val ans = s2vbcfenv_find_cstapp (!p_env, s2c0, s3es0) in fold@ env0; ans end // end of [S2VBCFLSTsvar] // | S2VBCFLSTsbexp (_, !p_env) => let val ans = s2vbcfenv_find_cstapp (!p_env, s2c0, s3es0) in fold@ env0; ans end // end of [S2VBCFLSTsbexp] // | S2VBCFLSTcons (s2c, s3es, s2v, _, !p_env) => let val test = ( if eq_s2cst_s2cst (s2c0, s2c) then s3explst_syneq (s3es0, s3es) else false // end of [val] ) : bool // end of [val] in if test then let prval () = fold@ env0 in Some_vt (s2v) end else let val ans = s2vbcfenv_find_cstapp (!p_env, s2c0, s3es0) in fold@ env0; ans end (* end of [if] *) end // end of [S2VBCFLSTcons] // | S2VBCFLSTnonlin (_, _, !p_env) => let val ans = s2vbcfenv_find_cstapp (!p_env, s2c0, s3es0) in fold@ env0; ans end // end of [S2VBCFLSTnonlin] // | S2VBCFLSTmark (!p_env) => let val ans = s2vbcfenv_find_cstapp (!p_env, s2c0, s3es0) in fold@ env0; ans end // end of [S2VBCFLSTmark] | S2VBCFLSTnil () => let prval () = fold@ (env0) in None_vt () end // end of [S2VBCFLSTnil] // end // end of [s2vbcfenv_find_cstapp] (* ****** ****** *) implement s2vbcfenv_find_nonlin (env0, s3e0) = let in // case+ env0 of // | S2VBCFLSTsvar (_, !p_env) => let val ans = s2vbcfenv_find_nonlin (!p_env, s3e0) in fold@ env0; ans end // end of [S2VBCFLSTsvar] // | S2VBCFLSTsbexp (_, !p_env) => let val ans = s2vbcfenv_find_nonlin (!p_env, s3e0) in fold@ env0; ans end // end of [S2VBCFLSTsbexp] // | S2VBCFLSTcons (_, _, _, _, !p_env) => let val ans = s2vbcfenv_find_nonlin (!p_env, s3e0) in fold@ env0; ans end // end of [S2VBCFLSTcons] // | S2VBCFLSTnonlin (s2v, s3e, !p_env) => let val test = s3exp_syneq (s3e0, s3e) val ans = ( if test then Some_vt (s2v) else s2vbcfenv_find_nonlin (!p_env, s3e0) // end of [if] ) : Option_vt (s2var) in fold@ env0; ans end // end of [S2VBCFLSTnonlin] // | S2VBCFLSTmark (!p_env) => let val ans = s2vbcfenv_find_nonlin (!p_env, s3e0) in fold@ env0; ans end // end of [S2VBCFLSTmark] | S2VBCFLSTnil () => let prval () = fold@ (env0) in None_vt () end // end of [S2VBCFLSTnil] // end // end of [s2vbcfenv_find_nonlin] (* ****** ****** *) implement s2vbcfenv_extract (env) = let // fun loop ( env: !s2vbcfenv , s2vs: &s2varlst_vt, s3bes: &s3explst_vt ) : void = let in // case+ env of | S2VBCFLSTsvar (s2v, !p_env) => let val () = s2vs := list_vt_cons (s2v, s2vs) val isb = s2var_is_bool (s2v) val () = if isb then s3bes := list_vt_cons (S3Ebdom (s2v), s3bes) // end of [val] val () = loop (!p_env, s2vs, s3bes) in fold@ (env) end // end of [S2VBCFLSTsvar] | S2VBCFLSTsbexp (s3be, !p_env) => let val () = s3bes := list_vt_cons (s3be, s3bes) val () = loop (!p_env, s2vs, s3bes) in fold@ (env) end // end of [S2VBCFLSTsbexp] | S2VBCFLSTcons ( s2c, arg, res, !p_rel, !p_env ) => let val () = ( case+ !p_rel of | Some_vt (s3be) => let prval () = fold@ (!p_rel) in s3bes := list_vt_cons (s3be, s3bes) end // end of [Some_vt] | None_vt () => fold@ (!p_rel) ) : void // end of [val] val () = loop (!p_env, s2vs, s3bes) in fold@ (env) end // end of [S2VBCFLSTcons] | S2VBCFLSTnonlin (s2v, _, !p_env) => let val () = s2vs := list_vt_cons (s2v, s2vs) val () = loop (!p_env, s2vs, s3bes) in fold@ (env) end // end of [S2VBCFLSTnonlin] | S2VBCFLSTmark (!p_env) => let val () = loop (!p_env, s2vs, s3bes) in fold@ (env) end // end of [S2VBCFLSTmark] | S2VBCFLSTnil () => fold@ (env) // end // [end of loop] // var s2vs: s2varlst_vt = list_vt_nil () var s3bes: s3explst_vt = list_vt_nil () val () = loop (env, s2vs, s3bes) // in @(s2vs, s3bes) end // end of [s2vbcfenv_extract] (* ****** ****** *) fun s2vbcfenv_add2_cstapp ( env: &s2vbcfenv // HX: [s2c] is a defined (stadef) constant , s2c: s2cst, arg1: s2explst, arg2: s3explst , s2v: s2var ) : void = let // (* val () = println! ("s2vbcfenv_add2_cstapp: s2c = ", s2c) val () = println! ("s2vbcfenv_add2_cstapp: s2v = ", s2v) *) // val () = env := S2VBCFLSTsvar (s2v, env) // val s2e_cst = s2exp_cst (s2c) val s2e_var = s2exp_var (s2v) val s2es1 = list_extend (arg1, s2e_var) val s2e_rel = s2exp_app_srt (s2rt_bool, s2e_cst, (l2l)s2es1) // val s3be = s3exp_make (env, s2e_rel) // val s3be = s3exp_lintize (env, s3be) // nonlin terms -> vars // in env := S2VBCFLSTcons (s2c, arg2, s2v, Some_vt (s3be), env) end // end of [s2vbcfenv_add2_cstapp] (* ****** ****** *) implement s2vbcfenv_add_svar (env, s2v) = (env := S2VBCFLSTsvar (s2v, env)) // end of [s2vbcfenv_add_svar] implement s2vbcfenv_add_sbexp (env, s3be) = (env := S2VBCFLSTsbexp (s3be, env)) // end of [s2vbcfenv_add_sbexp] implement s2vbcfenv_add_nonlin (env, s2v, s3e) = let (* val () = ( println! ("s2vbcfenv_add_nonlin: s2v = "; s2v); println! ("s2vbcfenv_add_nonlin: s3e = "; s3e); ) (* end of [val] *) *) in env := S2VBCFLSTnonlin (s2v, s3e, env) end // end of [s2vbcfenv_add_nonlin] (* ****** ****** *) end // end of [local] (* ****** ****** *) implement s2vbcfenv_add_cstapp (env, s2c, s2es_arg, s2v) = let (* val () = ( println! ("s2vbcfenv_add: s2c = ", s2c); println! ("s2vbcfenv_add: s2es_arg = ", s2es_arg); println! ("s2vbcfenv_add: s2v = ", s2v); ) (* end of [val] *) *) // val s3es_arg = s3explst_make (env, s2es_arg) // in s2vbcfenv_add2_cstapp (env, s2c, s2es_arg, s3es_arg, s2v) end // end of [s2vbcfenv_add_cstapp] (* ****** ****** *) implement s2vbcfenv_replace_cstapp (env, s2t, s2c, s2es_arg) = let // val s3es_arg = s3explst_make (env, s2es_arg) // val ans = s2vbcfenv_find_cstapp (env, s2c, s3es_arg) // in // case+ ans of | ~Some_vt (s2v) => s2v | ~None_vt ((*void*)) => s2v where { val s2v = s2var_make_srt (s2t) val () = s2vbcfenv_add2_cstapp (env, s2c, s2es_arg, s3es_arg, s2v) } (* end of [None_vt] *) // end // end of [s2vbcfenv_replace_cstapp] (* ****** ****** *) implement s2vbcfenv_replace_nonlin (env, s3e) = let // val ans = s2vbcfenv_find_nonlin (env, s3e) // in // case+ ans of | ~Some_vt (s2v) => s2v | ~None_vt ((*void*)) => s2v where { val s2t = s3exp_get_srt (s3e) val s2v = s2var_make_srt (s2t) val () = s2vbcfenv_add_nonlin (env, s2v, s3e) } (* end of [None_vt] *) // end // end of [s2vbcfenv_replace_nonlin] (* ****** ****** *) local stadef env = s2vbcfenv typedef tfun = (&env, s2explst) - s3exp assume s2cfunmap = s2cstmap (tfun) var the_s2cfunmap: s2cfunmap = s2cstmap_nil ((*void*)) val ( pf_the_s2cfunmap | () ) = vbox_make_view_ptr{s2cfunmap}(view@(the_s2cfunmap) | &the_s2cfunmap) in (* in of [local] *) implement s3exp_make_s2cst_s2explst (env, s2c, s2es) = let (* val () = println! ("s3exp_make_s2cst_s2explst: s2c = ", s2c) val () = println! ("s3exp_make_s2cst_s2explst: s2es = ", s2es) *) val opt = let prval vbox (pf) = pf_the_s2cfunmap in s2cstmap_find (the_s2cfunmap, s2c) end // end of [val] // in // case+ opt of | ~Some_vt f => f (env, s2es) | ~None_vt _ => let val s3e = s3exp_cst (s2c) val s3es = s3explst_make (env, s2es) in s3exp_app (s3e, s3es) end // end of [None_vt] // end // end of [s3exp_make_s2cst_s2explst] (* ****** ****** *) implement constraint3_initialize () = let prval vbox (pf) = pf_the_s2cfunmap in $effmask_ref (constraint3_initialize_map (the_s2cfunmap)) end // end of [constraint3_initialize] (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [pats_constraint3.dats] *) ATS2-Postiats-gmp-0.3.13/./src/CBOOT/0000755000175000017500000000000013431250607016317 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_jsonize_sats.c0000644000175000017500000000720213431250607022226 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONnul_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONint_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONintinf_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONbool_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONfloat_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONstring_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlocation_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONfilename_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlist_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlablist_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONoption_10) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_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_label_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONnul_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONint_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONintinf_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONbool_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONfloat_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONstring_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlocation_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONfilename_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlist_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlablist_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONoption_10.tag = 10 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_jsonize_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_pfman_dats.c0000644000175000017500000024756313431250607024011 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_p3at_loc ; ats_ptr_type atslab_p3at_node ; ats_ptr_type atslab_p3at_type ; ats_ptr_type atslab_p3at_dvaropt ; ats_ptr_type atslab_p3at_type_left ; } anairiats_rec_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_13 ; typedef struct { anairiats_rec_13 atslab_0 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_15 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__LABP3AT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trec_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tlst_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Terrpat_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTcons_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTmark_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTnil_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_make_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_dvaropt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvaropt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_d2varmrklst_get_view_ptr) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_pfmanenv_add_labp3atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__s2exp_search_atview) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_labsexplst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_at) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_tyrec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__pfmanenv_push_v = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTcons_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTmark_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTnil_2) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02395_ () ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type pushenv_2 (ats_int_type arg0) ; static ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_7 (ats_ptr_type arg0) ; static ats_void_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_20 (ats_ptr_type arg0) ; static ats_ptr_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp4) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 1651(line=49, offs=28) -- 1685(line=49, offs=62) */ ATSstaticdec() ats_void_type prerr_FILENAME_02395_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02395_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_env_pfman")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02395_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp3 ; */ tmp3 = arg0 ; tmp2 = atspre_ref_make_elt_tsz ((&tmp3), sizeof(ats_ptr_type)) ; return (tmp2) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 2536(line=99, offs=1) -- 2722(line=108, offs=4) */ ATSstaticdec() ats_void_type pushenv_2 (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_pushenv_2: tmp6 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp8 = ats_ptrget_mac(ats_ptr_type, tmp6) ; tmp7 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp7)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp7, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp7, atslab_1, tmp8) ; ats_ptrget_mac(ats_ptr_type, tmp6) = tmp7 ; return /* (tmp5) */ ; } /* end of [pushenv_2] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 2825(line=115, offs=30) -- 3079(line=124, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_d2varmrklst_get_view_ptr () { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_d2varmrklst_get_view_ptr: tmp9 = ats_castfn_mac(ats_ptr_type, statmp1) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_d2varmrklst_get_view_ptr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 3191(line=130, offs=7) -- 3764(line=148, offs=36) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp13 = &ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp12) ; /* tmp15 = */ atspre_fprint_newline (arg0) ; tmp16 = ats_ptrget_mac(ats_ptr_type, tmp13) ; arg0 = arg0 ; arg1 = tmp16 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp18 = &ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; /* tmp19 = */ atspre_fprintf_exn (arg0, ATSstrcst("D2VMRKLSTmark(%d)"), tmp17) ; /* tmp20 = */ atspre_fprint_newline (arg0) ; tmp21 = ats_ptrget_mac(ats_ptr_type, tmp18) ; arg0 = arg0 ; arg1 = tmp21 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: break ; } while (0) ; return /* (tmp11) */ ; } /* end of [loop_5] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 3173(line=129, offs=21) -- 3944(line=155, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_pfmanenv (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_pfmanenv: /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst("the current pfmanenv is:\n")) ; tmp23 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp24 = ats_ptrget_mac(ats_ptr_type, tmp23) ; /* tmp10 = */ loop_5 (arg0, tmp24) ; return /* (tmp10) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_pfmanenv] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 4087(line=163, offs=7) -- 4270(line=169, offs=42) */ ATSstaticdec() ats_ptr_type loop_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_loop_7: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp27 ; goto __ats_lab_loop_7 ; // tail call break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp26 = tmp28 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp26 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTnil_2) ; break ; } while (0) ; return (tmp26) ; } /* end of [loop_7] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 4028(line=161, offs=3) -- 4386(line=174, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop () { /* local vardec */ // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop: tmp29 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp31 = ats_ptrget_mac(ats_ptr_type, tmp29) ; tmp30 = loop_7 (tmp31) ; ats_ptrget_mac(ats_ptr_type, tmp29) = tmp30 ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 4598(line=184, offs=23) -- 4620(line=184, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_let () { /* local vardec */ // ATSlocal_void (tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_let: /* tmp32 = */ pushenv_2 (1) ; return /* (tmp32) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_let] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 4656(line=187, offs=3) -- 4717(line=187, offs=64) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_lam (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_int_type, tmp34) ; ATSlocal (ats_bool_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_lam: tmp35 = atspre_eq_int_int (arg0, 0) ; if (tmp35) { tmp34 = -1 ; } else { tmp34 = 0 ; } /* end of [if] */ /* tmp33 = */ pushenv_2 (tmp34) ; return /* (tmp33) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_lam] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 4751(line=189, offs=23) -- 4773(line=189, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_try () { /* local vardec */ // ATSlocal_void (tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_try: /* tmp36 = */ pushenv_2 (-1) ; return /* (tmp36) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_try] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 4831(line=195, offs=3) -- 5261(line=216, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp37) ; ATSlocal (ats_bool_type, tmp38) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_bool_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (arg0) ; if (tmp38) { tmp40 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp42 = ats_ptrget_mac(ats_ptr_type, tmp40) ; tmp41 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp41)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp41, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp41, atslab_1, tmp42) ; ats_ptrget_mac(ats_ptr_type, tmp40) = tmp41 ; } else { /* empty */ } /* end of [if] */ tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (arg0) ; if (tmp43) { tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (arg0) ; if (tmp44 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 5092(line=208, offs=7) -- 5126(line=208, offs=41)") ; } tmp45 = ats_caselptrlab_mac(anairiats_sum_3, tmp44, atslab_0) ; tmp46 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp48 = ats_ptrget_mac(ats_ptr_type, tmp46) ; tmp47 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp47)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp47, atslab_0, tmp45) ; ats_selptrset_mac(anairiats_sum_2, tmp47, atslab_1, tmp48) ; ats_ptrget_mac(ats_ptr_type, tmp46) = tmp47 ; } else { /* empty */ } /* end of [if] */ return /* (tmp37) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; // ATSlocal_void (tmp55) ; __ats_lab_loop_15: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp54 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; /* tmp55 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp53, arg2) ; arg0 = tmp54 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_15 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: break ; } while (0) ; return /* (tmp52) */ ; } /* end of [loop_15] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp51) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp51 = */ loop_15 (arg0, arg1, arg2) ; return /* (tmp51) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp50) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp50 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp50) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 5355(line=222, offs=3) -- 5410(line=223, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvarlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvarlst: /* tmp49 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 5488(line=228, offs=3) -- 5576(line=231, offs=18) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvaropt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvaropt: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (tmp57) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: break ; } while (0) ; return /* (tmp56) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvaropt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 5779(line=245, offs=3) -- 6800(line=299, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at: tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_dvaropt (arg0) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvaropt (tmp59) ; tmp61 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_p3at_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp61)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_6, tmp61, atslab_0) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (tmp62) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp61)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_6, tmp61, atslab_0) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (tmp63) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp61)->tag != 2) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_7, tmp61, atslab_3) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst (tmp64) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp61)->tag != 17) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_2, tmp61, atslab_0) ; arg0 = tmp65 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp61)->tag != 3) { goto __ats_lab_15_0 ; } __ats_lab_14_1: break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp61)->tag != 4) { goto __ats_lab_16_0 ; } __ats_lab_15_1: break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp61)->tag != 5) { goto __ats_lab_17_0 ; } __ats_lab_16_1: break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp61)->tag != 6) { goto __ats_lab_18_0 ; } __ats_lab_17_1: break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp61)->tag != 7) { goto __ats_lab_19_0 ; } __ats_lab_18_1: break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp61)->tag != 8) { goto __ats_lab_20_0 ; } __ats_lab_19_1: break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp61)->tag != 9) { goto __ats_lab_21_0 ; } __ats_lab_20_1: break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp61)->tag != 10) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp61)->tag != 11) { goto __ats_lab_23_0 ; } __ats_lab_22_1: break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp61)->tag != 12) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_8, tmp61, atslab_3) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_pfmanenv_add_labp3atlst (tmp66) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp61)->tag != 13) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_9, tmp61, atslab_2) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst (tmp67) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp61)->tag != 14) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_2, tmp61, atslab_0) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_2, tmp61, atslab_1) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (tmp68) ; arg0 = tmp69 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp61)->tag != 15) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_2, tmp61, atslab_1) ; arg0 = tmp71 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at ; // tail call break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp61)->tag != 16) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_6, tmp61, atslab_0) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (tmp72) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (((ats_sum_ptr_type)tmp61)->tag != 18) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: break ; } while (0) ; return /* (tmp58) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 6873(line=303, offs=3) -- 6930(line=303, offs=60) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst: /* tmp73 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at) ; return /* (tmp73) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 7040(line=309, offs=7) -- 7286(line=319, offs=24) */ ATSstaticdec() ats_void_type loop_20 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; __ats_lab_loop_20: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_4, tmp76, atslab_1) ; /* tmp79 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at (tmp78) ; arg0 = tmp77 ; goto __ats_lab_loop_20 ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: break ; } while (0) ; return /* (tmp75) */ ; } /* end of [loop_20] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 7009(line=308, offs=3) -- 7307(line=321, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_pfmanenv_add_labp3atlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_pfmanenv_add_labp3atlst: /* tmp74 = */ loop_20 (arg0) ; return /* (tmp74) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_pfmanenv_add_labp3atlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 8243(line=359, offs=3) -- 8530(line=376, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search: tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg0) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (tmp81 == (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_3, tmp81, atslab_0) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp (arg0, arg1, tmp82, arg2) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (tmp81 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp80 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 8587(line=380, offs=3) -- 8876(line=391, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg2) ; tmp85 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp84), atslab_s2exp_node) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp85)->tag != 12) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_at (arg0, arg1, tmp84, arg3) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp85)->tag != 25) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_tyrec (arg0, arg1, tmp84, arg3) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp83 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 8944(line=395, offs=3) -- 9889(line=428, offs=30) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_labsexplst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_labsexplst: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_36_1: tmp87 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp88 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_11, tmp87, atslab_0) ; tmp90 = ats_caselptrlab_mac(anairiats_sum_11, tmp87, atslab_1) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_11, tmp87, atslab_2) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp (arg0, arg1, tmp91, arg3) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (tmp92 != (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_37_1: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_labsexplst (arg0, arg1, tmp88, arg3) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (tmp93 != (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp86 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (tmp93 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_3, tmp93, atslab_0) ; ATS_FREE(tmp93) ; tmp95 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp95, atslab_0, tmp87) ; ats_selptrset_mac(anairiats_sum_4, tmp95, atslab_1, tmp94) ; tmp86 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp86, atslab_0, tmp95) ; break ; } while (0) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (tmp92 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_3, tmp92, atslab_0) ; ATS_FREE(tmp92) ; tmp98 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp98, atslab_0, tmp89) ; ats_selptrset_mac(anairiats_sum_11, tmp98, atslab_1, tmp90) ; ats_selptrset_mac(anairiats_sum_11, tmp98, atslab_2, tmp96) ; tmp97 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp97, atslab_0, tmp98) ; ats_selptrset_mac(anairiats_sum_4, tmp97, atslab_1, tmp88) ; tmp86 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp86, atslab_0, tmp97) ; break ; } while (0) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp86 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp86) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_labsexplst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 9958(line=433, offs=1) -- 10544(line=469, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_at (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_at: tmp100 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg2), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp100)->tag != 12) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 9997(line=438, offs=1) -- 10030(line=438, offs=34)") ; } tmp101 = ats_caselptrlab_mac(anairiats_sum_2, tmp100, atslab_0) ; tmp102 = ats_caselptrlab_mac(anairiats_sum_2, tmp100, atslab_1) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq (arg1, tmp102) ; if (tmp103) { ats_ptrget_mac(ats_ptr_type, arg3) = tmp101 ; tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp101), atslab_s2exp_srt) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_make_srt (tmp104) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole (tmp105) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp106, tmp102) ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_0, tmp107) ; } else { tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp (arg0, arg1, tmp101, arg3) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (tmp108 != (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp99 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (tmp108 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_3, tmp108, atslab_0) ; ATS_FREE(tmp108) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp109, tmp102) ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_0, tmp110) ; break ; } while (0) ; } /* end of [if] */ return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_at] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 10613(line=473, offs=1) -- 11027(line=496, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_tyrec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_int_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_tyrec: tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg2), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp112)->tag != 25) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 10652(line=478, offs=1) -- 10694(line=478, offs=43)") ; } tmp113 = ats_caselptrlab_mac(anairiats_sum_12, tmp112, atslab_0) ; tmp114 = ats_caselptrlab_mac(anairiats_sum_12, tmp112, atslab_1) ; tmp115 = ats_caselptrlab_mac(anairiats_sum_12, tmp112, atslab_2) ; /* ats_ptr_type tmp116 ; */ tmp116 = (ats_sum_ptr_type)0 ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_labsexplst (arg0, arg1, tmp115, arg3) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (tmp117 != (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp111 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (tmp117 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_3, tmp117, atslab_0) ; ATS_FREE(tmp117) ; tmp119 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg2), atslab_s2exp_srt) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp119, tmp113, tmp114, tmp118) ; tmp111 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp111, atslab_0, tmp120) ; break ; } while (0) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search_sexp_tyrec] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 11208(line=509, offs=1) -- 12149(line=557, offs=4) */ ATSstaticdec() ats_ptr_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (anairiats_rec_13, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_int_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab_loop_27: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_49_0 ; } __ats_lab_46_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp124 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__d2var_search (tmp123, arg1, arg2) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (tmp125 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_3, tmp125, atslab_0) ; ATS_FREE(tmp125) ; tmp127.atslab_0 = tmp123 ; tmp127.atslab_1 = tmp126 ; tmp122 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ats_selptrset_mac(anairiats_sum_14, tmp122, atslab_0, tmp127) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (tmp125 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp128 = ats_ptrget_mac(ats_ptr_type, tmp124) ; arg0 = tmp128 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_27 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp130 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp131 = atspre_gt_int_int (tmp129, 0) ; if (tmp131) { tmp132 = ats_ptrget_mac(ats_ptr_type, tmp130) ; arg0 = tmp132 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_27 ; // tail call } else { tmp122 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp122 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp122) ; } /* end of [loop_27] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_pfman.dats: 11097(line=500, offs=3) -- 12535(line=581, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (anairiats_rec_13, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview: /* ats_ptr_type tmp133 ; */ tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__the_d2varmrklst_get_view_ptr () ; tmp135 = ats_selsin_mac(tmp134, atslab_2) ; tmp137 = ats_ptrget_mac(ats_ptr_type, tmp135) ; tmp136 = loop_27 (tmp137, arg0, (&tmp133)) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (tmp136 != (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp121 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (tmp136 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_14, tmp136, atslab_0) ; ATS_FREE(tmp136) ; tmp140 = ats_select_mac(tmp138, atslab_0) ; tmp141 = ats_select_mac(tmp138, atslab_1) ; tmp139 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp139, atslab_0, tmp140) ; ats_selptrset_mac(anairiats_sum_15, tmp139, atslab_1, tmp141) ; ats_selptrset_mac(anairiats_sum_15, tmp139, atslab_2, tmp133) ; ats_selptrset_mac(anairiats_sum_15, tmp139, atslab_3, arg0) ; tmp121 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp121, atslab_0, tmp139) ; break ; } while (0) ; return (tmp121) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTcons_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTmark_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTnil_2.tag = 2 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp4 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__D2VMRKLSTnil_2) ; statmp1 = ref_01088_ats_ptr_type (statmp4) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_pfman_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_namespace_dats.c0000644000175000017500000007770713431250607022503 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_2 ; typedef struct { anairiats_rec_2 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_2 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type fenvlst_vt_free_0 (ats_ptr_type arg0) ; static ats_void_type fenvlstlst_vt_free_3 (ats_ptr_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type auxlst_7 (ats_clo_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlstlst_8 (ats_clo_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_13 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp8) ; ATSstatic (ats_ptr_type, statmp11) ; ATSstatic (ats_ptr_type, statmp12) ; ATSstatic (ats_ptr_type, statmp13) ; ATSstatic (ats_ptr_type, statmp14) ; ATSstatic (ats_ptr_type, statmp15) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_2 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_loop_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp3 ; goto __ats_lab_loop_2 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp2) */ ; } /* end of [loop_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp1) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp1 = */ loop_2 (arg0) ; return /* (tmp1) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 1686(line=55, offs=1) -- 1751(line=58, offs=31) */ ATSstaticdec() ats_void_type fenvlst_vt_free_0 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_fenvlst_vt_free_0: /* tmp0 = */ list_vt_free_01499_ats_ptr_type (arg0) ; return /* (tmp0) */ ; } /* end of [fenvlst_vt_free_0] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 1759(line=61, offs=1) -- 2022(line=70, offs=2) */ ATSstaticdec() ats_void_type fenvlstlst_vt_free_3 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; __ats_lab_fenvlstlst_vt_free_3: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp6 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp7 = */ fenvlst_vt_free_0 (tmp5) ; arg0 = tmp6 ; goto __ats_lab_fenvlstlst_vt_free_3 ; // tail call break ; } while (0) ; return /* (tmp4) */ ; } /* end of [fenvlstlst_vt_free_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp10 ; */ tmp10 = arg0 ; tmp9 = atspre_ref_make_elt_tsz ((&tmp10), sizeof(ats_ptr_type)) ; return (tmp9) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 2295(line=84, offs=3) -- 2426(line=89, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_add: tmp17 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp8), atslab_1) ; tmp19 = ats_ptrget_mac(ats_ptr_type, tmp17) ; tmp18 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp18, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp18, atslab_1, tmp19) ; ats_ptrget_mac(ats_ptr_type, tmp17) = tmp18 ; return /* (tmp16) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_add] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 2604(line=100, offs=5) -- 2855(line=109, offs=2) */ ATSstaticdec() ats_ptr_type auxlst_7 (ats_clo_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab_auxlst_7: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_4_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp24 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg0))) (arg0, tmp22) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (tmp24 != (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: arg0 = arg0 ; arg1 = tmp23 ; goto __ats_lab_auxlst_7 ; // tail call break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp21 = tmp24 ; break ; } while (0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp21 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp21) ; } /* end of [auxlst_7] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 2885(line=111, offs=5) -- 3185(line=122, offs=2) */ ATSstaticdec() ats_ptr_type auxlstlst_8 (ats_clo_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_auxlstlst_8: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_8_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp27 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp28 = auxlst_7 (arg0, tmp26) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (tmp28 != (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: arg0 = arg0 ; arg1 = tmp27 ; goto __ats_lab_auxlstlst_8 ; // tail call break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp25 = tmp28 ; break ; } while (0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp25 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp25) ; } /* end of [auxlstlst_8] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 2516(line=95, offs=7) -- 3600(line=140, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_search (ats_clo_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_search: tmp30 = ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, statmp8)) ; tmp29 = auxlst_7 (arg0, tmp30) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp29 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp31 = ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, statmp12)) ; tmp20 = auxlstlst_8 (arg0, tmp31) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp20 = tmp29 ; break ; } while (0) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_search] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 3684(line=145, offs=19) -- 4011(line=159, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_pop () { /* local vardec */ // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_pop: tmp33 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp12), atslab_1) ; tmp34 = ats_ptrget_mac(ats_ptr_type, tmp33) ; if (tmp34 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_namespace.dats: 3781(line=148, offs=9) -- 3809(line=148, offs=37)") ; } tmp35 = ats_caselptrlab_mac(anairiats_sum_1, tmp34, atslab_0) ; tmp36 = ats_caselptrlab_mac(anairiats_sum_1, tmp34, atslab_1) ; ATS_FREE(tmp34) ; ats_ptrget_mac(ats_ptr_type, tmp33) = tmp36 ; tmp37 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp8), atslab_1) ; tmp38 = ats_ptrget_mac(ats_ptr_type, tmp37) ; ats_ptrget_mac(ats_ptr_type, tmp37) = tmp35 ; /* tmp32 = */ fenvlst_vt_free_0 (tmp38) ; return /* (tmp32) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_pop] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 4093(line=164, offs=20) -- 4436(line=181, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_push () { /* local vardec */ // ATSlocal_void (tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_push: tmp40 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp8), atslab_1) ; tmp41 = ats_ptrget_mac(ats_ptr_type, tmp40) ; tmp42 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp40) = tmp42 ; tmp43 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp12), atslab_1) ; tmp45 = ats_ptrget_mac(ats_ptr_type, tmp43) ; tmp44 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp44, atslab_0, tmp41) ; ats_selptrset_mac(anairiats_sum_1, tmp44, atslab_1, tmp45) ; ats_ptrget_mac(ats_ptr_type, tmp43) = tmp44 ; return /* (tmp39) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_push] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_13 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_loop_13: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp59 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp59 ; arg1 = arg1 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp58) */ ; } /* end of [loop_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp60) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp57 ; */ tmp57 = arg0 ; /* tmp60 = */ loop_13 ((&tmp57), arg1) ; tmp56 = tmp57 ; return (tmp56) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 4524(line=186, offs=25) -- 4957(line=205, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_localjoin () { /* local vardec */ // ATSlocal_void (tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_localjoin: tmp47 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp12), atslab_1) ; tmp48 = ats_ptrget_mac(ats_ptr_type, tmp47) ; if (tmp48 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_namespace.dats: 4632(line=191, offs=9) -- 4661(line=191, offs=38)") ; } tmp49 = ats_caselptrlab_mac(anairiats_sum_1, tmp48, atslab_0) ; tmp50 = ats_caselptrlab_mac(anairiats_sum_1, tmp48, atslab_1) ; ATS_FREE(tmp48) ; /* tmp51 = */ fenvlst_vt_free_0 (tmp49) ; if (tmp50 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_namespace.dats: 4705(line=193, offs=9) -- 4735(line=193, offs=39)") ; } tmp52 = ats_caselptrlab_mac(anairiats_sum_1, tmp50, atslab_0) ; tmp53 = ats_caselptrlab_mac(anairiats_sum_1, tmp50, atslab_1) ; ATS_FREE(tmp50) ; ats_ptrget_mac(ats_ptr_type, tmp47) = tmp53 ; tmp54 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp8), atslab_1) ; tmp61 = ats_ptrget_mac(ats_ptr_type, tmp54) ; tmp55 = list_vt_append_01504_ats_ptr_type (tmp61, tmp52) ; ats_ptrget_mac(ats_ptr_type, tmp54) = tmp55 ; return /* (tmp46) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_localjoin] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 5047(line=211, offs=3) -- 5505(line=231, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_save () { /* local vardec */ // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (anairiats_rec_2, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_save: tmp63 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp8), atslab_1) ; tmp64 = ats_ptrget_mac(ats_ptr_type, tmp63) ; tmp65 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp63) = tmp65 ; tmp66 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp12), atslab_1) ; tmp67 = ats_ptrget_mac(ats_ptr_type, tmp66) ; tmp68 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp66) = tmp68 ; tmp69 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp14), atslab_1) ; tmp71.atslab_0 = tmp64 ; tmp71.atslab_1 = tmp67 ; tmp72 = ats_ptrget_mac(ats_ptr_type, tmp69) ; tmp70 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp70, atslab_0, tmp71) ; ats_selptrset_mac(anairiats_sum_3, tmp70, atslab_1, tmp72) ; ats_ptrget_mac(ats_ptr_type, tmp69) = tmp70 ; return /* (tmp62) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_save] */ /* // /tmp/ATS-Postiats/src/pats_namespace.dats: 5596(line=237, offs=3) -- 6086(line=257, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_restore () { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (anairiats_rec_2, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_restore: tmp74 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp14), atslab_1) ; tmp75 = ats_ptrget_mac(ats_ptr_type, tmp74) ; if (tmp75 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_namespace.dats: 5697(line=242, offs=7) -- 5723(line=242, offs=33)") ; } tmp76 = ats_caselptrlab_mac(anairiats_sum_3, tmp75, atslab_0) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_3, tmp75, atslab_1) ; ATS_FREE(tmp75) ; ats_ptrget_mac(ats_ptr_type, tmp74) = tmp77 ; tmp78 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp8), atslab_1) ; tmp80 = ats_ptrget_mac(ats_ptr_type, tmp78) ; /* tmp79 = */ fenvlst_vt_free_0 (tmp80) ; tmp81 = ats_select_mac(tmp76, atslab_0) ; ats_ptrget_mac(ats_ptr_type, tmp78) = tmp81 ; tmp82 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp12), atslab_1) ; tmp84 = ats_ptrget_mac(ats_ptr_type, tmp82) ; /* tmp83 = */ fenvlstlst_vt_free_3 (tmp84) ; tmp85 = ats_select_mac(tmp76, atslab_1) ; ats_ptrget_mac(ats_ptr_type, tmp82) = tmp85 ; return /* (tmp73) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_restore] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp8, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp11, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp12, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp13, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp14, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp15, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp11 = (ats_sum_ptr_type)0 ; statmp8 = ref_01088_ats_ptr_type (statmp11) ; statmp13 = (ats_sum_ptr_type)0 ; statmp12 = ref_01088_ats_ptr_type (statmp13) ; statmp15 = (ats_sum_ptr_type)0 ; statmp14 = ref_01088_ats_ptr_type (statmp15) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_namespace_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_util3_dats.c0000644000175000017500000025246113431250607023245 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } 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_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_11 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_rec_12 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sVarset) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_delist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_union) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_sVarlst) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_isbot) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_fun_isbot) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2cst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2var) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2Var) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explstlst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2eff) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lab) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lablst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2explst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_wths2explst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_s2exp_0 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type aux_s2explst_1 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type aux_s2explstlst_2 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type aux_labs2explst_3 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type aux_wths2explst_4 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type aux_s2Var_5 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type aux_s2exp_exiuni_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type aux_s2lab_7 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type aux_s2lablst_8 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type aux_s2eff_9 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type s2Var_occurcheck_s2cst_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type s2Var_occurcheck_s2var_13 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5, ats_ptr_type arg6) ; static ats_bool_type ismem_28 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 1555(line=49, offs=1) -- 4286(line=168, offs=4) */ ATSstaticdec() ats_void_type aux_s2exp_0 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; // ATSlocal_void (tmp61) ; __ats_lab_aux_s2exp_0: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp0 = */ aux_s2explstlst_2 (tmp2, arg1) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp0 = */ aux_s2explstlst_2 (tmp3, arg1) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp1)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add (ats_ptrget_mac(ats_ptr_type, arg1), tmp4) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp5 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp1)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; /* tmp0 = */ aux_s2Var_5 (tmp6, arg1) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp1)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp1)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp0 = */ aux_s2explst_1 (tmp7, arg1) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp1)->tag != 11) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_1) ; tmp9 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_2) ; /* tmp10 = */ aux_s2exp_0 (tmp8, arg1) ; /* tmp0 = */ aux_s2explst_1 (tmp9, arg1) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp1)->tag != 12) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp12 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp13 = */ aux_s2exp_0 (tmp11, arg1) ; arg0 = tmp12 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp1)->tag != 14) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; /* tmp0 = */ aux_s2eff_9 (tmp14, arg1) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp1)->tag != 13) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; arg0 = tmp15 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp1)->tag != 15) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp17 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp18 = */ aux_s2exp_0 (tmp16, arg1) ; arg0 = tmp17 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp1)->tag != 16) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_1) ; tmp21 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_2) ; /* tmp22 = */ aux_s2exp_0 (tmp19, arg1) ; /* tmp23 = */ aux_s2exp_0 (tmp20, arg1) ; /* tmp0 = */ aux_s2lablst_8 (tmp21, arg1) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp1)->tag != 17) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp25 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp26 = */ aux_s2exp_0 (tmp24, arg1) ; /* tmp0 = */ aux_s2explst_1 (tmp25, arg1) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp1)->tag != 18) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* ats_ptr_type tmp29 ; */ tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil () ; /* tmp30 = */ aux_s2exp_0 (tmp28, (&tmp29)) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_delist (tmp29, tmp27) ; tmp29 = tmp31 ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_union (ats_ptrget_mac(ats_ptr_type, arg1), tmp29) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp32 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp1)->tag != 19) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_2) ; tmp34 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_4) ; tmp35 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_5) ; /* tmp36 = */ aux_s2eff_9 (tmp33, arg1) ; /* tmp37 = */ aux_s2explst_1 (tmp34, arg1) ; arg0 = tmp35 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp1)->tag != 20) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_1) ; tmp39 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_2) ; /* tmp40 = */ aux_s2explst_1 (tmp38, arg1) ; arg0 = tmp39 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp1)->tag != 21) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp42 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp43 = */ aux_s2explst_1 (tmp41, arg1) ; /* tmp0 = */ aux_s2explst_1 (tmp42, arg1) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp1)->tag != 22) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_1) ; arg0 = tmp44 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp1)->tag != 23) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; arg0 = tmp45 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp1)->tag != 24) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp47 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp48 = */ aux_s2exp_0 (tmp46, arg1) ; /* tmp0 = */ aux_s2explst_1 (tmp47, arg1) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp1)->tag != 25) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_2) ; /* tmp0 = */ aux_labs2explst_3 (tmp49, arg1) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp1)->tag != 26) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; arg0 = tmp50 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp1)->tag != 29) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_1) ; arg0 = tmp51 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp1)->tag != 27) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_0) ; tmp53 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_1) ; tmp54 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_2) ; /* tmp0 = */ aux_s2exp_exiuni_6 (tmp52, tmp53, tmp54, arg1) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp1)->tag != 28) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_1) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_2) ; /* tmp0 = */ aux_s2exp_exiuni_6 (tmp55, tmp56, tmp57, arg1) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp1)->tag != 30) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; arg0 = tmp58 ; arg1 = arg1 ; goto __ats_lab_aux_s2exp_0 ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp1)->tag != 31) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp60 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp61 = */ aux_s2exp_0 (tmp59, arg1) ; /* tmp0 = */ aux_wths2explst_4 (tmp60, arg1) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (((ats_sum_ptr_type)tmp1)->tag != 32) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: break ; } while (0) ; return /* (tmp0) */ ; } /* end of [aux_s2exp_0] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 4314(line=171, offs=1) -- 4525(line=178, offs=22) */ ATSstaticdec() ats_void_type aux_s2explst_1 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; __ats_lab_aux_s2explst_1: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp64 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; /* tmp65 = */ aux_s2exp_0 (tmp63, arg1) ; arg0 = tmp64 ; arg1 = arg1 ; goto __ats_lab_aux_s2explst_1 ; // tail call break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: break ; } while (0) ; return /* (tmp62) */ ; } /* end of [aux_s2explst_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 4556(line=182, offs=1) -- 4785(line=189, offs=22) */ ATSstaticdec() ats_void_type aux_s2explstlst_2 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; __ats_lab_aux_s2explstlst_2: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; /* tmp69 = */ aux_s2explst_1 (tmp67, arg1) ; arg0 = tmp68 ; arg1 = arg1 ; goto __ats_lab_aux_s2explstlst_2 ; // tail call break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: break ; } while (0) ; return /* (tmp66) */ ; } /* end of [aux_s2explstlst_2] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 4819(line=193, offs=1) -- 5107(line=203, offs=22) */ ATSstaticdec() ats_void_type aux_labs2explst_3 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab_aux_labs2explst_3: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp73 = ats_caselptrlab_mac(anairiats_sum_9, tmp71, atslab_2) ; /* tmp74 = */ aux_s2exp_0 (tmp73, arg1) ; arg0 = tmp72 ; arg1 = arg1 ; goto __ats_lab_aux_labs2explst_3 ; // tail call break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: break ; } while (0) ; return /* (tmp70) */ ; } /* end of [aux_labs2explst_3] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 5141(line=207, offs=1) -- 5631(line=223, offs=2) */ ATSstaticdec() ats_void_type aux_wths2explst_4 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; // ATSlocal_void (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab_aux_wths2explst_4: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_2) ; /* tmp78 = */ aux_s2exp_0 (tmp76, arg1) ; arg0 = tmp77 ; arg1 = arg1 ; goto __ats_lab_aux_wths2explst_4 ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_2) ; /* tmp81 = */ aux_s2exp_0 (tmp79, arg1) ; arg0 = tmp80 ; arg1 = arg1 ; goto __ats_lab_aux_wths2explst_4 ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; arg0 = tmp82 ; arg1 = arg1 ; goto __ats_lab_aux_wths2explst_4 ; // tail call break ; } while (0) ; return /* (tmp75) */ ; } /* end of [aux_wths2explst_4] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 5665(line=226, offs=1) -- 5951(line=239, offs=4) */ ATSstaticdec() ats_void_type aux_s2Var_5 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab_aux_s2Var_5: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link (arg0) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (tmp84 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_11, tmp84, atslab_0) ; /* tmp83 = */ aux_s2exp_0 (tmp85, arg1) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (tmp84 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt (arg0) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp86) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp87, atslab_0, tmp88) ; /* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link (arg0, tmp87) ; break ; } while (0) ; return /* (tmp83) */ ; } /* end of [aux_s2Var_5] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 5979(line=242, offs=1) -- 6288(line=255, offs=4) */ ATSstaticdec() ats_void_type aux_s2exp_exiuni_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab_aux_s2exp_exiuni_6: /* ats_ptr_type tmp90 ; */ tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil () ; /* tmp91 = */ aux_s2explst_1 (arg1, (&tmp90)) ; /* tmp92 = */ aux_s2exp_0 (arg2, (&tmp90)) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_delist (tmp90, arg0) ; tmp90 = tmp93 ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_union (ats_ptrget_mac(ats_ptr_type, arg3), tmp90) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp94 ; return /* (tmp89) */ ; } /* end of [aux_s2exp_exiuni_6] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 6323(line=258, offs=1) -- 6459(line=263, offs=46) */ ATSstaticdec() ats_void_type aux_s2lab_7 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab_aux_s2lab_7: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp95 = */ aux_s2explst_1 (tmp96, arg1) ; break ; } while (0) ; return /* (tmp95) */ ; } /* end of [aux_s2lab_7] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 6487(line=267, offs=1) -- 6698(line=274, offs=22) */ ATSstaticdec() ats_void_type aux_s2lablst_8 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; __ats_lab_aux_s2lablst_8: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; /* tmp100 = */ aux_s2lab_7 (tmp98, arg1) ; arg0 = tmp99 ; arg1 = arg1 ; goto __ats_lab_aux_s2lablst_8 ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: break ; } while (0) ; return /* (tmp97) */ ; } /* end of [aux_s2lablst_8] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 6729(line=278, offs=1) -- 6971(line=286, offs=8) */ ATSstaticdec() ats_void_type aux_s2eff_9 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; // ATSlocal_void (tmp105) ; __ats_lab_aux_s2eff_9: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp101 = */ aux_s2exp_0 (tmp102, arg1) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp104 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; /* tmp105 = */ aux_s2eff_9 (tmp103, arg1) ; arg0 = tmp104 ; arg1 = arg1 ; goto __ats_lab_aux_s2eff_9 ; // tail call break ; } while (0) ; return /* (tmp101) */ ; } /* end of [aux_s2eff_9] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 7067(line=293, offs=3) -- 7153(line=296, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_freevars (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; // ATSlocal_void (tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_freevars: /* ats_ptr_type tmp107 ; */ tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil () ; /* tmp108 = */ aux_s2exp_0 (arg0, (&tmp107)) ; tmp106 = tmp107 ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_freevars] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 7237(line=305, offs=1) -- 7464(line=315, offs=2) */ ATSstaticdec() ats_bool_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; __ats_lab_loop_11: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp111 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem (arg1, tmp110) ; if (tmp112) { tmp109 = ats_true_bool ; } else { arg0 = tmp111 ; arg1 = arg1 ; goto __ats_lab_loop_11 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: tmp109 = ats_false_bool ; break ; } while (0) ; return (tmp109) ; } /* end of [loop_11] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 7510(line=320, offs=1) -- 7736(line=332, offs=4) */ ATSstaticdec() ats_bool_type s2Var_occurcheck_s2cst_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_bool_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab_s2Var_occurcheck_s2cst_12: tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sVarset (arg1) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem (tmp114, arg0) ; if (tmp115) { tmp113 = ats_true_bool ; } else { tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_sVarlst (arg0) ; tmp113 = loop_11 (tmp116, tmp114) ; } /* end of [if] */ return (tmp113) ; } /* end of [s2Var_occurcheck_s2cst_12] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 7777(line=335, offs=1) -- 8127(line=350, offs=4) */ ATSstaticdec() ats_bool_type s2Var_occurcheck_s2var_13 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_bool_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; __ats_lab_s2Var_occurcheck_s2var_13: tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset (arg1) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem (tmp118, arg0) ; if (tmp119) { tmp117 = ats_true_bool ; } else { tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_sVarlst (arg0) ; tmp117 = loop_11 (tmp120, tmp118) ; } /* end of [if] */ return (tmp117) ; } /* end of [s2Var_occurcheck_s2var_13] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 8913(line=384, offs=1) -- 9347(line=409, offs=4) */ ATSstaticdec() ats_void_type auxlst_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5, ats_ptr_type arg6) { /* local vardec */ // ATSlocal_void (tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; // ATSlocal_void (tmp124) ; __ats_lab_auxlst_14: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp122 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp123 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; /* tmp124 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type, ats_ref_type))arg6) (arg0, tmp122, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp123 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; arg6 = arg6 ; goto __ats_lab_auxlst_14 ; // tail call break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: break ; } while (0) ; return /* (tmp121) */ ; } /* end of [auxlst_14] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 9410(line=414, offs=12) -- 9648(line=426, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2cst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp125) ; ATSlocal (ats_bool_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2cst: tmp126 = s2Var_occurcheck_s2cst_12 (arg0, arg1) ; if (tmp126) { tmp127 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp127 ; tmp128 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp128, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp128, atslab_1, ats_ptrget_mac(ats_ptr_type, arg3)) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp128 ; } else { /* empty */ } /* end of [if] */ return /* (tmp125) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 9694(line=429, offs=12) -- 9910(line=439, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp129) ; ATSlocal (ats_bool_type, tmp130) ; ATSlocal (ats_int_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2var: tmp130 = s2Var_occurcheck_s2var_13 (arg0, arg1) ; if (tmp130) { tmp131 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp131 ; tmp132 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp132, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp132, atslab_1, ats_ptrget_mac(ats_ptr_type, arg4)) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp132 ; } else { /* empty */ } /* end of [if] */ return /* (tmp129) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 9956(line=442, offs=12) -- 10281(line=457, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2Var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_bool_type, tmp136) ; ATSlocal (ats_int_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2Var: tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link (arg1) ; do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (tmp134 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_11, tmp134, atslab_0) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp135, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (tmp134 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var (arg0, arg1) ; if (tmp136) { tmp137 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp137 ; } else { tmp138 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp138, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp138, atslab_1, ats_ptrget_mac(ats_ptr_type, arg5)) ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp138 ; } /* end of [if] */ break ; } while (0) ; return /* (tmp133) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 10348(line=462, offs=12) -- 13414(line=589, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; // ATSlocal_void (tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; // ATSlocal_void (tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; // ATSlocal_void (tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; // ATSlocal_void (tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; // ATSlocal_void (tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; // ATSlocal_void (tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; // ATSlocal_void (tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; // ATSlocal_void (tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp: tmp140 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp140)->tag != 0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp140)->tag != 1) { goto __ats_lab_60_0 ; } __ats_lab_59_1: break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp140)->tag != 2) { goto __ats_lab_61_0 ; } __ats_lab_60_1: break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp140)->tag != 3) { goto __ats_lab_62_0 ; } __ats_lab_61_1: break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp140)->tag != 4) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_3, tmp140, atslab_0) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2cst (arg0, tmp141, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp140)->tag != 5) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp142 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explstlst (arg0, tmp142, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp140)->tag != 6) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explstlst (arg0, tmp143, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp140)->tag != 7) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_3, tmp140, atslab_0) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2var (arg0, tmp144, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp140)->tag != 8) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_3, tmp140, atslab_0) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2Var (arg0, tmp145, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp140)->tag != 9) { goto __ats_lab_68_0 ; } __ats_lab_67_1: break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp140)->tag != 10) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp146, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp140)->tag != 11) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_1) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_2) ; /* tmp149 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp147, arg2, arg3, arg4, arg5) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp148, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp140)->tag != 12) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp150 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_0) ; tmp151 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp150, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp151 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp140)->tag != 13) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_3, tmp140, atslab_0) ; arg0 = arg0 ; arg1 = tmp153 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp140)->tag != 14) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_3, tmp140, atslab_0) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2eff (arg0, tmp154, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp140)->tag != 15) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_0) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp155, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp156 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp140)->tag != 16) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_0) ; tmp159 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_1) ; tmp160 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_2) ; /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp158, arg2, arg3, arg4, arg5) ; /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp159, arg2, arg3, arg4, arg5) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lablst (arg0, tmp160, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp140)->tag != 17) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_0) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp163, arg2, arg3, arg4, arg5) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp164, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp140)->tag != 18) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp166 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; arg0 = arg0 ; arg1 = tmp166 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp140)->tag != 19) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp167 = ats_caselptrlab_mac(anairiats_sum_5, tmp140, atslab_2) ; tmp168 = ats_caselptrlab_mac(anairiats_sum_5, tmp140, atslab_4) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_5, tmp140, atslab_5) ; /* tmp170 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2eff (arg0, tmp167, arg2, arg3, arg4, arg5) ; /* tmp171 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp168, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp169 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp140)->tag != 20) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_1) ; tmp173 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_2) ; /* tmp174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp172, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp173 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp140)->tag != 21) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_0) ; tmp176 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp175, arg2, arg3, arg4, arg5) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp176, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp140)->tag != 22) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_6, tmp140, atslab_1) ; arg0 = arg0 ; arg1 = tmp178 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp140)->tag != 23) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_3, tmp140, atslab_0) ; arg0 = arg0 ; arg1 = tmp179 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp140)->tag != 24) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_0) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp180, arg2, arg3, arg4, arg5) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp181, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp140)->tag != 25) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp183 = ats_caselptrlab_mac(anairiats_sum_7, tmp140, atslab_2) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2explst (arg0, tmp183, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp140)->tag != 26) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp184 = ats_caselptrlab_mac(anairiats_sum_3, tmp140, atslab_0) ; arg0 = arg0 ; arg1 = tmp184 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp140)->tag != 29) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp185 = ats_caselptrlab_mac(anairiats_sum_6, tmp140, atslab_1) ; arg0 = arg0 ; arg1 = tmp185 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp140)->tag != 27) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp186 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_1) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_2) ; /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp186, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp187 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp140)->tag != 28) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp189 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_1) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_2) ; /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp189, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp190 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp140)->tag != 30) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_3, tmp140, atslab_0) ; arg0 = arg0 ; arg1 = tmp192 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp ; // tail call break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp140)->tag != 31) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp193 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_0) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_2, tmp140, atslab_1) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp193, arg2, arg3, arg4, arg5) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_wths2explst (arg0, tmp194, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: // if (((ats_sum_ptr_type)tmp140)->tag != 32) { ats_deadcode_failure_handle () ; } __ats_lab_90_1: break ; } while (0) ; return /* (tmp139) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 13465(line=593, offs=3) -- 13555(line=594, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp196) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst: /* tmp196 = */ auxlst_14 (arg0, arg1, arg2, arg3, arg4, arg5, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp) ; return /* (tmp196) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 13612(line=599, offs=3) -- 13707(line=600, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explstlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp197) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explstlst: /* tmp197 = */ auxlst_14 (arg0, arg1, arg2, arg3, arg4, arg5, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst) ; return /* (tmp197) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explstlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 13782(line=607, offs=3) -- 14249(line=628, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2eff (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2eff: do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp198 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp199, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp200 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp201 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2eff (arg0, tmp200, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp201 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2eff ; // tail call break ; } while (0) ; return /* (tmp198) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2eff] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 14316(line=633, offs=12) -- 14501(line=644, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lab: do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_95_0 ; } __ats_lab_94_1: break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_95_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2explst (arg0, tmp204, arg2, arg3, arg4, arg5) ; break ; } while (0) ; return /* (tmp203) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lab] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 14552(line=648, offs=3) -- 14646(line=649, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lablst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp205) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lablst: /* tmp205 = */ auxlst_14 (arg0, arg1, arg2, arg3, arg4, arg5, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lab) ; return /* (tmp205) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2lablst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 14719(line=655, offs=15) -- 14856(line=661, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2exp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2exp: tmp207 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_2) ; /* tmp206 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp207, arg2, arg3, arg4, arg5) ; return /* (tmp206) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 14913(line=665, offs=3) -- 15008(line=666, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2explst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp208) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2explst: /* tmp208 = */ auxlst_14 (arg0, arg1, arg2, arg3, arg4, arg5, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2exp) ; return /* (tmp208) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_labs2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 15087(line=673, offs=1) -- 15815(line=709, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_wths2explst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; // ATSlocal_void (tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_wths2explst: do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; tmp211 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_2) ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp210, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp211 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_wths2explst ; // tail call break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_2) ; /* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, tmp213, arg2, arg3, arg4, arg5) ; arg0 = arg0 ; arg1 = tmp214 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_wths2explst ; // tail call break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_99_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; arg0 = arg0 ; arg1 = tmp216 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_wths2explst ; // tail call break ; } while (0) ; return /* (tmp209) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_wths2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 15905(line=715, offs=3) -- 16263(line=726, offs=4) */ ATSglobaldec() anairiats_rec_12 _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2Var_occurcheck_s2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (anairiats_rec_12, tmp217) ; ATSlocal (ats_int_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; // ATSlocal_void (tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2Var_occurcheck_s2exp: /* ats_int_type tmp218 ; */ tmp218 = 0 ; /* ats_ptr_type tmp219 ; */ tmp219 = (ats_sum_ptr_type)0 ; /* ats_ptr_type tmp220 ; */ tmp220 = (ats_sum_ptr_type)0 ; /* ats_ptr_type tmp221 ; */ tmp221 = (ats_sum_ptr_type)0 ; /* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__aux2_s2exp (arg0, arg1, (&tmp218), (&tmp219), (&tmp220), (&tmp221)) ; tmp217.atslab_0 = tmp218 ; tmp217.atslab_1 = tmp219 ; tmp217.atslab_2 = tmp220 ; tmp217.atslab_3 = tmp221 ; return (tmp217) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2Var_occurcheck_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 16355(line=735, offs=1) -- 16570(line=745, offs=4) */ ATSstaticdec() ats_bool_type ismem_28 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_bool_type, tmp226) ; __ats_lab_ismem_28: do { /* branch: __ats_lab_100 */ __ats_lab_100_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp224, arg1) ; if (tmp226) { tmp223 = ats_true_bool ; } else { arg0 = tmp225 ; arg1 = arg1 ; goto __ats_lab_ismem_28 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_101_1: tmp223 = ats_false_bool ; break ; } while (0) ; return (tmp223) ; } /* end of [ismem_28] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4) */ ATSstaticdec() ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp233) ; __ats_lab_list_is_nil_01294_: do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp233 = ats_false_bool ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_104_1: tmp233 = ats_true_bool ; break ; } while (0) ; return (tmp233) ; } /* end of [list_is_nil_01294_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 16638(line=751, offs=3) -- 16985(line=772, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_isbot (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_bool_type, tmp232) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_isbot: tmp228 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp228)->tag != 28) { goto __ats_lab_107_0 ; } __ats_lab_102_1: tmp229 = ats_caselptrlab_mac(anairiats_sum_4, tmp228, atslab_0) ; tmp230 = ats_caselptrlab_mac(anairiats_sum_4, tmp228, atslab_1) ; tmp231 = ats_caselptrlab_mac(anairiats_sum_4, tmp228, atslab_2) ; tmp232 = list_is_nil_01294_ (tmp230) ; if (tmp232) { tmp234 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp231), atslab_s2exp_node) ; do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp234)->tag != 7) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_3, tmp234, atslab_0) ; tmp227 = ismem_28 (tmp229, tmp235) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: __ats_lab_106_1: tmp227 = ats_false_bool ; break ; } while (0) ; } else { tmp227 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: __ats_lab_107_1: tmp227 = ats_false_bool ; break ; } while (0) ; return (tmp227) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_isbot] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util3.dats: 17060(line=777, offs=17) -- 17319(line=793, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_fun_isbot (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_fun_isbot: tmp237 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp237)->tag != 19) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp238 = ats_caselptrlab_mac(anairiats_sum_5, tmp237, atslab_5) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_isbot (tmp238) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp237)->tag != 28) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp239 = ats_caselptrlab_mac(anairiats_sum_4, tmp237, atslab_2) ; arg0 = tmp239 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_fun_isbot ; // tail call break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp237)->tag != 20) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp240 = ats_caselptrlab_mac(anairiats_sum_4, tmp237, atslab_2) ; arg0 = tmp240 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_fun_isbot ; // tail call break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: __ats_lab_111_1: tmp236 = ats_false_bool ; break ; } while (0) ; return (tmp236) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_fun_isbot] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_util3_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp2_dvar_dats.c0000644000175000017500000067343113431250607023150 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d2var_sym ; ats_ptr_type atslab_d2var_loc ; ats_int_type atslab_d2var_level ; ats_int_type atslab_d2var_linval ; ats_bool_type atslab_d2var_isfix ; ats_bool_type atslab_d2var_isprf ; ats_ptr_type atslab_d2var_decarg ; ats_ptr_type atslab_d2var_addr ; ats_ptr_type atslab_d2var_view ; ats_ptr_type atslab_d2var_finknd ; ats_ptr_type atslab_d2var_type ; ats_ptr_type atslab_d2var_hisexp ; ats_ptr_type atslab_d2var_mastype ; ats_int_type atslab_d2var_utimes ; ats_int_type atslab_d2var_stamp ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_5 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_7 ; typedef struct { anairiats_rec_7 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_lvar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_vbox_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINdone_4) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_ilte) (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_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imax) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_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_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2var_stamp_make) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2varmaplst_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2varmap_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2varmap_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2varset_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2varset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2var_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_void_type aux_46 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_46_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_46_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_int_type __ats_fun_50 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_50_closure_make () ; static ats_int_type __ats_fun_50_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_make_nil_04236_ () ; static ats_int_type compare_elt_elt_04235_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_55 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_55_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_55_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type funset_is_member_04243_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_rrotate_04073_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type avltree_lrotate_04056_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type insert_59 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_59_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type insert_59_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_04245_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type listize_64 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_listize_04260_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type linset_make_nil_04264_ () ; static ats_void_type aux_69 (ats_ptr_type arg0) ; static ats_void_type linset_free_04271_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type compare_elt_elt_04263_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_72 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_72_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_72_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type linset_is_member_04269_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_04330_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_04384_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_04360_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_76 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type insert_76_closure_make (ats_clo_ref_type env0) ; static ats_bool_type insert_76_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linset_insert_04273_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_82 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_04288_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_85 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_free_04289_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_88 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type __ats_fun_89 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_89_closure_make () ; static ats_int_type __ats_fun_89_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funmap_make_nil_04294_ () ; static ats_int_type compare_key_key_04293_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type search_95 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type search_95_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type search_95_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funmap_search_04299_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; static ats_ptr_type funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_rrotate_04772_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_04752_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ; static ats_ptr_type insert_99 (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_99_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) ; static ats_ptr_type insert_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funmap_insert_04301_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) ; static ats_ptr_type listize_104 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funmap_listize_04310_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type linmap_make_nil_04317_ () ; static ats_void_type _free_109 (ats_ptr_type arg0) ; static ats_void_type linmap_free_04334_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_int_type compare_key_key_04316_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type search_114 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type search_114_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type search_114_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type linmap_search_04322_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; static ats_ptr_type linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_04948_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_118 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_clo_ptr_type insert_118_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type insert_118_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_bool_type linmap_insert_04325_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) ; static ats_ptr_type avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) ; static ats_bool_type takeout_125 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type takeout_125_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type takeout_125_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) ; static ats_bool_type linmap_remove_04327_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_129 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linmap_listize_04336_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_void_type f_132 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2) ; static ats_void_type foreach_135 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type foreach_135_closure_make (ats_ptr_type env0) ; static ats_void_type foreach_135_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type linmap_takeout_04326_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp140) ; ATSstatic (ats_ptr_type, statmp393) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp3 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp3) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 3014(line=112, offs=3) -- 3755(line=139, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2var_stamp_make () ; tmp2 = ptr_alloc_01070_anairiats_rec_1 () ; tmp4 = ats_selsin_mac(tmp2, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_sym) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_loc) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_level) = -1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_linval) = -1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_isfix) = ats_false_bool ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_isprf) = ats_false_bool ; tmp5 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_decarg) = tmp5 ; tmp6 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_addr) = tmp6 ; tmp7 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_view) = ats_castfn_mac(ats_ptr_type, tmp7) ; tmp8 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINnone_0) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_finknd) = tmp8 ; tmp9 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_type) = tmp9 ; tmp10 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_hisexp) = tmp10 ; tmp11 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_mastype) = tmp11 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_utimes) = 0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_stamp) = tmp1 ; tmp0 = atspre_ref_make_view_ptr (tmp4) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 3828(line=145, offs=3) -- 3876(line=145, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any: tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 3952(line=152, offs=3) -- 4041(line=154, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym: tmp14 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp13 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_d2var_sym) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4095(line=158, offs=3) -- 4184(line=160, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc: tmp16 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp15 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp16), atslab_d2var_loc) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4240(line=164, offs=3) -- 4331(line=166, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level: tmp18 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp17 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_d2var_level) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4386(line=168, offs=17) -- 4476(line=170, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level: tmp20 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp20), atslab_d2var_level) = arg1 ; return /* (tmp19) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4535(line=174, offs=3) -- 4627(line=176, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval: tmp22 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp21 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp22), atslab_d2var_linval) ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4684(line=178, offs=18) -- 4775(line=180, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval: tmp24 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp24), atslab_d2var_linval) = arg1 ; return /* (tmp23) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4834(line=184, offs=3) -- 4925(line=186, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isfix (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isfix: tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp25 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp26), atslab_d2var_isfix) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isfix] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4980(line=188, offs=17) -- 5074(line=190, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix (ats_ptr_type arg0, ats_bool_type arg1) { /* local vardec */ // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix: tmp28 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp28), atslab_d2var_isfix) = arg1 ; return /* (tmp27) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5132(line=194, offs=3) -- 5223(line=196, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isprf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isprf: tmp30 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp29 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp30), atslab_d2var_isprf) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isprf] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5278(line=198, offs=17) -- 5372(line=200, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isprf (ats_ptr_type arg0, ats_bool_type arg1) { /* local vardec */ // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isprf: tmp32 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp32), atslab_d2var_isprf) = arg1 ; return /* (tmp31) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isprf] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5431(line=204, offs=3) -- 5523(line=206, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg: tmp34 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp33 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp34), atslab_d2var_decarg) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5580(line=208, offs=18) -- 5677(line=210, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_decarg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_decarg: tmp36 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp36), atslab_d2var_decarg) = arg1 ; return /* (tmp35) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_decarg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5735(line=214, offs=3) -- 5825(line=216, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr: tmp38 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp37 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp38), atslab_d2var_addr) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5878(line=218, offs=16) -- 5973(line=220, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr: tmp40 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp40), atslab_d2var_addr) = arg1 ; return /* (tmp39) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6029(line=224, offs=3) -- 6146(line=228, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view: tmp42 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp43 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp42), atslab_d2var_view) ; tmp41 = ats_castfn_mac(ats_ptr_type, tmp43) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6199(line=230, offs=16) -- 6315(line=234, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view: tmp45 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp45), atslab_d2var_view) = ats_castfn_mac(ats_ptr_type, arg1) ; return /* (tmp44) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6373(line=238, offs=3) -- 6465(line=240, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd: tmp47 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp46 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp47), atslab_d2var_finknd) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6522(line=242, offs=18) -- 6613(line=244, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd: tmp49 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp49), atslab_d2var_finknd) = arg1 ; return /* (tmp48) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6690(line=249, offs=16) -- 6782(line=252, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type: tmp51 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp50 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp51), atslab_d2var_type) ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6835(line=254, offs=16) -- 6924(line=256, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type: tmp53 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp53), atslab_d2var_type) = arg1 ; return /* (tmp52) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7004(line=262, offs=3) -- 7097(line=264, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype: tmp55 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp54 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp55), atslab_d2var_mastype) ; return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7156(line=266, offs=19) -- 7248(line=268, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype: tmp57 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp57), atslab_d2var_mastype) = arg1 ; return /* (tmp56) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7330(line=274, offs=3) -- 7422(line=276, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_hisexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_hisexp: tmp59 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp58 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp59), atslab_d2var_hisexp) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7479(line=278, offs=18) -- 7570(line=280, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_hisexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_hisexp: tmp61 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp61), atslab_d2var_hisexp) = arg1 ; return /* (tmp60) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7649(line=285, offs=18) -- 7741(line=287, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes: tmp63 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp62 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp63), atslab_d2var_utimes) ; return (tmp62) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7798(line=289, offs=18) -- 7906(line=291, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes: tmp65 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp65), atslab_d2var_utimes) = arg1 ; return /* (tmp64) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7963(line=294, offs=17) -- 8054(line=296, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp: tmp67 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp66 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp67), atslab_d2var_stamp) ; return (tmp66) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8155(line=303, offs=18) -- 8238(line=305, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp68) ; ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_int_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval: tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (arg0) ; tmp70 = atspre_add_int_int (tmp69, 1) ; /* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (arg0, tmp70) ; return /* (tmp68) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8296(line=308, offs=18) -- 8383(line=310, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp71) ; ATSlocal (ats_int_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (arg0) ; tmp73 = atspre_add_int_int (tmp72, 1) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes (arg0, tmp73) ; return /* (tmp71) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8461(line=315, offs=17) -- 8495(line=315, offs=51) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear: tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (arg0) ; tmp74 = atspre_gte_int_int (tmp75, 0) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8524(line=318, offs=17) -- 8595(line=319, offs=64) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl: tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (arg0) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp77 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp76 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp77 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp76 = ats_false_bool ; break ; } while (0) ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8671(line=325, offs=16) -- 8715(line=325, offs=60) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var: tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ; tmp78 = atspre_ieq (tmp79, 0) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8743(line=327, offs=17) -- 8788(line=327, offs=62) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__neq_d2var_d2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__neq_d2var_d2var: tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ; tmp80 = atspre_ineq (tmp81, 0) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__neq_d2var_d2var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8842(line=332, offs=21) -- 8921(line=333, offs=69) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp82) ; ATSlocal (ats_int_type, tmp83) ; ATSlocal (ats_int_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg0) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg1) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp83, tmp84) ; return (tmp82) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8990(line=338, offs=3) -- 9085(line=339, offs=70) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2vsym_d2vsym (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2vsym_d2vsym: tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg0) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg1) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol (tmp86, tmp87) ; return (tmp85) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2vsym_d2vsym] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 9172(line=346, offs=3) -- 9294(line=351, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_exch_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; // ATSlocal_void (tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_exch_type: tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg0) ; /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg0, arg1) ; tmp88 = tmp89 ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_exch_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 9379(line=357, offs=3) -- 9838(line=374, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make: tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (arg0) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg0) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp94 = tmp95 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp93) ; tmp98 = atspre_string_append (tmp96, ATSstrcst("$view")) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp98) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp92, tmp97) ; break ; } while (0) ; /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (tmp94, 0) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (arg0) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr (tmp94, tmp101) ; tmp91 = tmp94 ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 9913(line=378, offs=3) -- 9962(line=378, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make_none: tmp103 = (ats_sum_ptr_type)0 ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make (arg0, tmp103) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make_none] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10046(line=384, offs=13) -- 10084(line=384, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2var (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2var: /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (stdout, arg0) ; return /* (tmp104) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10107(line=386, offs=13) -- 10145(line=386, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var: /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (stderr, arg0) ; return /* (tmp105) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10172(line=390, offs=3) -- 10459(line=402, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_int_type, tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; ATSlocal (ats_int_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var: tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg1) ; /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp108) ; /* tmp109 = */ atspre_fprint_string (arg0, ATSstrcst("$")) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg1) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp111) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level (arg1) ; /* tmp113 = */ atspre_fprint_int (arg0, tmp114) ; /* tmp106 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp106) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_46 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; // ATSlocal_void (tmp120) ; ATSlocal (ats_bool_type, tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_int_type, tmp123) ; __ats_lab_aux_46: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp119 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp121 = atspre_gt_int_int (arg1, 0) ; if (tmp121) { /* tmp120 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp122 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp118) ; tmp123 = atspre_add_int_int (arg1, 1) ; arg0 = tmp119 ; arg1 = tmp123 ; goto __ats_lab_aux_46 ; // tail call break ; } while (0) ; return /* (tmp117) */ ; } /* end of [aux_46] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_46_closure_type ; ats_void_type aux_46_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_46 (((aux_46_closure_type*)cloptr)->closure_env_0, ((aux_46_closure_type*)cloptr)->closure_env_1, ((aux_46_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_46_closure_init (aux_46_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_46_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_46_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_46_closure_type *p_clo = ATS_MALLOC(sizeof(aux_46_closure_type)) ; aux_46_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp116) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp116 = */ aux_46 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp116) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10517(line=406, offs=3) -- 10576(line=406, offs=62) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst: /* tmp115 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) ; return /* (tmp115) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10650(line=412, offs=14) -- 10685(line=412, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2vfin (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2vfin: /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin (stdout, arg0) ; return /* (tmp124) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2vfin] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10709(line=414, offs=14) -- 10744(line=414, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2vfin (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2vfin: /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin (stderr, arg0) ; return /* (tmp125) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2vfin] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10772(line=418, offs=3) -- 11455(line=449, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINnone()")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; /* tmp128 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINsome(")) ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp127) ; /* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; /* tmp131 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINsome_lvar(")) ; /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp130) ; /* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp133 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; /* tmp134 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINsome_vbox(")) ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp133) ; /* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; /* tmp137 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINdone(")) ; /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin (arg0, tmp136) ; /* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp126) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 11709(line=463, offs=11) -- 11794(line=466, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_50 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp139) ; __ats_lab___ats_fun_50: tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ; return (tmp139) ; } /* end of [__ats_fun_50] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_50_closure_type ; ats_int_type __ats_fun_50_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_50 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_50_closure_init (__ats_fun_50_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_50_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_50_closure_make () { __ats_fun_50_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_50_closure_type)) ; __ats_fun_50_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 2749(line=94, offs=29) -- 2758(line=94, offs=38) */ ATSstaticdec() ats_ptr_type funset_make_nil_04236_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp142) ; __ats_lab_funset_make_nil_04236_: tmp142 = (ats_sum_ptr_type)0 ; return (tmp142) ; } /* end of [funset_make_nil_04236_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 11939(line=475, offs=14) -- 11966(line=475, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_nil: tmp141 = funset_make_nil_04236_ () ; return (tmp141) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 1954(line=57, offs=30) -- 1982(line=57, offs=58) */ ATSstaticdec() ats_int_type compare_elt_elt_04235_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp150) ; __ats_lab_compare_elt_elt_04235_ats_ptr_type: tmp150 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp150) ; } /* end of [compare_elt_elt_04235_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4143(line=153, offs=7) -- 4406(line=161, offs=20) */ ATSstaticdec() ats_bool_type aux_55 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_bool_type, tmp151) ; ATSlocal (ats_bool_type, tmp152) ; __ats_lab_aux_55: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp147 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; tmp149 = compare_elt_elt_04235_ats_ptr_type (env0, tmp146, env1) ; tmp151 = atspre_lt_int_int (tmp149, 0) ; if (tmp151) { arg0 = tmp147 ; goto __ats_lab_aux_55 ; // tail call } else { tmp152 = atspre_gt_int_int (tmp149, 0) ; if (tmp152) { arg0 = tmp148 ; goto __ats_lab_aux_55 ; // tail call } else { tmp145 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp145 = ats_false_bool ; break ; } while (0) ; return (tmp145) ; } /* end of [aux_55] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_55_closure_type ; ats_bool_type aux_55_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_55 (((aux_55_closure_type*)cloptr)->closure_env_0, ((aux_55_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_55_closure_init (aux_55_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_55_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_55_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_55_closure_type *p_clo = ATS_MALLOC(sizeof(aux_55_closure_type)) ; aux_55_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4104(line=152, offs=3) -- 4426(line=163, offs=2) */ ATSstaticdec() ats_bool_type funset_is_member_04243_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp144) ; __ats_lab_funset_is_member_04243_ats_ptr_type: tmp144 = aux_55 (arg1, arg2, arg0) ; return (tmp144) ; } /* end of [funset_is_member_04243_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 11995(line=479, offs=3) -- 12038(line=479, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_ismem (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp143) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_ismem: tmp143 = funset_is_member_04243_ats_ptr_type (arg0, arg1, statmp140) ; return (tmp143) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_ismem] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 5504(line=202, offs=46) -- 6164(line=224, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04073_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_int_type, tmp177) ; ATSlocal (ats_int_type, tmp178) ; ATSlocal (ats_int_type, tmp179) ; ATSlocal (ats_int_type, tmp180) ; ATSlocal (ats_bool_type, tmp181) ; ATSlocal (ats_int_type, tmp182) ; ATSlocal (ats_int_type, tmp183) ; ATSlocal (ats_int_type, tmp184) ; ATSlocal (ats_int_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_int_type, tmp190) ; ATSlocal (ats_int_type, tmp191) ; ATSlocal (ats_int_type, tmp192) ; ATSlocal (ats_int_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_int_type, tmp195) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_int_type, tmp198) ; ATSlocal (ats_int_type, tmp199) ; __ats_lab_avltree_rrotate_04073_ats_ptr_type: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp174 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_2) ; tmp176 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_3) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (tmp175 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_5, tmp175, atslab_0) ; tmp177 = tmp178 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (tmp175 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp177 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp176 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_5, tmp176, atslab_0) ; tmp179 = tmp180 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp176 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp179 = 0 ; break ; } while (0) ; tmp182 = atspre_iadd (tmp177, 0) ; tmp181 = atspre_igte (tmp182, tmp179) ; if (tmp181) { tmp183 = atspre_iadd (tmp179, 1) ; tmp185 = atspre_imax (tmp177, tmp183) ; tmp184 = atspre_iadd (1, tmp185) ; tmp186 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_0, tmp183) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_2, tmp176) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_3, arg4) ; tmp173 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_0, tmp184) ; ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_1, tmp174) ; ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_2, tmp175) ; ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_3, tmp186) ; } else { // if (tmp176 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp187 = ats_caselptrlab_mac(anairiats_sum_5, tmp176, atslab_1) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_5, tmp176, atslab_2) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_5, tmp176, atslab_3) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (tmp188 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_5, tmp188, atslab_0) ; tmp190 = tmp191 ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (tmp188 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp190 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (tmp189 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp193 = ats_caselptrlab_mac(anairiats_sum_5, tmp189, atslab_0) ; tmp192 = tmp193 ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (tmp189 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp192 = 0 ; break ; } while (0) ; tmp196 = atspre_imax (tmp177, tmp190) ; tmp195 = atspre_iadd (1, tmp196) ; tmp194 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp194, atslab_0, tmp195) ; ats_selptrset_mac(anairiats_sum_5, tmp194, atslab_1, tmp174) ; ats_selptrset_mac(anairiats_sum_5, tmp194, atslab_2, tmp175) ; ats_selptrset_mac(anairiats_sum_5, tmp194, atslab_3, tmp188) ; tmp199 = atspre_imax (tmp192, arg3) ; tmp198 = atspre_iadd (1, tmp199) ; tmp197 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp197, atslab_0, tmp198) ; ats_selptrset_mac(anairiats_sum_5, tmp197, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp197, atslab_2, tmp189) ; ats_selptrset_mac(anairiats_sum_5, tmp197, atslab_3, arg4) ; tmp173 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_1, tmp187) ; ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_2, tmp194) ; ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_3, tmp197) ; } /* end of [if] */ return (tmp173) ; } /* end of [avltree_rrotate_04073_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4671(line=174, offs=46) -- 5362(line=196, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04056_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_int_type, tmp214) ; ATSlocal (ats_int_type, tmp215) ; ATSlocal (ats_int_type, tmp216) ; ATSlocal (ats_int_type, tmp217) ; ATSlocal (ats_bool_type, tmp218) ; ATSlocal (ats_int_type, tmp219) ; ATSlocal (ats_int_type, tmp220) ; ATSlocal (ats_int_type, tmp221) ; ATSlocal (ats_int_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_int_type, tmp227) ; ATSlocal (ats_int_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; ATSlocal (ats_int_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_int_type, tmp232) ; ATSlocal (ats_int_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_int_type, tmp235) ; ATSlocal (ats_int_type, tmp236) ; __ats_lab_avltree_lrotate_04056_ats_ptr_type: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp211 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_1) ; tmp212 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_2) ; tmp213 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_3) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (tmp212 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_0) ; tmp214 = tmp215 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (tmp212 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp214 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp213 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp217 = ats_caselptrlab_mac(anairiats_sum_5, tmp213, atslab_0) ; tmp216 = tmp217 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (tmp213 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp216 = 0 ; break ; } while (0) ; tmp219 = atspre_iadd (tmp216, 0) ; tmp218 = atspre_ilte (tmp214, tmp219) ; if (tmp218) { tmp220 = atspre_iadd (tmp214, 1) ; tmp222 = atspre_imax (tmp220, tmp216) ; tmp221 = atspre_iadd (1, tmp222) ; tmp223 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_0, tmp220) ; ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_3, tmp212) ; tmp210 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_0, tmp221) ; ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_1, tmp211) ; ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_2, tmp223) ; ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_3, tmp213) ; } else { // if (tmp212 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp224 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_1) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_2) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_3) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp225 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp228 = ats_caselptrlab_mac(anairiats_sum_5, tmp225, atslab_0) ; tmp227 = tmp228 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (tmp225 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp227 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (tmp226 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_5, tmp226, atslab_0) ; tmp229 = tmp230 ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (tmp226 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp229 = 0 ; break ; } while (0) ; tmp233 = atspre_imax (arg1, tmp227) ; tmp232 = atspre_iadd (1, tmp233) ; tmp231 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp231, atslab_0, tmp232) ; ats_selptrset_mac(anairiats_sum_5, tmp231, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp231, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp231, atslab_3, tmp225) ; tmp236 = atspre_imax (tmp229, tmp216) ; tmp235 = atspre_iadd (1, tmp236) ; tmp234 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp234, atslab_0, tmp235) ; ats_selptrset_mac(anairiats_sum_5, tmp234, atslab_1, tmp211) ; ats_selptrset_mac(anairiats_sum_5, tmp234, atslab_2, tmp226) ; ats_selptrset_mac(anairiats_sum_5, tmp234, atslab_3, tmp213) ; tmp210 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_1, tmp224) ; ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_2, tmp231) ; ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_3, tmp234) ; } /* end of [if] */ return (tmp210) ; } /* end of [avltree_lrotate_04056_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6) */ ATSstaticdec() ats_ptr_type insert_59 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; ATSlocal (ats_bool_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_int_type, tmp165) ; ATSlocal (ats_int_type, tmp166) ; ATSlocal (ats_int_type, tmp167) ; ATSlocal (ats_int_type, tmp168) ; ATSlocal (ats_bool_type, tmp169) ; ATSlocal (ats_int_type, tmp170) ; ATSlocal (ats_int_type, tmp171) ; ATSlocal (ats_int_type, tmp172) ; ATSlocal (ats_bool_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_int_type, tmp202) ; ATSlocal (ats_int_type, tmp203) ; ATSlocal (ats_int_type, tmp204) ; ATSlocal (ats_int_type, tmp205) ; ATSlocal (ats_bool_type, tmp206) ; ATSlocal (ats_int_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; ATSlocal (ats_int_type, tmp209) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; __ats_lab_insert_59: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_13_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp159 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp160 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp161 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; tmp162 = compare_elt_elt_04235_ats_ptr_type (env0, tmp159, env1) ; tmp163 = atspre_lt_int_int (tmp162, 0) ; if (tmp163) { tmp164 = insert_59 (env0, env1, tmp160, arg1) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp164 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp166 = ats_caselptrlab_mac(anairiats_sum_5, tmp164, atslab_0) ; tmp165 = tmp166 ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp164 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp165 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (tmp161 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ; tmp167 = tmp168 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (tmp161 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp167 = 0 ; break ; } while (0) ; tmp170 = atspre_isub (tmp165, tmp167) ; tmp169 = atspre_ilte (tmp170, 1) ; if (tmp169) { tmp172 = atspre_imax (tmp165, tmp167) ; tmp171 = atspre_iadd (1, tmp172) ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_0, tmp171) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_1, tmp159) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_2, tmp164) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_3, tmp161) ; } else { tmp157 = avltree_rrotate_04073_ats_ptr_type (tmp159, tmp165, tmp164, tmp167, tmp161) ; } /* end of [if] */ } else { tmp200 = atspre_gt_int_int (tmp162, 0) ; if (tmp200) { tmp201 = insert_59 (env0, env1, tmp161, arg1) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (tmp160 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp203 = ats_caselptrlab_mac(anairiats_sum_5, tmp160, atslab_0) ; tmp202 = tmp203 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (tmp160 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp202 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (tmp201 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp205 = ats_caselptrlab_mac(anairiats_sum_5, tmp201, atslab_0) ; tmp204 = tmp205 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (tmp201 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp204 = 0 ; break ; } while (0) ; tmp207 = atspre_isub (tmp204, tmp202) ; tmp206 = atspre_ilte (tmp207, 1) ; if (tmp206) { tmp209 = atspre_imax (tmp202, tmp204) ; tmp208 = atspre_iadd (1, tmp209) ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_0, tmp208) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_1, tmp159) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_2, tmp160) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_3, tmp201) ; } else { tmp157 = avltree_lrotate_04056_ats_ptr_type (tmp159, tmp202, tmp160, tmp204, tmp201) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_0, tmp158) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_2, tmp160) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_3, tmp161) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp237 = (ats_sum_ptr_type)0 ; tmp238 = (ats_sum_ptr_type)0 ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_2, tmp237) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_3, tmp238) ; break ; } while (0) ; return (tmp157) ; } /* end of [insert_59] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_59_closure_type ; ats_ptr_type insert_59_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_59 (((insert_59_closure_type*)cloptr)->closure_env_0, ((insert_59_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_59_closure_init (insert_59_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_59_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_59_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_59_closure_type *p_clo = ATS_MALLOC(sizeof(insert_59_closure_type)) ; insert_59_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6244(line=230, offs=3) -- 7632(line=267, offs=2) */ ATSstaticdec() ats_bool_type funset_insert_04245_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp156) ; ATSlocal (ats_bool_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; __ats_lab_funset_insert_04245_ats_ptr_type: /* ats_bool_type tmp239 ; */ tmp240 = insert_59 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp239)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp240 ; tmp156 = tmp239 ; return (tmp156) ; } /* end of [funset_insert_04245_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12092(line=484, offs=3) -- 12181(line=487, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_bool_type, tmp155) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_add: /* ats_ptr_type tmp154 ; */ tmp154 = arg0 ; tmp155 = funset_insert_04245_ats_ptr_type ((&tmp154), arg1, statmp140) ; tmp153 = tmp154 ; return (tmp153) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20241(line=721, offs=7) -- 20545(line=732, offs=18) */ ATSstaticdec() ats_ptr_type listize_64 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab_listize_64: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp244 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp245 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp246 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; tmp247 = listize_64 (tmp246, arg1) ; tmp248 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp248, atslab_0, tmp244) ; ats_selptrset_mac(anairiats_sum_3, tmp248, atslab_1, tmp247) ; arg0 = tmp245 ; arg1 = tmp248 ; goto __ats_lab_listize_64 ; // tail call break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp243 = arg1 ; break ; } while (0) ; return (tmp243) ; } /* end of [listize_64] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20189(line=719, offs=16) -- 20605(line=736, offs=4) */ ATSstaticdec() ats_ptr_type funset_listize_04260_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp249) ; __ats_lab_funset_listize_04260_ats_ptr_type: tmp249 = (ats_sum_ptr_type)0 ; tmp242 = listize_64 (arg0, tmp249) ; return (tmp242) ; } /* end of [funset_listize_04260_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12235(line=490, offs=18) -- 12264(line=490, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize: tmp241 = funset_listize_04260_ats_ptr_type (arg0) ; return (tmp241) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26) */ ATSstaticdec() ats_ptr_type linset_make_nil_04264_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp251) ; __ats_lab_linset_make_nil_04264_: tmp251 = (ats_sum_ptr_type)0 ; return (tmp251) ; } /* end of [linset_make_nil_04264_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12314(line=495, offs=17) -- 12341(line=495, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp250) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil: tmp250 = linset_make_nil_04264_ () ; return (tmp250) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18) */ ATSstaticdec() ats_void_type aux_69 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; // ATSlocal_void (tmp257) ; __ats_lab_aux_69: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp255 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp256 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; ATS_FREE(arg0) ; /* tmp257 = */ aux_69 (tmp255) ; arg0 = tmp256 ; goto __ats_lab_aux_69 ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: break ; } while (0) ; return /* (tmp254) */ ; } /* end of [aux_69] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4410(line=170, offs=13) -- 4591(line=179, offs=4) */ ATSstaticdec() ats_void_type linset_free_04271_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp253) ; __ats_lab_linset_free_04271_ats_ptr_type: /* tmp253 = */ aux_69 (arg0) ; return /* (tmp253) */ ; } /* end of [linset_free_04271_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12370(line=498, offs=18) -- 12396(line=498, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp252) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_free: /* tmp252 = */ linset_free_04271_ats_ptr_type (arg0) ; return /* (tmp252) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45) */ ATSstaticdec() ats_int_type compare_elt_elt_04263_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp265) ; __ats_lab_compare_elt_elt_04263_ats_ptr_type: tmp265 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp265) ; } /* end of [compare_elt_elt_04263_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3861(line=149, offs=7) -- 4231(line=160, offs=33) */ ATSstaticdec() ats_bool_type aux_72 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_int_type, tmp264) ; ATSlocal (ats_bool_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_bool_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; __ats_lab_aux_72: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp261 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp262 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp263 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; tmp264 = compare_elt_elt_04263_ats_ptr_type (env0, tmp261, env1) ; tmp266 = atspre_lt_int_int (tmp264, 0) ; if (tmp266) { tmp267 = ats_ptrget_mac(ats_ptr_type, tmp262) ; arg0 = tmp267 ; goto __ats_lab_aux_72 ; // tail call } else { tmp268 = atspre_gt_int_int (tmp264, 0) ; if (tmp268) { tmp269 = ats_ptrget_mac(ats_ptr_type, tmp263) ; arg0 = tmp269 ; goto __ats_lab_aux_72 ; // tail call } else { tmp260 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: tmp260 = ats_false_bool ; break ; } while (0) ; return (tmp260) ; } /* end of [aux_72] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_72_closure_type ; ats_bool_type aux_72_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_72 (((aux_72_closure_type*)cloptr)->closure_env_0, ((aux_72_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_72_closure_init (aux_72_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_72_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_72_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_72_closure_type *p_clo = ATS_MALLOC(sizeof(aux_72_closure_type)) ; aux_72_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3822(line=148, offs=3) -- 4251(line=162, offs=2) */ ATSstaticdec() ats_bool_type linset_is_member_04269_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp259) ; __ats_lab_linset_is_member_04269_ats_ptr_type: tmp259 = aux_72 (arg1, arg2, arg0) ; return (tmp259) ; } /* end of [linset_is_member_04269_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12429(line=502, offs=3) -- 12472(line=502, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp258) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem: tmp258 = linset_is_member_04269_ats_ptr_type (arg0, arg1, statmp140) ; return (tmp258) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54) */ ATSstaticdec() ats_int_type avltree_height_04330_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp284) ; ATSlocal (ats_int_type, tmp285) ; __ats_lab_avltree_height_04330_ats_ptr_type: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp285 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp284 = tmp285 ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: __ats_lab_47_1: tmp284 = 0 ; break ; } while (0) ; return (tmp284) ; } /* end of [avltree_height_04330_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04384_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_int_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_int_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_bool_type, tmp303) ; ATSlocal (ats_int_type, tmp304) ; ATSlocal (ats_int_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_int_type, tmp307) ; ATSlocal (ats_int_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_int_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_int_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_int_type, tmp317) ; ATSlocal (ats_int_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_int_type, tmp320) ; ATSlocal (ats_int_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; __ats_lab_avltree_rrotate_04384_ats_ptr_type: tmp295 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp295 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp296 = &ats_caselptrlab_mac(anairiats_sum_5, tmp295, atslab_0) ; tmp297 = &ats_caselptrlab_mac(anairiats_sum_5, tmp295, atslab_2) ; tmp298 = &ats_caselptrlab_mac(anairiats_sum_5, tmp295, atslab_3) ; tmp300 = ats_ptrget_mac(ats_ptr_type, tmp297) ; tmp299 = avltree_height_04330_ats_ptr_type (tmp300) ; tmp302 = ats_ptrget_mac(ats_ptr_type, tmp298) ; tmp301 = avltree_height_04330_ats_ptr_type (tmp302) ; tmp304 = atspre_iadd (tmp299, 0) ; tmp303 = atspre_igte (tmp304, tmp301) ; if (tmp303) { tmp305 = atspre_iadd (tmp301, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp305 ; tmp306 = ats_ptrget_mac(ats_ptr_type, tmp298) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp306 ; tmp308 = atspre_imax (tmp299, tmp305) ; tmp307 = atspre_iadd (1, tmp308) ; ats_ptrget_mac(ats_int_type, tmp296) = tmp307 ; ats_ptrget_mac(ats_ptr_type, tmp298) = arg5 ; tmp294 = tmp295 ; } else { tmp309 = ats_ptrget_mac(ats_ptr_type, tmp298) ; // if (tmp309 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp310 = &ats_caselptrlab_mac(anairiats_sum_5, tmp309, atslab_0) ; tmp311 = &ats_caselptrlab_mac(anairiats_sum_5, tmp309, atslab_2) ; tmp312 = &ats_caselptrlab_mac(anairiats_sum_5, tmp309, atslab_3) ; tmp314 = ats_ptrget_mac(ats_ptr_type, tmp311) ; tmp313 = avltree_height_04330_ats_ptr_type (tmp314) ; tmp316 = ats_ptrget_mac(ats_ptr_type, tmp312) ; tmp315 = avltree_height_04330_ats_ptr_type (tmp316) ; tmp318 = atspre_imax (tmp315, arg3) ; tmp317 = atspre_iadd (1, tmp318) ; ats_ptrget_mac(ats_int_type, arg0) = tmp317 ; tmp319 = ats_ptrget_mac(ats_ptr_type, tmp312) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp319 ; tmp321 = atspre_imax (tmp299, tmp313) ; tmp320 = atspre_iadd (1, tmp321) ; ats_ptrget_mac(ats_int_type, tmp296) = tmp320 ; tmp322 = ats_ptrget_mac(ats_ptr_type, tmp311) ; ats_ptrget_mac(ats_ptr_type, tmp298) = tmp322 ; ats_ptrget_mac(ats_int_type, tmp310) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp311) = tmp295 ; ats_ptrget_mac(ats_ptr_type, tmp312) = arg5 ; tmp294 = tmp309 ; } /* end of [if] */ return (tmp294) ; } /* end of [avltree_rrotate_04384_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04360_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_int_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_int_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_bool_type, tmp343) ; ATSlocal (ats_int_type, tmp344) ; ATSlocal (ats_int_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_int_type, tmp347) ; ATSlocal (ats_int_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_int_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_int_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_int_type, tmp357) ; ATSlocal (ats_int_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_int_type, tmp360) ; ATSlocal (ats_int_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; __ats_lab_avltree_lrotate_04360_ats_ptr_type: tmp335 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp335 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp336 = &ats_caselptrlab_mac(anairiats_sum_5, tmp335, atslab_0) ; tmp337 = &ats_caselptrlab_mac(anairiats_sum_5, tmp335, atslab_2) ; tmp338 = &ats_caselptrlab_mac(anairiats_sum_5, tmp335, atslab_3) ; tmp340 = ats_ptrget_mac(ats_ptr_type, tmp337) ; tmp339 = avltree_height_04330_ats_ptr_type (tmp340) ; tmp342 = ats_ptrget_mac(ats_ptr_type, tmp338) ; tmp341 = avltree_height_04330_ats_ptr_type (tmp342) ; tmp344 = atspre_iadd (tmp341, 0) ; tmp343 = atspre_ilte (tmp339, tmp344) ; if (tmp343) { tmp345 = atspre_iadd (tmp339, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp345 ; tmp346 = ats_ptrget_mac(ats_ptr_type, tmp337) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp346 ; tmp348 = atspre_imax (tmp345, tmp341) ; tmp347 = atspre_iadd (1, tmp348) ; ats_ptrget_mac(ats_int_type, tmp336) = tmp347 ; ats_ptrget_mac(ats_ptr_type, tmp337) = arg5 ; tmp334 = tmp335 ; } else { tmp349 = ats_ptrget_mac(ats_ptr_type, tmp337) ; // if (tmp349 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp350 = &ats_caselptrlab_mac(anairiats_sum_5, tmp349, atslab_0) ; tmp351 = &ats_caselptrlab_mac(anairiats_sum_5, tmp349, atslab_2) ; tmp352 = &ats_caselptrlab_mac(anairiats_sum_5, tmp349, atslab_3) ; tmp354 = ats_ptrget_mac(ats_ptr_type, tmp351) ; tmp353 = avltree_height_04330_ats_ptr_type (tmp354) ; tmp356 = ats_ptrget_mac(ats_ptr_type, tmp352) ; tmp355 = avltree_height_04330_ats_ptr_type (tmp356) ; tmp358 = atspre_imax (arg1, tmp353) ; tmp357 = atspre_iadd (1, tmp358) ; ats_ptrget_mac(ats_int_type, arg0) = tmp357 ; tmp359 = ats_ptrget_mac(ats_ptr_type, tmp351) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp359 ; tmp361 = atspre_imax (tmp355, tmp341) ; tmp360 = atspre_iadd (1, tmp361) ; ats_ptrget_mac(ats_int_type, tmp336) = tmp360 ; tmp362 = ats_ptrget_mac(ats_ptr_type, tmp352) ; ats_ptrget_mac(ats_ptr_type, tmp337) = tmp362 ; ats_ptrget_mac(ats_int_type, tmp350) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp351) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp352) = tmp335 ; tmp334 = tmp349 ; } /* end of [if] */ return (tmp334) ; } /* end of [avltree_lrotate_04360_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4) */ ATSstaticdec() ats_bool_type insert_76 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_int_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_bool_type, tmp281) ; ATSlocal (ats_bool_type, tmp282) ; ATSlocal (ats_int_type, tmp283) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_int_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_bool_type, tmp289) ; ATSlocal (ats_int_type, tmp290) ; ATSlocal (ats_int_type, tmp291) ; ATSlocal (ats_int_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_bool_type, tmp323) ; ATSlocal (ats_bool_type, tmp324) ; ATSlocal (ats_int_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_int_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_bool_type, tmp329) ; ATSlocal (ats_int_type, tmp330) ; ATSlocal (ats_int_type, tmp331) ; ATSlocal (ats_int_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; __ats_lab_insert_76: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_45_1: tmp275 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp276 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp277 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp278 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp280 = ats_ptrget_mac(ats_ptr_type, tmp276) ; tmp279 = compare_elt_elt_04263_ats_ptr_type (arg1, tmp280, env0) ; tmp281 = atspre_lt_int_int (tmp279, 0) ; if (tmp281) { tmp282 = insert_76 (env0, tmp277, arg1) ; tmp286 = ats_ptrget_mac(ats_ptr_type, tmp277) ; tmp283 = avltree_height_04330_ats_ptr_type (tmp286) ; tmp288 = ats_ptrget_mac(ats_ptr_type, tmp278) ; tmp287 = avltree_height_04330_ats_ptr_type (tmp288) ; tmp290 = atspre_isub (tmp283, tmp287) ; tmp289 = atspre_ilte (tmp290, 1) ; if (tmp289) { tmp292 = atspre_imax (tmp283, tmp287) ; tmp291 = atspre_iadd (1, tmp292) ; ats_ptrget_mac(ats_int_type, tmp275) = tmp291 ; tmp274 = tmp282 ; } else { tmp293 = avltree_rrotate_04384_ats_ptr_type (tmp275, tmp283, tmp277, tmp287, tmp278, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp293 ; tmp274 = tmp282 ; } /* end of [if] */ } else { tmp323 = atspre_gt_int_int (tmp279, 0) ; if (tmp323) { tmp324 = insert_76 (env0, tmp278, arg1) ; tmp326 = ats_ptrget_mac(ats_ptr_type, tmp277) ; tmp325 = avltree_height_04330_ats_ptr_type (tmp326) ; tmp328 = ats_ptrget_mac(ats_ptr_type, tmp278) ; tmp327 = avltree_height_04330_ats_ptr_type (tmp328) ; tmp330 = atspre_isub (tmp327, tmp325) ; tmp329 = atspre_ilte (tmp330, 1) ; if (tmp329) { tmp332 = atspre_imax (tmp325, tmp327) ; tmp331 = atspre_iadd (1, tmp332) ; ats_ptrget_mac(ats_int_type, tmp275) = tmp331 ; tmp274 = tmp324 ; } else { tmp333 = avltree_lrotate_04360_ats_ptr_type (tmp275, tmp325, tmp277, tmp327, tmp278, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp333 ; tmp274 = tmp324 ; } /* end of [if] */ } else { tmp274 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp364 = (ats_sum_ptr_type)0 ; tmp365 = (ats_sum_ptr_type)0 ; tmp363 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp363, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp363, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp363, atslab_2, tmp364) ; ats_selptrset_mac(anairiats_sum_5, tmp363, atslab_3, tmp365) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp363 ; tmp274 = ats_false_bool ; break ; } while (0) ; return (tmp274) ; } /* end of [insert_76] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } insert_76_closure_type ; ats_bool_type insert_76_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return insert_76 (((insert_76_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_76_closure_init (insert_76_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_76_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type insert_76_closure_make (ats_clo_ref_type env0) { insert_76_closure_type *p_clo = ATS_MALLOC(sizeof(insert_76_closure_type)) ; insert_76_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_04273_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp273) ; __ats_lab_linset_insert_04273_ats_ptr_type: tmp273 = insert_76 (arg2, arg0, arg1) ; return (tmp273) ; } /* end of [linset_insert_04273_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12532(line=507, offs=3) -- 12621(line=510, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_bool_type, tmp272) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add: /* ats_ptr_type tmp271 ; */ tmp271 = arg0 ; tmp272 = linset_insert_04273_ats_ptr_type ((&tmp271), arg1, statmp140) ; tmp270 = tmp271 ; return (tmp270) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27430(line=997, offs=7) -- 27766(line=1008, offs=31) */ ATSstaticdec() ats_ptr_type aux_82 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; __ats_lab_aux_82: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp369 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp370 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp371 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; tmp373 = ats_ptrget_mac(ats_ptr_type, tmp371) ; tmp372 = aux_82 (tmp373, arg1) ; tmp374 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp374, atslab_0, tmp369) ; ats_selptrset_mac(anairiats_sum_3, tmp374, atslab_1, tmp372) ; tmp375 = ats_ptrget_mac(ats_ptr_type, tmp370) ; arg0 = tmp375 ; arg1 = tmp374 ; goto __ats_lab_aux_82 ; // tail call break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp368 = arg1 ; break ; } while (0) ; return (tmp368) ; } /* end of [aux_82] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27379(line=995, offs=16) -- 27815(line=1012, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_04288_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp376) ; __ats_lab_linset_listize_04288_ats_ptr_type: tmp376 = (ats_sum_ptr_type)0 ; tmp367 = aux_82 (arg0, tmp376) ; return (tmp367) ; } /* end of [linset_listize_04288_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12681(line=513, offs=21) -- 12710(line=513, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp366) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize: tmp366 = linset_listize_04288_ats_ptr_type (arg0) ; return (tmp366) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19) */ ATSstaticdec() ats_ptr_type aux_85 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; __ats_lab_aux_85: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp380 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp381 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp382 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; ATS_FREE(arg0) ; tmp383 = aux_85 (tmp382, arg1) ; tmp384 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp384, atslab_0, tmp380) ; ats_selptrset_mac(anairiats_sum_3, tmp384, atslab_1, tmp383) ; arg0 = tmp381 ; arg1 = tmp384 ; goto __ats_lab_aux_85 ; // tail call break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp379 = arg1 ; break ; } while (0) ; return (tmp379) ; } /* end of [aux_85] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_free_04289_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp385) ; __ats_lab_linset_listize_free_04289_ats_ptr_type: tmp385 = (ats_sum_ptr_type)0 ; tmp378 = aux_85 (arg0, tmp385) ; return (tmp378) ; } /* end of [linset_listize_free_04289_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12747(line=515, offs=26) -- 12781(line=515, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp377) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize_free: tmp377 = linset_listize_free_04289_ats_ptr_type (arg0) ; return (tmp377) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_88 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; __ats_lab_loop_88: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp391 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp391 ; goto __ats_lab_loop_88 ; // tail call break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: break ; } while (0) ; return /* (tmp390) */ ; } /* end of [loop_88] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp389) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp389 = */ loop_88 (arg0) ; return /* (tmp389) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12856(line=523, offs=3) -- 13014(line=530, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varset (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; // ATSlocal_void (tmp388) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varset: tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize (arg1) ; /* tmp388 = */ fprintlst_01887_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, tmp387), ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) ; /* tmp386 = */ list_vt_free_01499_ats_ptr_type (tmp387) ; return /* (tmp386) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varset] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13270(line=544, offs=11) -- 13355(line=547, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_89 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp392) ; __ats_lab___ats_fun_89: tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ; return (tmp392) ; } /* end of [__ats_fun_89] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_89_closure_type ; ats_int_type __ats_fun_89_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_89 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_89_closure_init (__ats_fun_89_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_89_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_89_closure_make () { __ats_fun_89_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_89_closure_type)) ; __ats_fun_89_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 2871(line=98, offs=29) -- 2880(line=98, offs=38) */ ATSstaticdec() ats_ptr_type funmap_make_nil_04294_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp395) ; __ats_lab_funmap_make_nil_04294_: tmp395 = (ats_sum_ptr_type)0 ; return (tmp395) ; } /* end of [funmap_make_nil_04294_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13588(line=560, offs=14) -- 13615(line=560, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp394) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil: tmp394 = funmap_make_nil_04294_ () ; return (tmp394) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 1960(line=59, offs=32) -- 1988(line=59, offs=60) */ ATSstaticdec() ats_int_type compare_key_key_04293_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp407) ; __ats_lab_compare_key_key_04293_ats_ptr_type: tmp407 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp407) ; } /* end of [compare_key_key_04293_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3756(line=137, offs=7) -- 4334(line=154, offs=6) */ ATSstaticdec() ats_bool_type search_95 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_int_type, tmp406) ; ATSlocal (ats_bool_type, tmp408) ; ATSlocal (ats_bool_type, tmp409) ; __ats_lab_search_95: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_55_1: tmp402 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp403 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp404 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp405 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ; tmp406 = compare_key_key_04293_ats_ptr_type (env0, tmp402, env1) ; do { /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: tmp408 = atspre_lt_int_int (tmp406, 0) ; if (!tmp408) { goto __ats_lab_57_1 ; } arg0 = tmp404 ; arg1 = arg1 ; goto __ats_lab_search_95 ; // tail call break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: tmp409 = atspre_gt_int_int (tmp406, 0) ; if (!tmp409) { goto __ats_lab_58_1 ; } arg0 = tmp405 ; arg1 = arg1 ; goto __ats_lab_search_95 ; // tail call break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: ats_ptrget_mac(ats_ptr_type, arg1) = tmp403 ; tmp401 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: tmp401 = ats_false_bool ; break ; } while (0) ; return (tmp401) ; } /* end of [search_95] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } search_95_closure_type ; ats_bool_type search_95_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return search_95 (((search_95_closure_type*)cloptr)->closure_env_0, ((search_95_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type search_95_closure_init (search_95_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&search_95_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type search_95_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { search_95_closure_type *p_clo = ATS_MALLOC(sizeof(search_95_closure_type)) ; search_95_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3706(line=136, offs=3) -- 4355(line=155, offs=2) */ ATSstaticdec() ats_bool_type funmap_search_04299_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp400) ; __ats_lab_funmap_search_04299_ats_ptr_type_2cats_ptr_type: tmp400 = search_95 (arg1, arg2, arg0, arg3) ; return (tmp400) ; } /* end of [funmap_search_04299_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 4423(line=160, offs=3) -- 4687(line=173, offs=4) */ ATSstaticdec() ats_ptr_type funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_bool_type, tmp399) ; __ats_lab_funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type: /* ats_ptr_type tmp398 ; */ tmp399 = funmap_search_04299_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, (&tmp398)) ; if (tmp399) { tmp397 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp397, atslab_0, tmp398) ; } else { tmp397 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp397) ; } /* end of [funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13649(line=564, offs=7) -- 13701(line=565, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp396) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search: tmp396 = funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393) ; return (tmp396) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 5755(line=209, offs=46) -- 6474(line=231, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04772_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_int_type, tmp434) ; ATSlocal (ats_int_type, tmp435) ; ATSlocal (ats_int_type, tmp436) ; ATSlocal (ats_int_type, tmp437) ; ATSlocal (ats_bool_type, tmp438) ; ATSlocal (ats_int_type, tmp439) ; ATSlocal (ats_int_type, tmp440) ; ATSlocal (ats_int_type, tmp441) ; ATSlocal (ats_int_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_int_type, tmp448) ; ATSlocal (ats_int_type, tmp449) ; ATSlocal (ats_int_type, tmp450) ; ATSlocal (ats_int_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_int_type, tmp453) ; ATSlocal (ats_int_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_int_type, tmp456) ; ATSlocal (ats_int_type, tmp457) ; __ats_lab_avltree_rrotate_04772_ats_ptr_type_2cats_ptr_type: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp430 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ; tmp431 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_2) ; tmp432 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_3) ; tmp433 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_4) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (tmp432 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp435 = ats_caselptrlab_mac(anairiats_sum_6, tmp432, atslab_0) ; tmp434 = tmp435 ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (tmp432 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp434 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (tmp433 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp437 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_0) ; tmp436 = tmp437 ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (tmp433 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp436 = 0 ; break ; } while (0) ; tmp439 = atspre_iadd (tmp434, 0) ; tmp438 = atspre_igte (tmp439, tmp436) ; if (tmp438) { tmp440 = atspre_iadd (tmp436, 1) ; tmp442 = atspre_imax (tmp434, tmp440) ; tmp441 = atspre_iadd (1, tmp442) ; tmp443 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_0, tmp440) ; ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_3, tmp433) ; ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_4, arg5) ; tmp429 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_0, tmp441) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_1, tmp430) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_2, tmp431) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_3, tmp432) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_4, tmp443) ; } else { // if (tmp433 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp444 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_1) ; tmp445 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_2) ; tmp446 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_3) ; tmp447 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_4) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (tmp446 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_6, tmp446, atslab_0) ; tmp448 = tmp449 ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (tmp446 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp448 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (tmp447 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp451 = ats_caselptrlab_mac(anairiats_sum_6, tmp447, atslab_0) ; tmp450 = tmp451 ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (tmp447 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: tmp450 = 0 ; break ; } while (0) ; tmp454 = atspre_imax (tmp434, tmp448) ; tmp453 = atspre_iadd (1, tmp454) ; tmp452 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp452, atslab_0, tmp453) ; ats_selptrset_mac(anairiats_sum_6, tmp452, atslab_1, tmp430) ; ats_selptrset_mac(anairiats_sum_6, tmp452, atslab_2, tmp431) ; ats_selptrset_mac(anairiats_sum_6, tmp452, atslab_3, tmp432) ; ats_selptrset_mac(anairiats_sum_6, tmp452, atslab_4, tmp446) ; tmp457 = atspre_imax (tmp450, arg4) ; tmp456 = atspre_iadd (1, tmp457) ; tmp455 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp455, atslab_0, tmp456) ; ats_selptrset_mac(anairiats_sum_6, tmp455, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp455, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp455, atslab_3, tmp447) ; ats_selptrset_mac(anairiats_sum_6, tmp455, atslab_4, arg5) ; tmp429 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_1, tmp444) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_2, tmp445) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_3, tmp452) ; ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_4, tmp455) ; } /* end of [if] */ return (tmp429) ; } /* end of [avltree_rrotate_04772_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 4857(line=181, offs=46) -- 5607(line=203, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04752_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_int_type, tmp473) ; ATSlocal (ats_int_type, tmp474) ; ATSlocal (ats_int_type, tmp475) ; ATSlocal (ats_int_type, tmp476) ; ATSlocal (ats_bool_type, tmp477) ; ATSlocal (ats_int_type, tmp478) ; ATSlocal (ats_int_type, tmp479) ; ATSlocal (ats_int_type, tmp480) ; ATSlocal (ats_int_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_int_type, tmp487) ; ATSlocal (ats_int_type, tmp488) ; ATSlocal (ats_int_type, tmp489) ; ATSlocal (ats_int_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_int_type, tmp492) ; ATSlocal (ats_int_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_int_type, tmp495) ; ATSlocal (ats_int_type, tmp496) ; __ats_lab_avltree_lrotate_04752_ats_ptr_type_2cats_ptr_type: // if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp469 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ; tmp470 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_2) ; tmp471 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_3) ; tmp472 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_4) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (tmp471 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp474 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_0) ; tmp473 = tmp474 ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (tmp471 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp473 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (tmp472 == (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp476 = ats_caselptrlab_mac(anairiats_sum_6, tmp472, atslab_0) ; tmp475 = tmp476 ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (tmp472 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: tmp475 = 0 ; break ; } while (0) ; tmp478 = atspre_iadd (tmp475, 0) ; tmp477 = atspre_ilte (tmp473, tmp478) ; if (tmp477) { tmp479 = atspre_iadd (tmp473, 1) ; tmp481 = atspre_imax (tmp479, tmp475) ; tmp480 = atspre_iadd (1, tmp481) ; tmp482 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_0, tmp479) ; ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_3, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_4, tmp471) ; tmp468 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_0, tmp480) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_1, tmp469) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_2, tmp470) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_3, tmp482) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_4, tmp472) ; } else { // if (tmp471 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp483 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_1) ; tmp484 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_2) ; tmp485 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_3) ; tmp486 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_4) ; do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (tmp485 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp488 = ats_caselptrlab_mac(anairiats_sum_6, tmp485, atslab_0) ; tmp487 = tmp488 ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (tmp485 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: tmp487 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (tmp486 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp490 = ats_caselptrlab_mac(anairiats_sum_6, tmp486, atslab_0) ; tmp489 = tmp490 ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: // if (tmp486 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_84_1: tmp489 = 0 ; break ; } while (0) ; tmp493 = atspre_imax (arg2, tmp487) ; tmp492 = atspre_iadd (1, tmp493) ; tmp491 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp491, atslab_0, tmp492) ; ats_selptrset_mac(anairiats_sum_6, tmp491, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp491, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp491, atslab_3, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp491, atslab_4, tmp485) ; tmp496 = atspre_imax (tmp489, tmp475) ; tmp495 = atspre_iadd (1, tmp496) ; tmp494 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp494, atslab_0, tmp495) ; ats_selptrset_mac(anairiats_sum_6, tmp494, atslab_1, tmp469) ; ats_selptrset_mac(anairiats_sum_6, tmp494, atslab_2, tmp470) ; ats_selptrset_mac(anairiats_sum_6, tmp494, atslab_3, tmp486) ; ats_selptrset_mac(anairiats_sum_6, tmp494, atslab_4, tmp472) ; tmp468 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_0, arg4) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_1, tmp483) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_2, tmp484) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_3, tmp491) ; ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_4, tmp494) ; } /* end of [if] */ return (tmp468) ; } /* end of [avltree_lrotate_04752_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6597(line=238, offs=7) -- 7899(line=271, offs=6) */ ATSstaticdec() ats_ptr_type insert_99 (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_int_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_int_type, tmp418) ; ATSlocal (ats_bool_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_int_type, tmp421) ; ATSlocal (ats_int_type, tmp422) ; ATSlocal (ats_int_type, tmp423) ; ATSlocal (ats_int_type, tmp424) ; ATSlocal (ats_bool_type, tmp425) ; ATSlocal (ats_int_type, tmp426) ; ATSlocal (ats_int_type, tmp427) ; ATSlocal (ats_int_type, tmp428) ; ATSlocal (ats_bool_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_int_type, tmp460) ; ATSlocal (ats_int_type, tmp461) ; ATSlocal (ats_int_type, tmp462) ; ATSlocal (ats_int_type, tmp463) ; ATSlocal (ats_bool_type, tmp464) ; ATSlocal (ats_int_type, tmp465) ; ATSlocal (ats_int_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; __ats_lab_insert_99: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_60_1: tmp413 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp414 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp415 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp416 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp417 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ; tmp418 = compare_key_key_04293_ats_ptr_type (env0, tmp414, env2) ; tmp419 = atspre_lt_int_int (tmp418, 0) ; if (tmp419) { tmp420 = insert_99 (env0, env1, env2, tmp416, arg1) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (tmp420 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp422 = ats_caselptrlab_mac(anairiats_sum_6, tmp420, atslab_0) ; tmp421 = tmp422 ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (tmp420 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp421 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (tmp417 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp424 = ats_caselptrlab_mac(anairiats_sum_6, tmp417, atslab_0) ; tmp423 = tmp424 ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (tmp417 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp423 = 0 ; break ; } while (0) ; tmp426 = atspre_isub (tmp421, tmp423) ; tmp425 = atspre_ilte (tmp426, 1) ; if (tmp425) { tmp428 = atspre_imax (tmp421, tmp423) ; tmp427 = atspre_iadd (1, tmp428) ; tmp412 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_0, tmp427) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_1, tmp414) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_2, tmp415) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_3, tmp420) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_4, tmp417) ; } else { tmp412 = avltree_rrotate_04772_ats_ptr_type_2cats_ptr_type (tmp414, tmp415, tmp421, tmp420, tmp423, tmp417) ; } /* end of [if] */ } else { tmp458 = atspre_gt_int_int (tmp418, 0) ; if (tmp458) { tmp459 = insert_99 (env0, env1, env2, tmp417, arg1) ; do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (tmp416 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp461 = ats_caselptrlab_mac(anairiats_sum_6, tmp416, atslab_0) ; tmp460 = tmp461 ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (tmp416 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: tmp460 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (tmp459 == (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp463 = ats_caselptrlab_mac(anairiats_sum_6, tmp459, atslab_0) ; tmp462 = tmp463 ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (tmp459 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp462 = 0 ; break ; } while (0) ; tmp465 = atspre_isub (tmp462, tmp460) ; tmp464 = atspre_ilte (tmp465, 1) ; if (tmp464) { tmp467 = atspre_imax (tmp460, tmp462) ; tmp466 = atspre_iadd (1, tmp467) ; tmp412 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_0, tmp466) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_1, tmp414) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_2, tmp415) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_3, tmp416) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_4, tmp459) ; } else { tmp412 = avltree_lrotate_04752_ats_ptr_type_2cats_ptr_type (tmp414, tmp415, tmp460, tmp416, tmp462, tmp459) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp412 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_0, tmp413) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_1, tmp414) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_2, env1) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_3, tmp416) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_4, tmp417) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp497 = (ats_sum_ptr_type)0 ; tmp498 = (ats_sum_ptr_type)0 ; tmp412 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_2, env1) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_3, tmp497) ; ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_4, tmp498) ; break ; } while (0) ; return (tmp412) ; } /* end of [insert_99] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_clo_ref_type closure_env_2 ; } insert_99_closure_type ; ats_ptr_type insert_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_99 (((insert_99_closure_type*)cloptr)->closure_env_0, ((insert_99_closure_type*)cloptr)->closure_env_1, ((insert_99_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_99_closure_init (insert_99_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_99_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type insert_99_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) { insert_99_closure_type *p_clo = ATS_MALLOC(sizeof(insert_99_closure_type)) ; insert_99_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6560(line=237, offs=3) -- 7985(line=274, offs=2) */ ATSstaticdec() ats_bool_type funmap_insert_04301_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp411) ; ATSlocal (ats_bool_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; __ats_lab_funmap_insert_04301_ats_ptr_type_2cats_ptr_type: /* ats_bool_type tmp499 ; */ tmp500 = insert_99 (arg1, arg2, arg3, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp499)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp500 ; tmp411 = tmp499 ; return (tmp411) ; } /* end of [funmap_insert_04301_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13763(line=570, offs=7) -- 13817(line=571, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp410) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert: tmp410 = funmap_insert_04301_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, statmp393) ; return (tmp410) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 16338(line=542, offs=7) -- 16662(line=553, offs=18) */ ATSstaticdec() ats_ptr_type listize_104 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (anairiats_rec_7, tmp510) ; __ats_lab_listize_104: do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp504 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp505 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp506 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp507 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ; tmp508 = listize_104 (tmp507, arg1) ; tmp510.atslab_0 = tmp504 ; tmp510.atslab_1 = tmp505 ; tmp509 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp509, atslab_0, tmp510) ; ats_selptrset_mac(anairiats_sum_8, tmp509, atslab_1, tmp508) ; arg0 = tmp506 ; arg1 = tmp509 ; goto __ats_lab_listize_104 ; // tail call break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_87_1: tmp503 = arg1 ; break ; } while (0) ; return (tmp503) ; } /* end of [listize_104] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 16252(line=539, offs=16) -- 16722(line=557, offs=4) */ ATSstaticdec() ats_ptr_type funmap_listize_04310_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp511) ; __ats_lab_funmap_listize_04310_ats_ptr_type_2cats_ptr_type: tmp511 = (ats_sum_ptr_type)0 ; tmp502 = listize_104 (arg0, tmp511) ; return (tmp502) ; } /* end of [funmap_listize_04310_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13880(line=576, offs=7) -- 13911(line=576, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp501) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize: tmp501 = funmap_listize_04310_ats_ptr_type_2cats_ptr_type (arg0) ; return (tmp501) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3005(line=103, offs=29) -- 3014(line=103, offs=38) */ ATSstaticdec() ats_ptr_type linmap_make_nil_04317_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp513) ; __ats_lab_linmap_make_nil_04317_: tmp513 = (ats_sum_ptr_type)0 ; return (tmp513) ; } /* end of [linmap_make_nil_04317_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13990(line=582, offs=17) -- 14017(line=582, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp512) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil: tmp512 = linmap_make_nil_04317_ () ; return (tmp512) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20597(line=699, offs=7) -- 20733(line=701, offs=65) */ ATSstaticdec() ats_void_type _free_109 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; // ATSlocal_void (tmp519) ; __ats_lab__free_109: do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp517 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp518 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ; ATS_FREE(arg0) ; /* tmp519 = */ _free_109 (tmp517) ; arg0 = tmp518 ; goto __ats_lab__free_109 ; // tail call break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: break ; } while (0) ; return /* (tmp516) */ ; } /* end of [_free_109] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20567(line=698, offs=13) -- 20755(line=703, offs=2) */ ATSstaticdec() ats_void_type linmap_free_04334_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp515) ; __ats_lab_linmap_free_04334_ats_ptr_type_2cats_ptr_type: /* tmp515 = */ _free_109 (arg0) ; return /* (tmp515) */ ; } /* end of [linmap_free_04334_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14046(line=585, offs=18) -- 14074(line=585, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp514) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_free: /* tmp514 = */ linmap_free_04334_ats_ptr_type_2cats_ptr_type (arg0) ; return /* (tmp514) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 2008(line=61, offs=17) -- 2036(line=61, offs=45) */ ATSstaticdec() ats_int_type compare_key_key_04316_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp533) ; __ats_lab_compare_key_key_04316_ats_ptr_type: tmp533 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp533) ; } /* end of [compare_key_key_04316_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4545(line=168, offs=7) -- 5110(line=188, offs=6) */ ATSstaticdec() ats_ptr_type search_114 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_int_type, tmp532) ; ATSlocal (ats_bool_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_bool_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; __ats_lab_search_114: do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; } __ats_lab_90_1: tmp528 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp529 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp530 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp531 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ; tmp532 = compare_key_key_04316_ats_ptr_type (env0, tmp528, env1) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: __ats_lab_91_1: tmp534 = atspre_lt_int_int (tmp532, 0) ; if (!tmp534) { goto __ats_lab_92_1 ; } tmp535 = ats_ptrget_mac(ats_ptr_type, tmp530) ; arg0 = tmp535 ; goto __ats_lab_search_114 ; // tail call break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: __ats_lab_92_1: tmp536 = atspre_gt_int_int (tmp532, 0) ; if (!tmp536) { goto __ats_lab_93_1 ; } tmp537 = ats_ptrget_mac(ats_ptr_type, tmp531) ; arg0 = tmp537 ; goto __ats_lab_search_114 ; // tail call break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: __ats_lab_93_1: tmp527 = tmp529 ; break ; } while (0) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: tmp527 = atspre_null_ptr ; break ; } while (0) ; return (tmp527) ; } /* end of [search_114] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } search_114_closure_type ; ats_ptr_type search_114_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return search_114 (((search_114_closure_type*)cloptr)->closure_env_0, ((search_114_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type search_114_closure_init (search_114_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&search_114_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type search_114_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { search_114_closure_type *p_clo = ATS_MALLOC(sizeof(search_114_closure_type)) ; search_114_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4505(line=167, offs=3) -- 5131(line=189, offs=2) */ ATSstaticdec() ats_ptr_type linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp526) ; __ats_lab_linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type: tmp526 = search_114 (arg1, arg2, arg0) ; return (tmp526) ; } /* end of [linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4021(line=145, offs=3) -- 4437(line=162, offs=4) */ ATSstaticdec() ats_bool_type linmap_search_04322_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_bool_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; __ats_lab_linmap_search_04322_ats_ptr_type_2cats_ptr_type: tmp525 = linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2) ; tmp538 = atspre_pgt (tmp525, atspre_null_ptr) ; if (tmp538) { tmp539 = ats_ptrget_mac(ats_ptr_type, tmp525) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp539 ; tmp524 = ats_true_bool ; } else { tmp524 = ats_false_bool ; } /* end of [if] */ return (tmp524) ; } /* end of [linmap_search_04322_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5224(line=196, offs=3) -- 5488(line=209, offs=4) */ ATSstaticdec() ats_ptr_type linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_bool_type, tmp523) ; __ats_lab_linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type: /* ats_ptr_type tmp522 ; */ tmp523 = linmap_search_04322_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, (&tmp522)) ; if (tmp523) { tmp521 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp521, atslab_0, tmp522) ; } else { tmp521 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp521) ; } /* end of [linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14112(line=589, offs=7) -- 14164(line=590, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp520) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search: tmp520 = linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393) ; return (tmp520) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3769(line=134, offs=24) -- 3876(line=135, offs=69) */ ATSstaticdec() ats_int_type avltree_height_04948_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp554) ; ATSlocal (ats_int_type, tmp555) ; __ats_lab_avltree_height_04948_ats_ptr_type_2cats_ptr_type: do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp555 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp554 = tmp555 ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_97_1: tmp554 = 0 ; break ; } while (0) ; return (tmp554) ; } /* end of [avltree_height_04948_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 7405(line=276, offs=32) -- 8902(line=325, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_int_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; ATSlocal (ats_int_type, tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_bool_type, tmp573) ; ATSlocal (ats_int_type, tmp574) ; ATSlocal (ats_int_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_int_type, tmp577) ; ATSlocal (ats_int_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_int_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_int_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_int_type, tmp587) ; ATSlocal (ats_int_type, tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; ATSlocal (ats_int_type, tmp590) ; ATSlocal (ats_int_type, tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; __ats_lab_avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type: tmp565 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp565 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp566 = &ats_caselptrlab_mac(anairiats_sum_6, tmp565, atslab_0) ; tmp567 = &ats_caselptrlab_mac(anairiats_sum_6, tmp565, atslab_3) ; tmp568 = &ats_caselptrlab_mac(anairiats_sum_6, tmp565, atslab_4) ; tmp570 = ats_ptrget_mac(ats_ptr_type, tmp567) ; tmp569 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp570) ; tmp572 = ats_ptrget_mac(ats_ptr_type, tmp568) ; tmp571 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp572) ; tmp574 = atspre_iadd (tmp569, 0) ; tmp573 = atspre_igte (tmp574, tmp571) ; if (tmp573) { tmp575 = atspre_iadd (tmp571, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp575 ; tmp576 = ats_ptrget_mac(ats_ptr_type, tmp568) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp576 ; tmp578 = atspre_imax (tmp569, tmp575) ; tmp577 = atspre_iadd (1, tmp578) ; ats_ptrget_mac(ats_int_type, tmp566) = tmp577 ; ats_ptrget_mac(ats_ptr_type, tmp568) = arg5 ; tmp564 = tmp565 ; } else { tmp579 = ats_ptrget_mac(ats_ptr_type, tmp568) ; // if (tmp579 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp580 = &ats_caselptrlab_mac(anairiats_sum_6, tmp579, atslab_0) ; tmp581 = &ats_caselptrlab_mac(anairiats_sum_6, tmp579, atslab_3) ; tmp582 = &ats_caselptrlab_mac(anairiats_sum_6, tmp579, atslab_4) ; tmp584 = ats_ptrget_mac(ats_ptr_type, tmp581) ; tmp583 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp584) ; tmp586 = ats_ptrget_mac(ats_ptr_type, tmp582) ; tmp585 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp586) ; tmp588 = atspre_imax (tmp585, arg3) ; tmp587 = atspre_iadd (1, tmp588) ; ats_ptrget_mac(ats_int_type, arg0) = tmp587 ; tmp589 = ats_ptrget_mac(ats_ptr_type, tmp582) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp589 ; tmp591 = atspre_imax (tmp569, tmp583) ; tmp590 = atspre_iadd (1, tmp591) ; ats_ptrget_mac(ats_int_type, tmp566) = tmp590 ; tmp592 = ats_ptrget_mac(ats_ptr_type, tmp581) ; ats_ptrget_mac(ats_ptr_type, tmp568) = tmp592 ; ats_ptrget_mac(ats_int_type, tmp580) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp581) = tmp565 ; ats_ptrget_mac(ats_ptr_type, tmp582) = arg5 ; tmp564 = tmp579 ; } /* end of [if] */ return (tmp564) ; } /* end of [avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5694(line=219, offs=32) -- 7221(line=268, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_int_type, tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; ATSlocal (ats_int_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; ATSlocal (ats_bool_type, tmp613) ; ATSlocal (ats_int_type, tmp614) ; ATSlocal (ats_int_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; ATSlocal (ats_int_type, tmp617) ; ATSlocal (ats_int_type, tmp618) ; ATSlocal (ats_ptr_type, tmp619) ; ATSlocal (ats_ptr_type, tmp620) ; ATSlocal (ats_ptr_type, tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; ATSlocal (ats_int_type, tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; ATSlocal (ats_int_type, tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_int_type, tmp627) ; ATSlocal (ats_int_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_int_type, tmp630) ; ATSlocal (ats_int_type, tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; __ats_lab_avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type: tmp605 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp605 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp606 = &ats_caselptrlab_mac(anairiats_sum_6, tmp605, atslab_0) ; tmp607 = &ats_caselptrlab_mac(anairiats_sum_6, tmp605, atslab_3) ; tmp608 = &ats_caselptrlab_mac(anairiats_sum_6, tmp605, atslab_4) ; tmp610 = ats_ptrget_mac(ats_ptr_type, tmp607) ; tmp609 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp610) ; tmp612 = ats_ptrget_mac(ats_ptr_type, tmp608) ; tmp611 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp612) ; tmp614 = atspre_iadd (tmp611, 0) ; tmp613 = atspre_ilte (tmp609, tmp614) ; if (tmp613) { tmp615 = atspre_iadd (tmp609, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp615 ; tmp616 = ats_ptrget_mac(ats_ptr_type, tmp607) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp616 ; tmp618 = atspre_imax (tmp615, tmp611) ; tmp617 = atspre_iadd (1, tmp618) ; ats_ptrget_mac(ats_int_type, tmp606) = tmp617 ; ats_ptrget_mac(ats_ptr_type, tmp607) = arg5 ; tmp604 = tmp605 ; } else { tmp619 = ats_ptrget_mac(ats_ptr_type, tmp607) ; // if (tmp619 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp620 = &ats_caselptrlab_mac(anairiats_sum_6, tmp619, atslab_0) ; tmp621 = &ats_caselptrlab_mac(anairiats_sum_6, tmp619, atslab_3) ; tmp622 = &ats_caselptrlab_mac(anairiats_sum_6, tmp619, atslab_4) ; tmp624 = ats_ptrget_mac(ats_ptr_type, tmp621) ; tmp623 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp624) ; tmp626 = ats_ptrget_mac(ats_ptr_type, tmp622) ; tmp625 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp626) ; tmp628 = atspre_imax (arg1, tmp623) ; tmp627 = atspre_iadd (1, tmp628) ; ats_ptrget_mac(ats_int_type, arg0) = tmp627 ; tmp629 = ats_ptrget_mac(ats_ptr_type, tmp621) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp629 ; tmp631 = atspre_imax (tmp625, tmp611) ; tmp630 = atspre_iadd (1, tmp631) ; ats_ptrget_mac(ats_int_type, tmp606) = tmp630 ; tmp632 = ats_ptrget_mac(ats_ptr_type, tmp622) ; ats_ptrget_mac(ats_ptr_type, tmp607) = tmp632 ; ats_ptrget_mac(ats_int_type, tmp620) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp621) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp622) = tmp605 ; tmp604 = tmp619 ; } /* end of [if] */ return (tmp604) ; } /* end of [avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 9023(line=333, offs=5) -- 11023(line=394, offs=4) */ ATSstaticdec() ats_bool_type insert_118 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_int_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_bool_type, tmp551) ; ATSlocal (ats_bool_type, tmp552) ; ATSlocal (ats_int_type, tmp553) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_int_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_bool_type, tmp559) ; ATSlocal (ats_int_type, tmp560) ; ATSlocal (ats_int_type, tmp561) ; ATSlocal (ats_int_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_bool_type, tmp593) ; ATSlocal (ats_bool_type, tmp594) ; ATSlocal (ats_int_type, tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; ATSlocal (ats_int_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_bool_type, tmp599) ; ATSlocal (ats_int_type, tmp600) ; ATSlocal (ats_int_type, tmp601) ; ATSlocal (ats_int_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; ATSlocal (ats_ptr_type, tmp633) ; ATSlocal (ats_ptr_type, tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; ATSlocal (ats_ptr_type, tmp636) ; __ats_lab_insert_118: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_98_0 ; } __ats_lab_95_1: tmp544 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp545 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp546 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp547 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp548 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp550 = ats_ptrget_mac(ats_ptr_type, tmp545) ; tmp549 = compare_key_key_04316_ats_ptr_type (env0, tmp550, env1) ; tmp551 = atspre_lt_int_int (tmp549, 0) ; if (tmp551) { tmp552 = insert_118 (env0, env1, tmp547, arg1, arg2) ; tmp556 = ats_ptrget_mac(ats_ptr_type, tmp547) ; tmp553 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp556) ; tmp558 = ats_ptrget_mac(ats_ptr_type, tmp548) ; tmp557 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp558) ; tmp560 = atspre_isub (tmp553, tmp557) ; tmp559 = atspre_ilte (tmp560, 1) ; if (tmp559) { tmp562 = atspre_imax (tmp553, tmp557) ; tmp561 = atspre_iadd (1, tmp562) ; ats_ptrget_mac(ats_int_type, tmp544) = tmp561 ; tmp543 = tmp552 ; } else { tmp563 = avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (tmp544, tmp553, tmp547, tmp557, tmp548, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp563 ; tmp543 = tmp552 ; } /* end of [if] */ } else { tmp593 = atspre_gt_int_int (tmp549, 0) ; if (tmp593) { tmp594 = insert_118 (env0, env1, tmp548, arg1, arg2) ; tmp596 = ats_ptrget_mac(ats_ptr_type, tmp547) ; tmp595 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp596) ; tmp598 = ats_ptrget_mac(ats_ptr_type, tmp548) ; tmp597 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp598) ; tmp600 = atspre_isub (tmp597, tmp595) ; tmp599 = atspre_ilte (tmp600, 1) ; if (tmp599) { tmp602 = atspre_imax (tmp595, tmp597) ; tmp601 = atspre_iadd (1, tmp602) ; ats_ptrget_mac(ats_int_type, tmp544) = tmp601 ; tmp543 = tmp594 ; } else { tmp603 = avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (tmp544, tmp595, tmp547, tmp597, tmp548, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp603 ; tmp543 = tmp594 ; } /* end of [if] */ } else { tmp633 = ats_ptrget_mac(ats_ptr_type, tmp546) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp633 ; ats_ptrget_mac(ats_ptr_type, tmp546) = arg1 ; tmp543 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_98_1: tmp635 = (ats_sum_ptr_type)0 ; tmp636 = (ats_sum_ptr_type)0 ; tmp634 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_3, tmp635) ; ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_4, tmp636) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp634 ; tmp543 = ats_false_bool ; break ; } while (0) ; return (tmp543) ; } /* end of [insert_118] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_118_closure_type ; ats_bool_type insert_118_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { return insert_118 (((insert_118_closure_type*)cloptr)->closure_env_0, ((insert_118_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type insert_118_closure_init (insert_118_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_118_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_118_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_118_closure_type *p_clo = ATS_MALLOC(sizeof(insert_118_closure_type)) ; insert_118_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 8988(line=331, offs=3) -- 11078(line=400, offs=4) */ ATSstaticdec() ats_bool_type linmap_insert_04325_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp542) ; __ats_lab_linmap_insert_04325_ats_ptr_type_2cats_ptr_type: tmp542 = insert_118 (arg1, arg3, arg0, arg2, arg4) ; return (tmp542) ; } /* end of [linmap_insert_04325_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14232(line=595, offs=7) -- 14378(line=601, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert: /* ats_ptr_type tmp541 ; */ tmp540 = linmap_insert_04325_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, statmp393, (&tmp541)) ; return (tmp540) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 11578(line=417, offs=35) -- 12629(line=451, offs=4) */ ATSstaticdec() ats_ptr_type avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp672) ; ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_int_type, tmp678) ; ATSlocal (ats_ptr_type, tmp679) ; ATSlocal (ats_int_type, tmp680) ; ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_bool_type, tmp682) ; ATSlocal (ats_int_type, tmp683) ; ATSlocal (ats_int_type, tmp684) ; ATSlocal (ats_int_type, tmp685) ; ATSlocal (ats_ptr_type, tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_ptr_type, tmp688) ; __ats_lab_avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type: // if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp673 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp674 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp675 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp676 = ats_ptrget_mac(ats_ptr_type, tmp674) ; do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (tmp676 == (ats_sum_ptr_type)0) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp677 = avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type (tmp674) ; tmp679 = ats_ptrget_mac(ats_ptr_type, tmp674) ; tmp678 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp679) ; tmp681 = ats_ptrget_mac(ats_ptr_type, tmp675) ; tmp680 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp681) ; tmp683 = atspre_isub (tmp680, tmp678) ; tmp682 = atspre_ilte (tmp683, 1) ; if (tmp682) { tmp685 = atspre_imax (tmp678, tmp680) ; tmp684 = atspre_iadd (1, tmp685) ; ats_ptrget_mac(ats_int_type, tmp673) = tmp684 ; tmp672 = tmp677 ; } else { tmp686 = avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (tmp673, tmp678, tmp674, tmp680, tmp675, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp686 ; tmp672 = tmp677 ; } /* end of [if] */ break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: // if (tmp676 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_105_1: tmp687 = ats_ptrget_mac(ats_ptr_type, tmp675) ; tmp688 = ats_ptrget_mac(ats_ptr_type, arg0) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp687 ; tmp672 = ats_castfn_mac(ats_ptr_type, tmp688) ; break ; } while (0) ; return (tmp672) ; } /* end of [avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 13012(line=467, offs=7) -- 16649(line=558, offs=6) */ ATSstaticdec() ats_bool_type takeout_125 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; ATSlocal (ats_ptr_type, tmp642) ; ATSlocal (ats_ptr_type, tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; ATSlocal (ats_int_type, tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; ATSlocal (ats_bool_type, tmp648) ; ATSlocal (ats_bool_type, tmp649) ; ATSlocal (ats_int_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; ATSlocal (ats_int_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (ats_bool_type, tmp654) ; ATSlocal (ats_int_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; ATSlocal (ats_bool_type, tmp657) ; ATSlocal (ats_bool_type, tmp658) ; ATSlocal (ats_int_type, tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (ats_int_type, tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; ATSlocal (ats_bool_type, tmp663) ; ATSlocal (ats_int_type, tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; ATSlocal (ats_bool_type, tmp667) ; ATSlocal (ats_ptr_type, tmp668) ; ATSlocal (ats_ptr_type, tmp669) ; ATSlocal (ats_ptr_type, tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; ATSlocal (ats_ptr_type, tmp689) ; ATSlocal (ats_ptr_type, tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_int_type, tmp692) ; ATSlocal (ats_int_type, tmp693) ; ATSlocal (ats_bool_type, tmp694) ; ATSlocal (ats_int_type, tmp695) ; ATSlocal (ats_int_type, tmp696) ; ATSlocal (ats_int_type, tmp697) ; ATSlocal (ats_ptr_type, tmp698) ; __ats_lab_takeout_125: do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_107_0 ; } __ats_lab_99_1: tmp641 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp642 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp643 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp644 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp645 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp647 = ats_ptrget_mac(ats_ptr_type, tmp642) ; tmp646 = compare_key_key_04316_ats_ptr_type (env0, tmp647, env1) ; do { /* branch: __ats_lab_100 */ __ats_lab_100_0: __ats_lab_100_1: tmp648 = atspre_lt_int_int (tmp646, 0) ; if (!tmp648) { goto __ats_lab_101_1 ; } tmp649 = takeout_125 (env0, env1, tmp644, arg1) ; tmp651 = ats_ptrget_mac(ats_ptr_type, tmp644) ; tmp650 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp651) ; tmp653 = ats_ptrget_mac(ats_ptr_type, tmp645) ; tmp652 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp653) ; tmp655 = atspre_isub (tmp652, tmp650) ; tmp654 = atspre_ilte (tmp655, 1) ; if (tmp654) { tmp640 = tmp649 ; } else { tmp656 = avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (tmp641, tmp650, tmp644, tmp652, tmp645, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp656 ; tmp640 = tmp649 ; } /* end of [if] */ break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: __ats_lab_101_1: tmp657 = atspre_gt_int_int (tmp646, 0) ; if (!tmp657) { goto __ats_lab_102_1 ; } tmp658 = takeout_125 (env0, env1, tmp645, arg1) ; tmp660 = ats_ptrget_mac(ats_ptr_type, tmp644) ; tmp659 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp660) ; tmp662 = ats_ptrget_mac(ats_ptr_type, tmp645) ; tmp661 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp662) ; tmp664 = atspre_isub (tmp659, tmp661) ; tmp663 = atspre_ilte (tmp664, 1) ; if (tmp663) { tmp640 = tmp658 ; } else { tmp665 = avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (tmp641, tmp659, tmp644, tmp661, tmp645, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp665 ; tmp640 = tmp658 ; } /* end of [if] */ break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: __ats_lab_102_1: tmp667 = atspre_pgt (arg1, atspre_null_ptr) ; if (tmp667) { tmp668 = ats_ptrget_mac(ats_ptr_type, tmp643) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp668 ; } else { /* empty */ } /* end of [if] */ /* ats_ptr_type tmp669 ; */ tmp669 = ats_ptrget_mac(ats_ptr_type, tmp644) ; /* ats_ptr_type tmp670 ; */ tmp670 = ats_ptrget_mac(ats_ptr_type, tmp645) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (tmp670 == (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; } __ats_lab_103_1: tmp671 = avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type ((&tmp670)) ; if (tmp671 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 15639(line=535, offs=21) -- 15683(line=535, offs=65)") ; } tmp689 = &ats_caselptrlab_mac(anairiats_sum_6, tmp671, atslab_0) ; tmp690 = &ats_caselptrlab_mac(anairiats_sum_6, tmp671, atslab_3) ; tmp691 = &ats_caselptrlab_mac(anairiats_sum_6, tmp671, atslab_4) ; tmp692 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp669) ; tmp693 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp670) ; ats_ptrget_mac(ats_ptr_type, tmp690) = tmp669 ; ats_ptrget_mac(ats_ptr_type, tmp691) = tmp670 ; tmp695 = atspre_isub (tmp692, tmp693) ; tmp694 = atspre_ilte (tmp695, 1) ; if (tmp694) { tmp697 = atspre_imax (tmp692, tmp693) ; tmp696 = atspre_iadd (1, tmp697) ; ats_ptrget_mac(ats_int_type, tmp689) = tmp696 ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp671 ; tmp640 = ats_true_bool ; } else { tmp698 = avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (tmp689, tmp692, tmp690, tmp693, tmp691, tmp671) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp698 ; tmp640 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: // if (tmp670 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_106_1: ats_ptrget_mac(ats_ptr_type, arg0) = tmp669 ; tmp640 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_107_1: tmp640 = ats_false_bool ; break ; } while (0) ; return (tmp640) ; } /* end of [takeout_125] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } takeout_125_closure_type ; ats_bool_type takeout_125_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return takeout_125 (((takeout_125_closure_type*)cloptr)->closure_env_0, ((takeout_125_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type takeout_125_closure_init (takeout_125_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&takeout_125_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type takeout_125_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { takeout_125_closure_type *p_clo = ATS_MALLOC(sizeof(takeout_125_closure_type)) ; takeout_125_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 12957(line=466, offs=3) -- 16671(line=559, offs=2) */ ATSstaticdec() ats_bool_type linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp639) ; __ats_lab_linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type: tmp639 = takeout_125 (arg1, arg2, arg0, arg3) ; return (tmp639) ; } /* end of [linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17132(line=576, offs=15) -- 17193(line=576, offs=76) */ ATSstaticdec() ats_bool_type linmap_remove_04327_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp638) ; __ats_lab_linmap_remove_04327_ats_ptr_type_2cats_ptr_type: tmp638 = linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, atspre_null_ptr) ; return (tmp638) ; } /* end of [linmap_remove_04327_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14446(line=605, offs=7) -- 14494(line=606, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_remove (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp637) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_remove: tmp637 = linmap_remove_04327_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393) ; return (tmp637) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_remove] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21260(line=724, offs=7) -- 21616(line=736, offs=31) */ ATSstaticdec() ats_ptr_type aux_129 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; ATSlocal (ats_ptr_type, tmp703) ; ATSlocal (ats_ptr_type, tmp704) ; ATSlocal (ats_ptr_type, tmp705) ; ATSlocal (ats_ptr_type, tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; ATSlocal (ats_ptr_type, tmp708) ; ATSlocal (anairiats_rec_7, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; __ats_lab_aux_129: do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp702 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp703 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp704 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp705 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ; tmp707 = ats_ptrget_mac(ats_ptr_type, tmp705) ; tmp706 = aux_129 (tmp707, arg1) ; tmp709.atslab_0 = tmp702 ; tmp709.atslab_1 = tmp703 ; tmp708 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp708, atslab_0, tmp709) ; ats_selptrset_mac(anairiats_sum_8, tmp708, atslab_1, tmp706) ; tmp710 = ats_ptrget_mac(ats_ptr_type, tmp704) ; arg0 = tmp710 ; arg1 = tmp708 ; goto __ats_lab_aux_129 ; // tail call break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: tmp701 = arg1 ; break ; } while (0) ; return (tmp701) ; } /* end of [aux_129] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21202(line=722, offs=16) -- 21664(line=740, offs=4) */ ATSstaticdec() ats_ptr_type linmap_listize_04336_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp700) ; ATSlocal (ats_ptr_type, tmp711) ; __ats_lab_linmap_listize_04336_ats_ptr_type_2cats_ptr_type: tmp711 = (ats_sum_ptr_type)0 ; tmp700 = aux_129 (arg0, tmp711) ; return (tmp700) ; } /* end of [linmap_listize_04336_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14563(line=611, offs=7) -- 14594(line=611, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp699) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_listize: tmp699 = linmap_listize_04336_ats_ptr_type_2cats_ptr_type (arg0) ; return (tmp699) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_listize] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14679(line=617, offs=20) -- 14706(line=617, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp712) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil: tmp712 = linmap_make_nil_04317_ () ; return (tmp712) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14812(line=626, offs=4) -- 14897(line=629, offs=30) */ ATSstaticdec() ats_void_type f_132 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp714) ; __ats_lab_f_132: /* tmp714 = */ list_vt_free_01499_ats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg1)) ; return /* (tmp714) */ ; } /* end of [f_132] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17514(line=590, offs=7) -- 17815(line=596, offs=24) */ ATSstaticdec() ats_void_type foreach_135 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp718) ; ATSlocal (ats_ptr_type, tmp719) ; ATSlocal (ats_ptr_type, tmp720) ; ATSlocal (ats_ptr_type, tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; // ATSlocal_void (tmp723) ; ATSlocal (ats_ptr_type, tmp724) ; // ATSlocal_void (tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; ATSlocal (ats_ptr_type, tmp727) ; __ats_lab_foreach_135: do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp719 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp720 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp721 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp722 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ; tmp724 = ats_ptrget_mac(ats_ptr_type, tmp721) ; /* tmp723 = */ foreach_135 (env0, tmp724, arg1) ; tmp726 = ats_ptrget_mac(ats_ptr_type, tmp719) ; /* tmp725 = */ ((ats_void_type(*)(ats_ptr_type, ats_ref_type, ats_ptr_type))env0) (tmp726, tmp720, arg1) ; tmp727 = ats_ptrget_mac(ats_ptr_type, tmp722) ; arg0 = tmp727 ; arg1 = arg1 ; goto __ats_lab_foreach_135 ; // tail call break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: break ; } while (0) ; return /* (tmp718) */ ; } /* end of [foreach_135] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } foreach_135_closure_type ; ats_void_type foreach_135_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { foreach_135 (((foreach_135_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type foreach_135_closure_init (foreach_135_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&foreach_135_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type foreach_135_closure_make (ats_ptr_type env0) { foreach_135_closure_type *p_clo = ATS_MALLOC(sizeof(foreach_135_closure_type)) ; foreach_135_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17459(line=589, offs=3) -- 17839(line=598, offs=2) */ ATSstaticdec() ats_void_type linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp717) ; __ats_lab_linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type: /* tmp717 = */ foreach_135 (arg1, arg0, arg2) ; return /* (tmp717) */ ; } /* end of [linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20057(line=678, offs=12) -- 20481(line=693, offs=4) */ ATSstaticdec() ats_void_type linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp716) ; __ats_lab_linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type: /* tmp716 = */ linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), arg2) ; return /* (tmp716) */ ; } /* end of [linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14744(line=621, offs=7) -- 15101(line=639, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp713) ; // ATSlocal_void (tmp715) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free: /* tmp715 = */ linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type (arg0, &f_132, atspre_null_ptr) ; /* tmp713 = */ linmap_free_04334_ats_ptr_type_2cats_ptr_type (arg0) ; return /* (tmp713) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp733) ; __ats_lab_ptr0_get_01759_ats_ptr_type: tmp733 = ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp733) ; } /* end of [ptr0_get_01759_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41) */ ATSstaticdec() ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp732) ; __ats_lab_ptrget_01763_ats_ptr_type: tmp732 = ptr0_get_01759_ats_ptr_type (arg0) ; return (tmp732) ; } /* end of [ptrget_01763_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 15173(line=643, offs=7) -- 15536(line=664, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_search (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp728) ; ATSlocal (ats_ptr_type, tmp729) ; ATSlocal (ats_bool_type, tmp730) ; ATSlocal (ats_ptr_type, tmp731) ; ATSlocal (ats_ptr_type, tmp734) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_search: tmp729 = linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393) ; tmp730 = atspre_pgt (tmp729, atspre_null_ptr) ; if (tmp730) { tmp731 = ptrget_01763_ats_ptr_type (tmp729) ; do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (tmp731 == (ats_sum_ptr_type)0) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp734 = ats_caselptrlab_mac(anairiats_sum_3, tmp731, atslab_0) ; tmp728 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp728, atslab_0, tmp734) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: __ats_lab_113_1: tmp728 = (ats_sum_ptr_type)0 ; break ; } while (0) ; } else { tmp728 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp728) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_search] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2024(line=63, offs=10) -- 2250(line=73, offs=2) */ ATSstaticdec() ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp741) ; __ats_lab_ptr0_set_01760_ats_ptr_type: ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) = arg1 ; return /* (tmp741) */ ; } /* end of [ptr0_set_01760_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2472(line=83, offs=21) -- 2499(line=83, offs=48) */ ATSstaticdec() ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp740) ; __ats_lab_ptrset_01764_ats_ptr_type: /* tmp740 = */ ptr0_set_01760_ats_ptr_type (arg0, arg1) ; return /* (tmp740) */ ; } /* end of [ptrset_01764_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 15610(line=668, offs=7) -- 16119(line=695, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp735) ; ATSlocal (ats_ptr_type, tmp736) ; ATSlocal (ats_bool_type, tmp737) ; ATSlocal (ats_ptr_type, tmp738) ; // ATSlocal_void (tmp739) ; ATSlocal (ats_ptr_type, tmp742) ; ATSlocal (ats_ptr_type, tmp743) ; ATSlocal (ats_bool_type, tmp744) ; ATSlocal (ats_ptr_type, tmp745) ; ATSlocal (ats_ptr_type, tmp746) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert: tmp736 = linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg0), arg1, statmp393) ; tmp737 = atspre_pgt (tmp736, atspre_null_ptr) ; if (tmp737) { tmp738 = ptrget_01763_ats_ptr_type (tmp736) ; tmp742 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp742, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_3, tmp742, atslab_1, tmp738) ; /* tmp739 = */ ptrset_01764_ats_ptr_type (tmp736, tmp742) ; tmp735 = ats_true_bool ; } else { /* ats_ptr_type tmp743 ; */ tmp746 = (ats_sum_ptr_type)0 ; tmp745 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp745, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_3, tmp745, atslab_1, tmp746) ; tmp744 = linmap_insert_04325_ats_ptr_type_2cats_ptr_type (arg0, arg1, tmp745, statmp393, (&tmp743)) ; tmp735 = ats_false_bool ; } /* end of [if] */ return (tmp735) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 16762(line=566, offs=3) -- 17070(line=573, offs=2) */ ATSstaticdec() ats_bool_type linmap_takeout_04326_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp755) ; ATSlocal (ats_bool_type, tmp756) ; __ats_lab_linmap_takeout_04326_ats_ptr_type_2cats_ptr_type: tmp756 = linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, arg3) ; tmp755 = ats_castfn_mac(ats_bool_type, tmp756) ; return (tmp755) ; } /* end of [linmap_takeout_04326_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 16193(line=699, offs=7) -- 17108(line=737, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_remove (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp747) ; ATSlocal (ats_ptr_type, tmp748) ; ATSlocal (ats_bool_type, tmp749) ; ATSlocal (ats_ptr_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; // ATSlocal_void (tmp752) ; ATSlocal (ats_ptr_type, tmp753) ; ATSlocal (ats_bool_type, tmp754) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_remove: tmp748 = linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg0), arg1, statmp393) ; tmp749 = atspre_pgt (tmp748, atspre_null_ptr) ; if (tmp749) { tmp750 = ptrget_01763_ats_ptr_type (tmp748) ; do { /* branch: __ats_lab_114 */ __ats_lab_114_0: if (tmp750 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; } __ats_lab_114_1: tmp751 = ats_caselptrlab_mac(anairiats_sum_3, tmp750, atslab_1) ; ATS_FREE(tmp750) ; do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (tmp751 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: /* tmp752 = */ ptrset_01764_ats_ptr_type (tmp748, tmp751) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (tmp751 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: /* ats_ptr_type tmp753 ; */ tmp754 = linmap_takeout_04326_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393, (&tmp753)) ; /* tmp752 = ats_castfn_mac(ats_void_type, tmp753) */ ; break ; } while (0) ; tmp747 = ats_true_bool ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: // if (tmp750 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_117_1: tmp747 = ats_false_bool ; break ; } while (0) ; } else { tmp747 = ats_false_bool ; } /* end of [if] */ return (tmp747) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_remove] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp140, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp393, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp140 = __ats_fun_50_closure_make () ; statmp393 = __ats_fun_89_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp2_dvar_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_reader.cats0000644000175000017500000000327613431250607021474 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_READER_CATS #define POSTIATS_SRC_PATS_READER_CATS /* ****** ****** */ typedef struct { // ats_ptr_type getchar ; // () - int ats_ptr_type freeres ; // () -> void // } pats_reader_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_READER_CATS] /* ****** ****** */ /* end of [pats_reader.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_e0xp_dats.c0000644000175000017500000017114013431250607022675 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_double_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_e0xp_loc ; ats_ptr_type atslab_e0xp_node ; } anairiats_rec_7 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_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_fixity_2esats__FXITMatm_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMopr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPchar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfloat_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstring_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstringid_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPapp_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfun_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPeval_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPlist_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPif_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALchar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALstring_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALfloat_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPlist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_e0xp_tr_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_prerr_char) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_void_type, atspre_fprint_double) (ats_ptr_type, ats_double_type) ; ATSextern_fun(ats_void_type, atspre_prerr_double) (ats_double_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_int) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_is_empty) (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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app) (ats_ptr_type, ats_clo_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_v1al) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_fun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02133_ () ; static ats_void_type do_e0xpact_fprint_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_error1_loc_02136_ (ats_ptr_type arg0) ; static ats_ptr_type appf_7 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type appf_7_closure_make () ; static ats_ptr_type appf_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type e1xpitm_app_8 (ats_ptr_type arg0) ; static ats_ptr_type e1xp_get_loc_9 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_11_closure_make () ; static ats_ptr_type __ats_fun_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type e1xp_make_opr_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_13 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_14_closure_make () ; static ats_ptr_type __ats_fun_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type e1xpitm_backslash_12 (ats_ptr_type arg0) ; static ats_ptr_type e0xp_tr_errmsg_opr_15 (ats_ptr_type arg0) ; static ats_void_type e0xp_tr_errmsg_float_16 (ats_ptr_type arg0) ; static ats_ptr_type aux_item_18 (ats_ptr_type arg0) ; static ats_ptr_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_itemlst_19 (ats_ptr_type arg0) ; static ats_void_type loop_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 1917(line=63, offs=28) -- 1946(line=63, offs=57) */ ATSstaticdec() ats_void_type prerr_FILENAME_02133_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02133_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans1_e0xp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02133_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2377(line=94, offs=1) -- 2690(line=114, offs=2) */ ATSstaticdec() ats_void_type do_e0xpact_fprint_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_char_type, tmp3) ; ATSlocal (ats_double_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_do_e0xpact_fprint_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp1 = */ atspre_fprint_int (arg0, tmp2) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp1 = */ atspre_fprint_char (arg0, tmp3) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp1 = */ atspre_fprint_double (arg0, tmp4) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; /* tmp1 = */ atspre_fprint_string (arg0, tmp5) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: tmp6 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2624(line=111, offs=14) -- 2639(line=111, offs=29)", ATSstrcst("\n")) ; /* tmp1 = */ atspre_assert_errmsg (ats_false_bool, tmp6) ; break ; } while (0) ; return /* (tmp1) */ ; } /* end of [do_e0xpact_fprint_1] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2773(line=119, offs=17) -- 2811(line=119, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_prerr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_prerr: /* tmp7 = */ do_e0xpact_fprint_1 (stderr, arg0) ; return /* (tmp7) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_prerr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2838(line=121, offs=17) -- 2876(line=121, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_print (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_print: /* tmp8 = */ do_e0xpact_fprint_1 (stdout, arg0) ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_print] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1988(line=70, offs=17) -- 2046(line=73, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_02136_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab_prerr_error1_loc_02136_: /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp11 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp11) */ ; } /* end of [prerr_error1_loc_02136_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2951(line=129, offs=3) -- 3359(line=145, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_error (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_char_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_double_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_error: /* tmp10 = */ prerr_error1_loc_02136_ (arg0) ; /* tmp13 = */ atspre_prerr_string (ATSstrcst(": [#error] directive is encountered: ")) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp14 = */ atspre_prerr_int (tmp15) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp14 = */ atspre_prerr_char (tmp16) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; /* tmp14 = */ atspre_prerr_string (tmp17) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp14 = */ atspre_prerr_double (tmp18) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp19 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 3241(line=140, offs=18) -- 3257(line=140, offs=34)", ATSstrcst("\n")) ; /* tmp14 = */ atspre_assert_errmsg (ats_false_bool, tmp19) ; break ; } while (0) ; /* tmp9 = */ ats_exit (1) ; return /* (tmp9) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_error] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 3441(line=151, offs=3) -- 4029(line=172, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_assert (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp20) ; ATSlocal (ats_bool_type, tmp21) ; ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_double_type, tmp24) ; ATSlocal (ats_char_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_assert: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp21 = atspre_eq_int_int (tmp22, 0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp21 = atspre_string_is_empty (ats_castfn_mac(ats_ptr_type, tmp23)) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp21 = atspre_eq_double_double (tmp24, 0.0) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp21 = atspre_eq_char_char (tmp25, '\000') ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp27 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 3730(line=161, offs=18) -- 3746(line=161, offs=34)", ATSstrcst("\n")) ; /* tmp26 = */ atspre_assert_errmsg (ats_false_bool, tmp27) ; tmp21 = ats_false_bool ; break ; } while (0) ; if (tmp21) { /* tmp28 = */ prerr_error1_loc_02136_ (arg0) ; /* tmp29 = */ atspre_prerr_string (ATSstrcst(": [#assert] failed!")) ; /* tmp30 = */ atspre_prerr_newline () ; /* tmp20 = */ ats_exit (1) ; } else { /* empty */ } /* end of [if] */ return /* (tmp20) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_assert] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4214(line=185, offs=4) -- 4561(line=198, offs=4) */ ATSstaticdec() ats_ptr_type appf_7 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab_appf_7: tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_e1xp_loc) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_e1xp_loc) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp32, tmp33) ; tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_e1xp_node) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp36)->tag != 13) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_4, tmp36, atslab_0) ; tmp35 = tmp37 ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp38 = (ats_sum_ptr_type)0 ; tmp35 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp35, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp35, atslab_1, tmp38) ; break ; } while (0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (tmp34, arg0, tmp33, tmp35) ; tmp31 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp31)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp31, atslab_0, tmp39) ; return (tmp31) ; } /* end of [appf_7] */ typedef struct { ats_fun_ptr_type closure_fun ; } appf_7_closure_type ; ats_ptr_type appf_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return appf_7 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type appf_7_closure_init (appf_7_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&appf_7_clofun ; return ; } /* end of function */ ats_clo_ptr_type appf_7_closure_make () { appf_7_closure_type *p_clo = ATS_MALLOC(sizeof(appf_7_closure_type)) ; appf_7_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4607(line=202, offs=4) -- 4669(line=203, offs=51) */ ATSstaticdec() ats_ptr_type e1xpitm_app_8 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; __ats_lab_e1xpitm_app_8: tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app (arg0, appf_7_closure_make ()) ; return (tmp40) ; } /* end of [e1xpitm_app_8] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4738(line=210, offs=4) -- 4783(line=210, offs=49) */ ATSstaticdec() ats_ptr_type e1xp_get_loc_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; __ats_lab_e1xp_get_loc_9: tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_e1xp_loc) ; return (tmp41) ; } /* end of [e1xp_get_loc_9] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4884(line=217, offs=5) -- 4943(line=217, offs=64) */ ATSstaticdec() ats_ptr_type __ats_fun_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; __ats_lab___ats_fun_11: tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (arg0, arg1, arg2, arg3) ; return (tmp43) ; } /* end of [__ats_fun_11] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_11_closure_type ; ats_ptr_type __ats_fun_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_11 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_11_closure_init (__ats_fun_11_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_11_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_11_closure_make () { __ats_fun_11_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_11_closure_type)) ; __ats_fun_11_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4788(line=212, offs=4) -- 4986(line=220, offs=2) */ ATSstaticdec() ats_ptr_type e1xp_make_opr_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; __ats_lab_e1xp_make_opr_10: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make (&e1xp_get_loc_9, __ats_fun_11_closure_make (), arg0, arg1) ; return (tmp42) ; } /* end of [e1xp_make_opr_10] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5100(line=225, offs=5) -- 5119(line=225, offs=24) */ ATSstaticdec() ats_ptr_type __ats_fun_13 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; __ats_lab___ats_fun_13: tmp45 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_e1xp_loc) ; return (tmp45) ; } /* end of [__ats_fun_13] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5124(line=226, offs=5) -- 5183(line=226, offs=64) */ ATSstaticdec() ats_ptr_type __ats_fun_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp46) ; __ats_lab___ats_fun_14: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (arg0, arg1, arg2, arg3) ; return (tmp46) ; } /* end of [__ats_fun_14] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_14_closure_type ; ats_ptr_type __ats_fun_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_14 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_14_closure_init (__ats_fun_14_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_14_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_14_closure_make () { __ats_fun_14_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_14_closure_type)) ; __ats_fun_14_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5020(line=222, offs=4) -- 5234(line=229, offs=2) */ ATSstaticdec() ats_ptr_type e1xpitm_backslash_12 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; __ats_lab_e1xpitm_backslash_12: tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash (&__ats_fun_13, __ats_fun_14_closure_make (), arg0) ; return (tmp44) ; } /* end of [e1xpitm_backslash_12] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5300(line=235, offs=4) -- 5562(line=244, offs=4) */ ATSstaticdec() ats_ptr_type e0xp_tr_errmsg_opr_15 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab_e0xp_tr_errmsg_opr_15: tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_loc) ; /* tmp49 = */ prerr_error1_loc_02136_ (tmp48) ; /* tmp50 = */ atspre_prerr_string (ATSstrcst(": the operator needs to be applied.")) ; /* tmp51 = */ atspre_prerr_newline () ; tmp53 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp53)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp53, atslab_0, arg0) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp53) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err (tmp48) ; return (tmp47) ; } /* end of [e0xp_tr_errmsg_opr_15] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5598(line=246, offs=4) -- 5861(line=254, offs=4) */ ATSstaticdec() ats_void_type e0xp_tr_errmsg_float_16 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_e0xp_tr_errmsg_float_16: tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_loc) ; /* tmp55 = */ prerr_error1_loc_02136_ (tmp56) ; /* tmp57 = */ atspre_prerr_string (ATSstrcst(": the floating point number is required to be of base 10.")) ; /* tmp58 = */ atspre_prerr_newline () ; tmp59 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp59)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp59, atslab_0, arg0) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp59) ; return /* (tmp54) */ ; } /* end of [e0xp_tr_errmsg_float_16] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5958(line=260, offs=5) -- 8105(line=338, offs=4) */ ATSstaticdec() ats_ptr_type aux_item_18 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_bool_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_char_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_int_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; // ATSlocal_void (tmp89) ; ATSlocal (ats_bool_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab_aux_item_18: tmp62 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_loc) ; tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_node) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp63)->tag != 0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp64, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; if (!tmp65) { goto __ats_lab_18_1 ; } tmp61 = e1xpitm_backslash_12 (tmp62) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp63)->tag != 0) { goto __ats_lab_21_0 ; } __ats_lab_18_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find (tmp66) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp67 != (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide (tmp62, tmp66) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp68) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (tmp67 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_8, tmp67, atslab_0) ; ATS_FREE(tmp67) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide (tmp62, tmp66) ; tmp61 = e1xp_make_opr_10 (tmp70, tmp69) ; break ; } while (0) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp63)->tag != 1) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp71), atslab_token_node) ; if (((ats_sum_ptr_type)tmp72)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 6453(line=276, offs=11) -- 6498(line=277, offs=40)") ; } tmp73 = ats_caselptrlab_mac(anairiats_sum_10, tmp72, atslab_1) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep (tmp62, tmp73) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp74) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp63)->tag != 2) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp75), atslab_token_node) ; if (((ats_sum_ptr_type)tmp76)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 6634(line=284, offs=11) -- 6667(line=285, offs=21)") ; } tmp77 = ats_caselptrlab_mac(anairiats_sum_2, tmp76, atslab_0) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char (tmp62, tmp77) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp78) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp63)->tag != 4) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp80 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp79), atslab_token_node) ; if (((ats_sum_ptr_type)tmp80)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 6792(line=290, offs=11) -- 6829(line=291, offs=21)") ; } tmp81 = ats_caselptrlab_mac(anairiats_sum_4, tmp80, atslab_0) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (tmp62, tmp81) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp82) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp63)->tag != 5) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (tmp62, tmp83) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp84) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp63)->tag != 3) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp85), atslab_token_node) ; if (((ats_sum_ptr_type)tmp86)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 7020(line=297, offs=11) -- 7067(line=298, offs=40)") ; } tmp87 = ats_caselptrlab_mac(anairiats_sum_10, tmp86, atslab_0) ; tmp88 = ats_caselptrlab_mac(anairiats_sum_10, tmp86, atslab_1) ; tmp90 = atspre_neq_int_int (tmp87, 10) ; if (tmp90) { /* tmp89 = */ e0xp_tr_errmsg_float_16 (arg0) ; } else { /* empty */ } /* end of [if] */ tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float (tmp62, tmp88) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp91) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp63)->tag != 9) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr (tmp92) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list (tmp62, tmp94) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp93) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp63)->tag != 6) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp96 = e1xpitm_app_8 (tmp62) ; tmp97 = aux_itemlst_19 (arg0) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve (tmp62, &e1xp_get_loc_9, tmp96, tmp97) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp95) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp63)->tag != 7) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_11, tmp63, atslab_0) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_11, tmp63, atslab_1) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp99) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_fun (tmp62, tmp98, tmp101) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp100) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp63)->tag != 10) { goto __ats_lab_32_0 ; } __ats_lab_29_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_12, tmp63, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_12, tmp63, atslab_1) ; tmp104 = ats_caselptrlab_mac(anairiats_sum_12, tmp63, atslab_2) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp102) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp103) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (tmp104 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_8, tmp104, atslab_0) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp108) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (tmp104 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 7743(line=325, offs=9) -- 7809(line=325, offs=75)") ; } __ats_lab_31_1: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none (tmp62) ; break ; } while (0) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_if (tmp62, tmp105, tmp106, tmp107) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp109) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (((ats_sum_ptr_type)tmp63)->tag != 8) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp110) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize (tmp111) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_v1al (tmp62, tmp112) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp113) ; break ; } while (0) ; return (tmp61) ; } /* end of [aux_item_18] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 8183(line=342, offs=7) -- 8432(line=349, offs=40) */ ATSstaticdec() ats_ptr_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_loop_20: tmp116 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_node) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp116)->tag != 6) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_11, tmp116, atslab_0) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_11, tmp116, atslab_1) ; tmp120 = aux_item_18 (tmp118) ; tmp119 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp119, atslab_0, tmp120) ; ats_selptrset_mac(anairiats_sum_6, tmp119, atslab_1, arg1) ; arg0 = tmp117 ; arg1 = tmp119 ; goto __ats_lab_loop_20 ; // tail call break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: tmp121 = aux_item_18 (arg0) ; tmp115 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp115, atslab_0, tmp121) ; ats_selptrset_mac(anairiats_sum_6, tmp115, atslab_1, arg1) ; break ; } while (0) ; return (tmp115) ; } /* end of [loop_20] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 8134(line=340, offs=5) -- 8483(line=353, offs=4) */ ATSstaticdec() ats_ptr_type aux_itemlst_19 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_aux_itemlst_19: tmp122 = (ats_sum_ptr_type)0 ; tmp114 = loop_20 (arg0, tmp122) ; return (tmp114) ; } /* end of [aux_itemlst_19] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5940(line=258, offs=19) -- 8614(line=363, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr: tmp123 = aux_item_18 (arg0) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp123)->tag != 0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_4, tmp123, atslab_0) ; tmp60 = tmp124 ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (((ats_sum_ptr_type)tmp123)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp60 = e0xp_tr_errmsg_opr_15 (arg0) ; break ; } while (0) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_loop_24: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp132 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp130, arg3) ; tmp133 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp133, atslab_0, tmp132) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp133 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp134 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp131 ; arg1 = arg1 ; arg2 = tmp134 ; arg3 = arg3 ; goto __ats_lab_loop_24 ; // tail call break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp135 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp135 ; break ; } while (0) ; return /* (tmp129) */ ; } /* end of [loop_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp136) ; // ATSlocal_void (tmp137) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp136 ; */ /* tmp137 = */ loop_24 (arg0, arg1, (&tmp136), arg2) ; tmp128 = tmp136 ; return (tmp128) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp127 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp127) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 8680(line=368, offs=12) -- 8718(line=368, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr: tmp126 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr) ; tmp125 = ats_castfn_mac(ats_ptr_type, tmp126) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_e0xp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_global_sats.c0000644000175000017500000000175113431250607022010 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_global_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_counter_sats.c0000644000175000017500000000220313431250607022220 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_counter_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_utils_sats.c0000644000175000017500000000260413431250607021706 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 */ /* prologues from statically loaded files */ #include "libats/CATS/linqueue_arr.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_utils_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_staexp_dats.c0000644000175000017500000042401713431250607023564 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* include some .h files */ #ifndef _ATS_HEADER_NONE #include "ats_config.h" #include "ats_basics.h" #include "ats_types.h" #include "ats_exception.h" #include "ats_memory.h" #endif /* _ATS_HEADER_NONE */ /* include some .cats files */ #ifndef _ATS_PRELUDE_NONE #include "prelude/CATS/basics.cats" #include "prelude/CATS/bool.cats" #include "prelude/CATS/char.cats" #include "prelude/CATS/byte.cats" #include "prelude/CATS/float.cats" #include "prelude/CATS/integer.cats" #include "prelude/CATS/integer_ptr.cats" #include "prelude/CATS/integer_fixed.cats" #include "prelude/CATS/sizetype.cats" #include "prelude/CATS/pointer.cats" #include "prelude/CATS/reference.cats" #include "prelude/CATS/string.cats" #include "prelude/CATS/lazy.cats" #include "prelude/CATS/lazy_vt.cats" #include "prelude/CATS/printf.cats" #include "prelude/CATS/list.cats" #include "prelude/CATS/option.cats" #include "prelude/CATS/array.cats" #include "prelude/CATS/matrix.cats" #endif /* _ATS_PRELUDE_NONE */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_s0arg_loc ; ats_ptr_type atslab_s0arg_sym ; ats_ptr_type atslab_s0arg_srt ; } anairiats_rec_8 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AT_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BANG_3) ; 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_COLON_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOT_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOTDOT_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LT_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GT_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSGT_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLT_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLTGT_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TILDE_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LAM_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OP_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITHTYPE_87) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRD2CTYPE_95) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_99) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTKIND_100) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_STRUCT_101) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRREC_110) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTUP_111) ; 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_INT_150) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CHAR_151) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FLOAT_152) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STRING_154) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LPAREN_157) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACKET_159) ; 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_ATLBRACKET_165) ; 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_syntax_2esats__WITHT0YPEsome_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__WITHT0YPEnone_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_si0de_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0taq_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0exp_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0exp_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labs0exp_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtext_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0qua_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_q0marg_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12one_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12two_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TILDE) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_symdot) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arrdim_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_sub) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_prop) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_vars) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0de) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_sqid) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_opid) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0nt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_c0har) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_f0loat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_s0tring) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp_nil) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extype) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extkind) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_lams) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyarr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tytup) (ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec) (ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec_ext) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_exi) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_ann) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_d2ctype) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labs0exp_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__q0marg_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_dyn) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xndec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atcon_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0mpmarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ide) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_dqid) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tmpid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AS) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_OF) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test) (ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BARSEMI_test) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACKET) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT_test) (ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLPAREN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN_deco) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLBRACE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE_deco) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun) (ats_ref_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BARSEMI) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun) (ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de_dlr) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0marg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labs0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtext) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0qua) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0expopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0typ) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0marg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmps0expseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmpqi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_S0Ed2ctype) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_asnameopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_atms0exp_tok) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_s0exp_tok) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type s0exp_list12_0 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type loop_3 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_5 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s0exp_tytup12_1 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s0exp_tyrec12_6 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s0exp_tyrec12_ext_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_s0expseq_BAR_s0expseq_8 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_labs0expseq_BAR_labs0expseq_9 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type loop_17 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_s0arrdim_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p_apps0exp_20 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_exts0exp_22 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_s0exp0_23 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type s0exp_annopt_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p_s0qua_rule2_28 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_cona0rgopt_36 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_coni0ndopt_37 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_d0atcon_39 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type d0cstarg_atyplst12_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_47 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_last_opt_01409_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_atms0exp_ngt_50 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type loop_52 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p_tmps0exp_51 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 1954(line=73, offs=1) -- 2185(line=84, offs=2) */ ATSstaticdec() ats_ptr_type s0exp_list12_0 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_s0exp_list12_0: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; ATS_FREE(arg1) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list (arg0, ats_castfn_mac(ats_ptr_type, tmp1), arg2) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list2 (arg0, ats_castfn_mac(ats_ptr_type, tmp2), ats_castfn_mac(ats_ptr_type, tmp3), arg2) ; break ; } while (0) ; return (tmp0) ; } /* end of [s0exp_list12_0] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_3 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; __ats_lab_loop_3: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp11 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp12 = ats_ptrget_mac(ats_ptr_type, tmp11) ; tmp13 = atspre_iadd (arg1, 1) ; arg0 = tmp12 ; arg1 = tmp13 ; goto __ats_lab_loop_3 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp10 = arg1 ; break ; } while (0) ; return (tmp10) ; } /* end of [loop_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp9) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp9 = loop_3 (arg0, 0) ; return (tmp9) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_5 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_loop_5: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp18 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp18 ; arg1 = arg1 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp17) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; // ATSlocal_void (tmp19) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp16 ; */ tmp16 = arg0 ; /* tmp19 = */ loop_5 ((&tmp16), arg1) ; tmp15 = tmp16 ; return (tmp15) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 2240(line=89, offs=1) -- 2607(line=105, offs=2) */ ATSstaticdec() ats_ptr_type s0exp_tytup12_1 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab_s0exp_tytup12_1: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; ATS_FREE(arg2) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tytup (arg0, arg1, -1, ats_castfn_mac(ats_ptr_type, tmp5), arg3) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp7 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp8 = list_vt_length_01501_ats_ptr_type (tmp6) ; tmp14 = list_vt_append_01504_ats_ptr_type (tmp6, tmp7) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tytup (arg0, arg1, tmp8, ats_castfn_mac(ats_ptr_type, tmp14), arg3) ; break ; } while (0) ; return (tmp4) ; } /* end of [s0exp_tytup12_1] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 2663(line=110, offs=1) -- 3033(line=126, offs=2) */ ATSstaticdec() ats_ptr_type s0exp_tyrec12_6 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab_s0exp_tyrec12_6: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; ATS_FREE(arg2) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec (arg0, arg1, -1, ats_castfn_mac(ats_ptr_type, tmp21), arg3) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp24 = list_vt_length_01501_ats_ptr_type (tmp22) ; tmp25 = list_vt_append_01504_ats_ptr_type (tmp22, tmp23) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec (arg0, arg1, tmp24, ats_castfn_mac(ats_ptr_type, tmp25), arg3) ; break ; } while (0) ; return (tmp20) ; } /* end of [s0exp_tyrec12_6] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 3089(line=131, offs=1) -- 3477(line=147, offs=2) */ ATSstaticdec() ats_ptr_type s0exp_tyrec12_ext_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_int_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab_s0exp_tyrec12_ext_7: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; ATS_FREE(arg2) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec_ext (arg0, arg1, -1, ats_castfn_mac(ats_ptr_type, tmp27), arg3) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp29 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp30 = list_vt_length_01501_ats_ptr_type (tmp28) ; tmp31 = list_vt_append_01504_ats_ptr_type (tmp28, tmp29) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec_ext (arg0, arg1, tmp30, ats_castfn_mac(ats_ptr_type, tmp31), arg3) ; break ; } while (0) ; return (tmp26) ; } /* end of [s0exp_tyrec12_ext_7] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 3537(line=152, offs=1) -- 3647(line=156, offs=33) */ ATSstaticdec() ats_ptr_type p_s0expseq_BAR_s0expseq_8 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_p_s0expseq_BAR_s0expseq_8: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; return (tmp32) ; } /* end of [p_s0expseq_BAR_s0expseq_8] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 3689(line=160, offs=1) -- 3851(line=166, offs=4) */ ATSstaticdec() ats_ptr_type p_labs0expseq_BAR_labs0expseq_9 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_bool_type, tmp34) ; __ats_lab_p_labs0expseq_BAR_labs0expseq_9: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test (arg0) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labs0exp) ; return (tmp33) ; } /* end of [p_labs0expseq_BAR_labs0expseq_9] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 4170(line=192, offs=3) -- 5433(line=261, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_int_type, tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp36), atslab_token_loc) ; tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp36), atslab_token_node) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp38)->tag != 143) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_1, tmp38, atslab_0) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp37, tmp39) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp38)->tag != 144) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_1, tmp38, atslab_0) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp37, tmp41) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp38)->tag != 1) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AT) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp38)->tag != 3) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp38)->tag != 21) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp38)->tag != 22) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp38)->tag != 30) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TILDE) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp38)->tag != 27) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp38)->tag != 5) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp50 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp50 ; tmp52 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_si0de_46) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp37, tmp52) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 5618(line=277, offs=3) -- 6628(line=330, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_uint_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_int_type, tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taq: tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp55), atslab_token_loc) ; /* ats_ptr_type tmp57 ; */ do { /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de_dlr, (&tmp57)) ; if (!tmp58) { goto __ats_lab_25_1 ; } tmp59 = ats_castfn_mac(ats_ptr_type, tmp57) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp61 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp60), atslab_token_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp61)->tag != 9) { goto __ats_lab_24_0 ; } __ats_lab_23_1: /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_symdot (tmp59, tmp60) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp64 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0taq_50) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (0, tmp56, tmp64) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp54) ; break ; } while (0) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp65 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp65 ; tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0taq_50) ; /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp56, tmp67) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 6733(line=340, offs=3) -- 7217(line=365, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sqi0de (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_uint_type, tmp71) ; ATSlocal (ats_bool_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sqi0de: tmp69 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp70 ; */ tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de, (&tmp70)) ; if (!tmp72) { goto __ats_lab_27_1 ; } tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_none (ats_castfn_mac(ats_ptr_type, tmp70)) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taq (arg0, arg1, arg2) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de, tmp69) ; tmp75 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp69) ; if (tmp75) { tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_some (tmp73, tmp74) ; } else { tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp71) ; } /* end of [if] */ break ; } while (0) ; return (tmp68) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sqi0de] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 7371(line=377, offs=3) -- 7433(line=378, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_asnameopt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_asnameopt: tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AS, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring) ; tmp76 = ats_castfn_mac(ats_ptr_type, tmp77) ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_asnameopt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 7699(line=395, offs=12) -- 8231(line=421, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labs0exp (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_bool_type, tmp85) ; // ATSlocal_void (tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labs0exp: tmp79 = ats_ptrget_mac(ats_int_type, arg2) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab (arg0, arg1, arg2) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_asnameopt, tmp79) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, tmp79) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp79) ; tmp85 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp79) ; if (tmp85) { tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labs0exp_make (tmp81, tmp82, tmp84) ; } else { tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp80), atslab_token_loc) ; tmp88 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labs0exp_68) ; /* tmp86 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (0, tmp87, tmp88) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labs0exp] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_17 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab_loop_17: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp100 ; goto __ats_lab_loop_17 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: break ; } while (0) ; return /* (tmp99) */ ; } /* end of [loop_17] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp98) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp98 = */ loop_17 (arg0) ; return /* (tmp98) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 8332(line=431, offs=1) -- 8901(line=453, offs=4) */ ATSstaticdec() ats_ptr_type p_s0arrdim_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_uint_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_bool_type, tmp96) ; // ATSlocal_void (tmp97) ; __ats_lab_p_s0arrdim_15: tmp90 = ats_ptrget_mac(ats_int_type, arg2) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACKET (arg0, arg1, arg2) ; tmp94 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp90) ; if (tmp94) { tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; } else { tmp93 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET, tmp90) ; tmp96 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp90) ; if (tmp96) { tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arrdim_make (tmp92, ats_castfn_mac(ats_ptr_type, tmp93), tmp95) ; } else { /* tmp97 = */ list_vt_free_01499_ats_ptr_type (tmp93) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp91) ; } /* end of [if] */ return (tmp89) ; } /* end of [p_s0arrdim_15] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 10226(line=515, offs=3) -- 10307(line=518, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp: tmp102 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0exp_67) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_atms0exp_tok, tmp102) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 10364(line=523, offs=1) -- 16927(line=796, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_atms0exp_tok (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_bool_type, tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_bool_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_bool_type, tmp118) ; // ATSlocal_void (tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_bool_type, tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_bool_type, tmp124) ; // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_int_type, tmp129) ; ATSlocal (ats_bool_type, tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_bool_type, tmp132) ; // ATSlocal_void (tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_bool_type, tmp136) ; ATSlocal (ats_int_type, tmp137) ; ATSlocal (ats_bool_type, tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_bool_type, tmp144) ; ATSlocal (ats_int_type, tmp145) ; // ATSlocal_void (tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_bool_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_bool_type, tmp151) ; // ATSlocal_void (tmp152) ; ATSlocal (ats_int_type, tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_bool_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_bool_type, tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_bool_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_bool_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_bool_type, tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_bool_type, tmp180) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_bool_type, tmp184) ; // ATSlocal_void (tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_bool_type, tmp188) ; // ATSlocal_void (tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_bool_type, tmp193) ; ATSlocal (ats_int_type, tmp194) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_atms0exp_tok: tmp104 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp105 ; */ tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_token_node) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de, (&tmp105)) ; if (!tmp107) { goto __ats_lab_31_0 ; } tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0de (ats_castfn_mac(ats_ptr_type, tmp105)) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp106)->tag != 150) { goto __ats_lab_32_0 ; } __ats_lab_31_1: /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0nt (arg3) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp106)->tag != 151) { goto __ats_lab_33_0 ; } __ats_lab_32_1: /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_c0har (arg3) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp106)->tag != 152) { goto __ats_lab_34_0 ; } __ats_lab_33_1: /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_f0loat (arg3) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp106)->tag != 154) { goto __ats_lab_35_0 ; } __ats_lab_34_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_s0tring (arg3) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp106)->tag != 64) { goto __ats_lab_36_0 ; } __ats_lab_35_1: /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, 0, arg2) ; tmp114 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp114) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_opid (arg3, tmp113) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taq, (&tmp105)) ; if (!tmp115) { goto __ats_lab_37_0 ; } tmp116 = ats_castfn_mac(ats_ptr_type, tmp105) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, 0, arg2) ; tmp118 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp118) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_sqid (tmp116, tmp117) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp106)->tag != 157) { goto __ats_lab_38_0 ; } __ats_lab_37_1: /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp120 = p_s0expseq_BAR_s0expseq_8 (arg0, 0, arg2) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp122 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp122) { tmp103 = s0exp_list12_0 (arg3, tmp120, tmp121) ; } else { /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp120) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN_deco (tmp106) ; if (!tmp124) { goto __ats_lab_39_1 ; } /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp126 = p_s0expseq_BAR_s0expseq_8 (arg0, 0, arg2) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp128 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp128) { tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLPAREN (tmp106) ; if (tmp130) { tmp129 = 0 ; } else { tmp129 = 1 ; } /* end of [if] */ tmp103 = s0exp_tytup12_1 (tmp129, arg3, tmp126, tmp127) ; } else { /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp126) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE_deco (tmp106) ; if (!tmp132) { goto __ats_lab_40_0 ; } /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp134 = p_labs0expseq_BAR_labs0expseq_9 (arg0, 0, arg2) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp136 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp136) { tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLBRACE (tmp106) ; if (tmp138) { tmp137 = 0 ; } else { tmp137 = 1 ; } /* end of [if] */ tmp103 = s0exp_tyrec12_6 (tmp137, arg3, tmp134, tmp135) ; } else { /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp134) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp106)->tag != 165) { goto __ats_lab_41_0 ; } __ats_lab_40_1: /* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp (arg0, 0, arg2) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET, tmp104) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &p_s0arrdim_15, tmp104) ; tmp144 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp144) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyarr (arg3, tmp141, tmp143) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp106)->tag != 111) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_6, tmp106, atslab_0) ; /* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp148 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp148) { tmp149 = p_s0expseq_BAR_s0expseq_8 (arg0, 0, arg2) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp151 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp151) { tmp103 = s0exp_tytup12_1 (tmp145, arg3, tmp149, tmp150) ; } else { /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp149) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp106)->tag != 110) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_6, tmp106, atslab_0) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE (arg0, 0, arg2) ; tmp156 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp156) { tmp157 = p_labs0expseq_BAR_labs0expseq_9 (arg0, 0, arg2) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp159 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp159) { tmp103 = s0exp_tyrec12_6 (tmp153, arg3, tmp157, tmp158) ; } else { /* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp157) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp106)->tag != 101) { goto __ats_lab_44_0 ; } __ats_lab_43_1: /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring (arg0, 0, arg2) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_OF, tmp104) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE, tmp104) ; tmp165 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp165) { tmp166 = p_labs0expseq_BAR_labs0expseq_9 (arg0, 0, arg2) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp168 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp168) { tmp169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp162), atslab_token_node) ; if (((ats_sum_ptr_type)tmp169)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 14886(line=714, offs=17) -- 14919(line=714, offs=50)") ; } tmp170 = ats_caselptrlab_mac(anairiats_sum_1, tmp169, atslab_0) ; tmp103 = s0exp_tyrec12_ext_7 (tmp170, arg3, tmp166, tmp167) ; } else { /* tmp171 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp166) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp106)->tag != 28) { goto __ats_lab_45_0 ; } __ats_lab_44_1: /* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst (arg0, 0, arg2) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT (arg0, 0, arg2) ; tmp175 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp175) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp (arg3, tmp173, tmp174) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp106)->tag != 29) { goto __ats_lab_46_0 ; } __ats_lab_45_1: /* tmp176 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp_nil (arg3) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp106)->tag != 161) { goto __ats_lab_47_0 ; } __ats_lab_46_1: /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq (arg0, 0, arg2) ; tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp180 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp180) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_uni (arg3, tmp178, tmp179) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp106)->tag != 159) { goto __ats_lab_48_0 ; } __ats_lab_47_1: /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq (arg0, 0, arg2) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET (arg0, 0, arg2) ; tmp184 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp184) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_exi (0, arg3, tmp182, tmp183) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp106)->tag != 167) { goto __ats_lab_49_0 ; } __ats_lab_48_1: /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq (arg0, 0, arg2) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET (arg0, 0, arg2) ; tmp188 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp188) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_exi (1, arg3, tmp186, tmp187) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp106)->tag != 95) { goto __ats_lab_50_0 ; } __ats_lab_49_1: /* tmp189 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_S0Ed2ctype, tmp104) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp104) ; tmp193 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp193) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_d2ctype (arg3, ats_castfn_mac(ats_ptr_type, tmp191), tmp192) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: __ats_lab_50_1: tmp194 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp194 ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_atms0exp_tok] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 17087(line=809, offs=5) -- 17306(line=818, offs=2) */ ATSstaticdec() ats_ptr_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; __ats_lab_loop_21: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp198 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_app (arg0, tmp197) ; arg0 = tmp199 ; arg1 = tmp198 ; goto __ats_lab_loop_21 ; // tail call break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp196 = arg0 ; break ; } while (0) ; return (tmp196) ; } /* end of [loop_21] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 17016(line=805, offs=1) -- 17501(line=828, offs=4) */ ATSstaticdec() ats_ptr_type p_apps0exp_20 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab_p_apps0exp_20: tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp) ; do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (tmp200 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp201 = ats_caselptrlab_mac(anairiats_sum_3, tmp200, atslab_0) ; tmp202 = ats_caselptrlab_mac(anairiats_sum_3, tmp200, atslab_1) ; ATS_FREE(tmp200) ; tmp195 = loop_21 (tmp201, tmp202) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (tmp200 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp195) ; } /* end of [p_apps0exp_20] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 17717(line=839, offs=1) -- 18845(line=887, offs=4) */ ATSstaticdec() ats_ptr_type p_exts0exp_22 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_int_type, tmp204) ; ATSlocal (ats_uint_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_bool_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; // ATSlocal_void (tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_bool_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_int_type, tmp217) ; __ats_lab_p_exts0exp_22: tmp204 = ats_ptrget_mac(ats_int_type, arg2) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp206), atslab_token_loc) ; tmp208 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp206), atslab_token_node) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp208)->tag != 99) { goto __ats_lab_56_0 ; } __ats_lab_55_1: /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring (arg0, 0, arg2) ; tmp211 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp204) ; if (tmp211) { tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extype (tmp206, tmp210, ats_castfn_mac(ats_ptr_type, tmp212)) ; } else { tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp205) ; } /* end of [if] */ break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp208)->tag != 100) { goto __ats_lab_57_0 ; } __ats_lab_56_1: /* tmp213 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring (arg0, 0, arg2) ; tmp215 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp204) ; if (tmp215) { tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extkind (tmp206, tmp214, ats_castfn_mac(ats_ptr_type, tmp216)) ; } else { tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp205) ; } /* end of [if] */ break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: tmp217 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp217 ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp203) ; } /* end of [p_exts0exp_22] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 18939(line=896, offs=1) -- 19332(line=917, offs=4) */ ATSstaticdec() ats_ptr_type p_s0exp0_23 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_bool_type, tmp220) ; ATSlocal (ats_bool_type, tmp221) ; ATSlocal (ats_int_type, tmp222) ; __ats_lab_p_s0exp0_23: /* ats_ptr_type tmp219 ; */ do { /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_apps0exp_20, (&tmp219)) ; if (!tmp220) { goto __ats_lab_59_1 ; } tmp218 = ats_castfn_mac(ats_ptr_type, tmp219) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_exts0exp_22, (&tmp219)) ; if (!tmp221) { goto __ats_lab_60_1 ; } tmp218 = ats_castfn_mac(ats_ptr_type, tmp219) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: tmp222 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp222 ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp218) ; } /* end of [p_s0exp0_23] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 19484(line=928, offs=1) -- 19615(line=934, offs=2) */ ATSstaticdec() ats_ptr_type s0exp_annopt_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; __ats_lab_s0exp_annopt_24: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_ann (arg0, tmp224) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp223 = arg0 ; break ; } while (0) ; return (tmp223) ; } /* end of [s0exp_annopt_24] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 19793(line=947, offs=3) -- 19869(line=950, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp: tmp226 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0exp_66) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_s0exp_tok, tmp226) ; return (tmp225) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 19920(line=955, offs=1) -- 20887(line=998, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_s0exp_tok (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_int_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_bool_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_bool_type, tmp234) ; // ATSlocal_void (tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_bool_type, tmp240) ; // ATSlocal_void (tmp241) ; ATSlocal (ats_int_type, tmp242) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_s0exp_tok: tmp228 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp229 ; */ tmp230 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_token_node) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_s0exp0_23, (&tmp229)) ; if (!tmp231) { goto __ats_lab_64_0 ; } tmp232 = ats_castfn_mac(ats_ptr_type, tmp229) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt (arg0, 0, arg2) ; tmp234 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp228) ; if (tmp234) { tmp227 = s0exp_annopt_24 (tmp232, tmp233) ; } else { tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp230)->tag != 58) { goto __ats_lab_65_0 ; } __ats_lab_64_1: /* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0marg) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt (arg0, 0, arg2) ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT, tmp228) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp228) ; tmp240 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp228) ; if (tmp240) { tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_lams (arg3, ats_castfn_mac(ats_ptr_type, tmp236), tmp237, tmp239) ; } else { /* tmp241 = */ list_vt_free_01499_ats_ptr_type (tmp236) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: __ats_lab_65_1: tmp242 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp242 ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp227) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__p_s0exp_tok] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 21047(line=1010, offs=3) -- 22306(line=1062, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtext (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_int_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_uint_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_bool_type, tmp250) ; // ATSlocal_void (tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_bool_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_bool_type, tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_int_type, tmp264) ; // ATSlocal_void (tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtext: tmp244 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp245 ; */ tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp248 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp247), atslab_token_loc) ; tmp249 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp247), atslab_token_node) ; do { /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt, (&tmp245)) ; if (!tmp250) { goto __ats_lab_67_0 ; } tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_srt (ats_castfn_mac(ats_ptr_type, tmp245)) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp249)->tag != 161) { goto __ats_lab_68_0 ; } __ats_lab_67_1: /* tmp251 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, 0, arg2) ; tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON, tmp244) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtext, tmp244) ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR, tmp244) ; tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp244) ; tmp258 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp244) ; if (tmp258) { tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BARSEMI_test, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; } else { tmp257 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE, tmp244) ; tmp260 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp244) ; if (tmp260) { tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_sub (tmp247, tmp252, tmp254, tmp256, ats_castfn_mac(ats_ptr_type, tmp257), tmp259) ; } else { /* tmp261 = */ list_vt_free_01499_ats_ptr_type (tmp257) ; tmp263 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtext_69) ; /* tmp262 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (0, tmp248, tmp263) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp246) ; } /* end of [if] */ break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: tmp264 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp264 ; tmp266 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtext_69) ; /* tmp265 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp248, tmp266) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp243) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtext] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 22434(line=1075, offs=1) -- 23109(line=1114, offs=4) */ ATSstaticdec() ats_ptr_type p_s0qua_rule2_28 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_int_type, tmp268) ; ATSlocal (ats_uint_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_bool_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_bool_type, tmp275) ; // ATSlocal_void (tmp276) ; __ats_lab_p_s0qua_rule2_28: tmp268 = ats_ptrget_mac(ats_int_type, arg2) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, arg1, arg2) ; tmp272 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp268) ; if (tmp272) { tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de) ; } else { tmp271 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON, tmp268) ; tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtext, tmp268) ; tmp275 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp268) ; if (tmp275) { tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_vars (tmp270, ats_castfn_mac(ats_ptr_type, tmp271), tmp274) ; } else { /* tmp276 = */ list_vt_free_01499_ats_ptr_type (tmp271) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp269) ; } /* end of [if] */ return (tmp267) ; } /* end of [p_s0qua_rule2_28] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 23165(line=1120, offs=3) -- 23654(line=1148, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0qua (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_bool_type, tmp281) ; ATSlocal (ats_bool_type, tmp282) ; ATSlocal (ats_int_type, tmp283) ; // ATSlocal_void (tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0qua: /* ats_ptr_type tmp278 ; */ tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp280 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp279), atslab_token_loc) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: __ats_lab_69_1: tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_s0qua_rule2_28, (&tmp278)) ; if (!tmp281) { goto __ats_lab_70_1 ; } tmp277 = ats_castfn_mac(ats_ptr_type, tmp278) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp282 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_apps0exp_20, (&tmp278)) ; if (!tmp282) { goto __ats_lab_71_1 ; } tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_prop (ats_castfn_mac(ats_ptr_type, tmp278)) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: __ats_lab_71_1: tmp283 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp283 ; tmp285 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0qua_70) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp280, tmp285) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp277) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0qua] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 23724(line=1154, offs=3) -- 23790(line=1155, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq: tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BARSEMI (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0qua) ; tmp286 = ats_castfn_mac(ats_ptr_type, tmp287) ; return (tmp286) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 23862(line=1162, offs=3) -- 23920(line=1163, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqs0expopt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqs0expopt: tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; tmp288 = ats_castfn_mac(ats_ptr_type, tmp289) ; return (tmp288) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqs0expopt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 23973(line=1168, offs=3) -- 24031(line=1169, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0expopt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0expopt: tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; tmp290 = ats_castfn_mac(ats_ptr_type, tmp291) ; return (tmp290) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0expopt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 24087(line=1174, offs=3) -- 24148(line=1175, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt: tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; tmp292 = ats_castfn_mac(ats_ptr_type, tmp293) ; return (tmp292) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 24259(line=1184, offs=10) -- 25060(line=1232, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0marg (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_int_type, tmp295) ; ATSlocal (ats_uint_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; // ATSlocal_void (tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_bool_type, tmp303) ; // ATSlocal_void (tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_int_type, tmp306) ; // ATSlocal_void (tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0marg: tmp295 = ats_ptrget_mac(ats_int_type, arg2) ; tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp298 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp297), atslab_token_loc) ; tmp299 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp297), atslab_token_node) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp299)->tag != 161) { goto __ats_lab_73_0 ; } __ats_lab_72_1: /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq (arg0, 0, arg2) ; tmp302 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp303 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp295) ; if (tmp303) { tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__q0marg_make (tmp297, tmp301, tmp302) ; } else { tmp305 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_q0marg_71) ; /* tmp304 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (0, tmp298, tmp305) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp296) ; } /* end of [if] */ break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: tmp306 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp306 ; tmp308 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_q0marg_71) ; /* tmp307 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp298, tmp308) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp294) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0marg] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 25107(line=1236, offs=3) -- 25156(line=1236, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0margseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0margseq: tmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0marg) ; tmp309 = ats_castfn_mac(ats_ptr_type, tmp310) ; return (tmp309) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0margseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 25254(line=1245, offs=1) -- 25348(line=1247, offs=43) */ ATSstaticdec() ats_ptr_type p_cona0rgopt_36 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp311) ; __ats_lab_p_cona0rgopt_36: tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0expopt (arg0, arg1, arg2) ; return (tmp311) ; } /* end of [p_cona0rgopt_36] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 25412(line=1253, offs=1) -- 26338(line=1301, offs=4) */ ATSstaticdec() ats_ptr_type p_coni0ndopt_37 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_int_type, tmp313) ; ATSlocal (ats_uint_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; // ATSlocal_void (tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_bool_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; // ATSlocal_void (tmp323) ; __ats_lab_p_coni0ndopt_37: tmp313 = ats_ptrget_mac(ats_int_type, arg2) ; tmp314 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp316 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp315), atslab_token_loc) ; tmp317 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp315), atslab_token_node) ; do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp317)->tag != 157) { goto __ats_lab_75_0 ; } __ats_lab_74_1: /* tmp318 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp321 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp313) ; if (tmp321) { tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list (tmp315, ats_castfn_mac(ats_ptr_type, tmp319), tmp320) ; tmp312 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp312, atslab_0, tmp322) ; } else { /* tmp323 = */ list_vt_free_01499_ats_ptr_type (tmp319) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp314) ; } /* end of [if] */ break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: __ats_lab_75_1: tmp312 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp312) ; } /* end of [p_coni0ndopt_37] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 26454(line=1310, offs=3) -- 26956(line=1340, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndec (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_int_type, tmp325) ; ATSlocal (ats_uint_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_bool_type, tmp330) ; ATSlocal (ats_bool_type, tmp331) ; // ATSlocal_void (tmp332) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndec: tmp325 = ats_ptrget_mac(ats_int_type, arg2) ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0marg) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de (arg0, arg1, arg2) ; tmp330 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp325) ; if (tmp330) { tmp329 = p_cona0rgopt_36 (arg0, 0, arg2) ; } else { tmp329 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp331 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp325) ; if (tmp331) { tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xndec_make (ats_castfn_mac(ats_ptr_type, tmp327), tmp328, tmp329) ; } else { /* tmp332 = */ list_vt_free_01499_ats_ptr_type (tmp327) ; tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp326) ; } /* end of [if] */ return (tmp324) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndec] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 27067(line=1350, offs=1) -- 27719(line=1383, offs=4) */ ATSstaticdec() ats_ptr_type p_d0atcon_39 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_int_type, tmp334) ; ATSlocal (ats_uint_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_bool_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_bool_type, tmp341) ; ATSlocal (ats_bool_type, tmp342) ; // ATSlocal_void (tmp343) ; __ats_lab_p_d0atcon_39: tmp334 = ats_ptrget_mac(ats_int_type, arg2) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0marg) ; tmp337 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de (arg0, arg1, arg2) ; tmp339 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp334) ; if (tmp339) { tmp338 = p_coni0ndopt_37 (arg0, 0, arg2) ; } else { tmp338 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp341 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp334) ; if (tmp341) { tmp340 = p_cona0rgopt_36 (arg0, 0, arg2) ; } else { tmp340 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp342 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp334) ; if (tmp342) { tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atcon_make (ats_castfn_mac(ats_ptr_type, tmp336), tmp337, tmp338, tmp340) ; } else { /* tmp343 = */ list_vt_free_01499_ats_ptr_type (tmp336) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp335) ; } /* end of [if] */ return (tmp333) ; } /* end of [p_d0atcon_39] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 27770(line=1387, offs=3) -- 27864(line=1389, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atconseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_bool_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atconseq: tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test (arg0) ; tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR (arg0, arg1, &p_d0atcon_39) ; tmp344 = ats_castfn_mac(ats_ptr_type, tmp346) ; return (tmp344) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atconseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 28020(line=1404, offs=3) -- 29039(line=1460, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0typ (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_int_type, tmp348) ; ATSlocal (ats_uint_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; // ATSlocal_void (tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; // ATSlocal_void (tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_bool_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_bool_type, tmp360) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0typ: tmp348 = ats_ptrget_mac(ats_int_type, arg2) ; tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* tmp351 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* tmp353 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (arg0, tmp349) ; tmp354 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp352), atslab_token_node) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp354)->tag != 6) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de (arg0, arg1, arg2) ; tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON, tmp348) ; tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &p_s0exp0_23, tmp348) ; tmp358 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp348) ; if (tmp358) { tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_some (tmp355, tmp357) ; } else { tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp349) ; } /* end of [if] */ break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: __ats_lab_77_1: tmp359 = p_s0exp0_23 (arg0, arg1, arg2) ; tmp360 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp348) ; if (tmp360) { tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_none (tmp359) ; } else { tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp349) ; } /* end of [if] */ break ; } while (0) ; return (tmp347) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0typ] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 29128(line=1468, offs=1) -- 29478(line=1481, offs=2) */ ATSstaticdec() ats_ptr_type d0cstarg_atyplst12_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_int_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; __ats_lab_d0cstarg_atyplst12_42: do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp362 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; ATS_FREE(arg1) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_dyn (-1, arg0, ats_castfn_mac(ats_ptr_type, tmp362), arg2) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: tmp363 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp364 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp365 = list_vt_length_01501_ats_ptr_type (tmp363) ; tmp366 = list_vt_append_01504_ats_ptr_type (tmp363, tmp364) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_dyn (tmp365, arg0, ats_castfn_mac(ats_ptr_type, tmp366), arg2) ; break ; } while (0) ; return (tmp361) ; } /* end of [d0cstarg_atyplst12_42] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 29537(line=1485, offs=3) -- 30487(line=1532, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstarg (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_int_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_uint_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; // ATSlocal_void (tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_bool_type, tmp376) ; // ATSlocal_void (tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_bool_type, tmp380) ; // ATSlocal_void (tmp381) ; ATSlocal (ats_int_type, tmp382) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstarg: tmp368 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp369 ; */ tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp371), atslab_token_node) ; do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp372)->tag != 161) { goto __ats_lab_81_0 ; } __ats_lab_80_1: /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq (arg0, 0, arg2) ; tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp376 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp368) ; if (tmp376) { tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_sta (tmp371, tmp374, tmp375) ; } else { tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp370) ; } /* end of [if] */ break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp372)->tag != 157) { goto __ats_lab_82_0 ; } __ats_lab_81_1: /* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp378 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0typ) ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp380 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp368) ; if (tmp380) { tmp367 = d0cstarg_atyplst12_42 (tmp371, tmp378, tmp379) ; } else { /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp378) ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp370) ; } /* end of [if] */ break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: __ats_lab_82_1: tmp382 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp382 ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp367) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstarg] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51232(line=1817, offs=5) -- 51354(line=1819, offs=58) */ ATSstaticdec() ats_ptr_type loop_47 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; __ats_lab_loop_47: do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp397 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp398 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; arg0 = tmp397 ; arg1 = tmp398 ; goto __ats_lab_loop_47 ; // tail call break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: tmp396 = arg0 ; break ; } while (0) ; return (tmp396) ; } /* end of [loop_47] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51194(line=1813, offs=11) -- 51390(line=1823, offs=2) */ ATSstaticdec() ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; __ats_lab_list_last_01407_ats_ptr_type: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp399 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp400 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp395 = loop_47 (tmp399, tmp400) ; return (tmp395) ; } /* end of [list_last_01407_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51601(line=1833, offs=15) -- 51690(line=1835, offs=27) */ ATSstaticdec() ats_ptr_type list_last_opt_01409_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; __ats_lab_list_last_opt_01409_ats_ptr_type: do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_90_0 ; } __ats_lab_87_1: tmp394 = list_last_01407_ats_ptr_type (arg0) ; tmp393 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp393, atslab_0, tmp394) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_90_1: tmp393 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp393) ; } /* end of [list_last_opt_01409_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 30608(line=1542, offs=3) -- 31512(line=1583, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0vararg (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; // ATSlocal_void (tmp386) ; // ATSlocal_void (tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0vararg: tmp384 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp385 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp384), atslab_token_node) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp385)->tag != 10) { goto __ats_lab_84_0 ; } __ats_lab_83_1: /* tmp386 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp383)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp383, atslab_0, tmp384) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp385)->tag != 11) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp387 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp383)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp383, atslab_0, tmp384) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: __ats_lab_85_1: tmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) ; do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (ats_castfn_mac(ats_ptr_type, tmp388) == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_86_1: tmp390 = ats_caselptrlab_mac(anairiats_sum_3, ats_castfn_mac(ats_ptr_type, tmp388), atslab_0) ; tmp391 = ats_caselptrlab_mac(anairiats_sum_3, ats_castfn_mac(ats_ptr_type, tmp388), atslab_1) ; tmp392 = list_last_opt_01409_ats_ptr_type (tmp391) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (tmp392 == (ats_sum_ptr_type)0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp401 = ats_caselptrlab_mac(anairiats_sum_7, tmp392, atslab_0) ; ATS_FREE(tmp392) ; tmp402 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp390), atslab_s0arg_loc) ; tmp403 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp401), atslab_s0arg_loc) ; tmp389 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp402, tmp403) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (tmp392 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: tmp389 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp390), atslab_s0arg_loc) ; break ; } while (0) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (ats_castfn_mac(ats_ptr_type, tmp388) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp389 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp384), atslab_token_loc) ; break ; } while (0) ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp383)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp383, atslab_0, tmp389) ; ats_selptrset_mac(anairiats_sum_2, tmp383, atslab_1, ats_castfn_mac(ats_ptr_type, tmp388)) ; break ; } while (0) ; return (tmp383) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0vararg] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 31609(line=1590, offs=3) -- 32014(line=1613, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exparg (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; // ATSlocal_void (tmp407) ; // ATSlocal_void (tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exparg: tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp406 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp405), atslab_token_node) ; do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp406)->tag != 10) { goto __ats_lab_95_0 ; } __ats_lab_94_1: /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp404 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGone_0) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp406)->tag != 11) { goto __ats_lab_96_0 ; } __ats_lab_95_1: /* tmp408 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp404 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGall_1) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: __ats_lab_96_1: tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; tmp404 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp404)->tag = 2 ; ats_selptrset_mac(anairiats_sum_1, tmp404, atslab_0, ats_castfn_mac(ats_ptr_type, tmp409)) ; break ; } while (0) ; return (tmp404) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exparg] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 32122(line=1623, offs=3) -- 32614(line=1652, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_witht0ype (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_int_type, tmp411) ; ATSlocal (ats_uint_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_int_type, tmp415) ; // ATSlocal_void (tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_bool_type, tmp418) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_witht0ype: tmp411 = ats_ptrget_mac(ats_int_type, arg2) ; tmp412 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp413 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp414 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp413), atslab_token_node) ; do { /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp414)->tag != 87) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp415 = ats_caselptrlab_mac(anairiats_sum_6, tmp414, atslab_0) ; /* tmp416 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp417 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp (arg0, 0, arg2) ; tmp418 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp411) ; if (tmp418) { tmp410 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp410, atslab_0, tmp415) ; ats_selptrset_mac(anairiats_sum_9, tmp410, atslab_1, tmp417) ; } else { tmp410 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp412) ; } /* end of [if] */ break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: __ats_lab_98_1: tmp410 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp410) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_witht0ype] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 32665(line=1657, offs=1) -- 32947(line=1673, offs=4) */ ATSstaticdec() ats_ptr_type p_atms0exp_ngt_50 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_int_type, tmp422) ; __ats_lab_p_atms0exp_ngt_50: tmp420 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp421 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp420), atslab_token_node) ; do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp421)->tag != 22) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp422 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp422 ; tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: __ats_lab_100_1: tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp (arg0, arg1, arg2) ; break ; } while (0) ; return (tmp419) ; } /* end of [p_atms0exp_ngt_50] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 33072(line=1683, offs=5) -- 33279(line=1695, offs=4) */ ATSstaticdec() ats_ptr_type loop_52 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; __ats_lab_loop_52: do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp424 = arg0 ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_102_1: tmp425 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp426 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_app (arg0, tmp425) ; arg0 = tmp427 ; arg1 = tmp426 ; goto __ats_lab_loop_52 ; // tail call break ; } while (0) ; return (tmp424) ; } /* end of [loop_52] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 33001(line=1678, offs=1) -- 33504(line=1707, offs=4) */ ATSstaticdec() ats_ptr_type p_tmps0exp_51 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; __ats_lab_p_tmps0exp_51: tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun (arg0, arg1, arg2, &p_atms0exp_ngt_50) ; do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (tmp428 == (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp429 = ats_caselptrlab_mac(anairiats_sum_3, tmp428, atslab_0) ; tmp430 = ats_caselptrlab_mac(anairiats_sum_3, tmp428, atslab_1) ; ATS_FREE(tmp428) ; tmp423 = loop_52 (tmp429, tmp430) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: // if (tmp428 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_104_1: tmp423 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp423) ; } /* end of [p_tmps0exp_51] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 33555(line=1711, offs=3) -- 33710(line=1718, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmps0expseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmps0expseq: tmp432 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp433 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &p_tmps0exp_51) ; tmp431 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0mpmarg_make (tmp432, ats_castfn_mac(ats_ptr_type, tmp433)) ; return (tmp431) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmps0expseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_staexp.dats: 33784(line=1724, offs=3) -- 34795(line=1775, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_S0Ed2ctype (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_int_type, tmp435) ; ATSlocal (ats_uint_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_bool_type, tmp440) ; ATSlocal (ats_bool_type, tmp441) ; ATSlocal (ats_bool_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_bool_type, tmp446) ; // ATSlocal_void (tmp447) ; ATSlocal (ats_int_type, tmp448) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_S0Ed2ctype: tmp435 = ats_ptrget_mac(ats_int_type, arg2) ; tmp436 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp438 ; */ tmp439 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp437), atslab_token_node) ; do { /* branch: __ats_lab_105 */ __ats_lab_105_0: __ats_lab_105_1: tmp440 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de, (&tmp438)) ; if (!tmp440) { goto __ats_lab_106_1 ; } tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ide (ats_castfn_mac(ats_ptr_type, tmp438)) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: __ats_lab_106_1: tmp441 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de, (&tmp438)) ; if (!tmp441) { goto __ats_lab_107_1 ; } tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_dqid (ats_castfn_mac(ats_ptr_type, tmp438)) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: __ats_lab_107_1: tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmpqi0de, (&tmp438)) ; if (!tmp442) { goto __ats_lab_108_1 ; } tmp443 = ats_castfn_mac(ats_ptr_type, tmp438) ; tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmps0expseq, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT_test) ; tmp445 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT, tmp435) ; tmp446 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp435) ; if (tmp446) { tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tmpid (tmp443, ats_castfn_mac(ats_ptr_type, tmp444), tmp445) ; } else { /* tmp447 = */ list_vt_free_01499_ats_ptr_type (tmp444) ; tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: __ats_lab_108_1: tmp448 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp448 ; tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp434) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_S0Ed2ctype] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_staexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_hipat_dats.c0000644000175000017500000024440613431250607023025 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hipat_loc ; ats_ptr_type atslab_hipat_type ; ats_ptr_type atslab_hipat_node ; ats_ptr_type atslab_hipat_asvar ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_primval_loc ; ats_ptr_type atslab_primval_type ; ats_ptr_type atslab_primval_node ; } anairiats_rec_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSErefarg_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEvararg_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIPAT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPbool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPchar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPstring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPi0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPf0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPempty_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_any_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPann_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKbool_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKchar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKi0nt_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKf0loat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTfunarg_fail_5) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_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_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_llint_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_hipat_set_asvar) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_nshared) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argref) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argtmpref) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_selcon) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_freeconlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_freeconenv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_freeconenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freetupenv_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg) (ats_ptr_type, ats_ptr_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type hipat_getset_asvar_0 (ats_ptr_type arg0) ; static ats_void_type aux_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ; static ats_void_type auxlst_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type aux_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) ; static ats_void_type auxlst_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ; static ats_void_type auxvar_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ; static ats_void_type auxpat_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ; static ats_void_type auxpatlst_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxvar_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) ; static ats_void_type auxpat_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) ; static ats_void_type auxpatlst_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ; static ats_void_type auxvar_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type auxpatck_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type auxmatch_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 1881(line=67, offs=1) -- 2153(line=82, offs=4) */ ATSstaticdec() ats_ptr_type hipat_getset_asvar_0 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_hipat_getset_asvar_0: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hipat_asvar) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp1 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp0 = tmp2 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hipat_loc) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any (tmp3) ; tmp6 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp6, atslab_0, tmp4) ; /* tmp5 = */ patsopt_hipat_set_asvar (arg0, tmp6) ; tmp0 = tmp4 ; break ; } while (0) ; return (tmp0) ; } /* end of [hipat_getset_asvar_0] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 2367(line=96, offs=5) -- 3167(line=134, offs=4) */ ATSstaticdec() ats_void_type aux_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; __ats_lab_aux_1: tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp8)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp8)->tag != 1) { goto __ats_lab_4_0 ; } __ats_lab_3_1: break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp8)->tag != 15) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_3, tmp8, atslab_0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp9 ; arg5 = arg5 ; arg6 = arg6 ; goto __ats_lab_aux_1 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_loc) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg4) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab (tmp10, arg3) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp10, tmp11) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select (tmp10, tmp13, tmp11, arg5, arg6, tmp12) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp10, tmp13) ; tmp16 = hipat_getset_asvar_0 (arg4) ; /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp16, tmp15) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp14) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (arg0, arg1, arg2, arg4, tmp15) ; break ; } while (0) ; return /* (tmp7) */ ; } /* end of [aux_1] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 3189(line=136, offs=5) -- 3605(line=158, offs=4) */ ATSstaticdec() ats_void_type auxlst_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; __ats_lab_auxlst_2: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp21 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ; // tmp22 = ats_caselptrlab_mac(anairiats_sum_4, tmp20, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_4, tmp20, atslab_1) ; /* tmp24 = */ aux_1 (arg0, arg1, arg2, tmp22, tmp23, arg4, arg5) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp21 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_auxlst_2 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: break ; } while (0) ; return /* (tmp19) */ ; } /* end of [auxlst_2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 3678(line=164, offs=1) -- 3834(line=173, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec: tmp26 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ; if (((ats_sum_ptr_type)tmp26)->tag != 13) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 3724(line=168, offs=5) -- 3777(line=169, offs=47)") ; } tmp27 = ats_caselptrlab_mac(anairiats_sum_5, tmp26, atslab_2) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_5, tmp26, atslab_3) ; /* tmp25 = */ auxlst_2 (arg0, arg1, arg2, tmp27, arg4, tmp28) ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 4106(line=189, offs=1) -- 4304(line=203, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con: tmp31 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp31)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp31, atslab_0, arg4) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (arg3, arg5, tmp31, arg2) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp30) ; return /* (tmp29) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 4519(line=217, offs=5) -- 6324(line=289, offs=4) */ ATSstaticdec() ats_void_type aux_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_int_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_bool_type, tmp45) ; ATSlocal (ats_bool_type, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_int_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_int_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; // ATSlocal_void (tmp55) ; ATSlocal (ats_bool_type, tmp56) ; __ats_lab_aux_5: tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_node) ; tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp34)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp34)->tag != 1) { goto __ats_lab_10_0 ; } __ats_lab_9_1: break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp34)->tag != 15) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_3, tmp34, atslab_0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = tmp35 ; arg6 = arg6 ; arg7 = arg7 ; goto __ats_lab_aux_5 ; // tail call break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_loc) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg5) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp36, tmp37) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_selcon (tmp36, tmp38, tmp37, arg6, arg7, arg4) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp36, tmp38) ; /* ats_int_type tmp41 ; */ tmp41 = 0 ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp34)->tag != 14) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_3, tmp34, atslab_0) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_3, tmp34, atslab_1) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp43) ; tmp45 = atspre_neg_bool (tmp46) ; if (tmp45) { tmp48 = atspre_iadd (tmp41, 1) ; tmp41 = tmp48 ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp43, tmp40) ; } else { tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon (tmp36, tmp37, arg6, arg7, arg4) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp36, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, tmp49) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp43, tmp50) ; } /* end of [if] */ tmp42 = tmp44 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp42 = arg5 ; break ; } while (0) ; tmp52 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp42), atslab_hipat_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp52)->tag != 0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp52)->tag != 1) { goto __ats_lab_16_0 ; } __ats_lab_15_1: break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp52)->tag != 14) { goto __ats_lab_17_0 ; } __ats_lab_16_1: break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp53 = atspre_add_int_int (tmp41, 1) ; tmp41 = tmp53 ; tmp54 = hipat_getset_asvar_0 (tmp42) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp54, tmp40) ; break ; } while (0) ; tmp56 = atspre_gte_int_int (tmp41, 1) ; if (tmp56) { /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp39) ; } else { /* empty */ } /* end of [if] */ /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (arg0, arg1, arg2, tmp42, tmp40) ; break ; } while (0) ; return /* (tmp32) */ ; } /* end of [aux_5] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 6346(line=291, offs=5) -- 6807(line=311, offs=4) */ ATSstaticdec() ats_void_type auxlst_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; ATSlocal (ats_int_type, tmp63) ; __ats_lab_auxlst_6: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ; // tmp60 = ats_caselptrlab_mac(anairiats_sum_4, tmp58, atslab_0) ; tmp61 = ats_caselptrlab_mac(anairiats_sum_4, tmp58, atslab_1) ; /* tmp62 = */ aux_5 (arg0, arg1, arg2, arg3, tmp60, tmp61, arg5, arg6) ; tmp63 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp63 ; arg4 = tmp59 ; arg5 = arg5 ; arg6 = arg6 ; goto __ats_lab_auxlst_6 ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: break ; } while (0) ; return /* (tmp57) */ ; } /* end of [auxlst_6] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 6880(line=317, offs=1) -- 7270(line=338, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum: tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_loc) ; tmp66 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ; if (((ats_sum_ptr_type)tmp66)->tag != 11) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 7087(line=331, offs=5) -- 7140(line=332, offs=47)") ; } tmp67 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_1) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_2) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_3) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con (arg0, arg1, arg2, tmp65, tmp67, arg4) ; /* tmp64 = */ auxlst_6 (arg0, arg1, arg2, 0, tmp69, arg4, tmp68) ; return /* (tmp64) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 7370(line=346, offs=1) -- 9608(line=457, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_llint_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_char_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp: tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_loc) ; tmp73 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp73)->tag != 0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp73)->tag != 1) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp73)->tag != 11) { goto __ats_lab_23_0 ; } __ats_lab_22_1: /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum (arg0, arg1, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp73)->tag != 12) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_3, tmp73, atslab_1) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con (arg0, arg1, arg2, tmp72, tmp74, arg4) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp73)->tag != 2) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_8, tmp73, atslab_0) ; tmp77 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp77)->tag = 1 ; ats_selptrset_mac(anairiats_sum_8, tmp77, atslab_0, tmp75) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp77, arg2) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp76) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp73)->tag != 3) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_6, tmp73, atslab_0) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string (tmp78) ; tmp81 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp81)->tag = 1 ; ats_selptrset_mac(anairiats_sum_8, tmp81, atslab_0, ats_castfn_mac(ats_int_type, tmp79)) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp81, arg2) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp80) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp73)->tag != 4) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_9, tmp73, atslab_0) ; tmp84 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp84)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp84, atslab_0, tmp82) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp84, arg2) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp83) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp73)->tag != 5) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_10, tmp73, atslab_0) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp87)->tag = 3 ; ats_selptrset_mac(anairiats_sum_10, tmp87, atslab_0, tmp85) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp87, arg2) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp86) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp73)->tag != 6) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_6, tmp73, atslab_0) ; tmp90 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp90)->tag = 5 ; ats_selptrset_mac(anairiats_sum_6, tmp90, atslab_0, tmp88) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp90, arg2) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp89) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp73)->tag != 8) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_6, tmp73, atslab_0) ; tmp93 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp93)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp93, atslab_0, tmp91) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp93, arg2) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp92) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp73)->tag != 9) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_6, tmp73, atslab_0) ; tmp96 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp96)->tag = 7 ; ats_selptrset_mac(anairiats_sum_6, tmp96, atslab_0, tmp94) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp96, arg2) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp95) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp73)->tag != 10) { goto __ats_lab_32_0 ; } __ats_lab_31_1: break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp73)->tag != 13) { goto __ats_lab_33_0 ; } __ats_lab_32_1: /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec (arg0, arg1, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp73)->tag != 14) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_3, tmp73, atslab_1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp97 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp ; // tail call break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp73)->tag != 15) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_3, tmp73, atslab_0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp98 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp ; // tail call break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: /* tmp99 = */ atspre_print_string (ATSstrcst("hipatck_ccomp: loc0 = ")) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location (tmp72) ; /* tmp101 = */ atspre_print_newline () ; /* tmp102 = */ atspre_print_string (ATSstrcst("hipatck_ccomp: hip0 = ")) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat (arg3) ; /* tmp104 = */ atspre_print_newline () ; tmp105 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 9439(line=451, offs=5) -- 9449(line=451, offs=15)", ATSstrcst("\n")) ; /* tmp71 = */ ats_exit_errmsg (1, tmp105) ; break ; } while (0) ; return /* (tmp71) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 9835(line=471, offs=5) -- 10863(line=511, offs=4) */ ATSstaticdec() ats_void_type auxvar_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_int_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; // ATSlocal_void (tmp118) ; __ats_lab_auxvar_9: tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_loc) ; tmp108 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_node) ; if (((ats_sum_ptr_type)tmp108)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 9995(line=480, offs=7) -- 10024(line=480, offs=36)") ; } tmp109 = ats_caselptrlab_mac(anairiats_sum_6, tmp108, atslab_0) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp109, arg2) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (tmp109) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp112 = atspre_eq_int_int (tmp111, 0) ; if (!tmp112) { goto __ats_lab_37_1 ; } break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg4) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp107, tmp113) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab (tmp107, arg3) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select (tmp107, tmp114, tmp113, arg5, arg6, tmp115) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp107, tmp114) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp109, tmp117) ; /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp116) ; break ; } while (0) ; return /* (tmp106) */ ; } /* end of [auxvar_9] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 10888(line=514, offs=1) -- 11581(line=547, offs=4) */ ATSstaticdec() ats_void_type auxpat_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ // ATSlocal_void (tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab_auxpat_10: tmp120 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_node) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp120)->tag != 1) { goto __ats_lab_40_0 ; } __ats_lab_39_1: /* tmp119 = */ auxvar_9 (arg0, arg1, arg2, arg3, arg4, arg5, arg6) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp120)->tag != 14) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp121 ; arg5 = arg5 ; arg6 = arg6 ; goto __ats_lab_auxpat_10 ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp120)->tag != 15) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp122 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp122 ; arg5 = arg5 ; arg6 = arg6 ; goto __ats_lab_auxpat_10 ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp123 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_loc) ; tmp124 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_asvar) ; if (tmp124 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 11414(line=541, offs=9) -- 11441(line=541, offs=36)") ; } tmp125 = ats_caselptrlab_mac(anairiats_sum_2, tmp124, atslab_0) ; tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapenv (arg0, tmp125) ; if (tmp126 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 11450(line=542, offs=9) -- 11508(line=543, offs=43)") ; } tmp127 = ats_caselptrlab_mac(anairiats_sum_2, tmp126, atslab_0) ; ATS_FREE(tmp126) ; /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (arg0, arg1, arg2, arg4, tmp127) ; break ; } while (0) ; return /* (tmp119) */ ; } /* end of [auxpat_10] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 11606(line=550, offs=1) -- 12036(line=576, offs=4) */ ATSstaticdec() ats_void_type auxpatlst_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; // ATSlocal_void (tmp133) ; __ats_lab_auxpatlst_11: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ; // tmp131 = ats_caselptrlab_mac(anairiats_sum_4, tmp129, atslab_0) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_4, tmp129, atslab_1) ; /* tmp133 = */ auxpat_10 (arg0, arg1, arg2, tmp131, tmp132, arg4, arg5) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp130 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_auxpatlst_11 ; // tail call break ; } while (0) ; return /* (tmp128) */ ; } /* end of [auxpatlst_11] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 12112(line=582, offs=1) -- 12271(line=591, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec: tmp135 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ; if (((ats_sum_ptr_type)tmp135)->tag != 13) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 12158(line=586, offs=5) -- 12211(line=587, offs=47)") ; } tmp136 = ats_caselptrlab_mac(anairiats_sum_5, tmp135, atslab_2) ; tmp137 = ats_caselptrlab_mac(anairiats_sum_5, tmp135, atslab_3) ; /* tmp134 = */ auxpatlst_11 (arg0, arg1, arg2, tmp136, arg4, tmp137) ; return /* (tmp134) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 12529(line=608, offs=1) -- 13501(line=649, offs=4) */ ATSstaticdec() ats_void_type auxvar_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ // ATSlocal_void (tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; // ATSlocal_void (tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_bool_type, tmp144) ; ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; // ATSlocal_void (tmp153) ; __ats_lab_auxvar_13: tmp139 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_loc) ; tmp140 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_node) ; if (((ats_sum_ptr_type)tmp140)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 12701(line=618, offs=7) -- 12730(line=618, offs=36)") ; } tmp141 = ats_caselptrlab_mac(anairiats_sum_6, tmp140, atslab_0) ; /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp141, arg2) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (tmp141) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: tmp144 = atspre_eq_int_int (tmp143, 0) ; if (!tmp144) { goto __ats_lab_46_1 ; } break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp141) ; if (!tmp145) { goto __ats_lab_47_1 ; } tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg5) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon (tmp139, tmp146, arg6, arg7, arg4) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp139, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, tmp147) ; /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp141, tmp148) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: __ats_lab_47_1: tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg5) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp139, tmp149) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_selcon (tmp139, tmp150, tmp149, arg6, arg7, arg4) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp139, tmp150) ; /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp141, tmp152) ; /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp151) ; break ; } while (0) ; return /* (tmp138) */ ; } /* end of [auxvar_13] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 13526(line=652, offs=1) -- 14137(line=680, offs=4) */ ATSstaticdec() ats_void_type auxpat_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ // ATSlocal_void (tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab_auxpat_14: tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_node) ; do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp155)->tag != 0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp155)->tag != 1) { goto __ats_lab_50_0 ; } __ats_lab_49_1: /* tmp154 = */ auxvar_13 (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp155)->tag != 14) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_3, tmp155, atslab_1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = tmp156 ; arg6 = arg6 ; arg7 = arg7 ; goto __ats_lab_auxpat_14 ; // tail call break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp155)->tag != 15) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp157 = ats_caselptrlab_mac(anairiats_sum_3, tmp155, atslab_0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = tmp157 ; arg6 = arg6 ; arg7 = arg7 ; goto __ats_lab_auxpat_14 ; // tail call break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp158 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_asvar) ; if (tmp158 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 13973(line=674, offs=9) -- 14000(line=674, offs=36)") ; } tmp159 = ats_caselptrlab_mac(anairiats_sum_2, tmp158, atslab_0) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapenv (arg0, tmp159) ; if (tmp160 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 14009(line=675, offs=9) -- 14060(line=675, offs=60)") ; } tmp161 = ats_caselptrlab_mac(anairiats_sum_2, tmp160, atslab_0) ; ATS_FREE(tmp160) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (arg0, arg1, arg2, arg5, tmp161) ; break ; } while (0) ; return /* (tmp154) */ ; } /* end of [auxpat_14] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 14162(line=683, offs=1) -- 14620(line=707, offs=4) */ ATSstaticdec() ats_void_type auxpatlst_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ // ATSlocal_void (tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; // ATSlocal_void (tmp167) ; ATSlocal (ats_int_type, tmp168) ; __ats_lab_auxpatlst_15: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ; tmp165 = ats_caselptrlab_mac(anairiats_sum_4, tmp163, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_4, tmp163, atslab_1) ; /* tmp167 = */ auxpat_14 (arg0, arg1, arg2, arg3, tmp165, tmp166, arg5, arg6) ; tmp168 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp168 ; arg4 = tmp164 ; arg5 = arg5 ; arg6 = arg6 ; goto __ats_lab_auxpatlst_15 ; // tail call break ; } while (0) ; return /* (tmp162) */ ; } /* end of [auxpatlst_15] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 14693(line=713, offs=1) -- 14921(line=726, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum: tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ; if (((ats_sum_ptr_type)tmp170)->tag != 11) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 14797(line=721, offs=5) -- 14850(line=722, offs=47)") ; } tmp171 = ats_caselptrlab_mac(anairiats_sum_7, tmp170, atslab_2) ; tmp172 = ats_caselptrlab_mac(anairiats_sum_7, tmp170, atslab_3) ; /* tmp169 = */ auxpatlst_15 (arg0, arg1, arg2, 0, tmp172, arg4, tmp171) ; return /* (tmp169) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 15008(line=734, offs=5) -- 15953(line=776, offs=4) */ ATSstaticdec() ats_void_type auxvar_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp173) ; ATSlocal (ats_int_type, tmp174) ; // ATSlocal_void (tmp175) ; ATSlocal (ats_bool_type, tmp176) ; ATSlocal (ats_bool_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_bool_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; __ats_lab_auxvar_17: tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (arg3) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (arg3, arg2) ; tmp176 = atspre_gt_int_int (tmp174, 0) ; if (tmp176) { tmp178 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg4), atslab_primval_node) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: __ats_lab_55_1: tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (arg3) ; if (!tmp179) { goto __ats_lab_56_1 ; } tmp177 = ats_false_bool ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_nshared (arg4) ; break ; } while (0) ; if (tmp177) { tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (arg3) ; tmp181 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg4), atslab_primval_type) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp180, tmp181) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (tmp180, tmp182, arg4) ; /* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp184) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp180, tmp182) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, arg3, tmp185) ; } else { /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, arg3, arg4) ; } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp173) */ ; } /* end of [auxvar_17] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 16022(line=782, offs=1) -- 17480(line=868, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp: tmp187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_loc) ; tmp188 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp188)->tag != 0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp188)->tag != 1) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp189 = ats_caselptrlab_mac(anairiats_sum_6, tmp188, atslab_0) ; /* tmp186 = */ auxvar_17 (arg0, arg1, arg2, tmp189, arg4) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp188)->tag != 2) { goto __ats_lab_60_0 ; } __ats_lab_59_1: break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp188)->tag != 3) { goto __ats_lab_61_0 ; } __ats_lab_60_1: break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp188)->tag != 4) { goto __ats_lab_62_0 ; } __ats_lab_61_1: break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp188)->tag != 5) { goto __ats_lab_63_0 ; } __ats_lab_62_1: break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp188)->tag != 6) { goto __ats_lab_64_0 ; } __ats_lab_63_1: break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp188)->tag != 8) { goto __ats_lab_65_0 ; } __ats_lab_64_1: break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp188)->tag != 9) { goto __ats_lab_66_0 ; } __ats_lab_65_1: break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp188)->tag != 10) { goto __ats_lab_67_0 ; } __ats_lab_66_1: break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp188)->tag != 11) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp190 = ats_caselptrlab_mac(anairiats_sum_7, tmp188, atslab_0) ; tmp191 = ats_caselptrlab_mac(anairiats_sum_7, tmp188, atslab_1) ; /* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if (arg0, arg4, tmp190, tmp191) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum (arg0, arg1, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp188)->tag != 12) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp193 = ats_caselptrlab_mac(anairiats_sum_3, tmp188, atslab_0) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_3, tmp188, atslab_1) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if (arg0, arg4, tmp193, tmp194) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp188)->tag != 13) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp195 = ats_caselptrlab_mac(anairiats_sum_5, tmp188, atslab_1) ; /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freetupenv_if (arg0, arg4, tmp195) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec (arg0, arg1, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp188)->tag != 14) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_3, tmp188, atslab_1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp197 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp ; // tail call break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp188)->tag != 15) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp198 = ats_caselptrlab_mac(anairiats_sum_3, tmp188, atslab_0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp198 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp ; // tail call break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: __ats_lab_72_1: /* tmp199 = */ atspre_print_string (ATSstrcst("himatch_ccomp: hip0 = ")) ; /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat (arg3) ; /* tmp201 = */ atspre_print_newline () ; tmp202 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 17373(line=862, offs=5) -- 17382(line=862, offs=14)", ATSstrcst("\n")) ; /* tmp186 = */ ats_exit_errmsg (1, tmp202) ; break ; } while (0) ; return /* (tmp186) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 17581(line=876, offs=1) -- 17821(line=886, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp203) ; // ATSlocal_void (tmp204) ; // ATSlocal_void (tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp: /* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_freeconenv (arg0) ; /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (arg0, arg1, arg2, arg3, arg4) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_freeconenv (arg0) ; tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_loc) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_freeconlst (arg1, tmp207, tmp206) ; return /* (tmp203) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 18018(line=898, offs=3) -- 18383(line=920, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_int_type, tmp210) ; ATSlocal (ats_bool_type, tmp211) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg: tmp209 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_hisexp_node) ; do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp209)->tag != 6) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_12, tmp209, atslab_0) ; tmp211 = atspre_eq_int_int (tmp210, 0) ; if (tmp211) { tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg (arg0, arg1, arg2) ; } else { tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argref (arg0, arg1, arg2) ; } /* end of [if] */ break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp209)->tag != 13) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argtmpref (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: __ats_lab_75_1: tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg (arg0, arg1, arg2) ; break ; } while (0) ; return (tmp208) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 18516(line=931, offs=1) -- 19301(line=977, offs=4) */ ATSstaticdec() ats_ptr_type auxpatck_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; // ATSlocal_void (tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_int_type, tmp221) ; __ats_lab_auxpatck_22: do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp213 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp215 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ; tmp216 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp214), atslab_hipat_loc) ; tmp217 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp214), atslab_hipat_type) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg (tmp216, tmp217, arg2) ; /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (arg0, arg1, arg4, tmp214, tmp218) ; tmp221 = atspre_add_int_int (arg2, 1) ; tmp220 = auxpatck_22 (arg0, arg1, tmp221, tmp215, arg4) ; tmp213 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp213, atslab_0, tmp218) ; ats_selptrset_mac(anairiats_sum_4, tmp213, atslab_1, tmp220) ; break ; } while (0) ; return (tmp213) ; } /* end of [auxpatck_22] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 19330(line=979, offs=5) -- 19733(line=1000, offs=4) */ ATSstaticdec() ats_void_type auxmatch_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; __ats_lab_auxmatch_23: do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp223 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ; tmp224 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ; ATS_FREE(arg4) ; // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp225 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (arg0, arg1, arg2, tmp225, tmp223) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp226 ; arg4 = tmp224 ; goto __ats_lab_auxmatch_23 ; // tail call break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: break ; } while (0) ; return /* (tmp222) */ ; } /* end of [auxmatch_23] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 18463(line=926, offs=1) -- 19896(line=1007, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifunarg_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp212) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifunarg_ccomp: tmp228 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp228)->tag = 5 ; ats_selptrset_mac(anairiats_sum_3, tmp228, atslab_0, arg4) ; ats_selptrset_mac(anairiats_sum_3, tmp228, atslab_1, arg2) ; tmp229 = auxpatck_22 (arg0, arg1, 0, arg5, tmp228) ; /* tmp212 = */ auxmatch_23 (arg0, arg1, arg3, arg5, tmp229) ; return /* (tmp212) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifunarg_ccomp] */ /* static load function */ // 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_label_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_hipat_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_stacst2_sats.c0000644000175000017500000000427413431250607022136 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_stacst2_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_emit2_dats.c0000644000175000017500000015761113431250607022741 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_primval_loc ; ats_ptr_type atslab_primval_type ; ats_ptr_type atslab_primval_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_instr_loc ; ats_ptr_type atslab_instr_node ; } anairiats_rec_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_10 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEfun_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcst_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVrefarg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfunlab_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcfunlab_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcst_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvar_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcstmat_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvarmat_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall2_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextfcall_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextmcall_9) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_fun_isbot) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fundec) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_is_void) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2envlst) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexplst_sep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_bool_type funval_isbot_0 (ats_ptr_type arg0) ; static ats_void_type aux_funval_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type aux_funval2_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_int_type auxflab_4 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type aux_funenv_3 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type emit_fparamlst_5 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type emit_freeaft_fun_6 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux1_8 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type aux1lst_9 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type aux2_10 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type aux2lst_11 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type auxgoto_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type loop_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type loop_19 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 1905(line=73, offs=1) -- 2107(line=84, offs=4) */ ATSstaticdec() ats_bool_type funval_isbot_0 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_funval_isbot_0: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_primval_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 6) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (tmp2) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_fun_isbot (tmp3) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp0 = ats_false_bool ; break ; } while (0) ; return (tmp0) ; } /* end of [funval_isbot_0] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 2159(line=88, offs=5) -- 3159(line=128, offs=4) */ ATSstaticdec() ats_void_type aux_funval_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab_aux_funval_1: tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_primval_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp5)->tag != 6) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, tmp5, atslab_0) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fundec (tmp6) ; if (tmp7) { /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, tmp6) ; } else { /* tmp4 = */ aux_funval2_2 (arg0, arg1, arg2, arg3) ; } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp5)->tag != 31) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_2, tmp5, atslab_0) ; /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp8) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp5)->tag != 32) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_3, tmp5, atslab_1) ; /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp9) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp5)->tag != 35) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp5)->tag != 36) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp5)->tag != 37) { goto __ats_lab_8_0 ; } __ats_lab_7_1: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp5)->tag != 38) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: /* tmp4 = */ aux_funval2_2 (arg0, arg1, arg2, arg3) ; break ; } while (0) ; return /* (tmp4) */ ; } /* end of [aux_funval_1] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 3188(line=130, offs=5) -- 4169(line=179, offs=4) */ ATSstaticdec() ats_void_type aux_funval2_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; __ats_lab_aux_funval2_2: tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_hisexp_node) ; if (((ats_sum_ptr_type)tmp11)->tag != 5) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 3408(line=141, offs=5) -- 3464(line=144, offs=24)") ; } tmp12 = ats_caselptrlab_mac(anairiats_sum_4, tmp11, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_4, tmp11, atslab_1) ; tmp14 = ats_caselptrlab_mac(anairiats_sum_4, tmp11, atslab_2) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSfunclo")) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp12 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp12 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: ats_ptrget_mac(ats_bool_type, arg3) = ats_true_bool ; break ; } while (0) ; if (ats_ptrget_mac(ats_bool_type, arg3)) { /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("_clo")) ; } else { /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("_fun")) ; } /* end of [if] */ /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN (arg0) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN (arg0) ; if (ats_ptrget_mac(ats_bool_type, arg3)) { tmp22 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp22, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr) ; ats_selptrset_mac(anairiats_sum_5, tmp22, atslab_1, tmp13) ; } else { tmp22 = tmp13 ; } /* end of [if] */ /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexplst_sep (arg0, tmp22, ATSstrcst(", ")) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp14) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp10) */ ; } /* end of [aux_funval2_2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 4295(line=188, offs=5) -- 4594(line=205, offs=4) */ ATSstaticdec() ats_int_type auxflab_4 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab_auxflab_4: tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (arg1) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp29 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_6, tmp29, atslab_0) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (tmp30) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2envlst (arg0, tmp31, 0) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp29 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp28 = 0 ; break ; } while (0) ; return (tmp28) ; } /* end of [auxflab_4] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 4220(line=183, offs=5) -- 4785(line=217, offs=4) */ ATSstaticdec() ats_int_type aux_funenv_3 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_aux_funenv_3: tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_primval_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp32)->tag != 31) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_2, tmp32, atslab_0) ; tmp27 = auxflab_4 (arg0, tmp33) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp32)->tag != 32) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_3, tmp32, atslab_1) ; tmp27 = auxflab_4 (arg0, tmp34) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp27 = 0 ; break ; } while (0) ; return (tmp27) ; } /* end of [aux_funenv_3] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 4835(line=222, offs=1) -- 5131(line=239, offs=4) */ ATSstaticdec() ats_void_type emit_fparamlst_5 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_bool_type, tmp37) ; __ats_lab_emit_fparamlst_5: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp37 = atspre_gt_int_int (arg1, 0) ; if (tmp37) { /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist (arg0, arg2) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: break ; } while (0) ; return /* (tmp35) */ ; } /* end of [emit_fparamlst_5] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 5185(line=243, offs=5) -- 5485(line=260, offs=4) */ ATSstaticdec() ats_void_type emit_freeaft_fun_6 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_int_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; __ats_lab_emit_freeaft_fun_6: tmp39 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_primval_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp39)->tag != 30) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_7, tmp39, atslab_1) ; tmp41 = ats_caselptrlab_mac(anairiats_sum_7, tmp39, atslab_2) ; tmp42 = atspre_gt_int_int (tmp40, 0) ; if (tmp42) { /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSfreeclo(")) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp41) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: break ; } while (0) ; return /* (tmp38) */ ; } /* end of [emit_freeaft_fun_6] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 6356(line=308, offs=3) -- 7423(line=358, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_bool_type, tmp52) ; ATSlocal (ats_bool_type, tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_bool_type, tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; ATSlocal (ats_int_type, tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall: tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_instr_loc) ; tmp47 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp47)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 6405(line=311, offs=5) -- 6466(line=312, offs=53)") ; } tmp48 = ats_caselptrlab_mac(anairiats_sum_9, tmp47, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_9, tmp47, atslab_1) ; tmp50 = ats_caselptrlab_mac(anairiats_sum_9, tmp47, atslab_2) ; tmp51 = ats_caselptrlab_mac(anairiats_sum_9, tmp47, atslab_3) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_is_void (tmp48) ; if (tmp52) { tmp53 = ats_true_bool ; } else { tmp53 = funval_isbot_0 (tmp49) ; } /* end of [if] */ /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove")) ; if (tmp53) { /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("_void")) ; } else { /* empty */ } /* end of [if] */ /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp48) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* ats_bool_type tmp59 ; */ tmp59 = ats_false_bool ; /* tmp60 = */ aux_funval_1 (arg0, tmp49, tmp50, (&tmp59)) ; if (tmp59) { tmp61 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp61, atslab_0, tmp49) ; ats_selptrset_mac(anairiats_sum_5, tmp61, atslab_1, tmp51) ; } else { tmp61 = tmp51 ; } /* end of [if] */ /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN (arg0) ; tmp63 = aux_funenv_3 (arg0, tmp49) ; /* tmp64 = */ emit_fparamlst_5 (arg0, tmp63, tmp61) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; /* tmp45 = */ emit_freeaft_fun_6 (arg0, tmp49) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 7486(line=365, offs=1) -- 7869(line=388, offs=4) */ ATSstaticdec() ats_void_type aux1_8 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; ATSlocal (ats_bool_type, tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; __ats_lab_aux1_8: /* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_tlcal(")) ; tmp70 = atspre_lte_int_int (arg1, 1) ; if (tmp70) { /* tmp69 = */ atspre_fprintf_exn (arg0, ATSstrcst("apy%i"), arg3) ; } else { /* tmp69 = */ atspre_fprintf_exn (arg0, ATSstrcst("a%ipy%i"), arg1, arg3) ; } /* end of [if] */ /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg2) ; /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; return /* (tmp67) */ ; } /* end of [aux1_8] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 7892(line=391, offs=1) -- 8152(line=408, offs=4) */ ATSstaticdec() ats_void_type aux1lst_9 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; ATSlocal (ats_int_type, tmp77) ; __ats_lab_aux1lst_9: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp75 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; /* tmp76 = */ aux1_8 (arg0, arg1, tmp74, arg3) ; tmp77 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp75 ; arg3 = tmp77 ; goto __ats_lab_aux1lst_9 ; // tail call break ; } while (0) ; return /* (tmp73) */ ; } /* end of [aux1lst_9] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 8178(line=411, offs=1) -- 8661(line=444, offs=4) */ ATSstaticdec() ats_void_type aux2_10 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_bool_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_bool_type, tmp83) ; __ats_lab_aux2_10: /* tmp79 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSargmove_tlcal(")) ; tmp81 = atspre_lte_int_int (arg1, 1) ; if (tmp81) { /* tmp80 = */ atspre_fprintf_exn (arg0, ATSstrcst("arg%i"), arg3) ; } else { /* tmp80 = */ atspre_fprintf_exn (arg0, ATSstrcst("a%irg%i"), arg1, arg3) ; } /* end of [if] */ tmp83 = atspre_lte_int_int (arg1, 1) ; if (tmp83) { /* tmp82 = */ atspre_fprintf_exn (arg0, ATSstrcst(", apy%i"), arg3) ; } else { /* tmp82 = */ atspre_fprintf_exn (arg0, ATSstrcst(", a%ipy%i"), arg1, arg3) ; } /* end of [if] */ /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; return /* (tmp78) */ ; } /* end of [aux2_10] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 8684(line=447, offs=1) -- 8958(line=465, offs=4) */ ATSstaticdec() ats_void_type aux2lst_11 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_int_type, tmp88) ; __ats_lab_aux2lst_11: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; /* tmp87 = */ aux2_10 (arg0, arg1, tmp85, arg3) ; tmp88 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp86 ; arg3 = tmp88 ; goto __ats_lab_aux2lst_11 ; // tail call break ; } while (0) ; return /* (tmp84) */ ; } /* end of [aux2lst_11] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 8984(line=468, offs=1) -- 9238(line=488, offs=4) */ ATSstaticdec() ats_void_type auxgoto_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; __ats_lab_auxgoto_12: /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSfgoto(")) ; /* tmp91 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__patsflab_")) ; /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_funlab (arg0, arg1) ; /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; return /* (tmp89) */ ; } /* end of [auxgoto_12] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 9314(line=494, offs=3) -- 9678(line=520, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_int_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall2: tmp94 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp94)->tag != 7) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 9339(line=497, offs=1) -- 9406(line=501, offs=19)") ; } tmp95 = ats_caselptrlab_mac(anairiats_sum_10, tmp94, atslab_1) ; tmp96 = ats_caselptrlab_mac(anairiats_sum_10, tmp94, atslab_2) ; tmp97 = ats_caselptrlab_mac(anairiats_sum_10, tmp94, atslab_4) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATStailcal_beg()\n")) ; /* tmp99 = */ aux1lst_9 (arg0, tmp96, tmp97, 0) ; /* tmp100 = */ aux2lst_11 (arg0, tmp96, tmp97, 0) ; /* tmp101 = */ auxgoto_12 (arg0, tmp95) ; /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATStailcal_end()\n")) ; return /* (tmp93) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 9786(line=528, offs=3) -- 10394(line=568, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extfcall (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_bool_type, tmp108) ; // ATSlocal_void (tmp109) ; ATSlocal (ats_bool_type, tmp110) ; // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extfcall: tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_instr_loc) ; tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp104)->tag != 8) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 9839(line=534, offs=1) -- 9896(line=537, offs=29)") ; } tmp105 = ats_caselptrlab_mac(anairiats_sum_4, tmp104, atslab_0) ; tmp106 = ats_caselptrlab_mac(anairiats_sum_4, tmp104, atslab_1) ; tmp107 = ats_caselptrlab_mac(anairiats_sum_4, tmp104, atslab_2) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_is_void (tmp105) ; tmp110 = atspre_neg_bool (tmp108) ; if (tmp110) { /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove(")) ; } else { /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_void(")) ; } /* end of [if] */ /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp105) ; /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSextfcall(")) ; /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp106) ; /* tmp115 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist (arg0, tmp107) ; /* tmp102 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("))) ;")) ; return /* (tmp102) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extfcall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 10481(line=574, offs=3) -- 11168(line=617, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extmcall (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_bool_type, tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_bool_type, tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extmcall: tmp119 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_instr_loc) ; tmp120 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp120)->tag != 9) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 10531(line=578, offs=1) -- 10598(line=582, offs=29)") ; } tmp121 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_0) ; tmp122 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_1) ; tmp123 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_2) ; tmp124 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_3) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_is_void (tmp121) ; tmp127 = atspre_neg_bool (tmp125) ; if (tmp127) { /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove(")) ; } else { /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_void(")) ; } /* end of [if] */ /* tmp128 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp121) ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSextmcall(")) ; /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp122) ; /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp123) ; /* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist (arg0, tmp124) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("))) ;")) ; return /* (tmp118) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extmcall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 11374(line=634, offs=5) -- 11815(line=659, offs=4) */ ATSstaticdec() ats_int_type loop_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; // ATSlocal_void (tmp142) ; ATSlocal (ats_bool_type, tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; ATSlocal (ats_int_type, tmp146) ; __ats_lab_loop_17: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp138 = arg3 ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (tmp139) ; tmp143 = atspre_gt_int_int (arg3, 0) ; if (tmp143) { /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, arg2) ; } else { /* empty */ } /* end of [if] */ /* tmp144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp141) ; /* tmp145 = */ atspre_fprintf_exn (arg0, ATSstrcst(" env%i"), arg3) ; tmp146 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp140 ; arg2 = arg2 ; arg3 = tmp146 ; goto __ats_lab_loop_17 ; // tail call break ; } while (0) ; return (tmp138) ; } /* end of [loop_17] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 11273(line=625, offs=3) -- 11873(line=663, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funenvlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funenvlst: tmp137 = loop_17 (arg0, arg1, ATSstrcst(", "), 0) ; return (tmp137) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funenvlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 11960(line=670, offs=1) -- 12422(line=697, offs=4) */ ATSstaticdec() ats_void_type loop_19 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; // ATSlocal_void (tmp151) ; ATSlocal (ats_bool_type, tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_int_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; __ats_lab_loop_19: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp150 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; tmp152 = atspre_gt_int_int (arg1, 0) ; if (tmp152) { /* tmp151 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, arg3) ; } else { /* empty */ } /* end of [if] */ /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp149) ; /* tmp154 = */ atspre_fprintf_exn (arg0, ATSstrcst(" arg%i"), arg4) ; tmp155 = atspre_add_int_int (arg1, 1) ; tmp156 = atspre_add_int_int (arg4, 1) ; arg0 = arg0 ; arg1 = tmp155 ; arg2 = tmp150 ; arg3 = arg3 ; arg4 = tmp156 ; goto __ats_lab_loop_19 ; // tail call break ; } while (0) ; return /* (tmp148) */ ; } /* end of [loop_19] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit2.dats: 11929(line=667, offs=3) -- 12482(line=701, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarglst (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp147) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarglst: /* tmp147 = */ loop_19 (arg0, arg1, arg2, ATSstrcst(", "), 0) ; return /* (tmp147) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarglst] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_emit2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_hidynexp_util_dats.c0000644000175000017500000031725213431250607023424 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_hipat_loc ; ats_ptr_type atslab_hipat_type ; ats_ptr_type atslab_hipat_node ; ats_ptr_type atslab_hipat_asvar ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_hivaldec_loc ; ats_ptr_type atslab_hivaldec_pat ; ats_ptr_type atslab_hivaldec_def ; } anairiats_rec_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEfun_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIPAT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPbool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPchar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPstring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPempty_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_any_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPann_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIDEXP_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEbool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEchar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEstring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEi0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEf0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEempty_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextval_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpcst_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpvar_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfoldat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErec_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEseq_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselvar_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselptr_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElam_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDfundecs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_rec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEsome_var_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEsome_emp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDsome_any_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDsome_var_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDsome_emp_3) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_eq_bool_bool) (ats_bool_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_is_wild) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_wild) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipatlst_subtest) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_subtest) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isall_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isexi_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_lvalue) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEsome_var_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEsome_emp_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDsome_any_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDsome_var_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDsome_emp_3) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_void_type prerr_interror_02046_ () ; static ats_bool_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_forall_funenv_01366_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_forall_fun_01367_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type labhipat_is_wild_17 (ats_ptr_type arg0) ; static ats_bool_type labhipat_subtest_20 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_exists_funenv_01325_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_exists_fun_01326_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type hidexplst_is_value_28 (ats_ptr_type arg0) ; static ats_bool_type ftest_30 (ats_ptr_type arg0) ; static ats_bool_type labhidexplst_is_value_29 (ats_ptr_type arg0) ; static ats_bool_type hidecl_is_value_31 (ats_ptr_type arg0) ; static ats_bool_type hideclist_is_value_32 (ats_ptr_type arg0) ; static ats_bool_type hivaldec_is_value_33 (ats_ptr_type arg0) ; static ats_bool_type hivaldecs_is_value_34 (ats_ptr_type arg0) ; static ats_bool_type auxseq_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ; static ats_void_type loop_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_filter_funenv_01338_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_filter_fun_01339_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type __ats_fun_44 (ats_ptr_type arg0) ; static ats_ptr_type hidexp_is_varemp_45 (ats_ptr_type arg0) ; static ats_ptr_type aux_47 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type hidecl_is_anybind_46 (ats_ptr_type arg0) ; static ats_ptr_type dropz_48 (ats_ptr_type arg0) ; static ats_ptr_type loop_51 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 1630(line=51, offs=3) -- 1669(line=51, offs=42) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_hidynexp_util")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 2216(line=82, offs=19) -- 2271(line=83, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_hisexp (arg0) ; tmp1 = ats_castfn_mac(ats_ptr_type, tmp2) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 2302(line=85, offs=19) -- 2375(line=86, offs=61) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_set2_hisexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_set2_hisexp: /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_hisexp (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; return /* (tmp3) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_set2_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 2430(line=92, offs=3) -- 2661(line=106, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fun: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp (arg0) ; if (tmp5 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 2449(line=94, offs=5) -- 2485(line=94, offs=41)") ; } tmp6 = ats_caselptrlab_mac(anairiats_sum_1, tmp5, atslab_0) ; tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp6), atslab_hisexp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp7)->tag != 5) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_3, tmp7, atslab_0) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (tmp8 != (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_true_bool ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp4 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp4 = ats_false_bool ; break ; } while (0) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fun] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1637(line=52, offs=15) -- 1735(line=57, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_02046_ () { /* local vardec */ // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; __ats_lab_prerr_interror_02046_: /* tmp16 = */ atspre_prerr_string (ATSstrcst("INTERROR(")) ; /* tmp17 = */ prerr_FILENAME_02045_ () ; /* tmp15 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp15) */ ; } /* end of [prerr_interror_02046_] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 2746(line=112, offs=3) -- 3125(line=133, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_arg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_arg: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp (arg0) ; if (tmp10 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 2765(line=114, offs=5) -- 2800(line=114, offs=40)") ; } tmp11 = ats_caselptrlab_mac(anairiats_sum_1, tmp10, atslab_0) ; tmp12 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp11), atslab_hisexp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp12)->tag != 5) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_3, tmp12, atslab_1) ; tmp9 = tmp13 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: /* tmp14 = */ prerr_interror_02046_ () ; /* tmp18 = */ atspre_prerr_string (ATSstrcst(": d2cst_get_type_arg: hse = ")) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp (tmp11) ; /* tmp20 = */ atspre_prerr_newline () ; tmp22 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 3036(line=128, offs=14) -- 3052(line=128, offs=30)", ATSstrcst("\n")) ; /* tmp21 = */ atspre_assert_errmsg (ats_false_bool, tmp22) ; /* tmp9 = */ ats_exit (1) ; break ; } while (0) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_arg] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 3191(line=137, offs=3) -- 3572(line=159, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_res (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_res: tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp (arg0) ; if (tmp24 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 3210(line=139, offs=5) -- 3245(line=139, offs=40)") ; } tmp25 = ats_caselptrlab_mac(anairiats_sum_1, tmp24, atslab_0) ; tmp26 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp25), atslab_hisexp_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp26)->tag != 5) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_3, tmp26, atslab_2) ; tmp23 = tmp27 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: /* tmp28 = */ prerr_interror_02046_ () ; /* tmp29 = */ atspre_prerr_string (ATSstrcst(": d2cst_get_type_arg: hse = ")) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp (tmp25) ; /* tmp31 = */ atspre_prerr_newline () ; tmp33 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 3483(line=154, offs=14) -- 3499(line=154, offs=30)", ATSstrcst("\n")) ; /* tmp32 = */ atspre_assert_errmsg (ats_false_bool, tmp33) ; /* tmp23 = */ ats_exit (1) ; break ; } while (0) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_res] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 3656(line=164, offs=19) -- 3711(line=165, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_hisexp (arg0) ; tmp34 = ats_castfn_mac(ats_ptr_type, tmp35) ; return (tmp34) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 3742(line=167, offs=19) -- 3815(line=168, offs=61) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_set2_hisexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_set2_hisexp: /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_hisexp (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; return /* (tmp36) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_set2_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 3868(line=173, offs=19) -- 4076(line=185, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp (arg0) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (tmp38 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_8_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_1, tmp38, atslab_0) ; tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp39), atslab_hisexp_node) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp40)->tag != 5) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_3, tmp40, atslab_0) ; tmp37 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp37, atslab_0, tmp41) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp37 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp38 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp37 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 4157(line=190, offs=19) -- 4365(line=202, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_funclo (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_funclo: tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp (arg0) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp43 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_12_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_1, tmp43, atslab_0) ; tmp45 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp44), atslab_hisexp_node) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp45)->tag != 5) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_3, tmp45, atslab_0) ; tmp42 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp42, atslab_0, tmp46) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: tmp42 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp43 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp42 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_funclo] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 4444(line=208, offs=3) -- 4629(line=219, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_is_wild (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_is_wild: tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_hipat_node) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp48)->tag != 0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp47 = ats_true_bool ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp48)->tag != 1) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp47 = ats_true_bool ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp48)->tag != 15) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_5, tmp48, atslab_0) ; arg0 = tmp49 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_is_wild ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp48)->tag != 14) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_5, tmp48, atslab_1) ; arg0 = tmp50 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_is_wild ; // tail call break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp47 = ats_false_bool ; break ; } while (0) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_is_wild] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 32895(line=1167, offs=7) -- 33167(line=1176, offs=21) */ ATSstaticdec() ats_bool_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_bool_type, tmp57) ; __ats_lab_loop_15: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp57 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp55, arg2) ; if (tmp57) { arg0 = tmp56 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_15 ; // tail call } else { tmp54 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp54 = ats_true_bool ; break ; } while (0) ; return (tmp54) ; } /* end of [loop_15] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 32865(line=1166, offs=20) -- 33218(line=1180, offs=4) */ ATSstaticdec() ats_bool_type list_forall_funenv_01366_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp53) ; __ats_lab_list_forall_funenv_01366_ats_ptr_type: tmp53 = loop_15 (arg0, arg1, arg2) ; return (tmp53) ; } /* end of [list_forall_funenv_01366_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 33288(line=1183, offs=25) -- 33550(line=1192, offs=4) */ ATSstaticdec() ats_bool_type list_forall_fun_01367_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp52) ; __ats_lab_list_forall_fun_01367_ats_ptr_type: tmp52 = list_forall_funenv_01366_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp52) ; } /* end of [list_forall_fun_01367_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 4686(line=223, offs=3) -- 4732(line=223, offs=49) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipatlst_is_wild (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipatlst_is_wild: tmp51 = list_forall_fun_01367_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_is_wild) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipatlst_is_wild] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 4816(line=230, offs=5) -- 4921(line=233, offs=4) */ ATSstaticdec() ats_bool_type labhipat_is_wild_17 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab_labhipat_is_wild_17: tmp60 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_is_wild (tmp60) ; return (tmp59) ; } /* end of [labhipat_is_wild_17] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 4795(line=228, offs=3) -- 5004(line=237, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_wild (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_wild: tmp58 = list_forall_fun_01367_ats_ptr_type (arg0, &labhipat_is_wild_17) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_wild] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 5085(line=243, offs=3) -- 6972(line=332, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_bool_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_bool_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_char_type, tmp83) ; ATSlocal (ats_char_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest: tmp62 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_hipat_node) ; tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_hipat_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: if (((ats_sum_ptr_type)tmp63)->tag != 0) { goto __ats_lab_24_1 ; } __ats_lab_23_2: tmp61 = ats_true_bool ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: if (((ats_sum_ptr_type)tmp63)->tag != 1) { goto __ats_lab_25_1 ; } __ats_lab_24_2: tmp61 = ats_true_bool ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: if (((ats_sum_ptr_type)tmp63)->tag != 15) { goto __ats_lab_26_1 ; } __ats_lab_25_2: tmp64 = ats_caselptrlab_mac(anairiats_sum_5, tmp63, atslab_0) ; arg0 = arg0 ; arg1 = tmp64 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: if (((ats_sum_ptr_type)tmp63)->tag != 14) { goto __ats_lab_27_0 ; } __ats_lab_26_2: tmp65 = ats_caselptrlab_mac(anairiats_sum_5, tmp63, atslab_1) ; arg0 = arg0 ; arg1 = tmp65 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest ; // tail call break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp62)->tag != 15) { goto __ats_lab_28_0 ; } __ats_lab_27_1: __ats_lab_27_2: tmp66 = ats_caselptrlab_mac(anairiats_sum_5, tmp62, atslab_0) ; arg0 = tmp66 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp62)->tag != 14) { goto __ats_lab_29_0 ; } __ats_lab_28_1: __ats_lab_28_2: tmp67 = ats_caselptrlab_mac(anairiats_sum_5, tmp62, atslab_1) ; arg0 = tmp67 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp62)->tag != 11) { goto __ats_lab_33_0 ; } __ats_lab_29_1: __ats_lab_29_2: tmp68 = ats_caselptrlab_mac(anairiats_sum_7, tmp62, atslab_1) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_7, tmp62, atslab_3) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp63)->tag != 11) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_7, tmp63, atslab_1) ; tmp71 = ats_caselptrlab_mac(anairiats_sum_7, tmp63, atslab_3) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp68, tmp70) ; if (tmp72) { tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_subtest (tmp69, tmp71) ; } else { tmp61 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp63)->tag != 12) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_5, tmp63, atslab_1) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp68, tmp73) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp61 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp62)->tag != 12) { goto __ats_lab_37_0 ; } __ats_lab_33_1: __ats_lab_33_2: tmp74 = ats_caselptrlab_mac(anairiats_sum_5, tmp62, atslab_1) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp63)->tag != 11) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_7, tmp63, atslab_1) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_7, tmp63, atslab_3) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp74, tmp75) ; if (tmp77) { tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_wild (tmp76) ; } else { tmp61 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp63)->tag != 12) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_5, tmp63, atslab_1) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp74, tmp78) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp61 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp62)->tag != 2) { goto __ats_lab_40_0 ; } __ats_lab_37_1: __ats_lab_37_2: tmp79 = ats_caselptrlab_mac(anairiats_sum_8, tmp62, atslab_0) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp63)->tag != 2) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_8, tmp63, atslab_0) ; tmp61 = atspre_eq_int_int (tmp79, tmp80) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp61 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp62)->tag != 4) { goto __ats_lab_43_0 ; } __ats_lab_40_1: __ats_lab_40_2: tmp81 = ats_caselptrlab_mac(anairiats_sum_9, tmp62, atslab_0) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp63)->tag != 4) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_9, tmp63, atslab_0) ; tmp61 = atspre_eq_bool_bool (tmp81, tmp82) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp61 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp62)->tag != 5) { goto __ats_lab_46_0 ; } __ats_lab_43_1: __ats_lab_43_2: tmp83 = ats_caselptrlab_mac(anairiats_sum_10, tmp62, atslab_0) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp63)->tag != 5) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_10, tmp63, atslab_0) ; tmp61 = atspre_eq_char_char (tmp83, tmp84) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: tmp61 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp62)->tag != 6) { goto __ats_lab_49_0 ; } __ats_lab_46_1: __ats_lab_46_2: tmp85 = ats_caselptrlab_mac(anairiats_sum_11, tmp62, atslab_0) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp63)->tag != 6) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_11, tmp63, atslab_0) ; tmp61 = atspre_eq_string_string (tmp85, tmp86) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: __ats_lab_48_1: tmp61 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp62)->tag != 7) { goto __ats_lab_52_0 ; } __ats_lab_49_1: __ats_lab_49_2: tmp87 = ats_caselptrlab_mac(anairiats_sum_11, tmp62, atslab_0) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp63)->tag != 7) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_11, tmp63, atslab_0) ; tmp61 = atspre_eq_string_string (tmp87, tmp88) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: tmp61 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp62)->tag != 10) { goto __ats_lab_55_0 ; } __ats_lab_52_1: __ats_lab_52_2: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp63)->tag != 10) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp61 = ats_true_bool ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: __ats_lab_54_1: tmp61 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp62)->tag != 13) { goto __ats_lab_58_0 ; } __ats_lab_55_1: __ats_lab_55_2: tmp89 = ats_caselptrlab_mac(anairiats_sum_12, tmp62, atslab_2) ; do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp63)->tag != 13) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_12, tmp63, atslab_2) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_subtest (tmp89, tmp90) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: tmp61 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: __ats_lab_58_2: tmp61 = ats_false_bool ; break ; } while (0) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 7050(line=338, offs=3) -- 7392(line=357, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipatlst_subtest (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_bool_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipatlst_subtest: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_59_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp93 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest (tmp92, tmp94) ; if (tmp96) { arg0 = tmp93 ; arg1 = tmp95 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipatlst_subtest ; // tail call } else { tmp91 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: tmp91 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp91 = ats_false_bool ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp91 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipatlst_subtest] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 7455(line=363, offs=5) -- 7640(line=373, offs=4) */ ATSstaticdec() ats_bool_type labhipat_subtest_20 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; __ats_lab_labhipat_subtest_20: // tmp98 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; // tmp100 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (tmp98, tmp100) ; if (tmp102) { tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_subtest (tmp99, tmp101) ; } else { tmp97 = ats_false_bool ; } /* end of [if] */ return (tmp97) ; } /* end of [labhipat_subtest_20] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 7727(line=379, offs=3) -- 8088(line=398, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_subtest (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_bool_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_subtest: do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_65_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp105 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp107 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp108 = labhipat_subtest_20 (tmp104, tmp106) ; if (tmp108) { arg0 = tmp105 ; arg1 = tmp107 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_subtest ; // tail call } else { tmp103 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp103 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp103 = ats_false_bool ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp103 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; return (tmp103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_subtest] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 8196(line=406, offs=3) -- 8448(line=424, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_empty (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_empty: tmp110 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_hidexp_node) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp110)->tag != 13) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp109 = ats_true_bool ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp110)->tag != 22) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp109 = ats_true_bool ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp110)->tag != 31) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_11, tmp110, atslab_0) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isall_empty (tmp111) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: __ats_lab_74_1: tmp109 = ats_false_bool ; break ; } while (0) ; return (tmp109) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_empty] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 8514(line=428, offs=3) -- 8557(line=428, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isall_empty (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isall_empty: tmp112 = list_forall_fun_01367_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_empty) ; return (tmp112) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isall_empty] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 13947(line=514, offs=7) -- 14180(line=521, offs=22) */ ATSstaticdec() ats_bool_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_bool_type, tmp119) ; __ats_lab_loop_27: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp119 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp117, arg2) ; if (tmp119) { tmp116 = ats_true_bool ; } else { arg0 = tmp118 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_27 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp116 = ats_false_bool ; break ; } while (0) ; return (tmp116) ; } /* end of [loop_27] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 13917(line=513, offs=20) -- 14231(line=525, offs=4) */ ATSstaticdec() ats_bool_type list_exists_funenv_01325_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp115) ; __ats_lab_list_exists_funenv_01325_ats_ptr_type: tmp115 = loop_27 (arg0, arg1, arg2) ; return (tmp115) ; } /* end of [list_exists_funenv_01325_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 14303(line=529, offs=11) -- 14565(line=538, offs=4) */ ATSstaticdec() ats_bool_type list_exists_fun_01326_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp114) ; __ats_lab_list_exists_fun_01326_ats_ptr_type: tmp114 = list_exists_funenv_01325_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp114) ; } /* end of [list_exists_fun_01326_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 8592(line=431, offs=3) -- 8635(line=431, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isexi_empty (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isexi_empty: tmp113 = list_exists_fun_01326_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_empty) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isexi_empty] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 8671(line=438, offs=1) -- 8755(line=440, offs=40) */ ATSstaticdec() ats_bool_type hidexplst_is_value_28 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp120) ; __ats_lab_hidexplst_is_value_28: tmp120 = list_forall_fun_01367_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value) ; return (tmp120) ; } /* end of [hidexplst_is_value_28] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 8855(line=447, offs=5) -- 8937(line=449, offs=4) */ ATSstaticdec() ats_bool_type ftest_30 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_ftest_30: tmp123 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value (tmp123) ; return (tmp122) ; } /* end of [ftest_30] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 8792(line=444, offs=1) -- 8994(line=453, offs=4) */ ATSstaticdec() ats_bool_type labhidexplst_is_value_29 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp121) ; __ats_lab_labhidexplst_is_value_29: tmp121 = list_forall_fun_01367_ats_ptr_type (arg0, &ftest_30) ; return (tmp121) ; } /* end of [labhidexplst_is_value_29] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 9034(line=456, offs=1) -- 9337(line=475, offs=4) */ ATSstaticdec() ats_bool_type hidecl_is_value_31 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab_hidecl_is_value_31: tmp125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_hidecl_node) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp125)->tag != 0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp124 = ats_true_bool ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp125)->tag != 1) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_11, tmp125, atslab_0) ; tmp124 = hideclist_is_value_32 (tmp126) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp125)->tag != 11) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp124 = ats_true_bool ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp125)->tag != 12) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_5, tmp125, atslab_1) ; tmp124 = hivaldecs_is_value_34 (tmp127) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: __ats_lab_81_1: tmp124 = ats_false_bool ; break ; } while (0) ; return (tmp124) ; } /* end of [hidecl_is_value_31] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 9371(line=478, offs=1) -- 9458(line=480, offs=41) */ ATSstaticdec() ats_bool_type hideclist_is_value_32 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp128) ; __ats_lab_hideclist_is_value_32: tmp128 = list_forall_fun_01367_ats_ptr_type (arg0, &hidecl_is_value_31) ; return (tmp128) ; } /* end of [hideclist_is_value_32] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 9495(line=484, offs=1) -- 9574(line=486, offs=36) */ ATSstaticdec() ats_bool_type hivaldec_is_value_33 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab_hivaldec_is_value_33: tmp130 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_hivaldec_def) ; tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value (tmp130) ; return (tmp129) ; } /* end of [hivaldec_is_value_33] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 9582(line=489, offs=1) -- 9673(line=491, offs=43) */ ATSstaticdec() ats_bool_type hivaldecs_is_value_34 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp131) ; __ats_lab_hivaldecs_is_value_34: tmp131 = list_forall_fun_01367_ats_ptr_type (arg0, &hivaldec_is_value_33) ; return (tmp131) ; } /* end of [hivaldecs_is_value_34] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 9727(line=497, offs=3) -- 10246(line=527, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_bool_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value: tmp133 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_hidexp_node) ; do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp133)->tag != 1) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp133)->tag != 0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp133)->tag != 4) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp133)->tag != 5) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp133)->tag != 7) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp133)->tag != 8) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp133)->tag != 9) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp133)->tag != 16) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp133)->tag != 47) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp133)->tag != 30) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_16, tmp133, atslab_1) ; tmp132 = labhidexplst_is_value_29 (tmp134) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp133)->tag != 20) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp133)->tag != 21) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp132 = ats_true_bool ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp133)->tag != 24) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_5, tmp133, atslab_0) ; tmp136 = ats_caselptrlab_mac(anairiats_sum_5, tmp133, atslab_1) ; tmp137 = hideclist_is_value_32 (tmp135) ; if (tmp137) { arg0 = tmp136 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value ; // tail call } else { tmp132 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: __ats_lab_95_1: tmp132 = ats_false_bool ; break ; } while (0) ; return (tmp132) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 10331(line=536, offs=1) -- 10483(line=544, offs=2) */ ATSstaticdec() ats_bool_type auxseq_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab_auxseq_36: do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_lvalue (arg0) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_97_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; arg0 = tmp139 ; arg1 = tmp140 ; goto __ats_lab_auxseq_36 ; // tail call break ; } while (0) ; return (tmp138) ; } /* end of [auxseq_36] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 10556(line=550, offs=3) -- 10922(line=568, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_lvalue (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_lvalue: tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_hidexp_node) ; do { /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp142)->tag != 1) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_11, tmp142, atslab_0) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp143) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp142)->tag != 36) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp144) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp142)->tag != 37) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp141 = ats_true_bool ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp142)->tag != 31) { goto __ats_lab_104_0 ; } __ats_lab_101_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_11, tmp142, atslab_0) ; do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (tmp145 == (ats_sum_ptr_type)0) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_6, tmp145, atslab_0) ; tmp147 = ats_caselptrlab_mac(anairiats_sum_6, tmp145, atslab_1) ; tmp141 = auxseq_36 (tmp146, tmp147) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: // if (tmp145 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_103_1: tmp141 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: __ats_lab_104_1: tmp141 = ats_false_bool ; break ; } while (0) ; return (tmp141) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_lvalue] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4) */ ATSstaticdec() ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp151) ; __ats_lab_list_is_nil_01294_: do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp151 = ats_false_bool ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp151 = ats_true_bool ; break ; } while (0) ; return (tmp151) ; } /* end of [list_is_nil_01294_] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 11231(line=588, offs=17) -- 11558(line=607, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_is_empty (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_is_empty: tmp149 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_hidecl_node) ; do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp149)->tag != 0) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp148 = ats_true_bool ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp149)->tag != 1) { goto __ats_lab_109_0 ; } __ats_lab_106_1: tmp150 = ats_caselptrlab_mac(anairiats_sum_11, tmp149, atslab_0) ; tmp148 = list_is_nil_01294_ (tmp150) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp149)->tag != 11) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_3, tmp149, atslab_2) ; tmp148 = list_is_nil_01294_ (tmp152) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp149)->tag != 12) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_5, tmp149, atslab_1) ; tmp148 = list_is_nil_01294_ (tmp153) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp149)->tag != 13) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_5, tmp149, atslab_1) ; tmp148 = list_is_nil_01294_ (tmp154) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: __ats_lab_112_1: tmp148 = ats_false_bool ; break ; } while (0) ; return (tmp148) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_is_empty] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19833(line=716, offs=7) -- 20397(line=733, offs=40) */ ATSstaticdec() ats_void_type loop_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_bool_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; __ats_lab_loop_43: do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp162 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp163 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp164 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp162, arg3) ; if (tmp164) { tmp165 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp165, atslab_0, tmp162) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp165 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp166 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp163 ; arg1 = arg1 ; arg2 = tmp166 ; arg3 = arg3 ; goto __ats_lab_loop_43 ; // tail call } else { arg0 = tmp163 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_43 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: tmp167 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp167 ; break ; } while (0) ; return /* (tmp161) */ ; } /* end of [loop_43] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19800(line=714, offs=24) -- 20566(line=744, offs=4) */ ATSstaticdec() ats_ptr_type list_filter_funenv_01338_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp168) ; // ATSlocal_void (tmp169) ; __ats_lab_list_filter_funenv_01338_ats_ptr_type: /* ats_ptr_type tmp168 ; */ /* tmp169 = */ loop_43 (arg0, arg1, (&tmp168), arg2) ; tmp160 = tmp168 ; return (tmp160) ; } /* end of [list_filter_funenv_01338_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 20640(line=747, offs=29) -- 20900(line=756, offs=4) */ ATSstaticdec() ats_ptr_type list_filter_fun_01339_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp159) ; __ats_lab_list_filter_fun_01339_ats_ptr_type: tmp159 = list_filter_funenv_01338_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp159) ; } /* end of [list_filter_fun_01339_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 11786(line=628, offs=3) -- 11823(line=629, offs=26) */ ATSstaticdec() ats_bool_type __ats_fun_44 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp170) ; ATSlocal (ats_bool_type, tmp171) ; __ats_lab___ats_fun_44: tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_empty (arg0) ; tmp170 = atspre_neg_bool (tmp171) ; return (tmp170) ; } /* end of [__ats_fun_44] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 11641(line=613, offs=3) -- 12110(line=645, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq_simplify (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_bool_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq_simplify: tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_isexi_empty (arg2) ; if (tmp156) { tmp158 = list_filter_fun_01339_ats_ptr_type (arg2, &__ats_fun_44) ; tmp157 = ats_castfn_mac(ats_ptr_type, tmp158) ; } else { tmp157 = arg2 ; } /* end of [if] */ do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (tmp157 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } tmp172 = ats_caselptrlab_mac(anairiats_sum_6, tmp157, atslab_1) ; if (tmp172 != (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_6, tmp157, atslab_0) ; tmp155 = tmp173 ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: __ats_lab_116_1: tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq (arg0, arg1, tmp157) ; break ; } while (0) ; return (tmp155) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq_simplify] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 12330(line=660, offs=5) -- 12896(line=680, offs=4) */ ATSstaticdec() ats_ptr_type hidexp_is_varemp_45 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_int_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_bool_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; __ats_lab_hidexp_is_varemp_45: tmp175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_hidexp_node) ; do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp175)->tag != 1) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp176 = ats_caselptrlab_mac(anairiats_sum_11, tmp175, atslab_0) ; tmp174 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp174)->tag = 1 ; ats_selptrset_mac(anairiats_sum_11, tmp174, atslab_0, tmp176) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp175)->tag != 13) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp174 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEsome_emp_2) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp175)->tag != 22) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp174 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEsome_emp_2) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp175)->tag != 30) { goto __ats_lab_123_0 ; } __ats_lab_120_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_16, tmp175, atslab_0) ; tmp178 = ats_caselptrlab_mac(anairiats_sum_16, tmp175, atslab_1) ; tmp179 = atspre_eq_int_int (tmp177, 0) ; if (tmp179) { do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (tmp178 == (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; } tmp180 = ats_caselptrlab_mac(anairiats_sum_6, tmp178, atslab_1) ; if (tmp180 != (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp181 = ats_caselptrlab_mac(anairiats_sum_6, tmp178, atslab_0) ; // tmp182 = ats_caselptrlab_mac(anairiats_sum_6, tmp181, atslab_1) ; arg0 = tmp182 ; goto __ats_lab_hidexp_is_varemp_45 ; // tail call break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: __ats_lab_122_1: tmp174 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEnone_0) ; break ; } while (0) ; } else { tmp174 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEnone_0) ; } /* end of [if] */ break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: __ats_lab_123_1: tmp174 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEnone_0) ; break ; } while (0) ; return (tmp174) ; } /* end of [hidexp_is_varemp_45] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 13126(line=692, offs=5) -- 13709(line=722, offs=4) */ ATSstaticdec() ats_ptr_type aux_47 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_int_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_bool_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; __ats_lab_aux_47: tmp185 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_hipat_node) ; do { /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp185)->tag != 0) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp184 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp184)->tag = 1 ; ats_selptrset_mac(anairiats_sum_11, tmp184, atslab_0, arg1) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp185)->tag != 1) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp186 = ats_caselptrlab_mac(anairiats_sum_11, tmp185, atslab_0) ; tmp184 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp184)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp184, atslab_0, tmp186) ; ats_selptrset_mac(anairiats_sum_5, tmp184, atslab_1, arg1) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp185)->tag != 10) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp184 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp184)->tag = 3 ; ats_selptrset_mac(anairiats_sum_11, tmp184, atslab_0, arg1) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp185)->tag != 13) { goto __ats_lab_130_0 ; } __ats_lab_127_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_12, tmp185, atslab_0) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_12, tmp185, atslab_2) ; tmp189 = atspre_eq_int_int (tmp187, 0) ; if (tmp189) { do { /* branch: __ats_lab_128 */ __ats_lab_128_0: if (tmp188 == (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; } tmp190 = ats_caselptrlab_mac(anairiats_sum_6, tmp188, atslab_1) ; if (tmp190 != (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_6, tmp188, atslab_0) ; // tmp192 = ats_caselptrlab_mac(anairiats_sum_6, tmp191, atslab_1) ; arg0 = tmp192 ; arg1 = arg1 ; goto __ats_lab_aux_47 ; // tail call break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: __ats_lab_129_1: tmp184 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDnone_0) ; break ; } while (0) ; } else { tmp184 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDnone_0) ; } /* end of [if] */ break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: __ats_lab_130_1: tmp184 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDnone_0) ; break ; } while (0) ; return (tmp184) ; } /* end of [aux_47] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 13067(line=689, offs=5) -- 14041(line=740, offs=4) */ ATSstaticdec() ats_ptr_type hidecl_is_anybind_46 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab_hidecl_is_anybind_46: tmp193 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_hidecl_node) ; do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp193)->tag != 12) { goto __ats_lab_134_0 ; } __ats_lab_131_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_5, tmp193, atslab_1) ; do { /* branch: __ats_lab_132 */ __ats_lab_132_0: if (tmp194 == (ats_sum_ptr_type)0) { goto __ats_lab_133_0 ; } tmp195 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_1) ; if (tmp195 != (ats_sum_ptr_type)0) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp196 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp196), atslab_hivaldec_pat) ; tmp198 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp196), atslab_hivaldec_def) ; tmp183 = aux_47 (tmp197, tmp198) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: __ats_lab_133_1: tmp183 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDnone_0) ; break ; } while (0) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: __ats_lab_134_1: tmp183 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDnone_0) ; break ; } while (0) ; return (tmp183) ; } /* end of [hidecl_is_anybind_46] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 14077(line=742, offs=5) -- 14280(line=756, offs=4) */ ATSstaticdec() ats_ptr_type dropz_48 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab_dropz_48: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp200 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp201 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (tmp201 == (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp202 = dropz_48 (tmp201) ; tmp199 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp199, atslab_0, tmp200) ; ats_selptrset_mac(anairiats_sum_6, tmp199, atslab_1, tmp202) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (tmp201 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: tmp199 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp199) ; } /* end of [dropz_48] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51232(line=1817, offs=5) -- 51354(line=1819, offs=58) */ ATSstaticdec() ats_ptr_type loop_51 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; __ats_lab_loop_51: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp209 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp210 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; arg0 = tmp209 ; arg1 = tmp210 ; goto __ats_lab_loop_51 ; // tail call break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp208 = arg0 ; break ; } while (0) ; return (tmp208) ; } /* end of [loop_51] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51194(line=1813, offs=11) -- 51390(line=1823, offs=2) */ ATSstaticdec() ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; __ats_lab_list_last_01407_ats_ptr_type: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp211 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp212 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp207 = loop_51 (tmp211, tmp212) ; return (tmp207) ; } /* end of [list_last_01407_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_util.dats: 14356(line=762, offs=3) -- 15777(line=811, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let_simplify (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_bool_type, tmp216) ; ATSlocal (ats_bool_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let_simplify: do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_151_0 ; } __ats_lab_137_1: tmp204 = hidexp_is_varemp_45 (arg3) ; do { /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp204)->tag != 1) { goto __ats_lab_145_0 ; } __ats_lab_138_1: tmp205 = ats_caselptrlab_mac(anairiats_sum_11, tmp204, atslab_0) ; ATS_FREE(tmp204) ; tmp206 = list_last_01407_ats_ptr_type (arg2) ; tmp213 = hidecl_is_anybind_46 (tmp206) ; do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp213)->tag != 0) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp213)->tag != 2) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_5, tmp213, atslab_0) ; tmp215 = ats_caselptrlab_mac(anairiats_sum_5, tmp213, atslab_1) ; ATS_FREE(tmp213) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp205, tmp214) ; tmp216 = atspre_neg_bool (tmp217) ; if (tmp216) { tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, arg2, arg3) ; } else { tmp218 = dropz_48 (arg2) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, tmp218, tmp215) ; } /* end of [if] */ break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp213)->tag != 1) { goto __ats_lab_144_0 ; } __ats_lab_143_1: ATS_FREE(tmp213) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: // if (((ats_sum_ptr_type)tmp213)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_144_1: ATS_FREE(tmp213) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, arg2, arg3) ; break ; } while (0) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp204)->tag != 2) { goto __ats_lab_150_0 ; } __ats_lab_145_1: tmp219 = list_last_01407_ats_ptr_type (arg2) ; tmp220 = hidecl_is_anybind_46 (tmp219) ; do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp220)->tag != 0) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp220)->tag != 3) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp221 = ats_caselptrlab_mac(anairiats_sum_11, tmp220, atslab_0) ; ATS_FREE(tmp220) ; tmp222 = dropz_48 (arg2) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, tmp222, tmp221) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp220)->tag != 1) { goto __ats_lab_149_0 ; } __ats_lab_148_1: ATS_FREE(tmp220) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: // if (((ats_sum_ptr_type)tmp220)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_149_1: ATS_FREE(tmp220) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, arg2, arg3) ; break ; } while (0) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: // if (((ats_sum_ptr_type)tmp204)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_150_1: tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (arg0, arg1, arg2, arg3) ; break ; } while (0) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_151_1: tmp203 = arg3 ; break ; } while (0) ; return (tmp203) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let_simplify] */ /* 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_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_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_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEsome_var_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HDEVEsome_emp_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDsome_any_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDsome_var_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__HABNDsome_emp_3.tag = 3 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_hidynexp_util_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_emit3_dats.c0000644000175000017500000055140413431250607022740 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2aspdec_loc ; ats_ptr_type atslab_s2aspdec_cst ; ats_ptr_type atslab_s2aspdec_def ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_11 ; typedef struct { anairiats_rec_11 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_13 ; typedef struct { anairiats_rec_11 atslab_0 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_double_type atslab_0 ; } anairiats_sum_18 ; typedef struct { ats_ptr_type atslab_instr_loc ; ats_ptr_type atslab_instr_node ; } anairiats_rec_19 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_20 ; typedef struct { ats_ptr_type atslab_ibranch_loc ; ats_ptr_type atslab_ibranch_inslst ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_22 ; typedef struct { ats_ptr_type atslab_primdec_loc ; ats_ptr_type atslab_primdec_node ; } anairiats_rec_23 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextcode_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaload_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtysum_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDsaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextcode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDexndecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaload_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdynload_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDsaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDextvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdatdecs_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDexndecs_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDfundecs_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_rec_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvardecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDinclude_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaload_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaloadloc_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdynload_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlocal_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKbool_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKchar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKfloat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKi0nt_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKf0loat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplab_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabmov_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTcaseof_fail_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTfunarg_fail_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTraise_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpatck_21) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_sats) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_fil) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_exn) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nullary) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mac) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_static) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fundec) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_castfn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_arg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_res) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_tailcal) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_res) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_fullarg) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_is_tmplt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_imparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpvarlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_fnxlablst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_flablst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsubopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_is_void) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__patckont_is_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_instrlstopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpsub) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_instrlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize2) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_uninitize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVint) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVbool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVchar) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVfloat) (ats_ptr_type, ats_double_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVstring) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVi0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVf0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_dynload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con_extdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_initize) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst_extdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplabint) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_set_nfnx) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarg) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funapy) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdeclst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexplst_sep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp_sel) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funenvlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarglst) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmprimval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmpmovlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funarg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funapy) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fundec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_funbody) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxdeclst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxbodylst) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_void_type auxlst_2 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxloc_6 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxsta_7 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxdyn_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_12 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type auxcon_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxexn_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxmain_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type aux_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_20 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type auxfun_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux0_arglst_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type aux1_arglst_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ; static ats_void_type aux2_arglst_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ; static ats_void_type aux0_envlst_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type aux1_envlst_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_int_type aux2_envlst_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ; static ats_int_type aux3_envlst_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ; static ats_int_type aux4_envlst_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ; static ats_void_type aux5_envlst_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type auxclo_type_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxclo_cfun_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxclo_init_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxclo_create_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxall_beg_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxall_end_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxlst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type auxlst_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type auxfl_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxflist_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type auxfl_48 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxflist_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type auxtmp_51 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type emit_primdec_54 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type app_60 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type loop_62 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_vcloptr_01304_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type list_app_cloptr_01303_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type __ats_fun_63 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_63_closure_make (ats_ptr_type env0) ; static ats_void_type __ats_fun_63_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type aux_65 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type __ats_fun_68 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_68_closure_make (ats_ptr_type env0) ; static ats_void_type __ats_fun_68_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 1673(line=58, offs=18) -- 1702(line=58, offs=47) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_ccomp_emit2")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 2711(line=122, offs=1) -- 3052(line=146, offs=4) */ ATSstaticdec() ats_void_type auxlst_2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; __ats_lab_auxlst_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp10 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynexn_dec(")) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con (arg0, tmp9) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; arg0 = arg0 ; arg1 = tmp10 ; goto __ats_lab_auxlst_2 ; // tail call break ; } while (0) ; return /* (tmp8) */ ; } /* end of [auxlst_2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 2515(line=110, offs=3) -- 3104(line=150, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_exndec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_exndec: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp3)->tag != 7) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 2566(line=115, offs=1) -- 2600(line=115, offs=35)") ; } tmp4 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location (arg0, tmp2) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; /* tmp1 = */ auxlst_2 (arg0, tmp4) ; return /* (tmp1) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_exndec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 3176(line=156, offs=3) -- 3509(line=171, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_saspdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_saspdec: tmp15 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_loc) ; tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp16)->tag != 2) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 3226(line=159, offs=5) -- 3260(line=159, offs=39)") ; } tmp17 = ats_caselptrlab_mac(anairiats_sum_2, tmp16, atslab_0) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location (arg0, tmp15) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSassume(")) ; tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp17), atslab_s2aspdec_cst) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_s2cst (arg0, tmp23) ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; return /* (tmp14) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_saspdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 3581(line=177, offs=3) -- 4560(line=222, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extype: tmp25 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_loc) ; tmp26 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp26)->tag != 4) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 3634(line=181, offs=5) -- 3679(line=182, offs=36)") ; } tmp27 = ats_caselptrlab_mac(anairiats_sum_5, tmp26, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_5, tmp26, atslab_1) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location (arg0, tmp25) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp28), atslab_hisexp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp32)->tag != 10) { goto __ats_lab_3_0 ; } __ats_lab_2_1: /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("typedef\n")) ; /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp_sel (arg0, tmp28) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n")) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp27) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("_")) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ;\n")) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("typedef\n")) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp27) ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("_ *")) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp27) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ;\n")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("typedef\n")) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp28) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n")) ; /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp27) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ;\n")) ; break ; } while (0) ; return /* (tmp24) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extype] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 4632(line=228, offs=3) -- 4979(line=242, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extcode (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extcode: tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_loc) ; tmp49 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp49)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 4682(line=231, offs=5) -- 4727(line=231, offs=50)") ; } tmp50 = ats_caselptrlab_mac(anairiats_sum_7, tmp49, atslab_2) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location (arg0, tmp48) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\nATSextcode_beg()")) ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp50) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSextcode_end()\n")) ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extcode] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 5038(line=249, offs=1) -- 5219(line=258, offs=4) */ ATSstaticdec() ats_void_type auxloc_6 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; __ats_lab_auxloc_6: /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location (arg0, arg1) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; return /* (tmp56) */ ; } /* end of [auxloc_6] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 5244(line=261, offs=1) -- 6372(line=324, offs=4) */ ATSstaticdec() ats_void_type auxsta_7 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_int_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; __ats_lab_auxsta_7: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp61 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp60), atslab_d2ecl_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp63)->tag != 13) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_7, tmp63, atslab_1) ; tmp65 = ats_caselptrlab_mac(anairiats_sum_7, tmp63, atslab_2) ; tmp66 = atspre_eq_int_int (tmp64, 0) ; if (tmp66) { tmp67 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp60), atslab_d2ecl_loc) ; /* tmp68 = */ auxloc_6 (arg0, tmp67) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp65) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp63)->tag != 24) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_9, tmp63, atslab_1) ; tmp70 = ats_caselptrlab_mac(anairiats_sum_9, tmp63, atslab_3) ; tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp60), atslab_d2ecl_loc) ; /* tmp71 = */ auxloc_6 (arg0, tmp72) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (tmp70) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_sats (tmp69) ; if (tmp74) { /* tmp62 = */ auxsta_7 (arg0, tmp73) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: break ; } while (0) ; arg0 = arg0 ; arg1 = tmp61 ; goto __ats_lab_auxsta_7 ; // tail call break ; } while (0) ; return /* (tmp59) */ ; } /* end of [auxsta_7] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 6397(line=327, offs=1) -- 7876(line=405, offs=4) */ ATSstaticdec() ats_void_type auxdyn_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_bool_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_int_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_bool_type, tmp96) ; __ats_lab_auxdyn_8: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp76), atslab_d2ecl_node) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp79)->tag != 13) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_7, tmp79, atslab_1) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_7, tmp79, atslab_2) ; tmp82 = atspre_eq_int_int (tmp80, 0) ; if (tmp82) { tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp76), atslab_d2ecl_loc) ; /* tmp84 = */ auxloc_6 (arg0, tmp83) ; /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp81) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp79)->tag != 24) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_9, tmp79, atslab_1) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_9, tmp79, atslab_3) ; tmp88 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp76), atslab_d2ecl_loc) ; /* tmp87 = */ auxloc_6 (arg0, tmp88) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (tmp86) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_sats (tmp85) ; if (tmp90) { /* tmp78 = */ auxsta_7 (arg0, tmp89) ; } else { /* tmp78 = */ auxdyn_8 (arg0, tmp89) ; } /* end of [if] */ break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp79)->tag != 27) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_5, tmp79, atslab_0) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_5, tmp79, atslab_1) ; /* tmp93 = */ auxdyn_8 (arg0, tmp91) ; /* tmp78 = */ auxdyn_8 (arg0, tmp92) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp79)->tag != 23) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_10, tmp79, atslab_0) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_10, tmp79, atslab_1) ; tmp96 = atspre_eq_int_int (tmp94, 0) ; if (tmp96) { /* tmp78 = */ auxsta_7 (arg0, tmp95) ; } else { /* tmp78 = */ auxdyn_8 (arg0, tmp95) ; } /* end of [if] */ break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: break ; } while (0) ; arg0 = arg0 ; arg1 = tmp77 ; goto __ats_lab_auxdyn_8 ; // tail call break ; } while (0) ; return /* (tmp75) */ ; } /* end of [auxdyn_8] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 7946(line=411, offs=3) -- 8264(line=428, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_staload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_staload: tmp98 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp98)->tag != 16) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 7970(line=413, offs=5) -- 8035(line=416, offs=20)") ; } tmp99 = ats_caselptrlab_mac(anairiats_sum_9, tmp98, atslab_1) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_9, tmp98, atslab_3) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (tmp100) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_sats (tmp99) ; if (tmp102) { /* tmp97 = */ auxsta_7 (arg0, tmp101) ; } else { /* tmp97 = */ auxdyn_8 (arg0, tmp101) ; } /* end of [if] */ return /* (tmp97) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_staload] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 8514(line=444, offs=16) -- 8633(line=448, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmprimval (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmprimval: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp104) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp105) ; break ; } while (0) ; return /* (tmp103) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmprimval] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 8740(line=456, offs=5) -- 9146(line=476, offs=4) */ ATSstaticdec() ats_void_type auxlst_12 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp107) ; ATSlocal (anairiats_rec_11, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; // ATSlocal_void (tmp116) ; ATSlocal (ats_int_type, tmp117) ; __ats_lab_auxlst_12: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_0) ; tmp109 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove(")) ; tmp112 = ats_select_mac(tmp108, atslab_1) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp112) ; /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; tmp115 = ats_select_mac(tmp108, atslab_0) ; /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmprimval (arg0, tmp115) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ; ")) ; tmp117 = atspre_add_int_int (arg1, 1) ; arg0 = arg0 ; arg1 = tmp117 ; arg2 = tmp109 ; goto __ats_lab_auxlst_12 ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: break ; } while (0) ; return /* (tmp107) */ ; } /* end of [auxlst_12] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 8713(line=454, offs=16) -- 9206(line=480, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmpmovlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmpmovlst: /* tmp106 = */ auxlst_12 (arg0, 0, arg1) ; return /* (tmp106) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmpmovlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 9354(line=491, offs=3) -- 10707(line=553, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_int_type, tmp123) ; // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSgoto(")) ; /* tmp121 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp119) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp122 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp123 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_1) ; /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSgoto(")) ; /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplabint (arg0, tmp122, tmp123) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; /* tmp128 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_tmpmovlst (arg0, tmp127) ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSgoto(")) ; /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp126) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSraise_exn(")) ; /* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp131) ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp132) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINScaseof_fail(\"")) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp137) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\")")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; /* tmp141 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSfunarg_fail(\"")) ; /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp140) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (((ats_sum_ptr_type)arg1)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSdeadcode_fail()")) ; break ; } while (0) ; return /* (tmp118) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 10940(line=566, offs=5) -- 12416(line=626, offs=4) */ ATSstaticdec() ats_void_type auxcon_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_bool_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_bool_type, tmp148) ; ATSlocal (anairiats_rec_11, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_bool_type, tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; ATSlocal (ats_int_type, tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; __ats_lab_auxcon_14: tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg2) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular (tmp144) ; if (!tmp145) { goto __ats_lab_28_1 ; } break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike (tmp144) ; if (!tmp146) { goto __ats_lab_31_1 ; } tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst (tmp144) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (tmp147 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_14, tmp147, atslab_0) ; tmp150 = ats_select_mac(tmp149, atslab_0) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (arg2, tmp150) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (tmp147 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp148 = ats_false_bool ; break ; } while (0) ; /* tmp151 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifthen(")) ; if (tmp148) { /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKptriscons(")) ; } else { /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKptrisnull(")) ; } /* end of [if] */ /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nullary (arg2) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifnthen(")) ; if (tmp156) { /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_con0(")) ; } else { /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_con1(")) ; } /* end of [if] */ /* tmp159 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag (arg2) ; /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, tmp162) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; break ; } while (0) ; return /* (tmp143) */ ; } /* end of [auxcon_14] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 12441(line=628, offs=5) -- 12992(line=656, offs=4) */ ATSstaticdec() ats_void_type auxexn_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp165) ; ATSlocal (ats_int_type, tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; ATSlocal (ats_bool_type, tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; // ATSlocal_void (tmp173) ; // ATSlocal_void (tmp174) ; __ats_lab_auxexn_15: tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (arg2) ; /* tmp167 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifnthen(")) ; tmp169 = atspre_eq_int_int (tmp166, 0) ; if (tmp169) { /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_exn0(")) ; } else { /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_exn1(")) ; } /* end of [if] */ /* tmp170 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp171 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con (arg0, arg2) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; return /* (tmp165) */ ; } /* end of [auxexn_15] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 13017(line=658, offs=5) -- 16196(line=763, offs=4) */ ATSstaticdec() ats_void_type auxmain_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_bool_type, tmp177) ; ATSlocal (ats_int_type, tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; ATSlocal (ats_bool_type, tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; // ATSlocal_void (tmp193) ; ATSlocal (ats_char_type, tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_double_type, tmp202) ; // ATSlocal_void (tmp203) ; // ATSlocal_void (tmp204) ; // ATSlocal_void (tmp205) ; // ATSlocal_void (tmp206) ; // ATSlocal_void (tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; // ATSlocal_void (tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; // ATSlocal_void (tmp224) ; // ATSlocal_void (tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; // ATSlocal_void (tmp233) ; __ats_lab_auxmain_16: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp176 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con (tmp176) ; if (tmp177) { /* tmp175 = */ auxcon_14 (arg0, arg1, tmp176, arg3) ; } else { /* tmp175 = */ auxexn_15 (arg0, arg1, tmp176, arg3) ; } /* end of [if] */ break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifnthen(")) ; /* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_int(")) ; /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVint (arg0, tmp178) ; /* tmp184 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp186 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_0) ; /* tmp187 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifnthen(")) ; /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_bool(")) ; /* tmp189 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVbool (arg0, tmp186) ; /* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp193 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_17, arg2, atslab_0) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifnthen(")) ; /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_char(")) ; /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp198 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp199 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVchar (arg0, tmp194) ; /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)arg2)->tag != 4) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_18, arg2, atslab_0) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifnthen(")) ; /* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_float(")) ; /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp206 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp207 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVfloat (arg0, tmp202) ; /* tmp208 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)arg2)->tag != 5) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; /* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifnthen(")) ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_string(")) ; /* tmp213 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp214 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVstring (arg0, tmp210) ; /* tmp216 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)arg2)->tag != 6) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifnthen(")) ; /* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_int(")) ; /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp223 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVi0nt (arg0, tmp218) ; /* tmp224 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (((ats_sum_ptr_type)arg2)->tag != 7) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp226 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSifnthen(")) ; /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKpat_float(")) ; /* tmp229 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp230 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp231 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVf0loat (arg0, tmp226) ; /* tmp232 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) { ")) ; /* tmp233 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_patckont (arg0, arg3) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ; } ;")) ; break ; } while (0) ; return /* (tmp175) */ ; } /* end of [auxmain_16] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 16274(line=769, offs=3) -- 16553(line=782, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_patck (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_bool_type, tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_patck: tmp235 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp235)->tag != 21) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 16298(line=771, offs=5) -- 16344(line=772, offs=38)") ; } tmp236 = ats_caselptrlab_mac(anairiats_sum_20, tmp235, atslab_0) ; tmp237 = ats_caselptrlab_mac(anairiats_sum_20, tmp235, atslab_1) ; tmp238 = ats_caselptrlab_mac(anairiats_sum_20, tmp235, atslab_2) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__patckont_is_none (tmp238) ; if (tmp239) { /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#if(0)\n")) ; } else { /* empty */ } /* end of [if] */ /* tmp241 = */ auxmain_16 (arg0, tmp236, tmp237, tmp238) ; if (tmp239) { /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n#endif")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp234) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_patck] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 16639(line=790, offs=5) -- 16878(line=803, offs=4) */ ATSstaticdec() ats_void_type aux_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; __ats_lab_aux_18: tmp243 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg1), atslab_ibranch_inslst) ; /* tmp244 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSbranch_beg()\n")) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln (arg0, tmp243) ; /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSbranch_end()\n")) ; return /* (tmp242) */ ; } /* end of [aux_18] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 16977(line=811, offs=5) -- 17247(line=828, offs=4) */ ATSstaticdec() ats_void_type auxlst_20 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; ATSlocal (ats_int_type, tmp252) ; __ats_lab_auxlst_20: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp248 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp249 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; /* tmp250 = */ aux_18 (arg0, tmp248) ; /* tmp251 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; tmp252 = atspre_add_int_int (arg1, 1) ; arg0 = arg0 ; arg1 = tmp252 ; arg2 = tmp249 ; goto __ats_lab_auxlst_20 ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: break ; } while (0) ; return /* (tmp247) */ ; } /* end of [auxlst_20] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 16952(line=809, offs=3) -- 17445(line=841, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ibranchlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ibranchlst: /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n** ibranchlst-beg\n*/\n")) ; /* tmp254 = */ auxlst_20 (arg0, 0, arg1) ; /* tmp246 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n** ibranchlst-end\n*/\n")) ; return /* (tmp246) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ibranchlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 17530(line=850, offs=1) -- 18881(line=908, offs=4) */ ATSstaticdec() ats_void_type auxfun_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_bool_type, tmp257) ; ATSlocal (ats_int_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_bool_type, tmp260) ; ATSlocal (ats_bool_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_bool_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_bool_type, tmp265) ; ATSlocal (ats_bool_type, tmp266) ; ATSlocal (ats_bool_type, tmp267) ; // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; // ATSlocal_void (tmp279) ; // ATSlocal_void (tmp280) ; __ats_lab_auxfun_21: tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab (arg1) ; tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd (tmp256) ; tmp257 = atspre_gt_int_int (tmp258, 0) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (tmp256) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (tmp259 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp260 = ats_true_bool ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (tmp259 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp260 = ats_false_bool ; break ; } while (0) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (tmp259 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp262 = ats_caselptrlab_mac(anairiats_sum_22, tmp259, atslab_0) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_static (tmp262) ; if (tmp263) { tmp261 = ats_false_bool ; } else { tmp261 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (tmp259 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp261 = ats_false_bool ; break ; } while (0) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin (tmp256) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (tmp264 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp265 = ats_false_bool ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (tmp264 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp265 = tmp260 ; break ; } while (0) ; do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (tmp264 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp266 = ats_false_bool ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (tmp264 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp266 = tmp261 ; break ; } while (0) ; tmp267 = atspre_neg_bool (tmp266) ; if (tmp257) { /* tmp268 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#if(0)\n")) ; } else { /* empty */ } /* end of [if] */ if (tmp265) { /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#if(0)\n")) ; } else { /* empty */ } /* end of [if] */ if (tmp266) { /* tmp270 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSextern()\n")) ; } else { /* empty */ } /* end of [if] */ if (tmp267) { /* tmp271 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstatic()\n")) ; } else { /* empty */ } /* end of [if] */ tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_res (tmp256) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_fullarg (tmp256) ; /* tmp274 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp272) ; /* tmp275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n")) ; /* tmp276 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp256) ; /* tmp277 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexplst_sep (arg0, tmp273, ATSstrcst(", ")) ; /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; if (tmp265) { /* tmp280 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif // end of [QUALIFIED]\n")) ; } else { /* empty */ } /* end of [if] */ if (tmp257) { /* tmp255 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif // end of [TEMPLATE]\n")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp255) */ ; } /* end of [auxfun_21] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 18956(line=914, offs=3) -- 19058(line=922, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_ptype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_ptype: /* tmp282 = */ auxfun_21 (arg0, arg1) ; /* tmp281 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; return /* (tmp281) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_ptype] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 19147(line=931, offs=1) -- 19484(line=953, offs=4) */ ATSstaticdec() ats_void_type aux0_arglst_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; // ATSlocal_void (tmp286) ; ATSlocal (ats_bool_type, tmp287) ; // ATSlocal_void (tmp288) ; ATSlocal (ats_int_type, tmp289) ; __ats_lab_aux0_arglst_23: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp285 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp287 = atspre_gt_int_int (arg2, 0) ; if (tmp287) { /* tmp286 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp288 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp284) ; tmp289 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp285 ; arg2 = tmp289 ; goto __ats_lab_aux0_arglst_23 ; // tail call break ; } while (0) ; return /* (tmp283) */ ; } /* end of [aux0_arglst_23] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 19517(line=956, offs=1) -- 19930(line=979, offs=4) */ ATSstaticdec() ats_void_type aux1_arglst_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; // ATSlocal_void (tmp293) ; ATSlocal (ats_bool_type, tmp294) ; ATSlocal (ats_int_type, tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; // ATSlocal_void (tmp298) ; ATSlocal (ats_int_type, tmp299) ; __ats_lab_aux1_arglst_24: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: tmp291 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp292 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp295 = atspre_add_int_int (arg2, arg3) ; tmp294 = atspre_gt_int_int (tmp295, 0) ; if (tmp294) { /* tmp293 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp291) ; /* tmp297 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" arg")) ; /* tmp298 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, arg3) ; tmp299 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp292 ; arg2 = arg2 ; arg3 = tmp299 ; goto __ats_lab_aux1_arglst_24 ; // tail call break ; } while (0) ; return /* (tmp290) */ ; } /* end of [aux1_arglst_24] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 19963(line=982, offs=1) -- 20353(line=1005, offs=4) */ ATSstaticdec() ats_void_type aux2_arglst_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; // ATSlocal_void (tmp302) ; ATSlocal (ats_bool_type, tmp303) ; ATSlocal (ats_int_type, tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; ATSlocal (ats_int_type, tmp307) ; __ats_lab_aux2_arglst_25: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: tmp301 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp304 = atspre_add_int_int (arg2, arg3) ; tmp303 = atspre_gt_int_int (tmp304, 0) ; if (tmp303) { /* tmp302 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp305 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("arg")) ; /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, arg3) ; tmp307 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp301 ; arg2 = arg2 ; arg3 = tmp307 ; goto __ats_lab_aux2_arglst_25 ; // tail call break ; } while (0) ; return /* (tmp300) */ ; } /* end of [aux2_arglst_25] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 20386(line=1008, offs=1) -- 20756(line=1030, offs=4) */ ATSstaticdec() ats_void_type aux0_envlst_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; // ATSlocal_void (tmp312) ; ATSlocal (ats_bool_type, tmp313) ; // ATSlocal_void (tmp314) ; ATSlocal (ats_int_type, tmp315) ; __ats_lab_aux0_envlst_26: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp309 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp310 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (tmp309) ; tmp313 = atspre_gt_int_int (arg2, 0) ; if (tmp313) { /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp311) ; tmp315 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp310 ; arg2 = tmp315 ; goto __ats_lab_aux0_envlst_26 ; // tail call break ; } while (0) ; return /* (tmp308) */ ; } /* end of [aux0_envlst_26] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 20789(line=1033, offs=1) -- 21180(line=1055, offs=4) */ ATSstaticdec() ats_void_type aux1_envlst_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; // ATSlocal_void (tmp320) ; // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; ATSlocal (ats_int_type, tmp324) ; __ats_lab_aux1_envlst_27: do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: tmp317 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp318 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (tmp317) ; /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp319) ; /* tmp321 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" env")) ; /* tmp322 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, arg2) ; /* tmp323 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ;\n")) ; tmp324 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp318 ; arg2 = tmp324 ; goto __ats_lab_aux1_envlst_27 ; // tail call break ; } while (0) ; return /* (tmp316) */ ; } /* end of [aux1_envlst_27] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 21213(line=1058, offs=1) -- 21663(line=1082, offs=4) */ ATSstaticdec() ats_int_type aux2_envlst_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_bool_type, tmp330) ; ATSlocal (ats_int_type, tmp331) ; // ATSlocal_void (tmp332) ; // ATSlocal_void (tmp333) ; // ATSlocal_void (tmp334) ; ATSlocal (ats_int_type, tmp335) ; __ats_lab_aux2_envlst_28: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp325 = atspre_add_int_int (arg2, arg3) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: tmp326 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp327 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (tmp326) ; tmp331 = atspre_add_int_int (arg2, arg3) ; tmp330 = atspre_gt_int_int (tmp331, 0) ; if (tmp330) { /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp332 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp328) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" env")) ; /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, arg3) ; tmp335 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp327 ; arg2 = arg2 ; arg3 = tmp335 ; goto __ats_lab_aux2_envlst_28 ; // tail call break ; } while (0) ; return (tmp325) ; } /* end of [aux2_envlst_28] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 21696(line=1085, offs=1) -- 22086(line=1108, offs=4) */ ATSstaticdec() ats_int_type aux3_envlst_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; ATSlocal (ats_bool_type, tmp339) ; ATSlocal (ats_int_type, tmp340) ; // ATSlocal_void (tmp341) ; // ATSlocal_void (tmp342) ; ATSlocal (ats_int_type, tmp343) ; __ats_lab_aux3_envlst_29: do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp336 = atspre_add_int_int (arg2, arg3) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_63_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp340 = atspre_add_int_int (arg2, arg3) ; tmp339 = atspre_gt_int_int (tmp340, 0) ; if (tmp339) { /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("env")) ; /* tmp342 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, arg3) ; tmp343 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp337 ; arg2 = arg2 ; arg3 = tmp343 ; goto __ats_lab_aux3_envlst_29 ; // tail call break ; } while (0) ; return (tmp336) ; } /* end of [aux3_envlst_29] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 22119(line=1111, offs=1) -- 22514(line=1134, offs=4) */ ATSstaticdec() ats_int_type aux4_envlst_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; // ATSlocal_void (tmp346) ; ATSlocal (ats_bool_type, tmp347) ; ATSlocal (ats_int_type, tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; ATSlocal (ats_int_type, tmp351) ; __ats_lab_aux4_envlst_30: do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp344 = arg3 ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_65_1: tmp345 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp348 = atspre_add_int_int (arg2, arg3) ; tmp347 = atspre_gt_int_int (tmp348, 0) ; if (tmp347) { /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp349 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("p_cenv->env")) ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, arg3) ; tmp351 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp345 ; arg2 = arg2 ; arg3 = tmp351 ; goto __ats_lab_aux4_envlst_30 ; // tail call break ; } while (0) ; return (tmp344) ; } /* end of [aux4_envlst_30] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 22547(line=1137, offs=1) -- 23058(line=1161, offs=4) */ ATSstaticdec() ats_void_type aux5_envlst_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; // ATSlocal_void (tmp356) ; // ATSlocal_void (tmp357) ; // ATSlocal_void (tmp358) ; // ATSlocal_void (tmp359) ; // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; ATSlocal (ats_int_type, tmp362) ; __ats_lab_aux5_envlst_31: do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp353 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp354 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (tmp353) ; /* tmp356 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("p_cenv->env")) ; /* tmp357 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, arg2) ; /* tmp358 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" = ")) ; /* tmp359 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("env")) ; /* tmp360 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, arg2) ; /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ;\n")) ; tmp362 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp354 ; arg2 = tmp362 ; goto __ats_lab_aux5_envlst_31 ; // tail call break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: break ; } while (0) ; return /* (tmp352) */ ; } /* end of [aux5_envlst_31] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 23091(line=1164, offs=1) -- 23485(line=1181, offs=4) */ ATSstaticdec() ats_void_type auxclo_type_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; // ATSlocal_void (tmp366) ; // ATSlocal_void (tmp367) ; // ATSlocal_void (tmp368) ; // ATSlocal_void (tmp369) ; __ats_lab_auxclo_type_32: /* tmp364 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("typedef\n")) ; /* tmp365 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstruct {\n")) ; /* tmp366 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstype_funptr cfun ;\n")) ; /* tmp367 = */ aux1_envlst_27 (arg0, arg2, 0) ; /* tmp368 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("} ")) ; /* tmp369 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp363 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__closure_t0ype ;\n")) ; return /* (tmp363) */ ; } /* end of [auxclo_type_32] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 23518(line=1184, offs=1) -- 24473(line=1217, offs=4) */ ATSstaticdec() ats_void_type auxclo_cfun_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_bool_type, tmp373) ; // ATSlocal_void (tmp374) ; // ATSlocal_void (tmp375) ; // ATSlocal_void (tmp376) ; // ATSlocal_void (tmp377) ; // ATSlocal_void (tmp378) ; // ATSlocal_void (tmp379) ; // ATSlocal_void (tmp380) ; // ATSlocal_void (tmp381) ; // ATSlocal_void (tmp382) ; // ATSlocal_void (tmp383) ; // ATSlocal_void (tmp384) ; // ATSlocal_void (tmp385) ; // ATSlocal_void (tmp386) ; // ATSlocal_void (tmp387) ; // ATSlocal_void (tmp388) ; ATSlocal (ats_int_type, tmp389) ; // ATSlocal_void (tmp390) ; // ATSlocal_void (tmp391) ; __ats_lab_auxclo_cfun_33: tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_res (arg1) ; tmp372 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg (arg1) ; tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void (tmp371) ; /* tmp374 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstatic()\n")) ; /* tmp375 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp371) ; /* tmp376 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n")) ; /* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp378 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__cfun")) ; /* tmp379 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n(\n")) ; /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__closure_t0ype *p_cenv")) ; /* tmp382 = */ aux1_arglst_24 (arg0, tmp372, 1, 0) ; /* tmp383 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n)\n{\n")) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSFCreturn")) ; if (tmp373) { /* tmp385 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("_void")) ; } else { /* empty */ } /* end of [if] */ /* tmp386 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp387 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp388 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; tmp389 = aux4_envlst_30 (arg0, arg2, 0, 0) ; /* tmp390 = */ aux2_arglst_25 (arg0, tmp372, tmp389, 0) ; /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) ;\n")) ; /* tmp370 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("} /* end of [cfun] */\n")) ; return /* (tmp370) */ ; } /* end of [auxclo_cfun_33] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 24506(line=1220, offs=1) -- 25229(line=1247, offs=4) */ ATSstaticdec() ats_void_type auxclo_init_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp392) ; // ATSlocal_void (tmp393) ; // ATSlocal_void (tmp394) ; // ATSlocal_void (tmp395) ; // ATSlocal_void (tmp396) ; // ATSlocal_void (tmp397) ; // ATSlocal_void (tmp398) ; // ATSlocal_void (tmp399) ; ATSlocal (ats_int_type, tmp400) ; // ATSlocal_void (tmp401) ; // ATSlocal_void (tmp402) ; // ATSlocal_void (tmp403) ; // ATSlocal_void (tmp404) ; // ATSlocal_void (tmp405) ; // ATSlocal_void (tmp406) ; __ats_lab_auxclo_init_34: /* tmp393 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstatic()\n")) ; /* tmp394 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstype_cloptr\n")) ; /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp396 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__closureinit")) ; /* tmp397 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n(\n")) ; /* tmp398 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp399 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__closure_t0ype *p_cenv")) ; tmp400 = aux2_envlst_28 (arg0, arg2, 1, 0) ; /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n)\n{\n")) ; /* tmp402 = */ aux5_envlst_31 (arg0, arg2, 0) ; /* tmp403 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("p_cenv->cfun = ")) ; /* tmp404 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__cfun ;\n")) ; /* tmp406 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("return p_cenv ;\n")) ; /* tmp392 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("} /* end of [closureinit] */\n")) ; return /* (tmp392) */ ; } /* end of [auxclo_init_34] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 25262(line=1250, offs=1) -- 26074(line=1279, offs=4) */ ATSstaticdec() ats_void_type auxclo_create_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp407) ; // ATSlocal_void (tmp408) ; // ATSlocal_void (tmp409) ; // ATSlocal_void (tmp410) ; // ATSlocal_void (tmp411) ; // ATSlocal_void (tmp412) ; ATSlocal (ats_int_type, tmp413) ; // ATSlocal_void (tmp414) ; ATSlocal (ats_bool_type, tmp415) ; // ATSlocal_void (tmp416) ; // ATSlocal_void (tmp417) ; // ATSlocal_void (tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; // ATSlocal_void (tmp421) ; // ATSlocal_void (tmp422) ; ATSlocal (ats_int_type, tmp423) ; // ATSlocal_void (tmp424) ; __ats_lab_auxclo_create_35: /* tmp408 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstatic()\n")) ; /* tmp409 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstype_cloptr\n")) ; /* tmp410 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__closurerize")) ; /* tmp412 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n(\n")) ; tmp413 = aux2_envlst_28 (arg0, arg2, 0, 0) ; tmp415 = atspre_eq_int_int (tmp413, 0) ; if (tmp415) { /* tmp414 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("// argumentless")) ; } else { /* empty */ } /* end of [if] */ /* tmp416 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n)\n{\n")) ; /* tmp417 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("return ")) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp419 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__closureinit(")) ; /* tmp420 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATS_MALLOC(sizeof(")) ; /* tmp421 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp422 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__closure_t0ype))")) ; tmp423 = aux3_envlst_29 (arg0, arg2, 1, 0) ; /* tmp424 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("} /* end of [closurerize] */\n")) ; return /* (tmp407) */ ; } /* end of [auxclo_create_35] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 26109(line=1282, offs=1) -- 26800(line=1323, offs=2) */ ATSstaticdec() ats_void_type auxall_beg_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; // ATSlocal_void (tmp428) ; // ATSlocal_void (tmp429) ; // ATSlocal_void (tmp430) ; // ATSlocal_void (tmp431) ; // ATSlocal_void (tmp432) ; // ATSlocal_void (tmp433) ; // ATSlocal_void (tmp434) ; // ATSlocal_void (tmp435) ; // ATSlocal_void (tmp436) ; // ATSlocal_void (tmp437) ; // ATSlocal_void (tmp438) ; // ATSlocal_void (tmp439) ; // ATSlocal_void (tmp440) ; // ATSlocal_void (tmp441) ; __ats_lab_auxall_beg_36: tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_res (arg1) ; tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg (arg1) ; /* tmp428 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSclosurerize_beg")) ; /* tmp429 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN (arg0) ; /* tmp430 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, arg1) ; /* tmp431 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN (arg0) ; /* tmp433 = */ aux0_envlst_26 (arg0, arg2, 0) ; /* tmp434 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; /* tmp435 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN (arg0) ; /* tmp437 = */ aux0_arglst_23 (arg0, tmp427, 0) ; /* tmp438 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; /* tmp439 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp440 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp426) ; /* tmp441 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; /* tmp425 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; return /* (tmp425) */ ; } /* end of [auxall_beg_36] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 26832(line=1325, offs=5) -- 26962(line=1334, offs=2) */ ATSstaticdec() ats_void_type auxall_end_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp442) ; __ats_lab_auxall_end_37: /* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSclosurerize_end()\n")) ; return /* (tmp442) */ ; } /* end of [auxall_end_37] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 27046(line=1340, offs=3) -- 27484(line=1362, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_closure (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; // ATSlocal_void (tmp446) ; // ATSlocal_void (tmp447) ; // ATSlocal_void (tmp448) ; // ATSlocal_void (tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; // ATSlocal_void (tmp451) ; ATSlocal (ats_bool_type, tmp452) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_closure: tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab (arg1) ; tmp445 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (arg1) ; /* tmp446 = */ auxall_beg_36 (arg0, tmp444, tmp445) ; /* tmp447 = */ auxclo_type_32 (arg0, tmp444, tmp445) ; /* tmp448 = */ auxclo_cfun_33 (arg0, tmp444, tmp445) ; /* tmp449 = */ auxclo_init_34 (arg0, tmp444, tmp445) ; tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo (tmp444) ; tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_ptr (tmp450) ; if (tmp452) { /* tmp451 = */ auxclo_create_35 (arg0, tmp444, tmp445) ; } else { /* empty */ } /* end of [if] */ /* tmp443 = */ auxall_end_37 (arg0, tmp444, tmp445) ; return /* (tmp443) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_closure] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 27688(line=1376, offs=5) -- 28254(line=1403, offs=4) */ ATSstaticdec() ats_void_type auxlst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; // ATSlocal_void (tmp457) ; // ATSlocal_void (tmp458) ; // ATSlocal_void (tmp459) ; // ATSlocal_void (tmp460) ; // ATSlocal_void (tmp461) ; ATSlocal (ats_int_type, tmp462) ; __ats_lab_auxlst_40: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp455 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp456 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp457 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATStmpdec(")) ; /* tmp458 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarg (arg0, arg2) ; /* tmp459 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp460 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp455) ; /* tmp461 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; tmp462 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp456 ; arg2 = tmp462 ; goto __ats_lab_auxlst_40 ; // tail call break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: break ; } while (0) ; return /* (tmp454) */ ; } /* end of [auxlst_40] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 27663(line=1374, offs=20) -- 28353(line=1409, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funarg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp453) ; ATSlocal (ats_ptr_type, tmp463) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funarg: tmp463 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg (arg1) ; /* tmp453 = */ auxlst_40 (arg0, tmp463, 0) ; return /* (tmp453) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funarg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 28537(line=1423, offs=1) -- 29100(line=1451, offs=4) */ ATSstaticdec() ats_void_type auxlst_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; // ATSlocal_void (tmp468) ; // ATSlocal_void (tmp469) ; // ATSlocal_void (tmp470) ; // ATSlocal_void (tmp471) ; // ATSlocal_void (tmp472) ; ATSlocal (ats_int_type, tmp473) ; __ats_lab_auxlst_42: do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp466 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp467 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp468 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATStmpdec(")) ; /* tmp469 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funapy (arg0, arg2) ; /* tmp470 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp471 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp466) ; /* tmp472 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; tmp473 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp467 ; arg2 = tmp473 ; goto __ats_lab_auxlst_42 ; // tail call break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: break ; } while (0) ; return /* (tmp465) */ ; } /* end of [auxlst_42] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 28512(line=1420, offs=3) -- 29199(line=1457, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funapy (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp464) ; ATSlocal (ats_ptr_type, tmp474) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funapy: tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg (arg1) ; /* tmp464 = */ auxlst_42 (arg0, tmp474, 0) ; return /* (tmp464) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funapy] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 29351(line=1467, offs=3) -- 29744(line=1485, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fundec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_int_type, tmp478) ; // ATSlocal_void (tmp479) ; // ATSlocal_void (tmp480) ; ATSlocal (ats_bool_type, tmp481) ; // ATSlocal_void (tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fundec: tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab (arg1) ; tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret (arg1) ; tmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_tailcal (tmp477) ; /* tmp479 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/* tmpvardeclst(beg) */\n")) ; tmp481 = atspre_gte_int_int (tmp478, 2) ; if (tmp481) { /* tmp480 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funapy (arg0, tmp476) ; } else { /* empty */ } /* end of [if] */ tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpvarlst (arg1) ; /* tmp482 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdeclst (arg0, tmp483) ; /* tmp475 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/* tmpvardeclst(end) */\n")) ; return /* (tmp475) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fundec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 29903(line=1496, offs=3) -- 30435(line=1518, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_funbody (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp484) ; // ATSlocal_void (tmp485) ; // ATSlocal_void (tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; // ATSlocal_void (tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_bool_type, tmp490) ; // ATSlocal_void (tmp491) ; ATSlocal (ats_bool_type, tmp492) ; // ATSlocal_void (tmp493) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_funbody: /* tmp485 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSfunbody_beg()\n")) ; tmp487 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_instrlst (arg1) ; /* tmp486 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln (arg0, tmp487) ; /* tmp488 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSfunbody_end()\n")) ; tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret (arg1) ; tmp490 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_is_void (tmp489) ; tmp492 = atspre_neg_bool (tmp490) ; if (tmp492) { /* tmp491 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSreturn(")) ; } else { /* tmp491 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSreturn_void(")) ; } /* end of [if] */ /* tmp493 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp489) ; /* tmp484 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; return /* (tmp484) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_funbody] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 30666(line=1533, offs=5) -- 30970(line=1552, offs=4) */ ATSstaticdec() ats_void_type auxfl_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; // ATSlocal_void (tmp497) ; __ats_lab_auxfl_45: tmp495 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (arg2) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (tmp495 == (ats_sum_ptr_type)0) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp496 = ats_caselptrlab_mac(anairiats_sum_22, tmp495, atslab_0) ; /* tmp497 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funlab_funarg (arg0, arg2) ; /* tmp494 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fundec (arg0, tmp496) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: // if (tmp495 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_73_1: break ; } while (0) ; return /* (tmp494) */ ; } /* end of [auxfl_45] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 30994(line=1554, offs=5) -- 31352(line=1573, offs=4) */ ATSstaticdec() ats_void_type auxflist_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; // ATSlocal_void (tmp501) ; // ATSlocal_void (tmp502) ; // ATSlocal_void (tmp503) ; ATSlocal (ats_int_type, tmp504) ; __ats_lab_auxflist_46: do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp499 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp500 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; /* tmp501 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_set_nfnx (arg3) ; /* tmp502 = */ auxfl_45 (arg0, arg1, tmp499) ; /* tmp503 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_set_nfnx (0) ; tmp504 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp500 ; arg3 = tmp504 ; goto __ats_lab_auxflist_46 ; // tail call break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: break ; } while (0) ; return /* (tmp498) */ ; } /* end of [auxflist_46] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 31433(line=1579, offs=3) -- 31802(line=1598, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxdeclst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; // ATSlocal_void (tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxdeclst: tmp506 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_fnxlablst (arg1) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (tmp506 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: /* tmp507 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\nemit_funent_fnxdeclst:\n*/\n")) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (tmp506 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: break ; } while (0) ; do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (tmp506 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp508 = ats_caselptrlab_mac(anairiats_sum_3, tmp506, atslab_1) ; /* tmp505 = */ auxflist_46 (arg0, arg1, tmp508, 2) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (tmp506 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: break ; } while (0) ; return /* (tmp505) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxdeclst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 31893(line=1606, offs=5) -- 32106(line=1621, offs=4) */ ATSstaticdec() ats_void_type auxfl_48 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; __ats_lab_auxfl_48: tmp510 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (arg2) ; do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (tmp510 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp511 = ats_caselptrlab_mac(anairiats_sum_22, tmp510, atslab_0) ; /* tmp509 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_funbody (arg0, tmp511) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (tmp510 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: break ; } while (0) ; return /* (tmp509) */ ; } /* end of [auxfl_48] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 32130(line=1623, offs=5) -- 32488(line=1642, offs=4) */ ATSstaticdec() ats_void_type auxflist_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; // ATSlocal_void (tmp515) ; // ATSlocal_void (tmp516) ; // ATSlocal_void (tmp517) ; ATSlocal (ats_int_type, tmp518) ; __ats_lab_auxflist_49: do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp513 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp514 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; /* tmp515 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_set_nfnx (arg3) ; /* tmp516 = */ auxfl_48 (arg0, arg1, tmp513) ; /* tmp517 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_set_nfnx (0) ; tmp518 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp514 ; arg3 = tmp518 ; goto __ats_lab_auxflist_49 ; // tail call break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_83_1: break ; } while (0) ; return /* (tmp512) */ ; } /* end of [auxflist_49] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 32570(line=1648, offs=3) -- 32918(line=1667, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxbodylst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; // ATSlocal_void (tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxbodylst: tmp520 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_fnxlablst (arg1) ; do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (tmp520 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp521 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\nemit_funent_fnxbodylst:\n*/\n")) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: __ats_lab_85_1: break ; } while (0) ; do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (tmp520 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp522 = ats_caselptrlab_mac(anairiats_sum_3, tmp520, atslab_1) ; /* tmp519 = */ auxflist_49 (arg0, arg1, tmp522, 2) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: // if (tmp520 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_87_1: break ; } while (0) ; return /* (tmp519) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxbodylst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 33010(line=1675, offs=5) -- 33611(line=1698, offs=4) */ ATSstaticdec() ats_void_type auxtmp_51 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; // ATSlocal_void (tmp527) ; // ATSlocal_void (tmp528) ; // ATSlocal_void (tmp529) ; // ATSlocal_void (tmp530) ; // ATSlocal_void (tmp531) ; // ATSlocal_void (tmp532) ; // ATSlocal_void (tmp533) ; // ATSlocal_void (tmp534) ; // ATSlocal_void (tmp535) ; // ATSlocal_void (tmp536) ; __ats_lab_auxtmp_51: tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_imparg (arg1) ; tmp525 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg (arg1) ; tmp526 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpsub (arg1) ; /* tmp527 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp528 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("imparg = ")) ; /* tmp529 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp524) ; /* tmp530 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n")) ; /* tmp531 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("tmparg = ")) ; /* tmp532 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst (arg0, tmp525) ; /* tmp533 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n")) ; /* tmp534 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("tmpsub = ")) ; /* tmp535 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsubopt (arg0, tmp526) ; /* tmp536 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n")) ; /* tmp523 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; return /* (tmp523) */ ; } /* end of [auxtmp_51] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 33688(line=1704, offs=3) -- 36123(line=1804, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_implmnt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; // ATSlocal_void (tmp541) ; // ATSlocal_void (tmp542) ; // ATSlocal_void (tmp543) ; // ATSlocal_void (tmp544) ; // ATSlocal_void (tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; // ATSlocal_void (tmp547) ; // ATSlocal_void (tmp548) ; // ATSlocal_void (tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; // ATSlocal_void (tmp551) ; // ATSlocal_void (tmp552) ; // ATSlocal_void (tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; // ATSlocal_void (tmp555) ; // ATSlocal_void (tmp556) ; // ATSlocal_void (tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; // ATSlocal_void (tmp559) ; // ATSlocal_void (tmp560) ; // ATSlocal_void (tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_bool_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_bool_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_bool_type, tmp569) ; ATSlocal (ats_bool_type, tmp570) ; // ATSlocal_void (tmp571) ; // ATSlocal_void (tmp572) ; ATSlocal (ats_bool_type, tmp573) ; // ATSlocal_void (tmp574) ; // ATSlocal_void (tmp575) ; // ATSlocal_void (tmp576) ; // ATSlocal_void (tmp577) ; // ATSlocal_void (tmp578) ; ATSlocal (ats_int_type, tmp579) ; // ATSlocal_void (tmp580) ; // ATSlocal_void (tmp581) ; // ATSlocal_void (tmp582) ; // ATSlocal_void (tmp583) ; // ATSlocal_void (tmp584) ; // ATSlocal_void (tmp585) ; // ATSlocal_void (tmp586) ; // ATSlocal_void (tmp587) ; // ATSlocal_void (tmp588) ; // ATSlocal_void (tmp589) ; // ATSlocal_void (tmp590) ; // ATSlocal_void (tmp591) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_implmnt: tmp538 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_loc (arg1) ; tmp539 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab (arg1) ; tmp540 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (arg1) ; /* tmp541 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp542 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp538) ; /* tmp543 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; /* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp545 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("local: ")) ; tmp546 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst (arg1) ; /* tmp547 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablst (arg0, tmp546) ; /* tmp548 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; /* tmp549 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("global: ")) ; tmp550 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_flablst (arg1) ; /* tmp551 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablst (arg0, tmp550) ; /* tmp552 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; /* tmp553 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("local: ")) ; tmp554 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (arg1) ; /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst (arg0, tmp554) ; /* tmp556 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; /* tmp557 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("global: ")) ; tmp558 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (arg1) ; /* tmp559 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst (arg0, tmp558) ; /* tmp560 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; /* tmp561 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; tmp562 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_res (tmp539) ; tmp563 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg (tmp539) ; tmp564 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (tmp539) ; do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (tmp564 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp566 = ats_caselptrlab_mac(anairiats_sum_22, tmp564, atslab_0) ; tmp567 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_static (tmp566) ; if (tmp567) { tmp565 = ats_false_bool ; } else { tmp565 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (tmp564 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: tmp565 = ats_false_bool ; break ; } while (0) ; tmp568 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin (tmp539) ; do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (tmp568 == (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp569 = ats_false_bool ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (tmp568 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: tmp569 = tmp565 ; break ; } while (0) ; tmp570 = atspre_neg_bool (tmp569) ; if (tmp569) { /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSextern()\n")) ; } else { /* empty */ } /* end of [if] */ if (tmp570) { /* tmp572 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstatic()\n")) ; } else { /* empty */ } /* end of [if] */ tmp573 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_is_tmplt (arg1) ; if (tmp573) { /* tmp574 = */ auxtmp_51 (arg0, arg1) ; } else { /* empty */ } /* end of [if] */ /* tmp575 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp562) ; /* tmp576 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n")) ; /* tmp577 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp539) ; /* tmp578 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; tmp579 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funenvlst (arg0, tmp540) ; /* tmp580 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarglst (arg0, tmp579, tmp563) ; /* tmp581 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")\n")) ; /* tmp582 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize (arg1) ; /* tmp583 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize2 (arg1) ; /* tmp584 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("{\n")) ; /* tmp585 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fundec (arg0, arg1) ; /* tmp586 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxdeclst (arg0, arg1) ; /* tmp587 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_funbody (arg0, arg1) ; /* tmp588 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__emit_funent_fnxbodylst (arg0, arg1) ; /* tmp589 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("} /* end of [")) ; /* tmp590 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp539) ; /* tmp591 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("] */\n")) ; /* tmp537 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_uninitize (arg1) ; return /* (tmp537) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_implmnt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 36226(line=1812, offs=3) -- 36459(line=1825, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_dynload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; // ATSlocal_void (tmp595) ; // ATSlocal_void (tmp596) ; // ATSlocal_void (tmp597) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_dynload: tmp593 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp593)->tag != 18) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 36250(line=1814, offs=5) -- 36284(line=1814, offs=39)") ; } tmp594 = ats_caselptrlab_mac(anairiats_sum_2, tmp593, atslab_0) ; /* tmp595 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynloadfcall(")) ; /* tmp596 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename (arg0, tmp594) ; /* tmp597 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__dynload")) ; /* tmp592 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; return /* (tmp592) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_dynload] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 36566(line=1834, offs=5) -- 37954(line=1898, offs=4) */ ATSstaticdec() ats_void_type emit_primdec_54 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; // ATSlocal_void (tmp613) ; // ATSlocal_void (tmp614) ; // ATSlocal_void (tmp615) ; // ATSlocal_void (tmp616) ; __ats_lab_emit_primdec_54: tmp599 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg1), atslab_primdec_node) ; do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp599)->tag != 0) { goto __ats_lab_93_0 ; } __ats_lab_92_1: break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp599)->tag != 1) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp600 = ats_caselptrlab_mac(anairiats_sum_2, tmp599, atslab_0) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst (arg0, tmp600) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp599)->tag != 2) { goto __ats_lab_95_0 ; } __ats_lab_94_1: break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp599)->tag != 3) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp601 = ats_caselptrlab_mac(anairiats_sum_5, tmp599, atslab_1) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln (arg0, ats_castfn_mac(ats_ptr_type, tmp601)) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp599)->tag != 4) { goto __ats_lab_97_0 ; } __ats_lab_96_1: break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp599)->tag != 5) { goto __ats_lab_98_0 ; } __ats_lab_97_1: break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp599)->tag != 10) { goto __ats_lab_101_0 ; } __ats_lab_98_1: tmp602 = ats_caselptrlab_mac(anairiats_sum_2, tmp599, atslab_0) ; tmp603 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_instrlstopt (tmp602) ; do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (tmp603 == (ats_sum_ptr_type)0) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp604 = ats_caselptrlab_mac(anairiats_sum_22, tmp603, atslab_0) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln (arg0, tmp604) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: // if (tmp603 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_100_1: break ; } while (0) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp599)->tag != 6) { goto __ats_lab_102_0 ; } __ats_lab_101_1: break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp599)->tag != 7) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp605 = ats_caselptrlab_mac(anairiats_sum_20, tmp599, atslab_2) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln (arg0, ats_castfn_mac(ats_ptr_type, tmp605)) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp599)->tag != 8) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp606 = ats_caselptrlab_mac(anairiats_sum_20, tmp599, atslab_2) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln (arg0, ats_castfn_mac(ats_ptr_type, tmp606)) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp599)->tag != 9) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp607 = ats_caselptrlab_mac(anairiats_sum_5, tmp599, atslab_1) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln (arg0, ats_castfn_mac(ats_ptr_type, tmp607)) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp599)->tag != 11) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp608 = ats_caselptrlab_mac(anairiats_sum_10, tmp599, atslab_1) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst (arg0, tmp608) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp599)->tag != 12) { goto __ats_lab_107_0 ; } __ats_lab_106_1: break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp599)->tag != 13) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp609 = ats_caselptrlab_mac(anairiats_sum_20, tmp599, atslab_2) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst (arg0, tmp609) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp599)->tag != 14) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp610 = ats_caselptrlab_mac(anairiats_sum_2, tmp599, atslab_0) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_dynload (arg0, tmp610) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (((ats_sum_ptr_type)tmp599)->tag != 15) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: tmp611 = ats_caselptrlab_mac(anairiats_sum_5, tmp599, atslab_0) ; tmp612 = ats_caselptrlab_mac(anairiats_sum_5, tmp599, atslab_1) ; /* tmp613 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/* local */\n")) ; /* tmp614 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst (arg0, tmp611) ; /* tmp615 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/* in of [local] */\n")) ; /* tmp616 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst (arg0, tmp612) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/* end of [local] */\n")) ; break ; } while (0) ; return /* (tmp598) */ ; } /* end of [emit_primdec_54] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 38033(line=1904, offs=3) -- 38254(line=1916, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp617) ; ATSlocal (ats_ptr_type, tmp618) ; ATSlocal (ats_ptr_type, tmp619) ; // ATSlocal_void (tmp620) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst: do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp618 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp619 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp620 = */ emit_primdec_54 (arg0, tmp618) ; arg0 = arg0 ; arg1 = tmp619 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst ; // tail call break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: break ; } while (0) ; return /* (tmp617) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 38358(line=1924, offs=3) -- 38642(line=1945, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con_extdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp621) ; ATSlocal (ats_bool_type, tmp622) ; // ATSlocal_void (tmp623) ; // ATSlocal_void (tmp624) ; // ATSlocal_void (tmp625) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con_extdec: tmp622 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_exn (arg1) ; if (tmp622) { /* tmp623 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynexn_extdec")) ; /* tmp624 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp625 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con (arg0, arg1) ; /* tmp621 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp621) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con_extdec] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 4310(line=156, offs=6) -- 4365(line=156, offs=61) */ ATSstaticdec() ats_void_type app_60 (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp629) ; __ats_lab_app_60: /* tmp629 = */ ((ats_void_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return /* (tmp629) */ ; } /* end of [app_60] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_62 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; // ATSlocal_void (tmp634) ; __ats_lab_loop_62: do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp632 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp633 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp634 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp632, arg2) ; arg0 = tmp633 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_62 ; // tail call break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_113_1: break ; } while (0) ; return /* (tmp631) */ ; } /* end of [loop_62] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp630) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp630 = */ loop_62 (arg0, arg1, arg2) ; return /* (tmp630) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 4235(line=154, offs=20) -- 4426(line=159, offs=4) */ ATSstaticdec() ats_void_type list_app_vcloptr_01304_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp628) ; __ats_lab_list_app_vcloptr_01304_ats_ptr_type: /* tmp628 = */ list_app_funenv_01300_ats_ptr_type (arg0, &app_60, arg1) ; return /* (tmp628) */ ; } /* end of [list_app_vcloptr_01304_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 3690(line=137, offs=11) -- 4157(line=151, offs=4) */ ATSstaticdec() ats_void_type list_app_cloptr_01303_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp627) ; __ats_lab_list_app_cloptr_01303_ats_ptr_type: /* tmp627 = */ list_app_vcloptr_01304_ats_ptr_type (arg0, arg1) ; return /* (tmp627) */ ; } /* end of [list_app_cloptr_01303_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 38755(line=1951, offs=33) -- 38796(line=1951, offs=74) */ ATSstaticdec() ats_void_type __ats_fun_63 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp636) ; __ats_lab___ats_fun_63: /* tmp636 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con_extdec (env0, arg0) ; return /* (tmp636) */ ; } /* end of [__ats_fun_63] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_63_closure_type ; ats_void_type __ats_fun_63_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { __ats_fun_63 (((__ats_fun_63_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type __ats_fun_63_closure_init (__ats_fun_63_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_63_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_63_closure_make (ats_ptr_type env0) { __ats_fun_63_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_63_closure_type)) ; __ats_fun_63_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 38707(line=1949, offs=3) -- 38797(line=1951, offs=75) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_extdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp626) ; ATSlocal (ats_ptr_type, tmp635) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_extdec: /* ats_ptr_type tmp635 ; */ tmp635 = __ats_fun_63_closure_make (arg0) ; /* tmp626 = */ list_app_cloptr_01303_ats_ptr_type (arg1, tmp635) ; ATS_FREE(tmp635) ; return /* (tmp626) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_extdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 38914(line=1960, offs=5) -- 39374(line=1980, offs=4) */ ATSstaticdec() ats_void_type aux_65 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp638) ; ATSlocal (ats_ptr_type, tmp639) ; ATSlocal (ats_ptr_type, tmp640) ; // ATSlocal_void (tmp641) ; // ATSlocal_void (tmp642) ; // ATSlocal_void (tmp643) ; // ATSlocal_void (tmp644) ; // ATSlocal_void (tmp645) ; // ATSlocal_void (tmp646) ; // ATSlocal_void (tmp647) ; // ATSlocal_void (tmp648) ; __ats_lab_aux_65: tmp639 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_fil (arg1) ; tmp640 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name (arg1) ; /* tmp641 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynexn_initize(")) ; /* tmp642 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con (arg0, arg1) ; /* tmp643 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp644 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\"")) ; /* tmp645 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp639) ; /* tmp646 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(":")) ; /* tmp647 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp640) ; /* tmp648 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\"")) ; /* tmp638 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; return /* (tmp638) */ ; } /* end of [aux_65] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 38889(line=1958, offs=3) -- 39639(line=1994, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_initize (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp637) ; ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_bool_type, tmp651) ; // ATSlocal_void (tmp652) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_initize: do { /* branch: __ats_lab_114 */ __ats_lab_114_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp649 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp650 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp651 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_exn (tmp649) ; if (tmp651) { /* tmp652 = */ aux_65 (arg0, tmp649) ; } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = tmp650 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_initize ; // tail call break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_115_1: break ; } while (0) ; return /* (tmp637) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_initize] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 40189(line=2028, offs=3) -- 41800(line=2102, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst_extdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp653) ; ATSlocal (ats_bool_type, tmp654) ; // ATSlocal_void (tmp655) ; // ATSlocal_void (tmp656) ; ATSlocal (ats_bool_type, tmp657) ; ATSlocal (ats_bool_type, tmp658) ; // ATSlocal_void (tmp659) ; // ATSlocal_void (tmp660) ; // ATSlocal_void (tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; // ATSlocal_void (tmp663) ; // ATSlocal_void (tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; // ATSlocal_void (tmp666) ; ATSlocal (ats_bool_type, tmp667) ; // ATSlocal_void (tmp668) ; // ATSlocal_void (tmp669) ; ATSlocal (ats_ptr_type, tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; // ATSlocal_void (tmp672) ; // ATSlocal_void (tmp673) ; // ATSlocal_void (tmp674) ; // ATSlocal_void (tmp675) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst_extdec: do { /* branch: __ats_lab_116 */ __ats_lab_116_0: __ats_lab_116_1: tmp654 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mac (arg1) ; if (!tmp654) { goto __ats_lab_117_1 ; } /* tmp655 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdyncst_mac(")) ; /* tmp656 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, arg1) ; /* tmp653 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")\n")) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: __ats_lab_117_1: tmp657 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fundec (arg1) ; if (!tmp657) { goto __ats_lab_118_1 ; } tmp658 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_static (arg1) ; if (tmp658) { /* tmp659 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdyncst_stafun(")) ; } else { /* tmp659 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdyncst_extfun(")) ; } /* end of [if] */ /* tmp660 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, arg1) ; /* tmp661 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", (")) ; tmp662 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_arg (arg1) ; /* tmp663 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexplst_sep (arg0, tmp662, ATSstrcst(", ")) ; /* tmp664 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("), ")) ; tmp665 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_type_res (arg1) ; /* tmp666 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp665) ; /* tmp653 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: __ats_lab_118_1: tmp667 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_castfn (arg1) ; if (!tmp667) { goto __ats_lab_119_1 ; } /* tmp668 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdyncst_castfn(")) ; /* tmp669 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, arg1) ; /* tmp653 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")\n")) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: __ats_lab_119_1: tmp670 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp (arg1) ; if (tmp670 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 41524(line=2092, offs=9) -- 41559(line=2092, offs=44)") ; } tmp671 = ats_caselptrlab_mac(anairiats_sum_22, tmp670, atslab_0) ; /* tmp672 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdyncst_valdec(")) ; /* tmp673 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, arg1) ; /* tmp674 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp675 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp671) ; /* tmp653 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; break ; } while (0) ; return /* (tmp653) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst_extdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 41913(line=2108, offs=33) -- 41954(line=2108, offs=74) */ ATSstaticdec() ats_void_type __ats_fun_68 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp678) ; __ats_lab___ats_fun_68: /* tmp678 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst_extdec (env0, arg0) ; return /* (tmp678) */ ; } /* end of [__ats_fun_68] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_68_closure_type ; ats_void_type __ats_fun_68_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { __ats_fun_68 (((__ats_fun_68_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type __ats_fun_68_closure_init (__ats_fun_68_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_68_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_68_closure_make (ats_ptr_type env0) { __ats_fun_68_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_68_closure_type)) ; __ats_fun_68_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit3.dats: 41865(line=2106, offs=3) -- 41955(line=2108, offs=75) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cstlst_extdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cstlst_extdec: /* ats_ptr_type tmp677 ; */ tmp677 = __ats_fun_68_closure_make (arg0) ; /* tmp676 = */ list_app_cloptr_01303_ats_ptr_type (arg1, tmp677) ; ATS_FREE(tmp677) ; return /* (tmp676) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cstlst_extdec] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_emit3_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_main_dats.c0000644000175000017500000044412113431250607022640 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/stdio.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/stdlib.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/unistd.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_primdec_loc ; ats_ptr_type atslab_primdec_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_hiimpdec_loc ; ats_int_type atslab_hiimpdec_knd ; ats_ptr_type atslab_hiimpdec_cst ; ats_ptr_type atslab_hiimpdec_imparg ; ats_ptr_type atslab_hiimpdec_tmparg ; ats_ptr_type atslab_hiimpdec_def ; ats_ptr_type atslab_hiimpdec_funlab ; ats_ptr_type atslab_hiimpdec_instrlst ; } anairiats_rec_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_8 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextcode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdynload_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDinclude_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlocal_15) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_strptr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_clo) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_artylst) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mainats) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdeclst_get_tmpvarset) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_instrlstopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp0) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_time_stamp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_header) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_prelude) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_exndec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_saspdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extcode) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_staload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_extdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_initize) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cstlst_extdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdeclst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_tmpdeclst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_funlablst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_typedeflst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dynconlst_extdec) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dyncstlst_extdec) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst_valimp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_ptype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_closure) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_implmnt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_tmpvarlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_primdeclst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_get2) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_set2) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_initset2) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_ptype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_closure) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_implmnt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_tmpvar_set_topknd) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_get2) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_set2) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_initset2) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_get2) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_set2) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_initset2) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_get2) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_set2) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_initset2) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_initize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_d2copt_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynloadflag_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_main_arglst_err) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynloadflag) (ats_ptr_type, ats_ptr_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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type auxlst_staticize_12 (ats_ptr_type arg0) ; static ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type aux_29 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_30 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_33 (ats_ptr_type arg0) ; static ats_ptr_type tostring_fprint_03425_ats_int_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type __ats_fun_41 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type the_tmpdeclst_stringize_39 () ; static ats_void_type __ats_fun_43 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type the_primdeclst_stringize_42 () ; static ats_void_type __ats_fun_45 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type the_funlablst_stringize_44 () ; static ats_void_type loop_47 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_staload_46 (ats_ptr_type arg0) ; static ats_void_type loop_49 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_dynload_ext_48 (ats_ptr_type arg0) ; static ats_void_type aux_dynload_ias_50 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_dynload_def_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_main_52 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_main_ifopt_53 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_55 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_extcodelst_if_54 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_57 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_exndeclst_56 (ats_ptr_type arg0) ; static ats_void_type loop_59 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_saspdeclst_58 (ats_ptr_type arg0) ; static ats_void_type loop_61 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_extypelst_60 (ats_ptr_type arg0) ; static ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type __ats_fun_65 (ats_int_type arg0) ; static ats_bool_type __ats_fun_66 (ats_int_type arg0) ; static ats_bool_type __ats_fun_67 (ats_int_type arg0) ; static ats_bool_type __ats_fun_68 (ats_int_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp66) ; ATSstatic (ats_ptr_type, statmp69) ; ATSstatic (ats_ptr_type, statmp132) ; ATSstatic (ats_ptr_type, statmp133) ; ATSstatic (ats_ptr_type, statmp151) ; ATSstatic (ats_ptr_type, statmp152) ; ATSstatic (ats_ptr_type, statmp162) ; ATSstatic (ats_ptr_type, statmp163) ; ATSstatic (ats_ptr_type, statmp210) ; ATSstatic (ats_ptr_type, statmp211) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 2193(line=87, offs=3) -- 3156(line=110, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_header (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; // ATSlocal_void (tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_header: /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** include runtime header files\n")) ; /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifndef _ATS_CCOMP_HEADER_NONE_\n")) ; /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_config.h\"\n")) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_basics.h\"\n")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_typedefs.h\"\n")) ; /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_instrset.h\"\n")) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_memalloc.h\"\n")) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifndef _ATS_CCOMP_EXCEPTION_NONE_\n")) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_memalloca.h\"\n")) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_exception.h\"\n")) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]\n")) ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif /* _ATS_CCOMP_HEADER_NONE_ */\n")) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_header] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 3248(line=116, offs=3) -- 6202(line=187, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_prelude (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_prelude: /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** include prelude cats files\n")) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifndef _ATS_CCOMP_PRELUDE_NONE_\n")) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("//\n")) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/basics.cats\"\n")) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/integer.cats\"\n")) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/pointer.cats\"\n")) ; /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/integer_long.cats\"\n")) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/integer_size.cats\"\n")) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/integer_short.cats\"\n")) ; /* tmp28 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/bool.cats\"\n")) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/char.cats\"\n")) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/float.cats\"\n")) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/integer_ptr.cats\"\n")) ; /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/integer_fixed.cats\"\n")) ; /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/memory.cats\"\n")) ; /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/string.cats\"\n")) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/strptr.cats\"\n")) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("//\n")) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/fprintf.cats\"\n")) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("//\n")) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/filebas.cats\"\n")) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("//\n")) ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/list.cats\"\n")) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/option.cats\"\n")) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/array.cats\"\n")) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/arrayptr.cats\"\n")) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/arrayref.cats\"\n")) ; /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/matrix.cats\"\n")) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"prelude/CATS/matrixptr.cats\"\n")) ; /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("//\n")) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif /* _ATS_CCOMP_PRELUDE_NONE_ */\n")) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** for user-supplied prelude\n")) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifdef _ATS_CCOMP_PRELUDE_USER_\n")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("//\n")) ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include _ATS_CCOMP_PRELUDE_USER_\n")) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("//\n")) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif /* _ATS_CCOMP_PRELUDE_USER_ */\n")) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** for user2-supplied prelude\n")) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifdef _ATS_CCOMP_PRELUDE_USER2_\n")) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("//\n")) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include _ATS_CCOMP_PRELUDE_USER2_\n")) ; /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("//\n")) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif /* _ATS_CCOMP_PRELUDE_USER2_ */\n")) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; return /* (tmp16) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_prelude] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp68 ; */ tmp68 = arg0 ; tmp67 = atspre_ref_make_elt_tsz ((&tmp68), sizeof(ats_ptr_type)) ; return (tmp67) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 6499(line=208, offs=3) -- 6709(line=222, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_get2 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_get2: tmp71 = ats_ptrget_mac(ats_ptr_type, statmp66) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp71 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_1, tmp71, atslab_0) ; tmp70 = tmp72 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp71 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_get () ; tmp74 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp74, atslab_0, tmp73) ; ats_ptrget_mac(ats_ptr_type, statmp66) = tmp74 ; tmp70 = tmp73 ; break ; } while (0) ; return (tmp70) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_get2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 6770(line=225, offs=19) -- 6801(line=225, offs=50) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_set2 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_set2: tmp76 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp76, atslab_0, arg0) ; ats_ptrget_mac(ats_ptr_type, statmp66) = tmp76 ; return /* (tmp75) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_set2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 6835(line=227, offs=23) -- 6861(line=227, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_initset2 () { /* local vardec */ // ATSlocal_void (tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_initset2: tmp78 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, statmp66) = tmp78 ; return /* (tmp77) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_initset2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 7048(line=241, offs=5) -- 7359(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; // ATSlocal_void (tmp85) ; ATSlocal (ats_int_type, tmp86) ; __ats_lab_loop_7: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp82 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp81) ; if (tmp83 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_main.dats: 7169(line=250, offs=9) -- 7211(line=251, offs=29)") ; } tmp84 = ats_caselptrlab_mac(anairiats_sum_1, tmp83, atslab_0) ; /* tmp85 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_ptype (arg0, tmp84) ; tmp86 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp82 ; arg2 = tmp86 ; goto __ats_lab_loop_7 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp80) */ ; } /* end of [loop_7] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 7024(line=239, offs=22) -- 7407(line=263, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_ptype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_ptype: /* tmp79 = */ loop_7 (arg0, arg1, 0) ; return /* (tmp79) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_ptype] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 7602(line=276, offs=5) -- 8237(line=304, offs=4) */ ATSstaticdec() ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_bool_type, tmp92) ; ATSlocal (ats_bool_type, tmp93) ; ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_int_type, tmp99) ; __ats_lab_loop_9: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp89 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp90 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd (tmp89) ; tmp93 = atspre_gt_int_int (tmp91, 0) ; if (tmp93) { tmp92 = ats_true_bool ; } else { tmp92 = ats_false_bool ; } /* end of [if] */ if (tmp92) { tmp94 = ats_false_bool ; } else { tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo (tmp89) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_clo (tmp95) ; } /* end of [if] */ tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp89) ; if (tmp96 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_main.dats: 8055(line=296, offs=9) -- 8089(line=296, offs=43)") ; } tmp97 = ats_caselptrlab_mac(anairiats_sum_1, tmp96, atslab_0) ; if (tmp94) { /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_closure (arg0, tmp97) ; } else { /* empty */ } /* end of [if] */ tmp99 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp90 ; arg2 = tmp99 ; goto __ats_lab_loop_9 ; // tail call break ; } while (0) ; return /* (tmp88) */ ; } /* end of [loop_9] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 7578(line=274, offs=3) -- 8285(line=308, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_closure (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_closure: /* tmp87 = */ loop_9 (arg0, arg1, 0) ; return /* (tmp87) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_closure] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 8482(line=321, offs=5) -- 9108(line=351, offs=4) */ ATSstaticdec() ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; // ATSlocal_void (tmp107) ; ATSlocal (ats_bool_type, tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_bool_type, tmp111) ; // ATSlocal_void (tmp112) ; ATSlocal (ats_int_type, tmp113) ; __ats_lab_loop_11: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd (tmp102) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp102) ; if (tmp105 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_main.dats: 8667(line=334, offs=9) -- 8701(line=334, offs=43)") ; } tmp106 = ats_caselptrlab_mac(anairiats_sum_1, tmp105, atslab_0) ; tmp108 = atspre_gt_int_int (tmp104, 0) ; if (tmp108) { /* tmp107 = */ atspre_fprint_string (arg0, ATSstrcst("#if(0)\n")) ; } else { /* empty */ } /* end of [if] */ /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funent_implmnt (arg0, tmp106) ; tmp111 = atspre_gt_int_int (tmp104, 0) ; if (tmp111) { /* tmp110 = */ atspre_fprint_string (arg0, ATSstrcst("#endif // end of [TEMPLATE]\n")) ; } else { /* empty */ } /* end of [if] */ /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; tmp113 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp103 ; arg2 = tmp113 ; goto __ats_lab_loop_11 ; // tail call break ; } while (0) ; return /* (tmp101) */ ; } /* end of [loop_11] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 8458(line=319, offs=3) -- 9156(line=355, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_implmnt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_implmnt: /* tmp100 = */ loop_11 (arg0, arg1, 0) ; return /* (tmp100) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_implmnt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 9324(line=369, offs=1) -- 9545(line=381, offs=4) */ ATSstaticdec() ats_void_type auxlst_staticize_12 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; // ATSlocal_void (tmp117) ; __ats_lab_auxlst_staticize_12: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp116 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; /* tmp117 = */ patsopt_tmpvar_set_topknd (tmp115, 1) ; arg0 = tmp116 ; goto __ats_lab_auxlst_staticize_12 ; // tail call break ; } while (0) ; return /* (tmp114) */ ; } /* end of [auxlst_staticize_12] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_ptr0_get_01759_ats_ptr_type: tmp122 = ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp122) ; } /* end of [ptr0_get_01759_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41) */ ATSstaticdec() ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_ptrget_01763_ats_ptr_type: tmp121 = ptr0_get_01759_ats_ptr_type (arg0) ; return (tmp121) ; } /* end of [ptrget_01763_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 9617(line=387, offs=3) -- 9789(line=396, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_tmpdeclst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; // ATSlocal_void (tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_tmpdeclst: tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_tmpvarlst () ; tmp120 = ptrget_01763_ats_ptr_type (tmp119) ; /* tmp123 = */ auxlst_staticize_12 (tmp120) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdeclst (arg0, tmp120) ; return /* (tmp118) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_tmpdeclst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 9904(line=404, offs=3) -- 10268(line=419, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dynconlst_extdec (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dynconlst_extdec: /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("dynconlst-declaration(beg)\n")) ; /* tmp127 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_get2 () ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_extdec (arg0, tmp128) ; /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("dynconlst-declaration(end)\n")) ; /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; return /* (tmp124) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dynconlst_extdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 10569(line=439, offs=3) -- 10785(line=454, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_get2 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_get2: tmp135 = ats_ptrget_mac(ats_ptr_type, statmp132) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp135 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_1, tmp135, atslab_0) ; tmp134 = tmp136 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp135 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_get () ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp138, atslab_0, tmp137) ; ats_ptrget_mac(ats_ptr_type, statmp132) = tmp138 ; tmp134 = tmp137 ; break ; } while (0) ; return (tmp134) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_get2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 10846(line=457, offs=19) -- 10877(line=457, offs=50) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_set2 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_set2: tmp140 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp140, atslab_0, arg0) ; ats_ptrget_mac(ats_ptr_type, statmp132) = tmp140 ; return /* (tmp139) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_set2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 10911(line=459, offs=23) -- 10937(line=459, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_initset2 () { /* local vardec */ // ATSlocal_void (tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_initset2: tmp142 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, statmp132) = tmp142 ; return /* (tmp141) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_initset2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 11031(line=467, offs=3) -- 11395(line=482, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dyncstlst_extdec (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dyncstlst_extdec: /* tmp144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("dyncstlst-declaration(beg)\n")) ; /* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_get2 () ; /* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cstlst_extdec (arg0, tmp147) ; /* tmp149 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("dyncstlst-declaration(end)\n")) ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; return /* (tmp143) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dyncstlst_extdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 11702(line=503, offs=3) -- 11911(line=518, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_get2 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_get2: tmp154 = ats_ptrget_mac(ats_ptr_type, statmp151) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp154 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_1, tmp154, atslab_0) ; tmp153 = tmp155 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp154 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_get () ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp157, atslab_0, tmp156) ; ats_ptrget_mac(ats_ptr_type, statmp151) = tmp157 ; tmp153 = tmp156 ; break ; } while (0) ; return (tmp153) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_get2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 11974(line=521, offs=20) -- 12003(line=521, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_set2 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_set2: tmp159 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp159, atslab_0, arg0) ; ats_ptrget_mac(ats_ptr_type, statmp151) = tmp159 ; return /* (tmp158) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_set2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 12038(line=523, offs=24) -- 12062(line=523, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_initset2 () { /* local vardec */ // ATSlocal_void (tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_initset2: tmp161 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, statmp151) = tmp161 ; return /* (tmp160) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_initset2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 12376(line=549, offs=3) -- 12584(line=563, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_get2 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_get2: tmp165 = ats_ptrget_mac(ats_ptr_type, statmp162) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp165 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp166 = ats_caselptrlab_mac(anairiats_sum_1, tmp165, atslab_0) ; tmp164 = tmp166 ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp165 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_get () ; tmp168 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp168, atslab_0, tmp167) ; ats_ptrget_mac(ats_ptr_type, statmp162) = tmp168 ; tmp164 = tmp167 ; break ; } while (0) ; return (tmp164) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_get2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 12645(line=566, offs=19) -- 12677(line=566, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_set2 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_set2: tmp170 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp170, atslab_0, arg0) ; ats_ptrget_mac(ats_ptr_type, statmp162) = tmp170 ; return /* (tmp169) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_set2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 12711(line=568, offs=23) -- 12736(line=568, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_initset2 () { /* local vardec */ // ATSlocal_void (tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_initset2: tmp172 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, statmp162) = tmp172 ; return /* (tmp171) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_initset2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 12823(line=576, offs=3) -- 13018(line=587, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_funlablst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_funlablst: tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_get2 () ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_ptype (arg0, tmp174) ; /* tmp176 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_closure (arg0, tmp174) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_funlablst_implmnt (arg0, tmp174) ; return /* (tmp173) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_funlablst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 13104(line=593, offs=3) -- 13247(line=602, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst: tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_primdeclst () ; tmp179 = ptrget_01763_ats_ptr_type (tmp178) ; /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst (arg0, tmp179) ; return /* (tmp177) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 13313(line=609, offs=1) -- 14259(line=657, offs=4) */ ATSstaticdec() ats_void_type aux_29 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; // ATSlocal_void (tmp193) ; ATSlocal (ats_int_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_bool_type, tmp196) ; __ats_lab_aux_29: tmp181 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_primdec_node) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp181)->tag != 10) { goto __ats_lab_19_0 ; } __ats_lab_16_1: tmp182 = ats_caselptrlab_mac(anairiats_sum_4, tmp181, atslab_0) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_instrlstopt (tmp182) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (tmp183 != (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (tmp183 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp182), atslab_hiimpdec_cst) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp (tmp184) ; if (tmp185 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_main.dats: 13618(line=630, offs=13) -- 13663(line=631, offs=34)") ; } tmp186 = ats_caselptrlab_mac(anairiats_sum_1, tmp185, atslab_0) ; /* tmp187 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdyncst_valimp(")) ; /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, tmp184) ; /* tmp189 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp186) ; /* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; break ; } while (0) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp181)->tag != 15) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_6, tmp181, atslab_0) ; tmp192 = ats_caselptrlab_mac(anairiats_sum_6, tmp181, atslab_1) ; /* tmp193 = */ auxlst_30 (arg0, tmp191) ; /* tmp180 = */ auxlst_30 (arg0, tmp192) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp181)->tag != 11) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_7, tmp181, atslab_0) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_7, tmp181, atslab_1) ; tmp196 = atspre_gt_int_int (tmp194, 0) ; if (tmp196) { /* tmp180 = */ auxlst_30 (arg0, tmp195) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: break ; } while (0) ; return /* (tmp180) */ ; } /* end of [aux_29] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 14281(line=660, offs=1) -- 14480(line=672, offs=4) */ ATSstaticdec() ats_void_type auxlst_30 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; // ATSlocal_void (tmp200) ; __ats_lab_auxlst_30: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp198 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp199 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp200 = */ aux_29 (arg0, tmp198) ; arg0 = arg0 ; arg1 = tmp199 ; goto __ats_lab_auxlst_30 ; // tail call break ; } while (0) ; return /* (tmp197) */ ; } /* end of [auxlst_30] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 14564(line=678, offs=3) -- 14992(line=697, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst_valimp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; // ATSlocal_void (tmp204) ; // ATSlocal_void (tmp205) ; // ATSlocal_void (tmp206) ; // ATSlocal_void (tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst_valimp: tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_primdeclst () ; tmp203 = ptrget_01763_ats_ptr_type (tmp202) ; /* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("dynvalist-implementation(beg)\n")) ; /* tmp206 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp207 = */ auxlst_30 (arg0, tmp203) ; /* tmp208 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("dynvalist-implementation(end)\n")) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; return /* (tmp201) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst_valimp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 15567(line=740, offs=1) -- 16113(line=772, offs=4) */ ATSstaticdec() ats_void_type loop_33 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_bool_type, tmp219) ; __ats_lab_loop_33: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp215 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (tmp214) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (tmp216 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (tmp216 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_1, tmp216, atslab_0) ; tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mainats (tmp218) ; if (tmp219) { ats_ptrget_mac(ats_ptr_type, statmp210) = tmp216 ; } else { /* empty */ } /* end of [if] */ break ; } while (0) ; arg0 = tmp215 ; goto __ats_lab_loop_33 ; // tail call break ; } while (0) ; return /* (tmp213) */ ; } /* end of [loop_33] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 15490(line=731, offs=3) -- 16219(line=779, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_initize () { /* local vardec */ // ATSlocal_void (tmp212) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_initize: tmp220 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, statmp210) = tmp220 ; tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_get2 () ; /* tmp212 = */ loop_33 (tmp221) ; return /* (tmp212) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_initize] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 16285(line=782, offs=23) -- 16309(line=782, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_d2copt_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_d2copt_get: tmp222 = ats_ptrget_mac(ats_ptr_type, statmp210) ; return (tmp222) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_d2copt_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 16423(line=793, offs=20) -- 16723(line=814, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynloadflag_get () { /* local vardec */ ATSlocal (ats_int_type, tmp223) ; ATSlocal (ats_int_type, tmp224) ; ATSlocal (ats_bool_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynloadflag_get: tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_get () ; tmp225 = atspre_eq_int_int (tmp224, 0) ; if (tmp225) { tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_d2copt_get () ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (tmp226 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp223 = -1 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (tmp226 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_get () ; break ; } while (0) ; } else { tmp223 = -1 ; } /* end of [if] */ return (tmp223) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynloadflag_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 16877(line=824, offs=3) -- 17213(line=840, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_main_arglst_err (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; ATSlocal (ats_bool_type, tmp229) ; // ATSlocal_void (tmp230) ; ATSlocal (ats_bool_type, tmp231) ; // ATSlocal_void (tmp232) ; ATSlocal (ats_bool_type, tmp233) ; ATSlocal (ats_bool_type, tmp234) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_main_arglst_err: tmp229 = atspre_gte_int_int (arg1, 1) ; if (tmp229) { /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("argc")) ; } else { /* empty */ } /* end of [if] */ tmp231 = atspre_gte_int_int (arg1, 2) ; if (tmp231) { /* tmp230 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", argv")) ; } else { /* empty */ } /* end of [if] */ tmp233 = atspre_gte_int_int (arg1, 3) ; if (tmp233) { /* tmp232 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", envp")) ; } else { /* empty */ } /* end of [if] */ tmp234 = atspre_lte_int_int (arg1, 0) ; if (tmp234) { /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("err")) ; } else { /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", err")) ; } /* end of [if] */ return /* (tmp227) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_main_arglst_err] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 17358(line=850, offs=3) -- 17452(line=854, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynload: /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename (arg0, arg1) ; /* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__dynload")) ; return /* (tmp235) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynload] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 17551(line=862, offs=3) -- 17649(line=866, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynloadflag (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynloadflag: /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename (arg0, arg1) ; /* tmp237 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__dynloadflag")) ; return /* (tmp237) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynloadflag] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 15706(line=856, offs=3) -- 16912(line=924, offs=4) */ ATSstaticdec() ats_ptr_type tostring_fprint_03425_ats_int_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_int_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_int_type, tmp244) ; ATSlocal (ats_bool_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; // ATSlocal_void (tmp248) ; ATSlocal (ats_int_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_int_type, tmp252) ; ATSlocal (ats_int_type, tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; __ats_lab_tostring_fprint_03425_ats_int_type: tmp241 = atspre_tostringf (ATSstrcst("%sXXXXXX"), arg0) ; tmp243 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp241)) ; tmp242 = atslib_mkstemp (tmp243) ; tmp244 = ats_selsin_mac(tmp242, atslab_1) ; tmp245 = atspre_igte (tmp244, 0) ; if (tmp245) { tmp246 = fdopen (tmp244, "w") ; tmp247 = ats_selsin_mac(tmp246, atslab_1) ; /* tmp248 = */ ((ats_void_type(*)(ats_ptr_type, ats_int_type))arg1) (tmp247, arg2) ; tmp249 = atslib_fflush_err (tmp247) ; tmp250 = atslib_fseek_err (tmp247, 0L, SEEK_SET) ; tmp251 = patsopt_file2strptr (tmp244) ; tmp252 = atslib_fclose_err (tmp247) ; tmp253 = atslib_unlink (ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp241)))) ; /* tmp254 = */ atspre_strptr_free (ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp241))) ; tmp240 = tmp251 ; } else { /* tmp255 = */ atspre_strptr_free (ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp241))) ; tmp240 = atspre_strptr_null () ; } /* end of [if] */ return (tmp240) ; } /* end of [tostring_fprint_03425_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 18045(line=892, offs=3) -- 18084(line=892, offs=42) */ ATSstaticdec() ats_void_type __ats_fun_41 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp256) ; __ats_lab___ats_fun_41: /* tmp256 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_tmpdeclst (arg0) ; return /* (tmp256) */ ; } /* end of [__ats_fun_41] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 17966(line=887, offs=1) -- 18089(line=893, offs=2) */ ATSstaticdec() ats_ptr_type the_tmpdeclst_stringize_39 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp239) ; __ats_lab_the_tmpdeclst_stringize_39: tmp239 = tostring_fprint_03425_ats_int_type (ATSstrcst("postiats_tmpdeclst_"), &__ats_fun_41, 0) ; return (tmp239) ; } /* end of [the_tmpdeclst_stringize_39] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 18212(line=901, offs=3) -- 18252(line=901, offs=43) */ ATSstaticdec() ats_void_type __ats_fun_43 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp258) ; __ats_lab___ats_fun_43: /* tmp258 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst (arg0) ; return /* (tmp258) */ ; } /* end of [__ats_fun_43] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 18131(line=896, offs=1) -- 18257(line=902, offs=2) */ ATSstaticdec() ats_ptr_type the_primdeclst_stringize_42 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; __ats_lab_the_primdeclst_stringize_42: tmp257 = tostring_fprint_03425_ats_int_type (ATSstrcst("postiats_primdeclst_"), &__ats_fun_43, 0) ; return (tmp257) ; } /* end of [the_primdeclst_stringize_42] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 18377(line=909, offs=26) -- 18416(line=909, offs=65) */ ATSstaticdec() ats_void_type __ats_fun_45 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp260) ; __ats_lab___ats_fun_45: /* tmp260 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_funlablst (arg0) ; return /* (tmp260) */ ; } /* end of [__ats_fun_45] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 18299(line=905, offs=1) -- 18421(line=910, offs=2) */ ATSstaticdec() ats_ptr_type the_funlablst_stringize_44 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp259) ; __ats_lab_the_funlablst_stringize_44: tmp259 = tostring_fprint_03425_ats_int_type (ATSstrcst("postiats_funlablst_"), &__ats_fun_45, 0) ; return (tmp259) ; } /* end of [the_funlablst_stringize_44] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 18511(line=916, offs=5) -- 18737(line=930, offs=4) */ ATSstaticdec() ats_void_type loop_47 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; // ATSlocal_void (tmp265) ; __ats_lab_loop_47: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp263 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp264 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp265 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_staload (arg0, tmp263) ; arg0 = arg0 ; arg1 = tmp264 ; goto __ats_lab_loop_47 ; // tail call break ; } while (0) ; return /* (tmp262) */ ; } /* end of [loop_47] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 18463(line=913, offs=1) -- 19065(line=944, offs=4) */ ATSstaticdec() ats_void_type aux_staload_46 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp266) ; // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp272) ; __ats_lab_aux_staload_46: /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp267 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("staload-prologues(beg)\n")) ; /* tmp268 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_get () ; /* tmp269 = */ loop_47 (arg0, tmp270) ; /* tmp271 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("staload-prologues(end)\n")) ; /* tmp261 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; return /* (tmp261) */ ; } /* end of [aux_staload_46] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 19147(line=950, offs=5) -- 19770(line=981, offs=4) */ ATSstaticdec() ats_void_type loop_49 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; // ATSlocal_void (tmp279) ; // ATSlocal_void (tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; // ATSlocal_void (tmp285) ; __ats_lab_loop_49: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp275 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp276 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp277 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp275), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp277)->tag != 18) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_main.dats: 19282(line=962, offs=9) -- 19314(line=962, offs=41)") ; } tmp278 = ats_caselptrlab_mac(anairiats_sum_4, tmp277, atslab_0) ; /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynloadflag_init(")) ; /* tmp280 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename (arg0, tmp278) ; /* tmp281 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__dynloadflag) ;\n")) ; /* tmp282 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSextern()\n")) ; /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atsvoid_t0ype\n")) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename (arg0, tmp278) ; /* tmp285 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__dynload(/*void*/) ;\n")) ; arg0 = arg0 ; arg1 = tmp276 ; goto __ats_lab_loop_49 ; // tail call break ; } while (0) ; return /* (tmp274) */ ; } /* end of [loop_49] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 19095(line=947, offs=1) -- 19831(line=985, offs=4) */ ATSstaticdec() ats_void_type aux_dynload_ext_48 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp273) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab_aux_dynload_ext_48: tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_get () ; /* tmp273 = */ loop_49 (arg0, tmp286) ; return /* (tmp273) */ ; } /* end of [aux_dynload_ext_48] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 19865(line=988, offs=1) -- 20622(line=1034, offs=4) */ ATSstaticdec() ats_void_type aux_dynload_ias_50 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_bool_type, tmp289) ; // ATSlocal_void (tmp290) ; // ATSlocal_void (tmp291) ; // ATSlocal_void (tmp292) ; // ATSlocal_void (tmp293) ; // ATSlocal_void (tmp294) ; // ATSlocal_void (tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; // ATSlocal_void (tmp298) ; // ATSlocal_void (tmp299) ; __ats_lab_aux_dynload_ias_50: tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_get () ; tmp289 = atspre_stropt_is_some (tmp288) ; if (tmp289) { /* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSextern()\n")) ; /* tmp291 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atsvoid_t0ype\n")) ; /* tmp292 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ats_castfn_mac(ats_ptr_type, tmp288)) ; /* tmp293 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("()\n{\n")) ; /* tmp294 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSfunbody_beg()\n")) ; /* tmp295 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_void(tmpret_void, ")) ; /* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynload (arg0, arg1) ; /* tmp297 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("()) ;\n")) ; /* tmp298 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSfunbody_end()\n")) ; /* tmp299 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSreturn_void(tmpret_void) ;\n")) ; /* tmp287 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("} // end-of-dynload-alias\n")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp287) */ ; } /* end of [aux_dynload_ias_50] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 20656(line=1037, offs=1) -- 22810(line=1144, offs=4) */ ATSstaticdec() ats_void_type aux_dynload_def_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp300) ; ATSlocal (ats_int_type, tmp301) ; // ATSlocal_void (tmp302) ; ATSlocal (ats_bool_type, tmp303) ; // ATSlocal_void (tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; // ATSlocal_void (tmp307) ; ATSlocal (ats_bool_type, tmp308) ; // ATSlocal_void (tmp309) ; // ATSlocal_void (tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; // ATSlocal_void (tmp313) ; // ATSlocal_void (tmp314) ; // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; // ATSlocal_void (tmp317) ; ATSlocal (ats_bool_type, tmp318) ; // ATSlocal_void (tmp319) ; ATSlocal (ats_bool_type, tmp320) ; // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp325) ; // ATSlocal_void (tmp326) ; // ATSlocal_void (tmp327) ; // ATSlocal_void (tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; // ATSlocal_void (tmp331) ; // ATSlocal_void (tmp332) ; // ATSlocal_void (tmp333) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; // ATSlocal_void (tmp336) ; // ATSlocal_void (tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; // ATSlocal_void (tmp340) ; // ATSlocal_void (tmp341) ; // ATSlocal_void (tmp342) ; // ATSlocal_void (tmp343) ; ATSlocal (ats_bool_type, tmp344) ; __ats_lab_aux_dynload_def_51: tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynloadflag_get () ; tmp303 = atspre_eq_int_int (tmp301, 0) ; if (tmp303) { /* tmp302 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#if(0)\n")) ; } else { /* empty */ } /* end of [if] */ /* tmp304 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp305 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** for initialization(dynloading)")) ; /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; tmp308 = atspre_lte_int_int (tmp301, 0) ; if (tmp308) { /* tmp309 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynloadflag_minit(")) ; /* tmp310 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynloadflag (arg0, arg1) ; /* tmp307 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; } else { /* empty */ } /* end of [if] */ /* tmp311 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSextern()\n")) ; /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atsvoid_t0ype\n")) ; /* tmp313 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynload (arg0, arg1) ; /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("()\n{\n")) ; /* tmp315 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSfunbody_beg()\n")) ; /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynload(/*void*/)\n")) ; tmp318 = atspre_lte_int_int (tmp301, 0) ; if (tmp318) { /* tmp317 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynloadflag_sta(\n")) ; } else { /* empty */ } /* end of [if] */ tmp320 = atspre_gte_int_int (tmp301, 1) ; if (tmp320) { /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynloadflag_ext(\n")) ; } else { /* empty */ } /* end of [if] */ /* tmp321 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynloadflag (arg0, arg1) ; /* tmp322 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n) ;\n")) ; /* tmp323 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSif(\n")) ; /* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKiseqz(\n")) ; /* tmp325 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynloadflag (arg0, arg1) ; /* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n)\n) ATSthen() {\n")) ; /* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSdynloadset(")) ; /* tmp328 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_dynloadflag (arg0, arg1) ; /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_get2 () ; /* tmp331 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp332 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("dynexnlst-initize(beg)\n")) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2conlst_initize (arg0, tmp330) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp336 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("dynexnlst-initize(end)\n")) ; /* tmp337 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, arg2) ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("} /* ATSendif */\n")) ; /* tmp340 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSfunbody_end()\n")) ; /* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSreturn_void(tmpret_void) ;\n")) ; /* tmp342 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("} /* end of [*_dynload] */\n")) ; /* tmp343 = */ aux_dynload_ias_50 (arg0, arg1) ; tmp344 = atspre_eq_int_int (tmp301, 0) ; if (tmp344) { /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif // end of [#if(0)]\n")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp300) */ ; } /* end of [aux_dynload_def_51] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 22844(line=1147, offs=1) -- 24730(line=1205, offs=4) */ ATSstaticdec() ats_void_type aux_main_52 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; // ATSlocal_void (tmp347) ; // ATSlocal_void (tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; // ATSlocal_void (tmp353) ; // ATSlocal_void (tmp354) ; // ATSlocal_void (tmp355) ; // ATSlocal_void (tmp356) ; // ATSlocal_void (tmp357) ; // ATSlocal_void (tmp358) ; // ATSlocal_void (tmp359) ; // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; // ATSlocal_void (tmp362) ; // ATSlocal_void (tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; // ATSlocal_void (tmp366) ; // ATSlocal_void (tmp367) ; // ATSlocal_void (tmp368) ; // ATSlocal_void (tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_int_type, tmp371) ; ATSlocal (ats_int_type, tmp372) ; // ATSlocal_void (tmp373) ; // ATSlocal_void (tmp374) ; // ATSlocal_void (tmp375) ; // ATSlocal_void (tmp376) ; // ATSlocal_void (tmp377) ; // ATSlocal_void (tmp378) ; // ATSlocal_void (tmp379) ; // ATSlocal_void (tmp380) ; __ats_lab_aux_main_52: /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n/*\n")) ; /* tmp347 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** the ATS runtime")) ; /* tmp348 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; /* tmp349 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifndef _ATS_CCOMP_RUNTIME_NONE_\n")) ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_runtime.c\"\n")) ; /* tmp351 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_runtime_memalloc.c\"\n")) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifndef _ATS_CCOMP_EXCEPTION_NONE_\n")) ; /* tmp353 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_runtime2_dats.c\"\n")) ; /* tmp354 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifndef _ATS_CCOMP_RUNTIME_TRYWITH_NONE_\n")) ; /* tmp355 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#include \"pats_ccomp_runtime_trywith.c\"\n")) ; /* tmp356 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif /* _ATS_CCOMP_RUNTIME_TRYWITH_NONE_ */\n")) ; /* tmp357 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]\n")) ; /* tmp358 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif /* _ATS_CCOMP_RUNTIME_NONE_ */\n")) ; /* tmp359 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n/*\n")) ; /* tmp360 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** the [main] implementation")) ; /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; /* tmp362 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("int\n")) ; /* tmp363 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("main\n")) ; /* tmp364 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(\n")) ; /* tmp365 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("int argc, char **argv, char **envp")) ; /* tmp366 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n) {\n")) ; /* tmp367 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("int err = 0 ;\n")) ; /* tmp368 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename (arg0, arg1) ; /* tmp369 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__dynload() ;\n")) ; tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_artylst (arg2) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp370 != (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp371 = 0 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (tmp370 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp372 = ats_caselptrlab_mac(anairiats_sum_9, tmp370, atslab_0) ; tmp371 = tmp372 ; break ; } while (0) ; /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATS")) ; /* tmp374 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, arg2) ; /* tmp375 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN (arg0) ; /* tmp376 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__emit_main_arglst_err (arg0, tmp371) ; /* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; /* tmp378 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ;\n")) ; /* tmp379 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("return (err) ;\n")) ; /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("} /* end of [main] */")) ; /* tmp345 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; return /* (tmp345) */ ; } /* end of [aux_main_52] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 24757(line=1208, offs=1) -- 24943(line=1221, offs=4) */ ATSstaticdec() ats_void_type aux_main_ifopt_53 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; __ats_lab_aux_main_ifopt_53: tmp382 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_d2copt_get () ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (tmp382 != (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (tmp382 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp383 = ats_caselptrlab_mac(anairiats_sum_1, tmp382, atslab_0) ; /* tmp381 = */ aux_main_52 (arg0, arg1, tmp383) ; break ; } while (0) ; return /* (tmp381) */ ; } /* end of [aux_main_ifopt_53] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 25108(line=1234, offs=1) -- 25455(line=1250, offs=4) */ ATSstaticdec() ats_ptr_type loop_55 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_int_type, tmp389) ; ATSlocal (ats_bool_type, tmp390) ; // ATSlocal_void (tmp391) ; __ats_lab_loop_55: do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp385 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp386 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp387 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; tmp388 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp386), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp388)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_main.dats: 25266(line=1243, offs=9) -- 25305(line=1243, offs=48)") ; } tmp389 = ats_caselptrlab_mac(anairiats_sum_10, tmp388, atslab_1) ; tmp390 = ((ats_bool_type(*)(ats_int_type))arg1) (tmp389) ; if (tmp390) { /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extcode (arg0, tmp386) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp387 ; goto __ats_lab_loop_55 ; // tail call } else { tmp385 = arg2 ; } /* end of [if] */ break ; } while (0) ; return (tmp385) ; } /* end of [loop_55] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 25030(line=1228, offs=1) -- 25600(line=1260, offs=4) */ ATSstaticdec() ats_void_type aux_extcodelst_if_54 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp384) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; __ats_lab_aux_extcodelst_if_54: tmp393 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_get2 () ; tmp392 = loop_55 (arg0, arg1, tmp393) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_set2 (tmp392) ; return /* (tmp384) */ ; } /* end of [aux_extcodelst_if_54] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 25686(line=1267, offs=1) -- 25891(line=1280, offs=4) */ ATSstaticdec() ats_void_type loop_57 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; // ATSlocal_void (tmp398) ; __ats_lab_loop_57: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp396 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp397 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp398 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_exndec (arg0, tmp396) ; arg0 = arg0 ; arg1 = tmp397 ; goto __ats_lab_loop_57 ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: break ; } while (0) ; return /* (tmp395) */ ; } /* end of [loop_57] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 25636(line=1263, offs=1) -- 26590(line=1321, offs=4) */ ATSstaticdec() ats_void_type aux_exndeclst_56 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp394) ; // ATSlocal_void (tmp399) ; // ATSlocal_void (tmp400) ; // ATSlocal_void (tmp401) ; // ATSlocal_void (tmp402) ; // ATSlocal_void (tmp403) ; // ATSlocal_void (tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; // ATSlocal_void (tmp406) ; // ATSlocal_void (tmp407) ; // ATSlocal_void (tmp408) ; __ats_lab_aux_exndeclst_56: /* tmp399 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp400 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("exnconlst-declaration(beg)\n")) ; /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp402 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifndef _ATS_CCOMP_EXCEPTION_NONE_\n")) ; /* tmp403 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSextern()\natsvoid_t0ype\nthe_atsexncon_initize\n(\n atstype_exnconptr d2c, atstype_string exnmsg\n) ;\n")) ; /* tmp404 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]\n")) ; tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_get () ; /* tmp406 = */ loop_57 (arg0, tmp405) ; /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp408 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("exnconlst-declaration(end)\n")) ; /* tmp394 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; return /* (tmp394) */ ; } /* end of [aux_exndeclst_56] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 26697(line=1332, offs=1) -- 26939(line=1350, offs=4) */ ATSstaticdec() ats_void_type loop_59 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; // ATSlocal_void (tmp413) ; __ats_lab_loop_59: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp411 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp412 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp413 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_saspdec (arg0, tmp411) ; arg0 = arg0 ; arg1 = tmp412 ; goto __ats_lab_loop_59 ; // tail call break ; } while (0) ; return /* (tmp410) */ ; } /* end of [loop_59] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 26643(line=1326, offs=1) -- 27504(line=1380, offs=4) */ ATSstaticdec() ats_void_type aux_saspdeclst_58 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp409) ; // ATSlocal_void (tmp414) ; // ATSlocal_void (tmp415) ; // ATSlocal_void (tmp416) ; // ATSlocal_void (tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; // ATSlocal_void (tmp421) ; // ATSlocal_void (tmp422) ; __ats_lab_aux_saspdeclst_58: /* tmp414 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp415 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("assumelst-declaration(beg)\n")) ; /* tmp416 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp417 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_\n")) ; tmp418 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_get () ; /* tmp419 = */ loop_59 (arg0, tmp418) ; /* tmp420 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)\n")) ; /* tmp421 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp422 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("assumelst-declaration(end)\n")) ; /* tmp409 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; return /* (tmp409) */ ; } /* end of [aux_saspdeclst_58] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 27608(line=1388, offs=5) -- 27823(line=1401, offs=4) */ ATSstaticdec() ats_void_type loop_61 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; // ATSlocal_void (tmp427) ; __ats_lab_loop_61: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp425 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp426 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp427 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_extype (arg0, tmp425) ; arg0 = arg0 ; arg1 = tmp426 ; goto __ats_lab_loop_61 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: break ; } while (0) ; return /* (tmp424) */ ; } /* end of [loop_61] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 27558(line=1385, offs=1) -- 28187(line=1416, offs=4) */ ATSstaticdec() ats_void_type aux_extypelst_60 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp423) ; // ATSlocal_void (tmp428) ; // ATSlocal_void (tmp429) ; // ATSlocal_void (tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; // ATSlocal_void (tmp432) ; // ATSlocal_void (tmp433) ; // ATSlocal_void (tmp434) ; __ats_lab_aux_extypelst_60: /* tmp428 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp429 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("extypelst-declaration(beg)\n")) ; /* tmp430 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; tmp431 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_get () ; /* tmp432 = */ loop_61 (arg0, tmp431) ; /* tmp433 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp434 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("extypelst-declaration(end)\n")) ; /* tmp423 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; return /* (tmp423) */ ; } /* end of [aux_extypelst_60] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2024(line=63, offs=10) -- 2250(line=73, offs=2) */ ATSstaticdec() ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp447) ; __ats_lab_ptr0_set_01760_ats_ptr_type: ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) = arg1 ; return /* (tmp447) */ ; } /* end of [ptr0_set_01760_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2472(line=83, offs=21) -- 2499(line=83, offs=48) */ ATSstaticdec() ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp446) ; __ats_lab_ptrset_01764_ats_ptr_type: /* tmp446 = */ ptr0_set_01760_ats_ptr_type (arg0, arg1) ; return /* (tmp446) */ ; } /* end of [ptrset_01764_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 29479(line=1481, offs=9) -- 29504(line=1481, offs=34) */ ATSstaticdec() ats_bool_type __ats_fun_65 (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp457) ; __ats_lab___ats_fun_65: tmp457 = atspre_eq_int_int (arg0, 1) ; return (tmp457) ; } /* end of [__ats_fun_65] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 29821(line=1502, offs=9) -- 29846(line=1502, offs=34) */ ATSstaticdec() ats_bool_type __ats_fun_66 (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp466) ; __ats_lab___ats_fun_66: tmp466 = atspre_lt_int_int (arg0, 10) ; return (tmp466) ; } /* end of [__ats_fun_66] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 29978(line=1510, offs=9) -- 30004(line=1510, offs=35) */ ATSstaticdec() ats_bool_type __ats_fun_67 (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp470) ; __ats_lab___ats_fun_67: tmp470 = atspre_lte_int_int (arg0, 10) ; return (tmp470) ; } /* end of [__ats_fun_67] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 30488(line=1532, offs=24) -- 30514(line=1532, offs=50) */ ATSstaticdec() ats_bool_type __ats_fun_68 (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp479) ; __ats_lab___ats_fun_68: tmp479 = atspre_lte_int_int (arg0, 99) ; return (tmp479) ; } /* end of [__ats_fun_68] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_main.dats: 28260(line=1422, offs=1) -- 30704(line=1547, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_main (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp435) ; // ATSlocal_void (tmp436) ; // ATSlocal_void (tmp437) ; // ATSlocal_void (tmp438) ; // ATSlocal_void (tmp439) ; // ATSlocal_void (tmp440) ; // ATSlocal_void (tmp441) ; // ATSlocal_void (tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; // ATSlocal_void (tmp445) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; // ATSlocal_void (tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; // ATSlocal_void (tmp455) ; // ATSlocal_void (tmp456) ; // ATSlocal_void (tmp458) ; // ATSlocal_void (tmp459) ; // ATSlocal_void (tmp460) ; // ATSlocal_void (tmp461) ; // ATSlocal_void (tmp462) ; // ATSlocal_void (tmp463) ; // ATSlocal_void (tmp464) ; // ATSlocal_void (tmp465) ; // ATSlocal_void (tmp467) ; // ATSlocal_void (tmp468) ; // ATSlocal_void (tmp469) ; // ATSlocal_void (tmp471) ; // ATSlocal_void (tmp472) ; // ATSlocal_void (tmp473) ; // ATSlocal_void (tmp474) ; // ATSlocal_void (tmp475) ; // ATSlocal_void (tmp476) ; // ATSlocal_void (tmp477) ; // ATSlocal_void (tmp478) ; // ATSlocal_void (tmp480) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_main: /* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dynconlst_initset2 () ; /* tmp437 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_dyncstlst_initset2 () ; /* tmp438 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_extcodelst_initset2 () ; /* tmp439 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_funlablst_initset2 () ; /* tmp440 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_time_stamp (arg0) ; /* tmp441 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_header (arg0) ; /* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ats_ccomp_prelude (arg0) ; tmp443 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp0 (arg3) ; tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_primdeclst () ; /* tmp445 = */ ptrset_01764_ats_ptr_type (tmp444, tmp443) ; tmp448 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdeclst_get_tmpvarset (tmp443) ; tmp449 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize_free (tmp448) ; tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_tmpvarlst () ; /* tmp451 = */ ptrset_01764_ats_ptr_type (tmp450, ats_castfn_mac(ats_ptr_type, tmp449)) ; tmp452 = the_tmpdeclst_stringize_39 () ; tmp453 = the_primdeclst_stringize_42 () ; tmp454 = the_funlablst_stringize_44 () ; /* tmp455 = */ aux_staload_46 (arg0) ; /* tmp456 = */ aux_extcodelst_if_54 (arg0, &__ats_fun_65) ; /* tmp458 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_typedeflst (arg0) ; /* tmp459 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dynconlst_extdec (arg0) ; /* tmp460 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_dyncstlst_extdec (arg0) ; /* tmp461 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_primdeclst_valimp (arg0) ; /* tmp462 = */ aux_exndeclst_56 (arg0) ; /* tmp463 = */ aux_extypelst_60 (arg0) ; /* tmp464 = */ aux_saspdeclst_58 (arg0) ; /* tmp465 = */ aux_extcodelst_if_54 (arg0, &__ats_fun_66) ; /* tmp467 = */ atspre_fprint_strptr (arg0, tmp452) ; /* tmp468 = */ atspre_strptr_free (tmp452) ; /* tmp469 = */ aux_extcodelst_if_54 (arg0, &__ats_fun_67) ; /* tmp471 = */ atspre_fprint_strptr (arg0, tmp454) ; /* tmp472 = */ atspre_strptr_free (tmp454) ; /* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__the_mainats_initize () ; /* tmp474 = */ aux_dynload_ext_48 (arg0) ; /* tmp475 = */ aux_dynload_def_51 (arg0, arg2, ats_castfn_mac(ats_ptr_type, tmp453)) ; /* tmp476 = */ atspre_strptr_free (tmp453) ; /* tmp477 = */ aux_main_ifopt_53 (arg0, arg2) ; /* tmp478 = */ aux_extcodelst_if_54 (arg0, &__ats_fun_68) ; /* tmp480 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n/* ****** ****** */\n")) ; /* tmp435 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n/* end-of-compilation-unit */\n")) ; return /* (tmp435) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_main] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_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_utils_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp66, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp69, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp132, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp133, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp151, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp152, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp162, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp163, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp210, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp211, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp69 = (ats_sum_ptr_type)0 ; statmp66 = ref_01088_ats_ptr_type (statmp69) ; statmp133 = (ats_sum_ptr_type)0 ; statmp132 = ref_01088_ats_ptr_type (statmp133) ; statmp152 = (ats_sum_ptr_type)0 ; statmp151 = ref_01088_ats_ptr_type (statmp152) ; statmp163 = (ats_sum_ptr_type)0 ; statmp162 = ref_01088_ats_ptr_type (statmp163) ; statmp211 = (ats_sum_ptr_type)0 ; statmp210 = ref_01088_ats_ptr_type (statmp211) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_main_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_error_dats.c0000644000175000017500000005573013431250607023161 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* 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_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type the_trans2errlst_get_1 () ; static ats_int_type loop_5 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_7 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp3) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp2 ; */ tmp2 = arg0 ; tmp1 = atspre_ref_make_elt_tsz ((&tmp2), sizeof(ats_ptr_type)) ; return (tmp1) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_error.dats: 1706(line=60, offs=1) -- 1888(line=69, offs=4) */ ATSstaticdec() ats_ptr_type the_trans2errlst_get_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_the_trans2errlst_get_1: tmp5 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp6 = ats_ptrget_mac(ats_ptr_type, tmp5) ; tmp7 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp5) = tmp7 ; tmp4 = tmp6 ; return (tmp4) ; } /* end of [the_trans2errlst_get_1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_error.dats: 1976(line=74, offs=22) -- 2081(line=78, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add: tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp11 = ats_ptrget_mac(ats_ptr_type, tmp9) ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_1, tmp11) ; ats_ptrget_mac(ats_ptr_type, tmp9) = tmp10 ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_5 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp17 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp18 = ats_ptrget_mac(ats_ptr_type, tmp17) ; tmp19 = atspre_iadd (arg1, 1) ; arg0 = tmp18 ; arg1 = tmp19 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp16 = arg1 ; break ; } while (0) ; return (tmp16) ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp15) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp15 = loop_5 (arg0, 0) ; return (tmp15) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_7 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab_loop_7: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp23 ; goto __ats_lab_loop_7 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp22) */ ; } /* end of [loop_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp21 = */ loop_7 (arg0) ; return /* (tmp21) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_error.dats: 2155(line=81, offs=27) -- 2580(line=102, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_finalize () { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_finalize: tmp13 = the_trans2errlst_get_1 () ; tmp14 = list_vt_length_01501_ats_ptr_type (tmp13) ; /* tmp20 = */ list_vt_free_01499_ats_ptr_type (tmp13) ; tmp25 = atspre_igt (tmp14, 0) ; if (tmp25) { /* tmp24 = */ atspre_fprintf_exn (stderr, ATSstrcst("patsopt(TRANS2): there are [%i] errors in total.\n"), tmp14) ; } else { /* empty */ } /* end of [if] */ tmp26 = atspre_igt (tmp14, 0) ; if (tmp26) { tmp27 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN) ; /* tmp12 = */ ats_raise_exn (tmp27) ; } else { /* empty */ } /* end of [if] */ return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_finalize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp3, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp3 = (ats_sum_ptr_type)0 ; statmp0 = ref_01088_ats_ptr_type (statmp3) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_error_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_syncst_dats.c0000644000175000017500000017716413431250607023362 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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_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_syntax_2esats__CSTSPmyfil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyloc_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_intsp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_floatsp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__INT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__UINT_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LINT_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULINT_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LLINT_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULLINT_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ERROR_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__FLOAT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__DOUBLE_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LDOUBLE_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ERROR_3) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_int_of_char) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_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_size_type, atspre_size_of_uint) (ats_uint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_base) (ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_nsfx) (ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__float_get_nsfx) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs) (ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_bool_t0ype) (ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_int_t0ype) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_intinf_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_intinf_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_intinf_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_intinf_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_intinf_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_intinf_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_int_t0ype) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_float_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ldouble_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_int_type) (ats_size_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_float) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_int) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_intrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_bool) (ats_ptr_type, ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_char) (ats_ptr_type, ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_string) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_float) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_i0nt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_f0loat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cstsp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tyrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_literal) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__float_syn_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type_ind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__cstsp_syn_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, patsopt_strcasecmp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_make_substring) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, ats_free_gc) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__INT_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__UINT_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LINT_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULINT_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LLINT_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULLINT_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ERROR_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__FLOAT_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__DOUBLE_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LDOUBLE_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ERROR_3) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02062_ () ; static ats_void_type prerr_error3_loc_02068_ (ats_ptr_type arg0) ; static ats_ptr_type intrepsfx_syn_type_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_uint_type arg2) ; static ats_ptr_type intbaserepsfx_syn_type_ind_8 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_uint_type arg3) ; static ats_ptr_type floatsfx_syn_type_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_uint_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 1927(line=62, offs=28) -- 1958(line=62, offs=59) */ ATSstaticdec() ats_void_type prerr_FILENAME_02062_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02062_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_syncst")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02062_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 2344(line=92, offs=3) -- 2457(line=97, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_int: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_int_t0ype (arg1) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_int (tmp2, tmp3, arg1) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_int] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 2537(line=103, offs=3) -- 2665(line=108, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_intrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_intrep: tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type_ind (tmp5, arg1) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_intrep (tmp5, tmp6, arg1) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_intrep] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 2743(line=114, offs=3) -- 2857(line=117, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_bool (ats_ptr_type arg0, ats_bool_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_bool: tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_bool_t0ype (arg1) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_bool (tmp8, tmp9, arg1) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_bool] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 2936(line=123, offs=3) -- 3075(line=127, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_char (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_char: tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp12 = atspre_int_of_char (arg1) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_int_t0ype (tmp12) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_char (tmp11, tmp13, arg1) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_char] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 3156(line=133, offs=3) -- 3308(line=139, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_size_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_string: tmp15 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp16 = atspre_string_length (arg1) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_int_type (tmp16) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_string (tmp15, tmp17, arg1) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_string] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02068_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; __ats_lab_prerr_error3_loc_02068_: /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp44 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp44) */ ; } /* end of [prerr_error3_loc_02068_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 3662(line=161, offs=1) -- 5116(line=214, offs=4) */ ATSstaticdec() ats_ptr_type intrepsfx_syn_type_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_uint_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_bool_type, tmp21) ; ATSlocal (ats_size_type, tmp22) ; ATSlocal (ats_size_type, tmp23) ; ATSlocal (ats_size_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_int_type, tmp30) ; ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_int_type, tmp32) ; ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_int_type, tmp34) ; ATSlocal (ats_bool_type, tmp35) ; ATSlocal (ats_int_type, tmp36) ; ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; ATSlocal (ats_bool_type, tmp39) ; ATSlocal (ats_int_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab_intrepsfx_syn_type_6: /* ats_ptr_type tmp19 ; */ tmp19 = atspre_null_ptr ; tmp21 = atspre_gt_uint_uint (arg2, 0u) ; if (tmp21) { tmp22 = atspre_string_length (arg1) ; tmp24 = atspre_size_of_uint (arg2) ; tmp23 = atspre_sub_size_size (tmp22, tmp24) ; tmp25 = atspre_padd_size (ats_castfn_mac(ats_ptr_type, arg1), tmp23) ; tmp19 = tmp25 ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp26 = atspre_eq_uint_uint (arg2, 0u) ; if (!tmp26) { goto __ats_lab_1_1 ; } tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype () ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp27 = ats_castfn_mac(ats_ptr_type, tmp19) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp30 = patsopt_strcasecmp (tmp27, ATSstrcst("U")) ; tmp29 = atspre_eq_int_int (tmp30, 0) ; if (!tmp29) { goto __ats_lab_3_1 ; } tmp28 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__UINT_1) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp32 = patsopt_strcasecmp (tmp27, ATSstrcst("L")) ; tmp31 = atspre_eq_int_int (tmp32, 0) ; if (!tmp31) { goto __ats_lab_4_1 ; } tmp28 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LINT_2) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp34 = patsopt_strcasecmp (tmp27, ATSstrcst("UL")) ; tmp33 = atspre_eq_int_int (tmp34, 0) ; if (!tmp33) { goto __ats_lab_5_1 ; } tmp28 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULINT_3) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp36 = patsopt_strcasecmp (tmp27, ATSstrcst("LU")) ; tmp35 = atspre_eq_int_int (tmp36, 0) ; if (!tmp35) { goto __ats_lab_6_1 ; } tmp28 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULINT_3) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp38 = patsopt_strcasecmp (tmp27, ATSstrcst("LL")) ; tmp37 = atspre_eq_int_int (tmp38, 0) ; if (!tmp37) { goto __ats_lab_7_1 ; } tmp28 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LLINT_4) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp40 = patsopt_strcasecmp (tmp27, ATSstrcst("ULL")) ; tmp39 = atspre_eq_int_int (tmp40, 0) ; if (!tmp39) { goto __ats_lab_8_1 ; } tmp28 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULLINT_5) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp42 = patsopt_strcasecmp (tmp27, ATSstrcst("LLU")) ; tmp41 = atspre_eq_int_int (tmp42, 0) ; if (!tmp41) { goto __ats_lab_9_1 ; } tmp28 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULLINT_5) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp28 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ERROR_6) ; break ; } while (0) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp28)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype () ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp28)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_t0ype () ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp28)->tag != 2) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_t0ype () ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp28)->tag != 3) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_t0ype () ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp28)->tag != 4) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_t0ype () ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp28)->tag != 5) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_t0ype () ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: /* tmp43 = */ prerr_error3_loc_02068_ (arg0) ; /* tmp46 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_syncst.dats"), ATSstrcst("intrepsfx_syn_type")) ; /* tmp47 = */ atspre_prerr_string (ATSstrcst(": the suffix of the integer is not supported.")) ; /* tmp48 = */ atspre_prerr_newline () ; tmp50 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp50)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp50, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp50, atslab_1, arg1) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp50) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; break ; } while (0) ; return (tmp18) ; } /* end of [intrepsfx_syn_type_6] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 5174(line=219, offs=1) -- 7783(line=307, offs=4) */ ATSstaticdec() ats_ptr_type intbaserepsfx_syn_type_ind_8 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_uint_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_bool_type, tmp55) ; ATSlocal (ats_size_type, tmp56) ; ATSlocal (ats_size_type, tmp57) ; ATSlocal (ats_size_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_bool_type, tmp64) ; ATSlocal (ats_bool_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_bool_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_bool_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_bool_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_bool_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_bool_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab_intbaserepsfx_syn_type_ind_8: /* ats_ptr_type tmp52 ; */ tmp52 = atspre_null_ptr ; /* ats_ptr_type tmp53 ; */ tmp53 = arg2 ; tmp55 = atspre_gt_uint_uint (arg3, 0u) ; if (tmp55) { tmp56 = atspre_string_length (arg2) ; tmp58 = atspre_size_of_uint (arg3) ; tmp57 = atspre_sub_size_size (tmp56, tmp58) ; tmp59 = atspre_padd_size (ats_castfn_mac(ats_ptr_type, arg2), tmp57) ; tmp52 = tmp59 ; tmp60 = atspre_string_make_substring (arg2, 0, tmp57) ; tmp53 = tmp60 ; } else { /* empty */ } /* end of [if] */ tmp61 = ats_castfn_mac(ats_ptr_type, tmp53) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg1 != 8) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs (8, tmp61, 1) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg1 != 16) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs (16, tmp61, 2) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs (10, tmp61, 0) ; break ; } while (0) ; tmp64 = atspre_gt_uint_uint (arg3, 0u) ; if (tmp64) { /* tmp63 = */ ats_free_gc (tmp61) ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp65 = atspre_eq_uint_uint (arg3, 0u) ; if (!tmp65) { goto __ats_lab_21_1 ; } tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_intinf_t0ype (tmp62) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp66 = ats_castfn_mac(ats_ptr_type, tmp52) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp69 = patsopt_strcasecmp (tmp66, ATSstrcst("U")) ; tmp68 = atspre_eq_int_int (tmp69, 0) ; if (!tmp68) { goto __ats_lab_23_1 ; } tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__UINT_1) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp71 = patsopt_strcasecmp (tmp66, ATSstrcst("L")) ; tmp70 = atspre_eq_int_int (tmp71, 0) ; if (!tmp70) { goto __ats_lab_24_1 ; } tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LINT_2) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp73 = patsopt_strcasecmp (tmp66, ATSstrcst("UL")) ; tmp72 = atspre_eq_int_int (tmp73, 0) ; if (!tmp72) { goto __ats_lab_25_1 ; } tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULINT_3) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp75 = patsopt_strcasecmp (tmp66, ATSstrcst("LU")) ; tmp74 = atspre_eq_int_int (tmp75, 0) ; if (!tmp74) { goto __ats_lab_26_1 ; } tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULINT_3) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp77 = patsopt_strcasecmp (tmp66, ATSstrcst("LL")) ; tmp76 = atspre_eq_int_int (tmp77, 0) ; if (!tmp76) { goto __ats_lab_27_1 ; } tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LLINT_4) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp79 = patsopt_strcasecmp (tmp66, ATSstrcst("ULL")) ; tmp78 = atspre_eq_int_int (tmp79, 0) ; if (!tmp78) { goto __ats_lab_28_1 ; } tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULLINT_5) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp81 = patsopt_strcasecmp (tmp66, ATSstrcst("LLU")) ; tmp80 = atspre_eq_int_int (tmp81, 0) ; if (!tmp80) { goto __ats_lab_29_1 ; } tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULLINT_5) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ERROR_6) ; break ; } while (0) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp67)->tag != 0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_intinf_t0ype (tmp62) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp67)->tag != 1) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_intinf_t0ype (tmp62) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp67)->tag != 2) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_intinf_t0ype (tmp62) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp67)->tag != 3) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_intinf_t0ype (tmp62) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp67)->tag != 4) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_intinf_t0ype (tmp62) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp67)->tag != 5) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_intinf_t0ype (tmp62) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: /* tmp82 = */ prerr_error3_loc_02068_ (arg0) ; /* tmp83 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_syncst.dats"), ATSstrcst("intbaserepsfx_syn_type_ind")) ; /* tmp84 = */ atspre_prerr_string (ATSstrcst(": the suffix of the integer is not supported.")) ; /* tmp85 = */ atspre_prerr_newline () ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp87)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp87, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp87, atslab_1, arg2) ; /* tmp86 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp87) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; break ; } while (0) ; return (tmp51) ; } /* end of [intbaserepsfx_syn_type_ind_8] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 7896(line=315, offs=3) -- 7996(line=319, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_uint_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type: tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_nsfx (arg1) ; tmp88 = intrepsfx_syn_type_6 (arg0, arg1, tmp89) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 8058(line=323, offs=3) -- 8215(line=329, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type_ind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_uint_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type_ind: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_base (arg1) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_nsfx (arg1) ; tmp90 = intbaserepsfx_syn_type_ind_8 (arg0, tmp91, arg1, tmp92) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type_ind] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 8275(line=333, offs=3) -- 8410(line=341, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_uint_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type: tmp94 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_token_loc) ; tmp95 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp95)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 8323(line=336, offs=5) -- 8362(line=337, offs=34)") ; } tmp96 = ats_caselptrlab_mac(anairiats_sum_3, tmp95, atslab_1) ; tmp97 = ats_caselptrlab_mac(anairiats_sum_3, tmp95, atslab_2) ; tmp93 = intrepsfx_syn_type_6 (tmp94, tmp96, tmp97) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 8469(line=345, offs=3) -- 8616(line=352, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type_ind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_uint_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type_ind: tmp99 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_token_loc) ; tmp100 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp100)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 8517(line=348, offs=5) -- 8554(line=348, offs=42)") ; } tmp101 = ats_caselptrlab_mac(anairiats_sum_3, tmp100, atslab_0) ; tmp102 = ats_caselptrlab_mac(anairiats_sum_3, tmp100, atslab_1) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_3, tmp100, atslab_2) ; tmp98 = intbaserepsfx_syn_type_ind_8 (tmp99, tmp101, tmp102, tmp103) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type_ind] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 8697(line=358, offs=3) -- 8819(line=363, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_i0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_i0nt: tmp105 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type_ind (arg1) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_i0nt (tmp105, tmp106, arg1) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 8980(line=376, offs=1) -- 10065(line=410, offs=2) */ ATSstaticdec() ats_ptr_type floatsfx_syn_type_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_uint_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_bool_type, tmp108) ; ATSlocal (ats_size_type, tmp109) ; ATSlocal (ats_size_type, tmp110) ; ATSlocal (ats_size_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_bool_type, tmp116) ; ATSlocal (ats_int_type, tmp117) ; // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_floatsfx_syn_type_14: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp108 = atspre_eq_uint_uint (arg2, 0u) ; if (!tmp108) { goto __ats_lab_38_1 ; } tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype () ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp109 = atspre_string_length (ats_castfn_mac(ats_ptr_type, arg1)) ; tmp111 = atspre_size_of_uint (arg2) ; tmp110 = atspre_sub_size_size (tmp109, tmp111) ; tmp112 = atspre_padd_size (ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg1)), tmp110) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp115 = patsopt_strcasecmp (ats_castfn_mac(ats_ptr_type, tmp112), ATSstrcst("F")) ; tmp114 = atspre_eq_int_int (tmp115, 0) ; if (!tmp114) { goto __ats_lab_40_1 ; } tmp113 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__FLOAT_0) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: tmp117 = patsopt_strcasecmp (ats_castfn_mac(ats_ptr_type, tmp112), ATSstrcst("L")) ; tmp116 = atspre_eq_int_int (tmp117, 0) ; if (!tmp116) { goto __ats_lab_41_1 ; } tmp113 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LDOUBLE_2) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: tmp113 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ERROR_3) ; break ; } while (0) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp113)->tag != 0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_float_t0ype () ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp113)->tag != 1) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype () ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp113)->tag != 2) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ldouble_t0ype () ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: /* tmp118 = */ prerr_error3_loc_02068_ (arg0) ; /* tmp119 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_syncst.dats"), ATSstrcst("f0loat_syn_type")) ; /* tmp120 = */ atspre_prerr_string (ATSstrcst(": the suffix of the floating point number is not supported.")) ; /* tmp121 = */ atspre_prerr_newline () ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp123)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp123, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp123, atslab_1, arg1) ; /* tmp122 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp123) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; break ; } while (0) ; return (tmp107) ; } /* end of [floatsfx_syn_type_14] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 10147(line=416, offs=3) -- 10245(line=420, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__float_syn_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_uint_type, tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__float_syn_type: tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__float_get_nsfx (arg1) ; tmp124 = floatsfx_syn_type_14 (arg0, arg1, tmp125) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__float_syn_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 10302(line=424, offs=3) -- 10436(line=429, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_uint_type, tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type: tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_token_loc) ; tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp128)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 10353(line=426, offs=7) -- 10392(line=426, offs=46)") ; } tmp129 = ats_caselptrlab_mac(anairiats_sum_3, tmp128, atslab_1) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_3, tmp128, atslab_2) ; tmp126 = floatsfx_syn_type_14 (tmp127, tmp129, tmp130) ; return (tmp126) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 10516(line=435, offs=3) -- 10638(line=440, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_float (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_float: tmp132 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__float_syn_type (tmp132, arg1) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_float (tmp132, tmp133, arg1) ; return (tmp131) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_float] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 10699(line=444, offs=3) -- 10867(line=450, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_f0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_f0loat: tmp135 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type (arg1) ; tmp137 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp137)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 10791(line=447, offs=7) -- 10830(line=447, offs=46)") ; } tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_f0loat (tmp135, tmp136, arg1) ; return (tmp134) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 10947(line=456, offs=3) -- 11232(line=468, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__cstsp_syn_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__cstsp_syn_type: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type () ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type () ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type () ; break ; } while (0) ; return (tmp138) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__cstsp_syn_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 11290(line=472, offs=3) -- 11400(line=479, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cstsp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cstsp: tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__cstsp_syn_type (arg0, arg1) ; tmp141 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cstsp (tmp141, tmp140, arg1) ; return (tmp139) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cstsp] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 11481(line=485, offs=3) -- 11659(line=497, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tyrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tyrep: tmp144 = (ats_sum_ptr_type)0 ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype, ATSstrcst("atstype_tyrep"), tmp144) ; tmp145 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tyrep (tmp145, tmp143, arg1) ; return (tmp142) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tyrep] */ /* // /tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 11742(line=503, offs=3) -- 12953(line=558, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_literal (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_literal: tmp147 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2exp_loc) ; /* tmp148 = */ atspre_print_string (ATSstrcst("d2exp_trup_literal: d2e0 = ")) ; /* tmp149 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2exp (arg0) ; /* tmp150 = */ atspre_print_newline () ; tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2exp_node) ; do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp151)->tag != 6) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_4, tmp151, atslab_0) ; tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_float (arg1, tmp152) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_float (tmp152) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_literal (tmp147, tmp154, tmp153) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp151)->tag != 10) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_4, tmp151, atslab_0) ; tmp156 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp155), atslab_token_node) ; if (((ats_sum_ptr_type)tmp156)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 12162(line=526, offs=5) -- 12204(line=527, offs=35)") ; } tmp157 = ats_caselptrlab_mac(anairiats_sum_3, tmp156, atslab_1) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_f0loat (arg1, tmp155) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_float (tmp157) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_literal (tmp147, tmp159, tmp158) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp151)->tag != 7) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_4, tmp151, atslab_0) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_string (arg1, tmp160) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_string (tmp160) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_literal (tmp147, tmp162, tmp161) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp151)->tag != 11) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_4, tmp151, atslab_0) ; tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp163), atslab_token_node) ; if (((ats_sum_ptr_type)tmp164)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_syncst.dats: 12675(line=547, offs=5) -- 12705(line=547, offs=35)") ; } tmp165 = ats_caselptrlab_mac(anairiats_sum_4, tmp164, atslab_0) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_string (arg1, tmp165) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_string (tmp165) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_literal (tmp147, tmp167, tmp166) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: __ats_lab_53_1: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp147) ; break ; } while (0) ; return (tmp146) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_literal] */ /* static load function */ // 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_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__INT_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__UINT_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LINT_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULINT_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LLINT_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ULLINT_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ERROR_6.tag = 6 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__FLOAT_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__DOUBLE_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__LDOUBLE_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__ERROR_3.tag = 3 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_syncst_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lintprgm_sats.c0000644000175000017500000000365413431250607022410 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICvec_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICveclst_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICerr_2) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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_intinf_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICvec_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICveclst_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICerr_2.tag = 2 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lintprgm_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_filename_dats.c0000644000175000017500000034463313431250607022322 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 "libc/CATS/string.cats" #include "libc/CATS/errno.cats" #include "libc/CATS/unistd.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_filename_givename ; ats_ptr_type atslab_filename_partname ; ats_ptr_type atslab_filename_fullname ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, 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_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_add_size_int) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_compare_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_make_substring) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_stringlst_concat) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ; ATSextern_fun(ats_bool_type, atspre_test_file_exists) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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, atslib_getcwd0) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STDIN__) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STRING__) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_char_type, patsopt_filename_theDirSep_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theParDir_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theCurDir_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_srchknd) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_get_ngurl) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_partname) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_filename_merge) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_filename_dirbase) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__eq_filename_filename) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_isnot_dummy) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_pathlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize_vt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_ppush) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__pkgsrcname_relocatize) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_PATSHOMELOCS_get_pathlst) () ; ATSextern_fun(ats_bool_type, patsopt_string_test_suffix) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__givename_is_relative) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_PATSHOMELOCS_get) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__sasp__the_pathlst_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__sasp__the_filenamelst_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__sasp__filename_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_stdin) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_string) ; /* internal function declarations */ static ats_ptr_type ptr_succ_char_0 (ats_ptr_type arg0) ; static ats_char_type ptr0_get_01759_ats_char_type (ats_ptr_type arg0) ; static ats_ptr_type loop_6 (ats_ptr_type arg0, ats_int_type arg1, ats_char_type arg2, ats_char_type arg3) ; static ats_bool_type aux_20 (ats_ptr_type arg0, ats_size_type arg1, ats_char_type arg2) ; static ats_void_type aux_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_27_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01889_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type __ats_fun_28 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop1_30 (ats_char_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_ref_type arg4) ; static ats_void_type loop2_31 (ats_char_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_size_type arg4, ats_ref_type arg5) ; static ats_ptr_type loop_33 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_ptr_type dirs_process_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type loop_35 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type loop_35_closure_make (ats_ptr_type env0) ; static ats_void_type loop_35_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type list_vt_free_fun_01500_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type __ats_fun_36 (ats_ref_type arg0) ; static ats_ptr_type partname_fullize_38 (ats_ptr_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type loop_42 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type filename_occurs_41 (ats_ptr_type arg0) ; static ats_void_type loop_50 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type the_pathlst_get_51 () ; static ats_void_type the_pathlst_set_52 (ats_ptr_type arg0) ; static ats_ptr_type the_prepathlst_get_56 () ; static ats_void_type the_prepathlst_set_57 (ats_ptr_type arg0) ; static ats_ptr_type aux_try_60 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux2_try_61 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_local_62 (ats_ptr_type arg0) ; static ats_ptr_type aux_try_pathlst_63 (ats_ptr_type arg0) ; static ats_ptr_type aux_try_prepathlst_64 (ats_ptr_type arg0) ; static ats_ptr_type aux_tryloc_65 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux2_tryloc_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_69 (ats_char_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type loop_69_closure_make (ats_char_type env0) ; static ats_ptr_type loop_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type given_get_partname_68 (ats_ptr_type arg0) ; static ats_ptr_type aux_homelocs_67 (ats_ptr_type arg0) ; static ats_ptr_type aux_relative_70 (ats_ptr_type arg0) ; static ats_ptr_type my_make_substring_range_73 (ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2) ; static ats_bool_type pathlst_test_74 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type pathlst_insert_75 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop2_77 (ats_ptr_type env0, ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type loop2_77_closure_make (ats_ptr_type env0) ; static ats_ptr_type loop2_77_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop3_78 (ats_ptr_type env0, ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type loop3_78_closure_make (ats_ptr_type env0) ; static ats_ptr_type loop3_78_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3) ; static ats_ptr_type revapp_81 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type the_PATSHOMELOCS_split_76 (ats_ptr_type arg0) ; static ats_ptr_type the_PATSHOMELOCS_initize_82 () ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp59) ; ATSstatic (ats_ptr_type, statmp60) ; ATSstatic (ats_ptr_type, statmp61) ; ATSstatic (ats_ptr_type, statmp139) ; ATSstatic (ats_ptr_type, statmp143) ; ATSstatic (ats_ptr_type, statmp144) ; ATSstatic (ats_ptr_type, statmp179) ; ATSstatic (ats_ptr_type, statmp180) ; ATSstatic (ats_ptr_type, statmp181) ; ATSstatic (ats_ptr_type, statmp182) ; ATSstatic (ats_ptr_type, statmp284) ; ATSstatic (ats_ptr_type, statmp285) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 1986(line=77, offs=1) -- 2049(line=79, offs=32) */ ATSstaticdec() ats_ptr_type ptr_succ_char_0 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab_ptr_succ_char_0: tmp0 = atspre_padd_size (arg0, sizeof(ats_char_type)) ; return (tmp0) ; } /* end of [ptr_succ_char_0] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 2301(line=98, offs=25) -- 2315(line=98, offs=39) */ ATSglobaldec() ats_char_type patsopt_filename_theDirSep_get () { /* local vardec */ ATSlocal (ats_char_type, tmp1) ; __ats_lab_patsopt_filename_theDirSep_get: tmp1 = '/' ; return (tmp1) ; } /* end of [patsopt_filename_theDirSep_get] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 2340(line=99, offs=25) -- 2354(line=99, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theCurDir_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theCurDir_get: tmp2 = ATSstrcst("./") ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theCurDir_get] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 2379(line=100, offs=25) -- 2393(line=100, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theParDir_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theParDir_get: tmp3 = ATSstrcst("../") ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theParDir_get] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 2575(line=117, offs=3) -- 2830(line=142, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_srchknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_size_type, tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_bool_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_srchknd: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theCurDir_get () ; tmp6 = atspre_string_length (tmp5) ; tmp8 = atslib_strncmp (arg0, tmp5, tmp6) ; tmp7 = atspre_eq_int_int (tmp8, 0) ; if (tmp7) { tmp4 = 0 ; } else { tmp10 = atslib_strncmp (arg0, ATSstrcst("$PATSHOMELOCS/"), 14) ; tmp9 = atspre_eq_int_int (0, tmp10) ; if (tmp9) { tmp4 = 1 ; } else { tmp4 = 2 ; } /* end of [if] */ } /* end of [if] */ return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_srchknd] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_char_type ptr0_get_01759_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp14) ; __ats_lab_ptr0_get_01759_ats_char_type: tmp14 = ats_ptrget_mac(ats_char_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp14) ; } /* end of [ptr0_get_01759_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 3183(line=157, offs=5) -- 3519(line=178, offs=4) */ ATSstaticdec() ats_ptr_type loop_6 (ats_ptr_type arg0, ats_int_type arg1, ats_char_type arg2, ats_char_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_char_type, tmp13) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_bool_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_int_type, tmp20) ; ATSlocal (ats_bool_type, tmp21) ; __ats_lab_loop_6: tmp13 = ptr0_get_01759_ats_char_type (arg0) ; tmp15 = ptr_succ_char_0 (arg0) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp16 = atspre_eq_char_char (tmp13, arg2) ; if (!tmp16) { goto __ats_lab_1_1 ; } tmp17 = atspre_add_int_int (arg1, 1) ; arg0 = tmp15 ; arg1 = tmp17 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_6 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp18 = atspre_eq_char_char (tmp13, arg3) ; if (!tmp18) { goto __ats_lab_2_1 ; } tmp19 = atspre_gt_int_int (arg1, 1) ; if (tmp19) { tmp20 = atspre_sub_int_int (arg1, 1) ; arg0 = tmp15 ; arg1 = tmp20 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_6 ; // tail call } else { tmp12 = tmp15 ; } /* end of [if] */ break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp21 = atspre_neq_char_char (tmp13, '\000') ; if (tmp21) { arg0 = tmp15 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_6 ; // tail call } else { tmp12 = atspre_null_ptr ; } /* end of [if] */ break ; } while (0) ; return (tmp12) ; } /* end of [loop_6] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 3162(line=155, offs=3) -- 4039(line=203, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_get_ngurl (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp11) ; ATSlocal (ats_char_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptrdiff_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_get_ngurl: tmp22 = ptr0_get_01759_ats_char_type (ats_castfn_mac(ats_ptr_type, arg0)) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp24 = atspre_eq_char_char (tmp22, '{') ; if (!tmp24) { goto __ats_lab_4_1 ; } tmp25 = ptr_succ_char_0 (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp23 = loop_6 (tmp25, 1, tmp22, '}') ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp23 = atspre_null_ptr ; break ; } while (0) ; tmp26 = atspre_pgt (ats_castfn_mac(ats_ptr_type, tmp23), ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0))) ; if (tmp26) { tmp27 = atspre_pdiff (ats_castfn_mac(ats_ptr_type, tmp23), ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0))) ; tmp11 = ats_castfn_mac(ats_int_type, tmp27) ; } else { tmp11 = -1 ; } /* end of [if] */ return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_get_ngurl] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 4310(line=220, offs=3) -- 4339(line=220, offs=32) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_givename (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_givename: tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename_givename) ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_givename] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 4377(line=224, offs=3) -- 4406(line=224, offs=32) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_partname (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_partname: tmp29 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename_partname) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_partname] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 4444(line=228, offs=3) -- 4473(line=228, offs=32) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname: tmp30 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename_fullname) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 4787(line=249, offs=3) -- 4834(line=250, offs=40) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__print_filename_full (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__print_filename_full: /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (stdout, arg0) ; return /* (tmp31) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__print_filename_full] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 4867(line=253, offs=3) -- 4914(line=254, offs=40) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__prerr_filename_full (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__prerr_filename_full: /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (stderr, arg0) ; return /* (tmp32) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__prerr_filename_full] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 4948(line=257, offs=3) -- 5059(line=262, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full: tmp35 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_filename_fullname) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp35) ; /* tmp33 = */ atspre_fprint_string (arg0, tmp34) ; return /* (tmp33) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 5149(line=268, offs=3) -- 5426(line=284, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint2_filename_full (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint2_filename_full: tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_filename_givename) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_get_ngurl (tmp37) ; tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_filename_fullname) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp40) ; tmp41 = atspre_lt_int_int (tmp38, 0) ; if (tmp41) { /* tmp36 = */ atspre_fprint_string (arg0, tmp39) ; } else { /* tmp36 = */ atspre_fprintf_exn (arg0, ATSstrcst("%s(%s)"), tmp39, tmp37) ; } /* end of [if] */ return /* (tmp36) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint2_filename_full] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 5516(line=290, offs=3) -- 5572(line=291, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__eq_filename_filename (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__eq_filename_filename: tmp43 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename_fullname) ; tmp44 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_filename_fullname) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp43, tmp44) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__eq_filename_filename] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 5666(line=298, offs=3) -- 5833(line=308, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__compare_filename_filename (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__compare_filename_filename: tmp47 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename_fullname) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp47) ; tmp49 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_filename_fullname) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp49) ; tmp45 = atspre_compare_string_string (tmp46, tmp48) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__compare_filename_filename] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 6108(line=327, offs=18) -- 6169(line=329, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_sats (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_sats: tmp51 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename_partname) ; tmp50 = patsopt_string_test_suffix (tmp51, ATSstrcst(".sats")) ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_sats] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 6200(line=332, offs=18) -- 6261(line=334, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_dats (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_dats: tmp53 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename_partname) ; tmp52 = patsopt_string_test_suffix (tmp53, ATSstrcst(".dats")) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_dats] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 6426(line=350, offs=1) -- 6644(line=365, offs=4) */ ATSstaticdec() ats_bool_type aux_20 (ats_ptr_type arg0, ats_size_type arg1, ats_char_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp55) ; ATSlocal (ats_bool_type, tmp56) ; ATSlocal (ats_char_type, tmp57) ; __ats_lab_aux_20: tmp56 = atspre_string_isnot_atend (arg0, arg1) ; if (tmp56) { tmp57 = atspre_string_get_char_at (arg0, arg1) ; tmp55 = atspre_neq_char_char (tmp57, arg2) ; } else { tmp55 = ats_false_bool ; } /* end of [if] */ return (tmp55) ; } /* end of [aux_20] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 6405(line=347, offs=3) -- 6772(line=374, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__givename_is_relative (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp54) ; ATSlocal (ats_char_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__givename_is_relative: tmp58 = patsopt_filename_theDirSep_get () ; tmp54 = aux_20 (ats_castfn_mac(ats_ptr_type, arg0), 0, tmp58) ; return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__givename_is_relative] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 7361(line=402, offs=18) -- 7440(line=406, offs=23) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_dummy (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp62) ; ATSlocal (ats_bool_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_dummy: tmp64 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename_fullname) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp64, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; if (tmp63) { tmp62 = ats_true_bool ; } else { tmp62 = ats_false_bool ; } /* end of [if] */ return (tmp62) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_is_dummy] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 7474(line=409, offs=21) -- 7553(line=413, offs=23) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_isnot_dummy (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_isnot_dummy: tmp67 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename_fullname) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp67, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; if (tmp66) { tmp65 = ats_false_bool ; } else { tmp65 = ats_true_bool ; } /* end of [if] */ return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_isnot_dummy] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 7603(line=418, offs=14) -- 7640(line=419, offs=31) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__print_pathlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__print_pathlst: /* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_pathlst (stdout, arg0) ; return /* (tmp68) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__print_pathlst] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 7664(line=421, offs=14) -- 7701(line=422, offs=31) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__prerr_pathlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__prerr_pathlst: /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_pathlst (stderr, arg0) ; return /* (tmp69) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__prerr_pathlst] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; // ATSlocal_void (tmp75) ; ATSlocal (ats_bool_type, tmp76) ; // ATSlocal_void (tmp77) ; ATSlocal (ats_int_type, tmp78) ; __ats_lab_aux_27: do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp74 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp76 = atspre_gt_int_int (arg1, 0) ; if (tmp76) { /* tmp75 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp77 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp73) ; tmp78 = atspre_add_int_int (arg1, 1) ; arg0 = tmp74 ; arg1 = tmp78 ; goto __ats_lab_aux_27 ; // tail call break ; } while (0) ; return /* (tmp72) */ ; } /* end of [aux_27] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_27_closure_type ; ats_void_type aux_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_27 (((aux_27_closure_type*)cloptr)->closure_env_0, ((aux_27_closure_type*)cloptr)->closure_env_1, ((aux_27_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_27_closure_init (aux_27_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_27_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_27_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_27_closure_type *p_clo = ATS_MALLOC(sizeof(aux_27_closure_type)) ; aux_27_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01889_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp71) ; __ats_lab_fprintlst_01889_ats_ptr_type: /* tmp71 = */ aux_27 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp71) */ ; } /* end of [fprintlst_01889_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 7770(line=426, offs=30) -- 7806(line=426, offs=66) */ ATSstaticdec() ats_void_type __ats_fun_28 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp79) ; __ats_lab___ats_fun_28: /* tmp79 = */ atspre_fprint_string (arg0, arg1) ; return /* (tmp79) */ ; } /* end of [__ats_fun_28] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 7729(line=425, offs=15) -- 7807(line=426, offs=67) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_pathlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_pathlst: /* tmp70 = */ fprintlst_01889_ats_ptr_type (arg0, arg1, ATSstrcst(":"), &__ats_fun_28) ; return /* (tmp70) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_pathlst] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 7947(line=440, offs=1) -- 8140(line=450, offs=2) */ ATSstaticdec() ats_void_type loop1_30 (ats_char_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp81) ; ATSlocal (ats_bool_type, tmp82) ; __ats_lab_loop1_30: tmp82 = atspre_lt_size1_size1 (arg3, arg2) ; if (tmp82) { /* tmp81 = */ loop2_31 (arg0, arg1, arg2, arg3, arg3, arg4) ; } else { /* empty */ } /* end of [if] */ return /* (tmp81) */ ; } /* end of [loop1_30] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 8148(line=453, offs=1) -- 9107(line=504, offs=2) */ ATSstaticdec() ats_void_type loop2_31 (ats_char_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_size_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp83) ; ATSlocal (ats_bool_type, tmp84) ; ATSlocal (ats_bool_type, tmp85) ; ATSlocal (ats_char_type, tmp86) ; ATSlocal (ats_size_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_size_type, tmp89) ; ATSlocal (ats_size_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_size_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_size_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab_loop2_31: tmp84 = atspre_lt_size1_size1 (arg4, arg2) ; if (tmp84) { tmp86 = atspre_string_get_char_at (arg1, arg4) ; tmp85 = atspre_neq_char_char (tmp86, arg0) ; if (tmp85) { tmp87 = atspre_add_size1_int1 (arg4, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp87 ; arg5 = arg5 ; goto __ats_lab_loop2_31 ; // tail call } else { tmp90 = atspre_sub_size1_size1 (arg4, arg3) ; tmp89 = atspre_add_size1_int1 (tmp90, 1) ; tmp88 = atspre_string_make_substring (arg1, arg3, tmp89) ; tmp91 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp91, atslab_0, ats_castfn_mac(ats_ptr_type, tmp88)) ; ats_selptrset_mac(anairiats_sum_2, tmp91, atslab_1, ats_ptrget_mac(ats_ptr_type, arg5)) ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp91 ; tmp92 = atspre_add_size1_int1 (arg4, 1) ; /* tmp83 = */ loop1_30 (arg0, arg1, arg2, tmp92, arg5) ; } /* end of [if] */ } else { tmp94 = atspre_sub_size1_size1 (arg4, arg3) ; tmp93 = atspre_string_make_substring (arg1, arg3, tmp94) ; tmp95 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp95, atslab_0, ats_castfn_mac(ats_ptr_type, tmp93)) ; ats_selptrset_mac(anairiats_sum_2, tmp95, atslab_1, ats_ptrget_mac(ats_ptr_type, arg5)) ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp95 ; } /* end of [if] */ return /* (tmp83) */ ; } /* end of [loop2_31] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 9450(line=526, offs=7) -- 9912(line=540, offs=21) */ ATSstaticdec() ats_ptr_type loop_33 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_size_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab_loop_33: tmp98 = atspre_igt (arg1, 0) ; if (tmp98) { tmp99 = atspre_string_length (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp100 = atspre_string_make_substring (ats_castfn_mac(ats_ptr_type, arg0), 0, tmp99) ; tmp101 = atspre_isub (arg1, 1) ; tmp102 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp102, atslab_0, ats_castfn_mac(ats_ptr_type, tmp100)) ; ats_selptrset_mac(anairiats_sum_2, tmp102, atslab_1, arg2) ; arg0 = arg0 ; arg1 = tmp101 ; arg2 = tmp102 ; goto __ats_lab_loop_33 ; // tail call } else { tmp97 = arg2 ; } /* end of [if] */ return (tmp97) ; } /* end of [loop_33] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 9243(line=513, offs=1) -- 10669(line=563, offs=4) */ ATSstaticdec() ats_ptr_type dirs_process_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_bool_type, tmp105) ; // ATSlocal_void (tmp106) ; ATSlocal (ats_bool_type, tmp107) ; // ATSlocal_void (tmp108) ; ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_bool_type, tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_int_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab_dirs_process_32: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp96 = loop_33 (arg1, arg2, arg4) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_0) ; tmp104 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_1) ; ATS_FREE(arg3) ; tmp105 = atspre_eq_string_string (ats_castfn_mac(ats_ptr_type, tmp103), arg0) ; if (tmp105) { /* tmp106 = */ atspre_strptr_free (tmp103) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp104 ; arg4 = arg4 ; goto __ats_lab_dirs_process_32 ; // tail call } else { tmp107 = atspre_eq_string_string (ats_castfn_mac(ats_ptr_type, tmp103), arg1) ; if (tmp107) { /* tmp108 = */ atspre_strptr_free (tmp103) ; tmp109 = atspre_iadd (arg2, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp109 ; arg3 = tmp104 ; arg4 = arg4 ; goto __ats_lab_dirs_process_32 ; // tail call } else { tmp110 = atspre_igt (arg2, 0) ; if (tmp110) { /* tmp111 = */ atspre_strptr_free (tmp103) ; tmp112 = atspre_isub (arg2, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp112 ; arg3 = tmp104 ; arg4 = arg4 ; goto __ats_lab_dirs_process_32 ; // tail call } else { tmp113 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp113, atslab_0, tmp103) ; ats_selptrset_mac(anairiats_sum_2, tmp113, atslab_1, arg4) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = 0 ; arg3 = tmp104 ; arg4 = tmp113 ; goto __ats_lab_dirs_process_32 ; // tail call } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ break ; } while (0) ; return (tmp96) ; } /* end of [dirs_process_32] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5132(line=186, offs=7) -- 5320(line=191, offs=28) */ ATSstaticdec() ats_void_type loop_35 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; // ATSlocal_void (tmp128) ; __ats_lab_loop_35: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp126 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; /* tmp128 = */ ((ats_void_type(*)(ats_ref_type))env0) (tmp126) ; ATS_FREE(arg0) ; arg0 = tmp127 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: break ; } while (0) ; return /* (tmp125) */ ; } /* end of [loop_35] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop_35_closure_type ; ats_void_type loop_35_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { loop_35 (((loop_35_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type loop_35_closure_init (loop_35_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_35_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_35_closure_make (ats_ptr_type env0) { loop_35_closure_type *p_clo = ATS_MALLOC(sizeof(loop_35_closure_type)) ; loop_35_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5111(line=185, offs=18) -- 5359(line=195, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_fun_01500_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp124) ; __ats_lab_list_vt_free_fun_01500_ats_ptr_type: /* tmp124 = */ loop_35 (arg1, arg0) ; return /* (tmp124) */ ; } /* end of [list_vt_free_fun_01500_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 11215(line=594, offs=34) -- 11238(line=594, offs=57) */ ATSstaticdec() ats_void_type __ats_fun_36 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp129) ; __ats_lab___ats_fun_36: /* tmp129 = */ atspre_strptr_free (ats_ptrget_mac(ats_ptr_type, arg0)) ; return /* (tmp129) */ ; } /* end of [__ats_fun_36] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 7929(line=437, offs=3) -- 11266(line=598, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize_vt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_char_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_size_type, tmp118) ; // ATSlocal_void (tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize_vt: tmp114 = patsopt_filename_theDirSep_get () ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theCurDir_get () ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theParDir_get () ; /* ats_ptr_type tmp117 ; */ tmp117 = (ats_sum_ptr_type)0 ; tmp118 = atspre_string_length (ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp119 = */ loop1_30 (tmp114, ats_castfn_mac(ats_ptr_type, arg0), tmp118, 0, (&tmp117)) ; tmp121 = (ats_sum_ptr_type)0 ; tmp120 = dirs_process_32 (tmp115, tmp116, 0, tmp117, tmp121) ; tmp117 = tmp120 ; tmp122 = atspre_stringlst_concat (ats_castfn_mac(ats_ptr_type, tmp117)) ; /* tmp123 = */ list_vt_free_fun_01500_ats_ptr_type (tmp117, &__ats_fun_36) ; tmp80 = tmp122 ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize_vt] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 11323(line=601, offs=16) -- 11371(line=602, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize: tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize_vt (arg0) ; tmp130 = ats_castfn_mac(ats_ptr_type, tmp131) ; return (tmp130) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 11516(line=617, offs=1) -- 11931(line=642, offs=4) */ ATSstaticdec() ats_ptr_type partname_fullize_38 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_bool_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; __ats_lab_partname_fullize_38: tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__givename_is_relative (arg0) ; if (tmp133) { tmp134 = atslib_getcwd0 () ; tmp135 = patsopt_filename_dirbase (ats_castfn_mac(ats_ptr_type, tmp134), arg0) ; /* tmp136 = */ atspre_strptr_free (tmp134) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize (ats_castfn_mac(ats_ptr_type, tmp135)) ; /* tmp138 = */ atspre_strptr_free (tmp135) ; tmp132 = tmp137 ; } else { tmp132 = arg0 ; } /* end of [if] */ return (tmp132) ; } /* end of [partname_fullize_38] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp142 ; */ tmp142 = arg0 ; tmp141 = atspre_ref_make_elt_tsz ((&tmp142), sizeof(ats_ptr_type)) ; return (tmp141) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; __ats_lab_ref_make_elt_01089_ats_ptr_type: tmp140 = ref_01088_ats_ptr_type (arg0) ; return (tmp140) ; } /* end of [ref_make_elt_01089_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 12288(line=667, offs=1) -- 12778(line=692, offs=2) */ ATSstaticdec() ats_bool_type loop_42 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_bool_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab_loop_42: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp148 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__eq_filename_filename (arg1, tmp147) ; if (tmp149) { tmp146 = ats_true_bool ; } else { tmp150 = ats_ptrget_mac(ats_ptr_type, tmp148) ; arg0 = tmp150 ; arg1 = arg1 ; goto __ats_lab_loop_42 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp146 = ats_false_bool ; break ; } while (0) ; return (tmp146) ; } /* end of [loop_42] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 12236(line=663, offs=1) -- 12886(line=701, offs=4) */ ATSstaticdec() ats_bool_type filename_occurs_41 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; __ats_lab_filename_occurs_41: tmp151 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp143), atslab_1) ; tmp152 = ats_ptrget_mac(ats_ptr_type, tmp151) ; tmp145 = loop_42 (tmp152, arg0) ; return (tmp145) ; } /* end of [filename_occurs_41] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 12972(line=706, offs=21) -- 12998(line=706, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current: tmp153 = ats_ptrget_mac(ats_ptr_type, statmp139) ; return (tmp153) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 13053(line=712, offs=1) -- 13144(line=720, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () { /* local vardec */ // ATSlocal_void (tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop: /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop () ; return /* (tmp154) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 13211(line=724, offs=3) -- 13461(line=742, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop () { /* local vardec */ // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop: tmp156 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp143), atslab_1) ; tmp157 = ats_ptrget_mac(ats_ptr_type, tmp156) ; if (tmp157 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_filename.dats: 13326(line=733, offs=3) -- 13352(line=733, offs=29)") ; } tmp158 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_0) ; tmp159 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_1) ; ATS_FREE(tmp157) ; ats_ptrget_mac(ats_ptr_type, tmp156) = tmp159 ; ats_ptrget_mac(ats_ptr_type, statmp139) = tmp158 ; return /* (tmp155) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 13549(line=747, offs=21) -- 13625(line=752, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp160) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push: /* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush (arg0) ; return /* (tmp160) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 13693(line=755, offs=22) -- 13873(line=762, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush: tmp162 = ats_ptrget_mac(ats_ptr_type, statmp139) ; ats_ptrget_mac(ats_ptr_type, statmp139) = arg0 ; tmp163 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp143), atslab_1) ; tmp165 = ats_ptrget_mac(ats_ptr_type, tmp163) ; tmp164 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp164, atslab_0, tmp162) ; ats_selptrset_mac(anairiats_sum_2, tmp164, atslab_1, tmp165) ; ats_ptrget_mac(ats_ptr_type, tmp163) = tmp164 ; return /* (tmp161) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 14293(line=784, offs=3) -- 14788(line=813, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push_check (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; ATSlocal (ats_bool_type, tmp169) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push_check: /* tmp167 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (arg0) ; /* tmp168 = ats_selsin_mac(tmp167, atslab_1) */ ; tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_isnot_dummy (arg0) ; if (tmp169) { tmp166 = filename_occurs_41 (arg0) ; } else { tmp166 = ats_false_bool ; } /* end of [if] */ return (tmp166) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push_check] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 14904(line=822, offs=1) -- 15258(line=842, offs=2) */ ATSstaticdec() ats_void_type loop_50 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; // ATSlocal_void (tmp174) ; // ATSlocal_void (tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; __ats_lab_loop_50: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp173 = &ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp172) ; /* tmp175 = */ atspre_fprint_newline (arg0) ; tmp176 = ats_ptrget_mac(ats_ptr_type, tmp173) ; arg0 = arg0 ; arg1 = tmp176 ; goto __ats_lab_loop_50 ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: break ; } while (0) ; return /* (tmp171) */ ; } /* end of [loop_50] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 14885(line=819, offs=3) -- 15384(line=852, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_the_filenamelst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp170) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_the_filenamelst: tmp177 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp143), atslab_1) ; tmp178 = ats_ptrget_mac(ats_ptr_type, tmp177) ; /* tmp170 = */ loop_50 (arg0, tmp178) ; return /* (tmp170) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_the_filenamelst] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 15747(line=874, offs=1) -- 15900(line=887, offs=2) */ ATSstaticdec() ats_ptr_type the_pathlst_get_51 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; __ats_lab_the_pathlst_get_51: tmp184 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp179), atslab_1) ; tmp185 = ats_ptrget_mac(ats_ptr_type, tmp184) ; tmp186 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp184) = tmp186 ; tmp183 = tmp185 ; return (tmp183) ; } /* end of [the_pathlst_get_51] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 15937(line=890, offs=1) -- 16093(line=904, offs=2) */ ATSstaticdec() ats_void_type the_pathlst_set_52 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab_the_pathlst_set_52: tmp188 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp179), atslab_1) ; tmp189 = ats_ptrget_mac(ats_ptr_type, tmp188) ; if (tmp189 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_filename.dats: 16049(line=901, offs=1) -- 16068(line=901, offs=20)") ; } ats_ptrget_mac(ats_ptr_type, tmp188) = arg0 ; return /* (tmp187) */ ; } /* end of [the_pathlst_set_52] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 16175(line=910, offs=3) -- 16341(line=925, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_pop () { /* local vardec */ // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_pop: tmp191 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp179), atslab_1) ; tmp192 = ats_ptrget_mac(ats_ptr_type, tmp191) ; if (tmp192 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_filename.dats: 16285(line=922, offs=1) -- 16310(line=922, offs=26)") ; } tmp193 = ats_caselptrlab_mac(anairiats_sum_2, tmp192, atslab_1) ; ATS_FREE(tmp192) ; ats_ptrget_mac(ats_ptr_type, tmp191) = tmp193 ; return /* (tmp190) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_pop] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 16400(line=928, offs=17) -- 16472(line=933, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_push (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp194) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_push: /* tmp194 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_ppush (arg0) ; return /* (tmp194) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_push] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 16530(line=936, offs=18) -- 16636(line=945, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_ppush (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_ppush: tmp196 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp179), atslab_1) ; tmp198 = ats_ptrget_mac(ats_ptr_type, tmp196) ; tmp197 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp197, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp197, atslab_1, tmp198) ; ats_ptrget_mac(ats_ptr_type, tmp196) = tmp197 ; return /* (tmp195) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_ppush] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 16922(line=969, offs=1) -- 17102(line=983, offs=2) */ ATSstaticdec() ats_ptr_type the_prepathlst_get_56 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab_the_prepathlst_get_56: tmp200 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp181), atslab_1) ; tmp201 = ats_ptrget_mac(ats_ptr_type, tmp200) ; tmp202 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp200) = tmp202 ; tmp199 = tmp201 ; return (tmp199) ; } /* end of [the_prepathlst_get_56] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 17142(line=986, offs=1) -- 17308(line=998, offs=2) */ ATSstaticdec() ats_void_type the_prepathlst_set_57 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; __ats_lab_the_prepathlst_set_57: tmp204 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp181), atslab_1) ; tmp205 = ats_ptrget_mac(ats_ptr_type, tmp204) ; if (tmp205 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_filename.dats: 17257(line=995, offs=5) -- 17277(line=995, offs=25)") ; } ats_ptrget_mac(ats_ptr_type, tmp204) = arg0 ; return /* (tmp203) */ ; } /* end of [the_prepathlst_set_57] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 17391(line=1003, offs=20) -- 17498(line=1012, offs=4) */ ATSglobaldec() ats_void_type libatsopt_the_prepathlst_push (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; __ats_lab_libatsopt_the_prepathlst_push: tmp207 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp181), atslab_1) ; tmp209 = ats_ptrget_mac(ats_ptr_type, tmp207) ; tmp208 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp208, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp208, atslab_1, tmp209) ; ats_ptrget_mac(ats_ptr_type, tmp207) = tmp208 ; return /* (tmp206) */ ; } /* end of [libatsopt_the_prepathlst_push] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 17621(line=1022, offs=1) -- 17794(line=1031, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make: tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (arg2) ; tmp210 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp210, atslab_filename_givename, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp210, atslab_filename_partname, arg1) ; ats_selptrset_mac(anairiats_rec_1, tmp210, atslab_filename_fullname, tmp211) ; return (tmp210) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 17988(line=1045, offs=1) -- 18210(line=1059, offs=4) */ ATSstaticdec() ats_ptr_type aux_try_60 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; __ats_lab_aux_try_60: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp212 = aux2_try_61 (tmp213, tmp214, arg1) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp212 = atspre_stropt_none ; break ; } while (0) ; return (tmp212) ; } /* end of [aux_try_60] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 18236(line=1062, offs=1) -- 18655(line=1091, offs=4) */ ATSstaticdec() ats_ptr_type aux2_try_61 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_bool_type, tmp217) ; // ATSlocal_void (tmp218) ; __ats_lab_aux2_try_61: tmp216 = patsopt_filename_dirbase (arg0, arg2) ; tmp217 = atspre_test_file_exists (ats_castfn_mac(ats_ptr_type, tmp216)) ; if (tmp217) { tmp215 = ats_castfn_mac(ats_ptr_type, tmp216) ; } else { /* tmp218 = */ atspre_strptr_free (tmp216) ; tmp215 = aux_try_60 (arg1, arg2) ; } /* end of [if] */ return (tmp215) ; } /* end of [aux2_try_61] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 18703(line=1096, offs=1) -- 19278(line=1120, offs=4) */ ATSstaticdec() ats_ptr_type aux_local_62 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; // ATSlocal_void (tmp224) ; ATSlocal (ats_bool_type, tmp225) ; // ATSlocal_void (tmp226) ; __ats_lab_aux_local_62: tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_partname (tmp220) ; tmp222 = patsopt_filename_merge (tmp221, arg0) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize_vt (ats_castfn_mac(ats_ptr_type, tmp222)) ; /* tmp224 = */ atspre_strptr_free (tmp222) ; tmp225 = atspre_test_file_exists (ats_castfn_mac(ats_ptr_type, tmp223)) ; if (tmp225) { tmp219 = ats_castfn_mac(ats_ptr_type, tmp223) ; } else { /* tmp226 = */ atspre_strptr_free (tmp223) ; tmp219 = atspre_stropt_none ; } /* end of [if] */ return (tmp219) ; } /* end of [aux_local_62] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 19327(line=1125, offs=1) -- 19888(line=1165, offs=2) */ ATSstaticdec() ats_ptr_type aux_try_pathlst_63 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; // ATSlocal_void (tmp231) ; __ats_lab_aux_try_pathlst_63: tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__theCurDir_get () ; tmp229 = the_pathlst_get_51 () ; tmp230 = aux2_try_61 (tmp228, ats_castfn_mac(ats_ptr_type, tmp229), arg0) ; /* tmp231 = */ the_pathlst_set_52 (tmp229) ; tmp227 = tmp230 ; return (tmp227) ; } /* end of [aux_try_pathlst_63] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 19925(line=1168, offs=1) -- 20313(line=1197, offs=2) */ ATSstaticdec() ats_ptr_type aux_try_prepathlst_64 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; // ATSlocal_void (tmp235) ; __ats_lab_aux_try_prepathlst_64: tmp233 = the_prepathlst_get_56 () ; tmp234 = aux_try_60 (ats_castfn_mac(ats_ptr_type, tmp233), arg0) ; /* tmp235 = */ the_prepathlst_set_57 (tmp233) ; tmp232 = tmp234 ; return (tmp232) ; } /* end of [aux_try_prepathlst_64] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 20374(line=1202, offs=1) -- 20602(line=1216, offs=4) */ ATSstaticdec() ats_ptr_type aux_tryloc_65 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; __ats_lab_aux_tryloc_65: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp237 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp238 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp236 = aux2_tryloc_66 (tmp237, tmp238, arg1) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp236 = atspre_stropt_none ; break ; } while (0) ; return (tmp236) ; } /* end of [aux_tryloc_65] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 20631(line=1219, offs=1) -- 21049(line=1247, offs=4) */ ATSstaticdec() ats_ptr_type aux2_tryloc_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; // ATSlocal_void (tmp242) ; ATSlocal (ats_bool_type, tmp243) ; __ats_lab_aux2_tryloc_66: tmp240 = patsopt_filename_dirbase (arg0, arg2) ; tmp241 = aux_local_62 (ats_castfn_mac(ats_ptr_type, tmp240)) ; /* tmp242 = */ atspre_strptr_free (tmp240) ; tmp243 = atspre_stropt_is_some (tmp241) ; if (tmp243) { tmp239 = tmp241 ; } else { tmp239 = aux_tryloc_65 (arg1, arg2) ; } /* end of [if] */ return (tmp239) ; } /* end of [aux2_tryloc_66] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 21350(line=1278, offs=1) -- 21604(line=1300, offs=4) */ ATSstaticdec() ats_ptr_type loop_69 (ats_char_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_char_type, tmp248) ; ATSlocal (ats_bool_type, tmp249) ; ATSlocal (ats_bool_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; __ats_lab_loop_69: tmp248 = ptr0_get_01759_ats_char_type (arg0) ; tmp249 = atspre_eq_char_char (tmp248, '\000') ; if (tmp249) { tmp247 = ATSstrcst("") ; } else { tmp250 = atspre_neq_char_char (tmp248, env0) ; if (tmp250) { tmp251 = ptr_succ_char_0 (arg0) ; arg0 = tmp251 ; goto __ats_lab_loop_69 ; // tail call } else { tmp252 = ptr_succ_char_0 (arg0) ; tmp247 = ats_castfn_mac(ats_ptr_type, tmp252) ; } /* end of [if] */ } /* end of [if] */ return (tmp247) ; } /* end of [loop_69] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_char_type closure_env_0 ; } loop_69_closure_type ; ats_ptr_type loop_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return loop_69 (((loop_69_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type loop_69_closure_init (loop_69_closure_type *p_clo, ats_char_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_69_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_69_closure_make (ats_char_type env0) { loop_69_closure_type *p_clo = ATS_MALLOC(sizeof(loop_69_closure_type)) ; loop_69_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 21239(line=1266, offs=1) -- 21673(line=1304, offs=4) */ ATSstaticdec() ats_ptr_type given_get_partname_68 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_char_type, tmp246) ; __ats_lab_given_get_partname_68: tmp246 = patsopt_filename_theDirSep_get () ; tmp245 = loop_69 (tmp246, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp245) ; } /* end of [given_get_partname_68] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 21100(line=1252, offs=1) -- 21913(line=1321, offs=4) */ ATSstaticdec() ats_ptr_type aux_homelocs_67 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; __ats_lab_aux_homelocs_67: tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_PATSHOMELOCS_get_pathlst () ; tmp254 = given_get_partname_68 (arg0) ; tmp244 = aux_tryloc_65 (tmp253, tmp254) ; return (tmp244) ; } /* end of [aux_homelocs_67] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 21965(line=1326, offs=1) -- 22507(line=1367, offs=4) */ ATSstaticdec() ats_ptr_type aux_relative_70 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_bool_type, tmp258) ; __ats_lab_aux_relative_70: tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_srchknd (ats_castfn_mac(ats_ptr_type, arg0)) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp256 != 0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp255 = aux_local_62 (ats_castfn_mac(ats_ptr_type, arg0)) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp256 != 1) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp255 = aux_homelocs_67 (ats_castfn_mac(ats_ptr_type, arg0)) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp257 = aux_try_pathlst_63 (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp258 = atspre_stropt_is_some (tmp257) ; if (tmp258) { tmp255 = tmp257 ; } else { tmp255 = aux_try_prepathlst_64 (ats_castfn_mac(ats_ptr_type, arg0)) ; } /* end of [if] */ break ; } while (0) ; return (tmp255) ; } /* end of [aux_relative_70] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 22635(line=1377, offs=3) -- 22915(line=1393, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_local (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_bool_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_local: tmp260 = aux_local_62 (arg0) ; tmp261 = atspre_stropt_is_some (tmp260) ; if (tmp261) { tmp262 = partname_fullize_38 (ats_castfn_mac(ats_ptr_type, tmp260)) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make (arg0, ats_castfn_mac(ats_ptr_type, tmp260), tmp262) ; tmp259 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp259, atslab_0, tmp263) ; } else { tmp259 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp259) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_local] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 23011(line=1399, offs=3) -- 23972(line=1447, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_relative (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_int_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_bool_type, tmp268) ; ATSlocal (ats_bool_type, tmp269) ; ATSlocal (ats_bool_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_relative: tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_get_ngurl (arg0) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__pkgsrcname_relocatize (arg0, tmp265) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp266 ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp268 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__givename_is_relative (tmp266) ; if (!tmp268) { goto __ats_lab_23_1 ; } tmp267 = aux_relative_70 (tmp266) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp269 = atspre_test_file_exists (tmp266) ; if (tmp269) { tmp267 = ats_castfn_mac(ats_ptr_type, tmp266) ; } else { tmp267 = atspre_stropt_none ; } /* end of [if] */ break ; } while (0) ; tmp270 = atspre_stropt_is_some (tmp267) ; if (tmp270) { tmp271 = partname_fullize_38 (ats_castfn_mac(ats_ptr_type, tmp267)) ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make (arg0, ats_castfn_mac(ats_ptr_type, tmp267), tmp271) ; tmp264 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_0, tmp272) ; } else { tmp264 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp264) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_relative] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 24215(line=1466, offs=1) -- 24447(line=1477, offs=4) */ ATSstaticdec() ats_ptr_type my_make_substring_range_73 (ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_size_type, tmp274) ; ATSlocal (ats_bool_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; __ats_lab_my_make_substring_range_73: tmp275 = atspre_gte_size_size (arg2, arg1) ; if (tmp275) { tmp274 = atspre_sub_size_size (arg2, arg1) ; } else { tmp274 = 0 ; } /* end of [if] */ tmp276 = atspre_string_make_substring (arg0, arg1, tmp274) ; tmp273 = ats_castfn_mac(ats_ptr_type, tmp276) ; return (tmp273) ; } /* end of [my_make_substring_range_73] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 24514(line=1482, offs=1) -- 24877(line=1503, offs=2) */ ATSstaticdec() ats_bool_type pathlst_test_74 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_bool_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; __ats_lab_pathlst_test_74: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp277 = ats_false_bool ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp278 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp279 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp280 = atspre_eq_string_string (arg1, tmp278) ; if (tmp280) { tmp277 = ats_true_bool ; } else { tmp281 = ats_ptrget_mac(ats_ptr_type, tmp279) ; arg0 = tmp281 ; arg1 = arg1 ; goto __ats_lab_pathlst_test_74 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp277) ; } /* end of [pathlst_test_74] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 24913(line=1506, offs=1) -- 25034(line=1510, offs=60) */ ATSstaticdec() ats_ptr_type pathlst_insert_75 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_bool_type, tmp283) ; __ats_lab_pathlst_insert_75: tmp283 = pathlst_test_74 (arg0, arg1) ; if (tmp283) { tmp282 = arg0 ; } else { tmp282 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp282, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp282, atslab_1, arg0) ; } /* end of [if] */ return (tmp282) ; } /* end of [pathlst_insert_75] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 25256(line=1531, offs=1) -- 25510(line=1552, offs=4) */ ATSstaticdec() ats_ptr_type loop2_77 (ats_ptr_type env0, ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_char_type, tmp289) ; ATSlocal (ats_bool_type, tmp290) ; ATSlocal (ats_bool_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_size_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_size_type, tmp295) ; __ats_lab_loop2_77: tmp289 = ptr0_get_01759_ats_char_type (arg0) ; tmp290 = atspre_eq_char_char (tmp289, '\000') ; if (tmp290) { tmp288 = arg2 ; } else { tmp291 = atspre_eq_char_char (tmp289, ':') ; if (tmp291) { tmp292 = ptr_succ_char_0 (arg0) ; tmp293 = atspre_add_size_int (arg1, 1) ; arg0 = tmp292 ; arg1 = tmp293 ; arg2 = arg2 ; goto __ats_lab_loop2_77 ; // tail call } else { tmp294 = ptr_succ_char_0 (arg0) ; tmp295 = atspre_add_size_int (arg1, 1) ; tmp288 = loop3_78 (env0, tmp294, arg1, tmp295, arg2) ; } /* end of [if] */ } /* end of [if] */ return (tmp288) ; } /* end of [loop2_77] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop2_77_closure_type ; ats_ptr_type loop2_77_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2) { return loop2_77 (((loop2_77_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type loop2_77_closure_init (loop2_77_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop2_77_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop2_77_closure_make (ats_ptr_type env0) { loop2_77_closure_type *p_clo = ATS_MALLOC(sizeof(loop2_77_closure_type)) ; loop2_77_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 25539(line=1555, offs=1) -- 26072(line=1600, offs=4) */ ATSstaticdec() ats_ptr_type loop3_78 (ats_ptr_type env0, ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_char_type, tmp297) ; ATSlocal (ats_bool_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_bool_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_size_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_size_type, tmp306) ; __ats_lab_loop3_78: tmp297 = ptr0_get_01759_ats_char_type (arg0) ; tmp298 = atspre_eq_char_char (tmp297, '\000') ; if (tmp298) { tmp299 = my_make_substring_range_73 (env0, arg1, arg2) ; tmp296 = pathlst_insert_75 (arg3, tmp299) ; } else { tmp300 = atspre_eq_char_char (tmp297, ':') ; if (tmp300) { tmp301 = my_make_substring_range_73 (env0, arg1, arg2) ; tmp302 = ptr_succ_char_0 (arg0) ; tmp303 = atspre_add_size_int (arg2, 1) ; tmp304 = pathlst_insert_75 (arg3, tmp301) ; tmp296 = loop2_77 (env0, tmp302, tmp303, tmp304) ; } else { tmp305 = ptr_succ_char_0 (arg0) ; tmp306 = atspre_add_size_int (arg2, 1) ; arg0 = tmp305 ; arg1 = arg1 ; arg2 = tmp306 ; arg3 = arg3 ; goto __ats_lab_loop3_78 ; // tail call } /* end of [if] */ } /* end of [if] */ return (tmp296) ; } /* end of [loop3_78] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop3_78_closure_type ; ats_ptr_type loop3_78_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3) { return loop3_78 (((loop3_78_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type loop3_78_closure_init (loop3_78_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop3_78_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop3_78_closure_make (ats_ptr_type env0) { loop3_78_closure_type *p_clo = ATS_MALLOC(sizeof(loop3_78_closure_type)) ; loop3_78_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_81 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; __ats_lab_revapp_81: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp311 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp312 = ats_ptrget_mac(ats_ptr_type, tmp311) ; ats_ptrget_mac(ats_ptr_type, tmp311) = arg1 ; tmp313 = arg0 ; arg0 = tmp312 ; arg1 = tmp313 ; goto __ats_lab_revapp_81 ; // tail call break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp310 = arg1 ; break ; } while (0) ; return (tmp310) ; } /* end of [revapp_81] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp309) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp309 = revapp_81 (arg0, arg1) ; return (tmp309) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp314) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp314 = (ats_sum_ptr_type)0 ; tmp308 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp314) ; return (tmp308) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 25120(line=1519, offs=1) -- 26213(line=1609, offs=4) */ ATSstaticdec() ats_ptr_type the_PATSHOMELOCS_split_76 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_char_type, tmp287) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; __ats_lab_the_PATSHOMELOCS_split_76: tmp287 = patsopt_filename_theDirSep_get () ; tmp316 = (ats_sum_ptr_type)0 ; tmp315 = loop2_77 (arg0, ats_castfn_mac(ats_ptr_type, arg0), 0, tmp316) ; tmp307 = list_vt_reverse_01506_ats_ptr_type (tmp315) ; tmp286 = ats_castfn_mac(ats_ptr_type, tmp307) ; return (tmp286) ; } /* end of [the_PATSHOMELOCS_split_76] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 26256(line=1612, offs=1) -- 26898(line=1657, offs=4) */ ATSstaticdec() ats_ptr_type the_PATSHOMELOCS_initize_82 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_bool_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; __ats_lab_the_PATSHOMELOCS_initize_82: tmp318 = patsopt_PATSHOMELOCS_get () ; tmp319 = atspre_stropt_is_some (tmp318) ; if (tmp319) { tmp320 = the_PATSHOMELOCS_split_76 (ats_castfn_mac(ats_ptr_type, tmp318)) ; tmp321 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp321, atslab_0, tmp320) ; ats_ptrget_mac(ats_ptr_type, statmp284) = tmp321 ; tmp317 = tmp320 ; } else { tmp322 = (ats_sum_ptr_type)0 ; tmp323 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp323, atslab_0, tmp322) ; ats_ptrget_mac(ats_ptr_type, statmp284) = tmp323 ; tmp317 = tmp322 ; } /* end of [if] */ return (tmp317) ; } /* end of [the_PATSHOMELOCS_initize_82] */ /* // /tmp/ATS-Postiats/src/pats_filename.dats: 26983(line=1663, offs=3) -- 27121(line=1674, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_PATSHOMELOCS_get_pathlst () { /* local vardec */ ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_PATSHOMELOCS_get_pathlst: tmp325 = ats_ptrget_mac(ats_ptr_type, statmp284) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (tmp325 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp326 = ats_caselptrlab_mac(anairiats_sum_3, tmp325, atslab_0) ; tmp324 = tmp326 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (tmp325 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp324 = the_PATSHOMELOCS_initize_82 () ; break ; } while (0) ; return (tmp324) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_PATSHOMELOCS_get_pathlst] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp59, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp60, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp61, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp139, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp143, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp144, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp179, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp180, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp181, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp182, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp284, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp285, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp59 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp59, atslab_filename_givename, ATSstrcst("")) ; ats_selptrset_mac(anairiats_rec_1, statmp59, atslab_filename_partname, ATSstrcst("")) ; ats_selptrset_mac(anairiats_rec_1, statmp59, atslab_filename_fullname, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy = statmp59 ; statmp60 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp60, atslab_filename_givename, ATSstrcst("__STDIN__")) ; ats_selptrset_mac(anairiats_rec_1, statmp60, atslab_filename_partname, ATSstrcst("__STDIN__")) ; ats_selptrset_mac(anairiats_rec_1, statmp60, atslab_filename_fullname, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STDIN__) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_stdin, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_stdin = statmp60 ; statmp61 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp61, atslab_filename_givename, ATSstrcst("__STRING__")) ; ats_selptrset_mac(anairiats_rec_1, statmp61, atslab_filename_partname, ATSstrcst("__STRING__")) ; ats_selptrset_mac(anairiats_rec_1, statmp61, atslab_filename_fullname, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STRING__) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_string, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_string = statmp61 ; statmp139 = ref_make_elt_01089_ats_ptr_type (_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; statmp144 = (ats_sum_ptr_type)0 ; statmp143 = ref_make_elt_01089_ats_ptr_type (statmp144) ; statmp180 = (ats_sum_ptr_type)0 ; statmp179 = ref_make_elt_01089_ats_ptr_type (statmp180) ; statmp182 = (ats_sum_ptr_type)0 ; statmp181 = ref_make_elt_01089_ats_ptr_type (statmp182) ; statmp285 = (ats_sum_ptr_type)0 ; statmp284 = ref_01088_ats_ptr_type (statmp285) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ ats_ptr_type patsopt_filename_merge ( ats_ptr_type ful, ats_ptr_type bas ) { char c, dirsep ; char *p0, *p1, *p ; int n, n1, n2, found = 0 ; char *fulbas ; p0 = p = (char*)ful ; dirsep = patsopt_filename_theDirSep_get () ; // while (1) { c = *p++ ; if (c == 0) break ; if (c == dirsep) { found = 1 ; p1 = p ; } } // n1 = 0 ; if (found) n1 = (p1-p0) ; n2 = strlen ((char*)bas) ; n = n1 + n2 ; fulbas = ATS_MALLOC (n+1) ; memcpy (fulbas, ful, n1) ; memcpy (fulbas + n1, bas, n2) ; fulbas[n] = '\000' ; // return fulbas ; // } // end of [patsopt_filename_merge] ats_ptr_type patsopt_filename_dirbase ( ats_ptr_type dir, ats_ptr_type bas ) { int n1, n2, n ; char dirsep, *dirbas ; // dirsep = patsopt_filename_theDirSep_get () ; // n1 = strlen ((char*)dir) ; n2 = strlen ((char*)bas) ; n = n1 + n2 ; // if (n1 > 0 && ((char*)dir)[n1-1] != dirsep) n += 1 ; dirbas = ATS_MALLOC (n + 1) ; memcpy (dirbas, dir, n1) ; if (n > n1 + n2) { dirbas[n1] = dirsep ; n1 += 1 ; } memcpy (dirbas + n1, bas, n2) ; dirbas[n] = '\000' ; // return dirbas ; } /* end of [patsopt_filename_dirbase] */ /* ****** ****** */ /* end of [pats_filename_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_symbol_sats.c0000644000175000017500000000175113431250607022055 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_symbol_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lexing_dats.c0000644000175000017500000075524313431250607022033 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_gte_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_gte_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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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) -- 37668(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_ptr_type, tmp593) ; ATSlocal (ats_uint_type, tmp594) ; ATSlocal (ats_bool_type, tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; __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) ; tmp592 = atspre_eq_uint_uint (tmp591, 0u) ; if (tmp592) { tmp593 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_hex_1) ; tmp583 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp593) ; } 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: tmp594 = testing_octalseq0_41 (arg0, arg1) ; tmp595 = atspre_eq_uint_uint (tmp594, 0u) ; if (tmp595) { tmp596 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_oct_0) ; tmp583 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp596) ; } else { tmp583 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_oct (arg0, arg1, tmp594) ; } /* 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: 37755(line=1879, offs=3) -- 37971(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, tmp597) ; ATSlocal (ats_int_type, tmp598) ; ATSlocal (ats_bool_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing: tmp598 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_litchar (arg0, arg1, '\'') ; tmp599 = atspre_gte_int_int (tmp598, 0) ; if (tmp599) { tmp600 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp600)->tag = 151 ; ats_selptrset_mac(anairiats_sum_3, tmp600, atslab_0, arg2) ; tmp597 = lexbufpos_token_reset_53 (arg0, arg1, tmp600) ; } else { tmp601 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_unclose_2) ; tmp597 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp601) ; } /* end of [if] */ return (tmp597) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 38051(line=1892, offs=3) -- 38620(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, tmp602) ; ATSlocal (ats_int_type, tmp603) ; ATSlocal (ats_bool_type, tmp604) ; ATSlocal (ats_char_type, tmp605) ; // ATSlocal_void (tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_bool_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_QUOTE: tmp603 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ; tmp604 = atspre_gte_int_int (tmp603, 0) ; if (tmp604) { tmp605 = atspre_char_of_int (tmp603) ; /* tmp606 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (tmp605 != '(') { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp607 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELPAREN_164) ; tmp602 = lexbufpos_token_reset_53 (arg0, arg1, tmp607) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (tmp605 != '[') { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp608 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACKET_166) ; tmp602 = lexbufpos_token_reset_53 (arg0, arg1, tmp608) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (tmp605 != '{') { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp609 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACE_169) ; tmp602 = lexbufpos_token_reset_53 (arg0, arg1, tmp609) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: tmp610 = atspre_eq_char_char (tmp605, '\\') ; if (!tmp610) { goto __ats_lab_89_1 ; } tmp602 = _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: tmp602 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing (arg0, arg1, tmp605) ; break ; } while (0) ; } else { tmp611 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_QUOTE_dangling_3) ; tmp602 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp611) ; } /* end of [if] */ return (tmp602) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_QUOTE] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 39055(line=1948, offs=7) -- 39468(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, tmp613) ; ATSlocal (ats_bool_type, tmp614) ; ATSlocal (ats_int_type, tmp615) ; ATSlocal (ats_char_type, tmp616) ; ATSlocal (ats_bool_type, tmp617) ; // ATSlocal_void (tmp618) ; ATSlocal (ats_int_type, tmp619) ; ATSlocal (ats_int_type, tmp620) ; ATSlocal (ats_int_type, tmp621) ; ATSlocal (ats_int_type, tmp622) ; __ats_lab_loop_86: tmp614 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ; if (tmp614) { tmp615 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ; tmp616 = atspre_char_of_int (tmp615) ; do { /* branch: __ats_lab_90 */ __ats_lab_90_0: __ats_lab_90_1: tmp617 = DIGIT_test_22 (tmp616) ; if (!tmp617) { goto __ats_lab_91_1 ; } /* tmp618 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp619 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp619 ; tmp621 = atspre_mul_int_int (8, arg3) ; tmp622 = atspre_sub_char_char (tmp616, '0') ; tmp620 = atspre_add_int_int (tmp621, tmp622) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp620 ; goto __ats_lab_loop_86 ; // tail call break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: __ats_lab_91_1: tmp613 = arg3 ; break ; } while (0) ; } else { tmp613 = arg3 ; } /* end of [if] */ return (tmp613) ; } /* end of [loop_86] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 38979(line=1944, offs=1) -- 39794(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, tmp612) ; ATSlocal (ats_int_type, tmp623) ; ATSlocal (ats_int_type, tmp624) ; // ATSlocal_void (tmp625) ; ATSlocal (ats_bool_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; __ats_lab_lexing_string_char_oct_85: /* ats_int_type tmp623 ; */ tmp623 = 3 ; tmp624 = loop_86 (arg0, arg1, (&tmp623), 0) ; tmp626 = atspre_eq_int_int (tmp623, 3) ; if (tmp626) { tmp627 = _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)) ; tmp629 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_oct_5) ; tmp628 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp627, tmp629) ; /* tmp625 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp628) ; } else { /* empty */ } /* end of [if] */ tmp612 = tmp624 ; return (tmp612) ; } /* end of [lexing_string_char_oct_85] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 39932(line=1988, offs=7) -- 40358(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, tmp631) ; ATSlocal (ats_bool_type, tmp632) ; ATSlocal (ats_int_type, tmp633) ; ATSlocal (ats_char_type, tmp634) ; ATSlocal (ats_bool_type, tmp635) ; // ATSlocal_void (tmp636) ; ATSlocal (ats_int_type, tmp637) ; ATSlocal (ats_int_type, tmp638) ; ATSlocal (ats_int_type, tmp639) ; ATSlocal (ats_int_type, tmp640) ; __ats_lab_loop_88: tmp632 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ; if (tmp632) { tmp633 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ; tmp634 = atspre_char_of_int (tmp633) ; do { /* branch: __ats_lab_92 */ __ats_lab_92_0: __ats_lab_92_1: tmp635 = XDIGIT_test_23 (tmp634) ; if (!tmp635) { goto __ats_lab_93_1 ; } /* tmp636 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp637 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp637 ; tmp639 = atspre_mul_int_int (16, arg3) ; tmp640 = xdigit_get_val_0 (tmp634) ; tmp638 = atspre_add_int_int (tmp639, tmp640) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp638 ; goto __ats_lab_loop_88 ; // tail call break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: __ats_lab_93_1: tmp631 = arg3 ; break ; } while (0) ; } else { tmp631 = arg3 ; } /* end of [if] */ return (tmp631) ; } /* end of [loop_88] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 39856(line=1984, offs=1) -- 40673(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, tmp630) ; ATSlocal (ats_int_type, tmp641) ; ATSlocal (ats_int_type, tmp642) ; // ATSlocal_void (tmp643) ; ATSlocal (ats_bool_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; ATSlocal (ats_ptr_type, tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; __ats_lab_lexing_string_char_hex_87: /* ats_int_type tmp641 ; */ tmp641 = 2 ; tmp642 = loop_88 (arg0, arg1, (&tmp641), 0) ; tmp644 = atspre_eq_int_int (tmp641, 2) ; if (tmp644) { tmp645 = _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)) ; tmp647 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_hex_6) ; tmp646 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp645, tmp647) ; /* tmp643 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp646) ; } else { /* empty */ } /* end of [if] */ tmp630 = tmp642 ; return (tmp630) ; } /* end of [lexing_string_char_hex_87] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 40735(line=2024, offs=1) -- 41386(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, tmp648) ; ATSlocal (ats_int_type, tmp649) ; ATSlocal (ats_bool_type, tmp650) ; ATSlocal (ats_char_type, tmp651) ; // ATSlocal_void (tmp652) ; ATSlocal (ats_bool_type, tmp653) ; // ATSlocal_void (tmp654) ; ATSlocal (ats_char_type, tmp655) ; ATSlocal (ats_bool_type, tmp656) ; // ATSlocal_void (tmp657) ; __ats_lab_lexing_string_char_special_89: tmp649 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ; tmp650 = atspre_gte_int_int (tmp649, 0) ; if (tmp650) { tmp651 = atspre_char_of_int (tmp649) ; do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (tmp651 != '\n') { goto __ats_lab_95_0 ; } __ats_lab_94_1: ats_ptrget_mac(ats_int_type, arg2) = 1 ; /* tmp652 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (arg1, tmp649) ; tmp648 = 0 ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: __ats_lab_95_1: tmp653 = ESCHAR_test_29 (tmp651) ; if (!tmp653) { goto __ats_lab_96_1 ; } /* tmp654 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp655 = char_for_escaped_1 (tmp651) ; tmp648 = atspre_int_of_char (tmp655) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: __ats_lab_96_1: tmp656 = xX_test_21 (tmp651) ; if (!tmp656) { goto __ats_lab_97_1 ; } /* tmp657 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp648 = lexing_string_char_hex_87 (arg0, arg1) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: __ats_lab_97_1: tmp648 = lexing_string_char_oct_85 (arg0, arg1) ; break ; } while (0) ; } else { tmp648 = 0 ; } /* end of [if] */ return (tmp648) ; } /* end of [lexing_string_char_special_89] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 41500(line=2060, offs=1) -- 41700(line=2068, offs=4) */ ATSstaticdec() ats_void_type regerr_91 (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; __ats_lab_regerr_91: tmp660 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ; tmp662 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_unclose_4) ; tmp661 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp660, tmp662) ; /* tmp659 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp661) ; return /* (tmp659) */ ; } /* end of [regerr_91] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 41727(line=2071, offs=1) -- 42508(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, tmp713) ; tmp713 = loop_92_0loop_ins_93 (0, arg0, arg1, arg2, arg3, arg4) ; return (tmp713) ; } /* end of [loop_92] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_bool_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; __ats_lab_DEQUEptrnxt_02425_ats_uchar_type: /* ats_ptr_type tmp692 ; */ tmp692 = atspre_padd_size (arg1, sizeof(ats_uchar_type)) ; tmp695 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_rgt) ; tmp694 = atspre_pgte (tmp692, tmp695) ; if (tmp694) { tmp696 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ; tmp692 = tmp696 ; } else { /* empty */ } /* end of [if] */ tmp691 = tmp692 ; return (tmp691) ; } /* end of [DEQUEptrnxt_02425_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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 (tmp688) ; ATSlocal (ats_ptr_type, tmp689) ; ATSlocal (ats_ptr_type, tmp690) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_size_type, tmp698) ; ATSlocal (ats_size_type, tmp699) ; __ats_lab_deque_insert_end_02406_ats_uchar_type: tmp689 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) ; tmp690 = DEQUEptrnxt_02425_ats_uchar_type (arg0, tmp689) ; tmp697 = ats_selsin_mac(tmp690, atslab_1) ; ats_ptrget_mac(ats_uchar_type, tmp689) = arg1 ; tmp699 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp698 = atspre_add_size1_int1 (tmp699, 1) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) = tmp698 ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) = tmp697 ; return /* (tmp688) */ ; } /* end of [deque_insert_end_02406_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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 (tmp687) ; __ats_lab_queue_insert_01913_ats_uchar_type: /* tmp687 = */ deque_insert_end_02406_ats_uchar_type (arg0, arg1) ; return /* (tmp687) */ ; } /* end of [queue_insert_01913_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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, tmp705) ; __ats_lab_array_ptr_alloc_01563_ats_uchar_type: tmp705 = atspre_array_ptr_alloc_tsz (arg0, sizeof(ats_uchar_type)) ; return (tmp705) ; } /* end of [array_ptr_alloc_01563_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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, tmp708) ; __ats_lab_deque_update_capacity_02418_ats_uchar_type: tmp708 = atslib_ngc_deque_arr_deque_update_capacity_tsz (arg0, arg1, arg2, sizeof(ats_uchar_type)) ; return (tmp708) ; } /* end of [deque_update_capacity_02418_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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 (tmp703) ; ATSlocal (ats_ptr_type, tmp704) ; ATSlocal (ats_ptr_type, tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; ATSlocal (ats_ptr_type, tmp709) ; __ats_lab_queue_update_capacity_01920_ats_uchar_type: tmp704 = array_ptr_alloc_01563_ats_uchar_type (arg1) ; tmp706 = ats_selsin_mac(tmp704, atslab_2) ; tmp707 = deque_update_capacity_02418_ats_uchar_type (arg0, arg1, tmp706) ; tmp709 = ats_selsin_mac(tmp707, atslab_2) ; /* tmp703 = */ atspre_array_ptr_free (tmp709) ; return /* (tmp703) */ ; } /* end of [queue_update_capacity_01920_ats_uchar_type] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 42533(line=2110, offs=1) -- 43177(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, tmp714) ; tmp714 = loop_92_0loop_ins_93 (1, arg0, arg1, arg2, arg3, arg4, arg5) ; return (tmp714) ; } /* end of [loop_ins_93] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 41727(line=2071, offs=1) -- 43177(line=2139, offs=4) */ ATSstaticdec() ats_size_type loop_92_0loop_ins_93 (ats_int_type arg0, ...) { /* local vardec */ ATSlocal (ats_ref_type, tmp663) ; ATSlocal (ats_ref_type, tmp664) ; ATSlocal (ats_ref_type, tmp665) ; ATSlocal (ats_size_type, tmp666) ; ATSlocal (ats_size_type, tmp667) ; ATSlocal (ats_ref_type, tmp668) ; ATSlocal (ats_ref_type, tmp669) ; ATSlocal (ats_ref_type, tmp670) ; ATSlocal (ats_size_type, tmp671) ; ATSlocal (ats_size_type, tmp672) ; ATSlocal (ats_int_type, tmp673) ; ATSlocal (ats_size_type, tmp674) ; ATSlocal (ats_int_type, tmp675) ; ATSlocal (ats_bool_type, tmp676) ; ATSlocal (ats_char_type, tmp677) ; // ATSlocal_void (tmp678) ; ATSlocal (ats_int_type, tmp679) ; ATSlocal (ats_int_type, tmp680) ; ATSlocal (ats_bool_type, tmp681) ; // ATSlocal_void (tmp682) ; ATSlocal (ats_size_type, tmp683) ; ATSlocal (ats_uchar_type, tmp684) ; ATSlocal (ats_bool_type, tmp685) ; // ATSlocal_void (tmp686) ; ATSlocal (ats_size_type, tmp700) ; ATSlocal (ats_size_type, tmp701) ; // ATSlocal_void (tmp702) ; // ATSlocal_void (tmp710) ; ATSlocal (ats_size_type, tmp711) ; ATSlocal (ats_size_type, tmp712) ; va_list funarg ; switch (arg0) { case 0: va_start(funarg, arg0) ; tmp663 = va_arg(funarg, ats_ref_type) ; tmp664 = va_arg(funarg, ats_ref_type) ; tmp665 = va_arg(funarg, ats_ref_type) ; tmp666 = va_arg(funarg, ats_size_type) ; tmp667 = va_arg(funarg, ats_size_type) ; va_end(funarg) ; goto __ats_lab_loop_92 ; case 1: va_start(funarg, arg0) ; tmp668 = va_arg(funarg, ats_ref_type) ; tmp669 = va_arg(funarg, ats_ref_type) ; tmp670 = va_arg(funarg, ats_ref_type) ; tmp671 = va_arg(funarg, ats_size_type) ; tmp672 = va_arg(funarg, ats_size_type) ; tmp673 = 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: tmp675 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (tmp663, tmp664) ; tmp676 = atspre_gte_int_int (tmp675, 0) ; if (tmp676) { tmp677 = atspre_char_of_int (tmp675) ; /* tmp678 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (tmp664, tmp675) ; do { /* branch: __ats_lab_98 */ __ats_lab_98_0: if (tmp677 != '"') { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp674 = tmp667 ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (tmp677 != '\\') { goto __ats_lab_100_0 ; } __ats_lab_99_1: /* ats_int_type tmp679 ; */ tmp679 = 0 ; tmp680 = lexing_string_char_special_89 (tmp663, tmp664, (&tmp679)) ; tmp681 = atspre_eq_int_int (tmp679, 1) ; if (tmp681) { tmp663 = tmp663 ; tmp664 = tmp664 ; tmp665 = tmp665 ; tmp666 = tmp666 ; tmp667 = tmp667 ; goto __ats_lab_loop_92 ; // tail call } else { tmp668 = tmp663 ; tmp669 = tmp664 ; tmp670 = tmp665 ; tmp671 = tmp666 ; tmp672 = tmp667 ; tmp673 = tmp680 ; goto __ats_lab_loop_ins_93 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: __ats_lab_100_1: tmp668 = tmp663 ; tmp669 = tmp664 ; tmp670 = tmp665 ; tmp671 = tmp666 ; tmp672 = tmp667 ; tmp673 = tmp675 ; goto __ats_lab_loop_ins_93 ; // tail call break ; } while (0) ; } else { /* tmp682 = */ regerr_91 (tmp663, tmp664) ; tmp674 = ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size (tmp665) ; } /* end of [if] */ return tmp674 ; __ats_lab_loop_ins_93: tmp684 = atspre_uchar_of_int (tmp673) ; do { /* branch: __ats_lab_101 */ __ats_lab_101_0: __ats_lab_101_1: tmp685 = atspre_gt_size1_size1 (tmp671, tmp672) ; if (!tmp685) { goto __ats_lab_102_1 ; } /* tmp686 = */ queue_insert_01913_ats_uchar_type (tmp670, tmp684) ; tmp700 = atspre_add_size1_int1 (tmp672, 1) ; tmp663 = tmp668 ; tmp664 = tmp669 ; tmp665 = tmp670 ; tmp666 = tmp671 ; tmp667 = tmp700 ; goto __ats_lab_loop_92 ; // tail call break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: __ats_lab_102_1: tmp701 = atspre_add_size1_size1 (tmp671, tmp671) ; /* tmp702 = */ queue_update_capacity_01920_ats_uchar_type (tmp670, tmp701) ; /* tmp710 = */ queue_insert_01913_ats_uchar_type (tmp670, tmp684) ; tmp711 = atspre_add_size1_int1 (tmp672, 1) ; tmp663 = tmp668 ; tmp664 = tmp669 ; tmp665 = tmp670 ; tmp666 = tmp701 ; tmp667 = tmp711 ; goto __ats_lab_loop_92 ; // tail call break ; } while (0) ; return tmp683 ; return (tmp712) ; } /* end of [loop_92_0loop_ins_93] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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 (tmp720) ; __ats_lab_deque_initialize_02398_ats_uchar_type: /* tmp720 = */ atslib_ngc_deque_arr_deque_initialize_tsz (arg0, arg1, arg2, sizeof(ats_uchar_type)) ; return /* (tmp720) */ ; } /* end of [deque_initialize_02398_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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 (tmp717) ; ATSlocal (ats_ptr_type, tmp718) ; ATSlocal (ats_ptr_type, tmp719) ; __ats_lab_queue_initialize_01907_ats_uchar_type: tmp718 = array_ptr_alloc_01563_ats_uchar_type (arg1) ; tmp719 = ats_selsin_mac(tmp718, atslab_2) ; /* tmp717 = */ deque_initialize_02398_ats_uchar_type (arg0, arg1, tmp719) ; return /* (tmp717) */ ; } /* end of [queue_initialize_01907_ats_uchar_type] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 41477(line=2057, offs=3) -- 43509(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, tmp658) ; ATSlocal (atslib_linqueue_arr_QUEUE, tmp715) ; // ATSlocal_void (tmp716) ; ATSlocal (ats_size_type, tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; // ATSlocal_void (tmp723) ; ATSlocal (ats_ptr_type, tmp724) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DQUOTE: /* atslib_linqueue_arr_QUEUE tmp715 ; */ /* tmp716 = */ queue_initialize_01907_ats_uchar_type ((&tmp715), 128) ; tmp721 = loop_92 (arg0, arg1, (&tmp715), 128, 0) ; tmp722 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__queue_get_strptr1 ((&tmp715), 0, tmp721) ; /* tmp723 = */ atslib_linqueue_arr_queue_uninitialize ((&tmp715)) ; tmp724 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp724)->tag = 154 ; ats_selptrset_mac(anairiats_sum_8, tmp724, atslab_0, ats_castfn_mac(ats_ptr_type, tmp722)) ; tmp658 = lexbufpos_token_reset_53 (arg0, arg1, tmp724) ; return (tmp658) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DQUOTE] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 43585(line=2160, offs=1) -- 43909(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, tmp725) ; ATSlocal (ats_int_type, tmp726) ; ATSlocal (ats_bool_type, tmp727) ; ATSlocal (ats_char_type, tmp728) ; // ATSlocal_void (tmp729) ; __ats_lab_lexing_postfix_103: tmp726 = _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: tmp728 = atspre_char_of_int (tmp726) ; tmp727 = atspre_eq_char_char (arg4, tmp728) ; if (!tmp727) { goto __ats_lab_104_1 ; } /* tmp729 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp725 = lexbufpos_token_reset_53 (arg0, arg1, arg3) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: __ats_lab_104_1: tmp725 = lexbufpos_token_reset_53 (arg0, arg1, arg2) ; break ; } while (0) ; return (tmp725) ; } /* end of [lexing_postfix_103] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 43963(line=2179, offs=1) -- 44388(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, tmp730) ; ATSlocal (ats_int_type, tmp731) ; ATSlocal (ats_char_type, tmp732) ; // ATSlocal_void (tmp733) ; // ATSlocal_void (tmp734) ; __ats_lab_lexing_polarity_104: tmp731 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ; tmp732 = atspre_char_of_int (tmp731) ; do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (tmp732 != '+') { goto __ats_lab_106_0 ; } __ats_lab_105_1: /* tmp733 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp730 = lexbufpos_token_reset_53 (arg0, arg1, arg3) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (tmp732 != '-') { goto __ats_lab_107_0 ; } __ats_lab_106_1: /* tmp734 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp730 = lexbufpos_token_reset_53 (arg0, arg1, arg4) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: __ats_lab_107_1: tmp730 = lexbufpos_token_reset_53 (arg0, arg1, arg2) ; break ; } while (0) ; return (tmp730) ; } /* end of [lexing_polarity_104] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 44445(line=2201, offs=1) -- 44545(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, tmp735) ; __ats_lab_lexing_FOR_105: tmp735 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOR, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FORSTAR, '*') ; return (tmp735) ; } /* end of [lexing_FOR_105] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 44553(line=2207, offs=1) -- 44659(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, tmp736) ; __ats_lab_lexing_WHILE_106: tmp736 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILESTAR, '*') ; return (tmp736) ; } /* end of [lexing_WHILE_106] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 44688(line=2215, offs=1) -- 44799(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, tmp737) ; __ats_lab_lexing_CASE_107: tmp737 = 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 (tmp737) ; } /* end of [lexing_CASE_107] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 44829(line=2222, offs=5) -- 44936(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, tmp738) ; __ats_lab_lexing_VAL_108: tmp738 = 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 (tmp738) ; } /* end of [lexing_VAL_108] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 44986(line=2232, offs=1) -- 45097(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, tmp739) ; __ats_lab_lexing_TYPE_109: tmp739 = 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 (tmp739) ; } /* end of [lexing_TYPE_109] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 45126(line=2239, offs=1) -- 45237(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, tmp740) ; __ats_lab_lexing_TBOX_110: tmp740 = 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 (tmp740) ; } /* end of [lexing_TBOX_110] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 45266(line=2246, offs=1) -- 45379(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, tmp741) ; __ats_lab_lexing_TFLT_111: tmp741 = 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 (tmp741) ; } /* end of [lexing_TFLT_111] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 45411(line=2254, offs=1) -- 45526(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, tmp742) ; __ats_lab_lexing_T0YPE_112: tmp742 = 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 (tmp742) ; } /* end of [lexing_T0YPE_112] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 45734(line=2274, offs=1) -- 45845(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, tmp743) ; __ats_lab_lexing_PROP_113: tmp743 = 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 (tmp743) ; } /* end of [lexing_PROP_113] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 45877(line=2282, offs=1) -- 46366(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, tmp744) ; ATSlocal (ats_int_type, tmp745) ; ATSlocal (ats_char_type, tmp746) ; // ATSlocal_void (tmp747) ; // ATSlocal_void (tmp748) ; // ATSlocal_void (tmp749) ; __ats_lab_lexing_VIEW_114: tmp745 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ; tmp746 = atspre_char_of_int (tmp745) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (tmp746 != '@') { goto __ats_lab_109_0 ; } __ats_lab_108_1: /* tmp747 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp744 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWAT) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (tmp746 != '+') { goto __ats_lab_110_0 ; } __ats_lab_109_1: /* tmp748 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp744 = 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 (tmp746 != '-') { goto __ats_lab_111_0 ; } __ats_lab_110_1: /* tmp749 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp744 = 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: tmp744 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW) ; break ; } while (0) ; return (tmp744) ; } /* end of [lexing_VIEW_114] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 46398(line=2305, offs=1) -- 46519(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, tmp750) ; __ats_lab_lexing_VTYPE_115: tmp750 = 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 (tmp750) ; } /* end of [lexing_VTYPE_115] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 46549(line=2312, offs=1) -- 46670(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, tmp751) ; __ats_lab_lexing_VTBOX_116: tmp751 = 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 (tmp751) ; } /* end of [lexing_VTBOX_116] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 46700(line=2319, offs=1) -- 46823(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, tmp752) ; __ats_lab_lexing_VTFLT_117: tmp752 = 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 (tmp752) ; } /* end of [lexing_VTFLT_117] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 46856(line=2327, offs=1) -- 46983(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, tmp753) ; __ats_lab_lexing_VIEWTYPE_118: tmp753 = 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 (tmp753) ; } /* end of [lexing_VIEWTYPE_118] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 47016(line=2334, offs=1) -- 47147(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, tmp754) ; __ats_lab_lexing_VIEWT0YPE_119: tmp754 = 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 (tmp754) ; } /* end of [lexing_VIEWT0YPE_119] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 47205(line=2343, offs=5) -- 47303(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, tmp755) ; __ats_lab_lexing_LAM_120: tmp755 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAM, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAMAT, '@') ; return (tmp755) ; } /* end of [lexing_LAM_120] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 47308(line=2347, offs=5) -- 47409(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, tmp756) ; __ats_lab_lexing_LLAM_121: tmp756 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAM, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAMAT, '@') ; return (tmp756) ; } /* end of [lexing_LLAM_121] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 47417(line=2352, offs=5) -- 47515(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, tmp757) ; __ats_lab_lexing_FIX_122: tmp757 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIX, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIXAT, '@') ; return (tmp757) ; } /* end of [lexing_FIX_122] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 47677(line=2368, offs=5) -- 47778(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, tmp758) ; __ats_lab_lexing_ADDR_123: tmp758 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDR, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDRAT, '@') ; return (tmp758) ; } /* end of [lexing_ADDR_123] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 47786(line=2373, offs=5) -- 47887(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, tmp759) ; __ats_lab_lexing_FOLD_124: tmp759 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLD, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLDAT, '@') ; return (tmp759) ; } /* end of [lexing_FOLD_124] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 47895(line=2378, offs=5) -- 47996(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, tmp760) ; __ats_lab_lexing_FREE_125: tmp760 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREEAT, '@') ; return (tmp760) ; } /* end of [lexing_FREE_125] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 48050(line=2387, offs=3) -- 48891(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, tmp761) ; ATSlocal (ats_int_type, tmp762) ; ATSlocal (ats_char_type, tmp763) ; // ATSlocal_void (tmp764) ; ATSlocal (ats_ptr_type, tmp765) ; ATSlocal (ats_ptr_type, tmp766) ; // ATSlocal_void (tmp767) ; ATSlocal (ats_ptr_type, tmp768) ; ATSlocal (ats_ptr_type, tmp769) ; // ATSlocal_void (tmp770) ; ATSlocal (ats_ptr_type, tmp771) ; ATSlocal (ats_ptr_type, tmp772) ; ATSlocal (ats_ptr_type, tmp773) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_alp: tmp762 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ; tmp763 = atspre_char_of_int (tmp762) ; do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (tmp763 != '<') { goto __ats_lab_113_0 ; } __ats_lab_112_1: /* tmp764 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp765 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ; tmp766 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp766)->tag = 146 ; ats_selptrset_mac(anairiats_sum_8, tmp766, atslab_0, ats_castfn_mac(ats_ptr_type, tmp765)) ; tmp761 = lexbufpos_token_reset_53 (arg0, arg1, tmp766) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (tmp763 != '[') { goto __ats_lab_114_0 ; } __ats_lab_113_1: /* tmp767 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp768 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ; tmp769 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp769)->tag = 145 ; ats_selptrset_mac(anairiats_sum_8, tmp769, atslab_0, ats_castfn_mac(ats_ptr_type, tmp768)) ; tmp761 = lexbufpos_token_reset_53 (arg0, arg1, tmp769) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (tmp763 != '!') { goto __ats_lab_115_0 ; } __ats_lab_114_1: /* tmp770 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp771 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ; tmp772 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp772)->tag = 149 ; ats_selptrset_mac(anairiats_sum_8, tmp772, atslab_0, ats_castfn_mac(ats_ptr_type, tmp771)) ; tmp761 = lexbufpos_token_reset_53 (arg0, arg1, tmp772) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: __ats_lab_115_1: tmp773 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ; tmp761 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT2_alp (arg0, arg1, tmp773) ; break ; } while (0) ; return (tmp761) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_alp] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 48976(line=2434, offs=6) -- 52999(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, tmp774) ; ATSlocal (ats_ptr_type, tmp775) ; ATSlocal (ats_bool_type, tmp776) ; ATSlocal (ats_int_type, tmp777) ; // ATSlocal_void (tmp778) ; ATSlocal (ats_bool_type, tmp779) ; ATSlocal (ats_int_type, tmp780) ; // ATSlocal_void (tmp781) ; ATSlocal (ats_bool_type, tmp782) ; ATSlocal (ats_int_type, tmp783) ; // ATSlocal_void (tmp784) ; // ATSlocal_void (tmp785) ; ATSlocal (ats_bool_type, tmp786) ; ATSlocal (ats_int_type, tmp787) ; // ATSlocal_void (tmp788) ; ATSlocal (ats_bool_type, tmp789) ; ATSlocal (ats_int_type, tmp790) ; // ATSlocal_void (tmp791) ; // ATSlocal_void (tmp792) ; // ATSlocal_void (tmp793) ; // ATSlocal_void (tmp794) ; // ATSlocal_void (tmp795) ; // ATSlocal_void (tmp796) ; // ATSlocal_void (tmp797) ; // ATSlocal_void (tmp798) ; // ATSlocal_void (tmp799) ; // ATSlocal_void (tmp800) ; // ATSlocal_void (tmp801) ; ATSlocal (ats_bool_type, tmp802) ; ATSlocal (ats_int_type, tmp803) ; // ATSlocal_void (tmp804) ; // ATSlocal_void (tmp805) ; // ATSlocal_void (tmp806) ; // ATSlocal_void (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 (ats_ptr_type, tmp816) ; ATSlocal (ats_ptr_type, tmp817) ; // ATSlocal_void (tmp818) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT2_alp: tmp775 = 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)tmp775)->tag != 25) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp777 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ; tmp776 = atspre_gte_int_int (tmp777, 0) ; if (!tmp776) { goto __ats_lab_144_1 ; } /* tmp778 = */ atspre_strptr_free (arg2) ; tmp774 = 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)tmp775)->tag != 26) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ; tmp779 = atspre_gte_int_int (tmp780, 0) ; if (!tmp779) { goto __ats_lab_144_1 ; } /* tmp781 = */ atspre_strptr_free (arg2) ; tmp774 = 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)tmp775)->tag != 27) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp783 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ; tmp782 = atspre_gte_int_int (tmp783, 0) ; if (!tmp782) { goto __ats_lab_144_1 ; } /* tmp784 = */ atspre_strptr_free (arg2) ; tmp774 = 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)tmp775)->tag != 2) { goto __ats_lab_120_0 ; } __ats_lab_119_1: /* tmp785 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_CASE_107 (arg0, arg1) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp775)->tag != 9) { goto __ats_lab_121_0 ; } __ats_lab_120_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) ; tmp774 = lexing_T0YPE_112 (arg0, arg1) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp775)->tag != 10) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp790 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ; tmp789 = atspre_gte_int_int (tmp790, 0) ; if (!tmp789) { goto __ats_lab_144_1 ; } /* tmp791 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VIEWT0YPE_119 (arg0, arg1) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp775)->tag != 11) { goto __ats_lab_123_0 ; } __ats_lab_122_1: /* tmp792 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_PROP_113 (arg0, arg1) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp775)->tag != 12) { goto __ats_lab_124_0 ; } __ats_lab_123_1: /* tmp793 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VIEW_114 (arg0, arg1) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp775)->tag != 13) { goto __ats_lab_125_0 ; } __ats_lab_124_1: /* tmp794 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_TYPE_109 (arg0, arg1) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp775)->tag != 14) { goto __ats_lab_126_0 ; } __ats_lab_125_1: /* tmp795 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_TBOX_110 (arg0, arg1) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp775)->tag != 15) { goto __ats_lab_127_0 ; } __ats_lab_126_1: /* tmp796 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_TFLT_111 (arg0, arg1) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp775)->tag != 17) { goto __ats_lab_128_0 ; } __ats_lab_127_1: /* tmp797 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VTYPE_115 (arg0, arg1) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp775)->tag != 18) { goto __ats_lab_129_0 ; } __ats_lab_128_1: /* tmp798 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VTBOX_116 (arg0, arg1) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp775)->tag != 19) { goto __ats_lab_130_0 ; } __ats_lab_129_1: /* tmp799 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VTFLT_117 (arg0, arg1) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp775)->tag != 20) { goto __ats_lab_131_0 ; } __ats_lab_130_1: /* tmp800 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_T0YPE_112 (arg0, arg1) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp775)->tag != 21) { goto __ats_lab_132_0 ; } __ats_lab_131_1: /* tmp801 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VIEWT0YPE_119 (arg0, arg1) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp775)->tag != 22) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp803 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ; tmp802 = atspre_gte_int_int (tmp803, 0) ; if (!tmp802) { goto __ats_lab_144_1 ; } /* tmp804 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VIEWT0YPE_119 (arg0, arg1) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp775)->tag != 23) { goto __ats_lab_134_0 ; } __ats_lab_133_1: /* tmp805 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VIEWTYPE_118 (arg0, arg1) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp775)->tag != 24) { goto __ats_lab_135_0 ; } __ats_lab_134_1: /* tmp806 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VIEWT0YPE_119 (arg0, arg1) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp775)->tag != 1) { goto __ats_lab_136_0 ; } __ats_lab_135_1: /* tmp807 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_VAL_108 (arg0, arg1) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp775)->tag != 28) { goto __ats_lab_137_0 ; } __ats_lab_136_1: /* tmp808 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_FOR_105 (arg0, arg1) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp775)->tag != 29) { goto __ats_lab_138_0 ; } __ats_lab_137_1: /* tmp809 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_WHILE_106 (arg0, arg1) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp775)->tag != 3) { goto __ats_lab_139_0 ; } __ats_lab_138_1: /* tmp810 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_ADDR_123 (arg0, arg1) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp775)->tag != 4) { goto __ats_lab_140_0 ; } __ats_lab_139_1: /* tmp811 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_FOLD_124 (arg0, arg1) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)tmp775)->tag != 5) { goto __ats_lab_141_0 ; } __ats_lab_140_1: /* tmp812 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_FREE_125 (arg0, arg1) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp775)->tag != 7) { goto __ats_lab_142_0 ; } __ats_lab_141_1: /* tmp813 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_LAM_120 (arg0, arg1) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp775)->tag != 8) { goto __ats_lab_143_0 ; } __ats_lab_142_1: /* tmp814 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_LLAM_121 (arg0, arg1) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp775)->tag != 6) { goto __ats_lab_144_0 ; } __ats_lab_143_1: /* tmp815 = */ atspre_strptr_free (arg2) ; tmp774 = lexing_FIX_122 (arg0, arg1) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: __ats_lab_144_1: tmp816 = _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)tmp816)->tag != 0) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp817 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp817)->tag = 143 ; ats_selptrset_mac(anairiats_sum_8, tmp817, atslab_0, ats_castfn_mac(ats_ptr_type, arg2)) ; tmp774 = lexbufpos_token_reset_53 (arg0, arg1, tmp817) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: __ats_lab_146_1: /* tmp818 = */ atspre_strptr_free (arg2) ; tmp774 = lexbufpos_token_reset_53 (arg0, arg1, tmp816) ; break ; } while (0) ; break ; } while (0) ; return (tmp774) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT2_alp] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 53081(line=2584, offs=3) -- 54570(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, tmp819) ; ATSlocal (ats_ptr_type, tmp820) ; ATSlocal (ats_ptr_type, tmp821) ; // ATSlocal_void (tmp822) ; // ATSlocal_void (tmp823) ; // ATSlocal_void (tmp824) ; // ATSlocal_void (tmp825) ; // ATSlocal_void (tmp826) ; ATSlocal (ats_ptr_type, tmp827) ; ATSlocal (ats_ptr_type, tmp828) ; // ATSlocal_void (tmp829) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym: tmp820 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ; tmp821 = IDENT_sym_get_lexsym_16 (ats_castfn_mac(ats_ptr_type, tmp820)) ; do { /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp821)->tag != 30) { goto __ats_lab_148_0 ; } __ats_lab_147_1: /* tmp822 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_decby_count (arg1, 1u) ; /* tmp823 = */ atspre_strptr_free (tmp820) ; tmp819 = 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)tmp821)->tag != 31) { goto __ats_lab_149_0 ; } __ats_lab_148_1: /* tmp824 = */ atspre_strptr_free (tmp820) ; tmp819 = _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)tmp821)->tag != 32) { goto __ats_lab_150_0 ; } __ats_lab_149_1: /* tmp825 = */ atspre_strptr_free (tmp820) ; tmp819 = _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)tmp821)->tag != 33) { goto __ats_lab_151_0 ; } __ats_lab_150_1: /* tmp826 = */ atspre_strptr_free (tmp820) ; tmp819 = _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: tmp827 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search (ats_castfn_mac(ats_ptr_type, tmp820)) ; do { /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)tmp827)->tag != 0) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp828 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp828)->tag = 144 ; ats_selptrset_mac(anairiats_sum_8, tmp828, atslab_0, ats_castfn_mac(ats_ptr_type, tmp820)) ; tmp819 = lexbufpos_token_reset_53 (arg0, arg1, tmp828) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: __ats_lab_153_1: /* tmp829 = */ atspre_strptr_free (tmp820) ; tmp819 = lexbufpos_token_reset_53 (arg0, arg1, tmp827) ; break ; } while (0) ; break ; } while (0) ; return (tmp819) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 54651(line=2649, offs=3) -- 55148(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, tmp830) ; ATSlocal (ats_ptr_type, tmp831) ; ATSlocal (ats_ptr_type, tmp832) ; ATSlocal (ats_ptr_type, tmp833) ; // ATSlocal_void (tmp834) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_dlr: tmp831 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ; tmp832 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search (ats_castfn_mac(ats_ptr_type, tmp831)) ; do { /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)tmp832)->tag != 0) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp833 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp833)->tag = 147 ; ats_selptrset_mac(anairiats_sum_8, tmp833, atslab_0, ats_castfn_mac(ats_ptr_type, tmp831)) ; tmp830 = lexbufpos_token_reset_53 (arg0, arg1, tmp833) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: __ats_lab_155_1: /* tmp834 = */ atspre_strptr_free (tmp831) ; tmp830 = lexbufpos_token_reset_53 (arg0, arg1, tmp832) ; break ; } while (0) ; return (tmp830) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_dlr] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 55229(line=2681, offs=3) -- 55736(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, tmp835) ; ATSlocal (ats_ptr_type, tmp836) ; ATSlocal (ats_ptr_type, tmp837) ; ATSlocal (ats_ptr_type, tmp838) ; // ATSlocal_void (tmp839) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_srp: tmp836 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ; tmp837 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search (ats_castfn_mac(ats_ptr_type, tmp836)) ; do { /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)tmp837)->tag != 0) { goto __ats_lab_157_0 ; } __ats_lab_156_1: tmp838 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp838)->tag = 148 ; ats_selptrset_mac(anairiats_sum_8, tmp838, atslab_0, ats_castfn_mac(ats_ptr_type, tmp836)) ; tmp835 = lexbufpos_token_reset_53 (arg0, arg1, tmp838) ; break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: __ats_lab_157_1: /* tmp839 = */ atspre_strptr_free (tmp836) ; tmp835 = lexbufpos_token_reset_53 (arg0, arg1, tmp837) ; break ; } while (0) ; return (tmp835) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_srp] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 55821(line=2717, offs=3) -- 56029(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, tmp840) ; ATSlocal (ats_uint_type, tmp841) ; ATSlocal (ats_ptr_type, tmp842) ; ATSlocal (ats_ptr_type, tmp843) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_deciexp: tmp841 = testing_floatspseq0_47 (arg0, arg1) ; tmp842 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (arg0, arg1) ; tmp843 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp843)->tag = 152 ; ats_selptrset_mac(anairiats_sum_9, tmp843, atslab_0, 10) ; ats_selptrset_mac(anairiats_sum_9, tmp843, atslab_1, ats_castfn_mac(ats_ptr_type, tmp842)) ; ats_selptrset_mac(anairiats_sum_9, tmp843, atslab_2, tmp841) ; tmp840 = lexbufpos_token_reset_53 (arg0, arg1, tmp843) ; return (tmp840) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_deciexp] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 56118(line=2729, offs=3) -- 56326(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, 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_hexiexp: 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, 16) ; 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_hexiexp] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 56409(line=2741, offs=3) -- 56938(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, tmp848) ; ATSlocal (ats_bool_type, tmp849) ; ATSlocal (ats_int_type, tmp850) ; ATSlocal (ats_bool_type, tmp851) ; ATSlocal (ats_int_type, tmp852) ; ATSlocal (ats_uint_type, tmp853) ; ATSlocal (ats_ptr_type, tmp854) ; ATSlocal (ats_ptr_type, tmp855) ; __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: tmp850 = testing_deciexp_50 (arg0, arg1) ; tmp849 = atspre_gte_int_int (tmp850, 0) ; if (!tmp849) { goto __ats_lab_159_1 ; } tmp848 = _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: tmp852 = testing_fexponent_48 (arg0, arg1) ; tmp851 = atspre_gte_int_int (tmp852, 0) ; if (!tmp851) { goto __ats_lab_160_1 ; } tmp848 = _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: tmp853 = testing_intspseq0_46 (arg0, arg1) ; tmp854 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (arg0, arg1) ; tmp855 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp855)->tag = 150 ; ats_selptrset_mac(anairiats_sum_9, tmp855, atslab_0, 10) ; ats_selptrset_mac(anairiats_sum_9, tmp855, atslab_1, ats_castfn_mac(ats_ptr_type, tmp854)) ; ats_selptrset_mac(anairiats_sum_9, tmp855, atslab_2, tmp853) ; tmp848 = lexbufpos_token_reset_53 (arg0, arg1, tmp855) ; break ; } while (0) ; return (tmp848) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_dec] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 57015(line=2771, offs=3) -- 57364(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, tmp856) ; ATSlocal (ats_bool_type, tmp857) ; ATSlocal (ats_uint_type, tmp858) ; ATSlocal (ats_ptr_type, tmp859) ; ATSlocal (ats_ptr_type, tmp860) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_oct: tmp857 = atspre_eq_uint_uint (arg2, 0u) ; if (tmp857) { tmp856 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_dec (arg0, arg1) ; } else { tmp858 = testing_intspseq0_46 (arg0, arg1) ; tmp859 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (arg0, arg1) ; tmp860 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp860)->tag = 150 ; ats_selptrset_mac(anairiats_sum_9, tmp860, atslab_0, 8) ; ats_selptrset_mac(anairiats_sum_9, tmp860, atslab_1, ats_castfn_mac(ats_ptr_type, tmp859)) ; ats_selptrset_mac(anairiats_sum_9, tmp860, atslab_2, tmp858) ; tmp856 = lexbufpos_token_reset_53 (arg0, arg1, tmp860) ; } /* end of [if] */ return (tmp856) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_oct] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 57441(line=2801, offs=3) -- 58500(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, tmp861) ; ATSlocal (ats_bool_type, tmp862) ; ATSlocal (ats_int_type, tmp863) ; ATSlocal (ats_bool_type, tmp864) ; ATSlocal (ats_int_type, tmp865) ; // ATSlocal_void (tmp866) ; ATSlocal (ats_bool_type, tmp867) ; ATSlocal (ats_ptr_type, tmp868) ; ATSlocal (ats_ptr_type, tmp869) ; ATSlocal (ats_ptr_type, tmp870) ; ATSlocal (ats_uint_type, tmp871) ; ATSlocal (ats_ptr_type, tmp872) ; // ATSlocal_void (tmp873) ; ATSlocal (ats_bool_type, tmp874) ; ATSlocal (ats_ptr_type, tmp875) ; ATSlocal (ats_ptr_type, tmp876) ; ATSlocal (ats_ptr_type, tmp877) ; ATSlocal (ats_ptr_type, tmp878) ; __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: tmp863 = testing_hexiexp_51 (arg0, arg1, arg2) ; tmp862 = atspre_gte_int_int (tmp863, 0) ; if (!tmp862) { goto __ats_lab_162_1 ; } tmp861 = _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: tmp865 = testing_fexponent_bin_49 (arg0, arg1) ; tmp864 = atspre_gte_int_int (tmp865, 0) ; if (!tmp864) { goto __ats_lab_163_1 ; } tmp867 = atspre_eq_uint_uint (arg2, 0u) ; if (tmp867) { tmp868 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ; tmp870 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FINTFRAC_missing_13) ; tmp869 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp868, tmp870) ; /* tmp866 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp869) ; } else { /* empty */ } /* end of [if] */ tmp861 = _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: tmp871 = testing_intspseq0_46 (arg0, arg1) ; tmp872 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (arg0, arg1) ; tmp874 = atspre_eq_uint_uint (arg2, 0u) ; if (tmp874) { tmp875 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ; tmp877 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_IDIGITS_empty_10) ; tmp876 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp875, tmp877) ; /* tmp873 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp876) ; } else { /* empty */ } /* end of [if] */ tmp878 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp878)->tag = 150 ; ats_selptrset_mac(anairiats_sum_9, tmp878, atslab_0, 16) ; ats_selptrset_mac(anairiats_sum_9, tmp878, atslab_1, ats_castfn_mac(ats_ptr_type, tmp872)) ; ats_selptrset_mac(anairiats_sum_9, tmp878, atslab_2, tmp871) ; tmp861 = lexbufpos_token_reset_53 (arg0, arg1, tmp878) ; break ; } while (0) ; return (tmp861) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_hex] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 58637(line=2852, offs=3) -- 59237(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, tmp879) ; ATSlocal (ats_int_type, tmp880) ; ATSlocal (ats_bool_type, tmp881) ; ATSlocal (ats_char_type, tmp882) ; ATSlocal (ats_bool_type, tmp883) ; // ATSlocal_void (tmp884) ; ATSlocal (ats_uint_type, tmp885) ; ATSlocal (ats_uint_type, tmp886) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_ZERO: tmp880 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ; tmp881 = atspre_gte_int_int (tmp880, 0) ; if (tmp881) { tmp882 = atspre_char_of_int (tmp880) ; do { /* branch: __ats_lab_164 */ __ats_lab_164_0: __ats_lab_164_1: tmp883 = xX_test_21 (tmp882) ; if (!tmp883) { goto __ats_lab_165_1 ; } /* tmp884 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ; tmp885 = testing_xdigitseq0_45 (arg0, arg1) ; tmp879 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_hex (arg0, arg1, tmp885) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: __ats_lab_165_1: tmp886 = testing_octalseq0_41 (arg0, arg1) ; tmp879 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_oct (arg0, arg1, tmp886) ; break ; } while (0) ; } else { tmp879 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INTZERO) ; } /* end of [if] */ return (tmp879) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_ZERO] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 59314(line=2891, offs=3) -- 61786(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, tmp887) ; ATSlocal (pats_position_struct, tmp888) ; // ATSlocal_void (tmp889) ; ATSlocal (ats_uint_type, tmp890) ; // ATSlocal_void (tmp891) ; // ATSlocal_void (tmp892) ; ATSlocal (ats_int_type, tmp893) ; ATSlocal (ats_bool_type, tmp894) ; ATSlocal (ats_char_type, tmp895) ; // ATSlocal_void (tmp896) ; ATSlocal (ats_bool_type, tmp897) ; ATSlocal (ats_bool_type, tmp898) ; ATSlocal (ats_ptr_type, tmp899) ; ATSlocal (ats_bool_type, tmp900) ; ATSlocal (ats_ptr_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_bool_type, tmp909) ; ATSlocal (ats_ptr_type, tmp910) ; ATSlocal (ats_bool_type, tmp911) ; ATSlocal (ats_bool_type, tmp912) ; ATSlocal (ats_bool_type, tmp913) ; ATSlocal (ats_bool_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_ptr_type, tmp921) ; ATSlocal (ats_bool_type, tmp922) ; ATSlocal (ats_uint_type, tmp923) ; ATSlocal (ats_uint_type, tmp924) ; ATSlocal (ats_bool_type, tmp925) ; ATSlocal (ats_uint_type, tmp926) ; ATSlocal (ats_uint_type, tmp927) ; ATSlocal (ats_bool_type, tmp928) ; ATSlocal (ats_bool_type, tmp929) ; ATSlocal (ats_uint_type, tmp930) ; ATSlocal (ats_ptr_type, tmp931) ; ATSlocal (ats_ptr_type, tmp932) ; ATSlocal (ats_ptr_type, tmp933) ; // ATSlocal_void (tmp934) ; // ATSlocal_void (tmp935) ; ATSlocal (ats_ptr_type, tmp936) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token: /* pats_position_struct tmp888 ; */ /* tmp889 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position (arg0, (&tmp888)) ; tmp890 = testing_blankseq0_34 (arg0, (&tmp888)) ; /* tmp891 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_nspace (arg0, ats_castfn_mac(ats_int_type, tmp890)) ; /* tmp892 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position (arg0, (&tmp888)) ; tmp893 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (arg0, 0u) ; tmp894 = atspre_gte_int_int (tmp893, 0) ; if (tmp894) { tmp895 = atspre_char_of_int (tmp893) ; /* tmp896 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char ((&tmp888), tmp893) ; do { /* branch: __ats_lab_166 */ __ats_lab_166_0: __ats_lab_166_1: tmp897 = atspre_eq_char_char (tmp895, '(') ; if (!tmp897) { goto __ats_lab_167_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_LPAREN (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: __ats_lab_167_1: tmp898 = atspre_eq_char_char (tmp895, ')') ; if (!tmp898) { goto __ats_lab_168_1 ; } tmp899 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RPAREN_158) ; tmp887 = lexbufpos_token_reset_53 (arg0, (&tmp888), tmp899) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: __ats_lab_168_1: tmp900 = atspre_eq_char_char (tmp895, '[') ; if (!tmp900) { goto __ats_lab_169_1 ; } tmp901 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACKET_159) ; tmp887 = lexbufpos_token_reset_53 (arg0, (&tmp888), tmp901) ; break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: __ats_lab_169_1: tmp902 = atspre_eq_char_char (tmp895, ']') ; if (!tmp902) { goto __ats_lab_170_1 ; } tmp903 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACKET_160) ; tmp887 = lexbufpos_token_reset_53 (arg0, (&tmp888), tmp903) ; break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: __ats_lab_170_1: tmp904 = atspre_eq_char_char (tmp895, '{') ; if (!tmp904) { goto __ats_lab_171_1 ; } tmp905 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACE_161) ; tmp887 = lexbufpos_token_reset_53 (arg0, (&tmp888), tmp905) ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: __ats_lab_171_1: tmp906 = atspre_eq_char_char (tmp895, '}') ; if (!tmp906) { goto __ats_lab_172_1 ; } tmp907 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACE_162) ; tmp887 = lexbufpos_token_reset_53 (arg0, (&tmp888), tmp907) ; break ; /* branch: __ats_lab_172 */ __ats_lab_172_0: __ats_lab_172_1: tmp908 = atspre_eq_char_char (tmp895, ',') ; if (!tmp908) { goto __ats_lab_173_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMA (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: __ats_lab_173_1: tmp909 = atspre_eq_char_char (tmp895, ';') ; if (!tmp909) { goto __ats_lab_174_1 ; } tmp910 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SEMICOLON_156) ; tmp887 = lexbufpos_token_reset_53 (arg0, (&tmp888), tmp910) ; break ; /* branch: __ats_lab_174 */ __ats_lab_174_0: __ats_lab_174_1: tmp911 = atspre_eq_char_char (tmp895, '@') ; if (!tmp911) { goto __ats_lab_175_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_AT (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: __ats_lab_175_1: tmp912 = atspre_eq_char_char (tmp895, ':') ; if (!tmp912) { goto __ats_lab_176_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COLON (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: __ats_lab_176_1: tmp913 = atspre_eq_char_char (tmp895, '.') ; if (!tmp913) { goto __ats_lab_177_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOT (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: __ats_lab_177_1: tmp914 = atspre_eq_char_char (tmp895, '$') ; if (!tmp914) { goto __ats_lab_178_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOLLAR (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: __ats_lab_178_1: tmp915 = atspre_eq_char_char (tmp895, '#') ; if (!tmp915) { goto __ats_lab_179_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_SHARP (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: __ats_lab_179_1: tmp916 = atspre_eq_char_char (tmp895, '%') ; if (!tmp916) { goto __ats_lab_180_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_PERCENT (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: __ats_lab_180_1: tmp917 = atspre_eq_char_char (tmp895, '\'') ; if (!tmp917) { goto __ats_lab_181_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_QUOTE (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: __ats_lab_181_1: tmp918 = atspre_eq_char_char (tmp895, '"') ; if (!tmp918) { goto __ats_lab_182_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DQUOTE (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: __ats_lab_182_1: tmp919 = atspre_eq_char_char (tmp895, '`') ; if (!tmp919) { goto __ats_lab_183_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_BQUOTE (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: __ats_lab_183_1: tmp920 = atspre_eq_char_char (tmp895, '\\') ; if (!tmp920) { goto __ats_lab_184_1 ; } tmp921 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BACKSLASH_5) ; tmp887 = lexbufpos_token_reset_53 (arg0, (&tmp888), tmp921) ; break ; /* branch: __ats_lab_184 */ __ats_lab_184_0: __ats_lab_184_1: tmp922 = IDENTFST_test_18 (tmp895) ; if (!tmp922) { goto __ats_lab_185_1 ; } tmp923 = testing_identrstseq0_39 (arg0, (&tmp888)) ; tmp924 = atspre_succ_uint (tmp923) ; tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_alp (arg0, (&tmp888), tmp924) ; break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: __ats_lab_185_1: tmp925 = SYMBOLIC_test_20 (tmp895) ; if (!tmp925) { goto __ats_lab_186_1 ; } tmp926 = testing_symbolicseq0_40 (arg0, (&tmp888)) ; tmp927 = atspre_succ_uint (tmp926) ; tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (arg0, (&tmp888), tmp927) ; break ; /* branch: __ats_lab_186 */ __ats_lab_186_0: __ats_lab_186_1: tmp928 = atspre_eq_char_char (tmp895, '0') ; if (!tmp928) { goto __ats_lab_187_1 ; } tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_ZERO (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: __ats_lab_187_1: tmp929 = DIGIT_test_22 (tmp895) ; if (!tmp929) { goto __ats_lab_188_1 ; } tmp930 = testing_digitseq0_44 (arg0, (&tmp888)) ; tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_dec (arg0, (&tmp888)) ; break ; /* branch: __ats_lab_188 */ __ats_lab_188_0: __ats_lab_188_1: tmp931 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, (&tmp888)) ; tmp933 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp933)->tag = 14 ; ats_selptrset_mac(anairiats_sum_3, tmp933, atslab_0, tmp895) ; tmp932 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp931, tmp933) ; /* tmp934 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp932) ; /* tmp935 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position (arg0, (&tmp888)) ; arg0 = arg0 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token ; // tail call break ; } while (0) ; } else { tmp936 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EOF_178) ; tmp887 = lexbufpos_token_reset_53 (arg0, (&tmp888), tmp936) ; } /* end of [if] */ return (tmp887) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token] */ /* // /tmp/ATS-Postiats/src/pats_lexing.dats: 61875(line=2998, offs=3) -- 62247(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, tmp937) ; ATSlocal (ats_ptr_type, tmp938) ; ATSlocal (ats_ptr_type, tmp939) ; ATSlocal (ats_ptr_type, tmp940) ; ATSlocal (ats_ptr_type, tmp941) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token_ncmnt: tmp938 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token (arg0) ; tmp939 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp938), atslab_token_node) ; do { /* branch: __ats_lab_189 */ __ats_lab_189_0: if (((ats_sum_ptr_type)tmp939)->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)tmp939)->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)tmp939)->tag != 175) { goto __ats_lab_192_0 ; } __ats_lab_191_1: tmp940 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp938), atslab_token_loc) ; tmp941 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EOF_178) ; tmp937 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make (tmp940, tmp941) ; break ; /* branch: __ats_lab_192 */ __ats_lab_192_0: __ats_lab_192_1: tmp937 = tmp938 ; break ; } while (0) ; return (tmp937) ; } /* 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] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_tokbuf_sats.c0000644000175000017500000000317413431250607022043 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ #include "pats_tokbuf.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ 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 _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_tokbuf_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lexing.cats0000644000175000017500000000375213431250607021517 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_LEXING_CATS #define POSTIATS_SRC_PATS_LEXING_CATS /* ****** ****** */ typedef struct { // ats_empty_type empty ; // ats_lint_type sta_ntot ; /* ats_int_type sta_nlin ; ats_int_type sta_noff ; */ // ats_lint_type cur_ntot ; /* ats_int_type cur_nlin ; ats_int_type cur_noff ; */ // ats_int_type cur_char ; // ats_int_type leading_space ; // ats_uint_type nchr ; ats_ptr_type charbuf ; // queueref (char) // ats_ptr_type getchar ; // () - int // } pats_lexstate_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_LEXING_CATS] /* ****** ****** */ /* end of [pats_lexing.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_d2env_dats.c0000644000175000017500000021647013431250607022736 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_2 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_ccomp_d2env_2edats__D2ENV_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_bool_type, atspre_ilte) (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_int_type, atspre_imax) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_size_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__d2envset_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__d2env_type = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__D2ENV_0) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type __ats_fun_4 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_4_closure_make () ; static ats_int_type __ats_fun_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_make_nil_05136_ () ; static ats_void_type aux_9 (ats_ptr_type arg0) ; static ats_void_type linset_free_05143_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type compare_elt_elt_05135_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_01871_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_01925_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_01901_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_12 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type insert_12_closure_make (ats_clo_ref_type env0) ; static ats_bool_type insert_12_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linset_insert_05145_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_05160_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_22 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_free_05161_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_28 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_28_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_28_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01723_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp11) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 1972(line=73, offs=15) -- 2023(line=75, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var: // tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp0 = tmp1 ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2079(line=78, offs=16) -- 2130(line=80, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type: // tmp3 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp2 = tmp3 ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2183(line=83, offs=12) -- 2212(line=83, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make: tmp4 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp4, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp4, atslab_1, arg1) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2278(line=90, offs=11) -- 2534(line=108, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2var2env (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2var2env: tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp (arg0) ; if (tmp6 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2471(line=105, offs=5) -- 2486(line=105, offs=20)") ; } tmp7 = ats_caselptrlab_mac(anairiats_sum_1, tmp6, atslab_0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make (arg0, tmp7) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2var2env] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2731(line=120, offs=11) -- 2853(line=124, offs=72) */ ATSstaticdec() ats_int_type __ats_fun_4 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab___ats_fun_4: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (arg0) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (arg1) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (tmp9, tmp10) ; return (tmp8) ; } /* end of [__ats_fun_4] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_4_closure_type ; ats_int_type __ats_fun_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_4 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_4_closure_init (__ats_fun_4_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_4_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_4_closure_make () { __ats_fun_4_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_4_closure_type)) ; __ats_fun_4_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26) */ ATSstaticdec() ats_ptr_type linset_make_nil_05136_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_linset_make_nil_05136_: tmp13 = (ats_sum_ptr_type)0 ; return (tmp13) ; } /* end of [linset_make_nil_05136_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2921(line=130, offs=17) -- 2948(line=130, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil: tmp12 = linset_make_nil_05136_ () ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18) */ ATSstaticdec() ats_void_type aux_9 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; __ats_lab_aux_9: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_2) ; tmp18 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_3) ; ATS_FREE(arg0) ; /* tmp19 = */ aux_9 (tmp17) ; arg0 = tmp18 ; goto __ats_lab_aux_9 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp16) */ ; } /* end of [aux_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4410(line=170, offs=13) -- 4591(line=179, offs=4) */ ATSstaticdec() ats_void_type linset_free_05143_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp15) ; __ats_lab_linset_free_05143_ats_ptr_type: /* tmp15 = */ aux_9 (arg0) ; return /* (tmp15) */ ; } /* end of [linset_free_05143_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2977(line=133, offs=18) -- 3003(line=133, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_free: /* tmp14 = */ linset_free_05143_ats_ptr_type (arg0) ; return /* (tmp14) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45) */ ATSstaticdec() ats_int_type compare_elt_elt_05135_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp30) ; __ats_lab_compare_elt_elt_05135_ats_ptr_type: tmp30 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp30) ; } /* end of [compare_elt_elt_05135_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54) */ ATSstaticdec() ats_int_type avltree_height_01871_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp35) ; ATSlocal (ats_int_type, tmp36) ; __ats_lab_avltree_height_01871_ats_ptr_type: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp35 = tmp36 ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp35 = 0 ; break ; } while (0) ; return (tmp35) ; } /* end of [avltree_height_01871_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_01925_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_int_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_bool_type, tmp54) ; ATSlocal (ats_int_type, tmp55) ; ATSlocal (ats_int_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_int_type, tmp58) ; ATSlocal (ats_int_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_int_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_int_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_int_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab_avltree_rrotate_01925_ats_ptr_type: tmp46 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp46 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp47 = &ats_caselptrlab_mac(anairiats_sum_2, tmp46, atslab_0) ; tmp48 = &ats_caselptrlab_mac(anairiats_sum_2, tmp46, atslab_2) ; tmp49 = &ats_caselptrlab_mac(anairiats_sum_2, tmp46, atslab_3) ; tmp51 = ats_ptrget_mac(ats_ptr_type, tmp48) ; tmp50 = avltree_height_01871_ats_ptr_type (tmp51) ; tmp53 = ats_ptrget_mac(ats_ptr_type, tmp49) ; tmp52 = avltree_height_01871_ats_ptr_type (tmp53) ; tmp55 = atspre_iadd (tmp50, 0) ; tmp54 = atspre_igte (tmp55, tmp52) ; if (tmp54) { tmp56 = atspre_iadd (tmp52, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp56 ; tmp57 = ats_ptrget_mac(ats_ptr_type, tmp49) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp57 ; tmp59 = atspre_imax (tmp50, tmp56) ; tmp58 = atspre_iadd (1, tmp59) ; ats_ptrget_mac(ats_int_type, tmp47) = tmp58 ; ats_ptrget_mac(ats_ptr_type, tmp49) = arg5 ; tmp45 = tmp46 ; } else { tmp60 = ats_ptrget_mac(ats_ptr_type, tmp49) ; // if (tmp60 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp61 = &ats_caselptrlab_mac(anairiats_sum_2, tmp60, atslab_0) ; tmp62 = &ats_caselptrlab_mac(anairiats_sum_2, tmp60, atslab_2) ; tmp63 = &ats_caselptrlab_mac(anairiats_sum_2, tmp60, atslab_3) ; tmp65 = ats_ptrget_mac(ats_ptr_type, tmp62) ; tmp64 = avltree_height_01871_ats_ptr_type (tmp65) ; tmp67 = ats_ptrget_mac(ats_ptr_type, tmp63) ; tmp66 = avltree_height_01871_ats_ptr_type (tmp67) ; tmp69 = atspre_imax (tmp66, arg3) ; tmp68 = atspre_iadd (1, tmp69) ; ats_ptrget_mac(ats_int_type, arg0) = tmp68 ; tmp70 = ats_ptrget_mac(ats_ptr_type, tmp63) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp70 ; tmp72 = atspre_imax (tmp50, tmp64) ; tmp71 = atspre_iadd (1, tmp72) ; ats_ptrget_mac(ats_int_type, tmp47) = tmp71 ; tmp73 = ats_ptrget_mac(ats_ptr_type, tmp62) ; ats_ptrget_mac(ats_ptr_type, tmp49) = tmp73 ; ats_ptrget_mac(ats_int_type, tmp61) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp62) = tmp46 ; ats_ptrget_mac(ats_ptr_type, tmp63) = arg5 ; tmp45 = tmp60 ; } /* end of [if] */ return (tmp45) ; } /* end of [avltree_rrotate_01925_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_01901_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_int_type, tmp95) ; ATSlocal (ats_int_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_int_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab_avltree_lrotate_01901_ats_ptr_type: tmp86 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp86 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp87 = &ats_caselptrlab_mac(anairiats_sum_2, tmp86, atslab_0) ; tmp88 = &ats_caselptrlab_mac(anairiats_sum_2, tmp86, atslab_2) ; tmp89 = &ats_caselptrlab_mac(anairiats_sum_2, tmp86, atslab_3) ; tmp91 = ats_ptrget_mac(ats_ptr_type, tmp88) ; tmp90 = avltree_height_01871_ats_ptr_type (tmp91) ; tmp93 = ats_ptrget_mac(ats_ptr_type, tmp89) ; tmp92 = avltree_height_01871_ats_ptr_type (tmp93) ; tmp95 = atspre_iadd (tmp92, 0) ; tmp94 = atspre_ilte (tmp90, tmp95) ; if (tmp94) { tmp96 = atspre_iadd (tmp90, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp96 ; tmp97 = ats_ptrget_mac(ats_ptr_type, tmp88) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp97 ; tmp99 = atspre_imax (tmp96, tmp92) ; tmp98 = atspre_iadd (1, tmp99) ; ats_ptrget_mac(ats_int_type, tmp87) = tmp98 ; ats_ptrget_mac(ats_ptr_type, tmp88) = arg5 ; tmp85 = tmp86 ; } else { tmp100 = ats_ptrget_mac(ats_ptr_type, tmp88) ; // if (tmp100 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp101 = &ats_caselptrlab_mac(anairiats_sum_2, tmp100, atslab_0) ; tmp102 = &ats_caselptrlab_mac(anairiats_sum_2, tmp100, atslab_2) ; tmp103 = &ats_caselptrlab_mac(anairiats_sum_2, tmp100, atslab_3) ; tmp105 = ats_ptrget_mac(ats_ptr_type, tmp102) ; tmp104 = avltree_height_01871_ats_ptr_type (tmp105) ; tmp107 = ats_ptrget_mac(ats_ptr_type, tmp103) ; tmp106 = avltree_height_01871_ats_ptr_type (tmp107) ; tmp109 = atspre_imax (arg1, tmp104) ; tmp108 = atspre_iadd (1, tmp109) ; ats_ptrget_mac(ats_int_type, arg0) = tmp108 ; tmp110 = ats_ptrget_mac(ats_ptr_type, tmp102) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp110 ; tmp112 = atspre_imax (tmp106, tmp92) ; tmp111 = atspre_iadd (1, tmp112) ; ats_ptrget_mac(ats_int_type, tmp87) = tmp111 ; tmp113 = ats_ptrget_mac(ats_ptr_type, tmp103) ; ats_ptrget_mac(ats_ptr_type, tmp88) = tmp113 ; ats_ptrget_mac(ats_int_type, tmp101) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp102) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp103) = tmp86 ; tmp85 = tmp100 ; } /* end of [if] */ return (tmp85) ; } /* end of [avltree_lrotate_01901_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4) */ ATSstaticdec() ats_bool_type insert_12 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_int_type, tmp29) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_int_type, tmp34) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_int_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; ATSlocal (ats_int_type, tmp82) ; ATSlocal (ats_int_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab_insert_12: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_2_1: tmp25 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp26 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp27 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp28 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp31 = ats_ptrget_mac(ats_ptr_type, tmp26) ; tmp29 = compare_elt_elt_05135_ats_ptr_type (arg1, tmp31, env0) ; tmp32 = atspre_lt_int_int (tmp29, 0) ; if (tmp32) { tmp33 = insert_12 (env0, tmp27, arg1) ; tmp37 = ats_ptrget_mac(ats_ptr_type, tmp27) ; tmp34 = avltree_height_01871_ats_ptr_type (tmp37) ; tmp39 = ats_ptrget_mac(ats_ptr_type, tmp28) ; tmp38 = avltree_height_01871_ats_ptr_type (tmp39) ; tmp41 = atspre_isub (tmp34, tmp38) ; tmp40 = atspre_ilte (tmp41, 1) ; if (tmp40) { tmp43 = atspre_imax (tmp34, tmp38) ; tmp42 = atspre_iadd (1, tmp43) ; ats_ptrget_mac(ats_int_type, tmp25) = tmp42 ; tmp24 = tmp33 ; } else { tmp44 = avltree_rrotate_01925_ats_ptr_type (tmp25, tmp34, tmp27, tmp38, tmp28, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp44 ; tmp24 = tmp33 ; } /* end of [if] */ } else { tmp74 = atspre_gt_int_int (tmp29, 0) ; if (tmp74) { tmp75 = insert_12 (env0, tmp28, arg1) ; tmp77 = ats_ptrget_mac(ats_ptr_type, tmp27) ; tmp76 = avltree_height_01871_ats_ptr_type (tmp77) ; tmp79 = ats_ptrget_mac(ats_ptr_type, tmp28) ; tmp78 = avltree_height_01871_ats_ptr_type (tmp79) ; tmp81 = atspre_isub (tmp78, tmp76) ; tmp80 = atspre_ilte (tmp81, 1) ; if (tmp80) { tmp83 = atspre_imax (tmp76, tmp78) ; tmp82 = atspre_iadd (1, tmp83) ; ats_ptrget_mac(ats_int_type, tmp25) = tmp82 ; tmp24 = tmp75 ; } else { tmp84 = avltree_lrotate_01901_ats_ptr_type (tmp25, tmp76, tmp27, tmp78, tmp28, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp84 ; tmp24 = tmp75 ; } /* end of [if] */ } else { tmp24 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp115 = (ats_sum_ptr_type)0 ; tmp116 = (ats_sum_ptr_type)0 ; tmp114 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_2, tmp115) ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_3, tmp116) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp114 ; tmp24 = ats_false_bool ; break ; } while (0) ; return (tmp24) ; } /* end of [insert_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } insert_12_closure_type ; ats_bool_type insert_12_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return insert_12 (((insert_12_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_12_closure_init (insert_12_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_12_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type insert_12_closure_make (ats_clo_ref_type env0) { insert_12_closure_type *p_clo = ATS_MALLOC(sizeof(insert_12_closure_type)) ; insert_12_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_05145_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp23) ; __ats_lab_linset_insert_05145_ats_ptr_type: tmp23 = insert_12 (arg2, arg0, arg1) ; return (tmp23) ; } /* end of [linset_insert_05145_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3034(line=137, offs=3) -- 3123(line=140, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_bool_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add: /* ats_ptr_type tmp21 ; */ tmp21 = arg0 ; tmp22 = linset_insert_05145_ats_ptr_type ((&tmp21), arg1, statmp11) ; tmp20 = tmp21 ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27430(line=997, offs=7) -- 27766(line=1008, offs=31) */ ATSstaticdec() ats_ptr_type aux_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab_aux_19: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp121 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_2) ; tmp122 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_3) ; tmp124 = ats_ptrget_mac(ats_ptr_type, tmp122) ; tmp123 = aux_19 (tmp124, arg1) ; tmp125 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp125, atslab_0, tmp120) ; ats_selptrset_mac(anairiats_sum_0, tmp125, atslab_1, tmp123) ; tmp126 = ats_ptrget_mac(ats_ptr_type, tmp121) ; arg0 = tmp126 ; arg1 = tmp125 ; goto __ats_lab_aux_19 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp119 = arg1 ; break ; } while (0) ; return (tmp119) ; } /* end of [aux_19] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27379(line=995, offs=16) -- 27815(line=1012, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_05160_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab_linset_listize_05160_ats_ptr_type: tmp127 = (ats_sum_ptr_type)0 ; tmp118 = aux_19 (arg0, tmp127) ; return (tmp118) ; } /* end of [linset_listize_05160_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3183(line=143, offs=21) -- 3212(line=143, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize: tmp117 = linset_listize_05160_ats_ptr_type (arg0) ; return (tmp117) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19) */ ATSstaticdec() ats_ptr_type aux_22 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_aux_22: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_2) ; tmp133 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_3) ; ATS_FREE(arg0) ; tmp134 = aux_22 (tmp133, arg1) ; tmp135 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp135, atslab_0, tmp131) ; ats_selptrset_mac(anairiats_sum_0, tmp135, atslab_1, tmp134) ; arg0 = tmp132 ; arg1 = tmp135 ; goto __ats_lab_aux_22 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp130 = arg1 ; break ; } while (0) ; return (tmp130) ; } /* end of [aux_22] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_free_05161_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp136) ; __ats_lab_linset_listize_free_05161_ats_ptr_type: tmp136 = (ats_sum_ptr_type)0 ; tmp129 = aux_22 (arg0, tmp136) ; return (tmp129) ; } /* end of [linset_listize_free_05161_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3249(line=145, offs=26) -- 3283(line=145, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free: tmp128 = linset_listize_free_05161_ats_ptr_type (arg0) ; return (tmp128) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3373(line=154, offs=5) -- 3555(line=165, offs=4) */ ATSstaticdec() ats_ptr_type loop_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; __ats_lab_loop_24: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add (arg1, tmp139) ; arg0 = tmp140 ; arg1 = tmp141 ; goto __ats_lab_loop_24 ; // tail call break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp138 = arg1 ; break ; } while (0) ; return (tmp138) ; } /* end of [loop_24] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3353(line=152, offs=14) -- 3619(line=169, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst2set (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst2set: tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil () ; tmp137 = loop_24 (arg0, tmp142) ; return (tmp137) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst2set] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3695(line=175, offs=3) -- 3931(line=188, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env: tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (arg1) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (arg1) ; /* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp144) ; /* tmp147 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp145) ; /* tmp143 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp143) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_28 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_bool_type, tmp155) ; // ATSlocal_void (tmp156) ; ATSlocal (ats_int_type, tmp157) ; __ats_lab_aux_28: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp153 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp155 = atspre_gt_int_int (arg1, 0) ; if (tmp155) { /* tmp154 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp156 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp152) ; tmp157 = atspre_add_int_int (arg1, 1) ; arg0 = tmp153 ; arg1 = tmp157 ; goto __ats_lab_aux_28 ; // tail call break ; } while (0) ; return /* (tmp151) */ ; } /* end of [aux_28] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_28_closure_type ; ats_void_type aux_28_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_28 (((aux_28_closure_type*)cloptr)->closure_env_0, ((aux_28_closure_type*)cloptr)->closure_env_1, ((aux_28_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_28_closure_init (aux_28_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_28_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_28_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_28_closure_type *p_clo = ATS_MALLOC(sizeof(aux_28_closure_type)) ; aux_28_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01723_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp150) ; __ats_lab_fprintlst_01723_ats_ptr_type: /* tmp150 = */ aux_28 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp150) */ ; } /* end of [fprintlst_01723_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 4007(line=194, offs=3) -- 4079(line=197, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp149) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst: /* tmp149 = */ fprintlst_01723_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env) ; return /* (tmp149) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 4161(line=203, offs=3) -- 4322(line=212, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlstopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlstopt: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp159 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp160 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst (arg0, tmp159) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; } while (0) ; return /* (tmp158) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlstopt] */ /* static load function */ // 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__D2ENV_0.tag = 0 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp11, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp11 = __ats_fun_4_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_d2env_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/0000755000175000017500000000000013431250607017420 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/0000755000175000017500000000000013431250607021103 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/ats_memory.h0000644000175000017500000000531113431250607023433 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** */ /* ****** ****** */ #ifndef ATS_MEMORY_H #define ATS_MEMORY_H /* ****** ****** */ #include "ats_types.h" /* ****** ****** */ // // HX: the function [alloca] is declared in extern void *alloca (size_t nsz) ; // [alloca.h] or [stdlib.h] #define ATS_ALLOCA(sz) alloca(sz) #define ATS_ALLOCA2(n, sz) alloca((n)*(sz)) /* ****** ****** */ #define ATS_GC_INIT ats_gc_init #define ATS_GC_MARKROOT ats_gc_markroot /* ****** ****** */ #define ATS_FREE ats_free_gc #define ATS_MALLOC ats_malloc_gc #define ATS_MALLOC2(n, sz) ATS_MALLOC((n)*(sz)) #define ATS_CALLOC ats_calloc_gc #define ATS_REALLOC ats_realloc_gc /* ****** ****** */ extern ats_void_type ats_gc_init () ; extern ats_void_type ats_gc_markroot (ats_ptr_type p, ats_size_type bsz) ; /* ****** ****** */ extern ats_ptr_type ats_malloc_ngc (ats_size_type n) ; extern ats_ptr_type ats_calloc_ngc (ats_size_type nmemb, ats_size_type bsz) ; extern ats_void_type ats_free_ngc (const ats_ptr_type p) ; extern ats_ptr_type ats_realloc_ngc (const ats_ptr_type p, ats_size_type n) ; /* ****** ****** */ extern ats_ptr_type ats_malloc_gc (ats_size_type bsz) ; extern ats_ptr_type ats_calloc_gc (ats_size_type nmemb, ats_size_type bsz) ; extern ats_void_type ats_free_gc (const ats_ptr_type p) ; extern ats_ptr_type ats_realloc_gc (const ats_ptr_type p, ats_size_type bsz) ; /* ****** ****** */ #endif /* ATS_MEMORY_H */ /* end of [ats_memory.h] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/gcats1_all.cats0000644000175000017500000000672513431250607024003 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June 2008 // /* ****** ****** */ /* 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/char.cats" #include "prelude/CATS/float.cats" #include "prelude/CATS/integer.cats" #include "prelude/CATS/pointer.cats" #include "prelude/CATS/reference.cats" #include "prelude/CATS/string.cats" #include "prelude/CATS/printf.cats" #include "prelude/CATS/array.cats" #endif /* _ATS_PRELUDE_NONE */ /* ****** ****** */ #include "GCATS/gcats1.cats" /* ****** ****** */ #if (__WORDSIZE==32) #include "GCATS/m32/gcats1_top_dats.c" #include "GCATS/m32/gcats1_misc_dats.c" #include "GCATS/m32/gcats1_freeitmlst_dats.c" #include "GCATS/m32/gcats1_chunk_dats.c" #include "GCATS/m32/gcats1_globalentry_dats.c" #include "GCATS/m32/gcats1_marking_dats.c" #include "GCATS/m32/gcats1_collecting_dats.c" #include "GCATS/m32/gcats1_autops_dats.c" #include "GCATS/m32/gcats1_manops_dats.c" #endif // __WORDSIZE==32) /* ****** ****** */ #if (__WORDSIZE==64) #include "GCATS/m64/gcats1_top_dats.c" #include "GCATS/m64/gcats1_misc_dats.c" #include "GCATS/m64/gcats1_freeitmlst_dats.c" #include "GCATS/m64/gcats1_chunk_dats.c" #include "GCATS/m64/gcats1_globalentry_dats.c" #include "GCATS/m64/gcats1_marking_dats.c" #include "GCATS/m64/gcats1_collecting_dats.c" #include "GCATS/m64/gcats1_autops_dats.c" #include "GCATS/m64/gcats1_manops_dats.c" #endif // __WORDSIZE==64) /* ****** ****** */ ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload_flag = 1 ; return ; } /* staload function */ /* ****** ****** */ /* end of [gcats1_all.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/ats_prelude.c0000644000175000017500000001153113431250607023557 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #include "config.h" #include #ifdef _ATS_MULTITHREAD #include #endif // end of [_ATS_MULTITHREAD] /* ****** ****** */ #include "ats_types.h" #include "ats_basics.h" #include "ats_memory.h" /* ****** ****** */ // // HX: implemented in [prelude/DATS/basics.dats] // extern void ats_exit_errmsg (int err, char *msg) ; /* ****** ****** */ /* ** sizeof(ats_empty_type) == 0 */ ats_empty_type ats_empty_value ; /* ****** ****** */ // // HX: The following variables are used in basics.dats // int ats_stdin_view_lock = 1 ; int ats_stdout_view_lock = 1 ; int ats_stderr_view_lock = 1 ; /* ****** ****** */ /* ** the type of [the_ats_exception_stack] ** is given in the file [ats_exception.h] */ #ifdef _ATS_MULTITHREAD ATSthreadlocalstorage() // thread-local storage #endif // end of [_ATS_MULTITHREAD] void *the_ats_exception_stack = NULL ; /* ****** ****** */ // // HX: some common exceptions // ats_exn_type AssertionExceptionCon = { 10, "AssertionException" } ; ats_exn_ptr_type AssertionException = &AssertionExceptionCon ; ats_exn_type OverflowExceptionCon = { 20, "OverflowException" } ; ats_exn_ptr_type OverflowException = &OverflowExceptionCon ; ats_exn_type DivisionByZeroExceptionCon = { 30, "DivisionByZeroException" } ; ats_exn_ptr_type DivisionByZeroException = &DivisionByZeroExceptionCon ; /* ****** ****** */ ats_exn_type ListSubscriptExceptionCon = { 40, "ListSubscriptException" } ; ats_exn_ptr_type ListSubscriptException = &ListSubscriptExceptionCon ; ats_exn_ptr_type ListSubscriptException_make () { return ListSubscriptException ; } ats_bool_type isListSubscriptException (ats_exn_ptr_type exn) { return (ListSubscriptException->tag==exn->tag ? ats_true_bool : ats_false_bool) ; } ats_exn_type ArraySubscriptExceptionCon = { 50, "ArraySubscriptException" } ; ats_exn_ptr_type ArraySubscriptException = &ArraySubscriptExceptionCon ; ats_exn_ptr_type ArraySubscriptException_make () { return ArraySubscriptException ; } ats_bool_type isArraySubscriptException (ats_exn_ptr_type exn) { return (ArraySubscriptException->tag==exn->tag ? ats_true_bool : ats_false_bool) ; } /* ****** ****** */ // // HX: the numbers less than 1024 are all int ats_exception_con_tag = 1024 ; // reserved for special use /* ****** ****** */ /* ** function for handling uncaught exceptions */ extern void exit (int status) ; // declared in [stdlib.h] ats_void_type ats_uncaught_exception_handle ( const ats_exn_ptr_type exn ) { fprintf(stderr, "exit(ATS): uncaught exception: %s(%d)\n", exn->name, exn->tag ) ; exit(1) ; return ; // deadcode } // end of [ats_uncaught_exception_handle] /* ****** ****** */ /* ** functions for handling match failures */ void ats_caseof_failure_handle ( const char *loc // location of the failure ) { fprintf(stderr, "exit(ATS): %s: match failure.\n", loc) ; exit(1) ; return ; // deadcode } // end of [ats_caseof_failure_handle] void ats_funarg_match_failure_handle ( const char *loc // location of the failure ) { fprintf(stderr, "exit(ATS): %s: funarg match failure.\n", loc) ; exit(1) ; return ; // deadcode } // end of [ats_funarg_match_failure_handle] /* ****** ****** */ /* ** functions for memory allocation and deallocation */ #ifdef _ATS_NGC // no GC #include "ats_prelude_ngc.c" #elif _ATS_GCATS // special GC for ATS #include "ats_prelude_gcats.c" #elif _ATS_GCBDW // Boehm-Demers-Weise conservative GC for C/C++ #include "ats_prelude_gcbdw.c" #else // _ATS_NGC is the default #include "ats_prelude_ngc.c" #endif // end of [ifdef] /* ****** ****** */ /* end of [ats_prelude.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/ats_basics.h0000644000175000017500000001450113431250607023370 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_BASICS_H #define ATS_BASICS_H /* ****** ****** */ /* #define ATSstringize(id) # id */ /* ****** ****** */ // // HX-2011-02-17: // if the following definition is not supporten, please change it to: // #define ATSunused // #define ATSunused __attribute__ ((unused)) /* ****** ****** */ // #define ATSextern(ty, name) extern ty name #define ATSextern_fun(ty, name) extern ty name #define ATSextern_prf(name) // proof constant #define ATSextern_val(ty, name) extern ty name // #define ATSstatic(ty, name) static ty name #define ATSstatic_fun(ty, name) static ty name #define ATSstatic_val(ty, name) static ty name #define ATSstatic_void(name) // void name // retired // #define ATSglobal(ty, name) ty name // #define ATSlocal(ty, name) ty ATSunused name #define ATSlocal_void(name) // void name // retired // #define ATScastfn(castfn, name) name /* ****** ****** */ // // HX-2011-02-17: // if the following definition is problematic, please change it to: // #define ATSstrcst(x) x // #define ATSstrcst(x) ((ats_ptr_type)x) // HX-2011-02-17 /* ****** ****** */ #define ATSglobaldec() #define ATSstaticdec() static #define ATSextfun() extern #define ATSinline() static inline /* ****** ****** */ // // HX-2010-05-24: // if TLS is not supported, then please compile with the flag -D_ATSTLS_NONE // #define ATSthreadlocalstorage() __thread #ifdef _ATSTLS_NONE #undef ATSthreadlocalstorage #define ATSthreadlocalstorage() #endif // end of [_ATSTLS_NONE] /* ****** ****** */ #define ATSdeadcode() \ do { \ fprintf ( \ stderr, \ "abort(ATS): file = %s and line = %d: the deadcode is executed!\n", \ __FILE__, __LINE__ \ ) ; \ abort (); \ } while (0); /* ****** ****** */ // // HX: boolean values // #define ats_true_bool 1 #define ats_false_bool 0 /* ****** ****** */ // // HX: needed for handling [PATCKstring] // #define __strcmpats(s1, s2) strcmp((char*)(s1), (char*)(s2)) /* ****** ****** */ // // HX: closure function selection // #define ats_closure_fun(f) ((ats_clo_ptr_type)f)->closure_fun /* ****** ****** */ // // HX: handling cast functions // #define ats_castfn_mac(hit, vp) ((hit)vp) /* ****** ****** */ #define ats_field_getval(tyrec, ref, lab) (((tyrec*)(ref))->lab) #define ats_field_getptr(tyrec, ref, lab) (&((tyrec*)(ref))->lab) /* ****** ****** */ #define ats_cast_mac(ty, x) ((ty)(x)) #define ats_castptr_mac(ty, x) ((ty*)(x)) #define ats_selind_mac(x, ind) ((x)ind) #define ats_selbox_mac(x, lab) ((x)->lab) #define ats_select_mac(x, lab) ((x).lab) #define ats_selptr_mac(x, lab) ((x)->lab) #define ats_selsin_mac(x, lab) (x) #define ats_selptrset_mac(ty, x, lab, v) (((ty*)x)->lab = (v)) #define ats_caselind_mac(ty, x, ind) (((ty*)(&(x)))ind) #define ats_caselptrind_mac(ty, x, ind) (((ty*)(x))ind) #define ats_caselptrlab_mac(ty, x, lab) (((ty*)(x))->lab) #define ats_varget_mac(ty, x) (x) #define ats_ptrget_mac(ty, x) (*(ty*)(x)) /* ****** ****** */ // // HX: handling for/while loops // #define ats_loop_beg_mac(init) while(ats_true_bool) { init: #define ats_loop_end_mac(init, fini) goto init ; fini: break ; } // // HX: handling while loop: deprecated!!! // #define ats_while_beg_mac(clab) while(ats_true_bool) { clab: #define ats_while_end_mac(blab, clab) goto clab ; blab: break ; } /* ****** ****** */ // // HX: for initializing a reference // #define ats_instr_move_ref_mac(tmp, hit, val) \ do { tmp = ATS_MALLOC (sizeof(hit)) ; *(hit*)tmp = val ; } while (0) /* ****** ****** */ // // HX: for proof checking at run-time // #define \ ats_proofcheck_beg_mac(dyncst) \ static int dyncst ## _flag = 0 ; \ do { \ if (dyncst ## _flag > 0) return ; \ if (dyncst ## _flag < 0) { \ fprintf (stderr, \ "exit(ATS): proof checking failure: [%s] is cyclically defined!\n", \ # dyncst \ ) ; \ exit (1) ; \ } \ dyncst ## _flag = -1 ; \ } while (0) ; /* end of [ats_proofcheck_beg_mac] */ #define \ ats_proofcheck_end_mac(dyncst) { dyncst ## _flag = 1 ; } /* ****** ****** */ /* ** HX: ** [mainats_prelude] is called in the function [main] ** it is implemented in [$ATSHOME/prelude/ats_main_prelude.dats] ** where it is given the name [main_prelude]. */ extern void mainats_prelude () ; /* ****** ****** */ /* ** HX: ** functions for handling match failures ** the implementation is given in [ats_prelude.c] */ extern void ats_caseof_failure_handle (const char *loc) ; extern void ats_funarg_match_failure_handle (const char *loc) ; /* ****** ****** */ #endif /* ATS_BASICS_H */ /* end of [ats_basics.h] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/0000755000175000017500000000000013431250607021744 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/gcats1.cats0000644000175000017500000004260213431250607024006 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Time: June 2008 // /* ****** ****** */ #ifndef __ATS_GC_CATS #define __ATS_GC_CATS /* ****** ****** */ #include "gcats1.hats" /* ****** ****** */ // #include #include #include // extern void free (void*) ; // see [stdlib.h] extern void *malloc (size_t) ; // see [stdlib.h] // #ifdef memset // // HX: [memset] is a macro on MACOS // #else extern void *memset (void *src, int c, size_t n) ; #endif // memset // /* ****** ****** */ #undef ATS_FREE #define ATS_FREE free #undef ATS_MALLOC #define ATS_MALLOC malloc #undef ATS_GC_MARKROOT #define ATS_GC_MARKROOT(ptr, sz) do { ; } while (0) /* ****** ****** */ ATSinline() ats_int_type log2_floor (ats_int_type n) { int c = 0 ; while (n >>= 1) c += 1 ; return c; } ATSinline() ats_int_type log2_ceil (ats_int_type n) { int c ; c = log2_floor (n) ; if (n > (1 << c)) c += 1 ; return c ; } /* ****** ****** */ typedef unsigned char byte ; /* ****** ****** */ typedef void *freeitmlst ; /* ****** ****** */ typedef uintptr_t ats_uintptr1_type ; typedef struct { ats_ptr_type atslab_ptr ; ats_int_type atslab_size ; } freeitmptrsz_t ; // ------------------------------------------------------ // // a variety of locks // // ------------------------------------------------------ // ATSinline() ats_void_type gc_main_lock_acquire () { return ; } ATSinline() ats_void_type gc_main_lock_release () { return ; } ATSinline() ats_void_type the_globalentrylst_lock_acquire () { return ; } ATSinline() ats_void_type the_globalentrylst_lock_release () { return ; } ATSinline() ats_void_type the_manmemlst_lock_acquire () { return ; } ATSinline() ats_void_type the_manmemlst_lock_release () { return ; } ATSinline() ats_void_type the_threadinfolst_lock_acquire () { return ; } ATSinline() ats_void_type the_threadinfolst_lock_release () { return ; } ATSinline() ats_void_type the_sweeplst_lock_acquire_one (ats_int_type i) { return ; } ATSinline() ats_void_type the_sweeplst_lock_release_one (ats_int_type i) { return ; } ATSinline() ats_void_type the_sweeplst_lock_acquire_all () { return ; } ATSinline() ats_void_type the_sweeplst_lock_release_all () { return ; } ATSinline() ats_void_type the_sweeplst_lock_acquire_rest (ats_int_type i0) { return ; } ATSinline() ats_void_type the_sweeplst_lock_release_rest (ats_int_type i0) { return ; } // ------------------------------------------------------ // // freeitmlst // // ------------------------------------------------------ ATSinline() ats_ptr_type freeitmlst2ptr (ats_ptr_type x) { return x ; } // ATSinline() ats_bool_type freeitmlst_is_nil (ats_ptr_type itms) { return (itms ? ats_false_bool : ats_true_bool) ; } ATSinline() ats_bool_type freeitmlst_is_cons (ats_ptr_type itms) { return (itms ? ats_true_bool : ats_false_bool) ; } ATSinline() ats_ptr_type freeitmlst_cons ( ats_ptr_type itm, ats_ptr_type itms ) { *(freeitmlst*)itm = itms ; return itm ; } ATSinline() ats_ptr_type freeitmlst_tail_get (ats_ptr_type itms) { return *((freeitmlst*)itms) ; } // extern freeitmlst the_freeitmlst_chunk_data ; ATSinline() ats_void_type freeitmlst_chunk_data_free (ats_ptr_type _data) { free (_data) ; return ; } /* end of [freeitmlst_chunk_data_free] */ ATSinline() ats_void_type freeitmlst_chunk_data_recycle (ats_ptr_type _data) { *((freeitmlst*)_data) = the_freeitmlst_chunk_data; the_freeitmlst_chunk_data = _data ; return ; } /* end of [freeitmlst_chunk_data_recycle] */ /* ****** ****** */ extern freeitmlst the_freeitmlst_array[FREEITMLST_ARRAYSIZE] ; ATSinline() ats_ptr_type the_freeitmlst_array_get (ats_int_type i) { return the_freeitmlst_array[i] ; } ATSinline() ats_void_type the_freeitmlst_array_set (ats_int_type i, ats_ptr_type itms) { the_freeitmlst_array[i] = itms ; return ; } ATSinline() ats_void_type the_freeitmlst_array_clear_one (ats_int_type i) { the_freeitmlst_array[i] = (freeitmlst)0 ; return ; } ATSinline() ats_void_type the_freeitmlst_array_insert_at (ats_ptr_type itm, ats_int_type i) { *(freeitmlst*)itm = the_freeitmlst_array[i] ; the_freeitmlst_array[i] = (freeitmlst)itm ; return ; } // ------------------------------------------------------ // // chunk operations // // ------------------------------------------------------ typedef struct chunk_struct { int itemwsz ; // word size of each free item: must be positive! // if [itemwsz_log = -1], then the chunk is large int itemwsz_log ; // itemwsz_log = log2 (itemwsz) if itemwsz_log >= 0 int itemtot ; // the total number of free items int markcnt ; // the count of marked free items struct chunk_struct *sweep_next ; // next swept chunk freeitmlst data ; // pointer to the data freeitmlst data_nonalign ; // pointer to the truncated beginning byte markbits[0] ; // bits for marking } chunk ; typedef chunk *chunklst ; /* ****** ****** */ ATSinline() ats_ptr_type chunklst2ptr (ats_ptr_type x) { return x ; } // ATSinline() ats_bool_type chunklst_is_nil (ats_ptr_type chks) { return (chks ? ats_false_bool : ats_true_bool) ; } ATSinline() ats_bool_type chunklst_is_cons (ats_ptr_type chks) { return (chks ? ats_true_bool : ats_false_bool) ; } ATSinline() ats_void_type chunk_header_free (ats_ptr_type chks) { free (chks) ; return ; } // ATSinline() ats_int_type chunklst_itembsz_get (ats_ptr_type chks) { return (((chunklst)chks)->itemwsz) << NBYTE_PER_WORD_LOG ; } ATSinline() ats_int_type chunklst_itemwsz_get (ats_ptr_type chks) { return ((chunklst)chks)->itemwsz ; } ATSinline() ats_int_type chunklst_itemwsz_log_get (ats_ptr_type chks) { return ((chunklst)chks)->itemwsz_log ; } ATSinline() ats_int_type chunklst_itemtot_get (ats_ptr_type chks) { return ((chunklst)chks)->itemtot ; } ATSinline() ats_int_type chunklst_markcnt_get (ats_ptr_type chks) { return ((chunklst)chks)->markcnt ; } // ATSinline() ats_ptr_type chunklst_data_get (ats_ptr_type chks) { return ((chunklst)chks)->data ; } ATSinline() ats_ptr_type chunklst_data_nonalign_get (ats_ptr_type chks) { return ((chunklst)chks)->data_nonalign ; } // ATSinline() ats_ptr_type chunklst_markbits_get (ats_ptr_type chks) { return ((chunklst)chks)->markbits ; } ATSinline() ats_ptr_type chunklst_sweep_next_get (ats_ptr_type chks) { return ((chunklst)chks)->sweep_next ; } // ATSinline() ats_void_type chunklst_markcnt_dec (ats_ptr_type chks) { ((chunklst)chks)->markcnt -= 1 ; return ; } ATSinline() ats_void_type chunklst_markcnt_inc (ats_ptr_type chks) { ((chunklst)chks)->markcnt += 1 ; return ; } // extern int the_chunk_count ; extern int the_chunk_count_limit ; ATSinline() ats_int_type the_chunk_count_get () { return the_chunk_count ; } // ATSinline() ats_void_type the_chunk_count_dec_by (ats_int_type n) { the_chunk_count -= n; return ; } /* end of [the_chunk_count_dec_by] */ ATSinline() ats_void_type the_chunk_count_inc_by (ats_int_type n) { the_chunk_count += n; return ; } /* end of [the_chunk_count_inc_by] */ // ATSinline() ats_bool_type the_chunk_count_limit_is_reached () { return (the_chunk_count >= the_chunk_count_limit) ? ats_true_bool : ats_false_bool ; } /* the_chunk_count_limit_is_reached */ ATSinline() ats_bool_type the_chunk_count_limit_is_not_reached () { return (the_chunk_count >= the_chunk_count_limit) ? ats_false_bool : ats_true_bool ; } /* the_chunk_count_limit_is_not_reached */ ATSinline() ats_bool_type the_chunk_count_limit_is_reached_within (ats_int_type n) { return (the_chunk_count + n > the_chunk_count_limit) ? ats_true_bool : ats_false_bool ; } /* the_chunk_count_limit_is_reached_within */ /* ****** ****** */ ATSinline() ats_void_type gc_markbits_clear_chunk (ats_ptr_type chks) { int itemtot ; // total number of items int nmarkbit ; // number of bytes for mark bits itemtot = ((chunklst)chks)->itemtot ; nmarkbit = (itemtot + NBIT_PER_BYTE_MASK) >> NBIT_PER_BYTE_LOG ; memset (((chunklst)chks)->markbits, 0, nmarkbit) ; ((chunklst)chks)->markcnt = 0 ; return ; } /* gc_markbits_clear_chunk */ /* ****** ****** */ /* #define MARK_GET_mac(x, i) \ (((x)[(i) / NBIT_PER_BYTE] >> ((i) % NBIT_PER_BYTE)) & 0x1) */ #define MARK_GET_mac(x, i) \ (((x)[(i) >> NBIT_PER_BYTE_LOG] >> ((i) & NBIT_PER_BYTE_MASK)) & 0x1) ATSinline() ats_bool_type MARK_GET ( ats_ptr_type x, ats_int_type i ) { return MARK_GET_mac((byte*)x, i) ; } /* #define MARK_SET_mac(x, i) \ do { \ (x)[(i) / NBIT_PER_BYTE] |= (1 << ((i) % NBIT_PER_BYTE)) ; \ } while (0) */ #define MARK_SET_mac(x, i) \ do { \ (x)[(i) >> NBIT_PER_BYTE_LOG] |= (1 << ((i) & NBIT_PER_BYTE_MASK)) ; \ } while (0) ATSinline() ats_void_type MARK_SET ( ats_ptr_type x, ats_int_type i ) { MARK_SET_mac((byte*)x, i) ; return ; } /* #define MARK_CLEAR_mac(x, i) \ do { \ (x)[(i) / NBIT_PER_BYTE] &= ~(1 << ((i) % NBIT_PER_BYTE)) ; \ } while (0) */ #define MARK_CLEAR_mac(x, i) \ do { \ (x)[(i) >> NBIT_PER_BYTE_LOG] &= ~(1 << ((i) & NBIT_PER_BYTE_MASK)) ; \ } while (0) ATSinline() ats_void_type MARK_CLEAR ( ats_ptr_type x, ats_int_type i ) { MARK_CLEAR_mac((byte*)x, i) ; return ; } /* ****** ****** */ #define PTR_TOPSEG_GET_mac(p) \ ((p) >> (PTR_BOTCHKSEG_SIZE + NBYTE_PER_WORD_LOG)) ATSinline() ats_uintptr1_type PTR_TOPSEG_GET (ats_ptr_type p) { return PTR_TOPSEG_GET_mac((ats_uintptr1_type)p) ; } // #define PTR_BOTSEG_GET_mac(p) \ (((p) >> (PTR_CHKSEG_SIZE + NBYTE_PER_WORD_LOG)) & BOTSEG_TABLESIZE_MASK) ATSinline() ats_int_type PTR_BOTSEG_GET (ats_ptr_type p) { return PTR_BOTSEG_GET_mac((ats_uintptr1_type)p) ; } // #define PTR_CHKSEG_GET_mac(p) \ (((p) >> NBYTE_PER_WORD_LOG) & CHUNK_WORDSIZE_MASK) ATSinline() ats_int_type PTR_CHKSEG_GET (ats_ptr_type p) { return PTR_CHKSEG_GET_mac((ats_uintptr1_type)p) ; } // typedef struct botsegtbl_struct { #if (__WORDSIZE == 64) uintptr_t key ; struct botsegtbl_struct *hash_next ; #endif chunklst headers[BOTSEG_TABLESIZE] ; } botsegtbl ; typedef botsegtbl *botsegtbllst ; // ATSinline() ats_bool_type botsegtbllst_is_nil (ats_ptr_type tbls) { return (tbls ? ats_false_bool : ats_true_bool) ; } ATSinline() ats_bool_type botsegtbllst_is_cons (ats_ptr_type tbls) { return (tbls ? ats_true_bool : ats_false_bool) ; } // ATSinline() ats_ptr_type botsegtbllst_get (ats_ptr_type tbls, ats_int_type i) { return ((botsegtbllst)tbls)->headers[i] ; } ATSinline() ats_void_type botsegtbllst_set (ats_ptr_type tbls, ats_int_type i, ats_ptr_type chks) { ((botsegtbllst)tbls)->headers[i] = chks ; return ; } ATSinline() ats_void_type botsegtbllst_clear (ats_ptr_type tbls, ats_int_type i) { ((botsegtbllst)tbls)->headers[i] = (chunklst)0 ; return ; } // #if (__WORDSIZE == 32) extern botsegtbllst the_topsegtbl[TOPSEG_TABLESIZE] ; ATSinline() ats_ptr_type the_topsegtbl_get_32 (ats_uintptr1_type ofs) { return the_topsegtbl[ofs] ; } ATSinline() ats_void_type the_topsegtbl_set_32 ( ats_uintptr1_type ofs, ats_ptr_type tbls ) { the_topsegtbl[ofs] = tbls ; return /*void*/; } // end of [the_topsegtbl_set_32] #endif // end of [__WORDSIZE == 32] /* ****** ****** */ #if (__WORDSIZE == 64) extern botsegtbllst the_topsegtbl[TOPSEG_HASHTABLESIZE] ; ATSinline() ats_ptr_type the_topsegtbl_get_64 (ats_uintptr1_type ofs) { botsegtbllst tbls = the_topsegtbl[ofs % TOPSEG_HASHTABLESIZE] ; while (tbls) { if (tbls->key == ofs) break ; tbls = tbls->hash_next ; } /* end of [while] */ return tbls ; } ATSinline() ats_void_type the_topsegtbl_set_64 (ats_uintptr1_type ofs, ats_ptr_type tbls) { the_topsegtbl[ofs % TOPSEG_HASHTABLESIZE] = tbls ; return ; } ATSinline() ats_ptr_type the_topsegtbl_getfst_64 (ats_uintptr1_type ofs) { return the_topsegtbl[ofs % TOPSEG_HASHTABLESIZE] ; } #endif // end of [__WORDSIZE == 64] /* ****** ****** */ // ------------------------------------------------------ // // manmemlst: for manually managed list of allocated memories // // ------------------------------------------------------ typedef struct manmem_struct { int itemwsz ; struct manmem_struct *prev ; struct manmem_struct *next ; byte data[] ; } manmem ; typedef manmem *manmemlst ; /* ****** ****** */ extern manmemlst the_manmemlst ; // ATSinline() ats_ptr_type the_manmemlst_get () { return the_manmemlst ; } // ATSinline() ats_bool_type manmemlst_is_nil (ats_ptr_type mms) { return (mms ? ats_false_bool : ats_true_bool) ; } ATSinline() ats_bool_type manmemlst_is_cons (ats_ptr_type mms) { return (mms ? ats_true_bool : ats_false_bool) ; } // ATSinline() ats_int_type manmemlst_itemwsz_get (ats_ptr_type mms) { return ((manmemlst)mms)->itemwsz ; } ATSinline() ats_ptr_type manmemlst_prev_get (ats_ptr_type mms) { return ((manmemlst)mms)->prev ; } ATSinline() ats_ptr_type manmemlst_next_get (ats_ptr_type mms) { return ((manmemlst)mms)->next ; } ATSinline() ats_ptr_type manmemlst_data_get (ats_ptr_type mms) { return ((manmemlst)mms)->data ; } // ------------------------------------------------------ // // marking // // ------------------------------------------------------ typedef struct markstackpage_struct { struct markstackpage_struct *next ; struct markstackpage_struct *prev ; freeitmptrsz_t entries[MARKSTACK_PAGESIZE] ; } markstackpage ; typedef markstackpage *markstackpagelst ; // ATSinline() ats_ptr_type markstackpagelst_nil () { return (markstackpagelst)0 ; } ATSinline() ats_bool_type markstackpagelst_is_nil (ats_ptr_type msps) { return (msps ? ats_false_bool : ats_true_bool) ; } ATSinline() ats_bool_type markstackpagelst_is_cons (ats_ptr_type msps) { return (msps ? ats_true_bool : ats_false_bool) ; } ATSinline() ats_ptr_type markstackpagelst_next_get (ats_ptr_type msps) { return ((markstackpagelst)msps)->next ; } ATSinline() ats_ptr_type markstackpagelst_prev_get (ats_ptr_type msps) { return ((markstackpagelst)msps)->prev ; } // ATSinline() ats_void_type markstackpagelst_entry_get ( ats_ptr_type msps , ats_int_type i , ats_ref_type p_r, ats_ref_type wsz_r ) { freeitmptrsz_t *ents, *ents_i ; ents = ((markstackpagelst)msps)->entries ; ents_i = &(ents[i]) ; *(ats_ptr_type*)p_r = ents_i->atslab_ptr ; *(ats_int_type*)wsz_r = ents_i->atslab_size ; return ; } /* end of [markstackpage_entry_ptr_get] */ ATSinline() ats_void_type markstackpagelst_entry_set ( ats_ptr_type msps , ats_int_type i, ats_ptr_type p, ats_int_type wsz ) { freeitmptrsz_t *ents, *ents_i ; ents = ((markstackpagelst)msps)->entries ; ents_i = &(ents[i]) ; ents_i->atslab_ptr = p ; ents_i->atslab_size= wsz ; return ; } /* end of [markstackpage_entry_ptr_set] */ // extern ats_int_type the_markstackposition ; extern ats_ptr_type the_markstackpagelst_cur ; ATSinline() ats_int_type the_markstack_pop ( ats_ref_type ptr_r, ats_ref_type wsz_r ) { return markstack_pop ( &the_markstackpagelst_cur, &the_markstackposition, ptr_r, wsz_r ) ; } /* end of [the_markstack_pop] */ ATSinline() ats_int_type the_markstack_push (ats_ptr_type ptr, ats_int_type wsz) { return markstack_push ( &the_markstackpagelst_cur, &the_markstackposition, ptr, wsz ) ; } /* end of [the_markstack_push] */ /* ****** ****** */ extern int the_markstatck_overflow ; ATSinline() ats_int_type the_markstack_overflow_get () { return the_markstatck_overflow ; } ATSinline() ats_void_type the_markstack_overflow_set () { the_markstatck_overflow = 1 ; return ; } ATSinline() ats_void_type the_markstack_overflow_clear () { the_markstatck_overflow = 0 ; return ; } // ------------------------------------------------------ // // collecting // // ------------------------------------------------------ extern chunklst the_sweeplst_array[FREEITMLST_ARRAYSIZE] ; ATSinline() ats_ptr_type the_sweeplst_array_get (ats_int_type i) { return the_sweeplst_array[i] ; } ATSinline() ats_void_type the_sweeplst_array_set (ats_int_type i, ats_ptr_type chks) { the_sweeplst_array[i] = chks ; return ; } ATSinline() ats_void_type the_sweeplst_array_clear_one (ats_int_type i) { the_sweeplst_array[i] = (chunklst)0 ; return ; } ATSinline() ats_void_type the_sweeplst_array_insert_at (ats_ptr_type chks, ats_int_type i) { ((chunklst)chks)->sweep_next = the_sweeplst_array[i] ; the_sweeplst_array[i] = (chunklst)chks ; return /*void*/ ; } /* end of [the_sweeplst_array_insert] /* ****** ****** */ #endif /* __ATS_GC_CATS */ /* end of [gcats1.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/0000755000175000017500000000000013431250607022352 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/gcats1_top_dats.c0000644000175000017500000003507013431250607025602 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-8-30: 14h:38m ** */ /* 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 */ /* external codes at top */ #line 51 "gcats1_top.dats" int the_chunk_count = 0 ; // a soft threshold that can be extended int the_chunk_count_limit = 1 ; // int the_chunk_count_limit = 1024 ; // a hard threshold that cannot be extended int the_chunk_count_limit_max = 8192 ; // a list of freed chunk data freeitmlst the_freeitmlst_chunk_data = (freeitmlst)0 ; #ifdef _ATS_MULTITHREAD // this is the lock that protects the previous variables pthread_mutex_t the_gc_main_lock = PTHREAD_MUTEX_INITIALIZER ; #endif // [_ATS_MULTITHREAD] /* ****** ****** */ chunklst the_sweeplst_array[FREEITMLST_ARRAYSIZE] = { (chunklst)0 } ; #ifdef _ATS_MULTITHREAD pthread_mutex_t the_sweeplst_lock_array[FREEITMLST_ARRAYSIZE] ; ats_void_type gc_sweeplst_lock_array_init () { int i ; pthread_mutex_t *p_lock ; i = 0 ; p_lock = the_sweeplst_lock_array ; while (i < FREEITMLST_ARRAYSIZE) { pthread_mutex_init (p_lock, NULL); i += 1; p_lock += 1 ; } /* fprintf (stderr, "the_sweeplst_lock_array has been initialized.\n") ; */ return ; } #endif /* ****** ****** */ #ifdef _ATS_MULTITHREAD // __thread // freeitmlst the_freeitmlst_array[FREEITMLST_ARRAYSIZE] = // { (freeitmlst)0 } ; __thread freeitmlst *the_freeitmlst_array = (freeitmlst*)0 ; #else /* single thread */ freeitmlst the_freeitmlst_array[FREEITMLST_ARRAYSIZE] = { (freeitmlst)0 } ; #endif /* ****** ****** */ // protecting [the_globalentrylst] in [gc_globalentrylst.dats] #ifdef _ATS_MULTITHREAD pthread_mutex_t the_globalentrylst_lock = PTHREAD_MUTEX_INITIALIZER ; #endif /* ****** ****** */ // manually managed list of allocated memories manmemlst the_manmemlst = (manmemlst)0 ; #ifdef _ATS_MULTITHREAD pthread_mutex_t the_manmemlst_lock = PTHREAD_MUTEX_INITIALIZER ; #endif /* ****** ****** */ #ifdef _ATS_MULTITHREAD pthread_mutex_t the_threadinfolst_lock = PTHREAD_MUTEX_INITIALIZER ; #endif /* ****** ****** */ #if (__WORDSIZE == 32) botsegtbllst the_topsegtbl[TOPSEG_TABLESIZE] = { (botsegtbllst)0 } ; #endif // end of [__WORDSIZE == 32] #if (__WORDSIZE == 64) botsegtbllst the_topsegtbl[TOPSEG_HASHTABLESIZE] = { (botsegtbllst)0 } ; #endif // end of [__WORDSIZE == 64] /* ****** ****** */ ats_int_type the_markstatck_overflow = 0 ; // for debugging purpose // ats_void_type segfault (void) { return *(int*)0 ; } /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_ptr_type, atspre_stdout_get) () ; ATSextern_fun(ats_void_type, atspre_stdout_view_set) () ; ATSextern_fun(ats_ptr_type, atspre_stderr_get) () ; ATSextern_fun(ats_void_type, atspre_stderr_view_set) () ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ref_type, ats_ptr_type, ...) ; ATSextern_fun(ats_int_type, gc_stack_dir_get) () ; ATSextern_fun(ats_void_type, gc_stack_beg_set) (ats_int_type) ; ATSextern_fun(ats_int_type, freeitmlst_length) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, the_freeitmlst_array_get) (ats_int_type) ; ATSextern_fun(ats_int_type, the_chunk_count_get) () ; ATSextern_fun(ats_void_type, the_markstack_extend) (ats_int_type) ; ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, freeitmlst_chunk_data_get) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e10_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type gcats1_top_loop_1 (ats_ref_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_int_type, gcats1_top_statmp21) ; // ATSstatic_void (gcats1_top_statmp22) ; // ATSstatic_void (gcats1_top_statmp23) ; /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_top.dats: 5175(line=208, offs=7) -- 5490(line=218, offs=6) */ ATSstaticdec() ats_void_type gcats1_top_loop_1 (ats_ref_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_int_type, tmp12) ; __ats_lab_gcats1_top_loop_1: #line 210 "gcats1_top.dats" tmp8 = atspre_iadd (11, 1) ; #line 210 "gcats1_top.dats" tmp7 = atspre_ilt (arg1, tmp8) ; #line 210 "gcats1_top.dats" if (tmp7) { #line 211 "gcats1_top.dats" tmp9 = the_freeitmlst_array_get (arg1) ; #line 212 "gcats1_top.dats" tmp10 = freeitmlst_length (tmp9) ; #line 213 "gcats1_top.dats" /* tmp11 = */ atspre_fprintf_exn (arg0, ATSstrcst("freeitmlst(%i):\t%i\n"), arg1, tmp10) ; #line 216 "gcats1_top.dats" tmp12 = atspre_iadd (arg1, 1) ; #line 216 "gcats1_top.dats" arg0 = arg0 ; #line 216 "gcats1_top.dats" arg1 = tmp12 ; #line 216 "gcats1_top.dats" goto __ats_lab_gcats1_top_loop_1 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp6) */ ; } /* end of [gcats1_top_loop_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_top.dats: 4833(line=196, offs=31) -- 5550(line=222, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_int_type, tmp1) ; // ATSlocal_void (tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats: #line 198 "gcats1_top.dats" tmp1 = the_chunk_count_get () ; #line 200 "gcats1_top.dats" /* tmp2 = */ atspre_fprintf_exn (arg0, ATSstrcst("the_chunk_count:\t%i\n"), tmp1) ; #line 203 "gcats1_top.dats" tmp4 = freeitmlst_chunk_data_get () ; #line 203 "gcats1_top.dats" tmp3 = freeitmlst_length (tmp4) ; #line 205 "gcats1_top.dats" /* tmp5 = */ atspre_fprintf_exn (arg0, ATSstrcst("the_free_chunk_data_count:\t%i\n"), tmp3) ; #line 219 "gcats1_top.dats" /* tmp0 = */ gcats1_top_loop_1 (arg0, 0) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_top.dats: 5605(line=224, offs=26) -- 5785(line=231, offs=4) */ ATSglobaldec() ats_void_type gc_print_stats () { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; __ats_lab_gc_print_stats: #line 225 "gcats1_top.dats" tmp14 = atspre_stdout_get () ; #line 225 "gcats1_top.dats" tmp15 = ats_selsin_mac(tmp14, atslab_1) ; #line 227 "gcats1_top.dats" /* tmp16 = */ ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats (tmp15) ; #line 230 "gcats1_top.dats" /* tmp13 = */ atspre_stdout_view_set () ; return /* (tmp13) */ ; } /* end of [gc_print_stats] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_top.dats: 5839(line=233, offs=26) -- 6021(line=240, offs=4) */ ATSglobaldec() ats_void_type gc_prerr_stats () { /* local vardec */ // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; __ats_lab_gc_prerr_stats: #line 234 "gcats1_top.dats" tmp18 = atspre_stderr_get () ; #line 234 "gcats1_top.dats" tmp19 = ats_selsin_mac(tmp18, atslab_1) ; #line 236 "gcats1_top.dats" /* tmp20 = */ ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats (tmp19) ; #line 239 "gcats1_top.dats" /* tmp17 = */ atspre_stderr_view_set () ; return /* (tmp17) */ ; } /* end of [gc_prerr_stats] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload (void) ; // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__dynload () { // ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e10_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&gcats1_top_statmp21, sizeof(ats_int_type)) ; /* marking external values for GC */ /* code for dynamic loading */ #line 244 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload () ; #line 245 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload () ; #line 246 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload () ; #line 247 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload () ; #line 251 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload () ; #line 252 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload () ; #line 253 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload () ; #line 254 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload () ; #line 263 "gcats1_top.dats" gcats1_top_statmp21 = gc_stack_dir_get () ; #line 264 "gcats1_top.dats" /* gcats1_top_statmp22 = */ gc_stack_beg_set (gcats1_top_statmp21) ; #line 281 "gcats1_top.dats" /* gcats1_top_statmp23 = */ the_markstack_extend (1) ; return ; } /* end of [dynload function] */ ats_void_type gc_init () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__dynload () ; return ; } /* external codes at mid */ /* external codes at bot */ #line 150 "gcats1_top.dats" ats_int_type gc_chunk_count_limit_get () { return the_chunk_count_limit ; } ats_void_type gc_chunk_count_limit_set (ats_int_type n) { if (n >= 0) { the_chunk_count_limit = n ; } else { fprintf (stderr, "GC Fatal Error: [gc_chunk_count_limit_set]: negative argument.\n") ; exit (1) ; } return ; } ats_int_type gc_chunk_count_limit_max_get () { return the_chunk_count_limit_max ; } ats_void_type gc_chunk_count_limit_max_set (ats_int_type n) { the_chunk_count_limit_max = n ; return ; } #line 185 "gcats1_top.dats" extern ats_ptr_type the_freeitmlst_chunk_data ; ats_ptr_type freeitmlst_chunk_data_get () { return the_freeitmlst_chunk_data ; } #line 293 "gcats1_top.dats" ats_ptr_type the_globalentrylst = (ats_ptr_type)0 ; // GLOBALENTRYLSTnil // end of ... extern void globalentrylst_insert (ats_ref_type ents, ats_ptr_type ptr, ats_int_type wsz) ; ats_void_type gc_markroot_bsz (ats_ptr_type ptr, ats_int_type bsz/*bytesize*/) { int wsz = (bsz >> NBYTE_PER_WORD_LOG) ; /* fprintf (stderr, "gc_markroot_bsz: ptr = %p\n", ptr) ; fprintf (stderr, "gc_markroot_bsz: bsz = %i\n", bsz) ; fprintf (stderr, "gc_markroot_bsz: wsz = %i\n", wsz) ; */ globalentrylst_insert (&the_globalentrylst, ptr, wsz) ; return ; } /* end of [gc_markroot_bsz] */ /* ****** ****** */ /* end of [gcats1_top_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/gcats1_globalentry_dats.c0000644000175000017500000003027213431250607027321 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-8-30: 14h:38m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } gcats1_globalentry_anairiats_sum_0 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTcons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTnil_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_isub) (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_void_type, globalentry_insert) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, globalentrylst_insert) (ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert) (ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, entrypage_alloc) () ; ATSextern_fun(ats_void_type, gc_mark_entrypage) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, gc_mark_globalentrylst) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats____leak_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTcons_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTnil_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_globalentry.dats: 2733(line=83, offs=33) -- 3549(line=106, offs=4) */ ATSglobaldec() ats_void_type globalentrylst_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_int_type, tmp7) ; __ats_lab_globalentrylst_insert: #line 86 "gcats1_globalentry.dats" do { /* branch: __ats_lab_0 */ #line 87 "gcats1_globalentry.dats" __ats_lab_0_0: #line 87 "gcats1_globalentry.dats" __ats_lab_0_1: #line 87 "gcats1_globalentry.dats" tmp1 = atspre_igt (arg2, 0) ; #line 87 "gcats1_globalentry.dats" if (!tmp1) { goto __ats_lab_3_1 ; } #line 87 "gcats1_globalentry.dats" do { /* branch: __ats_lab_1 */ #line 88 "gcats1_globalentry.dats" __ats_lab_1_0: #line 88 "gcats1_globalentry.dats" if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; } #line 88 "gcats1_globalentry.dats" __ats_lab_1_1: #line 88 "gcats1_globalentry.dats" tmp2 = ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; #line 88 "gcats1_globalentry.dats" tmp3 = &ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; #line 89 "gcats1_globalentry.dats" tmp4 = ats_ptrget_mac(ats_int_type, tmp3) ; #line 91 "gcats1_globalentry.dats" tmp5 = atspre_igte (tmp4, 0) ; #line 91 "gcats1_globalentry.dats" if (tmp5) { #line 92 "gcats1_globalentry.dats" /* tmp6 = */ globalentry_insert (tmp2, tmp4, arg1, arg2) ; #line 94 "gcats1_globalentry.dats" tmp7 = atspre_isub (tmp4, 1) ; #line 94 "gcats1_globalentry.dats" ats_ptrget_mac(ats_int_type, tmp3) = tmp7 ; } else { #line 96 "gcats1_globalentry.dats" /* tmp0 = */ ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert (arg0, arg1, arg2) ; } /* end of [if] */ break ; /* branch: __ats_lab_2 */ #line 99 "gcats1_globalentry.dats" __ats_lab_2_0: #line 99 "gcats1_globalentry.dats" // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 99 "gcats1_globalentry.dats" __ats_lab_2_1: #line 100 "gcats1_globalentry.dats" /* tmp0 = */ ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert (arg0, arg1, arg2) ; break ; } while (0) ; break ; /* branch: __ats_lab_3 */ #line 103 "gcats1_globalentry.dats" __ats_lab_3_0: #line 103 "gcats1_globalentry.dats" __ats_lab_3_1: break ; } while (0) ; return /* (tmp0) */ ; } /* end of [globalentrylst_insert] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_globalentry.dats: 3624(line=108, offs=40) -- 4159(line=123, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert: #line 115 "gcats1_globalentry.dats" tmp9 = entrypage_alloc () ; #line 115 "gcats1_globalentry.dats" tmp10 = ats_selsin_mac(tmp9, atslab_1) ; #line 119 "gcats1_globalentry.dats" tmp11 = atspre_isub (64, 1) ; #line 120 "gcats1_globalentry.dats" /* tmp12 = */ globalentry_insert (tmp10, tmp11, arg1, arg2) ; #line 122 "gcats1_globalentry.dats" tmp14 = atspre_isub (tmp11, 1) ; #line 122 "gcats1_globalentry.dats" tmp13 = ATS_MALLOC(sizeof(gcats1_globalentry_anairiats_sum_0)) ; ats_selptrset_mac(gcats1_globalentry_anairiats_sum_0, tmp13, atslab_0, tmp10) ; ats_selptrset_mac(gcats1_globalentry_anairiats_sum_0, tmp13, atslab_1, tmp14) ; ats_selptrset_mac(gcats1_globalentry_anairiats_sum_0, tmp13, atslab_2, ats_ptrget_mac(ats_ptr_type, arg0)) ; #line 122 "gcats1_globalentry.dats" ats_ptrget_mac(ats_ptr_type, arg0) = tmp13 ; return /* (tmp8) */ ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_globalentry.dats: 4527(line=135, offs=34) -- 4863(line=146, offs=4) */ ATSglobaldec() ats_void_type gc_mark_globalentrylst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab_gc_mark_globalentrylst: #line 136 "gcats1_globalentry.dats" do { /* branch: __ats_lab_4 */ #line 137 "gcats1_globalentry.dats" __ats_lab_4_0: #line 137 "gcats1_globalentry.dats" if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } #line 137 "gcats1_globalentry.dats" __ats_lab_4_1: #line 137 "gcats1_globalentry.dats" tmp16 = ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, arg0, atslab_0) ; #line 137 "gcats1_globalentry.dats" tmp17 = ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, arg0, atslab_1) ; #line 137 "gcats1_globalentry.dats" tmp18 = &ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, arg0, atslab_2) ; #line 138 "gcats1_globalentry.dats" /* tmp19 = */ gc_mark_entrypage (tmp16, tmp17) ; #line 139 "gcats1_globalentry.dats" tmp20 = ats_ptrget_mac(ats_ptr_type, tmp18) ; #line 139 "gcats1_globalentry.dats" arg0 = tmp20 ; #line 139 "gcats1_globalentry.dats" goto __ats_lab_gc_mark_globalentrylst ; // tail call break ; /* branch: __ats_lab_5 */ #line 143 "gcats1_globalentry.dats" __ats_lab_5_0: #line 143 "gcats1_globalentry.dats" // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 143 "gcats1_globalentry.dats" __ats_lab_5_1: break ; } while (0) ; return /* (tmp15) */ ; } /* end of [gc_mark_globalentrylst] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; // ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTcons_0.tag = 0 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTnil_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats____leak_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 150 "gcats1_globalentry.dats" ats_ptr_type entrypage_alloc () { void* p ; p = malloc (GLOBALENTRYPAGESIZE * sizeof(freeitmptrsz_t)) ; /* fprintf (stderr, "entrypage_alloc: p = %p\n", p) ; */ if (!p) { fprintf (stderr, "GC Fatal Error: [gc_globalentry.dats]") ; fprintf (stderr, ": [entrypage_alloc]: [malloc] failed.\n") ; exit (1) ; } // end of [if] return p ; } /* end of [entrypage_alloc] */ /* ****** ****** */ ats_void_type globalentry_insert (ats_ptr_type p0, ats_int_type u, ats_ptr_type p, ats_int_type wsz) { freeitmptrsz_t *p0_u ; p0_u = (freeitmptrsz_t*)p0 + u ; p0_u->atslab_ptr = p ; p0_u->atslab_size = wsz ; return ; } /* globalentry_insert */ /* ****** ****** */ extern ats_void_type gc_mark_ptr (ats_ptr_type) ; ats_void_type gc_mark_entrypage (ats_ptr_type p0, ats_int_type u/*used if higher*/) { int i, j ; freeitmptrsz_t *p0_i ; freeitmlst *p_j ; int wsz ; i = u + 1 ; p0_i = (freeitmptrsz_t*)p0 + i ; /* fprintf (stderr, "gc_mark_entrypage: enter\n") ; */ while (i < GLOBALENTRYPAGESIZE) { // termination: obvious p_j = (freeitmlst*)(p0_i->atslab_ptr) ; wsz = p0_i->atslab_size ; /* fprintf (stderr, "gc_mark_entrypage: p_j = %p(%i)\n", p_j, p_j) ; */ for (j = 0; j < wsz; j += 1, p_j += 1) { gc_mark_ptr (*p_j) ; } i += 1 ; p0_i += 1 ; } // end of [while] /* fprintf (stderr, "gc_mark_entrypage: leave\n") ; */ return ; } /* end of [gc_mark_entrypage] */ /* ****** ****** */ /* end of [gcats1_globalentry_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/gcats1_marking_dats.c0000644000175000017500000005165713431250607026441 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-8-30: 14h:38m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, 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_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, botsegtbllst_get) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, markstackpagelst_nil) () ; ATSextern_fun(ats_bool_type, markstackpagelst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, markstackpagelst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, markstackpagelst_next_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, markstackpagelst_prev_get) (ats_ptr_type) ; ATSextern_fun(ats_void_type, markstackpagelst_entry_get) (ats_ptr_type, ats_int_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, markstackpagelst_entry_set) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, gc_overflow_mark_the_topsegtbl) () ; ATSextern_fun(ats_void_type, gc_mark_the_stack) () ; ATSextern_fun(ats_void_type, gc_mark_the_globalentrylst) () ; ATSextern_fun(ats_void_type, gc_mark_the_manmemlst) () ; ATSextern_fun(ats_void_type, gc_overflow_mark_chunk) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_overflow_mark_botsegtbl) (ats_ptr_type) ; ATSextern_fun(ats_int_type, the_markstack_overflow_get) () ; ATSextern_fun(ats_void_type, the_markstack_overflow_set) () ; ATSextern_fun(ats_void_type, the_markstack_overflow_clear) () ; ATSextern_val(ats_int_type, the_markstackpagecnt) ; ATSextern_val(ats_ptr_type, the_markstackpagelst_fst) ; ATSextern_val(ats_ptr_type, the_markstackpagelst_cur) ; ATSextern_val(ats_int_type, the_markstackposition) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_int_type, the_markstackpagecnt) ; ATSglobal(ats_ptr_type, the_markstackpagelst_fst) ; ATSglobal(ats_ptr_type, the_markstackpagelst_cur) ; ATSglobal(ats_int_type, the_markstackposition) ; /* internal function declarations */ static ats_int_type gcats1_marking_aux_1 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_marking_loop_5 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_marking_loop_7 (ats_int_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, gcats1_marking_statmp43) ; /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 1781(line=56, offs=7) -- 1958(line=60, offs=8) */ ATSstaticdec() ats_int_type gcats1_marking_aux_1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; __ats_lab_gcats1_marking_aux_1: #line 58 "gcats1_marking.dats" tmp2 = markstackpagelst_is_nil (arg0) ; #line 58 "gcats1_marking.dats" if (tmp2) { #line 58 "gcats1_marking.dats" tmp1 = arg1 ; } else { #line 59 "gcats1_marking.dats" tmp3 = markstackpagelst_next_get (arg0) ; #line 59 "gcats1_marking.dats" tmp4 = atspre_iadd (arg1, 1) ; #line 59 "gcats1_marking.dats" arg0 = tmp3 ; #line 59 "gcats1_marking.dats" arg1 = tmp4 ; #line 59 "gcats1_marking.dats" goto __ats_lab_gcats1_marking_aux_1 ; // tail call } /* end of [if] */ return (tmp1) ; } /* end of [gcats1_marking_aux_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 1762(line=55, offs=35) -- 1996(line=63, offs=4) */ ATSglobaldec() ats_int_type markstackpagelst_length (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_markstackpagelst_length: #line 62 "gcats1_marking.dats" tmp0 = gcats1_marking_aux_1 (arg0, 0) ; return (tmp0) ; } /* end of [markstackpagelst_length] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 2079(line=67, offs=25) -- 2677(line=87, offs=4) */ ATSglobaldec() ats_int_type markstack_pop (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_bool_type, tmp7) ; // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab_markstack_pop: #line 68 "gcats1_marking.dats" tmp6 = atspre_isub (ats_ptrget_mac(ats_int_type, arg1), 1) ; #line 70 "gcats1_marking.dats" tmp7 = atspre_igte (tmp6, 0) ; #line 70 "gcats1_marking.dats" if (tmp7) { #line 71 "gcats1_marking.dats" /* tmp8 = */ markstackpagelst_entry_get (ats_ptrget_mac(ats_ptr_type, arg0), tmp6, arg2, arg3) ; #line 73 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = tmp6 ; #line 73 "gcats1_marking.dats" tmp5 = 0 ; } else { #line 75 "gcats1_marking.dats" tmp9 = markstackpagelst_prev_get (ats_ptrget_mac(ats_ptr_type, arg0)) ; #line 77 "gcats1_marking.dats" tmp10 = markstackpagelst_is_cons (tmp9) ; #line 77 "gcats1_marking.dats" if (tmp10) { #line 78 "gcats1_marking.dats" ats_ptrget_mac(ats_ptr_type, arg0) = tmp9 ; #line 79 "gcats1_marking.dats" tmp11 = atspre_isub (4000, 1) ; #line 80 "gcats1_marking.dats" /* tmp12 = */ markstackpagelst_entry_get (ats_ptrget_mac(ats_ptr_type, arg0), tmp11, arg2, arg3) ; #line 82 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = tmp11 ; #line 82 "gcats1_marking.dats" tmp5 = 0 ; } else { #line 84 "gcats1_marking.dats" ats_ptrget_mac(ats_ptr_type, arg2) = atspre_null_ptr ; #line 84 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg3) = 0 ; #line 84 "gcats1_marking.dats" tmp5 = 1 ; } /* end of [if] */ } /* end of [if] */ return (tmp5) ; } /* end of [markstack_pop] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 2751(line=91, offs=26) -- 3336(line=112, offs=4) */ ATSglobaldec() ats_int_type markstack_push (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_bool_type, tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_bool_type, tmp21) ; __ats_lab_markstack_push: #line 92 "gcats1_marking.dats" tmp14 = ats_ptrget_mac(ats_int_type, arg1) ; #line 94 "gcats1_marking.dats" tmp15 = atspre_ilt (tmp14, 4000) ; #line 94 "gcats1_marking.dats" if (tmp15) { #line 95 "gcats1_marking.dats" /* tmp16 = */ markstackpagelst_entry_set (ats_ptrget_mac(ats_ptr_type, arg0), tmp14, arg2, arg3) ; #line 96 "gcats1_marking.dats" tmp17 = atspre_iadd (tmp14, 1) ; #line 97 "gcats1_marking.dats" tmp19 = atspre_ilt (tmp17, 4000) ; #line 97 "gcats1_marking.dats" if (tmp19) { #line 97 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = tmp17 ; } else { #line 99 "gcats1_marking.dats" tmp20 = markstackpagelst_next_get (ats_ptrget_mac(ats_ptr_type, arg0)) ; #line 101 "gcats1_marking.dats" tmp21 = markstackpagelst_is_cons (tmp20) ; #line 101 "gcats1_marking.dats" if (tmp21) { #line 102 "gcats1_marking.dats" ats_ptrget_mac(ats_ptr_type, arg0) = tmp20 ; #line 102 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = 0 ; } else { #line 104 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = 4000 ; } /* end of [if] */ } /* end of [if] */ #line 108 "gcats1_marking.dats" tmp13 = 0 ; } else { #line 110 "gcats1_marking.dats" tmp13 = 1 ; } /* end of [if] */ return (tmp13) ; } /* end of [markstack_push] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 3678(line=124, offs=7) -- 3982(line=132, offs=8) */ ATSstaticdec() ats_void_type gcats1_marking_loop_5 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_bool_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; __ats_lab_gcats1_marking_loop_5: #line 126 "gcats1_marking.dats" tmp24 = atspre_ilt (arg1, 1024) ; #line 126 "gcats1_marking.dats" if (tmp24) { #line 127 "gcats1_marking.dats" tmp25 = botsegtbllst_get (arg0, arg1) ; #line 128 "gcats1_marking.dats" tmp27 = chunklst_is_cons (tmp25) ; #line 128 "gcats1_marking.dats" if (tmp27) { #line 128 "gcats1_marking.dats" /* tmp26 = */ gc_overflow_mark_chunk (tmp25) ; } else { /* empty */ } /* end of [if] */ #line 131 "gcats1_marking.dats" tmp28 = atspre_iadd (arg1, 1) ; #line 131 "gcats1_marking.dats" arg0 = arg0 ; #line 131 "gcats1_marking.dats" arg1 = tmp28 ; #line 131 "gcats1_marking.dats" goto __ats_lab_gcats1_marking_loop_5 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp23) */ ; } /* end of [gcats1_marking_loop_5] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 3611(line=122, offs=38) -- 3999(line=133, offs=2) */ ATSglobaldec() ats_void_type gc_overflow_mark_botsegtbl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; __ats_lab_gc_overflow_mark_botsegtbl: #line 122 "gcats1_marking.dats" /* tmp22 = */ gcats1_marking_loop_5 (arg0, 0) ; return /* (tmp22) */ ; } /* end of [gc_overflow_mark_botsegtbl] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 4796(line=162, offs=9) -- 5062(line=169, offs=10) */ ATSstaticdec() ats_void_type gcats1_marking_loop_7 (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp37) ; ATSlocal (ats_bool_type, tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_int_type, tmp41) ; __ats_lab_gcats1_marking_loop_7: #line 163 "gcats1_marking.dats" tmp38 = atspre_gt_int_int (arg0, 0) ; #line 163 "gcats1_marking.dats" if (tmp38) { #line 164 "gcats1_marking.dats" /* tmp39 = */ the_markstack_overflow_clear () ; #line 165 "gcats1_marking.dats" /* tmp40 = */ gc_overflow_mark_the_topsegtbl () ; #line 166 "gcats1_marking.dats" tmp41 = the_markstack_overflow_get () ; #line 168 "gcats1_marking.dats" arg0 = tmp41 ; #line 168 "gcats1_marking.dats" goto __ats_lab_gcats1_marking_loop_7 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp37) */ ; } /* end of [gcats1_marking_loop_7] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 4329(line=146, offs=23) -- 5118(line=173, offs=4) */ ATSglobaldec() ats_int_type gc_mark_all () { /* local vardec */ ATSlocal (ats_int_type, tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_int_type, tmp34) ; // ATSlocal_void (tmp35) ; ATSlocal (ats_bool_type, tmp36) ; // ATSlocal_void (tmp42) ; __ats_lab_gc_mark_all: #line 147 "gcats1_marking.dats" /* tmp30 = */ gc_mark_the_globalentrylst () ; #line 148 "gcats1_marking.dats" /* tmp31 = */ gc_mark_the_manmemlst () ; #line 152 "gcats1_marking.dats" /* tmp32 = */ the_markstack_overflow_clear () ; #line 153 "gcats1_marking.dats" /* tmp33 = */ gc_mark_the_stack () ; #line 154 "gcats1_marking.dats" tmp34 = the_markstack_overflow_get () ; #line 157 "gcats1_marking.dats" tmp36 = atspre_gt_int_int (tmp34, 0) ; #line 157 "gcats1_marking.dats" if (tmp36) { #line 158 "gcats1_marking.dats" /* tmp35 = */ atspre_prerr_string (ATSstrcst("GC: [gc_mark_all]: mark stack overflow happened!\n")) ; } else { /* empty */ } /* end of [if] */ #line 161 "gcats1_marking.dats" /* tmp42 = */ gcats1_marking_loop_7 (tmp34) ; #line 172 "gcats1_marking.dats" tmp29 = tmp34 ; return (tmp29) ; } /* end of [gc_mark_all] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&gcats1_marking_statmp43, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ #line 195 "gcats1_marking.dats" ATS_GC_MARKROOT(&the_markstackpagecnt, sizeof(ats_int_type)) ; the_markstackpagecnt = 0 ; #line 196 "gcats1_marking.dats" gcats1_marking_statmp43 = markstackpagelst_nil () ; #line 196 "gcats1_marking.dats" ATS_GC_MARKROOT(&the_markstackpagelst_fst, sizeof(ats_ptr_type)) ; the_markstackpagelst_fst = gcats1_marking_statmp43 ; #line 197 "gcats1_marking.dats" ATS_GC_MARKROOT(&the_markstackpagelst_cur, sizeof(ats_ptr_type)) ; the_markstackpagelst_cur = the_markstackpagelst_fst ; #line 198 "gcats1_marking.dats" ATS_GC_MARKROOT(&the_markstackposition, sizeof(ats_int_type)) ; the_markstackposition = 0 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 204 "gcats1_marking.dats" extern ats_ptr_type the_markstackpagelst_fst ; ats_void_type the_markstack_extend (ats_int_type n) { int i ; markstackpagelst p0, p ; p0 = the_markstackpagelst_fst ; if (the_markstackposition != 0) { fprintf ( stderr , "GC: Fatal Error: the_markstack_extend: the_markstackposition = %i.\n" , the_markstackposition ) ; exit (1) ; } // end of [if] for (i = 0; i < n; i += 1) { /* fprintf (stderr, "the_markstack_extend: i = %i\n", i) ; */ p = (markstackpagelst)malloc (sizeof(markstackpage)) ; if (!p) { fprintf ( stderr, "GC Fatal Error: [the_markstack_extend]: malloc failed!\n" ) ; exit (1) ; } // end of [if] if (p0 != NULL) p0->prev = p ; p->next = p0 ; p->prev = NULL ; p0 = p ; } // end of [while] if (n > 0) the_markstackpagecnt += n ; the_markstackpagelst_fst = the_markstackpagelst_cur = p0 ; /* if (the_markstackpagecnt != markstackpagelst_length (p0)) { fprintf ( stderr , "GC: Fatal Error: the_markstack_extend: the_markstackpagecnt = %i.\n" , the_markstackpagecnt ) ; exit (1) ; } // end of [if] */ return ; } /* end of [the_markstack_extend] */ /* ****** ****** */ extern ats_ptr_type gc_ptr_is_valid (ats_ptr_type, ats_ref_type) ; ats_void_type gc_mark_ptr (ats_ptr_type ptr) { chunklst chks ; int ofs ; int itemwsz ; byte *markbits ; int i ; freeitmlst *ptr_i ; freeitmlst ptr_cand ; int overflow ; /* fprintf (stderr, "gc_mark_ptr: first: ptr = %p(%i)\n", ptr, ptr) ; */ chks = (chunklst)gc_ptr_is_valid (ptr, &ofs) ; /* fprintf (stderr, "gc_mark_ptr: chks = %p\n", chks) ; */ if (!chks) return ; // [ptr] is invalid markbits = chks->markbits ; if (MARK_GET(markbits, ofs)) return ; // already marked MARK_SET(markbits, ofs) ; chks->markcnt += 1 ; itemwsz = chks->itemwsz ; while (ptr) { // ptr != NULL /* fprintf (stderr, "gc_mark_ptr: ptr = %p(%i)\n", ptr, ptr) ; fprintf (stderr, "gc_mark_ptr: itemwsz = %i\n", itemwsz); */ if (itemwsz > MARKSTACK_CUTOFF) { overflow = the_markstack_push ( (freeitmlst*)ptr + MARKSTACK_CUTOFF, itemwsz - MARKSTACK_CUTOFF ) ; if (overflow) the_markstack_overflow_set () ; itemwsz = MARKSTACK_CUTOFF ; } // end of [if] // push all the valid pointers onto the markstack except the last one ptr_i = (freeitmlst*)ptr ; for (i = 0; i < itemwsz - 1; i += 1, ptr_i += 1) { ptr_cand = *ptr_i ; /* fprintf (stderr, "gc_mark_ptr: ptr_i = %p(%i)\n", ptr_i, ptr_i) ; fprintf (stderr, "gc_mark_ptr: ptr_cand = %p(%i)\n", ptr_cand, ptr_cand) ; */ chks = (chunklst)gc_ptr_is_valid (ptr_cand, &ofs) ; if (!chks) continue ; // [ptr_cand] is invalid markbits = chks->markbits ; if (MARK_GET(markbits, ofs)) continue ; // already marked MARK_SET(markbits, ofs) ; chks->markcnt += 1 ; overflow = the_markstack_push (ptr_cand, chks->itemwsz) ; if (overflow) the_markstack_overflow_set () ; } // end of [for] ptr_cand = *ptr_i ; /* fprintf (stderr, "gc_mark_ptr: ptr_i = %p(%i)\n", ptr_i, ptr_i) ; fprintf (stderr, "gc_mark_ptr: ptr_cand = %p(%i)\n", ptr_cand, ptr_cand) ; */ chks = (chunklst)gc_ptr_is_valid (ptr_cand, &ofs) ; if (!chks) { // [ptr_cand] is invalid the_markstack_pop (&ptr, &itemwsz) ; continue ; } // end of [if] markbits = chks->markbits ; if (MARK_GET(markbits, ofs)) { // [ptr_cand] is marked the_markstack_pop (&ptr, &itemwsz) ; continue ; } MARK_SET(markbits, ofs) ; chks->markcnt += 1 ; ptr = ptr_cand ; itemwsz = chks->itemwsz ; } // end of [while] } /* end of [gc_mark_ptr] */ #line 331 "gcats1_marking.dats" // [chks] must not be NULL! ats_void_type gc_overflow_mark_chunk (ats_ptr_type chks) { int i, j ; freeitmlst *pi, *pij ; int itemwsz, itemtot ; byte *markbits ; itemwsz = chunklst_itemwsz_get (chks) ; itemtot = chunklst_itemtot_get (chks) ; markbits = chunklst_markbits_get (chks) ; pi = (freeitmlst*)chunklst_data_get (chks) ; for (i = 0; i < itemtot; i += 1, pi += itemwsz) { if (MARK_GET(markbits, i)) { for (j = 0, pij = pi; j < itemwsz; j += 1, pij += 1) { gc_mark_ptr (pij) ; } // end of [for] } // end of [if] } // end of [for] } /* end of [gc_overflow_mark_chunk] */ /* ****** ****** */ #if (__WORDSIZE == 32) ats_void_type gc_overflow_mark_the_topsegtbl () { int i ; botsegtbllst tbls ; for (i = 0; i < TOPSEG_TABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; if (tbls) gc_overflow_mark_botsegtbl (tbls) ; } // end of [for] return ; } /* end of [gc_overflow_mark_the_topsegtbl] */ #endif // end of [__WORDSIZE == 32] #if (__WORDSIZE == 64) ats_void_type gc_overflow_mark_the_topsegtbl () { int i ; botsegtbllst tbls ; for (i = 0; i < TOPSEG_HASHTABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; while (tbls) { // terminating: obvious gc_overflow_mark_botsegtbl (tbls) ; tbls = tbls->hash_next ; } // end of [while] } // end of [for] return ; } /* end of [gc_overflow_mark_the_topsegtbl] */ #endif // end of [__WORDSIZE == 64] #line 386 "gcats1_marking.dats" extern ats_ptr_type the_globalentrylst ; extern ats_void_type gc_mark_globalentrylst (ats_ptr_type ents) ; ats_void_type gc_mark_the_globalentrylst () { gc_mark_globalentrylst (the_globalentrylst) ; return ; } extern ats_ptr_type gc_stack_beg_get () ; ats_void_type gc_mark_the_stack () { intptr_t dir ; // make sure that [dir] is word-aligned! freeitmlst *_fr, *_to ; dir = gc_stack_dir_get () ; if (dir > 0) { _fr = gc_stack_beg_get () ; _to = (freeitmlst*)(&dir) - 1 ; } else { _to = gc_stack_beg_get () ; _fr = (freeitmlst*)(&dir) + 1 ; } // end of [if] /* fprintf (stderr, "gc_mark_the_stack: _fr = %p(%u)\n", _fr, _fr) ; fprintf (stderr, "gc_mark_the_stack: _to = %p(%u)\n", _to, _to) ; fprintf (stderr, "gc_mark_the_stack: _to - _fr = %i\n", _to - _fr) ; */ while (_fr <= _to) { gc_mark_ptr (*_fr) ; _fr += 1 ; // termination: obvious } // end of [while] return ; } /* end of [gc_mark_the_stack] */ /* ****** ****** */ /* end of [gcats1_marking_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/gcats1_collecting_dats.c0000644000175000017500000005365613431250607027135 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-8-30: 14h:38m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_asl_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_main_lock_acquire) () ; ATSextern_fun(ats_void_type, gc_main_lock_release) () ; ATSextern_fun(ats_void_type, the_globalentrylst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_globalentrylst_lock_release) () ; ATSextern_fun(ats_void_type, the_manmemlst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_manmemlst_lock_release) () ; ATSextern_fun(ats_void_type, the_threadinfolst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_threadinfolst_lock_release) () ; ATSextern_fun(ats_void_type, the_sweeplst_lock_acquire_one) (ats_int_type) ; ATSextern_fun(ats_void_type, the_sweeplst_lock_release_one) (ats_int_type) ; ATSextern_fun(ats_void_type, the_sweeplst_lock_acquire_rest) (ats_int_type) ; ATSextern_fun(ats_void_type, the_sweeplst_lock_release_rest) (ats_int_type) ; ATSextern_fun(ats_bool_type, freeitmlst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_sweep_next_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_create_release) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, the_chunk_count_limit_is_not_reached) () ; ATSextern_fun(ats_ptr_type, botsegtbllst_get) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, the_sweeplst_array_get) (ats_int_type) ; ATSextern_fun(ats_void_type, the_sweeplst_array_set) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, the_sweeplst_array_clear_one) (ats_int_type) ; ATSextern_fun(ats_void_type, gc_collect) () ; ATSextern_fun(ats_ptr_type, gc_chunk_threading) (ats_ptr_type) ; ATSextern_fun(ats_void_type, the_sweeplst_array_clear_all) () ; ATSextern_fun(ats_void_type, gc_sweeplst_build_chunk) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_sweeplst_build_botsegtbl) (ats_ptr_type) ; ATSextern_fun(ats_void_type, fprint_the_sweeplst_array_all) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__sweeplst_lock_all_takeout_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type gcats1_collecting_loop_1 (ats_int_type arg0) ; static ats_void_type gcats1_collecting_loop_3 (ats_ptr_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 1953(line=61, offs=7) -- 2267(line=69, offs=8) */ ATSstaticdec() ats_void_type gcats1_collecting_loop_1 (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_int_type, tmp5) ; __ats_lab_gcats1_collecting_loop_1: #line 63 "gcats1_collecting.dats" tmp3 = atspre_iadd (11, 1) ; #line 63 "gcats1_collecting.dats" tmp2 = atspre_ilt (arg0, tmp3) ; #line 63 "gcats1_collecting.dats" if (tmp2) { #line 65 "gcats1_collecting.dats" /* tmp4 = */ the_sweeplst_array_clear_one (arg0) ; #line 68 "gcats1_collecting.dats" tmp5 = atspre_iadd (arg0, 1) ; #line 68 "gcats1_collecting.dats" arg0 = tmp5 ; #line 68 "gcats1_collecting.dats" goto __ats_lab_gcats1_collecting_loop_1 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp1) */ ; } /* end of [gcats1_collecting_loop_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 1892(line=59, offs=40) -- 2305(line=72, offs=4) */ ATSglobaldec() ats_void_type the_sweeplst_array_clear_all () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_the_sweeplst_array_clear_all: #line 71 "gcats1_collecting.dats" /* tmp0 = */ gcats1_collecting_loop_1 (0) ; return /* (tmp0) */ ; } /* end of [the_sweeplst_array_clear_all] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 2618(line=83, offs=7) -- 2964(line=92, offs=6) */ ATSstaticdec() ats_void_type gcats1_collecting_loop_3 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp7) ; ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; __ats_lab_gcats1_collecting_loop_3: #line 85 "gcats1_collecting.dats" tmp8 = atspre_ilt (arg1, 1024) ; #line 85 "gcats1_collecting.dats" if (tmp8) { #line 86 "gcats1_collecting.dats" tmp9 = botsegtbllst_get (arg0, arg1) ; #line 87 "gcats1_collecting.dats" tmp11 = chunklst_is_cons (tmp9) ; #line 87 "gcats1_collecting.dats" if (tmp11) { #line 87 "gcats1_collecting.dats" /* tmp10 = */ gc_sweeplst_build_chunk (tmp9) ; } else { /* empty */ } /* end of [if] */ #line 90 "gcats1_collecting.dats" tmp12 = atspre_iadd (arg1, 1) ; #line 90 "gcats1_collecting.dats" arg0 = arg0 ; #line 90 "gcats1_collecting.dats" arg1 = tmp12 ; #line 90 "gcats1_collecting.dats" goto __ats_lab_gcats1_collecting_loop_3 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp7) */ ; } /* end of [gcats1_collecting_loop_3] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 2599(line=82, offs=39) -- 3005(line=95, offs=4) */ ATSglobaldec() ats_void_type gc_sweeplst_build_botsegtbl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp6) ; __ats_lab_gc_sweeplst_build_botsegtbl: #line 94 "gcats1_collecting.dats" /* tmp6 = */ gcats1_collecting_loop_3 (arg0, 0) ; return /* (tmp6) */ ; } /* end of [gc_sweeplst_build_botsegtbl] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 3190(line=102, offs=34) -- 6455(line=184, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_bool_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_bool_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_int_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate: #line 110 "gcats1_collecting.dats" /* tmp14 = */ the_sweeplst_lock_acquire_one (arg0) ; #line 110 "gcats1_collecting.dats" /* tmp15 = ats_selsin_mac(tmp14, atslab_1) */ ; #line 111 "gcats1_collecting.dats" tmp16 = the_sweeplst_array_get (arg0) ; #line 113 "gcats1_collecting.dats" tmp18 = chunklst_is_cons (tmp16) ; #line 113 "gcats1_collecting.dats" if (tmp18) { #line 113 "gcats1_collecting.dats" tmp17 = tmp16 ; } else { #line 114 "gcats1_collecting.dats" /* tmp19 = */ the_sweeplst_lock_release_one (arg0) ; #line 115 "gcats1_collecting.dats" /* tmp20 = */ gc_main_lock_acquire () ; #line 115 "gcats1_collecting.dats" /* tmp21 = ats_selsin_mac(tmp20, atslab_1) */ ; #line 116 "gcats1_collecting.dats" /* tmp22 = */ the_sweeplst_lock_acquire_one (arg0) ; #line 116 "gcats1_collecting.dats" /* tmp23 = ats_selsin_mac(tmp22, atslab_1) */ ; #line 118 "gcats1_collecting.dats" tmp24 = the_sweeplst_array_get (arg0) ; #line 120 "gcats1_collecting.dats" tmp25 = chunklst_is_cons (tmp24) ; #line 120 "gcats1_collecting.dats" if (tmp25) { #line 121 "gcats1_collecting.dats" /* tmp26 = */ gc_main_lock_release () ; #line 121 "gcats1_collecting.dats" tmp17 = tmp24 ; } else { #line 124 "gcats1_collecting.dats" tmp27 = the_chunk_count_limit_is_not_reached () ; #line 126 "gcats1_collecting.dats" if (tmp27) { #line 127 "gcats1_collecting.dats" tmp28 = atspre_asl_int_int1 (1, arg0) ; #line 127 "gcats1_collecting.dats" tmp17 = chunklst_create_release (arg0, tmp28) ; } else { #line 129 "gcats1_collecting.dats" /* tmp29 = */ the_globalentrylst_lock_acquire () ; #line 129 "gcats1_collecting.dats" /* tmp30 = ats_selsin_mac(tmp29, atslab_1) */ ; #line 130 "gcats1_collecting.dats" /* tmp31 = */ the_manmemlst_lock_acquire () ; #line 130 "gcats1_collecting.dats" /* tmp32 = ats_selsin_mac(tmp31, atslab_1) */ ; #line 131 "gcats1_collecting.dats" /* tmp33 = */ the_threadinfolst_lock_acquire () ; #line 131 "gcats1_collecting.dats" /* tmp34 = ats_selsin_mac(tmp33, atslab_1) */ ; #line 133 "gcats1_collecting.dats" /* tmp35 = */ the_sweeplst_lock_acquire_rest (arg0) ; #line 132 "gcats1_collecting.dats" /* tmp36 = ats_selsin_mac(tmp35, atslab_1) */ ; #line 135 "gcats1_collecting.dats" /* tmp37 = */ gc_collect () ; #line 139 "gcats1_collecting.dats" /* tmp38 = */ the_sweeplst_lock_release_rest (arg0) ; #line 138 "gcats1_collecting.dats" /* tmp39 = ats_selsin_mac(tmp38, atslab_1) */ ; #line 142 "gcats1_collecting.dats" /* tmp40 = */ the_threadinfolst_lock_release () ; #line 143 "gcats1_collecting.dats" /* tmp41 = */ the_manmemlst_lock_release () ; #line 144 "gcats1_collecting.dats" /* tmp42 = */ the_globalentrylst_lock_release () ; #line 145 "gcats1_collecting.dats" tmp43 = the_sweeplst_array_get (arg0) ; #line 152 "gcats1_collecting.dats" tmp44 = chunklst_is_cons (tmp43) ; #line 152 "gcats1_collecting.dats" if (tmp44) { #line 153 "gcats1_collecting.dats" /* tmp45 = */ gc_main_lock_release () ; #line 153 "gcats1_collecting.dats" tmp17 = tmp43 ; } else { #line 155 "gcats1_collecting.dats" tmp46 = atspre_asl_int_int1 (1, arg0) ; #line 155 "gcats1_collecting.dats" tmp17 = chunklst_create_release (arg0, tmp46) ; } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ #line 166 "gcats1_collecting.dats" tmp47 = chunklst_sweep_next_get (tmp17) ; #line 167 "gcats1_collecting.dats" /* tmp48 = */ the_sweeplst_array_set (arg0, tmp47) ; #line 168 "gcats1_collecting.dats" /* tmp49 = */ the_sweeplst_lock_release_one (arg0) ; #line 169 "gcats1_collecting.dats" tmp50 = gc_chunk_threading (tmp17) ; #line 176 "gcats1_collecting.dats" tmp51 = freeitmlst_is_nil (tmp50) ; #line 176 "gcats1_collecting.dats" if (tmp51) { #line 177 "gcats1_collecting.dats" /* tmp52 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error")) ; #line 178 "gcats1_collecting.dats" /* tmp53 = */ atspre_prerr_string (ATSstrcst(": [gc_freeitmlst_generate]: the generated freeitmlst is nil")) ; #line 179 "gcats1_collecting.dats" /* tmp54 = */ atspre_prerr_newline () ; #line 180 "gcats1_collecting.dats" /* tmp13 = */ ats_exit (1) ; } else { #line 182 "gcats1_collecting.dats" tmp13 = tmp50 ; } /* end of [if] */ return (tmp13) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__sweeplst_lock_all_takeout_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 188 "gcats1_collecting.dats" // [chks] must not be NULL! ats_void_type gc_sweeplst_build_chunk (ats_ptr_type chks) { int i, j ; freeitmlst *pi, *pij ; int itemwsz_log, itemtot, markcnt ; int freecnt ; markcnt = chunklst_markcnt_get (chks) ; /* fprintf (stderr, "gc_sweeplst_build_chunk: markcnt = %i\n", markcnt) ; */ #ifdef _ATS_MULTITHREAD // this logic is problematic! freecnt = chunklst_freecnt_get (chks) ; if (freecnt > 0) { fprintf (stderr, "gc_sweeplst_build_chunk: freecnt = %i\n", freecnt) ; return ; } #endif if (markcnt == 0) { chunklst_destroy (chks) ; return ; } itemtot = chunklst_itemtot_get (chks) ; if (markcnt > itemtot * CHUNK_SWEEP_CUTOFF) return ; itemwsz_log = chunklst_itemwsz_log_get (chks) ; /* if (itemwsz_log < 0) { // chks->itemtot = 1 and markcnt = 1 fprintf (stderr, "GC: Fatal Error: [gc_sweeplst_build_chunk]") ; fprintf (stderr, ": itemwsz_log = %i\n", itemwsz_log) ; exit (1) ; } */ /* fprintf (stderr, "gc_sweeplst_build_chunk: itemwsz_log = %i\n", itemwsz_log) ; */ the_sweeplst_array_insert_at (chks, itemwsz_log) ; return ; } /* end of [gc_sweeplst_build_chunk] */ /* ****** ****** */ #if (__WORDSIZE == 32) ats_void_type gc_sweeplst_build_the_topsegtbl () { int i ; botsegtbllst tbls ; the_sweeplst_array_clear_all () ; for (i = 0; i < TOPSEG_TABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; if (tbls) gc_sweeplst_build_botsegtbl (tbls) ; } // end of [for] return ; } /* end of [gc_sweeplst_build_the_topsegtbl] */ #endif // end of [__WORDSIZE == 32] #if (__WORDSIZE == 64) ats_void_type gc_sweeplst_build_the_topsegtbl () { int i ; botsegtbllst tbls ; the_sweeplst_array_clear_all () ; for (i = 0; i < TOPSEG_HASHTABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; while (tbls) { // termination: obvious gc_sweeplst_build_botsegtbl (tbls) ; tbls = tbls->hash_next ; } // end of [while] } // end of [for] return ; } /* end of [gc_sweeplst_build_the_topsegtbl] */ #endif // end of [__WORDSIZE == 64] #line 266 "gcats1_collecting.dats" #define NCHUNK_PER_MARKSTACKPAGE 32 #define MARKSTACK_EXTEND_INCREMENT 2 extern int the_chunk_count ; extern int the_chunk_count_limit ; extern int the_chunk_count_limit_max ; extern int the_markstackpagecnt ; #ifdef _ATS_MULTITHREAD extern sem_t the_sleep_semaphore ; extern threadinfolst the_threadinfolst_fst ; extern __thread threadinfolst the_threadinfolst_self ; #endif ats_void_type gc_collect () { int overflow, nchunk, nmarkstackpage ; jmp_buf reg_save ; // register contents are roots #ifdef _ATS_MULTITHREAD threadinfolst infolst ; int nother ; #endif /* fprintf( stderr , "GC begs: the_chunk_count = %i and the_chunk_count_limit = %i\n" , the_chunk_count , the_chunk_count_limit ) ; */ setjmp (reg_save) ; // push registers onto the stack asm volatile ("": : :"memory") ; // stop potential optimization nmarkstackpage = (the_chunk_count << CHUNK_WORDSIZE_LOG) ; nmarkstackpage /= (MARKSTACK_PAGESIZE * NCHUNK_PER_MARKSTACKPAGE) ; nmarkstackpage += 1 ; nmarkstackpage -= the_markstackpagecnt ; /* fprintf (stderr, "gc_collect: nmarkstackpage = %i\n", nmarkstackpage) ; */ the_markstack_extend (nmarkstackpage) ; #ifdef _ATS_MULTITHREAD // put all of the other threads into sleep infolst = the_threadinfolst_fst ; nother = 0 ; while (infolst) { if (infolst != the_threadinfolst_self) { fprintf (stderr, "gc_collect: SIGUSR1: infolst->pid = %i\n", (int)(infolst->pid)) ; pthread_kill (infolst->pid, SIGUSR1) ; nother += 1 ; } infolst = infolst->next ; } while (nother) { // ordering is irrelevant fprintf (stderr, "gc_collect: sem_wait: bef: nother = %i\n", nother) ; sem_wait (&the_sleep_semaphore) ; nother -= 1 ; fprintf (stderr, "gc_collect: sem_wait: aft: nother = %i\n", nother) ; } fprintf (stderr, "gc_collect: nother = %i\n", nother) ; #endif // end of [_ATS_MULTITHREAD] gc_markbits_clear_the_topsegtbl () ; // clear all mark bits /* fprintf ( stderr, "gc_collect: gc_markbits_clear_topsegtbl: done\n", nmarkstackpage ) ; // end of [fprintf] */ overflow = gc_mark_all () ; // marking phase /* fprintf (stderr, "gc_collect: gc_mark_all: done\n") ; */ #ifdef _ATS_MULTITHREAD // wake up all of the sleeping threads infolst = the_threadinfolst_fst ; while (infolst) { if (infolst != the_threadinfolst_self) { fprintf (stderr, "gc_collect: SIGUSR2: infolst->pid = %i\n", (int)(infolst->pid)) ; pthread_kill (infolst->pid, SIGUSR2) ; } infolst = infolst->next ; } #endif // end of [_ATS_MULTITHREAD] the_freeitmlst_array_mark_unset () ; /* is this really needed? */ // [gc_mark_threadinfolst_one] is not called on [the_threadinfolst_self] // Therefore [the_freeitmlst_array_clear_all] must be called! the_freeitmlst_array_clear_all () ; /* clear the freeitmlst array */ gc_sweeplst_build_the_topsegtbl () ; // sweep chunks into [the_sweeplst_array] if (overflow > 0) { /* fprintf (stderr, "gc_collect: markstack overflow happend.\n") ; */ the_markstack_extend (MARKSTACK_EXTEND_INCREMENT) ; } /* fprintf( stderr , "GC ends: the_chunk_count = %i and the_chunk_count_limit = %i\n" , the_chunk_count , the_chunk_count_limit ) ; */ if (the_chunk_count_limit_max >= 0) { // [the_chunk_count_limit_max] is finite if (the_chunk_count_limit >= the_chunk_count_limit_max) { // fprintf(stderr, "GC: the_chunk_count_limit = %i\n", the_chunk_count_limit) ; // fprintf(stderr, "GC: the_chunk_count_limit_max = %i\n", the_chunk_count_limit_max) ; fprintf(stderr, "GC: Warning: the maximal chunk count limit is reached!\n") ; return ; } } /* end of [if] */ if (the_chunk_count >= the_chunk_count_limit * CHUNK_LIMIT_EXTEND_CUTOFF) the_chunk_count_limit *= 2 ; /* fprintf( stderr , "GC ends: update: the_chunk_count_limit = %i\n", the_chunk_count_limit ) ; */ return ; } /* end of [gc_collect] */ #line 395 "gcats1_collecting.dats" ats_ptr_type gc_chunk_threading (ats_ptr_type chks) { int i, j ; int itemwsz, itemtot ; freeitmlst data0, data, data_next ; int markcnt ; byte *markbits ; itemwsz = ((chunklst)chks)->itemwsz ; itemtot = ((chunklst)chks)->itemtot ; markcnt = ((chunklst)chks)->markcnt ; data0 = ((chunklst)chks)->data ; if (markcnt == 0) { // fast threading // threading all the freeitms in the created chunk data = data0 ; data_next = data0 ; for (i = 1; i < itemtot; i += 1) { data_next = (freeitmlst*)data_next + itemwsz ; *(freeitmlst*)data = data_next ; data = data_next ; } // end of [for] *(freeitmlst*)data = (freeitmlst)0 ; goto GC_CHUNK_THREADING_IS_DONE ; } // end of [if] markbits = ((chunklst)chks)-> markbits ; for (i = 0; i < itemtot; i += 1) { if (!MARK_GET (markbits, i)) break ; } if (i == itemtot) { data0 = (freeitmlst)0 ; goto GC_CHUNK_THREADING_IS_DONE ; } data0 = (freeitmlst*)data0 + i * itemwsz; data = data0 ; data_next = data0 ; for (j = i + 1; j < itemtot; j += 1) { data_next = (freeitmlst*)data_next + itemwsz ; if (!MARK_GET (markbits, j)) { *(freeitmlst*)data = data_next ; data = data_next ; } // end of [if] } // end of [for] *(freeitmlst*)data = (freeitmlst)0 ; /* if (itemtot - markcnt != freeitmlst_length (data0)) { fprintf (stderr, "GC: Fatal Error") ; fprintf (stderr, ": [gc_chunk_threading]: consistency check failed.\n") ; fprintf (stderr, "itemtot = %i\n", itemtot) ; fprintf (stderr, "markcnt = %i\n", markcnt) ; fprintf (stderr, "freeitmlst_length(data0) = %i\n", freeitmlst_length(data0)) ; exit (1) ; } */ GC_CHUNK_THREADING_IS_DONE: return data0 ; } /* end of [gc_chunk_threading] */ /* ****** ****** */ /* end of [gcats1_collecting_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/gcats1_manops_dats.c0000644000175000017500000002265613431250607026303 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-8-30: 14h:38m ** */ /* 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 */ /* external codes at top */ #line 39 "gcats1_manops.dats" #include // for [offsetof] extern void *malloc (size_t bsz) ; // see [stdlib.h] extern void *calloc (size_t n, size_t tsz) ; // see [stdlib.h] extern void free (void*) ; // see [stdlib.h] extern void *realloc (void *ptr, size_t bsz) ; // see [stdlib.h] #line 71 "gcats1_manops.dats" static inline ats_void_type gc_mark_the_manmemlst_aux (ats_ptr_type p0, ats_int_type sz) { int i ; freeitmlst *p_i ; p_i = (freeitmlst*)p0 ; for (i = 0; i < sz; i += 1, p_i += 1) gc_mark_ptr (*p_i) ; return ; } /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, the_manmemlst_get) () ; ATSextern_fun(ats_bool_type, manmemlst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_int_type, manmemlst_itemwsz_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, manmemlst_next_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, manmemlst_data_get) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_mark_the_manmemlst_aux) (ats_ptr_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type gcats1_manops_aux_1 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_manops_auxlst_3 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_manops.dats: 1994(line=62, offs=7) -- 2124(line=63, offs=75) */ ATSstaticdec() ats_int_type gcats1_manops_aux_1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; __ats_lab_gcats1_manops_aux_1: #line 63 "gcats1_manops.dats" tmp2 = manmemlst_is_cons (arg0) ; #line 63 "gcats1_manops.dats" if (tmp2) { #line 63 "gcats1_manops.dats" tmp3 = manmemlst_next_get (arg0) ; #line 63 "gcats1_manops.dats" tmp4 = atspre_iadd (arg1, 1) ; #line 63 "gcats1_manops.dats" arg0 = tmp3 ; #line 63 "gcats1_manops.dats" arg1 = tmp4 ; #line 63 "gcats1_manops.dats" goto __ats_lab_gcats1_manops_aux_1 ; // tail call } else { #line 63 "gcats1_manops.dats" tmp1 = arg1 ; } /* end of [if] */ return (tmp1) ; } /* end of [gcats1_manops_aux_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_manops.dats: 1976(line=61, offs=28) -- 2164(line=67, offs=4) */ ATSglobaldec() ats_int_type manmemlst_length (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_manmemlst_length: #line 66 "gcats1_manops.dats" tmp0 = gcats1_manops_aux_1 (arg0, 0) ; return (tmp0) ; } /* end of [manmemlst_length] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_manops.dats: 2496(line=87, offs=7) -- 2838(line=97, offs=8) */ ATSstaticdec() ats_void_type gcats1_manops_auxlst_3 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_bool_type, tmp7) ; // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_gcats1_manops_auxlst_3: #line 88 "gcats1_manops.dats" tmp7 = manmemlst_is_cons (arg0) ; #line 88 "gcats1_manops.dats" if (tmp7) { #line 90 "gcats1_manops.dats" tmp9 = manmemlst_data_get (arg0) ; #line 90 "gcats1_manops.dats" tmp10 = manmemlst_itemwsz_get (arg0) ; #line 89 "gcats1_manops.dats" /* tmp8 = */ gc_mark_the_manmemlst_aux (tmp9, tmp10) ; #line 96 "gcats1_manops.dats" tmp11 = manmemlst_next_get (arg0) ; #line 96 "gcats1_manops.dats" arg0 = tmp11 ; #line 96 "gcats1_manops.dats" goto __ats_lab_gcats1_manops_auxlst_3 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp6) */ ; } /* end of [gcats1_manops_auxlst_3] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_manops.dats: 2481(line=86, offs=33) -- 2896(line=100, offs=4) */ ATSglobaldec() ats_void_type gc_mark_the_manmemlst () { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab_gc_mark_the_manmemlst: #line 99 "gcats1_manops.dats" tmp12 = the_manmemlst_get () ; #line 99 "gcats1_manops.dats" /* tmp5 = */ gcats1_manops_auxlst_3 (tmp12) ; return /* (tmp5) */ ; } /* end of [gc_mark_the_manmemlst] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 104 "gcats1_manops.dats" extern manmemlst the_manmemlst ; #ifdef _ATS_MULTITHREAD extern pthread_mutex_t the_manmemlst_lock ; #endif ats_ptr_type gc_man_malloc_bsz (ats_int_type bsz) { manmemlst mms ; mms = (manmemlst)malloc(sizeof(manmem) + bsz) ; if (!mms) { fprintf (stderr, "[gc_man_malloc_bsz]: [malloc] failed.\n") ; exit (1) ; } // end of [if] mms->itemwsz = bsz >> NBYTE_PER_WORD_LOG ; mms->prev = (manmemlst)0 ; #ifdef _ATS_MULTITHREAD pthread_mutex_lock (&the_manmemlst_lock) ; #endif if (the_manmemlst) { the_manmemlst->prev = mms ; } mms->next = the_manmemlst ; the_manmemlst = mms ; #ifdef _ATS_MULTITHREAD pthread_mutex_unlock (&the_manmemlst_lock) ; #endif return (mms->data) ; } /* end of [gc_man_malloc_bsz] */ // ats_ptr_type gc_man_calloc_bsz (ats_int_type n, ats_int_type bsz) { int nbsz = n * bsz ; ats_ptr_type _data = gc_man_malloc_bsz (nbsz) ; memset (_data, 0, nbsz) ; return (_data) ; } /* end of [gc_man_calloc_bsz] */ // ats_void_type gc_man_free (ats_ptr_type ptr) { manmemlst mms, mms_prev, mms_next ; mms = (manmemlst)((byte*)ptr - offsetof(manmem, data)) ; mms_prev = mms->prev ; mms_next = mms->next ; #ifdef _ATS_MULTITHREAD pthread_mutex_lock (&the_manmemlst_lock) ; #endif if (mms_next) { mms_next->prev = mms_prev ; } /* end of [if] */ if (mms_prev) { mms_prev->next = mms_next ; } else { the_manmemlst = mms_next ; } /* end of [if] */ #ifdef _ATS_MULTITHREAD pthread_mutex_unlock (&the_manmemlst_lock) ; #endif free (mms) ; return ; } /* end of [gc_man_free] */ // ats_ptr_type gc_man_realloc_bsz (ats_ptr_type ptr, ats_int_type bsz) { // manmemlst mms, mms_prev, mms_next ; // if (!ptr) return gc_man_malloc_bsz (bsz) ; // mms = (manmemlst)((byte*)ptr - offsetof(manmem, data)) ; mms_prev = mms->prev ; mms_next = mms->next ; mms = (manmemlst)realloc(mms, sizeof(manmem) + bsz) ; // if (!mms) { fprintf (stderr, "[gc_man_realloc_bsz]: [realloc] failed.\n") ; exit (1) ; } // end of [if] // mms->itemwsz = bsz >> NBYTE_PER_WORD_LOG ; // #ifdef _ATS_MULTITHREAD pthread_mutex_lock (&the_manmemlst_lock) ; #endif // if (mms_next) { mms_next->prev = mms ; } /* end of [if] */ // if (mms_prev) { mms_prev->next = mms ; } else { the_manmemlst = mms ; } /* end of [if] */ // #ifdef _ATS_MULTITHREAD pthread_mutex_unlock (&the_manmemlst_lock) ; #endif // return (mms->data) ; // } /* end of [gc_man_realloc_bsz] */ /* ****** ****** */ /* end of [gcats1_manops_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/.keeper0000644000175000017500000000000013431250607023614 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/gcats1_chunk_dats.c0000644000175000017500000005623313431250607026114 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-8-30: 14h:38m ** */ /* 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 */ /* external codes at top */ #line 39 "gcats1_chunk.dats" #include "config.h" // automatically generated by [configure] // [posix_memalign] is in [stdlib.h] extern int posix_memalign(void **memptr, size_t alignment, size_t size); // [memalign] is in [stdlib.h] or [malloc.h] extern void *memalign(size_t boundary, size_t size); static inline int gcats_memalign ( void **memptr , size_t alignment , size_t size ) { int err ; #if HAVE_POSIX_MEMALIGN // for [posix_memalign] // fprintf (stderr, "posix_memalign: bef\n") ; err = posix_memalign (memptr, alignment, size) ; // fprintf (stderr, "posix_memalign: aft\n") ; #elif HAVE_MEMALIGN // if [memalign] is avaiable void *ptr ; ptr = memalign(alignment, size) ; *memptr = ptr ; err = (ptr ? 0 : -1) ; #else // neither [posix_memalign] nor [memalign] is available void *ptr ; ptr = malloc (size + alignment - 1) ; *memptr = ptr ; err = (ptr ? 0 : -1) ; #endif /* fprintf (stderr, "gcats_memalign: size = %i\n", size); fprintf (stderr, "gcats_memalign: *memptr = %p(%i)\n", *memptr, *memptr); */ return err ; } /* end of [gcats_memalign] */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_asl_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_asr_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst2ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_main_lock_release) () ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_int_type, chunklst_itemwsz_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_data_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_data_nonalign_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_sweep_next_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_create) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, the_chunk_count_dec_by) (ats_int_type) ; ATSextern_fun(ats_uintptr1_type, PTR_TOPSEG_GET) (ats_ptr_type) ; ATSextern_fun(ats_int_type, PTR_BOTSEG_GET) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, botsegtbllst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, botsegtbllst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, botsegtbl_make_64) (ats_uintptr1_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, botsegtbllst_get) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, botsegtbllst_set) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, botsegtbllst_clear) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get) (ats_uintptr1_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some) (ats_uintptr1_type) ; ATSextern_fun(ats_ptr_type, the_topsegtbl_get_64) (ats_uintptr1_type) ; ATSextern_fun(ats_void_type, the_topsegtbl_set_64) (ats_uintptr1_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, the_topsegtbl_getfst_64) (ats_uintptr1_type) ; ATSextern_fun(ats_void_type, chunklst_insert_into_table) (ats_ptr_type) ; ATSextern_fun(ats_void_type, chunklst_remove_from_table) (ats_ptr_type) ; ATSextern_fun(ats_void_type, freeitmlst_chunk_data_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, freeitmlst_chunk_data_recycle) (ats_ptr_type) ; ATSextern_fun(ats_void_type, chunk_header_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_markbits_clear_chunk) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_markbits_clear_botsegtbl) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type gcats1_chunk_aux_1 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_chunk_loop_9 (ats_ptr_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 2776(line=91, offs=7) -- 3003(line=98, offs=6) */ ATSstaticdec() ats_int_type gcats1_chunk_aux_1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; __ats_lab_gcats1_chunk_aux_1: #line 93 "gcats1_chunk.dats" tmp2 = chunklst_is_cons (arg0) ; #line 93 "gcats1_chunk.dats" if (tmp2) { #line 94 "gcats1_chunk.dats" tmp3 = chunklst_sweep_next_get (arg0) ; #line 94 "gcats1_chunk.dats" tmp4 = atspre_iadd (arg1, 1) ; #line 94 "gcats1_chunk.dats" arg0 = tmp3 ; #line 94 "gcats1_chunk.dats" arg1 = tmp4 ; #line 94 "gcats1_chunk.dats" goto __ats_lab_gcats1_chunk_aux_1 ; // tail call } else { #line 96 "gcats1_chunk.dats" tmp1 = arg1 ; } /* end of [if] */ return (tmp1) ; } /* end of [gcats1_chunk_aux_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 2757(line=90, offs=33) -- 3042(line=101, offs=4) */ ATSglobaldec() ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__chunklst_sweep_length (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__chunklst_sweep_length: #line 100 "gcats1_chunk.dats" tmp0 = gcats1_chunk_aux_1 (arg0, 0) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__chunklst_sweep_length] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 4341(line=148, offs=29) -- 4385(line=148, offs=73) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get (ats_uintptr1_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get: #line 148 "gcats1_chunk.dats" tmp5 = the_topsegtbl_get_64 (arg0) ; return (tmp5) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 4420(line=150, offs=34) -- 5042(line=168, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some (ats_uintptr1_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; // ATSlocal_void (tmp11) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some: #line 151 "gcats1_chunk.dats" tmp7 = the_topsegtbl_get_64 (arg0) ; #line 153 "gcats1_chunk.dats" tmp8 = botsegtbllst_is_nil (tmp7) ; #line 153 "gcats1_chunk.dats" if (tmp8) { #line 160 "gcats1_chunk.dats" tmp9 = the_topsegtbl_getfst_64 (arg0) ; #line 161 "gcats1_chunk.dats" tmp10 = botsegtbl_make_64 (arg0, tmp9) ; #line 162 "gcats1_chunk.dats" /* tmp11 = */ the_topsegtbl_set_64 (arg0, tmp10) ; #line 164 "gcats1_chunk.dats" tmp6 = tmp10 ; } else { #line 166 "gcats1_chunk.dats" tmp6 = tmp7 ; } /* end of [if] */ return (tmp6) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 5366(line=180, offs=38) -- 5650(line=188, offs=4) */ ATSglobaldec() ats_void_type chunklst_insert_into_table (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_uintptr1_type, tmp15) ; ATSlocal (ats_uintptr1_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; __ats_lab_chunklst_insert_into_table: #line 181 "gcats1_chunk.dats" tmp13 = chunklst_data_get (arg0) ; #line 182 "gcats1_chunk.dats" tmp14 = freeitmlst2ptr (tmp13) ; #line 183 "gcats1_chunk.dats" tmp15 = PTR_TOPSEG_GET (tmp14) ; #line 183 "gcats1_chunk.dats" tmp16 = ats_selsin_mac(tmp15, atslab_1) ; #line 184 "gcats1_chunk.dats" tmp17 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some (tmp16) ; #line 185 "gcats1_chunk.dats" tmp18 = PTR_BOTSEG_GET (tmp14) ; #line 187 "gcats1_chunk.dats" /* tmp12 = */ botsegtbllst_set (tmp17, tmp18, arg0) ; return /* (tmp12) */ ; } /* end of [chunklst_insert_into_table] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 5728(line=190, offs=38) -- 6252(line=206, offs=4) */ ATSglobaldec() ats_void_type chunklst_remove_from_table (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_uintptr1_type, tmp22) ; ATSlocal (ats_uintptr1_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; __ats_lab_chunklst_remove_from_table: #line 191 "gcats1_chunk.dats" tmp20 = chunklst_data_get (arg0) ; #line 192 "gcats1_chunk.dats" tmp21 = freeitmlst2ptr (tmp20) ; #line 193 "gcats1_chunk.dats" tmp22 = PTR_TOPSEG_GET (tmp21) ; #line 193 "gcats1_chunk.dats" tmp23 = ats_selsin_mac(tmp22, atslab_1) ; #line 194 "gcats1_chunk.dats" tmp24 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get (tmp23) ; #line 196 "gcats1_chunk.dats" tmp25 = botsegtbllst_is_cons (tmp24) ; #line 196 "gcats1_chunk.dats" if (tmp25) { #line 197 "gcats1_chunk.dats" tmp26 = PTR_BOTSEG_GET (tmp21) ; #line 199 "gcats1_chunk.dats" /* tmp19 = */ botsegtbllst_clear (tmp24, tmp26) ; } else { #line 201 "gcats1_chunk.dats" /* tmp27 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error: [chunklst_remove_from_table]")) ; #line 202 "gcats1_chunk.dats" /* tmp28 = */ atspre_prerr_string (ATSstrcst(": the chunk to be removed is not in the table!")) ; #line 203 "gcats1_chunk.dats" /* tmp29 = */ atspre_prerr_newline () ; #line 204 "gcats1_chunk.dats" /* tmp19 = */ ats_exit (1) ; } /* end of [if] */ return /* (tmp19) */ ; } /* end of [chunklst_remove_from_table] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 6350(line=211, offs=3) -- 6532(line=216, offs=4) */ ATSglobaldec() ats_ptr_type chunklst_create_release (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; __ats_lab_chunklst_create_release: #line 212 "gcats1_chunk.dats" tmp31 = chunklst_create (arg0, arg1) ; #line 213 "gcats1_chunk.dats" /* tmp32 = */ gc_main_lock_release () ; #line 215 "gcats1_chunk.dats" tmp30 = tmp31 ; return (tmp30) ; } /* end of [chunklst_create_release] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 6862(line=228, offs=28) -- 7831(line=257, offs=4) */ ATSglobaldec() ats_void_type chunklst_destroy (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_int_type, tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_int_type, tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_int_type, tmp40) ; ATSlocal (ats_int_type, tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_bool_type, tmp43) ; ATSlocal (ats_int_type, tmp44) ; __ats_lab_chunklst_destroy: #line 235 "gcats1_chunk.dats" /* tmp34 = */ chunklst_remove_from_table (arg0) ; #line 236 "gcats1_chunk.dats" tmp35 = chunklst_data_nonalign_get (arg0) ; #line 237 "gcats1_chunk.dats" tmp36 = chunklst_itemwsz_get (arg0) ; #line 238 "gcats1_chunk.dats" /* tmp37 = */ chunk_header_free (arg0) ; #line 241 "gcats1_chunk.dats" tmp41 = atspre_asl_int_int1 (1, 11) ; #line 241 "gcats1_chunk.dats" tmp40 = atspre_sub_int_int (tmp41, 1) ; #line 241 "gcats1_chunk.dats" tmp39 = atspre_add_int_int (tmp36, tmp40) ; #line 241 "gcats1_chunk.dats" tmp38 = atspre_asr_int_int1 (tmp39, 11) ; #line 242 "gcats1_chunk.dats" /* tmp42 = */ the_chunk_count_dec_by (tmp38) ; #line 244 "gcats1_chunk.dats" do { /* branch: __ats_lab_0 */ #line 245 "gcats1_chunk.dats" __ats_lab_0_0: #line 245 "gcats1_chunk.dats" __ats_lab_0_1: #line 245 "gcats1_chunk.dats" tmp44 = atspre_asl_int_int1 (1, 11) ; #line 245 "gcats1_chunk.dats" tmp43 = atspre_gt_int_int (tmp36, tmp44) ; #line 245 "gcats1_chunk.dats" if (!tmp43) { goto __ats_lab_1_1 ; } #line 252 "gcats1_chunk.dats" /* tmp33 = */ freeitmlst_chunk_data_free (tmp35) ; break ; /* branch: __ats_lab_1 */ #line 254 "gcats1_chunk.dats" __ats_lab_1_0: #line 254 "gcats1_chunk.dats" __ats_lab_1_1: #line 255 "gcats1_chunk.dats" /* tmp33 = */ freeitmlst_chunk_data_recycle (tmp35) ; break ; } while (0) ; return /* (tmp33) */ ; } /* end of [chunklst_destroy] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 8163(line=269, offs=7) -- 8452(line=277, offs=8) */ ATSstaticdec() ats_void_type gcats1_chunk_loop_9 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp46) ; ATSlocal (ats_bool_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_bool_type, tmp50) ; ATSlocal (ats_int_type, tmp51) ; __ats_lab_gcats1_chunk_loop_9: #line 271 "gcats1_chunk.dats" tmp47 = atspre_ilt (arg1, 1024) ; #line 271 "gcats1_chunk.dats" if (tmp47) { #line 272 "gcats1_chunk.dats" tmp48 = botsegtbllst_get (arg0, arg1) ; #line 273 "gcats1_chunk.dats" tmp50 = chunklst_is_cons (tmp48) ; #line 273 "gcats1_chunk.dats" if (tmp50) { #line 273 "gcats1_chunk.dats" /* tmp49 = */ gc_markbits_clear_chunk (tmp48) ; } else { /* empty */ } /* end of [if] */ #line 276 "gcats1_chunk.dats" tmp51 = atspre_iadd (arg1, 1) ; #line 276 "gcats1_chunk.dats" arg0 = arg0 ; #line 276 "gcats1_chunk.dats" arg1 = tmp51 ; #line 276 "gcats1_chunk.dats" goto __ats_lab_gcats1_chunk_loop_9 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp46) */ ; } /* end of [gcats1_chunk_loop_9] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 8114(line=267, offs=39) -- 8491(line=280, offs=4) */ ATSglobaldec() ats_void_type gc_markbits_clear_botsegtbl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp45) ; __ats_lab_gc_markbits_clear_botsegtbl: #line 279 "gcats1_chunk.dats" /* tmp45 = */ gcats1_chunk_loop_9 (arg0, 0) ; return /* (tmp45) */ ; } /* end of [gc_markbits_clear_botsegtbl] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 284 "gcats1_chunk.dats" #if (__WORDSIZE == 32) ats_ptr_type botsegtbl_make_32 () { botsegtbllst tbls ; /* fprintf ( stderr, "botsegtbl_make_32: sizeof(botsegtbl) = %i\n", sizeof(botsegtbl) ) ; // end of [fprintf] */ tbls = (botsegtbllst)malloc(sizeof(botsegtbl)) ; if (!tbls) { fprintf (stderr, "Exit: [botsegtbl_make_32: malloc] failed\n") ; exit (1) ; } // end of [if] memset(tbls, 0, sizeof(botsegtbl)) ; /* fprintf (stderr, "botsegtbl_make_32: return: tbls = %p\n", tbls) ; */ return tbls ; } /* end of [botsegtbl_make_32] */ #endif // end of [__WORDSIZE == 32] /* ****** ****** */ #if (__WORDSIZE == 64) ats_ptr_type botsegtbl_make_64 (ats_uintptr1_type ofs, ats_ptr_type tbls0) { botsegtbllst tbls ; /* fprintf ( stderr, "botsegtbl_make_64: sizeof(botsegtbl) = %i\n", sizeof(botsegtbl) ) ; // end of [fprintf] */ tbls = (botsegtbllst)malloc(sizeof(botsegtbl)) ; if (!tbls) { fprintf (stderr, "Exit: [botsegtbl_make_64: malloc] failed\n") ; exit (1) ; } // end of [if] memset(tbls, 0, sizeof(botsegtbl)) ; tbls->key = ofs ; tbls->hash_next = (botsegtbllst)tbls0 ; /* fprintf (stderr, "botsegtbl_make_64: tbls = %p\n", tbls) ; */ return tbls ; } /* end of [botsegtbl_make_64] */ #endif // end of [__WORDSIZE == 64] #line 343 "gcats1_chunk.dats" ats_ptr_type gc_ptr_is_valid (ats_ptr_type ptr, ats_ref_type ofs_r) { uintptr_t ofs_topseg ; int ofs_botseg, ofs_chkseg, itemwsz ; botsegtbllst tbls = (botsegtbllst)0 ; chunklst chks = (chunklst)0 ; /* fprintf (stderr, "gc_ptr_is_valid: 1: ptr = %p\n", ptr) ; */ if (!ptr) return (chunklst)0 ; /* fprintf (stderr, "gc_ptr_is_valid: 2: ptr = %p\n", ptr) ; */ if ((uintptr_t)ptr & NBYTE_PER_WORD_MASK) return (chunklst)0 ; ofs_topseg = PTR_TOPSEG_GET (ptr) ; /* fprintf (stderr, "gc_ptr_is_valid: 3: ofs_topseg = %li\n", ofs_topseg) ; */ #if (__WORDSIZE == 32) tbls = the_topsegtbl_get_32 (ofs_topseg) ; #endif #if (__WORDSIZE == 64) tbls = the_topsegtbl_get_64 (ofs_topseg) ; #endif if (!tbls) return (chunklst)0 ; ofs_botseg = PTR_BOTSEG_GET (ptr) ; chks = botsegtbllst_get (tbls, ofs_botseg) ; /* fprintf (stderr, "gc_ptr_is_valid: 4: ofs_botseg = %li\n", ofs_botseg) ; */ if (!chks) return (chunklst)0 ; ofs_chkseg = PTR_CHKSEG_GET (ptr) ; itemwsz = chks->itemwsz ; /* fprintf (stderr, "gc_ptr_is_valid: 5: ofs_chkseg = %li\n", ofs_chkseg) ; fprintf (stderr, "gc_ptr_is_valid: 6: itemwsz = %i\n", itemwsz) ; */ /* ** for a large chunk (itemwsz_log = -1), ofs_chkseg == 0 */ if (ofs_chkseg % itemwsz) return (chunklst)0 ; *((int*)ofs_r) = (ofs_chkseg / itemwsz) ; return chks ; } /* end of [gc_ptr_is_valid] */ #line 405 "gcats1_chunk.dats" /* // itemwsz_log = log (itemwsz) if itemwsz_log >= 0 fun chunklst_create (itemwsz_log: int, itemwsz: int): chunklst1 */ ats_ptr_type chunklst_create (ats_int_type itemwsz_log, ats_int_type itemwsz) { int i, err ; int chunk_bsz, data_ofs ; int itemtot, nmarkbit ; freeitmlst data ; chunklst chks ; /* fprintf (stderr, "chunklst_create: itemwsz_log = %i\n", itemwsz_log) ; fprintf (stderr, "chunklst_create: itemwsz = %i\n", itemwsz) ; */ if (itemwsz_log >= 0) { itemtot = (CHUNK_WORDSIZE >> itemwsz_log) ; nmarkbit = (itemtot + NBIT_PER_BYTE_MASK) >> NBIT_PER_BYTE_LOG ; } else { itemtot = 1 ; nmarkbit = 1 ; } chks = (chunklst)malloc(sizeof(chunk) + nmarkbit) ; if (!chks) { fprintf ( stderr, "GC Fatal Error: [chunklst_create]: [malloc] failed.\n" ) ; // end of [fprintf] exit (1) ; } // end of [if] data = (freeitmlst)0 ; if (itemwsz <= MAX_CHUNK_BLOCK_WORDSIZE) { if (the_freeitmlst_chunk_data) { data = the_freeitmlst_chunk_data; the_freeitmlst_chunk_data = *(freeitmlst*)data ; } // end of [if] } // end of [if] /* fprintf (stderr, "chunklst_create: data = %p(%i)\n", data, data) ; */ if (!data) { if (itemwsz > CHUNK_WORDSIZE) chunk_bsz = itemwsz << NBYTE_PER_WORD_LOG ; else chunk_bsz = CHUNK_BYTESIZE ; /* fprintf (stderr, "gcats_memalign: size = %i\n", chunk_bsz) ; */ err = gcats_memalign (&data, CHUNK_BYTESIZE/*alignment*/, chunk_bsz/*size*/) ; /* fprintf (stderr, "gcats_memalign: err = %i\n", err) ; */ if (err) { fprintf (stderr, "GC: Fatal Error: [gcats_memalign] failed\n") ; exit (1) ; } // end of [if] } // end of [if] /* fprintf (stderr, "chunklst_create: data = %p(%i)\n", data, data) ; */ chks->itemwsz = itemwsz ; chks->itemwsz_log = itemwsz_log ; chks->itemtot = itemtot ; chks->markcnt = 0 ; // for fast threading! #ifdef _ATS_MULTITHREAD chks->freecnt = 0 ; // not in use yet #endif chks->sweep_next = (chunklst)0 ; data_ofs = (uintptr_t)data & (CHUNK_BYTESIZE - 1) ; if (data_ofs) { /* fprintf (stderr, "chunklst_create: data_ofs = %i\n", data_ofs) ; */ chks->data = (byte*)data - data_ofs + CHUNK_BYTESIZE ; } else { chks->data = data ; } chks->data_nonalign = data ; // [data] is *not* zeroed memset (chks->markbits, 0, nmarkbit) ; the_chunk_count_inc_by ((itemwsz + CHUNK_WORDSIZE_MASK) >> CHUNK_WORDSIZE_LOG) ; chunklst_insert_into_table (chks) ; /* fprintf (stderr, "chunklst_create: chks = %p(%i)\n", chks, chks) ; */ return chks ; } /* end of [chunklst_create] */ #line 504 "gcats1_chunk.dats" #if (__WORDSIZE == 32) ats_void_type gc_markbits_clear_the_topsegtbl () { int i ; botsegtbllst tbls ; for (i = 0; i < TOPSEG_TABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; if (tbls) gc_markbits_clear_botsegtbl (tbls) ; } // end of [for] return ; } /* end of [gc_markbits_clear_the_topsegtbl] */ #endif // end of [__WORDSIZE == 32] #if (__WORDSIZE == 64) ats_void_type gc_markbits_clear_the_topsegtbl () { int i ; botsegtbllst tbls ; for (i = 0; i < TOPSEG_HASHTABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; while (tbls) { // terminating: obvious gc_markbits_clear_botsegtbl (tbls) ; tbls = tbls->hash_next ; } // end of [while] } // end of [for] return ; } /* end of [gc_markbits_clear_the_topsegtbl] */ #endif // end of [__WORDSIZE == 64] /* ****** ****** */ /* end of [gcats1_chunk_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/gcats1_freeitmlst_dats.c0000644000175000017500000002644713431250607027166 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-8-30: 14h:38m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst2ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, freeitmlst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, freeitmlst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst_tail_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, the_freeitmlst_array_get) (ats_int_type) ; ATSextern_fun(ats_void_type, the_freeitmlst_array_clear_one) (ats_int_type) ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_markbits_get) (ats_ptr_type) ; ATSextern_fun(ats_void_type, chunklst_markcnt_dec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, gc_ptr_is_valid) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_int_type, MARK_GET) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, MARK_CLEAR) (ats_ptr_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type gcats1_freeitmlst_loop_1 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_freeitmlst_loop_3 (ats_int_type arg0) ; static ats_void_type gcats1_freeitmlst_freeitmlst_mark_unset_4 (ats_ptr_type arg0) ; static ats_void_type gcats1_freeitmlst_loop_6 (ats_int_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 1707(line=52, offs=7) -- 1872(line=57, offs=8) */ ATSstaticdec() ats_int_type gcats1_freeitmlst_loop_1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; __ats_lab_gcats1_freeitmlst_loop_1: #line 54 "gcats1_freeitmlst.dats" tmp2 = freeitmlst_is_nil (arg0) ; #line 54 "gcats1_freeitmlst.dats" if (tmp2) { #line 54 "gcats1_freeitmlst.dats" tmp1 = arg1 ; } else { #line 56 "gcats1_freeitmlst.dats" tmp3 = freeitmlst_tail_get (arg0) ; #line 56 "gcats1_freeitmlst.dats" tmp4 = atspre_iadd (arg1, 1) ; #line 56 "gcats1_freeitmlst.dats" arg0 = tmp3 ; #line 56 "gcats1_freeitmlst.dats" arg1 = tmp4 ; #line 56 "gcats1_freeitmlst.dats" goto __ats_lab_gcats1_freeitmlst_loop_1 ; // tail call } /* end of [if] */ return (tmp1) ; } /* end of [gcats1_freeitmlst_loop_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 1688(line=51, offs=29) -- 1896(line=60, offs=4) */ ATSglobaldec() ats_int_type freeitmlst_length (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_freeitmlst_length: #line 59 "gcats1_freeitmlst.dats" tmp0 = gcats1_freeitmlst_loop_1 (arg0, 0) ; return (tmp0) ; } /* end of [freeitmlst_length] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 2038(line=66, offs=7) -- 2171(line=69, offs=8) */ ATSstaticdec() ats_void_type gcats1_freeitmlst_loop_3 (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_int_type, tmp10) ; __ats_lab_gcats1_freeitmlst_loop_3: #line 67 "gcats1_freeitmlst.dats" tmp8 = atspre_iadd (11, 1) ; #line 67 "gcats1_freeitmlst.dats" tmp7 = atspre_ilt (arg0, tmp8) ; #line 67 "gcats1_freeitmlst.dats" if (tmp7) { #line 68 "gcats1_freeitmlst.dats" /* tmp9 = */ the_freeitmlst_array_clear_one (arg0) ; #line 68 "gcats1_freeitmlst.dats" tmp10 = atspre_iadd (arg0, 1) ; #line 68 "gcats1_freeitmlst.dats" arg0 = tmp10 ; #line 68 "gcats1_freeitmlst.dats" goto __ats_lab_gcats1_freeitmlst_loop_3 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp6) */ ; } /* end of [gcats1_freeitmlst_loop_3] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 1990(line=64, offs=42) -- 2189(line=72, offs=4) */ ATSglobaldec() ats_void_type the_freeitmlst_array_clear_all () { /* local vardec */ // ATSlocal_void (tmp5) ; __ats_lab_the_freeitmlst_array_clear_all: #line 71 "gcats1_freeitmlst.dats" /* tmp5 = */ gcats1_freeitmlst_loop_3 (0) ; return /* (tmp5) */ ; } /* end of [the_freeitmlst_array_clear_all] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 2259(line=76, offs=5) -- 3035(line=96, offs=4) */ ATSstaticdec() ats_void_type gcats1_freeitmlst_freeitmlst_mark_unset_4 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp11) ; ATSlocal (ats_bool_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_bool_type, tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_bool_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab_gcats1_freeitmlst_freeitmlst_mark_unset_4: #line 77 "gcats1_freeitmlst.dats" tmp12 = freeitmlst_is_cons (arg0) ; #line 77 "gcats1_freeitmlst.dats" if (tmp12) { #line 78 "gcats1_freeitmlst.dats" /* ats_int_type tmp13 ; */ #line 78 "gcats1_freeitmlst.dats" tmp13 = 0 ; #line 78 "gcats1_freeitmlst.dats" tmp14 = freeitmlst2ptr (arg0) ; #line 79 "gcats1_freeitmlst.dats" tmp15 = gc_ptr_is_valid (tmp14, (&tmp13)) ; #line 80 "gcats1_freeitmlst.dats" tmp17 = chunklst_is_cons (tmp15) ; #line 80 "gcats1_freeitmlst.dats" if (tmp17) { #line 80 "gcats1_freeitmlst.dats" tmp16 = tmp15 ; } else { #line 81 "gcats1_freeitmlst.dats" /* tmp18 = */ atspre_prerr_string (ATSstrcst("freeitmlst_mark_unset: illegal pointer: ptr = ")) ; #line 82 "gcats1_freeitmlst.dats" /* tmp19 = */ atspre_prerr_ptr (tmp14) ; #line 83 "gcats1_freeitmlst.dats" /* tmp20 = */ atspre_prerr_newline () ; #line 84 "gcats1_freeitmlst.dats" /* tmp16 = */ ats_exit (1) ; } /* end of [if] */ #line 87 "gcats1_freeitmlst.dats" tmp21 = chunklst_markbits_get (tmp16) ; #line 89 "gcats1_freeitmlst.dats" tmp24 = MARK_GET (tmp21, tmp13) ; #line 89 "gcats1_freeitmlst.dats" tmp23 = atspre_gt_int_int (tmp24, 0) ; #line 89 "gcats1_freeitmlst.dats" if (tmp23) { #line 91 "gcats1_freeitmlst.dats" /* tmp25 = */ MARK_CLEAR (tmp21, tmp13) ; #line 91 "gcats1_freeitmlst.dats" /* tmp22 = */ chunklst_markcnt_dec (tmp16) ; } else { /* empty */ } /* end of [if] */ #line 94 "gcats1_freeitmlst.dats" tmp26 = freeitmlst_tail_get (arg0) ; #line 94 "gcats1_freeitmlst.dats" arg0 = tmp26 ; #line 94 "gcats1_freeitmlst.dats" goto __ats_lab_gcats1_freeitmlst_freeitmlst_mark_unset_4 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp11) */ ; } /* end of [gcats1_freeitmlst_freeitmlst_mark_unset_4] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 3165(line=102, offs=7) -- 3314(line=105, offs=8) */ ATSstaticdec() ats_void_type gcats1_freeitmlst_loop_6 (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_int_type, tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_int_type, tmp33) ; __ats_lab_gcats1_freeitmlst_loop_6: #line 103 "gcats1_freeitmlst.dats" tmp30 = atspre_iadd (11, 1) ; #line 103 "gcats1_freeitmlst.dats" tmp29 = atspre_ilt (arg0, tmp30) ; #line 103 "gcats1_freeitmlst.dats" if (tmp29) { #line 104 "gcats1_freeitmlst.dats" tmp32 = the_freeitmlst_array_get (arg0) ; #line 104 "gcats1_freeitmlst.dats" /* tmp31 = */ gcats1_freeitmlst_freeitmlst_mark_unset_4 (tmp32) ; #line 104 "gcats1_freeitmlst.dats" tmp33 = atspre_iadd (arg0, 1) ; #line 104 "gcats1_freeitmlst.dats" arg0 = tmp33 ; #line 104 "gcats1_freeitmlst.dats" goto __ats_lab_gcats1_freeitmlst_loop_6 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp28) */ ; } /* end of [gcats1_freeitmlst_loop_6] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 3117(line=100, offs=43) -- 3347(line=108, offs=4) */ ATSglobaldec() ats_void_type the_freeitmlst_array_mark_unset () { /* local vardec */ // ATSlocal_void (tmp27) ; __ats_lab_the_freeitmlst_array_mark_unset: #line 107 "gcats1_freeitmlst.dats" /* tmp27 = */ gcats1_freeitmlst_loop_6 (0) ; return /* (tmp27) */ ; } /* end of [the_freeitmlst_array_mark_unset] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [gcats1_freeitmlst_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/gcats1_autops_dats.c0000644000175000017500000006344613431250607026323 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-8-30: 14h:38m ** */ /* 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 */ /* external codes at top */ #line 162 "gcats1_autops.dats" static inline ats_void_type gc_aut_calloc_bsz_memset_bsz (ats_ptr_type p, ats_int_type c, ats_int_type bsz) { memset (p, c, bsz) ; return ; } #line 305 "gcats1_autops.dats" static inline ats_void_type gc_aut_realloc_wsz_memcpy_wsz (ats_ptr_type p_dest, ats_ptr_type p_src, ats_int_type wsz) { memcpy (p_dest, p_src, wsz << NBYTE_PER_WORD_LOG) ; return ; } /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_asl_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_asr_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst2ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_main_lock_acquire) () ; ATSextern_fun(ats_void_type, gc_main_lock_release) () ; ATSextern_fun(ats_void_type, the_globalentrylst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_globalentrylst_lock_release) () ; ATSextern_fun(ats_void_type, the_manmemlst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_manmemlst_lock_release) () ; ATSextern_fun(ats_void_type, the_threadinfolst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_threadinfolst_lock_release) () ; ATSextern_fun(ats_void_type, the_sweeplst_lock_acquire_all) () ; ATSextern_fun(ats_void_type, the_sweeplst_lock_release_all) () ; ATSextern_fun(ats_bool_type, freeitmlst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst_tail_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, the_freeitmlst_array_get) (ats_int_type) ; ATSextern_fun(ats_void_type, the_freeitmlst_array_set) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, the_freeitmlst_array_insert_at) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_int_type, chunklst_itemwsz_get) (ats_ptr_type) ; ATSextern_fun(ats_int_type, chunklst_itemwsz_log_get) (ats_ptr_type) ; ATSextern_fun(ats_int_type, chunklst_itemtot_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_data_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_create) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, chunklst_destroy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, the_chunk_count_limit_is_reached_within) (ats_int_type) ; ATSextern_fun(ats_uintptr1_type, PTR_TOPSEG_GET) (ats_ptr_type) ; ATSextern_fun(ats_int_type, PTR_BOTSEG_GET) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, botsegtbllst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, botsegtbllst_get) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get) (ats_uintptr1_type) ; ATSextern_fun(ats_void_type, gc_collect) () ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate) (ats_int_type) ; ATSextern_fun(ats_ptr_type, gc_aut_malloc_bsz) (ats_int_type) ; ATSextern_fun(ats_ptr_type, gc_aut_malloc_wsz) (ats_int_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, log2_ceil) (ats_int_type) ; ATSextern_fun(ats_ptr_type, gc_aut_calloc_bsz) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, gc_aut_calloc_bsz_memset_bsz) (ats_ptr_type, ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, gc_aut_realloc_wsz_memcpy_wsz) (ats_ptr_type, ats_ptr_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type gcats1_autops_gc_aut_free_chunk_3 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type gcats1_autops_err_botsegtbl_5 (ats_ptr_type arg0) ; static ats_void_type gcats1_autops_err_chunk_6 (ats_ptr_type arg0) ; static ats_ptr_type gcats1_autops_err_9 (ats_ptr_type arg0) ; static ats_ptr_type gcats1_autops_aux_main_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 1738(line=53, offs=29) -- 1844(line=57, offs=4) */ ATSglobaldec() ats_ptr_type gc_aut_malloc_bsz (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; __ats_lab_gc_aut_malloc_bsz: #line 54 "gcats1_autops.dats" tmp3 = atspre_isub (8, 1) ; #line 54 "gcats1_autops.dats" tmp2 = atspre_add_int_int (arg0, tmp3) ; #line 54 "gcats1_autops.dats" tmp1 = atspre_asr_int_int1 (tmp2, 3) ; #line 56 "gcats1_autops.dats" tmp0 = gc_aut_malloc_wsz (tmp1) ; return (tmp0) ; } /* end of [gc_aut_malloc_bsz] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 1954(line=61, offs=29) -- 5420(line=153, offs=4) */ ATSglobaldec() ats_ptr_type gc_aut_malloc_wsz (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_bool_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; ATSlocal (ats_bool_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_bool_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab_gc_aut_malloc_wsz: #line 68 "gcats1_autops.dats" tmp7 = atspre_asl_int_int1 (1, 11) ; #line 68 "gcats1_autops.dats" tmp6 = atspre_gt_int_int (arg0, tmp7) ; #line 68 "gcats1_autops.dats" if (tmp6) { #line 68 "gcats1_autops.dats" tmp5 = -1 ; } else { #line 68 "gcats1_autops.dats" tmp5 = log2_ceil (arg0) ; } /* end of [if] */ #line 71 "gcats1_autops.dats" do { /* branch: __ats_lab_0 */ #line 72 "gcats1_autops.dats" __ats_lab_0_0: #line 72 "gcats1_autops.dats" __ats_lab_0_1: #line 72 "gcats1_autops.dats" tmp8 = atspre_igte (tmp5, 0) ; #line 72 "gcats1_autops.dats" if (!tmp8) { goto __ats_lab_1_1 ; } #line 74 "gcats1_autops.dats" tmp10 = atspre_ilte (tmp5, 11) ; #line 73 "gcats1_autops.dats" /* tmp9 = */ atspre_assert (tmp10) ; #line 75 "gcats1_autops.dats" tmp11 = the_freeitmlst_array_get (tmp5) ; #line 77 "gcats1_autops.dats" tmp13 = freeitmlst_is_nil (tmp11) ; #line 77 "gcats1_autops.dats" if (tmp13) { #line 77 "gcats1_autops.dats" tmp12 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate (tmp5) ; } else { #line 78 "gcats1_autops.dats" tmp12 = tmp11 ; } /* end of [if] */ #line 80 "gcats1_autops.dats" tmp14 = freeitmlst2ptr (tmp12) ; #line 94 "gcats1_autops.dats" tmp15 = freeitmlst_tail_get (tmp12) ; #line 95 "gcats1_autops.dats" /* tmp16 = */ the_freeitmlst_array_set (tmp5, tmp15) ; #line 108 "gcats1_autops.dats" tmp4 = tmp14 ; break ; /* branch: __ats_lab_1 */ #line 110 "gcats1_autops.dats" __ats_lab_1_0: #line 110 "gcats1_autops.dats" __ats_lab_1_1: #line 113 "gcats1_autops.dats" tmp19 = atspre_asl_int_int1 (1, 30) ; #line 113 "gcats1_autops.dats" tmp18 = atspre_gt_int_int (arg0, tmp19) ; #line 113 "gcats1_autops.dats" if (tmp18) { #line 115 "gcats1_autops.dats" /* tmp20 = */ atspre_prerr_string (ATSstrcst("[gc_aut_malloc_wsz]: argument is too large!")) ; #line 115 "gcats1_autops.dats" /* tmp21 = */ atspre_prerr_newline () ; #line 118 "gcats1_autops.dats" /* tmp17 = */ ats_exit (1) ; } else { /* empty */ } /* end of [if] */ #line 120 "gcats1_autops.dats" tmp25 = atspre_asl_int_int1 (1, 11) ; #line 120 "gcats1_autops.dats" tmp24 = atspre_sub_int_int (tmp25, 1) ; #line 120 "gcats1_autops.dats" tmp23 = atspre_add_int_int (arg0, tmp24) ; #line 120 "gcats1_autops.dats" tmp22 = atspre_asr_int_int1 (tmp23, 11) ; #line 121 "gcats1_autops.dats" /* tmp26 = */ gc_main_lock_acquire () ; #line 121 "gcats1_autops.dats" /* tmp27 = ats_selsin_mac(tmp26, atslab_1) */ ; #line 123 "gcats1_autops.dats" tmp28 = the_chunk_count_limit_is_reached_within (tmp22) ; #line 126 "gcats1_autops.dats" if (tmp28) { #line 127 "gcats1_autops.dats" /* tmp30 = */ the_globalentrylst_lock_acquire () ; #line 127 "gcats1_autops.dats" /* tmp31 = ats_selsin_mac(tmp30, atslab_1) */ ; #line 128 "gcats1_autops.dats" /* tmp32 = */ the_manmemlst_lock_acquire () ; #line 128 "gcats1_autops.dats" /* tmp33 = ats_selsin_mac(tmp32, atslab_1) */ ; #line 129 "gcats1_autops.dats" /* tmp34 = */ the_threadinfolst_lock_acquire () ; #line 129 "gcats1_autops.dats" /* tmp35 = ats_selsin_mac(tmp34, atslab_1) */ ; #line 130 "gcats1_autops.dats" /* tmp36 = */ the_sweeplst_lock_acquire_all () ; #line 130 "gcats1_autops.dats" /* tmp37 = ats_selsin_mac(tmp36, atslab_1) */ ; #line 131 "gcats1_autops.dats" /* tmp38 = */ gc_collect () ; #line 134 "gcats1_autops.dats" /* tmp39 = */ the_sweeplst_lock_release_all () ; #line 135 "gcats1_autops.dats" /* tmp40 = */ the_threadinfolst_lock_release () ; #line 136 "gcats1_autops.dats" /* tmp41 = */ the_manmemlst_lock_release () ; #line 137 "gcats1_autops.dats" /* tmp29 = */ the_globalentrylst_lock_release () ; } else { /* empty */ } /* end of [if] */ #line 141 "gcats1_autops.dats" tmp42 = chunklst_create (-1, arg0) ; #line 142 "gcats1_autops.dats" /* tmp43 = */ gc_main_lock_release () ; #line 143 "gcats1_autops.dats" tmp44 = chunklst_data_get (tmp42) ; #line 144 "gcats1_autops.dats" tmp4 = freeitmlst2ptr (tmp44) ; break ; } while (0) ; return (tmp4) ; } /* end of [gc_aut_malloc_wsz] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 5780(line=174, offs=19) -- 6334(line=196, offs=4) */ ATSglobaldec() ats_ptr_type gc_aut_calloc_bsz (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_int_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; __ats_lab_gc_aut_calloc_bsz: #line 183 "gcats1_autops.dats" tmp46 = atspre_mul_int_int (arg0, arg1) ; #line 184 "gcats1_autops.dats" tmp47 = gc_aut_malloc_bsz (tmp46) ; #line 185 "gcats1_autops.dats" /* tmp48 = */ gc_aut_calloc_bsz_memset_bsz (tmp47, 0, tmp46) ; #line 195 "gcats1_autops.dats" tmp45 = tmp47 ; return (tmp45) ; } /* end of [gc_aut_calloc_bsz] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 6462(line=202, offs=4) -- 8244(line=256, offs=4) */ ATSstaticdec() ats_void_type gcats1_autops_gc_aut_free_chunk_3 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp49) ; ATSlocal (ats_int_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_bool_type, tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; __ats_lab_gcats1_autops_gc_aut_free_chunk_3: #line 209 "gcats1_autops.dats" tmp50 = chunklst_itemwsz_log_get (arg0) ; #line 216 "gcats1_autops.dats" tmp51 = atspre_igte (tmp50, 0) ; #line 216 "gcats1_autops.dats" if (tmp51) { #line 238 "gcats1_autops.dats" /* tmp49 = */ the_freeitmlst_array_insert_at (arg1, tmp50) ; } else { #line 242 "gcats1_autops.dats" tmp52 = chunklst_itemtot_get (arg0) ; #line 244 "gcats1_autops.dats" tmp53 = atspre_eq_int_int (tmp52, 1) ; #line 244 "gcats1_autops.dats" if (tmp53) { #line 245 "gcats1_autops.dats" /* tmp54 = */ gc_main_lock_acquire () ; #line 245 "gcats1_autops.dats" /* tmp55 = ats_selsin_mac(tmp54, atslab_1) */ ; #line 246 "gcats1_autops.dats" /* tmp56 = */ chunklst_destroy (arg0) ; #line 248 "gcats1_autops.dats" /* tmp49 = */ gc_main_lock_release () ; } else { /* empty */ } /* end of [if] */ } /* end of [if] */ return /* (tmp49) */ ; } /* end of [gcats1_autops_gc_aut_free_chunk_3] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 8409(line=267, offs=6) -- 8605(line=271, offs=6) */ ATSstaticdec() ats_void_type gcats1_autops_err_botsegtbl_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; __ats_lab_gcats1_autops_err_botsegtbl_5: #line 268 "gcats1_autops.dats" /* tmp59 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error: [gc_aut_free] failed")) ; #line 269 "gcats1_autops.dats" /* tmp60 = */ atspre_prerr_string (ATSstrcst(": invalid pointer (botsegtbl is nil): ")) ; #line 269 "gcats1_autops.dats" /* tmp61 = */ atspre_prerr_ptr (arg0) ; #line 270 "gcats1_autops.dats" /* tmp62 = */ atspre_prerr_newline () ; #line 270 "gcats1_autops.dats" /* tmp58 = */ ats_exit (1) ; return /* (tmp58) */ ; } /* end of [gcats1_autops_err_botsegtbl_5] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 8611(line=272, offs=6) -- 8799(line=276, offs=6) */ ATSstaticdec() ats_void_type gcats1_autops_err_chunk_6 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; __ats_lab_gcats1_autops_err_chunk_6: #line 273 "gcats1_autops.dats" /* tmp64 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error: [gc_aut_free] failed")) ; #line 274 "gcats1_autops.dats" /* tmp65 = */ atspre_prerr_string (ATSstrcst(": invalid pointer (chunk is nil): ")) ; #line 274 "gcats1_autops.dats" /* tmp66 = */ atspre_prerr_ptr (arg0) ; #line 275 "gcats1_autops.dats" /* tmp67 = */ atspre_prerr_newline () ; #line 275 "gcats1_autops.dats" /* tmp63 = */ ats_exit (1) ; return /* (tmp63) */ ; } /* end of [gcats1_autops_err_chunk_6] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 8302(line=261, offs=13) -- 9241(line=290, offs=4) */ ATSglobaldec() ats_void_type gc_aut_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_uintptr1_type, tmp68) ; ATSlocal (ats_uintptr1_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_bool_type, tmp71) ; ATSlocal (ats_int_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; __ats_lab_gc_aut_free: #line 277 "gcats1_autops.dats" tmp68 = PTR_TOPSEG_GET (arg0) ; #line 277 "gcats1_autops.dats" tmp69 = ats_selsin_mac(tmp68, atslab_1) ; #line 278 "gcats1_autops.dats" tmp70 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get (tmp69) ; #line 280 "gcats1_autops.dats" do { /* branch: __ats_lab_2 */ #line 281 "gcats1_autops.dats" __ats_lab_2_0: #line 281 "gcats1_autops.dats" __ats_lab_2_1: #line 281 "gcats1_autops.dats" tmp71 = botsegtbllst_is_cons (tmp70) ; #line 281 "gcats1_autops.dats" if (!tmp71) { goto __ats_lab_5_1 ; } #line 282 "gcats1_autops.dats" tmp72 = PTR_BOTSEG_GET (arg0) ; #line 283 "gcats1_autops.dats" tmp73 = botsegtbllst_get (tmp70, tmp72) ; #line 285 "gcats1_autops.dats" do { /* branch: __ats_lab_3 */ #line 286 "gcats1_autops.dats" __ats_lab_3_0: #line 286 "gcats1_autops.dats" __ats_lab_3_1: #line 286 "gcats1_autops.dats" tmp74 = chunklst_is_cons (tmp73) ; #line 286 "gcats1_autops.dats" if (!tmp74) { goto __ats_lab_4_1 ; } #line 286 "gcats1_autops.dats" /* tmp57 = */ gcats1_autops_gc_aut_free_chunk_3 (tmp73, arg0) ; break ; /* branch: __ats_lab_4 */ #line 287 "gcats1_autops.dats" __ats_lab_4_0: #line 287 "gcats1_autops.dats" __ats_lab_4_1: #line 287 "gcats1_autops.dats" /* tmp57 = */ gcats1_autops_err_chunk_6 (arg0) ; break ; } while (0) ; break ; /* branch: __ats_lab_5 */ #line 289 "gcats1_autops.dats" __ats_lab_5_0: #line 289 "gcats1_autops.dats" __ats_lab_5_1: #line 289 "gcats1_autops.dats" /* tmp57 = */ gcats1_autops_err_botsegtbl_5 (arg0) ; break ; } while (0) ; return /* (tmp57) */ ; } /* end of [gc_aut_free] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 9354(line=297, offs=20) -- 9471(line=301, offs=4) */ ATSglobaldec() ats_ptr_type gc_aut_realloc_bsz (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; __ats_lab_gc_aut_realloc_bsz: #line 298 "gcats1_autops.dats" tmp78 = atspre_isub (8, 1) ; #line 298 "gcats1_autops.dats" tmp77 = atspre_add_int_int (arg1, tmp78) ; #line 298 "gcats1_autops.dats" tmp76 = atspre_asr_int_int1 (tmp77, 3) ; #line 300 "gcats1_autops.dats" tmp75 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz (arg0, tmp76) ; return (tmp75) ; } /* end of [gc_aut_realloc_bsz] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 9961(line=328, offs=6) -- 10126(line=332, offs=6) */ ATSstaticdec() ats_ptr_type gcats1_autops_err_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; __ats_lab_gcats1_autops_err_9: #line 329 "gcats1_autops.dats" /* tmp81 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error: [gc_aut_free] failed")) ; #line 330 "gcats1_autops.dats" /* tmp82 = */ atspre_prerr_string (ATSstrcst(": invalid pointer: ")) ; #line 330 "gcats1_autops.dats" /* tmp83 = */ atspre_prerr_ptr (arg0) ; #line 330 "gcats1_autops.dats" /* tmp84 = */ atspre_prerr_newline () ; #line 331 "gcats1_autops.dats" /* tmp80 = */ ats_exit (1) ; return (tmp80) ; } /* end of [gcats1_autops_err_9] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 10228(line=335, offs=6) -- 11278(line=369, offs=6) */ ATSstaticdec() ats_ptr_type gcats1_autops_aux_main_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_int_type, tmp89) ; ATSlocal (ats_bool_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_int_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; __ats_lab_gcats1_autops_aux_main_10: #line 340 "gcats1_autops.dats" tmp89 = chunklst_itemwsz_get (arg0) ; #line 342 "gcats1_autops.dats" do { /* branch: __ats_lab_6 */ #line 343 "gcats1_autops.dats" __ats_lab_6_0: #line 343 "gcats1_autops.dats" __ats_lab_6_1: #line 343 "gcats1_autops.dats" tmp90 = atspre_gt_int_int (arg2, tmp89) ; #line 343 "gcats1_autops.dats" if (!tmp90) { goto __ats_lab_7_1 ; } #line 349 "gcats1_autops.dats" tmp91 = gc_aut_malloc_wsz (arg2) ; #line 350 "gcats1_autops.dats" /* tmp92 = */ gc_aut_realloc_wsz_memcpy_wsz (tmp91, arg1, tmp89) ; #line 351 "gcats1_autops.dats" /* tmp93 = */ gcats1_autops_gc_aut_free_chunk_3 (arg0, arg1) ; #line 353 "gcats1_autops.dats" tmp88 = tmp91 ; break ; /* branch: __ats_lab_7 */ #line 355 "gcats1_autops.dats" __ats_lab_7_0: #line 355 "gcats1_autops.dats" __ats_lab_7_1: #line 355 "gcats1_autops.dats" tmp95 = atspre_mul_int_int (2, arg2) ; #line 355 "gcats1_autops.dats" tmp94 = atspre_lte_int_int (tmp95, tmp89) ; #line 355 "gcats1_autops.dats" if (!tmp94) { goto __ats_lab_8_1 ; } #line 361 "gcats1_autops.dats" tmp96 = gc_aut_malloc_wsz (arg2) ; #line 363 "gcats1_autops.dats" /* tmp97 = */ gc_aut_realloc_wsz_memcpy_wsz (tmp96, arg1, arg2) ; #line 364 "gcats1_autops.dats" /* tmp98 = */ gcats1_autops_gc_aut_free_chunk_3 (arg0, arg1) ; #line 366 "gcats1_autops.dats" tmp88 = tmp96 ; break ; /* branch: __ats_lab_8 */ #line 368 "gcats1_autops.dats" __ats_lab_8_0: #line 368 "gcats1_autops.dats" __ats_lab_8_1: #line 368 "gcats1_autops.dats" tmp88 = arg1 ; break ; } while (0) ; return (tmp88) ; } /* end of [gcats1_autops_aux_main_10] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 9739(line=319, offs=20) -- 11928(line=396, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_uintptr1_type, tmp85) ; ATSlocal (ats_uintptr1_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_bool_type, tmp99) ; ATSlocal (ats_bool_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_bool_type, tmp103) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz: #line 333 "gcats1_autops.dats" tmp85 = PTR_TOPSEG_GET (arg0) ; #line 333 "gcats1_autops.dats" tmp86 = ats_selsin_mac(tmp85, atslab_1) ; #line 334 "gcats1_autops.dats" tmp87 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get (tmp86) ; #line 372 "gcats1_autops.dats" tmp99 = atspre_pgt (arg0, atspre_null_ptr) ; #line 372 "gcats1_autops.dats" if (tmp99) { #line 373 "gcats1_autops.dats" do { /* branch: __ats_lab_9 */ #line 374 "gcats1_autops.dats" __ats_lab_9_0: #line 374 "gcats1_autops.dats" __ats_lab_9_1: #line 374 "gcats1_autops.dats" tmp100 = botsegtbllst_is_cons (tmp87) ; #line 374 "gcats1_autops.dats" if (!tmp100) { goto __ats_lab_12_1 ; } #line 375 "gcats1_autops.dats" tmp101 = PTR_BOTSEG_GET (arg0) ; #line 376 "gcats1_autops.dats" tmp102 = botsegtbllst_get (tmp87, tmp101) ; #line 378 "gcats1_autops.dats" do { /* branch: __ats_lab_10 */ #line 379 "gcats1_autops.dats" __ats_lab_10_0: #line 379 "gcats1_autops.dats" __ats_lab_10_1: #line 379 "gcats1_autops.dats" tmp103 = chunklst_is_cons (tmp102) ; #line 379 "gcats1_autops.dats" if (!tmp103) { goto __ats_lab_11_1 ; } #line 380 "gcats1_autops.dats" tmp79 = gcats1_autops_aux_main_10 (tmp102, arg0, arg1) ; break ; /* branch: __ats_lab_11 */ #line 390 "gcats1_autops.dats" __ats_lab_11_0: #line 390 "gcats1_autops.dats" __ats_lab_11_1: #line 390 "gcats1_autops.dats" tmp79 = gcats1_autops_err_9 (arg0) ; break ; } while (0) ; break ; /* branch: __ats_lab_12 */ #line 392 "gcats1_autops.dats" __ats_lab_12_0: #line 392 "gcats1_autops.dats" __ats_lab_12_1: #line 392 "gcats1_autops.dats" tmp79 = gcats1_autops_err_9 (arg0) ; break ; } while (0) ; } else { #line 394 "gcats1_autops.dats" tmp79 = gc_aut_malloc_wsz (arg1) ; } /* end of [if] */ return (tmp79) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [gcats1_autops_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m64/gcats1_misc_dats.c0000644000175000017500000001156113431250607025732 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-8-30: 14h:38m ** */ /* 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 */ /* external codes at top */ #line 51 "gcats1_misc.dats" static int the_stack_direction = 0 ; // // dir=1/-1 : upward/downward // static int gc_stack_dir_get_inner (int *some_ptr) { int some_int ; if (&some_int > some_ptr) return 1 ; else return -1 ; return 0 ; /* deadcode */ } static int gc_stack_dir_get_outer () { // static volatile void* get_inner = &gc_stack_dir_get_inner ; // int some_int ; if (!the_stack_direction) the_stack_direction = ((int(*)(int*))get_inner)(&some_int) ; /* fprintf (stderr, "the_stack_direction = %i\n", the_stack_direction) ; */ return the_stack_direction ; } ats_int_type gc_stack_dir_get () { return gc_stack_dir_get_outer () ; } /* ****** ****** */ #ifdef _ATS_MULTITHREAD static __thread ats_ptr_type the_stack_beg = (ats_ptr_type)0 ; #else /* single thread */ static ats_ptr_type the_stack_beg = (ats_ptr_type)0 ; #endif ats_void_type gc_stack_beg_set (ats_int_type dir) { long int pagesize, pagemask ; uintptr_t beg ; if (the_stack_beg) return ; // already set // pagesize must be a power of 2 pagesize = sysconf(_SC_PAGESIZE) ; // system configuration /* fprintf(stderr, "gc_stack_beg_set: dir = %i\n", dir) ; fprintf(stderr, "gc_stack_beg_set: pagesize = %li\n", pagesize) ; fprintf(stderr, "gc_stack_beg_set: &pagesize = %p\n", &pagesize) ; */ pagemask = ~(pagesize - 1) ; // 1...10...0 if (dir > 0) { beg = (uintptr_t)(&pagesize) ; beg &= pagemask ; } else { beg = (uintptr_t)(&pagesize) + pagesize ; beg &= pagemask ; beg -= sizeof(freeitmlst) ; } the_stack_beg = (ats_ptr_type)beg ; return ; } ats_ptr_type gc_stack_beg_get ( // there is no argument for this function ) { if (!the_stack_beg) { fprintf (stderr, "GC Fatal Error: [gc_stack_beg_get]") ; fprintf (stderr, ": [the_stack_beg] is not yet set.\n") ; exit (1) ; } return the_stack_beg ; } // end of [gc_stack_beg_get] /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK /* empty */ #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [gcats1_misc_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/gcats1_master.hats0000644000175000017500000001431513431250607025366 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // June 2008 // /* ****** ****** */ /* [gc.hats]: the header file for GC implementation */ /* [gc.hats]: it can be used in both ATS and C */ /* ****** ****** */ #define __assert #assert #define __define #define #define __else #else #define __endif #endif #define __error #error #define __if #if #define __ifdef #ifdef #define __include #include #define __print #print #define __undef #undef /* ****** ****** */ __include "config.h" // automatically generated in $(ATSHOME) /* ****** ****** */ __undef __WORDSIZE /* ****** ****** */ __undef NBIT_PER_BYTE __undef NBIT_PER_BYTE_LOG __define NBIT_PER_BYTE 8 __define NBIT_PER_BYTE_LOG 3 __define NBIT_PER_BYTE_MASK (NBIT_PER_BYTE - 1) // __assert (NBIT_PER_BYTE == 1 << NBIT_PER_BYTE_LOG) __if (NBIT_PER_BYTE != 1 << NBIT_PER_BYTE_LOG) __error "#assert (NBIT_PER_BYTE != 1 << NBIT_PER_BYTE_LOG)\n" __endif /* ****** ****** */ // __WORDSIZE = 32 or 64 // __print "__WORDSIZE = "; __print __WORDSIZE; __print "\n" /* ****** ****** */ __ifdef __WORDSIZE __if (__WORDSIZE != SIZEOF_VOIDP * NBIT_PER_BYTE) __error "#assert (__WORDSIZE == SIZEOF_VOIDP * NBIT_PER_BYTE)" __endif __else __define __WORDSIZE (SIZEOF_VOIDP * NBIT_PER_BYTE) __endif // end of [ifdef __WORDSIZE] /* ****** ****** */ __if (__WORDSIZE != 32) __if (__WORDSIZE != 64) __error "__WORDSIZE is neither 32 nor 64!\n" __endif __endif /* ****** ****** */ __undef NBIT_PER_WORD __undef NBIT_PER_WORD_LOG /* ****** ****** */ __if (__WORDSIZE == 32) __define NBIT_PER_WORD 32 __define NBIT_PER_WORD_LOG 5 // __assert (NBIT_PER_WORD == 1 << NBIT_PER_WORD_LOG) __if (NBIT_PER_WORD != 1 << NBIT_PER_WORD_LOG) __error "#assert (NBIT_PER_WORD == 1 << NBIT_PER_WORD_LOG)\n" __endif __define NBYTE_PER_WORD 4 __define NBYTE_PER_WORD_LOG 2 // __assert (NBYTE_PER_WORD == 1 << NBYTE_PER_WORD_LOG) __if (NBYTE_PER_WORD != 1 << NBYTE_PER_WORD_LOG) __error "#assert (NBYTE_PER_WORD == 1 << NBYTE_PER_WORD_LOG)\n" __endif __endif // end of [__WORDSIZE == 32] /* ****** ****** */ __if (__WORDSIZE == 64) __define NBIT_PER_WORD 64 __define NBIT_PER_WORD_LOG 6 // __assert (NBIT_PER_WORD == 1 << NBIT_PER_WORD_LOG) __if (NBIT_PER_WORD != 1 << NBIT_PER_WORD_LOG) __error "#assert (NBIT_PER_WORD == 1 << NBIT_PER_WORD_LOG)\n" __endif __define NBYTE_PER_WORD 8 __define NBYTE_PER_WORD_LOG 3 // __assert (NBYTE_PER_WORD == 1 << NBYTE_PER_WORD_LOG) __if (NBYTE_PER_WORD != 1 << NBYTE_PER_WORD_LOG) __error "#assert (NBYTE_PER_WORD == 1 << NBYTE_PER_WORD_LOG)\n" __endif __endif // end of [__WORDSIZE == 64] // __define NBYTE_PER_WORD_MASK (NBYTE_PER_WORD - 1) /* ****** ****** */ __define PTR_CHKSEG_SIZE 11 __define PTR_BOTSEG_SIZE 10 __define PTR_BOTCHKSEG_SIZE (PTR_BOTSEG_SIZE + PTR_CHKSEG_SIZE) __define PTR_TOPSEG_SIZE (NBIT_PER_WORD - PTR_BOTCHKSEG_SIZE - NBYTE_PER_WORD_LOG) // __PRINT "PTR_TOPSEG_SIZE = "; __PRINT PTR_TOPSEG_SIZE; __PRINT "\n" __if (__WORDSIZE == 32) __define TOPSEG_TABLESIZE (1 << PTR_TOPSEG_SIZE) __endif __if (__WORDSIZE == 64) __define TOPSEG_HASHTABLESIZE 4096 __define TOPSEG_HASHTABLESIZE_LOG 12 // __assert (TOPSEG_HASHTABLESIZE == 1 << TOPSEG_HASHTABLESIZE_LOG) __if (TOPSEG_HASHTABLESIZE != 1 << TOPSEG_HASHTABLESIZE_LOG) __error "#assert (TOPSEG_HASHTABLESIZE == 1 << TOPSEG_HASHTABLESIZE_LOG)\n" __endif __endif // end of [__WORDSIZE == 64] // __define CHKSEG_TABLESIZE 2048 // __assert (CHKSEG_TABLESIZE == 1 << PTR_CHKSEG_SIZE) __if (CHKSEG_TABLESIZE != 1 << PTR_CHKSEG_SIZE) __error "assert (CHKSEG_TABLESIZE == 1 << PTR_CHKSEG_SIZE)\n" __endif // __define BOTSEG_TABLESIZE 1024 // __assert (BOTSEG_TABLESIZE == 1 << PTR_BOTSEG_SIZE) __if (BOTSEG_TABLESIZE != 1 << PTR_BOTSEG_SIZE) __error "assert (BOTSEG_TABLESIZE == 1 << PTR_BOTSEG_SIZE)\n" __endif __define BOTSEG_TABLESIZE_MASK (BOTSEG_TABLESIZE - 1) // __define CHUNK_WORDSIZE_LOG PTR_CHKSEG_SIZE __define CHUNK_WORDSIZE (1 << CHUNK_WORDSIZE_LOG) __define CHUNK_WORDSIZE_MASK (CHUNK_WORDSIZE - 1) __define CHUNK_BYTESIZE_LOG (CHUNK_WORDSIZE_LOG + NBYTE_PER_WORD_LOG) __define CHUNK_BYTESIZE (CHUNK_WORDSIZE << NBYTE_PER_WORD_LOG) __define CHUNK_BYTESIZE_MASK (CHUNK_BYTESIZE - 1) // __define MAX_CHUNK_BLOCK_WORDSIZE_LOG CHUNK_WORDSIZE_LOG __define MAX_CHUNK_BLOCK_WORDSIZE (1 << MAX_CHUNK_BLOCK_WORDSIZE_LOG) // __assert (MAX_CHUNK_BLOCK_WORDSIZE <= CHUNK_WORDSIZE) // // the_freeitmlst_array: // [ 2^0 | 2^1 | ... | 2^MAX_CHUNK_BLOCK_WORDSIZE_LOG] __define FREEITMLST_ARRAYSIZE (MAX_CHUNK_BLOCK_WORDSIZE_LOG + 1) // __define MARKSTACK_PAGESIZE 4000 __define MARKSTACK_CUTOFF (CHUNK_WORDSIZE / 4) __define CHUNK_SWEEP_CUTOFF 0.75 // 75% // __assert (0.0 <= CHUNK_SWEEP_CUTOFF) // __assert (CHUNK_SWEEP_CUTOFF <= 1.0) __define CHUNK_LIMIT_EXTEND_CUTOFF 0.75 // 75% // __assert (0.0 <= CHUNK_LIMIT_EXTEND_CUTOFF) // __assert (CHUNK_LIMIT_EXTEND_CUTOFF <= 1.0) // __define GLOBALENTRYPAGESIZE 64 // largely chosen arbitrarily /* ****** ****** */ __define ATS_GC_VERBOSE 0 // 1 __define ATS_GC_RUNTIME_CHECK 0 // 1 /* ****** ****** */ /* end of [gcats1_master.hats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/0000755000175000017500000000000013431250607022345 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/gcats1_top_dats.c0000644000175000017500000003506713431250607025603 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-9-3: 2h:41m ** */ /* 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 */ /* external codes at top */ #line 51 "gcats1_top.dats" int the_chunk_count = 0 ; // a soft threshold that can be extended int the_chunk_count_limit = 1 ; // int the_chunk_count_limit = 1024 ; // a hard threshold that cannot be extended int the_chunk_count_limit_max = 8192 ; // a list of freed chunk data freeitmlst the_freeitmlst_chunk_data = (freeitmlst)0 ; #ifdef _ATS_MULTITHREAD // this is the lock that protects the previous variables pthread_mutex_t the_gc_main_lock = PTHREAD_MUTEX_INITIALIZER ; #endif // [_ATS_MULTITHREAD] /* ****** ****** */ chunklst the_sweeplst_array[FREEITMLST_ARRAYSIZE] = { (chunklst)0 } ; #ifdef _ATS_MULTITHREAD pthread_mutex_t the_sweeplst_lock_array[FREEITMLST_ARRAYSIZE] ; ats_void_type gc_sweeplst_lock_array_init () { int i ; pthread_mutex_t *p_lock ; i = 0 ; p_lock = the_sweeplst_lock_array ; while (i < FREEITMLST_ARRAYSIZE) { pthread_mutex_init (p_lock, NULL); i += 1; p_lock += 1 ; } /* fprintf (stderr, "the_sweeplst_lock_array has been initialized.\n") ; */ return ; } #endif /* ****** ****** */ #ifdef _ATS_MULTITHREAD // __thread // freeitmlst the_freeitmlst_array[FREEITMLST_ARRAYSIZE] = // { (freeitmlst)0 } ; __thread freeitmlst *the_freeitmlst_array = (freeitmlst*)0 ; #else /* single thread */ freeitmlst the_freeitmlst_array[FREEITMLST_ARRAYSIZE] = { (freeitmlst)0 } ; #endif /* ****** ****** */ // protecting [the_globalentrylst] in [gc_globalentrylst.dats] #ifdef _ATS_MULTITHREAD pthread_mutex_t the_globalentrylst_lock = PTHREAD_MUTEX_INITIALIZER ; #endif /* ****** ****** */ // manually managed list of allocated memories manmemlst the_manmemlst = (manmemlst)0 ; #ifdef _ATS_MULTITHREAD pthread_mutex_t the_manmemlst_lock = PTHREAD_MUTEX_INITIALIZER ; #endif /* ****** ****** */ #ifdef _ATS_MULTITHREAD pthread_mutex_t the_threadinfolst_lock = PTHREAD_MUTEX_INITIALIZER ; #endif /* ****** ****** */ #if (__WORDSIZE == 32) botsegtbllst the_topsegtbl[TOPSEG_TABLESIZE] = { (botsegtbllst)0 } ; #endif // end of [__WORDSIZE == 32] #if (__WORDSIZE == 64) botsegtbllst the_topsegtbl[TOPSEG_HASHTABLESIZE] = { (botsegtbllst)0 } ; #endif // end of [__WORDSIZE == 64] /* ****** ****** */ ats_int_type the_markstatck_overflow = 0 ; // for debugging purpose // ats_void_type segfault (void) { return *(int*)0 ; } /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_ptr_type, atspre_stdout_get) () ; ATSextern_fun(ats_void_type, atspre_stdout_view_set) () ; ATSextern_fun(ats_ptr_type, atspre_stderr_get) () ; ATSextern_fun(ats_void_type, atspre_stderr_view_set) () ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ref_type, ats_ptr_type, ...) ; ATSextern_fun(ats_int_type, gc_stack_dir_get) () ; ATSextern_fun(ats_void_type, gc_stack_beg_set) (ats_int_type) ; ATSextern_fun(ats_int_type, freeitmlst_length) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, the_freeitmlst_array_get) (ats_int_type) ; ATSextern_fun(ats_int_type, the_chunk_count_get) () ; ATSextern_fun(ats_void_type, the_markstack_extend) (ats_int_type) ; ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, freeitmlst_chunk_data_get) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e10_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type gcats1_top_loop_1 (ats_ref_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_int_type, gcats1_top_statmp21) ; // ATSstatic_void (gcats1_top_statmp22) ; // ATSstatic_void (gcats1_top_statmp23) ; /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_top.dats: 5175(line=208, offs=7) -- 5490(line=218, offs=6) */ ATSstaticdec() ats_void_type gcats1_top_loop_1 (ats_ref_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_int_type, tmp12) ; __ats_lab_gcats1_top_loop_1: #line 210 "gcats1_top.dats" tmp8 = atspre_iadd (11, 1) ; #line 210 "gcats1_top.dats" tmp7 = atspre_ilt (arg1, tmp8) ; #line 210 "gcats1_top.dats" if (tmp7) { #line 211 "gcats1_top.dats" tmp9 = the_freeitmlst_array_get (arg1) ; #line 212 "gcats1_top.dats" tmp10 = freeitmlst_length (tmp9) ; #line 213 "gcats1_top.dats" /* tmp11 = */ atspre_fprintf_exn (arg0, ATSstrcst("freeitmlst(%i):\t%i\n"), arg1, tmp10) ; #line 216 "gcats1_top.dats" tmp12 = atspre_iadd (arg1, 1) ; #line 216 "gcats1_top.dats" arg0 = arg0 ; #line 216 "gcats1_top.dats" arg1 = tmp12 ; #line 216 "gcats1_top.dats" goto __ats_lab_gcats1_top_loop_1 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp6) */ ; } /* end of [gcats1_top_loop_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_top.dats: 4833(line=196, offs=31) -- 5550(line=222, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_int_type, tmp1) ; // ATSlocal_void (tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats: #line 198 "gcats1_top.dats" tmp1 = the_chunk_count_get () ; #line 200 "gcats1_top.dats" /* tmp2 = */ atspre_fprintf_exn (arg0, ATSstrcst("the_chunk_count:\t%i\n"), tmp1) ; #line 203 "gcats1_top.dats" tmp4 = freeitmlst_chunk_data_get () ; #line 203 "gcats1_top.dats" tmp3 = freeitmlst_length (tmp4) ; #line 205 "gcats1_top.dats" /* tmp5 = */ atspre_fprintf_exn (arg0, ATSstrcst("the_free_chunk_data_count:\t%i\n"), tmp3) ; #line 219 "gcats1_top.dats" /* tmp0 = */ gcats1_top_loop_1 (arg0, 0) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_top.dats: 5605(line=224, offs=26) -- 5785(line=231, offs=4) */ ATSglobaldec() ats_void_type gc_print_stats () { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; __ats_lab_gc_print_stats: #line 225 "gcats1_top.dats" tmp14 = atspre_stdout_get () ; #line 225 "gcats1_top.dats" tmp15 = ats_selsin_mac(tmp14, atslab_1) ; #line 227 "gcats1_top.dats" /* tmp16 = */ ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats (tmp15) ; #line 230 "gcats1_top.dats" /* tmp13 = */ atspre_stdout_view_set () ; return /* (tmp13) */ ; } /* end of [gc_print_stats] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_top.dats: 5839(line=233, offs=26) -- 6021(line=240, offs=4) */ ATSglobaldec() ats_void_type gc_prerr_stats () { /* local vardec */ // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; __ats_lab_gc_prerr_stats: #line 234 "gcats1_top.dats" tmp18 = atspre_stderr_get () ; #line 234 "gcats1_top.dats" tmp19 = ats_selsin_mac(tmp18, atslab_1) ; #line 236 "gcats1_top.dats" /* tmp20 = */ ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_fprint_stats (tmp19) ; #line 239 "gcats1_top.dats" /* tmp17 = */ atspre_stderr_view_set () ; return /* (tmp17) */ ; } /* end of [gc_prerr_stats] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload (void) ; ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload_flag = 0 ; extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload (void) ; // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__dynload () { // ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e10_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&gcats1_top_statmp21, sizeof(ats_int_type)) ; /* marking external values for GC */ /* code for dynamic loading */ #line 244 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload () ; #line 245 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload () ; #line 246 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload () ; #line 247 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload () ; #line 251 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload () ; #line 252 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload () ; #line 253 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload () ; #line 254 "gcats1_top.dats" ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload () ; #line 263 "gcats1_top.dats" gcats1_top_statmp21 = gc_stack_dir_get () ; #line 264 "gcats1_top.dats" /* gcats1_top_statmp22 = */ gc_stack_beg_set (gcats1_top_statmp21) ; #line 281 "gcats1_top.dats" /* gcats1_top_statmp23 = */ the_markstack_extend (1) ; return ; } /* end of [dynload function] */ ats_void_type gc_init () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_top_2edats__dynload () ; return ; } /* external codes at mid */ /* external codes at bot */ #line 150 "gcats1_top.dats" ats_int_type gc_chunk_count_limit_get () { return the_chunk_count_limit ; } ats_void_type gc_chunk_count_limit_set (ats_int_type n) { if (n >= 0) { the_chunk_count_limit = n ; } else { fprintf (stderr, "GC Fatal Error: [gc_chunk_count_limit_set]: negative argument.\n") ; exit (1) ; } return ; } ats_int_type gc_chunk_count_limit_max_get () { return the_chunk_count_limit_max ; } ats_void_type gc_chunk_count_limit_max_set (ats_int_type n) { the_chunk_count_limit_max = n ; return ; } #line 185 "gcats1_top.dats" extern ats_ptr_type the_freeitmlst_chunk_data ; ats_ptr_type freeitmlst_chunk_data_get () { return the_freeitmlst_chunk_data ; } #line 293 "gcats1_top.dats" ats_ptr_type the_globalentrylst = (ats_ptr_type)0 ; // GLOBALENTRYLSTnil // end of ... extern void globalentrylst_insert (ats_ref_type ents, ats_ptr_type ptr, ats_int_type wsz) ; ats_void_type gc_markroot_bsz (ats_ptr_type ptr, ats_int_type bsz/*bytesize*/) { int wsz = (bsz >> NBYTE_PER_WORD_LOG) ; /* fprintf (stderr, "gc_markroot_bsz: ptr = %p\n", ptr) ; fprintf (stderr, "gc_markroot_bsz: bsz = %i\n", bsz) ; fprintf (stderr, "gc_markroot_bsz: wsz = %i\n", wsz) ; */ globalentrylst_insert (&the_globalentrylst, ptr, wsz) ; return ; } /* end of [gc_markroot_bsz] */ /* ****** ****** */ /* end of [gcats1_top_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/gcats1_globalentry_dats.c0000644000175000017500000003027113431250607027313 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-9-3: 2h:41m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } gcats1_globalentry_anairiats_sum_0 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTcons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTnil_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_isub) (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_void_type, globalentry_insert) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, globalentrylst_insert) (ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert) (ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, entrypage_alloc) () ; ATSextern_fun(ats_void_type, gc_mark_entrypage) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, gc_mark_globalentrylst) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats____leak_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTcons_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTnil_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_globalentry.dats: 2733(line=83, offs=33) -- 3549(line=106, offs=4) */ ATSglobaldec() ats_void_type globalentrylst_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_int_type, tmp7) ; __ats_lab_globalentrylst_insert: #line 86 "gcats1_globalentry.dats" do { /* branch: __ats_lab_0 */ #line 87 "gcats1_globalentry.dats" __ats_lab_0_0: #line 87 "gcats1_globalentry.dats" __ats_lab_0_1: #line 87 "gcats1_globalentry.dats" tmp1 = atspre_igt (arg2, 0) ; #line 87 "gcats1_globalentry.dats" if (!tmp1) { goto __ats_lab_3_1 ; } #line 87 "gcats1_globalentry.dats" do { /* branch: __ats_lab_1 */ #line 88 "gcats1_globalentry.dats" __ats_lab_1_0: #line 88 "gcats1_globalentry.dats" if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; } #line 88 "gcats1_globalentry.dats" __ats_lab_1_1: #line 88 "gcats1_globalentry.dats" tmp2 = ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; #line 88 "gcats1_globalentry.dats" tmp3 = &ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; #line 89 "gcats1_globalentry.dats" tmp4 = ats_ptrget_mac(ats_int_type, tmp3) ; #line 91 "gcats1_globalentry.dats" tmp5 = atspre_igte (tmp4, 0) ; #line 91 "gcats1_globalentry.dats" if (tmp5) { #line 92 "gcats1_globalentry.dats" /* tmp6 = */ globalentry_insert (tmp2, tmp4, arg1, arg2) ; #line 94 "gcats1_globalentry.dats" tmp7 = atspre_isub (tmp4, 1) ; #line 94 "gcats1_globalentry.dats" ats_ptrget_mac(ats_int_type, tmp3) = tmp7 ; } else { #line 96 "gcats1_globalentry.dats" /* tmp0 = */ ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert (arg0, arg1, arg2) ; } /* end of [if] */ break ; /* branch: __ats_lab_2 */ #line 99 "gcats1_globalentry.dats" __ats_lab_2_0: #line 99 "gcats1_globalentry.dats" // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 99 "gcats1_globalentry.dats" __ats_lab_2_1: #line 100 "gcats1_globalentry.dats" /* tmp0 = */ ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert (arg0, arg1, arg2) ; break ; } while (0) ; break ; /* branch: __ats_lab_3 */ #line 103 "gcats1_globalentry.dats" __ats_lab_3_0: #line 103 "gcats1_globalentry.dats" __ats_lab_3_1: break ; } while (0) ; return /* (tmp0) */ ; } /* end of [globalentrylst_insert] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_globalentry.dats: 3624(line=108, offs=40) -- 4159(line=123, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert: #line 115 "gcats1_globalentry.dats" tmp9 = entrypage_alloc () ; #line 115 "gcats1_globalentry.dats" tmp10 = ats_selsin_mac(tmp9, atslab_1) ; #line 119 "gcats1_globalentry.dats" tmp11 = atspre_isub (64, 1) ; #line 120 "gcats1_globalentry.dats" /* tmp12 = */ globalentry_insert (tmp10, tmp11, arg1, arg2) ; #line 122 "gcats1_globalentry.dats" tmp14 = atspre_isub (tmp11, 1) ; #line 122 "gcats1_globalentry.dats" tmp13 = ATS_MALLOC(sizeof(gcats1_globalentry_anairiats_sum_0)) ; ats_selptrset_mac(gcats1_globalentry_anairiats_sum_0, tmp13, atslab_0, tmp10) ; ats_selptrset_mac(gcats1_globalentry_anairiats_sum_0, tmp13, atslab_1, tmp14) ; ats_selptrset_mac(gcats1_globalentry_anairiats_sum_0, tmp13, atslab_2, ats_ptrget_mac(ats_ptr_type, arg0)) ; #line 122 "gcats1_globalentry.dats" ats_ptrget_mac(ats_ptr_type, arg0) = tmp13 ; return /* (tmp8) */ ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__globalentrylst_extend_insert] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_globalentry.dats: 4527(line=135, offs=34) -- 4863(line=146, offs=4) */ ATSglobaldec() ats_void_type gc_mark_globalentrylst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab_gc_mark_globalentrylst: #line 136 "gcats1_globalentry.dats" do { /* branch: __ats_lab_4 */ #line 137 "gcats1_globalentry.dats" __ats_lab_4_0: #line 137 "gcats1_globalentry.dats" if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } #line 137 "gcats1_globalentry.dats" __ats_lab_4_1: #line 137 "gcats1_globalentry.dats" tmp16 = ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, arg0, atslab_0) ; #line 137 "gcats1_globalentry.dats" tmp17 = ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, arg0, atslab_1) ; #line 137 "gcats1_globalentry.dats" tmp18 = &ats_caselptrlab_mac(gcats1_globalentry_anairiats_sum_0, arg0, atslab_2) ; #line 138 "gcats1_globalentry.dats" /* tmp19 = */ gc_mark_entrypage (tmp16, tmp17) ; #line 139 "gcats1_globalentry.dats" tmp20 = ats_ptrget_mac(ats_ptr_type, tmp18) ; #line 139 "gcats1_globalentry.dats" arg0 = tmp20 ; #line 139 "gcats1_globalentry.dats" goto __ats_lab_gc_mark_globalentrylst ; // tail call break ; /* branch: __ats_lab_5 */ #line 143 "gcats1_globalentry.dats" __ats_lab_5_0: #line 143 "gcats1_globalentry.dats" // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 143 "gcats1_globalentry.dats" __ats_lab_5_1: break ; } while (0) ; return /* (tmp15) */ ; } /* end of [gc_mark_globalentrylst] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; // ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTcons_0.tag = 0 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__GLOBALENTRYLSTnil_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_globalentry_2edats____leak_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 150 "gcats1_globalentry.dats" ats_ptr_type entrypage_alloc () { void* p ; p = malloc (GLOBALENTRYPAGESIZE * sizeof(freeitmptrsz_t)) ; /* fprintf (stderr, "entrypage_alloc: p = %p\n", p) ; */ if (!p) { fprintf (stderr, "GC Fatal Error: [gc_globalentry.dats]") ; fprintf (stderr, ": [entrypage_alloc]: [malloc] failed.\n") ; exit (1) ; } // end of [if] return p ; } /* end of [entrypage_alloc] */ /* ****** ****** */ ats_void_type globalentry_insert (ats_ptr_type p0, ats_int_type u, ats_ptr_type p, ats_int_type wsz) { freeitmptrsz_t *p0_u ; p0_u = (freeitmptrsz_t*)p0 + u ; p0_u->atslab_ptr = p ; p0_u->atslab_size = wsz ; return ; } /* globalentry_insert */ /* ****** ****** */ extern ats_void_type gc_mark_ptr (ats_ptr_type) ; ats_void_type gc_mark_entrypage (ats_ptr_type p0, ats_int_type u/*used if higher*/) { int i, j ; freeitmptrsz_t *p0_i ; freeitmlst *p_j ; int wsz ; i = u + 1 ; p0_i = (freeitmptrsz_t*)p0 + i ; /* fprintf (stderr, "gc_mark_entrypage: enter\n") ; */ while (i < GLOBALENTRYPAGESIZE) { // termination: obvious p_j = (freeitmlst*)(p0_i->atslab_ptr) ; wsz = p0_i->atslab_size ; /* fprintf (stderr, "gc_mark_entrypage: p_j = %p(%i)\n", p_j, p_j) ; */ for (j = 0; j < wsz; j += 1, p_j += 1) { gc_mark_ptr (*p_j) ; } i += 1 ; p0_i += 1 ; } // end of [while] /* fprintf (stderr, "gc_mark_entrypage: leave\n") ; */ return ; } /* end of [gc_mark_entrypage] */ /* ****** ****** */ /* end of [gcats1_globalentry_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/gcats1_marking_dats.c0000644000175000017500000005165613431250607026433 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-9-3: 2h:41m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, 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_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, botsegtbllst_get) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, markstackpagelst_nil) () ; ATSextern_fun(ats_bool_type, markstackpagelst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, markstackpagelst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, markstackpagelst_next_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, markstackpagelst_prev_get) (ats_ptr_type) ; ATSextern_fun(ats_void_type, markstackpagelst_entry_get) (ats_ptr_type, ats_int_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, markstackpagelst_entry_set) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, gc_overflow_mark_the_topsegtbl) () ; ATSextern_fun(ats_void_type, gc_mark_the_stack) () ; ATSextern_fun(ats_void_type, gc_mark_the_globalentrylst) () ; ATSextern_fun(ats_void_type, gc_mark_the_manmemlst) () ; ATSextern_fun(ats_void_type, gc_overflow_mark_chunk) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_overflow_mark_botsegtbl) (ats_ptr_type) ; ATSextern_fun(ats_int_type, the_markstack_overflow_get) () ; ATSextern_fun(ats_void_type, the_markstack_overflow_set) () ; ATSextern_fun(ats_void_type, the_markstack_overflow_clear) () ; ATSextern_val(ats_int_type, the_markstackpagecnt) ; ATSextern_val(ats_ptr_type, the_markstackpagelst_fst) ; ATSextern_val(ats_ptr_type, the_markstackpagelst_cur) ; ATSextern_val(ats_int_type, the_markstackposition) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_int_type, the_markstackpagecnt) ; ATSglobal(ats_ptr_type, the_markstackpagelst_fst) ; ATSglobal(ats_ptr_type, the_markstackpagelst_cur) ; ATSglobal(ats_int_type, the_markstackposition) ; /* internal function declarations */ static ats_int_type gcats1_marking_aux_1 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_marking_loop_5 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_marking_loop_7 (ats_int_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, gcats1_marking_statmp43) ; /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 1781(line=56, offs=7) -- 1958(line=60, offs=8) */ ATSstaticdec() ats_int_type gcats1_marking_aux_1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; __ats_lab_gcats1_marking_aux_1: #line 58 "gcats1_marking.dats" tmp2 = markstackpagelst_is_nil (arg0) ; #line 58 "gcats1_marking.dats" if (tmp2) { #line 58 "gcats1_marking.dats" tmp1 = arg1 ; } else { #line 59 "gcats1_marking.dats" tmp3 = markstackpagelst_next_get (arg0) ; #line 59 "gcats1_marking.dats" tmp4 = atspre_iadd (arg1, 1) ; #line 59 "gcats1_marking.dats" arg0 = tmp3 ; #line 59 "gcats1_marking.dats" arg1 = tmp4 ; #line 59 "gcats1_marking.dats" goto __ats_lab_gcats1_marking_aux_1 ; // tail call } /* end of [if] */ return (tmp1) ; } /* end of [gcats1_marking_aux_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 1762(line=55, offs=35) -- 1996(line=63, offs=4) */ ATSglobaldec() ats_int_type markstackpagelst_length (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_markstackpagelst_length: #line 62 "gcats1_marking.dats" tmp0 = gcats1_marking_aux_1 (arg0, 0) ; return (tmp0) ; } /* end of [markstackpagelst_length] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 2079(line=67, offs=25) -- 2677(line=87, offs=4) */ ATSglobaldec() ats_int_type markstack_pop (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_bool_type, tmp7) ; // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab_markstack_pop: #line 68 "gcats1_marking.dats" tmp6 = atspre_isub (ats_ptrget_mac(ats_int_type, arg1), 1) ; #line 70 "gcats1_marking.dats" tmp7 = atspre_igte (tmp6, 0) ; #line 70 "gcats1_marking.dats" if (tmp7) { #line 71 "gcats1_marking.dats" /* tmp8 = */ markstackpagelst_entry_get (ats_ptrget_mac(ats_ptr_type, arg0), tmp6, arg2, arg3) ; #line 73 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = tmp6 ; #line 73 "gcats1_marking.dats" tmp5 = 0 ; } else { #line 75 "gcats1_marking.dats" tmp9 = markstackpagelst_prev_get (ats_ptrget_mac(ats_ptr_type, arg0)) ; #line 77 "gcats1_marking.dats" tmp10 = markstackpagelst_is_cons (tmp9) ; #line 77 "gcats1_marking.dats" if (tmp10) { #line 78 "gcats1_marking.dats" ats_ptrget_mac(ats_ptr_type, arg0) = tmp9 ; #line 79 "gcats1_marking.dats" tmp11 = atspre_isub (4000, 1) ; #line 80 "gcats1_marking.dats" /* tmp12 = */ markstackpagelst_entry_get (ats_ptrget_mac(ats_ptr_type, arg0), tmp11, arg2, arg3) ; #line 82 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = tmp11 ; #line 82 "gcats1_marking.dats" tmp5 = 0 ; } else { #line 84 "gcats1_marking.dats" ats_ptrget_mac(ats_ptr_type, arg2) = atspre_null_ptr ; #line 84 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg3) = 0 ; #line 84 "gcats1_marking.dats" tmp5 = 1 ; } /* end of [if] */ } /* end of [if] */ return (tmp5) ; } /* end of [markstack_pop] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 2751(line=91, offs=26) -- 3336(line=112, offs=4) */ ATSglobaldec() ats_int_type markstack_push (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_bool_type, tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_bool_type, tmp21) ; __ats_lab_markstack_push: #line 92 "gcats1_marking.dats" tmp14 = ats_ptrget_mac(ats_int_type, arg1) ; #line 94 "gcats1_marking.dats" tmp15 = atspre_ilt (tmp14, 4000) ; #line 94 "gcats1_marking.dats" if (tmp15) { #line 95 "gcats1_marking.dats" /* tmp16 = */ markstackpagelst_entry_set (ats_ptrget_mac(ats_ptr_type, arg0), tmp14, arg2, arg3) ; #line 96 "gcats1_marking.dats" tmp17 = atspre_iadd (tmp14, 1) ; #line 97 "gcats1_marking.dats" tmp19 = atspre_ilt (tmp17, 4000) ; #line 97 "gcats1_marking.dats" if (tmp19) { #line 97 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = tmp17 ; } else { #line 99 "gcats1_marking.dats" tmp20 = markstackpagelst_next_get (ats_ptrget_mac(ats_ptr_type, arg0)) ; #line 101 "gcats1_marking.dats" tmp21 = markstackpagelst_is_cons (tmp20) ; #line 101 "gcats1_marking.dats" if (tmp21) { #line 102 "gcats1_marking.dats" ats_ptrget_mac(ats_ptr_type, arg0) = tmp20 ; #line 102 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = 0 ; } else { #line 104 "gcats1_marking.dats" ats_ptrget_mac(ats_int_type, arg1) = 4000 ; } /* end of [if] */ } /* end of [if] */ #line 108 "gcats1_marking.dats" tmp13 = 0 ; } else { #line 110 "gcats1_marking.dats" tmp13 = 1 ; } /* end of [if] */ return (tmp13) ; } /* end of [markstack_push] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 3678(line=124, offs=7) -- 3982(line=132, offs=8) */ ATSstaticdec() ats_void_type gcats1_marking_loop_5 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_bool_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; __ats_lab_gcats1_marking_loop_5: #line 126 "gcats1_marking.dats" tmp24 = atspre_ilt (arg1, 1024) ; #line 126 "gcats1_marking.dats" if (tmp24) { #line 127 "gcats1_marking.dats" tmp25 = botsegtbllst_get (arg0, arg1) ; #line 128 "gcats1_marking.dats" tmp27 = chunklst_is_cons (tmp25) ; #line 128 "gcats1_marking.dats" if (tmp27) { #line 128 "gcats1_marking.dats" /* tmp26 = */ gc_overflow_mark_chunk (tmp25) ; } else { /* empty */ } /* end of [if] */ #line 131 "gcats1_marking.dats" tmp28 = atspre_iadd (arg1, 1) ; #line 131 "gcats1_marking.dats" arg0 = arg0 ; #line 131 "gcats1_marking.dats" arg1 = tmp28 ; #line 131 "gcats1_marking.dats" goto __ats_lab_gcats1_marking_loop_5 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp23) */ ; } /* end of [gcats1_marking_loop_5] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 3611(line=122, offs=38) -- 3999(line=133, offs=2) */ ATSglobaldec() ats_void_type gc_overflow_mark_botsegtbl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; __ats_lab_gc_overflow_mark_botsegtbl: #line 122 "gcats1_marking.dats" /* tmp22 = */ gcats1_marking_loop_5 (arg0, 0) ; return /* (tmp22) */ ; } /* end of [gc_overflow_mark_botsegtbl] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 4796(line=162, offs=9) -- 5062(line=169, offs=10) */ ATSstaticdec() ats_void_type gcats1_marking_loop_7 (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp37) ; ATSlocal (ats_bool_type, tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_int_type, tmp41) ; __ats_lab_gcats1_marking_loop_7: #line 163 "gcats1_marking.dats" tmp38 = atspre_gt_int_int (arg0, 0) ; #line 163 "gcats1_marking.dats" if (tmp38) { #line 164 "gcats1_marking.dats" /* tmp39 = */ the_markstack_overflow_clear () ; #line 165 "gcats1_marking.dats" /* tmp40 = */ gc_overflow_mark_the_topsegtbl () ; #line 166 "gcats1_marking.dats" tmp41 = the_markstack_overflow_get () ; #line 168 "gcats1_marking.dats" arg0 = tmp41 ; #line 168 "gcats1_marking.dats" goto __ats_lab_gcats1_marking_loop_7 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp37) */ ; } /* end of [gcats1_marking_loop_7] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_marking.dats: 4329(line=146, offs=23) -- 5118(line=173, offs=4) */ ATSglobaldec() ats_int_type gc_mark_all () { /* local vardec */ ATSlocal (ats_int_type, tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_int_type, tmp34) ; // ATSlocal_void (tmp35) ; ATSlocal (ats_bool_type, tmp36) ; // ATSlocal_void (tmp42) ; __ats_lab_gc_mark_all: #line 147 "gcats1_marking.dats" /* tmp30 = */ gc_mark_the_globalentrylst () ; #line 148 "gcats1_marking.dats" /* tmp31 = */ gc_mark_the_manmemlst () ; #line 152 "gcats1_marking.dats" /* tmp32 = */ the_markstack_overflow_clear () ; #line 153 "gcats1_marking.dats" /* tmp33 = */ gc_mark_the_stack () ; #line 154 "gcats1_marking.dats" tmp34 = the_markstack_overflow_get () ; #line 157 "gcats1_marking.dats" tmp36 = atspre_gt_int_int (tmp34, 0) ; #line 157 "gcats1_marking.dats" if (tmp36) { #line 158 "gcats1_marking.dats" /* tmp35 = */ atspre_prerr_string (ATSstrcst("GC: [gc_mark_all]: mark stack overflow happened!\n")) ; } else { /* empty */ } /* end of [if] */ #line 161 "gcats1_marking.dats" /* tmp42 = */ gcats1_marking_loop_7 (tmp34) ; #line 172 "gcats1_marking.dats" tmp29 = tmp34 ; return (tmp29) ; } /* end of [gc_mark_all] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_marking_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&gcats1_marking_statmp43, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ #line 195 "gcats1_marking.dats" ATS_GC_MARKROOT(&the_markstackpagecnt, sizeof(ats_int_type)) ; the_markstackpagecnt = 0 ; #line 196 "gcats1_marking.dats" gcats1_marking_statmp43 = markstackpagelst_nil () ; #line 196 "gcats1_marking.dats" ATS_GC_MARKROOT(&the_markstackpagelst_fst, sizeof(ats_ptr_type)) ; the_markstackpagelst_fst = gcats1_marking_statmp43 ; #line 197 "gcats1_marking.dats" ATS_GC_MARKROOT(&the_markstackpagelst_cur, sizeof(ats_ptr_type)) ; the_markstackpagelst_cur = the_markstackpagelst_fst ; #line 198 "gcats1_marking.dats" ATS_GC_MARKROOT(&the_markstackposition, sizeof(ats_int_type)) ; the_markstackposition = 0 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 204 "gcats1_marking.dats" extern ats_ptr_type the_markstackpagelst_fst ; ats_void_type the_markstack_extend (ats_int_type n) { int i ; markstackpagelst p0, p ; p0 = the_markstackpagelst_fst ; if (the_markstackposition != 0) { fprintf ( stderr , "GC: Fatal Error: the_markstack_extend: the_markstackposition = %i.\n" , the_markstackposition ) ; exit (1) ; } // end of [if] for (i = 0; i < n; i += 1) { /* fprintf (stderr, "the_markstack_extend: i = %i\n", i) ; */ p = (markstackpagelst)malloc (sizeof(markstackpage)) ; if (!p) { fprintf ( stderr, "GC Fatal Error: [the_markstack_extend]: malloc failed!\n" ) ; exit (1) ; } // end of [if] if (p0 != NULL) p0->prev = p ; p->next = p0 ; p->prev = NULL ; p0 = p ; } // end of [while] if (n > 0) the_markstackpagecnt += n ; the_markstackpagelst_fst = the_markstackpagelst_cur = p0 ; /* if (the_markstackpagecnt != markstackpagelst_length (p0)) { fprintf ( stderr , "GC: Fatal Error: the_markstack_extend: the_markstackpagecnt = %i.\n" , the_markstackpagecnt ) ; exit (1) ; } // end of [if] */ return ; } /* end of [the_markstack_extend] */ /* ****** ****** */ extern ats_ptr_type gc_ptr_is_valid (ats_ptr_type, ats_ref_type) ; ats_void_type gc_mark_ptr (ats_ptr_type ptr) { chunklst chks ; int ofs ; int itemwsz ; byte *markbits ; int i ; freeitmlst *ptr_i ; freeitmlst ptr_cand ; int overflow ; /* fprintf (stderr, "gc_mark_ptr: first: ptr = %p(%i)\n", ptr, ptr) ; */ chks = (chunklst)gc_ptr_is_valid (ptr, &ofs) ; /* fprintf (stderr, "gc_mark_ptr: chks = %p\n", chks) ; */ if (!chks) return ; // [ptr] is invalid markbits = chks->markbits ; if (MARK_GET(markbits, ofs)) return ; // already marked MARK_SET(markbits, ofs) ; chks->markcnt += 1 ; itemwsz = chks->itemwsz ; while (ptr) { // ptr != NULL /* fprintf (stderr, "gc_mark_ptr: ptr = %p(%i)\n", ptr, ptr) ; fprintf (stderr, "gc_mark_ptr: itemwsz = %i\n", itemwsz); */ if (itemwsz > MARKSTACK_CUTOFF) { overflow = the_markstack_push ( (freeitmlst*)ptr + MARKSTACK_CUTOFF, itemwsz - MARKSTACK_CUTOFF ) ; if (overflow) the_markstack_overflow_set () ; itemwsz = MARKSTACK_CUTOFF ; } // end of [if] // push all the valid pointers onto the markstack except the last one ptr_i = (freeitmlst*)ptr ; for (i = 0; i < itemwsz - 1; i += 1, ptr_i += 1) { ptr_cand = *ptr_i ; /* fprintf (stderr, "gc_mark_ptr: ptr_i = %p(%i)\n", ptr_i, ptr_i) ; fprintf (stderr, "gc_mark_ptr: ptr_cand = %p(%i)\n", ptr_cand, ptr_cand) ; */ chks = (chunklst)gc_ptr_is_valid (ptr_cand, &ofs) ; if (!chks) continue ; // [ptr_cand] is invalid markbits = chks->markbits ; if (MARK_GET(markbits, ofs)) continue ; // already marked MARK_SET(markbits, ofs) ; chks->markcnt += 1 ; overflow = the_markstack_push (ptr_cand, chks->itemwsz) ; if (overflow) the_markstack_overflow_set () ; } // end of [for] ptr_cand = *ptr_i ; /* fprintf (stderr, "gc_mark_ptr: ptr_i = %p(%i)\n", ptr_i, ptr_i) ; fprintf (stderr, "gc_mark_ptr: ptr_cand = %p(%i)\n", ptr_cand, ptr_cand) ; */ chks = (chunklst)gc_ptr_is_valid (ptr_cand, &ofs) ; if (!chks) { // [ptr_cand] is invalid the_markstack_pop (&ptr, &itemwsz) ; continue ; } // end of [if] markbits = chks->markbits ; if (MARK_GET(markbits, ofs)) { // [ptr_cand] is marked the_markstack_pop (&ptr, &itemwsz) ; continue ; } MARK_SET(markbits, ofs) ; chks->markcnt += 1 ; ptr = ptr_cand ; itemwsz = chks->itemwsz ; } // end of [while] } /* end of [gc_mark_ptr] */ #line 331 "gcats1_marking.dats" // [chks] must not be NULL! ats_void_type gc_overflow_mark_chunk (ats_ptr_type chks) { int i, j ; freeitmlst *pi, *pij ; int itemwsz, itemtot ; byte *markbits ; itemwsz = chunklst_itemwsz_get (chks) ; itemtot = chunklst_itemtot_get (chks) ; markbits = chunklst_markbits_get (chks) ; pi = (freeitmlst*)chunklst_data_get (chks) ; for (i = 0; i < itemtot; i += 1, pi += itemwsz) { if (MARK_GET(markbits, i)) { for (j = 0, pij = pi; j < itemwsz; j += 1, pij += 1) { gc_mark_ptr (pij) ; } // end of [for] } // end of [if] } // end of [for] } /* end of [gc_overflow_mark_chunk] */ /* ****** ****** */ #if (__WORDSIZE == 32) ats_void_type gc_overflow_mark_the_topsegtbl () { int i ; botsegtbllst tbls ; for (i = 0; i < TOPSEG_TABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; if (tbls) gc_overflow_mark_botsegtbl (tbls) ; } // end of [for] return ; } /* end of [gc_overflow_mark_the_topsegtbl] */ #endif // end of [__WORDSIZE == 32] #if (__WORDSIZE == 64) ats_void_type gc_overflow_mark_the_topsegtbl () { int i ; botsegtbllst tbls ; for (i = 0; i < TOPSEG_HASHTABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; while (tbls) { // terminating: obvious gc_overflow_mark_botsegtbl (tbls) ; tbls = tbls->hash_next ; } // end of [while] } // end of [for] return ; } /* end of [gc_overflow_mark_the_topsegtbl] */ #endif // end of [__WORDSIZE == 64] #line 386 "gcats1_marking.dats" extern ats_ptr_type the_globalentrylst ; extern ats_void_type gc_mark_globalentrylst (ats_ptr_type ents) ; ats_void_type gc_mark_the_globalentrylst () { gc_mark_globalentrylst (the_globalentrylst) ; return ; } extern ats_ptr_type gc_stack_beg_get () ; ats_void_type gc_mark_the_stack () { intptr_t dir ; // make sure that [dir] is word-aligned! freeitmlst *_fr, *_to ; dir = gc_stack_dir_get () ; if (dir > 0) { _fr = gc_stack_beg_get () ; _to = (freeitmlst*)(&dir) - 1 ; } else { _to = gc_stack_beg_get () ; _fr = (freeitmlst*)(&dir) + 1 ; } // end of [if] /* fprintf (stderr, "gc_mark_the_stack: _fr = %p(%u)\n", _fr, _fr) ; fprintf (stderr, "gc_mark_the_stack: _to = %p(%u)\n", _to, _to) ; fprintf (stderr, "gc_mark_the_stack: _to - _fr = %i\n", _to - _fr) ; */ while (_fr <= _to) { gc_mark_ptr (*_fr) ; _fr += 1 ; // termination: obvious } // end of [while] return ; } /* end of [gc_mark_the_stack] */ /* ****** ****** */ /* end of [gcats1_marking_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/gcats1_collecting_dats.c0000644000175000017500000005365513431250607027127 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-9-3: 2h:41m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_asl_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_main_lock_acquire) () ; ATSextern_fun(ats_void_type, gc_main_lock_release) () ; ATSextern_fun(ats_void_type, the_globalentrylst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_globalentrylst_lock_release) () ; ATSextern_fun(ats_void_type, the_manmemlst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_manmemlst_lock_release) () ; ATSextern_fun(ats_void_type, the_threadinfolst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_threadinfolst_lock_release) () ; ATSextern_fun(ats_void_type, the_sweeplst_lock_acquire_one) (ats_int_type) ; ATSextern_fun(ats_void_type, the_sweeplst_lock_release_one) (ats_int_type) ; ATSextern_fun(ats_void_type, the_sweeplst_lock_acquire_rest) (ats_int_type) ; ATSextern_fun(ats_void_type, the_sweeplst_lock_release_rest) (ats_int_type) ; ATSextern_fun(ats_bool_type, freeitmlst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_sweep_next_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_create_release) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, the_chunk_count_limit_is_not_reached) () ; ATSextern_fun(ats_ptr_type, botsegtbllst_get) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, the_sweeplst_array_get) (ats_int_type) ; ATSextern_fun(ats_void_type, the_sweeplst_array_set) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, the_sweeplst_array_clear_one) (ats_int_type) ; ATSextern_fun(ats_void_type, gc_collect) () ; ATSextern_fun(ats_ptr_type, gc_chunk_threading) (ats_ptr_type) ; ATSextern_fun(ats_void_type, the_sweeplst_array_clear_all) () ; ATSextern_fun(ats_void_type, gc_sweeplst_build_chunk) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_sweeplst_build_botsegtbl) (ats_ptr_type) ; ATSextern_fun(ats_void_type, fprint_the_sweeplst_array_all) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__sweeplst_lock_all_takeout_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type gcats1_collecting_loop_1 (ats_int_type arg0) ; static ats_void_type gcats1_collecting_loop_3 (ats_ptr_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 1953(line=61, offs=7) -- 2267(line=69, offs=8) */ ATSstaticdec() ats_void_type gcats1_collecting_loop_1 (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_int_type, tmp5) ; __ats_lab_gcats1_collecting_loop_1: #line 63 "gcats1_collecting.dats" tmp3 = atspre_iadd (11, 1) ; #line 63 "gcats1_collecting.dats" tmp2 = atspre_ilt (arg0, tmp3) ; #line 63 "gcats1_collecting.dats" if (tmp2) { #line 65 "gcats1_collecting.dats" /* tmp4 = */ the_sweeplst_array_clear_one (arg0) ; #line 68 "gcats1_collecting.dats" tmp5 = atspre_iadd (arg0, 1) ; #line 68 "gcats1_collecting.dats" arg0 = tmp5 ; #line 68 "gcats1_collecting.dats" goto __ats_lab_gcats1_collecting_loop_1 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp1) */ ; } /* end of [gcats1_collecting_loop_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 1892(line=59, offs=40) -- 2305(line=72, offs=4) */ ATSglobaldec() ats_void_type the_sweeplst_array_clear_all () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_the_sweeplst_array_clear_all: #line 71 "gcats1_collecting.dats" /* tmp0 = */ gcats1_collecting_loop_1 (0) ; return /* (tmp0) */ ; } /* end of [the_sweeplst_array_clear_all] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 2618(line=83, offs=7) -- 2964(line=92, offs=6) */ ATSstaticdec() ats_void_type gcats1_collecting_loop_3 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp7) ; ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; __ats_lab_gcats1_collecting_loop_3: #line 85 "gcats1_collecting.dats" tmp8 = atspre_ilt (arg1, 1024) ; #line 85 "gcats1_collecting.dats" if (tmp8) { #line 86 "gcats1_collecting.dats" tmp9 = botsegtbllst_get (arg0, arg1) ; #line 87 "gcats1_collecting.dats" tmp11 = chunklst_is_cons (tmp9) ; #line 87 "gcats1_collecting.dats" if (tmp11) { #line 87 "gcats1_collecting.dats" /* tmp10 = */ gc_sweeplst_build_chunk (tmp9) ; } else { /* empty */ } /* end of [if] */ #line 90 "gcats1_collecting.dats" tmp12 = atspre_iadd (arg1, 1) ; #line 90 "gcats1_collecting.dats" arg0 = arg0 ; #line 90 "gcats1_collecting.dats" arg1 = tmp12 ; #line 90 "gcats1_collecting.dats" goto __ats_lab_gcats1_collecting_loop_3 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp7) */ ; } /* end of [gcats1_collecting_loop_3] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 2599(line=82, offs=39) -- 3005(line=95, offs=4) */ ATSglobaldec() ats_void_type gc_sweeplst_build_botsegtbl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp6) ; __ats_lab_gc_sweeplst_build_botsegtbl: #line 94 "gcats1_collecting.dats" /* tmp6 = */ gcats1_collecting_loop_3 (arg0, 0) ; return /* (tmp6) */ ; } /* end of [gc_sweeplst_build_botsegtbl] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_collecting.dats: 3190(line=102, offs=34) -- 6455(line=184, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_bool_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_bool_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_int_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate: #line 110 "gcats1_collecting.dats" /* tmp14 = */ the_sweeplst_lock_acquire_one (arg0) ; #line 110 "gcats1_collecting.dats" /* tmp15 = ats_selsin_mac(tmp14, atslab_1) */ ; #line 111 "gcats1_collecting.dats" tmp16 = the_sweeplst_array_get (arg0) ; #line 113 "gcats1_collecting.dats" tmp18 = chunklst_is_cons (tmp16) ; #line 113 "gcats1_collecting.dats" if (tmp18) { #line 113 "gcats1_collecting.dats" tmp17 = tmp16 ; } else { #line 114 "gcats1_collecting.dats" /* tmp19 = */ the_sweeplst_lock_release_one (arg0) ; #line 115 "gcats1_collecting.dats" /* tmp20 = */ gc_main_lock_acquire () ; #line 115 "gcats1_collecting.dats" /* tmp21 = ats_selsin_mac(tmp20, atslab_1) */ ; #line 116 "gcats1_collecting.dats" /* tmp22 = */ the_sweeplst_lock_acquire_one (arg0) ; #line 116 "gcats1_collecting.dats" /* tmp23 = ats_selsin_mac(tmp22, atslab_1) */ ; #line 118 "gcats1_collecting.dats" tmp24 = the_sweeplst_array_get (arg0) ; #line 120 "gcats1_collecting.dats" tmp25 = chunklst_is_cons (tmp24) ; #line 120 "gcats1_collecting.dats" if (tmp25) { #line 121 "gcats1_collecting.dats" /* tmp26 = */ gc_main_lock_release () ; #line 121 "gcats1_collecting.dats" tmp17 = tmp24 ; } else { #line 124 "gcats1_collecting.dats" tmp27 = the_chunk_count_limit_is_not_reached () ; #line 126 "gcats1_collecting.dats" if (tmp27) { #line 127 "gcats1_collecting.dats" tmp28 = atspre_asl_int_int1 (1, arg0) ; #line 127 "gcats1_collecting.dats" tmp17 = chunklst_create_release (arg0, tmp28) ; } else { #line 129 "gcats1_collecting.dats" /* tmp29 = */ the_globalentrylst_lock_acquire () ; #line 129 "gcats1_collecting.dats" /* tmp30 = ats_selsin_mac(tmp29, atslab_1) */ ; #line 130 "gcats1_collecting.dats" /* tmp31 = */ the_manmemlst_lock_acquire () ; #line 130 "gcats1_collecting.dats" /* tmp32 = ats_selsin_mac(tmp31, atslab_1) */ ; #line 131 "gcats1_collecting.dats" /* tmp33 = */ the_threadinfolst_lock_acquire () ; #line 131 "gcats1_collecting.dats" /* tmp34 = ats_selsin_mac(tmp33, atslab_1) */ ; #line 133 "gcats1_collecting.dats" /* tmp35 = */ the_sweeplst_lock_acquire_rest (arg0) ; #line 132 "gcats1_collecting.dats" /* tmp36 = ats_selsin_mac(tmp35, atslab_1) */ ; #line 135 "gcats1_collecting.dats" /* tmp37 = */ gc_collect () ; #line 139 "gcats1_collecting.dats" /* tmp38 = */ the_sweeplst_lock_release_rest (arg0) ; #line 138 "gcats1_collecting.dats" /* tmp39 = ats_selsin_mac(tmp38, atslab_1) */ ; #line 142 "gcats1_collecting.dats" /* tmp40 = */ the_threadinfolst_lock_release () ; #line 143 "gcats1_collecting.dats" /* tmp41 = */ the_manmemlst_lock_release () ; #line 144 "gcats1_collecting.dats" /* tmp42 = */ the_globalentrylst_lock_release () ; #line 145 "gcats1_collecting.dats" tmp43 = the_sweeplst_array_get (arg0) ; #line 152 "gcats1_collecting.dats" tmp44 = chunklst_is_cons (tmp43) ; #line 152 "gcats1_collecting.dats" if (tmp44) { #line 153 "gcats1_collecting.dats" /* tmp45 = */ gc_main_lock_release () ; #line 153 "gcats1_collecting.dats" tmp17 = tmp43 ; } else { #line 155 "gcats1_collecting.dats" tmp46 = atspre_asl_int_int1 (1, arg0) ; #line 155 "gcats1_collecting.dats" tmp17 = chunklst_create_release (arg0, tmp46) ; } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ #line 166 "gcats1_collecting.dats" tmp47 = chunklst_sweep_next_get (tmp17) ; #line 167 "gcats1_collecting.dats" /* tmp48 = */ the_sweeplst_array_set (arg0, tmp47) ; #line 168 "gcats1_collecting.dats" /* tmp49 = */ the_sweeplst_lock_release_one (arg0) ; #line 169 "gcats1_collecting.dats" tmp50 = gc_chunk_threading (tmp17) ; #line 176 "gcats1_collecting.dats" tmp51 = freeitmlst_is_nil (tmp50) ; #line 176 "gcats1_collecting.dats" if (tmp51) { #line 177 "gcats1_collecting.dats" /* tmp52 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error")) ; #line 178 "gcats1_collecting.dats" /* tmp53 = */ atspre_prerr_string (ATSstrcst(": [gc_freeitmlst_generate]: the generated freeitmlst is nil")) ; #line 179 "gcats1_collecting.dats" /* tmp54 = */ atspre_prerr_newline () ; #line 180 "gcats1_collecting.dats" /* tmp13 = */ ats_exit (1) ; } else { #line 182 "gcats1_collecting.dats" tmp13 = tmp50 ; } /* end of [if] */ return (tmp13) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_collecting_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__sweeplst_lock_all_takeout_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 188 "gcats1_collecting.dats" // [chks] must not be NULL! ats_void_type gc_sweeplst_build_chunk (ats_ptr_type chks) { int i, j ; freeitmlst *pi, *pij ; int itemwsz_log, itemtot, markcnt ; int freecnt ; markcnt = chunklst_markcnt_get (chks) ; /* fprintf (stderr, "gc_sweeplst_build_chunk: markcnt = %i\n", markcnt) ; */ #ifdef _ATS_MULTITHREAD // this logic is problematic! freecnt = chunklst_freecnt_get (chks) ; if (freecnt > 0) { fprintf (stderr, "gc_sweeplst_build_chunk: freecnt = %i\n", freecnt) ; return ; } #endif if (markcnt == 0) { chunklst_destroy (chks) ; return ; } itemtot = chunklst_itemtot_get (chks) ; if (markcnt > itemtot * CHUNK_SWEEP_CUTOFF) return ; itemwsz_log = chunklst_itemwsz_log_get (chks) ; /* if (itemwsz_log < 0) { // chks->itemtot = 1 and markcnt = 1 fprintf (stderr, "GC: Fatal Error: [gc_sweeplst_build_chunk]") ; fprintf (stderr, ": itemwsz_log = %i\n", itemwsz_log) ; exit (1) ; } */ /* fprintf (stderr, "gc_sweeplst_build_chunk: itemwsz_log = %i\n", itemwsz_log) ; */ the_sweeplst_array_insert_at (chks, itemwsz_log) ; return ; } /* end of [gc_sweeplst_build_chunk] */ /* ****** ****** */ #if (__WORDSIZE == 32) ats_void_type gc_sweeplst_build_the_topsegtbl () { int i ; botsegtbllst tbls ; the_sweeplst_array_clear_all () ; for (i = 0; i < TOPSEG_TABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; if (tbls) gc_sweeplst_build_botsegtbl (tbls) ; } // end of [for] return ; } /* end of [gc_sweeplst_build_the_topsegtbl] */ #endif // end of [__WORDSIZE == 32] #if (__WORDSIZE == 64) ats_void_type gc_sweeplst_build_the_topsegtbl () { int i ; botsegtbllst tbls ; the_sweeplst_array_clear_all () ; for (i = 0; i < TOPSEG_HASHTABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; while (tbls) { // termination: obvious gc_sweeplst_build_botsegtbl (tbls) ; tbls = tbls->hash_next ; } // end of [while] } // end of [for] return ; } /* end of [gc_sweeplst_build_the_topsegtbl] */ #endif // end of [__WORDSIZE == 64] #line 266 "gcats1_collecting.dats" #define NCHUNK_PER_MARKSTACKPAGE 32 #define MARKSTACK_EXTEND_INCREMENT 2 extern int the_chunk_count ; extern int the_chunk_count_limit ; extern int the_chunk_count_limit_max ; extern int the_markstackpagecnt ; #ifdef _ATS_MULTITHREAD extern sem_t the_sleep_semaphore ; extern threadinfolst the_threadinfolst_fst ; extern __thread threadinfolst the_threadinfolst_self ; #endif ats_void_type gc_collect () { int overflow, nchunk, nmarkstackpage ; jmp_buf reg_save ; // register contents are roots #ifdef _ATS_MULTITHREAD threadinfolst infolst ; int nother ; #endif /* fprintf( stderr , "GC begs: the_chunk_count = %i and the_chunk_count_limit = %i\n" , the_chunk_count , the_chunk_count_limit ) ; */ setjmp (reg_save) ; // push registers onto the stack asm volatile ("": : :"memory") ; // stop potential optimization nmarkstackpage = (the_chunk_count << CHUNK_WORDSIZE_LOG) ; nmarkstackpage /= (MARKSTACK_PAGESIZE * NCHUNK_PER_MARKSTACKPAGE) ; nmarkstackpage += 1 ; nmarkstackpage -= the_markstackpagecnt ; /* fprintf (stderr, "gc_collect: nmarkstackpage = %i\n", nmarkstackpage) ; */ the_markstack_extend (nmarkstackpage) ; #ifdef _ATS_MULTITHREAD // put all of the other threads into sleep infolst = the_threadinfolst_fst ; nother = 0 ; while (infolst) { if (infolst != the_threadinfolst_self) { fprintf (stderr, "gc_collect: SIGUSR1: infolst->pid = %i\n", (int)(infolst->pid)) ; pthread_kill (infolst->pid, SIGUSR1) ; nother += 1 ; } infolst = infolst->next ; } while (nother) { // ordering is irrelevant fprintf (stderr, "gc_collect: sem_wait: bef: nother = %i\n", nother) ; sem_wait (&the_sleep_semaphore) ; nother -= 1 ; fprintf (stderr, "gc_collect: sem_wait: aft: nother = %i\n", nother) ; } fprintf (stderr, "gc_collect: nother = %i\n", nother) ; #endif // end of [_ATS_MULTITHREAD] gc_markbits_clear_the_topsegtbl () ; // clear all mark bits /* fprintf ( stderr, "gc_collect: gc_markbits_clear_topsegtbl: done\n", nmarkstackpage ) ; // end of [fprintf] */ overflow = gc_mark_all () ; // marking phase /* fprintf (stderr, "gc_collect: gc_mark_all: done\n") ; */ #ifdef _ATS_MULTITHREAD // wake up all of the sleeping threads infolst = the_threadinfolst_fst ; while (infolst) { if (infolst != the_threadinfolst_self) { fprintf (stderr, "gc_collect: SIGUSR2: infolst->pid = %i\n", (int)(infolst->pid)) ; pthread_kill (infolst->pid, SIGUSR2) ; } infolst = infolst->next ; } #endif // end of [_ATS_MULTITHREAD] the_freeitmlst_array_mark_unset () ; /* is this really needed? */ // [gc_mark_threadinfolst_one] is not called on [the_threadinfolst_self] // Therefore [the_freeitmlst_array_clear_all] must be called! the_freeitmlst_array_clear_all () ; /* clear the freeitmlst array */ gc_sweeplst_build_the_topsegtbl () ; // sweep chunks into [the_sweeplst_array] if (overflow > 0) { /* fprintf (stderr, "gc_collect: markstack overflow happend.\n") ; */ the_markstack_extend (MARKSTACK_EXTEND_INCREMENT) ; } /* fprintf( stderr , "GC ends: the_chunk_count = %i and the_chunk_count_limit = %i\n" , the_chunk_count , the_chunk_count_limit ) ; */ if (the_chunk_count_limit_max >= 0) { // [the_chunk_count_limit_max] is finite if (the_chunk_count_limit >= the_chunk_count_limit_max) { // fprintf(stderr, "GC: the_chunk_count_limit = %i\n", the_chunk_count_limit) ; // fprintf(stderr, "GC: the_chunk_count_limit_max = %i\n", the_chunk_count_limit_max) ; fprintf(stderr, "GC: Warning: the maximal chunk count limit is reached!\n") ; return ; } } /* end of [if] */ if (the_chunk_count >= the_chunk_count_limit * CHUNK_LIMIT_EXTEND_CUTOFF) the_chunk_count_limit *= 2 ; /* fprintf( stderr , "GC ends: update: the_chunk_count_limit = %i\n", the_chunk_count_limit ) ; */ return ; } /* end of [gc_collect] */ #line 395 "gcats1_collecting.dats" ats_ptr_type gc_chunk_threading (ats_ptr_type chks) { int i, j ; int itemwsz, itemtot ; freeitmlst data0, data, data_next ; int markcnt ; byte *markbits ; itemwsz = ((chunklst)chks)->itemwsz ; itemtot = ((chunklst)chks)->itemtot ; markcnt = ((chunklst)chks)->markcnt ; data0 = ((chunklst)chks)->data ; if (markcnt == 0) { // fast threading // threading all the freeitms in the created chunk data = data0 ; data_next = data0 ; for (i = 1; i < itemtot; i += 1) { data_next = (freeitmlst*)data_next + itemwsz ; *(freeitmlst*)data = data_next ; data = data_next ; } // end of [for] *(freeitmlst*)data = (freeitmlst)0 ; goto GC_CHUNK_THREADING_IS_DONE ; } // end of [if] markbits = ((chunklst)chks)-> markbits ; for (i = 0; i < itemtot; i += 1) { if (!MARK_GET (markbits, i)) break ; } if (i == itemtot) { data0 = (freeitmlst)0 ; goto GC_CHUNK_THREADING_IS_DONE ; } data0 = (freeitmlst*)data0 + i * itemwsz; data = data0 ; data_next = data0 ; for (j = i + 1; j < itemtot; j += 1) { data_next = (freeitmlst*)data_next + itemwsz ; if (!MARK_GET (markbits, j)) { *(freeitmlst*)data = data_next ; data = data_next ; } // end of [if] } // end of [for] *(freeitmlst*)data = (freeitmlst)0 ; /* if (itemtot - markcnt != freeitmlst_length (data0)) { fprintf (stderr, "GC: Fatal Error") ; fprintf (stderr, ": [gc_chunk_threading]: consistency check failed.\n") ; fprintf (stderr, "itemtot = %i\n", itemtot) ; fprintf (stderr, "markcnt = %i\n", markcnt) ; fprintf (stderr, "freeitmlst_length(data0) = %i\n", freeitmlst_length(data0)) ; exit (1) ; } */ GC_CHUNK_THREADING_IS_DONE: return data0 ; } /* end of [gc_chunk_threading] */ /* ****** ****** */ /* end of [gcats1_collecting_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/gcats1_manops_dats.c0000644000175000017500000002265513431250607026275 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-9-3: 2h:41m ** */ /* 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 */ /* external codes at top */ #line 39 "gcats1_manops.dats" #include // for [offsetof] extern void *malloc (size_t bsz) ; // see [stdlib.h] extern void *calloc (size_t n, size_t tsz) ; // see [stdlib.h] extern void free (void*) ; // see [stdlib.h] extern void *realloc (void *ptr, size_t bsz) ; // see [stdlib.h] #line 71 "gcats1_manops.dats" static inline ats_void_type gc_mark_the_manmemlst_aux (ats_ptr_type p0, ats_int_type sz) { int i ; freeitmlst *p_i ; p_i = (freeitmlst*)p0 ; for (i = 0; i < sz; i += 1, p_i += 1) gc_mark_ptr (*p_i) ; return ; } /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, the_manmemlst_get) () ; ATSextern_fun(ats_bool_type, manmemlst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_int_type, manmemlst_itemwsz_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, manmemlst_next_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, manmemlst_data_get) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_mark_the_manmemlst_aux) (ats_ptr_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type gcats1_manops_aux_1 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_manops_auxlst_3 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_manops.dats: 1994(line=62, offs=7) -- 2124(line=63, offs=75) */ ATSstaticdec() ats_int_type gcats1_manops_aux_1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; __ats_lab_gcats1_manops_aux_1: #line 63 "gcats1_manops.dats" tmp2 = manmemlst_is_cons (arg0) ; #line 63 "gcats1_manops.dats" if (tmp2) { #line 63 "gcats1_manops.dats" tmp3 = manmemlst_next_get (arg0) ; #line 63 "gcats1_manops.dats" tmp4 = atspre_iadd (arg1, 1) ; #line 63 "gcats1_manops.dats" arg0 = tmp3 ; #line 63 "gcats1_manops.dats" arg1 = tmp4 ; #line 63 "gcats1_manops.dats" goto __ats_lab_gcats1_manops_aux_1 ; // tail call } else { #line 63 "gcats1_manops.dats" tmp1 = arg1 ; } /* end of [if] */ return (tmp1) ; } /* end of [gcats1_manops_aux_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_manops.dats: 1976(line=61, offs=28) -- 2164(line=67, offs=4) */ ATSglobaldec() ats_int_type manmemlst_length (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_manmemlst_length: #line 66 "gcats1_manops.dats" tmp0 = gcats1_manops_aux_1 (arg0, 0) ; return (tmp0) ; } /* end of [manmemlst_length] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_manops.dats: 2496(line=87, offs=7) -- 2838(line=97, offs=8) */ ATSstaticdec() ats_void_type gcats1_manops_auxlst_3 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_bool_type, tmp7) ; // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_gcats1_manops_auxlst_3: #line 88 "gcats1_manops.dats" tmp7 = manmemlst_is_cons (arg0) ; #line 88 "gcats1_manops.dats" if (tmp7) { #line 90 "gcats1_manops.dats" tmp9 = manmemlst_data_get (arg0) ; #line 90 "gcats1_manops.dats" tmp10 = manmemlst_itemwsz_get (arg0) ; #line 89 "gcats1_manops.dats" /* tmp8 = */ gc_mark_the_manmemlst_aux (tmp9, tmp10) ; #line 96 "gcats1_manops.dats" tmp11 = manmemlst_next_get (arg0) ; #line 96 "gcats1_manops.dats" arg0 = tmp11 ; #line 96 "gcats1_manops.dats" goto __ats_lab_gcats1_manops_auxlst_3 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp6) */ ; } /* end of [gcats1_manops_auxlst_3] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_manops.dats: 2481(line=86, offs=33) -- 2896(line=100, offs=4) */ ATSglobaldec() ats_void_type gc_mark_the_manmemlst () { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab_gc_mark_the_manmemlst: #line 99 "gcats1_manops.dats" tmp12 = the_manmemlst_get () ; #line 99 "gcats1_manops.dats" /* tmp5 = */ gcats1_manops_auxlst_3 (tmp12) ; return /* (tmp5) */ ; } /* end of [gc_mark_the_manmemlst] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_manops_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 104 "gcats1_manops.dats" extern manmemlst the_manmemlst ; #ifdef _ATS_MULTITHREAD extern pthread_mutex_t the_manmemlst_lock ; #endif ats_ptr_type gc_man_malloc_bsz (ats_int_type bsz) { manmemlst mms ; mms = (manmemlst)malloc(sizeof(manmem) + bsz) ; if (!mms) { fprintf (stderr, "[gc_man_malloc_bsz]: [malloc] failed.\n") ; exit (1) ; } // end of [if] mms->itemwsz = bsz >> NBYTE_PER_WORD_LOG ; mms->prev = (manmemlst)0 ; #ifdef _ATS_MULTITHREAD pthread_mutex_lock (&the_manmemlst_lock) ; #endif if (the_manmemlst) { the_manmemlst->prev = mms ; } mms->next = the_manmemlst ; the_manmemlst = mms ; #ifdef _ATS_MULTITHREAD pthread_mutex_unlock (&the_manmemlst_lock) ; #endif return (mms->data) ; } /* end of [gc_man_malloc_bsz] */ // ats_ptr_type gc_man_calloc_bsz (ats_int_type n, ats_int_type bsz) { int nbsz = n * bsz ; ats_ptr_type _data = gc_man_malloc_bsz (nbsz) ; memset (_data, 0, nbsz) ; return (_data) ; } /* end of [gc_man_calloc_bsz] */ // ats_void_type gc_man_free (ats_ptr_type ptr) { manmemlst mms, mms_prev, mms_next ; mms = (manmemlst)((byte*)ptr - offsetof(manmem, data)) ; mms_prev = mms->prev ; mms_next = mms->next ; #ifdef _ATS_MULTITHREAD pthread_mutex_lock (&the_manmemlst_lock) ; #endif if (mms_next) { mms_next->prev = mms_prev ; } /* end of [if] */ if (mms_prev) { mms_prev->next = mms_next ; } else { the_manmemlst = mms_next ; } /* end of [if] */ #ifdef _ATS_MULTITHREAD pthread_mutex_unlock (&the_manmemlst_lock) ; #endif free (mms) ; return ; } /* end of [gc_man_free] */ // ats_ptr_type gc_man_realloc_bsz (ats_ptr_type ptr, ats_int_type bsz) { // manmemlst mms, mms_prev, mms_next ; // if (!ptr) return gc_man_malloc_bsz (bsz) ; // mms = (manmemlst)((byte*)ptr - offsetof(manmem, data)) ; mms_prev = mms->prev ; mms_next = mms->next ; mms = (manmemlst)realloc(mms, sizeof(manmem) + bsz) ; // if (!mms) { fprintf (stderr, "[gc_man_realloc_bsz]: [realloc] failed.\n") ; exit (1) ; } // end of [if] // mms->itemwsz = bsz >> NBYTE_PER_WORD_LOG ; // #ifdef _ATS_MULTITHREAD pthread_mutex_lock (&the_manmemlst_lock) ; #endif // if (mms_next) { mms_next->prev = mms ; } /* end of [if] */ // if (mms_prev) { mms_prev->next = mms ; } else { the_manmemlst = mms ; } /* end of [if] */ // #ifdef _ATS_MULTITHREAD pthread_mutex_unlock (&the_manmemlst_lock) ; #endif // return (mms->data) ; // } /* end of [gc_man_realloc_bsz] */ /* ****** ****** */ /* end of [gcats1_manops_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/.keeper0000644000175000017500000000000013431250607023607 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/gcats1_chunk_dats.c0000644000175000017500000005570313431250607026110 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-9-3: 2h:41m ** */ /* 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 */ /* external codes at top */ #line 39 "gcats1_chunk.dats" #include "config.h" // automatically generated by [configure] // [posix_memalign] is in [stdlib.h] extern int posix_memalign(void **memptr, size_t alignment, size_t size); // [memalign] is in [stdlib.h] or [malloc.h] extern void *memalign(size_t boundary, size_t size); static inline int gcats_memalign ( void **memptr , size_t alignment , size_t size ) { int err ; #if HAVE_POSIX_MEMALIGN // for [posix_memalign] // fprintf (stderr, "posix_memalign: bef\n") ; err = posix_memalign (memptr, alignment, size) ; // fprintf (stderr, "posix_memalign: aft\n") ; #elif HAVE_MEMALIGN // if [memalign] is avaiable void *ptr ; ptr = memalign(alignment, size) ; *memptr = ptr ; err = (ptr ? 0 : -1) ; #else // neither [posix_memalign] nor [memalign] is available void *ptr ; ptr = malloc (size + alignment - 1) ; *memptr = ptr ; err = (ptr ? 0 : -1) ; #endif /* fprintf (stderr, "gcats_memalign: size = %i\n", size); fprintf (stderr, "gcats_memalign: *memptr = %p(%i)\n", *memptr, *memptr); */ return err ; } /* end of [gcats_memalign] */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_asl_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_asr_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst2ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_main_lock_release) () ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_int_type, chunklst_itemwsz_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_data_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_data_nonalign_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_sweep_next_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_create) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, the_chunk_count_dec_by) (ats_int_type) ; ATSextern_fun(ats_uintptr1_type, PTR_TOPSEG_GET) (ats_ptr_type) ; ATSextern_fun(ats_int_type, PTR_BOTSEG_GET) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, botsegtbllst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, botsegtbllst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, botsegtbl_make_32) () ; ATSextern_fun(ats_ptr_type, botsegtbllst_get) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, botsegtbllst_set) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, botsegtbllst_clear) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get) (ats_uintptr1_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some) (ats_uintptr1_type) ; ATSextern_fun(ats_ptr_type, the_topsegtbl_get_32) (ats_uintptr1_type) ; ATSextern_fun(ats_void_type, the_topsegtbl_set_32) (ats_uintptr1_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, chunklst_insert_into_table) (ats_ptr_type) ; ATSextern_fun(ats_void_type, chunklst_remove_from_table) (ats_ptr_type) ; ATSextern_fun(ats_void_type, freeitmlst_chunk_data_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, freeitmlst_chunk_data_recycle) (ats_ptr_type) ; ATSextern_fun(ats_void_type, chunk_header_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_markbits_clear_chunk) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_markbits_clear_botsegtbl) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type gcats1_chunk_aux_1 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_chunk_loop_9 (ats_ptr_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 2777(line=93, offs=5) -- 2974(line=102, offs=4) */ ATSstaticdec() ats_int_type gcats1_chunk_aux_1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; __ats_lab_gcats1_chunk_aux_1: #line 97 "gcats1_chunk.dats" tmp2 = chunklst_is_cons (arg0) ; #line 99 "gcats1_chunk.dats" if (tmp2) { #line 100 "gcats1_chunk.dats" tmp3 = chunklst_sweep_next_get (arg0) ; #line 100 "gcats1_chunk.dats" tmp4 = atspre_iadd (arg1, 1) ; #line 100 "gcats1_chunk.dats" arg0 = tmp3 ; #line 100 "gcats1_chunk.dats" arg1 = tmp4 ; #line 100 "gcats1_chunk.dats" goto __ats_lab_gcats1_chunk_aux_1 ; // tail call } else { #line 100 "gcats1_chunk.dats" tmp1 = arg1 ; } /* end of [if] */ return (tmp1) ; } /* end of [gcats1_chunk_aux_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 2757(line=91, offs=23) -- 3016(line=106, offs=4) */ ATSglobaldec() ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__chunklst_sweep_length (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__chunklst_sweep_length: #line 105 "gcats1_chunk.dats" tmp0 = gcats1_chunk_aux_1 (arg0, 0) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__chunklst_sweep_length] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 3391(line=120, offs=29) -- 3435(line=120, offs=73) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get (ats_uintptr1_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get: #line 120 "gcats1_chunk.dats" tmp5 = the_topsegtbl_get_32 (arg0) ; return (tmp5) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 3470(line=122, offs=34) -- 3769(line=133, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some (ats_uintptr1_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some: #line 123 "gcats1_chunk.dats" tmp7 = the_topsegtbl_get_32 (arg0) ; #line 125 "gcats1_chunk.dats" tmp8 = botsegtbllst_is_nil (tmp7) ; #line 125 "gcats1_chunk.dats" if (tmp8) { #line 126 "gcats1_chunk.dats" tmp9 = botsegtbl_make_32 () ; #line 127 "gcats1_chunk.dats" /* tmp10 = */ the_topsegtbl_set_32 (arg0, tmp9) ; #line 129 "gcats1_chunk.dats" tmp6 = tmp9 ; } else { #line 131 "gcats1_chunk.dats" tmp6 = tmp7 ; } /* end of [if] */ return (tmp6) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 5340(line=185, offs=38) -- 5624(line=193, offs=4) */ ATSglobaldec() ats_void_type chunklst_insert_into_table (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_uintptr1_type, tmp14) ; ATSlocal (ats_uintptr1_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; __ats_lab_chunklst_insert_into_table: #line 186 "gcats1_chunk.dats" tmp12 = chunklst_data_get (arg0) ; #line 187 "gcats1_chunk.dats" tmp13 = freeitmlst2ptr (tmp12) ; #line 188 "gcats1_chunk.dats" tmp14 = PTR_TOPSEG_GET (tmp13) ; #line 188 "gcats1_chunk.dats" tmp15 = ats_selsin_mac(tmp14, atslab_1) ; #line 189 "gcats1_chunk.dats" tmp16 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get_some (tmp15) ; #line 190 "gcats1_chunk.dats" tmp17 = PTR_BOTSEG_GET (tmp13) ; #line 192 "gcats1_chunk.dats" /* tmp11 = */ botsegtbllst_set (tmp16, tmp17, arg0) ; return /* (tmp11) */ ; } /* end of [chunklst_insert_into_table] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 5702(line=195, offs=38) -- 6226(line=211, offs=4) */ ATSglobaldec() ats_void_type chunklst_remove_from_table (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_uintptr1_type, tmp21) ; ATSlocal (ats_uintptr1_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; __ats_lab_chunklst_remove_from_table: #line 196 "gcats1_chunk.dats" tmp19 = chunklst_data_get (arg0) ; #line 197 "gcats1_chunk.dats" tmp20 = freeitmlst2ptr (tmp19) ; #line 198 "gcats1_chunk.dats" tmp21 = PTR_TOPSEG_GET (tmp20) ; #line 198 "gcats1_chunk.dats" tmp22 = ats_selsin_mac(tmp21, atslab_1) ; #line 199 "gcats1_chunk.dats" tmp23 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get (tmp22) ; #line 201 "gcats1_chunk.dats" tmp24 = botsegtbllst_is_cons (tmp23) ; #line 201 "gcats1_chunk.dats" if (tmp24) { #line 202 "gcats1_chunk.dats" tmp25 = PTR_BOTSEG_GET (tmp20) ; #line 204 "gcats1_chunk.dats" /* tmp18 = */ botsegtbllst_clear (tmp23, tmp25) ; } else { #line 206 "gcats1_chunk.dats" /* tmp26 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error: [chunklst_remove_from_table]")) ; #line 207 "gcats1_chunk.dats" /* tmp27 = */ atspre_prerr_string (ATSstrcst(": the chunk to be removed is not in the table!")) ; #line 208 "gcats1_chunk.dats" /* tmp28 = */ atspre_prerr_newline () ; #line 209 "gcats1_chunk.dats" /* tmp18 = */ ats_exit (1) ; } /* end of [if] */ return /* (tmp18) */ ; } /* end of [chunklst_remove_from_table] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 6324(line=216, offs=3) -- 6506(line=221, offs=4) */ ATSglobaldec() ats_ptr_type chunklst_create_release (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; __ats_lab_chunklst_create_release: #line 217 "gcats1_chunk.dats" tmp30 = chunklst_create (arg0, arg1) ; #line 218 "gcats1_chunk.dats" /* tmp31 = */ gc_main_lock_release () ; #line 220 "gcats1_chunk.dats" tmp29 = tmp30 ; return (tmp29) ; } /* end of [chunklst_create_release] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 6836(line=233, offs=28) -- 7805(line=262, offs=4) */ ATSglobaldec() ats_void_type chunklst_destroy (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_int_type, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_int_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_int_type, tmp40) ; // ATSlocal_void (tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; __ats_lab_chunklst_destroy: #line 240 "gcats1_chunk.dats" /* tmp33 = */ chunklst_remove_from_table (arg0) ; #line 241 "gcats1_chunk.dats" tmp34 = chunklst_data_nonalign_get (arg0) ; #line 242 "gcats1_chunk.dats" tmp35 = chunklst_itemwsz_get (arg0) ; #line 243 "gcats1_chunk.dats" /* tmp36 = */ chunk_header_free (arg0) ; #line 246 "gcats1_chunk.dats" tmp40 = atspre_asl_int_int1 (1, 11) ; #line 246 "gcats1_chunk.dats" tmp39 = atspre_sub_int_int (tmp40, 1) ; #line 246 "gcats1_chunk.dats" tmp38 = atspre_add_int_int (tmp35, tmp39) ; #line 246 "gcats1_chunk.dats" tmp37 = atspre_asr_int_int1 (tmp38, 11) ; #line 247 "gcats1_chunk.dats" /* tmp41 = */ the_chunk_count_dec_by (tmp37) ; #line 249 "gcats1_chunk.dats" do { /* branch: __ats_lab_0 */ #line 250 "gcats1_chunk.dats" __ats_lab_0_0: #line 250 "gcats1_chunk.dats" __ats_lab_0_1: #line 250 "gcats1_chunk.dats" tmp43 = atspre_asl_int_int1 (1, 11) ; #line 250 "gcats1_chunk.dats" tmp42 = atspre_gt_int_int (tmp35, tmp43) ; #line 250 "gcats1_chunk.dats" if (!tmp42) { goto __ats_lab_1_1 ; } #line 257 "gcats1_chunk.dats" /* tmp32 = */ freeitmlst_chunk_data_free (tmp34) ; break ; /* branch: __ats_lab_1 */ #line 259 "gcats1_chunk.dats" __ats_lab_1_0: #line 259 "gcats1_chunk.dats" __ats_lab_1_1: #line 260 "gcats1_chunk.dats" /* tmp32 = */ freeitmlst_chunk_data_recycle (tmp34) ; break ; } while (0) ; return /* (tmp32) */ ; } /* end of [chunklst_destroy] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 8137(line=274, offs=7) -- 8426(line=282, offs=8) */ ATSstaticdec() ats_void_type gcats1_chunk_loop_9 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_bool_type, tmp49) ; ATSlocal (ats_int_type, tmp50) ; __ats_lab_gcats1_chunk_loop_9: #line 276 "gcats1_chunk.dats" tmp46 = atspre_ilt (arg1, 1024) ; #line 276 "gcats1_chunk.dats" if (tmp46) { #line 277 "gcats1_chunk.dats" tmp47 = botsegtbllst_get (arg0, arg1) ; #line 278 "gcats1_chunk.dats" tmp49 = chunklst_is_cons (tmp47) ; #line 278 "gcats1_chunk.dats" if (tmp49) { #line 278 "gcats1_chunk.dats" /* tmp48 = */ gc_markbits_clear_chunk (tmp47) ; } else { /* empty */ } /* end of [if] */ #line 281 "gcats1_chunk.dats" tmp50 = atspre_iadd (arg1, 1) ; #line 281 "gcats1_chunk.dats" arg0 = arg0 ; #line 281 "gcats1_chunk.dats" arg1 = tmp50 ; #line 281 "gcats1_chunk.dats" goto __ats_lab_gcats1_chunk_loop_9 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp45) */ ; } /* end of [gcats1_chunk_loop_9] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_chunk.dats: 8088(line=272, offs=39) -- 8465(line=285, offs=4) */ ATSglobaldec() ats_void_type gc_markbits_clear_botsegtbl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp44) ; __ats_lab_gc_markbits_clear_botsegtbl: #line 284 "gcats1_chunk.dats" /* tmp44 = */ gcats1_chunk_loop_9 (arg0, 0) ; return /* (tmp44) */ ; } /* end of [gc_markbits_clear_botsegtbl] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_chunk_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #line 289 "gcats1_chunk.dats" #if (__WORDSIZE == 32) ats_ptr_type botsegtbl_make_32 () { botsegtbllst tbls ; /* fprintf ( stderr, "botsegtbl_make_32: sizeof(botsegtbl) = %i\n", sizeof(botsegtbl) ) ; // end of [fprintf] */ tbls = (botsegtbllst)malloc(sizeof(botsegtbl)) ; if (!tbls) { fprintf (stderr, "Exit: [botsegtbl_make_32: malloc] failed\n") ; exit (1) ; } // end of [if] memset(tbls, 0, sizeof(botsegtbl)) ; /* fprintf (stderr, "botsegtbl_make_32: return: tbls = %p\n", tbls) ; */ return tbls ; } /* end of [botsegtbl_make_32] */ #endif // end of [__WORDSIZE == 32] /* ****** ****** */ #if (__WORDSIZE == 64) ats_ptr_type botsegtbl_make_64 (ats_uintptr1_type ofs, ats_ptr_type tbls0) { botsegtbllst tbls ; /* fprintf ( stderr, "botsegtbl_make_64: sizeof(botsegtbl) = %i\n", sizeof(botsegtbl) ) ; // end of [fprintf] */ tbls = (botsegtbllst)malloc(sizeof(botsegtbl)) ; if (!tbls) { fprintf (stderr, "Exit: [botsegtbl_make_64: malloc] failed\n") ; exit (1) ; } // end of [if] memset(tbls, 0, sizeof(botsegtbl)) ; tbls->key = ofs ; tbls->hash_next = (botsegtbllst)tbls0 ; /* fprintf (stderr, "botsegtbl_make_64: tbls = %p\n", tbls) ; */ return tbls ; } /* end of [botsegtbl_make_64] */ #endif // end of [__WORDSIZE == 64] #line 348 "gcats1_chunk.dats" ats_ptr_type gc_ptr_is_valid (ats_ptr_type ptr, ats_ref_type ofs_r) { uintptr_t ofs_topseg ; int ofs_botseg, ofs_chkseg, itemwsz ; botsegtbllst tbls = (botsegtbllst)0 ; chunklst chks = (chunklst)0 ; /* fprintf (stderr, "gc_ptr_is_valid: 1: ptr = %p\n", ptr) ; */ if (!ptr) return (chunklst)0 ; /* fprintf (stderr, "gc_ptr_is_valid: 2: ptr = %p\n", ptr) ; */ if ((uintptr_t)ptr & NBYTE_PER_WORD_MASK) return (chunklst)0 ; ofs_topseg = PTR_TOPSEG_GET (ptr) ; /* fprintf (stderr, "gc_ptr_is_valid: 3: ofs_topseg = %li\n", ofs_topseg) ; */ #if (__WORDSIZE == 32) tbls = the_topsegtbl_get_32 (ofs_topseg) ; #endif #if (__WORDSIZE == 64) tbls = the_topsegtbl_get_64 (ofs_topseg) ; #endif if (!tbls) return (chunklst)0 ; ofs_botseg = PTR_BOTSEG_GET (ptr) ; chks = botsegtbllst_get (tbls, ofs_botseg) ; /* fprintf (stderr, "gc_ptr_is_valid: 4: ofs_botseg = %li\n", ofs_botseg) ; */ if (!chks) return (chunklst)0 ; ofs_chkseg = PTR_CHKSEG_GET (ptr) ; itemwsz = chks->itemwsz ; /* fprintf (stderr, "gc_ptr_is_valid: 5: ofs_chkseg = %li\n", ofs_chkseg) ; fprintf (stderr, "gc_ptr_is_valid: 6: itemwsz = %i\n", itemwsz) ; */ /* ** for a large chunk (itemwsz_log = -1), ofs_chkseg == 0 */ if (ofs_chkseg % itemwsz) return (chunklst)0 ; *((int*)ofs_r) = (ofs_chkseg / itemwsz) ; return chks ; } /* end of [gc_ptr_is_valid] */ #line 410 "gcats1_chunk.dats" /* // itemwsz_log = log (itemwsz) if itemwsz_log >= 0 fun chunklst_create (itemwsz_log: int, itemwsz: int): chunklst1 */ ats_ptr_type chunklst_create (ats_int_type itemwsz_log, ats_int_type itemwsz) { int i, err ; int chunk_bsz, data_ofs ; int itemtot, nmarkbit ; freeitmlst data ; chunklst chks ; /* fprintf (stderr, "chunklst_create: itemwsz_log = %i\n", itemwsz_log) ; fprintf (stderr, "chunklst_create: itemwsz = %i\n", itemwsz) ; */ if (itemwsz_log >= 0) { itemtot = (CHUNK_WORDSIZE >> itemwsz_log) ; nmarkbit = (itemtot + NBIT_PER_BYTE_MASK) >> NBIT_PER_BYTE_LOG ; } else { itemtot = 1 ; nmarkbit = 1 ; } chks = (chunklst)malloc(sizeof(chunk) + nmarkbit) ; if (!chks) { fprintf ( stderr, "GC Fatal Error: [chunklst_create]: [malloc] failed.\n" ) ; // end of [fprintf] exit (1) ; } // end of [if] data = (freeitmlst)0 ; if (itemwsz <= MAX_CHUNK_BLOCK_WORDSIZE) { if (the_freeitmlst_chunk_data) { data = the_freeitmlst_chunk_data; the_freeitmlst_chunk_data = *(freeitmlst*)data ; } // end of [if] } // end of [if] /* fprintf (stderr, "chunklst_create: data = %p(%i)\n", data, data) ; */ if (!data) { if (itemwsz > CHUNK_WORDSIZE) chunk_bsz = itemwsz << NBYTE_PER_WORD_LOG ; else chunk_bsz = CHUNK_BYTESIZE ; /* fprintf (stderr, "gcats_memalign: size = %i\n", chunk_bsz) ; */ err = gcats_memalign (&data, CHUNK_BYTESIZE/*alignment*/, chunk_bsz/*size*/) ; /* fprintf (stderr, "gcats_memalign: err = %i\n", err) ; */ if (err) { fprintf (stderr, "GC: Fatal Error: [gcats_memalign] failed\n") ; exit (1) ; } // end of [if] } // end of [if] /* fprintf (stderr, "chunklst_create: data = %p(%i)\n", data, data) ; */ chks->itemwsz = itemwsz ; chks->itemwsz_log = itemwsz_log ; chks->itemtot = itemtot ; chks->markcnt = 0 ; // for fast threading! #ifdef _ATS_MULTITHREAD chks->freecnt = 0 ; // not in use yet #endif chks->sweep_next = (chunklst)0 ; data_ofs = (uintptr_t)data & (CHUNK_BYTESIZE - 1) ; if (data_ofs) { /* fprintf (stderr, "chunklst_create: data_ofs = %i\n", data_ofs) ; */ chks->data = (byte*)data - data_ofs + CHUNK_BYTESIZE ; } else { chks->data = data ; } chks->data_nonalign = data ; // [data] is *not* zeroed memset (chks->markbits, 0, nmarkbit) ; the_chunk_count_inc_by ((itemwsz + CHUNK_WORDSIZE_MASK) >> CHUNK_WORDSIZE_LOG) ; chunklst_insert_into_table (chks) ; /* fprintf (stderr, "chunklst_create: chks = %p(%i)\n", chks, chks) ; */ return chks ; } /* end of [chunklst_create] */ #line 509 "gcats1_chunk.dats" #if (__WORDSIZE == 32) ats_void_type gc_markbits_clear_the_topsegtbl () { int i ; botsegtbllst tbls ; for (i = 0; i < TOPSEG_TABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; if (tbls) gc_markbits_clear_botsegtbl (tbls) ; } // end of [for] return ; } /* end of [gc_markbits_clear_the_topsegtbl] */ #endif // end of [__WORDSIZE == 32] #if (__WORDSIZE == 64) ats_void_type gc_markbits_clear_the_topsegtbl () { int i ; botsegtbllst tbls ; for (i = 0; i < TOPSEG_HASHTABLESIZE; i += 1) { tbls = the_topsegtbl[i] ; while (tbls) { // terminating: obvious gc_markbits_clear_botsegtbl (tbls) ; tbls = tbls->hash_next ; } // end of [while] } // end of [for] return ; } /* end of [gc_markbits_clear_the_topsegtbl] */ #endif // end of [__WORDSIZE == 64] /* ****** ****** */ /* end of [gcats1_chunk_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/gcats1_freeitmlst_dats.c0000644000175000017500000002644613431250607027160 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-9-3: 2h:41m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst2ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, freeitmlst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, freeitmlst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst_tail_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, the_freeitmlst_array_get) (ats_int_type) ; ATSextern_fun(ats_void_type, the_freeitmlst_array_clear_one) (ats_int_type) ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_markbits_get) (ats_ptr_type) ; ATSextern_fun(ats_void_type, chunklst_markcnt_dec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, gc_ptr_is_valid) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_int_type, MARK_GET) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, MARK_CLEAR) (ats_ptr_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type gcats1_freeitmlst_loop_1 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type gcats1_freeitmlst_loop_3 (ats_int_type arg0) ; static ats_void_type gcats1_freeitmlst_freeitmlst_mark_unset_4 (ats_ptr_type arg0) ; static ats_void_type gcats1_freeitmlst_loop_6 (ats_int_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 1707(line=52, offs=7) -- 1872(line=57, offs=8) */ ATSstaticdec() ats_int_type gcats1_freeitmlst_loop_1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; __ats_lab_gcats1_freeitmlst_loop_1: #line 54 "gcats1_freeitmlst.dats" tmp2 = freeitmlst_is_nil (arg0) ; #line 54 "gcats1_freeitmlst.dats" if (tmp2) { #line 54 "gcats1_freeitmlst.dats" tmp1 = arg1 ; } else { #line 56 "gcats1_freeitmlst.dats" tmp3 = freeitmlst_tail_get (arg0) ; #line 56 "gcats1_freeitmlst.dats" tmp4 = atspre_iadd (arg1, 1) ; #line 56 "gcats1_freeitmlst.dats" arg0 = tmp3 ; #line 56 "gcats1_freeitmlst.dats" arg1 = tmp4 ; #line 56 "gcats1_freeitmlst.dats" goto __ats_lab_gcats1_freeitmlst_loop_1 ; // tail call } /* end of [if] */ return (tmp1) ; } /* end of [gcats1_freeitmlst_loop_1] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 1688(line=51, offs=29) -- 1896(line=60, offs=4) */ ATSglobaldec() ats_int_type freeitmlst_length (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_freeitmlst_length: #line 59 "gcats1_freeitmlst.dats" tmp0 = gcats1_freeitmlst_loop_1 (arg0, 0) ; return (tmp0) ; } /* end of [freeitmlst_length] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 2038(line=66, offs=7) -- 2171(line=69, offs=8) */ ATSstaticdec() ats_void_type gcats1_freeitmlst_loop_3 (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_int_type, tmp10) ; __ats_lab_gcats1_freeitmlst_loop_3: #line 67 "gcats1_freeitmlst.dats" tmp8 = atspre_iadd (11, 1) ; #line 67 "gcats1_freeitmlst.dats" tmp7 = atspre_ilt (arg0, tmp8) ; #line 67 "gcats1_freeitmlst.dats" if (tmp7) { #line 68 "gcats1_freeitmlst.dats" /* tmp9 = */ the_freeitmlst_array_clear_one (arg0) ; #line 68 "gcats1_freeitmlst.dats" tmp10 = atspre_iadd (arg0, 1) ; #line 68 "gcats1_freeitmlst.dats" arg0 = tmp10 ; #line 68 "gcats1_freeitmlst.dats" goto __ats_lab_gcats1_freeitmlst_loop_3 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp6) */ ; } /* end of [gcats1_freeitmlst_loop_3] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 1990(line=64, offs=42) -- 2189(line=72, offs=4) */ ATSglobaldec() ats_void_type the_freeitmlst_array_clear_all () { /* local vardec */ // ATSlocal_void (tmp5) ; __ats_lab_the_freeitmlst_array_clear_all: #line 71 "gcats1_freeitmlst.dats" /* tmp5 = */ gcats1_freeitmlst_loop_3 (0) ; return /* (tmp5) */ ; } /* end of [the_freeitmlst_array_clear_all] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 2259(line=76, offs=5) -- 3035(line=96, offs=4) */ ATSstaticdec() ats_void_type gcats1_freeitmlst_freeitmlst_mark_unset_4 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp11) ; ATSlocal (ats_bool_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_bool_type, tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_bool_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab_gcats1_freeitmlst_freeitmlst_mark_unset_4: #line 77 "gcats1_freeitmlst.dats" tmp12 = freeitmlst_is_cons (arg0) ; #line 77 "gcats1_freeitmlst.dats" if (tmp12) { #line 78 "gcats1_freeitmlst.dats" /* ats_int_type tmp13 ; */ #line 78 "gcats1_freeitmlst.dats" tmp13 = 0 ; #line 78 "gcats1_freeitmlst.dats" tmp14 = freeitmlst2ptr (arg0) ; #line 79 "gcats1_freeitmlst.dats" tmp15 = gc_ptr_is_valid (tmp14, (&tmp13)) ; #line 80 "gcats1_freeitmlst.dats" tmp17 = chunklst_is_cons (tmp15) ; #line 80 "gcats1_freeitmlst.dats" if (tmp17) { #line 80 "gcats1_freeitmlst.dats" tmp16 = tmp15 ; } else { #line 81 "gcats1_freeitmlst.dats" /* tmp18 = */ atspre_prerr_string (ATSstrcst("freeitmlst_mark_unset: illegal pointer: ptr = ")) ; #line 82 "gcats1_freeitmlst.dats" /* tmp19 = */ atspre_prerr_ptr (tmp14) ; #line 83 "gcats1_freeitmlst.dats" /* tmp20 = */ atspre_prerr_newline () ; #line 84 "gcats1_freeitmlst.dats" /* tmp16 = */ ats_exit (1) ; } /* end of [if] */ #line 87 "gcats1_freeitmlst.dats" tmp21 = chunklst_markbits_get (tmp16) ; #line 89 "gcats1_freeitmlst.dats" tmp24 = MARK_GET (tmp21, tmp13) ; #line 89 "gcats1_freeitmlst.dats" tmp23 = atspre_gt_int_int (tmp24, 0) ; #line 89 "gcats1_freeitmlst.dats" if (tmp23) { #line 91 "gcats1_freeitmlst.dats" /* tmp25 = */ MARK_CLEAR (tmp21, tmp13) ; #line 91 "gcats1_freeitmlst.dats" /* tmp22 = */ chunklst_markcnt_dec (tmp16) ; } else { /* empty */ } /* end of [if] */ #line 94 "gcats1_freeitmlst.dats" tmp26 = freeitmlst_tail_get (arg0) ; #line 94 "gcats1_freeitmlst.dats" arg0 = tmp26 ; #line 94 "gcats1_freeitmlst.dats" goto __ats_lab_gcats1_freeitmlst_freeitmlst_mark_unset_4 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp11) */ ; } /* end of [gcats1_freeitmlst_freeitmlst_mark_unset_4] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 3165(line=102, offs=7) -- 3314(line=105, offs=8) */ ATSstaticdec() ats_void_type gcats1_freeitmlst_loop_6 (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_int_type, tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_int_type, tmp33) ; __ats_lab_gcats1_freeitmlst_loop_6: #line 103 "gcats1_freeitmlst.dats" tmp30 = atspre_iadd (11, 1) ; #line 103 "gcats1_freeitmlst.dats" tmp29 = atspre_ilt (arg0, tmp30) ; #line 103 "gcats1_freeitmlst.dats" if (tmp29) { #line 104 "gcats1_freeitmlst.dats" tmp32 = the_freeitmlst_array_get (arg0) ; #line 104 "gcats1_freeitmlst.dats" /* tmp31 = */ gcats1_freeitmlst_freeitmlst_mark_unset_4 (tmp32) ; #line 104 "gcats1_freeitmlst.dats" tmp33 = atspre_iadd (arg0, 1) ; #line 104 "gcats1_freeitmlst.dats" arg0 = tmp33 ; #line 104 "gcats1_freeitmlst.dats" goto __ats_lab_gcats1_freeitmlst_loop_6 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp28) */ ; } /* end of [gcats1_freeitmlst_loop_6] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_freeitmlst.dats: 3117(line=100, offs=43) -- 3347(line=108, offs=4) */ ATSglobaldec() ats_void_type the_freeitmlst_array_mark_unset () { /* local vardec */ // ATSlocal_void (tmp27) ; __ats_lab_the_freeitmlst_array_mark_unset: #line 107 "gcats1_freeitmlst.dats" /* tmp27 = */ gcats1_freeitmlst_loop_6 (0) ; return /* (tmp27) */ ; } /* end of [the_freeitmlst_array_mark_unset] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_freeitmlst_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [gcats1_freeitmlst_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/gcats1_autops_dats.c0000644000175000017500000006344513431250607026315 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-9-3: 2h:41m ** */ /* 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 */ /* external codes at top */ #line 162 "gcats1_autops.dats" static inline ats_void_type gc_aut_calloc_bsz_memset_bsz (ats_ptr_type p, ats_int_type c, ats_int_type bsz) { memset (p, c, bsz) ; return ; } #line 305 "gcats1_autops.dats" static inline ats_void_type gc_aut_realloc_wsz_memcpy_wsz (ats_ptr_type p_dest, ats_ptr_type p_src, ats_int_type wsz) { memcpy (p_dest, p_src, wsz << NBYTE_PER_WORD_LOG) ; return ; } /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_asl_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_asr_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst2ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, gc_main_lock_acquire) () ; ATSextern_fun(ats_void_type, gc_main_lock_release) () ; ATSextern_fun(ats_void_type, the_globalentrylst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_globalentrylst_lock_release) () ; ATSextern_fun(ats_void_type, the_manmemlst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_manmemlst_lock_release) () ; ATSextern_fun(ats_void_type, the_threadinfolst_lock_acquire) () ; ATSextern_fun(ats_void_type, the_threadinfolst_lock_release) () ; ATSextern_fun(ats_void_type, the_sweeplst_lock_acquire_all) () ; ATSextern_fun(ats_void_type, the_sweeplst_lock_release_all) () ; ATSextern_fun(ats_bool_type, freeitmlst_is_nil) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, freeitmlst_tail_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, the_freeitmlst_array_get) (ats_int_type) ; ATSextern_fun(ats_void_type, the_freeitmlst_array_set) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, the_freeitmlst_array_insert_at) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_bool_type, chunklst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_int_type, chunklst_itemwsz_get) (ats_ptr_type) ; ATSextern_fun(ats_int_type, chunklst_itemwsz_log_get) (ats_ptr_type) ; ATSextern_fun(ats_int_type, chunklst_itemtot_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_data_get) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, chunklst_create) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, chunklst_destroy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, the_chunk_count_limit_is_reached_within) (ats_int_type) ; ATSextern_fun(ats_uintptr1_type, PTR_TOPSEG_GET) (ats_ptr_type) ; ATSextern_fun(ats_int_type, PTR_BOTSEG_GET) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, botsegtbllst_is_cons) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, botsegtbllst_get) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get) (ats_uintptr1_type) ; ATSextern_fun(ats_void_type, gc_collect) () ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate) (ats_int_type) ; ATSextern_fun(ats_ptr_type, gc_aut_malloc_bsz) (ats_int_type) ; ATSextern_fun(ats_ptr_type, gc_aut_malloc_wsz) (ats_int_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, log2_ceil) (ats_int_type) ; ATSextern_fun(ats_ptr_type, gc_aut_calloc_bsz) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, gc_aut_calloc_bsz_memset_bsz) (ats_ptr_type, ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, gc_aut_realloc_wsz_memcpy_wsz) (ats_ptr_type, ats_ptr_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type gcats1_autops_gc_aut_free_chunk_3 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type gcats1_autops_err_botsegtbl_5 (ats_ptr_type arg0) ; static ats_void_type gcats1_autops_err_chunk_6 (ats_ptr_type arg0) ; static ats_ptr_type gcats1_autops_err_9 (ats_ptr_type arg0) ; static ats_ptr_type gcats1_autops_aux_main_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 1738(line=53, offs=29) -- 1844(line=57, offs=4) */ ATSglobaldec() ats_ptr_type gc_aut_malloc_bsz (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; __ats_lab_gc_aut_malloc_bsz: #line 54 "gcats1_autops.dats" tmp3 = atspre_isub (4, 1) ; #line 54 "gcats1_autops.dats" tmp2 = atspre_add_int_int (arg0, tmp3) ; #line 54 "gcats1_autops.dats" tmp1 = atspre_asr_int_int1 (tmp2, 2) ; #line 56 "gcats1_autops.dats" tmp0 = gc_aut_malloc_wsz (tmp1) ; return (tmp0) ; } /* end of [gc_aut_malloc_bsz] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 1954(line=61, offs=29) -- 5420(line=153, offs=4) */ ATSglobaldec() ats_ptr_type gc_aut_malloc_wsz (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_bool_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; ATSlocal (ats_bool_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_bool_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab_gc_aut_malloc_wsz: #line 68 "gcats1_autops.dats" tmp7 = atspre_asl_int_int1 (1, 11) ; #line 68 "gcats1_autops.dats" tmp6 = atspre_gt_int_int (arg0, tmp7) ; #line 68 "gcats1_autops.dats" if (tmp6) { #line 68 "gcats1_autops.dats" tmp5 = -1 ; } else { #line 68 "gcats1_autops.dats" tmp5 = log2_ceil (arg0) ; } /* end of [if] */ #line 71 "gcats1_autops.dats" do { /* branch: __ats_lab_0 */ #line 72 "gcats1_autops.dats" __ats_lab_0_0: #line 72 "gcats1_autops.dats" __ats_lab_0_1: #line 72 "gcats1_autops.dats" tmp8 = atspre_igte (tmp5, 0) ; #line 72 "gcats1_autops.dats" if (!tmp8) { goto __ats_lab_1_1 ; } #line 74 "gcats1_autops.dats" tmp10 = atspre_ilte (tmp5, 11) ; #line 73 "gcats1_autops.dats" /* tmp9 = */ atspre_assert (tmp10) ; #line 75 "gcats1_autops.dats" tmp11 = the_freeitmlst_array_get (tmp5) ; #line 77 "gcats1_autops.dats" tmp13 = freeitmlst_is_nil (tmp11) ; #line 77 "gcats1_autops.dats" if (tmp13) { #line 77 "gcats1_autops.dats" tmp12 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate (tmp5) ; } else { #line 78 "gcats1_autops.dats" tmp12 = tmp11 ; } /* end of [if] */ #line 80 "gcats1_autops.dats" tmp14 = freeitmlst2ptr (tmp12) ; #line 94 "gcats1_autops.dats" tmp15 = freeitmlst_tail_get (tmp12) ; #line 95 "gcats1_autops.dats" /* tmp16 = */ the_freeitmlst_array_set (tmp5, tmp15) ; #line 108 "gcats1_autops.dats" tmp4 = tmp14 ; break ; /* branch: __ats_lab_1 */ #line 110 "gcats1_autops.dats" __ats_lab_1_0: #line 110 "gcats1_autops.dats" __ats_lab_1_1: #line 113 "gcats1_autops.dats" tmp19 = atspre_asl_int_int1 (1, 30) ; #line 113 "gcats1_autops.dats" tmp18 = atspre_gt_int_int (arg0, tmp19) ; #line 113 "gcats1_autops.dats" if (tmp18) { #line 115 "gcats1_autops.dats" /* tmp20 = */ atspre_prerr_string (ATSstrcst("[gc_aut_malloc_wsz]: argument is too large!")) ; #line 115 "gcats1_autops.dats" /* tmp21 = */ atspre_prerr_newline () ; #line 118 "gcats1_autops.dats" /* tmp17 = */ ats_exit (1) ; } else { /* empty */ } /* end of [if] */ #line 120 "gcats1_autops.dats" tmp25 = atspre_asl_int_int1 (1, 11) ; #line 120 "gcats1_autops.dats" tmp24 = atspre_sub_int_int (tmp25, 1) ; #line 120 "gcats1_autops.dats" tmp23 = atspre_add_int_int (arg0, tmp24) ; #line 120 "gcats1_autops.dats" tmp22 = atspre_asr_int_int1 (tmp23, 11) ; #line 121 "gcats1_autops.dats" /* tmp26 = */ gc_main_lock_acquire () ; #line 121 "gcats1_autops.dats" /* tmp27 = ats_selsin_mac(tmp26, atslab_1) */ ; #line 123 "gcats1_autops.dats" tmp28 = the_chunk_count_limit_is_reached_within (tmp22) ; #line 126 "gcats1_autops.dats" if (tmp28) { #line 127 "gcats1_autops.dats" /* tmp30 = */ the_globalentrylst_lock_acquire () ; #line 127 "gcats1_autops.dats" /* tmp31 = ats_selsin_mac(tmp30, atslab_1) */ ; #line 128 "gcats1_autops.dats" /* tmp32 = */ the_manmemlst_lock_acquire () ; #line 128 "gcats1_autops.dats" /* tmp33 = ats_selsin_mac(tmp32, atslab_1) */ ; #line 129 "gcats1_autops.dats" /* tmp34 = */ the_threadinfolst_lock_acquire () ; #line 129 "gcats1_autops.dats" /* tmp35 = ats_selsin_mac(tmp34, atslab_1) */ ; #line 130 "gcats1_autops.dats" /* tmp36 = */ the_sweeplst_lock_acquire_all () ; #line 130 "gcats1_autops.dats" /* tmp37 = ats_selsin_mac(tmp36, atslab_1) */ ; #line 131 "gcats1_autops.dats" /* tmp38 = */ gc_collect () ; #line 134 "gcats1_autops.dats" /* tmp39 = */ the_sweeplst_lock_release_all () ; #line 135 "gcats1_autops.dats" /* tmp40 = */ the_threadinfolst_lock_release () ; #line 136 "gcats1_autops.dats" /* tmp41 = */ the_manmemlst_lock_release () ; #line 137 "gcats1_autops.dats" /* tmp29 = */ the_globalentrylst_lock_release () ; } else { /* empty */ } /* end of [if] */ #line 141 "gcats1_autops.dats" tmp42 = chunklst_create (-1, arg0) ; #line 142 "gcats1_autops.dats" /* tmp43 = */ gc_main_lock_release () ; #line 143 "gcats1_autops.dats" tmp44 = chunklst_data_get (tmp42) ; #line 144 "gcats1_autops.dats" tmp4 = freeitmlst2ptr (tmp44) ; break ; } while (0) ; return (tmp4) ; } /* end of [gc_aut_malloc_wsz] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 5780(line=174, offs=19) -- 6334(line=196, offs=4) */ ATSglobaldec() ats_ptr_type gc_aut_calloc_bsz (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_int_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; __ats_lab_gc_aut_calloc_bsz: #line 183 "gcats1_autops.dats" tmp46 = atspre_mul_int_int (arg0, arg1) ; #line 184 "gcats1_autops.dats" tmp47 = gc_aut_malloc_bsz (tmp46) ; #line 185 "gcats1_autops.dats" /* tmp48 = */ gc_aut_calloc_bsz_memset_bsz (tmp47, 0, tmp46) ; #line 195 "gcats1_autops.dats" tmp45 = tmp47 ; return (tmp45) ; } /* end of [gc_aut_calloc_bsz] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 6462(line=202, offs=4) -- 8244(line=256, offs=4) */ ATSstaticdec() ats_void_type gcats1_autops_gc_aut_free_chunk_3 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp49) ; ATSlocal (ats_int_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_bool_type, tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; __ats_lab_gcats1_autops_gc_aut_free_chunk_3: #line 209 "gcats1_autops.dats" tmp50 = chunklst_itemwsz_log_get (arg0) ; #line 216 "gcats1_autops.dats" tmp51 = atspre_igte (tmp50, 0) ; #line 216 "gcats1_autops.dats" if (tmp51) { #line 238 "gcats1_autops.dats" /* tmp49 = */ the_freeitmlst_array_insert_at (arg1, tmp50) ; } else { #line 242 "gcats1_autops.dats" tmp52 = chunklst_itemtot_get (arg0) ; #line 244 "gcats1_autops.dats" tmp53 = atspre_eq_int_int (tmp52, 1) ; #line 244 "gcats1_autops.dats" if (tmp53) { #line 245 "gcats1_autops.dats" /* tmp54 = */ gc_main_lock_acquire () ; #line 245 "gcats1_autops.dats" /* tmp55 = ats_selsin_mac(tmp54, atslab_1) */ ; #line 246 "gcats1_autops.dats" /* tmp56 = */ chunklst_destroy (arg0) ; #line 248 "gcats1_autops.dats" /* tmp49 = */ gc_main_lock_release () ; } else { /* empty */ } /* end of [if] */ } /* end of [if] */ return /* (tmp49) */ ; } /* end of [gcats1_autops_gc_aut_free_chunk_3] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 8409(line=267, offs=6) -- 8605(line=271, offs=6) */ ATSstaticdec() ats_void_type gcats1_autops_err_botsegtbl_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; __ats_lab_gcats1_autops_err_botsegtbl_5: #line 268 "gcats1_autops.dats" /* tmp59 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error: [gc_aut_free] failed")) ; #line 269 "gcats1_autops.dats" /* tmp60 = */ atspre_prerr_string (ATSstrcst(": invalid pointer (botsegtbl is nil): ")) ; #line 269 "gcats1_autops.dats" /* tmp61 = */ atspre_prerr_ptr (arg0) ; #line 270 "gcats1_autops.dats" /* tmp62 = */ atspre_prerr_newline () ; #line 270 "gcats1_autops.dats" /* tmp58 = */ ats_exit (1) ; return /* (tmp58) */ ; } /* end of [gcats1_autops_err_botsegtbl_5] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 8611(line=272, offs=6) -- 8799(line=276, offs=6) */ ATSstaticdec() ats_void_type gcats1_autops_err_chunk_6 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; __ats_lab_gcats1_autops_err_chunk_6: #line 273 "gcats1_autops.dats" /* tmp64 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error: [gc_aut_free] failed")) ; #line 274 "gcats1_autops.dats" /* tmp65 = */ atspre_prerr_string (ATSstrcst(": invalid pointer (chunk is nil): ")) ; #line 274 "gcats1_autops.dats" /* tmp66 = */ atspre_prerr_ptr (arg0) ; #line 275 "gcats1_autops.dats" /* tmp67 = */ atspre_prerr_newline () ; #line 275 "gcats1_autops.dats" /* tmp63 = */ ats_exit (1) ; return /* (tmp63) */ ; } /* end of [gcats1_autops_err_chunk_6] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 8302(line=261, offs=13) -- 9241(line=290, offs=4) */ ATSglobaldec() ats_void_type gc_aut_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_uintptr1_type, tmp68) ; ATSlocal (ats_uintptr1_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_bool_type, tmp71) ; ATSlocal (ats_int_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; __ats_lab_gc_aut_free: #line 277 "gcats1_autops.dats" tmp68 = PTR_TOPSEG_GET (arg0) ; #line 277 "gcats1_autops.dats" tmp69 = ats_selsin_mac(tmp68, atslab_1) ; #line 278 "gcats1_autops.dats" tmp70 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get (tmp69) ; #line 280 "gcats1_autops.dats" do { /* branch: __ats_lab_2 */ #line 281 "gcats1_autops.dats" __ats_lab_2_0: #line 281 "gcats1_autops.dats" __ats_lab_2_1: #line 281 "gcats1_autops.dats" tmp71 = botsegtbllst_is_cons (tmp70) ; #line 281 "gcats1_autops.dats" if (!tmp71) { goto __ats_lab_5_1 ; } #line 282 "gcats1_autops.dats" tmp72 = PTR_BOTSEG_GET (arg0) ; #line 283 "gcats1_autops.dats" tmp73 = botsegtbllst_get (tmp70, tmp72) ; #line 285 "gcats1_autops.dats" do { /* branch: __ats_lab_3 */ #line 286 "gcats1_autops.dats" __ats_lab_3_0: #line 286 "gcats1_autops.dats" __ats_lab_3_1: #line 286 "gcats1_autops.dats" tmp74 = chunklst_is_cons (tmp73) ; #line 286 "gcats1_autops.dats" if (!tmp74) { goto __ats_lab_4_1 ; } #line 286 "gcats1_autops.dats" /* tmp57 = */ gcats1_autops_gc_aut_free_chunk_3 (tmp73, arg0) ; break ; /* branch: __ats_lab_4 */ #line 287 "gcats1_autops.dats" __ats_lab_4_0: #line 287 "gcats1_autops.dats" __ats_lab_4_1: #line 287 "gcats1_autops.dats" /* tmp57 = */ gcats1_autops_err_chunk_6 (arg0) ; break ; } while (0) ; break ; /* branch: __ats_lab_5 */ #line 289 "gcats1_autops.dats" __ats_lab_5_0: #line 289 "gcats1_autops.dats" __ats_lab_5_1: #line 289 "gcats1_autops.dats" /* tmp57 = */ gcats1_autops_err_botsegtbl_5 (arg0) ; break ; } while (0) ; return /* (tmp57) */ ; } /* end of [gc_aut_free] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 9354(line=297, offs=20) -- 9471(line=301, offs=4) */ ATSglobaldec() ats_ptr_type gc_aut_realloc_bsz (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; __ats_lab_gc_aut_realloc_bsz: #line 298 "gcats1_autops.dats" tmp78 = atspre_isub (4, 1) ; #line 298 "gcats1_autops.dats" tmp77 = atspre_add_int_int (arg1, tmp78) ; #line 298 "gcats1_autops.dats" tmp76 = atspre_asr_int_int1 (tmp77, 2) ; #line 300 "gcats1_autops.dats" tmp75 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz (arg0, tmp76) ; return (tmp75) ; } /* end of [gc_aut_realloc_bsz] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 9961(line=328, offs=6) -- 10126(line=332, offs=6) */ ATSstaticdec() ats_ptr_type gcats1_autops_err_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; __ats_lab_gcats1_autops_err_9: #line 329 "gcats1_autops.dats" /* tmp81 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error: [gc_aut_free] failed")) ; #line 330 "gcats1_autops.dats" /* tmp82 = */ atspre_prerr_string (ATSstrcst(": invalid pointer: ")) ; #line 330 "gcats1_autops.dats" /* tmp83 = */ atspre_prerr_ptr (arg0) ; #line 330 "gcats1_autops.dats" /* tmp84 = */ atspre_prerr_newline () ; #line 331 "gcats1_autops.dats" /* tmp80 = */ ats_exit (1) ; return (tmp80) ; } /* end of [gcats1_autops_err_9] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 10228(line=335, offs=6) -- 11278(line=369, offs=6) */ ATSstaticdec() ats_ptr_type gcats1_autops_aux_main_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_int_type, tmp89) ; ATSlocal (ats_bool_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_int_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; __ats_lab_gcats1_autops_aux_main_10: #line 340 "gcats1_autops.dats" tmp89 = chunklst_itemwsz_get (arg0) ; #line 342 "gcats1_autops.dats" do { /* branch: __ats_lab_6 */ #line 343 "gcats1_autops.dats" __ats_lab_6_0: #line 343 "gcats1_autops.dats" __ats_lab_6_1: #line 343 "gcats1_autops.dats" tmp90 = atspre_gt_int_int (arg2, tmp89) ; #line 343 "gcats1_autops.dats" if (!tmp90) { goto __ats_lab_7_1 ; } #line 349 "gcats1_autops.dats" tmp91 = gc_aut_malloc_wsz (arg2) ; #line 350 "gcats1_autops.dats" /* tmp92 = */ gc_aut_realloc_wsz_memcpy_wsz (tmp91, arg1, tmp89) ; #line 351 "gcats1_autops.dats" /* tmp93 = */ gcats1_autops_gc_aut_free_chunk_3 (arg0, arg1) ; #line 353 "gcats1_autops.dats" tmp88 = tmp91 ; break ; /* branch: __ats_lab_7 */ #line 355 "gcats1_autops.dats" __ats_lab_7_0: #line 355 "gcats1_autops.dats" __ats_lab_7_1: #line 355 "gcats1_autops.dats" tmp95 = atspre_mul_int_int (2, arg2) ; #line 355 "gcats1_autops.dats" tmp94 = atspre_lte_int_int (tmp95, tmp89) ; #line 355 "gcats1_autops.dats" if (!tmp94) { goto __ats_lab_8_1 ; } #line 361 "gcats1_autops.dats" tmp96 = gc_aut_malloc_wsz (arg2) ; #line 363 "gcats1_autops.dats" /* tmp97 = */ gc_aut_realloc_wsz_memcpy_wsz (tmp96, arg1, arg2) ; #line 364 "gcats1_autops.dats" /* tmp98 = */ gcats1_autops_gc_aut_free_chunk_3 (arg0, arg1) ; #line 366 "gcats1_autops.dats" tmp88 = tmp96 ; break ; /* branch: __ats_lab_8 */ #line 368 "gcats1_autops.dats" __ats_lab_8_0: #line 368 "gcats1_autops.dats" __ats_lab_8_1: #line 368 "gcats1_autops.dats" tmp88 = arg1 ; break ; } while (0) ; return (tmp88) ; } /* end of [gcats1_autops_aux_main_10] */ /* // /home/hwxi/research/Anairiats/ccomp/runtime/GCATS1/gcats1_autops.dats: 9739(line=319, offs=20) -- 11928(line=396, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_uintptr1_type, tmp85) ; ATSlocal (ats_uintptr1_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_bool_type, tmp99) ; ATSlocal (ats_bool_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_bool_type, tmp103) ; __ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz: #line 333 "gcats1_autops.dats" tmp85 = PTR_TOPSEG_GET (arg0) ; #line 333 "gcats1_autops.dats" tmp86 = ats_selsin_mac(tmp85, atslab_1) ; #line 334 "gcats1_autops.dats" tmp87 = ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__the_topsegtbl_get (tmp86) ; #line 372 "gcats1_autops.dats" tmp99 = atspre_pgt (arg0, atspre_null_ptr) ; #line 372 "gcats1_autops.dats" if (tmp99) { #line 373 "gcats1_autops.dats" do { /* branch: __ats_lab_9 */ #line 374 "gcats1_autops.dats" __ats_lab_9_0: #line 374 "gcats1_autops.dats" __ats_lab_9_1: #line 374 "gcats1_autops.dats" tmp100 = botsegtbllst_is_cons (tmp87) ; #line 374 "gcats1_autops.dats" if (!tmp100) { goto __ats_lab_12_1 ; } #line 375 "gcats1_autops.dats" tmp101 = PTR_BOTSEG_GET (arg0) ; #line 376 "gcats1_autops.dats" tmp102 = botsegtbllst_get (tmp87, tmp101) ; #line 378 "gcats1_autops.dats" do { /* branch: __ats_lab_10 */ #line 379 "gcats1_autops.dats" __ats_lab_10_0: #line 379 "gcats1_autops.dats" __ats_lab_10_1: #line 379 "gcats1_autops.dats" tmp103 = chunklst_is_cons (tmp102) ; #line 379 "gcats1_autops.dats" if (!tmp103) { goto __ats_lab_11_1 ; } #line 380 "gcats1_autops.dats" tmp79 = gcats1_autops_aux_main_10 (tmp102, arg0, arg1) ; break ; /* branch: __ats_lab_11 */ #line 390 "gcats1_autops.dats" __ats_lab_11_0: #line 390 "gcats1_autops.dats" __ats_lab_11_1: #line 390 "gcats1_autops.dats" tmp79 = gcats1_autops_err_9 (arg0) ; break ; } while (0) ; break ; /* branch: __ats_lab_12 */ #line 392 "gcats1_autops.dats" __ats_lab_12_0: #line 392 "gcats1_autops.dats" __ats_lab_12_1: #line 392 "gcats1_autops.dats" tmp79 = gcats1_autops_err_9 (arg0) ; break ; } while (0) ; } else { #line 394 "gcats1_autops.dats" tmp79 = gc_aut_malloc_wsz (arg1) ; } /* end of [if] */ return (tmp79) ; } /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_aut_realloc_wsz] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_autops_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [gcats1_autops_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/GCATS/m32/gcats1_misc_dats.c0000644000175000017500000001156013431250607025724 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2013-9-3: 2h:41m ** */ /* 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 */ /* external codes at top */ #line 51 "gcats1_misc.dats" static int the_stack_direction = 0 ; // // dir=1/-1 : upward/downward // static int gc_stack_dir_get_inner (int *some_ptr) { int some_int ; if (&some_int > some_ptr) return 1 ; else return -1 ; return 0 ; /* deadcode */ } static int gc_stack_dir_get_outer () { // static volatile void* get_inner = &gc_stack_dir_get_inner ; // int some_int ; if (!the_stack_direction) the_stack_direction = ((int(*)(int*))get_inner)(&some_int) ; /* fprintf (stderr, "the_stack_direction = %i\n", the_stack_direction) ; */ return the_stack_direction ; } ats_int_type gc_stack_dir_get () { return gc_stack_dir_get_outer () ; } /* ****** ****** */ #ifdef _ATS_MULTITHREAD static __thread ats_ptr_type the_stack_beg = (ats_ptr_type)0 ; #else /* single thread */ static ats_ptr_type the_stack_beg = (ats_ptr_type)0 ; #endif ats_void_type gc_stack_beg_set (ats_int_type dir) { long int pagesize, pagemask ; uintptr_t beg ; if (the_stack_beg) return ; // already set // pagesize must be a power of 2 pagesize = sysconf(_SC_PAGESIZE) ; // system configuration /* fprintf(stderr, "gc_stack_beg_set: dir = %i\n", dir) ; fprintf(stderr, "gc_stack_beg_set: pagesize = %li\n", pagesize) ; fprintf(stderr, "gc_stack_beg_set: &pagesize = %p\n", &pagesize) ; */ pagemask = ~(pagesize - 1) ; // 1...10...0 if (dir > 0) { beg = (uintptr_t)(&pagesize) ; beg &= pagemask ; } else { beg = (uintptr_t)(&pagesize) + pagesize ; beg &= pagemask ; beg -= sizeof(freeitmlst) ; } the_stack_beg = (ats_ptr_type)beg ; return ; } ats_ptr_type gc_stack_beg_get ( // there is no argument for this function ) { if (!the_stack_beg) { fprintf (stderr, "GC Fatal Error: [gc_stack_beg_get]") ; fprintf (stderr, ": [the_stack_beg] is not yet set.\n") ; exit (1) ; } return the_stack_beg ; } // end of [gc_stack_beg_get] /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK /* empty */ #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload () { static int ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload_flag) return ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload () { ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_misc_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [gcats1_misc_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/ats_types.h0000644000175000017500000001031613431250607023270 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_TYPES_H #define ATS_TYPES_H /* ****** ****** */ #include #include // for both [size_t] and [ptrdiff_t] #include // for [ssize_t] /* ****** ****** */ struct ats_struct_type ; /* of indefinite size */ /* ****** ****** */ typedef struct ats_struct_type ats_abs_type ; typedef void *ats_ptr_type ; typedef void *ats_ref_type ; /* typedef struct ats_struct_type *ats_ptr_type ; typedef struct ats_struct_type *ats_ref_type ; */ #ifdef _ATS_GEIZELLA typedef void ats_var_type ; // for ATS/Geizella #else typedef struct ats_struct_type ats_var_type ; #endif // end of [_ATS_GEIZELLA] typedef void ats_varet_type ; typedef void ats_void_type ; typedef struct{} ats_empty_type ; /* ****** ****** */ typedef int ats_bool_type ; typedef unsigned char ats_byte_type ; typedef char ats_char_type ; typedef signed char ats_schar_type ; typedef unsigned char ats_uchar_type ; typedef double ats_double_type ; typedef long double ats_ldouble_type ; typedef float ats_float_type ; /* ****** ****** */ typedef int ats_int_type ; typedef unsigned int ats_uint_type ; typedef long int ats_lint_type ; typedef unsigned long int ats_ulint_type ; typedef long long int ats_llint_type ; typedef unsigned long long int ats_ullint_type ; typedef short int ats_sint_type ; typedef unsigned short int ats_usint_type ; typedef size_t ats_size_type ; typedef ssize_t ats_ssize_type ; typedef ptrdiff_t ats_ptrdiff_type ; /* ****** ****** */ typedef int8_t ats_int8_type ; typedef uint8_t ats_uint8_type ; typedef int16_t ats_int16_type ; typedef uint16_t ats_uint16_type ; typedef int32_t ats_int32_type ; typedef uint32_t ats_uint32_type ; typedef int64_t ats_int64_type ; typedef uint64_t ats_uint64_type ; /* ****** ****** */ // // HX-2010-12-06: // the erasure name of [ptr] is [ats_ptrself_type] // typedef void *ats_ptrself_type ; /* ****** ****** */ /* typedef ats_ptr_type ats_string_type ; */ /* ****** ****** */ /* // // HX: this is intended: no definition for [ats_atarray_type]. // */ typedef struct { ats_ptr_type data ; ats_int_type size ; } ats_a1rray_type ; typedef ats_a1rray_type *ats_a1rray_ptr_type ; typedef ats_a1rray_ptr_type ats_array_type ; typedef struct { ats_ptr_type data ; ats_int_type size_row ; ats_int_type size_col ; } ats_a2rray_type ; typedef ats_a2rray_type *ats_a2rray_ptr_type ; typedef ats_a2rray_ptr_type ats_matrix_type ; /* ****** ****** */ typedef struct { int tag ; } ats_sum_type ; typedef ats_sum_type *ats_sum_ptr_type ; /* ****** ****** */ typedef struct { int tag ; char *name ; } ats_exn_type ; typedef ats_exn_type *ats_exn_ptr_type ; /* ****** ****** */ typedef void *ats_fun_ptr_type ; /* ****** ****** */ typedef struct { void *closure_fun ; } ats_clo_type ; typedef ats_clo_type *ats_clo_ptr_type ; typedef ats_clo_type *ats_clo_ref_type ; /* ****** ****** */ #endif /* ATS_TYPES_H */ /* end of [ats_types.h] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/ats_prelude_gcats.c0000644000175000017500000001341513431250607024743 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /***********************************************************************/ /* ** ATS/Anairiats - Unleashing the Power of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Time: June 2008 /* ****** ****** */ #ifndef ATSRUNTIME_GCATS_C #define ATSRUNTIME_GCATS_C /* ****** ****** */ extern ats_int_type gc_chunk_count_limit_get () ; extern ats_void_type gc_chunk_count_limit_set (ats_int_type n) ; extern ats_int_type gc_chunk_count_limit_max_get () ; extern ats_void_type gc_chunk_count_limit_max_set (ats_int_type n) ; /* ****** ****** */ extern ats_void_type gc_markroot_bsz (ats_ptr_type ptr, ats_int_type bsz) ; /* ****** ****** */ extern ats_ptr_type gc_aut_malloc_bsz (ats_int_type bsz) ; extern ats_ptr_type gc_aut_calloc_bsz (ats_int_type n, ats_int_type bsz) ; extern ats_void_type gc_aut_free (ats_ptr_type ptr) ; extern ats_ptr_type gc_aut_realloc_bsz (ats_ptr_type ptr, ats_int_type bsz) ; /* ****** ****** */ extern ats_ptr_type gc_man_malloc_bsz (ats_int_type bsz) ; extern ats_ptr_type gc_man_calloc_bsz (ats_int_type n, ats_int_type bsz) ; extern ats_void_type gc_man_free (ats_ptr_type ptr) ; extern ats_ptr_type gc_man_realloc_bsz (ats_ptr_type ptr, ats_int_type bsz) ; /* ****** ****** */ extern void gc_init () ; ats_void_type ats_gc_init () { gc_init () ; return ; } // end of [ats_gc_init] /* ****** ****** */ ats_void_type ats_gc_markroot (const ats_ptr_type p, ats_size_type bsz) { /* fprintf (stderr, "ats_gc_markroot: p = %p and bsz = %i\n", p, bsz) ; */ gc_markroot_bsz (p, bsz) ; return ; } // end of [ats_gc_markroot] ats_int_type ats_gc_chunk_count_limit_get () { return gc_chunk_count_limit_get () ; } // end of [ats_gc_chunk_count_limit_get] ats_void_type ats_gc_chunk_count_limit_set (ats_int_type nchunk) { gc_chunk_count_limit_set (nchunk) ; return ; } // end of [ats_gc_chunk_count_limit_set] ats_int_type ats_gc_chunk_count_limit_max_get () { return gc_chunk_count_limit_max_get () ; } // end of [ats_gc_chunk_count_limit_max_get] ats_void_type ats_gc_chunk_count_limit_max_set (ats_int_type nchunk) { gc_chunk_count_limit_max_set (nchunk) ; return ; } // end of [ats_gc_chunk_count_limit_max_set] /* ****** ****** */ ats_ptr_type ats_malloc_gc (ats_size_type n) { ats_ptr_type *p ; /* fprintf (stderr, "ats_malloc_gc: n = %i\n", n) ; */ p = gc_aut_malloc_bsz(n) ; /* fprintf (stderr, "ats_malloc_gc: p = %p(%li)\n", p, p) ; */ if (!p) ats_exit_errmsg(1, "exit(ATS): [ats_malloc_gc] failed.\n") ; return p ; } // end of [ats_malloc_gc] ats_ptr_type ats_calloc_gc (ats_size_type n, ats_size_type bsz) { ats_ptr_type *p ; /* fprintf (stderr, "ats_calloc_gc: n = %i and bsz = %i\n", n, bsz) ; */ p = gc_aut_calloc_bsz(n, bsz) ; /* fprintf (stderr, "ats_calloc_gc: p = %p(%li)\n", p, p) ; */ if (!p) ats_exit_errmsg(1, "exit(ATS): [ats_calloc_gc] failed.\n") ; return p ; } // end of [ats_calloc_gc] ats_void_type ats_free_gc (const ats_ptr_type p) { /* fprintf (stderr, "ats_free_gc: p = %p(%li)\n", p, p) ; */ gc_aut_free(p) ; return ; } // end of [ats_free_gc] ats_ptr_type ats_realloc_gc (const ats_ptr_type p, ats_size_type bsz) { ats_ptr_type p_new ; /* fprintf (stderr, "ats_realloc_gc: p = %p and bsz = %i\n", p, bsz) ; */ p_new = gc_aut_realloc_bsz(p, bsz) ; /* fprintf (stderr, "ats_realloc_gc: p_new = %p(%li)\n", p_new, p_new) ; */ if (!p_new) ats_exit_errmsg(1, "exit(ATS): [ats_realloc_gc] failed.\n") ; return p_new ; } // end of [ats_realloc_gc] /* ****** ****** */ ats_ptr_type ats_malloc_ngc (ats_size_type n) { ats_ptr_type *p ; /* fprintf (stderr, "ats_malloc_ngc: _ATS_GCATS: n = %i\n", n) ; */ p = gc_man_malloc_bsz(n) ; /* fprintf (stderr, "ats_malloc_ngc: _ATS_GCATS: p = %p(%li)\n", p, p) ; */ return p ; } // end of [ats_malloc_ngc] ats_ptr_type ats_calloc_ngc (ats_size_type n, ats_size_type bsz) { ats_ptr_type *p ; p = gc_man_calloc_bsz(n, bsz) ; return p ; } // end of [ats_calloc_ngc] ats_void_type ats_free_ngc (const ats_ptr_type p) { /* fprintf (stderr, "ats_free_ngc: _ATS_GCATS: p = %p\n", p) ; */ gc_man_free(p) ; return ; } // end of [ats_free_ngc] ats_ptr_type ats_realloc_ngc (const ats_ptr_type p, ats_size_type bsz) { ats_ptr_type *p_new ; /* fprintf (stderr, "ats_realloc_ngc: _ATS_GCATS: p = %p\n", p) ; fprintf (stderr, "ats_realloc_ngc: _ATS_GCATS: bsz = %i\n", bsz) ; */ p_new = gc_man_realloc_bsz(p, bsz) ; /* fprintf (stderr, "ats_realloc_ngc: _ATS_GCATS: p_new = %p\n", p_new) ; */ return p_new ; } // end of [ats_realloc_ngc] /* ****** ****** */ #endif /* ATSRUNTIME_GCATS_C */ /* end of [ats_prelude_gcats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/ats_config.h0000644000175000017500000000457613431250607023404 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_CONFIG_H #define ATS_CONFIG_H /* ****** ****** */ // #include "config.h" // /* ****** ****** */ #define NBIT_PER_BYTE 8 #define NBIT_PER_BYTE_LOG 3 /* ****** ****** */ #ifndef __WORDSIZE #define __WORDSIZE (SIZEOF_VOIDP * NBIT_PER_BYTE) #endif // end of [__WORDSIZE] /* ****** ****** */ #if (__WORDSIZE == 32) #define NBYTE_PER_WORD 4 #define NBYTE_PER_WORD_LOG 2 #if (NBYTE_PER_WORD != (1 << NBYTE_PER_WORD_LOG)) #error "NBYTE_PER_WORD != (1 << NBYTE_PER_WORD_LOG)\n" #endif #elif (__WORDSIZE == 64) #define NBYTE_PER_WORD 8 #define NBYTE_PER_WORD_LOG 3 #if (NBYTE_PER_WORD != (1 << NBYTE_PER_WORD_LOG)) #error "NBYTE_PER_WORD != (1 << NBYTE_PER_WORD_LOG)\n" #endif #else #error "[__WORDSIZE] is not supported.\n" #endif /* ****** ****** */ #define NBIT_PER_WORD (NBIT_PER_BYTE * NBYTE_PER_WORD) #define NBIT_PER_WORD_LOG (NBIT_PER_BYTE_LOG + NBYTE_PER_WORD_LOG) #if (NBIT_PER_WORD != (1 << NBIT_PER_WORD_LOG)) #error "NBIT_PER_WORD != (1 << NBIT_PER_WORD_LOG)\n" #endif /* ****** ****** */ #endif /* ATS_CONFIG_H */ /* end of [ats_config.h] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/ats_exception.h0000644000175000017500000001075413431250607024130 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ** ** Authors: ** Likai Liu (liulk AT cs DOT bu DOT edu) // Summer 2005 ** Rick Lavoie (coldfury AT cs DOT bu DOT edu) // Fall 2006 ** Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Summer 2007 ** */ #ifndef ATS_EXCEPTION_H #define ATS_EXCEPTION_H // the file should only be loaded once /* ****** ****** */ /* ** always loaded after the following two files: */ #include "ats_types.h" #include "ats_basics.h" /* ****** ****** */ // #include // /* ****** ****** */ // typedef jmp_buf ats_jmp_buf_type ; // #define atspre_setjmp(env, mask) setjmp(env) #define atspre_longjmp(env, ret) longjmp(env, ret) // /* ****** ****** */ // // HX-2011-04-24: // the function [alloca] // is declared in [alloca.h] or [stdlib.h] // extern void *alloca (size_t bsz) ; // /* ****** ****** */ /* ** function for handling uncaught exceptions */ extern ats_void_type ats_uncaught_exception_handle(const ats_exn_ptr_type exn) ; /* ****** ****** */ /* exception implementation */ typedef struct ats_exception_frame_struct { ats_exn_ptr_type exn ; struct ats_exception_frame_struct *prev ; ats_jmp_buf_type env ; } ats_exception_frame_type ; /* ****** ****** */ #ifdef _ATS_MULTITHREAD extern ATSthreadlocalstorage() void *the_ats_exception_stack ; #else /* single thread */ extern void *the_ats_exception_stack ; #endif // end of [_ATS_MULTITHREAD] /* ****** ****** */ #define ATS_CURRENT_FRAME \ ((ats_exception_frame_type*)the_ats_exception_stack) #define ATS_CURRENT_FRAME_LVAL the_ats_exception_stack #define ATS_ENTER_EXCEPTION_FRAME() \ do { \ ats_exception_frame_type *frame = \ (ats_exception_frame_type*)alloca(sizeof(ats_exception_frame_type)); \ frame->prev = ATS_CURRENT_FRAME ; \ ATS_CURRENT_FRAME_LVAL = frame ; \ } while (0) // end of [do] #define ATS_LEAVE_EXCEPTION_FRAME() \ do { ATS_CURRENT_FRAME_LVAL = ATS_CURRENT_FRAME->prev; } while (0) #define ATS_RAISE(exn) \ do { \ if (ATS_CURRENT_FRAME == 0/*null*/) ats_uncaught_exception_handle(exn); \ ATS_CURRENT_FRAME->exn = exn ; \ atspre_longjmp(ATS_CURRENT_FRAME->env, 0) ; \ } while (0) // end of [do] /* ****** ****** */ /* ** WARNING: DO NOT USE THE FOLLOWING MACROS: */ #define ATS_TRYWITH_TRY(tmp_exn) \ do { \ ATS_ENTER_EXCEPTION_FRAME() ; \ tmp_exn = (ats_exn_ptr_type)((intptr_t)atspre_setjmp(ATS_CURRENT_FRAME->env, 0)) ; \ if ((intptr_t)tmp_exn == 0) { /* ... */ #define ATS_TRYWITH_WITH(tmp_exn) \ ATS_LEAVE_EXCEPTION_FRAME() ; \ } else { \ tmp_exn = ATS_CURRENT_FRAME->exn ; \ ATS_LEAVE_EXCEPTION_FRAME() ; /* exception handling */ #define ATS_TRYWITH_END() \ } \ } while(0) /* end of WARNING */ /* ****** ****** */ static inline ats_void_type ats_raise_exn // raising an exception (const ats_exn_ptr_type exn) { ATS_RAISE(exn) ; return ; } /* end of [ats_raise_exn] */ /* ****** ****** */ /* ** ** function for generating new exception constructor tag ** */ extern int ats_exception_con_tag ; static inline int ats_exception_con_tag_new () { ats_exception_con_tag += 1 ; return (ats_exception_con_tag) ; } /* end of [ats_exception_con_tag_new] */ /* functions for handling match failures */ extern ats_void_type ats_caseof_failure(void) ; extern ats_void_type ats_funarg_match_failure(void) ; /* ****** ****** */ #endif /* ATS_EXCEPTION_H */ /* end of [ats_exception.h] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/ats_prelude_gcbdw.c0000644000175000017500000000666713431250607024743 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Likai Liu (liulk AT cs DOT bu DOT edu) */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATSRUNTIME_GCBDW_C #define ATSRUNTIME_GCBDW_C /* ****** ****** */ #include // interface file for [GCBDW] /* ****** ****** */ ats_void_type ats_gc_init () { GC_INIT() ; return ; } // end of [ats_gc_init] ats_void_type ats_gc_markroot ( const ats_ptr_type p, ats_size_type bsz ) { return ; } // end of [ats_gc_markroot] ats_int_type ats_gc_chunk_count_limit_get () { return 0 ; } // end of [ats_gc_chunk_count_limit_get] ats_void_type ats_gc_chunk_count_limit_set (ats_int_type nchunk) { return ; } // end of [ats_gc_chunk_count_limit_set] ats_int_type ats_gc_chunk_count_limit_max_get () { return 0 ; } // end of [ats_gc_chunk_count_limit_max_get] ats_void_type ats_gc_chunk_count_limit_max_set (ats_int_type nchunk) { return ; } // end of [ats_gc_chunk_count_limit_max_set] /* ****** ****** */ ats_ptr_type ats_malloc_gc ( ats_size_type nbytes ) { return GC_MALLOC(nbytes) ; // allocated memory is cleared } // end of [ats_malloc_gc] ats_ptr_type ats_calloc_gc ( ats_size_type nitm , ats_size_type bsz ) { return GC_MALLOC(nitm * bsz) ; // allocated memory is cleared } // end of [ats_calloc_gc] ats_void_type ats_free_gc (ats_ptr_type p) { GC_FREE(p) ; return ; } // end of [ats_free_gc] ats_ptr_type ats_realloc_gc ( ats_ptr_type p_old , ats_size_type nbytes_new ) { return GC_REALLOC(p_old, nbytes_new) ; } // end of [ats_realloc_gc] /* ****** ****** */ ats_ptr_type ats_malloc_ngc ( ats_size_type nbytes ) { return GC_MALLOC_UNCOLLECTABLE(nbytes) ; // allocated memory is cleared } // end of [ats_malloc_ngc] ats_ptr_type ats_calloc_ngc ( ats_size_type nitm , ats_size_type bsz ) { return GC_MALLOC_UNCOLLECTABLE(nitm * bsz) ; // allocated memory is cleared } // end of [ats_calloc_ngc] ats_void_type ats_free_ngc (ats_ptr_type p) { GC_FREE (p) ; return ; } // end of [ats_free_ngc] ats_ptr_type ats_realloc_ngc ( ats_ptr_type p_old , ats_size_type nbytes_new ) { return GC_REALLOC (p_old, nbytes_new) ; } // end of [ats_realloc_ngc] /* ****** ****** */ #endif /* ATSRUNTIME_GCBDW_C */ /* end of [ats_prelude_gcbdw.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/ccomp/runtime/ats_prelude_ngc.c0000644000175000017500000001123713431250607024411 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Time: May 2009 // /* ****** ****** */ // // HX-2010-03-17: should it be named ATS_PRELUDE_NGC_C? // #ifndef ATSRUNTIME_NGC_C #define ATSRUNTIME_NGC_C /* ****** ****** */ // declared in [stdlib.h] extern void *malloc (size_t bsz) ; extern void *calloc (size_t n, size_t bsz) ; extern void free (void *p) ; extern void *realloc (void* p, size_t bsz) ; /* ****** ****** */ ats_void_type ats_gc_init () { return ; } // end of [ats_gc_init] ats_void_type ats_gc_markroot ( const ats_ptr_type p, ats_size_type bsz ) { return ; } // end of [ats_gc_markroot] ats_int_type ats_gc_chunk_count_limit_get () { return 0 ; } // end of [ats_gc_chunk_count_limit_get] ats_void_type ats_gc_chunk_count_limit_set (ats_int_type nchunk) { return ; } // end of [ats_gc_chunk_count_limit_set] ats_int_type ats_gc_chunk_count_limit_max_get () { return 0 ; } // end of [ats_gc_chunk_count_limit_max_get] ats_void_type ats_gc_chunk_count_limit_max_set (ats_int_type nchunk) { return ; } // end of [ats_gc_chunk_count_limit_max_set] /* ****** ****** */ ats_ptr_type ats_malloc_gc ( ats_size_type n ) { ats_ptr_type *p ; /* fprintf (stderr, "ats_malloc_gc: n = %i\n", n) ; */ p = malloc(n) ; /* fprintf (stderr, "ats_malloc_gc: p = %p(%li)\n", p, p) ; */ if (!p) ats_exit_errmsg(1, "exit(ATS): [ats_malloc_gc] failed.\n") ; return p ; } // end of [ats_malloc_gc] ats_ptr_type ats_calloc_gc ( ats_size_type n, ats_size_type bsz ) { ats_ptr_type *p ; /* fprintf (stderr, "ats_calloc_gc: n = %i and bsz = %i\n", n, bsz) ; */ p = calloc(n, bsz) ; /* fprintf (stderr, "ats_calloc_gc: p = %p(%li)\n", p, p) ; */ if (!p) ats_exit_errmsg(1, "exit(ATS): [ats_calloc_gc] failed.\n") ; return p ; } // end of [ats_calloc_gc] ats_void_type ats_free_gc ( const ats_ptr_type p ) { /* fprintf (stderr, "ats_free_gc: p = %p(%li)\n", p, p) ; */ free(p) ; return ; } // end of [ats_free_gc] ats_ptr_type ats_realloc_gc ( const ats_ptr_type p, ats_size_type bsz ) { ats_ptr_type p_new ; /* fprintf (stderr, "ats_realloc_gc: p = %p and bsz = %i\n", p, bsz) ; */ p_new = realloc(p, bsz) ; /* fprintf (stderr, "ats_realloc_gc: p_new = %p(%li)\n", p_new, p_new) ; */ if (!p_new) ats_exit_errmsg(1, "exit(ATS): [ats_realloc_gc] failed.\n") ; return p_new ; } // end of [ats_realloc_gc] /* ****** ****** */ ats_ptr_type ats_malloc_ngc ( ats_size_type n ) { ats_ptr_type *p ; /* fprintf (stderr, "ats_malloc_ngc: _ATS_NGC: n = %i\n", n) ; */ p = malloc(n) ; /* fprintf (stderr, "ats_malloc_ngc: _ATS_NGC: p = %p(%li)\n", p, p) ; */ return p ; } // end of [ats_malloc_ngc] ats_ptr_type ats_calloc_ngc ( ats_size_type n, ats_size_type bsz ) { ats_ptr_type *p ; p = calloc(n, bsz) ; return p ; } // end of [ats_calloc_ngc] ats_void_type ats_free_ngc ( const ats_ptr_type p ) { /* fprintf (stderr, "ats_free_ngc: _ATS_NGC: p = %p\n", p) ; */ free(p) ; return ; } // end of [ats_free_ngc] ats_ptr_type ats_realloc_ngc ( const ats_ptr_type p, ats_size_type bsz ) { ats_ptr_type *p_new ; /* fprintf (stderr, "ats_realloc_ngc: _ATS_NGC: p = %p\n", p) ; fprintf (stderr, "ats_realloc_ngc: _ATS_NGC: bsz = %i\n", bsz) ; */ p_new = realloc(p, bsz) ; /* fprintf (stderr, "ats_realloc_ngc: _ATS_NGC: p_new = %p\n", p_new) ; */ return p_new ; } // end of [ats_realloc_ngc] /* ****** ****** */ #endif /* ATSRUNTIME_NGC_C */ /* end of [ats_prelude_ngc.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp2_sats.c0000644000175000017500000007147113431250607022147 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_i2nvresstate_svs ; ats_ptr_type atslab_i2nvresstate_gua ; ats_ptr_type atslab_i2nvresstate_arg ; ats_ptr_type atslab_i2nvresstate_met ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_rec_1 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2PITM_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMvar_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcon_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMe1xp_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMsymdef_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacdef_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacvar_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_lvar_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_vbox_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINdone_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGsta_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGdyn_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKlincon_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATomit_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tint_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tintrep_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tbool_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tchar_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tfloat_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tstring_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Ti0nt_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tf0loat_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlst_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trec_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trefas_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Texist_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvbox_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tann_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Terrpat_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABlab_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABind_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecst_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eintrep_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ebool_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop2_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecstsp_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etyrep_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eliteral_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextval_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextfcall_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextmcall_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Econ_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efoldat_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efreeat_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etmpid_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elet_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhere_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esifhead_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifcasehd_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Escasehead_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elst_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eptrof_41) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eviewat_42) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Exchng_45) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrsub_46) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrpsz_47) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrinit_48) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eraise_49) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eeffmask_50) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evararg_51) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evcopyenv_52) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eshowtype_53) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etempenver_54) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eexist_55) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elaminit_dyn_57) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efix_60) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Edelay_61) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eldelay_62) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efor_63) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhile_64) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eloopexn_65) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etrywith_66) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacsyn_71) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacfun_72) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolassert_73) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolverify_74) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eerrexp_75) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymintr_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymelim_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Coverload_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cpragma_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ccodegen_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacsts_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacons_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csaspdec_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Creassume_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextype_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextvar_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextcode_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdatdecs_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cexndecs_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdcstdecs_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cimpdec_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cfundecs_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_rec_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvardecs_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cprvardecs_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaload_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaloadloc_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdynload_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cerrdec_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALderef_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_lin_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_mut_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALarrsub_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALviewat_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALnone_5) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2PITM_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMvar_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcon_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMe1xp_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMsymdef_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacdef_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacvar_6.tag = 6 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_lvar_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_vbox_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINdone_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGsta_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGdyn_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKlincon_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATomit_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tint_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tintrep_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tbool_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tchar_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tfloat_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tstring_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Ti0nt_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tf0loat_10.tag = 10 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlst_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trec_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trefas_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Texist_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvbox_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tann_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18.tag = 18 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Terrpat_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABlab_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABind_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecst_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eintrep_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ebool_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11.tag = 11 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop2_13.tag = 13 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecstsp_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etyrep_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eliteral_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextval_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextfcall_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextmcall_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Econ_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efoldat_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efreeat_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etmpid_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elet_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhere_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esifhead_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifcasehd_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Escasehead_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elst_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38.tag = 38 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39.tag = 39 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40.tag = 40 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eptrof_41.tag = 41 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eviewat_42.tag = 42 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43.tag = 43 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44.tag = 44 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Exchng_45.tag = 45 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrsub_46.tag = 46 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrpsz_47.tag = 47 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrinit_48.tag = 48 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eraise_49.tag = 49 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eeffmask_50.tag = 50 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evararg_51.tag = 51 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evcopyenv_52.tag = 52 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eshowtype_53.tag = 53 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etempenver_54.tag = 54 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eexist_55.tag = 55 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56.tag = 56 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elaminit_dyn_57.tag = 57 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58.tag = 58 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59.tag = 59 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efix_60.tag = 60 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Edelay_61.tag = 61 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eldelay_62.tag = 62 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efor_63.tag = 63 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhile_64.tag = 64 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eloopexn_65.tag = 65 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etrywith_66.tag = 66 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67.tag = 67 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68.tag = 68 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69.tag = 69 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70.tag = 70 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacsyn_71.tag = 71 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacfun_72.tag = 72 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolassert_73.tag = 73 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolverify_74.tag = 74 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eerrexp_75.tag = 75 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymintr_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymelim_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Coverload_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cpragma_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ccodegen_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacsts_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacons_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csaspdec_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Creassume_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextype_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextvar_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextcode_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdatdecs_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cexndecs_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdcstdecs_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cimpdec_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cfundecs_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_rec_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvardecs_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cprvardecs_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaload_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaloadloc_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdynload_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27.tag = 27 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cerrdec_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALderef_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_lin_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_mut_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALarrsub_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALviewat_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALnone_5.tag = 5 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp2_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_error_dats.c0000644000175000017500000006343313431250607023161 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* 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_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type the_trans3errlst_get_1 () ; static ats_int_type loop_5 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_7 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp3) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp2 ; */ tmp2 = arg0 ; tmp1 = atspre_ref_make_elt_tsz ((&tmp2), sizeof(ats_ptr_type)) ; return (tmp1) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_error.dats: 1706(line=60, offs=1) -- 1886(line=69, offs=4) */ ATSstaticdec() ats_ptr_type the_trans3errlst_get_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_the_trans3errlst_get_1: tmp5 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp6 = ats_ptrget_mac(ats_ptr_type, tmp5) ; tmp7 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp5) = tmp7 ; tmp4 = tmp6 ; return (tmp4) ; } /* end of [the_trans3errlst_get_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_error.dats: 1976(line=75, offs=3) -- 2090(line=78, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add: tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp11 = ats_ptrget_mac(ats_ptr_type, tmp9) ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_1, tmp11) ; ats_ptrget_mac(ats_ptr_type, tmp9) = tmp10 ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_5 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp17 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp18 = ats_ptrget_mac(ats_ptr_type, tmp17) ; tmp19 = atspre_iadd (arg1, 1) ; arg0 = tmp18 ; arg1 = tmp19 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp16 = arg1 ; break ; } while (0) ; return (tmp16) ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp15) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp15 = loop_5 (arg0, 0) ; return (tmp15) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_7 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab_loop_7: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp23 ; goto __ats_lab_loop_7 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp22) */ ; } /* end of [loop_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp21 = */ loop_7 (arg0) ; return /* (tmp21) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_error.dats: 2161(line=81, offs=27) -- 2601(line=101, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_finalize () { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_finalize: tmp13 = the_trans3errlst_get_1 () ; tmp14 = list_vt_length_01501_ats_ptr_type (tmp13) ; /* tmp20 = */ list_vt_free_01499_ats_ptr_type (tmp13) ; tmp25 = atspre_igt (tmp14, 0) ; if (tmp25) { /* tmp24 = */ atspre_fprintf_exn (stderr, ATSstrcst("patsopt(TRANS3): there are [%i] errors in total.\n"), tmp14) ; } else { /* empty */ } /* end of [if] */ tmp26 = atspre_igt (tmp14, 0) ; if (tmp26) { tmp27 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN) ; /* tmp12 = */ ats_raise_exn (tmp27) ; } else { /* empty */ } /* end of [if] */ return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_finalize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp3, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp3 = (ats_sum_ptr_type)0 ; statmp0 = ref_01088_ats_ptr_type (statmp3) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_error_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_taggen_sats.c0000644000175000017500000000242713431250607022016 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_taggen_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_ptrof_dats.c0000644000175000017500000016404013431250607023156 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_d3lab_loc ; ats_ptr_type atslab_d3lab_node ; ats_ptr_type atslab_d3lab_overld ; ats_ptr_type atslab_d3lab_overld_app ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_8 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eptrof_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_nonmut_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_nonlval_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_nonderef_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_pfobj_search_none_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofsel) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__s2addr_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_varsel) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_ptrsel) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) ; static ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlabs_3 (ats_ptr_type arg0) ; static ats_void_type loop_6 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type auxmain_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type auxerr_nonptr_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_nonmut_9 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_nonlval_10 (ats_ptr_type arg0) ; static ats_ptr_type aux_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 1553(line=43, offs=28) -- 1583(line=43, offs=58) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_ptrof")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; __ats_lab_prerr_error3_loc_02051_: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp3 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp3) */ ; } /* end of [prerr_error3_loc_02051_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 2007(line=71, offs=1) -- 2388(line=83, offs=4) */ ATSstaticdec() ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_auxerr_pfobj_1: /* tmp2 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp5 = */ atspre_prerr_string (ATSstrcst(": [addr@] operation cannot be performed")) ; /* tmp6 = */ atspre_prerr_string (ATSstrcst(": the proof search for view located at [")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp8 = */ atspre_prerr_string (ATSstrcst("] failed to turn up a result.")) ; /* tmp9 = */ atspre_prerr_newline () ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp10)->tag = 54 ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_1, arg1) ; /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp10) ; return /* (tmp1) */ ; } /* end of [auxerr_pfobj_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 2419(line=85, offs=5) -- 2923(line=105, offs=2) */ ATSstaticdec() ats_ptr_type auxlabs_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab_auxlabs_3: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp14 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp12), atslab_d3lab_node) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp14)->tag != 0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_5, tmp14, atslab_0) ; tmp16 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp16)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp16, atslab_0, tmp15) ; tmp17 = auxlabs_3 (tmp13) ; tmp11 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp11, atslab_0, tmp16) ; ats_selptrset_mac(anairiats_sum_3, tmp11, atslab_1, tmp17) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)tmp14)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_5, tmp14, atslab_0) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_type (tmp18) ; tmp20 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp20)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp20, atslab_0, tmp19) ; tmp21 = auxlabs_3 (tmp13) ; tmp11 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp11, atslab_0, tmp20) ; ats_selptrset_mac(anairiats_sum_3, tmp11, atslab_1, tmp21) ; break ; } while (0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp11 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp11) ; } /* end of [auxlabs_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_6 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_loop_6: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp34 ; goto __ats_lab_loop_6 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: break ; } while (0) ; return /* (tmp33) */ ; } /* end of [loop_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp32) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp32 = */ loop_6 (arg0) ; return /* (tmp32) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 2949(line=107, offs=5) -- 3524(line=142, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; ATSlocal (anairiats_rec_1, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab_auxmain_4: // tmp23 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_2) ; tmp24 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_3) ; ATS_FREE(arg1) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp23 ; /* ats_int_type tmp25 ; */ tmp25 = 0 ; /* ats_int_type tmp26 ; */ tmp26 = 0 ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg0, tmp23, arg2, (&tmp25), (&tmp26)) ; tmp28 = ats_select_mac(tmp27, atslab_0) ; tmp29 = ats_select_mac(tmp27, atslab_1) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp28) ; /* tmp31 = */ list_vt_free_01499_ats_ptr_type (tmp29) ; tmp35 = auxlabs_3 (arg2) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj (tmp24, tmp23, tmp35) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type (tmp36) ; return (tmp22) ; } /* end of [auxmain_4] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 3593(line=148, offs=1) -- 3941(line=167, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__s2addr_ptrof (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; // ATSlocal_void (tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__s2addr_ptrof: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview (arg1) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp38 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_7, tmp38, atslab_0) ; ATS_FREE(tmp38) ; tmp37 = auxmain_4 (arg0, tmp39, arg2, arg3) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp38 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp40 ; /* tmp41 = */ auxerr_pfobj_1 (arg0, arg1) ; tmp37 = tmp40 ; break ; } while (0) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__s2addr_ptrof] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 4023(line=176, offs=1) -- 4272(line=185, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonptr_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab_auxerr_nonptr_8: /* tmp43 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp44 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression is expected to be a pointer.")) ; /* tmp45 = */ atspre_prerr_newline () ; tmp46 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp46)->tag = 53 ; ats_selptrset_mac(anairiats_sum_5, tmp46, atslab_0, arg1) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp46) ; return /* (tmp42) */ ; } /* end of [auxerr_nonptr_8] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 4304(line=188, offs=1) -- 4629(line=199, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonmut_9 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab_auxerr_nonmut_9: /* tmp48 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp49 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp51 = */ atspre_prerr_string (ATSstrcst("] is not mutable and thus [addr@] cannot be applied.")) ; /* tmp52 = */ atspre_prerr_newline () ; tmp53 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp53)->tag = 49 ; ats_selptrset_mac(anairiats_sum_2, tmp53, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp53, atslab_1, arg1) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp53) ; return /* (tmp47) */ ; } /* end of [auxerr_nonmut_9] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 4661(line=202, offs=1) -- 4990(line=212, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonlval_10 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab_auxerr_nonlval_10: tmp55 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_d2exp_loc) ; /* tmp56 = */ prerr_error3_loc_02051_ (tmp55) ; /* tmp57 = */ atspre_prerr_string (ATSstrcst(": [addr@] operation cannot be performed")) ; /* tmp58 = */ atspre_prerr_string (ATSstrcst(": a left-value is required but a non-left-value is given.")) ; /* tmp59 = */ atspre_prerr_newline () ; tmp60 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp60)->tag = 51 ; ats_selptrset_mac(anairiats_sum_5, tmp60, atslab_0, arg0) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp60) ; return /* (tmp54) */ ; } /* end of [auxerr_nonlval_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 5262(line=230, offs=1) -- 6450(line=288, offs=4) */ ATSstaticdec() ats_ptr_type aux_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; __ats_lab_aux_12: tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_d2exp_loc) ; tmp64 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_d2exp_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp64)->tag != 1) { goto __ats_lab_11_0 ; } __ats_lab_8_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_5, tmp64, atslab_0) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp65) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (tmp66 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (tmp63, tmp65) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofvar (tmp63, tmp67, tmp65) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (tmp66 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: /* tmp68 = */ auxerr_nonmut_9 (tmp63, tmp65) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp63) ; break ; } while (0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp64)->tag != 43) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_2, tmp64, atslab_1) ; tmp70 = (ats_sum_ptr_type)0 ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_ptrsel (tmp63, tmp69, tmp70) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp64)->tag != 40) { goto __ats_lab_16_0 ; } __ats_lab_12_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_2, tmp64, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_2, tmp64, atslab_1) ; tmp73 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp71), atslab_d2exp_node) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp73)->tag != 1) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_5, tmp73, atslab_0) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_varsel (tmp63, tmp74, tmp72) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp73)->tag != 43) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_2, tmp73, atslab_1) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_ptrsel (tmp63, tmp75, tmp72) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: /* tmp76 = */ auxerr_nonlval_10 (arg0) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp63) ; break ; } while (0) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: /* tmp77 = */ auxerr_nonlval_10 (arg0) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp63) ; break ; } while (0) ; return (tmp62) ; } /* end of [aux_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 5242(line=227, offs=3) -- 6534(line=294, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_ptrof (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_ptrof: tmp78 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp78)->tag != 41) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 6474(line=290, offs=5) -- 6506(line=290, offs=37)") ; } tmp79 = ats_caselptrlab_mac(anairiats_sum_5, tmp78, atslab_0) ; tmp61 = aux_12 (arg0, tmp79) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_ptrof] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 6622(line=300, offs=3) -- 7252(line=326, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_varsel (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; // ATSlocal_void (tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_varsel: tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (arg1) ; if (tmp81) { tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg2) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg1) ; if (tmp83 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 6746(line=306, offs=7) -- 6783(line=306, offs=44)") ; } tmp84 = ats_caselptrlab_mac(anairiats_sum_7, tmp83, atslab_0) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofvar (arg0, tmp84, arg1) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (tmp82 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (arg1) ; if (tmp86 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 6885(line=312, offs=9) -- 6918(line=312, offs=42)") ; } tmp87 = ats_caselptrlab_mac(anairiats_sum_7, tmp86, atslab_0) ; /* ats_ptr_type tmp88 ; */ tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__s2addr_ptrof (arg0, tmp87, tmp82, (&tmp88)) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofsel (arg0, tmp89, tmp85, tmp88, tmp82) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (tmp82 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp80 = tmp85 ; break ; } while (0) ; } else { /* tmp90 = */ auxerr_nonmut_9 (arg0, arg1) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (arg0) ; } /* end of [if] */ return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_varsel] */ /* // /tmp/ATS-Postiats/src/pats_trans3_ptrof.dats: 7347(line=332, offs=3) -- 8147(line=361, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_ptrsel (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; // ATSlocal_void (tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_ptrsel: tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg1) ; /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp92) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg2) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp92) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp95) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (tmp96) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp97 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_19_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_7, tmp97, atslab_0) ; ATS_FREE(tmp97) ; /* ats_ptr_type tmp99 ; */ do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp94 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__s2addr_ptrof (arg0, tmp98, tmp94, (&tmp99)) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp94 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp99 = tmp101 ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type (tmp98) ; break ; } while (0) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofsel (arg0, tmp100, tmp92, tmp99, tmp94) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp97 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: /* tmp102 = */ auxerr_nonptr_8 (arg0, tmp92) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (arg0) ; break ; } while (0) ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__d2exp_trup_ptrof_ptrsel] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_ptrof_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_base_dats.c0000644000175000017500000015137113431250607023172 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AT_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BANG_3) ; 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_COLON_6) ; 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_EQ_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LT_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GT_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTLT_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSGT_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLTGT_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TILDE_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FUN_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAL_80) ; 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_dlr_147) ; 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_STRING_154) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LPAREN_157) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0nt_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0tring_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0dext_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_dlr_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_l0ab_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0rec_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_colonwith_59) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_is_null) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0de) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0nt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_cst) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_var_fun) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_emp) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de_adj) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0nt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0de) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0nt) (ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun) (ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0nt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftag) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst) (ats_ref_type, ats_int_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type p_p0rec_tok_7 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_effi0de_9 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 1859(line=66, offs=8) -- 2222(line=84, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0nt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_int_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0nt: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1), atslab_token_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1), atslab_token_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp3)->tag != 150) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp0 = tmp1 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp5 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp5 ; tmp7 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0nt_38) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp2, tmp7) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 2286(line=90, offs=3) -- 2658(line=108, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_int_type, tmp13) ; // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp9), atslab_token_loc) ; tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp9), atslab_token_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp11)->tag != 154) { goto __ats_lab_3_0 ; } __ats_lab_2_1: /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp8 = tmp9 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp13 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp13 ; tmp15 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0tring_41) ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp10, tmp15) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 2886(line=130, offs=8) -- 4169(line=187, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_int_type, tmp34) ; // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp18 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp17), atslab_token_loc) ; tmp19 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp17), atslab_token_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp19)->tag != 143) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_2, tmp19, atslab_0) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, tmp20) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp19)->tag != 144) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_2, tmp19, atslab_0) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, tmp22) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp19)->tag != 13) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst("=")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp19)->tag != 22) { goto __ats_lab_8_0 ; } __ats_lab_7_1: /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst(">")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp19)->tag != 21) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst("<")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp19)->tag != 1) { goto __ats_lab_10_0 ; } __ats_lab_9_1: /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst("@")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp19)->tag != 5) { goto __ats_lab_11_0 ; } __ats_lab_10_1: /* tmp28 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst("\\")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp19)->tag != 3) { goto __ats_lab_12_0 ; } __ats_lab_11_1: /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst("!")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp19)->tag != 30) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst("~")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp19)->tag != 27) { goto __ats_lab_14_0 ; } __ats_lab_13_1: /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst("->")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp19)->tag != 29) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst("-<>")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp19)->tag != 23) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp18, ATSstrcst("><")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp34 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp34 ; tmp36 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_42) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp18, tmp36) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 4260(line=196, offs=3) -- 4355(line=200, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0deseq1 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0deseq1: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de) ; tmp37 = ats_castfn_mac(ats_ptr_type, tmp38) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0deseq1] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 4422(line=206, offs=3) -- 4824(line=224, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0dext (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; ATSlocal (ats_int_type, tmp45) ; // ATSlocal_void (tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0dext: tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp40), atslab_token_loc) ; tmp42 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp40), atslab_token_node) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp42)->tag != 149) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_2, tmp42, atslab_0) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp41, tmp43) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp45 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp45 ; tmp47 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0dext_43) ; /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp41, tmp47) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0dext] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 4891(line=230, offs=3) -- 5295(line=248, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de_dlr (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_int_type, tmp54) ; // ATSlocal_void (tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de_dlr: tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp50 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp49), atslab_token_loc) ; tmp51 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp49), atslab_token_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp51)->tag != 147) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_2, tmp51, atslab_0) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp50, tmp52) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp54 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp54 ; tmp56 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_dlr_44) ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp50, tmp56) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de_dlr] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 5452(line=262, offs=3) -- 5947(line=286, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_bool_type, tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_int_type, tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab: /* ats_ptr_type tmp58 ; */ tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp60 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp59), atslab_token_loc) ; tmp61 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp59), atslab_token_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de, (&tmp58)) ; if (!tmp62) { goto __ats_lab_22_0 ; } tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0de (ats_castfn_mac(ats_ptr_type, tmp58)) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp61)->tag != 150) { goto __ats_lab_23_0 ; } __ats_lab_22_1: /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0nt (tmp59) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp64 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp64 ; tmp66 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_l0ab_56) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp60, tmp66) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 6124(line=299, offs=1) -- 7214(line=345, offs=4) */ ATSstaticdec() ats_ptr_type p_p0rec_tok_7 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_bool_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_bool_type, tmp83) ; __ats_lab_p_p0rec_tok_7: /* ats_ptr_type tmp68 ; */ tmp69 = ats_ptrget_mac(ats_int_type, arg2) ; tmp70 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_node) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp70)->tag != 150) { goto __ats_lab_25_0 ; } __ats_lab_24_1: /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0nt (arg3) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp70)->tag != 157) { goto __ats_lab_28_0 ; } __ats_lab_25_1: /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de (arg0, 0, arg2) ; tmp74 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp69) ; if (tmp74) { tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp75), atslab_token_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de, (&tmp68)) ; if (!tmp77) { goto __ats_lab_27_1 ; } tmp78 = ats_castfn_mac(ats_ptr_type, tmp68) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0nt (arg0, 0, arg2) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp69) ; tmp81 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp69) ; if (tmp81) { tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de_adj (tmp73, tmp78, tmp79) ; } else { tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp83 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp69) ; if (tmp83) { tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de (tmp73) ; } else { tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; } while (0) ; } else { tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_emp () ; break ; } while (0) ; return (tmp67) ; } /* end of [p_p0rec_tok_7] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 7260(line=349, offs=3) -- 7329(line=350, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0rec (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0rec: tmp85 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0rec_57) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_p0rec_tok_7, tmp85) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0rec] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 7376(line=356, offs=1) -- 7744(line=373, offs=4) */ ATSstaticdec() ats_ptr_type p_effi0de_9 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; // ATSlocal_void (tmp91) ; ATSlocal (ats_int_type, tmp92) ; __ats_lab_p_effi0de_9: tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp88 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp87), atslab_token_loc) ; tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp87), atslab_token_node) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp89)->tag != 143) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_2, tmp89, atslab_0) ; /* tmp91 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp88, tmp90) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp92 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp92 ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp86) ; } /* end of [p_effi0de_9] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 7879(line=385, offs=3) -- 8843(line=432, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftag (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_int_type, tmp94) ; ATSlocal (ats_uint_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; // ATSlocal_void (tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_bool_type, tmp105) ; // ATSlocal_void (tmp106) ; ATSlocal (ats_bool_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftag: tmp94 = ats_ptrget_mac(ats_int_type, arg2) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp97 ; */ tmp98 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp96), atslab_token_node) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp98)->tag != 52) { goto __ats_lab_32_0 ; } __ats_lab_31_1: /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_var_fun (tmp96) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp98)->tag != 3) { goto __ats_lab_33_0 ; } __ats_lab_32_1: /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp101 = p_effi0de_9 (arg0, 0, arg2) ; tmp102 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp94) ; if (tmp102) { tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_cst (0, tmp101) ; } else { tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp95) ; } /* end of [if] */ break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp98)->tag != 30) { goto __ats_lab_34_0 ; } __ats_lab_33_1: /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp104 = p_effi0de_9 (arg0, 0, arg2) ; tmp105 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp94) ; if (tmp105) { tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_cst (0, tmp104) ; } else { tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp95) ; } /* end of [if] */ break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp98)->tag != 150) { goto __ats_lab_35_0 ; } __ats_lab_34_1: /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0nt (tmp96) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_effi0de_9, (&tmp97)) ; if (!tmp107) { goto __ats_lab_36_1 ; } tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0de (ats_castfn_mac(ats_ptr_type, tmp97)) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp108 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp108 ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftag] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 8892(line=436, offs=3) -- 8964(line=437, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst: tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftag) ; tmp109 = ats_castfn_mac(ats_ptr_type, tmp110) ; return (tmp109) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 9104(line=450, offs=3) -- 9908(line=486, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colonwith (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; ATSlocal (ats_uint_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_bool_type, tmp121) ; ATSlocal (ats_int_type, tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colonwith: tmp112 = ats_ptrget_mac(ats_int_type, arg2) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp114), atslab_token_loc) ; tmp116 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp114), atslab_token_node) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp116)->tag != 6) { goto __ats_lab_38_0 ; } __ats_lab_37_1: /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp111 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp116)->tag != 7) { goto __ats_lab_39_0 ; } __ats_lab_38_1: /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst (arg0, 0, arg2) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT (arg0, 0, arg2) ; tmp121 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp112) ; if (tmp121) { tmp111 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp111, atslab_0, tmp119) ; } else { tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp113) ; } /* end of [if] */ break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp122 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp122 ; tmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_colonwith_59) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp115, tmp124) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colonwith] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 9978(line=492, offs=3) -- 10298(line=509, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dcstkind (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; ATSlocal (ats_int_type, tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dcstkind: tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp126), atslab_token_node) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp127)->tag != 52) { goto __ats_lab_41_0 ; } __ats_lab_40_1: /* tmp128 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp125 = tmp126 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp127)->tag != 80) { goto __ats_lab_42_0 ; } __ats_lab_41_1: /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp125 = tmp126 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp130 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp130 ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dcstkind] */ /* // /tmp/ATS-Postiats/src/pats_parsing_base.dats: 10420(line=519, offs=3) -- 10817(line=537, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_extnamopt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_uint_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_bool_type, tmp137) ; // ATSlocal_void (tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_extnamopt: tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp134 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp133), atslab_token_node) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp134)->tag != 13) { goto __ats_lab_44_0 ; } __ats_lab_43_1: /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring (arg0, 0, arg2) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_is_null (tmp136) ; if (tmp137) { /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (arg0, tmp132) ; tmp131 = (ats_sum_ptr_type)0 ; } else { tmp131 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp131, atslab_0, tmp136) ; } /* end of [if] */ break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: tmp131 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp131) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_extnamopt] */ /* 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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_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_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_base_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_syntax_dats.c0000644000175000017500000170317213431250607022066 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #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 "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_i0de_loc ; ats_ptr_type atslab_i0de_sym ; } anairiats_rec_3 ; typedef struct { ats_ptr_type atslab_e0fftag_loc ; ats_ptr_type atslab_e0fftag_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_e0xp_loc ; ats_ptr_type atslab_e0xp_node ; } anairiats_rec_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_l0ab_loc ; ats_ptr_type atslab_l0ab_lab ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_s0rtq_loc ; ats_ptr_type atslab_s0rtq_node ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_s0taq_loc ; ats_ptr_type atslab_s0taq_node ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_sqi0de_loc ; ats_ptr_type atslab_sqi0de_qua ; ats_ptr_type atslab_sqi0de_sym ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_d0ynq_loc ; ats_ptr_type atslab_d0ynq_node ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_dqi0de_loc ; ats_ptr_type atslab_dqi0de_qua ; ats_ptr_type atslab_dqi0de_sym ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_s0rt_loc ; ats_ptr_type atslab_s0rt_node ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_d0atsrtcon_loc ; ats_ptr_type atslab_d0atsrtcon_sym ; ats_ptr_type atslab_d0atsrtcon_arg ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_d0atsrtdec_loc ; ats_ptr_type atslab_d0atsrtdec_sym ; ats_ptr_type atslab_d0atsrtdec_con ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_s0arg_loc ; ats_ptr_type atslab_s0arg_sym ; ats_ptr_type atslab_s0arg_srt ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_s0marg_loc ; ats_ptr_type atslab_s0marg_arg ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_a0srt_loc ; ats_ptr_type atslab_a0srt_sym ; ats_ptr_type atslab_a0srt_srt ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_a0msrt_loc ; ats_ptr_type atslab_a0msrt_arg ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_s0arrdim_loc ; ats_ptr_type atslab_s0arrdim_dim ; } anairiats_rec_29 ; typedef struct { ats_ptr_type atslab_s0rtext_loc ; ats_ptr_type atslab_s0rtext_node ; } anairiats_rec_30 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_31 ; typedef struct { ats_ptr_type atslab_s0qua_loc ; ats_ptr_type atslab_s0qua_node ; } anairiats_rec_32 ; typedef struct { ats_ptr_type atslab_s0exp_loc ; ats_ptr_type atslab_s0exp_node ; } anairiats_rec_33 ; typedef struct { ats_ptr_type atslab_q0marg_loc ; ats_ptr_type atslab_q0marg_arg ; } anairiats_rec_34 ; typedef struct { ats_ptr_type atslab_a0typ_loc ; ats_ptr_type atslab_a0typ_sym ; ats_ptr_type atslab_a0typ_typ ; } anairiats_rec_35 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_36 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_37 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_38 ; typedef struct { ats_ptr_type atslab_m0acarg_loc ; ats_ptr_type atslab_m0acarg_node ; } anairiats_rec_39 ; typedef struct { ats_ptr_type atslab_d0cstarg_loc ; ats_ptr_type atslab_d0cstarg_node ; } anairiats_rec_40 ; typedef struct { ats_ptr_type atslab_s0rtdef_loc ; ats_ptr_type atslab_s0rtdef_sym ; ats_ptr_type atslab_s0rtdef_def ; } anairiats_rec_41 ; typedef struct { ats_ptr_type atslab_s0tacon_loc ; ats_ptr_type atslab_s0tacon_sym ; ats_ptr_type atslab_s0tacon_arg ; ats_ptr_type atslab_s0tacon_def ; } anairiats_rec_42 ; typedef struct { ats_ptr_type atslab_s0tacst_loc ; ats_ptr_type atslab_s0tacst_sym ; ats_ptr_type atslab_s0tacst_arg ; ats_ptr_type atslab_s0tacst_res ; ats_ptr_type atslab_s0tacst_extopt ; } anairiats_rec_43 ; typedef struct { ats_ptr_type atslab_t0kindef_loc ; ats_ptr_type atslab_t0kindef_sym ; ats_ptr_type atslab_t0kindef_loc_id ; ats_ptr_type atslab_t0kindef_def ; } anairiats_rec_44 ; typedef struct { ats_ptr_type atslab_s0expdef_loc ; ats_ptr_type atslab_s0expdef_sym ; ats_ptr_type atslab_s0expdef_loc_id ; ats_ptr_type atslab_s0expdef_arg ; ats_ptr_type atslab_s0expdef_res ; ats_ptr_type atslab_s0expdef_def ; } anairiats_rec_45 ; typedef struct { ats_ptr_type atslab_s0aspdec_loc ; ats_ptr_type atslab_s0aspdec_qid ; ats_ptr_type atslab_s0aspdec_arg ; ats_ptr_type atslab_s0aspdec_res ; ats_ptr_type atslab_s0aspdec_def ; } anairiats_rec_46 ; typedef struct { ats_ptr_type atslab_e0xndec_loc ; ats_ptr_type atslab_e0xndec_fil ; ats_ptr_type atslab_e0xndec_sym ; ats_ptr_type atslab_e0xndec_qua ; ats_ptr_type atslab_e0xndec_arg ; } anairiats_rec_47 ; typedef struct { ats_ptr_type atslab_d0atcon_loc ; ats_ptr_type atslab_d0atcon_sym ; ats_ptr_type atslab_d0atcon_qua ; ats_ptr_type atslab_d0atcon_arg ; ats_ptr_type atslab_d0atcon_ind ; } anairiats_rec_48 ; typedef struct { ats_ptr_type atslab_d0atdec_loc ; ats_ptr_type atslab_d0atdec_loc_hd ; ats_ptr_type atslab_d0atdec_fil ; ats_ptr_type atslab_d0atdec_sym ; ats_ptr_type atslab_d0atdec_arg ; ats_ptr_type atslab_d0atdec_con ; } anairiats_rec_49 ; typedef struct { ats_ptr_type atslab_d0cstdec_loc ; ats_ptr_type atslab_d0cstdec_fil ; ats_ptr_type atslab_d0cstdec_sym ; ats_ptr_type atslab_d0cstdec_arg ; ats_ptr_type atslab_d0cstdec_eff ; ats_ptr_type atslab_d0cstdec_res ; ats_ptr_type atslab_d0cstdec_extopt ; } anairiats_rec_50 ; typedef struct { ats_ptr_type atslab_p0at_loc ; ats_ptr_type atslab_p0at_node ; } anairiats_rec_51 ; typedef struct { ats_ptr_type atslab_labp0at_loc ; ats_ptr_type atslab_labp0at_node ; } anairiats_rec_52 ; typedef struct { ats_ptr_type atslab_t0mpmarg_loc ; ats_ptr_type atslab_t0mpmarg_arg ; } anairiats_rec_53 ; typedef struct { ats_ptr_type atslab_impqi0de_loc ; ats_ptr_type atslab_impqi0de_qua ; ats_ptr_type atslab_impqi0de_sym ; ats_ptr_type atslab_impqi0de_arg ; } anairiats_rec_54 ; typedef struct { ats_ptr_type atslab_f0arg_loc ; ats_ptr_type atslab_f0arg_node ; } anairiats_rec_55 ; typedef struct { ats_ptr_type atslab_s0elop_loc ; ats_int_type atslab_s0elop_knd ; } anairiats_rec_56 ; typedef struct { ats_ptr_type atslab_i0nvarg_loc ; ats_ptr_type atslab_i0nvarg_sym ; ats_ptr_type atslab_i0nvarg_typ ; } anairiats_rec_57 ; typedef struct { ats_ptr_type atslab_i0nvresstate_loc ; ats_ptr_type atslab_i0nvresstate_qua ; ats_ptr_type atslab_i0nvresstate_arg ; } anairiats_rec_58 ; typedef struct { ats_ptr_type atslab_loopi0nv_qua ; ats_ptr_type atslab_loopi0nv_met ; ats_ptr_type atslab_loopi0nv_arg ; ats_ptr_type atslab_loopi0nv_res ; } anairiats_rec_59 ; typedef struct { ats_ptr_type atslab_ifhead_tok ; ats_ptr_type atslab_ifhead_inv ; } anairiats_rec_60 ; typedef struct { ats_ptr_type atslab_sifhead_tok ; ats_ptr_type atslab_sifhead_inv ; } anairiats_rec_61 ; typedef struct { ats_ptr_type atslab_casehead_tok ; ats_ptr_type atslab_casehead_inv ; } anairiats_rec_62 ; typedef struct { ats_ptr_type atslab_scasehead_tok ; ats_ptr_type atslab_scasehead_inv ; } anairiats_rec_63 ; typedef struct { ats_ptr_type atslab_loophead_tok ; ats_ptr_type atslab_loophead_inv ; } anairiats_rec_64 ; typedef struct { ats_ptr_type atslab_tryhead_tok ; ats_ptr_type atslab_tryhead_inv ; } anairiats_rec_65 ; typedef struct { ats_ptr_type atslab_d0exp_loc ; ats_ptr_type atslab_d0exp_node ; } anairiats_rec_66 ; typedef struct { ats_ptr_type atslab_i0fcl_loc ; ats_ptr_type atslab_i0fcl_test ; ats_ptr_type atslab_i0fcl_body ; } anairiats_rec_67 ; typedef struct { ats_ptr_type atslab_c0lau_loc ; ats_ptr_type atslab_c0lau_pat ; ats_int_type atslab_c0lau_seq ; ats_int_type atslab_c0lau_neg ; ats_ptr_type atslab_c0lau_body ; } anairiats_rec_68 ; typedef struct { ats_ptr_type atslab_sc0lau_loc ; ats_ptr_type atslab_sc0lau_pat ; ats_ptr_type atslab_sc0lau_body ; } anairiats_rec_69 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_70 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_71 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_72 ; typedef struct { ats_ptr_type atslab_d0arrind_loc ; ats_ptr_type atslab_d0arrind_ind ; } anairiats_rec_73 ; typedef struct { ats_ptr_type atslab_itp_init ; ats_ptr_type atslab_itp_test ; ats_ptr_type atslab_itp_post ; } anairiats_rec_74 ; typedef struct { ats_ptr_type atslab_gm0at_loc ; ats_ptr_type atslab_gm0at_exp ; ats_ptr_type atslab_gm0at_pat ; } anairiats_rec_75 ; typedef struct { ats_ptr_type atslab_guap0at_loc ; ats_ptr_type atslab_guap0at_pat ; ats_ptr_type atslab_guap0at_gua ; } anairiats_rec_76 ; typedef struct { ats_ptr_type atslab_sp0at_loc ; ats_ptr_type atslab_sp0at_node ; } anairiats_rec_77 ; typedef struct { ats_ptr_type atslab_m0acdef_loc ; ats_ptr_type atslab_m0acdef_sym ; ats_ptr_type atslab_m0acdef_arg ; ats_ptr_type atslab_m0acdef_def ; } anairiats_rec_78 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_79 ; typedef struct { ats_ptr_type atslab_v0aldec_loc ; ats_ptr_type atslab_v0aldec_pat ; ats_ptr_type atslab_v0aldec_def ; ats_ptr_type atslab_v0aldec_ann ; } anairiats_rec_80 ; typedef struct { ats_ptr_type atslab_f0undec_loc ; ats_ptr_type atslab_f0undec_sym ; ats_ptr_type atslab_f0undec_sym_loc ; ats_ptr_type atslab_f0undec_arg ; ats_ptr_type atslab_f0undec_eff ; ats_ptr_type atslab_f0undec_res ; ats_ptr_type atslab_f0undec_def ; ats_ptr_type atslab_f0undec_ann ; } anairiats_rec_81 ; typedef struct { ats_ptr_type atslab_v0ardec_loc ; ats_int_type atslab_v0ardec_knd ; ats_ptr_type atslab_v0ardec_sym ; ats_ptr_type atslab_v0ardec_sym_loc ; ats_ptr_type atslab_v0ardec_pfat ; ats_ptr_type atslab_v0ardec_type ; ats_ptr_type atslab_v0ardec_init ; } anairiats_rec_82 ; typedef struct { ats_ptr_type atslab_i0mpdec_loc ; ats_ptr_type atslab_i0mpdec_qid ; ats_ptr_type atslab_i0mpdec_arg ; ats_ptr_type atslab_i0mpdec_res ; ats_ptr_type atslab_i0mpdec_def ; } anairiats_rec_83 ; typedef struct { ats_ptr_type atslab_d0ecl_loc ; ats_ptr_type atslab_d0ecl_node ; } anairiats_rec_84 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_85 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_86 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_87 ; typedef struct { ats_ptr_type atslab_guad0ecl_loc ; ats_ptr_type atslab_guad0ecl_node ; } anairiats_rec_88 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOClft_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCrgt_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infix_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixl_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_prefix_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_postfix_4) ; 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_EXTYPE_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTVAR_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIXITY_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPLEMENT_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONFIX_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMELIM_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMINTR_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPE_78) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPEDEF_79) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAR_81) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIF_121) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFDEF_122) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFNDEF_123) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIF_125) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFDEF_126) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFNDEF_127) ; 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_INT_150) ; 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_EXTCODE_173) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDif_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifdef_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifndef_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKencode_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyloc_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGcst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGvar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGprf_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGlin_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGfun_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGclo_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQsymdot_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQsymdot_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQsymdot_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_adj_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYinf_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpre_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpos_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTerror_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprerr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTassert_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPchar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfloat_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstring_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstringid_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPapp_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfun_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPeval_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPlist_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPif_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DATSDEF_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTapp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTlist_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTtype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SP0Tcstr_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAvars_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsub_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Esqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eopid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Echar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Efloat_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Estring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextype_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextkind_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elam_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eimp_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist2_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyarr_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etytup_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_ext_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Euni_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eexi_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eann_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Ed2ctype_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__WITHT0YPEsome_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__WITHT0YPEnone_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0CSTARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0CSTARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__M0ACARGdyn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__M0ACARGsta_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_ext_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_mac_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_sta_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATnorm_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATomit_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tdqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Topid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tchar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfloat_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tstring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tapp_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlist_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlst_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Ttup_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trec_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfree_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tunfold_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Texist_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tsvararg_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trefas_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Terr_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__I0MPARG_sarglst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__I0MPARG_svararglst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGdyn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGsta1_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGsta2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGmet3_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eopid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eidext_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eint_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eempty_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecstsp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etyrep_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eliteral_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextval_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextfcall_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextmcall_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efoldat_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efreeat_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etmpid_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elet_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edeclseq_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhere_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eapp_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elist_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifhead_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esifhead_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifcasehd_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecasehead_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Escasehead_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etup_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Erec_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eseq_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrsub_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrpsz_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrinit_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eptrof_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eviewat_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_lab_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_ind_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eraise_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_arg_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evararg_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evcopyenv_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eshowtype_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etempenver_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esexparg_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eexist_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eann_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elam_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efix_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edelay_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efor_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhile_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eloopexn_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etrywith_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Emacsyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolassert_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolverify_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Cone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ctwo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ccons_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDfname_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDnspace_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDdeclist_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfixity_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cnonfix_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymintr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymelim_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpdef_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpundef_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpact_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cpragma_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ccodegen_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatsrts_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csrtdefs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacsts_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacons_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ctkindef_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csexpdefs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csaspdec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Creassume_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cexndecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatdecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cclassdec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextvar_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextcode_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdcstdecs_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cimpdec_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cmacdefs_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfundecs_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvaldecs_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvardecs_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cinclude_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaload_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadnm_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadloc_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Crequire_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdynload_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Clocal_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cguadecl_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_as_75) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_int_of_string) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, 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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LRBRACKETS) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_filename_origin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_leftmost) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma0_make) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma1_make) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma2_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_set) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_dotize) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_boxkind) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind) (ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nt2int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tkname) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_err) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_list) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma_process) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifunclosed) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__e0xp_funize) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, patsopt_string_test_prefix) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_s0taq_none) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none) ; /* internal function declarations */ static ats_bool_type name_is_prf_10 (ats_ptr_type arg0) ; static ats_bool_type name_is_lin0_11 (ats_ptr_type arg0) ; static ats_bool_type name_is_lin1_12 (ats_ptr_type arg0) ; static ats_bool_type name_is_fun0_13 (ats_ptr_type arg0) ; static ats_bool_type name_is_fun1_14 (ats_ptr_type arg0) ; static ats_bool_type name_is_linfun0_15 (ats_ptr_type arg0) ; static ats_bool_type name_is_linfun1_16 (ats_ptr_type arg0) ; static ats_bool_type name_is_clo0_17 (ats_ptr_type arg0) ; static ats_bool_type name_is_clo1_18 (ats_ptr_type arg0) ; static ats_bool_type name_is_linclo0_19 (ats_ptr_type arg0) ; static ats_bool_type name_is_linclo1_20 (ats_ptr_type arg0) ; static ats_bool_type name_is_cloptr0_21 (ats_ptr_type arg0) ; static ats_bool_type name_is_cloptr1_22 (ats_ptr_type arg0) ; static ats_bool_type name_is_lincloptr0_23 (ats_ptr_type arg0) ; static ats_bool_type name_is_lincloptr1_24 (ats_ptr_type arg0) ; static ats_bool_type name_is_cloref0_25 (ats_ptr_type arg0) ; static ats_bool_type name_is_cloref1_26 (ats_ptr_type arg0) ; static ats_ptr_type e0xp_fun_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type argtest_46 (ats_ptr_type arg0) ; static ats_ptr_type applst_47 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_49 (ats_ptr_type arg0) ; static ats_void_type loop_52 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_54 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type auxfun_48 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_ptr_type loop_79 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_95 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s0exp_lam_108 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type aux_110 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type aux_110_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_ptr_type aux_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_131 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_last_opt_01409_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type d0exp_macsyn_252 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_271 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type e0xp_is_location_285 (ats_ptr_type arg0) ; static ats_ptr_type e2s_286 (ats_ptr_type arg0) ; static ats_ptr_type locpragma_process0_287 (ats_ptr_type arg0) ; static ats_ptr_type locpragma_process1_288 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_304 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type loop_326 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type srpifkind_of_token_329 (ats_ptr_type arg0) ; static ats_ptr_type srpelifkind_of_token_330 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp194) ; ATSstatic (ats_ptr_type, statmp214) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 2071(line=75, offs=3) -- 2148(line=77, offs=54) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_isbox (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_isbox: tmp1 = atspre_gte_int_int (arg0, 0) ; if (tmp1) { tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_boxkind (arg0) ; if (tmp2) { tmp0 = 1 ; } else { tmp0 = 0 ; } /* end of [if] */ } else { tmp0 = 1 ; } /* end of [if] */ return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_isbox] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 2254(line=85, offs=3) -- 2331(line=87, offs=54) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_islin (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_islin: tmp4 = atspre_gte_int_int (arg0, 0) ; if (tmp4) { tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind (arg0) ; if (tmp5) { tmp3 = 1 ; } else { tmp3 = 0 ; } /* end of [if] */ } else { tmp3 = 0 ; } /* end of [if] */ return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_islin] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 2440(line=94, offs=17) -- 2462(line=94, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null: tmp6 = ats_castfn_mac(ats_ptr_type, atspre_null_ptr) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 2492(line=97, offs=16) -- 2527(line=97, offs=51) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_is_null (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_is_null: tmp7 = atspre_ptr_is_null (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_is_null] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 2558(line=99, offs=19) -- 2596(line=99, offs=57) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_isnot_null (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_isnot_null: tmp8 = atspre_ptr_isnot_null (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_isnot_null] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 2642(line=104, offs=10) -- 2727(line=109, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nt2int (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nt2int: tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp10)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 2661(line=106, offs=5) -- 2697(line=107, offs=31)") ; } tmp11 = ats_caselptrlab_mac(anairiats_sum_2, tmp10, atslab_1) ; tmp9 = atspre_int_of_string (tmp11) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nt2int] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 2797(line=114, offs=15) -- 2843(line=114, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym: tmp12 = ATS_MALLOC(sizeof(anairiats_rec_3)) ; ats_selptrset_mac(anairiats_rec_3, tmp12, atslab_i0de_loc, arg0) ; ats_selptrset_mac(anairiats_rec_3, tmp12, atslab_i0de_sym, arg1) ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 2897(line=120, offs=3) -- 2995(line=125, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (arg1) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (arg0, tmp14) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 3080(line=131, offs=3) -- 3208(line=135, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_lrbrackets (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_lrbrackets: tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp18 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp17, tmp18) ; tmp15 = ATS_MALLOC(sizeof(anairiats_rec_3)) ; ats_selptrset_mac(anairiats_rec_3, tmp15, atslab_i0de_loc, tmp16) ; ats_selptrset_mac(anairiats_rec_3, tmp15, atslab_i0de_sym, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LRBRACKETS) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_lrbrackets] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 3286(line=140, offs=13) -- 3422(line=144, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_cst (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_cst: tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp21) ; tmp22 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp23 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp23)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp23, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp23, atslab_1, tmp20) ; tmp19 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp19, atslab_e0fftag_loc, tmp22) ; ats_selptrset_mac(anairiats_rec_4, tmp19, atslab_e0fftag_node, tmp23) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_cst] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 3534(line=154, offs=4) -- 3583(line=155, offs=38) */ ATSstaticdec() ats_bool_type name_is_prf_10 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp24) ; __ats_lab_name_is_prf_10: tmp24 = atspre_eq_string_string (arg0, ATSstrcst("prf")) ; return (tmp24) ; } /* end of [name_is_prf_10] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 3612(line=158, offs=4) -- 3695(line=159, offs=47) */ ATSstaticdec() ats_bool_type name_is_lin0_11 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; __ats_lab_name_is_lin0_11: tmp26 = atspre_eq_string_string (arg0, ATSstrcst("lin")) ; if (tmp26) { tmp25 = ats_true_bool ; } else { tmp25 = atspre_eq_string_string (arg0, ATSstrcst("lin0")) ; } /* end of [if] */ return (tmp25) ; } /* end of [name_is_lin0_11] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 3699(line=160, offs=4) -- 3748(line=160, offs=53) */ ATSstaticdec() ats_bool_type name_is_lin1_12 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp27) ; __ats_lab_name_is_lin1_12: tmp27 = atspre_eq_string_string (arg0, ATSstrcst("lin1")) ; return (tmp27) ; } /* end of [name_is_lin1_12] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 3753(line=162, offs=4) -- 3836(line=163, offs=47) */ ATSstaticdec() ats_bool_type name_is_fun0_13 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp28) ; ATSlocal (ats_bool_type, tmp29) ; __ats_lab_name_is_fun0_13: tmp29 = atspre_eq_string_string (arg0, ATSstrcst("fun")) ; if (tmp29) { tmp28 = ats_true_bool ; } else { tmp28 = atspre_eq_string_string (arg0, ATSstrcst("fun0")) ; } /* end of [if] */ return (tmp28) ; } /* end of [name_is_fun0_13] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 3840(line=164, offs=4) -- 3889(line=164, offs=53) */ ATSstaticdec() ats_bool_type name_is_fun1_14 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp30) ; __ats_lab_name_is_fun1_14: tmp30 = atspre_eq_string_string (arg0, ATSstrcst("fun1")) ; return (tmp30) ; } /* end of [name_is_fun1_14] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 3894(line=166, offs=4) -- 3986(line=167, offs=53) */ ATSstaticdec() ats_bool_type name_is_linfun0_15 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; __ats_lab_name_is_linfun0_15: tmp32 = atspre_eq_string_string (arg0, ATSstrcst("linfun")) ; if (tmp32) { tmp31 = ats_true_bool ; } else { tmp31 = atspre_eq_string_string (arg0, ATSstrcst("linfun0")) ; } /* end of [if] */ return (tmp31) ; } /* end of [name_is_linfun0_15] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 3990(line=168, offs=4) -- 4045(line=168, offs=59) */ ATSstaticdec() ats_bool_type name_is_linfun1_16 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp33) ; __ats_lab_name_is_linfun1_16: tmp33 = atspre_eq_string_string (arg0, ATSstrcst("linfun1")) ; return (tmp33) ; } /* end of [name_is_linfun1_16] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4050(line=170, offs=4) -- 4132(line=171, offs=47) */ ATSstaticdec() ats_bool_type name_is_clo0_17 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp34) ; ATSlocal (ats_bool_type, tmp35) ; __ats_lab_name_is_clo0_17: tmp35 = atspre_eq_string_string (arg0, ATSstrcst("clo")) ; if (tmp35) { tmp34 = ats_true_bool ; } else { tmp34 = atspre_eq_string_string (arg0, ATSstrcst("clo0")) ; } /* end of [if] */ return (tmp34) ; } /* end of [name_is_clo0_17] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4136(line=172, offs=4) -- 4185(line=172, offs=53) */ ATSstaticdec() ats_bool_type name_is_clo1_18 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp36) ; __ats_lab_name_is_clo1_18: tmp36 = atspre_eq_string_string (arg0, ATSstrcst("clo1")) ; return (tmp36) ; } /* end of [name_is_clo1_18] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4190(line=174, offs=4) -- 4281(line=175, offs=53) */ ATSstaticdec() ats_bool_type name_is_linclo0_19 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_bool_type, tmp38) ; __ats_lab_name_is_linclo0_19: tmp38 = atspre_eq_string_string (arg0, ATSstrcst("linclo")) ; if (tmp38) { tmp37 = ats_true_bool ; } else { tmp37 = atspre_eq_string_string (arg0, ATSstrcst("linclo0")) ; } /* end of [if] */ return (tmp37) ; } /* end of [name_is_linclo0_19] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4285(line=176, offs=4) -- 4340(line=176, offs=59) */ ATSstaticdec() ats_bool_type name_is_linclo1_20 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp39) ; __ats_lab_name_is_linclo1_20: tmp39 = atspre_eq_string_string (arg0, ATSstrcst("linclo1")) ; return (tmp39) ; } /* end of [name_is_linclo1_20] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4345(line=178, offs=4) -- 4437(line=179, offs=53) */ ATSstaticdec() ats_bool_type name_is_cloptr0_21 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; __ats_lab_name_is_cloptr0_21: tmp41 = atspre_eq_string_string (arg0, ATSstrcst("cloptr")) ; if (tmp41) { tmp40 = ats_true_bool ; } else { tmp40 = atspre_eq_string_string (arg0, ATSstrcst("cloptr0")) ; } /* end of [if] */ return (tmp40) ; } /* end of [name_is_cloptr0_21] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4441(line=180, offs=4) -- 4496(line=180, offs=59) */ ATSstaticdec() ats_bool_type name_is_cloptr1_22 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp42) ; __ats_lab_name_is_cloptr1_22: tmp42 = atspre_eq_string_string (arg0, ATSstrcst("cloptr1")) ; return (tmp42) ; } /* end of [name_is_cloptr1_22] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4501(line=182, offs=4) -- 4602(line=183, offs=59) */ ATSstaticdec() ats_bool_type name_is_lincloptr0_23 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; __ats_lab_name_is_lincloptr0_23: tmp44 = atspre_eq_string_string (arg0, ATSstrcst("lincloptr")) ; if (tmp44) { tmp43 = ats_true_bool ; } else { tmp43 = atspre_eq_string_string (arg0, ATSstrcst("lincloptr0")) ; } /* end of [if] */ return (tmp43) ; } /* end of [name_is_lincloptr0_23] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4606(line=184, offs=4) -- 4667(line=184, offs=65) */ ATSstaticdec() ats_bool_type name_is_lincloptr1_24 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp45) ; __ats_lab_name_is_lincloptr1_24: tmp45 = atspre_eq_string_string (arg0, ATSstrcst("lincloptr1")) ; return (tmp45) ; } /* end of [name_is_lincloptr1_24] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4672(line=186, offs=4) -- 4764(line=187, offs=53) */ ATSstaticdec() ats_bool_type name_is_cloref0_25 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_bool_type, tmp47) ; __ats_lab_name_is_cloref0_25: tmp47 = atspre_eq_string_string (arg0, ATSstrcst("cloref")) ; if (tmp47) { tmp46 = ats_true_bool ; } else { tmp46 = atspre_eq_string_string (arg0, ATSstrcst("cloref0")) ; } /* end of [if] */ return (tmp46) ; } /* end of [name_is_cloref0_25] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4768(line=188, offs=4) -- 4823(line=188, offs=59) */ ATSstaticdec() ats_bool_type name_is_cloref1_26 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp48) ; __ats_lab_name_is_cloref1_26: tmp48 = atspre_eq_string_string (arg0, ATSstrcst("cloref1")) ; return (tmp48) ; } /* end of [name_is_cloref1_26] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 4872(line=193, offs=14) -- 6147(line=225, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0de (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_bool_type, tmp54) ; ATSlocal (ats_bool_type, tmp55) ; ATSlocal (ats_bool_type, tmp56) ; ATSlocal (ats_bool_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_bool_type, tmp60) ; ATSlocal (ats_bool_type, tmp61) ; ATSlocal (ats_bool_type, tmp62) ; ATSlocal (ats_bool_type, tmp63) ; ATSlocal (ats_bool_type, tmp64) ; ATSlocal (ats_bool_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_bool_type, tmp68) ; ATSlocal (ats_bool_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0de: tmp51 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp51) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp53 = name_is_prf_10 (tmp50) ; if (!tmp53) { goto __ats_lab_1_1 ; } tmp52 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGprf_3) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp54 = name_is_clo0_17 (tmp50) ; if (!tmp54) { goto __ats_lab_2_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 0) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp55 = name_is_clo1_18 (tmp50) ; if (!tmp55) { goto __ats_lab_3_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 1) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp56 = name_is_linclo0_19 (tmp50) ; if (!tmp56) { goto __ats_lab_4_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 0) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp57 = name_is_linclo1_20 (tmp50) ; if (!tmp57) { goto __ats_lab_5_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 1) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp58 = name_is_cloptr0_21 (tmp50) ; if (!tmp58) { goto __ats_lab_6_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp59 = name_is_cloptr1_22 (tmp50) ; if (!tmp59) { goto __ats_lab_7_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 1) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp60 = name_is_lincloptr0_23 (tmp50) ; if (!tmp60) { goto __ats_lab_8_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 0) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp61 = name_is_lincloptr1_24 (tmp50) ; if (!tmp61) { goto __ats_lab_9_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 1) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp62 = name_is_cloref0_25 (tmp50) ; if (!tmp62) { goto __ats_lab_10_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, -1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 0) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp63 = name_is_cloref1_26 (tmp50) ; if (!tmp63) { goto __ats_lab_11_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp52)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_1, -1) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_2, 1) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp64 = name_is_fun0_13 (tmp50) ; if (!tmp64) { goto __ats_lab_12_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp52)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp52, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_7, tmp52, atslab_1, 0) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp65 = name_is_fun1_14 (tmp50) ; if (!tmp65) { goto __ats_lab_13_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp52)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp52, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_7, tmp52, atslab_1, 1) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp66 = name_is_linfun0_15 (tmp50) ; if (!tmp66) { goto __ats_lab_14_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp52)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp52, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_7, tmp52, atslab_1, 0) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: tmp67 = name_is_linfun1_16 (tmp50) ; if (!tmp67) { goto __ats_lab_15_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp52)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp52, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_7, tmp52, atslab_1, 1) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp68 = name_is_lin0_11 (tmp50) ; if (!tmp68) { goto __ats_lab_16_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp52)->tag = 4 ; ats_selptrset_mac(anairiats_sum_8, tmp52, atslab_0, 0) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp69 = name_is_lin1_12 (tmp50) ; if (!tmp69) { goto __ats_lab_17_1 ; } tmp52 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp52)->tag = 4 ; ats_selptrset_mac(anairiats_sum_8, tmp52, atslab_0, 1) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp52 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp52)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp52, atslab_0, arg0) ; break ; } while (0) ; tmp70 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp49 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp49, atslab_e0fftag_loc, tmp70) ; ats_selptrset_mac(anairiats_rec_4, tmp49, atslab_e0fftag_node, tmp52) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 6222(line=230, offs=17) -- 6299(line=233, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_var_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_var_fun: tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp73 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp73)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp73, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_7, tmp73, atslab_1, 0) ; tmp71 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp71, atslab_e0fftag_loc, tmp72) ; ats_selptrset_mac(anairiats_rec_4, tmp71, atslab_e0fftag_node, tmp73) ; return (tmp71) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_var_fun] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 6352(line=236, offs=14) -- 6463(line=240, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0nt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0nt: tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nt2int (arg0) ; tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp77 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp77)->tag = 0 ; ats_selptrset_mac(anairiats_sum_8, tmp77, atslab_0, tmp75) ; tmp74 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp74, atslab_e0fftag_loc, tmp76) ; ats_selptrset_mac(anairiats_rec_4, tmp74, atslab_e0fftag_node, tmp77) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0fftag_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 6583(line=247, offs=11) -- 6599(line=247, offs=27) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_emp () { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_emp: tmp78 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp78)->tag = 0 ; ats_selptrset_mac(anairiats_sum_8, tmp78, atslab_0, 0) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_emp] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 6625(line=250, offs=12) -- 6687(line=252, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0nt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0nt: tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nt2int (arg0) ; tmp79 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp79)->tag = 0 ; ats_selptrset_mac(anairiats_sum_8, tmp79, atslab_0, tmp80) ; return (tmp79) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 6735(line=255, offs=12) -- 6755(line=255, offs=32) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de: tmp81 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp81)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp81, atslab_0, arg0) ; return (tmp81) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 6787(line=259, offs=3) -- 6872(line=261, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de_adj (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_int_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de_adj: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nt2int (arg2) ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp82)->tag = 2 ; ats_selptrset_mac(anairiats_sum_10, tmp82, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp82, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp82, atslab_2, tmp83) ; return (tmp82) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0rec_i0de_adj] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 6944(line=266, offs=11) -- 7011(line=268, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0de (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0de: tmp85 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp86 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp86)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp86, atslab_0, tmp87) ; tmp84 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp84, atslab_e0xp_loc, tmp85) ; ats_selptrset_mac(anairiats_rec_11, tmp84, atslab_e0xp_node, tmp86) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 7054(line=271, offs=11) -- 7129(line=274, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0nt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0nt: tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp90 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp90)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp90, atslab_0, arg0) ; tmp88 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp88, atslab_e0xp_loc, tmp89) ; ats_selptrset_mac(anairiats_rec_11, tmp88, atslab_e0xp_node, tmp90) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 7174(line=277, offs=12) -- 7250(line=280, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_c0har (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_c0har: tmp92 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp93 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp93)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp93, atslab_0, arg0) ; tmp91 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp91, atslab_e0xp_loc, tmp92) ; ats_selptrset_mac(anairiats_rec_11, tmp91, atslab_e0xp_node, tmp93) ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_c0har] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 7297(line=283, offs=13) -- 7374(line=286, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_f0loat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_f0loat: tmp95 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp96 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp96)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp96, atslab_0, arg0) ; tmp94 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp94, atslab_e0xp_loc, tmp95) ; ats_selptrset_mac(anairiats_rec_11, tmp94, atslab_e0xp_node, tmp96) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 7423(line=289, offs=14) -- 7501(line=292, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_s0tring (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_s0tring: tmp98 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp99)->tag = 4 ; ats_selptrset_mac(anairiats_sum_9, tmp99, atslab_0, arg0) ; tmp97 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp97, atslab_e0xp_loc, tmp98) ; ats_selptrset_mac(anairiats_rec_11, tmp97, atslab_e0xp_node, tmp99) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 7547(line=295, offs=10) -- 7656(line=299, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app: tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_e0xp_loc) ; tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_e0xp_loc) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp102, tmp103) ; tmp104 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp104)->tag = 6 ; ats_selptrset_mac(anairiats_sum_12, tmp104, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp104, atslab_1, arg1) ; tmp100 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp100, atslab_e0xp_loc, tmp101) ; ats_selptrset_mac(anairiats_rec_11, tmp100, atslab_e0xp_node, tmp104) ; return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 7699(line=302, offs=11) -- 7823(line=308, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_eval (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_eval: tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp108 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp107, tmp108) ; tmp109 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp109)->tag = 8 ; ats_selptrset_mac(anairiats_sum_9, tmp109, atslab_0, arg1) ; tmp105 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp105, atslab_e0xp_loc, tmp106) ; ats_selptrset_mac(anairiats_rec_11, tmp105, atslab_e0xp_node, tmp109) ; return (tmp105) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_eval] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 7867(line=311, offs=11) -- 7993(line=317, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_list (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_list: tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp113 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp112, tmp113) ; tmp114 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp114)->tag = 9 ; ats_selptrset_mac(anairiats_sum_9, tmp114, atslab_0, arg1) ; tmp110 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp110, atslab_e0xp_loc, tmp111) ; ats_selptrset_mac(anairiats_rec_11, tmp110, atslab_e0xp_node, tmp114) ; return (tmp110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_list] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 8035(line=320, offs=9) -- 8292(line=329, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_if (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_if: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_0) ; tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp119 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp117), atslab_e0xp_loc) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp118, tmp119) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp120 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp121 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg2), atslab_e0xp_loc) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp120, tmp121) ; break ; } while (0) ; tmp122 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp122)->tag = 10 ; ats_selptrset_mac(anairiats_sum_14, tmp122, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp122, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp122, atslab_2, arg3) ; tmp115 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp115, atslab_e0xp_loc, tmp116) ; ats_selptrset_mac(anairiats_rec_11, tmp115, atslab_e0xp_node, tmp122) ; return (tmp115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_if] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 8343(line=332, offs=20) -- 8405(line=334, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_make_stringid (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_make_stringid: tmp124 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp124)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp124, atslab_0, arg1) ; tmp123 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp123, atslab_e0xp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp123, atslab_e0xp_node, tmp124) ; return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_make_stringid] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 8573(line=341, offs=4) -- 8691(line=345, offs=2) */ ATSstaticdec() ats_ptr_type e0xp_fun_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab_e0xp_fun_44: tmp126 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp126)->tag = 7 ; ats_selptrset_mac(anairiats_sum_12, tmp126, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp126, atslab_1, arg2) ; tmp125 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp125, atslab_e0xp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp125, atslab_e0xp_node, tmp126) ; return (tmp125) ; } /* end of [e0xp_fun_44] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 8791(line=351, offs=7) -- 8987(line=356, offs=26) */ ATSstaticdec() ats_bool_type argtest_46 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab_argtest_46: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_20_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ; tmp131 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp129), atslab_e0xp_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp131)->tag != 0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: arg0 = tmp130 ; goto __ats_lab_argtest_46 ; // tail call break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp128 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp128 = ats_true_bool ; break ; } while (0) ; return (tmp128) ; } /* end of [argtest_46] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 9016(line=358, offs=7) -- 9202(line=363, offs=27) */ ATSstaticdec() ats_ptr_type applst_47 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_applst_47: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp133 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp134 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app (arg0, tmp133) ; arg0 = tmp135 ; arg1 = tmp134 ; goto __ats_lab_applst_47 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp132 = arg0 ; break ; } while (0) ; return (tmp132) ; } /* end of [applst_47] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 9477(line=371, offs=10) -- 9547(line=372, offs=49) */ ATSstaticdec() ats_ptr_type f_49 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; __ats_lab_f_49: tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_e0xp_node) ; if (((ats_sum_ptr_type)tmp144)->tag != 0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 9515(line=372, offs=17) -- 9538(line=372, offs=40)") ; } tmp145 = ats_caselptrlab_mac(anairiats_sum_9, tmp144, atslab_0) ; tmp143 = tmp145 ; return (tmp143) ; } /* end of [f_49] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_52 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab_loop_52: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp150 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ; tmp151 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ; tmp152 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp150, arg3) ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp153, atslab_0, tmp152) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp153 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp154 = &ats_caselptrlab_mac(anairiats_sum_15, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp151 ; arg1 = arg1 ; arg2 = tmp154 ; arg3 = arg3 ; goto __ats_lab_loop_52 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp155 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp155 ; break ; } while (0) ; return /* (tmp149) */ ; } /* end of [loop_52] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp156) ; // ATSlocal_void (tmp157) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp156 ; */ /* tmp157 = */ loop_52 (arg0, arg1, (&tmp156), arg2) ; tmp148 = tmp156 ; return (tmp148) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp147) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp147 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp147) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_54 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; __ats_lab_loop_54: do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp164 ; goto __ats_lab_loop_54 ; // tail call break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: break ; } while (0) ; return /* (tmp163) */ ; } /* end of [loop_54] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp162) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp162 = */ loop_54 (arg0) ; return /* (tmp162) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 9231(line=365, offs=7) -- 9768(line=381, offs=8) */ ATSstaticdec() ats_ptr_type auxfun_48 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_bool_type, tmp142) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; __ats_lab_auxfun_48: tmp137 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_e0xp_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp137)->tag != 6) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_12, tmp137, atslab_0) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_12, tmp137, atslab_1) ; tmp140 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp140, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp140, atslab_1, arg3) ; arg0 = arg0 ; arg1 = tmp138 ; arg2 = tmp139 ; arg3 = tmp140 ; arg4 = arg4 ; goto __ats_lab_auxfun_48 ; // tail call break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp137)->tag != 9) { goto __ats_lab_30_0 ; } __ats_lab_27_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_9, tmp137, atslab_0) ; tmp142 = argtest_46 (tmp141) ; if (!tmp142) { goto __ats_lab_30_1 ; } tmp146 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp141, &f_49) ; tmp158 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp158 ; tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_e0xp_loc) ; tmp160 = applst_47 (arg2, arg3) ; tmp136 = e0xp_fun_44 (tmp159, ats_castfn_mac(ats_ptr_type, tmp146), tmp160) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: /* tmp161 = */ list_vt_free_01499_ats_ptr_type (arg3) ; tmp136 = arg0 ; break ; } while (0) ; return (tmp136) ; } /* end of [auxfun_48] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 8768(line=350, offs=13) -- 9874(line=386, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__e0xp_funize (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__e0xp_funize: tmp165 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_e0xp_node) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp165)->tag != 6) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp166 = ats_caselptrlab_mac(anairiats_sum_12, tmp165, atslab_0) ; tmp167 = ats_caselptrlab_mac(anairiats_sum_12, tmp165, atslab_1) ; tmp168 = (ats_sum_ptr_type)0 ; tmp127 = auxfun_48 (arg0, tmp166, tmp167, tmp168, arg1) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: tmp127 = arg0 ; break ; } while (0) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__e0xp_funize] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 9946(line=392, offs=3) -- 9984(line=392, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__datsdef_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__datsdef_make: tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp169 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp169, atslab_0, tmp170) ; ats_selptrset_mac(anairiats_sum_15, tmp169, atslab_1, arg1) ; return (tmp169) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__datsdef_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 10060(line=399, offs=3) -- 10108(line=401, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_label (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_label: tmp171 = ATS_MALLOC(sizeof(anairiats_rec_16)) ; ats_selptrset_mac(anairiats_rec_16, tmp171, atslab_l0ab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_16, tmp171, atslab_l0ab_lab, arg1) ; return (tmp171) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_label] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 10161(line=404, offs=16) -- 10280(line=410, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0de (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0de: tmp174 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_sym (tmp174) ; tmp175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_label (tmp175, tmp173) ; return (tmp172) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 10334(line=413, offs=16) -- 10446(line=418, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0nt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_int_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0nt: tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nt2int (arg0) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (tmp177) ; tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_label (tmp179, tmp178) ; return (tmp176) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 10525(line=424, offs=3) -- 10682(line=433, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_dotlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_dotlab: tmp182 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp183 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_l0ab_loc) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp182, tmp183) ; tmp184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_l0ab_lab) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_dotize (tmp184) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp181, tmp185) ; return (tmp180) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_dotlab] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 10754(line=438, offs=11) -- 10809(line=440, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_none: tmp187 = (ats_sum_ptr_type)0 ; tmp186 = ATS_MALLOC(sizeof(anairiats_rec_17)) ; ats_selptrset_mac(anairiats_rec_17, tmp186, atslab_s0rtq_loc, arg0) ; ats_selptrset_mac(anairiats_rec_17, tmp186, atslab_s0rtq_node, tmp187) ; return (tmp186) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 10856(line=443, offs=13) -- 10986(line=447, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_symdot (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_symdot: tmp190 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp191 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp190, tmp191) ; tmp193 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp192, atslab_0, tmp193) ; tmp188 = ATS_MALLOC(sizeof(anairiats_rec_17)) ; ats_selptrset_mac(anairiats_rec_17, tmp188, atslab_s0rtq_loc, tmp189) ; ats_selptrset_mac(anairiats_rec_17, tmp188, atslab_s0rtq_node, tmp192) ; return (tmp188) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_symdot] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 11121(line=456, offs=12) -- 11175(line=458, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_none: tmp196 = (ats_sum_ptr_type)0 ; tmp195 = ATS_MALLOC(sizeof(anairiats_rec_18)) ; ats_selptrset_mac(anairiats_rec_18, tmp195, atslab_s0taq_loc, arg0) ; ats_selptrset_mac(anairiats_rec_18, tmp195, atslab_s0taq_node, tmp196) ; return (tmp195) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 11225(line=461, offs=14) -- 11355(line=465, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_symdot (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_symdot: tmp199 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp200 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp199, tmp200) ; tmp202 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp201 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp201, atslab_0, tmp202) ; tmp197 = ATS_MALLOC(sizeof(anairiats_rec_18)) ; ats_selptrset_mac(anairiats_rec_18, tmp197, atslab_s0taq_loc, tmp198) ; ats_selptrset_mac(anairiats_rec_18, tmp197, atslab_s0taq_node, tmp201) ; return (tmp197) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_symdot] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 11660(line=481, offs=15) -- 11722(line=482, offs=57) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_is_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_is_none: tmp204 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_s0taq_node) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (tmp204 != (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp203 = ats_true_bool ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp203 = ats_false_bool ; break ; } while (0) ; return (tmp203) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_is_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 11800(line=488, offs=18) -- 11939(line=494, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_none: tmp206 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_none (tmp206) ; tmp208 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp205 = ATS_MALLOC(sizeof(anairiats_rec_19)) ; ats_selptrset_mac(anairiats_rec_19, tmp205, atslab_sqi0de_loc, tmp206) ; ats_selptrset_mac(anairiats_rec_19, tmp205, atslab_sqi0de_qua, tmp207) ; ats_selptrset_mac(anairiats_rec_19, tmp205, atslab_sqi0de_sym, tmp208) ; return (tmp205) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 11999(line=498, offs=3) -- 12136(line=503, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_some (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_some: tmp211 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_s0taq_loc) ; tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp211, tmp212) ; tmp213 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp209 = ATS_MALLOC(sizeof(anairiats_rec_19)) ; ats_selptrset_mac(anairiats_rec_19, tmp209, atslab_sqi0de_loc, tmp210) ; ats_selptrset_mac(anairiats_rec_19, tmp209, atslab_sqi0de_qua, arg0) ; ats_selptrset_mac(anairiats_rec_19, tmp209, atslab_sqi0de_sym, tmp213) ; return (tmp209) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sqi0de_make_some] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 12269(line=511, offs=11) -- 12324(line=513, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none: tmp216 = (ats_sum_ptr_type)0 ; tmp215 = ATS_MALLOC(sizeof(anairiats_rec_20)) ; ats_selptrset_mac(anairiats_rec_20, tmp215, atslab_d0ynq_loc, arg0) ; ats_selptrset_mac(anairiats_rec_20, tmp215, atslab_d0ynq_node, tmp216) ; return (tmp215) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 12374(line=517, offs=3) -- 12504(line=521, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_symdot (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_symdot: tmp219 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp219, tmp220) ; tmp222 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp221 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp221, atslab_0, tmp222) ; tmp217 = ATS_MALLOC(sizeof(anairiats_rec_20)) ; ats_selptrset_mac(anairiats_rec_20, tmp217, atslab_d0ynq_loc, tmp218) ; ats_selptrset_mac(anairiats_rec_20, tmp217, atslab_d0ynq_node, tmp221) ; return (tmp217) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_symdot] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 13064(line=552, offs=15) -- 13125(line=553, offs=56) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_is_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_is_none: tmp224 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_d0ynq_node) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (tmp224 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp223 = ats_true_bool ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp223 = ats_false_bool ; break ; } while (0) ; return (tmp223) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_is_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 13201(line=559, offs=18) -- 13340(line=565, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_none: tmp226 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none (tmp226) ; tmp228 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp225 = ATS_MALLOC(sizeof(anairiats_rec_21)) ; ats_selptrset_mac(anairiats_rec_21, tmp225, atslab_dqi0de_loc, tmp226) ; ats_selptrset_mac(anairiats_rec_21, tmp225, atslab_dqi0de_qua, tmp227) ; ats_selptrset_mac(anairiats_rec_21, tmp225, atslab_dqi0de_sym, tmp228) ; return (tmp225) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 13400(line=569, offs=3) -- 13537(line=574, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_some (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_some: tmp231 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_d0ynq_loc) ; tmp232 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp231, tmp232) ; tmp233 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp229 = ATS_MALLOC(sizeof(anairiats_rec_21)) ; ats_selptrset_mac(anairiats_rec_21, tmp229, atslab_dqi0de_loc, tmp230) ; ats_selptrset_mac(anairiats_rec_21, tmp229, atslab_dqi0de_qua, arg0) ; ats_selptrset_mac(anairiats_rec_21, tmp229, atslab_dqi0de_sym, tmp233) ; return (tmp229) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_some] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 13609(line=579, offs=11) -- 13676(line=581, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_i0de (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_i0de: tmp235 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp237 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp236 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp236)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp236, atslab_0, tmp237) ; tmp234 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp234, atslab_s0rt_loc, tmp235) ; ats_selptrset_mac(anairiats_rec_22, tmp234, atslab_s0rt_node, tmp236) ; return (tmp234) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 13718(line=584, offs=10) -- 13849(line=588, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_qid (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_qid: tmp240 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_s0rtq_loc) ; tmp241 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp240, tmp241) ; tmp243 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp242 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp242)->tag = 1 ; ats_selptrset_mac(anairiats_sum_12, tmp242, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp242, atslab_1, tmp243) ; tmp238 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp238, atslab_s0rt_loc, tmp239) ; ats_selptrset_mac(anairiats_rec_22, tmp238, atslab_s0rt_node, tmp242) ; return (tmp238) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_qid] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 13891(line=591, offs=10) -- 14000(line=595, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_app: tmp246 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_s0rt_loc) ; tmp247 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg1), atslab_s0rt_loc) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp246, tmp247) ; tmp248 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp248)->tag = 2 ; ats_selptrset_mac(anairiats_sum_12, tmp248, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp248, atslab_1, arg1) ; tmp244 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp244, atslab_s0rt_loc, tmp245) ; ats_selptrset_mac(anairiats_rec_22, tmp244, atslab_s0rt_node, tmp248) ; return (tmp244) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_app] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 14043(line=598, offs=11) -- 14171(line=604, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_list (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_list: tmp251 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp252 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp251, tmp252) ; tmp253 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp253)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp253, atslab_0, arg1) ; tmp249 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp249, atslab_s0rt_loc, tmp250) ; ats_selptrset_mac(anairiats_rec_22, tmp249, atslab_s0rt_node, tmp253) ; return (tmp249) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_list] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 14215(line=607, offs=11) -- 14321(line=611, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_type: tmp255 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp255)->tag != 78) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 14231(line=608, offs=7) -- 14258(line=608, offs=34)") ; } tmp256 = ats_caselptrlab_mac(anairiats_sum_8, tmp255, atslab_0) ; tmp257 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp258 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp258)->tag = 4 ; ats_selptrset_mac(anairiats_sum_8, tmp258, atslab_0, tmp256) ; tmp254 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp254, atslab_s0rt_loc, tmp257) ; ats_selptrset_mac(anairiats_rec_22, tmp254, atslab_s0rt_node, tmp258) ; return (tmp254) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_type] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 14394(line=617, offs=3) -- 14626(line=626, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtcon_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtcon_make: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp261 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp262 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp263 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp261), atslab_s0rt_loc) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp262, tmp263) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp260 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; break ; } while (0) ; tmp264 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp259 = ATS_MALLOC(sizeof(anairiats_rec_23)) ; ats_selptrset_mac(anairiats_rec_23, tmp259, atslab_d0atsrtcon_loc, tmp260) ; ats_selptrset_mac(anairiats_rec_23, tmp259, atslab_d0atsrtcon_sym, tmp264) ; ats_selptrset_mac(anairiats_rec_23, tmp259, atslab_d0atsrtcon_arg, arg1) ; return (tmp259) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtcon_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 14710(line=631, offs=7) -- 14892(line=636, offs=52) */ ATSstaticdec() ats_ptr_type loop_79 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; __ats_lab_loop_79: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp268 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; arg0 = arg0 ; arg1 = tmp267 ; arg2 = tmp268 ; goto __ats_lab_loop_79 ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp269 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp270 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg1), atslab_d0atsrtcon_loc) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp269, tmp270) ; break ; } while (0) ; return (tmp266) ; } /* end of [loop_79] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 14684(line=630, offs=3) -- 15149(line=646, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtdec_make: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp271 = loop_79 (arg0, tmp272, tmp273) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: tmp274 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp275 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp274, tmp275) ; break ; } while (0) ; tmp276 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp265 = ATS_MALLOC(sizeof(anairiats_rec_24)) ; ats_selptrset_mac(anairiats_rec_24, tmp265, atslab_d0atsrtdec_loc, tmp271) ; ats_selptrset_mac(anairiats_rec_24, tmp265, atslab_d0atsrtdec_sym, tmp276) ; ats_selptrset_mac(anairiats_rec_24, tmp265, atslab_d0atsrtdec_con, arg2) ; return (tmp265) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtdec_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 15221(line=651, offs=12) -- 15432(line=658, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arg_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arg_make: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp279 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp280 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp281 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp279), atslab_s0rt_loc) ; tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp280, tmp281) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg1 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 15249(line=652, offs=14) -- 15333(line=654, offs=29)") ; } __ats_lab_46_1: tmp278 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; break ; } while (0) ; tmp282 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp277 = ATS_MALLOC(sizeof(anairiats_rec_25)) ; ats_selptrset_mac(anairiats_rec_25, tmp277, atslab_s0arg_loc, tmp278) ; ats_selptrset_mac(anairiats_rec_25, tmp277, atslab_s0arg_sym, tmp282) ; ats_selptrset_mac(anairiats_rec_25, tmp277, atslab_s0arg_srt, arg1) ; return (tmp277) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arg_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 15504(line=663, offs=17) -- 15567(line=665, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_one (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_one: tmp284 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_s0arg_loc) ; tmp286 = (ats_sum_ptr_type)0 ; tmp285 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp285, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp285, atslab_1, tmp286) ; tmp283 = ATS_MALLOC(sizeof(anairiats_rec_26)) ; ats_selptrset_mac(anairiats_rec_26, tmp283, atslab_s0marg_loc, tmp284) ; ats_selptrset_mac(anairiats_rec_26, tmp283, atslab_s0marg_arg, tmp285) ; return (tmp283) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_one] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 15626(line=669, offs=3) -- 15742(line=673, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_many (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_many: tmp289 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp290 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp289, tmp290) ; tmp287 = ATS_MALLOC(sizeof(anairiats_rec_26)) ; ats_selptrset_mac(anairiats_rec_26, tmp287, atslab_s0marg_loc, tmp288) ; ats_selptrset_mac(anairiats_rec_26, tmp287, atslab_s0marg_arg, arg1) ; return (tmp287) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_many] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 15820(line=678, offs=17) -- 15895(line=681, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_none: tmp292 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_s0rt_loc) ; tmp293 = (ats_sum_ptr_type)0 ; tmp291 = ATS_MALLOC(sizeof(anairiats_rec_27)) ; ats_selptrset_mac(anairiats_rec_27, tmp291, atslab_a0srt_loc, tmp292) ; ats_selptrset_mac(anairiats_rec_27, tmp291, atslab_a0srt_sym, tmp293) ; ats_selptrset_mac(anairiats_rec_27, tmp291, atslab_a0srt_srt, arg0) ; return (tmp291) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 15953(line=685, offs=3) -- 16084(line=690, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_some (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_some: tmp296 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp297 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg1), atslab_s0rt_loc) ; tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp296, tmp297) ; tmp299 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp298 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp298, atslab_0, tmp299) ; tmp294 = ATS_MALLOC(sizeof(anairiats_rec_27)) ; ats_selptrset_mac(anairiats_rec_27, tmp294, atslab_a0srt_loc, tmp295) ; ats_selptrset_mac(anairiats_rec_27, tmp294, atslab_a0srt_sym, tmp298) ; ats_selptrset_mac(anairiats_rec_27, tmp294, atslab_a0srt_srt, arg1) ; return (tmp294) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_some] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 16138(line=694, offs=3) -- 16254(line=698, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0msrt_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0msrt_make: tmp302 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp303 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp302, tmp303) ; tmp300 = ATS_MALLOC(sizeof(anairiats_rec_28)) ; ats_selptrset_mac(anairiats_rec_28, tmp300, atslab_a0msrt_loc, tmp301) ; ats_selptrset_mac(anairiats_rec_28, tmp300, atslab_a0msrt_arg, arg1) ; return (tmp300) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0msrt_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 16325(line=703, offs=15) -- 16446(line=707, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arrdim_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arrdim_make: tmp306 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp307 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp305 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp306, tmp307) ; tmp304 = ATS_MALLOC(sizeof(anairiats_rec_29)) ; ats_selptrset_mac(anairiats_rec_29, tmp304, atslab_s0arrdim_loc, tmp305) ; ats_selptrset_mac(anairiats_rec_29, tmp304, atslab_s0arrdim_dim, arg1) ; return (tmp304) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arrdim_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 16491(line=710, offs=13) -- 16558(line=712, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_srt: tmp309 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_s0rt_loc) ; tmp310 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp310)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp310, atslab_0, arg0) ; tmp308 = ATS_MALLOC(sizeof(anairiats_rec_30)) ; ats_selptrset_mac(anairiats_rec_30, tmp308, atslab_s0rtext_loc, tmp309) ; ats_selptrset_mac(anairiats_rec_30, tmp308, atslab_s0rtext_node, tmp310) ; return (tmp308) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_srt] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 16606(line=715, offs=13) -- 16773(line=721, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_sub (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_sub: tmp313 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp314 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_token_loc) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp313, tmp314) ; tmp315 = ATS_MALLOC(sizeof(anairiats_sum_31)) ; ((ats_sum_ptr_type)tmp315)->tag = 1 ; ats_selptrset_mac(anairiats_sum_31, tmp315, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_31, tmp315, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_31, tmp315, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_31, tmp315, atslab_3, arg4) ; tmp311 = ATS_MALLOC(sizeof(anairiats_rec_30)) ; ats_selptrset_mac(anairiats_rec_30, tmp311, atslab_s0rtext_loc, tmp312) ; ats_selptrset_mac(anairiats_rec_30, tmp311, atslab_s0rtext_node, tmp315) ; return (tmp311) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtext_sub] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 16820(line=724, offs=12) -- 16886(line=726, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_prop (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_prop: tmp317 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg0), atslab_s0exp_loc) ; tmp318 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp318)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp318, atslab_0, arg0) ; tmp316 = ATS_MALLOC(sizeof(anairiats_rec_32)) ; ats_selptrset_mac(anairiats_rec_32, tmp316, atslab_s0qua_loc, tmp317) ; ats_selptrset_mac(anairiats_rec_32, tmp316, atslab_s0qua_node, tmp318) ; return (tmp316) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_prop] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 16909(line=729, offs=12) -- 17041(line=733, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_vars (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_vars: tmp321 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp322 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg2), atslab_s0rtext_loc) ; tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp321, tmp322) ; tmp323 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp323)->tag = 1 ; ats_selptrset_mac(anairiats_sum_14, tmp323, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_14, tmp323, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp323, atslab_2, arg2) ; tmp319 = ATS_MALLOC(sizeof(anairiats_rec_32)) ; ats_selptrset_mac(anairiats_rec_32, tmp319, atslab_s0qua_loc, tmp320) ; ats_selptrset_mac(anairiats_rec_32, tmp319, atslab_s0qua_node, tmp323) ; return (tmp319) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0qua_vars] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 17111(line=739, offs=3) -- 17227(line=743, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__q0marg_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__q0marg_make: tmp326 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp327 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp326, tmp327) ; tmp324 = ATS_MALLOC(sizeof(anairiats_rec_34)) ; ats_selptrset_mac(anairiats_rec_34, tmp324, atslab_q0marg_loc, tmp325) ; ats_selptrset_mac(anairiats_rec_34, tmp324, atslab_q0marg_arg, arg1) ; return (tmp324) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__q0marg_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 17295(line=748, offs=17) -- 17371(line=751, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_none: tmp329 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg0), atslab_s0exp_loc) ; tmp330 = (ats_sum_ptr_type)0 ; tmp328 = ATS_MALLOC(sizeof(anairiats_rec_35)) ; ats_selptrset_mac(anairiats_rec_35, tmp328, atslab_a0typ_loc, tmp329) ; ats_selptrset_mac(anairiats_rec_35, tmp328, atslab_a0typ_sym, tmp330) ; ats_selptrset_mac(anairiats_rec_35, tmp328, atslab_a0typ_typ, arg0) ; return (tmp328) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 17429(line=755, offs=3) -- 17561(line=760, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_some (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_some: tmp333 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp334 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg1), atslab_s0exp_loc) ; tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp333, tmp334) ; tmp336 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp335 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp335, atslab_0, tmp336) ; tmp331 = ATS_MALLOC(sizeof(anairiats_rec_35)) ; ats_selptrset_mac(anairiats_rec_35, tmp331, atslab_a0typ_loc, tmp332) ; ats_selptrset_mac(anairiats_rec_35, tmp331, atslab_a0typ_sym, tmp335) ; ats_selptrset_mac(anairiats_rec_35, tmp331, atslab_a0typ_typ, arg1) ; return (tmp331) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0typ_make_some] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 17635(line=765, offs=14) -- 17784(line=770, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tkname (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tkname: tmp338 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp339 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp339)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 17679(line=767, offs=7) -- 17711(line=767, offs=39)") ; } tmp340 = ats_caselptrlab_mac(anairiats_sum_9, tmp339, atslab_0) ; tmp342 = (ats_sum_ptr_type)0 ; tmp341 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp341)->tag = 8 ; ats_selptrset_mac(anairiats_sum_12, tmp341, atslab_0, tmp340) ; ats_selptrset_mac(anairiats_sum_12, tmp341, atslab_1, tmp342) ; tmp337 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp337, atslab_s0exp_loc, tmp338) ; ats_selptrset_mac(anairiats_rec_33, tmp337, atslab_s0exp_node, tmp341) ; return (tmp337) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tkname] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 17845(line=776, offs=5) -- 18028(line=781, offs=47) */ ATSstaticdec() ats_ptr_type loop_95 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; __ats_lab_loop_95: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp344 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp345 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; arg0 = arg0 ; arg1 = tmp344 ; arg2 = tmp345 ; goto __ats_lab_loop_95 ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp346 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp347 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg1), atslab_s0exp_loc) ; tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp346, tmp347) ; break ; } while (0) ; return (tmp343) ; } /* end of [loop_95] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 18100(line=788, offs=3) -- 18380(line=796, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extype (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extype: tmp349 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp349)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 18129(line=789, offs=7) -- 18162(line=789, offs=40)") ; } tmp350 = ats_caselptrlab_mac(anairiats_sum_9, tmp349, atslab_0) ; do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp352 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp353 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp352, tmp353) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp354 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp355 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp351 = loop_95 (arg0, tmp354, tmp355) ; break ; } while (0) ; tmp356 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp356)->tag = 7 ; ats_selptrset_mac(anairiats_sum_12, tmp356, atslab_0, tmp350) ; ats_selptrset_mac(anairiats_sum_12, tmp356, atslab_1, arg2) ; tmp348 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp348, atslab_s0exp_loc, tmp351) ; ats_selptrset_mac(anairiats_rec_33, tmp348, atslab_s0exp_node, tmp356) ; return (tmp348) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extype] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 18435(line=800, offs=3) -- 18716(line=808, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extkind (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extkind: tmp358 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp358)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 18464(line=801, offs=7) -- 18497(line=801, offs=40)") ; } tmp359 = ats_caselptrlab_mac(anairiats_sum_9, tmp358, atslab_0) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp361 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp362 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp360 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp361, tmp362) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp363 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp364 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp360 = loop_95 (arg0, tmp363, tmp364) ; break ; } while (0) ; tmp365 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp365)->tag = 8 ; ats_selptrset_mac(anairiats_sum_12, tmp365, atslab_0, tmp359) ; ats_selptrset_mac(anairiats_sum_12, tmp365, atslab_1, arg2) ; tmp357 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp357, atslab_s0exp_loc, tmp360) ; ats_selptrset_mac(anairiats_rec_33, tmp357, atslab_s0exp_node, tmp365) ; return (tmp357) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_extkind] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 18811(line=815, offs=12) -- 18881(line=817, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0de (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0de: tmp367 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp369 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp368 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp368)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp368, atslab_0, tmp369) ; tmp366 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp366, atslab_s0exp_loc, tmp367) ; ats_selptrset_mac(anairiats_rec_33, tmp366, atslab_s0exp_node, tmp368) ; return (tmp366) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 18951(line=822, offs=12) -- 19069(line=827, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_opid (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_opid: tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp373 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp372, tmp373) ; tmp375 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp374 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp374)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp374, atslab_0, tmp375) ; tmp370 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp370, atslab_s0exp_loc, tmp371) ; ats_selptrset_mac(anairiats_rec_33, tmp370, atslab_s0exp_node, tmp374) ; return (tmp370) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_opid] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 19115(line=830, offs=12) -- 19236(line=834, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_sqid (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_sqid: tmp378 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_s0taq_loc) ; tmp379 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp377 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp378, tmp379) ; tmp381 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp380 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp380)->tag = 1 ; ats_selptrset_mac(anairiats_sum_12, tmp380, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp380, atslab_1, tmp381) ; tmp376 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp376, atslab_s0exp_loc, tmp377) ; ats_selptrset_mac(anairiats_rec_33, tmp376, atslab_s0exp_node, tmp380) ; return (tmp376) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_sqid] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 19303(line=839, offs=12) -- 19373(line=842, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0nt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0nt: tmp383 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp384 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp384)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp384, atslab_0, arg0) ; tmp382 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp382, atslab_s0exp_loc, tmp383) ; ats_selptrset_mac(anairiats_rec_33, tmp382, atslab_s0exp_node, tmp384) ; return (tmp382) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 19420(line=845, offs=13) -- 19491(line=848, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_c0har (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_c0har: tmp386 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp387 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp387)->tag = 4 ; ats_selptrset_mac(anairiats_sum_9, tmp387, atslab_0, arg0) ; tmp385 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp385, atslab_s0exp_loc, tmp386) ; ats_selptrset_mac(anairiats_rec_33, tmp385, atslab_s0exp_node, tmp387) ; return (tmp385) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_c0har] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 19561(line=853, offs=14) -- 19633(line=856, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_f0loat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_f0loat: tmp389 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp390 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp390)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp390, atslab_0, arg0) ; tmp388 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp388, atslab_s0exp_loc, tmp389) ; ats_selptrset_mac(anairiats_rec_33, tmp388, atslab_s0exp_node, tmp390) ; return (tmp388) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 19684(line=859, offs=15) -- 19757(line=862, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_s0tring (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_s0tring: tmp392 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp393 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp393)->tag = 6 ; ats_selptrset_mac(anairiats_sum_9, tmp393, atslab_0, arg0) ; tmp391 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp391, atslab_s0exp_loc, tmp392) ; ats_selptrset_mac(anairiats_rec_33, tmp391, atslab_s0exp_node, tmp393) ; return (tmp391) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 19825(line=867, offs=11) -- 19937(line=871, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_app: tmp396 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg0), atslab_s0exp_loc) ; tmp397 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg1), atslab_s0exp_loc) ; tmp395 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp396, tmp397) ; tmp398 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp398)->tag = 9 ; ats_selptrset_mac(anairiats_sum_12, tmp398, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp398, atslab_1, arg1) ; tmp394 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp394, atslab_s0exp_loc, tmp395) ; ats_selptrset_mac(anairiats_rec_33, tmp394, atslab_s0exp_node, tmp398) ; return (tmp394) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_app] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 20002(line=876, offs=11) -- 20126(line=880, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp: tmp401 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp402 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp401, tmp402) ; tmp403 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp403)->tag = 11 ; ats_selptrset_mac(anairiats_sum_9, tmp403, atslab_0, arg1) ; tmp399 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp399, atslab_s0exp_loc, tmp400) ; ats_selptrset_mac(anairiats_rec_33, tmp399, atslab_s0exp_node, tmp403) ; return (tmp399) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 20174(line=883, offs=15) -- 20244(line=885, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp_nil (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp_nil: tmp405 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp407 = (ats_sum_ptr_type)0 ; tmp406 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp406)->tag = 11 ; ats_selptrset_mac(anairiats_sum_9, tmp406, atslab_0, tmp407) ; tmp404 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp404, atslab_s0exp_loc, tmp405) ; ats_selptrset_mac(anairiats_rec_33, tmp404, atslab_s0exp_node, tmp406) ; return (tmp404) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_imp_nil] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 20296(line=889, offs=4) -- 20436(line=894, offs=2) */ ATSstaticdec() ats_ptr_type s0exp_lam_108 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; __ats_lab_s0exp_lam_108: tmp409 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp409)->tag = 10 ; ats_selptrset_mac(anairiats_sum_14, tmp409, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp409, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp409, atslab_2, arg3) ; tmp408 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp408, atslab_s0exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_33, tmp408, atslab_s0exp_node, tmp409) ; return (tmp408) ; } /* end of [s0exp_lam_108] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 20567(line=901, offs=7) -- 20816(line=908, offs=54) */ ATSstaticdec() ats_ptr_type aux_110 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; __ats_lab_aux_110: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp415 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp416 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp417 = (ats_sum_ptr_type)0 ; tmp418 = aux_110 (env0, env1, env2, tmp415, tmp416) ; tmp414 = s0exp_lam_108 (env2, arg0, tmp417, tmp418) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp414 = s0exp_lam_108 (env2, arg0, env0, env1) ; break ; } while (0) ; return (tmp414) ; } /* end of [aux_110] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_110_closure_type ; ats_ptr_type aux_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return aux_110 (((aux_110_closure_type*)cloptr)->closure_env_0, ((aux_110_closure_type*)cloptr)->closure_env_1, ((aux_110_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_110_closure_init (aux_110_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_110_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_110_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_110_closure_type *p_clo = ATS_MALLOC(sizeof(aux_110_closure_type)) ; aux_110_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 20481(line=897, offs=12) -- 20924(line=913, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_lams (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_lams: tmp412 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp413 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg3), atslab_s0exp_loc) ; tmp411 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp412, tmp413) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp419 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp420 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp410 = aux_110 (arg2, arg3, tmp411, tmp419, tmp420) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp410 = arg3 ; break ; } while (0) ; return (tmp410) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_lams] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 20991(line=918, offs=12) -- 21116(line=922, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list: tmp423 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp424 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp422 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp423, tmp424) ; tmp425 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp425)->tag = 12 ; ats_selptrset_mac(anairiats_sum_9, tmp425, atslab_0, arg1) ; tmp421 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp421, atslab_s0exp_loc, tmp422) ; ats_selptrset_mac(anairiats_rec_33, tmp421, atslab_s0exp_node, tmp425) ; return (tmp421) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 21163(line=925, offs=13) -- 21301(line=929, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list2: tmp428 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp429 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp428, tmp429) ; tmp430 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp430)->tag = 13 ; ats_selptrset_mac(anairiats_sum_12, tmp430, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp430, atslab_1, arg2) ; tmp426 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp426, atslab_s0exp_loc, tmp427) ; ats_selptrset_mac(anairiats_rec_33, tmp426, atslab_s0exp_node, tmp430) ; return (tmp426) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_list2] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 21370(line=934, offs=13) -- 21525(line=944, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyarr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyarr: tmp433 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp434 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, arg2), atslab_s0arrdim_loc) ; tmp432 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp433, tmp434) ; tmp436 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, arg2), atslab_s0arrdim_dim) ; tmp435 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp435)->tag = 14 ; ats_selptrset_mac(anairiats_sum_12, tmp435, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp435, atslab_1, tmp436) ; tmp431 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp431, atslab_s0exp_loc, tmp432) ; ats_selptrset_mac(anairiats_rec_33, tmp431, atslab_s0exp_node, tmp435) ; return (tmp431) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyarr] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 21594(line=949, offs=13) -- 21749(line=958, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tytup (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tytup: tmp439 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp440 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp439, tmp440) ; tmp441 = ATS_MALLOC(sizeof(anairiats_sum_36)) ; ((ats_sum_ptr_type)tmp441)->tag = 15 ; ats_selptrset_mac(anairiats_sum_36, tmp441, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_36, tmp441, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_36, tmp441, atslab_2, arg3) ; tmp437 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp437, atslab_s0exp_loc, tmp438) ; ats_selptrset_mac(anairiats_rec_33, tmp437, atslab_s0exp_node, tmp441) ; return (tmp437) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tytup] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 21818(line=963, offs=13) -- 21973(line=972, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec: tmp444 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp445 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp443 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp444, tmp445) ; tmp446 = ATS_MALLOC(sizeof(anairiats_sum_36)) ; ((ats_sum_ptr_type)tmp446)->tag = 16 ; ats_selptrset_mac(anairiats_sum_36, tmp446, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_36, tmp446, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_36, tmp446, atslab_2, arg3) ; tmp442 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp442, atslab_s0exp_loc, tmp443) ; ats_selptrset_mac(anairiats_rec_33, tmp442, atslab_s0exp_node, tmp446) ; return (tmp442) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 22025(line=975, offs=17) -- 22186(line=984, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec_ext (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec_ext: tmp449 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp450 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp448 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp449, tmp450) ; tmp451 = ATS_MALLOC(sizeof(anairiats_sum_37)) ; ((ats_sum_ptr_type)tmp451)->tag = 17 ; ats_selptrset_mac(anairiats_sum_37, tmp451, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_37, tmp451, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_37, tmp451, atslab_2, arg3) ; tmp447 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp447, atslab_s0exp_loc, tmp448) ; ats_selptrset_mac(anairiats_rec_33, tmp447, atslab_s0exp_node, tmp451) ; return (tmp447) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tyrec_ext] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 22253(line=989, offs=11) -- 22386(line=998, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_uni (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_uni: tmp454 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp455 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp453 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp454, tmp455) ; tmp456 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp456)->tag = 18 ; ats_selptrset_mac(anairiats_sum_9, tmp456, atslab_0, arg1) ; tmp452 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp452, atslab_s0exp_loc, tmp453) ; ats_selptrset_mac(anairiats_rec_33, tmp452, atslab_s0exp_node, tmp456) ; return (tmp452) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_uni] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 22430(line=1001, offs=11) -- 22579(line=1010, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_exi (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_exi: tmp459 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp460 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp458 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp459, tmp460) ; tmp461 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp461)->tag = 19 ; ats_selptrset_mac(anairiats_sum_5, tmp461, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp461, atslab_1, arg2) ; tmp457 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp457, atslab_s0exp_loc, tmp458) ; ats_selptrset_mac(anairiats_rec_33, tmp457, atslab_s0exp_node, tmp461) ; return (tmp457) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_exi] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 22643(line=1015, offs=10) -- 22763(line=1021, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_ann (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_ann: tmp464 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg0), atslab_s0exp_loc) ; tmp465 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg1), atslab_s0rt_loc) ; tmp463 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp464, tmp465) ; tmp466 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp466)->tag = 20 ; ats_selptrset_mac(anairiats_sum_12, tmp466, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp466, atslab_1, arg1) ; tmp462 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp462, atslab_s0exp_loc, tmp463) ; ats_selptrset_mac(anairiats_rec_33, tmp462, atslab_s0exp_node, tmp466) ; return (tmp462) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_ann] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 22834(line=1027, offs=3) -- 22971(line=1033, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_d2ctype (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_d2ctype: tmp469 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp470 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp469, tmp470) ; tmp471 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp471)->tag = 21 ; ats_selptrset_mac(anairiats_sum_9, tmp471, atslab_0, arg1) ; tmp467 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp467, atslab_s0exp_loc, tmp468) ; ats_selptrset_mac(anairiats_rec_33, tmp467, atslab_s0exp_node, tmp471) ; return (tmp467) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_d2ctype] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 23046(line=1039, offs=3) -- 23090(line=1039, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labs0exp_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp472) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labs0exp_make: tmp472 = ATS_MALLOC(sizeof(anairiats_sum_38)) ; ats_selptrset_mac(anairiats_sum_38, tmp472, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_38, tmp472, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_38, tmp472, atslab_2, arg2) ; return (tmp472) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labs0exp_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 23161(line=1045, offs=13) -- 23297(line=1051, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_dyn: tmp475 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp476 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp475, tmp476) ; tmp477 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp477)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp477, atslab_0, arg1) ; tmp473 = ATS_MALLOC(sizeof(anairiats_rec_39)) ; ats_selptrset_mac(anairiats_rec_39, tmp473, atslab_m0acarg_loc, tmp474) ; ats_selptrset_mac(anairiats_rec_39, tmp473, atslab_m0acarg_node, tmp477) ; return (tmp473) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_dyn] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 23346(line=1054, offs=14) -- 23422(line=1056, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sing (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sing: tmp479 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp482 = (ats_sum_ptr_type)0 ; tmp481 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp481, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp481, atslab_1, tmp482) ; tmp480 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp480)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp480, atslab_0, tmp481) ; tmp478 = ATS_MALLOC(sizeof(anairiats_rec_39)) ; ats_selptrset_mac(anairiats_rec_39, tmp478, atslab_m0acarg_loc, tmp479) ; ats_selptrset_mac(anairiats_rec_39, tmp478, atslab_m0acarg_node, tmp480) ; return (tmp478) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sing] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 23466(line=1059, offs=13) -- 23602(line=1065, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sta (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sta: tmp485 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp486 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp485, tmp486) ; tmp487 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp487)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp487, atslab_0, arg1) ; tmp483 = ATS_MALLOC(sizeof(anairiats_rec_39)) ; ats_selptrset_mac(anairiats_rec_39, tmp483, atslab_m0acarg_loc, tmp484) ; ats_selptrset_mac(anairiats_rec_39, tmp483, atslab_m0acarg_node, tmp487) ; return (tmp483) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sta] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 23672(line=1070, offs=14) -- 23812(line=1077, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_sta (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_sta: tmp490 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp491 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp490, tmp491) ; tmp492 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp492)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp492, atslab_0, arg1) ; tmp488 = ATS_MALLOC(sizeof(anairiats_rec_40)) ; ats_selptrset_mac(anairiats_rec_40, tmp488, atslab_d0cstarg_loc, tmp489) ; ats_selptrset_mac(anairiats_rec_40, tmp488, atslab_d0cstarg_node, tmp492) ; return (tmp488) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_sta] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 23862(line=1080, offs=14) -- 24012(line=1087, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_dyn (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_dyn: tmp495 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp496 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp494 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp495, tmp496) ; tmp497 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp497)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp497, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp497, atslab_1, arg2) ; tmp493 = ATS_MALLOC(sizeof(anairiats_rec_40)) ; ats_selptrset_mac(anairiats_rec_40, tmp493, atslab_d0cstarg_loc, tmp494) ; ats_selptrset_mac(anairiats_rec_40, tmp493, atslab_d0cstarg_node, tmp497) ; return (tmp493) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstarg_dyn] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 24083(line=1092, offs=14) -- 24361(line=1104, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtdef_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtdef_make: tmp500 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp501 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg1), atslab_s0rtext_loc) ; tmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp500, tmp501) ; tmp502 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp498 = ATS_MALLOC(sizeof(anairiats_rec_41)) ; ats_selptrset_mac(anairiats_rec_41, tmp498, atslab_s0rtdef_loc, tmp499) ; ats_selptrset_mac(anairiats_rec_41, tmp498, atslab_s0rtdef_sym, tmp502) ; ats_selptrset_mac(anairiats_rec_41, tmp498, atslab_s0rtdef_def, arg1) ; return (tmp498) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtdef_make] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51232(line=1817, offs=5) -- 51354(line=1819, offs=58) */ ATSstaticdec() ats_ptr_type loop_131 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; __ats_lab_loop_131: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp513 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp514 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; arg0 = tmp513 ; arg1 = tmp514 ; goto __ats_lab_loop_131 ; // tail call break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: tmp512 = arg0 ; break ; } while (0) ; return (tmp512) ; } /* end of [loop_131] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51194(line=1813, offs=11) -- 51390(line=1823, offs=2) */ ATSstaticdec() ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; __ats_lab_list_last_01407_ats_ptr_type: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp515 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ; tmp516 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ; tmp511 = loop_131 (tmp515, tmp516) ; return (tmp511) ; } /* end of [list_last_01407_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51601(line=1833, offs=15) -- 51690(line=1835, offs=27) */ ATSstaticdec() ats_ptr_type list_last_opt_01409_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; __ats_lab_list_last_opt_01409_ats_ptr_type: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_59_1: tmp510 = list_last_01407_ats_ptr_type (arg0) ; tmp509 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp509, atslab_0, tmp510) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp509 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp509) ; } /* end of [list_last_opt_01409_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 24434(line=1110, offs=3) -- 24830(line=1124, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacon_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacon_make: tmp504 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp506 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_0) ; tmp507 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp506), atslab_s0exp_loc) ; tmp505 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp504, tmp507) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp508 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (tmp508 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp517 = ats_caselptrlab_mac(anairiats_sum_13, tmp508, atslab_0) ; ATS_FREE(tmp508) ; tmp518 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, tmp517), atslab_a0msrt_loc) ; tmp505 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp504, tmp518) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (tmp508 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp505 = tmp504 ; break ; } while (0) ; break ; } while (0) ; tmp519 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp503 = ATS_MALLOC(sizeof(anairiats_rec_42)) ; ats_selptrset_mac(anairiats_rec_42, tmp503, atslab_s0tacon_loc, tmp505) ; ats_selptrset_mac(anairiats_rec_42, tmp503, atslab_s0tacon_sym, tmp519) ; ats_selptrset_mac(anairiats_rec_42, tmp503, atslab_s0tacon_arg, arg1) ; ats_selptrset_mac(anairiats_rec_42, tmp503, atslab_s0tacon_def, arg2) ; return (tmp503) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacon_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 24913(line=1130, offs=1) -- 25114(line=1143, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacst_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacst_make: tmp522 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp523 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg2), atslab_s0rt_loc) ; tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp522, tmp523) ; tmp524 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp520 = ATS_MALLOC(sizeof(anairiats_rec_43)) ; ats_selptrset_mac(anairiats_rec_43, tmp520, atslab_s0tacst_loc, tmp521) ; ats_selptrset_mac(anairiats_rec_43, tmp520, atslab_s0tacst_sym, tmp524) ; ats_selptrset_mac(anairiats_rec_43, tmp520, atslab_s0tacst_arg, arg1) ; ats_selptrset_mac(anairiats_rec_43, tmp520, atslab_s0tacst_res, arg2) ; ats_selptrset_mac(anairiats_rec_43, tmp520, atslab_s0tacst_extopt, arg3) ; return (tmp520) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacst_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 25432(line=1166, offs=3) -- 25646(line=1175, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0kindef_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0kindef_make: tmp526 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp528 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp527 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp526, tmp528) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0exp_tkname (arg1) ; tmp530 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp525 = ATS_MALLOC(sizeof(anairiats_rec_44)) ; ats_selptrset_mac(anairiats_rec_44, tmp525, atslab_t0kindef_loc, tmp527) ; ats_selptrset_mac(anairiats_rec_44, tmp525, atslab_t0kindef_sym, tmp530) ; ats_selptrset_mac(anairiats_rec_44, tmp525, atslab_t0kindef_loc_id, tmp526) ; ats_selptrset_mac(anairiats_rec_44, tmp525, atslab_t0kindef_def, tmp529) ; return (tmp525) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0kindef_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 25719(line=1180, offs=15) -- 25955(line=1192, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0expdef_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0expdef_make: tmp532 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp534 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg3), atslab_s0exp_loc) ; tmp533 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp532, tmp534) ; tmp535 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp531 = ATS_MALLOC(sizeof(anairiats_rec_45)) ; ats_selptrset_mac(anairiats_rec_45, tmp531, atslab_s0expdef_loc, tmp533) ; ats_selptrset_mac(anairiats_rec_45, tmp531, atslab_s0expdef_sym, tmp535) ; ats_selptrset_mac(anairiats_rec_45, tmp531, atslab_s0expdef_loc_id, tmp532) ; ats_selptrset_mac(anairiats_rec_45, tmp531, atslab_s0expdef_arg, arg1) ; ats_selptrset_mac(anairiats_rec_45, tmp531, atslab_s0expdef_res, arg2) ; ats_selptrset_mac(anairiats_rec_45, tmp531, atslab_s0expdef_def, arg3) ; return (tmp531) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0expdef_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 26028(line=1197, offs=15) -- 26213(line=1207, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0aspdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0aspdec_make: tmp538 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_sqi0de_loc) ; tmp539 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg3), atslab_s0exp_loc) ; tmp537 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp538, tmp539) ; tmp536 = ATS_MALLOC(sizeof(anairiats_rec_46)) ; ats_selptrset_mac(anairiats_rec_46, tmp536, atslab_s0aspdec_loc, tmp537) ; ats_selptrset_mac(anairiats_rec_46, tmp536, atslab_s0aspdec_qid, arg0) ; ats_selptrset_mac(anairiats_rec_46, tmp536, atslab_s0aspdec_arg, arg1) ; ats_selptrset_mac(anairiats_rec_46, tmp536, atslab_s0aspdec_res, arg2) ; ats_selptrset_mac(anairiats_rec_46, tmp536, atslab_s0aspdec_def, arg3) ; return (tmp536) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0aspdec_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 26287(line=1213, offs=3) -- 26697(line=1228, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xndec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xndec_make: do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp542 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ; tmp541 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, tmp542), atslab_q0marg_loc) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp541 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; break ; } while (0) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp544 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_0) ; tmp545 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp544), atslab_s0exp_loc) ; tmp543 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp541, tmp545) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp543 = tmp541 ; break ; } while (0) ; tmp546 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp547 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp540 = ATS_MALLOC(sizeof(anairiats_rec_47)) ; ats_selptrset_mac(anairiats_rec_47, tmp540, atslab_e0xndec_loc, tmp543) ; ats_selptrset_mac(anairiats_rec_47, tmp540, atslab_e0xndec_fil, tmp546) ; ats_selptrset_mac(anairiats_rec_47, tmp540, atslab_e0xndec_sym, tmp547) ; ats_selptrset_mac(anairiats_rec_47, tmp540, atslab_e0xndec_qua, arg0) ; ats_selptrset_mac(anairiats_rec_47, tmp540, atslab_e0xndec_arg, arg2) ; return (tmp540) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xndec_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 26770(line=1234, offs=3) -- 27246(line=1259, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atcon_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atcon_make: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp549 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp550 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ; tmp549 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, tmp550), atslab_q0marg_loc) ; break ; } while (0) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp552 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_0) ; tmp553 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp552), atslab_s0exp_loc) ; tmp551 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp549, tmp553) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp554 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_0) ; tmp555 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp554), atslab_s0exp_loc) ; tmp551 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp549, tmp555) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: __ats_lab_74_1: tmp551 = tmp549 ; break ; } while (0) ; break ; } while (0) ; tmp556 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp548 = ATS_MALLOC(sizeof(anairiats_rec_48)) ; ats_selptrset_mac(anairiats_rec_48, tmp548, atslab_d0atcon_loc, tmp551) ; ats_selptrset_mac(anairiats_rec_48, tmp548, atslab_d0atcon_sym, tmp556) ; ats_selptrset_mac(anairiats_rec_48, tmp548, atslab_d0atcon_qua, arg0) ; ats_selptrset_mac(anairiats_rec_48, tmp548, atslab_d0atcon_arg, arg3) ; ats_selptrset_mac(anairiats_rec_48, tmp548, atslab_d0atcon_ind, arg2) ; return (tmp548) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atcon_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 27317(line=1264, offs=14) -- 27858(line=1286, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_ptr_type, tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atdec_make: tmp558 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp560 = list_last_opt_01409_ats_ptr_type (arg2) ; do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (tmp560 == (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp561 = ats_caselptrlab_mac(anairiats_sum_13, tmp560, atslab_0) ; ATS_FREE(tmp560) ; tmp562 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_48, tmp561), atslab_d0atcon_loc) ; tmp559 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp558, tmp562) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (tmp560 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp559 = tmp558 ; break ; } while (0) ; tmp564 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (tmp564 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp565 = ats_caselptrlab_mac(anairiats_sum_13, tmp564, atslab_0) ; ATS_FREE(tmp564) ; tmp566 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, tmp565), atslab_a0msrt_loc) ; tmp563 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp558, tmp566) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (tmp564 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp563 = tmp558 ; break ; } while (0) ; tmp567 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp568 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp557 = ATS_MALLOC(sizeof(anairiats_rec_49)) ; ats_selptrset_mac(anairiats_rec_49, tmp557, atslab_d0atdec_loc, tmp559) ; ats_selptrset_mac(anairiats_rec_49, tmp557, atslab_d0atdec_loc_hd, tmp563) ; ats_selptrset_mac(anairiats_rec_49, tmp557, atslab_d0atdec_fil, tmp567) ; ats_selptrset_mac(anairiats_rec_49, tmp557, atslab_d0atdec_sym, tmp568) ; ats_selptrset_mac(anairiats_rec_49, tmp557, atslab_d0atdec_arg, arg1) ; ats_selptrset_mac(anairiats_rec_49, tmp557, atslab_d0atdec_con, arg2) ; return (tmp557) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atdec_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 27931(line=1291, offs=16) -- 27986(line=1292, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_sta (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_sta: tmp570 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (arg0) ; tmp569 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp569)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp569, atslab_0, tmp570) ; return (tmp569) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_sta] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 28040(line=1297, offs=18) -- 28102(line=1299, offs=55) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_ext (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp571) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_ext: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp571 = ats_true_bool ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: __ats_lab_80_1: tmp571 = ats_false_bool ; break ; } while (0) ; return (tmp571) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_ext] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 28162(line=1302, offs=18) -- 28224(line=1304, offs=55) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mac (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp572) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mac: do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp572 = ats_true_bool ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: __ats_lab_82_1: tmp572 = ats_false_bool ; break ; } while (0) ; return (tmp572) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mac] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 28284(line=1307, offs=18) -- 28346(line=1309, offs=55) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_sta (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp573) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_sta: do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp573 = ats_true_bool ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: __ats_lab_84_1: tmp573 = ats_false_bool ; break ; } while (0) ; return (tmp573) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_sta] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 28435(line=1315, offs=23) -- 28671(line=1330, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mainats (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mainats: do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp575 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp574 = patsopt_string_test_prefix (tmp575, ATSstrcst("mainats")) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: __ats_lab_86_1: tmp574 = ats_false_bool ; break ; } while (0) ; return (tmp574) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mainats] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 28752(line=1336, offs=1) -- 29150(line=1353, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstdec_make: tmp577 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp579 = ats_caselptrlab_mac(anairiats_sum_13, arg4, atslab_0) ; tmp580 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp581 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp579), atslab_token_loc) ; tmp578 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp580, tmp581) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_88_1: tmp582 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp583 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg3), atslab_s0exp_loc) ; tmp578 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp582, tmp583) ; break ; } while (0) ; tmp584 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp576 = ATS_MALLOC(sizeof(anairiats_rec_50)) ; ats_selptrset_mac(anairiats_rec_50, tmp576, atslab_d0cstdec_loc, tmp578) ; ats_selptrset_mac(anairiats_rec_50, tmp576, atslab_d0cstdec_fil, tmp577) ; ats_selptrset_mac(anairiats_rec_50, tmp576, atslab_d0cstdec_sym, tmp584) ; ats_selptrset_mac(anairiats_rec_50, tmp576, atslab_d0cstdec_arg, arg1) ; ats_selptrset_mac(anairiats_rec_50, tmp576, atslab_d0cstdec_eff, arg2) ; ats_selptrset_mac(anairiats_rec_50, tmp576, atslab_d0cstdec_res, arg3) ; ats_selptrset_mac(anairiats_rec_50, tmp576, atslab_d0cstdec_extopt, arg4) ; return (tmp576) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstdec_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 29219(line=1358, offs=11) -- 29285(line=1360, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0de (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0de: tmp586 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp588 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp587 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp587)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp587, atslab_0, tmp588) ; tmp585 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp585, atslab_p0at_loc, tmp586) ; ats_selptrset_mac(anairiats_rec_51, tmp585, atslab_p0at_node, tmp587) ; return (tmp585) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 29332(line=1363, offs=11) -- 29463(line=1367, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_dqid (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp589) ; ATSlocal (ats_ptr_type, tmp590) ; ATSlocal (ats_ptr_type, tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_dqid: tmp591 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_d0ynq_loc) ; tmp592 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp590 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp591, tmp592) ; tmp594 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp593 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp593)->tag = 1 ; ats_selptrset_mac(anairiats_sum_12, tmp593, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp593, atslab_1, tmp594) ; tmp589 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp589, atslab_p0at_loc, tmp590) ; ats_selptrset_mac(anairiats_rec_51, tmp589, atslab_p0at_node, tmp593) ; return (tmp589) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_dqid] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 29506(line=1370, offs=11) -- 29621(line=1374, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_opid (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; ATSlocal (ats_ptr_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_opid: tmp597 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp598 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp596 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp597, tmp598) ; tmp600 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp599 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp599)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp599, atslab_0, tmp600) ; tmp595 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp595, atslab_p0at_loc, tmp596) ; ats_selptrset_mac(anairiats_rec_51, tmp595, atslab_p0at_node, tmp599) ; return (tmp595) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_opid] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 29686(line=1379, offs=11) -- 29749(line=1381, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0nt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0nt: tmp602 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp603 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp603)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp603, atslab_0, arg0) ; tmp601 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp601, atslab_p0at_loc, tmp602) ; ats_selptrset_mac(anairiats_rec_51, tmp601, atslab_p0at_node, tmp603) ; return (tmp601) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 29771(line=1383, offs=12) -- 29835(line=1385, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_c0har (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_c0har: tmp605 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp606 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp606)->tag = 4 ; ats_selptrset_mac(anairiats_sum_9, tmp606, atslab_0, arg0) ; tmp604 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp604, atslab_p0at_loc, tmp605) ; ats_selptrset_mac(anairiats_rec_51, tmp604, atslab_p0at_node, tmp606) ; return (tmp604) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_c0har] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 29858(line=1387, offs=13) -- 29923(line=1389, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_f0loat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_f0loat: tmp608 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp609 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp609)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp609, atslab_0, arg0) ; tmp607 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp607, atslab_p0at_loc, tmp608) ; ats_selptrset_mac(anairiats_rec_51, tmp607, atslab_p0at_node, tmp609) ; return (tmp607) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 29947(line=1391, offs=14) -- 30013(line=1393, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_s0tring (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_s0tring: tmp611 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp612 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp612)->tag = 6 ; ats_selptrset_mac(anairiats_sum_9, tmp612, atslab_0, arg0) ; tmp610 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp610, atslab_p0at_loc, tmp611) ; ats_selptrset_mac(anairiats_rec_51, tmp610, atslab_p0at_node, tmp612) ; return (tmp610) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 30055(line=1398, offs=10) -- 30175(line=1402, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; ATSlocal (ats_ptr_type, tmp617) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_app: tmp615 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg0), atslab_p0at_loc) ; tmp616 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg1), atslab_p0at_loc) ; tmp614 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp615, tmp616) ; tmp617 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp617)->tag = 7 ; ats_selptrset_mac(anairiats_sum_12, tmp617, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp617, atslab_1, arg1) ; tmp613 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp613, atslab_p0at_loc, tmp614) ; ats_selptrset_mac(anairiats_rec_51, tmp613, atslab_p0at_node, tmp617) ; return (tmp613) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_app] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 30241(line=1408, offs=3) -- 30374(line=1412, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_list (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp618) ; ATSlocal (ats_ptr_type, tmp619) ; ATSlocal (ats_ptr_type, tmp620) ; ATSlocal (ats_ptr_type, tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_list: tmp620 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp621 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp619 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp620, tmp621) ; tmp622 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp622)->tag = 8 ; ats_selptrset_mac(anairiats_sum_5, tmp622, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp622, atslab_1, arg2) ; tmp618 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp618, atslab_p0at_loc, tmp619) ; ats_selptrset_mac(anairiats_rec_51, tmp618, atslab_p0at_node, tmp622) ; return (tmp618) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_list] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 30438(line=1418, offs=1) -- 30578(line=1424, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_lst (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; ATSlocal (ats_ptr_type, tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_lst: tmp625 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp626 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp625, tmp626) ; tmp627 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp627)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp627, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp627, atslab_1, arg2) ; tmp623 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp623, atslab_p0at_loc, tmp624) ; ats_selptrset_mac(anairiats_rec_51, tmp623, atslab_p0at_node, tmp627) ; return (tmp623) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_lst] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 30820(line=1442, offs=10) -- 30966(line=1448, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_tup (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp630) ; ATSlocal (ats_ptr_type, tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_tup: tmp630 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp631 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp629 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp630, tmp631) ; tmp632 = ATS_MALLOC(sizeof(anairiats_sum_36)) ; ((ats_sum_ptr_type)tmp632)->tag = 10 ; ats_selptrset_mac(anairiats_sum_36, tmp632, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_36, tmp632, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_36, tmp632, atslab_2, arg3) ; tmp628 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp628, atslab_p0at_loc, tmp629) ; ats_selptrset_mac(anairiats_rec_51, tmp628, atslab_p0at_node, tmp632) ; return (tmp628) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_tup] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 31008(line=1451, offs=10) -- 31154(line=1457, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_rec (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp633) ; ATSlocal (ats_ptr_type, tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; ATSlocal (ats_ptr_type, tmp636) ; ATSlocal (ats_ptr_type, tmp637) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_rec: tmp635 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp636 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp634 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp635, tmp636) ; tmp637 = ATS_MALLOC(sizeof(anairiats_sum_36)) ; ((ats_sum_ptr_type)tmp637)->tag = 11 ; ats_selptrset_mac(anairiats_sum_36, tmp637, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_36, tmp637, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_36, tmp637, atslab_2, arg3) ; tmp633 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp633, atslab_p0at_loc, tmp634) ; ats_selptrset_mac(anairiats_rec_51, tmp633, atslab_p0at_node, tmp637) ; return (tmp633) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_rec] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 31218(line=1462, offs=11) -- 31337(line=1466, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_free (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp638) ; ATSlocal (ats_ptr_type, tmp639) ; ATSlocal (ats_ptr_type, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; ATSlocal (ats_ptr_type, tmp642) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_free: tmp640 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp641 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg1), atslab_p0at_loc) ; tmp639 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp640, tmp641) ; tmp642 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp642)->tag = 12 ; ats_selptrset_mac(anairiats_sum_9, tmp642, atslab_0, arg1) ; tmp638 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp638, atslab_p0at_loc, tmp639) ; ats_selptrset_mac(anairiats_rec_51, tmp638, atslab_p0at_node, tmp642) ; return (tmp638) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_free] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 31383(line=1469, offs=13) -- 31504(line=1473, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_unfold (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; ATSlocal (ats_ptr_type, tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_unfold: tmp645 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp646 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg1), atslab_p0at_loc) ; tmp644 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp645, tmp646) ; tmp647 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp647)->tag = 13 ; ats_selptrset_mac(anairiats_sum_9, tmp647, atslab_0, arg1) ; tmp643 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp643, atslab_p0at_loc, tmp644) ; ats_selptrset_mac(anairiats_rec_51, tmp643, atslab_p0at_node, tmp647) ; return (tmp643) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_unfold] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 31576(line=1479, offs=3) -- 31704(line=1483, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_svararg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp648) ; ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; ATSlocal (ats_ptr_type, tmp652) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_svararg: tmp650 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp651 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp649 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp650, tmp651) ; tmp652 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp652)->tag = 15 ; ats_selptrset_mac(anairiats_sum_9, tmp652, atslab_0, arg1) ; tmp648 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp648, atslab_p0at_loc, tmp649) ; ats_selptrset_mac(anairiats_rec_51, tmp648, atslab_p0at_node, tmp652) ; return (tmp648) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_svararg] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 31754(line=1487, offs=3) -- 31880(line=1491, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_exist (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; ATSlocal (ats_ptr_type, tmp657) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_exist: tmp655 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp656 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp654 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp655, tmp656) ; tmp657 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp657)->tag = 14 ; ats_selptrset_mac(anairiats_sum_9, tmp657, atslab_0, arg1) ; tmp653 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp653, atslab_p0at_loc, tmp654) ; ats_selptrset_mac(anairiats_rec_51, tmp653, atslab_p0at_node, tmp657) ; return (tmp653) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_exist] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 31947(line=1496, offs=12) -- 32293(line=1512, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_refas (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp658) ; ATSlocal (ats_ptr_type, tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; ATSlocal (ats_ptr_type, tmp663) ; ATSlocal (ats_ptr_type, tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; ATSlocal (ats_ptr_type, tmp666) ; ATSlocal (ats_ptr_type, tmp667) ; // ATSlocal_void (tmp668) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_refas: tmp659 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg0), atslab_p0at_loc) ; tmp661 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg1), atslab_p0at_loc) ; tmp660 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp659, tmp661) ; tmp662 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg0), atslab_p0at_node) ; do { /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp662)->tag != 0) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp663 = ats_caselptrlab_mac(anairiats_sum_9, tmp662, atslab_0) ; tmp664 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp664)->tag = 16 ; ats_selptrset_mac(anairiats_sum_14, tmp664, atslab_0, tmp663) ; ats_selptrset_mac(anairiats_sum_14, tmp664, atslab_1, tmp659) ; ats_selptrset_mac(anairiats_sum_14, tmp664, atslab_2, arg1) ; tmp658 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp658, atslab_p0at_loc, tmp660) ; ats_selptrset_mac(anairiats_rec_51, tmp658, atslab_p0at_node, tmp664) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: __ats_lab_90_1: tmp666 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg0), atslab_p0at_loc) ; tmp667 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_as_75) ; tmp665 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make (tmp666, tmp667) ; /* tmp668 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add (tmp665) ; tmp658 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_err (tmp660) ; break ; } while (0) ; return (tmp658) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_refas] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 32355(line=1517, offs=10) -- 32470(line=1521, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_ann (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp669) ; ATSlocal (ats_ptr_type, tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; ATSlocal (ats_ptr_type, tmp672) ; ATSlocal (ats_ptr_type, tmp673) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_ann: tmp671 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg0), atslab_p0at_loc) ; tmp672 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg1), atslab_s0exp_loc) ; tmp670 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp671, tmp672) ; tmp673 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp673)->tag = 17 ; ats_selptrset_mac(anairiats_sum_12, tmp673, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp673, atslab_1, arg1) ; tmp669 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp669, atslab_p0at_loc, tmp670) ; ats_selptrset_mac(anairiats_rec_51, tmp669, atslab_p0at_node, tmp673) ; return (tmp669) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_ann] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 32533(line=1526, offs=10) -- 32583(line=1528, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_err (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_err: tmp675 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Terr_18) ; tmp674 = ATS_MALLOC(sizeof(anairiats_rec_51)) ; ats_selptrset_mac(anairiats_rec_51, tmp674, atslab_p0at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_51, tmp674, atslab_p0at_node, tmp675) ; return (tmp674) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_err] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 32629(line=1533, offs=14) -- 32742(line=1537, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_norm (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; ATSlocal (ats_ptr_type, tmp679) ; ATSlocal (ats_ptr_type, tmp680) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_norm: tmp678 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_l0ab_loc) ; tmp679 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg1), atslab_p0at_loc) ; tmp677 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp678, tmp679) ; tmp680 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp680, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp680, atslab_1, arg1) ; tmp676 = ATS_MALLOC(sizeof(anairiats_rec_52)) ; ats_selptrset_mac(anairiats_rec_52, tmp676, atslab_labp0at_loc, tmp677) ; ats_selptrset_mac(anairiats_rec_52, tmp676, atslab_labp0at_node, tmp680) ; return (tmp676) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_norm] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 32792(line=1540, offs=14) -- 32863(line=1542, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_omit (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_ptr_type, tmp682) ; ATSlocal (ats_ptr_type, tmp683) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_omit: tmp682 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp683 = (ats_sum_ptr_type)0 ; tmp681 = ATS_MALLOC(sizeof(anairiats_rec_52)) ; ats_selptrset_mac(anairiats_rec_52, tmp681, atslab_labp0at_loc, tmp682) ; ats_selptrset_mac(anairiats_rec_52, tmp681, atslab_labp0at_node, tmp683) ; return (tmp681) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_omit] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 32944(line=1548, offs=3) -- 32974(line=1548, offs=33) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_none () { /* local vardec */ ATSlocal (ats_ptr_type, tmp684) ; ATSlocal (ats_ptr_type, tmp685) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_none: tmp685 = (ats_sum_ptr_type)0 ; tmp684 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp684)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp684, atslab_0, tmp685) ; return (tmp684) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 33043(line=1553, offs=3) -- 33083(line=1553, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_some (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp686) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_some: tmp686 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp686)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp686, atslab_0, arg1) ; return (tmp686) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_some] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 33143(line=1557, offs=20) -- 33172(line=1557, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_svararglst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp687) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_svararglst: tmp687 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp687)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp687, atslab_0, arg0) ; return (tmp687) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_svararglst] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 33222(line=1563, offs=3) -- 33490(line=1572, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0mpmarg_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp688) ; ATSlocal (ats_ptr_type, tmp689) ; ATSlocal (ats_ptr_type, tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0mpmarg_make: tmp689 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp691 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (tmp691 == (ats_sum_ptr_type)0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp692 = ats_caselptrlab_mac(anairiats_sum_13, tmp691, atslab_0) ; ATS_FREE(tmp691) ; tmp693 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp692), atslab_s0exp_loc) ; tmp690 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp689, tmp693) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (tmp691 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: tmp690 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_leftmost (tmp689) ; break ; } while (0) ; tmp688 = ATS_MALLOC(sizeof(anairiats_rec_53)) ; ats_selptrset_mac(anairiats_rec_53, tmp688, atslab_t0mpmarg_loc, tmp690) ; ats_selptrset_mac(anairiats_rec_53, tmp688, atslab_t0mpmarg_arg, arg1) ; return (tmp688) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0mpmarg_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 33547(line=1575, offs=20) -- 33680(line=1580, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_ptr_type, tmp698) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_none: tmp695 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_loc) ; tmp696 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_qua) ; tmp697 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_sym) ; tmp698 = (ats_sum_ptr_type)0 ; tmp694 = ATS_MALLOC(sizeof(anairiats_rec_54)) ; ats_selptrset_mac(anairiats_rec_54, tmp694, atslab_impqi0de_loc, tmp695) ; ats_selptrset_mac(anairiats_rec_54, tmp694, atslab_impqi0de_qua, tmp696) ; ats_selptrset_mac(anairiats_rec_54, tmp694, atslab_impqi0de_sym, tmp697) ; ats_selptrset_mac(anairiats_rec_54, tmp694, atslab_impqi0de_arg, tmp698) ; return (tmp694) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 33744(line=1584, offs=3) -- 33950(line=1592, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_some (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_ptr_type, tmp700) ; ATSlocal (ats_ptr_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; ATSlocal (ats_ptr_type, tmp703) ; ATSlocal (ats_ptr_type, tmp704) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_some: tmp700 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_loc) ; tmp702 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp701 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp700, tmp702) ; tmp703 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_qua) ; tmp704 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_sym) ; tmp699 = ATS_MALLOC(sizeof(anairiats_rec_54)) ; ats_selptrset_mac(anairiats_rec_54, tmp699, atslab_impqi0de_loc, tmp701) ; ats_selptrset_mac(anairiats_rec_54, tmp699, atslab_impqi0de_qua, tmp703) ; ats_selptrset_mac(anairiats_rec_54, tmp699, atslab_impqi0de_sym, tmp704) ; ats_selptrset_mac(anairiats_rec_54, tmp699, atslab_impqi0de_arg, arg1) ; return (tmp699) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_some] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 34025(line=1597, offs=11) -- 34091(line=1599, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_dyn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp705) ; ATSlocal (ats_ptr_type, tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_dyn: tmp706 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg0), atslab_p0at_loc) ; tmp707 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp707)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp707, atslab_0, arg0) ; tmp705 = ATS_MALLOC(sizeof(anairiats_rec_55)) ; ats_selptrset_mac(anairiats_rec_55, tmp705, atslab_f0arg_loc, tmp706) ; ats_selptrset_mac(anairiats_rec_55, tmp705, atslab_f0arg_node, tmp707) ; return (tmp705) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_dyn] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 34116(line=1603, offs=3) -- 34245(line=1607, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; ATSlocal (ats_ptr_type, tmp711) ; ATSlocal (ats_ptr_type, tmp712) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta1: tmp710 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp711 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp709 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp710, tmp711) ; tmp712 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp712)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp712, atslab_0, arg1) ; tmp708 = ATS_MALLOC(sizeof(anairiats_rec_55)) ; ats_selptrset_mac(anairiats_rec_55, tmp708, atslab_f0arg_loc, tmp709) ; ats_selptrset_mac(anairiats_rec_55, tmp708, atslab_f0arg_node, tmp712) ; return (tmp708) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta1] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 34293(line=1611, offs=3) -- 34422(line=1615, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp713) ; ATSlocal (ats_ptr_type, tmp714) ; ATSlocal (ats_ptr_type, tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; ATSlocal (ats_ptr_type, tmp717) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta2: tmp715 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp716 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp714 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp715, tmp716) ; tmp717 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp717)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp717, atslab_0, arg1) ; tmp713 = ATS_MALLOC(sizeof(anairiats_rec_55)) ; ats_selptrset_mac(anairiats_rec_55, tmp713, atslab_f0arg_loc, tmp714) ; ats_selptrset_mac(anairiats_rec_55, tmp713, atslab_f0arg_node, tmp717) ; return (tmp713) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta2] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 34469(line=1619, offs=3) -- 34600(line=1623, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp718) ; ATSlocal (ats_ptr_type, tmp719) ; ATSlocal (ats_ptr_type, tmp720) ; ATSlocal (ats_ptr_type, tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met: tmp720 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp721 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp719 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp720, tmp721) ; tmp722 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp722)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp722, atslab_0, arg1) ; tmp718 = ATS_MALLOC(sizeof(anairiats_rec_55)) ; ats_selptrset_mac(anairiats_rec_55, tmp718, atslab_f0arg_loc, tmp719) ; ats_selptrset_mac(anairiats_rec_55, tmp718, atslab_f0arg_node, tmp722) ; return (tmp718) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 34648(line=1626, offs=15) -- 34721(line=1628, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met_nil (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp723) ; ATSlocal (ats_ptr_type, tmp724) ; ATSlocal (ats_ptr_type, tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met_nil: tmp724 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp726 = (ats_sum_ptr_type)0 ; tmp725 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp725)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp725, atslab_0, tmp726) ; tmp723 = ATS_MALLOC(sizeof(anairiats_rec_55)) ; ats_selptrset_mac(anairiats_rec_55, tmp723, atslab_f0arg_loc, tmp724) ; ats_selptrset_mac(anairiats_rec_55, tmp723, atslab_f0arg_node, tmp725) ; return (tmp723) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met_nil] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 34799(line=1633, offs=17) -- 34857(line=1635, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_dot (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp727) ; ATSlocal (ats_ptr_type, tmp728) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_dot: tmp728 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp727 = ATS_MALLOC(sizeof(anairiats_rec_56)) ; ats_selptrset_mac(anairiats_rec_56, tmp727, atslab_s0elop_loc, tmp728) ; ats_selptrset_mac(anairiats_rec_56, tmp727, atslab_s0elop_knd, 0) ; return (tmp727) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_dot] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 34888(line=1637, offs=21) -- 34946(line=1639, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_minusgt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp729) ; ATSlocal (ats_ptr_type, tmp730) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_minusgt: tmp730 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp729 = ATS_MALLOC(sizeof(anairiats_rec_56)) ; ats_selptrset_mac(anairiats_rec_56, tmp729, atslab_s0elop_loc, tmp730) ; ats_selptrset_mac(anairiats_rec_56, tmp729, atslab_s0elop_knd, 1) ; return (tmp729) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_minusgt] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 34992(line=1644, offs=14) -- 35209(line=1651, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvarg_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp731) ; ATSlocal (ats_ptr_type, tmp732) ; ATSlocal (ats_ptr_type, tmp733) ; ATSlocal (ats_ptr_type, tmp734) ; ATSlocal (ats_ptr_type, tmp735) ; ATSlocal (ats_ptr_type, tmp736) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvarg_make: do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp733 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp734 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp735 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp733), atslab_s0exp_loc) ; tmp732 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp734, tmp735) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: tmp732 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; break ; } while (0) ; tmp736 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp731 = ATS_MALLOC(sizeof(anairiats_rec_57)) ; ats_selptrset_mac(anairiats_rec_57, tmp731, atslab_i0nvarg_loc, tmp732) ; ats_selptrset_mac(anairiats_rec_57, tmp731, atslab_i0nvarg_sym, tmp736) ; ats_selptrset_mac(anairiats_rec_57, tmp731, atslab_i0nvarg_typ, arg1) ; return (tmp731) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvarg_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 35290(line=1656, offs=24) -- 35385(line=1659, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp737) ; ATSlocal (ats_ptr_type, tmp738) ; ATSlocal (ats_ptr_type, tmp739) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none: tmp738 = (ats_sum_ptr_type)0 ; tmp739 = (ats_sum_ptr_type)0 ; tmp737 = ATS_MALLOC(sizeof(anairiats_rec_58)) ; ats_selptrset_mac(anairiats_rec_58, tmp737, atslab_i0nvresstate_loc, arg0) ; ats_selptrset_mac(anairiats_rec_58, tmp737, atslab_i0nvresstate_qua, tmp738) ; ats_selptrset_mac(anairiats_rec_58, tmp737, atslab_i0nvresstate_arg, tmp739) ; return (tmp737) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 35457(line=1663, offs=3) -- 35616(line=1668, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_some (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp740) ; ATSlocal (ats_ptr_type, tmp741) ; ATSlocal (ats_ptr_type, tmp742) ; ATSlocal (ats_ptr_type, tmp743) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_some: tmp742 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp743 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp741 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp742, tmp743) ; tmp740 = ATS_MALLOC(sizeof(anairiats_rec_58)) ; ats_selptrset_mac(anairiats_rec_58, tmp740, atslab_i0nvresstate_loc, tmp741) ; ats_selptrset_mac(anairiats_rec_58, tmp740, atslab_i0nvresstate_qua, arg1) ; ats_selptrset_mac(anairiats_rec_58, tmp740, atslab_i0nvresstate_arg, arg2) ; return (tmp740) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_some] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 35693(line=1673, offs=15) -- 35804(line=1680, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loopi0nv_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp744) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loopi0nv_make: tmp744 = ATS_MALLOC(sizeof(anairiats_rec_59)) ; ats_selptrset_mac(anairiats_rec_59, tmp744, atslab_loopi0nv_qua, arg0) ; ats_selptrset_mac(anairiats_rec_59, tmp744, atslab_loopi0nv_met, arg1) ; ats_selptrset_mac(anairiats_rec_59, tmp744, atslab_loopi0nv_arg, arg2) ; ats_selptrset_mac(anairiats_rec_59, tmp744, atslab_loopi0nv_res, arg3) ; return (tmp744) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loopi0nv_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 35877(line=1686, offs=3) -- 36093(line=1694, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__ifhead_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp745) ; ATSlocal (ats_ptr_type, tmp746) ; ATSlocal (ats_ptr_type, tmp747) ; ATSlocal (ats_ptr_type, tmp748) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__ifhead_make: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp747 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp746 = tmp747 ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_96_1: tmp748 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp746 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none (tmp748) ; break ; } while (0) ; tmp745 = ATS_MALLOC(sizeof(anairiats_rec_60)) ; ats_selptrset_mac(anairiats_rec_60, tmp745, atslab_ifhead_tok, arg0) ; ats_selptrset_mac(anairiats_rec_60, tmp745, atslab_ifhead_inv, tmp746) ; return (tmp745) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__ifhead_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 36144(line=1698, offs=3) -- 36365(line=1706, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sifhead_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp749) ; ATSlocal (ats_ptr_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; ATSlocal (ats_ptr_type, tmp752) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sifhead_make: do { /* branch: __ats_lab_97 */ __ats_lab_97_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp751 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp750 = tmp751 ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_98_1: tmp752 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp750 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none (tmp752) ; break ; } while (0) ; tmp749 = ATS_MALLOC(sizeof(anairiats_rec_61)) ; ats_selptrset_mac(anairiats_rec_61, tmp749, atslab_sifhead_tok, arg0) ; ats_selptrset_mac(anairiats_rec_61, tmp749, atslab_sifhead_inv, tmp750) ; return (tmp749) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sifhead_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 36439(line=1712, offs=3) -- 36665(line=1720, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__casehead_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp753) ; ATSlocal (ats_ptr_type, tmp754) ; ATSlocal (ats_ptr_type, tmp755) ; ATSlocal (ats_ptr_type, tmp756) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__casehead_make: do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp755 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp754 = tmp755 ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_100_1: tmp756 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp754 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none (tmp756) ; break ; } while (0) ; tmp753 = ATS_MALLOC(sizeof(anairiats_rec_62)) ; ats_selptrset_mac(anairiats_rec_62, tmp753, atslab_casehead_tok, arg0) ; ats_selptrset_mac(anairiats_rec_62, tmp753, atslab_casehead_inv, tmp754) ; return (tmp753) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__casehead_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 36720(line=1724, offs=3) -- 36951(line=1732, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__scasehead_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp757) ; ATSlocal (ats_ptr_type, tmp758) ; ATSlocal (ats_ptr_type, tmp759) ; ATSlocal (ats_ptr_type, tmp760) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__scasehead_make: do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp759 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp758 = tmp759 ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_102_1: tmp760 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp758 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none (tmp760) ; break ; } while (0) ; tmp757 = ATS_MALLOC(sizeof(anairiats_rec_63)) ; ats_selptrset_mac(anairiats_rec_63, tmp757, atslab_scasehead_tok, arg0) ; ats_selptrset_mac(anairiats_rec_63, tmp757, atslab_scasehead_inv, tmp758) ; return (tmp757) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__scasehead_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 37032(line=1738, offs=3) -- 37093(line=1740, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp761) ; ATSlocal (ats_ptr_type, tmp762) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_none: tmp762 = (ats_sum_ptr_type)0 ; tmp761 = ATS_MALLOC(sizeof(anairiats_rec_64)) ; ats_selptrset_mac(anairiats_rec_64, tmp761, atslab_loophead_tok, arg0) ; ats_selptrset_mac(anairiats_rec_64, tmp761, atslab_loophead_inv, tmp762) ; return (tmp761) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 37157(line=1744, offs=3) -- 37293(line=1748, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_some (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp763) ; ATSlocal (ats_ptr_type, tmp764) ; ATSlocal (ats_ptr_type, tmp765) ; ATSlocal (ats_ptr_type, tmp766) ; ATSlocal (ats_ptr_type, tmp767) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_some: tmp765 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp766 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp764 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp765, tmp766) ; tmp767 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp767, atslab_0, arg1) ; tmp763 = ATS_MALLOC(sizeof(anairiats_rec_64)) ; ats_selptrset_mac(anairiats_rec_64, tmp763, atslab_loophead_tok, arg0) ; ats_selptrset_mac(anairiats_rec_64, tmp763, atslab_loophead_inv, tmp767) ; return (tmp763) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_some] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 37372(line=1754, offs=3) -- 37595(line=1762, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__tryhead_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp768) ; ATSlocal (ats_ptr_type, tmp769) ; ATSlocal (ats_ptr_type, tmp770) ; ATSlocal (ats_ptr_type, tmp771) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__tryhead_make: do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp770 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp769 = tmp770 ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_104_1: tmp771 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp769 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none (tmp771) ; break ; } while (0) ; tmp768 = ATS_MALLOC(sizeof(anairiats_rec_65)) ; ats_selptrset_mac(anairiats_rec_65, tmp768, atslab_tryhead_tok, arg0) ; ats_selptrset_mac(anairiats_rec_65, tmp768, atslab_tryhead_inv, tmp769) ; return (tmp768) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__tryhead_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 37716(line=1771, offs=11) -- 37786(line=1773, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ide (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp772) ; ATSlocal (ats_ptr_type, tmp773) ; ATSlocal (ats_ptr_type, tmp774) ; ATSlocal (ats_ptr_type, tmp775) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ide: tmp773 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp775 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp774 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp774)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp774, atslab_0, tmp775) ; tmp772 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp772, atslab_d0exp_loc, tmp773) ; ats_selptrset_mac(anairiats_rec_66, tmp772, atslab_d0exp_node, tmp774) ; return (tmp772) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ide] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 37831(line=1776, offs=12) -- 37948(line=1780, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_opid (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp776) ; ATSlocal (ats_ptr_type, tmp777) ; ATSlocal (ats_ptr_type, tmp778) ; ATSlocal (ats_ptr_type, tmp779) ; ATSlocal (ats_ptr_type, tmp780) ; ATSlocal (ats_ptr_type, tmp781) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_opid: tmp778 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp779 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp777 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp778, tmp779) ; tmp781 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp780 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp780)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp780, atslab_0, tmp781) ; tmp776 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp776, atslab_d0exp_loc, tmp777) ; ats_selptrset_mac(anairiats_rec_66, tmp776, atslab_d0exp_node, tmp780) ; return (tmp776) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_opid] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 37994(line=1783, offs=12) -- 38127(line=1787, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_dqid (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp782) ; ATSlocal (ats_ptr_type, tmp783) ; ATSlocal (ats_ptr_type, tmp784) ; ATSlocal (ats_ptr_type, tmp785) ; ATSlocal (ats_ptr_type, tmp786) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_dqid: tmp783 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_qua) ; tmp784 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_sym) ; tmp785 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_loc) ; tmp786 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp786)->tag = 1 ; ats_selptrset_mac(anairiats_sum_12, tmp786, atslab_0, tmp783) ; ats_selptrset_mac(anairiats_sum_12, tmp786, atslab_1, tmp784) ; tmp782 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp782, atslab_d0exp_loc, tmp785) ; ats_selptrset_mac(anairiats_rec_66, tmp782, atslab_d0exp_node, tmp786) ; return (tmp782) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_dqid] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 38195(line=1792, offs=13) -- 38267(line=1794, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_idext (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp787) ; ATSlocal (ats_ptr_type, tmp788) ; ATSlocal (ats_ptr_type, tmp789) ; ATSlocal (ats_ptr_type, tmp790) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_idext: tmp788 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp790 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp789 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp789)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp789, atslab_0, tmp790) ; tmp787 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp787, atslab_d0exp_loc, tmp788) ; ats_selptrset_mac(anairiats_rec_66, tmp787, atslab_d0exp_node, tmp789) ; return (tmp787) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_idext] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 38335(line=1799, offs=12) -- 38405(line=1802, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_i0nt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp791) ; ATSlocal (ats_ptr_type, tmp792) ; ATSlocal (ats_ptr_type, tmp793) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_i0nt: tmp792 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp793 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp793)->tag = 4 ; ats_selptrset_mac(anairiats_sum_9, tmp793, atslab_0, arg0) ; tmp791 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp791, atslab_d0exp_loc, tmp792) ; ats_selptrset_mac(anairiats_rec_66, tmp791, atslab_d0exp_node, tmp793) ; return (tmp791) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 38452(line=1805, offs=13) -- 38523(line=1808, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_c0har (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp794) ; ATSlocal (ats_ptr_type, tmp795) ; ATSlocal (ats_ptr_type, tmp796) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_c0har: tmp795 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp796 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp796)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp796, atslab_0, arg0) ; tmp794 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp794, atslab_d0exp_loc, tmp795) ; ats_selptrset_mac(anairiats_rec_66, tmp794, atslab_d0exp_node, tmp796) ; return (tmp794) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_c0har] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 38572(line=1811, offs=14) -- 38644(line=1814, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_f0loat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp797) ; ATSlocal (ats_ptr_type, tmp798) ; ATSlocal (ats_ptr_type, tmp799) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_f0loat: tmp798 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp799 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp799)->tag = 6 ; ats_selptrset_mac(anairiats_sum_9, tmp799, atslab_0, arg0) ; tmp797 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp797, atslab_d0exp_loc, tmp798) ; ats_selptrset_mac(anairiats_rec_66, tmp797, atslab_d0exp_node, tmp799) ; return (tmp797) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 38695(line=1817, offs=15) -- 38768(line=1820, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_s0tring (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp800) ; ATSlocal (ats_ptr_type, tmp801) ; ATSlocal (ats_ptr_type, tmp802) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_s0tring: tmp801 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp802 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp802)->tag = 7 ; ats_selptrset_mac(anairiats_sum_9, tmp802, atslab_0, arg0) ; tmp800 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp800, atslab_d0exp_loc, tmp801) ; ats_selptrset_mac(anairiats_rec_66, tmp800, atslab_d0exp_node, tmp802) ; return (tmp800) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 38839(line=1825, offs=13) -- 38893(line=1827, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_empty (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp803) ; ATSlocal (ats_ptr_type, tmp804) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_empty: tmp804 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eempty_8) ; tmp803 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp803, atslab_d0exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_66, tmp803, atslab_d0exp_node, tmp804) ; return (tmp803) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_empty] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 38938(line=1832, offs=13) -- 39015(line=1835, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFIL (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp805) ; ATSlocal (ats_ptr_type, tmp806) ; ATSlocal (ats_ptr_type, tmp807) ; ATSlocal (ats_ptr_type, tmp808) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFIL: tmp806 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp808 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfil_0) ; tmp807 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp807)->tag = 9 ; ats_selptrset_mac(anairiats_sum_9, tmp807, atslab_0, tmp808) ; tmp805 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp805, atslab_d0exp_loc, tmp806) ; ats_selptrset_mac(anairiats_rec_66, tmp805, atslab_d0exp_node, tmp807) ; return (tmp805) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFIL] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 39039(line=1838, offs=13) -- 39116(line=1841, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYLOC (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp809) ; ATSlocal (ats_ptr_type, tmp810) ; ATSlocal (ats_ptr_type, tmp811) ; ATSlocal (ats_ptr_type, tmp812) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYLOC: tmp810 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp812 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyloc_1) ; tmp811 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp811)->tag = 9 ; ats_selptrset_mac(anairiats_sum_9, tmp811, atslab_0, tmp812) ; tmp809 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp809, atslab_d0exp_loc, tmp810) ; ats_selptrset_mac(anairiats_rec_66, tmp809, atslab_d0exp_node, tmp811) ; return (tmp809) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYLOC] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 39140(line=1844, offs=13) -- 39217(line=1847, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFUN (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp813) ; ATSlocal (ats_ptr_type, tmp814) ; ATSlocal (ats_ptr_type, tmp815) ; ATSlocal (ats_ptr_type, tmp816) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFUN: tmp814 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp816 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfun_2) ; tmp815 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp815)->tag = 9 ; ats_selptrset_mac(anairiats_sum_9, tmp815, atslab_0, tmp816) ; tmp813 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp813, atslab_d0exp_loc, tmp814) ; ats_selptrset_mac(anairiats_rec_66, tmp813, atslab_d0exp_node, tmp815) ; return (tmp813) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFUN] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 39264(line=1853, offs=3) -- 39397(line=1860, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tyrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp817) ; ATSlocal (ats_ptr_type, tmp818) ; ATSlocal (ats_ptr_type, tmp819) ; ATSlocal (ats_ptr_type, tmp820) ; ATSlocal (ats_ptr_type, tmp821) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tyrep: tmp819 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp820 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp818 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp819, tmp820) ; tmp821 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp821)->tag = 10 ; ats_selptrset_mac(anairiats_sum_9, tmp821, atslab_0, arg1) ; tmp817 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp817, atslab_d0exp_loc, tmp818) ; ats_selptrset_mac(anairiats_rec_66, tmp817, atslab_d0exp_node, tmp821) ; return (tmp817) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tyrep] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 39470(line=1866, offs=3) -- 39606(line=1873, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_literal (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp822) ; ATSlocal (ats_ptr_type, tmp823) ; ATSlocal (ats_ptr_type, tmp824) ; ATSlocal (ats_ptr_type, tmp825) ; ATSlocal (ats_ptr_type, tmp826) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_literal: tmp824 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp825 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp823 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp824, tmp825) ; tmp826 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp826)->tag = 11 ; ats_selptrset_mac(anairiats_sum_9, tmp826, atslab_0, arg1) ; tmp822 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp822, atslab_d0exp_loc, tmp823) ; ats_selptrset_mac(anairiats_rec_66, tmp822, atslab_d0exp_node, tmp826) ; return (tmp822) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_literal] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 39678(line=1879, offs=1) -- 39867(line=1890, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extval (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp827) ; ATSlocal (ats_ptr_type, tmp828) ; ATSlocal (ats_ptr_type, tmp829) ; ATSlocal (ats_ptr_type, tmp830) ; ATSlocal (ats_ptr_type, tmp831) ; ATSlocal (ats_ptr_type, tmp832) ; ATSlocal (ats_ptr_type, tmp833) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extval: tmp828 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_node) ; if (((ats_sum_ptr_type)tmp828)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 39722(line=1883, offs=5) -- 39752(line=1883, offs=35)") ; } tmp829 = ats_caselptrlab_mac(anairiats_sum_9, tmp828, atslab_0) ; tmp831 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp832 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp830 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp831, tmp832) ; tmp833 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp833)->tag = 12 ; ats_selptrset_mac(anairiats_sum_12, tmp833, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp833, atslab_1, tmp829) ; tmp827 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp827, atslab_d0exp_loc, tmp830) ; ats_selptrset_mac(anairiats_rec_66, tmp827, atslab_d0exp_node, tmp833) ; return (tmp827) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extval] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 39919(line=1893, offs=16) -- 40122(line=1901, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extfcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp834) ; ATSlocal (ats_ptr_type, tmp835) ; ATSlocal (ats_ptr_type, tmp836) ; ATSlocal (ats_ptr_type, tmp837) ; ATSlocal (ats_ptr_type, tmp838) ; ATSlocal (ats_ptr_type, tmp839) ; ATSlocal (ats_ptr_type, tmp840) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extfcall: tmp835 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_node) ; if (((ats_sum_ptr_type)tmp835)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 39969(line=1896, offs=7) -- 40001(line=1896, offs=39)") ; } tmp836 = ats_caselptrlab_mac(anairiats_sum_9, tmp835, atslab_0) ; tmp838 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp839 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp837 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp838, tmp839) ; tmp840 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp840)->tag = 13 ; ats_selptrset_mac(anairiats_sum_14, tmp840, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp840, atslab_1, tmp836) ; ats_selptrset_mac(anairiats_sum_14, tmp840, atslab_2, arg3) ; tmp834 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp834, atslab_d0exp_loc, tmp837) ; ats_selptrset_mac(anairiats_rec_66, tmp834, atslab_d0exp_node, tmp840) ; return (tmp834) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extfcall] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 40176(line=1905, offs=1) -- 40391(line=1913, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extmcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp841) ; ATSlocal (ats_ptr_type, tmp842) ; ATSlocal (ats_ptr_type, tmp843) ; ATSlocal (ats_ptr_type, tmp844) ; ATSlocal (ats_ptr_type, tmp845) ; ATSlocal (ats_ptr_type, tmp846) ; ATSlocal (ats_ptr_type, tmp847) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extmcall: tmp842 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_node) ; if (((ats_sum_ptr_type)tmp842)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 40232(line=1908, offs=7) -- 40264(line=1908, offs=39)") ; } tmp843 = ats_caselptrlab_mac(anairiats_sum_9, tmp842, atslab_0) ; tmp845 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp846 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_token_loc) ; tmp844 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp845, tmp846) ; tmp847 = ATS_MALLOC(sizeof(anairiats_sum_31)) ; ((ats_sum_ptr_type)tmp847)->tag = 14 ; ats_selptrset_mac(anairiats_sum_31, tmp847, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_31, tmp847, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_31, tmp847, atslab_2, tmp843) ; ats_selptrset_mac(anairiats_sum_31, tmp847, atslab_3, arg4) ; tmp841 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp841, atslab_d0exp_loc, tmp844) ; ats_selptrset_mac(anairiats_rec_66, tmp841, atslab_d0exp_node, tmp847) ; return (tmp841) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extmcall] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 40466(line=1919, offs=3) -- 40732(line=1931, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_foldat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp848) ; ATSlocal (ats_ptr_type, tmp849) ; ATSlocal (ats_ptr_type, tmp850) ; ATSlocal (ats_ptr_type, tmp851) ; ATSlocal (ats_ptr_type, tmp852) ; ATSlocal (ats_ptr_type, tmp853) ; ATSlocal (ats_ptr_type, tmp854) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_foldat: tmp849 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (tmp849 != (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp850 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: // if (tmp849 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_106_1: tmp851 = ats_caselptrlab_mac(anairiats_sum_13, tmp849, atslab_0) ; ATS_FREE(tmp849) ; tmp852 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp853 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, tmp851), atslab_d0exp_loc) ; tmp850 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp852, tmp853) ; break ; } while (0) ; tmp854 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp854)->tag = 15 ; ats_selptrset_mac(anairiats_sum_9, tmp854, atslab_0, arg1) ; tmp848 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp848, atslab_d0exp_loc, tmp850) ; ats_selptrset_mac(anairiats_rec_66, tmp848, atslab_d0exp_node, tmp854) ; return (tmp848) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_foldat] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 40787(line=1935, offs=3) -- 41059(line=1949, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_freeat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp855) ; ATSlocal (ats_ptr_type, tmp856) ; ATSlocal (ats_ptr_type, tmp857) ; ATSlocal (ats_ptr_type, tmp858) ; ATSlocal (ats_ptr_type, tmp859) ; ATSlocal (ats_ptr_type, tmp860) ; ATSlocal (ats_ptr_type, tmp861) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_freeat: tmp856 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (tmp856 != (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp857 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (tmp856 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp858 = ats_caselptrlab_mac(anairiats_sum_13, tmp856, atslab_0) ; ATS_FREE(tmp856) ; tmp859 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp860 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, tmp858), atslab_d0exp_loc) ; tmp857 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp859, tmp860) ; break ; } while (0) ; tmp861 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp861)->tag = 16 ; ats_selptrset_mac(anairiats_sum_9, tmp861, atslab_0, arg1) ; tmp855 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp855, atslab_d0exp_loc, tmp857) ; ats_selptrset_mac(anairiats_rec_66, tmp855, atslab_d0exp_node, tmp861) ; return (tmp855) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_freeat] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 41134(line=1955, offs=3) -- 41286(line=1960, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tmpid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp862) ; ATSlocal (ats_ptr_type, tmp863) ; ATSlocal (ats_ptr_type, tmp864) ; ATSlocal (ats_ptr_type, tmp865) ; ATSlocal (ats_ptr_type, tmp866) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tmpid: tmp863 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_loc) ; tmp865 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp864 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp863, tmp865) ; tmp866 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp866)->tag = 17 ; ats_selptrset_mac(anairiats_sum_12, tmp866, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp866, atslab_1, arg1) ; tmp862 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp862, atslab_d0exp_loc, tmp864) ; ats_selptrset_mac(anairiats_rec_66, tmp862, atslab_d0exp_node, tmp866) ; return (tmp862) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tmpid] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 41357(line=1965, offs=15) -- 41550(line=1972, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_let_seq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp867) ; ATSlocal (ats_ptr_type, tmp868) ; ATSlocal (ats_ptr_type, tmp869) ; ATSlocal (ats_ptr_type, tmp870) ; ATSlocal (ats_ptr_type, tmp871) ; ATSlocal (ats_ptr_type, tmp872) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_let_seq: tmp869 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp870 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp868 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp869, tmp870) ; tmp871 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq (arg2, arg3, arg4) ; tmp872 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp872)->tag = 18 ; ats_selptrset_mac(anairiats_sum_12, tmp872, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp872, atslab_1, tmp871) ; tmp867 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp867, atslab_d0exp_loc, tmp868) ; ats_selptrset_mac(anairiats_rec_66, tmp867, atslab_d0exp_node, tmp872) ; return (tmp867) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_let_seq] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 41604(line=1976, offs=3) -- 41732(line=1980, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_declseq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp873) ; ATSlocal (ats_ptr_type, tmp874) ; ATSlocal (ats_ptr_type, tmp875) ; ATSlocal (ats_ptr_type, tmp876) ; ATSlocal (ats_ptr_type, tmp877) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_declseq: tmp875 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp876 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp874 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp875, tmp876) ; tmp877 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp877)->tag = 19 ; ats_selptrset_mac(anairiats_sum_9, tmp877, atslab_0, arg1) ; tmp873 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp873, atslab_d0exp_loc, tmp874) ; ats_selptrset_mac(anairiats_rec_66, tmp873, atslab_d0exp_node, tmp877) ; return (tmp873) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_declseq] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 41805(line=1986, offs=3) -- 41936(line=1990, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_where (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_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_syntax_2esats__d0exp_where: tmp880 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg0), atslab_d0exp_loc) ; tmp881 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp879 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp880, tmp881) ; tmp882 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp882)->tag = 20 ; ats_selptrset_mac(anairiats_sum_12, tmp882, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp882, atslab_1, arg1) ; tmp878 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp878, atslab_d0exp_loc, tmp879) ; ats_selptrset_mac(anairiats_rec_66, tmp878, atslab_d0exp_node, tmp882) ; return (tmp878) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_where] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 42003(line=1995, offs=11) -- 42127(line=1999, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp883) ; ATSlocal (ats_ptr_type, tmp884) ; ATSlocal (ats_ptr_type, tmp885) ; ATSlocal (ats_ptr_type, tmp886) ; ATSlocal (ats_ptr_type, tmp887) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_app: tmp885 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg0), atslab_d0exp_loc) ; tmp886 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg1), atslab_d0exp_loc) ; tmp884 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp885, tmp886) ; tmp887 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp887)->tag = 21 ; ats_selptrset_mac(anairiats_sum_12, tmp887, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp887, atslab_1, arg1) ; tmp883 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp883, atslab_d0exp_loc, tmp884) ; ats_selptrset_mac(anairiats_rec_66, tmp883, atslab_d0exp_node, tmp887) ; return (tmp883) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_app] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 42195(line=2005, offs=3) -- 42330(line=2009, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_list (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp888) ; ATSlocal (ats_ptr_type, tmp889) ; ATSlocal (ats_ptr_type, tmp890) ; ATSlocal (ats_ptr_type, tmp891) ; ATSlocal (ats_ptr_type, tmp892) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_list: tmp890 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp891 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp889 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp890, tmp891) ; tmp892 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp892)->tag = 22 ; ats_selptrset_mac(anairiats_sum_5, tmp892, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp892, atslab_1, arg2) ; tmp888 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp888, atslab_d0exp_loc, tmp889) ; ats_selptrset_mac(anairiats_rec_66, tmp888, atslab_d0exp_node, tmp892) ; return (tmp888) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_list] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 42399(line=2014, offs=14) -- 42693(line=2025, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifhead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp893) ; ATSlocal (ats_ptr_type, tmp894) ; ATSlocal (ats_ptr_type, tmp895) ; ATSlocal (ats_ptr_type, tmp896) ; ATSlocal (ats_ptr_type, tmp897) ; ATSlocal (ats_ptr_type, tmp898) ; ATSlocal (ats_ptr_type, tmp899) ; ATSlocal (ats_ptr_type, tmp900) ; ATSlocal (ats_ptr_type, tmp901) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifhead: tmp894 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_60, arg0), atslab_ifhead_tok) ; do { /* branch: __ats_lab_109 */ __ats_lab_109_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp896 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_0) ; tmp897 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp894), atslab_token_loc) ; tmp898 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, tmp896), atslab_d0exp_loc) ; tmp895 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp897, tmp898) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_110_1: tmp899 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp894), atslab_token_loc) ; tmp900 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp895 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp899, tmp900) ; break ; } while (0) ; tmp901 = ATS_MALLOC(sizeof(anairiats_sum_31)) ; ((ats_sum_ptr_type)tmp901)->tag = 23 ; ats_selptrset_mac(anairiats_sum_31, tmp901, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_31, tmp901, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_31, tmp901, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_31, tmp901, atslab_3, arg3) ; tmp893 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp893, atslab_d0exp_loc, tmp895) ; ats_selptrset_mac(anairiats_rec_66, tmp893, atslab_d0exp_node, tmp901) ; return (tmp893) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifhead] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 42744(line=2028, offs=15) -- 42934(line=2036, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sifhead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp902) ; ATSlocal (ats_ptr_type, tmp903) ; ATSlocal (ats_ptr_type, tmp904) ; ATSlocal (ats_ptr_type, tmp905) ; ATSlocal (ats_ptr_type, tmp906) ; ATSlocal (ats_ptr_type, tmp907) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sifhead: tmp903 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_61, arg0), atslab_sifhead_tok) ; tmp905 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp903), atslab_token_loc) ; tmp906 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg3), atslab_d0exp_loc) ; tmp904 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp905, tmp906) ; tmp907 = ATS_MALLOC(sizeof(anairiats_sum_31)) ; ((ats_sum_ptr_type)tmp907)->tag = 24 ; ats_selptrset_mac(anairiats_sum_31, tmp907, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_31, tmp907, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_31, tmp907, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_31, tmp907, atslab_3, arg3) ; tmp902 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp902, atslab_d0exp_loc, tmp904) ; ats_selptrset_mac(anairiats_rec_66, tmp902, atslab_d0exp_node, tmp907) ; return (tmp902) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sifhead] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 43010(line=2042, offs=3) -- 43336(line=2054, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifcasehd (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp908) ; ATSlocal (ats_ptr_type, tmp909) ; ATSlocal (ats_ptr_type, tmp910) ; ATSlocal (ats_ptr_type, tmp911) ; ATSlocal (ats_ptr_type, tmp912) ; ATSlocal (ats_ptr_type, tmp913) ; ATSlocal (ats_ptr_type, tmp914) ; ATSlocal (ats_ptr_type, tmp915) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifcasehd: tmp909 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_60, arg0), atslab_ifhead_tok) ; tmp910 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp909), atslab_token_loc) ; tmp911 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_111 */ __ats_lab_111_0: if (tmp911 == (ats_sum_ptr_type)0) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp913 = ats_caselptrlab_mac(anairiats_sum_13, tmp911, atslab_0) ; ATS_FREE(tmp911) ; tmp914 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_67, tmp913), atslab_i0fcl_loc) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp910, tmp914) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: // if (tmp911 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_112_1: tmp912 = tmp910 ; break ; } while (0) ; tmp915 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp915)->tag = 25 ; ats_selptrset_mac(anairiats_sum_12, tmp915, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp915, atslab_1, arg1) ; tmp908 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp908, atslab_d0exp_loc, tmp912) ; ats_selptrset_mac(anairiats_rec_66, tmp908, atslab_d0exp_node, tmp915) ; return (tmp908) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifcasehd] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 43411(line=2059, offs=16) -- 43738(line=2071, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_casehead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp916) ; ATSlocal (ats_ptr_type, tmp917) ; ATSlocal (ats_ptr_type, tmp918) ; ATSlocal (ats_ptr_type, tmp919) ; ATSlocal (ats_ptr_type, tmp920) ; ATSlocal (ats_ptr_type, tmp921) ; ATSlocal (ats_ptr_type, tmp922) ; ATSlocal (ats_ptr_type, tmp923) ; ATSlocal (ats_ptr_type, tmp924) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_casehead: tmp917 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_62, arg0), atslab_casehead_tok) ; tmp918 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp917), atslab_token_loc) ; tmp920 = list_last_opt_01409_ats_ptr_type (arg3) ; do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (tmp920 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp921 = ats_caselptrlab_mac(anairiats_sum_13, tmp920, atslab_0) ; ATS_FREE(tmp920) ; tmp922 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_68, tmp921), atslab_c0lau_loc) ; tmp919 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp918, tmp922) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (tmp920 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: tmp923 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp919 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp918, tmp923) ; break ; } while (0) ; tmp924 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp924)->tag = 26 ; ats_selptrset_mac(anairiats_sum_14, tmp924, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_14, tmp924, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp924, atslab_2, arg3) ; tmp916 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp916, atslab_d0exp_loc, tmp919) ; ats_selptrset_mac(anairiats_rec_66, tmp916, atslab_d0exp_node, tmp924) ; return (tmp916) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_casehead] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 43793(line=2074, offs=17) -- 44126(line=2086, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_scasehead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp925) ; ATSlocal (ats_ptr_type, tmp926) ; ATSlocal (ats_ptr_type, tmp927) ; ATSlocal (ats_ptr_type, tmp928) ; ATSlocal (ats_ptr_type, tmp929) ; ATSlocal (ats_ptr_type, tmp930) ; ATSlocal (ats_ptr_type, tmp931) ; ATSlocal (ats_ptr_type, tmp932) ; ATSlocal (ats_ptr_type, tmp933) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_scasehead: tmp926 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_63, arg0), atslab_scasehead_tok) ; tmp927 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp926), atslab_token_loc) ; tmp929 = list_last_opt_01409_ats_ptr_type (arg3) ; do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (tmp929 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp930 = ats_caselptrlab_mac(anairiats_sum_13, tmp929, atslab_0) ; ATS_FREE(tmp929) ; tmp931 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_69, tmp930), atslab_sc0lau_loc) ; tmp928 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp927, tmp931) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (tmp929 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: tmp932 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp928 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp927, tmp932) ; break ; } while (0) ; tmp933 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp933)->tag = 27 ; ats_selptrset_mac(anairiats_sum_14, tmp933, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_14, tmp933, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp933, atslab_2, arg3) ; tmp925 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp925, atslab_d0exp_loc, tmp928) ; ats_selptrset_mac(anairiats_rec_66, tmp925, atslab_d0exp_node, tmp933) ; return (tmp925) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_scasehead] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 44197(line=2091, offs=11) -- 44361(line=2097, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lam (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp934) ; ATSlocal (ats_ptr_type, tmp935) ; ATSlocal (ats_ptr_type, tmp936) ; ATSlocal (ats_ptr_type, tmp937) ; ATSlocal (ats_ptr_type, tmp938) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lam: tmp936 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp937 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg5), atslab_d0exp_loc) ; tmp935 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp936, tmp937) ; tmp938 = ATS_MALLOC(sizeof(anairiats_sum_70)) ; ((ats_sum_ptr_type)tmp938)->tag = 49 ; ats_selptrset_mac(anairiats_sum_70, tmp938, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_70, tmp938, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_70, tmp938, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_70, tmp938, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_70, tmp938, atslab_4, arg5) ; tmp934 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp934, atslab_d0exp_loc, tmp935) ; ats_selptrset_mac(anairiats_rec_66, tmp934, atslab_d0exp_node, tmp938) ; return (tmp934) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lam] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 44405(line=2100, offs=11) -- 44579(line=2106, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_fix (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp939) ; ATSlocal (ats_ptr_type, tmp940) ; ATSlocal (ats_ptr_type, tmp941) ; ATSlocal (ats_ptr_type, tmp942) ; ATSlocal (ats_ptr_type, tmp943) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_fix: tmp941 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp942 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg6), atslab_d0exp_loc) ; tmp940 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp941, tmp942) ; tmp943 = ATS_MALLOC(sizeof(anairiats_sum_71)) ; ((ats_sum_ptr_type)tmp943)->tag = 50 ; ats_selptrset_mac(anairiats_sum_71, tmp943, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_71, tmp943, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_71, tmp943, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_71, tmp943, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_71, tmp943, atslab_4, arg5) ; ats_selptrset_mac(anairiats_sum_71, tmp943, atslab_5, arg6) ; tmp939 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp939, atslab_d0exp_loc, tmp940) ; ats_selptrset_mac(anairiats_rec_66, tmp939, atslab_d0exp_node, tmp943) ; return (tmp939) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_fix] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 44648(line=2112, offs=3) -- 44776(line=2116, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_delay (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp944) ; ATSlocal (ats_ptr_type, tmp945) ; ATSlocal (ats_ptr_type, tmp946) ; ATSlocal (ats_ptr_type, tmp947) ; ATSlocal (ats_ptr_type, tmp948) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_delay: tmp946 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp947 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp945 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp946, tmp947) ; tmp948 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp948)->tag = 51 ; ats_selptrset_mac(anairiats_sum_5, tmp948, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp948, atslab_1, arg2) ; tmp944 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp944, atslab_d0exp_loc, tmp945) ; ats_selptrset_mac(anairiats_rec_66, tmp944, atslab_d0exp_node, tmp948) ; return (tmp944) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_delay] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 44843(line=2122, offs=1) -- 45061(line=2129, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp949) ; ATSlocal (ats_ptr_type, tmp950) ; ATSlocal (ats_ptr_type, tmp951) ; ATSlocal (ats_ptr_type, tmp952) ; ATSlocal (ats_ptr_type, tmp953) ; ATSlocal (ats_ptr_type, tmp954) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst: tmp951 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp952 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_token_loc) ; tmp950 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp951, tmp952) ; tmp953 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_list (arg3, -1, arg4, arg5) ; tmp954 = ATS_MALLOC(sizeof(anairiats_sum_72)) ; ((ats_sum_ptr_type)tmp954)->tag = 28 ; ats_selptrset_mac(anairiats_sum_72, tmp954, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_72, tmp954, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_72, tmp954, atslab_2, tmp953) ; tmp949 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp949, atslab_d0exp_loc, tmp950) ; ats_selptrset_mac(anairiats_rec_66, tmp949, atslab_d0exp_node, tmp954) ; return (tmp949) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 45113(line=2133, offs=3) -- 45198(line=2134, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst_quote (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp955) ; ATSlocal (ats_ptr_type, tmp956) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst_quote: tmp956 = (ats_sum_ptr_type)0 ; tmp955 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst (0, arg0, tmp956, arg0, arg1, arg2) ; return (tmp955) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst_quote] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 45269(line=2141, offs=1) -- 45416(line=2147, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tup (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp957) ; ATSlocal (ats_ptr_type, tmp958) ; ATSlocal (ats_ptr_type, tmp959) ; ATSlocal (ats_ptr_type, tmp960) ; ATSlocal (ats_ptr_type, tmp961) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tup: tmp959 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp960 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp958 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp959, tmp960) ; tmp961 = ATS_MALLOC(sizeof(anairiats_sum_36)) ; ((ats_sum_ptr_type)tmp961)->tag = 29 ; ats_selptrset_mac(anairiats_sum_36, tmp961, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_36, tmp961, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_36, tmp961, atslab_2, arg3) ; tmp957 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp957, atslab_d0exp_loc, tmp958) ; ats_selptrset_mac(anairiats_rec_66, tmp957, atslab_d0exp_node, tmp961) ; return (tmp957) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tup] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 45460(line=2151, offs=1) -- 45607(line=2157, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_rec (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp962) ; ATSlocal (ats_ptr_type, tmp963) ; ATSlocal (ats_ptr_type, tmp964) ; ATSlocal (ats_ptr_type, tmp965) ; ATSlocal (ats_ptr_type, tmp966) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_rec: tmp964 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp965 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp963 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp964, tmp965) ; tmp966 = ATS_MALLOC(sizeof(anairiats_sum_36)) ; ((ats_sum_ptr_type)tmp966)->tag = 30 ; ats_selptrset_mac(anairiats_sum_36, tmp966, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_36, tmp966, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_36, tmp966, atslab_2, arg3) ; tmp962 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp962, atslab_d0exp_loc, tmp963) ; ats_selptrset_mac(anairiats_rec_66, tmp962, atslab_d0exp_node, tmp966) ; return (tmp962) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_rec] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 45675(line=2162, offs=14) -- 45847(line=2168, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrsub (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp967) ; ATSlocal (ats_ptr_type, tmp968) ; ATSlocal (ats_ptr_type, tmp969) ; ATSlocal (ats_ptr_type, tmp970) ; ATSlocal (ats_ptr_type, tmp971) ; ATSlocal (ats_ptr_type, tmp972) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrsub: tmp968 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_73, arg1), atslab_d0arrind_loc) ; tmp970 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_dqi0de_loc) ; tmp969 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp970, tmp968) ; tmp972 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_73, arg1), atslab_d0arrind_ind) ; tmp971 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp971)->tag = 32 ; ats_selptrset_mac(anairiats_sum_14, tmp971, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_14, tmp971, atslab_1, tmp968) ; ats_selptrset_mac(anairiats_sum_14, tmp971, atslab_2, tmp972) ; tmp967 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp967, atslab_d0exp_loc, tmp969) ; ats_selptrset_mac(anairiats_rec_66, tmp967, atslab_d0exp_node, tmp971) ; return (tmp967) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrsub] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 45898(line=2171, offs=15) -- 46054(line=2177, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrinit (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp973) ; ATSlocal (ats_ptr_type, tmp974) ; ATSlocal (ats_ptr_type, tmp975) ; ATSlocal (ats_ptr_type, tmp976) ; ATSlocal (ats_ptr_type, tmp977) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrinit: tmp975 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp976 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp974 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp975, tmp976) ; tmp977 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp977)->tag = 34 ; ats_selptrset_mac(anairiats_sum_14, tmp977, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp977, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp977, atslab_2, arg3) ; tmp973 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp973, atslab_d0exp_loc, tmp974) ; ats_selptrset_mac(anairiats_rec_66, tmp973, atslab_d0exp_node, tmp977) ; return (tmp973) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrinit] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 46105(line=2180, offs=14) -- 46421(line=2192, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrpsz (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp978) ; ATSlocal (ats_ptr_type, tmp979) ; ATSlocal (ats_ptr_type, tmp980) ; ATSlocal (ats_ptr_type, tmp981) ; ATSlocal (ats_ptr_type, tmp982) ; ATSlocal (ats_ptr_type, tmp983) ; ATSlocal (ats_ptr_type, tmp984) ; ATSlocal (ats_ptr_type, tmp985) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrpsz: tmp980 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp981 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp979 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp980, tmp981) ; do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } tmp983 = ats_caselptrlab_mac(anairiats_sum_15, arg3, atslab_1) ; if (tmp983 != (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp984 = ats_caselptrlab_mac(anairiats_sum_15, arg3, atslab_0) ; tmp982 = tmp984 ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: __ats_lab_118_1: tmp982 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_list (arg2, -1, arg3, arg4) ; break ; } while (0) ; tmp985 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp985)->tag = 33 ; ats_selptrset_mac(anairiats_sum_12, tmp985, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp985, atslab_1, tmp982) ; tmp978 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp978, atslab_d0exp_loc, tmp979) ; ats_selptrset_mac(anairiats_rec_66, tmp978, atslab_d0exp_node, tmp985) ; return (tmp978) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrpsz] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 46491(line=2198, offs=3) -- 46713(line=2206, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp986) ; ATSlocal (ats_ptr_type, tmp987) ; ATSlocal (ats_ptr_type, tmp988) ; ATSlocal (ats_ptr_type, tmp989) ; ATSlocal (ats_ptr_type, tmp990) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq: tmp988 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp989 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp987 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp988, tmp989) ; do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp990 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp990)->tag = 31 ; ats_selptrset_mac(anairiats_sum_9, tmp990, atslab_0, arg1) ; tmp986 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp986, atslab_d0exp_loc, tmp987) ; ats_selptrset_mac(anairiats_rec_66, tmp986, atslab_d0exp_node, tmp990) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_120_1: tmp986 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_empty (tmp987) ; break ; } while (0) ; return (tmp986) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 46780(line=2211, offs=13) -- 46854(line=2213, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ptrof (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp991) ; ATSlocal (ats_ptr_type, tmp992) ; ATSlocal (ats_ptr_type, tmp993) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ptrof: tmp992 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp993 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eptrof_35) ; tmp991 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp991, atslab_d0exp_loc, tmp992) ; ats_selptrset_mac(anairiats_rec_66, tmp991, atslab_d0exp_node, tmp993) ; return (tmp991) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ptrof] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 46903(line=2216, offs=14) -- 46978(line=2218, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_viewat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp994) ; ATSlocal (ats_ptr_type, tmp995) ; ATSlocal (ats_ptr_type, tmp996) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_viewat: tmp995 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp996 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eviewat_36) ; tmp994 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp994, atslab_d0exp_loc, tmp995) ; ats_selptrset_mac(anairiats_rec_66, tmp994, atslab_d0exp_node, tmp996) ; return (tmp994) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_viewat] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 47050(line=2223, offs=15) -- 47192(line=2227, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_lab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp997) ; ATSlocal (ats_ptr_type, tmp998) ; ATSlocal (ats_ptr_type, tmp999) ; ATSlocal (ats_ptr_type, tmp1000) ; ATSlocal (ats_ptr_type, tmp1001) ; ATSlocal (ats_int_type, tmp1002) ; ATSlocal (ats_ptr_type, tmp1003) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_lab: tmp999 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_56, arg0), atslab_s0elop_loc) ; tmp1000 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_l0ab_loc) ; tmp998 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp999, tmp1000) ; tmp1002 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_56, arg0), atslab_s0elop_knd) ; tmp1003 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_l0ab_lab) ; tmp1001 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1001)->tag = 37 ; ats_selptrset_mac(anairiats_sum_5, tmp1001, atslab_0, tmp1002) ; ats_selptrset_mac(anairiats_sum_5, tmp1001, atslab_1, tmp1003) ; tmp997 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp997, atslab_d0exp_loc, tmp998) ; ats_selptrset_mac(anairiats_rec_66, tmp997, atslab_d0exp_node, tmp1001) ; return (tmp997) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_lab] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 47244(line=2230, offs=15) -- 47394(line=2234, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_ind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1004) ; ATSlocal (ats_ptr_type, tmp1005) ; ATSlocal (ats_ptr_type, tmp1006) ; ATSlocal (ats_ptr_type, tmp1007) ; ATSlocal (ats_ptr_type, tmp1008) ; ATSlocal (ats_int_type, tmp1009) ; ATSlocal (ats_ptr_type, tmp1010) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_ind: tmp1006 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_56, arg0), atslab_s0elop_loc) ; tmp1007 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_73, arg1), atslab_d0arrind_loc) ; tmp1005 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1006, tmp1007) ; tmp1009 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_56, arg0), atslab_s0elop_knd) ; tmp1010 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_73, arg1), atslab_d0arrind_ind) ; tmp1008 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1008)->tag = 38 ; ats_selptrset_mac(anairiats_sum_5, tmp1008, atslab_0, tmp1009) ; ats_selptrset_mac(anairiats_sum_5, tmp1008, atslab_1, tmp1010) ; tmp1004 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1004, atslab_d0exp_loc, tmp1005) ; ats_selptrset_mac(anairiats_rec_66, tmp1004, atslab_d0exp_node, tmp1008) ; return (tmp1004) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_ind] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 47446(line=2237, offs=15) -- 47642(line=2243, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_int (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1011) ; ATSlocal (ats_ptr_type, tmp1012) ; ATSlocal (ats_int_type, tmp1013) ; ATSlocal (ats_ptr_type, tmp1014) ; ATSlocal (ats_ptr_type, tmp1015) ; ATSlocal (ats_ptr_type, tmp1016) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_int: tmp1012 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1012)->tag != 12) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 47499(line=2239, offs=7) -- 47530(line=2239, offs=38)") ; } tmp1013 = ats_caselptrlab_mac(anairiats_sum_8, tmp1012, atslab_0) ; tmp1014 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (tmp1013) ; tmp1015 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1016 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1016)->tag = 37 ; ats_selptrset_mac(anairiats_sum_5, tmp1016, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_5, tmp1016, atslab_1, tmp1014) ; tmp1011 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1011, atslab_d0exp_loc, tmp1015) ; ats_selptrset_mac(anairiats_rec_66, tmp1011, atslab_d0exp_node, tmp1016) ; return (tmp1011) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_int] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 47715(line=2249, offs=3) -- 47833(line=2253, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_raise (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1017) ; ATSlocal (ats_ptr_type, tmp1018) ; ATSlocal (ats_ptr_type, tmp1019) ; ATSlocal (ats_ptr_type, tmp1020) ; ATSlocal (ats_ptr_type, tmp1021) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_raise: tmp1019 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1020 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg1), atslab_d0exp_loc) ; tmp1018 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1019, tmp1020) ; tmp1021 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1021)->tag = 39 ; ats_selptrset_mac(anairiats_sum_9, tmp1021, atslab_0, arg1) ; tmp1017 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1017, atslab_d0exp_loc, tmp1018) ; ats_selptrset_mac(anairiats_rec_66, tmp1017, atslab_d0exp_node, tmp1021) ; return (tmp1017) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_raise] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 47906(line=2259, offs=3) -- 48036(line=2263, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1022) ; ATSlocal (ats_ptr_type, tmp1023) ; ATSlocal (ats_ptr_type, tmp1024) ; ATSlocal (ats_ptr_type, tmp1025) ; ATSlocal (ats_ptr_type, tmp1026) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask: tmp1024 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1025 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp1023 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1024, tmp1025) ; tmp1026 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1026)->tag = 40 ; ats_selptrset_mac(anairiats_sum_12, tmp1026, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp1026, atslab_1, arg2) ; tmp1022 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1022, atslab_d0exp_loc, tmp1023) ; ats_selptrset_mac(anairiats_rec_66, tmp1022, atslab_d0exp_node, tmp1026) ; return (tmp1022) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 48094(line=2267, offs=3) -- 48228(line=2271, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask_arg (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1027) ; ATSlocal (ats_ptr_type, tmp1028) ; ATSlocal (ats_ptr_type, tmp1029) ; ATSlocal (ats_ptr_type, tmp1030) ; ATSlocal (ats_ptr_type, tmp1031) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask_arg: tmp1029 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1030 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp1028 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1029, tmp1030) ; tmp1031 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1031)->tag = 41 ; ats_selptrset_mac(anairiats_sum_5, tmp1031, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp1031, atslab_1, arg2) ; tmp1027 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1027, atslab_d0exp_loc, tmp1028) ; ats_selptrset_mac(anairiats_rec_66, tmp1027, atslab_d0exp_node, tmp1031) ; return (tmp1027) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask_arg] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 48306(line=2277, offs=3) -- 48440(line=2283, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vararg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1032) ; ATSlocal (ats_ptr_type, tmp1033) ; ATSlocal (ats_ptr_type, tmp1034) ; ATSlocal (ats_ptr_type, tmp1035) ; ATSlocal (ats_ptr_type, tmp1036) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vararg: tmp1034 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1035 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1033 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1034, tmp1035) ; tmp1036 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1036)->tag = 42 ; ats_selptrset_mac(anairiats_sum_9, tmp1036, atslab_0, arg1) ; tmp1032 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1032, atslab_d0exp_loc, tmp1033) ; ats_selptrset_mac(anairiats_rec_66, tmp1032, atslab_d0exp_node, tmp1036) ; return (tmp1032) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vararg] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 48515(line=2289, offs=3) -- 48646(line=2293, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vcopyenv (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1037) ; ATSlocal (ats_ptr_type, tmp1038) ; ATSlocal (ats_ptr_type, tmp1039) ; ATSlocal (ats_ptr_type, tmp1040) ; ATSlocal (ats_ptr_type, tmp1041) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vcopyenv: tmp1039 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1040 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp1038 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1039, tmp1040) ; tmp1041 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1041)->tag = 43 ; ats_selptrset_mac(anairiats_sum_5, tmp1041, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp1041, atslab_1, arg2) ; tmp1037 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1037, atslab_d0exp_loc, tmp1038) ; ats_selptrset_mac(anairiats_rec_66, tmp1037, atslab_d0exp_node, tmp1041) ; return (tmp1037) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vcopyenv] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 48723(line=2299, offs=3) -- 48844(line=2303, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_showtype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1042) ; ATSlocal (ats_ptr_type, tmp1043) ; ATSlocal (ats_ptr_type, tmp1044) ; ATSlocal (ats_ptr_type, tmp1045) ; ATSlocal (ats_ptr_type, tmp1046) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_showtype: tmp1044 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1045 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg1), atslab_d0exp_loc) ; tmp1043 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1044, tmp1045) ; tmp1046 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1046)->tag = 44 ; ats_selptrset_mac(anairiats_sum_9, tmp1046, atslab_0, arg1) ; tmp1042 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1042, atslab_d0exp_loc, tmp1043) ; ats_selptrset_mac(anairiats_rec_66, tmp1042, atslab_d0exp_node, tmp1046) ; return (tmp1042) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_showtype] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 48922(line=2309, offs=3) -- 49044(line=2313, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tempenver (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1047) ; ATSlocal (ats_ptr_type, tmp1048) ; ATSlocal (ats_ptr_type, tmp1049) ; ATSlocal (ats_ptr_type, tmp1050) ; ATSlocal (ats_ptr_type, tmp1051) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tempenver: tmp1049 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1050 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg1), atslab_d0exp_loc) ; tmp1048 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1049, tmp1050) ; tmp1051 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1051)->tag = 45 ; ats_selptrset_mac(anairiats_sum_9, tmp1051, atslab_0, arg1) ; tmp1047 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1047, atslab_d0exp_loc, tmp1048) ; ats_selptrset_mac(anairiats_rec_66, tmp1047, atslab_d0exp_node, tmp1051) ; return (tmp1047) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tempenver] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 49121(line=2319, offs=3) -- 49249(line=2323, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sexparg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1052) ; ATSlocal (ats_ptr_type, tmp1053) ; ATSlocal (ats_ptr_type, tmp1054) ; ATSlocal (ats_ptr_type, tmp1055) ; ATSlocal (ats_ptr_type, tmp1056) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sexparg: tmp1054 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1055 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1053 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1054, tmp1055) ; tmp1056 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1056)->tag = 46 ; ats_selptrset_mac(anairiats_sum_9, tmp1056, atslab_0, arg1) ; tmp1052 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1052, atslab_d0exp_loc, tmp1053) ; ats_selptrset_mac(anairiats_rec_66, tmp1052, atslab_d0exp_node, tmp1056) ; return (tmp1052) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sexparg] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 49299(line=2326, offs=13) -- 49507(line=2333, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_exist (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1057) ; ATSlocal (ats_ptr_type, tmp1058) ; ATSlocal (ats_ptr_type, tmp1059) ; ATSlocal (ats_ptr_type, tmp1060) ; ATSlocal (ats_ptr_type, tmp1061) ; ATSlocal (ats_ptr_type, tmp1062) ; ATSlocal (ats_ptr_type, tmp1063) ; ATSlocal (ats_ptr_type, tmp1064) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_exist: tmp1059 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1060 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_token_loc) ; tmp1058 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1059, tmp1060) ; tmp1062 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1063 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1061 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1062, tmp1063) ; tmp1064 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp1064)->tag = 47 ; ats_selptrset_mac(anairiats_sum_14, tmp1064, atslab_0, tmp1061) ; ats_selptrset_mac(anairiats_sum_14, tmp1064, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp1064, atslab_2, arg3) ; tmp1057 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1057, atslab_d0exp_loc, tmp1058) ; ats_selptrset_mac(anairiats_rec_66, tmp1057, atslab_d0exp_node, tmp1064) ; return (tmp1057) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_exist] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 49578(line=2338, offs=15) -- 49920(line=2353, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_forhead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1065) ; ATSlocal (ats_ptr_type, tmp1066) ; ATSlocal (ats_ptr_type, tmp1067) ; ATSlocal (ats_ptr_type, tmp1068) ; ATSlocal (ats_ptr_type, tmp1069) ; ATSlocal (ats_ptr_type, tmp1070) ; ATSlocal (ats_ptr_type, tmp1071) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_forhead: tmp1066 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_64, arg0), atslab_loophead_tok) ; tmp1067 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1066), atslab_token_loc) ; tmp1069 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp1068 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1067, tmp1069) ; tmp1070 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_64, arg0), atslab_loophead_inv) ; tmp1071 = ATS_MALLOC(sizeof(anairiats_sum_31)) ; ((ats_sum_ptr_type)tmp1071)->tag = 52 ; ats_selptrset_mac(anairiats_sum_31, tmp1071, atslab_0, tmp1070) ; ats_selptrset_mac(anairiats_sum_31, tmp1071, atslab_1, tmp1067) ; ats_selptrset_mac(anairiats_sum_31, tmp1071, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_31, tmp1071, atslab_3, arg2) ; tmp1065 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1065, atslab_d0exp_loc, tmp1068) ; ats_selptrset_mac(anairiats_rec_66, tmp1065, atslab_d0exp_node, tmp1071) ; return (tmp1065) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_forhead] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 49995(line=2358, offs=17) -- 50343(line=2373, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_whilehead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1072) ; ATSlocal (ats_ptr_type, tmp1073) ; ATSlocal (ats_ptr_type, tmp1074) ; ATSlocal (ats_ptr_type, tmp1075) ; ATSlocal (ats_ptr_type, tmp1076) ; ATSlocal (ats_ptr_type, tmp1077) ; ATSlocal (ats_ptr_type, tmp1078) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_whilehead: tmp1073 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_64, arg0), atslab_loophead_tok) ; tmp1074 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1073), atslab_token_loc) ; tmp1076 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp1075 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1074, tmp1076) ; tmp1077 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_64, arg0), atslab_loophead_inv) ; tmp1078 = ATS_MALLOC(sizeof(anairiats_sum_31)) ; ((ats_sum_ptr_type)tmp1078)->tag = 53 ; ats_selptrset_mac(anairiats_sum_31, tmp1078, atslab_0, tmp1077) ; ats_selptrset_mac(anairiats_sum_31, tmp1078, atslab_1, tmp1074) ; ats_selptrset_mac(anairiats_sum_31, tmp1078, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_31, tmp1078, atslab_3, arg2) ; tmp1072 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1072, atslab_d0exp_loc, tmp1075) ; ats_selptrset_mac(anairiats_rec_66, tmp1072, atslab_d0exp_node, tmp1078) ; return (tmp1072) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_whilehead] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 50420(line=2379, offs=3) -- 50494(line=2381, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_loopexn (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1079) ; ATSlocal (ats_ptr_type, tmp1080) ; ATSlocal (ats_ptr_type, tmp1081) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_loopexn: tmp1080 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1081 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp1081)->tag = 54 ; ats_selptrset_mac(anairiats_sum_8, tmp1081, atslab_0, arg0) ; tmp1079 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1079, atslab_d0exp_loc, tmp1080) ; ats_selptrset_mac(anairiats_rec_66, tmp1079, atslab_d0exp_node, tmp1081) ; return (tmp1079) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_loopexn] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 50573(line=2387, offs=3) -- 50936(line=2397, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_trywith_seq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1082) ; ATSlocal (ats_ptr_type, tmp1083) ; ATSlocal (ats_ptr_type, tmp1084) ; ATSlocal (ats_ptr_type, tmp1085) ; ATSlocal (ats_ptr_type, tmp1086) ; ATSlocal (ats_ptr_type, tmp1087) ; ATSlocal (ats_ptr_type, tmp1088) ; ATSlocal (ats_ptr_type, tmp1089) ; ATSlocal (ats_ptr_type, tmp1090) ; ATSlocal (ats_ptr_type, tmp1091) ; ATSlocal (ats_ptr_type, tmp1092) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_trywith_seq: tmp1083 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_65, arg0), atslab_tryhead_tok) ; tmp1085 = list_last_opt_01409_ats_ptr_type (arg3) ; do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (tmp1085 == (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp1086 = ats_caselptrlab_mac(anairiats_sum_13, tmp1085, atslab_0) ; ATS_FREE(tmp1085) ; tmp1087 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1083), atslab_token_loc) ; tmp1088 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_68, tmp1086), atslab_c0lau_loc) ; tmp1084 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1087, tmp1088) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: // if (tmp1085 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_122_1: tmp1089 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1083), atslab_token_loc) ; tmp1090 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1084 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1089, tmp1090) ; break ; } while (0) ; tmp1091 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq (tmp1083, arg1, arg2) ; tmp1092 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp1092)->tag = 55 ; ats_selptrset_mac(anairiats_sum_14, tmp1092, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_14, tmp1092, atslab_1, tmp1091) ; ats_selptrset_mac(anairiats_sum_14, tmp1092, atslab_2, arg3) ; tmp1082 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1082, atslab_d0exp_loc, tmp1084) ; ats_selptrset_mac(anairiats_rec_66, tmp1082, atslab_d0exp_node, tmp1092) ; return (tmp1082) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_trywith_seq] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 51005(line=2402, offs=11) -- 51123(line=2406, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ann (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1093) ; ATSlocal (ats_ptr_type, tmp1094) ; ATSlocal (ats_ptr_type, tmp1095) ; ATSlocal (ats_ptr_type, tmp1096) ; ATSlocal (ats_ptr_type, tmp1097) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ann: tmp1095 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg0), atslab_d0exp_loc) ; tmp1096 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg1), atslab_s0exp_loc) ; tmp1094 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1095, tmp1096) ; tmp1097 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1097)->tag = 48 ; ats_selptrset_mac(anairiats_sum_12, tmp1097, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp1097, atslab_1, arg1) ; tmp1093 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1093, atslab_d0exp_loc, tmp1094) ; ats_selptrset_mac(anairiats_rec_66, tmp1093, atslab_d0exp_node, tmp1097) ; return (tmp1093) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ann] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 51196(line=2412, offs=3) -- 51317(line=2416, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solassert (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1098) ; ATSlocal (ats_ptr_type, tmp1099) ; ATSlocal (ats_ptr_type, tmp1100) ; ATSlocal (ats_ptr_type, tmp1101) ; ATSlocal (ats_ptr_type, tmp1102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solassert: tmp1100 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1101 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg1), atslab_d0exp_loc) ; tmp1099 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1100, tmp1101) ; tmp1102 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1102)->tag = 57 ; ats_selptrset_mac(anairiats_sum_9, tmp1102, atslab_0, arg1) ; tmp1098 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1098, atslab_d0exp_loc, tmp1099) ; ats_selptrset_mac(anairiats_rec_66, tmp1098, atslab_d0exp_node, tmp1102) ; return (tmp1098) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solassert] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 51375(line=2420, offs=3) -- 51496(line=2424, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solverify (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1103) ; ATSlocal (ats_ptr_type, tmp1104) ; ATSlocal (ats_ptr_type, tmp1105) ; ATSlocal (ats_ptr_type, tmp1106) ; ATSlocal (ats_ptr_type, tmp1107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solverify: tmp1105 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg1), atslab_s0exp_loc) ; tmp1104 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1105, tmp1106) ; tmp1107 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1107)->tag = 58 ; ats_selptrset_mac(anairiats_sum_9, tmp1107, atslab_0, arg1) ; tmp1103 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1103, atslab_d0exp_loc, tmp1104) ; ats_selptrset_mac(anairiats_rec_66, tmp1103, atslab_d0exp_node, tmp1107) ; return (tmp1103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solverify] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 51558(line=2431, offs=1) -- 51684(line=2436, offs=2) */ ATSstaticdec() ats_ptr_type d0exp_macsyn_252 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1108) ; ATSlocal (ats_ptr_type, tmp1109) ; __ats_lab_d0exp_macsyn_252: tmp1109 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1109)->tag = 56 ; ats_selptrset_mac(anairiats_sum_12, tmp1109, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp1109, atslab_1, arg2) ; tmp1108 = ATS_MALLOC(sizeof(anairiats_rec_66)) ; ats_selptrset_mac(anairiats_rec_66, tmp1108, atslab_d0exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_66, tmp1108, atslab_d0exp_node, tmp1109) ; return (tmp1108) ; } /* end of [d0exp_macsyn_252] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 51766(line=2442, offs=3) -- 51881(line=2446, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_cross (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1110) ; ATSlocal (ats_ptr_type, tmp1111) ; ATSlocal (ats_ptr_type, tmp1112) ; ATSlocal (ats_ptr_type, tmp1113) ; ATSlocal (ats_ptr_type, tmp1114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_cross: tmp1112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1113 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1111 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1112, tmp1113) ; tmp1114 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2) ; tmp1110 = d0exp_macsyn_252 (tmp1111, tmp1114, arg1) ; return (tmp1110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_cross] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 51946(line=2450, offs=3) -- 52061(line=2454, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_decode (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1115) ; ATSlocal (ats_ptr_type, tmp1116) ; ATSlocal (ats_ptr_type, tmp1117) ; ATSlocal (ats_ptr_type, tmp1118) ; ATSlocal (ats_ptr_type, tmp1119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_decode: tmp1117 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1116 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1117, tmp1118) ; tmp1119 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1) ; tmp1115 = d0exp_macsyn_252 (tmp1116, tmp1119, arg1) ; return (tmp1115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_decode] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 52131(line=2458, offs=3) -- 52254(line=2462, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_encode_seq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1120) ; ATSlocal (ats_ptr_type, tmp1121) ; ATSlocal (ats_ptr_type, tmp1122) ; ATSlocal (ats_ptr_type, tmp1123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_encode_seq: tmp1121 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq (arg0, arg1, arg2) ; tmp1122 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, tmp1121), atslab_d0exp_loc) ; tmp1123 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKencode_0) ; tmp1120 = d0exp_macsyn_252 (tmp1122, tmp1123, tmp1121) ; return (tmp1120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_encode_seq] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 52360(line=2469, offs=15) -- 52397(line=2469, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labd0exp_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labd0exp_make: tmp1124 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp1124, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp1124, atslab_1, arg1) ; return (tmp1124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labd0exp_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 52446(line=2475, offs=3) -- 52540(line=2477, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_sing (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1125) ; ATSlocal (ats_ptr_type, tmp1126) ; ATSlocal (ats_ptr_type, tmp1127) ; ATSlocal (ats_ptr_type, tmp1128) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_sing: tmp1126 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1128 = (ats_sum_ptr_type)0 ; tmp1127 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp1127, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp1127, atslab_1, tmp1128) ; tmp1125 = ATS_MALLOC(sizeof(anairiats_rec_73)) ; ats_selptrset_mac(anairiats_rec_73, tmp1125, atslab_d0arrind_loc, tmp1126) ; ats_selptrset_mac(anairiats_rec_73, tmp1125, atslab_d0arrind_ind, tmp1127) ; return (tmp1125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_sing] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 52594(line=2481, offs=3) -- 52696(line=2484, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_cons (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1129) ; ATSlocal (ats_ptr_type, tmp1130) ; ATSlocal (ats_ptr_type, tmp1131) ; ATSlocal (ats_ptr_type, tmp1132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_cons: tmp1130 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_73, arg1), atslab_d0arrind_loc) ; tmp1132 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_73, arg1), atslab_d0arrind_ind) ; tmp1131 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp1131, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp1131, atslab_1, tmp1132) ; tmp1129 = ATS_MALLOC(sizeof(anairiats_rec_73)) ; ats_selptrset_mac(anairiats_rec_73, tmp1129, atslab_d0arrind_loc, tmp1130) ; ats_selptrset_mac(anairiats_rec_73, tmp1129, atslab_d0arrind_ind, tmp1131) ; return (tmp1129) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_cons] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 52772(line=2490, offs=1) -- 53029(line=2500, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__initestpost_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1133) ; ATSlocal (ats_ptr_type, tmp1134) ; ATSlocal (ats_ptr_type, tmp1135) ; ATSlocal (ats_ptr_type, tmp1136) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__initestpost_make: tmp1134 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq (arg0, arg1, arg2) ; tmp1135 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq (arg2, arg3, arg4) ; tmp1136 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq (arg4, arg5, arg6) ; tmp1133 = ATS_MALLOC(sizeof(anairiats_rec_74)) ; ats_selptrset_mac(anairiats_rec_74, tmp1133, atslab_itp_init, tmp1134) ; ats_selptrset_mac(anairiats_rec_74, tmp1133, atslab_itp_test, tmp1135) ; ats_selptrset_mac(anairiats_rec_74, tmp1133, atslab_itp_post, tmp1136) ; return (tmp1133) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__initestpost_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 53104(line=2506, offs=3) -- 53325(line=2514, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__gm0at_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1137) ; ATSlocal (ats_ptr_type, tmp1138) ; ATSlocal (ats_ptr_type, tmp1139) ; ATSlocal (ats_ptr_type, tmp1140) ; ATSlocal (ats_ptr_type, tmp1141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__gm0at_make: do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp1139 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp1140 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg0), atslab_d0exp_loc) ; tmp1141 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, tmp1139), atslab_p0at_loc) ; tmp1138 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1140, tmp1141) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_124_1: tmp1138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg0), atslab_d0exp_loc) ; break ; } while (0) ; tmp1137 = ATS_MALLOC(sizeof(anairiats_rec_75)) ; ats_selptrset_mac(anairiats_rec_75, tmp1137, atslab_gm0at_loc, tmp1138) ; ats_selptrset_mac(anairiats_rec_75, tmp1137, atslab_gm0at_exp, arg0) ; ats_selptrset_mac(anairiats_rec_75, tmp1137, atslab_gm0at_pat, arg1) ; return (tmp1137) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__gm0at_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 53373(line=2517, offs=14) -- 53710(line=2528, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guap0at_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1142) ; ATSlocal (ats_ptr_type, tmp1143) ; ATSlocal (ats_ptr_type, tmp1144) ; ATSlocal (ats_ptr_type, tmp1145) ; ATSlocal (ats_ptr_type, tmp1146) ; ATSlocal (ats_ptr_type, tmp1147) ; ATSlocal (ats_ptr_type, tmp1148) ; ATSlocal (ats_ptr_type, tmp1149) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guap0at_make: do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp1144 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp1143 = tmp1144 ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_126_1: tmp1143 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp1145 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg0), atslab_p0at_loc) ; tmp1147 = list_last_opt_01409_ats_ptr_type (tmp1143) ; do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (tmp1147 == (ats_sum_ptr_type)0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp1148 = ats_caselptrlab_mac(anairiats_sum_13, tmp1147, atslab_0) ; ATS_FREE(tmp1147) ; tmp1149 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_75, tmp1148), atslab_gm0at_loc) ; tmp1146 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1145, tmp1149) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (tmp1147 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: tmp1146 = tmp1145 ; break ; } while (0) ; tmp1142 = ATS_MALLOC(sizeof(anairiats_rec_76)) ; ats_selptrset_mac(anairiats_rec_76, tmp1142, atslab_guap0at_loc, tmp1146) ; ats_selptrset_mac(anairiats_rec_76, tmp1142, atslab_guap0at_pat, arg0) ; ats_selptrset_mac(anairiats_rec_76, tmp1142, atslab_guap0at_gua, tmp1143) ; return (tmp1142) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guap0at_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 53786(line=2534, offs=3) -- 53960(line=2542, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__c0lau_make (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1150) ; ATSlocal (ats_ptr_type, tmp1151) ; ATSlocal (ats_ptr_type, tmp1152) ; ATSlocal (ats_ptr_type, tmp1153) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__c0lau_make: tmp1152 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_76, arg0), atslab_guap0at_loc) ; tmp1153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg3), atslab_d0exp_loc) ; tmp1151 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1152, tmp1153) ; tmp1150 = ATS_MALLOC(sizeof(anairiats_rec_68)) ; ats_selptrset_mac(anairiats_rec_68, tmp1150, atslab_c0lau_loc, tmp1151) ; ats_selptrset_mac(anairiats_rec_68, tmp1150, atslab_c0lau_pat, arg0) ; ats_selptrset_mac(anairiats_rec_68, tmp1150, atslab_c0lau_seq, arg1) ; ats_selptrset_mac(anairiats_rec_68, tmp1150, atslab_c0lau_neg, arg2) ; ats_selptrset_mac(anairiats_rec_68, tmp1150, atslab_c0lau_body, arg3) ; return (tmp1150) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__c0lau_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 54027(line=2547, offs=12) -- 54155(line=2551, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sp0at_cstr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1154) ; ATSlocal (ats_ptr_type, tmp1155) ; ATSlocal (ats_ptr_type, tmp1156) ; ATSlocal (ats_ptr_type, tmp1157) ; ATSlocal (ats_ptr_type, tmp1158) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sp0at_cstr: tmp1156 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_sqi0de_loc) ; tmp1157 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1155 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1156, tmp1157) ; tmp1158 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp1158, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp1158, atslab_1, arg1) ; tmp1154 = ATS_MALLOC(sizeof(anairiats_rec_77)) ; ats_selptrset_mac(anairiats_rec_77, tmp1154, atslab_sp0at_loc, tmp1155) ; ats_selptrset_mac(anairiats_rec_77, tmp1154, atslab_sp0at_node, tmp1158) ; return (tmp1154) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sp0at_cstr] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 54202(line=2554, offs=13) -- 54328(line=2558, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sc0lau_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1159) ; ATSlocal (ats_ptr_type, tmp1160) ; ATSlocal (ats_ptr_type, tmp1161) ; ATSlocal (ats_ptr_type, tmp1162) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sc0lau_make: tmp1161 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_77, arg0), atslab_sp0at_loc) ; tmp1162 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg1), atslab_d0exp_loc) ; tmp1160 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1161, tmp1162) ; tmp1159 = ATS_MALLOC(sizeof(anairiats_rec_69)) ; ats_selptrset_mac(anairiats_rec_69, tmp1159, atslab_sc0lau_loc, tmp1160) ; ats_selptrset_mac(anairiats_rec_69, tmp1159, atslab_sc0lau_pat, arg0) ; ats_selptrset_mac(anairiats_rec_69, tmp1159, atslab_sc0lau_body, arg1) ; return (tmp1159) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sc0lau_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 54398(line=2564, offs=3) -- 54533(line=2573, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0fcl_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1163) ; ATSlocal (ats_ptr_type, tmp1164) ; ATSlocal (ats_ptr_type, tmp1165) ; ATSlocal (ats_ptr_type, tmp1166) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0fcl_make: tmp1165 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg0), atslab_d0exp_loc) ; tmp1166 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg1), atslab_d0exp_loc) ; tmp1164 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1165, tmp1166) ; tmp1163 = ATS_MALLOC(sizeof(anairiats_rec_67)) ; ats_selptrset_mac(anairiats_rec_67, tmp1163, atslab_i0fcl_loc, tmp1164) ; ats_selptrset_mac(anairiats_rec_67, tmp1163, atslab_i0fcl_test, arg0) ; ats_selptrset_mac(anairiats_rec_67, tmp1163, atslab_i0fcl_body, arg1) ; return (tmp1163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0fcl_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 54602(line=2578, offs=14) -- 54758(line=2585, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acdef_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1167) ; ATSlocal (ats_ptr_type, tmp1168) ; ATSlocal (ats_ptr_type, tmp1169) ; ATSlocal (ats_ptr_type, tmp1170) ; ATSlocal (ats_ptr_type, tmp1171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acdef_make: tmp1169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp1170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp1168 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1169, tmp1170) ; tmp1171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp1167 = ATS_MALLOC(sizeof(anairiats_rec_78)) ; ats_selptrset_mac(anairiats_rec_78, tmp1167, atslab_m0acdef_loc, tmp1168) ; ats_selptrset_mac(anairiats_rec_78, tmp1167, atslab_m0acdef_sym, tmp1171) ; ats_selptrset_mac(anairiats_rec_78, tmp1167, atslab_m0acdef_arg, arg1) ; ats_selptrset_mac(anairiats_rec_78, tmp1167, atslab_m0acdef_def, arg2) ; return (tmp1167) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acdef_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 54831(line=2591, offs=3) -- 55112(line=2598, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0aldec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1172) ; ATSlocal (ats_ptr_type, tmp1173) ; ATSlocal (ats_ptr_type, tmp1174) ; ATSlocal (ats_ptr_type, tmp1175) ; ATSlocal (ats_ptr_type, tmp1176) ; ATSlocal (ats_ptr_type, tmp1177) ; ATSlocal (ats_ptr_type, tmp1178) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0aldec_make: do { /* branch: __ats_lab_129 */ __ats_lab_129_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp1174 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg0), atslab_p0at_loc) ; tmp1175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg1), atslab_d0exp_loc) ; tmp1173 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1174, tmp1175) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_130_1: tmp1176 = ats_caselptrlab_mac(anairiats_sum_79, arg2, atslab_1) ; tmp1177 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_51, arg0), atslab_p0at_loc) ; tmp1178 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp1176), atslab_s0exp_loc) ; tmp1173 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1177, tmp1178) ; break ; } while (0) ; tmp1172 = ATS_MALLOC(sizeof(anairiats_rec_80)) ; ats_selptrset_mac(anairiats_rec_80, tmp1172, atslab_v0aldec_loc, tmp1173) ; ats_selptrset_mac(anairiats_rec_80, tmp1172, atslab_v0aldec_pat, arg0) ; ats_selptrset_mac(anairiats_rec_80, tmp1172, atslab_v0aldec_def, arg1) ; ats_selptrset_mac(anairiats_rec_80, tmp1172, atslab_v0aldec_ann, arg2) ; return (tmp1172) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0aldec_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 55183(line=2604, offs=1) -- 55579(line=2623, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0undec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1179) ; ATSlocal (ats_ptr_type, tmp1180) ; ATSlocal (ats_ptr_type, tmp1181) ; ATSlocal (ats_ptr_type, tmp1182) ; ATSlocal (ats_ptr_type, tmp1183) ; ATSlocal (ats_ptr_type, tmp1184) ; ATSlocal (ats_ptr_type, tmp1185) ; ATSlocal (ats_ptr_type, tmp1186) ; ATSlocal (ats_ptr_type, tmp1187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0undec_make: do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (arg5 != (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp1181 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp1182 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg4), atslab_d0exp_loc) ; tmp1180 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1181, tmp1182) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: tmp1183 = ats_caselptrlab_mac(anairiats_sum_79, arg5, atslab_1) ; tmp1184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp1185 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp1183), atslab_s0exp_loc) ; tmp1180 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1184, tmp1185) ; break ; } while (0) ; tmp1186 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp1187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp1179 = ATS_MALLOC(sizeof(anairiats_rec_81)) ; ats_selptrset_mac(anairiats_rec_81, tmp1179, atslab_f0undec_loc, tmp1180) ; ats_selptrset_mac(anairiats_rec_81, tmp1179, atslab_f0undec_sym, tmp1186) ; ats_selptrset_mac(anairiats_rec_81, tmp1179, atslab_f0undec_sym_loc, tmp1187) ; ats_selptrset_mac(anairiats_rec_81, tmp1179, atslab_f0undec_arg, arg1) ; ats_selptrset_mac(anairiats_rec_81, tmp1179, atslab_f0undec_eff, arg2) ; ats_selptrset_mac(anairiats_rec_81, tmp1179, atslab_f0undec_res, arg3) ; ats_selptrset_mac(anairiats_rec_81, tmp1179, atslab_f0undec_def, arg4) ; ats_selptrset_mac(anairiats_rec_81, tmp1179, atslab_f0undec_ann, arg5) ; return (tmp1179) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0undec_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 55650(line=2629, offs=1) -- 56428(line=2668, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0ardec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1188) ; ATSlocal (ats_int_type, tmp1189) ; ATSlocal (ats_ptr_type, tmp1190) ; ATSlocal (ats_ptr_type, tmp1191) ; ATSlocal (ats_ptr_type, tmp1192) ; ATSlocal (ats_ptr_type, tmp1193) ; ATSlocal (ats_ptr_type, tmp1194) ; ATSlocal (ats_ptr_type, tmp1195) ; ATSlocal (ats_ptr_type, tmp1196) ; ATSlocal (ats_ptr_type, tmp1197) ; ATSlocal (ats_ptr_type, tmp1198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0ardec_make: /* ats_int_type tmp1189 ; */ tmp1189 = 0 ; do { /* branch: __ats_lab_133 */ __ats_lab_133_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp1190 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_134_1: tmp1191 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ; tmp1189 = 1 ; tmp1190 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1191), atslab_token_loc) ; break ; } while (0) ; do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp1193 = ats_caselptrlab_mac(anairiats_sum_13, arg4, atslab_0) ; tmp1192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, tmp1193), atslab_d0exp_loc) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp1194 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_0) ; tmp1192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp1194), atslab_i0de_loc) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp1195 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_0) ; tmp1192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp1195), atslab_s0exp_loc) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp1192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; break ; } while (0) ; break ; } while (0) ; break ; } while (0) ; tmp1196 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1190, tmp1192) ; tmp1197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp1198 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp1188 = ATS_MALLOC(sizeof(anairiats_rec_82)) ; ats_selptrset_mac(anairiats_rec_82, tmp1188, atslab_v0ardec_loc, tmp1196) ; ats_selptrset_mac(anairiats_rec_82, tmp1188, atslab_v0ardec_knd, tmp1189) ; ats_selptrset_mac(anairiats_rec_82, tmp1188, atslab_v0ardec_sym, tmp1197) ; ats_selptrset_mac(anairiats_rec_82, tmp1188, atslab_v0ardec_sym_loc, tmp1198) ; ats_selptrset_mac(anairiats_rec_82, tmp1188, atslab_v0ardec_pfat, arg2) ; ats_selptrset_mac(anairiats_rec_82, tmp1188, atslab_v0ardec_type, arg3) ; ats_selptrset_mac(anairiats_rec_82, tmp1188, atslab_v0ardec_init, arg4) ; return (tmp1188) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0ardec_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 56499(line=2674, offs=1) -- 56685(line=2686, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mpdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1199) ; ATSlocal (ats_ptr_type, tmp1200) ; ATSlocal (ats_ptr_type, tmp1201) ; ATSlocal (ats_ptr_type, tmp1202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mpdec_make: tmp1201 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_54, arg0), atslab_impqi0de_loc) ; tmp1202 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg3), atslab_d0exp_loc) ; tmp1200 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1201, tmp1202) ; tmp1199 = ATS_MALLOC(sizeof(anairiats_rec_83)) ; ats_selptrset_mac(anairiats_rec_83, tmp1199, atslab_i0mpdec_loc, tmp1200) ; ats_selptrset_mac(anairiats_rec_83, tmp1199, atslab_i0mpdec_qid, arg0) ; ats_selptrset_mac(anairiats_rec_83, tmp1199, atslab_i0mpdec_arg, arg1) ; ats_selptrset_mac(anairiats_rec_83, tmp1199, atslab_i0mpdec_res, arg2) ; ats_selptrset_mac(anairiats_rec_83, tmp1199, atslab_i0mpdec_def, arg3) ; return (tmp1199) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mpdec_make] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 56744(line=2693, offs=1) -- 56931(line=2699, offs=47) */ ATSstaticdec() ats_ptr_type loop_271 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1203) ; ATSlocal (ats_ptr_type, tmp1204) ; ATSlocal (ats_ptr_type, tmp1205) ; ATSlocal (ats_ptr_type, tmp1206) ; ATSlocal (ats_ptr_type, tmp1207) ; __ats_lab_loop_271: do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp1204 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp1205 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; arg0 = arg0 ; arg1 = tmp1204 ; arg2 = tmp1205 ; goto __ats_lab_loop_271 ; // tail call break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_142_1: tmp1206 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp1203 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1206, tmp1207) ; break ; } while (0) ; return (tmp1203) ; } /* end of [loop_271] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 56999(line=2706, offs=3) -- 57565(line=2733, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fixity (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1208) ; ATSlocal (ats_ptr_type, tmp1209) ; ATSlocal (ats_ptr_type, tmp1210) ; ATSlocal (ats_ptr_type, tmp1211) ; ATSlocal (ats_ptr_type, tmp1212) ; ATSlocal (ats_ptr_type, tmp1213) ; ATSlocal (ats_ptr_type, tmp1214) ; ATSlocal (ats_ptr_type, tmp1215) ; ATSlocal (ats_ptr_type, tmp1216) ; ATSlocal (ats_ptr_type, tmp1217) ; ATSlocal (ats_ptr_type, tmp1218) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fixity: tmp1209 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1209)->tag != 49) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 57030(line=2709, offs=1) -- 57060(line=2709, offs=31)") ; } tmp1210 = ats_caselptrlab_mac(anairiats_sum_9, tmp1209, atslab_0) ; do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp1210)->tag != 0) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp1212 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0) ; tmp1211 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1211)->tag = 0 ; ats_selptrset_mac(anairiats_sum_12, tmp1211, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp1211, atslab_1, tmp1212) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp1210)->tag != 1) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp1213 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOClft_1) ; tmp1211 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1211)->tag = 0 ; ats_selptrset_mac(anairiats_sum_12, tmp1211, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp1211, atslab_1, tmp1213) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp1210)->tag != 2) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp1214 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCrgt_2) ; tmp1211 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1211)->tag = 0 ; ats_selptrset_mac(anairiats_sum_12, tmp1211, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp1211, atslab_1, tmp1214) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp1210)->tag != 3) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp1211 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1211)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp1211, atslab_0, arg1) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: // if (((ats_sum_ptr_type)tmp1210)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_147_1: tmp1211 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1211)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp1211, atslab_0, arg1) ; break ; } while (0) ; do { /* branch: __ats_lab_148 */ __ats_lab_148_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp1216 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp1217 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp1215 = loop_271 (arg0, tmp1216, tmp1217) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_149_1: tmp1215 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; break ; } while (0) ; tmp1218 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1218)->tag = 0 ; ats_selptrset_mac(anairiats_sum_12, tmp1218, atslab_0, tmp1211) ; ats_selptrset_mac(anairiats_sum_12, tmp1218, atslab_1, arg2) ; tmp1208 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1208, atslab_d0ecl_loc, tmp1215) ; ats_selptrset_mac(anairiats_rec_84, tmp1208, atslab_d0ecl_node, tmp1218) ; return (tmp1208) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fixity] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 57616(line=2737, offs=3) -- 57866(line=2745, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_nonfix (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1219) ; ATSlocal (ats_ptr_type, tmp1220) ; ATSlocal (ats_ptr_type, tmp1221) ; ATSlocal (ats_ptr_type, tmp1222) ; ATSlocal (ats_ptr_type, tmp1223) ; ATSlocal (ats_ptr_type, tmp1224) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_nonfix: tmp1220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1220)->tag != 62) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 57639(line=2738, offs=7) -- 57667(line=2738, offs=35)") ; } do { /* branch: __ats_lab_150 */ __ats_lab_150_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp1222 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp1223 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp1221 = loop_271 (arg0, tmp1222, tmp1223) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_151_1: tmp1221 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; break ; } while (0) ; tmp1224 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1224)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp1224, atslab_0, arg1) ; tmp1219 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1219, atslab_d0ecl_loc, tmp1221) ; ats_selptrset_mac(anairiats_rec_84, tmp1219, atslab_d0ecl_node, tmp1224) ; return (tmp1219) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_nonfix] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 57940(line=2751, offs=3) -- 58192(line=2759, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symintr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1225) ; ATSlocal (ats_ptr_type, tmp1226) ; ATSlocal (ats_ptr_type, tmp1227) ; ATSlocal (ats_ptr_type, tmp1228) ; ATSlocal (ats_ptr_type, tmp1229) ; ATSlocal (ats_ptr_type, tmp1230) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symintr: tmp1226 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1226)->tag != 73) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 57963(line=2752, offs=7) -- 57992(line=2752, offs=36)") ; } do { /* branch: __ats_lab_152 */ __ats_lab_152_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp1228 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp1229 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp1227 = loop_271 (arg0, tmp1228, tmp1229) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_153_1: tmp1227 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; break ; } while (0) ; tmp1230 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1230)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp1230, atslab_0, arg1) ; tmp1225 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1225, atslab_d0ecl_loc, tmp1227) ; ats_selptrset_mac(anairiats_rec_84, tmp1225, atslab_d0ecl_node, tmp1230) ; return (tmp1225) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symintr] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 58246(line=2763, offs=3) -- 58498(line=2771, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symelim (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1231) ; ATSlocal (ats_ptr_type, tmp1232) ; ATSlocal (ats_ptr_type, tmp1233) ; ATSlocal (ats_ptr_type, tmp1234) ; ATSlocal (ats_ptr_type, tmp1235) ; ATSlocal (ats_ptr_type, tmp1236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symelim: tmp1232 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1232)->tag != 72) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 58269(line=2764, offs=7) -- 58298(line=2764, offs=36)") ; } do { /* branch: __ats_lab_154 */ __ats_lab_154_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp1234 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp1235 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp1233 = loop_271 (arg0, tmp1234, tmp1235) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_155_1: tmp1233 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; break ; } while (0) ; tmp1236 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1236)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp1236, atslab_0, arg1) ; tmp1231 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1231, atslab_d0ecl_loc, tmp1233) ; ats_selptrset_mac(anairiats_rec_84, tmp1231, atslab_d0ecl_node, tmp1236) ; return (tmp1231) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symelim] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 58576(line=2777, offs=3) -- 58952(line=2792, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_overload (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1237) ; ATSlocal (ats_ptr_type, tmp1238) ; ATSlocal (ats_ptr_type, tmp1239) ; ATSlocal (ats_ptr_type, tmp1240) ; ATSlocal (ats_ptr_type, tmp1241) ; ATSlocal (ats_int_type, tmp1242) ; ATSlocal (ats_ptr_type, tmp1243) ; ATSlocal (ats_ptr_type, tmp1244) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_overload: tmp1238 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; do { /* branch: __ats_lab_156 */ __ats_lab_156_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_157_0 ; } __ats_lab_156_1: tmp1240 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_0) ; tmp1239 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1240), atslab_token_loc) ; break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_157_1: tmp1239 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg2), atslab_dqi0de_loc) ; break ; } while (0) ; tmp1241 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1238, tmp1239) ; do { /* branch: __ats_lab_158 */ __ats_lab_158_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp1243 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_0) ; tmp1242 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nt2int (tmp1243) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_159_1: tmp1242 = 0 ; break ; } while (0) ; tmp1244 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp1244)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp1244, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp1244, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp1244, atslab_2, tmp1242) ; tmp1237 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1237, atslab_d0ecl_loc, tmp1241) ; ats_selptrset_mac(anairiats_rec_84, tmp1237, atslab_d0ecl_node, tmp1244) ; return (tmp1237) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_overload] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 59028(line=2798, offs=3) -- 59323(line=2809, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_include (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1245) ; ATSlocal (ats_ptr_type, tmp1246) ; ATSlocal (ats_ptr_type, tmp1247) ; ATSlocal (ats_ptr_type, tmp1248) ; // ATSlocal_void (tmp1249) ; ATSlocal (ats_ptr_type, tmp1250) ; ATSlocal (ats_ptr_type, tmp1251) ; ATSlocal (ats_ptr_type, tmp1252) ; ATSlocal (ats_ptr_type, tmp1253) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_include: tmp1246 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1247 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1247)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 59087(line=2801, offs=7) -- 59120(line=2801, offs=40)") ; } tmp1248 = ats_caselptrlab_mac(anairiats_sum_9, tmp1247, atslab_0) ; /* tmp1249 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifunclosed (tmp1246, tmp1248) ; tmp1251 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1250 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1251, tmp1246) ; tmp1252 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp1253 = ATS_MALLOC(sizeof(anairiats_sum_37)) ; ((ats_sum_ptr_type)tmp1253)->tag = 31 ; ats_selptrset_mac(anairiats_sum_37, tmp1253, atslab_0, tmp1252) ; ats_selptrset_mac(anairiats_sum_37, tmp1253, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_37, tmp1253, atslab_2, tmp1248) ; tmp1245 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1245, atslab_d0ecl_loc, tmp1250) ; ats_selptrset_mac(anairiats_rec_84, tmp1245, atslab_d0ecl_node, tmp1253) ; return (tmp1245) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_include] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 59398(line=2815, offs=3) -- 59899(line=2833, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpdef (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1254) ; ATSlocal (ats_ptr_type, tmp1255) ; ATSlocal (ats_ptr_type, tmp1256) ; ATSlocal (ats_ptr_type, tmp1257) ; ATSlocal (ats_ptr_type, tmp1258) ; ATSlocal (ats_ptr_type, tmp1259) ; ATSlocal (ats_ptr_type, tmp1260) ; ATSlocal (ats_ptr_type, tmp1261) ; ATSlocal (ats_int_type, tmp1262) ; ATSlocal (ats_ptr_type, tmp1263) ; ATSlocal (ats_bool_type, tmp1264) ; ATSlocal (ats_ptr_type, tmp1265) ; ATSlocal (ats_ptr_type, tmp1266) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpdef: tmp1255 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; do { /* branch: __ats_lab_160 */ __ats_lab_160_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp1257 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_0) ; tmp1258 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp1257), atslab_e0xp_loc) ; tmp1256 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1255, tmp1258) ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_161_1: tmp1259 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp1256 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1255, tmp1259) ; break ; } while (0) ; do { /* branch: __ats_lab_162 */ __ats_lab_162_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp1261 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_0) ; /* ats_int_type tmp1262 ; */ tmp1262 = 0 ; tmp1263 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__e0xp_funize (tmp1261, (&tmp1262)) ; tmp1264 = atspre_gt_int_int (tmp1262, 0) ; if (tmp1264) { tmp1260 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp1260, atslab_0, tmp1263) ; } else { tmp1260 = arg2 ; } /* end of [if] */ break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_163_1: tmp1260 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp1266 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp1265 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1265)->tag = 5 ; ats_selptrset_mac(anairiats_sum_12, tmp1265, atslab_0, tmp1266) ; ats_selptrset_mac(anairiats_sum_12, tmp1265, atslab_1, tmp1260) ; tmp1254 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1254, atslab_d0ecl_loc, tmp1256) ; ats_selptrset_mac(anairiats_rec_84, tmp1254, atslab_d0ecl_node, tmp1265) ; return (tmp1254) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpdef] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 59976(line=2839, offs=3) -- 60106(line=2843, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpundef (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1267) ; ATSlocal (ats_ptr_type, tmp1268) ; ATSlocal (ats_ptr_type, tmp1269) ; ATSlocal (ats_ptr_type, tmp1270) ; ATSlocal (ats_ptr_type, tmp1271) ; ATSlocal (ats_ptr_type, tmp1272) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpundef: tmp1269 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1270 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_loc) ; tmp1268 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1269, tmp1270) ; tmp1272 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp1271 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1271)->tag = 6 ; ats_selptrset_mac(anairiats_sum_9, tmp1271, atslab_0, tmp1272) ; tmp1267 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1267, atslab_d0ecl_loc, tmp1268) ; ats_selptrset_mac(anairiats_rec_84, tmp1267, atslab_d0ecl_node, tmp1271) ; return (tmp1267) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpundef] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 60190(line=2849, offs=3) -- 60330(line=2857, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_assert (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1273) ; ATSlocal (ats_ptr_type, tmp1274) ; ATSlocal (ats_ptr_type, tmp1275) ; ATSlocal (ats_ptr_type, tmp1276) ; ATSlocal (ats_ptr_type, tmp1277) ; ATSlocal (ats_ptr_type, tmp1278) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_assert: tmp1275 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1276 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_e0xp_loc) ; tmp1274 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1275, tmp1276) ; tmp1278 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTassert_3) ; tmp1277 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1277)->tag = 7 ; ats_selptrset_mac(anairiats_sum_12, tmp1277, atslab_0, tmp1278) ; ats_selptrset_mac(anairiats_sum_12, tmp1277, atslab_1, arg1) ; tmp1273 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1273, atslab_d0ecl_loc, tmp1274) ; ats_selptrset_mac(anairiats_rec_84, tmp1273, atslab_d0ecl_node, tmp1277) ; return (tmp1273) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_assert] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 60418(line=2863, offs=3) -- 60557(line=2871, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_error (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1279) ; ATSlocal (ats_ptr_type, tmp1280) ; ATSlocal (ats_ptr_type, tmp1281) ; ATSlocal (ats_ptr_type, tmp1282) ; ATSlocal (ats_ptr_type, tmp1283) ; ATSlocal (ats_ptr_type, tmp1284) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_error: tmp1281 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1282 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_e0xp_loc) ; tmp1280 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1281, tmp1282) ; tmp1284 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTerror_0) ; tmp1283 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1283)->tag = 7 ; ats_selptrset_mac(anairiats_sum_12, tmp1283, atslab_0, tmp1284) ; ats_selptrset_mac(anairiats_sum_12, tmp1283, atslab_1, arg1) ; tmp1279 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1279, atslab_d0ecl_loc, tmp1280) ; ats_selptrset_mac(anairiats_rec_84, tmp1279, atslab_d0ecl_node, tmp1283) ; return (tmp1279) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_error] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 60644(line=2877, offs=3) -- 60783(line=2885, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_prerr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1285) ; ATSlocal (ats_ptr_type, tmp1286) ; ATSlocal (ats_ptr_type, tmp1287) ; ATSlocal (ats_ptr_type, tmp1288) ; ATSlocal (ats_ptr_type, tmp1289) ; ATSlocal (ats_ptr_type, tmp1290) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_prerr: tmp1287 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1288 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_e0xp_loc) ; tmp1286 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1287, tmp1288) ; tmp1290 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprerr_1) ; tmp1289 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1289)->tag = 7 ; ats_selptrset_mac(anairiats_sum_12, tmp1289, atslab_0, tmp1290) ; ats_selptrset_mac(anairiats_sum_12, tmp1289, atslab_1, arg1) ; tmp1285 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1285, atslab_d0ecl_loc, tmp1286) ; ats_selptrset_mac(anairiats_rec_84, tmp1285, atslab_d0ecl_node, tmp1289) ; return (tmp1285) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_prerr] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 60870(line=2891, offs=3) -- 61009(line=2899, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_print (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1291) ; ATSlocal (ats_ptr_type, tmp1292) ; ATSlocal (ats_ptr_type, tmp1293) ; ATSlocal (ats_ptr_type, tmp1294) ; ATSlocal (ats_ptr_type, tmp1295) ; ATSlocal (ats_ptr_type, tmp1296) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_print: tmp1293 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1294 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_e0xp_loc) ; tmp1292 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1293, tmp1294) ; tmp1296 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprint_2) ; tmp1295 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1295)->tag = 7 ; ats_selptrset_mac(anairiats_sum_12, tmp1295, atslab_0, tmp1296) ; ats_selptrset_mac(anairiats_sum_12, tmp1295, atslab_1, arg1) ; tmp1291 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1291, atslab_d0ecl_loc, tmp1292) ; ats_selptrset_mac(anairiats_rec_84, tmp1291, atslab_d0ecl_node, tmp1295) ; return (tmp1291) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_print] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 61087(line=2905, offs=1) -- 61254(line=2915, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1297) ; // ATSlocal_void (tmp1298) ; ATSlocal (ats_ptr_type, tmp1299) ; ATSlocal (ats_ptr_type, tmp1300) ; ATSlocal (ats_ptr_type, tmp1301) ; ATSlocal (ats_ptr_type, tmp1302) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma: /* tmp1298 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma_process (arg1) ; tmp1300 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1301 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1299 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1300, tmp1301) ; tmp1302 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1302)->tag = 8 ; ats_selptrset_mac(anairiats_sum_9, tmp1302, atslab_0, arg1) ; tmp1297 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1297, atslab_d0ecl_loc, tmp1299) ; ats_selptrset_mac(anairiats_rec_84, tmp1297, atslab_d0ecl_node, tmp1302) ; return (tmp1297) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 61349(line=2925, offs=1) -- 61660(line=2942, offs=4) */ ATSstaticdec() ats_bool_type e0xp_is_location_285 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1303) ; ATSlocal (ats_ptr_type, tmp1304) ; ATSlocal (ats_ptr_type, tmp1305) ; ATSlocal (ats_ptr_type, tmp1306) ; ATSlocal (ats_ptr_type, tmp1307) ; ATSlocal (ats_ptr_type, tmp1308) ; ATSlocal (ats_ptr_type, tmp1309) ; ATSlocal (ats_bool_type, tmp1310) ; __ats_lab_e0xp_is_location_285: tmp1305 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_e0xp_node) ; do { /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)tmp1305)->tag != 0) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp1306 = ats_caselptrlab_mac(anairiats_sum_9, tmp1305, atslab_0) ; tmp1304 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp1306) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)tmp1305)->tag != 4) { goto __ats_lab_166_0 ; } __ats_lab_165_1: tmp1307 = ats_caselptrlab_mac(anairiats_sum_9, tmp1305, atslab_0) ; tmp1308 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1307), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1308)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 61515(line=2935, offs=9) -- 61550(line=2935, offs=44)") ; } tmp1309 = ats_caselptrlab_mac(anairiats_sum_9, tmp1308, atslab_0) ; tmp1304 = tmp1309 ; break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: __ats_lab_166_1: tmp1304 = ATSstrcst("") ; break ; } while (0) ; tmp1310 = atspre_eq_string_string (tmp1304, ATSstrcst("location")) ; if (tmp1310) { tmp1303 = ats_true_bool ; } else { tmp1303 = ats_false_bool ; } /* end of [if] */ return (tmp1303) ; } /* end of [e0xp_is_location_285] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 61695(line=2945, offs=1) -- 61903(line=2955, offs=2) */ ATSstaticdec() ats_ptr_type e2s_286 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1311) ; ATSlocal (ats_ptr_type, tmp1312) ; ATSlocal (ats_ptr_type, tmp1313) ; ATSlocal (ats_ptr_type, tmp1314) ; ATSlocal (ats_ptr_type, tmp1315) ; ATSlocal (ats_ptr_type, tmp1316) ; __ats_lab_e2s_286: tmp1312 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_e0xp_node) ; do { /* branch: __ats_lab_167 */ __ats_lab_167_0: if (((ats_sum_ptr_type)tmp1312)->tag != 0) { goto __ats_lab_168_0 ; } __ats_lab_167_1: tmp1313 = ats_caselptrlab_mac(anairiats_sum_9, tmp1312, atslab_0) ; tmp1311 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp1313) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: if (((ats_sum_ptr_type)tmp1312)->tag != 4) { goto __ats_lab_169_0 ; } __ats_lab_168_1: tmp1314 = ats_caselptrlab_mac(anairiats_sum_9, tmp1312, atslab_0) ; tmp1315 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1314), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1315)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 61830(line=2952, offs=9) -- 61865(line=2952, offs=44)") ; } tmp1316 = ats_caselptrlab_mac(anairiats_sum_9, tmp1315, atslab_0) ; tmp1311 = tmp1316 ; break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: __ats_lab_169_1: tmp1311 = ATSstrcst("??????") ; break ; } while (0) ; return (tmp1311) ; } /* end of [e2s_286] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 61909(line=2958, offs=1) -- 62062(line=2964, offs=2) */ ATSstaticdec() ats_ptr_type locpragma_process0_287 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1317) ; ATSlocal (ats_ptr_type, tmp1318) ; ATSlocal (ats_ptr_type, tmp1319) ; __ats_lab_locpragma_process0_287: do { /* branch: __ats_lab_170 */ __ats_lab_170_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp1317 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma0_make () ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_171_1: tmp1318 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ; tmp1319 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ; tmp1317 = locpragma_process1_288 (tmp1318, tmp1319) ; break ; } while (0) ; return (tmp1317) ; } /* end of [locpragma_process0_287] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 62068(line=2967, offs=1) -- 62249(line=2973, offs=2) */ ATSstaticdec() ats_ptr_type locpragma_process1_288 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1320) ; ATSlocal (ats_ptr_type, tmp1321) ; ATSlocal (ats_ptr_type, tmp1322) ; ATSlocal (ats_ptr_type, tmp1323) ; ATSlocal (ats_ptr_type, tmp1324) ; __ats_lab_locpragma_process1_288: do { /* branch: __ats_lab_172 */ __ats_lab_172_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_173_0 ; } __ats_lab_172_1: tmp1321 = e2s_286 (arg0) ; tmp1320 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma1_make (tmp1321) ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_173_1: tmp1322 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp1323 = e2s_286 (arg0) ; tmp1324 = e2s_286 (tmp1322) ; tmp1320 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma2_make (tmp1323, tmp1324) ; break ; } while (0) ; return (tmp1320) ; } /* end of [locpragma_process1_288] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 62306(line=2979, offs=3) -- 62625(line=2998, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma_process (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp1325) ; ATSlocal (ats_ptr_type, tmp1326) ; ATSlocal (ats_ptr_type, tmp1327) ; ATSlocal (ats_bool_type, tmp1328) ; ATSlocal (ats_ptr_type, tmp1329) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma_process: do { /* branch: __ats_lab_174 */ __ats_lab_174_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_175_0 ; } __ats_lab_174_1: break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_175_1: tmp1326 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ; tmp1327 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ; do { /* branch: __ats_lab_176 */ __ats_lab_176_0: __ats_lab_176_1: tmp1328 = e0xp_is_location_285 (tmp1326) ; if (!tmp1328) { goto __ats_lab_177_1 ; } tmp1329 = locpragma_process0_287 (tmp1327) ; /* tmp1325 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_set (tmp1329) ; break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: __ats_lab_177_1: break ; } while (0) ; break ; } while (0) ; return /* (tmp1325) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma_process] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 62729(line=3006, offs=1) -- 62870(line=3014, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_codegen2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1330) ; ATSlocal (ats_ptr_type, tmp1331) ; ATSlocal (ats_ptr_type, tmp1332) ; ATSlocal (ats_ptr_type, tmp1333) ; ATSlocal (ats_ptr_type, tmp1334) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_codegen2: tmp1332 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1333 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1331 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1332, tmp1333) ; tmp1334 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1334)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp1334, atslab_0, 2) ; ats_selptrset_mac(anairiats_sum_5, tmp1334, atslab_1, arg1) ; tmp1330 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1330, atslab_d0ecl_loc, tmp1331) ; ats_selptrset_mac(anairiats_rec_84, tmp1330, atslab_d0ecl_node, tmp1334) ; return (tmp1330) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_codegen2] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 62924(line=3018, offs=1) -- 63065(line=3026, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_codegen3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1335) ; ATSlocal (ats_ptr_type, tmp1336) ; ATSlocal (ats_ptr_type, tmp1337) ; ATSlocal (ats_ptr_type, tmp1338) ; ATSlocal (ats_ptr_type, tmp1339) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_codegen3: tmp1337 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1338 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1336 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1337, tmp1338) ; tmp1339 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1339)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp1339, atslab_0, 3) ; ats_selptrset_mac(anairiats_sum_5, tmp1339, atslab_1, arg1) ; tmp1335 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1335, atslab_d0ecl_loc, tmp1336) ; ats_selptrset_mac(anairiats_rec_84, tmp1335, atslab_d0ecl_node, tmp1339) ; return (tmp1335) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_codegen3] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 63141(line=3032, offs=3) -- 63387(line=3042, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datsrts (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1340) ; ATSlocal (ats_ptr_type, tmp1341) ; ATSlocal (ats_ptr_type, tmp1342) ; ATSlocal (ats_ptr_type, tmp1343) ; ATSlocal (ats_ptr_type, tmp1344) ; ATSlocal (ats_ptr_type, tmp1345) ; ATSlocal (ats_ptr_type, tmp1346) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datsrts: tmp1341 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1343 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_178 */ __ats_lab_178_0: if (tmp1343 == (ats_sum_ptr_type)0) { goto __ats_lab_179_0 ; } __ats_lab_178_1: tmp1344 = ats_caselptrlab_mac(anairiats_sum_13, tmp1343, atslab_0) ; ATS_FREE(tmp1343) ; tmp1345 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, tmp1344), atslab_d0atsrtdec_loc) ; tmp1342 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1341, tmp1345) ; break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: // if (tmp1343 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_179_1: tmp1342 = tmp1341 ; break ; } while (0) ; tmp1346 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1346)->tag = 10 ; ats_selptrset_mac(anairiats_sum_9, tmp1346, atslab_0, arg1) ; tmp1340 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1340, atslab_d0ecl_loc, tmp1342) ; ats_selptrset_mac(anairiats_rec_84, tmp1340, atslab_d0ecl_node, tmp1346) ; return (tmp1340) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datsrts] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 63441(line=3046, offs=3) -- 63685(line=3054, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_srtdefs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1347) ; ATSlocal (ats_ptr_type, tmp1348) ; ATSlocal (ats_ptr_type, tmp1349) ; ATSlocal (ats_ptr_type, tmp1350) ; ATSlocal (ats_ptr_type, tmp1351) ; ATSlocal (ats_ptr_type, tmp1352) ; ATSlocal (ats_ptr_type, tmp1353) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_srtdefs: tmp1348 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1350 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_180 */ __ats_lab_180_0: if (tmp1350 == (ats_sum_ptr_type)0) { goto __ats_lab_181_0 ; } __ats_lab_180_1: tmp1351 = ats_caselptrlab_mac(anairiats_sum_13, tmp1350, atslab_0) ; ATS_FREE(tmp1350) ; tmp1352 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_41, tmp1351), atslab_s0rtdef_loc) ; tmp1349 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1348, tmp1352) ; break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: // if (tmp1350 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_181_1: tmp1349 = tmp1348 ; break ; } while (0) ; tmp1353 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1353)->tag = 11 ; ats_selptrset_mac(anairiats_sum_9, tmp1353, atslab_0, arg1) ; tmp1347 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1347, atslab_d0ecl_loc, tmp1349) ; ats_selptrset_mac(anairiats_rec_84, tmp1347, atslab_d0ecl_node, tmp1353) ; return (tmp1347) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_srtdefs] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 63739(line=3058, offs=3) -- 63993(line=3066, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacons (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1354) ; ATSlocal (ats_ptr_type, tmp1355) ; ATSlocal (ats_ptr_type, tmp1356) ; ATSlocal (ats_ptr_type, tmp1357) ; ATSlocal (ats_ptr_type, tmp1358) ; ATSlocal (ats_ptr_type, tmp1359) ; ATSlocal (ats_ptr_type, tmp1360) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacons: tmp1355 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1357 = list_last_opt_01409_ats_ptr_type (arg2) ; do { /* branch: __ats_lab_182 */ __ats_lab_182_0: if (tmp1357 == (ats_sum_ptr_type)0) { goto __ats_lab_183_0 ; } __ats_lab_182_1: tmp1358 = ats_caselptrlab_mac(anairiats_sum_13, tmp1357, atslab_0) ; ATS_FREE(tmp1357) ; tmp1359 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_42, tmp1358), atslab_s0tacon_loc) ; tmp1356 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1355, tmp1359) ; break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: // if (tmp1357 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_183_1: tmp1356 = tmp1355 ; break ; } while (0) ; tmp1360 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1360)->tag = 13 ; ats_selptrset_mac(anairiats_sum_5, tmp1360, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp1360, atslab_1, arg2) ; tmp1354 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1354, atslab_d0ecl_loc, tmp1356) ; ats_selptrset_mac(anairiats_rec_84, tmp1354, atslab_d0ecl_node, tmp1360) ; return (tmp1354) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacons] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 64047(line=3070, offs=3) -- 64291(line=3078, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacsts (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1361) ; ATSlocal (ats_ptr_type, tmp1362) ; ATSlocal (ats_ptr_type, tmp1363) ; ATSlocal (ats_ptr_type, tmp1364) ; ATSlocal (ats_ptr_type, tmp1365) ; ATSlocal (ats_ptr_type, tmp1366) ; ATSlocal (ats_ptr_type, tmp1367) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacsts: tmp1362 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1364 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_184 */ __ats_lab_184_0: if (tmp1364 == (ats_sum_ptr_type)0) { goto __ats_lab_185_0 ; } __ats_lab_184_1: tmp1365 = ats_caselptrlab_mac(anairiats_sum_13, tmp1364, atslab_0) ; ATS_FREE(tmp1364) ; tmp1366 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_43, tmp1365), atslab_s0tacst_loc) ; tmp1363 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1362, tmp1366) ; break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: // if (tmp1364 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_185_1: tmp1363 = tmp1362 ; break ; } while (0) ; tmp1367 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1367)->tag = 12 ; ats_selptrset_mac(anairiats_sum_9, tmp1367, atslab_0, arg1) ; tmp1361 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1361, atslab_d0ecl_loc, tmp1363) ; ats_selptrset_mac(anairiats_rec_84, tmp1361, atslab_d0ecl_node, tmp1367) ; return (tmp1361) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacsts] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 64679(line=3098, offs=15) -- 64793(line=3102, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_tkindef (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1368) ; ATSlocal (ats_ptr_type, tmp1369) ; ATSlocal (ats_ptr_type, tmp1370) ; ATSlocal (ats_ptr_type, tmp1371) ; ATSlocal (ats_ptr_type, tmp1372) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_tkindef: tmp1370 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1371 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_44, arg1), atslab_t0kindef_loc) ; tmp1369 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1370, tmp1371) ; tmp1372 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1372)->tag = 14 ; ats_selptrset_mac(anairiats_sum_9, tmp1372, atslab_0, arg1) ; tmp1368 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1368, atslab_d0ecl_loc, tmp1369) ; ats_selptrset_mac(anairiats_rec_84, tmp1368, atslab_d0ecl_node, tmp1372) ; return (tmp1368) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_tkindef] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 64848(line=3106, offs=3) -- 65105(line=3114, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_sexpdefs (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1373) ; ATSlocal (ats_ptr_type, tmp1374) ; ATSlocal (ats_ptr_type, tmp1375) ; ATSlocal (ats_ptr_type, tmp1376) ; ATSlocal (ats_ptr_type, tmp1377) ; ATSlocal (ats_ptr_type, tmp1378) ; ATSlocal (ats_ptr_type, tmp1379) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_sexpdefs: tmp1374 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1376 = list_last_opt_01409_ats_ptr_type (arg2) ; do { /* branch: __ats_lab_186 */ __ats_lab_186_0: if (tmp1376 == (ats_sum_ptr_type)0) { goto __ats_lab_187_0 ; } __ats_lab_186_1: tmp1377 = ats_caselptrlab_mac(anairiats_sum_13, tmp1376, atslab_0) ; ATS_FREE(tmp1376) ; tmp1378 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_45, tmp1377), atslab_s0expdef_loc) ; tmp1375 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1374, tmp1378) ; break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: // if (tmp1376 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_187_1: tmp1375 = tmp1374 ; break ; } while (0) ; tmp1379 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1379)->tag = 15 ; ats_selptrset_mac(anairiats_sum_5, tmp1379, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp1379, atslab_1, arg2) ; tmp1373 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1373, atslab_d0ecl_loc, tmp1375) ; ats_selptrset_mac(anairiats_rec_84, tmp1373, atslab_d0ecl_node, tmp1379) ; return (tmp1373) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_sexpdefs] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 65178(line=3119, offs=14) -- 65295(line=3126, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_saspdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1380) ; ATSlocal (ats_ptr_type, tmp1381) ; ATSlocal (ats_ptr_type, tmp1382) ; ATSlocal (ats_ptr_type, tmp1383) ; ATSlocal (ats_ptr_type, tmp1384) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_saspdec: tmp1382 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1383 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_46, arg1), atslab_s0aspdec_loc) ; tmp1381 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1382, tmp1383) ; tmp1384 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1384)->tag = 16 ; ats_selptrset_mac(anairiats_sum_9, tmp1384, atslab_0, arg1) ; tmp1380 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1380, atslab_d0ecl_loc, tmp1381) ; ats_selptrset_mac(anairiats_rec_84, tmp1380, atslab_d0ecl_node, tmp1384) ; return (tmp1380) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_saspdec] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 65347(line=3129, offs=15) -- 65463(line=3135, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_reassume (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1385) ; ATSlocal (ats_ptr_type, tmp1386) ; ATSlocal (ats_ptr_type, tmp1387) ; ATSlocal (ats_ptr_type, tmp1388) ; ATSlocal (ats_ptr_type, tmp1389) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_reassume: tmp1387 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1388 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_sqi0de_loc) ; tmp1386 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1387, tmp1388) ; tmp1389 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1389)->tag = 17 ; ats_selptrset_mac(anairiats_sum_9, tmp1389, atslab_0, arg1) ; tmp1385 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1385, atslab_d0ecl_loc, tmp1386) ; ats_selptrset_mac(anairiats_rec_84, tmp1385, atslab_d0ecl_node, tmp1389) ; return (tmp1385) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_reassume] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 65539(line=3141, offs=3) -- 65788(line=3149, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_exndecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1390) ; ATSlocal (ats_ptr_type, tmp1391) ; ATSlocal (ats_ptr_type, tmp1392) ; ATSlocal (ats_ptr_type, tmp1393) ; ATSlocal (ats_ptr_type, tmp1394) ; ATSlocal (ats_ptr_type, tmp1395) ; ATSlocal (ats_ptr_type, tmp1396) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_exndecs: tmp1391 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1393 = list_last_opt_01409_ats_ptr_type (arg1) ; do { /* branch: __ats_lab_188 */ __ats_lab_188_0: if (tmp1393 == (ats_sum_ptr_type)0) { goto __ats_lab_189_0 ; } __ats_lab_188_1: tmp1394 = ats_caselptrlab_mac(anairiats_sum_13, tmp1393, atslab_0) ; ATS_FREE(tmp1393) ; tmp1395 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_47, tmp1394), atslab_e0xndec_loc) ; tmp1392 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1391, tmp1395) ; break ; /* branch: __ats_lab_189 */ __ats_lab_189_0: // if (tmp1393 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_189_1: tmp1392 = tmp1391 ; break ; } while (0) ; tmp1396 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1396)->tag = 18 ; ats_selptrset_mac(anairiats_sum_9, tmp1396, atslab_0, arg1) ; tmp1390 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1390, atslab_d0ecl_loc, tmp1392) ; ats_selptrset_mac(anairiats_rec_84, tmp1390, atslab_d0ecl_node, tmp1396) ; return (tmp1390) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_exndecs] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 65866(line=3155, offs=1) -- 66158(line=3167, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_none (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1397) ; ATSlocal (ats_ptr_type, tmp1398) ; ATSlocal (ats_ptr_type, tmp1399) ; ATSlocal (ats_ptr_type, tmp1400) ; ATSlocal (ats_ptr_type, tmp1401) ; ATSlocal (ats_ptr_type, tmp1402) ; ATSlocal (ats_ptr_type, tmp1403) ; ATSlocal (ats_ptr_type, tmp1404) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_none: tmp1398 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1399 = list_last_opt_01409_ats_ptr_type (arg2) ; do { /* branch: __ats_lab_190 */ __ats_lab_190_0: if (tmp1399 == (ats_sum_ptr_type)0) { goto __ats_lab_191_0 ; } __ats_lab_190_1: tmp1401 = ats_caselptrlab_mac(anairiats_sum_13, tmp1399, atslab_0) ; ATS_FREE(tmp1399) ; tmp1402 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_49, tmp1401), atslab_d0atdec_loc) ; tmp1400 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1398, tmp1402) ; break ; /* branch: __ats_lab_191 */ __ats_lab_191_0: // if (tmp1399 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_191_1: tmp1400 = tmp1398 ; break ; } while (0) ; tmp1404 = (ats_sum_ptr_type)0 ; tmp1403 = ATS_MALLOC(sizeof(anairiats_sum_72)) ; ((ats_sum_ptr_type)tmp1403)->tag = 19 ; ats_selptrset_mac(anairiats_sum_72, tmp1403, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_72, tmp1403, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_72, tmp1403, atslab_2, tmp1404) ; tmp1397 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1397, atslab_d0ecl_loc, tmp1400) ; ats_selptrset_mac(anairiats_rec_84, tmp1397, atslab_d0ecl_node, tmp1403) ; return (tmp1397) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_none] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 66220(line=3171, offs=1) -- 66551(line=3184, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_some (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1405) ; ATSlocal (ats_ptr_type, tmp1406) ; ATSlocal (ats_ptr_type, tmp1407) ; ATSlocal (ats_ptr_type, tmp1408) ; ATSlocal (ats_ptr_type, tmp1409) ; ATSlocal (ats_ptr_type, tmp1410) ; ATSlocal (ats_ptr_type, tmp1411) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_some: tmp1406 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1407 = list_last_opt_01409_ats_ptr_type (arg4) ; do { /* branch: __ats_lab_192 */ __ats_lab_192_0: if (tmp1407 == (ats_sum_ptr_type)0) { goto __ats_lab_193_0 ; } __ats_lab_192_1: tmp1409 = ats_caselptrlab_mac(anairiats_sum_13, tmp1407, atslab_0) ; ATS_FREE(tmp1407) ; tmp1408 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_45, tmp1409), atslab_s0expdef_loc) ; break ; /* branch: __ats_lab_193 */ __ats_lab_193_0: // if (tmp1407 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_193_1: tmp1408 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; break ; } while (0) ; tmp1410 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1406, tmp1408) ; tmp1411 = ATS_MALLOC(sizeof(anairiats_sum_72)) ; ((ats_sum_ptr_type)tmp1411)->tag = 19 ; ats_selptrset_mac(anairiats_sum_72, tmp1411, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_72, tmp1411, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_72, tmp1411, atslab_2, arg4) ; tmp1405 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1405, atslab_d0ecl_loc, tmp1410) ; ats_selptrset_mac(anairiats_rec_84, tmp1405, atslab_d0ecl_node, tmp1411) ; return (tmp1405) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_some] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 66632(line=3190, offs=3) -- 66854(line=3198, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_classdec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1412) ; ATSlocal (ats_ptr_type, tmp1413) ; ATSlocal (ats_ptr_type, tmp1414) ; ATSlocal (ats_ptr_type, tmp1415) ; ATSlocal (ats_ptr_type, tmp1416) ; ATSlocal (ats_ptr_type, tmp1417) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_classdec: tmp1413 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; do { /* branch: __ats_lab_194 */ __ats_lab_194_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_195_0 ; } __ats_lab_194_1: tmp1415 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_0) ; tmp1416 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp1415), atslab_s0exp_loc) ; tmp1414 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1413, tmp1416) ; break ; /* branch: __ats_lab_195 */ __ats_lab_195_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_195_1: tmp1414 = tmp1413 ; break ; } while (0) ; tmp1417 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1417)->tag = 20 ; ats_selptrset_mac(anairiats_sum_12, tmp1417, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp1417, atslab_1, arg2) ; tmp1412 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1412, atslab_d0ecl_loc, tmp1414) ; ats_selptrset_mac(anairiats_rec_84, tmp1412, atslab_d0ecl_node, tmp1417) ; return (tmp1412) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_classdec] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 66915(line=3204, offs=5) -- 67296(line=3222, offs=6) */ ATSstaticdec() ats_ptr_type auxmain_304 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1418) ; ATSlocal (ats_ptr_type, tmp1419) ; ATSlocal (ats_ptr_type, tmp1420) ; ATSlocal (ats_ptr_type, tmp1421) ; ATSlocal (ats_ptr_type, tmp1422) ; ATSlocal (ats_ptr_type, tmp1423) ; ATSlocal (ats_ptr_type, tmp1424) ; __ats_lab_auxmain_304: tmp1419 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1420 = list_last_opt_01409_ats_ptr_type (arg3) ; do { /* branch: __ats_lab_196 */ __ats_lab_196_0: if (tmp1420 == (ats_sum_ptr_type)0) { goto __ats_lab_197_0 ; } __ats_lab_196_1: tmp1422 = ats_caselptrlab_mac(anairiats_sum_13, tmp1420, atslab_0) ; ATS_FREE(tmp1420) ; tmp1423 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_50, tmp1422), atslab_d0cstdec_loc) ; tmp1421 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1419, tmp1423) ; break ; /* branch: __ats_lab_197 */ __ats_lab_197_0: // if (tmp1420 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_197_1: tmp1421 = tmp1419 ; break ; } while (0) ; tmp1424 = ATS_MALLOC(sizeof(anairiats_sum_85)) ; ((ats_sum_ptr_type)tmp1424)->tag = 25 ; ats_selptrset_mac(anairiats_sum_85, tmp1424, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_85, tmp1424, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_85, tmp1424, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_85, tmp1424, atslab_3, arg3) ; tmp1418 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1418, atslab_d0ecl_loc, tmp1421) ; ats_selptrset_mac(anairiats_rec_84, tmp1418, atslab_d0ecl_node, tmp1424) ; return (tmp1418) ; } /* end of [auxmain_304] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 67371(line=3228, offs=3) -- 67426(line=3228, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1425) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs: tmp1425 = auxmain_304 (1, arg0, arg1, arg2) ; return (tmp1425) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 67464(line=3232, offs=3) -- 67519(line=3232, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_extern (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1426) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_extern: tmp1426 = auxmain_304 (1, arg0, arg1, arg2) ; return (tmp1426) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_extern] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 67591(line=3236, offs=3) -- 67646(line=3236, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_static (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1427) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_static: tmp1427 = auxmain_304 (0, arg0, arg1, arg2) ; return (tmp1427) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_static] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 67720(line=3244, offs=3) -- 68001(line=3252, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_macdefs (ats_int_type arg0, ats_bool_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1428) ; ATSlocal (ats_ptr_type, tmp1429) ; ATSlocal (ats_ptr_type, tmp1430) ; ATSlocal (ats_ptr_type, tmp1431) ; ATSlocal (ats_ptr_type, tmp1432) ; ATSlocal (ats_ptr_type, tmp1433) ; ATSlocal (ats_ptr_type, tmp1434) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_macdefs: tmp1429 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1431 = list_last_opt_01409_ats_ptr_type (arg3) ; do { /* branch: __ats_lab_198 */ __ats_lab_198_0: if (tmp1431 == (ats_sum_ptr_type)0) { goto __ats_lab_199_0 ; } __ats_lab_198_1: tmp1432 = ats_caselptrlab_mac(anairiats_sum_13, tmp1431, atslab_0) ; ATS_FREE(tmp1431) ; tmp1433 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_78, tmp1432), atslab_m0acdef_loc) ; tmp1430 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1429, tmp1433) ; break ; /* branch: __ats_lab_199 */ __ats_lab_199_0: // if (tmp1431 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_199_1: tmp1430 = tmp1429 ; break ; } while (0) ; tmp1434 = ATS_MALLOC(sizeof(anairiats_sum_86)) ; ((ats_sum_ptr_type)tmp1434)->tag = 27 ; ats_selptrset_mac(anairiats_sum_86, tmp1434, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_86, tmp1434, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_86, tmp1434, atslab_2, arg3) ; tmp1428 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1428, atslab_d0ecl_loc, tmp1430) ; ats_selptrset_mac(anairiats_rec_84, tmp1428, atslab_d0ecl_node, tmp1434) ; return (tmp1428) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_macdefs] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 68075(line=3258, offs=3) -- 68278(line=3264, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1435) ; ATSlocal (ats_ptr_type, tmp1436) ; ATSlocal (ats_ptr_type, tmp1437) ; ATSlocal (ats_ptr_type, tmp1438) ; ATSlocal (ats_ptr_type, tmp1439) ; ATSlocal (ats_ptr_type, tmp1440) ; ATSlocal (ats_ptr_type, tmp1441) ; ATSlocal (ats_ptr_type, tmp1442) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype: tmp1436 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1436)->tag != 46) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 68104(line=3259, offs=7) -- 68132(line=3259, offs=35)") ; } tmp1437 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1437)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 68139(line=3260, offs=7) -- 68172(line=3260, offs=40)") ; } tmp1438 = ats_caselptrlab_mac(anairiats_sum_9, tmp1437, atslab_0) ; tmp1440 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1441 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg2), atslab_s0exp_loc) ; tmp1439 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1440, tmp1441) ; tmp1442 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1442)->tag = 21 ; ats_selptrset_mac(anairiats_sum_12, tmp1442, atslab_0, tmp1438) ; ats_selptrset_mac(anairiats_sum_12, tmp1442, atslab_1, arg2) ; tmp1435 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1435, atslab_d0ecl_loc, tmp1439) ; ats_selptrset_mac(anairiats_rec_84, tmp1435, atslab_d0ecl_node, tmp1442) ; return (tmp1435) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 68331(line=3268, offs=3) -- 68543(line=3274, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1443) ; ATSlocal (ats_ptr_type, tmp1444) ; ATSlocal (ats_int_type, tmp1445) ; ATSlocal (ats_ptr_type, tmp1446) ; ATSlocal (ats_ptr_type, tmp1447) ; ATSlocal (ats_ptr_type, tmp1448) ; ATSlocal (ats_ptr_type, tmp1449) ; ATSlocal (ats_ptr_type, tmp1450) ; ATSlocal (ats_ptr_type, tmp1451) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype2: tmp1444 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1444)->tag != 79) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 68360(line=3269, offs=7) -- 68392(line=3269, offs=39)") ; } tmp1445 = ats_caselptrlab_mac(anairiats_sum_8, tmp1444, atslab_0) ; tmp1446 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1446)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 68399(line=3270, offs=7) -- 68432(line=3270, offs=40)") ; } tmp1447 = ats_caselptrlab_mac(anairiats_sum_9, tmp1446, atslab_0) ; tmp1449 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1450 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg2), atslab_s0exp_loc) ; tmp1448 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1449, tmp1450) ; tmp1451 = ATS_MALLOC(sizeof(anairiats_sum_72)) ; ((ats_sum_ptr_type)tmp1451)->tag = 22 ; ats_selptrset_mac(anairiats_sum_72, tmp1451, atslab_0, tmp1445) ; ats_selptrset_mac(anairiats_sum_72, tmp1451, atslab_1, tmp1447) ; ats_selptrset_mac(anairiats_sum_72, tmp1451, atslab_2, arg2) ; tmp1443 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1443, atslab_d0ecl_loc, tmp1448) ; ats_selptrset_mac(anairiats_rec_84, tmp1443, atslab_d0ecl_node, tmp1451) ; return (tmp1443) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype2] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 68616(line=3280, offs=3) -- 68819(line=3286, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1452) ; ATSlocal (ats_ptr_type, tmp1453) ; ATSlocal (ats_ptr_type, tmp1454) ; ATSlocal (ats_ptr_type, tmp1455) ; ATSlocal (ats_ptr_type, tmp1456) ; ATSlocal (ats_ptr_type, tmp1457) ; ATSlocal (ats_ptr_type, tmp1458) ; ATSlocal (ats_ptr_type, tmp1459) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar: tmp1453 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1453)->tag != 47) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 68645(line=3281, offs=7) -- 68673(line=3281, offs=35)") ; } tmp1454 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1454)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 68680(line=3282, offs=7) -- 68713(line=3282, offs=40)") ; } tmp1455 = ats_caselptrlab_mac(anairiats_sum_9, tmp1454, atslab_0) ; tmp1457 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1458 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp1456 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1457, tmp1458) ; tmp1459 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1459)->tag = 23 ; ats_selptrset_mac(anairiats_sum_12, tmp1459, atslab_0, tmp1455) ; ats_selptrset_mac(anairiats_sum_12, tmp1459, atslab_1, arg2) ; tmp1452 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1452, atslab_d0ecl_loc, tmp1456) ; ats_selptrset_mac(anairiats_rec_84, tmp1452, atslab_d0ecl_node, tmp1459) ; return (tmp1452) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 68872(line=3290, offs=3) -- 69071(line=3296, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1460) ; ATSlocal (ats_ptr_type, tmp1461) ; ATSlocal (ats_ptr_type, tmp1462) ; ATSlocal (ats_ptr_type, tmp1463) ; ATSlocal (ats_ptr_type, tmp1464) ; ATSlocal (ats_ptr_type, tmp1465) ; ATSlocal (ats_ptr_type, tmp1466) ; ATSlocal (ats_ptr_type, tmp1467) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar2: tmp1461 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1461)->tag != 81) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 68901(line=3291, offs=7) -- 68925(line=3291, offs=31)") ; } tmp1462 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1462)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 68932(line=3292, offs=7) -- 68965(line=3292, offs=40)") ; } tmp1463 = ats_caselptrlab_mac(anairiats_sum_9, tmp1462, atslab_0) ; tmp1465 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1466 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_66, arg2), atslab_d0exp_loc) ; tmp1464 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1465, tmp1466) ; tmp1467 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1467)->tag = 23 ; ats_selptrset_mac(anairiats_sum_12, tmp1467, atslab_0, tmp1463) ; ats_selptrset_mac(anairiats_sum_12, tmp1467, atslab_1, arg2) ; tmp1460 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1460, atslab_d0ecl_loc, tmp1464) ; ats_selptrset_mac(anairiats_rec_84, tmp1460, atslab_d0ecl_node, tmp1467) ; return (tmp1460) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar2] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 69146(line=3302, offs=3) -- 69287(line=3306, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extcode (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1468) ; ATSlocal (ats_ptr_type, tmp1469) ; ATSlocal (ats_int_type, tmp1470) ; ATSlocal (ats_ptr_type, tmp1471) ; ATSlocal (ats_ptr_type, tmp1472) ; ATSlocal (ats_ptr_type, tmp1473) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extcode: tmp1469 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1469)->tag != 173) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 69169(line=3303, offs=7) -- 69207(line=3303, offs=45)") ; } tmp1470 = ats_caselptrlab_mac(anairiats_sum_5, tmp1469, atslab_0) ; tmp1471 = ats_caselptrlab_mac(anairiats_sum_5, tmp1469, atslab_1) ; tmp1472 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1473 = ATS_MALLOC(sizeof(anairiats_sum_36)) ; ((ats_sum_ptr_type)tmp1473)->tag = 24 ; ats_selptrset_mac(anairiats_sum_36, tmp1473, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_36, tmp1473, atslab_1, tmp1470) ; ats_selptrset_mac(anairiats_sum_36, tmp1473, atslab_2, tmp1471) ; tmp1468 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1468, atslab_d0ecl_loc, tmp1472) ; ats_selptrset_mac(anairiats_rec_84, tmp1468, atslab_d0ecl_node, tmp1473) ; return (tmp1468) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extcode] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 69359(line=3311, offs=14) -- 69552(line=3318, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_impdec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1474) ; ATSlocal (ats_ptr_type, tmp1475) ; ATSlocal (ats_int_type, tmp1476) ; ATSlocal (ats_ptr_type, tmp1477) ; ATSlocal (ats_ptr_type, tmp1478) ; ATSlocal (ats_ptr_type, tmp1479) ; ATSlocal (ats_ptr_type, tmp1480) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_impdec: tmp1475 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1475)->tag != 55) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 69397(line=3314, offs=7) -- 69431(line=3314, offs=41)") ; } tmp1476 = ats_caselptrlab_mac(anairiats_sum_8, tmp1475, atslab_0) ; tmp1478 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1479 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_83, arg2), atslab_i0mpdec_loc) ; tmp1477 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1478, tmp1479) ; tmp1480 = ATS_MALLOC(sizeof(anairiats_sum_72)) ; ((ats_sum_ptr_type)tmp1480)->tag = 26 ; ats_selptrset_mac(anairiats_sum_72, tmp1480, atslab_0, tmp1476) ; ats_selptrset_mac(anairiats_sum_72, tmp1480, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_72, tmp1480, atslab_2, arg2) ; tmp1474 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1474, atslab_d0ecl_loc, tmp1477) ; ats_selptrset_mac(anairiats_rec_84, tmp1474, atslab_d0ecl_node, tmp1480) ; return (tmp1474) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_impdec] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 69624(line=3323, offs=15) -- 69892(line=3333, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fundecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1481) ; ATSlocal (ats_ptr_type, tmp1482) ; ATSlocal (ats_ptr_type, tmp1483) ; ATSlocal (ats_ptr_type, tmp1484) ; ATSlocal (ats_ptr_type, tmp1485) ; ATSlocal (ats_ptr_type, tmp1486) ; ATSlocal (ats_ptr_type, tmp1487) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fundecs: tmp1482 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1484 = list_last_opt_01409_ats_ptr_type (arg3) ; do { /* branch: __ats_lab_200 */ __ats_lab_200_0: if (tmp1484 == (ats_sum_ptr_type)0) { goto __ats_lab_201_0 ; } __ats_lab_200_1: tmp1485 = ats_caselptrlab_mac(anairiats_sum_13, tmp1484, atslab_0) ; ATS_FREE(tmp1484) ; tmp1486 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_81, tmp1485), atslab_f0undec_loc) ; tmp1483 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1482, tmp1486) ; break ; /* branch: __ats_lab_201 */ __ats_lab_201_0: // if (tmp1484 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_201_1: tmp1483 = tmp1482 ; break ; } while (0) ; tmp1487 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp1487)->tag = 28 ; ats_selptrset_mac(anairiats_sum_14, tmp1487, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_14, tmp1487, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp1487, atslab_2, arg3) ; tmp1481 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1481, atslab_d0ecl_loc, tmp1483) ; ats_selptrset_mac(anairiats_rec_84, tmp1481, atslab_d0ecl_node, tmp1487) ; return (tmp1481) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fundecs] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 69965(line=3338, offs=15) -- 70237(line=3348, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_valdecs (ats_ptr_type arg0, ats_bool_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1488) ; ATSlocal (ats_ptr_type, tmp1489) ; ATSlocal (ats_ptr_type, tmp1490) ; ATSlocal (ats_ptr_type, tmp1491) ; ATSlocal (ats_ptr_type, tmp1492) ; ATSlocal (ats_ptr_type, tmp1493) ; ATSlocal (ats_ptr_type, tmp1494) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_valdecs: tmp1489 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1491 = list_last_opt_01409_ats_ptr_type (arg3) ; do { /* branch: __ats_lab_202 */ __ats_lab_202_0: if (tmp1491 == (ats_sum_ptr_type)0) { goto __ats_lab_203_0 ; } __ats_lab_202_1: tmp1492 = ats_caselptrlab_mac(anairiats_sum_13, tmp1491, atslab_0) ; ATS_FREE(tmp1491) ; tmp1493 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_80, tmp1492), atslab_v0aldec_loc) ; tmp1490 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1489, tmp1493) ; break ; /* branch: __ats_lab_203 */ __ats_lab_203_0: // if (tmp1491 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_203_1: tmp1490 = tmp1489 ; break ; } while (0) ; tmp1494 = ATS_MALLOC(sizeof(anairiats_sum_87)) ; ((ats_sum_ptr_type)tmp1494)->tag = 29 ; ats_selptrset_mac(anairiats_sum_87, tmp1494, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_87, tmp1494, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_87, tmp1494, atslab_2, arg3) ; tmp1488 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1488, atslab_d0ecl_loc, tmp1490) ; ats_selptrset_mac(anairiats_rec_84, tmp1488, atslab_d0ecl_node, tmp1494) ; return (tmp1488) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_valdecs] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 70312(line=3354, offs=3) -- 70566(line=3362, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_vardecs (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1495) ; ATSlocal (ats_ptr_type, tmp1496) ; ATSlocal (ats_ptr_type, tmp1497) ; ATSlocal (ats_ptr_type, tmp1498) ; ATSlocal (ats_ptr_type, tmp1499) ; ATSlocal (ats_ptr_type, tmp1500) ; ATSlocal (ats_ptr_type, tmp1501) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_vardecs: tmp1496 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1498 = list_last_opt_01409_ats_ptr_type (arg2) ; do { /* branch: __ats_lab_204 */ __ats_lab_204_0: if (tmp1498 == (ats_sum_ptr_type)0) { goto __ats_lab_205_0 ; } __ats_lab_204_1: tmp1499 = ats_caselptrlab_mac(anairiats_sum_13, tmp1498, atslab_0) ; ATS_FREE(tmp1498) ; tmp1500 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_82, tmp1499), atslab_v0ardec_loc) ; tmp1497 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1496, tmp1500) ; break ; /* branch: __ats_lab_205 */ __ats_lab_205_0: // if (tmp1498 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_205_1: tmp1497 = tmp1496 ; break ; } while (0) ; tmp1501 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1501)->tag = 30 ; ats_selptrset_mac(anairiats_sum_5, tmp1501, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp1501, atslab_1, arg2) ; tmp1495 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1495, atslab_d0ecl_loc, tmp1497) ; ats_selptrset_mac(anairiats_rec_84, tmp1495, atslab_d0ecl_node, tmp1501) ; return (tmp1495) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_vardecs] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 70647(line=3368, offs=3) -- 70939(line=3380, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_fname (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1502) ; ATSlocal (ats_ptr_type, tmp1503) ; ATSlocal (ats_ptr_type, tmp1504) ; ATSlocal (ats_ptr_type, tmp1505) ; // ATSlocal_void (tmp1506) ; ATSlocal (ats_ptr_type, tmp1507) ; ATSlocal (ats_ptr_type, tmp1508) ; ATSlocal (ats_ptr_type, tmp1509) ; ATSlocal (ats_ptr_type, tmp1510) ; ATSlocal (ats_ptr_type, tmp1511) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_fname: tmp1503 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1504 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1504)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 70701(line=3371, offs=7) -- 70734(line=3371, offs=40)") ; } tmp1505 = ats_caselptrlab_mac(anairiats_sum_9, tmp1504, atslab_0) ; /* tmp1506 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifunclosed (tmp1503, tmp1505) ; tmp1508 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1507 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1508, tmp1503) ; tmp1509 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp1511 = (ats_sum_ptr_type)0 ; tmp1510 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp1510)->tag = 32 ; ats_selptrset_mac(anairiats_sum_14, tmp1510, atslab_0, tmp1509) ; ats_selptrset_mac(anairiats_sum_14, tmp1510, atslab_1, tmp1511) ; ats_selptrset_mac(anairiats_sum_14, tmp1510, atslab_2, tmp1505) ; tmp1502 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1502, atslab_d0ecl_loc, tmp1507) ; ats_selptrset_mac(anairiats_rec_84, tmp1502, atslab_d0ecl_node, tmp1510) ; return (tmp1502) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_fname] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 71027(line=3386, offs=3) -- 71313(line=3397, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_nspace (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1512) ; ATSlocal (ats_ptr_type, tmp1513) ; ATSlocal (ats_ptr_type, tmp1514) ; ATSlocal (ats_ptr_type, tmp1515) ; ATSlocal (ats_ptr_type, tmp1516) ; ATSlocal (ats_ptr_type, tmp1517) ; ATSlocal (ats_ptr_type, tmp1518) ; ATSlocal (ats_ptr_type, tmp1519) ; ATSlocal (ats_ptr_type, tmp1520) ; ATSlocal (ats_ptr_type, tmp1521) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_nspace: tmp1513 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1514 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1514)->tag != 147) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 71081(line=3389, offs=7) -- 71117(line=3389, offs=43)") ; } tmp1515 = ats_caselptrlab_mac(anairiats_sum_9, tmp1514, atslab_0) ; tmp1517 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1516 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1517, tmp1513) ; tmp1518 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp1519 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp1515) ; tmp1521 = (ats_sum_ptr_type)0 ; tmp1520 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp1520)->tag = 33 ; ats_selptrset_mac(anairiats_sum_14, tmp1520, atslab_0, tmp1518) ; ats_selptrset_mac(anairiats_sum_14, tmp1520, atslab_1, tmp1521) ; ats_selptrset_mac(anairiats_sum_14, tmp1520, atslab_2, tmp1519) ; tmp1512 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1512, atslab_d0ecl_loc, tmp1516) ; ats_selptrset_mac(anairiats_rec_84, tmp1512, atslab_d0ecl_node, tmp1520) ; return (tmp1512) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_nspace] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 71398(line=3402, offs=20) -- 71531(line=3410, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1522) ; ATSlocal (ats_ptr_type, tmp1523) ; ATSlocal (ats_ptr_type, tmp1524) ; ATSlocal (ats_ptr_type, tmp1525) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_get_loc: do { /* branch: __ats_lab_206 */ __ats_lab_206_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_207_0 ; } __ats_lab_206_1: tmp1523 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp1522 = tmp1523 ; break ; /* branch: __ats_lab_207 */ __ats_lab_207_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_208_0 ; } __ats_lab_207_1: tmp1524 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp1522 = tmp1524 ; break ; /* branch: __ats_lab_208 */ __ats_lab_208_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_208_1: tmp1525 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp1522 = tmp1525 ; break ; } while (0) ; return (tmp1522) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 71616(line=3416, offs=3) -- 71690(line=3417, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_declist (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1526) ; ATSlocal (ats_ptr_type, tmp1527) ; ATSlocal (ats_ptr_type, tmp1528) ; ATSlocal (ats_ptr_type, tmp1529) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_declist: tmp1528 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1529 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1527 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1528, tmp1529) ; tmp1526 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1526)->tag = 2 ; ats_selptrset_mac(anairiats_sum_12, tmp1526, atslab_0, tmp1527) ; ats_selptrset_mac(anairiats_sum_12, tmp1526, atslab_1, arg1) ; return (tmp1526) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_declist] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 71779(line=3424, offs=3) -- 72422(line=3451, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_some_arg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1530) ; ATSlocal (ats_ptr_type, tmp1531) ; ATSlocal (ats_ptr_type, tmp1532) ; ATSlocal (ats_ptr_type, tmp1533) ; ATSlocal (ats_ptr_type, tmp1534) ; ATSlocal (ats_ptr_type, tmp1535) ; ATSlocal (ats_ptr_type, tmp1536) ; ATSlocal (ats_ptr_type, tmp1537) ; ATSlocal (ats_ptr_type, tmp1538) ; // ATSlocal_void (tmp1539) ; ATSlocal (ats_ptr_type, tmp1540) ; ATSlocal (ats_ptr_type, tmp1541) ; ATSlocal (ats_ptr_type, tmp1542) ; ATSlocal (ats_ptr_type, tmp1543) ; ATSlocal (ats_ptr_type, tmp1544) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_some_arg: tmp1531 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_i0de_sym) ; tmp1533 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1534 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_get_loc (arg2) ; tmp1532 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1533, tmp1534) ; tmp1535 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; do { /* branch: __ats_lab_209 */ __ats_lab_209_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_210_0 ; } __ats_lab_209_1: tmp1537 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_0) ; tmp1538 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; /* tmp1539 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifunclosed (tmp1537, tmp1538) ; tmp1540 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp1540, atslab_0, tmp1531) ; tmp1536 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp1536)->tag = 32 ; ats_selptrset_mac(anairiats_sum_14, tmp1536, atslab_0, tmp1535) ; ats_selptrset_mac(anairiats_sum_14, tmp1536, atslab_1, tmp1540) ; ats_selptrset_mac(anairiats_sum_14, tmp1536, atslab_2, tmp1538) ; break ; /* branch: __ats_lab_210 */ __ats_lab_210_0: if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_211_0 ; } __ats_lab_210_1: tmp1541 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; tmp1542 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp1541) ; tmp1543 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp1543, atslab_0, tmp1531) ; tmp1536 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp1536)->tag = 33 ; ats_selptrset_mac(anairiats_sum_14, tmp1536, atslab_0, tmp1535) ; ats_selptrset_mac(anairiats_sum_14, tmp1536, atslab_1, tmp1543) ; ats_selptrset_mac(anairiats_sum_14, tmp1536, atslab_2, tmp1542) ; break ; /* branch: __ats_lab_211 */ __ats_lab_211_0: // if (((ats_sum_ptr_type)arg2)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_211_1: tmp1544 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; tmp1536 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp1536)->tag = 34 ; ats_selptrset_mac(anairiats_sum_14, tmp1536, atslab_0, tmp1535) ; ats_selptrset_mac(anairiats_sum_14, tmp1536, atslab_1, tmp1531) ; ats_selptrset_mac(anairiats_sum_14, tmp1536, atslab_2, tmp1544) ; break ; } while (0) ; tmp1530 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1530, atslab_d0ecl_loc, tmp1532) ; ats_selptrset_mac(anairiats_rec_84, tmp1530, atslab_d0ecl_node, tmp1536) ; return (tmp1530) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_some_arg] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 72506(line=3457, offs=3) -- 72781(line=3468, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_require (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1545) ; ATSlocal (ats_ptr_type, tmp1546) ; ATSlocal (ats_ptr_type, tmp1547) ; ATSlocal (ats_ptr_type, tmp1548) ; // ATSlocal_void (tmp1549) ; ATSlocal (ats_ptr_type, tmp1550) ; ATSlocal (ats_ptr_type, tmp1551) ; ATSlocal (ats_ptr_type, tmp1552) ; ATSlocal (ats_ptr_type, tmp1553) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_require: tmp1546 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1547 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1547)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 72556(line=3460, offs=5) -- 72589(line=3460, offs=38)") ; } tmp1548 = ats_caselptrlab_mac(anairiats_sum_9, tmp1547, atslab_0) ; /* tmp1549 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifunclosed (tmp1546, tmp1548) ; tmp1551 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1550 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1551, tmp1546) ; tmp1552 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp1553 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1553)->tag = 35 ; ats_selptrset_mac(anairiats_sum_12, tmp1553, atslab_0, tmp1552) ; ats_selptrset_mac(anairiats_sum_12, tmp1553, atslab_1, tmp1548) ; tmp1545 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1545, atslab_d0ecl_loc, tmp1550) ; ats_selptrset_mac(anairiats_rec_84, tmp1545, atslab_d0ecl_node, tmp1553) ; return (tmp1545) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_require] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 72856(line=3474, offs=3) -- 73131(line=3485, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dynload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1554) ; ATSlocal (ats_ptr_type, tmp1555) ; ATSlocal (ats_ptr_type, tmp1556) ; ATSlocal (ats_ptr_type, tmp1557) ; // ATSlocal_void (tmp1558) ; ATSlocal (ats_ptr_type, tmp1559) ; ATSlocal (ats_ptr_type, tmp1560) ; ATSlocal (ats_ptr_type, tmp1561) ; ATSlocal (ats_ptr_type, tmp1562) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dynload: tmp1555 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_loc) ; tmp1556 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp1556)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax.dats: 72906(line=3477, offs=5) -- 72939(line=3477, offs=38)") ; } tmp1557 = ats_caselptrlab_mac(anairiats_sum_9, tmp1556, atslab_0) ; /* tmp1558 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifunclosed (tmp1555, tmp1557) ; tmp1560 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1559 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1560, tmp1555) ; tmp1561 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp1562 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1562)->tag = 36 ; ats_selptrset_mac(anairiats_sum_12, tmp1562, atslab_0, tmp1561) ; ats_selptrset_mac(anairiats_sum_12, tmp1562, atslab_1, tmp1557) ; tmp1554 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1554, atslab_d0ecl_loc, tmp1559) ; ats_selptrset_mac(anairiats_rec_84, tmp1554, atslab_d0ecl_node, tmp1562) ; return (tmp1554) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dynload] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 73202(line=3491, offs=1) -- 73356(line=3497, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_local (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1563) ; ATSlocal (ats_ptr_type, tmp1564) ; ATSlocal (ats_ptr_type, tmp1565) ; ATSlocal (ats_ptr_type, tmp1566) ; ATSlocal (ats_ptr_type, tmp1567) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_local: tmp1565 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1566 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp1564 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1565, tmp1566) ; tmp1567 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1567)->tag = 37 ; ats_selptrset_mac(anairiats_sum_12, tmp1567, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp1567, atslab_1, arg2) ; tmp1563 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1563, atslab_d0ecl_loc, tmp1564) ; ats_selptrset_mac(anairiats_rec_84, tmp1563, atslab_d0ecl_node, tmp1567) ; return (tmp1563) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_local] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 73413(line=3504, offs=1) -- 73667(line=3519, offs=2) */ ATSstaticdec() ats_ptr_type loop_326 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1568) ; ATSlocal (ats_ptr_type, tmp1569) ; ATSlocal (ats_ptr_type, tmp1570) ; ATSlocal (ats_ptr_type, tmp1571) ; ATSlocal (ats_ptr_type, tmp1572) ; __ats_lab_loop_326: do { /* branch: __ats_lab_212 */ __ats_lab_212_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_213_0 ; } __ats_lab_212_1: tmp1569 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_84, arg0), atslab_d0ecl_loc) ; tmp1570 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_84, arg1), atslab_d0ecl_loc) ; tmp1568 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1569, tmp1570) ; break ; /* branch: __ats_lab_213 */ __ats_lab_213_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_213_1: tmp1571 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp1572 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; arg0 = arg0 ; arg1 = tmp1571 ; arg2 = tmp1572 ; goto __ats_lab_loop_326 ; // tail call break ; } while (0) ; return (tmp1568) ; } /* end of [loop_326] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 73712(line=3525, offs=1) -- 74000(line=3541, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_list (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1573) ; ATSlocal (ats_ptr_type, tmp1574) ; ATSlocal (ats_ptr_type, tmp1575) ; ATSlocal (ats_ptr_type, tmp1576) ; ATSlocal (ats_ptr_type, tmp1577) ; ATSlocal (ats_ptr_type, tmp1578) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_list: do { /* branch: __ats_lab_214 */ __ats_lab_214_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_215_0 ; } __ats_lab_214_1: tmp1574 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_filename_origin (arg0) ; break ; /* branch: __ats_lab_215 */ __ats_lab_215_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_215_1: tmp1575 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp1576 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp1574 = loop_326 (tmp1575, tmp1575, tmp1576) ; break ; } while (0) ; tmp1578 = (ats_sum_ptr_type)0 ; tmp1577 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1577)->tag = 37 ; ats_selptrset_mac(anairiats_sum_12, tmp1577, atslab_0, tmp1578) ; ats_selptrset_mac(anairiats_sum_12, tmp1577, atslab_1, arg1) ; tmp1573 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1573, atslab_d0ecl_loc, tmp1574) ; ats_selptrset_mac(anairiats_rec_84, tmp1573, atslab_d0ecl_node, tmp1577) ; return (tmp1573) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_list] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 74050(line=3545, offs=1) -- 74338(line=3561, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_toplocal (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1579) ; ATSlocal (ats_ptr_type, tmp1580) ; ATSlocal (ats_ptr_type, tmp1581) ; ATSlocal (ats_ptr_type, tmp1582) ; ATSlocal (ats_ptr_type, tmp1583) ; ATSlocal (ats_ptr_type, tmp1584) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_toplocal: do { /* branch: __ats_lab_216 */ __ats_lab_216_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_217_0 ; } __ats_lab_216_1: tmp1580 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_filename_origin (arg0) ; break ; /* branch: __ats_lab_217 */ __ats_lab_217_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_217_1: tmp1581 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp1582 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp1580 = loop_326 (tmp1581, tmp1581, tmp1582) ; break ; } while (0) ; tmp1584 = (ats_sum_ptr_type)0 ; tmp1583 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1583)->tag = 37 ; ats_selptrset_mac(anairiats_sum_12, tmp1583, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp1583, atslab_1, tmp1584) ; tmp1579 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1579, atslab_d0ecl_loc, tmp1580) ; ats_selptrset_mac(anairiats_rec_84, tmp1579, atslab_d0ecl_node, tmp1583) ; return (tmp1579) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_toplocal] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 74415(line=3567, offs=5) -- 74672(line=3575, offs=8) */ ATSstaticdec() ats_ptr_type srpifkind_of_token_329 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1585) ; ATSlocal (ats_ptr_type, tmp1586) ; // ATSlocal_void (tmp1587) ; ATSlocal (ats_ptr_type, tmp1588) ; __ats_lab_srpifkind_of_token_329: tmp1586 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; do { /* branch: __ats_lab_218 */ __ats_lab_218_0: if (((ats_sum_ptr_type)tmp1586)->tag != 121) { goto __ats_lab_219_0 ; } __ats_lab_218_1: tmp1585 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDif_0) ; break ; /* branch: __ats_lab_219 */ __ats_lab_219_0: if (((ats_sum_ptr_type)tmp1586)->tag != 122) { goto __ats_lab_220_0 ; } __ats_lab_219_1: tmp1585 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifdef_1) ; break ; /* branch: __ats_lab_220 */ __ats_lab_220_0: if (((ats_sum_ptr_type)tmp1586)->tag != 123) { goto __ats_lab_221_0 ; } __ats_lab_220_1: tmp1585 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifndef_2) ; break ; /* branch: __ats_lab_221 */ __ats_lab_221_0: __ats_lab_221_1: tmp1588 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_syntax.dats: 74629(line=3574, offs=16) -- 74645(line=3574, offs=32)", ATSstrcst("\n")) ; /* tmp1587 = */ atspre_assert_errmsg (ats_false_bool, tmp1588) ; tmp1585 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDif_0) ; break ; } while (0) ; return (tmp1585) ; } /* end of [srpifkind_of_token_329] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 74726(line=3578, offs=5) -- 74991(line=3586, offs=8) */ ATSstaticdec() ats_ptr_type srpelifkind_of_token_330 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1589) ; ATSlocal (ats_ptr_type, tmp1590) ; // ATSlocal_void (tmp1591) ; ATSlocal (ats_ptr_type, tmp1592) ; __ats_lab_srpelifkind_of_token_330: tmp1590 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; do { /* branch: __ats_lab_222 */ __ats_lab_222_0: if (((ats_sum_ptr_type)tmp1590)->tag != 125) { goto __ats_lab_223_0 ; } __ats_lab_222_1: tmp1589 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDif_0) ; break ; /* branch: __ats_lab_223 */ __ats_lab_223_0: if (((ats_sum_ptr_type)tmp1590)->tag != 126) { goto __ats_lab_224_0 ; } __ats_lab_223_1: tmp1589 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifdef_1) ; break ; /* branch: __ats_lab_224 */ __ats_lab_224_0: if (((ats_sum_ptr_type)tmp1590)->tag != 127) { goto __ats_lab_225_0 ; } __ats_lab_224_1: tmp1589 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifndef_2) ; break ; /* branch: __ats_lab_225 */ __ats_lab_225_0: __ats_lab_225_1: tmp1592 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_syntax.dats: 74948(line=3585, offs=16) -- 74964(line=3585, offs=32)", ATSstrcst("\n")) ; /* tmp1591 = */ atspre_assert_errmsg (ats_false_bool, tmp1592) ; tmp1589 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDif_0) ; break ; } while (0) ; return (tmp1589) ; } /* end of [srpelifkind_of_token_330] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 75088(line=3592, offs=15) -- 75247(line=3597, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_guadecl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1593) ; ATSlocal (ats_ptr_type, tmp1594) ; ATSlocal (ats_ptr_type, tmp1595) ; ATSlocal (ats_ptr_type, tmp1596) ; ATSlocal (ats_ptr_type, tmp1597) ; ATSlocal (ats_ptr_type, tmp1598) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_guadecl: tmp1595 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_loc) ; tmp1596 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_88, arg1), atslab_guad0ecl_loc) ; tmp1594 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1595, tmp1596) ; tmp1597 = srpifkind_of_token_329 (arg0) ; tmp1598 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1598)->tag = 38 ; ats_selptrset_mac(anairiats_sum_12, tmp1598, atslab_0, tmp1597) ; ats_selptrset_mac(anairiats_sum_12, tmp1598, atslab_1, arg1) ; tmp1593 = ATS_MALLOC(sizeof(anairiats_rec_84)) ; ats_selptrset_mac(anairiats_rec_84, tmp1593, atslab_d0ecl_loc, tmp1594) ; ats_selptrset_mac(anairiats_rec_84, tmp1593, atslab_d0ecl_node, tmp1598) ; return (tmp1593) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_guadecl] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 75319(line=3602, offs=14) -- 75469(line=3609, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_one (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1599) ; ATSlocal (ats_ptr_type, tmp1600) ; ATSlocal (ats_ptr_type, tmp1601) ; ATSlocal (ats_ptr_type, tmp1602) ; ATSlocal (ats_ptr_type, tmp1603) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_one: tmp1601 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_e0xp_loc) ; tmp1602 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_token_loc) ; tmp1600 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1601, tmp1602) ; tmp1603 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp1603)->tag = 0 ; ats_selptrset_mac(anairiats_sum_12, tmp1603, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp1603, atslab_1, arg1) ; tmp1599 = ATS_MALLOC(sizeof(anairiats_rec_88)) ; ats_selptrset_mac(anairiats_rec_88, tmp1599, atslab_guad0ecl_loc, tmp1600) ; ats_selptrset_mac(anairiats_rec_88, tmp1599, atslab_guad0ecl_node, tmp1603) ; return (tmp1599) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_one] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 75519(line=3612, offs=14) -- 75687(line=3619, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_two (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1604) ; ATSlocal (ats_ptr_type, tmp1605) ; ATSlocal (ats_ptr_type, tmp1606) ; ATSlocal (ats_ptr_type, tmp1607) ; ATSlocal (ats_ptr_type, tmp1608) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_two: tmp1606 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_e0xp_loc) ; tmp1607 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp1605 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1606, tmp1607) ; tmp1608 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp1608)->tag = 1 ; ats_selptrset_mac(anairiats_sum_14, tmp1608, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_14, tmp1608, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp1608, atslab_2, arg2) ; tmp1604 = ATS_MALLOC(sizeof(anairiats_rec_88)) ; ats_selptrset_mac(anairiats_rec_88, tmp1604, atslab_guad0ecl_loc, tmp1605) ; ats_selptrset_mac(anairiats_rec_88, tmp1604, atslab_guad0ecl_node, tmp1608) ; return (tmp1604) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_two] */ /* // /tmp/ATS-Postiats/src/pats_syntax.dats: 75738(line=3622, offs=15) -- 75979(line=3632, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_cons (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1609) ; ATSlocal (ats_ptr_type, tmp1610) ; ATSlocal (ats_ptr_type, tmp1611) ; ATSlocal (ats_ptr_type, tmp1612) ; ATSlocal (ats_ptr_type, tmp1613) ; ATSlocal (ats_ptr_type, tmp1614) ; ATSlocal (ats_ptr_type, tmp1615) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_cons: tmp1611 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_e0xp_loc) ; tmp1612 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_88, arg3), atslab_guad0ecl_loc) ; tmp1610 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp1611, tmp1612) ; tmp1613 = srpelifkind_of_token_330 (arg2) ; tmp1615 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_88, arg3), atslab_guad0ecl_node) ; tmp1614 = ATS_MALLOC(sizeof(anairiats_sum_31)) ; ((ats_sum_ptr_type)tmp1614)->tag = 2 ; ats_selptrset_mac(anairiats_sum_31, tmp1614, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_31, tmp1614, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_31, tmp1614, atslab_2, tmp1613) ; ats_selptrset_mac(anairiats_sum_31, tmp1614, atslab_3, tmp1615) ; tmp1609 = ATS_MALLOC(sizeof(anairiats_rec_88)) ; ats_selptrset_mac(anairiats_rec_88, tmp1609, atslab_guad0ecl_loc, tmp1610) ; ats_selptrset_mac(anairiats_rec_88, tmp1609, atslab_guad0ecl_node, tmp1614) ; return (tmp1609) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_cons] */ /* 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_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_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_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp194, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp214, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0taq_none (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_s0taq_none, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_s0taq_none = statmp194 ; statmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none = statmp214 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_syntax_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_p0at_dats.c0000644000175000017500000024671513431250607023133 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* include some .h files */ #ifndef _ATS_HEADER_NONE #include "ats_config.h" #include "ats_basics.h" #include "ats_types.h" #include "ats_exception.h" #include "ats_memory.h" #endif /* _ATS_HEADER_NONE */ /* include some .cats files */ #ifndef _ATS_PRELUDE_NONE #include "prelude/CATS/basics.cats" #include "prelude/CATS/bool.cats" #include "prelude/CATS/char.cats" #include "prelude/CATS/byte.cats" #include "prelude/CATS/float.cats" #include "prelude/CATS/integer.cats" #include "prelude/CATS/integer_ptr.cats" #include "prelude/CATS/integer_fixed.cats" #include "prelude/CATS/sizetype.cats" #include "prelude/CATS/pointer.cats" #include "prelude/CATS/reference.cats" #include "prelude/CATS/string.cats" #include "prelude/CATS/lazy.cats" #include "prelude/CATS/lazy_vt.cats" #include "prelude/CATS/printf.cats" #include "prelude/CATS/list.cats" #include "prelude/CATS/option.cats" #include "prelude/CATS/array.cats" #include "prelude/CATS/matrix.cats" #endif /* _ATS_PRELUDE_NONE */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_6 ; /* 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_AT_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLON_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOTDOT_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGT_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGT_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGTGT_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGTGT_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLT_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLTGTDOT_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TILDE_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AS_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OP_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLST_109) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRREC_110) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTUP_111) ; 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_INT_150) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CHAR_151) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FLOAT_152) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STRING_154) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LPAREN_157) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACKET_159) ; 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_parsing_2esats__PE_pi0de_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmp0at_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labp0at_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_gm0at_77) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guap0at_78) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_c0lau_79) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_sc0lau_80) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT3_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12one_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12two_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sp0at_cstr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0de) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_opid) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_dqid) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0nt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_c0har) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_f0loat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_s0tring) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_list) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_tup) (ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_rec) (ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_lst) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_exist) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_svararg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_refas) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_free) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_unfold) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_ann) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_norm) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_omit) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_dyn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta1) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta2) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met_nil) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__gm0at_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guap0at_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__c0lau_make) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sc0lau_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AS) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHEN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test) (ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTDOT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLPAREN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN_deco) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLBRACE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE_deco) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun) (ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sqi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0vararg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labp0at) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ynq) (ats_ref_type, ats_int_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type loop_2 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_4 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p0at_list12_0 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type p0at_tup12_5 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p0at_rec12_6 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_p0atseq_BAR_p0atseq_7 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_labp0atseq_BAR_labp0atseq_8 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type loop_13 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_atmp0at_tok_11 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_atmp0at_14 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_argp0at_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type loop_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p_p0at0_16 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_gm0at_21 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_gm0atseq_22 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_guap0at_23 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_c0lau_24 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_sp0at_25 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_sc0lau_26 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_2 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; __ats_lab_loop_2: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp7 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp8 = ats_ptrget_mac(ats_ptr_type, tmp7) ; tmp9 = atspre_iadd (arg1, 1) ; arg0 = tmp8 ; arg1 = tmp9 ; goto __ats_lab_loop_2 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp6 = arg1 ; break ; } while (0) ; return (tmp6) ; } /* end of [loop_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp5) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp5 = loop_2 (arg0, 0) ; return (tmp5) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_4 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab_loop_4: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp14 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp14 ; arg1 = arg1 ; goto __ats_lab_loop_4 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp13) */ ; } /* end of [loop_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp15) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp12 ; */ tmp12 = arg0 ; /* tmp15 = */ loop_4 ((&tmp12), arg1) ; tmp11 = tmp12 ; return (tmp11) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 1890(line=67, offs=1) -- 2220(line=81, offs=8) */ ATSstaticdec() ats_ptr_type p0at_list12_0 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_p0at_list12_0: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; ATS_FREE(arg1) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_list (arg0, -1, ats_castfn_mac(ats_ptr_type, tmp1), arg2) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp4 = list_vt_length_01501_ats_ptr_type (tmp2) ; tmp10 = list_vt_append_01504_ats_ptr_type (tmp2, tmp3) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_list (arg0, tmp4, ats_castfn_mac(ats_ptr_type, tmp10), arg2) ; break ; } while (0) ; return (tmp0) ; } /* end of [p0at_list12_0] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 2296(line=87, offs=1) -- 2644(line=102, offs=8) */ ATSstaticdec() ats_ptr_type p0at_tup12_5 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_int_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab_p0at_tup12_5: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; ATS_FREE(arg2) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_tup (arg0, arg1, -1, ats_castfn_mac(ats_ptr_type, tmp17), arg3) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp19 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp20 = list_vt_length_01501_ats_ptr_type (tmp18) ; tmp21 = list_vt_append_01504_ats_ptr_type (tmp18, tmp19) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_tup (arg0, arg1, tmp20, ats_castfn_mac(ats_ptr_type, tmp21), arg3) ; break ; } while (0) ; return (tmp16) ; } /* end of [p0at_tup12_5] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 2719(line=108, offs=1) -- 3068(line=121, offs=8) */ ATSstaticdec() ats_ptr_type p0at_rec12_6 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab_p0at_rec12_6: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; ATS_FREE(arg2) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_rec (arg0, arg1, -1, ats_castfn_mac(ats_ptr_type, tmp23), arg3) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp25 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp26 = list_vt_length_01501_ats_ptr_type (tmp24) ; tmp27 = list_vt_append_01504_ats_ptr_type (tmp24, tmp25) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_rec (arg0, arg1, tmp26, ats_castfn_mac(ats_ptr_type, tmp27), arg3) ; break ; } while (0) ; return (tmp22) ; } /* end of [p0at_rec12_6] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 3118(line=127, offs=1) -- 3224(line=131, offs=32) */ ATSstaticdec() ats_ptr_type p_p0atseq_BAR_p0atseq_7 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_p_p0atseq_BAR_p0atseq_7: tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at) ; return (tmp28) ; } /* end of [p_p0atseq_BAR_p0atseq_7] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 3264(line=135, offs=1) -- 3422(line=141, offs=4) */ ATSstaticdec() ats_ptr_type p_labp0atseq_BAR_labp0atseq_8 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_bool_type, tmp30) ; __ats_lab_p_labp0atseq_BAR_labp0atseq_8: tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test (arg0) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labp0at) ; return (tmp29) ; } /* end of [p_labp0atseq_BAR_labp0atseq_8] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 3505(line=147, offs=3) -- 3967(line=166, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_int_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp32), atslab_token_loc) ; tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp32), atslab_token_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp34)->tag != 143) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_1, tmp34, atslab_0) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp33, tmp35) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp34)->tag != 144) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_1, tmp34, atslab_0) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp33, tmp37) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp39 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp39 ; tmp41 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_pi0de_48) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp33, tmp41) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 4073(line=174, offs=11) -- 4658(line=199, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labp0at (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; // ATSlocal_void (tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_bool_type, tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labp0at: tmp43 = ats_ptrget_mac(ats_int_type, arg2) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp45 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp44), atslab_token_node) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp45)->tag != 11) { goto __ats_lab_14_0 ; } __ats_lab_13_1: /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_omit (tmp44) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at) ; // tmp48 = ats_caselptrlab_mac(anairiats_sum_5, tmp47, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_5, tmp47, atslab_2) ; ATS_FREE(tmp47) ; tmp50 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp43) ; if (tmp50) { tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labp0at_norm (tmp48, tmp49) ; } else { tmp52 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp44), atslab_token_loc) ; tmp53 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labp0at_74) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp52, tmp53) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; } while (0) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labp0at] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_13 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab_loop_13: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp83 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: break ; } while (0) ; return /* (tmp82) */ ; } /* end of [loop_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp81) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp81 = */ loop_13 (arg0) ; return /* (tmp81) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 5191(line=228, offs=1) -- 9605(line=407, offs=4) */ ATSstaticdec() ats_ptr_type p_atmp0at_tok_11 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_int_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_bool_type, tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_bool_type, tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_bool_type, tmp70) ; // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_bool_type, tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_bool_type, tmp84) ; // ATSlocal_void (tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_bool_type, tmp88) ; ATSlocal (ats_int_type, tmp89) ; ATSlocal (ats_bool_type, tmp90) ; // ATSlocal_void (tmp91) ; ATSlocal (ats_bool_type, tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_bool_type, tmp96) ; ATSlocal (ats_int_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; // ATSlocal_void (tmp99) ; ATSlocal (ats_int_type, tmp100) ; // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_bool_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_bool_type, tmp106) ; // ATSlocal_void (tmp107) ; ATSlocal (ats_int_type, tmp108) ; // ATSlocal_void (tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_bool_type, tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_int_type, tmp115) ; // ATSlocal_void (tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_bool_type, tmp120) ; // ATSlocal_void (tmp121) ; ATSlocal (ats_int_type, tmp122) ; __ats_lab_p_atmp0at_tok_11: tmp55 = ats_ptrget_mac(ats_int_type, arg2) ; tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_token_loc) ; /* ats_ptr_type tmp57 ; */ tmp58 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_token_node) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de, (&tmp57)) ; if (!tmp59) { goto __ats_lab_16_0 ; } tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0de (ats_castfn_mac(ats_ptr_type, tmp57)) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp58)->tag != 64) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de (arg0, 0, arg2) ; tmp62 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp62) { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_opid (arg3, tmp61) ; } else { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp58)->tag != 150) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_i0nt (arg3) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp58)->tag != 151) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_c0har (arg3) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp58)->tag != 152) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_f0loat (arg3) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp58)->tag != 154) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_s0tring (arg3) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ynq, (&tmp57)) ; if (!tmp67) { goto __ats_lab_22_0 ; } tmp68 = ats_castfn_mac(ats_ptr_type, tmp57) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de (arg0, 0, arg2) ; tmp70 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp70) { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_dqid (tmp68, tmp69) ; } else { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp58)->tag != 157) { goto __ats_lab_23_0 ; } __ats_lab_22_1: /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp72 = p_p0atseq_BAR_p0atseq_7 (arg0, 0, arg2) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp74 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp74) { tmp54 = p0at_list12_0 (arg3, tmp72, tmp73) ; } else { /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp72) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp58)->tag != 159) { goto __ats_lab_26_0 ; } __ats_lab_23_1: /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET (arg0, 0, arg2) ; tmp79 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp79) { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_exist (arg3, ats_castfn_mac(ats_ptr_type, tmp77), tmp78) ; } else { /* tmp80 = */ list_vt_free_01499_ats_ptr_type (tmp77) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN_deco (tmp58) ; if (!tmp84) { goto __ats_lab_27_1 ; } /* tmp85 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp86 = p_p0atseq_BAR_p0atseq_7 (arg0, 0, arg2) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp88 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp88) { tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLPAREN (tmp58) ; if (tmp90) { tmp89 = 0 ; } else { tmp89 = 1 ; } /* end of [if] */ tmp54 = p0at_tup12_5 (tmp89, arg3, tmp86, tmp87) ; } else { /* tmp91 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp86) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE_deco (tmp58) ; if (!tmp92) { goto __ats_lab_28_0 ; } /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp94 = p_labp0atseq_BAR_labp0atseq_8 (arg0, 0, arg2) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp96 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp96) { tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLBRACE (tmp58) ; if (tmp98) { tmp97 = 0 ; } else { tmp97 = 1 ; } /* end of [if] */ tmp54 = p0at_rec12_6 (tmp97, arg3, tmp94, tmp95) ; } else { /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp94) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp58)->tag != 109) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_6, tmp58, atslab_0) ; /* tmp101 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp104 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp104) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at) ; } else { tmp103 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp55) ; tmp106 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp106) { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_lst (tmp100, arg3, ats_castfn_mac(ats_ptr_type, tmp103), tmp105) ; } else { /* tmp107 = */ list_vt_free_01499_ats_ptr_type (tmp103) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp58)->tag != 111) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_6, tmp58, atslab_0) ; /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp111 = p_p0atseq_BAR_p0atseq_7 (arg0, 0, arg2) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp113 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp113) { tmp54 = p0at_tup12_5 (tmp108, arg3, tmp111, tmp112) ; } else { /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp111) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp58)->tag != 110) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_6, tmp58, atslab_0) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE (arg0, 0, arg2) ; tmp118 = p_labp0atseq_BAR_labp0atseq_8 (arg0, 0, arg2) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp120 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp55) ; if (tmp120) { tmp54 = p0at_rec12_6 (tmp115, arg3, tmp118, tmp119) ; } else { /* tmp121 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp118) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp122 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp122 ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp54) ; } /* end of [p_atmp0at_tok_11] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 9637(line=410, offs=1) -- 9751(line=413, offs=57) */ ATSstaticdec() ats_ptr_type p_atmp0at_14 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab_p_atmp0at_14: tmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmp0at_73) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_atmp0at_tok_11, tmp124) ; return (tmp123) ; } /* end of [p_atmp0at_14] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 9851(line=422, offs=1) -- 10520(line=451, offs=4) */ ATSstaticdec() ats_ptr_type p_argp0at_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; ATSlocal (ats_uint_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; // ATSlocal_void (tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_bool_type, tmp135) ; ATSlocal (ats_int_type, tmp136) ; __ats_lab_p_argp0at_15: tmp126 = ats_ptrget_mac(ats_int_type, arg2) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp129 ; */ tmp130 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp128), atslab_token_node) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_atmp0at_14, (&tmp129)) ; if (!tmp131) { goto __ats_lab_33_0 ; } tmp125 = ats_castfn_mac(ats_ptr_type, tmp129) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp130)->tag != 161) { goto __ats_lab_34_0 ; } __ats_lab_33_1: /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0vararg (arg0, 0, arg2) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE, tmp126) ; tmp135 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp126) ; if (tmp135) { tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_svararg (tmp128, tmp133, tmp134) ; } else { tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp127) ; } /* end of [if] */ break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: tmp136 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp136 ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp125) ; } /* end of [p_argp0at_15] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 10867(line=471, offs=9) -- 11073(line=478, offs=30) */ ATSstaticdec() ats_ptr_type loop_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; __ats_lab_loop_17: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_app (arg0, tmp144) ; arg0 = tmp146 ; arg1 = tmp145 ; goto __ats_lab_loop_17 ; // tail call break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp143 = arg0 ; break ; } while (0) ; return (tmp143) ; } /* end of [loop_17] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 10569(line=456, offs=1) -- 11190(line=486, offs=4) */ ATSstaticdec() ats_ptr_type p_p0at0_16 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_int_type, tmp147) ; __ats_lab_p_p0at0_16: tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp139 ; */ do { /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_atmp0at_14, (&tmp139)) ; if (!tmp140) { goto __ats_lab_38_1 ; } tmp141 = ats_castfn_mac(ats_ptr_type, tmp139) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &p_argp0at_15) ; tmp137 = loop_17 (tmp141, tmp142) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp147 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp147 ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp137) ; } /* end of [p_p0at0_16] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 11360(line=499, offs=8) -- 12799(line=560, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_uint_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_bool_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_bool_type, tmp160) ; // ATSlocal_void (tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_bool_type, tmp163) ; // ATSlocal_void (tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_bool_type, tmp166) ; // ATSlocal_void (tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_bool_type, tmp169) ; ATSlocal (ats_int_type, tmp170) ; // ATSlocal_void (tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at: tmp149 = ats_ptrget_mac(ats_int_type, arg2) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp152 ; */ tmp153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp151), atslab_token_node) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_p0at0_16, (&tmp152)) ; if (!tmp154) { goto __ats_lab_43_0 ; } tmp155 = ats_castfn_mac(ats_ptr_type, tmp152) ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp157 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp156), atslab_token_node) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp157)->tag != 34) { goto __ats_lab_41_0 ; } __ats_lab_40_1: /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at (arg0, 0, arg2) ; tmp160 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp149) ; if (tmp160) { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_refas (tmp155, tmp159) ; } else { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp150) ; } /* end of [if] */ break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp157)->tag != 6) { goto __ats_lab_42_0 ; } __ats_lab_41_1: /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp (arg0, 0, arg2) ; tmp163 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp149) ; if (tmp163) { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_ann (tmp155, tmp162) ; } else { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp150) ; } /* end of [if] */ break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp148 = tmp155 ; break ; } while (0) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp153)->tag != 30) { goto __ats_lab_44_0 ; } __ats_lab_43_1: /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at (arg0, 0, arg2) ; tmp166 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp149) ; if (tmp166) { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_free (tmp151, tmp165) ; } else { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp150) ; } /* end of [if] */ break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp153)->tag != 1) { goto __ats_lab_45_0 ; } __ats_lab_44_1: /* tmp167 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at (arg0, 0, arg2) ; tmp169 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp149) ; if (tmp169) { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__p0at_unfold (tmp151, tmp168) ; } else { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp150) ; } /* end of [if] */ break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: tmp170 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp170 ; tmp172 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp151), atslab_token_loc) ; tmp173 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_72) ; /* tmp171 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp172, tmp173) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp148) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 12959(line=572, offs=3) -- 14046(line=616, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg1 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_int_type, tmp175) ; ATSlocal (ats_uint_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_bool_type, tmp180) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_bool_type, tmp184) ; // ATSlocal_void (tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_bool_type, tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_int_type, tmp191) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg1: tmp175 = ats_ptrget_mac(ats_int_type, arg2) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp178 ; */ tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp177), atslab_token_node) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_atmp0at_14, (&tmp178)) ; if (!tmp180) { goto __ats_lab_47_0 ; } tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_dyn (ats_castfn_mac(ats_ptr_type, tmp178)) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp179)->tag != 161) { goto __ats_lab_48_0 ; } __ats_lab_47_1: /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq (arg0, 0, arg2) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp184 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ; if (tmp184) { tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta1 (tmp177, tmp182, tmp183) ; } else { tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp176) ; } /* end of [if] */ break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp179)->tag != 24) { goto __ats_lab_49_0 ; } __ats_lab_48_1: /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTDOT (arg0, 0, arg2) ; tmp188 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp175) ; if (tmp188) { tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met (tmp177, ats_castfn_mac(ats_ptr_type, tmp186), tmp187) ; } else { /* tmp189 = */ list_vt_free_01499_ats_ptr_type (tmp186) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp176) ; } /* end of [if] */ break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp179)->tag != 26) { goto __ats_lab_50_0 ; } __ats_lab_49_1: /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_met_nil (tmp177) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: __ats_lab_50_1: tmp191 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp191 ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp174) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg1] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 14140(line=623, offs=3) -- 14775(line=650, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg2 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_int_type, tmp193) ; ATSlocal (ats_uint_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_bool_type, tmp198) ; // ATSlocal_void (tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_bool_type, tmp202) ; ATSlocal (ats_int_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg2: tmp193 = ats_ptrget_mac(ats_int_type, arg2) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp196 ; */ tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp195), atslab_token_node) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_atmp0at_14, (&tmp196)) ; if (!tmp198) { goto __ats_lab_52_0 ; } tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_dyn (ats_castfn_mac(ats_ptr_type, tmp196)) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp197)->tag != 161) { goto __ats_lab_53_0 ; } __ats_lab_52_1: /* tmp199 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0vararg (arg0, 0, arg2) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE, tmp193) ; tmp202 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ; if (tmp202) { tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0arg_sta2 (tmp195, tmp200, tmp201) ; } else { tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp194) ; } /* end of [if] */ break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: __ats_lab_53_1: tmp203 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp203 ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp192) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg2] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 14952(line=662, offs=1) -- 15426(line=686, offs=4) */ ATSstaticdec() ats_ptr_type p_gm0at_21 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_int_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_bool_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; // ATSlocal_void (tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; __ats_lab_p_gm0at_21: tmp205 = ats_ptrget_mac(ats_int_type, arg2) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp (arg0, arg1, arg2) ; tmp207 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp205) ; if (tmp207) { tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AS, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__gm0at_make (tmp206, ats_castfn_mac(ats_ptr_type, tmp208)) ; } else { tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp211 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp209), atslab_token_loc) ; tmp212 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_gm0at_77) ; /* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp211, tmp212) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp204) ; } /* end of [p_gm0at_21] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 15452(line=689, offs=1) -- 15561(line=693, offs=47) */ ATSstaticdec() ats_ptr_type p_gm0atseq_22 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; __ats_lab_p_gm0atseq_22: tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, arg1, arg2, &p_gm0at_21) ; tmp213 = ats_castfn_mac(ats_ptr_type, tmp214) ; return (tmp213) ; } /* end of [p_gm0atseq_22] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 15590(line=697, offs=1) -- 16080(line=721, offs=4) */ ATSstaticdec() ats_ptr_type p_guap0at_23 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_int_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_bool_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; // ATSlocal_void (tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; __ats_lab_p_guap0at_23: tmp216 = ats_ptrget_mac(ats_int_type, arg2) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at (arg0, arg1, arg2) ; tmp218 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp216) ; if (tmp218) { tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHEN, &p_gm0atseq_22) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guap0at_make (tmp217, ats_castfn_mac(ats_ptr_type, tmp219)) ; } else { tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp222 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp220), atslab_token_loc) ; tmp223 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guap0at_78) ; /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp222, tmp223) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp215) ; } /* end of [p_guap0at_23] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 16251(line=732, offs=5) -- 17152(line=769, offs=4) */ ATSstaticdec() ats_ptr_type p_c0lau_24 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_int_type, tmp225) ; ATSlocal (ats_uint_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_int_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; // ATSlocal_void (tmp230) ; ATSlocal (ats_bool_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_int_type, tmp235) ; ATSlocal (ats_bool_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_bool_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab_p_c0lau_24: tmp225 = ats_ptrget_mac(ats_int_type, arg2) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp227 = p_guap0at_23 (arg0, arg1, arg2) ; /* ats_int_type tmp228 ; */ tmp228 = 0 ; /* ats_int_type tmp229 ; */ tmp229 = 0 ; tmp231 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp225) ; if (tmp231) { tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp234 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp232), atslab_token_node) ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp234)->tag != 14) { goto __ats_lab_55_0 ; } __ats_lab_54_1: break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp234)->tag != 18) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp228 = 1 ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp234)->tag != 17) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp229 = 1 ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp234)->tag != 19) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp228 = 1 ; tmp229 = 1 ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: tmp235 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp235 ; break ; } while (0) ; tmp236 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp225) ; if (tmp236) { /* tmp230 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp225) ; tmp238 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp225) ; if (tmp238) { tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__c0lau_make (tmp227, tmp228, tmp229, tmp237) ; } else { tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp241 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp239), atslab_token_loc) ; tmp242 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_c0lau_79) ; /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (0, tmp241, tmp242) ; tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp226) ; } /* end of [if] */ return (tmp224) ; } /* end of [p_c0lau_24] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 17250(line=778, offs=1) -- 17966(line=811, offs=4) */ ATSstaticdec() ats_ptr_type p_sp0at_25 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_int_type, tmp244) ; ATSlocal (ats_uint_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_bool_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_bool_type, tmp251) ; // ATSlocal_void (tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; // ATSlocal_void (tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab_p_sp0at_25: tmp244 = ats_ptrget_mac(ats_int_type, arg2) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sqi0de (arg0, arg1, arg2) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN, tmp244) ; tmp249 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp244) ; if (tmp249) { tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) ; } else { tmp248 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp244) ; tmp251 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp244) ; if (tmp251) { tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sp0at_cstr (tmp246, ats_castfn_mac(ats_ptr_type, tmp248), tmp250) ; } else { /* tmp252 = */ list_vt_free_01499_ats_ptr_type (tmp248) ; tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp255 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp253), atslab_token_loc) ; tmp256 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_sc0lau_80) ; /* tmp254 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp255, tmp256) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp245) ; } /* end of [if] */ return (tmp243) ; } /* end of [p_sp0at_25] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 17992(line=814, offs=1) -- 18279(line=826, offs=4) */ ATSstaticdec() ats_ptr_type p_sc0lau_26 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_int_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_bool_type, tmp262) ; __ats_lab_p_sc0lau_26: tmp258 = ats_ptrget_mac(ats_int_type, arg2) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &p_sp0at_25, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; // tmp260 = ats_caselptrlab_mac(anairiats_sum_5, tmp259, atslab_0) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_5, tmp259, atslab_2) ; ATS_FREE(tmp259) ; tmp262 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp258) ; if (tmp262) { tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sc0lau_make (tmp260, tmp261) ; } else { tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp257) ; } /* end of [p_sc0lau_26] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 18346(line=832, offs=3) -- 18439(line=834, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_c0lauseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_bool_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_c0lauseq: tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test (arg0) ; tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR (arg0, arg1, &p_c0lau_24) ; tmp263 = ats_castfn_mac(ats_ptr_type, tmp265) ; return (tmp263) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_c0lauseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_p0at.dats: 18488(line=838, offs=3) -- 18582(line=840, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sc0lauseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_bool_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sc0lauseq: tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test (arg0) ; tmp268 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR (arg0, arg1, &p_sc0lau_26) ; tmp266 = ats_castfn_mac(ats_ptr_type, tmp268) ; return (tmp266) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sc0lauseq] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_p0at_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_template_dats.c0000644000175000017500000034724313431250607023536 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_t2mpmarg_loc ; ats_ptr_type atslab_t2mpmarg_arg ; } anairiats_rec_8 ; typedef struct { ats_ptr_type atslab_hiimpdec_loc ; ats_int_type atslab_hiimpdec_knd ; ats_ptr_type atslab_hiimpdec_cst ; ats_ptr_type atslab_hiimpdec_imparg ; ats_ptr_type atslab_hiimpdec_tmparg ; ats_ptr_type atslab_hiimpdec_def ; ats_ptr_type atslab_hiimpdec_funlab ; ats_ptr_type atslab_hiimpdec_instrlst ; } anairiats_rec_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_hifundec_loc ; ats_ptr_type atslab_hifundec_var ; ats_ptr_type atslab_hifundec_imparg ; ats_ptr_type atslab_hifundec_def ; ats_ptr_type atslab_hifundec_hidecl ; ats_ptr_type atslab_hifundec_funlab ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_13 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDfundecs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBcons_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBnil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIFUNDEC2_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIIMPDEC2_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__IMPENVnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__IMPENVcons_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, 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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hnf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq_env) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_save) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_restore) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_get_hideclopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_incget_ncopy) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_suffix) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub2stasub) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcstmat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvarmat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make2_funlab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_get_funlabopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_funlabopt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_funent_set_tmpsub) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmprecdepth) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmprecdepth) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpsub) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp_if) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_tmpcst_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdeclst_tmpcst_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2tmpvarmat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpcstmat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpcst_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_tsubst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__print_impenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__fprint_impenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_find) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_update) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__s2hnf_is_err) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv2tmpsub) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_none) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_some) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpcstmat_some) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpvarmat_some) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__IMPENVnil_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__IMPENVcons_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_bool_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_bool_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_11 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_15 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxenv_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type auxfvar_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_25 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type auxmat_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type auxmatlst_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type auxmat_env_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_bool_type auxmatlst_env_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_bool_type auxlabmatlst_env_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_bool_type auxmatlstlst_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxbndlstlst_27 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxbndlstlst2_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_33 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 2553(line=121, offs=3) -- 2593(line=122, offs=33) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__print_impenv (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__print_impenv: /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__fprint_impenv (stdout, arg0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__print_impenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 2647(line=129, offs=1) -- 3215(line=161, offs=4) */ ATSstaticdec() ats_void_type loop_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_bool_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; __ats_lab_loop_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp5 = &ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_2) ; tmp7 = atspre_gt_int_int (arg2, 0) ; if (tmp7) { /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; } else { /* empty */ } /* end of [if] */ /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp3) ; /* tmp9 = */ atspre_fprint_string (arg0, ATSstrcst(" -> ")) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hnf (arg0, tmp4) ; tmp11 = ats_ptrget_mac(ats_ptr_type, tmp5) ; tmp12 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp11 ; arg2 = tmp12 ; goto __ats_lab_loop_2 ; // tail call break ; } while (0) ; return /* (tmp2) */ ; } /* end of [loop_2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 2623(line=126, offs=3) -- 3263(line=165, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__fprint_impenv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__fprint_impenv: /* tmp1 = */ loop_2 (arg0, arg1, 0) ; return /* (tmp1) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__fprint_impenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 3338(line=171, offs=3) -- 3918(line=207, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_find (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_find: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg1) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp14) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp15) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp17 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp18 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_2) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (arg1, tmp16) ; if (tmp19) { tmp13 = tmp17 ; } else { tmp20 = ats_ptrget_mac(ats_ptr_type, tmp18) ; arg0 = tmp20 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_find ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_find] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 4182(line=228, offs=1) -- 4649(line=258, offs=4) */ ATSstaticdec() ats_bool_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab_aux_5: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp22 = ats_false_bool ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp24 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp25 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_2) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (env0, tmp23) ; if (tmp26) { ats_ptrget_mac(ats_ptr_type, tmp24) = env1 ; tmp22 = ats_true_bool ; } else { tmp27 = ats_ptrget_mac(ats_ptr_type, tmp25) ; arg0 = tmp27 ; goto __ats_lab_aux_5 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp22) ; } /* end of [aux_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } aux_5_closure_type ; ats_bool_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_5 (((aux_5_closure_type*)cloptr)->closure_env_0, ((aux_5_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_5_closure_init (aux_5_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1) { aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ; aux_5_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 3991(line=213, offs=3) -- 4950(line=281, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_update (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp21) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_bool_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_update: tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp29 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp28), atslab_s2exp_srt) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg1) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp29, tmp30) ; if (tmp31) { tmp21 = aux_5 (arg1, arg2, arg0) ; } else { tmp21 = ats_false_bool ; } /* end of [if] */ return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_update] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 5074(line=292, offs=3) -- 5217(line=304, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__s2hnf_is_err (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__s2hnf_is_err: tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp33), atslab_s2exp_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp34)->tag != 32) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp32 = ats_true_bool ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp32 = ats_false_bool ; break ; } while (0) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__s2hnf_is_err] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 5432(line=322, offs=3) -- 5448(line=322, offs=19) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_nil: tmp35 = (ats_sum_ptr_type)0 ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_nil] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 5484(line=326, offs=3) -- 5851(line=345, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_svarlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_svarlst: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp36 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp38 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp37) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp39) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp40) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_svarlst (tmp38) ; tmp36 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp36, atslab_0, tmp37) ; ats_selptrset_mac(anairiats_sum_1, tmp36, atslab_1, tmp41) ; ats_selptrset_mac(anairiats_sum_1, tmp36, atslab_2, tmp42) ; break ; } while (0) ; return (tmp36) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_svarlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 5979(line=355, offs=12) -- 6128(line=368, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_2) ; ATS_FREE(arg0) ; arg0 = tmp44 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free ; // tail call break ; } while (0) ; return /* (tmp43) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 6276(line=381, offs=5) -- 6535(line=396, offs=4) */ ATSstaticdec() ats_ptr_type aux_11 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab_aux_11: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp46 = arg1 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp48 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_2) ; ATS_FREE(arg0) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp48) ; tmp51 = aux_11 (tmp49, arg1) ; tmp46 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp46, atslab_0, tmp47) ; ats_selptrset_mac(anairiats_sum_1, tmp46, atslab_1, tmp50) ; ats_selptrset_mac(anairiats_sum_1, tmp46, atslab_2, tmp51) ; break ; } while (0) ; return (tmp46) ; } /* end of [aux_11] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 6257(line=379, offs=3) -- 6592(line=400, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv2tmpsub (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv2tmpsub: tmp52 = (ats_sum_ptr_type)0 ; tmp45 = aux_11 (arg0, tmp52) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv2tmpsub] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_15 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab_loop_15: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp60 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp60, atslab_0, tmp58) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp60 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp61 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp59 ; arg1 = tmp61 ; goto __ats_lab_loop_15 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp62 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp62 ; break ; } while (0) ; return /* (tmp57) */ ; } /* end of [loop_15] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp63) ; // ATSlocal_void (tmp64) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp63 ; */ /* tmp64 = */ loop_15 (arg0, (&tmp63)) ; tmp56 = tmp63 ; return (tmp56) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4725(line=167, offs=18) -- 4776(line=168, offs=44) */ ATSstaticdec() ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; __ats_lab_list_vt_copy_01498_ats_ptr_type: tmp55 = list_copy_01322_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp55) ; } /* end of [list_vt_copy_01498_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61997(line=2223, offs=7) -- 62162(line=2225, offs=74) */ ATSstaticdec() ats_ptr_type loop_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab_loop_17: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp69 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp69, atslab_0, tmp67) ; ats_selptrset_mac(anairiats_sum_3, tmp69, atslab_1, arg1) ; arg0 = tmp68 ; arg1 = tmp69 ; goto __ats_lab_loop_17 ; // tail call break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp66 = arg1 ; break ; } while (0) ; return (tmp66) ; } /* end of [loop_17] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61976(line=2222, offs=25) -- 62297(line=2231, offs=4) */ ATSstaticdec() ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; __ats_lab_list_reverse_append2_vt_01435_ats_ptr_type: tmp65 = loop_17 (arg0, arg1) ; return (tmp65) ; } /* end of [list_reverse_append2_vt_01435_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 6675(line=409, offs=1) -- 6835(line=419, offs=4) */ ATSstaticdec() ats_ptr_type auxenv_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab_auxenv_12: tmp54 = list_vt_copy_01498_ats_ptr_type (arg0) ; tmp53 = list_reverse_append2_vt_01435_ats_ptr_type (arg1, tmp54) ; return (tmp53) ; } /* end of [auxenv_12] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 6881(line=424, offs=1) -- 7342(line=452, offs=2) */ ATSstaticdec() ats_bool_type auxfvar_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_bool_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab_auxfvar_18: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp70 = ats_true_bool ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp72 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp71, arg1) ; if (tmp73) { tmp70 = ats_false_bool ; } else { tmp74 = ats_ptrget_mac(ats_ptr_type, tmp72) ; arg0 = tmp74 ; arg1 = arg1 ; goto __ats_lab_auxfvar_18 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp70) ; } /* end of [auxfvar_18] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_25 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab_loop_25: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp82 ; goto __ats_lab_loop_25 ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: break ; } while (0) ; return /* (tmp81) */ ; } /* end of [loop_25] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp80) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp80 = */ loop_25 (arg0) ; return /* (tmp80) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 7392(line=457, offs=1) -- 7719(line=479, offs=2) */ ATSstaticdec() ats_bool_type auxmat_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_bool_type, tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp83) ; __ats_lab_auxmat_19: tmp76 = (ats_sum_ptr_type)0 ; tmp77 = (ats_sum_ptr_type)0 ; tmp78 = auxmat_env_21 (arg0, tmp76, tmp77, arg1, arg2) ; /* tmp79 = */ list_vt_free_01499_ats_ptr_type (tmp76) ; /* tmp83 = */ list_vt_free_01499_ats_ptr_type (tmp77) ; tmp75 = tmp78 ; return (tmp75) ; } /* end of [auxmat_19] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 7747(line=482, offs=1) -- 8086(line=504, offs=2) */ ATSstaticdec() ats_bool_type auxmatlst_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_bool_type, tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; __ats_lab_auxmatlst_20: tmp85 = (ats_sum_ptr_type)0 ; tmp86 = (ats_sum_ptr_type)0 ; tmp87 = auxmatlst_env_22 (arg0, tmp85, tmp86, arg1, arg2) ; /* tmp88 = */ list_vt_free_01499_ats_ptr_type (tmp85) ; /* tmp89 = */ list_vt_free_01499_ats_ptr_type (tmp86) ; tmp84 = tmp87 ; return (tmp84) ; } /* end of [auxmatlst_20] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 8138(line=509, offs=1) -- 12375(line=721, offs=4) */ ATSstaticdec() ats_bool_type auxmat_env_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_bool_type, tmp100) ; ATSlocal (ats_bool_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_bool_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_bool_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_bool_type, tmp123) ; ATSlocal (ats_bool_type, tmp124) ; // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_bool_type, tmp127) ; __ats_lab_auxmat_env_21: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg3) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg4) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp91) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp92) ; tmp95 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp93), atslab_s2exp_node) ; tmp96 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp94), atslab_s2exp_node) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp95)->tag != 7) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_4, tmp95, atslab_0) ; tmp98 = auxfvar_18 (arg1, tmp97) ; if (tmp98) { tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_find (arg0, tmp97) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__s2hnf_is_err (tmp99) ; if (tmp100) { tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_update (arg0, tmp97, tmp92) ; if (tmp101) { tmp90 = ats_true_bool ; } else { tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq2 (tmp91, tmp92) ; } /* end of [if] */ } else { tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq2 (tmp99, tmp92) ; } /* end of [if] */ } else { tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq_env (arg1, arg2, tmp91, tmp92) ; } /* end of [if] */ break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp95)->tag != 4) { goto __ats_lab_26_0 ; } __ats_lab_23_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_4, tmp95, atslab_0) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp96)->tag != 4) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_4, tmp96, atslab_0) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (tmp102, tmp103) ; if (tmp104) { tmp90 = ats_true_bool ; } else { tmp90 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp90 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp95)->tag != 17) { goto __ats_lab_29_0 ; } __ats_lab_26_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_5, tmp95, atslab_0) ; tmp106 = ats_caselptrlab_mac(anairiats_sum_5, tmp95, atslab_1) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp96)->tag != 17) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_5, tmp96, atslab_0) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_5, tmp96, atslab_1) ; tmp109 = auxmat_env_21 (arg0, arg1, arg2, tmp105, tmp107) ; if (tmp109) { tmp90 = auxmatlst_env_22 (arg0, arg1, arg2, tmp106, tmp108) ; } else { tmp90 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp90 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp95)->tag != 25) { goto __ats_lab_32_0 ; } __ats_lab_29_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_6, tmp95, atslab_0) ; tmp111 = ats_caselptrlab_mac(anairiats_sum_6, tmp95, atslab_2) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp96)->tag != 25) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_6, tmp96, atslab_0) ; tmp113 = ats_caselptrlab_mac(anairiats_sum_6, tmp96, atslab_2) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (tmp110, tmp112) ; if (tmp114) { tmp90 = auxlabmatlst_env_23 (arg0, arg1, arg2, tmp111, tmp113) ; } else { tmp90 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp90 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp95)->tag != 27) { goto __ats_lab_35_0 ; } __ats_lab_32_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_7, tmp95, atslab_0) ; tmp116 = ats_caselptrlab_mac(anairiats_sum_7, tmp95, atslab_1) ; tmp117 = ats_caselptrlab_mac(anairiats_sum_7, tmp95, atslab_2) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp96)->tag != 27) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_7, tmp96, atslab_0) ; tmp119 = ats_caselptrlab_mac(anairiats_sum_7, tmp96, atslab_1) ; tmp120 = ats_caselptrlab_mac(anairiats_sum_7, tmp96, atslab_2) ; tmp121 = auxenv_12 (arg1, tmp115) ; tmp122 = auxenv_12 (arg2, tmp118) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (tmp121, tmp122, tmp116, tmp119) ; if (tmp123) { tmp124 = auxmat_env_21 (arg0, tmp121, tmp122, tmp117, tmp120) ; } else { tmp124 = ats_false_bool ; } /* end of [if] */ /* tmp125 = */ list_vt_free_01499_ats_ptr_type (tmp121) ; /* tmp126 = */ list_vt_free_01499_ats_ptr_type (tmp122) ; tmp90 = tmp124 ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: tmp90 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq_env (arg1, arg2, tmp91, tmp92) ; if (!tmp127) { goto __ats_lab_36_1 ; } tmp90 = ats_true_bool ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp90 = ats_false_bool ; break ; } while (0) ; return (tmp90) ; } /* end of [auxmat_env_21] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 12404(line=724, offs=1) -- 13245(line=771, offs=4) */ ATSstaticdec() ats_bool_type auxmatlst_env_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_bool_type, tmp133) ; __ats_lab_auxmatlst_env_22: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp128 = ats_true_bool ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_1) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_0) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_1) ; tmp133 = auxmat_env_21 (arg0, arg1, arg2, tmp129, tmp131) ; if (tmp133) { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp130 ; arg4 = tmp132 ; goto __ats_lab_auxmatlst_env_22 ; // tail call } else { tmp128 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp128 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; return (tmp128) ; } /* end of [auxmatlst_env_22] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 13273(line=774, offs=1) -- 14403(line=820, offs=4) */ ATSstaticdec() ats_bool_type auxlabmatlst_env_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_bool_type, tmp143) ; ATSlocal (ats_bool_type, tmp144) ; __ats_lab_auxlabmatlst_env_23: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_41_1: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp135 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; tmp136 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_1) ; // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp137 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_0) ; tmp138 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_1) ; // tmp139 = ats_caselptrlab_mac(anairiats_sum_1, tmp135, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_1, tmp135, atslab_2) ; // tmp141 = ats_caselptrlab_mac(anairiats_sum_1, tmp137, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_1, tmp137, atslab_2) ; tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (tmp139, tmp141) ; if (tmp144) { tmp143 = auxmat_env_21 (arg0, arg1, arg2, tmp140, tmp142) ; } else { tmp143 = ats_false_bool ; } /* end of [if] */ if (tmp143) { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp136 ; arg4 = tmp138 ; goto __ats_lab_auxlabmatlst_env_23 ; // tail call } else { tmp134 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp134 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp134 = ats_false_bool ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp134 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; return (tmp134) ; } /* end of [auxlabmatlst_env_23] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 14459(line=825, offs=1) -- 14967(line=848, offs=4) */ ATSstaticdec() ats_bool_type auxmatlstlst_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab_auxmatlstlst_26: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_47_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp147 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp148), atslab_t2mpmarg_arg) ; tmp150 = auxmatlst_20 (arg0, tmp146, tmp151) ; if (tmp150) { arg0 = arg0 ; arg1 = tmp147 ; arg2 = tmp149 ; goto __ats_lab_auxmatlstlst_26 ; // tail call } else { tmp145 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp145 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp145 = ats_true_bool ; break ; } while (0) ; return (tmp145) ; } /* end of [auxmatlstlst_26] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 15019(line=853, offs=1) -- 15225(line=864, offs=4) */ ATSstaticdec() ats_ptr_type auxbndlstlst_27 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab_auxbndlstlst_27: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp154 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp153), atslab_t2mpmarg_arg) ; tmp152 = auxbndlstlst2_28 (arg0, tmp155, tmp154) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp152 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp152) ; } /* end of [auxbndlstlst_27] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 15256(line=867, offs=1) -- 15631(line=884, offs=4) */ ATSstaticdec() ats_ptr_type auxbndlstlst2_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; __ats_lab_auxbndlstlst2_28: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp157 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp158 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp157) ; if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 15438(line=877, offs=9) -- 15466(line=877, offs=37)") ; } tmp160 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp161 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp162 = auxbndlstlst2_28 (tmp161, tmp158, arg2) ; tmp156 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp156, atslab_0, tmp160) ; ats_selptrset_mac(anairiats_sum_1, tmp156, atslab_1, tmp159) ; ats_selptrset_mac(anairiats_sum_1, tmp156, atslab_2, tmp162) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp156 = auxbndlstlst_27 (arg0, arg2) ; break ; } while (0) ; return (tmp156) ; } /* end of [auxbndlstlst2_28] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; __ats_lab_loop_32: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp172 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp170, arg3) ; tmp173 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp173, atslab_0, tmp172) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp173 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp174 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp171 ; arg1 = arg1 ; arg2 = tmp174 ; arg3 = arg3 ; goto __ats_lab_loop_32 ; // tail call break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp175 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp175 ; break ; } while (0) ; return /* (tmp169) */ ; } /* end of [loop_32] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp176) ; // ATSlocal_void (tmp177) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp176 ; */ /* tmp177 = */ loop_32 (arg0, arg1, (&tmp176), arg2) ; tmp168 = tmp176 ; return (tmp168) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp167 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp167) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 15872(line=896, offs=52) -- 15897(line=896, offs=77) */ ATSstaticdec() ats_ptr_type __ats_fun_33 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp178) ; __ats_lab___ats_fun_33: tmp178 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_t2mpmarg_arg) ; return (tmp178) ; } /* end of [__ats_fun_33] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 15736(line=892, offs=3) -- 16046(line=903, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_tmparg_match (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_bool_type, tmp179) ; // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_tmparg_match: tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_nil () ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg (arg0) ; tmp166 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp165, &__ats_fun_33) ; tmp179 = auxmatlstlst_26 (tmp164, ats_castfn_mac(ats_ptr_type, tmp166), arg1) ; /* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free (tmp164) ; /* tmp181 = */ list_vt_free_01499_ats_ptr_type (tmp166) ; tmp163 = tmp179 ; return (tmp163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_tmparg_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 16135(line=909, offs=3) -- 16753(line=948, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_tmpcst_match (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_bool_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_bool_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; // ATSlocal_void (tmp190) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_tmpcst_match: tmp183 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_hiimpdec_cst) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst (arg1, tmp183) ; if (tmp184) { tmp186 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_hiimpdec_imparg) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_svarlst (tmp186) ; tmp188 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_hiimpdec_tmparg) ; tmp187 = auxmatlstlst_26 (tmp185, tmp188, arg2) ; if (tmp187) { tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv2tmpsub (tmp185) ; tmp182 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp182)->tag = 1 ; ats_selptrset_mac(anairiats_sum_10, tmp182, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp182, atslab_1, tmp189) ; ats_selptrset_mac(anairiats_sum_10, tmp182, atslab_2, arg3) ; } else { /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free (tmp185) ; tmp182 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; } /* end of [if] */ } else { tmp182 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; } /* end of [if] */ return (tmp182) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_tmpcst_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 16845(line=954, offs=3) -- 17595(line=997, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec2_tmpcst_match (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_bool_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_bool_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec2_tmpcst_match: tmp192 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_2) ; tmp195 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp192), atslab_hiimpdec_cst) ; tmp196 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp192), atslab_hiimpdec_imparg) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst (arg1, tmp195) ; if (tmp197) { tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_make_svarlst (tmp196) ; tmp199 = auxmatlstlst_26 (tmp198, tmp194, arg2) ; if (tmp199) { tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv2tmpsub (tmp198) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub_append (tmp193, tmp200) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp191)->tag = 1 ; ats_selptrset_mac(anairiats_sum_10, tmp191, atslab_0, tmp192) ; ats_selptrset_mac(anairiats_sum_10, tmp191, atslab_1, tmp201) ; ats_selptrset_mac(anairiats_sum_10, tmp191, atslab_2, arg3) ; } else { /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free (tmp198) ; tmp191 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; } /* end of [if] */ } else { tmp191 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; } /* end of [if] */ return (tmp191) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec2_tmpcst_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 17690(line=1003, offs=3) -- 18230(line=1035, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdeclst_tmpcst_match (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdeclst_tmpcst_match: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp203 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp205 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_tmpcst_match (tmp204, arg1, arg2, arg3) ; do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp206)->tag != 1) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp203 = tmp206 ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp206)->tag != 2) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp203 = tmp206 ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (((ats_sum_ptr_type)tmp206)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: arg0 = tmp205 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdeclst_tmpcst_match ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp203) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdeclst_tmpcst_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 18325(line=1041, offs=3) -- 18712(line=1072, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpcstmat_tmpcst_match (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_bool_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; // ATSlocal_void (tmp211) ; ATSlocal (ats_bool_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_bool_type, tmp214) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpcstmat_tmpcst_match: /* ats_bool_type tmp208 ; */ tmp208 = ats_false_bool ; if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 18382(line=1045, offs=5) -- 18420(line=1045, offs=43)") ; } tmp209 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp210 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst (tmp209, arg1) ; if (tmp212) { tmp213 = (ats_sum_ptr_type)0 ; tmp214 = auxmatlstlst_26 (tmp213, tmp210, arg2) ; tmp208 = tmp214 ; /* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free (tmp213) ; } else { /* empty */ } /* end of [if] */ if (tmp208) { tmp207 = arg0 ; } else { tmp207 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; } /* end of [if] */ return (tmp207) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpcstmat_tmpcst_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 18801(line=1078, offs=3) -- 18941(line=1085, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2tmpvarmat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2tmpvarmat: tmp216 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_hifundec_imparg) ; tmp217 = auxbndlstlst_27 (tmp216, arg1) ; tmp215 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp215)->tag = 1 ; ats_selptrset_mac(anairiats_sum_10, tmp215, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp215, atslab_1, tmp217) ; ats_selptrset_mac(anairiats_sum_10, tmp215, atslab_2, 0) ; return (tmp215) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2tmpvarmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 19008(line=1089, offs=3) -- 19197(line=1103, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundecopt2tmpvarmat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundecopt2tmpvarmat: do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp218 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 19094(line=1099, offs=1) -- 19190(line=1101, offs=50)") ; } __ats_lab_63_1: tmp219 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; ATS_FREE(arg0) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2tmpvarmat (tmp219, arg1) ; break ; } while (0) ; return (tmp218) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundecopt2tmpvarmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 19288(line=1109, offs=3) -- 19429(line=1118, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_tmpvar_match (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_bool_type, tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_tmpvar_match: tmp221 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_hifundec_var) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp221, arg1) ; if (tmp222) { tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2tmpvarmat (arg0, arg2) ; } else { tmp220 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0) ; } /* end of [if] */ return (tmp220) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_tmpvar_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 19521(line=1124, offs=3) -- 19871(line=1147, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2_tmpvar_match (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_bool_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2_tmpvar_match: tmp224 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp226 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp224), atslab_hifundec_var) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp226, arg1) ; if (tmp227) { tmp228 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp224), atslab_hifundec_imparg) ; tmp229 = auxbndlstlst_27 (tmp228, arg2) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub_append (tmp225, tmp229) ; tmp223 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp223)->tag = 1 ; ats_selptrset_mac(anairiats_sum_10, tmp223, atslab_0, tmp224) ; ats_selptrset_mac(anairiats_sum_10, tmp223, atslab_1, tmp230) ; ats_selptrset_mac(anairiats_sum_10, tmp223, atslab_2, 0) ; } else { tmp223 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0) ; } /* end of [if] */ return (tmp223) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2_tmpvar_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 19964(line=1153, offs=3) -- 20323(line=1183, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmat_tmpvar_match (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_bool_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; // ATSlocal_void (tmp235) ; ATSlocal (ats_bool_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_bool_type, tmp238) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmat_tmpvar_match: /* ats_bool_type tmp232 ; */ tmp232 = ats_false_bool ; if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 20021(line=1157, offs=5) -- 20059(line=1157, offs=43)") ; } tmp233 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp234 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp233, arg1) ; if (tmp236) { tmp237 = (ats_sum_ptr_type)0 ; tmp238 = auxmatlstlst_26 (tmp237, tmp234, arg2) ; tmp232 = tmp238 ; /* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__impenv_free (tmp237) ; } else { /* empty */ } /* end of [if] */ if (tmp232) { tmp231 = arg0 ; } else { tmp231 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0) ; } /* end of [if] */ return (tmp231) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmat_tmpvar_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 20960(line=1217, offs=3) -- 21255(line=1231, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst: tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (arg3) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (tmp240 != (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_none (arg0, arg1, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: // if (tmp240 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_65_1: tmp241 = ats_caselptrlab_mac(anairiats_sum_12, tmp240, atslab_0) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_some (arg0, arg1, arg2, arg3, arg4, tmp241) ; break ; } while (0) ; return (tmp239) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 21351(line=1237, offs=3) -- 21808(line=1255, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_none (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_none: tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg (arg3) ; do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (tmp243 != (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make2_funlab (arg1, arg2, arg3) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (tmp243 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (arg3) ; if (tmp244 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 21563(line=1248, offs=9) -- 21598(line=1248, offs=44)") ; } tmp245 = ats_caselptrlab_mac(anairiats_sum_12, tmp244, atslab_0) ; tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_tsubst (arg1, arg4, tmp243) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpcst_match (arg0, tmp245, tmp246) ; tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpcstmat (arg0, arg1, arg2, tmp245, tmp246, tmp247) ; break ; } while (0) ; return (tmp242) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_none] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 21909(line=1261, offs=3) -- 22769(line=1306, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_some (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; // ATSlocal_void (tmp252) ; // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; // ATSlocal_void (tmp256) ; // ATSlocal_void (tmp257) ; // ATSlocal_void (tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; // ATSlocal_void (tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; // ATSlocal_void (tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; // ATSlocal_void (tmp266) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_some: tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub2stasub (arg4) ; tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_incget_ncopy (arg3) ; tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_subst (tmp249, arg3) ; /* tmp252 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_suffix (tmp251, tmp250) ; /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp251) ; /* tmp254 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp251) ; /* tmp255 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp256 = ats_selsin_mac(tmp255, atslab_1) */ ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpsub (arg0, arg4) ; /* tmp258 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmprecdepth (arg0) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_subst (arg0, tmp249, tmp251, arg5, tmp250) ; /* tmp260 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmprecdepth (arg0) ; /* tmp261 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ; tmp263 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp263, atslab_0, arg4) ; /* tmp262 = */ patsopt_funent_set_tmpsub (tmp259, tmp263) ; tmp265 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp265, atslab_0, tmp259) ; /* tmp264 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (tmp251, tmp265) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp249) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make2_funlab (arg1, arg2, tmp251) ; return (tmp248) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst_some] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 23056(line=1322, offs=3) -- 23735(line=1350, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpcstmat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpcstmat: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg5)->tag != 1) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpcstmat_some (arg0, arg1, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg5)->tag != 2) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp268 = ats_caselptrlab_mac(anairiats_sum_7, arg5, atslab_2) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make2_funlab (arg1, arg2, tmp268) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (((ats_sum_ptr_type)arg5)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcstmat (arg1, arg2, arg3, arg4, arg5) ; break ; } while (0) ; return (tmp267) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpcstmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 23798(line=1354, offs=3) -- 24127(line=1373, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpcstmat_some (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_int_type, tmp272) ; ATSlocal (ats_int_type, tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpcstmat_some: if (((ats_sum_ptr_type)arg5)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 23847(line=1357, offs=1) -- 23883(line=1358, offs=23)") ; } tmp270 = ats_caselptrlab_mac(anairiats_sum_10, arg5, atslab_0) ; tmp271 = ats_caselptrlab_mac(anairiats_sum_10, arg5, atslab_1) ; tmp272 = ats_caselptrlab_mac(anairiats_sum_10, arg5, atslab_2) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_save () ; /* tmp274 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp_if (arg0, 0, tmp270, tmp272) ; /* tmp275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_restore (tmp273) ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_funlabopt (tmp270) ; if (tmp276 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 24024(line=1369, offs=5) -- 24064(line=1369, offs=45)") ; } tmp277 = ats_caselptrlab_mac(anairiats_sum_12, tmp276, atslab_0) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst (arg0, arg1, arg2, tmp277, tmp271) ; return (tmp269) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpcstmat_some] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 24409(line=1390, offs=3) -- 25174(line=1421, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpvarmat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpvarmat: do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)arg5)->tag != 1) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpvarmat_some (arg0, arg1, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)arg5)->tag != 2) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp279 = ats_caselptrlab_mac(anairiats_sum_7, arg5, atslab_2) ; tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make2_funlab (arg1, arg2, tmp279) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: // if (((ats_sum_ptr_type)arg5)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_73_1: tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvarmat (arg1, arg2, arg3, arg4, arg5) ; break ; } while (0) ; return (tmp278) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpvarmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_template.dats: 25237(line=1425, offs=3) -- 25827(line=1455, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpvarmat_some (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; // ATSlocal_void (tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpvarmat_some: if (((ats_sum_ptr_type)arg5)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 25286(line=1428, offs=1) -- 25327(line=1429, offs=28)") ; } tmp281 = ats_caselptrlab_mac(anairiats_sum_10, arg5, atslab_0) ; tmp282 = ats_caselptrlab_mac(anairiats_sum_10, arg5, atslab_1) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_get_funlabopt (tmp281) ; do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (tmp283 != (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_get_hideclopt (tmp281) ; if (tmp285 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 25433(line=1438, offs=9) -- 25480(line=1439, offs=43)") ; } tmp286 = ats_caselptrlab_mac(anairiats_sum_12, tmp285, atslab_0) ; tmp287 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp286), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp287)->tag != 11) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 25509(line=1441, offs=9) -- 25564(line=1442, offs=45)") ; } tmp288 = ats_caselptrlab_mac(anairiats_sum_7, tmp287, atslab_0) ; tmp289 = ats_caselptrlab_mac(anairiats_sum_7, tmp287, atslab_1) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_7, tmp287, atslab_2) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp (arg0, 0, tmp288, tmp289, tmp290) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (tmp283 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: break ; } while (0) ; tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_get_funlabopt (tmp281) ; if (tmp291 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_template.dats: 25724(line=1451, offs=5) -- 25764(line=1451, offs=45)") ; } tmp292 = ats_caselptrlab_mac(anairiats_sum_12, tmp291, atslab_0) ; tmp280 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_funlab_tmpsubst (arg0, arg1, arg2, tmp292, tmp282) ; return (tmp280) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__ccomp_tmpvarmat_some] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__IMPENVnil_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__IMPENVcons_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_template_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_emit_dats.c0000644000175000017500000102124013431250607022644 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "libc/CATS/time.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_primval_loc ; ats_ptr_type atslab_primval_type ; ats_ptr_type atslab_primval_node ; } anairiats_rec_8 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_double_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_primlab_loc ; ats_ptr_type atslab_primlab_node ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_instr_loc ; ats_ptr_type atslab_instr_node ; } anairiats_rec_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; ats_ptr_type atslab_6 ; ats_ptr_type atslab_7 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_19 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_20 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_21 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_22 ; typedef struct { anairiats_rec_22 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_23 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_24 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_25 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_ext_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_mac_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_sta_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyarr_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrec_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrecsin_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtysum_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyfil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyloc_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyfun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__LABPRIMVAL_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpref_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVarg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargref_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargenv_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcst_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVenv_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVint_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVintrep_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVbool_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVchar_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfloat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVstring_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVi0nt_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVf0loat_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcstsp_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtyrep_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVsizeof_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtop_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVempty_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVextval_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcastfn_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselcon_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect2_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselptr_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrof_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrofsel_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVvararg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVrefarg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfunlab_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcfunlab_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVlamfix_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVerror_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfunlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmplab_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScomment_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_val_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_val_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall2_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextfcall_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextmcall_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScond_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfreecon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloopexn_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScaseof_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpop_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpush_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_con_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_boxrec_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_fltrec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpatck_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_ptrofs_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSxstore_ptrofs_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSraise_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_delay_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_lazyeval_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStrywith_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_nil_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_nil_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_cons_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_phead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_ptail_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arrpsz_ptr_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_asz_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_ptr_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrinc_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrdec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSclosure_initize_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmpdec_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextvar_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSdcstdef_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStempenver_43) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isalnum) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isprint) (ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_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_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_none) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint2_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_line_pragma) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_fil) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_pack) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_fil) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_pack) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_exn) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nullary) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listlike) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_singular) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_linear) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_fil) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_pack) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_int_t0ype) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_boxknd) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyarr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyrecsin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__labhisexp_get_elt) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isref) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_topknd) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_origin) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_suffix) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_suffix) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_is_envful) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primlab) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_void) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_top) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_instr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funent_varbindmap_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_float) (ats_ptr_type, ats_double_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVint) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVintrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVbool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVchar) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVfloat) (ats_ptr_type, ats_double_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVstring) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVi0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVf0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_atslabel) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primcstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2env) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2var_env) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2envlst) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tyrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_sizeof) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarg) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdeclst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp_sel) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primlab) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extfcall) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extmcall) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_patck) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ibranchlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, atslib_tm_get_min) (ats_ref_type) ; ATSextern_fun(ats_int_type, atslib_tm_get_hour) (ats_ref_type) ; ATSextern_fun(ats_int_type, atslib_tm_get_mday) (ats_ref_type) ; ATSextern_fun(ats_int_type, atslib_tm_get_mon) (ats_ref_type) ; ATSextern_fun(ats_int_type, atslib_tm_get_year) (ats_ref_type) ; ATSextern_fun(ats_time_type, atslib_time_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_arrdim) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_arg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argref) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmpref) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_env) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_castfn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selcon) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selptr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrofsel) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_vararg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_refarg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_cfunlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_err) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_rec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_store_ptrofs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_xstore_ptrofs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_raise) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_delay) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_lazyeval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_move_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_pmove_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_move_ptralloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02192_ () ; static ats_void_type auxch_14 (ats_ptr_type arg0, ats_char_type arg1) ; static ats_void_type auxch2_15 (ats_ptr_type arg0, ats_char_type arg1) ; static ats_char_type ptr0_get_01759_ats_char_type (ats_ptr_type arg0) ; static ats_char_type ptrget_01763_ats_char_type (ats_ptr_type arg0) ; static ats_void_type auxstr_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type emit_patsver_27 (ats_ptr_type arg0) ; static ats_void_type aux_29 (ats_ptr_type arg0, ats_char_type arg1) ; static ats_void_type aux_prfx_38 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_prfx_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_int_type (ats_int_type arg0) ; static ats_void_type emit_tmp_51 (ats_ptr_type arg0) ; static ats_void_type emit_statmp_52 (ats_ptr_type arg0) ; static ats_void_type auxtmp_53 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxmain_55 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_errccomp_loc_02200_ (ats_ptr_type arg0) ; static ats_void_type aux_59 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxlst_61 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type loop_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_int_type auxlst_75 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_bool_type testselptr0_81 (ats_ptr_type arg0) ; static ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ; static ats_void_type auxmain_87 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) ; static ats_void_type prerr_interror_loc_02194_ (ats_ptr_type arg0) ; static ats_void_type loop_98 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type auxcon0_100 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxtag_101 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxarg_102 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxcon1_103 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type auxexn0_104 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxexn1_105 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type loop_108 (ats_ptr_type env0, ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5) ; static ats_clo_ptr_type loop_108_closure_make (ats_ptr_type env0) ; static ats_void_type loop_108_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5) ; static ats_void_type auxsel_109 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxfnd_111 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_interror_02193_ () ; static ats_ptr_type auxsel_112 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_115 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxselist_114 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) ; static ats_void_type auxmain_116 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp152) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 1936(line=73, offs=18) -- 1964(line=73, offs=46) */ ATSstaticdec() ats_void_type prerr_FILENAME_02192_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02192_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_ccomp_emit")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02192_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 2888(line=131, offs=3) -- 2925(line=131, offs=40) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text: /* tmp1 = */ atspre_fprint_string (arg0, arg1) ; return /* (tmp1) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 2992(line=137, offs=13) -- 3020(line=137, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN: /* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; return /* (tmp2) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3043(line=139, offs=13) -- 3071(line=139, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN: /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; return /* (tmp3) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3117(line=144, offs=14) -- 3144(line=144, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline: /* tmp4 = */ atspre_fprint_newline (arg0) ; return /* (tmp4) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3194(line=150, offs=3) -- 3238(line=150, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location: /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, arg1) ; return /* (tmp5) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3306(line=156, offs=10) -- 3336(line=156, offs=40) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int: /* tmp6 = */ atspre_fprint_int (arg0, arg1) ; return /* (tmp6) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3359(line=158, offs=13) -- 3400(line=158, offs=54) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_intinf (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_intinf: /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf (arg0, arg1) ; return /* (tmp7) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_intinf] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3426(line=160, offs=16) -- 3510(line=162, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVint (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVint: /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVint(")) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, arg1) ; /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVint] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3566(line=164, offs=19) -- 3654(line=166, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVintrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVintrep: /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVintrep(")) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, arg1) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp11) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVintrep] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3727(line=171, offs=11) -- 3758(line=171, offs=42) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_bool (ats_ptr_type arg0, ats_bool_type arg1) { /* local vardec */ // ATSlocal_void (tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_bool: /* tmp14 = */ atspre_fprint_bool (arg0, arg1) ; return /* (tmp14) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_bool] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3787(line=174, offs=3) -- 3877(line=176, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVbool (ats_ptr_type arg0, ats_bool_type arg1) { /* local vardec */ // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVbool: /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVbool_")) ; /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_bool (arg0, arg1) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("()")) ; return /* (tmp15) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVbool] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 3949(line=181, offs=12) -- 3988(line=181, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_float (ats_ptr_type arg0, ats_double_type arg1) { /* local vardec */ // ATSlocal_void (tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_float: /* tmp18 = */ atspre_fprintf_exn (arg0, ATSstrcst("%.18f"), arg1) ; return /* (tmp18) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_float] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 4018(line=184, offs=3) -- 4109(line=186, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVfloat (ats_ptr_type arg0, ats_double_type arg1) { /* local vardec */ // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVfloat: /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVfloat(")) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_float (arg0, arg1) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; return /* (tmp19) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVfloat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 4172(line=192, offs=5) -- 4610(line=212, offs=4) */ ATSstaticdec() ats_void_type auxch_14 (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_bool_type, tmp23) ; __ats_lab_auxch_14: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 != '\'') { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\\'")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (arg1 != '\n') { goto __ats_lab_2_0 ; } __ats_lab_1_1: /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\\n")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 != '\t') { goto __ats_lab_3_0 ; } __ats_lab_2_1: /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\\t")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg1 != '\\') { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\\\\")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp23 = atspre_char_isprint (arg1) ; if (tmp23) { /* tmp22 = */ atspre_fprint_char (arg0, arg1) ; } else { /* tmp22 = */ atspre_fprintf_exn (arg0, ATSstrcst("\\%.3o"), ats_castfn_mac(ats_uint_type, ats_castfn_mac(ats_uchar_type, arg1))) ; } /* end of [if] */ break ; } while (0) ; return /* (tmp22) */ ; } /* end of [auxch_14] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 4634(line=214, offs=5) -- 5096(line=235, offs=4) */ ATSstaticdec() ats_void_type auxch2_15 (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ // ATSlocal_void (tmp24) ; ATSlocal (ats_bool_type, tmp25) ; __ats_lab_auxch2_15: do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg1 != '"') { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\\\"")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg1 != '\n') { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\\n")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg1 != '\t') { goto __ats_lab_8_0 ; } __ats_lab_7_1: /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\\t")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg1 != '\\') { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\\\\")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp25 = atspre_char_isprint (arg1) ; if (tmp25) { /* tmp24 = */ atspre_fprint_char (arg0, arg1) ; } else { /* tmp24 = */ atspre_fprintf_exn (arg0, ATSstrcst("\\%.3o"), ats_castfn_mac(ats_uint_type, ats_castfn_mac(ats_uchar_type, arg1))) ; } /* end of [if] */ break ; } while (0) ; return /* (tmp24) */ ; } /* end of [auxch2_15] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 5161(line=240, offs=11) -- 5186(line=240, offs=36) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_char (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ // ATSlocal_void (tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_char: /* tmp26 = */ auxch_14 (arg0, arg1) ; return /* (tmp26) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_char] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_char_type ptr0_get_01759_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp33) ; __ats_lab_ptr0_get_01759_ats_char_type: tmp33 = ats_ptrget_mac(ats_char_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp33) ; } /* end of [ptr0_get_01759_ats_char_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41) */ ATSstaticdec() ats_char_type ptrget_01763_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp32) ; __ats_lab_ptrget_01763_ats_char_type: tmp32 = ptr0_get_01759_ats_char_type (arg0) ; return (tmp32) ; } /* end of [ptrget_01763_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 5236(line=246, offs=5) -- 5520(line=261, offs=4) */ ATSstaticdec() ats_void_type auxstr_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_bool_type, tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_char_type, tmp31) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_auxstr_18: tmp29 = atspre_string_isnot_empty (arg1) ; if (tmp29) { tmp31 = ptrget_01763_ats_char_type (ats_castfn_mac(ats_ptr_type, arg1)) ; /* tmp30 = */ auxch2_15 (arg0, tmp31) ; tmp34 = atspre_padd_int (ats_castfn_mac(ats_ptr_type, arg1), 1) ; tmp35 = ats_castfn_mac(ats_ptr_type, tmp34) ; arg0 = arg0 ; arg1 = tmp35 ; goto __ats_lab_auxstr_18 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp28) */ ; } /* end of [auxstr_18] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 5212(line=244, offs=3) -- 5592(line=267, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_string: /* tmp27 = */ auxstr_18 (arg0, arg1) ; return /* (tmp27) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_string] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 5688(line=274, offs=17) -- 5808(line=278, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVchar (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVchar: /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVchar('")) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_char (arg0, arg1) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("')")) ; return /* (tmp36) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVchar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 5866(line=281, offs=19) -- 5996(line=285, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVstring (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVstring: /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVstring(\"")) ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_string (arg0, arg1) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\")")) ; return /* (tmp39) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVstring] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 6077(line=291, offs=3) -- 6222(line=300, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVi0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVi0nt: /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVi0nt(")) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, arg1) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp42) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVi0nt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 6282(line=304, offs=3) -- 6431(line=313, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVf0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVf0loat: /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVf0loat(")) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, arg1) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVf0loat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 6507(line=319, offs=3) -- 6545(line=319, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_stamp (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_stamp: /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, arg1) ; return /* (tmp48) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_stamp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 6615(line=326, offs=3) -- 6653(line=326, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_symbol (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_symbol: /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, arg1) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_symbol] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 6777(line=339, offs=1) -- 6975(line=347, offs=2) */ ATSstaticdec() ats_void_type emit_patsver_27 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; __ats_lab_emit_patsver_27: /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, 0) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("-")) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, 3) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("-")) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, 13) ; return /* (tmp50) */ ; } /* end of [emit_patsver_27] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 7025(line=353, offs=16) -- 8069(line=405, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_time_stamp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp55) ; ATSlocal (ats_time_type, tmp56) ; ATSlocal (ats_time_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_int_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_int_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; ATSlocal (ats_int_type, tmp74) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_time_stamp: /* ats_time_type tmp56 ; */ tmp57 = atslib_time_get () ; tmp56 = tmp57 ; tmp58 = atslib_localtime ((&tmp56)) ; tmp59 = ats_selsin_mac(tmp58, atslab_1) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n**\n")) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** The C code is generated by [")) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATS/Postiats-")) ; /* tmp63 = */ emit_patsver_27 (arg0) ; /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("]\n")) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** The starting compilation time is: ")) ; tmp67 = atspre_pgt (tmp59, atspre_null_ptr) ; if (tmp67) { tmp68 = atslib_tm_get_min (tmp59) ; tmp69 = atslib_tm_get_hour (tmp59) ; tmp70 = atslib_tm_get_mday (tmp59) ; tmp72 = atslib_tm_get_mon (tmp59) ; tmp71 = atspre_add_int_int (1, tmp72) ; tmp74 = atslib_tm_get_year (tmp59) ; tmp73 = atspre_add_int_int (1900, tmp74) ; /* tmp66 = */ atspre_fprintf_exn (arg0, ATSstrcst("%i-%i-%i: %2ih:%2im\n"), tmp73, tmp71, tmp70, tmp69, tmp68) ; } else { /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("**TIME-IS-UNKNOWN!!!**\n")) ; } /* end of [if] */ /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("**\n")) ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; return /* (tmp55) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_time_stamp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 8154(line=413, offs=5) -- 8459(line=431, offs=4) */ ATSstaticdec() ats_void_type aux_29 (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ // ATSlocal_void (tmp77) ; ATSlocal (ats_bool_type, tmp78) ; ATSlocal (ats_bool_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; __ats_lab_aux_29: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp78 = atspre_char_isalnum (arg1) ; if (!tmp78) { goto __ats_lab_11_1 ; } /* tmp77 = */ atspre_fprint_char (arg0, arg1) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp79 = atspre_eq_char_char (arg1, '_') ; if (!tmp79) { goto __ats_lab_12_1 ; } /* tmp77 = */ atspre_fprint_char (arg0, '_') ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp80 = atspre_eq_char_char (arg1, '$') ; if (!tmp80) { goto __ats_lab_13_1 ; } /* tmp77 = */ atspre_fprint_string (arg0, ATSstrcst("__")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: /* tmp77 = */ atspre_fprintf_exn (arg0, ATSstrcst("_%.3o_"), ats_castfn_mac(ats_uint_type, arg1)) ; break ; } while (0) ; return /* (tmp77) */ ; } /* end of [aux_29] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 8524(line=437, offs=3) -- 8780(line=450, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_char_type, tmp83) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident: tmp82 = atspre_string_isnot_empty (arg1) ; if (tmp82) { tmp83 = ptrget_01763_ats_char_type (ats_castfn_mac(ats_ptr_type, arg1)) ; /* tmp84 = */ aux_29 (arg0, tmp83) ; tmp85 = atspre_padd_int (ats_castfn_mac(ats_ptr_type, arg1), 1) ; tmp86 = ats_castfn_mac(ats_ptr_type, tmp85) ; arg0 = arg0 ; arg1 = tmp86 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp81) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 8872(line=458, offs=3) -- 8937(line=460, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_label (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_label: /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, arg1) ; return /* (tmp87) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_label] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 8988(line=464, offs=3) -- 9092(line=467, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_atslabel (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_atslabel: /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atslab__")) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, arg1) ; return /* (tmp88) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_atslabel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 9146(line=471, offs=3) -- 9294(line=480, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp90) ; ATSlocal (ats_bool_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext: tmp91 = atspre_gt_int_int (arg1, 0) ; if (tmp91) { /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_label (arg0, arg2) ; } else { /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_atslabel (arg0, arg2) ; } /* end of [if] */ return /* (tmp90) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 9369(line=486, offs=3) -- 9526(line=493, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname (arg1) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp93) ; /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp94) ; return /* (tmp92) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 9602(line=499, offs=3) -- 10231(line=529, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primcstsp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primcstsp: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp97 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCSTSPmyfil(\"")) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp96) ; /* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCSTSPmyloc(\"")) ; /* tmp101 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp99) ; /* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\")")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCSTSPmyfun(\"")) ; /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp102) ; /* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\")")) ; break ; } while (0) ; return /* (tmp95) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primcstsp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 10304(line=535, offs=3) -- 10452(line=546, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tyrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tyrep: /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVtyrep(")) ; /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, arg1) ; /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp105) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tyrep] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 10522(line=552, offs=3) -- 10664(line=563, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_sizeof (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_sizeof: /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVsizeof(")) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, arg1) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp108) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_sizeof] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 10725(line=570, offs=1) -- 11066(line=591, offs=4) */ ATSstaticdec() ats_void_type aux_prfx_38 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_bool_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab_aux_prfx_38: tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_pack (arg1) ; tmp113 = atspre_stropt_is_some (tmp112) ; if (tmp113) { /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, ats_castfn_mac(ats_ptr_type, tmp112)) ; } else { tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_fil (arg1) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename (arg0, tmp114) ; } /* end of [if] */ return /* (tmp111) */ ; } /* end of [aux_prfx_38] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 11136(line=597, offs=3) -- 11309(line=604, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_s2cst: /* tmp116 = */ aux_prfx_38 (arg0, arg1) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__")) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name (arg1) ; /* tmp115 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp118) ; return /* (tmp115) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 11389(line=613, offs=1) -- 11671(line=632, offs=4) */ ATSstaticdec() ats_void_type aux_prfx_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp119) ; ATSlocal (ats_bool_type, tmp120) ; __ats_lab_aux_prfx_40: tmp120 = atspre_stropt_is_none (arg2) ; if (tmp120) { /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_filename (arg0, arg1) ; } else { /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, ats_castfn_mac(ats_ptr_type, arg2)) ; } /* end of [if] */ return /* (tmp119) */ ; } /* end of [aux_prfx_40] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 11741(line=638, offs=3) -- 12211(line=664, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; // ATSlocal_void (tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; ATSlocal (ats_int_type, tmp128) ; ATSlocal (ats_bool_type, tmp129) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con: tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_fil (arg1) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_pack (arg1) ; /* tmp124 = */ aux_prfx_40 (arg0, tmp122, tmp123) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name (arg1) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__")) ; /* tmp127 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp125) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag (arg1) ; tmp129 = atspre_gte_int_int (tmp128, 0) ; if (tmp129) { /* tmp121 = */ atspre_fprintf_exn (arg0, ATSstrcst("__%i"), tmp128) ; } else { /* empty */ } /* end of [if] */ return /* (tmp121) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 12283(line=670, offs=3) -- 13087(line=706, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_int_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; ATSlocal (ats_bool_type, tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst: tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef (arg1) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp131)->tag != 0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_3, tmp131, atslab_0) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_fil (arg1) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_pack (arg1) ; /* tmp135 = */ aux_prfx_40 (arg0, tmp133, tmp134) ; /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__")) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name (arg1) ; /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp137) ; tmp139 = atspre_eq_int_int (tmp132, 0) ; if (tmp139) { /* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__")) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp (arg1) ; /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_stamp (arg0, tmp141) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp131)->tag != 1) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp142 = ats_caselptrlab_mac(anairiats_sum_2, tmp131, atslab_0) ; /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp142) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp131)->tag != 2) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_2, tmp131, atslab_0) ; /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp143) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (((ats_sum_ptr_type)tmp131)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_2, tmp131, atslab_0) ; /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp144) ; break ; } while (0) ; return /* (tmp130) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 13180(line=714, offs=3) -- 13236(line=714, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_d2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_d2cst: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name (arg1) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp146) ; return /* (tmp145) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 13307(line=721, offs=3) -- 13429(line=727, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; ATSlocal (ats_int_type, tmp149) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab: /* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__atstmplab")) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_stamp (arg1) ; /* tmp147 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp149) ; return /* (tmp147) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 13482(line=731, offs=3) -- 13596(line=736, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplabint (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplabint: /* tmp151 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, arg1) ; /* tmp150 = */ atspre_fprintf_exn (arg0, ATSstrcst("__%i"), arg2) ; return /* (tmp150) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplabint] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_int_type, tmp155) ; __ats_lab_ref_01088_ats_int_type: /* ats_int_type tmp155 ; */ tmp155 = arg0 ; tmp154 = atspre_ref_make_elt_tsz ((&tmp155), sizeof(ats_int_type)) ; return (tmp154) ; } /* end of [ref_01088_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; __ats_lab_ref_make_elt_01089_ats_int_type: tmp153 = ref_01088_ats_int_type (arg0) ; return (tmp153) ; } /* end of [ref_make_elt_01089_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 13739(line=747, offs=15) -- 13766(line=747, offs=42) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_set_nfnx (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_set_nfnx: ats_ptrget_mac(ats_int_type, statmp152) = arg0 ; return /* (tmp156) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_set_nfnx] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 13793(line=751, offs=3) -- 13963(line=758, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarg (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp157) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_bool_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarg: tmp158 = ats_ptrget_mac(ats_int_type, statmp152) ; tmp159 = atspre_lte_int_int (tmp158, 1) ; if (tmp159) { /* tmp157 = */ atspre_fprintf_exn (arg0, ATSstrcst("arg%i"), arg1) ; } else { /* tmp157 = */ atspre_fprintf_exn (arg0, ATSstrcst("a%irg%i"), tmp158, arg1) ; } /* end of [if] */ return /* (tmp157) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 14013(line=762, offs=3) -- 14169(line=772, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funapy (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp160) ; ATSlocal (ats_int_type, tmp161) ; ATSlocal (ats_bool_type, tmp162) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funapy: tmp161 = ats_ptrget_mac(ats_int_type, statmp152) ; tmp162 = atspre_lte_int_int (tmp161, 1) ; if (tmp162) { /* tmp160 = */ atspre_fprintf_exn (arg0, ATSstrcst("apy%i"), arg1) ; } else { /* tmp160 = */ atspre_fprintf_exn (arg0, ATSstrcst("a%ipy%i"), tmp161, arg1) ; } /* end of [if] */ return /* (tmp160) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funapy] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 14245(line=779, offs=1) -- 14304(line=782, offs=34) */ ATSstaticdec() ats_void_type emit_tmp_51 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp163) ; __ats_lab_emit_tmp_51: /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("tmp")) ; return /* (tmp163) */ ; } /* end of [emit_tmp_51] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 14312(line=785, offs=1) -- 14537(line=799, offs=4) */ ATSstaticdec() ats_void_type emit_statmp_52 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_bool_type, tmp167) ; __ats_lab_emit_statmp_52: tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_get () ; tmp167 = atspre_stropt_is_some (tmp165) ; if (tmp167) { /* tmp166 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ats_castfn_mac(ats_ptr_type, tmp165)) ; } else { /* empty */ } /* end of [if] */ /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("statmp")) ; return /* (tmp164) */ ; } /* end of [emit_statmp_52] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 14600(line=805, offs=5) -- 15459(line=846, offs=4) */ ATSstaticdec() ats_void_type auxtmp_53 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp168) ; ATSlocal (ats_int_type, tmp169) ; // ATSlocal_void (tmp170) ; ATSlocal (ats_bool_type, tmp171) ; ATSlocal (ats_bool_type, tmp172) ; // ATSlocal_void (tmp173) ; ATSlocal (ats_bool_type, tmp174) ; // ATSlocal_void (tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_int_type, tmp178) ; ATSlocal (ats_int_type, tmp179) ; // ATSlocal_void (tmp180) ; ATSlocal (ats_int_type, tmp181) ; __ats_lab_auxtmp_53: tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_topknd (arg1) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp171 = atspre_eq_int_int (tmp169, 0) ; if (!tmp171) { goto __ats_lab_22_1 ; } /* tmp170 = */ emit_tmp_51 (arg0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: /* tmp170 = */ emit_statmp_52 (arg0) ; break ; } while (0) ; tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isref (arg1) ; if (tmp172) { /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ref")) ; } else { /* empty */ } /* end of [if] */ tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret (arg1) ; if (tmp174) { /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ret")) ; } else { /* empty */ } /* end of [if] */ tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_origin (arg1) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (tmp176 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_4, tmp176, atslab_0) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_suffix (arg1) ; tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_stamp (tmp177) ; /* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp179) ; /* tmp168 = */ atspre_fprintf_exn (arg0, ATSstrcst("__%i"), tmp178) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (tmp176 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_stamp (arg1) ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp181) ; break ; } while (0) ; return /* (tmp168) */ ; } /* end of [auxtmp_53] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 15526(line=851, offs=13) -- 15556(line=851, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp182) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar: /* tmp182 = */ auxtmp_53 (arg0, arg1) ; return /* (tmp182) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 15613(line=859, offs=5) -- 16285(line=897, offs=4) */ ATSstaticdec() ats_void_type auxmain_55 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_int_type, tmp189) ; ATSlocal (ats_bool_type, tmp190) ; // ATSlocal_void (tmp191) ; ATSlocal (ats_int_type, tmp192) ; __ats_lab_auxmain_55: tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (arg1) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg (arg1) ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (tmp184 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_4, tmp184, atslab_0) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, tmp187) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (tmp184 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name (arg1) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp188) ; break ; } while (0) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd (arg1) ; tmp190 = atspre_gt_int_int (tmp189, 0) ; if (tmp190) { /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__")) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp (arg1) ; /* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp192) ; } else { /* empty */ } /* end of [if] */ return /* (tmp183) */ ; } /* end of [auxmain_55] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 16355(line=903, offs=3) -- 16681(line=922, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_int_type, tmp197) ; ATSlocal (ats_bool_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin (arg1) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp194 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp196 = ats_caselptrlab_mac(anairiats_sum_4, tmp194, atslab_0) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp196) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (tmp194 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: /* tmp195 = */ auxmain_55 (arg0, arg1) ; break ; } while (0) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_suffix (arg1) ; tmp198 = atspre_gt_int_int (tmp197, 0) ; if (tmp198) { /* tmp193 = */ atspre_fprintf_exn (arg0, ATSstrcst("__%i"), tmp197) ; } else { /* empty */ } /* end of [if] */ return /* (tmp193) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 16732(line=926, offs=3) -- 16999(line=940, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_funlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_funlab: tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (arg1) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (tmp200 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_4, tmp200, atslab_0) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name (tmp202) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (tmp200 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name (arg1) ; break ; } while (0) ; /* tmp199 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp201) ; return /* (tmp199) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_funlab] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2599(line=102, offs=20) -- 2662(line=105, offs=2) */ ATSstaticdec() ats_void_type prerr_errccomp_loc_02200_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; __ats_lab_prerr_errccomp_loc_02200_: /* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp209 = */ atspre_prerr_string (ATSstrcst(": error(ccomp)")) ; return /* (tmp209) */ ; } /* end of [prerr_errccomp_loc_02200_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 17227(line=958, offs=5) -- 17703(line=982, offs=4) */ ATSstaticdec() ats_void_type aux_59 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_int_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; // ATSlocal_void (tmp208) ; ATSlocal (ats_ptr_type, tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; __ats_lab_aux_59: tmp205 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg2), atslab_s2exp_node) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp205)->tag != 0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_3, tmp205, atslab_0) ; /* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, tmp206) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp205)->tag != 1) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_2, tmp205, atslab_0) ; /* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_intinf (arg0, tmp207) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc (arg1) ; /* tmp208 = */ prerr_errccomp_loc_02200_ (tmp211) ; /* tmp212 = */ atspre_prerr_string (ATSstrcst(": the size of a stack-allocated array cannot be determined. ")) ; /* tmp213 = */ atspre_prerr_newline () ; /* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSERRORarrdim_unknown()")) ; break ; } while (0) ; return /* (tmp204) */ ; } /* end of [aux_59] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 17727(line=984, offs=5) -- 18063(line=1003, offs=4) */ ATSstaticdec() ats_void_type auxlst_61 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_bool_type, tmp218) ; // ATSlocal_void (tmp219) ; ATSlocal (ats_int_type, tmp220) ; __ats_lab_auxlst_61: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp216 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp218 = atspre_gt_int_int (arg3, 0) ; if (tmp218) { /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("][")) ; } else { /* empty */ } /* end of [if] */ /* tmp219 = */ aux_59 (arg0, arg1, tmp215) ; tmp220 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp216 ; arg3 = tmp220 ; goto __ats_lab_auxlst_61 ; // tail call break ; } while (0) ; return /* (tmp214) */ ; } /* end of [auxlst_61] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 17197(line=956, offs=3) -- 18168(line=1007, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_arrdim (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp203) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_arrdim: /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("[")) ; /* tmp222 = */ auxlst_61 (arg0, arg1, arg2, 0) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("]")) ; return /* (tmp203) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_arrdim] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 18239(line=1013, offs=3) -- 19281(line=1076, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_int_type, tmp225) ; ATSlocal (ats_bool_type, tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; ATSlocal (ats_bool_type, tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; // ATSlocal_void (tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; // ATSlocal_void (tmp236) ; ATSlocal (ats_bool_type, tmp237) ; // ATSlocal_void (tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdec: tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type (arg1) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_topknd (arg1) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void (tmp224) ; if (tmp226) { /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("// ")) ; } else { /* empty */ } /* end of [if] */ tmp229 = atspre_eq_int_int (tmp225, 0) ; if (tmp229) { /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATStmpdec")) ; } else { /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstatmpdec")) ; } /* end of [if] */ if (tmp226) { /* tmp230 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("_void")) ; } else { /* empty */ } /* end of [if] */ /* tmp231 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp232 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; tmp234 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp224), atslab_hisexp_node) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp234)->tag != 7) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_7, tmp234, atslab_1) ; /* tmp233 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_arrdim (arg0, arg1, tmp235) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: break ; } while (0) ; tmp237 = atspre_neg_bool (tmp226) ; if (tmp237) { /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; tmp239 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp224), atslab_hisexp_node) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp239)->tag != 7) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp240 = ats_caselptrlab_mac(anairiats_sum_7, tmp239, atslab_0) ; /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp240) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp224) ; break ; } while (0) ; } else { /* empty */ } /* end of [if] */ /* tmp223 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; return /* (tmp223) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 19355(line=1082, offs=3) -- 19548(line=1092, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdeclst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; // ATSlocal_void (tmp244) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdeclst: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp243 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; /* tmp244 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdec (arg0, tmp242) ; arg0 = arg0 ; arg1 = tmp243 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdeclst ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: break ; } while (0) ; return /* (tmp241) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpdeclst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 20769(line=1137, offs=3) -- 22809(line=1213, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_bool_type, tmp250) ; ATSlocal (ats_char_type, tmp251) ; ATSlocal (ats_double_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval: tmp246 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_loc) ; tmp247 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp247)->tag != 0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmp (arg0, arg1) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp247)->tag != 1) { goto __ats_lab_44_0 ; } __ats_lab_43_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmpref (arg0, arg1) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp247)->tag != 2) { goto __ats_lab_45_0 ; } __ats_lab_44_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_arg (arg0, arg1) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp247)->tag != 3) { goto __ats_lab_46_0 ; } __ats_lab_45_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argref (arg0, arg1) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp247)->tag != 4) { goto __ats_lab_47_0 ; } __ats_lab_46_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argenv (arg0, arg1) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp247)->tag != 7) { goto __ats_lab_48_0 ; } __ats_lab_47_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_env (arg0, arg1) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp247)->tag != 6) { goto __ats_lab_49_0 ; } __ats_lab_48_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_d2cst (arg0, arg1) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp247)->tag != 8) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp248 = ats_caselptrlab_mac(anairiats_sum_3, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVint (arg0, tmp248) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp247)->tag != 9) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_2, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVintrep (arg0, tmp249) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp247)->tag != 10) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp250 = ats_caselptrlab_mac(anairiats_sum_9, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVbool (arg0, tmp250) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp247)->tag != 11) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp251 = ats_caselptrlab_mac(anairiats_sum_10, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVchar (arg0, tmp251) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp247)->tag != 12) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp252 = ats_caselptrlab_mac(anairiats_sum_11, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVfloat (arg0, tmp252) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp247)->tag != 13) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp253 = ats_caselptrlab_mac(anairiats_sum_2, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVstring (arg0, tmp253) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp247)->tag != 14) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp254 = ats_caselptrlab_mac(anairiats_sum_2, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVi0nt (arg0, tmp254) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp247)->tag != 15) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp255 = ats_caselptrlab_mac(anairiats_sum_2, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ATSPMVf0loat (arg0, tmp255) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp247)->tag != 16) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_2, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primcstsp (arg0, tmp256) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp247)->tag != 19) { goto __ats_lab_59_0 ; } __ats_lab_58_1: /* tmp245 = */ atspre_fprintf_exn (arg0, ATSstrcst("ATSPMVtop()")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp247)->tag != 20) { goto __ats_lab_60_0 ; } __ats_lab_59_1: /* tmp245 = */ atspre_fprintf_exn (arg0, ATSstrcst("ATSPMVempty()")) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp247)->tag != 21) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp257 = ats_caselptrlab_mac(anairiats_sum_2, tmp247, atslab_0) ; /* tmp245 = */ atspre_fprintf_exn (arg0, ATSstrcst("ATSPMVextval(%s)"), tmp257) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp247)->tag != 22) { goto __ats_lab_62_0 ; } __ats_lab_61_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_castfn (arg0, arg1) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp247)->tag != 17) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp258 = ats_caselptrlab_mac(anairiats_sum_2, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tyrep (arg0, tmp258) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp247)->tag != 18) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp259 = ats_caselptrlab_mac(anairiats_sum_2, tmp247, atslab_0) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_sizeof (arg0, tmp259) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp247)->tag != 23) { goto __ats_lab_65_0 ; } __ats_lab_64_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selcon (arg0, arg1) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp247)->tag != 24) { goto __ats_lab_66_0 ; } __ats_lab_65_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select (arg0, arg1) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp247)->tag != 25) { goto __ats_lab_67_0 ; } __ats_lab_66_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select2 (arg0, arg1) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp247)->tag != 26) { goto __ats_lab_68_0 ; } __ats_lab_67_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selptr (arg0, arg1) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp247)->tag != 27) { goto __ats_lab_69_0 ; } __ats_lab_68_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof (arg0, arg1) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp247)->tag != 28) { goto __ats_lab_70_0 ; } __ats_lab_69_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrofsel (arg0, arg1) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp247)->tag != 29) { goto __ats_lab_71_0 ; } __ats_lab_70_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_vararg (arg0, arg1) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp247)->tag != 30) { goto __ats_lab_72_0 ; } __ats_lab_71_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_refarg (arg0, arg1) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp247)->tag != 31) { goto __ats_lab_73_0 ; } __ats_lab_72_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_funlab (arg0, arg1) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp247)->tag != 32) { goto __ats_lab_74_0 ; } __ats_lab_73_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_cfunlab (arg0, arg1) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp247)->tag != 34) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp260 = ats_caselptrlab_mac(anairiats_sum_7, tmp247, atslab_1) ; arg0 = arg0 ; arg1 = tmp260 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval ; // tail call break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp247)->tag != 39) { goto __ats_lab_76_0 ; } __ats_lab_75_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_err (arg0, arg1) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: __ats_lab_76_1: /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, arg1) ; break ; } while (0) ; return /* (tmp245) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 22910(line=1222, offs=1) -- 23236(line=1242, offs=4) */ ATSstaticdec() ats_void_type loop_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; // ATSlocal_void (tmp265) ; ATSlocal (ats_bool_type, tmp266) ; // ATSlocal_void (tmp267) ; ATSlocal (ats_int_type, tmp268) ; __ats_lab_loop_66: do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp263 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp264 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp266 = atspre_gt_int_int (arg2, 0) ; if (tmp266) { /* tmp265 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp267 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp263) ; tmp268 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp264 ; arg2 = tmp268 ; goto __ats_lab_loop_66 ; // tail call break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: break ; } while (0) ; return /* (tmp262) */ ; } /* end of [loop_66] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 22885(line=1219, offs=3) -- 23285(line=1246, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp261) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist: /* tmp261 = */ loop_66 (arg0, arg1, 0) ; return /* (tmp261) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 23365(line=1252, offs=3) -- 23453(line=1258, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_arg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_int_type, tmp271) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_arg: tmp270 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp270)->tag != 2) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 23390(line=1254, offs=5) -- 23420(line=1254, offs=35)") ; } tmp271 = ats_caselptrlab_mac(anairiats_sum_3, tmp270, atslab_0) ; /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarg (arg0, tmp271) ; return /* (tmp269) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_arg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 23537(line=1264, offs=3) -- 23627(line=1270, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argref (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_int_type, tmp274) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argref: tmp273 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp273)->tag != 3) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 23562(line=1266, offs=5) -- 23594(line=1266, offs=37)") ; } tmp274 = ats_caselptrlab_mac(anairiats_sum_3, tmp273, atslab_0) ; /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funarg (arg0, tmp274) ; return /* (tmp272) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 23714(line=1276, offs=3) -- 23818(line=1282, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argenv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_int_type, tmp277) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argenv: tmp276 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp276)->tag != 4) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 23739(line=1278, offs=5) -- 23774(line=1278, offs=40)") ; } tmp277 = ats_caselptrlab_mac(anairiats_sum_3, tmp276, atslab_0) ; /* tmp275 = */ atspre_fprintf_exn (arg0, ATSstrcst("env%i"), tmp277) ; return /* (tmp275) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_argenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 23902(line=1288, offs=3) -- 23994(line=1294, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmp: tmp279 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp279)->tag != 0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 23927(line=1290, offs=5) -- 23959(line=1290, offs=37)") ; } tmp280 = ats_caselptrlab_mac(anairiats_sum_2, tmp279, atslab_0) ; /* tmp278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp280) ; return /* (tmp278) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 24057(line=1298, offs=3) -- 24152(line=1304, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmpref (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmpref: tmp282 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp282)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 24082(line=1300, offs=5) -- 24117(line=1300, offs=40)") ; } tmp283 = ats_caselptrlab_mac(anairiats_sum_2, tmp282, atslab_0) ; /* tmp281 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp283) ; return /* (tmp281) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_tmpref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 24230(line=1310, offs=3) -- 24317(line=1317, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2env (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2env: tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (arg1) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2var_env (arg0, tmp285) ; return /* (tmp284) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2env] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 24372(line=1321, offs=3) -- 24737(line=1341, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2var_env (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; // ATSlocal_void (tmp289) ; // ATSlocal_void (tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2var_env: tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funent_varbindmap_find (arg1) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (tmp287 == (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp288 = ats_caselptrlab_mac(anairiats_sum_4, tmp287, atslab_0) ; ATS_FREE(tmp287) ; /* tmp286 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp288) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (tmp287 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: /* tmp289 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVenv(")) ; tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg1) ; /* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_symbol (arg0, tmp291) ; /* tmp286 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; break ; } while (0) ; return /* (tmp286) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2var_env] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 24844(line=1351, offs=5) -- 25208(line=1374, offs=4) */ ATSstaticdec() ats_int_type auxlst_75 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; // ATSlocal_void (tmp296) ; ATSlocal (ats_bool_type, tmp297) ; // ATSlocal_void (tmp298) ; ATSlocal (ats_int_type, tmp299) ; __ats_lab_auxlst_75: do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp293 = arg2 ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: tmp294 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp297 = atspre_gt_int_int (arg2, 0) ; if (tmp297) { /* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp298 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2env (arg0, tmp294) ; tmp299 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp295 ; arg2 = tmp299 ; goto __ats_lab_auxlst_75 ; // tail call break ; } while (0) ; return (tmp293) ; } /* end of [auxlst_75] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 24811(line=1347, offs=1) -- 25264(line=1378, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2envlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp292) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2envlst: tmp292 = auxlst_75 (arg0, arg1, arg2) ; return (tmp292) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2envlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 25342(line=1384, offs=3) -- 25437(line=1390, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_env (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_env: tmp301 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp301)->tag != 7) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 25367(line=1386, offs=5) -- 25399(line=1386, offs=37)") ; } tmp302 = ats_caselptrlab_mac(anairiats_sum_2, tmp301, atslab_0) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2var_env (arg0, tmp302) ; return /* (tmp300) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_env] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 25523(line=1396, offs=3) -- 25614(line=1402, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_d2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_d2cst: tmp304 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp304)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 25548(line=1398, offs=5) -- 25580(line=1398, offs=37)") ; } tmp305 = ats_caselptrlab_mac(anairiats_sum_2, tmp304, atslab_0) ; /* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, tmp305) ; return /* (tmp303) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 25700(line=1408, offs=3) -- 26085(line=1428, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_castfn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; // ATSlocal_void (tmp313) ; // ATSlocal_void (tmp314) ; // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_castfn: tmp307 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_type) ; tmp308 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp308)->tag != 22) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 25754(line=1411, offs=5) -- 25796(line=1412, offs=33)") ; } tmp309 = ats_caselptrlab_mac(anairiats_sum_7, tmp308, atslab_0) ; tmp310 = ats_caselptrlab_mac(anairiats_sum_7, tmp308, atslab_1) ; /* tmp311 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVcastfn(")) ; /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_d2cst (arg0, tmp309) ; /* tmp313 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp307) ; /* tmp315 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp310) ; /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp306) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_castfn] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 26171(line=1434, offs=3) -- 26273(line=1440, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof: tmp318 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp318)->tag != 27) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 26196(line=1436, offs=5) -- 26230(line=1436, offs=39)") ; } tmp319 = ats_caselptrlab_mac(anairiats_sum_2, tmp318, atslab_0) ; /* tmp317 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof2 (arg0, tmp319) ; return /* (tmp317) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 26362(line=1446, offs=5) -- 26481(line=1451, offs=2) */ ATSstaticdec() ats_bool_type testselptr0_81 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; __ats_lab_testselptr0_81: tmp322 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_primval_node) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp322)->tag != 26) { goto __ats_lab_84_0 ; } tmp323 = ats_caselptrlab_mac(anairiats_sum_12, tmp322, atslab_2) ; if (tmp323 != (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp321 = ats_true_bool ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: __ats_lab_84_1: tmp321 = ats_false_bool ; break ; } while (0) ; return (tmp321) ; } /* end of [testselptr0_81] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 26338(line=1444, offs=3) -- 27008(line=1479, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp320) ; ATSlocal (ats_bool_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_bool_type, tmp327) ; ATSlocal (ats_bool_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; // ATSlocal_void (tmp330) ; // ATSlocal_void (tmp331) ; // ATSlocal_void (tmp332) ; // ATSlocal_void (tmp333) ; // ATSlocal_void (tmp334) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof2: tmp324 = testselptr0_81 (arg1) ; if (tmp324) { tmp325 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp325)->tag != 26) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 26547(line=1459, offs=5) -- 26591(line=1459, offs=49)") ; } tmp326 = ats_caselptrlab_mac(anairiats_sum_12, tmp325, atslab_0) ; /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp326) ; } else { tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_void (arg1) ; tmp329 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_type) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyarr (tmp329) ; /* tmp330 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVptrof")) ; if (tmp327) { /* tmp331 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("_void")) ; } else { /* empty */ } /* end of [if] */ /* tmp332 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_LPAREN (arg0) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; if (tmp328) { /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("[0]")) ; } else { /* empty */ } /* end of [if] */ /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; } /* end of [if] */ return /* (tmp320) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4) */ ATSstaticdec() ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp340) ; __ats_lab_list_is_nil_01294_: do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp340 = ats_false_bool ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: tmp340 = ats_true_bool ; break ; } while (0) ; return (tmp340) ; } /* end of [list_is_nil_01294_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 27095(line=1485, offs=3) -- 27359(line=1502, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_vararg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; ATSlocal (ats_bool_type, tmp339) ; // ATSlocal_void (tmp341) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_vararg: tmp336 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp336)->tag != 29) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 27128(line=1489, offs=1) -- 27163(line=1489, offs=36)") ; } tmp337 = ats_caselptrlab_mac(anairiats_sum_2, tmp336, atslab_0) ; tmp339 = list_is_nil_01294_ (tmp337) ; if (tmp339) { /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVvararg0(")) ; } else { /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVvararg1(")) ; } /* end of [if] */ /* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist (arg0, tmp337) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp335) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_vararg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 27449(line=1508, offs=3) -- 27832(line=1535, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_refarg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_int_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; // ATSlocal_void (tmp346) ; ATSlocal (ats_bool_type, tmp347) ; // ATSlocal_void (tmp348) ; ATSlocal (ats_bool_type, tmp349) ; // ATSlocal_void (tmp350) ; ATSlocal (ats_bool_type, tmp351) ; // ATSlocal_void (tmp352) ; ATSlocal (ats_bool_type, tmp353) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_refarg: tmp343 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp343)->tag != 30) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 27475(line=1511, offs=1) -- 27524(line=1512, offs=40)") ; } tmp344 = ats_caselptrlab_mac(anairiats_sum_13, tmp343, atslab_0) ; tmp345 = ats_caselptrlab_mac(anairiats_sum_13, tmp343, atslab_2) ; tmp347 = atspre_eq_int_int (tmp344, 0) ; if (tmp347) { /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVrefarg0(")) ; } else { /* empty */ } /* end of [if] */ tmp349 = atspre_gt_int_int (tmp344, 0) ; if (tmp349) { /* tmp348 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVrefarg1(")) ; } else { /* empty */ } /* end of [if] */ tmp351 = atspre_eq_int_int (tmp344, 0) ; if (tmp351) { /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp345) ; } else { /* empty */ } /* end of [if] */ tmp353 = atspre_gt_int_int (tmp344, 0) ; if (tmp353) { /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrof2 (arg0, tmp345) ; } else { /* empty */ } /* end of [if] */ /* tmp342 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp342) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_refarg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 27919(line=1541, offs=3) -- 28569(line=1583, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_funlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_bool_type, tmp357) ; // ATSlocal_void (tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; // ATSlocal_void (tmp362) ; // ATSlocal_void (tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_funlab: tmp355 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp355)->tag != 31) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 27944(line=1543, offs=5) -- 27982(line=1544, offs=29)") ; } tmp356 = ats_caselptrlab_mac(anairiats_sum_2, tmp355, atslab_0) ; tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_is_envful (tmp356) ; if (tmp357) { tmp359 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_loc) ; /* tmp360 = */ prerr_errccomp_loc_02200_ (tmp359) ; /* tmp361 = */ atspre_prerr_string (ATSstrcst(": the function is expected to be envless but it is not.")) ; /* tmp358 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ if (tmp357) { /* tmp362 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSERRORnotenvless(")) ; } else { /* empty */ } /* end of [if] */ /* tmp363 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVfunlab(")) ; /* tmp364 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp356) ; /* tmp365 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; if (tmp357) { /* tmp354 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp354) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_funlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 28657(line=1589, offs=3) -- 29190(line=1616, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_cfunlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_int_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; // ATSlocal_void (tmp373) ; // ATSlocal_void (tmp374) ; // ATSlocal_void (tmp375) ; // ATSlocal_void (tmp376) ; // ATSlocal_void (tmp377) ; ATSlocal (ats_int_type, tmp378) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_cfunlab: tmp367 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp367)->tag != 32) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 28682(line=1591, offs=5) -- 28726(line=1592, offs=34)") ; } tmp368 = ats_caselptrlab_mac(anairiats_sum_14, tmp367, atslab_0) ; tmp369 = ats_caselptrlab_mac(anairiats_sum_14, tmp367, atslab_1) ; tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp369) ; do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (tmp370 != (ats_sum_ptr_type)0) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp371 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: // if (tmp370 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_88_1: tmp372 = ats_caselptrlab_mac(anairiats_sum_4, tmp370, atslab_0) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (tmp372) ; break ; } while (0) ; /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVcfunlab(")) ; /* tmp374 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, tmp368) ; /* tmp375 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp376 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp369) ; /* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", (")) ; tmp378 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2envlst (arg0, tmp371, 0) ; /* tmp366 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("))")) ; return /* (tmp366) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_cfunlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 29257(line=1623, offs=1) -- 29530(line=1640, offs=4) */ ATSstaticdec() ats_void_type auxmain_87 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp379) ; // ATSlocal_void (tmp380) ; // ATSlocal_void (tmp381) ; // ATSlocal_void (tmp382) ; // ATSlocal_void (tmp383) ; __ats_lab_auxmain_87: /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSderef(")) ; /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp382 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp383 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, arg2) ; /* tmp379 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp379) */ ; } /* end of [auxmain_87] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 29607(line=1646, offs=3) -- 29757(line=1653, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval_deref: tmp385 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; do { /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp385)->tag != 27) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp386 = ats_caselptrlab_mac(anairiats_sum_2, tmp385, atslab_0) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp386) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: __ats_lab_90_1: /* tmp384 = */ auxmain_87 (arg0, arg1, arg2) ; break ; } while (0) ; return /* (tmp384) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval_deref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 29863(line=1661, offs=3) -- 30021(line=1669, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_err (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp387) ; // ATSlocal_void (tmp388) ; // ATSlocal_void (tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_err: /* tmp388 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("PMVerr(\"")) ; tmp390 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_loc) ; /* tmp389 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_location (arg0, tmp390) ; /* tmp387 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\")")) ; return /* (tmp387) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_err] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 30499(line=1700, offs=3) -- 30814(line=1715, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primlab (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; // ATSlocal_void (tmp395) ; // ATSlocal_void (tmp396) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primlab: tmp392 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg2), atslab_primlab_node) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp392)->tag != 0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp393 = ats_caselptrlab_mac(anairiats_sum_2, tmp392, atslab_0) ; /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext (arg0, arg1, tmp393) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (((ats_sum_ptr_type)tmp392)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: tmp394 = ats_caselptrlab_mac(anairiats_sum_2, tmp392, atslab_0) ; /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("[")) ; /* tmp396 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primvalist (arg0, tmp394) ; /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("]")) ; break ; } while (0) ; return /* (tmp391) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 31446(line=1744, offs=3) -- 31779(line=1765, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_move_val (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp397) ; ATSlocal (ats_bool_type, tmp398) ; // ATSlocal_void (tmp399) ; // ATSlocal_void (tmp400) ; // ATSlocal_void (tmp401) ; // ATSlocal_void (tmp402) ; // ATSlocal_void (tmp403) ; // ATSlocal_void (tmp404) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_move_val: tmp398 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_void (arg2) ; /* tmp399 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove")) ; if (tmp398) { /* tmp400 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("_void")) ; } else { /* empty */ } /* end of [if] */ /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp402 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp403 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp404 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg2) ; /* tmp397 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; return /* (tmp397) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_move_val] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 31968(line=1778, offs=3) -- 32276(line=1791, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_pmove_val (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp405) ; // ATSlocal_void (tmp406) ; // ATSlocal_void (tmp407) ; // ATSlocal_void (tmp408) ; // ATSlocal_void (tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; // ATSlocal_void (tmp411) ; // ATSlocal_void (tmp412) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_pmove_val: /* tmp406 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSpmove(")) ; /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp408 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; tmp410 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg2), atslab_primval_type) ; /* tmp409 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp410) ; /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp412 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg2) ; /* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; return /* (tmp405) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_pmove_val] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 32477(line=1804, offs=3) -- 32741(line=1819, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_move_ptralloc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp413) ; // ATSlocal_void (tmp414) ; // ATSlocal_void (tmp415) ; // ATSlocal_void (tmp416) ; // ATSlocal_void (tmp417) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_move_ptralloc: /* tmp414 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_ptralloc(")) ; /* tmp415 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp416 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp417 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, arg2) ; /* tmp413 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; return /* (tmp413) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_move_ptralloc] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50559(line=1787, offs=18) -- 50622(line=1789, offs=4) */ ATSstaticdec() ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp492) ; __ats_lab_list_is_cons_01295_: do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp492 = ats_true_bool ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_106_1: tmp492 = ats_false_bool ; break ; } while (0) ; return (tmp492) ; } /* end of [list_is_cons_01295_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02194_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp640) ; // ATSlocal_void (tmp641) ; // ATSlocal_void (tmp642) ; // ATSlocal_void (tmp643) ; __ats_lab_prerr_interror_loc_02194_: /* tmp641 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp642 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp643 = */ prerr_FILENAME_02192_ () ; /* tmp640 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp640) */ ; } /* end of [prerr_interror_loc_02194_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 32820(line=1825, offs=3) -- 44137(line=2246, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; // ATSlocal_void (tmp420) ; // ATSlocal_void (tmp421) ; // ATSlocal_void (tmp422) ; // ATSlocal_void (tmp423) ; ATSlocal (ats_int_type, tmp424) ; // ATSlocal_void (tmp425) ; ATSlocal (ats_bool_type, tmp426) ; ATSlocal (ats_int_type, tmp427) ; // ATSlocal_void (tmp428) ; ATSlocal (ats_bool_type, tmp429) ; // ATSlocal_void (tmp430) ; // ATSlocal_void (tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; // ATSlocal_void (tmp434) ; // ATSlocal_void (tmp435) ; // ATSlocal_void (tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; // ATSlocal_void (tmp438) ; // ATSlocal_void (tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; // ATSlocal_void (tmp441) ; // ATSlocal_void (tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; // ATSlocal_void (tmp450) ; // ATSlocal_void (tmp451) ; // ATSlocal_void (tmp452) ; // ATSlocal_void (tmp453) ; // ATSlocal_void (tmp454) ; // ATSlocal_void (tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; // ATSlocal_void (tmp457) ; // ATSlocal_void (tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; // ATSlocal_void (tmp467) ; // ATSlocal_void (tmp468) ; // ATSlocal_void (tmp469) ; // ATSlocal_void (tmp470) ; // ATSlocal_void (tmp471) ; // ATSlocal_void (tmp472) ; // ATSlocal_void (tmp473) ; // ATSlocal_void (tmp474) ; // ATSlocal_void (tmp475) ; // ATSlocal_void (tmp476) ; // ATSlocal_void (tmp477) ; // ATSlocal_void (tmp478) ; // ATSlocal_void (tmp479) ; // ATSlocal_void (tmp480) ; // ATSlocal_void (tmp481) ; // ATSlocal_void (tmp482) ; // ATSlocal_void (tmp483) ; // ATSlocal_void (tmp484) ; // ATSlocal_void (tmp485) ; // ATSlocal_void (tmp486) ; // ATSlocal_void (tmp487) ; // ATSlocal_void (tmp488) ; // ATSlocal_void (tmp489) ; // ATSlocal_void (tmp490) ; ATSlocal (ats_bool_type, tmp491) ; // ATSlocal_void (tmp493) ; // ATSlocal_void (tmp494) ; // ATSlocal_void (tmp495) ; // ATSlocal_void (tmp496) ; // ATSlocal_void (tmp497) ; // ATSlocal_void (tmp498) ; // ATSlocal_void (tmp499) ; // ATSlocal_void (tmp500) ; // ATSlocal_void (tmp501) ; // ATSlocal_void (tmp502) ; // ATSlocal_void (tmp503) ; // ATSlocal_void (tmp504) ; // ATSlocal_void (tmp505) ; // ATSlocal_void (tmp506) ; ATSlocal (ats_int_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; // ATSlocal_void (tmp509) ; ATSlocal (ats_bool_type, tmp510) ; // ATSlocal_void (tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; // ATSlocal_void (tmp513) ; // ATSlocal_void (tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; // ATSlocal_void (tmp518) ; // ATSlocal_void (tmp519) ; // ATSlocal_void (tmp520) ; // ATSlocal_void (tmp521) ; // ATSlocal_void (tmp522) ; // ATSlocal_void (tmp523) ; // ATSlocal_void (tmp524) ; // ATSlocal_void (tmp525) ; // ATSlocal_void (tmp526) ; // ATSlocal_void (tmp527) ; // ATSlocal_void (tmp528) ; // ATSlocal_void (tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; // ATSlocal_void (tmp531) ; // ATSlocal_void (tmp532) ; // ATSlocal_void (tmp533) ; // ATSlocal_void (tmp534) ; // ATSlocal_void (tmp535) ; // ATSlocal_void (tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; // ATSlocal_void (tmp538) ; // ATSlocal_void (tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; // ATSlocal_void (tmp541) ; // ATSlocal_void (tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; // ATSlocal_void (tmp545) ; // ATSlocal_void (tmp546) ; // ATSlocal_void (tmp547) ; // ATSlocal_void (tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; // ATSlocal_void (tmp552) ; // ATSlocal_void (tmp553) ; // ATSlocal_void (tmp554) ; // ATSlocal_void (tmp555) ; // ATSlocal_void (tmp556) ; // ATSlocal_void (tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_ptr_type, tmp560) ; // ATSlocal_void (tmp561) ; // ATSlocal_void (tmp562) ; // ATSlocal_void (tmp563) ; // ATSlocal_void (tmp564) ; // ATSlocal_void (tmp565) ; // ATSlocal_void (tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; // ATSlocal_void (tmp569) ; // ATSlocal_void (tmp570) ; // ATSlocal_void (tmp571) ; // ATSlocal_void (tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_int_type, tmp574) ; // ATSlocal_void (tmp575) ; // ATSlocal_void (tmp576) ; // ATSlocal_void (tmp577) ; // ATSlocal_void (tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_int_type, tmp581) ; // ATSlocal_void (tmp582) ; // ATSlocal_void (tmp583) ; // ATSlocal_void (tmp584) ; // ATSlocal_void (tmp585) ; // ATSlocal_void (tmp586) ; // ATSlocal_void (tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; // ATSlocal_void (tmp590) ; // ATSlocal_void (tmp591) ; // ATSlocal_void (tmp592) ; // ATSlocal_void (tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; // ATSlocal_void (tmp596) ; // ATSlocal_void (tmp597) ; // ATSlocal_void (tmp598) ; // ATSlocal_void (tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; // ATSlocal_void (tmp605) ; // ATSlocal_void (tmp606) ; // ATSlocal_void (tmp607) ; // ATSlocal_void (tmp608) ; // ATSlocal_void (tmp609) ; // ATSlocal_void (tmp610) ; // ATSlocal_void (tmp611) ; // ATSlocal_void (tmp612) ; // ATSlocal_void (tmp613) ; // ATSlocal_void (tmp614) ; // ATSlocal_void (tmp615) ; ATSlocal (ats_int_type, tmp616) ; // ATSlocal_void (tmp617) ; ATSlocal (ats_ptr_type, tmp618) ; // ATSlocal_void (tmp619) ; // ATSlocal_void (tmp620) ; // ATSlocal_void (tmp621) ; // ATSlocal_void (tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; // ATSlocal_void (tmp625) ; // ATSlocal_void (tmp626) ; // ATSlocal_void (tmp627) ; // ATSlocal_void (tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp630) ; // ATSlocal_void (tmp631) ; // ATSlocal_void (tmp632) ; // ATSlocal_void (tmp633) ; // ATSlocal_void (tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; // ATSlocal_void (tmp636) ; // ATSlocal_void (tmp637) ; // ATSlocal_void (tmp638) ; // ATSlocal_void (tmp639) ; // ATSlocal_void (tmp644) ; // ATSlocal_void (tmp645) ; // ATSlocal_void (tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr: tmp419 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_instr_loc) ; /* tmp420 = */ atspre_fprint_string (arg0, ATSstrcst("/*\n")) ; /* tmp421 = */ atspre_fprint_string (arg0, ATSstrcst("emit_instr: loc0 = ")) ; /* tmp422 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint2_location (arg0, tmp419) ; /* tmp423 = */ atspre_fprint_string (arg0, ATSstrcst("\n*/\n")) ; tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_get () ; tmp426 = atspre_gt_int_int (tmp424, 0) ; if (tmp426) { /* tmp425 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_line_pragma (arg0, tmp419) ; } else { /* empty */ } /* end of [if] */ tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_get () ; tmp429 = atspre_gt_int_int (tmp427, 0) ; if (tmp429) { /* tmp430 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/* ")) ; /* tmp431 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr (arg0, arg1) ; /* tmp428 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" */\n")) ; } else { /* empty */ } /* end of [if] */ tmp432 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_instr_node) ; do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp432)->tag != 0) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp433 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp434 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSflab(")) ; /* tmp435 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__patsflab_")) ; /* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit2_funlab (arg0, tmp433) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("):")) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp432)->tag != 1) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp437 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp438 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSlab(")) ; /* tmp439 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp437) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("):")) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp432)->tag != 2) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp440 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp441 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp440) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/")) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp432)->tag != 3) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp443 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_0) ; tmp444 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_1) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_move_val (arg0, tmp443, tmp444) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp432)->tag != 4) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp445 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_0) ; tmp446 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_1) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_pmove_val (arg0, tmp445, tmp446) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp432)->tag != 6) { goto __ats_lab_99_0 ; } __ats_lab_98_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall (arg0, arg1) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp432)->tag != 7) { goto __ats_lab_100_0 ; } __ats_lab_99_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_fcall2 (arg0, arg1) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp432)->tag != 8) { goto __ats_lab_101_0 ; } __ats_lab_100_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extfcall (arg0, arg1) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp432)->tag != 9) { goto __ats_lab_102_0 ; } __ats_lab_101_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_extmcall (arg0, arg1) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp432)->tag != 10) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp447 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_0) ; tmp448 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_1) ; tmp449 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_2) ; /* tmp450 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSif(\n")) ; /* tmp451 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp447) ; /* tmp452 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n) ATSthen() {\n")) ; /* tmp453 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst (arg0, tmp448) ; /* tmp454 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n} ATSelse() {\n")) ; /* tmp455 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst (arg0, tmp449) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n} /* ATSendif */")) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp432)->tag != 11) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp456 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp457 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSfreecon(")) ; /* tmp458 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp456) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp432)->tag != 12) { goto __ats_lab_107_0 ; } __ats_lab_104_1: tmp459 = ats_caselptrlab_mac(anairiats_sum_17, tmp432, atslab_0) ; tmp460 = ats_caselptrlab_mac(anairiats_sum_17, tmp432, atslab_1) ; tmp461 = ats_caselptrlab_mac(anairiats_sum_17, tmp432, atslab_2) ; tmp462 = ats_caselptrlab_mac(anairiats_sum_17, tmp432, atslab_3) ; tmp463 = ats_caselptrlab_mac(anairiats_sum_17, tmp432, atslab_4) ; tmp464 = ats_caselptrlab_mac(anairiats_sum_17, tmp432, atslab_5) ; tmp465 = ats_caselptrlab_mac(anairiats_sum_17, tmp432, atslab_6) ; tmp466 = ats_caselptrlab_mac(anairiats_sum_17, tmp432, atslab_7) ; /* tmp467 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp468 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** loop-init(beg)\n")) ; /* tmp469 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp470 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst (arg0, tmp462) ; /* tmp471 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; /* tmp472 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** loop-init(end)\n")) ; /* tmp474 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp475 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSloop_open(")) ; /* tmp476 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp459) ; /* tmp477 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp478 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp460) ; /* tmp479 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp480 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp461) ; /* tmp481 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")\n")) ; /* tmp482 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst (arg0, tmp464) ; /* tmp483 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; /* tmp484 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSif(")) ; /* tmp485 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSCKnot(")) ; /* tmp486 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp463) ; /* tmp487 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")) ATSbreak() ;")) ; /* tmp488 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; /* tmp489 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst (arg0, tmp466) ; /* tmp490 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; tmp491 = list_is_cons_01295_ (tmp465) ; if (tmp491) { /* tmp494 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp495 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("** continue after post-update\n")) ; /* tmp496 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; /* tmp497 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp461) ; /* tmp498 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(":\n")) ; /* tmp499 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst (arg0, tmp465) ; /* tmp493 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; } else { /* empty */ } /* end of [if] */ /* tmp500 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSloop_close(")) ; /* tmp501 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp459) ; /* tmp502 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp503 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp460) ; /* tmp504 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp505 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp461) ; /* tmp506 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp432)->tag != 13) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp507 = ats_caselptrlab_mac(anairiats_sum_14, tmp432, atslab_0) ; tmp508 = ats_caselptrlab_mac(anairiats_sum_14, tmp432, atslab_1) ; tmp510 = atspre_eq_int_int (tmp507, 0) ; if (tmp510) { /* tmp509 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSbreak2(")) ; } else { /* tmp509 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATScontinue2(")) ; } /* end of [if] */ /* tmp511 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmplab (arg0, tmp508) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp432)->tag != 14) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp512 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp513 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATScaseof_beg()\n")) ; /* tmp514 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ibranchlst (arg0, tmp512) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATScaseof_end()\n")) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp432)->tag != 28) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp515 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_0) ; tmp516 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_1) ; tmp517 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_2) ; /* tmp518 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATStrywith_try(")) ; /* tmp519 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp515) ; /* tmp520 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")\n")) ; /* tmp521 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln (arg0, tmp516) ; /* tmp522 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATStrywith_with(")) ; /* tmp523 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp515) ; /* tmp524 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")\n")) ; /* tmp525 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATScaseof_beg()\n")) ; /* tmp526 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ibranchlst (arg0, tmp517) ; /* tmp527 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATScaseof_end()\n")) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATStrywith_end()")) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp432)->tag != 15) { goto __ats_lab_111_0 ; } __ats_lab_110_1: /* tmp528 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp529 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr (arg0, arg1) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/")) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp432)->tag != 16) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp530 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp531 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp532 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("letpush(beg)")) ; /* tmp533 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; /* tmp534 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primdeclst (arg0, tmp530) ; /* tmp535 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp536 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("letpush(end)")) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/\n")) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp432)->tag != 17) { goto __ats_lab_113_0 ; } __ats_lab_112_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_con (arg0, arg1) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp432)->tag != 20) { goto __ats_lab_114_0 ; } __ats_lab_113_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_rec (arg0, arg1) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp432)->tag != 19) { goto __ats_lab_115_0 ; } __ats_lab_114_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_rec (arg0, arg1) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp432)->tag != 21) { goto __ats_lab_116_0 ; } __ats_lab_115_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr_patck (arg0, arg1) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp432)->tag != 23) { goto __ats_lab_117_0 ; } __ats_lab_116_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_store_ptrofs (arg0, arg1) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp432)->tag != 24) { goto __ats_lab_118_0 ; } __ats_lab_117_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_xstore_ptrofs (arg0, arg1) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp432)->tag != 25) { goto __ats_lab_119_0 ; } __ats_lab_118_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_raise (arg0, arg1) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp432)->tag != 26) { goto __ats_lab_120_0 ; } __ats_lab_119_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_delay (arg0, arg1) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp432)->tag != 27) { goto __ats_lab_121_0 ; } __ats_lab_120_1: /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_lazyeval (arg0, arg1) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp432)->tag != 29) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp537 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp538 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_list_nil(")) ; /* tmp539 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp537) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp432)->tag != 30) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp540 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp541 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSpmove_list_nil(")) ; /* tmp542 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp540) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp432)->tag != 31) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp543 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_0) ; tmp544 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_1) ; /* tmp545 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSpmove_list_cons(")) ; /* tmp546 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp543) ; /* tmp547 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp548 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp544) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp432)->tag != 32) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp549 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_0) ; tmp550 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_1) ; tmp551 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_2) ; /* tmp552 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_list_phead(")) ; /* tmp553 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp549) ; /* tmp554 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp550) ; /* tmp556 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp557 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp551) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp432)->tag != 33) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp558 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_0) ; tmp559 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_1) ; tmp560 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_2) ; /* tmp561 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_list_ptail(")) ; /* tmp562 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp558) ; /* tmp563 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp564 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp559) ; /* tmp565 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp566 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp560) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp432)->tag != 34) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp567 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_0) ; tmp568 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_1) ; /* tmp569 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_arrpsz_ptr(")) ; /* tmp570 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp567) ; /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp572 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp568) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp432)->tag != 35) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp573 = ats_caselptrlab_mac(anairiats_sum_18, tmp432, atslab_0) ; tmp574 = ats_caselptrlab_mac(anairiats_sum_18, tmp432, atslab_1) ; /* tmp575 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSstore_arrpsz_asz(")) ; /* tmp576 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp573) ; /* tmp577 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp578 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, tmp574) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp432)->tag != 36) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp579 = ats_caselptrlab_mac(anairiats_sum_19, tmp432, atslab_0) ; tmp580 = ats_caselptrlab_mac(anairiats_sum_19, tmp432, atslab_1) ; tmp581 = ats_caselptrlab_mac(anairiats_sum_19, tmp432, atslab_2) ; /* tmp582 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSstore_arrpsz_ptr(")) ; /* tmp583 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp579) ; /* tmp584 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp585 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp580) ; /* tmp586 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp587 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, tmp581) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp432)->tag != 37) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp588 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_0) ; tmp589 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_1) ; /* tmp590 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSupdate_ptrinc(")) ; /* tmp591 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp588) ; /* tmp592 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp593 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp589) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp432)->tag != 38) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp594 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_0) ; tmp595 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_1) ; /* tmp596 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSupdate_ptrdec(")) ; /* tmp597 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp594) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp599 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp595) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp432)->tag != 39) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp600 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_0) ; tmp601 = ats_caselptrlab_mac(anairiats_sum_12, tmp432, atslab_2) ; tmp602 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp601) ; if (tmp602 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 42085(line=2169, offs=9) -- 42128(line=2170, offs=31)") ; } tmp603 = ats_caselptrlab_mac(anairiats_sum_4, tmp602, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (tmp603) ; /* tmp605 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSclosure_initize(")) ; /* tmp606 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp601) ; /* tmp607 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp608 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp609 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp610 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp601) ; /* tmp611 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("__closure_t0ype*)")) ; /* tmp612 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp613 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("&")) ; /* tmp614 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp600) ; /* tmp615 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; tmp616 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2envlst (arg0, tmp604, 1) ; /* tmp617 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp432)->tag != 40) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp618 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp619 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp620 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINStmpdec(")) ; /* tmp621 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp618) ; /* tmp622 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n*/")) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp432)->tag != 41) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp623 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_0) ; tmp624 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_1) ; /* tmp625 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSextvar_assign(")) ; /* tmp626 = */ atspre_fprintf_exn (arg0, ATSstrcst("ATSPMVextval(%s)"), tmp623) ; /* tmp627 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp628 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp624) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp432)->tag != 42) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp629 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_0) ; tmp630 = ats_caselptrlab_mac(anairiats_sum_7, tmp432, atslab_1) ; /* tmp631 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSdyncst_valbind(")) ; /* tmp632 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2cst (arg0, tmp629) ; /* tmp633 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp634 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp630) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp432)->tag != 43) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp635 = ats_caselptrlab_mac(anairiats_sum_2, tmp432, atslab_0) ; /* tmp636 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("// ")) ; /* tmp637 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("$tempenver(")) ; /* tmp638 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst (arg0, tmp635) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: __ats_lab_136_1: /* tmp639 = */ prerr_interror_loc_02194_ (tmp419) ; /* tmp644 = */ atspre_prerr_string (ATSstrcst(": pats_ccomp_emit: emit_instr: ins = ")) ; /* tmp645 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_instr (arg1) ; /* tmp646 = */ atspre_prerr_newline () ; tmp647 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 44079(line=2244, offs=22) -- 44095(line=2244, offs=38)", ATSstrcst("\n")) ; /* tmp418 = */ atspre_assert_errmsg (ats_false_bool, tmp647) ; break ; } while (0) ; return /* (tmp418) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 44234(line=2254, offs=5) -- 44709(line=2278, offs=4) */ ATSstaticdec() ats_void_type loop_98 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; // ATSlocal_void (tmp652) ; ATSlocal (ats_bool_type, tmp653) ; // ATSlocal_void (tmp654) ; ATSlocal (ats_int_type, tmp655) ; ATSlocal (ats_bool_type, tmp656) ; __ats_lab_loop_98: do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp650 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp651 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp653 = atspre_gt_int_int (arg3, 0) ; if (tmp653) { /* tmp652 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, arg2) ; } else { /* empty */ } /* end of [if] */ /* tmp654 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instr (arg0, tmp650) ; tmp655 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp651 ; arg2 = arg2 ; arg3 = tmp655 ; goto __ats_lab_loop_98 ; // tail call break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: tmp656 = atspre_eq_int_int (arg3, 0) ; if (tmp656) { /* tmp649 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/* (*nothing*) */")) ; } else { /* empty */ } /* end of [if] */ break ; } while (0) ; return /* (tmp649) */ ; } /* end of [loop_98] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 44209(line=2252, offs=3) -- 44764(line=2282, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp648) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst: /* tmp648 = */ loop_98 (arg0, arg1, ATSstrcst("\n"), 0) ; return /* (tmp648) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 44825(line=2286, offs=3) -- 44930(line=2290, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp657) ; // ATSlocal_void (tmp658) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln: /* tmp658 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst (arg0, arg1) ; /* tmp657 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n")) ; return /* (tmp657) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_instrlst_ln] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 44993(line=2296, offs=5) -- 45593(line=2327, offs=4) */ ATSstaticdec() ats_void_type auxcon0_100 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp659) ; ATSlocal (ats_bool_type, tmp660) ; // ATSlocal_void (tmp661) ; // ATSlocal_void (tmp662) ; ATSlocal (ats_int_type, tmp663) ; // ATSlocal_void (tmp664) ; // ATSlocal_void (tmp665) ; // ATSlocal_void (tmp666) ; // ATSlocal_void (tmp667) ; __ats_lab_auxcon0_100: tmp660 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listlike (arg2) ; if (tmp660) { /* tmp661 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_nil(")) ; /* tmp662 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp659 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; } else { tmp663 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag (arg2) ; /* tmp664 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_con0(")) ; /* tmp665 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp666 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp667 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, tmp663) ; /* tmp659 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; } /* end of [if] */ return /* (tmp659) */ ; } /* end of [auxcon0_100] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 45640(line=2331, offs=5) -- 46366(line=2365, offs=4) */ ATSstaticdec() ats_void_type auxtag_101 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp668) ; ATSlocal (ats_int_type, tmp669) ; ATSlocal (ats_bool_type, tmp670) ; ATSlocal (ats_bool_type, tmp671) ; ATSlocal (ats_int_type, tmp672) ; // ATSlocal_void (tmp673) ; ATSlocal (ats_bool_type, tmp674) ; // ATSlocal_void (tmp675) ; // ATSlocal_void (tmp676) ; // ATSlocal_void (tmp677) ; // ATSlocal_void (tmp678) ; // ATSlocal_void (tmp679) ; // ATSlocal_void (tmp680) ; // ATSlocal_void (tmp681) ; ATSlocal (ats_bool_type, tmp682) ; __ats_lab_auxtag_101: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: __ats_lab_139_1: tmp670 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listlike (arg2) ; if (!tmp670) { goto __ats_lab_140_1 ; } tmp669 = 0 ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: __ats_lab_140_1: tmp671 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_singular (arg2) ; if (!tmp671) { goto __ats_lab_141_1 ; } tmp669 = 0 ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: __ats_lab_141_1: tmp669 = 1 ; break ; } while (0) ; tmp672 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag (arg2) ; tmp674 = atspre_gt_int_int (tmp669, 0) ; if (tmp674) { /* tmp673 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("// ")) ; } else { /* empty */ } /* end of [if] */ /* tmp675 = */ atspre_fprintf_exn (arg0, ATSstrcst("#if(%i)\n"), tmp669) ; /* tmp676 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSstore_con1_tag(")) ; /* tmp677 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp678 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp679 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_int (arg0, tmp672) ; /* tmp680 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; tmp682 = atspre_gt_int_int (tmp669, 0) ; if (tmp682) { /* tmp681 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("// ")) ; } else { /* empty */ } /* end of [if] */ /* tmp668 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif\n")) ; return /* (tmp668) */ ; } /* end of [auxtag_101] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 46391(line=2367, offs=5) -- 47205(line=2400, offs=4) */ ATSstaticdec() ats_void_type auxarg_102 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; ATSlocal (ats_ptr_type, tmp685) ; ATSlocal (ats_ptr_type, tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_bool_type, tmp688) ; // ATSlocal_void (tmp689) ; // ATSlocal_void (tmp690) ; // ATSlocal_void (tmp691) ; // ATSlocal_void (tmp692) ; // ATSlocal_void (tmp693) ; // ATSlocal_void (tmp694) ; // ATSlocal_void (tmp695) ; // ATSlocal_void (tmp696) ; // ATSlocal_void (tmp697) ; // ATSlocal_void (tmp698) ; // ATSlocal_void (tmp699) ; __ats_lab_auxarg_102: do { /* branch: __ats_lab_142 */ __ats_lab_142_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_143_0 ; } __ats_lab_142_1: break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_143_1: tmp684 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp685 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ; // tmp686 = ats_caselptrlab_mac(anairiats_sum_6, tmp684, atslab_0) ; tmp687 = ats_caselptrlab_mac(anairiats_sum_6, tmp684, atslab_1) ; tmp688 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_top (tmp687) ; if (tmp688) { /* tmp689 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#if(0)\n")) ; } else { /* empty */ } /* end of [if] */ /* tmp690 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSstore_con1_ofs(")) ; /* tmp691 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp692 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp693 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, arg2) ; /* tmp694 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp695 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext (arg0, 0, tmp686) ; /* tmp696 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp697 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp687) ; /* tmp698 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; if (tmp688) { /* tmp699 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif\n")) ; } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp685 ; goto __ats_lab_auxarg_102 ; // tail call break ; } while (0) ; return /* (tmp683) */ ; } /* end of [auxarg_102] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 47230(line=2402, offs=5) -- 47927(line=2439, offs=4) */ ATSstaticdec() ats_void_type auxcon1_103 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp700) ; ATSlocal (ats_int_type, tmp701) ; ATSlocal (ats_bool_type, tmp702) ; // ATSlocal_void (tmp703) ; // ATSlocal_void (tmp704) ; // ATSlocal_void (tmp705) ; // ATSlocal_void (tmp706) ; // ATSlocal_void (tmp707) ; // ATSlocal_void (tmp708) ; // ATSlocal_void (tmp709) ; // ATSlocal_void (tmp710) ; // ATSlocal_void (tmp711) ; __ats_lab_auxcon1_103: tmp702 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_linear (arg2) ; if (tmp702) { tmp701 = 0 ; } else { tmp701 = 1 ; } /* end of [if] */ /* tmp703 = */ atspre_fprintf_exn (arg0, ATSstrcst("/*\n#LINCONSTATUS==%i\n*/\n"), tmp701) ; /* tmp704 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_con1_beg()\n")) ; /* tmp705 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_con1_new(")) ; /* tmp706 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp707 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp708 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, arg3) ; /* tmp709 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; /* tmp710 = */ auxtag_101 (arg0, arg1, arg2) ; /* tmp711 = */ auxarg_102 (arg0, arg1, arg3, arg4) ; /* tmp700 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_con1_end()")) ; return /* (tmp700) */ ; } /* end of [auxcon1_103] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 47974(line=2444, offs=1) -- 48239(line=2461, offs=4) */ ATSstaticdec() ats_void_type auxexn0_104 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp712) ; // ATSlocal_void (tmp713) ; // ATSlocal_void (tmp714) ; // ATSlocal_void (tmp715) ; // ATSlocal_void (tmp716) ; __ats_lab_auxexn0_104: /* tmp713 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_exn0(")) ; /* tmp714 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp715 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp716 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con (arg0, arg2) ; /* tmp712 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; return /* (tmp712) */ ; } /* end of [auxexn0_104] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 48265(line=2464, offs=1) -- 49159(line=2504, offs=4) */ ATSstaticdec() ats_void_type auxexn1_105 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp717) ; // ATSlocal_void (tmp718) ; // ATSlocal_void (tmp719) ; // ATSlocal_void (tmp720) ; // ATSlocal_void (tmp721) ; // ATSlocal_void (tmp722) ; // ATSlocal_void (tmp723) ; // ATSlocal_void (tmp724) ; // ATSlocal_void (tmp725) ; // ATSlocal_void (tmp726) ; // ATSlocal_void (tmp727) ; // ATSlocal_void (tmp728) ; // ATSlocal_void (tmp729) ; // ATSlocal_void (tmp730) ; // ATSlocal_void (tmp731) ; // ATSlocal_void (tmp732) ; // ATSlocal_void (tmp733) ; // ATSlocal_void (tmp734) ; __ats_lab_auxexn1_105: /* tmp718 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_exn1_beg()\n")) ; /* tmp719 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_exn1_new(")) ; /* tmp720 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp721 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp722 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, arg3) ; /* tmp723 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; /* tmp724 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSstore_exn1_tag(")) ; /* tmp725 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp726 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp727 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con (arg0, arg2) ; /* tmp728 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; /* tmp729 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSstore_exn1_msg(")) ; /* tmp730 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, arg1) ; /* tmp731 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp732 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_d2con (arg0, arg2) ; /* tmp733 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; /* tmp734 = */ auxarg_102 (arg0, arg1, arg3, arg4) ; /* tmp717 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_exn1_end()")) ; return /* (tmp717) */ ; } /* end of [auxexn1_105] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 49237(line=2510, offs=3) -- 49895(line=2540, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_con (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp735) ; ATSlocal (ats_ptr_type, tmp736) ; ATSlocal (ats_ptr_type, tmp737) ; ATSlocal (ats_ptr_type, tmp738) ; ATSlocal (ats_ptr_type, tmp739) ; ATSlocal (ats_ptr_type, tmp740) ; // ATSlocal_void (tmp741) ; ATSlocal (ats_bool_type, tmp742) ; ATSlocal (ats_bool_type, tmp743) ; ATSlocal (ats_bool_type, tmp744) ; // ATSlocal_void (tmp745) ; ATSlocal (ats_ptr_type, tmp746) ; // ATSlocal_void (tmp747) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_con: tmp736 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp736)->tag != 17) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 49262(line=2512, offs=6) -- 49317(line=2513, offs=44)") ; } tmp737 = ats_caselptrlab_mac(anairiats_sum_20, tmp736, atslab_0) ; tmp738 = ats_caselptrlab_mac(anairiats_sum_20, tmp736, atslab_1) ; tmp739 = ats_caselptrlab_mac(anairiats_sum_20, tmp736, atslab_2) ; tmp740 = ats_caselptrlab_mac(anairiats_sum_20, tmp736, atslab_3) ; /* tmp741 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; tmp742 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con (tmp738) ; tmp743 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_exn (tmp738) ; tmp744 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nullary (tmp738) ; if (tmp744) { if (tmp742) { /* tmp745 = */ auxcon0_100 (arg0, tmp737, tmp738) ; } else { /* empty */ } /* end of [if] */ if (tmp743) { /* tmp735 = */ auxexn0_104 (arg0, tmp737, tmp738) ; } else { /* empty */ } /* end of [if] */ } else { tmp746 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (0, tmp739) ; if (tmp742) { /* tmp747 = */ auxcon1_103 (arg0, tmp737, tmp738, tmp746, tmp740) ; } else { /* empty */ } /* end of [if] */ if (tmp743) { /* tmp735 = */ auxexn1_105 (arg0, tmp737, tmp738, tmp746, tmp740) ; } else { /* empty */ } /* end of [if] */ } /* end of [if] */ return /* (tmp735) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_con] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 50029(line=2550, offs=5) -- 50869(line=2586, offs=4) */ ATSstaticdec() ats_void_type loop_108 (ats_ptr_type env0, ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5) { /* local vardec */ // ATSlocal_void (tmp749) ; ATSlocal (ats_ptr_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; ATSlocal (ats_ptr_type, tmp752) ; ATSlocal (ats_ptr_type, tmp753) ; // ATSlocal_void (tmp754) ; ATSlocal (ats_bool_type, tmp755) ; // ATSlocal_void (tmp756) ; ATSlocal (ats_bool_type, tmp757) ; // ATSlocal_void (tmp758) ; ATSlocal (ats_bool_type, tmp759) ; // ATSlocal_void (tmp760) ; // ATSlocal_void (tmp761) ; // ATSlocal_void (tmp762) ; // ATSlocal_void (tmp763) ; // ATSlocal_void (tmp764) ; // ATSlocal_void (tmp765) ; // ATSlocal_void (tmp766) ; // ATSlocal_void (tmp767) ; ATSlocal (ats_int_type, tmp768) ; __ats_lab_loop_108: do { /* branch: __ats_lab_144 */ __ats_lab_144_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp750 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_0) ; tmp751 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_1) ; tmp752 = ats_caselptrlab_mac(anairiats_sum_6, tmp750, atslab_0) ; tmp753 = ats_caselptrlab_mac(anairiats_sum_6, tmp750, atslab_1) ; tmp755 = atspre_gt_int_int (arg5, 0) ; if (tmp755) { /* tmp754 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (env0, ATSstrcst("\n")) ; } else { /* empty */ } /* end of [if] */ tmp757 = atspre_eq_int_int (arg0, 0) ; if (tmp757) { /* tmp756 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (env0, ATSstrcst("ATSINSstore_fltrec_ofs(")) ; } else { /* empty */ } /* end of [if] */ tmp759 = atspre_gt_int_int (arg0, 0) ; if (tmp759) { /* tmp758 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (env0, ATSstrcst("ATSINSstore_boxrec_ofs(")) ; } else { /* empty */ } /* end of [if] */ /* tmp760 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (env0, arg2) ; /* tmp761 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (env0, ATSstrcst(", ")) ; /* tmp762 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (env0, arg3) ; /* tmp763 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (env0, ATSstrcst(", ")) ; /* tmp764 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext (env0, arg1, tmp752) ; /* tmp765 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (env0, ATSstrcst(", ")) ; /* tmp766 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (env0, tmp753) ; /* tmp767 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (env0, ATSstrcst(") ;")) ; tmp768 = atspre_add_int_int (arg5, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp751 ; arg5 = tmp768 ; goto __ats_lab_loop_108 ; // tail call break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_145_1: break ; } while (0) ; return /* (tmp749) */ ; } /* end of [loop_108] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop_108_closure_type ; ats_void_type loop_108_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5) { loop_108 (((loop_108_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2, arg3, arg4, arg5) ; return ; } /* end of function */ ATSinline() ats_void_type loop_108_closure_init (loop_108_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_108_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_108_closure_make (ats_ptr_type env0) { loop_108_closure_type *p_clo = ATS_MALLOC(sizeof(loop_108_closure_type)) ; loop_108_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 50005(line=2548, offs=3) -- 52061(line=2641, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_rec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp748) ; ATSlocal (ats_ptr_type, tmp769) ; ATSlocal (ats_ptr_type, tmp770) ; ATSlocal (ats_ptr_type, tmp771) ; ATSlocal (ats_ptr_type, tmp772) ; ATSlocal (ats_ptr_type, tmp773) ; ATSlocal (ats_int_type, tmp774) ; // ATSlocal_void (tmp775) ; // ATSlocal_void (tmp776) ; ATSlocal (ats_ptr_type, tmp777) ; ATSlocal (ats_ptr_type, tmp778) ; ATSlocal (ats_ptr_type, tmp779) ; ATSlocal (ats_ptr_type, tmp780) ; ATSlocal (ats_int_type, tmp781) ; // ATSlocal_void (tmp782) ; // ATSlocal_void (tmp783) ; // ATSlocal_void (tmp784) ; // ATSlocal_void (tmp785) ; // ATSlocal_void (tmp786) ; // ATSlocal_void (tmp787) ; // ATSlocal_void (tmp788) ; // ATSlocal_void (tmp789) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_rec: tmp769 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_instr_node) ; do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp769)->tag != 20) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp770 = ats_caselptrlab_mac(anairiats_sum_12, tmp769, atslab_0) ; tmp771 = ats_caselptrlab_mac(anairiats_sum_12, tmp769, atslab_1) ; tmp772 = ats_caselptrlab_mac(anairiats_sum_12, tmp769, atslab_2) ; tmp773 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (1, tmp772) ; tmp774 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd (tmp772) ; /* tmp775 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_fltrec_beg()\n")) ; /* tmp776 = */ loop_108 (arg0, 0, tmp774, tmp770, tmp773, tmp771, 0) ; /* tmp748 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\nATSINSmove_fltrec_end()")) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp769)->tag != 19) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 50896(line=2590, offs=1) -- 52027(line=2639, offs=6)") ; } __ats_lab_147_1: tmp777 = ats_caselptrlab_mac(anairiats_sum_12, tmp769, atslab_0) ; tmp778 = ats_caselptrlab_mac(anairiats_sum_12, tmp769, atslab_1) ; tmp779 = ats_caselptrlab_mac(anairiats_sum_12, tmp769, atslab_2) ; tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (0, tmp779) ; tmp781 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd (tmp779) ; /* tmp782 = */ atspre_fprint_string (arg0, ATSstrcst("/*\n#LINCONSTATUS==2\n*/\n")) ; /* tmp783 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_boxrec_beg()\n")) ; /* tmp784 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_boxrec_new(")) ; /* tmp785 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp777) ; /* tmp786 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp787 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp780) ; /* tmp788 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;\n")) ; /* tmp789 = */ loop_108 (arg0, 1, tmp781, tmp777, tmp780, tmp778, 0) ; /* tmp748 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\nATSINSmove_boxrec_end()")) ; break ; } while (0) ; return /* (tmp748) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_rec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 52127(line=2647, offs=5) -- 52499(line=2668, offs=4) */ ATSstaticdec() ats_void_type auxsel_109 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp790) ; // ATSlocal_void (tmp791) ; // ATSlocal_void (tmp792) ; // ATSlocal_void (tmp793) ; // ATSlocal_void (tmp794) ; // ATSlocal_void (tmp795) ; // ATSlocal_void (tmp796) ; __ats_lab_auxsel_109: /* tmp791 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSSELcon(")) ; /* tmp792 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg1) ; /* tmp793 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp794 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp_sel (arg0, arg2) ; /* tmp795 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp796 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext (arg0, 0, arg3) ; /* tmp790 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp790) */ ; } /* end of [auxsel_109] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 52576(line=2674, offs=3) -- 52696(line=2681, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selcon (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp797) ; ATSlocal (ats_ptr_type, tmp798) ; ATSlocal (ats_ptr_type, tmp799) ; ATSlocal (ats_ptr_type, tmp800) ; ATSlocal (ats_ptr_type, tmp801) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selcon: tmp798 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp798)->tag != 23) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 52601(line=2676, offs=5) -- 52652(line=2677, offs=42)") ; } tmp799 = ats_caselptrlab_mac(anairiats_sum_12, tmp798, atslab_0) ; tmp800 = ats_caselptrlab_mac(anairiats_sum_12, tmp798, atslab_1) ; tmp801 = ats_caselptrlab_mac(anairiats_sum_12, tmp798, atslab_2) ; /* tmp797 = */ auxsel_109 (arg0, tmp799, tmp800, tmp801) ; return /* (tmp797) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selcon] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 52783(line=2690, offs=1) -- 52952(line=2698, offs=4) */ ATSstaticdec() ats_ptr_type auxfnd_111 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp802) ; ATSlocal (ats_ptr_type, tmp803) ; ATSlocal (ats_ptr_type, tmp804) ; ATSlocal (ats_ptr_type, tmp805) ; ATSlocal (ats_ptr_type, tmp806) ; ATSlocal (ats_bool_type, tmp807) ; __ats_lab_auxfnd_111: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 52846(line=2694, offs=7) -- 52871(line=2694, offs=32)") ; } tmp803 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp804 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp805 = ats_caselptrlab_mac(anairiats_sum_21, tmp803, atslab_0) ; tmp806 = ats_caselptrlab_mac(anairiats_sum_21, tmp803, atslab_2) ; tmp807 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (arg0, tmp805) ; if (tmp807) { tmp802 = tmp806 ; } else { arg0 = arg0 ; arg1 = tmp804 ; goto __ats_lab_auxfnd_111 ; // tail call } /* end of [if] */ return (tmp802) ; } /* end of [auxfnd_111] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1637(line=52, offs=15) -- 1735(line=57, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_02193_ () { /* local vardec */ // ATSlocal_void (tmp816) ; // ATSlocal_void (tmp817) ; // ATSlocal_void (tmp818) ; __ats_lab_prerr_interror_02193_: /* tmp817 = */ atspre_prerr_string (ATSstrcst("INTERROR(")) ; /* tmp818 = */ prerr_FILENAME_02192_ () ; /* tmp816 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp816) */ ; } /* end of [prerr_interror_02193_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 52977(line=2701, offs=1) -- 53902(line=2745, offs=4) */ ATSstaticdec() ats_ptr_type auxsel_112 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp808) ; ATSlocal (ats_ptr_type, tmp809) ; ATSlocal (ats_ptr_type, tmp810) ; ATSlocal (ats_ptr_type, tmp811) ; ATSlocal (ats_ptr_type, tmp812) ; ATSlocal (ats_ptr_type, tmp813) ; ATSlocal (ats_ptr_type, tmp814) ; // ATSlocal_void (tmp815) ; // ATSlocal_void (tmp819) ; // ATSlocal_void (tmp820) ; // ATSlocal_void (tmp821) ; // ATSlocal_void (tmp822) ; // ATSlocal_void (tmp823) ; // ATSlocal_void (tmp824) ; // ATSlocal_void (tmp825) ; // ATSlocal_void (tmp826) ; ATSlocal (ats_ptr_type, tmp827) ; ATSlocal (ats_ptr_type, tmp828) ; ATSlocal (ats_ptr_type, tmp829) ; __ats_lab_auxsel_112: tmp809 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_primlab_node) ; do { /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp809)->tag != 0) { goto __ats_lab_153_0 ; } __ats_lab_148_1: tmp810 = ats_caselptrlab_mac(anairiats_sum_2, tmp809, atslab_0) ; tmp811 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; do { /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)tmp811)->tag != 8) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp812 = ats_caselptrlab_mac(anairiats_sum_7, tmp811, atslab_1) ; tmp808 = auxfnd_111 (tmp810, tmp812) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp811)->tag != 9) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp813 = ats_caselptrlab_mac(anairiats_sum_2, tmp811, atslab_0) ; tmp808 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__labhisexp_get_elt (tmp813) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)tmp811)->tag != 10) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp814 = ats_caselptrlab_mac(anairiats_sum_7, tmp811, atslab_1) ; tmp808 = auxfnd_111 (tmp810, tmp814) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: __ats_lab_152_1: /* tmp815 = */ prerr_interror_02193_ () ; /* tmp819 = */ atspre_prerr_string (ATSstrcst(": auxsel: pml = ")) ; /* tmp820 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primlab (arg1) ; /* tmp821 = */ atspre_prerr_newline () ; /* tmp822 = */ prerr_interror_02193_ () ; /* tmp823 = */ atspre_prerr_string (ATSstrcst(": auxsel: hse0 = ")) ; /* tmp824 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp (arg0) ; /* tmp825 = */ atspre_prerr_newline () ; tmp827 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 53638(line=2733, offs=24) -- 53654(line=2733, offs=40)", ATSstrcst("\n")) ; /* tmp826 = */ atspre_assert_errmsg (ats_false_bool, tmp827) ; /* tmp808 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: // if (((ats_sum_ptr_type)tmp809)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_153_1: tmp828 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; if (((ats_sum_ptr_type)tmp828)->tag != 7) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 53790(line=2740, offs=9) -- 53839(line=2741, offs=41)") ; } tmp829 = ats_caselptrlab_mac(anairiats_sum_7, tmp828, atslab_0) ; tmp808 = tmp829 ; break ; } while (0) ; return (tmp808) ; } /* end of [auxsel_112] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 54058(line=2755, offs=5) -- 54354(line=2768, offs=2) */ ATSstaticdec() ats_ptr_type loop_115 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp831) ; ATSlocal (ats_ptr_type, tmp832) ; ATSlocal (ats_ptr_type, tmp833) ; ATSlocal (ats_ptr_type, tmp834) ; ATSlocal (ats_ptr_type, tmp835) ; ATSlocal (anairiats_rec_22, tmp836) ; __ats_lab_loop_115: do { /* branch: __ats_lab_154 */ __ats_lab_154_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp831 = arg2 ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_155_1: tmp832 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp833 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp834 = auxsel_112 (arg0, tmp832) ; tmp836.atslab_0 = arg0 ; tmp836.atslab_1 = tmp832 ; tmp835 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ats_selptrset_mac(anairiats_sum_23, tmp835, atslab_0, tmp836) ; ats_selptrset_mac(anairiats_sum_23, tmp835, atslab_1, arg2) ; arg0 = tmp834 ; arg1 = tmp833 ; arg2 = tmp835 ; goto __ats_lab_loop_115 ; // tail call break ; } while (0) ; return (tmp831) ; } /* end of [loop_115] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 53927(line=2748, offs=1) -- 54420(line=2772, offs=4) */ ATSstaticdec() ats_ptr_type auxselist_114 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp830) ; ATSlocal (ats_ptr_type, tmp837) ; __ats_lab_auxselist_114: tmp837 = (ats_sum_ptr_type)0 ; tmp830 = loop_115 (arg0, arg1, tmp837) ; return (tmp830) ; } /* end of [auxselist_114] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 1961(line=59, offs=16) -- 2054(line=60, offs=87) */ ATSstaticdec() ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp849) ; __ats_lab_list_vt_is_nil_01494_: do { /* branch: __ats_lab_158 */ __ats_lab_158_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp849 = ats_true_bool ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_159_1: tmp849 = ats_false_bool ; break ; } while (0) ; return (tmp849) ; } /* end of [list_vt_is_nil_01494_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 54448(line=2775, offs=1) -- 56587(line=2860, offs=4) */ ATSstaticdec() ats_void_type auxmain_116 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5) { /* local vardec */ // ATSlocal_void (tmp838) ; ATSlocal (anairiats_rec_22, tmp839) ; ATSlocal (ats_ptr_type, tmp840) ; ATSlocal (ats_ptr_type, tmp841) ; ATSlocal (ats_ptr_type, tmp842) ; ATSlocal (ats_ptr_type, tmp843) ; ATSlocal (ats_ptr_type, tmp844) ; ATSlocal (ats_ptr_type, tmp846) ; ATSlocal (ats_ptr_type, tmp847) ; ATSlocal (ats_bool_type, tmp848) ; ATSlocal (ats_ptr_type, tmp850) ; ATSlocal (ats_ptr_type, tmp851) ; ATSlocal (ats_bool_type, tmp852) ; ATSlocal (ats_int_type, tmp853) ; // ATSlocal_void (tmp854) ; ATSlocal (ats_bool_type, tmp855) ; ATSlocal (ats_bool_type, tmp856) ; ATSlocal (ats_bool_type, tmp857) ; // ATSlocal_void (tmp858) ; ATSlocal (ats_int_type, tmp859) ; // ATSlocal_void (tmp860) ; // ATSlocal_void (tmp861) ; // ATSlocal_void (tmp862) ; ATSlocal (ats_int_type, tmp863) ; // ATSlocal_void (tmp864) ; __ats_lab_auxmain_116: do { /* branch: __ats_lab_156 */ __ats_lab_156_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_161_0 ; } __ats_lab_156_1: tmp839 = ats_caselptrlab_mac(anairiats_sum_23, arg4, atslab_0) ; tmp840 = ats_caselptrlab_mac(anairiats_sum_23, arg4, atslab_1) ; ATS_FREE(arg4) ; tmp841 = ats_select_mac(tmp839, atslab_0) ; tmp842 = ats_select_mac(tmp839, atslab_1) ; /* ats_ptr_type tmp843 ; */ tmp843 = tmp841 ; /* ats_ptr_type tmp844 ; */ tmp844 = arg2 ; tmp846 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp841), atslab_hisexp_node) ; do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)tmp846)->tag != 7) { goto __ats_lab_160_0 ; } __ats_lab_157_1: tmp847 = ats_caselptrlab_mac(anairiats_sum_7, tmp846, atslab_0) ; tmp843 = tmp847 ; tmp848 = list_vt_is_nil_01494_ (tmp840) ; if (tmp848) { tmp851 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg2), atslab_primval_loc) ; tmp850 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp851, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, arg2) ; tmp844 = tmp850 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: __ats_lab_160_1: break ; } while (0) ; /* ats_bool_type tmp852 ; */ tmp852 = ats_false_bool ; tmp853 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_boxknd (tmp841) ; tmp855 = atspre_lte_int_int (tmp853, 0) ; if (tmp855) { tmp856 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyrecsin (tmp841) ; tmp852 = tmp856 ; if (tmp852) { /* tmp854 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSSELrecsin(")) ; } else { tmp857 = atspre_gte_int_int (tmp853, 0) ; if (tmp857) { /* tmp854 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSSELfltrec(")) ; } else { /* tmp854 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSSELarrptrind(")) ; } /* end of [if] */ } /* end of [if] */ } else { /* tmp854 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSSELboxrec(")) ; } /* end of [if] */ tmp859 = atspre_add_int_int (arg5, 1) ; /* tmp858 = */ auxmain_116 (arg0, arg1, tmp844, arg3, tmp840, tmp859) ; /* tmp860 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp861 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp_sel (arg0, tmp843) ; /* tmp862 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; tmp863 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd (tmp841) ; /* tmp864 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primlab (arg0, tmp863, tmp842) ; /* tmp838 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_161_1: do { /* branch: __ats_lab_162 */ __ats_lab_162_0: if (arg1 != 0) { goto __ats_lab_163_0 ; } __ats_lab_162_1: /* tmp838 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, arg2) ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: __ats_lab_163_1: /* tmp838 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval_deref (arg0, arg2, arg3) ; break ; } while (0) ; break ; } while (0) ; return /* (tmp838) */ ; } /* end of [auxmain_116] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 56707(line=2870, offs=3) -- 56880(line=2879, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp865) ; ATSlocal (ats_ptr_type, tmp866) ; ATSlocal (ats_ptr_type, tmp867) ; ATSlocal (ats_ptr_type, tmp868) ; ATSlocal (ats_ptr_type, tmp869) ; ATSlocal (ats_ptr_type, tmp870) ; ATSlocal (anairiats_rec_22, tmp871) ; ATSlocal (ats_ptr_type, tmp872) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select: tmp866 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp866)->tag != 24) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 56732(line=2872, offs=5) -- 56782(line=2873, offs=41)") ; } tmp867 = ats_caselptrlab_mac(anairiats_sum_12, tmp866, atslab_0) ; tmp868 = ats_caselptrlab_mac(anairiats_sum_12, tmp866, atslab_1) ; tmp869 = ats_caselptrlab_mac(anairiats_sum_12, tmp866, atslab_2) ; tmp871.atslab_0 = tmp868 ; tmp871.atslab_1 = tmp869 ; tmp872 = (ats_sum_ptr_type)0 ; tmp870 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ats_selptrset_mac(anairiats_sum_23, tmp870, atslab_0, tmp871) ; ats_selptrset_mac(anairiats_sum_23, tmp870, atslab_1, tmp872) ; /* tmp865 = */ auxmain_116 (arg0, 0, tmp867, tmp868, tmp870, 0) ; return /* (tmp865) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 56968(line=2885, offs=3) -- 57207(line=2898, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp873) ; ATSlocal (ats_ptr_type, tmp874) ; ATSlocal (ats_ptr_type, tmp875) ; ATSlocal (ats_ptr_type, tmp876) ; ATSlocal (ats_ptr_type, tmp877) ; ATSlocal (ats_ptr_type, tmp878) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select2: tmp874 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp874)->tag != 25) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 56993(line=2887, offs=5) -- 57045(line=2888, offs=42)") ; } tmp875 = ats_caselptrlab_mac(anairiats_sum_12, tmp874, atslab_0) ; tmp876 = ats_caselptrlab_mac(anairiats_sum_12, tmp874, atslab_1) ; tmp877 = ats_caselptrlab_mac(anairiats_sum_12, tmp874, atslab_2) ; tmp878 = auxselist_114 (tmp876, tmp877) ; /* tmp873 = */ auxmain_116 (arg0, 0, tmp875, tmp876, tmp878, 0) ; return /* (tmp873) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_select2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 57295(line=2904, offs=3) -- 57517(line=2917, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selptr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp879) ; ATSlocal (ats_ptr_type, tmp880) ; ATSlocal (ats_ptr_type, tmp881) ; ATSlocal (ats_ptr_type, tmp882) ; ATSlocal (ats_ptr_type, tmp883) ; ATSlocal (ats_ptr_type, tmp884) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selptr: tmp880 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp880)->tag != 26) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 57320(line=2906, offs=5) -- 57371(line=2907, offs=42)") ; } tmp881 = ats_caselptrlab_mac(anairiats_sum_12, tmp880, atslab_0) ; tmp882 = ats_caselptrlab_mac(anairiats_sum_12, tmp880, atslab_1) ; tmp883 = ats_caselptrlab_mac(anairiats_sum_12, tmp880, atslab_2) ; tmp884 = auxselist_114 (tmp882, tmp883) ; /* tmp879 = */ auxmain_116 (arg0, 1, tmp881, tmp882, tmp884, 0) ; return /* (tmp879) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_selptr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 57606(line=2923, offs=3) -- 57917(line=2941, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrofsel (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp885) ; ATSlocal (ats_ptr_type, tmp886) ; ATSlocal (ats_ptr_type, tmp887) ; ATSlocal (ats_ptr_type, tmp888) ; ATSlocal (ats_ptr_type, tmp889) ; // ATSlocal_void (tmp890) ; ATSlocal (ats_ptr_type, tmp891) ; // ATSlocal_void (tmp892) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrofsel: tmp886 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp886)->tag != 28) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 57631(line=2925, offs=5) -- 57684(line=2926, offs=42)") ; } tmp887 = ats_caselptrlab_mac(anairiats_sum_12, tmp886, atslab_0) ; tmp888 = ats_caselptrlab_mac(anairiats_sum_12, tmp886, atslab_1) ; tmp889 = ats_caselptrlab_mac(anairiats_sum_12, tmp886, atslab_2) ; /* tmp890 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSPMVptrof(")) ; tmp891 = auxselist_114 (tmp888, tmp889) ; /* tmp892 = */ auxmain_116 (arg0, 1, tmp887, tmp888, tmp891, 0) ; /* tmp885 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; return /* (tmp885) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_primval_ptrofsel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 58010(line=2947, offs=3) -- 58390(line=2966, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_store_ptrofs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp893) ; ATSlocal (ats_ptr_type, tmp894) ; ATSlocal (ats_ptr_type, tmp895) ; ATSlocal (ats_ptr_type, tmp896) ; ATSlocal (ats_ptr_type, tmp897) ; ATSlocal (ats_ptr_type, tmp898) ; // ATSlocal_void (tmp899) ; ATSlocal (ats_ptr_type, tmp900) ; // ATSlocal_void (tmp901) ; // ATSlocal_void (tmp902) ; // ATSlocal_void (tmp903) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_store_ptrofs: tmp894 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp894)->tag != 23) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 58034(line=2949, offs=5) -- 58097(line=2950, offs=48)") ; } tmp895 = ats_caselptrlab_mac(anairiats_sum_20, tmp894, atslab_0) ; tmp896 = ats_caselptrlab_mac(anairiats_sum_20, tmp894, atslab_1) ; tmp897 = ats_caselptrlab_mac(anairiats_sum_20, tmp894, atslab_2) ; tmp898 = ats_caselptrlab_mac(anairiats_sum_20, tmp894, atslab_3) ; /* tmp899 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSstore(")) ; tmp900 = auxselist_114 (tmp896, tmp897) ; /* tmp901 = */ auxmain_116 (arg0, 1, tmp895, tmp896, tmp900, 0) ; /* tmp902 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp903 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp898) ; /* tmp893 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; return /* (tmp893) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_store_ptrofs] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 58486(line=2972, offs=3) -- 58899(line=2988, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_xstore_ptrofs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp904) ; ATSlocal (ats_ptr_type, tmp905) ; ATSlocal (ats_ptr_type, tmp906) ; ATSlocal (ats_ptr_type, tmp907) ; ATSlocal (ats_ptr_type, tmp908) ; ATSlocal (ats_ptr_type, tmp909) ; ATSlocal (ats_ptr_type, tmp910) ; ATSlocal (ats_ptr_type, tmp911) ; // ATSlocal_void (tmp912) ; // ATSlocal_void (tmp913) ; // ATSlocal_void (tmp914) ; // ATSlocal_void (tmp915) ; // ATSlocal_void (tmp916) ; // ATSlocal_void (tmp917) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_xstore_ptrofs: tmp905 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp905)->tag != 24) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 58510(line=2974, offs=5) -- 58579(line=2975, offs=53)") ; } tmp906 = ats_caselptrlab_mac(anairiats_sum_24, tmp905, atslab_0) ; tmp907 = ats_caselptrlab_mac(anairiats_sum_24, tmp905, atslab_1) ; tmp908 = ats_caselptrlab_mac(anairiats_sum_24, tmp905, atslab_2) ; tmp909 = ats_caselptrlab_mac(anairiats_sum_24, tmp905, atslab_3) ; tmp910 = ats_caselptrlab_mac(anairiats_sum_24, tmp905, atslab_4) ; tmp911 = auxselist_114 (tmp908, tmp909) ; /* tmp912 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSxstore(")) ; /* tmp913 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp906) ; /* tmp914 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp915 = */ auxmain_116 (arg0, 1, tmp907, tmp908, tmp911, 0) ; /* tmp916 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp917 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp910) ; /* tmp904 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; return /* (tmp904) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_xstore_ptrofs] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 59032(line=2998, offs=3) -- 59304(line=3012, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_raise (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp918) ; ATSlocal (ats_ptr_type, tmp919) ; ATSlocal (ats_ptr_type, tmp920) ; ATSlocal (ats_ptr_type, tmp921) ; // ATSlocal_void (tmp922) ; // ATSlocal_void (tmp923) ; // ATSlocal_void (tmp924) ; // ATSlocal_void (tmp925) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_raise: tmp919 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp919)->tag != 25) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 59056(line=3000, offs=5) -- 59098(line=3001, offs=34)") ; } tmp920 = ats_caselptrlab_mac(anairiats_sum_7, tmp919, atslab_0) ; tmp921 = ats_caselptrlab_mac(anairiats_sum_7, tmp919, atslab_1) ; /* tmp922 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSraise_exn(")) ; /* tmp923 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp920) ; /* tmp924 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp925 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp921) ; /* tmp918 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; return /* (tmp918) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_raise] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 59390(line=3018, offs=3) -- 59927(line=3045, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_delay (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp926) ; ATSlocal (ats_ptr_type, tmp927) ; ATSlocal (ats_ptr_type, tmp928) ; ATSlocal (ats_int_type, tmp929) ; ATSlocal (ats_ptr_type, tmp930) ; ATSlocal (ats_ptr_type, tmp931) ; // ATSlocal_void (tmp932) ; ATSlocal (ats_bool_type, tmp933) ; // ATSlocal_void (tmp934) ; ATSlocal (ats_bool_type, tmp935) ; ATSlocal (ats_ptr_type, tmp936) ; ATSlocal (ats_bool_type, tmp937) ; // ATSlocal_void (tmp938) ; // ATSlocal_void (tmp939) ; // ATSlocal_void (tmp940) ; // ATSlocal_void (tmp941) ; // ATSlocal_void (tmp942) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_delay: tmp927 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp927)->tag != 26) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 59414(line=3020, offs=5) -- 59469(line=3021, offs=42)") ; } tmp928 = ats_caselptrlab_mac(anairiats_sum_25, tmp927, atslab_0) ; tmp929 = ats_caselptrlab_mac(anairiats_sum_25, tmp927, atslab_1) ; tmp930 = ats_caselptrlab_mac(anairiats_sum_25, tmp927, atslab_2) ; tmp931 = ats_caselptrlab_mac(anairiats_sum_25, tmp927, atslab_3) ; tmp933 = atspre_eq_int_int (tmp929, 0) ; if (tmp933) { /* tmp932 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_delay(")) ; } else { /* empty */ } /* end of [if] */ tmp935 = atspre_gt_int_int (tmp929, 0) ; if (tmp935) { /* tmp934 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_ldelay(")) ; } else { /* empty */ } /* end of [if] */ tmp937 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void (tmp930) ; if (tmp937) { tmp936 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_int_t0ype () ; } else { tmp936 = tmp930 ; } /* end of [if] */ /* tmp938 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp928) ; /* tmp939 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp940 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp936) ; /* tmp941 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp942 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp931) ; /* tmp926 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; return /* (tmp926) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_delay] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 60021(line=3051, offs=3) -- 60468(line=3070, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_lazyeval (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp943) ; ATSlocal (ats_ptr_type, tmp944) ; ATSlocal (ats_ptr_type, tmp945) ; ATSlocal (ats_int_type, tmp946) ; ATSlocal (ats_ptr_type, tmp947) ; ATSlocal (ats_ptr_type, tmp948) ; // ATSlocal_void (tmp949) ; ATSlocal (ats_bool_type, tmp950) ; // ATSlocal_void (tmp951) ; ATSlocal (ats_bool_type, tmp952) ; // ATSlocal_void (tmp953) ; // ATSlocal_void (tmp954) ; // ATSlocal_void (tmp955) ; // ATSlocal_void (tmp956) ; // ATSlocal_void (tmp957) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_lazyeval: tmp944 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_instr_node) ; if (((ats_sum_ptr_type)tmp944)->tag != 27) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_emit.dats: 60045(line=3053, offs=5) -- 60106(line=3054, offs=45)") ; } tmp945 = ats_caselptrlab_mac(anairiats_sum_25, tmp944, atslab_0) ; tmp946 = ats_caselptrlab_mac(anairiats_sum_25, tmp944, atslab_1) ; tmp947 = ats_caselptrlab_mac(anairiats_sum_25, tmp944, atslab_2) ; tmp948 = ats_caselptrlab_mac(anairiats_sum_25, tmp944, atslab_3) ; tmp950 = atspre_eq_int_int (tmp946, 0) ; if (tmp950) { /* tmp949 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_lazyeval(")) ; } else { /* empty */ } /* end of [if] */ tmp952 = atspre_gt_int_int (tmp946, 0) ; if (tmp952) { /* tmp951 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSINSmove_llazyeval(")) ; } else { /* empty */ } /* end of [if] */ /* tmp953 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_tmpvar (arg0, tmp945) ; /* tmp954 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp955 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp947) ; /* tmp956 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(", ")) ; /* tmp957 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_primval (arg0, tmp948) ; /* tmp943 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; return /* (tmp943) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__emit_instr_move_lazyeval] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2time_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2time_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp152, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp152 = ref_make_elt_01089_ats_int_type (0) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_emit_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_comarg_dats.c0000644000175000017500000006433713431250607022012 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 "libc/CATS/string.cats" #include "libc/CATS/errno.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ // extern char* patsopt_PATSRELOCROOT_get () ; // /* type definitions */ typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DATSDEF_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__COMARG_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_int1_of_size1) (ats_size_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_char_type, atspre_string_get_char_at__intsz) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, atspre_string_make_substring) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_ppush) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSRELOCROOT) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_ppush) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_datsdef) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_string_parser) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_addperv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__fprint_comarg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_parse) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, getenv) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type loop_3 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ; static ats_void_type loop_5 (ats_int_type env0, ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type loop_5_closure_make (ats_int_type env0) ; static ats_void_type loop_5_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_ptr_type string_extract_9 (ats_ptr_type arg0, ats_size_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 2108(line=79, offs=13) -- 2142(line=80, offs=29) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__print_comarg (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__print_comarg: /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__fprint_comarg (stdout, arg0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__print_comarg] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 2169(line=83, offs=14) -- 2253(line=87, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__fprint_comarg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__fprint_comarg: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: // __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst("COMARG(")) ; /* tmp5 = */ atspre_fprint_int (arg0, tmp2) ; /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp7 = */ atspre_fprint_string (arg0, tmp3) ; /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp1) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__fprint_comarg] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 2324(line=97, offs=1) -- 2534(line=108, offs=2) */ ATSstaticdec() ats_ptr_type loop_3 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_char_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; __ats_lab_loop_3: tmp10 = atspre_ilt (arg2, arg1) ; if (tmp10) { tmp12 = atspre_string_get_char_at__intsz (arg0, arg2) ; tmp11 = atspre_neq_char_char (tmp12, '-') ; if (tmp11) { tmp9 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp9, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_0, tmp9, atslab_1, arg0) ; } else { tmp13 = atspre_iadd (arg2, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp13 ; goto __ats_lab_loop_3 ; // tail call } /* end of [if] */ } else { tmp9 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp9, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_0, tmp9, atslab_1, arg0) ; } /* end of [if] */ return (tmp9) ; } /* end of [loop_3] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 2305(line=94, offs=3) -- 2762(line=131, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_parse (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_size_type, tmp15) ; ATSlocal (ats_int_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_parse: tmp14 = atspre_eq_string_string (arg0, ATSstrcst("-")) ; if (tmp14) { tmp8 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp8, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_0, tmp8, atslab_1, arg0) ; } else { tmp15 = atspre_string_length (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp16 = atspre_int1_of_size1 (tmp15) ; tmp8 = loop_3 (ats_castfn_mac(ats_ptr_type, arg0), tmp16, 0) ; } /* end of [if] */ return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_parse] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 2914(line=143, offs=1) -- 3409(line=167, offs=2) */ ATSstaticdec() ats_void_type loop_5 (ats_int_type env0, ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; __ats_lab_loop_5: tmp19 = atspre_ilt (arg1, env0) ; if (tmp19) { tmp20 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp20 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp22 = ats_caselptrind_mac(ats_ptr_type, arg0, [arg1]) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_parse (tmp22) ; tmp24 = (ats_sum_ptr_type)0 ; tmp23 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp23, atslab_0, tmp21) ; ats_selptrset_mac(anairiats_sum_1, tmp23, atslab_1, tmp24) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp23 ; tmp25 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp25 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp26 = &ats_caselptrlab_mac(anairiats_sum_1, tmp25, atslab_1) ; tmp27 = atspre_iadd (arg1, 1) ; arg0 = arg0 ; arg1 = tmp27 ; arg2 = tmp26 ; goto __ats_lab_loop_5 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp18) */ ; } /* end of [loop_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; } loop_5_closure_type ; ats_void_type loop_5_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { loop_5 (((loop_5_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; return ; } /* end of function */ ATSinline() ats_void_type loop_5_closure_init (loop_5_closure_type *p_clo, ats_int_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_5_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_5_closure_make (ats_int_type env0) { loop_5_closure_type *p_clo = ATS_MALLOC(sizeof(loop_5_closure_type)) ; loop_5_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 2841(line=137, offs=6) -- 3569(line=175, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarglst_parse (ats_int_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarglst_parse: /* ats_ptr_type tmp28 ; */ tmp28 = (ats_sum_ptr_type)0 ; /* tmp29 = */ loop_5 (arg0, arg1, 0, (&tmp28)) ; /* tmp30 = ats_selsin_mac(tmp29, atslab_1) */ ; tmp17 = tmp28 ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarglst_parse] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 3647(line=181, offs=3) -- 3842(line=189, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning: /* tmp32 = */ atspre_prerr_string (ATSstrcst("warning(ATS)")) ; /* tmp33 = */ atspre_prerr_string (ATSstrcst(": unrecognized command line argument [")) ; /* tmp34 = */ atspre_prerr_string (arg0) ; /* tmp35 = */ atspre_prerr_string (ATSstrcst("] is ignored.")) ; /* tmp31 = */ atspre_prerr_newline () ; return /* (tmp31) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 3918(line=194, offs=14) -- 3984(line=195, offs=57) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_DATS_flag (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp36) ; ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_DATS_flag: tmp38 = atslib_strncmp (arg0, ATSstrcst("-DATS"), 5) ; tmp37 = atspre_eq_int_int (tmp38, 0) ; if (tmp37) { tmp36 = ats_true_bool ; } else { tmp36 = ats_false_bool ; } /* end of [if] */ return (tmp36) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_DATS_flag] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 4034(line=199, offs=14) -- 4100(line=200, offs=57) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_IATS_flag (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_int_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_IATS_flag: tmp41 = atslib_strncmp (arg0, ATSstrcst("-IATS"), 5) ; tmp40 = atspre_eq_int_int (tmp41, 0) ; if (tmp40) { tmp39 = ats_true_bool ; } else { tmp39 = ats_false_bool ; } /* end of [if] */ return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_IATS_flag] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 4159(line=208, offs=1) -- 4523(line=230, offs=4) */ ATSstaticdec() ats_ptr_type string_extract_9 (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_size_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_size_type, tmp46) ; __ats_lab_string_extract_9: tmp43 = atspre_string_length (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp44 = atspre_gt_size1_size1 (tmp43, ats_castfn_mac(ats_size_type, arg1)) ; if (tmp44) { tmp46 = atspre_sub_size1_size1 (tmp43, ats_castfn_mac(ats_size_type, arg1)) ; tmp45 = atspre_string_make_substring (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_size_type, arg1), tmp46) ; tmp42 = ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp45)) ; } else { tmp42 = atspre_stropt_none ; } /* end of [if] */ return (tmp42) ; } /* end of [string_extract_9] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 4594(line=236, offs=3) -- 4632(line=236, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__DATS_extract (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__DATS_extract: tmp47 = string_extract_9 (arg0, 5) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__DATS_extract] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 4661(line=240, offs=3) -- 4699(line=240, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__IATS_extract (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__IATS_extract: tmp48 = string_extract_9 (arg0, 5) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__IATS_extract] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 4776(line=248, offs=3) -- 5537(line=284, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_DATS_def (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_DATS_def: tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_string_parser (ats_castfn_mac(ats_ptr_type, arg0), &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_datsdef) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (tmp50 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_1_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_2, tmp50, atslab_0) ; ATS_FREE(tmp50) ; // tmp52 = ats_caselptrlab_mac(anairiats_sum_1, tmp51, atslab_0) ; tmp53 = ats_caselptrlab_mac(anairiats_sum_1, tmp51, atslab_1) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp53 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_2, tmp53, atslab_0) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp55) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp53 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; break ; } while (0) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_addperv (tmp52, tmp54) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (tmp50 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: /* tmp56 = */ atspre_prerr_string (ATSstrcst("patsopt: error(0)")) ; /* tmp57 = */ atspre_prerr_string (ATSstrcst(": the command-line argument [")) ; /* tmp58 = */ atspre_prerr_string (ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp59 = */ atspre_prerr_string (ATSstrcst("] cannot be properly parsed.")) ; /* tmp60 = */ atspre_prerr_newline () ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; break ; } while (0) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_DATS_def] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 5659(line=292, offs=3) -- 5903(line=305, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_IATS_dir (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_IATS_dir: /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_pathlst_ppush (arg0) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_ppush (arg0) ; return /* (tmp61) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_IATS_dir] */ /* // /tmp/ATS-Postiats/src/pats_comarg.dats: 6084(line=321, offs=22) -- 6933(line=388, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_PATSRELOCROOT () { /* local vardec */ // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_bool_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_bool_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_PATSRELOCROOT: tmp64 = patsopt_PATSRELOCROOT_get () ; tmp65 = atspre_stropt_is_some (tmp64) ; if (tmp65) { tmp66 = ats_castfn_mac(ats_ptr_type, tmp64) ; } else { tmp67 = getenv (ATSstrcst("USER")) ; tmp68 = atspre_stropt_is_some (tmp67) ; if (tmp68) { tmp69 = ats_castfn_mac(ats_ptr_type, tmp67) ; } else { tmp69 = ATSstrcst("$USER") ; } /* end of [if] */ tmp70 = atspre_tostringf (ATSstrcst("/tmp/.PATSRELOCROOT-%s"), tmp69) ; tmp66 = ats_castfn_mac(ats_ptr_type, tmp70) ; } /* end of [if] */ tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, tmp66) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_addperv (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSRELOCROOT, tmp71) ; return /* (tmp63) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_PATSRELOCROOT] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_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_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_comarg_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_symmap_sats.c0000644000175000017500000000217613431250607022060 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_symmap_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_constraint3_mapgen_dats.c0000644000175000017500000024474113431250607024337 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_c3nstroptref_loc ; ats_ptr_type atslab_c3nstroptref_ref ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_h3ypo_loc ; ats_ptr_type atslab_h3ypo_node ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_c3nstr_loc ; ats_ptr_type atslab_c3nstr_kind ; ats_ptr_type atslab_c3nstr_node ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_15 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SZLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEprf_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEptr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEcst_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEVar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEapp_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyarr_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyrec_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEclo_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPObind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOeqeq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRitmlst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRsolverify_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsvar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMhypo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsVar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_ref_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMdisj_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsolassert_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__MYENV_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_ismem) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_ismem) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2cst_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2var_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2Var_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__d2con_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itm_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlst_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlstlst_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__h3ypo_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__c3nstr_app) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__MYENV_0) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type s2explst_app_04570_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2explstlst_app_04571_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2varlst_app_04567_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type labs2explst_app_04572_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type wths2explst_app_04573_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2exp_app_04569_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2expopt_app_04574_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2zexplst_app_04577_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2zexplstlst_app_04578_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type labs2zexplst_app_04579_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2zexp_app_04576_ (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 5646(line=269, offs=3) -- 5692(line=269, offs=49) */ ATSstaticdec() ats_void_type s2explst_app_04570_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp16) ; __ats_lab_s2explst_app_04570_: /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &s2exp_app_04569_) ; return /* (tmp16) */ ; } /* end of [s2explst_app_04570_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 5734(line=274, offs=3) -- 5785(line=274, offs=54) */ ATSstaticdec() ats_void_type s2explstlst_app_04571_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp15) ; __ats_lab_s2explstlst_app_04571_: /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &s2explst_app_04570_) ; return /* (tmp15) */ ; } /* end of [s2explstlst_app_04571_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 1953(line=72, offs=3) -- 1999(line=72, offs=49) */ ATSstaticdec() ats_void_type s2varlst_app_04567_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp44) ; __ats_lab_s2varlst_app_04567_: /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2var_app) ; return /* (tmp44) */ ; } /* end of [s2varlst_app_04567_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 5848(line=281, offs=3) -- 6070(line=294, offs=4) */ ATSstaticdec() ats_void_type labs2explst_app_04572_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; // ATSlocal_void (tmp64) ; __ats_lab_labs2explst_app_04572_: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp62 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; // tmp63 = ats_caselptrlab_mac(anairiats_sum_11, tmp61, atslab_2) ; /* tmp64 = */ s2exp_app_04569_ (tmp63, arg1) ; arg0 = tmp62 ; arg1 = arg1 ; goto __ats_lab_labs2explst_app_04572_ ; // tail call break ; } while (0) ; return /* (tmp60) */ ; } /* end of [labs2explst_app_04572_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 6159(line=301, offs=3) -- 6480(line=316, offs=4) */ ATSstaticdec() ats_void_type wths2explst_app_04573_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab_wths2explst_app_04573_: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ; tmp83 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_2) ; /* tmp84 = */ s2exp_app_04569_ (tmp82, arg1) ; arg0 = tmp83 ; arg1 = arg1 ; goto __ats_lab_wths2explst_app_04573_ ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_2) ; /* tmp87 = */ s2exp_app_04569_ (tmp85, arg1) ; arg0 = tmp86 ; arg1 = arg1 ; goto __ats_lab_wths2explst_app_04573_ ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; arg0 = tmp88 ; arg1 = arg1 ; goto __ats_lab_wths2explst_app_04573_ ; // tail call break ; } while (0) ; return /* (tmp81) */ ; } /* end of [wths2explst_app_04573_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 2830(line=132, offs=3) -- 5564(line=262, offs=4) */ ATSstaticdec() ats_void_type s2exp_app_04569_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; // ATSlocal_void (tmp80) ; __ats_lab_s2exp_app_04569_: tmp12 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp12)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp12)->tag != 1) { goto __ats_lab_11_0 ; } __ats_lab_10_1: break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp12)->tag != 2) { goto __ats_lab_12_0 ; } __ats_lab_11_1: break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp12)->tag != 3) { goto __ats_lab_13_0 ; } __ats_lab_12_1: break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp12)->tag != 4) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_1, tmp12, atslab_0) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2cst_app (tmp13, arg1) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp12)->tag != 5) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp11 = */ s2explstlst_app_04571_ (tmp14, arg1) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp12)->tag != 6) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp11 = */ s2explstlst_app_04571_ (tmp17, arg1) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp12)->tag != 7) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_1, tmp12, atslab_0) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2var_app (tmp18, arg1) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp12)->tag != 8) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_1, tmp12, atslab_0) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2Var_app (tmp19, arg1) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp12)->tag != 9) { goto __ats_lab_19_0 ; } __ats_lab_18_1: break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp12)->tag != 10) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ; tmp21 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__d2con_app (tmp20, arg1) ; /* tmp11 = */ s2explst_app_04570_ (tmp21, arg1) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp12)->tag != 11) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_0) ; tmp24 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_1) ; tmp25 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_2) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__d2con_app (tmp23, arg1) ; /* tmp27 = */ s2exp_app_04569_ (tmp24, arg1) ; /* tmp11 = */ s2explst_app_04570_ (tmp25, arg1) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp12)->tag != 12) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ; tmp29 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp30 = */ s2exp_app_04569_ (tmp28, arg1) ; arg0 = tmp29 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp12)->tag != 13) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_1, tmp12, atslab_0) ; arg0 = tmp31 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp12)->tag != 14) { goto __ats_lab_24_0 ; } __ats_lab_23_1: break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp12)->tag != 15) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ; tmp33 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp34 = */ s2exp_app_04569_ (tmp32, arg1) ; arg0 = tmp33 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp12)->tag != 16) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_0) ; tmp36 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_1) ; /* tmp37 = */ s2exp_app_04569_ (tmp35, arg1) ; arg0 = tmp36 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp12)->tag != 17) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ; tmp39 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp40 = */ s2exp_app_04569_ (tmp38, arg1) ; /* tmp11 = */ s2explst_app_04570_ (tmp39, arg1) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp12)->tag != 18) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ; tmp42 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp43 = */ s2varlst_app_04567_ (tmp41, arg1) ; arg0 = tmp42 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp12)->tag != 19) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_7, tmp12, atslab_4) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_7, tmp12, atslab_5) ; /* tmp47 = */ s2explst_app_04570_ (tmp45, arg1) ; arg0 = tmp46 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp12)->tag != 20) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_1) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_2) ; /* tmp50 = */ s2explst_app_04570_ (tmp48, arg1) ; arg0 = tmp49 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp12)->tag != 21) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp53 = */ s2explst_app_04570_ (tmp51, arg1) ; /* tmp11 = */ s2explst_app_04570_ (tmp52, arg1) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp12)->tag != 22) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_8, tmp12, atslab_1) ; arg0 = tmp54 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp12)->tag != 23) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_1, tmp12, atslab_0) ; arg0 = tmp55 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp12)->tag != 24) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp56 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp58 = */ s2exp_app_04569_ (tmp56, arg1) ; /* tmp11 = */ s2explst_app_04570_ (tmp57, arg1) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp12)->tag != 25) { goto __ats_lab_37_0 ; } __ats_lab_34_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_9, tmp12, atslab_2) ; /* tmp11 = */ labs2explst_app_04572_ (tmp59, arg1) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp12)->tag != 26) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_1, tmp12, atslab_0) ; arg0 = tmp65 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp12)->tag != 27) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_1) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_2) ; /* tmp69 = */ s2varlst_app_04567_ (tmp66, arg1) ; /* tmp70 = */ s2explst_app_04570_ (tmp67, arg1) ; arg0 = tmp68 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp12)->tag != 28) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_1) ; tmp73 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_2) ; /* tmp74 = */ s2varlst_app_04567_ (tmp71, arg1) ; /* tmp75 = */ s2explst_app_04570_ (tmp72, arg1) ; arg0 = tmp73 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp12)->tag != 29) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_8, tmp12, atslab_1) ; arg0 = tmp76 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp12)->tag != 30) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_1, tmp12, atslab_0) ; arg0 = tmp77 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_04569_ ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp12)->tag != 31) { goto __ats_lab_47_0 ; } __ats_lab_42_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; /* tmp80 = */ s2exp_app_04569_ (tmp78, arg1) ; /* tmp11 = */ wths2explst_app_04573_ (tmp79, arg1) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (((ats_sum_ptr_type)tmp12)->tag != 32) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: break ; } while (0) ; return /* (tmp11) */ ; } /* end of [s2exp_app_04569_] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_appenv.hats: 1890(line=70, offs=3) -- 2395(line=94, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itm_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itm_app: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2var_app (tmp1, arg1) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__h3ypo_app (tmp2, arg1) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2Var_app (tmp3, arg1) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__c3nstr_app (tmp4, arg1) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_7_0 ; } __ats_lab_4_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp5), atslab_c3nstroptref_ref) ; tmp7 = ats_ptrget_mac(ats_ptr_type, tmp6) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (tmp7 != (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (tmp7 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_3, tmp7, atslab_0) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__c3nstr_app (tmp8, arg1) ; break ; } while (0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlstlst_app (tmp9, arg1) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (((ats_sum_ptr_type)arg0)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp0 = */ s2exp_app_04569_ (tmp10, arg1) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itm_app] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_appenv.hats: 2467(line=100, offs=3) -- 2628(line=110, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlst_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlst_app: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itm_app (tmp90, arg1) ; arg0 = tmp91 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlst_app ; // tail call break ; } while (0) ; return /* (tmp89) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlst_app] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_appenv.hats: 2688(line=114, offs=3) -- 2861(line=124, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlstlst_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlstlst_app: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlst_app (tmp94, arg1) ; arg0 = tmp95 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlstlst_app ; // tail call break ; } while (0) ; return /* (tmp93) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlstlst_app] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_appenv.hats: 2939(line=130, offs=3) -- 3209(line=146, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__h3ypo_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; // ATSlocal_void (tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__h3ypo_app: tmp98 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_h3ypo_node) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp98)->tag != 0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_1, tmp98, atslab_0) ; /* tmp97 = */ s2exp_app_04569_ (tmp99, arg1) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp98)->tag != 1) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_5, tmp98, atslab_0) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_5, tmp98, atslab_1) ; /* tmp102 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2var_app (tmp100, arg1) ; /* tmp97 = */ s2exp_app_04569_ (tmp101, arg1) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (((ats_sum_ptr_type)tmp98)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_5, tmp98, atslab_0) ; tmp104 = ats_caselptrlab_mac(anairiats_sum_5, tmp98, atslab_1) ; /* tmp105 = */ s2exp_app_04569_ (tmp103, arg1) ; /* tmp97 = */ s2exp_app_04569_ (tmp104, arg1) ; break ; } while (0) ; return /* (tmp97) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__h3ypo_app] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_appenv.hats: 3277(line=152, offs=3) -- 3528(line=166, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__c3nstr_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__c3nstr_app: tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_c3nstr_node) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp107)->tag != 0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_1, tmp107, atslab_0) ; /* tmp106 = */ s2exp_app_04569_ (tmp108, arg1) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp107)->tag != 1) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_1, tmp107, atslab_0) ; /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__s3itmlst_app (tmp109, arg1) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (((ats_sum_ptr_type)tmp107)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_1, tmp107, atslab_0) ; /* tmp106 = */ s2exp_app_04569_ (tmp110, arg1) ; break ; } while (0) ; return /* (tmp106) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__c3nstr_app] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 6564(line=322, offs=14) -- 6647(line=326, offs=53) */ ATSstaticdec() ats_void_type s2expopt_app_04574_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab_s2expopt_app_04574_: do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp117 = */ s2exp_app_04569_ (tmp118, arg1) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: break ; } while (0) ; return /* (tmp117) */ ; } /* end of [s2expopt_app_04574_] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_mapgen.dats: 2029(line=78, offs=3) -- 2469(line=107, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2cst_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_bool_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2cst_app: // tmp112 = &ats_caselptrlab_mac(anairiats_sum_11, ats_castfn_mac(ats_ptr_type, arg1), atslab_0) ; tmp114 = ats_ptrget_mac(ats_ptr_type, tmp112) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_ismem (tmp114, arg0) ; if (tmp113) { /* empty */ } else { tmp116 = ats_ptrget_mac(ats_ptr_type, tmp112) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add (tmp116, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp112) = tmp115 ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def (arg0) ; /* tmp111 = */ s2expopt_app_04574_ (tmp119, arg1) ; } /* end of [if] */ return /* (tmp111) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2cst_app] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_mapgen.dats: 2515(line=111, offs=3) -- 2766(line=123, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2var_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2var_app: // tmp121 = &ats_caselptrlab_mac(anairiats_sum_11, ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; tmp123 = ats_ptrget_mac(ats_ptr_type, tmp121) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add (tmp123, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp121) = tmp122 ; return /* (tmp120) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2var_app] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 7722(line=389, offs=3) -- 7769(line=389, offs=50) */ ATSstaticdec() ats_void_type s2zexplst_app_04577_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp139) ; __ats_lab_s2zexplst_app_04577_: /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &s2zexp_app_04576_) ; return /* (tmp139) */ ; } /* end of [s2zexplst_app_04577_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 7812(line=394, offs=3) -- 7864(line=394, offs=55) */ ATSstaticdec() ats_void_type s2zexplstlst_app_04578_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp138) ; __ats_lab_s2zexplstlst_app_04578_: /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &s2zexplst_app_04577_) ; return /* (tmp138) */ ; } /* end of [s2zexplstlst_app_04578_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 7928(line=401, offs=3) -- 8120(line=410, offs=6) */ ATSstaticdec() ats_void_type labs2zexplst_app_04579_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; // ATSlocal_void (tmp152) ; __ats_lab_labs2zexplst_app_04579_: do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp150 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp151 = ats_caselptrlab_mac(anairiats_sum_10, tmp149, atslab_1) ; /* tmp152 = */ s2zexp_app_04576_ (tmp151, arg1) ; arg0 = tmp150 ; arg1 = arg1 ; goto __ats_lab_labs2zexplst_app_04579_ ; // tail call break ; } while (0) ; return /* (tmp148) */ ; } /* end of [labs2zexplst_app_04579_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 7046(line=353, offs=3) -- 7630(line=380, offs=19) */ ATSstaticdec() ats_void_type s2zexp_app_04576_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; // ATSlocal_void (tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; __ats_lab_s2zexp_app_04576_: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_62_0 ; } __ats_lab_61_1: break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2cst_app (tmp134, arg1) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2var_app (tmp135, arg1) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2Var_app (tmp136, arg1) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; /* tmp133 = */ s2zexplstlst_app_04578_ (tmp137, arg1) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; /* tmp133 = */ s2zexplstlst_app_04578_ (tmp140, arg1) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; /* tmp143 = */ s2zexp_app_04576_ (tmp141, arg1) ; /* tmp133 = */ s2zexplst_app_04577_ (tmp142, arg1) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; /* tmp146 = */ s2zexp_app_04576_ (tmp144, arg1) ; /* tmp133 = */ s2explst_app_04570_ (tmp145, arg1) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_72_0 ; } __ats_lab_69_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; /* tmp133 = */ labs2zexplst_app_04579_ (tmp147, arg1) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_73_0 ; } __ats_lab_72_1: break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: // if (((ats_sum_ptr_type)arg0)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_73_1: break ; } while (0) ; return /* (tmp133) */ ; } /* end of [s2zexp_app_04576_] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_mapgen.dats: 2812(line=127, offs=3) -- 3346(line=161, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2Var_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_bool_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2Var_app: // tmp125 = &ats_caselptrlab_mac(anairiats_sum_11, ats_castfn_mac(ats_ptr_type, arg1), atslab_2) ; tmp127 = ats_ptrget_mac(ats_ptr_type, tmp125) ; tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_ismem (tmp127, arg0) ; if (tmp126) { /* empty */ } else { tmp129 = ats_ptrget_mac(ats_ptr_type, tmp125) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add (tmp129, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp125) = tmp128 ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link (arg0) ; /* tmp131 = */ s2expopt_app_04574_ (tmp130, arg1) ; tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (arg0) ; /* tmp124 = */ s2zexp_app_04576_ (tmp132, arg1) ; } /* end of [if] */ return /* (tmp124) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__s2Var_app] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_mapgen.dats: 3390(line=163, offs=21) -- 3405(line=163, offs=36) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__d2con_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp153) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__d2con_app: return /* (tmp153) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__d2con_app] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_mapgen.dats: 3464(line=169, offs=3) -- 3810(line=186, offs=4) */ ATSglobaldec() anairiats_rec_15 _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_mapgen_scst_svar (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_15, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; // ATSlocal_void (tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; // ATSlocal_void (tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_mapgen_scst_svar: tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_nil () ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil () ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil () ; tmp158 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp158, atslab_0, tmp155) ; ats_selptrset_mac(anairiats_sum_11, tmp158, atslab_1, tmp156) ; ats_selptrset_mac(anairiats_sum_11, tmp158, atslab_2, tmp157) ; /* tmp159 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_appenv_2ehats__c3nstr_app (arg0, ats_castfn_mac(ats_ptr_type, tmp158)) ; // tmp160 = ats_caselptrlab_mac(anairiats_sum_11, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp158)), atslab_0) ; tmp161 = ats_caselptrlab_mac(anairiats_sum_11, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp158)), atslab_1) ; tmp162 = ats_caselptrlab_mac(anairiats_sum_11, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp158)), atslab_2) ; ATS_FREE(ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp158))) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_free (tmp162) ; tmp154.atslab_0 = tmp160 ; tmp154.atslab_1 = tmp161 ; return (tmp154) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_mapgen_scst_svar] */ /* 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_jsonize_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_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_jsonize_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__MYENV_0.tag = 0 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_constraint3_mapgen_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp3_dats.c0000644000175000017500000053516013431250607022131 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_p3at_loc ; ats_ptr_type atslab_p3at_node ; ats_ptr_type atslab_p3at_type ; ats_ptr_type atslab_p3at_dvaropt ; ats_ptr_type atslab_p3at_type_left ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_19 ; typedef struct { ats_ptr_type atslab_d3lab_loc ; ats_ptr_type atslab_d3lab_node ; ats_ptr_type atslab_d3lab_overld ; ats_ptr_type atslab_d3lab_overld_app ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_i3fcl_loc ; ats_ptr_type atslab_i3fcl_test ; ats_ptr_type atslab_i3fcl_body ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_gm3at_loc ; ats_ptr_type atslab_gm3at_exp ; ats_ptr_type atslab_gm3at_pat ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_c3lau_loc ; ats_ptr_type atslab_c3lau_pat ; ats_ptr_type atslab_c3lau_gua ; ats_int_type atslab_c3lau_seq ; ats_int_type atslab_c3lau_neg ; ats_ptr_type atslab_c3lau_body ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_sc3lau_loc ; ats_ptr_type atslab_sc3lau_pat ; ats_ptr_type atslab_sc3lau_body ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_i3mpdec_loc ; ats_ptr_type atslab_i3mpdec_cst ; ats_ptr_type atslab_i3mpdec_imparg ; ats_ptr_type atslab_i3mpdec_tmparg ; ats_ptr_type atslab_i3mpdec_def ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_f3undec_loc ; ats_ptr_type atslab_f3undec_var ; ats_ptr_type atslab_f3undec_def ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_v3aldec_loc ; ats_ptr_type atslab_v3aldec_pat ; ats_ptr_type atslab_v3aldec_def ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_v3ardec_loc ; ats_int_type atslab_v3ardec_knd ; ats_ptr_type atslab_v3ardec_dvar_var ; ats_ptr_type atslab_v3ardec_dvar_view ; ats_ptr_type atslab_v3ardec_type ; ats_ptr_type atslab_v3ardec_init ; ats_ptr_type atslab_v3ardec_dvaropt ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_prv3ardec_loc ; ats_ptr_type atslab_prv3ardec_dvar ; ats_ptr_type atslab_prv3ardec_type ; ats_ptr_type atslab_prv3ardec_init ; } anairiats_rec_29 ; typedef struct { ats_ptr_type atslab_d3ecl_loc ; ats_ptr_type atslab_d3ecl_node ; } anairiats_rec_30 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_31 ; /* external typedefs */ typedef anairiats_rec_20 *d3lab_t ; typedef anairiats_rec_11 *d3exp_t ; typedef anairiats_rec_1 *p3at_t ; /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; 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_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKlincon_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__LABP3AT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trec_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tlst_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Terrpat_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ef0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecstsp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etyrep_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eliteral_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etop_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextval_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextfcall_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextmcall_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Econ_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpcst_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpvar_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efoldat_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efreeat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eitem_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_sta_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_dyn_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eif_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esif_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecase_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Escase_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eifcase_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elst_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etup_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erec_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eseq_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eselab_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofvar_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofsel_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erefarg_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_var_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ptr_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ref_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_var_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ptr_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ref_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_var_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ptr_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ref_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_assgn_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrpsz_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrinit_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eraise_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eeffmask_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evararg_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evcopyenv_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etempenver_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eann_type_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_dyn_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elaminit_dyn_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_sta_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_met_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efix_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Edelay_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eldelay_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elazyeval_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloop_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloopexn_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etrywith_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esolverify_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eerrexp_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Csaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Creassume_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextcode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cexndecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdatdecs_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdcstdecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cfundecs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_rec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvardecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cprvardecs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cinclude_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaload_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaloadloc_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdynload_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clocal_20) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_pckind_pckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_bool_type aux_labp3atlst_26 (ats_ptr_type arg0) ; static ats_void_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_34 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_bool_type f_56 (ats_ptr_type arg0) ; static ats_bool_type loop_59 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_exists_funenv_01325_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_exists_fun_01326_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type aux1_55 (ats_ptr_type arg0) ; static ats_ptr_type aux2_60 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 1671(line=52, offs=3) -- 1795(line=58, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node: tmp1 = (ats_sum_ptr_type)0 ; tmp2 = (ats_sum_ptr_type)0 ; tmp0 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_p3at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_p3at_node, arg2) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_p3at_type, arg1) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_p3at_dvaropt, tmp1) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_p3at_type_left, tmp2) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 1845(line=62, offs=3) -- 1902(line=63, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_any (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_any: tmp4 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp4)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp4, atslab_0, arg2) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp4) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_any] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 1946(line=68, offs=3) -- 2003(line=69, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_var: tmp6 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp6)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp6, atslab_0, arg2) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp6) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 2047(line=74, offs=3) -- 2139(line=77, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_con: tmp8 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp8)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp8, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_3, tmp8, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_3, tmp8, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_3, tmp8, atslab_3, arg5) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp8) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_con] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 2185(line=82, offs=3) -- 2238(line=83, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_int (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_int: tmp10 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp10)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp10, atslab_0, arg2) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp10) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_int] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 2284(line=87, offs=3) -- 2344(line=88, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_intrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_intrep: tmp12 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp12)->tag = 4 ; ats_selptrset_mac(anairiats_sum_2, tmp12, atslab_0, arg2) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp12) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_intrep] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 2392(line=93, offs=3) -- 2446(line=94, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_bool (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_bool: tmp14 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp14)->tag = 5 ; ats_selptrset_mac(anairiats_sum_5, tmp14, atslab_0, arg2) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp14) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_bool] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 2492(line=99, offs=3) -- 2546(line=100, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_char (ats_ptr_type arg0, ats_ptr_type arg1, ats_char_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_char: tmp16 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp16)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp16, atslab_0, arg2) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp16) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_char] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 2593(line=105, offs=3) -- 2653(line=106, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_float (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_float: tmp18 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp18)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp18, atslab_0, arg2) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp18) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_float] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 2702(line=111, offs=3) -- 2763(line=112, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_string (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_string: tmp20 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp20)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp20, atslab_0, arg2) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp20) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_string] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 2811(line=117, offs=3) -- 2865(line=118, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_i0nt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_i0nt: tmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp22)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp22, atslab_0, arg2) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp22) ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 2913(line=123, offs=3) -- 2969(line=124, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_f0loat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_f0loat: tmp24 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp24)->tag = 10 ; ats_selptrset_mac(anairiats_sum_2, tmp24, atslab_0, arg2) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp24) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3018(line=129, offs=3) -- 3075(line=130, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_empty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_empty: tmp26 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tempty_11) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp26) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_empty] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3142(line=136, offs=10) -- 3239(line=140, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_rec: tmp28 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp28)->tag = 12 ; ats_selptrset_mac(anairiats_sum_7, tmp28, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp28, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_7, tmp28, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_7, tmp28, atslab_3, arg5) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp28) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_rec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3264(line=144, offs=10) -- 3353(line=146, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_lst (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_lst: tmp30 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp30)->tag = 13 ; ats_selptrset_mac(anairiats_sum_8, tmp30, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_8, tmp30, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_8, tmp30, atslab_2, arg4) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp30) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_lst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3399(line=151, offs=12) -- 3472(line=153, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_refas (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_refas: tmp32 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp32)->tag = 14 ; ats_selptrset_mac(anairiats_sum_9, tmp32, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp32, atslab_1, arg3) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp32) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_refas] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3495(line=156, offs=12) -- 3570(line=158, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_exist (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_exist: tmp34 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp34)->tag = 15 ; ats_selptrset_mac(anairiats_sum_9, tmp34, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp34, atslab_1, arg3) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp34) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_exist] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3592(line=161, offs=11) -- 3654(line=163, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_vbox (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_vbox: tmp36 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp36)->tag = 16 ; ats_selptrset_mac(anairiats_sum_2, tmp36, atslab_0, arg2) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp36) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_vbox] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3675(line=166, offs=10) -- 3746(line=168, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_ann (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_ann: tmp38 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp38)->tag = 17 ; ats_selptrset_mac(anairiats_sum_9, tmp38, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp38, atslab_1, arg3) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp38) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_ann] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3772(line=172, offs=3) -- 3824(line=172, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat: tmp40 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Terrpat_18) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_make_node (arg0, arg1, tmp40) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3895(line=178, offs=15) -- 3916(line=178, offs=36) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type: tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p3at_type) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3944(line=180, offs=18) -- 3968(line=180, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_dvaropt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_dvaropt: tmp42 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p3at_dvaropt) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_dvaropt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 3998(line=182, offs=20) -- 4024(line=182, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left: tmp43 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p3at_type_left) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 4069(line=187, offs=13) -- 4136(line=189, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_prf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_prf: tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type (arg0) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (tmp45) ; return (tmp44) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_prf] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 4208(line=194, offs=16) -- 4300(line=197, offs=58) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_lincon (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_lincon: tmp47 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p3at_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp47)->tag != 2) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp49 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKlincon_1) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_pckind_pckind (tmp48, tmp49) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp46 = ats_false_bool ; break ; } while (0) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_lincon] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 4359(line=201, offs=16) -- 4451(line=204, offs=58) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_unfold (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_unfold: tmp51 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p3at_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp51)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_3, tmp51, atslab_0) ; tmp53 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_pckind_pckind (tmp52, tmp53) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp50 = ats_false_bool ; break ; } while (0) ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_unfold] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 4517(line=212, offs=1) -- 4789(line=228, offs=2) */ ATSstaticdec() ats_bool_type aux_labp3atlst_26 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; __ats_lab_aux_labp3atlst_26: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp54 = ats_true_bool ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; // tmp57 = ats_caselptrlab_mac(anairiats_sum_10, tmp55, atslab_1) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full (tmp57) ; if (tmp58) { arg0 = tmp56 ; goto __ats_lab_aux_labp3atlst_26 ; // tail call } else { tmp54 = ats_false_bool ; } /* end of [if] */ break ; } while (0) ; return (tmp54) ; } /* end of [aux_labp3atlst_26] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 4838(line=234, offs=3) -- 5222(line=259, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full: tmp60 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p3at_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp60)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp59 = ats_true_bool ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp60)->tag != 1) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp59 = ats_true_bool ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp60)->tag != 11) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp59 = ats_true_bool ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp60)->tag != 12) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_7, tmp60, atslab_3) ; tmp59 = aux_labp3atlst_26 (tmp61) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp60)->tag != 14) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_9, tmp60, atslab_1) ; arg0 = tmp62 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full ; // tail call break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp60)->tag != 15) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_9, tmp60, atslab_1) ; arg0 = tmp63 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp60)->tag != 17) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_9, tmp60, atslab_0) ; arg0 = tmp64 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp59 = ats_false_bool ; break ; } while (0) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 5327(line=268, offs=15) -- 5349(line=268, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type: tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_d3exp_type) ; return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab_loop_32: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp73 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp71, arg3) ; tmp74 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp74, atslab_0, tmp73) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp74 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp75 = &ats_caselptrlab_mac(anairiats_sum_10, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp72 ; arg1 = arg1 ; arg2 = tmp75 ; arg3 = arg3 ; goto __ats_lab_loop_32 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp76 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp76 ; break ; } while (0) ; return /* (tmp70) */ ; } /* end of [loop_32] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp77) ; // ATSlocal_void (tmp78) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp77 ; */ /* tmp78 = */ loop_32 (arg0, arg1, (&tmp77), arg2) ; tmp69 = tmp77 ; return (tmp69) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp68 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp68) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 5406(line=274, offs=3) -- 5501(line=281, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_type: tmp67 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) ; tmp66 = ats_castfn_mac(ats_ptr_type, tmp67) ; return (tmp66) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 5633(line=292, offs=5) -- 5972(line=309, offs=2) */ ATSstaticdec() ats_ptr_type auxlst_34 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_int_type, tmp88) ; __ats_lab_auxlst_34: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp80 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp82 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg1) ; tmp84 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp81), atslab_d3exp_type) ; tmp86 = (ats_sum_ptr_type)0 ; tmp85 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp85, atslab_0, tmp83) ; ats_selptrset_mac(anairiats_sum_12, tmp85, atslab_1, tmp86) ; ats_selptrset_mac(anairiats_sum_12, tmp85, atslab_2, tmp84) ; tmp88 = atspre_add_int_int (arg1, 1) ; tmp87 = auxlst_34 (tmp82, tmp88) ; tmp80 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp80, atslab_0, tmp85) ; ats_selptrset_mac(anairiats_sum_10, tmp80, atslab_1, tmp87) ; break ; } while (0) ; return (tmp80) ; } /* end of [auxlst_34] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 5589(line=287, offs=1) -- 5996(line=311, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_labtype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_labtype: tmp79 = auxlst_34 (arg0, 0) ; return (tmp79) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_labtype] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 6082(line=316, offs=14) -- 6170(line=320, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf: tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg0) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (tmp90) ; return (tmp89) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 6225(line=323, offs=17) -- 6277(line=324, offs=45) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_isnot_prf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_bool_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_isnot_prf: tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (arg0) ; if (tmp92) { tmp91 = ats_false_bool ; } else { tmp91 = ats_true_bool ; } /* end of [if] */ return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_isnot_prf] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 6323(line=330, offs=1) -- 6411(line=336, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cst: tmp94 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp94)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp94, atslab_0, arg2) ; tmp93 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp93, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp93, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp93, atslab_d3exp_node, tmp94) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 6476(line=342, offs=1) -- 6564(line=348, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_var: tmp96 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp96)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp96, atslab_0, arg2) ; tmp95 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp95, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp95, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp95, atslab_d3exp_node, tmp96) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 6631(line=354, offs=3) -- 6711(line=358, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_int (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_int: tmp98 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp98)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp98, atslab_0, arg2) ; tmp97 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp97, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp97, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp97, atslab_d3exp_node, tmp98) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_int] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 6759(line=361, offs=3) -- 6846(line=365, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_intrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_intrep: tmp100 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp100)->tag = 3 ; ats_selptrset_mac(anairiats_sum_2, tmp100, atslab_0, arg2) ; tmp99 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp99, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp99, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp99, atslab_d3exp_node, tmp100) ; return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_intrep] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 6917(line=371, offs=3) -- 6998(line=375, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_bool (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_bool: tmp102 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp102)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp102, atslab_0, arg2) ; tmp101 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp101, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp101, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp101, atslab_d3exp_node, tmp102) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_bool] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 7046(line=379, offs=3) -- 7127(line=383, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_char (ats_ptr_type arg0, ats_ptr_type arg1, ats_char_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_char: tmp104 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp104)->tag = 5 ; ats_selptrset_mac(anairiats_sum_6, tmp104, atslab_0, arg2) ; tmp103 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp103, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp103, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp103, atslab_d3exp_node, tmp104) ; return (tmp103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_char] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 7176(line=387, offs=3) -- 7262(line=391, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_float (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_float: tmp106 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp106)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp106, atslab_0, arg2) ; tmp105 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp105, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp105, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp105, atslab_d3exp_node, tmp106) ; return (tmp105) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_float] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 7313(line=395, offs=3) -- 7400(line=399, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_string (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_string: tmp108 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp108)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp108, atslab_0, arg2) ; tmp107 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp107, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp107, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp107, atslab_d3exp_node, tmp108) ; return (tmp107) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_string] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 7471(line=405, offs=3) -- 7552(line=409, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_i0nt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_i0nt: tmp110 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp110)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp110, atslab_0, arg2) ; tmp109 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp109, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp109, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp109, atslab_d3exp_node, tmp110) ; return (tmp109) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 7602(line=413, offs=3) -- 7685(line=417, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_f0loat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_f0loat: tmp112 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp112)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp112, atslab_0, arg2) ; tmp111 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp111, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp111, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp111, atslab_d3exp_node, tmp112) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 7755(line=423, offs=3) -- 7831(line=427, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_top (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_top: tmp114 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etop_13) ; tmp113 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp113, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp113, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp113, atslab_d3exp_node, tmp114) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_top] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 7879(line=431, offs=3) -- 7957(line=435, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_empty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_empty: tmp116 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eempty_14) ; tmp115 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp115, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp115, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp115, atslab_d3exp_node, tmp116) ; return (tmp115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_empty] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 8028(line=441, offs=3) -- 8114(line=445, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cstsp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cstsp: tmp118 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp118)->tag = 10 ; ats_selptrset_mac(anairiats_sum_2, tmp118, atslab_0, arg2) ; tmp117 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp117, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp117, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp117, atslab_d3exp_node, tmp118) ; return (tmp117) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cstsp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 8185(line=451, offs=3) -- 8279(line=455, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tyrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tyrep: tmp120 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp120)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp120, atslab_0, arg2) ; tmp119 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp119, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp119, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp119, atslab_d3exp_node, tmp120) ; return (tmp119) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tyrep] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 8352(line=461, offs=3) -- 8448(line=465, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_literal (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_literal: tmp122 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp122)->tag = 12 ; ats_selptrset_mac(anairiats_sum_2, tmp122, atslab_0, arg2) ; tmp121 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp121, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp121, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp121, atslab_d3exp_node, tmp122) ; return (tmp121) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_literal] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 8522(line=471, offs=3) -- 8611(line=475, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extval (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extval: tmp124 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp124)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp124, atslab_0, arg2) ; tmp123 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp123, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp123, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp123, atslab_d3exp_node, tmp124) ; return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extval] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 8665(line=479, offs=3) -- 8768(line=483, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extfcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extfcall: tmp126 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp126)->tag = 16 ; ats_selptrset_mac(anairiats_sum_9, tmp126, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp126, atslab_1, arg3) ; tmp125 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp125, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp125, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp125, atslab_d3exp_node, tmp126) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extfcall] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 8824(line=487, offs=3) -- 8939(line=491, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extmcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extmcall: tmp128 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp128)->tag = 17 ; ats_selptrset_mac(anairiats_sum_13, tmp128, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp128, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp128, atslab_2, arg4) ; tmp127 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp127, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp127, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp127, atslab_d3exp_node, tmp128) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extmcall] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 9220(line=512, offs=6) -- 9302(line=514, offs=34) */ ATSstaticdec() ats_bool_type f_56 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab_f_56: tmp131 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_d3exp_node) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp131)->tag != 13) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp130 = ats_true_bool ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp130 = ats_false_bool ; break ; } while (0) ; return (tmp130) ; } /* end of [f_56] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 13947(line=514, offs=7) -- 14180(line=521, offs=22) */ ATSstaticdec() ats_bool_type loop_59 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_bool_type, tmp137) ; __ats_lab_loop_59: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp136 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp137 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp135, arg2) ; if (tmp137) { tmp134 = ats_true_bool ; } else { arg0 = tmp136 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_59 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp134 = ats_false_bool ; break ; } while (0) ; return (tmp134) ; } /* end of [loop_59] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 13917(line=513, offs=20) -- 14231(line=525, offs=4) */ ATSstaticdec() ats_bool_type list_exists_funenv_01325_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp133) ; __ats_lab_list_exists_funenv_01325_ats_ptr_type: tmp133 = loop_59 (arg0, arg1, arg2) ; return (tmp133) ; } /* end of [list_exists_funenv_01325_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 14303(line=529, offs=11) -- 14565(line=538, offs=4) */ ATSstaticdec() ats_bool_type list_exists_fun_01326_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp132) ; __ats_lab_list_exists_fun_01326_ats_ptr_type: tmp132 = list_exists_funenv_01325_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp132) ; } /* end of [list_exists_fun_01326_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 9176(line=509, offs=5) -- 9344(line=517, offs=4) */ ATSstaticdec() ats_bool_type aux1_55 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp129) ; __ats_lab_aux1_55: tmp129 = list_exists_fun_01326_ats_ptr_type (arg0, &f_56) ; return (tmp129) ; } /* end of [aux1_55] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 9367(line=519, offs=5) -- 9763(line=535, offs=2) */ ATSstaticdec() ats_ptr_type aux2_60 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab_aux2_60: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_22_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp139) ; tmp143 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp139), atslab_d3exp_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp143)->tag != 13) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0 (tmp141) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp142 = tmp141 ; break ; } while (0) ; tmp144 = aux2_60 (tmp140) ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp138, atslab_0, tmp142) ; ats_selptrset_mac(anairiats_sum_10, tmp138, atslab_1, tmp144) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp138 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp138) ; } /* end of [aux2_60] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 9823(line=540, offs=11) -- 10150(line=555, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_bool_type, tmp147) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_con: /* ats_ptr_type tmp146 ; */ tmp146 = arg1 ; tmp147 = aux1_55 (arg4) ; if (tmp147) { tmp149 = aux2_60 (arg4) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp (arg2, tmp149) ; tmp146 = tmp150 ; } else { /* empty */ } /* end of [if] */ tmp151 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp151)->tag = 18 ; ats_selptrset_mac(anairiats_sum_14, tmp151, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp151, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp151, atslab_2, arg4) ; tmp145 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp145, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp145, atslab_d3exp_type, tmp146) ; ats_selptrset_mac(anairiats_rec_11, tmp145, atslab_d3exp_node, tmp151) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_con] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 10241(line=562, offs=14) -- 10354(line=568, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpcst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpcst: tmp153 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp153)->tag = 19 ; ats_selptrset_mac(anairiats_sum_9, tmp153, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp153, atslab_1, arg3) ; tmp152 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp152, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp152, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp152, atslab_d3exp_node, tmp153) ; return (tmp152) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpcst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 10404(line=571, offs=14) -- 10517(line=577, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpvar: tmp155 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp155)->tag = 20 ; ats_selptrset_mac(anairiats_sum_9, tmp155, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp155, atslab_1, arg3) ; tmp154 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp154, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp154, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp154, atslab_d3exp_node, tmp155) ; return (tmp154) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 10590(line=583, offs=3) -- 10715(line=589, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_foldat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_foldat: tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp158 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp158)->tag = 21 ; ats_selptrset_mac(anairiats_sum_2, tmp158, atslab_0, arg1) ; tmp156 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp156, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp156, atslab_d3exp_type, tmp157) ; ats_selptrset_mac(anairiats_rec_11, tmp156, atslab_d3exp_node, tmp158) ; return (tmp156) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_foldat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 10767(line=593, offs=3) -- 10892(line=599, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_freeat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_freeat: tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp161 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp161)->tag = 22 ; ats_selptrset_mac(anairiats_sum_2, tmp161, atslab_0, arg1) ; tmp159 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp159, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp159, atslab_d3exp_type, tmp160) ; ats_selptrset_mac(anairiats_rec_11, tmp159, atslab_d3exp_node, tmp161) ; return (tmp159) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_freeat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 10961(line=604, offs=12) -- 11078(line=610, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_item (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_item: tmp163 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp163)->tag = 23 ; ats_selptrset_mac(anairiats_sum_9, tmp163, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp163, atslab_1, arg3) ; tmp162 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp162, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp162, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp162, atslab_d3exp_node, tmp163) ; return (tmp162) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_item] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 11144(line=615, offs=11) -- 11283(line=623, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_let (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_let: tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg2) ; tmp166 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp166)->tag = 24 ; ats_selptrset_mac(anairiats_sum_9, tmp166, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp166, atslab_1, arg2) ; tmp164 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp164, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp164, atslab_d3exp_type, tmp165) ; ats_selptrset_mac(anairiats_rec_11, tmp164, atslab_d3exp_node, tmp166) ; return (tmp164) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_let] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 11354(line=629, offs=3) -- 11442(line=633, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta: tmp168 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp168)->tag = 25 ; ats_selptrset_mac(anairiats_sum_2, tmp168, atslab_0, arg2) ; tmp167 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp167, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp167, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp167, atslab_d3exp_node, tmp168) ; return (tmp167) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 11520(line=639, offs=3) -- 11715(line=648, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_unista (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_unista: tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg2) ; tmp171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp170), atslab_s2exp_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp171)->tag != 28) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp171)->tag != 20) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp169 = arg2 ; break ; } while (0) ; return (tmp169) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_unista] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 11791(line=654, offs=1) -- 11907(line=660, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn: tmp173 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp173)->tag = 26 ; ats_selptrset_mac(anairiats_sum_14, tmp173, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp173, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp173, atslab_2, arg4) ; tmp172 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp172, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp172, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp172, atslab_d3exp_node, tmp173) ; return (tmp172) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 11976(line=665, offs=11) -- 12102(line=671, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lst (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lst: tmp175 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp175)->tag = 32 ; ats_selptrset_mac(anairiats_sum_8, tmp175, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_8, tmp175, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_8, tmp175, atslab_2, arg4) ; tmp174 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp174, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp174, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp174, atslab_d3exp_node, tmp175) ; return (tmp174) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 12146(line=674, offs=11) -- 12264(line=680, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tup (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tup: tmp177 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp177)->tag = 33 ; ats_selptrset_mac(anairiats_sum_16, tmp177, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp177, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp177, atslab_2, arg4) ; tmp176 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp176, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp176, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp176, atslab_d3exp_node, tmp177) ; return (tmp176) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tup] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 12308(line=683, offs=11) -- 12428(line=689, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_rec: tmp179 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp179)->tag = 34 ; ats_selptrset_mac(anairiats_sum_16, tmp179, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp179, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp179, atslab_2, arg4) ; tmp178 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp178, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp178, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp178, atslab_d3exp_node, tmp179) ; return (tmp178) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_rec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 12472(line=692, offs=11) -- 12562(line=698, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_seq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_seq: tmp181 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp181)->tag = 35 ; ats_selptrset_mac(anairiats_sum_2, tmp181, atslab_0, arg2) ; tmp180 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp180, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp180, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp180, atslab_d3exp_node, tmp181) ; return (tmp180) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_seq] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 12626(line=703, offs=10) -- 12751(line=709, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_if (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_if: tmp183 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp183)->tag = 27 ; ats_selptrset_mac(anairiats_sum_13, tmp183, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp183, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp183, atslab_2, arg4) ; tmp182 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp182, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp182, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp182, atslab_d3exp_node, tmp183) ; return (tmp182) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_if] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 12794(line=712, offs=11) -- 12922(line=718, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sif (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sif: tmp185 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp185)->tag = 28 ; ats_selptrset_mac(anairiats_sum_13, tmp185, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp185, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp185, atslab_2, arg4) ; tmp184 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp184, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp184, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp184, atslab_d3exp_node, tmp185) ; return (tmp184) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sif] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 12990(line=723, offs=14) -- 13101(line=729, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ifcase (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ifcase: tmp187 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp187)->tag = 31 ; ats_selptrset_mac(anairiats_sum_17, tmp187, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp187, atslab_1, arg3) ; tmp186 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp186, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp186, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp186, atslab_d3exp_node, tmp187) ; return (tmp186) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ifcase] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 13170(line=734, offs=12) -- 13310(line=741, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_case (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_case: tmp189 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp189)->tag = 29 ; ats_selptrset_mac(anairiats_sum_13, tmp189, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp189, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp189, atslab_2, arg4) ; tmp188 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp188, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp188, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp188, atslab_d3exp_node, tmp189) ; return (tmp188) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_case] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 13357(line=744, offs=13) -- 13492(line=751, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_scase (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_scase: tmp191 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp191)->tag = 30 ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_1, arg3) ; tmp190 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp190, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp190, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp190, atslab_d3exp_node, tmp191) ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_scase] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 13561(line=756, offs=13) -- 13663(line=762, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_selab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_selab: tmp193 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp193)->tag = 36 ; ats_selptrset_mac(anairiats_sum_9, tmp193, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp193, atslab_1, arg3) ; tmp192 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp192, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp192, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp192, atslab_d3exp_node, tmp193) ; return (tmp192) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_selab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 13737(line=768, offs=3) -- 13826(line=772, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofvar: tmp195 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp195)->tag = 37 ; ats_selptrset_mac(anairiats_sum_2, tmp195, atslab_0, arg2) ; tmp194 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp194, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp194, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp194, atslab_d3exp_node, tmp195) ; return (tmp194) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofvar] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 13880(line=775, offs=16) -- 13997(line=781, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofsel (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofsel: tmp197 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp197)->tag = 38 ; ats_selptrset_mac(anairiats_sum_13, tmp197, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp197, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp197, atslab_2, arg4) ; tmp196 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp196, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp196, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp196, atslab_d3exp_node, tmp197) ; return (tmp196) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofsel] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 14072(line=787, offs=3) -- 14173(line=791, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat: tmp199 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp199)->tag = 39 ; ats_selptrset_mac(anairiats_sum_9, tmp199, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp199, atslab_1, arg3) ; tmp198 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp198, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp198, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp198, atslab_d3exp_node, tmp199) ; return (tmp198) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 14229(line=794, offs=20) -- 14394(line=802, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat_assgn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat_assgn: tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp202 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp202)->tag = 50 ; ats_selptrset_mac(anairiats_sum_13, tmp202, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_13, tmp202, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp202, atslab_2, arg3) ; tmp200 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp200, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp200, atslab_d3exp_type, tmp201) ; ats_selptrset_mac(anairiats_rec_11, tmp200, atslab_d3exp_node, tmp202) ; return (tmp200) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat_assgn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 14472(line=807, offs=15) -- 14588(line=813, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_var: tmp204 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp204)->tag = 41 ; ats_selptrset_mac(anairiats_sum_13, tmp204, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp204, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp204, atslab_2, arg4) ; tmp203 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp203, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp203, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp203, atslab_d3exp_node, tmp204) ; return (tmp203) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 14663(line=819, offs=3) -- 14775(line=823, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ptr: tmp206 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp206)->tag = 42 ; ats_selptrset_mac(anairiats_sum_13, tmp206, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp206, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp206, atslab_2, arg4) ; tmp205 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp205, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp205, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp205, atslab_d3exp_node, tmp206) ; return (tmp205) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ptr] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 14829(line=827, offs=3) -- 14941(line=831, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ref: tmp208 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp208)->tag = 43 ; ats_selptrset_mac(anairiats_sum_13, tmp208, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp208, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp208, atslab_2, arg4) ; tmp207 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp207, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp207, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp207, atslab_d3exp_node, tmp208) ; return (tmp207) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ref] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 15016(line=836, offs=17) -- 15190(line=844, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_var: tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp211 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp211)->tag = 44 ; ats_selptrset_mac(anairiats_sum_18, tmp211, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp211, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp211, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp211, atslab_3, arg4) ; tmp209 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp209, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp209, atslab_d3exp_type, tmp210) ; ats_selptrset_mac(anairiats_rec_11, tmp209, atslab_d3exp_node, tmp211) ; return (tmp209) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 15246(line=847, offs=17) -- 15420(line=855, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ptr: tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp214 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp214)->tag = 45 ; ats_selptrset_mac(anairiats_sum_18, tmp214, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp214, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp214, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp214, atslab_3, arg4) ; tmp212 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp212, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp212, atslab_d3exp_type, tmp213) ; ats_selptrset_mac(anairiats_rec_11, tmp212, atslab_d3exp_node, tmp214) ; return (tmp212) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ptr] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 15476(line=858, offs=17) -- 15650(line=866, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ref: tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp217 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp217)->tag = 46 ; ats_selptrset_mac(anairiats_sum_18, tmp217, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp217, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp217, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp217, atslab_3, arg4) ; tmp215 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp215, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp215, atslab_d3exp_type, tmp216) ; ats_selptrset_mac(anairiats_rec_11, tmp215, atslab_d3exp_node, tmp217) ; return (tmp215) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ref] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 15727(line=871, offs=17) -- 15901(line=879, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_var: tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp220 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp220)->tag = 47 ; ats_selptrset_mac(anairiats_sum_18, tmp220, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp220, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp220, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp220, atslab_3, arg4) ; tmp218 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp218, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp218, atslab_d3exp_type, tmp219) ; ats_selptrset_mac(anairiats_rec_11, tmp218, atslab_d3exp_node, tmp220) ; return (tmp218) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 15957(line=882, offs=17) -- 16131(line=890, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ptr: tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp223 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp223)->tag = 48 ; ats_selptrset_mac(anairiats_sum_18, tmp223, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp223, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp223, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp223, atslab_3, arg4) ; tmp221 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp221, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp221, atslab_d3exp_type, tmp222) ; ats_selptrset_mac(anairiats_rec_11, tmp221, atslab_d3exp_node, tmp223) ; return (tmp221) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ptr] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 16187(line=893, offs=17) -- 16361(line=901, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ref: tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp226 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp226)->tag = 49 ; ats_selptrset_mac(anairiats_sum_18, tmp226, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp226, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp226, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp226, atslab_3, arg4) ; tmp224 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp224, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp224, atslab_d3exp_type, tmp225) ; ats_selptrset_mac(anairiats_rec_11, tmp224, atslab_d3exp_node, tmp226) ; return (tmp224) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ref] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 16435(line=906, offs=14) -- 16560(line=912, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_refarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_refarg: tmp228 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp228)->tag = 40 ; ats_selptrset_mac(anairiats_sum_16, tmp228, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp228, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp228, atslab_2, arg4) ; tmp227 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp227, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp227, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp227, atslab_d3exp_node, tmp228) ; return (tmp227) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_refarg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 16631(line=918, offs=1) -- 16766(line=924, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrpsz (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrpsz: tmp230 = ATS_MALLOC(sizeof(anairiats_sum_19)) ; ((ats_sum_ptr_type)tmp230)->tag = 51 ; ats_selptrset_mac(anairiats_sum_19, tmp230, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_19, tmp230, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_19, tmp230, atslab_2, arg4) ; tmp229 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp229, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp229, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp229, atslab_d3exp_node, tmp230) ; return (tmp229) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrpsz] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 16817(line=928, offs=1) -- 16955(line=934, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrinit (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrinit: tmp232 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp232)->tag = 52 ; ats_selptrset_mac(anairiats_sum_13, tmp232, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp232, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp232, atslab_2, arg4) ; tmp231 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp231, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp231, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp231, atslab_d3exp_node, tmp232) ; return (tmp231) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrinit] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 17026(line=940, offs=1) -- 17116(line=946, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_raise (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_raise: tmp234 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp234)->tag = 53 ; ats_selptrset_mac(anairiats_sum_2, tmp234, atslab_0, arg2) ; tmp233 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp233, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp233, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp233, atslab_d3exp_node, tmp234) ; return (tmp233) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_raise] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 17187(line=952, offs=1) -- 17334(line=962, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_effmask (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_effmask: tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg2) ; tmp237 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp237)->tag = 54 ; ats_selptrset_mac(anairiats_sum_9, tmp237, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp237, atslab_1, arg2) ; tmp235 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp235, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp235, atslab_d3exp_type, tmp236) ; ats_selptrset_mac(anairiats_rec_11, tmp235, atslab_d3exp_node, tmp237) ; return (tmp235) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_effmask] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 17406(line=968, offs=1) -- 17498(line=974, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vararg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vararg: tmp239 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp239)->tag = 55 ; ats_selptrset_mac(anairiats_sum_2, tmp239, atslab_0, arg2) ; tmp238 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp238, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp238, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp238, atslab_d3exp_node, tmp239) ; return (tmp238) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vararg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 17571(line=980, offs=1) -- 17674(line=986, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vcopyenv (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vcopyenv: tmp241 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp241)->tag = 56 ; ats_selptrset_mac(anairiats_sum_17, tmp241, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp241, atslab_1, arg3) ; tmp240 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp240, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp240, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp240, atslab_d3exp_node, tmp241) ; return (tmp240) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vcopyenv] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 17750(line=992, offs=1) -- 17846(line=998, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tempenver (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tempenver: tmp243 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp243)->tag = 57 ; ats_selptrset_mac(anairiats_sum_2, tmp243, atslab_0, arg2) ; tmp242 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp242, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp242, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp242, atslab_d3exp_node, tmp243) ; return (tmp242) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tempenver] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 17924(line=1004, offs=3) -- 18018(line=1008, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ann_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ann_type: tmp245 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp245)->tag = 58 ; ats_selptrset_mac(anairiats_sum_9, tmp245, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp245, atslab_1, arg2) ; tmp244 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp244, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp244, atslab_d3exp_type, arg2) ; ats_selptrset_mac(anairiats_rec_11, tmp244, atslab_d3exp_node, tmp245) ; return (tmp244) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ann_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 18092(line=1014, offs=1) -- 18224(line=1020, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_dyn: tmp247 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp247)->tag = 59 ; ats_selptrset_mac(anairiats_sum_7, tmp247, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp247, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_7, tmp247, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_7, tmp247, atslab_3, arg5) ; tmp246 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp246, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp246, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp246, atslab_d3exp_node, tmp247) ; return (tmp246) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 18280(line=1023, offs=19) -- 18416(line=1029, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_laminit_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_laminit_dyn: tmp249 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp249)->tag = 60 ; ats_selptrset_mac(anairiats_sum_7, tmp249, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp249, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_7, tmp249, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_7, tmp249, atslab_3, arg5) ; tmp248 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp248, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp248, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp248, atslab_d3exp_node, tmp249) ; return (tmp248) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_laminit_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 18472(line=1032, offs=15) -- 18598(line=1038, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_sta (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_sta: tmp251 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp251)->tag = 61 ; ats_selptrset_mac(anairiats_sum_13, tmp251, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp251, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp251, atslab_2, arg4) ; tmp250 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp250, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp250, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp250, atslab_d3exp_node, tmp251) ; return (tmp250) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_sta] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 18650(line=1041, offs=15) -- 18783(line=1047, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_met (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_met: tmp253 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg2), atslab_d3exp_type) ; tmp254 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp254)->tag = 62 ; ats_selptrset_mac(anairiats_sum_9, tmp254, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp254, atslab_1, arg2) ; tmp252 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp252, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp252, atslab_d3exp_type, tmp253) ; ats_selptrset_mac(anairiats_rec_11, tmp252, atslab_d3exp_node, tmp254) ; return (tmp252) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_met] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 18852(line=1053, offs=1) -- 18980(line=1059, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_fix (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_fix: tmp256 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp256)->tag = 63 ; ats_selptrset_mac(anairiats_sum_8, tmp256, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_8, tmp256, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_8, tmp256, atslab_2, arg4) ; tmp255 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp255, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp255, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp255, atslab_d3exp_node, tmp256) ; return (tmp255) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_fix] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 19047(line=1064, offs=13) -- 19141(line=1070, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_delay (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_delay: tmp258 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp258)->tag = 64 ; ats_selptrset_mac(anairiats_sum_2, tmp258, atslab_0, arg2) ; tmp257 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp257, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp257, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp257, atslab_d3exp_node, tmp258) ; return (tmp257) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_delay] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 19190(line=1073, offs=14) -- 19299(line=1079, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ldelay (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ldelay: tmp260 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp260)->tag = 65 ; ats_selptrset_mac(anairiats_sum_9, tmp260, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp260, atslab_1, arg3) ; tmp259 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp259, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp259, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp259, atslab_d3exp_node, tmp260) ; return (tmp259) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ldelay] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 19372(line=1084, offs=16) -- 19491(line=1090, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lazyeval (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lazyeval: tmp262 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp262)->tag = 66 ; ats_selptrset_mac(anairiats_sum_17, tmp262, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp262, atslab_1, arg3) ; tmp261 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp261, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp261, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp261, atslab_d3exp_node, tmp262) ; return (tmp261) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lazyeval] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 19562(line=1096, offs=1) -- 19727(line=1104, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loop (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loop: tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp265 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp265)->tag = 67 ; ats_selptrset_mac(anairiats_sum_18, tmp265, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp265, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp265, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp265, atslab_3, arg4) ; tmp263 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp263, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp263, atslab_d3exp_type, tmp264) ; ats_selptrset_mac(anairiats_rec_11, tmp263, atslab_d3exp_node, tmp265) ; return (tmp263) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loop] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 19778(line=1108, offs=3) -- 19904(line=1114, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loopexn (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loopexn: tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp268 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp268)->tag = 68 ; ats_selptrset_mac(anairiats_sum_4, tmp268, atslab_0, arg1) ; tmp266 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp266, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp266, atslab_d3exp_type, tmp267) ; ats_selptrset_mac(anairiats_rec_11, tmp266, atslab_d3exp_node, tmp268) ; return (tmp266) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loopexn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 19977(line=1119, offs=15) -- 20106(line=1125, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_trywith (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_trywith: tmp270 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d3exp_type) ; tmp271 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp271)->tag = 69 ; ats_selptrset_mac(anairiats_sum_9, tmp271, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp271, atslab_1, arg2) ; tmp269 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp269, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp269, atslab_d3exp_type, tmp270) ; ats_selptrset_mac(anairiats_rec_11, tmp269, atslab_d3exp_node, tmp271) ; return (tmp269) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_trywith] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 20183(line=1131, offs=3) -- 20293(line=1136, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_solverify (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_solverify: tmp273 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp273)->tag = 70 ; ats_selptrset_mac(anairiats_sum_2, tmp273, atslab_0, arg1) ; tmp272 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp272, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp272, atslab_d3exp_type, arg1) ; ats_selptrset_mac(anairiats_rec_11, tmp272, atslab_d3exp_node, tmp273) ; return (tmp272) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_solverify] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 20367(line=1141, offs=14) -- 20495(line=1149, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp: tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; tmp276 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eerrexp_71) ; tmp274 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp274, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp274, atslab_d3exp_type, tmp275) ; ats_selptrset_mac(anairiats_rec_11, tmp274, atslab_d3exp_node, tmp276) ; return (tmp274) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 20550(line=1152, offs=19) -- 20675(line=1158, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void: tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp279 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eerrexp_71) ; tmp277 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp277, atslab_d3exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp277, atslab_d3exp_type, tmp278) ; ats_selptrset_mac(anairiats_rec_11, tmp277, atslab_d3exp_node, tmp279) ; return (tmp277) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 20748(line=1164, offs=1) -- 20873(line=1171, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_lab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_lab: tmp281 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp281)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp281, atslab_0, arg1) ; tmp282 = (ats_sum_ptr_type)0 ; tmp280 = ATS_MALLOC(sizeof(anairiats_rec_20)) ; ats_selptrset_mac(anairiats_rec_20, tmp280, atslab_d3lab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_20, tmp280, atslab_d3lab_node, tmp281) ; ats_selptrset_mac(anairiats_rec_20, tmp280, atslab_d3lab_overld, arg2) ; ats_selptrset_mac(anairiats_rec_20, tmp280, atslab_d3lab_overld_app, tmp282) ; return (tmp280) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_lab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 20922(line=1175, offs=3) -- 21047(line=1180, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_ind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_ind: tmp284 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp284)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp284, atslab_0, arg1) ; tmp285 = (ats_sum_ptr_type)0 ; tmp286 = (ats_sum_ptr_type)0 ; tmp283 = ATS_MALLOC(sizeof(anairiats_rec_20)) ; ats_selptrset_mac(anairiats_rec_20, tmp283, atslab_d3lab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_20, tmp283, atslab_d3lab_node, tmp284) ; ats_selptrset_mac(anairiats_rec_20, tmp283, atslab_d3lab_overld, tmp285) ; ats_selptrset_mac(anairiats_rec_20, tmp283, atslab_d3lab_overld_app, tmp286) ; return (tmp283) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_ind] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 21116(line=1186, offs=1) -- 21198(line=1191, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3fcl_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3fcl_make: tmp287 = ATS_MALLOC(sizeof(anairiats_rec_21)) ; ats_selptrset_mac(anairiats_rec_21, tmp287, atslab_i3fcl_loc, arg0) ; ats_selptrset_mac(anairiats_rec_21, tmp287, atslab_i3fcl_test, arg1) ; ats_selptrset_mac(anairiats_rec_21, tmp287, atslab_i3fcl_body, arg2) ; return (tmp287) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3fcl_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 21270(line=1197, offs=3) -- 21343(line=1199, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__gm3at_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__gm3at_make: tmp288 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp288, atslab_gm3at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp288, atslab_gm3at_exp, arg1) ; ats_selptrset_mac(anairiats_rec_22, tmp288, atslab_gm3at_pat, arg2) ; return (tmp288) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__gm3at_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 21389(line=1202, offs=12) -- 21534(line=1210, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__c3lau_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp289) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__c3lau_make: tmp289 = ATS_MALLOC(sizeof(anairiats_rec_23)) ; ats_selptrset_mac(anairiats_rec_23, tmp289, atslab_c3lau_loc, arg0) ; ats_selptrset_mac(anairiats_rec_23, tmp289, atslab_c3lau_pat, arg1) ; ats_selptrset_mac(anairiats_rec_23, tmp289, atslab_c3lau_gua, arg2) ; ats_selptrset_mac(anairiats_rec_23, tmp289, atslab_c3lau_seq, arg3) ; ats_selptrset_mac(anairiats_rec_23, tmp289, atslab_c3lau_neg, arg4) ; ats_selptrset_mac(anairiats_rec_23, tmp289, atslab_c3lau_body, arg5) ; return (tmp289) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__c3lau_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 21581(line=1213, offs=13) -- 21664(line=1219, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__sc3lau_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp290) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__sc3lau_make: tmp290 = ATS_MALLOC(sizeof(anairiats_rec_24)) ; ats_selptrset_mac(anairiats_rec_24, tmp290, atslab_sc3lau_loc, arg0) ; ats_selptrset_mac(anairiats_rec_24, tmp290, atslab_sc3lau_pat, arg1) ; ats_selptrset_mac(anairiats_rec_24, tmp290, atslab_sc3lau_body, arg2) ; return (tmp290) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__sc3lau_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 21788(line=1228, offs=14) -- 21937(line=1236, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3mpdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp291) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3mpdec_make: tmp291 = ATS_MALLOC(sizeof(anairiats_rec_25)) ; ats_selptrset_mac(anairiats_rec_25, tmp291, atslab_i3mpdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_25, tmp291, atslab_i3mpdec_cst, arg1) ; ats_selptrset_mac(anairiats_rec_25, tmp291, atslab_i3mpdec_imparg, arg2) ; ats_selptrset_mac(anairiats_rec_25, tmp291, atslab_i3mpdec_tmparg, arg3) ; ats_selptrset_mac(anairiats_rec_25, tmp291, atslab_i3mpdec_def, arg4) ; return (tmp291) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3mpdec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 22010(line=1242, offs=3) -- 22089(line=1246, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__f3undec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp292) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__f3undec_make: tmp292 = ATS_MALLOC(sizeof(anairiats_rec_26)) ; ats_selptrset_mac(anairiats_rec_26, tmp292, atslab_f3undec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_26, tmp292, atslab_f3undec_var, arg1) ; ats_selptrset_mac(anairiats_rec_26, tmp292, atslab_f3undec_def, arg2) ; return (tmp292) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__f3undec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 22162(line=1252, offs=3) -- 22241(line=1256, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3aldec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3aldec_make: tmp293 = ATS_MALLOC(sizeof(anairiats_rec_27)) ; ats_selptrset_mac(anairiats_rec_27, tmp293, atslab_v3aldec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_27, tmp293, atslab_v3aldec_pat, arg1) ; ats_selptrset_mac(anairiats_rec_27, tmp293, atslab_v3aldec_def, arg2) ; return (tmp293) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3aldec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 22312(line=1262, offs=1) -- 22522(line=1274, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3ardec_make (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp294) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3ardec_make: tmp294 = ATS_MALLOC(sizeof(anairiats_rec_28)) ; ats_selptrset_mac(anairiats_rec_28, tmp294, atslab_v3ardec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_28, tmp294, atslab_v3ardec_knd, arg1) ; ats_selptrset_mac(anairiats_rec_28, tmp294, atslab_v3ardec_dvar_var, arg2) ; ats_selptrset_mac(anairiats_rec_28, tmp294, atslab_v3ardec_dvar_view, arg3) ; ats_selptrset_mac(anairiats_rec_28, tmp294, atslab_v3ardec_type, arg4) ; ats_selptrset_mac(anairiats_rec_28, tmp294, atslab_v3ardec_init, arg5) ; ats_selptrset_mac(anairiats_rec_28, tmp294, atslab_v3ardec_dvaropt, arg6) ; return (tmp294) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3ardec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 22574(line=1278, offs=1) -- 22694(line=1285, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prv3ardec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp295) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prv3ardec_make: tmp295 = ATS_MALLOC(sizeof(anairiats_rec_29)) ; ats_selptrset_mac(anairiats_rec_29, tmp295, atslab_prv3ardec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_29, tmp295, atslab_prv3ardec_dvar, arg1) ; ats_selptrset_mac(anairiats_rec_29, tmp295, atslab_prv3ardec_type, arg2) ; ats_selptrset_mac(anairiats_rec_29, tmp295, atslab_prv3ardec_init, arg3) ; return (tmp295) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prv3ardec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 22772(line=1291, offs=3) -- 22825(line=1293, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp296) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node: tmp296 = ATS_MALLOC(sizeof(anairiats_rec_30)) ; ats_selptrset_mac(anairiats_rec_30, tmp296, atslab_d3ecl_loc, arg0) ; ats_selptrset_mac(anairiats_rec_30, tmp296, atslab_d3ecl_node, arg1) ; return (tmp296) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 22899(line=1299, offs=3) -- 22940(line=1300, offs=34) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none: tmp298 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cnone_0) ; tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp298) ; return (tmp297) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 22987(line=1304, offs=3) -- 23035(line=1305, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_list (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_list: tmp300 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp300)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp300, atslab_0, arg1) ; tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp300) ; return (tmp299) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_list] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 23106(line=1311, offs=14) -- 23158(line=1312, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_saspdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_saspdec: tmp302 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp302)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp302, atslab_0, arg1) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp302) ; return (tmp301) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_saspdec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 23209(line=1315, offs=15) -- 23262(line=1316, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_reassume (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_reassume: tmp304 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp304)->tag = 3 ; ats_selptrset_mac(anairiats_sum_2, tmp304, atslab_0, arg1) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp304) ; return (tmp303) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_reassume] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 23339(line=1323, offs=3) -- 23412(line=1324, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extype (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extype: tmp306 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp306)->tag = 4 ; ats_selptrset_mac(anairiats_sum_9, tmp306, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp306, atslab_1, arg2) ; tmp305 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp306) ; return (tmp305) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extype] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 23464(line=1329, offs=3) -- 23537(line=1330, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extvar: tmp308 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp308)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp308, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp308, atslab_1, arg2) ; tmp307 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp308) ; return (tmp307) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extvar] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 23611(line=1337, offs=3) -- 23687(line=1338, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extcode (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extcode: tmp310 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp310)->tag = 6 ; ats_selptrset_mac(anairiats_sum_16, tmp310, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_16, tmp310, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp310, atslab_2, arg3) ; tmp309 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp310) ; return (tmp309) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extcode] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 23762(line=1345, offs=3) -- 23828(line=1346, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_datdecs (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_datdecs: tmp312 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp312)->tag = 8 ; ats_selptrset_mac(anairiats_sum_17, tmp312, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp312, atslab_1, arg2) ; tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp312) ; return (tmp311) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_datdecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 23903(line=1353, offs=3) -- 23959(line=1354, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_exndecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_exndecs: tmp314 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp314)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp314, atslab_0, arg1) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp314) ; return (tmp313) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_exndecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 24035(line=1361, offs=3) -- 24112(line=1362, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dcstdecs (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dcstdecs: tmp316 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp316)->tag = 9 ; ats_selptrset_mac(anairiats_sum_8, tmp316, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp316, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_8, tmp316, atslab_2, arg3) ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp316) ; return (tmp315) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dcstdecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 24187(line=1369, offs=3) -- 24256(line=1370, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_impdec (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_impdec: tmp318 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp318)->tag = 10 ; ats_selptrset_mac(anairiats_sum_17, tmp318, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp318, atslab_1, arg2) ; tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp318) ; return (tmp317) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_impdec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 24330(line=1377, offs=3) -- 24418(line=1378, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_fundecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_fundecs: tmp320 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp320)->tag = 11 ; ats_selptrset_mac(anairiats_sum_13, tmp320, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_13, tmp320, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp320, atslab_2, arg3) ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp320) ; return (tmp319) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_fundecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 24493(line=1385, offs=3) -- 24559(line=1386, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs: tmp322 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp322)->tag = 12 ; ats_selptrset_mac(anairiats_sum_9, tmp322, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp322, atslab_1, arg2) ; tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp322) ; return (tmp321) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 24617(line=1391, offs=3) -- 24687(line=1392, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs_rec: tmp324 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp324)->tag = 13 ; ats_selptrset_mac(anairiats_sum_9, tmp324, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp324, atslab_1, arg2) ; tmp323 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp324) ; return (tmp323) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs_rec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 24766(line=1399, offs=3) -- 24822(line=1400, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_vardecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_vardecs: tmp326 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp326)->tag = 14 ; ats_selptrset_mac(anairiats_sum_2, tmp326, atslab_0, arg1) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp326) ; return (tmp325) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_vardecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 24878(line=1405, offs=3) -- 24936(line=1406, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_prvardecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_prvardecs: tmp328 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp328)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp328, atslab_0, arg1) ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp328) ; return (tmp327) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_prvardecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 25013(line=1413, offs=3) -- 25079(line=1414, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_include (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_include: tmp330 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp330)->tag = 16 ; ats_selptrset_mac(anairiats_sum_17, tmp330, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp330, atslab_1, arg2) ; tmp329 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp330) ; return (tmp329) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_include] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 25152(line=1421, offs=1) -- 25264(line=1424, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staload (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_int_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staload: tmp332 = ATS_MALLOC(sizeof(anairiats_sum_31)) ; ((ats_sum_ptr_type)tmp332)->tag = 17 ; ats_selptrset_mac(anairiats_sum_31, tmp332, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_31, tmp332, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_31, tmp332, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_31, tmp332, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_31, tmp332, atslab_4, arg5) ; tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp332) ; return (tmp331) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staload] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 25320(line=1429, offs=3) -- 25407(line=1430, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staloadloc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staloadloc: tmp334 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp334)->tag = 18 ; ats_selptrset_mac(anairiats_sum_13, tmp334, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_13, tmp334, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp334, atslab_2, arg3) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp334) ; return (tmp333) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staloadloc] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 25487(line=1437, offs=3) -- 25541(line=1438, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dynload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dynload: tmp336 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp336)->tag = 19 ; ats_selptrset_mac(anairiats_sum_2, tmp336, atslab_0, arg1) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp336) ; return (tmp335) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dynload] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3.dats: 25614(line=1445, offs=3) -- 25680(line=1446, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_local (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_local: tmp338 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp338)->tag = 20 ; ats_selptrset_mac(anairiats_sum_9, tmp338, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp338, atslab_1, arg2) ; tmp337 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_make_node (arg0, tmp338) ; return (tmp337) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_local] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ ats_void_type patsopt_p3at_set_type ( ats_ptr_type p3t, ats_ptr_type s2f ) { ((p3at_t)p3t)->atslab_p3at_type = s2f ; return ; } // end of [patsopt_p3at_set_type] ats_void_type patsopt_p3at_set_dvaropt ( ats_ptr_type p3t, ats_ptr_type opt ) { ((p3at_t)p3t)->atslab_p3at_dvaropt = opt ; return ; } // end of [patsopt_p3at_set_dvaropt] ats_void_type patsopt_p3at_set_type_left ( ats_ptr_type p3t, ats_ptr_type opt ) { ((p3at_t)p3t)->atslab_p3at_type_left = opt ; return ; } // end of [patsopt_p3at_set_type_left] ats_void_type patsopt_d3exp_set_type ( ats_ptr_type d3e, ats_ptr_type s2f ) { ((d3exp_t)d3e)->atslab_d3exp_type = s2f ; return ; } // end of [patsopt_d3exp_set_type] ats_void_type patsopt_d3lab_set_overld_app ( ats_ptr_type d3l, ats_ptr_type opt ) { ((d3lab_t)d3l)->atslab_d3lab_overld_app = opt ; return ; } // end of [patsopt_d3lab_set_overld_app] /* ****** ****** */ /* end of [pats_dynexp3_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_hidynexp_dats.c0000644000175000017500000047642613431250607022400 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hipat_loc ; ats_ptr_type atslab_hipat_type ; ats_ptr_type atslab_hipat_node ; ats_ptr_type atslab_hipat_asvar ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_9 ; typedef struct { anairiats_rec_9 atslab_0 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; } anairiats_sum_19 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_20 ; typedef struct { ats_ptr_type atslab_hilab_loc ; ats_ptr_type atslab_hilab_node ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_higmat_loc ; ats_ptr_type atslab_higmat_exp ; ats_ptr_type atslab_higmat_pat ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_hiclau_loc ; ats_ptr_type atslab_hiclau_pat ; ats_ptr_type atslab_hiclau_gua ; ats_int_type atslab_hiclau_seq ; ats_int_type atslab_hiclau_neg ; ats_ptr_type atslab_hiclau_body ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_hifundec_loc ; ats_ptr_type atslab_hifundec_var ; ats_ptr_type atslab_hifundec_imparg ; ats_ptr_type atslab_hifundec_def ; ats_ptr_type atslab_hifundec_hidecl ; ats_ptr_type atslab_hifundec_funlab ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_hivaldec_loc ; ats_ptr_type atslab_hivaldec_pat ; ats_ptr_type atslab_hivaldec_def ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_hivardec_loc ; ats_int_type atslab_hivardec_knd ; ats_ptr_type atslab_hivardec_dvar_ptr ; ats_ptr_type atslab_hivardec_dvar_view ; ats_ptr_type atslab_hivardec_type ; ats_ptr_type atslab_hivardec_init ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_hiimpdec_loc ; ats_int_type atslab_hiimpdec_knd ; ats_ptr_type atslab_hiimpdec_cst ; ats_ptr_type atslab_hiimpdec_imparg ; ats_ptr_type atslab_hiimpdec_tmparg ; ats_ptr_type atslab_hiimpdec_def ; ats_ptr_type atslab_hiimpdec_funlab ; ats_ptr_type atslab_hiimpdec_instrlst ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_28 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_29 ; /* external typedefs */ typedef anairiats_rec_27 *hiimpdec_t ; typedef anairiats_rec_24 *hifundec_t ; typedef anairiats_rec_1 *hipat_t ; /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIPAT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPbool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPchar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPstring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPi0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPf0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPempty_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_any_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPann_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIDEXP_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEbool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEchar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEstring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEi0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEf0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcstsp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtyrep_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEempty_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEignore_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcastfn_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextval_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextfcall_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextmcall_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcon_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpcst_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpvar_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfoldat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfreeat_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEapp_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEif_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEsif_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcase_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElst_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErec_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEseq_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselab_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofvar_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofsel_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErefarg_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselvar_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselptr_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_var_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_ptr_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_var_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_ptr_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrpsz_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrinit_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEraise_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvararg_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtempenver_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElam_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfix_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEdelay_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEldelay_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElazyeval_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloop_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloopexn_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtrywith_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEerrexp_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDsaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDreassume_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextcode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDexndecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdatdecs_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdcstdecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDfundecs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_rec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvardecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDinclude_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaload_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaloadloc_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdynload_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlocal_19) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_castfn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_search) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con_any) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_castfn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_hifundec_getref_hideclopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_find) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_insert) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_inserts) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpcstimpmap) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpvardecmap) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_bool_type f_2 (ats_ptr_type arg0) ; static ats_bool_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_forall_funenv_01366_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_forall_fun_01367_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4, ats_ptr_type env5, ats_ptr_type env6, ats_ptr_type env7, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_21_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4, ats_ptr_type env5, ats_ptr_type env6, ats_ptr_type env7) ; static ats_ptr_type auxlst_21_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type loop_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type set_98 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_101 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 1894(line=70, offs=16) -- 1916(line=70, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type: tmp0 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hipat_type) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 1994(line=78, offs=5) -- 2123(line=84, offs=4) */ ATSstaticdec() ats_bool_type f_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_f_2: tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp3), atslab_hipat_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp4)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp2 = ats_false_bool ; break ; } while (0) ; return (tmp2) ; } /* end of [f_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 32895(line=1167, offs=7) -- 33167(line=1176, offs=21) */ ATSstaticdec() ats_bool_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; __ats_lab_loop_5: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp9 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp10 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp8, arg2) ; if (tmp10) { arg0 = tmp9 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_5 ; // tail call } else { tmp7 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp7 = ats_true_bool ; break ; } while (0) ; return (tmp7) ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 32865(line=1166, offs=20) -- 33218(line=1180, offs=4) */ ATSstaticdec() ats_bool_type list_forall_funenv_01366_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp6) ; __ats_lab_list_forall_funenv_01366_ats_ptr_type: tmp6 = loop_5 (arg0, arg1, arg2) ; return (tmp6) ; } /* end of [list_forall_funenv_01366_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 33288(line=1183, offs=25) -- 33550(line=1192, offs=4) */ ATSstaticdec() ats_bool_type list_forall_fun_01367_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp5) ; __ats_lab_list_forall_fun_01367_ats_ptr_type: tmp5 = list_forall_funenv_01366_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp5) ; } /* end of [list_forall_fun_01367_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 1973(line=76, offs=3) -- 2176(line=88, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_unused (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_unused: tmp1 = list_forall_fun_01367_ats_ptr_type (arg0, &f_2) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_unused] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 2259(line=93, offs=17) -- 2365(line=98, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node: tmp12 = (ats_sum_ptr_type)0 ; tmp11 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp11, atslab_hipat_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp11, atslab_hipat_type, arg1) ; ats_selptrset_mac(anairiats_rec_1, tmp11, atslab_hipat_node, arg2) ; ats_selptrset_mac(anairiats_rec_1, tmp11, atslab_hipat_asvar, tmp12) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 2436(line=103, offs=11) -- 2496(line=104, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_any (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_any: tmp14 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp14)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp14, atslab_0, arg2) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp14) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_any] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 2540(line=108, offs=11) -- 2600(line=109, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_var: tmp16 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp16)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp16, atslab_0, arg2) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp16) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_var] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 2665(line=115, offs=11) -- 2771(line=118, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con: tmp18 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp18)->tag = 11 ; ats_selptrset_mac(anairiats_sum_4, tmp18, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp18, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_4, tmp18, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_4, tmp18, atslab_3, arg5) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp18) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 2821(line=123, offs=3) -- 2895(line=124, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con_any (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con_any: tmp20 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp20)->tag = 12 ; ats_selptrset_mac(anairiats_sum_5, tmp20, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp20, atslab_1, arg3) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp20) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con_any] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 2966(line=131, offs=3) -- 3022(line=132, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_int (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_int: tmp22 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp22)->tag = 2 ; ats_selptrset_mac(anairiats_sum_6, tmp22, atslab_0, arg2) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp22) ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_int] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 3070(line=136, offs=3) -- 3133(line=137, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_intrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_intrep: tmp24 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp24)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp24, atslab_0, arg2) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp24) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_intrep] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 3183(line=142, offs=3) -- 3240(line=143, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_bool (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_bool: tmp26 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp26)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp26, atslab_0, arg2) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp26) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_bool] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 3288(line=148, offs=3) -- 3345(line=149, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_char (ats_ptr_type arg0, ats_ptr_type arg1, ats_char_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_char: tmp28 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp28)->tag = 5 ; ats_selptrset_mac(anairiats_sum_8, tmp28, atslab_0, arg2) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp28) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_char] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 3394(line=154, offs=3) -- 3456(line=155, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_float (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_float: tmp30 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp30)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp30, atslab_0, arg2) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp30) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_float] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 3507(line=160, offs=3) -- 3570(line=161, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_string (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_string: tmp32 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp32)->tag = 6 ; ats_selptrset_mac(anairiats_sum_3, tmp32, atslab_0, arg2) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp32) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_string] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 3641(line=168, offs=3) -- 3702(line=169, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_i0nt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_i0nt: tmp34 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp34)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp34, atslab_0, arg2) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp34) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 3752(line=174, offs=3) -- 3815(line=175, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_f0loat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_f0loat: tmp36 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp36)->tag = 9 ; ats_selptrset_mac(anairiats_sum_3, tmp36, atslab_0, arg2) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp36) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 3887(line=182, offs=3) -- 3941(line=183, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_empty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_empty: tmp38 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPempty_10) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp38) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_empty] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 4633(line=220, offs=5) -- 5055(line=240, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4, ats_ptr_type env5, ats_ptr_type env6, ats_ptr_type env7, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab_auxlst_21: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp60 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp61 = auxlst_21 (env0, env1, env2, env3, env4, env5, env6, env7, tmp60) ; tmp62 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp62, atslab_0, env5) ; ats_selptrset_mac(anairiats_sum_2, tmp62, atslab_1, tmp59) ; tmp63 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp63, atslab_0, env6) ; ats_selptrset_mac(anairiats_sum_2, tmp63, atslab_1, tmp61) ; tmp66 = (ats_sum_ptr_type)0 ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp65, atslab_0, tmp63) ; ats_selptrset_mac(anairiats_sum_2, tmp65, atslab_1, tmp66) ; tmp64 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp64, atslab_0, tmp62) ; ats_selptrset_mac(anairiats_sum_2, tmp64, atslab_1, tmp65) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con (env0, env1, env4, env3, env7, tmp64) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con_any (env0, env1, env4, env2) ; break ; } while (0) ; return (tmp58) ; } /* end of [auxlst_21] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; ats_ptr_type closure_env_4 ; ats_ptr_type closure_env_5 ; ats_ptr_type closure_env_6 ; ats_ptr_type closure_env_7 ; } auxlst_21_closure_type ; ats_ptr_type auxlst_21_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return auxlst_21 (((auxlst_21_closure_type*)cloptr)->closure_env_0, ((auxlst_21_closure_type*)cloptr)->closure_env_1, ((auxlst_21_closure_type*)cloptr)->closure_env_2, ((auxlst_21_closure_type*)cloptr)->closure_env_3, ((auxlst_21_closure_type*)cloptr)->closure_env_4, ((auxlst_21_closure_type*)cloptr)->closure_env_5, ((auxlst_21_closure_type*)cloptr)->closure_env_6, ((auxlst_21_closure_type*)cloptr)->closure_env_7, arg0) ; } /* end of function */ ATSinline() ats_void_type auxlst_21_closure_init (auxlst_21_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4, ats_ptr_type env5, ats_ptr_type env6, ats_ptr_type env7) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_21_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; p_clo->closure_env_4 = env4 ; p_clo->closure_env_5 = env5 ; p_clo->closure_env_6 = env6 ; p_clo->closure_env_7 = env7 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_21_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4, ats_ptr_type env5, ats_ptr_type env6, ats_ptr_type env7) { auxlst_21_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_21_closure_type)) ; auxlst_21_closure_init (p_clo, env0, env1, env2, env3, env4, env5, env6, env7) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 4008(line=190, offs=1) -- 5100(line=244, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_lst (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (anairiats_rec_9, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_bool_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_lst: tmp41 = atspre_eq_int_int (arg1, 0) ; if (tmp41) { tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type) ; } else { tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype) ; } /* end of [if] */ tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst (tmp40) ; if (tmp42 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_hidynexp.dats: 4219(line=202, offs=5) -- 4258(line=203, offs=29)") ; } tmp43 = ats_caselptrlab_mac(anairiats_sum_10, tmp42, atslab_0) ; tmp44 = ats_select_mac(tmp43, atslab_0) ; tmp45 = ats_select_mac(tmp43, atslab_1) ; tmp47 = atspre_eq_int_int (arg1, 0) ; if (tmp47) { tmp46 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; } else { tmp46 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; } /* end of [if] */ tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (0) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (1) ; tmp51 = (ats_sum_ptr_type)0 ; tmp50 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp50, atslab_0, tmp48) ; ats_selptrset_mac(anairiats_sum_11, tmp50, atslab_1, tmp51) ; ats_selptrset_mac(anairiats_sum_11, tmp50, atslab_2, arg3) ; tmp53 = (ats_sum_ptr_type)0 ; tmp52 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp52, atslab_0, tmp49) ; ats_selptrset_mac(anairiats_sum_11, tmp52, atslab_1, tmp53) ; ats_selptrset_mac(anairiats_sum_11, tmp52, atslab_2, arg2) ; tmp56 = (ats_sum_ptr_type)0 ; tmp55 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp55, atslab_0, tmp52) ; ats_selptrset_mac(anairiats_sum_2, tmp55, atslab_1, tmp56) ; tmp54 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp54, atslab_0, tmp50) ; ats_selptrset_mac(anairiats_sum_2, tmp54, atslab_1, tmp55) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum (tmp45, tmp54) ; tmp39 = auxlst_21 (arg0, arg2, tmp44, tmp45, tmp46, tmp48, tmp49, tmp57, arg4) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_lst] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 5165(line=249, offs=11) -- 5272(line=254, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec: tmp68 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp68)->tag = 13 ; ats_selptrset_mac(anairiats_sum_12, tmp68, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_12, tmp68, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_12, tmp68, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_12, tmp68, atslab_3, arg5) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp68) ; return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 5319(line=259, offs=1) -- 5745(line=283, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_bool_type, tmp70) ; ATSlocal (ats_bool_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec2: tmp71 = atspre_eq_int_int (arg2, 0) ; if (tmp71) { tmp70 = ats_true_bool ; } else { tmp70 = ats_false_bool ; } /* end of [if] */ if (tmp70) { do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } tmp72 = ats_caselptrlab_mac(anairiats_sum_2, arg4, atslab_1) ; if (tmp72 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_2, arg4, atslab_0) ; // tmp74 = ats_caselptrlab_mac(anairiats_sum_2, tmp73, atslab_1) ; tmp69 = tmp74 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec (arg0, arg1, arg2, arg3, arg4, arg5) ; break ; } while (0) ; } else { tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec (arg0, arg1, arg2, arg3, arg4, arg5) ; } /* end of [if] */ return (tmp69) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec2] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 5815(line=289, offs=3) -- 5887(line=290, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_refas (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_refas: tmp76 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp76)->tag = 14 ; ats_selptrset_mac(anairiats_sum_5, tmp76, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp76, atslab_1, arg3) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp76) ; return (tmp75) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_refas] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 5956(line=297, offs=3) -- 6034(line=298, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_ann (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_ann: tmp78 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp78)->tag = 15 ; ats_selptrset_mac(anairiats_sum_5, tmp78, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp78, atslab_1, arg3) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_make_node (arg0, arg1, tmp78) ; return (tmp77) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_ann] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 6105(line=304, offs=17) -- 6128(line=304, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_get_type: tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_hidexp_type) ; return (tmp79) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_get_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab_loop_30: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp87 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp85, arg3) ; tmp88 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp88, atslab_0, tmp87) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp88 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp89 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp86 ; arg1 = arg1 ; arg2 = tmp89 ; arg3 = arg3 ; goto __ats_lab_loop_30 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp90 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp90 ; break ; } while (0) ; return /* (tmp84) */ ; } /* end of [loop_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp91 ; */ /* tmp92 = */ loop_30 (arg0, arg1, (&tmp91), arg2) ; tmp83 = tmp91 ; return (tmp83) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp82 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp82) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 6158(line=306, offs=20) -- 6272(line=310, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_get_type: tmp81 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_get_type) ; tmp80 = ats_castfn_mac(ats_ptr_type, tmp81) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexplst_get_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 6355(line=316, offs=3) -- 6433(line=318, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node: tmp93 = ATS_MALLOC(sizeof(anairiats_rec_13)) ; ats_selptrset_mac(anairiats_rec_13, tmp93, atslab_hidexp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_13, tmp93, atslab_hidexp_type, arg1) ; ats_selptrset_mac(anairiats_rec_13, tmp93, atslab_hidexp_node, arg2) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 6508(line=324, offs=3) -- 6569(line=325, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cst: tmp95 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp95)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp95, atslab_0, arg2) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp95) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cst] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 6617(line=330, offs=3) -- 6678(line=331, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_var: tmp97 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp97)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp97, atslab_0, arg2) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp97) ; return (tmp96) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_var] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 6747(line=338, offs=3) -- 6804(line=339, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_int (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_int: tmp99 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp99)->tag = 2 ; ats_selptrset_mac(anairiats_sum_6, tmp99, atslab_0, arg2) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp99) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_int] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 6855(line=344, offs=3) -- 6919(line=345, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_intrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_intrep: tmp101 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp101)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp101, atslab_0, arg2) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp101) ; return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_intrep] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 6971(line=350, offs=3) -- 7029(line=351, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_bool (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_bool: tmp103 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp103)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp103, atslab_0, arg2) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp103) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_bool] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 7079(line=356, offs=3) -- 7137(line=357, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_char (ats_ptr_type arg0, ats_ptr_type arg1, ats_char_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_char: tmp105 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp105)->tag = 5 ; ats_selptrset_mac(anairiats_sum_8, tmp105, atslab_0, arg2) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp105) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_char] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 7188(line=362, offs=3) -- 7251(line=363, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_float (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_float: tmp107 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp107)->tag = 6 ; ats_selptrset_mac(anairiats_sum_3, tmp107, atslab_0, arg2) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp107) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_float] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 7304(line=368, offs=3) -- 7368(line=369, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_string (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_string: tmp109 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp109)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp109, atslab_0, arg2) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp109) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_string] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 7441(line=376, offs=3) -- 7503(line=377, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_i0nt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_i0nt: tmp111 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp111)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp111, atslab_0, arg2) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp111) ; return (tmp110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 7555(line=382, offs=3) -- 7618(line=383, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_f0loat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_f0loat: tmp113 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp113)->tag = 9 ; ats_selptrset_mac(anairiats_sum_3, tmp113, atslab_0, arg2) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp113) ; return (tmp112) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 7692(line=390, offs=3) -- 7751(line=391, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cstsp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cstsp: tmp115 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp115)->tag = 10 ; ats_selptrset_mac(anairiats_sum_3, tmp115, atslab_0, arg2) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp115) ; return (tmp114) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cstsp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 7824(line=398, offs=3) -- 7883(line=399, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tyrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tyrep: tmp117 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp117)->tag = 11 ; ats_selptrset_mac(anairiats_sum_3, tmp117, atslab_0, arg2) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp117) ; return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tyrep] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 7951(line=405, offs=11) -- 8004(line=406, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_top (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_top: tmp119 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtop_12) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp119) ; return (tmp118) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_top] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 8051(line=410, offs=13) -- 8106(line=411, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty: tmp121 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEempty_13) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp121) ; return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 8159(line=416, offs=3) -- 8223(line=417, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ignore (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ignore: tmp123 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp123)->tag = 14 ; ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_0, arg2) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp123) ; return (tmp122) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ignore] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 8298(line=424, offs=3) -- 8371(line=425, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_castfn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_castfn: tmp125 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp125)->tag = 15 ; ats_selptrset_mac(anairiats_sum_5, tmp125, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp125, atslab_1, arg3) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp125) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_castfn] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 8446(line=432, offs=3) -- 8511(line=433, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extval (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extval: tmp127 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp127)->tag = 16 ; ats_selptrset_mac(anairiats_sum_3, tmp127, atslab_0, arg2) ; tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp127) ; return (tmp126) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extval] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 8567(line=438, offs=3) -- 8646(line=439, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extfcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extfcall: tmp129 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp129)->tag = 17 ; ats_selptrset_mac(anairiats_sum_5, tmp129, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp129, atslab_1, arg3) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp129) ; return (tmp128) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extfcall] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 8704(line=444, offs=3) -- 8795(line=445, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extmcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extmcall: tmp131 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp131)->tag = 18 ; ats_selptrset_mac(anairiats_sum_14, tmp131, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp131, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp131, atslab_2, arg4) ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp131) ; return (tmp130) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extmcall] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 8869(line=451, offs=12) -- 8963(line=453, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_con: tmp133 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp133)->tag = 19 ; ats_selptrset_mac(anairiats_sum_14, tmp133, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp133, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp133, atslab_2, arg4) ; tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp133) ; return (tmp132) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_con] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 9014(line=459, offs=3) -- 9091(line=460, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpcst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpcst: tmp135 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp135)->tag = 20 ; ats_selptrset_mac(anairiats_sum_5, tmp135, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp135, atslab_1, arg3) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp135) ; return (tmp134) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpcst] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 9145(line=465, offs=3) -- 9222(line=466, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpvar: tmp137 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp137)->tag = 21 ; ats_selptrset_mac(anairiats_sum_5, tmp137, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp137, atslab_1, arg3) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp137) ; return (tmp136) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 9295(line=472, offs=15) -- 9350(line=473, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_foldat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_foldat: tmp139 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfoldat_22) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp139) ; return (tmp138) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_foldat] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 9376(line=476, offs=15) -- 9439(line=477, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_freeat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_freeat: tmp141 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp141)->tag = 23 ; ats_selptrset_mac(anairiats_sum_3, tmp141, atslab_0, arg2) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp141) ; return (tmp140) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_freeat] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 9509(line=483, offs=12) -- 9581(line=484, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let: tmp143 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp143)->tag = 24 ; ats_selptrset_mac(anairiats_sum_5, tmp143, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp143, atslab_1, arg3) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp143) ; return (tmp142) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 9650(line=491, offs=3) -- 9743(line=492, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app: tmp145 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp145)->tag = 25 ; ats_selptrset_mac(anairiats_sum_14, tmp145, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp145, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp145, atslab_2, arg4) ; tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp145) ; return (tmp144) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 9790(line=496, offs=13) -- 10520(line=529, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app2: tmp148 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg3), atslab_hidexp_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp148)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_3, tmp148, atslab_0) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_castfn (tmp149) ; if (tmp150) { tmp147 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ats_selptrset_mac(anairiats_sum_15, tmp147, atslab_0, tmp149) ; } else { tmp147 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp147 = (ats_sum_ptr_type)0 ; break ; } while (0) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp147 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_12_1: tmp151 = ats_caselptrlab_mac(anairiats_sum_15, tmp147, atslab_0) ; ATS_FREE(tmp147) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_2, arg4, atslab_0) ; tmp152 = tmp153 ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp154 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg3), atslab_hidexp_loc) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype () ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty (tmp154, tmp155) ; break ; } while (0) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_castfn (arg0, arg1, tmp151, tmp152) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp147 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app (arg0, arg1, arg2, arg3, arg4) ; break ; } while (0) ; return (tmp146) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app2] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 10589(line=535, offs=3) -- 10681(line=536, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_if (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_if: tmp157 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp157)->tag = 26 ; ats_selptrset_mac(anairiats_sum_14, tmp157, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp157, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp157, atslab_2, arg4) ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp157) ; return (tmp156) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_if] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 10728(line=541, offs=3) -- 10821(line=542, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_sif (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_sif: tmp159 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp159)->tag = 27 ; ats_selptrset_mac(anairiats_sum_14, tmp159, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp159, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp159, atslab_2, arg4) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp159) ; return (tmp158) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_sif] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 10891(line=549, offs=3) -- 10977(line=550, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_case (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_case: tmp161 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp161)->tag = 28 ; ats_selptrset_mac(anairiats_sum_14, tmp161, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp161, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp161, atslab_2, arg4) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp161) ; return (tmp160) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_case] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 11047(line=557, offs=3) -- 11138(line=558, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lst (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lst: tmp163 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp163)->tag = 29 ; ats_selptrset_mac(anairiats_sum_16, tmp163, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp163, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp163, atslab_2, arg4) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp163) ; return (tmp162) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lst] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 11207(line=565, offs=3) -- 11300(line=566, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec: tmp165 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp165)->tag = 30 ; ats_selptrset_mac(anairiats_sum_16, tmp165, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp165, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp165, atslab_2, arg4) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp165) ; return (tmp164) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 11347(line=571, offs=1) -- 11775(line=596, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_bool_type, tmp167) ; ATSlocal (ats_bool_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec2: tmp168 = atspre_eq_int_int (arg2, 0) ; if (tmp168) { tmp167 = ats_true_bool ; } else { tmp167 = ats_false_bool ; } /* end of [if] */ if (tmp167) { do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } tmp169 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_1) ; if (tmp169 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_0) ; // tmp171 = ats_caselptrlab_mac(anairiats_sum_2, tmp170, atslab_1) ; tmp166 = tmp171 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec (arg0, arg1, arg2, arg3, arg4) ; break ; } while (0) ; } else { tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec (arg0, arg1, arg2, arg3, arg4) ; } /* end of [if] */ return (tmp166) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec2] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 11848(line=602, offs=3) -- 11911(line=603, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq: tmp173 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp173)->tag = 31 ; ats_selptrset_mac(anairiats_sum_3, tmp173, atslab_0, arg2) ; tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp173) ; return (tmp172) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 11982(line=610, offs=3) -- 12075(line=611, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selab: tmp175 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp175)->tag = 32 ; ats_selptrset_mac(anairiats_sum_14, tmp175, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp175, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp175, atslab_2, arg4) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp175) ; return (tmp174) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selab] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 12151(line=618, offs=3) -- 12217(line=619, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofvar: tmp177 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp177)->tag = 33 ; ats_selptrset_mac(anairiats_sum_3, tmp177, atslab_0, arg2) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp177) ; return (tmp176) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofvar] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 12275(line=624, offs=3) -- 12365(line=625, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofsel (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofsel: tmp179 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp179)->tag = 34 ; ats_selptrset_mac(anairiats_sum_14, tmp179, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp179, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp179, atslab_2, arg4) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp179) ; return (tmp178) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofsel] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 12442(line=632, offs=3) -- 12540(line=633, offs=64) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_refarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_refarg: tmp181 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp181)->tag = 35 ; ats_selptrset_mac(anairiats_sum_17, tmp181, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp181, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_17, tmp181, atslab_2, arg4) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp181) ; return (tmp180) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_refarg] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 12615(line=640, offs=3) -- 12707(line=641, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selvar: tmp183 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp183)->tag = 36 ; ats_selptrset_mac(anairiats_sum_14, tmp183, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp183, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp183, atslab_2, arg4) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp183) ; return (tmp182) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selvar] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 12761(line=646, offs=3) -- 12853(line=647, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selptr: tmp185 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp185)->tag = 37 ; ats_selptrset_mac(anairiats_sum_14, tmp185, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp185, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_14, tmp185, atslab_2, arg4) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp185) ; return (tmp184) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selptr] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 12931(line=654, offs=3) -- 13044(line=655, offs=73) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_var: tmp187 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp187)->tag = 38 ; ats_selptrset_mac(anairiats_sum_4, tmp187, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp187, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_4, tmp187, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_4, tmp187, atslab_3, arg5) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp187) ; return (tmp186) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_var] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 13104(line=660, offs=3) -- 13217(line=661, offs=73) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_ptr: tmp189 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp189)->tag = 39 ; ats_selptrset_mac(anairiats_sum_4, tmp189, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp189, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_4, tmp189, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_4, tmp189, atslab_3, arg5) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp189) ; return (tmp188) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_ptr] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 13298(line=668, offs=3) -- 13411(line=669, offs=73) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_var: tmp191 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp191)->tag = 40 ; ats_selptrset_mac(anairiats_sum_4, tmp191, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp191, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_4, tmp191, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_4, tmp191, atslab_3, arg5) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp191) ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_var] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 13471(line=674, offs=3) -- 13584(line=675, offs=73) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_ptr: tmp193 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp193)->tag = 41 ; ats_selptrset_mac(anairiats_sum_4, tmp193, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp193, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_4, tmp193, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_4, tmp193, atslab_3, arg5) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp193) ; return (tmp192) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_ptr] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 13660(line=682, offs=1) -- 13766(line=685, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrpsz (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrpsz: tmp195 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp195)->tag = 42 ; ats_selptrset_mac(anairiats_sum_18, tmp195, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp195, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp195, atslab_2, arg4) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp195) ; return (tmp194) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrpsz] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 13819(line=690, offs=1) -- 13944(line=693, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrinit (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrinit: tmp197 = ATS_MALLOC(sizeof(anairiats_sum_19)) ; ((ats_sum_ptr_type)tmp197)->tag = 43 ; ats_selptrset_mac(anairiats_sum_19, tmp197, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_19, tmp197, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_19, tmp197, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_19, tmp197, atslab_3, arg5) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp197) ; return (tmp196) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrinit] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 14017(line=700, offs=1) -- 14084(line=701, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_raise (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_raise: tmp199 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp199)->tag = 44 ; ats_selptrset_mac(anairiats_sum_3, tmp199, atslab_0, arg2) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp199) ; return (tmp198) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_raise] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 14158(line=708, offs=1) -- 14228(line=709, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vararg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vararg: tmp201 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp201)->tag = 45 ; ats_selptrset_mac(anairiats_sum_3, tmp201, atslab_0, arg2) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp201) ; return (tmp200) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vararg] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 14283(line=715, offs=3) -- 14342(line=716, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vcopyenv (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vcopyenv: tmp203 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp203)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp203, atslab_0, arg2) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp203) ; return (tmp202) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vcopyenv] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 14398(line=722, offs=3) -- 14465(line=723, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tempenver (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tempenver: tmp205 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp205)->tag = 46 ; ats_selptrset_mac(anairiats_sum_3, tmp205, atslab_0, arg2) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp205) ; return (tmp204) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tempenver] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 14511(line=729, offs=1) -- 14617(line=733, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lam (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lam: tmp207 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp207)->tag = 47 ; ats_selptrset_mac(anairiats_sum_16, tmp207, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp207, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp207, atslab_2, arg4) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp207) ; return (tmp206) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lam] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 14686(line=740, offs=3) -- 14779(line=741, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_fix (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_fix: tmp209 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp209)->tag = 48 ; ats_selptrset_mac(anairiats_sum_16, tmp209, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp209, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp209, atslab_2, arg4) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp209) ; return (tmp208) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_fix] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 14852(line=748, offs=3) -- 14915(line=749, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_delay (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_delay: tmp211 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp211)->tag = 49 ; ats_selptrset_mac(anairiats_sum_3, tmp211, atslab_0, arg2) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp211) ; return (tmp210) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_delay] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 14967(line=753, offs=3) -- 15049(line=754, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ldelay (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ldelay: tmp213 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp213)->tag = 50 ; ats_selptrset_mac(anairiats_sum_5, tmp213, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp213, atslab_1, arg3) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp213) ; return (tmp212) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ldelay] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 15107(line=759, offs=3) -- 15183(line=760, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lazyeval (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lazyeval: tmp215 = ATS_MALLOC(sizeof(anairiats_sum_20)) ; ((ats_sum_ptr_type)tmp215)->tag = 51 ; ats_selptrset_mac(anairiats_sum_20, tmp215, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_20, tmp215, atslab_1, arg3) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp215) ; return (tmp214) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lazyeval] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 15260(line=767, offs=3) -- 15360(line=768, offs=64) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loop (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loop: tmp217 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp217)->tag = 52 ; ats_selptrset_mac(anairiats_sum_4, tmp217, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp217, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_4, tmp217, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_4, tmp217, atslab_3, arg5) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp217) ; return (tmp216) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loop] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 15413(line=773, offs=3) -- 15478(line=774, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loopexn (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loopexn: tmp219 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp219)->tag = 53 ; ats_selptrset_mac(anairiats_sum_6, tmp219, atslab_0, arg2) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp219) ; return (tmp218) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loopexn] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 15555(line=781, offs=3) -- 15634(line=782, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_trywith (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_trywith: tmp221 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp221)->tag = 54 ; ats_selptrset_mac(anairiats_sum_5, tmp221, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp221, atslab_1, arg3) ; tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp221) ; return (tmp220) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_trywith] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 15710(line=789, offs=3) -- 15764(line=789, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_errexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_errexp: tmp223 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEerrexp_55) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_make_node (arg0, arg1, tmp223) ; return (tmp222) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_errexp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 15833(line=795, offs=11) -- 15894(line=797, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_lab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_lab: tmp225 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp225)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp225, atslab_0, arg1) ; tmp224 = ATS_MALLOC(sizeof(anairiats_rec_21)) ; ats_selptrset_mac(anairiats_rec_21, tmp224, atslab_hilab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_21, tmp224, atslab_hilab_node, tmp225) ; return (tmp224) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_lab] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 15915(line=799, offs=11) -- 15976(line=801, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_ind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_ind: tmp227 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp227)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp227, atslab_0, arg1) ; tmp226 = ATS_MALLOC(sizeof(anairiats_rec_21)) ; ats_selptrset_mac(anairiats_rec_21, tmp226, atslab_hilab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_21, tmp226, atslab_hilab_node, tmp227) ; return (tmp226) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_ind] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 16023(line=807, offs=3) -- 16103(line=811, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__higmat_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__higmat_make: tmp228 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp228, atslab_higmat_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp228, atslab_higmat_exp, arg1) ; ats_selptrset_mac(anairiats_rec_22, tmp228, atslab_higmat_pat, arg2) ; return (tmp228) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__higmat_make] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 16153(line=815, offs=3) -- 16303(line=822, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiclau_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiclau_make: tmp229 = ATS_MALLOC(sizeof(anairiats_rec_23)) ; ats_selptrset_mac(anairiats_rec_23, tmp229, atslab_hiclau_loc, arg0) ; ats_selptrset_mac(anairiats_rec_23, tmp229, atslab_hiclau_pat, arg1) ; ats_selptrset_mac(anairiats_rec_23, tmp229, atslab_hiclau_gua, arg2) ; ats_selptrset_mac(anairiats_rec_23, tmp229, atslab_hiclau_seq, arg3) ; ats_selptrset_mac(anairiats_rec_23, tmp229, atslab_hiclau_neg, arg4) ; ats_selptrset_mac(anairiats_rec_23, tmp229, atslab_hiclau_body, arg5) ; return (tmp229) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiclau_make] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 16374(line=828, offs=1) -- 16544(line=837, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_make: tmp231 = (ats_sum_ptr_type)0 ; tmp232 = (ats_sum_ptr_type)0 ; tmp230 = ATS_MALLOC(sizeof(anairiats_rec_24)) ; ats_selptrset_mac(anairiats_rec_24, tmp230, atslab_hifundec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_24, tmp230, atslab_hifundec_var, arg1) ; ats_selptrset_mac(anairiats_rec_24, tmp230, atslab_hifundec_imparg, arg2) ; ats_selptrset_mac(anairiats_rec_24, tmp230, atslab_hifundec_def, arg3) ; ats_selptrset_mac(anairiats_rec_24, tmp230, atslab_hifundec_hidecl, tmp231) ; ats_selptrset_mac(anairiats_rec_24, tmp230, atslab_hifundec_funlab, tmp232) ; return (tmp230) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_make] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 16700(line=849, offs=3) -- 16747(line=849, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_get_hideclopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_get_hideclopt: tmp234 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg0), atslab_hifundec_hidecl) ; tmp233 = ats_castfn_mac(ats_ptr_type, tmp234) ; return (tmp233) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_get_hideclopt] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2024(line=63, offs=10) -- 2250(line=73, offs=2) */ ATSstaticdec() ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp238) ; __ats_lab_ptr0_set_01760_ats_ptr_type: ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) = arg1 ; return /* (tmp238) */ ; } /* end of [ptr0_set_01760_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2472(line=83, offs=21) -- 2499(line=83, offs=48) */ ATSstaticdec() ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp237) ; __ats_lab_ptrset_01764_ats_ptr_type: /* tmp237 = */ ptr0_set_01760_ats_ptr_type (arg0, arg1) ; return /* (tmp237) */ ; } /* end of [ptrset_01764_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 16848(line=856, offs=5) -- 16959(line=860, offs=63) */ ATSstaticdec() ats_void_type set_98 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp236) ; ATSlocal (ats_ptr_type, tmp239) ; __ats_lab_set_98: tmp239 = patsopt_hifundec_getref_hideclopt (arg0) ; /* tmp236 = */ ptrset_01764_ats_ptr_type (tmp239, arg1) ; return /* (tmp236) */ ; } /* end of [set_98] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 16967(line=862, offs=5) -- 17183(line=875, offs=4) */ ATSstaticdec() ats_void_type auxlst_101 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; // ATSlocal_void (tmp243) ; __ats_lab_auxlst_101: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp241 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp242 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; /* tmp243 = */ set_98 (tmp241, arg1) ; arg0 = tmp242 ; arg1 = arg1 ; goto __ats_lab_auxlst_101 ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: break ; } while (0) ; return /* (tmp240) */ ; } /* end of [auxlst_101] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 16823(line=854, offs=3) -- 17233(line=879, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundeclst_set_hideclopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp235) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundeclst_set_hideclopt: /* tmp235 = */ auxlst_101 (arg0, arg1) ; return /* (tmp235) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundeclst_set_hideclopt] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 17343(line=887, offs=3) -- 17425(line=891, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivaldec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivaldec_make: tmp244 = ATS_MALLOC(sizeof(anairiats_rec_25)) ; ats_selptrset_mac(anairiats_rec_25, tmp244, atslab_hivaldec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_25, tmp244, atslab_hivaldec_pat, arg1) ; ats_selptrset_mac(anairiats_rec_25, tmp244, atslab_hivaldec_def, arg2) ; return (tmp244) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivaldec_make] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 17477(line=895, offs=1) -- 17658(line=905, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivardec_make (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp245) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivardec_make: tmp245 = ATS_MALLOC(sizeof(anairiats_rec_26)) ; ats_selptrset_mac(anairiats_rec_26, tmp245, atslab_hivardec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_26, tmp245, atslab_hivardec_knd, arg1) ; ats_selptrset_mac(anairiats_rec_26, tmp245, atslab_hivardec_dvar_ptr, arg2) ; ats_selptrset_mac(anairiats_rec_26, tmp245, atslab_hivardec_dvar_view, arg3) ; ats_selptrset_mac(anairiats_rec_26, tmp245, atslab_hivardec_type, arg4) ; ats_selptrset_mac(anairiats_rec_26, tmp245, atslab_hivardec_init, arg5) ; return (tmp245) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivardec_make] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 17731(line=911, offs=1) -- 17966(line=922, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiimpdec_make (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiimpdec_make: tmp247 = (ats_sum_ptr_type)0 ; tmp248 = (ats_sum_ptr_type)0 ; tmp246 = ATS_MALLOC(sizeof(anairiats_rec_27)) ; ats_selptrset_mac(anairiats_rec_27, tmp246, atslab_hiimpdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_27, tmp246, atslab_hiimpdec_knd, arg1) ; ats_selptrset_mac(anairiats_rec_27, tmp246, atslab_hiimpdec_cst, arg2) ; ats_selptrset_mac(anairiats_rec_27, tmp246, atslab_hiimpdec_imparg, arg3) ; ats_selptrset_mac(anairiats_rec_27, tmp246, atslab_hiimpdec_tmparg, arg4) ; ats_selptrset_mac(anairiats_rec_27, tmp246, atslab_hiimpdec_def, arg5) ; ats_selptrset_mac(anairiats_rec_27, tmp246, atslab_hiimpdec_funlab, tmp247) ; ats_selptrset_mac(anairiats_rec_27, tmp246, atslab_hiimpdec_instrlst, tmp248) ; return (tmp246) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiimpdec_make] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 18044(line=928, offs=3) -- 18099(line=930, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node: tmp249 = ATS_MALLOC(sizeof(anairiats_rec_28)) ; ats_selptrset_mac(anairiats_rec_28, tmp249, atslab_hidecl_loc, arg0) ; ats_selptrset_mac(anairiats_rec_28, tmp249, atslab_hidecl_node, arg1) ; return (tmp249) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 18152(line=933, offs=13) -- 18195(line=934, offs=36) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_none: tmp251 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDnone_0) ; tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp251) ; return (tmp250) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_none] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 18243(line=938, offs=13) -- 18296(line=939, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_list (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_list: tmp253 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp253)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp253, atslab_0, arg1) ; tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp253) ; return (tmp252) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_list] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 18370(line=945, offs=16) -- 18424(line=946, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_saspdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_saspdec: tmp255 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp255)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp255, atslab_0, arg1) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp255) ; return (tmp254) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_saspdec] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 18478(line=949, offs=17) -- 18533(line=950, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_reassume (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_reassume: tmp257 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp257)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp257, atslab_0, arg1) ; tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp257) ; return (tmp256) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_reassume] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 18612(line=957, offs=3) -- 18685(line=958, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extype (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extype: tmp259 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp259)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp259, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp259, atslab_1, arg2) ; tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp259) ; return (tmp258) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extype] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 18739(line=963, offs=3) -- 18812(line=964, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extvar: tmp261 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp261)->tag = 5 ; ats_selptrset_mac(anairiats_sum_5, tmp261, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp261, atslab_1, arg2) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp261) ; return (tmp260) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extvar] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 18867(line=969, offs=3) -- 18943(line=970, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extcode (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extcode: tmp263 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp263)->tag = 6 ; ats_selptrset_mac(anairiats_sum_17, tmp263, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp263, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp263, atslab_2, arg3) ; tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp263) ; return (tmp262) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extcode] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 19020(line=977, offs=3) -- 19075(line=978, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_exndecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_exndecs: tmp265 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp265)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp265, atslab_0, arg1) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp265) ; return (tmp264) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_exndecs] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 19131(line=983, offs=3) -- 19196(line=984, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_datdecs (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_datdecs: tmp267 = ATS_MALLOC(sizeof(anairiats_sum_20)) ; ((ats_sum_ptr_type)tmp267)->tag = 8 ; ats_selptrset_mac(anairiats_sum_20, tmp267, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_20, tmp267, atslab_1, arg2) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp267) ; return (tmp266) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_datdecs] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 19274(line=991, offs=3) -- 19342(line=992, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dcstdecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dcstdecs: tmp269 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp269)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp269, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp269, atslab_1, arg2) ; tmp268 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp269) ; return (tmp268) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dcstdecs] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 19419(line=999, offs=3) -- 19485(line=1000, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_impdec (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_impdec: tmp271 = ATS_MALLOC(sizeof(anairiats_sum_20)) ; ((ats_sum_ptr_type)tmp271)->tag = 10 ; ats_selptrset_mac(anairiats_sum_20, tmp271, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_20, tmp271, atslab_1, arg2) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp271) ; return (tmp270) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_impdec] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 19561(line=1007, offs=3) -- 19644(line=1008, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_fundecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_fundecs: tmp273 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp273)->tag = 11 ; ats_selptrset_mac(anairiats_sum_14, tmp273, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp273, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp273, atslab_2, arg3) ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp273) ; return (tmp272) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_fundecs] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 19719(line=1014, offs=16) -- 19786(line=1015, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs: tmp275 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp275)->tag = 12 ; ats_selptrset_mac(anairiats_sum_5, tmp275, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp275, atslab_1, arg2) ; tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp275) ; return (tmp274) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 19844(line=1019, offs=20) -- 19915(line=1020, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs_rec: tmp277 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp277)->tag = 13 ; ats_selptrset_mac(anairiats_sum_5, tmp277, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp277, atslab_1, arg2) ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp277) ; return (tmp276) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs_rec] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 19994(line=1026, offs=16) -- 20051(line=1027, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_vardecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_vardecs: tmp279 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp279)->tag = 14 ; ats_selptrset_mac(anairiats_sum_3, tmp279, atslab_0, arg1) ; tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp279) ; return (tmp278) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_vardecs] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 20128(line=1034, offs=3) -- 20195(line=1035, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_include (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_include: tmp281 = ATS_MALLOC(sizeof(anairiats_sum_20)) ; ((ats_sum_ptr_type)tmp281)->tag = 15 ; ats_selptrset_mac(anairiats_sum_20, tmp281, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_20, tmp281, atslab_1, arg2) ; tmp280 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp281) ; return (tmp280) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_include] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 20270(line=1041, offs=16) -- 20387(line=1044, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staload (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_int_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staload: tmp283 = ATS_MALLOC(sizeof(anairiats_sum_29)) ; ((ats_sum_ptr_type)tmp283)->tag = 16 ; ats_selptrset_mac(anairiats_sum_29, tmp283, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_29, tmp283, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_29, tmp283, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_29, tmp283, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_29, tmp283, atslab_4, arg5) ; tmp282 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp283) ; return (tmp282) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staload] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 20446(line=1049, offs=3) -- 20534(line=1050, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staloadloc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staloadloc: tmp285 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp285)->tag = 17 ; ats_selptrset_mac(anairiats_sum_14, tmp285, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_14, tmp285, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_14, tmp285, atslab_2, arg3) ; tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp285) ; return (tmp284) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staloadloc] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 20612(line=1056, offs=16) -- 20667(line=1057, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dynload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dynload: tmp287 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp287)->tag = 18 ; ats_selptrset_mac(anairiats_sum_3, tmp287, atslab_0, arg1) ; tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp287) ; return (tmp286) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dynload] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 20740(line=1063, offs=14) -- 20807(line=1064, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_local (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_local: tmp289 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp289)->tag = 19 ; ats_selptrset_mac(anairiats_sum_5, tmp289, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp289, atslab_1, arg2) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_make_node (arg0, tmp289) ; return (tmp288) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_local] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp293) ; __ats_lab_ptr0_get_01759_ats_ptr_type: tmp293 = ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp293) ; } /* end of [ptr0_get_01759_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41) */ ATSstaticdec() ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp292) ; __ats_lab_ptrget_01763_ats_ptr_type: tmp292 = ptr0_get_01759_ats_ptr_type (arg0) ; return (tmp292) ; } /* end of [ptrget_01763_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 21056(line=1079, offs=28) -- 21159(line=1081, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpcstimpmapopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpcstimpmapopt: tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpcstimpmap (arg0) ; tmp290 = ptrget_01763_ats_ptr_type (tmp291) ; return (tmp290) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpcstimpmapopt] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 21237(line=1084, offs=28) -- 21340(line=1086, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpvardecmapopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpvardecmapopt: tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpvardecmap (arg0) ; tmp294 = ptrget_01763_ats_ptr_type (tmp295) ; return (tmp294) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpvardecmapopt] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 21455(line=1094, offs=3) -- 21596(line=1101, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_find (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_find: tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_search (arg0, arg1) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp297 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp298 = ats_caselptrlab_mac(anairiats_sum_15, tmp297, atslab_0) ; ATS_FREE(tmp297) ; tmp296 = tmp298 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp297 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp296 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp296) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_find] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 21660(line=1105, offs=3) -- 21845(line=1112, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_insert (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_bool_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_insert: tmp300 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_hiimpdec_cst) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_find (ats_ptrget_mac(ats_ptr_type, arg0), tmp300) ; tmp303 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp303, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp303, atslab_1, tmp301) ; tmp302 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_insert (arg0, tmp300, tmp303) ; return /* (tmp299) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_insert] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 21930(line=1118, offs=3) -- 21974(line=1118, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_find (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp304) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_find: tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search (arg0, arg1) ; return (tmp304) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_find] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 22038(line=1123, offs=3) -- 22159(line=1128, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_insert (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_bool_type, tmp307) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_insert: tmp306 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg1), atslab_hifundec_var) ; tmp307 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert (arg0, tmp306, arg1) ; return /* (tmp305) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_insert] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp.dats: 22226(line=1132, offs=3) -- 22443(line=1145, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_inserts (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; // ATSlocal_void (tmp311) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_inserts: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp309 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp310 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp311 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_insert (arg0, tmp309) ; arg0 = arg0 ; arg1 = tmp310 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_inserts ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: break ; } while (0) ; return /* (tmp308) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_inserts] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ ats_void_type patsopt_hipat_set_asvar ( ats_ptr_type hip, ats_ptr_type opt ) { ((hipat_t)hip)->atslab_hipat_asvar = opt ; return ; } // end of [patsopt_hipat_set_asvar] ats_ptr_type patsopt_hifundec_getref_hideclopt (ats_ptr_type fundec) { return &((hifundec_t)fundec)->atslab_hifundec_hidecl ; } // end of [patsopt_hifundec_getref_hideclopt] ats_ptr_type patsopt_hifundec_getref_funlabopt (ats_ptr_type fundec) { return &((hifundec_t)fundec)->atslab_hifundec_funlab ; } // end of [patsopt_hifundec_getref_funlabopt] ats_ptr_type patsopt_hiimpdec_getref_funlabopt (ats_ptr_type impdec) { return &((hiimpdec_t)impdec)->atslab_hiimpdec_funlab ; } // end of [patsopt_hiimpdec_getref_funlabopt] ats_ptr_type patsopt_hiimpdec_getref_instrlstopt (ats_ptr_type impdec) { return &((hiimpdec_t)impdec)->atslab_hiimpdec_instrlst ; } // end of [patsopt_hiimpdec_getref_instrlstopt] /* ****** ****** */ /* end of [pats_hidynexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_decl_dats.c0000644000175000017500000103432713431250607022737 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_i0de_loc ; ats_ptr_type atslab_i0de_sym ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_d1ecl_loc ; ats_ptr_type atslab_d1ecl_node ; } anairiats_rec_7 ; typedef struct { ats_ptr_type atslab_dqi0de_loc ; ats_ptr_type atslab_dqi0de_qua ; ats_ptr_type atslab_dqi0de_sym ; } anairiats_rec_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_9 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_d1atsrtcon_loc ; ats_ptr_type atslab_d1atsrtcon_sym ; ats_ptr_type atslab_d1atsrtcon_arg ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_d1atsrtdec_loc ; ats_ptr_type atslab_d1atsrtdec_sym ; ats_ptr_type atslab_d1atsrtdec_con ; } anairiats_rec_12 ; typedef struct { anairiats_rec_2 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_s1rtdef_loc ; ats_ptr_type atslab_s1rtdef_sym ; ats_ptr_type atslab_s1rtdef_def ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_s1tacst_loc ; ats_ptr_type atslab_s1tacst_sym ; ats_ptr_type atslab_s1tacst_fil ; ats_ptr_type atslab_s1tacst_arg ; ats_ptr_type atslab_s1tacst_res ; ats_ptr_type atslab_s1tacst_extdef ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_s1tacon_loc ; ats_ptr_type atslab_s1tacon_sym ; ats_ptr_type atslab_s1tacon_fil ; ats_ptr_type atslab_s1tacon_arg ; ats_ptr_type atslab_s1tacon_def ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_17 ; typedef struct { anairiats_rec_17 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_18 ; typedef struct { ats_ptr_type atslab_t1kindef_loc ; ats_ptr_type atslab_t1kindef_sym ; ats_ptr_type atslab_t1kindef_loc_id ; ats_ptr_type atslab_t1kindef_def ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_s1marg_loc ; ats_ptr_type atslab_s1marg_arg ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_s1expdef_loc ; ats_ptr_type atslab_s1expdef_sym ; ats_ptr_type atslab_s1expdef_loc_id ; ats_ptr_type atslab_s1expdef_arg ; ats_ptr_type atslab_s1expdef_res ; ats_ptr_type atslab_s1expdef_def ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_s1aspdec_loc ; ats_ptr_type atslab_s1aspdec_qid ; ats_ptr_type atslab_s1aspdec_arg ; ats_ptr_type atslab_s1aspdec_res ; ats_ptr_type atslab_s1aspdec_def ; } anairiats_rec_23 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_24 ; typedef struct { ats_ptr_type atslab_sqi0de_loc ; ats_ptr_type atslab_sqi0de_qua ; ats_ptr_type atslab_sqi0de_sym ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_d1atdec_loc ; ats_ptr_type atslab_d1atdec_fil ; ats_ptr_type atslab_d1atdec_sym ; ats_ptr_type atslab_d1atdec_arg ; ats_ptr_type atslab_d1atdec_con ; } anairiats_rec_26 ; typedef struct { anairiats_rec_17 atslab_0 ; } anairiats_sum_27 ; typedef struct { ats_ptr_type atslab_e1xndec_loc ; ats_ptr_type atslab_e1xndec_fil ; ats_ptr_type atslab_e1xndec_sym ; ats_ptr_type atslab_e1xndec_qua ; ats_int_type atslab_e1xndec_npf ; ats_ptr_type atslab_e1xndec_arg ; } anairiats_rec_28 ; typedef struct { anairiats_rec_1 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_29 ; typedef struct { ats_ptr_type atslab_d1cstdec_loc ; ats_ptr_type atslab_d1cstdec_fil ; ats_ptr_type atslab_d1cstdec_sym ; ats_ptr_type atslab_d1cstdec_type ; ats_ptr_type atslab_d1cstdec_extdef ; } anairiats_rec_30 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_31 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_32 ; typedef struct { ats_ptr_type atslab_m1acdef_loc ; ats_ptr_type atslab_m1acdef_sym ; ats_ptr_type atslab_m1acdef_arg ; ats_ptr_type atslab_m1acdef_def ; } anairiats_rec_33 ; typedef struct { ats_ptr_type atslab_m1acarg_loc ; ats_ptr_type atslab_m1acarg_node ; } anairiats_rec_34 ; typedef struct { ats_ptr_type atslab_s1arg_loc ; ats_ptr_type atslab_s1arg_sym ; ats_ptr_type atslab_s1arg_srt ; } anairiats_rec_35 ; typedef struct { ats_ptr_type atslab_f1undec_loc ; ats_ptr_type atslab_f1undec_sym ; ats_ptr_type atslab_f1undec_sym_loc ; ats_ptr_type atslab_f1undec_def ; ats_ptr_type atslab_f1undec_ann ; } anairiats_rec_36 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_37 ; typedef struct { ats_ptr_type atslab_v1aldec_loc ; ats_ptr_type atslab_v1aldec_pat ; ats_ptr_type atslab_v1aldec_def ; ats_ptr_type atslab_v1aldec_ann ; } anairiats_rec_38 ; typedef struct { ats_ptr_type atslab_v1ardec_loc ; ats_int_type atslab_v1ardec_knd ; ats_ptr_type atslab_v1ardec_sym ; ats_ptr_type atslab_v1ardec_sym_loc ; ats_ptr_type atslab_v1ardec_pfat ; ats_ptr_type atslab_v1ardec_type ; ats_ptr_type atslab_v1ardec_init ; } anairiats_rec_39 ; typedef struct { ats_ptr_type atslab_v2ardec_loc ; ats_int_type atslab_v2ardec_knd ; ats_ptr_type atslab_v2ardec_svar ; ats_ptr_type atslab_v2ardec_dvar ; ats_ptr_type atslab_v2ardec_pfat ; ats_ptr_type atslab_v2ardec_type ; ats_ptr_type atslab_v2ardec_init ; ats_ptr_type atslab_v2ardec_dvaropt ; } anairiats_rec_40 ; typedef struct { ats_ptr_type atslab_prv2ardec_loc ; ats_ptr_type atslab_prv2ardec_dvar ; ats_ptr_type atslab_prv2ardec_type ; ats_ptr_type atslab_prv2ardec_init ; } anairiats_rec_41 ; typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_42 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_43 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_44 ; typedef struct { ats_ptr_type atslab_i2mpdec_loc ; ats_ptr_type atslab_i2mpdec_locid ; ats_ptr_type atslab_i2mpdec_cst ; ats_ptr_type atslab_i2mpdec_imparg ; ats_ptr_type atslab_i2mpdec_tmparg ; ats_ptr_type atslab_i2mpdec_tmpgua ; ats_ptr_type atslab_i2mpdec_def ; } anairiats_rec_45 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_46 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_47 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_48 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_49 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_50 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_51 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_52 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGdyn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGsta_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASdef_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMcst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMe1xp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMfilenv_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpackname_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymintr_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymelim_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Coverload_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpdef_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpundef_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpragma_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ccodegen_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatsrts_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csrtdefs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacsts_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacons_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ctkindef_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csexpdefs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csaspdec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Creassume_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cexndecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatdecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cclassdec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextvar_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextcode_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdcstdecs_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cmacdefs_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cimpdec_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cfundecs_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvaldecs_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvardecs_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cinclude_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaload_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadnm_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadloc_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdynload_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clocal_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2PITM_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMe1xp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMsymdef_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymintr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1expdef_tr_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1aspdec_tr_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1aspdec_tr_arg_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1aspdec_tr_res_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_re1assume_tr_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1atdec_tr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_f1undec_tr_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1cstdec_tr_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_overload_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_overload_def_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_staloadnm_40) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_proof) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_proof) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQEQ) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__neq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_i0de) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_dqi0de) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_make) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_set_sconlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_cls) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_bool_type, ats_bool_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make_dat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_islst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dconlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_supcls) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dstag) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_extdef) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_set_tag) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_FUNCLOfun) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2aspdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_exception_vtype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_nonprf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isprf) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_decarg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_kind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_make) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_set_def) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__f2undec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2aldec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2ardec_make) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prv2ardec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symintr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symelim) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_overload) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_pragma) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_codegen) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacsts) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacons) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_saspdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_reassume) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extype) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extcode) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_datdecs) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_exndecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dcstdecs) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_fundecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_vardecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_prvardecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_impdec) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_include) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staload) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staloadloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dynload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_local) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_lam) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_finalize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtlst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtopt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_symsrt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__witht1ype_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr_dec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1atcon_tr) (ats_ptr_type, ats_bool_type, ats_bool_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1expopt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__i1mpdec_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1ecl_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_inc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_dec) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_inc) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_dec) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_inc) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_dec) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__s2qualstlst_set_tmplev) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcon) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacdef) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvaropt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_fundeclst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_current_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_localjoin) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_save) () ; ATSextern_fun(anairiats_rec_2, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_restore) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_def) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_d2eclist) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__d1atdeclst_tr) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__e1xndeclst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taload_tr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taloadnm_tr) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02113_ () ; static ats_void_type aux_2 (ats_ptr_type arg0) ; static ats_void_type symintr_tr_1 (ats_ptr_type arg0) ; static ats_void_type fproc_4 (ats_ptr_type arg0) ; static ats_void_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type symelim_tr_3 (ats_ptr_type arg0) ; static ats_void_type prerr_error2_loc_02117_ (ats_ptr_type arg0) ; static ats_void_type auxerr_9 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr1_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type auxerr2_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type aux_15 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxlst_16 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type d1atsrtdec_tr_14 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop1_18 (ats_ptr_type arg0) ; static ats_void_type loop2_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d1atsrtdeclst_tr_17 (ats_ptr_type arg0) ; static ats_void_type s1rtdef_tr_20 (ats_ptr_type arg0) ; static ats_void_type s1rtdeflst_tr_21 (ats_ptr_type arg0) ; static ats_ptr_type aux_23 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s1tacst_tr_22 (ats_ptr_type arg0) ; static ats_void_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s1tacstlst_tr_24 (ats_ptr_type arg0) ; static ats_void_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_anairiats_rec_17_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_anairiats_rec_17_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_33 (anairiats_rec_17 arg0) ; static ats_ptr_type aux_29 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f1_34 (anairiats_rec_17 arg0) ; static ats_ptr_type f2_35 (ats_ptr_type arg0) ; static ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s1tacon_tr_28 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_38 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s1taconlst_tr_37 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_void_type t1kindef_tr_39 (ats_ptr_type arg0) ; static ats_ptr_type fproc_41 (ats_ptr_type arg0) ; static ats_ptr_type s1expdef_tr_arg_40 (ats_ptr_type arg0) ; static ats_void_type loop_44 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type s1expdef_tr_def_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_46 (ats_ptr_type arg0) ; static ats_ptr_type s1expdef_tr_45 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_48 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_48_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_48_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type loop_49 (ats_ptr_type arg0) ; static ats_void_type s1expdeflst_tr_47 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_51 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s1aspdec_tr_arg_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type auxerr_53 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s1aspdec_tr_res_52 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr1_55 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr2_56 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr3_57 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_60 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_filter_funenv_01338_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_filter_fun_01339_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s1aspdec_tr_54 (ats_ptr_type arg0) ; static ats_void_type auxerr1_62 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr2_63 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr3_64 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type re1assume_tr_61 (ats_ptr_type arg0) ; static ats_ptr_type d1atconlst_tr_65 (ats_ptr_type arg0, ats_bool_type arg1, ats_bool_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_int_type loop_68 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type aux_69 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_void_type d1atdec_tr_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type f_72 (ats_ptr_type arg0) ; static ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) ; static ats_ptr_type ff_73 (ats_ptr_type arg0) ; static ats_ptr_type fopr_75 (ats_ptr_type arg0) ; static ats_void_type aux_71 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type aux_71_closure_make (ats_ptr_type env0) ; static ats_void_type aux_71_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type auxlst_76 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type auxlst_76_closure_make (ats_ptr_type env0) ; static ats_void_type auxlst_76_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type aux2_77 (ats_ptr_type arg0) ; static ats_ptr_type auxlst2_78 (ats_ptr_type arg0) ; static ats_void_type loop_82 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type e1xndec_tr_79 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_84 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_86 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type c1lassdec_tr_87 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_ERROR_beg_02111_ () ; static ats_void_type prerr_ERROR_end_02112_ () ; static ats_void_type dckfun_check_88 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s2exp_get_arylst_91 (ats_ptr_type arg0) ; static ats_ptr_type d1cstdec_tr_92 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type d1cstdeclst_tr_93 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type trans2_env_add_m2acarg_94 (ats_ptr_type arg0) ; static ats_void_type trans2_env_add_m2acarglst_95 (ats_ptr_type arg0) ; static ats_void_type m1acdef_tr_96 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type f_98 (ats_ptr_type arg0) ; static ats_ptr_type f_99 (ats_ptr_type arg0) ; static ats_ptr_type m1acarg_tr_97 (ats_ptr_type arg0) ; static ats_ptr_type m1acarglst_tr_100 (ats_ptr_type arg0) ; static ats_ptr_type aux1_102 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_void_type loop2_103 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type m1acdeflst_tr_101 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f1undec_tr_104 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux1_106 (ats_bool_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux2_107 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type f1undeclst_tr_105 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type v1aldec_tr_108 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_110 (ats_ptr_type arg0) ; static ats_void_type loop_113 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ; static ats_ptr_type list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type v1aldeclst_tr_109 (ats_bool_type arg0, ats_ptr_type arg1) ; static ats_ptr_type v1ardec_tr_114 (ats_ptr_type arg0) ; static ats_void_type f_116 (ats_ptr_type arg0) ; static ats_ptr_type v1ardeclst_tr_115 (ats_ptr_type arg0) ; static ats_void_type prerr_warning2_loc_02123_ (ats_ptr_type arg0) ; static ats_void_type auxkndck_117 (ats_ptr_type arg0) ; static ats_void_type auxwthck_119 (ats_ptr_type arg0) ; static ats_ptr_type prv1ardec_tr_120 (ats_ptr_type arg0) ; static ats_void_type f_122 (ats_ptr_type arg0) ; static ats_ptr_type prv1ardeclst_tr_121 (ats_ptr_type arg0) ; static ats_void_type auxerr_125 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxcheck_impdec_128 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 1796(line=60, offs=18) -- 1825(line=60, offs=47) */ ATSstaticdec() ats_void_type prerr_FILENAME_02113_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02113_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans2_decl")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02113_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 3216(line=139, offs=5) -- 3536(line=153, offs=4) */ ATSstaticdec() ats_void_type aux_2 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_aux_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp4 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp3), atslab_i0de_sym) ; tmp8 = (ats_sum_ptr_type)0 ; tmp7 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp7)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp7, atslab_0, tmp5) ; ats_selptrset_mac(anairiats_sum_5, tmp7, atslab_1, tmp8) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp5, tmp7) ; arg0 = tmp4 ; goto __ats_lab_aux_2 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp2) */ ; } /* end of [aux_2] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 3169(line=136, offs=1) -- 3572(line=157, offs=4) */ ATSstaticdec() ats_void_type symintr_tr_1 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp1) ; __ats_lab_symintr_tr_1: /* tmp1 = */ aux_2 (arg0) ; return /* (tmp1) */ ; } /* end of [symintr_tr_1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 3669(line=166, offs=1) -- 4077(line=183, offs=4) */ ATSstaticdec() ats_void_type fproc_4 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab_fproc_4: tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_i0de_sym) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (tmp11) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp12 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_2_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_0) ; ATS_FREE(tmp12) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp13)->tag != 4) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp15 = (ats_sum_ptr_type)0 ; tmp14 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp14)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp14, atslab_0, tmp11) ; ats_selptrset_mac(anairiats_sum_5, tmp14, atslab_1, tmp15) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp11, tmp14) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: break ; } while (0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp12 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: break ; } while (0) ; return /* (tmp10) */ ; } /* end of [fproc_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; __ats_lab_loop_7: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp21 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp19, arg2) ; arg0 = tmp20 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_7 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: break ; } while (0) ; return /* (tmp18) */ ; } /* end of [loop_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp17) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp17 = */ loop_7 (arg0, arg1, arg2) ; return /* (tmp17) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp16) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp16 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp16) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 3622(line=162, offs=1) -- 4133(line=187, offs=4) */ ATSstaticdec() ats_void_type symelim_tr_3 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp9) ; __ats_lab_symelim_tr_3: /* tmp9 = */ list_app_fun_01301_ats_ptr_type (arg0, &fproc_4) ; return /* (tmp9) */ ; } /* end of [symelim_tr_3] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2105(line=76, offs=17) -- 2163(line=79, offs=2) */ ATSstaticdec() ats_void_type prerr_error2_loc_02117_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; __ats_lab_prerr_error2_loc_02117_: /* tmp28 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp27 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ; return /* (tmp27) */ ; } /* end of [prerr_error2_loc_02117_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 4720(line=223, offs=1) -- 5089(line=235, offs=4) */ ATSstaticdec() ats_void_type auxerr_9 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_auxerr_9: tmp25 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_dqi0de_loc) ; /* tmp26 = */ prerr_error2_loc_02117_ (tmp25) ; /* tmp29 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("overload_tr")) ; /* tmp30 = */ atspre_prerr_string (ATSstrcst(": the dynamic identifier [")) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_dqi0de (arg1) ; /* tmp32 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp33 = */ atspre_prerr_newline () ; tmp34 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp34)->tag = 38 ; ats_selptrset_mac(anairiats_sum_9, tmp34, atslab_0, arg0) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp34) ; return /* (tmp24) */ ; } /* end of [auxerr_9] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 4512(line=208, offs=1) -- 5416(line=251, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr: tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d1ecl_loc) ; tmp35 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg2), atslab_dqi0de_qua) ; tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg2), atslab_dqi0de_sym) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua (tmp35, tmp36) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (ats_castfn_mac(ats_ptr_type, tmp37) == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_6, ats_castfn_mac(ats_ptr_type, tmp37), atslab_0) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_def (tmp23, arg1, arg3, tmp39) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (ats_castfn_mac(ats_ptr_type, tmp37) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: /* tmp38 = */ auxerr_9 (arg0, arg2) ; break ; } while (0) ; tmp22 = ats_castfn_mac(ats_ptr_type, tmp37) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 5527(line=260, offs=1) -- 5942(line=273, offs=4) */ ATSstaticdec() ats_void_type auxerr1_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp42) ; ATSlocal (ats_int_type, tmp43) ; // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab_auxerr1_12: tmp43 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp43 ; tmp45 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_i0de_loc) ; /* tmp44 = */ prerr_error2_loc_02117_ (tmp45) ; /* tmp46 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("overload_tr_def")) ; /* tmp47 = */ atspre_prerr_string (ATSstrcst(": the overloaded identifier [")) ; /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_i0de (arg1) ; /* tmp49 = */ atspre_prerr_string (ATSstrcst("] should refer to a symbol but it does not.")) ; /* tmp50 = */ atspre_prerr_newline () ; tmp51 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp51)->tag = 39 ; ats_selptrset_mac(anairiats_sum_9, tmp51, atslab_0, arg0) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp51) ; return /* (tmp42) */ ; } /* end of [auxerr1_12] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 5970(line=276, offs=1) -- 6360(line=291, offs=4) */ ATSstaticdec() ats_void_type auxerr2_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp52) ; ATSlocal (ats_int_type, tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab_auxerr2_13: tmp53 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp53 ; tmp55 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_i0de_loc) ; /* tmp54 = */ prerr_error2_loc_02117_ (tmp55) ; /* tmp56 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("overload_tr_def")) ; /* tmp57 = */ atspre_prerr_string (ATSstrcst(": the overloaded identifier [")) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_i0de (arg1) ; /* tmp59 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp60 = */ atspre_prerr_newline () ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp61)->tag = 39 ; ats_selptrset_mac(anairiats_sum_9, tmp61, atslab_0, arg0) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp61) ; return /* (tmp52) */ ; } /* end of [auxerr2_13] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 5470(line=255, offs=3) -- 7706(line=347, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_def (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp40) ; ATSlocal (ats_int_type, tmp41) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_bool_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_def: /* ats_int_type tmp41 ; */ tmp41 = 0 ; tmp62 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_i0de_sym) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_current_find (tmp62) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp63 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp64 = tmp63 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp63 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_find (tmp62) ; break ; } while (0) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp64 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_12_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_6, tmp64, atslab_0) ; ATS_FREE(tmp64) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp66)->tag != 4) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_5, tmp66, atslab_1) ; tmp65 = tmp67 ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: /* tmp68 = */ auxerr1_12 (arg0, arg1, (&tmp41)) ; tmp65 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp64 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp69 = (ats_sum_ptr_type)0 ; tmp71 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp71)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp71, atslab_0, tmp62) ; ats_selptrset_mac(anairiats_sum_5, tmp71, atslab_1, tmp69) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp62, tmp71) ; tmp65 = tmp69 ; break ; } while (0) ; tmp72 = atspre_eq_int_int (tmp41, 0) ; if (tmp72) { tmp73 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp73, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp73, atslab_1, arg3) ; tmp74 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp74, atslab_0, tmp73) ; ats_selptrset_mac(anairiats_sum_3, tmp74, atslab_1, tmp65) ; tmp75 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp75)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp75, atslab_0, tmp62) ; ats_selptrset_mac(anairiats_sum_5, tmp75, atslab_1, tmp74) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp62, tmp75) ; } else { /* empty */ } /* end of [if] */ return /* (tmp40) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_def] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 7835(line=357, offs=5) -- 8374(line=388, offs=2) */ ATSstaticdec() ats_ptr_type aux_15 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; __ats_lab_aux_15: tmp78 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg2), atslab_d1atsrtcon_sym) ; tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg2), atslab_d1atsrtcon_loc) ; tmp81 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg2), atslab_d1atsrtcon_arg) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtlst_tr (tmp81) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun (tmp80, arg1) ; tmp84 = (ats_sum_ptr_type)0 ; tmp85 = (ats_sum_ptr_type)0 ; tmp86 = (ats_sum_ptr_type)0 ; tmp87 = (ats_sum_ptr_type)0 ; tmp88 = (ats_sum_ptr_type)0 ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (tmp78, tmp79, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy, tmp82, tmp84, ats_true_bool, ats_false_bool, tmp85, tmp86, tmp87, tmp88) ; /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dstag (tmp83, arg0) ; /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (tmp83) ; tmp77 = tmp83 ; return (tmp77) ; } /* end of [aux_15] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 8401(line=390, offs=5) -- 8638(line=403, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_16 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_int_type, tmp96) ; __ats_lab_auxlst_16: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp93 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp94 = aux_15 (arg0, arg1, tmp92) ; tmp96 = atspre_add_int_int (arg0, 1) ; tmp95 = auxlst_16 (tmp96, arg1, tmp93) ; tmp91 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp91, atslab_0, tmp94) ; ats_selptrset_mac(anairiats_sum_3, tmp91, atslab_1, tmp95) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp91 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp91) ; } /* end of [auxlst_16] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 7764(line=352, offs=1) -- 8705(line=407, offs=4) */ ATSstaticdec() ats_ptr_type d1atsrtdec_tr_14 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab_d1atsrtdec_tr_14: tmp97 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg1), atslab_d1atsrtdec_con) ; tmp76 = auxlst_16 (0, arg0, tmp97) ; return (tmp76) ; } /* end of [d1atsrtdec_tr_14] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 8834(line=415, offs=5) -- 9102(line=427, offs=4) */ ATSstaticdec() ats_void_type loop1_18 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp99) ; ATSlocal (anairiats_rec_2, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; // ATSlocal_void (tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab_loop1_18: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp103 = ats_select_mac(tmp100, atslab_2) ; tmp104 = ats_select_mac(tmp100, atslab_0) ; tmp102 = d1atsrtdec_tr_14 (tmp103, tmp104) ; tmp106 = ats_select_mac(tmp100, atslab_1) ; /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_set_sconlst (tmp106, tmp102) ; arg0 = tmp101 ; goto __ats_lab_loop1_18 ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: break ; } while (0) ; return /* (tmp99) */ ; } /* end of [loop1_18] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 9128(line=429, offs=5) -- 10016(line=472, offs=4) */ ATSstaticdec() ats_void_type loop2_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (anairiats_rec_2, tmp129) ; __ats_lab_loop2_19: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp109 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp110 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp108), atslab_d1atsrtdec_loc) ; tmp111 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp108), atslab_d1atsrtdec_sym) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_make (tmp111) ; tmp114 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp114)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp114, atslab_0, tmp112) ; tmp113 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp113)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp113, atslab_0, tmp114) ; tmp116 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp116, atslab_0, tmp113) ; tmp117 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_3, tmp116), atslab_1) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp118, atslab_0, tmp113) ; ats_ptrget_mac(ats_ptr_type, tmp117) = tmp118 ; tmp117 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_3, tmp118), atslab_1) ; tmp118 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp117) = tmp118 ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun (tmp116, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; tmp120 = (ats_sum_ptr_type)0 ; tmp121 = (ats_sum_ptr_type)0 ; tmp122 = (ats_sum_ptr_type)0 ; tmp123 = (ats_sum_ptr_type)0 ; tmp124 = (ats_sum_ptr_type)0 ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQEQ, tmp110, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy, tmp115, tmp120, ats_false_bool, ats_false_bool, tmp121, tmp122, tmp123, tmp124) ; /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (tmp119) ; tmp127 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp127)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp127, atslab_0, tmp113) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (tmp111, tmp127) ; tmp129.atslab_0 = tmp108 ; tmp129.atslab_1 = tmp112 ; tmp129.atslab_2 = tmp113 ; tmp128 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp128, atslab_0, tmp129) ; ats_selptrset_mac(anairiats_sum_13, tmp128, atslab_1, arg1) ; arg0 = tmp109 ; arg1 = tmp128 ; goto __ats_lab_loop2_19 ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: /* tmp107 = */ loop1_18 (arg1) ; break ; } while (0) ; return /* (tmp107) */ ; } /* end of [loop2_19] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 8737(line=410, offs=1) -- 10075(line=476, offs=4) */ ATSstaticdec() ats_void_type d1atsrtdeclst_tr_17 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp98) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab_d1atsrtdeclst_tr_17: tmp130 = (ats_sum_ptr_type)0 ; /* tmp98 = */ loop2_19 (arg0, tmp130) ; return /* (tmp98) */ ; } /* end of [d1atsrtdeclst_tr_17] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 10131(line=481, offs=1) -- 10269(line=487, offs=4) */ ATSstaticdec() ats_void_type s1rtdef_tr_20 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab_s1rtdef_tr_20: tmp132 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s1rtdef_sym) ; tmp134 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s1rtdef_def) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr (tmp134) ; /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (tmp132, tmp133) ; return /* (tmp131) */ ; } /* end of [s1rtdef_tr_20] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 10298(line=490, offs=1) -- 10368(line=491, offs=57) */ ATSstaticdec() ats_void_type s1rtdeflst_tr_21 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp135) ; __ats_lab_s1rtdeflst_tr_21: /* tmp135 = */ list_app_fun_01301_ats_ptr_type (arg0, &s1rtdef_tr_20) ; return /* (tmp135) */ ; } /* end of [s1rtdeflst_tr_21] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 10471(line=503, offs=1) -- 10658(line=511, offs=30) */ ATSstaticdec() ats_ptr_type aux_23 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; __ats_lab_aux_23: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_srt (tmp138) ; tmp141 = aux_23 (tmp139, arg1) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun (tmp140, tmp141) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp137 = arg1 ; break ; } while (0) ; return (tmp137) ; } /* end of [aux_23] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 10421(line=497, offs=1) -- 11209(line=548, offs=4) */ ATSstaticdec() ats_ptr_type s1tacst_tr_22 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; // ATSlocal_void (tmp157) ; __ats_lab_s1tacst_tr_22: tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s1tacst_sym) ; tmp143 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s1tacst_loc) ; tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s1tacst_fil) ; tmp146 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s1tacst_res) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp146) ; tmp148 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s1tacst_arg) ; tmp147 = aux_23 (tmp148, tmp145) ; tmp150 = (ats_sum_ptr_type)0 ; tmp151 = (ats_sum_ptr_type)0 ; tmp152 = (ats_sum_ptr_type)0 ; tmp153 = (ats_sum_ptr_type)0 ; tmp154 = (ats_sum_ptr_type)0 ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (tmp142, tmp143, tmp144, tmp147, tmp150, ats_false_bool, ats_false_bool, tmp151, tmp152, tmp153, tmp154) ; tmp156 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s1tacst_extdef) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_extdef (tmp149, tmp156) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (tmp149) ; tmp136 = tmp149 ; return (tmp136) ; } /* end of [s1tacst_tr_22] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; __ats_lab_loop_27: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp165 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp163, arg3) ; tmp166 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp166, atslab_0, tmp165) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp166 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp167 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp164 ; arg1 = arg1 ; arg2 = tmp167 ; arg3 = arg3 ; goto __ats_lab_loop_27 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp168 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp168 ; break ; } while (0) ; return /* (tmp162) */ ; } /* end of [loop_27] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp169) ; // ATSlocal_void (tmp170) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp169 ; */ /* tmp170 = */ loop_27 (arg0, arg1, (&tmp169), arg2) ; tmp161 = tmp169 ; return (tmp161) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp160) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp160 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp160) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 11238(line=551, offs=1) -- 11334(line=555, offs=2) */ ATSstaticdec() ats_ptr_type s1tacstlst_tr_24 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab_s1tacstlst_tr_24: tmp159 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &s1tacst_tr_22) ; tmp158 = ats_castfn_mac(ats_ptr_type, tmp159) ; return (tmp158) ; } /* end of [s1tacstlst_tr_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp183) ; ATSlocal (anairiats_rec_17, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab_loop_32: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp184 = ats_caselptrlab_mac(anairiats_sum_18, arg0, atslab_0) ; tmp185 = ats_caselptrlab_mac(anairiats_sum_18, arg0, atslab_1) ; tmp186 = ((ats_ptr_type(*)(anairiats_rec_17, ats_ptr_type))arg1) (tmp184, arg3) ; tmp187 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp187, atslab_0, tmp186) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp187 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp188 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp185 ; arg1 = arg1 ; arg2 = tmp188 ; arg3 = arg3 ; goto __ats_lab_loop_32 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp189 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp189 ; break ; } while (0) ; return /* (tmp183) */ ; } /* end of [loop_32] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_anairiats_rec_17_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp190) ; // ATSlocal_void (tmp191) ; __ats_lab_list_map_funenv_01412_anairiats_rec_17_ats_ptr_type: /* ats_ptr_type tmp190 ; */ /* tmp191 = */ loop_32 (arg0, arg1, (&tmp190), arg2) ; tmp182 = tmp190 ; return (tmp182) ; } /* end of [list_map_funenv_01412_anairiats_rec_17_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_anairiats_rec_17_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp181) ; __ats_lab_list_map_fun_01413_anairiats_rec_17_ats_ptr_type: tmp181 = list_map_funenv_01412_anairiats_rec_17_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp181) ; } /* end of [list_map_fun_01413_anairiats_rec_17_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 11969(line=596, offs=19) -- 11988(line=596, offs=38) */ ATSstaticdec() ats_ptr_type __ats_fun_33 (anairiats_rec_17 arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; __ats_lab___ats_fun_33: tmp192 = ats_select_mac(arg0, atslab_1) ; return (tmp192) ; } /* end of [__ats_fun_33] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 11679(line=581, offs=7) -- 12111(line=602, offs=4) */ ATSstaticdec() ats_ptr_type aux_29 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab_aux_29: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp177 = arg0 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp179 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp180 = list_map_fun_01413_anairiats_rec_17_ats_ptr_type (tmp178, &__ats_fun_33) ; tmp193 = aux_29 (arg0, tmp179) ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun (ats_castfn_mac(ats_ptr_type, tmp180), tmp193) ; break ; } while (0) ; return (tmp177) ; } /* end of [aux_29] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 12450(line=620, offs=7) -- 12574(line=623, offs=39) */ ATSstaticdec() ats_ptr_type f1_34 (anairiats_rec_17 arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_bool_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab_f1_34: tmp199 = ats_select_mac(arg0, atslab_0) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp199, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; if (tmp198) { tmp200 = ats_select_mac(arg0, atslab_1) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (tmp200) ; } else { tmp201 = ats_select_mac(arg0, atslab_0) ; tmp202 = ats_select_mac(arg0, atslab_1) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp201, tmp202) ; } /* end of [if] */ return (tmp197) ; } /* end of [f1_34] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 12600(line=625, offs=7) -- 12811(line=637, offs=6) */ ATSstaticdec() ats_ptr_type f2_35 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; // ATSlocal_void (tmp205) ; __ats_lab_f2_35: tmp204 = list_map_fun_01413_anairiats_rec_17_ats_ptr_type (arg0, &f1_34) ; /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp204)) ; tmp203 = ats_castfn_mac(ats_ptr_type, tmp204) ; return (tmp203) ; } /* end of [f2_35] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 12950(line=646, offs=7) -- 13328(line=661, offs=4) */ ATSstaticdec() ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; __ats_lab_aux_36: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_decl.dats: 13105(line=654, offs=13) -- 13135(line=654, offs=43)") ; } tmp210 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp211 = aux_36 (tmp210, tmp209, arg2) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (arg0, tmp208, tmp211) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp207 = arg2 ; break ; } while (0) ; return (tmp207) ; } /* end of [aux_36] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 11390(line=560, offs=1) -- 14010(line=699, offs=4) */ ATSstaticdec() ats_ptr_type s1tacon_tr_28 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; // ATSlocal_void (tmp223) ; __ats_lab_s1tacon_tr_28: tmp172 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_s1tacon_sym) ; tmp173 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_s1tacon_loc) ; tmp174 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_s1tacon_fil) ; tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_s1tacon_arg) ; tmp175 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp176, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_symsrt) ; tmp194 = aux_29 (arg0, ats_castfn_mac(ats_ptr_type, tmp175)) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp196 = ats_selsin_mac(tmp195, atslab_1) */ ; tmp206 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp175), &f2_35) ; tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_s1tacon_def) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp212 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_6, tmp212, atslab_0) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp214, arg0) ; tmp216 = aux_36 (tmp194, ats_castfn_mac(ats_ptr_type, tmp206), tmp215) ; tmp213 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp213, atslab_0, tmp216) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (tmp212 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp213 = (ats_sum_ptr_type)0 ; break ; } while (0) ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp219 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp219, atslab_0, tmp213) ; tmp220 = (ats_sum_ptr_type)0 ; tmp221 = (ats_sum_ptr_type)0 ; tmp222 = (ats_sum_ptr_type)0 ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (tmp172, tmp173, tmp174, tmp194, tmp219, ats_true_bool, ats_false_bool, tmp220, tmp221, ats_castfn_mac(ats_ptr_type, tmp175), tmp222) ; /* tmp223 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (tmp218) ; tmp171 = tmp218 ; return (tmp171) ; } /* end of [s1tacon_tr_28] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 14108(line=708, offs=1) -- 14399(line=726, offs=2) */ ATSstaticdec() ats_ptr_type auxlst_38 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; __ats_lab_auxlst_38: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp226 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp227 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp228 = s1tacon_tr_28 (arg0, tmp226) ; tmp229 = auxlst_38 (arg0, tmp227) ; tmp225 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp225, atslab_0, tmp228) ; ats_selptrset_mac(anairiats_sum_3, tmp225, atslab_1, tmp229) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp225 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp225) ; } /* end of [auxlst_38] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 14039(line=702, offs=1) -- 14459(line=730, offs=4) */ ATSstaticdec() ats_ptr_type s1taconlst_tr_37 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp230) ; __ats_lab_s1taconlst_tr_37: tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred (arg0) ; tmp224 = auxlst_38 (tmp230, arg1) ; return (tmp224) ; } /* end of [s1taconlst_tr_37] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 14939(line=758, offs=1) -- 15404(line=786, offs=4) */ ATSstaticdec() ats_void_type t1kindef_tr_39 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; __ats_lab_t1kindef_tr_39: tmp232 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_t1kindef_sym) ; tmp233 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_t1kindef_loc_id) ; tmp235 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_t1kindef_def) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp235) ; tmp237 = (ats_sum_ptr_type)0 ; tmp238 = (ats_sum_ptr_type)0 ; tmp239 = (ats_sum_ptr_type)0 ; tmp240 = (ats_sum_ptr_type)0 ; tmp241 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp241, atslab_0, tmp234) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (tmp232, tmp233, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind, tmp237, ats_false_bool, ats_false_bool, tmp238, tmp239, tmp240, tmp241) ; /* tmp231 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (tmp236) ; return /* (tmp231) */ ; } /* end of [t1kindef_tr_39] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 15532(line=799, offs=1) -- 15666(line=804, offs=2) */ ATSstaticdec() ats_ptr_type fproc_41 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; // ATSlocal_void (tmp246) ; __ats_lab_fproc_41: tmp245 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_s1marg_arg) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (tmp245) ; /* tmp246 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp244) ; tmp243 = tmp244 ; return (tmp243) ; } /* end of [fproc_41] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 15462(line=793, offs=1) -- 15721(line=808, offs=4) */ ATSstaticdec() ats_ptr_type s1expdef_tr_arg_40 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp242) ; __ats_lab_s1expdef_tr_arg_40: tmp242 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &fproc_41) ; return (tmp242) ; } /* end of [s1expdef_tr_arg_40] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_44 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; __ats_lab_loop_44: 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: tmp258 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp258 ; goto __ats_lab_loop_44 ; // 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 /* (tmp257) */ ; } /* end of [loop_44] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp256) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp256 = */ loop_44 (arg0) ; return /* (tmp256) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 15755(line=811, offs=1) -- 16215(line=836, offs=4) */ ATSstaticdec() ats_ptr_type s1expdef_tr_def_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp247) ; // ATSlocal_void (tmp248) ; // ATSlocal_void (tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; // ATSlocal_void (tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; // ATSlocal_void (tmp255) ; __ats_lab_s1expdef_tr_def_42: /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp249 = ats_selsin_mac(tmp248, atslab_1) */ ; tmp250 = s1expdef_tr_arg_40 (arg0) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp252 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg2, tmp252) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg2) ; break ; } while (0) ; /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst (ats_castfn_mac(ats_ptr_type, tmp250), tmp251) ; /* tmp255 = */ list_vt_free_01499_ats_ptr_type (tmp250) ; tmp247 = tmp254 ; return (tmp247) ; } /* end of [s1expdef_tr_def_42] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 16336(line=847, offs=1) -- 16736(line=864, offs=4) */ ATSstaticdec() ats_void_type auxerr_46 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp260) ; // ATSlocal_void (tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; // ATSlocal_void (tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; __ats_lab_auxerr_46: tmp262 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_s1expdef_loc) ; /* tmp261 = */ prerr_error2_loc_02117_ (tmp262) ; /* tmp263 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("s1expdef_tr")) ; /* tmp264 = */ atspre_prerr_string (ATSstrcst(": the sort for the static definition does not\nmatch the one assigned to the static constant [")) ; tmp266 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_s1expdef_sym) ; /* tmp265 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp266) ; /* tmp267 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp268 = */ atspre_prerr_newline () ; tmp269 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp269)->tag = 18 ; ats_selptrset_mac(anairiats_sum_9, tmp269, atslab_0, arg0) ; /* tmp260 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp269) ; return /* (tmp260) */ ; } /* end of [auxerr_46] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 16271(line=841, offs=1) -- 17518(line=906, offs=4) */ ATSstaticdec() ats_ptr_type s1expdef_tr_45 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_bool_type, tmp279) ; // ATSlocal_void (tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; __ats_lab_s1expdef_tr_45: tmp270 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg1), atslab_s1expdef_sym) ; tmp271 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg1), atslab_s1expdef_loc_id) ; tmp272 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg1), atslab_s1expdef_arg) ; tmp273 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg1), atslab_s1expdef_def) ; tmp275 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg1), atslab_s1expdef_res) ; tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtopt_tr (tmp275) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_40_1: tmp277 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (tmp274 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp278 = ats_caselptrlab_mac(anairiats_sum_6, tmp274, atslab_0) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp278, tmp277) ; if (tmp279) { tmp276 = tmp274 ; } else { /* tmp280 = */ auxerr_46 (arg1) ; tmp276 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (tmp274 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp276 = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp276 = tmp274 ; break ; } while (0) ; tmp281 = s1expdef_tr_def_42 (tmp272, tmp276, tmp273) ; tmp282 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp281), atslab_s2exp_srt) ; tmp283 = (ats_sum_ptr_type)0 ; tmp284 = (ats_sum_ptr_type)0 ; tmp285 = (ats_sum_ptr_type)0 ; tmp286 = (ats_sum_ptr_type)0 ; tmp287 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp287, atslab_0, tmp281) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (tmp270, tmp271, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy, tmp282, tmp283, ats_false_bool, ats_false_bool, tmp284, tmp285, tmp286, tmp287) ; return (tmp259) ; } /* end of [s1expdef_tr_45] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 17710(line=918, offs=7) -- 17960(line=927, offs=4) */ ATSstaticdec() ats_ptr_type aux_48 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; __ats_lab_aux_48: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp293 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp294 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp295 = s1expdef_tr_45 (env0, tmp293) ; tmp296 = aux_48 (env0, tmp294) ; tmp292 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp292, atslab_0, tmp295) ; ats_selptrset_mac(anairiats_sum_3, tmp292, atslab_1, tmp296) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp292 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp292) ; } /* end of [aux_48] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_48_closure_type ; ats_ptr_type aux_48_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_48 (((aux_48_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_48_closure_init (aux_48_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_48_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_48_closure_make (ats_ptr_type env0) { aux_48_closure_type *p_clo = ATS_MALLOC(sizeof(aux_48_closure_type)) ; aux_48_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 18036(line=934, offs=7) -- 18293(line=946, offs=4) */ ATSstaticdec() ats_void_type loop_49 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; // ATSlocal_void (tmp301) ; __ats_lab_loop_49: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp299 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp300 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp301 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (tmp299) ; arg0 = tmp300 ; goto __ats_lab_loop_49 ; // tail call break ; } while (0) ; return /* (tmp298) */ ; } /* end of [loop_49] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 17548(line=909, offs=1) -- 18375(line=954, offs=4) */ ATSstaticdec() ats_void_type s1expdeflst_tr_47 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_bool_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp297) ; __ats_lab_s1expdeflst_tr_47: tmp290 = atspre_gte_int_int (arg0, 0) ; if (tmp290) { tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred (arg0) ; tmp289 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp289, atslab_0, tmp291) ; } else { tmp289 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp297 = aux_48 (tmp289, arg1) ; /* tmp288 = */ loop_49 (tmp297) ; return /* (tmp288) */ ; } /* end of [s1expdeflst_tr_47] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 18558(line=970, offs=1) -- 18861(line=980, offs=4) */ ATSstaticdec() ats_void_type auxerr_51 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp303) ; // ATSlocal_void (tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; // ATSlocal_void (tmp306) ; // ATSlocal_void (tmp307) ; // ATSlocal_void (tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; __ats_lab_auxerr_51: tmp305 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg1), atslab_s1marg_loc) ; /* tmp304 = */ prerr_error2_loc_02117_ (tmp305) ; /* tmp306 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("s1aspdec_tr_arg")) ; /* tmp307 = */ atspre_prerr_string (ATSstrcst(": too many arguments for the assumed static constant.")) ; /* tmp308 = */ atspre_prerr_newline () ; tmp309 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp309)->tag = 20 ; ats_selptrset_mac(anairiats_sum_5, tmp309, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp309, atslab_1, arg1) ; /* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp309) ; return /* (tmp303) */ ; } /* end of [auxerr_51] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 18459(line=963, offs=1) -- 19430(line=1004, offs=4) */ ATSstaticdec() ats_ptr_type s1aspdec_tr_arg_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; // ATSlocal_void (tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; // ATSlocal_void (tmp317) ; __ats_lab_s1aspdec_tr_arg_50: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp302 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp310 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp311 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg2))->tag != 1) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp312 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_0) ; tmp313 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp313 ; tmp314 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn (tmp310, tmp312) ; /* tmp315 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp314) ; tmp316 = s1aspdec_tr_arg_50 (arg0, tmp311, arg2) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp302, atslab_0, tmp314) ; ats_selptrset_mac(anairiats_sum_3, tmp302, atslab_1, tmp316) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: /* tmp317 = */ auxerr_51 (arg0, tmp310) ; tmp302 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp302) ; } /* end of [s1aspdec_tr_arg_50] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 19532(line=1013, offs=1) -- 20005(line=1033, offs=2) */ ATSstaticdec() ats_void_type auxerr_53 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp325) ; // ATSlocal_void (tmp326) ; // ATSlocal_void (tmp327) ; // ATSlocal_void (tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; __ats_lab_auxerr_53: tmp321 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_s1aspdec_loc) ; /* tmp320 = */ prerr_error2_loc_02117_ (tmp321) ; /* tmp322 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("s1aspdec_tr_res")) ; /* tmp323 = */ atspre_prerr_string (ATSstrcst(": the static assumption is given the sort [")) ; /* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ; /* tmp325 = */ atspre_prerr_string (ATSstrcst("] but it is expected to be of the sort [")) ; /* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ; /* tmp327 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp328 = */ atspre_prerr_newline () ; tmp329 = ATS_MALLOC(sizeof(anairiats_sum_24)) ; ((ats_sum_ptr_type)tmp329)->tag = 21 ; ats_selptrset_mac(anairiats_sum_24, tmp329, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_24, tmp329, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_24, tmp329, atslab_2, arg2) ; /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp329) ; return /* (tmp319) */ ; } /* end of [auxerr_53] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 19464(line=1007, offs=1) -- 20339(line=1051, offs=4) */ ATSstaticdec() ats_ptr_type s1aspdec_tr_res_52 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_bool_type, tmp333) ; // ATSlocal_void (tmp334) ; __ats_lab_s1aspdec_tr_res_52: tmp330 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_s1aspdec_res) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (tmp330 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp331 = ats_caselptrlab_mac(anairiats_sum_6, tmp330, atslab_0) ; tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp331) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp332, arg1) ; if (tmp333) { tmp318 = tmp332 ; } else { /* tmp334 = */ auxerr_53 (arg0, tmp332, arg1) ; tmp318 = tmp332 ; } /* end of [if] */ break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (tmp330 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: tmp318 = arg1 ; break ; } while (0) ; return (tmp318) ; } /* end of [s1aspdec_tr_res_52] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 20508(line=1065, offs=1) -- 20899(line=1081, offs=4) */ ATSstaticdec() ats_void_type auxerr1_55 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp336) ; // ATSlocal_void (tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; // ATSlocal_void (tmp339) ; // ATSlocal_void (tmp340) ; // ATSlocal_void (tmp341) ; // ATSlocal_void (tmp342) ; // ATSlocal_void (tmp343) ; // ATSlocal_void (tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; __ats_lab_auxerr1_55: tmp338 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_s1aspdec_loc) ; /* tmp337 = */ prerr_error2_loc_02117_ (tmp338) ; /* tmp339 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("s1aspdec_tr")) ; /* tmp340 = */ atspre_prerr_string (ATSstrcst(": the static constant [")) ; /* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg1) ; /* tmp342 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp343 = */ atspre_prerr_string (ATSstrcst("] is not abstract.")) ; /* tmp344 = */ atspre_prerr_newline () ; tmp345 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp345)->tag = 19 ; ats_selptrset_mac(anairiats_sum_9, tmp345, atslab_0, arg0) ; /* tmp336 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp345) ; return /* (tmp336) */ ; } /* end of [auxerr1_55] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 20927(line=1084, offs=1) -- 21333(line=1100, offs=4) */ ATSstaticdec() ats_void_type auxerr2_56 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp346) ; // ATSlocal_void (tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; // ATSlocal_void (tmp353) ; // ATSlocal_void (tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; __ats_lab_auxerr2_56: tmp348 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_s1aspdec_loc) ; /* tmp347 = */ prerr_error2_loc_02117_ (tmp348) ; /* tmp349 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("s1aspdec_tr")) ; /* tmp350 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp351 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg1) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp353 = */ atspre_prerr_string (ATSstrcst("] does not refer to a static constant.")) ; /* tmp354 = */ atspre_prerr_newline () ; tmp355 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp355)->tag = 19 ; ats_selptrset_mac(anairiats_sum_9, tmp355, atslab_0, arg0) ; /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp355) ; return /* (tmp346) */ ; } /* end of [auxerr2_56] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 21361(line=1103, offs=1) -- 21679(line=1116, offs=4) */ ATSstaticdec() ats_void_type auxerr3_57 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp356) ; // ATSlocal_void (tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; // ATSlocal_void (tmp359) ; // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; // ATSlocal_void (tmp362) ; // ATSlocal_void (tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; __ats_lab_auxerr3_57: tmp358 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_s1aspdec_loc) ; /* tmp357 = */ prerr_error2_loc_02117_ (tmp358) ; /* tmp359 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp360 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg1) ; /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp362 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp363 = */ atspre_prerr_newline () ; tmp364 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp364)->tag = 19 ; ats_selptrset_mac(anairiats_sum_9, tmp364, atslab_0, arg0) ; /* tmp356 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp364) ; return /* (tmp356) */ ; } /* end of [auxerr3_57] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19833(line=716, offs=7) -- 20397(line=733, offs=40) */ ATSstaticdec() ats_void_type loop_60 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_bool_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; __ats_lab_loop_60: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp376 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp377 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp378 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp376, arg3) ; if (tmp378) { tmp379 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp379, atslab_0, tmp376) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp379 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp380 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp377 ; arg1 = arg1 ; arg2 = tmp380 ; arg3 = arg3 ; goto __ats_lab_loop_60 ; // tail call } else { arg0 = tmp377 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_60 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp381 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp381 ; break ; } while (0) ; return /* (tmp375) */ ; } /* end of [loop_60] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19800(line=714, offs=24) -- 20566(line=744, offs=4) */ ATSstaticdec() ats_ptr_type list_filter_funenv_01338_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp382) ; // ATSlocal_void (tmp383) ; __ats_lab_list_filter_funenv_01338_ats_ptr_type: /* ats_ptr_type tmp382 ; */ /* tmp383 = */ loop_60 (arg0, arg1, (&tmp382), arg2) ; tmp374 = tmp382 ; return (tmp374) ; } /* end of [list_filter_funenv_01338_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 20640(line=747, offs=29) -- 20900(line=756, offs=4) */ ATSstaticdec() ats_ptr_type list_filter_fun_01339_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp373) ; __ats_lab_list_filter_fun_01339_ats_ptr_type: tmp373 = list_filter_funenv_01338_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp373) ; } /* end of [list_filter_fun_01339_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 20446(line=1059, offs=1) -- 23377(line=1186, offs=4) */ ATSstaticdec() ats_ptr_type s1aspdec_tr_54 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; // ATSlocal_void (tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; // ATSlocal_void (tmp387) ; // ATSlocal_void (tmp388) ; // ATSlocal_void (tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; // ATSlocal_void (tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; // ATSlocal_void (tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; // ATSlocal_void (tmp400) ; // ATSlocal_void (tmp401) ; __ats_lab_s1aspdec_tr_54: tmp365 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_s1aspdec_loc) ; tmp366 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_s1aspdec_qid) ; tmp367 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, tmp366), atslab_sqi0de_qua) ; tmp368 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, tmp366), atslab_sqi0de_sym) ; tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua (tmp367, tmp368) ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (tmp369 == (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_54_1: tmp370 = ats_caselptrlab_mac(anairiats_sum_6, tmp369, atslab_0) ; ATS_FREE(tmp369) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp370)->tag != 1) { goto __ats_lab_60_0 ; } __ats_lab_55_1: tmp371 = ats_caselptrlab_mac(anairiats_sum_9, tmp370, atslab_0) ; tmp372 = list_filter_fun_01339_ats_ptr_type (tmp371, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (tmp372 != (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: /* tmp384 = */ auxerr1_55 (arg0, tmp367, tmp368) ; tmp335 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (tmp372 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: tmp385 = ats_caselptrlab_mac(anairiats_sum_3, tmp372, atslab_0) ; tmp386 = ats_caselptrlab_mac(anairiats_sum_3, tmp372, atslab_1) ; ATS_FREE(tmp372) ; /* tmp387 = */ list_vt_free_01499_ats_ptr_type (tmp386) ; /* tmp388 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp389 = ats_selsin_mac(tmp388, atslab_1) */ ; /* ats_ptr_type tmp390 ; */ tmp390 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp385) ; tmp392 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_s1aspdec_arg) ; tmp391 = s1aspdec_tr_arg_50 (arg0, tmp392, (&tmp390)) ; tmp393 = s1aspdec_tr_res_52 (arg0, tmp390) ; tmp395 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_s1aspdec_def) ; tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp395, tmp393) ; /* tmp396 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp397 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst (ats_castfn_mac(ats_ptr_type, tmp391), tmp394) ; /* tmp398 = */ list_vt_free_01499_ats_ptr_type (tmp391) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2aspdec_make (tmp365, tmp385, tmp397) ; tmp335 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp335, atslab_0, tmp399) ; break ; } while (0) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: /* tmp400 = */ auxerr2_56 (arg0, tmp367, tmp368) ; tmp335 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (tmp369 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: /* tmp401 = */ auxerr3_57 (arg0, tmp367, tmp368) ; tmp335 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp335) ; } /* end of [s1aspdec_tr_54] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 23514(line=1199, offs=1) -- 23908(line=1215, offs=4) */ ATSstaticdec() ats_void_type auxerr1_62 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp403) ; // ATSlocal_void (tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; // ATSlocal_void (tmp406) ; // ATSlocal_void (tmp407) ; // ATSlocal_void (tmp408) ; // ATSlocal_void (tmp409) ; // ATSlocal_void (tmp410) ; // ATSlocal_void (tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; __ats_lab_auxerr1_62: tmp405 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_sqi0de_loc) ; /* tmp404 = */ prerr_error2_loc_02117_ (tmp405) ; /* tmp406 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("re1assume_tr")) ; /* tmp407 = */ atspre_prerr_string (ATSstrcst(": the static constant [")) ; /* tmp408 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg1) ; /* tmp409 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp410 = */ atspre_prerr_string (ATSstrcst("] is not abstract.")) ; /* tmp411 = */ atspre_prerr_newline () ; tmp412 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp412)->tag = 22 ; ats_selptrset_mac(anairiats_sum_9, tmp412, atslab_0, arg0) ; /* tmp403 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp412) ; return /* (tmp403) */ ; } /* end of [auxerr1_62] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 23936(line=1218, offs=1) -- 24345(line=1234, offs=4) */ ATSstaticdec() ats_void_type auxerr2_63 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp413) ; // ATSlocal_void (tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; // ATSlocal_void (tmp416) ; // ATSlocal_void (tmp417) ; // ATSlocal_void (tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; // ATSlocal_void (tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; __ats_lab_auxerr2_63: tmp415 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_sqi0de_loc) ; /* tmp414 = */ prerr_error2_loc_02117_ (tmp415) ; /* tmp416 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("re1assume_tr")) ; /* tmp417 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg1) ; /* tmp419 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp420 = */ atspre_prerr_string (ATSstrcst("] does not refer to a static constant.")) ; /* tmp421 = */ atspre_prerr_newline () ; tmp422 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp422)->tag = 22 ; ats_selptrset_mac(anairiats_sum_9, tmp422, atslab_0, arg0) ; /* tmp413 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp422) ; return /* (tmp413) */ ; } /* end of [auxerr2_63] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 24373(line=1237, offs=1) -- 24693(line=1250, offs=4) */ ATSstaticdec() ats_void_type auxerr3_64 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp423) ; // ATSlocal_void (tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; // ATSlocal_void (tmp426) ; // ATSlocal_void (tmp427) ; // ATSlocal_void (tmp428) ; // ATSlocal_void (tmp429) ; // ATSlocal_void (tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; __ats_lab_auxerr3_64: tmp425 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_sqi0de_loc) ; /* tmp424 = */ prerr_error2_loc_02117_ (tmp425) ; /* tmp426 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp427 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg1) ; /* tmp428 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp429 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp430 = */ atspre_prerr_newline () ; tmp431 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp431)->tag = 22 ; ats_selptrset_mac(anairiats_sum_9, tmp431, atslab_0, arg0) ; /* tmp423 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp431) ; return /* (tmp423) */ ; } /* end of [auxerr3_64] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 23451(line=1193, offs=1) -- 25557(line=1290, offs=4) */ ATSstaticdec() ats_ptr_type re1assume_tr_61 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; // ATSlocal_void (tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; // ATSlocal_void (tmp441) ; // ATSlocal_void (tmp442) ; // ATSlocal_void (tmp443) ; __ats_lab_re1assume_tr_61: tmp432 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_sqi0de_qua) ; tmp433 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_sqi0de_sym) ; tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua (tmp432, tmp433) ; do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (tmp434 == (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_62_1: tmp435 = ats_caselptrlab_mac(anairiats_sum_6, tmp434, atslab_0) ; ATS_FREE(tmp434) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp435)->tag != 1) { goto __ats_lab_66_0 ; } __ats_lab_63_1: tmp436 = ats_caselptrlab_mac(anairiats_sum_9, tmp435, atslab_0) ; tmp437 = list_filter_fun_01339_ats_ptr_type (tmp436, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (tmp437 != (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: /* tmp438 = */ auxerr1_62 (arg0, tmp432, tmp433) ; tmp402 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: // if (tmp437 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_65_1: tmp439 = ats_caselptrlab_mac(anairiats_sum_3, tmp437, atslab_0) ; tmp440 = ats_caselptrlab_mac(anairiats_sum_3, tmp437, atslab_1) ; ATS_FREE(tmp437) ; /* tmp441 = */ list_vt_free_01499_ats_ptr_type (tmp440) ; tmp402 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp402, atslab_0, tmp439) ; break ; } while (0) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: /* tmp442 = */ auxerr2_63 (arg0, tmp432, tmp433) ; tmp402 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (tmp434 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: /* tmp443 = */ auxerr3_64 (arg0, tmp432, tmp433) ; tmp402 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp402) ; } /* end of [re1assume_tr_61] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 25616(line=1297, offs=1) -- 26017(line=1317, offs=2) */ ATSstaticdec() ats_ptr_type d1atconlst_tr_65 (ats_ptr_type arg0, ats_bool_type arg1, ats_bool_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; __ats_lab_d1atconlst_tr_65: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (arg5 != (ats_sum_ptr_type)0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp444 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: tmp445 = ats_caselptrlab_mac(anairiats_sum_3, arg5, atslab_0) ; tmp446 = ats_caselptrlab_mac(anairiats_sum_3, arg5, atslab_1) ; tmp447 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1atcon_tr (arg0, arg1, arg2, arg3, arg4, tmp445) ; tmp448 = d1atconlst_tr_65 (arg0, arg1, arg2, arg3, arg4, tmp446) ; tmp444 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp444, atslab_0, tmp447) ; ats_selptrset_mac(anairiats_sum_3, tmp444, atslab_1, tmp448) ; break ; } while (0) ; return (tmp444) ; } /* end of [d1atconlst_tr_65] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_68 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_int_type, tmp454) ; __ats_lab_loop_68: do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp453 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp454 = atspre_isucc (arg1) ; arg0 = tmp453 ; arg1 = tmp454 ; goto __ats_lab_loop_68 ; // tail call break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp452 = arg1 ; break ; } while (0) ; return (tmp452) ; } /* end of [loop_68] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp451) ; __ats_lab_list_length_01410_ats_ptr_type: tmp451 = loop_68 (arg0, 0) ; return (tmp451) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 26929(line=1363, offs=7) -- 27200(line=1375, offs=4) */ ATSstaticdec() ats_void_type aux_69 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; // ATSlocal_void (tmp474) ; ATSlocal (ats_int_type, tmp475) ; __ats_lab_aux_69: do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_74_1: break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: tmp472 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp473 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp474 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_set_tag (tmp472, arg0) ; tmp475 = atspre_add_int_int (arg0, 1) ; arg0 = tmp475 ; arg1 = tmp473 ; goto __ats_lab_aux_69 ; // tail call break ; } while (0) ; return /* (tmp471) */ ; } /* end of [aux_69] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 26076(line=1322, offs=1) -- 27840(line=1406, offs=4) */ ATSstaticdec() ats_void_type d1atdec_tr_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp449) ; ATSlocal (ats_int_type, tmp450) ; // ATSlocal_void (tmp455) ; ATSlocal (ats_bool_type, tmp456) ; // ATSlocal_void (tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; // ATSlocal_void (tmp459) ; // ATSlocal_void (tmp460) ; // ATSlocal_void (tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_bool_type, tmp466) ; ATSlocal (ats_bool_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; // ATSlocal_void (tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_bool_type, tmp482) ; ATSlocal (ats_int_type, tmp483) ; ATSlocal (ats_bool_type, tmp484) ; ATSlocal (ats_int_type, tmp485) ; ATSlocal (anairiats_rec_17, tmp486) ; ATSlocal (ats_bool_type, tmp487) ; ATSlocal (ats_int_type, tmp488) ; ATSlocal (anairiats_rec_17, tmp489) ; // ATSlocal_void (tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; __ats_lab_d1atdec_tr_66: tmp450 = list_length_01410_ats_ptr_type (arg1) ; tmp456 = atspre_igte (tmp450, 2) ; if (tmp456) { tmp458 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg2), atslab_d1atdec_loc) ; /* tmp457 = */ prerr_error2_loc_02117_ (tmp458) ; /* tmp459 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("d1atdec_tr")) ; /* tmp460 = */ atspre_prerr_string (ATSstrcst(": the declared type constructor is overly applied.")) ; /* tmp461 = */ atspre_prerr_newline () ; tmp462 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp462)->tag = 24 ; ats_selptrset_mac(anairiats_sum_9, tmp462, atslab_0, arg2) ; /* tmp455 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp462) ; } else { /* empty */ } /* end of [if] */ tmp463 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp463)->tag != 1) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp465 = ats_caselptrlab_mac(anairiats_sum_5, tmp463, atslab_1) ; tmp464 = tmp465 ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: tmp464 = tmp463 ; break ; } while (0) ; tmp466 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (tmp464) ; tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp464) ; tmp469 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg2), atslab_d1atdec_fil) ; tmp470 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg2), atslab_d1atdec_con) ; tmp468 = d1atconlst_tr_65 (arg0, tmp466, tmp467, arg1, tmp469, tmp470) ; /* tmp476 = */ aux_69 (0, tmp468) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (tmp468 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } tmp478 = ats_caselptrlab_mac(anairiats_sum_3, tmp468, atslab_1) ; if (tmp478 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } tmp479 = ats_caselptrlab_mac(anairiats_sum_3, tmp478, atslab_1) ; if (tmp479 != (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp480 = ats_caselptrlab_mac(anairiats_sum_3, tmp468, atslab_0) ; tmp481 = ats_caselptrlab_mac(anairiats_sum_3, tmp478, atslab_0) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (tmp480) ; tmp482 = atspre_eq_int_int (tmp483, 0) ; if (tmp482) { tmp485 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (tmp481) ; tmp484 = atspre_gt_int_int (tmp485, 0) ; if (tmp484) { tmp486.atslab_0 = tmp480 ; tmp486.atslab_1 = tmp481 ; tmp477 = ATS_MALLOC(sizeof(anairiats_sum_27)) ; ats_selptrset_mac(anairiats_sum_27, tmp477, atslab_0, tmp486) ; } else { tmp477 = (ats_sum_ptr_type)0 ; } /* end of [if] */ } else { tmp488 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (tmp481) ; tmp487 = atspre_eq_int_int (tmp488, 0) ; if (tmp487) { tmp489.atslab_0 = tmp481 ; tmp489.atslab_1 = tmp480 ; tmp477 = ATS_MALLOC(sizeof(anairiats_sum_27)) ; ats_selptrset_mac(anairiats_sum_27, tmp477, atslab_0, tmp489) ; } else { tmp477 = (ats_sum_ptr_type)0 ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: __ats_lab_77_1: tmp477 = (ats_sum_ptr_type)0 ; break ; } while (0) ; /* tmp490 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_islst (arg0, tmp477) ; tmp491 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp491, atslab_0, tmp468) ; /* tmp449 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dconlst (arg0, tmp491) ; return /* (tmp449) */ ; } /* end of [d1atdec_tr_66] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 28517(line=1449, offs=11) -- 28934(line=1464, offs=14) */ ATSstaticdec() ats_ptr_type f_72 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (anairiats_rec_17, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_bool_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; __ats_lab_f_72: do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp498 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: tmp499 = ats_caselptrlab_mac(anairiats_sum_18, arg0, atslab_0) ; tmp500 = ats_caselptrlab_mac(anairiats_sum_18, arg0, atslab_1) ; tmp502 = ats_select_mac(tmp499, atslab_0) ; tmp501 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__neq_symbol_symbol (tmp502, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; if (tmp501) { tmp504 = ats_select_mac(tmp499, atslab_0) ; tmp505 = ats_select_mac(tmp499, atslab_1) ; tmp503 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp504, tmp505) ; tmp506 = f_72 (tmp500) ; tmp498 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp498, atslab_0, tmp503) ; ats_selptrset_mac(anairiats_sum_3, tmp498, atslab_1, tmp506) ; } else { arg0 = tmp500 ; goto __ats_lab_f_72 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp498) ; } /* end of [f_72] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50559(line=1787, offs=18) -- 50622(line=1789, offs=4) */ ATSstaticdec() ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp513) ; __ats_lab_list_is_cons_01295_: do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp513 = ats_true_bool ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_83_1: tmp513 = ats_false_bool ; break ; } while (0) ; return (tmp513) ; } /* end of [list_is_cons_01295_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 28987(line=1466, offs=11) -- 29291(line=1475, offs=15) */ ATSstaticdec() ats_ptr_type ff_73 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_bool_type, tmp512) ; __ats_lab_ff_73: do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp507 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: tmp508 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp509 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp510 = f_72 (tmp508) ; tmp511 = ff_73 (tmp509) ; tmp512 = list_is_cons_01295_ (tmp510) ; if (tmp512) { tmp507 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp507, atslab_0, tmp510) ; ats_selptrset_mac(anairiats_sum_3, tmp507, atslab_1, tmp511) ; } else { tmp507 = tmp511 ; } /* end of [if] */ break ; } while (0) ; return (tmp507) ; } /* end of [ff_73] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 29422(line=1482, offs=11) -- 29572(line=1486, offs=55) */ ATSstaticdec() ats_ptr_type fopr_75 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (anairiats_rec_17, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; __ats_lab_fopr_75: do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp515 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp516 = ats_caselptrlab_mac(anairiats_sum_18, arg0, atslab_0) ; tmp517 = ats_caselptrlab_mac(anairiats_sum_18, arg0, atslab_1) ; tmp518 = ats_select_mac(tmp516, atslab_1) ; tmp519 = fopr_75 (tmp517) ; tmp515 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp515, atslab_0, tmp518) ; ats_selptrset_mac(anairiats_sum_3, tmp515, atslab_1, tmp519) ; break ; } while (0) ; return (tmp515) ; } /* end of [fopr_75] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 28267(line=1437, offs=7) -- 29891(line=1501, offs=6) */ ATSstaticdec() ats_void_type aux_71 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; // ATSlocal_void (tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (anairiats_rec_2, tmp526) ; __ats_lab_aux_71: tmp497 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_d1atdec_arg) ; tmp496 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp497, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_symsrt) ; tmp514 = ff_73 (ats_castfn_mac(ats_ptr_type, tmp496)) ; tmp520 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp496), &fopr_75) ; tmp522 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_d1atdec_sym) ; tmp523 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_d1atdec_loc) ; tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make_dat (tmp522, tmp523, ats_castfn_mac(ats_ptr_type, tmp520), env0, ats_castfn_mac(ats_ptr_type, tmp496)) ; /* tmp524 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (tmp521) ; tmp526.atslab_0 = arg0 ; tmp526.atslab_1 = tmp521 ; tmp526.atslab_2 = tmp514 ; tmp525 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp525, atslab_0, tmp526) ; ats_selptrset_mac(anairiats_sum_13, tmp525, atslab_1, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp525 ; return /* (tmp495) */ ; } /* end of [aux_71] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_71_closure_type ; ats_void_type aux_71_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { aux_71 (((aux_71_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_71_closure_init (aux_71_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_71_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_71_closure_make (ats_ptr_type env0) { aux_71_closure_type *p_clo = ATS_MALLOC(sizeof(aux_71_closure_type)) ; aux_71_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 29917(line=1503, offs=7) -- 30154(line=1512, offs=4) */ ATSstaticdec() ats_void_type auxlst_76 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; // ATSlocal_void (tmp530) ; __ats_lab_auxlst_76: do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_87_1: tmp528 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp529 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp530 = */ aux_71 (env0, tmp528, arg1) ; arg0 = tmp529 ; arg1 = arg1 ; goto __ats_lab_auxlst_76 ; // tail call break ; } while (0) ; return /* (tmp527) */ ; } /* end of [auxlst_76] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_76_closure_type ; ats_void_type auxlst_76_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { auxlst_76 (((auxlst_76_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxlst_76_closure_init (auxlst_76_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_76_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_76_closure_make (ats_ptr_type env0) { auxlst_76_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_76_closure_type)) ; auxlst_76_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 30262(line=1518, offs=5) -- 30507(line=1529, offs=2) */ ATSstaticdec() ats_void_type aux2_77 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; // ATSlocal_void (tmp538) ; __ats_lab_aux2_77: do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_88_1: break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: tmp534 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp535 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp537 = (ats_sum_ptr_type)0 ; tmp536 = s1expdef_tr_45 (tmp537, tmp534) ; /* tmp538 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (tmp536) ; arg0 = tmp535 ; goto __ats_lab_aux2_77 ; // tail call break ; } while (0) ; return /* (tmp533) */ ; } /* end of [aux2_77] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 30563(line=1533, offs=5) -- 30777(line=1539, offs=31) */ ATSstaticdec() ats_ptr_type auxlst2_78 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (anairiats_rec_2, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; // ATSlocal_void (tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; __ats_lab_auxlst2_78: do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp541 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ; tmp542 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_1) ; tmp544 = ats_select_mac(tmp541, atslab_1) ; tmp545 = ats_select_mac(tmp541, atslab_2) ; tmp546 = ats_select_mac(tmp541, atslab_0) ; /* tmp543 = */ d1atdec_tr_66 (tmp544, tmp545, tmp546) ; tmp547 = ats_select_mac(tmp541, atslab_1) ; tmp548 = auxlst2_78 (tmp542) ; tmp540 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp540, atslab_0, tmp547) ; ats_selptrset_mac(anairiats_sum_3, tmp540, atslab_1, tmp548) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: tmp540 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp540) ; } /* end of [auxlst2_78] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 28048(line=1422, offs=1) -- 30835(line=1545, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__d1atdeclst_tr (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; // ATSlocal_void (tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; // ATSlocal_void (tmp539) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__d1atdeclst_tr: tmp493 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred (arg0) ; /* ats_ptr_type tmp494 ; */ tmp494 = (ats_sum_ptr_type)0 ; /* tmp531 = */ auxlst_76 (tmp493, arg1, (&tmp494)) ; tmp532 = tmp494 ; /* tmp539 = */ aux2_77 (arg2) ; tmp492 = auxlst2_78 (tmp532) ; return (tmp492) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__d1atdeclst_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_82 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_ptr_type, tmp560) ; ATSlocal (anairiats_rec_1, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; __ats_lab_loop_82: do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp559 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp560 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp561 = ((anairiats_rec_1(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp559, arg3) ; tmp562 = ATS_MALLOC(sizeof(anairiats_sum_29)) ; ats_selptrset_mac(anairiats_sum_29, tmp562, atslab_0, tmp561) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp562 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp563 = &ats_caselptrlab_mac(anairiats_sum_29, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp560 ; arg1 = arg1 ; arg2 = tmp563 ; arg3 = arg3 ; goto __ats_lab_loop_82 ; // tail call break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp564 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp564 ; break ; } while (0) ; return /* (tmp558) */ ; } /* end of [loop_82] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp565) ; // ATSlocal_void (tmp566) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_anairiats_rec_1: /* ats_ptr_type tmp565 ; */ /* tmp566 = */ loop_82 (arg0, arg1, (&tmp565), arg2) ; tmp557 = tmp565 ; return (tmp557) ; } /* end of [list_map_funenv_01412_ats_ptr_type_anairiats_rec_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp556) ; __ats_lab_list_map_fun_01413_ats_ptr_type_anairiats_rec_1: tmp556 = list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp556) ; } /* end of [list_map_fun_01413_ats_ptr_type_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 30943(line=1552, offs=1) -- 31571(line=1569, offs=4) */ ATSstaticdec() ats_ptr_type e1xndec_tr_79 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; // ATSlocal_void (tmp553) ; // ATSlocal_void (tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_int_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; // ATSlocal_void (tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; // ATSlocal_void (tmp574) ; // ATSlocal_void (tmp575) ; __ats_lab_e1xndec_tr_79: tmp550 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg1), atslab_e1xndec_loc) ; tmp551 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg1), atslab_e1xndec_fil) ; tmp552 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg1), atslab_e1xndec_sym) ; /* tmp553 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp554 = ats_selsin_mac(tmp553, atslab_1) */ ; tmp567 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg1), atslab_e1xndec_qua) ; tmp555 = list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (tmp567, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr) ; tmp568 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg1), atslab_e1xndec_npf) ; tmp569 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg1), atslab_e1xndec_arg) ; tmp570 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype (tmp569) ; /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp573 = (ats_sum_ptr_type)0 ; tmp572 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_make (tmp550, tmp551, tmp552, arg0, 1, ats_castfn_mac(ats_ptr_type, tmp555), tmp568, tmp570, tmp573) ; /* tmp574 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_set_tag (tmp572, -1) ; /* tmp575 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcon (tmp572) ; tmp549 = tmp572 ; return (tmp549) ; } /* end of [e1xndec_tr_79] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 31724(line=1583, offs=1) -- 32011(line=1597, offs=2) */ ATSstaticdec() ats_ptr_type aux_84 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; __ats_lab_aux_84: do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp577 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_95_1: tmp578 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp579 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp580 = e1xndec_tr_79 (arg0, tmp578) ; tmp581 = aux_84 (arg0, tmp579) ; tmp577 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp577, atslab_0, tmp580) ; ats_selptrset_mac(anairiats_sum_3, tmp577, atslab_1, tmp581) ; break ; } while (0) ; return (tmp577) ; } /* end of [aux_84] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4) */ ATSstaticdec() ats_void_type loop_86 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp589) ; ATSlocal (ats_ptr_type, tmp590) ; ATSlocal (ats_ptr_type, tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; __ats_lab_loop_86: do { /* branch: __ats_lab_98 */ __ats_lab_98_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp590 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp591 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp592 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp592, atslab_0, tmp590) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp592 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp593 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp591 ; arg1 = arg1 ; arg2 = tmp593 ; goto __ats_lab_loop_86 ; // tail call break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_99_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp589) */ ; } /* end of [loop_86] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4) */ ATSstaticdec() ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; // ATSlocal_void (tmp594) ; __ats_lab_list_append_01312_ats_ptr_type: /* ats_ptr_type tmp588 ; */ /* tmp594 = */ loop_86 (arg0, arg1, (&tmp588)) ; tmp587 = tmp588 ; return (tmp587) ; } /* end of [list_append_01312_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 31704(line=1580, offs=3) -- 32347(line=1621, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__e1xndeclst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_ptr_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; // ATSlocal_void (tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__e1xndeclst_tr: tmp582 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_exception_vtype) ; tmp583 = aux_84 (tmp582, arg0) ; tmp585 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (tmp582) ; do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (tmp585 != (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp584 = tmp583 ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: // if (tmp585 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_97_1: tmp586 = ats_caselptrlab_mac(anairiats_sum_6, tmp585, atslab_0) ; tmp584 = list_append_01312_ats_ptr_type (tmp583, tmp586) ; break ; } while (0) ; tmp596 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp596, atslab_0, tmp584) ; /* tmp595 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dconlst (tmp582, tmp596) ; tmp576 = tmp583 ; return (tmp576) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__e1xndeclst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 32402(line=1626, offs=1) -- 33100(line=1669, offs=2) */ ATSstaticdec() ats_void_type c1lassdec_tr_87 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; // ATSlocal_void (tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; __ats_lab_c1lassdec_tr_87: tmp598 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_i0de_sym) ; tmp599 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_i0de_loc) ; tmp601 = (ats_sum_ptr_type)0 ; tmp602 = (ats_sum_ptr_type)0 ; tmp603 = (ats_sum_ptr_type)0 ; tmp604 = (ats_sum_ptr_type)0 ; tmp605 = (ats_sum_ptr_type)0 ; tmp600 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (tmp598, tmp599, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_cls, tmp601, ats_false_bool, ats_false_bool, tmp602, tmp603, tmp604, tmp605) ; do { /* branch: __ats_lab_100 */ __ats_lab_100_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_101_0 ; } __ats_lab_100_1: break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_101_1: tmp607 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp608 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp607, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_cls) ; tmp609 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp608) ; /* tmp606 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_supcls (tmp600, tmp609) ; break ; } while (0) ; /* tmp597 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (tmp600) ; return /* (tmp597) */ ; } /* end of [c1lassdec_tr_87] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1478(line=42, offs=16) -- 1514(line=43, offs=32) */ ATSstaticdec() ats_void_type prerr_ERROR_beg_02111_ () { /* local vardec */ // ATSlocal_void (tmp614) ; __ats_lab_prerr_ERROR_beg_02111_: /* tmp614 = */ atspre_prerr_string (ATSstrcst("**ERROR(000000):beg**\n")) ; return /* (tmp614) */ ; } /* end of [prerr_ERROR_beg_02111_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1551(line=46, offs=16) -- 1587(line=47, offs=32) */ ATSstaticdec() ats_void_type prerr_ERROR_end_02112_ () { /* local vardec */ // ATSlocal_void (tmp621) ; __ats_lab_prerr_ERROR_end_02112_: /* tmp621 = */ atspre_prerr_string (ATSstrcst("**ERROR(000000):end**\n")) ; return /* (tmp621) */ ; } /* end of [prerr_ERROR_end_02112_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 33162(line=1676, offs=1) -- 33829(line=1708, offs=2) */ ATSstaticdec() ats_void_type dckfun_check_88 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp610) ; ATSlocal (ats_bool_type, tmp611) ; ATSlocal (ats_bool_type, tmp612) ; // ATSlocal_void (tmp613) ; // ATSlocal_void (tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; // ATSlocal_void (tmp617) ; // ATSlocal_void (tmp618) ; // ATSlocal_void (tmp619) ; // ATSlocal_void (tmp620) ; ATSlocal (ats_ptr_type, tmp622) ; __ats_lab_dckfun_check_88: do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp611 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_FUNCLOfun (arg2) ; tmp612 = atspre_neg_bool (tmp611) ; if (tmp612) { /* tmp613 = */ prerr_ERROR_beg_02111_ () ; tmp616 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg0), atslab_d1cstdec_loc) ; /* tmp615 = */ prerr_error2_loc_02117_ (tmp616) ; /* tmp617 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("d1cstdec_tr")) ; /* tmp618 = */ atspre_prerr_string (ATSstrcst(": the function may need to be declared as a value")) ; /* tmp619 = */ atspre_prerr_newline () ; /* tmp620 = */ prerr_ERROR_end_02112_ () ; tmp622 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp622)->tag = 33 ; ats_selptrset_mac(anairiats_sum_9, tmp622, atslab_0, arg0) ; /* tmp610 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp622) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: __ats_lab_103_1: break ; } while (0) ; return /* (tmp610) */ ; } /* end of [dckfun_check_88] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 33863(line=1711, offs=1) -- 34293(line=1734, offs=2) */ ATSstaticdec() ats_ptr_type s2exp_get_arylst_91 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; ATSlocal (ats_ptr_type, tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_int_type, tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp630) ; ATSlocal (ats_ptr_type, tmp631) ; __ats_lab_s2exp_get_arylst_91: tmp624 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp624)->tag != 19) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp625 = ats_caselptrlab_mac(anairiats_sum_31, tmp624, atslab_4) ; tmp626 = ats_caselptrlab_mac(anairiats_sum_31, tmp624, atslab_5) ; tmp627 = list_length_01410_ats_ptr_type (tmp625) ; tmp628 = s2exp_get_arylst_91 (tmp626) ; tmp623 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp623, atslab_0, tmp627) ; ats_selptrset_mac(anairiats_sum_10, tmp623, atslab_1, tmp628) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp624)->tag != 27) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp629 = ats_caselptrlab_mac(anairiats_sum_24, tmp624, atslab_2) ; arg0 = tmp629 ; goto __ats_lab_s2exp_get_arylst_91 ; // tail call break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp624)->tag != 28) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp630 = ats_caselptrlab_mac(anairiats_sum_24, tmp624, atslab_2) ; arg0 = tmp630 ; goto __ats_lab_s2exp_get_arylst_91 ; // tail call break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp624)->tag != 20) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp631 = ats_caselptrlab_mac(anairiats_sum_24, tmp624, atslab_2) ; arg0 = tmp631 ; goto __ats_lab_s2exp_get_arylst_91 ; // tail call break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: __ats_lab_108_1: tmp623 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp623) ; } /* end of [s2exp_get_arylst_91] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 34355(line=1739, offs=1) -- 35443(line=1785, offs=2) */ ATSstaticdec() ats_ptr_type d1cstdec_tr_92 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; ATSlocal (ats_ptr_type, tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; ATSlocal (ats_bool_type, tmp636) ; ATSlocal (ats_ptr_type, tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; ATSlocal (ats_ptr_type, tmp639) ; ATSlocal (ats_ptr_type, tmp640) ; // ATSlocal_void (tmp641) ; ATSlocal (ats_ptr_type, tmp642) ; ATSlocal (ats_ptr_type, tmp643) ; ATSlocal (ats_bool_type, tmp645) ; ATSlocal (ats_ptr_type, tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; // ATSlocal_void (tmp648) ; __ats_lab_d1cstdec_tr_92: tmp633 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg3), atslab_d1cstdec_loc) ; tmp634 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg3), atslab_d1cstdec_fil) ; tmp635 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg3), atslab_d1cstdec_sym) ; tmp636 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_proof (arg1) ; if (tmp636) { tmp637 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop ; } else { tmp637 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; } /* end of [if] */ tmp638 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg3), atslab_d1cstdec_type) ; tmp639 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp638, tmp637) ; tmp640 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp639) ; /* tmp641 = */ dckfun_check_88 (arg3, arg1, tmp640) ; tmp642 = s2exp_get_arylst_91 (tmp640) ; /* ats_ptr_type tmp643 ; */ tmp643 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg3), atslab_d1cstdec_extdef) ; do { /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp643)->tag != 0) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp645 = atspre_eq_int_int (arg0, 0) ; if (tmp645) { tmp646 = ATS_MALLOC(sizeof(anairiats_sum_32)) ; ((ats_sum_ptr_type)tmp646)->tag = 0 ; ats_selptrset_mac(anairiats_sum_32, tmp646, atslab_0, 0) ; tmp643 = tmp646 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: __ats_lab_110_1: break ; } while (0) ; tmp647 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_make (tmp635, tmp633, tmp634, arg1, arg2, tmp642, tmp640, tmp643) ; /* tmp648 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcst (tmp647) ; tmp632 = tmp647 ; return (tmp632) ; } /* end of [d1cstdec_tr_92] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 35520(line=1791, offs=5) -- 35855(line=1807, offs=4) */ ATSstaticdec() ats_ptr_type d1cstdeclst_tr_93 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; ATSlocal (ats_ptr_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; __ats_lab_d1cstdeclst_tr_93: do { /* branch: __ats_lab_111 */ __ats_lab_111_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp650 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; tmp651 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_1) ; tmp652 = d1cstdec_tr_92 (arg0, arg1, arg2, tmp650) ; tmp653 = d1cstdeclst_tr_93 (arg0, arg1, arg2, tmp651) ; tmp649 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp649, atslab_0, tmp652) ; ats_selptrset_mac(anairiats_sum_3, tmp649, atslab_1, tmp653) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_112_1: tmp649 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp649) ; } /* end of [d1cstdeclst_tr_93] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 35916(line=1813, offs=5) -- 36168(line=1823, offs=4) */ ATSstaticdec() ats_void_type trans2_env_add_m2acarg_94 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; __ats_lab_trans2_env_add_m2acarg_94: do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp655 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; /* tmp654 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp655) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: tmp656 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; /* tmp654 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvarlst (tmp656) ; break ; } while (0) ; return /* (tmp654) */ ; } /* end of [trans2_env_add_m2acarg_94] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 36208(line=1824, offs=5) -- 36302(line=1825, offs=69) */ ATSstaticdec() ats_void_type trans2_env_add_m2acarglst_95 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp657) ; __ats_lab_trans2_env_add_m2acarglst_95: /* tmp657 = */ list_app_fun_01301_ats_ptr_type (arg0, &trans2_env_add_m2acarg_94) ; return /* (tmp657) */ ; } /* end of [trans2_env_add_m2acarglst_95] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 36370(line=1831, offs=1) -- 37124(line=1861, offs=4) */ ATSstaticdec() ats_void_type m1acdef_tr_96 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp658) ; ATSlocal (ats_ptr_type, tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; // ATSlocal_void (tmp661) ; // ATSlocal_void (tmp662) ; ATSlocal (ats_ptr_type, tmp663) ; // ATSlocal_void (tmp664) ; // ATSlocal_void (tmp665) ; // ATSlocal_void (tmp666) ; ATSlocal (ats_bool_type, tmp667) ; ATSlocal (ats_ptr_type, tmp668) ; ATSlocal (ats_ptr_type, tmp669) ; // ATSlocal_void (tmp670) ; ATSlocal (ats_bool_type, tmp671) ; // ATSlocal_void (tmp672) ; // ATSlocal_void (tmp673) ; __ats_lab_m1acdef_tr_96: tmp659 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg2), atslab_m1acdef_loc) ; tmp660 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg2), atslab_m1acdef_sym) ; /* tmp661 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp662 = ats_selsin_mac(tmp661, atslab_1) */ ; tmp663 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst (arg1) ; /* tmp664 = */ trans2_env_add_m2acarglst_95 (tmp663) ; /* tmp665 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_inc () ; tmp667 = atspre_gte_int_int (arg0, 1) ; if (tmp667) { /* tmp666 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_dec (tmp659) ; } else { /* empty */ } /* end of [if] */ tmp669 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg2), atslab_m1acdef_def) ; tmp668 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp669) ; tmp671 = atspre_gte_int_int (arg0, 1) ; if (tmp671) { /* tmp670 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_inc (tmp659) ; } else { /* empty */ } /* end of [if] */ /* tmp672 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_dec () ; /* tmp673 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () ; /* tmp658 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_set_def (arg1, tmp668) ; return /* (tmp658) */ ; } /* end of [m1acdef_tr_96] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 37291(line=1872, offs=11) -- 37355(line=1873, offs=44) */ ATSstaticdec() ats_ptr_type f_98 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; ATSlocal (ats_ptr_type, tmp679) ; __ats_lab_f_98: tmp678 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_i0de_loc) ; tmp679 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_i0de_sym) ; tmp677 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp678, tmp679) ; return (tmp677) ; } /* end of [f_98] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 37478(line=1879, offs=11) -- 37721(line=1886, offs=10) */ ATSstaticdec() ats_ptr_type f_99 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp682) ; ATSlocal (ats_ptr_type, tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; ATSlocal (ats_ptr_type, tmp685) ; ATSlocal (ats_ptr_type, tmp686) ; __ats_lab_f_99: tmp684 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_s1arg_srt) ; do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (tmp684 == (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp685 = ats_caselptrlab_mac(anairiats_sum_6, tmp684, atslab_0) ; tmp683 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp685) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: // if (tmp684 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_118_1: tmp683 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; break ; } while (0) ; tmp686 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_s1arg_sym) ; tmp682 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp686, tmp683) ; return (tmp682) ; } /* end of [f_99] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 37183(line=1867, offs=5) -- 37823(line=1891, offs=4) */ ATSstaticdec() ats_ptr_type m1acarg_tr_97 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp680) ; ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_ptr_type, tmp687) ; __ats_lab_m1acarg_tr_97: tmp675 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg0), atslab_m1acarg_node) ; do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp675)->tag != 0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp676 = ats_caselptrlab_mac(anairiats_sum_9, tmp675, atslab_0) ; tmp680 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp676, &f_98) ; tmp674 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp674)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp674, atslab_0, ats_castfn_mac(ats_ptr_type, tmp680)) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (((ats_sum_ptr_type)tmp675)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: tmp681 = ats_caselptrlab_mac(anairiats_sum_9, tmp675, atslab_0) ; tmp687 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp681, &f_99) ; tmp674 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp674)->tag = 0 ; ats_selptrset_mac(anairiats_sum_9, tmp674, atslab_0, ats_castfn_mac(ats_ptr_type, tmp687)) ; break ; } while (0) ; return (tmp674) ; } /* end of [m1acarg_tr_97] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 37852(line=1893, offs=5) -- 37966(line=1896, offs=4) */ ATSstaticdec() ats_ptr_type m1acarglst_tr_100 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp688) ; ATSlocal (ats_ptr_type, tmp689) ; __ats_lab_m1acarglst_tr_100: tmp689 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &m1acarg_tr_97) ; tmp688 = ats_castfn_mac(ats_ptr_type, tmp689) ; return (tmp688) ; } /* end of [m1acarglst_tr_100] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 38128(line=1906, offs=5) -- 38611(line=1926, offs=4) */ ATSstaticdec() ats_ptr_type aux1_102 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_ptr_type, tmp698) ; ATSlocal (ats_ptr_type, tmp699) ; // ATSlocal_void (tmp700) ; ATSlocal (ats_bool_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; __ats_lab_aux1_102: do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp692 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp693 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp694 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp692), atslab_m1acdef_loc) ; tmp695 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp692), atslab_m1acdef_sym) ; tmp696 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (tmp694) ; tmp698 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp692), atslab_m1acdef_arg) ; tmp697 = m1acarglst_tr_100 (tmp698) ; tmp699 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_make (tmp694, tmp695, arg0, tmp697, tmp696) ; tmp701 = atspre_gte_int_int (arg0, 2) ; if (tmp701) { /* tmp700 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacdef (tmp699) ; } else { /* empty */ } /* end of [if] */ tmp702 = aux1_102 (arg0, tmp693) ; tmp691 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp691, atslab_0, tmp699) ; ats_selptrset_mac(anairiats_sum_3, tmp691, atslab_1, tmp702) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_120_1: tmp691 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp691) ; } /* end of [aux1_102] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 38664(line=1929, offs=5) -- 39043(line=1943, offs=4) */ ATSstaticdec() ats_void_type loop2_103 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp704) ; ATSlocal (ats_ptr_type, tmp705) ; ATSlocal (ats_ptr_type, tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; ATSlocal (ats_ptr_type, tmp708) ; ATSlocal (ats_int_type, tmp709) ; // ATSlocal_void (tmp710) ; // ATSlocal_void (tmp711) ; ATSlocal (ats_bool_type, tmp712) ; __ats_lab_loop2_103: do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp705 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp706 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_decl.dats: 38784(line=1935, offs=11) -- 38812(line=1935, offs=39)") ; } tmp707 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp708 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp709 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_kind (tmp705) ; /* tmp710 = */ m1acdef_tr_96 (tmp709, tmp705, tmp707) ; tmp712 = atspre_lte_int_int (tmp709, 1) ; if (tmp712) { /* tmp711 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacdef (tmp705) ; } else { /* empty */ } /* end of [if] */ arg0 = tmp706 ; arg1 = tmp708 ; goto __ats_lab_loop2_103 ; // tail call break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_122_1: break ; } while (0) ; return /* (tmp704) */ ; } /* end of [loop2_103] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 38022(line=1900, offs=5) -- 39112(line=1948, offs=4) */ ATSstaticdec() ats_void_type m1acdeflst_tr_101 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp690) ; ATSlocal (ats_ptr_type, tmp703) ; __ats_lab_m1acdeflst_tr_101: tmp703 = aux1_102 (arg0, arg1) ; /* tmp690 = */ loop2_103 (tmp703, arg1) ; return /* (tmp690) */ ; } /* end of [m1acdeflst_tr_101] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 39188(line=1955, offs=1) -- 39973(line=1987, offs=4) */ ATSstaticdec() ats_ptr_type f1undec_tr_104 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp713) ; // ATSlocal_void (tmp714) ; ATSlocal (ats_ptr_type, tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; ATSlocal (ats_bool_type, tmp717) ; ATSlocal (ats_bool_type, tmp718) ; // ATSlocal_void (tmp719) ; // ATSlocal_void (tmp720) ; ATSlocal (ats_ptr_type, tmp721) ; // ATSlocal_void (tmp722) ; // ATSlocal_void (tmp723) ; // ATSlocal_void (tmp724) ; ATSlocal (ats_ptr_type, tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; ATSlocal (ats_ptr_type, tmp727) ; ATSlocal (ats_ptr_type, tmp728) ; __ats_lab_f1undec_tr_104: /* tmp714 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_decarg (arg1, arg0) ; tmp716 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg2), atslab_f1undec_def) ; tmp715 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp716) ; tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_lam (tmp715) ; tmp717 = atspre_neg_bool (tmp718) ; if (tmp717) { tmp721 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, tmp715), atslab_d2exp_loc) ; /* tmp720 = */ prerr_error2_loc_02117_ (tmp721) ; /* tmp722 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("f1undec_tr")) ; /* tmp723 = */ atspre_prerr_string (ATSstrcst(": function definition is required to be lam-abstract.")) ; /* tmp724 = */ atspre_prerr_newline () ; tmp725 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp725)->tag = 32 ; ats_selptrset_mac(anairiats_sum_9, tmp725, atslab_0, arg2) ; /* tmp719 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp725) ; } else { /* empty */ } /* end of [if] */ tmp727 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg2), atslab_f1undec_ann) ; tmp726 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__witht1ype_tr (tmp727) ; tmp728 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg2), atslab_f1undec_loc) ; tmp713 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__f2undec_make (tmp728, arg1, tmp715, tmp726) ; return (tmp713) ; } /* end of [f1undec_tr_104] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 40200(line=2000, offs=9) -- 40710(line=2017, offs=35) */ ATSstaticdec() ats_ptr_type aux1_106 (ats_bool_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp732) ; ATSlocal (ats_ptr_type, tmp733) ; ATSlocal (ats_ptr_type, tmp734) ; ATSlocal (ats_ptr_type, tmp735) ; ATSlocal (ats_ptr_type, tmp736) ; ATSlocal (ats_ptr_type, tmp737) ; // ATSlocal_void (tmp738) ; // ATSlocal_void (tmp739) ; ATSlocal (ats_ptr_type, tmp740) ; __ats_lab_aux1_106: do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp733 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp734 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp735 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, tmp733), atslab_f1undec_sym) ; tmp736 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, tmp733), atslab_f1undec_sym_loc) ; tmp737 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp736, tmp735) ; /* tmp738 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix (tmp737, ats_true_bool) ; /* tmp739 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isprf (tmp737, arg0) ; tmp740 = aux1_106 (arg0, tmp734) ; tmp732 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp732, atslab_0, tmp737) ; ats_selptrset_mac(anairiats_sum_3, tmp732, atslab_1, tmp740) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_124_1: tmp732 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp732) ; } /* end of [aux1_106] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 40911(line=2028, offs=9) -- 41359(line=2043, offs=35) */ ATSstaticdec() ats_ptr_type aux2_107 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp743) ; ATSlocal (ats_ptr_type, tmp744) ; ATSlocal (ats_ptr_type, tmp745) ; ATSlocal (ats_ptr_type, tmp746) ; ATSlocal (ats_ptr_type, tmp747) ; ATSlocal (ats_ptr_type, tmp748) ; ATSlocal (ats_ptr_type, tmp749) ; __ats_lab_aux2_107: do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp744 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp745 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp746 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp747 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp748 = f1undec_tr_104 (arg0, tmp744, tmp746) ; tmp749 = aux2_107 (arg0, tmp745, tmp747) ; tmp743 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp743, atslab_0, tmp748) ; ats_selptrset_mac(anairiats_sum_3, tmp743, atslab_1, tmp749) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_126_1: tmp743 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp743) ; } /* end of [aux2_107] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 40002(line=1990, offs=1) -- 41555(line=2055, offs=4) */ ATSstaticdec() ats_ptr_type f1undeclst_tr_105 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp729) ; ATSlocal (ats_bool_type, tmp730) ; ATSlocal (ats_bool_type, tmp731) ; ATSlocal (ats_ptr_type, tmp741) ; // ATSlocal_void (tmp742) ; ATSlocal (ats_ptr_type, tmp750) ; // ATSlocal_void (tmp751) ; __ats_lab_f1undeclst_tr_105: tmp730 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_proof (arg0) ; tmp731 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive (arg0) ; tmp741 = aux1_106 (tmp730, arg2) ; if (tmp731) { /* tmp742 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (tmp741) ; } else { /* empty */ } /* end of [if] */ tmp750 = aux2_107 (arg1, tmp741, arg2) ; if (tmp731) { /* empty */ } else { /* tmp751 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (tmp741) ; } /* end of [if] */ tmp729 = tmp750 ; return (tmp729) ; } /* end of [f1undeclst_tr_105] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 41608(line=2060, offs=1) -- 41817(line=2069, offs=4) */ ATSstaticdec() ats_ptr_type v1aldec_tr_108 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp752) ; ATSlocal (ats_ptr_type, tmp753) ; ATSlocal (ats_ptr_type, tmp754) ; ATSlocal (ats_ptr_type, tmp755) ; ATSlocal (ats_ptr_type, tmp756) ; ATSlocal (ats_ptr_type, tmp757) ; __ats_lab_v1aldec_tr_108: tmp753 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v1aldec_loc) ; tmp755 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v1aldec_def) ; tmp754 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp755) ; tmp757 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v1aldec_ann) ; tmp756 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__witht1ype_tr (tmp757) ; tmp752 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2aldec_make (tmp753, arg1, tmp754, tmp756) ; return (tmp752) ; } /* end of [v1aldec_tr_108] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 41975(line=2077, offs=12) -- 42015(line=2077, offs=52) */ ATSstaticdec() ats_ptr_type __ats_fun_110 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp760) ; ATSlocal (ats_ptr_type, tmp761) ; __ats_lab___ats_fun_110: tmp761 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v1aldec_pat) ; tmp760 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (tmp761) ; return (tmp760) ; } /* end of [__ats_fun_110] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 58376(line=2097, offs=5) -- 58882(line=2115, offs=4) */ ATSstaticdec() ats_void_type loop_113 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp770) ; ATSlocal (ats_ptr_type, tmp771) ; ATSlocal (ats_ptr_type, tmp772) ; ATSlocal (ats_ptr_type, tmp773) ; ATSlocal (ats_ptr_type, tmp774) ; ATSlocal (ats_ptr_type, tmp775) ; ATSlocal (ats_ptr_type, tmp776) ; ATSlocal (ats_ptr_type, tmp777) ; ATSlocal (ats_ptr_type, tmp778) ; __ats_lab_loop_113: do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_127_2: tmp771 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp772 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp773 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp774 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp775 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg2) (tmp771, tmp773, arg4) ; tmp776 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp776, atslab_0, tmp775) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp776 ; // if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp777 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ; arg0 = tmp772 ; arg1 = tmp774 ; arg2 = arg2 ; arg3 = tmp777 ; arg4 = arg4 ; goto __ats_lab_loop_113 ; // tail call break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_128_2: tmp778 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp778 ; break ; } while (0) ; return /* (tmp770) */ ; } /* end of [loop_113] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 58341(line=2095, offs=3) -- 59077(line=2124, offs=4) */ ATSstaticdec() ats_ptr_type list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp769) ; ATSlocal (ats_ptr_type, tmp779) ; // ATSlocal_void (tmp780) ; __ats_lab_list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp779 ; */ /* tmp780 = */ loop_113 (arg0, arg1, arg2, (&tmp779), arg3) ; tmp769 = tmp779 ; return (tmp769) ; } /* end of [list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 59154(line=2127, offs=27) -- 59433(line=2136, offs=4) */ ATSstaticdec() ats_ptr_type list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp768) ; __ats_lab_list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type: tmp768 = list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type (arg0, arg1, ats_castfn_mac(ats_ptr_type, arg2), atspre_null_ptr) ; return (tmp768) ; } /* end of [list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 41846(line=2072, offs=1) -- 42583(line=2095, offs=4) */ ATSstaticdec() ats_ptr_type v1aldeclst_tr_109 (ats_bool_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp758) ; ATSlocal (ats_ptr_type, tmp759) ; ATSlocal (ats_ptr_type, tmp762) ; ATSlocal (ats_ptr_type, tmp763) ; ATSlocal (ats_ptr_type, tmp764) ; ATSlocal (ats_ptr_type, tmp765) ; ATSlocal (ats_bool_type, tmp766) ; ATSlocal (ats_ptr_type, tmp767) ; // ATSlocal_void (tmp781) ; // ATSlocal_void (tmp782) ; // ATSlocal_void (tmp783) ; ATSlocal (ats_ptr_type, tmp784) ; // ATSlocal_void (tmp785) ; __ats_lab_v1aldeclst_tr_109: tmp759 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg1, &__ats_fun_110) ; tmp763 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union (ats_castfn_mac(ats_ptr_type, tmp759)) ; tmp762 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp763) ; tmp765 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union (ats_castfn_mac(ats_ptr_type, tmp759)) ; tmp764 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp765) ; tmp766 = atspre_neg_bool (arg0) ; if (tmp766) { tmp767 = list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (arg1, ats_castfn_mac(ats_ptr_type, tmp759), &v1aldec_tr_108) ; /* tmp781 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp762) ; /* tmp782 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (tmp764) ; tmp758 = ats_castfn_mac(ats_ptr_type, tmp767) ; } else { /* tmp783 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (tmp764) ; tmp784 = list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (arg1, ats_castfn_mac(ats_ptr_type, tmp759), &v1aldec_tr_108) ; /* tmp785 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp762) ; tmp758 = ats_castfn_mac(ats_ptr_type, tmp784) ; } /* end of [if] */ return (tmp758) ; } /* end of [v1aldeclst_tr_109] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 42639(line=2100, offs=1) -- 43841(line=2160, offs=4) */ ATSstaticdec() ats_ptr_type v1ardec_tr_114 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp786) ; ATSlocal (ats_ptr_type, tmp787) ; ATSlocal (ats_int_type, tmp788) ; ATSlocal (ats_ptr_type, tmp789) ; ATSlocal (ats_ptr_type, tmp790) ; ATSlocal (ats_ptr_type, tmp791) ; ATSlocal (ats_ptr_type, tmp792) ; ATSlocal (ats_bool_type, tmp793) ; ATSlocal (ats_ptr_type, tmp794) ; ATSlocal (ats_ptr_type, tmp795) ; ATSlocal (ats_ptr_type, tmp796) ; // ATSlocal_void (tmp797) ; ATSlocal (ats_ptr_type, tmp798) ; ATSlocal (ats_ptr_type, tmp799) ; ATSlocal (ats_ptr_type, tmp800) ; ATSlocal (ats_ptr_type, tmp801) ; ATSlocal (ats_ptr_type, tmp802) ; ATSlocal (ats_ptr_type, tmp803) ; ATSlocal (ats_ptr_type, tmp804) ; ATSlocal (ats_ptr_type, tmp805) ; ATSlocal (ats_ptr_type, tmp806) ; ATSlocal (ats_ptr_type, tmp807) ; ATSlocal (ats_ptr_type, tmp808) ; ATSlocal (ats_ptr_type, tmp809) ; ATSlocal (ats_ptr_type, tmp810) ; __ats_lab_v1ardec_tr_114: tmp787 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_loc) ; tmp788 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_knd) ; tmp789 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_sym) ; tmp790 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_sym_loc) ; tmp791 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp790, tmp789) ; tmp793 = atspre_gt_int_int (tmp788, 0) ; if (tmp793) { tmp794 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp790, tmp789) ; tmp792 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp792, atslab_0, tmp794) ; } else { tmp792 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp795 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp789, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; tmp796 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp795) ; tmp798 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp798, atslab_0, tmp796) ; /* tmp797 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr (tmp791, tmp798) ; tmp800 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_pfat) ; do { /* branch: __ats_lab_129 */ __ats_lab_129_0: if (tmp800 != (ats_sum_ptr_type)0) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp799 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: // if (tmp800 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_130_1: tmp801 = ats_caselptrlab_mac(anairiats_sum_6, tmp800, atslab_0) ; tmp803 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp801), atslab_i0de_loc) ; tmp804 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp801), atslab_i0de_sym) ; tmp802 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp803, tmp804) ; tmp799 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp799, atslab_0, tmp802) ; break ; } while (0) ; tmp806 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_type) ; do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (tmp806 != (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp805 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (tmp806 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: tmp807 = ats_caselptrlab_mac(anairiats_sum_6, tmp806, atslab_0) ; tmp808 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp807) ; tmp805 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp805, atslab_0, tmp808) ; break ; } while (0) ; tmp810 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_init) ; tmp809 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1expopt_tr (tmp810) ; tmp786 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2ardec_make (tmp787, tmp788, tmp795, tmp791, tmp799, tmp805, tmp809, tmp792) ; return (tmp786) ; } /* end of [v1ardec_tr_114] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 44036(line=2174, offs=6) -- 44415(line=2185, offs=6) */ ATSstaticdec() ats_void_type f_116 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp813) ; // ATSlocal_void (tmp814) ; ATSlocal (ats_ptr_type, tmp815) ; // ATSlocal_void (tmp816) ; ATSlocal (ats_ptr_type, tmp817) ; // ATSlocal_void (tmp818) ; ATSlocal (ats_ptr_type, tmp819) ; ATSlocal (ats_ptr_type, tmp820) ; ATSlocal (ats_ptr_type, tmp821) ; __ats_lab_f_116: tmp815 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_40, arg0), atslab_v2ardec_svar) ; /* tmp814 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar (tmp815) ; tmp817 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_40, arg0), atslab_v2ardec_dvar) ; /* tmp816 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar (tmp817) ; tmp819 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_40, arg0), atslab_v2ardec_dvaropt) ; /* tmp818 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvaropt (tmp819) ; tmp820 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_40, arg0), atslab_v2ardec_pfat) ; do { /* branch: __ats_lab_133 */ __ats_lab_133_0: if (tmp820 == (ats_sum_ptr_type)0) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp821 = ats_caselptrlab_mac(anairiats_sum_6, tmp820, atslab_0) ; /* tmp813 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar (tmp821) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: // if (tmp820 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_134_1: break ; } while (0) ; return /* (tmp813) */ ; } /* end of [f_116] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 43870(line=2163, offs=1) -- 44455(line=2188, offs=2) */ ATSstaticdec() ats_ptr_type v1ardeclst_tr_115 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp811) ; ATSlocal (ats_ptr_type, tmp812) ; // ATSlocal_void (tmp822) ; __ats_lab_v1ardeclst_tr_115: tmp812 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &v1ardec_tr_114) ; /* tmp822 = */ list_app_fun_01301_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp812), &f_116) ; tmp811 = ats_castfn_mac(ats_ptr_type, tmp812) ; return (tmp811) ; } /* end of [v1ardeclst_tr_115] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2872(line=116, offs=20) -- 2933(line=119, offs=2) */ ATSstaticdec() ats_void_type prerr_warning2_loc_02123_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp827) ; // ATSlocal_void (tmp828) ; __ats_lab_prerr_warning2_loc_02123_: /* tmp828 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp827 = */ atspre_prerr_string (ATSstrcst(": warning(2)")) ; return /* (tmp827) */ ; } /* end of [prerr_warning2_loc_02123_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 44518(line=2195, offs=1) -- 44897(line=2215, offs=4) */ ATSstaticdec() ats_void_type auxkndck_117 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp823) ; ATSlocal (ats_int_type, tmp824) ; ATSlocal (ats_bool_type, tmp825) ; // ATSlocal_void (tmp826) ; ATSlocal (ats_ptr_type, tmp829) ; // ATSlocal_void (tmp830) ; // ATSlocal_void (tmp831) ; __ats_lab_auxkndck_117: tmp824 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_knd) ; tmp825 = atspre_gt_int_int (tmp824, 0) ; if (tmp825) { tmp829 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_loc) ; /* tmp826 = */ prerr_warning2_loc_02123_ (tmp829) ; /* tmp830 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("prv1ardec_tr")) ; /* tmp831 = */ atspre_prerr_string (ATSstrcst(": the dynalloc mark (!) is ignored.")) ; /* tmp823 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ return /* (tmp823) */ ; } /* end of [auxkndck_117] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 44924(line=2218, offs=1) -- 45446(line=2240, offs=4) */ ATSstaticdec() ats_void_type auxwthck_119 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp832) ; ATSlocal (ats_ptr_type, tmp833) ; ATSlocal (ats_ptr_type, tmp834) ; // ATSlocal_void (tmp835) ; ATSlocal (ats_ptr_type, tmp836) ; // ATSlocal_void (tmp837) ; // ATSlocal_void (tmp838) ; // ATSlocal_void (tmp839) ; // ATSlocal_void (tmp840) ; __ats_lab_auxwthck_119: tmp833 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_pfat) ; do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (tmp833 == (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp834 = ats_caselptrlab_mac(anairiats_sum_6, tmp833, atslab_0) ; tmp836 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_loc) ; /* tmp835 = */ prerr_warning2_loc_02123_ (tmp836) ; /* tmp837 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("prv1ardec_tr")) ; /* tmp838 = */ atspre_prerr_string (ATSstrcst(": the dynamic identifier [")) ; /* tmp839 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_i0de (tmp834) ; /* tmp840 = */ atspre_prerr_string (ATSstrcst("] is ignored.")) ; /* tmp832 = */ atspre_prerr_newline () ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (tmp833 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: break ; } while (0) ; return /* (tmp832) */ ; } /* end of [auxwthck_119] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 45497(line=2245, offs=1) -- 46003(line=2268, offs=4) */ ATSstaticdec() ats_ptr_type prv1ardec_tr_120 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp841) ; // ATSlocal_void (tmp842) ; // ATSlocal_void (tmp843) ; ATSlocal (ats_ptr_type, tmp844) ; ATSlocal (ats_ptr_type, tmp845) ; ATSlocal (ats_ptr_type, tmp846) ; ATSlocal (ats_ptr_type, tmp847) ; ATSlocal (ats_ptr_type, tmp848) ; ATSlocal (ats_ptr_type, tmp849) ; ATSlocal (ats_ptr_type, tmp850) ; ATSlocal (ats_ptr_type, tmp851) ; ATSlocal (ats_ptr_type, tmp852) ; ATSlocal (ats_ptr_type, tmp853) ; __ats_lab_prv1ardec_tr_120: /* tmp842 = */ auxkndck_117 (arg0) ; /* tmp843 = */ auxwthck_119 (arg0) ; tmp844 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_sym) ; tmp845 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_sym_loc) ; tmp846 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp845, tmp844) ; tmp848 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_type) ; do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (tmp848 == (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp849 = ats_caselptrlab_mac(anairiats_sum_6, tmp848, atslab_0) ; tmp850 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp849) ; tmp847 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp847, atslab_0, tmp850) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (tmp848 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: tmp847 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp852 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_init) ; tmp851 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1expopt_tr (tmp852) ; tmp853 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_v1ardec_loc) ; tmp841 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prv2ardec_make (tmp853, tmp846, tmp847, tmp851) ; return (tmp841) ; } /* end of [prv1ardec_tr_120] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 46252(line=2282, offs=8) -- 46321(line=2282, offs=77) */ ATSstaticdec() ats_void_type f_122 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp856) ; ATSlocal (ats_ptr_type, tmp857) ; __ats_lab_f_122: tmp857 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_41, arg0), atslab_prv2ardec_dvar) ; /* tmp856 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar (tmp857) ; return /* (tmp856) */ ; } /* end of [f_122] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 46057(line=2273, offs=1) -- 46364(line=2284, offs=2) */ ATSstaticdec() ats_ptr_type prv1ardeclst_tr_121 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp854) ; ATSlocal (ats_ptr_type, tmp855) ; // ATSlocal_void (tmp858) ; __ats_lab_prv1ardeclst_tr_121: tmp855 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &prv1ardec_tr_120) ; /* tmp858 = */ list_app_fun_01301_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp855), &f_122) ; tmp854 = ats_castfn_mac(ats_ptr_type, tmp855) ; return (tmp854) ; } /* end of [prv1ardeclst_tr_121] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 46750(line=2311, offs=1) -- 48129(line=2374, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taload_tr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp859) ; ATSlocal (ats_ptr_type, tmp860) ; // ATSlocal_void (tmp861) ; // ATSlocal_void (tmp862) ; ATSlocal (ats_ptr_type, tmp863) ; ATSlocal (ats_ptr_type, tmp864) ; ATSlocal (ats_ptr_type, tmp865) ; // ATSlocal_void (tmp866) ; // ATSlocal_void (tmp867) ; ATSlocal (ats_ptr_type, tmp868) ; ATSlocal (ats_ptr_type, tmp869) ; // ATSlocal_void (tmp870) ; ATSlocal (anairiats_rec_2, tmp871) ; ATSlocal (ats_ptr_type, tmp872) ; ATSlocal (ats_ptr_type, tmp873) ; ATSlocal (ats_ptr_type, tmp874) ; ATSlocal (ats_ptr_type, tmp875) ; // ATSlocal_void (tmp876) ; // ATSlocal_void (tmp877) ; ATSlocal (ats_ptr_type, tmp878) ; ATSlocal (ats_ptr_type, tmp879) ; // ATSlocal_void (tmp880) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taload_tr: tmp860 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname (arg2) ; /* tmp861 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_push () ; /* tmp862 = ats_selsin_mac(tmp861, atslab_1) */ ; tmp863 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_find (tmp860) ; do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (tmp863 == (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp865 = ats_caselptrlab_mac(anairiats_sum_6, tmp863, atslab_0) ; ATS_FREE(tmp863) ; ats_ptrget_mac(ats_int_type, arg5) = 1 ; tmp864 = tmp865 ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (tmp863 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: ats_ptrget_mac(ats_int_type, arg5) = 0 ; /* tmp866 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_save () ; /* tmp867 = ats_selsin_mac(tmp866, atslab_1) */ ; tmp868 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get () ; tmp869 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (arg4) ; /* tmp870 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set (tmp868) ; tmp871 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_restore () ; tmp872 = ats_select_mac(tmp871, atslab_0) ; tmp873 = ats_select_mac(tmp871, atslab_1) ; tmp874 = ats_select_mac(tmp871, atslab_2) ; tmp875 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_make (arg2, tmp872, tmp873, tmp874, tmp869) ; /* tmp876 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_add (tmp860, tmp875) ; tmp864 = tmp875 ; break ; } while (0) ; do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp878 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp879 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp879)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp879, atslab_0, tmp864) ; /* tmp877 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (tmp878, tmp879) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_142_1: /* tmp877 = */ _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_add (tmp864) ; break ; } while (0) ; /* tmp880 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_pop () ; tmp859 = tmp864 ; return (tmp859) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taload_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 48292(line=2389, offs=1) -- 48674(line=2405, offs=4) */ ATSstaticdec() ats_void_type auxerr_125 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp882) ; // ATSlocal_void (tmp883) ; ATSlocal (ats_ptr_type, tmp884) ; // ATSlocal_void (tmp885) ; // ATSlocal_void (tmp886) ; // ATSlocal_void (tmp887) ; // ATSlocal_void (tmp888) ; // ATSlocal_void (tmp889) ; ATSlocal (ats_ptr_type, tmp890) ; __ats_lab_auxerr_125: tmp884 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d1ecl_loc) ; /* tmp883 = */ prerr_error2_loc_02117_ (tmp884) ; /* tmp885 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("s1taloadnm_tr")) ; /* tmp886 = */ atspre_prerr_string (ATSstrcst(": the name [")) ; /* tmp887 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ; /* tmp888 = */ atspre_prerr_string (ATSstrcst("] does not refer to a namespace.")) ; /* tmp889 = */ atspre_prerr_newline () ; tmp890 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp890)->tag = 40 ; ats_selptrset_mac(anairiats_sum_9, tmp890, atslab_0, arg0) ; /* tmp882 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp890) ; return /* (tmp882) */ ; } /* end of [auxerr_125] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 48272(line=2386, offs=14) -- 49483(line=2444, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taloadnm_tr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp881) ; ATSlocal (ats_ptr_type, tmp891) ; ATSlocal (ats_ptr_type, tmp892) ; ATSlocal (ats_ptr_type, tmp893) ; ATSlocal (ats_ptr_type, tmp894) ; ATSlocal (ats_ptr_type, tmp895) ; ATSlocal (ats_ptr_type, tmp896) ; ATSlocal (ats_ptr_type, tmp897) ; // ATSlocal_void (tmp898) ; ATSlocal (ats_ptr_type, tmp899) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taloadnm_tr: tmp891 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d1ecl_node) ; if (((ats_sum_ptr_type)tmp891)->tag != 33) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_decl.dats: 48705(line=2408, offs=1) -- 48751(line=2409, offs=34)") ; } tmp892 = ats_caselptrlab_mac(anairiats_sum_5, tmp891, atslab_0) ; tmp893 = ats_caselptrlab_mac(anairiats_sum_5, tmp891, atslab_1) ; tmp894 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (tmp893) ; do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (tmp894 != (ats_sum_ptr_type)0) { goto __ats_lab_144_0 ; } __ats_lab_143_1: /* tmp881 = */ auxerr_125 (arg0, tmp893) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: // if (tmp894 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_144_1: tmp895 = ats_caselptrlab_mac(anairiats_sum_6, tmp894, atslab_0) ; ATS_FREE(tmp894) ; do { /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp895)->tag != 5) { goto __ats_lab_148_0 ; } __ats_lab_145_1: tmp896 = ats_caselptrlab_mac(anairiats_sum_9, tmp895, atslab_0) ; do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (tmp892 == (ats_sum_ptr_type)0) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp897 = ats_caselptrlab_mac(anairiats_sum_6, tmp892, atslab_0) ; /* tmp881 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (tmp897, tmp895) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: // if (tmp892 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_147_1: /* tmp898 = */ _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_add (tmp896) ; tmp899 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (tmp896) ; /* tmp881 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_d2eclist (tmp899) ; break ; } while (0) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: __ats_lab_148_1: /* tmp881 = */ auxerr_125 (arg0, tmp893) ; break ; } while (0) ; break ; } while (0) ; return /* (tmp881) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taloadnm_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 49567(line=2450, offs=3) -- 50261(line=2479, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_d2eclist (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp900) ; ATSlocal (ats_ptr_type, tmp901) ; ATSlocal (ats_ptr_type, tmp902) ; // ATSlocal_void (tmp903) ; ATSlocal (ats_ptr_type, tmp904) ; ATSlocal (ats_ptr_type, tmp905) ; ATSlocal (ats_ptr_type, tmp906) ; ATSlocal (ats_int_type, tmp907) ; ATSlocal (ats_ptr_type, tmp908) ; ATSlocal (ats_ptr_type, tmp909) ; ATSlocal (ats_ptr_type, tmp910) ; ATSlocal (ats_ptr_type, tmp911) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_d2eclist: do { /* branch: __ats_lab_149 */ __ats_lab_149_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_150_0 ; } __ats_lab_149_1: break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_150_1: tmp901 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp902 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp904 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_42, tmp901), atslab_d2ecl_node) ; do { /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)tmp904)->tag != 2) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp905 = ats_caselptrlab_mac(anairiats_sum_9, tmp904, atslab_0) ; /* tmp903 = */ symintr_tr_1 (tmp905) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)tmp904)->tag != 4) { goto __ats_lab_155_0 ; } __ats_lab_152_1: tmp906 = ats_caselptrlab_mac(anairiats_sum_43, tmp904, atslab_0) ; tmp907 = ats_caselptrlab_mac(anairiats_sum_43, tmp904, atslab_1) ; tmp908 = ats_caselptrlab_mac(anairiats_sum_43, tmp904, atslab_2) ; tmp909 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_42, tmp901), atslab_d2ecl_loc) ; do { /* branch: __ats_lab_153 */ __ats_lab_153_0: if (tmp908 == (ats_sum_ptr_type)0) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp910 = ats_caselptrlab_mac(anairiats_sum_6, tmp908, atslab_0) ; /* tmp903 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_def (tmp909, tmp906, tmp907, tmp910) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: // if (tmp908 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_154_1: break ; } while (0) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)tmp904)->tag != 23) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp911 = ats_caselptrlab_mac(anairiats_sum_44, tmp904, atslab_1) ; /* tmp903 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_d2eclist (tmp911) ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: __ats_lab_156_1: break ; } while (0) ; arg0 = tmp902 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_d2eclist ; // tail call break ; } while (0) ; return /* (tmp900) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_d2eclist] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 50492(line=2495, offs=1) -- 51212(line=2516, offs=4) */ ATSstaticdec() ats_void_type auxcheck_impdec_128 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp914) ; ATSlocal (ats_ptr_type, tmp915) ; ATSlocal (ats_bool_type, tmp916) ; ATSlocal (ats_bool_type, tmp917) ; ATSlocal (ats_bool_type, tmp918) ; // ATSlocal_void (tmp919) ; ATSlocal (ats_ptr_type, tmp920) ; // ATSlocal_void (tmp921) ; // ATSlocal_void (tmp922) ; ATSlocal (ats_bool_type, tmp923) ; // ATSlocal_void (tmp924) ; ATSlocal (ats_bool_type, tmp925) ; // ATSlocal_void (tmp926) ; ATSlocal (ats_ptr_type, tmp927) ; __ats_lab_auxcheck_impdec_128: tmp915 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_45, arg2), atslab_i2mpdec_cst) ; tmp917 = atspre_lt_int_int (arg1, 0) ; if (tmp917) { tmp916 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_prf (tmp915) ; } else { tmp916 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_nonprf (tmp915) ; } /* end of [if] */ tmp918 = atspre_neg_bool (tmp916) ; if (tmp918) { tmp920 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d1ecl_loc) ; /* tmp919 = */ prerr_error2_loc_02117_ (tmp920) ; /* tmp921 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_decl.dats"), ATSstrcst("d1ecl_tr: auxcheck_impdec")) ; tmp923 = atspre_lt_int_int (arg1, 0) ; if (tmp923) { /* tmp922 = */ atspre_prerr_string (ATSstrcst(": the implemented dynamic constant is required to be proof.")) ; } else { /* empty */ } /* end of [if] */ tmp925 = atspre_gte_int_int (arg1, 0) ; if (tmp925) { /* tmp924 = */ atspre_prerr_string (ATSstrcst(": the implemented dynamic constant is required to be non-proof.")) ; } else { /* empty */ } /* end of [if] */ /* tmp926 = */ atspre_prerr_newline () ; tmp927 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp927)->tag = 35 ; ats_selptrset_mac(anairiats_sum_9, tmp927, atslab_0, arg0) ; /* tmp914 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp927) ; } else { /* empty */ } /* end of [if] */ return /* (tmp914) */ ; } /* end of [auxcheck_impdec_128] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 50335(line=2484, offs=9) -- 59868(line=2895, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1ecl_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp912) ; ATSlocal (ats_ptr_type, tmp913) ; ATSlocal (ats_ptr_type, tmp928) ; ATSlocal (ats_ptr_type, tmp929) ; ATSlocal (ats_ptr_type, tmp930) ; ATSlocal (ats_ptr_type, tmp931) ; // ATSlocal_void (tmp932) ; ATSlocal (ats_ptr_type, tmp933) ; // ATSlocal_void (tmp934) ; ATSlocal (ats_ptr_type, tmp935) ; // ATSlocal_void (tmp936) ; ATSlocal (ats_ptr_type, tmp937) ; ATSlocal (ats_ptr_type, tmp938) ; ATSlocal (ats_int_type, tmp939) ; ATSlocal (ats_ptr_type, tmp940) ; ATSlocal (ats_ptr_type, tmp941) ; ATSlocal (ats_ptr_type, tmp942) ; // ATSlocal_void (tmp943) ; ATSlocal (ats_ptr_type, tmp944) ; // ATSlocal_void (tmp945) ; ATSlocal (ats_ptr_type, tmp946) ; ATSlocal (ats_ptr_type, tmp947) ; ATSlocal (ats_ptr_type, tmp948) ; // ATSlocal_void (tmp949) ; ATSlocal (ats_ptr_type, tmp950) ; // ATSlocal_void (tmp951) ; ATSlocal (ats_ptr_type, tmp952) ; ATSlocal (ats_ptr_type, tmp953) ; ATSlocal (ats_int_type, tmp954) ; ATSlocal (ats_ptr_type, tmp955) ; ATSlocal (ats_ptr_type, tmp956) ; // ATSlocal_void (tmp957) ; ATSlocal (ats_ptr_type, tmp958) ; // ATSlocal_void (tmp959) ; ATSlocal (ats_ptr_type, tmp960) ; ATSlocal (ats_ptr_type, tmp961) ; ATSlocal (ats_int_type, tmp962) ; ATSlocal (ats_ptr_type, tmp963) ; ATSlocal (ats_ptr_type, tmp964) ; ATSlocal (ats_ptr_type, tmp965) ; // ATSlocal_void (tmp966) ; ATSlocal (ats_int_type, tmp967) ; ATSlocal (ats_ptr_type, tmp968) ; // ATSlocal_void (tmp969) ; ATSlocal (ats_ptr_type, tmp970) ; ATSlocal (ats_ptr_type, tmp971) ; ATSlocal (ats_ptr_type, tmp972) ; ATSlocal (ats_ptr_type, tmp973) ; ATSlocal (ats_ptr_type, tmp974) ; ATSlocal (ats_ptr_type, tmp975) ; ATSlocal (ats_ptr_type, tmp976) ; ATSlocal (ats_ptr_type, tmp977) ; ATSlocal (ats_int_type, tmp978) ; ATSlocal (ats_ptr_type, tmp979) ; ATSlocal (ats_ptr_type, tmp980) ; ATSlocal (ats_ptr_type, tmp981) ; ATSlocal (ats_ptr_type, tmp982) ; ATSlocal (ats_ptr_type, tmp983) ; // ATSlocal_void (tmp984) ; ATSlocal (ats_ptr_type, tmp985) ; ATSlocal (ats_ptr_type, tmp986) ; ATSlocal (ats_ptr_type, tmp987) ; ATSlocal (ats_int_type, tmp988) ; ATSlocal (ats_ptr_type, tmp989) ; ATSlocal (ats_ptr_type, tmp990) ; ATSlocal (ats_ptr_type, tmp991) ; ATSlocal (ats_ptr_type, tmp992) ; ATSlocal (ats_ptr_type, tmp993) ; ATSlocal (ats_ptr_type, tmp994) ; ATSlocal (ats_ptr_type, tmp995) ; ATSlocal (ats_int_type, tmp996) ; ATSlocal (ats_int_type, tmp997) ; ATSlocal (ats_ptr_type, tmp998) ; ATSlocal (ats_int_type, tmp999) ; ATSlocal (ats_ptr_type, tmp1000) ; ATSlocal (ats_ptr_type, tmp1001) ; ATSlocal (ats_ptr_type, tmp1002) ; // ATSlocal_void (tmp1003) ; // ATSlocal_void (tmp1004) ; ATSlocal (ats_ptr_type, tmp1005) ; ATSlocal (ats_ptr_type, tmp1006) ; // ATSlocal_void (tmp1007) ; ATSlocal (ats_int_type, tmp1008) ; ATSlocal (ats_bool_type, tmp1009) ; ATSlocal (ats_ptr_type, tmp1010) ; ATSlocal (ats_int_type, tmp1011) ; ATSlocal (ats_bool_type, tmp1012) ; // ATSlocal_void (tmp1013) ; ATSlocal (ats_int_type, tmp1014) ; ATSlocal (ats_ptr_type, tmp1015) ; ATSlocal (ats_ptr_type, tmp1016) ; // ATSlocal_void (tmp1017) ; ATSlocal (ats_ptr_type, tmp1018) ; ATSlocal (ats_ptr_type, tmp1019) ; ATSlocal (ats_ptr_type, tmp1020) ; ATSlocal (ats_bool_type, tmp1021) ; ATSlocal (ats_bool_type, tmp1022) ; ATSlocal (ats_ptr_type, tmp1023) ; // ATSlocal_void (tmp1024) ; ATSlocal (ats_bool_type, tmp1025) ; ATSlocal (ats_ptr_type, tmp1026) ; // ATSlocal_void (tmp1027) ; // ATSlocal_void (tmp1028) ; // ATSlocal_void (tmp1029) ; // ATSlocal_void (tmp1030) ; // ATSlocal_void (tmp1031) ; ATSlocal (ats_int_type, tmp1032) ; ATSlocal (ats_ptr_type, tmp1033) ; // ATSlocal_void (tmp1034) ; ATSlocal (ats_ptr_type, tmp1035) ; // ATSlocal_void (tmp1036) ; // ATSlocal_void (tmp1037) ; // ATSlocal_void (tmp1038) ; ATSlocal (ats_ptr_type, tmp1039) ; ATSlocal (ats_bool_type, tmp1040) ; ATSlocal (ats_ptr_type, tmp1041) ; ATSlocal (ats_ptr_type, tmp1042) ; ATSlocal (ats_bool_type, tmp1043) ; ATSlocal (ats_int_type, tmp1044) ; ATSlocal (ats_ptr_type, tmp1045) ; ATSlocal (ats_bool_type, tmp1046) ; ATSlocal (ats_ptr_type, tmp1047) ; ATSlocal (ats_ptr_type, tmp1048) ; ATSlocal (ats_int_type, tmp1049) ; ATSlocal (ats_ptr_type, tmp1050) ; ATSlocal (ats_ptr_type, tmp1051) ; ATSlocal (ats_ptr_type, tmp1052) ; ATSlocal (ats_ptr_type, tmp1053) ; ATSlocal (ats_int_type, tmp1054) ; ATSlocal (ats_ptr_type, tmp1055) ; ATSlocal (ats_int_type, tmp1056) ; ATSlocal (ats_ptr_type, tmp1057) ; // ATSlocal_void (tmp1058) ; ATSlocal (ats_ptr_type, tmp1059) ; // ATSlocal_void (tmp1060) ; ATSlocal (ats_ptr_type, tmp1061) ; ATSlocal (ats_ptr_type, tmp1062) ; ATSlocal (ats_ptr_type, tmp1063) ; // ATSlocal_void (tmp1064) ; // ATSlocal_void (tmp1065) ; ATSlocal (ats_ptr_type, tmp1066) ; ATSlocal (ats_ptr_type, tmp1067) ; // ATSlocal_void (tmp1068) ; ATSlocal (anairiats_rec_2, tmp1069) ; ATSlocal (ats_ptr_type, tmp1070) ; ATSlocal (ats_ptr_type, tmp1071) ; ATSlocal (ats_ptr_type, tmp1072) ; ATSlocal (ats_ptr_type, tmp1073) ; // ATSlocal_void (tmp1074) ; ATSlocal (ats_ptr_type, tmp1075) ; ATSlocal (ats_ptr_type, tmp1076) ; ATSlocal (ats_ptr_type, tmp1077) ; ATSlocal (ats_ptr_type, tmp1078) ; // ATSlocal_void (tmp1079) ; // ATSlocal_void (tmp1080) ; ATSlocal (ats_ptr_type, tmp1081) ; // ATSlocal_void (tmp1082) ; // ATSlocal_void (tmp1083) ; ATSlocal (ats_ptr_type, tmp1084) ; // ATSlocal_void (tmp1085) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1ecl_tr: tmp913 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d1ecl_loc) ; tmp928 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d1ecl_node) ; do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)tmp928)->tag != 0) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)tmp928)->tag != 1) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp929 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; tmp930 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp929, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1ecl_tr) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_list (tmp913, ats_castfn_mac(ats_ptr_type, tmp930)) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: if (((ats_sum_ptr_type)tmp928)->tag != 2) { goto __ats_lab_160_0 ; } __ats_lab_159_1: tmp931 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; /* tmp932 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set (tmp931) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: if (((ats_sum_ptr_type)tmp928)->tag != 3) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp933 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; /* tmp934 = */ symintr_tr_1 (tmp933) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symintr (tmp913, tmp933) ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: if (((ats_sum_ptr_type)tmp928)->tag != 4) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp935 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; /* tmp936 = */ symelim_tr_3 (tmp935) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symelim (tmp913, tmp935) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: if (((ats_sum_ptr_type)tmp928)->tag != 5) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp937 = ats_caselptrlab_mac(anairiats_sum_46, tmp928, atslab_0) ; tmp938 = ats_caselptrlab_mac(anairiats_sum_46, tmp928, atslab_1) ; tmp939 = ats_caselptrlab_mac(anairiats_sum_46, tmp928, atslab_2) ; tmp940 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr (arg0, tmp937, tmp938, tmp939) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_overload (tmp913, tmp937, tmp939, tmp940) ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)tmp928)->tag != 6) { goto __ats_lab_164_0 ; } __ats_lab_163_1: tmp941 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_0) ; tmp942 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_1) ; tmp944 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp944)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp944, atslab_0, tmp942) ; /* tmp943 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (tmp941, tmp944) ; tmp946 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp946)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp946, atslab_0, tmp942) ; /* tmp945 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp941, tmp946) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)tmp928)->tag != 7) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp947 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_0) ; tmp948 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_1) ; tmp950 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp950)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp950, atslab_0, tmp948) ; /* tmp949 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (tmp947, tmp950) ; tmp952 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp952)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp952, atslab_0, tmp948) ; /* tmp951 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp947, tmp952) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)tmp928)->tag != 8) { goto __ats_lab_166_0 ; } __ats_lab_165_1: tmp953 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_pragma (tmp913, tmp953) ; break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)tmp928)->tag != 9) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp954 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_0) ; tmp955 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_1) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_codegen (tmp913, tmp954, tmp955) ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: if (((ats_sum_ptr_type)tmp928)->tag != 10) { goto __ats_lab_168_0 ; } __ats_lab_167_1: tmp956 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; /* tmp957 = */ d1atsrtdeclst_tr_17 (tmp956) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: if (((ats_sum_ptr_type)tmp928)->tag != 11) { goto __ats_lab_169_0 ; } __ats_lab_168_1: tmp958 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; /* tmp959 = */ s1rtdeflst_tr_21 (tmp958) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: if (((ats_sum_ptr_type)tmp928)->tag != 12) { goto __ats_lab_170_0 ; } __ats_lab_169_1: tmp960 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; tmp961 = s1tacstlst_tr_24 (tmp960) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacsts (tmp913, tmp961) ; break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: if (((ats_sum_ptr_type)tmp928)->tag != 13) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp962 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_0) ; tmp963 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_1) ; tmp964 = s1taconlst_tr_37 (tmp962, tmp963) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacons (tmp913, tmp962, tmp964) ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: if (((ats_sum_ptr_type)tmp928)->tag != 14) { goto __ats_lab_172_0 ; } __ats_lab_171_1: tmp965 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; /* tmp966 = */ t1kindef_tr_39 (tmp965) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_172 */ __ats_lab_172_0: if (((ats_sum_ptr_type)tmp928)->tag != 15) { goto __ats_lab_173_0 ; } __ats_lab_172_1: tmp967 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_0) ; tmp968 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_1) ; /* tmp969 = */ s1expdeflst_tr_47 (tmp967, tmp968) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: if (((ats_sum_ptr_type)tmp928)->tag != 16) { goto __ats_lab_176_0 ; } __ats_lab_173_1: tmp970 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; tmp971 = s1aspdec_tr_54 (tmp970) ; do { /* branch: __ats_lab_174 */ __ats_lab_174_0: if (tmp971 == (ats_sum_ptr_type)0) { goto __ats_lab_175_0 ; } __ats_lab_174_1: tmp972 = ats_caselptrlab_mac(anairiats_sum_6, tmp971, atslab_0) ; ATS_FREE(tmp971) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_saspdec (tmp913, tmp972) ; break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: // if (tmp971 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_175_1: tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; } while (0) ; break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: if (((ats_sum_ptr_type)tmp928)->tag != 17) { goto __ats_lab_179_0 ; } __ats_lab_176_1: tmp973 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; tmp974 = re1assume_tr_61 (tmp973) ; do { /* branch: __ats_lab_177 */ __ats_lab_177_0: if (tmp974 == (ats_sum_ptr_type)0) { goto __ats_lab_178_0 ; } __ats_lab_177_1: tmp975 = ats_caselptrlab_mac(anairiats_sum_6, tmp974, atslab_0) ; ATS_FREE(tmp974) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_reassume (tmp913, tmp975) ; break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: // if (tmp974 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_178_1: tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; } while (0) ; break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: if (((ats_sum_ptr_type)tmp928)->tag != 18) { goto __ats_lab_180_0 ; } __ats_lab_179_1: tmp976 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; tmp977 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__e1xndeclst_tr (tmp976) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_exndecs (tmp913, tmp977) ; break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: if (((ats_sum_ptr_type)tmp928)->tag != 19) { goto __ats_lab_181_0 ; } __ats_lab_180_1: tmp978 = ats_caselptrlab_mac(anairiats_sum_47, tmp928, atslab_0) ; tmp979 = ats_caselptrlab_mac(anairiats_sum_47, tmp928, atslab_1) ; tmp980 = ats_caselptrlab_mac(anairiats_sum_47, tmp928, atslab_2) ; tmp981 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__d1atdeclst_tr (tmp978, tmp979, tmp980) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_datdecs (tmp913, tmp978, tmp981) ; break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: if (((ats_sum_ptr_type)tmp928)->tag != 20) { goto __ats_lab_182_0 ; } __ats_lab_181_1: tmp982 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_0) ; tmp983 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_1) ; /* tmp984 = */ c1lassdec_tr_87 (tmp982, tmp983) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: if (((ats_sum_ptr_type)tmp928)->tag != 21) { goto __ats_lab_183_0 ; } __ats_lab_182_1: tmp985 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_0) ; tmp986 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_1) ; tmp987 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp986) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extype (tmp913, tmp985, tmp987) ; break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: if (((ats_sum_ptr_type)tmp928)->tag != 22) { goto __ats_lab_184_0 ; } __ats_lab_183_1: tmp988 = ats_caselptrlab_mac(anairiats_sum_47, tmp928, atslab_0) ; tmp989 = ats_caselptrlab_mac(anairiats_sum_47, tmp928, atslab_1) ; tmp990 = ats_caselptrlab_mac(anairiats_sum_47, tmp928, atslab_2) ; tmp991 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred (tmp988) ; tmp992 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp990, tmp991) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extype (tmp913, tmp989, tmp992) ; break ; /* branch: __ats_lab_184 */ __ats_lab_184_0: if (((ats_sum_ptr_type)tmp928)->tag != 23) { goto __ats_lab_185_0 ; } __ats_lab_184_1: tmp993 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_0) ; tmp994 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_1) ; tmp995 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp994) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extvar (tmp913, tmp993, tmp995) ; break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: if (((ats_sum_ptr_type)tmp928)->tag != 24) { goto __ats_lab_186_0 ; } __ats_lab_185_1: tmp996 = ats_caselptrlab_mac(anairiats_sum_48, tmp928, atslab_0) ; tmp997 = ats_caselptrlab_mac(anairiats_sum_48, tmp928, atslab_1) ; tmp998 = ats_caselptrlab_mac(anairiats_sum_48, tmp928, atslab_2) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extcode (tmp913, tmp996, tmp997, tmp998) ; break ; /* branch: __ats_lab_186 */ __ats_lab_186_0: if (((ats_sum_ptr_type)tmp928)->tag != 25) { goto __ats_lab_187_0 ; } __ats_lab_186_1: tmp999 = ats_caselptrlab_mac(anairiats_sum_49, tmp928, atslab_0) ; tmp1000 = ats_caselptrlab_mac(anairiats_sum_49, tmp928, atslab_1) ; tmp1001 = ats_caselptrlab_mac(anairiats_sum_49, tmp928, atslab_2) ; tmp1002 = ats_caselptrlab_mac(anairiats_sum_49, tmp928, atslab_3) ; /* tmp1003 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp1004 = ats_selsin_mac(tmp1003, atslab_1) */ ; tmp1005 = list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (tmp1001, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr_dec) ; tmp1006 = d1cstdeclst_tr_93 (tmp999, tmp1000, ats_castfn_mac(ats_ptr_type, tmp1005), tmp1002) ; /* tmp1007 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dcstdecs (tmp913, tmp999, tmp1000, tmp1006) ; break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: if (((ats_sum_ptr_type)tmp928)->tag != 26) { goto __ats_lab_188_0 ; } __ats_lab_187_1: tmp1008 = ats_caselptrlab_mac(anairiats_sum_50, tmp928, atslab_0) ; tmp1009 = ats_caselptrlab_mac(anairiats_sum_50, tmp928, atslab_1) ; tmp1010 = ats_caselptrlab_mac(anairiats_sum_50, tmp928, atslab_2) ; if (tmp1009) { tmp1012 = atspre_eq_int_int (tmp1008, 0) ; if (tmp1012) { tmp1011 = 0 ; } else { tmp1011 = 2 ; } /* end of [if] */ } else { tmp1011 = tmp1008 ; } /* end of [if] */ /* tmp1013 = */ m1acdeflst_tr_101 (tmp1011, tmp1010) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_188 */ __ats_lab_188_0: if (((ats_sum_ptr_type)tmp928)->tag != 27) { goto __ats_lab_191_0 ; } __ats_lab_188_1: tmp1014 = ats_caselptrlab_mac(anairiats_sum_47, tmp928, atslab_0) ; tmp1015 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__i1mpdec_tr (arg0) ; do { /* branch: __ats_lab_189 */ __ats_lab_189_0: if (tmp1015 == (ats_sum_ptr_type)0) { goto __ats_lab_190_0 ; } __ats_lab_189_1: tmp1016 = ats_caselptrlab_mac(anairiats_sum_6, tmp1015, atslab_0) ; ATS_FREE(tmp1015) ; /* tmp1017 = */ auxcheck_impdec_128 (arg0, tmp1014, tmp1016) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_impdec (tmp913, tmp1014, tmp1016) ; break ; /* branch: __ats_lab_190 */ __ats_lab_190_0: // if (tmp1015 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_190_1: tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; } while (0) ; break ; /* branch: __ats_lab_191 */ __ats_lab_191_0: if (((ats_sum_ptr_type)tmp928)->tag != 28) { goto __ats_lab_192_0 ; } __ats_lab_191_1: tmp1018 = ats_caselptrlab_mac(anairiats_sum_24, tmp928, atslab_0) ; tmp1019 = ats_caselptrlab_mac(anairiats_sum_24, tmp928, atslab_1) ; tmp1020 = ats_caselptrlab_mac(anairiats_sum_24, tmp928, atslab_2) ; tmp1021 = list_is_cons_01295_ (tmp1019) ; tmp1022 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec (tmp1018) ; /* ats_ptr_type tmp1023 ; */ tmp1023 = tmp1018 ; tmp1025 = atspre_mul_bool_bool (tmp1021, tmp1022) ; if (tmp1025) { tmp1026 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fun_2) ; tmp1023 = tmp1026 ; /* tmp1027 = */ prerr_warning2_loc_02123_ (tmp913) ; /* tmp1028 = */ atspre_prerr_string (ATSstrcst(": [fnx] is treated as [fun] for initiating function templates!")) ; /* tmp1024 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ if (tmp1021) { /* tmp1029 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_inc () ; } else { /* empty */ } /* end of [if] */ /* tmp1030 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp1031 = ats_selsin_mac(tmp1030, atslab_1) */ ; tmp1032 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_get () ; tmp1033 = list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (tmp1019, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr_dec) ; /* tmp1034 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__s2qualstlst_set_tmplev (ats_castfn_mac(ats_ptr_type, tmp1033), tmp1032) ; tmp1035 = f1undeclst_tr_105 (tmp1023, ats_castfn_mac(ats_ptr_type, tmp1033), tmp1020) ; if (tmp1021) { /* tmp1036 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_dec () ; } else { /* empty */ } /* end of [if] */ /* tmp1037 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () ; /* tmp1038 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_fundeclst (tmp1023, tmp1035) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_fundecs (tmp913, tmp1023, ats_castfn_mac(ats_ptr_type, tmp1033), tmp1035) ; break ; /* branch: __ats_lab_192 */ __ats_lab_192_0: if (((ats_sum_ptr_type)tmp928)->tag != 29) { goto __ats_lab_193_0 ; } __ats_lab_192_1: tmp1039 = ats_caselptrlab_mac(anairiats_sum_51, tmp928, atslab_0) ; tmp1040 = ats_caselptrlab_mac(anairiats_sum_51, tmp928, atslab_1) ; tmp1041 = ats_caselptrlab_mac(anairiats_sum_51, tmp928, atslab_2) ; tmp1042 = v1aldeclst_tr_109 (tmp1040, tmp1041) ; tmp1043 = atspre_neg_bool (tmp1040) ; if (tmp1043) { tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs (tmp913, tmp1039, tmp1042) ; } else { tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs_rec (tmp913, tmp1039, tmp1042) ; } /* end of [if] */ break ; /* branch: __ats_lab_193 */ __ats_lab_193_0: if (((ats_sum_ptr_type)tmp928)->tag != 30) { goto __ats_lab_194_0 ; } __ats_lab_193_1: tmp1044 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_0) ; tmp1045 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_1) ; tmp1046 = atspre_eq_int_int (tmp1044, 0) ; if (tmp1046) { tmp1047 = v1ardeclst_tr_115 (tmp1045) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_vardecs (tmp913, tmp1047) ; } else { tmp1048 = prv1ardeclst_tr_121 (tmp1045) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_prvardecs (tmp913, tmp1048) ; } /* end of [if] */ break ; /* branch: __ats_lab_194 */ __ats_lab_194_0: if (((ats_sum_ptr_type)tmp928)->tag != 31) { goto __ats_lab_195_0 ; } __ats_lab_194_1: tmp1049 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_0) ; tmp1050 = ats_caselptrlab_mac(anairiats_sum_44, tmp928, atslab_1) ; tmp1051 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (tmp1050) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_include (tmp913, tmp1049, tmp1051) ; break ; /* branch: __ats_lab_195 */ __ats_lab_195_0: if (((ats_sum_ptr_type)tmp928)->tag != 32) { goto __ats_lab_198_0 ; } __ats_lab_195_1: tmp1052 = ats_caselptrlab_mac(anairiats_sum_52, tmp928, atslab_0) ; tmp1053 = ats_caselptrlab_mac(anairiats_sum_52, tmp928, atslab_1) ; tmp1054 = ats_caselptrlab_mac(anairiats_sum_52, tmp928, atslab_2) ; tmp1055 = ats_caselptrlab_mac(anairiats_sum_52, tmp928, atslab_3) ; /* ats_int_type tmp1056 ; */ tmp1057 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taload_tr (tmp913, tmp1052, tmp1053, tmp1054, tmp1055, (&tmp1056)) ; do { /* branch: __ats_lab_196 */ __ats_lab_196_0: if (tmp1052 != (ats_sum_ptr_type)0) { goto __ats_lab_197_0 ; } __ats_lab_196_1: tmp1059 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (tmp1057) ; /* tmp1058 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__overload_tr_d2eclist (tmp1059) ; break ; /* branch: __ats_lab_197 */ __ats_lab_197_0: // if (tmp1052 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_197_1: break ; } while (0) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staload (tmp913, tmp1052, tmp1053, tmp1054, tmp1057, tmp1056) ; break ; /* branch: __ats_lab_198 */ __ats_lab_198_0: if (((ats_sum_ptr_type)tmp928)->tag != 33) { goto __ats_lab_199_0 ; } __ats_lab_198_1: /* tmp1060 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__s1taloadnm_tr (arg0) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (tmp913) ; break ; /* branch: __ats_lab_199 */ __ats_lab_199_0: if (((ats_sum_ptr_type)tmp928)->tag != 34) { goto __ats_lab_200_0 ; } __ats_lab_199_1: tmp1061 = ats_caselptrlab_mac(anairiats_sum_24, tmp928, atslab_0) ; tmp1062 = ats_caselptrlab_mac(anairiats_sum_24, tmp928, atslab_1) ; tmp1063 = ats_caselptrlab_mac(anairiats_sum_24, tmp928, atslab_2) ; /* tmp1064 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_save () ; /* tmp1065 = ats_selsin_mac(tmp1064, atslab_1) */ ; tmp1066 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get () ; tmp1067 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (tmp1063) ; /* tmp1068 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set (tmp1066) ; tmp1069 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_restore () ; tmp1070 = ats_select_mac(tmp1069, atslab_0) ; tmp1071 = ats_select_mac(tmp1069, atslab_1) ; tmp1072 = ats_select_mac(tmp1069, atslab_2) ; tmp1073 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_make (tmp1061, tmp1070, tmp1071, tmp1072, tmp1067) ; tmp1075 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp1075)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp1075, atslab_0, tmp1073) ; /* tmp1074 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (tmp1062, tmp1075) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staloadloc (tmp913, tmp1061, tmp1062, tmp1073) ; break ; /* branch: __ats_lab_200 */ __ats_lab_200_0: if (((ats_sum_ptr_type)tmp928)->tag != 35) { goto __ats_lab_201_0 ; } __ats_lab_200_1: tmp1076 = ats_caselptrlab_mac(anairiats_sum_9, tmp928, atslab_0) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dynload (tmp913, tmp1076) ; break ; /* branch: __ats_lab_201 */ __ats_lab_201_0: // if (((ats_sum_ptr_type)tmp928)->tag != 36) { ats_deadcode_failure_handle () ; } __ats_lab_201_1: tmp1077 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_0) ; tmp1078 = ats_caselptrlab_mac(anairiats_sum_5, tmp928, atslab_1) ; /* tmp1079 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp1080 = ats_selsin_mac(tmp1079, atslab_1) */ ; tmp1081 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (tmp1077) ; /* tmp1082 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp1083 = ats_selsin_mac(tmp1082, atslab_1) */ ; tmp1084 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (tmp1078) ; /* tmp1085 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_localjoin () ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_local (tmp913, tmp1081, tmp1084) ; break ; } while (0) ; return (tmp912) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1ecl_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 59933(line=2900, offs=12) -- 60029(line=2908, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1086) ; ATSlocal (ats_ptr_type, tmp1087) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr: tmp1087 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1ecl_tr) ; tmp1086 = ats_castfn_mac(ats_ptr_type, tmp1087) ; return (tmp1086) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_decl.dats: 60106(line=2914, offs=3) -- 60216(line=2921, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr_errck (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1088) ; ATSlocal (ats_ptr_type, tmp1089) ; // ATSlocal_void (tmp1090) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr_errck: tmp1089 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (arg0) ; /* tmp1090 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_finalize () ; tmp1088 = tmp1089 ; return (tmp1088) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr_errck] */ /* 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_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_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_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_decl_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dmacro2_print_dats.c0000644000175000017500000010245113431250607023273 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vbool_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vchar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vfloat_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vstring_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vunit_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vscode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vdcode_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vlist_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_2 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_2_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_2 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_bool_type, tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_int_type, tmp32) ; __ats_lab_aux_2: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp30 = atspre_gt_int_int (arg1, 0) ; if (tmp30) { /* tmp29 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp31 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp27) ; tmp32 = atspre_add_int_int (arg1, 1) ; arg0 = tmp28 ; arg1 = tmp32 ; goto __ats_lab_aux_2 ; // tail call break ; } while (0) ; return /* (tmp26) */ ; } /* end of [aux_2] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_2_closure_type ; ats_void_type aux_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_2 (((aux_2_closure_type*)cloptr)->closure_env_0, ((aux_2_closure_type*)cloptr)->closure_env_1, ((aux_2_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_2_closure_init (aux_2_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_2_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_2_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_2_closure_type *p_clo = ATS_MALLOC(sizeof(aux_2_closure_type)) ; aux_2_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp25) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp25 = */ aux_2 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp25) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_print.dats: 1647(line=52, offs=3) -- 2744(line=105, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_int_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; ATSlocal (ats_bool_type, tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_char_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("M2Vint(")) ; /* tmp3 = */ atspre_fprint_int (arg0, tmp1) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("M2Vbool(")) ; /* tmp6 = */ atspre_fprint_bool (arg0, tmp4) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("M2Vchar(")) ; /* tmp9 = */ atspre_fprint_char (arg0, tmp7) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst("M2Vfloat(")) ; /* tmp12 = */ atspre_fprint_string (arg0, tmp10) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp14 = */ atspre_fprint_string (arg0, ATSstrcst("M2Vstring(")) ; /* tmp15 = */ atspre_fprint_string (arg0, tmp13) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("M2Vunit()")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp17 = */ atspre_fprint_string (arg0, ATSstrcst("M2Vscode(")) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp16) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp20 = */ atspre_fprint_string (arg0, ATSstrcst("M2Vdcode(")) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp19) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_11_0 ; } __ats_lab_8_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp23 = */ atspre_fprint_string (arg0, ATSstrcst("M2Vlist(")) ; /* tmp24 = */ fprintlst_01696_ats_ptr_type (arg0, tmp22, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (((ats_sum_ptr_type)arg1)->tag != 9) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("M2Verr()")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_print.dats: 2793(line=108, offs=13) -- 2827(line=108, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__print_m2val (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__print_m2val: /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val (stdout, arg0) ; return /* (tmp33) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__print_m2val] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_print.dats: 2850(line=110, offs=13) -- 2884(line=110, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__prerr_m2val (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__prerr_m2val: /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val (stderr, arg0) ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__prerr_m2val] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_print.dats: 2935(line=116, offs=3) -- 2990(line=116, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2valist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2valist: /* tmp35 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val) ; return /* (tmp35) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2valist] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dmacro2_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_sats.c0000644000175000017500000007665613431250607021671 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBcons_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBnil_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome2_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome2_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyfil_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyloc_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyfun_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__LABPRIMVAL_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLlab_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLind_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmp_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpref_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVarg_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargref_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargenv_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargtmpref_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcst_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVenv_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVint_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVintrep_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVbool_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVchar_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfloat_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVstring_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVi0nt_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVf0loat_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcstsp_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtyrep_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVsizeof_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtop_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVempty_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVextval_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcastfn_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselcon_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect2_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselptr_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrof_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrofsel_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVvararg_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVrefarg_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfunlab_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcfunlab_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVd2vfunlab_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVlamfix_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcst_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvar_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcstmat_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvarmat_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVerror_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlist_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDsaspdec_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDextvar_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdatdecs_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDexndecs_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDfundecs_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_rec_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvardecs_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDimpdec_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDinclude_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaload_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaloadloc_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdynload_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlocal_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKcon_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKint_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKbool_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKchar_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKfloat_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKstring_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKi0nt_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKf0loat_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVsome_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplab_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabint_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabmov_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTcaseof_fail_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTfunarg_fail_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTraise_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfunlab_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmplab_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScomment_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_val_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_val_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arg_val_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall2_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextfcall_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextmcall_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScond_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfreecon_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloop_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloopexn_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScaseof_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpop_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpush_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_con_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ref_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_boxrec_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_fltrec_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpatck_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ptrofsel_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_ptrofs_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSxstore_ptrofs_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSraise_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_delay_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_lazyeval_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStrywith_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_nil_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_nil_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_cons_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_phead_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_ptail_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arrpsz_ptr_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_asz_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_ptr_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrinc_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrdec_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSclosure_initize_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmpdec_40) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextvar_41) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSdcstdef_42) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStempenver_43) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIFUNDEC2_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIIMPDEC2_0) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBcons_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBnil_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome2_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome2_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyfil_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyloc_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyfun_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__LABPRIMVAL_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLlab_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLind_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmp_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpref_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVarg_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargref_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargenv_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargtmpref_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcst_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVenv_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVint_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVintrep_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVbool_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVchar_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfloat_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVstring_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVi0nt_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVf0loat_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcstsp_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtyrep_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVsizeof_18.tag = 18 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtop_19.tag = 19 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVempty_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVextval_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcastfn_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselcon_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect2_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselptr_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrof_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrofsel_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVvararg_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVrefarg_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfunlab_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcfunlab_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVd2vfunlab_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVlamfix_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcst_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvar_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcstmat_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvarmat_38.tag = 38 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVerror_39.tag = 39 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlist_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDsaspdec_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDextvar_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdatdecs_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDexndecs_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDfundecs_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_rec_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvardecs_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDimpdec_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDinclude_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaload_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaloadloc_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdynload_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlocal_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKcon_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKint_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKbool_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKchar_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKfloat_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKstring_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKi0nt_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKf0loat_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVsome_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplab_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabint_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabmov_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTcaseof_fail_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTfunarg_fail_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTraise_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfunlab_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmplab_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScomment_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_val_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_val_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arg_val_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall2_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextfcall_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextmcall_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScond_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfreecon_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloop_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloopexn_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScaseof_14.tag = 14 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpop_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpush_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_con_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ref_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_boxrec_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_fltrec_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpatck_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ptrofsel_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_ptrofs_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSxstore_ptrofs_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSraise_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_delay_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_lazyeval_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStrywith_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_nil_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_nil_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_cons_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_phead_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_ptail_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arrpsz_ptr_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_asz_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_ptr_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrinc_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrdec_38.tag = 38 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSclosure_initize_39.tag = 39 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmpdec_40.tag = 40 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextvar_41.tag = 41 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSdcstdef_42.tag = 42 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStempenver_43.tag = 43 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIFUNDEC2_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIIMPDEC2_0.tag = 0 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_funlab_dats.c0000644000175000017500000031771513431250607023173 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_funlab_name ; ats_int_type atslab_funlab_level ; ats_ptr_type atslab_funlab_funclo ; ats_ptr_type atslab_funlab_type ; ats_int_type atslab_funlab_tmpknd ; ats_ptr_type atslab_funlab_d2copt ; ats_ptr_type atslab_funlab_d2vopt ; ats_int_type atslab_funlab_ncopy ; ats_ptr_type atslab_funlab_origin ; ats_int_type atslab_funlab_suffix ; ats_ptr_type atslab_funlab_tmparg ; ats_ptr_type atslab_funlab_funent ; ats_int_type atslab_funlab_stamp ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_ext_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_mac_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_sta_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEfun_5) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_size_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_none) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_stamp) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_prefix_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_ncopy) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_ncopy) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_suffix) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__funlabset_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__ccomp_funlab_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02433_ () ; static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_void_type prerr_interror_02434_ () ; static ats_ptr_type d2cst_get_gname_26 (ats_ptr_type arg0) ; static ats_ptr_type flname_make_27 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type flname_make_30 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type aux_37 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_37_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_37_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_int_type __ats_fun_39 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_39_closure_make () ; static ats_int_type __ats_fun_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_make_nil_05351_ () ; static ats_void_type loop_45 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type linset_free_05358_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type compare_elt_elt_05350_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type loop_48 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type loop_48_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type loop_48_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type linset_is_member_05356_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type ins_52 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0) ; static ats_clo_ptr_type ins_52_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type ins_52_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0) ; static ats_bool_type linset_insert_05360_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_void_type loop_57 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type linset_listize_05375_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type linset_listize_free_05376_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_61 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp149) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 1762(line=57, offs=28) -- 1792(line=57, offs=58) */ ATSstaticdec() ats_void_type prerr_FILENAME_02433_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02433_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_ccomp_funlab")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02433_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp3 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp3) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 2986(line=130, offs=1) -- 3877(line=174, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_int_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make: tmp2 = ptr_alloc_01070_anairiats_rec_1 () ; tmp4 = ats_selsin_mac(tmp2, atslab_2) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_0) ; ATS_FREE(arg3) ; tmp5 = tmp6 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_hisexp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp7)->tag != 5) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_4, tmp7, atslab_0) ; tmp5 = tmp8 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp5 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_name) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_level) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_type) = arg2 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_funclo) = tmp5 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_tmpknd) = -1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_d2copt) = arg4 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_d2vopt) = arg5 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_ncopy) = 0 ; tmp9 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_origin) = tmp9 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_suffix) = 0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_tmparg) = arg6 ; tmp10 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_funent) = tmp10 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_funlab_stamp) = arg7 ; tmp1 = atspre_ref_make_view_ptr (tmp4) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 3950(line=179, offs=17) -- 4030(line=181, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name: tmp12 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp11 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_funlab_name) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 4087(line=184, offs=18) -- 4168(line=186, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level: tmp14 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp13 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_funlab_level) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 4225(line=189, offs=17) -- 4305(line=191, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type: tmp16 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp15 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp16), atslab_funlab_type) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 4363(line=194, offs=19) -- 4445(line=196, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo: tmp18 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp17 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_funlab_funclo) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 4505(line=199, offs=19) -- 4587(line=201, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd: tmp20 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp19 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp20), atslab_funlab_tmpknd) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmpknd] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 4646(line=203, offs=19) -- 4740(line=205, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd: tmp22 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp22), atslab_funlab_tmpknd) = arg1 ; return /* (tmp21) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 4800(line=208, offs=19) -- 4882(line=210, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt: tmp24 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp23 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp24), atslab_funlab_d2copt) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 4941(line=212, offs=19) -- 5023(line=214, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt: tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp25 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp26), atslab_funlab_d2vopt) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 5082(line=217, offs=18) -- 5163(line=219, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_ncopy (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_ncopy: tmp28 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp27 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp28), atslab_funlab_ncopy) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_ncopy] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 5220(line=221, offs=18) -- 5313(line=223, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_ncopy (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_ncopy: tmp30 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp30), atslab_funlab_ncopy) = arg1 ; return /* (tmp29) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_ncopy] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 5374(line=227, offs=3) -- 5499(line=231, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin: tmp32 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp33 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp32), atslab_funlab_origin) ; tmp31 = ats_castfn_mac(ats_ptr_type, tmp33) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 5561(line=235, offs=3) -- 5694(line=238, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_origin (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_origin: tmp35 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp35), atslab_funlab_origin) = ats_castfn_mac(ats_ptr_type, arg1) ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_origin] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 5754(line=241, offs=19) -- 5836(line=243, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_suffix (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_suffix: tmp37 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp36 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp37), atslab_funlab_suffix) ; return (tmp36) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_suffix] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 5895(line=245, offs=19) -- 5989(line=247, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_suffix (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_suffix: tmp39 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp39), atslab_funlab_suffix) = arg1 ; return /* (tmp38) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_suffix] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 6049(line=250, offs=19) -- 6131(line=252, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg: tmp41 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp40 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp41), atslab_funlab_tmparg) ; return (tmp40) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 6191(line=255, offs=19) -- 6273(line=257, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent: tmp43 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp42 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp43), atslab_funlab_funent) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 6332(line=259, offs=19) -- 6426(line=261, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent: tmp45 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp45), atslab_funlab_funent) = arg1 ; return /* (tmp44) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 6487(line=265, offs=3) -- 6583(line=269, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp: tmp47 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp46 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp47), atslab_funlab_stamp) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1637(line=52, offs=15) -- 1735(line=57, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_02434_ () { /* local vardec */ // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; __ats_lab_prerr_interror_02434_: /* tmp54 = */ atspre_prerr_string (ATSstrcst("INTERROR(")) ; /* tmp55 = */ prerr_FILENAME_02433_ () ; /* tmp53 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp53) */ ; } /* end of [prerr_interror_02434_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 6724(line=278, offs=3) -- 7089(line=296, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg: tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type (arg0) ; tmp50 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp49), atslab_hisexp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp50)->tag != 5) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_4, tmp50, atslab_1) ; tmp48 = tmp51 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: /* tmp52 = */ prerr_interror_02434_ () ; /* tmp56 = */ atspre_prerr_string (ATSstrcst(": funlab_get_type_arg: hse = ")) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp (tmp49) ; /* tmp58 = */ atspre_prerr_newline () ; tmp60 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 7000(line=291, offs=14) -- 7016(line=291, offs=30)", ATSstrcst("\n")) ; /* tmp59 = */ atspre_assert_errmsg (ats_false_bool, tmp60) ; /* tmp48 = */ ats_exit (1) ; break ; } while (0) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 7155(line=300, offs=3) -- 7520(line=318, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_res (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_res: tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type (arg0) ; tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp62), atslab_hisexp_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp63)->tag != 5) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_2) ; tmp61 = tmp64 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: /* tmp65 = */ prerr_interror_02434_ () ; /* tmp66 = */ atspre_prerr_string (ATSstrcst(": funlab_get_type_arg: hse = ")) ; /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp (tmp62) ; /* tmp68 = */ atspre_prerr_newline () ; tmp70 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 7431(line=313, offs=14) -- 7447(line=313, offs=30)", ATSstrcst("\n")) ; /* tmp69 = */ atspre_assert_errmsg (ats_false_bool, tmp70) ; /* tmp61 = */ ats_exit (1) ; break ; } while (0) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_res] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 7607(line=324, offs=3) -- 7728(line=328, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_incget_ncopy (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_int_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_incget_ncopy: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_ncopy (arg0) ; tmp73 = atspre_add_int_int (tmp72, 1) ; /* tmp74 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_ncopy (arg0, tmp73) ; tmp71 = tmp73 ; return (tmp71) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_incget_ncopy] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 7812(line=334, offs=3) -- 8308(line=352, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp77 = (ats_sum_ptr_type)0 ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make () ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_get () ; tmp81 = atspre_stropt_is_none (tmp79) ; if (tmp81) { tmp80 = ATSstrcst("__patsfun_") ; } else { tmp82 = atspre_string_append (ats_castfn_mac(ats_ptr_type, tmp79), ATSstrcst("patsfun_")) ; tmp80 = ats_castfn_mac(ats_ptr_type, tmp82) ; } /* end of [if] */ tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_prefix_stamp (tmp80, tmp78) ; tmp84 = (ats_sum_ptr_type)0 ; tmp85 = (ats_sum_ptr_type)0 ; tmp86 = (ats_sum_ptr_type)0 ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make (tmp83, tmp76, arg0, tmp77, tmp84, tmp85, tmp86, tmp78) ; return (tmp75) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 8371(line=359, offs=1) -- 8754(line=373, offs=4) */ ATSstaticdec() ats_ptr_type d2cst_get_gname_26 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; __ats_lab_d2cst_get_gname_26: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef (arg0) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp88)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym (arg0) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp89) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp88)->tag != 1) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_6, tmp88, atslab_0) ; tmp87 = tmp90 ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp88)->tag != 2) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_6, tmp88, atslab_0) ; tmp87 = tmp91 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (((ats_sum_ptr_type)tmp88)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_6, tmp88, atslab_0) ; tmp87 = tmp92 ; break ; } while (0) ; return (tmp87) ; } /* end of [d2cst_get_gname_26] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 8788(line=375, offs=5) -- 9009(line=384, offs=4) */ ATSstaticdec() ats_ptr_type flname_make_27 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab_flname_make_27: tmp94 = d2cst_get_gname_26 (arg0) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_stamp (arg1) ; tmp96 = atspre_tostringf (ATSstrcst("%s$%s"), tmp94, tmp95) ; tmp93 = ats_castfn_mac(ats_ptr_type, tmp96) ; return (tmp93) ; } /* end of [flname_make_27] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 9093(line=390, offs=3) -- 9371(line=403, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type: tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp99, atslab_0, arg0) ; tmp100 = (ats_sum_ptr_type)0 ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make () ; tmp102 = flname_make_27 (arg0, tmp101) ; tmp103 = (ats_sum_ptr_type)0 ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make (tmp102, tmp98, arg1, arg2, tmp99, tmp103, tmp100, tmp101) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 9441(line=407, offs=1) -- 9731(line=421, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_tmpcst_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_int_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_tmpcst_type: tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp106 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp106, atslab_0, arg0) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make () ; tmp108 = flname_make_27 (arg0, tmp107) ; tmp109 = (ats_sum_ptr_type)0 ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make (tmp108, tmp105, arg2, arg3, tmp106, tmp109, arg1, tmp107) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_tmpcst_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 9824(line=430, offs=1) -- 10305(line=454, offs=4) */ ATSstaticdec() ats_ptr_type flname_make_30 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; __ats_lab_flname_make_30: tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_get () ; tmp112 = atspre_stropt_is_none (tmp111) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg0) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp114) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_stamp (arg1) ; if (tmp112) { tmp116 = atspre_tostringf (ATSstrcst("%s_%s"), tmp113, tmp115) ; tmp110 = ats_castfn_mac(ats_ptr_type, tmp116) ; } else { tmp117 = atspre_tostringf (ATSstrcst("%s%s_%s"), ats_castfn_mac(ats_ptr_type, tmp111), tmp113, tmp115) ; tmp110 = ats_castfn_mac(ats_ptr_type, tmp117) ; } /* end of [if] */ return (tmp110) ; } /* end of [flname_make_30] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 10389(line=460, offs=3) -- 10688(line=473, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dvar_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_int_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_int_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dvar_type: tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp120 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp120, atslab_0, arg0) ; tmp121 = (ats_sum_ptr_type)0 ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make () ; tmp123 = flname_make_30 (arg0, tmp122) ; tmp124 = (ats_sum_ptr_type)0 ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make (tmp123, tmp119, arg1, arg2, tmp124, tmp120, tmp121, tmp122) ; return (tmp118) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dvar_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 11210(line=505, offs=3) -- 11482(line=514, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; // ATSlocal_void (tmp127) ; ATSlocal (ats_int_type, tmp128) ; // ATSlocal_void (tmp129) ; ATSlocal (ats_int_type, tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab: tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name (arg1) ; /* tmp127 = */ atspre_fprint_string (arg0, tmp126) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_suffix (arg1) ; /* tmp129 = */ atspre_fprintf_exn (arg0, ATSstrcst("$%i"), tmp128) ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level (arg1) ; /* tmp125 = */ atspre_fprintf_exn (arg0, ATSstrcst("(level=%i)"), tmp130) ; return /* (tmp125) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 11533(line=517, offs=14) -- 11574(line=517, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_funlab (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_funlab: /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (stdout, arg0) ; return /* (tmp131) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_funlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 11598(line=519, offs=14) -- 11639(line=519, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_funlab (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_funlab: /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (stderr, arg0) ; return /* (tmp132) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_funlab] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_37 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; ATSlocal (ats_bool_type, tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_int_type, tmp141) ; __ats_lab_aux_37: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp137 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp139 = atspre_gt_int_int (arg1, 0) ; if (tmp139) { /* tmp138 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp140 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp136) ; tmp141 = atspre_add_int_int (arg1, 1) ; arg0 = tmp137 ; arg1 = tmp141 ; goto __ats_lab_aux_37 ; // tail call break ; } while (0) ; return /* (tmp135) */ ; } /* end of [aux_37] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_37_closure_type ; ats_void_type aux_37_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_37 (((aux_37_closure_type*)cloptr)->closure_env_0, ((aux_37_closure_type*)cloptr)->closure_env_1, ((aux_37_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_37_closure_init (aux_37_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_37_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_37_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_37_closure_type *p_clo = ATS_MALLOC(sizeof(aux_37_closure_type)) ; aux_37_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp134) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp134 = */ aux_37 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp134) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 11691(line=525, offs=3) -- 11788(line=531, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablst: /* tmp133 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab) ; return /* (tmp133) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 11872(line=537, offs=3) -- 12031(line=546, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablstopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablstopt: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp144 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablst (arg0, tmp143) ; /* tmp142 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: /* tmp142 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; } while (0) ; return /* (tmp142) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablstopt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 12248(line=560, offs=1) -- 12357(line=561, offs=73) */ ATSstaticdec() ats_int_type __ats_fun_39 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_int_type, tmp147) ; ATSlocal (ats_int_type, tmp148) ; __ats_lab___ats_fun_39: tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp (arg0) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp (arg1) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp147, tmp148) ; return (tmp146) ; } /* end of [__ats_fun_39] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_39_closure_type ; ats_int_type __ats_fun_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_39 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_39_closure_init (__ats_fun_39_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_39_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_39_closure_make () { __ats_fun_39_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_39_closure_type)) ; __ats_fun_39_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_listord.dats: 2205(line=76, offs=17) -- 2224(line=76, offs=36) */ ATSstaticdec() ats_ptr_type linset_make_nil_05351_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; __ats_lab_linset_make_nil_05351_: tmp151 = (ats_sum_ptr_type)0 ; return (tmp151) ; } /* end of [linset_make_nil_05351_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 12426(line=567, offs=18) -- 12453(line=567, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp150) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_nil: tmp150 = linset_make_nil_05351_ () ; return (tmp150) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_45 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab_loop_45: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp156 ; goto __ats_lab_loop_45 ; // tail call break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: break ; } while (0) ; return /* (tmp155) */ ; } /* end of [loop_45] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp154) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp154 = */ loop_45 (arg0) ; return /* (tmp154) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_listord.dats: 3275(line=126, offs=26) -- 3301(line=126, offs=52) */ ATSstaticdec() ats_void_type linset_free_05358_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp153) ; __ats_lab_linset_free_05358_ats_ptr_type: /* tmp153 = */ list_vt_free_01499_ats_ptr_type (arg0) ; return /* (tmp153) */ ; } /* end of [linset_free_05358_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 12483(line=570, offs=19) -- 12511(line=570, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp152) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_free: /* tmp152 = */ linset_free_05358_ats_ptr_type (arg0) ; return /* (tmp152) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_listord.dats: 2049(line=66, offs=17) -- 2077(line=66, offs=45) */ ATSstaticdec() ats_int_type compare_elt_elt_05350_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp163) ; __ats_lab_compare_elt_elt_05350_ats_ptr_type: tmp163 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp163) ; } /* end of [compare_elt_elt_05350_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_listord.dats: 2449(line=92, offs=5) -- 2990(line=112, offs=42) */ ATSstaticdec() ats_bool_type loop_48 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; ATSlocal (ats_bool_type, tmp164) ; ATSlocal (ats_bool_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; __ats_lab_loop_48: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp161 = &ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp162 = compare_elt_elt_05350_ats_ptr_type (env0, tmp160, env1) ; tmp164 = atspre_lt_int_int (tmp162, 0) ; if (tmp164) { tmp159 = ats_false_bool ; } else { tmp165 = atspre_gt_int_int (tmp162, 0) ; if (tmp165) { tmp166 = ats_ptrget_mac(ats_ptr_type, tmp161) ; arg0 = tmp166 ; goto __ats_lab_loop_48 ; // tail call } else { tmp159 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp159 = ats_false_bool ; break ; } while (0) ; return (tmp159) ; } /* end of [loop_48] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } loop_48_closure_type ; ats_bool_type loop_48_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return loop_48 (((loop_48_closure_type*)cloptr)->closure_env_0, ((loop_48_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type loop_48_closure_init (loop_48_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_48_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type loop_48_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { loop_48_closure_type *p_clo = ATS_MALLOC(sizeof(loop_48_closure_type)) ; loop_48_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_listord.dats: 2422(line=90, offs=3) -- 3026(line=116, offs=4) */ ATSstaticdec() ats_bool_type linset_is_member_05356_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp158) ; __ats_lab_linset_is_member_05356_ats_ptr_type: tmp158 = loop_48 (arg1, arg2, arg0) ; return (tmp158) ; } /* end of [linset_is_member_05356_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 12545(line=574, offs=3) -- 12592(line=574, offs=50) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_ismem (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp157) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_ismem: tmp157 = linset_is_member_05356_ats_ptr_type (arg0, arg1, statmp149) ; return (tmp157) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_ismem] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_listord.dats: 3380(line=133, offs=7) -- 4109(line=153, offs=10) */ ATSstaticdec() ats_bool_type ins_52 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_int_type, tmp174) ; ATSlocal (ats_bool_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_bool_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab_ins_52: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_7, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp173 = &ats_caselptrlab_mac(anairiats_sum_7, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp174 = compare_elt_elt_05350_ats_ptr_type (env0, tmp172, env1) ; tmp175 = atspre_lt_int_int (tmp174, 0) ; if (tmp175) { tmp176 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp176, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_7, tmp176, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp176 ; tmp171 = ats_false_bool ; } else { tmp177 = atspre_gt_int_int (tmp174, 0) ; if (tmp177) { arg0 = tmp173 ; goto __ats_lab_ins_52 ; // tail call } else { tmp171 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp179 = (ats_sum_ptr_type)0 ; tmp178 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp178, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_7, tmp178, atslab_1, tmp179) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp178 ; tmp171 = ats_false_bool ; break ; } while (0) ; return (tmp171) ; } /* end of [ins_52] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } ins_52_closure_type ; ats_bool_type ins_52_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0) { return ins_52 (((ins_52_closure_type*)cloptr)->closure_env_0, ((ins_52_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type ins_52_closure_init (ins_52_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&ins_52_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type ins_52_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { ins_52_closure_type *p_clo = ATS_MALLOC(sizeof(ins_52_closure_type)) ; ins_52_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_listord.dats: 3354(line=132, offs=3) -- 4171(line=157, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_05360_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp170) ; __ats_lab_linset_insert_05360_ats_ptr_type: tmp170 = ins_52 (arg1, arg2, arg0) ; return (tmp170) ; } /* end of [linset_insert_05360_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 12654(line=579, offs=3) -- 12748(line=583, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_bool_type, tmp169) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add: /* ats_ptr_type tmp168 ; */ tmp168 = arg0 ; tmp169 = linset_insert_05360_ats_ptr_type ((&tmp168), arg1, statmp149) ; tmp167 = tmp168 ; return (tmp167) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_57 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab_loop_57: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp185 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp186 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp187 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp187, atslab_0, tmp185) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp187 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp188 = &ats_caselptrlab_mac(anairiats_sum_7, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp186 ; arg1 = tmp188 ; goto __ats_lab_loop_57 ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp189 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp189 ; break ; } while (0) ; return /* (tmp184) */ ; } /* end of [loop_57] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp190) ; // ATSlocal_void (tmp191) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp190 ; */ /* tmp191 = */ loop_57 (arg0, (&tmp190)) ; tmp183 = tmp190 ; return (tmp183) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4725(line=167, offs=18) -- 4776(line=168, offs=44) */ ATSstaticdec() ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; __ats_lab_list_vt_copy_01498_ats_ptr_type: tmp182 = list_copy_01322_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp182) ; } /* end of [list_vt_copy_01498_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_listord.dats: 8836(line=360, offs=16) -- 8862(line=360, offs=42) */ ATSstaticdec() ats_ptr_type linset_listize_05375_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp181) ; __ats_lab_linset_listize_05375_ats_ptr_type: tmp181 = list_vt_copy_01498_ats_ptr_type (arg0) ; return (tmp181) ; } /* end of [linset_listize_05375_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 12810(line=586, offs=22) -- 12841(line=586, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp180) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize: tmp180 = linset_listize_05375_ats_ptr_type (arg0) ; return (tmp180) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_listord.dats: 8898(line=362, offs=34) -- 8907(line=362, offs=43) */ ATSstaticdec() ats_ptr_type linset_listize_free_05376_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp193) ; __ats_lab_linset_listize_free_05376_ats_ptr_type: tmp193 = arg0 ; return (tmp193) ; } /* end of [linset_listize_free_05376_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 12879(line=588, offs=27) -- 12915(line=588, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize_free: tmp192 = linset_listize_free_05376_ats_ptr_type (arg0) ; return (tmp192) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 12984(line=595, offs=5) -- 13220(line=608, offs=4) */ ATSstaticdec() ats_ptr_type loop_61 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab_loop_61: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp196 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp197 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add (arg1, tmp196) ; arg0 = tmp197 ; arg1 = tmp198 ; goto __ats_lab_loop_61 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp195 = arg1 ; break ; } while (0) ; return (tmp195) ; } /* end of [loop_61] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 12965(line=593, offs=15) -- 13284(line=612, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlablst2set (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp199) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlablst2set: tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_nil () ; tmp194 = loop_61 (arg0, tmp199) ; return (tmp194) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlablst2set] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funlab.dats: 13365(line=618, offs=3) -- 13541(line=624, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlabset_vt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlabset_vt: tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize (arg1) ; /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlablst (arg0, ats_castfn_mac(ats_ptr_type, tmp201)) ; /* tmp200 = */ list_vt_free_01499_ats_ptr_type (tmp201) ; return /* (tmp200) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlabset_vt] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_listord_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_listord_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_listord_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_listord_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp149, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp149 = __ats_fun_39_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_funlab_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_env_dats.c0000644000175000017500000024202313431250607022610 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ // extern ats_ptr_type patsopt_PATSHOME_get() ; extern ats_ptr_type patsopt_PATSCONTRIB_get() ; /* extern ats_ptr_type patsopt_PATSHOMELOCS_get() ; */ // /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_4 ; typedef struct { ats_int_type atslab_0 ; ats_uint_type atslab_1 ; anairiats_rec_4 atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_5 ; typedef struct { anairiats_rec_4 atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_d0ecl_loc ; ats_ptr_type atslab_d0ecl_node ; } anairiats_rec_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cinclude_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaload_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Crequire_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdynload_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPnone_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__ATSRELOCITM_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__ATSRELOCITM2_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_int_type, atspre_compare_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_ilte) (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_int_type, atspre_imax) (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_size) (ats_size_type, 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_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSHOME) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSCONTRIB) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_EXTERN_PREFIX) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_fxty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth0) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__fprint_symenv_map) (ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_addperv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_push_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitm) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitmlst) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__sasp__trans1_env_save_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__sasp__trans1_env_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__sasp__fxtyenv_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__sasp__e1xpenv_push_v = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_void_type the_e1xpenv_localjoin_6 () ; static ats_void_type the_e1xpenv_save_7 () ; static ats_void_type the_e1xpenv_restore_8 () ; static ats_void_type prerr_warning1_loc_02054_ (ats_ptr_type arg0) ; static ats_void_type the_fxtyenv_localjoin_18 () ; static ats_void_type the_fxtyenv_save_20 () ; static ats_void_type the_fxtyenv_restore_21 () ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type linmap_make_nil_03112_ () ; static ats_int_type compare_key_key_03111_ats_uint_type (ats_uint_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type search_33 (ats_uint_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type search_33_closure_make (ats_uint_type env0, ats_clo_ref_type env1) ; static ats_ptr_type search_33_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type linmap_search_ref_03118_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type linmap_search_03117_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; static ats_int_type avltree_height_02160_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_02213_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_02188_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_36 (ats_uint_type env0, ats_clo_ref_type env1, ats_ref_type arg0, anairiats_rec_4 arg1, ats_ref_type arg2) ; static ats_clo_ptr_type insert_36_closure_make (ats_uint_type env0, ats_clo_ref_type env1) ; static ats_bool_type insert_36_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, anairiats_rec_4 arg1, ats_ref_type arg2) ; static ats_bool_type linmap_insert_03120_ats_uint_type_2canairiats_rec_4 (ats_ref_type arg0, ats_uint_type arg1, anairiats_rec_4 arg2, ats_clo_ref_type arg3, ats_ref_type arg4) ; static ats_void_type auxpr_41 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_46 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_reverse_01436_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp2) ; // ATSstatic_void (statmp3) ; // ATSstatic_void (statmp4) ; ATSstatic (ats_ptr_type, statmp30) ; ATSstatic (ats_ptr_type, statmp31) ; // ATSstatic_void (statmp32) ; // ATSstatic_void (statmp33) ; ATSstatic (ats_ptr_type, statmp59) ; ATSstatic (ats_ptr_type, statmp62) ; ATSstatic (ats_ptr_type, statmp226) ; ATSstatic (ats_ptr_type, statmp227) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 1555(line=43, offs=28) -- 1586(line=43, offs=59) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans1_staexp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 2370(line=91, offs=3) -- 2452(line=95, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_add: /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert (statmp2, arg0, arg1) ; return /* (tmp5) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_add] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 2514(line=99, offs=3) -- 2606(line=103, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_addperv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_addperv: /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_insert (statmp2, arg0, arg1) ; return /* (tmp6) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_addperv] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 2667(line=106, offs=18) -- 2852(line=116, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search (statmp2, arg0) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp8 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp7 = tmp8 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp8 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search (statmp2, arg0) ; break ; } while (0) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 2909(line=120, offs=1) -- 3026(line=126, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_pop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_pop: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop (statmp2) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 3094(line=130, offs=3) -- 3204(line=135, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_push_nil () { /* local vardec */ // ATSlocal_void (tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_push_nil: /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil (statmp2) ; return /* (tmp10) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_push_nil] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 3243(line=138, offs=1) -- 3456(line=148, offs=2) */ ATSstaticdec() ats_void_type the_e1xpenv_localjoin_6 () { /* local vardec */ // ATSlocal_void (tmp11) ; __ats_lab_the_e1xpenv_localjoin_6: /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin (statmp2) ; return /* (tmp11) */ ; } /* end of [the_e1xpenv_localjoin_6] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 3528(line=153, offs=1) -- 3659(line=159, offs=4) */ ATSstaticdec() ats_void_type the_e1xpenv_save_7 () { /* local vardec */ // ATSlocal_void (tmp12) ; __ats_lab_the_e1xpenv_save_7: /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur (statmp2) ; return /* (tmp12) */ ; } /* end of [the_e1xpenv_save_7] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 3694(line=162, offs=1) -- 3888(line=171, offs=2) */ ATSstaticdec() ats_void_type the_e1xpenv_restore_8 () { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab_the_e1xpenv_restore_8: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore (statmp2) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (tmp14) ; return /* (tmp13) */ ; } /* end of [the_e1xpenv_restore_8] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2747(line=110, offs=20) -- 2808(line=113, offs=2) */ ATSstaticdec() ats_void_type prerr_warning1_loc_02054_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab_prerr_warning1_loc_02054_: /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp21 = */ atspre_prerr_string (ATSstrcst(": warning(1)")) ; return /* (tmp21) */ ; } /* end of [prerr_warning1_loc_02054_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 3998(line=178, offs=23) -- 4585(line=205, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_get: tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_EXTERN_PREFIX) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp16 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_2_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_1, tmp16, atslab_0) ; ATS_FREE(tmp16) ; tmp18 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp17), atslab_e1xp_node) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp18)->tag != 7) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp15 = atspre_stropt_none ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp18)->tag != 5) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_3, tmp18, atslab_0) ; tmp15 = ats_castfn_mac(ats_ptr_type, tmp19) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp17), atslab_e1xp_loc) ; /* tmp20 = */ prerr_warning1_loc_02054_ (tmp23) ; /* tmp24 = */ atspre_prerr_string (ATSstrcst(": a string definition is required for [ATS_EXTERN_PREFIX].")) ; /* tmp25 = */ atspre_prerr_newline () ; tmp15 = atspre_stropt_none ; break ; } while (0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (tmp16 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp15 = atspre_stropt_none ; break ; } while (0) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_get] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 4653(line=208, offs=23) -- 4803(line=213, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set: tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, arg0) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_EXTERN_PREFIX, tmp27) ; return /* (tmp26) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 4876(line=216, offs=28) -- 5014(line=221, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set_none () { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set_none: tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; /* tmp28 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_EXTERN_PREFIX, tmp29) ; return /* (tmp28) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set_none] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 5327(line=237, offs=3) -- 5409(line=240, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_add: /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert (statmp31, arg0, arg1) ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_add] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 5466(line=243, offs=18) -- 5642(line=250, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search (statmp31, arg0) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (tmp36 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp35 = tmp36 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (tmp36 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search (statmp31, arg0) ; break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 5723(line=255, offs=20) -- 5862(line=258, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_the_fxtyenv (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_the_fxtyenv: /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__fprint_symenv_map (arg0, statmp31, &_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_fxty) ; return /* (tmp37) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_the_fxtyenv] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 5942(line=264, offs=1) -- 6059(line=270, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pop: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop (statmp31) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 6127(line=274, offs=3) -- 6237(line=279, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_push_nil () { /* local vardec */ // ATSlocal_void (tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_push_nil: /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil (statmp31) ; return /* (tmp39) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_push_nil] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 6276(line=282, offs=1) -- 6489(line=292, offs=2) */ ATSstaticdec() ats_void_type the_fxtyenv_localjoin_18 () { /* local vardec */ // ATSlocal_void (tmp40) ; __ats_lab_the_fxtyenv_localjoin_18: /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin (statmp31) ; return /* (tmp40) */ ; } /* end of [the_fxtyenv_localjoin_18] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 6586(line=297, offs=31) -- 6669(line=301, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pervasive_joinwth (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pervasive_joinwth: /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth0 (statmp31, arg0) ; return /* (tmp41) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pervasive_joinwth] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 6770(line=308, offs=1) -- 6909(line=314, offs=4) */ ATSstaticdec() ats_void_type the_fxtyenv_save_20 () { /* local vardec */ // ATSlocal_void (tmp42) ; __ats_lab_the_fxtyenv_save_20: /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur (statmp31) ; return /* (tmp42) */ ; } /* end of [the_fxtyenv_save_20] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 6944(line=316, offs=5) -- 7137(line=324, offs=2) */ ATSstaticdec() ats_void_type the_fxtyenv_restore_21 () { /* local vardec */ // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab_the_fxtyenv_restore_21: tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore (statmp31) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (tmp44) ; return /* (tmp43) */ ; } /* end of [the_fxtyenv_restore_21] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 8204(line=384, offs=3) -- 8424(line=390, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop () { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_pop () ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (tmp46) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pop () ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (tmp48) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 8489(line=394, offs=3) -- 8641(line=398, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push () { /* local vardec */ // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push: /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_push_nil () ; /* tmp51 = ats_selsin_mac(tmp50, atslab_1) */ ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_push_nil () ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 8711(line=402, offs=3) -- 8951(line=407, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_localjoin () { /* local vardec */ // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_localjoin: /* tmp53 = */ the_e1xpenv_localjoin_6 () ; /* tmp52 = */ the_fxtyenv_localjoin_18 () ; return /* (tmp52) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_localjoin] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 9156(line=421, offs=21) -- 9309(line=427, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_save () { /* local vardec */ // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_save: /* tmp55 = */ the_e1xpenv_save_7 () ; /* tmp56 = ats_selsin_mac(tmp55, atslab_1) */ ; /* tmp54 = */ the_fxtyenv_save_20 () ; return /* (tmp54) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_save] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 9378(line=431, offs=3) -- 9511(line=434, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_restore () { /* local vardec */ // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_restore: /* tmp58 = */ the_e1xpenv_restore_8 () ; /* tmp57 = */ the_fxtyenv_restore_21 () ; return /* (tmp57) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_restore] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp61 ; */ tmp61 = arg0 ; tmp60 = atspre_ref_make_elt_tsz ((&tmp61), sizeof(ats_ptr_type)) ; return (tmp60) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3005(line=103, offs=29) -- 3014(line=103, offs=38) */ ATSstaticdec() ats_ptr_type linmap_make_nil_03112_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; __ats_lab_linmap_make_nil_03112_: tmp63 = (ats_sum_ptr_type)0 ; return (tmp63) ; } /* end of [linmap_make_nil_03112_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 9966(line=453, offs=36) -- 9996(line=453, offs=66) */ ATSstaticdec() ats_int_type compare_key_key_03111_ats_uint_type (ats_uint_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp64) ; __ats_lab_compare_key_key_03111_ats_uint_type: tmp64 = atspre_compare_uint_uint (arg0, arg1) ; return (tmp64) ; } /* end of [compare_key_key_03111_ats_uint_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4545(line=168, offs=7) -- 5110(line=188, offs=6) */ ATSstaticdec() ats_ptr_type search_33 (ats_uint_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_uint_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab_search_33: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_9_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp76 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp77 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; tmp78 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_4) ; tmp79 = compare_key_key_03111_ats_uint_type (env0, tmp75, env1) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp80 = atspre_lt_int_int (tmp79, 0) ; if (!tmp80) { goto __ats_lab_11_1 ; } tmp81 = ats_ptrget_mac(ats_ptr_type, tmp77) ; arg0 = tmp81 ; goto __ats_lab_search_33 ; // tail call break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp82 = atspre_gt_int_int (tmp79, 0) ; if (!tmp82) { goto __ats_lab_12_1 ; } tmp83 = ats_ptrget_mac(ats_ptr_type, tmp78) ; arg0 = tmp83 ; goto __ats_lab_search_33 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp74 = tmp76 ; break ; } while (0) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp74 = atspre_null_ptr ; break ; } while (0) ; return (tmp74) ; } /* end of [search_33] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_uint_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } search_33_closure_type ; ats_ptr_type search_33_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return search_33 (((search_33_closure_type*)cloptr)->closure_env_0, ((search_33_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type search_33_closure_init (search_33_closure_type *p_clo, ats_uint_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&search_33_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type search_33_closure_make (ats_uint_type env0, ats_clo_ref_type env1) { search_33_closure_type *p_clo = ATS_MALLOC(sizeof(search_33_closure_type)) ; search_33_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4505(line=167, offs=3) -- 5131(line=189, offs=2) */ ATSstaticdec() ats_ptr_type linmap_search_ref_03118_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp73) ; __ats_lab_linmap_search_ref_03118_ats_uint_type_2canairiats_rec_4: tmp73 = search_33 (arg1, arg2, arg0) ; return (tmp73) ; } /* end of [linmap_search_ref_03118_ats_uint_type_2canairiats_rec_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4021(line=145, offs=3) -- 4437(line=162, offs=4) */ ATSstaticdec() ats_bool_type linmap_search_03117_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_bool_type, tmp84) ; ATSlocal (anairiats_rec_4, tmp85) ; __ats_lab_linmap_search_03117_ats_uint_type_2canairiats_rec_4: tmp72 = linmap_search_ref_03118_ats_uint_type_2canairiats_rec_4 (arg0, arg1, arg2) ; tmp84 = atspre_pgt (tmp72, atspre_null_ptr) ; if (tmp84) { tmp85 = ats_ptrget_mac(anairiats_rec_4, tmp72) ; ats_ptrget_mac(anairiats_rec_4, arg3) = tmp85 ; tmp71 = ats_true_bool ; } else { tmp71 = ats_false_bool ; } /* end of [if] */ return (tmp71) ; } /* end of [linmap_search_03117_ats_uint_type_2canairiats_rec_4] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 10054(line=459, offs=3) -- 10489(line=487, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_search (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_uint_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (anairiats_rec_4, tmp69) ; ATSlocal (ats_bool_type, tmp70) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_search: tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname (arg0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_stamp (tmp66) ; tmp68 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp59), atslab_1) ; /* anairiats_rec_4 tmp69 ; */ tmp86 = ats_ptrget_mac(ats_ptr_type, tmp68) ; tmp70 = linmap_search_03117_ats_uint_type_2canairiats_rec_4 (tmp86, tmp67, ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), (&tmp69)) ; if (tmp70) { tmp65 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp65, atslab_0, tmp69) ; } else { tmp65 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_search] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3769(line=134, offs=24) -- 3876(line=135, offs=69) */ ATSstaticdec() ats_int_type avltree_height_02160_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_int_type, tmp107) ; __ats_lab_avltree_height_02160_ats_uint_type_2canairiats_rec_4: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp106 = tmp107 ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp106 = 0 ; break ; } while (0) ; return (tmp106) ; } /* end of [avltree_height_02160_ats_uint_type_2canairiats_rec_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 7405(line=276, offs=32) -- 8902(line=325, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_02213_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_int_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_int_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_bool_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_int_type, tmp129) ; ATSlocal (ats_int_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_int_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_int_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_int_type, tmp139) ; ATSlocal (ats_int_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_int_type, tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab_avltree_rrotate_02213_ats_uint_type_2canairiats_rec_4: tmp117 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp117 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp118 = &ats_caselptrlab_mac(anairiats_sum_5, tmp117, atslab_0) ; tmp119 = &ats_caselptrlab_mac(anairiats_sum_5, tmp117, atslab_3) ; tmp120 = &ats_caselptrlab_mac(anairiats_sum_5, tmp117, atslab_4) ; tmp122 = ats_ptrget_mac(ats_ptr_type, tmp119) ; tmp121 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp122) ; tmp124 = ats_ptrget_mac(ats_ptr_type, tmp120) ; tmp123 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp124) ; tmp126 = atspre_iadd (tmp121, 0) ; tmp125 = atspre_igte (tmp126, tmp123) ; if (tmp125) { tmp127 = atspre_iadd (tmp123, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp127 ; tmp128 = ats_ptrget_mac(ats_ptr_type, tmp120) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp128 ; tmp130 = atspre_imax (tmp121, tmp127) ; tmp129 = atspre_iadd (1, tmp130) ; ats_ptrget_mac(ats_int_type, tmp118) = tmp129 ; ats_ptrget_mac(ats_ptr_type, tmp120) = arg5 ; tmp116 = tmp117 ; } else { tmp131 = ats_ptrget_mac(ats_ptr_type, tmp120) ; // if (tmp131 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp132 = &ats_caselptrlab_mac(anairiats_sum_5, tmp131, atslab_0) ; tmp133 = &ats_caselptrlab_mac(anairiats_sum_5, tmp131, atslab_3) ; tmp134 = &ats_caselptrlab_mac(anairiats_sum_5, tmp131, atslab_4) ; tmp136 = ats_ptrget_mac(ats_ptr_type, tmp133) ; tmp135 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp136) ; tmp138 = ats_ptrget_mac(ats_ptr_type, tmp134) ; tmp137 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp138) ; tmp140 = atspre_imax (tmp137, arg3) ; tmp139 = atspre_iadd (1, tmp140) ; ats_ptrget_mac(ats_int_type, arg0) = tmp139 ; tmp141 = ats_ptrget_mac(ats_ptr_type, tmp134) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp141 ; tmp143 = atspre_imax (tmp121, tmp135) ; tmp142 = atspre_iadd (1, tmp143) ; ats_ptrget_mac(ats_int_type, tmp118) = tmp142 ; tmp144 = ats_ptrget_mac(ats_ptr_type, tmp133) ; ats_ptrget_mac(ats_ptr_type, tmp120) = tmp144 ; ats_ptrget_mac(ats_int_type, tmp132) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp133) = tmp117 ; ats_ptrget_mac(ats_ptr_type, tmp134) = arg5 ; tmp116 = tmp131 ; } /* end of [if] */ return (tmp116) ; } /* end of [avltree_rrotate_02213_ats_uint_type_2canairiats_rec_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5694(line=219, offs=32) -- 7221(line=268, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_02188_ats_uint_type_2canairiats_rec_4 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_int_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_int_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_bool_type, tmp165) ; ATSlocal (ats_int_type, tmp166) ; ATSlocal (ats_int_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_int_type, tmp169) ; ATSlocal (ats_int_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_int_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_int_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_int_type, tmp179) ; ATSlocal (ats_int_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_int_type, tmp182) ; ATSlocal (ats_int_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; __ats_lab_avltree_lrotate_02188_ats_uint_type_2canairiats_rec_4: tmp157 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp157 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp158 = &ats_caselptrlab_mac(anairiats_sum_5, tmp157, atslab_0) ; tmp159 = &ats_caselptrlab_mac(anairiats_sum_5, tmp157, atslab_3) ; tmp160 = &ats_caselptrlab_mac(anairiats_sum_5, tmp157, atslab_4) ; tmp162 = ats_ptrget_mac(ats_ptr_type, tmp159) ; tmp161 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp162) ; tmp164 = ats_ptrget_mac(ats_ptr_type, tmp160) ; tmp163 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp164) ; tmp166 = atspre_iadd (tmp163, 0) ; tmp165 = atspre_ilte (tmp161, tmp166) ; if (tmp165) { tmp167 = atspre_iadd (tmp161, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp167 ; tmp168 = ats_ptrget_mac(ats_ptr_type, tmp159) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp168 ; tmp170 = atspre_imax (tmp167, tmp163) ; tmp169 = atspre_iadd (1, tmp170) ; ats_ptrget_mac(ats_int_type, tmp158) = tmp169 ; ats_ptrget_mac(ats_ptr_type, tmp159) = arg5 ; tmp156 = tmp157 ; } else { tmp171 = ats_ptrget_mac(ats_ptr_type, tmp159) ; // if (tmp171 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp172 = &ats_caselptrlab_mac(anairiats_sum_5, tmp171, atslab_0) ; tmp173 = &ats_caselptrlab_mac(anairiats_sum_5, tmp171, atslab_3) ; tmp174 = &ats_caselptrlab_mac(anairiats_sum_5, tmp171, atslab_4) ; tmp176 = ats_ptrget_mac(ats_ptr_type, tmp173) ; tmp175 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp176) ; tmp178 = ats_ptrget_mac(ats_ptr_type, tmp174) ; tmp177 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp178) ; tmp180 = atspre_imax (arg1, tmp175) ; tmp179 = atspre_iadd (1, tmp180) ; ats_ptrget_mac(ats_int_type, arg0) = tmp179 ; tmp181 = ats_ptrget_mac(ats_ptr_type, tmp173) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp181 ; tmp183 = atspre_imax (tmp177, tmp163) ; tmp182 = atspre_iadd (1, tmp183) ; ats_ptrget_mac(ats_int_type, tmp158) = tmp182 ; tmp184 = ats_ptrget_mac(ats_ptr_type, tmp174) ; ats_ptrget_mac(ats_ptr_type, tmp159) = tmp184 ; ats_ptrget_mac(ats_int_type, tmp172) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp173) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp174) = tmp157 ; tmp156 = tmp171 ; } /* end of [if] */ return (tmp156) ; } /* end of [avltree_lrotate_02188_ats_uint_type_2canairiats_rec_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 9023(line=333, offs=5) -- 11023(line=394, offs=4) */ ATSstaticdec() ats_bool_type insert_36 (ats_uint_type env0, ats_clo_ref_type env1, ats_ref_type arg0, anairiats_rec_4 arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_uint_type, tmp102) ; ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_bool_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_bool_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; ATSlocal (ats_int_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_bool_type, tmp146) ; ATSlocal (ats_int_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_bool_type, tmp151) ; ATSlocal (ats_int_type, tmp152) ; ATSlocal (ats_int_type, tmp153) ; ATSlocal (ats_int_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (anairiats_rec_4, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; __ats_lab_insert_36: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_14_1: tmp96 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp97 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp98 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp99 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp100 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp102 = ats_ptrget_mac(ats_uint_type, tmp97) ; tmp101 = compare_key_key_03111_ats_uint_type (env0, tmp102, env1) ; tmp103 = atspre_lt_int_int (tmp101, 0) ; if (tmp103) { tmp104 = insert_36 (env0, env1, tmp99, arg1, arg2) ; tmp108 = ats_ptrget_mac(ats_ptr_type, tmp99) ; tmp105 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp108) ; tmp110 = ats_ptrget_mac(ats_ptr_type, tmp100) ; tmp109 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp110) ; tmp112 = atspre_isub (tmp105, tmp109) ; tmp111 = atspre_ilte (tmp112, 1) ; if (tmp111) { tmp114 = atspre_imax (tmp105, tmp109) ; tmp113 = atspre_iadd (1, tmp114) ; ats_ptrget_mac(ats_int_type, tmp96) = tmp113 ; tmp95 = tmp104 ; } else { tmp115 = avltree_rrotate_02213_ats_uint_type_2canairiats_rec_4 (tmp96, tmp105, tmp99, tmp109, tmp100, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp115 ; tmp95 = tmp104 ; } /* end of [if] */ } else { tmp145 = atspre_gt_int_int (tmp101, 0) ; if (tmp145) { tmp146 = insert_36 (env0, env1, tmp100, arg1, arg2) ; tmp148 = ats_ptrget_mac(ats_ptr_type, tmp99) ; tmp147 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp148) ; tmp150 = ats_ptrget_mac(ats_ptr_type, tmp100) ; tmp149 = avltree_height_02160_ats_uint_type_2canairiats_rec_4 (tmp150) ; tmp152 = atspre_isub (tmp149, tmp147) ; tmp151 = atspre_ilte (tmp152, 1) ; if (tmp151) { tmp154 = atspre_imax (tmp147, tmp149) ; tmp153 = atspre_iadd (1, tmp154) ; ats_ptrget_mac(ats_int_type, tmp96) = tmp153 ; tmp95 = tmp146 ; } else { tmp155 = avltree_lrotate_02188_ats_uint_type_2canairiats_rec_4 (tmp96, tmp147, tmp99, tmp149, tmp100, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp155 ; tmp95 = tmp146 ; } /* end of [if] */ } else { tmp185 = ats_ptrget_mac(anairiats_rec_4, tmp98) ; ats_ptrget_mac(anairiats_rec_4, arg2) = tmp185 ; ats_ptrget_mac(anairiats_rec_4, tmp98) = arg1 ; tmp95 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp187 = (ats_sum_ptr_type)0 ; tmp188 = (ats_sum_ptr_type)0 ; tmp186 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_3, tmp187) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_4, tmp188) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp186 ; tmp95 = ats_false_bool ; break ; } while (0) ; return (tmp95) ; } /* end of [insert_36] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_uint_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_36_closure_type ; ats_bool_type insert_36_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, anairiats_rec_4 arg1, ats_ref_type arg2) { return insert_36 (((insert_36_closure_type*)cloptr)->closure_env_0, ((insert_36_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type insert_36_closure_init (insert_36_closure_type *p_clo, ats_uint_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_36_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_36_closure_make (ats_uint_type env0, ats_clo_ref_type env1) { insert_36_closure_type *p_clo = ATS_MALLOC(sizeof(insert_36_closure_type)) ; insert_36_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 8988(line=331, offs=3) -- 11078(line=400, offs=4) */ ATSstaticdec() ats_bool_type linmap_insert_03120_ats_uint_type_2canairiats_rec_4 (ats_ref_type arg0, ats_uint_type arg1, anairiats_rec_4 arg2, ats_clo_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp94) ; __ats_lab_linmap_insert_03120_ats_uint_type_2canairiats_rec_4: tmp94 = insert_36 (arg1, arg3, arg0, arg2, arg4) ; return (tmp94) ; } /* end of [linmap_insert_03120_ats_uint_type_2canairiats_rec_4] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 10632(line=497, offs=3) -- 10980(line=512, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_insert (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_uint_type, tmp89) ; ATSlocal (anairiats_rec_4, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (anairiats_rec_4, tmp92) ; ATSlocal (ats_bool_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_insert: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname (arg0) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_stamp (tmp88) ; /* anairiats_rec_4 tmp90 ; */ tmp90.atslab_0 = arg1 ; tmp90.atslab_1 = arg2 ; tmp91 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp59), atslab_1) ; /* anairiats_rec_4 tmp92 ; */ tmp93 = linmap_insert_03120_ats_uint_type_2canairiats_rec_4 (tmp91, tmp89, tmp90, ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), (&tmp92)) ; return /* (tmp87) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_insert] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 11159(line=527, offs=1) -- 11486(line=540, offs=2) */ ATSstaticdec() ats_void_type auxpr_41 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; __ats_lab_auxpr_41: tmp191 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_d0ecl_node) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp191)->tag != 31) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp190 = */ atspre_fprint_string (arg0, ATSstrcst("include")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp191)->tag != 32) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp190 = */ atspre_fprint_string (arg0, ATSstrcst("staload")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp191)->tag != 35) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp190 = */ atspre_fprint_string (arg0, ATSstrcst("require")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp191)->tag != 36) { goto __ats_lab_22_0 ; } __ats_lab_21_1: /* tmp190 = */ atspre_fprint_string (arg0, ATSstrcst("dynload")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: /* tmp190 = */ atspre_fprint_string (arg0, ATSstrcst("*ERROR*")) ; break ; } while (0) ; return /* (tmp190) */ ; } /* end of [auxpr_41] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 11089(line=520, offs=3) -- 12428(line=581, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitm (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp189) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; // ATSlocal_void (tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; // ATSlocal_void (tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitm: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; /* tmp194 = */ atspre_fprint_string (arg0, ATSstrcst("{\n")) ; /* tmp195 = */ atspre_fprint_string (arg0, ATSstrcst("\"atsreloc_kind\": ")) ; /* tmp196 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp197 = */ auxpr_41 (arg0, tmp192) ; /* tmp198 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp199 = */ atspre_fprint_string (arg0, ATSstrcst("\n,\n")) ; /* tmp200 = */ atspre_fprint_string (arg0, ATSstrcst("\"atsreloc_given\": ")) ; /* tmp201 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp202 = */ atspre_fprint_string (arg0, tmp193) ; /* tmp203 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp189 = */ atspre_fprint_string (arg0, ATSstrcst("\n}\n")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp205 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp206 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_2) ; /* tmp207 = */ atspre_fprint_string (arg0, ATSstrcst("{\n")) ; /* tmp208 = */ atspre_fprint_string (arg0, ATSstrcst("\"atsreloc_kind\": ")) ; /* tmp209 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp210 = */ auxpr_41 (arg0, tmp204) ; /* tmp211 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp212 = */ atspre_fprint_string (arg0, ATSstrcst("\n,\n")) ; /* tmp213 = */ atspre_fprint_string (arg0, ATSstrcst("\"atsreloc_target\": ")) ; /* tmp214 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp215 = */ atspre_fprint_string (arg0, tmp206) ; /* tmp216 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp217 = */ atspre_fprint_string (arg0, ATSstrcst("\n,\n")) ; /* tmp218 = */ atspre_fprint_string (arg0, ATSstrcst("\"atsreloc_source\": ")) ; /* tmp219 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp220 = */ atspre_fprint_string (arg0, tmp205) ; /* tmp221 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp189 = */ atspre_fprint_string (arg0, ATSstrcst("\n}\n")) ; break ; } while (0) ; return /* (tmp189) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitm] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 12495(line=585, offs=3) -- 12674(line=594, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitmlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; // ATSlocal_void (tmp225) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitmlst: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp223 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp224 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; /* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitm (arg0, tmp223) ; arg0 = arg0 ; arg1 = tmp224 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitmlst ; // tail call break ; } while (0) ; return /* (tmp222) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitmlst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61997(line=2223, offs=7) -- 62162(line=2225, offs=74) */ ATSstaticdec() ats_ptr_type loop_46 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; __ats_lab_loop_46: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp236 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp237 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp237, atslab_0, tmp235) ; ats_selptrset_mac(anairiats_sum_10, tmp237, atslab_1, arg1) ; arg0 = tmp236 ; arg1 = tmp237 ; goto __ats_lab_loop_46 ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp234 = arg1 ; break ; } while (0) ; return (tmp234) ; } /* end of [loop_46] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61976(line=2222, offs=25) -- 62297(line=2231, offs=4) */ ATSstaticdec() ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; __ats_lab_list_reverse_append2_vt_01435_ats_ptr_type: tmp233 = loop_46 (arg0, arg1) ; return (tmp233) ; } /* end of [list_reverse_append2_vt_01435_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 62382(line=2236, offs=14) -- 62438(line=2237, offs=50) */ ATSstaticdec() ats_ptr_type list_reverse_01436_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp238) ; __ats_lab_list_reverse_01436_ats_ptr_type: tmp238 = (ats_sum_ptr_type)0 ; tmp232 = list_reverse_append2_vt_01435_ats_ptr_type (arg0, tmp238) ; return (tmp232) ; } /* end of [list_reverse_01436_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 12848(line=606, offs=24) -- 12959(line=611, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsrelocitmlst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsrelocitmlst_get: tmp229 = ats_ptrget_mac(ats_ptr_type, statmp226) ; tmp230 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, statmp226) = tmp230 ; tmp231 = list_reverse_01436_ats_ptr_type (tmp229) ; tmp228 = ats_castfn_mac(ats_ptr_type, tmp231) ; return (tmp228) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsrelocitmlst_get] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 13042(line=617, offs=3) -- 13336(line=636, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert: tmp240 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d0ecl_loc) ; tmp241 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp241)->tag = 0 ; ats_selptrset_mac(anairiats_sum_8, tmp241, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp241, atslab_1, arg1) ; tmp243 = ats_ptrget_mac(ats_ptr_type, statmp226) ; tmp242 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp242, atslab_0, tmp241) ; ats_selptrset_mac(anairiats_sum_10, tmp242, atslab_1, tmp243) ; ats_ptrget_mac(ats_ptr_type, statmp226) = tmp242 ; return /* (tmp239) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 13403(line=640, offs=3) -- 13920(line=669, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert2: tmp245 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d0ecl_loc) ; tmp246 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp246)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp246, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp246, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp246, atslab_2, arg2) ; tmp248 = ats_ptrget_mac(ats_ptr_type, statmp226) ; tmp247 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp247, atslab_0, tmp246) ; ats_selptrset_mac(anairiats_sum_10, tmp247, atslab_1, tmp248) ; ats_ptrget_mac(ats_ptr_type, statmp226) = tmp247 ; return /* (tmp244) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert2] */ /* // /tmp/ATS-Postiats/src/pats_trans1_env.dats: 14246(line=694, offs=3) -- 14930(line=729, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_initialize () { /* local vardec */ // ATSlocal_void (tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_bool_type, tmp251) ; // ATSlocal_void (tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_bool_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_initialize: tmp250 = patsopt_PATSHOME_get () ; tmp251 = atspre_stropt_is_some (tmp250) ; if (tmp251) { tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, ats_castfn_mac(ats_ptr_type, tmp250)) ; /* tmp252 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_addperv (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSHOME, tmp253) ; } else { /* empty */ } /* end of [if] */ tmp254 = patsopt_PATSCONTRIB_get () ; tmp255 = atspre_stropt_is_some (tmp254) ; if (tmp255) { tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, ats_castfn_mac(ats_ptr_type, tmp254)) ; /* tmp249 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_addperv (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSCONTRIB, tmp256) ; } else { /* empty */ } /* end of [if] */ return /* (tmp249) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_initialize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp2, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp30, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp31, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp59, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp62, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp226, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp227, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil () ; statmp2 = ats_selsin_mac(statmp1, atslab_1) ; /* statmp3 = */ atspre_vbox_make_view_ptr (statmp2) ; /* statmp4 = ats_selsin_mac(statmp3, atslab_1) */ ; statmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil () ; statmp31 = ats_selsin_mac(statmp30, atslab_1) ; /* statmp32 = */ atspre_vbox_make_view_ptr (statmp31) ; /* statmp33 = ats_selsin_mac(statmp32, atslab_1) */ ; statmp62 = linmap_make_nil_03112_ () ; statmp59 = ref_01088_ats_ptr_type (statmp62) ; statmp227 = (ats_sum_ptr_type)0 ; statmp226 = ref_01088_ats_ptr_type (statmp227) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_env_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_main_dats.c0000644000175000017500000074454513431250607021474 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 "libc/CATS/stdio.cats" #include "libc/sys/CATS/types.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ #line 433 "pats_main.dats" // extern void patsopt_PATSHOME_set() ; extern char *patsopt_PATSHOME_get() ; // extern void patsopt_PATSCONTRIB_set() ; // extern void patsopt_PATSHOMELOCS_set() ; // extern void patsopt_PATSRELOCROOT_set() ; // /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_comarg0 ; ats_ptr_type atslab_ATSHOME ; ats_ptr_type atslab_waitknd ; ats_int_type atslab_ninpfile ; ats_int_type atslab_preludeflag ; ats_ptr_type atslab_infil ; ats_ptr_type atslab_outmode ; ats_ptr_type atslab_outchan ; ats_int_type atslab_depgen ; ats_int_type atslab_taggen ; ats_int_type atslab_atsreloc ; ats_int_type atslab_codegenflag ; ats_int_type atslab_jsonizeflag ; ats_int_type atslab_typecheckflag ; ats_int_type atslab_cnstrsolveflag ; ats_int_type atslab_olevel ; ats_int_type atslab_nerror ; } anairiats_rec_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; /* 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_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__COMARG_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKdefine_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinclude_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANref_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANptr_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_none) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set) (ats_int_type) ; ATSextern_fun(ats_int_type, patsopt_debug_flag_get) () ; ATSextern_fun(ats_void_type, patsopt_debug_flag_set) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarglst_parse) (ats_int_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_DATS_flag) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_IATS_flag) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__DATS_extract) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__IATS_extract) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_DATS_def) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_IATS_dir) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_PATSRELOCROOT) () ; ATSextern_fun(ats_ptr_type, patsopt_filename_dirbase) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_stdin) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush) (ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_the_prepathlst_push) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_stdin_toplevel) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel) (ats_int_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givenames_toplocal2) (ats_int_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__depgen_eval) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_entlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__taggen_proc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__fprint_entlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__trans1_finalize) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set_none) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pervasive_joinwth) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitmlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsrelocitmlst_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_initialize) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__stacst2_initialize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr_errck) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pervasive_joinwth1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_initialize) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__d2eclist_jsonize_out) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_export) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer_errck) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_main) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_patsopt_version) (ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_the_fixity_load) (ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_pervasive_load) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_the_prelude_load) (ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_the_prelude_load_if) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_patsopt_main) (ats_int_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKdefine_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinclude_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANref_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANptr_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type patsopt_usage_0 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type waitknd_get_stadyn_2 (ats_ptr_type arg0) ; static ats_ptr_type outchan_get_filr_3 (ats_ptr_type arg0) ; static ats_ptr_type auxmain_4 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type outchan_make_path_5 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type cmdstate_set_outchan_6 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type isinpwait_7 (anairiats_rec_3 arg0) ; static ats_bool_type isoutwait_8 (anairiats_rec_3 arg0) ; static ats_bool_type isdatswait_9 (anairiats_rec_3 arg0) ; static ats_bool_type isiatswait_10 (anairiats_rec_3 arg0) ; static ats_ptr_type theOutFilename_get_11 () ; static ats_void_type theOutFilename_set_12 (ats_ptr_type arg0) ; static ats_void_type auxerr_28 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxexn_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static anairiats_rec_4 loop_31 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type revapp_35 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_37 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static anairiats_rec_4 loop2_32 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static anairiats_rec_4 parse_from_given_arglst_toplevel_30 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type process_nil_38 (ats_ref_type arg0) ; static ats_void_type process_cmdline_39 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type process_cmdline2_40 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type process_cmdline2_comarg1_41 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type process_cmdline2_comarg2_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (ats_int_type arg0, ...) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp90) ; // ATSstatic_void (statmp91) ; // ATSstatic_void (statmp92) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 9891(line=449, offs=1) -- 12618(line=512, offs=4) */ ATSstaticdec() ats_void_type patsopt_usage_0 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; __ats_lab_patsopt_usage_0: #line 454 "pats_main.dats" #line 454 "pats_main.dats" tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; #line 458 "pats_main.dats" /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("Usage: ")) ; #line 458 "pats_main.dats" /* tmp3 = */ atspre_fprint_string (arg0, tmp1) ; #line 458 "pats_main.dats" /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst(" ... \n")) ; #line 458 "pats_main.dats" /* tmp5 = */ atspre_fprint_newline (arg0) ; #line 459 "pats_main.dats" /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("where a is of one of the following forms:\n")) ; #line 459 "pats_main.dats" /* tmp7 = */ atspre_fprint_newline (arg0) ; #line 461 "pats_main.dats" /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst(" -h (for printing out this help usage)")) ; #line 461 "pats_main.dats" /* tmp9 = */ atspre_fprint_newline (arg0) ; #line 462 "pats_main.dats" /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst(" --help (for printing out this help usage)")) ; #line 462 "pats_main.dats" /* tmp11 = */ atspre_fprint_newline (arg0) ; #line 464 "pats_main.dats" /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(" -v (for printing out the version)")) ; #line 464 "pats_main.dats" /* tmp13 = */ atspre_fprint_newline (arg0) ; #line 465 "pats_main.dats" /* tmp14 = */ atspre_fprint_string (arg0, ATSstrcst(" --version (for printing out the version)")) ; #line 465 "pats_main.dats" /* tmp15 = */ atspre_fprint_newline (arg0) ; #line 467 "pats_main.dats" /* tmp16 = */ atspre_fprint_string (arg0, ATSstrcst(" -s (for compiling static filenames individually)")) ; #line 467 "pats_main.dats" /* tmp17 = */ atspre_fprint_newline (arg0) ; #line 468 "pats_main.dats" /* tmp18 = */ atspre_fprint_string (arg0, ATSstrcst(" --static (for compiling static filenames individually)")) ; #line 468 "pats_main.dats" /* tmp19 = */ atspre_fprint_newline (arg0) ; #line 470 "pats_main.dats" /* tmp20 = */ atspre_fprint_string (arg0, ATSstrcst(" -d (for compiling dynamic filenames individually)")) ; #line 470 "pats_main.dats" /* tmp21 = */ atspre_fprint_newline (arg0) ; #line 471 "pats_main.dats" /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst(" --dynamic (for compiling dynamic filenames individually)")) ; #line 471 "pats_main.dats" /* tmp23 = */ atspre_fprint_newline (arg0) ; #line 473 "pats_main.dats" /* tmp24 = */ atspre_fprint_string (arg0, ATSstrcst(" -dd (for compiling dynamic filenames in a combined manner)")) ; #line 473 "pats_main.dats" /* tmp25 = */ atspre_fprint_newline (arg0) ; #line 474 "pats_main.dats" /* tmp26 = */ atspre_fprint_string (arg0, ATSstrcst(" --dynamics (for compiling dynamic filenames in a combined manner)")) ; #line 474 "pats_main.dats" /* tmp27 = */ atspre_fprint_newline (arg0) ; #line 476 "pats_main.dats" /* tmp28 = */ atspre_fprint_string (arg0, ATSstrcst(" -o (output into filename)")) ; #line 476 "pats_main.dats" /* tmp29 = */ atspre_fprint_newline (arg0) ; #line 477 "pats_main.dats" /* tmp30 = */ atspre_fprint_string (arg0, ATSstrcst(" --output (output into filename)")) ; #line 477 "pats_main.dats" /* tmp31 = */ atspre_fprint_newline (arg0) ; #line 478 "pats_main.dats" /* tmp32 = */ atspre_fprint_string (arg0, ATSstrcst(" --output-w (output-write into filename)")) ; #line 478 "pats_main.dats" /* tmp33 = */ atspre_fprint_newline (arg0) ; #line 479 "pats_main.dats" /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(" --output-a (output-append into filename)")) ; #line 479 "pats_main.dats" /* tmp35 = */ atspre_fprint_newline (arg0) ; #line 481 "pats_main.dats" /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst(" -cc (for compiling into C)")) ; #line 481 "pats_main.dats" /* tmp37 = */ atspre_fprint_newline (arg0) ; #line 482 "pats_main.dats" /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst(" -tc (for typechecking only)")) ; #line 482 "pats_main.dats" /* tmp39 = */ atspre_fprint_newline (arg0) ; #line 483 "pats_main.dats" /* tmp40 = */ atspre_fprint_string (arg0, ATSstrcst(" --compile (for compiling into C)")) ; #line 483 "pats_main.dats" /* tmp41 = */ atspre_fprint_newline (arg0) ; #line 484 "pats_main.dats" /* tmp42 = */ atspre_fprint_string (arg0, ATSstrcst(" --typecheck (for typechecking only)")) ; #line 484 "pats_main.dats" /* tmp43 = */ atspre_fprint_newline (arg0) ; #line 489 "pats_main.dats" /* tmp44 = */ atspre_fprint_string (arg0, ATSstrcst(" --depgen (for generating information on file dependencices)")) ; #line 489 "pats_main.dats" /* tmp45 = */ atspre_fprint_newline (arg0) ; #line 493 "pats_main.dats" /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst(" --taggen (for generating tagging information on syntactic entities)")) ; #line 493 "pats_main.dats" /* tmp47 = */ atspre_fprint_newline (arg0) ; #line 495 "pats_main.dats" /* tmp48 = */ atspre_fprint_string (arg0, ATSstrcst(" --gline (for generating line pragma information in target code)")) ; #line 495 "pats_main.dats" /* tmp49 = */ atspre_fprint_newline (arg0) ; #line 497 "pats_main.dats" /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst(" --debug (for enabling the generation of more informative error messages)")) ; #line 497 "pats_main.dats" /* tmp51 = */ atspre_fprint_newline (arg0) ; #line 498 "pats_main.dats" /* tmp52 = */ atspre_fprint_string (arg0, ATSstrcst(" --debug2 (for enabling the generation of debugging information in target code)")) ; #line 498 "pats_main.dats" /* tmp53 = */ atspre_fprint_newline (arg0) ; #line 500 "pats_main.dats" /* tmp54 = */ atspre_fprint_string (arg0, ATSstrcst(" --atsreloc (for generating a script to help relocate packages in need)")) ; #line 500 "pats_main.dats" /* tmp55 = */ atspre_fprint_newline (arg0) ; #line 502 "pats_main.dats" /* tmp56 = */ atspre_fprint_string (arg0, ATSstrcst(" --codegen-2 (for outputing code generated from level-2 syntax)")) ; #line 502 "pats_main.dats" /* tmp57 = */ atspre_fprint_newline (arg0) ; #line 503 "pats_main.dats" /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(" --jsonize-2 (for outputing code in JSON based on level-2 syntax)")) ; #line 503 "pats_main.dats" /* tmp59 = */ atspre_fprint_newline (arg0) ; #line 505 "pats_main.dats" /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst(" --tlcalopt-disable (for disabling tail-call optimization)")) ; #line 505 "pats_main.dats" /* tmp61 = */ atspre_fprint_newline (arg0) ; #line 507 "pats_main.dats" /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst(" --constraint-export (for exporting constraints in JSON format)")) ; #line 507 "pats_main.dats" /* tmp63 = */ atspre_fprint_newline (arg0) ; #line 508 "pats_main.dats" /* tmp64 = */ atspre_fprint_string (arg0, ATSstrcst(" --constraint-ignore (for entirely ignoring constraint-solving)")) ; #line 508 "pats_main.dats" /* tmp65 = */ atspre_fprint_newline (arg0) ; #line 510 "pats_main.dats" /* tmp0 = */ atspre_fprint_newline (arg0) ; return /* (tmp0) */ ; } /* end of [patsopt_usage_0] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 14577(line=570, offs=16) -- 14766(line=580, offs=2) */ ATSglobaldec() ats_void_type libatsopt_patsopt_version (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp66) ; __ats_lab_libatsopt_patsopt_version: #line 574 "pats_main.dats" /* tmp66 = */ atspre_fprintf_exn (arg0, ATSstrcst("ATS/Postiats version %i.%i.%i with %s\n"), 0, 3, 13, ATSstrcst("Copyright (c) 2011-2018 Hongwei Xi")) ; return /* (tmp66) */ ; } /* end of [libatsopt_patsopt_version] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 15074(line=598, offs=1) -- 15226(line=606, offs=2) */ ATSstaticdec() ats_int_type waitknd_get_stadyn_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp67) ; __ats_lab_waitknd_get_stadyn_2: #line 601 "pats_main.dats" do { /* branch: __ats_lab_0 */ #line 602 "pats_main.dats" __ats_lab_0_0: #line 602 "pats_main.dats" if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_1_0 ; } #line 602 "pats_main.dats" __ats_lab_0_1: #line 602 "pats_main.dats" tmp67 = 0 ; break ; /* branch: __ats_lab_1 */ #line 603 "pats_main.dats" __ats_lab_1_0: #line 603 "pats_main.dats" if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_2_0 ; } #line 603 "pats_main.dats" __ats_lab_1_1: #line 603 "pats_main.dats" tmp67 = 1 ; break ; /* branch: __ats_lab_2 */ #line 604 "pats_main.dats" __ats_lab_2_0: #line 604 "pats_main.dats" if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_3_0 ; } #line 604 "pats_main.dats" __ats_lab_2_1: #line 604 "pats_main.dats" tmp67 = 2 ; break ; /* branch: __ats_lab_3 */ #line 605 "pats_main.dats" __ats_lab_3_0: #line 605 "pats_main.dats" __ats_lab_3_1: #line 605 "pats_main.dats" tmp67 = -1 ; break ; } while (0) ; return (tmp67) ; } /* end of [waitknd_get_stadyn_2] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 15376(line=617, offs=1) -- 15489(line=623, offs=2) */ ATSstaticdec() ats_ptr_type outchan_get_filr_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab_outchan_get_filr_3: #line 620 "pats_main.dats" do { /* branch: __ats_lab_4 */ #line 621 "pats_main.dats" __ats_lab_4_0: #line 621 "pats_main.dats" if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_5_0 ; } #line 621 "pats_main.dats" __ats_lab_4_1: #line 621 "pats_main.dats" tmp69 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; #line 621 "pats_main.dats" tmp68 = tmp69 ; break ; /* branch: __ats_lab_5 */ #line 622 "pats_main.dats" __ats_lab_5_0: #line 622 "pats_main.dats" // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } #line 622 "pats_main.dats" __ats_lab_5_1: #line 622 "pats_main.dats" tmp70 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; #line 622 "pats_main.dats" tmp68 = tmp70 ; break ; } while (0) ; return (tmp68) ; } /* end of [outchan_get_filr_3] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 16306(line=675, offs=1) -- 16693(line=705, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_4 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab_auxmain_4: #line 681 "pats_main.dats" tmp73 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outmode) ; #line 681 "pats_main.dats" tmp72 = atslib_fopen_err (arg1, tmp73) ; #line 680 "pats_main.dats" tmp74 = ats_selsin_mac(tmp72, atslab_1) ; #line 686 "pats_main.dats" tmp75 = atspre_pgt (tmp74, atspre_null_ptr) ; #line 685 "pats_main.dats" if (tmp75) { #line 693 "pats_main.dats" tmp76 = tmp74 ; #line 696 "pats_main.dats" tmp71 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp71)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp71, atslab_0, ats_castfn_mac(ats_ptr_type, tmp76)) ; } else { #line 702 "pats_main.dats" tmp71 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp71)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp71, atslab_0, stderr) ; } /* end of [if] */ return (tmp71) ; } /* end of [auxmain_4] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 16741(line=710, offs=1) -- 16903(line=720, offs=2) */ ATSstaticdec() ats_ptr_type outchan_make_path_5 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; __ats_lab_outchan_make_path_5: #line 715 "pats_main.dats" do { /* branch: __ats_lab_6 */ #line 716 "pats_main.dats" __ats_lab_6_0: #line 716 "pats_main.dats" if (__strcmpats(arg1, ATSstrcst("-"))) { goto __ats_lab_7_0 ; } #line 716 "pats_main.dats" __ats_lab_6_1: #line 716 "pats_main.dats" tmp77 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp77)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp77, atslab_0, stdout) ; break ; /* branch: __ats_lab_7 */ #line 718 "pats_main.dats" __ats_lab_7_0: #line 718 "pats_main.dats" __ats_lab_7_1: #line 718 "pats_main.dats" tmp77 = auxmain_4 (arg0, arg1) ; break ; } while (0) ; return (tmp77) ; } /* end of [outchan_make_path_5] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 16977(line=727, offs=1) -- 17291(line=744, offs=4) */ ATSstaticdec() ats_void_type cmdstate_set_outchan_6 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; __ats_lab_cmdstate_set_outchan_6: #line 731 "pats_main.dats" tmp79 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; #line 732 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) = arg1 ; #line 735 "pats_main.dats" do { /* branch: __ats_lab_8 */ #line 738 "pats_main.dats" __ats_lab_8_0: #line 738 "pats_main.dats" if (((ats_sum_ptr_type)tmp79)->tag != 0) { goto __ats_lab_9_0 ; } #line 738 "pats_main.dats" __ats_lab_8_1: break ; /* branch: __ats_lab_9 */ #line 740 "pats_main.dats" __ats_lab_9_0: #line 740 "pats_main.dats" // if (((ats_sum_ptr_type)tmp79)->tag != 1) { ats_deadcode_failure_handle () ; } #line 740 "pats_main.dats" __ats_lab_9_1: #line 740 "pats_main.dats" tmp80 = ats_caselptrlab_mac(anairiats_sum_2, tmp79, atslab_0) ; #line 741 "pats_main.dats" tmp81 = atslib_fclose_err (tmp80) ; break ; } while (0) ; return /* (tmp78) */ ; } /* end of [cmdstate_set_outchan_6] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 17351(line=749, offs=1) -- 17537(line=761, offs=2) */ ATSstaticdec() ats_bool_type isinpwait_7 (anairiats_rec_3 arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab_isinpwait_7: #line 755 "pats_main.dats" tmp83 = ats_select_mac(arg0, atslab_waitknd) ; #line 754 "pats_main.dats" do { /* branch: __ats_lab_10 */ #line 757 "pats_main.dats" __ats_lab_10_0: #line 757 "pats_main.dats" if (((ats_sum_ptr_type)tmp83)->tag != 2) { goto __ats_lab_11_0 ; } #line 757 "pats_main.dats" __ats_lab_10_1: #line 757 "pats_main.dats" tmp82 = ats_true_bool ; break ; /* branch: __ats_lab_11 */ #line 758 "pats_main.dats" __ats_lab_11_0: #line 758 "pats_main.dats" if (((ats_sum_ptr_type)tmp83)->tag != 3) { goto __ats_lab_12_0 ; } #line 758 "pats_main.dats" __ats_lab_11_1: #line 758 "pats_main.dats" tmp82 = ats_true_bool ; break ; /* branch: __ats_lab_12 */ #line 759 "pats_main.dats" __ats_lab_12_0: #line 759 "pats_main.dats" if (((ats_sum_ptr_type)tmp83)->tag != 4) { goto __ats_lab_13_0 ; } #line 759 "pats_main.dats" __ats_lab_12_1: #line 759 "pats_main.dats" tmp82 = ats_true_bool ; break ; /* branch: __ats_lab_13 */ #line 760 "pats_main.dats" __ats_lab_13_0: #line 760 "pats_main.dats" __ats_lab_13_1: #line 760 "pats_main.dats" tmp82 = ats_false_bool ; break ; } while (0) ; return (tmp82) ; } /* end of [isinpwait_7] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 17565(line=764, offs=1) -- 17683(line=769, offs=2) */ ATSstaticdec() ats_bool_type isoutwait_8 (anairiats_rec_3 arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab_isoutwait_8: #line 767 "pats_main.dats" tmp85 = ats_select_mac(arg0, atslab_waitknd) ; #line 767 "pats_main.dats" do { /* branch: __ats_lab_14 */ #line 768 "pats_main.dats" __ats_lab_14_0: #line 768 "pats_main.dats" if (((ats_sum_ptr_type)tmp85)->tag != 1) { goto __ats_lab_15_0 ; } #line 768 "pats_main.dats" __ats_lab_14_1: #line 768 "pats_main.dats" tmp84 = ats_true_bool ; break ; /* branch: __ats_lab_15 */ #line 768 "pats_main.dats" __ats_lab_15_0: #line 768 "pats_main.dats" __ats_lab_15_1: #line 768 "pats_main.dats" tmp84 = ats_false_bool ; break ; } while (0) ; return (tmp84) ; } /* end of [isoutwait_8] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 17714(line=772, offs=1) -- 17833(line=777, offs=2) */ ATSstaticdec() ats_bool_type isdatswait_9 (anairiats_rec_3 arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab_isdatswait_9: #line 775 "pats_main.dats" tmp87 = ats_select_mac(arg0, atslab_waitknd) ; #line 775 "pats_main.dats" do { /* branch: __ats_lab_16 */ #line 776 "pats_main.dats" __ats_lab_16_0: #line 776 "pats_main.dats" if (((ats_sum_ptr_type)tmp87)->tag != 5) { goto __ats_lab_17_0 ; } #line 776 "pats_main.dats" __ats_lab_16_1: #line 776 "pats_main.dats" tmp86 = ats_true_bool ; break ; /* branch: __ats_lab_17 */ #line 776 "pats_main.dats" __ats_lab_17_0: #line 776 "pats_main.dats" __ats_lab_17_1: #line 776 "pats_main.dats" tmp86 = ats_false_bool ; break ; } while (0) ; return (tmp86) ; } /* end of [isdatswait_9] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 17865(line=780, offs=1) -- 17984(line=785, offs=2) */ ATSstaticdec() ats_bool_type isiatswait_10 (anairiats_rec_3 arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab_isiatswait_10: #line 783 "pats_main.dats" tmp89 = ats_select_mac(arg0, atslab_waitknd) ; #line 783 "pats_main.dats" do { /* branch: __ats_lab_18 */ #line 784 "pats_main.dats" __ats_lab_18_0: #line 784 "pats_main.dats" if (((ats_sum_ptr_type)tmp89)->tag != 6) { goto __ats_lab_19_0 ; } #line 784 "pats_main.dats" __ats_lab_18_1: #line 784 "pats_main.dats" tmp88 = ats_true_bool ; break ; /* branch: __ats_lab_19 */ #line 784 "pats_main.dats" __ats_lab_19_0: #line 784 "pats_main.dats" __ats_lab_19_1: #line 784 "pats_main.dats" tmp88 = ats_false_bool ; break ; } while (0) ; return (tmp88) ; } /* end of [isiatswait_10] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 18217(line=802, offs=1) -- 18369(line=812, offs=2) */ ATSstaticdec() ats_ptr_type theOutFilename_get_11 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab_theOutFilename_get_11: #line 810 "pats_main.dats" tmp94 = statmp90 ; #line 811 "pats_main.dats" statmp90 = atspre_stropt_none ; #line 805 "pats_main.dats" tmp93 = tmp94 ; return (tmp93) ; } /* end of [theOutFilename_get_11] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 18406(line=815, offs=1) -- 18515(line=822, offs=2) */ ATSstaticdec() ats_void_type theOutFilename_set_12 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp95) ; __ats_lab_theOutFilename_set_12: #line 821 "pats_main.dats" statmp90 = arg0 ; return /* (tmp95) */ ; } /* end of [theOutFilename_set_12] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 18715(line=836, offs=3) -- 19473(line=868, offs=4) */ ATSglobaldec() ats_void_type libatsopt_the_fixity_load (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; // ATSlocal_void (tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab_libatsopt_the_fixity_load: #line 840 "pats_main.dats" tmp97 = patsopt_filename_dirbase (arg0, ATSstrcst("prelude/fixity.ats")) ; #line 843 "pats_main.dats" tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make (ATSstrcst("prelude/fixity.ats"), ATSstrcst("prelude/fixity.ats"), ats_castfn_mac(ats_ptr_type, tmp97)) ; #line 847 "pats_main.dats" /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (tmp98) ; #line 846 "pats_main.dats" /* tmp100 = ats_selsin_mac(tmp99, atslab_1) */ ; #line 849 "pats_main.dats" tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel (0, tmp98) ; #line 851 "pats_main.dats" /* tmp102 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; #line 855 "pats_main.dats" /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_push_nil () ; #line 854 "pats_main.dats" /* tmp104 = ats_selsin_mac(tmp103, atslab_1) */ ; #line 856 "pats_main.dats" tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck (tmp101) ; #line 858 "pats_main.dats" tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pop () ; #line 860 "pats_main.dats" /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pervasive_joinwth (tmp106) ; return /* (tmp96) */ ; } /* end of [libatsopt_the_fixity_load] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 19660(line=881, offs=3) -- 20752(line=924, offs=2) */ ATSglobaldec() ats_void_type libatsopt_pervasive_load (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; // ATSlocal_void (tmp124) ; __ats_lab_libatsopt_pervasive_load: #line 890 "pats_main.dats" tmp108 = patsopt_filename_dirbase (arg0, arg1) ; #line 894 "pats_main.dats" tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make (arg1, arg1, ats_castfn_mac(ats_ptr_type, tmp108)) ; #line 897 "pats_main.dats" /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (tmp109) ; #line 896 "pats_main.dats" /* tmp111 = ats_selsin_mac(tmp110, atslab_1) */ ; #line 899 "pats_main.dats" tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel (0, tmp109) ; #line 901 "pats_main.dats" /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; #line 905 "pats_main.dats" /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_name (ATSstrcst("ATSLIB.prelude")) ; #line 907 "pats_main.dats" /* tmp115 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set (ATSstrcst("atspre_")) ; #line 910 "pats_main.dats" /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push () ; #line 909 "pats_main.dats" /* tmp117 = ats_selsin_mac(tmp116, atslab_1) */ ; #line 911 "pats_main.dats" tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck (tmp112) ; #line 913 "pats_main.dats" /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop () ; #line 916 "pats_main.dats" /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; #line 915 "pats_main.dats" /* tmp121 = ats_selsin_mac(tmp120, atslab_1) */ ; #line 917 "pats_main.dats" tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr_errck (tmp118) ; #line 919 "pats_main.dats" /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pervasive_joinwth1 (tmp109, tmp122) ; #line 921 "pats_main.dats" /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_none () ; #line 922 "pats_main.dats" /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set_none () ; return /* (tmp107) */ ; } /* end of [libatsopt_pervasive_load] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 20979(line=941, offs=3) -- 24380(line=1046, offs=2) */ ATSglobaldec() ats_void_type libatsopt_the_prelude_load (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; __ats_lab_libatsopt_the_prelude_load: #line 944 "pats_main.dats" /* tmp126 = */ libatsopt_the_fixity_load (arg0) ; #line 947 "pats_main.dats" /* tmp127 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/basics_pre.sats")) ; #line 949 "pats_main.dats" /* tmp128 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/basics_sta.sats")) ; #line 951 "pats_main.dats" /* tmp129 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/basics_dyn.sats")) ; #line 953 "pats_main.dats" /* tmp130 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/basics_gen.sats")) ; #line 955 "pats_main.dats" /* tmp131 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/macrodef.sats")) ; #line 957 "pats_main.dats" /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__stacst2_initialize () ; #line 958 "pats_main.dats" /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize () ; #line 966 "pats_main.dats" /* tmp134 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer.sats")) ; #line 967 "pats_main.dats" /* tmp135 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/pointer.sats")) ; #line 969 "pats_main.dats" /* tmp136 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/arith_prf.sats")) ; #line 971 "pats_main.dats" /* tmp137 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_long.sats")) ; #line 972 "pats_main.dats" /* tmp138 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_size.sats")) ; #line 973 "pats_main.dats" /* tmp139 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_short.sats")) ; #line 975 "pats_main.dats" /* tmp140 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/bool.sats")) ; #line 976 "pats_main.dats" /* tmp141 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/char.sats")) ; #line 977 "pats_main.dats" /* tmp142 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/float.sats")) ; #line 979 "pats_main.dats" /* tmp143 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/string.sats")) ; #line 980 "pats_main.dats" /* tmp144 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/strptr.sats")) ; #line 982 "pats_main.dats" /* tmp145 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_ptr.sats")) ; #line 983 "pats_main.dats" /* tmp146 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_fixed.sats")) ; #line 985 "pats_main.dats" /* tmp147 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/tuple.sats")) ; #line 987 "pats_main.dats" /* tmp148 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/memory.sats")) ; #line 989 "pats_main.dats" /* tmp149 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/reference.sats")) ; #line 991 "pats_main.dats" /* tmp150 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/filebas.sats")) ; #line 992 "pats_main.dats" /* tmp151 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/intrange.sats")) ; #line 994 "pats_main.dats" /* tmp152 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/gorder.sats")) ; #line 995 "pats_main.dats" /* tmp153 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/gnumber.sats")) ; #line 996 "pats_main.dats" /* tmp154 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/grandom.sats")) ; #line 1006 "pats_main.dats" /* tmp155 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/checkast.sats")) ; #line 1014 "pats_main.dats" /* tmp156 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/list.sats")) ; #line 1015 "pats_main.dats" /* tmp157 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/list_vt.sats")) ; #line 1017 "pats_main.dats" /* tmp158 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/option.sats")) ; #line 1018 "pats_main.dats" /* tmp159 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/option_vt.sats")) ; #line 1020 "pats_main.dats" /* tmp160 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/array.sats")) ; #line 1022 "pats_main.dats" /* tmp161 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/array_prf.sats")) ; #line 1024 "pats_main.dats" /* tmp162 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/arrayptr.sats")) ; #line 1025 "pats_main.dats" /* tmp163 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/arrayref.sats")) ; #line 1027 "pats_main.dats" /* tmp164 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/matrix.sats")) ; #line 1028 "pats_main.dats" /* tmp165 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/matrixptr.sats")) ; #line 1029 "pats_main.dats" /* tmp166 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/matrixref.sats")) ; #line 1031 "pats_main.dats" /* tmp167 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/stream.sats")) ; #line 1032 "pats_main.dats" /* tmp168 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/stream_vt.sats")) ; #line 1034 "pats_main.dats" /* tmp169 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/gprint.sats")) ; #line 1035 "pats_main.dats" /* tmp170 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/tostring.sats")) ; #line 1037 "pats_main.dats" /* tmp171 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/parray.sats")) ; #line 1039 "pats_main.dats" /* tmp125 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/extern.sats")) ; return /* (tmp125) */ ; } /* end of [libatsopt_the_prelude_load] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 24630(line=1063, offs=3) -- 24737(line=1068, offs=12) */ ATSglobaldec() ats_void_type libatsopt_the_prelude_load_if (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp172) ; ATSlocal (ats_bool_type, tmp173) ; __ats_lab_libatsopt_the_prelude_load_if: #line 1066 "pats_main.dats" tmp173 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg1), 0) ; #line 1066 "pats_main.dats" if (tmp173) { #line 1067 "pats_main.dats" ats_ptrget_mac(ats_int_type, arg1) = 1 ; #line 1067 "pats_main.dats" /* tmp172 = */ libatsopt_the_prelude_load (arg0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp172) */ ; } /* end of [libatsopt_the_prelude_load_if] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 25052(line=1091, offs=3) -- 25330(line=1105, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; // ATSlocal_void (tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen: #line 1093 "pats_main.dats" tmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__depgen_eval (arg2) ; #line 1099 "pats_main.dats" /* tmp176 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop () ; #line 1101 "pats_main.dats" tmp178 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; #line 1101 "pats_main.dats" tmp177 = outchan_get_filr_3 (tmp178) ; #line 1104 "pats_main.dats" /* tmp174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_entlst (tmp177, arg1, tmp175) ; return /* (tmp174) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 25378(line=1109, offs=3) -- 25656(line=1123, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen: #line 1111 "pats_main.dats" tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__taggen_proc (arg2) ; #line 1117 "pats_main.dats" /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop () ; #line 1119 "pats_main.dats" tmp183 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; #line 1119 "pats_main.dats" tmp182 = outchan_get_filr_3 (tmp183) ; #line 1122 "pats_main.dats" /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__fprint_entlst (tmp182, arg1, tmp180) ; return /* (tmp179) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 25841(line=1137, offs=3) -- 26022(line=1149, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc: #line 1140 "pats_main.dats" tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsrelocitmlst_get () ; #line 1143 "pats_main.dats" tmp187 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; #line 1143 "pats_main.dats" tmp186 = outchan_get_filr_3 (tmp187) ; #line 1147 "pats_main.dats" /* tmp184 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitmlst (tmp186, tmp185) ; return /* (tmp184) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 26232(line=1165, offs=3) -- 26371(line=1172, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2: #line 1167 "pats_main.dats" tmp189 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; #line 1168 "pats_main.dats" tmp190 = outchan_get_filr_3 (tmp189) ; #line 1171 "pats_main.dats" /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out (tmp190, arg2) ; return /* (tmp188) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 27123(line=1227, offs=1) -- 27266(line=1236, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2: #line 1231 "pats_main.dats" tmp192 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; #line 1232 "pats_main.dats" tmp193 = outchan_get_filr_3 (tmp192) ; #line 1235 "pats_main.dats" /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__d2eclist_jsonize_out (tmp193, arg2) ; return /* (tmp191) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 27992(line=1283, offs=1) -- 28332(line=1304, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; ATSlocal (ats_bool_type, tmp198) ; ATSlocal (ats_int_type, tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1: #line 1288 "pats_main.dats" tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck (arg2) ; #line 1291 "pats_main.dats" /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__trans1_finalize () ; #line 1294 "pats_main.dats" tmp199 = patsopt_debug_flag_get () ; #line 1294 "pats_main.dats" tmp198 = atspre_gt_int_int (tmp199, 0) ; #line 1294 "pats_main.dats" if (tmp198) { #line 1298 "pats_main.dats" /* tmp200 = */ atspre_prerr_string (ATSstrcst("The 1st translation (fixity) of [")) ; #line 1298 "pats_main.dats" /* tmp201 = */ atspre_prerr_string (arg1) ; #line 1298 "pats_main.dats" /* tmp202 = */ atspre_prerr_string (ATSstrcst("] is successfully completed!")) ; #line 1297 "pats_main.dats" /* tmp197 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ #line 1303 "pats_main.dats" tmp194 = tmp195 ; return (tmp194) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 28398(line=1310, offs=1) -- 28827(line=1334, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; // ATSlocal_void (tmp205) ; ATSlocal (ats_bool_type, tmp206) ; ATSlocal (ats_int_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_bool_type, tmp210) ; ATSlocal (ats_int_type, tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; // ATSlocal_void (tmp214) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12: #line 1315 "pats_main.dats" tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1 (arg0, arg1, arg2) ; #line 1319 "pats_main.dats" tmp207 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_ninpfile) ; #line 1319 "pats_main.dats" tmp206 = atspre_gte_int_int (tmp207, 2) ; #line 1318 "pats_main.dats" if (tmp206) { #line 1321 "pats_main.dats" /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_initialize () ; } else { /* empty */ } /* end of [if] */ #line 1324 "pats_main.dats" tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr_errck (tmp204) ; #line 1327 "pats_main.dats" tmp211 = patsopt_debug_flag_get () ; #line 1327 "pats_main.dats" tmp210 = atspre_gt_int_int (tmp211, 0) ; #line 1327 "pats_main.dats" if (tmp210) { #line 1330 "pats_main.dats" /* tmp212 = */ atspre_prerr_string (ATSstrcst("The 2nd translation (binding) of [")) ; #line 1330 "pats_main.dats" /* tmp213 = */ atspre_prerr_string (arg1) ; #line 1330 "pats_main.dats" /* tmp214 = */ atspre_prerr_string (ATSstrcst("] is successfully completed!")) ; #line 1329 "pats_main.dats" /* tmp209 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ #line 1312 "pats_main.dats" tmp203 = tmp208 ; return (tmp203) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 28898(line=1340, offs=1) -- 29898(line=1404, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_int_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; // ATSlocal_void (tmp221) ; ATSlocal (ats_bool_type, tmp222) ; // ATSlocal_void (tmp223) ; ATSlocal (ats_bool_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; ATSlocal (ats_bool_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123: #line 1345 "pats_main.dats" tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12 (arg0, arg1, arg2) ; #line 1348 "pats_main.dats" /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize () ; #line 1350 "pats_main.dats" tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck (tmp216) ; #line 1369 "pats_main.dats" tmp219 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_cnstrsolveflag) ; #line 1371 "pats_main.dats" tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint () ; #line 1377 "pats_main.dats" tmp222 = atspre_eq_int_int (tmp219, 0) ; #line 1376 "pats_main.dats" if (tmp222) { #line 1379 "pats_main.dats" /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve (tmp220) ; } else { /* empty */ } /* end of [if] */ #line 1386 "pats_main.dats" tmp224 = atspre_gt_int_int (tmp219, 0) ; #line 1385 "pats_main.dats" if (tmp224) { #line 1389 "pats_main.dats" tmp226 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; #line 1389 "pats_main.dats" tmp225 = outchan_get_filr_3 (tmp226) ; #line 1390 "pats_main.dats" /* tmp223 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_export (tmp225, tmp220) ; } else { /* empty */ } /* end of [if] */ #line 1397 "pats_main.dats" tmp229 = patsopt_debug_flag_get () ; #line 1397 "pats_main.dats" tmp228 = atspre_gt_int_int (tmp229, 0) ; #line 1396 "pats_main.dats" if (tmp228) { #line 1400 "pats_main.dats" /* tmp230 = */ atspre_prerr_string (ATSstrcst("The 3rd translation (type-checking) of [")) ; #line 1400 "pats_main.dats" /* tmp231 = */ atspre_prerr_string (arg1) ; #line 1400 "pats_main.dats" /* tmp232 = */ atspre_prerr_string (ATSstrcst("] is successfully completed!")) ; #line 1399 "pats_main.dats" /* tmp227 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ #line 1342 "pats_main.dats" tmp215 = tmp218 ; return (tmp215) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 29971(line=1410, offs=1) -- 30380(line=1432, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; // ATSlocal_void (tmp236) ; ATSlocal (ats_bool_type, tmp237) ; ATSlocal (ats_int_type, tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234: #line 1415 "pats_main.dats" tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123 (arg0, arg1, arg2) ; #line 1418 "pats_main.dats" tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer_errck (tmp234) ; #line 1425 "pats_main.dats" tmp238 = patsopt_debug_flag_get () ; #line 1425 "pats_main.dats" tmp237 = atspre_gt_int_int (tmp238, 0) ; #line 1425 "pats_main.dats" if (tmp237) { #line 1428 "pats_main.dats" /* tmp239 = */ atspre_prerr_string (ATSstrcst("The 4th translation (type/proof-erasing) of [")) ; #line 1428 "pats_main.dats" /* tmp240 = */ atspre_prerr_string (arg1) ; #line 1428 "pats_main.dats" /* tmp241 = */ atspre_prerr_string (ATSstrcst("] is successfully completed!")) ; #line 1427 "pats_main.dats" /* tmp236 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ #line 1412 "pats_main.dats" tmp233 = tmp235 ; return (tmp233) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 30457(line=1438, offs=3) -- 31664(line=1495, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp242) ; ATSlocal (ats_bool_type, tmp243) ; ATSlocal (ats_int_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_bool_type, tmp246) ; ATSlocal (ats_int_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_bool_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_bool_type, tmp252) ; ATSlocal (ats_int_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_int_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal: #line 1453 "pats_main.dats" do { /* branch: __ats_lab_20 */ #line 1454 "pats_main.dats" __ats_lab_20_0: #line 1454 "pats_main.dats" __ats_lab_20_1: #line 1455 "pats_main.dats" tmp244 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_atsreloc) ; #line 1455 "pats_main.dats" tmp243 = atspre_gt_int_int (tmp244, 0) ; #line 1455 "pats_main.dats" if (!tmp243) { goto __ats_lab_21_1 ; } #line 1457 "pats_main.dats" tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1 (arg0, arg1, arg2) ; #line 1460 "pats_main.dats" /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc (arg0, arg1, tmp245) ; break ; /* branch: __ats_lab_21 */ #line 1462 "pats_main.dats" __ats_lab_21_0: #line 1462 "pats_main.dats" __ats_lab_21_1: #line 1463 "pats_main.dats" tmp247 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_codegenflag) ; #line 1463 "pats_main.dats" tmp246 = atspre_eq_int_int (tmp247, 2) ; #line 1463 "pats_main.dats" if (!tmp246) { goto __ats_lab_22_1 ; } #line 1465 "pats_main.dats" tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12 (arg0, arg1, arg2) ; #line 1468 "pats_main.dats" /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2 (arg0, arg1, tmp248) ; break ; /* branch: __ats_lab_22 */ #line 1470 "pats_main.dats" __ats_lab_22_0: #line 1470 "pats_main.dats" __ats_lab_22_1: #line 1471 "pats_main.dats" tmp250 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_jsonizeflag) ; #line 1471 "pats_main.dats" tmp249 = atspre_eq_int_int (tmp250, 2) ; #line 1471 "pats_main.dats" if (!tmp249) { goto __ats_lab_23_1 ; } #line 1473 "pats_main.dats" tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12 (arg0, arg1, arg2) ; #line 1476 "pats_main.dats" /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2 (arg0, arg1, tmp251) ; break ; /* branch: __ats_lab_23 */ #line 1478 "pats_main.dats" __ats_lab_23_0: #line 1478 "pats_main.dats" __ats_lab_23_1: #line 1479 "pats_main.dats" tmp253 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_typecheckflag) ; #line 1479 "pats_main.dats" tmp252 = atspre_gt_int_int (tmp253, 0) ; #line 1479 "pats_main.dats" if (!tmp252) { goto __ats_lab_24_1 ; } #line 1481 "pats_main.dats" tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_24 */ #line 1483 "pats_main.dats" __ats_lab_24_0: #line 1483 "pats_main.dats" __ats_lab_24_1: #line 1484 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_olevel) = 1 ; #line 1485 "pats_main.dats" tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234 (arg0, arg1, arg2) ; #line 1486 "pats_main.dats" tmp257 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; #line 1486 "pats_main.dats" tmp256 = outchan_get_filr_3 (tmp257) ; #line 1487 "pats_main.dats" tmp259 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_waitknd) ; #line 1487 "pats_main.dats" tmp258 = waitknd_get_stadyn_2 (tmp259) ; #line 1489 "pats_main.dats" tmp260 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_infil) ; #line 1489 "pats_main.dats" /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_main (tmp256, tmp258, tmp260, tmp255) ; break ; } while (0) ; return /* (tmp242) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 31810(line=1509, offs=1) -- 32080(line=1528, offs=4) */ ATSstaticdec() ats_void_type auxerr_28 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp262) ; ATSlocal (ats_bool_type, tmp263) ; __ats_lab_auxerr_28: #line 1520 "pats_main.dats" tmp263 = atspre_gt_int_int (arg0, 0) ; #line 1519 "pats_main.dats" if (tmp263) { #line 1522 "pats_main.dats" /* tmp262 = */ atspre_fprintf_exn (arg1, ATSstrcst("%s//\n#error(PATSOPT_ERROR_(patsopt(%s): %s))\n//\n%s"), ATSstrcst("/* ****** ****** */\n"), arg2, arg3, ATSstrcst("/* ****** ****** */\n")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp262) */ ; } /* end of [auxerr_28] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 31727(line=1502, offs=1) -- 33149(line=1585, offs=4) */ ATSstaticdec() ats_void_type auxexn_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp261) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_int_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_int_type, tmp268) ; ATSlocal (ats_int_type, tmp269) ; __ats_lab_auxexn_27: #line 1531 "pats_main.dats" tmp264 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; #line 1534 "pats_main.dats" tmp265 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp264), atslab_olevel) ; #line 1536 "pats_main.dats" tmp267 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp264), atslab_outchan) ; #line 1536 "pats_main.dats" tmp266 = outchan_get_filr_3 (tmp267) ; #line 1538 "pats_main.dats" tmp268 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp264), atslab_nerror) ; #line 1539 "pats_main.dats" tmp269 = atspre_add_int_int (tmp268, 1) ; #line 1539 "pats_main.dats" ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp264), atslab_nerror) = tmp269 ; #line 1545 "pats_main.dats" do { /* branch: __ats_lab_25 */ #line 1547 "pats_main.dats" __ats_lab_25_0: #line 1547 "pats_main.dats" if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN) { goto __ats_lab_26_0 ; } #line 1547 "pats_main.dats" __ats_lab_25_1: #line 1549 "pats_main.dats" /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("fixity-errors")) ; break ; /* branch: __ats_lab_26 */ #line 1552 "pats_main.dats" __ats_lab_26_0: #line 1552 "pats_main.dats" if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN) { goto __ats_lab_27_0 ; } #line 1552 "pats_main.dats" __ats_lab_26_1: #line 1554 "pats_main.dats" /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("trans1-errors")) ; break ; /* branch: __ats_lab_27 */ #line 1557 "pats_main.dats" __ats_lab_27_0: #line 1557 "pats_main.dats" if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN) { goto __ats_lab_28_0 ; } #line 1557 "pats_main.dats" __ats_lab_27_1: #line 1559 "pats_main.dats" /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("trans2-errors")) ; break ; /* branch: __ats_lab_28 */ #line 1562 "pats_main.dats" __ats_lab_28_0: #line 1562 "pats_main.dats" if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN) { goto __ats_lab_29_0 ; } #line 1562 "pats_main.dats" __ats_lab_28_1: #line 1564 "pats_main.dats" /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("trans3-errors")) ; break ; /* branch: __ats_lab_29 */ #line 1567 "pats_main.dats" __ats_lab_29_0: #line 1567 "pats_main.dats" if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN) { goto __ats_lab_30_0 ; } #line 1567 "pats_main.dats" __ats_lab_29_1: #line 1569 "pats_main.dats" /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("trans4-errors")) ; break ; /* branch: __ats_lab_30 */ #line 1583 "pats_main.dats" __ats_lab_30_0: #line 1583 "pats_main.dats" __ats_lab_30_1: #line 1583 "pats_main.dats" /* tmp261 = */ ats_raise_exn (arg3) ; break ; } while (0) ; return /* (tmp261) */ ; } /* end of [auxexn_27] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 33216(line=1591, offs=1) -- 33480(line=1614, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2: #line 1599 "pats_main.dats" ATS_TRYWITH_TRY(tmp273) #line 1602 "pats_main.dats" tmp271 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; #line 1606 "pats_main.dats" /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal (tmp271, arg1, arg2) ; #line 1599 "pats_main.dats" /* tmp270 = tmp272 */ ; ATS_TRYWITH_WITH(tmp273) do { /* branch: __ats_lab_31 */ #line 1612 "pats_main.dats" __ats_lab_31_0: #line 1612 "pats_main.dats" __ats_lab_31_1: #line 1612 "pats_main.dats" /* tmp270 = */ auxexn_27 (arg0, arg1, arg2, tmp273) ; break ; } while (0) ; ATS_TRYWITH_END() ; return /* (tmp270) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 33728(line=1633, offs=1) -- 34392(line=1665, offs=2) */ ATSstaticdec() anairiats_rec_4 loop_31 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_4, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_int_type, tmp279) ; ATSlocal (ats_int_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; __ats_lab_loop_31: #line 1644 "pats_main.dats" do { /* branch: __ats_lab_32 */ #line 1645 "pats_main.dats" __ats_lab_32_0: #line 1645 "pats_main.dats" if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } #line 1645 "pats_main.dats" __ats_lab_32_1: #line 1648 "pats_main.dats" tmp275 = loop2_32 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_33 */ #line 1650 "pats_main.dats" __ats_lab_33_0: #line 1650 "pats_main.dats" // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 1650 "pats_main.dats" __ats_lab_33_1: #line 1650 "pats_main.dats" tmp276 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; #line 1650 "pats_main.dats" tmp277 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; #line 1652 "pats_main.dats" tmp278 = ats_ptrget_mac(ats_ptr_type, tmp276) ; #line 1652 "pats_main.dats" do { /* branch: __ats_lab_34 */ #line 1653 "pats_main.dats" __ats_lab_34_0: #line 1653 "pats_main.dats" #line 1653 "pats_main.dats" tmp279 = ats_caselptrlab_mac(anairiats_sum_1, tmp278, atslab_0) ; #line 1653 "pats_main.dats" if (tmp279 != 1) { goto __ats_lab_35_0 ; } #line 1653 "pats_main.dats" __ats_lab_34_1: #line 1654 "pats_main.dats" tmp275 = loop2_32 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_35 */ #line 1655 "pats_main.dats" __ats_lab_35_0: #line 1655 "pats_main.dats" #line 1655 "pats_main.dats" tmp280 = ats_caselptrlab_mac(anairiats_sum_1, tmp278, atslab_0) ; #line 1655 "pats_main.dats" if (tmp280 != 2) { goto __ats_lab_36_0 ; } #line 1655 "pats_main.dats" __ats_lab_35_1: #line 1656 "pats_main.dats" tmp275 = loop2_32 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_36 */ #line 1657 "pats_main.dats" __ats_lab_36_0: #line 1657 "pats_main.dats" // #line 1657 "pats_main.dats" __ats_lab_36_1: #line 1657 "pats_main.dats" tmp281 = ats_caselptrlab_mac(anairiats_sum_1, tmp278, atslab_1) ; #line 1658 "pats_main.dats" tmp282 = ats_ptrget_mac(ats_ptr_type, tmp277) ; #line 1660 "pats_main.dats" ATS_FREE(arg1) ; #line 1661 "pats_main.dats" tmp283 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp283, atslab_0, tmp281) ; ats_selptrset_mac(anairiats_sum_5, tmp283, atslab_1, arg2) ; #line 1661 "pats_main.dats" arg0 = arg0 ; #line 1661 "pats_main.dats" arg1 = tmp282 ; #line 1661 "pats_main.dats" arg2 = tmp283 ; #line 1661 "pats_main.dats" goto __ats_lab_loop_31 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp275) ; } /* end of [loop_31] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_35 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab_revapp_35: #line 311 "list_vt.dats" do { /* branch: __ats_lab_37 */ #line 312 "list_vt.dats" __ats_lab_37_0: #line 312 "list_vt.dats" if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } #line 312 "list_vt.dats" __ats_lab_37_1: #line 312 "list_vt.dats" tmp289 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; #line 313 "list_vt.dats" tmp290 = ats_ptrget_mac(ats_ptr_type, tmp289) ; #line 315 "list_vt.dats" ats_ptrget_mac(ats_ptr_type, tmp289) = arg1 ; #line 315 "list_vt.dats" tmp291 = arg0 ; #line 315 "list_vt.dats" arg0 = tmp290 ; #line 315 "list_vt.dats" arg1 = tmp291 ; #line 315 "list_vt.dats" goto __ats_lab_revapp_35 ; // tail call break ; /* branch: __ats_lab_38 */ #line 317 "list_vt.dats" __ats_lab_38_0: #line 317 "list_vt.dats" // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 317 "list_vt.dats" __ats_lab_38_1: #line 317 "list_vt.dats" tmp288 = arg1 ; break ; } while (0) ; return (tmp288) ; } /* end of [revapp_35] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp287) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: #line 320 "list_vt.dats" tmp287 = revapp_35 (arg0, arg1) ; return (tmp287) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp292) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: #line 299 "list_vt.dats" tmp292 = (ats_sum_ptr_type)0 ; #line 299 "list_vt.dats" tmp286 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp292) ; return (tmp286) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_37 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; __ats_lab_loop_37: #line 178 "list_vt.dats" do { /* branch: __ats_lab_39 */ #line 178 "list_vt.dats" __ats_lab_39_0: #line 178 "list_vt.dats" if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } #line 178 "list_vt.dats" __ats_lab_39_1: #line 178 "list_vt.dats" tmp297 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; #line 178 "list_vt.dats" ATS_FREE(arg0) ; #line 178 "list_vt.dats" arg0 = tmp297 ; #line 178 "list_vt.dats" goto __ats_lab_loop_37 ; // tail call break ; /* branch: __ats_lab_40 */ #line 178 "list_vt.dats" __ats_lab_40_0: #line 178 "list_vt.dats" // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 178 "list_vt.dats" __ats_lab_40_1: break ; } while (0) ; return /* (tmp296) */ ; } /* end of [loop_37] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp295) ; __ats_lab_list_vt_free_01499_ats_ptr_type: #line 181 "list_vt.dats" /* tmp295 = */ loop_37 (arg0) ; return /* (tmp295) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 34420(line=1668, offs=1) -- 34780(line=1687, offs=4) */ ATSstaticdec() anairiats_rec_4 loop2_32 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_4, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp293) ; // ATSlocal_void (tmp294) ; __ats_lab_loop2_32: #line 1679 "pats_main.dats" tmp285 = list_vt_reverse_01506_ats_ptr_type (arg2) ; #line 1683 "pats_main.dats" tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givenames_toplocal2 (1, ats_castfn_mac(ats_ptr_type, tmp285), &ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_infil)) ; #line 1684 "pats_main.dats" /* tmp294 = */ list_vt_free_01499_ats_ptr_type (tmp285) ; #line 1686 "pats_main.dats" tmp284.atslab_0 = arg1 ; tmp284.atslab_1 = tmp293 ; return (tmp284) ; } /* end of [loop2_32] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 33556(line=1621, offs=1) -- 35114(line=1712, offs=4) */ ATSstaticdec() anairiats_rec_4 parse_from_given_arglst_toplevel_30 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_4, tmp274) ; ATSlocal (ats_int_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_bool_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; __ats_lab_parse_from_given_arglst_toplevel_30: #line 1691 "pats_main.dats" tmp299 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_waitknd) ; #line 1691 "pats_main.dats" tmp298 = waitknd_get_stadyn_2 (tmp299) ; #line 1696 "pats_main.dats" tmp300 = atspre_lte_int_int (tmp298, 1) ; #line 1695 "pats_main.dats" if (tmp300) { #line 1701 "pats_main.dats" tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel (tmp298, arg1, &ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_infil)) ; #line 1705 "pats_main.dats" tmp274.atslab_0 = arg2 ; tmp274.atslab_1 = tmp301 ; } else { #line 1709 "pats_main.dats" tmp303 = (ats_sum_ptr_type)0 ; #line 1709 "pats_main.dats" tmp302 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp302, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp302, atslab_1, tmp303) ; #line 1709 "pats_main.dats" tmp274 = loop_31 (arg0, arg2, tmp302) ; } /* end of [if] */ return (tmp274) ; } /* end of [parse_from_given_arglst_toplevel_30] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 35185(line=1717, offs=1) -- 36107(line=1775, offs=4) */ ATSstaticdec() ats_void_type process_nil_38 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp304) ; ATSlocal (ats_int_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_bool_type, tmp307) ; // ATSlocal_void (tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; // ATSlocal_void (tmp310) ; ATSlocal (ats_bool_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_bool_type, tmp313) ; ATSlocal (ats_bool_type, tmp314) ; ATSlocal (ats_int_type, tmp315) ; ATSlocal (ats_bool_type, tmp316) ; ATSlocal (ats_int_type, tmp317) ; // ATSlocal_void (tmp320) ; // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; __ats_lab_process_nil_38: #line 1723 "pats_main.dats" tmp306 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_waitknd) ; #line 1723 "pats_main.dats" tmp305 = waitknd_get_stadyn_2 (tmp306) ; #line 1728 "pats_main.dats" tmp307 = atspre_gte_int_int (tmp305, 0) ; #line 1727 "pats_main.dats" if (tmp307) { #line 1733 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_infil) = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_stdin ; #line 1737 "pats_main.dats" tmp309 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_ATSHOME) ; #line 1736 "pats_main.dats" /* tmp308 = */ libatsopt_the_prelude_load_if (tmp309, &ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_preludeflag)) ; #line 1741 "pats_main.dats" tmp311 = atspre_gte_int_int (tmp305, 1) ; #line 1741 "pats_main.dats" if (tmp311) { #line 1742 "pats_main.dats" /* tmp310 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set (1) ; } else { /* empty */ } /* end of [if] */ #line 1745 "pats_main.dats" tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_stdin_toplevel (tmp305) ; #line 1747 "pats_main.dats" /* ats_bool_type tmp313 ; */ #line 1747 "pats_main.dats" tmp313 = ats_true_bool ; #line 1749 "pats_main.dats" tmp315 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_depgen) ; #line 1749 "pats_main.dats" tmp314 = atspre_gt_int_int (tmp315, 0) ; #line 1750 "pats_main.dats" tmp317 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_taggen) ; #line 1750 "pats_main.dats" tmp316 = atspre_gt_int_int (tmp317, 0) ; #line 1752 "pats_main.dats" if (tmp314) { #line 1752 "pats_main.dats" tmp313 = ats_false_bool ; } else { /* empty */ } /* end of [if] */ #line 1753 "pats_main.dats" if (tmp316) { #line 1753 "pats_main.dats" tmp313 = ats_false_bool ; } else { /* empty */ } /* end of [if] */ #line 1758 "pats_main.dats" if (tmp314) { #line 1758 "pats_main.dats" /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen (arg0, ATSstrcst("__STDIN__"), tmp312) ; } else { /* empty */ } /* end of [if] */ #line 1761 "pats_main.dats" if (tmp316) { #line 1761 "pats_main.dats" /* tmp321 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen (arg0, ATSstrcst("__STDIN__"), tmp312) ; } else { /* empty */ } /* end of [if] */ #line 1765 "pats_main.dats" if (tmp313) { #line 1768 "pats_main.dats" /* tmp322 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush (_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_stdin) ; } else { /* empty */ } /* end of [if] */ #line 1771 "pats_main.dats" if (tmp313) { #line 1771 "pats_main.dats" /* tmp304 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2 (arg0, ATSstrcst("__STDIN__"), tmp312) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp304) */ ; } /* end of [process_nil_38] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 36158(line=1780, offs=1) -- 36471(line=1803, offs=4) */ ATSstaticdec() ats_void_type process_cmdline_39 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp421) ; #line 1780 "pats_main.dats" /* tmp421 = */ process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (0, arg0, arg1) ; return /* (tmp421) */ ; } /* end of [process_cmdline_39] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 36526(line=1808, offs=1) -- 39557(line=1947, offs=4) */ ATSstaticdec() ats_void_type process_cmdline2_40 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp422) ; #line 1808 "pats_main.dats" /* tmp422 = */ process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (1, arg0, arg1, arg2) ; return /* (tmp422) */ ; } /* end of [process_cmdline2_40] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 39613(line=1952, offs=1) -- 41321(line=2035, offs=4) */ ATSstaticdec() ats_void_type process_cmdline2_comarg1_41 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp423) ; #line 1952 "pats_main.dats" /* tmp423 = */ process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (2, arg0, arg1, arg2) ; return /* (tmp423) */ ; } /* end of [process_cmdline2_comarg1_41] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 41385(line=2040, offs=1) -- 43436(line=2128, offs=4) */ ATSstaticdec() ats_void_type process_cmdline2_comarg2_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp424) ; #line 2040 "pats_main.dats" /* tmp424 = */ process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (3, arg0, arg1, arg2) ; return /* (tmp424) */ ; } /* end of [process_cmdline2_comarg2_42] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 36158(line=1780, offs=1) -- 43436(line=2128, offs=4) */ ATSstaticdec() ats_void_type process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (ats_int_type arg0, ...) { /* local vardec */ ATSlocal (ats_ref_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ref_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ref_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ref_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; // ATSlocal_void (tmp334) ; ATSlocal (ats_bool_type, tmp335) ; ATSlocal (ats_int_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; // ATSlocal_void (tmp339) ; ATSlocal (ats_bool_type, tmp340) ; ATSlocal (ats_int_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_int_type, tmp343) ; ATSlocal (ats_int_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_bool_type, tmp346) ; ATSlocal (ats_int_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_bool_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_int_type, tmp351) ; // ATSlocal_void (tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_int_type, tmp354) ; // ATSlocal_void (tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; // ATSlocal_void (tmp357) ; ATSlocal (ats_bool_type, tmp358) ; ATSlocal (ats_bool_type, tmp359) ; ATSlocal (ats_bool_type, tmp360) ; ATSlocal (ats_int_type, tmp361) ; ATSlocal (ats_bool_type, tmp363) ; ATSlocal (ats_int_type, tmp364) ; ATSlocal (anairiats_rec_4, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; // ATSlocal_void (tmp369) ; // ATSlocal_void (tmp370) ; // ATSlocal_void (tmp371) ; ATSlocal (ats_bool_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; // ATSlocal_void (tmp377) ; ATSlocal (ats_bool_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; // ATSlocal_void (tmp381) ; ATSlocal (ats_bool_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; // ATSlocal_void (tmp385) ; ATSlocal (ats_int_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_int_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; // ATSlocal_void (tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; // ATSlocal_void (tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; // ATSlocal_void (tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_bool_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_bool_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_bool_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_bool_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; // ATSlocal_void (tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; // ATSlocal_void (tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; va_list funarg ; switch (arg0) { case 0: va_start(funarg, arg0) ; tmp323 = va_arg(funarg, ats_ref_type) ; tmp324 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_process_cmdline_39 ; case 1: va_start(funarg, arg0) ; tmp325 = va_arg(funarg, ats_ref_type) ; tmp326 = va_arg(funarg, ats_ptr_type) ; tmp327 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_process_cmdline2_40 ; case 2: va_start(funarg, arg0) ; tmp328 = va_arg(funarg, ats_ref_type) ; tmp329 = va_arg(funarg, ats_ptr_type) ; tmp330 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_process_cmdline2_comarg1_41 ; case 3: va_start(funarg, arg0) ; tmp331 = va_arg(funarg, ats_ref_type) ; tmp332 = va_arg(funarg, ats_ptr_type) ; tmp333 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_process_cmdline2_comarg2_42 ; default: exit(1) ; /* deadcode */ } /* end of switch */ ATSlocal (va_list, arg1) ; va_start(arg1, arg0) ; #line 1780 "pats_main.dats" __ats_lab_process_cmdline_39: #line 1788 "pats_main.dats" do { /* branch: __ats_lab_41 */ #line 1790 "pats_main.dats" __ats_lab_41_0: #line 1790 "pats_main.dats" if (tmp324 != (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } #line 1790 "pats_main.dats" __ats_lab_41_1: #line 1793 "pats_main.dats" tmp336 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp323), atslab_ninpfile) ; #line 1793 "pats_main.dats" tmp335 = atspre_eq_int_int (tmp336, 0) ; #line 1792 "pats_main.dats" if (tmp335) { #line 1794 "pats_main.dats" /* tmp334 = */ process_nil_38 (tmp323) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_42 */ #line 1797 "pats_main.dats" __ats_lab_42_0: #line 1797 "pats_main.dats" // if (tmp324 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 1797 "pats_main.dats" __ats_lab_42_1: #line 1798 "pats_main.dats" tmp337 = ats_caselptrlab_mac(anairiats_sum_5, tmp324, atslab_0) ; #line 1798 "pats_main.dats" tmp338 = ats_caselptrlab_mac(anairiats_sum_5, tmp324, atslab_1) ; #line 1797 "pats_main.dats" ATS_FREE(tmp324) ; #line 1800 "pats_main.dats" tmp325 = tmp323 ; #line 1800 "pats_main.dats" tmp326 = tmp337 ; #line 1800 "pats_main.dats" tmp327 = tmp338 ; #line 1800 "pats_main.dats" goto __ats_lab_process_cmdline2_40 ; // tail call break ; } while (0) ; return /* tmp334 */ ; #line 1780 "pats_main.dats" __ats_lab_process_cmdline2_40: #line 1823 "pats_main.dats" do { /* branch: __ats_lab_43 */ #line 1825 "pats_main.dats" __ats_lab_43_0: #line 1825 "pats_main.dats" __ats_lab_43_1: #line 1826 "pats_main.dats" tmp340 = isinpwait_7 (ats_ptrget_mac(anairiats_rec_3, tmp325)) ; #line 1826 "pats_main.dats" if (!tmp340) { goto __ats_lab_48_1 ; } #line 1832 "pats_main.dats" tmp342 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) ; #line 1832 "pats_main.dats" tmp341 = waitknd_get_stadyn_2 (tmp342) ; #line 1833 "pats_main.dats" tmp343 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_ninpfile) ; #line 1835 "pats_main.dats" do { /* branch: __ats_lab_44 */ #line 1837 "pats_main.dats" __ats_lab_44_0: #line 1837 "pats_main.dats" #line 1837 "pats_main.dats" tmp344 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_0) ; #line 1837 "pats_main.dats" if (tmp344 != 1) { goto __ats_lab_45_0 ; } #line 1837 "pats_main.dats" __ats_lab_44_1: #line 1837 "pats_main.dats" tmp345 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1838 "pats_main.dats" tmp346 = atspre_gt_int_int (tmp343, 0) ; #line 1838 "pats_main.dats" if (!tmp346) { goto __ats_lab_46_0 ; } #line 1839 "pats_main.dats" tmp328 = tmp325 ; #line 1839 "pats_main.dats" tmp329 = tmp327 ; #line 1839 "pats_main.dats" tmp330 = tmp345 ; #line 1839 "pats_main.dats" goto __ats_lab_process_cmdline2_comarg1_41 ; // tail call break ; /* branch: __ats_lab_45 */ #line 1841 "pats_main.dats" __ats_lab_45_0: #line 1841 "pats_main.dats" #line 1841 "pats_main.dats" tmp347 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_0) ; #line 1841 "pats_main.dats" if (tmp347 != 2) { goto __ats_lab_46_0 ; } #line 1841 "pats_main.dats" __ats_lab_45_1: #line 1841 "pats_main.dats" tmp348 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1842 "pats_main.dats" tmp349 = atspre_gt_int_int (tmp343, 0) ; #line 1842 "pats_main.dats" if (!tmp349) { goto __ats_lab_46_0 ; } #line 1843 "pats_main.dats" tmp331 = tmp325 ; #line 1843 "pats_main.dats" tmp332 = tmp327 ; #line 1843 "pats_main.dats" tmp333 = tmp348 ; #line 1843 "pats_main.dats" goto __ats_lab_process_cmdline2_comarg2_42 ; // tail call break ; /* branch: __ats_lab_46 */ #line 1845 "pats_main.dats" __ats_lab_46_0: #line 1845 "pats_main.dats" #line 1845 "pats_main.dats" tmp350 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1845 "pats_main.dats" if (__strcmpats(tmp350, ATSstrcst("-"))) { goto __ats_lab_47_0 ; } #line 1845 "pats_main.dats" __ats_lab_46_1: #line 1848 "pats_main.dats" tmp351 = atspre_add_int_int (tmp343, 1) ; #line 1848 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_ninpfile) = tmp351 ; #line 1850 "pats_main.dats" /* tmp352 = */ process_nil_38 (tmp325) ; #line 1850 "pats_main.dats" tmp323 = tmp325 ; #line 1850 "pats_main.dats" tmp324 = tmp327 ; #line 1850 "pats_main.dats" goto __ats_lab_process_cmdline_39 ; // tail call break ; /* branch: __ats_lab_47 */ #line 1853 "pats_main.dats" __ats_lab_47_0: #line 1853 "pats_main.dats" // #line 1853 "pats_main.dats" __ats_lab_47_1: #line 1853 "pats_main.dats" tmp353 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1856 "pats_main.dats" tmp354 = atspre_add_int_int (tmp343, 1) ; #line 1856 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_ninpfile) = tmp354 ; #line 1860 "pats_main.dats" tmp356 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_ATSHOME) ; #line 1859 "pats_main.dats" /* tmp355 = */ libatsopt_the_prelude_load_if (tmp356, &ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_preludeflag)) ; #line 1864 "pats_main.dats" tmp358 = atspre_gte_int_int (tmp341, 1) ; #line 1864 "pats_main.dats" if (tmp358) { #line 1865 "pats_main.dats" /* tmp357 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set (1) ; } else { /* empty */ } /* end of [if] */ #line 1868 "pats_main.dats" /* ats_bool_type tmp359 ; */ #line 1868 "pats_main.dats" tmp359 = ats_true_bool ; #line 1869 "pats_main.dats" tmp361 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_depgen) ; #line 1869 "pats_main.dats" tmp360 = atspre_gt_int_int (tmp361, 0) ; #line 1870 "pats_main.dats" if (tmp360) { #line 1870 "pats_main.dats" tmp359 = ats_false_bool ; } else { /* empty */ } /* end of [if] */ #line 1871 "pats_main.dats" tmp364 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_taggen) ; #line 1871 "pats_main.dats" tmp363 = atspre_gt_int_int (tmp364, 0) ; #line 1872 "pats_main.dats" if (tmp363) { #line 1872 "pats_main.dats" tmp359 = ats_false_bool ; } else { /* empty */ } /* end of [if] */ #line 1882 "pats_main.dats" tmp366 = parse_from_given_arglst_toplevel_30 (tmp325, tmp353, tmp327) ; #line 1881 "pats_main.dats" tmp367 = ats_select_mac(tmp366, atslab_0) ; #line 1881 "pats_main.dats" tmp368 = ats_select_mac(tmp366, atslab_1) ; #line 1885 "pats_main.dats" if (tmp360) { #line 1885 "pats_main.dats" /* tmp369 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen (tmp325, tmp353, tmp368) ; } else { /* empty */ } /* end of [if] */ #line 1887 "pats_main.dats" if (tmp363) { #line 1887 "pats_main.dats" /* tmp370 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen (tmp325, tmp353, tmp368) ; } else { /* empty */ } /* end of [if] */ #line 1890 "pats_main.dats" if (tmp359) { #line 1890 "pats_main.dats" /* tmp371 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2 (tmp325, tmp353, tmp368) ; } else { /* empty */ } /* end of [if] */ #line 1894 "pats_main.dats" tmp323 = tmp325 ; #line 1894 "pats_main.dats" tmp324 = tmp367 ; #line 1894 "pats_main.dats" goto __ats_lab_process_cmdline_39 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_48 */ #line 1899 "pats_main.dats" __ats_lab_48_0: #line 1899 "pats_main.dats" __ats_lab_48_1: #line 1900 "pats_main.dats" tmp372 = isoutwait_8 (ats_ptrget_mac(anairiats_rec_3, tmp325)) ; #line 1900 "pats_main.dats" if (!tmp372) { goto __ats_lab_49_1 ; } #line 1902 "pats_main.dats" tmp373 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; #line 1902 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) = tmp373 ; #line 1904 "pats_main.dats" #line 1904 "pats_main.dats" tmp374 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1907 "pats_main.dats" /* tmp375 = */ theOutFilename_set_12 (ats_castfn_mac(ats_ptr_type, tmp374)) ; #line 1909 "pats_main.dats" tmp376 = outchan_make_path_5 (tmp325, tmp374) ; #line 1910 "pats_main.dats" /* tmp377 = */ cmdstate_set_outchan_6 (tmp325, tmp376) ; #line 1913 "pats_main.dats" tmp323 = tmp325 ; #line 1913 "pats_main.dats" tmp324 = tmp327 ; #line 1913 "pats_main.dats" goto __ats_lab_process_cmdline_39 ; // tail call break ; /* branch: __ats_lab_49 */ #line 1916 "pats_main.dats" __ats_lab_49_0: #line 1916 "pats_main.dats" __ats_lab_49_1: #line 1917 "pats_main.dats" tmp378 = isdatswait_9 (ats_ptrget_mac(anairiats_rec_3, tmp325)) ; #line 1917 "pats_main.dats" if (!tmp378) { goto __ats_lab_50_1 ; } #line 1919 "pats_main.dats" tmp379 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; #line 1919 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) = tmp379 ; #line 1920 "pats_main.dats" #line 1920 "pats_main.dats" tmp380 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1921 "pats_main.dats" /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_DATS_def (tmp380) ; #line 1923 "pats_main.dats" tmp323 = tmp325 ; #line 1923 "pats_main.dats" tmp324 = tmp327 ; #line 1923 "pats_main.dats" goto __ats_lab_process_cmdline_39 ; // tail call break ; /* branch: __ats_lab_50 */ #line 1926 "pats_main.dats" __ats_lab_50_0: #line 1926 "pats_main.dats" __ats_lab_50_1: #line 1927 "pats_main.dats" tmp382 = isiatswait_10 (ats_ptrget_mac(anairiats_rec_3, tmp325)) ; #line 1927 "pats_main.dats" if (!tmp382) { goto __ats_lab_51_0 ; } #line 1929 "pats_main.dats" tmp383 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; #line 1929 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) = tmp383 ; #line 1930 "pats_main.dats" #line 1930 "pats_main.dats" tmp384 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1931 "pats_main.dats" /* tmp385 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_IATS_dir (tmp384) ; #line 1933 "pats_main.dats" tmp323 = tmp325 ; #line 1933 "pats_main.dats" tmp324 = tmp327 ; #line 1933 "pats_main.dats" goto __ats_lab_process_cmdline_39 ; // tail call break ; /* branch: __ats_lab_51 */ #line 1936 "pats_main.dats" __ats_lab_51_0: #line 1936 "pats_main.dats" #line 1936 "pats_main.dats" tmp386 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_0) ; #line 1936 "pats_main.dats" if (tmp386 != 1) { goto __ats_lab_52_0 ; } #line 1936 "pats_main.dats" __ats_lab_51_1: #line 1936 "pats_main.dats" tmp387 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1937 "pats_main.dats" tmp328 = tmp325 ; #line 1937 "pats_main.dats" tmp329 = tmp327 ; #line 1937 "pats_main.dats" tmp330 = tmp387 ; #line 1937 "pats_main.dats" goto __ats_lab_process_cmdline2_comarg1_41 ; // tail call break ; /* branch: __ats_lab_52 */ #line 1938 "pats_main.dats" __ats_lab_52_0: #line 1938 "pats_main.dats" #line 1938 "pats_main.dats" tmp388 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_0) ; #line 1938 "pats_main.dats" if (tmp388 != 2) { goto __ats_lab_53_0 ; } #line 1938 "pats_main.dats" __ats_lab_52_1: #line 1938 "pats_main.dats" tmp389 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1939 "pats_main.dats" tmp331 = tmp325 ; #line 1939 "pats_main.dats" tmp332 = tmp327 ; #line 1939 "pats_main.dats" tmp333 = tmp389 ; #line 1939 "pats_main.dats" goto __ats_lab_process_cmdline2_comarg2_42 ; // tail call break ; /* branch: __ats_lab_53 */ #line 1940 "pats_main.dats" __ats_lab_53_0: #line 1940 "pats_main.dats" // #line 1940 "pats_main.dats" __ats_lab_53_1: #line 1940 "pats_main.dats" tmp390 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; #line 1942 "pats_main.dats" /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning (tmp390) ; #line 1944 "pats_main.dats" tmp392 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; #line 1944 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) = tmp392 ; #line 1944 "pats_main.dats" tmp323 = tmp325 ; #line 1944 "pats_main.dats" tmp324 = tmp327 ; #line 1944 "pats_main.dats" goto __ats_lab_process_cmdline_39 ; // tail call break ; } while (0) ; return /* tmp339 */ ; #line 1780 "pats_main.dats" __ats_lab_process_cmdline2_comarg1_41: #line 1959 "pats_main.dats" tmp394 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; #line 1959 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp394 ; #line 1963 "pats_main.dats" do { /* branch: __ats_lab_54 */ #line 1965 "pats_main.dats" __ats_lab_54_0: #line 1965 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-o"))) { goto __ats_lab_55_0 ; } #line 1965 "pats_main.dats" __ats_lab_54_1: #line 1967 "pats_main.dats" tmp396 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; #line 1967 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp396 ; break ; /* branch: __ats_lab_55 */ #line 1969 "pats_main.dats" __ats_lab_55_0: #line 1969 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-s"))) { goto __ats_lab_56_0 ; } #line 1969 "pats_main.dats" __ats_lab_55_1: #line 1971 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_ninpfile) = 0 ; #line 1972 "pats_main.dats" tmp397 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2) ; #line 1972 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp397 ; break ; /* branch: __ats_lab_56 */ #line 1974 "pats_main.dats" __ats_lab_56_0: #line 1974 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-d"))) { goto __ats_lab_57_0 ; } #line 1974 "pats_main.dats" __ats_lab_56_1: #line 1976 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_ninpfile) = 0 ; #line 1977 "pats_main.dats" tmp398 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3) ; #line 1977 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp398 ; break ; /* branch: __ats_lab_57 */ #line 1979 "pats_main.dats" __ats_lab_57_0: #line 1979 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-dd"))) { goto __ats_lab_58_0 ; } #line 1979 "pats_main.dats" __ats_lab_57_1: #line 1981 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_ninpfile) = 0 ; #line 1982 "pats_main.dats" tmp399 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4) ; #line 1982 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp399 ; break ; /* branch: __ats_lab_58 */ #line 1985 "pats_main.dats" __ats_lab_58_0: #line 1985 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-cc"))) { goto __ats_lab_59_0 ; } #line 1985 "pats_main.dats" __ats_lab_58_1: #line 1985 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_typecheckflag) = 0 ; break ; /* branch: __ats_lab_59 */ #line 1986 "pats_main.dats" __ats_lab_59_0: #line 1986 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-tc"))) { goto __ats_lab_60_0 ; } #line 1986 "pats_main.dats" __ats_lab_59_1: #line 1986 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_typecheckflag) = 1 ; break ; /* branch: __ats_lab_60 */ #line 1988 "pats_main.dats" __ats_lab_60_0: #line 1988 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-dep"))) { goto __ats_lab_61_0 ; } #line 1988 "pats_main.dats" __ats_lab_60_1: #line 1988 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_depgen) = 1 ; break ; /* branch: __ats_lab_61 */ #line 1988 "pats_main.dats" __ats_lab_61_0: #line 1988 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-tag"))) { goto __ats_lab_62_0 ; } #line 1988 "pats_main.dats" __ats_lab_61_1: #line 1988 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_taggen) = 1 ; break ; /* branch: __ats_lab_62 */ #line 1990 "pats_main.dats" __ats_lab_62_0: #line 1990 "pats_main.dats" __ats_lab_62_1: #line 1991 "pats_main.dats" tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_DATS_flag (tmp330) ; #line 1991 "pats_main.dats" if (!tmp400) { goto __ats_lab_63_1 ; } #line 1992 "pats_main.dats" tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__DATS_extract (tmp330) ; #line 1993 "pats_main.dats" tmp402 = atspre_stropt_is_some (tmp401) ; #line 1995 "pats_main.dats" if (tmp402) { #line 1997 "pats_main.dats" /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_DATS_def (ats_castfn_mac(ats_ptr_type, tmp401)) ; } else { #line 1999 "pats_main.dats" tmp403 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKdefine_5) ; #line 1999 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp403 ; } /* end of [if] */ break ; /* branch: __ats_lab_63 */ #line 2005 "pats_main.dats" __ats_lab_63_0: #line 2005 "pats_main.dats" __ats_lab_63_1: #line 2006 "pats_main.dats" tmp404 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_IATS_flag (tmp330) ; #line 2006 "pats_main.dats" if (!tmp404) { goto __ats_lab_64_0 ; } #line 2007 "pats_main.dats" tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__IATS_extract (tmp330) ; #line 2008 "pats_main.dats" tmp406 = atspre_stropt_is_some (tmp405) ; #line 2010 "pats_main.dats" if (tmp406) { #line 2012 "pats_main.dats" /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_IATS_dir (ats_castfn_mac(ats_ptr_type, tmp405)) ; } else { #line 2014 "pats_main.dats" tmp407 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinclude_6) ; #line 2014 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp407 ; } /* end of [if] */ break ; /* branch: __ats_lab_64 */ #line 2021 "pats_main.dats" __ats_lab_64_0: #line 2021 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-h"))) { goto __ats_lab_65_0 ; } #line 2021 "pats_main.dats" __ats_lab_64_1: #line 2022 "pats_main.dats" tmp408 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_comarg0) ; #line 2024 "pats_main.dats" /* tmp395 = */ patsopt_usage_0 (stdout, tmp408) ; break ; /* branch: __ats_lab_65 */ #line 2027 "pats_main.dats" __ats_lab_65_0: #line 2027 "pats_main.dats" if (__strcmpats(tmp330, ATSstrcst("-v"))) { goto __ats_lab_66_0 ; } #line 2027 "pats_main.dats" __ats_lab_65_1: #line 2027 "pats_main.dats" /* tmp395 = */ libatsopt_patsopt_version (stdout) ; break ; /* branch: __ats_lab_66 */ #line 2029 "pats_main.dats" __ats_lab_66_0: #line 2029 "pats_main.dats" __ats_lab_66_1: #line 2029 "pats_main.dats" /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning (tmp330) ; break ; } while (0) ; #line 2034 "pats_main.dats" tmp323 = tmp328 ; #line 2034 "pats_main.dats" tmp324 = tmp329 ; #line 2034 "pats_main.dats" goto __ats_lab_process_cmdline_39 ; // tail call return /* tmp393 */ ; #line 1780 "pats_main.dats" __ats_lab_process_cmdline2_comarg2_42: #line 2048 "pats_main.dats" tmp410 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; #line 2048 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp410 ; #line 2052 "pats_main.dats" do { /* branch: __ats_lab_67 */ #line 2054 "pats_main.dats" __ats_lab_67_0: #line 2054 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--help"))) { goto __ats_lab_68_0 ; } #line 2054 "pats_main.dats" __ats_lab_67_1: #line 2056 "pats_main.dats" tmp412 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_comarg0) ; #line 2055 "pats_main.dats" /* tmp411 = */ patsopt_usage_0 (stdout, tmp412) ; break ; /* branch: __ats_lab_68 */ #line 2059 "pats_main.dats" __ats_lab_68_0: #line 2059 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--output"))) { goto __ats_lab_69_0 ; } #line 2059 "pats_main.dats" __ats_lab_68_1: #line 2060 "pats_main.dats" tmp413 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; #line 2060 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp413 ; break ; /* branch: __ats_lab_69 */ #line 2061 "pats_main.dats" __ats_lab_69_0: #line 2061 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--output-w"))) { goto __ats_lab_70_0 ; } #line 2061 "pats_main.dats" __ats_lab_69_1: #line 2062 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_outmode) = "w" ; #line 2063 "pats_main.dats" tmp414 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; #line 2063 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp414 ; break ; /* branch: __ats_lab_70 */ #line 2065 "pats_main.dats" __ats_lab_70_0: #line 2065 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--output-a"))) { goto __ats_lab_71_0 ; } #line 2065 "pats_main.dats" __ats_lab_70_1: #line 2066 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_outmode) = "a" ; #line 2067 "pats_main.dats" tmp415 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; #line 2067 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp415 ; break ; /* branch: __ats_lab_71 */ #line 2070 "pats_main.dats" __ats_lab_71_0: #line 2070 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--static"))) { goto __ats_lab_72_0 ; } #line 2070 "pats_main.dats" __ats_lab_71_1: #line 2071 "pats_main.dats" tmp416 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2) ; #line 2071 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp416 ; break ; /* branch: __ats_lab_72 */ #line 2073 "pats_main.dats" __ats_lab_72_0: #line 2073 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--dynamic"))) { goto __ats_lab_73_0 ; } #line 2073 "pats_main.dats" __ats_lab_72_1: #line 2074 "pats_main.dats" tmp417 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3) ; #line 2074 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp417 ; break ; /* branch: __ats_lab_73 */ #line 2076 "pats_main.dats" __ats_lab_73_0: #line 2076 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--dynamics"))) { goto __ats_lab_74_0 ; } #line 2076 "pats_main.dats" __ats_lab_73_1: #line 2077 "pats_main.dats" tmp418 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4) ; #line 2077 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp418 ; break ; /* branch: __ats_lab_74 */ #line 2080 "pats_main.dats" __ats_lab_74_0: #line 2080 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--compile"))) { goto __ats_lab_75_0 ; } #line 2080 "pats_main.dats" __ats_lab_74_1: #line 2080 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_typecheckflag) = 0 ; break ; /* branch: __ats_lab_75 */ #line 2081 "pats_main.dats" __ats_lab_75_0: #line 2081 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--typecheck"))) { goto __ats_lab_76_0 ; } #line 2081 "pats_main.dats" __ats_lab_75_1: #line 2081 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_typecheckflag) = 1 ; break ; /* branch: __ats_lab_76 */ #line 2083 "pats_main.dats" __ats_lab_76_0: #line 2083 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--gline"))) { goto __ats_lab_77_0 ; } #line 2083 "pats_main.dats" __ats_lab_76_1: #line 2084 "pats_main.dats" /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_set (1) ; break ; /* branch: __ats_lab_77 */ #line 2087 "pats_main.dats" __ats_lab_77_0: #line 2087 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--debug"))) { goto __ats_lab_78_0 ; } #line 2087 "pats_main.dats" __ats_lab_77_1: #line 2088 "pats_main.dats" /* tmp411 = */ patsopt_debug_flag_set (1) ; break ; /* branch: __ats_lab_78 */ #line 2090 "pats_main.dats" __ats_lab_78_0: #line 2090 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--debug2"))) { goto __ats_lab_79_0 ; } #line 2090 "pats_main.dats" __ats_lab_78_1: #line 2091 "pats_main.dats" /* tmp419 = */ patsopt_debug_flag_set (1) ; #line 2092 "pats_main.dats" /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_set (1) ; break ; /* branch: __ats_lab_79 */ #line 2095 "pats_main.dats" __ats_lab_79_0: #line 2095 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--depgen"))) { goto __ats_lab_80_0 ; } #line 2095 "pats_main.dats" __ats_lab_79_1: #line 2095 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_depgen) = 1 ; break ; /* branch: __ats_lab_80 */ #line 2096 "pats_main.dats" __ats_lab_80_0: #line 2096 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--taggen"))) { goto __ats_lab_81_0 ; } #line 2096 "pats_main.dats" __ats_lab_80_1: #line 2096 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_taggen) = 1 ; break ; /* branch: __ats_lab_81 */ #line 2098 "pats_main.dats" __ats_lab_81_0: #line 2098 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--atsreloc"))) { goto __ats_lab_82_0 ; } #line 2098 "pats_main.dats" __ats_lab_81_1: #line 2099 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_atsreloc) = 1 ; #line 2100 "pats_main.dats" /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set (1) ; break ; /* branch: __ats_lab_82 */ #line 2103 "pats_main.dats" __ats_lab_82_0: #line 2103 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--codegen-2"))) { goto __ats_lab_83_0 ; } #line 2103 "pats_main.dats" __ats_lab_82_1: #line 2103 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_codegenflag) = 2 ; break ; /* branch: __ats_lab_83 */ #line 2104 "pats_main.dats" __ats_lab_83_0: #line 2104 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--jsonize-2"))) { goto __ats_lab_84_0 ; } #line 2104 "pats_main.dats" __ats_lab_83_1: #line 2104 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_jsonizeflag) = 2 ; break ; /* branch: __ats_lab_84 */ #line 2106 "pats_main.dats" __ats_lab_84_0: #line 2106 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--tlcalopt-disable"))) { goto __ats_lab_85_0 ; } #line 2106 "pats_main.dats" __ats_lab_84_1: #line 2108 "pats_main.dats" /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set (0) ; break ; /* branch: __ats_lab_85 */ #line 2111 "pats_main.dats" __ats_lab_85_0: #line 2111 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--constraint-export"))) { goto __ats_lab_86_0 ; } #line 2111 "pats_main.dats" __ats_lab_85_1: #line 2113 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_cnstrsolveflag) = 1 ; break ; /* branch: __ats_lab_86 */ #line 2115 "pats_main.dats" __ats_lab_86_0: #line 2115 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--constraint-ignore"))) { goto __ats_lab_87_0 ; } #line 2115 "pats_main.dats" __ats_lab_86_1: #line 2117 "pats_main.dats" ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_cnstrsolveflag) = -1 ; break ; /* branch: __ats_lab_87 */ #line 2120 "pats_main.dats" __ats_lab_87_0: #line 2120 "pats_main.dats" if (__strcmpats(tmp333, ATSstrcst("--version"))) { goto __ats_lab_88_0 ; } #line 2120 "pats_main.dats" __ats_lab_87_1: #line 2120 "pats_main.dats" /* tmp411 = */ libatsopt_patsopt_version (stdout) ; break ; /* branch: __ats_lab_88 */ #line 2122 "pats_main.dats" __ats_lab_88_0: #line 2122 "pats_main.dats" __ats_lab_88_1: #line 2122 "pats_main.dats" /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning (tmp333) ; break ; } while (0) ; #line 2127 "pats_main.dats" tmp323 = tmp331 ; #line 2127 "pats_main.dats" tmp324 = tmp332 ; #line 2127 "pats_main.dats" goto __ats_lab_process_cmdline_39 ; // tail call return /* tmp409 */ ; return /* (tmp420) */ ; } /* end of [process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 43661(line=2144, offs=3) -- 45909(line=2277, offs=2) */ ATSglobaldec() ats_void_type libatsopt_patsopt_main (ats_int_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp425) ; // ATSlocal_void (tmp426) ; // ATSlocal_void (tmp427) ; // ATSlocal_void (tmp428) ; // ATSlocal_void (tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_bool_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; // ATSlocal_void (tmp433) ; // ATSlocal_void (tmp434) ; // ATSlocal_void (tmp435) ; // ATSlocal_void (tmp436) ; // ATSlocal_void (tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (anairiats_rec_3, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; // ATSlocal_void (tmp444) ; // ATSlocal_void (tmp445) ; ATSlocal (ats_bool_type, tmp446) ; ATSlocal (ats_int_type, tmp447) ; __ats_lab_libatsopt_patsopt_main: #line 2148 "pats_main.dats" /* tmp426 = */ patsopt_PATSHOME_set () ; #line 2156 "pats_main.dats" /* tmp427 = */ patsopt_PATSCONTRIB_set () ; #line 2165 "pats_main.dats" /* tmp428 = */ patsopt_PATSRELOCROOT_set () ; #line 2174 "pats_main.dats" /* tmp429 = */ patsopt_PATSHOMELOCS_set () ; #line 2186 "pats_main.dats" tmp430 = patsopt_PATSHOME_get () ; #line 2194 "pats_main.dats" tmp431 = atspre_stropt_is_some (tmp430) ; #line 2198 "pats_main.dats" if (tmp431) { #line 2200 "pats_main.dats" tmp432 = ats_castfn_mac(ats_ptr_type, tmp430) ; } else { #line 2205 "pats_main.dats" /* tmp433 = */ atspre_prerr_string (ATSstrcst("The environment variable PATSHOME is undefined!")) ; #line 2203 "pats_main.dats" /* tmp434 = */ atspre_prerr_newline () ; #line 2208 "pats_main.dats" /* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; } /* end of [if] */ #line 2216 "pats_main.dats" /* tmp435 = */ libatsopt_the_prepathlst_push (tmp432) ; #line 2219 "pats_main.dats" /* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_initialize () ; #line 2221 "pats_main.dats" /* tmp437 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_initialize () ; #line 2227 "pats_main.dats" tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarglst_parse (arg0, arg1) ; #line 2224 "pats_main.dats" // if (tmp438 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 2225 "pats_main.dats" tmp439 = ats_caselptrlab_mac(anairiats_sum_5, tmp438, atslab_0) ; #line 2225 "pats_main.dats" tmp440 = ats_caselptrlab_mac(anairiats_sum_5, tmp438, atslab_1) ; #line 2224 "pats_main.dats" ATS_FREE(tmp438) ; #line 2231 "pats_main.dats" /* anairiats_rec_3 tmp441 ; */ #line 2234 "pats_main.dats" tmp442 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; #line 2247 "pats_main.dats" tmp443 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp443)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp443, atslab_0, stdout) ; #line 2231 "pats_main.dats" tmp441.atslab_comarg0 = tmp439 ; tmp441.atslab_ATSHOME = tmp432 ; tmp441.atslab_waitknd = tmp442 ; tmp441.atslab_ninpfile = 0 ; tmp441.atslab_preludeflag = 0 ; tmp441.atslab_infil = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; tmp441.atslab_outmode = "w" ; tmp441.atslab_outchan = tmp443 ; tmp441.atslab_depgen = 0 ; tmp441.atslab_taggen = 0 ; tmp441.atslab_atsreloc = 0 ; tmp441.atslab_codegenflag = 0 ; tmp441.atslab_jsonizeflag = 0 ; tmp441.atslab_typecheckflag = 0 ; tmp441.atslab_cnstrsolveflag = 0 ; tmp441.atslab_olevel = 0 ; tmp441.atslab_nerror = 0 ; #line 2266 "pats_main.dats" /* tmp444 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_PATSRELOCROOT () ; #line 2268 "pats_main.dats" /* tmp445 = */ process_cmdline_39 ((&tmp441), tmp440) ; #line 2275 "pats_main.dats" tmp447 = ats_select_mac(tmp441, atslab_nerror) ; #line 2275 "pats_main.dats" tmp446 = atspre_gt_int_int (tmp447, 0) ; #line 2275 "pats_main.dats" if (tmp446) { #line 2275 "pats_main.dats" /* tmp425 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; } else { /* empty */ } /* end of [if] */ return /* (tmp425) */ ; } /* end of [libatsopt_patsopt_main] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 46025(line=2285, offs=5) -- 46138(line=2291, offs=49) */ ATSglobaldec() ats_void_type mainats (ats_int_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp448) ; ATSlocal (ats_bool_type, tmp449) ; // ATSlocal_void (tmp450) ; __ats_lab_mainats: #line 2289 "pats_main.dats" tmp449 = atspre_igte (arg0, 2) ; #line 2288 "pats_main.dats" if (tmp449) { #line 2290 "pats_main.dats" /* tmp448 = */ libatsopt_patsopt_main (arg0, arg1) ; } else { #line 2291 "pats_main.dats" /* tmp450 = */ atspre_prerr_string (ATSstrcst("Hello from ATS2(ATS/Postiats)!")) ; #line 2291 "pats_main.dats" /* tmp448 = */ atspre_prerr_newline () ; } /* end of [if] */ return /* (tmp448) */ ; } /* end of [mainats] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload (void) ; // 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_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKdefine_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinclude_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANref_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANptr_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__dynload (void) ; // dynload flag declaration // extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__dynload () { // _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp90, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ #line 170 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__dynload () ; #line 172 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__dynload () ; #line 174 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__dynload () ; #line 176 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__dynload () ; #line 177 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__dynload () ; #line 179 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload () ; #line 181 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__dynload () ; #line 183 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__dynload () ; #line 185 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__dynload () ; #line 187 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__dynload () ; #line 189 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__dynload () ; #line 191 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__dynload () ; #line 193 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__dynload () ; #line 197 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__dynload () ; #line 198 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__dynload () ; #line 199 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__dynload () ; #line 200 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__dynload () ; #line 201 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__dynload () ; #line 202 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__dynload () ; #line 204 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__dynload () ; #line 205 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__dynload () ; #line 206 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__dynload () ; #line 207 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__dynload () ; #line 208 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__dynload () ; #line 209 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__dynload () ; #line 210 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__dynload () ; #line 211 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__dynload () ; #line 213 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__dynload () ; #line 214 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__dynload () ; #line 215 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__dynload () ; #line 216 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__dynload () ; #line 217 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__dynload () ; #line 218 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__dynload () ; #line 219 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload () ; #line 220 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__dynload () ; #line 221 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__dynload () ; #line 222 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__dynload () ; #line 223 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__dynload () ; #line 224 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__dynload () ; #line 225 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__dynload () ; #line 227 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__dynload () ; #line 228 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__dynload () ; #line 230 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__dynload () ; #line 231 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__dynload () ; #line 232 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__dynload () ; #line 233 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__dynload () ; #line 235 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__dynload () ; #line 237 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__dynload () ; #line 238 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__dynload () ; #line 240 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__dynload () ; #line 242 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload () ; #line 243 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__dynload () ; #line 244 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__dynload () ; #line 245 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__dynload () ; #line 246 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__dynload () ; #line 247 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__dynload () ; #line 248 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__dynload () ; #line 249 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__dynload () ; #line 250 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__dynload () ; #line 252 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload () ; #line 253 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__dynload () ; #line 255 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__dynload () ; #line 256 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__dynload () ; #line 258 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__dynload () ; #line 260 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload () ; #line 261 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload () ; #line 262 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload () ; #line 264 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__dynload () ; #line 265 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__dynload () ; #line 267 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__dynload () ; #line 269 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__dynload () ; #line 270 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__dynload () ; #line 272 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__dynload () ; #line 273 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__dynload () ; #line 274 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__dynload () ; #line 276 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__dynload () ; #line 277 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__dynload () ; #line 279 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__dynload () ; #line 281 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__dynload () ; #line 282 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__dynload () ; #line 284 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__dynload () ; #line 286 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__dynload () ; #line 287 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload () ; #line 288 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__dynload () ; #line 290 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__dynload () ; #line 292 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__dynload () ; #line 294 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__dynload () ; #line 296 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__dynload () ; #line 297 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__dynload () ; #line 298 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__dynload () ; #line 299 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload () ; #line 300 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__dynload () ; #line 301 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__dynload () ; #line 302 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload () ; #line 303 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__dynload () ; #line 305 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload () ; #line 306 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__dynload () ; #line 307 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__dynload () ; #line 308 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__dynload () ; #line 309 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__dynload () ; #line 311 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__dynload () ; #line 313 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__dynload () ; #line 314 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__dynload () ; #line 316 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__dynload () ; #line 317 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__dynload () ; #line 319 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload () ; #line 320 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__dynload () ; #line 321 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__dynload () ; #line 322 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__dynload () ; #line 323 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__dynload () ; #line 324 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__dynload () ; #line 325 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__dynload () ; #line 326 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__dynload () ; #line 327 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__dynload () ; #line 328 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload () ; #line 330 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__dynload () ; #line 331 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__dynload () ; #line 332 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload () ; #line 333 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__dynload () ; #line 335 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__dynload () ; #line 336 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__dynload () ; #line 337 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__dynload () ; #line 338 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__dynload () ; #line 339 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__dynload () ; #line 340 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__dynload () ; #line 341 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__dynload () ; #line 342 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__dynload () ; #line 343 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__dynload () ; #line 344 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__dynload () ; #line 345 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__dynload () ; #line 346 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__dynload () ; #line 347 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__dynload () ; #line 348 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__dynload () ; #line 349 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__dynload () ; #line 350 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload () ; #line 351 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload () ; #line 353 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__dynload () ; #line 354 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__dynload () ; #line 362 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__dynload () ; #line 364 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__dynload () ; #line 366 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__dynload () ; #line 368 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__dynload () ; #line 369 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__dynload () ; #line 371 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload () ; #line 372 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__dynload () ; #line 373 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__dynload () ; #line 374 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload () ; #line 376 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload () ; #line 377 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__dynload () ; #line 378 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__dynload () ; #line 380 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__dynload () ; #line 381 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__dynload () ; #line 382 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__dynload () ; #line 384 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__dynload () ; #line 385 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__dynload () ; #line 386 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__dynload () ; #line 387 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__dynload () ; #line 389 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__dynload () ; #line 390 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__dynload () ; #line 392 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__dynload () ; #line 394 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__dynload () ; #line 395 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__dynload () ; #line 397 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload () ; #line 399 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__dynload () ; #line 400 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__dynload () ; #line 402 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__dynload () ; #line 404 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dynload () ; #line 405 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__dynload () ; #line 407 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload () ; #line 409 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__dynload () ; #line 411 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__dynload () ; #line 412 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__dynload () ; #line 414 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__dynload () ; #line 416 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__dynload () ; #line 418 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__dynload () ; #line 420 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload () ; #line 422 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__dynload () ; #line 423 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__dynload () ; #line 424 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__dynload () ; #line 426 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__dynload () ; #line 427 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__dynload () ; #line 428 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__dynload () ; #line 429 "pats_main.dats" _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__dynload () ; #line 792 "pats_main.dats" /* ats_ptr_type statmp90 ; */ #line 793 "pats_main.dats" statmp90 = atspre_stropt_none ; #line 796 "pats_main.dats" /* statmp91 = */ atspre_vbox_make_view_ptr ((&statmp90)) ; #line 795 "pats_main.dats" /* statmp92 = ats_selsin_mac(statmp91, atslab_1) */ ; return ; } /* end of [dynload function] */ ats_void_type libatsopt_dynloadall () { _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__dynload () ; return ; } int main (int argc, char *argv[]) { ATS_GC_INIT() ; mainats_prelude() ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__dynload() ; mainats((ats_int_type)argc, (ats_ptr_type)argv) ; return (0) ; } /* end of main */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_main_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_environ_dats.c0000644000175000017500000016206413431250607023377 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_3 ; typedef struct { anairiats_rec_3 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_nil) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_ismem) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_level) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst_fin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst_fin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_fnxlablst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_flablst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argenv) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_vbindmap) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_funent_set_flablst_fin) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_funent_set_d2envlst_fin) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type aux_funlab_get_flablst_0 (ats_ptr_type arg0) ; static ats_ptr_type auxtrclo_1 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type aux_funlab_get_d2envlst_3 (ats_ptr_type arg0) ; static ats_ptr_type auxd2es_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxtrclo_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) ; static ats_ptr_type aux_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type auxmap_13 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxenv_14 (ats_ref_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_void_type auxlst_16 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp67) ; ATSstatic (ats_ptr_type, statmp68) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 2551(line=112, offs=1) -- 2693(line=122, offs=4) */ ATSstaticdec() ats_ptr_type aux_funlab_get_flablst_0 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_aux_funlab_get_flablst_0: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (arg0) ; if (tmp1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 2618(line=117, offs=5) -- 2656(line=118, offs=26)") ; } tmp2 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst (tmp2) ; return (tmp0) ; } /* end of [aux_funlab_get_flablst_0] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 2734(line=125, offs=1) -- 3975(line=187, offs=4) */ ATSstaticdec() ats_ptr_type auxtrclo_1 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab_auxtrclo_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level (tmp4) ; tmp7 = atspre_gte_int_int (tmp6, arg0) ; if (tmp7) { tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_ismem (arg3, tmp4) ; if (tmp8) { arg0 = arg0 ; arg1 = tmp5 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_auxtrclo_1 ; // tail call } else { tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add (arg3, tmp4) ; tmp10 = aux_funlab_get_flablst_0 (tmp4) ; tmp11 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp11, atslab_0, tmp5) ; ats_selptrset_mac(anairiats_sum_2, tmp11, atslab_1, arg2) ; arg0 = arg0 ; arg1 = tmp10 ; arg2 = tmp11 ; arg3 = tmp9 ; goto __ats_lab_auxtrclo_1 ; // tail call } /* end of [if] */ } else { tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add (arg3, tmp4) ; arg0 = arg0 ; arg1 = tmp5 ; arg2 = arg2 ; arg3 = tmp12 ; goto __ats_lab_auxtrclo_1 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp3 = arg3 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp14 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; ATS_FREE(arg2) ; arg0 = arg0 ; arg1 = tmp13 ; arg2 = tmp14 ; arg3 = arg3 ; goto __ats_lab_auxtrclo_1 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp3) ; } /* end of [auxtrclo_1] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 4054(line=193, offs=3) -- 4989(line=241, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_flablst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_flablst: tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst_fin (arg0) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp16 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_1, tmp16, atslab_0) ; tmp15 = tmp17 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp16 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab (arg0) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_level (arg0) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst (arg0) ; tmp21 = (ats_sum_ptr_type)0 ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_nil () ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add (tmp22, tmp18) ; tmp24 = auxtrclo_1 (tmp19, tmp20, tmp21, tmp23) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize_free (tmp24) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp27, atslab_0, ats_castfn_mac(ats_ptr_type, tmp25)) ; /* tmp26 = */ patsopt_funent_set_flablst_fin (arg0, tmp27) ; tmp15 = ats_castfn_mac(ats_ptr_type, tmp25) ; break ; } while (0) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_flablst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 5474(line=274, offs=1) -- 5775(line=288, offs=4) */ ATSstaticdec() ats_ptr_type aux_funlab_get_d2envlst_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_aux_funlab_get_d2envlst_3: tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (arg0) ; if (tmp29 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 5538(line=277, offs=5) -- 5576(line=277, offs=43)") ; } tmp30 = ats_caselptrlab_mac(anairiats_sum_1, tmp29, atslab_0) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst_fin (tmp30) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp31 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_1, tmp31, atslab_0) ; tmp28 = tmp32 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp31 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst (tmp30) ; break ; } while (0) ; return (tmp28) ; } /* end of [aux_funlab_get_d2envlst_3] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 5817(line=291, offs=1) -- 6362(line=321, offs=4) */ ATSstaticdec() ats_ptr_type auxd2es_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab_auxd2es_4: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp35 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add (arg2, tmp34) ; arg0 = tmp35 ; arg1 = arg1 ; arg2 = tmp36 ; goto __ats_lab_auxd2es_4 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp33 = arg2 ; break ; } while (0) ; return (tmp33) ; } /* end of [auxd2es_4] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 6462(line=329, offs=1) -- 6999(line=355, offs=4) */ ATSstaticdec() ats_ptr_type auxtrclo_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab_auxtrclo_5: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp37 = arg2 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp39 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp40 = aux_funlab_get_d2envlst_3 (tmp38) ; tmp41 = auxd2es_4 (tmp40, arg1, arg2) ; arg0 = tmp39 ; arg1 = arg1 ; arg2 = tmp41 ; goto __ats_lab_auxtrclo_5 ; // tail call break ; } while (0) ; return (tmp37) ; } /* end of [auxtrclo_5] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 7079(line=361, offs=3) -- 7820(line=389, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst: tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst_fin (arg0) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp43 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_1, tmp43, atslab_0) ; tmp42 = tmp44 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp43 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_flablst (arg0) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_vbindmap (arg0) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil () ; tmp48 = auxtrclo_5 (tmp45, tmp46, tmp47) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free (tmp48) ; tmp51 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp51, atslab_0, ats_castfn_mac(ats_ptr_type, tmp49)) ; /* tmp50 = */ patsopt_funent_set_d2envlst_fin (arg0, tmp51) ; tmp42 = ats_castfn_mac(ats_ptr_type, tmp49) ; break ; } while (0) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50559(line=1787, offs=18) -- 50622(line=1789, offs=4) */ ATSstaticdec() ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp56) ; __ats_lab_list_is_cons_01295_: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp56 = ats_true_bool ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp56 = ats_false_bool ; break ; } while (0) ; return (tmp56) ; } /* end of [list_is_cons_01295_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 7928(line=397, offs=3) -- 8135(line=408, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_is_envful (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_is_envful: tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (arg0) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp53 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_1, tmp53, atslab_0) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (tmp55) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp53 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp54 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp52 = list_is_cons_01295_ (tmp54) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_is_envful] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 8243(line=416, offs=5) -- 8498(line=431, offs=4) */ ATSstaticdec() ats_ptr_type aux_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab_aux_10: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp60 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (tmp59) ; tmp62 = aux_10 (tmp60, arg1) ; tmp58 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp58, atslab_0, tmp61) ; ats_selptrset_mac(anairiats_sum_2, tmp58, atslab_1, tmp62) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp58 = arg1 ; break ; } while (0) ; return (tmp58) ; } /* end of [aux_10] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 8223(line=414, offs=3) -- 8746(line=444, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_fullarg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_fullarg: tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (arg0) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp63 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_1, tmp63, atslab_0) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (tmp65) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp63 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp64 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_arg (arg0) ; tmp57 = aux_10 (tmp64, tmp66) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type_fullarg] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp70 ; */ tmp70 = arg0 ; tmp69 = atspre_ref_make_elt_tsz ((&tmp70), sizeof(ats_ptr_type)) ; return (tmp69) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 9326(line=473, offs=1) -- 9635(line=491, offs=4) */ ATSstaticdec() ats_void_type auxmap_13 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp72) ; ATSlocal (anairiats_rec_3, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab_auxmap_13: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp74 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp76 = ats_select_mac(tmp73, atslab_0) ; tmp77 = ats_select_mac(tmp73, atslab_1) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert (arg0, tmp76, tmp77) ; arg0 = arg0 ; arg1 = tmp74 ; goto __ats_lab_auxmap_13 ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: break ; } while (0) ; return /* (tmp72) */ ; } /* end of [auxmap_13] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 9662(line=494, offs=1) -- 10089(line=513, offs=4) */ ATSstaticdec() ats_void_type auxenv_14 (ats_ref_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_bool_type, tmp84) ; ATSlocal (ats_int_type, tmp85) ; __ats_lab_auxenv_14: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_0) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_1) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (tmp79) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (tmp79) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argenv (arg1, tmp82, arg2) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert (arg0, tmp81, tmp83) ; tmp85 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp85 ; arg3 = tmp80 ; goto __ats_lab_auxenv_14 ; // tail call break ; } while (0) ; return /* (tmp78) */ ; } /* end of [auxenv_14] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 9305(line=470, offs=3) -- 10411(line=529, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; // ATSlocal_void (tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize: tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_loc (arg0) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_vbindmap (arg0) ; tmp88 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp68), atslab_1) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize (tmp87) ; /* tmp89 = */ auxmap_13 (tmp88, tmp90) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_eval_d2envlst (arg0) ; /* tmp71 = */ auxenv_14 (tmp88, tmp86, 0, tmp91) ; return /* (tmp71) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 10532(line=538, offs=1) -- 10909(line=558, offs=2) */ ATSstaticdec() ats_void_type auxlst_16 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; // ATSlocal_void (tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; __ats_lab_auxlst_16: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp94) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (tmp96 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (tmp96 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_1, tmp96, atslab_0) ; /* tmp97 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize (tmp98) ; break ; } while (0) ; arg0 = tmp95 ; goto __ats_lab_auxlst_16 ; // tail call break ; } while (0) ; return /* (tmp93) */ ; } /* end of [auxlst_16] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 10511(line=535, offs=3) -- 11158(line=575, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize2 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp92) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize2: tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_fnxlablst (arg0) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (tmp99 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (tmp99 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_2, tmp99, atslab_1) ; /* tmp92 = */ auxlst_16 (tmp100) ; break ; } while (0) ; return /* (tmp92) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_initize2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 11260(line=581, offs=3) -- 11427(line=592, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_uninitize (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; // ATSlocal_void (tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_uninitize: tmp102 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp68), atslab_1) ; tmp104 = ats_ptrget_mac(ats_ptr_type, tmp102) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_free (tmp104) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil () ; ats_ptrget_mac(ats_ptr_type, tmp102) = tmp105 ; return /* (tmp101) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_varbindmap_uninitize] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_environ.dats: 11533(line=598, offs=3) -- 11642(line=604, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funent_varbindmap_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funent_varbindmap_find: tmp107 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp68), atslab_1) ; tmp108 = ats_ptrget_mac(ats_ptr_type, tmp107) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search (tmp108, arg0) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funent_varbindmap_find] */ /* 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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_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_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp67, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp68, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil () ; statmp68 = ref_01088_ats_ptr_type (statmp67) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_environ_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_syntax_print_dats.c0000644000175000017500000055570013431250607023303 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_i0de_loc ; ats_ptr_type atslab_i0de_sym ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_s0rtq_loc ; ats_ptr_type atslab_s0rtq_node ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_s0taq_loc ; ats_ptr_type atslab_s0taq_node ; } anairiats_rec_7 ; typedef struct { ats_ptr_type atslab_sqi0de_loc ; ats_ptr_type atslab_sqi0de_qua ; ats_ptr_type atslab_sqi0de_sym ; } anairiats_rec_8 ; typedef struct { ats_ptr_type atslab_d0ynq_loc ; ats_ptr_type atslab_d0ynq_node ; } anairiats_rec_9 ; typedef struct { ats_ptr_type atslab_dqi0de_loc ; ats_ptr_type atslab_dqi0de_qua ; ats_ptr_type atslab_dqi0de_sym ; } anairiats_rec_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_e0xp_loc ; ats_ptr_type atslab_e0xp_node ; } anairiats_rec_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_l0ab_loc ; ats_ptr_type atslab_l0ab_lab ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_s0rt_loc ; ats_ptr_type atslab_s0rt_node ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_d0atsrtcon_loc ; ats_ptr_type atslab_d0atsrtcon_sym ; ats_ptr_type atslab_d0atsrtcon_arg ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_d0atsrtdec_loc ; ats_ptr_type atslab_d0atsrtdec_sym ; ats_ptr_type atslab_d0atsrtdec_con ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_a0srt_loc ; ats_ptr_type atslab_a0srt_sym ; ats_ptr_type atslab_a0srt_srt ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_a0msrt_loc ; ats_ptr_type atslab_a0msrt_arg ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_s0rtext_loc ; ats_ptr_type atslab_s0rtext_node ; } anairiats_rec_22 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_23 ; typedef struct { ats_ptr_type atslab_s0qua_loc ; ats_ptr_type atslab_s0qua_node ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_s0exp_loc ; ats_ptr_type atslab_s0exp_node ; } anairiats_rec_25 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_26 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_27 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_28 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_29 ; typedef struct { ats_ptr_type atslab_q0marg_loc ; ats_ptr_type atslab_q0marg_arg ; } anairiats_rec_30 ; typedef struct { ats_ptr_type atslab_p0at_loc ; ats_ptr_type atslab_p0at_node ; } anairiats_rec_31 ; typedef struct { ats_ptr_type atslab_labp0at_loc ; ats_ptr_type atslab_labp0at_node ; } anairiats_rec_32 ; typedef struct { ats_ptr_type atslab_d0exp_loc ; ats_ptr_type atslab_d0exp_node ; } anairiats_rec_33 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_34 ; typedef struct { ats_ptr_type atslab_s0tacon_loc ; ats_ptr_type atslab_s0tacon_sym ; ats_ptr_type atslab_s0tacon_arg ; ats_ptr_type atslab_s0tacon_def ; } anairiats_rec_35 ; typedef struct { ats_ptr_type atslab_s0tacst_loc ; ats_ptr_type atslab_s0tacst_sym ; ats_ptr_type atslab_s0tacst_arg ; ats_ptr_type atslab_s0tacst_res ; ats_ptr_type atslab_s0tacst_extopt ; } anairiats_rec_36 ; typedef struct { ats_ptr_type atslab_d0ecl_loc ; ats_ptr_type atslab_d0ecl_node ; } anairiats_rec_37 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_38 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_syntax_2esats__MSKencode_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyloc_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQsymdot_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQsymdot_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQsymdot_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_adj_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYinf_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpre_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpos_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTerror_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprerr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTassert_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPchar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfloat_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstring_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstringid_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPapp_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfun_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPeval_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPlist_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPif_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTapp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTlist_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTtype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAvars_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsub_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Esqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eopid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Echar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Efloat_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Estring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextype_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextkind_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elam_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eimp_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist2_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyarr_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etytup_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_ext_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Euni_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eexi_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eann_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Ed2ctype_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATnorm_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATomit_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tdqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Topid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tchar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfloat_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tstring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tapp_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlist_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlst_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Ttup_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trec_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfree_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tunfold_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Texist_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tsvararg_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trefas_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Terr_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eopid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eidext_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eint_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eempty_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecstsp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etyrep_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eliteral_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elet_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edeclseq_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhere_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eapp_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elist_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifhead_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esifhead_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifcasehd_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecasehead_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Escasehead_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etup_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Erec_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eseq_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrsub_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrpsz_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrinit_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eptrof_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eviewat_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_lab_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_ind_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eraise_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_arg_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evararg_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evcopyenv_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eshowtype_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etempenver_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esexparg_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eann_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elam_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efix_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edelay_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efor_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhile_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eloopexn_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etrywith_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolassert_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolverify_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfixity_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cnonfix_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymintr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymelim_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpdef_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpundef_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpact_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cpragma_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ccodegen_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatsrts_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csrtdefs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacsts_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacons_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ctkindef_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csexpdefs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csaspdec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Creassume_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cexndecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatdecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cclassdec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextvar_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextcode_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdcstdecs_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cimpdec_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cmacdefs_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfundecs_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvaldecs_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvardecs_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cinclude_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaload_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadnm_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadloc_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Crequire_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdynload_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Clocal_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cguadecl_38) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbolopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0xty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xpactkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0atsrtdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtext) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qualst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0expopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labs0exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_q0marg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exparg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labp0at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0expopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labd0exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ecl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0eclist) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_29 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_29_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_29_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type fprint_d0atsrtcon_34 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type fprint_a0srt_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type fprint_a0msrt_37 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type fprint_s0tacon_54 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type fprint_s0tacst_55 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 1707(line=54, offs=3) -- 1944(line=64, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("MSKencode")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("MSKdecode")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("MSKxstage")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 2003(line=67, offs=18) -- 2042(line=67, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_macsynkind (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_macsynkind: /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind (stdout, arg0) ; return /* (tmp1) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_macsynkind] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 2070(line=69, offs=18) -- 2109(line=69, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_macsynkind (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_macsynkind: /* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind (stderr, arg0) ; return /* (tmp2) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_macsynkind] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 2157(line=75, offs=3) -- 2350(line=79, offs=56) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst("$myfilename")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst("$mylocation")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst("$myfunction")) ; break ; } while (0) ; return /* (tmp3) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 2552(line=90, offs=3) -- 2643(line=95, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt: tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp5)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax_print.dats: 2574(line=92, offs=5) -- 2608(line=93, offs=29)") ; } tmp6 = ats_caselptrlab_mac(anairiats_sum_1, tmp5, atslab_1) ; /* tmp4 = */ atspre_fprint_string (arg0, tmp6) ; return /* (tmp4) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 2694(line=99, offs=3) -- 2772(line=101, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_char_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har: tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp8)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax_print.dats: 2715(line=100, offs=7) -- 2742(line=100, offs=34)") ; } tmp9 = ats_caselptrlab_mac(anairiats_sum_2, tmp8, atslab_0) ; /* tmp7 = */ atspre_fprint_char (arg0, tmp9) ; return /* (tmp7) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 2825(line=105, offs=3) -- 2923(line=110, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat: tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp11)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax_print.dats: 2847(line=107, offs=5) -- 2888(line=108, offs=34)") ; } tmp12 = ats_caselptrlab_mac(anairiats_sum_1, tmp11, atslab_1) ; /* tmp10 = */ atspre_fprint_string (arg0, tmp12) ; return /* (tmp10) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 2978(line=114, offs=3) -- 3060(line=116, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring: tmp14 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp14)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_syntax_print.dats: 2999(line=115, offs=7) -- 3028(line=115, offs=36)") ; } tmp15 = ats_caselptrlab_mac(anairiats_sum_3, tmp14, atslab_0) ; /* tmp13 = */ atspre_fprint_string (arg0, tmp15) ; return /* (tmp13) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 3132(line=122, offs=3) -- 3174(line=122, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de: tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_i0de_sym) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp17) ; return /* (tmp16) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 3221(line=125, offs=22) -- 3254(line=125, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_i0de (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_i0de: /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (stdout, arg0) ; return /* (tmp18) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 3276(line=126, offs=22) -- 3309(line=126, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_i0de (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_i0de: /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (stderr, arg0) ; return /* (tmp19) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_i0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 3355(line=131, offs=14) -- 3525(line=137, offs=6) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtq: tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_s0rtq_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp21 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp21 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_6, tmp21, atslab_0) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp22) ; /* tmp20 = */ atspre_fprint_string (arg0, ATSstrcst(".")) ; break ; } while (0) ; return /* (tmp20) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtq] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 3574(line=140, offs=23) -- 3608(line=140, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_s0rtq (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_s0rtq: /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtq (stdout, arg0) ; return /* (tmp24) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_s0rtq] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 3631(line=141, offs=23) -- 3665(line=141, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0rtq (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0rtq: /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtq (stderr, arg0) ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0rtq] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 3711(line=146, offs=14) -- 3881(line=152, offs=6) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq: tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_s0taq_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (tmp27 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (tmp27 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_6, tmp27, atslab_0) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp28) ; /* tmp26 = */ atspre_fprint_string (arg0, ATSstrcst(".")) ; break ; } while (0) ; return /* (tmp26) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 4100(line=166, offs=23) -- 4134(line=166, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_s0taq (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_s0taq: /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq (stdout, arg0) ; return /* (tmp30) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_s0taq] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 4157(line=167, offs=23) -- 4191(line=167, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq: /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq (stderr, arg0) ; return /* (tmp31) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 4217(line=170, offs=15) -- 4320(line=173, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_sqi0de (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_sqi0de: tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_sqi0de_qua) ; /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq (arg0, tmp34) ; tmp35 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_sqi0de_sym) ; /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp35) ; return /* (tmp32) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_sqi0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 4394(line=179, offs=3) -- 4561(line=189, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; // ATSlocal_void (tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq: tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg1), atslab_d0ynq_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp37 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp37 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_6, tmp37, atslab_0) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp38) ; /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst(".")) ; break ; } while (0) ; return /* (tmp36) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 4947(line=212, offs=12) -- 4980(line=212, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_d0ynq (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_d0ynq: /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (stdout, arg0) ; return /* (tmp40) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_d0ynq] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 5002(line=214, offs=12) -- 5035(line=214, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq: /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (stderr, arg0) ; return /* (tmp41) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 5085(line=219, offs=14) -- 5186(line=223, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de: tmp44 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_dqi0de_qua) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (arg0, tmp44) ; tmp45 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_dqi0de_sym) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp45) ; return /* (tmp42) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 5238(line=226, offs=13) -- 5272(line=226, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_dqi0de (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_dqi0de: /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de (stdout, arg0) ; return /* (tmp46) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__print_dqi0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 5295(line=228, offs=13) -- 5329(line=228, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_dqi0de (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_dqi0de: /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de (stderr, arg0) ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_dqi0de] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 5379(line=234, offs=3) -- 5605(line=246, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0rec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0rec: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp48 = */ atspre_fprint_string (arg0, ATSstrcst("P0RECint(...)")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_14_0 ; } __ats_lab_13_1: /* tmp48 = */ atspre_fprint_string (arg0, ATSstrcst("P0RECi0de(...)")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: /* tmp48 = */ atspre_fprint_string (arg0, ATSstrcst("P0RECi0de_adj(...)")) ; break ; } while (0) ; return /* (tmp48) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0rec] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 5678(line=252, offs=3) -- 5882(line=262, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0xty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0xty: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst("F0XTYinf(...)")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst("F0XTYpre(...)")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst("F0XTYpos(...)")) ; break ; } while (0) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0xty] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 5961(line=268, offs=3) -- 6232(line=276, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xpactkind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xpactkind: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPACTassert")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPACTerror")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPACTprint")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPACTprint")) ; break ; } while (0) ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xpactkind] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_29 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; // ATSlocal_void (tmp85) ; ATSlocal (ats_bool_type, tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_int_type, tmp88) ; __ats_lab_aux_29: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_0) ; tmp84 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_1) ; tmp86 = atspre_gt_int_int (arg1, 0) ; if (tmp86) { /* tmp85 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp87 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp83) ; tmp88 = atspre_add_int_int (arg1, 1) ; arg0 = tmp84 ; arg1 = tmp88 ; goto __ats_lab_aux_29 ; // tail call break ; } while (0) ; return /* (tmp82) */ ; } /* end of [aux_29] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_29_closure_type ; ats_void_type aux_29_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_29 (((aux_29_closure_type*)cloptr)->closure_env_0, ((aux_29_closure_type*)cloptr)->closure_env_1, ((aux_29_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_29_closure_init (aux_29_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_29_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_29_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_29_closure_type *p_clo = ATS_MALLOC(sizeof(aux_29_closure_type)) ; aux_29_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp81) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp81 = */ aux_29 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp81) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12204(line=668, offs=1) -- 12471(line=681, offs=8) */ ATSstaticdec() ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; __ats_lab_fprintopt_01697_ats_ptr_type: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: /* tmp106 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; /* tmp108 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp109 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg2) (arg0, tmp107) ; /* tmp106 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp106) */ ; } /* end of [fprintopt_01697_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 6318(line=284, offs=3) -- 8124(line=351, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp: tmp52 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg1), atslab_e0xp_node) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp52)->tag != 0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_3, tmp52, atslab_0) ; /* tmp54 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPide(")) ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp53) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp52)->tag != 2) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp56 = ats_caselptrlab_mac(anairiats_sum_3, tmp52, atslab_0) ; /* tmp57 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPchar(")) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har (arg0, tmp56) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp52)->tag != 1) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_3, tmp52, atslab_0) ; /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPint(")) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp59) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp52)->tag != 3) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_3, tmp52, atslab_0) ; /* tmp63 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPfloat(")) ; /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp62) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp52)->tag != 4) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_3, tmp52, atslab_0) ; /* tmp66 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPstring(")) ; /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring (arg0, tmp65) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp52)->tag != 5) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_3, tmp52, atslab_0) ; /* tmp69 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPstringid(")) ; /* tmp70 = */ atspre_fprint_string (arg0, tmp68) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp52)->tag != 6) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_13, tmp52, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_13, tmp52, atslab_1) ; /* tmp73 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPapp(")) ; /* tmp74 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp (arg0, tmp71) ; /* tmp75 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp (arg0, tmp72) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp52)->tag != 7) { goto __ats_lab_32_0 ; } __ats_lab_29_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_13, tmp52, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_13, tmp52, atslab_1) ; /* tmp79 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPfun(")) ; /* tmp80 = */ fprintlst_01696_ats_ptr_type (arg0, tmp77, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp (arg0, tmp78) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp52)->tag != 8) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_3, tmp52, atslab_0) ; /* tmp92 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPeval(")) ; /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp (arg0, tmp91) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp52)->tag != 9) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_3, tmp52, atslab_0) ; /* tmp95 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPlist(")) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xplst (arg0, tmp94) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (((ats_sum_ptr_type)tmp52)->tag != 10) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_15, tmp52, atslab_0) ; tmp98 = ats_caselptrlab_mac(anairiats_sum_15, tmp52, atslab_1) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_15, tmp52, atslab_2) ; /* tmp100 = */ atspre_fprint_string (arg0, ATSstrcst("E0XPif(")) ; /* tmp101 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp (arg0, tmp97) ; /* tmp102 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp (arg0, tmp98) ; /* tmp104 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp105 = */ fprintopt_01697_ats_ptr_type (arg0, tmp99, &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp51) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 8175(line=354, offs=16) -- 8237(line=355, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xplst: /* tmp110 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp) ; return /* (tmp110) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xplst] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 8311(line=361, offs=3) -- 8352(line=361, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab: tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_l0ab_lab) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp112) ; return /* (tmp111) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 8421(line=367, offs=13) -- 9277(line=399, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_int_type, tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt: tmp114 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg1), atslab_s0rt_node) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp114)->tag != 2) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_13, tmp114, atslab_0) ; tmp116 = ats_caselptrlab_mac(anairiats_sum_13, tmp114, atslab_1) ; /* tmp117 = */ atspre_fprint_string (arg0, ATSstrcst("S0RTapp(")) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt (arg0, tmp115) ; /* tmp119 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt (arg0, tmp116) ; /* tmp113 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp114)->tag != 0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_3, tmp114, atslab_0) ; /* tmp122 = */ atspre_fprint_string (arg0, ATSstrcst("S0RTide(")) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp121) ; /* tmp113 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp114)->tag != 1) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_13, tmp114, atslab_0) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_13, tmp114, atslab_1) ; /* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst("S0RTqid(")) ; /* tmp127 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtq (arg0, tmp124) ; /* tmp128 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp125) ; /* tmp113 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp114)->tag != 3) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_3, tmp114, atslab_0) ; /* tmp130 = */ atspre_fprint_string (arg0, ATSstrcst("S0RTlist(")) ; /* tmp131 = */ fprintlst_01696_ats_ptr_type (arg0, tmp129, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt) ; /* tmp113 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (((ats_sum_ptr_type)tmp114)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_11, tmp114, atslab_0) ; /* tmp133 = */ atspre_fprint_string (arg0, ATSstrcst("S0RTtype(")) ; /* tmp134 = */ atspre_fprint_int (arg0, tmp132) ; /* tmp113 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp113) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 9328(line=403, offs=5) -- 9723(line=416, offs=2) */ ATSstaticdec() ats_void_type fprint_d0atsrtcon_34 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; // ATSlocal_void (tmp140) ; __ats_lab_fprint_d0atsrtcon_34: tmp137 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_d0atsrtcon_sym) ; /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp137) ; tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_d0atsrtcon_arg) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (tmp138 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_6, tmp138, atslab_0) ; /* tmp140 = */ atspre_fprint_string (arg0, ATSstrcst(" of ")) ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt (arg0, tmp139) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (tmp138 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: /* tmp135 = */ atspre_fprint_string (arg0, ATSstrcst(" of ()")) ; break ; } while (0) ; return /* (tmp135) */ ; } /* end of [fprint_d0atsrtcon_34] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 9783(line=419, offs=19) -- 9976(line=424, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0atsrtdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; // ATSlocal_void (tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0atsrtdec: tmp143 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d0atsrtdec_sym) ; /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp143) ; /* tmp144 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp145 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d0atsrtdec_con) ; /* tmp141 = */ fprintlst_01696_ats_ptr_type (arg0, tmp145, ATSstrcst(" | "), &fprint_d0atsrtcon_34) ; return /* (tmp141) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0atsrtdec] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 10033(line=428, offs=5) -- 10323(line=438, offs=2) */ ATSstaticdec() ats_void_type fprint_a0srt_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab_fprint_a0srt_36: tmp148 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg1), atslab_a0srt_sym) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (tmp148 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_6, tmp148, atslab_0) ; /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp149) ; /* tmp147 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (tmp148 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: break ; } while (0) ; tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg1), atslab_a0srt_srt) ; /* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt (arg0, tmp151) ; return /* (tmp146) */ ; } /* end of [fprint_a0srt_36] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 10354(line=440, offs=5) -- 10556(line=446, offs=2) */ ATSstaticdec() ats_void_type fprint_a0msrt_37 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab_fprint_a0msrt_37: /* tmp153 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg1), atslab_a0msrt_arg) ; /* tmp154 = */ fprintlst_01696_ats_ptr_type (arg0, tmp155, ATSstrcst(", "), &fprint_a0srt_36) ; /* tmp152 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp152) */ ; } /* end of [fprint_a0msrt_37] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 10630(line=451, offs=16) -- 11320(line=477, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtext (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtext: tmp157 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg1), atslab_s0rtext_node) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp157)->tag != 0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_3, tmp157, atslab_0) ; /* tmp159 = */ atspre_fprint_string (arg0, ATSstrcst("S0TEsrt(")) ; /* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt (arg0, tmp158) ; /* tmp156 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (((ats_sum_ptr_type)tmp157)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp161 = ats_caselptrlab_mac(anairiats_sum_23, tmp157, atslab_0) ; tmp162 = ats_caselptrlab_mac(anairiats_sum_23, tmp157, atslab_1) ; tmp163 = ats_caselptrlab_mac(anairiats_sum_23, tmp157, atslab_2) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_23, tmp157, atslab_3) ; /* tmp165 = */ atspre_fprint_string (arg0, ATSstrcst("S0TEsub(")) ; /* tmp166 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (arg0, tmp161) ; /* tmp167 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtext (arg0, tmp162) ; /* tmp169 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp170 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp163) ; do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (tmp164 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: /* tmp172 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp171 = */ fprintlst_01696_ats_ptr_type (arg0, tmp164, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (tmp164 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: break ; } while (0) ; /* tmp156 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp156) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtext] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 11393(line=482, offs=14) -- 12010(line=507, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qua (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qua: tmp174 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg1), atslab_s0qua_node) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp174)->tag != 0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_3, tmp174, atslab_0) ; /* tmp176 = */ atspre_fprint_string (arg0, ATSstrcst("S0QUAprop(")) ; /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp175) ; /* tmp173 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (((ats_sum_ptr_type)tmp174)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_15, tmp174, atslab_0) ; tmp179 = ats_caselptrlab_mac(anairiats_sum_15, tmp174, atslab_1) ; tmp180 = ats_caselptrlab_mac(anairiats_sum_15, tmp174, atslab_2) ; /* tmp181 = */ atspre_fprint_string (arg0, ATSstrcst("S0QUAvar(")) ; /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (arg0, tmp178) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (tmp179 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: /* tmp184 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp183 = */ fprintlst_01696_ats_ptr_type (arg0, tmp179, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (tmp179 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: break ; } while (0) ; /* tmp185 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtext (arg0, tmp180) ; /* tmp173 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp173) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qua] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 12063(line=510, offs=17) -- 12120(line=511, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qualst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qualst: /* tmp187 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qua) ; return /* (tmp187) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qualst] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 12194(line=517, offs=14) -- 16071(line=686, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; // ATSlocal_void (tmp205) ; // ATSlocal_void (tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; // ATSlocal_void (tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; // ATSlocal_void (tmp253) ; ATSlocal (ats_int_type, tmp254) ; ATSlocal (ats_int_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; // ATSlocal_void (tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; // ATSlocal_void (tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; ATSlocal (ats_int_type, tmp263) ; ATSlocal (ats_int_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; // ATSlocal_void (tmp266) ; // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_int_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; // ATSlocal_void (tmp279) ; // ATSlocal_void (tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; ATSlocal (ats_int_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; // ATSlocal_void (tmp286) ; // ATSlocal_void (tmp287) ; // ATSlocal_void (tmp288) ; // ATSlocal_void (tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; // ATSlocal_void (tmp292) ; // ATSlocal_void (tmp293) ; // ATSlocal_void (tmp294) ; // ATSlocal_void (tmp295) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp: tmp189 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_s0exp_node) ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp189)->tag != 0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp190 = ats_caselptrlab_mac(anairiats_sum_3, tmp189, atslab_0) ; /* tmp191 = */ atspre_fprint_string (arg0, ATSstrcst("S0Eide(")) ; /* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp190) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp189)->tag != 1) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp193 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_0) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_1) ; /* tmp195 = */ atspre_fprint_string (arg0, ATSstrcst("S0Esqid(")) ; /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq (arg0, tmp193) ; /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp194) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp189)->tag != 2) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp198 = ats_caselptrlab_mac(anairiats_sum_3, tmp189, atslab_0) ; /* tmp199 = */ atspre_fprint_string (arg0, ATSstrcst("S0Eopid(")) ; /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp198) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp189)->tag != 3) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp201 = ats_caselptrlab_mac(anairiats_sum_3, tmp189, atslab_0) ; /* tmp202 = */ atspre_fprint_string (arg0, ATSstrcst("S0Ei0nt(")) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp201) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp189)->tag != 4) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_3, tmp189, atslab_0) ; /* tmp205 = */ atspre_fprint_string (arg0, ATSstrcst("S0Echar(")) ; /* tmp206 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har (arg0, tmp204) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp189)->tag != 5) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_3, tmp189, atslab_0) ; /* tmp208 = */ atspre_fprint_string (arg0, ATSstrcst("S0Efloat(")) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp207) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp189)->tag != 6) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_3, tmp189, atslab_0) ; /* tmp211 = */ atspre_fprint_string (arg0, ATSstrcst("S0Estring(")) ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring (arg0, tmp210) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp189)->tag != 7) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_0) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_1) ; /* tmp215 = */ atspre_fprint_string (arg0, ATSstrcst("S0Eextype(")) ; /* tmp216 = */ atspre_fprint_string (arg0, tmp213) ; /* tmp217 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp218 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst (arg0, tmp214) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp189)->tag != 8) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp219 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_0) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_1) ; /* tmp221 = */ atspre_fprint_string (arg0, ATSstrcst("S0Eextkind(")) ; /* tmp222 = */ atspre_fprint_string (arg0, tmp219) ; /* tmp223 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp224 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst (arg0, tmp220) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp189)->tag != 9) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp225 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_0) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_1) ; /* tmp227 = */ atspre_fprint_string (arg0, ATSstrcst("S0Eapp(")) ; /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp225) ; /* tmp229 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp230 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp226) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp189)->tag != 11) { goto __ats_lab_65_0 ; } __ats_lab_64_1: /* tmp231 = */ atspre_fprint_string (arg0, ATSstrcst("S0Eimp(")) ; /* tmp232 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp189)->tag != 10) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp233 = ats_caselptrlab_mac(anairiats_sum_15, tmp189, atslab_1) ; tmp234 = ats_caselptrlab_mac(anairiats_sum_15, tmp189, atslab_2) ; /* tmp235 = */ atspre_fprint_string (arg0, ATSstrcst("S0Elam(")) ; /* tmp236 = */ fprintopt_01697_ats_ptr_type (arg0, tmp233, &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt) ; /* tmp237 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp234) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp189)->tag != 12) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp239 = ats_caselptrlab_mac(anairiats_sum_3, tmp189, atslab_0) ; /* tmp240 = */ atspre_fprint_string (arg0, ATSstrcst("S0Elist(")) ; /* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst (arg0, tmp239) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp189)->tag != 13) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_0) ; tmp243 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_1) ; /* tmp244 = */ atspre_fprint_string (arg0, ATSstrcst("S0Elist2(")) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst (arg0, tmp242) ; /* tmp246 = */ atspre_fprint_string (arg0, ATSstrcst(" | ")) ; /* tmp247 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst (arg0, tmp243) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp189)->tag != 14) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp248 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_0) ; tmp249 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_1) ; /* tmp250 = */ atspre_fprint_string (arg0, ATSstrcst("S0Etyarr(")) ; /* tmp251 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp248) ; /* tmp252 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst (arg0, tmp249) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp189)->tag != 15) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp254 = ats_caselptrlab_mac(anairiats_sum_26, tmp189, atslab_0) ; tmp255 = ats_caselptrlab_mac(anairiats_sum_26, tmp189, atslab_1) ; tmp256 = ats_caselptrlab_mac(anairiats_sum_26, tmp189, atslab_2) ; /* tmp257 = */ atspre_fprint_string (arg0, ATSstrcst("S0Etytup(")) ; /* tmp258 = */ atspre_fprint_int (arg0, tmp254) ; /* tmp259 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp260 = */ atspre_fprint_int (arg0, tmp255) ; /* tmp261 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp262 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst (arg0, tmp256) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp189)->tag != 16) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp263 = ats_caselptrlab_mac(anairiats_sum_26, tmp189, atslab_0) ; tmp264 = ats_caselptrlab_mac(anairiats_sum_26, tmp189, atslab_1) ; tmp265 = ats_caselptrlab_mac(anairiats_sum_26, tmp189, atslab_2) ; /* tmp266 = */ atspre_fprint_string (arg0, ATSstrcst("S0Etyrec(")) ; /* tmp267 = */ atspre_fprint_int (arg0, tmp263) ; /* tmp268 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp269 = */ atspre_fprint_int (arg0, tmp264) ; /* tmp270 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp271 = */ fprintlst_01696_ats_ptr_type (arg0, tmp265, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labs0exp) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp189)->tag != 17) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_27, tmp189, atslab_0) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_27, tmp189, atslab_1) ; tmp274 = ats_caselptrlab_mac(anairiats_sum_27, tmp189, atslab_2) ; /* tmp275 = */ atspre_fprint_string (arg0, ATSstrcst("S0Etyrec_ext(")) ; /* tmp276 = */ atspre_fprint_string (arg0, tmp272) ; /* tmp277 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp278 = */ atspre_fprint_int (arg0, tmp273) ; /* tmp279 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp280 = */ fprintlst_01696_ats_ptr_type (arg0, tmp274, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labs0exp) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp189)->tag != 18) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp281 = ats_caselptrlab_mac(anairiats_sum_3, tmp189, atslab_0) ; /* tmp282 = */ atspre_fprint_string (arg0, ATSstrcst("S0Euni(")) ; /* tmp283 = */ fprintlst_01696_ats_ptr_type (arg0, tmp281, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qua) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp189)->tag != 19) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_28, tmp189, atslab_0) ; tmp285 = ats_caselptrlab_mac(anairiats_sum_28, tmp189, atslab_1) ; /* tmp286 = */ atspre_fprint_string (arg0, ATSstrcst("S0Eexi(")) ; /* tmp287 = */ atspre_fprint_int (arg0, tmp284) ; /* tmp288 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp289 = */ fprintlst_01696_ats_ptr_type (arg0, tmp285, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qua) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp189)->tag != 20) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp290 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_0) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_13, tmp189, atslab_1) ; /* tmp292 = */ atspre_fprint_string (arg0, ATSstrcst("S0Eann(")) ; /* tmp293 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp290) ; /* tmp294 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp295 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt (arg0, tmp291) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (((ats_sum_ptr_type)tmp189)->tag != 21) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst("S0Ed2ctype(...)")) ; break ; } while (0) ; return /* (tmp188) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 16147(line=692, offs=3) -- 16202(line=692, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp296) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst: /* tmp296 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp) ; return /* (tmp296) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 16260(line=697, offs=3) -- 16311(line=697, offs=54) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0expopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp297) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0expopt: /* tmp297 = */ fprintopt_01697_ats_ptr_type (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp) ; return /* (tmp297) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0expopt] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 16390(line=704, offs=3) -- 16702(line=715, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exparg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; // ATSlocal_void (tmp300) ; // ATSlocal_void (tmp301) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exparg: do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: /* tmp298 = */ atspre_fprint_string (arg0, ATSstrcst("{..}")) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_78_0 ; } __ats_lab_77_1: /* tmp298 = */ atspre_fprint_string (arg0, ATSstrcst("{...}")) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp299 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp300 = */ atspre_fprint_string (arg0, ATSstrcst("{")) ; /* tmp301 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0explst (arg0, tmp299) ; /* tmp298 = */ atspre_fprint_string (arg0, ATSstrcst("}")) ; break ; } while (0) ; return /* (tmp298) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exparg] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 16781(line=721, offs=3) -- 16943(line=726, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labs0exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labs0exp: // tmp303 = ats_caselptrlab_mac(anairiats_sum_29, arg1, atslab_0) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_29, arg1, atslab_2) ; /* tmp305 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab (arg0, tmp303) ; /* tmp306 = */ atspre_fprint_string (arg0, ATSstrcst("= ")) ; /* tmp302 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp304) ; return /* (tmp302) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labs0exp] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 17020(line=732, offs=3) -- 17153(line=736, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_q0marg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp307) ; // ATSlocal_void (tmp308) ; // ATSlocal_void (tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_q0marg: /* tmp308 = */ atspre_fprint_string (arg0, ATSstrcst("{")) ; tmp310 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg1), atslab_q0marg_arg) ; /* tmp309 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0qualst (arg0, tmp310) ; /* tmp307 = */ atspre_fprint_string (arg0, ATSstrcst("}")) ; return /* (tmp307) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_q0marg] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 17210(line=740, offs=3) -- 17264(line=740, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_q0marglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp311) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_q0marglst: /* tmp311 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(""), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_q0marg) ; return /* (tmp311) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_q0marglst] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 17338(line=746, offs=13) -- 20297(line=871, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; // ATSlocal_void (tmp318) ; // ATSlocal_void (tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; // ATSlocal_void (tmp326) ; // ATSlocal_void (tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; // ATSlocal_void (tmp329) ; // ATSlocal_void (tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; // ATSlocal_void (tmp332) ; // ATSlocal_void (tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; // ATSlocal_void (tmp335) ; // ATSlocal_void (tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; // ATSlocal_void (tmp340) ; ATSlocal (ats_int_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; // ATSlocal_void (tmp343) ; // ATSlocal_void (tmp344) ; // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; ATSlocal (ats_int_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; ATSlocal (ats_int_type, tmp353) ; ATSlocal (ats_int_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; // ATSlocal_void (tmp356) ; // ATSlocal_void (tmp357) ; // ATSlocal_void (tmp358) ; // ATSlocal_void (tmp359) ; // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; ATSlocal (ats_int_type, tmp362) ; ATSlocal (ats_int_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; // ATSlocal_void (tmp365) ; // ATSlocal_void (tmp366) ; // ATSlocal_void (tmp367) ; // ATSlocal_void (tmp368) ; // ATSlocal_void (tmp369) ; // ATSlocal_void (tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; // ATSlocal_void (tmp372) ; // ATSlocal_void (tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; // ATSlocal_void (tmp375) ; // ATSlocal_void (tmp376) ; // ATSlocal_void (tmp377) ; // ATSlocal_void (tmp378) ; // ATSlocal_void (tmp379) ; // ATSlocal_void (tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; // ATSlocal_void (tmp383) ; // ATSlocal_void (tmp384) ; // ATSlocal_void (tmp385) ; // ATSlocal_void (tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; // ATSlocal_void (tmp389) ; // ATSlocal_void (tmp390) ; // ATSlocal_void (tmp391) ; // ATSlocal_void (tmp392) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at: tmp313 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg1), atslab_p0at_node) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp313)->tag != 0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_3, tmp313, atslab_0) ; /* tmp315 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tide(")) ; /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp314) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp313)->tag != 2) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp317 = ats_caselptrlab_mac(anairiats_sum_3, tmp313, atslab_0) ; /* tmp318 = */ atspre_fprint_string (arg0, ATSstrcst("P0Topid(")) ; /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp317) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp313)->tag != 1) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp320 = ats_caselptrlab_mac(anairiats_sum_13, tmp313, atslab_0) ; tmp321 = ats_caselptrlab_mac(anairiats_sum_13, tmp313, atslab_1) ; /* tmp322 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tdqid(")) ; /* tmp323 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (arg0, tmp320) ; /* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp321) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp313)->tag != 3) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp325 = ats_caselptrlab_mac(anairiats_sum_3, tmp313, atslab_0) ; /* tmp326 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tint(")) ; /* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp325) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp313)->tag != 4) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp328 = ats_caselptrlab_mac(anairiats_sum_3, tmp313, atslab_0) ; /* tmp329 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tchar(")) ; /* tmp330 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har (arg0, tmp328) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp313)->tag != 5) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp331 = ats_caselptrlab_mac(anairiats_sum_3, tmp313, atslab_0) ; /* tmp332 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tfloat(")) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp331) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp313)->tag != 6) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp334 = ats_caselptrlab_mac(anairiats_sum_3, tmp313, atslab_0) ; /* tmp335 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tstring(")) ; /* tmp336 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring (arg0, tmp334) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp313)->tag != 7) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_13, tmp313, atslab_0) ; /* tmp338 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tapp(")) ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at (arg0, tmp337) ; /* tmp340 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp313)->tag != 8) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp341 = ats_caselptrlab_mac(anairiats_sum_28, tmp313, atslab_0) ; tmp342 = ats_caselptrlab_mac(anairiats_sum_28, tmp313, atslab_1) ; /* tmp343 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tlist(")) ; /* tmp344 = */ atspre_fprint_int (arg0, tmp341) ; /* tmp345 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp346 = */ fprintlst_01696_ats_ptr_type (arg0, tmp342, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp313)->tag != 9) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp347 = ats_caselptrlab_mac(anairiats_sum_28, tmp313, atslab_0) ; tmp348 = ats_caselptrlab_mac(anairiats_sum_28, tmp313, atslab_1) ; /* tmp349 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tlst(")) ; /* tmp350 = */ atspre_fprint_int (arg0, tmp347) ; /* tmp351 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp352 = */ fprintlst_01696_ats_ptr_type (arg0, tmp348, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp313)->tag != 11) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp353 = ats_caselptrlab_mac(anairiats_sum_26, tmp313, atslab_0) ; tmp354 = ats_caselptrlab_mac(anairiats_sum_26, tmp313, atslab_1) ; tmp355 = ats_caselptrlab_mac(anairiats_sum_26, tmp313, atslab_2) ; /* tmp356 = */ atspre_fprint_string (arg0, ATSstrcst("P0Trec(")) ; /* tmp357 = */ atspre_fprint_int (arg0, tmp353) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp359 = */ atspre_fprint_int (arg0, tmp354) ; /* tmp360 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp361 = */ fprintlst_01696_ats_ptr_type (arg0, tmp355, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labp0at) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp313)->tag != 10) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp362 = ats_caselptrlab_mac(anairiats_sum_26, tmp313, atslab_0) ; tmp363 = ats_caselptrlab_mac(anairiats_sum_26, tmp313, atslab_1) ; tmp364 = ats_caselptrlab_mac(anairiats_sum_26, tmp313, atslab_2) ; /* tmp365 = */ atspre_fprint_string (arg0, ATSstrcst("P0Ttup(")) ; /* tmp366 = */ atspre_fprint_int (arg0, tmp362) ; /* tmp367 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp368 = */ atspre_fprint_int (arg0, tmp363) ; /* tmp369 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp370 = */ fprintlst_01696_ats_ptr_type (arg0, tmp364, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp313)->tag != 12) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp371 = ats_caselptrlab_mac(anairiats_sum_3, tmp313, atslab_0) ; /* tmp372 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tfree(")) ; /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at (arg0, tmp371) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp313)->tag != 13) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp374 = ats_caselptrlab_mac(anairiats_sum_3, tmp313, atslab_0) ; /* tmp375 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tunfold(")) ; /* tmp376 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at (arg0, tmp374) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp313)->tag != 14) { goto __ats_lab_94_0 ; } __ats_lab_93_1: /* tmp377 = */ atspre_fprint_string (arg0, ATSstrcst("P0Texist(")) ; /* tmp378 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp313)->tag != 15) { goto __ats_lab_95_0 ; } __ats_lab_94_1: /* tmp379 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tsvararg(")) ; /* tmp380 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp313)->tag != 16) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp381 = ats_caselptrlab_mac(anairiats_sum_15, tmp313, atslab_0) ; tmp382 = ats_caselptrlab_mac(anairiats_sum_15, tmp313, atslab_2) ; /* tmp383 = */ atspre_fprint_string (arg0, ATSstrcst("P0Trefas(")) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp381) ; /* tmp385 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp386 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at (arg0, tmp382) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp313)->tag != 17) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp387 = ats_caselptrlab_mac(anairiats_sum_13, tmp313, atslab_0) ; tmp388 = ats_caselptrlab_mac(anairiats_sum_13, tmp313, atslab_1) ; /* tmp389 = */ atspre_fprint_string (arg0, ATSstrcst("P0Tann(")) ; /* tmp390 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at (arg0, tmp387) ; /* tmp391 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp392 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp388) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: // if (((ats_sum_ptr_type)tmp313)->tag != 18) { ats_deadcode_failure_handle () ; } __ats_lab_97_1: /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst("P0Terr()")) ; break ; } while (0) ; return /* (tmp312) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 20369(line=876, offs=16) -- 20629(line=883, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labp0at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; // ATSlocal_void (tmp397) ; // ATSlocal_void (tmp398) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labp0at: tmp394 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg1), atslab_labp0at_node) ; do { /* branch: __ats_lab_98 */ __ats_lab_98_0: if (tmp394 == (ats_sum_ptr_type)0) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp395 = ats_caselptrlab_mac(anairiats_sum_14, tmp394, atslab_0) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_14, tmp394, atslab_1) ; /* tmp397 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab (arg0, tmp395) ; /* tmp398 = */ atspre_fprint_string (arg0, ATSstrcst("= ")) ; /* tmp393 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at (arg0, tmp396) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: // if (tmp394 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_99_1: /* tmp393 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; break ; } while (0) ; return /* (tmp393) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labp0at] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 20702(line=889, offs=14) -- 27632(line=1214, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; // ATSlocal_void (tmp402) ; // ATSlocal_void (tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; // ATSlocal_void (tmp405) ; // ATSlocal_void (tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; // ATSlocal_void (tmp409) ; // ATSlocal_void (tmp410) ; // ATSlocal_void (tmp411) ; // ATSlocal_void (tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; // ATSlocal_void (tmp414) ; // ATSlocal_void (tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; // ATSlocal_void (tmp417) ; // ATSlocal_void (tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; // ATSlocal_void (tmp420) ; // ATSlocal_void (tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; // ATSlocal_void (tmp423) ; // ATSlocal_void (tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; // ATSlocal_void (tmp426) ; // ATSlocal_void (tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; // ATSlocal_void (tmp429) ; // ATSlocal_void (tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; // ATSlocal_void (tmp432) ; // ATSlocal_void (tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; // ATSlocal_void (tmp435) ; // ATSlocal_void (tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; // ATSlocal_void (tmp439) ; // ATSlocal_void (tmp440) ; // ATSlocal_void (tmp441) ; // ATSlocal_void (tmp442) ; ATSlocal (ats_int_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; // ATSlocal_void (tmp445) ; // ATSlocal_void (tmp446) ; // ATSlocal_void (tmp447) ; // ATSlocal_void (tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; // ATSlocal_void (tmp452) ; // ATSlocal_void (tmp453) ; // ATSlocal_void (tmp454) ; // ATSlocal_void (tmp455) ; // ATSlocal_void (tmp456) ; // ATSlocal_void (tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; // ATSlocal_void (tmp461) ; // ATSlocal_void (tmp462) ; // ATSlocal_void (tmp463) ; // ATSlocal_void (tmp464) ; // ATSlocal_void (tmp465) ; // ATSlocal_void (tmp466) ; // ATSlocal_void (tmp467) ; // ATSlocal_void (tmp468) ; // ATSlocal_void (tmp469) ; // ATSlocal_void (tmp470) ; // ATSlocal_void (tmp471) ; // ATSlocal_void (tmp472) ; ATSlocal (ats_int_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; // ATSlocal_void (tmp476) ; // ATSlocal_void (tmp477) ; // ATSlocal_void (tmp478) ; // ATSlocal_void (tmp479) ; // ATSlocal_void (tmp480) ; // ATSlocal_void (tmp481) ; ATSlocal (ats_int_type, tmp482) ; ATSlocal (ats_int_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; // ATSlocal_void (tmp485) ; // ATSlocal_void (tmp486) ; // ATSlocal_void (tmp487) ; // ATSlocal_void (tmp488) ; // ATSlocal_void (tmp489) ; // ATSlocal_void (tmp490) ; ATSlocal (ats_int_type, tmp491) ; ATSlocal (ats_int_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; // ATSlocal_void (tmp494) ; // ATSlocal_void (tmp495) ; // ATSlocal_void (tmp496) ; // ATSlocal_void (tmp497) ; // ATSlocal_void (tmp498) ; // ATSlocal_void (tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; // ATSlocal_void (tmp501) ; // ATSlocal_void (tmp502) ; // ATSlocal_void (tmp503) ; // ATSlocal_void (tmp504) ; // ATSlocal_void (tmp505) ; // ATSlocal_void (tmp506) ; // ATSlocal_void (tmp507) ; // ATSlocal_void (tmp508) ; ATSlocal (ats_int_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; // ATSlocal_void (tmp511) ; // ATSlocal_void (tmp512) ; // ATSlocal_void (tmp513) ; // ATSlocal_void (tmp514) ; ATSlocal (ats_int_type, tmp515) ; // ATSlocal_void (tmp516) ; // ATSlocal_void (tmp517) ; // ATSlocal_void (tmp518) ; // ATSlocal_void (tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; // ATSlocal_void (tmp521) ; // ATSlocal_void (tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; // ATSlocal_void (tmp524) ; // ATSlocal_void (tmp525) ; ATSlocal (ats_int_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; // ATSlocal_void (tmp528) ; // ATSlocal_void (tmp529) ; // ATSlocal_void (tmp530) ; // ATSlocal_void (tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; // ATSlocal_void (tmp533) ; // ATSlocal_void (tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; // ATSlocal_void (tmp536) ; // ATSlocal_void (tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; // ATSlocal_void (tmp539) ; // ATSlocal_void (tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; // ATSlocal_void (tmp543) ; // ATSlocal_void (tmp544) ; // ATSlocal_void (tmp545) ; // ATSlocal_void (tmp546) ; // ATSlocal_void (tmp547) ; // ATSlocal_void (tmp548) ; // ATSlocal_void (tmp549) ; // ATSlocal_void (tmp550) ; ATSlocal (ats_int_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; // ATSlocal_void (tmp553) ; // ATSlocal_void (tmp554) ; // ATSlocal_void (tmp555) ; // ATSlocal_void (tmp556) ; // ATSlocal_void (tmp557) ; // ATSlocal_void (tmp558) ; // ATSlocal_void (tmp559) ; // ATSlocal_void (tmp560) ; ATSlocal (ats_int_type, tmp561) ; // ATSlocal_void (tmp562) ; // ATSlocal_void (tmp563) ; // ATSlocal_void (tmp564) ; // ATSlocal_void (tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; // ATSlocal_void (tmp567) ; // ATSlocal_void (tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; // ATSlocal_void (tmp570) ; // ATSlocal_void (tmp571) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp: tmp400 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg1), atslab_d0exp_node) ; do { /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp400)->tag != 0) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp401 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp402 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eide(")) ; /* tmp403 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp401) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp400)->tag != 2) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp404 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp405 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eopid(")) ; /* tmp406 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp404) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp400)->tag != 1) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp407 = ats_caselptrlab_mac(anairiats_sum_13, tmp400, atslab_0) ; tmp408 = ats_caselptrlab_mac(anairiats_sum_13, tmp400, atslab_1) ; /* tmp409 = */ atspre_fprint_string (arg0, ATSstrcst("D0Edqid(")) ; /* tmp410 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (arg0, tmp407) ; /* tmp411 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp412 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp408) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp400)->tag != 3) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp413 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp414 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eidext(")) ; /* tmp415 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp413) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp400)->tag != 4) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp416 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp417 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eint(")) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp416) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp400)->tag != 5) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp419 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp420 = */ atspre_fprint_string (arg0, ATSstrcst("D0Echar(")) ; /* tmp421 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har (arg0, tmp419) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp400)->tag != 6) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp422 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp423 = */ atspre_fprint_string (arg0, ATSstrcst("D0Efloat(")) ; /* tmp424 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp422) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp400)->tag != 7) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp425 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp426 = */ atspre_fprint_string (arg0, ATSstrcst("D0Estring(")) ; /* tmp427 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring (arg0, tmp425) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp400)->tag != 8) { goto __ats_lab_109_0 ; } __ats_lab_108_1: /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eempty()")) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp400)->tag != 9) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp428 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp429 = */ atspre_fprint_string (arg0, ATSstrcst("D0Ecstsp(")) ; /* tmp430 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp (arg0, tmp428) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp400)->tag != 10) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp431 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp432 = */ atspre_fprint_string (arg0, ATSstrcst("D0Etyrep(")) ; /* tmp433 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp431) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp400)->tag != 11) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp434 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp435 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eliteral(")) ; /* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp434) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp400)->tag != 18) { goto __ats_lab_113_0 ; } __ats_lab_112_1: /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("D0Elet(...)")) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp400)->tag != 20) { goto __ats_lab_114_0 ; } __ats_lab_113_1: /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("D0Ewhere(...)")) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp400)->tag != 19) { goto __ats_lab_115_0 ; } __ats_lab_114_1: /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("D0Edeclseq(...)")) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp400)->tag != 21) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp437 = ats_caselptrlab_mac(anairiats_sum_13, tmp400, atslab_0) ; tmp438 = ats_caselptrlab_mac(anairiats_sum_13, tmp400, atslab_1) ; /* tmp439 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eapp(")) ; /* tmp440 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp437) ; /* tmp441 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp438) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp400)->tag != 22) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp443 = ats_caselptrlab_mac(anairiats_sum_28, tmp400, atslab_0) ; tmp444 = ats_caselptrlab_mac(anairiats_sum_28, tmp400, atslab_1) ; /* tmp445 = */ atspre_fprint_string (arg0, ATSstrcst("D0Elist(")) ; /* tmp446 = */ atspre_fprint_int (arg0, tmp443) ; /* tmp447 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp448 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0explst (arg0, tmp444) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp400)->tag != 23) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_23, tmp400, atslab_1) ; tmp450 = ats_caselptrlab_mac(anairiats_sum_23, tmp400, atslab_2) ; tmp451 = ats_caselptrlab_mac(anairiats_sum_23, tmp400, atslab_3) ; /* tmp452 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eifhead(")) ; /* tmp453 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp449) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp455 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp450) ; /* tmp456 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp457 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0expopt (arg0, tmp451) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp400)->tag != 24) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp458 = ats_caselptrlab_mac(anairiats_sum_23, tmp400, atslab_1) ; tmp459 = ats_caselptrlab_mac(anairiats_sum_23, tmp400, atslab_2) ; tmp460 = ats_caselptrlab_mac(anairiats_sum_23, tmp400, atslab_3) ; /* tmp461 = */ atspre_fprint_string (arg0, ATSstrcst("D0Esifhead(")) ; /* tmp462 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp458) ; /* tmp463 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp464 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp459) ; /* tmp465 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp466 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp460) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp400)->tag != 25) { goto __ats_lab_120_0 ; } __ats_lab_119_1: /* tmp467 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eifcasehd(")) ; /* tmp468 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp400)->tag != 26) { goto __ats_lab_121_0 ; } __ats_lab_120_1: /* tmp469 = */ atspre_fprint_string (arg0, ATSstrcst("D0Ecasehead(")) ; /* tmp470 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp400)->tag != 27) { goto __ats_lab_122_0 ; } __ats_lab_121_1: /* tmp471 = */ atspre_fprint_string (arg0, ATSstrcst("D0Escasehead(")) ; /* tmp472 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp400)->tag != 28) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp473 = ats_caselptrlab_mac(anairiats_sum_34, tmp400, atslab_0) ; tmp474 = ats_caselptrlab_mac(anairiats_sum_34, tmp400, atslab_1) ; tmp475 = ats_caselptrlab_mac(anairiats_sum_34, tmp400, atslab_2) ; /* tmp476 = */ atspre_fprint_string (arg0, ATSstrcst("D0Elst(")) ; /* tmp477 = */ atspre_fprint_int (arg0, tmp473) ; /* tmp478 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp479 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0expopt (arg0, tmp474) ; /* tmp480 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp481 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp475) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp400)->tag != 29) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp482 = ats_caselptrlab_mac(anairiats_sum_26, tmp400, atslab_0) ; tmp483 = ats_caselptrlab_mac(anairiats_sum_26, tmp400, atslab_1) ; tmp484 = ats_caselptrlab_mac(anairiats_sum_26, tmp400, atslab_2) ; /* tmp485 = */ atspre_fprint_string (arg0, ATSstrcst("D0Etup(")) ; /* tmp486 = */ atspre_fprint_int (arg0, tmp482) ; /* tmp487 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp488 = */ atspre_fprint_int (arg0, tmp483) ; /* tmp489 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp490 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0explst (arg0, tmp484) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp400)->tag != 30) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp491 = ats_caselptrlab_mac(anairiats_sum_26, tmp400, atslab_0) ; tmp492 = ats_caselptrlab_mac(anairiats_sum_26, tmp400, atslab_1) ; tmp493 = ats_caselptrlab_mac(anairiats_sum_26, tmp400, atslab_2) ; /* tmp494 = */ atspre_fprint_string (arg0, ATSstrcst("D0Erec(")) ; /* tmp495 = */ atspre_fprint_int (arg0, tmp491) ; /* tmp496 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp497 = */ atspre_fprint_int (arg0, tmp492) ; /* tmp498 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp499 = */ fprintlst_01696_ats_ptr_type (arg0, tmp493, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labd0exp) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp400)->tag != 31) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp500 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp501 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eseq(")) ; /* tmp502 = */ fprintlst_01696_ats_ptr_type (arg0, tmp500, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp400)->tag != 32) { goto __ats_lab_127_0 ; } __ats_lab_126_1: /* tmp503 = */ atspre_fprint_string (arg0, ATSstrcst("D0Earrsub(")) ; /* tmp504 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp400)->tag != 33) { goto __ats_lab_128_0 ; } __ats_lab_127_1: /* tmp505 = */ atspre_fprint_string (arg0, ATSstrcst("D0Earrpsz(")) ; /* tmp506 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp400)->tag != 34) { goto __ats_lab_129_0 ; } __ats_lab_128_1: /* tmp507 = */ atspre_fprint_string (arg0, ATSstrcst("D0Earrinit(")) ; /* tmp508 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp400)->tag != 35) { goto __ats_lab_130_0 ; } __ats_lab_129_1: /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eptrof()")) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp400)->tag != 36) { goto __ats_lab_131_0 ; } __ats_lab_130_1: /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eviewat()")) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp400)->tag != 37) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp509 = ats_caselptrlab_mac(anairiats_sum_28, tmp400, atslab_0) ; tmp510 = ats_caselptrlab_mac(anairiats_sum_28, tmp400, atslab_1) ; /* tmp511 = */ atspre_fprint_string (arg0, ATSstrcst("D0Esel_lab(")) ; /* tmp512 = */ atspre_fprint_int (arg0, tmp509) ; /* tmp513 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp514 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp510) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp400)->tag != 38) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp515 = ats_caselptrlab_mac(anairiats_sum_28, tmp400, atslab_0) ; /* tmp516 = */ atspre_fprint_string (arg0, ATSstrcst("D0Esel_int(")) ; /* tmp517 = */ atspre_fprint_int (arg0, tmp515) ; /* tmp518 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp519 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp400)->tag != 39) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp520 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp521 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eraise(")) ; /* tmp522 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp520) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp400)->tag != 40) { goto __ats_lab_135_0 ; } __ats_lab_134_1: /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eeffmask(...)")) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp400)->tag != 41) { goto __ats_lab_136_0 ; } __ats_lab_135_1: /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eeffmask_arg(...)")) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp400)->tag != 42) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp523 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp524 = */ atspre_fprint_string (arg0, ATSstrcst("D0Evararg(")) ; /* tmp525 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0explst (arg0, tmp523) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp400)->tag != 43) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp526 = ats_caselptrlab_mac(anairiats_sum_28, tmp400, atslab_0) ; tmp527 = ats_caselptrlab_mac(anairiats_sum_28, tmp400, atslab_1) ; /* tmp528 = */ atspre_fprint_string (arg0, ATSstrcst("D0Evcopyenv(")) ; /* tmp529 = */ atspre_fprint_int (arg0, tmp526) ; /* tmp530 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp531 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp527) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp400)->tag != 44) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp532 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp533 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eshowtype(")) ; /* tmp534 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp532) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp400)->tag != 45) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp535 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp536 = */ atspre_fprint_string (arg0, ATSstrcst("D0Etempenver(")) ; /* tmp537 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp535) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)tmp400)->tag != 46) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp538 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp539 = */ atspre_fprint_string (arg0, ATSstrcst("D0Esexparg(")) ; /* tmp540 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exparg (arg0, tmp538) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp400)->tag != 48) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp541 = ats_caselptrlab_mac(anairiats_sum_13, tmp400, atslab_0) ; tmp542 = ats_caselptrlab_mac(anairiats_sum_13, tmp400, atslab_1) ; /* tmp543 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eann(")) ; /* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp541) ; /* tmp545 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp546 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp542) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp400)->tag != 49) { goto __ats_lab_143_0 ; } __ats_lab_142_1: /* tmp547 = */ atspre_fprint_string (arg0, ATSstrcst("D0Elam(")) ; /* tmp548 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp400)->tag != 50) { goto __ats_lab_144_0 ; } __ats_lab_143_1: /* tmp549 = */ atspre_fprint_string (arg0, ATSstrcst("D0Efix(")) ; /* tmp550 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp400)->tag != 51) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp551 = ats_caselptrlab_mac(anairiats_sum_28, tmp400, atslab_0) ; tmp552 = ats_caselptrlab_mac(anairiats_sum_28, tmp400, atslab_1) ; /* tmp553 = */ atspre_fprint_string (arg0, ATSstrcst("D0Edelay(")) ; /* tmp554 = */ atspre_fprint_int (arg0, tmp551) ; /* tmp555 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp556 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp552) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp400)->tag != 52) { goto __ats_lab_146_0 ; } __ats_lab_145_1: /* tmp557 = */ atspre_fprint_string (arg0, ATSstrcst("D0Efor(")) ; /* tmp558 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp400)->tag != 53) { goto __ats_lab_147_0 ; } __ats_lab_146_1: /* tmp559 = */ atspre_fprint_string (arg0, ATSstrcst("D0Ewhile(")) ; /* tmp560 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp400)->tag != 54) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp561 = ats_caselptrlab_mac(anairiats_sum_11, tmp400, atslab_0) ; /* tmp562 = */ atspre_fprint_string (arg0, ATSstrcst("D0Eloopexn(")) ; /* tmp563 = */ atspre_fprint_int (arg0, tmp561) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp400)->tag != 55) { goto __ats_lab_149_0 ; } __ats_lab_148_1: /* tmp564 = */ atspre_fprint_string (arg0, ATSstrcst("D0Etrywith(")) ; /* tmp565 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)tmp400)->tag != 57) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp566 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp567 = */ atspre_fprint_string (arg0, ATSstrcst("D0Esolassert(")) ; /* tmp568 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp566) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp400)->tag != 58) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp569 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; /* tmp570 = */ atspre_fprint_string (arg0, ATSstrcst("D0Esolverify(")) ; /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp569) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: __ats_lab_151_1: /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("D0E(...)")) ; break ; } while (0) ; return /* (tmp399) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 27708(line=1220, offs=3) -- 27763(line=1220, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp572) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0explst: /* tmp572 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp) ; return /* (tmp572) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0explst] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 27821(line=1225, offs=3) -- 27872(line=1225, offs=54) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0expopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp573) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0expopt: /* tmp573 = */ fprintopt_01697_ats_ptr_type (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp) ; return /* (tmp573) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0expopt] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 27951(line=1232, offs=3) -- 28107(line=1237, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labd0exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; // ATSlocal_void (tmp577) ; // ATSlocal_void (tmp578) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labd0exp: // tmp575 = ats_caselptrlab_mac(anairiats_sum_14, arg1, atslab_0) ; tmp576 = ats_caselptrlab_mac(anairiats_sum_14, arg1, atslab_1) ; /* tmp577 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab (arg0, tmp575) ; /* tmp578 = */ atspre_fprint_string (arg0, ATSstrcst("= ")) ; /* tmp574 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp576) ; return /* (tmp574) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_labd0exp] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 28162(line=1241, offs=5) -- 28511(line=1250, offs=2) */ ATSstaticdec() ats_void_type fprint_s0tacon_54 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp579) ; // ATSlocal_void (tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; // ATSlocal_void (tmp582) ; // ATSlocal_void (tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; // ATSlocal_void (tmp585) ; // ATSlocal_void (tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; __ats_lab_fprint_s0tacon_54: tmp581 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg1), atslab_s0tacon_sym) ; /* tmp580 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp581) ; /* tmp582 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp584 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg1), atslab_s0tacon_arg) ; /* tmp583 = */ fprintlst_01696_ats_ptr_type (arg0, tmp584, ATSstrcst(" "), &fprint_a0msrt_37) ; /* tmp585 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp586 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp587 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg1), atslab_s0tacon_def) ; /* tmp579 = */ fprintopt_01697_ats_ptr_type (arg0, tmp587, &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp) ; return /* (tmp579) */ ; } /* end of [fprint_s0tacon_54] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 28565(line=1254, offs=5) -- 28861(line=1262, offs=2) */ ATSstaticdec() ats_void_type fprint_s0tacst_55 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp588) ; // ATSlocal_void (tmp589) ; ATSlocal (ats_ptr_type, tmp590) ; // ATSlocal_void (tmp591) ; // ATSlocal_void (tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; // ATSlocal_void (tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; __ats_lab_fprint_s0tacst_55: tmp590 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg1), atslab_s0tacst_sym) ; /* tmp589 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp590) ; /* tmp591 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp593 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg1), atslab_s0tacst_arg) ; /* tmp592 = */ fprintlst_01696_ats_ptr_type (arg0, tmp593, ATSstrcst(" "), &fprint_a0msrt_37) ; /* tmp594 = */ atspre_fprint_string (arg0, ATSstrcst("):")) ; tmp595 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg1), atslab_s0tacst_res) ; /* tmp588 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rt (arg0, tmp595) ; return /* (tmp588) */ ; } /* end of [fprint_s0tacst_55] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 29257(line=1285, offs=3) -- 36051(line=1589, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ecl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp596) ; ATSlocal (ats_ptr_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; // ATSlocal_void (tmp600) ; // ATSlocal_void (tmp601) ; // ATSlocal_void (tmp602) ; // ATSlocal_void (tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; // ATSlocal_void (tmp605) ; // ATSlocal_void (tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; // ATSlocal_void (tmp608) ; // ATSlocal_void (tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; // ATSlocal_void (tmp611) ; // ATSlocal_void (tmp612) ; ATSlocal (ats_ptr_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_int_type, tmp615) ; // ATSlocal_void (tmp616) ; // ATSlocal_void (tmp617) ; // ATSlocal_void (tmp618) ; // ATSlocal_void (tmp619) ; // ATSlocal_void (tmp620) ; // ATSlocal_void (tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; // ATSlocal_void (tmp624) ; // ATSlocal_void (tmp625) ; // ATSlocal_void (tmp626) ; // ATSlocal_void (tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; // ATSlocal_void (tmp629) ; // ATSlocal_void (tmp630) ; ATSlocal (ats_ptr_type, tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; // ATSlocal_void (tmp633) ; // ATSlocal_void (tmp634) ; // ATSlocal_void (tmp635) ; // ATSlocal_void (tmp636) ; ATSlocal (ats_ptr_type, tmp637) ; // ATSlocal_void (tmp638) ; // ATSlocal_void (tmp639) ; ATSlocal (ats_int_type, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; // ATSlocal_void (tmp642) ; // ATSlocal_void (tmp643) ; // ATSlocal_void (tmp644) ; // ATSlocal_void (tmp645) ; ATSlocal (ats_ptr_type, tmp646) ; // ATSlocal_void (tmp647) ; // ATSlocal_void (tmp648) ; ATSlocal (ats_ptr_type, tmp649) ; // ATSlocal_void (tmp650) ; // ATSlocal_void (tmp651) ; ATSlocal (ats_int_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; // ATSlocal_void (tmp654) ; // ATSlocal_void (tmp655) ; // ATSlocal_void (tmp656) ; // ATSlocal_void (tmp657) ; ATSlocal (ats_int_type, tmp658) ; // ATSlocal_void (tmp659) ; // ATSlocal_void (tmp660) ; // ATSlocal_void (tmp661) ; // ATSlocal_void (tmp662) ; ATSlocal (ats_int_type, tmp663) ; // ATSlocal_void (tmp664) ; // ATSlocal_void (tmp665) ; // ATSlocal_void (tmp666) ; // ATSlocal_void (tmp667) ; ATSlocal (ats_ptr_type, tmp668) ; ATSlocal (ats_ptr_type, tmp669) ; // ATSlocal_void (tmp670) ; // ATSlocal_void (tmp671) ; // ATSlocal_void (tmp672) ; // ATSlocal_void (tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; // ATSlocal_void (tmp676) ; // ATSlocal_void (tmp677) ; // ATSlocal_void (tmp678) ; // ATSlocal_void (tmp679) ; ATSlocal (ats_int_type, tmp680) ; ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_ptr_type, tmp682) ; // ATSlocal_void (tmp683) ; // ATSlocal_void (tmp684) ; // ATSlocal_void (tmp685) ; // ATSlocal_void (tmp686) ; // ATSlocal_void (tmp687) ; // ATSlocal_void (tmp688) ; ATSlocal (ats_ptr_type, tmp689) ; ATSlocal (ats_ptr_type, tmp690) ; // ATSlocal_void (tmp691) ; // ATSlocal_void (tmp692) ; // ATSlocal_void (tmp693) ; // ATSlocal_void (tmp694) ; ATSlocal (ats_int_type, tmp695) ; ATSlocal (ats_int_type, tmp696) ; // ATSlocal_void (tmp697) ; // ATSlocal_void (tmp698) ; // ATSlocal_void (tmp699) ; // ATSlocal_void (tmp700) ; // ATSlocal_void (tmp701) ; // ATSlocal_void (tmp702) ; ATSlocal (ats_int_type, tmp703) ; ATSlocal (ats_ptr_type, tmp704) ; // ATSlocal_void (tmp705) ; // ATSlocal_void (tmp706) ; // ATSlocal_void (tmp707) ; // ATSlocal_void (tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; // ATSlocal_void (tmp711) ; // ATSlocal_void (tmp712) ; // ATSlocal_void (tmp713) ; // ATSlocal_void (tmp714) ; ATSlocal (ats_ptr_type, tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; // ATSlocal_void (tmp717) ; // ATSlocal_void (tmp718) ; // ATSlocal_void (tmp719) ; // ATSlocal_void (tmp720) ; ATSlocal (ats_ptr_type, tmp721) ; // ATSlocal_void (tmp722) ; // ATSlocal_void (tmp723) ; // ATSlocal_void (tmp724) ; // ATSlocal_void (tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; // ATSlocal_void (tmp727) ; // ATSlocal_void (tmp728) ; ATSlocal (ats_ptr_type, tmp729) ; // ATSlocal_void (tmp730) ; // ATSlocal_void (tmp731) ; ATSlocal (ats_ptr_type, tmp732) ; ATSlocal (ats_ptr_type, tmp733) ; // ATSlocal_void (tmp734) ; // ATSlocal_void (tmp735) ; // ATSlocal_void (tmp736) ; // ATSlocal_void (tmp737) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ecl: tmp597 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg1), atslab_d0ecl_node) ; do { /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)tmp597)->tag != 0) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp598 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_0) ; tmp599 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_1) ; /* tmp600 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cfixity(")) ; /* tmp601 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0xty (arg0, tmp598) ; /* tmp602 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp603 = */ fprintlst_01696_ats_ptr_type (arg0, tmp599, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp597)->tag != 1) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp604 = ats_caselptrlab_mac(anairiats_sum_3, tmp597, atslab_0) ; /* tmp605 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cnonfix(")) ; /* tmp606 = */ fprintlst_01696_ats_ptr_type (arg0, tmp604, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)tmp597)->tag != 2) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp607 = ats_caselptrlab_mac(anairiats_sum_3, tmp597, atslab_0) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("D0Csymintr(")) ; /* tmp609 = */ fprintlst_01696_ats_ptr_type (arg0, tmp607, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)tmp597)->tag != 3) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp610 = ats_caselptrlab_mac(anairiats_sum_3, tmp597, atslab_0) ; /* tmp611 = */ atspre_fprint_string (arg0, ATSstrcst("D0Csymelim(")) ; /* tmp612 = */ fprintlst_01696_ats_ptr_type (arg0, tmp610, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)tmp597)->tag != 4) { goto __ats_lab_157_0 ; } __ats_lab_156_1: tmp613 = ats_caselptrlab_mac(anairiats_sum_38, tmp597, atslab_0) ; tmp614 = ats_caselptrlab_mac(anairiats_sum_38, tmp597, atslab_1) ; tmp615 = ats_caselptrlab_mac(anairiats_sum_38, tmp597, atslab_2) ; /* tmp616 = */ atspre_fprint_string (arg0, ATSstrcst("D0Coverload(")) ; /* tmp617 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (arg0, tmp613) ; /* tmp618 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp619 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de (arg0, tmp614) ; /* tmp620 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp621 = */ atspre_fprint_int (arg0, tmp615) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)tmp597)->tag != 5) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp622 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_0) ; tmp623 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_1) ; /* tmp624 = */ atspre_fprint_string (arg0, ATSstrcst("D0Ce0xpdef(")) ; /* tmp625 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp622) ; /* tmp626 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp627 = */ fprintopt_01697_ats_ptr_type (arg0, tmp623, &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)tmp597)->tag != 6) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp628 = ats_caselptrlab_mac(anairiats_sum_3, tmp597, atslab_0) ; /* tmp629 = */ atspre_fprint_string (arg0, ATSstrcst("D0Ce0xpundef(")) ; /* tmp630 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp628) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: if (((ats_sum_ptr_type)tmp597)->tag != 7) { goto __ats_lab_160_0 ; } __ats_lab_159_1: tmp631 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_0) ; tmp632 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_1) ; /* tmp633 = */ atspre_fprint_string (arg0, ATSstrcst("D0Ce0xpact(")) ; /* tmp634 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xpactkind (arg0, tmp631) ; /* tmp635 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp636 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp (arg0, tmp632) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: if (((ats_sum_ptr_type)tmp597)->tag != 8) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp637 = ats_caselptrlab_mac(anairiats_sum_3, tmp597, atslab_0) ; /* tmp638 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cpragma(")) ; /* tmp639 = */ fprintlst_01696_ats_ptr_type (arg0, tmp637, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: if (((ats_sum_ptr_type)tmp597)->tag != 9) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp640 = ats_caselptrlab_mac(anairiats_sum_28, tmp597, atslab_0) ; tmp641 = ats_caselptrlab_mac(anairiats_sum_28, tmp597, atslab_1) ; /* tmp642 = */ atspre_fprint_string (arg0, ATSstrcst("D0Ccodegen(")) ; /* tmp643 = */ atspre_fprint_int (arg0, tmp640) ; /* tmp644 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp645 = */ fprintlst_01696_ats_ptr_type (arg0, tmp641, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_e0xp) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: if (((ats_sum_ptr_type)tmp597)->tag != 10) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp646 = ats_caselptrlab_mac(anairiats_sum_3, tmp597, atslab_0) ; /* tmp647 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cdatsrts(\n")) ; /* tmp648 = */ fprintlst_01696_ats_ptr_type (arg0, tmp646, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0atsrtdec) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)tmp597)->tag != 11) { goto __ats_lab_164_0 ; } __ats_lab_163_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Csrtdefs(...)")) ; break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)tmp597)->tag != 12) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp649 = ats_caselptrlab_mac(anairiats_sum_3, tmp597, atslab_0) ; /* tmp650 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cstacsts(\n")) ; /* tmp651 = */ fprintlst_01696_ats_ptr_type (arg0, tmp649, ATSstrcst("\n"), &fprint_s0tacst_55) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)tmp597)->tag != 13) { goto __ats_lab_166_0 ; } __ats_lab_165_1: tmp652 = ats_caselptrlab_mac(anairiats_sum_28, tmp597, atslab_0) ; tmp653 = ats_caselptrlab_mac(anairiats_sum_28, tmp597, atslab_1) ; /* tmp654 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cstacons(")) ; /* tmp655 = */ atspre_fprint_int (arg0, tmp652) ; /* tmp656 = */ atspre_fprint_string (arg0, ATSstrcst(";\n")) ; /* tmp657 = */ fprintlst_01696_ats_ptr_type (arg0, tmp653, ATSstrcst("\n"), &fprint_s0tacon_54) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)tmp597)->tag != 14) { goto __ats_lab_167_0 ; } __ats_lab_166_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Ctkindef(...)")) ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: if (((ats_sum_ptr_type)tmp597)->tag != 15) { goto __ats_lab_168_0 ; } __ats_lab_167_1: tmp658 = ats_caselptrlab_mac(anairiats_sum_28, tmp597, atslab_0) ; /* tmp659 = */ atspre_fprint_string (arg0, ATSstrcst("D0Csexpdefs(")) ; /* tmp660 = */ atspre_fprint_int (arg0, tmp658) ; /* tmp661 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp662 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: if (((ats_sum_ptr_type)tmp597)->tag != 16) { goto __ats_lab_169_0 ; } __ats_lab_168_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Csaspdec(...)")) ; break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: if (((ats_sum_ptr_type)tmp597)->tag != 17) { goto __ats_lab_170_0 ; } __ats_lab_169_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Creassume(...)")) ; break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: if (((ats_sum_ptr_type)tmp597)->tag != 18) { goto __ats_lab_171_0 ; } __ats_lab_170_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cexndecs(...)")) ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: if (((ats_sum_ptr_type)tmp597)->tag != 19) { goto __ats_lab_172_0 ; } __ats_lab_171_1: tmp663 = ats_caselptrlab_mac(anairiats_sum_34, tmp597, atslab_0) ; /* tmp664 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cdatdecs(")) ; /* tmp665 = */ atspre_fprint_int (arg0, tmp663) ; /* tmp666 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp667 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_172 */ __ats_lab_172_0: if (((ats_sum_ptr_type)tmp597)->tag != 25) { goto __ats_lab_173_0 ; } __ats_lab_172_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cdcstdecs(...)")) ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: if (((ats_sum_ptr_type)tmp597)->tag != 27) { goto __ats_lab_174_0 ; } __ats_lab_173_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cmacdefs(...)")) ; break ; /* branch: __ats_lab_174 */ __ats_lab_174_0: if (((ats_sum_ptr_type)tmp597)->tag != 20) { goto __ats_lab_175_0 ; } __ats_lab_174_1: tmp668 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_0) ; tmp669 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_1) ; /* tmp670 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cclassdec(")) ; /* tmp671 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (arg0, tmp668) ; /* tmp672 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp673 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0expopt (arg0, tmp669) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: if (((ats_sum_ptr_type)tmp597)->tag != 21) { goto __ats_lab_176_0 ; } __ats_lab_175_1: tmp674 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_0) ; tmp675 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_1) ; /* tmp676 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cextype(")) ; /* tmp677 = */ atspre_fprint_string (arg0, tmp674) ; /* tmp678 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp679 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp675) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: if (((ats_sum_ptr_type)tmp597)->tag != 22) { goto __ats_lab_177_0 ; } __ats_lab_176_1: tmp680 = ats_caselptrlab_mac(anairiats_sum_34, tmp597, atslab_0) ; tmp681 = ats_caselptrlab_mac(anairiats_sum_34, tmp597, atslab_1) ; tmp682 = ats_caselptrlab_mac(anairiats_sum_34, tmp597, atslab_2) ; /* tmp683 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cextype(")) ; /* tmp684 = */ atspre_fprint_int (arg0, tmp680) ; /* tmp685 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp686 = */ atspre_fprint_string (arg0, tmp681) ; /* tmp687 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp688 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0exp (arg0, tmp682) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: if (((ats_sum_ptr_type)tmp597)->tag != 23) { goto __ats_lab_178_0 ; } __ats_lab_177_1: tmp689 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_0) ; tmp690 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_1) ; /* tmp691 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cextvar(")) ; /* tmp692 = */ atspre_fprint_string (arg0, tmp689) ; /* tmp693 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp694 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0exp (arg0, tmp690) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: if (((ats_sum_ptr_type)tmp597)->tag != 24) { goto __ats_lab_179_0 ; } __ats_lab_178_1: tmp695 = ats_caselptrlab_mac(anairiats_sum_26, tmp597, atslab_0) ; tmp696 = ats_caselptrlab_mac(anairiats_sum_26, tmp597, atslab_1) ; /* tmp697 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cextcode(")) ; /* tmp698 = */ atspre_fprint_int (arg0, tmp695) ; /* tmp699 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp700 = */ atspre_fprint_int (arg0, tmp696) ; /* tmp701 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp702 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: if (((ats_sum_ptr_type)tmp597)->tag != 26) { goto __ats_lab_180_0 ; } __ats_lab_179_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cimpdec(...)")) ; break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: if (((ats_sum_ptr_type)tmp597)->tag != 29) { goto __ats_lab_181_0 ; } __ats_lab_180_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cvaldecs(...)")) ; break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: if (((ats_sum_ptr_type)tmp597)->tag != 28) { goto __ats_lab_182_0 ; } __ats_lab_181_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cfundecs(...)")) ; break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: if (((ats_sum_ptr_type)tmp597)->tag != 30) { goto __ats_lab_183_0 ; } __ats_lab_182_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cvardecs(...)")) ; break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: if (((ats_sum_ptr_type)tmp597)->tag != 31) { goto __ats_lab_184_0 ; } __ats_lab_183_1: tmp703 = ats_caselptrlab_mac(anairiats_sum_27, tmp597, atslab_1) ; tmp704 = ats_caselptrlab_mac(anairiats_sum_27, tmp597, atslab_2) ; /* tmp705 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cinclude(")) ; /* tmp706 = */ atspre_fprint_int (arg0, tmp703) ; /* tmp707 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp708 = */ atspre_fprint_string (arg0, tmp704) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_184 */ __ats_lab_184_0: if (((ats_sum_ptr_type)tmp597)->tag != 32) { goto __ats_lab_185_0 ; } __ats_lab_184_1: tmp709 = ats_caselptrlab_mac(anairiats_sum_15, tmp597, atslab_1) ; tmp710 = ats_caselptrlab_mac(anairiats_sum_15, tmp597, atslab_2) ; /* tmp711 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cstaload(")) ; /* tmp712 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbolopt (arg0, tmp709) ; /* tmp713 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp714 = */ atspre_fprint_string (arg0, tmp710) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: if (((ats_sum_ptr_type)tmp597)->tag != 33) { goto __ats_lab_186_0 ; } __ats_lab_185_1: tmp715 = ats_caselptrlab_mac(anairiats_sum_15, tmp597, atslab_1) ; tmp716 = ats_caselptrlab_mac(anairiats_sum_15, tmp597, atslab_2) ; /* tmp717 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cstaloadnm(")) ; /* tmp718 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbolopt (arg0, tmp715) ; /* tmp719 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp720 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp716) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_186 */ __ats_lab_186_0: if (((ats_sum_ptr_type)tmp597)->tag != 34) { goto __ats_lab_187_0 ; } __ats_lab_186_1: tmp721 = ats_caselptrlab_mac(anairiats_sum_15, tmp597, atslab_1) ; /* tmp722 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cstaloadloc(")) ; /* tmp723 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp721) ; /* tmp724 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp725 = */ atspre_fprint_string (arg0, ATSstrcst("(*d0eclist*)")) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: if (((ats_sum_ptr_type)tmp597)->tag != 35) { goto __ats_lab_188_0 ; } __ats_lab_187_1: tmp726 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_1) ; /* tmp727 = */ atspre_fprint_string (arg0, ATSstrcst("D0Crequire(")) ; /* tmp728 = */ atspre_fprint_string (arg0, tmp726) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_188 */ __ats_lab_188_0: if (((ats_sum_ptr_type)tmp597)->tag != 36) { goto __ats_lab_189_0 ; } __ats_lab_188_1: tmp729 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_1) ; /* tmp730 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cdynload(")) ; /* tmp731 = */ atspre_fprint_string (arg0, tmp729) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_189 */ __ats_lab_189_0: if (((ats_sum_ptr_type)tmp597)->tag != 37) { goto __ats_lab_190_0 ; } __ats_lab_189_1: tmp732 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_0) ; tmp733 = ats_caselptrlab_mac(anairiats_sum_13, tmp597, atslab_1) ; /* tmp734 = */ atspre_fprint_string (arg0, ATSstrcst("D0Clocal(\n")) ; /* tmp735 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0eclist (arg0, tmp732) ; /* tmp736 = */ atspre_fprint_string (arg0, ATSstrcst("\n(*in*)\n")) ; /* tmp737 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0eclist (arg0, tmp733) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_190 */ __ats_lab_190_0: // if (((ats_sum_ptr_type)tmp597)->tag != 38) { ats_deadcode_failure_handle () ; } __ats_lab_190_1: /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D0Cguadecl(...)")) ; break ; } while (0) ; return /* (tmp596) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ecl] */ /* // /tmp/ATS-Postiats/src/pats_syntax_print.dats: 36127(line=1595, offs=3) -- 36238(line=1598, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0eclist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp738) ; // ATSlocal_void (tmp739) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0eclist: /* tmp739 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ecl) ; /* tmp738 = */ atspre_fprint_newline (arg0) ; return /* (tmp738) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0eclist] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_syntax_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_dynexp_dats.c0000644000175000017500000061175113431250607023572 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* include some .h files */ #ifndef _ATS_HEADER_NONE #include "ats_config.h" #include "ats_basics.h" #include "ats_types.h" #include "ats_exception.h" #include "ats_memory.h" #endif /* _ATS_HEADER_NONE */ /* include some .cats files */ #ifndef _ATS_PRELUDE_NONE #include "prelude/CATS/basics.cats" #include "prelude/CATS/bool.cats" #include "prelude/CATS/char.cats" #include "prelude/CATS/byte.cats" #include "prelude/CATS/float.cats" #include "prelude/CATS/integer.cats" #include "prelude/CATS/integer_ptr.cats" #include "prelude/CATS/integer_fixed.cats" #include "prelude/CATS/sizetype.cats" #include "prelude/CATS/pointer.cats" #include "prelude/CATS/reference.cats" #include "prelude/CATS/string.cats" #include "prelude/CATS/lazy.cats" #include "prelude/CATS/lazy_vt.cats" #include "prelude/CATS/printf.cats" #include "prelude/CATS/list.cats" #include "prelude/CATS/option.cats" #include "prelude/CATS/array.cats" #include "prelude/CATS/matrix.cats" #endif /* _ATS_PRELUDE_NONE */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_7 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BANG_3) ; 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_COLON_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9) ; 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_EQ_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGT_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLT_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLTGT_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LT_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GT_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTLT_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLT_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLTGTDOT_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSGT_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TILDE_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BEGIN_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIX_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOR_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LAM_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LET_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OP_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHERE_83) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILE_84) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ADDRAT_88) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOLDAT_89) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FREEAT_90) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VIEWAT_91) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRDELAY_92) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRARRPSZ_93) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTYREP_94) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_96) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_ARG_97) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTVAL_102) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTFCALL_103) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTMCALL_104) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLITERAL_105) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFILENAME_106) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYLOCATION_107) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFUNCTION_108) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLST_109) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRREC_110) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTUP_111) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRBREAK_112) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRCONTINUE_113) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRRAISE_114) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVARARG_115) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVCOPYENV_116) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSHOWTYPE_117) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTEMPENVER_118) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLASSERT_119) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLVERIFY_120) ; 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_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_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_LBRACKET_159) ; 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_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_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_parsing_2esats__PE_di0de_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ynq_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_dqi0de_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_arrqi0de_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_tmpqi0de_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_funarrow_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0fcl_76) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp_81) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp0_82) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp1_83) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmd0exp_84) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labd0exp_85) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT2_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT3_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12one_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12two_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTLT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TILDE) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_symdot) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_dot) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_minusgt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_some) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loopi0nv_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ide) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_opid) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_dqid) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_idext) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_i0nt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_c0har) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_s0tring) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_f0loat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFIL) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYLOC) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFUN) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tyrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_literal) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extval) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extfcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extmcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_foldat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_freeat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tmpid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_let_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_declseq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_where) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_list) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifhead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sifhead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifcasehd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_casehead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_scasehead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst_quote) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tup) (ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_rec) (ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrsub) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrinit) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrpsz) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ptrof) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_viewat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_lab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_raise) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask_arg) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vararg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vcopyenv) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_showtype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tempenver) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sexparg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_exist) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ann) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lam) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_fix) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_delay) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_forhead) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_whilehead) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_loopexn) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_trywith_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solassert) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solverify) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_decode) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_encode_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_cross) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labd0exp_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_sing) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_cons) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__initestpost_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__ifhead_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sifhead_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__casehead_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__scasehead_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_some) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__tryhead_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0fcl_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ELSE) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_OF) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IF) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SIF) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_CASE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SCASE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IFCASE) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WITH) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_FORSTAR) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WHILESTAR) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_TRY) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACKET) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTDOT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT_test) (ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLPAREN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN_deco) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLBRACE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE_deco) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_COMMA_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun) (ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p1list12_fun) (ats_ptr_type, ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0dext) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de_dlr) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exparg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmps0expseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg1) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ynq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labd0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_arrqi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmpqi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0fclseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_c0lauseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sc0lauseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_dyn) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__p_d0exp_tok) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type loop_2 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_4 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type d0exp_list12_0 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type d0exp_list12_if_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_int_type arg4) ; static ats_ptr_type d0exp_tup12_6 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type d0exp_rec12_7 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_d0expseq_BAR_d0expseq_8 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p1_d0expseq_BAR_d0expseq_9 (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2, ats_ref_type arg3) ; static ats_ptr_type p_labd0expseq_BAR_labd0expseq_10 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type pqi0de_fun_13 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type p_arri0de_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_tmpi0de_17 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type loop_23 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_s0expelt_24 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_arrdimopt_25 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_d0arrind_26 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_s0elop_27 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_s0expdarg_28 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_atmd0exp_29 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_atmd0exp_tok_30 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_argd0exp_31 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type loop_33 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p_d0exp0_32 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type loop_35 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p_d0exp1_34 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0nvarg_36 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0nvargseq_37 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0nvqua_38 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0nvresqua_39 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0nvmet_40 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0nvargstate_41 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0nvresstate_42 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0nvresstateopt_43 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_loopi0nv_44 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_funarrow_45 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type pstar_where_46 (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2, ats_ref_type arg3) ; static ats_ptr_type ptokhead_fun_47 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_ptr_type p_ifhead_48 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_sifhead_49 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_ifcasehd_50 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_casehead_51 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_scasehead_52 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_forhead_53 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_whilehead_54 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_tryhead_55 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_initestpost_56 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_i0fcl_60 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_2 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; __ats_lab_loop_2: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp7 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp8 = ats_ptrget_mac(ats_ptr_type, tmp7) ; tmp9 = atspre_iadd (arg1, 1) ; arg0 = tmp8 ; arg1 = tmp9 ; goto __ats_lab_loop_2 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp6 = arg1 ; break ; } while (0) ; return (tmp6) ; } /* end of [loop_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp5) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp5 = loop_2 (arg0, 0) ; return (tmp5) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_4 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab_loop_4: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp14 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp14 ; arg1 = arg1 ; goto __ats_lab_loop_4 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp13) */ ; } /* end of [loop_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp15) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp12 ; */ tmp12 = arg0 ; /* tmp15 = */ loop_4 ((&tmp12), arg1) ; tmp11 = tmp12 ; return (tmp11) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 1842(line=63, offs=1) -- 2177(line=77, offs=8) */ ATSstaticdec() ats_ptr_type d0exp_list12_0 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_d0exp_list12_0: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; ATS_FREE(arg1) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_list (arg0, -1, ats_castfn_mac(ats_ptr_type, tmp1), arg2) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp4 = list_vt_length_01501_ats_ptr_type (tmp2) ; tmp10 = list_vt_append_01504_ats_ptr_type (tmp2, tmp3) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_list (arg0, tmp4, ats_castfn_mac(ats_ptr_type, tmp10), arg2) ; break ; } while (0) ; return (tmp0) ; } /* end of [d0exp_list12_0] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 2254(line=83, offs=1) -- 2480(line=94, offs=6) */ ATSstaticdec() ats_ptr_type d0exp_list12_if_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_bool_type, tmp17) ; // ATSlocal_void (tmp18) ; __ats_lab_d0exp_list12_if_5: tmp17 = atspre_eq_int_int (arg3, arg4) ; if (tmp17) { tmp16 = d0exp_list12_0 (arg0, arg1, arg2) ; } else { /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (arg1) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp16) ; } /* end of [d0exp_list12_if_5] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 2553(line=100, offs=1) -- 2930(line=119, offs=4) */ ATSstaticdec() ats_ptr_type d0exp_tup12_6 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab_d0exp_tup12_6: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; ATS_FREE(arg2) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tup (arg0, arg1, -1, ats_castfn_mac(ats_ptr_type, tmp20), arg3) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp22 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp23 = list_vt_length_01501_ats_ptr_type (tmp21) ; tmp24 = list_vt_append_01504_ats_ptr_type (tmp21, tmp22) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tup (arg0, arg1, tmp23, ats_castfn_mac(ats_ptr_type, tmp24), arg3) ; break ; } while (0) ; return (tmp19) ; } /* end of [d0exp_tup12_6] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 2981(line=124, offs=1) -- 3334(line=141, offs=4) */ ATSstaticdec() ats_ptr_type d0exp_rec12_7 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_int_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab_d0exp_rec12_7: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; ATS_FREE(arg2) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_rec (arg0, arg1, -1, ats_castfn_mac(ats_ptr_type, tmp26), arg3) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp29 = list_vt_length_01501_ats_ptr_type (tmp27) ; tmp30 = list_vt_append_01504_ats_ptr_type (tmp27, tmp28) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_rec (arg0, arg1, tmp29, ats_castfn_mac(ats_ptr_type, tmp30), arg3) ; break ; } while (0) ; return (tmp25) ; } /* end of [d0exp_rec12_7] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 3385(line=146, offs=1) -- 3495(line=150, offs=33) */ ATSstaticdec() ats_ptr_type p_d0expseq_BAR_d0expseq_8 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; __ats_lab_p_d0expseq_BAR_d0expseq_8: tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; return (tmp31) ; } /* end of [p_d0expseq_BAR_d0expseq_8] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 3537(line=154, offs=1) -- 3667(line=159, offs=39) */ ATSstaticdec() ats_ptr_type p1_d0expseq_BAR_d0expseq_9 (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_p1_d0expseq_BAR_d0expseq_9: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p1list12_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; return (tmp32) ; } /* end of [p1_d0expseq_BAR_d0expseq_9] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 3731(line=165, offs=1) -- 3893(line=171, offs=4) */ ATSstaticdec() ats_ptr_type p_labd0expseq_BAR_labd0expseq_10 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_bool_type, tmp34) ; __ats_lab_p_labd0expseq_BAR_labd0expseq_10: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test (arg0) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labd0exp) ; return (tmp33) ; } /* end of [p_labd0expseq_BAR_labd0expseq_10] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 4092(line=190, offs=3) -- 5229(line=242, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_int_type, tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp36), atslab_token_loc) ; tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp36), atslab_token_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp38)->tag != 143) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_1, tmp38, atslab_0) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp37, tmp39) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp38)->tag != 144) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_1, tmp38, atslab_0) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp37, tmp41) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp38)->tag != 21) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp38)->tag != 22) { goto __ats_lab_14_0 ; } __ats_lab_13_1: /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp38)->tag != 5) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp38)->tag != 3) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp38)->tag != 13) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp38)->tag != 30) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TILDE) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp38)->tag != 23) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_sym (tmp37, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTLT) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp50 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp50 ; tmp52 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_di0de_47) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp37, tmp52) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 5446(line=257, offs=8) -- 7196(line=345, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ynq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_uint_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_int_type, tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ynq: tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp55), atslab_token_loc) ; /* ats_ptr_type tmp57 ; */ do { /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de_dlr, (&tmp57)) ; if (!tmp58) { goto __ats_lab_23_1 ; } tmp59 = ats_castfn_mac(ats_ptr_type, tmp57) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp61 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp60), atslab_token_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp61)->tag != 9) { goto __ats_lab_22_0 ; } __ats_lab_21_1: /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_symdot (tmp59, tmp60) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp64 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ynq_51) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (0, tmp56, tmp64) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp54) ; break ; } while (0) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp65 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp65 ; tmp67 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ynq_51) ; /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp56, tmp67) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ynq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 7243(line=350, offs=1) -- 8063(line=394, offs=4) */ ATSstaticdec() ats_ptr_type pqi0de_fun_13 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_uint_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_bool_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; // ATSlocal_void (tmp80) ; __ats_lab_pqi0de_fun_13: tmp69 = ats_ptrget_mac(ats_int_type, arg2) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp71), atslab_token_loc) ; /* ats_ptr_type tmp73 ; */ do { /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, arg3, (&tmp73)) ; if (!tmp74) { goto __ats_lab_25_1 ; } tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_none (ats_castfn_mac(ats_ptr_type, tmp73)) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ynq, (&tmp73)) ; if (!tmp75) { goto __ats_lab_26_1 ; } tmp76 = ats_castfn_mac(ats_ptr_type, tmp73) ; tmp77 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg3) (arg0, arg1, arg2) ; tmp78 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp69) ; if (tmp78) { tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dqi0de_make_some (tmp76, tmp77) ; } else { tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp70) ; } /* end of [if] */ break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp79 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp79 ; /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp72, arg4) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp68) ; } /* end of [pqi0de_fun_13] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 8144(line=400, offs=10) -- 8208(line=401, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de: tmp82 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_dqi0de_52) ; tmp81 = pqi0de_fun_13 (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de, tmp82) ; return (tmp81) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 8256(line=407, offs=1) -- 8565(line=422, offs=4) */ ATSstaticdec() ats_ptr_type p_arri0de_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_int_type, tmp89) ; __ats_lab_p_arri0de_15: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp85 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp84), atslab_token_node) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp85)->tag != 145) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_1, tmp85, atslab_0) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp88 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp84), atslab_token_loc) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp88, tmp86) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp89 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp89 ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp83) ; } /* end of [p_arri0de_15] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 8610(line=425, offs=12) -- 8678(line=426, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_arrqi0de (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_arrqi0de: tmp91 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_arrqi0de_53) ; tmp90 = pqi0de_fun_13 (arg0, arg1, arg2, &p_arri0de_15, tmp91) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_arrqi0de] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 8728(line=432, offs=1) -- 9037(line=447, offs=4) */ ATSstaticdec() ats_ptr_type p_tmpi0de_17 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_int_type, tmp98) ; __ats_lab_p_tmpi0de_17: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp94 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp93), atslab_token_node) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp94)->tag != 146) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_1, tmp94, atslab_0) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp97 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp93), atslab_token_loc) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp97, tmp95) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp98 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp98 ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp92) ; } /* end of [p_tmpi0de_17] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 9082(line=450, offs=12) -- 9150(line=451, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmpqi0de (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmpqi0de: tmp100 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_tmpqi0de_54) ; tmp99 = pqi0de_fun_13 (arg0, arg1, arg2, &p_tmpi0de_17, tmp100) ; return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmpqi0de] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 9250(line=461, offs=1) -- 9642(line=479, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labd0exp (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_bool_type, tmp107) ; // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labd0exp: tmp102 = ats_ptrget_mac(ats_int_type, arg2) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; // tmp105 = ats_caselptrlab_mac(anairiats_sum_5, tmp104, atslab_0) ; tmp106 = ats_caselptrlab_mac(anairiats_sum_5, tmp104, atslab_2) ; ATS_FREE(tmp104) ; tmp107 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp102) ; if (tmp107) { tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__labd0exp_make (tmp105, tmp106) ; } else { tmp109 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp103), atslab_token_loc) ; tmp110 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labd0exp_85) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp109, tmp110) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_labd0exp] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 9746(line=488, offs=3) -- 9806(line=489, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqd0expopt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqd0expopt: tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; tmp111 = ats_castfn_mac(ats_ptr_type, tmp112) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqd0expopt] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_23 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab_loop_23: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp126 ; goto __ats_lab_loop_23 ; // tail call break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: break ; } while (0) ; return /* (tmp125) */ ; } /* end of [loop_23] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp124) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp124 = */ loop_23 (arg0) ; return /* (tmp124) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 9959(line=501, offs=3) -- 10536(line=532, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_int_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_bool_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; // ATSlocal_void (tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq: tmp114 = ats_ptrget_mac(ats_int_type, arg2) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp (arg0, 1, arg2) ; tmp116 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp114) ; if (tmp116) { tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp117), atslab_token_node) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp118)->tag != 156) { goto __ats_lab_32_0 ; } __ats_lab_31_1: /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq (arg0, 1, arg2) ; tmp113 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp113, atslab_0, tmp115) ; ats_selptrset_mac(anairiats_sum_3, tmp113, atslab_1, tmp120) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp121 = (ats_sum_ptr_type)0 ; tmp113 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp113, atslab_0, tmp115) ; ats_selptrset_mac(anairiats_sum_3, tmp113, atslab_1, tmp121) ; break ; } while (0) ; } else { ats_ptrget_mac(ats_int_type, arg2) = tmp114 ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON) ; /* tmp123 = */ list_vt_free_01499_ats_ptr_type (tmp122) ; tmp113 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 10670(line=543, offs=1) -- 11486(line=575, offs=4) */ ATSstaticdec() ats_ptr_type p_s0expelt_24 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_int_type, tmp128) ; ATSlocal (ats_uint_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; // ATSlocal_void (tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_bool_type, tmp135) ; // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_bool_type, tmp139) ; __ats_lab_p_s0expelt_24: tmp128 = ats_ptrget_mac(ats_int_type, arg2) ; tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp131 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp130), atslab_token_node) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp131)->tag != 161) { goto __ats_lab_36_0 ; } __ats_lab_35_1: /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp (arg0, 0, arg2) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE, tmp128) ; tmp135 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp128) ; if (tmp135) { tmp127 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp127, atslab_0, tmp133) ; } else { tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp129) ; } /* end of [if] */ break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp131)->tag != 159) { goto __ats_lab_37_0 ; } __ats_lab_36_1: /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp (arg0, 0, arg2) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET, tmp128) ; tmp139 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp128) ; if (tmp139) { tmp127 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp127, atslab_0, tmp137) ; } else { tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp129) ; } /* end of [if] */ break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp127 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp127) ; } /* end of [p_s0expelt_24] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 11592(line=583, offs=1) -- 11917(line=594, offs=4) */ ATSstaticdec() ats_ptr_type p_arrdimopt_25 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_bool_type, tmp144) ; __ats_lab_p_arrdimopt_25: tmp141 = ats_ptrget_mac(ats_int_type, arg2) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, 1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACKET, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET) ; // tmp143 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_1) ; ATS_FREE(tmp142) ; tmp144 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp141) ; if (tmp144) { tmp140 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp140, atslab_0, tmp143) ; } else { ats_ptrget_mac(ats_int_type, arg2) = tmp141 ; tmp140 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp140) ; } /* end of [p_arrdimopt_25] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 12030(line=602, offs=1) -- 12835(line=634, offs=4) */ ATSstaticdec() ats_ptr_type p_d0arrind_26 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_uint_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; // ATSlocal_void (tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_bool_type, tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; __ats_lab_p_d0arrind_26: tmp146 = ats_ptrget_mac(ats_int_type, arg2) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET (arg0, arg1, arg2) ; tmp150 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp146) ; if (tmp150) { tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp152 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp151), atslab_token_node) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp152)->tag != 159) { goto __ats_lab_39_0 ; } __ats_lab_38_1: /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp154 = p_d0arrind_26 (arg0, 0, arg2) ; tmp155 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp146) ; if (tmp155) { tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_cons (ats_castfn_mac(ats_ptr_type, tmp148), tmp154) ; } else { /* tmp156 = */ list_vt_free_01499_ats_ptr_type (tmp148) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp147) ; } /* end of [if] */ break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0arrind_sing (ats_castfn_mac(ats_ptr_type, tmp148), tmp149) ; break ; } while (0) ; } else { /* tmp157 = */ list_vt_free_01499_ats_ptr_type (tmp148) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp147) ; } /* end of [if] */ return (tmp145) ; } /* end of [p_d0arrind_26] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 12916(line=642, offs=1) -- 13306(line=661, offs=4) */ ATSstaticdec() ats_ptr_type p_s0elop_27 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; ATSlocal (ats_int_type, tmp163) ; __ats_lab_p_s0elop_27: tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp159), atslab_token_node) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp160)->tag != 9) { goto __ats_lab_41_0 ; } __ats_lab_40_1: /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_dot (tmp159) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp160)->tag != 27) { goto __ats_lab_42_0 ; } __ats_lab_41_1: /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0elop_make_minusgt (tmp159) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp163 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp163 ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp158) ; } /* end of [p_s0elop_27] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 13397(line=669, offs=1) -- 13768(line=681, offs=4) */ ATSstaticdec() ats_ptr_type p_s0expdarg_28 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_int_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_bool_type, tmp170) ; __ats_lab_p_s0expdarg_28: tmp165 = ats_ptrget_mac(ats_int_type, arg2) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exparg, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE) ; // tmp167 = ats_caselptrlab_mac(anairiats_sum_5, tmp166, atslab_0) ; tmp168 = ats_caselptrlab_mac(anairiats_sum_5, tmp166, atslab_1) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_5, tmp166, atslab_2) ; ATS_FREE(tmp166) ; tmp170 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp165) ; if (tmp170) { tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sexparg (tmp167, tmp168, tmp169) ; } else { tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp164) ; } /* end of [p_s0expdarg_28] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 14914(line=734, offs=1) -- 15040(line=740, offs=2) */ ATSstaticdec() ats_ptr_type p_atmd0exp_29 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab_p_atmd0exp_29: tmp172 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmd0exp_84) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_atmd0exp_tok_30, tmp172) ; return (tmp171) ; } /* end of [p_atmd0exp_29] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 15072(line=743, offs=1) -- 29410(line=1286, offs=4) */ ATSstaticdec() ats_ptr_type p_atmd0exp_tok_30 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_int_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_bool_type, tmp177) ; ATSlocal (ats_bool_type, tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_bool_type, tmp185) ; ATSlocal (ats_bool_type, tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_bool_type, tmp194) ; // ATSlocal_void (tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_bool_type, tmp199) ; ATSlocal (ats_bool_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; // ATSlocal_void (tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_bool_type, tmp206) ; ATSlocal (ats_bool_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_int_type, tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_bool_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_bool_type, tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_bool_type, tmp229) ; // ATSlocal_void (tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_bool_type, tmp237) ; ATSlocal (ats_bool_type, tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_bool_type, tmp249) ; ATSlocal (ats_bool_type, tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_bool_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; // ATSlocal_void (tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_bool_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_bool_type, tmp266) ; // ATSlocal_void (tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_bool_type, tmp270) ; ATSlocal (ats_int_type, tmp271) ; ATSlocal (ats_bool_type, tmp272) ; // ATSlocal_void (tmp273) ; ATSlocal (ats_bool_type, tmp274) ; // ATSlocal_void (tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_bool_type, tmp278) ; ATSlocal (ats_int_type, tmp279) ; ATSlocal (ats_bool_type, tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_bool_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_bool_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_bool_type, tmp291) ; // ATSlocal_void (tmp292) ; // ATSlocal_void (tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_bool_type, tmp298) ; // ATSlocal_void (tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_bool_type, tmp302) ; // ATSlocal_void (tmp303) ; ATSlocal (ats_bool_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_bool_type, tmp307) ; // ATSlocal_void (tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_bool_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_bool_type, tmp314) ; // ATSlocal_void (tmp315) ; ATSlocal (ats_int_type, tmp316) ; // ATSlocal_void (tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_bool_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_bool_type, tmp323) ; // ATSlocal_void (tmp324) ; ATSlocal (ats_int_type, tmp325) ; // ATSlocal_void (tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_bool_type, tmp330) ; // ATSlocal_void (tmp331) ; ATSlocal (ats_int_type, tmp332) ; // ATSlocal_void (tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_bool_type, tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_bool_type, tmp342) ; // ATSlocal_void (tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_bool_type, tmp348) ; // ATSlocal_void (tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_bool_type, tmp352) ; // ATSlocal_void (tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_bool_type, tmp356) ; // ATSlocal_void (tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_bool_type, tmp360) ; // ATSlocal_void (tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_bool_type, tmp364) ; ATSlocal (ats_int_type, tmp365) ; __ats_lab_p_atmd0exp_tok_30: tmp174 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp175 ; */ tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_token_node) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de, (&tmp175)) ; if (!tmp177) { goto __ats_lab_44_1 ; } tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ide (ats_castfn_mac(ats_ptr_type, tmp175)) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0dext, (&tmp175)) ; if (!tmp178) { goto __ats_lab_45_0 ; } tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_idext (ats_castfn_mac(ats_ptr_type, tmp175)) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp176)->tag != 150) { goto __ats_lab_46_0 ; } __ats_lab_45_1: /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_i0nt (arg3) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp176)->tag != 151) { goto __ats_lab_47_0 ; } __ats_lab_46_1: /* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_c0har (arg3) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp176)->tag != 152) { goto __ats_lab_48_0 ; } __ats_lab_47_1: /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_f0loat (arg3) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp176)->tag != 154) { goto __ats_lab_49_0 ; } __ats_lab_48_1: /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_s0tring (arg3) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp176)->tag != 64) { goto __ats_lab_50_0 ; } __ats_lab_49_1: /* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de (arg0, 0, arg2) ; tmp185 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp185) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_opid (arg3, tmp184) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: __ats_lab_50_1: tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de, (&tmp175)) ; if (!tmp186) { goto __ats_lab_51_0 ; } tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_dqid (ats_castfn_mac(ats_ptr_type, tmp175)) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp176)->tag != 106) { goto __ats_lab_52_0 ; } __ats_lab_51_1: /* tmp187 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFIL (arg3) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp176)->tag != 107) { goto __ats_lab_53_0 ; } __ats_lab_52_1: /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYLOC (arg3) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp176)->tag != 108) { goto __ats_lab_54_0 ; } __ats_lab_53_1: /* tmp189 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_MYFUN (arg3) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp176)->tag != 94) { goto __ats_lab_55_0 ; } __ats_lab_54_1: /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, arg1, arg2) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp174) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp194 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp194) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tyrep (arg3, tmp192, tmp193) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp176)->tag != 105) { goto __ats_lab_56_0 ; } __ats_lab_55_1: /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, arg1, arg2) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp174) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp199 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp199) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_literal (arg3, tmp197, tmp198) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_s0elop_27, (&tmp175)) ; if (!tmp200) { goto __ats_lab_60_0 ; } tmp201 = ats_castfn_mac(ats_ptr_type, tmp175) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp203 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp202), atslab_token_node) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp203)->tag != 159) { goto __ats_lab_58_0 ; } __ats_lab_57_1: /* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp205 = p_d0arrind_26 (arg0, 0, arg2) ; tmp206 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp206) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_ind (tmp201, tmp205) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab, (&tmp175)) ; if (!tmp207) { goto __ats_lab_59_1 ; } tmp208 = ats_castfn_mac(ats_ptr_type, tmp175) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_lab (tmp201, tmp208) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: tmp209 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp209 ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp176)->tag != 12) { goto __ats_lab_61_0 ; } __ats_lab_60_1: /* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sel_int (arg3) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp176)->tag != 88) { goto __ats_lab_62_0 ; } __ats_lab_61_1: /* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ptrof (arg3) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp176)->tag != 91) { goto __ats_lab_63_0 ; } __ats_lab_62_1: /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_viewat (arg3) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp176)->tag != 89) { goto __ats_lab_64_0 ; } __ats_lab_63_1: /* tmp213 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &p_s0expdarg_28) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_foldat (arg3, ats_castfn_mac(ats_ptr_type, tmp214)) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp176)->tag != 90) { goto __ats_lab_65_0 ; } __ats_lab_64_1: /* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &p_s0expdarg_28) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_freeat (arg3, ats_castfn_mac(ats_ptr_type, tmp216)) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: __ats_lab_65_1: tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmpqi0de, (&tmp175)) ; if (!tmp217) { goto __ats_lab_66_0 ; } tmp218 = ats_castfn_mac(ats_ptr_type, tmp175) ; tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmps0expseq, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT_test) ; tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT, tmp174) ; tmp221 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp221) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tmpid (tmp218, ats_castfn_mac(ats_ptr_type, tmp219), tmp220) ; } else { /* tmp222 = */ list_vt_free_01499_ats_ptr_type (tmp219) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp176)->tag != 102) { goto __ats_lab_67_0 ; } __ats_lab_66_1: /* tmp223 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp174) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA, tmp174) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring, tmp174) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp229 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp229) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extval (arg3, tmp225, tmp227, tmp228) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp176)->tag != 103) { goto __ats_lab_68_0 ; } __ats_lab_67_1: /* tmp230 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp174) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA, tmp174) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring, tmp174) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_COMMA_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp238 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp238) { tmp237 = ats_true_bool ; } else { tmp237 = ats_false_bool ; } /* end of [if] */ if (tmp237) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extfcall (arg3, tmp232, tmp234, ats_castfn_mac(ats_ptr_type, tmp235), tmp236) ; } else { /* tmp239 = */ list_vt_free_01499_ats_ptr_type (tmp235) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp176)->tag != 104) { goto __ats_lab_69_0 ; } __ats_lab_68_1: /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp174) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA, tmp174) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp174) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA, tmp174) ; tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring, tmp174) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_COMMA_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp250 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp250) { tmp249 = ats_true_bool ; } else { tmp249 = ats_false_bool ; } /* end of [if] */ if (tmp249) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_extmcall (arg3, tmp242, tmp244, tmp246, ats_castfn_mac(ats_ptr_type, tmp247), tmp248) ; } else { /* tmp251 = */ list_vt_free_01499_ats_ptr_type (tmp247) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp176)->tag != 157) { goto __ats_lab_72_0 ; } __ats_lab_69_1: /* tmp252 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp (arg0, 1, arg2) ; tmp254 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp254) { tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp256 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp255), atslab_token_node) ; do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp256)->tag != 156) { goto __ats_lab_71_0 ; } __ats_lab_70_1: /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq (arg0, 0, arg2) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp260 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp260) { tmp261 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp261, atslab_0, tmp253) ; ats_selptrset_mac(anairiats_sum_3, tmp261, atslab_1, tmp258) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq (arg3, tmp261, tmp259) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: __ats_lab_71_1: tmp262 = p1_d0expseq_BAR_d0expseq_9 (tmp253, arg0, 0, arg2) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp173 = d0exp_list12_if_5 (arg3, tmp262, tmp263, ats_ptrget_mac(ats_int_type, arg2), tmp174) ; break ; } while (0) ; } else { ats_ptrget_mac(ats_int_type, arg2) = tmp174 ; tmp264 = p_d0expseq_BAR_d0expseq_8 (arg0, 0, arg2) ; tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp173 = d0exp_list12_if_5 (arg3, tmp264, tmp265, ats_ptrget_mac(ats_int_type, arg2), tmp174) ; } /* end of [if] */ break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: __ats_lab_72_1: tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN_deco (tmp176) ; if (!tmp266) { goto __ats_lab_73_1 ; } /* tmp267 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp268 = p_d0expseq_BAR_d0expseq_8 (arg0, 0, arg2) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp270 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp270) { tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLPAREN (tmp176) ; if (tmp272) { tmp271 = 0 ; } else { tmp271 = 1 ; } /* end of [if] */ tmp173 = d0exp_tup12_6 (tmp271, arg3, tmp268, tmp269) ; } else { /* tmp273 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp268) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE_deco (tmp176) ; if (!tmp274) { goto __ats_lab_74_0 ; } /* tmp275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp276 = p_labd0expseq_BAR_labd0expseq_10 (arg0, 0, arg2) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp278 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp278) { tmp280 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLBRACE (tmp176) ; if (tmp280) { tmp279 = 0 ; } else { tmp279 = 1 ; } /* end of [if] */ tmp173 = d0exp_rec12_7 (tmp279, arg3, tmp276, tmp277) ; } else { /* tmp281 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp276) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp176)->tag != 165) { goto __ats_lab_75_0 ; } __ats_lab_74_1: /* tmp282 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp (arg0, 0, arg2) ; tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET, tmp174) ; tmp286 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp286) { tmp285 = p_arrdimopt_25 (arg0, 0, arg2) ; } else { tmp285 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN, tmp174) ; tmp289 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp289) { tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; } else { tmp288 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp290 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp291 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp291) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrinit (arg3, tmp283, tmp285, ats_castfn_mac(ats_ptr_type, tmp288), tmp290) ; } else { /* tmp292 = */ list_vt_free_01499_ats_ptr_type (tmp288) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp176)->tag != 167) { goto __ats_lab_76_0 ; } __ats_lab_75_1: /* tmp293 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exparg (arg0, 0, arg2) ; tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR, tmp174) ; tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp174) ; tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET, tmp174) ; tmp298 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp298) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_exist (arg3, tmp294, tmp295, tmp296, tmp297) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp176)->tag != 166) { goto __ats_lab_77_0 ; } __ats_lab_76_1: /* tmp299 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET (arg0, 0, arg2) ; tmp302 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp302) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst_quote (arg3, ats_castfn_mac(ats_ptr_type, tmp300), tmp301) ; } else { /* tmp303 = */ list_vt_free_01499_ats_ptr_type (tmp300) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: __ats_lab_77_1: tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_arrqi0de, (&tmp175)) ; if (!tmp304) { goto __ats_lab_78_0 ; } tmp305 = ats_castfn_mac(ats_ptr_type, tmp175) ; tmp306 = p_d0arrind_26 (arg0, 0, arg2) ; tmp307 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp307) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrsub (tmp305, tmp306) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp176)->tag != 93) { goto __ats_lab_79_0 ; } __ats_lab_78_1: /* tmp308 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp309 = p_s0expelt_24 (arg0, 0, arg2) ; tmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN, tmp174) ; tmp312 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp312) { tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; } else { tmp311 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp314 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp314) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_arrpsz (arg3, tmp309, tmp310, ats_castfn_mac(ats_ptr_type, tmp311), tmp313) ; } else { /* tmp315 = */ list_vt_free_01499_ats_ptr_type (tmp311) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp176)->tag != 109) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp316 = ats_caselptrlab_mac(anairiats_sum_7, tmp176, atslab_0) ; /* tmp317 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp318 = p_s0expelt_24 (arg0, 0, arg2) ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN, tmp174) ; tmp321 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp321) { tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; } else { tmp320 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp323 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp323) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lst (tmp316, arg3, tmp318, tmp319, ats_castfn_mac(ats_ptr_type, tmp320), tmp322) ; } else { /* tmp324 = */ list_vt_free_01499_ats_ptr_type (tmp320) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp176)->tag != 111) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp325 = ats_caselptrlab_mac(anairiats_sum_7, tmp176, atslab_0) ; /* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp328 = p_d0expseq_BAR_d0expseq_8 (arg0, 0, arg2) ; tmp329 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp330 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp330) { tmp173 = d0exp_tup12_6 (tmp325, arg3, tmp328, tmp329) ; } else { /* tmp331 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp328) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp176)->tag != 110) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp332 = ats_caselptrlab_mac(anairiats_sum_7, tmp176, atslab_0) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp334 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE (arg0, 0, arg2) ; tmp335 = p_labd0expseq_BAR_labd0expseq_10 (arg0, 0, arg2) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE, tmp174) ; tmp337 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp337) { tmp173 = d0exp_rec12_7 (tmp332, arg3, tmp335, tmp336) ; } else { /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (tmp335) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp176)->tag != 36) { goto __ats_lab_83_0 ; } __ats_lab_82_1: /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq (arg0, 0, arg2) ; tmp341 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END (arg0, 0, arg2) ; tmp342 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp342) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_seq (arg3, tmp340, tmp341) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp176)->tag != 59) { goto __ats_lab_84_0 ; } __ats_lab_83_1: /* tmp343 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_dyn (arg0, 0, arg2) ; tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IN (arg0, 0, arg2) ; tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq, tmp174) ; tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END, tmp174) ; tmp348 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp348) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_let_seq (arg3, tmp344, tmp345, tmp346, tmp347) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp176)->tag != 161) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp349 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_dyn (arg0, 0, arg2) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp352 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp352) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_declseq (arg3, tmp350, tmp351) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp176)->tag != 171) { goto __ats_lab_86_0 ; } __ats_lab_85_1: /* tmp353 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp (arg0, 0, arg2) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp356 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp356) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_decode (arg3, tmp354, tmp355) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp176)->tag != 170) { goto __ats_lab_87_0 ; } __ats_lab_86_1: /* tmp357 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq (arg0, 0, arg2) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp360 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp360) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_encode_seq (arg3, tmp358, tmp359) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp176)->tag != 172) { goto __ats_lab_88_0 ; } __ats_lab_87_1: /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp (arg0, 0, arg2) ; tmp363 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp174) ; tmp364 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp364) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_macsyn_cross (arg3, tmp362, tmp363) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: tmp365 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp365 ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp173) ; } /* end of [p_atmd0exp_tok_30] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 29505(line=1295, offs=1) -- 29862(line=1314, offs=4) */ ATSstaticdec() ats_ptr_type p_argd0exp_31 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_bool_type, tmp368) ; ATSlocal (ats_bool_type, tmp369) ; ATSlocal (ats_int_type, tmp370) ; __ats_lab_p_argd0exp_31: /* ats_ptr_type tmp367 ; */ do { /* branch: __ats_lab_89 */ __ats_lab_89_0: __ats_lab_89_1: tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_s0expdarg_28, (&tmp367)) ; if (!tmp368) { goto __ats_lab_90_1 ; } tmp366 = ats_castfn_mac(ats_ptr_type, tmp367) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: __ats_lab_90_1: tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_atmd0exp_29, (&tmp367)) ; if (!tmp369) { goto __ats_lab_91_1 ; } tmp366 = ats_castfn_mac(ats_ptr_type, tmp367) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: __ats_lab_91_1: tmp370 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp370 ; tmp366 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp366) ; } /* end of [p_argd0exp_31] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 30645(line=1359, offs=9) -- 30851(line=1367, offs=12) */ ATSstaticdec() ats_ptr_type loop_33 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; __ats_lab_loop_33: do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp381 = arg0 ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp383 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp384 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_app (arg0, tmp382) ; arg0 = tmp384 ; arg1 = tmp383 ; goto __ats_lab_loop_33 ; // tail call break ; } while (0) ; return (tmp381) ; } /* end of [loop_33] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 30101(line=1330, offs=1) -- 33194(line=1469, offs=4) */ ATSstaticdec() ats_ptr_type p_d0exp0_32 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_int_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_uint_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_bool_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; // ATSlocal_void (tmp387) ; // ATSlocal_void (tmp388) ; // ATSlocal_void (tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_bool_type, tmp393) ; // ATSlocal_void (tmp394) ; ATSlocal (ats_int_type, tmp395) ; // ATSlocal_void (tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_bool_type, tmp398) ; // ATSlocal_void (tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_bool_type, tmp401) ; // ATSlocal_void (tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_bool_type, tmp404) ; // ATSlocal_void (tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_bool_type, tmp407) ; // ATSlocal_void (tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_bool_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_int_type, tmp413) ; // ATSlocal_void (tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; __ats_lab_p_d0exp0_32: tmp372 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp373 ; */ tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp376 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp375), atslab_token_node) ; do { /* branch: __ats_lab_92 */ __ats_lab_92_0: __ats_lab_92_1: tmp377 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_atmd0exp_29, (&tmp373)) ; if (!tmp377) { goto __ats_lab_97_0 ; } tmp378 = ats_castfn_mac(ats_ptr_type, tmp373) ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &p_argd0exp_31) ; tmp380 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt (arg0, 0, arg2) ; tmp385 = loop_33 (tmp378, tmp379) ; do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (tmp380 == (ats_sum_ptr_type)0) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp386 = ats_caselptrlab_mac(anairiats_sum_6, tmp380, atslab_0) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ann (tmp385, tmp386) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: // if (tmp380 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_96_1: tmp371 = tmp385 ; break ; } while (0) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp376)->tag != 112) { goto __ats_lab_98_0 ; } __ats_lab_97_1: /* tmp387 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_loopexn (0, tmp375) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp376)->tag != 113) { goto __ats_lab_99_0 ; } __ats_lab_98_1: /* tmp388 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_loopexn (1, tmp375) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp376)->tag != 115) { goto __ats_lab_100_0 ; } __ats_lab_99_1: /* tmp389 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp390 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp372) ; tmp393 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp372) ; if (tmp393) { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vararg (tmp375, ats_castfn_mac(ats_ptr_type, tmp391), tmp392) ; } else { /* tmp394 = */ list_vt_free_01499_ats_ptr_type (tmp391) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp374) ; } /* end of [if] */ break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp376)->tag != 116) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp395 = ats_caselptrlab_mac(anairiats_sum_7, tmp376, atslab_0) ; /* tmp396 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp397 = p_d0exp0_32 (arg0, 0, arg2) ; tmp398 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp372) ; if (tmp398) { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_vcopyenv (tmp395, tmp375, tmp397) ; } else { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp374) ; } /* end of [if] */ break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp376)->tag != 117) { goto __ats_lab_102_0 ; } __ats_lab_101_1: /* tmp399 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp400 = p_d0exp0_32 (arg0, 0, arg2) ; tmp401 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp372) ; if (tmp401) { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_showtype (tmp375, tmp400) ; } else { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp374) ; } /* end of [if] */ break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp376)->tag != 118) { goto __ats_lab_103_0 ; } __ats_lab_102_1: /* tmp402 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp403 = p_d0exp0_32 (arg0, 0, arg2) ; tmp404 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp372) ; if (tmp404) { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_tempenver (tmp375, tmp403) ; } else { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp374) ; } /* end of [if] */ break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp376)->tag != 119) { goto __ats_lab_104_0 ; } __ats_lab_103_1: /* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp406 = p_atmd0exp_29 (arg0, 0, arg2) ; tmp407 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp372) ; if (tmp407) { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solassert (tmp375, tmp406) ; } else { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp374) ; } /* end of [if] */ break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp376)->tag != 120) { goto __ats_lab_105_0 ; } __ats_lab_104_1: /* tmp408 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_atms0exp (arg0, 0, arg2) ; tmp410 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp372) ; if (tmp410) { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_solverify (tmp375, tmp409) ; } else { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp374) ; } /* end of [if] */ break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: __ats_lab_105_1: tmp411 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp412 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp411), atslab_token_loc) ; tmp413 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp413 ; tmp415 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp0_82) ; /* tmp414 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp412, tmp415) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp371) ; } /* end of [p_d0exp0_32] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 33828(line=1503, offs=9) -- 34034(line=1510, offs=30) */ ATSstaticdec() ats_ptr_type loop_35 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; __ats_lab_loop_35: do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp426 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp427 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_app (arg0, tmp426) ; arg0 = tmp428 ; arg1 = tmp427 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp425 = arg0 ; break ; } while (0) ; return (tmp425) ; } /* end of [loop_35] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 33404(line=1482, offs=1) -- 35403(line=1569, offs=4) */ ATSstaticdec() ats_ptr_type p_d0exp1_34 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_int_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_uint_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_bool_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_int_type, tmp429) ; // ATSlocal_void (tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_bool_type, tmp432) ; // ATSlocal_void (tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_bool_type, tmp435) ; // ATSlocal_void (tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_bool_type, tmp441) ; ATSlocal (ats_int_type, tmp442) ; // ATSlocal_void (tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_bool_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_int_type, tmp447) ; // ATSlocal_void (tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; __ats_lab_p_d0exp1_34: tmp417 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp418 ; */ tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp420 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp421 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp420), atslab_token_node) ; do { /* branch: __ats_lab_106 */ __ats_lab_106_0: __ats_lab_106_1: tmp422 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_d0exp0_32, (&tmp418)) ; if (!tmp422) { goto __ats_lab_109_0 ; } tmp423 = ats_castfn_mac(ats_ptr_type, tmp418) ; tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &p_d0exp1_34) ; tmp416 = loop_35 (tmp423, tmp424) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp421)->tag != 92) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp429 = ats_caselptrlab_mac(anairiats_sum_7, tmp421, atslab_0) ; /* tmp430 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp431 = p_d0exp0_32 (arg0, 0, arg2) ; tmp432 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp417) ; if (tmp432) { tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_delay (tmp429, tmp420, tmp431) ; } else { tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp419) ; } /* end of [if] */ break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp421)->tag != 114) { goto __ats_lab_111_0 ; } __ats_lab_110_1: /* tmp433 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp434 = p_d0exp0_32 (arg0, 0, arg2) ; tmp435 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp417) ; if (tmp435) { tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_raise (tmp420, tmp434) ; } else { tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp419) ; } /* end of [if] */ break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp421)->tag != 96) { goto __ats_lab_112_0 ; } __ats_lab_111_1: /* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE, tmp417) ; tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst, tmp417) ; tmp439 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE, tmp417) ; tmp440 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &p_d0exp1_34, tmp417) ; tmp441 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp417) ; if (tmp441) { tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask (tmp420, tmp438, tmp440) ; } else { tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp419) ; } /* end of [if] */ break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp421)->tag != 97) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp442 = ats_caselptrlab_mac(anairiats_sum_7, tmp421, atslab_0) ; /* tmp443 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp444 = p_d0exp0_32 (arg0, 0, arg2) ; tmp445 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp417) ; if (tmp445) { tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_effmask_arg (tmp442, tmp420, tmp444) ; } else { tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp419) ; } /* end of [if] */ break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: __ats_lab_113_1: tmp446 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp420), atslab_token_loc) ; tmp447 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp447 ; tmp449 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp1_83) ; /* tmp448 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp446, tmp449) ; tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp416) ; } /* end of [p_d0exp1_34] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 35489(line=1577, offs=1) -- 35995(line=1605, offs=4) */ ATSstaticdec() ats_ptr_type p_i0nvarg_36 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_int_type, tmp451) ; ATSlocal (ats_uint_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_bool_type, tmp457) ; ATSlocal (ats_bool_type, tmp458) ; __ats_lab_p_i0nvarg_36: tmp451 = ats_ptrget_mac(ats_int_type, arg2) ; tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp453 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de (arg0, arg1, arg2) ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON, tmp451) ; tmp455 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp451) ; tmp457 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp451) ; if (tmp457) { tmp456 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp456, atslab_0, tmp455) ; } else { tmp456 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp458 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp451) ; if (tmp458) { tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvarg_make (tmp453, tmp456) ; } else { tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp452) ; } /* end of [if] */ return (tmp450) ; } /* end of [p_i0nvarg_36] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 36023(line=1608, offs=1) -- 36135(line=1612, offs=46) */ ATSstaticdec() ats_ptr_type p_i0nvargseq_37 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; __ats_lab_p_i0nvargseq_37: tmp460 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &p_i0nvarg_36) ; tmp459 = ats_castfn_mac(ats_ptr_type, tmp460) ; return (tmp459) ; } /* end of [p_i0nvargseq_37] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 36243(line=1621, offs=1) -- 36611(line=1640, offs=4) */ ATSstaticdec() ats_ptr_type p_i0nvqua_38 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_int_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_bool_type, tmp465) ; __ats_lab_p_i0nvqua_38: tmp462 = ats_ptrget_mac(ats_int_type, arg2) ; tmp463 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, 1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE) ; // tmp464 = ats_caselptrlab_mac(anairiats_sum_5, tmp463, atslab_1) ; ATS_FREE(tmp463) ; tmp465 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp462) ; if (tmp465) { tmp461 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp461, atslab_0, tmp464) ; } else { ats_ptrget_mac(ats_int_type, arg2) = tmp462 ; tmp461 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp461) ; } /* end of [p_i0nvqua_38] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 36703(line=1645, offs=5) -- 37078(line=1664, offs=4) */ ATSstaticdec() ats_ptr_type p_i0nvresqua_39 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_bool_type, tmp470) ; __ats_lab_p_i0nvresqua_39: tmp467 = ats_ptrget_mac(ats_int_type, arg2) ; tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, 1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACKET, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0quaseq, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET) ; // tmp469 = ats_caselptrlab_mac(anairiats_sum_5, tmp468, atslab_1) ; ATS_FREE(tmp468) ; tmp470 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp467) ; if (tmp470) { tmp466 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp466, atslab_0, tmp469) ; } else { ats_ptrget_mac(ats_int_type, arg2) = tmp467 ; tmp466 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp466) ; } /* end of [p_i0nvresqua_39] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 37198(line=1671, offs=5) -- 37963(line=1708, offs=4) */ ATSstaticdec() ats_ptr_type p_i0nvmet_40 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_int_type, tmp472) ; ATSlocal (ats_uint_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; // ATSlocal_void (tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_bool_type, tmp479) ; // ATSlocal_void (tmp480) ; // ATSlocal_void (tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; __ats_lab_p_i0nvmet_40: tmp472 = ats_ptrget_mac(ats_int_type, arg2) ; tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp475 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp474), atslab_token_node) ; do { /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp475)->tag != 24) { goto __ats_lab_115_0 ; } __ats_lab_114_1: /* tmp476 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; tmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTDOT (arg0, 0, arg2) ; tmp479 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp472) ; if (tmp479) { tmp471 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp471, atslab_0, ats_castfn_mac(ats_ptr_type, tmp477)) ; } else { /* tmp480 = */ list_vt_free_01499_ats_ptr_type (tmp477) ; tmp471 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp473) ; } /* end of [if] */ break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp475)->tag != 26) { goto __ats_lab_116_0 ; } __ats_lab_115_1: /* tmp481 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp482 = (ats_sum_ptr_type)0 ; tmp471 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp471, atslab_0, tmp482) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: __ats_lab_116_1: tmp471 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp471) ; } /* end of [p_i0nvmet_40] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 38062(line=1716, offs=1) -- 38418(line=1735, offs=4) */ ATSstaticdec() ats_ptr_type p_i0nvargstate_41 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_int_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_bool_type, tmp487) ; __ats_lab_p_i0nvargstate_41: tmp484 = ats_ptrget_mac(ats_int_type, arg2) ; tmp485 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN, &p_i0nvargseq_37, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) ; // tmp486 = ats_caselptrlab_mac(anairiats_sum_5, tmp485, atslab_1) ; ATS_FREE(tmp485) ; tmp487 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp484) ; if (tmp487) { tmp483 = tmp486 ; } else { tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp483) ; } /* end of [p_i0nvargstate_41] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 38518(line=1741, offs=1) -- 39274(line=1776, offs=4) */ ATSstaticdec() ats_ptr_type p_i0nvresstate_42 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_int_type, tmp489) ; ATSlocal (ats_uint_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; // ATSlocal_void (tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_bool_type, tmp498) ; ATSlocal (ats_int_type, tmp499) ; __ats_lab_p_i0nvresstate_42: tmp489 = ats_ptrget_mac(ats_int_type, arg2) ; tmp490 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp491 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp492 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp491), atslab_token_node) ; do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp492)->tag != 6) { goto __ats_lab_118_0 ; } __ats_lab_117_1: /* tmp493 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp494 = p_i0nvresqua_39 (arg0, 0, arg2) ; tmp495 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN, &p_i0nvargseq_37, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) ; // tmp496 = ats_caselptrlab_mac(anairiats_sum_5, tmp495, atslab_1) ; tmp497 = ats_caselptrlab_mac(anairiats_sum_5, tmp495, atslab_2) ; ATS_FREE(tmp495) ; tmp498 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp489) ; if (tmp498) { tmp488 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_some (tmp491, tmp494, tmp496, tmp497) ; } else { tmp488 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp490) ; } /* end of [if] */ break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: __ats_lab_118_1: tmp499 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp499 ; tmp488 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp488) ; } /* end of [p_i0nvresstate_42] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 39309(line=1779, offs=1) -- 39633(line=1790, offs=4) */ ATSstaticdec() ats_ptr_type p_i0nvresstateopt_43 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_int_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_bool_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; __ats_lab_p_i0nvresstateopt_43: tmp501 = ats_ptrget_mac(ats_int_type, arg2) ; tmp502 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp503 = p_i0nvresstate_42 (arg0, 1, arg2) ; tmp504 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp501) ; if (tmp504) { tmp500 = tmp503 ; } else { ats_ptrget_mac(ats_int_type, arg2) = tmp501 ; tmp505 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp502), atslab_token_loc) ; tmp500 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0nvresstate_make_none (tmp505) ; } /* end of [if] */ return (tmp500) ; } /* end of [p_i0nvresstateopt_43] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 39761(line=1799, offs=1) -- 40194(line=1821, offs=4) */ ATSstaticdec() ats_ptr_type p_loopi0nv_44 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_int_type, tmp507) ; ATSlocal (ats_uint_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_bool_type, tmp513) ; __ats_lab_p_loopi0nv_44: tmp507 = ats_ptrget_mac(ats_int_type, arg2) ; tmp508 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp509 = p_i0nvqua_38 (arg0, arg1, arg2) ; tmp510 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &p_i0nvmet_40, tmp507) ; tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &p_i0nvargstate_41, tmp507) ; tmp512 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &p_i0nvresstateopt_43, tmp507) ; tmp513 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp507) ; if (tmp513) { tmp506 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loopi0nv_make (tmp509, tmp510, tmp511, tmp512) ; } else { tmp506 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp508) ; } /* end of [if] */ return (tmp506) ; } /* end of [p_loopi0nv_44] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 40298(line=1829, offs=1) -- 41115(line=1872, offs=4) */ ATSstaticdec() ats_ptr_type p_funarrow_45 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_int_type, tmp515) ; ATSlocal (ats_uint_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; // ATSlocal_void (tmp520) ; // ATSlocal_void (tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; // ATSlocal_void (tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_bool_type, tmp526) ; ATSlocal (ats_int_type, tmp527) ; // ATSlocal_void (tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; __ats_lab_p_funarrow_45: tmp515 = ats_ptrget_mac(ats_int_type, arg2) ; tmp516 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp517 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp518 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp517), atslab_token_loc) ; tmp519 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp517), atslab_token_node) ; do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp519)->tag != 14) { goto __ats_lab_120_0 ; } __ats_lab_119_1: /* tmp520 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp514 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp519)->tag != 16) { goto __ats_lab_121_0 ; } __ats_lab_120_1: /* tmp521 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp522 = (ats_sum_ptr_type)0 ; tmp514 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp514, atslab_0, tmp522) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp519)->tag != 15) { goto __ats_lab_122_0 ; } __ats_lab_121_1: /* tmp523 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0fftaglst (arg0, 0, arg2) ; tmp525 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT, tmp515) ; tmp526 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp515) ; if (tmp526) { tmp514 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp514, atslab_0, tmp524) ; } else { tmp514 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp516) ; } /* end of [if] */ break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: __ats_lab_122_1: tmp527 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp527 ; tmp529 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_funarrow_58) ; /* tmp528 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp518, tmp529) ; tmp514 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp514) ; } /* end of [p_funarrow_45] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 41230(line=1882, offs=1) -- 42706(line=1954, offs=4) */ ATSstaticdec() ats_ptr_type pstar_where_46 (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_int_type, tmp531) ; ATSlocal (ats_uint_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; // ATSlocal_void (tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; // ATSlocal_void (tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_bool_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_bool_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; __ats_lab_pstar_where_46: tmp531 = ats_ptrget_mac(ats_int_type, arg3) ; tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg1) ; tmp533 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg1) ; tmp534 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp533), atslab_token_node) ; do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp534)->tag != 83) { goto __ats_lab_126_0 ; } __ats_lab_123_1: /* tmp535 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg1) ; tmp536 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg1) ; tmp537 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp536), atslab_token_node) ; do { /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp537)->tag != 161) { goto __ats_lab_125_0 ; } __ats_lab_124_1: /* tmp538 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg1) ; tmp539 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun (arg1, 0, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_dyn, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE) ; // tmp540 = ats_caselptrlab_mac(anairiats_sum_3, tmp539, atslab_0) ; tmp541 = ats_caselptrlab_mac(anairiats_sum_3, tmp539, atslab_1) ; ATS_FREE(tmp539) ; tmp542 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg3), tmp531) ; if (tmp542) { tmp543 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_where (arg0, tmp540, tmp541) ; arg0 = tmp543 ; arg1 = arg1 ; arg2 = 0 ; arg3 = arg3 ; goto __ats_lab_pstar_where_46 ; // tail call } else { tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg1, tmp532) ; } /* end of [if] */ break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: __ats_lab_125_1: tmp544 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun (arg1, 0, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_dyn, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END) ; // tmp545 = ats_caselptrlab_mac(anairiats_sum_3, tmp544, atslab_0) ; tmp546 = ats_caselptrlab_mac(anairiats_sum_3, tmp544, atslab_1) ; ATS_FREE(tmp544) ; tmp547 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg3), tmp531) ; if (tmp547) { tmp548 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_where (arg0, tmp545, tmp546) ; arg0 = tmp548 ; arg1 = arg1 ; arg2 = 0 ; arg3 = arg3 ; goto __ats_lab_pstar_where_46 ; // tail call } else { tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg1, tmp532) ; } /* end of [if] */ break ; } while (0) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: __ats_lab_126_1: tmp530 = arg0 ; break ; } while (0) ; return (tmp530) ; } /* end of [pstar_where_46] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 42757(line=1959, offs=1) -- 43585(line=2000, offs=4) */ ATSstaticdec() ats_ptr_type ptokhead_fun_47 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_int_type, tmp550) ; ATSlocal (ats_uint_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_bool_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; // ATSlocal_void (tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_bool_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_bool_type, tmp559) ; ATSlocal (ats_int_type, tmp560) ; __ats_lab_ptokhead_fun_47: tmp550 = ats_ptrget_mac(ats_int_type, arg2) ; tmp551 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp552 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp552 ; tmp554 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp552), atslab_token_node) ; tmp553 = ((ats_bool_type(*)(ats_ptr_type))arg3) (tmp554) ; if (tmp553) { /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp556 = p_i0nvresstate_42 (arg0, 1, arg2) ; tmp557 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp550) ; if (tmp557) { tmp558 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT (arg0, 0, arg2) ; tmp559 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp550) ; if (tmp559) { tmp549 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp549, atslab_0, tmp556) ; } else { tmp549 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp551) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_int_type, arg2) = tmp550 ; tmp549 = (ats_sum_ptr_type)0 ; } /* end of [if] */ } else { tmp560 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp560 ; tmp549 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp549) ; } /* end of [ptokhead_fun_47] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 43674(line=2008, offs=1) -- 43914(line=2022, offs=4) */ ATSstaticdec() ats_ptr_type p_ifhead_48 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_int_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_bool_type, tmp565) ; __ats_lab_p_ifhead_48: tmp562 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp563 ; */ tmp564 = ptokhead_fun_47 (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IF, (&tmp563)) ; tmp565 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp562) ; if (tmp565) { tmp561 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__ifhead_make (tmp563, tmp564) ; } else { tmp561 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp561) ; } /* end of [p_ifhead_48] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 43980(line=2028, offs=1) -- 44224(line=2042, offs=4) */ ATSstaticdec() ats_ptr_type p_sifhead_49 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_int_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_bool_type, tmp570) ; __ats_lab_p_sifhead_49: tmp567 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp568 ; */ tmp569 = ptokhead_fun_47 (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SIF, (&tmp568)) ; tmp570 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp567) ; if (tmp570) { tmp566 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__sifhead_make (tmp568, tmp569) ; } else { tmp566 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp566) ; } /* end of [p_sifhead_49] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 44314(line=2050, offs=1) -- 44562(line=2065, offs=4) */ ATSstaticdec() ats_ptr_type p_ifcasehd_50 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_int_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_bool_type, tmp575) ; __ats_lab_p_ifcasehd_50: tmp572 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp573 ; */ tmp574 = ptokhead_fun_47 (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IFCASE, (&tmp573)) ; tmp575 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp572) ; if (tmp575) { tmp571 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__ifhead_make (tmp573, tmp574) ; } else { tmp571 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp571) ; } /* end of [p_ifcasehd_50] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 44653(line=2073, offs=1) -- 44901(line=2087, offs=4) */ ATSstaticdec() ats_ptr_type p_casehead_51 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_int_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_bool_type, tmp580) ; __ats_lab_p_casehead_51: tmp577 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp578 ; */ tmp579 = ptokhead_fun_47 (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_CASE, (&tmp578)) ; tmp580 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp577) ; if (tmp580) { tmp576 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__casehead_make (tmp578, tmp579) ; } else { tmp576 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp576) ; } /* end of [p_casehead_51] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 44973(line=2093, offs=1) -- 45225(line=2107, offs=4) */ ATSstaticdec() ats_ptr_type p_scasehead_52 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_int_type, tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_bool_type, tmp585) ; __ats_lab_p_scasehead_52: tmp582 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp583 ; */ tmp584 = ptokhead_fun_47 (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SCASE, (&tmp583)) ; tmp585 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp582) ; if (tmp585) { tmp581 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__scasehead_make (tmp583, tmp584) ; } else { tmp581 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp581) ; } /* end of [p_scasehead_52] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 45345(line=2116, offs=1) -- 45718(line=2139, offs=4) */ ATSstaticdec() ats_ptr_type p_forhead_53 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_int_type, tmp587) ; ATSlocal (ats_uint_type, tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; ATSlocal (ats_ptr_type, tmp590) ; ATSlocal (ats_ptr_type, tmp591) ; ATSlocal (ats_bool_type, tmp592) ; __ats_lab_p_forhead_53: tmp587 = ats_ptrget_mac(ats_int_type, arg2) ; tmp588 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp589 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_FORSTAR (arg0, arg1, arg2) ; tmp590 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &p_loopi0nv_44, tmp587) ; tmp591 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT, tmp587) ; tmp592 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp587) ; if (tmp592) { tmp586 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_some (tmp589, tmp590, tmp591) ; } else { tmp586 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp588) ; } /* end of [if] */ return (tmp586) ; } /* end of [p_forhead_53] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 45844(line=2148, offs=1) -- 46223(line=2168, offs=4) */ ATSstaticdec() ats_ptr_type p_whilehead_54 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp593) ; ATSlocal (ats_int_type, tmp594) ; ATSlocal (ats_uint_type, tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; ATSlocal (ats_ptr_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_bool_type, tmp599) ; __ats_lab_p_whilehead_54: tmp594 = ats_ptrget_mac(ats_int_type, arg2) ; tmp595 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp596 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WHILESTAR (arg0, arg1, arg2) ; tmp597 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &p_loopi0nv_44, tmp594) ; tmp598 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT, tmp594) ; tmp599 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp594) ; if (tmp599) { tmp593 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_some (tmp596, tmp597, tmp598) ; } else { tmp593 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp595) ; } /* end of [if] */ return (tmp593) ; } /* end of [p_whilehead_54] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 46323(line=2177, offs=1) -- 46546(line=2189, offs=4) */ ATSstaticdec() ats_ptr_type p_tryhead_55 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp600) ; ATSlocal (ats_int_type, tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; ATSlocal (ats_bool_type, tmp604) ; __ats_lab_p_tryhead_55: tmp601 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp602 ; */ tmp603 = ptokhead_fun_47 (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_TRY, (&tmp602)) ; tmp604 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp601) ; if (tmp604) { tmp600 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__tryhead_make (tmp602, tmp603) ; } else { tmp600 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp600) ; } /* end of [p_tryhead_55] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 46717(line=2199, offs=1) -- 47822(line=2240, offs=4) */ ATSstaticdec() ats_ptr_type p_initestpost_56 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_int_type, tmp606) ; ATSlocal (ats_uint_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_bool_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; ATSlocal (ats_bool_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_bool_type, tmp616) ; ATSlocal (ats_ptr_type, tmp617) ; ATSlocal (ats_bool_type, tmp618) ; // ATSlocal_void (tmp619) ; // ATSlocal_void (tmp620) ; // ATSlocal_void (tmp621) ; __ats_lab_p_initestpost_56: tmp606 = ats_ptrget_mac(ats_int_type, arg2) ; tmp607 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp608 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, arg1, arg2) ; tmp610 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp606) ; if (tmp610) { tmp609 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; } else { tmp609 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp611 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON, tmp606) ; tmp613 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp606) ; if (tmp613) { tmp612 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; } else { tmp612 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp614 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON, tmp606) ; tmp616 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp606) ; if (tmp616) { tmp615 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; } else { tmp615 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp617 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp606) ; tmp618 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp606) ; if (tmp618) { tmp605 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__initestpost_make (tmp608, ats_castfn_mac(ats_ptr_type, tmp609), tmp611, ats_castfn_mac(ats_ptr_type, tmp612), tmp614, ats_castfn_mac(ats_ptr_type, tmp615), tmp617) ; } else { /* tmp619 = */ list_vt_free_01499_ats_ptr_type (tmp609) ; /* tmp620 = */ list_vt_free_01499_ats_ptr_type (tmp612) ; /* tmp621 = */ list_vt_free_01499_ats_ptr_type (tmp615) ; tmp605 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp607) ; } /* end of [if] */ return (tmp605) ; } /* end of [p_initestpost_56] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 48580(line=2270, offs=3) -- 48652(line=2272, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp: tmp623 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp_81) ; tmp622 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__p_d0exp_tok, tmp623) ; return (tmp622) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2556(line=86, offs=16) -- 2611(line=87, offs=49) */ ATSstaticdec() ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp638) ; __ats_lab_option_vt_free_01544_ats_ptr_type: do { /* branch: __ats_lab_129 */ __ats_lab_129_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_130_0 ; } __ats_lab_129_1: ATS_FREE(arg0) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_130_1: break ; } while (0) ; return /* (tmp638) */ ; } /* end of [option_vt_free_01544_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 48703(line=2277, offs=1) -- 54556(line=2519, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__p_d0exp_tok (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp624) ; ATSlocal (ats_int_type, tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (ats_bool_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_bool_type, tmp630) ; ATSlocal (ats_ptr_type, tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; ATSlocal (ats_ptr_type, tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; ATSlocal (ats_bool_type, tmp636) ; // ATSlocal_void (tmp637) ; ATSlocal (ats_bool_type, tmp639) ; ATSlocal (ats_ptr_type, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; ATSlocal (ats_ptr_type, tmp642) ; ATSlocal (ats_ptr_type, tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; ATSlocal (ats_bool_type, tmp646) ; ATSlocal (ats_bool_type, tmp647) ; ATSlocal (ats_ptr_type, tmp648) ; ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; ATSlocal (ats_bool_type, tmp652) ; ATSlocal (ats_bool_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; ATSlocal (ats_ptr_type, tmp657) ; ATSlocal (ats_bool_type, tmp658) ; ATSlocal (ats_bool_type, tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; ATSlocal (ats_bool_type, tmp662) ; ATSlocal (ats_int_type, tmp663) ; // ATSlocal_void (tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; ATSlocal (ats_ptr_type, tmp666) ; ATSlocal (ats_ptr_type, tmp667) ; ATSlocal (ats_ptr_type, tmp668) ; ATSlocal (ats_bool_type, tmp669) ; // ATSlocal_void (tmp670) ; ATSlocal (ats_int_type, tmp671) ; // ATSlocal_void (tmp672) ; ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_bool_type, tmp675) ; ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; ATSlocal (ats_bool_type, tmp679) ; // ATSlocal_void (tmp680) ; // ATSlocal_void (tmp681) ; ATSlocal (ats_ptr_type, tmp682) ; ATSlocal (ats_ptr_type, tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; ATSlocal (ats_bool_type, tmp685) ; ATSlocal (ats_bool_type, tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_ptr_type, tmp688) ; ATSlocal (ats_ptr_type, tmp689) ; ATSlocal (ats_bool_type, tmp690) ; // ATSlocal_void (tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_bool_type, tmp695) ; ATSlocal (ats_bool_type, tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_ptr_type, tmp698) ; ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_bool_type, tmp700) ; ATSlocal (ats_bool_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; ATSlocal (ats_ptr_type, tmp703) ; ATSlocal (ats_ptr_type, tmp704) ; ATSlocal (ats_ptr_type, tmp705) ; ATSlocal (ats_bool_type, tmp706) ; ATSlocal (ats_int_type, tmp707) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__p_d0exp_tok: tmp625 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp626 ; */ tmp627 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_token_node) ; do { /* branch: __ats_lab_127 */ __ats_lab_127_0: __ats_lab_127_1: tmp628 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_d0exp1_34, (&tmp626)) ; if (!tmp628) { goto __ats_lab_128_1 ; } tmp629 = ats_castfn_mac(ats_ptr_type, tmp626) ; tmp624 = pstar_where_46 (tmp629, arg0, arg1, arg2) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: __ats_lab_128_1: tmp630 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_ifhead_48, (&tmp626)) ; if (!tmp630) { goto __ats_lab_131_1 ; } tmp631 = ats_castfn_mac(ats_ptr_type, tmp626) ; tmp632 = p_d0exp1_34 (arg0, 0, arg2) ; tmp633 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN, tmp625) ; tmp634 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp625) ; tmp635 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; tmp636 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp636) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifhead (tmp631, tmp632, tmp634, ats_castfn_mac(ats_ptr_type, tmp635)) ; } else { /* tmp637 = */ option_vt_free_01544_ats_ptr_type (tmp635) ; tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: __ats_lab_131_1: tmp639 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_sifhead_49, (&tmp626)) ; if (!tmp639) { goto __ats_lab_132_1 ; } tmp640 = ats_castfn_mac(ats_ptr_type, tmp626) ; tmp641 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp (arg0, 0, arg2) ; tmp642 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN, tmp625) ; tmp643 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp625) ; tmp644 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ELSE, tmp625) ; tmp645 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp625) ; tmp646 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp646) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_sifhead (tmp640, tmp641, tmp643, tmp645) ; } else { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: __ats_lab_132_1: tmp647 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_casehead_51, (&tmp626)) ; if (!tmp647) { goto __ats_lab_133_1 ; } tmp648 = ats_castfn_mac(ats_ptr_type, tmp626) ; tmp649 = p_d0exp1_34 (arg0, 0, arg2) ; tmp650 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_OF, tmp625) ; tmp651 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_c0lauseq, tmp625) ; tmp652 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp652) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_casehead (tmp648, tmp649, tmp650, tmp651) ; } else { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: __ats_lab_133_1: tmp653 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_scasehead_52, (&tmp626)) ; if (!tmp653) { goto __ats_lab_134_1 ; } tmp654 = ats_castfn_mac(ats_ptr_type, tmp626) ; tmp655 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp (arg0, 0, arg2) ; tmp656 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_OF, tmp625) ; tmp657 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sc0lauseq, tmp625) ; tmp658 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp658) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_scasehead (tmp654, tmp655, tmp656, tmp657) ; } else { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: __ats_lab_134_1: tmp659 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_ifcasehd_50, (&tmp626)) ; if (!tmp659) { goto __ats_lab_135_0 ; } tmp660 = ats_castfn_mac(ats_ptr_type, tmp626) ; tmp661 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0fclseq (arg0, 0, arg2) ; tmp662 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp662) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_ifcasehd (tmp660, tmp661) ; } else { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp627)->tag != 58) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp663 = ats_caselptrlab_mac(anairiats_sum_7, tmp627, atslab_0) ; /* tmp664 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp665 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg1) ; tmp666 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt (arg0, 0, arg2) ; tmp667 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &p_funarrow_45, tmp625) ; tmp668 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp625) ; tmp669 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp669) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_lam (tmp663, arg3, ats_castfn_mac(ats_ptr_type, tmp665), tmp666, tmp667, tmp668) ; } else { /* tmp670 = */ list_vt_free_01499_ats_ptr_type (tmp665) ; tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp627)->tag != 48) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp671 = ats_caselptrlab_mac(anairiats_sum_7, tmp627, atslab_0) ; /* tmp672 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp673 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de (arg0, 0, arg2) ; tmp675 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp675) { tmp674 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg1) ; } else { tmp674 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp676 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt, tmp625) ; tmp677 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &p_funarrow_45, tmp625) ; tmp678 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp625) ; tmp679 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp679) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_fix (tmp671, arg3, tmp673, ats_castfn_mac(ats_ptr_type, tmp674), tmp676, tmp677, tmp678) ; } else { /* tmp680 = */ list_vt_free_01499_ats_ptr_type (tmp674) ; tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp627)->tag != 50) { goto __ats_lab_138_0 ; } __ats_lab_137_1: /* tmp681 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp682 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_none (arg3) ; tmp683 = p_initestpost_56 (arg0, 0, arg2) ; tmp684 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp625) ; tmp685 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp685) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_forhead (tmp682, tmp683, tmp684) ; } else { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: __ats_lab_138_1: tmp686 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_forhead_53, (&tmp626)) ; if (!tmp686) { goto __ats_lab_139_0 ; } tmp687 = ats_castfn_mac(ats_ptr_type, tmp626) ; tmp688 = p_initestpost_56 (arg0, 0, arg2) ; tmp689 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp625) ; tmp690 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp690) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_forhead (tmp687, tmp688, tmp689) ; } else { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp627)->tag != 84) { goto __ats_lab_140_0 ; } __ats_lab_139_1: /* tmp691 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp692 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__loophead_make_none (arg3) ; tmp693 = p_atmd0exp_29 (arg0, 0, arg2) ; tmp694 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp625) ; tmp695 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp695) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_whilehead (tmp692, tmp693, tmp694) ; } else { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: __ats_lab_140_1: tmp696 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_whilehead_54, (&tmp626)) ; if (!tmp696) { goto __ats_lab_141_1 ; } tmp697 = ats_castfn_mac(ats_ptr_type, tmp626) ; tmp698 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &p_atmd0exp_29, tmp625) ; tmp699 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp625) ; tmp700 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp700) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_whilehead (tmp697, tmp698, tmp699) ; } else { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: __ats_lab_141_1: tmp701 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_tryhead_55, (&tmp626)) ; if (!tmp701) { goto __ats_lab_142_1 ; } tmp702 = ats_castfn_mac(ats_ptr_type, tmp626) ; tmp703 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0expsemiseq (arg0, 0, arg2) ; tmp704 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WITH, tmp625) ; tmp705 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_c0lauseq, tmp625) ; tmp706 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp625) ; if (tmp706) { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0exp_trywith_seq (tmp702, tmp703, tmp704, tmp705) ; } else { tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: __ats_lab_142_1: tmp707 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp707 ; tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp624) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__p_d0exp_tok] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 54670(line=2532, offs=1) -- 55139(line=2551, offs=4) */ ATSstaticdec() ats_ptr_type p_i0fcl_60 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp708) ; ATSlocal (ats_int_type, tmp709) ; ATSlocal (ats_uint_type, tmp710) ; ATSlocal (ats_ptr_type, tmp711) ; ATSlocal (ats_ptr_type, tmp712) ; ATSlocal (ats_ptr_type, tmp713) ; ATSlocal (ats_bool_type, tmp714) ; ATSlocal (ats_ptr_type, tmp715) ; // ATSlocal_void (tmp716) ; ATSlocal (ats_ptr_type, tmp717) ; ATSlocal (ats_ptr_type, tmp718) ; __ats_lab_p_i0fcl_60: tmp709 = ats_ptrget_mac(ats_int_type, arg2) ; tmp710 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp711 = p_d0exp0_32 (arg0, arg1, arg2) ; tmp712 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT, tmp709) ; tmp713 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp709) ; tmp714 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp709) ; if (tmp714) { tmp708 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0fcl_make (tmp711, tmp713) ; } else { tmp715 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp717 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp715), atslab_token_loc) ; tmp718 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0fcl_76) ; /* tmp716 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp717, tmp718) ; tmp708 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp710) ; } /* end of [if] */ return (tmp708) ; } /* end of [p_i0fcl_60] */ /* // /tmp/ATS-Postiats/src/pats_parsing_dynexp.dats: 55206(line=2557, offs=3) -- 55299(line=2559, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0fclseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp719) ; ATSlocal (ats_bool_type, tmp720) ; ATSlocal (ats_ptr_type, tmp721) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0fclseq: tmp720 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test (arg0) ; tmp721 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR (arg0, arg1, &p_i0fcl_60) ; tmp719 = ats_castfn_mac(ats_ptr_type, tmp721) ; return (tmp719) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0fclseq] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_dynexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_decl_dats.c0000644000175000017500000042545413431250607022744 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2aspdec_loc ; ats_ptr_type atslab_s2aspdec_cst ; ats_ptr_type atslab_s2aspdec_def ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_i2mpdec_loc ; ats_ptr_type atslab_i2mpdec_locid ; ats_ptr_type atslab_i2mpdec_cst ; ats_ptr_type atslab_i2mpdec_imparg ; ats_ptr_type atslab_i2mpdec_tmparg ; ats_ptr_type atslab_i2mpdec_tmpgua ; ats_ptr_type atslab_i2mpdec_def ; } anairiats_rec_12 ; typedef struct { ats_ptr_type atslab_f2undec_loc ; ats_ptr_type atslab_f2undec_var ; ats_ptr_type atslab_f2undec_def ; ats_ptr_type atslab_f2undec_ann ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_16 ; typedef struct { anairiats_rec_16 atslab_0 ; } anairiats_sum_17 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_v2aldec_loc ; ats_ptr_type atslab_v2aldec_pat ; ats_ptr_type atslab_v2aldec_def ; ats_ptr_type atslab_v2aldec_ann ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_v2ardec_loc ; ats_int_type atslab_v2ardec_knd ; ats_ptr_type atslab_v2ardec_svar ; ats_ptr_type atslab_v2ardec_dvar ; ats_ptr_type atslab_v2ardec_pfat ; ats_ptr_type atslab_v2ardec_type ; ats_ptr_type atslab_v2ardec_init ; ats_ptr_type atslab_v2ardec_dvaropt ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_prv2ardec_loc ; ats_ptr_type atslab_prv2ardec_dvar ; ats_ptr_type atslab_prv2ardec_type ; ats_ptr_type atslab_prv2ardec_init ; } anairiats_rec_22 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_23 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_lvar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymintr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymelim_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cpragma_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ccodegen_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacsts_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacons_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csaspdec_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Creassume_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextype_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextvar_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextcode_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdatdecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cexndecs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdcstdecs_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cimpdec_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cfundecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_rec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvardecs_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cprvardecs_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaload_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaloadloc_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdynload_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_assgn_tszeq_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_reassume_tr_isnotasp_97) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_f2undeclst_tr_termetsrtck_98) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_v2aldeclst_rec_tr_linearity_99) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_cloptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind_is_proof) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind2caskind) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2ecl) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3mpdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__f3undec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3aldec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3ardec_make) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prv3ardec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_saspdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_reassume) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extype) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extcode) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_datdecs) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_exndecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dcstdecs) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_impdec) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_fundecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_vardecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_prvardecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_include) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staload) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staloadloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dynload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_local) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_finalize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_pat_type_left) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squalst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_addlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_metfun_load) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop_if) (ats_bool_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set_if) (ats_bool_type, ats_uint_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopts2cst_set_isabs) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02085_ () ; static ats_void_type prerr_error3_loc_02091_ (ats_ptr_type arg0) ; static ats_void_type loop_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_11 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_11_closure_make (ats_ptr_type env0) ; static ats_void_type aux_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type d2exp_metfun_load_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type aux_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_bool_type termet_sortcheck_12 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_init_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type f_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ; static ats_ptr_type list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_fini_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_21 (ats_ptr_type arg0) ; static ats_void_type loop_23 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_27 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_27_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type app_30 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type aux1_32 (ats_ptr_type arg0) ; static ats_ptr_type aux2_33 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxInitCK_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type __ats_fun_40 (ats_ptr_type arg0) ; static ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 1724(line=56, offs=3) -- 1762(line=56, offs=41) */ ATSstaticdec() ats_void_type prerr_FILENAME_02085_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02085_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_decl")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02085_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02091_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab_prerr_error3_loc_02091_: /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp21 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp21) */ ; } /* end of [prerr_error3_loc_02091_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 3280(line=137, offs=9) -- 8150(line=350, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_int_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_int_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_int_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp3)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp3)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp4) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_list (tmp2, tmp5) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp3)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp3)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp3)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp3)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp3)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp3)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp3)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp3)->tag != 9) { goto __ats_lab_14_0 ; } __ats_lab_9_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp6), atslab_s2aspdec_loc) ; tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp6), atslab_s2aspdec_cst) ; tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp6), atslab_s2aspdec_def) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp9) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp10) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (tmp8) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp12 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_10_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (tmp14 != (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp15 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp15, atslab_0, tmp11) ; /* tmp13 = */ patsopts2cst_set_isabs (tmp8, tmp15) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (tmp14 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: break ; } while (0) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp12 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: break ; } while (0) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add (tmp7, tmp8, tmp10) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_saspdec (tmp2, tmp6) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp3)->tag != 10) { goto __ats_lab_17_0 ; } __ats_lab_14_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp (tmp17) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (tmp18 != (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp20 = */ prerr_error3_loc_02091_ (tmp2) ; /* tmp23 = */ atspre_prerr_string (ATSstrcst(": the abstype type [")) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst (tmp17) ; /* tmp25 = */ atspre_prerr_string (ATSstrcst("] is not yet assumed.")) ; /* tmp26 = */ atspre_prerr_newline () ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp27)->tag = 97 ; ats_selptrset_mac(anairiats_sum_6, tmp27, atslab_0, tmp2) ; ats_selptrset_mac(anairiats_sum_6, tmp27, atslab_1, tmp17) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp27) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (tmp18 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_5, tmp18, atslab_0) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add (tmp17) ; tmp30 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp30, atslab_0, tmp28) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (tmp17, tmp30) ; break ; } while (0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_reassume (tmp2, tmp17) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp3)->tag != 11) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ; tmp32 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extype (tmp33, tmp31, tmp32) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp3)->tag != 12) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ; tmp35 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp35) ; tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extvar (tmp37, tmp34, tmp36) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp3)->tag != 13) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_0) ; tmp39 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_1) ; tmp40 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_2) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extcode (tmp2, tmp38, tmp39, tmp40) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp3)->tag != 15) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_exndecs (tmp2, tmp41) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp3)->tag != 14) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_1) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_datdecs (tmp2, tmp42, tmp43) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp3)->tag != 16) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_9, tmp3, atslab_0) ; tmp45 = ats_caselptrlab_mac(anairiats_sum_9, tmp3, atslab_1) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_9, tmp3, atslab_2) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dcstdecs (tmp2, tmp44, tmp45, tmp46) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp3)->tag != 17) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_0) ; tmp48 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_1) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr (tmp48) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_impdec (tmp2, tmp47, tmp49) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp3)->tag != 18) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_10, tmp3, atslab_0) ; tmp51 = ats_caselptrlab_mac(anairiats_sum_10, tmp3, atslab_1) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_10, tmp3, atslab_2) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr (tmp50, tmp51, tmp52) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_fundecs (tmp2, tmp50, tmp51, tmp53) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp3)->tag != 19) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr (tmp54, tmp55) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs (tmp2, tmp54, tmp56) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp3)->tag != 20) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ; tmp58 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr (tmp57, tmp58) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs_rec (tmp2, tmp57, tmp59) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp3)->tag != 21) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr (tmp60) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_vardecs (tmp2, tmp61) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp3)->tag != 22) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr (tmp62) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_prvardecs (tmp2, tmp63) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp3)->tag != 23) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_0) ; tmp65 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_1) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp65) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_include (tmp2, tmp64, tmp66) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp3)->tag != 24) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload (arg0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp3)->tag != 25) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc (arg0) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp3)->tag != 26) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload (arg0) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp3)->tag != 27) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ; /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ; /* tmp70 = ats_selsin_mac(tmp69, atslab_1) */ ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp67) ; /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ; /* tmp73 = ats_selsin_mac(tmp72, atslab_1) */ ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp68) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop () ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind () ; /* tmp77 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_addlst (tmp75) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_local (tmp2, tmp71, tmp74) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location (tmp2) ; /* tmp79 = */ atspre_print_newline () ; /* tmp80 = */ atspre_print_string (ATSstrcst("d2ecl_tr: d2c0 = ")) ; /* tmp81 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2ecl (arg0) ; /* tmp82 = */ atspre_print_newline () ; tmp84 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 8022(line=339, offs=14) -- 8038(line=339, offs=30)", ATSstrcst("\n")) ; /* tmp83 = */ atspre_assert_errmsg (ats_false_bool, tmp84) ; /* tmp1 = */ ats_exit (1) ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab_loop_6: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; tmp92 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp90, arg3) ; tmp93 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp93, atslab_0, tmp92) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp93 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp94 = &ats_caselptrlab_mac(anairiats_sum_11, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp91 ; arg1 = arg1 ; arg2 = tmp94 ; arg3 = arg3 ; goto __ats_lab_loop_6 ; // tail call break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp95 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp95 ; break ; } while (0) ; return /* (tmp89) */ ; } /* end of [loop_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp96) ; // ATSlocal_void (tmp97) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp96 ; */ /* tmp97 = */ loop_6 (arg0, arg1, (&tmp96), arg2) ; tmp88 = tmp96 ; return (tmp88) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp87 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp87) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 8218(line=356, offs=3) -- 8288(line=359, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr: tmp86 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr) ; tmp85 = ats_castfn_mac(ats_ptr_type, tmp86) ; return (tmp85) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 8368(line=365, offs=3) -- 8469(line=368, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck: tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (arg0) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_finalize () ; tmp98 = tmp99 ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 8543(line=373, offs=12) -- 9202(line=403, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; // ATSlocal_void (tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr: tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_loc) ; tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_locid) ; tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_cst) ; tmp105 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_imparg) ; tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_tmparg) ; tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_tmpgua) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp109 = ats_selsin_mac(tmp108, atslab_1) */ ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp105) ; tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_def) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp112) ; /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp102) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3mpdec_make (tmp102, tmp104, tmp105, tmp106, tmp111) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 9271(line=409, offs=3) -- 10073(line=439, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; // ATSlocal_void (tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr: tmp115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_ann) ; tmp116 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_loc) ; tmp117 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_var) ; tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_def) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg (tmp117) ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp121 = ats_selsin_mac(tmp120, atslab_1) */ ; /* tmp122 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squalst (tmp119) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (tmp115 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_5, tmp115, atslab_0) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp118, tmp124) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (tmp115 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp118) ; break ; } while (0) ; /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp116) ; tmp114 = tmp123 ; return (tmp114) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 10232(line=451, offs=7) -- 10511(line=460, offs=43) */ ATSstaticdec() ats_void_type aux_11 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab_aux_11: tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp128)->tag != 56) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_15, tmp128, atslab_3) ; arg0 = tmp129 ; goto __ats_lab_aux_11 ; // tail call break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp128)->tag != 58) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_10, tmp128, atslab_2) ; arg0 = tmp130 ; goto __ats_lab_aux_11 ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp128)->tag != 59) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_10, tmp128, atslab_0) ; ats_ptrget_mac(ats_ptr_type, tmp131) = env0 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: break ; } while (0) ; return /* (tmp127) */ ; } /* end of [aux_11] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_11_closure_type ; ats_void_type aux_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { aux_11 (((aux_11_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type aux_11_closure_init (aux_11_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_11_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_11_closure_make (ats_ptr_type env0) { aux_11_closure_type *p_clo = ATS_MALLOC(sizeof(aux_11_closure_type)) ; aux_11_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 10133(line=446, offs=1) -- 10531(line=462, offs=2) */ ATSstaticdec() ats_void_type d2exp_metfun_load_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp126) ; __ats_lab_d2exp_metfun_load_10: /* tmp126 = */ aux_11 (arg1, arg0) ; return /* (tmp126) */ ; } /* end of [d2exp_metfun_load_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 10647(line=466, offs=7) -- 11209(line=486, offs=8) */ ATSstaticdec() ats_bool_type aux_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_bool_type, tmp138) ; __ats_lab_aux_13: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_43_1: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: ats_ptrget_mac(ats_int_type, arg2) = -1 ; tmp133 = ats_true_bool ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp133 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ; tmp135 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: ats_ptrget_mac(ats_int_type, arg2) = 1 ; tmp133 = ats_true_bool ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; tmp137 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_1) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp136, tmp134) ; if (tmp138) { arg0 = tmp135 ; arg1 = tmp137 ; arg2 = arg2 ; goto __ats_lab_aux_13 ; // tail call } else { tmp133 = ats_false_bool ; } /* end of [if] */ break ; } while (0) ; break ; } while (0) ; return (tmp133) ; } /* end of [aux_13] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 10569(line=464, offs=5) -- 11617(line=506, offs=4) */ ATSstaticdec() ats_bool_type termet_sortcheck_12 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_bool_type, tmp142) ; ATSlocal (ats_bool_type, tmp144) ; __ats_lab_termet_sortcheck_12: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_49_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; /* ats_int_type tmp141 ; */ tmp141 = 0 ; tmp142 = aux_13 (tmp139, tmp140, (&tmp141)) ; if (tmp142) { tmp144 = atspre_lt_int_int (tmp141, 0) ; if (tmp144) { ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp132 = tmp142 ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp132 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; tmp132 = ats_true_bool ; break ; } while (0) ; return (tmp132) ; } /* end of [termet_sortcheck_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 11773(line=516, offs=5) -- 13426(line=578, offs=4) */ ATSstaticdec() ats_void_type aux_init_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; // ATSlocal_void (tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (anairiats_rec_16, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_bool_type, tmp163) ; // ATSlocal_void (tmp164) ; ATSlocal (ats_bool_type, tmp165) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; // ATSlocal_void (tmp172) ; // ATSlocal_void (tmp173) ; __ats_lab_aux_init_15: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; tmp150 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp148), atslab_f2undec_var) ; tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp148), atslab_f2undec_def) ; /* tmp152 = */ d2exp_metfun_load_10 (tmp151, arg1) ; /* ats_ptr_type tmp153 ; */ tmp154 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp148), atslab_f2undec_ann) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (tmp154 == (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_5, tmp154, atslab_0) ; tmp153 = tmp155 ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (tmp154 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type (tmp151) ; break ; } while (0) ; /* ats_ptr_type tmp156 ; */ tmp156 = (ats_sum_ptr_type)0 ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_metfun_load (tmp153, tmp150) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (tmp157 != (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (tmp157 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp159 = ats_caselptrlab_mac(anairiats_sum_17, tmp157, atslab_0) ; ATS_FREE(tmp157) ; tmp160 = ats_select_mac(tmp159, atslab_0) ; tmp153 = tmp160 ; tmp162 = ats_select_mac(tmp159, atslab_1) ; tmp161 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp161, atslab_0, tmp162) ; tmp156 = tmp161 ; break ; } while (0) ; tmp163 = termet_sortcheck_12 (arg2, tmp156) ; tmp165 = atspre_neg_bool (tmp163) ; if (tmp165) { tmp167 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp148), atslab_f2undec_loc) ; /* tmp166 = */ prerr_error3_loc_02091_ (tmp167) ; /* tmp168 = */ atspre_prerr_string (ATSstrcst(": incompatible termination metric for this function.")) ; /* tmp169 = */ atspre_prerr_newline () ; tmp170 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp170)->tag = 98 ; ats_selptrset_mac(anairiats_sum_6, tmp170, atslab_0, tmp148) ; ats_selptrset_mac(anairiats_sum_6, tmp170, atslab_1, tmp156) ; /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp170) ; } else { /* empty */ } /* end of [if] */ tmp171 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp171, atslab_0, tmp153) ; /* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp150, tmp171) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp150, tmp171) ; arg0 = tmp149 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_aux_init_15 ; // tail call break ; } while (0) ; return /* (tmp147) */ ; } /* end of [aux_init_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 13549(line=585, offs=6) -- 13966(line=600, offs=6) */ ATSstaticdec() ats_ptr_type f_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab_f_17: tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_d3exp_type) ; tmp177 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_var) ; tmp178 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp178, atslab_0, tmp176) ; /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp177, tmp178) ; /* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp177, tmp178) ; tmp181 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_loc) ; tmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__f3undec_make (tmp181, tmp177, arg1) ; return (tmp175) ; } /* end of [f_17] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 58376(line=2097, offs=5) -- 58882(line=2115, offs=4) */ ATSstaticdec() ats_void_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab_loop_20: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_2: tmp186 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_1) ; tmp190 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg2) (tmp186, tmp188, arg4) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp191, atslab_0, tmp190) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp191 ; // if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp192 = &ats_caselptrlab_mac(anairiats_sum_11, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ; arg0 = tmp187 ; arg1 = tmp189 ; arg2 = arg2 ; arg3 = tmp192 ; arg4 = arg4 ; goto __ats_lab_loop_20 ; // tail call break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_2: tmp193 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp193 ; break ; } while (0) ; return /* (tmp185) */ ; } /* end of [loop_20] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 58341(line=2095, offs=3) -- 59077(line=2124, offs=4) */ ATSstaticdec() ats_ptr_type list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; __ats_lab_list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp194 ; */ /* tmp195 = */ loop_20 (arg0, arg1, arg2, (&tmp194), arg3) ; tmp184 = tmp194 ; return (tmp184) ; } /* end of [list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 59154(line=2127, offs=27) -- 59433(line=2136, offs=4) */ ATSstaticdec() ats_ptr_type list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp183) ; __ats_lab_list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type: tmp183 = list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type (arg0, arg1, ats_castfn_mac(ats_ptr_type, arg2), atspre_null_ptr) ; return (tmp183) ; } /* end of [list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 13453(line=580, offs=4) -- 14097(line=607, offs=4) */ ATSstaticdec() ats_ptr_type aux_fini_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp182) ; __ats_lab_aux_fini_16: tmp182 = list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), &f_17) ; tmp174 = ats_castfn_mac(ats_ptr_type, tmp182) ; return (tmp174) ; } /* end of [aux_fini_16] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 14238(line=615, offs=31) -- 14268(line=615, offs=61) */ ATSstaticdec() ats_ptr_type __ats_fun_21 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp198) ; __ats_lab___ats_fun_21: tmp198 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_var) ; return (tmp198) ; } /* end of [__ats_fun_21] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_23 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; __ats_lab_loop_23: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp205 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp205 ; goto __ats_lab_loop_23 ; // tail call break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: break ; } while (0) ; return /* (tmp204) */ ; } /* end of [loop_23] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp203) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp203 = */ loop_23 (arg0) ; return /* (tmp203) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 11698(line=512, offs=3) -- 14586(line=631, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_bool_type, tmp146) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive (arg0) ; if (tmp146) { tmp197 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg2, &__ats_fun_21) ; /* ats_ptr_type tmp199 ; */ tmp199 = (ats_sum_ptr_type)0 ; /* tmp196 = */ aux_init_15 (arg2, ats_castfn_mac(ats_ptr_type, tmp197), (&tmp199)) ; } else { /* empty */ } /* end of [if] */ tmp200 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr) ; tmp201 = aux_fini_16 (arg2, tmp200) ; /* tmp202 = */ list_vt_free_01499_ats_ptr_type (tmp200) ; tmp145 = tmp201 ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 1961(line=59, offs=16) -- 2054(line=60, offs=87) */ ATSstaticdec() ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp228) ; __ats_lab_list_vt_is_nil_01494_: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp228 = ats_true_bool ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: tmp228 = ats_false_bool ; break ; } while (0) ; return (tmp228) ; } /* end of [list_vt_is_nil_01494_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 14681(line=639, offs=3) -- 16433(line=706, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_bool_type, tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; // ATSlocal_void (tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_bool_type, tmp226) ; ATSlocal (ats_bool_type, tmp227) ; // ATSlocal_void (tmp229) ; ATSlocal (ats_bool_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; // ATSlocal_void (tmp234) ; ATSlocal (ats_bool_type, tmp236) ; ATSlocal (ats_int_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr: tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v2aldec_loc) ; tmp208 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v2aldec_pat) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind_is_proof (arg0) ; /* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set_if (ats_castfn_mac(ats_bool_type, tmp209), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; /* tmp211 = ats_selsin_mac(tmp210, atslab_1) */ ; tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v2aldec_def) ; tmp213 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v2aldec_ann) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (tmp213 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_5, tmp213, atslab_0) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp212, tmp215) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (tmp213 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp212) ; break ; } while (0) ; /* tmp216 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop_if (ats_castfn_mac(ats_bool_type, tmp209)) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp214) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind2caskind (arg0) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp218)->tag != 0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst (tmp208) ; tmp222 = (ats_sum_ptr_type)0 ; tmp220 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp220, atslab_0, tmp221) ; ats_selptrset_mac(anairiats_sum_11, tmp220, atslab_1, tmp222) ; tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (tmp220) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp218)->tag != 1) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst (tmp208) ; tmp225 = (ats_sum_ptr_type)0 ; tmp223 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp223, atslab_0, tmp224) ; ats_selptrset_mac(anairiats_sum_11, tmp223, atslab_1, tmp225) ; tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (tmp223) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (((ats_sum_ptr_type)tmp218)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp219 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp227 = list_vt_is_nil_01494_ (tmp219) ; if (tmp227) { tmp226 = ats_true_bool ; } else { tmp226 = ats_false_bool ; } /* end of [if] */ tmp230 = atspre_neg_bool (tmp226) ; if (tmp230) { tmp232 = (ats_sum_ptr_type)0 ; tmp231 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp231, atslab_0, tmp217) ; ats_selptrset_mac(anairiats_sum_11, tmp231, atslab_1, tmp232) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy (tmp219) ; /* tmp229 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false (tmp207, tmp218, tmp233, tmp231) ; } else { /* empty */ } /* end of [if] */ /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free (tmp219) ; tmp236 = atspre_neg_bool (tmp226) ; if (tmp236) { tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn (tmp207, tmp218) ; } else { /* empty */ } /* end of [if] */ tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp208, tmp217) ; /* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_pat_type_left (tmp214, tmp238) ; /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at (tmp238) ; /* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at (tmp238) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3aldec_make (tmp207, tmp238, tmp214) ; return (tmp206) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 16531(line=712, offs=11) -- 16586(line=713, offs=52) */ ATSstaticdec() ats_ptr_type __ats_fun_27 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; __ats_lab___ats_fun_27: tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr (env0, arg0) ; return (tmp243) ; } /* end of [__ats_fun_27] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_27_closure_type ; ats_ptr_type __ats_fun_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_27 (((__ats_fun_27_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_27_closure_init (__ats_fun_27_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_27_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_27_closure_make (ats_ptr_type env0) { __ats_fun_27_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_27_closure_type)) ; __ats_fun_27_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54647(line=1953, offs=6) -- 54699(line=1953, offs=58) */ ATSstaticdec() ats_ptr_type app_30 (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp248) ; __ats_lab_app_30: tmp248 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp248) ; } /* end of [app_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54575(line=1951, offs=23) -- 54763(line=1956, offs=4) */ ATSstaticdec() ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp247) ; __ats_lab_list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type: tmp247 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_30, arg1) ; return (tmp247) ; } /* end of [list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54041(line=1936, offs=19) -- 54491(line=1948, offs=2) */ ATSstaticdec() ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp246) ; __ats_lab_list_map_cloptr_01415_ats_ptr_type_ats_ptr_type: tmp246 = list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (arg0, arg1) ; return (tmp246) ; } /* end of [list_map_cloptr_01415_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 16503(line=711, offs=15) -- 16689(line=718, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; // ATSlocal_void (tmp249) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr: tmp244 = __ats_fun_27_closure_make (arg0) ; tmp245 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (arg1, tmp244) ; /* tmp249 = */ atspre_cloptr_free (tmp244) ; tmp242 = ats_castfn_mac(ats_ptr_type, tmp245) ; return (tmp242) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 16809(line=727, offs=6) -- 17402(line=744, offs=6) */ ATSstaticdec() ats_ptr_type aux1_32 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; // ATSlocal_void (tmp256) ; ATSlocal (ats_bool_type, tmp257) ; // ATSlocal_void (tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; // ATSlocal_void (tmp260) ; // ATSlocal_void (tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; __ats_lab_aux1_32: tmp252 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_v2aldec_pat) ; tmp254 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_v2aldec_ann) ; do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (tmp254 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp255 = ats_caselptrlab_mac(anairiats_sum_5, tmp254, atslab_0) ; tmp253 = tmp255 ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (tmp254 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type (tmp252) ; break ; } while (0) ; tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp253) ; if (tmp257) { tmp259 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, tmp252), atslab_p2at_loc) ; /* tmp258 = */ prerr_error3_loc_02091_ (tmp259) ; /* tmp260 = */ atspre_prerr_string (ATSstrcst(": this pattern cannot be assigned a linear type.")) ; /* tmp261 = */ atspre_prerr_newline () ; tmp262 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp262)->tag = 99 ; ats_selptrset_mac(anairiats_sum_6, tmp262, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp262, atslab_1, tmp253) ; /* tmp256 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp262) ; } else { /* empty */ } /* end of [if] */ tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp252, tmp253) ; return (tmp251) ; } /* end of [aux1_32] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 17501(line=750, offs=7) -- 17735(line=758, offs=6) */ ATSstaticdec() ats_ptr_type aux2_33 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab_aux2_33: tmp265 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_v2aldec_def) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type (arg1) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp265, tmp266) ; tmp268 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_v2aldec_loc) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3aldec_make (tmp268, arg1, tmp267) ; return (tmp264) ; } /* end of [aux2_33] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 16768(line=724, offs=3) -- 17833(line=765, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp269) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr: tmp263 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg1, &aux1_32) ; tmp269 = list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (arg1, ats_castfn_mac(ats_ptr_type, tmp263), &aux2_33) ; tmp250 = ats_castfn_mac(ats_ptr_type, tmp269) ; return (tmp250) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 17897(line=772, offs=1) -- 18536(line=794, offs=4) */ ATSstaticdec() ats_void_type auxInitCK_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp270) ; ATSlocal (ats_bool_type, tmp271) ; ATSlocal (ats_bool_type, tmp272) ; // ATSlocal_void (tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; // ATSlocal_void (tmp279) ; // ATSlocal_void (tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; // ATSlocal_void (tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab_auxInitCK_34: tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq (arg2, arg3) ; tmp272 = atspre_neg_bool (tmp271) ; if (tmp272) { /* tmp273 = */ prerr_error3_loc_02091_ (arg0) ; /* tmp274 = */ atspre_prerr_string (ATSstrcst(": initialization for [")) ; /* tmp275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp276 = */ atspre_prerr_string (ATSstrcst("] cannot be performed properly")) ; /* tmp277 = */ atspre_prerr_string (ATSstrcst(": mismatch of var/val type-sizes:\n")) ; /* tmp278 = */ atspre_prerr_string (ATSstrcst("var: [")) ; /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ; /* tmp280 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp281 = */ atspre_prerr_newline () ; /* tmp282 = */ atspre_prerr_string (ATSstrcst("val: [")) ; /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg3) ; /* tmp284 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp285 = */ atspre_prerr_newline () ; tmp286 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp286)->tag = 55 ; ats_selptrset_mac(anairiats_sum_10, tmp286, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp286, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp286, atslab_2, arg3) ; /* tmp270 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp286) ; } else { /* empty */ } /* end of [if] */ return /* (tmp270) */ ; } /* end of [auxInitCK_34] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 18607(line=800, offs=3) -- 20722(line=882, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_int_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; // ATSlocal_void (tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; // ATSlocal_void (tmp302) ; // ATSlocal_void (tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; // ATSlocal_void (tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; // ATSlocal_void (tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; // ATSlocal_void (tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; // ATSlocal_void (tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; // ATSlocal_void (tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; // ATSlocal_void (tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; // ATSlocal_void (tmp333) ; // ATSlocal_void (tmp334) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr: tmp288 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_loc) ; tmp289 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_knd) ; tmp290 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_dvar) ; tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (tmp290) ; tmp292 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_type) ; tmp293 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_init) ; /* ats_ptr_type tmp294 ; */ tmp294 = (ats_sum_ptr_type)0 ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (tmp292 == (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_72_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_5, tmp292, atslab_0) ; do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (tmp293 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp297 = ats_caselptrlab_mac(anairiats_sum_5, tmp293, atslab_0) ; tmp298 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp297) ; tmp299 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp299, atslab_0, tmp298) ; tmp294 = tmp299 ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp298) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp298) ; /* tmp302 = */ auxInitCK_34 (tmp288, tmp290, tmp296, tmp301) ; tmp304 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp304, atslab_0, tmp301) ; /* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp290, tmp304) ; tmp295 = tmp296 ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (tmp293 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: tmp305 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0 (tmp296) ; tmp307 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp307, atslab_0, tmp305) ; /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp290, tmp307) ; tmp295 = tmp296 ; break ; } while (0) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (tmp292 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (tmp293 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_5, tmp293, atslab_0) ; tmp309 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp308) ; tmp310 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp310, atslab_0, tmp309) ; tmp294 = tmp310 ; /* tmp311 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp309) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp309) ; tmp314 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp314, atslab_0, tmp312) ; /* tmp313 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp290, tmp314) ; tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0 (tmp312) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (tmp293 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp291, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; tmp317 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp317, atslab_0, tmp315) ; /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp290, tmp317) ; tmp295 = tmp315 ; break ; } while (0) ; break ; } while (0) ; tmp319 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_pfat) ; tmp318 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize (tmp291, tmp290, tmp295, tmp319) ; tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp290) ; if (tmp320 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 20113(line=856, offs=5) -- 20145(line=856, offs=37)") ; } tmp321 = ats_caselptrlab_mac(anairiats_sum_5, tmp320, atslab_0) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0 (tmp295) ; tmp323 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp322, tmp321) ; tmp325 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp325)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp325, atslab_0, tmp323) ; /* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (tmp318, tmp325) ; tmp326 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_dvaropt) ; do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (tmp326 != (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (tmp326 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: tmp328 = ats_caselptrlab_mac(anairiats_sum_5, tmp326, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp290) ; /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp328, tmp330) ; tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (tmp290) ; /* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp328, tmp331) ; break ; } while (0) ; tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3ardec_make (tmp288, tmp289, tmp290, tmp318, tmp295, tmp294, tmp326) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (tmp290) ; /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (tmp290) ; tmp287 = tmp332 ; return (tmp287) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; // ATSlocal_void (tmp342) ; __ats_lab_loop_39: do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp340 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; /* tmp342 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp340, arg2) ; arg0 = tmp341 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: break ; } while (0) ; return /* (tmp339) */ ; } /* end of [loop_39] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp338) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp338 = */ loop_39 (arg0, arg1, arg2) ; return /* (tmp338) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp337) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp337 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp337) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 20874(line=895, offs=3) -- 20929(line=896, offs=43) */ ATSstaticdec() ats_void_type __ats_fun_40 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; __ats_lab___ats_fun_40: tmp344 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_svar) ; /* tmp343 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar (tmp344) ; return /* (tmp343) */ ; } /* end of [__ats_fun_40] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 20815(line=889, offs=15) -- 21045(line=902, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp335) ; // ATSlocal_void (tmp336) ; ATSlocal (ats_ptr_type, tmp345) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr: /* tmp336 = */ list_app_fun_01301_ats_ptr_type (arg0, &__ats_fun_40) ; tmp345 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr) ; tmp335 = ats_castfn_mac(ats_ptr_type, tmp345) ; return (tmp335) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 21117(line=907, offs=14) -- 21814(line=939, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; // ATSlocal_void (tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; // ATSlocal_void (tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; // ATSlocal_void (tmp362) ; // ATSlocal_void (tmp363) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr: tmp347 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_prv2ardec_loc) ; tmp348 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_prv2ardec_dvar) ; tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (tmp348) ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (tmp348, 0) ; tmp351 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_prv2ardec_type) ; tmp353 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_prv2ardec_init) ; do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (tmp353 == (ats_sum_ptr_type)0) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp354 = ats_caselptrlab_mac(anairiats_sum_5, tmp353, atslab_0) ; tmp352 = tmp354 ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: // if (tmp353 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_83_1: tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (tmp349) ; break ; } while (0) ; do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (tmp351 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp356 = ats_caselptrlab_mac(anairiats_sum_5, tmp351, atslab_0) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp352, tmp356) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (tmp351 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp352) ; break ; } while (0) ; tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp355) ; tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp357) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp349, tmp358) ; tmp361 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp361, atslab_0, tmp359) ; /* tmp360 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp348, tmp361) ; /* tmp362 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (tmp348) ; /* tmp363 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (tmp348) ; tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prv3ardec_make (tmp347, tmp348, tmp359, tmp355) ; return (tmp346) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 21867(line=942, offs=17) -- 21928(line=943, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr: tmp365 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr) ; tmp364 = ats_castfn_mac(ats_ptr_type, tmp365) ; return (tmp364) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2024(line=63, offs=10) -- 2250(line=73, offs=2) */ ATSstaticdec() ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp383) ; __ats_lab_ptr0_set_01760_ats_ptr_type: ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) = arg1 ; return /* (tmp383) */ ; } /* end of [ptr0_set_01760_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2472(line=83, offs=21) -- 2499(line=83, offs=48) */ ATSstaticdec() ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp382) ; __ats_lab_ptrset_01764_ats_ptr_type: /* tmp382 = */ ptr0_set_01760_ats_ptr_type (arg0, arg1) ; return /* (tmp382) */ ; } /* end of [ptrset_01764_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 22009(line=950, offs=3) -- 22723(line=977, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_int_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_int_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; // ATSlocal_void (tmp377) ; // ATSlocal_void (tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; // ATSlocal_void (tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp384) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload: tmp367 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ; tmp368 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_node) ; if (((ats_sum_ptr_type)tmp368)->tag != 24) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 22055(line=953, offs=5) -- 22124(line=955, offs=20)") ; } tmp369 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_0) ; tmp370 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_1) ; tmp371 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_2) ; tmp372 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_3) ; tmp373 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_4) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt (tmp372) ; do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (tmp374 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: // if (tmp374 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_87_1: tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (tmp372) ; /* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ; /* tmp378 = ats_selsin_mac(tmp377, atslab_1) */ ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp376) ; /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind () ; tmp381 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt (tmp372) ; tmp384 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp384, atslab_0, tmp379) ; /* tmp375 = */ ptrset_01764_ats_ptr_type (tmp381, tmp384) ; break ; } while (0) ; tmp366 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staload (tmp367, tmp369, tmp370, tmp371, tmp372, tmp373) ; return (tmp366) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 22807(line=983, offs=3) -- 23247(line=1001, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; // ATSlocal_void (tmp392) ; // ATSlocal_void (tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; // ATSlocal_void (tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; // ATSlocal_void (tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc: tmp386 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ; tmp387 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_node) ; if (((ats_sum_ptr_type)tmp387)->tag != 25) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 22856(line=987, offs=5) -- 22910(line=988, offs=41)") ; } tmp388 = ats_caselptrlab_mac(anairiats_sum_10, tmp387, atslab_0) ; tmp389 = ats_caselptrlab_mac(anairiats_sum_10, tmp387, atslab_1) ; tmp390 = ats_caselptrlab_mac(anairiats_sum_10, tmp387, atslab_2) ; tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (tmp390) ; /* tmp392 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ; /* tmp393 = ats_selsin_mac(tmp392, atslab_1) */ ; tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp391) ; /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind () ; tmp396 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt (tmp390) ; tmp398 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp398, atslab_0, tmp394) ; /* tmp397 = */ ptrset_01764_ats_ptr_type (tmp396, tmp398) ; tmp385 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staloadloc (tmp386, tmp388, tmp389, tmp390) ; return (tmp385) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc] */ /* // /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 23331(line=1007, offs=3) -- 23451(line=1014, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload: tmp400 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ; tmp401 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_node) ; if (((ats_sum_ptr_type)tmp401)->tag != 26) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 23377(line=1010, offs=5) -- 23412(line=1010, offs=40)") ; } tmp402 = ats_caselptrlab_mac(anairiats_sum_2, tmp401, atslab_0) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dynload (tmp400, tmp402) ; return (tmp399) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_decl_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_typerase_sats.c0000644000175000017500000002614213431250607022405 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__T4E_p3at_tyer_isprf_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__T4E_d3exp_tyer_isprf_1) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__T4E_p3at_tyer_isprf_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__T4E_d3exp_tyer_isprf_1.tag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_typerase_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dmacro2_sats.c0000644000175000017500000001242713431250607022101 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vint_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vbool_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vchar_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vfloat_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vstring_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vunit_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vscode_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vdcode_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vlist_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vint_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vbool_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vchar_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vfloat_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vstring_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vunit_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vscode_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vdcode_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vlist_8.tag = 8 ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9.tag = 9 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dmacro2_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_hidynexp_sats.c0000644000175000017500000005372213431250607022405 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIPAT_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPany_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPvar_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPint_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPintrep_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPbool_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPchar_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPstring_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPfloat_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPi0nt_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPf0loat_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPempty_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_any_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrec_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrefas_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPann_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPerr_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILlab_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILind_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIDEXP_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcst_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvar_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEint_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEintrep_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEbool_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEchar_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfloat_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEstring_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEi0nt_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEf0loat_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcstsp_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtyrep_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtop_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEempty_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEignore_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcastfn_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextval_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextfcall_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextmcall_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcon_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpcst_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpvar_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfoldat_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfreeat_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElet_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEapp_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEif_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEsif_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcase_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElst_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErec_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEseq_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselab_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofvar_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofsel_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErefarg_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselvar_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselptr_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_var_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_ptr_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_var_40) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_ptr_41) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrpsz_42) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrinit_43) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEraise_44) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvararg_45) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtempenver_46) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElam_47) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfix_48) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEdelay_49) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEldelay_50) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElazyeval_51) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloop_52) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloopexn_53) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtrywith_54) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEerrexp_55) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlist_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDsaspdec_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDreassume_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextype_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextvar_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextcode_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDexndecs_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdatdecs_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdcstdecs_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDimpdec_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDfundecs_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_rec_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvardecs_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDinclude_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaload_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaloadloc_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdynload_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlocal_19) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIPAT_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPany_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPvar_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPint_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPintrep_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPbool_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPchar_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPstring_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPfloat_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPi0nt_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPf0loat_9.tag = 9 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPempty_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_any_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrec_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrefas_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPann_15.tag = 15 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPerr_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILlab_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILind_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIDEXP_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcst_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvar_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEint_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEintrep_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEbool_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEchar_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfloat_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEstring_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEi0nt_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEf0loat_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcstsp_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtyrep_11.tag = 11 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtop_12.tag = 12 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEempty_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEignore_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcastfn_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextval_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextfcall_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextmcall_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcon_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpcst_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpvar_21.tag = 21 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfoldat_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfreeat_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElet_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEapp_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEif_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEsif_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcase_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElst_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErec_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEseq_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselab_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofvar_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofsel_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErefarg_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselvar_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselptr_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_var_38.tag = 38 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_ptr_39.tag = 39 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_var_40.tag = 40 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_ptr_41.tag = 41 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrpsz_42.tag = 42 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrinit_43.tag = 43 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEraise_44.tag = 44 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvararg_45.tag = 45 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtempenver_46.tag = 46 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElam_47.tag = 47 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfix_48.tag = 48 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEdelay_49.tag = 49 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEldelay_50.tag = 50 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElazyeval_51.tag = 51 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloop_52.tag = 52 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloopexn_53.tag = 53 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtrywith_54.tag = 54 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEerrexp_55.tag = 55 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlist_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDsaspdec_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDreassume_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextype_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextvar_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextcode_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDexndecs_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdatdecs_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdcstdecs_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDimpdec_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDfundecs_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_rec_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvardecs_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDinclude_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaload_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaloadloc_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdynload_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlocal_19.tag = 19 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_hidynexp_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_sort_dats.c0000644000175000017500000014265513431250607023021 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s1rt_loc ; ats_ptr_type atslab_s1rt_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s0rt_loc ; ats_ptr_type atslab_s0rt_node ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_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 { ats_ptr_type atslab_a0srt_loc ; ats_ptr_type atslab_a0srt_sym ; ats_ptr_type atslab_a0srt_srt ; } anairiats_rec_8 ; typedef struct { ats_ptr_type atslab_a0msrt_loc ; ats_ptr_type atslab_a0msrt_arg ; } anairiats_rec_9 ; typedef struct { ats_ptr_type atslab_d0atsrtcon_loc ; ats_ptr_type atslab_d0atsrtcon_sym ; ats_ptr_type atslab_d0atsrtcon_arg ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_d0atsrtdec_loc ; ats_ptr_type atslab_d0atsrtdec_sym ; ats_ptr_type atslab_d0atsrtdec_con ; } anairiats_rec_11 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMatm_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMopr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTapp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTlist_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTtype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_s0rt_tr_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app) (ats_ptr_type, ats_clo_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_qid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_type) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_err) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtcon_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1srt_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1msrt_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtlst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0srt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02047_ () ; static ats_ptr_type appf_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type appf_1_closure_make () ; static ats_ptr_type appf_1_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s1rtitm_app_2 (ats_ptr_type arg0) ; static ats_ptr_type s1rt_get_loc_3 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_5_closure_make () ; static ats_ptr_type __ats_fun_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s1rt_make_opr_4 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_7 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_8_closure_make () ; static ats_ptr_type __ats_fun_8_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s1rtitm_backslash_6 (ats_ptr_type arg0) ; static ats_void_type prerr_error1_loc_02050_ (ats_ptr_type arg0) ; static ats_ptr_type s0rt_tr_errmsg_opr_9 (ats_ptr_type arg0) ; static ats_ptr_type aux_item_12 (ats_ptr_type arg0) ; static ats_ptr_type loop_14 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_itemlst_13 (ats_ptr_type arg0) ; static ats_void_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type d0atsrtcon_tr_23 (ats_ptr_type arg0) ; static ats_ptr_type d0atsrtconlst_tr_24 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 1801(line=53, offs=28) -- 1830(line=53, offs=57) */ ATSstaticdec() ats_void_type prerr_FILENAME_02047_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02047_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans1_sort")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02047_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 2280(line=82, offs=4) -- 2580(line=93, offs=4) */ ATSstaticdec() ats_ptr_type appf_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab_appf_1: tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s1rt_loc) ; tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_s1rt_loc) ; tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp3, tmp4) ; tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_s1rt_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp6)->tag != 1) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_2, tmp6, atslab_0) ; tmp5 = tmp7 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp8 = (ats_sum_ptr_type)0 ; tmp5 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp5, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp5, atslab_1, tmp8) ; break ; } while (0) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_app (tmp2, arg0, tmp5) ; tmp1 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp1)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp1, atslab_0, tmp9) ; return (tmp1) ; } /* end of [appf_1] */ typedef struct { ats_fun_ptr_type closure_fun ; } appf_1_closure_type ; ats_ptr_type appf_1_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return appf_1 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type appf_1_closure_init (appf_1_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&appf_1_clofun ; return ; } /* end of function */ ats_clo_ptr_type appf_1_closure_make () { appf_1_closure_type *p_clo = ATS_MALLOC(sizeof(appf_1_closure_type)) ; appf_1_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 2623(line=97, offs=4) -- 2685(line=98, offs=51) */ ATSstaticdec() ats_ptr_type s1rtitm_app_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_s1rtitm_app_2: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app (arg0, appf_1_closure_make ()) ; return (tmp10) ; } /* end of [s1rtitm_app_2] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 2758(line=105, offs=4) -- 2803(line=105, offs=49) */ ATSstaticdec() ats_ptr_type s1rt_get_loc_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_s1rt_get_loc_3: tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s1rt_loc) ; return (tmp11) ; } /* end of [s1rt_get_loc_3] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 2908(line=112, offs=5) -- 2963(line=112, offs=60) */ ATSstaticdec() ats_ptr_type __ats_fun_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; __ats_lab___ats_fun_5: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_app (arg0, arg1, arg3) ; return (tmp13) ; } /* end of [__ats_fun_5] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_5_closure_type ; ats_ptr_type __ats_fun_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_5 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_5_closure_init (__ats_fun_5_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_5_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_5_closure_make () { __ats_fun_5_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_5_closure_type)) ; __ats_fun_5_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 2808(line=107, offs=4) -- 3004(line=115, offs=4) */ ATSstaticdec() ats_ptr_type s1rt_make_opr_4 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; __ats_lab_s1rt_make_opr_4: tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make (&s1rt_get_loc_3, __ats_fun_5_closure_make (), arg0, arg1) ; return (tmp12) ; } /* end of [s1rt_make_opr_4] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 3119(line=120, offs=5) -- 3138(line=120, offs=24) */ ATSstaticdec() ats_ptr_type __ats_fun_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; __ats_lab___ats_fun_7: tmp15 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s1rt_loc) ; return (tmp15) ; } /* end of [__ats_fun_7] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 3143(line=121, offs=5) -- 3198(line=121, offs=60) */ ATSstaticdec() ats_ptr_type __ats_fun_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; __ats_lab___ats_fun_8: tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_app (arg0, arg1, arg3) ; return (tmp16) ; } /* end of [__ats_fun_8] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_8_closure_type ; ats_ptr_type __ats_fun_8_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_8 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_8_closure_init (__ats_fun_8_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_8_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_8_closure_make () { __ats_fun_8_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_8_closure_type)) ; __ats_fun_8_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 3035(line=117, offs=4) -- 3250(line=124, offs=4) */ ATSstaticdec() ats_ptr_type s1rtitm_backslash_6 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; __ats_lab_s1rtitm_backslash_6: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash (&__ats_fun_7, __ats_fun_8_closure_make (), arg0) ; return (tmp14) ; } /* end of [s1rtitm_backslash_6] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1988(line=70, offs=17) -- 2046(line=73, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_02050_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; __ats_lab_prerr_error1_loc_02050_: /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp20 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp20) */ ; } /* end of [prerr_error1_loc_02050_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 3313(line=130, offs=4) -- 3581(line=139, offs=4) */ ATSstaticdec() ats_ptr_type s0rt_tr_errmsg_opr_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab_s0rt_tr_errmsg_opr_9: tmp18 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s0rt_loc) ; /* tmp19 = */ prerr_error1_loc_02050_ (tmp18) ; /* tmp22 = */ atspre_prerr_string (ATSstrcst(": the operator needs to be applied.")) ; /* tmp23 = */ atspre_prerr_newline () ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp25)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp25, atslab_0, arg0) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp25) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_err (tmp18) ; return (tmp17) ; } /* end of [s0rt_tr_errmsg_opr_9] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 3675(line=145, offs=5) -- 4476(line=167, offs=4) */ ATSstaticdec() ats_ptr_type aux_item_12 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_bool_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_int_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab_aux_item_12: tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s0rt_loc) ; tmp29 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s0rt_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp29)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp31 = s1rtitm_app_2 (tmp28) ; tmp32 = aux_itemlst_13 (arg0) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve (tmp28, &s1rt_get_loc_3, tmp31, tmp32) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp27)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp27, atslab_0, tmp30) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp29)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_2, tmp29, atslab_0) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp33, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; if (!tmp34) { goto __ats_lab_4_1 ; } tmp27 = s1rtitm_backslash_6 (tmp28) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp29)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_4_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_2, tmp29, atslab_0) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find (tmp35) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (tmp36 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_5, tmp36, atslab_0) ; ATS_FREE(tmp36) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_ide (tmp28, tmp35) ; tmp27 = s1rt_make_opr_4 (tmp38, tmp37) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (tmp36 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_ide (tmp28, tmp35) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp27)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp27, atslab_0, tmp39) ; break ; } while (0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp29)->tag != 3) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_2, tmp29, atslab_0) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtlst_tr (tmp40) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_list (tmp28, tmp42) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp27)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp27, atslab_0, tmp41) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp29)->tag != 1) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_6, tmp29, atslab_0) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_6, tmp29, atslab_1) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_qid (tmp28, tmp43, tmp44) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp27)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp27, atslab_0, tmp45) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (((ats_sum_ptr_type)tmp29)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_7, tmp29, atslab_0) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_type (tmp28, tmp46) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp27)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp27, atslab_0, tmp47) ; break ; } while (0) ; return (tmp27) ; } /* end of [aux_item_12] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 4556(line=171, offs=7) -- 4816(line=178, offs=42) */ ATSstaticdec() ats_ptr_type loop_14 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab_loop_14: tmp50 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s0rt_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp50)->tag != 2) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_6, tmp50, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_6, tmp50, atslab_1) ; tmp54 = aux_item_12 (tmp52) ; tmp53 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp53, atslab_0, tmp54) ; ats_selptrset_mac(anairiats_sum_3, tmp53, atslab_1, arg1) ; arg0 = tmp51 ; arg1 = tmp53 ; goto __ats_lab_loop_14 ; // tail call break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp55 = aux_item_12 (arg0) ; tmp49 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp49, atslab_0, tmp55) ; ats_selptrset_mac(anairiats_sum_3, tmp49, atslab_1, arg1) ; break ; } while (0) ; return (tmp49) ; } /* end of [loop_14] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 4505(line=169, offs=5) -- 4883(line=182, offs=4) */ ATSstaticdec() ats_ptr_type aux_itemlst_13 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab_aux_itemlst_13: tmp56 = (ats_sum_ptr_type)0 ; tmp48 = loop_14 (arg0, tmp56) ; return (tmp48) ; } /* end of [aux_itemlst_13] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 3655(line=143, offs=19) -- 5033(line=190, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr: tmp57 = aux_item_12 (arg0) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp57)->tag != 0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_2, tmp57, atslab_0) ; tmp26 = tmp58 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)tmp57)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp26 = s0rt_tr_errmsg_opr_9 (arg0) ; break ; } while (0) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab_loop_18: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp65 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp66 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp64, arg3) ; tmp67 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp67, atslab_0, tmp66) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp67 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp68 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp65 ; arg1 = arg1 ; arg2 = tmp68 ; arg3 = arg3 ; goto __ats_lab_loop_18 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp69 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp69 ; break ; } while (0) ; return /* (tmp63) */ ; } /* end of [loop_18] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp70) ; // ATSlocal_void (tmp71) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp70 ; */ /* tmp71 = */ loop_18 (arg0, arg1, (&tmp70), arg2) ; tmp62 = tmp70 ; return (tmp62) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp61 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp61) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 5099(line=195, offs=12) -- 5141(line=195, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtlst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtlst_tr: tmp60 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr) ; tmp59 = ats_castfn_mac(ats_ptr_type, tmp60) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtlst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 5165(line=198, offs=12) -- 5245(line=199, offs=70) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtopt_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtopt_tr: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr (tmp73) ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp72, atslab_0, tmp74) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp72 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtopt_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 5310(line=204, offs=20) -- 5378(line=205, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0srt_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0srt_tr: tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_a0srt_loc) ; tmp77 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_a0srt_sym) ; tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_a0srt_srt) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr (tmp79) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1srt_make (tmp76, tmp77, tmp78) ; return (tmp75) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0srt_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 5421(line=209, offs=11) -- 5527(line=213, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrt_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrt_tr: tmp82 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_a0msrt_arg) ; tmp81 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp82, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0srt_tr) ; tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_a0msrt_loc) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1msrt_make (tmp83, ats_castfn_mac(ats_ptr_type, tmp81)) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrt_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 5574(line=215, offs=24) -- 5614(line=215, offs=64) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrtlst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrtlst_tr: tmp85 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrt_tr) ; tmp84 = ats_castfn_mac(ats_ptr_type, tmp85) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrtlst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 5648(line=221, offs=4) -- 6080(line=235, offs=4) */ ATSstaticdec() ats_ptr_type d0atsrtcon_tr_23 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab_d0atsrtcon_tr_23: tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_d0atsrtcon_loc) ; tmp88 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_d0atsrtcon_sym) ; tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_d0atsrtcon_arg) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (tmp90 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_18_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_5, tmp90, atslab_0) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr (tmp91) ; tmp93 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp92), atslab_s1rt_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp93)->tag != 1) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_2, tmp93, atslab_0) ; tmp89 = tmp94 ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp95 = (ats_sum_ptr_type)0 ; tmp89 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp89, atslab_0, tmp92) ; ats_selptrset_mac(anairiats_sum_3, tmp89, atslab_1, tmp95) ; break ; } while (0) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp90 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp89 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtcon_make (tmp87, tmp88, tmp89) ; return (tmp86) ; } /* end of [d0atsrtcon_tr_23] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 6111(line=237, offs=4) -- 6207(line=239, offs=41) */ ATSstaticdec() ats_ptr_type d0atsrtconlst_tr_24 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab_d0atsrtconlst_tr_24: tmp97 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &d0atsrtcon_tr_23) ; tmp96 = ats_castfn_mac(ats_ptr_type, tmp97) ; return (tmp96) ; } /* end of [d0atsrtconlst_tr_24] */ /* // /tmp/ATS-Postiats/src/pats_trans1_sort.dats: 6254(line=244, offs=15) -- 6418(line=250, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atsrtdec_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atsrtdec_tr: tmp99 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_d0atsrtdec_loc) ; tmp100 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_d0atsrtdec_sym) ; tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_d0atsrtdec_con) ; tmp101 = d0atsrtconlst_tr_24 (tmp102) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtdec_make (tmp99, tmp100, tmp101) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atsrtdec_tr] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_sort_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_solve_sats.c0000644000175000017500000000353413431250607023347 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_solve_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp1_dats.c0000644000175000017500000061272713431250607022134 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_i1nvresstate_qua ; ats_ptr_type atslab_i1nvresstate_arg ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_p1at_loc ; ats_ptr_type atslab_p1at_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_labp1at_loc ; ats_ptr_type atslab_labp1at_node ; } anairiats_rec_12 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_i1nvarg_loc ; ats_ptr_type atslab_i1nvarg_sym ; ats_ptr_type atslab_i1nvarg_type ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_loopi1nv_loc ; ats_ptr_type atslab_loopi1nv_qua ; ats_ptr_type atslab_loopi1nv_met ; ats_ptr_type atslab_loopi1nv_arg ; ats_ptr_type atslab_loopi1nv_res ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_i1fcl_loc ; ats_ptr_type atslab_i1fcl_test ; ats_ptr_type atslab_i1fcl_body ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_gm1at_loc ; ats_ptr_type atslab_gm1at_exp ; ats_ptr_type atslab_gm1at_pat ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_c1lau_loc ; ats_ptr_type atslab_c1lau_pat ; ats_ptr_type atslab_c1lau_gua ; ats_int_type atslab_c1lau_seq ; ats_int_type atslab_c1lau_neg ; ats_ptr_type atslab_c1lau_body ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_sc1lau_loc ; ats_ptr_type atslab_sc1lau_pat ; ats_ptr_type atslab_sc1lau_body ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_d1exp_loc ; ats_ptr_type atslab_d1exp_node ; } anairiats_rec_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_21 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_22 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_23 ; typedef struct { ats_ptr_type atslab_d1lab_loc ; ats_ptr_type atslab_d1lab_node ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_m1acdef_loc ; ats_ptr_type atslab_m1acdef_sym ; ats_ptr_type atslab_m1acdef_arg ; ats_ptr_type atslab_m1acdef_def ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_i1mpdec_loc ; ats_ptr_type atslab_i1mpdec_qid ; ats_ptr_type atslab_i1mpdec_tmparg ; ats_ptr_type atslab_i1mpdec_def ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_f1undec_loc ; ats_ptr_type atslab_f1undec_sym ; ats_ptr_type atslab_f1undec_sym_loc ; ats_ptr_type atslab_f1undec_def ; ats_ptr_type atslab_f1undec_ann ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_v1aldec_loc ; ats_ptr_type atslab_v1aldec_pat ; ats_ptr_type atslab_v1aldec_def ; ats_ptr_type atslab_v1aldec_ann ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_v1ardec_loc ; ats_int_type atslab_v1ardec_knd ; ats_ptr_type atslab_v1ardec_sym ; ats_ptr_type atslab_v1ardec_sym_loc ; ats_ptr_type atslab_v1ardec_pfat ; ats_ptr_type atslab_v1ardec_type ; ats_ptr_type atslab_v1ardec_init ; } anairiats_rec_29 ; typedef struct { ats_ptr_type atslab_d1ecl_loc ; ats_ptr_type atslab_d1ecl_node ; } anairiats_rec_30 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_31 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_32 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_33 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_34 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; 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_STRING_154) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALchar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALstring_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPintrep_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPchar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfloat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPv1al_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPnone_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPlist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany2_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tide_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tdqid_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tint_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tintrep_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_sta_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_dyn_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlist_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ttup_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlst_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfree_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tunfold_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trefas_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Texist_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tsvararg_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tann_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Terrpat_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eidextapp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Echar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Estring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ei0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ec0har_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ef0loat_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Es0tring_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etop_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecstsp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etyrep_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eliteral_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextfcall_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextmcall_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efoldat_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efreeat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etmpid_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhere_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_dyn_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_sta_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esing_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elist_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifhead_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esifhead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifcasehd_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecasehead_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Escasehead_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elst_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrsub_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrinit_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrpsz_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eptrof_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eviewat_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eselab_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eraise_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eeffmask_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evararg_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evcopyenv_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eshowtype_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etempenver_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esexparg_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eexist_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_dyn_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elaminit_dyn_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_met_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_ana_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_syn_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efix_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edelay_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efor_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhile_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eloopexn_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etrywith_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_type_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_effc_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_funclo_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacsyn_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacfun_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolassert_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolverify_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eerrexp_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpackname_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymintr_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymelim_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Coverload_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpdef_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpundef_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpragma_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ccodegen_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatsrts_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csrtdefs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacsts_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacons_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ctkindef_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csexpdefs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csaspdec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Creassume_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cexndecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatdecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cclassdec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextvar_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextcode_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdcstdecs_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cmacdefs_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cimpdec_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cfundecs_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvaldecs_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvardecs_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cinclude_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaload_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadnm_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadloc_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdynload_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clocal_36) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_gte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_e1xp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_c0har) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_s0tring) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_all) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ntm) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_exn) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ref) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_wrt) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any2) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_list) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_tup) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_errpat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_v1al) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_nil) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idextapp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sing) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_list) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tup) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_v1al) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_nil) ; /* internal function declarations */ static ats_void_type prerr_FILENAME_01854_ () ; static ats_ptr_type aux_ifany_19 (ats_ptr_type arg0) ; static ats_void_type prerr_error1_loc_01857_ (ats_ptr_type arg0) ; static ats_ptr_type aux_33 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_33_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_33_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxlst_34 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_34_closure_make (ats_ptr_type env0) ; static ats_ptr_type auxlst_34_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_38 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_38_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxlst_39 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_39_closure_make (ats_ptr_type env0) ; static ats_ptr_type auxlst_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_127 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_127_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_127_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxlst_128 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_128_closure_make (ats_ptr_type env0) ; static ats_ptr_type auxlst_128_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_131 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_131_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_131_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxlst_132 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_132_closure_make (ats_ptr_type env0) ; static ats_ptr_type auxlst_132_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp123) ; ATSstatic (ats_ptr_type, statmp124) ; ATSstatic (ats_ptr_type, statmp125) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 1491(line=38, offs=28) -- 1516(line=38, offs=53) */ ATSstaticdec() ats_void_type prerr_FILENAME_01854_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_01854_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_dynexp1")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_01854_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 1772(line=57, offs=11) -- 1823(line=59, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make: tmp1 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp1, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp1, atslab_p1at_node, arg1) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 1844(line=62, offs=10) -- 1894(line=64, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any: tmp3 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany_0) ; tmp2 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp2, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp2, atslab_p1at_node, tmp3) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 1915(line=66, offs=11) -- 1966(line=68, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any2: tmp5 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany2_1) ; tmp4 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp4, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp4, atslab_p1at_node, tmp5) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any2] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2008(line=73, offs=10) -- 2064(line=75, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ide (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ide: tmp7 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp7)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp7, atslab_0, arg1) ; tmp6 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp6, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp6, atslab_p1at_node, tmp7) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ide] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2085(line=77, offs=11) -- 2150(line=79, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_dqid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_dqid: tmp9 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp9)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp9, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp9, atslab_1, arg2) ; tmp8 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp8, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp8, atslab_p1at_node, tmp9) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_dqid] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2192(line=84, offs=10) -- 2246(line=86, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_int: tmp11 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp11)->tag = 4 ; ats_selptrset_mac(anairiats_sum_4, tmp11, atslab_0, arg1) ; tmp10 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp10, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp10, atslab_p1at_node, tmp11) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_int] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2269(line=88, offs=13) -- 2330(line=90, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_intrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_intrep: tmp13 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp13)->tag = 5 ; ats_selptrset_mac(anairiats_sum_2, tmp13, atslab_0, arg1) ; tmp12 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp12, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp12, atslab_p1at_node, tmp13) ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_intrep] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2351(line=92, offs=11) -- 2412(line=94, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_char (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_char: tmp15 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp15)->tag = 6 ; ats_selptrset_mac(anairiats_sum_5, tmp15, atslab_0, arg1) ; tmp14 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp14, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp14, atslab_p1at_node, tmp15) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_char] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2434(line=96, offs=12) -- 2494(line=98, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_float (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_float: tmp17 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp17)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp17, atslab_0, arg1) ; tmp16 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp16, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp16, atslab_p1at_node, tmp17) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_float] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2517(line=100, offs=13) -- 2578(line=102, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_string: tmp19 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp19)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp19, atslab_0, arg1) ; tmp18 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp18, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp18, atslab_p1at_node, tmp19) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_string] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2623(line=108, offs=3) -- 2678(line=110, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_i0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_i0nt: tmp21 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp21)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp21, atslab_0, arg1) ; tmp20 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp20, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp20, atslab_p1at_node, tmp21) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2723(line=113, offs=12) -- 2802(line=117, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_c0har (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_char_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_c0har: tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp23)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp1.dats: 2744(line=114, offs=7) -- 2774(line=114, offs=37)") ; } tmp24 = ats_caselptrlab_mac(anairiats_sum_5, tmp23, atslab_0) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_char (arg0, tmp24) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_c0har] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2849(line=120, offs=13) -- 2906(line=122, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_f0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_f0loat: tmp26 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp26)->tag = 10 ; ats_selptrset_mac(anairiats_sum_2, tmp26, atslab_0, arg1) ; tmp25 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp25, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp25, atslab_p1at_node, tmp26) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 2955(line=125, offs=14) -- 3042(line=129, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_s0tring (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_s0tring: tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp28)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp1.dats: 2976(line=126, offs=7) -- 3010(line=126, offs=41)") ; } tmp29 = ats_caselptrlab_mac(anairiats_sum_2, tmp28, atslab_0) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_string (arg0, tmp29) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 3111(line=134, offs=12) -- 3163(line=136, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_empty (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_empty: tmp31 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tempty_11) ; tmp30 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp30, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp30, atslab_p1at_node, tmp31) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_empty] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 3188(line=139, offs=14) -- 3297(line=144, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn: tmp33 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp33)->tag = 13 ; ats_selptrset_mac(anairiats_sum_7, tmp33, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp33, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp33, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_7, tmp33, atslab_3, arg4) ; tmp32 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp32, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp32, atslab_p1at_node, tmp33) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 3349(line=148, offs=3) -- 3425(line=150, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_sta (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_sta: tmp35 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp35)->tag = 12 ; ats_selptrset_mac(anairiats_sum_3, tmp35, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp35, atslab_1, arg2) ; tmp34 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp34, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp34, atslab_p1at_node, tmp35) ; return (tmp34) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_sta] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 3792(line=174, offs=5) -- 3911(line=180, offs=4) */ ATSstaticdec() ats_ptr_type aux_ifany_19 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab_aux_ifany_19: tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p1at_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp38)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp39 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p1at_loc) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any2 (tmp39) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp37 = arg0 ; break ; } while (0) ; return (tmp37) ; } /* end of [aux_ifany_19] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 3762(line=172, offs=3) -- 4349(line=199, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_list (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_int_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_list: tmp40 = atspre_gte_int_int (arg1, 0) ; if (tmp40) { tmp41 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp41)->tag = 14 ; ats_selptrset_mac(anairiats_sum_8, tmp41, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp41, atslab_1, arg2) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make (arg0, tmp41) ; } else { do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } tmp42 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ; if (tmp42 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_2_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; tmp44 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp43), atslab_p1at_node) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp44)->tag != 14) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_8, tmp44, atslab_0) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_tup (arg0, 0, tmp45, arg2) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp36 = aux_ifany_19 (tmp43) ; break ; } while (0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp46 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp46)->tag = 14 ; ats_selptrset_mac(anairiats_sum_8, tmp46, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp46, atslab_1, arg2) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make (arg0, tmp46) ; break ; } while (0) ; } /* end of [if] */ return (tmp36) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_list] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 4413(line=204, offs=10) -- 4493(line=206, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_tup (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_tup: tmp48 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp48)->tag = 15 ; ats_selptrset_mac(anairiats_sum_10, tmp48, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp48, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp48, atslab_2, arg3) ; tmp47 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp47, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp47, atslab_p1at_node, tmp48) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_tup] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 4513(line=208, offs=10) -- 4595(line=210, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_rec (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_rec: tmp50 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp50)->tag = 16 ; ats_selptrset_mac(anairiats_sum_10, tmp50, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp50, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp50, atslab_2, arg3) ; tmp49 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp49, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp49, atslab_p1at_node, tmp50) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_rec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 4615(line=212, offs=10) -- 4685(line=214, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_lst (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_lst: tmp52 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp52)->tag = 17 ; ats_selptrset_mac(anairiats_sum_8, tmp52, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp52, atslab_1, arg2) ; tmp51 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp51, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp51, atslab_p1at_node, tmp52) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_lst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 4707(line=217, offs=11) -- 4766(line=219, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_free (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_free: tmp54 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp54)->tag = 18 ; ats_selptrset_mac(anairiats_sum_2, tmp54, atslab_0, arg1) ; tmp53 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp53, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp53, atslab_p1at_node, tmp54) ; return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_free] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 4789(line=221, offs=13) -- 4850(line=223, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_unfold (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_unfold: tmp56 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp56)->tag = 19 ; ats_selptrset_mac(anairiats_sum_2, tmp56, atslab_0, arg1) ; tmp55 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp55, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp55, atslab_p1at_node, tmp56) ; return (tmp55) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_unfold] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 4873(line=226, offs=12) -- 4955(line=228, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_refas (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_refas: tmp58 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp58)->tag = 20 ; ats_selptrset_mac(anairiats_sum_11, tmp58, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp58, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp58, atslab_2, arg3) ; tmp57 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp57, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp57, atslab_p1at_node, tmp58) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_refas] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 4980(line=232, offs=3) -- 5050(line=234, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_exist (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_exist: tmp60 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp60)->tag = 21 ; ats_selptrset_mac(anairiats_sum_3, tmp60, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp60, atslab_1, arg2) ; tmp59 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp59, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp59, atslab_p1at_node, tmp60) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_exist] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 5075(line=237, offs=14) -- 5137(line=239, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_svararg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_svararg: tmp62 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp62)->tag = 22 ; ats_selptrset_mac(anairiats_sum_2, tmp62, atslab_0, arg1) ; tmp61 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp61, atslab_p1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp61, atslab_p1at_node, tmp62) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_svararg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 5160(line=243, offs=3) -- 5212(line=243, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ann (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ann: tmp64 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp64)->tag = 23 ; ats_selptrset_mac(anairiats_sum_3, tmp64, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp64, atslab_1, arg2) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make (arg0, tmp64) ; return (tmp63) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ann] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 5257(line=247, offs=13) -- 5294(line=247, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_errpat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_errpat: tmp66 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Terrpat_24) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make (arg0, tmp66) ; return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_errpat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 5340(line=252, offs=14) -- 5415(line=254, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_norm (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_norm: tmp68 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp68, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp68, atslab_1, arg2) ; tmp67 = ATS_MALLOC(sizeof(anairiats_rec_12)) ; ats_selptrset_mac(anairiats_rec_12, tmp67, atslab_labp1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_12, tmp67, atslab_labp1at_node, tmp68) ; return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_norm] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 5440(line=257, offs=14) -- 5501(line=259, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_omit (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_omit: tmp70 = (ats_sum_ptr_type)0 ; tmp69 = ATS_MALLOC(sizeof(anairiats_rec_12)) ; ats_selptrset_mac(anairiats_rec_12, tmp69, atslab_labp1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_12, tmp69, atslab_labp1at_node, tmp70) ; return (tmp69) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_omit] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1988(line=70, offs=17) -- 2046(line=73, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_01857_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; __ats_lab_prerr_error1_loc_01857_: /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp88 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp88) */ ; } /* end of [prerr_error1_loc_01857_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 5575(line=267, offs=5) -- 6625(line=318, offs=4) */ ATSstaticdec() ats_ptr_type aux_33 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_char_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; __ats_lab_aux_33: tmp73 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp73)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_2, tmp73, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ide (env0, tmp74) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp73)->tag != 1) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_4, tmp73, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_int (env0, tmp75) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp73)->tag != 2) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_2, tmp73, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_intrep (env0, tmp76) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp73)->tag != 3) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_5, tmp73, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_char (env0, tmp77) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp73)->tag != 4) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_2, tmp73, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_float (env0, tmp78) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp73)->tag != 5) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_2, tmp73, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_string (env0, tmp79) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp73)->tag != 9) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_11, tmp73, atslab_0) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_11, tmp73, atslab_2) ; tmp82 = aux_33 (env0, tmp80) ; tmp83 = auxlst_34 (env0, tmp81) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn (env0, tmp82, env0, -1, tmp83) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp73)->tag != 13) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_2, tmp73, atslab_0) ; tmp85 = auxlst_34 (env0, tmp84) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_list (env0, -1, tmp85) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp73)->tag != 6) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_2, tmp73, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_v1al (env0, tmp86) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp73)->tag != 7) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_empty (env0) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: /* tmp87 = */ prerr_error1_loc_01857_ (env0) ; /* tmp90 = */ atspre_prerr_string (ATSstrcst(": the expression [")) ; /* tmp91 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_e1xp (arg0) ; /* tmp92 = */ atspre_prerr_string (ATSstrcst("] cannot be translated into a legal pattern.")) ; /* tmp93 = */ atspre_prerr_newline () ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_errpat (env0) ; break ; } while (0) ; return (tmp72) ; } /* end of [aux_33] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_33_closure_type ; ats_ptr_type aux_33_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_33 (((aux_33_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_33_closure_init (aux_33_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_33_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_33_closure_make (ats_ptr_type env0) { aux_33_closure_type *p_clo = ATS_MALLOC(sizeof(aux_33_closure_type)) ; aux_33_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 6647(line=320, offs=5) -- 6789(line=324, offs=31) */ ATSstaticdec() ats_ptr_type auxlst_34 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; __ats_lab_auxlst_34: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp96 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp97 = aux_33 (env0, tmp95) ; tmp98 = auxlst_34 (env0, tmp96) ; tmp94 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp94, atslab_0, tmp97) ; ats_selptrset_mac(anairiats_sum_9, tmp94, atslab_1, tmp98) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp94 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp94) ; } /* end of [auxlst_34] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_34_closure_type ; ats_ptr_type auxlst_34_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return auxlst_34 (((auxlst_34_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type auxlst_34_closure_init (auxlst_34_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_34_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_34_closure_make (ats_ptr_type env0) { auxlst_34_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_34_closure_type)) ; auxlst_34_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 5551(line=265, offs=3) -- 6826(line=328, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_e1xp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_e1xp: tmp71 = aux_33 (arg0, arg1) ; return (tmp71) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 6903(line=334, offs=3) -- 7105(line=343, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_v1al (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_int_type, tmp100) ; ATSlocal (ats_char_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_v1al: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_int (arg0, tmp100) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp101 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_char (arg0, tmp101) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_string (arg0, tmp102) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_errpat (arg0) ; break ; } while (0) ; return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_v1al] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 7208(line=351, offs=5) -- 7710(line=365, offs=25) */ ATSstaticdec() ats_ptr_type aux_38 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_int_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_char_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab_aux_38: tmp105 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p1at_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp105)->tag != 2) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_2, tmp105, atslab_0) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide (env0, tmp106) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp105)->tag != 4) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_4, tmp105, atslab_0) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int (env0, tmp107) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp105)->tag != 5) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_2, tmp105, atslab_0) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep (env0, tmp108) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp105)->tag != 6) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_5, tmp105, atslab_0) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char (env0, tmp109) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp105)->tag != 13) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_7, tmp105, atslab_0) ; tmp111 = ats_caselptrlab_mac(anairiats_sum_7, tmp105, atslab_3) ; tmp112 = aux_38 (env0, tmp110) ; tmp113 = auxlst_39 (env0, tmp111) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (env0, tmp112, env0, tmp113) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp105)->tag != 14) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_8, tmp105, atslab_1) ; tmp115 = auxlst_39 (env0, tmp114) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list (env0, tmp115) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err (env0) ; break ; } while (0) ; return (tmp104) ; } /* end of [aux_38] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_38_closure_type ; ats_ptr_type aux_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_38 (((aux_38_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_38_closure_init (aux_38_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_38_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_38_closure_make (ats_ptr_type env0) { aux_38_closure_type *p_clo = ATS_MALLOC(sizeof(aux_38_closure_type)) ; aux_38_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 7737(line=368, offs=5) -- 7893(line=372, offs=31) */ ATSstaticdec() ats_ptr_type auxlst_39 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; __ats_lab_auxlst_39: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp119 = aux_38 (env0, tmp117) ; tmp120 = auxlst_39 (env0, tmp118) ; tmp116 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp116, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp116, atslab_1, tmp120) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp116 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp116) ; } /* end of [auxlst_39] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_39_closure_type ; ats_ptr_type auxlst_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return auxlst_39 (((auxlst_39_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type auxlst_39_closure_init (auxlst_39_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_39_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_39_closure_make (ats_ptr_type env0) { auxlst_39_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_39_closure_type)) ; auxlst_39_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 7182(line=349, offs=3) -- 7938(line=377, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_p1at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_p1at: tmp103 = aux_38 (arg0, arg1) ; return (tmp103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_p1at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 8011(line=382, offs=14) -- 8093(line=386, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvarg_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvarg_make: tmp121 = ATS_MALLOC(sizeof(anairiats_rec_14)) ; ats_selptrset_mac(anairiats_rec_14, tmp121, atslab_i1nvarg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_14, tmp121, atslab_i1nvarg_sym, arg1) ; ats_selptrset_mac(anairiats_rec_14, tmp121, atslab_i1nvarg_type, arg2) ; return (tmp121) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvarg_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 8150(line=390, offs=3) -- 8216(line=392, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_make: tmp122 = ATS_MALLOC(sizeof(anairiats_rec_0)) ; ats_selptrset_mac(anairiats_rec_0, tmp122, atslab_i1nvresstate_qua, arg0) ; ats_selptrset_mac(anairiats_rec_0, tmp122, atslab_i1nvresstate_arg, arg1) ; return (tmp122) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 8369(line=402, offs=15) -- 8505(line=410, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_make: tmp126 = ATS_MALLOC(sizeof(anairiats_rec_15)) ; ats_selptrset_mac(anairiats_rec_15, tmp126, atslab_loopi1nv_loc, arg0) ; ats_selptrset_mac(anairiats_rec_15, tmp126, atslab_loopi1nv_qua, arg1) ; ats_selptrset_mac(anairiats_rec_15, tmp126, atslab_loopi1nv_met, arg2) ; ats_selptrset_mac(anairiats_rec_15, tmp126, atslab_loopi1nv_arg, arg3) ; ats_selptrset_mac(anairiats_rec_15, tmp126, atslab_loopi1nv_res, arg4) ; return (tmp126) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 8558(line=414, offs=3) -- 8705(line=423, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_nil (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_nil: tmp128 = (ats_sum_ptr_type)0 ; tmp129 = (ats_sum_ptr_type)0 ; tmp130 = (ats_sum_ptr_type)0 ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_make (arg0, tmp128, tmp129, tmp130, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_nil) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_nil] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 8776(line=429, offs=3) -- 8853(line=431, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1fcl_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1fcl_make: tmp131 = ATS_MALLOC(sizeof(anairiats_rec_16)) ; ats_selptrset_mac(anairiats_rec_16, tmp131, atslab_i1fcl_loc, arg0) ; ats_selptrset_mac(anairiats_rec_16, tmp131, atslab_i1fcl_test, arg1) ; ats_selptrset_mac(anairiats_rec_16, tmp131, atslab_i1fcl_body, arg2) ; return (tmp131) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1fcl_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 8925(line=437, offs=3) -- 8998(line=439, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__gm1at_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__gm1at_make: tmp132 = ATS_MALLOC(sizeof(anairiats_rec_17)) ; ats_selptrset_mac(anairiats_rec_17, tmp132, atslab_gm1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_17, tmp132, atslab_gm1at_exp, arg1) ; ats_selptrset_mac(anairiats_rec_17, tmp132, atslab_gm1at_pat, arg2) ; return (tmp132) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__gm1at_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 9044(line=442, offs=12) -- 9192(line=451, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__c1lau_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__c1lau_make: tmp133 = ATS_MALLOC(sizeof(anairiats_rec_18)) ; ats_selptrset_mac(anairiats_rec_18, tmp133, atslab_c1lau_loc, arg0) ; ats_selptrset_mac(anairiats_rec_18, tmp133, atslab_c1lau_pat, arg1) ; ats_selptrset_mac(anairiats_rec_18, tmp133, atslab_c1lau_gua, arg2) ; ats_selptrset_mac(anairiats_rec_18, tmp133, atslab_c1lau_seq, arg3) ; ats_selptrset_mac(anairiats_rec_18, tmp133, atslab_c1lau_neg, arg4) ; ats_selptrset_mac(anairiats_rec_18, tmp133, atslab_c1lau_body, arg5) ; return (tmp133) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__c1lau_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 9239(line=454, offs=13) -- 9318(line=456, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__sc1lau_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__sc1lau_make: tmp134 = ATS_MALLOC(sizeof(anairiats_rec_19)) ; ats_selptrset_mac(anairiats_rec_19, tmp134, atslab_sc1lau_loc, arg0) ; ats_selptrset_mac(anairiats_rec_19, tmp134, atslab_sc1lau_pat, arg1) ; ats_selptrset_mac(anairiats_rec_19, tmp134, atslab_sc1lau_body, arg2) ; return (tmp134) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__sc1lau_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 9415(line=465, offs=12) -- 9468(line=467, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make: tmp135 = ATS_MALLOC(sizeof(anairiats_rec_20)) ; ats_selptrset_mac(anairiats_rec_20, tmp135, atslab_d1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_20, tmp135, atslab_d1exp_node, arg1) ; return (tmp135) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 9534(line=472, offs=11) -- 9575(line=472, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ide (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ide: tmp137 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp137)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp137, atslab_0, arg1) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp137) ; return (tmp136) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ide] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 9597(line=473, offs=22) -- 9628(line=473, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_opid (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_opid: tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ide (arg0, arg1) ; return (tmp138) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_opid] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 9652(line=476, offs=3) -- 9702(line=476, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid: tmp140 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp140)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp140, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp140, atslab_1, arg2) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp140) ; return (tmp139) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 9772(line=483, offs=3) -- 9818(line=483, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idext (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idext: tmp142 = (ats_sum_ptr_type)0 ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idextapp (arg0, arg1, tmp142) ; return (tmp141) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idext] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 9846(line=486, offs=3) -- 9902(line=486, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idextapp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idextapp: tmp144 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp144)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp144, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp144, atslab_1, arg2) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp144) ; return (tmp143) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idextapp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 9972(line=492, offs=11) -- 10015(line=492, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_int: tmp146 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp146)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp146, atslab_0, arg1) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp146) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_int] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10039(line=494, offs=14) -- 10085(line=494, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_intrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_intrep: tmp148 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp148)->tag = 4 ; ats_selptrset_mac(anairiats_sum_2, tmp148, atslab_0, arg1) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp148) ; return (tmp147) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_intrep] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10107(line=496, offs=12) -- 10152(line=496, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_char (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_char: tmp150 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp150)->tag = 6 ; ats_selptrset_mac(anairiats_sum_5, tmp150, atslab_0, arg1) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp150) ; return (tmp149) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_char] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10175(line=498, offs=13) -- 10218(line=498, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_float (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_float: tmp152 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp152)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp152, atslab_0, arg1) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp152) ; return (tmp151) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_float] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10242(line=500, offs=14) -- 10288(line=500, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_string: tmp154 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp154)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp154, atslab_0, arg1) ; tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp154) ; return (tmp153) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_string] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10332(line=505, offs=12) -- 10372(line=505, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_i0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_i0nt: tmp156 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp156)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp156, atslab_0, arg1) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp156) ; return (tmp155) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10395(line=507, offs=13) -- 10436(line=507, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_c0har (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_c0har: tmp158 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp158)->tag = 10 ; ats_selptrset_mac(anairiats_sum_2, tmp158, atslab_0, arg1) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp158) ; return (tmp157) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_c0har] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10460(line=509, offs=14) -- 10502(line=509, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_f0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_f0loat: tmp160 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp160)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp160, atslab_0, arg1) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp160) ; return (tmp159) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10527(line=511, offs=15) -- 10570(line=511, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_s0tring (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_s0tring: tmp162 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp162)->tag = 12 ; ats_selptrset_mac(anairiats_sum_2, tmp162, atslab_0, arg1) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp162) ; return (tmp161) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10619(line=517, offs=3) -- 10658(line=517, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_cstsp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_cstsp: tmp164 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp164)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp164, atslab_0, arg1) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp164) ; return (tmp163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_cstsp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10709(line=523, offs=3) -- 10752(line=523, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tyrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tyrep: tmp166 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp166)->tag = 16 ; ats_selptrset_mac(anairiats_sum_2, tmp166, atslab_0, arg1) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp166) ; return (tmp165) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tyrep] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10805(line=529, offs=3) -- 10850(line=529, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_literal (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_literal: tmp168 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp168)->tag = 17 ; ats_selptrset_mac(anairiats_sum_2, tmp168, atslab_0, arg1) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp168) ; return (tmp167) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_literal] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10896(line=534, offs=10) -- 10931(line=534, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_top (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_top: tmp170 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etop_13) ; tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp170) ; return (tmp169) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_top] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 10956(line=537, offs=12) -- 10993(line=537, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_empty (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_empty: tmp172 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eempty_14) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp172) ; return (tmp171) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_empty] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 11043(line=542, offs=14) -- 11107(line=543, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extval (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extval: tmp174 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp174)->tag = 18 ; ats_selptrset_mac(anairiats_sum_3, tmp174, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp174, atslab_1, arg2) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp174) ; return (tmp173) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extval] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 11136(line=546, offs=16) -- 11214(line=547, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extfcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extfcall: tmp176 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp176)->tag = 19 ; ats_selptrset_mac(anairiats_sum_11, tmp176, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp176, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp176, atslab_2, arg3) ; tmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp176) ; return (tmp175) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extfcall] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 11243(line=550, offs=16) -- 11333(line=551, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extmcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extmcall: tmp178 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ((ats_sum_ptr_type)tmp178)->tag = 20 ; ats_selptrset_mac(anairiats_sum_21, tmp178, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_21, tmp178, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_21, tmp178, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_21, tmp178, atslab_3, arg4) ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp178) ; return (tmp177) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extmcall] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 11381(line=556, offs=14) -- 11441(line=557, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_foldat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_foldat: tmp180 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp180)->tag = 21 ; ats_selptrset_mac(anairiats_sum_3, tmp180, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp180, atslab_1, arg2) ; tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp180) ; return (tmp179) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_foldat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 11465(line=559, offs=14) -- 11525(line=560, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_freeat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_freeat: tmp182 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp182)->tag = 22 ; ats_selptrset_mac(anairiats_sum_3, tmp182, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp182, atslab_1, arg2) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp182) ; return (tmp181) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_freeat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 11570(line=565, offs=13) -- 11633(line=566, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tmpid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tmpid: tmp184 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp184)->tag = 23 ; ats_selptrset_mac(anairiats_sum_3, tmp184, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp184, atslab_1, arg2) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp184) ; return (tmp183) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tmpid] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 11702(line=572, offs=11) -- 11760(line=573, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_let (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_let: tmp186 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp186)->tag = 24 ; ats_selptrset_mac(anairiats_sum_3, tmp186, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp186, atslab_1, arg2) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp186) ; return (tmp185) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_let] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 11786(line=576, offs=13) -- 11846(line=577, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_where (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_where: tmp188 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp188)->tag = 25 ; ats_selptrset_mac(anairiats_sum_3, tmp188, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp188, atslab_1, arg2) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp188) ; return (tmp187) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_where] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 11895(line=582, offs=15) -- 11955(line=583, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_sta (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_sta: tmp190 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp190)->tag = 28 ; ats_selptrset_mac(anairiats_sum_3, tmp190, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp190, atslab_1, arg2) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp190) ; return (tmp189) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_sta] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 12009(line=588, offs=3) -- 12097(line=589, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn: tmp192 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp192)->tag = 27 ; ats_selptrset_mac(anairiats_sum_7, tmp192, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp192, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp192, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_7, tmp192, atslab_3, arg4) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp192) ; return (tmp191) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 12171(line=596, offs=3) -- 12279(line=601, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sing (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sing: tmp194 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg1), atslab_d1exp_node) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp194)->tag != 0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp193 = arg1 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp195 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp195)->tag = 29 ; ats_selptrset_mac(anairiats_sum_2, tmp195, atslab_0, arg1) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp195) ; break ; } while (0) ; return (tmp193) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sing] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 12355(line=608, offs=3) -- 12878(line=632, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_list (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_bool_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_int_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_list: tmp197 = atspre_gte_int_int (arg1, 0) ; if (tmp197) { tmp198 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp198)->tag = 30 ; ats_selptrset_mac(anairiats_sum_8, tmp198, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp198, atslab_1, arg2) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp198) ; } else { do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } tmp199 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ; if (tmp199 != (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_34_1: tmp200 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; tmp201 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, tmp200), atslab_d1exp_node) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp201)->tag != 30) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_8, tmp201, atslab_0) ; tmp203 = ats_caselptrlab_mac(anairiats_sum_8, tmp201, atslab_1) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tup (arg0, 0, tmp202, tmp203) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sing (arg0, tmp200) ; break ; } while (0) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp204 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp204)->tag = 30 ; ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_1, arg2) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp204) ; break ; } while (0) ; } /* end of [if] */ return (tmp196) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_list] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 12949(line=638, offs=3) -- 13039(line=639, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifhead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifhead: tmp206 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ((ats_sum_ptr_type)tmp206)->tag = 31 ; ats_selptrset_mac(anairiats_sum_21, tmp206, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_21, tmp206, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_21, tmp206, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_21, tmp206, atslab_3, arg4) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp206) ; return (tmp205) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifhead] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 13092(line=644, offs=3) -- 13183(line=645, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sifhead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sifhead: tmp208 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ((ats_sum_ptr_type)tmp208)->tag = 32 ; ats_selptrset_mac(anairiats_sum_21, tmp208, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_21, tmp208, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_21, tmp208, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_21, tmp208, atslab_3, arg4) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp208) ; return (tmp207) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sifhead] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 13259(line=652, offs=3) -- 13323(line=653, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifcasehd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifcasehd: tmp210 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp210)->tag = 33 ; ats_selptrset_mac(anairiats_sum_3, tmp210, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp210, atslab_1, arg2) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp210) ; return (tmp209) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifcasehd] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 13400(line=660, offs=3) -- 13486(line=661, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_casehead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_casehead: tmp212 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ((ats_sum_ptr_type)tmp212)->tag = 34 ; ats_selptrset_mac(anairiats_sum_21, tmp212, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_21, tmp212, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_21, tmp212, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_21, tmp212, atslab_3, arg4) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp212) ; return (tmp211) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_casehead] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 13543(line=666, offs=3) -- 13618(line=667, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_scasehead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_scasehead: tmp214 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp214)->tag = 35 ; ats_selptrset_mac(anairiats_sum_11, tmp214, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp214, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp214, atslab_2, arg3) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp214) ; return (tmp213) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_scasehead] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 13689(line=673, offs=11) -- 13756(line=674, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lst (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lst: tmp216 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp216)->tag = 36 ; ats_selptrset_mac(anairiats_sum_22, tmp216, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp216, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp216, atslab_2, arg3) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp216) ; return (tmp215) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 13778(line=677, offs=11) -- 13845(line=678, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tup (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tup: tmp218 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp218)->tag = 37 ; ats_selptrset_mac(anairiats_sum_10, tmp218, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp218, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp218, atslab_2, arg3) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp218) ; return (tmp217) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tup] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 13867(line=681, offs=11) -- 13936(line=682, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_rec (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_rec: tmp220 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp220)->tag = 38 ; ats_selptrset_mac(anairiats_sum_10, tmp220, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp220, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp220, atslab_2, arg3) ; tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp220) ; return (tmp219) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_rec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 13958(line=685, offs=11) -- 14003(line=685, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq: tmp222 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp222)->tag = 39 ; ats_selptrset_mac(anairiats_sum_2, tmp222, atslab_0, arg1) ; tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp222) ; return (tmp221) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 14051(line=691, offs=3) -- 14127(line=692, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrsub (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrsub: tmp224 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp224)->tag = 40 ; ats_selptrset_mac(anairiats_sum_11, tmp224, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp224, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp224, atslab_2, arg3) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp224) ; return (tmp223) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrsub] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 14179(line=697, offs=3) -- 14237(line=698, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrpsz (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrpsz: tmp226 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp226)->tag = 42 ; ats_selptrset_mac(anairiats_sum_3, tmp226, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp226, atslab_1, arg2) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp226) ; return (tmp225) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrpsz] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 14290(line=703, offs=3) -- 14359(line=704, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrinit (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrinit: tmp228 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp228)->tag = 41 ; ats_selptrset_mac(anairiats_sum_11, tmp228, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp228, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp228, atslab_2, arg3) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp228) ; return (tmp227) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrinit] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 14432(line=711, offs=3) -- 14501(line=713, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_selab (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_selab: tmp230 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp230)->tag = 45 ; ats_selptrset_mac(anairiats_sum_22, tmp230, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp230, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp230, atslab_2, arg3) ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp230) ; return (tmp229) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_selab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 14576(line=720, offs=3) -- 14621(line=720, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ptrof (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ptrof: tmp232 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp232)->tag = 43 ; ats_selptrset_mac(anairiats_sum_2, tmp232, atslab_0, arg1) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp232) ; return (tmp231) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ptrof] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 14647(line=723, offs=3) -- 14693(line=723, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_viewat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_viewat: tmp234 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp234)->tag = 44 ; ats_selptrset_mac(anairiats_sum_2, tmp234, atslab_0, arg1) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp234) ; return (tmp233) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_viewat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 14744(line=729, offs=3) -- 14789(line=729, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_raise (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_raise: tmp236 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp236)->tag = 46 ; ats_selptrset_mac(anairiats_sum_2, tmp236, atslab_0, arg1) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp236) ; return (tmp235) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_raise] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 14842(line=735, offs=3) -- 14936(line=742, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask: tmp238 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp238)->tag = 47 ; ats_selptrset_mac(anairiats_sum_3, tmp238, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp238, atslab_1, arg2) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp238) ; return (tmp237) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 14999(line=746, offs=3) -- 15219(line=759, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask_arg (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask_arg: do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (arg1 != 0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ntm ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg1 != 1) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_exn ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg1 != 2) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ref ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg1 != 3) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_wrt ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_all ; break ; } while (0) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask (arg0, tmp240, arg2) ; return (tmp239) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask_arg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 15301(line=765, offs=3) -- 15349(line=766, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vararg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vararg: tmp242 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp242)->tag = 48 ; ats_selptrset_mac(anairiats_sum_2, tmp242, atslab_0, arg1) ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp242) ; return (tmp241) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vararg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 15403(line=772, offs=3) -- 15461(line=773, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vcopyenv (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vcopyenv: tmp244 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp244)->tag = 49 ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_1, arg2) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp244) ; return (tmp243) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vcopyenv] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 15515(line=779, offs=3) -- 15563(line=780, offs=36) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_showtype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_showtype: tmp246 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp246)->tag = 50 ; ats_selptrset_mac(anairiats_sum_2, tmp246, atslab_0, arg1) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp246) ; return (tmp245) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_showtype] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 15618(line=786, offs=3) -- 15667(line=787, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tempenver (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tempenver: tmp248 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp248)->tag = 51 ; ats_selptrset_mac(anairiats_sum_2, tmp248, atslab_0, arg1) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp248) ; return (tmp247) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tempenver] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 15718(line=793, offs=3) -- 15763(line=793, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sexparg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sexparg: tmp250 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp250)->tag = 52 ; ats_selptrset_mac(anairiats_sum_2, tmp250, atslab_0, arg1) ; tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp250) ; return (tmp249) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sexparg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 15815(line=798, offs=3) -- 15868(line=798, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_exist (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_exist: tmp252 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp252)->tag = 53 ; ats_selptrset_mac(anairiats_sum_3, tmp252, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp252, atslab_1, arg2) ; tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp252) ; return (tmp251) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_exist] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 15943(line=805, offs=3) -- 16011(line=806, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_dyn (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_dyn: tmp254 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp254)->tag = 54 ; ats_selptrset_mac(anairiats_sum_22, tmp254, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp254, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp254, atslab_2, arg3) ; tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp254) ; return (tmp253) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 16045(line=810, offs=3) -- 16117(line=811, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_laminit_dyn (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_laminit_dyn: tmp256 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp256)->tag = 55 ; ats_selptrset_mac(anairiats_sum_22, tmp256, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp256, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp256, atslab_2, arg3) ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp256) ; return (tmp255) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_laminit_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 16147(line=815, offs=3) -- 16225(line=816, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_met (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_met: tmp258 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp258)->tag = 56 ; ats_selptrset_mac(anairiats_sum_11, tmp258, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp258, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp258, atslab_2, arg3) ; tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp258) ; return (tmp257) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_met] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 16259(line=820, offs=3) -- 16339(line=821, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_ana (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_ana: tmp260 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp260)->tag = 57 ; ats_selptrset_mac(anairiats_sum_11, tmp260, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp260, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp260, atslab_2, arg3) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp260) ; return (tmp259) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_ana] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 16373(line=825, offs=3) -- 16455(line=826, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_syn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_syn: tmp262 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp262)->tag = 58 ; ats_selptrset_mac(anairiats_sum_11, tmp262, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp262, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp262, atslab_2, arg3) ; tmp261 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp262) ; return (tmp261) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_syn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 16504(line=832, offs=3) -- 16565(line=833, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_fix (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_fix: tmp264 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp264)->tag = 59 ; ats_selptrset_mac(anairiats_sum_22, tmp264, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp264, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp264, atslab_2, arg3) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp264) ; return (tmp263) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_fix] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 16616(line=839, offs=3) -- 16682(line=840, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_delay (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_delay: tmp266 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp266)->tag = 60 ; ats_selptrset_mac(anairiats_sum_8, tmp266, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp266, atslab_1, arg2) ; tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp266) ; return (tmp265) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_delay] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 16727(line=846, offs=1) -- 16827(line=852, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_for (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_for: tmp268 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ((ats_sum_ptr_type)tmp268)->tag = 61 ; ats_selptrset_mac(anairiats_sum_23, tmp268, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_23, tmp268, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_23, tmp268, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_23, tmp268, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_23, tmp268, atslab_4, arg5) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp268) ; return (tmp267) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_for] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 16881(line=858, offs=1) -- 16956(line=861, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_while (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_while: tmp270 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp270)->tag = 62 ; ats_selptrset_mac(anairiats_sum_11, tmp270, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp270, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp270, atslab_2, arg3) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp270) ; return (tmp269) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_while] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 17008(line=866, offs=3) -- 17055(line=866, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_loopexn (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_loopexn: tmp272 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp272)->tag = 63 ; ats_selptrset_mac(anairiats_sum_4, tmp272, atslab_0, arg1) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp272) ; return (tmp271) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_loopexn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 17130(line=873, offs=3) -- 17203(line=874, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_trywith (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_trywith: tmp274 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp274)->tag = 64 ; ats_selptrset_mac(anairiats_sum_11, tmp274, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp274, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp274, atslab_2, arg3) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp274) ; return (tmp273) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_trywith] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 17281(line=881, offs=3) -- 17341(line=882, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_type: tmp276 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp276)->tag = 65 ; ats_selptrset_mac(anairiats_sum_3, tmp276, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp276, atslab_1, arg2) ; tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp276) ; return (tmp275) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 17399(line=887, offs=3) -- 17459(line=888, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_effc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_effc: tmp278 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp278)->tag = 66 ; ats_selptrset_mac(anairiats_sum_3, tmp278, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp278, atslab_1, arg2) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp278) ; return (tmp277) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_effc] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 17492(line=892, offs=3) -- 17554(line=893, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo: tmp280 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp280)->tag = 67 ; ats_selptrset_mac(anairiats_sum_3, tmp280, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp280, atslab_1, arg2) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp280) ; return (tmp279) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 17591(line=897, offs=3) -- 17733(line=903, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo_opt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo_opt: tmp282 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg1), atslab_d1exp_node) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp282)->tag != 67) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp281 = arg1 ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo (arg0, arg1, arg2) ; break ; } while (0) ; return (tmp281) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo_opt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 17826(line=911, offs=3) -- 17883(line=912, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macsyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macsyn: tmp284 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp284)->tag = 68 ; ats_selptrset_mac(anairiats_sum_3, tmp284, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp284, atslab_1, arg2) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp284) ; return (tmp283) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macsyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 17912(line=916, offs=3) -- 17973(line=917, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macfun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macfun: tmp286 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp286)->tag = 69 ; ats_selptrset_mac(anairiats_sum_3, tmp286, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp286, atslab_1, arg2) ; tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp286) ; return (tmp285) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macfun] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 18028(line=923, offs=3) -- 18075(line=923, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solassert (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solassert: tmp288 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp288)->tag = 70 ; ats_selptrset_mac(anairiats_sum_2, tmp288, atslab_0, arg1) ; tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp288) ; return (tmp287) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solassert] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 18107(line=927, offs=3) -- 18154(line=927, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solverify (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solverify: tmp290 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp290)->tag = 71 ; ats_selptrset_mac(anairiats_sum_2, tmp290, atslab_0, arg1) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp290) ; return (tmp289) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solverify] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 18202(line=932, offs=14) -- 18239(line=932, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp: tmp292 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eerrexp_72) ; tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make (arg0, tmp292) ; return (tmp291) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 18286(line=936, offs=25) -- 18315(line=936, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labd1exp_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labd1exp_make: tmp293 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp293, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp293, atslab_1, arg1) ; return (tmp293) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labd1exp_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 18366(line=942, offs=3) -- 18627(line=953, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric: tmp295 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_d1exp_node) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp295)->tag != 56) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp294 = ats_true_bool ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp295)->tag != 54) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_22, tmp295, atslab_2) ; arg0 = tmp296 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric ; // tail call break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp295)->tag != 57) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp297 = ats_caselptrlab_mac(anairiats_sum_11, tmp295, atslab_2) ; arg0 = tmp297 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp295)->tag != 58) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp298 = ats_caselptrlab_mac(anairiats_sum_11, tmp295, atslab_2) ; arg0 = tmp298 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: __ats_lab_49_1: tmp294 = ats_false_bool ; break ; } while (0) ; return (tmp294) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 18730(line=961, offs=5) -- 19916(line=1017, offs=4) */ ATSstaticdec() ats_ptr_type aux_127 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_int_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_char_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; // ATSlocal_void (tmp317) ; // ATSlocal_void (tmp318) ; // ATSlocal_void (tmp319) ; __ats_lab_aux_127: tmp301 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp301)->tag != 0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp302 = ats_caselptrlab_mac(anairiats_sum_2, tmp301, atslab_0) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ide (env0, tmp302) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp301)->tag != 1) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp303 = ats_caselptrlab_mac(anairiats_sum_4, tmp301, atslab_0) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_int (env0, tmp303) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp301)->tag != 2) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_2, tmp301, atslab_0) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_intrep (env0, tmp304) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp301)->tag != 3) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp305 = ats_caselptrlab_mac(anairiats_sum_5, tmp301, atslab_0) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_char (env0, tmp305) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp301)->tag != 4) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_2, tmp301, atslab_0) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_float (env0, tmp306) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp301)->tag != 5) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp307 = ats_caselptrlab_mac(anairiats_sum_2, tmp301, atslab_0) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_string (env0, tmp307) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp301)->tag != 9) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_11, tmp301, atslab_0) ; tmp309 = ats_caselptrlab_mac(anairiats_sum_11, tmp301, atslab_2) ; tmp310 = aux_127 (env0, tmp308) ; tmp311 = auxlst_128 (env0, tmp309) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (env0, tmp310, env0, -1, tmp311) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp301)->tag != 13) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp312 = ats_caselptrlab_mac(anairiats_sum_2, tmp301, atslab_0) ; tmp313 = auxlst_128 (env0, tmp312) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_list (env0, -1, tmp313) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp301)->tag != 6) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_2, tmp301, atslab_0) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_v1al (env0, tmp314) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp301)->tag != 7) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_empty (env0) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: /* tmp315 = */ prerr_error1_loc_01857_ (env0) ; /* tmp316 = */ atspre_prerr_string (ATSstrcst(": the expression [")) ; /* tmp317 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_e1xp (arg0) ; /* tmp318 = */ atspre_prerr_string (ATSstrcst("] cannot be translated into a legal dynamic expression.")) ; /* tmp319 = */ atspre_prerr_newline () ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp (env0) ; break ; } while (0) ; return (tmp300) ; } /* end of [aux_127] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_127_closure_type ; ats_ptr_type aux_127_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_127 (((aux_127_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_127_closure_init (aux_127_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_127_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_127_closure_make (ats_ptr_type env0) { aux_127_closure_type *p_clo = ATS_MALLOC(sizeof(aux_127_closure_type)) ; aux_127_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 19938(line=1019, offs=5) -- 20081(line=1023, offs=31) */ ATSstaticdec() ats_ptr_type auxlst_128 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; __ats_lab_auxlst_128: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp321 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp322 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp323 = aux_127 (env0, tmp321) ; tmp324 = auxlst_128 (env0, tmp322) ; tmp320 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp320, atslab_0, tmp323) ; ats_selptrset_mac(anairiats_sum_9, tmp320, atslab_1, tmp324) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp320 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp320) ; } /* end of [auxlst_128] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_128_closure_type ; ats_ptr_type auxlst_128_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return auxlst_128 (((auxlst_128_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type auxlst_128_closure_init (auxlst_128_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_128_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_128_closure_make (ats_ptr_type env0) { auxlst_128_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_128_closure_type)) ; auxlst_128_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 18706(line=959, offs=3) -- 20118(line=1027, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_e1xp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp299) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_e1xp: tmp299 = aux_127 (arg0, arg1) ; return (tmp299) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 20197(line=1033, offs=3) -- 20403(line=1042, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_v1al (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_int_type, tmp326) ; ATSlocal (ats_char_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_v1al: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp326 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_int (arg0, tmp326) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp327 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_char (arg0, tmp327) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp328 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_string (arg0, tmp328) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp (arg0) ; break ; } while (0) ; return (tmp325) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_v1al] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 20508(line=1050, offs=5) -- 21295(line=1073, offs=43) */ ATSstaticdec() ats_ptr_type aux_131 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_int_type, tmp333) ; ATSlocal (ats_char_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; __ats_lab_aux_131: tmp331 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_d1exp_node) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp331)->tag != 0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp332 = ats_caselptrlab_mac(anairiats_sum_2, tmp331, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide (env0, tmp332) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp331)->tag != 3) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp333 = ats_caselptrlab_mac(anairiats_sum_4, tmp331, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int (env0, tmp333) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp331)->tag != 6) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp334 = ats_caselptrlab_mac(anairiats_sum_5, tmp331, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char (env0, tmp334) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp331)->tag != 8) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp335 = ats_caselptrlab_mac(anairiats_sum_2, tmp331, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (env0, tmp335) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp331)->tag != 7) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp336 = ats_caselptrlab_mac(anairiats_sum_2, tmp331, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float (env0, tmp336) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp331)->tag != 9) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_2, tmp331, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_i0nt (env0, tmp337) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp331)->tag != 10) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp338 = ats_caselptrlab_mac(anairiats_sum_2, tmp331, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_c0har (env0, tmp338) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp331)->tag != 12) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_2, tmp331, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_s0tring (env0, tmp339) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp331)->tag != 11) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp340 = ats_caselptrlab_mac(anairiats_sum_2, tmp331, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_f0loat (env0, tmp340) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp331)->tag != 27) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp341 = ats_caselptrlab_mac(anairiats_sum_7, tmp331, atslab_0) ; tmp342 = ats_caselptrlab_mac(anairiats_sum_7, tmp331, atslab_3) ; tmp343 = aux_131 (env0, tmp341) ; tmp344 = auxlst_132 (env0, tmp342) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (env0, tmp343, env0, tmp344) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp331)->tag != 29) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp345 = ats_caselptrlab_mac(anairiats_sum_2, tmp331, atslab_0) ; arg0 = tmp345 ; goto __ats_lab_aux_131 ; // tail call break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp331)->tag != 30) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp346 = ats_caselptrlab_mac(anairiats_sum_8, tmp331, atslab_1) ; tmp347 = auxlst_132 (env0, tmp346) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list (env0, tmp347) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: __ats_lab_79_1: tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err (env0) ; break ; } while (0) ; return (tmp330) ; } /* end of [aux_131] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_131_closure_type ; ats_ptr_type aux_131_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_131 (((aux_131_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_131_closure_init (aux_131_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_131_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_131_closure_make (ats_ptr_type env0) { aux_131_closure_type *p_clo = ATS_MALLOC(sizeof(aux_131_closure_type)) ; aux_131_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 21322(line=1076, offs=5) -- 21479(line=1080, offs=31) */ ATSstaticdec() ats_ptr_type auxlst_132 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; __ats_lab_auxlst_132: do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp349 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp350 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp351 = aux_131 (env0, tmp349) ; tmp352 = auxlst_132 (env0, tmp350) ; tmp348 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp348, atslab_0, tmp351) ; ats_selptrset_mac(anairiats_sum_9, tmp348, atslab_1, tmp352) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: tmp348 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp348) ; } /* end of [auxlst_132] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_132_closure_type ; ats_ptr_type auxlst_132_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return auxlst_132 (((auxlst_132_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type auxlst_132_closure_init (auxlst_132_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_132_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_132_closure_make (ats_ptr_type env0) { auxlst_132_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_132_closure_type)) ; auxlst_132_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 20482(line=1048, offs=3) -- 21524(line=1085, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_d1exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp329) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_d1exp: tmp329 = aux_131 (arg0, arg1) ; return (tmp329) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_d1exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 21595(line=1089, offs=21) -- 21655(line=1091, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_lab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_lab: tmp354 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp354)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp354, atslab_0, arg1) ; tmp353 = ATS_MALLOC(sizeof(anairiats_rec_24)) ; ats_selptrset_mac(anairiats_rec_24, tmp353, atslab_d1lab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_24, tmp353, atslab_d1lab_node, tmp354) ; return (tmp353) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_lab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 21676(line=1092, offs=21) -- 21736(line=1094, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_ind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_ind: tmp356 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp356)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp356, atslab_0, arg1) ; tmp355 = ATS_MALLOC(sizeof(anairiats_rec_24)) ; ats_selptrset_mac(anairiats_rec_24, tmp355, atslab_d1lab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_24, tmp355, atslab_d1lab_node, tmp356) ; return (tmp355) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_ind] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 21830(line=1104, offs=3) -- 21929(line=1107, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__m1acdef_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp357) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__m1acdef_make: tmp357 = ATS_MALLOC(sizeof(anairiats_rec_25)) ; ats_selptrset_mac(anairiats_rec_25, tmp357, atslab_m1acdef_loc, arg0) ; ats_selptrset_mac(anairiats_rec_25, tmp357, atslab_m1acdef_sym, arg1) ; ats_selptrset_mac(anairiats_rec_25, tmp357, atslab_m1acdef_arg, arg2) ; ats_selptrset_mac(anairiats_rec_25, tmp357, atslab_m1acdef_def, arg3) ; return (tmp357) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__m1acdef_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 22000(line=1112, offs=14) -- 22116(line=1119, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1mpdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp358) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1mpdec_make: tmp358 = ATS_MALLOC(sizeof(anairiats_rec_26)) ; ats_selptrset_mac(anairiats_rec_26, tmp358, atslab_i1mpdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_26, tmp358, atslab_i1mpdec_qid, arg1) ; ats_selptrset_mac(anairiats_rec_26, tmp358, atslab_i1mpdec_tmparg, arg2) ; ats_selptrset_mac(anairiats_rec_26, tmp358, atslab_i1mpdec_def, arg3) ; return (tmp358) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1mpdec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 22189(line=1125, offs=3) -- 22324(line=1131, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__f1undec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp359) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__f1undec_make: tmp359 = ATS_MALLOC(sizeof(anairiats_rec_27)) ; ats_selptrset_mac(anairiats_rec_27, tmp359, atslab_f1undec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_27, tmp359, atslab_f1undec_sym, arg1) ; ats_selptrset_mac(anairiats_rec_27, tmp359, atslab_f1undec_sym_loc, arg2) ; ats_selptrset_mac(anairiats_rec_27, tmp359, atslab_f1undec_def, arg3) ; ats_selptrset_mac(anairiats_rec_27, tmp359, atslab_f1undec_ann, arg4) ; return (tmp359) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__f1undec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 22376(line=1135, offs=3) -- 22479(line=1140, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1aldec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp360) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1aldec_make: tmp360 = ATS_MALLOC(sizeof(anairiats_rec_28)) ; ats_selptrset_mac(anairiats_rec_28, tmp360, atslab_v1aldec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_28, tmp360, atslab_v1aldec_pat, arg1) ; ats_selptrset_mac(anairiats_rec_28, tmp360, atslab_v1aldec_def, arg2) ; ats_selptrset_mac(anairiats_rec_28, tmp360, atslab_v1aldec_ann, arg3) ; return (tmp360) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1aldec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 22529(line=1144, offs=1) -- 22806(line=1154, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1ardec_make (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp361) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1ardec_make: tmp361 = ATS_MALLOC(sizeof(anairiats_rec_29)) ; ats_selptrset_mac(anairiats_rec_29, tmp361, atslab_v1ardec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_29, tmp361, atslab_v1ardec_knd, arg1) ; ats_selptrset_mac(anairiats_rec_29, tmp361, atslab_v1ardec_sym, arg2) ; ats_selptrset_mac(anairiats_rec_29, tmp361, atslab_v1ardec_sym_loc, arg3) ; ats_selptrset_mac(anairiats_rec_29, tmp361, atslab_v1ardec_pfat, arg4) ; ats_selptrset_mac(anairiats_rec_29, tmp361, atslab_v1ardec_type, arg5) ; ats_selptrset_mac(anairiats_rec_29, tmp361, atslab_v1ardec_init, arg6) ; return (tmp361) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1ardec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 22979(line=1166, offs=3) -- 23032(line=1168, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp362) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node: tmp362 = ATS_MALLOC(sizeof(anairiats_rec_30)) ; ats_selptrset_mac(anairiats_rec_30, tmp362, atslab_d1ecl_loc, arg0) ; ats_selptrset_mac(anairiats_rec_30, tmp362, atslab_d1ecl_node, arg1) ; return (tmp362) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23082(line=1174, offs=3) -- 23121(line=1174, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_none: tmp364 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cnone_0) ; tmp363 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp364) ; return (tmp363) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_none] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23148(line=1178, offs=3) -- 23193(line=1178, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_list (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_list: tmp366 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp366)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp366, atslab_0, arg1) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp366) ; return (tmp365) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_list] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23242(line=1183, offs=15) -- 23307(line=1184, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_packname (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_packname: tmp368 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp368)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp368, atslab_0, arg0) ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, tmp368) ; return (tmp367) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_packname] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23382(line=1190, offs=14) -- 23434(line=1191, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symintr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symintr: tmp370 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp370)->tag = 3 ; ats_selptrset_mac(anairiats_sum_2, tmp370, atslab_0, arg1) ; tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp370) ; return (tmp369) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symintr] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23461(line=1194, offs=14) -- 23514(line=1195, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symelim (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symelim: tmp372 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp372)->tag = 4 ; ats_selptrset_mac(anairiats_sum_2, tmp372, atslab_0, arg1) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp372) ; return (tmp371) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symelim] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23542(line=1198, offs=15) -- 23616(line=1199, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_overload (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_overload: tmp374 = ATS_MALLOC(sizeof(anairiats_sum_31)) ; ((ats_sum_ptr_type)tmp374)->tag = 5 ; ats_selptrset_mac(anairiats_sum_31, tmp374, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_31, tmp374, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_31, tmp374, atslab_2, arg3) ; tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp374) ; return (tmp373) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_overload] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23666(line=1204, offs=14) -- 23727(line=1205, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpdef (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpdef: tmp376 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp376)->tag = 6 ; ats_selptrset_mac(anairiats_sum_3, tmp376, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp376, atslab_1, arg2) ; tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp376) ; return (tmp375) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpdef] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23753(line=1207, offs=16) -- 23816(line=1208, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpundef (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpundef: tmp378 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp378)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp378, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp378, atslab_1, arg2) ; tmp377 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp378) ; return (tmp377) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpundef] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23865(line=1213, offs=13) -- 23921(line=1214, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_pragma (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_pragma: tmp380 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp380)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp380, atslab_0, arg1) ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp380) ; return (tmp379) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_pragma] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 23948(line=1217, offs=14) -- 24009(line=1218, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_codegen (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_codegen: tmp382 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp382)->tag = 9 ; ats_selptrset_mac(anairiats_sum_8, tmp382, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp382, atslab_1, arg2) ; tmp381 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp382) ; return (tmp381) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_codegen] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 24062(line=1224, offs=3) -- 24110(line=1224, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datsrts (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datsrts: tmp384 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp384)->tag = 10 ; ats_selptrset_mac(anairiats_sum_2, tmp384, atslab_0, arg1) ; tmp383 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp384) ; return (tmp383) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datsrts] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 24140(line=1228, offs=3) -- 24188(line=1228, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_srtdefs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_srtdefs: tmp386 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp386)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp386, atslab_0, arg1) ; tmp385 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp386) ; return (tmp385) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_srtdefs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 24241(line=1234, offs=3) -- 24289(line=1234, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacsts (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacsts: tmp388 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp388)->tag = 12 ; ats_selptrset_mac(anairiats_sum_2, tmp388, atslab_0, arg1) ; tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp388) ; return (tmp387) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacsts] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 24316(line=1237, offs=3) -- 24374(line=1237, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacons (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacons: tmp390 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp390)->tag = 13 ; ats_selptrset_mac(anairiats_sum_8, tmp390, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp390, atslab_1, arg2) ; tmp389 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp390) ; return (tmp389) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacons] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 24561(line=1253, offs=14) -- 24611(line=1254, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_tkindef (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_tkindef: tmp392 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp392)->tag = 14 ; ats_selptrset_mac(anairiats_sum_2, tmp392, atslab_0, arg1) ; tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp392) ; return (tmp391) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_tkindef] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 24662(line=1259, offs=15) -- 24724(line=1260, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_sexpdefs (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_sexpdefs: tmp394 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp394)->tag = 15 ; ats_selptrset_mac(anairiats_sum_8, tmp394, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp394, atslab_1, arg2) ; tmp393 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp394) ; return (tmp393) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_sexpdefs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 24774(line=1265, offs=14) -- 24822(line=1266, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_saspdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_saspdec: tmp396 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp396)->tag = 16 ; ats_selptrset_mac(anairiats_sum_2, tmp396, atslab_0, arg1) ; tmp395 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp396) ; return (tmp395) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_saspdec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 24853(line=1270, offs=15) -- 24902(line=1271, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_reassume (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_reassume: tmp398 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp398)->tag = 17 ; ats_selptrset_mac(anairiats_sum_2, tmp398, atslab_0, arg1) ; tmp397 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp398) ; return (tmp397) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_reassume] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 24952(line=1276, offs=14) -- 25006(line=1277, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_exndecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_exndecs: tmp400 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp400)->tag = 18 ; ats_selptrset_mac(anairiats_sum_2, tmp400, atslab_0, arg1) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp400) ; return (tmp399) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_exndecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 25062(line=1282, offs=3) -- 25152(line=1283, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datdecs (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datdecs: tmp402 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp402)->tag = 19 ; ats_selptrset_mac(anairiats_sum_22, tmp402, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp402, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp402, atslab_2, arg3) ; tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp402) ; return (tmp401) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datdecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 25229(line=1289, offs=16) -- 25290(line=1290, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_classdec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_classdec: tmp404 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp404)->tag = 20 ; ats_selptrset_mac(anairiats_sum_3, tmp404, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp404, atslab_1, arg2) ; tmp403 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp404) ; return (tmp403) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_classdec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 25338(line=1295, offs=14) -- 25403(line=1296, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype: tmp406 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp406)->tag = 21 ; ats_selptrset_mac(anairiats_sum_3, tmp406, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp406, atslab_1, arg2) ; tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp406) ; return (tmp405) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 25429(line=1299, offs=15) -- 25504(line=1300, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype2 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype2: tmp408 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp408)->tag = 22 ; ats_selptrset_mac(anairiats_sum_22, tmp408, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp408, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp408, atslab_2, arg3) ; tmp407 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp408) ; return (tmp407) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype2] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 25552(line=1305, offs=14) -- 25617(line=1306, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extvar: tmp410 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp410)->tag = 23 ; ats_selptrset_mac(anairiats_sum_3, tmp410, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp410, atslab_1, arg2) ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp410) ; return (tmp409) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extvar] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 25645(line=1309, offs=15) -- 25721(line=1310, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extcode (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extcode: tmp412 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp412)->tag = 24 ; ats_selptrset_mac(anairiats_sum_10, tmp412, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp412, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp412, atslab_2, arg3) ; tmp411 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp412) ; return (tmp411) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extcode] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 25771(line=1315, offs=16) -- 25856(line=1316, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dcstdecs (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dcstdecs: tmp414 = ATS_MALLOC(sizeof(anairiats_sum_32)) ; ((ats_sum_ptr_type)tmp414)->tag = 25 ; ats_selptrset_mac(anairiats_sum_32, tmp414, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_32, tmp414, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_32, tmp414, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_32, tmp414, atslab_3, arg4) ; tmp413 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp414) ; return (tmp413) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dcstdecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 25903(line=1321, offs=15) -- 25979(line=1322, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_macdefs (ats_ptr_type arg0, ats_int_type arg1, ats_bool_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_macdefs: tmp416 = ATS_MALLOC(sizeof(anairiats_sum_33)) ; ((ats_sum_ptr_type)tmp416)->tag = 26 ; ats_selptrset_mac(anairiats_sum_33, tmp416, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_33, tmp416, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_33, tmp416, atslab_2, arg3) ; tmp415 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp416) ; return (tmp415) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_macdefs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 26025(line=1327, offs=14) -- 26104(line=1328, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_impdec (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_impdec: tmp418 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp418)->tag = 27 ; ats_selptrset_mac(anairiats_sum_22, tmp418, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp418, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp418, atslab_2, arg3) ; tmp417 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp418) ; return (tmp417) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_impdec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 26151(line=1333, offs=15) -- 26227(line=1334, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_valdecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_valdecs: tmp420 = ATS_MALLOC(sizeof(anairiats_sum_34)) ; ((ats_sum_ptr_type)tmp420)->tag = 29 ; ats_selptrset_mac(anairiats_sum_34, tmp420, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_34, tmp420, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_34, tmp420, atslab_2, arg3) ; tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp420) ; return (tmp419) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_valdecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 26253(line=1337, offs=15) -- 26327(line=1338, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_fundecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_fundecs: tmp422 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp422)->tag = 28 ; ats_selptrset_mac(anairiats_sum_11, tmp422, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp422, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp422, atslab_2, arg3) ; tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp422) ; return (tmp421) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_fundecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 26355(line=1342, offs=3) -- 26415(line=1342, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_vardecs (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_vardecs: tmp424 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp424)->tag = 30 ; ats_selptrset_mac(anairiats_sum_8, tmp424, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp424, atslab_1, arg2) ; tmp423 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp424) ; return (tmp423) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_vardecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 26490(line=1349, offs=3) -- 26550(line=1349, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_include (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_include: tmp426 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp426)->tag = 31 ; ats_selptrset_mac(anairiats_sum_8, tmp426, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp426, atslab_1, arg2) ; tmp425 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp426) ; return (tmp425) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_include] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 26623(line=1356, offs=1) -- 26723(line=1359, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staload (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staload: tmp428 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp428)->tag = 32 ; ats_selptrset_mac(anairiats_sum_7, tmp428, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp428, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp428, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_7, tmp428, atslab_3, arg4) ; tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp428) ; return (tmp427) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staload] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 26777(line=1364, offs=1) -- 26855(line=1366, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadnm (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadnm: tmp430 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp430)->tag = 33 ; ats_selptrset_mac(anairiats_sum_3, tmp430, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp430, atslab_1, arg2) ; tmp429 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp430) ; return (tmp429) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadnm] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 26884(line=1370, offs=1) -- 26973(line=1372, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadloc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadloc: tmp432 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp432)->tag = 34 ; ats_selptrset_mac(anairiats_sum_11, tmp432, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp432, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp432, atslab_2, arg3) ; tmp431 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp432) ; return (tmp431) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadloc] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 27024(line=1378, offs=3) -- 27076(line=1378, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dynload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dynload: tmp434 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp434)->tag = 35 ; ats_selptrset_mac(anairiats_sum_2, tmp434, atslab_0, arg1) ; tmp433 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp434) ; return (tmp433) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dynload] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1.dats: 27125(line=1384, offs=1) -- 27205(line=1386, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_local (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_local: tmp436 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp436)->tag = 36 ; ats_selptrset_mac(anairiats_sum_3, tmp436, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp436, atslab_1, arg2) ; tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__d1ecl_make_node (arg0, tmp436) ; return (tmp435) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_local] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp123, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp124, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp125, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp124 = (ats_sum_ptr_type)0 ; statmp125 = (ats_sum_ptr_type)0 ; statmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_make (statmp124, statmp125) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_nil, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_nil = statmp123 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp1_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_svvar_dats.c0000644000175000017500000036202713431250607023346 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ typedef ats_ptr_type s2Var ; /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2Var_loc ; ats_int_type atslab_s2Var_cnt ; ats_ptr_type atslab_s2Var_srt ; ats_ptr_type atslab_s2Var_link ; ats_ptr_type atslab_s2Var_svar ; ats_ptr_type atslab_s2Var_szexp ; ats_ptr_type atslab_s2Var_sVarlst ; ats_ptr_type atslab_s2Var_lbs ; ats_ptr_type atslab_s2Var_ubs ; ats_int_type atslab_s2Var_stamp ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2VarBound_loc ; ats_ptr_type atslab_s2VarBound_val ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_5 ; typedef struct { ats_int_type atslab_0 ; s2Var atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_6 ; typedef struct { s2Var atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; 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_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEVar_4) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_ilte) (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_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imax) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_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_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__fprint_count) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2Var_stamp_make) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2Varset_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2Varset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2VarBound_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2Var_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_void_type auxins_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_clo_ptr_type auxins_21_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxins_21_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxins_23 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_clo_ptr_type auxins_23_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxins_23_clofun (ats_clo_ptr_type cloptr) ; static ats_int_type compare_elt_elt_03699_s2Var (s2Var arg0, s2Var arg1, ats_clo_ref_type arg2) ; static ats_int_type compare_elt_elt_03727_s2Var (s2Var arg0, s2Var arg1, ats_clo_ref_type arg2) ; static ats_ptr_type funset_make_nil_03700_ () ; static ats_ptr_type avltree_rrotate_04027_s2Var (s2Var arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type avltree_lrotate_04010_s2Var (s2Var arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type insert_38 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_38_closure_make (s2Var env0, ats_clo_ref_type env1) ; static ats_ptr_type insert_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_03709_s2Var (ats_ref_type arg0, s2Var arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_43 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_43_closure_make (s2Var env0, ats_clo_ref_type env1) ; static ats_bool_type aux_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type funset_is_member_03707_s2Var (ats_ptr_type arg0, s2Var arg1, ats_clo_ref_type arg2) ; static ats_ptr_type listize_46 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_listize_03724_s2Var (ats_ptr_type arg0) ; static ats_ptr_type linset_make_nil_03728_ () ; static ats_int_type avltree_height_04284_s2Var (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_04338_s2Var (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_04314_s2Var (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_51 (ats_clo_ref_type env0, ats_ref_type arg0, s2Var arg1) ; static ats_clo_ptr_type insert_51_closure_make (ats_clo_ref_type env0) ; static ats_bool_type insert_51_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, s2Var arg1) ; static ats_bool_type linset_insert_03737_s2Var (ats_ref_type arg0, s2Var arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_57 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_57_closure_make (s2Var env0, ats_clo_ref_type env1) ; static ats_bool_type aux_57_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type linset_is_member_03733_s2Var (ats_ptr_type arg0, s2Var arg1, ats_clo_ref_type arg2) ; static ats_void_type aux_60 (ats_ptr_type arg0) ; static ats_void_type linset_free_03735_s2Var (ats_ptr_type arg0) ; static ats_ptr_type aux_63 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_free_03753_s2Var (ats_ptr_type arg0) ; static ats_void_type aux_68 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_68_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_68_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_73 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp5 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp5) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 2568(line=96, offs=16) -- 3232(line=131, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2Var_stamp_make () ; tmp4 = ptr_alloc_01070_anairiats_rec_1 () ; tmp6 = ats_selsin_mac(tmp4, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_loc) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_cnt) = tmp2 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_srt) = arg1 ; tmp7 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_link) = tmp7 ; tmp8 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_svar) = tmp8 ; tmp9 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp9)->tag = 4 ; ats_selptrset_mac(anairiats_sum_2, tmp9, atslab_0, ats_castfn_mac(ats_ptr_type, tmp6)) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_szexp) = tmp9 ; tmp10 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_sVarlst) = ats_castfn_mac(ats_ptr_type, tmp10) ; tmp11 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_lbs) = tmp11 ; tmp12 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_ubs) = tmp12 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_stamp) = tmp3 ; tmp1 = atspre_ref_make_view_ptr (tmp6) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 3286(line=133, offs=26) -- 3981(line=166, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp0) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2Var_stamp_make () ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg1) ; tmp17 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; tmp18 = ats_selsin_mac(tmp17, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_loc) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_cnt) = tmp14 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_srt) = tmp16 ; tmp19 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_link) = tmp19 ; tmp20 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_svar) = tmp20 ; tmp21 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp21)->tag = 4 ; ats_selptrset_mac(anairiats_sum_2, tmp21, atslab_0, ats_castfn_mac(ats_ptr_type, tmp18)) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_szexp) = tmp21 ; tmp22 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_sVarlst) = ats_castfn_mac(ats_ptr_type, tmp22) ; tmp23 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_lbs) = tmp23 ; tmp24 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_ubs) = tmp24 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_stamp) = tmp15 ; tmp13 = atspre_ref_make_view_ptr (tmp18) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4055(line=171, offs=15) -- 4144(line=173, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt: tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp25 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp26), atslab_s2Var_cnt) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4196(line=176, offs=15) -- 4285(line=178, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt: tmp28 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp27 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp28), atslab_s2Var_srt) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4338(line=181, offs=16) -- 4415(line=183, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link: tmp30 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp29 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp30), atslab_s2Var_link) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4468(line=185, offs=16) -- 4559(line=187, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link: tmp32 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp32), atslab_s2Var_link) = arg1 ; return /* (tmp31) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4614(line=190, offs=17) -- 4692(line=192, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp: tmp34 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp33 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp34), atslab_s2Var_szexp) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4747(line=194, offs=17) -- 4839(line=196, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp: tmp36 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp36), atslab_s2Var_szexp) = arg1 ; return /* (tmp35) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4897(line=199, offs=19) -- 4999(line=203, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_sVarlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_sVarlst: tmp38 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp39 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp38), atslab_s2Var_sVarlst) ; tmp37 = ats_castfn_mac(ats_ptr_type, tmp39) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_sVarlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5058(line=205, offs=19) -- 5238(line=210, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst: tmp41 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp42 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp41), atslab_s2Var_sVarlst) ; tmp43 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp43, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp43, atslab_1, ats_castfn_mac(ats_ptr_type, tmp42)) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp41), atslab_s2Var_sVarlst) = ats_castfn_mac(ats_ptr_type, tmp43) ; return /* (tmp40) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5294(line=213, offs=15) -- 5370(line=215, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs: tmp45 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp44 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp45), atslab_s2Var_lbs) ; return (tmp44) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5421(line=217, offs=15) -- 5509(line=219, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs: tmp47 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp47), atslab_s2Var_lbs) = arg1 ; return /* (tmp46) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5560(line=221, offs=15) -- 5636(line=223, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs: tmp49 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp48 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp49), atslab_s2Var_ubs) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5687(line=225, offs=15) -- 5775(line=227, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs: tmp51 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp51), atslab_s2Var_ubs) = arg1 ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5829(line=230, offs=17) -- 5920(line=232, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp: tmp53 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp52 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp53), atslab_s2Var_stamp) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6027(line=240, offs=3) -- 6267(line=254, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst (tmp55, arg1) ; arg0 = tmp56 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst ; // tail call break ; } while (0) ; return /* (tmp54) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6491(line=269, offs=3) -- 6551(line=271, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make: tmp58 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp58, atslab_s2VarBound_loc, arg0) ; ats_selptrset_mac(anairiats_rec_4, tmp58, atslab_s2VarBound_val, arg1) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6613(line=273, offs=30) -- 6635(line=273, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_loc: tmp59 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s2VarBound_loc) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6665(line=274, offs=30) -- 6687(line=274, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_val (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_val: tmp60 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s2VarBound_val) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_val] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6790(line=285, offs=1) -- 6940(line=295, offs=4) */ ATSstaticdec() ats_void_type auxins_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { /* local vardec */ // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab_auxins_21: tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make (env0, env2) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs (env1) ; tmp64 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp64, atslab_0, tmp63) ; ats_selptrset_mac(anairiats_sum_3, tmp64, atslab_1, tmp65) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs (env1, tmp64) ; return /* (tmp62) */ ; } /* end of [auxins_21] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxins_21_closure_type ; ats_void_type auxins_21_clofun (ats_clo_ptr_type cloptr) { auxins_21 (((auxins_21_closure_type*)cloptr)->closure_env_0, ((auxins_21_closure_type*)cloptr)->closure_env_1, ((auxins_21_closure_type*)cloptr)->closure_env_2) ; return ; } /* end of function */ ATSinline() ats_void_type auxins_21_closure_init (auxins_21_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxins_21_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxins_21_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxins_21_closure_type *p_clo = ATS_MALLOC(sizeof(auxins_21_closure_type)) ; auxins_21_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6761(line=282, offs=3) -- 7082(line=306, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_lb_insert (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_bool_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_lb_insert: tmp66 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg2), atslab_s2exp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp66)->tag != 8) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_2, tmp66, atslab_0) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var (arg1, tmp67) ; if (!tmp68) { goto __ats_lab_3_1 ; } break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: /* tmp61 = */ auxins_21 (arg0, arg1, arg2) ; break ; } while (0) ; return /* (tmp61) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_lb_insert] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7169(line=313, offs=1) -- 7319(line=323, offs=4) */ ATSstaticdec() ats_void_type auxins_23 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { /* local vardec */ // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab_auxins_23: tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make (env0, env2) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs (env1) ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp72, atslab_0, tmp71) ; ats_selptrset_mac(anairiats_sum_3, tmp72, atslab_1, tmp73) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs (env1, tmp72) ; return /* (tmp70) */ ; } /* end of [auxins_23] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxins_23_closure_type ; ats_void_type auxins_23_clofun (ats_clo_ptr_type cloptr) { auxins_23 (((auxins_23_closure_type*)cloptr)->closure_env_0, ((auxins_23_closure_type*)cloptr)->closure_env_1, ((auxins_23_closure_type*)cloptr)->closure_env_2) ; return ; } /* end of function */ ATSinline() ats_void_type auxins_23_closure_init (auxins_23_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxins_23_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxins_23_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxins_23_closure_type *p_clo = ATS_MALLOC(sizeof(auxins_23_closure_type)) ; auxins_23_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7140(line=310, offs=3) -- 7461(line=334, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_ub_insert (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_bool_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_ub_insert: tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg2), atslab_s2exp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp74)->tag != 8) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_2, tmp74, atslab_0) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var (arg1, tmp75) ; if (!tmp76) { goto __ats_lab_5_1 ; } break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: /* tmp69 = */ auxins_23 (arg0, arg1, arg2) ; break ; } while (0) ; return /* (tmp69) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_ub_insert] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7538(line=339, offs=15) -- 7570(line=339, offs=47) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2Var_s2Var: tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (arg0, arg1) ; tmp77 = atspre_ilt (tmp78, 0) ; return (tmp77) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2Var_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7597(line=341, offs=16) -- 7630(line=341, offs=49) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2Var_s2Var: tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (arg0, arg1) ; tmp79 = atspre_ilte (tmp80, 0) ; return (tmp79) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2Var_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7659(line=344, offs=15) -- 7691(line=344, offs=47) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_int_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var: tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (arg0, arg1) ; tmp81 = atspre_ieq (tmp82, 0) ; return (tmp81) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7718(line=346, offs=16) -- 7751(line=346, offs=49) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_int_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2Var_s2Var: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (arg0, arg1) ; tmp83 = atspre_ineq (tmp84, 0) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2Var_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7786(line=349, offs=21) -- 8007(line=359, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp85) ; ATSlocal (ats_int_type, tmp86) ; ATSlocal (ats_int_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var: tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp (arg0) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp (arg1) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp86, tmp87) ; return (tmp85) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 8087(line=364, offs=14) -- 8311(line=373, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp88) ; ATSlocal (ats_int_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var: tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt (arg1) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__fprint_count (arg0, tmp89) ; return /* (tmp88) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 8360(line=376, offs=13) -- 8398(line=376, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Var (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Var: /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (stdout, arg0) ; return /* (tmp90) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 8421(line=378, offs=13) -- 8459(line=378, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Var (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Var: /* tmp91 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (stderr, arg0) ; return /* (tmp91) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9408(line=419, offs=29) -- 9474(line=420, offs=51) */ ATSstaticdec() ats_int_type compare_elt_elt_03699_s2Var (s2Var arg0, s2Var arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp92) ; __ats_lab_compare_elt_elt_03699_s2Var: tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp92) ; } /* end of [compare_elt_elt_03699_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9513(line=422, offs=29) -- 9579(line=423, offs=51) */ ATSstaticdec() ats_int_type compare_elt_elt_03727_s2Var (s2Var arg0, s2Var arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp93) ; __ats_lab_compare_elt_elt_03727_s2Var: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp93) ; } /* end of [compare_elt_elt_03727_s2Var] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 2749(line=94, offs=29) -- 2758(line=94, offs=38) */ ATSstaticdec() ats_ptr_type funset_make_nil_03700_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; __ats_lab_funset_make_nil_03700_: tmp95 = (ats_sum_ptr_type)0 ; return (tmp95) ; } /* end of [funset_make_nil_03700_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9630(line=428, offs=14) -- 9657(line=428, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil: tmp94 = funset_make_nil_03700_ () ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 5504(line=202, offs=46) -- 6164(line=224, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04027_s2Var (s2Var arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (s2Var, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_int_type, tmp120) ; ATSlocal (ats_int_type, tmp121) ; ATSlocal (ats_int_type, tmp122) ; ATSlocal (ats_int_type, tmp123) ; ATSlocal (ats_bool_type, tmp124) ; ATSlocal (ats_int_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_int_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (s2Var, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_int_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; ATSlocal (ats_int_type, tmp135) ; ATSlocal (ats_int_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_int_type, tmp138) ; ATSlocal (ats_int_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_int_type, tmp142) ; __ats_lab_avltree_rrotate_04027_s2Var: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp117 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_2) ; tmp119 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_3) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (tmp118 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_6, tmp118, atslab_0) ; tmp120 = tmp121 ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (tmp118 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp120 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp119 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_0) ; tmp122 = tmp123 ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp119 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp122 = 0 ; break ; } while (0) ; tmp125 = atspre_iadd (tmp120, 0) ; tmp124 = atspre_igte (tmp125, tmp122) ; if (tmp124) { tmp126 = atspre_iadd (tmp122, 1) ; tmp128 = atspre_imax (tmp120, tmp126) ; tmp127 = atspre_iadd (1, tmp128) ; tmp129 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_0, tmp126) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_2, tmp119) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_3, arg4) ; tmp116 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_0, tmp127) ; ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_1, tmp117) ; ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_2, tmp118) ; ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_3, tmp129) ; } else { // if (tmp119 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp130 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_1) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_2) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_3) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (tmp131 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_6, tmp131, atslab_0) ; tmp133 = tmp134 ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (tmp131 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp133 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (tmp132 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_6, tmp132, atslab_0) ; tmp135 = tmp136 ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (tmp132 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp135 = 0 ; break ; } while (0) ; tmp139 = atspre_imax (tmp120, tmp133) ; tmp138 = atspre_iadd (1, tmp139) ; tmp137 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp137, atslab_0, tmp138) ; ats_selptrset_mac(anairiats_sum_6, tmp137, atslab_1, tmp117) ; ats_selptrset_mac(anairiats_sum_6, tmp137, atslab_2, tmp118) ; ats_selptrset_mac(anairiats_sum_6, tmp137, atslab_3, tmp131) ; tmp142 = atspre_imax (tmp135, arg3) ; tmp141 = atspre_iadd (1, tmp142) ; tmp140 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp140, atslab_0, tmp141) ; ats_selptrset_mac(anairiats_sum_6, tmp140, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp140, atslab_2, tmp132) ; ats_selptrset_mac(anairiats_sum_6, tmp140, atslab_3, arg4) ; tmp116 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_1, tmp130) ; ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_2, tmp137) ; ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_3, tmp140) ; } /* end of [if] */ return (tmp116) ; } /* end of [avltree_rrotate_04027_s2Var] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4671(line=174, offs=46) -- 5362(line=196, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04010_s2Var (s2Var arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (s2Var, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_int_type, tmp157) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_int_type, tmp159) ; ATSlocal (ats_int_type, tmp160) ; ATSlocal (ats_bool_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; ATSlocal (ats_int_type, tmp163) ; ATSlocal (ats_int_type, tmp164) ; ATSlocal (ats_int_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (s2Var, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_int_type, tmp170) ; ATSlocal (ats_int_type, tmp171) ; ATSlocal (ats_int_type, tmp172) ; ATSlocal (ats_int_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_int_type, tmp175) ; ATSlocal (ats_int_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_int_type, tmp178) ; ATSlocal (ats_int_type, tmp179) ; __ats_lab_avltree_lrotate_04010_s2Var: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp154 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_1) ; tmp155 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_2) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_3) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (tmp155 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_6, tmp155, atslab_0) ; tmp157 = tmp158 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (tmp155 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp157 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (tmp156 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_6, tmp156, atslab_0) ; tmp159 = tmp160 ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (tmp156 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp159 = 0 ; break ; } while (0) ; tmp162 = atspre_iadd (tmp159, 0) ; tmp161 = atspre_ilte (tmp157, tmp162) ; if (tmp161) { tmp163 = atspre_iadd (tmp157, 1) ; tmp165 = atspre_imax (tmp163, tmp159) ; tmp164 = atspre_iadd (1, tmp165) ; tmp166 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_0, tmp163) ; ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_3, tmp155) ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_0, tmp164) ; ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_1, tmp154) ; ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_2, tmp166) ; ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_3, tmp156) ; } else { // if (tmp155 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp167 = ats_caselptrlab_mac(anairiats_sum_6, tmp155, atslab_1) ; tmp168 = ats_caselptrlab_mac(anairiats_sum_6, tmp155, atslab_2) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_6, tmp155, atslab_3) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp168 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp171 = ats_caselptrlab_mac(anairiats_sum_6, tmp168, atslab_0) ; tmp170 = tmp171 ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (tmp168 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp170 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (tmp169 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_6, tmp169, atslab_0) ; tmp172 = tmp173 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (tmp169 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp172 = 0 ; break ; } while (0) ; tmp176 = atspre_imax (arg1, tmp170) ; tmp175 = atspre_iadd (1, tmp176) ; tmp174 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_0, tmp175) ; ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_3, tmp168) ; tmp179 = atspre_imax (tmp172, tmp159) ; tmp178 = atspre_iadd (1, tmp179) ; tmp177 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp177, atslab_0, tmp178) ; ats_selptrset_mac(anairiats_sum_6, tmp177, atslab_1, tmp154) ; ats_selptrset_mac(anairiats_sum_6, tmp177, atslab_2, tmp169) ; ats_selptrset_mac(anairiats_sum_6, tmp177, atslab_3, tmp156) ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_1, tmp167) ; ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_2, tmp174) ; ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_3, tmp177) ; } /* end of [if] */ return (tmp153) ; } /* end of [avltree_lrotate_04010_s2Var] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6) */ ATSstaticdec() ats_ptr_type insert_38 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (s2Var, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_bool_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_int_type, tmp110) ; ATSlocal (ats_int_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; ATSlocal (ats_int_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_bool_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_int_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_int_type, tmp147) ; ATSlocal (ats_int_type, tmp148) ; ATSlocal (ats_bool_type, tmp149) ; ATSlocal (ats_int_type, tmp150) ; ATSlocal (ats_int_type, tmp151) ; ATSlocal (ats_int_type, tmp152) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab_insert_38: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_6_1: tmp101 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp102 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp104 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp105 = compare_elt_elt_03699_s2Var (env0, tmp102, env1) ; tmp106 = atspre_lt_int_int (tmp105, 0) ; if (tmp106) { tmp107 = insert_38 (env0, env1, tmp103, arg1) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (tmp107 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_6, tmp107, atslab_0) ; tmp108 = tmp109 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (tmp107 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp108 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (tmp104 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_6, tmp104, atslab_0) ; tmp110 = tmp111 ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (tmp104 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp110 = 0 ; break ; } while (0) ; tmp113 = atspre_isub (tmp108, tmp110) ; tmp112 = atspre_ilte (tmp113, 1) ; if (tmp112) { tmp115 = atspre_imax (tmp108, tmp110) ; tmp114 = atspre_iadd (1, tmp115) ; tmp100 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_0, tmp114) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_1, tmp102) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_2, tmp107) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_3, tmp104) ; } else { tmp100 = avltree_rrotate_04027_s2Var (tmp102, tmp108, tmp107, tmp110, tmp104) ; } /* end of [if] */ } else { tmp143 = atspre_gt_int_int (tmp105, 0) ; if (tmp143) { tmp144 = insert_38 (env0, env1, tmp104, arg1) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp103 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_6, tmp103, atslab_0) ; tmp145 = tmp146 ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (tmp103 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp145 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (tmp144 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_6, tmp144, atslab_0) ; tmp147 = tmp148 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp144 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp147 = 0 ; break ; } while (0) ; tmp150 = atspre_isub (tmp147, tmp145) ; tmp149 = atspre_ilte (tmp150, 1) ; if (tmp149) { tmp152 = atspre_imax (tmp145, tmp147) ; tmp151 = atspre_iadd (1, tmp152) ; tmp100 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_0, tmp151) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_1, tmp102) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_2, tmp103) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_3, tmp144) ; } else { tmp100 = avltree_lrotate_04010_s2Var (tmp102, tmp145, tmp103, tmp147, tmp144) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp100 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_0, tmp101) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_2, tmp103) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_3, tmp104) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp180 = (ats_sum_ptr_type)0 ; tmp181 = (ats_sum_ptr_type)0 ; tmp100 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_2, tmp180) ; ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_3, tmp181) ; break ; } while (0) ; return (tmp100) ; } /* end of [insert_38] */ typedef struct { ats_fun_ptr_type closure_fun ; s2Var closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_38_closure_type ; ats_ptr_type insert_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_38 (((insert_38_closure_type*)cloptr)->closure_env_0, ((insert_38_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_38_closure_init (insert_38_closure_type *p_clo, s2Var env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_38_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_38_closure_make (s2Var env0, ats_clo_ref_type env1) { insert_38_closure_type *p_clo = ATS_MALLOC(sizeof(insert_38_closure_type)) ; insert_38_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6244(line=230, offs=3) -- 7632(line=267, offs=2) */ ATSstaticdec() ats_bool_type funset_insert_03709_s2Var (ats_ref_type arg0, s2Var arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp99) ; ATSlocal (ats_bool_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab_funset_insert_03709_s2Var: /* ats_bool_type tmp182 ; */ tmp183 = insert_38 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp182)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp183 ; tmp99 = tmp182 ; return (tmp99) ; } /* end of [funset_insert_03709_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9684(line=432, offs=3) -- 9846(line=437, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add: /* ats_ptr_type tmp97 ; */ tmp97 = ats_castfn_mac(ats_ptr_type, arg0) ; tmp98 = funset_insert_03709_s2Var ((&tmp97), ats_castfn_mac(s2Var, arg1), 0) ; tmp96 = ats_castfn_mac(ats_ptr_type, tmp97) ; return (tmp96) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4143(line=153, offs=7) -- 4406(line=161, offs=20) */ ATSstaticdec() ats_bool_type aux_43 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp186) ; ATSlocal (s2Var, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_int_type, tmp190) ; ATSlocal (ats_bool_type, tmp191) ; ATSlocal (ats_bool_type, tmp192) ; __ats_lab_aux_43: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp190 = compare_elt_elt_03699_s2Var (env0, tmp187, env1) ; tmp191 = atspre_lt_int_int (tmp190, 0) ; if (tmp191) { arg0 = tmp188 ; goto __ats_lab_aux_43 ; // tail call } else { tmp192 = atspre_gt_int_int (tmp190, 0) ; if (tmp192) { arg0 = tmp189 ; goto __ats_lab_aux_43 ; // tail call } else { tmp186 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp186 = ats_false_bool ; break ; } while (0) ; return (tmp186) ; } /* end of [aux_43] */ typedef struct { ats_fun_ptr_type closure_fun ; s2Var closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_43_closure_type ; ats_bool_type aux_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_43 (((aux_43_closure_type*)cloptr)->closure_env_0, ((aux_43_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_43_closure_init (aux_43_closure_type *p_clo, s2Var env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_43_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_43_closure_make (s2Var env0, ats_clo_ref_type env1) { aux_43_closure_type *p_clo = ATS_MALLOC(sizeof(aux_43_closure_type)) ; aux_43_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4104(line=152, offs=3) -- 4426(line=163, offs=2) */ ATSstaticdec() ats_bool_type funset_is_member_03707_s2Var (ats_ptr_type arg0, s2Var arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp185) ; __ats_lab_funset_is_member_03707_s2Var: tmp185 = aux_43 (arg1, arg2, arg0) ; return (tmp185) ; } /* end of [funset_is_member_03707_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9900(line=441, offs=3) -- 10032(line=445, offs=2) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp184) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem: tmp184 = funset_is_member_03707_s2Var (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(s2Var, arg1), 0) ; return (tmp184) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20241(line=721, offs=7) -- 20545(line=732, offs=18) */ ATSstaticdec() ats_ptr_type listize_46 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (s2Var, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; __ats_lab_listize_46: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp198 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp199 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp200 = listize_46 (tmp199, arg1) ; tmp201 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp201, atslab_0, tmp197) ; ats_selptrset_mac(anairiats_sum_7, tmp201, atslab_1, tmp200) ; arg0 = tmp198 ; arg1 = tmp201 ; goto __ats_lab_listize_46 ; // tail call break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp196 = arg1 ; break ; } while (0) ; return (tmp196) ; } /* end of [listize_46] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20189(line=719, offs=16) -- 20605(line=736, offs=4) */ ATSstaticdec() ats_ptr_type funset_listize_03724_s2Var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab_funset_listize_03724_s2Var: tmp202 = (ats_sum_ptr_type)0 ; tmp195 = listize_46 (arg0, tmp202) ; return (tmp195) ; } /* end of [funset_listize_03724_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10092(line=448, offs=18) -- 10232(line=453, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize: tmp194 = funset_listize_03724_s2Var (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp193 = ats_castfn_mac(ats_ptr_type, tmp194) ; return (tmp193) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26) */ ATSstaticdec() ats_ptr_type linset_make_nil_03728_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; __ats_lab_linset_make_nil_03728_: tmp204 = (ats_sum_ptr_type)0 ; return (tmp204) ; } /* end of [linset_make_nil_03728_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10310(line=458, offs=17) -- 10337(line=458, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil: tmp203 = linset_make_nil_03728_ () ; return (tmp203) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54) */ ATSstaticdec() ats_int_type avltree_height_04284_s2Var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp219) ; ATSlocal (ats_int_type, tmp220) ; __ats_lab_avltree_height_04284_s2Var: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp220 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp219 = tmp220 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp219 = 0 ; break ; } while (0) ; return (tmp219) ; } /* end of [avltree_height_04284_s2Var] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04338_s2Var (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_int_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_int_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_bool_type, tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_int_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_int_type, tmp242) ; ATSlocal (ats_int_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_int_type, tmp252) ; ATSlocal (ats_int_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_int_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; __ats_lab_avltree_rrotate_04338_s2Var: tmp230 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp230 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp231 = &ats_caselptrlab_mac(anairiats_sum_6, tmp230, atslab_0) ; tmp232 = &ats_caselptrlab_mac(anairiats_sum_6, tmp230, atslab_2) ; tmp233 = &ats_caselptrlab_mac(anairiats_sum_6, tmp230, atslab_3) ; tmp235 = ats_ptrget_mac(ats_ptr_type, tmp232) ; tmp234 = avltree_height_04284_s2Var (tmp235) ; tmp237 = ats_ptrget_mac(ats_ptr_type, tmp233) ; tmp236 = avltree_height_04284_s2Var (tmp237) ; tmp239 = atspre_iadd (tmp234, 0) ; tmp238 = atspre_igte (tmp239, tmp236) ; if (tmp238) { tmp240 = atspre_iadd (tmp236, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp240 ; tmp241 = ats_ptrget_mac(ats_ptr_type, tmp233) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp241 ; tmp243 = atspre_imax (tmp234, tmp240) ; tmp242 = atspre_iadd (1, tmp243) ; ats_ptrget_mac(ats_int_type, tmp231) = tmp242 ; ats_ptrget_mac(ats_ptr_type, tmp233) = arg5 ; tmp229 = tmp230 ; } else { tmp244 = ats_ptrget_mac(ats_ptr_type, tmp233) ; // if (tmp244 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp245 = &ats_caselptrlab_mac(anairiats_sum_6, tmp244, atslab_0) ; tmp246 = &ats_caselptrlab_mac(anairiats_sum_6, tmp244, atslab_2) ; tmp247 = &ats_caselptrlab_mac(anairiats_sum_6, tmp244, atslab_3) ; tmp249 = ats_ptrget_mac(ats_ptr_type, tmp246) ; tmp248 = avltree_height_04284_s2Var (tmp249) ; tmp251 = ats_ptrget_mac(ats_ptr_type, tmp247) ; tmp250 = avltree_height_04284_s2Var (tmp251) ; tmp253 = atspre_imax (tmp250, arg3) ; tmp252 = atspre_iadd (1, tmp253) ; ats_ptrget_mac(ats_int_type, arg0) = tmp252 ; tmp254 = ats_ptrget_mac(ats_ptr_type, tmp247) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp254 ; tmp256 = atspre_imax (tmp234, tmp248) ; tmp255 = atspre_iadd (1, tmp256) ; ats_ptrget_mac(ats_int_type, tmp231) = tmp255 ; tmp257 = ats_ptrget_mac(ats_ptr_type, tmp246) ; ats_ptrget_mac(ats_ptr_type, tmp233) = tmp257 ; ats_ptrget_mac(ats_int_type, tmp245) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp246) = tmp230 ; ats_ptrget_mac(ats_ptr_type, tmp247) = arg5 ; tmp229 = tmp244 ; } /* end of [if] */ return (tmp229) ; } /* end of [avltree_rrotate_04338_s2Var] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04314_s2Var (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_int_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_int_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_bool_type, tmp278) ; ATSlocal (ats_int_type, tmp279) ; ATSlocal (ats_int_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_int_type, tmp282) ; ATSlocal (ats_int_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_int_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_int_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_int_type, tmp292) ; ATSlocal (ats_int_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_int_type, tmp295) ; ATSlocal (ats_int_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; __ats_lab_avltree_lrotate_04314_s2Var: tmp270 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp270 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp271 = &ats_caselptrlab_mac(anairiats_sum_6, tmp270, atslab_0) ; tmp272 = &ats_caselptrlab_mac(anairiats_sum_6, tmp270, atslab_2) ; tmp273 = &ats_caselptrlab_mac(anairiats_sum_6, tmp270, atslab_3) ; tmp275 = ats_ptrget_mac(ats_ptr_type, tmp272) ; tmp274 = avltree_height_04284_s2Var (tmp275) ; tmp277 = ats_ptrget_mac(ats_ptr_type, tmp273) ; tmp276 = avltree_height_04284_s2Var (tmp277) ; tmp279 = atspre_iadd (tmp276, 0) ; tmp278 = atspre_ilte (tmp274, tmp279) ; if (tmp278) { tmp280 = atspre_iadd (tmp274, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp280 ; tmp281 = ats_ptrget_mac(ats_ptr_type, tmp272) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp281 ; tmp283 = atspre_imax (tmp280, tmp276) ; tmp282 = atspre_iadd (1, tmp283) ; ats_ptrget_mac(ats_int_type, tmp271) = tmp282 ; ats_ptrget_mac(ats_ptr_type, tmp272) = arg5 ; tmp269 = tmp270 ; } else { tmp284 = ats_ptrget_mac(ats_ptr_type, tmp272) ; // if (tmp284 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp285 = &ats_caselptrlab_mac(anairiats_sum_6, tmp284, atslab_0) ; tmp286 = &ats_caselptrlab_mac(anairiats_sum_6, tmp284, atslab_2) ; tmp287 = &ats_caselptrlab_mac(anairiats_sum_6, tmp284, atslab_3) ; tmp289 = ats_ptrget_mac(ats_ptr_type, tmp286) ; tmp288 = avltree_height_04284_s2Var (tmp289) ; tmp291 = ats_ptrget_mac(ats_ptr_type, tmp287) ; tmp290 = avltree_height_04284_s2Var (tmp291) ; tmp293 = atspre_imax (arg1, tmp288) ; tmp292 = atspre_iadd (1, tmp293) ; ats_ptrget_mac(ats_int_type, arg0) = tmp292 ; tmp294 = ats_ptrget_mac(ats_ptr_type, tmp286) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp294 ; tmp296 = atspre_imax (tmp290, tmp276) ; tmp295 = atspre_iadd (1, tmp296) ; ats_ptrget_mac(ats_int_type, tmp271) = tmp295 ; tmp297 = ats_ptrget_mac(ats_ptr_type, tmp287) ; ats_ptrget_mac(ats_ptr_type, tmp272) = tmp297 ; ats_ptrget_mac(ats_int_type, tmp285) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp286) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp287) = tmp270 ; tmp269 = tmp284 ; } /* end of [if] */ return (tmp269) ; } /* end of [avltree_lrotate_04314_s2Var] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4) */ ATSstaticdec() ats_bool_type insert_51 (ats_clo_ref_type env0, ats_ref_type arg0, s2Var arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_int_type, tmp214) ; ATSlocal (s2Var, tmp215) ; ATSlocal (ats_bool_type, tmp216) ; ATSlocal (ats_bool_type, tmp217) ; ATSlocal (ats_int_type, tmp218) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_int_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_bool_type, tmp224) ; ATSlocal (ats_int_type, tmp225) ; ATSlocal (ats_int_type, tmp226) ; ATSlocal (ats_int_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_bool_type, tmp258) ; ATSlocal (ats_bool_type, tmp259) ; ATSlocal (ats_int_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_int_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_bool_type, tmp264) ; ATSlocal (ats_int_type, tmp265) ; ATSlocal (ats_int_type, tmp266) ; ATSlocal (ats_int_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; __ats_lab_insert_51: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_36_1: tmp210 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp211 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp212 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp213 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp215 = ats_ptrget_mac(s2Var, tmp211) ; tmp214 = compare_elt_elt_03727_s2Var (arg1, tmp215, env0) ; tmp216 = atspre_lt_int_int (tmp214, 0) ; if (tmp216) { tmp217 = insert_51 (env0, tmp212, arg1) ; tmp221 = ats_ptrget_mac(ats_ptr_type, tmp212) ; tmp218 = avltree_height_04284_s2Var (tmp221) ; tmp223 = ats_ptrget_mac(ats_ptr_type, tmp213) ; tmp222 = avltree_height_04284_s2Var (tmp223) ; tmp225 = atspre_isub (tmp218, tmp222) ; tmp224 = atspre_ilte (tmp225, 1) ; if (tmp224) { tmp227 = atspre_imax (tmp218, tmp222) ; tmp226 = atspre_iadd (1, tmp227) ; ats_ptrget_mac(ats_int_type, tmp210) = tmp226 ; tmp209 = tmp217 ; } else { tmp228 = avltree_rrotate_04338_s2Var (tmp210, tmp218, tmp212, tmp222, tmp213, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp228 ; tmp209 = tmp217 ; } /* end of [if] */ } else { tmp258 = atspre_gt_int_int (tmp214, 0) ; if (tmp258) { tmp259 = insert_51 (env0, tmp213, arg1) ; tmp261 = ats_ptrget_mac(ats_ptr_type, tmp212) ; tmp260 = avltree_height_04284_s2Var (tmp261) ; tmp263 = ats_ptrget_mac(ats_ptr_type, tmp213) ; tmp262 = avltree_height_04284_s2Var (tmp263) ; tmp265 = atspre_isub (tmp262, tmp260) ; tmp264 = atspre_ilte (tmp265, 1) ; if (tmp264) { tmp267 = atspre_imax (tmp260, tmp262) ; tmp266 = atspre_iadd (1, tmp267) ; ats_ptrget_mac(ats_int_type, tmp210) = tmp266 ; tmp209 = tmp259 ; } else { tmp268 = avltree_lrotate_04314_s2Var (tmp210, tmp260, tmp212, tmp262, tmp213, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp268 ; tmp209 = tmp259 ; } /* end of [if] */ } else { tmp209 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp299 = (ats_sum_ptr_type)0 ; tmp300 = (ats_sum_ptr_type)0 ; tmp298 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp298, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp298, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp298, atslab_2, tmp299) ; ats_selptrset_mac(anairiats_sum_6, tmp298, atslab_3, tmp300) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp298 ; tmp209 = ats_false_bool ; break ; } while (0) ; return (tmp209) ; } /* end of [insert_51] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } insert_51_closure_type ; ats_bool_type insert_51_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, s2Var arg1) { return insert_51 (((insert_51_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_51_closure_init (insert_51_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_51_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type insert_51_closure_make (ats_clo_ref_type env0) { insert_51_closure_type *p_clo = ATS_MALLOC(sizeof(insert_51_closure_type)) ; insert_51_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_03737_s2Var (ats_ref_type arg0, s2Var arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp208) ; __ats_lab_linset_insert_03737_s2Var: tmp208 = insert_51 (arg2, arg0, arg1) ; return (tmp208) ; } /* end of [linset_insert_03737_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10367(line=462, offs=3) -- 10535(line=467, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_bool_type, tmp207) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add: /* ats_ptr_type tmp206 ; */ tmp206 = ats_castfn_mac(ats_ptr_type, arg0) ; tmp207 = linset_insert_03737_s2Var ((&tmp206), ats_castfn_mac(s2Var, arg1), 0) ; tmp205 = ats_castfn_mac(ats_ptr_type, tmp206) ; return (tmp205) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3861(line=149, offs=7) -- 4231(line=160, offs=33) */ ATSstaticdec() ats_bool_type aux_57 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp303) ; ATSlocal (s2Var, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_int_type, tmp307) ; ATSlocal (ats_bool_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_bool_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; __ats_lab_aux_57: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp305 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp306 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp307 = compare_elt_elt_03727_s2Var (env0, tmp304, env1) ; tmp308 = atspre_lt_int_int (tmp307, 0) ; if (tmp308) { tmp309 = ats_ptrget_mac(ats_ptr_type, tmp305) ; arg0 = tmp309 ; goto __ats_lab_aux_57 ; // tail call } else { tmp310 = atspre_gt_int_int (tmp307, 0) ; if (tmp310) { tmp311 = ats_ptrget_mac(ats_ptr_type, tmp306) ; arg0 = tmp311 ; goto __ats_lab_aux_57 ; // tail call } else { tmp303 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp303 = ats_false_bool ; break ; } while (0) ; return (tmp303) ; } /* end of [aux_57] */ typedef struct { ats_fun_ptr_type closure_fun ; s2Var closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_57_closure_type ; ats_bool_type aux_57_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_57 (((aux_57_closure_type*)cloptr)->closure_env_0, ((aux_57_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_57_closure_init (aux_57_closure_type *p_clo, s2Var env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_57_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_57_closure_make (s2Var env0, ats_clo_ref_type env1) { aux_57_closure_type *p_clo = ATS_MALLOC(sizeof(aux_57_closure_type)) ; aux_57_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3822(line=148, offs=3) -- 4251(line=162, offs=2) */ ATSstaticdec() ats_bool_type linset_is_member_03733_s2Var (ats_ptr_type arg0, s2Var arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp302) ; __ats_lab_linset_is_member_03733_s2Var: tmp302 = aux_57 (arg1, arg2, arg0) ; return (tmp302) ; } /* end of [linset_is_member_03733_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10595(line=471, offs=3) -- 10783(line=477, offs=2) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_ismem (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp301) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_ismem: tmp301 = linset_is_member_03733_s2Var (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(s2Var, arg1), 0) ; return (tmp301) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_ismem] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18) */ ATSstaticdec() ats_void_type aux_60 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; // ATSlocal_void (tmp317) ; __ats_lab_aux_60: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp315 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp316 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; ATS_FREE(arg0) ; /* tmp317 = */ aux_60 (tmp315) ; arg0 = tmp316 ; goto __ats_lab_aux_60 ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: break ; } while (0) ; return /* (tmp314) */ ; } /* end of [aux_60] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4410(line=170, offs=13) -- 4591(line=179, offs=4) */ ATSstaticdec() ats_void_type linset_free_03735_s2Var (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp313) ; __ats_lab_linset_free_03735_s2Var: /* tmp313 = */ aux_60 (arg0) ; return /* (tmp313) */ ; } /* end of [linset_free_03735_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10841(line=480, offs=17) -- 10893(line=481, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp312) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_free: /* tmp312 = */ linset_free_03735_s2Var (ats_castfn_mac(ats_ptr_type, arg0)) ; return /* (tmp312) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19) */ ATSstaticdec() ats_ptr_type aux_63 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (s2Var, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; __ats_lab_aux_63: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp322 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp323 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp324 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; ATS_FREE(arg0) ; tmp325 = aux_63 (tmp324, arg1) ; tmp326 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp326, atslab_0, tmp322) ; ats_selptrset_mac(anairiats_sum_7, tmp326, atslab_1, tmp325) ; arg0 = tmp323 ; arg1 = tmp326 ; goto __ats_lab_aux_63 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp321 = arg1 ; break ; } while (0) ; return (tmp321) ; } /* end of [aux_63] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_free_03753_s2Var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp327) ; __ats_lab_linset_listize_free_03753_s2Var: tmp327 = (ats_sum_ptr_type)0 ; tmp320 = aux_63 (arg0, tmp327) ; return (tmp320) ; } /* end of [linset_listize_free_03753_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10934(line=485, offs=3) -- 11082(line=490, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_listize_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_listize_free: tmp319 = linset_listize_free_03753_s2Var (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp318 = ats_castfn_mac(ats_ptr_type, tmp319) ; return (tmp318) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_listize_free] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11190(line=497, offs=16) -- 11229(line=497, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp328) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varlst: /* tmp328 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst (stdout, arg0) ; return /* (tmp328) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11255(line=499, offs=16) -- 11294(line=499, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp329) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varlst: /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst (stderr, arg0) ; return /* (tmp329) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varlst] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_68 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; // ATSlocal_void (tmp335) ; ATSlocal (ats_bool_type, tmp336) ; // ATSlocal_void (tmp337) ; ATSlocal (ats_int_type, tmp338) ; __ats_lab_aux_68: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp333 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp334 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp336 = atspre_gt_int_int (arg1, 0) ; if (tmp336) { /* tmp335 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp337 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp333) ; tmp338 = atspre_add_int_int (arg1, 1) ; arg0 = tmp334 ; arg1 = tmp338 ; goto __ats_lab_aux_68 ; // tail call break ; } while (0) ; return /* (tmp332) */ ; } /* end of [aux_68] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_68_closure_type ; ats_void_type aux_68_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_68 (((aux_68_closure_type*)cloptr)->closure_env_0, ((aux_68_closure_type*)cloptr)->closure_env_1, ((aux_68_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_68_closure_init (aux_68_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_68_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_68_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_68_closure_type *p_clo = ATS_MALLOC(sizeof(aux_68_closure_type)) ; aux_68_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp331) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp331 = */ aux_68 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp331) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11324(line=503, offs=3) -- 11379(line=503, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp330) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst: /* tmp330 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var) ; return /* (tmp330) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11455(line=509, offs=16) -- 11494(line=509, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varset (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp339) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varset: /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset (stdout, arg0) ; return /* (tmp339) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varset] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11520(line=511, offs=16) -- 11559(line=511, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varset (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp340) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varset: /* tmp340 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset (stderr, arg0) ; return /* (tmp340) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varset] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_73 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; __ats_lab_loop_73: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp348 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp348 ; goto __ats_lab_loop_73 ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: break ; } while (0) ; return /* (tmp347) */ ; } /* end of [loop_73] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp346) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp346 = */ loop_73 (arg0) ; return /* (tmp346) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11589(line=515, offs=3) -- 11801(line=521, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; // ATSlocal_void (tmp343) ; // ATSlocal_void (tmp344) ; // ATSlocal_void (tmp345) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset: tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize (arg1) ; /* tmp343 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp344 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst (arg0, ats_castfn_mac(ats_ptr_type, tmp342)) ; /* tmp345 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp341 = */ list_vt_free_01499_ats_ptr_type (tmp342) ; return /* (tmp341) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_svvar_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_fixity_prec_dats.c0000644000175000017500000003532513431250607023062 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOClft_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCrgt_2) ; /* external dynamic constant declarations */ 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_bool_type, atspre_lte_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_int_type, atspre_compare_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ptrof_prec_dyn) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prec_make_int) (ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__sasp__prec_t0ype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__neginf_prec) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__posinf_prec) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__backslash_prec) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__infixtemp_prec) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exi_prec_sta) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__uni_prec_sta) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__delay_prec_dyn) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exist_prec_dyn) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ptrof_prec_dyn) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__addrat_prec_dyn) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__foldat_prec_dyn) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__freeat_prec_dyn) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__viewat_prec_dyn) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__invar_prec_sta) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmark_prec_sta) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmarkbang_prec_sta) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__trans_prec_sta) ; ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__deref_prec_dyn) ; /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_int_type, statmp1) ; ATSstatic (ats_int_type, statmp2) ; ATSstatic (ats_int_type, statmp3) ; ATSstatic (ats_int_type, statmp4) ; ATSstatic (ats_int_type, statmp5) ; ATSstatic (ats_int_type, statmp6) ; ATSstatic (ats_int_type, statmp7) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_fixity_prec.dats: 1468(line=41, offs=14) -- 1644(line=45, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_assoc (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_assoc: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("ASSOCnon")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("ASSOClft")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("ASSOCrgt")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_assoc] */ /* // /tmp/ATS-Postiats/src/pats_fixity_prec.dats: 3065(line=116, offs=23) -- 3072(line=116, offs=30) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__int_of_prec (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__int_of_prec: tmp8 = arg0 ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__int_of_prec] */ /* // /tmp/ATS-Postiats/src/pats_fixity_prec.dats: 3098(line=119, offs=15) -- 3195(line=122, offs=11) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prec_make_int (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_bool_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prec_make_int: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp10 = atspre_lte_int_int (arg0, -1000000) ; if (!tmp10) { goto __ats_lab_4_1 ; } tmp9 = -1000000 ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp11 = atspre_gte_int_int (arg0, 1000000) ; if (!tmp11) { goto __ats_lab_5_1 ; } tmp9 = 1000000 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp9 = arg0 ; break ; } while (0) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prec_make_int] */ /* // /tmp/ATS-Postiats/src/pats_fixity_prec.dats: 3269(line=127, offs=26) -- 3298(line=127, offs=55) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_inc (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_inc: tmp13 = atspre_add_int_int (arg0, arg1) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prec_make_int (tmp13) ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_inc] */ /* // /tmp/ATS-Postiats/src/pats_fixity_prec.dats: 3325(line=128, offs=26) -- 3354(line=128, offs=55) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_dec (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_dec: tmp15 = atspre_sub_int_int (arg0, arg1) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prec_make_int (tmp15) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_dec] */ /* // /tmp/ATS-Postiats/src/pats_fixity_prec.dats: 3406(line=132, offs=29) -- 3441(line=132, offs=64) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__compare_prec_prec (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__compare_prec_prec: tmp16 = atspre_compare_int_int (arg0, arg1) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__compare_prec_prec] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_int_type)) ; ATS_GC_MARKROOT(&statmp2, sizeof(ats_int_type)) ; ATS_GC_MARKROOT(&statmp3, sizeof(ats_int_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_int_type)) ; ATS_GC_MARKROOT(&statmp5, sizeof(ats_int_type)) ; ATS_GC_MARKROOT(&statmp6, sizeof(ats_int_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_int_type)) ; /* marking external values for GC */ /* code for dynamic loading */ ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__neginf_prec, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__neginf_prec = -1000000 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__posinf_prec, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__posinf_prec = 1000000 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec = 70 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec = 80 ; statmp1 = atspre_add_int_int (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__backslash_prec, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__backslash_prec = statmp1 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__infixtemp_prec, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__infixtemp_prec = 0 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exi_prec_sta, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exi_prec_sta = 0 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__uni_prec_sta, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__uni_prec_sta = 0 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__delay_prec_dyn, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__delay_prec_dyn = 0 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exist_prec_dyn, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exist_prec_dyn = 0 ; statmp2 = atspre_sub_int_int (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ptrof_prec_dyn, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ptrof_prec_dyn = statmp2 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__addrat_prec_dyn, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__addrat_prec_dyn = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ptrof_prec_dyn ; statmp3 = atspre_sub_int_int (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__foldat_prec_dyn, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__foldat_prec_dyn = statmp3 ; statmp4 = atspre_sub_int_int (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__freeat_prec_dyn, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__freeat_prec_dyn = statmp4 ; statmp5 = atspre_sub_int_int (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__viewat_prec_dyn, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__viewat_prec_dyn = statmp5 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__invar_prec_sta, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__invar_prec_sta = 1 ; statmp6 = atspre_sub_int_int (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmark_prec_sta, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmark_prec_sta = statmp6 ; statmp7 = atspre_sub_int_int (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmarkbang_prec_sta, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmarkbang_prec_sta = statmp7 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__trans_prec_sta, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__trans_prec_sta = 0 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__deref_prec_dyn, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__deref_prec_dyn = 100 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_fixity_prec_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lintprgm_myint_dats.c0000644000175000017500000005061713431250607023612 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 "libc/CATS/gmp.cats" #include "pats_location.cats" /* external codes at top */ #include "pats_lintprgm_myint.cats" /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atslib_mpz_neg1) (ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_add2_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_sub2_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_mul2_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_fprint_mpz) (ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type fprint_myint_02243_gmpknd (ats_ptr_type arg0, gmpknd arg1) ; static ats_void_type print_myint_02244_gmpknd (gmpknd arg0) ; static ats_void_type prerr_myint_02245_gmpknd (gmpknd arg0) ; static gmpknd myint_make_int_02246_gmpknd (ats_int_type arg0) ; static gmpknd myint_make_intinf_02247_gmpknd (ats_ptr_type arg0) ; static gmpknd myint_copy_02249_gmpknd (gmpknd arg0) ; static ats_void_type myint_free_02248_gmpknd (gmpknd arg0) ; static gmpknd neg_myint_02250_gmpknd (gmpknd arg0) ; static gmpknd neg1_myint_02251_gmpknd (gmpknd arg0) ; static gmpknd add01_myint_myint_02253_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd sub01_myint_myint_02254_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd add_myint_int_02252_gmpknd (gmpknd arg0, ats_int_type arg1) ; static gmpknd mul01_myint_myint_02255_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd mul10_myint_myint_02256_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd mul11_myint_myint_02257_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd div01_myint_myint_02258_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd ediv01_myint_myint_02260_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd mod01_myint_myint_02261_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd mod11_myint_myint_02262_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd gcd01_myint_myint_02263_gmpknd (gmpknd arg0, gmpknd arg1) ; static ats_int_type compare_myint_int_02270_gmpknd (gmpknd arg0, ats_int_type arg1) ; static ats_int_type compare_myint_myint_02275_gmpknd (gmpknd arg0, gmpknd arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2251(line=82, offs=3) -- 2419(line=90, offs=4) */ ATSstaticdec() ats_void_type fprint_myint_02243_gmpknd (ats_ptr_type arg0, gmpknd arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_fprint_myint_02243_gmpknd: tmp1 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp0 = */ atslib_fprint_mpz (arg0, tmp1) ; return /* (tmp0) */ ; } /* end of [fprint_myint_02243_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2486(line=93, offs=21) -- 2528(line=93, offs=63) */ ATSstaticdec() ats_void_type print_myint_02244_gmpknd (gmpknd arg0) { /* local vardec */ // ATSlocal_void (tmp2) ; __ats_lab_print_myint_02244_gmpknd: /* tmp2 = */ fprint_myint_02243_gmpknd (stdout, arg0) ; return /* (tmp2) */ ; } /* end of [print_myint_02244_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2559(line=95, offs=21) -- 2601(line=95, offs=63) */ ATSstaticdec() ats_void_type prerr_myint_02245_gmpknd (gmpknd arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab_prerr_myint_02245_gmpknd: /* tmp3 = */ fprint_myint_02243_gmpknd (stderr, arg0) ; return /* (tmp3) */ ; } /* end of [prerr_myint_02245_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2659(line=100, offs=24) -- 2814(line=107, offs=4) */ ATSstaticdec() gmpknd myint_make_int_02246_gmpknd (ats_int_type arg0) { /* local vardec */ ATSlocal (gmpknd, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_myint_make_int_02246_gmpknd: tmp5 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp6 = ats_selsin_mac(tmp5, atslab_2) ; /* tmp7 = */ atslib_mpz_init_set_int (tmp6, arg0) ; tmp8 = tmp6 ; tmp4 = ats_castfn_mac(gmpknd, tmp8) ; return (tmp4) ; } /* end of [myint_make_int_02246_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3094(line=126, offs=27) -- 3321(line=135, offs=4) */ ATSstaticdec() gmpknd myint_make_intinf_02247_gmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (gmpknd, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab_myint_make_intinf_02247_gmpknd: tmp10 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp11 = ats_selsin_mac(tmp10, atslab_2) ; tmp12 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; /* tmp13 = */ atslib_mpz_init_set_mpz (tmp11, tmp12) ; tmp14 = tmp11 ; tmp9 = ats_castfn_mac(gmpknd, tmp14) ; return (tmp9) ; } /* end of [myint_make_intinf_02247_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3424(line=142, offs=20) -- 3667(line=151, offs=4) */ ATSstaticdec() gmpknd myint_copy_02249_gmpknd (gmpknd arg0) { /* local vardec */ ATSlocal (gmpknd, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab_myint_copy_02249_gmpknd: tmp16 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp17 = ats_selsin_mac(tmp16, atslab_2) ; tmp19 = ats_varget_mac(ats_ptr_type, arg0) ; /* tmp18 = */ atslib_mpz_init_set_mpz (tmp17, tmp19) ; tmp20 = tmp17 ; tmp15 = ats_castfn_mac(gmpknd, tmp20) ; return (tmp15) ; } /* end of [myint_copy_02249_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3750(line=156, offs=20) -- 3877(line=162, offs=4) */ ATSstaticdec() ats_void_type myint_free_02248_gmpknd (gmpknd arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab_myint_free_02248_gmpknd: tmp23 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp22 = */ atslib_mpz_clear (tmp23) ; tmp24 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp21 = */ atspre_ptr_free (tmp24) ; return /* (tmp21) */ ; } /* end of [myint_free_02248_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3961(line=168, offs=3) -- 4079(line=173, offs=2) */ ATSstaticdec() gmpknd neg_myint_02250_gmpknd (gmpknd arg0) { /* local vardec */ ATSlocal (gmpknd, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab_neg_myint_02250_gmpknd: tmp27 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp26 = */ atslib_mpz_neg1 (tmp27) ; tmp25 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp25) ; } /* end of [neg_myint_02250_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 4163(line=179, offs=3) -- 4417(line=187, offs=2) */ ATSstaticdec() gmpknd neg1_myint_02251_gmpknd (gmpknd arg0) { /* local vardec */ ATSlocal (gmpknd, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_neg1_myint_02251_gmpknd: tmp29 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp30 = ats_selsin_mac(tmp29, atslab_2) ; /* tmp31 = */ atslib_mpz_init (tmp30) ; tmp33 = ats_varget_mac(ats_ptr_type, arg0) ; /* tmp32 = */ atslib_mpz_neg2 (tmp30, tmp33) ; tmp34 = tmp30 ; tmp28 = ats_castfn_mac(gmpknd, tmp34) ; return (tmp28) ; } /* end of [neg1_myint_02251_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 4509(line=193, offs=3) -- 4734(line=199, offs=2) */ ATSstaticdec() gmpknd add01_myint_myint_02253_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab_add01_myint_myint_02253_gmpknd: tmp37 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp38 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp36 = */ atslib_mpz_add2_mpz (tmp37, tmp38) ; tmp35 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp35) ; } /* end of [add01_myint_myint_02253_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 4831(line=205, offs=3) -- 5056(line=211, offs=2) */ ATSstaticdec() gmpknd sub01_myint_myint_02254_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab_sub01_myint_myint_02254_gmpknd: tmp41 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp42 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp40 = */ atslib_mpz_sub2_mpz (tmp41, tmp42) ; tmp39 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp39) ; } /* end of [sub01_myint_myint_02254_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 5149(line=217, offs=3) -- 5278(line=222, offs=2) */ ATSstaticdec() gmpknd add_myint_int_02252_gmpknd (gmpknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (gmpknd, tmp43) ; // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab_add_myint_int_02252_gmpknd: tmp45 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp44 = */ atslib_mpz_add2_int (tmp45, arg1) ; tmp43 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp43) ; } /* end of [add_myint_int_02252_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 5373(line=228, offs=3) -- 5599(line=235, offs=2) */ ATSstaticdec() gmpknd mul01_myint_myint_02255_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_mul01_myint_myint_02255_gmpknd: tmp48 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp49 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp47 = */ atslib_mpz_mul2_mpz (tmp48, tmp49) ; tmp46 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp46) ; } /* end of [mul01_myint_myint_02255_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 5677(line=239, offs=3) -- 6142(line=254, offs=2) */ ATSstaticdec() gmpknd mul10_myint_myint_02256_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab_mul10_myint_myint_02256_gmpknd: tmp51 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg1)) ; tmp52 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp51), atslab_2) ; tmp54 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg1)) ; tmp55 = ats_varget_mac(ats_ptr_type, arg0) ; /* tmp53 = */ atslib_mpz_mul3_mpz (tmp54, tmp55, tmp52) ; tmp50 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp50) ; } /* end of [mul10_myint_myint_02256_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 6220(line=258, offs=3) -- 6574(line=268, offs=4) */ ATSstaticdec() gmpknd mul11_myint_myint_02257_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; __ats_lab_mul11_myint_myint_02257_gmpknd: tmp57 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp58 = ats_selsin_mac(tmp57, atslab_2) ; /* tmp59 = */ atslib_mpz_init (tmp58) ; tmp61 = ats_varget_mac(ats_ptr_type, arg0) ; tmp62 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp60 = */ atslib_mpz_mul3_mpz (tmp58, tmp61, tmp62) ; tmp63 = tmp58 ; tmp56 = ats_castfn_mac(gmpknd, tmp63) ; return (tmp56) ; } /* end of [mul11_myint_myint_02257_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 6673(line=274, offs=3) -- 7138(line=288, offs=2) */ ATSstaticdec() gmpknd div01_myint_myint_02258_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; // ATSlocal_void (tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab_div01_myint_myint_02258_gmpknd: tmp65 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp66 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp65), atslab_2) ; tmp68 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp69 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp67 = */ atslib_mpz_tdiv3_q_mpz (tmp66, tmp68, tmp69) ; tmp64 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp64) ; } /* end of [div01_myint_myint_02258_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 7238(line=294, offs=3) -- 7701(line=308, offs=2) */ ATSstaticdec() gmpknd ediv01_myint_myint_02260_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; __ats_lab_ediv01_myint_myint_02260_gmpknd: tmp71 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp72 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp71), atslab_2) ; tmp74 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp75 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp73 = */ atslib_mpz_divexact3 (tmp72, tmp74, tmp75) ; tmp70 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp70) ; } /* end of [ediv01_myint_myint_02260_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 7801(line=314, offs=3) -- 8263(line=328, offs=2) */ ATSstaticdec() gmpknd mod01_myint_myint_02261_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab_mod01_myint_myint_02261_gmpknd: tmp77 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp78 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp77), atslab_2) ; tmp80 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp81 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp79 = */ atslib_mpz_mod3_mpz (tmp78, tmp80, tmp81) ; tmp76 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp76) ; } /* end of [mod01_myint_myint_02261_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 8341(line=332, offs=3) -- 8695(line=342, offs=4) */ ATSstaticdec() gmpknd mod11_myint_myint_02262_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab_mod11_myint_myint_02262_gmpknd: tmp83 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp84 = ats_selsin_mac(tmp83, atslab_2) ; /* tmp85 = */ atslib_mpz_init (tmp84) ; tmp87 = ats_varget_mac(ats_ptr_type, arg0) ; tmp88 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp86 = */ atslib_mpz_mod3_mpz (tmp84, tmp87, tmp88) ; tmp89 = tmp84 ; tmp82 = ats_castfn_mac(gmpknd, tmp89) ; return (tmp82) ; } /* end of [mod11_myint_myint_02262_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 8794(line=348, offs=3) -- 9256(line=362, offs=2) */ ATSstaticdec() gmpknd gcd01_myint_myint_02263_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab_gcd01_myint_myint_02263_gmpknd: tmp91 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp92 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp91), atslab_2) ; tmp94 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp95 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp93 = */ atslib_mpz_gcd3_mpz (tmp92, tmp94, tmp95) ; tmp90 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp90) ; } /* end of [gcd01_myint_myint_02263_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 9355(line=368, offs=3) -- 9509(line=374, offs=2) */ ATSstaticdec() ats_int_type compare_myint_int_02270_gmpknd (gmpknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab_compare_myint_int_02270_gmpknd: tmp97 = ats_varget_mac(ats_ptr_type, arg0) ; tmp96 = atslib_mpz_cmp_int (tmp97, arg1) ; return (tmp96) ; } /* end of [compare_myint_int_02270_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 9603(line=380, offs=3) -- 9841(line=386, offs=2) */ ATSstaticdec() ats_int_type compare_myint_myint_02275_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab_compare_myint_myint_02275_gmpknd: tmp99 = ats_varget_mac(ats_ptr_type, arg0) ; tmp100 = ats_varget_mac(ats_ptr_type, arg1) ; tmp98 = atslib_mpz_cmp_mpz (tmp99, tmp100) ; return (tmp98) ; } /* end of [compare_myint_myint_02275_gmpknd] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_myint_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_myint_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_myint_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_myint_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_myint_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_myint_2edats__dynload () { // _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_myint_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_myint_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lintprgm_myint_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_reader_sats.c0000644000175000017500000000200713431250607022005 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "pats_reader.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_reader_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lintprgm_solve_dats.c0000644000175000017500000016763613431250607023614 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ #include "pats_lintprgm_myint.cats" /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_neg_int) (ats_int_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_int_type, atspre_div_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_mod_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_gcd_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_int_type, atspre_compare_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_ineg) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ieq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, 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_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvec0_free) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_is_member) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_make) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_choose) (ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout0_addback_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__sasp__indexlst = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__sasp__indexset = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTnil_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTcons_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTmark_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTnil_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTcons_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTmark_2) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static intknd myint_make_int_02117_intknd (ats_int_type arg0) ; static intknd myint_make_intinf_02118_intknd (ats_ptr_type arg0) ; static ats_void_type myint_free_02119_intknd (intknd arg0) ; static intknd myint_copy_02120_intknd (intknd arg0) ; static intknd neg_myint_02121_intknd (intknd arg0) ; static intknd neg1_myint_02122_intknd (intknd arg0) ; static intknd add_myint_int_02123_intknd (intknd arg0, ats_int_type arg1) ; static intknd add01_myint_myint_02124_intknd (intknd arg0, intknd arg1) ; static intknd sub01_myint_myint_02125_intknd (intknd arg0, intknd arg1) ; static intknd mul01_myint_myint_02126_intknd (intknd arg0, intknd arg1) ; static intknd mul10_myint_myint_02127_intknd (intknd arg0, intknd arg1) ; static intknd mul11_myint_myint_02128_intknd (intknd arg0, intknd arg1) ; static intknd div01_myint_myint_02129_intknd (intknd arg0, intknd arg1) ; static intknd div11_myint_myint_02130_intknd (intknd arg0, intknd arg1) ; static intknd ediv01_myint_myint_02131_intknd (intknd arg0, intknd arg1) ; static intknd mod01_myint_myint_02132_intknd (intknd arg0, intknd arg1) ; static intknd mod11_myint_myint_02133_intknd (intknd arg0, intknd arg1) ; static intknd gcd01_myint_myint_02134_intknd (intknd arg0, intknd arg1) ; static ats_bool_type lt_myint_int_02135_intknd (intknd arg0, ats_int_type arg1) ; static ats_bool_type lte_myint_int_02136_intknd (intknd arg0, ats_int_type arg1) ; static ats_bool_type gt_myint_int_02137_intknd (intknd arg0, ats_int_type arg1) ; static ats_bool_type gte_myint_int_02138_intknd (intknd arg0, ats_int_type arg1) ; static ats_bool_type eq_myint_int_02139_intknd (intknd arg0, ats_int_type arg1) ; static ats_bool_type neq_myint_int_02140_intknd (intknd arg0, ats_int_type arg1) ; static ats_int_type compare_myint_int_02141_intknd (intknd arg0, ats_int_type arg1) ; static ats_bool_type lt_myint_myint_02142_intknd (intknd arg0, intknd arg1) ; static ats_bool_type lte_myint_myint_02143_intknd (intknd arg0, intknd arg1) ; static ats_bool_type gt_myint_myint_02144_intknd (intknd arg0, intknd arg1) ; static ats_bool_type gte_myint_myint_02145_intknd (intknd arg0, intknd arg1) ; static ats_void_type fprint_myint_02114_intknd (ats_ptr_type arg0, intknd arg1) ; static ats_void_type myintvec_free_02161_intknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type cmp_31 (ats_int_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type cmp_31_closure_make () ; static ats_int_type cmp_31_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_int_type arg1) ; static ats_ptr_type funset_make_nil_02265_ () ; static ats_int_type compare_elt_elt_02264_ats_int_type (ats_int_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_36 (ats_int_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_36_closure_make (ats_int_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_36_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type funset_is_member_02269_ats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type ins_40 (ats_int_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type ins_40_closure_make (ats_int_type env0, ats_clo_ref_type env1) ; static ats_ptr_type ins_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_02271_ats_int_type (ats_ref_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) ; static ats_void_type loop_44 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_int_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_42 (ats_ptr_type env0, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type loop_42_closure_make (ats_ptr_type env0) ; static ats_ptr_type loop_42_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_47 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_int_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 2166(line=78, offs=24) -- 2184(line=78, offs=42) */ ATSstaticdec() intknd myint_make_int_02117_intknd (ats_int_type arg0) { /* local vardec */ ATSlocal (intknd, tmp0) ; __ats_lab_myint_make_int_02117_intknd: tmp0 = ats_castfn_mac(intknd, arg0) ; return (tmp0) ; } /* end of [myint_make_int_02117_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 2223(line=81, offs=27) -- 2290(line=83, offs=4) */ ATSstaticdec() intknd myint_make_intinf_02118_intknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (intknd, tmp1) ; ATSlocal (ats_int_type, tmp2) ; __ats_lab_myint_make_intinf_02118_intknd: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int (arg0) ; tmp1 = ats_castfn_mac(intknd, tmp2) ; return (tmp1) ; } /* end of [myint_make_intinf_02118_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 2377(line=88, offs=20) -- 2437(line=90, offs=4) */ ATSstaticdec() ats_void_type myint_free_02119_intknd (intknd arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab_myint_free_02119_intknd: return /* (tmp3) */ ; } /* end of [myint_free_02119_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 2491(line=92, offs=30) -- 2514(line=92, offs=53) */ ATSstaticdec() intknd myint_copy_02120_intknd (intknd arg0) { /* local vardec */ ATSlocal (intknd, tmp4) ; __ats_lab_myint_copy_02120_intknd: tmp4 = ats_castfn_mac(intknd, arg0) ; return (tmp4) ; } /* end of [myint_copy_02120_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 2566(line=97, offs=19) -- 2586(line=97, offs=39) */ ATSstaticdec() intknd neg_myint_02121_intknd (intknd arg0) { /* local vardec */ ATSlocal (intknd, tmp5) ; ATSlocal (ats_int_type, tmp6) ; __ats_lab_neg_myint_02121_intknd: tmp6 = atspre_neg_int (ats_castfn_mac(ats_int_type, arg0)) ; tmp5 = ats_castfn_mac(intknd, tmp6) ; return (tmp5) ; } /* end of [neg_myint_02121_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 2617(line=99, offs=20) -- 2637(line=99, offs=40) */ ATSstaticdec() intknd neg1_myint_02122_intknd (intknd arg0) { /* local vardec */ ATSlocal (intknd, tmp7) ; ATSlocal (ats_int_type, tmp8) ; __ats_lab_neg1_myint_02122_intknd: tmp8 = atspre_neg_int (ats_castfn_mac(ats_int_type, arg0)) ; tmp7 = ats_castfn_mac(intknd, tmp8) ; return (tmp7) ; } /* end of [neg1_myint_02122_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 2693(line=104, offs=23) -- 2719(line=104, offs=49) */ ATSstaticdec() intknd add_myint_int_02123_intknd (intknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (intknd, tmp9) ; ATSlocal (ats_int_type, tmp10) ; __ats_lab_add_myint_int_02123_intknd: tmp10 = atspre_add_int_int (ats_castfn_mac(ats_int_type, arg0), arg1) ; tmp9 = ats_castfn_mac(intknd, tmp10) ; return (tmp9) ; } /* end of [add_myint_int_02123_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 2781(line=110, offs=3) -- 2841(line=112, offs=2) */ ATSstaticdec() intknd add01_myint_myint_02124_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp11) ; ATSlocal (ats_int_type, tmp12) ; __ats_lab_add01_myint_myint_02124_intknd: tmp12 = atspre_add_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp11 = ats_castfn_mac(intknd, tmp12) ; return (tmp11) ; } /* end of [add01_myint_myint_02124_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 2917(line=116, offs=3) -- 2977(line=118, offs=2) */ ATSstaticdec() intknd sub01_myint_myint_02125_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp13) ; ATSlocal (ats_int_type, tmp14) ; __ats_lab_sub01_myint_myint_02125_intknd: tmp14 = atspre_sub_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp13 = ats_castfn_mac(intknd, tmp14) ; return (tmp13) ; } /* end of [sub01_myint_myint_02125_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 3072(line=123, offs=27) -- 3105(line=123, offs=60) */ ATSstaticdec() intknd mul01_myint_myint_02126_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp15) ; ATSlocal (ats_int_type, tmp16) ; __ats_lab_mul01_myint_myint_02126_intknd: tmp16 = atspre_mul_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp15 = ats_castfn_mac(intknd, tmp16) ; return (tmp15) ; } /* end of [mul01_myint_myint_02126_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 3143(line=125, offs=27) -- 3176(line=125, offs=60) */ ATSstaticdec() intknd mul10_myint_myint_02127_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp17) ; ATSlocal (ats_int_type, tmp18) ; __ats_lab_mul10_myint_myint_02127_intknd: tmp18 = atspre_mul_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp17 = ats_castfn_mac(intknd, tmp18) ; return (tmp17) ; } /* end of [mul10_myint_myint_02127_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 3214(line=127, offs=27) -- 3247(line=127, offs=60) */ ATSstaticdec() intknd mul11_myint_myint_02128_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp19) ; ATSlocal (ats_int_type, tmp20) ; __ats_lab_mul11_myint_myint_02128_intknd: tmp20 = atspre_mul_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp19 = ats_castfn_mac(intknd, tmp20) ; return (tmp19) ; } /* end of [mul11_myint_myint_02128_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 3309(line=133, offs=3) -- 3369(line=135, offs=2) */ ATSstaticdec() intknd div01_myint_myint_02129_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp21) ; ATSlocal (ats_int_type, tmp22) ; __ats_lab_div01_myint_myint_02129_intknd: tmp22 = atspre_div_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp21 = ats_castfn_mac(intknd, tmp22) ; return (tmp21) ; } /* end of [div01_myint_myint_02129_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 3445(line=138, offs=27) -- 3478(line=138, offs=60) */ ATSstaticdec() intknd div11_myint_myint_02130_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp23) ; ATSlocal (ats_int_type, tmp24) ; __ats_lab_div11_myint_myint_02130_intknd: tmp24 = atspre_div_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp23 = ats_castfn_mac(intknd, tmp24) ; return (tmp23) ; } /* end of [div11_myint_myint_02130_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 3520(line=142, offs=3) -- 3580(line=144, offs=2) */ ATSstaticdec() intknd ediv01_myint_myint_02131_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp25) ; ATSlocal (ats_int_type, tmp26) ; __ats_lab_ediv01_myint_myint_02131_intknd: tmp26 = atspre_div_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp25 = ats_castfn_mac(intknd, tmp26) ; return (tmp25) ; } /* end of [ediv01_myint_myint_02131_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 3678(line=150, offs=3) -- 3746(line=152, offs=2) */ ATSstaticdec() intknd mod01_myint_myint_02132_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp27) ; ATSlocal (ats_int_type, tmp28) ; __ats_lab_mod01_myint_myint_02132_intknd: tmp28 = atspre_mod_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp27 = ats_castfn_mac(intknd, tmp28) ; return (tmp27) ; } /* end of [mod01_myint_myint_02132_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 3822(line=155, offs=27) -- 3857(line=155, offs=62) */ ATSstaticdec() intknd mod11_myint_myint_02133_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp29) ; ATSlocal (ats_int_type, tmp30) ; __ats_lab_mod11_myint_myint_02133_intknd: tmp30 = atspre_mod_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp29 = ats_castfn_mac(intknd, tmp30) ; return (tmp29) ; } /* end of [mod11_myint_myint_02133_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 3919(line=161, offs=3) -- 3987(line=163, offs=2) */ ATSstaticdec() intknd gcd01_myint_myint_02134_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (intknd, tmp31) ; ATSlocal (ats_int_type, tmp32) ; __ats_lab_gcd01_myint_myint_02134_intknd: tmp32 = atspre_gcd_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; tmp31 = ats_castfn_mac(intknd, tmp32) ; return (tmp31) ; } /* end of [gcd01_myint_myint_02134_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4077(line=167, offs=32) -- 4098(line=167, offs=53) */ ATSstaticdec() ats_bool_type lt_myint_int_02135_intknd (intknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp33) ; __ats_lab_lt_myint_int_02135_intknd: tmp33 = atspre_lt_int_int (ats_castfn_mac(ats_int_type, arg0), arg1) ; return (tmp33) ; } /* end of [lt_myint_int_02135_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4131(line=168, offs=33) -- 4153(line=168, offs=55) */ ATSstaticdec() ats_bool_type lte_myint_int_02136_intknd (intknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp34) ; __ats_lab_lte_myint_int_02136_intknd: tmp34 = atspre_lte_int_int (ats_castfn_mac(ats_int_type, arg0), arg1) ; return (tmp34) ; } /* end of [lte_myint_int_02136_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4185(line=169, offs=32) -- 4206(line=169, offs=53) */ ATSstaticdec() ats_bool_type gt_myint_int_02137_intknd (intknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp35) ; __ats_lab_gt_myint_int_02137_intknd: tmp35 = atspre_gt_int_int (ats_castfn_mac(ats_int_type, arg0), arg1) ; return (tmp35) ; } /* end of [gt_myint_int_02137_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4239(line=170, offs=33) -- 4261(line=170, offs=55) */ ATSstaticdec() ats_bool_type gte_myint_int_02138_intknd (intknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp36) ; __ats_lab_gte_myint_int_02138_intknd: tmp36 = atspre_gte_int_int (ats_castfn_mac(ats_int_type, arg0), arg1) ; return (tmp36) ; } /* end of [gte_myint_int_02138_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4293(line=171, offs=32) -- 4314(line=171, offs=53) */ ATSstaticdec() ats_bool_type eq_myint_int_02139_intknd (intknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp37) ; __ats_lab_eq_myint_int_02139_intknd: tmp37 = atspre_eq_int_int (ats_castfn_mac(ats_int_type, arg0), arg1) ; return (tmp37) ; } /* end of [eq_myint_int_02139_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4347(line=172, offs=33) -- 4369(line=172, offs=55) */ ATSstaticdec() ats_bool_type neq_myint_int_02140_intknd (intknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp38) ; __ats_lab_neq_myint_int_02140_intknd: tmp38 = atspre_neq_int_int (ats_castfn_mac(ats_int_type, arg0), arg1) ; return (tmp38) ; } /* end of [neq_myint_int_02140_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4406(line=174, offs=27) -- 4436(line=174, offs=57) */ ATSstaticdec() ats_int_type compare_myint_int_02141_intknd (intknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp39) ; __ats_lab_compare_myint_int_02141_intknd: tmp39 = atspre_compare_int_int (ats_castfn_mac(ats_int_type, arg0), arg1) ; return (tmp39) ; } /* end of [compare_myint_int_02141_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4492(line=178, offs=34) -- 4521(line=178, offs=63) */ ATSstaticdec() ats_bool_type lt_myint_myint_02142_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp40) ; __ats_lab_lt_myint_myint_02142_intknd: tmp40 = atspre_lt_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; return (tmp40) ; } /* end of [lt_myint_myint_02142_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4557(line=179, offs=35) -- 4587(line=179, offs=65) */ ATSstaticdec() ats_bool_type lte_myint_myint_02143_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp41) ; __ats_lab_lte_myint_myint_02143_intknd: tmp41 = atspre_lte_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; return (tmp41) ; } /* end of [lte_myint_myint_02143_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4622(line=180, offs=34) -- 4651(line=180, offs=63) */ ATSstaticdec() ats_bool_type gt_myint_myint_02144_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp42) ; __ats_lab_gt_myint_myint_02144_intknd: tmp42 = atspre_gt_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; return (tmp42) ; } /* end of [gt_myint_myint_02144_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4687(line=181, offs=35) -- 4717(line=181, offs=65) */ ATSstaticdec() ats_bool_type gte_myint_myint_02145_intknd (intknd arg0, intknd arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp43) ; __ats_lab_gte_myint_myint_02145_intknd: tmp43 = atspre_gte_int_int (ats_castfn_mac(ats_int_type, arg0), ats_castfn_mac(ats_int_type, arg1)) ; return (tmp43) ; } /* end of [gte_myint_myint_02145_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4772(line=186, offs=22) -- 4809(line=186, offs=59) */ ATSstaticdec() ats_void_type fprint_myint_02114_intknd (ats_ptr_type arg0, intknd arg1) { /* local vardec */ // ATSlocal_void (tmp44) ; __ats_lab_fprint_myint_02114_intknd: /* tmp44 = */ atspre_fprint_int (arg0, ats_castfn_mac(ats_int_type, arg1)) ; return /* (tmp44) */ ; } /* end of [fprint_myint_02114_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_int.dats: 4870(line=192, offs=7) -- 5181(line=204, offs=4) */ ATSstaticdec() ats_void_type myintvec_free_02161_intknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab_myintvec_free_02161_intknd: tmp46 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; /* tmp45 = */ atspre_array_ptr_free (tmp46) ; return /* (tmp45) */ ; } /* end of [myintvec_free_02161_intknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 8121(line=359, offs=4) -- 8188(line=361, offs=43) */ ATSstaticdec() ats_int_type cmp_31 (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp47) ; __ats_lab_cmp_31: tmp47 = atspre_compare_int_int (arg0, arg1) ; return (tmp47) ; } /* end of [cmp_31] */ typedef struct { ats_fun_ptr_type closure_fun ; } cmp_31_closure_type ; ats_int_type cmp_31_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_int_type arg1) { return cmp_31 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type cmp_31_closure_init (cmp_31_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&cmp_31_clofun ; return ; } /* end of function */ ats_clo_ptr_type cmp_31_closure_make () { cmp_31_closure_type *p_clo = ATS_MALLOC(sizeof(cmp_31_closure_type)) ; cmp_31_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 2201(line=74, offs=17) -- 2217(line=74, offs=33) */ ATSstaticdec() ats_ptr_type funset_make_nil_02265_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_funset_make_nil_02265_: tmp49 = (ats_sum_ptr_type)0 ; return (tmp49) ; } /* end of [funset_make_nil_02265_] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 8326(line=369, offs=13) -- 8353(line=369, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_nil: tmp48 = funset_make_nil_02265_ () ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 1887(line=58, offs=32) -- 1915(line=58, offs=60) */ ATSstaticdec() ats_int_type compare_elt_elt_02264_ats_int_type (ats_int_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp56) ; __ats_lab_compare_elt_elt_02264_ats_int_type: tmp56 = ((ats_int_type(*)(ats_clo_ptr_type, ats_int_type, ats_int_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp56) ; } /* end of [compare_elt_elt_02264_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 3671(line=138, offs=7) -- 3950(line=144, offs=27) */ ATSstaticdec() ats_bool_type aux_36 (ats_int_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp52) ; ATSlocal (ats_int_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_int_type, tmp55) ; ATSlocal (ats_bool_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; __ats_lab_aux_36: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp54 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp55 = compare_elt_elt_02264_ats_int_type (env0, tmp53, env1) ; tmp57 = atspre_gt_int_int (tmp55, 0) ; if (tmp57) { tmp52 = ats_false_bool ; } else { tmp58 = atspre_lt_int_int (tmp55, 0) ; if (tmp58) { arg0 = tmp54 ; goto __ats_lab_aux_36 ; // tail call } else { tmp52 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp52 = ats_false_bool ; break ; } while (0) ; return (tmp52) ; } /* end of [aux_36] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_36_closure_type ; ats_bool_type aux_36_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_36 (((aux_36_closure_type*)cloptr)->closure_env_0, ((aux_36_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_36_closure_init (aux_36_closure_type *p_clo, ats_int_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_36_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_36_closure_make (ats_int_type env0, ats_clo_ref_type env1) { aux_36_closure_type *p_clo = ATS_MALLOC(sizeof(aux_36_closure_type)) ; aux_36_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 3645(line=137, offs=3) -- 3986(line=148, offs=4) */ ATSstaticdec() ats_bool_type funset_is_member_02269_ats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp51) ; __ats_lab_funset_is_member_02269_ats_int_type: tmp51 = aux_36 (arg1, arg2, arg0) ; return (tmp51) ; } /* end of [funset_is_member_02269_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 8386(line=373, offs=3) -- 8429(line=373, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_is_member (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_is_member: tmp50 = funset_is_member_02269_ats_int_type (arg0, arg1, cmp_31_closure_make ()) ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_is_member] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 4180(line=158, offs=7) -- 4779(line=176, offs=10) */ ATSstaticdec() ats_ptr_type ins_40 (ats_int_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_int_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_int_type, tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_bool_type, tmp69) ; ATSlocal (ats_int_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_bool_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab_ins_40: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp65 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp66 = compare_elt_elt_02264_ats_int_type (env0, tmp64, env1) ; tmp67 = atspre_gt_int_int (tmp66, 0) ; if (tmp67) { tmp68 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp68 ; tmp63 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp63, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_1, tmp63, atslab_1, arg0) ; } else { tmp69 = atspre_lt_int_int (tmp66, 0) ; if (tmp69) { tmp70 = ats_ptrget_mac(ats_int_type, arg1) ; tmp71 = ins_40 (env0, env1, tmp65, arg1) ; tmp72 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp70) ; if (tmp72) { tmp63 = arg0 ; } else { tmp63 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp63, atslab_0, tmp64) ; ats_selptrset_mac(anairiats_sum_1, tmp63, atslab_1, tmp71) ; } /* end of [if] */ } else { tmp63 = arg0 ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp73 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp73 ; tmp74 = (ats_sum_ptr_type)0 ; tmp63 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp63, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_1, tmp63, atslab_1, tmp74) ; break ; } while (0) ; return (tmp63) ; } /* end of [ins_40] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } ins_40_closure_type ; ats_ptr_type ins_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return ins_40 (((ins_40_closure_type*)cloptr)->closure_env_0, ((ins_40_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type ins_40_closure_init (ins_40_closure_type *p_clo, ats_int_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&ins_40_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type ins_40_closure_make (ats_int_type env0, ats_clo_ref_type env1) { ins_40_closure_type *p_clo = ATS_MALLOC(sizeof(ins_40_closure_type)) ; ins_40_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 4154(line=157, offs=3) -- 4907(line=182, offs=4) */ ATSstaticdec() ats_bool_type funset_insert_02271_ats_int_type (ats_ref_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp62) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_bool_type, tmp77) ; __ats_lab_funset_insert_02271_ats_int_type: /* ats_int_type tmp75 ; */ tmp75 = 0 ; tmp76 = ins_40 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp75)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp76 ; tmp77 = atspre_eq_int_int (tmp75, 0) ; if (tmp77) { tmp62 = ats_true_bool ; } else { tmp62 = ats_false_bool ; } /* end of [if] */ return (tmp62) ; } /* end of [funset_insert_02271_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 8487(line=378, offs=3) -- 8573(line=382, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_add (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_bool_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_add: /* ats_ptr_type tmp60 ; */ tmp60 = arg0 ; tmp61 = funset_insert_02271_ats_int_type ((&tmp60), arg1, cmp_31_closure_make ()) ; tmp59 = tmp60 ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_44 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab_loop_44: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp89 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp89 ; arg1 = arg1 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp88) */ ; } /* end of [loop_44] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_int_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; // ATSlocal_void (tmp90) ; __ats_lab_list_vt_append_01504_ats_int_type: /* ats_ptr_type tmp87 ; */ tmp87 = arg0 ; /* tmp90 = */ loop_44 ((&tmp87), arg1) ; tmp86 = tmp87 ; return (tmp86) ; } /* end of [list_vt_append_01504_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 8714(line=393, offs=1) -- 9047(line=413, offs=2) */ ATSstaticdec() ats_ptr_type loop_42 (ats_ptr_type env0, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_int_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_int_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab_loop_42: tmp80 = atspre_igt (arg0, 0) ; if (tmp80) { tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_is_member (env0, arg0) ; if (tmp81) { tmp82 = atspre_isub (arg0, 1) ; tmp83 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp83, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp83, atslab_1, arg1) ; arg0 = tmp82 ; arg1 = tmp83 ; arg2 = arg2 ; goto __ats_lab_loop_42 ; // tail call } else { tmp84 = atspre_isub (arg0, 1) ; tmp85 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp85, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp85, atslab_1, arg2) ; arg0 = tmp84 ; arg1 = arg1 ; arg2 = tmp85 ; goto __ats_lab_loop_42 ; // tail call } /* end of [if] */ } else { tmp79 = list_vt_append_01504_ats_int_type (arg1, arg2) ; } /* end of [if] */ return (tmp79) ; } /* end of [loop_42] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop_42_closure_type ; ats_ptr_type loop_42_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { return loop_42 (((loop_42_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type loop_42_closure_init (loop_42_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_42_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_42_closure_make (ats_ptr_type env0) { loop_42_closure_type *p_clo = ATS_MALLOC(sizeof(loop_42_closure_type)) ; loop_42_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 8653(line=388, offs=6) -- 9112(line=416, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_make (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_make: tmp91 = atspre_isub (arg1, 1) ; tmp92 = (ats_sum_ptr_type)0 ; tmp93 = (ats_sum_ptr_type)0 ; tmp78 = loop_42 (arg0, tmp91, tmp92, tmp93) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_make] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_47 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab_loop_47: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp97 ; goto __ats_lab_loop_47 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: break ; } while (0) ; return /* (tmp96) */ ; } /* end of [loop_47] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_int_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp95) ; __ats_lab_list_vt_free_01499_ats_int_type: /* tmp95 = */ loop_47 (arg0) ; return /* (tmp95) */ ; } /* end of [list_vt_free_01499_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 9163(line=419, offs=14) -- 9185(line=419, offs=36) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_free: /* tmp94 = */ list_vt_free_01499_ats_int_type (arg0) ; return /* (tmp94) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_free] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 9213(line=422, offs=16) -- 9323(line=427, offs=37) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_choose (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_choose: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp100 ; tmp98 = tmp99 ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp98 = 0 ; break ; } while (0) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_choose] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTnil_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTcons_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTmark_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTnil_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTcons_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTmark_2.tag = 2 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout0_addback_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lintprgm_solve_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_pprint_dats.c0000644000175000017500000024560013431250607023516 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_6 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_uint_type atslab_0 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_t2mpmarg_loc ; ats_ptr_type atslab_t2mpmarg_arg ; } anairiats_rec_14 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, 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_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset) (ats_ptr_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hole) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarg) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_s2exp_0 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_s2exp_if_1 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_9 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type loop_9_closure_make (ats_ptr_type env0, ats_int_type env1) ; static ats_void_type loop_9_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type aux_s2explst_2 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_10 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type loop_10_closure_make (ats_ptr_type env0, ats_int_type env1) ; static ats_void_type loop_10_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type aux_s2explstlst_3 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_11 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type loop_11_closure_make (ats_ptr_type env0, ats_int_type env1) ; static ats_void_type loop_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type aux_labs2explst_4 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_12 (ats_int_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_clo_ptr_type loop_12_closure_make (ats_int_type env0) ; static ats_void_type loop_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type aux_wths2explst_5 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_s2lab_6 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_13 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type loop_13_closure_make (ats_ptr_type env0, ats_int_type env1) ; static ats_void_type loop_13_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type aux_s2lablst_7 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_s2eff_8 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 1809(line=65, offs=1) -- 9356(line=385, offs=4) */ ATSstaticdec() ats_void_type aux_s2exp_0 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_int_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_int_type, tmp123) ; // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_int_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_int_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; ATSlocal (ats_int_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; // ATSlocal_void (tmp173) ; // ATSlocal_void (tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; __ats_lab_aux_s2exp_0: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_s2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eint(")) ; /* tmp4 = */ atspre_fprint_int (arg0, tmp2) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eintinf(")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf (arg0, tmp5) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp9 = */ atspre_fprint_string (arg0, ATSstrcst("S2Efloat(")) ; /* tmp10 = */ atspre_fprint_string (arg0, tmp8) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst("S2Estring(")) ; /* tmp13 = */ atspre_fprint_string (arg0, tmp11) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("S2Ecst(")) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (arg0, tmp14) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp1)->tag != 5) { goto __ats_lab_8_0 ; } __ats_lab_5_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp18 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eextype(")) ; /* tmp20 = */ atspre_fprint_string (arg0, tmp17) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp18 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp18 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp21 = */ aux_s2explstlst_3 (arg0, arg1, tmp18) ; break ; } while (0) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp1)->tag != 6) { goto __ats_lab_11_0 ; } __ats_lab_8_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp24 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp25 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eextkind(")) ; /* tmp26 = */ atspre_fprint_string (arg0, tmp23) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (tmp24 != (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (tmp24 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: /* tmp28 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp27 = */ aux_s2explstlst_3 (arg0, arg1, tmp24) ; break ; } while (0) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp1)->tag != 7) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp30 = */ atspre_fprint_string (arg0, ATSstrcst("S2Evar(")) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp29) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp1)->tag != 8) { goto __ats_lab_15_0 ; } __ats_lab_12_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst("S2EVar(")) ; /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (arg0, tmp32) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link (tmp32) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp35 != (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp35 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_4, tmp35, atslab_0) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst("->")) ; tmp39 = atspre_sub_int_int (arg1, 1) ; /* tmp36 = */ aux_s2exp_if_1 (arg0, tmp39, tmp37) ; break ; } while (0) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp1)->tag != 9) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp41 = */ atspre_fprint_string (arg0, ATSstrcst("S2Ehole(")) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hole (arg0, tmp40) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp1)->tag != 12) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eat(")) ; /* tmp46 = */ aux_s2exp_0 (arg0, arg1, tmp43) ; /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp48 = */ aux_s2exp_0 (arg0, arg1, tmp44) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp1)->tag != 10) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp50 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst("S2Edatcontyp(")) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp49) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp54 = */ aux_s2explst_2 (arg0, arg1, tmp50) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp1)->tag != 11) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_1) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_2) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("S2Edatconptr(")) ; /* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp55) ; /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp61 = */ aux_s2exp_0 (arg0, arg1, tmp56) ; /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp63 = */ aux_s2explst_2 (arg0, arg1, tmp57) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp1)->tag != 13) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp65 = */ atspre_fprint_string (arg0, ATSstrcst("S2Esizeof(")) ; /* tmp66 = */ aux_s2exp_0 (arg0, arg1, tmp64) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp1)->tag != 14) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eeff(")) ; /* tmp69 = */ aux_s2eff_8 (arg0, arg1, tmp67) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp1)->tag != 15) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp71 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp72 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eeqeq(")) ; /* tmp73 = */ aux_s2exp_0 (arg0, arg1, tmp70) ; /* tmp74 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp75 = */ aux_s2exp_0 (arg0, arg1, tmp71) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp1)->tag != 16) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_0) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_1) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_2) ; /* tmp79 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eproj(")) ; /* tmp80 = */ aux_s2exp_0 (arg0, arg1, tmp76) ; /* tmp81 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp82 = */ aux_s2exp_0 (arg0, arg1, tmp77) ; /* tmp83 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp84 = */ aux_s2lablst_7 (arg0, arg1, tmp78) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp1)->tag != 17) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp87 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eapp(")) ; /* tmp88 = */ aux_s2exp_0 (arg0, arg1, tmp85) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp90 = */ aux_s2explst_2 (arg0, arg1, tmp86) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp1)->tag != 18) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp93 = */ atspre_fprint_string (arg0, ATSstrcst("S2Elam(")) ; /* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp91) ; /* tmp95 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp96 = */ aux_s2exp_0 (arg0, arg1, tmp92) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp1)->tag != 19) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_0) ; tmp98 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_1) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_2) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_3) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_4) ; tmp102 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_5) ; /* tmp103 = */ atspre_fprint_string (arg0, ATSstrcst("S2Efun(")) ; /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo (arg0, tmp97) ; /* tmp105 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp106 = */ atspre_fprintf_exn (arg0, ATSstrcst("lin=%i"), tmp98) ; /* tmp107 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp108 = */ atspre_fprint_string (arg0, ATSstrcst("eff=")) ; /* tmp109 = */ aux_s2eff_8 (arg0, arg1, tmp99) ; /* tmp110 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp111 = */ atspre_fprintf_exn (arg0, ATSstrcst("npf=%i"), tmp100) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp113 = */ aux_s2explst_2 (arg0, arg1, tmp101) ; /* tmp114 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp115 = */ aux_s2exp_0 (arg0, arg1, tmp102) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp1)->tag != 20) { goto __ats_lab_29_0 ; } __ats_lab_26_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_0) ; tmp117 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_1) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_2) ; /* tmp119 = */ atspre_fprint_string (arg0, ATSstrcst("S2Emetfun(")) ; /* tmp120 = */ aux_s2explst_2 (arg0, arg1, tmp117) ; /* tmp121 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp116 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (tmp116 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_7, tmp116, atslab_0) ; /* tmp122 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp123) ; break ; } while (0) ; /* tmp124 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp125 = */ aux_s2exp_0 (arg0, arg1, tmp118) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp1)->tag != 21) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp128 = */ atspre_fprint_string (arg0, ATSstrcst("S2Emetdec((")) ; /* tmp129 = */ aux_s2explst_2 (arg0, arg1, tmp126) ; /* tmp130 = */ atspre_fprint_string (arg0, ATSstrcst(") < (")) ; /* tmp131 = */ aux_s2explst_2 (arg0, arg1, tmp127) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("))")) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp1)->tag != 22) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_0) ; tmp133 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_1) ; /* tmp134 = */ atspre_fprint_string (arg0, ATSstrcst("S2Etop(")) ; /* tmp135 = */ atspre_fprintf_exn (arg0, ATSstrcst("knd=%i"), tmp132) ; /* tmp136 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp137 = */ aux_s2exp_0 (arg0, arg1, tmp133) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp1)->tag != 23) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("S2Ewithout(")) ; /* tmp140 = */ aux_s2exp_0 (arg0, arg1, tmp138) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp1)->tag != 24) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp143 = */ atspre_fprint_string (arg0, ATSstrcst("S2Etyarr(")) ; /* tmp144 = */ aux_s2exp_0 (arg0, arg1, tmp141) ; /* tmp145 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp146 = */ aux_s2explst_2 (arg0, arg1, tmp142) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp1)->tag != 25) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_9, tmp1, atslab_0) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_9, tmp1, atslab_1) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_9, tmp1, atslab_2) ; /* tmp150 = */ atspre_fprint_string (arg0, ATSstrcst("S2Etyrec(")) ; /* tmp151 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind (arg0, tmp147) ; /* tmp152 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp153 = */ atspre_fprintf_exn (arg0, ATSstrcst("npf=%i"), tmp148) ; /* tmp154 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp155 = */ aux_labs2explst_4 (arg0, arg1, tmp149) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp1)->tag != 26) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp157 = */ atspre_fprint_string (arg0, ATSstrcst("S2Einvar(")) ; /* tmp158 = */ aux_s2exp_0 (arg0, arg1, tmp156) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp1)->tag != 29) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp159 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_0) ; tmp160 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_1) ; /* tmp161 = */ atspre_fprint_string (arg0, ATSstrcst("S2Erefarg(")) ; /* tmp162 = */ atspre_fprint_int (arg0, tmp159) ; /* tmp163 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp164 = */ aux_s2exp_0 (arg0, arg1, tmp160) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp1)->tag != 30) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp166 = */ atspre_fprint_string (arg0, ATSstrcst("S2Evararg(")) ; /* tmp167 = */ aux_s2exp_0 (arg0, arg1, tmp165) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp1)->tag != 27) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_0) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_1) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_2) ; /* tmp171 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eexi(")) ; /* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp168) ; /* tmp173 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp174 = */ aux_s2explst_2 (arg0, arg1, tmp169) ; /* tmp175 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp176 = */ aux_s2exp_0 (arg0, arg1, tmp170) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp1)->tag != 28) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_0) ; tmp178 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_1) ; tmp179 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_2) ; /* tmp180 = */ atspre_fprint_string (arg0, ATSstrcst("S2Euni(")) ; /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp177) ; /* tmp182 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp183 = */ aux_s2explst_2 (arg0, arg1, tmp178) ; /* tmp184 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp185 = */ aux_s2exp_0 (arg0, arg1, tmp179) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp1)->tag != 31) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp186 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst("S2Ewth(")) ; /* tmp189 = */ aux_s2exp_0 (arg0, arg1, tmp186) ; /* tmp190 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp191 = */ aux_wths2explst_5 (arg0, arg1, tmp187) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (((ats_sum_ptr_type)tmp1)->tag != 32) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eerrexp()")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [aux_s2exp_0] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 9384(line=387, offs=5) -- 9520(line=391, offs=60) */ ATSstaticdec() ats_void_type aux_s2exp_if_1 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp192) ; ATSlocal (ats_bool_type, tmp193) ; __ats_lab_aux_s2exp_if_1: tmp193 = atspre_gt_int_int (arg1, 0) ; if (tmp193) { /* tmp192 = */ aux_s2exp_0 (arg0, arg1, arg2) ; } else { /* tmp192 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; } /* end of [if] */ return /* (tmp192) */ ; } /* end of [aux_s2exp_if_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 9642(line=398, offs=7) -- 9934(line=407, offs=24) */ ATSstaticdec() ats_void_type loop_9 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; // ATSlocal_void (tmp198) ; ATSlocal (ats_bool_type, tmp199) ; // ATSlocal_void (tmp200) ; ATSlocal (ats_int_type, tmp201) ; __ats_lab_loop_9: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp196 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp197 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp199 = atspre_gt_int_int (arg1, 0) ; if (tmp199) { /* tmp198 = */ atspre_fprint_string (env0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp200 = */ aux_s2exp_0 (env0, env1, tmp196) ; tmp201 = atspre_add_int_int (arg1, 1) ; arg0 = tmp197 ; arg1 = tmp201 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: break ; } while (0) ; return /* (tmp195) */ ; } /* end of [loop_9] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_int_type closure_env_1 ; } loop_9_closure_type ; ats_void_type loop_9_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { loop_9 (((loop_9_closure_type*)cloptr)->closure_env_0, ((loop_9_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type loop_9_closure_init (loop_9_closure_type *p_clo, ats_ptr_type env0, ats_int_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_9_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type loop_9_closure_make (ats_ptr_type env0, ats_int_type env1) { loop_9_closure_type *p_clo = ATS_MALLOC(sizeof(loop_9_closure_type)) ; loop_9_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 9568(line=395, offs=5) -- 9998(line=411, offs=4) */ ATSstaticdec() ats_void_type aux_s2explst_2 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp194) ; __ats_lab_aux_s2explst_2: /* tmp194 = */ loop_9 (arg0, arg1, arg2, 0) ; return /* (tmp194) */ ; } /* end of [aux_s2explst_2] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 10110(line=416, offs=7) -- 10414(line=425, offs=24) */ ATSstaticdec() ats_void_type loop_10 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; // ATSlocal_void (tmp206) ; ATSlocal (ats_bool_type, tmp207) ; // ATSlocal_void (tmp208) ; ATSlocal (ats_int_type, tmp209) ; __ats_lab_loop_10: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp205 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp207 = atspre_gt_int_int (arg1, 0) ; if (tmp207) { /* tmp206 = */ atspre_fprint_string (env0, ATSstrcst("; ")) ; } else { /* empty */ } /* end of [if] */ /* tmp208 = */ aux_s2explst_2 (env0, env1, tmp204) ; tmp209 = atspre_add_int_int (arg1, 1) ; arg0 = tmp205 ; arg1 = tmp209 ; goto __ats_lab_loop_10 ; // tail call break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: break ; } while (0) ; return /* (tmp203) */ ; } /* end of [loop_10] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_int_type closure_env_1 ; } loop_10_closure_type ; ats_void_type loop_10_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { loop_10 (((loop_10_closure_type*)cloptr)->closure_env_0, ((loop_10_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type loop_10_closure_init (loop_10_closure_type *p_clo, ats_ptr_type env0, ats_int_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_10_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type loop_10_closure_make (ats_ptr_type env0, ats_int_type env1) { loop_10_closure_type *p_clo = ATS_MALLOC(sizeof(loop_10_closure_type)) ; loop_10_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 10029(line=413, offs=5) -- 10479(line=429, offs=4) */ ATSstaticdec() ats_void_type aux_s2explstlst_3 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp202) ; __ats_lab_aux_s2explstlst_3: /* tmp202 = */ loop_10 (arg0, arg1, arg2, 0) ; return /* (tmp202) */ ; } /* end of [aux_s2explstlst_3] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 10595(line=434, offs=7) -- 11024(line=446, offs=24) */ ATSstaticdec() ats_void_type loop_11 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; // ATSlocal_void (tmp216) ; ATSlocal (ats_bool_type, tmp217) ; // ATSlocal_void (tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; ATSlocal (ats_int_type, tmp221) ; __ats_lab_loop_11: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp213 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_11, tmp212, atslab_0) ; tmp215 = ats_caselptrlab_mac(anairiats_sum_11, tmp212, atslab_2) ; tmp217 = atspre_gt_int_int (arg1, 0) ; if (tmp217) { /* tmp216 = */ atspre_fprint_string (env0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp218 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, tmp214) ; /* tmp219 = */ atspre_fprint_string (env0, ATSstrcst("=")) ; /* tmp220 = */ aux_s2exp_0 (env0, env1, tmp215) ; tmp221 = atspre_add_int_int (arg1, 1) ; arg0 = tmp213 ; arg1 = tmp221 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: break ; } while (0) ; return /* (tmp211) */ ; } /* end of [loop_11] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_int_type closure_env_1 ; } loop_11_closure_type ; ats_void_type loop_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { loop_11 (((loop_11_closure_type*)cloptr)->closure_env_0, ((loop_11_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type loop_11_closure_init (loop_11_closure_type *p_clo, ats_ptr_type env0, ats_int_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 (ats_ptr_type env0, ats_int_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 */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 10513(line=431, offs=5) -- 11089(line=450, offs=4) */ ATSstaticdec() ats_void_type aux_labs2explst_4 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp210) ; __ats_lab_aux_labs2explst_4: /* tmp210 = */ loop_11 (arg0, arg1, arg2, 0) ; return /* (tmp210) */ ; } /* end of [aux_labs2explst_4] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 11206(line=456, offs=5) -- 12259(line=496, offs=4) */ ATSstaticdec() ats_void_type loop_12 (ats_int_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp223) ; ATSlocal (ats_int_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; ATSlocal (ats_bool_type, tmp228) ; // ATSlocal_void (tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; // ATSlocal_void (tmp233) ; ATSlocal (ats_int_type, tmp234) ; ATSlocal (ats_int_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; // ATSlocal_void (tmp238) ; ATSlocal (ats_bool_type, tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; // ATSlocal_void (tmp242) ; // ATSlocal_void (tmp243) ; // ATSlocal_void (tmp244) ; ATSlocal (ats_int_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; // ATSlocal_void (tmp247) ; ATSlocal (ats_bool_type, tmp248) ; // ATSlocal_void (tmp249) ; ATSlocal (ats_int_type, tmp250) ; __ats_lab_loop_12: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_2) ; tmp228 = atspre_gt_int_int (arg2, 0) ; if (tmp228) { /* tmp227 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp229 = */ atspre_fprint_string (arg0, ATSstrcst("invar(")) ; /* tmp230 = */ atspre_fprint_int (arg0, tmp224) ; /* tmp231 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp232 = */ aux_s2exp_0 (arg0, env0, tmp225) ; /* tmp233 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; tmp234 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp226 ; arg2 = tmp234 ; goto __ats_lab_loop_12 ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp236 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; tmp237 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_2) ; tmp239 = atspre_gt_int_int (arg2, 0) ; if (tmp239) { /* tmp238 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp240 = */ atspre_fprint_string (arg0, ATSstrcst("trans(")) ; /* tmp241 = */ atspre_fprint_int (arg0, tmp235) ; /* tmp242 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp243 = */ aux_s2exp_0 (arg0, env0, tmp236) ; /* tmp244 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; tmp245 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp237 ; arg2 = tmp245 ; goto __ats_lab_loop_12 ; // tail call break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp246 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp248 = atspre_gt_int_int (arg2, 0) ; if (tmp248) { /* tmp247 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp249 = */ atspre_fprintf_exn (arg0, ATSstrcst("none()")) ; tmp250 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp246 ; arg2 = tmp250 ; goto __ats_lab_loop_12 ; // tail call break ; } while (0) ; return /* (tmp223) */ ; } /* end of [loop_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; } loop_12_closure_type ; ats_void_type loop_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { loop_12 (((loop_12_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; return ; } /* end of function */ ATSinline() ats_void_type loop_12_closure_init (loop_12_closure_type *p_clo, ats_int_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_12_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_12_closure_make (ats_int_type env0) { loop_12_closure_type *p_clo = ATS_MALLOC(sizeof(loop_12_closure_type)) ; loop_12_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 11123(line=452, offs=5) -- 12309(line=500, offs=4) */ ATSstaticdec() ats_void_type aux_wths2explst_5 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp222) ; __ats_lab_aux_wths2explst_5: /* tmp222 = */ loop_12 (arg1, arg0, arg2, 0) ; return /* (tmp222) */ ; } /* end of [aux_wths2explst_5] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 12343(line=502, offs=5) -- 12719(line=520, offs=4) */ ATSstaticdec() ats_void_type aux_s2lab_6 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; // ATSlocal_void (tmp256) ; // ATSlocal_void (tmp257) ; __ats_lab_aux_s2lab_6: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp252 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; /* tmp253 = */ atspre_fprint_string (arg0, ATSstrcst("S2LABlab(")) ; /* tmp254 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp252) ; /* tmp251 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp255 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; /* tmp256 = */ atspre_fprint_string (arg0, ATSstrcst("S2LABind(")) ; /* tmp257 = */ aux_s2explst_2 (arg0, arg1, tmp255) ; /* tmp251 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp251) */ ; } /* end of [aux_s2lab_6] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 12822(line=525, offs=7) -- 13126(line=536, offs=24) */ ATSstaticdec() ats_void_type loop_13 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; // ATSlocal_void (tmp262) ; ATSlocal (ats_bool_type, tmp263) ; // ATSlocal_void (tmp264) ; ATSlocal (ats_int_type, tmp265) ; __ats_lab_loop_13: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp260 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp263 = atspre_gt_int_int (arg1, 0) ; if (tmp263) { /* tmp262 = */ atspre_fprint_string (env0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp264 = */ aux_s2lab_6 (env0, env1, tmp260) ; tmp265 = atspre_add_int_int (arg1, 1) ; arg0 = tmp261 ; arg1 = tmp265 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: break ; } while (0) ; return /* (tmp259) */ ; } /* end of [loop_13] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_int_type closure_env_1 ; } loop_13_closure_type ; ats_void_type loop_13_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { loop_13 (((loop_13_closure_type*)cloptr)->closure_env_0, ((loop_13_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type loop_13_closure_init (loop_13_closure_type *p_clo, ats_ptr_type env0, ats_int_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_13_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type loop_13_closure_make (ats_ptr_type env0, ats_int_type env1) { loop_13_closure_type *p_clo = ATS_MALLOC(sizeof(loop_13_closure_type)) ; loop_13_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 12747(line=522, offs=5) -- 13190(line=540, offs=4) */ ATSstaticdec() ats_void_type aux_s2lablst_7 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp258) ; __ats_lab_aux_s2lablst_7: /* tmp258 = */ loop_13 (arg0, arg1, arg2, 0) ; return /* (tmp258) */ ; } /* end of [aux_s2lablst_7] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 13221(line=542, offs=5) -- 13863(line=570, offs=4) */ ATSstaticdec() ats_void_type aux_s2eff_8 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp266) ; ATSlocal (ats_uint_type, tmp267) ; // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; __ats_lab_aux_s2eff_8: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_0) ; /* tmp268 = */ atspre_fprint_string (arg0, ATSstrcst("S2EFFset(")) ; /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset (arg0, tmp267) ; /* tmp266 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp270 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; /* tmp271 = */ atspre_fprint_string (arg0, ATSstrcst("S2EFFexp(")) ; /* tmp272 = */ aux_s2exp_0 (arg0, arg1, tmp270) ; /* tmp266 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (((ats_sum_ptr_type)arg2)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp273 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp274 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; /* tmp275 = */ atspre_fprint_string (arg0, ATSstrcst("S2EFFadd(")) ; /* tmp276 = */ aux_s2eff_8 (arg0, arg1, tmp273) ; /* tmp277 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp278 = */ aux_s2eff_8 (arg0, arg1, tmp274) ; /* tmp266 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp266) */ ; } /* end of [aux_s2eff_8] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 13939(line=576, offs=3) -- 13981(line=576, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp279) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp: /* tmp279 = */ aux_s2exp_0 (arg0, 100, arg1) ; return /* (tmp279) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14007(line=579, offs=13) -- 14045(line=579, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprint_s2exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp280) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprint_s2exp: /* tmp280 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (stdout, arg0) ; return /* (tmp280) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprint_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14068(line=581, offs=13) -- 14106(line=581, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp281) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp: /* tmp281 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (stderr, arg0) ; return /* (tmp281) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14139(line=585, offs=3) -- 14186(line=585, offs=50) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp282) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst: /* tmp282 = */ aux_s2explst_2 (arg0, 100, arg1) ; return /* (tmp282) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14215(line=588, offs=16) -- 14258(line=588, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprint_s2explst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp283) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprint_s2explst: /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst (stdout, arg0) ; return /* (tmp283) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprint_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14284(line=590, offs=16) -- 14327(line=590, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2explst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp284) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2explst: /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst (stderr, arg0) ; return /* (tmp284) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14363(line=594, offs=3) -- 14415(line=594, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp285) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explstlst: /* tmp285 = */ aux_s2explstlst_3 (arg0, 100, arg1) ; return /* (tmp285) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explstlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14483(line=599, offs=3) -- 14535(line=599, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_labs2explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp286) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_labs2explst: /* tmp286 = */ aux_labs2explst_4 (arg0, 100, arg1) ; return /* (tmp286) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_labs2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14603(line=604, offs=3) -- 14655(line=604, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_wths2explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_wths2explst: /* tmp287 = */ aux_wths2explst_5 (arg0, 100, arg1) ; return /* (tmp287) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_wths2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14764(line=613, offs=3) -- 14813(line=613, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarg: tmp289 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_t2mpmarg_arg) ; /* tmp288 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst (arg0, tmp289) ; return /* (tmp288) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarg] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; // ATSlocal_void (tmp295) ; ATSlocal (ats_bool_type, tmp296) ; // ATSlocal_void (tmp297) ; ATSlocal (ats_int_type, tmp298) ; __ats_lab_aux_26: do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: tmp293 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp294 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp296 = atspre_gt_int_int (arg1, 0) ; if (tmp296) { /* tmp295 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp297 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp293) ; tmp298 = atspre_add_int_int (arg1, 1) ; arg0 = tmp294 ; arg1 = tmp298 ; goto __ats_lab_aux_26 ; // tail call break ; } while (0) ; return /* (tmp292) */ ; } /* end of [aux_26] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_26_closure_type ; ats_void_type aux_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_26 (((aux_26_closure_type*)cloptr)->closure_env_0, ((aux_26_closure_type*)cloptr)->closure_env_1, ((aux_26_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_26_closure_init (aux_26_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_26_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_26_closure_type *p_clo = ATS_MALLOC(sizeof(aux_26_closure_type)) ; aux_26_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp291) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp291 = */ aux_26 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp291) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_pprint.dats: 14876(line=618, offs=3) -- 14935(line=618, offs=62) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp290) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst: /* tmp290 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst("><"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarg) ; return /* (tmp290) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_pprint_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/config.h0000644000175000017500000000350313431250607017736 0ustar brandonbrandon/* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #define HAVE_GMP_H 1 /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the `memalign' function. */ #define HAVE_MEMALIGN 1 /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the `posix_memalign' function. */ #define HAVE_POSIX_MEMALIGN 1 /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "gmpostiats@gmail.com" /* Define to the full name of this package. */ #define PACKAGE_NAME "ATS2/Postiats" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "ATS2/Postiats 0.3.13" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "ats2-postiats" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Define to the version of this package. */ #define PACKAGE_VERSION "0.3.13" /* The size of `void*', as computed by sizeof. */ #define SIZEOF_VOIDP 8 /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_jsonize_dats.c0000644000175000017500000023635413431250607022223 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_double_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_6 ; typedef struct { anairiats_rec_6 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_8 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_9 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fnx_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfn_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfun_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_praxi_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_castfn_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_prval_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKval_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKpraxi_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprfun_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprval_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKcastfn_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONnul_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONintinf_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONbool_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONfloat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlocation_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONfilename_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlist_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlablist_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONoption_10) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isprint) (ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_double) (ats_ptr_type, ats_double_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_filename) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonvalist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_labjsonvalist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type auxch_26 (ats_ptr_type arg0, ats_char_type arg1) ; static ats_char_type ptr0_get_01759_ats_char_type (ats_ptr_type arg0) ; static ats_void_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type fprint_jsonval_string_25 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type aux_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_ptr_type aux0_34 (ats_ptr_type arg0) ; static ats_ptr_type aux1_35 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 1948(line=73, offs=13) -- 1964(line=73, offs=29) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int: tmp0 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp0)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp0, atslab_0, arg0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 1992(line=76, offs=16) -- 2011(line=76, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_intinf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_intinf: tmp1 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp1)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp1, atslab_0, arg0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_intinf] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2037(line=79, offs=14) -- 2054(line=79, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_bool (ats_bool_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_bool: tmp2 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp2)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp2, atslab_0, arg0) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_bool] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2082(line=82, offs=16) -- 2100(line=82, offs=34) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_double (ats_double_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_double: tmp3 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp3)->tag = 4 ; ats_selptrset_mac(anairiats_sum_4, tmp3, atslab_0, arg0) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_double] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2128(line=85, offs=16) -- 2151(line=85, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string: tmp4 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp4)->tag = 5 ; ats_selptrset_mac(anairiats_sum_2, tmp4, atslab_0, arg0) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2202(line=90, offs=18) -- 2227(line=90, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_location (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_location: tmp5 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp5)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp5, atslab_0, arg0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_location] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2256(line=92, offs=18) -- 2281(line=92, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_filename (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_filename: tmp6 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp6)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp6, atslab_0, arg0) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_filename] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2422(line=104, offs=14) -- 2449(line=104, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing: tmp9 = (ats_sum_ptr_type)0 ; tmp8 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp8, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp8, atslab_1, tmp9) ; tmp7 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp7)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp7, atslab_0, tmp8) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2475(line=106, offs=14) -- 2513(line=106, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_pair (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_pair: tmp13 = (ats_sum_ptr_type)0 ; tmp12 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp12, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp12, atslab_1, tmp13) ; tmp11 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp11, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp11, atslab_1, tmp12) ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp10)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_0, tmp11) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_pair] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2565(line=111, offs=17) -- 2616(line=112, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (anairiats_rec_6, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1: tmp16.atslab_0 = arg0 ; tmp16.atslab_1 = arg1 ; tmp17 = (ats_sum_ptr_type)0 ; tmp15 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp15, atslab_0, tmp16) ; ats_selptrset_mac(anairiats_sum_7, tmp15, atslab_1, tmp17) ; tmp14 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp14)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp14, atslab_0, tmp15) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2644(line=114, offs=17) -- 2728(line=115, offs=66) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (anairiats_rec_6, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (anairiats_rec_6, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2: tmp20.atslab_0 = arg0 ; tmp20.atslab_1 = arg1 ; tmp22.atslab_0 = arg2 ; tmp22.atslab_1 = arg3 ; tmp23 = (ats_sum_ptr_type)0 ; tmp21 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp21, atslab_0, tmp22) ; ats_selptrset_mac(anairiats_sum_7, tmp21, atslab_1, tmp23) ; tmp19 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp19, atslab_0, tmp20) ; ats_selptrset_mac(anairiats_sum_7, tmp19, atslab_1, tmp21) ; tmp18 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp18)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp18, atslab_0, tmp19) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2756(line=118, offs=1) -- 2844(line=120, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (anairiats_rec_6, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (anairiats_rec_6, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (anairiats_rec_6, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3: tmp26.atslab_0 = arg0 ; tmp26.atslab_1 = arg1 ; tmp28.atslab_0 = arg2 ; tmp28.atslab_1 = arg3 ; tmp30.atslab_0 = arg4 ; tmp30.atslab_1 = arg5 ; tmp31 = (ats_sum_ptr_type)0 ; tmp29 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp29, atslab_0, tmp30) ; ats_selptrset_mac(anairiats_sum_7, tmp29, atslab_1, tmp31) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp27, atslab_0, tmp28) ; ats_selptrset_mac(anairiats_sum_7, tmp27, atslab_1, tmp29) ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp25, atslab_0, tmp26) ; ats_selptrset_mac(anairiats_sum_7, tmp25, atslab_1, tmp27) ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp24)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp24, atslab_0, tmp25) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 2880(line=123, offs=1) -- 2988(line=125, offs=74) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (anairiats_rec_6, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (anairiats_rec_6, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (anairiats_rec_6, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (anairiats_rec_6, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval4: tmp34.atslab_0 = arg0 ; tmp34.atslab_1 = arg1 ; tmp36.atslab_0 = arg2 ; tmp36.atslab_1 = arg3 ; tmp38.atslab_0 = arg4 ; tmp38.atslab_1 = arg5 ; tmp40.atslab_0 = arg6 ; tmp40.atslab_1 = arg7 ; tmp41 = (ats_sum_ptr_type)0 ; tmp39 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp39, atslab_0, tmp40) ; ats_selptrset_mac(anairiats_sum_7, tmp39, atslab_1, tmp41) ; tmp37 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp37, atslab_0, tmp38) ; ats_selptrset_mac(anairiats_sum_7, tmp37, atslab_1, tmp39) ; tmp35 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp35, atslab_0, tmp36) ; ats_selptrset_mac(anairiats_sum_7, tmp35, atslab_1, tmp37) ; tmp33 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp33, atslab_0, tmp34) ; ats_selptrset_mac(anairiats_sum_7, tmp33, atslab_1, tmp35) ; tmp32 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp32)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp32, atslab_0, tmp33) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval4] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 3019(line=129, offs=1) -- 3150(line=133, offs=71) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_ptr_type arg8, ats_ptr_type arg9) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (anairiats_rec_6, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (anairiats_rec_6, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (anairiats_rec_6, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (anairiats_rec_6, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (anairiats_rec_6, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval5: tmp44.atslab_0 = arg0 ; tmp44.atslab_1 = arg1 ; tmp46.atslab_0 = arg2 ; tmp46.atslab_1 = arg3 ; tmp48.atslab_0 = arg4 ; tmp48.atslab_1 = arg5 ; tmp50.atslab_0 = arg6 ; tmp50.atslab_1 = arg7 ; tmp52.atslab_0 = arg8 ; tmp52.atslab_1 = arg9 ; tmp53 = (ats_sum_ptr_type)0 ; tmp51 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp51, atslab_0, tmp52) ; ats_selptrset_mac(anairiats_sum_7, tmp51, atslab_1, tmp53) ; tmp49 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp49, atslab_0, tmp50) ; ats_selptrset_mac(anairiats_sum_7, tmp49, atslab_1, tmp51) ; tmp47 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp47, atslab_0, tmp48) ; ats_selptrset_mac(anairiats_sum_7, tmp47, atslab_1, tmp49) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp45, atslab_0, tmp46) ; ats_selptrset_mac(anairiats_sum_7, tmp45, atslab_1, tmp47) ; tmp43 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp43, atslab_0, tmp44) ; ats_selptrset_mac(anairiats_sum_7, tmp43, atslab_1, tmp45) ; tmp42 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp42)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp42, atslab_0, tmp43) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval5] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 3179(line=137, offs=1) -- 3330(line=141, offs=83) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_ptr_type arg8, ats_ptr_type arg9, ats_ptr_type arg10, ats_ptr_type arg11) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (anairiats_rec_6, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (anairiats_rec_6, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (anairiats_rec_6, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (anairiats_rec_6, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (anairiats_rec_6, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (anairiats_rec_6, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval6: tmp56.atslab_0 = arg0 ; tmp56.atslab_1 = arg1 ; tmp58.atslab_0 = arg2 ; tmp58.atslab_1 = arg3 ; tmp60.atslab_0 = arg4 ; tmp60.atslab_1 = arg5 ; tmp62.atslab_0 = arg6 ; tmp62.atslab_1 = arg7 ; tmp64.atslab_0 = arg8 ; tmp64.atslab_1 = arg9 ; tmp66.atslab_0 = arg10 ; tmp66.atslab_1 = arg11 ; tmp67 = (ats_sum_ptr_type)0 ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp65, atslab_0, tmp66) ; ats_selptrset_mac(anairiats_sum_7, tmp65, atslab_1, tmp67) ; tmp63 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp63, atslab_0, tmp64) ; ats_selptrset_mac(anairiats_sum_7, tmp63, atslab_1, tmp65) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp61, atslab_0, tmp62) ; ats_selptrset_mac(anairiats_sum_7, tmp61, atslab_1, tmp63) ; tmp59 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp59, atslab_0, tmp60) ; ats_selptrset_mac(anairiats_sum_7, tmp59, atslab_1, tmp61) ; tmp57 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp57, atslab_0, tmp58) ; ats_selptrset_mac(anairiats_sum_7, tmp57, atslab_1, tmp59) ; tmp55 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp55, atslab_0, tmp56) ; ats_selptrset_mac(anairiats_sum_7, tmp55, atslab_1, tmp57) ; tmp54 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp54)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp54, atslab_0, tmp55) ; return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval6] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 3359(line=145, offs=1) -- 3530(line=149, offs=95) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_ptr_type arg8, ats_ptr_type arg9, ats_ptr_type arg10, ats_ptr_type arg11, ats_ptr_type arg12, ats_ptr_type arg13) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (anairiats_rec_6, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (anairiats_rec_6, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (anairiats_rec_6, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (anairiats_rec_6, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (anairiats_rec_6, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (anairiats_rec_6, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (anairiats_rec_6, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval7: tmp70.atslab_0 = arg0 ; tmp70.atslab_1 = arg1 ; tmp72.atslab_0 = arg2 ; tmp72.atslab_1 = arg3 ; tmp74.atslab_0 = arg4 ; tmp74.atslab_1 = arg5 ; tmp76.atslab_0 = arg6 ; tmp76.atslab_1 = arg7 ; tmp78.atslab_0 = arg8 ; tmp78.atslab_1 = arg9 ; tmp80.atslab_0 = arg10 ; tmp80.atslab_1 = arg11 ; tmp82.atslab_0 = arg12 ; tmp82.atslab_1 = arg13 ; tmp83 = (ats_sum_ptr_type)0 ; tmp81 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp81, atslab_0, tmp82) ; ats_selptrset_mac(anairiats_sum_7, tmp81, atslab_1, tmp83) ; tmp79 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp79, atslab_0, tmp80) ; ats_selptrset_mac(anairiats_sum_7, tmp79, atslab_1, tmp81) ; tmp77 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp77, atslab_0, tmp78) ; ats_selptrset_mac(anairiats_sum_7, tmp77, atslab_1, tmp79) ; tmp75 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp75, atslab_0, tmp76) ; ats_selptrset_mac(anairiats_sum_7, tmp75, atslab_1, tmp77) ; tmp73 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp73, atslab_0, tmp74) ; ats_selptrset_mac(anairiats_sum_7, tmp73, atslab_1, tmp75) ; tmp71 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp71, atslab_0, tmp72) ; ats_selptrset_mac(anairiats_sum_7, tmp71, atslab_1, tmp73) ; tmp69 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp69, atslab_0, tmp70) ; ats_selptrset_mac(anairiats_sum_7, tmp69, atslab_1, tmp71) ; tmp68 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp68)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_0, tmp69) ; return (tmp68) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval7] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 3559(line=153, offs=1) -- 3750(line=157, offs=107) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_ptr_type arg8, ats_ptr_type arg9, ats_ptr_type arg10, ats_ptr_type arg11, ats_ptr_type arg12, ats_ptr_type arg13, ats_ptr_type arg14, ats_ptr_type arg15) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (anairiats_rec_6, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (anairiats_rec_6, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (anairiats_rec_6, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (anairiats_rec_6, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (anairiats_rec_6, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (anairiats_rec_6, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (anairiats_rec_6, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (anairiats_rec_6, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval8: tmp86.atslab_0 = arg0 ; tmp86.atslab_1 = arg1 ; tmp88.atslab_0 = arg2 ; tmp88.atslab_1 = arg3 ; tmp90.atslab_0 = arg4 ; tmp90.atslab_1 = arg5 ; tmp92.atslab_0 = arg6 ; tmp92.atslab_1 = arg7 ; tmp94.atslab_0 = arg8 ; tmp94.atslab_1 = arg9 ; tmp96.atslab_0 = arg10 ; tmp96.atslab_1 = arg11 ; tmp98.atslab_0 = arg12 ; tmp98.atslab_1 = arg13 ; tmp100.atslab_0 = arg14 ; tmp100.atslab_1 = arg15 ; tmp101 = (ats_sum_ptr_type)0 ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp99, atslab_0, tmp100) ; ats_selptrset_mac(anairiats_sum_7, tmp99, atslab_1, tmp101) ; tmp97 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp97, atslab_0, tmp98) ; ats_selptrset_mac(anairiats_sum_7, tmp97, atslab_1, tmp99) ; tmp95 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp95, atslab_0, tmp96) ; ats_selptrset_mac(anairiats_sum_7, tmp95, atslab_1, tmp97) ; tmp93 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp93, atslab_0, tmp94) ; ats_selptrset_mac(anairiats_sum_7, tmp93, atslab_1, tmp95) ; tmp91 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp91, atslab_0, tmp92) ; ats_selptrset_mac(anairiats_sum_7, tmp91, atslab_1, tmp93) ; tmp89 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp89, atslab_0, tmp90) ; ats_selptrset_mac(anairiats_sum_7, tmp89, atslab_1, tmp91) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp87, atslab_0, tmp88) ; ats_selptrset_mac(anairiats_sum_7, tmp87, atslab_1, tmp89) ; tmp85 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp85, atslab_0, tmp86) ; ats_selptrset_mac(anairiats_sum_7, tmp85, atslab_1, tmp87) ; tmp84 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp84)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp84, atslab_0, tmp85) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval8] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 3807(line=164, offs=3) -- 3848(line=164, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0: tmp103 = (ats_sum_ptr_type)0 ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst (arg0, tmp103) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 3877(line=167, offs=3) -- 3934(line=168, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1: tmp106 = (ats_sum_ptr_type)0 ; tmp105 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp105, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp105, atslab_1, tmp106) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst (arg0, tmp105) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 3963(line=171, offs=3) -- 4032(line=172, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2: tmp110 = (ats_sum_ptr_type)0 ; tmp109 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp109, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp109, atslab_1, tmp110) ; tmp108 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp108, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp108, atslab_1, tmp109) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst (arg0, tmp108) ; return (tmp107) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 4061(line=175, offs=3) -- 4146(line=176, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3: tmp115 = (ats_sum_ptr_type)0 ; tmp114 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp114, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_5, tmp114, atslab_1, tmp115) ; tmp113 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp113, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp113, atslab_1, tmp114) ; tmp112 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp112, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp112, atslab_1, tmp113) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst (arg0, tmp112) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 4175(line=179, offs=3) -- 4276(line=180, offs=70) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg4: tmp121 = (ats_sum_ptr_type)0 ; tmp120 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp120, atslab_0, arg4) ; ats_selptrset_mac(anairiats_sum_5, tmp120, atslab_1, tmp121) ; tmp119 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp119, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_5, tmp119, atslab_1, tmp120) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp118, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp118, atslab_1, tmp119) ; tmp117 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp117, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp117, atslab_1, tmp118) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst (arg0, tmp117) ; return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg4] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 4310(line=184, offs=3) -- 4366(line=184, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst: tmp123 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp123)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp123, atslab_0, arg1) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (arg0, tmp123) ; return (tmp122) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 4446(line=190, offs=14) -- 4469(line=190, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none () { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none: tmp125 = (ats_sum_ptr_type)0 ; tmp124 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp124)->tag = 10 ; ats_selptrset_mac(anairiats_sum_2, tmp124, atslab_0, tmp125) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 4494(line=192, offs=14) -- 4518(line=192, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some: tmp127 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp127, atslab_0, arg0) ; tmp126 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp126)->tag = 10 ; ats_selptrset_mac(anairiats_sum_2, tmp126, atslab_0, tmp127) ; return (tmp126) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 4630(line=205, offs=1) -- 5218(line=230, offs=4) */ ATSstaticdec() ats_void_type auxch_26 (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ // ATSlocal_void (tmp129) ; ATSlocal (ats_bool_type, tmp130) ; __ats_lab_auxch_26: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 != '"') { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp129 = */ atspre_fprint_string (arg0, ATSstrcst("\\\"")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (arg1 != '\\') { goto __ats_lab_2_0 ; } __ats_lab_1_1: /* tmp129 = */ atspre_fprint_string (arg0, ATSstrcst("\\\\")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 != '\n') { goto __ats_lab_3_0 ; } __ats_lab_2_1: /* tmp129 = */ atspre_fprint_string (arg0, ATSstrcst("\\n")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg1 != '\015') { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp129 = */ atspre_fprint_string (arg0, ATSstrcst("\\r")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg1 != '\t') { goto __ats_lab_5_0 ; } __ats_lab_4_1: /* tmp129 = */ atspre_fprint_string (arg0, ATSstrcst("\\t")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg1 != '\010') { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp129 = */ atspre_fprint_string (arg0, ATSstrcst("\\b")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg1 != '\014') { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp129 = */ atspre_fprint_string (arg0, ATSstrcst("\\f")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp130 = atspre_char_isprint (arg1) ; if (tmp130) { /* tmp129 = */ atspre_fprint_char (arg0, arg1) ; } else { /* tmp129 = */ atspre_fprintf_exn (arg0, ATSstrcst("\\u00%.2X"), ats_castfn_mac(ats_uint_type, ats_castfn_mac(ats_uchar_type, arg1))) ; } /* end of [if] */ break ; } while (0) ; return /* (tmp129) */ ; } /* end of [auxch_26] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_char_type ptr0_get_01759_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp133) ; __ats_lab_ptr0_get_01759_ats_char_type: tmp133 = ats_ptrget_mac(ats_char_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp133) ; } /* end of [ptr0_get_01759_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 5244(line=233, offs=1) -- 5410(line=246, offs=4) */ ATSstaticdec() ats_void_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp131) ; ATSlocal (ats_char_type, tmp132) ; ATSlocal (ats_bool_type, tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; __ats_lab_loop_27: tmp132 = ptr0_get_01759_ats_char_type (arg1) ; tmp134 = atspre_neq_char_char (tmp132, '\000') ; if (tmp134) { /* tmp135 = */ auxch_26 (arg0, tmp132) ; tmp136 = atspre_padd_size (arg1, sizeof(ats_char_type)) ; arg0 = arg0 ; arg1 = tmp136 ; goto __ats_lab_loop_27 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp131) */ ; } /* end of [loop_27] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 4556(line=199, offs=1) -- 5523(line=254, offs=4) */ ATSstaticdec() ats_void_type fprint_jsonval_string_25 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; __ats_lab_fprint_jsonval_string_25: /* tmp137 = */ atspre_fprint_char (arg0, '"') ; /* tmp138 = */ loop_27 (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; /* tmp128 = */ atspre_fprint_char (arg0, '"') ; return /* (tmp128) */ ; } /* end of [fprint_jsonval_string_25] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 5608(line=260, offs=3) -- 6806(line=321, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp139) ; ATSlocal (ats_int_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_bool_type, tmp144) ; ATSlocal (ats_double_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("{}")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp139 = */ atspre_fprint_int (arg0, tmp140) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp142 = */ atspre_fprint_char (arg0, '"') ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf (arg0, tmp141) ; /* tmp139 = */ atspre_fprint_char (arg0, '"') ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp139 = */ atspre_fprint_bool (arg0, tmp144) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; /* tmp139 = */ atspre_fprint_double (arg0, tmp145) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp139 = */ fprint_jsonval_string_25 (arg0, tmp146) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp148 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp149 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp147) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp150 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp151 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp150) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp154 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonvalist (arg0, tmp153) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp157 = */ atspre_fprint_string (arg0, ATSstrcst("{")) ; /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_labjsonvalist (arg0, tmp156) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("}")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (((ats_sum_ptr_type)arg1)->tag != 10) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp159 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp160 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp159 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp162 = ats_caselptrlab_mac(anairiats_sum_8, tmp159, atslab_0) ; /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp162) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (tmp159 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: break ; } while (0) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; break ; } while (0) ; return /* (tmp139) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 6933(line=331, offs=5) -- 7241(line=350, offs=4) */ ATSstaticdec() ats_void_type aux_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; // ATSlocal_void (tmp167) ; ATSlocal (ats_bool_type, tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_int_type, tmp170) ; __ats_lab_aux_31: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp168 = atspre_gt_int_int (arg2, 0) ; if (tmp168) { /* tmp167 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp169 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp165) ; tmp170 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp166 ; arg2 = tmp170 ; goto __ats_lab_aux_31 ; // tail call break ; } while (0) ; return /* (tmp164) */ ; } /* end of [aux_31] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 6909(line=329, offs=3) -- 7287(line=354, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonvalist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonvalist: /* tmp163 = */ aux_31 (arg0, arg1, 0) ; return /* (tmp163) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonvalist] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 7398(line=362, offs=5) -- 7812(line=385, offs=4) */ ATSstaticdec() ats_void_type aux_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp172) ; ATSlocal (anairiats_rec_6, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; ATSlocal (ats_bool_type, tmp176) ; // ATSlocal_void (tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_int_type, tmp182) ; __ats_lab_aux_33: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ; tmp176 = atspre_gt_int_int (arg2, 0) ; if (tmp176) { /* tmp175 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp178 = ats_select_mac(tmp173, atslab_0) ; /* tmp177 = */ atspre_fprintf_exn (arg0, ATSstrcst("\"%s\""), tmp178) ; /* tmp179 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; tmp181 = ats_select_mac(tmp173, atslab_1) ; /* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp181) ; tmp182 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp174 ; arg2 = tmp182 ; goto __ats_lab_aux_33 ; // tail call break ; } while (0) ; return /* (tmp172) */ ; } /* end of [aux_33] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 7373(line=360, offs=3) -- 7859(line=389, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_labjsonvalist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_labjsonvalist: /* tmp171 = */ aux_33 (arg0, arg1, 0) ; return /* (tmp171) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_labjsonvalist] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 7926(line=395, offs=5) -- 8109(line=403, offs=4) */ ATSstaticdec() ats_ptr_type aux0_34 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; __ats_lab_aux0_34: tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (arg0) ; tmp186 = (ats_sum_ptr_type)0 ; tmp185 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp185)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp185, atslab_0, tmp186) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("funclo_name"), tmp184, ATSstrcst("funclo_arglst"), tmp185) ; return (tmp183) ; } /* end of [aux0_34] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 8132(line=405, offs=5) -- 8326(line=413, offs=4) */ ATSstaticdec() ats_ptr_type aux1_35 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab_aux1_35: tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (arg0) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing (arg1) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("funclo_name"), tmp188, ATSstrcst("funclo_arglst"), tmp189) ; return (tmp187) ; } /* end of [aux1_35] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 8394(line=418, offs=16) -- 8516(line=422, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funclo (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_int_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funclo: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp190 = aux0_34 (ATSstrcst("FUNCLOfun")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp191) ; tmp190 = aux1_35 (ATSstrcst("FUNCLOclo"), tmp192) ; break ; } while (0) ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funclo] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 8619(line=430, offs=16) -- 8783(line=435, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_caskind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_caskind: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("CK_case")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("CK_case_pos")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("CK_case_neg")) ; break ; } while (0) ; return (tmp193) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_caskind] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 8867(line=442, offs=16) -- 9191(line=455, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funkind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funkind: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("FK_fn")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("FK_fnx")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("FK_fun")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("FK_prfn")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("FK_prfun")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("FK_praxi")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (((ats_sum_ptr_type)arg0)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("FK_castfn")) ; break ; } while (0) ; return (tmp194) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funkind] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 9275(line=462, offs=16) -- 9476(line=468, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_valkind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp195) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_valkind: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("VK_val")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("VK_prval")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("VK_val_pos")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("VK_val_neg")) ; break ; } while (0) ; return (tmp195) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_valkind] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 9561(line=475, offs=17) -- 9838(line=483, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_dcstkind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp196) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_dcstkind: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("DCKfun")) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("DCKval")) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("DCKpraxi")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("DCKprfun")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("DCKprval")) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (((ats_sum_ptr_type)arg0)->tag != 5) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("DCKcastfn")) ; break ; } while (0) ; return (tmp196) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_dcstkind] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 9923(line=490, offs=14) -- 9960(line=491, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_int_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp: tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int (arg0) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp198) ; return (tmp197) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 10013(line=496, offs=15) -- 10057(line=497, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol: tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (arg0) ; tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp200) ; return (tmp199) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 10087(line=499, offs=18) -- 10184(line=504, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbolopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbolopt: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none () ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp202) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some (tmp203) ; break ; } while (0) ; return (tmp201) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbolopt] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 10275(line=511, offs=17) -- 10304(line=511, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location: tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_location (arg0) ; return (tmp204) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 10332(line=513, offs=17) -- 10361(line=513, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_filename (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp205) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_filename: tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_filename (arg0) ; return (tmp205) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_filename] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 10410(line=518, offs=14) -- 10912(line=542, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_label (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_label: tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_int (arg0) ; do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (tmp207 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_9, tmp207, atslab_0) ; ATS_FREE(tmp207) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp208) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("LABint"), tmp209) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (tmp207 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_sym (arg0) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (tmp210 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp211 = ats_caselptrlab_mac(anairiats_sum_8, tmp210, atslab_0) ; ATS_FREE(tmp210) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp211) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("LABsym"), tmp212) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (tmp210 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp206 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONnul_0) ; break ; } while (0) ; break ; } while (0) ; return (tmp206) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_label] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 10988(line=547, offs=16) -- 11012(line=547, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp213) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored: tmp213 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONnul_0) ; return (tmp213) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_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_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_jsonize_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_dats.c0000644000175000017500000006340613431250607022201 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 "libc/CATS/stdio.cats" #include "libc/sys/CATS/types.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_0 ; typedef struct { int tag ; char *name ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FILENONE_EXN) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atslib_fopen_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_isnot_dummy) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_local) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_clear) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_the_lexerrlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_filp) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_getc) (ats_ref_type, ats_clo_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_string) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_uninitize) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_toplocal) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_clear) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_the_parerrlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EOF) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_sta) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_dyn) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_tokbuf_toplevel) (ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_fileref_toplevel) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel2) (ats_int_type, ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_r_r_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type __ats_fun_5 (ats_ptr_type env0) ; static ats_clo_ptr_type __ats_fun_5_closure_make (ats_ptr_type env0) ; static ats_int_type __ats_fun_5_clofun (ats_clo_ptr_type cloptr) ; static ats_ptr_type auxlst_11 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 1781(line=62, offs=3) -- 2086(line=72, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_string_parser (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (pats_tokbuf_struct, tmp1) ; // ATSlocal_void (tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_bool_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_string_parser: /* pats_tokbuf_struct tmp1 ; */ /* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_string ((&tmp1), arg0) ; /* ats_int_type tmp3 ; */ tmp3 = 0 ; tmp4 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg1) ((&tmp1), 0, (&tmp3)) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EOF ((&tmp1), 0, (&tmp3)) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_uninitize ((&tmp1)) ; tmp7 = atspre_eq_int_int (tmp3, 0) ; if (tmp7) { tmp0 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp0, atslab_0, tmp4) ; } else { tmp0 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_string_parser] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 2185(line=78, offs=3) -- 2624(line=98, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_tokbuf_toplevel (ats_int_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_bool_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_tokbuf_toplevel: /* ats_int_type tmp9 ; */ tmp9 = 0 ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_clear () ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_clear () ; tmp13 = atspre_eq_int_int (arg0, 0) ; if (tmp13) { tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_sta (arg1, (&tmp9)) ; } else { tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_dyn (arg1, (&tmp9)) ; } /* end of [if] */ tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_the_lexerrlst (stderr) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_the_parerrlst (stderr) ; tmp18 = atspre_add_int_int (tmp14, tmp15) ; tmp17 = atspre_gt_int_int (tmp18, 0) ; if (tmp17) { /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; } else { /* empty */ } /* end of [if] */ tmp8 = tmp12 ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_tokbuf_toplevel] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 2768(line=107, offs=3) -- 2956(line=115, offs=2) */ ATSglobaldec() ats_ptr_type libatsopt_parse_from_string_toplevel (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (pats_tokbuf_struct, tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; __ats_lab_libatsopt_parse_from_string_toplevel: /* pats_tokbuf_struct tmp20 ; */ /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_string ((&tmp20), arg1) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_tokbuf_toplevel (arg0, (&tmp20)) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_uninitize ((&tmp20)) ; tmp19 = tmp22 ; return (tmp19) ; } /* end of [libatsopt_parse_from_string_toplevel] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 3057(line=121, offs=3) -- 3116(line=122, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_stdin_toplevel (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_stdin_toplevel: tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_fileref_toplevel (arg0, stdin) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_stdin_toplevel] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 3284(line=134, offs=9) -- 3324(line=134, offs=49) */ ATSstaticdec() ats_int_type __ats_fun_5 (ats_ptr_type env0) { /* local vardec */ ATSlocal (ats_int_type, tmp28) ; __ats_lab___ats_fun_5: tmp28 = atslib_fgetc_err (env0) ; return (tmp28) ; } /* end of [__ats_fun_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_5_closure_type ; ats_int_type __ats_fun_5_clofun (ats_clo_ptr_type cloptr) { return __ats_fun_5 (((__ats_fun_5_closure_type*)cloptr)->closure_env_0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_5_closure_init (__ats_fun_5_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_5_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_5_closure_make (ats_ptr_type env0) { __ats_fun_5_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_5_closure_type)) ; __ats_fun_5_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 3196(line=127, offs=3) -- 3417(line=139, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_fileref_toplevel (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (pats_tokbuf_struct, tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_fileref_toplevel: /* pats_tokbuf_struct tmp26 ; */ /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_getc ((&tmp26), __ats_fun_5_closure_make (arg1)) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_tokbuf_toplevel (arg0, (&tmp26)) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_uninitize ((&tmp26)) ; tmp25 = tmp29 ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_fileref_toplevel] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 3521(line=145, offs=3) -- 4137(line=179, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (pats_tokbuf_struct, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel: /* pats_tokbuf_struct tmp32 ; */ tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname (arg1) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp33) ; tmp35 = atslib_fopen_exn (tmp34, "r") ; tmp36 = ats_selsin_mac(tmp35, atslab_1) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_filp ((&tmp32), tmp36) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (arg1) ; /* tmp39 = ats_selsin_mac(tmp38, atslab_1) */ ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_push () ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_tokbuf_toplevel (arg0, (&tmp32)) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_pop () ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_uninitize ((&tmp32)) ; tmp31 = tmp41 ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 4244(line=185, offs=3) -- 4403(line=197, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel2 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_bool_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel2: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_isnot_dummy (arg1) ; if (tmp46) { tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel (arg0, arg1) ; } else { tmp45 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel2] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 4509(line=203, offs=3) -- 5422(line=247, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel: tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_local (arg1) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp48 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_0, tmp48, atslab_0) ; ATS_FREE(tmp48) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp49 ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel (arg0, tmp49) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush (tmp49) ; tmp47 = tmp50 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp48 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: ats_ptrget_mac(ats_ptr_type, arg2) = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; /* tmp52 = */ atspre_prerr_string (ATSstrcst("patsopt: error(0)")) ; /* tmp53 = */ atspre_prerr_string (ATSstrcst(": the given file [")) ; /* tmp54 = */ atspre_prerr_string (arg1) ; /* tmp55 = */ atspre_prerr_string (ATSstrcst("] cannot be accessed.")) ; /* tmp56 = */ atspre_prerr_newline () ; tmp58 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_exn_ptr_type)tmp58)->tag = _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FILENONE_EXN.tag ; ((ats_exn_ptr_type)tmp58)->name = _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FILENONE_EXN.name ; ats_selptrset_mac(anairiats_sum_1, tmp58, atslab_0, arg1) ; /* tmp57 = */ ats_raise_exn (tmp58) ; tmp47 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 5528(line=253, offs=3) -- 6158(line=282, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel2 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel2: tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_local (arg1) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp60 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_0, tmp60, atslab_0) ; ATS_FREE(tmp60) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp61 ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel (arg0, tmp61) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush (tmp61) ; tmp59 = tmp62 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp60 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: /* tmp64 = */ atspre_prerr_string (ATSstrcst("patsopt: error(0)")) ; /* tmp65 = */ atspre_prerr_string (ATSstrcst(": the given file [")) ; /* tmp66 = */ atspre_prerr_string (arg1) ; /* tmp67 = */ atspre_prerr_string (ATSstrcst("] cannot be accessed.")) ; /* tmp68 = */ atspre_prerr_newline () ; ats_ptrget_mac(ats_ptr_type, arg2) = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; tmp59 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel2] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 6306(line=293, offs=1) -- 6799(line=322, offs=2) */ ATSstaticdec() ats_ptr_type auxlst_11 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; __ats_lab_auxlst_11: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp70 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel2 (arg0, tmp71, arg2) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_toplocal (ats_ptrget_mac(ats_ptr_type, arg2), tmp73) ; tmp75 = auxlst_11 (arg0, tmp72, arg2) ; tmp70 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp70, atslab_0, tmp74) ; ats_selptrset_mac(anairiats_sum_2, tmp70, atslab_1, tmp75) ; break ; } while (0) ; return (tmp70) ; } /* end of [auxlst_11] */ /* // /tmp/ATS-Postiats/src/pats_parsing.dats: 6264(line=288, offs=1) -- 7245(line=345, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givenames_toplocal2 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givenames_toplocal2: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel2 (arg0, tmp76, arg2) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_list (ats_ptrget_mac(ats_ptr_type, arg2), tmp78) ; tmp80 = auxlst_11 (arg0, tmp77, arg2) ; tmp69 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp69, atslab_0, tmp79) ; ats_selptrset_mac(anairiats_sum_2, tmp69, atslab_1, tmp80) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: ats_ptrget_mac(ats_ptr_type, arg2) = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; tmp69 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp69) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givenames_toplocal2] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_r_r_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_error_sats.c0000644000175000017500000000717113431250607021703 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn) ; ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn_interr) ; ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FILENONE_EXN) ; ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN) ; ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN) ; ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN) ; ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN) ; ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN) ; /* static load function */ ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn.name = "_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn" ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn_interr.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn_interr.name = "_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn_interr" ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FILENONE_EXN.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FILENONE_EXN.name = "_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FILENONE_EXN" ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN.name = "_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN" ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN.name = "_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN" ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN.name = "_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN" ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN.name = "_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN" ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN.name = "_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN" ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_error_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp2_dcst_dats.c0000644000175000017500000036613013431250607023144 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d2cst_sym ; ats_ptr_type atslab_d2cst_loc ; ats_ptr_type atslab_d2cst_fil ; ats_ptr_type atslab_d2cst_kind ; ats_ptr_type atslab_d2cst_decarg ; ats_ptr_type atslab_d2cst_artylst ; ats_ptr_type atslab_d2cst_type ; ats_ptr_type atslab_d2cst_hisexp ; ats_ptr_type atslab_d2cst_funlab ; ats_ptr_type atslab_d2cst_def ; ats_ptr_type atslab_d2cst_pack ; ats_int_type atslab_d2cst_stamp ; ats_ptr_type atslab_d2cst_extdef ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_4 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_sta_3) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_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_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_ilte) (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_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imax) (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_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, 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_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, 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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_val) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_castfn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2cst_stamp_make) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mac) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mainats) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonprf) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2cstmap_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2cstset_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2cstset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2cst_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_void_type loop_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) ; static ats_int_type __ats_fun_39 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_39_closure_make () ; static ats_int_type __ats_fun_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_make_nil_03960_ () ; static ats_int_type compare_elt_elt_03959_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_44 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_44_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type funset_is_member_03967_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_rrotate_02212_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type avltree_lrotate_02195_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type insert_48 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_48_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type insert_48_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_03969_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type linset_make_nil_03988_ () ; static ats_int_type compare_elt_elt_03987_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_02469_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_02523_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_02499_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_55 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type insert_55_closure_make (ats_clo_ref_type env0) ; static ats_bool_type insert_55_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linset_insert_03997_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_62 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_free_04013_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type __ats_fun_63 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_63_closure_make () ; static ats_int_type __ats_fun_63_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funmap_make_nil_04018_ () ; static ats_int_type compare_key_key_04017_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type search_69 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type search_69_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type search_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funmap_search_04023_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; static ats_ptr_type funmap_search_opt_04024_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_rrotate_02903_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_02883_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ; static ats_ptr_type insert_73 (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_73_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) ; static ats_ptr_type insert_73_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funmap_insert_04025_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp87) ; ATSstatic (ats_ptr_type, statmp297) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp4 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp4) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 2794(line=123, offs=1) -- 3685(line=164, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_make: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get () ; tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2cst_stamp_make () ; tmp3 = ptr_alloc_01070_anairiats_rec_1 () ; tmp5 = ats_selsin_mac(tmp3, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_sym) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_loc) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_fil) = arg2 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_kind) = arg3 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_decarg) = arg4 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_artylst) = arg5 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_type) = arg6 ; tmp6 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_hisexp) = tmp6 ; tmp7 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_funlab) = tmp7 ; tmp8 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_def) = tmp8 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_pack) = tmp1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_stamp) = tmp2 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_d2cst_extdef) = arg7 ; tmp0 = atspre_ref_make_view_ptr (tmp5) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 3734(line=167, offs=15) -- 3810(line=169, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym: tmp10 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp9 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp10), atslab_d2cst_sym) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 3883(line=174, offs=15) -- 3959(line=176, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_loc: tmp12 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp11 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_d2cst_loc) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 4032(line=181, offs=15) -- 4108(line=183, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_fil (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_fil: tmp14 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp13 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_d2cst_fil) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_fil] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 4182(line=188, offs=16) -- 4259(line=190, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind: tmp16 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp15 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp16), atslab_d2cst_kind) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 4336(line=195, offs=18) -- 4415(line=197, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg: tmp18 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp17 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_d2cst_decarg) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 4495(line=202, offs=19) -- 4575(line=204, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_artylst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_artylst: tmp20 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp19 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp20), atslab_d2cst_artylst) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_artylst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 4653(line=209, offs=16) -- 4730(line=211, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type: tmp22 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp21 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp22), atslab_d2cst_type) ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 4807(line=216, offs=18) -- 4886(line=218, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_hisexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_hisexp: tmp24 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp23 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp24), atslab_d2cst_hisexp) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 4943(line=220, offs=18) -- 5034(line=222, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_hisexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_hisexp: tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp26), atslab_d2cst_hisexp) = arg1 ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 5113(line=227, offs=18) -- 5192(line=229, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_funlab (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_funlab: tmp28 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp27 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp28), atslab_d2cst_funlab) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_funlab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 5249(line=231, offs=18) -- 5340(line=233, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_funlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_funlab: tmp30 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp30), atslab_d2cst_funlab) = arg1 ; return /* (tmp29) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_funlab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 5416(line=238, offs=15) -- 5492(line=240, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_def (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_def: tmp32 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp31 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp32), atslab_d2cst_def) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_def] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 5543(line=242, offs=15) -- 5631(line=244, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_def (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_def: tmp34 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp34), atslab_d2cst_def) = arg1 ; return /* (tmp33) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_def] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 5705(line=249, offs=16) -- 5782(line=251, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_pack (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_pack: tmp36 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp35 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp36), atslab_d2cst_pack) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_pack] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 5859(line=256, offs=18) -- 5938(line=258, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef: tmp38 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp37 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp38), atslab_d2cst_extdef) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 6016(line=263, offs=17) -- 6094(line=265, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp: tmp40 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp39 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp40), atslab_d2cst_stamp) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 6193(line=272, offs=16) -- 6244(line=273, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym (arg0) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp42) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 6318(line=279, offs=13) -- 6352(line=279, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2cst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2cst: /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (stdout, arg0) ; return /* (tmp43) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 6375(line=281, offs=13) -- 6409(line=281, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2cst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2cst: /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (stderr, arg0) ; return /* (tmp44) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 6434(line=284, offs=14) -- 6490(line=285, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym (arg1) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp46) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 6540(line=289, offs=5) -- 6860(line=305, offs=4) */ ATSstaticdec() ats_void_type loop_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_bool_type, tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_int_type, tmp54) ; __ats_lab_loop_23: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp50 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp52 = atspre_gt_int_int (arg3, 0) ; if (tmp52) { /* tmp51 = */ atspre_fprint_string (arg0, arg2) ; } else { /* empty */ } /* end of [if] */ /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp49) ; tmp54 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp50 ; arg2 = arg2 ; arg3 = tmp54 ; goto __ats_lab_loop_23 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp48) */ ; } /* end of [loop_23] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 6517(line=287, offs=17) -- 6930(line=311, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cstlst: /* tmp47 = */ loop_23 (arg0, arg1, ATSstrcst(", "), 0) ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cstlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 7004(line=316, offs=14) -- 7074(line=318, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_prf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_prf: tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (tmp56) ; return (tmp55) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_prf] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 7126(line=320, offs=17) -- 7199(line=322, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_nonprf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_nonprf: tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg0) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonprf (tmp58) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_nonprf] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 7273(line=327, offs=14) -- 7328(line=328, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mac (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mac: tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef (arg0) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mac (tmp60) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mac] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 7404(line=334, offs=17) -- 7566(line=341, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_static (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_int_type, tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_static: tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef (arg0) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp62)->tag != 0) { goto __ats_lab_3_0 ; } tmp63 = ats_caselptrlab_mac(anairiats_sum_3, tmp62, atslab_0) ; if (tmp63 != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp61 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp62)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp61 = ats_true_bool ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp61 = ats_false_bool ; break ; } while (0) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_static] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 7643(line=346, offs=17) -- 7687(line=347, offs=37) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fundec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fundec: tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind (arg0) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun (tmp65) ; return (tmp64) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_fundec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 7744(line=350, offs=17) -- 7788(line=351, offs=37) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_valdec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_valdec: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind (arg0) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_val (tmp67) ; return (tmp66) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_valdec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 7845(line=354, offs=17) -- 7892(line=355, offs=40) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_castfn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_castfn: tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind (arg0) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_castfn (tmp69) ; return (tmp68) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_castfn] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50559(line=1787, offs=18) -- 50622(line=1789, offs=4) */ ATSstaticdec() ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp71) ; __ats_lab_list_is_cons_01295_: do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp71 = ats_true_bool ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp71 = ats_false_bool ; break ; } while (0) ; return (tmp71) ; } /* end of [list_is_cons_01295_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 7973(line=361, offs=17) -- 8016(line=362, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_tmpcst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp70) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_tmpcst: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (arg0) ; tmp70 = list_is_cons_01295_ (tmp72) ; return (tmp70) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_tmpcst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 8070(line=367, offs=18) -- 8129(line=368, offs=52) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mainats (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mainats: tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef (arg0) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__dcstextdef_is_mainats (tmp74) ; return (tmp73) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_mainats] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 8210(line=375, offs=3) -- 8242(line=375, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__lt_d2cst_d2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__lt_d2cst_d2cst: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst (arg0, arg1) ; tmp75 = atspre_ilt (tmp76, 0) ; return (tmp75) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__lt_d2cst_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 8300(line=380, offs=3) -- 8333(line=380, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__lte_d2cst_d2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__lte_d2cst_d2cst: tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst (arg0, arg1) ; tmp77 = atspre_ilte (tmp78, 0) ; return (tmp77) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__lte_d2cst_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 8391(line=385, offs=3) -- 8423(line=385, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst: tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst (arg0, arg1) ; tmp79 = atspre_ieq (tmp80, 0) ; return (tmp79) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 8481(line=390, offs=3) -- 8514(line=390, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__neq_d2cst_d2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_int_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__neq_d2cst_d2cst: tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst (arg0, arg1) ; tmp81 = atspre_ineq (tmp82, 0) ; return (tmp81) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__neq_d2cst_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 8575(line=394, offs=21) -- 8654(line=395, offs=69) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp83) ; ATSlocal (ats_int_type, tmp84) ; ATSlocal (ats_int_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp (arg0) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp (arg1) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp84, tmp85) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 8918(line=409, offs=11) -- 9003(line=413, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_39 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp86) ; __ats_lab___ats_fun_39: tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst (arg0, arg1) ; return (tmp86) ; } /* end of [__ats_fun_39] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_39_closure_type ; ats_int_type __ats_fun_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_39 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_39_closure_init (__ats_fun_39_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_39_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_39_closure_make () { __ats_fun_39_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_39_closure_type)) ; __ats_fun_39_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 2749(line=94, offs=29) -- 2758(line=94, offs=38) */ ATSstaticdec() ats_ptr_type funset_make_nil_03960_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; __ats_lab_funset_make_nil_03960_: tmp89 = (ats_sum_ptr_type)0 ; return (tmp89) ; } /* end of [funset_make_nil_03960_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 9152(line=422, offs=14) -- 9179(line=422, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_nil: tmp88 = funset_make_nil_03960_ () ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 1954(line=57, offs=30) -- 1982(line=57, offs=58) */ ATSstaticdec() ats_int_type compare_elt_elt_03959_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp97) ; __ats_lab_compare_elt_elt_03959_ats_ptr_type: tmp97 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp97) ; } /* end of [compare_elt_elt_03959_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4143(line=153, offs=7) -- 4406(line=161, offs=20) */ ATSstaticdec() ats_bool_type aux_44 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_int_type, tmp96) ; ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_bool_type, tmp99) ; __ats_lab_aux_44: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp94 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_3) ; tmp96 = compare_elt_elt_03959_ats_ptr_type (env0, tmp93, env1) ; tmp98 = atspre_lt_int_int (tmp96, 0) ; if (tmp98) { arg0 = tmp94 ; goto __ats_lab_aux_44 ; // tail call } else { tmp99 = atspre_gt_int_int (tmp96, 0) ; if (tmp99) { arg0 = tmp95 ; goto __ats_lab_aux_44 ; // tail call } else { tmp92 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp92 = ats_false_bool ; break ; } while (0) ; return (tmp92) ; } /* end of [aux_44] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_44_closure_type ; ats_bool_type aux_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_44 (((aux_44_closure_type*)cloptr)->closure_env_0, ((aux_44_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_44_closure_init (aux_44_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_44_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_44_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_44_closure_type *p_clo = ATS_MALLOC(sizeof(aux_44_closure_type)) ; aux_44_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4104(line=152, offs=3) -- 4426(line=163, offs=2) */ ATSstaticdec() ats_bool_type funset_is_member_03967_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp91) ; __ats_lab_funset_is_member_03967_ats_ptr_type: tmp91 = aux_44 (arg1, arg2, arg0) ; return (tmp91) ; } /* end of [funset_is_member_03967_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 9208(line=426, offs=3) -- 9251(line=426, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_ismem (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_ismem: tmp90 = funset_is_member_03967_ats_ptr_type (arg0, arg1, statmp87) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_ismem] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 5504(line=202, offs=46) -- 6164(line=224, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_02212_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_int_type, tmp124) ; ATSlocal (ats_int_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_int_type, tmp129) ; ATSlocal (ats_int_type, tmp130) ; ATSlocal (ats_int_type, tmp131) ; ATSlocal (ats_int_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_int_type, tmp137) ; ATSlocal (ats_int_type, tmp138) ; ATSlocal (ats_int_type, tmp139) ; ATSlocal (ats_int_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_int_type, tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_int_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; __ats_lab_avltree_rrotate_02212_ats_ptr_type: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp121 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; tmp122 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_2) ; tmp123 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_3) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp122 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_4, tmp122, atslab_0) ; tmp124 = tmp125 ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp122 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp124 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (tmp123 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_4, tmp123, atslab_0) ; tmp126 = tmp127 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (tmp123 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp126 = 0 ; break ; } while (0) ; tmp129 = atspre_iadd (tmp124, 0) ; tmp128 = atspre_igte (tmp129, tmp126) ; if (tmp128) { tmp130 = atspre_iadd (tmp126, 1) ; tmp132 = atspre_imax (tmp124, tmp130) ; tmp131 = atspre_iadd (1, tmp132) ; tmp133 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp133, atslab_0, tmp130) ; ats_selptrset_mac(anairiats_sum_4, tmp133, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp133, atslab_2, tmp123) ; ats_selptrset_mac(anairiats_sum_4, tmp133, atslab_3, arg4) ; tmp120 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_0, tmp131) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_1, tmp121) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_2, tmp122) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_3, tmp133) ; } else { // if (tmp123 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp134 = ats_caselptrlab_mac(anairiats_sum_4, tmp123, atslab_1) ; tmp135 = ats_caselptrlab_mac(anairiats_sum_4, tmp123, atslab_2) ; tmp136 = ats_caselptrlab_mac(anairiats_sum_4, tmp123, atslab_3) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (tmp135 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_4, tmp135, atslab_0) ; tmp137 = tmp138 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (tmp135 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp137 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp136 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_4, tmp136, atslab_0) ; tmp139 = tmp140 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp136 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp139 = 0 ; break ; } while (0) ; tmp143 = atspre_imax (tmp124, tmp137) ; tmp142 = atspre_iadd (1, tmp143) ; tmp141 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp141, atslab_0, tmp142) ; ats_selptrset_mac(anairiats_sum_4, tmp141, atslab_1, tmp121) ; ats_selptrset_mac(anairiats_sum_4, tmp141, atslab_2, tmp122) ; ats_selptrset_mac(anairiats_sum_4, tmp141, atslab_3, tmp135) ; tmp146 = atspre_imax (tmp139, arg3) ; tmp145 = atspre_iadd (1, tmp146) ; tmp144 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp144, atslab_0, tmp145) ; ats_selptrset_mac(anairiats_sum_4, tmp144, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp144, atslab_2, tmp136) ; ats_selptrset_mac(anairiats_sum_4, tmp144, atslab_3, arg4) ; tmp120 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_1, tmp134) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_2, tmp141) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_3, tmp144) ; } /* end of [if] */ return (tmp120) ; } /* end of [avltree_rrotate_02212_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4671(line=174, offs=46) -- 5362(line=196, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_02195_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_int_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; ATSlocal (ats_int_type, tmp163) ; ATSlocal (ats_int_type, tmp164) ; ATSlocal (ats_bool_type, tmp165) ; ATSlocal (ats_int_type, tmp166) ; ATSlocal (ats_int_type, tmp167) ; ATSlocal (ats_int_type, tmp168) ; ATSlocal (ats_int_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_int_type, tmp174) ; ATSlocal (ats_int_type, tmp175) ; ATSlocal (ats_int_type, tmp176) ; ATSlocal (ats_int_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_int_type, tmp179) ; ATSlocal (ats_int_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_int_type, tmp182) ; ATSlocal (ats_int_type, tmp183) ; __ats_lab_avltree_lrotate_02195_ats_ptr_type: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp158 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ; tmp159 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_2) ; tmp160 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_3) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (tmp159 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp162 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp161 = tmp162 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (tmp159 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp161 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (tmp160 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_4, tmp160, atslab_0) ; tmp163 = tmp164 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (tmp160 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp163 = 0 ; break ; } while (0) ; tmp166 = atspre_iadd (tmp163, 0) ; tmp165 = atspre_ilte (tmp161, tmp166) ; if (tmp165) { tmp167 = atspre_iadd (tmp161, 1) ; tmp169 = atspre_imax (tmp167, tmp163) ; tmp168 = atspre_iadd (1, tmp169) ; tmp170 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp170, atslab_0, tmp167) ; ats_selptrset_mac(anairiats_sum_4, tmp170, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp170, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp170, atslab_3, tmp159) ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp157, atslab_0, tmp168) ; ats_selptrset_mac(anairiats_sum_4, tmp157, atslab_1, tmp158) ; ats_selptrset_mac(anairiats_sum_4, tmp157, atslab_2, tmp170) ; ats_selptrset_mac(anairiats_sum_4, tmp157, atslab_3, tmp160) ; } else { // if (tmp159 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp171 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_1) ; tmp172 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_2) ; tmp173 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_3) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (tmp172 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_4, tmp172, atslab_0) ; tmp174 = tmp175 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (tmp172 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp174 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp173 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_4, tmp173, atslab_0) ; tmp176 = tmp177 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (tmp173 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp176 = 0 ; break ; } while (0) ; tmp180 = atspre_imax (arg1, tmp174) ; tmp179 = atspre_iadd (1, tmp180) ; tmp178 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp178, atslab_0, tmp179) ; ats_selptrset_mac(anairiats_sum_4, tmp178, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp178, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp178, atslab_3, tmp172) ; tmp183 = atspre_imax (tmp176, tmp163) ; tmp182 = atspre_iadd (1, tmp183) ; tmp181 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp181, atslab_0, tmp182) ; ats_selptrset_mac(anairiats_sum_4, tmp181, atslab_1, tmp158) ; ats_selptrset_mac(anairiats_sum_4, tmp181, atslab_2, tmp173) ; ats_selptrset_mac(anairiats_sum_4, tmp181, atslab_3, tmp160) ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp157, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_4, tmp157, atslab_1, tmp171) ; ats_selptrset_mac(anairiats_sum_4, tmp157, atslab_2, tmp178) ; ats_selptrset_mac(anairiats_sum_4, tmp157, atslab_3, tmp181) ; } /* end of [if] */ return (tmp157) ; } /* end of [avltree_lrotate_02195_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6) */ ATSstaticdec() ats_ptr_type insert_48 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_bool_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; ATSlocal (ats_int_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_bool_type, tmp116) ; ATSlocal (ats_int_type, tmp117) ; ATSlocal (ats_int_type, tmp118) ; ATSlocal (ats_int_type, tmp119) ; ATSlocal (ats_bool_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_int_type, tmp150) ; ATSlocal (ats_int_type, tmp151) ; ATSlocal (ats_int_type, tmp152) ; ATSlocal (ats_bool_type, tmp153) ; ATSlocal (ats_int_type, tmp154) ; ATSlocal (ats_int_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; __ats_lab_insert_48: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_9_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp106 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp107 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_3) ; tmp109 = compare_elt_elt_03959_ats_ptr_type (env0, tmp106, env1) ; tmp110 = atspre_lt_int_int (tmp109, 0) ; if (tmp110) { tmp111 = insert_48 (env0, env1, tmp107, arg1) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp111 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp113 = ats_caselptrlab_mac(anairiats_sum_4, tmp111, atslab_0) ; tmp112 = tmp113 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp111 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp112 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp108 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_4, tmp108, atslab_0) ; tmp114 = tmp115 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp108 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp114 = 0 ; break ; } while (0) ; tmp117 = atspre_isub (tmp112, tmp114) ; tmp116 = atspre_ilte (tmp117, 1) ; if (tmp116) { tmp119 = atspre_imax (tmp112, tmp114) ; tmp118 = atspre_iadd (1, tmp119) ; tmp104 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_0, tmp118) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_1, tmp106) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_2, tmp111) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_3, tmp108) ; } else { tmp104 = avltree_rrotate_02212_ats_ptr_type (tmp106, tmp112, tmp111, tmp114, tmp108) ; } /* end of [if] */ } else { tmp147 = atspre_gt_int_int (tmp109, 0) ; if (tmp147) { tmp148 = insert_48 (env0, env1, tmp108, arg1) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (tmp107 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp150 = ats_caselptrlab_mac(anairiats_sum_4, tmp107, atslab_0) ; tmp149 = tmp150 ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (tmp107 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp149 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (tmp148 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_4, tmp148, atslab_0) ; tmp151 = tmp152 ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (tmp148 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp151 = 0 ; break ; } while (0) ; tmp154 = atspre_isub (tmp151, tmp149) ; tmp153 = atspre_ilte (tmp154, 1) ; if (tmp153) { tmp156 = atspre_imax (tmp149, tmp151) ; tmp155 = atspre_iadd (1, tmp156) ; tmp104 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_0, tmp155) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_1, tmp106) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_2, tmp107) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_3, tmp148) ; } else { tmp104 = avltree_lrotate_02195_ats_ptr_type (tmp106, tmp149, tmp107, tmp151, tmp148) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp104 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_0, tmp105) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_2, tmp107) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_3, tmp108) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp184 = (ats_sum_ptr_type)0 ; tmp185 = (ats_sum_ptr_type)0 ; tmp104 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_2, tmp184) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_3, tmp185) ; break ; } while (0) ; return (tmp104) ; } /* end of [insert_48] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_48_closure_type ; ats_ptr_type insert_48_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_48 (((insert_48_closure_type*)cloptr)->closure_env_0, ((insert_48_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_48_closure_init (insert_48_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_48_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_48_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_48_closure_type *p_clo = ATS_MALLOC(sizeof(insert_48_closure_type)) ; insert_48_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6244(line=230, offs=3) -- 7632(line=267, offs=2) */ ATSstaticdec() ats_bool_type funset_insert_03969_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_bool_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab_funset_insert_03969_ats_ptr_type: /* ats_bool_type tmp186 ; */ tmp187 = insert_48 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp186)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp187 ; tmp103 = tmp186 ; return (tmp103) ; } /* end of [funset_insert_03969_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 9305(line=431, offs=3) -- 9394(line=434, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_add: /* ats_ptr_type tmp101 ; */ tmp101 = arg0 ; tmp102 = funset_insert_03969_ats_ptr_type ((&tmp101), arg1, statmp87) ; tmp100 = tmp101 ; return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26) */ ATSstaticdec() ats_ptr_type linset_make_nil_03988_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp189) ; __ats_lab_linset_make_nil_03988_: tmp189 = (ats_sum_ptr_type)0 ; return (tmp189) ; } /* end of [linset_make_nil_03988_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 9468(line=439, offs=17) -- 9495(line=439, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp188) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_nil: tmp188 = linset_make_nil_03988_ () ; return (tmp188) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45) */ ATSstaticdec() ats_int_type compare_elt_elt_03987_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp200) ; __ats_lab_compare_elt_elt_03987_ats_ptr_type: tmp200 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp200) ; } /* end of [compare_elt_elt_03987_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54) */ ATSstaticdec() ats_int_type avltree_height_02469_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp205) ; ATSlocal (ats_int_type, tmp206) ; __ats_lab_avltree_height_02469_ats_ptr_type: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp205 = tmp206 ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp205 = 0 ; break ; } while (0) ; return (tmp205) ; } /* end of [avltree_height_02469_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_02523_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_int_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_int_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_bool_type, tmp224) ; ATSlocal (ats_int_type, tmp225) ; ATSlocal (ats_int_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_int_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_int_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_int_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_int_type, tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_int_type, tmp241) ; ATSlocal (ats_int_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab_avltree_rrotate_02523_ats_ptr_type: tmp216 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp216 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp217 = &ats_caselptrlab_mac(anairiats_sum_4, tmp216, atslab_0) ; tmp218 = &ats_caselptrlab_mac(anairiats_sum_4, tmp216, atslab_2) ; tmp219 = &ats_caselptrlab_mac(anairiats_sum_4, tmp216, atslab_3) ; tmp221 = ats_ptrget_mac(ats_ptr_type, tmp218) ; tmp220 = avltree_height_02469_ats_ptr_type (tmp221) ; tmp223 = ats_ptrget_mac(ats_ptr_type, tmp219) ; tmp222 = avltree_height_02469_ats_ptr_type (tmp223) ; tmp225 = atspre_iadd (tmp220, 0) ; tmp224 = atspre_igte (tmp225, tmp222) ; if (tmp224) { tmp226 = atspre_iadd (tmp222, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp226 ; tmp227 = ats_ptrget_mac(ats_ptr_type, tmp219) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp227 ; tmp229 = atspre_imax (tmp220, tmp226) ; tmp228 = atspre_iadd (1, tmp229) ; ats_ptrget_mac(ats_int_type, tmp217) = tmp228 ; ats_ptrget_mac(ats_ptr_type, tmp219) = arg5 ; tmp215 = tmp216 ; } else { tmp230 = ats_ptrget_mac(ats_ptr_type, tmp219) ; // if (tmp230 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp231 = &ats_caselptrlab_mac(anairiats_sum_4, tmp230, atslab_0) ; tmp232 = &ats_caselptrlab_mac(anairiats_sum_4, tmp230, atslab_2) ; tmp233 = &ats_caselptrlab_mac(anairiats_sum_4, tmp230, atslab_3) ; tmp235 = ats_ptrget_mac(ats_ptr_type, tmp232) ; tmp234 = avltree_height_02469_ats_ptr_type (tmp235) ; tmp237 = ats_ptrget_mac(ats_ptr_type, tmp233) ; tmp236 = avltree_height_02469_ats_ptr_type (tmp237) ; tmp239 = atspre_imax (tmp236, arg3) ; tmp238 = atspre_iadd (1, tmp239) ; ats_ptrget_mac(ats_int_type, arg0) = tmp238 ; tmp240 = ats_ptrget_mac(ats_ptr_type, tmp233) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp240 ; tmp242 = atspre_imax (tmp220, tmp234) ; tmp241 = atspre_iadd (1, tmp242) ; ats_ptrget_mac(ats_int_type, tmp217) = tmp241 ; tmp243 = ats_ptrget_mac(ats_ptr_type, tmp232) ; ats_ptrget_mac(ats_ptr_type, tmp219) = tmp243 ; ats_ptrget_mac(ats_int_type, tmp231) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp232) = tmp216 ; ats_ptrget_mac(ats_ptr_type, tmp233) = arg5 ; tmp215 = tmp230 ; } /* end of [if] */ return (tmp215) ; } /* end of [avltree_rrotate_02523_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_02499_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_int_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_int_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_bool_type, tmp264) ; ATSlocal (ats_int_type, tmp265) ; ATSlocal (ats_int_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_int_type, tmp268) ; ATSlocal (ats_int_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_int_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_int_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_int_type, tmp278) ; ATSlocal (ats_int_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_int_type, tmp281) ; ATSlocal (ats_int_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; __ats_lab_avltree_lrotate_02499_ats_ptr_type: tmp256 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp256 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp257 = &ats_caselptrlab_mac(anairiats_sum_4, tmp256, atslab_0) ; tmp258 = &ats_caselptrlab_mac(anairiats_sum_4, tmp256, atslab_2) ; tmp259 = &ats_caselptrlab_mac(anairiats_sum_4, tmp256, atslab_3) ; tmp261 = ats_ptrget_mac(ats_ptr_type, tmp258) ; tmp260 = avltree_height_02469_ats_ptr_type (tmp261) ; tmp263 = ats_ptrget_mac(ats_ptr_type, tmp259) ; tmp262 = avltree_height_02469_ats_ptr_type (tmp263) ; tmp265 = atspre_iadd (tmp262, 0) ; tmp264 = atspre_ilte (tmp260, tmp265) ; if (tmp264) { tmp266 = atspre_iadd (tmp260, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp266 ; tmp267 = ats_ptrget_mac(ats_ptr_type, tmp258) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp267 ; tmp269 = atspre_imax (tmp266, tmp262) ; tmp268 = atspre_iadd (1, tmp269) ; ats_ptrget_mac(ats_int_type, tmp257) = tmp268 ; ats_ptrget_mac(ats_ptr_type, tmp258) = arg5 ; tmp255 = tmp256 ; } else { tmp270 = ats_ptrget_mac(ats_ptr_type, tmp258) ; // if (tmp270 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp271 = &ats_caselptrlab_mac(anairiats_sum_4, tmp270, atslab_0) ; tmp272 = &ats_caselptrlab_mac(anairiats_sum_4, tmp270, atslab_2) ; tmp273 = &ats_caselptrlab_mac(anairiats_sum_4, tmp270, atslab_3) ; tmp275 = ats_ptrget_mac(ats_ptr_type, tmp272) ; tmp274 = avltree_height_02469_ats_ptr_type (tmp275) ; tmp277 = ats_ptrget_mac(ats_ptr_type, tmp273) ; tmp276 = avltree_height_02469_ats_ptr_type (tmp277) ; tmp279 = atspre_imax (arg1, tmp274) ; tmp278 = atspre_iadd (1, tmp279) ; ats_ptrget_mac(ats_int_type, arg0) = tmp278 ; tmp280 = ats_ptrget_mac(ats_ptr_type, tmp272) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp280 ; tmp282 = atspre_imax (tmp276, tmp262) ; tmp281 = atspre_iadd (1, tmp282) ; ats_ptrget_mac(ats_int_type, tmp257) = tmp281 ; tmp283 = ats_ptrget_mac(ats_ptr_type, tmp273) ; ats_ptrget_mac(ats_ptr_type, tmp258) = tmp283 ; ats_ptrget_mac(ats_int_type, tmp271) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp272) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp273) = tmp256 ; tmp255 = tmp270 ; } /* end of [if] */ return (tmp255) ; } /* end of [avltree_lrotate_02499_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4) */ ATSstaticdec() ats_bool_type insert_55 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_int_type, tmp199) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_bool_type, tmp202) ; ATSlocal (ats_bool_type, tmp203) ; ATSlocal (ats_int_type, tmp204) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_bool_type, tmp210) ; ATSlocal (ats_int_type, tmp211) ; ATSlocal (ats_int_type, tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_bool_type, tmp244) ; ATSlocal (ats_bool_type, tmp245) ; ATSlocal (ats_int_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_bool_type, tmp250) ; ATSlocal (ats_int_type, tmp251) ; ATSlocal (ats_int_type, tmp252) ; ATSlocal (ats_int_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab_insert_55: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_35_1: tmp195 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp196 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp197 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp198 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp201 = ats_ptrget_mac(ats_ptr_type, tmp196) ; tmp199 = compare_elt_elt_03987_ats_ptr_type (arg1, tmp201, env0) ; tmp202 = atspre_lt_int_int (tmp199, 0) ; if (tmp202) { tmp203 = insert_55 (env0, tmp197, arg1) ; tmp207 = ats_ptrget_mac(ats_ptr_type, tmp197) ; tmp204 = avltree_height_02469_ats_ptr_type (tmp207) ; tmp209 = ats_ptrget_mac(ats_ptr_type, tmp198) ; tmp208 = avltree_height_02469_ats_ptr_type (tmp209) ; tmp211 = atspre_isub (tmp204, tmp208) ; tmp210 = atspre_ilte (tmp211, 1) ; if (tmp210) { tmp213 = atspre_imax (tmp204, tmp208) ; tmp212 = atspre_iadd (1, tmp213) ; ats_ptrget_mac(ats_int_type, tmp195) = tmp212 ; tmp194 = tmp203 ; } else { tmp214 = avltree_rrotate_02523_ats_ptr_type (tmp195, tmp204, tmp197, tmp208, tmp198, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp214 ; tmp194 = tmp203 ; } /* end of [if] */ } else { tmp244 = atspre_gt_int_int (tmp199, 0) ; if (tmp244) { tmp245 = insert_55 (env0, tmp198, arg1) ; tmp247 = ats_ptrget_mac(ats_ptr_type, tmp197) ; tmp246 = avltree_height_02469_ats_ptr_type (tmp247) ; tmp249 = ats_ptrget_mac(ats_ptr_type, tmp198) ; tmp248 = avltree_height_02469_ats_ptr_type (tmp249) ; tmp251 = atspre_isub (tmp248, tmp246) ; tmp250 = atspre_ilte (tmp251, 1) ; if (tmp250) { tmp253 = atspre_imax (tmp246, tmp248) ; tmp252 = atspre_iadd (1, tmp253) ; ats_ptrget_mac(ats_int_type, tmp195) = tmp252 ; tmp194 = tmp245 ; } else { tmp254 = avltree_lrotate_02499_ats_ptr_type (tmp195, tmp246, tmp197, tmp248, tmp198, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp254 ; tmp194 = tmp245 ; } /* end of [if] */ } else { tmp194 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp285 = (ats_sum_ptr_type)0 ; tmp286 = (ats_sum_ptr_type)0 ; tmp284 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp284, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_4, tmp284, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp284, atslab_2, tmp285) ; ats_selptrset_mac(anairiats_sum_4, tmp284, atslab_3, tmp286) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp284 ; tmp194 = ats_false_bool ; break ; } while (0) ; return (tmp194) ; } /* end of [insert_55] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } insert_55_closure_type ; ats_bool_type insert_55_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return insert_55 (((insert_55_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_55_closure_init (insert_55_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_55_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type insert_55_closure_make (ats_clo_ref_type env0) { insert_55_closure_type *p_clo = ATS_MALLOC(sizeof(insert_55_closure_type)) ; insert_55_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_03997_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp193) ; __ats_lab_linset_insert_03997_ats_ptr_type: tmp193 = insert_55 (arg2, arg0, arg1) ; return (tmp193) ; } /* end of [linset_insert_03997_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 9525(line=443, offs=3) -- 9612(line=446, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_bool_type, tmp192) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_add: /* ats_ptr_type tmp191 ; */ tmp191 = arg0 ; tmp192 = linset_insert_03997_ats_ptr_type ((&tmp191), arg1, statmp87) ; tmp190 = tmp191 ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19) */ ATSstaticdec() ats_ptr_type aux_62 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; __ats_lab_aux_62: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp290 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp292 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_3) ; ATS_FREE(arg0) ; tmp293 = aux_62 (tmp292, arg1) ; tmp294 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp294, atslab_0, tmp290) ; ats_selptrset_mac(anairiats_sum_2, tmp294, atslab_1, tmp293) ; arg0 = tmp291 ; arg1 = tmp294 ; goto __ats_lab_aux_62 ; // tail call break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp289 = arg1 ; break ; } while (0) ; return (tmp289) ; } /* end of [aux_62] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_free_04013_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp295) ; __ats_lab_linset_listize_free_04013_ats_ptr_type: tmp295 = (ats_sum_ptr_type)0 ; tmp288 = aux_62 (arg0, tmp295) ; return (tmp288) ; } /* end of [linset_listize_free_04013_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 9677(line=449, offs=26) -- 9711(line=449, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_listize_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_listize_free: tmp287 = linset_listize_free_04013_ats_ptr_type (arg0) ; return (tmp287) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_listize_free] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 9869(line=461, offs=11) -- 9954(line=465, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_63 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp296) ; __ats_lab___ats_fun_63: tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2cst_d2cst (arg0, arg1) ; return (tmp296) ; } /* end of [__ats_fun_63] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_63_closure_type ; ats_int_type __ats_fun_63_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_63 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_63_closure_init (__ats_fun_63_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_63_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_63_closure_make () { __ats_fun_63_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_63_closure_type)) ; __ats_fun_63_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 2871(line=98, offs=29) -- 2880(line=98, offs=38) */ ATSstaticdec() ats_ptr_type funmap_make_nil_04018_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp299) ; __ats_lab_funmap_make_nil_04018_: tmp299 = (ats_sum_ptr_type)0 ; return (tmp299) ; } /* end of [funmap_make_nil_04018_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 10071(line=474, offs=14) -- 10098(line=474, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp298) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_nil: tmp298 = funmap_make_nil_04018_ () ; return (tmp298) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 1960(line=59, offs=32) -- 1988(line=59, offs=60) */ ATSstaticdec() ats_int_type compare_key_key_04017_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp311) ; __ats_lab_compare_key_key_04017_ats_ptr_type: tmp311 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp311) ; } /* end of [compare_key_key_04017_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3756(line=137, offs=7) -- 4334(line=154, offs=6) */ ATSstaticdec() ats_bool_type search_69 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_int_type, tmp310) ; ATSlocal (ats_bool_type, tmp312) ; ATSlocal (ats_bool_type, tmp313) ; __ats_lab_search_69: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_41_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp307 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp308 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; tmp309 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_4) ; tmp310 = compare_key_key_04017_ats_ptr_type (env0, tmp306, env1) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp312 = atspre_lt_int_int (tmp310, 0) ; if (!tmp312) { goto __ats_lab_43_1 ; } arg0 = tmp308 ; arg1 = arg1 ; goto __ats_lab_search_69 ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp313 = atspre_gt_int_int (tmp310, 0) ; if (!tmp313) { goto __ats_lab_44_1 ; } arg0 = tmp309 ; arg1 = arg1 ; goto __ats_lab_search_69 ; // tail call break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: ats_ptrget_mac(ats_ptr_type, arg1) = tmp307 ; tmp305 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp305 = ats_false_bool ; break ; } while (0) ; return (tmp305) ; } /* end of [search_69] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } search_69_closure_type ; ats_bool_type search_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return search_69 (((search_69_closure_type*)cloptr)->closure_env_0, ((search_69_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type search_69_closure_init (search_69_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&search_69_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type search_69_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { search_69_closure_type *p_clo = ATS_MALLOC(sizeof(search_69_closure_type)) ; search_69_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3706(line=136, offs=3) -- 4355(line=155, offs=2) */ ATSstaticdec() ats_bool_type funmap_search_04023_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp304) ; __ats_lab_funmap_search_04023_ats_ptr_type_2cats_ptr_type: tmp304 = search_69 (arg1, arg2, arg0, arg3) ; return (tmp304) ; } /* end of [funmap_search_04023_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 4423(line=160, offs=3) -- 4687(line=173, offs=4) */ ATSstaticdec() ats_ptr_type funmap_search_opt_04024_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_bool_type, tmp303) ; __ats_lab_funmap_search_opt_04024_ats_ptr_type_2cats_ptr_type: /* ats_ptr_type tmp302 ; */ tmp303 = funmap_search_04023_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, (&tmp302)) ; if (tmp303) { tmp301 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp301, atslab_0, tmp302) ; } else { tmp301 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp301) ; } /* end of [funmap_search_opt_04024_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 10132(line=478, offs=7) -- 10184(line=479, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_search (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp300) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_search: tmp300 = funmap_search_opt_04024_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp297) ; return (tmp300) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_search] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 5755(line=209, offs=46) -- 6474(line=231, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_02903_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_int_type, tmp338) ; ATSlocal (ats_int_type, tmp339) ; ATSlocal (ats_int_type, tmp340) ; ATSlocal (ats_int_type, tmp341) ; ATSlocal (ats_bool_type, tmp342) ; ATSlocal (ats_int_type, tmp343) ; ATSlocal (ats_int_type, tmp344) ; ATSlocal (ats_int_type, tmp345) ; ATSlocal (ats_int_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_int_type, tmp352) ; ATSlocal (ats_int_type, tmp353) ; ATSlocal (ats_int_type, tmp354) ; ATSlocal (ats_int_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_int_type, tmp357) ; ATSlocal (ats_int_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_int_type, tmp360) ; ATSlocal (ats_int_type, tmp361) ; __ats_lab_avltree_rrotate_02903_ats_ptr_type_2cats_ptr_type: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp334 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_1) ; tmp335 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_2) ; tmp336 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_3) ; tmp337 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_4) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (tmp336 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_5, tmp336, atslab_0) ; tmp338 = tmp339 ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (tmp336 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp338 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (tmp337 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp341 = ats_caselptrlab_mac(anairiats_sum_5, tmp337, atslab_0) ; tmp340 = tmp341 ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (tmp337 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp340 = 0 ; break ; } while (0) ; tmp343 = atspre_iadd (tmp338, 0) ; tmp342 = atspre_igte (tmp343, tmp340) ; if (tmp342) { tmp344 = atspre_iadd (tmp340, 1) ; tmp346 = atspre_imax (tmp338, tmp344) ; tmp345 = atspre_iadd (1, tmp346) ; tmp347 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp347, atslab_0, tmp344) ; ats_selptrset_mac(anairiats_sum_5, tmp347, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp347, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp347, atslab_3, tmp337) ; ats_selptrset_mac(anairiats_sum_5, tmp347, atslab_4, arg5) ; tmp333 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_0, tmp345) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_1, tmp334) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_2, tmp335) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_3, tmp336) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_4, tmp347) ; } else { // if (tmp337 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp348 = ats_caselptrlab_mac(anairiats_sum_5, tmp337, atslab_1) ; tmp349 = ats_caselptrlab_mac(anairiats_sum_5, tmp337, atslab_2) ; tmp350 = ats_caselptrlab_mac(anairiats_sum_5, tmp337, atslab_3) ; tmp351 = ats_caselptrlab_mac(anairiats_sum_5, tmp337, atslab_4) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (tmp350 == (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp353 = ats_caselptrlab_mac(anairiats_sum_5, tmp350, atslab_0) ; tmp352 = tmp353 ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (tmp350 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp352 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (tmp351 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp355 = ats_caselptrlab_mac(anairiats_sum_5, tmp351, atslab_0) ; tmp354 = tmp355 ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (tmp351 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp354 = 0 ; break ; } while (0) ; tmp358 = atspre_imax (tmp338, tmp352) ; tmp357 = atspre_iadd (1, tmp358) ; tmp356 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp356, atslab_0, tmp357) ; ats_selptrset_mac(anairiats_sum_5, tmp356, atslab_1, tmp334) ; ats_selptrset_mac(anairiats_sum_5, tmp356, atslab_2, tmp335) ; ats_selptrset_mac(anairiats_sum_5, tmp356, atslab_3, tmp336) ; ats_selptrset_mac(anairiats_sum_5, tmp356, atslab_4, tmp350) ; tmp361 = atspre_imax (tmp354, arg4) ; tmp360 = atspre_iadd (1, tmp361) ; tmp359 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp359, atslab_0, tmp360) ; ats_selptrset_mac(anairiats_sum_5, tmp359, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp359, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp359, atslab_3, tmp351) ; ats_selptrset_mac(anairiats_sum_5, tmp359, atslab_4, arg5) ; tmp333 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_1, tmp348) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_2, tmp349) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_3, tmp356) ; ats_selptrset_mac(anairiats_sum_5, tmp333, atslab_4, tmp359) ; } /* end of [if] */ return (tmp333) ; } /* end of [avltree_rrotate_02903_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 4857(line=181, offs=46) -- 5607(line=203, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_02883_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_int_type, tmp377) ; ATSlocal (ats_int_type, tmp378) ; ATSlocal (ats_int_type, tmp379) ; ATSlocal (ats_int_type, tmp380) ; ATSlocal (ats_bool_type, tmp381) ; ATSlocal (ats_int_type, tmp382) ; ATSlocal (ats_int_type, tmp383) ; ATSlocal (ats_int_type, tmp384) ; ATSlocal (ats_int_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_int_type, tmp391) ; ATSlocal (ats_int_type, tmp392) ; ATSlocal (ats_int_type, tmp393) ; ATSlocal (ats_int_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_int_type, tmp396) ; ATSlocal (ats_int_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_int_type, tmp399) ; ATSlocal (ats_int_type, tmp400) ; __ats_lab_avltree_lrotate_02883_ats_ptr_type_2cats_ptr_type: // if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp373 = ats_caselptrlab_mac(anairiats_sum_5, arg5, atslab_1) ; tmp374 = ats_caselptrlab_mac(anairiats_sum_5, arg5, atslab_2) ; tmp375 = ats_caselptrlab_mac(anairiats_sum_5, arg5, atslab_3) ; tmp376 = ats_caselptrlab_mac(anairiats_sum_5, arg5, atslab_4) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (tmp375 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp378 = ats_caselptrlab_mac(anairiats_sum_5, tmp375, atslab_0) ; tmp377 = tmp378 ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (tmp375 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp377 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (tmp376 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp380 = ats_caselptrlab_mac(anairiats_sum_5, tmp376, atslab_0) ; tmp379 = tmp380 ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (tmp376 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp379 = 0 ; break ; } while (0) ; tmp382 = atspre_iadd (tmp379, 0) ; tmp381 = atspre_ilte (tmp377, tmp382) ; if (tmp381) { tmp383 = atspre_iadd (tmp377, 1) ; tmp385 = atspre_imax (tmp383, tmp379) ; tmp384 = atspre_iadd (1, tmp385) ; tmp386 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp386, atslab_0, tmp383) ; ats_selptrset_mac(anairiats_sum_5, tmp386, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp386, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp386, atslab_3, arg3) ; ats_selptrset_mac(anairiats_sum_5, tmp386, atslab_4, tmp375) ; tmp372 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_0, tmp384) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_1, tmp373) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_2, tmp374) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_3, tmp386) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_4, tmp376) ; } else { // if (tmp375 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp387 = ats_caselptrlab_mac(anairiats_sum_5, tmp375, atslab_1) ; tmp388 = ats_caselptrlab_mac(anairiats_sum_5, tmp375, atslab_2) ; tmp389 = ats_caselptrlab_mac(anairiats_sum_5, tmp375, atslab_3) ; tmp390 = ats_caselptrlab_mac(anairiats_sum_5, tmp375, atslab_4) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (tmp389 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp392 = ats_caselptrlab_mac(anairiats_sum_5, tmp389, atslab_0) ; tmp391 = tmp392 ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (tmp389 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp391 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (tmp390 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp394 = ats_caselptrlab_mac(anairiats_sum_5, tmp390, atslab_0) ; tmp393 = tmp394 ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (tmp390 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp393 = 0 ; break ; } while (0) ; tmp397 = atspre_imax (arg2, tmp391) ; tmp396 = atspre_iadd (1, tmp397) ; tmp395 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp395, atslab_0, tmp396) ; ats_selptrset_mac(anairiats_sum_5, tmp395, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp395, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp395, atslab_3, arg3) ; ats_selptrset_mac(anairiats_sum_5, tmp395, atslab_4, tmp389) ; tmp400 = atspre_imax (tmp393, tmp379) ; tmp399 = atspre_iadd (1, tmp400) ; tmp398 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp398, atslab_0, tmp399) ; ats_selptrset_mac(anairiats_sum_5, tmp398, atslab_1, tmp373) ; ats_selptrset_mac(anairiats_sum_5, tmp398, atslab_2, tmp374) ; ats_selptrset_mac(anairiats_sum_5, tmp398, atslab_3, tmp390) ; ats_selptrset_mac(anairiats_sum_5, tmp398, atslab_4, tmp376) ; tmp372 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_0, arg4) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_1, tmp387) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_2, tmp388) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_3, tmp395) ; ats_selptrset_mac(anairiats_sum_5, tmp372, atslab_4, tmp398) ; } /* end of [if] */ return (tmp372) ; } /* end of [avltree_lrotate_02883_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6597(line=238, offs=7) -- 7899(line=271, offs=6) */ ATSstaticdec() ats_ptr_type insert_73 (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_int_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_int_type, tmp322) ; ATSlocal (ats_bool_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_int_type, tmp325) ; ATSlocal (ats_int_type, tmp326) ; ATSlocal (ats_int_type, tmp327) ; ATSlocal (ats_int_type, tmp328) ; ATSlocal (ats_bool_type, tmp329) ; ATSlocal (ats_int_type, tmp330) ; ATSlocal (ats_int_type, tmp331) ; ATSlocal (ats_int_type, tmp332) ; ATSlocal (ats_bool_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_int_type, tmp364) ; ATSlocal (ats_int_type, tmp365) ; ATSlocal (ats_int_type, tmp366) ; ATSlocal (ats_int_type, tmp367) ; ATSlocal (ats_bool_type, tmp368) ; ATSlocal (ats_int_type, tmp369) ; ATSlocal (ats_int_type, tmp370) ; ATSlocal (ats_int_type, tmp371) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; __ats_lab_insert_73: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_46_1: tmp317 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp318 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp319 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp320 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ; tmp321 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_4) ; tmp322 = compare_key_key_04017_ats_ptr_type (env0, tmp318, env2) ; tmp323 = atspre_lt_int_int (tmp322, 0) ; if (tmp323) { tmp324 = insert_73 (env0, env1, env2, tmp320, arg1) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (tmp324 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp326 = ats_caselptrlab_mac(anairiats_sum_5, tmp324, atslab_0) ; tmp325 = tmp326 ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (tmp324 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp325 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (tmp321 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp328 = ats_caselptrlab_mac(anairiats_sum_5, tmp321, atslab_0) ; tmp327 = tmp328 ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (tmp321 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp327 = 0 ; break ; } while (0) ; tmp330 = atspre_isub (tmp325, tmp327) ; tmp329 = atspre_ilte (tmp330, 1) ; if (tmp329) { tmp332 = atspre_imax (tmp325, tmp327) ; tmp331 = atspre_iadd (1, tmp332) ; tmp316 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_0, tmp331) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_1, tmp318) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_2, tmp319) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_3, tmp324) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_4, tmp321) ; } else { tmp316 = avltree_rrotate_02903_ats_ptr_type_2cats_ptr_type (tmp318, tmp319, tmp325, tmp324, tmp327, tmp321) ; } /* end of [if] */ } else { tmp362 = atspre_gt_int_int (tmp322, 0) ; if (tmp362) { tmp363 = insert_73 (env0, env1, env2, tmp321, arg1) ; do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (tmp320 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp365 = ats_caselptrlab_mac(anairiats_sum_5, tmp320, atslab_0) ; tmp364 = tmp365 ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (tmp320 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: tmp364 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (tmp363 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp367 = ats_caselptrlab_mac(anairiats_sum_5, tmp363, atslab_0) ; tmp366 = tmp367 ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (tmp363 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp366 = 0 ; break ; } while (0) ; tmp369 = atspre_isub (tmp366, tmp364) ; tmp368 = atspre_ilte (tmp369, 1) ; if (tmp368) { tmp371 = atspre_imax (tmp364, tmp366) ; tmp370 = atspre_iadd (1, tmp371) ; tmp316 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_0, tmp370) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_1, tmp318) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_2, tmp319) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_3, tmp320) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_4, tmp363) ; } else { tmp316 = avltree_lrotate_02883_ats_ptr_type_2cats_ptr_type (tmp318, tmp319, tmp364, tmp320, tmp366, tmp363) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp316 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_0, tmp317) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_1, tmp318) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_2, env1) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_3, tmp320) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_4, tmp321) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp401 = (ats_sum_ptr_type)0 ; tmp402 = (ats_sum_ptr_type)0 ; tmp316 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_2, env1) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_3, tmp401) ; ats_selptrset_mac(anairiats_sum_5, tmp316, atslab_4, tmp402) ; break ; } while (0) ; return (tmp316) ; } /* end of [insert_73] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_clo_ref_type closure_env_2 ; } insert_73_closure_type ; ats_ptr_type insert_73_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_73 (((insert_73_closure_type*)cloptr)->closure_env_0, ((insert_73_closure_type*)cloptr)->closure_env_1, ((insert_73_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_73_closure_init (insert_73_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_73_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type insert_73_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) { insert_73_closure_type *p_clo = ATS_MALLOC(sizeof(insert_73_closure_type)) ; insert_73_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6560(line=237, offs=3) -- 7985(line=274, offs=2) */ ATSstaticdec() ats_bool_type funmap_insert_04025_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp315) ; ATSlocal (ats_bool_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; __ats_lab_funmap_insert_04025_ats_ptr_type_2cats_ptr_type: /* ats_bool_type tmp403 ; */ tmp404 = insert_73 (arg1, arg2, arg3, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp403)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp404 ; tmp315 = tmp403 ; return (tmp315) ; } /* end of [funmap_insert_04025_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dcst.dats: 10246(line=484, offs=7) -- 10300(line=485, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp314) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_insert: tmp314 = funmap_insert_04025_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, statmp297) ; return (tmp314) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_insert] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp87, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp297, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp87 = __ats_fun_39_closure_make () ; statmp297 = __ats_fun_63_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp2_dcst_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_appsym_dats.c0000644000175000017500000033475013431250607023344 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_bool_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_11 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_13 ; typedef struct { anairiats_rec_1 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_d2sym_loc ; ats_ptr_type atslab_d2sym_qua ; ats_ptr_type atslab_d2sym_sym ; ats_ptr_type atslab_d2sym_pitmlst ; } anairiats_rec_16 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEfun_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2PITM_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMsymdef_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eitem_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_item_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_trup_applst_eff_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_applst_sym_nil_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_applst_sym_cons2_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__D3PITM_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__D3EXPARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__D3EXPARGdyn_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_sub_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_max_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ieq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2kexp_make_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2kexplst_ismat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld_root) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_item) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_unista) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_trdn_arg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_trup_applst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_tmpsym) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_fun_restore) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_arg_restore) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_2, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__aritest_d2exparglst_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__d3exp_trup_applst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__D3PITM_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__D3EXPARGsta_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__D3EXPARGdyn_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_int_type list_length_compare_01411_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type loop_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_ptr_type d2exp_trup_item_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ; static ats_ptr_type d3exp_trup_item_6 (ats_ptr_type arg0) ; static ats_ptr_type d3pitm_make_8 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type d3pitm_get_dexp_9 (ats_ptr_type arg0) ; static ats_ptr_type d3pitm_get_type_10 (ats_ptr_type arg0) ; static ats_int_type d3pitm_get_pval_11 (ats_ptr_type arg0) ; static ats_void_type fprint_d3pitm_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxsel_arity_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type auxsel_skexplst_15 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmap_17 (ats_ptr_type arg0) ; static ats_ptr_type revapp_20 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_24 (ats_ptr_type arg0) ; static ats_void_type loop_26 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static anairiats_rec_15 auxsel_arglst_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type loop_28 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_bool_type app_31 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type loop_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_filter_funenv_01338_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_filter_vcloptr_01342_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type list_filter_cloptr_01341_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_bool_type __ats_fun_34 (ats_int_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_34_closure_make (ats_int_type env0) ; static ats_bool_type __ats_fun_34_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxselmax_27 (ats_ptr_type arg0) ; static ats_bool_type auxeq_d2itm_35 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type auxeq_d3pitm_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type __ats_fun_38 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_38_closure_make (ats_ptr_type env0) ; static ats_bool_type __ats_fun_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxeq_d3pitm_remdup_37 (ats_ptr_type arg0) ; static anairiats_rec_1 fopr_41 (ats_ptr_type arg0) ; static ats_void_type loop_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxins_45 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxins2_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 1676(line=59, offs=1) -- 1723(line=62, offs=29) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_appsym")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52087(line=1854, offs=21) -- 52314(line=1862, offs=6) */ ATSstaticdec() ats_int_type list_length_compare_01411_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_list_length_compare_01411_ats_ptr_type_2cats_ptr_type: do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_1_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; arg0 = tmp10 ; arg1 = tmp11 ; goto __ats_lab_list_length_compare_01411_ats_ptr_type_2cats_ptr_type ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp9 = 1 ; break ; } while (0) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp9 = -1 ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp9 = 0 ; break ; } while (0) ; break ; } while (0) ; return (tmp9) ; } /* end of [list_length_compare_01411_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 2165(line=90, offs=5) -- 2926(line=115, offs=4) */ ATSstaticdec() ats_bool_type loop_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_bool_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab_loop_1: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg1) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp2), atslab_s2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp3)->tag != 19) { goto __ats_lab_7_0 ; } __ats_lab_0_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_3) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_4) ; tmp6 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_5) ; tmp7 = atspre_eq_int_int (arg2, tmp4) ; if (tmp7) { tmp8 = list_length_compare_01411_ats_ptr_type_2cats_ptr_type (arg3, tmp5) ; tmp12 = atspre_ieq (tmp8, 0) ; if (tmp12) { tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__aritest_d2exparglst_s2exp (arg0, tmp6) ; } else { tmp1 = ats_false_bool ; } /* end of [if] */ } else { tmp1 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp3)->tag != 27) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_2) ; arg0 = arg0 ; arg1 = tmp13 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_1 ; // tail call break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp3)->tag != 28) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_2) ; arg0 = arg0 ; arg1 = tmp14 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_1 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp3)->tag != 20) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_2) ; arg0 = arg0 ; arg1 = tmp15 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_1 ; // tail call break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp1 = ats_false_bool ; break ; } while (0) ; return (tmp1) ; } /* end of [loop_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 3006(line=121, offs=3) -- 3316(line=134, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__aritest_d2exparglst_s2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__aritest_d2exparglst_s2exp: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_11_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp18 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp17)->tag != 1) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_7, tmp17, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_7, tmp17, atslab_2) ; tmp16 = loop_1 (tmp18, arg1, tmp19, tmp20) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)tmp17)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: arg0 = tmp18 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__aritest_d2exparglst_s2exp ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp16 = ats_true_bool ; break ; } while (0) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__aritest_d2exparglst_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; __ats_lab_prerr_error3_loc_02089_: /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp32 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp32) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 3404(line=141, offs=1) -- 4343(line=180, offs=4) */ ATSstaticdec() ats_ptr_type d2exp_trup_item_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab_d2exp_trup_item_4: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (tmp22) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (tmp22) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis (tmp23, tmp24) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_item (arg0, tmp25, arg1, arg2) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg (tmp26) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp26) ; if (tmp28 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 3905(line=165, offs=9) -- 3938(line=165, offs=42)") ; } tmp29 = ats_caselptrlab_mac(anairiats_sum_9, tmp28, atslab_0) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis (tmp27, tmp29) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_item (arg0, tmp30, arg1, arg2) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: /* tmp31 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp34 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_appsym.dats"), ATSstrcst("d2exp_trup_item")) ; /* tmp35 = */ atspre_prerr_string (ATSstrcst(": a dynamic constant or variable is expected.")) ; /* tmp36 = */ atspre_prerr_newline () ; tmp38 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp38)->tag = 17 ; ats_selptrset_mac(anairiats_sum_10, tmp38, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp38, atslab_1, arg1) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp38) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (arg0) ; break ; } while (0) ; return (tmp21) ; } /* end of [d2exp_trup_item_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4) */ ATSstaticdec() ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp45) ; __ats_lab_list_is_nil_01294_: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp45 = ats_false_bool ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp45 = ats_true_bool ; break ; } while (0) ; return (tmp45) ; } /* end of [list_is_nil_01294_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 4398(line=184, offs=5) -- 4994(line=212, offs=4) */ ATSstaticdec() ats_ptr_type d3exp_trup_item_6 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_d3exp_trup_item_6: tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_d3exp_loc) ; tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_d3exp_node) ; if (((ats_sum_ptr_type)tmp41)->tag != 23) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 4476(line=188, offs=5) -- 4514(line=188, offs=43)") ; } tmp42 = ats_caselptrlab_mac(anairiats_sum_10, tmp41, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_10, tmp41, atslab_1) ; tmp44 = list_is_nil_01294_ (tmp43) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp42)->tag != 0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_8, tmp42, atslab_0) ; if (tmp44) { tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cst (tmp40, tmp46) ; } else { tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpcst (tmp40, tmp46, tmp43) ; } /* end of [if] */ break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp42)->tag != 1) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_8, tmp42, atslab_0) ; if (tmp44) { tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var (tmp40, tmp47) ; } else { tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpvar (tmp40, tmp47, tmp43) ; } /* end of [if] */ break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp49 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 4927(line=209, offs=14) -- 4943(line=209, offs=30)", ATSstrcst("\n")) ; /* tmp48 = */ atspre_assert_errmsg (ats_false_bool, tmp49) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp40) ; break ; } while (0) ; return (tmp39) ; } /* end of [d3exp_trup_item_6] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 5192(line=225, offs=1) -- 5260(line=228, offs=31) */ ATSstaticdec() ats_ptr_type d3pitm_make_8 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; __ats_lab_d3pitm_make_8: tmp50 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp50, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp50, atslab_1, arg1) ; return (tmp50) ; } /* end of [d3pitm_make_8] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 5290(line=232, offs=1) -- 5380(line=237, offs=4) */ ATSstaticdec() ats_ptr_type d3pitm_get_dexp_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab_d3pitm_get_dexp_9: tmp52 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ; tmp51 = tmp52 ; return (tmp51) ; } /* end of [d3pitm_get_dexp_9] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 5414(line=240, offs=1) -- 5515(line=245, offs=4) */ ATSstaticdec() ats_ptr_type d3pitm_get_type_10 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab_d3pitm_get_type_10: tmp54 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ; tmp53 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp54), atslab_d3exp_type) ; return (tmp53) ; } /* end of [d3pitm_get_type_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 5549(line=248, offs=1) -- 5638(line=253, offs=4) */ ATSstaticdec() ats_int_type d3pitm_get_pval_11 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp55) ; ATSlocal (ats_int_type, tmp56) ; __ats_lab_d3pitm_get_pval_11: tmp56 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp55 = tmp56 ; return (tmp55) ; } /* end of [d3pitm_get_pval_11] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 5672(line=256, offs=1) -- 5933(line=268, offs=4) */ ATSstaticdec() ats_void_type fprint_d3pitm_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_int_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; __ats_lab_fprint_d3pitm_12: tmp58 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; tmp60 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp59), atslab_d3exp_node) ; if (((ats_sum_ptr_type)tmp60)->tag != 23) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 5764(line=261, offs=7) -- 5805(line=262, offs=34)") ; } tmp61 = ats_caselptrlab_mac(anairiats_sum_10, tmp60, atslab_0) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm (arg0, tmp61) ; /* tmp63 = */ atspre_fprint_string (arg0, ATSstrcst(" of ")) ; /* tmp57 = */ atspre_fprint_int (arg0, tmp58) ; return /* (tmp57) */ ; } /* end of [fprint_d3pitm_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 6479(line=294, offs=3) -- 8763(line=367, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__d3exp_trup_applst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (anairiats_rec_1, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_int_type, tmp83) ; ATSlocal (anairiats_rec_1, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (anairiats_rec_2, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; // ATSlocal_void (tmp104) ; ATSlocal (ats_bool_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__d3exp_trup_applst: tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_d2exp_loc) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_23_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp66)->tag != 0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_10, tmp66, atslab_1) ; tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d3exp_loc) ; tmp70 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d3exp_type) ; /* ats_int_type tmp71 ; */ tmp71 = 0 ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst (tmp70, tmp68, (&tmp71)) ; tmp73 = ats_select_mac(tmp72, atslab_0) ; tmp74 = ats_select_mac(tmp72, atslab_1) ; /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (tmp69, tmp74) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta (tmp65, tmp73, arg1) ; arg0 = arg0 ; arg1 = tmp76 ; arg2 = tmp67 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__d3exp_trup_applst ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (((ats_sum_ptr_type)tmp66)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_1) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_2) ; tmp80 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d3exp_loc) ; tmp81 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d3exp_type) ; /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add (tmp79) ; /* ats_int_type tmp83 ; */ tmp83 = 0 ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all (tmp81, tmp78, (&tmp83)) ; tmp85 = ats_select_mac(tmp84, atslab_0) ; tmp86 = ats_select_mac(tmp84, atslab_1) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (tmp80, tmp86) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_unista (tmp65, tmp85, arg1) ; tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp85), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp89)->tag != 19) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 7600(line=331, offs=11) -- 7705(line=333, offs=29)") ; } tmp90 = ats_caselptrlab_mac(anairiats_sum_4, tmp89, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_4, tmp89, atslab_2) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_4, tmp89, atslab_4) ; tmp93 = ats_caselptrlab_mac(anairiats_sum_4, tmp89, atslab_5) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp80, tmp78) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add (tmp78, tmp92, tmp93) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_trdn_arg (tmp79, tmp95) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype (tmp94, tmp93) ; tmp98 = ats_select_mac(tmp97, atslab_0) ; tmp99 = ats_select_mac(tmp97, atslab_1) ; tmp100 = ats_select_mac(tmp97, atslab_2) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_fun_restore (tmp90, tmp88) ; if (tmp98) { tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_arg_restore (tmp96, tmp95, tmp100) ; } else { tmp102 = tmp96 ; } /* end of [if] */ tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff (tmp94, tmp91) ; tmp105 = atspre_gt_int_int (tmp103, 0) ; if (tmp105) { tmp106 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp106)->tag = 24 ; ats_selptrset_mac(anairiats_sum_10, tmp106, atslab_0, tmp94) ; ats_selptrset_mac(anairiats_sum_10, tmp106, atslab_1, tmp91) ; /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp106) ; } else { /* empty */ } /* end of [if] */ tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn (tmp65, tmp99, tmp101, tmp77, tmp102) ; arg0 = arg0 ; arg1 = tmp107 ; arg2 = tmp67 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__d3exp_trup_applst ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp64 = arg1 ; break ; } while (0) ; return (tmp64) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__d3exp_trup_applst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 8900(line=380, offs=1) -- 10019(line=422, offs=4) */ ATSstaticdec() ats_ptr_type auxsel_arity_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_bool_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_auxsel_arity_14: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_27_1: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp108 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp110 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; ATS_FREE(arg2) ; arg0 = arg0 ; arg1 = tmp109 ; arg2 = tmp110 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_auxsel_arity_14 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp112 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp113 = ats_caselptrlab_mac(anairiats_sum_12, tmp111, atslab_0) ; tmp114 = ats_caselptrlab_mac(anairiats_sum_12, tmp111, atslab_1) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp114)->tag != 4) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_10, tmp114, atslab_1) ; tmp116 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp116, atslab_0, tmp112) ; ats_selptrset_mac(anairiats_sum_5, tmp116, atslab_1, arg2) ; arg0 = arg0 ; arg1 = tmp115 ; arg2 = tmp116 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_auxsel_arity_14 ; // tail call break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp117 = d2exp_trup_item_4 (arg0, tmp114, arg3) ; tmp119 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp117), atslab_d3exp_type) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__aritest_d2exparglst_s2exp (arg4, tmp119) ; tmp120 = auxsel_arity_14 (arg0, tmp112, arg2, arg3, arg4) ; if (tmp118) { tmp121 = d3pitm_make_8 (tmp113, tmp117) ; tmp108 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp108, atslab_0, tmp121) ; ats_selptrset_mac(anairiats_sum_5, tmp108, atslab_1, tmp120) ; } else { tmp108 = tmp120 ; } /* end of [if] */ break ; } while (0) ; break ; } while (0) ; return (tmp108) ; } /* end of [auxsel_arity_14] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 10050(line=425, offs=1) -- 11046(line=475, offs=4) */ ATSstaticdec() ats_ptr_type auxsel_skexplst_15 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (anairiats_rec_1, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (anairiats_rec_1, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab_auxsel_skexplst_15: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp122 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_0) ; tmp124 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp125 = ats_select_mac(tmp123, atslab_1) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp125)->tag != 5) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_10, tmp125, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_10, tmp125, atslab_1) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2kexplst_ismat (arg1, tmp126) ; tmp130 = ats_select_mac(tmp123, atslab_0) ; tmp129.atslab_0 = tmp130 ; tmp129.atslab_1 = tmp127 ; tmp131 = auxsel_skexplst_15 (tmp124, arg1) ; if (tmp128) { tmp122 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ats_selptrset_mac(anairiats_sum_14, tmp122, atslab_0, tmp129) ; ats_selptrset_mac(anairiats_sum_14, tmp122, atslab_1, tmp131) ; } else { tmp122 = tmp131 ; } /* end of [if] */ break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: arg0 = tmp124 ; arg1 = arg1 ; goto __ats_lab_auxsel_skexplst_15 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp122) ; } /* end of [auxsel_skexplst_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 11216(line=488, offs=1) -- 11377(line=496, offs=2) */ ATSstaticdec() ats_ptr_type auxmap_17 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (anairiats_rec_1, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab_auxmap_17: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp133 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_0) ; tmp135 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp136 = ats_select_mac(tmp134, atslab_0) ; tmp137 = auxmap_17 (tmp135) ; tmp133 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp133, atslab_0, tmp136) ; ats_selptrset_mac(anairiats_sum_5, tmp133, atslab_1, tmp137) ; break ; } while (0) ; return (tmp133) ; } /* end of [auxmap_17] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_20 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab_revapp_20: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp142 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp143 = ats_ptrget_mac(ats_ptr_type, tmp142) ; ats_ptrget_mac(ats_ptr_type, tmp142) = arg1 ; tmp144 = arg0 ; arg0 = tmp143 ; arg1 = tmp144 ; goto __ats_lab_revapp_20 ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp141 = arg1 ; break ; } while (0) ; return (tmp141) ; } /* end of [revapp_20] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp140 = revapp_20 (arg0, arg1) ; return (tmp140) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp145) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp145 = (ats_sum_ptr_type)0 ; tmp139 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp145) ; return (tmp139) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; __ats_lab_loop_23: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp172 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp170, arg3) ; tmp173 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_0, tmp172) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp173 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp174 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp171 ; arg1 = arg1 ; arg2 = tmp174 ; arg3 = arg3 ; goto __ats_lab_loop_23 ; // tail call break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp175 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp175 ; break ; } while (0) ; return /* (tmp169) */ ; } /* end of [loop_23] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp176) ; // ATSlocal_void (tmp177) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp176 ; */ /* tmp177 = */ loop_23 (arg0, arg1, (&tmp176), arg2) ; tmp168 = tmp176 ; return (tmp168) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp167 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp167) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 12559(line=543, offs=22) -- 12605(line=543, offs=68) */ ATSstaticdec() ats_ptr_type __ats_fun_24 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab___ats_fun_24: tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_d3exp_type) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2kexp_make_s2exp (tmp179) ; return (tmp178) ; } /* end of [__ats_fun_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_26 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; __ats_lab_loop_26: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp184 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp184 ; goto __ats_lab_loop_26 ; // tail call break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: break ; } while (0) ; return /* (tmp183) */ ; } /* end of [loop_26] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp182) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp182 = */ loop_26 (arg0) ; return /* (tmp182) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 11080(line=478, offs=1) -- 12973(line=554, offs=4) */ ATSstaticdec() anairiats_rec_15 auxsel_arglst_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_15, tmp132) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (anairiats_rec_1, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp180) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; __ats_lab_auxsel_arglst_16: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_39_1: tmp138 = list_vt_reverse_01506_ats_ptr_type (arg2) ; tmp146 = auxmap_17 (arg0) ; tmp132.atslab_0 = tmp146 ; tmp132.atslab_1 = ats_castfn_mac(ats_ptr_type, tmp138) ; tmp132.atslab_2 = arg1 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: ATS_FREE(arg0) ; tmp147 = list_vt_reverse_01506_ats_ptr_type (arg2) ; tmp148 = (ats_sum_ptr_type)0 ; tmp132.atslab_0 = tmp148 ; tmp132.atslab_1 = ats_castfn_mac(ats_ptr_type, tmp147) ; tmp132.atslab_2 = arg1 ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_0) ; tmp150 = &ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_1) ; tmp151 = ats_ptrget_mac(ats_ptr_type, tmp150) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (tmp151 != (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: ATS_FREE(arg0) ; tmp152 = list_vt_reverse_01506_ats_ptr_type (arg2) ; tmp154 = ats_select_mac(tmp149, atslab_0) ; tmp155 = (ats_sum_ptr_type)0 ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp153, atslab_0, tmp154) ; ats_selptrset_mac(anairiats_sum_5, tmp153, atslab_1, tmp155) ; tmp132.atslab_0 = tmp153 ; tmp132.atslab_1 = ats_castfn_mac(ats_ptr_type, tmp152) ; tmp132.atslab_2 = arg1 ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp156 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp156)->tag != 0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_10, tmp156, atslab_0) ; tmp159 = ats_caselptrlab_mac(anairiats_sum_10, tmp156, atslab_1) ; tmp160 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp160)->tag = 0 ; ats_selptrset_mac(anairiats_sum_10, tmp160, atslab_0, tmp158) ; ats_selptrset_mac(anairiats_sum_10, tmp160, atslab_1, tmp159) ; tmp161 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp161, atslab_0, tmp160) ; ats_selptrset_mac(anairiats_sum_5, tmp161, atslab_1, arg2) ; arg0 = arg0 ; arg1 = tmp157 ; arg2 = tmp161 ; goto __ats_lab_auxsel_arglst_16 ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (((ats_sum_ptr_type)tmp156)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp162 = ats_caselptrlab_mac(anairiats_sum_7, tmp156, atslab_0) ; tmp163 = ats_caselptrlab_mac(anairiats_sum_7, tmp156, atslab_1) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_7, tmp156, atslab_2) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup (tmp164) ; tmp166 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp165, &__ats_fun_24) ; tmp180 = auxsel_skexplst_15 (arg0, ats_castfn_mac(ats_ptr_type, tmp166)) ; /* tmp181 = */ list_vt_free_01499_ats_ptr_type (tmp166) ; tmp185 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp185)->tag = 1 ; ats_selptrset_mac(anairiats_sum_7, tmp185, atslab_0, tmp162) ; ats_selptrset_mac(anairiats_sum_7, tmp185, atslab_1, tmp163) ; ats_selptrset_mac(anairiats_sum_7, tmp185, atslab_2, tmp165) ; tmp186 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_0, tmp185) ; ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_1, arg2) ; arg0 = tmp180 ; arg1 = tmp157 ; arg2 = tmp186 ; goto __ats_lab_auxsel_arglst_16 ; // tail call break ; } while (0) ; break ; } while (0) ; break ; } while (0) ; break ; } while (0) ; return (tmp132) ; } /* end of [auxsel_arglst_16] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 13092(line=565, offs=1) -- 13282(line=577, offs=2) */ ATSstaticdec() ats_int_type loop_28 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_int_type, tmp191) ; ATSlocal (ats_int_type, tmp192) ; __ats_lab_loop_28: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp188 = arg1 ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp189 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp191 = d3pitm_get_pval_11 (tmp189) ; tmp192 = atspre_max_int_int (arg1, tmp191) ; arg0 = tmp190 ; arg1 = tmp192 ; goto __ats_lab_loop_28 ; // tail call break ; } while (0) ; return (tmp188) ; } /* end of [loop_28] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 22131(line=798, offs=6) -- 22186(line=798, offs=61) */ ATSstaticdec() ats_bool_type app_31 (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp197) ; __ats_lab_app_31: tmp197 = ((ats_bool_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp197) ; } /* end of [app_31] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19833(line=716, offs=7) -- 20397(line=733, offs=40) */ ATSstaticdec() ats_void_type loop_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_bool_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; __ats_lab_loop_33: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp200 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp201 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp202 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp200, arg3) ; if (tmp202) { tmp203 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp203, atslab_0, tmp200) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp203 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp204 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp201 ; arg1 = arg1 ; arg2 = tmp204 ; arg3 = arg3 ; goto __ats_lab_loop_33 ; // tail call } else { arg0 = tmp201 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_33 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp205 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp205 ; break ; } while (0) ; return /* (tmp199) */ ; } /* end of [loop_33] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19800(line=714, offs=24) -- 20566(line=744, offs=4) */ ATSstaticdec() ats_ptr_type list_filter_funenv_01338_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp206) ; // ATSlocal_void (tmp207) ; __ats_lab_list_filter_funenv_01338_ats_ptr_type: /* ats_ptr_type tmp206 ; */ /* tmp207 = */ loop_33 (arg0, arg1, (&tmp206), arg2) ; tmp198 = tmp206 ; return (tmp198) ; } /* end of [list_filter_funenv_01338_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 22056(line=796, offs=19) -- 22250(line=801, offs=4) */ ATSstaticdec() ats_ptr_type list_filter_vcloptr_01342_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp196) ; __ats_lab_list_filter_vcloptr_01342_ats_ptr_type: tmp196 = list_filter_funenv_01338_ats_ptr_type (arg0, &app_31, arg1) ; return (tmp196) ; } /* end of [list_filter_vcloptr_01342_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 21511(line=779, offs=15) -- 21973(line=793, offs=4) */ ATSstaticdec() ats_ptr_type list_filter_cloptr_01341_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp195) ; __ats_lab_list_filter_cloptr_01341_ats_ptr_type: tmp195 = list_filter_vcloptr_01342_ats_ptr_type (arg0, arg1) ; return (tmp195) ; } /* end of [list_filter_cloptr_01341_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 13391(line=585, offs=3) -- 13430(line=585, offs=42) */ ATSstaticdec() ats_bool_type __ats_fun_34 (ats_int_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp209) ; ATSlocal (ats_int_type, tmp210) ; __ats_lab___ats_fun_34: tmp210 = d3pitm_get_pval_11 (arg0) ; tmp209 = atspre_eq_int_int (tmp210, env0) ; return (tmp209) ; } /* end of [__ats_fun_34] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; } __ats_fun_34_closure_type ; ats_bool_type __ats_fun_34_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_34 (((__ats_fun_34_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_34_closure_init (__ats_fun_34_closure_type *p_clo, ats_int_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_34_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_34_closure_make (ats_int_type env0) { __ats_fun_34_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_34_closure_type)) ; __ats_fun_34_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 13034(line=559, offs=1) -- 13486(line=590, offs=4) */ ATSstaticdec() ats_ptr_type auxselmax_27 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_int_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp208) ; __ats_lab_auxselmax_27: tmp193 = loop_28 (arg0, -1000000) ; /* ats_ptr_type tmp208 ; */ tmp208 = __ats_fun_34_closure_make (tmp193) ; tmp194 = list_filter_cloptr_01341_ats_ptr_type (arg0, tmp208) ; ATS_FREE(tmp208) ; tmp187 = ats_castfn_mac(ats_ptr_type, tmp194) ; return (tmp187) ; } /* end of [auxselmax_27] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 13514(line=593, offs=1) -- 13802(line=611, offs=2) */ ATSstaticdec() ats_bool_type auxeq_d2itm_35 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; __ats_lab_auxeq_d2itm_35: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_60_0 ; } __ats_lab_57_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst (tmp212, tmp213) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: tmp211 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_63_0 ; } __ats_lab_60_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp214, tmp215) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: tmp211 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp211 = ats_false_bool ; break ; } while (0) ; return (tmp211) ; } /* end of [auxeq_d2itm_35] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 13836(line=615, offs=1) -- 14184(line=638, offs=4) */ ATSstaticdec() ats_bool_type auxeq_d3pitm_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; __ats_lab_auxeq_d3pitm_36: tmp217 = d3pitm_get_dexp_9 (arg0) ; tmp218 = d3pitm_get_dexp_9 (arg1) ; tmp219 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp217), atslab_d3exp_node) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp219)->tag != 23) { goto __ats_lab_67_0 ; } __ats_lab_64_1: tmp220 = ats_caselptrlab_mac(anairiats_sum_10, tmp219, atslab_0) ; tmp221 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp218), atslab_d3exp_node) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp221)->tag != 23) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp222 = ats_caselptrlab_mac(anairiats_sum_10, tmp221, atslab_0) ; tmp216 = auxeq_d2itm_35 (tmp220, tmp222) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: tmp216 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: __ats_lab_67_1: tmp216 = ats_false_bool ; break ; } while (0) ; return (tmp216) ; } /* end of [auxeq_d3pitm_36] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 14419(line=653, offs=7) -- 14454(line=653, offs=42) */ ATSstaticdec() ats_bool_type __ats_fun_38 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp228) ; ATSlocal (ats_bool_type, tmp229) ; __ats_lab___ats_fun_38: tmp229 = auxeq_d3pitm_36 (env0, arg0) ; tmp228 = atspre_neg_bool (tmp229) ; return (tmp228) ; } /* end of [__ats_fun_38] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_38_closure_type ; ats_bool_type __ats_fun_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_38 (((__ats_fun_38_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_38_closure_init (__ats_fun_38_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_38_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_38_closure_make (ats_ptr_type env0) { __ats_fun_38_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_38_closure_type)) ; __ats_fun_38_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 14215(line=641, offs=1) -- 14537(line=658, offs=2) */ ATSstaticdec() ats_ptr_type auxeq_d3pitm_remdup_37 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; __ats_lab_auxeq_d3pitm_remdup_37: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp223 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; /* ats_ptr_type tmp227 ; */ tmp227 = __ats_fun_38_closure_make (tmp224) ; tmp226 = list_filter_cloptr_01341_ats_ptr_type (tmp225, tmp227) ; ATS_FREE(tmp227) ; tmp223 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_0, tmp224) ; ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_1, ats_castfn_mac(ats_ptr_type, tmp226)) ; break ; } while (0) ; return (tmp223) ; } /* end of [auxeq_d3pitm_remdup_37] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 14632(line=664, offs=3) -- 14748(line=670, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym: tmp231 = (ats_sum_ptr_type)0 ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_tmpsym (arg0, arg1, tmp231, arg2) ; return (tmp230) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 15264(line=698, offs=3) -- 15412(line=707, offs=6) */ ATSstaticdec() anairiats_rec_1 fopr_41 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; __ats_lab_fopr_41: tmp239 = d3pitm_get_type_10 (arg0) ; tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2kexp_make_s2exp (tmp239) ; tmp238.atslab_0 = arg0 ; tmp238.atslab_1 = tmp240 ; return (tmp238) ; } /* end of [fopr_41] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (anairiats_rec_1, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; __ats_lab_loop_44: do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp245 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp246 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp247 = ((anairiats_rec_1(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp245, arg3) ; tmp248 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ats_selptrset_mac(anairiats_sum_14, tmp248, atslab_0, tmp247) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp248 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp249 = &ats_caselptrlab_mac(anairiats_sum_14, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp246 ; arg1 = arg1 ; arg2 = tmp249 ; arg3 = arg3 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp250 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp250 ; break ; } while (0) ; return /* (tmp244) */ ; } /* end of [loop_44] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp251) ; // ATSlocal_void (tmp252) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_anairiats_rec_1: /* ats_ptr_type tmp251 ; */ /* tmp252 = */ loop_44 (arg0, arg1, (&tmp251), arg2) ; tmp243 = tmp251 ; return (tmp243) ; } /* end of [list_map_funenv_01412_ats_ptr_type_anairiats_rec_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp242) ; __ats_lab_list_map_fun_01413_ats_ptr_type_anairiats_rec_1: tmp242 = list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp242) ; } /* end of [list_map_fun_01413_ats_ptr_type_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 14821(line=674, offs=3) -- 17117(line=778, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_tmpsym (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp241) ; // ATSlocal_void (tmp253) ; ATSlocal (anairiats_rec_15, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; // ATSlocal_void (tmp259) ; // ATSlocal_void (tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; // ATSlocal_void (tmp276) ; // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; // ATSlocal_void (tmp279) ; // ATSlocal_void (tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_tmpsym: tmp233 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_d2exp_loc) ; tmp234 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_d2sym_loc) ; tmp235 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_d2sym_pitmlst) ; tmp237 = (ats_sum_ptr_type)0 ; tmp236 = auxsel_arity_14 (tmp234, tmp235, tmp237, arg2, arg3) ; tmp241 = list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_castfn_mac(ats_ptr_type, tmp236), &fopr_41) ; /* tmp253 = */ list_vt_free_01499_ats_ptr_type (tmp236) ; tmp255 = (ats_sum_ptr_type)0 ; tmp254 = auxsel_arglst_16 (tmp241, arg3, tmp255) ; tmp256 = ats_select_mac(tmp254, atslab_0) ; tmp257 = auxselmax_27 (tmp256) ; tmp258 = auxeq_d3pitm_remdup_37 (tmp257) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (tmp258 != (ats_sum_ptr_type)0) { goto __ats_lab_73_0 ; } __ats_lab_72_1: /* tmp259 = */ prerr_error3_loc_02089_ (tmp233) ; /* tmp260 = */ atspre_prerr_string (ATSstrcst(": the symbol [")) ; /* tmp261 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym (stderr, arg1) ; /* tmp262 = */ atspre_prerr_string (ATSstrcst("] cannot be resolved as no match is found.")) ; /* tmp263 = */ atspre_prerr_newline () ; tmp265 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp265)->tag = 29 ; ats_selptrset_mac(anairiats_sum_10, tmp265, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp265, atslab_1, arg1) ; /* tmp264 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp265) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp233) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (tmp258 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } tmp266 = ats_caselptrlab_mac(anairiats_sum_5, tmp258, atslab_1) ; if (tmp266 != (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_5, tmp258, atslab_0) ; tmp268 = d3pitm_get_dexp_9 (tmp267) ; tmp269 = d3exp_trup_item_6 (tmp268) ; tmp271 = ats_select_mac(tmp254, atslab_1) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__d3exp_trup_applst (arg0, tmp269, tmp271) ; tmp272 = ats_select_mac(tmp254, atslab_2) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_trup_applst (arg0, tmp270, tmp272) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (tmp258 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp273 = ats_caselptrlab_mac(anairiats_sum_5, tmp258, atslab_1) ; // if (tmp273 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: tmp274 = ats_caselptrlab_mac(anairiats_sum_5, tmp258, atslab_0) ; tmp275 = ats_caselptrlab_mac(anairiats_sum_5, tmp273, atslab_0) ; /* tmp276 = */ prerr_error3_loc_02089_ (tmp233) ; /* tmp277 = */ atspre_prerr_string (ATSstrcst(": the symbol [")) ; /* tmp278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym (stderr, arg1) ; /* tmp279 = */ atspre_prerr_string (ATSstrcst("] cannot be resolved due to too many matches:\n")) ; /* tmp280 = */ fprint_d3pitm_12 (stderr, tmp274) ; /* tmp281 = */ atspre_prerr_newline () ; /* tmp282 = */ fprint_d3pitm_12 (stderr, tmp275) ; /* tmp283 = */ atspre_prerr_newline () ; tmp285 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp285)->tag = 30 ; ats_selptrset_mac(anairiats_sum_10, tmp285, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp285, atslab_1, arg1) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp285) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp233) ; break ; } while (0) ; return (tmp232) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_tmpsym] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 17213(line=787, offs=1) -- 17467(line=801, offs=2) */ ATSstaticdec() ats_ptr_type auxins_45 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_bool_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_int_type, tmp291) ; __ats_lab_auxins_45: tmp287 = atspre_gt_int_int (arg0, 0) ; if (tmp287) { if (arg2 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 17312(line=795, offs=9) -- 17340(line=795, offs=37)") ; } tmp288 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp289 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; tmp291 = atspre_sub_int_int (arg0, 1) ; tmp290 = auxins_45 (tmp291, arg1, tmp289) ; tmp286 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp286, atslab_0, tmp288) ; ats_selptrset_mac(anairiats_sum_5, tmp286, atslab_1, tmp290) ; } else { tmp286 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp286, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp286, atslab_1, arg2) ; } /* end of [if] */ return (tmp286) ; } /* end of [auxins_45] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 17473(line=804, offs=1) -- 18123(line=834, offs=2) */ ATSstaticdec() ats_ptr_type auxins2_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_int_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; __ats_lab_auxins2_46: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp294 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_d2exp_loc) ; tmp296 = (ats_sum_ptr_type)0 ; tmp295 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp295, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp295, atslab_1, tmp296) ; tmp293 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp293)->tag = 1 ; ats_selptrset_mac(anairiats_sum_7, tmp293, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_7, tmp293, atslab_1, tmp294) ; ats_selptrset_mac(anairiats_sum_7, tmp293, atslab_2, tmp295) ; tmp297 = (ats_sum_ptr_type)0 ; tmp292 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp292, atslab_0, tmp293) ; ats_selptrset_mac(anairiats_sum_5, tmp292, atslab_1, tmp297) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp298 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp299 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp298)->tag != 0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp300 = auxins2_46 (arg0, arg1, tmp299) ; tmp292 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp292, atslab_0, tmp298) ; ats_selptrset_mac(anairiats_sum_5, tmp292, atslab_1, tmp300) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (((ats_sum_ptr_type)tmp298)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp301 = ats_caselptrlab_mac(anairiats_sum_7, tmp298, atslab_0) ; tmp302 = ats_caselptrlab_mac(anairiats_sum_7, tmp298, atslab_1) ; tmp303 = ats_caselptrlab_mac(anairiats_sum_7, tmp298, atslab_2) ; tmp305 = auxins_45 (tmp301, arg1, tmp303) ; tmp304 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp304)->tag = 1 ; ats_selptrset_mac(anairiats_sum_7, tmp304, atslab_0, tmp301) ; ats_selptrset_mac(anairiats_sum_7, tmp304, atslab_1, tmp302) ; ats_selptrset_mac(anairiats_sum_7, tmp304, atslab_2, tmp305) ; tmp292 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp292, atslab_0, tmp304) ; ats_selptrset_mac(anairiats_sum_5, tmp292, atslab_1, tmp299) ; break ; } while (0) ; break ; } while (0) ; return (tmp292) ; } /* end of [auxins2_46] */ /* // /tmp/ATS-Postiats/src/pats_trans3_appsym.dats: 18210(line=840, offs=3) -- 18398(line=850, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_seloverld (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_seloverld: tmp307 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld_root (arg1) ; tmp308 = auxins2_46 (arg0, tmp307, arg3) ; tmp306 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym (arg0, arg2, tmp308) ; return (tmp306) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_seloverld] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__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_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__D3PITM_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__D3EXPARGsta_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__D3EXPARGdyn_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_appsym_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_dynexp_dats.c0000644000175000017500000066134513431250607023234 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_primval_loc ; ats_ptr_type atslab_primval_type ; ats_ptr_type atslab_primval_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_hilab_loc ; ats_ptr_type atslab_hilab_node ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_t2mpmarg_loc ; ats_ptr_type atslab_t2mpmarg_arg ; } anairiats_rec_14 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; } anairiats_sum_19 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyloc_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIDEXP_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEbool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEchar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEstring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEi0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEf0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcstsp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtyrep_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEempty_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEignore_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcastfn_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextval_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextfcall_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextmcall_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcon_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpcst_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpvar_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfoldat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfreeat_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEapp_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEif_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEsif_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcase_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElst_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErec_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEseq_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselab_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofvar_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofsel_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErefarg_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselvar_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselptr_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_var_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_ptr_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_var_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_ptr_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrpsz_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrinit_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEraise_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvararg_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtempenver_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElam_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfix_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEdelay_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEldelay_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElazyeval_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloop_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloopexn_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtrywith_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyfil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyloc_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__LABPRIMVAL_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcst_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfunlab_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcfunlab_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVd2vfunlab_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcst_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvar_36) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_sub_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_filename) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get) () ; ATSextern_fun(ats_double_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__double_make_string) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cst_is_sizeof) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_arrptr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hidexp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_lvalue) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ret) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_set_tyclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_env) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_int) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_intrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_bool) (ats_ptr_type, ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_char) (ats_ptr_type, ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_float) (ats_ptr_type, ats_ptr_type, ats_double_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_string) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_i0nt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_f0loat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cstsp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tyrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_top) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_extval) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_castfn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_vararg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_refarg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_error) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_sizeof) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_ptrofsel) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extfcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extmcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_cond) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_freecon) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpop) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpush) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_boxrec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_ptrofs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_xstore_ptrofs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_raise) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_nil) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_nil) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_cons) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_phead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_ptail) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arrpsz_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_asz) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrinc) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_closure_initize) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tempenver) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_dvarsetenv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_dvarsetenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_flabsetenv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_flabsetenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_flabsetenv_ifmap) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_vbindmapenv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_vbindmapenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapall) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tempenver) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifunarg_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_lam) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_fix) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loop) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loopexn) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_case) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_raise) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_delay) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_ldelay) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_lazyeval) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_trywith) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccompv) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpcstmat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpcst_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpvarmat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpvar_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp_some) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_string) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cstsp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tyrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofsel) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_vararg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_refarg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilab_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extfcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extmcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_lst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrpsz) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrinit) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_laminit) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_fixinit) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__labhidexplst_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_lam_flab) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__tmpvar_set2_tyclo) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_ptr_type auxret_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type prerr_errccomp_loc_02091_ (ats_ptr_type arg0) ; static ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) ; static ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type auxval_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type loop_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxnode_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxnodelst_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ; static ats_ptr_type auxlst_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type auxlst_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxlst2_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ptr_type arg6) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 1675(line=54, offs=18) -- 1705(line=54, offs=48) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_ccomp_dynexp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 2739(line=120, offs=3) -- 3035(line=133, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapall (arg0, arg3) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp2 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_2, tmp2, atslab_0) ; ATS_FREE(tmp2) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp_some (arg0, arg1, arg2, arg3, tmp3) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_error (arg1, arg2) ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 3088(line=137, offs=1) -- 4029(line=173, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp_some (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_bool_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp_some: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level (arg3) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp7 = atspre_lt_int_int (tmp6, tmp5) ; if (!tmp7) { goto __ats_lab_7_1 ; } tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg4), atslab_primval_node) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp8)->tag != 31) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_4, tmp8, atslab_0) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp9) ; tmp4 = arg4 ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp8)->tag != 32) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_5, tmp8, atslab_1) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp11) ; tmp4 = arg4 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp8)->tag != 33) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_6, tmp8, atslab_1) ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp13) ; tmp4 = arg4 ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_var (arg0, arg3) ; tmp16 = atspre_gt_int_int (tmp6, 0) ; if (tmp16) { tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_env (arg1, arg2, arg3) ; } else { tmp4 = arg4 ; } /* end of [if] */ break ; } while (0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp4 = arg4 ; break ; } while (0) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp_some] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 6227(line=253, offs=1) -- 6506(line=270, offs=4) */ ATSstaticdec() ats_ptr_type auxret_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; __ats_lab_auxret_3: tmp18 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp19 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp18, tmp19) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, arg1, tmp20, arg2) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp18, tmp20) ; return (tmp17) ; } /* end of [auxret_3] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2599(line=102, offs=20) -- 2662(line=105, offs=2) */ ATSstaticdec() ats_void_type prerr_errccomp_loc_02091_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; __ats_lab_prerr_errccomp_loc_02091_: /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp59 = */ atspre_prerr_string (ATSstrcst(": error(ccomp)")) ; return /* (tmp59) */ ; } /* end of [prerr_errccomp_loc_02091_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; __ats_lab_prerr_interror_loc_02085_: /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp66 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp67 = */ prerr_FILENAME_02083_ () ; /* tmp64 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp64) */ ; } /* end of [prerr_interror_loc_02085_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 6576(line=276, offs=3) -- 11212(line=472, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_bool_type, tmp28) ; ATSlocal (ats_char_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_double_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp: tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp24 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp25 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp25)->tag != 1) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_var (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp25)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cst (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp25)->tag != 2) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_8, tmp25, atslab_0) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_int (tmp23, tmp24, tmp26) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp25)->tag != 3) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_4, tmp25, atslab_0) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_intrep (tmp23, tmp24, tmp27) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp25)->tag != 4) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_9, tmp25, atslab_0) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_bool (tmp23, tmp24, tmp28) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp25)->tag != 5) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_10, tmp25, atslab_0) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_char (tmp23, tmp24, tmp29) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp25)->tag != 6) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_4, tmp25, atslab_0) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__double_make_string (tmp30) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_float (tmp23, tmp24, tmp31) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp25)->tag != 7) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_string (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp25)->tag != 8) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_4, tmp25, atslab_0) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_i0nt (tmp23, tmp24, tmp32) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp25)->tag != 9) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_4, tmp25, atslab_0) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_f0loat (tmp23, tmp24, tmp33) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp25)->tag != 10) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cstsp (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp25)->tag != 11) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tyrep (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp25)->tag != 12) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_top (tmp23, tmp24) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp25)->tag != 13) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp23, tmp24) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp25)->tag != 14) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_4, tmp25, atslab_0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp34 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp25)->tag != 16) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_4, tmp25, atslab_0) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_extval (tmp23, tmp24, tmp35) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp25)->tag != 15) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_6, tmp25, atslab_0) ; tmp37 = ats_caselptrlab_mac(anairiats_sum_6, tmp25, atslab_1) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp37) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_castfn (tmp23, tmp24, tmp36, tmp38) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp25)->tag != 17) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp25)->tag != 18) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp25)->tag != 19) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp25)->tag != 20) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpcst (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp25)->tag != 21) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpvar (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp25)->tag != 22) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp23, tmp24) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp25)->tag != 23) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_4, tmp25, atslab_0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp39) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_freecon (tmp23, tmp40) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp41) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp23, tmp24) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp25)->tag != 24) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_6, tmp25, atslab_0) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_6, tmp25, atslab_1) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp46 = ats_selsin_mac(tmp45, atslab_1) */ ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp43) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpush (tmp23, tmp47) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp48) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp44) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpop (tmp23) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp51) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ; tmp22 = tmp50 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp25)->tag != 25) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp25)->tag != 26) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp25)->tag != 28) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp25)->tag != 29) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp25)->tag != 30) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp25)->tag != 31) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_seq (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp25)->tag != 32) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selab (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp25)->tag != 33) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofvar (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp25)->tag != 34) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofsel (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp25)->tag != 45) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_vararg (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp25)->tag != 35) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_refarg (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp25)->tag != 36) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selvar (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp25)->tag != 37) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selptr (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp25)->tag != 38) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_var (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp25)->tag != 39) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_ptr (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp25)->tag != 40) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_var (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp25)->tag != 41) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_ptr (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp25)->tag != 42) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp25)->tag != 44) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp25)->tag != 46) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_4, tmp25, atslab_0) ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tempenver (arg0, tmp54) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tempenver (tmp23, tmp54) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp57) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp23, tmp24) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp25)->tag != 47) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_lam (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp25)->tag != 48) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_fix (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp25)->tag != 49) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp25)->tag != 50) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp25)->tag != 51) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp25)->tag != 52) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loop (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp25)->tag != 53) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loopexn (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp25)->tag != 54) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp22 = auxret_3 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp25)->tag != 27) { goto __ats_lab_62_0 ; } __ats_lab_61_1: /* tmp58 = */ prerr_errccomp_loc_02091_ (tmp23) ; /* tmp61 = */ atspre_prerr_string (ATSstrcst(": [sif] is not supported after proof-erasure.")) ; /* tmp62 = */ atspre_prerr_newline () ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_error (tmp23, tmp24) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: /* tmp63 = */ prerr_interror_loc_02085_ (tmp23) ; /* tmp68 = */ atspre_prerr_string (ATSstrcst(": hidexp_ccomp: hde0 = ")) ; /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hidexp (arg2) ; /* tmp70 = */ atspre_prerr_newline () ; tmp71 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 11160(line=469, offs=51) -- 11169(line=469, offs=60)", ATSstrcst("\n")) ; /* tmp22 = */ ats_exit_errmsg (1, tmp71) ; break ; } while (0) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 11281(line=476, offs=3) -- 11446(line=482, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_bool_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_lvalue (arg2) ; if (tmp73) { tmp72 = auxret_3 (arg0, arg1, arg2) ; } else { tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, arg2) ; } /* end of [if] */ return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 11576(line=493, offs=1) -- 12186(line=525, offs=4) */ ATSstaticdec() ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab_loop_9: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp76 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp76 ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp77) ; tmp80 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp80, atslab_0, tmp79) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp80 ; // if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp81 = &ats_caselptrlab_mac(anairiats_sum_11, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp78 ; arg3 = tmp81 ; goto __ats_lab_loop_9 ; // tail call break ; } while (0) ; return /* (tmp75) */ ; } /* end of [loop_9] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 11546(line=490, offs=3) -- 12306(line=534, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp82) ; // ATSlocal_void (tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccomp: /* ats_ptr_type tmp82 ; */ /* tmp83 = */ loop_9 (arg0, arg1, arg2, (&tmp82)) ; tmp74 = ats_castfn_mac(ats_ptr_type, tmp82) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 12416(line=542, offs=5) -- 12963(line=566, offs=4) */ ATSstaticdec() ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; __ats_lab_loop_11: do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_0) ; tmp87 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv (arg0, arg1, tmp86) ; tmp89 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp89, atslab_0, tmp88) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp89 ; if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 12695(line=556, offs=9) -- 12727(line=556, offs=41)") ; } tmp90 = &ats_caselptrlab_mac(anairiats_sum_11, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp87 ; arg3 = tmp90 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp91 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp91 ; break ; } while (0) ; return /* (tmp85) */ ; } /* end of [loop_11] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 12386(line=540, offs=3) -- 13083(line=575, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccompv (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp92) ; // ATSlocal_void (tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccompv: /* ats_ptr_type tmp92 ; */ /* tmp93 = */ loop_11 (arg0, arg1, arg2, (&tmp92)) ; tmp84 = ats_castfn_mac(ats_ptr_type, tmp92) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccompv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 13333(line=591, offs=1) -- 14236(line=641, offs=4) */ ATSstaticdec() ats_void_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab_loop_13: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp96 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp96 ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_0) ; tmp98 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_11, tmp97, atslab_0) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_11, tmp97, atslab_1) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp100) ; tmp102 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp102, atslab_0, tmp99) ; ats_selptrset_mac(anairiats_sum_11, tmp102, atslab_1, tmp101) ; tmp103 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp103, atslab_0, tmp102) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp103 ; // if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp104 = &ats_caselptrlab_mac(anairiats_sum_11, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp98 ; arg3 = tmp104 ; goto __ats_lab_loop_13 ; // tail call break ; } while (0) ; return /* (tmp95) */ ; } /* end of [loop_13] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 13302(line=588, offs=3) -- 14395(line=652, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__labhidexplst_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp105) ; // ATSlocal_void (tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__labhidexplst_ccomp: /* ats_ptr_type tmp105 ; */ /* tmp106 = */ loop_13 (arg0, arg1, arg2, (&tmp105)) ; tmp94 = ats_castfn_mac(ats_ptr_type, tmp105) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__labhidexplst_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 14460(line=659, offs=1) -- 14713(line=671, offs=4) */ ATSstaticdec() ats_void_type auxval_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab_auxval_14: tmp108 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, arg3) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (tmp108, arg2, tmp109) ; /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp110) ; return /* (tmp107) */ ; } /* end of [auxval_14] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 14785(line=677, offs=1) -- 18744(line=831, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; // ATSlocal_void (tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_int_type, tmp129) ; ATSlocal (ats_bool_type, tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret: tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp113 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; tmp114 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp114)->tag != 1) { goto __ats_lab_70_0 ; } __ats_lab_69_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp114)->tag != 0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp114)->tag != 2) { goto __ats_lab_72_0 ; } __ats_lab_71_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp114)->tag != 3) { goto __ats_lab_73_0 ; } __ats_lab_72_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp114)->tag != 4) { goto __ats_lab_74_0 ; } __ats_lab_73_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp114)->tag != 5) { goto __ats_lab_75_0 ; } __ats_lab_74_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp114)->tag != 6) { goto __ats_lab_76_0 ; } __ats_lab_75_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp114)->tag != 7) { goto __ats_lab_77_0 ; } __ats_lab_76_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp114)->tag != 8) { goto __ats_lab_78_0 ; } __ats_lab_77_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp114)->tag != 9) { goto __ats_lab_79_0 ; } __ats_lab_78_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp114)->tag != 12) { goto __ats_lab_80_0 ; } __ats_lab_79_1: break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp114)->tag != 13) { goto __ats_lab_81_0 ; } __ats_lab_80_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp114)->tag != 14) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_4, tmp114, atslab_0) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp115) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp114)->tag != 15) { goto __ats_lab_83_0 ; } __ats_lab_82_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp114)->tag != 16) { goto __ats_lab_84_0 ; } __ats_lab_83_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp114)->tag != 17) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extfcall (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp114)->tag != 18) { goto __ats_lab_86_0 ; } __ats_lab_85_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extmcall (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp114)->tag != 19) { goto __ats_lab_87_0 ; } __ats_lab_86_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_con (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp114)->tag != 20) { goto __ats_lab_88_0 ; } __ats_lab_87_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp114)->tag != 21) { goto __ats_lab_89_0 ; } __ats_lab_88_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp114)->tag != 22) { goto __ats_lab_90_0 ; } __ats_lab_89_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp114)->tag != 23) { goto __ats_lab_91_0 ; } __ats_lab_90_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp114)->tag != 24) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_6, tmp114, atslab_0) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_6, tmp114, atslab_1) ; /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp120 = ats_selsin_mac(tmp119, atslab_1) */ ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp117) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpush (tmp112, tmp121) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp122) ; /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, arg1, arg2, tmp118) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpop (tmp112) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp125) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp114)->tag != 25) { goto __ats_lab_93_0 ; } __ats_lab_92_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_app (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp114)->tag != 26) { goto __ats_lab_94_0 ; } __ats_lab_93_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_if (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp114)->tag != 28) { goto __ats_lab_95_0 ; } __ats_lab_94_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_case (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp114)->tag != 29) { goto __ats_lab_96_0 ; } __ats_lab_95_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_lst (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp114)->tag != 30) { goto __ats_lab_97_0 ; } __ats_lab_96_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_rec (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp114)->tag != 31) { goto __ats_lab_98_0 ; } __ats_lab_97_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_seq (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp114)->tag != 32) { goto __ats_lab_99_0 ; } __ats_lab_98_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp114)->tag != 33) { goto __ats_lab_100_0 ; } __ats_lab_99_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp114)->tag != 34) { goto __ats_lab_101_0 ; } __ats_lab_100_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp114)->tag != 36) { goto __ats_lab_102_0 ; } __ats_lab_101_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp114)->tag != 37) { goto __ats_lab_103_0 ; } __ats_lab_102_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp114)->tag != 38) { goto __ats_lab_104_0 ; } __ats_lab_103_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp114)->tag != 39) { goto __ats_lab_105_0 ; } __ats_lab_104_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp114)->tag != 40) { goto __ats_lab_106_0 ; } __ats_lab_105_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp114)->tag != 41) { goto __ats_lab_107_0 ; } __ats_lab_106_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp114)->tag != 42) { goto __ats_lab_108_0 ; } __ats_lab_107_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrpsz (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp114)->tag != 43) { goto __ats_lab_109_0 ; } __ats_lab_108_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrinit (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp114)->tag != 44) { goto __ats_lab_110_0 ; } __ats_lab_109_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_raise (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp114)->tag != 45) { goto __ats_lab_111_0 ; } __ats_lab_110_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp114)->tag != 47) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_12, tmp114, atslab_0) ; tmp128 = atspre_neq_int_int (tmp127, 0) ; if (tmp128) { /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; } else { /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_laminit (arg0, arg1, arg2, arg3) ; } /* end of [if] */ break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp114)->tag != 48) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_12, tmp114, atslab_0) ; tmp130 = atspre_neq_int_int (tmp129, 0) ; if (tmp130) { /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; } else { /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_fixinit (arg0, arg1, arg2, arg3) ; } /* end of [if] */ break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp114)->tag != 49) { goto __ats_lab_114_0 ; } __ats_lab_113_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_delay (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp114)->tag != 50) { goto __ats_lab_115_0 ; } __ats_lab_114_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_ldelay (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp114)->tag != 51) { goto __ats_lab_116_0 ; } __ats_lab_115_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_lazyeval (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp114)->tag != 52) { goto __ats_lab_117_0 ; } __ats_lab_116_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp114)->tag != 53) { goto __ats_lab_118_0 ; } __ats_lab_117_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp114)->tag != 54) { goto __ats_lab_119_0 ; } __ats_lab_118_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_trywith (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp114)->tag != 27) { goto __ats_lab_120_0 ; } __ats_lab_119_1: /* tmp111 = */ auxval_14 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: __ats_lab_120_1: /* tmp131 = */ atspre_print_string (ATSstrcst("hidexp_ccomp_ret: loc0 = ")) ; /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location (tmp112) ; /* tmp133 = */ atspre_print_newline () ; /* tmp134 = */ atspre_print_string (ATSstrcst("hidexp_ccomp_ret: hde0 = ")) ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidexp (arg3) ; /* tmp136 = */ atspre_print_newline () ; tmp137 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 18706(line=828, offs=5) -- 18716(line=828, offs=15)", ATSstrcst("\n")) ; /* tmp111 = */ ats_exit_errmsg (1, tmp137) ; break ; } while (0) ; return /* (tmp111) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 18843(line=839, offs=3) -- 19138(line=853, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilab_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilab_ccomp: tmp139 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg2), atslab_hilab_loc) ; tmp140 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg2), atslab_hilab_node) ; do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp140)->tag != 0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_0) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab (tmp139, tmp141) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: // if (((ats_sum_ptr_type)tmp140)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_122_1: tmp142 = ats_caselptrlab_mac(anairiats_sum_4, tmp140, atslab_0) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccomp (arg0, arg1, tmp142) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_ind (tmp139, tmp143) ; break ; } while (0) ; return (tmp138) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilab_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 19191(line=857, offs=3) -- 19447(line=869, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp: do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_0) ; tmp146 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilab_ccomp (arg0, arg1, tmp145) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (arg0, arg1, tmp146) ; tmp144 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp144, atslab_0, tmp147) ; ats_selptrset_mac(anairiats_sum_11, tmp144, atslab_1, tmp148) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (arg2 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 19220(line=860, offs=1) -- 19440(line=867, offs=29)") ; } __ats_lab_124_1: tmp144 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp144) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 19526(line=875, offs=3) -- 19842(line=894, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_var: tmp150 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp152 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp152)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 19615(line=881, offs=1) -- 19645(line=881, offs=31)") ; } tmp153 = ats_caselptrlab_mac(anairiats_sum_4, tmp152, atslab_0) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp (arg0, tmp150, tmp151, tmp153) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (tmp153) ; do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (tmp155 != (ats_sum_ptr_type)0) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp149 = tmp154 ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: // if (tmp155 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_126_1: tmp156 = (ats_sum_ptr_type)0 ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr (tmp150, tmp151, tmp154, tmp151, tmp156) ; break ; } while (0) ; return (tmp149) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_var] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 19923(line=900, offs=3) -- 20115(line=911, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; // ATSlocal_void (tmp162) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cst: tmp158 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp160)->tag != 0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 20012(line=906, offs=1) -- 20042(line=906, offs=31)") ; } tmp161 = ats_caselptrlab_mac(anairiats_sum_4, tmp160, atslab_0) ; /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_add (tmp161) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cst (tmp158, tmp159, tmp161) ; return (tmp157) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 20199(line=917, offs=3) -- 20363(line=925, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_string (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_string: tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp165 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp166 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp166)->tag != 7) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 20284(line=921, offs=5) -- 20318(line=921, offs=39)") ; } tmp167 = ats_caselptrlab_mac(anairiats_sum_4, tmp166, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_string (tmp164, tmp165, tmp167) ; return (tmp163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_string] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 20449(line=931, offs=3) -- 20993(line=954, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cstsp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cstsp: tmp169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp171)->tag != 10) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 20534(line=935, offs=5) -- 20565(line=935, offs=36)") ; } tmp172 = ats_caselptrlab_mac(anairiats_sum_4, tmp171, atslab_0) ; do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp172)->tag != 0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_filename (tmp169) ; tmp173 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp173)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp173, atslab_0, tmp174) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp172)->tag != 1) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp173 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp173)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp173, atslab_0, tmp169) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: // if (((ats_sum_ptr_type)tmp172)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_129_1: tmp176 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 20859(line=948, offs=16) -- 20875(line=948, offs=32)", ATSstrcst("\n")) ; /* tmp175 = */ atspre_assert_errmsg (ats_false_bool, tmp176) ; /* tmp173 = */ ats_exit (1) ; break ; } while (0) ; tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cstsp (tmp169, tmp170, tmp173) ; return (tmp168) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_cstsp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 21080(line=960, offs=3) -- 21241(line=968, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tyrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tyrep: tmp178 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp180 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp180)->tag != 11) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 21165(line=964, offs=5) -- 21197(line=964, offs=37)") ; } tmp181 = ats_caselptrlab_mac(anairiats_sum_4, tmp180, atslab_0) ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tyrep (tmp178, tmp179, tmp181) ; return (tmp177) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tyrep] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 21329(line=974, offs=3) -- 22366(line=1018, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpcst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_int_type, tmp188) ; ATSlocal (ats_bool_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_bool_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpcst: tmp183 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp185 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp185)->tag != 20) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 21414(line=978, offs=5) -- 21454(line=978, offs=45)") ; } tmp186 = ats_caselptrlab_mac(anairiats_sum_6, tmp185, atslab_0) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_6, tmp185, atslab_1) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ; do { /* branch: __ats_lab_130 */ __ats_lab_130_0: __ats_lab_130_1: tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cst_is_sizeof (tmp186) ; if (!tmp189) { goto __ats_lab_131_1 ; } if (tmp187 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 21567(line=987, offs=9) -- 21593(line=987, offs=35)") ; } tmp190 = ats_caselptrlab_mac(anairiats_sum_11, tmp187, atslab_0) ; tmp191 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp190), atslab_t2mpmarg_loc) ; tmp192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp190), atslab_t2mpmarg_arg) ; if (tmp192 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 21635(line=989, offs=9) -- 21673(line=989, offs=47)") ; } tmp193 = ats_caselptrlab_mac(anairiats_sum_11, tmp192, atslab_0) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp191, tmp193) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_sizeof (tmp183, tmp194) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: __ats_lab_131_1: tmp195 = atspre_gt_int_int (tmp188, 0) ; if (!tmp195) { goto __ats_lab_132_1 ; } tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcst (tmp183, tmp184, tmp186, tmp187) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: __ats_lab_132_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpcst_match (arg0, tmp186, tmp187) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpcstmat (arg0, tmp183, tmp184, tmp186, tmp187, tmp196) ; break ; } while (0) ; return (tmp182) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpcst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 22453(line=1024, offs=3) -- 23244(line=1059, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_int_type, tmp203) ; ATSlocal (ats_bool_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpvar: tmp198 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp199 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp200 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp200)->tag != 21) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 22538(line=1028, offs=5) -- 22579(line=1028, offs=46)") ; } tmp201 = ats_caselptrlab_mac(anairiats_sum_6, tmp200, atslab_0) ; tmp202 = ats_caselptrlab_mac(anairiats_sum_6, tmp200, atslab_1) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ; do { /* branch: __ats_lab_133 */ __ats_lab_133_0: __ats_lab_133_1: tmp204 = atspre_gt_int_int (tmp203, 0) ; if (!tmp204) { goto __ats_lab_134_1 ; } tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvar (tmp198, tmp199, tmp201, tmp202) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: __ats_lab_134_1: tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpvar_match (arg0, tmp201, tmp202) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpvarmat (arg0, tmp198, tmp199, tmp201, tmp202, tmp205) ; break ; } while (0) ; return (tmp197) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 23456(line=1072, offs=5) -- 23801(line=1090, offs=4) */ ATSstaticdec() ats_ptr_type loop_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; __ats_lab_loop_26: do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_11, arg3, atslab_0) ; tmp213 = ats_caselptrlab_mac(anairiats_sum_11, arg3, atslab_1) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, arg2) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp212 ; arg3 = tmp213 ; goto __ats_lab_loop_26 ; // tail call break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, arg2) ; break ; } while (0) ; return (tmp211) ; } /* end of [loop_26] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 23328(line=1065, offs=3) -- 23951(line=1099, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_seq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_seq: tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp208 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp209 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp209)->tag != 31) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 23416(line=1070, offs=5) -- 23448(line=1070, offs=37)") ; } tmp210 = ats_caselptrlab_mac(anairiats_sum_4, tmp209, atslab_0) ; do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (tmp210 == (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_11, tmp210, atslab_0) ; tmp216 = ats_caselptrlab_mac(anairiats_sum_11, tmp210, atslab_1) ; tmp206 = loop_26 (arg0, arg1, tmp215, tmp216) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (tmp210 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp207, tmp208) ; break ; } while (0) ; return (tmp206) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_seq] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 24034(line=1105, offs=3) -- 24314(line=1117, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selab: tmp218 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp219 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp220)->tag != 32) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 24122(line=1110, offs=5) -- 24169(line=1110, offs=52)") ; } tmp221 = ats_caselptrlab_mac(anairiats_sum_15, tmp220, atslab_0) ; tmp222 = ats_caselptrlab_mac(anairiats_sum_15, tmp220, atslab_1) ; tmp223 = ats_caselptrlab_mac(anairiats_sum_15, tmp220, atslab_2) ; tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp221) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (arg0, arg1, tmp223) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2 (tmp218, tmp219, tmp224, tmp222, tmp225) ; return (tmp217) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 24400(line=1123, offs=3) -- 24944(line=1150, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selvar: tmp227 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp228 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp229 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp229)->tag != 36) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 24485(line=1127, offs=5) -- 24533(line=1127, offs=53)") ; } tmp230 = ats_caselptrlab_mac(anairiats_sum_15, tmp229, atslab_0) ; tmp231 = ats_caselptrlab_mac(anairiats_sum_15, tmp229, atslab_1) ; tmp232 = ats_caselptrlab_mac(anairiats_sum_15, tmp229, atslab_2) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp (arg0, tmp227, tmp231, tmp230) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (arg0, arg1, tmp232) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (tmp230) ; do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (tmp235 == (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr (tmp227, tmp228, tmp233, tmp231, tmp234) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (tmp235 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2 (tmp227, tmp228, tmp233, tmp231, tmp234) ; break ; } while (0) ; return (tmp226) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 25031(line=1156, offs=3) -- 25305(line=1166, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selptr: tmp237 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp238 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp239 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp239)->tag != 37) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 25116(line=1160, offs=5) -- 25164(line=1160, offs=53)") ; } tmp240 = ats_caselptrlab_mac(anairiats_sum_15, tmp239, atslab_0) ; tmp241 = ats_caselptrlab_mac(anairiats_sum_15, tmp239, atslab_1) ; tmp242 = ats_caselptrlab_mac(anairiats_sum_15, tmp239, atslab_2) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp240) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (arg0, arg1, tmp242) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr (tmp237, tmp238, tmp243, tmp241, tmp244) ; return (tmp236) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_selptr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 25394(line=1172, offs=3) -- 25562(line=1180, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofvar: tmp246 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp247 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp248 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp248)->tag != 33) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 25479(line=1176, offs=5) -- 25515(line=1176, offs=41)") ; } tmp249 = ats_caselptrlab_mac(anairiats_sum_4, tmp248, atslab_0) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp (arg0, tmp246, tmp247, tmp249) ; return (tmp245) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 25653(line=1186, offs=3) -- 25907(line=1197, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofsel (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofsel: tmp251 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp252 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp252)->tag != 34) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 25710(line=1189, offs=5) -- 25762(line=1190, offs=41)") ; } tmp253 = ats_caselptrlab_mac(anairiats_sum_15, tmp252, atslab_0) ; tmp254 = ats_caselptrlab_mac(anairiats_sum_15, tmp252, atslab_1) ; tmp255 = ats_caselptrlab_mac(anairiats_sum_15, tmp252, atslab_2) ; tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp253) ; tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (arg0, arg1, tmp255) ; tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_ptrofsel (tmp251, tmp256, tmp254, tmp257) ; return (tmp250) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ptrofsel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 25996(line=1203, offs=3) -- 26206(line=1213, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_vararg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_vararg: tmp259 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp260 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp261 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp261)->tag != 45) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 26081(line=1207, offs=5) -- 26115(line=1207, offs=39)") ; } tmp262 = ats_caselptrlab_mac(anairiats_sum_4, tmp261, atslab_0) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccomp (arg0, arg1, tmp262) ; tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_vararg (tmp259, tmp260, tmp263) ; return (tmp258) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_vararg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 26293(line=1219, offs=3) -- 26529(line=1230, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_refarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_int_type, tmp268) ; ATSlocal (ats_int_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_refarg: tmp265 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp266 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp267 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp267)->tag != 35) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 26378(line=1223, offs=5) -- 26428(line=1224, offs=41)") ; } tmp268 = ats_caselptrlab_mac(anairiats_sum_16, tmp267, atslab_0) ; tmp269 = ats_caselptrlab_mac(anairiats_sum_16, tmp267, atslab_1) ; tmp270 = ats_caselptrlab_mac(anairiats_sum_16, tmp267, atslab_2) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp270) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_refarg (tmp265, tmp266, tmp268, tmp269, tmp271) ; return (tmp264) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_refarg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 26619(line=1236, offs=3) -- 27057(line=1252, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; // ATSlocal_void (tmp284) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_var: tmp273 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp274 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp275 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp275)->tag != 38) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 26704(line=1240, offs=5) -- 26766(line=1241, offs=50)") ; } tmp276 = ats_caselptrlab_mac(anairiats_sum_17, tmp275, atslab_0) ; tmp277 = ats_caselptrlab_mac(anairiats_sum_17, tmp275, atslab_1) ; tmp278 = ats_caselptrlab_mac(anairiats_sum_17, tmp275, atslab_2) ; tmp279 = ats_caselptrlab_mac(anairiats_sum_17, tmp275, atslab_3) ; tmp280 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp (arg0, tmp273, tmp277, tmp276) ; tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (arg0, arg1, tmp278) ; tmp282 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp279) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_ptrofs (tmp273, tmp280, tmp277, tmp281, tmp282) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp283) ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp273, tmp274) ; return (tmp272) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_var] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 27129(line=1256, offs=3) -- 27553(line=1271, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; // ATSlocal_void (tmp297) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_ptr: tmp286 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp287 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp288 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp288)->tag != 39) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 27214(line=1260, offs=5) -- 27276(line=1261, offs=50)") ; } tmp289 = ats_caselptrlab_mac(anairiats_sum_17, tmp288, atslab_0) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_17, tmp288, atslab_1) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_17, tmp288, atslab_2) ; tmp292 = ats_caselptrlab_mac(anairiats_sum_17, tmp288, atslab_3) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp289) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (arg0, arg1, tmp291) ; tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp292) ; tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_ptrofs (tmp286, tmp293, tmp290, tmp294, tmp295) ; /* tmp297 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp296) ; tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp286, tmp287) ; return (tmp285) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_assgn_ptr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 27646(line=1277, offs=3) -- 28156(line=1295, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; // ATSlocal_void (tmp312) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_var: tmp299 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp300 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp301 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp301)->tag != 40) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 27731(line=1281, offs=5) -- 27793(line=1282, offs=50)") ; } tmp302 = ats_caselptrlab_mac(anairiats_sum_17, tmp301, atslab_0) ; tmp303 = ats_caselptrlab_mac(anairiats_sum_17, tmp301, atslab_1) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_17, tmp301, atslab_2) ; tmp305 = ats_caselptrlab_mac(anairiats_sum_17, tmp301, atslab_3) ; tmp306 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp305), atslab_hidexp_type) ; tmp307 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp299, tmp306) ; tmp308 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__d2var_ccomp (arg0, tmp299, tmp303, tmp302) ; tmp309 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (arg0, arg1, tmp304) ; tmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp305) ; tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_xstore_ptrofs (tmp299, tmp307, tmp308, tmp303, tmp309, tmp310) ; /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp311) ; tmp298 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp299, tmp300) ; return (tmp298) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_var] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 28228(line=1299, offs=3) -- 28724(line=1316, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; // ATSlocal_void (tmp327) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_ptr: tmp314 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp315 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp316 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp316)->tag != 41) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 28313(line=1303, offs=5) -- 28375(line=1304, offs=50)") ; } tmp317 = ats_caselptrlab_mac(anairiats_sum_17, tmp316, atslab_0) ; tmp318 = ats_caselptrlab_mac(anairiats_sum_17, tmp316, atslab_1) ; tmp319 = ats_caselptrlab_mac(anairiats_sum_17, tmp316, atslab_2) ; tmp320 = ats_caselptrlab_mac(anairiats_sum_17, tmp316, atslab_3) ; tmp321 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp320), atslab_hidexp_type) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp314, tmp321) ; tmp323 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp317) ; tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hilablst_ccomp (arg0, arg1, tmp319) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp320) ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_xstore_ptrofs (tmp314, tmp322, tmp323, tmp318, tmp324, tmp325) ; /* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp326) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp314, tmp315) ; return (tmp313) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_xchng_ptr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 28815(line=1322, offs=3) -- 29107(line=1333, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; // ATSlocal_void (tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_con: tmp329 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp330 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp330)->tag != 19) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 28880(line=1325, offs=5) -- 28926(line=1325, offs=51)") ; } tmp331 = ats_caselptrlab_mac(anairiats_sum_15, tmp330, atslab_0) ; tmp332 = ats_caselptrlab_mac(anairiats_sum_15, tmp330, atslab_1) ; tmp333 = ats_caselptrlab_mac(anairiats_sum_15, tmp330, atslab_2) ; /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_add (tmp331) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__labhidexplst_ccomp (arg0, arg1, tmp333) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_con (tmp329, arg2, tmp331, tmp332, tmp335) ; /* tmp328 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp336) ; return /* (tmp328) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_con] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 29196(line=1339, offs=3) -- 33088(line=1498, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_int_type, tmp346) ; ATSlocal (ats_int_type, tmp347) ; ATSlocal (ats_bool_type, tmp348) ; ATSlocal (ats_bool_type, tmp349) ; // ATSlocal_void (tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_int_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_int_type, tmp358) ; ATSlocal (ats_bool_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_int_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_int_type, tmp363) ; ATSlocal (ats_bool_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_int_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_int_type, tmp368) ; ATSlocal (ats_bool_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_int_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_int_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_int_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_int_type, tmp384) ; // ATSlocal_void (tmp385) ; ATSlocal (ats_bool_type, tmp386) ; ATSlocal (ats_bool_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_app: tmp338 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp339 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; tmp340 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp340)->tag != 25) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 29289(line=1343, offs=5) -- 29342(line=1343, offs=58)") ; } tmp341 = ats_caselptrlab_mac(anairiats_sum_15, tmp340, atslab_0) ; tmp342 = ats_caselptrlab_mac(anairiats_sum_15, tmp340, atslab_1) ; tmp343 = ats_caselptrlab_mac(anairiats_sum_15, tmp340, atslab_2) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp341) ; tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccomp (arg0, arg1, tmp343) ; /* ats_int_type tmp346 ; */ tmp346 = 0 ; tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get () ; tmp349 = atspre_gt_int_int (tmp347, 0) ; if (tmp349) { tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret (arg2) ; } else { tmp348 = ats_false_bool ; } /* end of [if] */ if (tmp348) { tmp351 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp344), atslab_primval_node) ; do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp351)->tag != 6) { goto __ats_lab_144_0 ; } __ats_lab_141_1: tmp352 = ats_caselptrlab_mac(anairiats_sum_4, tmp351, atslab_0) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_cst (arg0, tmp352) ; do { /* branch: __ats_lab_142 */ __ats_lab_142_0: if (tmp353 == (ats_sum_ptr_type)0) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp354 = ats_caselptrlab_mac(anairiats_sum_2, tmp353, atslab_0) ; ATS_FREE(tmp353) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2 (tmp338, arg2, tmp354, 0, tmp342, tmp345) ; tmp356 = atspre_iadd (tmp346, 1) ; tmp346 = tmp356 ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp355) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: // if (tmp353 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_143_1: break ; } while (0) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp351)->tag != 31) { goto __ats_lab_147_0 ; } __ats_lab_144_1: tmp357 = ats_caselptrlab_mac(anairiats_sum_4, tmp351, atslab_0) ; tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv (arg0, tmp357) ; do { /* branch: __ats_lab_145 */ __ats_lab_145_0: __ats_lab_145_1: tmp359 = atspre_gte_int_int (tmp358, 0) ; if (!tmp359) { goto __ats_lab_146_1 ; } tmp360 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2 (tmp338, arg2, tmp357, tmp358, tmp342, tmp345) ; tmp361 = atspre_iadd (tmp346, 1) ; tmp346 = tmp361 ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp360) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: __ats_lab_146_1: break ; } while (0) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp351)->tag != 32) { goto __ats_lab_150_0 ; } __ats_lab_147_1: tmp362 = ats_caselptrlab_mac(anairiats_sum_5, tmp351, atslab_1) ; tmp363 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv (arg0, tmp362) ; do { /* branch: __ats_lab_148 */ __ats_lab_148_0: __ats_lab_148_1: tmp364 = atspre_gte_int_int (tmp363, 0) ; if (!tmp364) { goto __ats_lab_149_1 ; } tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2 (tmp338, arg2, tmp362, tmp363, tmp342, tmp345) ; tmp366 = atspre_iadd (tmp346, 1) ; tmp346 = tmp366 ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp365) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: __ats_lab_149_1: break ; } while (0) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp351)->tag != 33) { goto __ats_lab_153_0 ; } __ats_lab_150_1: tmp367 = ats_caselptrlab_mac(anairiats_sum_6, tmp351, atslab_1) ; tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv (arg0, tmp367) ; do { /* branch: __ats_lab_151 */ __ats_lab_151_0: __ats_lab_151_1: tmp369 = atspre_gte_int_int (tmp368, 0) ; if (!tmp369) { goto __ats_lab_152_1 ; } tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2 (tmp338, arg2, tmp367, tmp368, tmp342, tmp345) ; tmp371 = atspre_iadd (tmp346, 1) ; tmp346 = tmp371 ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp370) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: __ats_lab_152_1: break ; } while (0) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp351)->tag != 35) { goto __ats_lab_156_0 ; } __ats_lab_153_1: tmp372 = ats_caselptrlab_mac(anairiats_sum_6, tmp351, atslab_0) ; tmp373 = ats_caselptrlab_mac(anairiats_sum_6, tmp351, atslab_1) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpcst (arg0, tmp372, tmp373) ; do { /* branch: __ats_lab_154 */ __ats_lab_154_0: if (tmp374 == (ats_sum_ptr_type)0) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp375 = ats_caselptrlab_mac(anairiats_sum_2, tmp374, atslab_0) ; ATS_FREE(tmp374) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2 (tmp338, arg2, tmp375, 0, tmp342, tmp345) ; tmp377 = atspre_iadd (tmp346, 1) ; tmp346 = tmp377 ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp376) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: // if (tmp374 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_155_1: break ; } while (0) ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)tmp351)->tag != 36) { goto __ats_lab_159_0 ; } __ats_lab_156_1: tmp378 = ats_caselptrlab_mac(anairiats_sum_6, tmp351, atslab_0) ; tmp379 = ats_caselptrlab_mac(anairiats_sum_6, tmp351, atslab_1) ; /* ats_int_type tmp380 ; */ tmp380 = 0 ; tmp381 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpvar (arg0, tmp378, tmp379, (&tmp380)) ; do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (tmp381 == (ats_sum_ptr_type)0) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_2, tmp381, atslab_0) ; ATS_FREE(tmp381) ; tmp383 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2 (tmp338, arg2, tmp382, tmp380, tmp342, tmp345) ; tmp384 = atspre_iadd (tmp346, 1) ; tmp346 = tmp384 ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp383) ; break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: // if (tmp381 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_158_1: break ; } while (0) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: __ats_lab_159_1: break ; } while (0) ; } else { /* empty */ } /* end of [if] */ tmp386 = atspre_gt_int_int (tmp346, 0) ; if (tmp386) { /* tmp385 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal (arg2) ; } else { /* empty */ } /* end of [if] */ tmp387 = atspre_eq_int_int (tmp346, 0) ; if (tmp387) { tmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall (tmp338, arg2, tmp344, tmp342, tmp345) ; /* tmp337 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp388) ; } else { /* empty */ } /* end of [if] */ return /* (tmp337) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_app] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 33182(line=1504, offs=3) -- 33456(line=1516, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extfcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extfcall: tmp390 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp391 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; tmp392 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp392)->tag != 17) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 33275(line=1508, offs=5) -- 33318(line=1508, offs=48)") ; } tmp393 = ats_caselptrlab_mac(anairiats_sum_6, tmp392, atslab_0) ; tmp394 = ats_caselptrlab_mac(anairiats_sum_6, tmp392, atslab_1) ; tmp395 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccomp (arg0, arg1, tmp394) ; tmp396 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extfcall (tmp390, arg2, tmp393, tmp395) ; /* tmp389 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp396) ; return /* (tmp389) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extfcall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 33555(line=1522, offs=3) -- 33882(line=1535, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extmcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extmcall: tmp398 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp399 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; tmp400 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp400)->tag != 18) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 33648(line=1526, offs=5) -- 33697(line=1526, offs=54)") ; } tmp401 = ats_caselptrlab_mac(anairiats_sum_15, tmp400, atslab_0) ; tmp402 = ats_caselptrlab_mac(anairiats_sum_15, tmp400, atslab_1) ; tmp403 = ats_caselptrlab_mac(anairiats_sum_15, tmp400, atslab_2) ; tmp404 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp401) ; tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccomp (arg0, arg1, tmp403) ; tmp406 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extmcall (tmp398, arg2, tmp404, tmp402, tmp405) ; /* tmp397 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp406) ; return /* (tmp397) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_extmcall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 33975(line=1541, offs=3) -- 34781(line=1569, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_if (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; // ATSlocal_void (tmp416) ; // ATSlocal_void (tmp417) ; // ATSlocal_void (tmp418) ; // ATSlocal_void (tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; // ATSlocal_void (tmp422) ; // ATSlocal_void (tmp423) ; // ATSlocal_void (tmp424) ; // ATSlocal_void (tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_if: tmp408 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp409 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; tmp410 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp410)->tag != 26) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 34071(line=1546, offs=5) -- 34128(line=1547, offs=52)") ; } tmp411 = ats_caselptrlab_mac(anairiats_sum_15, tmp410, atslab_0) ; tmp412 = ats_caselptrlab_mac(anairiats_sum_15, tmp410, atslab_1) ; tmp413 = ats_caselptrlab_mac(anairiats_sum_15, tmp410, atslab_2) ; tmp414 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp411) ; tmp415 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; /* tmp416 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp417 = ats_selsin_mac(tmp416, atslab_1) */ ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, tmp415, arg2, tmp412) ; /* tmp419 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ; tmp420 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp415) ; tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; /* tmp422 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp423 = ats_selsin_mac(tmp422, atslab_1) */ ; /* tmp424 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, tmp421, arg2, tmp413) ; /* tmp425 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ; tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp421) ; tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_cond (tmp408, tmp414, tmp420, tmp426) ; /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp427) ; return /* (tmp407) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_if] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 34847(line=1575, offs=5) -- 35420(line=1598, offs=4) */ ATSstaticdec() ats_void_type auxnode_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; // ATSlocal_void (tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; // ATSlocal_void (tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; // ATSlocal_void (tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; __ats_lab_auxnode_43: tmp429 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg5), atslab_hidexp_loc) ; tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_cons (tmp429, arg3, arg4) ; /* tmp431 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp430) ; tmp432 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_phead (tmp429, arg2, arg3, arg4) ; /* tmp433 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp432) ; tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, arg5) ; tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_val (tmp429, arg2, tmp434) ; /* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp435) ; tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_ptail (tmp429, arg3, arg3, arg4) ; /* tmp428 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp437) ; return /* (tmp428) */ ; } /* end of [auxnode_43] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 35446(line=1600, offs=5) -- 35987(line=1623, offs=4) */ ATSstaticdec() ats_void_type auxnodelst_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ // ATSlocal_void (tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; // ATSlocal_void (tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; __ats_lab_auxnodelst_44: do { /* branch: __ats_lab_160 */ __ats_lab_160_0: if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp439 = ats_caselptrlab_mac(anairiats_sum_11, arg6, atslab_0) ; tmp440 = ats_caselptrlab_mac(anairiats_sum_11, arg6, atslab_1) ; /* tmp441 = */ auxnode_43 (arg0, arg1, arg2, arg3, arg5, tmp439) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; arg6 = tmp440 ; goto __ats_lab_auxnodelst_44 ; // tail call break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: // if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_161_1: tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_nil (arg4, arg3) ; /* tmp438 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp442) ; break ; } while (0) ; return /* (tmp438) */ ; } /* end of [auxnodelst_44] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 36069(line=1629, offs=3) -- 36863(line=1657, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_lst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; // ATSlocal_void (tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; // ATSlocal_void (tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_lst: tmp444 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp445 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; /* tmp446 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec (arg1, tmp444, arg2) ; tmp447 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp447)->tag != 29) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 36218(line=1637, offs=5) -- 36264(line=1637, offs=51)") ; } tmp448 = ats_caselptrlab_mac(anairiats_sum_12, tmp447, atslab_1) ; tmp449 = ats_caselptrlab_mac(anairiats_sum_12, tmp447, atslab_2) ; do { /* branch: __ats_lab_162 */ __ats_lab_162_0: if (tmp449 == (ats_sum_ptr_type)0) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp444, arg2) ; tmp451 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp444, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, tmp450) ; tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp444, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr) ; tmp453 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp444, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr) ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (tmp444, tmp453, tmp451) ; /* tmp455 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp454) ; /* tmp443 = */ auxnodelst_44 (arg0, arg1, tmp452, tmp453, tmp444, tmp448, tmp449) ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: // if (tmp449 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_163_1: tmp456 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_nil (tmp444, arg2) ; /* tmp443 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp456) ; break ; } while (0) ; return /* (tmp443) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_lst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 36954(line=1666, offs=1) -- 37360(line=1688, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; __ats_lab_auxlst_46: do { /* branch: __ats_lab_164 */ __ats_lab_164_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp458 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_0) ; tmp459 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp460 = ats_caselptrlab_mac(anairiats_sum_11, tmp458, atslab_0) ; tmp461 = ats_caselptrlab_mac(anairiats_sum_11, tmp458, atslab_1) ; tmp462 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp461) ; tmp463 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp463, atslab_0, tmp460) ; ats_selptrset_mac(anairiats_sum_11, tmp463, atslab_1, tmp462) ; tmp464 = auxlst_46 (arg0, arg1, tmp459) ; tmp457 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp457, atslab_0, tmp463) ; ats_selptrset_mac(anairiats_sum_11, tmp457, atslab_1, tmp464) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_165_1: tmp457 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp457) ; } /* end of [auxlst_46] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 37438(line=1694, offs=3) -- 37842(line=1713, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_int_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_bool_type, tmp474) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_rec: tmp466 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp467 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; tmp468 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp468)->tag != 30) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 37534(line=1699, offs=5) -- 37580(line=1699, offs=51)") ; } tmp469 = ats_caselptrlab_mac(anairiats_sum_12, tmp468, atslab_0) ; tmp470 = ats_caselptrlab_mac(anairiats_sum_12, tmp468, atslab_1) ; tmp471 = ats_caselptrlab_mac(anairiats_sum_12, tmp468, atslab_2) ; tmp472 = auxlst_46 (arg0, arg1, tmp470) ; tmp474 = atspre_gt_int_int (tmp469, 0) ; if (tmp474) { tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_boxrec (tmp466, arg2, tmp472, tmp471) ; } else { tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec2 (tmp466, arg2, tmp472, tmp471) ; } /* end of [if] */ /* tmp465 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp473) ; return /* (tmp465) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_rec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 38090(line=1728, offs=5) -- 38469(line=1747, offs=4) */ ATSstaticdec() ats_void_type loop_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; __ats_lab_loop_49: do { /* branch: __ats_lab_166 */ __ats_lab_166_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp481 = ats_caselptrlab_mac(anairiats_sum_11, arg3, atslab_0) ; tmp482 = ats_caselptrlab_mac(anairiats_sum_11, arg3, atslab_1) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, arg2) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp481 ; arg3 = tmp482 ; arg4 = arg4 ; goto __ats_lab_loop_49 ; // tail call break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_167_1: /* tmp480 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, arg1, arg4, arg2) ; break ; } while (0) ; return /* (tmp480) */ ; } /* end of [loop_49] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 37954(line=1721, offs=3) -- 38606(line=1757, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_seq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_seq: tmp476 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp477 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; tmp478 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp478)->tag != 31) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 38050(line=1726, offs=5) -- 38082(line=1726, offs=37)") ; } tmp479 = ats_caselptrlab_mac(anairiats_sum_4, tmp478, atslab_0) ; do { /* branch: __ats_lab_168 */ __ats_lab_168_0: if (tmp479 == (ats_sum_ptr_type)0) { goto __ats_lab_169_0 ; } __ats_lab_168_1: tmp484 = ats_caselptrlab_mac(anairiats_sum_11, tmp479, atslab_0) ; tmp485 = ats_caselptrlab_mac(anairiats_sum_11, tmp479, atslab_1) ; /* tmp475 = */ loop_49 (arg0, arg1, tmp484, tmp485, arg2) ; break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: // if (tmp479 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_169_1: break ; } while (0) ; return /* (tmp475) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_seq] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 38673(line=1764, offs=1) -- 39051(line=1782, offs=2) */ ATSstaticdec() ats_void_type auxlst_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; __ats_lab_auxlst_50: do { /* branch: __ats_lab_170 */ __ats_lab_170_0: if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp487 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexplst_ccompv (arg0, arg1, arg5) ; /* tmp486 = */ auxlst2_51 (arg0, arg1, arg2, arg4, tmp487, arg3, tmp487) ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: // if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_171_1: break ; } while (0) ; return /* (tmp486) */ ; } /* end of [auxlst_50] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 39079(line=1784, offs=5) -- 39926(line=1831, offs=2) */ ATSstaticdec() ats_void_type auxlst2_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ptr_type arg6) { /* local vardec */ // ATSlocal_void (tmp488) ; ATSlocal (ats_bool_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_int_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; // ATSlocal_void (tmp495) ; // ATSlocal_void (tmp496) ; ATSlocal (ats_bool_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; __ats_lab_auxlst2_51: tmp489 = atspre_gt_int_int (arg5, 0) ; if (tmp489) { do { /* branch: __ats_lab_172 */ __ats_lab_172_0: if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_173_0 ; } __ats_lab_172_1: tmp490 = ats_caselptrlab_mac(anairiats_sum_11, arg6, atslab_0) ; tmp491 = ats_caselptrlab_mac(anairiats_sum_11, arg6, atslab_1) ; tmp492 = atspre_sub_int_int (arg5, 1) ; tmp493 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp490), atslab_primval_loc) ; tmp494 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_val (tmp493, arg2, tmp490) ; /* tmp495 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp494) ; tmp497 = atspre_gte_int_int (tmp492, 1) ; if (tmp497) { tmp498 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrinc (tmp493, arg2, arg3) ; /* tmp496 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp498) ; } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = tmp492 ; arg6 = tmp491 ; goto __ats_lab_auxlst2_51 ; // tail call break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: // if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_173_1: tmp499 = arg4 ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; arg6 = tmp499 ; goto __ats_lab_auxlst2_51 ; // tail call break ; } while (0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp488) */ ; } /* end of [auxlst2_51] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 40011(line=1837, offs=3) -- 40612(line=1861, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrpsz (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; // ATSlocal_void (tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_int_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; // ATSlocal_void (tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; // ATSlocal_void (tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; // ATSlocal_void (tmp514) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrpsz: tmp501 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp502 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; /* tmp503 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec (arg1, tmp501, arg2) ; tmp504 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp504)->tag != 42) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 40159(line=1845, offs=5) -- 40210(line=1846, offs=42)") ; } tmp505 = ats_caselptrlab_mac(anairiats_sum_18, tmp504, atslab_0) ; tmp506 = ats_caselptrlab_mac(anairiats_sum_18, tmp504, atslab_1) ; tmp507 = ats_caselptrlab_mac(anairiats_sum_18, tmp504, atslab_2) ; tmp508 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_asz (tmp501, arg2, tmp507) ; /* tmp509 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp508) ; tmp510 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_ptr (tmp501, arg2, tmp505, tmp507) ; /* tmp511 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp510) ; tmp512 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp501, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_arrptr) ; tmp513 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arrpsz_ptr (tmp501, tmp512, arg2) ; /* tmp514 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp513) ; /* tmp500 = */ auxlst_50 (arg0, arg1, tmp512, tmp507, tmp505, tmp506) ; return /* (tmp500) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrpsz] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 40708(line=1867, offs=3) -- 41083(line=1880, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrinit (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_int_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; // ATSlocal_void (tmp525) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrinit: tmp516 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp517 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp517)->tag != 43) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 40773(line=1870, offs=5) -- 40834(line=1871, offs=51)") ; } tmp518 = ats_caselptrlab_mac(anairiats_sum_19, tmp517, atslab_0) ; tmp519 = ats_caselptrlab_mac(anairiats_sum_19, tmp517, atslab_2) ; tmp520 = ats_caselptrlab_mac(anairiats_sum_19, tmp517, atslab_3) ; tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc (arg2) ; tmp522 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp516, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_arrptr) ; tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp521, arg2) ; tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (tmp516, tmp522, tmp524) ; /* tmp525 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp523) ; /* tmp515 = */ auxlst_50 (arg0, arg1, tmp522, tmp520, tmp518, tmp519) ; return /* (tmp515) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_arrinit] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 41201(line=1888, offs=3) -- 41461(line=1900, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_raise (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_raise: tmp527 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp528 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp528)->tag != 44) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 41266(line=1891, offs=5) -- 41302(line=1891, offs=41)") ; } tmp529 = ats_caselptrlab_mac(anairiats_sum_4, tmp528, atslab_0) ; tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp529) ; tmp531 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_raise (tmp527, arg2, tmp530) ; /* tmp526 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp531) ; return /* (tmp526) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_raise] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 41558(line=1906, offs=1) -- 42863(line=1970, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; // ATSlocal_void (tmp534) ; ATSlocal (ats_int_type, tmp535) ; // ATSlocal_void (tmp536) ; // ATSlocal_void (tmp537) ; // ATSlocal_void (tmp538) ; // ATSlocal_void (tmp539) ; // ATSlocal_void (tmp540) ; ATSlocal (ats_int_type, tmp541) ; // ATSlocal_void (tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; // ATSlocal_void (tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; // ATSlocal_void (tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body: tmp533 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; /* tmp534 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst (tmp533, arg4) ; tmp535 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level (arg1) ; /* tmp536 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc () ; /* tmp537 = ats_selsin_mac(tmp536, atslab_1) */ ; /* tmp538 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_flabsetenv (arg0) ; /* tmp539 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_dvarsetenv (arg0) ; /* tmp540 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_vbindmapenv (arg0) ; tmp541 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; /* tmp542 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifunarg_ccomp (arg0, tmp533, arg1, tmp541, arg5, arg6) ; tmp543 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg7), atslab_hidexp_loc) ; tmp544 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg7), atslab_hidexp_type) ; tmp545 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ret (tmp543, tmp544) ; /* tmp546 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, tmp533, tmp545, arg7) ; tmp547 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_vbindmapenv (arg0) ; tmp548 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_flabsetenv (arg0) ; tmp549 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize_free (tmp548) ; tmp550 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_flabsetenv_ifmap (arg0, tmp535, tmp547, tmp549) ; tmp551 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_dvarsetenv (arg0) ; tmp552 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free (tmp551) ; /* tmp553 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec () ; tmp554 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp533) ; tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make2 (arg5, arg1, arg2, arg3, tmp545, ats_castfn_mac(ats_ptr_type, tmp550), ats_castfn_mac(ats_ptr_type, tmp552), tmp547, tmp554) ; return (tmp532) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 43123(line=1986, offs=3) -- 44112(line=2027, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_lam_flab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; // ATSlocal_void (tmp560) ; ATSlocal (ats_int_type, tmp561) ; // ATSlocal_void (tmp562) ; ATSlocal (ats_bool_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; // ATSlocal_void (tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_lam_flab: tmp556 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp557 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp557)->tag != 47) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 43190(line=1991, offs=1) -- 43241(line=1992, offs=45)") ; } tmp558 = ats_caselptrlab_mac(anairiats_sum_12, tmp557, atslab_1) ; tmp559 = ats_caselptrlab_mac(anairiats_sum_12, tmp557, atslab_2) ; /* tmp560 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv (arg0, arg3) ; tmp561 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ; tmp563 = atspre_gt_int_int (tmp561, 0) ; if (tmp563) { /* tmp562 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd (arg3, 1) ; } else { /* empty */ } /* end of [if] */ tmp564 = (ats_sum_ptr_type)0 ; tmp565 = (ats_sum_ptr_type)0 ; tmp566 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab (tmp556, arg3) ; tmp568 = (ats_sum_ptr_type)0 ; tmp567 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp567, atslab_0, tmp566) ; ats_selptrset_mac(anairiats_sum_11, tmp567, atslab_1, tmp568) ; tmp569 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body (arg0, arg3, tmp564, tmp565, tmp567, tmp556, tmp558, tmp559) ; tmp571 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp571, atslab_0, tmp569) ; /* tmp570 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (arg3, tmp571) ; /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (arg0) ; return /* (tmp555) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_lam_flab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 44198(line=2033, offs=3) -- 44535(line=2046, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_lam (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; // ATSlocal_void (tmp577) ; // ATSlocal_void (tmp578) ; // ATSlocal_void (tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_lam: tmp573 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp574 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_type) ; tmp575 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type (tmp574) ; tmp576 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (tmp573, tmp575) ; /* tmp577 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp575) ; /* tmp578 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp575) ; /* tmp579 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_lam_flab (arg0, arg1, arg2, tmp575) ; tmp580 = (ats_sum_ptr_type)0 ; tmp572 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix (tmp580, tmp576) ; return (tmp572) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_lam] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 44616(line=2052, offs=3) -- 45244(line=2087, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_fix (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_ptr_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_int_type, tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; ATSlocal (ats_bool_type, tmp590) ; // ATSlocal_void (tmp591) ; // ATSlocal_void (tmp592) ; // ATSlocal_void (tmp593) ; // ATSlocal_void (tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_fix: tmp582 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_loc) ; tmp583 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp583)->tag != 48) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 44678(line=2057, offs=1) -- 44725(line=2058, offs=41)") ; } tmp584 = ats_caselptrlab_mac(anairiats_sum_12, tmp583, atslab_1) ; tmp585 = ats_caselptrlab_mac(anairiats_sum_12, tmp583, atslab_2) ; tmp586 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp585), atslab_hidexp_type) ; tmp587 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type (tmp586) ; tmp588 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ; tmp590 = atspre_eq_int_int (tmp588, 0) ; if (tmp590) { tmp589 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (tmp582, tmp587) ; } else { tmp589 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab (tmp582, tmp584, tmp587) ; } /* end of [if] */ /* tmp591 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp587) ; /* tmp592 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp587) ; /* tmp593 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp584, tmp589) ; /* tmp594 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_lam_flab (arg0, arg1, tmp585, tmp587) ; tmp595 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp595, atslab_0, tmp584) ; tmp581 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix (tmp595, tmp589) ; return (tmp581) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_fix] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 45389(line=2097, offs=3) -- 45510(line=2103, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__tmpvar_set2_tyclo (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp596) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__tmpvar_set2_tyclo: /* tmp596 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_set_tyclo (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; return /* (tmp596) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__tmpvar_set2_tyclo] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 45600(line=2109, offs=3) -- 46152(line=2134, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_laminit (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; ATSlocal (ats_int_type, tmp601) ; // ATSlocal_void (tmp602) ; // ATSlocal_void (tmp603) ; // ATSlocal_void (tmp604) ; // ATSlocal_void (tmp605) ; ATSlocal (ats_bool_type, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_laminit: tmp598 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp599 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_type) ; tmp600 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type (tmp599) ; tmp601 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level (tmp600) ; /* tmp602 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp600) ; /* tmp603 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp600) ; /* tmp604 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_lam_flab (arg0, arg1, arg3, tmp600) ; tmp606 = atspre_gt_int_int (tmp601, 0) ; if (tmp606) { /* tmp605 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__tmpvar_set2_tyclo (arg2, tmp600) ; } else { /* empty */ } /* end of [if] */ tmp608 = (ats_sum_ptr_type)0 ; tmp607 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_closure_initize (tmp598, arg2, tmp608, tmp600) ; /* tmp597 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp607) ; return /* (tmp597) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_laminit] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 46249(line=2140, offs=3) -- 47199(line=2198, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_fixinit (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; ATSlocal (ats_ptr_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; // ATSlocal_void (tmp617) ; // ATSlocal_void (tmp618) ; ATSlocal (ats_int_type, tmp619) ; ATSlocal (ats_ptr_type, tmp620) ; ATSlocal (ats_bool_type, tmp621) ; // ATSlocal_void (tmp622) ; // ATSlocal_void (tmp623) ; ATSlocal (ats_int_type, tmp624) ; // ATSlocal_void (tmp625) ; ATSlocal (ats_bool_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_fixinit: tmp610 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_loc) ; tmp611 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp611)->tag != 48) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_dynexp.dats: 46317(line=2145, offs=5) -- 46363(line=2145, offs=51)") ; } tmp612 = ats_caselptrlab_mac(anairiats_sum_12, tmp611, atslab_1) ; tmp613 = ats_caselptrlab_mac(anairiats_sum_12, tmp611, atslab_2) ; tmp614 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp613), atslab_hidexp_loc) ; tmp615 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp613), atslab_hidexp_type) ; tmp616 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type (tmp615) ; /* tmp617 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp616) ; /* tmp618 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp616) ; tmp619 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ; tmp621 = atspre_eq_int_int (tmp619, 0) ; if (tmp621) { tmp620 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab (tmp614, tmp615, tmp616) ; } else { tmp620 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab (tmp614, tmp612, tmp616) ; } /* end of [if] */ /* tmp622 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp612, tmp620) ; /* tmp623 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_lam_flab (arg0, arg1, tmp613, tmp616) ; tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level (tmp616) ; tmp626 = atspre_gt_int_int (tmp624, 0) ; if (tmp626) { /* tmp625 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__tmpvar_set2_tyclo (arg2, tmp616) ; } else { /* empty */ } /* end of [if] */ tmp628 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp628, atslab_0, tmp612) ; tmp627 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_closure_initize (tmp610, arg2, tmp628, tmp616) ; /* tmp609 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp627) ; return /* (tmp609) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__hidexp_ccomp_ret_fixinit] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_dynexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_dcon_dats.c0000644000175000017500000034653413431250607023135 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_3 ; typedef struct { anairiats_rec_3 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_d2con_sym ; ats_ptr_type atslab_d2con_loc ; ats_ptr_type atslab_d2con_fil ; ats_ptr_type atslab_d2con_scst ; ats_int_type atslab_d2con_npf ; ats_int_type atslab_d2con_vwtp ; ats_ptr_type atslab_d2con_qua ; ats_ptr_type atslab_d2con_arg ; ats_int_type atslab_d2con_arity_full ; ats_int_type atslab_d2con_arity_real ; ats_ptr_type atslab_d2con_ind ; ats_ptr_type atslab_d2con_type ; ats_int_type atslab_d2con_tag ; ats_ptr_type atslab_d2con_pack ; ats_int_type atslab_d2con_stamp ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_7 ; typedef struct { anairiats_rec_7 atslab_0 ; } anairiats_sum_8 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_9 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, 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_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_uint_type, atspre_add_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_ilte) (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_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imax) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_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_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_global_2esats__the_PACKNAME_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2con_stamp_make) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tagless) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_binarian) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_nonlinear) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__d2conset_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__d2conset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__d2con_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type aux1_1 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_int_type aux2_2 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_int_type loop_4 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_5 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ptr_alloc_01070_anairiats_rec_6 () ; static ats_void_type aux_43 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_43_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_int_type __ats_fun_46 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_46_closure_make () ; static ats_int_type __ats_fun_46_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_make_nil_03728_ () ; static ats_int_type compare_elt_elt_03727_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_51 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_51_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_51_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type funset_is_member_03735_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_rrotate_04051_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type avltree_lrotate_04034_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type insert_55 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_55_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type insert_55_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_03737_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type linset_make_nil_03756_ () ; static ats_int_type compare_elt_elt_03755_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_04308_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_04362_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_04338_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_62 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type insert_62_closure_make (ats_clo_ref_type env0) ; static ats_bool_type insert_62_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linset_insert_03765_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_69 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_free_03781_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp121) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 2820(line=109, offs=7) -- 2989(line=113, offs=33) */ ATSstaticdec() ats_ptr_type aux1_1 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_bool_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; __ats_lab_aux1_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp3 = atspre_gt_int_int (arg0, 0) ; if (tmp3) { tmp4 = atspre_sub_int_int (arg0, 1) ; arg0 = tmp4 ; arg1 = tmp2 ; goto __ats_lab_aux1_1 ; // tail call } else { tmp1 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp1 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp1) ; } /* end of [aux1_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 3015(line=115, offs=7) -- 3240(line=121, offs=23) */ ATSstaticdec() ats_int_type aux2_2 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; __ats_lab_aux2_2: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp7 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp6), atslab_s2exp_srt) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp9) ; if (tmp8) { arg0 = arg0 ; arg1 = tmp7 ; goto __ats_lab_aux2_2 ; // tail call } else { tmp10 = atspre_add_int_int (arg0, 1) ; arg0 = tmp10 ; arg1 = tmp7 ; goto __ats_lab_aux2_2 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp5 = arg0 ; break ; } while (0) ; return (tmp5) ; } /* end of [aux2_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_4 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; __ats_lab_loop_4: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp17 = atspre_isucc (arg1) ; arg0 = tmp16 ; arg1 = tmp17 ; goto __ats_lab_loop_4 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp15 = arg1 ; break ; } while (0) ; return (tmp15) ; } /* end of [loop_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp14) ; __ats_lab_list_length_01410_ats_ptr_type: tmp14 = loop_4 (arg0, 0) ; return (tmp14) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 3401(line=131, offs=7) -- 3740(line=146, offs=4) */ ATSstaticdec() ats_ptr_type aux_5 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (anairiats_rec_3, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab_aux_5: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp18 = arg0 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp21 = aux_5 (arg0, tmp20) ; tmp22 = ats_select_mac(tmp19, atslab_s2qua_svs) ; tmp23 = ats_select_mac(tmp19, atslab_s2qua_sps) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (tmp22, tmp23, tmp21) ; break ; } while (0) ; return (tmp18) ; } /* end of [aux_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_6 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; __ats_lab_ptr_alloc_01070_anairiats_rec_6: tmp31 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_6)) ; return (tmp31) ; } /* end of [ptr_alloc_01070_anairiats_rec_6] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 2656(line=99, offs=1) -- 4712(line=186, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5, ats_int_type arg6, ats_ptr_type arg7, ats_ptr_type arg8) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_int_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_make: tmp12 = aux1_1 (arg6, arg7) ; tmp11 = aux2_2 (0, tmp12) ; tmp13 = list_length_01410_ats_ptr_type (arg7) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg8 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_5, arg8, atslab_0) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (arg3, tmp25) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (arg3) ; break ; } while (0) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun (arg6, arg7, tmp24) ; tmp27 = aux_5 (tmp26, arg5) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get () ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2con_stamp_make () ; tmp30 = ptr_alloc_01070_anairiats_rec_6 () ; tmp32 = ats_selsin_mac(tmp30, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_sym) = arg2 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_loc) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_fil) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_scst) = arg3 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_npf) = arg6 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_vwtp) = arg4 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_qua) = arg5 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_arg) = arg7 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_arity_full) = tmp13 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_arity_real) = tmp11 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_ind) = arg8 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_type) = tmp27 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_tag) = -1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_pack) = tmp28 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp32), atslab_d2con_stamp) = tmp29 ; tmp0 = atspre_ref_make_view_ptr (tmp32) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 4782(line=191, offs=15) -- 4871(line=193, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym: tmp34 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp33 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp34), atslab_d2con_sym) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 4923(line=196, offs=15) -- 5012(line=198, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_loc: tmp36 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp35 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp36), atslab_d2con_loc) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 5064(line=201, offs=15) -- 5153(line=203, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_fil (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_fil: tmp38 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp37 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp38), atslab_d2con_fil) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_fil] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 5206(line=206, offs=16) -- 5296(line=208, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst: tmp40 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp39 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp40), atslab_d2con_scst) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 5349(line=211, offs=15) -- 5438(line=213, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_npf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_npf: tmp42 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp41 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp42), atslab_d2con_npf) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_npf] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 5491(line=216, offs=16) -- 5581(line=218, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_vwtp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_vwtp: tmp44 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp43 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp44), atslab_d2con_vwtp) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_vwtp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 5655(line=223, offs=15) -- 5744(line=225, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_qua (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_qua: tmp46 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp45 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp46), atslab_d2con_qua) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_qua] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 5796(line=228, offs=15) -- 5885(line=230, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arg: tmp48 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp47 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp48), atslab_d2con_arg) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arg] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 5944(line=233, offs=22) -- 6040(line=235, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full: tmp50 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp49 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp50), atslab_d2con_arity_full) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 6106(line=238, offs=22) -- 6202(line=240, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real: tmp52 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp51 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp52), atslab_d2con_arity_real) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 6261(line=243, offs=15) -- 6350(line=245, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_ind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_ind: tmp54 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp53 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp54), atslab_d2con_ind) ; return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_ind] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 6403(line=248, offs=16) -- 6493(line=250, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type: tmp56 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp55 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp56), atslab_d2con_type) ; return (tmp55) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 6567(line=255, offs=15) -- 6643(line=257, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag: tmp58 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp57 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp58), atslab_d2con_tag) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 6694(line=259, offs=15) -- 6782(line=261, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_set_tag (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_set_tag: tmp60 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp60), atslab_d2con_tag) = arg1 ; return /* (tmp59) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_set_tag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 6858(line=267, offs=3) -- 6948(line=269, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_pack (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_pack: tmp62 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp61 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp62), atslab_d2con_pack) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_pack] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 7005(line=273, offs=3) -- 7096(line=275, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_stamp: tmp64 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp63 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_6, tmp64), atslab_d2con_stamp) ; return (tmp63) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 7216(line=284, offs=16) -- 7267(line=285, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name: tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym (arg0) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp66) ; return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 7346(line=291, offs=18) -- 7386(line=292, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nullary (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nullary: tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (arg0) ; tmp67 = atspre_eq_int_int (tmp68, 0) ; return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nullary] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 7443(line=296, offs=18) -- 7490(line=297, offs=40) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_tagless (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_tagless: tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg0) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tagless (tmp70) ; return (tmp69) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_tagless] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 7571(line=303, offs=18) -- 7750(line=313, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listnil (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (anairiats_rec_7, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listnil: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg0) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst (tmp72) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp73 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_8, tmp73, atslab_0) ; tmp76 = ats_select_mac(tmp74, atslab_0) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (arg0, tmp76) ; if (tmp75) { tmp71 = ats_true_bool ; } else { tmp71 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (tmp73 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 7657(line=309, offs=3) -- 7746(line=312, offs=22)") ; } __ats_lab_11_1: tmp71 = ats_false_bool ; break ; } while (0) ; return (tmp71) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listnil] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 7809(line=316, offs=19) -- 7988(line=326, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listcons (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (anairiats_rec_7, tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listcons: tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg0) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst (tmp78) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp79 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_8, tmp79, atslab_0) ; tmp82 = ats_select_mac(tmp80, atslab_1) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (arg0, tmp82) ; if (tmp81) { tmp77 = ats_true_bool ; } else { tmp77 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp79 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 7895(line=322, offs=3) -- 7984(line=325, offs=22)") ; } __ats_lab_13_1: tmp77 = ats_false_bool ; break ; } while (0) ; return (tmp77) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listcons] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 8048(line=329, offs=19) -- 8096(line=330, offs=41) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listlike (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listlike: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg0) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike (tmp84) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_listlike] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 8179(line=336, offs=19) -- 8227(line=337, offs=41) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_singular (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_singular: tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg0) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular (tmp86) ; return (tmp85) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_singular] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 8310(line=343, offs=19) -- 8358(line=344, offs=41) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_binarian (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_binarian: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg0) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_binarian (tmp88) ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_binarian] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 8443(line=351, offs=3) -- 8485(line=351, offs=45) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_linear (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_linear: tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg0) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear (tmp90) ; return (tmp89) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_linear] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 8519(line=354, offs=3) -- 8564(line=354, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nonlinear (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nonlinear: tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg0) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_nonlinear (tmp92) ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nonlinear] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 8618(line=360, offs=3) -- 8650(line=360, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp93) ; ATSlocal (ats_int_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con: tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_d2con_d2con (arg0, arg1) ; tmp93 = atspre_ieq (tmp94, 0) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 8708(line=365, offs=3) -- 8741(line=365, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_d2con_d2con (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp95) ; ATSlocal (ats_int_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_d2con_d2con: tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_d2con_d2con (arg0, arg1) ; tmp95 = atspre_ineq (tmp96, 0) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_d2con_d2con] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 8802(line=369, offs=21) -- 8868(line=370, offs=56) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_d2con_d2con (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp97) ; ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_d2con_d2con: tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_stamp (arg0) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_stamp (arg1) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp98, tmp99) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_d2con_d2con] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 8973(line=378, offs=14) -- 9033(line=380, offs=51) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp100) ; ATSlocal (ats_bool_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con: tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag (arg0) ; tmp101 = atspre_gte_int_int (tmp102, 0) ; if (tmp101) { tmp100 = ats_true_bool ; } else { tmp100 = ats_false_bool ; } /* end of [if] */ return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 9085(line=384, offs=14) -- 9155(line=386, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_exn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_exn: tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag (arg0) ; tmp103 = atspre_eq_int_int (tmp104, -1) ; return (tmp103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 9226(line=391, offs=14) -- 9307(line=393, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con: tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym (arg1) ; /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp106) ; return /* (tmp105) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 9356(line=396, offs=13) -- 9390(line=396, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_d2con (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_d2con: /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (stdout, arg0) ; return /* (tmp107) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_d2con] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 9413(line=398, offs=13) -- 9447(line=398, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con: /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (stderr, arg0) ; return /* (tmp108) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_43 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_bool_type, tmp115) ; // ATSlocal_void (tmp116) ; ATSlocal (ats_int_type, tmp117) ; __ats_lab_aux_43: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp113 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp115 = atspre_gt_int_int (arg1, 0) ; if (tmp115) { /* tmp114 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp116 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp112) ; tmp117 = atspre_add_int_int (arg1, 1) ; arg0 = tmp113 ; arg1 = tmp117 ; goto __ats_lab_aux_43 ; // tail call break ; } while (0) ; return /* (tmp111) */ ; } /* end of [aux_43] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_43_closure_type ; ats_void_type aux_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_43 (((aux_43_closure_type*)cloptr)->closure_env_0, ((aux_43_closure_type*)cloptr)->closure_env_1, ((aux_43_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_43_closure_init (aux_43_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_43_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_43_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_43_closure_type *p_clo = ATS_MALLOC(sizeof(aux_43_closure_type)) ; aux_43_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp110) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp110 = */ aux_43 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp110) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 9498(line=404, offs=3) -- 9553(line=404, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst: /* tmp109 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) ; return /* (tmp109) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 9608(line=408, offs=16) -- 9647(line=408, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_d2conlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_d2conlst: /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst (stdout, arg0) ; return /* (tmp118) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_d2conlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 9673(line=410, offs=16) -- 9712(line=410, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2conlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2conlst: /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst (stderr, arg0) ; return /* (tmp119) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2conlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 9943(line=423, offs=11) -- 10028(line=427, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_46 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp120) ; __ats_lab___ats_fun_46: tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_d2con_d2con (arg0, arg1) ; return (tmp120) ; } /* end of [__ats_fun_46] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_46_closure_type ; ats_int_type __ats_fun_46_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_46 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_46_closure_init (__ats_fun_46_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_46_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_46_closure_make () { __ats_fun_46_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_46_closure_type)) ; __ats_fun_46_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 2749(line=94, offs=29) -- 2758(line=94, offs=38) */ ATSstaticdec() ats_ptr_type funset_make_nil_03728_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_funset_make_nil_03728_: tmp123 = (ats_sum_ptr_type)0 ; return (tmp123) ; } /* end of [funset_make_nil_03728_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 10177(line=436, offs=14) -- 10204(line=436, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_nil: tmp122 = funset_make_nil_03728_ () ; return (tmp122) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 1954(line=57, offs=30) -- 1982(line=57, offs=58) */ ATSstaticdec() ats_int_type compare_elt_elt_03727_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp131) ; __ats_lab_compare_elt_elt_03727_ats_ptr_type: tmp131 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp131) ; } /* end of [compare_elt_elt_03727_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4143(line=153, offs=7) -- 4406(line=161, offs=20) */ ATSstaticdec() ats_bool_type aux_51 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_int_type, tmp130) ; ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_bool_type, tmp133) ; __ats_lab_aux_51: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp128 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ; tmp129 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ; tmp130 = compare_elt_elt_03727_ats_ptr_type (env0, tmp127, env1) ; tmp132 = atspre_lt_int_int (tmp130, 0) ; if (tmp132) { arg0 = tmp128 ; goto __ats_lab_aux_51 ; // tail call } else { tmp133 = atspre_gt_int_int (tmp130, 0) ; if (tmp133) { arg0 = tmp129 ; goto __ats_lab_aux_51 ; // tail call } else { tmp126 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp126 = ats_false_bool ; break ; } while (0) ; return (tmp126) ; } /* end of [aux_51] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_51_closure_type ; ats_bool_type aux_51_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_51 (((aux_51_closure_type*)cloptr)->closure_env_0, ((aux_51_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_51_closure_init (aux_51_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_51_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_51_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_51_closure_type *p_clo = ATS_MALLOC(sizeof(aux_51_closure_type)) ; aux_51_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4104(line=152, offs=3) -- 4426(line=163, offs=2) */ ATSstaticdec() ats_bool_type funset_is_member_03735_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp125) ; __ats_lab_funset_is_member_03735_ats_ptr_type: tmp125 = aux_51 (arg1, arg2, arg0) ; return (tmp125) ; } /* end of [funset_is_member_03735_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 10233(line=440, offs=3) -- 10276(line=440, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_ismem (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_ismem: tmp124 = funset_is_member_03735_ats_ptr_type (arg0, arg1, statmp121) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_ismem] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 5504(line=202, offs=46) -- 6164(line=224, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04051_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_int_type, tmp159) ; ATSlocal (ats_int_type, tmp160) ; ATSlocal (ats_int_type, tmp161) ; ATSlocal (ats_bool_type, tmp162) ; ATSlocal (ats_int_type, tmp163) ; ATSlocal (ats_int_type, tmp164) ; ATSlocal (ats_int_type, tmp165) ; ATSlocal (ats_int_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_int_type, tmp171) ; ATSlocal (ats_int_type, tmp172) ; ATSlocal (ats_int_type, tmp173) ; ATSlocal (ats_int_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_int_type, tmp176) ; ATSlocal (ats_int_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_int_type, tmp179) ; ATSlocal (ats_int_type, tmp180) ; __ats_lab_avltree_rrotate_04051_ats_ptr_type: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp155 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_2) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_3) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (tmp156 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp159 = ats_caselptrlab_mac(anairiats_sum_9, tmp156, atslab_0) ; tmp158 = tmp159 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (tmp156 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp158 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (tmp157 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp161 = ats_caselptrlab_mac(anairiats_sum_9, tmp157, atslab_0) ; tmp160 = tmp161 ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (tmp157 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp160 = 0 ; break ; } while (0) ; tmp163 = atspre_iadd (tmp158, 0) ; tmp162 = atspre_igte (tmp163, tmp160) ; if (tmp162) { tmp164 = atspre_iadd (tmp160, 1) ; tmp166 = atspre_imax (tmp158, tmp164) ; tmp165 = atspre_iadd (1, tmp166) ; tmp167 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp167, atslab_0, tmp164) ; ats_selptrset_mac(anairiats_sum_9, tmp167, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp167, atslab_2, tmp157) ; ats_selptrset_mac(anairiats_sum_9, tmp167, atslab_3, arg4) ; tmp154 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp154, atslab_0, tmp165) ; ats_selptrset_mac(anairiats_sum_9, tmp154, atslab_1, tmp155) ; ats_selptrset_mac(anairiats_sum_9, tmp154, atslab_2, tmp156) ; ats_selptrset_mac(anairiats_sum_9, tmp154, atslab_3, tmp167) ; } else { // if (tmp157 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp168 = ats_caselptrlab_mac(anairiats_sum_9, tmp157, atslab_1) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_9, tmp157, atslab_2) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_9, tmp157, atslab_3) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp169 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_9, tmp169, atslab_0) ; tmp171 = tmp172 ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (tmp169 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp171 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (tmp170 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_9, tmp170, atslab_0) ; tmp173 = tmp174 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (tmp170 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp173 = 0 ; break ; } while (0) ; tmp177 = atspre_imax (tmp158, tmp171) ; tmp176 = atspre_iadd (1, tmp177) ; tmp175 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp175, atslab_0, tmp176) ; ats_selptrset_mac(anairiats_sum_9, tmp175, atslab_1, tmp155) ; ats_selptrset_mac(anairiats_sum_9, tmp175, atslab_2, tmp156) ; ats_selptrset_mac(anairiats_sum_9, tmp175, atslab_3, tmp169) ; tmp180 = atspre_imax (tmp173, arg3) ; tmp179 = atspre_iadd (1, tmp180) ; tmp178 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp178, atslab_0, tmp179) ; ats_selptrset_mac(anairiats_sum_9, tmp178, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp178, atslab_2, tmp170) ; ats_selptrset_mac(anairiats_sum_9, tmp178, atslab_3, arg4) ; tmp154 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp154, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp154, atslab_1, tmp168) ; ats_selptrset_mac(anairiats_sum_9, tmp154, atslab_2, tmp175) ; ats_selptrset_mac(anairiats_sum_9, tmp154, atslab_3, tmp178) ; } /* end of [if] */ return (tmp154) ; } /* end of [avltree_rrotate_04051_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4671(line=174, offs=46) -- 5362(line=196, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04034_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_int_type, tmp195) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_int_type, tmp197) ; ATSlocal (ats_int_type, tmp198) ; ATSlocal (ats_bool_type, tmp199) ; ATSlocal (ats_int_type, tmp200) ; ATSlocal (ats_int_type, tmp201) ; ATSlocal (ats_int_type, tmp202) ; ATSlocal (ats_int_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; ATSlocal (ats_int_type, tmp209) ; ATSlocal (ats_int_type, tmp210) ; ATSlocal (ats_int_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_int_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_int_type, tmp216) ; ATSlocal (ats_int_type, tmp217) ; __ats_lab_avltree_lrotate_04034_ats_ptr_type: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp192 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_2) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_3) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (tmp193 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp196 = ats_caselptrlab_mac(anairiats_sum_9, tmp193, atslab_0) ; tmp195 = tmp196 ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (tmp193 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp195 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (tmp194 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp198 = ats_caselptrlab_mac(anairiats_sum_9, tmp194, atslab_0) ; tmp197 = tmp198 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (tmp194 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp197 = 0 ; break ; } while (0) ; tmp200 = atspre_iadd (tmp197, 0) ; tmp199 = atspre_ilte (tmp195, tmp200) ; if (tmp199) { tmp201 = atspre_iadd (tmp195, 1) ; tmp203 = atspre_imax (tmp201, tmp197) ; tmp202 = atspre_iadd (1, tmp203) ; tmp204 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp204, atslab_0, tmp201) ; ats_selptrset_mac(anairiats_sum_9, tmp204, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp204, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp204, atslab_3, tmp193) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_0, tmp202) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_1, tmp192) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_2, tmp204) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_3, tmp194) ; } else { // if (tmp193 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp205 = ats_caselptrlab_mac(anairiats_sum_9, tmp193, atslab_1) ; tmp206 = ats_caselptrlab_mac(anairiats_sum_9, tmp193, atslab_2) ; tmp207 = ats_caselptrlab_mac(anairiats_sum_9, tmp193, atslab_3) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (tmp206 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp209 = ats_caselptrlab_mac(anairiats_sum_9, tmp206, atslab_0) ; tmp208 = tmp209 ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (tmp206 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp208 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (tmp207 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp211 = ats_caselptrlab_mac(anairiats_sum_9, tmp207, atslab_0) ; tmp210 = tmp211 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (tmp207 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp210 = 0 ; break ; } while (0) ; tmp214 = atspre_imax (arg1, tmp208) ; tmp213 = atspre_iadd (1, tmp214) ; tmp212 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp212, atslab_0, tmp213) ; ats_selptrset_mac(anairiats_sum_9, tmp212, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp212, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp212, atslab_3, tmp206) ; tmp217 = atspre_imax (tmp210, tmp197) ; tmp216 = atspre_iadd (1, tmp217) ; tmp215 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp215, atslab_0, tmp216) ; ats_selptrset_mac(anairiats_sum_9, tmp215, atslab_1, tmp192) ; ats_selptrset_mac(anairiats_sum_9, tmp215, atslab_2, tmp207) ; ats_selptrset_mac(anairiats_sum_9, tmp215, atslab_3, tmp194) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_1, tmp205) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_2, tmp212) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_3, tmp215) ; } /* end of [if] */ return (tmp191) ; } /* end of [avltree_lrotate_04034_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6) */ ATSstaticdec() ats_ptr_type insert_55 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_int_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_bool_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_int_type, tmp147) ; ATSlocal (ats_int_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_int_type, tmp151) ; ATSlocal (ats_int_type, tmp152) ; ATSlocal (ats_int_type, tmp153) ; ATSlocal (ats_bool_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_int_type, tmp183) ; ATSlocal (ats_int_type, tmp184) ; ATSlocal (ats_int_type, tmp185) ; ATSlocal (ats_int_type, tmp186) ; ATSlocal (ats_bool_type, tmp187) ; ATSlocal (ats_int_type, tmp188) ; ATSlocal (ats_int_type, tmp189) ; ATSlocal (ats_int_type, tmp190) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; __ats_lab_insert_55: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_18_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp141 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ; tmp143 = compare_elt_elt_03727_ats_ptr_type (env0, tmp140, env1) ; tmp144 = atspre_lt_int_int (tmp143, 0) ; if (tmp144) { tmp145 = insert_55 (env0, env1, tmp141, arg1) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp145 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_9, tmp145, atslab_0) ; tmp146 = tmp147 ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (tmp145 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp146 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (tmp142 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_9, tmp142, atslab_0) ; tmp148 = tmp149 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp142 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp148 = 0 ; break ; } while (0) ; tmp151 = atspre_isub (tmp146, tmp148) ; tmp150 = atspre_ilte (tmp151, 1) ; if (tmp150) { tmp153 = atspre_imax (tmp146, tmp148) ; tmp152 = atspre_iadd (1, tmp153) ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_0, tmp152) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_1, tmp140) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_2, tmp145) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_3, tmp142) ; } else { tmp138 = avltree_rrotate_04051_ats_ptr_type (tmp140, tmp146, tmp145, tmp148, tmp142) ; } /* end of [if] */ } else { tmp181 = atspre_gt_int_int (tmp143, 0) ; if (tmp181) { tmp182 = insert_55 (env0, env1, tmp142, arg1) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (tmp141 == (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp184 = ats_caselptrlab_mac(anairiats_sum_9, tmp141, atslab_0) ; tmp183 = tmp184 ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (tmp141 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp183 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (tmp182 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp186 = ats_caselptrlab_mac(anairiats_sum_9, tmp182, atslab_0) ; tmp185 = tmp186 ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (tmp182 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp185 = 0 ; break ; } while (0) ; tmp188 = atspre_isub (tmp185, tmp183) ; tmp187 = atspre_ilte (tmp188, 1) ; if (tmp187) { tmp190 = atspre_imax (tmp183, tmp185) ; tmp189 = atspre_iadd (1, tmp190) ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_0, tmp189) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_1, tmp140) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_2, tmp141) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_3, tmp182) ; } else { tmp138 = avltree_lrotate_04034_ats_ptr_type (tmp140, tmp183, tmp141, tmp185, tmp182) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_0, tmp139) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_2, tmp141) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_3, tmp142) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp218 = (ats_sum_ptr_type)0 ; tmp219 = (ats_sum_ptr_type)0 ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_2, tmp218) ; ats_selptrset_mac(anairiats_sum_9, tmp138, atslab_3, tmp219) ; break ; } while (0) ; return (tmp138) ; } /* end of [insert_55] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_55_closure_type ; ats_ptr_type insert_55_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_55 (((insert_55_closure_type*)cloptr)->closure_env_0, ((insert_55_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_55_closure_init (insert_55_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_55_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_55_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_55_closure_type *p_clo = ATS_MALLOC(sizeof(insert_55_closure_type)) ; insert_55_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6244(line=230, offs=3) -- 7632(line=267, offs=2) */ ATSstaticdec() ats_bool_type funset_insert_03737_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp137) ; ATSlocal (ats_bool_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; __ats_lab_funset_insert_03737_ats_ptr_type: /* ats_bool_type tmp220 ; */ tmp221 = insert_55 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp220)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp221 ; tmp137 = tmp220 ; return (tmp137) ; } /* end of [funset_insert_03737_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 10330(line=445, offs=3) -- 10417(line=448, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_bool_type, tmp136) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_add: /* ats_ptr_type tmp135 ; */ tmp135 = arg0 ; tmp136 = funset_insert_03737_ats_ptr_type ((&tmp135), arg1, statmp121) ; tmp134 = tmp135 ; return (tmp134) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26) */ ATSstaticdec() ats_ptr_type linset_make_nil_03756_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp223) ; __ats_lab_linset_make_nil_03756_: tmp223 = (ats_sum_ptr_type)0 ; return (tmp223) ; } /* end of [linset_make_nil_03756_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 10491(line=453, offs=17) -- 10518(line=453, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_nil: tmp222 = linset_make_nil_03756_ () ; return (tmp222) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45) */ ATSstaticdec() ats_int_type compare_elt_elt_03755_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp234) ; __ats_lab_compare_elt_elt_03755_ats_ptr_type: tmp234 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp234) ; } /* end of [compare_elt_elt_03755_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54) */ ATSstaticdec() ats_int_type avltree_height_04308_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_int_type, tmp240) ; __ats_lab_avltree_height_04308_ats_ptr_type: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp240 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp239 = tmp240 ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp239 = 0 ; break ; } while (0) ; return (tmp239) ; } /* end of [avltree_height_04308_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04362_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_int_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_bool_type, tmp258) ; ATSlocal (ats_int_type, tmp259) ; ATSlocal (ats_int_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_int_type, tmp262) ; ATSlocal (ats_int_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_int_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_int_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_int_type, tmp272) ; ATSlocal (ats_int_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_int_type, tmp275) ; ATSlocal (ats_int_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; __ats_lab_avltree_rrotate_04362_ats_ptr_type: tmp250 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp250 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp251 = &ats_caselptrlab_mac(anairiats_sum_9, tmp250, atslab_0) ; tmp252 = &ats_caselptrlab_mac(anairiats_sum_9, tmp250, atslab_2) ; tmp253 = &ats_caselptrlab_mac(anairiats_sum_9, tmp250, atslab_3) ; tmp255 = ats_ptrget_mac(ats_ptr_type, tmp252) ; tmp254 = avltree_height_04308_ats_ptr_type (tmp255) ; tmp257 = ats_ptrget_mac(ats_ptr_type, tmp253) ; tmp256 = avltree_height_04308_ats_ptr_type (tmp257) ; tmp259 = atspre_iadd (tmp254, 0) ; tmp258 = atspre_igte (tmp259, tmp256) ; if (tmp258) { tmp260 = atspre_iadd (tmp256, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp260 ; tmp261 = ats_ptrget_mac(ats_ptr_type, tmp253) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp261 ; tmp263 = atspre_imax (tmp254, tmp260) ; tmp262 = atspre_iadd (1, tmp263) ; ats_ptrget_mac(ats_int_type, tmp251) = tmp262 ; ats_ptrget_mac(ats_ptr_type, tmp253) = arg5 ; tmp249 = tmp250 ; } else { tmp264 = ats_ptrget_mac(ats_ptr_type, tmp253) ; // if (tmp264 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp265 = &ats_caselptrlab_mac(anairiats_sum_9, tmp264, atslab_0) ; tmp266 = &ats_caselptrlab_mac(anairiats_sum_9, tmp264, atslab_2) ; tmp267 = &ats_caselptrlab_mac(anairiats_sum_9, tmp264, atslab_3) ; tmp269 = ats_ptrget_mac(ats_ptr_type, tmp266) ; tmp268 = avltree_height_04308_ats_ptr_type (tmp269) ; tmp271 = ats_ptrget_mac(ats_ptr_type, tmp267) ; tmp270 = avltree_height_04308_ats_ptr_type (tmp271) ; tmp273 = atspre_imax (tmp270, arg3) ; tmp272 = atspre_iadd (1, tmp273) ; ats_ptrget_mac(ats_int_type, arg0) = tmp272 ; tmp274 = ats_ptrget_mac(ats_ptr_type, tmp267) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp274 ; tmp276 = atspre_imax (tmp254, tmp268) ; tmp275 = atspre_iadd (1, tmp276) ; ats_ptrget_mac(ats_int_type, tmp251) = tmp275 ; tmp277 = ats_ptrget_mac(ats_ptr_type, tmp266) ; ats_ptrget_mac(ats_ptr_type, tmp253) = tmp277 ; ats_ptrget_mac(ats_int_type, tmp265) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp266) = tmp250 ; ats_ptrget_mac(ats_ptr_type, tmp267) = arg5 ; tmp249 = tmp264 ; } /* end of [if] */ return (tmp249) ; } /* end of [avltree_rrotate_04362_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04338_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_int_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_int_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_bool_type, tmp298) ; ATSlocal (ats_int_type, tmp299) ; ATSlocal (ats_int_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_int_type, tmp302) ; ATSlocal (ats_int_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_int_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_int_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_int_type, tmp312) ; ATSlocal (ats_int_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_int_type, tmp315) ; ATSlocal (ats_int_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; __ats_lab_avltree_lrotate_04338_ats_ptr_type: tmp290 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp290 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp291 = &ats_caselptrlab_mac(anairiats_sum_9, tmp290, atslab_0) ; tmp292 = &ats_caselptrlab_mac(anairiats_sum_9, tmp290, atslab_2) ; tmp293 = &ats_caselptrlab_mac(anairiats_sum_9, tmp290, atslab_3) ; tmp295 = ats_ptrget_mac(ats_ptr_type, tmp292) ; tmp294 = avltree_height_04308_ats_ptr_type (tmp295) ; tmp297 = ats_ptrget_mac(ats_ptr_type, tmp293) ; tmp296 = avltree_height_04308_ats_ptr_type (tmp297) ; tmp299 = atspre_iadd (tmp296, 0) ; tmp298 = atspre_ilte (tmp294, tmp299) ; if (tmp298) { tmp300 = atspre_iadd (tmp294, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp300 ; tmp301 = ats_ptrget_mac(ats_ptr_type, tmp292) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp301 ; tmp303 = atspre_imax (tmp300, tmp296) ; tmp302 = atspre_iadd (1, tmp303) ; ats_ptrget_mac(ats_int_type, tmp291) = tmp302 ; ats_ptrget_mac(ats_ptr_type, tmp292) = arg5 ; tmp289 = tmp290 ; } else { tmp304 = ats_ptrget_mac(ats_ptr_type, tmp292) ; // if (tmp304 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp305 = &ats_caselptrlab_mac(anairiats_sum_9, tmp304, atslab_0) ; tmp306 = &ats_caselptrlab_mac(anairiats_sum_9, tmp304, atslab_2) ; tmp307 = &ats_caselptrlab_mac(anairiats_sum_9, tmp304, atslab_3) ; tmp309 = ats_ptrget_mac(ats_ptr_type, tmp306) ; tmp308 = avltree_height_04308_ats_ptr_type (tmp309) ; tmp311 = ats_ptrget_mac(ats_ptr_type, tmp307) ; tmp310 = avltree_height_04308_ats_ptr_type (tmp311) ; tmp313 = atspre_imax (arg1, tmp308) ; tmp312 = atspre_iadd (1, tmp313) ; ats_ptrget_mac(ats_int_type, arg0) = tmp312 ; tmp314 = ats_ptrget_mac(ats_ptr_type, tmp306) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp314 ; tmp316 = atspre_imax (tmp310, tmp296) ; tmp315 = atspre_iadd (1, tmp316) ; ats_ptrget_mac(ats_int_type, tmp291) = tmp315 ; tmp317 = ats_ptrget_mac(ats_ptr_type, tmp307) ; ats_ptrget_mac(ats_ptr_type, tmp292) = tmp317 ; ats_ptrget_mac(ats_int_type, tmp305) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp306) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp307) = tmp290 ; tmp289 = tmp304 ; } /* end of [if] */ return (tmp289) ; } /* end of [avltree_lrotate_04338_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4) */ ATSstaticdec() ats_bool_type insert_62 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_int_type, tmp233) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_bool_type, tmp236) ; ATSlocal (ats_bool_type, tmp237) ; ATSlocal (ats_int_type, tmp238) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_int_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_bool_type, tmp244) ; ATSlocal (ats_int_type, tmp245) ; ATSlocal (ats_int_type, tmp246) ; ATSlocal (ats_int_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_bool_type, tmp278) ; ATSlocal (ats_bool_type, tmp279) ; ATSlocal (ats_int_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_int_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_bool_type, tmp284) ; ATSlocal (ats_int_type, tmp285) ; ATSlocal (ats_int_type, tmp286) ; ATSlocal (ats_int_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; __ats_lab_insert_62: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_44_1: tmp229 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp230 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp231 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp232 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp235 = ats_ptrget_mac(ats_ptr_type, tmp230) ; tmp233 = compare_elt_elt_03755_ats_ptr_type (arg1, tmp235, env0) ; tmp236 = atspre_lt_int_int (tmp233, 0) ; if (tmp236) { tmp237 = insert_62 (env0, tmp231, arg1) ; tmp241 = ats_ptrget_mac(ats_ptr_type, tmp231) ; tmp238 = avltree_height_04308_ats_ptr_type (tmp241) ; tmp243 = ats_ptrget_mac(ats_ptr_type, tmp232) ; tmp242 = avltree_height_04308_ats_ptr_type (tmp243) ; tmp245 = atspre_isub (tmp238, tmp242) ; tmp244 = atspre_ilte (tmp245, 1) ; if (tmp244) { tmp247 = atspre_imax (tmp238, tmp242) ; tmp246 = atspre_iadd (1, tmp247) ; ats_ptrget_mac(ats_int_type, tmp229) = tmp246 ; tmp228 = tmp237 ; } else { tmp248 = avltree_rrotate_04362_ats_ptr_type (tmp229, tmp238, tmp231, tmp242, tmp232, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp248 ; tmp228 = tmp237 ; } /* end of [if] */ } else { tmp278 = atspre_gt_int_int (tmp233, 0) ; if (tmp278) { tmp279 = insert_62 (env0, tmp232, arg1) ; tmp281 = ats_ptrget_mac(ats_ptr_type, tmp231) ; tmp280 = avltree_height_04308_ats_ptr_type (tmp281) ; tmp283 = ats_ptrget_mac(ats_ptr_type, tmp232) ; tmp282 = avltree_height_04308_ats_ptr_type (tmp283) ; tmp285 = atspre_isub (tmp282, tmp280) ; tmp284 = atspre_ilte (tmp285, 1) ; if (tmp284) { tmp287 = atspre_imax (tmp280, tmp282) ; tmp286 = atspre_iadd (1, tmp287) ; ats_ptrget_mac(ats_int_type, tmp229) = tmp286 ; tmp228 = tmp279 ; } else { tmp288 = avltree_lrotate_04338_ats_ptr_type (tmp229, tmp280, tmp231, tmp282, tmp232, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp288 ; tmp228 = tmp279 ; } /* end of [if] */ } else { tmp228 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp319 = (ats_sum_ptr_type)0 ; tmp320 = (ats_sum_ptr_type)0 ; tmp318 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp318, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_9, tmp318, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp318, atslab_2, tmp319) ; ats_selptrset_mac(anairiats_sum_9, tmp318, atslab_3, tmp320) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp318 ; tmp228 = ats_false_bool ; break ; } while (0) ; return (tmp228) ; } /* end of [insert_62] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } insert_62_closure_type ; ats_bool_type insert_62_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return insert_62 (((insert_62_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_62_closure_init (insert_62_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_62_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type insert_62_closure_make (ats_clo_ref_type env0) { insert_62_closure_type *p_clo = ATS_MALLOC(sizeof(insert_62_closure_type)) ; insert_62_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_03765_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp227) ; __ats_lab_linset_insert_03765_ats_ptr_type: tmp227 = insert_62 (arg2, arg0, arg1) ; return (tmp227) ; } /* end of [linset_insert_03765_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 10548(line=457, offs=3) -- 10635(line=460, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_bool_type, tmp226) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_add: /* ats_ptr_type tmp225 ; */ tmp225 = arg0 ; tmp226 = linset_insert_03765_ats_ptr_type ((&tmp225), arg1, statmp121) ; tmp224 = tmp225 ; return (tmp224) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19) */ ATSstaticdec() ats_ptr_type aux_69 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; __ats_lab_aux_69: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp324 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp325 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ; tmp326 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ; ATS_FREE(arg0) ; tmp327 = aux_69 (tmp326, arg1) ; tmp328 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp328, atslab_0, tmp324) ; ats_selptrset_mac(anairiats_sum_1, tmp328, atslab_1, tmp327) ; arg0 = tmp325 ; arg1 = tmp328 ; goto __ats_lab_aux_69 ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp323 = arg1 ; break ; } while (0) ; return (tmp323) ; } /* end of [aux_69] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_free_03781_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp329) ; __ats_lab_linset_listize_free_03781_ats_ptr_type: tmp329 = (ats_sum_ptr_type)0 ; tmp322 = aux_69 (arg0, tmp329) ; return (tmp322) ; } /* end of [linset_listize_free_03781_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_dcon.dats: 10700(line=463, offs=26) -- 10734(line=463, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_listize_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp321) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_listize_free: tmp321 = linset_listize_free_03781_ats_ptr_type (arg0) ; return (tmp321) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_listize_free] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp121, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp121 = __ats_fun_46_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_dcon_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_e1xpval_error_dats.c0000644000175000017500000007756013431250607023335 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; /* 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_staexp1_2esats__E1XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_defined_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_undefined_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_maxlevel_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_opr_arglst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPide_unbound_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPundef_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPlist_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPapp_fun_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_fun_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_opr_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_arity_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPfun_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPerr_13) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_valerr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__the_valerrlst_get) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp71) ; ATSstatic (ats_ptr_type, statmp74) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_e1xpval_error.dats: 1566(line=48, offs=3) -- 4863(line=136, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_valerr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_valerr: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp1), atslab_e1xp_loc) ; /* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp3) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the expression cannot be evaluated to a value.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp5), atslab_e1xp_loc) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp7) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the expression is expected to be an indentifer.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp9), atslab_e1xp_loc) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp11) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the expression is expected to be an indentifer.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp14 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp14), atslab_e1xp_loc) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp16) ; /* tmp17 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(1): the maximal evaluation depth (%i) has been reached."), tmp13) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp19 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp18), atslab_e1xp_loc) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp21) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the operator [")) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp19) ; /* tmp24 = */ atspre_fprint_string (arg0, ATSstrcst("] cannot handle its argument(s).")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp26 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp25), atslab_e1xp_loc) ; tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp25), atslab_e1xp_node) ; if (((ats_sum_ptr_type)tmp27)->tag != 0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_e1xpval_error.dats: 2825(line=84, offs=9) -- 2852(line=84, offs=36)") ; } tmp28 = ats_caselptrlab_mac(anairiats_sum_1, tmp27, atslab_0) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp26) ; /* tmp30 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the identifier [")) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp28) ; /* tmp32 = */ atspre_fprint_string (arg0, ATSstrcst("] is unbound.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp35 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp33), atslab_e1xp_loc) ; /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp35) ; /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the expression cannot be evaluated as it is un-defined.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp39 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp37), atslab_e1xp_loc) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp39) ; /* tmp40 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the expression cannot be evaluated as it is a tuple.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp43 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp41), atslab_e1xp_loc) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp43) ; /* tmp44 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the applied expression is required to be an identifier.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp45), atslab_e1xp_loc) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp48) ; /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the applied identifier [")) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp46) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst("] does not refer to a function.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp53 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp55 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp52), atslab_e1xp_loc) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp55) ; /* tmp56 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the applied identifier [")) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp53) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("] does not refer to a supported operator.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 11) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp61 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp59), atslab_e1xp_loc) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp61) ; /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): arity mismatch for this function application.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 12) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp63), atslab_e1xp_loc) ; /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp65) ; /* tmp66 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the expression cannot be evaluated as it is a function.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)arg1)->tag != 13) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp67), atslab_e1xp_loc) ; /* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp69) ; /* tmp70 = */ atspre_fprint_string (arg0, ATSstrcst(": error(1): the expression cannot be evaluated as it indicates an error.")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_valerr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp73 ; */ tmp73 = arg0 ; tmp72 = atspre_ref_make_elt_tsz ((&tmp73), sizeof(ats_ptr_type)) ; return (tmp72) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval_error.dats: 5135(line=154, offs=3) -- 5250(line=158, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add: tmp76 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp71), atslab_1) ; tmp78 = ats_ptrget_mac(ats_ptr_type, tmp76) ; tmp77 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp77, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp77, atslab_1, tmp78) ; ats_ptrget_mac(ats_ptr_type, tmp76) = tmp77 ; return /* (tmp75) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval_error.dats: 5312(line=162, offs=3) -- 5434(line=167, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__the_valerrlst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__the_valerrlst_get: tmp80 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp71), atslab_1) ; tmp81 = ats_ptrget_mac(ats_ptr_type, tmp80) ; tmp82 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp80) = tmp82 ; tmp79 = tmp81 ; return (tmp79) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__the_valerrlst_get] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval_error.dats: 5593(line=177, offs=7) -- 5804(line=184, offs=28) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; // ATSlocal_void (tmp88) ; __ats_lab_loop_5: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp87 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_valerr (arg0, tmp86) ; arg0 = arg0 ; arg1 = tmp87 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: break ; } while (0) ; return /* (tmp85) */ ; } /* end of [loop_5] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval_error.dats: 5543(line=175, offs=3) -- 5847(line=188, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_the_valerrlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_the_valerrlst: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__the_valerrlst_get () ; /* tmp83 = */ loop_5 (arg0, tmp84) ; return /* (tmp83) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_the_valerrlst] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp71, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp74, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp74 = (ats_sum_ptr_type)0 ; statmp71 = ref_01088_ats_ptr_type (statmp74) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_e1xpval_error_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_claulst_dats.c0000644000175000017500000061510213431250607023362 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_primval_loc ; ats_ptr_type atslab_primval_type ; ats_ptr_type atslab_primval_node ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_5 ; typedef struct { anairiats_rec_5 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_hipat_loc ; ats_ptr_type atslab_hipat_type ; ats_ptr_type atslab_hipat_node ; ats_ptr_type atslab_hipat_asvar ; } anairiats_rec_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_double_type atslab_0 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_17 ; typedef struct { ats_ptr_type atslab_hiclau_loc ; ats_ptr_type atslab_hiclau_pat ; ats_ptr_type atslab_hiclau_gua ; ats_int_type atslab_hiclau_seq ; ats_int_type atslab_hiclau_neg ; ats_ptr_type atslab_hiclau_body ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_higmat_loc ; ats_ptr_type atslab_higmat_exp ; ats_ptr_type atslab_higmat_pat ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_20 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIPAT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPbool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPchar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPstring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPi0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPempty_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_any_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPann_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKbool_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKchar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKfloat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabmov_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTcaseof_fail_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKpat_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKlabpat_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKrparen_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPasvar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPlablparen_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPpatlparen_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPreclparen_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPpatneg_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPtmplabend_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPtmplabgua_9) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_eq_bool_bool) (ats_bool_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_int_of_llint) (ats_llint_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_llint_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string) (ats_ptr_type) ; ATSextern_fun(ats_double_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__double_make_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_binarian) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckindopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__i0nt2intinf) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_bool) (ats_ptr_type, ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmplab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ibranch_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_comment) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_freeconlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_freeconenv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_freeconenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmpmovlst_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make_loc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomplstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_tmplab) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_guafail) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unskip) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unrparen) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtest) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtests) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_isbin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_ismat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_rest) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_fail) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplstlst_jumpfill) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__himatchlst_patcomp) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclau_patcomp) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclaulst_patcomp) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmat_ccomp) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmatlst_ccomp) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKpat_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKlabpat_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKrparen_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPany_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPvar_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPasvar_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPlablparen_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPpatlparen_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPreclparen_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPpatneg_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPtmplabend_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPtmplabgua_9) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02464_ () ; static ats_ptr_type ptrof_3 (ats_ptr_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type aux_13 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_13_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_13_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxlst_18 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type auxlst2_19 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type auxlst_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type auxlst2_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type ftpmv_26 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type auxmovfin_25 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type loop_29 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_anairiats_rec_5 (ats_ptr_type arg0) ; static ats_ptr_type revapp_32 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_anairiats_rec_5 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_anairiats_rec_5 (ats_ptr_type arg0) ; static ats_void_type loop_37 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_40 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type revapp_43 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type auxlst_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxtpmv_make_46 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type addrparen_47 (ats_ptr_type arg0) ; static ats_ptr_type addselcon_48 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type addselect_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxcomplst_50 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxcomplst_mtk_51 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type prerr_interror_loc_02466_ (ats_ptr_type arg0) ; static ats_ptr_type auxcomplst_pat_52 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxcomplst_labpat_53 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type auxloc_56 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_57 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ; static ats_void_type loop_60 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_extend_01503_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type addtpmv_63 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type addtlab_64 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type addfreecon_65 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type fptcmplst_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type fptcmplst2_67 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type auxcl_71 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type auxclist_72 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 1832(line=64, offs=3) -- 1871(line=64, offs=42) */ ATSstaticdec() ats_void_type prerr_FILENAME_02464_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02464_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_ccomp_claulst")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02464_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 2930(line=137, offs=3) -- 3155(line=149, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp1 = tmp2 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc (tmp3) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp4, tmp3) ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 3256(line=157, offs=5) -- 3340(line=158, offs=53) */ ATSstaticdec() ats_ptr_type ptrof_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_ptrof_3: tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_primval_loc) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp7, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, arg0) ; return (tmp6) ; } /* end of [ptrof_3] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 3231(line=155, offs=3) -- 3680(line=176, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv2: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (arg1) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; if (tmp8) { tmp5 = ptrof_3 (tmp9) ; } else { tmp5 = tmp9 ; } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp11 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; if (tmp8) { tmp5 = ptrof_3 (tmp11) ; } else { tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc (tmp10) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp12, tmp10) ; } /* end of [if] */ break ; } while (0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 3759(line=182, offs=3) -- 4160(line=206, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("TPMVnone(")) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp14) ; /* tmp13 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp18 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("TPMVsome(")) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp17) ; /* tmp21 = */ atspre_fprint_string (arg0, ATSstrcst("<-")) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp18) ; /* tmp13 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp13) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 4383(line=222, offs=3) -- 4716(line=242, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmpmovlst_add (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (anairiats_rec_5, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmpmovlst_add: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp26.atslab_0 = arg1 ; tmp26.atslab_1 = tmp24 ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp25, atslab_0, tmp26) ; ats_selptrset_mac(anairiats_sum_6, tmp25, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp25 ; break ; } while (0) ; return /* (tmp23) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmpmovlst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp30 ; */ tmp30 = arg0 ; tmp29 = atspre_ref_make_elt_tsz ((&tmp30), sizeof(ats_ptr_type)) ; return (tmp29) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_ref_make_elt_01089_ats_ptr_type: tmp28 = ref_01088_ats_ptr_type (arg0) ; return (tmp28) ; } /* end of [ref_make_elt_01089_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 5255(line=279, offs=3) -- 5301(line=279, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make: tmp31 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; tmp27 = ref_make_elt_01089_ats_ptr_type (tmp31) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 5402(line=287, offs=3) -- 5454(line=287, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make_loc: tmp33 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp33)->tag = 4 ; ats_selptrset_mac(anairiats_sum_2, tmp33, atslab_0, arg0) ; tmp32 = ref_make_elt_01089_ats_ptr_type (tmp33) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make_loc] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 6257(line=331, offs=3) -- 8247(line=426, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomp: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPany(")) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp35) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp39 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp40 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPvar(")) ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp38) ; /* tmp42 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval (arg0, tmp39) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp45 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPasvar(")) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp44) ; /* tmp48 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval (arg0, tmp45) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPlablparen(")) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp50) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp54 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_2) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_3) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_4) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPpatlparen(")) ; /* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck (arg0, tmp53) ; /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckindopt (arg0, tmp56) ; /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval (arg0, tmp54) ; /* tmp64 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (arg0, tmp55) ; /* tmp66 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; tmp68 = ats_ptrget_mac(ats_ptr_type, tmp57) ; /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont (arg0, tmp68) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp70 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp71 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPreclparen(")) ; /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval (arg0, tmp69) ; /* tmp73 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp74 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (arg0, tmp70) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPrparen()")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp77 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPpatckneg(")) ; /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck (arg0, tmp75) ; /* tmp79 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval (arg0, tmp76) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp82 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPtmplabend(")) ; /* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (arg0, tmp81) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)arg1)->tag != 9) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp85 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst("PTCMPtmplabgua(")) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (arg0, tmp84) ; /* tmp88 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; tmp90 = ats_ptrget_mac(ats_ptr_type, tmp85) ; /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont (arg0, tmp90) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomp] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_13 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_bool_type, tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_int_type, tmp99) ; __ats_lab_aux_13: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp97 = atspre_gt_int_int (arg1, 0) ; if (tmp97) { /* tmp96 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp98 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp94) ; tmp99 = atspre_add_int_int (arg1, 1) ; arg0 = tmp95 ; arg1 = tmp99 ; goto __ats_lab_aux_13 ; // tail call break ; } while (0) ; return /* (tmp93) */ ; } /* end of [aux_13] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_13_closure_type ; ats_void_type aux_13_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_13 (((aux_13_closure_type*)cloptr)->closure_env_0, ((aux_13_closure_type*)cloptr)->closure_env_1, ((aux_13_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_13_closure_init (aux_13_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_13_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_13_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_13_closure_type *p_clo = ATS_MALLOC(sizeof(aux_13_closure_type)) ; aux_13_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp92) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp92 = */ aux_13 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp92) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 8579(line=446, offs=3) -- 8638(line=447, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomplst: /* tmp91 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomp) ; return /* (tmp91) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomplst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 8703(line=452, offs=3) -- 8767(line=453, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomplstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomplstlst: /* tmp100 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomplst) ; return /* (tmp100) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__fprint_patcomplstlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 8988(line=468, offs=3) -- 9511(line=495, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_tmplab (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_tmplab: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp101 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp102)->tag != 4) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_7, tmp102, atslab_2) ; tmp101 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp101, atslab_0, tmp104) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp102)->tag != 5) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_1) ; tmp101 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp101, atslab_0, tmp105) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp102)->tag != 8) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_2, tmp102, atslab_0) ; tmp101 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp101, atslab_0, tmp106) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp102)->tag != 9) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_0) ; tmp101 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp101, atslab_0, tmp107) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: arg0 = tmp103 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_tmplab ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_tmplab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 9674(line=506, offs=3) -- 10100(line=534, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_guafail (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_guafail: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_27_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp110 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp109)->tag != 9) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_3, tmp109, atslab_1) ; tmp108 = ats_ptrget_mac(ats_ptr_type, tmp111) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: arg0 = tmp110 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_guafail ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp108 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; break ; } while (0) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_guafail] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 10393(line=552, offs=5) -- 11121(line=586, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_18 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_int_type, tmp116) ; ATSlocal (ats_int_type, tmp117) ; // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab_auxlst_18: do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp113 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp115 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp114)->tag != 0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp113 = tmp115 ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp114)->tag != 1) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp113 = tmp115 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp114)->tag != 2) { goto __ats_lab_36_0 ; } __ats_lab_35_1: arg0 = tmp115 ; arg1 = arg1 ; goto __ats_lab_auxlst_18 ; // tail call break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp114)->tag != 3) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp113 = auxlst2_19 (1, tmp115, arg1) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp114)->tag != 4) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp116 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp116 ; tmp113 = auxlst2_19 (1, tmp115, arg1) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp114)->tag != 5) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp117 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp117 ; tmp113 = auxlst2_19 (1, tmp115, arg1) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp114)->tag != 6) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp119 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 11018(line=580, offs=37) -- 11034(line=580, offs=53)", ATSstrcst("\n")) ; /* tmp118 = */ atspre_assert_errmsg (ats_false_bool, tmp119) ; tmp113 = tmp115 ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: tmp113 = tmp115 ; break ; } while (0) ; break ; } while (0) ; return (tmp113) ; } /* end of [auxlst_18] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 11148(line=588, offs=5) -- 12005(line=625, offs=4) */ ATSstaticdec() ats_ptr_type auxlst2_19 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_int_type, tmp123) ; ATSlocal (ats_int_type, tmp124) ; ATSlocal (ats_int_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; __ats_lab_auxlst2_19: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp120 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp122 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp121)->tag != 0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: arg0 = arg0 ; arg1 = tmp122 ; arg2 = arg2 ; goto __ats_lab_auxlst2_19 ; // tail call break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp121)->tag != 1) { goto __ats_lab_45_0 ; } __ats_lab_44_1: arg0 = arg0 ; arg1 = tmp122 ; arg2 = arg2 ; goto __ats_lab_auxlst2_19 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp121)->tag != 2) { goto __ats_lab_46_0 ; } __ats_lab_45_1: arg0 = arg0 ; arg1 = tmp122 ; arg2 = arg2 ; goto __ats_lab_auxlst2_19 ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp121)->tag != 3) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp123 = atspre_add_int_int (arg0, 1) ; arg0 = tmp123 ; arg1 = tmp122 ; arg2 = arg2 ; goto __ats_lab_auxlst2_19 ; // tail call break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp121)->tag != 4) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp124 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp124 ; tmp125 = atspre_add_int_int (arg0, 1) ; arg0 = tmp125 ; arg1 = tmp122 ; arg2 = arg2 ; goto __ats_lab_auxlst2_19 ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp121)->tag != 5) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp126 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp126 ; tmp127 = atspre_add_int_int (arg0, 1) ; arg0 = tmp127 ; arg1 = tmp122 ; arg2 = arg2 ; goto __ats_lab_auxlst2_19 ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp121)->tag != 6) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp128 = atspre_eq_int_int (arg0, 0) ; if (tmp128) { tmp120 = tmp122 ; } else { arg0 = arg0 ; arg1 = tmp122 ; arg2 = arg2 ; goto __ats_lab_auxlst2_19 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: __ats_lab_50_1: arg0 = arg0 ; arg1 = tmp122 ; arg2 = arg2 ; goto __ats_lab_auxlst2_19 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp120) ; } /* end of [auxlst2_19] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 10371(line=550, offs=19) -- 12053(line=629, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unskip (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unskip: tmp112 = auxlst_18 (arg0, arg1) ; return (tmp112) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unskip] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 12138(line=635, offs=3) -- 12505(line=655, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unrparen (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unrparen: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp129 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp130)->tag != 6) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp129 = tmp131 ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: __ats_lab_54_1: tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unskip (arg0, arg1) ; arg0 = tmp132 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unrparen ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp129) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unrparen] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 12953(line=682, offs=13) -- 13133(line=691, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_isbin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_bool_type, tmp135) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_isbin: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp133 = ats_true_bool ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con (tmp134) ; if (tmp135) { tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_binarian (tmp134) ; } else { tmp133 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: tmp133 = ats_false_bool ; break ; } while (0) ; return (tmp133) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_isbin] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 13204(line=697, offs=3) -- 13762(line=723, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_ismat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_int_type, tmp139) ; ATSlocal (ats_int_type, tmp140) ; ATSlocal (ats_bool_type, tmp141) ; ATSlocal (ats_bool_type, tmp142) ; ATSlocal (ats_char_type, tmp143) ; ATSlocal (ats_char_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_ismat: do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_61_0 ; } __ats_lab_58_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp137, tmp138) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: tmp136 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_64_0 ; } __ats_lab_61_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp136 = atspre_eq_int_int (tmp139, tmp140) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp136 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_67_0 ; } __ats_lab_64_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp142 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; tmp136 = atspre_eq_bool_bool (tmp141, tmp142) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: tmp136 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_70_0 ; } __ats_lab_67_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp136 = atspre_eq_char_char (tmp143, tmp144) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: __ats_lab_69_1: tmp136 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_73_0 ; } __ats_lab_70_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp136 = atspre_eq_string_string (tmp145, tmp146) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: __ats_lab_72_1: tmp136 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: tmp136 = ats_false_bool ; break ; } while (0) ; return (tmp136) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_ismat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 13858(line=733, offs=1) -- 14147(line=752, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp147) ; __ats_lab_auxlst_23: do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp147 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp147, atslab_0, arg1) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 13968(line=741, offs=1) -- 14140(line=750, offs=4)") ; } __ats_lab_75_1: do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp147 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: tmp147 = auxlst2_24 (arg0, arg1, arg2) ; break ; } while (0) ; break ; } while (0) ; return (tmp147) ; } /* end of [auxlst_23] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 14172(line=755, offs=1) -- 16909(line=871, offs=4) */ ATSstaticdec() ats_ptr_type auxlst2_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_int_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_int_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_int_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_int_type, tmp161) ; ATSlocal (ats_bool_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_bool_type, tmp167) ; // ATSlocal_void (tmp168) ; ATSlocal (ats_bool_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_bool_type, tmp172) ; // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; // ATSlocal_void (tmp176) ; __ats_lab_auxlst2_24: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp149 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp150 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp151 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp152 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp151)->tag != 0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: /* ats_int_type tmp153 ; */ tmp153 = 0 ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unskip (arg0, (&tmp153)) ; tmp148 = auxlst_23 (tmp154, tmp152, arg2) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp151)->tag != 1) { goto __ats_lab_80_0 ; } __ats_lab_79_1: /* ats_int_type tmp155 ; */ tmp155 = 0 ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unskip (arg0, (&tmp155)) ; tmp148 = auxlst_23 (tmp156, tmp152, arg2) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp151)->tag != 2) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp148 = auxlst_23 (arg0, tmp152, arg2) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp151)->tag != 6) { goto __ats_lab_82_0 ; } __ats_lab_81_1: /* ats_int_type tmp157 ; */ tmp157 = 0 ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_unrparen (arg0, (&tmp157)) ; tmp148 = auxlst_23 (tmp158, tmp152, arg2) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: __ats_lab_82_1: if (((ats_sum_ptr_type)tmp149)->tag != 0) { goto __ats_lab_83_1 ; } tmp148 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp148, atslab_0, arg1) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: __ats_lab_83_1: if (((ats_sum_ptr_type)tmp149)->tag != 1) { goto __ats_lab_84_1 ; } tmp148 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp148, atslab_0, arg1) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: __ats_lab_84_1: if (((ats_sum_ptr_type)tmp149)->tag != 2) { goto __ats_lab_85_1 ; } tmp148 = auxlst_23 (tmp150, arg1, arg2) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: __ats_lab_85_1: if (((ats_sum_ptr_type)tmp149)->tag != 6) { goto __ats_lab_86_0 ; } tmp148 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp148, atslab_0, arg1) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp151)->tag != 3) { goto __ats_lab_89_0 ; } __ats_lab_86_1: tmp159 = ats_caselptrlab_mac(anairiats_sum_2, tmp151, atslab_0) ; do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp149)->tag != 3) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_2, tmp149, atslab_0) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (tmp160, tmp159) ; tmp162 = atspre_ieq (tmp161, 0) ; if (tmp162) { tmp148 = auxlst_23 (tmp150, tmp152, arg2) ; } else { tmp148 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: tmp148 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp151)->tag != 4) { goto __ats_lab_93_0 ; } __ats_lab_89_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_7, tmp151, atslab_0) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_7, tmp151, atslab_1) ; do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp149)->tag != 7) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_3, tmp149, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_3, tmp149, atslab_1) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_ismat (tmp165, tmp163) ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmpmovlst_add (arg2, tmp166, tmp164) ; if (tmp167) { tmp148 = (ats_sum_ptr_type)0 ; } else { tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_isbin (tmp165) ; if (tmp169) { tmp148 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp148, atslab_0, tmp152) ; } else { tmp148 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp148, atslab_0, arg1) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp149)->tag != 4) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_7, tmp149, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_7, tmp149, atslab_1) ; tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patck_ismat (tmp170, tmp163) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmpmovlst_add (arg2, tmp171, tmp164) ; if (tmp172) { tmp148 = auxlst_23 (tmp150, tmp152, arg2) ; } else { tmp148 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: __ats_lab_92_1: tmp148 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp151)->tag != 5) { goto __ats_lab_96_0 ; } __ats_lab_93_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_3, tmp151, atslab_0) ; do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp149)->tag != 5) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_3, tmp149, atslab_0) ; /* tmp176 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmpmovlst_add (arg2, tmp175, tmp174) ; tmp148 = auxlst_23 (tmp150, tmp152, arg2) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: __ats_lab_95_1: tmp148 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: __ats_lab_96_1: tmp148 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp148) ; } /* end of [auxlst2_24] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 17099(line=888, offs=5) -- 17370(line=903, offs=2) */ ATSstaticdec() ats_void_type ftpmv_26 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; __ats_lab_ftpmv_26: do { /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_98_0 ; } __ats_lab_97_1: break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_98_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp180 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp180)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp180, atslab_0, tmp179) ; /* tmp178 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmpmovlst_add (arg1, tmp180, arg0) ; break ; } while (0) ; return /* (tmp178) */ ; } /* end of [ftpmv_26] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 16935(line=874, offs=1) -- 17762(line=918, offs=4) */ ATSstaticdec() ats_void_type auxmovfin_25 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp177) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; __ats_lab_auxmovfin_25: do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_100_0 ; } __ats_lab_99_1: break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_100_1: tmp181 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp181)->tag != 4) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp183 = ats_caselptrlab_mac(anairiats_sum_7, tmp181, atslab_1) ; /* tmp177 = */ ftpmv_26 (tmp183, arg1) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp181)->tag != 5) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp184 = ats_caselptrlab_mac(anairiats_sum_3, tmp181, atslab_0) ; /* tmp177 = */ ftpmv_26 (tmp184, arg1) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: __ats_lab_103_1: arg0 = tmp182 ; arg1 = arg1 ; goto __ats_lab_auxmovfin_25 ; // tail call break ; } while (0) ; break ; } while (0) ; return /* (tmp177) */ ; } /* end of [auxmovfin_25] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_29 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; __ats_lab_loop_29: do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp191 ; goto __ats_lab_loop_29 ; // tail call break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_106_1: break ; } while (0) ; return /* (tmp190) */ ; } /* end of [loop_29] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_anairiats_rec_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp189) ; __ats_lab_list_vt_free_01499_anairiats_rec_5: /* tmp189 = */ loop_29 (arg0) ; return /* (tmp189) */ ; } /* end of [list_vt_free_01499_anairiats_rec_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_32 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; __ats_lab_revapp_32: do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp198 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp199 = ats_ptrget_mac(ats_ptr_type, tmp198) ; ats_ptrget_mac(ats_ptr_type, tmp198) = arg1 ; tmp200 = arg0 ; arg0 = tmp199 ; arg1 = tmp200 ; goto __ats_lab_revapp_32 ; // tail call break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: tmp197 = arg1 ; break ; } while (0) ; return (tmp197) ; } /* end of [revapp_32] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_anairiats_rec_5 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp196) ; __ats_lab_list_vt_reverse_append_01507_anairiats_rec_5: tmp196 = revapp_32 (arg0, arg1) ; return (tmp196) ; } /* end of [list_vt_reverse_append_01507_anairiats_rec_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_anairiats_rec_5 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp201) ; __ats_lab_list_vt_reverse_01506_anairiats_rec_5: tmp201 = (ats_sum_ptr_type)0 ; tmp195 = list_vt_reverse_append_01507_anairiats_rec_5 (arg0, tmp201) ; return (tmp195) ; } /* end of [list_vt_reverse_01506_anairiats_rec_5] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 17841(line=924, offs=3) -- 18384(line=951, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtest (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp192) ; // ATSlocal_void (tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtest: /* ats_ptr_type tmp186 ; */ tmp186 = (ats_sum_ptr_type)0 ; tmp187 = auxlst_23 (arg0, arg1, (&tmp186)) ; do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (tmp187 != (ats_sum_ptr_type)0) { goto __ats_lab_107_0 ; } __ats_lab_104_1: /* tmp188 = */ list_vt_free_01499_anairiats_rec_5 (tmp186) ; tmp185 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: // if (tmp187 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_107_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_9, tmp187, atslab_0) ; ATS_FREE(tmp187) ; /* tmp193 = */ auxmovfin_25 (tmp192, (&tmp186)) ; tmp194 = list_vt_reverse_01506_anairiats_rec_5 (tmp186) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_tmplab (tmp192) ; if (tmp202 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 18268(line=946, offs=9) -- 18312(line=946, offs=53)") ; } tmp203 = ats_caselptrlab_mac(anairiats_sum_9, tmp202, atslab_0) ; ATS_FREE(tmp202) ; tmp185 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp185)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp185, atslab_0, tmp203) ; ats_selptrset_mac(anairiats_sum_3, tmp185, atslab_1, ats_castfn_mac(ats_ptr_type, tmp194)) ; break ; } while (0) ; return (tmp185) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtest] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 18493(line=959, offs=3) -- 18792(line=974, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtests (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtests: do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp204 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: tmp205 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp206 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtest (arg0, tmp205) ; do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp207)->tag != 0) { goto __ats_lab_113_0 ; } __ats_lab_112_1: arg0 = arg0 ; arg1 = tmp206 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtests ; // tail call break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: __ats_lab_113_1: tmp204 = tmp207 ; break ; } while (0) ; break ; } while (0) ; return (tmp204) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtests] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_37 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; __ats_lab_loop_37: do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp212 ; goto __ats_lab_loop_37 ; // tail call break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: break ; } while (0) ; return /* (tmp211) */ ; } /* end of [loop_37] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp210) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp210 = */ loop_37 (arg0) ; return /* (tmp210) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_40 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; __ats_lab_loop_40: do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp223 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp224 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp225 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp225, atslab_0, tmp223) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp225 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp226 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp224 ; arg1 = tmp226 ; goto __ats_lab_loop_40 ; // tail call break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_120_1: tmp227 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp227 ; break ; } while (0) ; return /* (tmp222) */ ; } /* end of [loop_40] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp228) ; // ATSlocal_void (tmp229) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp228 ; */ /* tmp229 = */ loop_40 (arg0, (&tmp228)) ; tmp221 = tmp228 ; return (tmp221) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4725(line=167, offs=18) -- 4776(line=168, offs=44) */ ATSstaticdec() ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp220) ; __ats_lab_list_vt_copy_01498_ats_ptr_type: tmp220 = list_copy_01322_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp220) ; } /* end of [list_vt_copy_01498_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_43 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; __ats_lab_revapp_43: do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp236 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp237 = ats_ptrget_mac(ats_ptr_type, tmp236) ; ats_ptrget_mac(ats_ptr_type, tmp236) = arg1 ; tmp238 = arg0 ; arg0 = tmp237 ; arg1 = tmp238 ; goto __ats_lab_revapp_43 ; // tail call break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_122_1: tmp235 = arg1 ; break ; } while (0) ; return (tmp235) ; } /* end of [revapp_43] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp234) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp234 = revapp_43 (arg0, arg1) ; return (tmp234) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp239) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp239 = (ats_sum_ptr_type)0 ; tmp233 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp239) ; return (tmp233) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 19122(line=995, offs=5) -- 20378(line=1038, offs=4) */ ATSstaticdec() ats_void_type auxlst_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp240) ; // ATSlocal_void (tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; // ATSlocal_void (tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; __ats_lab_auxlst_35: do { /* branch: __ats_lab_114 */ __ats_lab_114_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; } __ats_lab_114_1: /* tmp209 = */ list_vt_free_01499_ats_ptr_type (arg2) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_117_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp213)->tag != 4) { goto __ats_lab_123_0 ; } __ats_lab_118_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_7, tmp213, atslab_0) ; tmp217 = ats_caselptrlab_mac(anairiats_sum_7, tmp213, atslab_1) ; tmp218 = ats_caselptrlab_mac(anairiats_sum_7, tmp213, atslab_4) ; tmp219 = list_vt_copy_01498_ats_ptr_type (arg2) ; tmp231 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp231)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp231, atslab_0, tmp216) ; ats_selptrset_mac(anairiats_sum_3, tmp231, atslab_1, tmp217) ; tmp230 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp230, atslab_0, tmp231) ; ats_selptrset_mac(anairiats_sum_8, tmp230, atslab_1, tmp219) ; tmp232 = list_vt_reverse_01506_ats_ptr_type (tmp230) ; tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtests (ats_castfn_mac(ats_ptr_type, tmp232), arg1) ; /* tmp241 = */ list_vt_free_01499_ats_ptr_type (tmp232) ; ats_ptrget_mac(ats_ptr_type, tmp218) = tmp240 ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp213)->tag != 9) { goto __ats_lab_126_0 ; } __ats_lab_123_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_3, tmp213, atslab_1) ; tmp243 = list_vt_copy_01498_ats_ptr_type (arg2) ; tmp244 = list_vt_reverse_01506_ats_ptr_type (tmp243) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_subtests (ats_castfn_mac(ats_ptr_type, tmp244), arg1) ; /* tmp246 = */ list_vt_free_01499_ats_ptr_type (tmp244) ; do { /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp245)->tag != 0) { goto __ats_lab_125_0 ; } __ats_lab_124_1: break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: __ats_lab_125_1: ats_ptrget_mac(ats_ptr_type, tmp242) = tmp245 ; break ; } while (0) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: __ats_lab_126_1: break ; } while (0) ; tmp247 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp247, atslab_0, tmp213) ; ats_selptrset_mac(anairiats_sum_8, tmp247, atslab_1, arg2) ; arg0 = tmp214 ; arg1 = arg1 ; arg2 = tmp247 ; goto __ats_lab_auxlst_35 ; // tail call break ; } while (0) ; return /* (tmp209) */ ; } /* end of [auxlst_35] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 18993(line=987, offs=3) -- 20443(line=1042, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_rest (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp208) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_rest: tmp248 = (ats_sum_ptr_type)0 ; /* tmp208 = */ auxlst_35 (arg0, arg1, tmp248) ; return /* (tmp208) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_rest] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 20643(line=1055, offs=3) -- 21074(line=1074, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_fail (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_fail: do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: tmp250 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp251 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp250)->tag != 4) { goto __ats_lab_132_0 ; } __ats_lab_129_1: tmp253 = ats_caselptrlab_mac(anairiats_sum_7, tmp250, atslab_4) ; tmp254 = ats_ptrget_mac(ats_ptr_type, tmp253) ; do { /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp254)->tag != 0) { goto __ats_lab_131_0 ; } __ats_lab_130_1: ats_ptrget_mac(ats_ptr_type, tmp253) = arg1 ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: __ats_lab_131_1: break ; } while (0) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: __ats_lab_132_1: break ; } while (0) ; arg0 = tmp251 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_fail ; // tail call break ; } while (0) ; return /* (tmp249) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_fail] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 21274(line=1087, offs=3) -- 21533(line=1099, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplstlst_jumpfill (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplstlst_jumpfill: do { /* branch: __ats_lab_133 */ __ats_lab_133_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_134_0 ; } __ats_lab_133_1: break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_134_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp257 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; /* tmp258 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_rest (tmp256, tmp257) ; /* tmp259 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_jumpfill_fail (tmp256, arg1) ; arg0 = tmp257 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplstlst_jumpfill ; // tail call break ; } while (0) ; return /* (tmp255) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplstlst_jumpfill] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 21788(line=1118, offs=1) -- 21968(line=1127, offs=4) */ ATSstaticdec() ats_ptr_type auxtpmv_make_46 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; __ats_lab_auxtpmv_make_46: tmp261 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_hipat_loc) ; tmp262 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_hipat_type) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp261, tmp262) ; tmp260 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp260)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp260, atslab_0, tmp263) ; ats_selptrset_mac(anairiats_sum_3, tmp260, atslab_1, arg1) ; return (tmp260) ; } /* end of [auxtpmv_make_46] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 22020(line=1132, offs=1) -- 22098(line=1135, offs=48) */ ATSstaticdec() ats_ptr_type addrparen_47 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; __ats_lab_addrparen_47: tmp265 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKrparen_2) ; tmp264 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp264, atslab_0, tmp265) ; ats_selptrset_mac(anairiats_sum_8, tmp264, atslab_1, arg0) ; return (tmp264) ; } /* end of [addrparen_47] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 22125(line=1140, offs=1) -- 22695(line=1164, offs=4) */ ATSstaticdec() ats_ptr_type addselcon_48 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; __ats_lab_addselcon_48: do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp266 = arg3 ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_0) ; tmp268 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_1) ; // tmp269 = ats_caselptrlab_mac(anairiats_sum_8, tmp267, atslab_0) ; tmp270 = ats_caselptrlab_mac(anairiats_sum_8, tmp267, atslab_1) ; tmp271 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp270), atslab_hipat_loc) ; tmp272 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp270), atslab_hipat_type) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv (arg0) ; tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon (tmp271, tmp272, tmp273, arg1, tmp269) ; tmp275 = auxtpmv_make_46 (tmp270, tmp274) ; tmp276 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp276)->tag = 1 ; ats_selptrset_mac(anairiats_sum_14, tmp276, atslab_0, tmp269) ; ats_selptrset_mac(anairiats_sum_14, tmp276, atslab_1, tmp270) ; ats_selptrset_mac(anairiats_sum_14, tmp276, atslab_2, tmp275) ; tmp277 = addselcon_48 (arg0, arg1, tmp268, arg3) ; tmp266 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp266, atslab_0, tmp276) ; ats_selptrset_mac(anairiats_sum_8, tmp266, atslab_1, tmp277) ; break ; } while (0) ; return (tmp266) ; } /* end of [addselcon_48] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 22723(line=1167, offs=1) -- 23331(line=1192, offs=4) */ ATSstaticdec() ats_ptr_type addselect_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; __ats_lab_addselect_49: do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp278 = arg3 ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: tmp279 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_0) ; tmp280 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_1) ; // tmp281 = ats_caselptrlab_mac(anairiats_sum_8, tmp279, atslab_0) ; tmp282 = ats_caselptrlab_mac(anairiats_sum_8, tmp279, atslab_1) ; tmp283 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp282), atslab_hipat_loc) ; tmp284 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp282), atslab_hipat_type) ; tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab (tmp283, tmp281) ; tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv (arg0) ; tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select (tmp283, tmp284, tmp286, arg1, tmp285) ; tmp288 = auxtpmv_make_46 (tmp282, tmp287) ; tmp289 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp289)->tag = 1 ; ats_selptrset_mac(anairiats_sum_14, tmp289, atslab_0, tmp281) ; ats_selptrset_mac(anairiats_sum_14, tmp289, atslab_1, tmp282) ; ats_selptrset_mac(anairiats_sum_14, tmp289, atslab_2, tmp288) ; tmp290 = addselect_49 (arg0, arg1, tmp280, arg3) ; tmp278 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp278, atslab_0, tmp289) ; ats_selptrset_mac(anairiats_sum_8, tmp278, atslab_1, tmp290) ; break ; } while (0) ; return (tmp278) ; } /* end of [addselect_49] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 23380(line=1197, offs=1) -- 23591(line=1209, offs=4) */ ATSstaticdec() ats_ptr_type auxcomplst_50 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; __ats_lab_auxcomplst_50: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp291 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp292 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp293 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp291 = auxcomplst_mtk_51 (arg0, tmp292, tmp293) ; break ; } while (0) ; return (tmp291) ; } /* end of [auxcomplst_50] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 23620(line=1212, offs=1) -- 24049(line=1237, offs=4) */ ATSstaticdec() ats_ptr_type auxcomplst_mtk_51 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; __ats_lab_auxcomplst_mtk_51: do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp295 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp296 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp294 = auxcomplst_pat_52 (arg0, tmp296, tmp295, arg2) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp297 = ats_caselptrlab_mac(anairiats_sum_14, arg1, atslab_0) ; tmp298 = ats_caselptrlab_mac(anairiats_sum_14, arg1, atslab_1) ; tmp299 = ats_caselptrlab_mac(anairiats_sum_14, arg1, atslab_2) ; tmp294 = auxcomplst_labpat_53 (arg0, tmp299, tmp297, tmp298, arg2) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_143_1: tmp300 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp301 = auxcomplst_50 (arg0, arg2) ; tmp294 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp294, atslab_0, tmp300) ; ats_selptrset_mac(anairiats_sum_8, tmp294, atslab_1, tmp301) ; break ; } while (0) ; return (tmp294) ; } /* end of [auxcomplst_mtk_51] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02466_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp420) ; // ATSlocal_void (tmp421) ; // ATSlocal_void (tmp422) ; // ATSlocal_void (tmp423) ; __ats_lab_prerr_interror_loc_02466_: /* tmp421 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp422 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp423 = */ prerr_FILENAME_02464_ () ; /* tmp420 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp420) */ ; } /* end of [prerr_interror_loc_02466_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 24082(line=1240, offs=1) -- 29295(line=1453, offs=4) */ ATSstaticdec() ats_ptr_type auxcomplst_pat_52 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; // ATSlocal_void (tmp309) ; ATSlocal (ats_int_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_bool_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_int_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_llint_type, tmp326) ; ATSlocal (ats_int_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_bool_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_char_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_double_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_int_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; // ATSlocal_void (tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; // ATSlocal_void (tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; // ATSlocal_void (tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp424) ; // ATSlocal_void (tmp425) ; // ATSlocal_void (tmp426) ; // ATSlocal_void (tmp427) ; // ATSlocal_void (tmp428) ; // ATSlocal_void (tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; __ats_lab_auxcomplst_pat_52: tmp303 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg2), atslab_hipat_loc) ; tmp304 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg2), atslab_hipat_node) ; do { /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp304)->tag != 0) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp305 = ats_caselptrlab_mac(anairiats_sum_2, tmp304, atslab_0) ; tmp306 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp306)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp306, atslab_0, tmp305) ; tmp307 = auxcomplst_50 (arg0, arg3) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp306) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp307) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp304)->tag != 1) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_2, tmp304, atslab_0) ; /* tmp309 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp308, arg0) ; tmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (tmp308) ; tmp312 = atspre_gt_int_int (tmp310, 0) ; if (tmp312) { tmp311 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp311)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp311, atslab_0, tmp308) ; ats_selptrset_mac(anairiats_sum_3, tmp311, atslab_1, arg1) ; } else { tmp311 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp311)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp311, atslab_0, tmp308) ; } /* end of [if] */ tmp313 = auxcomplst_50 (arg0, arg3) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp311) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp313) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp304)->tag != 2) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_10, tmp304, atslab_0) ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp316 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () ; tmp318 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp318)->tag = 1 ; ats_selptrset_mac(anairiats_sum_10, tmp318, atslab_0, tmp314) ; tmp319 = (ats_sum_ptr_type)0 ; tmp317 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp317)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp317, atslab_0, tmp318) ; ats_selptrset_mac(anairiats_sum_7, tmp317, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp317, atslab_2, tmp315) ; ats_selptrset_mac(anairiats_sum_7, tmp317, atslab_3, tmp319) ; ats_selptrset_mac(anairiats_sum_7, tmp317, atslab_4, tmp316) ; tmp320 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp321 = auxcomplst_50 (arg0, arg3) ; tmp322 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp322, atslab_0, tmp320) ; ats_selptrset_mac(anairiats_sum_8, tmp322, atslab_1, tmp321) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp317) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp322) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp304)->tag != 3) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp323 = ats_caselptrlab_mac(anairiats_sum_2, tmp304, atslab_0) ; tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string (tmp323) ; tmp327 = atspre_int_of_llint (tmp326) ; tmp329 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp329)->tag = 1 ; ats_selptrset_mac(anairiats_sum_10, tmp329, atslab_0, tmp327) ; tmp330 = (ats_sum_ptr_type)0 ; tmp328 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp328)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp328, atslab_0, tmp329) ; ats_selptrset_mac(anairiats_sum_7, tmp328, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp328, atslab_2, tmp324) ; ats_selptrset_mac(anairiats_sum_7, tmp328, atslab_3, tmp330) ; ats_selptrset_mac(anairiats_sum_7, tmp328, atslab_4, tmp325) ; tmp331 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp332 = auxcomplst_50 (arg0, arg3) ; tmp333 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp333, atslab_0, tmp331) ; ats_selptrset_mac(anairiats_sum_8, tmp333, atslab_1, tmp332) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp328) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp333) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp304)->tag != 4) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp334 = ats_caselptrlab_mac(anairiats_sum_11, tmp304, atslab_0) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () ; tmp338 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp338)->tag = 2 ; ats_selptrset_mac(anairiats_sum_11, tmp338, atslab_0, tmp334) ; tmp339 = (ats_sum_ptr_type)0 ; tmp337 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp337)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp337, atslab_0, tmp338) ; ats_selptrset_mac(anairiats_sum_7, tmp337, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp337, atslab_2, tmp335) ; ats_selptrset_mac(anairiats_sum_7, tmp337, atslab_3, tmp339) ; ats_selptrset_mac(anairiats_sum_7, tmp337, atslab_4, tmp336) ; tmp340 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp341 = auxcomplst_50 (arg0, arg3) ; tmp342 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp342, atslab_0, tmp340) ; ats_selptrset_mac(anairiats_sum_8, tmp342, atslab_1, tmp341) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp337) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp342) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)tmp304)->tag != 5) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp343 = ats_caselptrlab_mac(anairiats_sum_12, tmp304, atslab_0) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () ; tmp347 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp347)->tag = 3 ; ats_selptrset_mac(anairiats_sum_12, tmp347, atslab_0, tmp343) ; tmp348 = (ats_sum_ptr_type)0 ; tmp346 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp346)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp346, atslab_0, tmp347) ; ats_selptrset_mac(anairiats_sum_7, tmp346, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp346, atslab_2, tmp344) ; ats_selptrset_mac(anairiats_sum_7, tmp346, atslab_3, tmp348) ; ats_selptrset_mac(anairiats_sum_7, tmp346, atslab_4, tmp345) ; tmp349 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp350 = auxcomplst_50 (arg0, arg3) ; tmp351 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp351, atslab_0, tmp349) ; ats_selptrset_mac(anairiats_sum_8, tmp351, atslab_1, tmp350) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp346) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp351) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp304)->tag != 6) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp352 = ats_caselptrlab_mac(anairiats_sum_2, tmp304, atslab_0) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () ; tmp356 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp356)->tag = 5 ; ats_selptrset_mac(anairiats_sum_2, tmp356, atslab_0, tmp352) ; tmp357 = (ats_sum_ptr_type)0 ; tmp355 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp355)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp355, atslab_0, tmp356) ; ats_selptrset_mac(anairiats_sum_7, tmp355, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp355, atslab_2, tmp353) ; ats_selptrset_mac(anairiats_sum_7, tmp355, atslab_3, tmp357) ; ats_selptrset_mac(anairiats_sum_7, tmp355, atslab_4, tmp354) ; tmp358 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp359 = auxcomplst_50 (arg0, arg3) ; tmp360 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp360, atslab_0, tmp358) ; ats_selptrset_mac(anairiats_sum_8, tmp360, atslab_1, tmp359) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp355) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp360) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)tmp304)->tag != 7) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp361 = ats_caselptrlab_mac(anairiats_sum_2, tmp304, atslab_0) ; tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp363 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () ; tmp364 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__double_make_string (tmp361) ; tmp366 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp366)->tag = 4 ; ats_selptrset_mac(anairiats_sum_15, tmp366, atslab_0, tmp364) ; tmp367 = (ats_sum_ptr_type)0 ; tmp365 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp365)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp365, atslab_0, tmp366) ; ats_selptrset_mac(anairiats_sum_7, tmp365, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp365, atslab_2, tmp362) ; ats_selptrset_mac(anairiats_sum_7, tmp365, atslab_3, tmp367) ; ats_selptrset_mac(anairiats_sum_7, tmp365, atslab_4, tmp363) ; tmp368 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp369 = auxcomplst_50 (arg0, arg3) ; tmp370 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp370, atslab_0, tmp368) ; ats_selptrset_mac(anairiats_sum_8, tmp370, atslab_1, tmp369) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp365) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp370) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)tmp304)->tag != 8) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp371 = ats_caselptrlab_mac(anairiats_sum_2, tmp304, atslab_0) ; tmp372 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__i0nt2intinf (tmp371) ; tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int (tmp374) ; tmp377 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp377)->tag = 1 ; ats_selptrset_mac(anairiats_sum_10, tmp377, atslab_0, tmp375) ; tmp378 = (ats_sum_ptr_type)0 ; tmp376 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp376)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp376, atslab_0, tmp377) ; ats_selptrset_mac(anairiats_sum_7, tmp376, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp376, atslab_2, tmp372) ; ats_selptrset_mac(anairiats_sum_7, tmp376, atslab_3, tmp378) ; ats_selptrset_mac(anairiats_sum_7, tmp376, atslab_4, tmp373) ; tmp379 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp380 = auxcomplst_50 (arg0, arg3) ; tmp381 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp381, atslab_0, tmp379) ; ats_selptrset_mac(anairiats_sum_8, tmp381, atslab_1, tmp380) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp376) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp381) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp304)->tag != 10) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp302 = auxcomplst_50 (arg0, arg3) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)tmp304)->tag != 11) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_16, tmp304, atslab_0) ; tmp383 = ats_caselptrlab_mac(anairiats_sum_16, tmp304, atslab_1) ; tmp384 = ats_caselptrlab_mac(anairiats_sum_16, tmp304, atslab_2) ; tmp385 = ats_caselptrlab_mac(anairiats_sum_16, tmp304, atslab_3) ; /* tmp386 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_add (tmp383) ; tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () ; tmp390 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp390)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp390, atslab_0, tmp383) ; tmp391 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp391, atslab_0, tmp382) ; tmp389 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp389)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp389, atslab_0, tmp390) ; ats_selptrset_mac(anairiats_sum_7, tmp389, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp389, atslab_2, tmp387) ; ats_selptrset_mac(anairiats_sum_7, tmp389, atslab_3, tmp391) ; ats_selptrset_mac(anairiats_sum_7, tmp389, atslab_4, tmp388) ; tmp392 = addrparen_47 (arg3) ; tmp393 = addselcon_48 (arg1, tmp384, tmp385, tmp392) ; tmp394 = auxcomplst_50 (arg0, tmp393) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp389) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp394) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)tmp304)->tag != 12) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp395 = ats_caselptrlab_mac(anairiats_sum_3, tmp304, atslab_0) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_3, tmp304, atslab_1) ; /* tmp397 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_add (tmp396) ; tmp398 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make () ; tmp401 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp401)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp401, atslab_0, tmp396) ; tmp402 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp402, atslab_0, tmp395) ; tmp400 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp400)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp400, atslab_0, tmp401) ; ats_selptrset_mac(anairiats_sum_7, tmp400, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp400, atslab_2, tmp398) ; ats_selptrset_mac(anairiats_sum_7, tmp400, atslab_3, tmp402) ; ats_selptrset_mac(anairiats_sum_7, tmp400, atslab_4, tmp399) ; tmp403 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp404 = auxcomplst_50 (arg0, arg3) ; tmp405 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp405, atslab_0, tmp403) ; ats_selptrset_mac(anairiats_sum_8, tmp405, atslab_1, tmp404) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp400) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp405) ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)tmp304)->tag != 13) { goto __ats_lab_157_0 ; } __ats_lab_156_1: tmp406 = ats_caselptrlab_mac(anairiats_sum_17, tmp304, atslab_2) ; tmp407 = ats_caselptrlab_mac(anairiats_sum_17, tmp304, atslab_3) ; tmp408 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp303) ; tmp409 = addrparen_47 (arg3) ; tmp410 = addselect_49 (arg1, tmp407, tmp406, tmp409) ; tmp411 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp411)->tag = 5 ; ats_selptrset_mac(anairiats_sum_3, tmp411, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp411, atslab_1, tmp408) ; tmp412 = auxcomplst_50 (arg0, tmp410) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp411) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp412) ; break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)tmp304)->tag != 14) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp413 = ats_caselptrlab_mac(anairiats_sum_3, tmp304, atslab_0) ; tmp414 = ats_caselptrlab_mac(anairiats_sum_3, tmp304, atslab_1) ; /* tmp415 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp413, arg0) ; tmp416 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp416)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp416, atslab_0, tmp413) ; ats_selptrset_mac(anairiats_sum_3, tmp416, atslab_1, arg1) ; tmp417 = auxcomplst_pat_52 (arg0, arg1, tmp414, arg3) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_0, tmp416) ; ats_selptrset_mac(anairiats_sum_8, tmp302, atslab_1, tmp417) ; break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)tmp304)->tag != 15) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp418 = ats_caselptrlab_mac(anairiats_sum_3, tmp304, atslab_0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp418 ; arg3 = arg3 ; goto __ats_lab_auxcomplst_pat_52 ; // tail call break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: __ats_lab_159_1: /* tmp419 = */ prerr_interror_loc_02466_ (tmp303) ; /* tmp424 = */ atspre_prerr_string (ATSstrcst(": himatchlst_patcomp")) ; /* tmp425 = */ atspre_prerr_newline () ; /* tmp426 = */ atspre_print_string (ATSstrcst(": auxcomplst_pat: hip0 = ")) ; /* tmp427 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat (arg2) ; /* tmp428 = */ atspre_print_newline () ; tmp430 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 29217(line=1450, offs=14) -- 29232(line=1450, offs=29)", ATSstrcst("\n")) ; /* tmp429 = */ atspre_assert_errmsg (ats_false_bool, tmp430) ; tmp302 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp302) ; } /* end of [auxcomplst_pat_52] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 29328(line=1456, offs=1) -- 29634(line=1468, offs=4) */ ATSstaticdec() ats_ptr_type auxcomplst_labpat_53 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; __ats_lab_auxcomplst_labpat_53: tmp432 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp432)->tag = 3 ; ats_selptrset_mac(anairiats_sum_2, tmp432, atslab_0, arg2) ; tmp433 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6) ; tmp434 = auxcomplst_pat_52 (arg0, arg1, arg3, arg4) ; tmp435 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp435, atslab_0, tmp433) ; ats_selptrset_mac(anairiats_sum_8, tmp435, atslab_1, tmp434) ; tmp431 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp431, atslab_0, tmp432) ; ats_selptrset_mac(anairiats_sum_8, tmp431, atslab_1, tmp435) ; return (tmp431) ; } /* end of [auxcomplst_labpat_53] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 29759(line=1476, offs=5) -- 29999(line=1490, offs=4) */ ATSstaticdec() ats_ptr_type auxloc_56 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; __ats_lab_auxloc_56: do { /* branch: __ats_lab_160 */ __ats_lab_160_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp438 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp439 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; arg0 = tmp438 ; arg1 = tmp439 ; goto __ats_lab_auxloc_56 ; // tail call break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_161_1: tmp440 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_hipat_loc) ; tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (tmp440) ; break ; } while (0) ; return (tmp437) ; } /* end of [auxloc_56] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 30026(line=1492, offs=5) -- 30411(line=1512, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_57 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; __ats_lab_auxlst_57: do { /* branch: __ats_lab_162 */ __ats_lab_162_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp441 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_163_1: tmp442 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp443 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp444 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp444)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp444, atslab_0, tmp442) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 30247(line=1505, offs=9) -- 30275(line=1505, offs=37)") ; } tmp445 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp446 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp447 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp447)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp447, atslab_0, tmp445) ; ats_selptrset_mac(anairiats_sum_3, tmp447, atslab_1, tmp444) ; tmp448 = auxlst_57 (tmp443, tmp446) ; tmp441 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp441, atslab_0, tmp447) ; ats_selptrset_mac(anairiats_sum_8, tmp441, atslab_1, tmp448) ; break ; } while (0) ; return (tmp441) ; } /* end of [auxlst_57] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4) */ ATSstaticdec() ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp459) ; __ats_lab_list_is_nil_01294_: do { /* branch: __ats_lab_166 */ __ats_lab_166_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp459 = ats_false_bool ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_167_1: tmp459 = ats_true_bool ; break ; } while (0) ; return (tmp459) ; } /* end of [list_is_nil_01294_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6210(line=231, offs=5) -- 6424(line=236, offs=4) */ ATSstaticdec() ats_void_type loop_60 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; __ats_lab_loop_60: do { /* branch: __ats_lab_168 */ __ats_lab_168_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_169_0 ; } __ats_lab_168_1: tmp467 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp467 ; arg1 = arg1 ; goto __ats_lab_loop_60 ; // tail call break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_169_1: tmp469 = (ats_sum_ptr_type)0 ; tmp468 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp468, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp468, atslab_1, tmp469) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp468 ; break ; } while (0) ; return /* (tmp466) */ ; } /* end of [loop_60] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6138(line=227, offs=16) -- 6489(line=242, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_extend_01503_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp470) ; // ATSlocal_void (tmp471) ; __ats_lab_list_vt_extend_01503_ats_ptr_type: /* ats_ptr_type tmp470 ; */ tmp470 = arg0 ; /* tmp471 = */ loop_60 ((&tmp470), arg1) ; tmp465 = tmp470 ; return (tmp465) ; } /* end of [list_vt_extend_01503_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 29721(line=1474, offs=3) -- 31224(line=1546, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__himatchlst_patcomp (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_bool_type, tmp458) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__himatchlst_patcomp: do { /* branch: __ats_lab_164 */ __ats_lab_164_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp436 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_165_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_0) ; tmp450 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_1) ; tmp451 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp451)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp451, atslab_0, tmp449) ; if (arg3 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 30595(line=1525, offs=9) -- 30622(line=1525, offs=36)") ; } tmp452 = ats_caselptrlab_mac(anairiats_sum_8, arg3, atslab_0) ; tmp453 = ats_caselptrlab_mac(anairiats_sum_8, arg3, atslab_1) ; tmp454 = auxloc_56 (tmp452, tmp453) ; tmp455 = auxlst_57 (tmp450, tmp453) ; tmp456 = auxcomplst_pat_52 (arg0, tmp451, tmp452, tmp455) ; tmp457 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp454) ; tmp460 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_hiclau_gua) ; tmp458 = list_is_nil_01294_ (tmp460) ; if (tmp458) { tmp461 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp461)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp461, atslab_0, tmp457) ; } else { tmp462 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_hiclau_loc) ; tmp463 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patckontref_make_loc (tmp462) ; tmp461 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp461)->tag = 9 ; ats_selptrset_mac(anairiats_sum_3, tmp461, atslab_0, tmp457) ; ats_selptrset_mac(anairiats_sum_3, tmp461, atslab_1, tmp463) ; } /* end of [if] */ tmp464 = list_vt_extend_01503_ats_ptr_type (tmp456, tmp461) ; tmp436 = ats_castfn_mac(ats_ptr_type, tmp464) ; break ; } while (0) ; return (tmp436) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__himatchlst_patcomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 31431(line=1562, offs=3) -- 31712(line=1575, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclau_patcomp (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclau_patcomp: tmp473 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_hiclau_pat) ; tmp472 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__himatchlst_patcomp (arg0, arg1, arg2, tmp473) ; return (tmp472) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclau_patcomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 31902(line=1588, offs=3) -- 32211(line=1603, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclaulst_patcomp (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclaulst_patcomp: do { /* branch: __ats_lab_170 */ __ats_lab_170_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp474 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_171_1: tmp475 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp476 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclau_patcomp (arg0, tmp475, arg2) ; tmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclaulst_patcomp (arg0, tmp476, arg2) ; tmp474 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp474, atslab_0, tmp477) ; ats_selptrset_mac(anairiats_sum_8, tmp474, atslab_1, tmp478) ; break ; } while (0) ; return (tmp474) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclaulst_patcomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 32402(line=1618, offs=1) -- 32689(line=1634, offs=4) */ ATSstaticdec() ats_ptr_type addtpmv_63 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; __ats_lab_addtpmv_63: do { /* branch: __ats_lab_172 */ __ats_lab_172_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_173_0 ; } __ats_lab_172_1: tmp479 = arg0 ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_173_1: tmp480 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp481 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc (tmp480) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (tmp482, tmp480, tmp481) ; tmp479 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp479, atslab_0, tmp483) ; ats_selptrset_mac(anairiats_sum_8, tmp479, atslab_1, arg0) ; break ; } while (0) ; return (tmp479) ; } /* end of [addtpmv_63] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 32718(line=1637, offs=1) -- 32884(line=1643, offs=4) */ ATSstaticdec() ats_ptr_type addtlab_64 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; __ats_lab_addtlab_64: tmp485 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_loc (arg1) ; tmp486 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmplab (tmp485, arg1) ; tmp484 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp484, atslab_0, tmp486) ; ats_selptrset_mac(anairiats_sum_8, tmp484, atslab_1, arg0) ; return (tmp484) ; } /* end of [addtlab_64] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 32931(line=1648, offs=1) -- 33240(line=1664, offs=4) */ ATSstaticdec() ats_void_type addfreecon_65 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; __ats_lab_addfreecon_65: do { /* branch: __ats_lab_174 */ __ats_lab_174_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_177_0 ; } __ats_lab_174_1: tmp488 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; do { /* branch: __ats_lab_175 */ __ats_lab_175_0: if (((ats_sum_ptr_type)arg3)->tag != 0) { goto __ats_lab_176_0 ; } __ats_lab_175_1: tmp489 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_0) ; /* tmp487 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if (arg0, arg1, tmp488, tmp489) ; break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: __ats_lab_176_1: break ; } while (0) ; break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_177_1: break ; } while (0) ; return /* (tmp487) */ ; } /* end of [addfreecon_65] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 33290(line=1669, offs=1) -- 33692(line=1693, offs=4) */ ATSstaticdec() ats_ptr_type fptcmplst_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; __ats_lab_fptcmplst_66: do { /* branch: __ats_lab_178 */ __ats_lab_178_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_179_0 ; } __ats_lab_178_1: tmp491 = list_vt_reverse_01506_ats_ptr_type (arg3) ; tmp490 = list_vt_reverse_append_01507_ats_ptr_type (arg2, tmp491) ; break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_179_1: tmp492 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp493 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp490 = fptcmplst2_67 (arg0, tmp492, tmp493, arg2, arg3) ; break ; } while (0) ; return (tmp490) ; } /* end of [fptcmplst_66] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 33723(line=1696, offs=1) -- 35509(line=1772, offs=4) */ ATSstaticdec() ats_ptr_type fptcmplst2_67 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; // ATSlocal_void (tmp498) ; ATSlocal (ats_bool_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; // ATSlocal_void (tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; // ATSlocal_void (tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; __ats_lab_fptcmplst2_67: do { /* branch: __ats_lab_180 */ __ats_lab_180_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_181_0 ; } __ats_lab_180_1: tmp494 = fptcmplst_66 (arg0, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_182_0 ; } __ats_lab_181_1: tmp495 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp496 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv2 (tmp496, tmp495) ; /* tmp498 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp495, tmp497) ; tmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp495) ; if (tmp499) { tmp500 = arg4 ; } else { tmp500 = addtpmv_63 (arg4, tmp496) ; } /* end of [if] */ tmp494 = fptcmplst_66 (arg0, arg2, arg3, tmp500) ; break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_183_0 ; } __ats_lab_182_1: tmp501 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp502 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp503 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv2 (tmp502, tmp501) ; /* tmp504 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp501, tmp503) ; tmp494 = fptcmplst_66 (arg0, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_184_0 ; } __ats_lab_183_1: tmp505 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp506 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ; tmp507 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_2) ; tmp508 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_3) ; tmp509 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_4) ; tmp510 = addtpmv_63 (arg3, tmp506) ; tmp511 = addtlab_64 (tmp510, tmp507) ; tmp512 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__tmprimval2pmv (tmp506) ; /* tmp513 = */ addfreecon_65 (arg0, tmp512, tmp508, tmp505) ; tmp515 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp512), atslab_primval_loc) ; tmp516 = ats_ptrget_mac(ats_ptr_type, tmp509) ; tmp514 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp515, tmp512, tmp505, tmp516) ; tmp517 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp517, atslab_0, tmp514) ; ats_selptrset_mac(anairiats_sum_8, tmp517, atslab_1, tmp511) ; tmp494 = fptcmplst_66 (arg0, arg2, tmp517, arg4) ; break ; /* branch: __ats_lab_184 */ __ats_lab_184_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_185_0 ; } __ats_lab_184_1: tmp518 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp519 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp520 = addtpmv_63 (arg3, tmp518) ; tmp521 = addtlab_64 (tmp520, tmp519) ; tmp494 = fptcmplst_66 (arg0, arg2, tmp521, arg4) ; break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_186_0 ; } __ats_lab_185_1: tmp522 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp523 = addtlab_64 (arg3, tmp522) ; tmp494 = fptcmplst_66 (arg0, arg2, tmp523, arg4) ; break ; /* branch: __ats_lab_186 */ __ats_lab_186_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_187_0 ; } __ats_lab_186_1: tmp524 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp525 = addtlab_64 (arg3, tmp524) ; tmp494 = fptcmplst_66 (arg0, arg2, tmp525, arg4) ; break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: __ats_lab_187_1: tmp494 = fptcmplst_66 (arg0, arg2, arg3, arg4) ; break ; } while (0) ; return (tmp494) ; } /* end of [fptcmplst2_67] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 35590(line=1778, offs=3) -- 35715(line=1787, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_ccomp: tmp527 = (ats_sum_ptr_type)0 ; tmp528 = (ats_sum_ptr_type)0 ; tmp526 = fptcmplst_66 (arg0, arg1, tmp527, tmp528) ; return (tmp526) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 36120(line=1813, offs=1) -- 36572(line=1840, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmat_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; // ATSlocal_void (tmp537) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmat_ccomp: tmp530 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg3), atslab_higmat_exp) ; tmp532 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg3), atslab_higmat_pat) ; do { /* branch: __ats_lab_188 */ __ats_lab_188_0: if (tmp532 == (ats_sum_ptr_type)0) { goto __ats_lab_189_0 ; } __ats_lab_188_1: tmp533 = ats_caselptrlab_mac(anairiats_sum_9, tmp532, atslab_0) ; tmp531 = tmp533 ; break ; /* branch: __ats_lab_189 */ __ats_lab_189_0: // if (tmp532 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_189_1: tmp534 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype () ; tmp535 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, tmp530), atslab_hidexp_loc) ; tmp531 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_bool (tmp535, tmp534, ats_true_bool) ; break ; } while (0) ; tmp536 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp530) ; /* tmp537 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (arg0, arg1, arg4, tmp531, tmp536) ; /* tmp529 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (arg0, arg1, arg2, tmp531, tmp536) ; return /* (tmp529) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmat_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 36627(line=1844, offs=3) -- 36950(line=1862, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmatlst_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; // ATSlocal_void (tmp541) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmatlst_ccomp: do { /* branch: __ats_lab_190 */ __ats_lab_190_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_191_0 ; } __ats_lab_190_1: break ; /* branch: __ats_lab_191 */ __ats_lab_191_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_191_1: tmp539 = ats_caselptrlab_mac(anairiats_sum_8, arg3, atslab_0) ; tmp540 = ats_caselptrlab_mac(anairiats_sum_8, arg3, atslab_1) ; /* tmp541 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmat_ccomp (arg0, arg1, arg2, tmp539, arg4) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp540 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmatlst_ccomp ; // tail call break ; } while (0) ; return /* (tmp538) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmatlst_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 37012(line=1868, offs=5) -- 38159(line=1928, offs=4) */ ATSstaticdec() ats_ptr_type auxcl_71 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; // ATSlocal_void (tmp544) ; // ATSlocal_void (tmp545) ; // ATSlocal_void (tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; // ATSlocal_void (tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; // ATSlocal_void (tmp550) ; // ATSlocal_void (tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; // ATSlocal_void (tmp555) ; // ATSlocal_void (tmp556) ; // ATSlocal_void (tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; // ATSlocal_void (tmp559) ; ATSlocal (ats_ptr_type, tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; __ats_lab_auxcl_71: tmp543 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; /* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp545 = ats_selsin_mac(tmp544, atslab_1) */ ; /* tmp546 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_freeconenv (arg0) ; tmp547 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_ccomp (arg0, arg3) ; /* tmp548 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst_vt (tmp543, tmp547) ; tmp549 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg2), atslab_hiclau_gua) ; do { /* branch: __ats_lab_192 */ __ats_lab_192_0: if (tmp549 != (ats_sum_ptr_type)0) { goto __ats_lab_193_0 ; } __ats_lab_192_1: break ; /* branch: __ats_lab_193 */ __ats_lab_193_0: // if (tmp549 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_193_1: /* tmp551 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_comment (tmp543, ATSstrcst("ibranch-guard:")) ; tmp552 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplst_find_guafail (arg3) ; /* tmp550 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__higmatlst_ccomp (arg0, tmp543, arg1, tmp549, tmp552) ; break ; } while (0) ; tmp553 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg2), atslab_hiclau_loc) ; tmp554 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_freeconenv (arg0) ; /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_freeconlst (tmp543, tmp553, tmp554) ; /* tmp556 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_comment (tmp543, ATSstrcst("ibranch-mbody:")) ; tmp558 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg2), atslab_hiclau_body) ; /* tmp557 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, tmp543, arg4, tmp558) ; /* tmp559 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ; tmp560 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp543) ; tmp561 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg2), atslab_hiclau_loc) ; tmp542 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ibranch_make (tmp561, tmp560) ; return (tmp542) ; } /* end of [auxcl_71] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 38186(line=1931, offs=1) -- 38714(line=1959, offs=4) */ ATSstaticdec() ats_ptr_type auxclist_72 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; __ats_lab_auxclist_72: do { /* branch: __ats_lab_194 */ __ats_lab_194_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_195_0 ; } __ats_lab_194_1: tmp562 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_195 */ __ats_lab_195_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_195_1: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp563 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_0) ; tmp564 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_1) ; if (arg3 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 38467(line=1948, offs=9) -- 38503(line=1948, offs=45)") ; } tmp565 = ats_caselptrlab_mac(anairiats_sum_8, arg3, atslab_0) ; tmp566 = ats_caselptrlab_mac(anairiats_sum_8, arg3, atslab_1) ; tmp567 = auxcl_71 (arg0, arg1, tmp563, tmp565, arg4) ; tmp568 = auxclist_72 (arg0, arg1, tmp564, tmp566, arg4) ; tmp562 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp562, atslab_0, tmp567) ; ats_selptrset_mac(anairiats_sum_8, tmp562, atslab_1, tmp568) ; break ; } while (0) ; return (tmp562) ; } /* end of [auxclist_72] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_claulst.dats: 38790(line=1965, offs=1) -- 39072(line=1980, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiclaulst_ccomp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; // ATSlocal_void (tmp571) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiclaulst_ccomp: tmp570 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__hiclaulst_patcomp (arg1, arg3, arg2) ; /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__patcomplstlst_jumpfill (tmp570, arg5) ; tmp569 = auxclist_72 (arg0, arg1, arg3, tmp570, arg4) ; return (tmp569) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiclaulst_ccomp] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKpat_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKlabpat_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__MTKrparen_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPany_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPvar_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPasvar_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPlablparen_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPpatlparen_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPreclparen_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPrparen_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPpatneg_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPtmplabend_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__PTCMPtmplabgua_9.tag = 9 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_claulst_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_codegen2_sats.c0000644000175000017500000000605413431250607022237 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_codegen2_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_p2at_dats.c0000644000175000017500000060214713431250607022677 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_l0ab_loc ; ats_ptr_type atslab_l0ab_lab ; } anairiats_rec_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_vbox_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlst_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Terrpat_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__LABP3AT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_vbox_ref_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_lst_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_guard_trdn_83) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_neq_bool_bool) (ats_bool_type, ats_bool_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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__option_vt_is_some) (ats_ptr_type) ; 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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind) (ats_int_type) ; ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_size) (ats_size_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label) (ats_ptr_type) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char) (ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec) (ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_1) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool) (ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1int_kind_index_t0ype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_index_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vbox_view_prop) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_vbox_view_prop) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isprf) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_p2at_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2at) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_any) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_int) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_intrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_bool) (ats_ptr_type, ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_char) (ats_ptr_type, ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_float) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_string) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_i0nt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_f0loat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_rec) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_lst) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_refas) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_exist) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_vbox) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_ann) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_p3at_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_p3at_set_type_left) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve) (ats_ptr_type, ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trup_arg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_arg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type_ind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_add_eff) (ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_any) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_p2at) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_labp2atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2atlst_trdn_elt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_int) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_bool) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_char) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_rec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_lst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_refas) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_exist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_vbox) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_ann) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__labp2atlst_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_void_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_foreach_funenv_01378_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_foreach_fun_01379_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type __ats_fun_13 (ats_ptr_type arg0) ; static ats_void_type p2at_proofize_9 (ats_ptr_type arg0) ; static ats_void_type loop_15 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type p2at_trdn_arg_refarg_var_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_ptr_type p2at_trdn_arg_refarg_err_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_21 (ats_ptr_type env0, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_clo_ptr_type aux_21_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_21_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type auxcheck_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_bool_type aux_38 (ats_ptr_type arg0) ; static ats_void_type auxrest_39 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type auxrest_39_closure_make (ats_ptr_type env0) ; static ats_void_type auxrest_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type auxfind_40 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type auxfind_40_closure_make () ; static ats_ptr_type auxfind_40_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxcheck_41 (ats_ptr_type env0, ats_bool_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_clo_ptr_type auxcheck_41_closure_make (ats_ptr_type env0, ats_bool_type env1) ; static ats_ptr_type auxcheck_41_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type auxerr_lin_43 (ats_ptr_type arg0) ; static ats_void_type auxerr_nonlin_44 (ats_ptr_type arg0) ; static ats_int_type loop_47 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type auxerr1_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr2_50 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxbind_51 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 1670(line=52, offs=28) -- 1699(line=52, offs=57) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_p2at")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 2699(line=119, offs=10) -- 4143(line=183, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_p2at (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_p2at: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp2)->tag != 17) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_2, tmp2, atslab_1) ; tmp1 = tmp3 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp2)->tag != 0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp4, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp2)->tag != 1) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp5, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp2)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype () ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp2)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_0) ; tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type (tmp7, tmp6) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp2)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype () ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp2)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_t0ype () ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp2)->tag != 8) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type () ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp2)->tag != 7) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype () ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp2)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type (tmp8) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp2)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type (tmp9) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp2)->tag != 11) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp2)->tag != 2) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp10, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp2)->tag != 12) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp2)->tag != 13) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_5, tmp2, atslab_0) ; tmp12 = ats_caselptrlab_mac(anairiats_sum_5, tmp2, atslab_1) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_5, tmp2, atslab_2) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_labp2atlst (tmp13) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec (tmp11, tmp12, tmp14) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp2)->tag != 14) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_2, tmp2, atslab_1) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type (tmp15) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp2)->tag != 16) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp17, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vbox_view_prop (tmp16) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp2)->tag != 15) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp2)->tag != 18) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (((ats_sum_ptr_type)tmp2)->tag != 19) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_p2at] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 4195(line=187, offs=3) -- 4653(line=205, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_labp2atlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_labp2atlst: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_20_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp19)->tag != 1) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_2, tmp19, atslab_0) ; tmp22 = ats_caselptrlab_mac(anairiats_sum_2, tmp19, atslab_1) ; tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp21), atslab_l0ab_lab) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type (tmp22) ; tmp26 = (ats_sum_ptr_type)0 ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp25, atslab_0, tmp23) ; ats_selptrset_mac(anairiats_sum_8, tmp25, atslab_1, tmp26) ; ats_selptrset_mac(anairiats_sum_8, tmp25, atslab_2, tmp24) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_labp2atlst (tmp20) ; tmp18 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp18, atslab_0, tmp25) ; ats_selptrset_mac(anairiats_sum_6, tmp18, atslab_1, tmp27) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (((ats_sum_ptr_type)tmp19)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp18 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp18 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_labp2atlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 4729(line=211, offs=3) -- 4826(line=214, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type: tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__aux_p2at (arg0) ; tmp31 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp31, atslab_0, tmp29) ; /* tmp30 = */ patsopt_p2at_set_type (arg0, tmp31) ; tmp28 = tmp29 ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab_loop_7: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp38 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp39 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp37, arg3) ; tmp40 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp40, atslab_0, tmp39) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp40 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp41 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp38 ; arg1 = arg1 ; arg2 = tmp41 ; arg3 = arg3 ; goto __ats_lab_loop_7 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp42 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp42 ; break ; } while (0) ; return /* (tmp36) */ ; } /* end of [loop_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp43 ; */ /* tmp44 = */ loop_7 (arg0, arg1, (&tmp43), arg2) ; tmp35 = tmp43 ; return (tmp35) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp34 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp34) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 4925(line=221, offs=18) -- 4975(line=222, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_syn_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_syn_type: tmp33 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type) ; tmp32 = ats_castfn_mac(ats_ptr_type, tmp33) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_syn_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 5054(line=229, offs=3) -- 5386(line=249, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trup_arg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trup_arg: tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp46)->tag != 17) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_2, tmp46, atslab_0) ; tmp48 = ats_caselptrlab_mac(anairiats_sum_2, tmp46, atslab_1) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_arg (tmp47, tmp48) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp49 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_type) ; if (tmp49 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 5303(line=244, offs=9) -- 5329(line=244, offs=35)") ; } tmp50 = ats_caselptrlab_mac(anairiats_sum_9, tmp49, atslab_0) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (arg0, tmp50) ; break ; } while (0) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trup_arg] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 38130(line=1351, offs=7) -- 38345(line=1358, offs=19) */ ATSstaticdec() ats_void_type loop_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; // ATSlocal_void (tmp59) ; __ats_lab_loop_12: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp58 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; /* tmp59 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp57, arg2) ; arg0 = tmp58 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_12 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: break ; } while (0) ; return /* (tmp56) */ ; } /* end of [loop_12] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 38100(line=1350, offs=20) -- 38396(line=1362, offs=4) */ ATSstaticdec() ats_void_type list_foreach_funenv_01378_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp55) ; __ats_lab_list_foreach_funenv_01378_ats_ptr_type: /* tmp55 = */ loop_12 (arg0, arg1, arg2) ; return /* (tmp55) */ ; } /* end of [list_foreach_funenv_01378_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 38461(line=1365, offs=26) -- 38734(line=1374, offs=4) */ ATSstaticdec() ats_void_type list_foreach_fun_01379_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp54) ; __ats_lab_list_foreach_fun_01379_ats_ptr_type: /* tmp54 = */ list_foreach_funenv_01378_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp54) */ ; } /* end of [list_foreach_fun_01379_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 5577(line=261, offs=11) -- 5617(line=261, offs=51) */ ATSstaticdec() ats_void_type __ats_fun_13 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp60) ; __ats_lab___ats_fun_13: /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isprf (arg0, ats_true_bool) ; return /* (tmp60) */ ; } /* end of [__ats_fun_13] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 5445(line=255, offs=4) -- 5622(line=262, offs=4) */ ATSstaticdec() ats_void_type p2at_proofize_9 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab_p2at_proofize_9: tmp52 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_dvs) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp52) ; /* tmp51 = */ list_foreach_fun_01379_ats_ptr_type (tmp53, &__ats_fun_13) ; return /* (tmp51) */ ; } /* end of [p2at_proofize_9] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 5737(line=272, offs=1) -- 6243(line=303, offs=2) */ ATSstaticdec() ats_void_type loop_15 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; __ats_lab_loop_15: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp63 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp63 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp65 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp67 = atspre_gt_int_int (arg0, 0) ; if (tmp67) { /* tmp66 = */ p2at_proofize_9 (tmp64) ; } else { /* empty */ } /* end of [if] */ tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trup_arg (tmp64) ; tmp69 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp69, atslab_0, tmp68) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp69 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp70 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; tmp71 = atspre_sub_int_int (arg0, 1) ; arg0 = tmp71 ; arg1 = tmp65 ; arg2 = tmp70 ; goto __ats_lab_loop_15 ; // tail call break ; } while (0) ; return /* (tmp62) */ ; } /* end of [loop_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 5704(line=268, offs=3) -- 6340(line=308, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trup_arg (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp72) ; // ATSlocal_void (tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trup_arg: /* ats_ptr_type tmp72 ; */ /* tmp73 = */ loop_15 (arg0, arg1, (&tmp72)) ; tmp61 = tmp72 ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trup_arg] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 6406(line=315, offs=1) -- 8069(line=363, offs=4) */ ATSstaticdec() ats_ptr_type p2at_trdn_arg_refarg_var_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; // ATSlocal_void (tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; // ATSlocal_void (tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; // ATSlocal_void (tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; // ATSlocal_void (tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; // ATSlocal_void (tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab_p2at_trdn_arg_refarg_var_16: tmp75 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp76)->tag != 29) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 6503(line=319, offs=5) -- 6546(line=320, offs=34)") ; } tmp77 = ats_caselptrlab_mac(anairiats_sum_4, tmp76, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_4, tmp76, atslab_1) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp78) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp79) ; tmp81 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp81)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 6603(line=323, offs=5) -- 6632(line=323, offs=34)") ; } tmp82 = ats_caselptrlab_mac(anairiats_sum_3, tmp81, atslab_0) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp83 = atspre_eq_int_int (tmp77, 0) ; if (!tmp83) { goto __ats_lab_33_1 ; } tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_var (arg0, tmp79) ; /* tmp85 = */ patsopt_p3at_set_type (tmp84, arg1) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp82) ; if (tmp86 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 6786(line=331, offs=9) -- 6819(line=331, offs=42)") ; } tmp87 = ats_caselptrlab_mac(anairiats_sum_9, tmp86, atslab_0) ; tmp89 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp89)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp89, atslab_0, tmp87) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (tmp82, tmp89) ; tmp74 = tmp84 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_var (tmp90, arg1, tmp82) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp90, tmp79) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (tmp82) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp93, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; /* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar (tmp94) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp94) ; tmp98 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp98, atslab_0, tmp96) ; /* tmp97 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr (tmp82, tmp98) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type (tmp96) ; tmp101 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp101, atslab_0, tmp99) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp82, tmp101) ; tmp103 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp103, atslab_0, tmp99) ; /* tmp102 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp82, tmp103) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make_none (tmp82) ; tmp106 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp106, atslab_0, tmp104) ; /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view (tmp82, tmp106) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp80, tmp96) ; tmp109 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp109, atslab_0, tmp107) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp104, tmp109) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp92, tmp96) ; tmp112 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp112, atslab_0, tmp110) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp104, tmp112) ; tmp114 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp114)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp114, atslab_0, tmp110) ; /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (tmp104, tmp114) ; tmp74 = tmp91 ; break ; } while (0) ; return (tmp74) ; } /* end of [p2at_trdn_arg_refarg_var_16] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; __ats_lab_prerr_error3_loc_02089_: /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp118 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp118) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 8115(line=366, offs=1) -- 8426(line=384, offs=4) */ ATSstaticdec() ats_ptr_type p2at_trdn_arg_refarg_err_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_p2at_trdn_arg_refarg_err_17: tmp116 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; /* tmp117 = */ prerr_error3_loc_02089_ (tmp116) ; /* tmp120 = */ atspre_prerr_string (ATSstrcst(": the pattern is expected to be a variable.")) ; /* tmp121 = */ atspre_prerr_newline () ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp123)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp123, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp123, atslab_1, arg1) ; /* tmp122 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp123) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (tmp116, arg1) ; return (tmp115) ; } /* end of [p2at_trdn_arg_refarg_err_17] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 8513(line=390, offs=3) -- 9031(line=424, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_arg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_arg: tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp125) ; tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp126), atslab_s2exp_node) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp127)->tag != 29) { goto __ats_lab_37_0 ; } __ats_lab_34_1: tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp128)->tag != 1) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp124 = p2at_trdn_arg_refarg_var_16 (arg0, tmp126) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp124 = p2at_trdn_arg_refarg_err_17 (arg0, tmp126) ; break ; } while (0) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (arg0, tmp126) ; break ; } while (0) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_arg] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 9177(line=436, offs=5) -- 10083(line=468, offs=6) */ ATSstaticdec() ats_ptr_type aux_21 (ats_ptr_type env0, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_bool_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_int_type, tmp139) ; ATSlocal (ats_int_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; __ats_lab_aux_21: do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_38_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp133 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp134 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp136 = atspre_gt_int_int (arg0, 0) ; if (tmp136) { /* tmp135 = */ p2at_proofize_9 (tmp131) ; } else { /* empty */ } /* end of [if] */ tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_arg (tmp131, tmp133) ; tmp139 = atspre_sub_int_int (arg0, 1) ; tmp138 = aux_21 (env0, tmp139, tmp132, tmp134, arg3) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp130, atslab_0, tmp137) ; ats_selptrset_mac(anairiats_sum_6, tmp130, atslab_1, tmp138) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp140 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp140 ; tmp130 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp143 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp143 ; tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (env0, tmp141) ; tmp146 = atspre_sub_int_int (arg0, 1) ; tmp145 = aux_21 (env0, tmp146, arg1, tmp142, arg3) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp130, atslab_0, tmp144) ; ats_selptrset_mac(anairiats_sum_6, tmp130, atslab_1, tmp145) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp130 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp130) ; } /* end of [aux_21] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_21_closure_type ; ats_ptr_type aux_21_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { return aux_21 (((aux_21_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type aux_21_closure_init (aux_21_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_21_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_21_closure_make (ats_ptr_type env0) { aux_21_closure_type *p_clo = ATS_MALLOC(sizeof(aux_21_closure_type)) ; aux_21_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 9130(line=432, offs=1) -- 10159(line=472, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn_arg (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp129) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn_arg: tmp129 = aux_21 (arg0, arg1, arg2, arg3, arg4) ; return (tmp129) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn_arg] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 10354(line=485, offs=3) -- 10549(line=491, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2atlst_trdn_elt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2atlst_trdn_elt: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp148, arg1) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2atlst_trdn_elt (tmp149, arg1) ; tmp147 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp147, atslab_0, tmp150) ; ats_selptrset_mac(anairiats_sum_6, tmp147, atslab_1, tmp151) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp147 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp147) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2atlst_trdn_elt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 11521(line=531, offs=3) -- 13050(line=597, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; // ATSlocal_void (tmp157) ; ATSlocal (ats_bool_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; // ATSlocal_void (tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn: tmp153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp155)->tag != 0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_any (arg0, tmp154) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp155)->tag != 1) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_var (arg0, tmp154) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp155)->tag != 2) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_con (arg0, tmp154) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp155)->tag != 3) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_int (arg0, tmp154) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp155)->tag != 4) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_intrep (arg0, tmp154) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp155)->tag != 5) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_bool (arg0, tmp154) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp155)->tag != 6) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_char (arg0, tmp154) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp155)->tag != 7) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_float (arg0, tmp154) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp155)->tag != 8) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_string (arg0, tmp154) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp155)->tag != 9) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_i0nt (arg0, tmp154) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp155)->tag != 10) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_f0loat (arg0, tmp154) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp155)->tag != 11) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_empty (arg0, tmp154) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp155)->tag != 13) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_rec (arg0, tmp154) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp155)->tag != 12) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_lst (arg0, tmp154) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp155)->tag != 14) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_refas (arg0, tmp154) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp155)->tag != 15) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_exist (arg0, tmp154) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp155)->tag != 16) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref (tmp153) ; tmp158 = atspre_gt_int_int (tmp156, 0) ; if (tmp158) { tmp159 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp159)->tag = 12 ; ats_selptrset_mac(anairiats_sum_3, tmp159, atslab_0, arg0) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp159) ; } else { /* empty */ } /* end of [if] */ /* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_add_eff (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_vbox (arg0, tmp154) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp155)->tag != 17) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_ann (arg0, tmp154) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp155)->tag != 19) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp154) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (tmp153, tmp161) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: __ats_lab_65_1: /* tmp162 = */ atspre_print_string (ATSstrcst("p2at_trdn: p2t0 = ")) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2at (arg0) ; /* tmp164 = */ atspre_print_newline () ; tmp165 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 13015(line=595, offs=5) -- 13025(line=595, offs=15)", ATSstrcst("\n")) ; /* tmp152 = */ ats_exit_errmsg (1, tmp165) ; break ; } while (0) ; return (tmp152) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 13120(line=603, offs=3) -- 13938(line=637, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_int_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_int_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn: do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_69_0 ; } __ats_lab_66_1: tmp167 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp168 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp167, tmp169) ; tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn (arg0, tmp168, tmp170, arg3) ; tmp166 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_0, tmp171) ; ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_1, tmp172) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp173 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp173 ; tmp166 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp176 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp176 ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (arg0, tmp174) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn (arg0, arg1, tmp175, arg3) ; tmp166 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_0, tmp177) ; ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_1, tmp178) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp166 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp166) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 14012(line=643, offs=3) -- 14453(line=663, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_any (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; // ATSlocal_void (tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_bool_type, tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_any: tmp180 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any (tmp180) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp180, arg1) ; tmp185 = (ats_sum_ptr_type)0 ; /* tmp184 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp182, tmp185) ; tmp187 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp187, atslab_0, tmp181) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp182, tmp187) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_any (tmp180, tmp183, tmp182) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp181) ; if (tmp189) { tmp191 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_0, tmp181) ; /* tmp190 = */ patsopt_p3at_set_type_left (tmp188, tmp191) ; } else { /* empty */ } /* end of [if] */ tmp179 = tmp188 ; return (tmp179) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_any] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 14528(line=669, offs=3) -- 15346(line=700, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_bool_type, tmp198) ; // ATSlocal_void (tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; // ATSlocal_void (tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_var: tmp193 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp194 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp194)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 14580(line=671, offs=7) -- 14608(line=671, offs=35)") ; } tmp195 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp196), atslab_s2exp_srt) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (tmp197) ; tmp200 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp200, atslab_0, tmp196) ; /* tmp199 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp195, tmp200) ; if (tmp198) { /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (tmp195, 0) ; tmp203 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINnone_0) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (tmp195, tmp203) ; } else { /* empty */ } /* end of [if] */ tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp193, arg1) ; tmp206 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp206, atslab_0, tmp204) ; /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp195, tmp206) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_var (tmp193, tmp204, tmp195) ; return (tmp192) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_var] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 15421(line=706, offs=3) -- 16643(line=749, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_int (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_int_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_int_type, tmp218) ; // ATSlocal_void (tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_bool_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; // ATSlocal_void (tmp229) ; ATSlocal (ats_bool_type, tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_int: tmp208 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp209 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp209)->tag != 3) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 15472(line=709, offs=5) -- 15499(line=709, offs=32)") ; } tmp210 = ats_caselptrlab_mac(anairiats_sum_11, tmp209, atslab_0) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp211) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp210) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp213) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1int_kind_index_t0ype (tmp212, tmp213) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp208, arg1) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_int (tmp208, tmp216, tmp210) ; /* ats_int_type tmp218 ; */ tmp218 = 0 ; tmp220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp216), atslab_s2exp_node) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp220)->tag != 17) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp221 = ats_caselptrlab_mac(anairiats_sum_2, tmp220, atslab_0) ; tmp222 = ats_caselptrlab_mac(anairiats_sum_2, tmp220, atslab_1) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype, tmp221) ; if (!tmp223) { goto __ats_lab_73_1 ; } if (tmp222 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 15961(line=728, offs=9) -- 16002(line=728, offs=50)") ; } tmp224 = ats_caselptrlab_mac(anairiats_sum_6, tmp222, atslab_0) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_6, tmp222, atslab_1) ; if (tmp225 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 16011(line=729, offs=9) -- 16052(line=729, offs=50)") ; } tmp226 = ats_caselptrlab_mac(anairiats_sum_6, tmp225, atslab_0) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (tmp208, tmp212, tmp224, (&tmp218)) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp226) ; /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (tmp208, tmp214, tmp228) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (tmp208, tmp215, tmp216, (&tmp218)) ; break ; } while (0) ; tmp230 = atspre_gt_int_int (tmp218, 0) ; if (tmp230) { /* tmp231 = */ prerr_error3_loc_02089_ (tmp208) ; /* tmp232 = */ atspre_prerr_string (ATSstrcst(": the integer pattern is ill-typed.")) ; /* tmp233 = */ atspre_prerr_newline () ; /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp236 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp236)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp236, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp236, atslab_1, tmp235) ; /* tmp229 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp236) ; } else { /* empty */ } /* end of [if] */ tmp207 = tmp217 ; return (tmp207) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_int] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 16719(line=755, offs=3) -- 17747(line=792, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_bool (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_bool_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_bool_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; // ATSlocal_void (tmp252) ; ATSlocal (ats_int_type, tmp253) ; // ATSlocal_void (tmp254) ; ATSlocal (ats_bool_type, tmp255) ; // ATSlocal_void (tmp256) ; // ATSlocal_void (tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_bool: tmp238 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp239 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp239)->tag != 5) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 16770(line=758, offs=5) -- 16798(line=758, offs=33)") ; } tmp240 = ats_caselptrlab_mac(anairiats_sum_12, tmp239, atslab_0) ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (tmp240) ; tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp241) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_index_t0ype (tmp241) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp238, arg1) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_bool (tmp238, tmp244, tmp240) ; tmp246 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp244), atslab_s2exp_node) ; do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp246)->tag != 17) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp247 = ats_caselptrlab_mac(anairiats_sum_2, tmp246, atslab_0) ; tmp248 = ats_caselptrlab_mac(anairiats_sum_2, tmp246, atslab_1) ; tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype, tmp247) ; if (!tmp249) { goto __ats_lab_75_1 ; } if (tmp248 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 17136(line=772, offs=9) -- 17169(line=772, offs=42)") ; } tmp250 = ats_caselptrlab_mac(anairiats_sum_6, tmp248, atslab_0) ; tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp250) ; /* tmp252 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (tmp238, tmp242, tmp251) ; tmp237 = tmp245 ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: __ats_lab_75_1: tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (tmp238, tmp243, tmp244) ; tmp255 = atspre_gt_int_int (tmp253, 0) ; if (tmp255) { /* tmp256 = */ prerr_error3_loc_02089_ (tmp238) ; /* tmp257 = */ atspre_prerr_string (ATSstrcst(": the boolean pattern is ill-typed.")) ; /* tmp258 = */ atspre_prerr_newline () ; /* tmp259 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp261 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp261)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp261, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp261, atslab_1, tmp260) ; /* tmp254 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp261) ; } else { /* empty */ } /* end of [if] */ tmp237 = tmp245 ; break ; } while (0) ; return (tmp237) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_bool] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 17824(line=798, offs=3) -- 18943(line=844, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_char (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_char_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_bool_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; // ATSlocal_void (tmp277) ; ATSlocal (ats_int_type, tmp278) ; // ATSlocal_void (tmp279) ; ATSlocal (ats_bool_type, tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_char: tmp263 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp264 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp264)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 17875(line=801, offs=5) -- 17903(line=801, offs=33)") ; } tmp265 = ats_caselptrlab_mac(anairiats_sum_13, tmp264, atslab_0) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char (tmp265) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp266) ; tmp268 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_index_t0ype (tmp266) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp263, arg1) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_char (tmp263, tmp269, tmp265) ; tmp271 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp269), atslab_s2exp_node) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp271)->tag != 17) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_2, tmp271, atslab_0) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_2, tmp271, atslab_1) ; tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype, tmp272) ; if (!tmp274) { goto __ats_lab_77_1 ; } if (tmp273 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 18264(line=820, offs=5) -- 18303(line=821, offs=30)") ; } tmp275 = ats_caselptrlab_mac(anairiats_sum_6, tmp273, atslab_0) ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp275) ; /* tmp277 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (tmp263, tmp267, tmp276) ; tmp262 = tmp270 ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: __ats_lab_77_1: tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (tmp263, tmp268, tmp269) ; tmp280 = atspre_gt_int_int (tmp278, 0) ; if (tmp280) { /* tmp281 = */ prerr_error3_loc_02089_ (tmp263) ; /* tmp282 = */ atspre_prerr_string (ATSstrcst(": the char pattern is ill-typed.")) ; /* tmp283 = */ atspre_prerr_newline () ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp286 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp286)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp286, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp286, atslab_1, tmp285) ; /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp286) ; } else { /* empty */ } /* end of [if] */ tmp262 = tmp270 ; break ; } while (0) ; return (tmp262) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_char] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 19021(line=850, offs=3) -- 19703(line=878, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_float (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_int_type, tmp294) ; // ATSlocal_void (tmp295) ; ATSlocal (ats_bool_type, tmp296) ; // ATSlocal_void (tmp297) ; // ATSlocal_void (tmp298) ; // ATSlocal_void (tmp299) ; // ATSlocal_void (tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_float: tmp288 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp289 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp289)->tag != 7) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 19072(line=853, offs=5) -- 19102(line=853, offs=35)") ; } tmp290 = ats_caselptrlab_mac(anairiats_sum_3, tmp289, atslab_0) ; tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype () ; tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_float (tmp288, tmp292, tmp290) ; do { /* branch: __ats_lab_78 */ __ats_lab_78_0: __ats_lab_78_1: tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (tmp288, tmp291, tmp292) ; tmp296 = atspre_gt_int_int (tmp294, 0) ; if (tmp296) { /* tmp297 = */ prerr_error3_loc_02089_ (tmp288) ; /* tmp298 = */ atspre_prerr_string (ATSstrcst(": the floating-point pattern is ill-typed.")) ; /* tmp299 = */ atspre_prerr_newline () ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp301 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp301)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp301, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp301, atslab_1, tmp292) ; /* tmp295 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp301) ; } else { /* empty */ } /* end of [if] */ tmp287 = tmp293 ; break ; } while (0) ; return (tmp287) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_float] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 19783(line=884, offs=3) -- 21041(line=943, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_size_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_bool_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; // ATSlocal_void (tmp319) ; ATSlocal (ats_int_type, tmp320) ; // ATSlocal_void (tmp321) ; ATSlocal (ats_bool_type, tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp325) ; // ATSlocal_void (tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_string: tmp303 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp304 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp304)->tag != 8) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 19834(line=887, offs=5) -- 19865(line=887, offs=36)") ; } tmp305 = ats_caselptrlab_mac(anairiats_sum_3, tmp304, atslab_0) ; tmp306 = atspre_string_length (tmp305) ; tmp307 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_size (tmp306) ; tmp308 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (tmp307) ; tmp309 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp308) ; tmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_index_type (tmp308) ; tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp303, arg1) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_string (tmp303, tmp311, tmp305) ; tmp313 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp311), atslab_s2exp_node) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp313)->tag != 17) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_2, tmp313, atslab_0) ; tmp315 = ats_caselptrlab_mac(anairiats_sum_2, tmp313, atslab_1) ; tmp316 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type, tmp314) ; if (!tmp316) { goto __ats_lab_80_1 ; } if (tmp315 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 20308(line=915, offs=5) -- 20347(line=916, offs=30)") ; } tmp317 = ats_caselptrlab_mac(anairiats_sum_6, tmp315, atslab_0) ; tmp318 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp317) ; /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (tmp303, tmp309, tmp318) ; tmp302 = tmp312 ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: __ats_lab_80_1: tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (tmp303, tmp310, tmp311) ; tmp322 = atspre_gt_int_int (tmp320, 0) ; if (tmp322) { /* tmp323 = */ prerr_error3_loc_02089_ (tmp303) ; /* tmp324 = */ atspre_prerr_string (ATSstrcst(": the string pattern is ill-typed.")) ; /* tmp325 = */ atspre_prerr_newline () ; /* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp328 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp328)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp328, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp328, atslab_1, tmp327) ; /* tmp321 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp328) ; } else { /* empty */ } /* end of [if] */ tmp302 = tmp312 ; break ; } while (0) ; return (tmp302) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_string] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 21104(line=949, offs=5) -- 22245(line=988, offs=4) */ ATSstaticdec() ats_void_type auxcheck_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; // ATSlocal_void (tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; // ATSlocal_void (tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_int_type, tmp346) ; __ats_lab_auxcheck_32: tmp330 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg2), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp330)->tag != 17) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 21191(line=954, offs=5) -- 21248(line=955, offs=51)") ; } tmp331 = ats_caselptrlab_mac(anairiats_sum_2, tmp330, atslab_0) ; tmp332 = ats_caselptrlab_mac(anairiats_sum_2, tmp330, atslab_1) ; if (tmp332 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 21253(line=956, offs=5) -- 21305(line=956, offs=57)") ; } tmp333 = ats_caselptrlab_mac(anairiats_sum_6, tmp332, atslab_0) ; tmp334 = ats_caselptrlab_mac(anairiats_sum_6, tmp332, atslab_1) ; if (tmp334 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 21310(line=957, offs=5) -- 21362(line=957, offs=57)") ; } tmp335 = ats_caselptrlab_mac(anairiats_sum_6, tmp334, atslab_0) ; tmp336 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp336)->tag != 17) { goto __ats_lab_86_0 ; } __ats_lab_81_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_2, tmp336, atslab_0) ; tmp338 = ats_caselptrlab_mac(anairiats_sum_2, tmp336, atslab_1) ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp331, tmp337, arg3) ; do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (tmp338 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_82_1: tmp340 = ats_caselptrlab_mac(anairiats_sum_6, tmp338, atslab_0) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_6, tmp338, atslab_1) ; /* tmp342 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp333, tmp340, arg3) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (tmp341 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp343 = ats_caselptrlab_mac(anairiats_sum_6, tmp341, atslab_0) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp335) ; tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp343) ; /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (arg0, tmp344, tmp345) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: // if (tmp341 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_84_1: break ; } while (0) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (tmp338 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp346 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp346 ; break ; } while (0) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: __ats_lab_86_1: /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, arg2, arg1, arg3) ; break ; } while (0) ; return /* (tmp329) */ ; } /* end of [auxcheck_32] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 22319(line=994, offs=3) -- 22909(line=1015, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_intrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_int_type, tmp354) ; // ATSlocal_void (tmp355) ; // ATSlocal_void (tmp356) ; ATSlocal (ats_bool_type, tmp357) ; // ATSlocal_void (tmp358) ; // ATSlocal_void (tmp359) ; // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_intrep: tmp348 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp349 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp349)->tag != 4) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 22370(line=997, offs=5) -- 22402(line=997, offs=37)") ; } tmp350 = ats_caselptrlab_mac(anairiats_sum_3, tmp349, atslab_0) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__intrep_syn_type_ind (tmp348, tmp350) ; tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp348, arg1) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_intrep (tmp348, tmp352, tmp350) ; /* ats_int_type tmp354 ; */ tmp354 = 0 ; /* tmp355 = */ auxcheck_32 (tmp348, tmp352, tmp351, (&tmp354)) ; tmp357 = atspre_gt_int_int (tmp354, 0) ; if (tmp357) { /* tmp358 = */ prerr_error3_loc_02089_ (tmp348) ; /* tmp359 = */ atspre_prerr_string (ATSstrcst(": the integer pattern is ill-typed.")) ; /* tmp360 = */ atspre_prerr_newline () ; /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp363 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp363)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp363, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp363, atslab_1, tmp362) ; /* tmp356 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp363) ; } else { /* empty */ } /* end of [if] */ tmp347 = tmp353 ; return (tmp347) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_intrep] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 22967(line=1019, offs=3) -- 23542(line=1041, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_i0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_int_type, tmp371) ; // ATSlocal_void (tmp372) ; // ATSlocal_void (tmp373) ; ATSlocal (ats_bool_type, tmp374) ; // ATSlocal_void (tmp375) ; // ATSlocal_void (tmp376) ; // ATSlocal_void (tmp377) ; // ATSlocal_void (tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_i0nt: tmp365 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp366 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp366)->tag != 9) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 23018(line=1022, offs=5) -- 23046(line=1022, offs=33)") ; } tmp367 = ats_caselptrlab_mac(anairiats_sum_3, tmp366, atslab_0) ; tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type_ind (tmp367) ; tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp365, arg1) ; tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_i0nt (tmp365, tmp369, tmp367) ; /* ats_int_type tmp371 ; */ tmp371 = 0 ; /* tmp372 = */ auxcheck_32 (tmp365, tmp369, tmp368, (&tmp371)) ; tmp374 = atspre_gt_int_int (tmp371, 0) ; if (tmp374) { /* tmp375 = */ prerr_error3_loc_02089_ (tmp365) ; /* tmp376 = */ atspre_prerr_string (ATSstrcst(": the integer pattern is ill-typed.")) ; /* tmp377 = */ atspre_prerr_newline () ; /* tmp378 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp380 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp380)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp380, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp380, atslab_1, tmp379) ; /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp380) ; } else { /* empty */ } /* end of [if] */ tmp364 = tmp370 ; return (tmp364) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 23644(line=1049, offs=3) -- 24225(line=1065, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_f0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_int_type, tmp387) ; // ATSlocal_void (tmp388) ; ATSlocal (ats_bool_type, tmp389) ; // ATSlocal_void (tmp390) ; // ATSlocal_void (tmp391) ; // ATSlocal_void (tmp392) ; // ATSlocal_void (tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_f0loat: tmp382 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp383 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp383)->tag != 10) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 23696(line=1051, offs=7) -- 23726(line=1051, offs=37)") ; } tmp384 = ats_caselptrlab_mac(anairiats_sum_3, tmp383, atslab_0) ; tmp385 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type (tmp384) ; tmp386 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp382, arg1) ; tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (tmp382, tmp385, tmp386) ; tmp389 = atspre_gt_int_int (tmp387, 0) ; if (tmp389) { /* tmp390 = */ prerr_error3_loc_02089_ (tmp382) ; /* tmp391 = */ atspre_prerr_string (ATSstrcst(": the pattern of floating point number is ill-typed.")) ; /* tmp392 = */ atspre_prerr_newline () ; /* tmp393 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp395 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp395)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp395, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp395, atslab_1, tmp394) ; /* tmp388 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp395) ; } else { /* empty */ } /* end of [if] */ tmp381 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_f0loat (tmp382, tmp386, tmp384) ; return (tmp381) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 24305(line=1071, offs=3) -- 24858(line=1087, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_empty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_int_type, tmp401) ; // ATSlocal_void (tmp402) ; ATSlocal (ats_bool_type, tmp403) ; // ATSlocal_void (tmp404) ; // ATSlocal_void (tmp405) ; // ATSlocal_void (tmp406) ; // ATSlocal_void (tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_empty: tmp397 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp398 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp398)->tag != 11) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 24357(line=1073, offs=7) -- 24385(line=1073, offs=35)") ; } tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp397, arg1) ; tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (tmp397, tmp400, tmp399) ; tmp403 = atspre_gt_int_int (tmp401, 0) ; if (tmp403) { /* tmp404 = */ prerr_error3_loc_02089_ (tmp397) ; /* tmp405 = */ atspre_prerr_string (ATSstrcst(": the void pattern is ill-typed.")) ; /* tmp406 = */ atspre_prerr_newline () ; /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp408 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp409 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp409)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp409, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp409, atslab_1, tmp408) ; /* tmp402 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp409) ; } else { /* empty */ } /* end of [if] */ tmp396 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_empty (tmp397, tmp399) ; return (tmp396) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_empty] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 25165(line=1105, offs=7) -- 25363(line=1110, offs=27) */ ATSstaticdec() ats_bool_type aux_38 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; __ats_lab_aux_38: do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_90_0 ; } __ats_lab_87_1: tmp412 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp413 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp412)->tag != 1) { goto __ats_lab_89_0 ; } __ats_lab_88_1: arg0 = tmp413 ; goto __ats_lab_aux_38 ; // tail call break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (((ats_sum_ptr_type)tmp412)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: tmp411 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_90_1: tmp411 = ats_false_bool ; break ; } while (0) ; return (tmp411) ; } /* end of [aux_38] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 25407(line=1114, offs=5) -- 26095(line=1134, offs=2) */ ATSstaticdec() ats_void_type auxrest_39 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; // ATSlocal_void (tmp421) ; // ATSlocal_void (tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; // ATSlocal_void (tmp424) ; // ATSlocal_void (tmp425) ; ATSlocal (ats_int_type, tmp426) ; __ats_lab_auxrest_39: do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; } __ats_lab_91_1: tmp416 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp417 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp416)->tag != 1) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp418 = ats_caselptrlab_mac(anairiats_sum_2, tmp416, atslab_0) ; /* tmp419 = */ prerr_error3_loc_02089_ (env0) ; /* tmp420 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats"), ATSstrcst("labp2atlst_trdn")) ; /* tmp421 = */ atspre_prerr_string (ATSstrcst(": there is no component of the label [")) ; tmp423 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp418), atslab_l0ab_lab) ; /* tmp422 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label (tmp423) ; /* tmp424 = */ atspre_prerr_string (ATSstrcst("] in the type assigned to the tuple/record pattern.")) ; /* tmp425 = */ atspre_prerr_newline () ; tmp426 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp426 ; arg0 = tmp417 ; arg1 = arg1 ; goto __ats_lab_auxrest_39 ; // tail call break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (((ats_sum_ptr_type)tmp416)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: arg0 = tmp417 ; arg1 = arg1 ; goto __ats_lab_auxrest_39 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: break ; } while (0) ; return /* (tmp415) */ ; } /* end of [auxrest_39] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxrest_39_closure_type ; ats_void_type auxrest_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { auxrest_39 (((auxrest_39_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxrest_39_closure_init (auxrest_39_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxrest_39_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxrest_39_closure_make (ats_ptr_type env0) { auxrest_39_closure_type *p_clo = ATS_MALLOC(sizeof(auxrest_39_closure_type)) ; auxrest_39_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 26126(line=1136, offs=5) -- 26861(line=1159, offs=30) */ ATSstaticdec() ats_ptr_type auxfind_40 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_bool_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_bool_type, tmp436) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; __ats_lab_auxfind_40: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_98_0 ; } __ats_lab_95_1: tmp428 = ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp429 = ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp428)->tag != 1) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp430 = ats_caselptrlab_mac(anairiats_sum_2, tmp428, atslab_0) ; tmp431 = ats_caselptrlab_mac(anairiats_sum_2, tmp428, atslab_1) ; tmp433 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp430), atslab_l0ab_lab) ; tmp432 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (arg1, tmp433) ; if (tmp432) { ats_ptrget_mac(ats_ptr_type, arg0) = tmp429 ; tmp427 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp427, atslab_0, tmp431) ; } else { /* ats_ptr_type tmp434 ; */ tmp434 = tmp429 ; tmp435 = auxfind_40 ((&tmp434), arg1) ; tmp436 = ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__option_vt_is_some (tmp435) ; if (tmp436) { tmp438 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp438, atslab_0, tmp428) ; ats_selptrset_mac(anairiats_sum_6, tmp438, atslab_1, tmp434) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp438 ; } else { /* empty */ } /* end of [if] */ tmp427 = tmp435 ; } /* end of [if] */ break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: // if (((ats_sum_ptr_type)tmp428)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_97_1: tmp440 = (ats_sum_ptr_type)0 ; tmp439 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp439, atslab_0, tmp428) ; ats_selptrset_mac(anairiats_sum_6, tmp439, atslab_1, tmp440) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp439 ; tmp427 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_98_1: tmp427 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp427) ; } /* end of [auxfind_40] */ typedef struct { ats_fun_ptr_type closure_fun ; } auxfind_40_closure_type ; ats_ptr_type auxfind_40_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return auxfind_40 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type auxfind_40_closure_init (auxfind_40_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&auxfind_40_clofun ; return ; } /* end of function */ ats_clo_ptr_type auxfind_40_closure_make () { auxfind_40_closure_type *p_clo = ATS_MALLOC(sizeof(auxfind_40_closure_type)) ; auxfind_40_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 26889(line=1162, offs=5) -- 28169(line=1202, offs=4) */ ATSstaticdec() ats_ptr_type auxcheck_41 (ats_ptr_type env0, ats_bool_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; // ATSlocal_void (tmp455) ; // ATSlocal_void (tmp456) ; // ATSlocal_void (tmp457) ; // ATSlocal_void (tmp458) ; // ATSlocal_void (tmp459) ; // ATSlocal_void (tmp460) ; ATSlocal (ats_int_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; __ats_lab_auxcheck_41: do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_102_0 ; } __ats_lab_99_1: tmp442 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp443 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp444 = ats_caselptrlab_mac(anairiats_sum_8, tmp442, atslab_0) ; tmp445 = ats_caselptrlab_mac(anairiats_sum_8, tmp442, atslab_2) ; tmp446 = auxfind_40 (arg0, tmp444) ; do { /* branch: __ats_lab_100 */ __ats_lab_100_0: if (tmp446 == (ats_sum_ptr_type)0) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp447 = ats_caselptrlab_mac(anairiats_sum_9, tmp446, atslab_0) ; ATS_FREE(tmp446) ; tmp448 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp447, tmp445) ; tmp449 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp449, atslab_0, tmp444) ; ats_selptrset_mac(anairiats_sum_6, tmp449, atslab_1, tmp448) ; tmp450 = auxcheck_41 (env0, env1, arg0, tmp443, arg2) ; tmp441 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp441, atslab_0, tmp449) ; ats_selptrset_mac(anairiats_sum_6, tmp441, atslab_1, tmp450) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: // if (tmp446 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_101_1: /* ats_ptr_type tmp451 ; */ if (env1) { tmp453 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any (env0) ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_any (env0, tmp445, tmp453) ; tmp451 = tmp454 ; } else { /* tmp455 = */ prerr_error3_loc_02089_ (env0) ; /* tmp456 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats"), ATSstrcst("labp2atlst_trdn")) ; /* tmp457 = */ atspre_prerr_string (ATSstrcst(": there is no component of the label [")) ; /* tmp458 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label (tmp444) ; /* tmp459 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp460 = */ atspre_prerr_newline () ; tmp461 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp461 ; tmp462 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (env0, tmp445) ; tmp451 = tmp462 ; } /* end of [if] */ tmp463 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp463, atslab_0, tmp444) ; ats_selptrset_mac(anairiats_sum_6, tmp463, atslab_1, tmp451) ; tmp464 = auxcheck_41 (env0, env1, arg0, tmp443, arg2) ; tmp441 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp441, atslab_0, tmp463) ; ats_selptrset_mac(anairiats_sum_6, tmp441, atslab_1, tmp464) ; break ; } while (0) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_102_1: tmp441 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp441) ; } /* end of [auxcheck_41] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_bool_type closure_env_1 ; } auxcheck_41_closure_type ; ats_ptr_type auxcheck_41_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { return auxcheck_41 (((auxcheck_41_closure_type*)cloptr)->closure_env_0, ((auxcheck_41_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type auxcheck_41_closure_init (auxcheck_41_closure_type *p_clo, ats_ptr_type env0, ats_bool_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcheck_41_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxcheck_41_closure_make (ats_ptr_type env0, ats_bool_type env1) { auxcheck_41_closure_type *p_clo = ATS_MALLOC(sizeof(auxcheck_41_closure_type)) ; auxcheck_41_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 25088(line=1101, offs=3) -- 28302(line=1210, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__labp2atlst_trdn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_bool_type, tmp414) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; // ATSlocal_void (tmp467) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__labp2atlst_trdn: tmp414 = aux_38 (arg1) ; /* ats_ptr_type tmp465 ; */ tmp465 = arg1 ; tmp466 = auxcheck_41 (arg0, tmp414, (&tmp465), arg2, arg3) ; /* tmp467 = */ auxrest_39 (arg0, tmp465, arg3) ; tmp410 = tmp466 ; return (tmp410) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__labp2atlst_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 28379(line=1216, offs=3) -- 30343(line=1317, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_rec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_int_type, tmp471) ; ATSlocal (ats_int_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_int_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_bool_type, tmp479) ; ATSlocal (ats_bool_type, tmp480) ; ATSlocal (ats_bool_type, tmp481) ; // ATSlocal_void (tmp482) ; ATSlocal (ats_bool_type, tmp483) ; // ATSlocal_void (tmp484) ; // ATSlocal_void (tmp485) ; // ATSlocal_void (tmp486) ; // ATSlocal_void (tmp487) ; ATSlocal (ats_bool_type, tmp488) ; // ATSlocal_void (tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_int_type, tmp492) ; // ATSlocal_void (tmp493) ; ATSlocal (ats_bool_type, tmp494) ; // ATSlocal_void (tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_int_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; // ATSlocal_void (tmp500) ; ATSlocal (ats_bool_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_bool_type, tmp505) ; // ATSlocal_void (tmp506) ; // ATSlocal_void (tmp507) ; // ATSlocal_void (tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; // ATSlocal_void (tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_rec: tmp469 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp470 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp470)->tag != 13) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 28434(line=1222, offs=1) -- 28475(line=1223, offs=35)") ; } tmp471 = ats_caselptrlab_mac(anairiats_sum_5, tmp470, atslab_0) ; tmp472 = ats_caselptrlab_mac(anairiats_sum_5, tmp470, atslab_1) ; tmp473 = ats_caselptrlab_mac(anairiats_sum_5, tmp470, atslab_2) ; tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp469, arg1) ; tmp475 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp474), atslab_s2exp_node) ; do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp475)->tag != 25) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp476 = ats_caselptrlab_mac(anairiats_sum_14, tmp475, atslab_0) ; tmp477 = ats_caselptrlab_mac(anairiats_sum_14, tmp475, atslab_1) ; tmp478 = ats_caselptrlab_mac(anairiats_sum_14, tmp475, atslab_2) ; tmp479 = atspre_gt_int_int (tmp471, 0) ; tmp480 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp474) ; tmp481 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed (tmp476) ; tmp483 = atspre_neq_bool_bool (tmp479, tmp481) ; if (tmp483) { /* tmp484 = */ prerr_error3_loc_02089_ (tmp469) ; /* tmp485 = */ atspre_prerr_string (ATSstrcst(": the tuple/record pattern is ")) ; if (tmp479) { /* tmp486 = */ atspre_prerr_string (ATSstrcst("boxed but it is assigned a flat/unboxed type.")) ; } else { /* empty */ } /* end of [if] */ tmp488 = atspre_neg_bool (tmp479) ; if (tmp488) { /* tmp487 = */ atspre_prerr_string (ATSstrcst("flat/unboxed but it is assigned a boxed type.")) ; } else { /* empty */ } /* end of [if] */ /* tmp489 = */ atspre_prerr_newline () ; tmp490 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp491 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp491)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp491, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp491, atslab_1, tmp490) ; /* tmp482 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp491) ; } else { /* empty */ } /* end of [if] */ tmp492 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve (tmp469, tmp472, tmp477) ; tmp494 = atspre_gt_int_int (tmp492, 0) ; if (tmp494) { /* tmp495 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp497 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp497)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp497, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp497, atslab_1, tmp496) ; /* tmp493 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp497) ; } else { /* empty */ } /* end of [if] */ /* ats_int_type tmp498 ; */ tmp498 = 0 ; tmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__labp2atlst_trdn (tmp469, tmp473, tmp478, (&tmp498)) ; tmp501 = atspre_gt_int_int (tmp498, 0) ; if (tmp501) { tmp502 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp503 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp503)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp503, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp503, atslab_1, tmp502) ; /* tmp500 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp503) ; } else { /* empty */ } /* end of [if] */ tmp505 = atspre_mul_bool_bool (tmp479, tmp480) ; if (tmp505) { tmp504 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; } else { tmp504 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; } /* end of [if] */ tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_rec (tmp469, tmp474, tmp471, tmp472, tmp504, tmp499) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: __ats_lab_104_1: /* tmp506 = */ prerr_error3_loc_02089_ (tmp469) ; /* tmp507 = */ atspre_prerr_string (ATSstrcst(": the tuple/record pattern is ill-typed.")) ; /* tmp508 = */ atspre_prerr_newline () ; tmp509 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp511 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp511)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp511, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp511, atslab_1, tmp509) ; /* tmp510 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp511) ; tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (tmp469, tmp474) ; break ; } while (0) ; return (tmp468) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_rec] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 30405(line=1324, offs=1) -- 30611(line=1330, offs=4) */ ATSstaticdec() ats_void_type auxerr_lin_43 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp512) ; // ATSlocal_void (tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; // ATSlocal_void (tmp515) ; // ATSlocal_void (tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; __ats_lab_auxerr_lin_43: tmp514 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; /* tmp513 = */ prerr_error3_loc_02089_ (tmp514) ; /* tmp515 = */ atspre_prerr_string (ATSstrcst(": the list-pattern should be non-linear.")) ; /* tmp516 = */ atspre_prerr_newline () ; tmp517 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp517)->tag = 13 ; ats_selptrset_mac(anairiats_sum_4, tmp517, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_4, tmp517, atslab_1, arg0) ; /* tmp512 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp517) ; return /* (tmp512) */ ; } /* end of [auxerr_lin_43] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 30642(line=1333, offs=1) -- 30861(line=1339, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonlin_44 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp518) ; // ATSlocal_void (tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; // ATSlocal_void (tmp521) ; // ATSlocal_void (tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; __ats_lab_auxerr_nonlin_44: tmp520 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; /* tmp519 = */ prerr_error3_loc_02089_ (tmp520) ; /* tmp521 = */ atspre_prerr_string (ATSstrcst(": the list-pattern should be linear but it is not.")) ; /* tmp522 = */ atspre_prerr_newline () ; tmp523 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp523)->tag = 13 ; ats_selptrset_mac(anairiats_sum_4, tmp523, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_4, tmp523, atslab_1, arg0) ; /* tmp518 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp523) ; return /* (tmp518) */ ; } /* end of [auxerr_nonlin_44] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_47 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_int_type, tmp544) ; __ats_lab_loop_47: do { /* branch: __ats_lab_106 */ __ats_lab_106_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp543 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp544 = atspre_isucc (arg1) ; arg0 = tmp543 ; arg1 = tmp544 ; goto __ats_lab_loop_47 ; // tail call break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_107_1: tmp542 = arg1 ; break ; } while (0) ; return (tmp542) ; } /* end of [loop_47] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp541) ; __ats_lab_list_length_01410_ats_ptr_type: tmp541 = loop_47 (arg0, 0) ; return (tmp541) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 30939(line=1345, offs=3) -- 32793(line=1423, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_lst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_int_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_bool_type, tmp530) ; ATSlocal (ats_bool_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_bool_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_int_type, tmp540) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; // ATSlocal_void (tmp548) ; // ATSlocal_void (tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_bool_type, tmp552) ; ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_int_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_ptr_type, tmp560) ; // ATSlocal_void (tmp561) ; // ATSlocal_void (tmp562) ; ATSlocal (ats_bool_type, tmp563) ; // ATSlocal_void (tmp564) ; // ATSlocal_void (tmp565) ; // ATSlocal_void (tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; // ATSlocal_void (tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_lst: tmp525 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp526 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp526)->tag != 12) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 30990(line=1348, offs=5) -- 31025(line=1348, offs=40)") ; } tmp527 = ats_caselptrlab_mac(anairiats_sum_4, tmp526, atslab_0) ; tmp528 = ats_caselptrlab_mac(anairiats_sum_4, tmp526, atslab_1) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp525, arg1) ; tmp531 = atspre_gte_int_int (tmp527, 0) ; if (tmp531) { tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind (tmp527) ; } else { tmp530 = ats_false_bool ; } /* end of [if] */ tmp532 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp529), atslab_s2exp_node) ; do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp532)->tag != 17) { goto __ats_lab_108_0 ; } __ats_lab_105_1: tmp533 = ats_caselptrlab_mac(anairiats_sum_2, tmp532, atslab_0) ; tmp534 = ats_caselptrlab_mac(anairiats_sum_2, tmp532, atslab_1) ; tmp535 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type, tmp533) ; if (!tmp535) { goto __ats_lab_108_1 ; } if (tmp534 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 31319(line=1368, offs=9) -- 31366(line=1369, offs=38)") ; } tmp536 = ats_caselptrlab_mac(anairiats_sum_6, tmp534, atslab_0) ; tmp537 = ats_caselptrlab_mac(anairiats_sum_6, tmp534, atslab_1) ; if (tmp537 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 31375(line=1370, offs=9) -- 31422(line=1371, offs=38)") ; } tmp538 = ats_caselptrlab_mac(anairiats_sum_6, tmp537, atslab_0) ; tmp539 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2atlst_trdn_elt (tmp528, tmp536) ; tmp540 = list_length_01410_ats_ptr_type (tmp539) ; tmp545 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp540) ; tmp546 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp545) ; tmp547 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp538) ; /* tmp548 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (tmp525, tmp546, tmp547) ; if (tmp530) { /* tmp549 = */ auxerr_lin_43 (arg0) ; } else { /* empty */ } /* end of [if] */ tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_lst (tmp525, tmp529, 0, tmp536, tmp539) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp532)->tag != 17) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp550 = ats_caselptrlab_mac(anairiats_sum_2, tmp532, atslab_0) ; tmp551 = ats_caselptrlab_mac(anairiats_sum_2, tmp532, atslab_1) ; tmp552 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype, tmp550) ; if (!tmp552) { goto __ats_lab_109_1 ; } if (tmp551 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 31970(line=1394, offs=9) -- 32017(line=1395, offs=38)") ; } tmp553 = ats_caselptrlab_mac(anairiats_sum_6, tmp551, atslab_0) ; tmp554 = ats_caselptrlab_mac(anairiats_sum_6, tmp551, atslab_1) ; if (tmp554 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 32026(line=1396, offs=9) -- 32073(line=1397, offs=38)") ; } tmp555 = ats_caselptrlab_mac(anairiats_sum_6, tmp554, atslab_0) ; tmp556 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2atlst_trdn_elt (tmp528, tmp553) ; tmp557 = list_length_01410_ats_ptr_type (tmp556) ; tmp558 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp557) ; tmp559 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp558) ; tmp560 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp555) ; /* tmp561 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (tmp525, tmp559, tmp560) ; tmp563 = atspre_neg_bool (tmp530) ; if (tmp563) { /* tmp562 = */ auxerr_nonlin_44 (arg0) ; } else { /* empty */ } /* end of [if] */ tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_lst (tmp525, tmp529, 1, tmp553, tmp556) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: __ats_lab_109_1: /* tmp564 = */ prerr_error3_loc_02089_ (tmp525) ; /* tmp565 = */ atspre_prerr_string (ATSstrcst(": the list pattern is ill-typed.")) ; /* tmp566 = */ atspre_prerr_newline () ; tmp567 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp569 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp569)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp569, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp569, atslab_1, tmp567) ; /* tmp568 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp569) ; tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (tmp525, tmp529) ; break ; } while (0) ; return (tmp524) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_lst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 32893(line=1431, offs=3) -- 33545(line=1461, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_refas (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; // ATSlocal_void (tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; // ATSlocal_void (tmp582) ; // ATSlocal_void (tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_ptr_type, tmp585) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_refas: tmp571 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp572 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp572)->tag != 14) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 32944(line=1434, offs=5) -- 32980(line=1434, offs=41)") ; } tmp573 = ats_caselptrlab_mac(anairiats_sum_2, tmp572, atslab_0) ; tmp574 = ats_caselptrlab_mac(anairiats_sum_2, tmp572, atslab_1) ; tmp575 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp577 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp577, atslab_0, tmp575) ; /* tmp576 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp573, tmp577) ; tmp578 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp571, arg1) ; tmp579 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp574, tmp578) ; tmp580 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_refas (tmp571, tmp575, tmp573, tmp579) ; tmp581 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left (tmp579) ; do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (tmp581 == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: /* tmp583 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp573, tmp581) ; /* tmp582 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (tmp573, 0) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (tmp581 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: tmp585 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_1 (tmp578) ; tmp584 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp584, atslab_0, tmp585) ; /* tmp582 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp573, tmp584) ; break ; } while (0) ; tmp570 = tmp580 ; return (tmp570) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_refas] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 33607(line=1467, offs=5) -- 34076(line=1485, offs=4) */ ATSstaticdec() ats_void_type auxerr1_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; // ATSlocal_void (tmp589) ; // ATSlocal_void (tmp590) ; // ATSlocal_void (tmp591) ; // ATSlocal_void (tmp592) ; // ATSlocal_void (tmp593) ; // ATSlocal_void (tmp594) ; // ATSlocal_void (tmp595) ; // ATSlocal_void (tmp596) ; __ats_lab_auxerr1_49: tmp587 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg1) ; tmp588 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg2) ; /* tmp589 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp590 = */ atspre_prerr_string (ATSstrcst(": the static variable [")) ; /* tmp591 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2var (arg1) ; /* tmp592 = */ atspre_prerr_string (ATSstrcst("] is of the sort [")) ; /* tmp593 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp587) ; /* tmp594 = */ atspre_prerr_string (ATSstrcst("] but it is bound to a term of the sort [")) ; /* tmp595 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp588) ; /* tmp596 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp586 = */ atspre_prerr_newline () ; return /* (tmp586) */ ; } /* end of [auxerr1_49] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 34104(line=1487, offs=5) -- 34362(line=1498, offs=4) */ ATSstaticdec() ats_void_type auxerr2_50 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp597) ; // ATSlocal_void (tmp598) ; // ATSlocal_void (tmp599) ; // ATSlocal_void (tmp600) ; // ATSlocal_void (tmp601) ; __ats_lab_auxerr2_50: /* tmp598 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp599 = */ atspre_prerr_string (ATSstrcst(": there is no binding for the static variable [")) ; /* tmp600 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2var (arg1) ; /* tmp601 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp597 = */ atspre_prerr_newline () ; return /* (tmp597) */ ; } /* end of [auxerr2_50] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 34390(line=1500, offs=5) -- 35500(line=1542, offs=4) */ ATSstaticdec() ats_void_type auxbind_51 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_bool_type, tmp610) ; ATSlocal (ats_bool_type, tmp612) ; ATSlocal (ats_int_type, tmp613) ; // ATSlocal_void (tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; // ATSlocal_void (tmp616) ; ATSlocal (ats_int_type, tmp617) ; // ATSlocal_void (tmp618) ; __ats_lab_auxbind_51: do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_115_0 ; } __ats_lab_112_1: tmp603 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp604 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp605 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp606 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ; tmp607 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp603) ; tmp608 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp605) ; /* ats_ptr_type tmp609 ; */ tmp609 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var_srt (tmp608, tmp603) ; tmp610 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp608, tmp607) ; tmp612 = atspre_neg_bool (tmp610) ; if (tmp612) { tmp613 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp613 ; /* tmp614 = */ auxerr1_49 (arg0, tmp603, tmp605) ; tmp615 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp608) ; tmp609 = tmp615 ; } else { /* empty */ } /* end of [if] */ /* tmp616 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg1, tmp605, tmp609) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp604 ; arg3 = tmp606 ; arg4 = arg4 ; goto __ats_lab_auxbind_51 ; // tail call break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: tmp617 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp617 ; /* tmp618 = */ auxerr2_50 (arg0, tmp603) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp604 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_auxbind_51 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_115_1: do { /* branch: __ats_lab_116 */ __ats_lab_116_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; } __ats_lab_116_1: arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_auxbind_51 ; // tail call break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_117_1: break ; } while (0) ; break ; } while (0) ; return /* (tmp602) */ ; } /* end of [auxbind_51] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 35572(line=1548, offs=3) -- 36674(line=1584, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_exist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp619) ; ATSlocal (ats_ptr_type, tmp620) ; ATSlocal (ats_ptr_type, tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; ATSlocal (ats_ptr_type, tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_int_type, tmp630) ; // ATSlocal_void (tmp631) ; // ATSlocal_void (tmp632) ; ATSlocal (ats_bool_type, tmp633) ; ATSlocal (ats_ptr_type, tmp634) ; // ATSlocal_void (tmp635) ; ATSlocal (ats_ptr_type, tmp636) ; // ATSlocal_void (tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; // ATSlocal_void (tmp639) ; ATSlocal (ats_ptr_type, tmp640) ; // ATSlocal_void (tmp641) ; // ATSlocal_void (tmp642) ; // ATSlocal_void (tmp643) ; // ATSlocal_void (tmp644) ; // ATSlocal_void (tmp645) ; // ATSlocal_void (tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_exist: tmp620 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp621 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp621)->tag != 15) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 35623(line=1551, offs=5) -- 35660(line=1551, offs=42)") ; } tmp622 = ats_caselptrlab_mac(anairiats_sum_2, tmp621, atslab_0) ; tmp623 = ats_caselptrlab_mac(anairiats_sum_2, tmp621, atslab_1) ; tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp625 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp624), atslab_s2exp_node) ; do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp625)->tag != 27) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp626 = ats_caselptrlab_mac(anairiats_sum_15, tmp625, atslab_0) ; tmp627 = ats_caselptrlab_mac(anairiats_sum_15, tmp625, atslab_1) ; tmp628 = ats_caselptrlab_mac(anairiats_sum_15, tmp625, atslab_2) ; /* ats_ptr_type tmp629 ; */ tmp629 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; /* ats_int_type tmp630 ; */ tmp630 = 0 ; /* tmp631 = */ auxbind_51 (tmp620, (&tmp629), tmp622, tmp626, (&tmp630)) ; tmp633 = atspre_gt_int_int (tmp630, 0) ; if (tmp633) { tmp634 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp634)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp634, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp634, atslab_1, tmp624) ; /* tmp632 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp634) ; } else { /* empty */ } /* end of [if] */ /* tmp635 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp622) ; tmp636 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp629, tmp627) ; /* tmp637 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt (tmp620, tmp636) ; tmp638 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp629, tmp628) ; /* tmp639 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp629) ; tmp640 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp623, tmp638) ; tmp619 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_exist (tmp620, tmp624, tmp622, tmp640) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: __ats_lab_119_1: /* tmp641 = */ prerr_error3_loc_02089_ (tmp620) ; /* tmp642 = */ atspre_prerr_string (ATSstrcst(": the pattern is given the type [")) ; /* tmp643 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp624) ; /* tmp644 = */ atspre_prerr_string (ATSstrcst("] but an existentially quantified type is expected.")) ; /* tmp645 = */ atspre_prerr_newline () ; tmp647 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp647)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp647, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp647, atslab_1, tmp624) ; /* tmp646 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp647) ; tmp619 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (tmp620, tmp624) ; break ; } while (0) ; return (tmp619) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_exist] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 36775(line=1592, offs=3) -- 37795(line=1628, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_vbox (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp648) ; ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; ATSlocal (ats_ptr_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; ATSlocal (ats_bool_type, tmp657) ; // ATSlocal_void (tmp658) ; ATSlocal (ats_ptr_type, tmp659) ; // ATSlocal_void (tmp660) ; // ATSlocal_void (tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; ATSlocal (ats_ptr_type, tmp663) ; // ATSlocal_void (tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; // ATSlocal_void (tmp666) ; // ATSlocal_void (tmp667) ; // ATSlocal_void (tmp668) ; // ATSlocal_void (tmp669) ; // ATSlocal_void (tmp670) ; // ATSlocal_void (tmp671) ; ATSlocal (ats_ptr_type, tmp672) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_vbox: tmp649 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp650 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp650)->tag != 16) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 36826(line=1595, offs=5) -- 36856(line=1595, offs=35)") ; } tmp651 = ats_caselptrlab_mac(anairiats_sum_3, tmp650, atslab_0) ; tmp652 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp653 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_vbox_view_prop (arg1) ; do { /* branch: __ats_lab_120 */ __ats_lab_120_0: if (tmp653 == (ats_sum_ptr_type)0) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp654 = ats_caselptrlab_mac(anairiats_sum_9, tmp653, atslab_0) ; ATS_FREE(tmp653) ; tmp655 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp654) ; tmp656 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp655) ; tmp657 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp656) ; tmp659 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp659, atslab_0, tmp656) ; /* tmp658 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp651, tmp659) ; if (tmp657) { /* tmp661 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (tmp651, 0) ; tmp662 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp662)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp662, atslab_0, tmp656) ; /* tmp660 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (tmp651, tmp662) ; } else { /* empty */ } /* end of [if] */ tmp663 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp649, tmp655) ; tmp665 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp665, atslab_0, tmp663) ; /* tmp664 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp651, tmp665) ; tmp648 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_vbox (tmp649, tmp652, tmp651) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: // if (tmp653 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_121_1: /* tmp666 = */ prerr_error3_loc_02089_ (tmp649) ; /* tmp667 = */ atspre_prerr_string (ATSstrcst(": the pattern is given the type [")) ; /* tmp668 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp652) ; /* tmp669 = */ atspre_prerr_string (ATSstrcst("] but a vbox type is expected instead.")) ; /* tmp670 = */ atspre_prerr_newline () ; tmp672 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp672)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp672, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp672, atslab_1, tmp652) ; /* tmp671 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp672) ; tmp648 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (tmp649, tmp652) ; break ; } while (0) ; return (tmp648) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_vbox] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 37871(line=1634, offs=3) -- 38496(line=1656, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_ann (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; ATSlocal (ats_int_type, tmp679) ; // ATSlocal_void (tmp680) ; ATSlocal (ats_bool_type, tmp681) ; // ATSlocal_void (tmp682) ; // ATSlocal_void (tmp683) ; // ATSlocal_void (tmp684) ; // ATSlocal_void (tmp685) ; // ATSlocal_void (tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_ptr_type, tmp688) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_ann: tmp674 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp675 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp675)->tag != 17) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 37922(line=1637, offs=5) -- 37960(line=1637, offs=43)") ; } tmp676 = ats_caselptrlab_mac(anairiats_sum_2, tmp675, atslab_0) ; tmp677 = ats_caselptrlab_mac(anairiats_sum_2, tmp675, atslab_1) ; tmp678 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp674, arg1) ; tmp679 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (tmp674, tmp678, tmp677) ; tmp681 = atspre_gt_int_int (tmp679, 0) ; if (tmp681) { /* tmp682 = */ prerr_error3_loc_02089_ (tmp674) ; /* tmp683 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats"), ATSstrcst("p2at_trdn_ann")) ; /* tmp684 = */ atspre_prerr_string (ATSstrcst(": the pattern cannot be given the ascribed type.")) ; /* tmp685 = */ atspre_prerr_newline () ; /* tmp686 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp687 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp687)->tag = 11 ; ats_selptrset_mac(anairiats_sum_2, tmp687, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp687, atslab_1, tmp678) ; /* tmp680 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp687) ; } else { /* empty */ } /* end of [if] */ tmp688 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp676, tmp678) ; tmp673 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_ann (tmp674, tmp678, tmp688, tmp677) ; return (tmp673) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__p2at_trdn_ann] */ /* // /tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 38568(line=1662, offs=3) -- 39604(line=1706, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__guard_trdn (ats_ptr_type arg0, ats_bool_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp689) ; ATSlocal (ats_ptr_type, tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_bool_type, tmp698) ; ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_ptr_type, tmp700) ; ATSlocal (ats_int_type, tmp701) ; ATSlocal (ats_bool_type, tmp702) ; // ATSlocal_void (tmp703) ; // ATSlocal_void (tmp704) ; // ATSlocal_void (tmp705) ; // ATSlocal_void (tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; ATSlocal (ats_ptr_type, tmp708) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__guard_trdn: tmp690 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg2) ; tmp691 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (arg1) ; tmp692 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp691) ; tmp693 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_index_t0ype (tmp691) ; tmp694 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (arg0, tmp690) ; tmp695 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp694), atslab_s2exp_node) ; do { /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp695)->tag != 17) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp696 = ats_caselptrlab_mac(anairiats_sum_2, tmp695, atslab_0) ; tmp697 = ats_caselptrlab_mac(anairiats_sum_2, tmp695, atslab_1) ; tmp698 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype, tmp696) ; if (!tmp698) { goto __ats_lab_123_1 ; } if (tmp697 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_p2at.dats: 38941(line=1682, offs=9) -- 38980(line=1683, offs=30)") ; } tmp699 = ats_caselptrlab_mac(anairiats_sum_6, tmp697, atslab_0) ; tmp700 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp699) ; /* tmp689 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (arg0, tmp692, tmp700) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: __ats_lab_123_1: tmp701 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (arg0, tmp693, tmp694) ; tmp702 = atspre_gt_int_int (tmp701, 0) ; if (tmp702) { /* tmp703 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp704 = */ atspre_prerr_string (ATSstrcst(": the guard is ill-typed.")) ; /* tmp705 = */ atspre_prerr_newline () ; /* tmp706 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp707 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp690) ; tmp708 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp708)->tag = 83 ; ats_selptrset_mac(anairiats_sum_16, tmp708, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_16, tmp708, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_16, tmp708, atslab_2, tmp707) ; /* tmp689 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp708) ; } else { /* empty */ } /* end of [if] */ break ; } while (0) ; return /* (tmp689) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__guard_trdn] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_p2at_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_fixity_fxty_dats.c0000644000175000017500000022723713431250607023130 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" /* external codes at top */ /* type definitions */ typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_clo_ref_type atslab_2 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_clo_ref_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOClft_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCrgt_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYnon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYpre_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYpos_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMatm_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMopr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRinf_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpre_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpos_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__backslash_prec) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__infixtemp_prec) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__deref_prec_dyn) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__int_of_prec) (ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__compare_prec_prec) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_fxty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_precedence) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_associativity) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_non) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__selptr_fxty_dyn) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__deref_fxty_dyn) ; /* internal function declarations */ static ats_ptr_type f_12 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type f_12_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) ; static ats_ptr_type f_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_inf_11 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type aux_inf_11_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type aux_inf_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_ptr_type f_14 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type arg0) ; static ats_clo_ptr_type f_14_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_ptr_type f_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_pre_13 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_pre_13_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) ; static ats_ptr_type aux_pre_13_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type f_16 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type arg0) ; static ats_clo_ptr_type f_16_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_ptr_type f_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_pos_15 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_pos_15_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) ; static ats_ptr_type aux_pos_15_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type f2_19 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type f2_19_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) ; static ats_ptr_type f2_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f1_18 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type f1_18_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) ; static ats_ptr_type f1_18_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type erropr_21 (ats_ptr_type arg0) ; static ats_ptr_type errapp_22 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type err_reduce_23 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type process_24 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type process_24_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_ptr_type process_24_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type resolve_25 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type resolve_25_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_ptr_type resolve_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type resolve_opr_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_clo_ptr_type resolve_opr_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_ptr_type resolve_opr_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type resolve_app_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type resolve_app_27_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_ptr_type resolve_app_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type xreduce_28 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type xreduce_28_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_ptr_type xreduce_28_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_int_type arg0, ...) ; static ats_clo_ptr_type process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_ptr_type process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ...) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp15) ; ATSstatic (ats_ptr_type, statmp19) ; ATSstatic (ats_ptr_type, statmp20) ; ATSstatic (ats_ptr_type, statmp21) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 1663(line=54, offs=3) -- 2194(line=70, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_fxty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_int_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_int_type, tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_int_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_fxty: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("FXTYnon()")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("FXTYinf(")) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__int_of_prec (tmp1) ; /* tmp3 = */ atspre_fprint_int (arg0, tmp4) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("FXTYpre(")) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__int_of_prec (tmp5) ; /* tmp7 = */ atspre_fprint_int (arg0, tmp8) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (((ats_sum_ptr_type)arg1)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst("FXTYpos(")) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__int_of_prec (tmp9) ; /* tmp11 = */ atspre_fprint_int (arg0, tmp12) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_fxty] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 2241(line=72, offs=22) -- 2274(line=72, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__print_fxty (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__print_fxty: /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_fxty (stdout, arg0) ; return /* (tmp13) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__print_fxty] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 2296(line=73, offs=22) -- 2329(line=73, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prerr_fxty (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prerr_fxty: /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fprint_fxty (stderr, arg0) ; return /* (tmp14) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prerr_fxty] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 2403(line=78, offs=20) -- 2426(line=78, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_inf (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_inf: tmp16 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)tmp16)->tag = 1 ; ats_selptrset_mac(anairiats_sum_0, tmp16, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp16, atslab_1, arg1) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_inf] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 2446(line=79, offs=20) -- 2461(line=79, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pre (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pre: tmp17 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp17)->tag = 2 ; ats_selptrset_mac(anairiats_sum_1, tmp17, atslab_0, arg0) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pre] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 2481(line=80, offs=20) -- 2496(line=80, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pos (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pos: tmp18 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp18)->tag = 3 ; ats_selptrset_mac(anairiats_sum_1, tmp18, atslab_0, arg0) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pos] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 2680(line=93, offs=3) -- 2823(line=97, offs=29) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_get_prec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_get_prec: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp22 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp22, atslab_0, tmp23) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp22, atslab_0, tmp24) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (((ats_sum_ptr_type)arg0)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp22, atslab_0, tmp25) ; break ; } while (0) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_get_prec] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 2902(line=103, offs=21) -- 2973(line=105, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_associativity (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_associativity: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp26 = tmp27 ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp26 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0) ; break ; } while (0) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_associativity] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 3042(line=108, offs=18) -- 3142(line=110, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_precedence (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp28) ; ATSlocal (ats_int_type, tmp29) ; ATSlocal (ats_int_type, tmp30) ; ATSlocal (ats_int_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_precedence: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp28 = tmp29 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp28 = tmp30 ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp28 = tmp31 ; break ; } while (0) ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_precedence] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 3300(line=121, offs=11) -- 3360(line=121, offs=71) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app (ats_ptr_type arg0, ats_clo_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app: tmp34 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOClft_1) ; tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec) ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_1, tmp34) ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_2, arg1) ; tmp32 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp32)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp32, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp32, atslab_1, tmp33) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 3579(line=137, offs=8) -- 3740(line=141, offs=8) */ ATSstaticdec() ats_ptr_type f_12 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab_f_12: tmp40 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg0) ; tmp41 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg1) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp40, tmp41) ; tmp43 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp43, atslab_0, arg0) ; tmp44 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_7, tmp43), atslab_1) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp45, atslab_0, arg1) ; ats_ptrget_mac(ats_ptr_type, tmp44) = tmp45 ; tmp44 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_7, tmp45), atslab_1) ; tmp45 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp44) = tmp45 ; tmp42 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(env1))) (env1, tmp39, env2, tmp39, tmp43) ; tmp38 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp38)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp38, atslab_0, tmp42) ; return (tmp38) ; } /* end of [f_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; ats_ptr_type closure_env_2 ; } f_12_closure_type ; ats_ptr_type f_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return f_12 (((f_12_closure_type*)cloptr)->closure_env_0, ((f_12_closure_type*)cloptr)->closure_env_1, ((f_12_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type f_12_closure_init (f_12_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&f_12_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type f_12_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { f_12_closure_type *p_clo = ATS_MALLOC(sizeof(f_12_closure_type)) ; f_12_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 3503(line=134, offs=6) -- 3811(line=144, offs=6) */ ATSstaticdec() ats_ptr_type aux_inf_11 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab_aux_inf_11: tmp46 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg0) ; tmp47 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp47)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp47, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp47, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_3, tmp47, atslab_2, f_12_closure_make (env0, env1, arg0)) ; tmp37 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp37)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp37, atslab_0, tmp46) ; ats_selptrset_mac(anairiats_sum_5, tmp37, atslab_1, tmp47) ; return (tmp37) ; } /* end of [aux_inf_11] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_inf_11_closure_type ; ats_ptr_type aux_inf_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { return aux_inf_11 (((aux_inf_11_closure_type*)cloptr)->closure_env_0, ((aux_inf_11_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type aux_inf_11_closure_init (aux_inf_11_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_inf_11_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_inf_11_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_inf_11_closure_type *p_clo = ATS_MALLOC(sizeof(aux_inf_11_closure_type)) ; aux_inf_11_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 3906(line=149, offs=8) -- 4079(line=154, offs=8) */ ATSstaticdec() ats_ptr_type f_14 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab_f_14: tmp50 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg0) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env2, tmp50) ; tmp53 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp53, atslab_0, arg0) ; tmp54 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_7, tmp53), atslab_1) ; tmp55 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp54) = tmp55 ; tmp52 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(env1))) (env1, tmp51, env3, tmp50, tmp53) ; tmp49 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp49)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp49, atslab_0, tmp52) ; return (tmp49) ; } /* end of [f_14] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } f_14_closure_type ; ats_ptr_type f_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_14 (((f_14_closure_type*)cloptr)->closure_env_0, ((f_14_closure_type*)cloptr)->closure_env_1, ((f_14_closure_type*)cloptr)->closure_env_2, ((f_14_closure_type*)cloptr)->closure_env_3, arg0) ; } /* end of function */ ATSinline() ats_void_type f_14_closure_init (f_14_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&f_14_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type f_14_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3) { f_14_closure_type *p_clo = ATS_MALLOC(sizeof(f_14_closure_type)) ; f_14_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 3840(line=146, offs=6) -- 4147(line=157, offs=6) */ ATSstaticdec() ats_ptr_type aux_pre_13 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab_aux_pre_13: tmp56 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg0) ; tmp57 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp57)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp57, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp57, atslab_1, f_14_closure_make (env0, env1, env2, arg0)) ; tmp48 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp48)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp48, atslab_0, tmp56) ; ats_selptrset_mac(anairiats_sum_5, tmp48, atslab_1, tmp57) ; return (tmp48) ; } /* end of [aux_pre_13] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_pre_13_closure_type ; ats_ptr_type aux_pre_13_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { return aux_pre_13 (((aux_pre_13_closure_type*)cloptr)->closure_env_0, ((aux_pre_13_closure_type*)cloptr)->closure_env_1, ((aux_pre_13_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_pre_13_closure_init (aux_pre_13_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_pre_13_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_pre_13_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { aux_pre_13_closure_type *p_clo = ATS_MALLOC(sizeof(aux_pre_13_closure_type)) ; aux_pre_13_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 4242(line=162, offs=8) -- 4415(line=167, offs=8) */ ATSstaticdec() ats_ptr_type f_16 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab_f_16: tmp60 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg0) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp60, env2) ; tmp63 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp63, atslab_0, arg0) ; tmp64 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_7, tmp63), atslab_1) ; tmp65 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp64) = tmp65 ; tmp62 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(env1))) (env1, tmp61, env3, tmp60, tmp63) ; tmp59 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp59)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp59, atslab_0, tmp62) ; return (tmp59) ; } /* end of [f_16] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } f_16_closure_type ; ats_ptr_type f_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_16 (((f_16_closure_type*)cloptr)->closure_env_0, ((f_16_closure_type*)cloptr)->closure_env_1, ((f_16_closure_type*)cloptr)->closure_env_2, ((f_16_closure_type*)cloptr)->closure_env_3, arg0) ; } /* end of function */ ATSinline() ats_void_type f_16_closure_init (f_16_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&f_16_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type f_16_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type env3) { f_16_closure_type *p_clo = ATS_MALLOC(sizeof(f_16_closure_type)) ; f_16_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 4176(line=159, offs=6) -- 4483(line=170, offs=6) */ ATSstaticdec() ats_ptr_type aux_pos_15 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab_aux_pos_15: tmp66 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg0) ; tmp67 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp67)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp67, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp67, atslab_1, f_16_closure_make (env0, env1, env2, arg0)) ; tmp58 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp58)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp58, atslab_0, tmp66) ; ats_selptrset_mac(anairiats_sum_5, tmp58, atslab_1, tmp67) ; return (tmp58) ; } /* end of [aux_pos_15] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_pos_15_closure_type ; ats_ptr_type aux_pos_15_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { return aux_pos_15 (((aux_pos_15_closure_type*)cloptr)->closure_env_0, ((aux_pos_15_closure_type*)cloptr)->closure_env_1, ((aux_pos_15_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_pos_15_closure_init (aux_pos_15_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_pos_15_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_pos_15_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { aux_pos_15_closure_type *p_clo = ATS_MALLOC(sizeof(aux_pos_15_closure_type)) ; aux_pos_15_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 3433(line=128, offs=16) -- 4669(line=180, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make (ats_ptr_type arg0, ats_clo_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_int_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make: tmp36 = ((ats_ptr_type(*)(ats_ptr_type))arg0) (arg2) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg3)->tag != 0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp35 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp35)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp35, atslab_0, arg2) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg3)->tag != 1) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_0, arg3, atslab_0) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_0, arg3, atslab_1) ; tmp35 = aux_inf_11 (arg0, arg1, arg2, tmp68, tmp69) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg3)->tag != 2) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp35 = aux_pre_13 (arg0, arg1, tmp36, arg2, tmp70) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (((ats_sum_ptr_type)arg3)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp35 = aux_pos_15 (arg0, arg1, tmp36, arg2, tmp71) ; break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 4872(line=189, offs=8) -- 5032(line=193, offs=8) */ ATSstaticdec() ats_ptr_type f2_19 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab_f2_19: tmp78 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg0) ; tmp79 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg1) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp78, tmp79) ; tmp81 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp81, atslab_0, arg0) ; tmp82 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_7, tmp81), atslab_1) ; tmp83 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp83, atslab_0, arg1) ; ats_ptrget_mac(ats_ptr_type, tmp82) = tmp83 ; tmp82 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_7, tmp83), atslab_1) ; tmp83 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp82) = tmp83 ; tmp80 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(env1))) (env1, tmp77, env2, tmp77, tmp81) ; tmp76 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp76)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp76, atslab_0, tmp80) ; return (tmp76) ; } /* end of [f2_19] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; ats_ptr_type closure_env_2 ; } f2_19_closure_type ; ats_ptr_type f2_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return f2_19 (((f2_19_closure_type*)cloptr)->closure_env_0, ((f2_19_closure_type*)cloptr)->closure_env_1, ((f2_19_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type f2_19_closure_init (f2_19_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&f2_19_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type f2_19_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { f2_19_closure_type *p_clo = ATS_MALLOC(sizeof(f2_19_closure_type)) ; f2_19_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 4781(line=187, offs=6) -- 5118(line=196, offs=6) */ ATSstaticdec() ats_ptr_type f1_18 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab_f1_18: tmp75 = ((ats_ptr_type(*)(ats_ptr_type))env0) (arg0) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env2, tmp75) ; tmp85 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0) ; tmp84 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp84)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp84, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__infixtemp_prec) ; ats_selptrset_mac(anairiats_sum_3, tmp84, atslab_1, tmp85) ; ats_selptrset_mac(anairiats_sum_3, tmp84, atslab_2, f2_19_closure_make (env0, env1, arg0)) ; tmp73 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp73)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp73, atslab_0, tmp74) ; ats_selptrset_mac(anairiats_sum_5, tmp73, atslab_1, tmp84) ; return (tmp73) ; } /* end of [f1_18] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; ats_ptr_type closure_env_2 ; } f1_18_closure_type ; ats_ptr_type f1_18_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f1_18 (((f1_18_closure_type*)cloptr)->closure_env_0, ((f1_18_closure_type*)cloptr)->closure_env_1, ((f1_18_closure_type*)cloptr)->closure_env_2, arg0) ; } /* end of function */ ATSinline() ats_void_type f1_18_closure_init (f1_18_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&f1_18_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type f1_18_closure_make (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type env2) { f1_18_closure_type *p_clo = ATS_MALLOC(sizeof(f1_18_closure_type)) ; f1_18_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 4752(line=186, offs=7) -- 5188(line=199, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash (ats_ptr_type arg0, ats_clo_ref_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash: tmp86 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp86)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp86, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__backslash_prec) ; ats_selptrset_mac(anairiats_sum_4, tmp86, atslab_1, f1_18_closure_make (arg0, arg1, arg2)) ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp72)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp72, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp72, atslab_1, tmp86) ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 5547(line=222, offs=4) -- 5770(line=231, offs=4) */ ATSstaticdec() ats_ptr_type erropr_21 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab_erropr_21: /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp90 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; /* tmp91 = */ atspre_prerr_string (ATSstrcst(": operator fixity cannot be resolved.")) ; /* tmp92 = */ atspre_prerr_newline () ; tmp93 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN) ; /* tmp88 = */ ats_raise_exn (tmp93) ; return (tmp88) ; } /* end of [erropr_21] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 5796(line=233, offs=4) -- 6098(line=245, offs=4) */ ATSstaticdec() ats_ptr_type errapp_22 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab_errapp_22: if (((ats_sum_ptr_type)arg1)->tag != 0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 5857(line=236, offs=7) -- 5873(line=236, offs=23)") ; } tmp95 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp97 = ((ats_ptr_type(*)(ats_ptr_type))arg0) (tmp95) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp97) ; /* tmp98 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; /* tmp99 = */ atspre_prerr_string (ATSstrcst(": application fixity cannot be resolved.")) ; /* tmp100 = */ atspre_prerr_newline () ; tmp101 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN) ; /* tmp94 = */ ats_raise_exn (tmp101) ; return (tmp94) ; } /* end of [errapp_22] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 6124(line=247, offs=4) -- 6365(line=256, offs=4) */ ATSstaticdec() ats_ptr_type err_reduce_23 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab_err_reduce_23: /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp104 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; /* tmp105 = */ atspre_prerr_string (ATSstrcst(": operator fixity cannot be resolved.")) ; /* tmp106 = */ atspre_prerr_newline () ; tmp107 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN) ; /* tmp102 = */ ats_raise_exn (tmp107) ; return (tmp102) ; } /* end of [err_reduce_23] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 6434(line=261, offs=5) -- 6621(line=270, offs=2) */ ATSstaticdec() ats_ptr_type process_24 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; tmp204 = process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28 (env0, env1, env2, 0, arg0, arg1) ; return (tmp204) ; } /* end of [process_24] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } process_24_closure_type ; ats_ptr_type process_24_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return process_24 (((process_24_closure_type*)cloptr)->closure_env_0, ((process_24_closure_type*)cloptr)->closure_env_1, ((process_24_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type process_24_closure_init (process_24_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&process_24_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type process_24_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { process_24_closure_type *p_clo = ATS_MALLOC(sizeof(process_24_closure_type)) ; process_24_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 6652(line=272, offs=5) -- 6957(line=283, offs=61) */ ATSstaticdec() ats_ptr_type resolve_25 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp205) ; tmp205 = process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28 (env0, env1, env2, 1, arg0, arg1, arg2) ; return (tmp205) ; } /* end of [resolve_25] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } resolve_25_closure_type ; ats_ptr_type resolve_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { return resolve_25 (((resolve_25_closure_type*)cloptr)->closure_env_0, ((resolve_25_closure_type*)cloptr)->closure_env_1, ((resolve_25_closure_type*)cloptr)->closure_env_2, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type resolve_25_closure_init (resolve_25_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&resolve_25_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type resolve_25_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { resolve_25_closure_type *p_clo = ATS_MALLOC(sizeof(resolve_25_closure_type)) ; resolve_25_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 6988(line=286, offs=5) -- 8191(line=322, offs=2) */ ATSstaticdec() ats_ptr_type resolve_opr_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp206) ; tmp206 = process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28 (env0, env1, env2, 2, arg0, arg1, arg2, arg3, arg4) ; return (tmp206) ; } /* end of [resolve_opr_26] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } resolve_opr_26_closure_type ; ats_ptr_type resolve_opr_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { return resolve_opr_26 (((resolve_opr_26_closure_type*)cloptr)->closure_env_0, ((resolve_opr_26_closure_type*)cloptr)->closure_env_1, ((resolve_opr_26_closure_type*)cloptr)->closure_env_2, arg0, arg1, arg2, arg3, arg4) ; } /* end of function */ ATSinline() ats_void_type resolve_opr_26_closure_init (resolve_opr_26_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&resolve_opr_26_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type resolve_opr_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { resolve_opr_26_closure_type *p_clo = ATS_MALLOC(sizeof(resolve_opr_26_closure_type)) ; resolve_opr_26_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 8226(line=324, offs=5) -- 8903(line=346, offs=2) */ ATSstaticdec() ats_ptr_type resolve_app_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; tmp207 = process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28 (env0, env1, env2, 3, arg0, arg1, arg2) ; return (tmp207) ; } /* end of [resolve_app_27] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } resolve_app_27_closure_type ; ats_ptr_type resolve_app_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { return resolve_app_27 (((resolve_app_27_closure_type*)cloptr)->closure_env_0, ((resolve_app_27_closure_type*)cloptr)->closure_env_1, ((resolve_app_27_closure_type*)cloptr)->closure_env_2, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type resolve_app_27_closure_init (resolve_app_27_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&resolve_app_27_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type resolve_app_27_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { resolve_app_27_closure_type *p_clo = ATS_MALLOC(sizeof(resolve_app_27_closure_type)) ; resolve_app_27_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 8938(line=349, offs=1) -- 9319(line=364, offs=2) */ ATSstaticdec() ats_ptr_type xreduce_28 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp208) ; tmp208 = process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28 (env0, env1, env2, 4, arg0, arg1) ; return (tmp208) ; } /* end of [xreduce_28] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } xreduce_28_closure_type ; ats_ptr_type xreduce_28_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return xreduce_28 (((xreduce_28_closure_type*)cloptr)->closure_env_0, ((xreduce_28_closure_type*)cloptr)->closure_env_1, ((xreduce_28_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type xreduce_28_closure_init (xreduce_28_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&xreduce_28_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type xreduce_28_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { xreduce_28_closure_type *p_clo = ATS_MALLOC(sizeof(xreduce_28_closure_type)) ; xreduce_28_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 6434(line=261, offs=5) -- 9319(line=364, offs=2) */ ATSstaticdec() ats_ptr_type process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_int_type arg0, ...) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_int_type, tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_int_type, tmp154) ; ATSlocal (ats_int_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_int_type, tmp165) ; ATSlocal (ats_int_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_clo_ref_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_clo_ref_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_clo_ref_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; va_list funarg ; switch (arg0) { case 0: va_start(funarg, arg0) ; tmp108 = va_arg(funarg, ats_ptr_type) ; tmp109 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_process_24 ; case 1: va_start(funarg, arg0) ; tmp110 = va_arg(funarg, ats_ptr_type) ; tmp111 = va_arg(funarg, ats_ptr_type) ; tmp112 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_resolve_25 ; case 2: va_start(funarg, arg0) ; tmp113 = va_arg(funarg, ats_ptr_type) ; tmp114 = va_arg(funarg, ats_ptr_type) ; tmp115 = va_arg(funarg, ats_ptr_type) ; tmp116 = va_arg(funarg, ats_ptr_type) ; tmp117 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_resolve_opr_26 ; case 3: va_start(funarg, arg0) ; tmp118 = va_arg(funarg, ats_ptr_type) ; tmp119 = va_arg(funarg, ats_ptr_type) ; tmp120 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_resolve_app_27 ; case 4: va_start(funarg, arg0) ; tmp121 = va_arg(funarg, ats_ptr_type) ; tmp122 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_xreduce_28 ; default: exit(1) ; /* deadcode */ } /* end of switch */ ATSlocal (va_list, arg1) ; va_start(arg1, arg0) ; __ats_lab_process_24: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (tmp108 != (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: if (tmp109 == (ats_sum_ptr_type)0) { goto __ats_lab_18_1 ; } tmp124 = ats_caselptrlab_mac(anairiats_sum_7, tmp109, atslab_0) ; if (((ats_sum_ptr_type)tmp124)->tag != 0) { goto __ats_lab_18_1 ; } tmp125 = ats_caselptrlab_mac(anairiats_sum_7, tmp109, atslab_1) ; if (tmp125 != (ats_sum_ptr_type)0) { goto __ats_lab_18_1 ; } __ats_lab_17_2: tmp126 = ats_caselptrlab_mac(anairiats_sum_6, tmp124, atslab_0) ; tmp123 = tmp126 ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (tmp108 != (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: __ats_lab_18_2: tmp127 = (ats_sum_ptr_type)0 ; tmp121 = tmp127 ; tmp122 = tmp109 ; goto __ats_lab_xreduce_28 ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (tmp108 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: __ats_lab_19_2: tmp128 = ats_caselptrlab_mac(anairiats_sum_7, tmp108, atslab_0) ; tmp129 = ats_caselptrlab_mac(anairiats_sum_7, tmp108, atslab_1) ; tmp110 = tmp129 ; tmp111 = tmp128 ; tmp112 = tmp109 ; goto __ats_lab_resolve_25 ; // tail call break ; } while (0) ; return tmp123 ; __ats_lab_resolve_25: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp111)->tag != 0) { goto __ats_lab_23_0 ; } __ats_lab_20_1: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (tmp112 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } tmp131 = ats_caselptrlab_mac(anairiats_sum_7, tmp112, atslab_0) ; if (((ats_sum_ptr_type)tmp131)->tag != 0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp118 = tmp110 ; tmp119 = tmp111 ; tmp120 = tmp112 ; goto __ats_lab_resolve_app_27 ; // tail call break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp132 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp132, atslab_0, tmp111) ; ats_selptrset_mac(anairiats_sum_7, tmp132, atslab_1, tmp112) ; tmp108 = tmp110 ; tmp109 = tmp132 ; goto __ats_lab_process_24 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (((ats_sum_ptr_type)tmp111)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp133 = ats_caselptrlab_mac(anairiats_sum_5, tmp111, atslab_0) ; tmp134 = ats_caselptrlab_mac(anairiats_sum_5, tmp111, atslab_1) ; tmp113 = tmp133 ; tmp114 = tmp134 ; tmp115 = tmp110 ; tmp116 = tmp111 ; tmp117 = tmp112 ; goto __ats_lab_resolve_opr_26 ; // tail call break ; } while (0) ; return tmp130 ; __ats_lab_resolve_opr_26: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp114)->tag != 0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: if (tmp117 == (ats_sum_ptr_type)0) { goto __ats_lab_25_1 ; } tmp136 = ats_caselptrlab_mac(anairiats_sum_7, tmp117, atslab_1) ; if (tmp136 != (ats_sum_ptr_type)0) { goto __ats_lab_25_1 ; } __ats_lab_24_2: tmp137 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp137, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_7, tmp137, atslab_1, tmp117) ; tmp108 = tmp115 ; tmp109 = tmp137 ; goto __ats_lab_process_24 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp114)->tag != 0) { goto __ats_lab_32_0 ; } __ats_lab_25_1: if (tmp117 == (ats_sum_ptr_type)0) { goto __ats_lab_38_1 ; } tmp138 = ats_caselptrlab_mac(anairiats_sum_7, tmp117, atslab_1) ; if (tmp138 == (ats_sum_ptr_type)0) { goto __ats_lab_38_1 ; } tmp139 = ats_caselptrlab_mac(anairiats_sum_7, tmp138, atslab_0) ; if (((ats_sum_ptr_type)tmp139)->tag != 1) { goto __ats_lab_38_1 ; } __ats_lab_25_2: tmp140 = ats_caselptrlab_mac(anairiats_sum_5, tmp139, atslab_1) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_precedence (tmp114) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_precedence (tmp140) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__compare_prec_prec (tmp141, tmp142) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (tmp143 != 1) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp144 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp144, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_7, tmp144, atslab_1, tmp117) ; tmp108 = tmp115 ; tmp109 = tmp144 ; goto __ats_lab_process_24 ; // tail call break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp143 != -1) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp145 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp145, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_7, tmp145, atslab_1, tmp115) ; tmp121 = tmp145 ; tmp122 = tmp117 ; goto __ats_lab_xreduce_28 ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_associativity (tmp114) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_associativity (tmp140) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp146)->tag != 1) { goto __ats_lab_30_0 ; } __ats_lab_29_1: if (((ats_sum_ptr_type)tmp147)->tag != 1) { goto __ats_lab_31_1 ; } __ats_lab_29_2: tmp148 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp148, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_7, tmp148, atslab_1, tmp115) ; tmp121 = tmp148 ; tmp122 = tmp117 ; goto __ats_lab_xreduce_28 ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp146)->tag != 2) { goto __ats_lab_31_0 ; } __ats_lab_30_1: if (((ats_sum_ptr_type)tmp147)->tag != 2) { goto __ats_lab_31_1 ; } __ats_lab_30_2: tmp149 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp149, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_7, tmp149, atslab_1, tmp117) ; tmp108 = tmp115 ; tmp109 = tmp149 ; goto __ats_lab_process_24 ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: __ats_lab_31_2: tmp135 = erropr_21 (tmp113) ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp114)->tag != 1) { goto __ats_lab_33_0 ; } __ats_lab_32_1: __ats_lab_32_2: tmp150 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp150, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_7, tmp150, atslab_1, tmp117) ; tmp108 = tmp115 ; tmp109 = tmp150 ; goto __ats_lab_process_24 ; // tail call break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp114)->tag != 2) { goto __ats_lab_37_0 ; } __ats_lab_33_1: if (tmp117 == (ats_sum_ptr_type)0) { goto __ats_lab_37_1 ; } tmp151 = ats_caselptrlab_mac(anairiats_sum_7, tmp117, atslab_1) ; if (tmp151 == (ats_sum_ptr_type)0) { goto __ats_lab_37_1 ; } tmp152 = ats_caselptrlab_mac(anairiats_sum_7, tmp151, atslab_0) ; if (((ats_sum_ptr_type)tmp152)->tag != 1) { goto __ats_lab_37_1 ; } __ats_lab_33_2: tmp153 = ats_caselptrlab_mac(anairiats_sum_5, tmp152, atslab_1) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_precedence (tmp114) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_precedence (tmp153) ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__compare_prec_prec (tmp154, tmp155) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp156 != 1) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp157 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp157, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_7, tmp157, atslab_1, tmp117) ; tmp121 = tmp115 ; tmp122 = tmp157 ; goto __ats_lab_xreduce_28 ; // tail call break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (tmp156 != -1) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp158 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp158, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_7, tmp158, atslab_1, tmp115) ; tmp121 = tmp158 ; tmp122 = tmp117 ; goto __ats_lab_xreduce_28 ; // tail call break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp135 = erropr_21 (tmp113) ; break ; } while (0) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp114)->tag != 2) { goto __ats_lab_38_0 ; } __ats_lab_37_1: if (tmp117 == (ats_sum_ptr_type)0) { goto __ats_lab_38_1 ; } tmp159 = ats_caselptrlab_mac(anairiats_sum_7, tmp117, atslab_1) ; if (tmp159 != (ats_sum_ptr_type)0) { goto __ats_lab_38_1 ; } __ats_lab_37_2: tmp160 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp160, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_7, tmp160, atslab_1, tmp117) ; tmp121 = tmp115 ; tmp122 = tmp160 ; goto __ats_lab_xreduce_28 ; // tail call break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: __ats_lab_38_2: tmp135 = erropr_21 (tmp113) ; break ; } while (0) ; return tmp135 ; __ats_lab_resolve_app_27: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (tmp120 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } tmp162 = ats_caselptrlab_mac(anairiats_sum_7, tmp120, atslab_1) ; if (tmp162 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } tmp163 = ats_caselptrlab_mac(anairiats_sum_7, tmp162, atslab_0) ; if (((ats_sum_ptr_type)tmp163)->tag != 1) { goto __ats_lab_45_0 ; } __ats_lab_39_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_5, tmp163, atslab_1) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_precedence (tmp164) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__compare_prec_prec (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__app_prec, tmp165) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (tmp166 != 1) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp168 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp168, atslab_0, env2) ; ats_selptrset_mac(anairiats_sum_7, tmp168, atslab_1, tmp120) ; tmp167 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp167, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_7, tmp167, atslab_1, tmp168) ; tmp108 = tmp118 ; tmp109 = tmp167 ; goto __ats_lab_process_24 ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (tmp166 != -1) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp169 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp169, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_7, tmp169, atslab_1, tmp118) ; tmp121 = tmp169 ; tmp122 = tmp120 ; goto __ats_lab_xreduce_28 ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_associativity (tmp164) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp170)->tag != 1) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp171 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp171, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_7, tmp171, atslab_1, tmp118) ; tmp121 = tmp171 ; tmp122 = tmp120 ; goto __ats_lab_xreduce_28 ; // tail call break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: tmp161 = errapp_22 (env1, tmp119) ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (tmp120 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } tmp172 = ats_caselptrlab_mac(anairiats_sum_7, tmp120, atslab_1) ; if (tmp172 != (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp174 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp174, atslab_0, env2) ; ats_selptrset_mac(anairiats_sum_7, tmp174, atslab_1, tmp120) ; tmp173 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp173, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_7, tmp173, atslab_1, tmp174) ; tmp108 = tmp118 ; tmp109 = tmp173 ; goto __ats_lab_process_24 ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp161 = errapp_22 (env1, tmp119) ; break ; } while (0) ; return tmp161 ; __ats_lab_xreduce_28: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (tmp122 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } tmp176 = ats_caselptrlab_mac(anairiats_sum_7, tmp122, atslab_0) ; if (((ats_sum_ptr_type)tmp176)->tag != 0) { goto __ats_lab_48_0 ; } tmp177 = ats_caselptrlab_mac(anairiats_sum_7, tmp122, atslab_1) ; if (tmp177 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } tmp178 = ats_caselptrlab_mac(anairiats_sum_7, tmp177, atslab_0) ; if (((ats_sum_ptr_type)tmp178)->tag != 1) { goto __ats_lab_48_0 ; } tmp179 = ats_caselptrlab_mac(anairiats_sum_5, tmp178, atslab_1) ; if (((ats_sum_ptr_type)tmp179)->tag != 0) { goto __ats_lab_48_0 ; } tmp180 = ats_caselptrlab_mac(anairiats_sum_7, tmp177, atslab_1) ; if (tmp180 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } tmp181 = ats_caselptrlab_mac(anairiats_sum_7, tmp180, atslab_0) ; if (((ats_sum_ptr_type)tmp181)->tag != 0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp182 = ats_caselptrlab_mac(anairiats_sum_6, tmp176, atslab_0) ; tmp183 = ats_caselptrlab_mac(anairiats_sum_3, tmp179, atslab_2) ; tmp184 = ats_caselptrlab_mac(anairiats_sum_6, tmp181, atslab_0) ; tmp185 = ats_caselptrlab_mac(anairiats_sum_7, tmp180, atslab_1) ; tmp186 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(tmp183))) (tmp183, tmp184, tmp182) ; tmp110 = tmp121 ; tmp111 = tmp186 ; tmp112 = tmp185 ; goto __ats_lab_resolve_25 ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (tmp122 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } tmp187 = ats_caselptrlab_mac(anairiats_sum_7, tmp122, atslab_0) ; if (((ats_sum_ptr_type)tmp187)->tag != 0) { goto __ats_lab_49_0 ; } tmp188 = ats_caselptrlab_mac(anairiats_sum_7, tmp122, atslab_1) ; if (tmp188 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } tmp189 = ats_caselptrlab_mac(anairiats_sum_7, tmp188, atslab_0) ; if (((ats_sum_ptr_type)tmp189)->tag != 1) { goto __ats_lab_49_0 ; } tmp190 = ats_caselptrlab_mac(anairiats_sum_5, tmp189, atslab_1) ; if (((ats_sum_ptr_type)tmp190)->tag != 1) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_6, tmp187, atslab_0) ; tmp192 = ats_caselptrlab_mac(anairiats_sum_4, tmp190, atslab_1) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_7, tmp188, atslab_1) ; tmp194 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(tmp192))) (tmp192, tmp191) ; tmp110 = tmp121 ; tmp111 = tmp194 ; tmp112 = tmp193 ; goto __ats_lab_resolve_25 ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (tmp122 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } tmp195 = ats_caselptrlab_mac(anairiats_sum_7, tmp122, atslab_0) ; if (((ats_sum_ptr_type)tmp195)->tag != 1) { goto __ats_lab_50_0 ; } tmp196 = ats_caselptrlab_mac(anairiats_sum_5, tmp195, atslab_1) ; if (((ats_sum_ptr_type)tmp196)->tag != 2) { goto __ats_lab_50_0 ; } tmp197 = ats_caselptrlab_mac(anairiats_sum_7, tmp122, atslab_1) ; if (tmp197 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } tmp198 = ats_caselptrlab_mac(anairiats_sum_7, tmp197, atslab_0) ; if (((ats_sum_ptr_type)tmp198)->tag != 0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_4, tmp196, atslab_1) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_6, tmp198, atslab_0) ; tmp201 = ats_caselptrlab_mac(anairiats_sum_7, tmp197, atslab_1) ; tmp202 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(tmp199))) (tmp199, tmp200) ; tmp110 = tmp121 ; tmp111 = tmp202 ; tmp112 = tmp201 ; goto __ats_lab_resolve_25 ; // tail call break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: __ats_lab_50_1: tmp175 = err_reduce_23 (env0, tmp122) ; break ; } while (0) ; return tmp175 ; return (tmp203) ; } /* end of [process_24_0resolve_25_0resolve_opr_26_0resolve_app_27_0xreduce_28] */ /* // /tmp/ATS-Postiats/src/pats_fixity_fxty.dats: 5397(line=211, offs=7) -- 9386(line=370, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp209) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve: tmp209 = (ats_sum_ptr_type)0 ; tmp87 = process_24 (arg0, arg1, arg2, arg3, tmp209) ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_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_fixity_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp15, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp19, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp20, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp21, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp15 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYnon_0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_non, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_non = statmp15 ; statmp20 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOClft_1) ; statmp19 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp19)->tag = 1 ; ats_selptrset_mac(anairiats_sum_0, statmp19, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec) ; ats_selptrset_mac(anairiats_sum_0, statmp19, atslab_1, statmp20) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__selptr_fxty_dyn, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__selptr_fxty_dyn = statmp19 ; statmp21 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp21)->tag = 2 ; ats_selptrset_mac(anairiats_sum_1, statmp21, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__deref_prec_dyn) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__deref_fxty_dyn, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__deref_fxty_dyn = statmp21 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_fixity_fxty_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_scst_dats.c0000644000175000017500000052404713431250607023163 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2cst_sym ; ats_ptr_type atslab_s2cst_loc ; ats_ptr_type atslab_s2cst_fil ; ats_ptr_type atslab_s2cst_srt ; ats_ptr_type atslab_s2cst_def ; ats_ptr_type atslab_s2cst_pack ; ats_ptr_type atslab_s2cst_isabs ; ats_bool_type atslab_s2cst_iscon ; ats_bool_type atslab_s2cst_isrec ; ats_ptr_type atslab_s2cst_isasp ; ats_ptr_type atslab_s2cst_iscpy ; ats_ptr_type atslab_s2cst_islst ; ats_ptr_type atslab_s2cst_arylst ; ats_ptr_type atslab_s2cst_argsrtss ; ats_ptr_type atslab_s2cst_dconlst ; ats_ptr_type atslab_s2cst_sup ; ats_ptr_type atslab_s2cst_supcls ; ats_ptr_type atslab_s2cst_sVarset ; ats_int_type atslab_s2cst_dstag ; ats_int_type atslab_s2cst_stamp ; ats_ptr_type atslab_s2cst_extdef ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_8 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_9 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_ilte) (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_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imax) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_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_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_global_2esats__the_PACKNAME_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2cst_stamp_make) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin_fun) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind_fun) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm_fun) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_bool_type, ats_bool_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil) () ; ATSextern_fun(ats_void_type, patsopts2cst_set_isabs) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2cstmap_type_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2cstset_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2cstset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2cst_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type loop_2 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type s2rt_get_arylst_0 (ats_ptr_type arg0) ; static ats_ptr_type ptr_alloc_01070_anairiats_rec_4 () ; static ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type list_is_sing_01298_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type list_is_pair_01299_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type aux_56 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type auxlst_57 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type aux_59 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type auxlst_60 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_66 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_66_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_66_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_int_type __ats_fun_69 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_69_closure_make () ; static ats_int_type __ats_fun_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_make_nil_03733_ () ; static ats_int_type compare_elt_elt_03732_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_74 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_74_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_74_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type funset_is_member_03740_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_rrotate_04124_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type avltree_lrotate_04107_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type insert_78 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_78_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type insert_78_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_03742_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type listize_83 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_listize_03757_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type linset_make_nil_03759_ () ; static ats_int_type compare_elt_elt_03758_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_88 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_88_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_88_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type linset_is_member_03764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_04381_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_04435_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_04411_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_92 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type insert_92_closure_make (ats_clo_ref_type env0) ; static ats_bool_type insert_92_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linset_insert_03768_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_98 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_free_03784_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type __ats_fun_99 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_99_closure_make () ; static ats_int_type __ats_fun_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funmap_make_nil_03791_ () ; static ats_int_type compare_key_key_03790_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ; static ats_ptr_type insert_104 (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_104_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) ; static ats_ptr_type insert_104_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funmap_insert_03798_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) ; static ats_bool_type search_110 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type search_110_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type search_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funmap_search_03796_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp174) ; ATSstatic (ats_ptr_type, statmp404) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_2 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; __ats_lab_loop_2: do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp7 = atspre_isucc (arg1) ; arg0 = tmp6 ; arg1 = tmp7 ; goto __ats_lab_loop_2 ; // tail call break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp5 = arg1 ; break ; } while (0) ; return (tmp5) ; } /* end of [loop_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp4) ; __ats_lab_list_length_01410_ats_ptr_type: tmp4 = loop_2 (arg0, 0) ; return (tmp4) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 3553(line=144, offs=1) -- 3791(line=156, offs=2) */ ATSstaticdec() ats_ptr_type s2rt_get_arylst_0 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_s2rt_get_arylst_0: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp3 = list_length_01410_ats_ptr_type (tmp1) ; tmp8 = s2rt_get_arylst_0 (tmp2) ; tmp0 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_0, tmp3) ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_1, tmp8) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp0 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp0) ; } /* end of [s2rt_get_arylst_0] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_4 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_ptr_alloc_01070_anairiats_rec_4: tmp13 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_4)) ; return (tmp13) ; } /* end of [ptr_alloc_01070_anairiats_rec_4] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 3905(line=164, offs=1) -- 5029(line=206, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_bool_type arg5, ats_bool_type arg6, ats_ptr_type arg7, ats_ptr_type arg8, ats_ptr_type arg9, ats_ptr_type arg10) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get () ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2cst_stamp_make () ; tmp12 = ptr_alloc_01070_anairiats_rec_4 () ; tmp14 = ats_selsin_mac(tmp12, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_sym) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_loc) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_fil) = arg2 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_srt) = arg3 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_def) = arg10 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_pack) = tmp10 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_isabs) = arg4 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_iscon) = arg5 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_isrec) = arg6 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_isasp) = arg7 ; tmp15 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_iscpy) = ats_castfn_mac(ats_ptr_type, tmp15) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_islst) = arg8 ; tmp16 = s2rt_get_arylst_0 (arg3) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_arylst) = tmp16 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_argsrtss) = arg9 ; tmp17 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_dconlst) = tmp17 ; tmp18 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_sup) = ats_castfn_mac(ats_ptr_type, tmp18) ; tmp19 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_supcls) = tmp19 ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil () ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_sVarset) = tmp20 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_dstag) = -1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_stamp) = tmp11 ; tmp21 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_extdef) = tmp21 ; tmp9 = atspre_ref_make_view_ptr (tmp14) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5098(line=211, offs=14) -- 5178(line=216, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym: tmp23 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp22 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp23), atslab_s2cst_sym) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5250(line=221, offs=14) -- 5330(line=226, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_loc: tmp25 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp24 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_s2cst_loc) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5402(line=231, offs=14) -- 5482(line=236, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_fil (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_fil: tmp27 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp26 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp27), atslab_s2cst_fil) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_fil] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5554(line=241, offs=14) -- 5635(line=246, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt: tmp29 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp28 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp29), atslab_s2cst_srt) ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5707(line=251, offs=14) -- 5787(line=256, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def: tmp31 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp30 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp31), atslab_s2cst_def) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5837(line=258, offs=14) -- 5929(line=263, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def: tmp33 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp33), atslab_s2cst_def) = arg1 ; return /* (tmp32) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6002(line=268, offs=15) -- 6083(line=273, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_pack (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_pack: tmp35 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp34 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp35), atslab_s2cst_pack) ; return (tmp34) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_pack] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6158(line=278, offs=16) -- 6241(line=283, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs: tmp37 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp36 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp37), atslab_s2cst_isabs) ; return (tmp36) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6373(line=291, offs=16) -- 6474(line=296, offs=4) */ ATSglobaldec() ats_void_type patsopts2cst_set_isabs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab_patsopts2cst_set_isabs: tmp39 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp40 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp40, atslab_0, arg1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp39), atslab_s2cst_isabs) = tmp40 ; return /* (tmp38) */ ; } /* end of [patsopts2cst_set_isabs] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6552(line=301, offs=16) -- 6634(line=306, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon: tmp42 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp41 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp42), atslab_s2cst_iscon) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6710(line=311, offs=16) -- 6792(line=316, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isrec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isrec: tmp44 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp43 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp44), atslab_s2cst_isrec) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isrec] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6868(line=321, offs=16) -- 6950(line=326, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp: tmp46 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp45 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp46), atslab_s2cst_isasp) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7004(line=328, offs=16) -- 7102(line=333, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_isasp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_isasp: tmp48 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp48), atslab_s2cst_isasp) = arg1 ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_isasp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7181(line=338, offs=19) -- 7266(line=343, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_argsrtss (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_argsrtss: tmp50 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp49 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp50), atslab_s2cst_argsrtss) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_argsrtss] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7345(line=348, offs=16) -- 7428(line=353, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst: tmp52 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp51 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp52), atslab_s2cst_islst) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7482(line=355, offs=16) -- 7580(line=360, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_islst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_islst: tmp54 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp54), atslab_s2cst_islst) = arg1 ; return /* (tmp53) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_islst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7658(line=365, offs=18) -- 7742(line=370, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst: tmp56 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp55 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp56), atslab_s2cst_dconlst) ; return (tmp55) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7800(line=372, offs=18) -- 7898(line=377, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dconlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dconlst: tmp58 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp58), atslab_s2cst_dconlst) = arg1 ; return /* (tmp57) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dconlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7974(line=382, offs=14) -- 8071(line=387, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup: tmp60 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp61 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp60), atslab_s2cst_sup) ; tmp59 = ats_castfn_mac(ats_ptr_type, tmp61) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8121(line=389, offs=14) -- 8313(line=398, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup: tmp63 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp64 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp63), atslab_s2cst_sup) ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp65, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp65, atslab_1, ats_castfn_mac(ats_ptr_type, tmp64)) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp63), atslab_s2cst_sup) = ats_castfn_mac(ats_ptr_type, tmp65) ; return /* (tmp62) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8388(line=403, offs=17) -- 8471(line=408, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls: tmp67 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp66 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp67), atslab_s2cst_supcls) ; return (tmp66) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8527(line=410, offs=17) -- 8650(line=416, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_supcls (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_supcls: tmp69 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp71 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp69), atslab_s2cst_supcls) ; tmp70 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp70, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp70, atslab_1, tmp71) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp69), atslab_s2cst_supcls) = tmp70 ; return /* (tmp68) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_supcls] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8729(line=421, offs=18) -- 8813(line=426, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sVarset (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sVarset: tmp73 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp72 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp73), atslab_s2cst_sVarset) ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sVarset] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8871(line=428, offs=18) -- 8969(line=433, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_sVarset (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_sVarset: tmp75 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp75), atslab_s2cst_sVarset) = arg1 ; return /* (tmp74) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_sVarset] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9047(line=438, offs=16) -- 9129(line=443, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dstag (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dstag: tmp77 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp76 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp77), atslab_s2cst_dstag) ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dstag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9183(line=445, offs=16) -- 9277(line=450, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dstag (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dstag: tmp79 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp79), atslab_s2cst_dstag) = arg1 ; return /* (tmp78) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dstag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9356(line=455, offs=16) -- 9438(line=460, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp: tmp81 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp80 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp81), atslab_s2cst_stamp) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9515(line=465, offs=17) -- 9614(line=469, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_extdef (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_extdef: tmp83 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp82 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp83), atslab_s2cst_extdef) ; return (tmp82) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_extdef] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9670(line=471, offs=17) -- 9767(line=476, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_extdef (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_extdef: tmp85 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp85), atslab_s2cst_extdef) = arg1 ; return /* (tmp84) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_extdef] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9890(line=485, offs=15) -- 9938(line=486, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name: tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg0) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp87) ; return (tmp86) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10073(line=497, offs=5) -- 10239(line=506, offs=2) */ ATSstaticdec() ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; __ats_lab_aux_36: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp92 = aux_36 (tmp91, arg1) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun (tmp90, tmp92) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp89 = arg1 ; break ; } while (0) ; return (tmp89) ; } /* end of [aux_36] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10015(line=493, offs=1) -- 10570(line=527, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make_dat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make_dat: tmp93 = aux_36 (arg2, arg3) ; tmp94 = (ats_sum_ptr_type)0 ; tmp95 = (ats_sum_ptr_type)0 ; tmp96 = (ats_sum_ptr_type)0 ; tmp97 = (ats_sum_ptr_type)0 ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy, tmp93, tmp94, ats_true_bool, ats_false_bool, tmp95, tmp96, arg4, tmp97) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make_dat] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10647(line=533, offs=3) -- 10678(line=533, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2cst_s2cst: tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ; tmp98 = atspre_ilt (tmp99, 0) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2cst_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10736(line=538, offs=3) -- 10768(line=538, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2cst_s2cst: tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ; tmp100 = atspre_ilte (tmp101, 0) ; return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2cst_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10826(line=543, offs=3) -- 10857(line=543, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst: tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ; tmp102 = atspre_ieq (tmp103, 0) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10915(line=548, offs=3) -- 10947(line=548, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst: tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ; tmp104 = atspre_ineq (tmp105, 0) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11007(line=552, offs=20) -- 11089(line=557, offs=52) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_int_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp (arg0) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp (arg1) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp107, tmp108) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11195(line=565, offs=13) -- 11292(line=569, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def: tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def (arg0) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp110 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp109 = ats_true_bool ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp110 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp109 = ats_false_bool ; break ; } while (0) ; return (tmp109) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11368(line=574, offs=15) -- 11467(line=578, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr: tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (arg0) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (tmp112 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp111 = ats_true_bool ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (tmp112 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp111 = ats_false_bool ; break ; } while (0) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11544(line=583, offs=15) -- 11586(line=584, offs=37) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tkind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tkind: tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind_fun (tmp114) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tkind] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11662(line=590, offs=15) -- 11750(line=594, offs=55) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tydef (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp115) ; ATSlocal (ats_bool_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tydef: tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def (arg0) ; if (tmp116) { tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm_fun (tmp117) ; } else { tmp115 = ats_false_bool ; } /* end of [if] */ return (tmp115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tydef] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11812(line=599, offs=16) -- 11884(line=602, offs=60) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp118) ; ATSlocal (ats_bool_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype: tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr (arg0) ; if (tmp119) { tmp118 = ats_false_bool ; } else { tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon (arg0) ; } /* end of [if] */ return (tmp118) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11969(line=609, offs=17) -- 12110(line=613, offs=41) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tagless (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp120) ; ATSlocal (ats_bool_type, tmp121) ; ATSlocal (ats_bool_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tagless: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike (arg0) ; if (!tmp121) { goto __ats_lab_11_1 ; } tmp120 = ats_true_bool ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular (arg0) ; if (!tmp122) { goto __ats_lab_12_1 ; } tmp120 = ats_true_bool ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp120 = ats_false_bool ; break ; } while (0) ; return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tagless] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12170(line=617, offs=18) -- 12265(line=621, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike: tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst (arg0) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp124 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp123 = ats_true_bool ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp124 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp123 = ats_false_bool ; break ; } while (0) ; return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50922(line=1801, offs=14) -- 50991(line=1803, offs=4) */ ATSstaticdec() ats_bool_type list_is_sing_01298_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; __ats_lab_list_is_sing_01298_ats_ptr_type: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } tmp129 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; if (tmp129 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp128 = ats_true_bool ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp128 = ats_false_bool ; break ; } while (0) ; return (tmp128) ; } /* end of [list_is_sing_01298_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12324(line=624, offs=18) -- 12447(line=629, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular: tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (arg0) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (tmp126 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_15_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_5, tmp126, atslab_0) ; tmp125 = list_is_sing_01298_ats_ptr_type (tmp127) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (tmp126 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp125 = ats_false_bool ; break ; } while (0) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51044(line=1806, offs=14) -- 51123(line=1808, offs=4) */ ATSstaticdec() ats_bool_type list_is_pair_01299_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_list_is_pair_01299_ats_ptr_type: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } tmp134 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; if (tmp134 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } tmp135 = ats_caselptrlab_mac(anairiats_sum_2, tmp134, atslab_1) ; if (tmp135 != (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp133 = ats_true_bool ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp133 = ats_false_bool ; break ; } while (0) ; return (tmp133) ; } /* end of [list_is_pair_01299_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12506(line=632, offs=18) -- 12629(line=637, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_binarian (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_binarian: tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (arg0) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp131 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_19_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_5, tmp131, atslab_0) ; tmp130 = list_is_pair_01299_ats_ptr_type (tmp132) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp131 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp130 = ats_false_bool ; break ; } while (0) ; return (tmp130) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_binarian] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12709(line=642, offs=16) -- 12752(line=643, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear: tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin_fun (tmp137) ; return (tmp136) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12786(line=646, offs=19) -- 12841(line=647, offs=47) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_nonlinear (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp138) ; ATSlocal (ats_bool_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_nonlinear: tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear (arg0) ; if (tmp139) { tmp138 = ats_false_bool ; } else { tmp138 = ats_true_bool ; } /* end of [if] */ return (tmp138) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_nonlinear] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13017(line=658, offs=5) -- 13132(line=662, offs=50) */ ATSstaticdec() ats_bool_type aux_56 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp141) ; ATSlocal (ats_bool_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; __ats_lab_aux_56: tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (arg0, arg1) ; if (tmp142) { tmp141 = ats_true_bool ; } else { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup (arg0) ; tmp141 = auxlst_57 (tmp143, arg1) ; } /* end of [if] */ return (tmp141) ; } /* end of [aux_56] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13154(line=664, offs=5) -- 13353(line=671, offs=33) */ ATSstaticdec() ats_bool_type auxlst_57 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_bool_type, tmp147) ; __ats_lab_auxlst_57: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp146 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp147 = aux_56 (tmp145, arg1) ; if (tmp147) { tmp144 = ats_true_bool ; } else { arg0 = tmp146 ; arg1 = arg1 ; goto __ats_lab_auxlst_57 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp144 = ats_false_bool ; break ; } while (0) ; return (tmp144) ; } /* end of [auxlst_57] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12890(line=653, offs=3) -- 13468(line=680, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp140) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq: tmp140 = aux_56 (arg0, arg1) ; return (tmp140) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13684(line=692, offs=1) -- 13956(line=703, offs=4) */ ATSstaticdec() ats_bool_type aux_59 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab_aux_59: tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (arg0, arg1) ; if (tmp150) { tmp149 = ats_true_bool ; } else { tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls (arg0) ; tmp149 = auxlst_60 (tmp151, arg1) ; } /* end of [if] */ return (tmp149) ; } /* end of [aux_59] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13980(line=706, offs=1) -- 14332(line=720, offs=4) */ ATSstaticdec() ats_bool_type auxlst_60 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_bool_type, tmp157) ; __ats_lab_auxlst_60: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_25_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp154 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp153), atslab_s2exp_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp155)->tag != 4) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_7, tmp155, atslab_0) ; tmp157 = aux_59 (tmp156, arg1) ; if (tmp157) { tmp152 = ats_true_bool ; } else { arg0 = tmp154 ; arg1 = arg1 ; goto __ats_lab_auxlst_60 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: arg0 = tmp154 ; arg1 = arg1 ; goto __ats_lab_auxlst_60 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp152 = ats_false_bool ; break ; } while (0) ; return (tmp152) ; } /* end of [auxlst_60] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13545(line=686, offs=3) -- 14453(line=728, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp148) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls: tmp148 = aux_59 (arg0, arg1) ; return (tmp148) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 14531(line=734, offs=3) -- 14614(line=738, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst: tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg1) ; /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp159) ; return /* (tmp158) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15127(line=758, offs=23) -- 15161(line=758, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp160) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cst: /* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (stdout, arg0) ; return /* (tmp160) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15184(line=759, offs=23) -- 15218(line=759, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp161) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst: /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (stderr, arg0) ; return /* (tmp161) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_66 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; // ATSlocal_void (tmp167) ; ATSlocal (ats_bool_type, tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_int_type, tmp170) ; __ats_lab_aux_66: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp168 = atspre_gt_int_int (arg1, 0) ; if (tmp168) { /* tmp167 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp169 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp165) ; tmp170 = atspre_add_int_int (arg1, 1) ; arg0 = tmp166 ; arg1 = tmp170 ; goto __ats_lab_aux_66 ; // tail call break ; } while (0) ; return /* (tmp164) */ ; } /* end of [aux_66] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_66_closure_type ; ats_void_type aux_66_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_66 (((aux_66_closure_type*)cloptr)->closure_env_0, ((aux_66_closure_type*)cloptr)->closure_env_1, ((aux_66_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_66_closure_init (aux_66_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_66_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_66_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_66_closure_type *p_clo = ATS_MALLOC(sizeof(aux_66_closure_type)) ; aux_66_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp163) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp163 = */ aux_66 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp163) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15248(line=763, offs=3) -- 15303(line=763, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp162) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst: /* tmp162 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) ; return /* (tmp162) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15358(line=767, offs=16) -- 15397(line=767, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cstlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cstlst: /* tmp171 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (stdout, arg0) ; return /* (tmp171) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cstlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15423(line=769, offs=16) -- 15462(line=769, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cstlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cstlst: /* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (stderr, arg0) ; return /* (tmp172) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cstlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15705(line=786, offs=1) -- 15790(line=789, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_69 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp173) ; __ats_lab___ats_fun_69: tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ; return (tmp173) ; } /* end of [__ats_fun_69] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_69_closure_type ; ats_int_type __ats_fun_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_69 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_69_closure_init (__ats_fun_69_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_69_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_69_closure_make () { __ats_fun_69_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_69_closure_type)) ; __ats_fun_69_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 2749(line=94, offs=29) -- 2758(line=94, offs=38) */ ATSstaticdec() ats_ptr_type funset_make_nil_03733_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; __ats_lab_funset_make_nil_03733_: tmp176 = (ats_sum_ptr_type)0 ; return (tmp176) ; } /* end of [funset_make_nil_03733_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15939(line=799, offs=3) -- 15974(line=799, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp175) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_nil: tmp175 = funset_make_nil_03733_ () ; return (tmp175) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 1954(line=57, offs=30) -- 1982(line=57, offs=58) */ ATSstaticdec() ats_int_type compare_elt_elt_03732_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp184) ; __ats_lab_compare_elt_elt_03732_ats_ptr_type: tmp184 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp184) ; } /* end of [compare_elt_elt_03732_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4143(line=153, offs=7) -- 4406(line=161, offs=20) */ ATSstaticdec() ats_bool_type aux_74 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_int_type, tmp183) ; ATSlocal (ats_bool_type, tmp185) ; ATSlocal (ats_bool_type, tmp186) ; __ats_lab_aux_74: do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ; tmp183 = compare_elt_elt_03732_ats_ptr_type (env0, tmp180, env1) ; tmp185 = atspre_lt_int_int (tmp183, 0) ; if (tmp185) { arg0 = tmp181 ; goto __ats_lab_aux_74 ; // tail call } else { tmp186 = atspre_gt_int_int (tmp183, 0) ; if (tmp186) { arg0 = tmp182 ; goto __ats_lab_aux_74 ; // tail call } else { tmp179 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp179 = ats_false_bool ; break ; } while (0) ; return (tmp179) ; } /* end of [aux_74] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_74_closure_type ; ats_bool_type aux_74_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_74 (((aux_74_closure_type*)cloptr)->closure_env_0, ((aux_74_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_74_closure_init (aux_74_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_74_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_74_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_74_closure_type *p_clo = ATS_MALLOC(sizeof(aux_74_closure_type)) ; aux_74_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4104(line=152, offs=3) -- 4426(line=163, offs=2) */ ATSstaticdec() ats_bool_type funset_is_member_03740_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp178) ; __ats_lab_funset_is_member_03740_ats_ptr_type: tmp178 = aux_74 (arg1, arg2, arg0) ; return (tmp178) ; } /* end of [funset_is_member_03740_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16005(line=803, offs=3) -- 16048(line=803, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_ismem (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp177) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_ismem: tmp177 = funset_is_member_03740_ats_ptr_type (arg0, arg1, statmp174) ; return (tmp177) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_ismem] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 5504(line=202, offs=46) -- 6164(line=224, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04124_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_int_type, tmp211) ; ATSlocal (ats_int_type, tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_int_type, tmp214) ; ATSlocal (ats_bool_type, tmp215) ; ATSlocal (ats_int_type, tmp216) ; ATSlocal (ats_int_type, tmp217) ; ATSlocal (ats_int_type, tmp218) ; ATSlocal (ats_int_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_int_type, tmp224) ; ATSlocal (ats_int_type, tmp225) ; ATSlocal (ats_int_type, tmp226) ; ATSlocal (ats_int_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; ATSlocal (ats_int_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_int_type, tmp232) ; ATSlocal (ats_int_type, tmp233) ; __ats_lab_avltree_rrotate_04124_ats_ptr_type: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp208 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_1) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_2) ; tmp210 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_3) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (tmp209 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_8, tmp209, atslab_0) ; tmp211 = tmp212 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (tmp209 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp211 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (tmp210 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_8, tmp210, atslab_0) ; tmp213 = tmp214 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (tmp210 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp213 = 0 ; break ; } while (0) ; tmp216 = atspre_iadd (tmp211, 0) ; tmp215 = atspre_igte (tmp216, tmp213) ; if (tmp215) { tmp217 = atspre_iadd (tmp213, 1) ; tmp219 = atspre_imax (tmp211, tmp217) ; tmp218 = atspre_iadd (1, tmp219) ; tmp220 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp220, atslab_0, tmp217) ; ats_selptrset_mac(anairiats_sum_8, tmp220, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp220, atslab_2, tmp210) ; ats_selptrset_mac(anairiats_sum_8, tmp220, atslab_3, arg4) ; tmp207 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_0, tmp218) ; ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_1, tmp208) ; ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_2, tmp209) ; ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_3, tmp220) ; } else { // if (tmp210 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp221 = ats_caselptrlab_mac(anairiats_sum_8, tmp210, atslab_1) ; tmp222 = ats_caselptrlab_mac(anairiats_sum_8, tmp210, atslab_2) ; tmp223 = ats_caselptrlab_mac(anairiats_sum_8, tmp210, atslab_3) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (tmp222 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp225 = ats_caselptrlab_mac(anairiats_sum_8, tmp222, atslab_0) ; tmp224 = tmp225 ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (tmp222 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp224 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (tmp223 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_8, tmp223, atslab_0) ; tmp226 = tmp227 ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (tmp223 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp226 = 0 ; break ; } while (0) ; tmp230 = atspre_imax (tmp211, tmp224) ; tmp229 = atspre_iadd (1, tmp230) ; tmp228 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp228, atslab_0, tmp229) ; ats_selptrset_mac(anairiats_sum_8, tmp228, atslab_1, tmp208) ; ats_selptrset_mac(anairiats_sum_8, tmp228, atslab_2, tmp209) ; ats_selptrset_mac(anairiats_sum_8, tmp228, atslab_3, tmp222) ; tmp233 = atspre_imax (tmp226, arg3) ; tmp232 = atspre_iadd (1, tmp233) ; tmp231 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp231, atslab_0, tmp232) ; ats_selptrset_mac(anairiats_sum_8, tmp231, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp231, atslab_2, tmp223) ; ats_selptrset_mac(anairiats_sum_8, tmp231, atslab_3, arg4) ; tmp207 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_1, tmp221) ; ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_2, tmp228) ; ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_3, tmp231) ; } /* end of [if] */ return (tmp207) ; } /* end of [avltree_rrotate_04124_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4671(line=174, offs=46) -- 5362(line=196, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04107_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_int_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_int_type, tmp251) ; ATSlocal (ats_bool_type, tmp252) ; ATSlocal (ats_int_type, tmp253) ; ATSlocal (ats_int_type, tmp254) ; ATSlocal (ats_int_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_int_type, tmp261) ; ATSlocal (ats_int_type, tmp262) ; ATSlocal (ats_int_type, tmp263) ; ATSlocal (ats_int_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_int_type, tmp266) ; ATSlocal (ats_int_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_int_type, tmp269) ; ATSlocal (ats_int_type, tmp270) ; __ats_lab_avltree_lrotate_04107_ats_ptr_type: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp245 = ats_caselptrlab_mac(anairiats_sum_8, arg4, atslab_1) ; tmp246 = ats_caselptrlab_mac(anairiats_sum_8, arg4, atslab_2) ; tmp247 = ats_caselptrlab_mac(anairiats_sum_8, arg4, atslab_3) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (tmp246 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_8, tmp246, atslab_0) ; tmp248 = tmp249 ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (tmp246 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp248 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (tmp247 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp251 = ats_caselptrlab_mac(anairiats_sum_8, tmp247, atslab_0) ; tmp250 = tmp251 ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (tmp247 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: tmp250 = 0 ; break ; } while (0) ; tmp253 = atspre_iadd (tmp250, 0) ; tmp252 = atspre_ilte (tmp248, tmp253) ; if (tmp252) { tmp254 = atspre_iadd (tmp248, 1) ; tmp256 = atspre_imax (tmp254, tmp250) ; tmp255 = atspre_iadd (1, tmp256) ; tmp257 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp257, atslab_0, tmp254) ; ats_selptrset_mac(anairiats_sum_8, tmp257, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp257, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_8, tmp257, atslab_3, tmp246) ; tmp244 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_0, tmp255) ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_1, tmp245) ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_2, tmp257) ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_3, tmp247) ; } else { // if (tmp246 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp258 = ats_caselptrlab_mac(anairiats_sum_8, tmp246, atslab_1) ; tmp259 = ats_caselptrlab_mac(anairiats_sum_8, tmp246, atslab_2) ; tmp260 = ats_caselptrlab_mac(anairiats_sum_8, tmp246, atslab_3) ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (tmp259 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp262 = ats_caselptrlab_mac(anairiats_sum_8, tmp259, atslab_0) ; tmp261 = tmp262 ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (tmp259 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: tmp261 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (tmp260 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp264 = ats_caselptrlab_mac(anairiats_sum_8, tmp260, atslab_0) ; tmp263 = tmp264 ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (tmp260 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp263 = 0 ; break ; } while (0) ; tmp267 = atspre_imax (arg1, tmp261) ; tmp266 = atspre_iadd (1, tmp267) ; tmp265 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp265, atslab_0, tmp266) ; ats_selptrset_mac(anairiats_sum_8, tmp265, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp265, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_8, tmp265, atslab_3, tmp259) ; tmp270 = atspre_imax (tmp263, tmp250) ; tmp269 = atspre_iadd (1, tmp270) ; tmp268 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp268, atslab_0, tmp269) ; ats_selptrset_mac(anairiats_sum_8, tmp268, atslab_1, tmp245) ; ats_selptrset_mac(anairiats_sum_8, tmp268, atslab_2, tmp260) ; ats_selptrset_mac(anairiats_sum_8, tmp268, atslab_3, tmp247) ; tmp244 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_1, tmp258) ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_2, tmp265) ; ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_3, tmp268) ; } /* end of [if] */ return (tmp244) ; } /* end of [avltree_lrotate_04107_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6) */ ATSstaticdec() ats_ptr_type insert_78 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_int_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_bool_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_int_type, tmp199) ; ATSlocal (ats_int_type, tmp200) ; ATSlocal (ats_int_type, tmp201) ; ATSlocal (ats_int_type, tmp202) ; ATSlocal (ats_bool_type, tmp203) ; ATSlocal (ats_int_type, tmp204) ; ATSlocal (ats_int_type, tmp205) ; ATSlocal (ats_int_type, tmp206) ; ATSlocal (ats_bool_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_int_type, tmp236) ; ATSlocal (ats_int_type, tmp237) ; ATSlocal (ats_int_type, tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_bool_type, tmp240) ; ATSlocal (ats_int_type, tmp241) ; ATSlocal (ats_int_type, tmp242) ; ATSlocal (ats_int_type, tmp243) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; __ats_lab_insert_78: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_33_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ; tmp196 = compare_elt_elt_03732_ats_ptr_type (env0, tmp193, env1) ; tmp197 = atspre_lt_int_int (tmp196, 0) ; if (tmp197) { tmp198 = insert_78 (env0, env1, tmp194, arg1) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp198 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp200 = ats_caselptrlab_mac(anairiats_sum_8, tmp198, atslab_0) ; tmp199 = tmp200 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (tmp198 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp199 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (tmp195 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_8, tmp195, atslab_0) ; tmp201 = tmp202 ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (tmp195 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp201 = 0 ; break ; } while (0) ; tmp204 = atspre_isub (tmp199, tmp201) ; tmp203 = atspre_ilte (tmp204, 1) ; if (tmp203) { tmp206 = atspre_imax (tmp199, tmp201) ; tmp205 = atspre_iadd (1, tmp206) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_0, tmp205) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_1, tmp193) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_2, tmp198) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_3, tmp195) ; } else { tmp191 = avltree_rrotate_04124_ats_ptr_type (tmp193, tmp199, tmp198, tmp201, tmp195) ; } /* end of [if] */ } else { tmp234 = atspre_gt_int_int (tmp196, 0) ; if (tmp234) { tmp235 = insert_78 (env0, env1, tmp195, arg1) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (tmp194 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp237 = ats_caselptrlab_mac(anairiats_sum_8, tmp194, atslab_0) ; tmp236 = tmp237 ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (tmp194 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp236 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (tmp235 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp239 = ats_caselptrlab_mac(anairiats_sum_8, tmp235, atslab_0) ; tmp238 = tmp239 ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (tmp235 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp238 = 0 ; break ; } while (0) ; tmp241 = atspre_isub (tmp238, tmp236) ; tmp240 = atspre_ilte (tmp241, 1) ; if (tmp240) { tmp243 = atspre_imax (tmp236, tmp238) ; tmp242 = atspre_iadd (1, tmp243) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_0, tmp242) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_1, tmp193) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_2, tmp194) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_3, tmp235) ; } else { tmp191 = avltree_lrotate_04107_ats_ptr_type (tmp193, tmp236, tmp194, tmp238, tmp235) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_0, tmp192) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_2, tmp194) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_3, tmp195) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp271 = (ats_sum_ptr_type)0 ; tmp272 = (ats_sum_ptr_type)0 ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_2, tmp271) ; ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_3, tmp272) ; break ; } while (0) ; return (tmp191) ; } /* end of [insert_78] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_78_closure_type ; ats_ptr_type insert_78_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_78 (((insert_78_closure_type*)cloptr)->closure_env_0, ((insert_78_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_78_closure_init (insert_78_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_78_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_78_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_78_closure_type *p_clo = ATS_MALLOC(sizeof(insert_78_closure_type)) ; insert_78_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6244(line=230, offs=3) -- 7632(line=267, offs=2) */ ATSstaticdec() ats_bool_type funset_insert_03742_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp190) ; ATSlocal (ats_bool_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; __ats_lab_funset_insert_03742_ats_ptr_type: /* ats_bool_type tmp273 ; */ tmp274 = insert_78 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp273)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp274 ; tmp190 = tmp273 ; return (tmp190) ; } /* end of [funset_insert_03742_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16077(line=807, offs=3) -- 16164(line=810, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_bool_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_add: /* ats_ptr_type tmp188 ; */ tmp188 = arg0 ; tmp189 = funset_insert_03742_ats_ptr_type ((&tmp188), arg1, statmp174) ; tmp187 = tmp188 ; return (tmp187) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20241(line=721, offs=7) -- 20545(line=732, offs=18) */ ATSstaticdec() ats_ptr_type listize_83 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; __ats_lab_listize_83: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp278 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp279 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ; tmp280 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ; tmp281 = listize_83 (tmp280, arg1) ; tmp282 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp282, atslab_0, tmp278) ; ats_selptrset_mac(anairiats_sum_2, tmp282, atslab_1, tmp281) ; arg0 = tmp279 ; arg1 = tmp282 ; goto __ats_lab_listize_83 ; // tail call break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: tmp277 = arg1 ; break ; } while (0) ; return (tmp277) ; } /* end of [listize_83] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20189(line=719, offs=16) -- 20605(line=736, offs=4) */ ATSstaticdec() ats_ptr_type funset_listize_03757_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp283) ; __ats_lab_funset_listize_03757_ats_ptr_type: tmp283 = (ats_sum_ptr_type)0 ; tmp276 = listize_83 (arg0, tmp283) ; return (tmp276) ; } /* end of [funset_listize_03757_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16223(line=813, offs=18) -- 16252(line=813, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp275) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_listize: tmp275 = funset_listize_03757_ats_ptr_type (arg0) ; return (tmp275) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26) */ ATSstaticdec() ats_ptr_type linset_make_nil_03759_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp285) ; __ats_lab_linset_make_nil_03759_: tmp285 = (ats_sum_ptr_type)0 ; return (tmp285) ; } /* end of [linset_make_nil_03759_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16304(line=819, offs=3) -- 16339(line=819, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp284) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_nil: tmp284 = linset_make_nil_03759_ () ; return (tmp284) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45) */ ATSstaticdec() ats_int_type compare_elt_elt_03758_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp293) ; __ats_lab_compare_elt_elt_03758_ats_ptr_type: tmp293 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp293) ; } /* end of [compare_elt_elt_03758_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3861(line=149, offs=7) -- 4231(line=160, offs=33) */ ATSstaticdec() ats_bool_type aux_88 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_int_type, tmp292) ; ATSlocal (ats_bool_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_bool_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; __ats_lab_aux_88: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp289 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp290 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ; tmp291 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ; tmp292 = compare_elt_elt_03758_ats_ptr_type (env0, tmp289, env1) ; tmp294 = atspre_lt_int_int (tmp292, 0) ; if (tmp294) { tmp295 = ats_ptrget_mac(ats_ptr_type, tmp290) ; arg0 = tmp295 ; goto __ats_lab_aux_88 ; // tail call } else { tmp296 = atspre_gt_int_int (tmp292, 0) ; if (tmp296) { tmp297 = ats_ptrget_mac(ats_ptr_type, tmp291) ; arg0 = tmp297 ; goto __ats_lab_aux_88 ; // tail call } else { tmp288 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp288 = ats_false_bool ; break ; } while (0) ; return (tmp288) ; } /* end of [aux_88] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_88_closure_type ; ats_bool_type aux_88_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_88 (((aux_88_closure_type*)cloptr)->closure_env_0, ((aux_88_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_88_closure_init (aux_88_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_88_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_88_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_88_closure_type *p_clo = ATS_MALLOC(sizeof(aux_88_closure_type)) ; aux_88_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3822(line=148, offs=3) -- 4251(line=162, offs=2) */ ATSstaticdec() ats_bool_type linset_is_member_03764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp287) ; __ats_lab_linset_is_member_03764_ats_ptr_type: tmp287 = aux_88 (arg1, arg2, arg0) ; return (tmp287) ; } /* end of [linset_is_member_03764_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16373(line=823, offs=3) -- 16416(line=823, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_ismem (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp286) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_ismem: tmp286 = linset_is_member_03764_ats_ptr_type (arg0, arg1, statmp174) ; return (tmp286) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_ismem] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54) */ ATSstaticdec() ats_int_type avltree_height_04381_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp312) ; ATSlocal (ats_int_type, tmp313) ; __ats_lab_avltree_height_04381_ats_ptr_type: do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp313 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp312 = tmp313 ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: __ats_lab_65_1: tmp312 = 0 ; break ; } while (0) ; return (tmp312) ; } /* end of [avltree_height_04381_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04435_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_int_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_int_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_bool_type, tmp331) ; ATSlocal (ats_int_type, tmp332) ; ATSlocal (ats_int_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_int_type, tmp335) ; ATSlocal (ats_int_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_int_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_int_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_int_type, tmp345) ; ATSlocal (ats_int_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_int_type, tmp348) ; ATSlocal (ats_int_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; __ats_lab_avltree_rrotate_04435_ats_ptr_type: tmp323 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp323 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp324 = &ats_caselptrlab_mac(anairiats_sum_8, tmp323, atslab_0) ; tmp325 = &ats_caselptrlab_mac(anairiats_sum_8, tmp323, atslab_2) ; tmp326 = &ats_caselptrlab_mac(anairiats_sum_8, tmp323, atslab_3) ; tmp328 = ats_ptrget_mac(ats_ptr_type, tmp325) ; tmp327 = avltree_height_04381_ats_ptr_type (tmp328) ; tmp330 = ats_ptrget_mac(ats_ptr_type, tmp326) ; tmp329 = avltree_height_04381_ats_ptr_type (tmp330) ; tmp332 = atspre_iadd (tmp327, 0) ; tmp331 = atspre_igte (tmp332, tmp329) ; if (tmp331) { tmp333 = atspre_iadd (tmp329, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp333 ; tmp334 = ats_ptrget_mac(ats_ptr_type, tmp326) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp334 ; tmp336 = atspre_imax (tmp327, tmp333) ; tmp335 = atspre_iadd (1, tmp336) ; ats_ptrget_mac(ats_int_type, tmp324) = tmp335 ; ats_ptrget_mac(ats_ptr_type, tmp326) = arg5 ; tmp322 = tmp323 ; } else { tmp337 = ats_ptrget_mac(ats_ptr_type, tmp326) ; // if (tmp337 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp338 = &ats_caselptrlab_mac(anairiats_sum_8, tmp337, atslab_0) ; tmp339 = &ats_caselptrlab_mac(anairiats_sum_8, tmp337, atslab_2) ; tmp340 = &ats_caselptrlab_mac(anairiats_sum_8, tmp337, atslab_3) ; tmp342 = ats_ptrget_mac(ats_ptr_type, tmp339) ; tmp341 = avltree_height_04381_ats_ptr_type (tmp342) ; tmp344 = ats_ptrget_mac(ats_ptr_type, tmp340) ; tmp343 = avltree_height_04381_ats_ptr_type (tmp344) ; tmp346 = atspre_imax (tmp343, arg3) ; tmp345 = atspre_iadd (1, tmp346) ; ats_ptrget_mac(ats_int_type, arg0) = tmp345 ; tmp347 = ats_ptrget_mac(ats_ptr_type, tmp340) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp347 ; tmp349 = atspre_imax (tmp327, tmp341) ; tmp348 = atspre_iadd (1, tmp349) ; ats_ptrget_mac(ats_int_type, tmp324) = tmp348 ; tmp350 = ats_ptrget_mac(ats_ptr_type, tmp339) ; ats_ptrget_mac(ats_ptr_type, tmp326) = tmp350 ; ats_ptrget_mac(ats_int_type, tmp338) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp339) = tmp323 ; ats_ptrget_mac(ats_ptr_type, tmp340) = arg5 ; tmp322 = tmp337 ; } /* end of [if] */ return (tmp322) ; } /* end of [avltree_rrotate_04435_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04411_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_int_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_int_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_bool_type, tmp371) ; ATSlocal (ats_int_type, tmp372) ; ATSlocal (ats_int_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_int_type, tmp375) ; ATSlocal (ats_int_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_int_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_int_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_int_type, tmp385) ; ATSlocal (ats_int_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_int_type, tmp388) ; ATSlocal (ats_int_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; __ats_lab_avltree_lrotate_04411_ats_ptr_type: tmp363 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp363 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp364 = &ats_caselptrlab_mac(anairiats_sum_8, tmp363, atslab_0) ; tmp365 = &ats_caselptrlab_mac(anairiats_sum_8, tmp363, atslab_2) ; tmp366 = &ats_caselptrlab_mac(anairiats_sum_8, tmp363, atslab_3) ; tmp368 = ats_ptrget_mac(ats_ptr_type, tmp365) ; tmp367 = avltree_height_04381_ats_ptr_type (tmp368) ; tmp370 = ats_ptrget_mac(ats_ptr_type, tmp366) ; tmp369 = avltree_height_04381_ats_ptr_type (tmp370) ; tmp372 = atspre_iadd (tmp369, 0) ; tmp371 = atspre_ilte (tmp367, tmp372) ; if (tmp371) { tmp373 = atspre_iadd (tmp367, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp373 ; tmp374 = ats_ptrget_mac(ats_ptr_type, tmp365) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp374 ; tmp376 = atspre_imax (tmp373, tmp369) ; tmp375 = atspre_iadd (1, tmp376) ; ats_ptrget_mac(ats_int_type, tmp364) = tmp375 ; ats_ptrget_mac(ats_ptr_type, tmp365) = arg5 ; tmp362 = tmp363 ; } else { tmp377 = ats_ptrget_mac(ats_ptr_type, tmp365) ; // if (tmp377 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp378 = &ats_caselptrlab_mac(anairiats_sum_8, tmp377, atslab_0) ; tmp379 = &ats_caselptrlab_mac(anairiats_sum_8, tmp377, atslab_2) ; tmp380 = &ats_caselptrlab_mac(anairiats_sum_8, tmp377, atslab_3) ; tmp382 = ats_ptrget_mac(ats_ptr_type, tmp379) ; tmp381 = avltree_height_04381_ats_ptr_type (tmp382) ; tmp384 = ats_ptrget_mac(ats_ptr_type, tmp380) ; tmp383 = avltree_height_04381_ats_ptr_type (tmp384) ; tmp386 = atspre_imax (arg1, tmp381) ; tmp385 = atspre_iadd (1, tmp386) ; ats_ptrget_mac(ats_int_type, arg0) = tmp385 ; tmp387 = ats_ptrget_mac(ats_ptr_type, tmp379) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp387 ; tmp389 = atspre_imax (tmp383, tmp369) ; tmp388 = atspre_iadd (1, tmp389) ; ats_ptrget_mac(ats_int_type, tmp364) = tmp388 ; tmp390 = ats_ptrget_mac(ats_ptr_type, tmp380) ; ats_ptrget_mac(ats_ptr_type, tmp365) = tmp390 ; ats_ptrget_mac(ats_int_type, tmp378) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp379) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp380) = tmp363 ; tmp362 = tmp377 ; } /* end of [if] */ return (tmp362) ; } /* end of [avltree_lrotate_04411_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4) */ ATSstaticdec() ats_bool_type insert_92 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_int_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_bool_type, tmp309) ; ATSlocal (ats_bool_type, tmp310) ; ATSlocal (ats_int_type, tmp311) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_int_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_bool_type, tmp317) ; ATSlocal (ats_int_type, tmp318) ; ATSlocal (ats_int_type, tmp319) ; ATSlocal (ats_int_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_bool_type, tmp351) ; ATSlocal (ats_bool_type, tmp352) ; ATSlocal (ats_int_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_int_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_bool_type, tmp357) ; ATSlocal (ats_int_type, tmp358) ; ATSlocal (ats_int_type, tmp359) ; ATSlocal (ats_int_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; __ats_lab_insert_92: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_63_1: tmp303 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp304 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp305 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp306 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp308 = ats_ptrget_mac(ats_ptr_type, tmp304) ; tmp307 = compare_elt_elt_03758_ats_ptr_type (arg1, tmp308, env0) ; tmp309 = atspre_lt_int_int (tmp307, 0) ; if (tmp309) { tmp310 = insert_92 (env0, tmp305, arg1) ; tmp314 = ats_ptrget_mac(ats_ptr_type, tmp305) ; tmp311 = avltree_height_04381_ats_ptr_type (tmp314) ; tmp316 = ats_ptrget_mac(ats_ptr_type, tmp306) ; tmp315 = avltree_height_04381_ats_ptr_type (tmp316) ; tmp318 = atspre_isub (tmp311, tmp315) ; tmp317 = atspre_ilte (tmp318, 1) ; if (tmp317) { tmp320 = atspre_imax (tmp311, tmp315) ; tmp319 = atspre_iadd (1, tmp320) ; ats_ptrget_mac(ats_int_type, tmp303) = tmp319 ; tmp302 = tmp310 ; } else { tmp321 = avltree_rrotate_04435_ats_ptr_type (tmp303, tmp311, tmp305, tmp315, tmp306, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp321 ; tmp302 = tmp310 ; } /* end of [if] */ } else { tmp351 = atspre_gt_int_int (tmp307, 0) ; if (tmp351) { tmp352 = insert_92 (env0, tmp306, arg1) ; tmp354 = ats_ptrget_mac(ats_ptr_type, tmp305) ; tmp353 = avltree_height_04381_ats_ptr_type (tmp354) ; tmp356 = ats_ptrget_mac(ats_ptr_type, tmp306) ; tmp355 = avltree_height_04381_ats_ptr_type (tmp356) ; tmp358 = atspre_isub (tmp355, tmp353) ; tmp357 = atspre_ilte (tmp358, 1) ; if (tmp357) { tmp360 = atspre_imax (tmp353, tmp355) ; tmp359 = atspre_iadd (1, tmp360) ; ats_ptrget_mac(ats_int_type, tmp303) = tmp359 ; tmp302 = tmp352 ; } else { tmp361 = avltree_lrotate_04411_ats_ptr_type (tmp303, tmp353, tmp305, tmp355, tmp306, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp361 ; tmp302 = tmp352 ; } /* end of [if] */ } else { tmp302 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp392 = (ats_sum_ptr_type)0 ; tmp393 = (ats_sum_ptr_type)0 ; tmp391 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp391, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_8, tmp391, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp391, atslab_2, tmp392) ; ats_selptrset_mac(anairiats_sum_8, tmp391, atslab_3, tmp393) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp391 ; tmp302 = ats_false_bool ; break ; } while (0) ; return (tmp302) ; } /* end of [insert_92] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } insert_92_closure_type ; ats_bool_type insert_92_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return insert_92 (((insert_92_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_92_closure_init (insert_92_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_92_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type insert_92_closure_make (ats_clo_ref_type env0) { insert_92_closure_type *p_clo = ATS_MALLOC(sizeof(insert_92_closure_type)) ; insert_92_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_03768_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp301) ; __ats_lab_linset_insert_03768_ats_ptr_type: tmp301 = insert_92 (arg2, arg0, arg1) ; return (tmp301) ; } /* end of [linset_insert_03768_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16448(line=827, offs=3) -- 16535(line=830, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_bool_type, tmp300) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add: /* ats_ptr_type tmp299 ; */ tmp299 = arg0 ; tmp300 = linset_insert_03768_ats_ptr_type ((&tmp299), arg1, statmp174) ; tmp298 = tmp299 ; return (tmp298) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19) */ ATSstaticdec() ats_ptr_type aux_98 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; __ats_lab_aux_98: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp397 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp398 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ; tmp399 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ; ATS_FREE(arg0) ; tmp400 = aux_98 (tmp399, arg1) ; tmp401 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp401, atslab_0, tmp397) ; ats_selptrset_mac(anairiats_sum_2, tmp401, atslab_1, tmp400) ; arg0 = tmp398 ; arg1 = tmp401 ; goto __ats_lab_aux_98 ; // tail call break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp396 = arg1 ; break ; } while (0) ; return (tmp396) ; } /* end of [aux_98] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_free_03784_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp402) ; __ats_lab_linset_listize_free_03784_ats_ptr_type: tmp402 = (ats_sum_ptr_type)0 ; tmp395 = aux_98 (arg0, tmp402) ; return (tmp395) ; } /* end of [linset_listize_free_03784_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16605(line=833, offs=26) -- 16639(line=833, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp394) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free: tmp394 = linset_listize_free_03784_ats_ptr_type (arg0) ; return (tmp394) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16889(line=850, offs=11) -- 16974(line=853, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_99 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp403) ; __ats_lab___ats_fun_99: tmp403 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ; return (tmp403) ; } /* end of [__ats_fun_99] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_99_closure_type ; ats_int_type __ats_fun_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_99 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_99_closure_init (__ats_fun_99_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_99_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_99_closure_make () { __ats_fun_99_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_99_closure_type)) ; __ats_fun_99_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 2871(line=98, offs=29) -- 2880(line=98, offs=38) */ ATSstaticdec() ats_ptr_type funmap_make_nil_03791_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp406) ; __ats_lab_funmap_make_nil_03791_: tmp406 = (ats_sum_ptr_type)0 ; return (tmp406) ; } /* end of [funmap_make_nil_03791_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 17036(line=859, offs=14) -- 17064(line=859, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp405) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_nil: tmp405 = funmap_make_nil_03791_ () ; return (tmp405) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 1960(line=59, offs=32) -- 1988(line=59, offs=60) */ ATSstaticdec() ats_int_type compare_key_key_03790_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp418) ; __ats_lab_compare_key_key_03790_ats_ptr_type: tmp418 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp418) ; } /* end of [compare_key_key_03790_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 5755(line=209, offs=46) -- 6474(line=231, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_int_type, tmp434) ; ATSlocal (ats_int_type, tmp435) ; ATSlocal (ats_int_type, tmp436) ; ATSlocal (ats_int_type, tmp437) ; ATSlocal (ats_bool_type, tmp438) ; ATSlocal (ats_int_type, tmp439) ; ATSlocal (ats_int_type, tmp440) ; ATSlocal (ats_int_type, tmp441) ; ATSlocal (ats_int_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_int_type, tmp448) ; ATSlocal (ats_int_type, tmp449) ; ATSlocal (ats_int_type, tmp450) ; ATSlocal (ats_int_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_int_type, tmp453) ; ATSlocal (ats_int_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_int_type, tmp456) ; ATSlocal (ats_int_type, tmp457) ; __ats_lab_avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp430 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; tmp431 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_2) ; tmp432 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_3) ; tmp433 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_4) ; do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (tmp432 == (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp435 = ats_caselptrlab_mac(anairiats_sum_9, tmp432, atslab_0) ; tmp434 = tmp435 ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (tmp432 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: tmp434 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (tmp433 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp437 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_0) ; tmp436 = tmp437 ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (tmp433 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: tmp436 = 0 ; break ; } while (0) ; tmp439 = atspre_iadd (tmp434, 0) ; tmp438 = atspre_igte (tmp439, tmp436) ; if (tmp438) { tmp440 = atspre_iadd (tmp436, 1) ; tmp442 = atspre_imax (tmp434, tmp440) ; tmp441 = atspre_iadd (1, tmp442) ; tmp443 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_0, tmp440) ; ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_3, tmp433) ; ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_4, arg5) ; tmp429 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_0, tmp441) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_1, tmp430) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_2, tmp431) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_3, tmp432) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_4, tmp443) ; } else { // if (tmp433 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp444 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_1) ; tmp445 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_2) ; tmp446 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_3) ; tmp447 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_4) ; do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (tmp446 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_9, tmp446, atslab_0) ; tmp448 = tmp449 ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (tmp446 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: tmp448 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (tmp447 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp451 = ats_caselptrlab_mac(anairiats_sum_9, tmp447, atslab_0) ; tmp450 = tmp451 ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (tmp447 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: tmp450 = 0 ; break ; } while (0) ; tmp454 = atspre_imax (tmp434, tmp448) ; tmp453 = atspre_iadd (1, tmp454) ; tmp452 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_0, tmp453) ; ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_1, tmp430) ; ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_2, tmp431) ; ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_3, tmp432) ; ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_4, tmp446) ; tmp457 = atspre_imax (tmp450, arg4) ; tmp456 = atspre_iadd (1, tmp457) ; tmp455 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_0, tmp456) ; ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_3, tmp447) ; ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_4, arg5) ; tmp429 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_1, tmp444) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_2, tmp445) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_3, tmp452) ; ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_4, tmp455) ; } /* end of [if] */ return (tmp429) ; } /* end of [avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 4857(line=181, offs=46) -- 5607(line=203, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_int_type, tmp473) ; ATSlocal (ats_int_type, tmp474) ; ATSlocal (ats_int_type, tmp475) ; ATSlocal (ats_int_type, tmp476) ; ATSlocal (ats_bool_type, tmp477) ; ATSlocal (ats_int_type, tmp478) ; ATSlocal (ats_int_type, tmp479) ; ATSlocal (ats_int_type, tmp480) ; ATSlocal (ats_int_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_int_type, tmp487) ; ATSlocal (ats_int_type, tmp488) ; ATSlocal (ats_int_type, tmp489) ; ATSlocal (ats_int_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_int_type, tmp492) ; ATSlocal (ats_int_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_int_type, tmp495) ; ATSlocal (ats_int_type, tmp496) ; __ats_lab_avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type: // if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp469 = ats_caselptrlab_mac(anairiats_sum_9, arg5, atslab_1) ; tmp470 = ats_caselptrlab_mac(anairiats_sum_9, arg5, atslab_2) ; tmp471 = ats_caselptrlab_mac(anairiats_sum_9, arg5, atslab_3) ; tmp472 = ats_caselptrlab_mac(anairiats_sum_9, arg5, atslab_4) ; do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (tmp471 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp474 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_0) ; tmp473 = tmp474 ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: // if (tmp471 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_87_1: tmp473 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (tmp472 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp476 = ats_caselptrlab_mac(anairiats_sum_9, tmp472, atslab_0) ; tmp475 = tmp476 ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (tmp472 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: tmp475 = 0 ; break ; } while (0) ; tmp478 = atspre_iadd (tmp475, 0) ; tmp477 = atspre_ilte (tmp473, tmp478) ; if (tmp477) { tmp479 = atspre_iadd (tmp473, 1) ; tmp481 = atspre_imax (tmp479, tmp475) ; tmp480 = atspre_iadd (1, tmp481) ; tmp482 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_0, tmp479) ; ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_3, arg3) ; ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_4, tmp471) ; tmp468 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_0, tmp480) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_1, tmp469) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_2, tmp470) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_3, tmp482) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_4, tmp472) ; } else { // if (tmp471 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp483 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_1) ; tmp484 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_2) ; tmp485 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_3) ; tmp486 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_4) ; do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (tmp485 == (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp488 = ats_caselptrlab_mac(anairiats_sum_9, tmp485, atslab_0) ; tmp487 = tmp488 ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (tmp485 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: tmp487 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (tmp486 == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp490 = ats_caselptrlab_mac(anairiats_sum_9, tmp486, atslab_0) ; tmp489 = tmp490 ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (tmp486 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp489 = 0 ; break ; } while (0) ; tmp493 = atspre_imax (arg2, tmp487) ; tmp492 = atspre_iadd (1, tmp493) ; tmp491 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_0, tmp492) ; ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_3, arg3) ; ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_4, tmp485) ; tmp496 = atspre_imax (tmp489, tmp475) ; tmp495 = atspre_iadd (1, tmp496) ; tmp494 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_0, tmp495) ; ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_1, tmp469) ; ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_2, tmp470) ; ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_3, tmp486) ; ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_4, tmp472) ; tmp468 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_0, arg4) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_1, tmp483) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_2, tmp484) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_3, tmp491) ; ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_4, tmp494) ; } /* end of [if] */ return (tmp468) ; } /* end of [avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6597(line=238, offs=7) -- 7899(line=271, offs=6) */ ATSstaticdec() ats_ptr_type insert_104 (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_int_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_int_type, tmp417) ; ATSlocal (ats_bool_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_int_type, tmp421) ; ATSlocal (ats_int_type, tmp422) ; ATSlocal (ats_int_type, tmp423) ; ATSlocal (ats_int_type, tmp424) ; ATSlocal (ats_bool_type, tmp425) ; ATSlocal (ats_int_type, tmp426) ; ATSlocal (ats_int_type, tmp427) ; ATSlocal (ats_int_type, tmp428) ; ATSlocal (ats_bool_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_int_type, tmp460) ; ATSlocal (ats_int_type, tmp461) ; ATSlocal (ats_int_type, tmp462) ; ATSlocal (ats_int_type, tmp463) ; ATSlocal (ats_bool_type, tmp464) ; ATSlocal (ats_int_type, tmp465) ; ATSlocal (ats_int_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; __ats_lab_insert_104: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; } __ats_lab_69_1: tmp412 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp413 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp414 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ; tmp415 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ; tmp416 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_4) ; tmp417 = compare_key_key_03790_ats_ptr_type (env0, tmp413, env2) ; tmp419 = atspre_lt_int_int (tmp417, 0) ; if (tmp419) { tmp420 = insert_104 (env0, env1, env2, tmp415, arg1) ; do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (tmp420 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp422 = ats_caselptrlab_mac(anairiats_sum_9, tmp420, atslab_0) ; tmp421 = tmp422 ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (tmp420 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp421 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (tmp416 == (ats_sum_ptr_type)0) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp424 = ats_caselptrlab_mac(anairiats_sum_9, tmp416, atslab_0) ; tmp423 = tmp424 ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: // if (tmp416 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_73_1: tmp423 = 0 ; break ; } while (0) ; tmp426 = atspre_isub (tmp421, tmp423) ; tmp425 = atspre_ilte (tmp426, 1) ; if (tmp425) { tmp428 = atspre_imax (tmp421, tmp423) ; tmp427 = atspre_iadd (1, tmp428) ; tmp411 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_0, tmp427) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_1, tmp413) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_2, tmp414) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_3, tmp420) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_4, tmp416) ; } else { tmp411 = avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type (tmp413, tmp414, tmp421, tmp420, tmp423, tmp416) ; } /* end of [if] */ } else { tmp458 = atspre_gt_int_int (tmp417, 0) ; if (tmp458) { tmp459 = insert_104 (env0, env1, env2, tmp416, arg1) ; do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (tmp415 == (ats_sum_ptr_type)0) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp461 = ats_caselptrlab_mac(anairiats_sum_9, tmp415, atslab_0) ; tmp460 = tmp461 ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: // if (tmp415 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_83_1: tmp460 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (tmp459 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp463 = ats_caselptrlab_mac(anairiats_sum_9, tmp459, atslab_0) ; tmp462 = tmp463 ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (tmp459 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp462 = 0 ; break ; } while (0) ; tmp465 = atspre_isub (tmp462, tmp460) ; tmp464 = atspre_ilte (tmp465, 1) ; if (tmp464) { tmp467 = atspre_imax (tmp460, tmp462) ; tmp466 = atspre_iadd (1, tmp467) ; tmp411 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_0, tmp466) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_1, tmp413) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_2, tmp414) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_3, tmp415) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_4, tmp459) ; } else { tmp411 = avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type (tmp413, tmp414, tmp460, tmp415, tmp462, tmp459) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp411 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_0, tmp412) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_1, tmp413) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_2, env1) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_3, tmp415) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_4, tmp416) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp497 = (ats_sum_ptr_type)0 ; tmp498 = (ats_sum_ptr_type)0 ; tmp411 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_2, env1) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_3, tmp497) ; ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_4, tmp498) ; break ; } while (0) ; return (tmp411) ; } /* end of [insert_104] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_clo_ref_type closure_env_2 ; } insert_104_closure_type ; ats_ptr_type insert_104_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_104 (((insert_104_closure_type*)cloptr)->closure_env_0, ((insert_104_closure_type*)cloptr)->closure_env_1, ((insert_104_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_104_closure_init (insert_104_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_104_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type insert_104_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) { insert_104_closure_type *p_clo = ATS_MALLOC(sizeof(insert_104_closure_type)) ; insert_104_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6560(line=237, offs=3) -- 7985(line=274, offs=2) */ ATSstaticdec() ats_bool_type funmap_insert_03798_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp410) ; ATSlocal (ats_bool_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; __ats_lab_funmap_insert_03798_ats_ptr_type_2cats_ptr_type: /* ats_bool_type tmp499 ; */ tmp500 = insert_104 (arg1, arg2, arg3, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp499)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp500 ; tmp410 = tmp499 ; return (tmp410) ; } /* end of [funmap_insert_03798_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 17091(line=863, offs=3) -- 17200(line=866, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_bool_type, tmp409) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add: /* ats_ptr_type tmp408 ; */ tmp408 = arg0 ; tmp409 = funmap_insert_03798_ats_ptr_type_2cats_ptr_type ((&tmp408), arg1, arg2, statmp404) ; tmp407 = tmp408 ; return (tmp407) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3756(line=137, offs=7) -- 4334(line=154, offs=6) */ ATSstaticdec() ats_bool_type search_110 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_int_type, tmp510) ; ATSlocal (ats_bool_type, tmp511) ; ATSlocal (ats_bool_type, tmp512) ; __ats_lab_search_110: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_99_0 ; } __ats_lab_95_1: tmp506 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp507 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ; tmp508 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ; tmp509 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_4) ; tmp510 = compare_key_key_03790_ats_ptr_type (env0, tmp506, env1) ; do { /* branch: __ats_lab_96 */ __ats_lab_96_0: __ats_lab_96_1: tmp511 = atspre_lt_int_int (tmp510, 0) ; if (!tmp511) { goto __ats_lab_97_1 ; } arg0 = tmp508 ; arg1 = arg1 ; goto __ats_lab_search_110 ; // tail call break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: __ats_lab_97_1: tmp512 = atspre_gt_int_int (tmp510, 0) ; if (!tmp512) { goto __ats_lab_98_1 ; } arg0 = tmp509 ; arg1 = arg1 ; goto __ats_lab_search_110 ; // tail call break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: __ats_lab_98_1: ats_ptrget_mac(ats_ptr_type, arg1) = tmp507 ; tmp505 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_99_1: tmp505 = ats_false_bool ; break ; } while (0) ; return (tmp505) ; } /* end of [search_110] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } search_110_closure_type ; ats_bool_type search_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return search_110 (((search_110_closure_type*)cloptr)->closure_env_0, ((search_110_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type search_110_closure_init (search_110_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&search_110_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type search_110_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { search_110_closure_type *p_clo = ATS_MALLOC(sizeof(search_110_closure_type)) ; search_110_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3706(line=136, offs=3) -- 4355(line=155, offs=2) */ ATSstaticdec() ats_bool_type funmap_search_03796_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp504) ; __ats_lab_funmap_search_03796_ats_ptr_type_2cats_ptr_type: tmp504 = search_110 (arg1, arg2, arg0, arg3) ; return (tmp504) ; } /* end of [funmap_search_03796_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 17257(line=870, offs=7) -- 17548(line=881, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_find (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_bool_type, tmp503) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_find: /* ats_ptr_type tmp502 ; */ tmp503 = funmap_search_03796_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp404, (&tmp502)) ; if (tmp503) { tmp501 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp501, atslab_0, tmp502) ; } else { tmp501 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp501) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_find] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp174, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp404, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp174 = __ats_fun_69_closure_make () ; statmp404 = __ats_fun_99_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_scst_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_dats.c0000644000175000017500000075551313431250607022627 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_3 ; typedef struct { ats_ptr_type atslab_c3nstr_loc ; ats_ptr_type atslab_c3nstr_kind ; ats_ptr_type atslab_c3nstr_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_c3nstroptref_loc ; ats_ptr_type atslab_c3nstroptref_ref ; } anairiats_rec_8 ; typedef struct { ats_ptr_type atslab_h3ypo_loc ; ats_ptr_type atslab_h3ypo_node ; } anairiats_rec_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_12 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_s2exparg_loc ; ats_ptr_type atslab_s2exparg_node ; } anairiats_rec_14 ; typedef struct { anairiats_rec_2 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_t2mpmarg_loc ; ats_ptr_type atslab_t2mpmarg_arg ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_19 ; typedef struct { ats_ptr_type atslab_sp2at_loc ; ats_ptr_type atslab_sp2at_exp ; ats_ptr_type atslab_sp2at_node ; } anairiats_rec_20 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_21 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_22 ; typedef struct { ats_char_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_23 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_24 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_25 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_26 ; typedef struct { ats_bool_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_28 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__lcons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__lnil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__LABP2ATCST_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcon_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCempty_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCintc_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcharc_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCfloat_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCstring_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCrec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_nabs_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_napp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_arity_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_srtck_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_cp2atcstlst_arity_87) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKcase_exhaustiveness_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isnat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isdec_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPObind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOeqeq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRitmlst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRsolverify_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsvar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMhypo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsVar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_ref_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMdisj_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsolassert_6) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_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_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_neq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char) (ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni) (ats_int_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_absuni) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_opnexi) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool) (ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgte) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_char_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_d3exp_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d2con_instantiate) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_termet_instantiate) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, patsopt_s2exp_tmp_instantiate_rest) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa) (anairiats_rec_2) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_search) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_insert) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__trans3_env_push_v = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02164_ () ; static ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_9 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type stasub_s2varlst_instantiate_none_22 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type prerr_error3_loc_02170_ (ats_ptr_type arg0) ; static ats_void_type auxerr1_24 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type auxerr2_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type stasub_s2varlst_instantiate_some_23 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_ptr_type revapp_30 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type stasub_s2varlst_instcollect_27 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type loop_32 (ats_int_type env0, ats_ptr_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ; static ats_clo_ptr_type loop_32_closure_make (ats_int_type env0, ats_ptr_type env1) ; static ats_ptr_type loop_32_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ; static ats_void_type loop_37 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_39 (ats_ptr_type arg0) ; static ats_void_type auxerr_41 (ats_ptr_type arg0) ; static ats_ptr_type loop_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ; static ats_ptr_type loop_44 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_void_type auxerr_47 (ats_ptr_type arg0) ; static ats_ptr_type auxsome_48 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_void_type loop_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_71 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_anairiats_rec_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_anairiats_rec_2 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_86 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_89 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type loop_89_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type loop_89_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type loop_98 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_99 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_99_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type aux_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type aux_100 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_100_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type aux_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_int_type loop_102 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_clo_ptr_type loop_102_closure_make (ats_ptr_type env0) ; static ats_int_type loop_102_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_int_type cmp_104 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux2_01343_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type aux3_01354_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux4_01361_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux1_01334_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_mergesort_01452_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_110 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type aux_110_closure_make (ats_ptr_type env0) ; static ats_void_type aux_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type trans3_env_hypadd_disj_111 (ats_ptr_type arg0) ; static ats_ptr_type aux_113 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_113_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type aux_113_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxres_123 (ats_ptr_type arg0) ; static ats_ptr_type auxarg_124 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp310) ; ATSstatic (ats_ptr_type, statmp311) ; ATSstatic (ats_ptr_type, statmp313) ; ATSstatic (ats_ptr_type, statmp314) ; ATSstatic (ats_ptr_type, statmp366) ; ATSstatic (ats_ptr_type, statmp367) ; ATSstatic (ats_ptr_type, statmp368) ; ATSstatic (ats_ptr_type, statmp369) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 2012(line=68, offs=28) -- 2040(line=68, offs=56) */ ATSstaticdec() ats_void_type prerr_FILENAME_02164_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02164_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_env")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02164_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_ptr0_get_01759_ats_ptr_type: tmp4 = ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp4) ; } /* end of [ptr0_get_01759_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41) */ ATSstaticdec() ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ptrget_01763_ats_ptr_type: tmp3 = ptr0_get_01759_ats_ptr_type (arg0) ; return (tmp3) ; } /* end of [ptrget_01763_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 2622(line=103, offs=24) -- 2720(line=105, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt (arg0) ; tmp1 = ptrget_01763_ats_ptr_type (tmp2) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 2802(line=111, offs=3) -- 2894(line=115, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop: tmp6 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ; tmp7 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp7)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp7, atslab_0, arg1) ; tmp5 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp5, atslab_c3nstr_loc, arg0) ; ats_selptrset_mac(anairiats_rec_4, tmp5, atslab_c3nstr_kind, tmp6) ; ats_selptrset_mac(anairiats_rec_4, tmp5, atslab_c3nstr_node, tmp7) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 2946(line=119, offs=3) -- 3041(line=123, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst: tmp9 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp9)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp9, atslab_0, arg2) ; tmp8 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp8, atslab_c3nstr_loc, arg0) ; ats_selptrset_mac(anairiats_rec_4, tmp8, atslab_c3nstr_kind, arg1) ; ats_selptrset_mac(anairiats_rec_4, tmp8, atslab_c3nstr_node, tmp9) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_9 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab_loop_9: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp16 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp17 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp17, atslab_0, tmp15) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp17 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp18 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp16 ; arg1 = tmp18 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp19 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp19 ; break ; } while (0) ; return /* (tmp14) */ ; } /* end of [loop_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp20 ; */ /* tmp21 = */ loop_9 (arg0, (&tmp20)) ; tmp13 = tmp20 ; return (tmp13) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4725(line=167, offs=18) -- 4776(line=168, offs=44) */ ATSstaticdec() ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; __ats_lab_list_vt_copy_01498_ats_ptr_type: tmp12 = list_copy_01322_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp12) ; } /* end of [list_vt_copy_01498_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 3108(line=127, offs=3) -- 3325(line=135, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness: tmp11 = list_vt_copy_01498_ats_ptr_type (arg2) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp22)->tag = 1 ; ats_selptrset_mac(anairiats_sum_7, tmp22, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp22, atslab_1, ats_castfn_mac(ats_ptr_type, tmp11)) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ; tmp23 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp23)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp23, atslab_0, tmp24) ; tmp10 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp10, atslab_c3nstr_loc, arg0) ; ats_selptrset_mac(anairiats_rec_4, tmp10, atslab_c3nstr_kind, tmp22) ; ats_selptrset_mac(anairiats_rec_4, tmp10, atslab_c3nstr_node, tmp23) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 3398(line=139, offs=3) -- 3553(line=145, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isnat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isnat: tmp26 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isnat_2) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (0) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgte (arg1, tmp29) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp27)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp27, atslab_0, tmp28) ; tmp25 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp25, atslab_c3nstr_loc, arg0) ; ats_selptrset_mac(anairiats_rec_4, tmp25, atslab_c3nstr_kind, tmp26) ; ats_selptrset_mac(anairiats_rec_4, tmp25, atslab_c3nstr_node, tmp27) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isnat] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 3619(line=149, offs=3) -- 3741(line=153, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec: tmp31 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isdec_3) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec (arg1, arg2) ; tmp32 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp32)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp32, atslab_0, tmp33) ; tmp30 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp30, atslab_c3nstr_loc, arg0) ; ats_selptrset_mac(anairiats_rec_4, tmp30, atslab_c3nstr_kind, tmp31) ; ats_selptrset_mac(anairiats_rec_4, tmp30, atslab_c3nstr_node, tmp32) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 3825(line=159, offs=3) -- 3947(line=164, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify: tmp35 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10) ; tmp36 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp36)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp36, atslab_0, arg1) ; tmp34 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp34, atslab_c3nstr_loc, arg0) ; ats_selptrset_mac(anairiats_rec_4, tmp34, atslab_c3nstr_kind, tmp35) ; ats_selptrset_mac(anairiats_rec_4, tmp34, atslab_c3nstr_node, tmp36) ; return (tmp34) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp40 ; */ tmp40 = arg0 ; tmp39 = atspre_ref_make_elt_tsz ((&tmp40), sizeof(ats_ptr_type)) ; return (tmp39) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4034(line=170, offs=3) -- 4138(line=174, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none: tmp41 = (ats_sum_ptr_type)0 ; tmp38 = ref_01088_ats_ptr_type (tmp41) ; tmp37 = ATS_MALLOC(sizeof(anairiats_rec_8)) ; ats_selptrset_mac(anairiats_rec_8, tmp37, atslab_c3nstroptref_loc, arg0) ; ats_selptrset_mac(anairiats_rec_8, tmp37, atslab_c3nstroptref_ref, tmp38) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4219(line=180, offs=3) -- 4283(line=182, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop: tmp43 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp43)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp43, atslab_0, arg1) ; tmp42 = ATS_MALLOC(sizeof(anairiats_rec_9)) ; ats_selptrset_mac(anairiats_rec_9, tmp42, atslab_h3ypo_loc, arg0) ; ats_selptrset_mac(anairiats_rec_9, tmp42, atslab_h3ypo_node, tmp43) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4331(line=186, offs=3) -- 4450(line=189, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind: tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp46 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp46)->tag = 1 ; ats_selptrset_mac(anairiats_sum_7, tmp46, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp46, atslab_1, tmp45) ; tmp44 = ATS_MALLOC(sizeof(anairiats_rec_9)) ; ats_selptrset_mac(anairiats_rec_9, tmp44, atslab_h3ypo_loc, arg0) ; ats_selptrset_mac(anairiats_rec_9, tmp44, atslab_h3ypo_node, tmp46) ; return (tmp44) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4498(line=193, offs=3) -- 4647(line=197, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq: tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp50 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp50)->tag = 2 ; ats_selptrset_mac(anairiats_sum_7, tmp50, atslab_0, tmp48) ; ats_selptrset_mac(anairiats_sum_7, tmp50, atslab_1, tmp49) ; tmp47 = ATS_MALLOC(sizeof(anairiats_rec_9)) ; ats_selptrset_mac(anairiats_rec_9, tmp47, atslab_h3ypo_loc, arg0) ; ats_selptrset_mac(anairiats_rec_9, tmp47, atslab_h3ypo_node, tmp50) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4724(line=203, offs=3) -- 4840(line=208, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt: tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt (arg0, arg1) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar (tmp52) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var (tmp52) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4902(line=211, offs=20) -- 5256(line=226, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var: tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var (arg0, arg1) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar (tmp55) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var (tmp55) ; return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 5481(line=239, offs=5) -- 5798(line=251, offs=22) */ ATSstaticdec() ats_void_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; __ats_lab_loop_21: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp60 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var (arg0, tmp59) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg2, tmp59, tmp61) ; arg0 = arg0 ; arg1 = tmp60 ; arg2 = arg2 ; goto __ats_lab_loop_21 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp58) */ ; } /* end of [loop_21] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 5342(line=232, offs=3) -- 5894(line=259, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp63) ; // ATSlocal_void (tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst: /* ats_ptr_type tmp63 ; */ tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; /* tmp64 = */ loop_21 (arg0, arg1, (&tmp63)) ; tmp57 = tmp63 ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 5960(line=266, offs=1) -- 6428(line=288, offs=4) */ ATSstaticdec() ats_void_type stasub_s2varlst_instantiate_none_22 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; __ats_lab_stasub_s2varlst_instantiate_none_22: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var (arg1, tmp66) ; /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp66, tmp68) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp67 ; arg3 = arg3 ; goto __ats_lab_stasub_s2varlst_instantiate_none_22 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: break ; } while (0) ; return /* (tmp65) */ ; } /* end of [stasub_s2varlst_instantiate_none_22] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02170_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab_prerr_error3_loc_02170_: /* tmp74 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp73 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp73) */ ; } /* end of [prerr_error3_loc_02170_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 6664(line=301, offs=1) -- 7110(line=313, offs=4) */ ATSstaticdec() ats_void_type auxerr1_24 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; ATSlocal (ats_bool_type, tmp78) ; // ATSlocal_void (tmp79) ; ATSlocal (ats_bool_type, tmp80) ; // ATSlocal_void (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab_auxerr1_24: /* tmp72 = */ prerr_error3_loc_02170_ (arg0) ; /* tmp75 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("stasub_s2varlst_instantiate_some")) ; /* tmp76 = */ atspre_prerr_string (ATSstrcst(": static arity mismatch")) ; tmp78 = atspre_gt_int_int (arg1, 0) ; if (tmp78) { /* tmp77 = */ atspre_prerr_string (ATSstrcst(": more arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ tmp80 = atspre_lt_int_int (arg1, 0) ; if (tmp80) { /* tmp79 = */ atspre_prerr_string (ATSstrcst(": fewer arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ /* tmp81 = */ atspre_prerr_newline () ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp82)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp82, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp82, atslab_1, arg1) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp82) ; return /* (tmp71) */ ; } /* end of [auxerr1_24] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 7135(line=315, offs=1) -- 7542(line=326, offs=4) */ ATSstaticdec() ats_void_type auxerr2_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab_auxerr2_26: /* tmp84 = */ prerr_error3_loc_02170_ (arg0) ; /* tmp85 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("stasub_s2varlst_instantiate_some")) ; /* tmp86 = */ atspre_prerr_string (ATSstrcst(": mismatch of sorts:\n")) ; /* tmp87 = */ atspre_prerr_string (ATSstrcst("the needed sort is [")) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ; /* tmp89 = */ atspre_prerr_string (ATSstrcst("];")) ; /* tmp90 = */ atspre_prerr_newline () ; /* tmp91 = */ atspre_prerr_string (ATSstrcst("the actual sort is [")) ; /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ; /* tmp93 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp94 = */ atspre_prerr_newline () ; tmp95 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp95)->tag = 5 ; ats_selptrset_mac(anairiats_sum_11, tmp95, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_11, tmp95, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp95, atslab_2, arg2) ; /* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp95) ; return /* (tmp83) */ ; } /* end of [auxerr2_26] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 6479(line=291, offs=1) -- 8632(line=368, offs=4) */ ATSstaticdec() ats_void_type stasub_s2varlst_instantiate_some_23 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; // ATSlocal_void (tmp103) ; ATSlocal (ats_int_type, tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; __ats_lab_stasub_s2varlst_instantiate_some_23: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_6_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp97 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp96) ; tmp101 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp98), atslab_s2exp_srt) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp101, tmp100) ; if (tmp102) { /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp96, tmp98) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp97 ; arg3 = tmp99 ; arg4 = arg4 ; goto __ats_lab_stasub_s2varlst_instantiate_some_23 ; // tail call } else { tmp104 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp104 ; /* tmp105 = */ auxerr2_26 (arg1, tmp100, tmp101) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp100) ; /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp96, tmp107) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp97 ; arg3 = tmp99 ; arg4 = arg4 ; goto __ats_lab_stasub_s2varlst_instantiate_some_23 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp108 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp108 ; /* tmp70 = */ auxerr1_24 (arg1, 1) ; break ; } while (0) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp109 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp109 ; /* tmp70 = */ auxerr1_24 (arg1, -1) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: break ; } while (0) ; break ; } while (0) ; return /* (tmp70) */ ; } /* end of [stasub_s2varlst_instantiate_some_23] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_30 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_revapp_30: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp119 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp120 = ats_ptrget_mac(ats_ptr_type, tmp119) ; ats_ptrget_mac(ats_ptr_type, tmp119) = arg1 ; tmp121 = arg0 ; arg0 = tmp120 ; arg1 = tmp121 ; goto __ats_lab_revapp_30 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp118 = arg1 ; break ; } while (0) ; return (tmp118) ; } /* end of [revapp_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp117 = revapp_30 (arg0, arg1) ; return (tmp117) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp122 = (ats_sum_ptr_type)0 ; tmp116 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp122) ; return (tmp116) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 8683(line=371, offs=1) -- 9279(line=398, offs=4) */ ATSstaticdec() ats_ptr_type stasub_s2varlst_instcollect_27 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab_stasub_s2varlst_instcollect_27: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp112 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var (arg1, tmp111) ; /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp111, tmp113) ; tmp115 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp115, atslab_0, tmp113) ; ats_selptrset_mac(anairiats_sum_6, tmp115, atslab_1, arg3) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp112 ; arg3 = tmp115 ; goto __ats_lab_stasub_s2varlst_instcollect_27 ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp110 = list_vt_reverse_01506_ats_ptr_type (arg3) ; break ; } while (0) ; return (tmp110) ; } /* end of [stasub_s2varlst_instcollect_27] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 9449(line=406, offs=5) -- 10109(line=431, offs=4) */ ATSstaticdec() ats_ptr_type loop_32 (ats_int_type env0, ats_ptr_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_bool_type, tmp129) ; // ATSlocal_void (tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; __ats_lab_loop_32: tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; /* ats_ptr_type tmp126 ; */ /* ats_ptr_type tmp127 ; */ /* ats_ptr_type tmp128 ; */ tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni (env0, tmp125, (&tmp126), (&tmp127), (&tmp128)) ; if (tmp129) { /* tmp130 = */ stasub_s2varlst_instantiate_none_22 (arg0, env1, tmp126, arg3) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (ats_ptrget_mac(ats_ptr_type, arg0), tmp127) ; tmp132 = list_vt_reverse_append_01507_ats_ptr_type (tmp131, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp132 ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp128) ; arg0 = arg0 ; arg1 = tmp133 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_32 ; // tail call } else { tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (ats_ptrget_mac(ats_ptr_type, arg0), tmp125) ; } /* end of [if] */ return (tmp124) ; } /* end of [loop_32] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; ats_ptr_type closure_env_1 ; } loop_32_closure_type ; ats_ptr_type loop_32_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { return loop_32 (((loop_32_closure_type*)cloptr)->closure_env_0, ((loop_32_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type loop_32_closure_init (loop_32_closure_type *p_clo, ats_int_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_32_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type loop_32_closure_make (ats_int_type env0, ats_ptr_type env1) { loop_32_closure_type *p_clo = ATS_MALLOC(sizeof(loop_32_closure_type)) ; loop_32_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 9386(line=404, offs=3) -- 10403(line=444, offs=4) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp123) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all: /* ats_ptr_type tmp134 ; */ tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; /* ats_ptr_type tmp136 ; */ tmp136 = (ats_sum_ptr_type)0 ; tmp137 = loop_32 (arg0, arg2, (&tmp134), tmp135, (&tmp136), arg3) ; /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp134) ; tmp139 = list_vt_reverse_01506_ats_ptr_type (tmp136) ; tmp123.atslab_0 = tmp137 ; tmp123.atslab_1 = tmp139 ; return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 10484(line=448, offs=3) -- 10559(line=449, offs=54) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp140) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all: tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all (0, arg0, arg1, arg2) ; return (tmp140) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 10637(line=454, offs=3) -- 10712(line=455, offs=54) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all: tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all (1, arg0, arg1, arg2) ; return (tmp141) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_37 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab_loop_37: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp161 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp161 ; arg1 = arg1 ; goto __ats_lab_loop_37 ; // tail call break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp160) */ ; } /* end of [loop_37] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; // ATSlocal_void (tmp162) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp159 ; */ tmp159 = arg0 ; /* tmp162 = */ loop_37 ((&tmp159), arg1) ; tmp158 = tmp159 ; return (tmp158) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 10793(line=460, offs=3) -- 11617(line=488, offs=4) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp142) ; ATSlocal (anairiats_rec_1, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_int_type, tmp152) ; // ATSlocal_void (tmp153) ; ATSlocal (anairiats_rec_1, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all: tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all (arg0, arg1, arg2) ; tmp144 = ats_select_mac(tmp143, atslab_0) ; tmp145 = ats_select_mac(tmp143, atslab_1) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp144) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp146) ; tmp148 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp147), atslab_s2exp_node) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp148)->tag != 20) { goto __ats_lab_23_0 ; } __ats_lab_16_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_11, tmp148, atslab_0) ; tmp150 = ats_caselptrlab_mac(anairiats_sum_11, tmp148, atslab_1) ; tmp151 = ats_caselptrlab_mac(anairiats_sum_11, tmp148, atslab_2) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (tmp149 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_17_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_13, tmp149, atslab_0) ; /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_termet_instantiate (arg1, tmp152, tmp150) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all (tmp151, arg1, arg2) ; tmp155 = ats_select_mac(tmp154, atslab_0) ; tmp156 = ats_select_mac(tmp154, atslab_1) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (tmp156 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_18_1: tmp157 = list_vt_append_01504_ats_ptr_type (tmp145, tmp156) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp156 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp157 = tmp145 ; break ; } while (0) ; tmp142.atslab_0 = tmp155 ; tmp142.atslab_1 = tmp157 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp149 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp142.atslab_0 = tmp151 ; tmp142.atslab_1 = tmp145 ; break ; } while (0) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp142.atslab_0 = tmp147 ; tmp142.atslab_1 = tmp145 ; break ; } while (0) ; return (tmp142) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 11786(line=499, offs=1) -- 12065(line=511, offs=4) */ ATSstaticdec() ats_void_type auxerr_39 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; __ats_lab_auxerr_39: /* tmp166 = */ prerr_error3_loc_02170_ (arg0) ; /* tmp167 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("s2exp_exi_instantiate_sexparg")) ; /* tmp168 = */ atspre_prerr_string (ATSstrcst(": the static abstraction is overly done.")) ; /* tmp169 = */ atspre_prerr_newline () ; tmp170 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp170)->tag = 2 ; ats_selptrset_mac(anairiats_sum_10, tmp170, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp170, atslab_1, 1) ; /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp170) ; return /* (tmp165) */ ; } /* end of [auxerr_39] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 11723(line=494, offs=3) -- 13532(line=569, offs=4) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_sexparg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_int_type, tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; ATSlocal (ats_int_type, tmp196) ; // ATSlocal_void (tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_sexparg: tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_s2exparg_loc) ; tmp171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_s2exparg_node) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp171)->tag != 1) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all (arg0, tmp164, arg2) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp171)->tag != 0) { goto __ats_lab_28_0 ; } __ats_lab_25_1: tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg0) ; tmp173 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp172), atslab_s2exp_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp173)->tag != 27) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_11, tmp173, atslab_0) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_11, tmp173, atslab_1) ; tmp176 = ats_caselptrlab_mac(anairiats_sum_11, tmp173, atslab_2) ; /* ats_ptr_type tmp177 ; */ tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; /* tmp178 = */ stasub_s2varlst_instantiate_none_22 ((&tmp177), tmp164, tmp174, arg2) ; tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp177, tmp176) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp177, tmp175) ; /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp177) ; tmp163.atslab_0 = tmp179 ; tmp163.atslab_1 = tmp180 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp182 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp182 ; /* tmp183 = */ auxerr_39 (tmp164) ; tmp184 = (ats_sum_ptr_type)0 ; tmp163.atslab_0 = tmp172 ; tmp163.atslab_1 = tmp184 ; break ; } while (0) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (((ats_sum_ptr_type)tmp171)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp185 = ats_caselptrlab_mac(anairiats_sum_5, tmp171, atslab_0) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg0) ; tmp187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp186), atslab_s2exp_node) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp187)->tag != 27) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp188 = ats_caselptrlab_mac(anairiats_sum_11, tmp187, atslab_0) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_11, tmp187, atslab_1) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_11, tmp187, atslab_2) ; /* ats_ptr_type tmp191 ; */ tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; /* tmp192 = */ stasub_s2varlst_instantiate_some_23 ((&tmp191), tmp164, tmp188, tmp185, arg2) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp191, tmp190) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp191, tmp189) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp191) ; tmp163.atslab_0 = tmp193 ; tmp163.atslab_1 = tmp194 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp196 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp196 ; /* tmp197 = */ auxerr_39 (tmp164) ; tmp198 = (ats_sum_ptr_type)0 ; tmp163.atslab_0 = tmp186 ; tmp163.atslab_1 = tmp198 ; break ; } while (0) ; break ; } while (0) ; return (tmp163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_sexparg] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 13673(line=578, offs=1) -- 13985(line=588, offs=4) */ ATSstaticdec() ats_void_type auxerr_41 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; // ATSlocal_void (tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; __ats_lab_auxerr_41: /* tmp201 = */ prerr_error3_loc_02170_ (arg0) ; /* tmp202 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("s2exp_uni_instantiate_sexparglst")) ; /* tmp203 = */ atspre_prerr_string (ATSstrcst(": the static application is overly done.")) ; /* tmp204 = */ atspre_prerr_newline () ; tmp205 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp205)->tag = 3 ; ats_selptrset_mac(anairiats_sum_10, tmp205, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp205, atslab_1, 1) ; /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp205) ; return /* (tmp200) */ ; } /* end of [auxerr_41] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 14015(line=590, offs=5) -- 16342(line=660, offs=4) */ ATSstaticdec() ats_ptr_type loop_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; // ATSlocal_void (tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; // ATSlocal_void (tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_int_type, tmp228) ; // ATSlocal_void (tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; // ATSlocal_void (tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_int_type, tmp239) ; // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; __ats_lab_loop_42: tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_31_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ; tmp210 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp208), atslab_s2exparg_loc) ; tmp211 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp208), atslab_s2exparg_node) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp211)->tag != 1) { goto __ats_lab_35_0 ; } __ats_lab_32_1: tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp207), atslab_s2exp_node) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp212)->tag != 28) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_11, tmp212, atslab_0) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_11, tmp212, atslab_1) ; tmp215 = ats_caselptrlab_mac(anairiats_sum_11, tmp212, atslab_2) ; /* tmp216 = */ stasub_s2varlst_instantiate_none_22 (arg0, tmp210, tmp213, arg4) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (ats_ptrget_mac(ats_ptr_type, arg0), tmp214) ; tmp218 = list_vt_reverse_append_01507_ats_ptr_type (tmp217, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp218 ; tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp215) ; arg0 = arg0 ; arg1 = tmp219 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_loop_42 ; // tail call break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp209 ; arg4 = arg4 ; goto __ats_lab_loop_42 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp211)->tag != 0) { goto __ats_lab_38_0 ; } __ats_lab_35_1: tmp220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp207), atslab_s2exp_node) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp220)->tag != 28) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp221 = ats_caselptrlab_mac(anairiats_sum_11, tmp220, atslab_0) ; tmp222 = ats_caselptrlab_mac(anairiats_sum_11, tmp220, atslab_1) ; tmp223 = ats_caselptrlab_mac(anairiats_sum_11, tmp220, atslab_2) ; /* tmp224 = */ stasub_s2varlst_instantiate_none_22 (arg0, tmp210, tmp221, arg4) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (ats_ptrget_mac(ats_ptr_type, arg0), tmp222) ; tmp226 = list_vt_reverse_append_01507_ats_ptr_type (tmp225, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp226 ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp223) ; arg0 = arg0 ; arg1 = tmp227 ; arg2 = arg2 ; arg3 = tmp209 ; arg4 = arg4 ; goto __ats_lab_loop_42 ; // tail call break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp228 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp228 ; /* tmp229 = */ auxerr_41 (tmp210) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp209 ; arg4 = arg4 ; goto __ats_lab_loop_42 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (((ats_sum_ptr_type)tmp211)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_5, tmp211, atslab_0) ; tmp231 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp207), atslab_s2exp_node) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp231)->tag != 28) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp232 = ats_caselptrlab_mac(anairiats_sum_11, tmp231, atslab_0) ; tmp233 = ats_caselptrlab_mac(anairiats_sum_11, tmp231, atslab_1) ; tmp234 = ats_caselptrlab_mac(anairiats_sum_11, tmp231, atslab_2) ; /* tmp235 = */ stasub_s2varlst_instantiate_some_23 (arg0, tmp210, tmp232, tmp230, arg4) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (ats_ptrget_mac(ats_ptr_type, arg0), tmp233) ; tmp237 = list_vt_reverse_append_01507_ats_ptr_type (tmp236, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp237 ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp234) ; arg0 = arg0 ; arg1 = tmp238 ; arg2 = arg2 ; arg3 = tmp209 ; arg4 = arg4 ; goto __ats_lab_loop_42 ; // tail call break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: tmp239 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp239 ; /* tmp240 = */ auxerr_41 (tmp210) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp209 ; arg4 = arg4 ; goto __ats_lab_loop_42 ; // tail call break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (ats_ptrget_mac(ats_ptr_type, arg0), tmp241) ; break ; } while (0) ; return (tmp206) ; } /* end of [loop_42] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 13642(line=575, offs=3) -- 16642(line=673, offs=4) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp199) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; // ATSlocal_void (tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst: /* ats_ptr_type tmp242 ; */ tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ; /* ats_ptr_type tmp244 ; */ tmp244 = (ats_sum_ptr_type)0 ; tmp245 = loop_42 ((&tmp242), tmp243, (&tmp244), arg1, arg2) ; /* tmp246 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp242) ; tmp247 = list_vt_reverse_01506_ats_ptr_type (tmp244) ; tmp199.atslab_0 = tmp245 ; tmp199.atslab_1 = tmp247 ; return (tmp199) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4) */ ATSstaticdec() ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp255) ; __ats_lab_list_is_nil_01294_: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp255 = ats_false_bool ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp255 = ats_true_bool ; break ; } while (0) ; return (tmp255) ; } /* end of [list_is_nil_01294_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 16792(line=681, offs=5) -- 17429(line=710, offs=4) */ ATSstaticdec() ats_ptr_type loop_44 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (anairiats_rec_2, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; // ATSlocal_void (tmp253) ; ATSlocal (ats_bool_type, tmp254) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; __ats_lab_loop_44: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp249 = list_vt_reverse_01506_ats_ptr_type (arg3) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp250 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp251 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp252 = ats_select_mac(tmp250, atslab_s2qua_svs) ; tmp256 = ats_select_mac(tmp250, atslab_s2qua_sps) ; tmp254 = list_is_nil_01294_ (tmp256) ; tmp257 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 17111(line=698, offs=7) -- 17146(line=698, offs=42)", ATSstrcst("\n")) ; /* tmp253 = */ atspre_assert_errmsg (tmp254, tmp257) ; tmp259 = (ats_sum_ptr_type)0 ; tmp258 = stasub_s2varlst_instcollect_27 (arg1, arg0, tmp252, tmp259) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make (arg0, ats_castfn_mac(ats_ptr_type, tmp258)) ; tmp261 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp261, atslab_0, tmp260) ; ats_selptrset_mac(anairiats_sum_6, tmp261, atslab_1, arg3) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp251 ; arg3 = tmp261 ; arg4 = arg4 ; goto __ats_lab_loop_44 ; // tail call break ; } while (0) ; return (tmp249) ; } /* end of [loop_44] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 16749(line=679, offs=3) -- 17704(line=728, offs=4) */ ATSglobaldec() anairiats_rec_1 patsopt_s2exp_tmp_instantiate_rest (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp248) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; // ATSlocal_void (tmp266) ; __ats_lab_patsopt_s2exp_tmp_instantiate_rest: /* ats_ptr_type tmp262 ; */ tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp264 = (ats_sum_ptr_type)0 ; tmp263 = loop_44 (arg1, (&tmp262), arg2, tmp264, arg3) ; tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp262, arg0) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp262) ; tmp248.atslab_0 = tmp265 ; tmp248.atslab_1 = ats_castfn_mac(ats_ptr_type, tmp263) ; return (tmp248) ; } /* end of [patsopt_s2exp_tmp_instantiate_rest] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 17861(line=737, offs=1) -- 18148(line=749, offs=4) */ ATSstaticdec() ats_void_type auxerr_47 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; __ats_lab_auxerr_47: /* tmp269 = */ prerr_error3_loc_02170_ (arg0) ; /* tmp270 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("s2exp_tmp_instantiate_tmpmarglst")) ; /* tmp271 = */ atspre_prerr_string (ATSstrcst(": the template instantiation is overly done.")) ; /* tmp272 = */ atspre_prerr_newline () ; tmp273 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp273)->tag = 3 ; ats_selptrset_mac(anairiats_sum_10, tmp273, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp273, atslab_1, 1) ; /* tmp268 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp273) ; return /* (tmp268) */ ; } /* end of [auxerr_47] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 18211(line=754, offs=1) -- 19165(line=798, offs=4) */ ATSstaticdec() ats_ptr_type auxsome_48 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_int_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; // ATSlocal_void (tmp280) ; ATSlocal (anairiats_rec_2, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; // ATSlocal_void (tmp286) ; ATSlocal (ats_bool_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; // ATSlocal_void (tmp292) ; __ats_lab_auxsome_48: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_46_1: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp275 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp276 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp277 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ; tmp278 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp278 ; tmp279 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp276), atslab_t2mpmarg_loc) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp279 ; /* tmp280 = */ auxerr_47 (ats_ptrget_mac(ats_ptr_type, arg1)) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp277 ; arg4 = arg4 ; goto __ats_lab_auxsome_48 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp281 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp282 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp275 = arg2 ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp283 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp284 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ; tmp285 = ats_select_mac(tmp281, atslab_s2qua_svs) ; tmp288 = ats_select_mac(tmp281, atslab_s2qua_sps) ; tmp287 = list_is_nil_01294_ (tmp288) ; tmp289 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 18828(line=784, offs=7) -- 18863(line=784, offs=42)", ATSstrcst("\n")) ; /* tmp286 = */ atspre_assert_errmsg (tmp287, tmp289) ; tmp290 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp283), atslab_t2mpmarg_arg) ; tmp291 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp283), atslab_t2mpmarg_loc) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp291 ; /* tmp292 = */ stasub_s2varlst_instantiate_some_23 (arg0, ats_ptrget_mac(ats_ptr_type, arg1), tmp285, tmp290, arg4) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp282 ; arg3 = tmp284 ; arg4 = arg4 ; goto __ats_lab_auxsome_48 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp275) ; } /* end of [auxsome_48] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4) */ ATSstaticdec() ats_void_type loop_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; __ats_lab_loop_50: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp305 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp306 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp307 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp307, atslab_0, tmp305) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp307 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp308 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp306 ; arg1 = arg1 ; arg2 = tmp308 ; goto __ats_lab_loop_50 ; // tail call break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp304) */ ; } /* end of [loop_50] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4) */ ATSstaticdec() ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; // ATSlocal_void (tmp309) ; __ats_lab_list_append_01312_ats_ptr_type: /* ats_ptr_type tmp303 ; */ /* tmp309 = */ loop_50 (arg0, arg1, (&tmp303)) ; tmp302 = tmp303 ; return (tmp302) ; } /* end of [list_append_01312_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 17811(line=734, offs=3) -- 19716(line=830, offs=4) */ ATSglobaldec() anairiats_rec_1 patsopt_s2exp_tmp_instantiate_tmpmarglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp267) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; // ATSlocal_void (tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (anairiats_rec_1, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; __ats_lab_patsopt_s2exp_tmp_instantiate_tmpmarglst: /* ats_ptr_type tmp274 ; */ tmp274 = arg1 ; /* ats_ptr_type tmp293 ; */ tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp294 = auxsome_48 ((&tmp293), (&tmp274), arg2, arg3, arg4) ; tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp293, arg0) ; /* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp293) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (tmp294 != (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp267.atslab_0 = tmp295 ; tmp267.atslab_1 = arg3 ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (tmp294 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (tmp274) ; tmp298 = patsopt_s2exp_tmp_instantiate_rest (tmp295, tmp297, tmp294, arg4) ; tmp299 = ats_select_mac(tmp298, atslab_0) ; tmp300 = ats_select_mac(tmp298, atslab_1) ; tmp301 = list_append_01312_ats_ptr_type (arg3, tmp300) ; tmp267.atslab_0 = tmp299 ; tmp267.atslab_1 = tmp301 ; break ; } while (0) ; return (tmp267) ; } /* end of [patsopt_s2exp_tmp_instantiate_tmpmarglst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp312) ; __ats_lab_ref_make_elt_01089_ats_ptr_type: tmp312 = ref_01088_ats_ptr_type (arg0) ; return (tmp312) ; } /* end of [ref_make_elt_01089_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 20263(line=857, offs=22) -- 20281(line=857, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp315) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get: tmp315 = ats_ptrget_mac(ats_ptr_type, statmp311) ; return (tmp315) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 20314(line=860, offs=22) -- 20380(line=862, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add: tmp318 = ats_ptrget_mac(ats_ptr_type, statmp311) ; tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add (tmp318, arg0) ; ats_ptrget_mac(ats_ptr_type, statmp311) = tmp317 ; return /* (tmp316) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 20447(line=865, offs=23) -- 20599(line=871, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push () { /* local vardec */ // ATSlocal_void (tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push: tmp320 = ats_ptrget_mac(ats_ptr_type, statmp311) ; tmp321 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp313), atslab_1) ; tmp323 = ats_ptrget_mac(ats_ptr_type, tmp321) ; tmp322 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp322, atslab_0, tmp320) ; ats_selptrset_mac(anairiats_sum_6, tmp322, atslab_1, tmp323) ; ats_ptrget_mac(ats_ptr_type, tmp321) = tmp322 ; return /* (tmp319) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 20666(line=874, offs=22) -- 20998(line=886, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop: tmp325 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp313), atslab_1) ; tmp327 = ats_ptrget_mac(ats_ptr_type, tmp325) ; do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (tmp327 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp328 = ats_caselptrlab_mac(anairiats_sum_6, tmp327, atslab_0) ; tmp329 = ats_caselptrlab_mac(anairiats_sum_6, tmp327, atslab_1) ; ATS_FREE(tmp327) ; ats_ptrget_mac(ats_ptr_type, tmp325) = tmp329 ; tmp326 = tmp328 ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (tmp327 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp326 = statmp310 ; break ; } while (0) ; tmp330 = ats_ptrget_mac(ats_ptr_type, statmp311) ; ats_ptrget_mac(ats_ptr_type, statmp311) = tmp326 ; tmp324 = tmp330 ; return (tmp324) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 21170(line=897, offs=3) -- 21476(line=916, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize_flag_svar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_int_type, tmp334) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize_flag_svar: tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_search (arg1) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (tmp332 != (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp331 = arg0 ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (tmp332 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: tmp333 = ats_caselptrlab_mac(anairiats_sum_17, tmp332, atslab_0) ; ATS_FREE(tmp332) ; tmp334 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp334 ; tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp333) ; break ; } while (0) ; return (tmp331) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize_flag_svar] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 21813(line=940, offs=3) -- 23032(line=1006, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_bool_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_bool_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_bool_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_bool_type, tmp353) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp: tmp336 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp336)->tag != 7) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_5, tmp336, atslab_0) ; tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (arg0, tmp337) ; if (tmp338) { tmp335 = ats_true_bool ; } else { tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var (arg0, tmp337) ; } /* end of [if] */ break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp336)->tag != 17) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_0) ; tmp340 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ; tmp341 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, tmp339) ; if (tmp341) { tmp335 = ats_true_bool ; } else { tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst (arg0, tmp340) ; } /* end of [if] */ break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp336)->tag != 5) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp342 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst (arg0, tmp342) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp336)->tag != 6) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp343 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst (arg0, tmp343) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp336)->tag != 13) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp344 = ats_caselptrlab_mac(anairiats_sum_5, tmp336, atslab_0) ; arg0 = arg0 ; arg1 = tmp344 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp336)->tag != 15) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp345 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_0) ; tmp346 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ; tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, tmp345) ; if (tmp347) { tmp335 = ats_true_bool ; } else { arg0 = arg0 ; arg1 = tmp346 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp336)->tag != 26) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp348 = ats_caselptrlab_mac(anairiats_sum_5, tmp336, atslab_0) ; arg0 = arg0 ; arg1 = tmp348 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp336)->tag != 29) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp349 = ats_caselptrlab_mac(anairiats_sum_18, tmp336, atslab_1) ; arg0 = arg0 ; arg1 = tmp349 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp336)->tag != 18) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp350 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ; arg0 = arg0 ; arg1 = tmp350 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp336)->tag != 19) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp351 = ats_caselptrlab_mac(anairiats_sum_19, tmp336, atslab_4) ; tmp352 = ats_caselptrlab_mac(anairiats_sum_19, tmp336, atslab_5) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst (arg0, tmp351) ; if (tmp353) { tmp335 = ats_true_bool ; } else { arg0 = arg0 ; arg1 = tmp352 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp335 = ats_false_bool ; break ; } while (0) ; return (tmp335) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 23083(line=1010, offs=3) -- 23233(line=1016, offs=45) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_bool_type, tmp357) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst: do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp354 = ats_false_bool ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: tmp355 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp356 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, tmp355) ; if (tmp357) { tmp354 = ats_true_bool ; } else { arg0 = arg0 ; arg1 = tmp356 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp354) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 23305(line=1022, offs=3) -- 23467(line=1028, offs=49) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_bool_type, tmp361) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst: do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp358 = ats_false_bool ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: tmp359 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp360 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst (arg0, tmp359) ; if (tmp361) { tmp358 = ats_true_bool ; } else { arg0 = arg0 ; arg1 = tmp360 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp358) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 23533(line=1034, offs=3) -- 23687(line=1045, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var: tmp363 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_search (arg1) ; do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (tmp363 != (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp362 = ats_false_bool ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (tmp363 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp364 = ats_caselptrlab_mac(anairiats_sum_17, tmp363, atslab_0) ; ATS_FREE(tmp363) ; tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, tmp364) ; break ; } while (0) ; return (tmp362) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 23768(line=1051, offs=3) -- 23961(line=1066, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2var_occurcheck_s2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp365) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2var_occurcheck_s2exp: tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, arg1) ; return (tmp365) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2var_occurcheck_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 24462(line=1095, offs=3) -- 24790(line=1108, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push () { /* local vardec */ // ATSlocal_void (tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push: tmp371 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp366), atslab_1) ; tmp372 = ats_ptrget_mac(ats_ptr_type, tmp371) ; tmp373 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp371) = tmp373 ; tmp374 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp368), atslab_1) ; tmp376 = ats_ptrget_mac(ats_ptr_type, tmp374) ; tmp375 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp375, atslab_0, tmp372) ; ats_selptrset_mac(anairiats_sum_6, tmp375, atslab_1, tmp376) ; ats_ptrget_mac(ats_ptr_type, tmp374) = tmp375 ; return /* (tmp370) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 24857(line=1111, offs=22) -- 25293(line=1126, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop: tmp378 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp368), atslab_1) ; tmp380 = ats_ptrget_mac(ats_ptr_type, tmp378) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (tmp380 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp381 = ats_caselptrlab_mac(anairiats_sum_6, tmp380, atslab_0) ; tmp382 = ats_caselptrlab_mac(anairiats_sum_6, tmp380, atslab_1) ; ATS_FREE(tmp380) ; ats_ptrget_mac(ats_ptr_type, tmp378) = tmp382 ; tmp379 = tmp381 ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (tmp380 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp379 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp383 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp366), atslab_1) ; tmp384 = ats_ptrget_mac(ats_ptr_type, tmp383) ; ats_ptrget_mac(ats_ptr_type, tmp383) = tmp379 ; tmp377 = list_vt_reverse_01506_ats_ptr_type (tmp384) ; return (tmp377) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 25359(line=1129, offs=22) -- 25462(line=1133, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add: tmp386 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp366), atslab_1) ; tmp388 = ats_ptrget_mac(ats_ptr_type, tmp386) ; tmp387 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp387, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp387, atslab_1, tmp388) ; ats_ptrget_mac(ats_ptr_type, tmp386) = tmp387 ; return /* (tmp385) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 25550(line=1139, offs=3) -- 25726(line=1149, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlst: tmp390 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp366), atslab_1) ; tmp391 = ats_ptrget_mac(ats_ptr_type, tmp390) ; /* tmp389 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst (arg0, ats_castfn_mac(ats_ptr_type, tmp391)) ; return /* (tmp389) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 25795(line=1153, offs=3) -- 25984(line=1163, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlstlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlstlst: tmp393 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp368), atslab_1) ; tmp394 = ats_ptrget_mac(ats_ptr_type, tmp393) ; /* tmp392 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlstlst (arg0, ats_castfn_mac(ats_ptr_type, tmp394)) ; return /* (tmp392) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlstlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26099(line=1171, offs=3) -- 26185(line=1174, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar: tmp396 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp396)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp396, atslab_0, arg0) ; /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp396) ; return /* (tmp395) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_71 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; // ATSlocal_void (tmp403) ; __ats_lab_loop_71: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp401 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp402 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; /* tmp403 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp401, arg2) ; arg0 = tmp402 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_71 ; // tail call break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: break ; } while (0) ; return /* (tmp400) */ ; } /* end of [loop_71] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp399) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp399 = */ loop_71 (arg0, arg1, arg2) ; return /* (tmp399) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp398) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp398 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp398) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26252(line=1177, offs=24) -- 26310(line=1178, offs=50) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp397) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst: /* tmp397 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar) ; return /* (tmp397) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26400(line=1185, offs=3) -- 26470(line=1187, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa (anairiats_rec_2 arg0) { /* local vardec */ // ATSlocal_void (tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa: tmp405 = ats_select_mac(arg0, atslab_s2qua_svs) ; /* tmp404 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp405) ; return /* (tmp404) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp409) ; ATSlocal (anairiats_rec_2, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; // ATSlocal_void (tmp412) ; __ats_lab_loop_76: do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp410 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ; tmp411 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ; /* tmp412 = */ ((ats_void_type(*)(anairiats_rec_2, ats_ptr_type))arg1) (tmp410, arg2) ; arg0 = tmp411 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_76 ; // tail call break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: break ; } while (0) ; return /* (tmp409) */ ; } /* end of [loop_76] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_anairiats_rec_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp408) ; __ats_lab_list_app_funenv_01300_anairiats_rec_2: /* tmp408 = */ loop_76 (arg0, arg1, arg2) ; return /* (tmp408) */ ; } /* end of [list_app_funenv_01300_anairiats_rec_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_anairiats_rec_2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp407) ; __ats_lab_list_app_fun_01301_anairiats_rec_2: /* tmp407 = */ list_app_funenv_01300_anairiats_rec_2 (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp407) */ ; } /* end of [list_app_fun_01301_anairiats_rec_2] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26537(line=1190, offs=24) -- 26595(line=1191, offs=50) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squalst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp406) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squalst: /* tmp406 = */ list_app_fun_01301_anairiats_rec_2 (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa) ; return /* (tmp406) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squalst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26686(line=1198, offs=3) -- 26801(line=1201, offs=21) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sp2at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sp2at: tmp414 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_sp2at_node) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (tmp414 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp415 = ats_caselptrlab_mac(anairiats_sum_6, tmp414, atslab_1) ; /* tmp413 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp415) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: // if (tmp414 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_84_1: break ; } while (0) ; return /* (tmp413) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sp2at] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26891(line=1208, offs=3) -- 27024(line=1215, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; // ATSlocal_void (tmp418) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar: tmp417 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp417)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp417, atslab_0, arg0) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add (arg0) ; /* tmp416 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp417) ; return /* (tmp416) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27091(line=1218, offs=24) -- 27149(line=1219, offs=50) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVarlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp419) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVarlst: /* tmp419 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar) ; return /* (tmp419) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27219(line=1224, offs=3) -- 27290(line=1226, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr: tmp421 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp421)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp421, atslab_0, arg0) ; /* tmp420 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp421) ; return /* (tmp420) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27362(line=1230, offs=3) -- 27437(line=1232, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref: tmp423 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp423)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp423, atslab_0, arg0) ; /* tmp422 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp423) ; return /* (tmp422) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27529(line=1238, offs=3) -- 27655(line=1241, offs=8) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop: tmp425 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_85 */ __ats_lab_85_0: __ats_lab_85_1: tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop (arg0, arg1) ; /* tmp424 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp426) ; break ; } while (0) ; return /* (tmp424) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27738(line=1246, offs=3) -- 27919(line=1250, offs=22) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; // ATSlocal_void (tmp430) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst: do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp428 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp429 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; /* tmp430 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop (arg0, tmp428) ; arg0 = arg0 ; arg1 = tmp429 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst ; // tail call break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_87_1: break ; } while (0) ; return /* (tmp427) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_86 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; __ats_lab_loop_86: do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp435 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp435 ; goto __ats_lab_loop_86 ; // tail call break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: break ; } while (0) ; return /* (tmp434) */ ; } /* end of [loop_86] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp433) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp433 = */ loop_86 (arg0) ; return /* (tmp433) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27994(line=1255, offs=3) -- 28124(line=1258, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp431) ; // ATSlocal_void (tmp432) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt: /* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; /* tmp431 = */ list_vt_free_01499_ats_ptr_type (arg1) ; return /* (tmp431) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 28217(line=1264, offs=3) -- 28461(line=1274, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq: tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq (arg1, arg2) ; /* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop (arg0, tmp437) ; return /* (tmp436) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 28662(line=1284, offs=5) -- 29118(line=1301, offs=2) */ ATSstaticdec() ats_void_type loop_89 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; // ATSlocal_void (tmp442) ; // ATSlocal_void (tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; // ATSlocal_void (tmp445) ; // ATSlocal_void (tmp446) ; // ATSlocal_void (tmp447) ; __ats_lab_loop_89: do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; } __ats_lab_90_1: break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: tmp440 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp441 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp443 = ats_selsin_mac(tmp442, atslab_1) */ ; tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness (env0, env1, tmp440) ; /* tmp445 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst (env0, tmp440, env2) ; /* tmp446 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp444) ; /* tmp447 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (env0) ; arg0 = tmp441 ; goto __ats_lab_loop_89 ; // tail call break ; } while (0) ; return /* (tmp439) */ ; } /* end of [loop_89] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } loop_89_closure_type ; ats_void_type loop_89_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { loop_89 (((loop_89_closure_type*)cloptr)->closure_env_0, ((loop_89_closure_type*)cloptr)->closure_env_1, ((loop_89_closure_type*)cloptr)->closure_env_2, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type loop_89_closure_init (loop_89_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_89_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type loop_89_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { loop_89_closure_type *p_clo = ATS_MALLOC(sizeof(loop_89_closure_type)) ; loop_89_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 28619(line=1282, offs=3) -- 29164(line=1305, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp438) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false: /* tmp438 = */ loop_89 (arg0, arg1, arg3, arg2) ; return /* (tmp438) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 29268(line=1311, offs=3) -- 29461(line=1327, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop: tmp449 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop (arg0, arg1) ; tmp450 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp450)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp450, atslab_0, tmp449) ; /* tmp448 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp450) ; return /* (tmp448) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 29536(line=1331, offs=3) -- 29699(line=1335, offs=6) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; // ATSlocal_void (tmp454) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst: do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_92_1: break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp452 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp453 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; /* tmp454 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp452) ; arg0 = arg0 ; arg1 = tmp453 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst ; // tail call break ; } while (0) ; return /* (tmp451) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 29802(line=1340, offs=3) -- 29935(line=1343, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp455) ; // ATSlocal_void (tmp456) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt: /* tmp456 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; /* tmp455 = */ list_vt_free_01499_ats_ptr_type (arg1) ; return /* (tmp455) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 30037(line=1349, offs=3) -- 30136(line=1353, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt: do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_95_0 ; } __ats_lab_94_1: break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_95_1: tmp458 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_0) ; /* tmp457 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp458) ; break ; } while (0) ; return /* (tmp457) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 30220(line=1358, offs=3) -- 30338(line=1363, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg: do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_97_1: tmp460 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_0) ; tmp461 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg (tmp460) ; /* tmp459 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp461) ; break ; } while (0) ; return /* (tmp459) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 30457(line=1371, offs=3) -- 30886(line=1392, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp462) ; // ATSlocal_void (tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind: /* tmp463 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_insert (arg1, arg2) ; tmp464 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind (arg0, arg1, arg2) ; tmp465 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp465)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp465, atslab_0, tmp464) ; /* tmp462 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp465) ; return /* (tmp462) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 30958(line=1396, offs=3) -- 31407(line=1418, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq: tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp469 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp467), atslab_s2exp_node) ; tmp470 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp468), atslab_s2exp_node) ; do { /* branch: __ats_lab_98 */ __ats_lab_98_0: __ats_lab_98_1: __ats_lab_98_2: tmp471 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq (arg0, arg1, arg2) ; tmp472 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp472)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp472, atslab_0, tmp471) ; /* tmp466 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp472) ; break ; } while (0) ; return /* (tmp466) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 32623(line=1464, offs=15) -- 33000(line=1474, offs=18) */ ATSstaticdec() ats_void_type loop_98 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp490) ; ATSlocal (anairiats_rec_2, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; // ATSlocal_void (tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; // ATSlocal_void (tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; __ats_lab_loop_98: do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; } __ats_lab_103_1: break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_104_1: tmp491 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp492 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp494 = ats_select_mac(tmp491, atslab_s2qua_svs) ; /* tmp493 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp494) ; tmp496 = ats_select_mac(tmp491, atslab_s2qua_sps) ; /* tmp495 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (arg0, tmp496) ; arg0 = arg0 ; arg1 = tmp492 ; goto __ats_lab_loop_98 ; // tail call break ; } while (0) ; return /* (tmp490) */ ; } /* end of [loop_98] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 33825(line=1505, offs=13) -- 34248(line=1519, offs=10) */ ATSstaticdec() ats_void_type aux_99 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; // ATSlocal_void (tmp512) ; __ats_lab_aux_99: do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_113_0 ; } __ats_lab_112_1: break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_113_1: tmp508 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp509 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (tmp508) ; tmp510 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intneq (env1, tmp511) ; /* tmp512 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (env0, tmp510) ; arg0 = tmp509 ; goto __ats_lab_aux_99 ; // tail call break ; } while (0) ; return /* (tmp507) */ ; } /* end of [aux_99] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } aux_99_closure_type ; ats_void_type aux_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { aux_99 (((aux_99_closure_type*)cloptr)->closure_env_0, ((aux_99_closure_type*)cloptr)->closure_env_1, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type aux_99_closure_init (aux_99_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_99_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_99_closure_make (ats_ptr_type env0, ats_ptr_type env1) { aux_99_closure_type *p_clo = ATS_MALLOC(sizeof(aux_99_closure_type)) ; aux_99_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 35108(line=1551, offs=13) -- 35531(line=1565, offs=10) */ ATSstaticdec() ats_void_type aux_100 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp525) ; ATSlocal (ats_char_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; // ATSlocal_void (tmp530) ; __ats_lab_aux_100: do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_124_0 ; } __ats_lab_123_1: break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_124_1: tmp526 = ats_caselptrlab_mac(anairiats_sum_23, arg0, atslab_0) ; tmp527 = ats_caselptrlab_mac(anairiats_sum_23, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char (tmp526) ; tmp528 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intneq (env1, tmp529) ; /* tmp530 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (env0, tmp528) ; arg0 = tmp527 ; goto __ats_lab_aux_100 ; // tail call break ; } while (0) ; return /* (tmp525) */ ; } /* end of [aux_100] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } aux_100_closure_type ; ats_void_type aux_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { aux_100 (((aux_100_closure_type*)cloptr)->closure_env_0, ((aux_100_closure_type*)cloptr)->closure_env_1, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type aux_100_closure_init (aux_100_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_100_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_100_closure_make (ats_ptr_type env0, ats_ptr_type env1) { aux_100_closure_type *p_clo = ATS_MALLOC(sizeof(aux_100_closure_type)) ; aux_100_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 31502(line=1424, offs=3) -- 36230(line=1596, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_bool_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (anairiats_rec_1, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; // ATSlocal_void (tmp497) ; // ATSlocal_void (tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_bool_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_char_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst: tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg2) ; tmp475 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (arg0, tmp474) ; tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp475) ; tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp476) ; do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_100_0 ; } __ats_lab_99_1: break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_105_0 ; } __ats_lab_100_1: tmp478 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp479 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ; tmp480 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp477), atslab_s2exp_node) ; do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp480)->tag != 10) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp481 = ats_caselptrlab_mac(anairiats_sum_7, tmp480, atslab_0) ; tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_d2con_d2con (tmp478, tmp481) ; if (tmp482) { tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ; /* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp483) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: __ats_lab_102_1: tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d2con_instantiate (arg0, tmp478) ; tmp485 = ats_select_mac(tmp484, atslab_0) ; tmp486 = ats_select_mac(tmp484, atslab_1) ; tmp487 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp486), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp487)->tag != 19) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 32149(line=1455, offs=13) -- 32216(line=1455, offs=80)") ; } tmp488 = ats_caselptrlab_mac(anairiats_sum_19, tmp487, atslab_4) ; tmp489 = ats_caselptrlab_mac(anairiats_sum_19, tmp487, atslab_5) ; /* tmp497 = */ loop_98 (arg0, tmp485) ; /* tmp498 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp489, tmp477) ; tmp499 = list_copy_01322_ats_ptr_type (tmp479) ; /* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst (arg0, tmp499, tmp488) ; break ; } while (0) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_106_0 ; } __ats_lab_105_1: break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_109_0 ; } __ats_lab_106_1: tmp500 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp501 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype (tmp476) ; do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (tmp501 != (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (tmp501 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp502 = ats_caselptrlab_mac(anairiats_sum_17, tmp501, atslab_0) ; ATS_FREE(tmp501) ; tmp503 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (tmp500) ; /* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp502, tmp503) ; break ; } while (0) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_114_0 ; } __ats_lab_109_1: tmp504 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp505 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype (tmp476) ; do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (tmp505 != (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (tmp505 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: tmp506 = ats_caselptrlab_mac(anairiats_sum_17, tmp505, atslab_0) ; ATS_FREE(tmp505) ; tmp513 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize (tmp504) ; /* tmp473 = */ aux_99 (arg0, tmp506, tmp513) ; break ; } while (0) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_117_0 ; } __ats_lab_114_1: tmp514 = ats_caselptrlab_mac(anairiats_sum_21, arg1, atslab_0) ; tmp515 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype (tmp476) ; do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (tmp515 != (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (tmp515 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: tmp516 = ats_caselptrlab_mac(anairiats_sum_17, tmp515, atslab_0) ; ATS_FREE(tmp515) ; tmp517 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (tmp514) ; /* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp516, tmp517) ; break ; } while (0) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_120_0 ; } __ats_lab_117_1: tmp518 = ats_caselptrlab_mac(anairiats_sum_22, arg1, atslab_0) ; tmp519 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_char_index_t0ype (tmp476) ; do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (tmp519 != (ats_sum_ptr_type)0) { goto __ats_lab_119_0 ; } __ats_lab_118_1: break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: // if (tmp519 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_119_1: tmp520 = ats_caselptrlab_mac(anairiats_sum_17, tmp519, atslab_0) ; ATS_FREE(tmp519) ; tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char (tmp518) ; /* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp520, tmp521) ; break ; } while (0) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_125_0 ; } __ats_lab_120_1: tmp522 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_char_index_t0ype (tmp476) ; do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (tmp523 != (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: // if (tmp523 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_122_1: tmp524 = ats_caselptrlab_mac(anairiats_sum_17, tmp523, atslab_0) ; ATS_FREE(tmp523) ; tmp531 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize (tmp522) ; /* tmp473 = */ aux_100 (arg0, tmp524, tmp531) ; break ; } while (0) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_126_0 ; } __ats_lab_125_1: break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_127_0 ; } __ats_lab_126_1: break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: // if (((ats_sum_ptr_type)arg1)->tag != 10) { ats_deadcode_failure_handle () ; } __ats_lab_127_1: tmp532 = ats_caselptrlab_mac(anairiats_sum_18, arg1, atslab_1) ; tmp533 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp477), atslab_s2exp_node) ; do { /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp533)->tag != 25) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp534 = ats_caselptrlab_mac(anairiats_sum_24, tmp533, atslab_2) ; tmp535 = list_copy_01322_ats_ptr_type (tmp532) ; /* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst (arg0, tmp535, tmp534) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: __ats_lab_129_1: break ; } while (0) ; break ; } while (0) ; return /* (tmp473) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 36368(line=1605, offs=1) -- 37021(line=1633, offs=4) */ ATSstaticdec() ats_int_type loop_102 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_int_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; // ATSlocal_void (tmp545) ; ATSlocal (ats_int_type, tmp546) ; __ats_lab_loop_102: do { /* branch: __ats_lab_130 */ __ats_lab_130_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_133_0 ; } __ats_lab_130_1: do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp538 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp539 = (ats_sum_ptr_type)0 ; tmp540 = atspre_sub_int_int (arg2, 1) ; arg0 = tmp539 ; arg1 = tmp538 ; arg2 = tmp540 ; goto __ats_lab_loop_102 ; // tail call break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: tmp537 = arg2 ; break ; } while (0) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_133_1: tmp541 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp542 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; do { /* branch: __ats_lab_134 */ __ats_lab_134_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp543 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp544 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; /* tmp545 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst (env0, tmp541, tmp543) ; arg0 = tmp542 ; arg1 = tmp544 ; arg2 = arg2 ; goto __ats_lab_loop_102 ; // tail call break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_135_1: tmp546 = atspre_add_int_int (arg2, 1) ; arg0 = tmp542 ; arg1 = arg1 ; arg2 = tmp546 ; goto __ats_lab_loop_102 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp537) ; } /* end of [loop_102] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop_102_closure_type ; ats_int_type loop_102_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { return loop_102 (((loop_102_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type loop_102_closure_init (loop_102_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_102_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_102_closure_make (ats_ptr_type env0) { loop_102_closure_type *p_clo = ATS_MALLOC(sizeof(loop_102_closure_type)) ; loop_102_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 36330(line=1602, offs=3) -- 37558(line=1660, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp536) ; ATSlocal (ats_int_type, tmp547) ; ATSlocal (ats_bool_type, tmp548) ; // ATSlocal_void (tmp549) ; // ATSlocal_void (tmp550) ; // ATSlocal_void (tmp551) ; // ATSlocal_void (tmp552) ; ATSlocal (ats_bool_type, tmp553) ; // ATSlocal_void (tmp554) ; // ATSlocal_void (tmp555) ; ATSlocal (ats_bool_type, tmp556) ; // ATSlocal_void (tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst: tmp547 = loop_102 (arg0, arg1, arg2, 0) ; tmp548 = atspre_neq_int_int (tmp547, 0) ; if (tmp548) { /* tmp549 = */ prerr_error3_loc_02170_ (arg0) ; /* tmp550 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("trans3_env_hypadd_patcstlst")) ; /* tmp551 = */ atspre_print_string (ATSstrcst(": constructor arity mismatch")) ; tmp553 = atspre_lt_int_int (tmp547, 0) ; if (tmp553) { /* tmp554 = */ atspre_print_string (ATSstrcst(": more arguments are expected")) ; /* tmp552 = */ atspre_print_newline () ; } else { /* empty */ } /* end of [if] */ tmp556 = atspre_gt_int_int (tmp547, 0) ; if (tmp556) { /* tmp557 = */ atspre_print_string (ATSstrcst(": fewer arguments are expected")) ; /* tmp555 = */ atspre_print_newline () ; } else { /* empty */ } /* end of [if] */ tmp558 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp558)->tag = 87 ; ats_selptrset_mac(anairiats_sum_10, tmp558, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp558, atslab_1, tmp547) ; /* tmp536 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp558) ; } else { /* empty */ } /* end of [if] */ return /* (tmp536) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 37698(line=1668, offs=4) -- 37869(line=1675, offs=4) */ ATSstaticdec() ats_int_type cmp_104 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; __ats_lab_cmp_104: tmp561 = ats_caselptrlab_mac(anairiats_sum_25, arg0, atslab_0) ; tmp562 = ats_caselptrlab_mac(anairiats_sum_25, arg1, atslab_0) ; tmp560 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (tmp561, tmp562) ; return (tmp560) ; } /* end of [cmp_104] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 69930(line=2529, offs=31) -- 70720(line=2552, offs=28) */ ATSstaticdec() ats_ptr_type aux2_01343_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_bool_type, tmp583) ; ATSlocal (ats_int_type, tmp584) ; ATSlocal (ats_ptr_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; __ats_lab_aux2_01343_ats_ptr_type: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_142_0 ; } __ats_lab_139_1: tmp579 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp580 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_140 */ __ats_lab_140_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp581 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp582 = &ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp584 = ((ats_int_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg2) (tmp579, tmp581, arg3) ; tmp583 = atspre_lte_int_int (tmp584, 0) ; if (tmp583) { tmp585 = ats_ptrget_mac(ats_ptr_type, tmp580) ; ATS_FREE(arg0) ; tmp586 = aux2_01343_ats_ptr_type (tmp585, arg1, arg2, arg3) ; tmp578 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp578, atslab_0, tmp579) ; ats_selptrset_mac(anairiats_sum_6, tmp578, atslab_1, tmp586) ; } else { tmp587 = ats_ptrget_mac(ats_ptr_type, tmp582) ; ATS_FREE(arg1) ; tmp588 = aux2_01343_ats_ptr_type (arg0, tmp587, arg2, arg3) ; tmp578 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp578, atslab_0, tmp581) ; ats_selptrset_mac(anairiats_sum_6, tmp578, atslab_1, tmp588) ; } /* end of [if] */ break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_141_1: tmp578 = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_142_1: tmp578 = arg1 ; break ; } while (0) ; return (tmp578) ; } /* end of [aux2_01343_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 70807(line=2556, offs=47) -- 71106(line=2563, offs=16) */ ATSstaticdec() ats_ptr_type aux3_01354_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp589) ; __ats_lab_aux3_01354_ats_ptr_type: do { /* branch: __ats_lab_138 */ __ats_lab_138_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_143_0 ; } tmp573 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; if (tmp573 == (ats_sum_ptr_type)0) { goto __ats_lab_143_0 ; } __ats_lab_138_1: tmp574 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp575 = ats_caselptrlab_mac(anairiats_sum_6, tmp573, atslab_0) ; tmp576 = ats_caselptrlab_mac(anairiats_sum_6, tmp573, atslab_1) ; ATS_FREE(tmp573) ; ATS_FREE(arg0) ; tmp577 = aux2_01343_ats_ptr_type (tmp574, tmp575, arg1, arg2) ; tmp589 = aux3_01354_ats_ptr_type (tmp576, arg1, arg2) ; tmp572 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp572, atslab_0, tmp577) ; ats_selptrset_mac(anairiats_sum_6, tmp572, atslab_1, tmp589) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: __ats_lab_143_1: tmp572 = arg0 ; break ; } while (0) ; return (tmp572) ; } /* end of [aux3_01354_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 71193(line=2567, offs=47) -- 71767(line=2587, offs=33) */ ATSstaticdec() ats_ptr_type aux4_01361_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_ptr_type, tmp590) ; __ats_lab_aux4_01361_ats_ptr_type: do { /* branch: __ats_lab_136 */ __ats_lab_136_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_145_0 ; } __ats_lab_136_1: tmp568 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp569 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp570 = ats_ptrget_mac(ats_ptr_type, tmp569) ; do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (tmp570 == (ats_sum_ptr_type)0) { goto __ats_lab_144_0 ; } __ats_lab_137_1: tmp571 = aux3_01354_ats_ptr_type (arg0, arg1, arg2) ; arg0 = tmp571 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_aux4_01361_ats_ptr_type ; // tail call break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: // if (tmp570 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_144_1: tmp590 = ats_ptrget_mac(ats_ptr_type, tmp568) ; ATS_FREE(arg0) ; tmp567 = tmp590 ; break ; } while (0) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_145_1: tmp567 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp567) ; } /* end of [aux4_01361_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 69142(line=2506, offs=27) -- 69837(line=2524, offs=33) */ ATSstaticdec() ats_ptr_type aux1_01334_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; ATSlocal (ats_ptr_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_bool_type, tmp599) ; ATSlocal (ats_int_type, tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; __ats_lab_aux1_01334_ats_ptr_type: do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; } __ats_lab_146_1: tmp593 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp594 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp595 = ats_ptrget_mac(ats_ptr_type, tmp594) ; do { /* branch: __ats_lab_147 */ __ats_lab_147_0: if (tmp595 == (ats_sum_ptr_type)0) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp596 = ats_caselptrlab_mac(anairiats_sum_6, tmp595, atslab_0) ; tmp597 = ats_caselptrlab_mac(anairiats_sum_6, tmp595, atslab_1) ; ATS_FREE(tmp595) ; ATS_FREE(arg0) ; tmp600 = ((ats_int_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg1) (tmp593, tmp596, arg2) ; tmp599 = atspre_lte_int_int (tmp600, 0) ; if (tmp599) { tmp602 = (ats_sum_ptr_type)0 ; tmp601 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp601, atslab_0, tmp596) ; ats_selptrset_mac(anairiats_sum_6, tmp601, atslab_1, tmp602) ; tmp598 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp598, atslab_0, tmp593) ; ats_selptrset_mac(anairiats_sum_6, tmp598, atslab_1, tmp601) ; } else { tmp604 = (ats_sum_ptr_type)0 ; tmp603 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp603, atslab_0, tmp593) ; ats_selptrset_mac(anairiats_sum_6, tmp603, atslab_1, tmp604) ; tmp598 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp598, atslab_0, tmp596) ; ats_selptrset_mac(anairiats_sum_6, tmp598, atslab_1, tmp603) ; } /* end of [if] */ tmp605 = aux1_01334_ats_ptr_type (tmp597, arg1, arg2) ; tmp592 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp592, atslab_0, tmp598) ; ats_selptrset_mac(anairiats_sum_6, tmp592, atslab_1, tmp605) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: // if (tmp595 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_148_1: tmp606 = (ats_sum_ptr_type)0 ; tmp592 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp592, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp592, atslab_1, tmp606) ; break ; } while (0) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_149_1: tmp592 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp592) ; } /* end of [aux1_01334_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 71846(line=2594, offs=3) -- 72013(line=2603, offs=4) */ ATSstaticdec() ats_ptr_type list_mergesort_01452_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp591) ; __ats_lab_list_mergesort_01452_ats_ptr_type: tmp566 = list_copy_01322_ats_ptr_type (arg0) ; tmp591 = aux1_01334_ats_ptr_type (tmp566, arg1, arg2) ; tmp565 = aux4_01361_ats_ptr_type (tmp591, arg1, arg2) ; return (tmp565) ; } /* end of [list_mergesort_01452_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 37958(line=1679, offs=5) -- 38690(line=1705, offs=22) */ ATSstaticdec() ats_void_type aux_110 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; ATSlocal (ats_ptr_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_int_type, tmp616) ; ATSlocal (ats_bool_type, tmp617) ; ATSlocal (ats_bool_type, tmp618) ; // ATSlocal_void (tmp619) ; __ats_lab_aux_110: do { /* branch: __ats_lab_150 */ __ats_lab_150_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_153_0 ; } __ats_lab_150_1: tmp608 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp609 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_151 */ __ats_lab_151_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp610 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp611 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp612 = ats_caselptrlab_mac(anairiats_sum_6, tmp608, atslab_0) ; tmp613 = ats_caselptrlab_mac(anairiats_sum_6, tmp608, atslab_1) ; tmp614 = ats_caselptrlab_mac(anairiats_sum_25, tmp610, atslab_0) ; tmp615 = ats_caselptrlab_mac(anairiats_sum_25, tmp610, atslab_2) ; tmp616 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (tmp612, tmp614) ; tmp617 = atspre_ilt (tmp616, 0) ; if (tmp617) { arg0 = tmp609 ; arg1 = arg1 ; goto __ats_lab_aux_110 ; // tail call } else { tmp618 = atspre_igt (tmp616, 0) ; if (tmp618) { arg0 = arg0 ; arg1 = tmp611 ; goto __ats_lab_aux_110 ; // tail call } else { /* tmp619 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst (env0, tmp613, tmp615) ; arg0 = tmp609 ; arg1 = tmp611 ; goto __ats_lab_aux_110 ; // tail call } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_152_1: break ; } while (0) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_153_1: break ; } while (0) ; return /* (tmp607) */ ; } /* end of [aux_110] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_110_closure_type ; ats_void_type aux_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { aux_110 (((aux_110_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_110_closure_init (aux_110_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_110_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_110_closure_make (ats_ptr_type env0) { aux_110_closure_type *p_clo = ATS_MALLOC(sizeof(aux_110_closure_type)) ; aux_110_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 37664(line=1666, offs=3) -- 38946(line=1719, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp559) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; // ATSlocal_void (tmp620) ; // ATSlocal_void (tmp621) ; // ATSlocal_void (tmp622) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst: /* ats_ptr_type tmp563 ; */ tmp563 = atspre_null_ptr ; tmp564 = list_mergesort_01452_ats_ptr_type (arg2, &cmp_104, tmp563) ; /* tmp620 = */ aux_110 (arg0, ats_castfn_mac(ats_ptr_type, arg1), ats_castfn_mac(ats_ptr_type, tmp564)) ; /* tmp621 = */ list_vt_free_01499_ats_ptr_type (arg1) ; /* tmp622 = */ list_vt_free_01499_ats_ptr_type (tmp564) ; return /* (tmp559) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 39023(line=1726, offs=1) -- 39119(line=1730, offs=2) */ ATSstaticdec() ats_void_type trans3_env_hypadd_disj_111 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; __ats_lab_trans3_env_hypadd_disj_111: tmp624 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp624)->tag = 5 ; ats_selptrset_mac(anairiats_sum_5, tmp624, atslab_0, arg0) ; /* tmp623 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp624) ; return /* (tmp623) */ ; } /* end of [trans3_env_hypadd_disj_111] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 39315(line=1741, offs=1) -- 39881(line=1763, offs=2) */ ATSstaticdec() ats_ptr_type aux_113 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; // ATSlocal_void (tmp629) ; // ATSlocal_void (tmp630) ; // ATSlocal_void (tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; __ats_lab_aux_113: do { /* branch: __ats_lab_154 */ __ats_lab_154_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp626 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_155_1: tmp627 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp628 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp629 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp630 = ats_selsin_mac(tmp629, atslab_1) */ ; /* tmp631 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst (env0, tmp627, env1) ; tmp632 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () ; tmp633 = aux_113 (env0, env1, tmp628) ; tmp626 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp626, atslab_0, ats_castfn_mac(ats_ptr_type, tmp632)) ; ats_selptrset_mac(anairiats_sum_6, tmp626, atslab_1, tmp633) ; break ; } while (0) ; return (tmp626) ; } /* end of [aux_113] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } aux_113_closure_type ; ats_ptr_type aux_113_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_113 (((aux_113_closure_type*)cloptr)->closure_env_0, ((aux_113_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_113_closure_init (aux_113_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_113_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_113_closure_make (ats_ptr_type env0, ats_ptr_type env1) { aux_113_closure_type *p_clo = ATS_MALLOC(sizeof(aux_113_closure_type)) ; aux_113_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 39276(line=1738, offs=3) -- 40114(line=1775, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlstlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp625) ; ATSlocal (ats_ptr_type, tmp634) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlstlst: tmp634 = aux_113 (arg0, arg2, arg1) ; /* tmp625 = */ trans3_env_hypadd_disj_111 (tmp634) ; return /* (tmp625) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlstlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 40241(line=1783, offs=3) -- 40408(line=1797, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_assert (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp635) ; ATSlocal (ats_ptr_type, tmp636) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_assert: tmp636 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp636)->tag = 6 ; ats_selptrset_mac(anairiats_sum_5, tmp636, atslab_0, arg1) ; /* tmp635 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp636) ; return /* (tmp635) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_assert] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 40505(line=1803, offs=3) -- 40705(line=1817, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_verify (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; ATSlocal (ats_ptr_type, tmp639) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_verify: tmp638 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify (arg0, arg1) ; tmp639 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp639)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_0, tmp638) ; /* tmp637 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp639) ; return /* (tmp637) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_verify] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 40858(line=1830, offs=3) -- 41137(line=1839, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; // ATSlocal_void (tmp642) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop: tmp641 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop () ; /* tmp642 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop () ; tmp640 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop () ; return (tmp640) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 41201(line=1843, offs=3) -- 41350(line=1848, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add: tmp644 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () ; tmp645 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst (arg0, arg1, ats_castfn_mac(ats_ptr_type, tmp644)) ; /* tmp643 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp645) ; return /* (tmp643) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 41427(line=1852, offs=3) -- 41487(line=1853, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main: tmp647 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ; /* tmp646 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp647) ; return /* (tmp646) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 41555(line=1857, offs=17) -- 41817(line=1870, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () { /* local vardec */ // ATSlocal_void (tmp648) ; // ATSlocal_void (tmp649) ; // ATSlocal_void (tmp650) ; // ATSlocal_void (tmp651) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push: /* tmp649 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push () ; /* tmp650 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push () ; /* tmp651 = ats_selsin_mac(tmp650, atslab_1) */ ; /* tmp648 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push () ; return /* (tmp648) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 41924(line=1878, offs=3) -- 42668(line=1920, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_absuni_and_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (anairiats_rec_3, tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; // ATSlocal_void (tmp657) ; // ATSlocal_void (tmp658) ; // ATSlocal_void (tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; // ATSlocal_void (tmp661) ; // ATSlocal_void (tmp662) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_absuni_and_add: tmp653 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp654 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_absuni (tmp653) ; tmp655 = ats_select_mac(tmp654, atslab_1) ; tmp656 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get () ; /* tmp657 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset (ats_castfn_mac(ats_ptr_type, tmp655), tmp656) ; /* tmp658 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp655)) ; /* tmp659 = */ list_vt_free_01499_ats_ptr_type (tmp655) ; tmp660 = ats_select_mac(tmp654, atslab_2) ; /* tmp661 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (arg0, ats_castfn_mac(ats_ptr_type, tmp660)) ; /* tmp662 = */ list_vt_free_01499_ats_ptr_type (tmp660) ; tmp652 = ats_select_mac(tmp654, atslab_0) ; return (tmp652) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_absuni_and_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 42757(line=1926, offs=3) -- 43418(line=1964, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp663) ; ATSlocal (ats_ptr_type, tmp664) ; ATSlocal (anairiats_rec_3, tmp665) ; ATSlocal (ats_ptr_type, tmp666) ; ATSlocal (ats_ptr_type, tmp667) ; // ATSlocal_void (tmp668) ; // ATSlocal_void (tmp669) ; // ATSlocal_void (tmp670) ; // ATSlocal_void (tmp671) ; ATSlocal (ats_ptr_type, tmp672) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add: tmp664 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp665 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_opnexi (tmp664) ; tmp666 = ats_select_mac(tmp665, atslab_1) ; tmp667 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get () ; /* tmp668 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset (ats_castfn_mac(ats_ptr_type, tmp666), tmp667) ; /* tmp669 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp666)) ; /* tmp670 = */ list_vt_free_01499_ats_ptr_type (tmp666) ; tmp672 = ats_select_mac(tmp665, atslab_2) ; /* tmp671 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt (arg0, tmp672) ; tmp663 = ats_select_mac(tmp665, atslab_0) ; return (tmp663) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 43508(line=1970, offs=3) -- 44325(line=2004, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opn1exi_and_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; ATSlocal (ats_ptr_type, tmp679) ; ATSlocal (ats_ptr_type, tmp680) ; ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_ptr_type, tmp682) ; // ATSlocal_void (tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; // ATSlocal_void (tmp685) ; // ATSlocal_void (tmp686) ; // ATSlocal_void (tmp687) ; // ATSlocal_void (tmp688) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opn1exi_and_add: tmp674 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp675 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp674), atslab_s2exp_node) ; do { /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)tmp675)->tag != 27) { goto __ats_lab_157_0 ; } __ats_lab_156_1: tmp676 = ats_caselptrlab_mac(anairiats_sum_11, tmp675, atslab_0) ; tmp677 = ats_caselptrlab_mac(anairiats_sum_11, tmp675, atslab_1) ; tmp678 = ats_caselptrlab_mac(anairiats_sum_11, tmp675, atslab_2) ; /* ats_ptr_type tmp679 ; */ tmp679 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp680 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst ((&tmp679), tmp676) ; tmp681 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp679, tmp677) ; tmp682 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp679, tmp678) ; /* tmp683 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp679) ; tmp684 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get () ; /* tmp685 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset (ats_castfn_mac(ats_ptr_type, tmp680), tmp684) ; /* tmp686 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp680)) ; /* tmp687 = */ list_vt_free_01499_ats_ptr_type (tmp680) ; /* tmp688 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt (arg0, tmp681) ; tmp673 = tmp682 ; break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: __ats_lab_157_1: tmp673 = tmp674 ; break ; } while (0) ; return (tmp673) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opn1exi_and_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 44443(line=2013, offs=5) -- 44685(line=2028, offs=2) */ ATSstaticdec() ats_ptr_type auxres_123 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp689) ; ATSlocal (ats_ptr_type, tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; __ats_lab_auxres_123: tmp690 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)tmp690)->tag != 27) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp691 = ats_caselptrlab_mac(anairiats_sum_11, tmp690, atslab_2) ; arg0 = tmp691 ; goto __ats_lab_auxres_123 ; // tail call break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: if (((ats_sum_ptr_type)tmp690)->tag != 31) { goto __ats_lab_160_0 ; } __ats_lab_159_1: tmp692 = ats_caselptrlab_mac(anairiats_sum_7, tmp690, atslab_1) ; tmp689 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ats_selptrset_mac(anairiats_sum_17, tmp689, atslab_0, tmp692) ; break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: __ats_lab_160_1: tmp689 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp689) ; } /* end of [auxres_123] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 44713(line=2030, offs=5) -- 45574(line=2064, offs=4) */ ATSstaticdec() ats_ptr_type auxarg_124 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp693) ; ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_int_type, tmp698) ; ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_int_type, tmp700) ; ATSlocal (anairiats_rec_1, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; ATSlocal (ats_ptr_type, tmp703) ; // ATSlocal_void (tmp704) ; ATSlocal (ats_ptr_type, tmp705) ; ATSlocal (ats_ptr_type, tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; ATSlocal (ats_ptr_type, tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; __ats_lab_auxarg_124: do { /* branch: __ats_lab_161 */ __ats_lab_161_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp693 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_162_1: tmp694 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp695 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; do { /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_164_0 ; } __ats_lab_163_1: tmp696 = ats_caselptrlab_mac(anairiats_sum_26, arg2, atslab_2) ; tmp697 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp694), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp697)->tag != 29) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 44971(line=2046, offs=11) -- 45016(line=2047, offs=36)") ; } tmp698 = ats_caselptrlab_mac(anairiats_sum_18, tmp697, atslab_0) ; tmp699 = ats_caselptrlab_mac(anairiats_sum_18, tmp697, atslab_1) ; /* ats_int_type tmp700 ; */ tmp700 = 0 ; tmp701 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all (tmp699, arg0, (&tmp700)) ; tmp702 = ats_select_mac(tmp701, atslab_0) ; tmp703 = ats_select_mac(tmp701, atslab_1) ; /* tmp704 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp703) ; tmp705 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg (tmp698, tmp702) ; tmp706 = auxarg_124 (arg0, tmp695, tmp696) ; tmp693 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_0, tmp705) ; ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_1, tmp706) ; break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp707 = ats_caselptrlab_mac(anairiats_sum_26, arg2, atslab_2) ; tmp708 = auxarg_124 (arg0, tmp695, tmp707) ; tmp693 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_0, tmp694) ; ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_1, tmp708) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_166_0 ; } __ats_lab_165_1: tmp709 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp710 = auxarg_124 (arg0, tmp695, tmp709) ; tmp693 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_0, tmp694) ; ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_1, tmp710) ; break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: // if (((ats_sum_ptr_type)arg2)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_166_1: tmp693 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp693) ; } /* end of [auxarg_124] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 45652(line=2070, offs=3) -- 45827(line=2077, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp711) ; ATSlocal (ats_ptr_type, tmp712) ; ATSlocal (ats_ptr_type, tmp713) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add: tmp712 = auxres_123 (arg2) ; do { /* branch: __ats_lab_167 */ __ats_lab_167_0: if (tmp712 == (ats_sum_ptr_type)0) { goto __ats_lab_168_0 ; } __ats_lab_167_1: tmp713 = ats_caselptrlab_mac(anairiats_sum_17, tmp712, atslab_0) ; ATS_FREE(tmp712) ; tmp711 = auxarg_124 (arg0, arg1, tmp713) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: // if (tmp712 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_168_1: tmp711 = arg1 ; break ; } while (0) ; return (tmp711) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 45947(line=2085, offs=3) -- 46230(line=2100, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp714) ; ATSlocal (ats_ptr_type, tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; ATSlocal (ats_ptr_type, tmp717) ; ATSlocal (ats_ptr_type, tmp718) ; ATSlocal (ats_ptr_type, tmp719) ; ATSlocal (ats_ptr_type, tmp720) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add: tmp715 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg1) ; do { /* branch: __ats_lab_169 */ __ats_lab_169_0: if (tmp715 == (ats_sum_ptr_type)0) { goto __ats_lab_170_0 ; } __ats_lab_169_1: tmp716 = ats_caselptrlab_mac(anairiats_sum_17, tmp715, atslab_0) ; tmp717 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp716) ; tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (arg0, tmp717) ; tmp719 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ats_selptrset_mac(anairiats_sum_17, tmp719, atslab_0, tmp718) ; /* tmp714 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp719) ; break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: // if (tmp715 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_170_1: tmp720 = (ats_sum_ptr_type)0 ; /* tmp714 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp720) ; break ; } while (0) ; return /* (tmp714) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 46315(line=2106, offs=3) -- 46700(line=2125, offs=4) */ ATSglobaldec() anairiats_rec_27 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (anairiats_rec_27, tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; ATSlocal (ats_ptr_type, tmp723) ; ATSlocal (ats_bool_type, tmp724) ; ATSlocal (ats_ptr_type, tmp726) ; ATSlocal (ats_ptr_type, tmp727) ; ATSlocal (ats_ptr_type, tmp728) ; ATSlocal (ats_ptr_type, tmp729) ; ATSlocal (ats_ptr_type, tmp730) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype: /* ats_ptr_type tmp722 ; */ tmp722 = arg1 ; /* ats_ptr_type tmp723 ; */ tmp723 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; tmp724 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype (arg1) ; if (tmp724) { tmp726 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp727 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (arg0, tmp726) ; tmp728 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp727), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp728)->tag != 31) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 46551(line=2118, offs=7) -- 46594(line=2118, offs=50)") ; } tmp729 = ats_caselptrlab_mac(anairiats_sum_7, tmp728, atslab_0) ; tmp730 = ats_caselptrlab_mac(anairiats_sum_7, tmp728, atslab_1) ; tmp722 = tmp729 ; tmp723 = tmp730 ; } else { /* empty */ } /* end of [if] */ tmp721.atslab_0 = tmp724 ; tmp721.atslab_1 = tmp722 ; tmp721.atslab_2 = tmp723 ; return (tmp721) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 46783(line=2131, offs=3) -- 47091(line=2156, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp731) ; ATSlocal (ats_ptr_type, tmp732) ; ATSlocal (ats_ptr_type, tmp733) ; ATSlocal (ats_ptr_type, tmp734) ; ATSlocal (ats_ptr_type, tmp735) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add: tmp732 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d3exp_type) ; tmp733 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp732) ; tmp735 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d3exp_loc) ; tmp734 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp735, tmp733) ; /* tmp731 = */ patsopt_d3exp_set_type (arg0, tmp734) ; return /* (tmp731) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 47158(line=2160, offs=3) -- 47206(line=2160, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp736) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add: /* tmp736 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) ; return /* (tmp736) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 47301(line=2167, offs=3) -- 48650(line=2217, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize () { /* local vardec */ // ATSlocal_void (tmp737) ; ATSlocal (ats_ptr_type, tmp738) ; ATSlocal (ats_ptr_type, tmp739) ; // ATSlocal_void (tmp740) ; ATSlocal (ats_ptr_type, tmp741) ; ATSlocal (ats_ptr_type, tmp742) ; // ATSlocal_void (tmp743) ; ATSlocal (ats_ptr_type, tmp744) ; ATSlocal (ats_ptr_type, tmp745) ; // ATSlocal_void (tmp746) ; ATSlocal (ats_ptr_type, tmp747) ; ATSlocal (ats_ptr_type, tmp748) ; // ATSlocal_void (tmp749) ; ATSlocal (ats_ptr_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; // ATSlocal_void (tmp752) ; ATSlocal (ats_ptr_type, tmp753) ; ATSlocal (ats_ptr_type, tmp754) ; // ATSlocal_void (tmp755) ; ATSlocal (ats_ptr_type, tmp756) ; ATSlocal (ats_ptr_type, tmp757) ; // ATSlocal_void (tmp758) ; ATSlocal (ats_ptr_type, tmp759) ; ATSlocal (ats_ptr_type, tmp760) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize: tmp738 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_t0ype) ; tmp739 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype) ; /* tmp740 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp739, tmp738) ; tmp741 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_t0ype) ; tmp742 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype) ; /* tmp743 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp742, tmp741) ; tmp744 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_t0ype) ; tmp745 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_int_t0ype) ; /* tmp746 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp745, tmp744) ; tmp747 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_t0ype) ; tmp748 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_int_t0ype) ; /* tmp749 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp748, tmp747) ; tmp750 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype) ; tmp751 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype) ; /* tmp752 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp751, tmp750) ; tmp753 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype) ; tmp754 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype) ; /* tmp755 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp754, tmp753) ; tmp756 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_type) ; tmp757 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type) ; /* tmp758 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp757, tmp756) ; tmp759 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_type) ; tmp760 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type) ; /* tmp737 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp760, tmp759) ; return /* (tmp737) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env.dats: 48752(line=2223, offs=3) -- 49019(line=2239, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint () { /* local vardec */ ATSlocal (ats_ptr_type, tmp761) ; ATSlocal (ats_ptr_type, tmp762) ; ATSlocal (ats_ptr_type, tmp763) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint: tmp762 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop () ; tmp763 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ; tmp761 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, tmp763, ats_castfn_mac(ats_ptr_type, tmp762)) ; return (tmp761) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp310, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp311, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp313, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp314, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp366, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp367, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp368, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp369, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil () ; statmp311 = ref_make_elt_01089_ats_ptr_type (statmp310) ; statmp314 = (ats_sum_ptr_type)0 ; statmp313 = ref_make_elt_01089_ats_ptr_type (statmp314) ; statmp367 = (ats_sum_ptr_type)0 ; statmp366 = ref_make_elt_01089_ats_ptr_type (statmp367) ; statmp369 = (ats_sum_ptr_type)0 ; statmp368 = ref_make_elt_01089_ats_ptr_type (statmp369) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_lazyeval_dats.c0000644000175000017500000010147213431250607023542 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type 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 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEdelay_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEldelay_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElazyeval_51) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ignore) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_delay) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_lazyeval) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_lazyeval.dats: 1670(line=55, offs=3) -- 2761(line=100, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_delay (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_int_type, tmp13) ; // ATSlocal_void (tmp14) ; ATSlocal (ats_bool_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_delay: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg3), atslab_hidexp_loc) ; tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp2)->tag != 49) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_lazyeval.dats: 1735(line=58, offs=5) -- 1768(line=58, offs=38)") ; } tmp3 = ats_caselptrlab_mac(anairiats_sum_1, tmp2, atslab_0) ; tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, tmp3), atslab_hidexp_type) ; tmp6 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp6, atslab_0, -1) ; tmp7 = (ats_sum_ptr_type)0 ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun (tmp6, tmp7, tmp4) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type (tmp5) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (tmp1, tmp8) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp8) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp8) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv (arg0, tmp8) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ; tmp15 = atspre_gt_int_int (tmp13, 0) ; if (tmp15) { /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd (tmp8, 1) ; } else { /* empty */ } /* end of [if] */ tmp16 = (ats_sum_ptr_type)0 ; tmp17 = (ats_sum_ptr_type)0 ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab (tmp1, tmp8) ; tmp20 = (ats_sum_ptr_type)0 ; tmp19 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp19, atslab_0, tmp18) ; ats_selptrset_mac(anairiats_sum_3, tmp19, atslab_1, tmp20) ; tmp22 = (ats_sum_ptr_type)0 ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body (arg0, tmp8, tmp16, tmp17, tmp19, tmp1, tmp22, tmp3) ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_0, tmp21) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (tmp8, tmp24) ; /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (arg0) ; tmp27 = (ats_sum_ptr_type)0 ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix (tmp27, tmp9) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_delay (tmp1, arg2, 0, tmp4, tmp26) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp28) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_delay] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_lazyeval.dats: 2855(line=106, offs=3) -- 4415(line=162, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_ldelay (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_int_type, tmp54) ; // ATSlocal_void (tmp55) ; ATSlocal (ats_bool_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_ldelay: tmp30 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg3), atslab_hidexp_loc) ; tmp31 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp31)->tag != 50) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_lazyeval.dats: 2920(line=109, offs=5) -- 2961(line=109, offs=46)") ; } tmp32 = ats_caselptrlab_mac(anairiats_sum_5, tmp31, atslab_0) ; tmp33 = ats_caselptrlab_mac(anairiats_sum_5, tmp31, atslab_1) ; tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, tmp32), atslab_hidexp_type) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype () ; tmp37 = (ats_sum_ptr_type)0 ; tmp36 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp36, atslab_0, tmp35) ; ats_selptrset_mac(anairiats_sum_3, tmp36, atslab_1, tmp37) ; tmp39 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp39, atslab_0, 1) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun (tmp39, tmp36, tmp34) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_type (tmp38) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (tmp30, tmp40) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any (tmp30) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes (tmp42) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_var (tmp30, tmp35, tmp42) ; tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, tmp33), atslab_hidexp_loc) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ignore (tmp46, tmp34, tmp33) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_if (tmp30, tmp34, tmp44, tmp32, tmp45) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_var (tmp30, tmp35, tmp42) ; tmp50 = (ats_sum_ptr_type)0 ; tmp49 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp49, atslab_0, tmp48) ; ats_selptrset_mac(anairiats_sum_3, tmp49, atslab_1, tmp50) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp40) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp40) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv (arg0, tmp40) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ; tmp56 = atspre_gt_int_int (tmp54, 0) ; if (tmp56) { /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd (tmp40, 1) ; } else { /* empty */ } /* end of [if] */ tmp57 = (ats_sum_ptr_type)0 ; tmp58 = (ats_sum_ptr_type)0 ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab (tmp30, tmp40) ; tmp61 = (ats_sum_ptr_type)0 ; tmp60 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp60, atslab_0, tmp59) ; ats_selptrset_mac(anairiats_sum_3, tmp60, atslab_1, tmp61) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body (arg0, tmp40, tmp57, tmp58, tmp60, tmp30, tmp49, tmp47) ; tmp64 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp64, atslab_0, tmp62) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (tmp40, tmp64) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (arg0) ; tmp67 = (ats_sum_ptr_type)0 ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix (tmp67, tmp41) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_delay (tmp30, arg2, 1, tmp34, tmp66) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp68) ; return /* (tmp29) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_ldelay] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_lazyeval.dats: 4510(line=168, offs=3) -- 4831(line=180, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_lazyeval (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_lazyeval: tmp70 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg3), atslab_hidexp_loc) ; tmp71 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg3), atslab_hidexp_type) ; tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp72)->tag != 51) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_lazyeval.dats: 4603(line=172, offs=5) -- 4649(line=172, offs=51)") ; } tmp73 = ats_caselptrlab_mac(anairiats_sum_6, tmp72, atslab_0) ; tmp74 = ats_caselptrlab_mac(anairiats_sum_6, tmp72, atslab_1) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, arg1, tmp74) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_lazyeval (tmp70, arg2, tmp73, tmp71, tmp75) ; /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp76) ; return /* (tmp69) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_lazyeval] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_lazyeval_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_scst_dats.c0000644000175000017500000010535113431250607023650 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_isasp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__s2cstbindlst_push_v = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_6 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_warning3_loc_02056_ (ats_ptr_type arg0) ; static ats_void_type loop_11 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp5) ; ATSstatic (ats_ptr_type, statmp6) ; ATSstatic (ats_ptr_type, statmp7) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_scst.dats: 1617(line=48, offs=28) -- 1650(line=48, offs=61) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_env_scst")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp4 ; */ tmp4 = arg0 ; tmp3 = atspre_ref_make_elt_tsz ((&tmp4), sizeof(ats_ptr_type)) ; return (tmp3) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_ref_make_elt_01089_ats_ptr_type: tmp2 = ref_01088_ats_ptr_type (arg0) ; return (tmp2) ; } /* end of [ref_make_elt_01089_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_scst.dats: 2087(line=72, offs=22) -- 2311(line=83, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add: tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp11 = ats_ptrget_mac(ats_ptr_type, tmp9) ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_1, tmp11) ; ats_ptrget_mac(ats_ptr_type, tmp9) = tmp10 ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_6 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_loop_6: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp18 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp18 ; arg1 = arg1 ; goto __ats_lab_loop_6 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp17) */ ; } /* end of [loop_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; // ATSlocal_void (tmp19) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp16 ; */ tmp16 = arg0 ; /* tmp19 = */ loop_6 ((&tmp16), arg1) ; tmp15 = tmp16 ; return (tmp15) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_scst.dats: 2401(line=88, offs=25) -- 2690(line=100, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_addlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_addlst: tmp13 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp20 = ats_ptrget_mac(ats_ptr_type, tmp13) ; tmp14 = list_vt_append_01504_ats_ptr_type (arg0, tmp20) ; ats_ptrget_mac(ats_ptr_type, tmp13) = tmp14 ; return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_addlst] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2997(line=122, offs=20) -- 3058(line=125, offs=2) */ ATSstaticdec() ats_void_type prerr_warning3_loc_02056_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; __ats_lab_prerr_warning3_loc_02056_: /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp26 = */ atspre_prerr_string (ATSstrcst(": warning(3)")) ; return /* (tmp26) */ ; } /* end of [prerr_warning3_loc_02056_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_scst.dats: 2788(line=106, offs=3) -- 3461(line=141, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp (arg1) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp23 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp23 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: /* tmp25 = */ prerr_warning3_loc_02056_ (arg0) ; /* tmp28 = */ atspre_prerr_string (ATSstrcst(": the static constant [")) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst (arg1) ; /* tmp30 = */ atspre_prerr_string (ATSstrcst("] is not abstract at this point.")) ; /* tmp24 = */ atspre_prerr_newline () ; break ; } while (0) ; tmp32 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp32, atslab_0, tmp22) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (arg1, tmp32) ; tmp34 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp34, atslab_0, tmp22) ; /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_isasp (arg1, tmp34) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add (arg1) ; return /* (tmp21) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_scst.dats: 3559(line=147, offs=3) -- 4047(line=172, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop: tmp36 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp6), atslab_1) ; tmp38 = ats_ptrget_mac(ats_ptr_type, tmp36) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp38 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp37 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp38 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_1, tmp38, atslab_0) ; tmp40 = ats_caselptrlab_mac(anairiats_sum_1, tmp38, atslab_1) ; ATS_FREE(tmp38) ; ats_ptrget_mac(ats_ptr_type, tmp36) = tmp40 ; tmp37 = tmp39 ; break ; } while (0) ; tmp41 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp42 = ats_ptrget_mac(ats_ptr_type, tmp41) ; ats_ptrget_mac(ats_ptr_type, tmp41) = tmp37 ; tmp35 = tmp42 ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_scst.dats: 4176(line=181, offs=1) -- 4623(line=203, offs=4) */ ATSstaticdec() ats_void_type loop_11 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab_loop_11: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp48 = (ats_sum_ptr_type)0 ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (tmp45, tmp48) ; arg0 = tmp46 ; goto __ats_lab_loop_11 ; // tail call break ; } while (0) ; return /* (tmp44) */ ; } /* end of [loop_11] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_scst.dats: 4147(line=178, offs=3) -- 4694(line=207, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind () { /* local vardec */ // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind: tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop () ; /* tmp43 = */ loop_11 (tmp49) ; return /* (tmp43) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_scst.dats: 4795(line=213, offs=3) -- 5128(line=230, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () { /* local vardec */ // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push: tmp51 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp52 = ats_ptrget_mac(ats_ptr_type, tmp51) ; tmp53 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp51) = tmp53 ; tmp54 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp6), atslab_1) ; tmp56 = ats_ptrget_mac(ats_ptr_type, tmp54) ; tmp55 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp55, atslab_0, tmp52) ; ats_selptrset_mac(anairiats_sum_1, tmp55, atslab_1, tmp56) ; ats_ptrget_mac(ats_ptr_type, tmp54) = tmp55 ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push] */ /* 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_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_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_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp5, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp6, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp5 = (ats_sum_ptr_type)0 ; statmp1 = ref_make_elt_01089_ats_ptr_type (statmp5) ; statmp7 = (ats_sum_ptr_type)0 ; statmp6 = ref_make_elt_01089_ats_ptr_type (statmp7) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_scst_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_histaexp_dats.c0000644000175000017500000025754413431250607022373 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_1 ; typedef struct { ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_11 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HITNAM_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyabs_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEapp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEextype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEfun_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSErefarg_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyarr_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrec_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrecsin_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtysum_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyvar_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyclo_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEvararg_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2exp_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2zexp_15) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_size) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_clotyp) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_funptr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_arrptr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datcontyp) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_exnconptr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined) ; /* internal function declarations */ static ats_bool_type s2cst_is_void_3 (ats_ptr_type arg0) ; static ats_bool_type s2exp_is_void_4 (ats_ptr_type arg0) ; static ats_ptr_type hisexp_make_node_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type list_is_sing_01298_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type auxlab_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type auxlst_38 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type auxlablst_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type auxlstlst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp2) ; ATSstatic (ats_ptr_type, statmp3) ; ATSstatic (ats_ptr_type, statmp4) ; ATSstatic (ats_ptr_type, statmp5) ; ATSstatic (ats_ptr_type, statmp6) ; ATSstatic (ats_ptr_type, statmp7) ; ATSstatic (ats_ptr_type, statmp8) ; ATSstatic (ats_ptr_type, statmp9) ; ATSstatic (ats_ptr_type, statmp10) ; ATSstatic (ats_ptr_type, statmp11) ; ATSstatic (ats_ptr_type, statmp12) ; ATSstatic (ats_ptr_type, statmp13) ; ATSstatic (ats_ptr_type, statmp14) ; ATSstatic (ats_ptr_type, statmp15) ; ATSstatic (ats_ptr_type, statmp16) ; ATSstatic (ats_ptr_type, statmp17) ; ATSstatic (ats_ptr_type, statmp18) ; ATSstatic (ats_ptr_type, statmp19) ; ATSstatic (ats_ptr_type, statmp20) ; ATSstatic (ats_ptr_type, statmp21) ; ATSstatic (ats_ptr_type, statmp22) ; ATSstatic (ats_ptr_type, statmp60) ; ATSstatic (ats_ptr_type, statmp61) ; ATSstatic (ats_ptr_type, statmp62) ; ATSstatic (ats_ptr_type, statmp63) ; ATSstatic (ats_ptr_type, statmp64) ; ATSstatic (ats_ptr_type, statmp65) ; ATSstatic (ats_ptr_type, statmp66) ; ATSstatic (ats_ptr_type, statmp67) ; ATSstatic (ats_ptr_type, statmp68) ; ATSstatic (ats_ptr_type, statmp69) ; ATSstatic (ats_ptr_type, statmp70) ; ATSstatic (ats_ptr_type, statmp71) ; ATSstatic (ats_ptr_type, statmp72) ; ATSstatic (ats_ptr_type, statmp73) ; ATSstatic (ats_ptr_type, statmp74) ; ATSstatic (ats_ptr_type, statmp75) ; ATSstatic (ats_ptr_type, statmp76) ; ATSstatic (ats_ptr_type, statmp77) ; ATSstatic (ats_ptr_type, statmp78) ; ATSstatic (ats_ptr_type, statmp79) ; ATSstatic (ats_ptr_type, statmp80) ; ATSstatic (ats_ptr_type, statmp81) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 3692(line=160, offs=3) -- 3910(line=173, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_boxknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_boxknd: tmp24 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp24)->tag != 8) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_3, tmp24, atslab_0) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed (tmp25) ; if (tmp26) { tmp23 = 1 ; } else { tmp23 = 0 ; } /* end of [if] */ break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp24)->tag != 10) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp23 = 0 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp23 = -1 ; break ; } while (0) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_boxknd] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 3972(line=177, offs=3) -- 4141(line=188, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_bool_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd: tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp28)->tag != 8) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_3, tmp28, atslab_0) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext (tmp29) ; if (tmp30) { tmp27 = 1 ; } else { tmp27 = 0 ; } /* end of [if] */ break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp27 = -1 ; break ; } while (0) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 4219(line=193, offs=16) -- 4293(line=197, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_boxed (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_int_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_boxed: tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_name) ; // tmp33 = ats_caselptrlab_mac(anairiats_sum_2, tmp32, atslab_0) ; tmp31 = atspre_gt_int_int (tmp33, 0) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_boxed] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 4357(line=204, offs=1) -- 4447(line=206, offs=54) */ ATSstaticdec() ats_bool_type s2cst_is_void_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp34) ; __ats_lab_s2cst_is_void_3: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype, arg0) ; return (tmp34) ; } /* end of [s2cst_is_void_3] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 4455(line=209, offs=1) -- 4789(line=225, offs=2) */ ATSstaticdec() ats_bool_type s2exp_is_void_4 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab_s2exp_is_void_4: tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype, arg0) ; break ; } while (0) ; return (tmp35) ; } /* end of [s2exp_is_void_4] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 4842(line=231, offs=3) -- 5142(line=249, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void: tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp38)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_5, tmp38, atslab_0) ; tmp37 = s2cst_is_void_3 (tmp39) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp38)->tag != 9) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_5, tmp38, atslab_0) ; tmp41 = ats_caselptrlab_mac(anairiats_sum_6, tmp40, atslab_2) ; arg0 = tmp41 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void ; // tail call break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp38)->tag != 14) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_5, tmp38, atslab_0) ; tmp37 = s2exp_is_void_4 (tmp42) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp37 = ats_false_bool ; break ; } while (0) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 5246(line=257, offs=3) -- 5404(line=269, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_void (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_void: tmp44 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp44)->tag != 5) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_2) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void (tmp45) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp43 = ats_false_bool ; break ; } while (0) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_void] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 5486(line=275, offs=3) -- 5813(line=292, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret: tmp47 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp47)->tag != 0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_5, tmp47, atslab_0) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype, tmp48) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp47)->tag != 11) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp46 = ats_true_bool ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp47)->tag != 9) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_5, tmp47, atslab_0) ; tmp50 = ats_caselptrlab_mac(anairiats_sum_6, tmp49, atslab_2) ; arg0 = tmp50 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp46 = ats_false_bool ; break ; } while (0) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 5875(line=296, offs=3) -- 6029(line=306, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_noret (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_noret: tmp52 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp52)->tag != 5) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_7, tmp52, atslab_2) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret (tmp53) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp51 = ats_false_bool ; break ; } while (0) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_noret] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 6111(line=312, offs=3) -- 6190(line=315, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyarr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyarr: tmp55 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp55)->tag != 7) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp54 = ats_true_bool ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp54 = ats_false_bool ; break ; } while (0) ; return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyarr] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 6251(line=319, offs=3) -- 6333(line=322, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyrecsin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyrecsin: tmp57 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp57)->tag != 9) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp56 = ats_true_bool ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp56 = ats_false_bool ; break ; } while (0) ; return (tmp56) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyrecsin] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 6415(line=327, offs=19) -- 6477(line=328, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__labhisexp_get_elt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__labhisexp_get_elt: tmp59 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp58 = tmp59 ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__labhisexp_get_elt] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 8023(line=411, offs=18) -- 8161(line=418, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_int_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_int_t0ype: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_int) ; tmp84 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp84)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp84, atslab_0, tmp83) ; tmp82 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp82, atslab_hisexp_name, statmp10) ; ats_selptrset_mac(anairiats_rec_1, tmp82, atslab_hisexp_node, tmp84) ; return (tmp82) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_int_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 8241(line=423, offs=19) -- 8380(line=430, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype: tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_bool) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp87)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp87, atslab_0, tmp86) ; tmp85 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp85, atslab_hisexp_name, statmp10) ; ats_selptrset_mac(anairiats_rec_1, tmp85, atslab_hisexp_node, tmp87) ; return (tmp85) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 8461(line=435, offs=19) -- 8600(line=442, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_size_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_size_t0ype: tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_size) ; tmp90 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp90)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp90, atslab_0, tmp89) ; tmp88 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_hisexp_name, statmp10) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_hisexp_node, tmp90) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_size_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 8982(line=462, offs=19) -- 9122(line=469, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype: tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype) ; tmp93 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp93)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp93, atslab_0, tmp92) ; tmp91 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp91, atslab_hisexp_name, statmp10) ; ats_selptrset_mac(anairiats_rec_1, tmp91, atslab_hisexp_node, tmp93) ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 9179(line=474, offs=1) -- 9286(line=479, offs=2) */ ATSstaticdec() ats_ptr_type hisexp_make_node_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; __ats_lab_hisexp_make_node_16: tmp94 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp94, atslab_hisexp_name, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp94, atslab_hisexp_node, arg1) ; return (tmp94) ; } /* end of [hisexp_make_node_16] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 9365(line=484, offs=13) -- 9418(line=485, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs: tmp96 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp96)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp96, atslab_0, arg0) ; tmp95 = hisexp_make_node_16 (statmp10, tmp96) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 9471(line=491, offs=3) -- 9673(line=509, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srt: tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun (arg0) ; if (tmp98) { tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox ; } else { tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("atstype_unboxed")) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs (tmp99) ; } /* end of [if] */ return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srt] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 9734(line=513, offs=3) -- 9873(line=521, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srtsym (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_bool_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srtsym: tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun (arg0) ; if (tmp101) { tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox ; } else { tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs (arg1) ; } /* end of [if] */ return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srtsym] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 9950(line=526, offs=12) -- 10005(line=527, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cst: tmp103 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp103)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp103, atslab_0, arg0) ; tmp102 = hisexp_make_node_16 (statmp10, tmp103) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cst] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 10051(line=533, offs=1) -- 10361(line=550, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_bool_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun: tmp105 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp105)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp105, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp105, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp105, atslab_2, arg2) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp104 = hisexp_make_node_16 (statmp3, tmp105) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp107 = atspre_eq_int_int (tmp106, 0) ; if (tmp107) { tmp104 = hisexp_make_node_16 (statmp5, tmp105) ; } else { tmp104 = hisexp_make_node_16 (statmp4, tmp105) ; } /* end of [if] */ break ; } while (0) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 10430(line=556, offs=3) -- 10499(line=557, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app: tmp109 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp109)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp109, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp109, atslab_1, arg1) ; tmp108 = hisexp_make_node_16 (statmp12, tmp109) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 10571(line=564, offs=3) -- 10692(line=568, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype: tmp111 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp111, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, tmp111, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, tmp111, atslab_2, arg0) ; tmp112 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp112)->tag = 4 ; ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_1, arg1) ; tmp110 = hisexp_make_node_16 (tmp111, tmp112) ; return (tmp110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 10767(line=574, offs=3) -- 10915(line=581, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg: tmp114 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_2, ATSstrcst("postiats_refarg")) ; tmp115 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp115)->tag = 6 ; ats_selptrset_mac(anairiats_sum_9, tmp115, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp115, atslab_1, arg1) ; tmp113 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp113, atslab_hisexp_name, tmp114) ; ats_selptrset_mac(anairiats_rec_1, tmp113, atslab_hisexp_node, tmp115) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 10987(line=586, offs=14) -- 11054(line=587, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr: tmp117 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp117)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp117, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp117, atslab_1, arg1) ; tmp116 = hisexp_make_node_16 (statmp14, tmp117) ; return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 11125(line=593, offs=14) -- 11196(line=594, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec: tmp119 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp119)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp119, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp119, atslab_1, arg1) ; tmp118 = hisexp_make_node_16 (statmp15, tmp119) ; return (tmp118) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 11249(line=598, offs=17) -- 11314(line=599, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin: tmp121 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp121)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp121, atslab_0, arg0) ; tmp120 = hisexp_make_node_16 (statmp16, tmp121) ; return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50922(line=1801, offs=14) -- 50991(line=1803, offs=4) */ ATSstaticdec() ats_bool_type list_is_sing_01298_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab_list_is_sing_01298_ats_ptr_type: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } tmp126 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; if (tmp126 != (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp125 = ats_true_bool ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp125 = ats_false_bool ; break ; } while (0) ; return (tmp125) ; } /* end of [list_is_sing_01298_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 11370(line=604, offs=3) -- 11696(line=623, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_bool_type, tmp123) ; ATSlocal (ats_bool_type, tmp124) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec2: tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted (arg0) ; if (tmp123) { tmp124 = list_is_sing_01298_ats_ptr_type (arg1) ; if (tmp124) { // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp127 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin (tmp127) ; } else { tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (arg0, arg1) ; } /* end of [if] */ } else { tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (arg0, arg1) ; } /* end of [if] */ return (tmp122) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec2] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 11768(line=628, offs=14) -- 11839(line=629, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum: tmp129 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp129)->tag = 10 ; ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_1, arg1) ; tmp128 = hisexp_make_node_16 (statmp17, tmp129) ; return (tmp128) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 11910(line=635, offs=14) -- 12127(line=643, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyvar (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyvar: tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ; tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed (tmp131) ; if (tmp132) { tmp133 = statmp0 ; } else { tmp133 = statmp18 ; } /* end of [if] */ tmp134 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp134)->tag = 11 ; ats_selptrset_mac(anairiats_sum_5, tmp134, atslab_0, arg0) ; tmp130 = hisexp_make_node_16 (tmp133, tmp134) ; return (tmp130) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyvar] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 12198(line=648, offs=14) -- 12257(line=649, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyclo (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyclo: tmp136 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp136)->tag = 12 ; ats_selptrset_mac(anairiats_sum_5, tmp136, atslab_0, arg0) ; tmp135 = hisexp_make_node_16 (statmp13, tmp136) ; return (tmp135) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyclo] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 12329(line=655, offs=15) -- 12400(line=657, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg: tmp138 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp138)->tag = 13 ; ats_selptrset_mac(anairiats_sum_5, tmp138, atslab_0, arg0) ; tmp137 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp137, atslab_hisexp_name, statmp20) ; ats_selptrset_mac(anairiats_rec_1, tmp137, atslab_hisexp_node, tmp138) ; return (tmp137) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 12472(line=662, offs=14) -- 12529(line=663, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp: tmp140 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp140)->tag = 14 ; ats_selptrset_mac(anairiats_sum_5, tmp140, atslab_0, arg0) ; tmp139 = hisexp_make_node_16 (statmp21, tmp140) ; return (tmp139) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 12580(line=667, offs=15) -- 12641(line=668, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp: tmp142 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp142)->tag = 15 ; ats_selptrset_mac(anairiats_sum_5, tmp142, atslab_0, arg0) ; tmp141 = hisexp_make_node_16 (statmp22, tmp142) ; return (tmp141) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 12701(line=676, offs=1) -- 15541(line=799, offs=4) */ ATSstaticdec() ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_int_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_int_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_bool_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_int_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_bool_type, tmp162) ; ATSlocal (ats_int_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_int_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_bool_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_int_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_bool_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_int_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_bool_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_int_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_bool_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_int_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_bool_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_int_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_int_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_bool_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_int_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_bool_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_int_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_bool_type, tmp203) ; __ats_lab_aux_36: tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hisexp_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp144)->tag != 0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp143 = arg1 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp144)->tag != 2) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp143 = arg1 ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp144)->tag != 1) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp143 = arg1 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp144)->tag != 3) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ; tmp146 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ; tmp147 = ats_ptrget_mac(ats_int_type, arg2) ; tmp148 = aux_36 (arg0, tmp145, arg2) ; tmp149 = auxlst_38 (arg0, tmp146, arg2) ; tmp150 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp147) ; if (tmp150) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app (tmp148, tmp149) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp144)->tag != 4) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp151 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ; tmp152 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ; tmp153 = ats_ptrget_mac(ats_int_type, arg2) ; tmp154 = auxlstlst_40 (arg0, tmp152, arg2) ; tmp155 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp153) ; if (tmp155) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype (tmp151, tmp154) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp144)->tag != 5) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_7, tmp144, atslab_0) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_7, tmp144, atslab_1) ; tmp158 = ats_caselptrlab_mac(anairiats_sum_7, tmp144, atslab_2) ; tmp159 = ats_ptrget_mac(ats_int_type, arg2) ; tmp160 = aux_36 (arg0, tmp158, arg2) ; tmp161 = auxlst_38 (arg0, tmp157, arg2) ; tmp162 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp159) ; if (tmp162) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun (tmp156, tmp161, tmp160) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp144)->tag != 6) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_9, tmp144, atslab_0) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_9, tmp144, atslab_1) ; tmp165 = ats_ptrget_mac(ats_int_type, arg2) ; tmp166 = aux_36 (arg0, tmp164, arg2) ; tmp167 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp165) ; if (tmp167) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg (tmp163, tmp166) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp144)->tag != 7) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ; tmp170 = ats_ptrget_mac(ats_int_type, arg2) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp169, arg2) ; tmp172 = aux_36 (arg0, tmp168, arg2) ; tmp173 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp170) ; if (tmp173) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr (tmp172, tmp171) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp144)->tag != 8) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ; tmp176 = ats_ptrget_mac(ats_int_type, arg2) ; tmp177 = auxlablst_39 (arg0, tmp175, arg2) ; tmp178 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp176) ; if (tmp178) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (tmp174, tmp177) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp144)->tag != 9) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ; tmp180 = ats_ptrget_mac(ats_int_type, arg2) ; tmp181 = auxlab_37 (arg0, tmp179, arg2) ; tmp182 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp180) ; if (tmp182) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin (tmp181) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp144)->tag != 10) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp183 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ; tmp184 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ; tmp185 = ats_ptrget_mac(ats_int_type, arg2) ; tmp186 = auxlablst_39 (arg0, tmp184, arg2) ; tmp187 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp185) ; if (tmp187) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum (tmp183, tmp186) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp144)->tag != 11) { goto __ats_lab_40_0 ; } __ats_lab_37_1: tmp188 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find (arg0, tmp188) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (tmp189 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp190 = ats_caselptrlab_mac(anairiats_sum_11, tmp189, atslab_0) ; ATS_FREE(tmp189) ; tmp191 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp191 ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp (tmp190) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (tmp189 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp143 = arg1 ; break ; } while (0) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp144)->tag != 12) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp143 = arg1 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp144)->tag != 13) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ; tmp193 = ats_ptrget_mac(ats_int_type, arg2) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp192, arg2) ; tmp195 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp193) ; if (tmp195) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg (tmp194) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp144)->tag != 14) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp196 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ; tmp197 = ats_ptrget_mac(ats_int_type, arg2) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp196, arg2) ; tmp199 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp197) ; if (tmp199) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp (tmp198) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (((ats_sum_ptr_type)tmp144)->tag != 15) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp200 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ; tmp201 = ats_ptrget_mac(ats_int_type, arg2) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag (arg0, tmp200, arg2) ; tmp203 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp201) ; if (tmp203) { tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp (tmp202) ; } else { tmp143 = arg1 ; } /* end of [if] */ break ; } while (0) ; return (tmp143) ; } /* end of [aux_36] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 15563(line=801, offs=5) -- 15789(line=809, offs=4) */ ATSstaticdec() ats_ptr_type auxlab_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_int_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_bool_type, tmp210) ; __ats_lab_auxlab_37: tmp205 = ats_ptrget_mac(ats_int_type, arg2) ; // tmp206 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp207 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp208 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_2) ; tmp209 = aux_36 (arg0, tmp208, arg2) ; tmp210 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp205) ; if (tmp210) { tmp204 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp204, atslab_0, tmp206) ; ats_selptrset_mac(anairiats_sum_6, tmp204, atslab_1, tmp207) ; ats_selptrset_mac(anairiats_sum_6, tmp204, atslab_2, tmp209) ; } else { tmp204 = arg1 ; } /* end of [if] */ return (tmp204) ; } /* end of [auxlab_37] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 15814(line=811, offs=5) -- 16160(line=827, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_38 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_int_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_bool_type, tmp217) ; __ats_lab_auxlst_38: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp213 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; tmp214 = ats_ptrget_mac(ats_int_type, arg2) ; tmp215 = aux_36 (arg0, tmp212, arg2) ; tmp216 = auxlst_38 (arg0, tmp213, arg2) ; tmp217 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp214) ; if (tmp217) { tmp211 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp211, atslab_0, tmp215) ; ats_selptrset_mac(anairiats_sum_10, tmp211, atslab_1, tmp216) ; } else { tmp211 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp211 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp211) ; } /* end of [auxlst_38] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 16185(line=829, offs=5) -- 16557(line=845, offs=4) */ ATSstaticdec() ats_ptr_type auxlablst_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_int_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_bool_type, tmp224) ; __ats_lab_auxlablst_39: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp219 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; tmp221 = ats_ptrget_mac(ats_int_type, arg2) ; tmp222 = auxlab_37 (arg0, tmp219, arg2) ; tmp223 = auxlablst_39 (arg0, tmp220, arg2) ; tmp224 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp221) ; if (tmp224) { tmp218 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp218, atslab_0, tmp222) ; ats_selptrset_mac(anairiats_sum_10, tmp218, atslab_1, tmp223) ; } else { tmp218 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp218 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp218) ; } /* end of [auxlablst_39] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 16585(line=847, offs=5) -- 16957(line=863, offs=4) */ ATSstaticdec() ats_ptr_type auxlstlst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_int_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_bool_type, tmp231) ; __ats_lab_auxlstlst_40: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp226 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp227 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; tmp228 = ats_ptrget_mac(ats_int_type, arg2) ; tmp229 = auxlst_38 (arg0, tmp226, arg2) ; tmp230 = auxlstlst_40 (arg0, tmp227, arg2) ; tmp231 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp228) ; if (tmp231) { tmp225 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp225, atslab_0, tmp229) ; ats_selptrset_mac(anairiats_sum_10, tmp225, atslab_1, tmp230) ; } else { tmp225 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp225 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp225) ; } /* end of [auxlstlst_40] */ /* // /tmp/ATS-Postiats/src/pats_histaexp.dats: 17027(line=869, offs=3) -- 17093(line=871, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_int_type, tmp233) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst: /* ats_int_type tmp233 ; */ tmp233 = 0 ; tmp232 = aux_36 (arg0, arg1, (&tmp233)) ; return (tmp232) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp2, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp3, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp5, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp6, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp8, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp9, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp10, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp11, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp12, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp13, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp14, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp15, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp16, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp17, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp18, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp19, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp20, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp21, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp22, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp60, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp61, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp62, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp63, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp64, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp65, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp66, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp67, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp68, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp69, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp70, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp71, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp72, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp73, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp74, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp75, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp76, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp77, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp78, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp79, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp80, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp81, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp0 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp0, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp0, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp0, atslab_2, ATSstrcst("atstype_boxed")) ; statmp1 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp1, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp1, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp1, atslab_2, ATSstrcst("atstype_unboxed")) ; statmp2 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp2, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp2, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp2, atslab_2, ATSstrcst("atstype_undefined")) ; statmp3 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp3, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp3, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp3, atslab_2, ATSstrcst("atstype_funptr")) ; statmp4 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp4, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp4, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp4, atslab_2, ATSstrcst("atstype_cloptr")) ; statmp5 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp5, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp5, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp5, atslab_2, ATSstrcst("atstype_clotyp")) ; statmp6 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp6, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp6, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp6, atslab_2, ATSstrcst("atstype_arrptr")) ; statmp7 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp7, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp7, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp7, atslab_2, ATSstrcst("atstype_datconptr")) ; statmp8 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp8, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp8, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp8, atslab_2, ATSstrcst("atstype_datcontyp")) ; statmp9 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp9, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp9, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp9, atslab_2, ATSstrcst("atstype_exnconptr")) ; statmp10 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp10, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp10, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp10, atslab_2, ATSstrcst("postiats_tyabs")) ; statmp11 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp11, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp11, atslab_1, 1) ; ats_selptrset_mac(anairiats_sum_2, statmp11, atslab_2, ATSstrcst("postiats_typtr")) ; statmp12 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp12, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp12, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp12, atslab_2, ATSstrcst("postiats_tyapp")) ; statmp13 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp13, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp13, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp13, atslab_2, ATSstrcst("postiats_tyclo")) ; statmp14 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp14, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp14, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp14, atslab_2, ATSstrcst("postiats_tyarr")) ; statmp15 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp15, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp15, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp15, atslab_2, ATSstrcst("postiats_tyrec")) ; statmp16 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp16, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp16, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp16, atslab_2, ATSstrcst("postiats_tyrecsin")) ; statmp17 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp17, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp17, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp17, atslab_2, ATSstrcst("postiats_tysum")) ; statmp18 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp18, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp18, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp18, atslab_2, ATSstrcst("postiats_tyvar")) ; statmp19 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp19, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp19, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp19, atslab_2, ATSstrcst("postiats_tyvaret")) ; statmp20 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp20, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp20, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp20, atslab_2, ATSstrcst("postiats_vararg")) ; statmp21 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp21, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp21, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp21, atslab_2, ATSstrcst("postiats_s2exp")) ; statmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, statmp22, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp22, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_2, statmp22, atslab_2, ATSstrcst("postiats_s2zexp")) ; statmp61 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; statmp60 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp60, atslab_hisexp_name, statmp0) ; ats_selptrset_mac(anairiats_rec_1, statmp60, atslab_hisexp_node, statmp61) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox = statmp60 ; statmp63 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; statmp62 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp62, atslab_hisexp_name, statmp11) ; ats_selptrset_mac(anairiats_rec_1, statmp62, atslab_hisexp_node, statmp63) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr = statmp62 ; statmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("atstyclo_top")) ; statmp66 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)statmp66)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, statmp66, atslab_0, statmp64) ; statmp65 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp65, atslab_hisexp_name, statmp13) ; ats_selptrset_mac(anairiats_rec_1, statmp65, atslab_hisexp_node, statmp66) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_clotyp, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_clotyp = statmp65 ; statmp68 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; statmp67 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp67, atslab_hisexp_name, statmp3) ; ats_selptrset_mac(anairiats_rec_1, statmp67, atslab_hisexp_node, statmp68) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_funptr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_funptr = statmp67 ; statmp70 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; statmp69 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp69, atslab_hisexp_name, statmp4) ; ats_selptrset_mac(anairiats_rec_1, statmp69, atslab_hisexp_node, statmp70) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr = statmp69 ; statmp72 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; statmp71 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp71, atslab_hisexp_name, statmp6) ; ats_selptrset_mac(anairiats_rec_1, statmp71, atslab_hisexp_node, statmp72) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_arrptr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_arrptr = statmp71 ; statmp74 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; statmp73 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp73, atslab_hisexp_name, statmp7) ; ats_selptrset_mac(anairiats_rec_1, statmp73, atslab_hisexp_node, statmp74) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr = statmp73 ; statmp76 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; statmp75 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp75, atslab_hisexp_name, statmp8) ; ats_selptrset_mac(anairiats_rec_1, statmp75, atslab_hisexp_node, statmp76) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datcontyp, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datcontyp = statmp75 ; statmp78 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; statmp77 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp77, atslab_hisexp_name, statmp9) ; ats_selptrset_mac(anairiats_rec_1, statmp77, atslab_hisexp_node, statmp78) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_exnconptr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_exnconptr = statmp77 ; statmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("atstype_undefined")) ; statmp81 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)statmp81)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, statmp81, atslab_0, statmp79) ; statmp80 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp80, atslab_hisexp_name, statmp2) ; ats_selptrset_mac(anairiats_rec_1, statmp80, atslab_hisexp_node, statmp81) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined = statmp80 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_histaexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_effect_dats.c0000644000175000017500000006777613431250607022010 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_uint_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_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_uint_type, atspre_add_uint_uint) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, atspre_lt_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_uint_type, atspre_lnot_uint) (ats_uint_type) ; ATSextern_fun(ats_uint_type, atspre_land_uint_uint) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_uint_type, atspre_lor_uint_uint) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_uint_type, atspre_lsl_uint_int1) (ats_uint_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_get_name) (ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effect) (ats_ptr_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effect_effect) (ats_uint_type, ats_uint_type) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_sing) (ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil) (ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall) (ats_uint_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_cmpl) (ats_uint_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_inter) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_is_inter) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset) (ats_ptr_type, ats_uint_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__sasp__effset_t0ype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__sasp__effect_t0ype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm) ; ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effectlst_all) ; ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ntm) ; ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_exn) ; ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ref) ; ATSglobal(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_wrt) ; /* internal function declarations */ static ats_void_type prerr_FILENAME_01856_ () ; static ats_void_type loop_21 (ats_ptr_type arg0, ats_uint_type arg1, ats_uint_type arg2, ats_uint_type arg3, ats_ref_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp2) ; ATSstatic (ats_ptr_type, statmp3) ; ATSstatic (ats_uint_type, statmp10) ; ATSstatic (ats_uint_type, statmp11) ; ATSstatic (ats_uint_type, statmp12) ; ATSstatic (ats_uint_type, statmp13) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 1547(line=42, offs=28) -- 1571(line=42, offs=52) */ ATSstaticdec() ats_void_type prerr_FILENAME_01856_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_01856_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_effect")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_01856_] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 2319(line=79, offs=18) -- 2359(line=79, offs=58) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effect_effect (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effect_effect: tmp4 = atspre_eq_uint_uint (arg0, arg1) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effect_effect] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 2410(line=85, offs=3) -- 2654(line=98, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_get_name (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_get_name: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (ats_castfn_mac(ats_int_type, arg0) != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp5 = ATSstrcst("ntm") ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (ats_castfn_mac(ats_int_type, arg0) != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp5 = ATSstrcst("exn") ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (ats_castfn_mac(ats_int_type, arg0) != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp5 = ATSstrcst("ref") ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (ats_castfn_mac(ats_int_type, arg0) != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp5 = ATSstrcst("wrt") ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp7 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_effect.dats: 2576(line=96, offs=16) -- 2592(line=96, offs=32)", ATSstrcst("\n")) ; /* tmp6 = */ atspre_assert_errmsg (ats_false_bool, tmp7) ; /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_get_name] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 2729(line=103, offs=15) -- 2780(line=103, offs=66) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effect (ats_ptr_type arg0, ats_uint_type arg1) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effect: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_get_name (arg1) ; /* tmp8 = */ atspre_fprint_string (arg0, tmp9) ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effect] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3145(line=119, offs=23) -- 3159(line=119, offs=37) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_sing (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_uint_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_sing: tmp14 = atspre_lsl_uint_uint (1u, arg0) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_sing] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3191(line=121, offs=28) -- 3231(line=121, offs=68) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effset_effset (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effset_effset: tmp15 = atspre_eq_uint_uint (arg0, arg1) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effset_effset] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3277(line=125, offs=22) -- 3302(line=125, offs=47) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_uint_type, tmp16) ; ATSlocal (ats_uint_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add: tmp17 = atspre_lsl_uint_uint (1u, arg1) ; tmp16 = atspre_lor_uint_uint (arg0, tmp17) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3325(line=126, offs=22) -- 3352(line=126, offs=49) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_uint_type, tmp18) ; ATSlocal (ats_uint_type, tmp19) ; ATSlocal (ats_uint_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del: tmp20 = atspre_lsl_uint_uint (1u, arg1) ; tmp19 = atspre_lnot_uint (tmp20) ; tmp18 = atspre_land_uint_uint (arg0, tmp19) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3399(line=131, offs=14) -- 3439(line=131, offs=54) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil: tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effect_effect (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3463(line=133, offs=14) -- 3503(line=133, offs=54) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effect_effect (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3527(line=135, offs=14) -- 3598(line=136, offs=55) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isfin (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp23) ; ATSlocal (ats_uint_type, tmp24) ; ATSlocal (ats_uint_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isfin: tmp25 = atspre_lsl_uint_int1 (1u, 4) ; tmp24 = atspre_land_uint_uint (arg0, tmp25) ; tmp23 = atspre_eq_uint_uint (tmp24, 0u) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isfin] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3647(line=139, offs=14) -- 3720(line=140, offs=55) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_iscof (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_uint_type, tmp27) ; ATSlocal (ats_uint_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_iscof: tmp28 = atspre_lsl_uint_int1 (1u, 4) ; tmp27 = atspre_land_uint_uint (arg0, tmp28) ; tmp26 = atspre_lt_uint_uint (tmp27, 0u) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_iscof] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3791(line=146, offs=14) -- 3825(line=146, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ismem (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_uint_type, tmp30) ; ATSlocal (ats_uint_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ismem: tmp31 = atspre_lsl_uint_uint (1u, arg1) ; tmp30 = atspre_land_uint_uint (arg0, tmp31) ; tmp29 = atspre_gt_uint_uint (tmp30, 0u) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ismem] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3853(line=150, offs=3) -- 3898(line=150, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_supset (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp32) ; ATSlocal (ats_uint_type, tmp33) ; ATSlocal (ats_uint_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_supset: tmp34 = atspre_lnot_uint (arg0) ; tmp33 = atspre_land_uint_uint (tmp34, arg1) ; tmp32 = atspre_eq_uint_uint (tmp33, 0u) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_supset] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 3952(line=155, offs=3) -- 3997(line=155, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_subset (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp35) ; ATSlocal (ats_uint_type, tmp36) ; ATSlocal (ats_uint_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_subset: tmp37 = atspre_lnot_uint (arg1) ; tmp36 = atspre_land_uint_uint (arg0, tmp37) ; tmp35 = atspre_eq_uint_uint (tmp36, 0u) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_subset] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 4051(line=159, offs=17) -- 4104(line=160, offs=41) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_is_inter (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp38) ; ATSlocal (ats_bool_type, tmp39) ; ATSlocal (ats_uint_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_is_inter: tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_inter (arg0, arg1) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (tmp40) ; tmp38 = atspre_neg_bool (tmp39) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_is_inter] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 4157(line=164, offs=13) -- 4177(line=164, offs=33) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_cmpl (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_uint_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_cmpl: tmp41 = atspre_lnot_uint (arg0) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_cmpl] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 4204(line=168, offs=3) -- 4243(line=168, offs=42) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_diff (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_uint_type, tmp42) ; ATSlocal (ats_uint_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_diff: tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_cmpl (arg1) ; tmp42 = atspre_land_uint_uint (arg0, tmp43) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_diff] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 4293(line=172, offs=14) -- 4318(line=172, offs=39) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_inter (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_uint_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_inter: tmp44 = atspre_land_uint_uint (arg0, arg1) ; return (tmp44) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_inter] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 4343(line=175, offs=14) -- 4370(line=175, offs=41) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_union (ats_uint_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_uint_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_union: tmp45 = atspre_lor_uint_uint (arg0, arg1) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_union] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 4444(line=183, offs=5) -- 4838(line=201, offs=4) */ ATSstaticdec() ats_void_type loop_21 (ats_ptr_type arg0, ats_uint_type arg1, ats_uint_type arg2, ats_uint_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_bool_type, tmp48) ; ATSlocal (ats_bool_type, tmp49) ; ATSlocal (ats_uint_type, tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_int_type, tmp54) ; ATSlocal (ats_uint_type, tmp55) ; __ats_lab_loop_21: tmp48 = atspre_lt_uint_uint (arg3, arg2) ; if (tmp48) { tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_sing (arg3) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_is_inter (arg1, tmp50) ; if (tmp49) { tmp53 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg4), 0) ; if (tmp53) { /* tmp52 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp54 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp54 ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effect (arg0, arg3) ; } else { /* empty */ } /* end of [if] */ tmp55 = atspre_add_uint_uint (arg3, 1u) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp55 ; arg4 = arg4 ; goto __ats_lab_loop_21 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp47) */ ; } /* end of [loop_21] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 4420(line=181, offs=3) -- 5164(line=218, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset (ats_ptr_type arg0, ats_uint_type arg1) { /* local vardec */ // ATSlocal_void (tmp46) ; ATSlocal (ats_int_type, tmp56) ; ATSlocal (ats_bool_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset: /* ats_int_type tmp56 ; */ tmp56 = 0 ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (arg1) ; if (!tmp57) { goto __ats_lab_6_1 ; } /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst("0")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall (arg1) ; if (!tmp58) { goto __ats_lab_7_1 ; } /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst("1")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: /* tmp59 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp60 = */ loop_21 (arg0, arg1, ats_castfn_mac(ats_uint_type, 4), 0u, (&tmp56)) ; /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; break ; } while (0) ; return /* (tmp46) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 5215(line=221, offs=14) -- 5250(line=221, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__print_effset (ats_uint_type arg0) { /* local vardec */ // ATSlocal_void (tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__print_effset: /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset (stdout, arg0) ; return /* (tmp61) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__print_effset] */ /* // /tmp/ATS-Postiats/src/pats_effect.dats: 5274(line=223, offs=14) -- 5309(line=223, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__prerr_effset (ats_uint_type arg0) { /* local vardec */ // ATSlocal_void (tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__prerr_effset: /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset (stderr, arg0) ; return /* (tmp62) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__prerr_effset] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp2, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp3, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp10, sizeof(ats_uint_type)) ; ATS_GC_MARKROOT(&statmp11, sizeof(ats_uint_type)) ; ATS_GC_MARKROOT(&statmp12, sizeof(ats_uint_type)) ; ATS_GC_MARKROOT(&statmp13, sizeof(ats_uint_type)) ; /* marking external values for GC */ /* code for dynamic loading */ ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm = ats_castfn_mac(ats_uint_type, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn = ats_castfn_mac(ats_uint_type, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref = ats_castfn_mac(ats_uint_type, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt = ats_castfn_mac(ats_uint_type, 3) ; statmp1 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, statmp1, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm) ; statmp2 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_0, statmp1), atslab_1) ; statmp3 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, statmp3, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; ats_ptrget_mac(ats_ptr_type, statmp2) = statmp3 ; statmp2 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_0, statmp3), atslab_1) ; statmp3 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, statmp3, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ats_ptrget_mac(ats_ptr_type, statmp2) = statmp3 ; statmp2 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_0, statmp3), atslab_1) ; statmp3 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, statmp3, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ats_ptrget_mac(ats_ptr_type, statmp2) = statmp3 ; statmp2 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_0, statmp3), atslab_1) ; statmp3 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, statmp2) = statmp3 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effectlst_all, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effectlst_all = statmp1 ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil = ats_castfn_mac(ats_uint_type, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all = ats_castfn_mac(ats_uint_type, -1) ; statmp10 = atspre_lsl_uint_uint (1u, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ntm, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ntm = statmp10 ; statmp11 = atspre_lsl_uint_uint (1u, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_exn, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_exn = statmp11 ; statmp12 = atspre_lsl_uint_uint (1u, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ref, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ref = statmp12 ; statmp13 = atspre_lsl_uint_uint (1u, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_wrt, sizeof(ats_uint_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_wrt = statmp13 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_effect_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_svar_dats.c0000644000175000017500000074601113431250607023157 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2var_sym ; ats_ptr_type atslab_s2var_srt ; ats_int_type atslab_s2var_tmplev ; ats_ptr_type atslab_s2var_sVarset ; ats_int_type atslab_s2var_stamp ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_3 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_4 ; typedef struct { anairiats_rec_4 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_8 ; typedef struct { anairiats_rec_8 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_neg_int) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_add_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_uint_type, atspre_add_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_ilte) (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_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imax) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_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_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_counter_2esats__tostring_prefix_count) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2var_stamp_make) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_bool) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_del) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2varbindmap_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2varmset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2varset_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2varset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2var_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type s2var_name_make_0 () ; static ats_ptr_type s2var_name_make_prefix_1 (ats_ptr_type arg0) ; static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_void_type aux_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_int_type __ats_fun_29 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_29_closure_make () ; static ats_int_type __ats_fun_29_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_make_nil_03777_ () ; static ats_int_type compare_elt_elt_03776_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_rrotate_03999_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type avltree_lrotate_03982_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type insert_34 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_34_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type insert_34_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_03786_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_takeout_min_04034_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type remove_40 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type remove_40_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type remove_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_remove_03787_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_ljoin_04065_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type avltree_rjoin_04077_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type avltree_join_04089_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type avltree_split_at_04100_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_clo_ref_type arg4) ; static ats_ptr_type union_44 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type union_44_closure_make (ats_clo_ref_type env0) ; static ats_ptr_type union_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_union_03790_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type listize_51 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_listize_03801_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type linset_make_nil_03803_ () ; static ats_int_type compare_elt_elt_03802_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_04256_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_04310_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_04286_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_56 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type insert_56_closure_make (ats_clo_ref_type env0) ; static ats_bool_type insert_56_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linset_insert_03812_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_takeout_min_04355_ats_ptr_type (ats_ref_type arg0) ; static ats_bool_type remove_63 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0) ; static ats_clo_ptr_type remove_63_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type remove_63_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0) ; static ats_bool_type linset_remove_03813_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type loop_66 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type avltree_ljoin_04404_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type avltree_rjoin_04424_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type avltree_join_04444_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type avltree_split_at_04455_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_clo_ref_type arg5) ; static ats_void_type B_node_free_opt_04481_ (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type union_69 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type union_69_closure_make (ats_clo_ref_type env0) ; static ats_ptr_type union_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_union_03816_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_void_type aux_77 (ats_ptr_type arg0) ; static ats_void_type linset_free_03810_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_80 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_free_03828_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type __ats_fun_81 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_81_closure_make () ; static ats_int_type __ats_fun_81_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funmset_make_nil_03835_ () ; static ats_ptr_type funmset_make_sing_03836_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type compare_elt_elt_03834_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type funmset_make_pair_03837_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type aux_91 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type aux_91_closure_make (ats_clo_ref_type env0) ; static ats_int_type aux_91_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type funmset_compare_03849_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_94 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type aux_94_closure_make (ats_clo_ref_type env0) ; static ats_bool_type aux_94_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type funmset_is_equal_03848_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_97 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_97_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type aux_97_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type funmset_insert_03843_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_100 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type aux_100_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type aux_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funmset_remove_03844_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_103 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type aux_103_closure_make (ats_clo_ref_type env0) ; static ats_ptr_type aux_103_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funmset_union_03845_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_void_type loop_108 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_anairiats_rec_4_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_anairiats_rec_4_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_109 (anairiats_rec_4 arg0) ; static ats_ptr_type funmset_listize_03850_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop1_112 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type loop2_113 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type loop1_112_0loop2_113 (ats_int_type arg0, ...) ; static ats_ptr_type funmset_mlistize_03851_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_116 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type __ats_fun_117 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_117_closure_make () ; static ats_int_type __ats_fun_117_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linmap_make_nil_03853_ () ; static ats_int_type compare_key_key_03852_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type search_123 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type search_123_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type search_123_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type linmap_search_03858_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; static ats_int_type avltree_height_04847_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_127 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_clo_ptr_type insert_127_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type insert_127_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_bool_type linmap_insert_03861_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) ; static ats_ptr_type avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) ; static ats_bool_type takeout_134 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type takeout_134_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type takeout_134_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) ; static ats_bool_type linmap_remove_03863_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_138 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linmap_listize_03872_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp75) ; ATSstatic (ats_ptr_type, statmp561) ; ATSstatic (ats_ptr_type, statmp722) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 2276(line=81, offs=4) -- 2438(line=86, offs=4) */ ATSstaticdec() ats_ptr_type s2var_name_make_0 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_s2var_name_make_0: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_count (ATSstrcst("$"), tmp2) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp3) ; return (tmp1) ; } /* end of [s2var_name_make_0] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 2471(line=88, offs=4) -- 2657(line=93, offs=4) */ ATSstaticdec() ats_ptr_type s2var_name_make_prefix_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_s2var_name_make_prefix_1: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp0) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_count (ATSstrcst("$"), tmp5) ; tmp6 = atspre_string_append (arg0, tmp7) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp6) ; return (tmp4) ; } /* end of [s2var_name_make_prefix_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp11 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp11) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 2813(line=105, offs=3) -- 3191(line=119, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2var_stamp_make () ; tmp10 = ptr_alloc_01070_anairiats_rec_1 () ; tmp12 = ats_selsin_mac(tmp10, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_sym) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_srt) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_tmplev) = 0 ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil () ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_sVarset) = tmp13 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_stamp) = tmp9 ; tmp8 = atspre_ref_make_view_ptr (tmp12) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3247(line=122, offs=15) -- 3336(line=124, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym: tmp15 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp14 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp15), atslab_s2var_sym) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3388(line=127, offs=15) -- 3477(line=129, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt: tmp17 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp16 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp17), atslab_s2var_srt) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3532(line=132, offs=18) -- 3611(line=134, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_tmplev (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_tmplev: tmp19 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp18 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp19), atslab_s2var_tmplev) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_tmplev] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3668(line=136, offs=18) -- 3759(line=138, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_tmplev (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_tmplev: tmp21 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp21), atslab_s2var_tmplev) = arg1 ; return /* (tmp20) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_tmplev] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3818(line=141, offs=19) -- 3898(line=143, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset: tmp23 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp22 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp23), atslab_s2var_sVarset) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3957(line=145, offs=19) -- 4047(line=147, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset: tmp25 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp25), atslab_s2var_sVarset) = arg1 ; return /* (tmp24) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4111(line=150, offs=3) -- 4285(line=154, offs=22) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset (tmp27, arg1) ; arg0 = tmp28 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp26) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4346(line=158, offs=17) -- 4437(line=160, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp: tmp31 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp30 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp31), atslab_s2var_stamp) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4535(line=167, offs=15) -- 4604(line=169, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_is_bool (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_is_bool: tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_bool (tmp33) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_is_bool] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4678(line=174, offs=16) -- 4754(line=176, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt: tmp35 = s2var_name_make_0 () ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp35, arg0) ; return (tmp34) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4803(line=179, offs=11) -- 4985(line=185, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup: tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg0) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp37) ; tmp39 = s2var_name_make_prefix_1 (tmp40) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp39, tmp38) ; return (tmp36) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5057(line=191, offs=3) -- 5089(line=191, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2var_s2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2var_s2var: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ; tmp41 = atspre_ilt (tmp42, 0) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2var_s2var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5147(line=196, offs=3) -- 5180(line=196, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2var_s2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp43) ; ATSlocal (ats_int_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2var_s2var: tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ; tmp43 = atspre_ilte (tmp44, 0) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2var_s2var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5238(line=201, offs=3) -- 5270(line=201, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp45) ; ATSlocal (ats_int_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ; tmp45 = atspre_ieq (tmp46, 0) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5328(line=206, offs=3) -- 5361(line=206, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2var_s2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp47) ; ATSlocal (ats_int_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2var_s2var: tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ; tmp47 = atspre_ineq (tmp48, 0) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2var_s2var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5422(line=210, offs=21) -- 5698(line=219, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp49) ; ATSlocal (ats_int_type, tmp50) ; ATSlocal (ats_int_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var: tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (arg0) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (arg1) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp50, tmp51) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5766(line=223, offs=3) -- 5848(line=224, offs=70) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym: tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg0) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg1) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol (tmp53, tmp54) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5930(line=230, offs=14) -- 6160(line=239, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; ATSlocal (ats_int_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var: tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg1) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp57) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (arg1) ; /* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp60) ; /* tmp55 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp55) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6209(line=241, offs=23) -- 6243(line=241, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2var (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2var: /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (stdout, arg0) ; return /* (tmp61) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6266(line=242, offs=23) -- 6300(line=242, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2var (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2var: /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (stderr, arg0) ; return /* (tmp62) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2var] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_bool_type, tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_int_type, tmp71) ; __ats_lab_aux_26: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp69 = atspre_gt_int_int (arg1, 0) ; if (tmp69) { /* tmp68 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp70 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp66) ; tmp71 = atspre_add_int_int (arg1, 1) ; arg0 = tmp67 ; arg1 = tmp71 ; goto __ats_lab_aux_26 ; // tail call break ; } while (0) ; return /* (tmp65) */ ; } /* end of [aux_26] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_26_closure_type ; ats_void_type aux_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_26 (((aux_26_closure_type*)cloptr)->closure_env_0, ((aux_26_closure_type*)cloptr)->closure_env_1, ((aux_26_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_26_closure_init (aux_26_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_26_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_26_closure_type *p_clo = ATS_MALLOC(sizeof(aux_26_closure_type)) ; aux_26_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp64) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp64 = */ aux_26 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp64) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6328(line=245, offs=17) -- 6392(line=246, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst: /* tmp63 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) ; return /* (tmp63) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6447(line=249, offs=26) -- 6486(line=249, offs=65) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2varlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2varlst: /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (stdout, arg0) ; return /* (tmp72) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2varlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6512(line=250, offs=26) -- 6551(line=250, offs=65) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2varlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2varlst: /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (stderr, arg0) ; return /* (tmp73) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2varlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6794(line=267, offs=1) -- 6879(line=270, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_29 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp74) ; __ats_lab___ats_fun_29: tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ; return (tmp74) ; } /* end of [__ats_fun_29] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_29_closure_type ; ats_int_type __ats_fun_29_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_29 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_29_closure_init (__ats_fun_29_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_29_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_29_closure_make () { __ats_fun_29_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_29_closure_type)) ; __ats_fun_29_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 2749(line=94, offs=29) -- 2758(line=94, offs=38) */ ATSstaticdec() ats_ptr_type funset_make_nil_03777_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; __ats_lab_funset_make_nil_03777_: tmp77 = (ats_sum_ptr_type)0 ; return (tmp77) ; } /* end of [funset_make_nil_03777_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7028(line=280, offs=3) -- 7063(line=280, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_nil: tmp76 = funset_make_nil_03777_ () ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 1954(line=57, offs=30) -- 1982(line=57, offs=58) */ ATSstaticdec() ats_int_type compare_elt_elt_03776_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp88) ; __ats_lab_compare_elt_elt_03776_ats_ptr_type: tmp88 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp88) ; } /* end of [compare_elt_elt_03776_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 5504(line=202, offs=46) -- 6164(line=224, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_03999_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_bool_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_int_type, tmp110) ; ATSlocal (ats_int_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_int_type, tmp116) ; ATSlocal (ats_int_type, tmp117) ; ATSlocal (ats_int_type, tmp118) ; ATSlocal (ats_int_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_int_type, tmp121) ; ATSlocal (ats_int_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_int_type, tmp124) ; ATSlocal (ats_int_type, tmp125) ; __ats_lab_avltree_rrotate_03999_ats_ptr_type: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp100 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_2) ; tmp102 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_3) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (tmp101 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_3, tmp101, atslab_0) ; tmp103 = tmp104 ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (tmp101 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp103 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (tmp102 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_0) ; tmp105 = tmp106 ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (tmp102 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp105 = 0 ; break ; } while (0) ; tmp108 = atspre_iadd (tmp103, 0) ; tmp107 = atspre_igte (tmp108, tmp105) ; if (tmp107) { tmp109 = atspre_iadd (tmp105, 1) ; tmp111 = atspre_imax (tmp103, tmp109) ; tmp110 = atspre_iadd (1, tmp111) ; tmp112 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_0, tmp109) ; ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_2, tmp102) ; ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_3, arg4) ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_0, tmp110) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_1, tmp100) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_2, tmp101) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_3, tmp112) ; } else { // if (tmp102 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp113 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_1) ; tmp114 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_2) ; tmp115 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_3) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp114 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_3, tmp114, atslab_0) ; tmp116 = tmp117 ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp114 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp116 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (tmp115 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_3, tmp115, atslab_0) ; tmp118 = tmp119 ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (tmp115 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp118 = 0 ; break ; } while (0) ; tmp122 = atspre_imax (tmp103, tmp116) ; tmp121 = atspre_iadd (1, tmp122) ; tmp120 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_0, tmp121) ; ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_1, tmp100) ; ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_2, tmp101) ; ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_3, tmp114) ; tmp125 = atspre_imax (tmp118, arg3) ; tmp124 = atspre_iadd (1, tmp125) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_0, tmp124) ; ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_2, tmp115) ; ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_3, arg4) ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_1, tmp113) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_2, tmp120) ; ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_3, tmp123) ; } /* end of [if] */ return (tmp99) ; } /* end of [avltree_rrotate_03999_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4671(line=174, offs=46) -- 5362(line=196, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_03982_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_int_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_int_type, tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_bool_type, tmp144) ; ATSlocal (ats_int_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_int_type, tmp147) ; ATSlocal (ats_int_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_int_type, tmp153) ; ATSlocal (ats_int_type, tmp154) ; ATSlocal (ats_int_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_int_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_int_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; __ats_lab_avltree_lrotate_03982_ats_ptr_type: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp137 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_1) ; tmp138 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_2) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_3) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (tmp138 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_3, tmp138, atslab_0) ; tmp140 = tmp141 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp138 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp140 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (tmp139 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_3, tmp139, atslab_0) ; tmp142 = tmp143 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (tmp139 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp142 = 0 ; break ; } while (0) ; tmp145 = atspre_iadd (tmp142, 0) ; tmp144 = atspre_ilte (tmp140, tmp145) ; if (tmp144) { tmp146 = atspre_iadd (tmp140, 1) ; tmp148 = atspre_imax (tmp146, tmp142) ; tmp147 = atspre_iadd (1, tmp148) ; tmp149 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp149, atslab_0, tmp146) ; ats_selptrset_mac(anairiats_sum_3, tmp149, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp149, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_3, tmp149, atslab_3, tmp138) ; tmp136 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_0, tmp147) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_1, tmp137) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_2, tmp149) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_3, tmp139) ; } else { // if (tmp138 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp150 = ats_caselptrlab_mac(anairiats_sum_3, tmp138, atslab_1) ; tmp151 = ats_caselptrlab_mac(anairiats_sum_3, tmp138, atslab_2) ; tmp152 = ats_caselptrlab_mac(anairiats_sum_3, tmp138, atslab_3) ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (tmp151 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_3, tmp151, atslab_0) ; tmp153 = tmp154 ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (tmp151 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp153 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp152 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_3, tmp152, atslab_0) ; tmp155 = tmp156 ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (tmp152 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp155 = 0 ; break ; } while (0) ; tmp159 = atspre_imax (arg1, tmp153) ; tmp158 = atspre_iadd (1, tmp159) ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp157, atslab_0, tmp158) ; ats_selptrset_mac(anairiats_sum_3, tmp157, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp157, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_3, tmp157, atslab_3, tmp151) ; tmp162 = atspre_imax (tmp155, tmp142) ; tmp161 = atspre_iadd (1, tmp162) ; tmp160 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp160, atslab_0, tmp161) ; ats_selptrset_mac(anairiats_sum_3, tmp160, atslab_1, tmp137) ; ats_selptrset_mac(anairiats_sum_3, tmp160, atslab_2, tmp152) ; ats_selptrset_mac(anairiats_sum_3, tmp160, atslab_3, tmp139) ; tmp136 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_1, tmp150) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_2, tmp157) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_3, tmp160) ; } /* end of [if] */ return (tmp136) ; } /* end of [avltree_lrotate_03982_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6) */ ATSstaticdec() ats_ptr_type insert_34 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_int_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_int_type, tmp87) ; ATSlocal (ats_bool_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_int_type, tmp93) ; ATSlocal (ats_int_type, tmp94) ; ATSlocal (ats_bool_type, tmp95) ; ATSlocal (ats_int_type, tmp96) ; ATSlocal (ats_int_type, tmp97) ; ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_bool_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_int_type, tmp128) ; ATSlocal (ats_int_type, tmp129) ; ATSlocal (ats_int_type, tmp130) ; ATSlocal (ats_int_type, tmp131) ; ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_int_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; ATSlocal (ats_int_type, tmp135) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; __ats_lab_insert_34: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_4_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp84 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp85 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp87 = compare_elt_elt_03776_ats_ptr_type (env0, tmp84, env1) ; tmp89 = atspre_lt_int_int (tmp87, 0) ; if (tmp89) { tmp90 = insert_34 (env0, env1, tmp85, arg1) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (tmp90 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_0) ; tmp91 = tmp92 ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (tmp90 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp91 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (tmp86 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_3, tmp86, atslab_0) ; tmp93 = tmp94 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (tmp86 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp93 = 0 ; break ; } while (0) ; tmp96 = atspre_isub (tmp91, tmp93) ; tmp95 = atspre_ilte (tmp96, 1) ; if (tmp95) { tmp98 = atspre_imax (tmp91, tmp93) ; tmp97 = atspre_iadd (1, tmp98) ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_0, tmp97) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_1, tmp84) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_2, tmp90) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_3, tmp86) ; } else { tmp82 = avltree_rrotate_03999_ats_ptr_type (tmp84, tmp91, tmp90, tmp93, tmp86) ; } /* end of [if] */ } else { tmp126 = atspre_gt_int_int (tmp87, 0) ; if (tmp126) { tmp127 = insert_34 (env0, env1, tmp86, arg1) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (tmp85 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_3, tmp85, atslab_0) ; tmp128 = tmp129 ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (tmp85 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp128 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp127 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_3, tmp127, atslab_0) ; tmp130 = tmp131 ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (tmp127 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp130 = 0 ; break ; } while (0) ; tmp133 = atspre_isub (tmp130, tmp128) ; tmp132 = atspre_ilte (tmp133, 1) ; if (tmp132) { tmp135 = atspre_imax (tmp128, tmp130) ; tmp134 = atspre_iadd (1, tmp135) ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_0, tmp134) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_1, tmp84) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_2, tmp85) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_3, tmp127) ; } else { tmp82 = avltree_lrotate_03982_ats_ptr_type (tmp84, tmp128, tmp85, tmp130, tmp127) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_0, tmp83) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_2, tmp85) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_3, tmp86) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp163 = (ats_sum_ptr_type)0 ; tmp164 = (ats_sum_ptr_type)0 ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_2, tmp163) ; ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_3, tmp164) ; break ; } while (0) ; return (tmp82) ; } /* end of [insert_34] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_34_closure_type ; ats_ptr_type insert_34_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_34 (((insert_34_closure_type*)cloptr)->closure_env_0, ((insert_34_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_34_closure_init (insert_34_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_34_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_34_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_34_closure_type *p_clo = ATS_MALLOC(sizeof(insert_34_closure_type)) ; insert_34_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6244(line=230, offs=3) -- 7632(line=267, offs=2) */ ATSstaticdec() ats_bool_type funset_insert_03786_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_bool_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; __ats_lab_funset_insert_03786_ats_ptr_type: /* ats_bool_type tmp165 ; */ tmp166 = insert_34 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp165)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp166 ; tmp81 = tmp165 ; return (tmp81) ; } /* end of [funset_insert_03786_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7090(line=284, offs=3) -- 7177(line=287, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_add: /* ats_ptr_type tmp79 ; */ tmp79 = arg0 ; tmp80 = funset_insert_03786_ats_ptr_type ((&tmp79), arg1, statmp75) ; tmp78 = tmp79 ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 7730(line=273, offs=17) -- 8251(line=291, offs=4) */ ATSstaticdec() ats_ptr_type avltree_takeout_min_04034_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_int_type, tmp203) ; ATSlocal (ats_int_type, tmp204) ; ATSlocal (ats_int_type, tmp205) ; ATSlocal (ats_int_type, tmp206) ; ATSlocal (ats_bool_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; ATSlocal (ats_int_type, tmp209) ; ATSlocal (ats_int_type, tmp210) ; __ats_lab_avltree_takeout_min_04034_ats_ptr_type: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp199 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp201 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (tmp200 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_43_1: tmp202 = avltree_takeout_min_04034_ats_ptr_type (tmp200, arg1) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (tmp202 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_3, tmp202, atslab_0) ; tmp203 = tmp204 ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (tmp202 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp203 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (tmp201 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_3, tmp201, atslab_0) ; tmp205 = tmp206 ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (tmp201 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp205 = 0 ; break ; } while (0) ; tmp208 = atspre_isub (tmp205, tmp203) ; tmp207 = atspre_ilte (tmp208, 1) ; if (tmp207) { tmp210 = atspre_imax (tmp203, tmp205) ; tmp209 = atspre_iadd (1, tmp210) ; tmp198 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_0, tmp209) ; ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_1, tmp199) ; ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_2, tmp202) ; ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_3, tmp201) ; } else { tmp198 = avltree_lrotate_03982_ats_ptr_type (tmp199, tmp203, tmp202, tmp205, tmp201) ; } /* end of [if] */ break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (tmp200 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: ats_ptrget_mac(ats_ptr_type, arg1) = tmp199 ; tmp198 = tmp201 ; break ; } while (0) ; return (tmp198) ; } /* end of [avltree_takeout_min_04034_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 8377(line=298, offs=7) -- 10195(line=350, offs=6) */ ATSstaticdec() ats_ptr_type remove_40 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_int_type, tmp175) ; ATSlocal (ats_bool_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_int_type, tmp178) ; ATSlocal (ats_int_type, tmp179) ; ATSlocal (ats_int_type, tmp180) ; ATSlocal (ats_int_type, tmp181) ; ATSlocal (ats_bool_type, tmp182) ; ATSlocal (ats_int_type, tmp183) ; ATSlocal (ats_int_type, tmp184) ; ATSlocal (ats_int_type, tmp185) ; ATSlocal (ats_bool_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_int_type, tmp188) ; ATSlocal (ats_int_type, tmp189) ; ATSlocal (ats_int_type, tmp190) ; ATSlocal (ats_int_type, tmp191) ; ATSlocal (ats_bool_type, tmp192) ; ATSlocal (ats_int_type, tmp193) ; ATSlocal (ats_int_type, tmp194) ; ATSlocal (ats_int_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_int_type, tmp211) ; ATSlocal (ats_int_type, tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_int_type, tmp214) ; ATSlocal (ats_bool_type, tmp215) ; ATSlocal (ats_int_type, tmp216) ; ATSlocal (ats_int_type, tmp217) ; ATSlocal (ats_int_type, tmp218) ; __ats_lab_remove_40: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_30_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp173 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp175 = compare_elt_elt_03776_ats_ptr_type (env0, tmp172, env1) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp176 = atspre_lt_int_int (tmp175, 0) ; if (!tmp176) { goto __ats_lab_36_1 ; } tmp177 = remove_40 (env0, env1, tmp173, arg1) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp177 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_3, tmp177, atslab_0) ; tmp178 = tmp179 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (tmp177 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp178 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp174 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp181 = ats_caselptrlab_mac(anairiats_sum_3, tmp174, atslab_0) ; tmp180 = tmp181 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (tmp174 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp180 = 0 ; break ; } while (0) ; tmp183 = atspre_isub (tmp180, tmp178) ; tmp182 = atspre_ilte (tmp183, 1) ; if (tmp182) { tmp185 = atspre_imax (tmp178, tmp180) ; tmp184 = atspre_iadd (1, tmp185) ; tmp171 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_0, tmp184) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_1, tmp172) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_2, tmp177) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_3, tmp174) ; } else { tmp171 = avltree_lrotate_03982_ats_ptr_type (tmp172, tmp178, tmp177, tmp180, tmp174) ; } /* end of [if] */ break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp186 = atspre_gt_int_int (tmp175, 0) ; if (!tmp186) { goto __ats_lab_41_1 ; } tmp187 = remove_40 (env0, env1, tmp174, arg1) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (tmp173 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp189 = ats_caselptrlab_mac(anairiats_sum_3, tmp173, atslab_0) ; tmp188 = tmp189 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (tmp173 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp188 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (tmp187 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_3, tmp187, atslab_0) ; tmp190 = tmp191 ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (tmp187 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp190 = 0 ; break ; } while (0) ; tmp193 = atspre_isub (tmp188, tmp190) ; tmp192 = atspre_ilte (tmp193, 1) ; if (tmp192) { tmp195 = atspre_imax (tmp188, tmp190) ; tmp194 = atspre_iadd (1, tmp195) ; tmp171 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_0, tmp194) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_1, tmp172) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_2, tmp173) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_3, tmp187) ; } else { tmp171 = avltree_rrotate_03999_ats_ptr_type (tmp172, tmp188, tmp173, tmp190, tmp187) ; } /* end of [if] */ break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (tmp174 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_42_1: /* ats_ptr_type tmp196 ; */ tmp197 = avltree_takeout_min_04034_ats_ptr_type (tmp174, (&tmp196)) ; do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (tmp173 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_3, tmp173, atslab_0) ; tmp211 = tmp212 ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (tmp173 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp211 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (tmp197 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_3, tmp197, atslab_0) ; tmp213 = tmp214 ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (tmp197 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp213 = 0 ; break ; } while (0) ; tmp216 = atspre_isub (tmp211, tmp213) ; tmp215 = atspre_ilte (tmp216, 1) ; if (tmp215) { tmp218 = atspre_imax (tmp211, tmp213) ; tmp217 = atspre_iadd (1, tmp218) ; tmp171 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_0, tmp217) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_1, tmp196) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_2, tmp173) ; ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_3, tmp197) ; } else { tmp171 = avltree_rrotate_03999_ats_ptr_type (tmp196, tmp211, tmp173, tmp213, tmp197) ; } /* end of [if] */ break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (tmp174 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: tmp171 = tmp173 ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp171 = arg0 ; break ; } while (0) ; return (tmp171) ; } /* end of [remove_40] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } remove_40_closure_type ; ats_ptr_type remove_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return remove_40 (((remove_40_closure_type*)cloptr)->closure_env_0, ((remove_40_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type remove_40_closure_init (remove_40_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&remove_40_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type remove_40_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { remove_40_closure_type *p_clo = ATS_MALLOC(sizeof(remove_40_closure_type)) ; remove_40_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 8335(line=297, offs=3) -- 10275(line=353, offs=2) */ ATSstaticdec() ats_bool_type funset_remove_03787_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp170) ; ATSlocal (ats_bool_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; __ats_lab_funset_remove_03787_ats_ptr_type: /* ats_bool_type tmp219 ; */ tmp220 = remove_40 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp219)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp220 ; tmp170 = tmp219 ; return (tmp170) ; } /* end of [funset_remove_03787_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7232(line=291, offs=3) -- 7320(line=294, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_del (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_bool_type, tmp169) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_del: /* ats_ptr_type tmp168 ; */ tmp168 = arg0 ; tmp169 = funset_remove_03787_ats_ptr_type ((&tmp168), arg1, statmp75) ; tmp167 = tmp168 ; return (tmp167) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_del] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 10428(line=362, offs=33) -- 11051(line=382, offs=4) */ ATSstaticdec() ats_ptr_type avltree_ljoin_04065_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_int_type, tmp245) ; ATSlocal (ats_int_type, tmp246) ; ATSlocal (ats_int_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_bool_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_int_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_int_type, tmp257) ; ATSlocal (ats_int_type, tmp258) ; ATSlocal (ats_bool_type, tmp259) ; ATSlocal (ats_int_type, tmp260) ; ATSlocal (ats_int_type, tmp261) ; ATSlocal (ats_int_type, tmp262) ; ATSlocal (ats_int_type, tmp263) ; __ats_lab_avltree_ljoin_04065_ats_ptr_type: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp246 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp245 = tmp246 ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp245 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp248 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp247 = tmp248 ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp247 = 0 ; break ; } while (0) ; tmp250 = atspre_iadd (tmp247, 2) ; tmp249 = atspre_igte (tmp245, tmp250) ; if (tmp249) { // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp251 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp252 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_2) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_3) ; tmp254 = avltree_ljoin_04065_ats_ptr_type (arg0, tmp253, arg2) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (tmp252 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_3, tmp252, atslab_0) ; tmp255 = tmp256 ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (tmp252 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp255 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (tmp254 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp258 = ats_caselptrlab_mac(anairiats_sum_3, tmp254, atslab_0) ; tmp257 = tmp258 ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (tmp254 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp257 = 0 ; break ; } while (0) ; tmp260 = atspre_iadd (tmp255, 1) ; tmp259 = atspre_ilte (tmp257, tmp260) ; if (tmp259) { tmp262 = atspre_imax (tmp255, tmp257) ; tmp261 = atspre_iadd (tmp262, 1) ; tmp244 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_0, tmp261) ; ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_1, tmp251) ; ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_2, tmp252) ; ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_3, tmp254) ; } else { tmp244 = avltree_lrotate_03982_ats_ptr_type (tmp251, tmp255, tmp252, tmp257, tmp254) ; } /* end of [if] */ } else { tmp263 = atspre_iadd (tmp245, 1) ; tmp244 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_0, tmp263) ; ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_3, arg2) ; } /* end of [if] */ return (tmp244) ; } /* end of [avltree_ljoin_04065_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 11205(line=391, offs=33) -- 11827(line=411, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rjoin_04077_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_int_type, tmp265) ; ATSlocal (ats_int_type, tmp266) ; ATSlocal (ats_int_type, tmp267) ; ATSlocal (ats_int_type, tmp268) ; ATSlocal (ats_bool_type, tmp269) ; ATSlocal (ats_int_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_int_type, tmp275) ; ATSlocal (ats_int_type, tmp276) ; ATSlocal (ats_int_type, tmp277) ; ATSlocal (ats_int_type, tmp278) ; ATSlocal (ats_bool_type, tmp279) ; ATSlocal (ats_int_type, tmp280) ; ATSlocal (ats_int_type, tmp281) ; ATSlocal (ats_int_type, tmp282) ; ATSlocal (ats_int_type, tmp283) ; __ats_lab_avltree_rjoin_04077_ats_ptr_type: do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp266 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp265 = tmp266 ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: tmp265 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp268 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp267 = tmp268 ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: tmp267 = 0 ; break ; } while (0) ; tmp270 = atspre_iadd (tmp265, 2) ; tmp269 = atspre_igte (tmp267, tmp270) ; if (tmp269) { // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp271 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp272 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_2) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_3) ; tmp274 = avltree_rjoin_04077_ats_ptr_type (arg0, arg1, tmp272) ; do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (tmp274 == (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp276 = ats_caselptrlab_mac(anairiats_sum_3, tmp274, atslab_0) ; tmp275 = tmp276 ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (tmp274 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp275 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (tmp273 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp278 = ats_caselptrlab_mac(anairiats_sum_3, tmp273, atslab_0) ; tmp277 = tmp278 ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (tmp273 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp277 = 0 ; break ; } while (0) ; tmp280 = atspre_iadd (tmp277, 1) ; tmp279 = atspre_ilte (tmp275, tmp280) ; if (tmp279) { tmp282 = atspre_imax (tmp275, tmp277) ; tmp281 = atspre_iadd (tmp282, 1) ; tmp264 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_0, tmp281) ; ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_1, tmp271) ; ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_2, tmp274) ; ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_3, tmp273) ; } else { tmp264 = avltree_rrotate_03999_ats_ptr_type (tmp271, tmp275, tmp274, tmp277, tmp273) ; } /* end of [if] */ } else { tmp283 = atspre_iadd (tmp267, 1) ; tmp264 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_0, tmp283) ; ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_3, arg2) ; } /* end of [if] */ return (tmp264) ; } /* end of [avltree_rjoin_04077_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 11913(line=416, offs=26) -- 12193(line=423, offs=4) */ ATSstaticdec() ats_ptr_type avltree_join_04089_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_int_type, tmp240) ; ATSlocal (ats_int_type, tmp241) ; ATSlocal (ats_int_type, tmp242) ; ATSlocal (ats_bool_type, tmp243) ; __ats_lab_avltree_join_04089_ats_ptr_type: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp240 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp239 = tmp240 ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: tmp239 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp241 = tmp242 ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp241 = 0 ; break ; } while (0) ; tmp243 = atspre_igte (tmp239, tmp241) ; if (tmp243) { tmp238 = avltree_ljoin_04065_ats_ptr_type (arg0, arg1, arg2) ; } else { tmp238 = avltree_rjoin_04077_ats_ptr_type (arg0, arg1, arg2) ; } /* end of [if] */ return (tmp238) ; } /* end of [avltree_join_04089_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 12740(line=447, offs=32) -- 13453(line=469, offs=42) */ ATSstaticdec() ats_int_type avltree_split_at_04100_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_clo_ref_type arg4) { /* local vardec */ ATSlocal (ats_int_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_int_type, tmp234) ; ATSlocal (ats_bool_type, tmp235) ; ATSlocal (ats_int_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_bool_type, tmp284) ; ATSlocal (ats_int_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; __ats_lab_avltree_split_at_04100_ats_ptr_type: do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_58_1: tmp231 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp232 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp233 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp234 = compare_elt_elt_03776_ats_ptr_type (arg1, tmp231, arg4) ; tmp235 = atspre_lt_int_int (tmp234, 0) ; if (tmp235) { tmp236 = avltree_split_at_04100_ats_ptr_type (tmp232, arg1, arg2, arg3, arg4) ; tmp237 = avltree_join_04089_ats_ptr_type (tmp231, ats_ptrget_mac(ats_ptr_type, arg3), tmp233) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp237 ; tmp230 = tmp236 ; } else { tmp284 = atspre_gt_int_int (tmp234, 0) ; if (tmp284) { tmp285 = avltree_split_at_04100_ats_ptr_type (tmp233, arg1, arg2, arg3, arg4) ; tmp286 = avltree_join_04089_ats_ptr_type (tmp231, tmp232, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp286 ; tmp230 = tmp285 ; } else { ats_ptrget_mac(ats_ptr_type, arg2) = tmp232 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp233 ; tmp230 = 1 ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: tmp287 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp287 ; tmp288 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp288 ; tmp230 = 0 ; break ; } while (0) ; return (tmp230) ; } /* end of [avltree_split_at_04100_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 14263(line=512, offs=7) -- 14763(line=526, offs=8) */ ATSstaticdec() ats_ptr_type union_44 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; __ats_lab_union_44: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: __ats_lab_55_2: tmp223 = arg1 ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_57_1 ; } __ats_lab_56_2: tmp223 = arg0 ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: __ats_lab_57_2: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp224 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; /* ats_ptr_type tmp227 ; */ /* ats_ptr_type tmp228 ; */ tmp229 = avltree_split_at_04100_ats_ptr_type (arg1, tmp224, (&tmp227), (&tmp228), env0) ; tmp289 = union_44 (env0, tmp225, tmp227) ; tmp290 = union_44 (env0, tmp226, tmp228) ; tmp223 = avltree_join_04089_ats_ptr_type (tmp224, tmp289, tmp290) ; break ; } while (0) ; return (tmp223) ; } /* end of [union_44] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } union_44_closure_type ; ats_ptr_type union_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return union_44 (((union_44_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type union_44_closure_init (union_44_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&union_44_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type union_44_closure_make (ats_clo_ref_type env0) { union_44_closure_type *p_clo = ATS_MALLOC(sizeof(union_44_closure_type)) ; union_44_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 14218(line=511, offs=3) -- 14825(line=528, offs=2) */ ATSstaticdec() ats_ptr_type funset_union_03790_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp222) ; __ats_lab_funset_union_03790_ats_ptr_type: tmp222 = union_44 (arg2, arg0, arg1) ; return (tmp222) ; } /* end of [funset_union_03790_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7377(line=298, offs=3) -- 7418(line=298, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_union (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_union: tmp221 = funset_union_03790_ats_ptr_type (arg0, arg1, statmp75) ; return (tmp221) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_union] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20241(line=721, offs=7) -- 20545(line=732, offs=18) */ ATSstaticdec() ats_ptr_type listize_51 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; __ats_lab_listize_51: do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp294 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp296 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp297 = listize_51 (tmp296, arg1) ; tmp298 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp298, atslab_0, tmp294) ; ats_selptrset_mac(anairiats_sum_2, tmp298, atslab_1, tmp297) ; arg0 = tmp295 ; arg1 = tmp298 ; goto __ats_lab_listize_51 ; // tail call break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: tmp293 = arg1 ; break ; } while (0) ; return (tmp293) ; } /* end of [listize_51] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20189(line=719, offs=16) -- 20605(line=736, offs=4) */ ATSstaticdec() ats_ptr_type funset_listize_03801_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp299) ; __ats_lab_funset_listize_03801_ats_ptr_type: tmp299 = (ats_sum_ptr_type)0 ; tmp292 = listize_51 (arg0, tmp299) ; return (tmp292) ; } /* end of [funset_listize_03801_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7447(line=301, offs=18) -- 7476(line=301, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp291) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_listize: tmp291 = funset_listize_03801_ats_ptr_type (arg0) ; return (tmp291) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26) */ ATSstaticdec() ats_ptr_type linset_make_nil_03803_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp301) ; __ats_lab_linset_make_nil_03803_: tmp301 = (ats_sum_ptr_type)0 ; return (tmp301) ; } /* end of [linset_make_nil_03803_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7528(line=307, offs=3) -- 7563(line=307, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp300) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil: tmp300 = linset_make_nil_03803_ () ; return (tmp300) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45) */ ATSstaticdec() ats_int_type compare_elt_elt_03802_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp312) ; __ats_lab_compare_elt_elt_03802_ats_ptr_type: tmp312 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp312) ; } /* end of [compare_elt_elt_03802_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54) */ ATSstaticdec() ats_int_type avltree_height_04256_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp317) ; ATSlocal (ats_int_type, tmp318) ; __ats_lab_avltree_height_04256_ats_ptr_type: do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp318 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp317 = tmp318 ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: __ats_lab_84_1: tmp317 = 0 ; break ; } while (0) ; return (tmp317) ; } /* end of [avltree_height_04256_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04310_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_int_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_int_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_bool_type, tmp336) ; ATSlocal (ats_int_type, tmp337) ; ATSlocal (ats_int_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_int_type, tmp340) ; ATSlocal (ats_int_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_int_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_int_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_int_type, tmp350) ; ATSlocal (ats_int_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_int_type, tmp353) ; ATSlocal (ats_int_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; __ats_lab_avltree_rrotate_04310_ats_ptr_type: tmp328 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp328 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp329 = &ats_caselptrlab_mac(anairiats_sum_3, tmp328, atslab_0) ; tmp330 = &ats_caselptrlab_mac(anairiats_sum_3, tmp328, atslab_2) ; tmp331 = &ats_caselptrlab_mac(anairiats_sum_3, tmp328, atslab_3) ; tmp333 = ats_ptrget_mac(ats_ptr_type, tmp330) ; tmp332 = avltree_height_04256_ats_ptr_type (tmp333) ; tmp335 = ats_ptrget_mac(ats_ptr_type, tmp331) ; tmp334 = avltree_height_04256_ats_ptr_type (tmp335) ; tmp337 = atspre_iadd (tmp332, 0) ; tmp336 = atspre_igte (tmp337, tmp334) ; if (tmp336) { tmp338 = atspre_iadd (tmp334, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp338 ; tmp339 = ats_ptrget_mac(ats_ptr_type, tmp331) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp339 ; tmp341 = atspre_imax (tmp332, tmp338) ; tmp340 = atspre_iadd (1, tmp341) ; ats_ptrget_mac(ats_int_type, tmp329) = tmp340 ; ats_ptrget_mac(ats_ptr_type, tmp331) = arg5 ; tmp327 = tmp328 ; } else { tmp342 = ats_ptrget_mac(ats_ptr_type, tmp331) ; // if (tmp342 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp343 = &ats_caselptrlab_mac(anairiats_sum_3, tmp342, atslab_0) ; tmp344 = &ats_caselptrlab_mac(anairiats_sum_3, tmp342, atslab_2) ; tmp345 = &ats_caselptrlab_mac(anairiats_sum_3, tmp342, atslab_3) ; tmp347 = ats_ptrget_mac(ats_ptr_type, tmp344) ; tmp346 = avltree_height_04256_ats_ptr_type (tmp347) ; tmp349 = ats_ptrget_mac(ats_ptr_type, tmp345) ; tmp348 = avltree_height_04256_ats_ptr_type (tmp349) ; tmp351 = atspre_imax (tmp348, arg3) ; tmp350 = atspre_iadd (1, tmp351) ; ats_ptrget_mac(ats_int_type, arg0) = tmp350 ; tmp352 = ats_ptrget_mac(ats_ptr_type, tmp345) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp352 ; tmp354 = atspre_imax (tmp332, tmp346) ; tmp353 = atspre_iadd (1, tmp354) ; ats_ptrget_mac(ats_int_type, tmp329) = tmp353 ; tmp355 = ats_ptrget_mac(ats_ptr_type, tmp344) ; ats_ptrget_mac(ats_ptr_type, tmp331) = tmp355 ; ats_ptrget_mac(ats_int_type, tmp343) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp344) = tmp328 ; ats_ptrget_mac(ats_ptr_type, tmp345) = arg5 ; tmp327 = tmp342 ; } /* end of [if] */ return (tmp327) ; } /* end of [avltree_rrotate_04310_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04286_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_int_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_int_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_bool_type, tmp376) ; ATSlocal (ats_int_type, tmp377) ; ATSlocal (ats_int_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_int_type, tmp380) ; ATSlocal (ats_int_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_int_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_int_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_int_type, tmp390) ; ATSlocal (ats_int_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_int_type, tmp393) ; ATSlocal (ats_int_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; __ats_lab_avltree_lrotate_04286_ats_ptr_type: tmp368 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp368 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp369 = &ats_caselptrlab_mac(anairiats_sum_3, tmp368, atslab_0) ; tmp370 = &ats_caselptrlab_mac(anairiats_sum_3, tmp368, atslab_2) ; tmp371 = &ats_caselptrlab_mac(anairiats_sum_3, tmp368, atslab_3) ; tmp373 = ats_ptrget_mac(ats_ptr_type, tmp370) ; tmp372 = avltree_height_04256_ats_ptr_type (tmp373) ; tmp375 = ats_ptrget_mac(ats_ptr_type, tmp371) ; tmp374 = avltree_height_04256_ats_ptr_type (tmp375) ; tmp377 = atspre_iadd (tmp374, 0) ; tmp376 = atspre_ilte (tmp372, tmp377) ; if (tmp376) { tmp378 = atspre_iadd (tmp372, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp378 ; tmp379 = ats_ptrget_mac(ats_ptr_type, tmp370) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp379 ; tmp381 = atspre_imax (tmp378, tmp374) ; tmp380 = atspre_iadd (1, tmp381) ; ats_ptrget_mac(ats_int_type, tmp369) = tmp380 ; ats_ptrget_mac(ats_ptr_type, tmp370) = arg5 ; tmp367 = tmp368 ; } else { tmp382 = ats_ptrget_mac(ats_ptr_type, tmp370) ; // if (tmp382 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp383 = &ats_caselptrlab_mac(anairiats_sum_3, tmp382, atslab_0) ; tmp384 = &ats_caselptrlab_mac(anairiats_sum_3, tmp382, atslab_2) ; tmp385 = &ats_caselptrlab_mac(anairiats_sum_3, tmp382, atslab_3) ; tmp387 = ats_ptrget_mac(ats_ptr_type, tmp384) ; tmp386 = avltree_height_04256_ats_ptr_type (tmp387) ; tmp389 = ats_ptrget_mac(ats_ptr_type, tmp385) ; tmp388 = avltree_height_04256_ats_ptr_type (tmp389) ; tmp391 = atspre_imax (arg1, tmp386) ; tmp390 = atspre_iadd (1, tmp391) ; ats_ptrget_mac(ats_int_type, arg0) = tmp390 ; tmp392 = ats_ptrget_mac(ats_ptr_type, tmp384) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp392 ; tmp394 = atspre_imax (tmp388, tmp374) ; tmp393 = atspre_iadd (1, tmp394) ; ats_ptrget_mac(ats_int_type, tmp369) = tmp393 ; tmp395 = ats_ptrget_mac(ats_ptr_type, tmp385) ; ats_ptrget_mac(ats_ptr_type, tmp370) = tmp395 ; ats_ptrget_mac(ats_int_type, tmp383) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp384) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp385) = tmp368 ; tmp367 = tmp382 ; } /* end of [if] */ return (tmp367) ; } /* end of [avltree_lrotate_04286_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4) */ ATSstaticdec() ats_bool_type insert_56 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_int_type, tmp311) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_bool_type, tmp314) ; ATSlocal (ats_bool_type, tmp315) ; ATSlocal (ats_int_type, tmp316) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_int_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_bool_type, tmp322) ; ATSlocal (ats_int_type, tmp323) ; ATSlocal (ats_int_type, tmp324) ; ATSlocal (ats_int_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_bool_type, tmp356) ; ATSlocal (ats_bool_type, tmp357) ; ATSlocal (ats_int_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_int_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_bool_type, tmp362) ; ATSlocal (ats_int_type, tmp363) ; ATSlocal (ats_int_type, tmp364) ; ATSlocal (ats_int_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; __ats_lab_insert_56: do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_82_1: tmp307 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp308 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp309 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp310 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp313 = ats_ptrget_mac(ats_ptr_type, tmp308) ; tmp311 = compare_elt_elt_03802_ats_ptr_type (arg1, tmp313, env0) ; tmp314 = atspre_lt_int_int (tmp311, 0) ; if (tmp314) { tmp315 = insert_56 (env0, tmp309, arg1) ; tmp319 = ats_ptrget_mac(ats_ptr_type, tmp309) ; tmp316 = avltree_height_04256_ats_ptr_type (tmp319) ; tmp321 = ats_ptrget_mac(ats_ptr_type, tmp310) ; tmp320 = avltree_height_04256_ats_ptr_type (tmp321) ; tmp323 = atspre_isub (tmp316, tmp320) ; tmp322 = atspre_ilte (tmp323, 1) ; if (tmp322) { tmp325 = atspre_imax (tmp316, tmp320) ; tmp324 = atspre_iadd (1, tmp325) ; ats_ptrget_mac(ats_int_type, tmp307) = tmp324 ; tmp306 = tmp315 ; } else { tmp326 = avltree_rrotate_04310_ats_ptr_type (tmp307, tmp316, tmp309, tmp320, tmp310, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp326 ; tmp306 = tmp315 ; } /* end of [if] */ } else { tmp356 = atspre_gt_int_int (tmp311, 0) ; if (tmp356) { tmp357 = insert_56 (env0, tmp310, arg1) ; tmp359 = ats_ptrget_mac(ats_ptr_type, tmp309) ; tmp358 = avltree_height_04256_ats_ptr_type (tmp359) ; tmp361 = ats_ptrget_mac(ats_ptr_type, tmp310) ; tmp360 = avltree_height_04256_ats_ptr_type (tmp361) ; tmp363 = atspre_isub (tmp360, tmp358) ; tmp362 = atspre_ilte (tmp363, 1) ; if (tmp362) { tmp365 = atspre_imax (tmp358, tmp360) ; tmp364 = atspre_iadd (1, tmp365) ; ats_ptrget_mac(ats_int_type, tmp307) = tmp364 ; tmp306 = tmp357 ; } else { tmp366 = avltree_lrotate_04286_ats_ptr_type (tmp307, tmp358, tmp309, tmp360, tmp310, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp366 ; tmp306 = tmp357 ; } /* end of [if] */ } else { tmp306 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp397 = (ats_sum_ptr_type)0 ; tmp398 = (ats_sum_ptr_type)0 ; tmp396 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp396, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_3, tmp396, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp396, atslab_2, tmp397) ; ats_selptrset_mac(anairiats_sum_3, tmp396, atslab_3, tmp398) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp396 ; tmp306 = ats_false_bool ; break ; } while (0) ; return (tmp306) ; } /* end of [insert_56] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } insert_56_closure_type ; ats_bool_type insert_56_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return insert_56 (((insert_56_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_56_closure_init (insert_56_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_56_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type insert_56_closure_make (ats_clo_ref_type env0) { insert_56_closure_type *p_clo = ATS_MALLOC(sizeof(insert_56_closure_type)) ; insert_56_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_03812_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp305) ; __ats_lab_linset_insert_03812_ats_ptr_type: tmp305 = insert_56 (arg2, arg0, arg1) ; return (tmp305) ; } /* end of [linset_insert_03812_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7593(line=311, offs=3) -- 7682(line=314, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_bool_type, tmp304) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add: /* ats_ptr_type tmp303 ; */ tmp303 = arg0 ; tmp304 = linset_insert_03812_ats_ptr_type ((&tmp303), arg1, statmp75) ; tmp302 = tmp303 ; return (tmp302) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 10551(line=405, offs=35) -- 11507(line=438, offs=4) */ ATSstaticdec() ats_ptr_type avltree_takeout_min_04355_ats_ptr_type (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_int_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_int_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_bool_type, tmp441) ; ATSlocal (ats_int_type, tmp442) ; ATSlocal (ats_int_type, tmp443) ; ATSlocal (ats_int_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; __ats_lab_avltree_takeout_min_04355_ats_ptr_type: // if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp432 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp433 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp434 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp435 = ats_ptrget_mac(ats_ptr_type, tmp433) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (tmp435 == (ats_sum_ptr_type)0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp436 = avltree_takeout_min_04355_ats_ptr_type (tmp433) ; tmp438 = ats_ptrget_mac(ats_ptr_type, tmp433) ; tmp437 = avltree_height_04256_ats_ptr_type (tmp438) ; tmp440 = ats_ptrget_mac(ats_ptr_type, tmp434) ; tmp439 = avltree_height_04256_ats_ptr_type (tmp440) ; tmp442 = atspre_isub (tmp439, tmp437) ; tmp441 = atspre_ilte (tmp442, 1) ; if (tmp441) { tmp444 = atspre_imax (tmp437, tmp439) ; tmp443 = atspre_iadd (1, tmp444) ; ats_ptrget_mac(ats_int_type, tmp432) = tmp443 ; tmp431 = tmp436 ; } else { tmp445 = avltree_lrotate_04286_ats_ptr_type (tmp432, tmp437, tmp433, tmp439, tmp434, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp445 ; tmp431 = tmp436 ; } /* end of [if] */ break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (tmp435 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: tmp446 = ats_ptrget_mac(ats_ptr_type, tmp434) ; tmp447 = ats_ptrget_mac(ats_ptr_type, arg0) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp446 ; tmp431 = ats_castfn_mac(ats_ptr_type, tmp447) ; break ; } while (0) ; return (tmp431) ; } /* end of [avltree_takeout_min_04355_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 11633(line=445, offs=7) -- 14462(line=519, offs=6) */ ATSstaticdec() ats_bool_type remove_63 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_int_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_bool_type, tmp410) ; ATSlocal (ats_bool_type, tmp411) ; ATSlocal (ats_int_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_int_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_bool_type, tmp416) ; ATSlocal (ats_int_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_bool_type, tmp419) ; ATSlocal (ats_bool_type, tmp420) ; ATSlocal (ats_int_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_int_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_bool_type, tmp425) ; ATSlocal (ats_int_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_int_type, tmp451) ; ATSlocal (ats_int_type, tmp452) ; ATSlocal (ats_bool_type, tmp453) ; ATSlocal (ats_int_type, tmp454) ; ATSlocal (ats_int_type, tmp455) ; ATSlocal (ats_int_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; __ats_lab_remove_63: do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; } __ats_lab_86_1: tmp404 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp405 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp406 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp407 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp409 = ats_ptrget_mac(ats_ptr_type, tmp405) ; tmp408 = compare_elt_elt_03802_ats_ptr_type (env0, tmp409, env1) ; do { /* branch: __ats_lab_87 */ __ats_lab_87_0: __ats_lab_87_1: tmp410 = atspre_lt_int_int (tmp408, 0) ; if (!tmp410) { goto __ats_lab_88_1 ; } tmp411 = remove_63 (env0, env1, tmp406) ; tmp413 = ats_ptrget_mac(ats_ptr_type, tmp406) ; tmp412 = avltree_height_04256_ats_ptr_type (tmp413) ; tmp415 = ats_ptrget_mac(ats_ptr_type, tmp407) ; tmp414 = avltree_height_04256_ats_ptr_type (tmp415) ; tmp417 = atspre_isub (tmp414, tmp412) ; tmp416 = atspre_ilte (tmp417, 1) ; if (tmp416) { tmp403 = tmp411 ; } else { tmp418 = avltree_lrotate_04286_ats_ptr_type (tmp404, tmp412, tmp406, tmp414, tmp407, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp418 ; tmp403 = tmp411 ; } /* end of [if] */ break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: tmp419 = atspre_gt_int_int (tmp408, 0) ; if (!tmp419) { goto __ats_lab_89_1 ; } tmp420 = remove_63 (env0, env1, tmp407) ; tmp422 = ats_ptrget_mac(ats_ptr_type, tmp406) ; tmp421 = avltree_height_04256_ats_ptr_type (tmp422) ; tmp424 = ats_ptrget_mac(ats_ptr_type, tmp407) ; tmp423 = avltree_height_04256_ats_ptr_type (tmp424) ; tmp426 = atspre_isub (tmp421, tmp423) ; tmp425 = atspre_ilte (tmp426, 1) ; if (tmp425) { tmp403 = tmp420 ; } else { tmp427 = avltree_rrotate_04310_ats_ptr_type (tmp404, tmp421, tmp406, tmp423, tmp407, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp427 ; tmp403 = tmp420 ; } /* end of [if] */ break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: __ats_lab_89_1: /* ats_ptr_type tmp428 ; */ tmp428 = ats_ptrget_mac(ats_ptr_type, tmp406) ; /* ats_ptr_type tmp429 ; */ tmp429 = ats_ptrget_mac(ats_ptr_type, tmp407) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (tmp429 == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_90_1: tmp430 = avltree_takeout_min_04355_ats_ptr_type ((&tmp429)) ; if (tmp430 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 13492(line=496, offs=21) -- 13529(line=496, offs=58)") ; } tmp448 = &ats_caselptrlab_mac(anairiats_sum_3, tmp430, atslab_0) ; tmp449 = &ats_caselptrlab_mac(anairiats_sum_3, tmp430, atslab_2) ; tmp450 = &ats_caselptrlab_mac(anairiats_sum_3, tmp430, atslab_3) ; tmp451 = avltree_height_04256_ats_ptr_type (tmp428) ; tmp452 = avltree_height_04256_ats_ptr_type (tmp429) ; ats_ptrget_mac(ats_ptr_type, tmp449) = tmp428 ; ats_ptrget_mac(ats_ptr_type, tmp450) = tmp429 ; tmp454 = atspre_isub (tmp451, tmp452) ; tmp453 = atspre_ilte (tmp454, 1) ; if (tmp453) { tmp456 = atspre_imax (tmp451, tmp452) ; tmp455 = atspre_iadd (1, tmp456) ; ats_ptrget_mac(ats_int_type, tmp448) = tmp455 ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp430 ; tmp403 = ats_true_bool ; } else { tmp457 = avltree_rrotate_04310_ats_ptr_type (tmp448, tmp451, tmp449, tmp452, tmp450, tmp430) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp457 ; tmp403 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (tmp429 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: ats_ptrget_mac(ats_ptr_type, arg0) = tmp428 ; tmp403 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: tmp403 = ats_false_bool ; break ; } while (0) ; return (tmp403) ; } /* end of [remove_63] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } remove_63_closure_type ; ats_bool_type remove_63_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0) { return remove_63 (((remove_63_closure_type*)cloptr)->closure_env_0, ((remove_63_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type remove_63_closure_init (remove_63_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&remove_63_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type remove_63_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { remove_63_closure_type *p_clo = ATS_MALLOC(sizeof(remove_63_closure_type)) ; remove_63_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 11591(line=444, offs=3) -- 14483(line=520, offs=2) */ ATSstaticdec() ats_bool_type linset_remove_03813_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp402) ; __ats_lab_linset_remove_03813_ats_ptr_type: tmp402 = remove_63 (arg1, arg2, arg0) ; return (tmp402) ; } /* end of [linset_remove_03813_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7740(line=318, offs=3) -- 7828(line=321, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_del (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_bool_type, tmp401) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_del: /* ats_ptr_type tmp400 ; */ tmp400 = arg0 ; tmp401 = linset_remove_03813_ats_ptr_type ((&tmp400), arg1, statmp75) ; tmp399 = tmp400 ; return (tmp399) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_del] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7912(line=326, offs=7) -- 8104(line=331, offs=25) */ ATSstaticdec() ats_ptr_type loop_66 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; __ats_lab_loop_66: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp460 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp461 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp462 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_del (arg0, tmp460) ; arg0 = tmp462 ; arg1 = tmp461 ; goto __ats_lab_loop_66 ; // tail call break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_96_1: tmp459 = arg0 ; break ; } while (0) ; return (tmp459) ; } /* end of [loop_66] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7889(line=325, offs=3) -- 8148(line=335, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_delist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp458) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_delist: tmp458 = loop_66 (arg0, arg1) ; return (tmp458) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_delist] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 14636(line=529, offs=33) -- 15739(line=565, offs=4) */ ATSstaticdec() ats_ptr_type avltree_ljoin_04404_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_int_type, tmp492) ; ATSlocal (ats_int_type, tmp493) ; ATSlocal (ats_bool_type, tmp494) ; ATSlocal (ats_int_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_int_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_int_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_bool_type, tmp505) ; ATSlocal (ats_int_type, tmp506) ; ATSlocal (ats_int_type, tmp507) ; ATSlocal (ats_int_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_int_type, tmp512) ; __ats_lab_avltree_ljoin_04404_ats_ptr_type: tmp492 = avltree_height_04256_ats_ptr_type (arg1) ; tmp493 = avltree_height_04256_ats_ptr_type (arg2) ; tmp495 = atspre_iadd (tmp493, 2) ; tmp494 = atspre_igte (tmp492, tmp495) ; if (tmp494) { // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp496 = &ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp497 = &ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_2) ; tmp498 = &ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_3) ; tmp500 = ats_ptrget_mac(ats_ptr_type, tmp498) ; tmp499 = avltree_ljoin_04404_ats_ptr_type (arg0, tmp500, arg2) ; ats_ptrget_mac(ats_ptr_type, tmp498) = tmp499 ; tmp502 = ats_ptrget_mac(ats_ptr_type, tmp497) ; tmp501 = avltree_height_04256_ats_ptr_type (tmp502) ; tmp504 = ats_ptrget_mac(ats_ptr_type, tmp498) ; tmp503 = avltree_height_04256_ats_ptr_type (tmp504) ; tmp506 = atspre_iadd (tmp501, 1) ; tmp505 = atspre_ilte (tmp503, tmp506) ; if (tmp505) { tmp508 = atspre_imax (tmp501, tmp503) ; tmp507 = atspre_iadd (tmp508, 1) ; ats_ptrget_mac(ats_int_type, tmp496) = tmp507 ; tmp491 = arg1 ; } else { tmp491 = avltree_lrotate_04286_ats_ptr_type (tmp496, tmp501, tmp497, tmp503, tmp498, arg1) ; } /* end of [if] */ } else { if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 15582(line=559, offs=9) -- 15612(line=559, offs=39)") ; } tmp509 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp510 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp511 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp512 = atspre_iadd (tmp492, 1) ; ats_ptrget_mac(ats_int_type, tmp509) = tmp512 ; ats_ptrget_mac(ats_ptr_type, tmp510) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp511) = arg2 ; tmp491 = arg0 ; } /* end of [if] */ return (tmp491) ; } /* end of [avltree_ljoin_04404_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 15871(line=572, offs=32) -- 16972(line=608, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rjoin_04424_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_int_type, tmp514) ; ATSlocal (ats_int_type, tmp515) ; ATSlocal (ats_bool_type, tmp516) ; ATSlocal (ats_int_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_int_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_int_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_bool_type, tmp527) ; ATSlocal (ats_int_type, tmp528) ; ATSlocal (ats_int_type, tmp529) ; ATSlocal (ats_int_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_int_type, tmp534) ; __ats_lab_avltree_rjoin_04424_ats_ptr_type: tmp514 = avltree_height_04256_ats_ptr_type (arg1) ; tmp515 = avltree_height_04256_ats_ptr_type (arg2) ; tmp517 = atspre_iadd (tmp514, 2) ; tmp516 = atspre_igte (tmp515, tmp517) ; if (tmp516) { // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp518 = &ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp519 = &ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_2) ; tmp520 = &ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_3) ; tmp522 = ats_ptrget_mac(ats_ptr_type, tmp519) ; tmp521 = avltree_rjoin_04424_ats_ptr_type (arg0, arg1, tmp522) ; ats_ptrget_mac(ats_ptr_type, tmp519) = tmp521 ; tmp524 = ats_ptrget_mac(ats_ptr_type, tmp519) ; tmp523 = avltree_height_04256_ats_ptr_type (tmp524) ; tmp526 = ats_ptrget_mac(ats_ptr_type, tmp520) ; tmp525 = avltree_height_04256_ats_ptr_type (tmp526) ; tmp528 = atspre_iadd (tmp525, 1) ; tmp527 = atspre_ilte (tmp523, tmp528) ; if (tmp527) { tmp530 = atspre_imax (tmp523, tmp525) ; tmp529 = atspre_iadd (tmp530, 1) ; ats_ptrget_mac(ats_int_type, tmp518) = tmp529 ; tmp513 = arg2 ; } else { tmp513 = avltree_rrotate_04310_ats_ptr_type (tmp518, tmp523, tmp519, tmp525, tmp520, arg2) ; } /* end of [if] */ } else { if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 16815(line=602, offs=9) -- 16845(line=602, offs=39)") ; } tmp531 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp532 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp533 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp534 = atspre_iadd (tmp515, 1) ; ats_ptrget_mac(ats_int_type, tmp531) = tmp534 ; ats_ptrget_mac(ats_ptr_type, tmp532) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp533) = arg2 ; tmp513 = arg0 ; } /* end of [if] */ return (tmp513) ; } /* end of [avltree_rjoin_04424_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 17060(line=614, offs=15) -- 17380(line=624, offs=4) */ ATSstaticdec() ats_ptr_type avltree_join_04444_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_int_type, tmp488) ; ATSlocal (ats_int_type, tmp489) ; ATSlocal (ats_bool_type, tmp490) ; __ats_lab_avltree_join_04444_ats_ptr_type: tmp488 = avltree_height_04256_ats_ptr_type (arg1) ; tmp489 = avltree_height_04256_ats_ptr_type (arg2) ; tmp490 = atspre_igte (tmp488, tmp489) ; if (tmp490) { tmp487 = avltree_ljoin_04404_ats_ptr_type (arg0, arg1, arg2) ; } else { tmp487 = avltree_rjoin_04424_ats_ptr_type (arg0, arg1, arg2) ; } /* end of [if] */ return (tmp487) ; } /* end of [avltree_join_04444_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 17875(line=647, offs=32) -- 19018(line=684, offs=8) */ ATSstaticdec() ats_int_type avltree_split_at_04455_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_clo_ref_type arg5) { /* local vardec */ ATSlocal (ats_int_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_int_type, tmp483) ; ATSlocal (ats_bool_type, tmp484) ; ATSlocal (ats_int_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_bool_type, tmp535) ; ATSlocal (ats_int_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; __ats_lab_avltree_split_at_04455_ats_ptr_type: do { /* branch: __ats_lab_100 */ __ats_lab_100_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp477 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp478 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp479 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp480 = ats_ptrget_mac(ats_ptr_type, tmp477) ; tmp481 = ats_ptrget_mac(ats_ptr_type, tmp478) ; tmp482 = ats_ptrget_mac(ats_ptr_type, tmp479) ; tmp483 = compare_elt_elt_03802_ats_ptr_type (arg1, tmp480, arg5) ; tmp484 = atspre_lt_int_int (tmp483, 0) ; if (tmp484) { tmp485 = avltree_split_at_04455_ats_ptr_type (tmp481, arg1, arg2, arg3, arg4, arg5) ; tmp486 = avltree_join_04444_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), ats_ptrget_mac(ats_ptr_type, arg4), tmp482) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp486 ; tmp476 = tmp485 ; } else { tmp535 = atspre_gt_int_int (tmp483, 0) ; if (tmp535) { tmp536 = avltree_split_at_04455_ats_ptr_type (tmp482, arg1, arg2, arg3, arg4, arg5) ; tmp537 = avltree_join_04444_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), tmp481, ats_ptrget_mac(ats_ptr_type, arg3)) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp537 ; tmp476 = tmp536 ; } else { ats_ptrget_mac(ats_ptr_type, arg2) = ats_castfn_mac(ats_ptr_type, arg0) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp481 ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp482 ; tmp476 = 1 ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_101_1: tmp538 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp538 ; tmp539 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp539 ; tmp476 = 0 ; break ; } while (0) ; return (tmp476) ; } /* end of [avltree_split_at_04455_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 19901(line=728, offs=21) -- 20224(line=744, offs=4) */ ATSstaticdec() ats_void_type B_node_free_opt_04481_ (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp541) ; ATSlocal (ats_bool_type, tmp542) ; __ats_lab_B_node_free_opt_04481_: tmp542 = atspre_igt (arg1, 0) ; if (tmp542) { // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } ATS_FREE(arg0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp541) */ ; } /* end of [B_node_free_opt_04481_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 20348(line=751, offs=7) -- 21139(line=772, offs=8) */ ATSstaticdec() ats_ptr_type union_69 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_int_type, tmp475) ; // ATSlocal_void (tmp540) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; __ats_lab_union_69: do { /* branch: __ats_lab_97 */ __ats_lab_97_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_98_0 ; } __ats_lab_97_1: __ats_lab_97_2: tmp465 = arg1 ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: __ats_lab_98_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_99_1 ; } __ats_lab_98_2: tmp465 = arg0 ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: __ats_lab_99_1: __ats_lab_99_2: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp466 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp467 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp468 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp469 = ats_ptrget_mac(ats_ptr_type, tmp466) ; tmp470 = ats_ptrget_mac(ats_ptr_type, tmp467) ; tmp471 = ats_ptrget_mac(ats_ptr_type, tmp468) ; /* ats_ptr_type tmp472 ; */ /* ats_ptr_type tmp473 ; */ /* ats_ptr_type tmp474 ; */ tmp475 = avltree_split_at_04455_ats_ptr_type (arg1, tmp469, (&tmp472), (&tmp473), (&tmp474), env0) ; /* tmp540 = */ B_node_free_opt_04481_ (tmp472, tmp475) ; tmp543 = union_69 (env0, tmp470, tmp473) ; tmp544 = union_69 (env0, tmp471, tmp474) ; tmp465 = avltree_join_04444_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), tmp543, tmp544) ; break ; } while (0) ; return (tmp465) ; } /* end of [union_69] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } union_69_closure_type ; ats_ptr_type union_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return union_69 (((union_69_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type union_69_closure_init (union_69_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&union_69_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type union_69_closure_make (ats_clo_ref_type env0) { union_69_closure_type *p_clo = ATS_MALLOC(sizeof(union_69_closure_type)) ; union_69_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 20303(line=750, offs=3) -- 21177(line=774, offs=2) */ ATSstaticdec() ats_ptr_type linset_union_03816_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp464) ; __ats_lab_linset_union_03816_ats_ptr_type: tmp464 = union_69 (arg2, arg0, arg1) ; return (tmp464) ; } /* end of [linset_union_03816_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8209(line=338, offs=19) -- 8250(line=338, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_union (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp463) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_union: tmp463 = linset_union_03816_ats_ptr_type (arg0, arg1, statmp75) ; return (tmp463) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_union] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18) */ ATSstaticdec() ats_void_type aux_77 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; // ATSlocal_void (tmp550) ; __ats_lab_aux_77: do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp548 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp549 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; ATS_FREE(arg0) ; /* tmp550 = */ aux_77 (tmp548) ; arg0 = tmp549 ; goto __ats_lab_aux_77 ; // tail call break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_103_1: break ; } while (0) ; return /* (tmp547) */ ; } /* end of [aux_77] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4410(line=170, offs=13) -- 4591(line=179, offs=4) */ ATSstaticdec() ats_void_type linset_free_03810_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp546) ; __ats_lab_linset_free_03810_ats_ptr_type: /* tmp546 = */ aux_77 (arg0) ; return /* (tmp546) */ ; } /* end of [linset_free_03810_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8279(line=341, offs=18) -- 8305(line=341, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp545) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_free: /* tmp545 = */ linset_free_03810_ats_ptr_type (arg0) ; return /* (tmp545) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19) */ ATSstaticdec() ats_ptr_type aux_80 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; __ats_lab_aux_80: do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp554 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp555 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp556 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; ATS_FREE(arg0) ; tmp557 = aux_80 (tmp556, arg1) ; tmp558 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp558, atslab_0, tmp554) ; ats_selptrset_mac(anairiats_sum_2, tmp558, atslab_1, tmp557) ; arg0 = tmp555 ; arg1 = tmp558 ; goto __ats_lab_aux_80 ; // tail call break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_105_1: tmp553 = arg1 ; break ; } while (0) ; return (tmp553) ; } /* end of [aux_80] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_free_03828_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_ptr_type, tmp559) ; __ats_lab_linset_listize_free_03828_ats_ptr_type: tmp559 = (ats_sum_ptr_type)0 ; tmp552 = aux_80 (arg0, tmp559) ; return (tmp552) ; } /* end of [linset_listize_free_03828_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8342(line=343, offs=26) -- 8376(line=343, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp551) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free: tmp551 = linset_listize_free_03828_ats_ptr_type (arg0) ; return (tmp551) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8582(line=360, offs=1) -- 8667(line=363, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_81 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp560) ; __ats_lab___ats_fun_81: tmp560 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg1, arg0) ; return (tmp560) ; } /* end of [__ats_fun_81] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_81_closure_type ; ats_int_type __ats_fun_81_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_81 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_81_closure_init (__ats_fun_81_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_81_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_81_closure_make () { __ats_fun_81_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_81_closure_type)) ; __ats_fun_81_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 2250(line=74, offs=18) -- 2266(line=74, offs=34) */ ATSstaticdec() ats_ptr_type funmset_make_nil_03835_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp563) ; __ats_lab_funmset_make_nil_03835_: tmp563 = (ats_sum_ptr_type)0 ; return (tmp563) ; } /* end of [funmset_make_nil_03835_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8754(line=369, offs=15) -- 8784(line=369, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp562) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_nil: tmp562 = funmset_make_nil_03835_ () ; return (tmp562) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 2298(line=76, offs=19) -- 2332(line=76, offs=53) */ ATSstaticdec() ats_ptr_type funmset_make_sing_03836_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (anairiats_rec_4, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; __ats_lab_funmset_make_sing_03836_ats_ptr_type: tmp566.atslab_0 = 1 ; tmp566.atslab_1 = arg0 ; tmp567 = (ats_sum_ptr_type)0 ; tmp565 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp565, atslab_0, tmp566) ; ats_selptrset_mac(anairiats_sum_5, tmp565, atslab_1, tmp567) ; return (tmp565) ; } /* end of [funmset_make_sing_03836_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8810(line=371, offs=16) -- 8842(line=371, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_sing (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp564) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_sing: tmp564 = funmset_make_sing_03836_ats_ptr_type (arg0) ; return (tmp564) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_sing] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 1928(line=58, offs=32) -- 1956(line=58, offs=60) */ ATSstaticdec() ats_int_type compare_elt_elt_03834_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp571) ; __ats_lab_compare_elt_elt_03834_ats_ptr_type: tmp571 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp571) ; } /* end of [compare_elt_elt_03834_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 2367(line=80, offs=3) -- 2710(line=98, offs=4) */ ATSstaticdec() ats_ptr_type funmset_make_pair_03837_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_int_type, tmp570) ; ATSlocal (ats_bool_type, tmp572) ; ATSlocal (anairiats_rec_4, tmp573) ; ATSlocal (anairiats_rec_4, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_bool_type, tmp577) ; ATSlocal (anairiats_rec_4, tmp578) ; ATSlocal (anairiats_rec_4, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (anairiats_rec_4, tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; __ats_lab_funmset_make_pair_03837_ats_ptr_type: tmp570 = compare_elt_elt_03834_ats_ptr_type (arg0, arg1, arg2) ; tmp572 = atspre_gt_int_int (tmp570, 0) ; if (tmp572) { tmp573.atslab_0 = 1 ; tmp573.atslab_1 = arg0 ; tmp574.atslab_0 = 1 ; tmp574.atslab_1 = arg1 ; tmp576 = (ats_sum_ptr_type)0 ; tmp575 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp575, atslab_0, tmp574) ; ats_selptrset_mac(anairiats_sum_5, tmp575, atslab_1, tmp576) ; tmp569 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_0, tmp573) ; ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_1, tmp575) ; } else { tmp577 = atspre_lt_int_int (tmp570, 0) ; if (tmp577) { tmp578.atslab_0 = 1 ; tmp578.atslab_1 = arg0 ; tmp579.atslab_0 = 1 ; tmp579.atslab_1 = arg1 ; tmp581 = (ats_sum_ptr_type)0 ; tmp580 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp580, atslab_0, tmp578) ; ats_selptrset_mac(anairiats_sum_5, tmp580, atslab_1, tmp581) ; tmp569 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_0, tmp579) ; ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_1, tmp580) ; } else { tmp582.atslab_0 = 2 ; tmp582.atslab_1 = arg0 ; tmp583 = (ats_sum_ptr_type)0 ; tmp569 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_0, tmp582) ; ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_1, tmp583) ; } /* end of [if] */ } /* end of [if] */ return (tmp569) ; } /* end of [funmset_make_pair_03837_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8871(line=374, offs=3) -- 8919(line=374, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_pair (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp568) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_pair: tmp568 = funmset_make_pair_03837_ats_ptr_type (arg0, arg1, statmp561) ; return (tmp568) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_pair] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 10230(line=419, offs=5) -- 10916(line=444, offs=2) */ ATSstaticdec() ats_int_type aux_91 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp587) ; ATSlocal (anairiats_rec_4, tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; ATSlocal (anairiats_rec_4, tmp590) ; ATSlocal (ats_ptr_type, tmp591) ; ATSlocal (ats_int_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; ATSlocal (ats_bool_type, tmp595) ; ATSlocal (ats_bool_type, tmp596) ; ATSlocal (ats_int_type, tmp597) ; ATSlocal (ats_int_type, tmp598) ; ATSlocal (ats_bool_type, tmp599) ; ATSlocal (ats_bool_type, tmp600) ; __ats_lab_aux_91: do { /* branch: __ats_lab_106 */ __ats_lab_106_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; } __ats_lab_106_1: tmp588 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp589 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp590 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp591 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp593 = ats_select_mac(tmp588, atslab_1) ; tmp594 = ats_select_mac(tmp590, atslab_1) ; tmp592 = compare_elt_elt_03834_ats_ptr_type (tmp593, tmp594, env0) ; tmp595 = atspre_gt_int_int (tmp592, 0) ; if (tmp595) { tmp587 = 1 ; } else { tmp596 = atspre_lt_int_int (tmp592, 0) ; if (tmp596) { tmp587 = -1 ; } else { tmp597 = ats_select_mac(tmp588, atslab_0) ; tmp598 = ats_select_mac(tmp590, atslab_0) ; tmp599 = atspre_gt_int_int (tmp597, tmp598) ; if (tmp599) { tmp587 = 1 ; } else { tmp600 = atspre_lt_int_int (tmp597, tmp598) ; if (tmp600) { tmp587 = -1 ; } else { arg0 = tmp589 ; arg1 = tmp591 ; goto __ats_lab_aux_91 ; // tail call } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp587 = 1 ; break ; } while (0) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp587 = -1 ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: tmp587 = 0 ; break ; } while (0) ; break ; } while (0) ; return (tmp587) ; } /* end of [aux_91] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } aux_91_closure_type ; ats_int_type aux_91_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return aux_91 (((aux_91_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_91_closure_init (aux_91_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_91_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_91_closure_make (ats_clo_ref_type env0) { aux_91_closure_type *p_clo = ATS_MALLOC(sizeof(aux_91_closure_type)) ; aux_91_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 10174(line=415, offs=3) -- 10961(line=448, offs=4) */ ATSstaticdec() ats_int_type funmset_compare_03849_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp586) ; __ats_lab_funmset_compare_03849_ats_ptr_type: tmp586 = aux_91 (arg2, arg0, arg1) ; return (tmp586) ; } /* end of [funmset_compare_03849_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8974(line=379, offs=3) -- 9031(line=380, offs=45) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_gte (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp584) ; ATSlocal (ats_int_type, tmp585) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_gte: tmp585 = funmset_compare_03849_ats_ptr_type (arg0, arg1, statmp561) ; tmp584 = atspre_gte_int_int (tmp585, 0) ; return (tmp584) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_gte] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 9454(line=386, offs=5) -- 10046(line=405, offs=2) */ ATSstaticdec() ats_bool_type aux_94 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp603) ; ATSlocal (anairiats_rec_4, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (anairiats_rec_4, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_int_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; ATSlocal (ats_bool_type, tmp611) ; ATSlocal (ats_bool_type, tmp612) ; ATSlocal (ats_int_type, tmp613) ; ATSlocal (ats_int_type, tmp614) ; __ats_lab_aux_94: do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_115_0 ; } __ats_lab_112_1: tmp604 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp605 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp606 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp607 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp609 = ats_select_mac(tmp604, atslab_1) ; tmp610 = ats_select_mac(tmp606, atslab_1) ; tmp608 = compare_elt_elt_03834_ats_ptr_type (tmp609, tmp610, env0) ; tmp611 = atspre_eq_int_int (tmp608, 0) ; if (tmp611) { tmp613 = ats_select_mac(tmp604, atslab_0) ; tmp614 = ats_select_mac(tmp606, atslab_0) ; tmp612 = atspre_eq_int_int (tmp613, tmp614) ; if (tmp612) { arg0 = tmp605 ; arg1 = tmp607 ; goto __ats_lab_aux_94 ; // tail call } else { tmp603 = ats_false_bool ; } /* end of [if] */ } else { tmp603 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: tmp603 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_115_1: do { /* branch: __ats_lab_116 */ __ats_lab_116_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp603 = ats_false_bool ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_117_1: tmp603 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; return (tmp603) ; } /* end of [aux_94] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } aux_94_closure_type ; ats_bool_type aux_94_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return aux_94 (((aux_94_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_94_closure_init (aux_94_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_94_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_94_closure_make (ats_clo_ref_type env0) { aux_94_closure_type *p_clo = ATS_MALLOC(sizeof(aux_94_closure_type)) ; aux_94_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 9401(line=383, offs=3) -- 10091(line=409, offs=4) */ ATSstaticdec() ats_bool_type funmset_is_equal_03848_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp602) ; __ats_lab_funmset_is_equal_03848_ats_ptr_type: tmp602 = aux_94 (arg2, arg0, arg1) ; return (tmp602) ; } /* end of [funmset_is_equal_03848_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9090(line=385, offs=3) -- 9141(line=385, offs=54) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_is_equal (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp601) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_is_equal: tmp601 = funmset_is_equal_03848_ats_ptr_type (arg0, arg1, statmp561) ; return (tmp601) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_is_equal] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 5472(line=215, offs=5) -- 5963(line=231, offs=49) */ ATSstaticdec() ats_ptr_type aux_97 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp619) ; ATSlocal (anairiats_rec_4, tmp620) ; ATSlocal (ats_ptr_type, tmp621) ; ATSlocal (ats_int_type, tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_bool_type, tmp624) ; ATSlocal (anairiats_rec_4, tmp625) ; ATSlocal (ats_bool_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (anairiats_rec_4, tmp628) ; ATSlocal (ats_int_type, tmp629) ; ATSlocal (ats_int_type, tmp630) ; ATSlocal (ats_ptr_type, tmp631) ; ATSlocal (anairiats_rec_4, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; __ats_lab_aux_97: do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp620 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp621 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp623 = ats_select_mac(tmp620, atslab_1) ; tmp622 = compare_elt_elt_03834_ats_ptr_type (env0, tmp623, env1) ; tmp624 = atspre_gt_int_int (tmp622, 0) ; if (tmp624) { tmp625.atslab_0 = 1 ; tmp625.atslab_1 = env0 ; tmp619 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_0, tmp625) ; ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_1, arg0) ; } else { tmp626 = atspre_lt_int_int (tmp622, 0) ; if (tmp626) { tmp627 = aux_97 (env0, env1, tmp621) ; tmp619 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_0, tmp620) ; ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_1, tmp627) ; } else { tmp630 = ats_select_mac(tmp620, atslab_0) ; tmp629 = atspre_iadd (tmp630, 1) ; tmp631 = ats_select_mac(tmp620, atslab_1) ; tmp628.atslab_0 = tmp629 ; tmp628.atslab_1 = tmp631 ; tmp619 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_0, tmp628) ; ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_1, tmp621) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_119_1: tmp632.atslab_0 = 1 ; tmp632.atslab_1 = env0 ; tmp633 = (ats_sum_ptr_type)0 ; tmp619 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_0, tmp632) ; ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_1, tmp633) ; break ; } while (0) ; return (tmp619) ; } /* end of [aux_97] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_97_closure_type ; ats_ptr_type aux_97_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_97 (((aux_97_closure_type*)cloptr)->closure_env_0, ((aux_97_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_97_closure_init (aux_97_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_97_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_97_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_97_closure_type *p_clo = ATS_MALLOC(sizeof(aux_97_closure_type)) ; aux_97_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 5418(line=211, offs=3) -- 6008(line=236, offs=4) */ ATSstaticdec() ats_void_type funmset_insert_03843_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp618) ; ATSlocal (ats_ptr_type, tmp634) ; __ats_lab_funmset_insert_03843_ats_ptr_type: tmp634 = aux_97 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp634 ; return /* (tmp618) */ ; } /* end of [funmset_insert_03843_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9200(line=390, offs=3) -- 9281(line=393, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; // ATSlocal_void (tmp617) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_add: /* ats_ptr_type tmp616 ; */ tmp616 = arg0 ; /* tmp617 = */ funmset_insert_03843_ats_ptr_type ((&tmp616), arg1, statmp561) ; tmp615 = tmp616 ; return (tmp615) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 6142(line=246, offs=5) -- 6742(line=266, offs=31) */ ATSstaticdec() ats_ptr_type aux_100 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp639) ; ATSlocal (anairiats_rec_4, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; ATSlocal (ats_int_type, tmp642) ; ATSlocal (ats_ptr_type, tmp643) ; ATSlocal (ats_bool_type, tmp644) ; ATSlocal (ats_bool_type, tmp645) ; ATSlocal (ats_int_type, tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; ATSlocal (ats_bool_type, tmp648) ; ATSlocal (ats_int_type, tmp649) ; ATSlocal (ats_int_type, tmp650) ; ATSlocal (ats_int_type, tmp651) ; ATSlocal (ats_bool_type, tmp652) ; ATSlocal (anairiats_rec_4, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; __ats_lab_aux_100: do { /* branch: __ats_lab_120 */ __ats_lab_120_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp640 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp641 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp643 = ats_select_mac(tmp640, atslab_1) ; tmp642 = compare_elt_elt_03834_ats_ptr_type (env0, tmp643, env1) ; tmp644 = atspre_gt_int_int (tmp642, 0) ; if (tmp644) { tmp639 = arg0 ; } else { tmp645 = atspre_lt_int_int (tmp642, 0) ; if (tmp645) { tmp646 = ats_ptrget_mac(ats_int_type, arg1) ; tmp647 = aux_100 (env0, env1, tmp641, arg1) ; tmp648 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp646) ; if (tmp648) { tmp639 = arg0 ; } else { tmp639 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_0, tmp640) ; ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_1, tmp647) ; } /* end of [if] */ } else { tmp650 = ats_select_mac(tmp640, atslab_0) ; tmp649 = atspre_isub (tmp650, 1) ; tmp651 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp651 ; tmp652 = atspre_igt (tmp649, 0) ; if (tmp652) { tmp654 = ats_select_mac(tmp640, atslab_1) ; tmp653.atslab_0 = tmp649 ; tmp653.atslab_1 = tmp654 ; tmp639 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_0, tmp653) ; ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_1, tmp641) ; } else { tmp639 = tmp641 ; } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (arg0 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 6220(line=249, offs=3) -- 6742(line=266, offs=31)") ; } __ats_lab_121_1: tmp639 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp639) ; } /* end of [aux_100] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_100_closure_type ; ats_ptr_type aux_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return aux_100 (((aux_100_closure_type*)cloptr)->closure_env_0, ((aux_100_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_100_closure_init (aux_100_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_100_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_100_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_100_closure_type *p_clo = ATS_MALLOC(sizeof(aux_100_closure_type)) ; aux_100_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 6088(line=242, offs=3) -- 6856(line=274, offs=4) */ ATSstaticdec() ats_bool_type funmset_remove_03844_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp638) ; ATSlocal (ats_int_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; ATSlocal (ats_bool_type, tmp657) ; __ats_lab_funmset_remove_03844_ats_ptr_type: /* ats_int_type tmp655 ; */ tmp655 = 0 ; tmp656 = aux_100 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp655)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp656 ; tmp657 = atspre_gt_int_int (tmp655, 0) ; if (tmp657) { tmp638 = ats_true_bool ; } else { tmp638 = ats_false_bool ; } /* end of [if] */ return (tmp638) ; } /* end of [funmset_remove_03844_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9335(line=397, offs=3) -- 9426(line=400, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_del (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp635) ; ATSlocal (ats_ptr_type, tmp636) ; ATSlocal (ats_bool_type, tmp637) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_del: /* ats_ptr_type tmp636 ; */ tmp636 = arg0 ; tmp637 = funmset_remove_03844_ats_ptr_type ((&tmp636), arg1, statmp561) ; tmp635 = tmp636 ; return (tmp635) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_del] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 6992(line=284, offs=5) -- 7658(line=305, offs=32) */ ATSstaticdec() ats_ptr_type aux_103 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (anairiats_rec_4, tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; ATSlocal (anairiats_rec_4, tmp663) ; ATSlocal (ats_ptr_type, tmp664) ; ATSlocal (ats_int_type, tmp665) ; ATSlocal (ats_ptr_type, tmp666) ; ATSlocal (ats_ptr_type, tmp667) ; ATSlocal (ats_bool_type, tmp668) ; ATSlocal (ats_ptr_type, tmp669) ; ATSlocal (ats_bool_type, tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; ATSlocal (anairiats_rec_4, tmp672) ; ATSlocal (ats_int_type, tmp673) ; ATSlocal (ats_int_type, tmp674) ; ATSlocal (ats_int_type, tmp675) ; ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; __ats_lab_aux_103: do { /* branch: __ats_lab_122 */ __ats_lab_122_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_125_0 ; } __ats_lab_122_1: tmp661 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp662 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp663 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp664 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp666 = ats_select_mac(tmp661, atslab_1) ; tmp667 = ats_select_mac(tmp663, atslab_1) ; tmp665 = compare_elt_elt_03834_ats_ptr_type (tmp666, tmp667, env0) ; tmp668 = atspre_gt_int_int (tmp665, 0) ; if (tmp668) { tmp669 = aux_103 (env0, tmp662, arg1) ; tmp660 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_0, tmp661) ; ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_1, tmp669) ; } else { tmp670 = atspre_lt_int_int (tmp665, 0) ; if (tmp670) { tmp671 = aux_103 (env0, arg0, tmp664) ; tmp660 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_0, tmp663) ; ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_1, tmp671) ; } else { tmp674 = ats_select_mac(tmp661, atslab_0) ; tmp675 = ats_select_mac(tmp663, atslab_0) ; tmp673 = atspre_iadd (tmp674, tmp675) ; tmp676 = ats_select_mac(tmp661, atslab_1) ; tmp672.atslab_0 = tmp673 ; tmp672.atslab_1 = tmp676 ; tmp677 = aux_103 (env0, tmp662, tmp664) ; tmp660 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_0, tmp672) ; ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_1, tmp677) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_124_1: tmp660 = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (arg0 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 7089(line=287, offs=3) -- 7658(line=305, offs=32)") ; } __ats_lab_125_1: tmp660 = arg1 ; break ; } while (0) ; return (tmp660) ; } /* end of [aux_103] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } aux_103_closure_type ; ats_ptr_type aux_103_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return aux_103 (((aux_103_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_103_closure_init (aux_103_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_103_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_103_closure_make (ats_clo_ref_type env0) { aux_103_closure_type *p_clo = ATS_MALLOC(sizeof(aux_103_closure_type)) ; aux_103_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 6935(line=280, offs=3) -- 7687(line=309, offs=4) */ ATSstaticdec() ats_ptr_type funmset_union_03845_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp659) ; __ats_lab_funmset_union_03845_ats_ptr_type: tmp659 = aux_103 (arg2, arg0, arg1) ; return (tmp659) ; } /* end of [funmset_union_03845_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9482(line=404, offs=3) -- 9530(line=404, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_union (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp658) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_union: tmp658 = funmset_union_03845_ats_ptr_type (arg0, arg1, statmp561) ; return (tmp658) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_union] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_108 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp682) ; ATSlocal (anairiats_rec_4, tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; ATSlocal (ats_ptr_type, tmp685) ; ATSlocal (ats_ptr_type, tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_ptr_type, tmp688) ; __ats_lab_loop_108: do { /* branch: __ats_lab_126 */ __ats_lab_126_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp683 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp684 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp685 = ((ats_ptr_type(*)(anairiats_rec_4, ats_ptr_type))arg1) (tmp683, arg3) ; tmp686 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp686, atslab_0, tmp685) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp686 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp687 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp684 ; arg1 = arg1 ; arg2 = tmp687 ; arg3 = arg3 ; goto __ats_lab_loop_108 ; // tail call break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_127_1: tmp688 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp688 ; break ; } while (0) ; return /* (tmp682) */ ; } /* end of [loop_108] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_anairiats_rec_4_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_ptr_type, tmp689) ; // ATSlocal_void (tmp690) ; __ats_lab_list_map_funenv_01412_anairiats_rec_4_ats_ptr_type: /* ats_ptr_type tmp689 ; */ /* tmp690 = */ loop_108 (arg0, arg1, (&tmp689), arg2) ; tmp681 = tmp689 ; return (tmp681) ; } /* end of [list_map_funenv_01412_anairiats_rec_4_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_anairiats_rec_4_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp680) ; __ats_lab_list_map_fun_01413_anairiats_rec_4_ats_ptr_type: tmp680 = list_map_funenv_01412_anairiats_rec_4_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp680) ; } /* end of [list_map_fun_01413_anairiats_rec_4_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11194(line=459, offs=29) -- 11212(line=459, offs=47) */ ATSstaticdec() ats_ptr_type __ats_fun_109 (anairiats_rec_4 arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp691) ; __ats_lab___ats_fun_109: tmp691 = ats_select_mac(arg0, atslab_1) ; return (tmp691) ; } /* end of [__ats_fun_109] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11094(line=455, offs=17) -- 11217(line=460, offs=4) */ ATSstaticdec() ats_ptr_type funmset_listize_03850_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp679) ; __ats_lab_funmset_listize_03850_ats_ptr_type: tmp679 = list_map_fun_01413_anairiats_rec_4_ats_ptr_type (arg0, &__ats_fun_109) ; return (tmp679) ; } /* end of [funmset_listize_03850_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9588(line=408, offs=19) -- 9620(line=408, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp678) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_listize: tmp678 = funmset_listize_03850_ats_ptr_type (arg0) ; return (tmp678) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11426(line=470, offs=7) -- 11630(line=476, offs=42) */ ATSstaticdec() ats_void_type loop1_112 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp713) ; /* tmp713 = */ loop1_112_0loop2_113 (0, arg0, arg1) ; return /* (tmp713) */ ; } /* end of [loop1_112] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11660(line=478, offs=7) -- 12034(line=491, offs=23) */ ATSstaticdec() ats_void_type loop2_113 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp714) ; /* tmp714 = */ loop1_112_0loop2_113 (1, arg0, arg1, arg2, arg3) ; return /* (tmp714) */ ; } /* end of [loop2_113] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11426(line=470, offs=7) -- 12034(line=491, offs=23) */ ATSstaticdec() ats_void_type loop1_112_0loop2_113 (ats_int_type arg0, ...) { /* local vardec */ ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ref_type, tmp696) ; ATSlocal (ats_int_type, tmp697) ; ATSlocal (ats_ptr_type, tmp698) ; ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_ref_type, tmp700) ; // ATSlocal_void (tmp701) ; ATSlocal (anairiats_rec_4, tmp702) ; ATSlocal (ats_ptr_type, tmp703) ; ATSlocal (ats_int_type, tmp704) ; ATSlocal (ats_ptr_type, tmp705) ; ATSlocal (ats_ptr_type, tmp706) ; // ATSlocal_void (tmp707) ; ATSlocal (ats_bool_type, tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; ATSlocal (ats_int_type, tmp711) ; // ATSlocal_void (tmp712) ; va_list funarg ; switch (arg0) { case 0: va_start(funarg, arg0) ; tmp695 = va_arg(funarg, ats_ptr_type) ; tmp696 = va_arg(funarg, ats_ref_type) ; va_end(funarg) ; goto __ats_lab_loop1_112 ; case 1: va_start(funarg, arg0) ; tmp697 = va_arg(funarg, ats_int_type) ; tmp698 = va_arg(funarg, ats_ptr_type) ; tmp699 = va_arg(funarg, ats_ptr_type) ; tmp700 = va_arg(funarg, ats_ref_type) ; va_end(funarg) ; goto __ats_lab_loop2_113 ; default: exit(1) ; /* deadcode */ } /* end of switch */ ATSlocal (va_list, arg1) ; va_start(arg1, arg0) ; __ats_lab_loop1_112: do { /* branch: __ats_lab_128 */ __ats_lab_128_0: if (tmp695 == (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp702 = ats_caselptrlab_mac(anairiats_sum_5, tmp695, atslab_0) ; tmp703 = ats_caselptrlab_mac(anairiats_sum_5, tmp695, atslab_1) ; tmp704 = ats_select_mac(tmp702, atslab_0) ; tmp705 = ats_select_mac(tmp702, atslab_1) ; tmp697 = tmp704 ; tmp698 = tmp705 ; tmp699 = tmp703 ; tmp700 = tmp696 ; goto __ats_lab_loop2_113 ; // tail call break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: // if (tmp695 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_129_1: tmp706 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp696) = tmp706 ; break ; } while (0) ; return /* tmp701 */ ; __ats_lab_loop2_113: tmp708 = atspre_igt (tmp697, 0) ; if (tmp708) { tmp709 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp709, atslab_0, tmp698) ; ats_ptrget_mac(ats_ptr_type, tmp700) = tmp709 ; if (ats_ptrget_mac(ats_ptr_type, tmp700) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11872(line=485, offs=11) -- 11902(line=485, offs=41)") ; } tmp710 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, tmp700), atslab_1) ; tmp711 = atspre_isub (tmp697, 1) ; tmp697 = tmp711 ; tmp698 = tmp698 ; tmp699 = tmp699 ; tmp700 = tmp710 ; goto __ats_lab_loop2_113 ; // tail call } else { tmp695 = tmp699 ; tmp696 = tmp700 ; goto __ats_lab_loop1_112 ; // tail call } /* end of [if] */ return /* tmp707 */ ; return /* (tmp712) */ ; } /* end of [loop1_112_0loop2_113] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11351(line=467, offs=18) -- 12149(line=498, offs=4) */ ATSstaticdec() ats_ptr_type funmset_mlistize_03851_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_ptr_type, tmp715) ; // ATSlocal_void (tmp716) ; __ats_lab_funmset_mlistize_03851_ats_ptr_type: /* ats_ptr_type tmp715 ; */ /* tmp716 = */ loop1_112 (arg0, (&tmp715)) ; tmp694 = tmp715 ; return (tmp694) ; } /* end of [funmset_mlistize_03851_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_116 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp719) ; ATSlocal (ats_ptr_type, tmp720) ; __ats_lab_loop_116: do { /* branch: __ats_lab_130 */ __ats_lab_130_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp720 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp720 ; goto __ats_lab_loop_116 ; // tail call break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_131_1: break ; } while (0) ; return /* (tmp719) */ ; } /* end of [loop_116] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp718) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp718 = */ loop_116 (arg0) ; return /* (tmp718) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9652(line=412, offs=3) -- 9814(line=419, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varmset (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; // ATSlocal_void (tmp717) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varmset: tmp693 = funmset_mlistize_03851_ats_ptr_type (arg1) ; /* tmp717 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, ats_castfn_mac(ats_ptr_type, tmp693)) ; /* tmp692 = */ list_vt_free_01499_ats_ptr_type (tmp693) ; return /* (tmp692) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varmset] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 10001(line=433, offs=1) -- 10086(line=436, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_117 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp721) ; __ats_lab___ats_fun_117: tmp721 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ; return (tmp721) ; } /* end of [__ats_fun_117] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_117_closure_type ; ats_int_type __ats_fun_117_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_117 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_117_closure_init (__ats_fun_117_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_117_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_117_closure_make () { __ats_fun_117_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_117_closure_type)) ; __ats_fun_117_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3005(line=103, offs=29) -- 3014(line=103, offs=38) */ ATSstaticdec() ats_ptr_type linmap_make_nil_03853_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp724) ; __ats_lab_linmap_make_nil_03853_: tmp724 = (ats_sum_ptr_type)0 ; return (tmp724) ; } /* end of [linmap_make_nil_03853_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 10214(line=446, offs=3) -- 10250(line=446, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_make_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp723) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_make_nil: tmp723 = linmap_make_nil_03853_ () ; return (tmp723) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_make_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 2008(line=61, offs=17) -- 2036(line=61, offs=45) */ ATSstaticdec() ats_int_type compare_key_key_03852_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp737) ; __ats_lab_compare_key_key_03852_ats_ptr_type: tmp737 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp737) ; } /* end of [compare_key_key_03852_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4545(line=168, offs=7) -- 5110(line=188, offs=6) */ ATSstaticdec() ats_ptr_type search_123 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp731) ; ATSlocal (ats_ptr_type, tmp732) ; ATSlocal (ats_ptr_type, tmp733) ; ATSlocal (ats_ptr_type, tmp734) ; ATSlocal (ats_ptr_type, tmp735) ; ATSlocal (ats_int_type, tmp736) ; ATSlocal (ats_bool_type, tmp738) ; ATSlocal (ats_ptr_type, tmp739) ; ATSlocal (ats_bool_type, tmp740) ; ATSlocal (ats_ptr_type, tmp741) ; __ats_lab_search_123: do { /* branch: __ats_lab_132 */ __ats_lab_132_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; } __ats_lab_132_1: tmp732 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp733 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp734 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp735 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ; tmp736 = compare_key_key_03852_ats_ptr_type (env0, tmp732, env1) ; do { /* branch: __ats_lab_133 */ __ats_lab_133_0: __ats_lab_133_1: tmp738 = atspre_lt_int_int (tmp736, 0) ; if (!tmp738) { goto __ats_lab_134_1 ; } tmp739 = ats_ptrget_mac(ats_ptr_type, tmp734) ; arg0 = tmp739 ; goto __ats_lab_search_123 ; // tail call break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: __ats_lab_134_1: tmp740 = atspre_gt_int_int (tmp736, 0) ; if (!tmp740) { goto __ats_lab_135_1 ; } tmp741 = ats_ptrget_mac(ats_ptr_type, tmp735) ; arg0 = tmp741 ; goto __ats_lab_search_123 ; // tail call break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: __ats_lab_135_1: tmp731 = tmp733 ; break ; } while (0) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: tmp731 = atspre_null_ptr ; break ; } while (0) ; return (tmp731) ; } /* end of [search_123] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } search_123_closure_type ; ats_ptr_type search_123_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return search_123 (((search_123_closure_type*)cloptr)->closure_env_0, ((search_123_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type search_123_closure_init (search_123_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&search_123_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type search_123_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { search_123_closure_type *p_clo = ATS_MALLOC(sizeof(search_123_closure_type)) ; search_123_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4505(line=167, offs=3) -- 5131(line=189, offs=2) */ ATSstaticdec() ats_ptr_type linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp730) ; __ats_lab_linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type: tmp730 = search_123 (arg1, arg2, arg0) ; return (tmp730) ; } /* end of [linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4021(line=145, offs=3) -- 4437(line=162, offs=4) */ ATSstaticdec() ats_bool_type linmap_search_03858_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp728) ; ATSlocal (ats_ptr_type, tmp729) ; ATSlocal (ats_bool_type, tmp742) ; ATSlocal (ats_ptr_type, tmp743) ; __ats_lab_linmap_search_03858_ats_ptr_type_2cats_ptr_type: tmp729 = linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2) ; tmp742 = atspre_pgt (tmp729, atspre_null_ptr) ; if (tmp742) { tmp743 = ats_ptrget_mac(ats_ptr_type, tmp729) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp743 ; tmp728 = ats_true_bool ; } else { tmp728 = ats_false_bool ; } /* end of [if] */ return (tmp728) ; } /* end of [linmap_search_03858_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 10286(line=450, offs=3) -- 10670(line=472, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_search (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; ATSlocal (ats_bool_type, tmp727) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_search: /* ats_ptr_type tmp726 ; */ tmp727 = linmap_search_03858_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp722, (&tmp726)) ; if (tmp727) { tmp725 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp725, atslab_0, tmp726) ; } else { tmp725 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp725) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_search] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3769(line=134, offs=24) -- 3876(line=135, offs=69) */ ATSstaticdec() ats_int_type avltree_height_04847_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp760) ; ATSlocal (ats_int_type, tmp761) ; __ats_lab_avltree_height_04847_ats_ptr_type_2cats_ptr_type: do { /* branch: __ats_lab_138 */ __ats_lab_138_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp761 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp760 = tmp761 ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_139_1: tmp760 = 0 ; break ; } while (0) ; return (tmp760) ; } /* end of [avltree_height_04847_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 7405(line=276, offs=32) -- 8902(line=325, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp770) ; ATSlocal (ats_ptr_type, tmp771) ; ATSlocal (ats_ptr_type, tmp772) ; ATSlocal (ats_ptr_type, tmp773) ; ATSlocal (ats_ptr_type, tmp774) ; ATSlocal (ats_int_type, tmp775) ; ATSlocal (ats_ptr_type, tmp776) ; ATSlocal (ats_int_type, tmp777) ; ATSlocal (ats_ptr_type, tmp778) ; ATSlocal (ats_bool_type, tmp779) ; ATSlocal (ats_int_type, tmp780) ; ATSlocal (ats_int_type, tmp781) ; ATSlocal (ats_ptr_type, tmp782) ; ATSlocal (ats_int_type, tmp783) ; ATSlocal (ats_int_type, tmp784) ; ATSlocal (ats_ptr_type, tmp785) ; ATSlocal (ats_ptr_type, tmp786) ; ATSlocal (ats_ptr_type, tmp787) ; ATSlocal (ats_ptr_type, tmp788) ; ATSlocal (ats_int_type, tmp789) ; ATSlocal (ats_ptr_type, tmp790) ; ATSlocal (ats_int_type, tmp791) ; ATSlocal (ats_ptr_type, tmp792) ; ATSlocal (ats_int_type, tmp793) ; ATSlocal (ats_int_type, tmp794) ; ATSlocal (ats_ptr_type, tmp795) ; ATSlocal (ats_int_type, tmp796) ; ATSlocal (ats_int_type, tmp797) ; ATSlocal (ats_ptr_type, tmp798) ; __ats_lab_avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type: tmp771 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp771 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp772 = &ats_caselptrlab_mac(anairiats_sum_6, tmp771, atslab_0) ; tmp773 = &ats_caselptrlab_mac(anairiats_sum_6, tmp771, atslab_3) ; tmp774 = &ats_caselptrlab_mac(anairiats_sum_6, tmp771, atslab_4) ; tmp776 = ats_ptrget_mac(ats_ptr_type, tmp773) ; tmp775 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp776) ; tmp778 = ats_ptrget_mac(ats_ptr_type, tmp774) ; tmp777 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp778) ; tmp780 = atspre_iadd (tmp775, 0) ; tmp779 = atspre_igte (tmp780, tmp777) ; if (tmp779) { tmp781 = atspre_iadd (tmp777, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp781 ; tmp782 = ats_ptrget_mac(ats_ptr_type, tmp774) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp782 ; tmp784 = atspre_imax (tmp775, tmp781) ; tmp783 = atspre_iadd (1, tmp784) ; ats_ptrget_mac(ats_int_type, tmp772) = tmp783 ; ats_ptrget_mac(ats_ptr_type, tmp774) = arg5 ; tmp770 = tmp771 ; } else { tmp785 = ats_ptrget_mac(ats_ptr_type, tmp774) ; // if (tmp785 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp786 = &ats_caselptrlab_mac(anairiats_sum_6, tmp785, atslab_0) ; tmp787 = &ats_caselptrlab_mac(anairiats_sum_6, tmp785, atslab_3) ; tmp788 = &ats_caselptrlab_mac(anairiats_sum_6, tmp785, atslab_4) ; tmp790 = ats_ptrget_mac(ats_ptr_type, tmp787) ; tmp789 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp790) ; tmp792 = ats_ptrget_mac(ats_ptr_type, tmp788) ; tmp791 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp792) ; tmp794 = atspre_imax (tmp791, arg3) ; tmp793 = atspre_iadd (1, tmp794) ; ats_ptrget_mac(ats_int_type, arg0) = tmp793 ; tmp795 = ats_ptrget_mac(ats_ptr_type, tmp788) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp795 ; tmp797 = atspre_imax (tmp775, tmp789) ; tmp796 = atspre_iadd (1, tmp797) ; ats_ptrget_mac(ats_int_type, tmp772) = tmp796 ; tmp798 = ats_ptrget_mac(ats_ptr_type, tmp787) ; ats_ptrget_mac(ats_ptr_type, tmp774) = tmp798 ; ats_ptrget_mac(ats_int_type, tmp786) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp787) = tmp771 ; ats_ptrget_mac(ats_ptr_type, tmp788) = arg5 ; tmp770 = tmp785 ; } /* end of [if] */ return (tmp770) ; } /* end of [avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5694(line=219, offs=32) -- 7221(line=268, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp810) ; ATSlocal (ats_ptr_type, tmp811) ; ATSlocal (ats_ptr_type, tmp812) ; ATSlocal (ats_ptr_type, tmp813) ; ATSlocal (ats_ptr_type, tmp814) ; ATSlocal (ats_int_type, tmp815) ; ATSlocal (ats_ptr_type, tmp816) ; ATSlocal (ats_int_type, tmp817) ; ATSlocal (ats_ptr_type, tmp818) ; ATSlocal (ats_bool_type, tmp819) ; ATSlocal (ats_int_type, tmp820) ; ATSlocal (ats_int_type, tmp821) ; ATSlocal (ats_ptr_type, tmp822) ; ATSlocal (ats_int_type, tmp823) ; ATSlocal (ats_int_type, tmp824) ; ATSlocal (ats_ptr_type, tmp825) ; ATSlocal (ats_ptr_type, tmp826) ; ATSlocal (ats_ptr_type, tmp827) ; ATSlocal (ats_ptr_type, tmp828) ; ATSlocal (ats_int_type, tmp829) ; ATSlocal (ats_ptr_type, tmp830) ; ATSlocal (ats_int_type, tmp831) ; ATSlocal (ats_ptr_type, tmp832) ; ATSlocal (ats_int_type, tmp833) ; ATSlocal (ats_int_type, tmp834) ; ATSlocal (ats_ptr_type, tmp835) ; ATSlocal (ats_int_type, tmp836) ; ATSlocal (ats_int_type, tmp837) ; ATSlocal (ats_ptr_type, tmp838) ; __ats_lab_avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type: tmp811 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp811 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp812 = &ats_caselptrlab_mac(anairiats_sum_6, tmp811, atslab_0) ; tmp813 = &ats_caselptrlab_mac(anairiats_sum_6, tmp811, atslab_3) ; tmp814 = &ats_caselptrlab_mac(anairiats_sum_6, tmp811, atslab_4) ; tmp816 = ats_ptrget_mac(ats_ptr_type, tmp813) ; tmp815 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp816) ; tmp818 = ats_ptrget_mac(ats_ptr_type, tmp814) ; tmp817 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp818) ; tmp820 = atspre_iadd (tmp817, 0) ; tmp819 = atspre_ilte (tmp815, tmp820) ; if (tmp819) { tmp821 = atspre_iadd (tmp815, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp821 ; tmp822 = ats_ptrget_mac(ats_ptr_type, tmp813) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp822 ; tmp824 = atspre_imax (tmp821, tmp817) ; tmp823 = atspre_iadd (1, tmp824) ; ats_ptrget_mac(ats_int_type, tmp812) = tmp823 ; ats_ptrget_mac(ats_ptr_type, tmp813) = arg5 ; tmp810 = tmp811 ; } else { tmp825 = ats_ptrget_mac(ats_ptr_type, tmp813) ; // if (tmp825 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp826 = &ats_caselptrlab_mac(anairiats_sum_6, tmp825, atslab_0) ; tmp827 = &ats_caselptrlab_mac(anairiats_sum_6, tmp825, atslab_3) ; tmp828 = &ats_caselptrlab_mac(anairiats_sum_6, tmp825, atslab_4) ; tmp830 = ats_ptrget_mac(ats_ptr_type, tmp827) ; tmp829 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp830) ; tmp832 = ats_ptrget_mac(ats_ptr_type, tmp828) ; tmp831 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp832) ; tmp834 = atspre_imax (arg1, tmp829) ; tmp833 = atspre_iadd (1, tmp834) ; ats_ptrget_mac(ats_int_type, arg0) = tmp833 ; tmp835 = ats_ptrget_mac(ats_ptr_type, tmp827) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp835 ; tmp837 = atspre_imax (tmp831, tmp817) ; tmp836 = atspre_iadd (1, tmp837) ; ats_ptrget_mac(ats_int_type, tmp812) = tmp836 ; tmp838 = ats_ptrget_mac(ats_ptr_type, tmp828) ; ats_ptrget_mac(ats_ptr_type, tmp813) = tmp838 ; ats_ptrget_mac(ats_int_type, tmp826) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp827) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp828) = tmp811 ; tmp810 = tmp825 ; } /* end of [if] */ return (tmp810) ; } /* end of [avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 9023(line=333, offs=5) -- 11023(line=394, offs=4) */ ATSstaticdec() ats_bool_type insert_127 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp749) ; ATSlocal (ats_ptr_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; ATSlocal (ats_ptr_type, tmp752) ; ATSlocal (ats_ptr_type, tmp753) ; ATSlocal (ats_ptr_type, tmp754) ; ATSlocal (ats_int_type, tmp755) ; ATSlocal (ats_ptr_type, tmp756) ; ATSlocal (ats_bool_type, tmp757) ; ATSlocal (ats_bool_type, tmp758) ; ATSlocal (ats_int_type, tmp759) ; ATSlocal (ats_ptr_type, tmp762) ; ATSlocal (ats_int_type, tmp763) ; ATSlocal (ats_ptr_type, tmp764) ; ATSlocal (ats_bool_type, tmp765) ; ATSlocal (ats_int_type, tmp766) ; ATSlocal (ats_int_type, tmp767) ; ATSlocal (ats_int_type, tmp768) ; ATSlocal (ats_ptr_type, tmp769) ; ATSlocal (ats_bool_type, tmp799) ; ATSlocal (ats_bool_type, tmp800) ; ATSlocal (ats_int_type, tmp801) ; ATSlocal (ats_ptr_type, tmp802) ; ATSlocal (ats_int_type, tmp803) ; ATSlocal (ats_ptr_type, tmp804) ; ATSlocal (ats_bool_type, tmp805) ; ATSlocal (ats_int_type, tmp806) ; ATSlocal (ats_int_type, tmp807) ; ATSlocal (ats_int_type, tmp808) ; ATSlocal (ats_ptr_type, tmp809) ; ATSlocal (ats_ptr_type, tmp839) ; ATSlocal (ats_ptr_type, tmp840) ; ATSlocal (ats_ptr_type, tmp841) ; ATSlocal (ats_ptr_type, tmp842) ; __ats_lab_insert_127: do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_137_1: tmp750 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp751 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp752 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp753 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp754 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp756 = ats_ptrget_mac(ats_ptr_type, tmp751) ; tmp755 = compare_key_key_03852_ats_ptr_type (env0, tmp756, env1) ; tmp757 = atspre_lt_int_int (tmp755, 0) ; if (tmp757) { tmp758 = insert_127 (env0, env1, tmp753, arg1, arg2) ; tmp762 = ats_ptrget_mac(ats_ptr_type, tmp753) ; tmp759 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp762) ; tmp764 = ats_ptrget_mac(ats_ptr_type, tmp754) ; tmp763 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp764) ; tmp766 = atspre_isub (tmp759, tmp763) ; tmp765 = atspre_ilte (tmp766, 1) ; if (tmp765) { tmp768 = atspre_imax (tmp759, tmp763) ; tmp767 = atspre_iadd (1, tmp768) ; ats_ptrget_mac(ats_int_type, tmp750) = tmp767 ; tmp749 = tmp758 ; } else { tmp769 = avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (tmp750, tmp759, tmp753, tmp763, tmp754, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp769 ; tmp749 = tmp758 ; } /* end of [if] */ } else { tmp799 = atspre_gt_int_int (tmp755, 0) ; if (tmp799) { tmp800 = insert_127 (env0, env1, tmp754, arg1, arg2) ; tmp802 = ats_ptrget_mac(ats_ptr_type, tmp753) ; tmp801 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp802) ; tmp804 = ats_ptrget_mac(ats_ptr_type, tmp754) ; tmp803 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp804) ; tmp806 = atspre_isub (tmp803, tmp801) ; tmp805 = atspre_ilte (tmp806, 1) ; if (tmp805) { tmp808 = atspre_imax (tmp801, tmp803) ; tmp807 = atspre_iadd (1, tmp808) ; ats_ptrget_mac(ats_int_type, tmp750) = tmp807 ; tmp749 = tmp800 ; } else { tmp809 = avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type (tmp750, tmp801, tmp753, tmp803, tmp754, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp809 ; tmp749 = tmp800 ; } /* end of [if] */ } else { tmp839 = ats_ptrget_mac(ats_ptr_type, tmp752) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp839 ; ats_ptrget_mac(ats_ptr_type, tmp752) = arg1 ; tmp749 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp841 = (ats_sum_ptr_type)0 ; tmp842 = (ats_sum_ptr_type)0 ; tmp840 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_3, tmp841) ; ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_4, tmp842) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp840 ; tmp749 = ats_false_bool ; break ; } while (0) ; return (tmp749) ; } /* end of [insert_127] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_127_closure_type ; ats_bool_type insert_127_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { return insert_127 (((insert_127_closure_type*)cloptr)->closure_env_0, ((insert_127_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type insert_127_closure_init (insert_127_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_127_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_127_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_127_closure_type *p_clo = ATS_MALLOC(sizeof(insert_127_closure_type)) ; insert_127_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 8988(line=331, offs=3) -- 11078(line=400, offs=4) */ ATSstaticdec() ats_bool_type linmap_insert_03861_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp748) ; __ats_lab_linmap_insert_03861_ats_ptr_type_2cats_ptr_type: tmp748 = insert_127 (arg1, arg3, arg0, arg2, arg4) ; return (tmp748) ; } /* end of [linmap_insert_03861_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 10741(line=476, offs=3) -- 11070(line=496, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp744) ; ATSlocal (ats_ptr_type, tmp745) ; ATSlocal (ats_ptr_type, tmp746) ; ATSlocal (ats_bool_type, tmp747) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_insert: tmp745 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; /* ats_ptr_type tmp746 ; */ tmp747 = linmap_insert_03861_ats_ptr_type_2cats_ptr_type (arg0, arg1, tmp745, statmp722, (&tmp746)) ; return /* (tmp744) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_insert] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 11578(line=417, offs=35) -- 12629(line=451, offs=4) */ ATSstaticdec() ats_ptr_type avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp879) ; ATSlocal (ats_ptr_type, tmp880) ; ATSlocal (ats_ptr_type, tmp881) ; ATSlocal (ats_ptr_type, tmp882) ; ATSlocal (ats_ptr_type, tmp883) ; ATSlocal (ats_ptr_type, tmp884) ; ATSlocal (ats_int_type, tmp885) ; ATSlocal (ats_ptr_type, tmp886) ; ATSlocal (ats_int_type, tmp887) ; ATSlocal (ats_ptr_type, tmp888) ; ATSlocal (ats_bool_type, tmp889) ; ATSlocal (ats_int_type, tmp890) ; ATSlocal (ats_int_type, tmp891) ; ATSlocal (ats_int_type, tmp892) ; ATSlocal (ats_ptr_type, tmp893) ; ATSlocal (ats_ptr_type, tmp894) ; ATSlocal (ats_ptr_type, tmp895) ; __ats_lab_avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type: // if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp880 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp881 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp882 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp883 = ats_ptrget_mac(ats_ptr_type, tmp881) ; do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (tmp883 == (ats_sum_ptr_type)0) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp884 = avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type (tmp881) ; tmp886 = ats_ptrget_mac(ats_ptr_type, tmp881) ; tmp885 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp886) ; tmp888 = ats_ptrget_mac(ats_ptr_type, tmp882) ; tmp887 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp888) ; tmp890 = atspre_isub (tmp887, tmp885) ; tmp889 = atspre_ilte (tmp890, 1) ; if (tmp889) { tmp892 = atspre_imax (tmp885, tmp887) ; tmp891 = atspre_iadd (1, tmp892) ; ats_ptrget_mac(ats_int_type, tmp880) = tmp891 ; tmp879 = tmp884 ; } else { tmp893 = avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type (tmp880, tmp885, tmp881, tmp887, tmp882, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp893 ; tmp879 = tmp884 ; } /* end of [if] */ break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: // if (tmp883 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_147_1: tmp894 = ats_ptrget_mac(ats_ptr_type, tmp882) ; tmp895 = ats_ptrget_mac(ats_ptr_type, arg0) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp894 ; tmp879 = ats_castfn_mac(ats_ptr_type, tmp895) ; break ; } while (0) ; return (tmp879) ; } /* end of [avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 13012(line=467, offs=7) -- 16649(line=558, offs=6) */ ATSstaticdec() ats_bool_type takeout_134 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp847) ; ATSlocal (ats_ptr_type, tmp848) ; ATSlocal (ats_ptr_type, tmp849) ; ATSlocal (ats_ptr_type, tmp850) ; ATSlocal (ats_ptr_type, tmp851) ; ATSlocal (ats_ptr_type, tmp852) ; ATSlocal (ats_int_type, tmp853) ; ATSlocal (ats_ptr_type, tmp854) ; ATSlocal (ats_bool_type, tmp855) ; ATSlocal (ats_bool_type, tmp856) ; ATSlocal (ats_int_type, tmp857) ; ATSlocal (ats_ptr_type, tmp858) ; ATSlocal (ats_int_type, tmp859) ; ATSlocal (ats_ptr_type, tmp860) ; ATSlocal (ats_bool_type, tmp861) ; ATSlocal (ats_int_type, tmp862) ; ATSlocal (ats_ptr_type, tmp863) ; ATSlocal (ats_bool_type, tmp864) ; ATSlocal (ats_bool_type, tmp865) ; ATSlocal (ats_int_type, tmp866) ; ATSlocal (ats_ptr_type, tmp867) ; ATSlocal (ats_int_type, tmp868) ; ATSlocal (ats_ptr_type, tmp869) ; ATSlocal (ats_bool_type, tmp870) ; ATSlocal (ats_int_type, tmp871) ; ATSlocal (ats_ptr_type, tmp872) ; ATSlocal (ats_bool_type, tmp874) ; ATSlocal (ats_ptr_type, tmp875) ; ATSlocal (ats_ptr_type, tmp876) ; ATSlocal (ats_ptr_type, tmp877) ; ATSlocal (ats_ptr_type, tmp878) ; ATSlocal (ats_ptr_type, tmp896) ; ATSlocal (ats_ptr_type, tmp897) ; ATSlocal (ats_ptr_type, tmp898) ; ATSlocal (ats_int_type, tmp899) ; ATSlocal (ats_int_type, tmp900) ; ATSlocal (ats_bool_type, tmp901) ; ATSlocal (ats_int_type, tmp902) ; ATSlocal (ats_int_type, tmp903) ; ATSlocal (ats_int_type, tmp904) ; ATSlocal (ats_ptr_type, tmp905) ; __ats_lab_takeout_134: do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; } __ats_lab_141_1: tmp848 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp849 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp850 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp851 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp852 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp854 = ats_ptrget_mac(ats_ptr_type, tmp849) ; tmp853 = compare_key_key_03852_ats_ptr_type (env0, tmp854, env1) ; do { /* branch: __ats_lab_142 */ __ats_lab_142_0: __ats_lab_142_1: tmp855 = atspre_lt_int_int (tmp853, 0) ; if (!tmp855) { goto __ats_lab_143_1 ; } tmp856 = takeout_134 (env0, env1, tmp851, arg1) ; tmp858 = ats_ptrget_mac(ats_ptr_type, tmp851) ; tmp857 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp858) ; tmp860 = ats_ptrget_mac(ats_ptr_type, tmp852) ; tmp859 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp860) ; tmp862 = atspre_isub (tmp859, tmp857) ; tmp861 = atspre_ilte (tmp862, 1) ; if (tmp861) { tmp847 = tmp856 ; } else { tmp863 = avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type (tmp848, tmp857, tmp851, tmp859, tmp852, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp863 ; tmp847 = tmp856 ; } /* end of [if] */ break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: __ats_lab_143_1: tmp864 = atspre_gt_int_int (tmp853, 0) ; if (!tmp864) { goto __ats_lab_144_1 ; } tmp865 = takeout_134 (env0, env1, tmp852, arg1) ; tmp867 = ats_ptrget_mac(ats_ptr_type, tmp851) ; tmp866 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp867) ; tmp869 = ats_ptrget_mac(ats_ptr_type, tmp852) ; tmp868 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp869) ; tmp871 = atspre_isub (tmp866, tmp868) ; tmp870 = atspre_ilte (tmp871, 1) ; if (tmp870) { tmp847 = tmp865 ; } else { tmp872 = avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (tmp848, tmp866, tmp851, tmp868, tmp852, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp872 ; tmp847 = tmp865 ; } /* end of [if] */ break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: __ats_lab_144_1: tmp874 = atspre_pgt (arg1, atspre_null_ptr) ; if (tmp874) { tmp875 = ats_ptrget_mac(ats_ptr_type, tmp850) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp875 ; } else { /* empty */ } /* end of [if] */ /* ats_ptr_type tmp876 ; */ tmp876 = ats_ptrget_mac(ats_ptr_type, tmp851) ; /* ats_ptr_type tmp877 ; */ tmp877 = ats_ptrget_mac(ats_ptr_type, tmp852) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; do { /* branch: __ats_lab_145 */ __ats_lab_145_0: if (tmp877 == (ats_sum_ptr_type)0) { goto __ats_lab_148_0 ; } __ats_lab_145_1: tmp878 = avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type ((&tmp877)) ; if (tmp878 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 15639(line=535, offs=21) -- 15683(line=535, offs=65)") ; } tmp896 = &ats_caselptrlab_mac(anairiats_sum_6, tmp878, atslab_0) ; tmp897 = &ats_caselptrlab_mac(anairiats_sum_6, tmp878, atslab_3) ; tmp898 = &ats_caselptrlab_mac(anairiats_sum_6, tmp878, atslab_4) ; tmp899 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp876) ; tmp900 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp877) ; ats_ptrget_mac(ats_ptr_type, tmp897) = tmp876 ; ats_ptrget_mac(ats_ptr_type, tmp898) = tmp877 ; tmp902 = atspre_isub (tmp899, tmp900) ; tmp901 = atspre_ilte (tmp902, 1) ; if (tmp901) { tmp904 = atspre_imax (tmp899, tmp900) ; tmp903 = atspre_iadd (1, tmp904) ; ats_ptrget_mac(ats_int_type, tmp896) = tmp903 ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp878 ; tmp847 = ats_true_bool ; } else { tmp905 = avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (tmp896, tmp899, tmp897, tmp900, tmp898, tmp878) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp905 ; tmp847 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: // if (tmp877 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_148_1: ats_ptrget_mac(ats_ptr_type, arg0) = tmp876 ; tmp847 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_149_1: tmp847 = ats_false_bool ; break ; } while (0) ; return (tmp847) ; } /* end of [takeout_134] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } takeout_134_closure_type ; ats_bool_type takeout_134_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return takeout_134 (((takeout_134_closure_type*)cloptr)->closure_env_0, ((takeout_134_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type takeout_134_closure_init (takeout_134_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&takeout_134_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type takeout_134_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { takeout_134_closure_type *p_clo = ATS_MALLOC(sizeof(takeout_134_closure_type)) ; takeout_134_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 12957(line=466, offs=3) -- 16671(line=559, offs=2) */ ATSstaticdec() ats_bool_type linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp846) ; __ats_lab_linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type: tmp846 = takeout_134 (arg1, arg2, arg0, arg3) ; return (tmp846) ; } /* end of [linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17132(line=576, offs=15) -- 17193(line=576, offs=76) */ ATSstaticdec() ats_bool_type linmap_remove_03863_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp845) ; __ats_lab_linmap_remove_03863_ats_ptr_type_2cats_ptr_type: tmp845 = linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, atspre_null_ptr) ; return (tmp845) ; } /* end of [linmap_remove_03863_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 11138(line=500, offs=3) -- 11240(line=504, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_remove (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp843) ; ATSlocal (ats_bool_type, tmp844) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_remove: tmp844 = linmap_remove_03863_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp722) ; return /* (tmp843) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_remove] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21260(line=724, offs=7) -- 21616(line=736, offs=31) */ ATSstaticdec() ats_ptr_type aux_138 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp908) ; ATSlocal (ats_ptr_type, tmp909) ; ATSlocal (ats_ptr_type, tmp910) ; ATSlocal (ats_ptr_type, tmp911) ; ATSlocal (ats_ptr_type, tmp912) ; ATSlocal (ats_ptr_type, tmp913) ; ATSlocal (ats_ptr_type, tmp914) ; ATSlocal (ats_ptr_type, tmp915) ; ATSlocal (anairiats_rec_8, tmp916) ; ATSlocal (ats_ptr_type, tmp917) ; __ats_lab_aux_138: do { /* branch: __ats_lab_150 */ __ats_lab_150_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp909 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp910 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp911 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp912 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ; tmp914 = ats_ptrget_mac(ats_ptr_type, tmp912) ; tmp913 = aux_138 (tmp914, arg1) ; tmp916.atslab_0 = tmp909 ; tmp916.atslab_1 = tmp910 ; tmp915 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp915, atslab_0, tmp916) ; ats_selptrset_mac(anairiats_sum_9, tmp915, atslab_1, tmp913) ; tmp917 = ats_ptrget_mac(ats_ptr_type, tmp911) ; arg0 = tmp917 ; arg1 = tmp915 ; goto __ats_lab_aux_138 ; // tail call break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_151_1: tmp908 = arg1 ; break ; } while (0) ; return (tmp908) ; } /* end of [aux_138] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21202(line=722, offs=16) -- 21664(line=740, offs=4) */ ATSstaticdec() ats_ptr_type linmap_listize_03872_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp907) ; ATSlocal (ats_ptr_type, tmp918) ; __ats_lab_linmap_listize_03872_ats_ptr_type_2cats_ptr_type: tmp918 = (ats_sum_ptr_type)0 ; tmp907 = aux_138 (arg0, tmp918) ; return (tmp907) ; } /* end of [linmap_listize_03872_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 11307(line=507, offs=22) -- 11352(line=507, offs=67) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp906) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_listize: tmp906 = linmap_listize_03872_ats_ptr_type_2cats_ptr_type (arg0) ; return (tmp906) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_listize] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp75, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp561, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp722, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp75 = __ats_fun_29_closure_make () ; statmp561 = __ats_fun_81_closure_make () ; statmp722 = __ats_fun_117_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_svar_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_decl_dats.c0000644000175000017500000050276213431250607023173 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* include some .h files */ #ifndef _ATS_HEADER_NONE #include "ats_config.h" #include "ats_basics.h" #include "ats_types.h" #include "ats_exception.h" #include "ats_memory.h" #endif /* _ATS_HEADER_NONE */ /* include some .cats files */ #ifndef _ATS_PRELUDE_NONE #include "prelude/CATS/basics.cats" #include "prelude/CATS/bool.cats" #include "prelude/CATS/char.cats" #include "prelude/CATS/byte.cats" #include "prelude/CATS/float.cats" #include "prelude/CATS/integer.cats" #include "prelude/CATS/integer_ptr.cats" #include "prelude/CATS/integer_fixed.cats" #include "prelude/CATS/sizetype.cats" #include "prelude/CATS/pointer.cats" #include "prelude/CATS/reference.cats" #include "prelude/CATS/string.cats" #include "prelude/CATS/lazy.cats" #include "prelude/CATS/lazy_vt.cats" #include "prelude/CATS/printf.cats" #include "prelude/CATS/list.cats" #include "prelude/CATS/option.cats" #include "prelude/CATS/array.cats" #include "prelude/CATS/matrix.cats" #endif /* _ATS_PRELUDE_NONE */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_7 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ABSTYPE_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ASSUME_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REASSUME_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CLASSDEC_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATASORT_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATATYPE_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXCEPTION_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTERN_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTYPE_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTVAR_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIXITY_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FUN_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPLEMENT_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LOCAL_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MACDEF_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONFIX_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STACST_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STADEF_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STATIC_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SORTDEF_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMELIM_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMINTR_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMLOAD_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TKINDEF_76) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPEDEF_79) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAL_80) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAR_81) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHERE_83) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIF_121) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFDEF_122) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFNDEF_123) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIF_125) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFDEF_126) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFNDEF_127) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELSE_128) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPENDIF_129) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPERROR_130) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRERR_131) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRINT_132) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPASSERT_133) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPUNDEF_134) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDEFINE_135) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPINCLUDE_136) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPSTALOAD_137) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDYNLOAD_138) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPREQUIRE_139) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRAGMA_140) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN2_141) ; 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_dlr_147) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STRING_154) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LPAREN_157) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACKET_159) ; 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_EXTCODE_173) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDfname_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDnspace_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_stai0de_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_impqi0de_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_86) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_sta_87) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_dyn_88) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guad0ecl_89) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_staloadarg_90) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT2_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT3_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, 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_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_lrbrackets) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_dotlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sing) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtdef_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacst_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacon_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0kindef_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0expdef_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0aspdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_none) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_some) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_svararglst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_some) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acdef_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0aldec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0undec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0ardec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mpdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fixity) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_nonfix) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_include) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symintr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symelim) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpdef) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpundef) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_assert) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_error) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_prerr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_print) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_codegen2) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datsrts) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_srtdefs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacons) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacsts) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_tkindef) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_sexpdefs) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_saspdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_reassume) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_exndecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_none) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_some) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_macdefs) (ats_int_type, ats_bool_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_overload) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_classdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype2) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar2) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extcode) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_impdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fundecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_valdecs) (ats_ptr_type, ats_bool_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_vardecs) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_declist) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_fname) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_nspace) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_some_arg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_require) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dynload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_extern) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_static) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_local) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_guadecl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_one) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_two) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_cons) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC_test) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WITH) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WITH) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BANG) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT_test) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPTHEN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPENDIF) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__popt_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun) (ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0nt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0deseq1) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0rec) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colonwith) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dcstkind) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_extnamopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xpseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtid) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0marg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0msrt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtconseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sqi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtext) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqs0expopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0marg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0margseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndec) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atconseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstarg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0vararg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_witht0ype) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmps0expseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg1) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg2) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmpqi0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqd0expopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtdecseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtdefseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taconseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tacstseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0expdefseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndecseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atdecseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_m0acdef) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstdecseq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ym) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ymseq1) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_m0acarg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_stai0de) (ats_ref_type, ats_int_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type p_d0atsrtdec_0 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_s0rtdef_2 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type loop_6 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_s0tacon_4 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_s0tacst_8 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_t0kindef_10 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_s0expdef_11 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_s0aspdec_13 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_d0atdec_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_d0cstdec_17 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_staloadarg_24 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_staload_tok_25 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_srpifkind_26 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_srpelifkind_27 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_d0ecl_tok_28 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_32 (ats_ptr_type env0, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) ; static ats_clo_ptr_type loop_32_closure_make (ats_ptr_type env0) ; static ats_void_type loop_32_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) ; static ats_ptr_type guad0ecl_fun_33 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_d0ecl_sta_tok_34 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_v0aldec_36 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_f0undec_37 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_v0ardec_38 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0mpsvararg_39 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0mparg_40 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_impqi0de_41 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_i0mpdec_42 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_d0ecl_dyn_tok_43 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 1812(line=65, offs=1) -- 2208(line=79, offs=4) */ ATSstaticdec() ats_ptr_type p_d0atsrtdec_0 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_bool_type, tmp6) ; __ats_lab_p_d0atsrtdec_0: tmp1 = ats_ptrget_mac(ats_int_type, arg2) ; tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtid, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtconseq) ; // tmp3 = ats_caselptrlab_mac(anairiats_sum_1, tmp2, atslab_0) ; tmp4 = ats_caselptrlab_mac(anairiats_sum_1, tmp2, atslab_1) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_1, tmp2, atslab_2) ; ATS_FREE(tmp2) ; tmp6 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp1) ; if (tmp6) { tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtdec_make (tmp3, tmp4, tmp5) ; } else { tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp0) ; } /* end of [p_d0atsrtdec_0] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 2263(line=83, offs=3) -- 2356(line=87, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtdecseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtdecseq: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, arg1, arg2, &p_d0atsrtdec_0) ; tmp7 = ats_castfn_mac(ats_ptr_type, tmp8) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtdecseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 2447(line=95, offs=1) -- 2818(line=109, offs=4) */ ATSstaticdec() ats_ptr_type p_s0rtdef_2 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_bool_type, tmp14) ; __ats_lab_p_s0rtdef_2: tmp10 = ats_ptrget_mac(ats_int_type, arg2) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtid, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtext) ; // tmp12 = ats_caselptrlab_mac(anairiats_sum_1, tmp11, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_1, tmp11, atslab_2) ; ATS_FREE(tmp11) ; tmp14 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp10) ; if (tmp14) { tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtdef_make (tmp12, tmp13) ; } else { tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp9) ; } /* end of [p_s0rtdef_2] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 2867(line=113, offs=3) -- 2957(line=117, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtdefseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtdefseq: tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, arg1, arg2, &p_s0rtdef_2) ; tmp15 = ats_castfn_mac(ats_ptr_type, tmp16) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtdefseq] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_6 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_loop_6: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp28 ; goto __ats_lab_loop_6 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp27) */ ; } /* end of [loop_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp26) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp26 = */ loop_6 (arg0) ; return /* (tmp26) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 3056(line=125, offs=1) -- 3601(line=148, offs=4) */ ATSstaticdec() ats_ptr_type p_s0tacon_4 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_uint_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_bool_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; // ATSlocal_void (tmp25) ; __ats_lab_p_s0tacon_4: tmp18 = ats_ptrget_mac(ats_int_type, arg2) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, arg1, arg2) ; tmp22 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp18) ; if (tmp22) { tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0msrt) ; } else { tmp21 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqs0expopt, tmp18) ; tmp24 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp18) ; if (tmp24) { tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacon_make (tmp20, ats_castfn_mac(ats_ptr_type, tmp21), tmp23) ; } else { /* tmp25 = */ list_vt_free_01499_ats_ptr_type (tmp21) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp19) ; } /* end of [if] */ return (tmp17) ; } /* end of [p_s0tacon_4] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 3650(line=152, offs=3) -- 3740(line=156, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taconseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taconseq: tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, arg1, arg2, &p_s0tacon_4) ; tmp29 = ats_castfn_mac(ats_ptr_type, tmp30) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taconseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 3847(line=164, offs=1) -- 4518(line=191, offs=4) */ ATSstaticdec() ats_ptr_type p_s0tacst_8 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_int_type, tmp32) ; ATSlocal (ats_uint_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_bool_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; // ATSlocal_void (tmp41) ; __ats_lab_p_s0tacst_8: tmp32 = ats_ptrget_mac(ats_int_type, arg2) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, arg1, arg2) ; tmp36 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp32) ; if (tmp36) { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0msrt) ; } else { tmp35 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON, tmp32) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt, tmp32) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_extnamopt, tmp32) ; tmp40 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp32) ; if (tmp40) { tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0tacst_make (tmp34, ats_castfn_mac(ats_ptr_type, tmp35), tmp38, tmp39) ; } else { /* tmp41 = */ list_vt_free_01499_ats_ptr_type (tmp35) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp33) ; } /* end of [if] */ return (tmp31) ; } /* end of [p_s0tacst_8] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 4567(line=195, offs=3) -- 4657(line=199, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tacstseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tacstseq: tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, arg1, arg2, &p_s0tacst_8) ; tmp42 = ats_castfn_mac(ats_ptr_type, tmp43) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tacstseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 5386(line=245, offs=1) -- 5767(line=261, offs=4) */ ATSstaticdec() ats_ptr_type p_t0kindef_10 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_int_type, tmp45) ; ATSlocal (ats_uint_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_bool_type, tmp50) ; __ats_lab_p_t0kindef_10: tmp45 = ats_ptrget_mac(ats_int_type, arg2) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, arg1, arg2) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, tmp45) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring, tmp45) ; tmp50 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp45) ; if (tmp50) { tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__t0kindef_make (tmp47, tmp49) ; } else { tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp46) ; } /* end of [if] */ return (tmp44) ; } /* end of [p_t0kindef_10] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 5874(line=270, offs=1) -- 6562(line=303, offs=4) */ ATSstaticdec() ats_ptr_type p_s0expdef_11 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_uint_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_bool_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_bool_type, tmp60) ; // ATSlocal_void (tmp61) ; __ats_lab_p_s0expdef_11: tmp52 = ats_ptrget_mac(ats_int_type, arg2) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, arg1, arg2) ; tmp56 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp52) ; if (tmp56) { tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0marg) ; } else { tmp55 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt, tmp52) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, tmp52) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp52) ; tmp60 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp52) ; if (tmp60) { tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0expdef_make (tmp54, ats_castfn_mac(ats_ptr_type, tmp55), tmp57, tmp59) ; } else { /* tmp61 = */ list_vt_free_01499_ats_ptr_type (tmp55) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp53) ; } /* end of [if] */ return (tmp51) ; } /* end of [p_s0expdef_11] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 6613(line=307, offs=3) -- 6703(line=311, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0expdefseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0expdefseq: tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, arg1, arg2, &p_s0expdef_11) ; tmp62 = ats_castfn_mac(ats_ptr_type, tmp63) ; return (tmp62) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0expdefseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 6814(line=319, offs=1) -- 7496(line=354, offs=4) */ ATSstaticdec() ats_ptr_type p_s0aspdec_13 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_int_type, tmp65) ; ATSlocal (ats_uint_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_bool_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_bool_type, tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab_p_s0aspdec_13: tmp65 = ats_ptrget_mac(ats_int_type, arg2) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sqi0de (arg0, arg1, arg2) ; tmp69 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp65) ; if (tmp69) { tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0marg) ; } else { tmp68 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt, tmp65) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, tmp65) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp65) ; tmp73 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp65) ; if (tmp73) { tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0aspdec_make (tmp67, ats_castfn_mac(ats_ptr_type, tmp68), tmp70, tmp72) ; } else { /* tmp74 = */ list_vt_free_01499_ats_ptr_type (tmp68) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp66) ; } /* end of [if] */ return (tmp64) ; } /* end of [p_s0aspdec_13] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 7612(line=363, offs=3) -- 7711(line=367, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndecseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndecseq: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndec) ; tmp75 = ats_castfn_mac(ats_ptr_type, tmp76) ; return (tmp75) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndecseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 7816(line=375, offs=1) -- 8456(line=400, offs=4) */ ATSstaticdec() ats_ptr_type p_d0atdec_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_uint_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_bool_type, tmp85) ; ATSlocal (ats_int_type, tmp86) ; // ATSlocal_void (tmp87) ; __ats_lab_p_d0atdec_15: tmp78 = ats_ptrget_mac(ats_int_type, arg2) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, arg1, arg2) ; tmp82 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp78) ; if (tmp82) { tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0msrt) ; } else { tmp81 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, tmp78) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atconseq, tmp78) ; tmp85 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp78) ; if (tmp85) { tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atdec_make (tmp80, ats_castfn_mac(ats_ptr_type, tmp81), tmp84) ; } else { tmp86 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp86 ; /* tmp87 = */ list_vt_free_01499_ats_ptr_type (tmp81) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp79) ; } /* end of [if] */ return (tmp77) ; } /* end of [p_d0atdec_15] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 8505(line=404, offs=3) -- 8595(line=408, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atdecseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atdecseq: tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, arg1, arg2, &p_d0atdec_15) ; tmp88 = ats_castfn_mac(ats_ptr_type, tmp89) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atdecseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 8710(line=416, offs=1) -- 9378(line=441, offs=4) */ ATSstaticdec() ats_ptr_type p_d0cstdec_17 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_uint_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_bool_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_bool_type, tmp99) ; // ATSlocal_void (tmp100) ; __ats_lab_p_d0cstdec_17: tmp91 = ats_ptrget_mac(ats_int_type, arg2) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de (arg0, arg1, arg2) ; tmp95 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp91) ; if (tmp95) { tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstarg) ; } else { tmp94 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colonwith, tmp91) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp, tmp91) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_extnamopt, tmp91) ; tmp99 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp91) ; if (tmp99) { tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0cstdec_make (tmp93, ats_castfn_mac(ats_ptr_type, tmp94), tmp96, tmp97, tmp98) ; } else { /* tmp100 = */ list_vt_free_01499_ats_ptr_type (tmp94) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp92) ; } /* end of [if] */ return (tmp90) ; } /* end of [p_d0cstdec_17] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 9429(line=445, offs=3) -- 9496(line=446, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstdecseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstdecseq: tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, arg1, arg2, &p_d0cstdec_17) ; tmp101 = ats_castfn_mac(ats_ptr_type, tmp102) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstdecseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 9654(line=457, offs=8) -- 10445(line=494, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ym (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_uint_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_bool_type, tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_bool_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_bool_type, tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ym: tmp104 = ats_ptrget_mac(ats_int_type, arg2) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp106), atslab_token_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp107)->tag != 9) { goto __ats_lab_3_0 ; } __ats_lab_2_1: /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_l0ab (arg0, 0, arg2) ; tmp110 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp110) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_dotlab (tmp106, tmp109) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp105) ; } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp107)->tag != 159) { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET (arg0, 0, arg2) ; tmp113 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp113) { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_lrbrackets (tmp106, tmp112) ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp105) ; } /* end of [if] */ break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de (arg0, arg1, arg2) ; tmp115 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp104) ; if (tmp115) { tmp103 = tmp114 ; } else { tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; } while (0) ; return (tmp103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ym] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 10551(line=502, offs=3) -- 10646(line=506, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ymseq1 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ymseq1: tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ym) ; tmp116 = ats_castfn_mac(ats_ptr_type, tmp117) ; return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ymseq1] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 10837(line=521, offs=3) -- 11925(line=567, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_m0acarg (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_int_type, tmp119) ; ATSlocal (ats_uint_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_bool_type, tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; // ATSlocal_void (tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_bool_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_m0acarg: tmp119 = ats_ptrget_mac(ats_int_type, arg2) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp122 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp121), atslab_token_node) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp122)->tag != 161) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (arg0, 0, arg2) ; tmp126 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp119) ; if (tmp126) { tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sta (tmp121, ats_castfn_mac(ats_ptr_type, tmp124), tmp125) ; } else { /* tmp127 = */ list_vt_free_01499_ats_ptr_type (tmp124) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp120) ; } /* end of [if] */ break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp122)->tag != 157) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp128 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de) ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp131 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp119) ; if (tmp131) { tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_dyn (tmp121, ats_castfn_mac(ats_ptr_type, tmp129), tmp130) ; } else { /* tmp132 = */ list_vt_free_01499_ats_ptr_type (tmp129) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp120) ; } /* end of [if] */ break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de (arg0, arg1, arg2) ; tmp134 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp119) ; if (tmp134) { tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acarg_sing (tmp133) ; } else { tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp120) ; } /* end of [if] */ break ; } while (0) ; return (tmp118) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_m0acarg] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 12036(line=576, offs=3) -- 12575(line=598, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_m0acdef (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_int_type, tmp136) ; ATSlocal (ats_uint_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_bool_type, tmp143) ; // ATSlocal_void (tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_m0acdef: tmp136 = ats_ptrget_mac(ats_int_type, arg2) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de (arg0, arg1, arg2) ; tmp140 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp136) ; if (tmp140) { tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_m0acarg) ; } else { tmp139 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, tmp136) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp136) ; tmp143 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp136) ; if (tmp143) { tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__m0acdef_make (tmp138, ats_castfn_mac(ats_ptr_type, tmp139), tmp142) ; } else { /* tmp144 = */ list_vt_free_01499_ats_ptr_type (tmp139) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp137) ; } /* end of [if] */ return (tmp135) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_m0acdef] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 12713(line=610, offs=3) -- 13166(line=630, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_stai0de (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_int_type, tmp152) ; // ATSlocal_void (tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_stai0de: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp147 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp146), atslab_token_loc) ; tmp148 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp146), atslab_token_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp148)->tag != 143) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_4, tmp148, atslab_0) ; /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp151 = atspre_string_append (ATSstrcst("$"), tmp149) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp147, tmp151) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp152 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp152 ; tmp154 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_stai0de_49) ; /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp147, tmp154) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_stai0de] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 13341(line=642, offs=1) -- 14481(line=692, offs=4) */ ATSstaticdec() ats_ptr_type p_staloadarg_24 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; ATSlocal (ats_uint_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; // ATSlocal_void (tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_bool_type, tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_int_type, tmp170) ; // ATSlocal_void (tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab_p_staloadarg_24: tmp156 = ats_ptrget_mac(ats_int_type, arg2) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp158), atslab_token_loc) ; tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp158), atslab_token_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp160)->tag != 154) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp161 = ats_caselptrlab_mac(anairiats_sum_4, tmp160, atslab_0) ; /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp155 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp155)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp155, atslab_0, tmp159) ; ats_selptrset_mac(anairiats_sum_5, tmp155, atslab_1, tmp161) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp160)->tag != 147) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_4, tmp160, atslab_0) ; /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp155 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp155)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp155, atslab_0, tmp159) ; ats_selptrset_mac(anairiats_sum_5, tmp155, atslab_1, tmp163) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp160)->tag != 161) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE, tmp156) ; tmp168 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp156) ; if (tmp168) { tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staloadarg_declist (tmp158, ats_castfn_mac(ats_ptr_type, tmp166), tmp167) ; } else { /* tmp169 = */ list_vt_free_01499_ats_ptr_type (tmp166) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp157) ; } /* end of [if] */ break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp170 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp170 ; tmp172 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_staloadarg_90) ; /* tmp171 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp159, tmp172) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp155) ; } /* end of [p_staloadarg_24] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 14602(line=703, offs=1) -- 15641(line=743, offs=4) */ ATSstaticdec() ats_ptr_type p_staload_tok_25 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_int_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_bool_type, tmp182) ; __ats_lab_p_staload_tok_25: tmp174 = ats_ptrget_mac(ats_int_type, arg2) ; tmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp175), atslab_token_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp176)->tag != 154) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_fname (arg3, tmp175) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp176)->tag != 147) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp178 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_nspace (arg3, tmp175) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_stai0de (arg0, arg1, arg2) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, tmp174) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &p_staloadarg_24, tmp174) ; tmp182 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp174) ; if (tmp182) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_staload_some_arg (arg3, tmp179, tmp181) ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; } while (0) ; return (tmp173) ; } /* end of [p_staload_tok_25] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 15743(line=751, offs=1) -- 16183(line=773, offs=4) */ ATSstaticdec() ats_ptr_type p_srpifkind_26 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_int_type, tmp189) ; __ats_lab_p_srpifkind_26: tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp185 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp184), atslab_token_node) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp185)->tag != 121) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp183 = tmp184 ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp185)->tag != 122) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp187 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp183 = tmp184 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp185)->tag != 123) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp183 = tmp184 ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp189 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp189 ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp183) ; } /* end of [p_srpifkind_26] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 16270(line=779, offs=1) -- 16718(line=801, offs=4) */ ATSstaticdec() ats_ptr_type p_srpelifkind_27 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; // ATSlocal_void (tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; ATSlocal (ats_int_type, tmp196) ; __ats_lab_p_srpelifkind_27: tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp191), atslab_token_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp192)->tag != 125) { goto __ats_lab_22_0 ; } __ats_lab_21_1: /* tmp193 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp190 = tmp191 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp192)->tag != 126) { goto __ats_lab_23_0 ; } __ats_lab_22_1: /* tmp194 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp190 = tmp191 ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp192)->tag != 127) { goto __ats_lab_24_0 ; } __ats_lab_23_1: /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp190 = tmp191 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp196 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp196 ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp190) ; } /* end of [p_srpelifkind_27] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2556(line=86, offs=16) -- 2611(line=87, offs=49) */ ATSstaticdec() ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp221) ; __ats_lab_option_vt_free_01544_ats_ptr_type: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: ATS_FREE(arg0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: break ; } while (0) ; return /* (tmp221) */ ; } /* end of [option_vt_free_01544_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 17474(line=843, offs=1) -- 25422(line=1177, offs=4) */ ATSstaticdec() ats_ptr_type p_d0ecl_tok_28 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_int_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; // ATSlocal_void (tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_bool_type, tmp203) ; // ATSlocal_void (tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_bool_type, tmp206) ; // ATSlocal_void (tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_bool_type, tmp209) ; // ATSlocal_void (tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_bool_type, tmp212) ; // ATSlocal_void (tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_bool_type, tmp218) ; ATSlocal (ats_bool_type, tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_bool_type, tmp224) ; // ATSlocal_void (tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_bool_type, tmp228) ; ATSlocal (ats_bool_type, tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_bool_type, tmp233) ; // ATSlocal_void (tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_bool_type, tmp236) ; // ATSlocal_void (tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_bool_type, tmp239) ; // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_bool_type, tmp242) ; // ATSlocal_void (tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_bool_type, tmp245) ; // ATSlocal_void (tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_bool_type, tmp250) ; // ATSlocal_void (tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_bool_type, tmp255) ; // ATSlocal_void (tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_bool_type, tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_bool_type, tmp261) ; // ATSlocal_void (tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_bool_type, tmp264) ; ATSlocal (ats_int_type, tmp265) ; // ATSlocal_void (tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_bool_type, tmp268) ; // ATSlocal_void (tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_bool_type, tmp271) ; ATSlocal (ats_int_type, tmp272) ; // ATSlocal_void (tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_bool_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_bool_type, tmp277) ; // ATSlocal_void (tmp278) ; // ATSlocal_void (tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_bool_type, tmp281) ; // ATSlocal_void (tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_bool_type, tmp284) ; // ATSlocal_void (tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_bool_type, tmp287) ; ATSlocal (ats_int_type, tmp288) ; // ATSlocal_void (tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_bool_type, tmp291) ; // ATSlocal_void (tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_bool_type, tmp294) ; ATSlocal (ats_int_type, tmp295) ; // ATSlocal_void (tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; // ATSlocal_void (tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; // ATSlocal_void (tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_bool_type, tmp305) ; // ATSlocal_void (tmp306) ; ATSlocal (ats_int_type, tmp307) ; __ats_lab_p_d0ecl_tok_28: tmp198 = ats_ptrget_mac(ats_int_type, arg2) ; tmp199 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg3), atslab_token_node) ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp199)->tag != 49) { goto __ats_lab_26_0 ; } __ats_lab_25_1: /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0rec (arg0, 0, arg2) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0deseq1, tmp198) ; tmp203 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp203) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fixity (arg3, tmp201, tmp202) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp199)->tag != 62) { goto __ats_lab_27_0 ; } __ats_lab_26_1: /* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0deseq1 (arg0, 0, arg2) ; tmp206 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp206) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_nonfix (arg3, tmp205) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp199)->tag != 73) { goto __ats_lab_28_0 ; } __ats_lab_27_1: /* tmp207 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ymseq1 (arg0, 0, arg2) ; tmp209 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp209) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symintr (arg3, tmp208) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp199)->tag != 72) { goto __ats_lab_29_0 ; } __ats_lab_28_1: /* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ymseq1 (arg0, 0, arg2) ; tmp212 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp212) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_symelim (arg3, tmp211) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp199)->tag != 74) { goto __ats_lab_32_0 ; } __ats_lab_29_1: /* tmp213 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__p_s0ym (arg0, 0, arg2) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WITH, tmp198) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de, tmp198) ; tmp218 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp218) { tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0nt) ; } else { tmp217 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp219 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp219) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_overload (arg3, tmp214, tmp216, ats_castfn_mac(ats_ptr_type, tmp217)) ; } else { /* tmp220 = */ option_vt_free_01544_ats_ptr_type (tmp217) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp199)->tag != 134) { goto __ats_lab_33_0 ; } __ats_lab_32_1: /* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de (arg0, 0, arg2) ; tmp224 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp224) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpundef (arg3, tmp223) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp199)->tag != 135) { goto __ats_lab_34_0 ; } __ats_lab_33_1: /* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de (arg0, 0, arg2) ; tmp228 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp228) { tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__popt_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp) ; } else { tmp227 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp229 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp229) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpdef (arg3, tmp226, ats_castfn_mac(ats_ptr_type, tmp227)) ; } else { /* tmp230 = */ option_vt_free_01544_ats_ptr_type (tmp227) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp199)->tag != 130) { goto __ats_lab_35_0 ; } __ats_lab_34_1: /* tmp231 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (arg0, 0, arg2) ; tmp233 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp233) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_error (arg3, tmp232) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp199)->tag != 131) { goto __ats_lab_36_0 ; } __ats_lab_35_1: /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (arg0, 0, arg2) ; tmp236 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp236) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_prerr (arg3, tmp235) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp199)->tag != 132) { goto __ats_lab_37_0 ; } __ats_lab_36_1: /* tmp237 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (arg0, 0, arg2) ; tmp239 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp239) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_print (arg3, tmp238) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp199)->tag != 133) { goto __ats_lab_38_0 ; } __ats_lab_37_1: /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (arg0, 0, arg2) ; tmp242 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp242) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_e0xpact_assert (arg3, tmp241) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp199)->tag != 139) { goto __ats_lab_39_0 ; } __ats_lab_38_1: /* tmp243 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring (arg0, 0, arg2) ; tmp245 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp245) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_require (arg3, tmp244) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp199)->tag != 140) { goto __ats_lab_40_0 ; } __ats_lab_39_1: /* tmp246 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xpseq, tmp198) ; tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp198) ; tmp250 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp250) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_pragma (tmp247, tmp248, tmp249) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp199)->tag != 141) { goto __ats_lab_41_0 ; } __ats_lab_40_1: /* tmp251 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (arg0, 0, arg2) ; tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xpseq, tmp198) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp198) ; tmp255 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp255) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_codegen2 (tmp252, tmp253, tmp254) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp199)->tag != 71) { goto __ats_lab_42_0 ; } __ats_lab_41_1: /* tmp256 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtdefseq (arg0, 0, arg2) ; tmp258 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp258) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_srtdefs (arg3, tmp257) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp199)->tag != 39) { goto __ats_lab_43_0 ; } __ats_lab_42_1: /* tmp259 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtdecseq (arg0, 0, arg2) ; tmp261 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp261) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datsrts (arg3, tmp260) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp199)->tag != 68) { goto __ats_lab_44_0 ; } __ats_lab_43_1: /* tmp262 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tacstseq (arg0, 0, arg2) ; tmp264 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp264) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacsts (arg3, tmp263) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp199)->tag != 31) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp265 = ats_caselptrlab_mac(anairiats_sum_6, tmp199, atslab_0) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0taconseq (arg0, 0, arg2) ; tmp268 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp268) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_stacons (tmp265, arg3, tmp267) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp199)->tag != 69) { goto __ats_lab_46_0 ; } __ats_lab_45_1: /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0expdefseq (arg0, 0, arg2) ; tmp271 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp271) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_sexpdefs (-1, arg3, tmp270) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp199)->tag != 61) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_6, tmp199, atslab_0) ; /* tmp273 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; /* ats_ptr_type tmp274 ; */ tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC, (&tmp274)) ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_m0acdef) ; tmp277 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp277) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_macdefs (tmp272, tmp275, arg3, ats_castfn_mac(ats_ptr_type, tmp276)) ; } else { /* tmp278 = */ list_vt_free_01499_ats_ptr_type (tmp276) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp199)->tag != 32) { goto __ats_lab_48_0 ; } __ats_lab_47_1: /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp280 = p_s0aspdec_13 (arg0, 0, arg2) ; tmp281 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp281) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_saspdec (arg3, tmp280) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp199)->tag != 33) { goto __ats_lab_49_0 ; } __ats_lab_48_1: /* tmp282 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_sqi0de (arg0, 0, arg2) ; tmp284 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp284) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_reassume (arg3, tmp283) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp199)->tag != 76) { goto __ats_lab_50_0 ; } __ats_lab_49_1: /* tmp285 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp286 = p_t0kindef_10 (arg0, 0, arg2) ; tmp287 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp287) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_tkindef (arg3, tmp286) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp199)->tag != 79) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp288 = ats_caselptrlab_mac(anairiats_sum_6, tmp199, atslab_0) ; /* tmp289 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp290 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0expdefseq (arg0, 0, arg2) ; tmp291 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp291) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_sexpdefs (tmp288, arg3, tmp290) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp199)->tag != 44) { goto __ats_lab_52_0 ; } __ats_lab_51_1: /* tmp292 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xndecseq (arg0, 0, arg2) ; tmp294 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp294) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_exndecs (arg3, tmp293) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp199)->tag != 40) { goto __ats_lab_55_0 ; } __ats_lab_52_1: tmp295 = ats_caselptrlab_mac(anairiats_sum_6, tmp199, atslab_0) ; /* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atdecseq (arg0, 0, arg2) ; tmp298 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp299 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp298), atslab_token_node) ; do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp299)->tag != 83) { goto __ats_lab_54_0 ; } __ats_lab_53_1: /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0expdefseq (arg0, 0, arg2) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_some (tmp295, arg3, tmp297, tmp298, tmp301) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: __ats_lab_54_1: tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_datdecs_none (tmp295, arg3, tmp297) ; break ; } while (0) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp199)->tag != 38) { goto __ats_lab_56_0 ; } __ats_lab_55_1: /* tmp302 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, 0, arg2) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt, tmp198) ; tmp305 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp198) ; if (tmp305) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_classdec (arg3, tmp303, tmp304) ; } else { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp199)->tag != 137) { goto __ats_lab_57_0 ; } __ats_lab_56_1: /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp197 = p_staload_tok_25 (arg0, 0, arg2, arg3) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: tmp307 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp307 ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp197) ; } /* end of [p_d0ecl_tok_28] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 25489(line=1183, offs=3) -- 25558(line=1184, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl: tmp309 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_86) ; tmp308 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_d0ecl_tok_28, tmp309) ; return (tmp308) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 25693(line=1195, offs=5) -- 26279(line=1220, offs=4) */ ATSstaticdec() ats_void_type loop_32 (ats_ptr_type env0, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_bool_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; // ATSlocal_void (tmp318) ; __ats_lab_loop_32: tmp312 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))env0) (arg0, 1, arg2) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: tmp313 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ; if (!tmp313) { goto __ats_lab_59_1 ; } tmp314 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp314 ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: tmp315 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp315, atslab_0, tmp312) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp315 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp316 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON) ; /* tmp318 = */ list_vt_free_01499_ats_ptr_type (tmp317) ; arg0 = arg0 ; arg1 = tmp316 ; arg2 = arg2 ; goto __ats_lab_loop_32 ; // tail call break ; } while (0) ; return /* (tmp311) */ ; } /* end of [loop_32] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop_32_closure_type ; ats_void_type loop_32_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) { loop_32 (((loop_32_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; return ; } /* end of function */ ATSinline() ats_void_type loop_32_closure_init (loop_32_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_32_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_32_closure_make (ats_ptr_type env0) { loop_32_closure_type *p_clo = ATS_MALLOC(sizeof(loop_32_closure_type)) ; loop_32_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 25631(line=1191, offs=6) -- 26401(line=1228, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_int_type, tmp320) ; // ATSlocal_void (tmp321) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun: /* ats_ptr_type tmp319 ; */ /* ats_int_type tmp320 ; */ tmp320 = 0 ; /* tmp321 = */ loop_32 (arg2, arg0, (&tmp319), (&tmp320)) ; tmp310 = tmp319 ; return (tmp310) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 26634(line=1239, offs=1) -- 28358(line=1316, offs=4) */ ATSstaticdec() ats_ptr_type guad0ecl_fun_33 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_int_type, tmp323) ; ATSlocal (ats_uint_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_bool_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_bool_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_bool_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; // ATSlocal_void (tmp333) ; // ATSlocal_void (tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_bool_type, tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; ATSlocal (ats_bool_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_bool_type, tmp342) ; // ATSlocal_void (tmp343) ; ATSlocal (ats_int_type, tmp344) ; // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; // ATSlocal_void (tmp349) ; __ats_lab_guad0ecl_fun_33: tmp323 = ats_ptrget_mac(ats_int_type, arg2) ; tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; /* ats_ptr_type tmp325 ; */ tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (arg0, arg1, arg2) ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPTHEN, (&tmp325)) ; tmp329 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp323) ; if (tmp329) { tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (arg0, 0, arg3) ; } else { tmp328 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp331 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp323) ; if (tmp331) { tmp332 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp330), atslab_token_node) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp332)->tag != 129) { goto __ats_lab_61_0 ; } __ats_lab_60_1: /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_one (tmp326, ats_castfn_mac(ats_ptr_type, tmp328), tmp330) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp332)->tag != 128) { goto __ats_lab_62_0 ; } __ats_lab_61_1: /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (arg0, 0, arg3) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPENDIF (arg0, 0, arg2) ; tmp337 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp323) ; if (tmp337) { tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_two (tmp326, ats_castfn_mac(ats_ptr_type, tmp328), ats_castfn_mac(ats_ptr_type, tmp335), tmp336) ; } else { /* tmp338 = */ list_vt_free_01499_ats_ptr_type (tmp328) ; /* tmp339 = */ list_vt_free_01499_ats_ptr_type (tmp335) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp324) ; } /* end of [if] */ break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_srpelifkind_27, (&tmp325)) ; if (!tmp340) { goto __ats_lab_63_1 ; } tmp341 = guad0ecl_fun_33 (arg0, 0, arg2, arg3) ; tmp342 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp323) ; if (tmp342) { tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__guad0ecl_cons (tmp326, ats_castfn_mac(ats_ptr_type, tmp328), tmp330, tmp341) ; } else { /* tmp343 = */ list_vt_free_01499_ats_ptr_type (tmp328) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp324) ; } /* end of [if] */ break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp344 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp344 ; /* tmp345 = */ list_vt_free_01499_ats_ptr_type (tmp328) ; tmp347 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp330), atslab_token_loc) ; tmp348 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guad0ecl_89) ; /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (0, tmp347, tmp348) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp324) ; break ; } while (0) ; } else { /* tmp349 = */ list_vt_free_01499_ats_ptr_type (tmp328) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp324) ; } /* end of [if] */ return (tmp322) ; } /* end of [guad0ecl_fun_33] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 28592(line=1331, offs=1) -- 30589(line=1414, offs=4) */ ATSstaticdec() ats_ptr_type p_d0ecl_sta_tok_34 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_int_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_bool_type, tmp354) ; ATSlocal (ats_bool_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_bool_type, tmp359) ; // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_bool_type, tmp363) ; ATSlocal (ats_bool_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_bool_type, tmp367) ; // ATSlocal_void (tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_bool_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_bool_type, tmp374) ; // ATSlocal_void (tmp375) ; // ATSlocal_void (tmp376) ; ATSlocal (ats_int_type, tmp377) ; __ats_lab_p_d0ecl_sta_tok_34: tmp351 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp352 ; */ tmp353 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg3), atslab_token_node) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: __ats_lab_64_1: tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl, (&tmp352)) ; if (!tmp354) { goto __ats_lab_65_1 ; } tmp350 = ats_castfn_mac(ats_ptr_type, tmp352) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: __ats_lab_65_1: tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dcstkind, (&tmp352)) ; if (!tmp355) { goto __ats_lab_66_0 ; } tmp356 = ats_castfn_mac(ats_ptr_type, tmp352) ; tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0margseq (arg0, 0, arg2) ; tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstdecseq (arg0, 0, arg2) ; tmp359 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp351) ; if (tmp359) { tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs (tmp356, tmp357, tmp358) ; } else { tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp353)->tag != 173) { goto __ats_lab_67_0 ; } __ats_lab_66_1: /* tmp360 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extcode (0, arg3) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp353)->tag != 136) { goto __ats_lab_68_0 ; } __ats_lab_67_1: /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring (arg0, 0, arg2) ; tmp363 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp351) ; if (tmp363) { tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_include (0, arg3, tmp362) ; } else { tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: tmp364 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_srpifkind_26, (&tmp352)) ; if (!tmp364) { goto __ats_lab_69_0 ; } tmp365 = ats_castfn_mac(ats_ptr_type, tmp352) ; tmp366 = guad0ecl_fun_33 (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta) ; tmp367 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp351) ; if (tmp367) { tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_guadecl (tmp365, tmp366) ; } else { tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp353)->tag != 60) { goto __ats_lab_70_0 ; } __ats_lab_69_1: /* tmp368 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta) ; tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IN (arg0, 0, arg2) ; tmp372 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp351) ; if (tmp372) { tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta) ; } else { tmp371 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END, tmp351) ; tmp374 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp351) ; if (tmp374) { tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_local (arg3, ats_castfn_mac(ats_ptr_type, tmp369), ats_castfn_mac(ats_ptr_type, tmp371), tmp373) ; } else { /* tmp375 = */ list_vt_free_01499_ats_ptr_type (tmp369) ; /* tmp376 = */ list_vt_free_01499_ats_ptr_type (tmp371) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp377 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp377 ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp350) ; } /* end of [p_d0ecl_sta_tok_34] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 30643(line=1418, offs=3) -- 30720(line=1419, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta: tmp379 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_sta_87) ; tmp378 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_d0ecl_sta_tok_34, tmp379) ; return (tmp378) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 30813(line=1427, offs=5) -- 31221(line=1444, offs=4) */ ATSstaticdec() ats_ptr_type p_v0aldec_36 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_int_type, tmp381) ; ATSlocal (ats_uint_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_bool_type, tmp387) ; __ats_lab_p_v0aldec_36: tmp381 = ats_ptrget_mac(ats_int_type, arg2) ; tmp382 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp383 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_p0at (arg0, arg1, arg2) ; tmp384 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, tmp381) ; tmp385 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp381) ; tmp386 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_witht0ype, tmp381) ; tmp387 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp381) ; if (tmp387) { tmp380 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0aldec_make (tmp383, tmp385, tmp386) ; } else { tmp380 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp382) ; } /* end of [if] */ return (tmp380) ; } /* end of [p_v0aldec_36] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 31340(line=1451, offs=5) -- 32372(line=1485, offs=4) */ ATSstaticdec() ats_ptr_type p_f0undec_37 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_int_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_bool_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_bool_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_bool_type, tmp400) ; ATSlocal (ats_bool_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_bool_type, tmp406) ; // ATSlocal_void (tmp407) ; ATSlocal (ats_int_type, tmp408) ; __ats_lab_p_f0undec_37: tmp389 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp390 ; */ do { /* branch: __ats_lab_71 */ __ats_lab_71_0: __ats_lab_71_1: tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_di0de, (&tmp390)) ; if (!tmp391) { goto __ats_lab_72_1 ; } tmp392 = ats_castfn_mac(ats_ptr_type, tmp390) ; tmp393 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg1) ; tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun (arg0, 1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colonwith, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; // tmp395 = ats_caselptrlab_mac(anairiats_sum_2, tmp394, atslab_0) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_2, tmp394, atslab_1) ; ATS_FREE(tmp394) ; tmp398 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp389) ; if (tmp398) { tmp397 = tmp395 ; } else { tmp397 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp400 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp389) ; if (tmp400) { tmp399 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp399, atslab_0, tmp396) ; } else { tmp399 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp402 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp389) ; if (tmp402) { ats_ptrget_mac(ats_int_type, arg2) = tmp389 ; } else { /* empty */ } /* end of [if] */ tmp403 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_witht0ype) ; // tmp404 = ats_caselptrlab_mac(anairiats_sum_1, tmp403, atslab_1) ; tmp405 = ats_caselptrlab_mac(anairiats_sum_1, tmp403, atslab_2) ; ATS_FREE(tmp403) ; tmp406 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp389) ; if (tmp406) { tmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__f0undec_make (tmp392, ats_castfn_mac(ats_ptr_type, tmp393), tmp397, tmp399, tmp404, tmp405) ; } else { /* tmp407 = */ list_vt_free_01499_ats_ptr_type (tmp393) ; tmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: __ats_lab_72_1: tmp408 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp408 ; tmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp388) ; } /* end of [p_f0undec_37] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 32492(line=1493, offs=5) -- 33198(line=1522, offs=4) */ ATSstaticdec() ats_ptr_type p_v0ardec_38 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_int_type, tmp410) ; ATSlocal (ats_uint_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_bool_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_bool_type, tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; __ats_lab_p_v0ardec_38: tmp410 = ats_ptrget_mac(ats_int_type, arg2) ; tmp411 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp412 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__popt_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BANG) ; tmp413 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de (arg0, arg1, arg2) ; tmp414 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt, tmp410) ; tmp416 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp410) ; if (tmp416) { tmp415 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WITH, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_pi0de) ; } else { tmp415 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp417 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_eqd0expopt, tmp410) ; tmp418 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp410) ; if (tmp418) { tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__v0ardec_make (ats_castfn_mac(ats_ptr_type, tmp412), tmp413, ats_castfn_mac(ats_ptr_type, tmp415), tmp414, tmp417) ; } else { /* tmp419 = */ option_vt_free_01544_ats_ptr_type (tmp412) ; /* tmp420 = */ option_vt_free_01544_ats_ptr_type (tmp415) ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp411) ; } /* end of [if] */ return (tmp409) ; } /* end of [p_v0ardec_38] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 33292(line=1530, offs=1) -- 33636(line=1546, offs=4) */ ATSstaticdec() ats_ptr_type p_i0mpsvararg_39 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_int_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_bool_type, tmp425) ; __ats_lab_p_i0mpsvararg_39: tmp422 = ats_ptrget_mac(ats_int_type, arg2) ; tmp423 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0vararg, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE) ; // tmp424 = ats_caselptrlab_mac(anairiats_sum_1, tmp423, atslab_1) ; ATS_FREE(tmp423) ; tmp425 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp422) ; if (tmp425) { tmp421 = tmp424 ; } else { tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp421) ; } /* end of [p_i0mpsvararg_39] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 33726(line=1552, offs=1) -- 34563(line=1595, offs=4) */ ATSstaticdec() ats_ptr_type p_i0mparg_40 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_int_type, tmp427) ; ATSlocal (ats_uint_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; // ATSlocal_void (tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_bool_type, tmp435) ; // ATSlocal_void (tmp436) ; __ats_lab_p_i0mparg_40: tmp427 = ats_ptrget_mac(ats_int_type, arg2) ; tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp429 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp430 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp429), atslab_token_node) ; do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp430)->tag != 161) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp431 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, arg1, &p_i0mpsvararg_39) ; tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_svararglst (ats_castfn_mac(ats_ptr_type, tmp431)) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp430)->tag != 157) { goto __ats_lab_75_0 ; } __ats_lab_74_1: /* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp433 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) ; tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp435 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp427) ; if (tmp435) { tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_some (tmp429, ats_castfn_mac(ats_ptr_type, tmp433), tmp434) ; } else { /* tmp436 = */ list_vt_free_01499_ats_ptr_type (tmp433) ; tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp428) ; } /* end of [if] */ break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: __ats_lab_75_1: tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mparg_sarglst_none () ; break ; } while (0) ; return (tmp426) ; } /* end of [p_i0mparg_40] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 34676(line=1606, offs=1) -- 35682(line=1650, offs=4) */ ATSstaticdec() ats_ptr_type p_impqi0de_41 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_int_type, tmp438) ; ATSlocal (ats_uint_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_bool_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_bool_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_bool_type, tmp448) ; // ATSlocal_void (tmp449) ; ATSlocal (ats_int_type, tmp450) ; // ATSlocal_void (tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; __ats_lab_p_impqi0de_41: tmp438 = ats_ptrget_mac(ats_int_type, arg2) ; tmp439 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp440 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp441 ; */ do { /* branch: __ats_lab_76 */ __ats_lab_76_0: __ats_lab_76_1: tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dqi0de, (&tmp441)) ; if (!tmp442) { goto __ats_lab_77_1 ; } tmp443 = ats_castfn_mac(ats_ptr_type, tmp441) ; tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_none (tmp443) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: __ats_lab_77_1: tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmpqi0de, (&tmp441)) ; if (!tmp444) { goto __ats_lab_78_1 ; } tmp445 = ats_castfn_mac(ats_ptr_type, tmp441) ; tmp446 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_tmps0expseq, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT_test) ; tmp447 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT (arg0, 0, arg2) ; tmp448 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp438) ; if (tmp448) { tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__impqi0de_make_some (tmp445, ats_castfn_mac(ats_ptr_type, tmp446), tmp447) ; } else { /* tmp449 = */ list_vt_free_01499_ats_ptr_type (tmp446) ; tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp439) ; } /* end of [if] */ break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: __ats_lab_78_1: tmp450 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp450 ; tmp452 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp440), atslab_token_loc) ; tmp453 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_impqi0de_55) ; /* tmp451 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp452, tmp453) ; tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp437) ; } /* end of [p_impqi0de_41] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 35799(line=1659, offs=5) -- 36460(line=1685, offs=4) */ ATSstaticdec() ats_ptr_type p_i0mpdec_42 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_int_type, tmp455) ; ATSlocal (ats_uint_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_bool_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_bool_type, tmp463) ; // ATSlocal_void (tmp464) ; __ats_lab_p_i0mpdec_42: tmp455 = ats_ptrget_mac(ats_int_type, arg2) ; tmp456 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp457 = p_impqi0de_41 (arg0, arg1, arg2) ; tmp459 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp455) ; if (tmp459) { tmp458 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_f0arg2) ; } else { tmp458 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp460 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0expopt, tmp455) ; tmp461 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, tmp455) ; tmp462 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp, tmp455) ; tmp463 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp455) ; if (tmp463) { tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0mpdec_make (tmp457, ats_castfn_mac(ats_ptr_type, tmp458), tmp460, tmp462) ; } else { /* tmp464 = */ list_vt_free_01499_ats_ptr_type (tmp458) ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp456) ; } /* end of [if] */ return (tmp454) ; } /* end of [p_i0mpdec_42] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 36919(line=1709, offs=1) -- 42578(line=1918, offs=4) */ ATSstaticdec() ats_ptr_type p_d0ecl_dyn_tok_43 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_int_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_bool_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; // ATSlocal_void (tmp471) ; ATSlocal (ats_bool_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_bool_type, tmp474) ; // ATSlocal_void (tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; // ATSlocal_void (tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_bool_type, tmp480) ; // ATSlocal_void (tmp481) ; // ATSlocal_void (tmp482) ; ATSlocal (ats_int_type, tmp483) ; // ATSlocal_void (tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_bool_type, tmp486) ; // ATSlocal_void (tmp487) ; // ATSlocal_void (tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_bool_type, tmp491) ; // ATSlocal_void (tmp492) ; // ATSlocal_void (tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_bool_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_bool_type, tmp500) ; // ATSlocal_void (tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_bool_type, tmp505) ; // ATSlocal_void (tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_bool_type, tmp510) ; ATSlocal (ats_int_type, tmp511) ; // ATSlocal_void (tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_bool_type, tmp516) ; // ATSlocal_void (tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_bool_type, tmp521) ; // ATSlocal_void (tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_bool_type, tmp526) ; // ATSlocal_void (tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_bool_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_bool_type, tmp533) ; // ATSlocal_void (tmp534) ; // ATSlocal_void (tmp535) ; // ATSlocal_void (tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_bool_type, tmp538) ; // ATSlocal_void (tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_bool_type, tmp541) ; ATSlocal (ats_bool_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_bool_type, tmp545) ; ATSlocal (ats_int_type, tmp546) ; __ats_lab_p_d0ecl_dyn_tok_43: tmp466 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp467 ; */ tmp468 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg3), atslab_token_node) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: __ats_lab_79_1: tmp469 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl, (&tmp467)) ; if (!tmp469) { goto __ats_lab_80_0 ; } tmp465 = ats_castfn_mac(ats_ptr_type, tmp467) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp468)->tag != 80) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp470 = ats_caselptrlab_mac(anairiats_sum_4, tmp468, atslab_0) ; /* tmp471 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp472 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC_test (arg0) ; tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, 0, arg2, &p_v0aldec_36) ; tmp474 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp474) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_valdecs (tmp470, tmp472, arg3, ats_castfn_mac(ats_ptr_type, tmp473)) ; } else { /* tmp475 = */ list_vt_free_01499_ats_ptr_type (tmp473) ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp468)->tag != 52) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp476 = ats_caselptrlab_mac(anairiats_sum_4, tmp468, atslab_0) ; /* tmp477 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0marg) ; tmp479 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, 0, arg2, &p_f0undec_37) ; tmp480 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp480) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_fundecs (tmp476, arg3, ats_castfn_mac(ats_ptr_type, tmp478), ats_castfn_mac(ats_ptr_type, tmp479)) ; } else { /* tmp481 = */ list_vt_free_01499_ats_ptr_type (tmp478) ; /* tmp482 = */ list_vt_free_01499_ats_ptr_type (tmp479) ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp468)->tag != 81) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp483 = ats_caselptrlab_mac(anairiats_sum_6, tmp468, atslab_0) ; /* tmp484 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp485 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (arg0, 0, arg2, &p_v0ardec_38) ; tmp486 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp486) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_vardecs (tmp483, arg3, ats_castfn_mac(ats_ptr_type, tmp485)) ; } else { /* tmp487 = */ list_vt_free_01499_ats_ptr_type (tmp485) ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp468)->tag != 55) { goto __ats_lab_84_0 ; } __ats_lab_83_1: /* tmp488 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp489 = p_i0mparg_40 (arg0, 0, arg2) ; tmp490 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &p_i0mpdec_42, tmp466) ; tmp491 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp491) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_impdec (arg3, tmp489, tmp490) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp468)->tag != 173) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp492 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extcode (1, arg3) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp468)->tag != 45) { goto __ats_lab_90_0 ; } __ats_lab_85_1: /* tmp493 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp494 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp495 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp494), atslab_token_node) ; do { /* branch: __ats_lab_86 */ __ats_lab_86_0: __ats_lab_86_1: tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dcstkind, (&tmp467)) ; if (!tmp496) { goto __ats_lab_87_0 ; } tmp497 = ats_castfn_mac(ats_ptr_type, tmp467) ; tmp498 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0margseq, tmp466) ; tmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstdecseq, tmp466) ; tmp500 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp500) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_extern (tmp497, tmp498, tmp499) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp495)->tag != 81) { goto __ats_lab_88_0 ; } __ats_lab_87_1: /* tmp501 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp502 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; // tmp503 = ats_caselptrlab_mac(anairiats_sum_1, tmp502, atslab_0) ; tmp504 = ats_caselptrlab_mac(anairiats_sum_1, tmp502, atslab_2) ; ATS_FREE(tmp502) ; tmp505 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp505) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar2 (tmp494, tmp503, tmp504) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp495)->tag != 79) { goto __ats_lab_89_0 ; } __ats_lab_88_1: /* tmp506 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp507 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; // tmp508 = ats_caselptrlab_mac(anairiats_sum_1, tmp507, atslab_0) ; tmp509 = ats_caselptrlab_mac(anairiats_sum_1, tmp507, atslab_2) ; ATS_FREE(tmp507) ; tmp510 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp510) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype2 (tmp494, tmp508, tmp509) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: __ats_lab_89_1: tmp511 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp511 ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp468)->tag != 46) { goto __ats_lab_91_0 ; } __ats_lab_90_1: /* tmp512 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp513 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0exp) ; // tmp514 = ats_caselptrlab_mac(anairiats_sum_1, tmp513, atslab_0) ; tmp515 = ats_caselptrlab_mac(anairiats_sum_1, tmp513, atslab_2) ; ATS_FREE(tmp513) ; tmp516 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp516) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extype (arg3, tmp514, tmp515) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp468)->tag != 47) { goto __ats_lab_92_0 ; } __ats_lab_91_1: /* tmp517 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp518 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0exp) ; // tmp519 = ats_caselptrlab_mac(anairiats_sum_1, tmp518, atslab_0) ; tmp520 = ats_caselptrlab_mac(anairiats_sum_1, tmp518, atslab_2) ; ATS_FREE(tmp518) ; tmp521 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp521) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_extvar (arg3, tmp519, tmp520) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp468)->tag != 70) { goto __ats_lab_93_0 ; } __ats_lab_92_1: /* tmp522 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_dcstkind (arg0, 0, arg2) ; tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_q0margseq, tmp466) ; tmp525 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0cstdecseq, tmp466) ; tmp526 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp526) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dcstdecs_static (tmp523, tmp524, tmp525) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp468)->tag != 60) { goto __ats_lab_94_0 ; } __ats_lab_93_1: /* tmp527 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp528 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IN, tmp466) ; tmp531 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp531) { tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn) ; } else { tmp530 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END, tmp466) ; tmp533 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp533) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_local (arg3, ats_castfn_mac(ats_ptr_type, tmp528), ats_castfn_mac(ats_ptr_type, tmp530), tmp532) ; } else { /* tmp534 = */ list_vt_free_01499_ats_ptr_type (tmp528) ; /* tmp535 = */ list_vt_free_01499_ats_ptr_type (tmp530) ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp468)->tag != 136) { goto __ats_lab_95_0 ; } __ats_lab_94_1: /* tmp536 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp537 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring (arg0, 0, arg2) ; tmp538 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp538) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_include (1, arg3, tmp537) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp468)->tag != 138) { goto __ats_lab_96_0 ; } __ats_lab_95_1: /* tmp539 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp540 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0tring (arg0, 0, arg2) ; tmp541 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp541) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_dynload (arg3, tmp540) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: __ats_lab_96_1: tmp542 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_srpifkind_26, (&tmp467)) ; if (!tmp542) { goto __ats_lab_97_1 ; } tmp543 = ats_castfn_mac(ats_ptr_type, tmp467) ; tmp544 = guad0ecl_fun_33 (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn) ; tmp545 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp466) ; if (tmp545) { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ecl_guadecl (tmp543, tmp544) ; } else { tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: __ats_lab_97_1: tmp546 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp546 ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp465) ; } /* end of [p_d0ecl_dyn_tok_43] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 42632(line=1922, offs=3) -- 42709(line=1923, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn: tmp548 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_dyn_88) ; tmp547 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_d0ecl_dyn_tok_43, tmp548) ; return (tmp547) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 42783(line=1930, offs=3) -- 42869(line=1934, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_sta (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_sta: tmp550 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta) ; tmp549 = ats_castfn_mac(ats_ptr_type, tmp550) ; return (tmp549) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_sta] */ /* // /tmp/ATS-Postiats/src/pats_parsing_decl.dats: 42925(line=1938, offs=3) -- 43011(line=1942, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_dyn (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_dyn: tmp552 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn) ; tmp551 = ats_castfn_mac(ats_ptr_type, tmp552) ; return (tmp551) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0eclseq_dyn] */ /* 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_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_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_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_decl_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_hole_dats.c0000644000175000017500000004353613431250607023135 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2hole_srt ; ats_int_type atslab_s2hole_stamp ; } anairiats_rec_1 ; /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2hole_stamp_make) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_stamp) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2hole_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp3 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp3) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_hole.dats: 1863(line=67, offs=17) -- 2130(line=77, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_make_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_make_srt: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2hole_stamp_make () ; tmp2 = ptr_alloc_01070_anairiats_rec_1 () ; tmp4 = ats_selsin_mac(tmp2, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_s2hole_srt) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_s2hole_stamp) = tmp1 ; tmp0 = atspre_ref_make_view_ptr (tmp4) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_make_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_hole.dats: 2185(line=80, offs=16) -- 2275(line=82, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_srt: tmp6 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp5 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2hole_srt) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_hole.dats: 2331(line=85, offs=18) -- 2423(line=87, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_stamp: tmp8 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp7 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp8), atslab_s2hole_stamp) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_hole.dats: 2524(line=95, offs=3) -- 2640(line=101, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hole (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp9) ; ATSlocal (ats_int_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hole: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_stamp (arg1) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp10) ; return /* (tmp9) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hole] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_hole_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lexbuf.cats0000644000175000017500000000370713431250607021516 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_LEXBUF_CATS #define POSTIATS_SRC_PATS_LEXBUF_CATS /* ****** ****** */ #include "libats/CATS/linqueue_arr.cats" /* ****** ****** */ #include "pats_reader.cats" /* ****** ****** */ typedef struct { // atslib_linqueue_arr_QUEUE cbuf ; // ats_lint_type base ; ats_int_type base_nrow ; // line number ats_int_type base_ncol ; // line offset // ats_int_type nspace ; // leading space // pats_reader_struct reader ; // for getchar // } pats_lexbuf_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_LEXBUF_CATS] /* ****** ****** */ /* end of [pats_lexbuf.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_dynexp_dats.c0000644000175000017500000102566213431250607023341 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d0ynq_loc ; ats_ptr_type atslab_d0ynq_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_d1exp_loc ; ats_ptr_type atslab_d1exp_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_9 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_i1nvarg_loc ; ats_ptr_type atslab_i1nvarg_sym ; ats_ptr_type atslab_i1nvarg_type ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_i1nvresstate_qua ; ats_ptr_type atslab_i1nvresstate_arg ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_loopi1nv_loc ; ats_ptr_type atslab_loopi1nv_qua ; ats_ptr_type atslab_loopi1nv_met ; ats_ptr_type atslab_loopi1nv_arg ; ats_ptr_type atslab_loopi1nv_res ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_i1fcl_loc ; ats_ptr_type atslab_i1fcl_test ; ats_ptr_type atslab_i1fcl_body ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_gm1at_loc ; ats_ptr_type atslab_gm1at_exp ; ats_ptr_type atslab_gm1at_pat ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_c1lau_loc ; ats_ptr_type atslab_c1lau_pat ; ats_ptr_type atslab_c1lau_gua ; ats_int_type atslab_c1lau_seq ; ats_int_type atslab_c1lau_neg ; ats_ptr_type atslab_c1lau_body ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_p1at_loc ; ats_ptr_type atslab_p1at_node ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_sc1lau_loc ; ats_ptr_type atslab_sc1lau_pat ; ats_ptr_type atslab_sc1lau_body ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_sc2lau_loc ; ats_ptr_type atslab_sc2lau_pat ; ats_ptr_type atslab_sc2lau_body ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_sp2at_loc ; ats_ptr_type atslab_sp2at_exp ; ats_ptr_type atslab_sp2at_node ; } anairiats_rec_22 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_23 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_24 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_25 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_26 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_27 ; typedef struct { ats_ptr_type atslab_dqi0de_loc ; ats_ptr_type atslab_dqi0de_qua ; ats_ptr_type atslab_dqi0de_sym ; } anairiats_rec_28 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_29 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_30 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_31 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_32 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_33 ; typedef struct { ats_ptr_type atslab_i0de_loc ; ats_ptr_type atslab_i0de_sym ; } anairiats_rec_34 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_35 ; typedef struct { ats_ptr_type atslab_d1lab_loc ; ats_ptr_type atslab_d1lab_node ; } anairiats_rec_36 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKencode_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfun_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlist_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eidextapp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ebool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Echar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Estring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ei0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ec0har_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ef0loat_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Es0tring_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etop_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecstsp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etyrep_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eliteral_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextfcall_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextmcall_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efoldat_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efreeat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etmpid_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhere_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edecseq_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_dyn_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_sta_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esing_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elist_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifhead_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esifhead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifcasehd_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecasehead_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Escasehead_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elst_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrsub_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrinit_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrpsz_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eptrof_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eviewat_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eselab_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eraise_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eeffmask_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evararg_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evcopyenv_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eshowtype_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etempenver_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esexparg_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eexist_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_dyn_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elaminit_dyn_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_met_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_syn_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efix_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edelay_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efor_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhile_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eloopexn_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etrywith_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_type_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_effc_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_funclo_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacsyn_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacfun_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolassert_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolverify_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eerrexp_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASdef_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMe1xp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMsymdef_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacdef_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacvar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etmpid_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_S1Ed2ctype_tr_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_sort_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_repeat_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_missing_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_macdef_check_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_macvar_check_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1exp_tr_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_i1nvarg_tr_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_c1lau_tr_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDderef_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDassgn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDxchng_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDnone_3) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, 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_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_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQCOLON) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LRBRACKETS) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_dotize) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_reverse) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_e1xp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_d1exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sconlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dstag) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_tmpcst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_kind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2sym_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_c0har) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_s0tring) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tyrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_literal) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extval) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extfcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extmcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sym) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_loopexn) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_foldat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_freeat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tmpid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_let) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_where) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_dyn) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifhead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sifhead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifcasehd) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_casehead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_scasehead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sing) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_list) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lst) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_rec) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_assgn) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_xchng) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrsub) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrpsz) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrinit) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ptrof) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_viewat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_dot) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_raise) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_effmask) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vararg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vcopyenv) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_showtype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tempenver) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_exist) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_laminit_dyn) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met_new) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_fix) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_delay) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay_none) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_while) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_for) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_trywith) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_mac) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macsyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macfun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solassert) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solverify) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__labd2exp_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_lab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__loopi2nv_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2fcl_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__gm2at_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__c2lau_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sc2lau_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2con_select_arity) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sp1at_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sc2laulst_coverck) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1expopt_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_2, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1expopt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labd1exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1lab_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_sp2at) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_inc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_dec) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop_free) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_sta_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_deref) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_assgn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_xchng) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macsyn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macfun) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_3, patsopt_s2exp_tmp_instantiate_tmpmarglst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDderef_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDassgn_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDxchng_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDnone_3) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02397_ () ; static ats_ptr_type dynspecid_of_dqid_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_interror_loc_02399_ (ats_ptr_type arg0) ; static ats_ptr_type d2sym_bang_2 (ats_ptr_type arg0) ; static ats_ptr_type d2sym_lrbrackets_4 (ats_ptr_type arg0) ; static ats_void_type prerr_ERROR_beg_02395_ () ; static ats_void_type prerr_error2_loc_02401_ (ats_ptr_type arg0) ; static ats_void_type prerr_ERROR_end_02396_ () ; static ats_void_type macdef_check_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type macvar_check_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type d1exp_tr_dqid_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type d1exp_tr_app_dyn_dqid_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ptr_type arg6) ; static ats_ptr_type __ats_fun_19 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_19_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type app_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type d1exp_tr_app_dyn_e1xp_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ; static ats_ptr_type d1exp_tr_app_sta_dyn_dqid_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_int_type arg7, ats_ptr_type arg8) ; static ats_int_type loop_25 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type d1exp_tr_app_sta_dyn_dqid_itm_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_int_type arg8, ats_ptr_type arg9) ; static ats_ptr_type d1exp_tr_arrsub_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type d1exp_tr_wths1explst_31 (ats_ptr_type arg0, ats_ptr_type arg1) ; static anairiats_rec_10 d1exp_tr_arg_body_32 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type d1exp_tr_delay_33 (ats_ptr_type arg0) ; static ats_void_type auxerr1_35 (ats_ptr_type arg0) ; static ats_void_type auxerr2_36 (ats_ptr_type arg0) ; static ats_ptr_type i1nvarg_tr_34 (ats_ptr_type arg0) ; static ats_ptr_type i1nvarglst_tr_37 (ats_ptr_type arg0) ; static ats_ptr_type i1nvresstate_tr_38 (ats_ptr_type arg0) ; static ats_ptr_type loopi1nv_tr_39 (ats_ptr_type arg0) ; static ats_ptr_type i1fcl_tr_40 (ats_ptr_type arg0) ; static ats_ptr_type i1fclist_tr_41 (ats_ptr_type arg0) ; static ats_ptr_type gm1at_tr_42 (ats_ptr_type arg0) ; static ats_void_type auxerr_44 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type c1lau_tr_43 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type c1laulst_tr_46 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type sc1lau_trdn_47 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type sc1laulst_trdn_48 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type sc2lau_get_dstag_49 (ats_ptr_type arg0) ; static ats_void_type auxerr_lt_50 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_gts_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ; static ats_void_type loop_55 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type __ats_fun_56 (ats_ref_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type __ats_fun_56_closure_make () ; static ats_int_type __ats_fun_56_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1) ; static ats_void_type split_58 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type merge_59 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ; static ats_int_type loop_61 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_vt_mergesort_01524_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type auxmain1_52 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_62 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type auxmain2_53 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr1_64 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr2_65 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type un_d1exp_sing_66 (ats_ptr_type arg0) ; static ats_void_type loop_69 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_70 (ats_ptr_type arg0) ; static ats_ptr_type auxlst2_71 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_cst_77 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type auxerr_cst_77_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxerr_cst_77_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxerr1_tmpid_78 (ats_ptr_type arg0) ; static ats_clo_ptr_type auxerr1_tmpid_78_closure_make () ; static ats_void_type auxerr1_tmpid_78_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxerr2_tmpid_79 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type auxerr2_tmpid_79_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr2_tmpid_79_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type list_length_compare_01411_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 1773(line=60, offs=3) -- 1812(line=60, offs=42) */ ATSstaticdec() ats_void_type prerr_FILENAME_02397_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02397_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans2_dynexp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02397_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 3128(line=141, offs=1) -- 3534(line=159, offs=4) */ ATSstaticdec() ats_ptr_type dynspecid_of_dqid_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_bool_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; __ats_lab_dynspecid_of_dqid_1: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d0ynq_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp2 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_0_1: do { /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; if (!tmp3) { goto __ats_lab_2_1 ; } tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDderef_0) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQ) ; if (!tmp4) { goto __ats_lab_3_1 ; } tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDassgn_1) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQCOLON) ; if (!tmp5) { goto __ats_lab_4_1 ; } tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDxchng_2) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDnone_3) ; break ; } while (0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDnone_3) ; break ; } while (0) ; return (tmp1) ; } /* end of [dynspecid_of_dqid_1] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02399_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab_prerr_interror_loc_02399_: /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp21 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp22 = */ prerr_FILENAME_02397_ () ; /* tmp19 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp19) */ ; } /* end of [prerr_interror_loc_02399_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 3591(line=164, offs=1) -- 4326(line=204, offs=4) */ ATSstaticdec() ats_ptr_type d2sym_bang_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_int_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_bool_type, tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab_d2sym_bang_2: /* ats_int_type tmp7 ; */ tmp7 = 0 ; /* ats_ptr_type tmp8 ; */ tmp8 = (ats_sum_ptr_type)0 ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp9 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp11 = atspre_iadd (tmp7, 1) ; tmp7 = tmp11 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp9 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_4, tmp9, atslab_0) ; ATS_FREE(tmp9) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp12)->tag != 4) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_1) ; tmp8 = tmp13 ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp14 = atspre_iadd (tmp7, 1) ; tmp7 = tmp14 ; break ; } while (0) ; break ; } while (0) ; tmp15 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp17 = atspre_gt_int_int (tmp7, 0) ; if (tmp17) { /* tmp18 = */ prerr_interror_loc_02399_ (tmp15) ; /* tmp23 = */ atspre_prerr_string (ATSstrcst(": d2sym_bang: d1e0 = ")) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp (arg0) ; /* tmp16 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none (tmp15) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2sym_make (tmp15, tmp25, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG, tmp8) ; return (tmp6) ; } /* end of [d2sym_bang_2] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 4355(line=207, offs=1) -- 5108(line=247, offs=4) */ ATSstaticdec() ats_ptr_type d2sym_lrbrackets_4 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_int_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_int_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_bool_type, tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab_d2sym_lrbrackets_4: /* ats_int_type tmp27 ; */ tmp27 = 0 ; /* ats_ptr_type tmp28 ; */ tmp28 = (ats_sum_ptr_type)0 ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LRBRACKETS) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp29 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp31 = atspre_iadd (tmp27, 1) ; tmp27 = tmp31 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp29 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_4, tmp29, atslab_0) ; ATS_FREE(tmp29) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp32)->tag != 4) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_5, tmp32, atslab_1) ; tmp28 = tmp33 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp34 = atspre_iadd (tmp27, 1) ; tmp27 = tmp34 ; break ; } while (0) ; break ; } while (0) ; tmp35 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp37 = atspre_gt_int_int (tmp27, 0) ; if (tmp37) { /* tmp38 = */ prerr_interror_loc_02399_ (tmp35) ; /* tmp39 = */ atspre_prerr_string (ATSstrcst(": d2sym_lrbrackets: d1e0 = ")) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp (arg0) ; /* tmp36 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none (tmp35) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2sym_make (tmp35, tmp41, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LRBRACKETS, tmp28) ; return (tmp26) ; } /* end of [d2sym_lrbrackets_4] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1478(line=42, offs=16) -- 1514(line=43, offs=32) */ ATSstaticdec() ats_void_type prerr_ERROR_beg_02395_ () { /* local vardec */ // ATSlocal_void (tmp48) ; __ats_lab_prerr_ERROR_beg_02395_: /* tmp48 = */ atspre_prerr_string (ATSstrcst("**ERROR(000000):beg**\n")) ; return /* (tmp48) */ ; } /* end of [prerr_ERROR_beg_02395_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2105(line=76, offs=17) -- 2163(line=79, offs=2) */ ATSstaticdec() ats_void_type prerr_error2_loc_02401_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; __ats_lab_prerr_error2_loc_02401_: /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp50 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ; return /* (tmp50) */ ; } /* end of [prerr_error2_loc_02401_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1551(line=46, offs=16) -- 1587(line=47, offs=32) */ ATSstaticdec() ats_void_type prerr_ERROR_end_02396_ () { /* local vardec */ // ATSlocal_void (tmp58) ; __ats_lab_prerr_ERROR_end_02396_: /* tmp58 = */ atspre_prerr_string (ATSstrcst("**ERROR(000000):end**\n")) ; return /* (tmp58) */ ; } /* end of [prerr_ERROR_end_02396_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 5164(line=252, offs=1) -- 6166(line=291, offs=4) */ ATSstaticdec() ats_void_type macdef_check_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_int_type, tmp44) ; ATSlocal (ats_bool_type, tmp45) ; ATSlocal (ats_bool_type, tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_bool_type, tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab_macdef_check_5: tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_get () ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_kind (arg1) ; tmp45 = atspre_gt_int_int (tmp43, 0) ; if (tmp45) { tmp46 = atspre_gte_int_int (tmp44, 1) ; if (tmp46) { /* tmp47 = */ prerr_ERROR_beg_02395_ () ; /* tmp49 = */ prerr_error2_loc_02401_ (arg0) ; /* tmp52 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg2) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ; /* tmp55 = */ atspre_prerr_string (ATSstrcst("] refers to a macdef in long form but one in short form is expected.")) ; /* tmp56 = */ atspre_prerr_newline () ; /* tmp57 = */ prerr_ERROR_end_02396_ () ; tmp59 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp59)->tag = 25 ; ats_selptrset_mac(anairiats_sum_5, tmp59, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp59, atslab_1, arg1) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp59) ; } else { /* empty */ } /* end of [if] */ } else { tmp60 = atspre_eq_int_int (tmp44, 0) ; if (tmp60) { /* tmp61 = */ prerr_ERROR_beg_02395_ () ; /* tmp62 = */ prerr_error2_loc_02401_ (arg0) ; /* tmp63 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg2) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ; /* tmp66 = */ atspre_prerr_string (ATSstrcst("] refers to a macdef in short form but one in long form is expected.")) ; /* tmp67 = */ atspre_prerr_newline () ; /* tmp68 = */ prerr_ERROR_end_02396_ () ; tmp69 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp69)->tag = 25 ; ats_selptrset_mac(anairiats_sum_5, tmp69, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp69, atslab_1, arg1) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp69) ; } else { /* empty */ } /* end of [if] */ } /* end of [if] */ return /* (tmp42) */ ; } /* end of [macdef_check_5] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 6200(line=293, offs=5) -- 6626(line=310, offs=4) */ ATSstaticdec() ats_void_type macvar_check_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_bool_type, tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab_macvar_check_9: tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_get () ; tmp72 = atspre_gt_int_int (tmp71, 0) ; if (tmp72) { /* tmp73 = */ prerr_error2_loc_02401_ (arg0) ; /* tmp74 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg2) ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ; /* tmp77 = */ atspre_prerr_string (ATSstrcst("] refers incorrectly to a macro argument variable.")) ; /* tmp78 = */ atspre_prerr_newline () ; tmp79 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp79)->tag = 26 ; ats_selptrset_mac(anairiats_sum_5, tmp79, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp79, atslab_1, arg1) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp79) ; } else { /* empty */ } /* end of [if] */ return /* (tmp70) */ ; } /* end of [macvar_check_9] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 6754(line=321, offs=1) -- 7104(line=334, offs=2) */ ATSstaticdec() ats_void_type auxerr_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab_auxerr_11: tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; /* tmp82 = */ prerr_error2_loc_02401_ (tmp83) ; /* tmp84 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("d1exp_tr_dqid")) ; /* tmp85 = */ atspre_prerr_string (ATSstrcst(": the dynamic identifier [")) ; /* tmp86 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg1) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp88 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp89 = */ atspre_prerr_newline () ; tmp90 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp90)->tag = 28 ; ats_selptrset_mac(anairiats_sum_7, tmp90, atslab_0, arg0) ; /* tmp81 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp90) ; return /* (tmp81) */ ; } /* end of [auxerr_11] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 6678(line=315, offs=1) -- 8679(line=397, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_tr_dqid_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; __ats_lab_d1exp_tr_dqid_10: tmp91 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua (arg1, arg2) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp92 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_14_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_4, tmp92, atslab_0) ; ATS_FREE(tmp92) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp93)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_7, tmp93, atslab_0) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cst (tmp91, tmp94) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp93)->tag != 1) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_7, tmp93, atslab_0) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_var (tmp91, tmp95) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp93)->tag != 2) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_7, tmp93, atslab_0) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2con_select_arity (tmp96, 0) ; if (tmp97 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 7429(line=350, offs=11) -- 7454(line=350, offs=36)") ; } tmp98 = ats_caselptrlab_mac(anairiats_sum_8, tmp97, atslab_0) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (tmp91) ; tmp100 = (ats_sum_ptr_type)0 ; tmp101 = (ats_sum_ptr_type)0 ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_con (tmp91, tmp98, tmp91, tmp100, -1, tmp99, tmp101) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp93)->tag != 3) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_7, tmp93, atslab_0) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_e1xp (tmp91, tmp102) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp103) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp93)->tag != 4) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_5, tmp93, atslab_1) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2sym_make (tmp91, arg1, arg2, tmp104) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sym (tmp91, tmp105) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp93)->tag != 5) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_7, tmp93, atslab_0) ; /* tmp107 = */ macdef_check_5 (tmp91, tmp106, arg1, arg2) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_mac (tmp91, tmp106) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (((ats_sum_ptr_type)tmp93)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_7, tmp93, atslab_0) ; /* tmp109 = */ macvar_check_9 (tmp91, tmp108, arg1, arg2) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_var (tmp91, tmp108) ; break ; } while (0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp92 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: /* tmp110 = */ auxerr_11 (arg0, arg1, arg2) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp91) ; break ; } while (0) ; return (tmp80) ; } /* end of [d1exp_tr_dqid_10] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 9351(line=434, offs=3) -- 9777(line=452, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_deref (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_deref: tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } tmp113 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; if (tmp113 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp115 = d2sym_bang_2 (tmp114) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp114) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_deref (tmp112, tmp115, tmp116) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: /* tmp117 = */ prerr_interror_loc_02399_ (tmp112) ; /* tmp118 = */ atspre_prerr_string (ATSstrcst(": d1exp_tr_deref: d1e0 = ")) ; /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp (arg0) ; /* tmp120 = */ atspre_prerr_newline () ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_deref] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 9833(line=456, offs=3) -- 10233(line=471, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_assgn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_assgn: tmp122 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } tmp123 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; if (tmp123 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } tmp124 = ats_caselptrlab_mac(anairiats_sum_8, tmp123, atslab_1) ; if (tmp124 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_8, tmp123, atslab_0) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp125) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp126) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_assgn (tmp122, tmp127, tmp128) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: /* tmp129 = */ prerr_interror_loc_02399_ (tmp122) ; /* tmp130 = */ atspre_prerr_string (ATSstrcst(": d1exp_tr_assgn: d1e0 = ")) ; /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp (arg0) ; /* tmp132 = */ atspre_prerr_newline () ; /* tmp121 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; return (tmp121) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_assgn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 10289(line=475, offs=3) -- 10689(line=490, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_xchng (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_xchng: tmp134 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } tmp135 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; if (tmp135 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } tmp136 = ats_caselptrlab_mac(anairiats_sum_8, tmp135, atslab_1) ; if (tmp136 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp138 = ats_caselptrlab_mac(anairiats_sum_8, tmp135, atslab_0) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp137) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp138) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_xchng (tmp134, tmp139, tmp140) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: /* tmp141 = */ prerr_interror_loc_02399_ (tmp134) ; /* tmp142 = */ atspre_prerr_string (ATSstrcst(": d1exp_tr_xchng: d1e0 = ")) ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp (arg0) ; /* tmp144 = */ atspre_prerr_newline () ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; return (tmp133) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_xchng] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 10743(line=495, offs=1) -- 12038(line=538, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_tr_app_dyn_dqid_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; // ATSlocal_void (tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab_d1exp_tr_app_dyn_dqid_15: tmp146 = dynspecid_of_dqid_1 (arg2, arg3) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp146)->tag != 0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_deref (arg0, arg6) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp146)->tag != 1) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_assgn (arg0, arg6) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp146)->tag != 2) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_xchng (arg0, arg6) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua (arg2, arg3) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (tmp147 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_33_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_4, tmp147, atslab_0) ; ATS_FREE(tmp147) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp148)->tag != 3) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_7, tmp148, atslab_0) ; tmp145 = d1exp_tr_app_dyn_e1xp_16 (arg0, arg1, tmp149, arg4, arg5, arg6) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp150 = (ats_sum_ptr_type)0 ; tmp145 = d1exp_tr_app_sta_dyn_dqid_itm_18 (arg0, arg1, arg1, arg2, arg3, tmp148, tmp150, arg4, arg5, arg6) ; break ; } while (0) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (tmp147 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp152 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_d1exp_loc) ; /* tmp151 = */ prerr_error2_loc_02401_ (tmp152) ; /* tmp153 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("d1exp_tr_app_dyn_dqid")) ; /* tmp154 = */ atspre_prerr_string (ATSstrcst(": the dynamic identifier [")) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg2) ; /* tmp156 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ; /* tmp157 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp158 = */ atspre_prerr_newline () ; tmp160 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp160)->tag = 28 ; ats_selptrset_mac(anairiats_sum_7, tmp160, atslab_0, arg0) ; /* tmp159 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp160) ; tmp161 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp161) ; break ; } while (0) ; break ; } while (0) ; return (tmp145) ; } /* end of [d1exp_tr_app_dyn_dqid_15] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 12469(line=563, offs=20) -- 12537(line=563, offs=88) */ ATSstaticdec() ats_ptr_type __ats_fun_19 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp166) ; __ats_lab___ats_fun_19: tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_d1exp (env0, arg0) ; return (tmp166) ; } /* end of [__ats_fun_19] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_19_closure_type ; ats_ptr_type __ats_fun_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_19 (((__ats_fun_19_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_19_closure_init (__ats_fun_19_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_19_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53639(line=1919, offs=6) -- 53788(line=1925, offs=6) */ ATSstaticdec() ats_ptr_type app_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp170) ; __ats_lab_app_21: tmp170 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp170) ; } /* end of [app_21] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; __ats_lab_loop_23: 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: tmp173 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp175 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp173, arg3) ; tmp176 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp176, atslab_0, tmp175) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp176 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp177 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp174 ; arg1 = arg1 ; arg2 = tmp177 ; arg3 = arg3 ; goto __ats_lab_loop_23 ; // 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: tmp178 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp178 ; break ; } while (0) ; return /* (tmp172) */ ; } /* end of [loop_23] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp179) ; // ATSlocal_void (tmp180) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp179 ; */ /* tmp180 = */ loop_23 (arg0, arg1, (&tmp179), arg2) ; tmp171 = tmp179 ; return (tmp171) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53503(line=1915, offs=23) -- 53963(line=1932, offs=4) */ ATSstaticdec() ats_ptr_type list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp169) ; __ats_lab_list_map_vclo_01414_ats_ptr_type_ats_ptr_type: tmp169 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_21, arg1) ; return (tmp169) ; } /* end of [list_map_vclo_01414_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 12078(line=541, offs=1) -- 13120(line=587, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_tr_app_dyn_e1xp_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (__ats_fun_19_closure_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; __ats_lab_d1exp_tr_app_dyn_e1xp_16: tmp163 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg2), atslab_e1xp_node) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp163)->tag != 10) { goto __ats_lab_40_0 ; } __ats_lab_37_1: tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; /* ats_ptr_type tmp165 ; */ tmp165 = &(tmp167) ; __ats_fun_19_closure_init (tmp165, tmp164) ; // closure initialization tmp168 = list_map_vclo_01414_ats_ptr_type_ats_ptr_type (arg5, tmp165) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (tmp164, arg2, tmp164, ats_castfn_mac(ats_ptr_type, tmp168)) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize (tmp181) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_e1xp (tmp164, tmp182) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp183) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: tmp184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_d1exp_loc) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_e1xp (tmp184, arg2) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_dyn (arg0, tmp185, arg3, arg4, arg5) ; break ; } while (0) ; return (tmp162) ; } /* end of [d1exp_tr_app_dyn_e1xp_16] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 13160(line=590, offs=1) -- 14105(line=626, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_tr_app_sta_dyn_dqid_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_int_type arg7, ats_ptr_type arg8) { /* local vardec */ ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; // ATSlocal_void (tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; // ATSlocal_void (tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; __ats_lab_d1exp_tr_app_sta_dyn_dqid_17: tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua (arg3, arg4) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (tmp187 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp188 = ats_caselptrlab_mac(anairiats_sum_4, tmp187, atslab_0) ; ATS_FREE(tmp187) ; tmp186 = d1exp_tr_app_sta_dyn_dqid_itm_18 (arg0, arg1, arg1, arg3, arg4, tmp188, arg5, arg6, arg7, arg8) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (tmp187 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp190 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_d1exp_loc) ; /* tmp189 = */ prerr_error2_loc_02401_ (tmp190) ; /* tmp191 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("d1exp_tr_app_sta_dyn_dqid")) ; /* tmp192 = */ atspre_prerr_string (ATSstrcst(": unrecognized dynamic identifier [")) ; /* tmp193 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg3) ; /* tmp194 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg4) ; /* tmp195 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp196 = */ atspre_prerr_newline () ; tmp198 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp198)->tag = 28 ; ats_selptrset_mac(anairiats_sum_7, tmp198, atslab_0, arg0) ; /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp198) ; tmp199 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp199) ; break ; } while (0) ; return (tmp186) ; } /* end of [d1exp_tr_app_sta_dyn_dqid_17] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_25 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_int_type, tmp217) ; __ats_lab_loop_25: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp217 = atspre_isucc (arg1) ; arg0 = tmp216 ; arg1 = tmp217 ; goto __ats_lab_loop_25 ; // tail call break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp215 = arg1 ; break ; } while (0) ; return (tmp215) ; } /* end of [loop_25] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp214) ; __ats_lab_list_length_01410_ats_ptr_type: tmp214 = loop_25 (arg0, 0) ; return (tmp214) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 14149(line=629, offs=1) -- 17389(line=771, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_tr_app_sta_dyn_dqid_itm_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_int_type arg8, ats_ptr_type arg9) { /* local vardec */ ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_int_type, tmp222) ; ATSlocal (ats_bool_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; // ATSlocal_void (tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; // ATSlocal_void (tmp242) ; // ATSlocal_void (tmp243) ; // ATSlocal_void (tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; __ats_lab_d1exp_tr_app_sta_dyn_dqid_itm_18: tmp201 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp202 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_d1exp_loc) ; tmp203 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_d1exp_loc) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)arg5)->tag != 0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_7, arg5, atslab_0) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cst (tmp203, tmp204) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (arg6) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (arg9) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta_dyn (tmp201, tmp202, tmp205, tmp206, arg7, arg8, tmp207) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg5)->tag != 1) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_7, arg5, atslab_0) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_var (tmp203, tmp208) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (arg6) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (arg9) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta_dyn (tmp201, tmp202, tmp209, tmp210, arg7, arg8, tmp211) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg5)->tag != 2) { goto __ats_lab_48_0 ; } __ats_lab_45_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_7, arg5, atslab_0) ; tmp213 = list_length_01410_ats_ptr_type (arg9) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2con_select_arity (tmp212, tmp213) ; if (tmp218 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 15576(line=691, offs=9) -- 15604(line=691, offs=37)") ; } tmp219 = ats_caselptrlab_mac(anairiats_sum_8, tmp218, atslab_0) ; tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (arg6) ; tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (arg9) ; tmp223 = atspre_gte_int_int (arg8, -1) ; if (tmp223) { tmp222 = arg8 ; } else { tmp222 = -1 ; } /* end of [if] */ tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_con (tmp201, tmp219, tmp202, tmp220, tmp222, arg7, tmp221) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg5)->tag != 3) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_7, arg5, atslab_0) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_make_e1xp (tmp203, tmp224) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_sta_dyn (arg0, arg1, tmp225, arg6, arg7, arg8, arg9) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg5)->tag != 4) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp226 = ats_caselptrlab_mac(anairiats_sum_5, arg5, atslab_1) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2sym_make (tmp203, arg3, arg4, tmp226) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sym (tmp203, tmp227) ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (arg6) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (arg9) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta_dyn (tmp201, tmp202, tmp228, tmp229, arg7, arg8, tmp230) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg5)->tag != 5) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp231 = ats_caselptrlab_mac(anairiats_sum_7, arg5, atslab_0) ; tmp232 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_d1exp_loc) ; /* tmp233 = */ macdef_check_5 (tmp232, tmp231, arg3, arg4) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_mac (tmp232, tmp231) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (arg6) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (arg9) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta_dyn (tmp201, tmp202, tmp234, tmp235, arg7, arg8, tmp236) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: /* tmp237 = */ prerr_error2_loc_02401_ (tmp203) ; /* tmp238 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("d1exp_tr_app_sta_dyn_dqid_itm")) ; /* tmp239 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg3) ; /* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg4) ; /* tmp242 = */ atspre_prerr_string (ATSstrcst("] does not refer to any variable, constant or constructor.")) ; /* tmp243 = */ atspre_prerr_newline () ; tmp245 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp245)->tag = 28 ; ats_selptrset_mac(anairiats_sum_7, tmp245, atslab_0, arg0) ; /* tmp244 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp245) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp201) ; break ; } while (0) ; return (tmp200) ; } /* end of [d1exp_tr_app_sta_dyn_dqid_itm_18] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 17481(line=777, offs=1) -- 18055(line=803, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_dyn: tmp247 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_d1exp_node) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp247)->tag != 0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp248 = ats_caselptrlab_mac(anairiats_sum_7, tmp247, atslab_0) ; tmp246 = d1exp_tr_app_dyn_dqid_15 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none, tmp248, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp247)->tag != 1) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_5, tmp247, atslab_0) ; tmp250 = ats_caselptrlab_mac(anairiats_sum_5, tmp247, atslab_1) ; tmp246 = d1exp_tr_app_dyn_dqid_15 (arg0, arg1, tmp249, tmp250, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: __ats_lab_54_1: tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (arg1) ; tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (arg4) ; tmp253 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_dyn (tmp253, tmp251, arg3, arg2, tmp252) ; break ; } while (0) ; return (tmp246) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_dyn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 18117(line=807, offs=1) -- 18863(line=835, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_sta_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_sta_dyn: tmp255 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_d1exp_node) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp255)->tag != 0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_7, tmp255, atslab_0) ; tmp254 = d1exp_tr_app_sta_dyn_dqid_17 (arg0, arg1, arg2, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none, tmp256, arg3, arg4, arg5, arg6) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp255)->tag != 1) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp257 = ats_caselptrlab_mac(anairiats_sum_5, tmp255, atslab_0) ; tmp258 = ats_caselptrlab_mac(anairiats_sum_5, tmp255, atslab_1) ; tmp254 = d1exp_tr_app_sta_dyn_dqid_17 (arg0, arg1, arg2, tmp257, tmp258, arg3, arg4, arg5, arg6) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (arg2) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (arg3) ; tmp261 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (arg6) ; tmp262 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp263 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_d1exp_loc) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta_dyn (tmp262, tmp263, tmp259, tmp260, arg4, arg5, tmp261) ; break ; } while (0) ; return (tmp254) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_sta_dyn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 18997(line=845, offs=16) -- 19856(line=885, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macsyn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; // ATSlocal_void (tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; // ATSlocal_void (tmp277) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macsyn: tmp265 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp266 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_node) ; if (((ats_sum_ptr_type)tmp266)->tag != 68) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 19043(line=848, offs=5) -- 19081(line=848, offs=43)") ; } tmp267 = ats_caselptrlab_mac(anairiats_sum_5, tmp266, atslab_0) ; tmp268 = ats_caselptrlab_mac(anairiats_sum_5, tmp266, atslab_1) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp267)->tag != 2) { goto __ats_lab_59_0 ; } __ats_lab_58_1: /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_dec (tmp265) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp268) ; /* tmp271 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_inc (tmp265) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macsyn (tmp265, tmp267, tmp270) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp267)->tag != 1) { goto __ats_lab_60_0 ; } __ats_lab_59_1: /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_dec (tmp265) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp268) ; /* tmp274 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_inc (tmp265) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macsyn (tmp265, tmp267, tmp273) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (((ats_sum_ptr_type)tmp267)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: /* tmp275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_inc (tmp265) ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp268) ; /* tmp277 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_dec (tmp265) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macsyn (tmp265, tmp267, tmp276) ; break ; } while (0) ; return (tmp264) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macsyn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 19985(line=895, offs=16) -- 20148(line=904, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macfun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macfun: tmp279 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp280 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_node) ; if (((ats_sum_ptr_type)tmp280)->tag != 69) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 20031(line=898, offs=5) -- 20071(line=898, offs=45)") ; } tmp281 = ats_caselptrlab_mac(anairiats_sum_5, tmp280, atslab_0) ; tmp282 = ats_caselptrlab_mac(anairiats_sum_5, tmp280, atslab_1) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp282) ; tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macfun (tmp279, tmp281, tmp283) ; return (tmp278) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macfun] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 20203(line=909, offs=1) -- 20472(line=920, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_tr_arrsub_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; __ats_lab_d1exp_tr_arrsub_30: tmp285 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp286 = d2sym_lrbrackets_4 (arg0) ; tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (arg1) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (arg3) ; tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrsub (tmp285, tmp286, tmp287, arg2, tmp288) ; return (tmp284) ; } /* end of [d1exp_tr_arrsub_30] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 20573(line=927, offs=1) -- 21561(line=962, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_tr_wths1explst_31 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; // ATSlocal_void (tmp303) ; // ATSlocal_void (tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; // ATSlocal_void (tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; __ats_lab_d1exp_tr_wths1explst_31: tmp290 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp291 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_node) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp291)->tag != 65) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp292 = ats_caselptrlab_mac(anairiats_sum_5, tmp291, atslab_0) ; tmp293 = ats_caselptrlab_mac(anairiats_sum_5, tmp291, atslab_1) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp292) ; tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred (tmp293, arg1) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (tmp290, tmp294, tmp295) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp291)->tag != 66) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_5, tmp291, atslab_0) ; tmp297 = ats_caselptrlab_mac(anairiats_sum_5, tmp291, atslab_1) ; tmp298 = d1exp_tr_wths1explst_31 (tmp296, arg1) ; tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr (tmp297) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff (tmp290, tmp298, tmp299) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp291)->tag != 67) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp300 = ats_caselptrlab_mac(anairiats_sum_5, tmp291, atslab_0) ; tmp301 = ats_caselptrlab_mac(anairiats_sum_5, tmp291, atslab_1) ; tmp302 = d1exp_tr_wths1explst_31 (tmp300, arg1) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo (tmp290, tmp302, tmp301) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: __ats_lab_64_1: /* tmp303 = */ prerr_error2_loc_02401_ (tmp290) ; /* tmp304 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("d1exp_wths1explst_tr")) ; /* tmp305 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression is expected to be ascribed a type but it is not.")) ; /* tmp306 = */ atspre_prerr_newline () ; tmp308 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp308)->tag = 28 ; ats_selptrset_mac(anairiats_sum_7, tmp308, atslab_0, arg0) ; /* tmp307 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp308) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp290) ; break ; } while (0) ; return (tmp289) ; } /* end of [d1exp_tr_wths1explst_31] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 21603(line=965, offs=1) -- 22764(line=1003, offs=4) */ ATSstaticdec() anairiats_rec_10 d1exp_tr_arg_body_32 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (anairiats_rec_10, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_int_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_int_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; // ATSlocal_void (tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; // ATSlocal_void (tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; // ATSlocal_void (tmp327) ; // ATSlocal_void (tmp328) ; ATSlocal (ats_bool_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; // ATSlocal_void (tmp331) ; // ATSlocal_void (tmp332) ; __ats_lab_d1exp_tr_arg_body_32: /* ats_ptr_type tmp310 ; */ tmp310 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ; tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg (arg0, (&tmp310)) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_reverse (tmp310) ; tmp310 = tmp312 ; /* ats_int_type tmp313 ; */ tmp313 = -1 ; tmp315 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp311), atslab_p2at_node) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp315)->tag != 18) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp316 = ats_caselptrlab_mac(anairiats_sum_12, tmp315, atslab_0) ; tmp317 = ats_caselptrlab_mac(anairiats_sum_12, tmp315, atslab_1) ; tmp313 = tmp316 ; tmp314 = tmp317 ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: tmp318 = (ats_sum_ptr_type)0 ; tmp314 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp314, atslab_0, tmp311) ; ats_selptrset_mac(anairiats_sum_8, tmp314, atslab_1, tmp318) ; break ; } while (0) ; /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp320 = ats_selsin_mac(tmp319, atslab_1) */ ; tmp323 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp311), atslab_p2at_svs) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp323) ; /* tmp321 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp322) ; tmp326 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp311), atslab_p2at_dvs) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp326) ; /* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (tmp325) ; /* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc () ; /* tmp328 = ats_selsin_mac(tmp327, atslab_1) */ ; tmp329 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none (tmp310) ; if (tmp329) { tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (arg1) ; } else { tmp330 = d1exp_tr_wths1explst_31 (arg1, tmp310) ; } /* end of [if] */ /* tmp331 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec () ; /* tmp332 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () ; tmp309.atslab_0 = tmp313 ; tmp309.atslab_1 = tmp314 ; tmp309.atslab_2 = tmp330 ; return (tmp309) ; } /* end of [d1exp_tr_arg_body_32] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 22821(line=1008, offs=1) -- 23642(line=1045, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_tr_delay_33 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_int_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_bool_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; __ats_lab_d1exp_tr_delay_33: tmp334 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp335 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_node) ; if (((ats_sum_ptr_type)tmp335)->tag != 60) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 22966(line=1016, offs=5) -- 23003(line=1016, offs=42)") ; } tmp336 = ats_caselptrlab_mac(anairiats_sum_12, tmp335, atslab_0) ; tmp337 = ats_caselptrlab_mac(anairiats_sum_12, tmp335, atslab_1) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: __ats_lab_67_1: tmp338 = atspre_eq_int_int (tmp336, 0) ; if (!tmp338) { goto __ats_lab_68_1 ; } tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp337) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_delay (tmp334, tmp339) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: tmp340 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp337), atslab_d1exp_node) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp340)->tag != 30) { goto __ats_lab_72_0 ; } __ats_lab_69_1: tmp341 = ats_caselptrlab_mac(anairiats_sum_12, tmp340, atslab_1) ; do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (tmp341 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } tmp342 = ats_caselptrlab_mac(anairiats_sum_8, tmp341, atslab_1) ; if (tmp342 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp343 = ats_caselptrlab_mac(anairiats_sum_8, tmp341, atslab_0) ; tmp344 = ats_caselptrlab_mac(anairiats_sum_8, tmp342, atslab_0) ; tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp343) ; tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp344) ; tmp347 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp347, atslab_0, tmp346) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay (tmp334, tmp345, tmp347) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: __ats_lab_71_1: tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp337) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay_none (tmp334, tmp348) ; break ; } while (0) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: __ats_lab_72_1: tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp337) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay_none (tmp334, tmp349) ; break ; } while (0) ; break ; } while (0) ; return (tmp333) ; } /* end of [d1exp_tr_delay_33] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 23756(line=1052, offs=5) -- 24115(line=1060, offs=2) */ ATSstaticdec() ats_void_type auxerr1_35 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; // ATSlocal_void (tmp354) ; // ATSlocal_void (tmp355) ; // ATSlocal_void (tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; // ATSlocal_void (tmp358) ; // ATSlocal_void (tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; __ats_lab_auxerr1_35: tmp353 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i1nvarg_loc) ; /* tmp352 = */ prerr_error2_loc_02401_ (tmp353) ; /* tmp354 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("i1nvarglst_tr")) ; /* tmp355 = */ atspre_prerr_string (ATSstrcst(": the dynamic identifier [")) ; tmp357 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i1nvarg_sym) ; /* tmp356 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp357) ; /* tmp358 = */ atspre_prerr_string (ATSstrcst("] should refer to a variable but it does not.")) ; /* tmp359 = */ atspre_prerr_newline () ; tmp360 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp360)->tag = 30 ; ats_selptrset_mac(anairiats_sum_7, tmp360, atslab_0, arg0) ; /* tmp351 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp360) ; return /* (tmp351) */ ; } /* end of [auxerr1_35] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 24140(line=1061, offs=5) -- 24472(line=1069, offs=2) */ ATSstaticdec() ats_void_type auxerr2_36 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp361) ; // ATSlocal_void (tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; // ATSlocal_void (tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; // ATSlocal_void (tmp368) ; // ATSlocal_void (tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; __ats_lab_auxerr2_36: tmp363 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i1nvarg_loc) ; /* tmp362 = */ prerr_error2_loc_02401_ (tmp363) ; /* tmp364 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("i1nvarglst_tr")) ; /* tmp365 = */ atspre_prerr_string (ATSstrcst(": the dynamic identifier [")) ; tmp367 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i1nvarg_sym) ; /* tmp366 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp367) ; /* tmp368 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp369 = */ atspre_prerr_newline () ; tmp370 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp370)->tag = 30 ; ats_selptrset_mac(anairiats_sum_7, tmp370, atslab_0, arg0) ; /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp370) ; return /* (tmp361) */ ; } /* end of [auxerr2_36] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 23696(line=1049, offs=5) -- 25172(line=1099, offs=4) */ ATSstaticdec() ats_ptr_type i1nvarg_tr_34 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; // ATSlocal_void (tmp380) ; // ATSlocal_void (tmp381) ; __ats_lab_i1nvarg_tr_34: tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i1nvarg_sym) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (tmp372) ; do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (tmp371 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_73_1: tmp373 = ats_caselptrlab_mac(anairiats_sum_4, tmp371, atslab_0) ; ATS_FREE(tmp371) ; do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp373)->tag != 1) { goto __ats_lab_77_0 ; } __ats_lab_74_1: tmp374 = ats_caselptrlab_mac(anairiats_sum_7, tmp373, atslab_0) ; tmp376 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i1nvarg_type) ; do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (tmp376 == (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp377 = ats_caselptrlab_mac(anairiats_sum_4, tmp376, atslab_0) ; tmp378 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp377) ; tmp375 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp375, atslab_0, tmp378) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (tmp376 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp375 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_make (tmp374, tmp375) ; tmp350 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp350, atslab_0, tmp379) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: __ats_lab_77_1: /* tmp380 = */ auxerr1_35 (arg0) ; tmp350 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (tmp371 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: /* tmp381 = */ auxerr2_36 (arg0) ; tmp350 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp350) ; } /* end of [i1nvarg_tr_34] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 25201(line=1102, offs=1) -- 25623(line=1119, offs=4) */ ATSstaticdec() ats_ptr_type i1nvarglst_tr_37 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; __ats_lab_i1nvarglst_tr_37: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_79_1: tmp383 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp384 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp385 = i1nvarg_tr_34 (tmp383) ; do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (tmp385 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp386 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; ATS_FREE(tmp385) ; tmp387 = i1nvarglst_tr_37 (tmp384) ; tmp382 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp382, atslab_0, tmp386) ; ats_selptrset_mac(anairiats_sum_8, tmp382, atslab_1, tmp387) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (tmp385 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: arg0 = tmp384 ; goto __ats_lab_i1nvarglst_tr_37 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: tmp382 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp382) ; } /* end of [i1nvarglst_tr_37] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 25655(line=1122, offs=1) -- 25876(line=1128, offs=4) */ ATSstaticdec() ats_ptr_type i1nvresstate_tr_38 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (anairiats_rec_2, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; __ats_lab_i1nvresstate_tr_38: tmp390 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_i1nvresstate_qua) ; tmp389 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp390) ; tmp392 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_i1nvresstate_arg) ; tmp391 = i1nvarglst_tr_37 (tmp392) ; tmp393 = ats_select_mac(tmp389, atslab_s2qua_svs) ; tmp394 = ats_select_mac(tmp389, atslab_s2qua_sps) ; tmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make (tmp393, tmp394, tmp391) ; return (tmp388) ; } /* end of [i1nvresstate_tr_38] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 25910(line=1131, offs=1) -- 26419(line=1147, offs=4) */ ATSstaticdec() ats_ptr_type loopi1nv_tr_39 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (anairiats_rec_2, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; __ats_lab_loopi1nv_tr_39: tmp396 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_loopi1nv_loc) ; tmp398 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_loopi1nv_qua) ; tmp397 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp398) ; tmp399 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_loopi1nv_met) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (tmp399 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp401 = ats_caselptrlab_mac(anairiats_sum_4, tmp399, atslab_0) ; tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int (tmp401) ; tmp400 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp400, atslab_0, tmp402) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: // if (tmp399 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_84_1: tmp400 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp404 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_loopi1nv_arg) ; tmp403 = i1nvarglst_tr_37 (tmp404) ; tmp406 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_loopi1nv_res) ; tmp405 = i1nvresstate_tr_38 (tmp406) ; tmp407 = ats_select_mac(tmp397, atslab_s2qua_svs) ; tmp408 = ats_select_mac(tmp397, atslab_s2qua_sps) ; tmp395 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__loopi2nv_make (tmp396, tmp407, tmp408, tmp400, tmp403, tmp405) ; return (tmp395) ; } /* end of [loopi1nv_tr_39] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 26470(line=1152, offs=1) -- 26633(line=1158, offs=4) */ ATSstaticdec() ats_ptr_type i1fcl_tr_40 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; __ats_lab_i1fcl_tr_40: tmp411 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_i1fcl_test) ; tmp410 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp411) ; tmp413 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_i1fcl_body) ; tmp412 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp413) ; tmp414 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_i1fcl_loc) ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2fcl_make (tmp414, tmp410, tmp412) ; return (tmp409) ; } /* end of [i1fcl_tr_40] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 26660(line=1161, offs=1) -- 26821(line=1168, offs=2) */ ATSstaticdec() ats_ptr_type i1fclist_tr_41 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; __ats_lab_i1fclist_tr_41: do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp416 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp417 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp418 = i1fcl_tr_40 (tmp416) ; tmp419 = i1fclist_tr_41 (tmp417) ; tmp415 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp415, atslab_0, tmp418) ; ats_selptrset_mac(anairiats_sum_8, tmp415, atslab_1, tmp419) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: tmp415 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp415) ; } /* end of [i1fclist_tr_41] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 26875(line=1173, offs=1) -- 27404(line=1193, offs=4) */ ATSstaticdec() ats_ptr_type gm1at_tr_42 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; // ATSlocal_void (tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; // ATSlocal_void (tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; __ats_lab_gm1at_tr_42: tmp422 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_gm1at_exp) ; tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp422) ; tmp424 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_gm1at_pat) ; do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (tmp424 == (ats_sum_ptr_type)0) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp425 = ats_caselptrlab_mac(anairiats_sum_4, tmp424, atslab_0) ; tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (tmp425) ; tmp428 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp426), atslab_p2at_svs) ; tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp428) ; /* tmp429 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp427) ; tmp431 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp426), atslab_p2at_dvs) ; tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp431) ; /* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (tmp430) ; tmp423 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp423, atslab_0, tmp426) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: // if (tmp424 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_88_1: tmp423 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp433 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_gm1at_loc) ; tmp420 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__gm2at_make (tmp433, tmp421, tmp423) ; return (tmp420) ; } /* end of [gm1at_tr_42] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 27513(line=1201, offs=5) -- 27915(line=1216, offs=4) */ ATSstaticdec() ats_void_type auxerr_44 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp435) ; // ATSlocal_void (tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; // ATSlocal_void (tmp438) ; // ATSlocal_void (tmp439) ; // ATSlocal_void (tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_bool_type, tmp442) ; // ATSlocal_void (tmp443) ; // ATSlocal_void (tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; __ats_lab_auxerr_44: tmp437 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_c1lau_loc) ; /* tmp436 = */ prerr_error2_loc_02401_ (tmp437) ; /* tmp438 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("c1lau_tr")) ; /* tmp439 = */ atspre_prerr_string (ATSstrcst(": this clause should contain ")) ; tmp442 = atspre_gte_int_int (arg1, arg2) ; if (tmp442) { tmp441 = ATSstrcst("more") ; } else { tmp441 = ATSstrcst("fewer") ; } /* end of [if] */ /* tmp440 = */ atspre_prerr_string (tmp441) ; /* tmp443 = */ atspre_prerr_string (ATSstrcst(" patterns.")) ; /* tmp444 = */ atspre_prerr_newline () ; tmp445 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp445)->tag = 31 ; ats_selptrset_mac(anairiats_sum_7, tmp445, atslab_0, arg0) ; /* tmp435 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp445) ; return /* (tmp435) */ ; } /* end of [auxerr_44] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp472) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp472 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp472) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 27452(line=1198, offs=1) -- 29169(line=1287, offs=4) */ ATSstaticdec() ats_ptr_type c1lau_tr_43 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_int_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_bool_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_int_type, tmp458) ; ATSlocal (ats_bool_type, tmp459) ; // ATSlocal_void (tmp460) ; ATSlocal (ats_bool_type, tmp461) ; // ATSlocal_void (tmp462) ; // ATSlocal_void (tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; // ATSlocal_void (tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; // ATSlocal_void (tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; // ATSlocal_void (tmp475) ; ATSlocal (ats_int_type, tmp476) ; ATSlocal (ats_int_type, tmp477) ; __ats_lab_c1lau_tr_43: tmp446 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_c1lau_loc) ; tmp447 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_c1lau_pat) ; tmp449 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, tmp447), atslab_p1at_node) ; do { /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp449)->tag != 14) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp450 = ats_caselptrlab_mac(anairiats_sum_12, tmp449, atslab_1) ; tmp448 = tmp450 ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: __ats_lab_90_1: tmp451 = (ats_sum_ptr_type)0 ; tmp448 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp448, atslab_0, tmp447) ; ats_selptrset_mac(anairiats_sum_8, tmp448, atslab_1, tmp451) ; break ; } while (0) ; tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr (tmp448) ; tmp453 = list_length_01410_ats_ptr_type (tmp452) ; tmp455 = atspre_igt (tmp453, 0) ; if (tmp455) { tmp454 = tmp452 ; } else { tmp456 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any (tmp446) ; tmp457 = (ats_sum_ptr_type)0 ; tmp454 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp454, atslab_0, tmp456) ; ats_selptrset_mac(anairiats_sum_8, tmp454, atslab_1, tmp457) ; } /* end of [if] */ tmp459 = atspre_igt (tmp453, 0) ; if (tmp459) { tmp458 = tmp453 ; } else { tmp458 = 1 ; } /* end of [if] */ tmp461 = atspre_neq_int_int (arg0, tmp458) ; if (tmp461) { /* tmp460 = */ auxerr_44 (arg1, arg0, tmp458) ; } else { /* empty */ } /* end of [if] */ /* tmp462 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp463 = ats_selsin_mac(tmp462, atslab_1) */ ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union (tmp454) ; tmp464 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp465) ; /* tmp466 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp464) ; tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union (tmp454) ; tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp468) ; /* tmp469 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (tmp467) ; tmp470 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_c1lau_gua) ; tmp471 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp470, &gm1at_tr_42) ; tmp474 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_c1lau_body) ; tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp474) ; /* tmp475 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () ; tmp476 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_c1lau_seq) ; tmp477 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_c1lau_neg) ; tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__c2lau_make (tmp446, tmp454, ats_castfn_mac(ats_ptr_type, tmp471), tmp476, tmp477, tmp473) ; return (tmp434) ; } /* end of [c1lau_tr_43] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 29196(line=1289, offs=5) -- 29395(line=1295, offs=2) */ ATSstaticdec() ats_ptr_type c1laulst_tr_46 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; __ats_lab_c1laulst_tr_46: do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp479 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp480 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp481 = c1lau_tr_43 (arg0, tmp479) ; tmp482 = c1laulst_tr_46 (arg0, tmp480) ; tmp478 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp478, atslab_0, tmp481) ; ats_selptrset_mac(anairiats_sum_8, tmp478, atslab_1, tmp482) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: tmp478 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp478) ; } /* end of [c1laulst_tr_46] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 29446(line=1299, offs=5) -- 29808(line=1310, offs=4) */ ATSstaticdec() ats_ptr_type sc1lau_trdn_47 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; // ATSlocal_void (tmp485) ; // ATSlocal_void (tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; // ATSlocal_void (tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; // ATSlocal_void (tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; __ats_lab_sc1lau_trdn_47: tmp484 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_sc1lau_pat) ; /* tmp485 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp486 = ats_selsin_mac(tmp485, atslab_1) */ ; tmp487 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sp1at_trdn (tmp484, arg1) ; /* tmp488 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_sp2at (tmp487) ; tmp490 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_sc1lau_body) ; tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp490) ; /* tmp491 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp492 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_sc1lau_loc) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sc2lau_make (tmp492, tmp487, tmp489) ; return (tmp483) ; } /* end of [sc1lau_trdn_47] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 29836(line=1312, offs=5) -- 30034(line=1319, offs=2) */ ATSstaticdec() ats_ptr_type sc1laulst_trdn_48 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; __ats_lab_sc1laulst_trdn_48: do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp494 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp495 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp496 = sc1lau_trdn_47 (tmp494, arg1) ; tmp497 = sc1laulst_trdn_48 (tmp495, arg1) ; tmp493 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp493, atslab_0, tmp496) ; ats_selptrset_mac(anairiats_sum_8, tmp493, atslab_1, tmp497) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: tmp493 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp493) ; } /* end of [sc1laulst_trdn_48] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 30137(line=1329, offs=1) -- 30352(line=1340, offs=4) */ ATSstaticdec() ats_int_type sc2lau_get_dstag_49 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; __ats_lab_sc2lau_get_dstag_49: tmp499 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_sc2lau_pat) ; tmp500 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp499), atslab_sp2at_node) ; do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (tmp500 == (ats_sum_ptr_type)0) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp501 = ats_caselptrlab_mac(anairiats_sum_8, tmp500, atslab_0) ; tmp498 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dstag (tmp501) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: // if (tmp500 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_96_1: tmp498 = -1 ; break ; } while (0) ; return (tmp498) ; } /* end of [sc2lau_get_dstag_49] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 30387(line=1342, offs=5) -- 30657(line=1350, offs=4) */ ATSstaticdec() ats_void_type auxerr_lt_50 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; // ATSlocal_void (tmp504) ; // ATSlocal_void (tmp505) ; // ATSlocal_void (tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; __ats_lab_auxerr_lt_50: tmp503 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg1), atslab_sc2lau_loc) ; /* tmp504 = */ prerr_error2_loc_02401_ (tmp503) ; /* tmp505 = */ atspre_prerr_string (ATSstrcst(": the static clause is repeated.")) ; /* tmp506 = */ atspre_prerr_newline () ; tmp507 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp507)->tag = 14 ; ats_selptrset_mac(anairiats_sum_5, tmp507, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp507, atslab_1, arg1) ; /* tmp502 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp507) ; return /* (tmp502) */ ; } /* end of [auxerr_lt_50] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 30685(line=1352, offs=5) -- 31400(line=1378, offs=4) */ ATSstaticdec() ats_void_type auxerr_gts_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp508) ; ATSlocal (ats_bool_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_bool_type, tmp512) ; ATSlocal (ats_int_type, tmp513) ; ATSlocal (ats_int_type, tmp514) ; // ATSlocal_void (tmp515) ; // ATSlocal_void (tmp516) ; // ATSlocal_void (tmp517) ; // ATSlocal_void (tmp518) ; // ATSlocal_void (tmp519) ; // ATSlocal_void (tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_int_type, tmp522) ; __ats_lab_auxerr_gts_51: tmp509 = atspre_lt_int_int (arg2, arg3) ; if (tmp509) { do { /* branch: __ats_lab_97 */ __ats_lab_97_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp510 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp511 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp512 = atspre_gt_int_int (arg2, 0) ; if (tmp512) { tmp513 = atspre_sub_int_int (arg2, 1) ; tmp514 = atspre_sub_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp511 ; arg2 = tmp513 ; arg3 = tmp514 ; goto __ats_lab_auxerr_gts_51 ; // tail call } else { /* tmp515 = */ prerr_error2_loc_02401_ (arg0) ; /* tmp516 = */ atspre_prerr_string (ATSstrcst(": the static clause associated with [")) ; /* tmp517 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst (tmp510) ; /* tmp518 = */ atspre_prerr_string (ATSstrcst("] is missing.")) ; /* tmp519 = */ atspre_prerr_newline () ; tmp521 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp521)->tag = 15 ; ats_selptrset_mac(anairiats_sum_5, tmp521, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp521, atslab_1, tmp510) ; /* tmp520 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp521) ; tmp522 = atspre_sub_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp511 ; arg2 = 0 ; arg3 = tmp522 ; goto __ats_lab_auxerr_gts_51 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_98_1: break ; } while (0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp508) */ ; } /* end of [auxerr_gts_51] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_55 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; __ats_lab_loop_55: do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp527 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp528 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp529 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp529, atslab_0, tmp527) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp529 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp530 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp528 ; arg1 = tmp530 ; goto __ats_lab_loop_55 ; // tail call break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_100_1: tmp531 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp531 ; break ; } while (0) ; return /* (tmp526) */ ; } /* end of [loop_55] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp532) ; // ATSlocal_void (tmp533) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp532 ; */ /* tmp533 = */ loop_55 (arg0, (&tmp532)) ; tmp525 = tmp532 ; return (tmp525) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 31588(line=1390, offs=18) -- 31694(line=1393, offs=65) */ ATSstaticdec() ats_int_type __ats_fun_56 (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp535) ; ATSlocal (ats_int_type, tmp536) ; ATSlocal (ats_int_type, tmp537) ; __ats_lab___ats_fun_56: tmp536 = sc2lau_get_dstag_49 (ats_ptrget_mac(ats_ptr_type, arg0)) ; tmp537 = sc2lau_get_dstag_49 (ats_ptrget_mac(ats_ptr_type, arg1)) ; tmp535 = atspre_sub_int_int (tmp536, tmp537) ; return (tmp535) ; } /* end of [__ats_fun_56] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_56_closure_type ; ats_int_type __ats_fun_56_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1) { return __ats_fun_56 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_56_closure_init (__ats_fun_56_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_56_clofun ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 16240(line=604, offs=5) -- 16603(line=618, offs=6) */ ATSstaticdec() ats_void_type split_58 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp541) ; ATSlocal (ats_bool_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_int_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; __ats_lab_split_58: tmp542 = atspre_igt (arg1, 0) ; if (tmp542) { // if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp543 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp544 = atspre_isub (arg1, 1) ; arg0 = tmp543 ; arg1 = tmp544 ; arg2 = arg2 ; goto __ats_lab_split_58 ; // tail call } else { ats_ptrget_mac(ats_ptr_type, arg2) = ats_ptrget_mac(ats_ptr_type, arg0) ; tmp545 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp545 ; } /* end of [if] */ return /* (tmp541) */ ; } /* end of [split_58] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 16641(line=620, offs=5) -- 17444(line=646, offs=36) */ ATSstaticdec() ats_void_type merge_59 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_int_type, tmp551) ; ATSlocal (ats_bool_type, tmp552) ; // ATSlocal_void (tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; // ATSlocal_void (tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; __ats_lab_merge_59: do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; } __ats_lab_101_1: tmp547 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp548 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp549 = &ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp550 = &ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp551 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ref_type, ats_ref_type))(ats_closure_fun(arg2))) (arg2, tmp547, tmp549) ; tmp552 = atspre_lte_int_int (tmp551, 0) ; if (tmp552) { tmp554 = ats_ptrget_mac(ats_ptr_type, tmp548) ; /* tmp553 = */ merge_59 (tmp554, arg1, arg2, tmp548) ; ats_ptrget_mac(ats_ptr_type, arg3) = arg0 ; } else { tmp556 = ats_ptrget_mac(ats_ptr_type, tmp550) ; /* tmp555 = */ merge_59 (arg0, tmp556, arg2, tmp550) ; ats_ptrget_mac(ats_ptr_type, arg3) = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_103_1: ats_ptrget_mac(ats_ptr_type, arg3) = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_104_1: ats_ptrget_mac(ats_ptr_type, arg3) = arg1 ; break ; } while (0) ; return /* (tmp546) */ ; } /* end of [merge_59] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_61 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp559) ; ATSlocal (ats_ptr_type, tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_int_type, tmp562) ; __ats_lab_loop_61: do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp560 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp561 = ats_ptrget_mac(ats_ptr_type, tmp560) ; tmp562 = atspre_iadd (arg1, 1) ; arg0 = tmp561 ; arg1 = tmp562 ; goto __ats_lab_loop_61 ; // tail call break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_106_1: tmp559 = arg1 ; break ; } while (0) ; return (tmp559) ; } /* end of [loop_61] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp558) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp558 = loop_61 (arg0, 0) ; return (tmp558) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 16217(line=602, offs=7) -- 17831(line=665, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_mergesort_01524_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_int_type, tmp557) ; ATSlocal (ats_bool_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; // ATSlocal_void (tmp566) ; ATSlocal (ats_int_type, tmp567) ; ATSlocal (ats_int_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; // ATSlocal_void (tmp571) ; __ats_lab_list_vt_mergesort_01524_ats_ptr_type: tmp557 = list_vt_length_01501_ats_ptr_type (arg0) ; tmp563 = atspre_igte (tmp557, 2) ; if (tmp563) { // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp564 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; /* ats_ptr_type tmp565 ; */ tmp568 = atspre_isub (tmp557, 1) ; tmp567 = atspre_idiv (tmp568, 2) ; /* tmp566 = */ split_58 (tmp564, tmp567, (&tmp565)) ; tmp569 = list_vt_mergesort_01524_ats_ptr_type (arg0, arg1) ; tmp570 = list_vt_mergesort_01524_ats_ptr_type (tmp565, arg1) ; /* tmp571 = */ merge_59 (tmp569, tmp570, arg1, (&tmp565)) ; tmp540 = tmp565 ; } else { tmp540 = arg0 ; } /* end of [if] */ return (tmp540) ; } /* end of [list_vt_mergesort_01524_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 31429(line=1380, offs=5) -- 31823(line=1400, offs=4) */ ATSstaticdec() ats_void_type auxmain1_52 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (__ats_fun_56_closure_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; __ats_lab_auxmain1_52: tmp524 = list_copy_01322_ats_ptr_type (arg1) ; /* ats_ptr_type tmp534 ; */ tmp534 = &(tmp538) ; __ats_fun_56_closure_init (tmp534) ; // closure initialization tmp539 = list_vt_mergesort_01524_ats_ptr_type (tmp524, tmp534) ; /* tmp523 = */ auxmain2_53 (arg0, tmp539, arg2) ; return /* (tmp523) */ ; } /* end of [auxmain1_52] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 31946(line=1408, offs=5) -- 32664(line=1438, offs=4) */ ATSstaticdec() ats_void_type loop_62 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_int_type, tmp576) ; ATSlocal (ats_bool_type, tmp577) ; ATSlocal (ats_bool_type, tmp578) ; // ATSlocal_void (tmp579) ; // ATSlocal_void (tmp580) ; ATSlocal (ats_int_type, tmp581) ; ATSlocal (ats_int_type, tmp582) ; __ats_lab_loop_62: do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp574 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp575 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp576 = sc2lau_get_dstag_49 (tmp574) ; tmp577 = atspre_gte_int_int (tmp576, 0) ; if (tmp577) { tmp578 = atspre_lt_int_int (tmp576, arg3) ; if (tmp578) { /* tmp579 = */ auxerr_lt_50 (arg0, tmp574) ; arg0 = arg0 ; arg1 = tmp575 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_62 ; // tail call } else { /* tmp580 = */ auxerr_gts_51 (arg0, arg2, arg3, tmp576) ; tmp581 = atspre_add_int_int (tmp576, 1) ; arg0 = arg0 ; arg1 = tmp575 ; arg2 = arg2 ; arg3 = tmp581 ; goto __ats_lab_loop_62 ; // tail call } /* end of [if] */ } else { arg0 = arg0 ; arg1 = tmp575 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_62 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp582 = list_length_01410_ats_ptr_type (arg2) ; /* tmp573 = */ auxerr_gts_51 (arg0, arg2, arg3, tmp582) ; break ; } while (0) ; return /* (tmp573) */ ; } /* end of [loop_62] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 31850(line=1402, offs=5) -- 32766(line=1444, offs=4) */ ATSstaticdec() ats_void_type auxmain2_53 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp572) ; ATSlocal (ats_ptr_type, tmp583) ; __ats_lab_auxmain2_53: tmp583 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sconlst (arg2) ; /* tmp572 = */ loop_62 (arg0, arg1, tmp583, 0) ; return /* (tmp572) */ ; } /* end of [auxmain2_53] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 32879(line=1453, offs=1) -- 33222(line=1463, offs=4) */ ATSstaticdec() ats_void_type auxerr1_64 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp585) ; // ATSlocal_void (tmp586) ; // ATSlocal_void (tmp587) ; // ATSlocal_void (tmp588) ; // ATSlocal_void (tmp589) ; // ATSlocal_void (tmp590) ; ATSlocal (ats_ptr_type, tmp591) ; __ats_lab_auxerr1_64: /* tmp586 = */ prerr_error2_loc_02401_ (arg0) ; /* tmp587 = */ atspre_prerr_string (ATSstrcst(": the static expression being analyzed is of the sort [")) ; /* tmp588 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ; /* tmp589 = */ atspre_prerr_string (ATSstrcst("], which is not a base sort as is required.")) ; /* tmp590 = */ atspre_prerr_newline () ; tmp591 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp591)->tag = 13 ; ats_selptrset_mac(anairiats_sum_5, tmp591, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp591, atslab_1, arg1) ; /* tmp585 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp591) ; return /* (tmp585) */ ; } /* end of [auxerr1_64] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 33247(line=1465, offs=1) -- 33589(line=1475, offs=4) */ ATSstaticdec() ats_void_type auxerr2_65 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp592) ; // ATSlocal_void (tmp593) ; // ATSlocal_void (tmp594) ; // ATSlocal_void (tmp595) ; // ATSlocal_void (tmp596) ; // ATSlocal_void (tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; __ats_lab_auxerr2_65: /* tmp593 = */ prerr_error2_loc_02401_ (arg0) ; /* tmp594 = */ atspre_prerr_string (ATSstrcst(": the static expression being analyzed is of the sort [")) ; /* tmp595 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ; /* tmp596 = */ atspre_prerr_string (ATSstrcst("], which is not a datasort as is required.")) ; /* tmp597 = */ atspre_prerr_newline () ; tmp598 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp598)->tag = 13 ; ats_selptrset_mac(anairiats_sum_5, tmp598, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp598, atslab_1, arg1) ; /* tmp592 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp598) ; return /* (tmp592) */ ; } /* end of [auxerr2_65] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 32843(line=1450, offs=3) -- 33860(line=1487, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sc2laulst_coverck (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp584) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sc2laulst_coverck: do { /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_112_0 ; } __ats_lab_109_1: tmp599 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_0) ; do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp599)->tag != 2) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp600 = ats_caselptrlab_mac(anairiats_sum_7, tmp599, atslab_0) ; /* tmp584 = */ auxmain1_52 (arg0, arg1, tmp600) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: __ats_lab_111_1: /* tmp584 = */ auxerr2_65 (arg0, arg2) ; break ; } while (0) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: __ats_lab_112_1: /* tmp584 = */ auxerr1_64 (arg0, arg2) ; break ; } while (0) ; return /* (tmp584) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sc2laulst_coverck] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 33942(line=1494, offs=1) -- 34061(line=1501, offs=2) */ ATSstaticdec() ats_ptr_type un_d1exp_sing_66 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; __ats_lab_un_d1exp_sing_66: tmp602 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_node) ; do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp602)->tag != 29) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp603 = ats_caselptrlab_mac(anairiats_sum_7, tmp602, atslab_0) ; arg0 = tmp603 ; goto __ats_lab_un_d1exp_sing_66 ; // tail call break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: __ats_lab_114_1: tmp601 = arg0 ; break ; } while (0) ; return (tmp601) ; } /* end of [un_d1exp_sing_66] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19194(line=690, offs=7) -- 19604(line=704, offs=6) */ ATSstaticdec() ats_void_type loop_69 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp785) ; ATSlocal (ats_ptr_type, tmp786) ; ATSlocal (ats_ptr_type, tmp787) ; ATSlocal (ats_ptr_type, tmp788) ; ATSlocal (ats_ptr_type, tmp789) ; ATSlocal (ats_ptr_type, tmp790) ; ATSlocal (ats_ptr_type, tmp791) ; __ats_lab_loop_69: do { /* branch: __ats_lab_177 */ __ats_lab_177_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_178_0 ; } __ats_lab_177_1: tmp786 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp787 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp788 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp788, atslab_0, tmp786) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp788 ; if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19444(line=699, offs=13) -- 19470(line=699, offs=39)") ; } tmp789 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp787 ; arg1 = arg1 ; arg2 = tmp789 ; goto __ats_lab_loop_69 ; // tail call break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_178_1: tmp791 = (ats_sum_ptr_type)0 ; tmp790 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp790, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp790, atslab_1, tmp791) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp790 ; break ; } while (0) ; return /* (tmp785) */ ; } /* end of [loop_69] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19136(line=688, offs=13) -- 19698(line=708, offs=4) */ ATSstaticdec() ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp783) ; ATSlocal (ats_ptr_type, tmp784) ; // ATSlocal_void (tmp792) ; __ats_lab_list_extend_01337_ats_ptr_type: /* ats_ptr_type tmp784 ; */ /* tmp792 = */ loop_69 (arg0, arg1, (&tmp784)) ; tmp783 = tmp784 ; return (tmp783) ; } /* end of [list_extend_01337_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 44036(line=1939, offs=9) -- 44216(line=1947, offs=6) */ ATSstaticdec() ats_ptr_type auxlst_70 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp814) ; ATSlocal (ats_ptr_type, tmp815) ; ATSlocal (ats_ptr_type, tmp816) ; __ats_lab_auxlst_70: do { /* branch: __ats_lab_186 */ __ats_lab_186_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_187_0 ; } __ats_lab_186_1: tmp814 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_187_1: tmp815 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp816 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp814 = auxlst2_71 (tmp815, tmp816) ; break ; } while (0) ; return (tmp814) ; } /* end of [auxlst_70] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 44250(line=1949, offs=9) -- 44493(line=1960, offs=6) */ ATSstaticdec() ats_ptr_type auxlst2_71 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp817) ; ATSlocal (ats_ptr_type, tmp818) ; ATSlocal (ats_ptr_type, tmp819) ; ATSlocal (ats_ptr_type, tmp820) ; __ats_lab_auxlst2_71: tmp818 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_188 */ __ats_lab_188_0: if (((ats_sum_ptr_type)tmp818)->tag != 1) { goto __ats_lab_189_0 ; } __ats_lab_188_1: tmp819 = ats_caselptrlab_mac(anairiats_sum_7, tmp818, atslab_0) ; tmp820 = auxlst_70 (arg1) ; tmp817 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp817, atslab_0, tmp819) ; ats_selptrset_mac(anairiats_sum_8, tmp817, atslab_1, tmp820) ; break ; /* branch: __ats_lab_189 */ __ats_lab_189_0: __ats_lab_189_1: tmp817 = auxlst_70 (arg1) ; break ; } while (0) ; return (tmp817) ; } /* end of [auxlst2_71] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 34134(line=1506, offs=10) -- 49443(line=2149, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_int_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_bool_type, tmp612) ; ATSlocal (ats_char_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; ATSlocal (ats_ptr_type, tmp617) ; ATSlocal (ats_ptr_type, tmp618) ; ATSlocal (ats_ptr_type, tmp619) ; ATSlocal (ats_ptr_type, tmp620) ; ATSlocal (ats_ptr_type, tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; ATSlocal (ats_ptr_type, tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp630) ; ATSlocal (ats_ptr_type, tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; ATSlocal (ats_ptr_type, tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; ATSlocal (ats_ptr_type, tmp636) ; ATSlocal (ats_ptr_type, tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; ATSlocal (ats_ptr_type, tmp639) ; ATSlocal (ats_int_type, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; ATSlocal (ats_ptr_type, tmp642) ; ATSlocal (ats_ptr_type, tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; ATSlocal (ats_ptr_type, tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; ATSlocal (ats_ptr_type, tmp648) ; ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; ATSlocal (ats_ptr_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; ATSlocal (ats_ptr_type, tmp657) ; ATSlocal (ats_ptr_type, tmp658) ; // ATSlocal_void (tmp659) ; // ATSlocal_void (tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; // ATSlocal_void (tmp663) ; ATSlocal (ats_ptr_type, tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; // ATSlocal_void (tmp666) ; // ATSlocal_void (tmp667) ; ATSlocal (ats_ptr_type, tmp668) ; ATSlocal (ats_ptr_type, tmp669) ; // ATSlocal_void (tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; // ATSlocal_void (tmp672) ; // ATSlocal_void (tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; // ATSlocal_void (tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; ATSlocal (ats_int_type, tmp679) ; ATSlocal (ats_ptr_type, tmp680) ; ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_ptr_type, tmp682) ; ATSlocal (ats_ptr_type, tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; ATSlocal (ats_ptr_type, tmp685) ; ATSlocal (ats_ptr_type, tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_ptr_type, tmp688) ; ATSlocal (ats_int_type, tmp689) ; ATSlocal (ats_ptr_type, tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_ptr_type, tmp698) ; ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_ptr_type, tmp700) ; ATSlocal (ats_ptr_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; ATSlocal (ats_ptr_type, tmp703) ; ATSlocal (ats_ptr_type, tmp704) ; ATSlocal (ats_ptr_type, tmp705) ; ATSlocal (ats_ptr_type, tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; ATSlocal (ats_ptr_type, tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; ATSlocal (ats_ptr_type, tmp711) ; ATSlocal (ats_ptr_type, tmp712) ; ATSlocal (ats_ptr_type, tmp713) ; ATSlocal (ats_ptr_type, tmp714) ; ATSlocal (ats_ptr_type, tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; ATSlocal (ats_ptr_type, tmp717) ; ATSlocal (ats_int_type, tmp718) ; ATSlocal (ats_ptr_type, tmp719) ; ATSlocal (ats_bool_type, tmp720) ; ATSlocal (ats_ptr_type, tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; ATSlocal (ats_int_type, tmp723) ; ATSlocal (ats_bool_type, tmp724) ; ATSlocal (ats_ptr_type, tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; ATSlocal (ats_ptr_type, tmp727) ; ATSlocal (ats_ptr_type, tmp728) ; ATSlocal (ats_ptr_type, tmp729) ; ATSlocal (ats_ptr_type, tmp730) ; ATSlocal (ats_ptr_type, tmp731) ; ATSlocal (ats_ptr_type, tmp732) ; // ATSlocal_void (tmp733) ; ATSlocal (ats_int_type, tmp734) ; ATSlocal (ats_ptr_type, tmp735) ; ATSlocal (ats_ptr_type, tmp736) ; ATSlocal (ats_ptr_type, tmp737) ; ATSlocal (ats_ptr_type, tmp738) ; ATSlocal (ats_ptr_type, tmp739) ; ATSlocal (ats_ptr_type, tmp740) ; ATSlocal (ats_int_type, tmp741) ; ATSlocal (ats_int_type, tmp742) ; ATSlocal (ats_ptr_type, tmp743) ; ATSlocal (ats_ptr_type, tmp744) ; ATSlocal (ats_int_type, tmp745) ; ATSlocal (ats_int_type, tmp746) ; ATSlocal (ats_ptr_type, tmp747) ; ATSlocal (ats_ptr_type, tmp748) ; ATSlocal (ats_ptr_type, tmp749) ; ATSlocal (ats_ptr_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; ATSlocal (ats_ptr_type, tmp752) ; ATSlocal (ats_ptr_type, tmp753) ; ATSlocal (ats_ptr_type, tmp754) ; ATSlocal (ats_ptr_type, tmp755) ; ATSlocal (ats_ptr_type, tmp756) ; ATSlocal (ats_ptr_type, tmp757) ; ATSlocal (ats_ptr_type, tmp758) ; ATSlocal (ats_ptr_type, tmp759) ; ATSlocal (ats_ptr_type, tmp760) ; ATSlocal (ats_ptr_type, tmp761) ; ATSlocal (ats_ptr_type, tmp762) ; ATSlocal (ats_ptr_type, tmp763) ; ATSlocal (ats_ptr_type, tmp764) ; ATSlocal (ats_ptr_type, tmp765) ; ATSlocal (ats_ptr_type, tmp766) ; ATSlocal (ats_ptr_type, tmp767) ; ATSlocal (ats_ptr_type, tmp768) ; ATSlocal (ats_ptr_type, tmp769) ; ATSlocal (ats_ptr_type, tmp770) ; ATSlocal (ats_ptr_type, tmp771) ; ATSlocal (ats_ptr_type, tmp772) ; ATSlocal (ats_int_type, tmp773) ; ATSlocal (ats_ptr_type, tmp774) ; ATSlocal (ats_ptr_type, tmp775) ; ATSlocal (ats_ptr_type, tmp776) ; ATSlocal (ats_ptr_type, tmp777) ; ATSlocal (ats_bool_type, tmp778) ; ATSlocal (ats_ptr_type, tmp779) ; ATSlocal (ats_ptr_type, tmp780) ; ATSlocal (ats_ptr_type, tmp781) ; ATSlocal (ats_ptr_type, tmp782) ; ATSlocal (ats_ptr_type, tmp793) ; ATSlocal (ats_ptr_type, tmp794) ; ATSlocal (ats_ptr_type, tmp795) ; ATSlocal (ats_ptr_type, tmp796) ; ATSlocal (ats_ptr_type, tmp797) ; ATSlocal (ats_ptr_type, tmp798) ; ATSlocal (ats_ptr_type, tmp799) ; ATSlocal (ats_ptr_type, tmp800) ; ATSlocal (ats_ptr_type, tmp801) ; ATSlocal (ats_ptr_type, tmp802) ; ATSlocal (ats_ptr_type, tmp803) ; ATSlocal (ats_ptr_type, tmp804) ; ATSlocal (ats_ptr_type, tmp805) ; ATSlocal (ats_int_type, tmp806) ; ATSlocal (ats_ptr_type, tmp807) ; ATSlocal (ats_ptr_type, tmp808) ; ATSlocal (ats_ptr_type, tmp809) ; ATSlocal (ats_ptr_type, tmp810) ; ATSlocal (ats_ptr_type, tmp811) ; ATSlocal (ats_ptr_type, tmp812) ; ATSlocal (ats_ptr_type, tmp813) ; ATSlocal (ats_ptr_type, tmp821) ; ATSlocal (ats_ptr_type, tmp822) ; ATSlocal (ats_ptr_type, tmp823) ; ATSlocal (ats_ptr_type, tmp824) ; ATSlocal (ats_ptr_type, tmp825) ; ATSlocal (ats_ptr_type, tmp826) ; ATSlocal (ats_ptr_type, tmp827) ; ATSlocal (ats_ptr_type, tmp828) ; ATSlocal (ats_ptr_type, tmp829) ; ATSlocal (ats_ptr_type, tmp830) ; ATSlocal (ats_ptr_type, tmp831) ; ATSlocal (ats_ptr_type, tmp832) ; ATSlocal (ats_ptr_type, tmp833) ; ATSlocal (ats_int_type, tmp834) ; ATSlocal (ats_ptr_type, tmp835) ; ATSlocal (ats_ptr_type, tmp836) ; ATSlocal (anairiats_rec_10, tmp837) ; ATSlocal (ats_int_type, tmp838) ; ATSlocal (ats_ptr_type, tmp839) ; ATSlocal (ats_ptr_type, tmp840) ; ATSlocal (ats_int_type, tmp841) ; ATSlocal (ats_ptr_type, tmp842) ; ATSlocal (ats_ptr_type, tmp843) ; ATSlocal (anairiats_rec_10, tmp844) ; ATSlocal (ats_int_type, tmp845) ; ATSlocal (ats_ptr_type, tmp846) ; ATSlocal (ats_ptr_type, tmp847) ; ATSlocal (ats_ptr_type, tmp848) ; ATSlocal (ats_ptr_type, tmp849) ; ATSlocal (ats_ptr_type, tmp850) ; ATSlocal (ats_ptr_type, tmp851) ; ATSlocal (ats_int_type, tmp852) ; ATSlocal (ats_ptr_type, tmp853) ; ATSlocal (ats_ptr_type, tmp854) ; ATSlocal (ats_ptr_type, tmp855) ; ATSlocal (ats_ptr_type, tmp856) ; ATSlocal (ats_ptr_type, tmp857) ; // ATSlocal_void (tmp858) ; // ATSlocal_void (tmp859) ; // ATSlocal_void (tmp860) ; // ATSlocal_void (tmp861) ; ATSlocal (ats_ptr_type, tmp862) ; // ATSlocal_void (tmp863) ; ATSlocal (ats_ptr_type, tmp864) ; ATSlocal (ats_ptr_type, tmp865) ; // ATSlocal_void (tmp866) ; // ATSlocal_void (tmp867) ; ATSlocal (anairiats_rec_2, tmp868) ; ATSlocal (ats_ptr_type, tmp869) ; // ATSlocal_void (tmp870) ; ATSlocal (ats_ptr_type, tmp871) ; ATSlocal (ats_ptr_type, tmp872) ; ATSlocal (ats_ptr_type, tmp873) ; ATSlocal (ats_ptr_type, tmp874) ; ATSlocal (ats_ptr_type, tmp875) ; // ATSlocal_void (tmp876) ; // ATSlocal_void (tmp877) ; ATSlocal (ats_ptr_type, tmp878) ; ATSlocal (ats_ptr_type, tmp879) ; ATSlocal (ats_ptr_type, tmp880) ; // ATSlocal_void (tmp881) ; ATSlocal (ats_ptr_type, tmp882) ; ATSlocal (ats_ptr_type, tmp883) ; ATSlocal (ats_ptr_type, tmp884) ; ATSlocal (ats_ptr_type, tmp885) ; ATSlocal (ats_ptr_type, tmp886) ; ATSlocal (ats_ptr_type, tmp887) ; // ATSlocal_void (tmp888) ; // ATSlocal_void (tmp889) ; ATSlocal (ats_ptr_type, tmp890) ; ATSlocal (ats_ptr_type, tmp891) ; ATSlocal (ats_ptr_type, tmp892) ; ATSlocal (ats_ptr_type, tmp893) ; ATSlocal (ats_ptr_type, tmp894) ; // ATSlocal_void (tmp895) ; ATSlocal (ats_ptr_type, tmp896) ; ATSlocal (ats_ptr_type, tmp897) ; ATSlocal (ats_ptr_type, tmp898) ; ATSlocal (ats_ptr_type, tmp899) ; ATSlocal (ats_ptr_type, tmp900) ; ATSlocal (ats_ptr_type, tmp901) ; ATSlocal (ats_ptr_type, tmp902) ; ATSlocal (ats_ptr_type, tmp903) ; ATSlocal (ats_ptr_type, tmp904) ; ATSlocal (ats_ptr_type, tmp905) ; ATSlocal (ats_ptr_type, tmp906) ; ATSlocal (ats_ptr_type, tmp907) ; ATSlocal (ats_ptr_type, tmp908) ; ATSlocal (ats_ptr_type, tmp909) ; ATSlocal (ats_ptr_type, tmp910) ; ATSlocal (ats_ptr_type, tmp911) ; ATSlocal (ats_ptr_type, tmp912) ; ATSlocal (ats_ptr_type, tmp913) ; ATSlocal (ats_ptr_type, tmp914) ; ATSlocal (ats_ptr_type, tmp915) ; ATSlocal (ats_ptr_type, tmp916) ; ATSlocal (ats_ptr_type, tmp917) ; // ATSlocal_void (tmp918) ; // ATSlocal_void (tmp919) ; // ATSlocal_void (tmp920) ; // ATSlocal_void (tmp921) ; // ATSlocal_void (tmp922) ; // ATSlocal_void (tmp923) ; ATSlocal (ats_ptr_type, tmp924) ; // ATSlocal_void (tmp925) ; // ATSlocal_void (tmp926) ; // ATSlocal_void (tmp927) ; // ATSlocal_void (tmp928) ; ATSlocal (ats_ptr_type, tmp929) ; // ATSlocal_void (tmp930) ; // ATSlocal_void (tmp931) ; // ATSlocal_void (tmp932) ; // ATSlocal_void (tmp933) ; // ATSlocal_void (tmp934) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr: tmp605 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_loc) ; tmp606 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d1exp_node) ; do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp606)->tag != 0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp607 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp604 = d1exp_tr_dqid_10 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none, tmp607) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp606)->tag != 1) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp608 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp609 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp604 = d1exp_tr_dqid_10 (arg0, tmp608, tmp609) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp606)->tag != 3) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp610 = ats_caselptrlab_mac(anairiats_sum_23, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_int (tmp605, tmp610) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp606)->tag != 4) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp611 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_intrep (tmp605, tmp611) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp606)->tag != 5) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp612 = ats_caselptrlab_mac(anairiats_sum_24, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_bool (tmp605, tmp612) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp606)->tag != 6) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp613 = ats_caselptrlab_mac(anairiats_sum_25, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_char (tmp605, tmp613) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp606)->tag != 7) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp614 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_float (tmp605, tmp614) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp606)->tag != 8) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp615 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_string (tmp605, tmp615) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp606)->tag != 9) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp616 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_i0nt (tmp605, tmp616) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp606)->tag != 10) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp617 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_c0har (tmp605, tmp617) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp606)->tag != 11) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp618 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_f0loat (tmp605, tmp618) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp606)->tag != 12) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp619 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_s0tring (tmp605, tmp619) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp606)->tag != 15) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp620 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cstsp (tmp605, tmp620) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp606)->tag != 16) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp621 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp622 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype (tmp621) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tyrep (tmp605, tmp622) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp606)->tag != 17) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp623 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp623) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_literal (tmp605, tmp624) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp606)->tag != 13) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top (tmp605) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp606)->tag != 14) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (tmp605) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp606)->tag != 18) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp625 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp626 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp627 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype (tmp625) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extval (tmp605, tmp627, tmp626) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp606)->tag != 19) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp628 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_0) ; tmp629 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_1) ; tmp630 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_2) ; tmp631 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype (tmp628) ; tmp632 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp630) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extfcall (tmp605, tmp631, tmp629, tmp632) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp606)->tag != 20) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp633 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_0) ; tmp634 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_1) ; tmp635 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_2) ; tmp636 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_3) ; tmp637 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype (tmp633) ; tmp638 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp634) ; tmp639 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp636) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extmcall (tmp605, tmp637, tmp638, tmp635, tmp639) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp606)->tag != 63) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp640 = ats_caselptrlab_mac(anairiats_sum_23, tmp606, atslab_0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_loopexn (tmp605, tmp640) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp606)->tag != 21) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp641 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp642 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp643 = un_d1exp_sing_66 (tmp642) ; tmp644 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (tmp641) ; tmp645 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp643) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_foldat (tmp605, tmp644, tmp645) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp606)->tag != 22) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp646 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp647 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp648 = un_d1exp_sing_66 (tmp647) ; tmp649 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (tmp646) ; tmp650 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp648) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_freeat (tmp605, tmp649, tmp650) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp606)->tag != 23) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp651 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp652 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp653 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, tmp651), atslab_dqi0de_qua) ; tmp654 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, tmp651), atslab_dqi0de_sym) ; tmp655 = d1exp_tr_dqid_10 (arg0, tmp653, tmp654) ; tmp656 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarglst_tr (tmp652) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tmpid (tmp605, tmp655, tmp656) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp606)->tag != 24) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp657 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp658 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; /* tmp659 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp660 = ats_selsin_mac(tmp659, atslab_1) */ ; tmp661 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (tmp657) ; tmp662 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp658) ; /* tmp663 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_let (tmp605, tmp661, tmp662) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)tmp606)->tag != 25) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp664 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp665 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; /* tmp666 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp667 = ats_selsin_mac(tmp666, atslab_1) */ ; tmp668 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (tmp665) ; tmp669 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp664) ; /* tmp670 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_where (tmp605, tmp669, tmp668) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp606)->tag != 26) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp671 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; /* tmp672 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp673 = ats_selsin_mac(tmp672, atslab_1) */ ; tmp674 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr (tmp671) ; tmp675 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (tmp605) ; /* tmp676 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_let (tmp605, tmp674, tmp675) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp606)->tag != 27) { goto __ats_lab_145_0 ; } __ats_lab_142_1: tmp677 = ats_caselptrlab_mac(anairiats_sum_29, tmp606, atslab_0) ; tmp678 = ats_caselptrlab_mac(anairiats_sum_29, tmp606, atslab_1) ; tmp679 = ats_caselptrlab_mac(anairiats_sum_29, tmp606, atslab_2) ; tmp680 = ats_caselptrlab_mac(anairiats_sum_29, tmp606, atslab_3) ; tmp681 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp677), atslab_d1exp_node) ; do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp681)->tag != 28) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp682 = ats_caselptrlab_mac(anairiats_sum_5, tmp681, atslab_0) ; tmp683 = ats_caselptrlab_mac(anairiats_sum_5, tmp681, atslab_1) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_sta_dyn (arg0, tmp677, tmp682, tmp683, tmp678, tmp679, tmp680) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: __ats_lab_144_1: tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_dyn (arg0, tmp677, tmp678, tmp679, tmp680) ; break ; } while (0) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp606)->tag != 28) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp684 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp685 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp686 = (ats_sum_ptr_type)0 ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_app_sta_dyn (arg0, arg0, tmp684, tmp685, tmp605, -2, tmp686) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp606)->tag != 29) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp687 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp688 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp687) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sing (tmp605, tmp688) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp606)->tag != 30) { goto __ats_lab_150_0 ; } __ats_lab_147_1: tmp689 = ats_caselptrlab_mac(anairiats_sum_12, tmp606, atslab_0) ; tmp690 = ats_caselptrlab_mac(anairiats_sum_12, tmp606, atslab_1) ; do { /* branch: __ats_lab_148 */ __ats_lab_148_0: if (tmp690 == (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp691 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp690) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_list (tmp605, tmp689, tmp691) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: // if (tmp690 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_149_1: tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (tmp605) ; break ; } while (0) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp606)->tag != 31) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp692 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_0) ; tmp693 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_1) ; tmp694 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_2) ; tmp695 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_3) ; tmp696 = i1nvresstate_tr_38 (tmp692) ; tmp697 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp693) ; tmp698 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp694) ; tmp699 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1expopt_tr (tmp695) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifhead (tmp605, tmp696, tmp697, tmp698, tmp699) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)tmp606)->tag != 32) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp700 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_0) ; tmp701 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_1) ; tmp702 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_2) ; tmp703 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_3) ; tmp704 = i1nvresstate_tr_38 (tmp700) ; tmp705 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool (tmp701) ; tmp706 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp702) ; tmp707 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp703) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sifhead (tmp605, tmp704, tmp705, tmp706, tmp707) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)tmp606)->tag != 33) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp708 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp709 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp710 = i1nvresstate_tr_38 (tmp708) ; tmp711 = i1fclist_tr_41 (tmp709) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifcasehd (tmp605, tmp710, tmp711) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp606)->tag != 34) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp712 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_0) ; tmp713 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_1) ; tmp714 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_2) ; tmp715 = ats_caselptrlab_mac(anairiats_sum_27, tmp606, atslab_3) ; tmp716 = i1nvresstate_tr_38 (tmp713) ; tmp717 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp714) ; tmp718 = list_length_01410_ats_ptr_type (tmp717) ; tmp720 = atspre_igt (tmp718, 0) ; if (tmp720) { tmp719 = tmp717 ; } else { tmp721 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (tmp605) ; tmp722 = (ats_sum_ptr_type)0 ; tmp719 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp719, atslab_0, tmp721) ; ats_selptrset_mac(anairiats_sum_8, tmp719, atslab_1, tmp722) ; } /* end of [if] */ tmp724 = atspre_igt (tmp718, 0) ; if (tmp724) { tmp723 = tmp718 ; } else { tmp723 = 1 ; } /* end of [if] */ tmp725 = c1laulst_tr_46 (tmp723, tmp715) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_casehead (tmp605, tmp712, tmp716, tmp719, tmp725) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)tmp606)->tag != 35) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp726 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_0) ; tmp727 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_1) ; tmp728 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_2) ; tmp729 = i1nvresstate_tr_38 (tmp726) ; tmp730 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp727) ; tmp731 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, tmp730), atslab_s2exp_srt) ; tmp732 = sc1laulst_trdn_48 (tmp728, tmp731) ; /* tmp733 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sc2laulst_coverck (tmp605, tmp732, tmp731) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_scasehead (tmp605, tmp729, tmp730, tmp732) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)tmp606)->tag != 36) { goto __ats_lab_161_0 ; } __ats_lab_155_1: tmp734 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_0) ; tmp735 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_1) ; tmp736 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_2) ; do { /* branch: __ats_lab_156 */ __ats_lab_156_0: if (tmp735 == (ats_sum_ptr_type)0) { goto __ats_lab_160_0 ; } __ats_lab_156_1: tmp738 = ats_caselptrlab_mac(anairiats_sum_4, tmp735, atslab_0) ; do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (tmp734 != 0) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp739 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_t0ype (tmp738) ; break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (tmp734 != 1) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp739 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype (tmp738) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: __ats_lab_159_1: tmp739 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp738) ; break ; } while (0) ; tmp737 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp737, atslab_0, tmp739) ; break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: // if (tmp735 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_160_1: tmp737 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp740 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp736) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lst (tmp605, tmp734, tmp737, tmp740) ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: if (((ats_sum_ptr_type)tmp606)->tag != 37) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp741 = ats_caselptrlab_mac(anairiats_sum_32, tmp606, atslab_0) ; tmp742 = ats_caselptrlab_mac(anairiats_sum_32, tmp606, atslab_1) ; tmp743 = ats_caselptrlab_mac(anairiats_sum_32, tmp606, atslab_2) ; tmp744 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp743) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup (tmp605, tmp741, tmp742, tmp744) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: if (((ats_sum_ptr_type)tmp606)->tag != 38) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp745 = ats_caselptrlab_mac(anairiats_sum_32, tmp606, atslab_0) ; tmp746 = ats_caselptrlab_mac(anairiats_sum_32, tmp606, atslab_1) ; tmp747 = ats_caselptrlab_mac(anairiats_sum_32, tmp606, atslab_2) ; tmp748 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp747, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labd1exp_tr) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_rec (tmp605, tmp745, tmp746, ats_castfn_mac(ats_ptr_type, tmp748)) ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)tmp606)->tag != 39) { goto __ats_lab_164_0 ; } __ats_lab_163_1: tmp749 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp750 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp749) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq2 (tmp605, tmp750) ; break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)tmp606)->tag != 40) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp751 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_0) ; tmp752 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_1) ; tmp753 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_2) ; tmp604 = d1exp_tr_arrsub_30 (arg0, tmp751, tmp752, tmp753) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)tmp606)->tag != 42) { goto __ats_lab_168_0 ; } __ats_lab_165_1: tmp754 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp755 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp756 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1expopt_trup (tmp754) ; do { /* branch: __ats_lab_166 */ __ats_lab_166_0: if (tmp756 == (ats_sum_ptr_type)0) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp758 = ats_caselptrlab_mac(anairiats_sum_4, tmp756, atslab_0) ; tmp757 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp757, atslab_0, tmp758) ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: // if (tmp756 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_167_1: tmp757 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp759 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp755) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrpsz (tmp605, tmp757, tmp759) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: if (((ats_sum_ptr_type)tmp606)->tag != 41) { goto __ats_lab_173_0 ; } __ats_lab_168_1: tmp760 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_0) ; tmp761 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_1) ; tmp762 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_2) ; do { /* branch: __ats_lab_169 */ __ats_lab_169_0: if (tmp761 == (ats_sum_ptr_type)0) { goto __ats_lab_172_0 ; } __ats_lab_169_1: do { /* branch: __ats_lab_170 */ __ats_lab_170_0: if (tmp762 == (ats_sum_ptr_type)0) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp763 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: // if (tmp762 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_171_1: tmp763 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; break ; } while (0) ; break ; /* branch: __ats_lab_172 */ __ats_lab_172_0: // if (tmp761 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_172_1: tmp763 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; break ; } while (0) ; tmp764 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp760, tmp763) ; tmp765 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1expopt_tr (tmp761) ; tmp766 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp762) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrinit (tmp605, tmp764, tmp765, tmp766) ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: if (((ats_sum_ptr_type)tmp606)->tag != 43) { goto __ats_lab_174_0 ; } __ats_lab_173_1: tmp767 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp768 = un_d1exp_sing_66 (tmp767) ; tmp769 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp768) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ptrof (tmp605, tmp769) ; break ; /* branch: __ats_lab_174 */ __ats_lab_174_0: if (((ats_sum_ptr_type)tmp606)->tag != 44) { goto __ats_lab_175_0 ; } __ats_lab_174_1: tmp770 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp771 = un_d1exp_sing_66 (tmp770) ; tmp772 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp771) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_viewat (tmp605, tmp772) ; break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: if (((ats_sum_ptr_type)tmp606)->tag != 45) { goto __ats_lab_180_0 ; } __ats_lab_175_1: tmp773 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_0) ; tmp774 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_1) ; tmp775 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_2) ; tmp776 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp774) ; tmp777 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1lab_tr (tmp775) ; tmp778 = atspre_eq_int_int (tmp773, 0) ; if (tmp778) { tmp779 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp776), atslab_d2exp_node) ; do { /* branch: __ats_lab_176 */ __ats_lab_176_0: if (((ats_sum_ptr_type)tmp779)->tag != 40) { goto __ats_lab_179_0 ; } __ats_lab_176_1: tmp780 = ats_caselptrlab_mac(anairiats_sum_5, tmp779, atslab_0) ; tmp781 = ats_caselptrlab_mac(anairiats_sum_5, tmp779, atslab_1) ; tmp782 = list_extend_01337_ats_ptr_type (tmp781, tmp777) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_dot (tmp605, tmp780, ats_castfn_mac(ats_ptr_type, tmp782)) ; break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: __ats_lab_179_1: tmp794 = (ats_sum_ptr_type)0 ; tmp793 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp793, atslab_0, tmp777) ; ats_selptrset_mac(anairiats_sum_8, tmp793, atslab_1, tmp794) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_dot (tmp605, tmp776, tmp793) ; break ; } while (0) ; } else { tmp795 = d2sym_bang_2 (tmp774) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_ptr (tmp605, tmp795, tmp776, tmp777) ; } /* end of [if] */ break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: if (((ats_sum_ptr_type)tmp606)->tag != 46) { goto __ats_lab_181_0 ; } __ats_lab_180_1: tmp796 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp797 = un_d1exp_sing_66 (tmp796) ; tmp798 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp797) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_raise (tmp605, tmp798) ; break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: if (((ats_sum_ptr_type)tmp606)->tag != 47) { goto __ats_lab_182_0 ; } __ats_lab_181_1: tmp799 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp800 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp801 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr (tmp799) ; tmp802 = un_d1exp_sing_66 (tmp800) ; tmp803 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp802) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_effmask (tmp605, tmp801, tmp803) ; break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: if (((ats_sum_ptr_type)tmp606)->tag != 48) { goto __ats_lab_183_0 ; } __ats_lab_182_1: tmp804 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp805 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp804) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vararg (tmp605, tmp805) ; break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: if (((ats_sum_ptr_type)tmp606)->tag != 49) { goto __ats_lab_184_0 ; } __ats_lab_183_1: tmp806 = ats_caselptrlab_mac(anairiats_sum_12, tmp606, atslab_0) ; tmp807 = ats_caselptrlab_mac(anairiats_sum_12, tmp606, atslab_1) ; tmp808 = un_d1exp_sing_66 (tmp807) ; tmp809 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp808) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vcopyenv (tmp605, tmp806, tmp809) ; break ; /* branch: __ats_lab_184 */ __ats_lab_184_0: if (((ats_sum_ptr_type)tmp606)->tag != 50) { goto __ats_lab_185_0 ; } __ats_lab_184_1: tmp810 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp811 = un_d1exp_sing_66 (tmp810) ; tmp812 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp811) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_showtype (tmp605, tmp812) ; break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: if (((ats_sum_ptr_type)tmp606)->tag != 51) { goto __ats_lab_194_0 ; } __ats_lab_185_1: tmp813 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp821 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp813) ; tmp823 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp821), atslab_d2exp_node) ; do { /* branch: __ats_lab_190 */ __ats_lab_190_0: if (((ats_sum_ptr_type)tmp823)->tag != 1) { goto __ats_lab_191_0 ; } __ats_lab_190_1: tmp824 = ats_caselptrlab_mac(anairiats_sum_7, tmp823, atslab_0) ; tmp825 = (ats_sum_ptr_type)0 ; tmp822 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp822, atslab_0, tmp824) ; ats_selptrset_mac(anairiats_sum_8, tmp822, atslab_1, tmp825) ; break ; /* branch: __ats_lab_191 */ __ats_lab_191_0: if (((ats_sum_ptr_type)tmp823)->tag != 34) { goto __ats_lab_192_0 ; } __ats_lab_191_1: tmp826 = ats_caselptrlab_mac(anairiats_sum_7, tmp823, atslab_0) ; tmp827 = (ats_sum_ptr_type)0 ; tmp822 = auxlst2_71 (tmp826, tmp827) ; break ; /* branch: __ats_lab_192 */ __ats_lab_192_0: if (((ats_sum_ptr_type)tmp823)->tag != 35) { goto __ats_lab_193_0 ; } __ats_lab_192_1: tmp828 = ats_caselptrlab_mac(anairiats_sum_12, tmp823, atslab_1) ; tmp822 = auxlst_70 (tmp828) ; break ; /* branch: __ats_lab_193 */ __ats_lab_193_0: __ats_lab_193_1: tmp822 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tempenver (tmp605, tmp822) ; break ; /* branch: __ats_lab_194 */ __ats_lab_194_0: if (((ats_sum_ptr_type)tmp606)->tag != 53) { goto __ats_lab_195_0 ; } __ats_lab_194_1: tmp829 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp830 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp831 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr (tmp829) ; tmp832 = un_d1exp_sing_66 (tmp830) ; tmp833 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp832) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_exist (tmp605, tmp831, tmp833) ; break ; /* branch: __ats_lab_195 */ __ats_lab_195_0: if (((ats_sum_ptr_type)tmp606)->tag != 54) { goto __ats_lab_196_0 ; } __ats_lab_195_1: tmp834 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_0) ; tmp835 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_1) ; tmp836 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_2) ; tmp837 = d1exp_tr_arg_body_32 (tmp835, tmp836) ; tmp838 = ats_select_mac(tmp837, atslab_0) ; tmp839 = ats_select_mac(tmp837, atslab_1) ; tmp840 = ats_select_mac(tmp837, atslab_2) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn (tmp605, tmp834, tmp838, tmp839, tmp840) ; break ; /* branch: __ats_lab_196 */ __ats_lab_196_0: if (((ats_sum_ptr_type)tmp606)->tag != 55) { goto __ats_lab_197_0 ; } __ats_lab_196_1: tmp841 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_0) ; tmp842 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_1) ; tmp843 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_2) ; tmp844 = d1exp_tr_arg_body_32 (tmp842, tmp843) ; tmp845 = ats_select_mac(tmp844, atslab_0) ; tmp846 = ats_select_mac(tmp844, atslab_1) ; tmp847 = ats_select_mac(tmp844, atslab_2) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_laminit_dyn (tmp605, tmp841, tmp845, tmp846, tmp847) ; break ; /* branch: __ats_lab_197 */ __ats_lab_197_0: if (((ats_sum_ptr_type)tmp606)->tag != 56) { goto __ats_lab_198_0 ; } __ats_lab_197_1: tmp848 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_1) ; tmp849 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_2) ; tmp850 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup (tmp848) ; tmp851 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp849) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met_new (tmp605, tmp850, tmp851) ; break ; /* branch: __ats_lab_198 */ __ats_lab_198_0: if (((ats_sum_ptr_type)tmp606)->tag != 59) { goto __ats_lab_199_0 ; } __ats_lab_198_1: tmp852 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_0) ; tmp853 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_1) ; tmp854 = ats_caselptrlab_mac(anairiats_sum_31, tmp606, atslab_2) ; tmp856 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, tmp853), atslab_i0de_loc) ; tmp857 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, tmp853), atslab_i0de_sym) ; tmp855 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp856, tmp857) ; /* tmp858 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix (tmp855, ats_true_bool) ; /* tmp859 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_push_nil () ; /* tmp860 = ats_selsin_mac(tmp859, atslab_1) */ ; /* tmp861 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar (tmp855) ; tmp862 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp854) ; /* tmp863 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop_free () ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_fix (tmp605, tmp852, tmp855, tmp862) ; break ; /* branch: __ats_lab_199 */ __ats_lab_199_0: if (((ats_sum_ptr_type)tmp606)->tag != 58) { goto __ats_lab_200_0 ; } __ats_lab_199_1: tmp864 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_1) ; tmp865 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_2) ; /* tmp866 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp867 = ats_selsin_mac(tmp866, atslab_1) */ ; tmp868 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp864) ; tmp869 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp865) ; /* tmp870 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp871 = ats_select_mac(tmp868, atslab_s2qua_svs) ; tmp872 = ats_select_mac(tmp868, atslab_s2qua_sps) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta (tmp605, tmp871, tmp872, tmp869) ; break ; /* branch: __ats_lab_200 */ __ats_lab_200_0: if (((ats_sum_ptr_type)tmp606)->tag != 60) { goto __ats_lab_201_0 ; } __ats_lab_200_1: tmp604 = d1exp_tr_delay_33 (arg0) ; break ; /* branch: __ats_lab_201 */ __ats_lab_201_0: if (((ats_sum_ptr_type)tmp606)->tag != 62) { goto __ats_lab_202_0 ; } __ats_lab_201_1: tmp873 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_0) ; tmp874 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_1) ; tmp875 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_2) ; /* tmp876 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp877 = ats_selsin_mac(tmp876, atslab_1) */ ; tmp878 = loopi1nv_tr_39 (tmp873) ; tmp879 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp874) ; tmp880 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp875) ; /* tmp881 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_while (tmp605, tmp878, tmp879, tmp880) ; break ; /* branch: __ats_lab_202 */ __ats_lab_202_0: if (((ats_sum_ptr_type)tmp606)->tag != 61) { goto __ats_lab_205_0 ; } __ats_lab_202_1: tmp882 = ats_caselptrlab_mac(anairiats_sum_35, tmp606, atslab_0) ; tmp883 = ats_caselptrlab_mac(anairiats_sum_35, tmp606, atslab_1) ; tmp884 = ats_caselptrlab_mac(anairiats_sum_35, tmp606, atslab_2) ; tmp885 = ats_caselptrlab_mac(anairiats_sum_35, tmp606, atslab_3) ; tmp886 = ats_caselptrlab_mac(anairiats_sum_35, tmp606, atslab_4) ; tmp887 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp883) ; /* tmp888 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp889 = ats_selsin_mac(tmp888, atslab_1) */ ; tmp890 = loopi1nv_tr_39 (tmp882) ; tmp892 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp884), atslab_d1exp_node) ; do { /* branch: __ats_lab_203 */ __ats_lab_203_0: if (((ats_sum_ptr_type)tmp892)->tag != 14) { goto __ats_lab_204_0 ; } __ats_lab_203_1: tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_bool (tmp605, ats_true_bool) ; break ; /* branch: __ats_lab_204 */ __ats_lab_204_0: __ats_lab_204_1: tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp884) ; break ; } while (0) ; tmp893 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp885) ; tmp894 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp886) ; /* tmp895 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_for (tmp605, tmp890, tmp887, tmp891, tmp893, tmp894) ; break ; /* branch: __ats_lab_205 */ __ats_lab_205_0: if (((ats_sum_ptr_type)tmp606)->tag != 64) { goto __ats_lab_206_0 ; } __ats_lab_205_1: tmp896 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_0) ; tmp897 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_1) ; tmp898 = ats_caselptrlab_mac(anairiats_sum_26, tmp606, atslab_2) ; tmp899 = i1nvresstate_tr_38 (tmp896) ; tmp900 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp897) ; tmp901 = c1laulst_tr_46 (1, tmp898) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_trywith (tmp605, tmp899, tmp900, tmp901) ; break ; /* branch: __ats_lab_206 */ __ats_lab_206_0: if (((ats_sum_ptr_type)tmp606)->tag != 65) { goto __ats_lab_207_0 ; } __ats_lab_206_1: tmp902 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp903 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp904 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp902) ; tmp905 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp903) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (tmp605, tmp904, tmp905) ; break ; /* branch: __ats_lab_207 */ __ats_lab_207_0: if (((ats_sum_ptr_type)tmp606)->tag != 66) { goto __ats_lab_208_0 ; } __ats_lab_207_1: tmp906 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp907 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp908 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp906) ; tmp909 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr (tmp907) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff (tmp605, tmp908, tmp909) ; break ; /* branch: __ats_lab_208 */ __ats_lab_208_0: if (((ats_sum_ptr_type)tmp606)->tag != 67) { goto __ats_lab_209_0 ; } __ats_lab_208_1: tmp910 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; tmp911 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_1) ; tmp912 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp910) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo (tmp605, tmp912, tmp911) ; break ; /* branch: __ats_lab_209 */ __ats_lab_209_0: if (((ats_sum_ptr_type)tmp606)->tag != 68) { goto __ats_lab_210_0 ; } __ats_lab_209_1: tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macsyn (arg0) ; break ; /* branch: __ats_lab_210 */ __ats_lab_210_0: if (((ats_sum_ptr_type)tmp606)->tag != 69) { goto __ats_lab_211_0 ; } __ats_lab_210_1: tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__d1exp_tr_macfun (arg0) ; break ; /* branch: __ats_lab_211 */ __ats_lab_211_0: if (((ats_sum_ptr_type)tmp606)->tag != 70) { goto __ats_lab_212_0 ; } __ats_lab_211_1: tmp913 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp914 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp913) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solassert (tmp605, tmp914) ; break ; /* branch: __ats_lab_212 */ __ats_lab_212_0: if (((ats_sum_ptr_type)tmp606)->tag != 71) { goto __ats_lab_213_0 ; } __ats_lab_212_1: tmp915 = ats_caselptrlab_mac(anairiats_sum_7, tmp606, atslab_0) ; tmp916 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp915, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solverify (tmp605, tmp916) ; break ; /* branch: __ats_lab_213 */ __ats_lab_213_0: if (((ats_sum_ptr_type)tmp606)->tag != 72) { goto __ats_lab_214_0 ; } __ats_lab_213_1: tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp605) ; break ; /* branch: __ats_lab_214 */ __ats_lab_214_0: if (((ats_sum_ptr_type)tmp606)->tag != 2) { goto __ats_lab_215_0 ; } __ats_lab_214_1: tmp917 = ats_caselptrlab_mac(anairiats_sum_5, tmp606, atslab_0) ; /* tmp918 = */ prerr_error2_loc_02401_ (tmp605) ; /* tmp919 = */ atspre_prerr_string (ATSstrcst(": the external id [")) ; /* tmp920 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp917) ; /* tmp921 = */ atspre_prerr_string (ATSstrcst("] cannot be handled.")) ; /* tmp922 = */ atspre_prerr_newline () ; tmp924 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp924)->tag = 28 ; ats_selptrset_mac(anairiats_sum_7, tmp924, atslab_0, arg0) ; /* tmp923 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp924) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp605) ; break ; /* branch: __ats_lab_215 */ __ats_lab_215_0: if (((ats_sum_ptr_type)tmp606)->tag != 52) { goto __ats_lab_216_0 ; } __ats_lab_215_1: /* tmp925 = */ prerr_error2_loc_02401_ (tmp605) ; /* tmp926 = */ atspre_prerr_string (ATSstrcst(": this form of expression is only allowed to occur as an argument.")) ; /* tmp927 = */ atspre_prerr_newline () ; tmp929 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp929)->tag = 28 ; ats_selptrset_mac(anairiats_sum_7, tmp929, atslab_0, arg0) ; /* tmp928 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp929) ; tmp604 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp605) ; break ; /* branch: __ats_lab_216 */ __ats_lab_216_0: __ats_lab_216_1: /* tmp930 = */ prerr_interror_loc_02399_ (tmp605) ; /* tmp931 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("d1exp_tr")) ; /* tmp932 = */ atspre_prerr_string (ATSstrcst(": not yet implemented: d1e0 = ")) ; /* tmp933 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp (arg0) ; /* tmp934 = */ atspre_prerr_newline () ; /* tmp604 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; return (tmp604) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 49525(line=2154, offs=13) -- 49568(line=2154, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp935) ; ATSlocal (ats_ptr_type, tmp936) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr: tmp936 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr) ; tmp935 = ats_castfn_mac(ats_ptr_type, tmp936) ; return (tmp935) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 49593(line=2157, offs=13) -- 49680(line=2160, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1expopt_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp937) ; ATSlocal (ats_ptr_type, tmp938) ; ATSlocal (ats_ptr_type, tmp939) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1expopt_tr: do { /* branch: __ats_lab_217 */ __ats_lab_217_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_218_0 ; } __ats_lab_217_1: tmp938 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp939 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp938) ; tmp937 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp937, atslab_0, tmp939) ; break ; /* branch: __ats_lab_218 */ __ats_lab_218_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_218_1: tmp937 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp937) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1expopt_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 49754(line=2166, offs=13) -- 49844(line=2168, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labd1exp_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp940) ; ATSlocal (ats_ptr_type, tmp941) ; ATSlocal (ats_ptr_type, tmp942) ; ATSlocal (ats_ptr_type, tmp943) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labd1exp_tr: // tmp941 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp942 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp943 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (tmp942) ; tmp940 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__labd2exp_make (tmp941, tmp943) ; return (tmp940) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labd1exp_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 49910(line=2173, offs=10) -- 50877(line=2212, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1lab_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp944) ; ATSlocal (ats_ptr_type, tmp945) ; ATSlocal (ats_ptr_type, tmp946) ; ATSlocal (ats_ptr_type, tmp947) ; ATSlocal (ats_ptr_type, tmp948) ; ATSlocal (ats_ptr_type, tmp949) ; ATSlocal (ats_ptr_type, tmp950) ; ATSlocal (ats_ptr_type, tmp951) ; ATSlocal (ats_ptr_type, tmp952) ; ATSlocal (ats_ptr_type, tmp953) ; ATSlocal (ats_ptr_type, tmp954) ; ATSlocal (ats_ptr_type, tmp955) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1lab_tr: tmp945 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_d1lab_loc) ; tmp946 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_d1lab_node) ; do { /* branch: __ats_lab_219 */ __ats_lab_219_0: if (((ats_sum_ptr_type)tmp946)->tag != 0) { goto __ats_lab_226_0 ; } __ats_lab_219_1: tmp947 = ats_caselptrlab_mac(anairiats_sum_7, tmp946, atslab_0) ; tmp948 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_dotize (tmp947) ; tmp949 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (tmp948) ; do { /* branch: __ats_lab_220 */ __ats_lab_220_0: if (tmp949 == (ats_sum_ptr_type)0) { goto __ats_lab_225_0 ; } __ats_lab_220_1: tmp951 = ats_caselptrlab_mac(anairiats_sum_4, tmp949, atslab_0) ; ATS_FREE(tmp949) ; do { /* branch: __ats_lab_221 */ __ats_lab_221_0: if (((ats_sum_ptr_type)tmp951)->tag != 4) { goto __ats_lab_224_0 ; } __ats_lab_221_1: tmp952 = ats_caselptrlab_mac(anairiats_sum_5, tmp951, atslab_1) ; do { /* branch: __ats_lab_222 */ __ats_lab_222_0: if (tmp952 != (ats_sum_ptr_type)0) { goto __ats_lab_223_0 ; } __ats_lab_222_1: tmp950 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_223 */ __ats_lab_223_0: // if (tmp952 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_223_1: tmp953 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2sym_make (tmp945, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none, tmp948, tmp952) ; tmp950 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp950, atslab_0, tmp953) ; break ; } while (0) ; break ; /* branch: __ats_lab_224 */ __ats_lab_224_0: __ats_lab_224_1: tmp950 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_225 */ __ats_lab_225_0: // if (tmp949 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_225_1: tmp950 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp944 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_lab (tmp945, tmp947, tmp950) ; break ; /* branch: __ats_lab_226 */ __ats_lab_226_0: // if (((ats_sum_ptr_type)tmp946)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_226_1: tmp954 = ats_caselptrlab_mac(anairiats_sum_7, tmp946, atslab_0) ; tmp955 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1explst_tr (tmp954) ; tmp944 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_ind (tmp945, tmp955) ; break ; } while (0) ; return (tmp944) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1lab_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 51273(line=2233, offs=1) -- 51557(line=2244, offs=2) */ ATSstaticdec() ats_void_type auxerr_cst_77 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp958) ; // ATSlocal_void (tmp959) ; ATSlocal (ats_ptr_type, tmp960) ; // ATSlocal_void (tmp961) ; // ATSlocal_void (tmp962) ; // ATSlocal_void (tmp963) ; // ATSlocal_void (tmp964) ; // ATSlocal_void (tmp965) ; ATSlocal (ats_ptr_type, tmp966) ; __ats_lab_auxerr_cst_77: tmp960 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, env1), atslab_d2exp_loc) ; /* tmp959 = */ prerr_error2_loc_02401_ (tmp960) ; /* tmp961 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("S1Ed2ctype_tr")) ; /* tmp962 = */ atspre_prerr_string (ATSstrcst(": the dynamic constant [")) ; /* tmp963 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2cst (arg0) ; /* tmp964 = */ atspre_prerr_string (ATSstrcst("] should be instantiated.")) ; /* tmp965 = */ atspre_prerr_newline () ; tmp966 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp966)->tag = 8 ; ats_selptrset_mac(anairiats_sum_7, tmp966, atslab_0, env0) ; /* tmp958 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp966) ; return /* (tmp958) */ ; } /* end of [auxerr_cst_77] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxerr_cst_77_closure_type ; ats_void_type auxerr_cst_77_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxerr_cst_77 (((auxerr_cst_77_closure_type*)cloptr)->closure_env_0, ((auxerr_cst_77_closure_type*)cloptr)->closure_env_1, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr_cst_77_closure_init (auxerr_cst_77_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr_cst_77_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxerr_cst_77_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxerr_cst_77_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_cst_77_closure_type)) ; auxerr_cst_77_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 51565(line=2247, offs=1) -- 51808(line=2257, offs=2) */ ATSstaticdec() ats_void_type auxerr1_tmpid_78 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp967) ; // ATSlocal_void (tmp968) ; ATSlocal (ats_ptr_type, tmp969) ; // ATSlocal_void (tmp970) ; // ATSlocal_void (tmp971) ; // ATSlocal_void (tmp972) ; // ATSlocal_void (tmp973) ; __ats_lab_auxerr1_tmpid_78: tmp969 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg0), atslab_d2exp_loc) ; /* tmp968 = */ prerr_error2_loc_02401_ (tmp969) ; /* tmp970 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("S1Ed2ctype_tr")) ; /* tmp971 = */ atspre_prerr_string (ATSstrcst(": a declared dynamic constant is expected instead of [")) ; /* tmp972 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp (arg0) ; /* tmp973 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp967 = */ atspre_prerr_newline () ; return /* (tmp967) */ ; } /* end of [auxerr1_tmpid_78] */ typedef struct { ats_fun_ptr_type closure_fun ; } auxerr1_tmpid_78_closure_type ; ats_void_type auxerr1_tmpid_78_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxerr1_tmpid_78 (arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr1_tmpid_78_closure_init (auxerr1_tmpid_78_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr1_tmpid_78_clofun ; return ; } /* end of function */ ats_clo_ptr_type auxerr1_tmpid_78_closure_make () { auxerr1_tmpid_78_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr1_tmpid_78_closure_type)) ; auxerr1_tmpid_78_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 51813(line=2259, offs=1) -- 52134(line=2270, offs=2) */ ATSstaticdec() ats_void_type auxerr2_tmpid_79 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp974) ; // ATSlocal_void (tmp975) ; ATSlocal (ats_ptr_type, tmp976) ; // ATSlocal_void (tmp977) ; // ATSlocal_void (tmp978) ; // ATSlocal_void (tmp979) ; // ATSlocal_void (tmp980) ; // ATSlocal_void (tmp981) ; ATSlocal (ats_ptr_type, tmp982) ; __ats_lab_auxerr2_tmpid_79: tmp976 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg0), atslab_d2exp_loc) ; /* tmp975 = */ prerr_error2_loc_02401_ (tmp976) ; /* tmp977 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("S1Ed2ctype_tr")) ; /* tmp978 = */ atspre_prerr_string (ATSstrcst(": the dynamic constant [")) ; /* tmp979 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2cst (arg1) ; /* tmp980 = */ atspre_prerr_string (ATSstrcst("] is required to be be fully instantiated.")) ; /* tmp981 = */ atspre_prerr_newline () ; tmp982 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp982)->tag = 8 ; ats_selptrset_mac(anairiats_sum_7, tmp982, atslab_0, env0) ; /* tmp974 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp982) ; return /* (tmp974) */ ; } /* end of [auxerr2_tmpid_79] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr2_tmpid_79_closure_type ; ats_void_type auxerr2_tmpid_79_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { auxerr2_tmpid_79 (((auxerr2_tmpid_79_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr2_tmpid_79_closure_init (auxerr2_tmpid_79_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr2_tmpid_79_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr2_tmpid_79_closure_make (ats_ptr_type env0) { auxerr2_tmpid_79_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr2_tmpid_79_closure_type)) ; auxerr2_tmpid_79_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52087(line=1854, offs=21) -- 52314(line=1862, offs=6) */ ATSstaticdec() ats_int_type list_length_compare_01411_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1001) ; ATSlocal (ats_ptr_type, tmp1002) ; ATSlocal (ats_ptr_type, tmp1003) ; __ats_lab_list_length_compare_01411_ats_ptr_type_2cats_ptr_type: do { /* branch: __ats_lab_230 */ __ats_lab_230_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_233_0 ; } __ats_lab_230_1: tmp1002 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_231 */ __ats_lab_231_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_232_0 ; } __ats_lab_231_1: tmp1003 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; arg0 = tmp1002 ; arg1 = tmp1003 ; goto __ats_lab_list_length_compare_01411_ats_ptr_type_2cats_ptr_type ; // tail call break ; /* branch: __ats_lab_232 */ __ats_lab_232_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_232_1: tmp1001 = 1 ; break ; } while (0) ; break ; /* branch: __ats_lab_233 */ __ats_lab_233_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_233_1: do { /* branch: __ats_lab_234 */ __ats_lab_234_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_235_0 ; } __ats_lab_234_1: tmp1001 = -1 ; break ; /* branch: __ats_lab_235 */ __ats_lab_235_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_235_1: tmp1001 = 0 ; break ; } while (0) ; break ; } while (0) ; return (tmp1001) ; } /* end of [list_length_compare_01411_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_dynexp.dats: 51203(line=2227, offs=14) -- 53558(line=2330, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__S1Ed2ctype_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp956) ; ATSlocal (ats_ptr_type, tmp957) ; ATSlocal (ats_ptr_type, tmp983) ; ATSlocal (ats_ptr_type, tmp984) ; ATSlocal (ats_bool_type, tmp985) ; // ATSlocal_void (tmp986) ; ATSlocal (ats_ptr_type, tmp987) ; ATSlocal (ats_ptr_type, tmp988) ; ATSlocal (ats_ptr_type, tmp989) ; ATSlocal (ats_ptr_type, tmp990) ; ATSlocal (ats_ptr_type, tmp991) ; ATSlocal (ats_ptr_type, tmp992) ; ATSlocal (ats_ptr_type, tmp993) ; ATSlocal (ats_ptr_type, tmp994) ; ATSlocal (ats_ptr_type, tmp995) ; ATSlocal (ats_int_type, tmp996) ; ATSlocal (anairiats_rec_3, tmp997) ; ATSlocal (ats_ptr_type, tmp998) ; ATSlocal (ats_ptr_type, tmp999) ; ATSlocal (ats_int_type, tmp1000) ; // ATSlocal_void (tmp1004) ; ATSlocal (ats_bool_type, tmp1005) ; // ATSlocal_void (tmp1006) ; // ATSlocal_void (tmp1007) ; ATSlocal (ats_ptr_type, tmp1008) ; // ATSlocal_void (tmp1009) ; // ATSlocal_void (tmp1010) ; // ATSlocal_void (tmp1011) ; // ATSlocal_void (tmp1012) ; ATSlocal (ats_ptr_type, tmp1013) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__S1Ed2ctype_tr: tmp957 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp983 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp957), atslab_d2exp_node) ; do { /* branch: __ats_lab_227 */ __ats_lab_227_0: if (((ats_sum_ptr_type)tmp983)->tag != 0) { goto __ats_lab_228_0 ; } __ats_lab_227_1: tmp984 = ats_caselptrlab_mac(anairiats_sum_7, tmp983, atslab_0) ; tmp985 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_is_tmpcst (tmp984) ; if (tmp985) { /* tmp986 = */ auxerr_cst_77 (arg0, tmp957, tmp984) ; } else { /* empty */ } /* end of [if] */ tmp956 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (tmp984) ; break ; /* branch: __ats_lab_228 */ __ats_lab_228_0: if (((ats_sum_ptr_type)tmp983)->tag != 25) { goto __ats_lab_237_0 ; } __ats_lab_228_1: tmp987 = ats_caselptrlab_mac(anairiats_sum_5, tmp983, atslab_0) ; tmp988 = ats_caselptrlab_mac(anairiats_sum_5, tmp983, atslab_1) ; tmp989 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp987), atslab_d2exp_node) ; do { /* branch: __ats_lab_229 */ __ats_lab_229_0: if (((ats_sum_ptr_type)tmp989)->tag != 0) { goto __ats_lab_236_0 ; } __ats_lab_229_1: tmp990 = ats_caselptrlab_mac(anairiats_sum_7, tmp989, atslab_0) ; tmp991 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp957), atslab_d2exp_loc) ; tmp992 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (tmp991) ; tmp993 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (tmp990) ; tmp994 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (tmp990) ; tmp995 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (tmp990) ; /* ats_int_type tmp996 ; */ tmp996 = 0 ; tmp997 = patsopt_s2exp_tmp_instantiate_tmpmarglst (tmp995, tmp992, tmp994, tmp988, (&tmp996)) ; tmp998 = ats_select_mac(tmp997, atslab_0) ; tmp999 = ats_select_mac(tmp997, atslab_1) ; tmp1000 = list_length_compare_01411_ats_ptr_type_2cats_ptr_type (tmp988, tmp999) ; tmp1005 = atspre_ilt (tmp1000, 0) ; if (tmp1005) { /* tmp1004 = */ auxerr2_tmpid_79 (arg0, tmp987, tmp990) ; } else { /* empty */ } /* end of [if] */ tmp956 = tmp998 ; break ; /* branch: __ats_lab_236 */ __ats_lab_236_0: __ats_lab_236_1: /* tmp1006 = */ auxerr1_tmpid_78 (tmp987) ; tmp956 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; break ; /* branch: __ats_lab_237 */ __ats_lab_237_0: __ats_lab_237_1: tmp1008 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, tmp957), atslab_d2exp_loc) ; /* tmp1007 = */ prerr_error2_loc_02401_ (tmp1008) ; /* tmp1009 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_dynexp.dats"), ATSstrcst("S1Ed2ctype_tr")) ; /* tmp1010 = */ atspre_print_string (ATSstrcst(": [$d2ctype] can only be applied to a declared dynamic constant.")) ; /* tmp1011 = */ atspre_print_newline () ; tmp1013 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp1013)->tag = 8 ; ats_selptrset_mac(anairiats_sum_7, tmp1013, atslab_0, arg0) ; /* tmp1012 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1013) ; tmp956 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; return (tmp956) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__S1Ed2ctype_tr] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDderef_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDassgn_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDxchng_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__SPDIDnone_3.tag = 3 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_dynexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_comarg_sats.c0000644000175000017500000000220413431250607022012 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__COMARG_0) ; /* exn constructor declarations */ /* static load function */ ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__COMARG_0.tag = 0 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_comarg_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_lamlp_dats.c0000644000175000017500000011525013431250607024000 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPlam_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop0_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop1_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__lamlpenv_push_v = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_4 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp4) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lamlp.dats: 1555(line=43, offs=28) -- 1589(line=43, offs=62) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_env_lamlp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp3 ; */ tmp3 = arg0 ; tmp2 = atspre_ref_make_elt_tsz ((&tmp3), sizeof(ats_ptr_type)) ; return (tmp2) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lamlp.dats: 1919(line=68, offs=3) -- 2227(line=80, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_top () { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_top: tmp6 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp7 = ats_ptrget_mac(ats_ptr_type, tmp6) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp7 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_1, tmp7, atslab_0) ; tmp5 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp5, atslab_0, tmp8) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp7 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp5 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_top] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lamlp.dats: 2344(line=88, offs=5) -- 2810(line=108, offs=4) */ ATSstaticdec() ats_ptr_type loop_4 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab_loop_4: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_2_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp12 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp11)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_3, tmp11, atslab_0) ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_0, tmp13) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp11)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp14 = ats_ptrget_mac(ats_ptr_type, tmp12) ; arg0 = tmp14 ; goto __ats_lab_loop_4 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (((ats_sum_ptr_type)tmp11)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp15 = ats_ptrget_mac(ats_ptr_type, tmp12) ; arg0 = tmp15 ; goto __ats_lab_loop_4 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp10 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp10) ; } /* end of [loop_4] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lamlp.dats: 2320(line=86, offs=3) -- 2923(line=114, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_get_funarg () { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_get_funarg: tmp16 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp17 = ats_ptrget_mac(ats_ptr_type, tmp16) ; tmp9 = loop_4 (tmp17) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_get_funarg] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lamlp.dats: 3011(line=120, offs=3) -- 3180(line=125, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop () { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop: tmp19 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp20 = ats_ptrget_mac(ats_ptr_type, tmp19) ; if (tmp20 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lamlp.dats: 3136(line=124, offs=7) -- 3163(line=124, offs=34)") ; } tmp21 = ats_caselptrlab_mac(anairiats_sum_1, tmp20, atslab_1) ; ATS_FREE(tmp20) ; ats_ptrget_mac(ats_ptr_type, tmp19) = tmp21 ; return /* (tmp18) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lamlp.dats: 3269(line=130, offs=23) -- 3440(line=136, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_lam (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_lam: tmp23 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp25)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp25, atslab_0, arg0) ; tmp26 = ats_ptrget_mac(ats_ptr_type, tmp23) ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp24, atslab_0, tmp25) ; ats_selptrset_mac(anairiats_sum_1, tmp24, atslab_1, tmp26) ; ats_ptrget_mac(ats_ptr_type, tmp23) = tmp24 ; return /* (tmp22) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_lam] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lamlp.dats: 3531(line=141, offs=25) -- 3696(line=147, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop0 () { /* local vardec */ // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop0: tmp28 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp30 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop0_1) ; tmp31 = ats_ptrget_mac(ats_ptr_type, tmp28) ; tmp29 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp29, atslab_0, tmp30) ; ats_selptrset_mac(anairiats_sum_1, tmp29, atslab_1, tmp31) ; ats_ptrget_mac(ats_ptr_type, tmp28) = tmp29 ; return /* (tmp27) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop0] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lamlp.dats: 3770(line=151, offs=3) -- 3967(line=157, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop1: tmp33 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp35 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp35)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp35, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp35, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp35, atslab_2, arg2) ; tmp36 = ats_ptrget_mac(ats_ptr_type, tmp33) ; tmp34 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp34, atslab_0, tmp35) ; ats_selptrset_mac(anairiats_sum_1, tmp34, atslab_1, tmp36) ; ats_ptrget_mac(ats_ptr_type, tmp33) = tmp34 ; return /* (tmp32) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop1] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp4 = (ats_sum_ptr_type)0 ; statmp1 = ref_01088_ats_ptr_type (statmp4) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_lamlp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_constraint3_sats.c0000644000175000017500000002634013431250607023020 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_rec_1 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Evar_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ecst_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eunit_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebool_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebvar_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneg_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebadd_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebmul_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebeq_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneq_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebineq_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebdom_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eiatm_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eicff_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eisum_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eimul_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Esizeof_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eapp_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eerr_19) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Evar_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ecst_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eunit_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebool_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebvar_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneg_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebadd_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebmul_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebeq_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneq_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebineq_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebdom_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eiatm_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eicff_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eisum_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eimul_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Esizeof_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eapp_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eerr_19.tag = 19 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_constraint3_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_sort_dats.c0000644000175000017500000013672213431250607023252 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* include some .h files */ #ifndef _ATS_HEADER_NONE #include "ats_config.h" #include "ats_basics.h" #include "ats_types.h" #include "ats_exception.h" #include "ats_memory.h" #endif /* _ATS_HEADER_NONE */ /* include some .cats files */ #ifndef _ATS_PRELUDE_NONE #include "prelude/CATS/basics.cats" #include "prelude/CATS/bool.cats" #include "prelude/CATS/char.cats" #include "prelude/CATS/byte.cats" #include "prelude/CATS/float.cats" #include "prelude/CATS/integer.cats" #include "prelude/CATS/integer_ptr.cats" #include "prelude/CATS/integer_fixed.cats" #include "prelude/CATS/sizetype.cats" #include "prelude/CATS/pointer.cats" #include "prelude/CATS/reference.cats" #include "prelude/CATS/string.cats" #include "prelude/CATS/lazy.cats" #include "prelude/CATS/lazy_vt.cats" #include "prelude/CATS/printf.cats" #include "prelude/CATS/list.cats" #include "prelude/CATS/option.cats" #include "prelude/CATS/array.cats" #include "prelude/CATS/matrix.cats" #endif /* _ATS_PRELUDE_NONE */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; 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_BAR_2) ; 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_COLON_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSGT_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPE_78) ; 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_LPAREN_157) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtid_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0rt_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0marg_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT2_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_symdot) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_i0de) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_qid) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_list) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtcon_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_one) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_many) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0msrt_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_DOT) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun) (ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de_dlr) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtq) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtid) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0rtopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0srt) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de) (ats_ref_type, ats_int_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type p_s0rtseq_vt_2 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type loop_5 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_atms0rt_tok_3 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_atms0rt_6 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type loop_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p_s0marg_tok_12 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_d0atsrtcon_16 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 1951(line=70, offs=3) -- 2736(line=104, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtid (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_int_type, tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtid: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1), atslab_token_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1), atslab_token_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp3)->tag != 143) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp2, tmp4) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp3)->tag != 144) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp2, tmp6) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp3)->tag != 5) { goto __ats_lab_3_0 ; } __ats_lab_2_1: /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp2, ATSstrcst("\\")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp3)->tag != 27) { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__i0de_make_string (tmp2, ATSstrcst("->")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp10 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp10 ; tmp12 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtid_45) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp2, tmp12) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtid] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 2806(line=110, offs=9) -- 3047(line=119, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtq: tmp14 = ats_ptrget_mac(ats_int_type, arg2) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de_dlr, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_DOT) ; // tmp16 = ats_caselptrlab_mac(anairiats_sum_3, tmp15, atslab_0) ; tmp17 = ats_caselptrlab_mac(anairiats_sum_3, tmp15, atslab_1) ; ATS_FREE(tmp15) ; tmp18 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp14) ; if (tmp18) { tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_symdot (tmp16, tmp17) ; } else { tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 3094(line=124, offs=1) -- 3210(line=129, offs=44) */ ATSstaticdec() ats_ptr_type p_s0rtseq_vt_2 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; __ats_lab_p_s0rtseq_vt_2: tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt) ; return (tmp19) ; } /* end of [p_s0rtseq_vt_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab_loop_5: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp37 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: break ; } while (0) ; return /* (tmp36) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp35) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp35 = */ loop_5 (arg0) ; return /* (tmp35) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 3438(line=146, offs=1) -- 4665(line=199, offs=4) */ ATSstaticdec() ats_ptr_type p_atms0rt_tok_3 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; // ATSlocal_void (tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_bool_type, tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_bool_type, tmp33) ; // ATSlocal_void (tmp34) ; ATSlocal (ats_int_type, tmp38) ; __ats_lab_p_atms0rt_tok_3: tmp21 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp22 ; */ tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_node) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtid, (&tmp22)) ; if (!tmp24) { goto __ats_lab_6_0 ; } tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_i0de (ats_castfn_mac(ats_ptr_type, tmp22)) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp23)->tag != 78) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_type (arg3) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtq, (&tmp22)) ; if (!tmp26) { goto __ats_lab_8_0 ; } tmp27 = ats_castfn_mac(ats_ptr_type, tmp22) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rtid (arg0, 0, arg2) ; tmp29 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp21) ; if (tmp29) { tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_qid (tmp27, tmp28) ; } else { tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp23)->tag != 157) { goto __ats_lab_11_0 ; } __ats_lab_8_1: /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp31 = p_s0rtseq_vt_2 (arg0, 0, arg2) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp33 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp21) ; if (tmp33) { tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_list (arg3, ats_castfn_mac(ats_ptr_type, tmp31), tmp32) ; } else { /* tmp34 = */ list_vt_free_01499_ats_ptr_type (tmp31) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp38 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp38 ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp20) ; } /* end of [p_atms0rt_tok_3] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 4697(line=202, offs=1) -- 4811(line=205, offs=57) */ ATSstaticdec() ats_ptr_type p_atms0rt_6 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab_p_atms0rt_6: tmp40 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0rt_63) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_atms0rt_tok_3, tmp40) ; return (tmp39) ; } /* end of [p_atms0rt_6] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 4975(line=217, offs=7) -- 5198(line=224, offs=28) */ ATSstaticdec() ats_ptr_type loop_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab_loop_8: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp45 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rt_app (arg0, tmp44) ; arg0 = tmp46 ; arg1 = tmp45 ; goto __ats_lab_loop_8 ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp43 = arg0 ; break ; } while (0) ; return (tmp43) ; } /* end of [loop_8] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 4900(line=215, offs=8) -- 5339(line=232, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun (arg0, arg1, arg2, &p_atms0rt_6) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp42 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_3, tmp42, atslab_0) ; tmp48 = ats_caselptrlab_mac(anairiats_sum_3, tmp42, atslab_1) ; ATS_FREE(tmp42) ; tmp41 = loop_8 (tmp47, tmp48) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp42 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 5405(line=238, offs=3) -- 5464(line=239, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0rtopt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0rtopt: tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt) ; tmp49 = ats_castfn_mac(ats_ptr_type, tmp50) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0rtopt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 5518(line=244, offs=3) -- 5580(line=245, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt: tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt) ; tmp51 = ats_castfn_mac(ats_ptr_type, tmp52) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 5687(line=256, offs=3) -- 6125(line=281, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_int_type, tmp54) ; ATSlocal (ats_uint_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg: tmp54 = ats_ptrget_mac(ats_int_type, arg2) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, arg1, arg2) ; tmp58 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp54) ; if (tmp58) { tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_colons0rtopt (arg0, 0, arg2) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arg_make (tmp57, tmp59) ; } else { tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp55) ; } /* end of [if] */ return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 6221(line=290, offs=1) -- 7020(line=327, offs=4) */ ATSstaticdec() ats_ptr_type p_s0marg_tok_12 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_int_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_bool_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_bool_type, tmp71) ; // ATSlocal_void (tmp72) ; ATSlocal (ats_int_type, tmp73) ; __ats_lab_p_s0marg_tok_12: tmp61 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp62 ; */ tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_node) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de, (&tmp62)) ; if (!tmp64) { goto __ats_lab_17_0 ; } tmp65 = ats_castfn_mac(ats_ptr_type, tmp62) ; tmp67 = (ats_sum_ptr_type)0 ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0arg_make (tmp65, tmp67) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_one (tmp66) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp63)->tag != 157) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0arg) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp71 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp61) ; if (tmp71) { tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0marg_make_many (arg3, ats_castfn_mac(ats_ptr_type, tmp69), tmp70) ; } else { /* tmp72 = */ list_vt_free_01499_ats_ptr_type (tmp69) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp73 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp73 ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp60) ; } /* end of [p_s0marg_tok_12] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 7066(line=330, offs=10) -- 7137(line=331, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0marg (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0marg: tmp75 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0marg_64) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_s0marg_tok_12, tmp75) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0marg] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 7247(line=341, offs=3) -- 8246(line=387, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0srt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_uint_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_bool_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_bool_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0srt: tmp77 = ats_ptrget_mac(ats_int_type, arg2) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (arg0, tmp78) ; tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp81), atslab_token_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp83)->tag != 6) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, arg1, arg2) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON, tmp77) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt, tmp77) ; tmp87 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp77) ; if (tmp87) { tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_some (tmp84, tmp86) ; } else { tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp78) ; } /* end of [if] */ break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_s0rt (arg0, arg1, arg2) ; tmp89 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp77) ; if (tmp89) { tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0srt_make_none (tmp88) ; } else { tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp78) ; } /* end of [if] */ break ; } while (0) ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0srt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 8310(line=393, offs=3) -- 8933(line=418, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0msrt (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_uint_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; // ATSlocal_void (tmp99) ; ATSlocal (ats_int_type, tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0msrt: tmp91 = ats_ptrget_mac(ats_int_type, arg2) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp94 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp93), atslab_token_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp94)->tag != 157) { goto __ats_lab_22_0 ; } __ats_lab_21_1: /* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, 0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0srt) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp98 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp91) ; if (tmp98) { tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__a0msrt_make (tmp93, ats_castfn_mac(ats_ptr_type, tmp96), tmp97) ; } else { /* tmp99 = */ list_vt_free_01499_ats_ptr_type (tmp96) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp92) ; } /* end of [if] */ break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp100 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp100 ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_a0msrt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 9022(line=427, offs=1) -- 9505(line=455, offs=4) */ ATSstaticdec() ats_ptr_type p_d0atsrtcon_16 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_uint_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_bool_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab_p_d0atsrtcon_16: tmp102 = ats_ptrget_mac(ats_int_type, arg2) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_si0de (arg0, arg1, arg2) ; tmp106 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp102) ; if (tmp106) { tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ofs0rtopt (arg0, 0, arg2) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0atsrtcon_make (tmp105, tmp107) ; } else { tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp103) ; } /* end of [if] */ return (tmp101) ; } /* end of [p_d0atsrtcon_16] */ /* // /tmp/ATS-Postiats/src/pats_parsing_sort.dats: 9581(line=461, offs=3) -- 9936(line=476, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtconseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtconseq: tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp110 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp109), atslab_token_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp110)->tag != 2) { goto __ats_lab_24_0 ; } __ats_lab_23_1: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR (arg0, arg1, &p_d0atsrtcon_16) ; tmp108 = ats_castfn_mac(ats_ptr_type, tmp112) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR (arg0, arg1, &p_d0atsrtcon_16) ; tmp108 = ats_castfn_mac(ats_ptr_type, tmp113) ; break ; } while (0) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0atsrtconseq] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_sort_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/0000755000175000017500000000000013431250607017575 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/DATS_hashtable_linprb_dats.c0000644000175000017500000002224713431250607025077 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ 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_0 ; /* external typedefs */ typedef anairiats_rec_0 HASHTBL ; /* external dynamic constructor declarations */ /* external dynamic constant declarations */ 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_bool_type, atspre_gt_int_int) (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_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_gt_size1_int1) (ats_size_type, ats_int_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) ; /* 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_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 3240(line=104, offs=24) -- 3379(line=108, offs=2) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__hashtbl_size (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__hashtbl_size: tmp1 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp0 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp1), atslab_sz) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__hashtbl_size] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 3442(line=111, offs=25) -- 3584(line=115, offs=2) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__hashtbl_total (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__hashtbl_total: tmp3 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp2 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp3), atslab_tot) ; return (tmp2) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__hashtbl_total] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__staload () { static int ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__dynload () { // ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2extern_2esats__minus_addback_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ // // declared in [string.h] // #ifndef memset extern void *memset (void *buf, int chr, size_t n) ; #endif // ats_ptr_type atslib_hashtbl_ptr_make__linprb (ats_size_type sz, ats_size_type keyitmsz) { ats_ptr_type pbeg ; /* zeroing the allocated memory is mandatory! */ pbeg = ATS_CALLOC(sz, keyitmsz) ; return pbeg ; } // end of [atslib_hashtbl_ptr_make__linprb] // ats_void_type atslib_hashtbl_ptr_clear__linprb ( ats_ptr_type ptbl, ats_size_type sz, ats_size_type keyitmsz ) { memset (ptbl, 0, sz * keyitmsz) ; return ; } // end of [atslib_hashtbl_clear__linprb] // ats_void_type atslib_hashtbl_ptr_free__linprb (ats_ptr_type pbeg) { ATS_FREE(pbeg) ; return ; } // end of [atslib_hashtbl_ptr_free__linprb] // // // HX: shortcuts? yes. worth it? probably. // #define HASHTABLE_MINSZ 97 // it is chosen arbitrarily // ats_ptr_type atslib_hashtbl_make_hint_tsz__linprb ( ats_clo_ref_type hash , ats_clo_ref_type eqfn , ats_size_type hint , ats_size_type keyitmsz ) { size_t sz ; HASHTBL *ptbl ; void *pbeg ; ptbl = ATS_MALLOC(sizeof(HASHTBL)) ; sz = (hint > 0 ? hint : HASHTABLE_MINSZ) ; /* zeroing the allocated memory is mandatory! */ pbeg = ATS_CALLOC(sz, keyitmsz) ; ptbl->atslab_sz = sz ; ptbl->atslab_tot = 0 ; ptbl->atslab_pbeg = pbeg ; ptbl->atslab_hash = hash ; ptbl->atslab_eqfn = eqfn ; return ptbl ; } // end of [atslib_hashtbl_make_hint_tsz__linprb] // ats_void_type atslib_hashtbl_free__linprb (ats_ptr_type ptbl) { ATS_FREE(((HASHTBL*)ptbl)->atslab_pbeg) ; ATS_FREE(ptbl) ; return ; } // end of [atslib_hashtbl_free__linprb] // ats_void_type atslib_hashtbl_free_null__linprb (ats_ptr_type ptbl) { return ; } // end of [atslib_hashtbl_free_null__linprb] // ats_int_type atslib_hashtbl_free_vt__linprb (ats_ptr_type ptbl) { if (((HASHTBL*)ptbl)->atslab_tot != 0) return 1 ; ATS_FREE(((HASHTBL*)ptbl)->atslab_pbeg) ; ATS_FREE(ptbl) ; return 0 ; } // end of [atslib_hashtbl_free_vt__linprb] // /* ****** ****** */ /* end of [DATS_hashtable_linprb_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/ngc/0000755000175000017500000000000013431250607020344 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/ngc/CATS/0000755000175000017500000000000013431250607021076 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/ngc/CATS/.keeper0000644000175000017500000000000013431250607022340 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/ngc/CATS/deque_arr.cats0000644000175000017500000001335413431250607023727 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2010 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** */ /* ****** ****** */ #ifndef ATS_LIBATS_NGC_DEQUE_ARR_CATS #define ATS_LIBATS_NGC_DEQUE_ARR_CATS /* ****** ****** */ typedef struct { ats_size_type cap ; ats_size_type nitm ; ats_ptr_type qarr_lft ; ats_ptr_type qarr_rgt ; ats_ptr_type qarr_beg ; ats_ptr_type qarr_end ; } atslib_ngc_deque_arr_DEQUE ; /* ****** ****** */ #ifndef memcpy // // HX: [memcpy] is not a macro // extern void *memcpy (void *dst, const void* src, size_t n) ; #endif // end of [memcpy] /* ****** ****** */ // // HX: these two are implemented in ATS: // extern ats_void_type atslib_ngc_deque_arr_deque_initialize_tsz ( ats_ptr_type pq , ats_size_type qsz , ats_ptr_type parr , ats_size_type tsz ) ; // end of [atslib_ngc_deque_arr_deque_initialize_tsz] extern ats_ptr_type atslib_ngc_deque_arr_deque_uninitialize (ats_ptr_type) ; /* ****** ****** */ ATSinline() ats_ptr_type atslib_ngc_deque_arr_deque_takeout_tsz ( ats_ref_type q0 , ats_size_type i , ats_size_type tsz ) { atslib_ngc_deque_arr_DEQUE *q = (atslib_ngc_deque_arr_DEQUE*)q0 ; char *p_lft = q->qarr_lft ; char *p_rgt = q->qarr_rgt ; char *p_beg = q->qarr_beg ; char *p_elt = p_beg + i * tsz ; if (p_elt >= p_rgt) { p_elt = p_lft + (p_elt - p_rgt) ; } // end of [if] return p_elt ; } // end of [atslib_ngc_deque_arr_deque_takeout_tsz] /* ****** ****** */ ATSinline() ats_void_type atslib_ngc_deque_arr_deque_insert_end_many_tsz ( ats_ref_type q0 , ats_size_type k , ats_ptr_type p0_xs /* buffer */ , ats_size_type tsz ) { atslib_ngc_deque_arr_DEQUE *q = (atslib_ngc_deque_arr_DEQUE*)q0 ; char *p_xs = (char*)p0_xs ; char *p_lft = q->qarr_lft ; char *p_rgt = q->qarr_rgt ; char *p_end = q->qarr_end ; size_t ktsz = k * tsz ; size_t diff = p_rgt - p_end ; q->nitm += k ; if (ktsz <= diff) { memcpy(p_end, p_xs, ktsz) ; q->qarr_end = p_end + ktsz ; } else { memcpy(p_end, p_xs, diff) ; memcpy(p_lft, p_xs+diff, ktsz-diff) ; q->qarr_end = p_lft + (ktsz-diff) ; } // end of [if] return ; } // end of [atslib_ngc_deque_arr_deque_insert_end_many_tsz] /* ****** ****** */ ATSinline() ats_void_type atslib_ngc_deque_arr_deque_remove_beg_many_tsz ( ats_ref_type q0 , ats_size_type k , ats_ptr_type p0_xs /* buffer */ , ats_size_type tsz ) { atslib_ngc_deque_arr_DEQUE *q = (atslib_ngc_deque_arr_DEQUE*)q0 ; char *p_xs = (char*)p0_xs ; char *p_lft = q->qarr_lft ; char *p_rgt = q->qarr_rgt ; char *p_beg = q->qarr_beg ; size_t ktsz = k * tsz ; size_t diff = p_rgt - p_beg ; q->nitm -= k ; if (ktsz <= diff) { memcpy(p_xs, p_beg, ktsz) ; q->qarr_beg = p_beg + ktsz ; } else { memcpy(p_xs, p_beg, diff) ; memcpy(p_xs+diff, p_lft, ktsz-diff) ; q->qarr_beg = p_lft + (ktsz-diff) ; } // end of [if] return ; } // end of [atslib_ngc_deque_arr_deque_remove_beg_many_tsz] /* ****** ****** */ ATSinline() ats_void_type atslib_ngc_deque_arr_deque_copyout_tsz ( ats_ref_type q0 , ats_size_type i , ats_size_type k , ats_ptr_type p0_xs /* buffer */ , ats_size_type tsz ) { atslib_ngc_deque_arr_DEQUE *q = (atslib_ngc_deque_arr_DEQUE*)q0 ; char *p_xs = (char*)p0_xs ; char *p_lft = q->qarr_lft ; char *p_rgt = q->qarr_rgt ; char *p_beg = q->qarr_beg ; size_t itsz = i * tsz ; char *p_i = p_beg + itsz ; if (p_i >= p_rgt) { p_i = p_lft + (p_i - p_rgt) ; } size_t ktsz = k * tsz ; size_t diff = p_rgt - p_i ; if (ktsz <= diff) { memcpy(p_xs, p_i, ktsz) ; } else { memcpy(p_xs, p_i, diff) ; memcpy(p_xs+diff, p_lft, ktsz-diff) ; } // end of [if] return ; } // end of [atslib_ngc_deque_arr_deque_copyout_tsz] /* ****** ****** */ ATSinline() ats_ptr_type atslib_ngc_deque_arr_deque_update_capacity_tsz ( ats_ref_type q0 , ats_size_type m2 , ats_ptr_type p0_xs /* buffer */ , ats_size_type tsz ) { atslib_ngc_deque_arr_DEQUE *q = (atslib_ngc_deque_arr_DEQUE*)q0 ; char *p_xs = (char*)p0_xs ; char *p_lft = q->qarr_lft ; char *p_rgt = q->qarr_rgt ; char *p_beg = q->qarr_beg ; size_t ntsz = q->nitm * tsz ; size_t diff = p_rgt - p_beg ; // q->cap = m2 ; q->qarr_lft = p_xs ; q->qarr_rgt = p_xs + m2 * tsz ; q->qarr_beg = p_xs ; q->qarr_end = p_xs + ntsz ; // if (ntsz <= diff) { memcpy(p_xs, p_beg, ntsz) ; } else { memcpy(p_xs, p_beg, diff) ; memcpy(p_xs+diff, p_lft, ntsz-diff) ; } // end of [if] // return p_lft ; // } // end of [atslib_ngc_deque_arr_deque_update_capacity_tsz] /* ****** ****** */ #endif /* ATS_LIBATS_NGC_DEQUE_ARR_CATS */ /* end of [deque_arr.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/DATS_funset_listord_dats.c0000644000175000017500000002344513431250607024643 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__sasp__set_t0ype_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__staload () { static int ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__dynload () { // ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_funset_listord_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/SATS_linqueue_arr_sats.c0000644000175000017500000000205613431250607024323 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "libats/CATS/linqueue_arr.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload () { static int ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_linqueue_arr_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/ngc_SATS_deque_arr_sats.c0000644000175000017500000000207013431250607024422 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "libats/ngc/CATS/deque_arr.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload () { static int ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [ngc_SATS_deque_arr_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/DATS_linqueue_arr_dats.c0000644000175000017500000002545613431250607024276 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libats/ngc/CATS/deque_arr.cats" #include "libats/CATS/linqueue_arr.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ 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_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_void_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all) (ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__sasp__QUEUE = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 1954(line=64, offs=21) -- 1976(line=64, offs=43) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_cap (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp0) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_cap: tmp0 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap (arg0) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_cap] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 1999(line=65, offs=22) -- 2022(line=65, offs=45) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp1) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size: tmp1 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size (arg0) ; return (tmp1) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 2050(line=67, offs=26) -- 2077(line=67, offs=53) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_is_empty (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp2) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_is_empty: tmp2 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty (arg0) ; return (tmp2) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_is_empty] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 2107(line=68, offs=29) -- 2137(line=68, offs=59) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_isnot_empty (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp3) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_isnot_empty: tmp3 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty (arg0) ; return (tmp3) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_isnot_empty] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 2164(line=70, offs=25) -- 2190(line=70, offs=51) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_is_full (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_is_full: tmp4 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full (arg0) ; return (tmp4) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_is_full] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 2219(line=71, offs=28) -- 2248(line=71, offs=57) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_isnot_full (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp5) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_isnot_full: tmp5 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full (arg0) ; return (tmp5) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_isnot_full] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 2496(line=85, offs=7) -- 2645(line=89, offs=4) */ ATSglobaldec() ats_void_type atslib_linqueue_arr_queue_initialize_tsz (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_atslib_linqueue_arr_queue_initialize_tsz: tmp7 = atspre_array_ptr_alloc_tsz (arg1, arg2) ; tmp8 = ats_selsin_mac(tmp7, atslab_2) ; /* tmp6 = */ atslib_ngc_deque_arr_deque_initialize_tsz (arg0, arg1, tmp8, arg2) ; return /* (tmp6) */ ; } /* end of [atslib_linqueue_arr_queue_initialize_tsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 2845(line=99, offs=7) -- 2971(line=102, offs=2) */ ATSglobaldec() ats_void_type atslib_linqueue_arr_queue_uninitialize (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_atslib_linqueue_arr_queue_uninitialize: tmp10 = atslib_ngc_deque_arr_deque_uninitialize (arg0) ; tmp11 = ats_selsin_mac(tmp10, atslab_2) ; /* tmp9 = */ atspre_array_ptr_free (tmp11) ; return /* (tmp9) */ ; } /* end of [atslib_linqueue_arr_queue_uninitialize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 3042(line=106, offs=7) -- 3171(line=109, offs=2) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_uninitialize_vt (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_uninitialize_vt: tmp13 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt (arg0) ; tmp14 = ats_selsin_mac(tmp13, atslab_2) ; /* tmp12 = */ atspre_array_ptr_free (tmp14) ; return /* (tmp12) */ ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_uninitialize_vt] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 3991(line=153, offs=17) -- 4019(line=153, offs=45) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_clear_all (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp15) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_clear_all: /* tmp15 = */ ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all (arg0) ; return /* (tmp15) */ ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_clear_all] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__staload () { static int ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__dynload () { // ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_linqueue_arr_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/SATS_funset_listord_sats.c0000644000175000017500000000201513431250607024667 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload () { static int ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_funset_listord_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/SATS_hashtable_linprb_sats.c0000644000175000017500000000202713431250607025127 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__staload () { static int ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_hashtable_linprb_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/DATS_funmset_listord_dats.c0000644000175000017500000002430513431250607025014 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_neg_int) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_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_bool_type, atspre_ilte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size_int) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__sasp__mset_t0ype_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__staload () { static int ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__dynload () { // ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_funmset_listord_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/SATS_linqueue_lst_sats.c0000644000175000017500000000205613431250607024341 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "libats/CATS/linqueue_lst.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__staload () { static int ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_linqueue_lst_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/SATS_funset_avltree_sats.c0000644000175000017500000000201513431250607024651 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () { static int ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_funset_avltree_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/SATS_hashtable_chain_sats.c0000644000175000017500000000210013431250607024713 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "libats/CATS/hashtable_chain.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__staload () { static int ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_hashtable_chain_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/DATS_linqueue_lst_dats.c0000644000175000017500000002054613431250607024307 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libats/CATS/linqueue_lst.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool1) (ats_bool_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_void_type, atspre_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_is_empty) (ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg_v_extend_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_decode0_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_encode0_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_decode1_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_encode1_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__sasp__QUEUE = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_lst.dats: 2533(line=86, offs=1) -- 3105(line=103, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg_v_extend_prfck () { /* local vardec */ // ATSlocal_void (tmp0) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg_v_extend) ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg_v_extend_prfck () ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg_v_extend) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg_v_extend_prfck] */ #endif /* _ATS_PROOFCHECK */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_lst.dats: 5845(line=229, offs=11) -- 6121(line=240, offs=4) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_is_empty (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_bool_type, tmp3) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_is_empty: tmp2 = ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr1) ; tmp3 = atspre_pgt (tmp2, atspre_null_ptr) ; if (tmp3) { tmp1 = ats_false_bool ; } else { tmp1 = ats_true_bool ; } /* end of [if] */ return (tmp1) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_is_empty] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_lst.dats: 6178(line=243, offs=19) -- 6202(line=243, offs=43) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_isnot_empty (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_isnot_empty: tmp5 = ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_is_empty (arg0) ; tmp4 = atspre_neg_bool1 (tmp5) ; return (tmp4) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_isnot_empty] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_lst.dats: 6259(line=249, offs=7) -- 6499(line=256, offs=2) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_initialize (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp6) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_initialize: ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr1) = atspre_null_ptr ; ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr2) = atspre_null_ptr ; return /* (tmp6) */ ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_initialize] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__staload () { static int ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__dynload () { // ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg_v_extend_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_decode0_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_encode0_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_decode1_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_encode1_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_linqueue_lst_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/.keeper0000644000175000017500000000000013431250607021037 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/ngc_DATS_deque_arr_dats.c0000644000175000017500000003570413431250607024376 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libats/ngc/CATS/deque_arr.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_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_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_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_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, 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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK 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 */ int ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__sasp__DEQUE = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 4831(line=185, offs=21) -- 4842(line=185, offs=32) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp0) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap: tmp0 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), cap) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 4864(line=186, offs=22) -- 4876(line=186, offs=34) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp1) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size: tmp1 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; return (tmp1) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 4903(line=189, offs=16) -- 4967(line=191, offs=4) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_size_type, tmp3) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty: tmp3 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp2 = atspre_eq_size1_int1 (tmp3, 0) ; return (tmp2) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 5024(line=194, offs=19) -- 5088(line=196, offs=4) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_size_type, tmp5) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty: tmp5 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp4 = atspre_gt_size1_int1 (tmp5, 0) ; return (tmp4) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 5144(line=199, offs=15) -- 5212(line=201, offs=4) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp6) ; ATSlocal (ats_size_type, tmp7) ; ATSlocal (ats_size_type, tmp8) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full: tmp7 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), cap) ; tmp8 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp6 = atspre_eq_size1_size1 (tmp7, tmp8) ; return (tmp6) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 5267(line=204, offs=18) -- 5335(line=206, offs=4) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp9) ; ATSlocal (ats_size_type, tmp10) ; ATSlocal (ats_size_type, tmp11) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full: tmp10 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), cap) ; tmp11 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp9 = atspre_gt_size1_size1 (tmp10, tmp11) ; return (tmp9) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 5706(line=224, offs=11) -- 6239(line=240, offs=2) */ ATSglobaldec() ats_void_type atslib_ngc_deque_arr_deque_initialize_tsz (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_size_type arg3) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_size_type, tmp13) ; ATSlocal (ats_size_type, tmp14) ; ATSlocal (ats_size_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab_atslib_ngc_deque_arr_deque_initialize_tsz: ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), cap) = arg1 ; tmp13 = atspre_size1_of_int1 (0) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) = tmp13 ; tmp14 = atspre_mul2_size1_size1 (arg1, arg3) ; tmp15 = ats_selsin_mac(tmp14, atslab_1) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) = arg2 ; tmp16 = atspre_padd_size (arg2, tmp15) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_rgt) = tmp16 ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_beg) = arg2 ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) = arg2 ; return /* (tmp12) */ ; } /* end of [atslib_ngc_deque_arr_deque_initialize_tsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 6446(line=250, offs=13) -- 6785(line=263, offs=4) */ ATSglobaldec() ats_ptr_type atslib_ngc_deque_arr_deque_uninitialize (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; __ats_lab_atslib_ngc_deque_arr_deque_uninitialize: tmp17 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ; return (tmp17) ; } /* end of [atslib_ngc_deque_arr_deque_uninitialize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 6860(line=267, offs=11) -- 7156(line=279, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt: tmp18 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ; return (tmp18) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 12533(line=483, offs=13) -- 12981(line=501, offs=2) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_size_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all: tmp20 = atspre_size1_of_int1 (0) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) = tmp20 ; tmp21 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_beg) = tmp21 ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) = tmp21 ; return /* (tmp19) */ ; } /* end of [ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__staload () { static int ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__dynload () { // ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__staload () ; #ifdef _ATS_PROOFCHECK 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 */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [ngc_DATS_deque_arr_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/DATS_funmap_avltree_dats.c0000644000175000017500000001002013431250607024570 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_lt_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_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_bool_type, atspre_ilte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imax) (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_size) (ats_size_type, ats_size_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__sasp__map_t0ype_t0ype_type = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__B_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__E_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload () { static int ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__B_0.tag = 0 ; ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__E_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__dynload () { // ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_funmap_avltree_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/CATS/0000755000175000017500000000000013431250607020327 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/CATS/.keeper0000644000175000017500000000000013431250607021571 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/CATS/hashtable_chain.cats0000644000175000017500000000411713431250607024303 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2009 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** A dynamically resizable vector implementation ** ** Contributed by Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: Secptember, 2010 */ /* ****** ****** */ #ifndef ATS_LIBATS_HASHTABLE_CHAIN_CATS #define ATS_LIBATS_HASHTABLE_CHAIN_CATS /* ****** ****** */ ATSinline() ats_void_type atslib_hashtbl_ptr_free__chain (ats_ptr_type pbeg) { ATS_FREE(pbeg) ; return ; } // end of [atslib_hashtbl_ptr_free__chain] /* ****** ****** */ ATSinline() ats_ptr_type atslib_hashtbl_make_null__chain (/*argumentless*/) { return (void*)0; } // end of [atslib_hashtbl_make_null__chain] /* ****** ****** */ ATSinline() ats_void_type atslib_hashtbl_free_null__chain (ats_ptr_type ptbl) { return ; } // end of [atslib_hashtbl_free_null__chain] /* ****** ****** */ #endif /* ATS_LIBATS_HASHTABLE_CHAIN_CATS */ /* end of [hashtable_chain.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/CATS/linqueue_arr.cats0000644000175000017500000000323213431250607023676 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** */ /* ****** ****** */ #ifndef ATS_LIBATS_LINQUEUE_ARR_CATS #define ATS_LIBATS_LINQUEUE_ARR_CATS /* ****** ****** */ #include "libats/ngc/CATS/deque_arr.cats" /* ****** ****** */ typedef atslib_ngc_deque_arr_DEQUE atslib_linqueue_arr_QUEUE ; /* ****** ****** */ #endif /* ATS_LIBATS_LINQUEUE_ARR_CATS */ /* end of [linqueue_arr.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/CATS/linqueue_lst.cats0000644000175000017500000000316513431250607023721 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** */ /* ****** ****** */ #ifndef ATS_LIBATS_LINQUEUE_LST_CATS #define ATS_LIBATS_LINQUEUE_LST_CATS /* ****** ****** */ typedef struct { ats_ptr_type ptr1 ; ats_ptr_type ptr2 ; } atslib_linqueue_lst_QUEUE ; /* ****** ****** */ #endif /* ATS_LIBATS_LINQUEUE_LST_CATS */ /* end of [linqueue_lst.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/DATS_hashtable_chain_dats.c0000644000175000017500000002175213431250607024673 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libats/CATS/hashtable_chain.cats" /* external codes at top */ #define HASHTBL_MINSZ 97 /* type definitions */ 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_0 ; /* external typedefs */ typedef anairiats_rec_0 HASHTBL_struct ; typedef ats_ptr_type chain0_ptr ; /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_double_type, atspre_double_of_size) (ats_size_type) ; ATSextern_fun(ats_double_type, atspre_div_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_bool_type, atspre_lte_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_bool_type, atspre_gte_double_double) (ats_double_type, ats_double_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_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_div_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mod1_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_gte_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_size) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atslib_hashtbl_make_hint__chain) (ats_clo_ref_type, ats_clo_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_hashtbl_free__chain) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atslib_hashtbl_ptr_make__chain) (ats_size_type) ; ATSextern_fun(ats_void_type, atslib_hashtbl_ptr_free__chain) (ats_ptr_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_2libats_2DATS_2hashtable_chain_2edats__hashtbl_v_split_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__hashtbl_v_unsplit_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__CHAINcons_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__CHAINnil_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 6093(line=227, offs=13) -- 6237(line=231, offs=2) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_size (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_size: tmp1 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp0 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp1), atslab_sz) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_size] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 6302(line=235, offs=13) -- 6449(line=239, offs=2) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_total (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_total: tmp3 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp2 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp3), atslab_tot) ; return (tmp2) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_total] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 20411(line=690, offs=3) -- 20469(line=690, offs=61) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_make (ats_clo_ref_type arg0, ats_clo_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_make: tmp4 = atslib_hashtbl_make_hint__chain (arg0, arg1, 0) ; return (tmp4) ; } /* end of [ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_make] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__staload () { static int ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__CHAINcons_0.tag = 0 ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__CHAINnil_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__dynload () { // ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2extern_2esats__minus_addback_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__hashtbl_v_split_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__hashtbl_v_unsplit_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ // // HX: shortcuts? yes. worth it? probably. // ats_ptr_type atslib_hashtbl_ptr_make__chain (ats_size_type sz) { ats_ptr_type pbeg ; /* ** HX: it is mandatory to initialize with zeros! */ pbeg = ATS_CALLOC(sz, sizeof(chain0_ptr)) ; return pbeg ; } // end of [atslib_hashtbl_ptr_make__chain] ats_ptr_type atslib_hashtbl_make_hint__chain ( ats_clo_ref_type hash, ats_clo_ref_type eqfn , ats_size_type hint ) { size_t sz ; HASHTBL_struct *ptbl ; void *pbeg ; ptbl = ATS_MALLOC(sizeof(HASHTBL_struct)) ; sz = ( hint > 0 ? hint : HASHTBL_MINSZ ) ; /* zeroing the allocated memory is mandatory! */ pbeg = ATS_CALLOC(sz, sizeof(chain0_ptr)) ; ptbl->atslab_sz = sz ; ptbl->atslab_tot = 0 ; ptbl->atslab_pbeg = pbeg ; ptbl->atslab_hash = hash ; ptbl->atslab_eqfn = eqfn ; return ptbl ; } // end of [atslib_hashtbl_make_hint__chain] ats_void_type atslib_hashtbl_free__chain (ats_ptr_type ptbl) { ATS_FREE(((HASHTBL_struct*)ptbl)->atslab_pbeg) ; ATS_FREE(ptbl) ; return ; } // end of [atslib_hashtbl_free__chain] ats_bool_type atslib_hashtbl_free_vt__chain (ats_ptr_type ptbl) { if (((HASHTBL_struct*)ptbl)->atslab_tot != 0) return ats_true_bool ; ATS_FREE(((HASHTBL_struct*)ptbl)->atslab_pbeg) ; ATS_FREE(ptbl) ; return ats_false_bool ; } // end of [atslib_hashtbl_free_vt__chain] /* ****** ****** */ /* end of [DATS_hashtable_chain_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/SATS_funmap_avltree_sats.c0000644000175000017500000000201513431250607024633 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload () { static int ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_funmap_avltree_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/SATS_funmset_listord_sats.c0000644000175000017500000000202213431250607025042 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload () { static int ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_funmset_listord_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libats/DATS_funset_avltree_dats.c0000644000175000017500000001057213431250607024622 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_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_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_bool_type, atspre_ilte) (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_int_type, atspre_imax) (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_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, ats_size_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__sasp__set_t0ype_type = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () { static int ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0.tag = 0 ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__dynload () { // ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_funset_avltree_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_location.cats0000644000175000017500000000331613431250607022035 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_LOCATION_CATS #define POSTIATS_SRC_PATS_LOCATION_CATS /* ****** ****** */ typedef struct { ats_lint_type ntot ; ats_int_type nrow ; // line number ats_int_type ncol ; // line offset } pats_position_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_LOCATION_CATS] /* ****** ****** */ /* end of [pats_position.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_filename_sats.c0000644000175000017500000000221013431250607022317 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_filename_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_sats.c0000644000175000017500000006456613431250607021777 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_0 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_intsp_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_floatsp_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_nabs_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_napp_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_arity_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_srtck_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_uni_instantiate_sexparglst_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_typeless_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_fin_some_none_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_fin_none_some_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_fin_some_some_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_vbox_ref_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_lst_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trup_con_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_con_arity_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_free_update_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_item_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_tmpid_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_trup_llamlocal_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_con_npf_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_laminit_funclo_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_trdn_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23explst_trdn_arity_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_trup_applst_eff_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23exp_trup_app23_npf_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23exp_trup_app23_fun_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23exp_trup_app23_eff_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_sym_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_applst_sym_nil_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_applst_sym_cons2_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_exn_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_wrt_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_tup_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_rec_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_exist_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_lam_dyn_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_arg_body_linpat_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_delay_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_foldat_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_freeat_40) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_extfcall_arg_41) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_extmcall_arg_42) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_selab_tyrec_43) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_selab_labnot_44) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_selab_tyarr_45) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_arrind_46) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_arrdim_47) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_selab_linrest_48) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_nonmut_49) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lab_overld_app_50) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_nonlval_51) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_addrless_52) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_nonderef_53) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_pfobj_search_none_54) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_assgn_tszeq_55) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_viewat_addreq_56) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_deref_context_57) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_linsel_58) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_sharing_59) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_proof_60) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_context_61) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_xchng_check_LHS_62) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_xchng_check_RHS_63) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_selab_context_64) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_deref_reflinsel_65) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_assgn_deref_reflinsel_66) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_assgn_deref_refsharing_67) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_trdn_xchng_deref_68) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_viewat_deref_context_69) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_set_viewat_atview_70) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_set_viewat_without_71) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_fun_72) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_funarg_73) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_refval_74) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_linpatcon_75) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_funclo_topized_76) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_exch_type_linold_77) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_exch_type_oldnew_78) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_exch_type_linold_79) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_effenv_check_set_80) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_effenv_check_sexp_81) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_ifcasehd_82) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_guard_trdn_83) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_c2lau_trdn_arity_84) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_c2laulst0_trdn_noclause_85) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_c2laulst2_trdn_redundant_86) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_cp2atcstlst_arity_87) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_loopexn_88) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some_89) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_none_90) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some2_91) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_cmp_92) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_d2exp_93) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_app_mac_arity_94) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_evalctx_extend_95) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval1_d2exp_96) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_reassume_tr_isnotasp_97) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_f2undeclst_tr_termetsrtck_98) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_v2aldeclst_rec_tr_linearity_99) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__D23Ed2exp_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__D23Ed3exp_1) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_intsp_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_floatsp_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_nabs_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_napp_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_arity_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_srtck_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_uni_instantiate_sexparglst_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_typeless_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_fin_some_none_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_fin_none_some_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_fin_some_some_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_vbox_ref_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_lst_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trup_con_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_con_arity_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_free_update_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_item_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_tmpid_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_trup_llamlocal_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_con_npf_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_laminit_funclo_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_trdn_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23explst_trdn_arity_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_trup_applst_eff_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23exp_trup_app23_npf_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23exp_trup_app23_fun_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23exp_trup_app23_eff_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_sym_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_applst_sym_nil_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_applst_sym_cons2_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_exn_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_wrt_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_tup_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_rec_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_exist_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_lam_dyn_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_arg_body_linpat_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_delay_38.tag = 38 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_foldat_39.tag = 39 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_freeat_40.tag = 40 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_extfcall_arg_41.tag = 41 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_extmcall_arg_42.tag = 42 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_selab_tyrec_43.tag = 43 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_selab_labnot_44.tag = 44 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_selab_tyarr_45.tag = 45 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_arrind_46.tag = 46 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_arrdim_47.tag = 47 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_selab_linrest_48.tag = 48 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_nonmut_49.tag = 49 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lab_overld_app_50.tag = 50 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_nonlval_51.tag = 51 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_addrless_52.tag = 52 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_nonderef_53.tag = 53 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_pfobj_search_none_54.tag = 54 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_assgn_tszeq_55.tag = 55 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_viewat_addreq_56.tag = 56 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_deref_context_57.tag = 57 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_linsel_58.tag = 58 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_sharing_59.tag = 59 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_proof_60.tag = 60 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_context_61.tag = 61 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_xchng_check_LHS_62.tag = 62 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_xchng_check_RHS_63.tag = 63 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_selab_context_64.tag = 64 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_deref_reflinsel_65.tag = 65 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_assgn_deref_reflinsel_66.tag = 66 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_assgn_deref_refsharing_67.tag = 67 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_trdn_xchng_deref_68.tag = 68 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_viewat_deref_context_69.tag = 69 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_set_viewat_atview_70.tag = 70 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_set_viewat_without_71.tag = 71 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_fun_72.tag = 72 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_funarg_73.tag = 73 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_refval_74.tag = 74 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_linpatcon_75.tag = 75 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_funclo_topized_76.tag = 76 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_exch_type_linold_77.tag = 77 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_exch_type_oldnew_78.tag = 78 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_exch_type_linold_79.tag = 79 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_effenv_check_set_80.tag = 80 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_effenv_check_sexp_81.tag = 81 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_ifcasehd_82.tag = 82 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_guard_trdn_83.tag = 83 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_c2lau_trdn_arity_84.tag = 84 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_c2laulst0_trdn_noclause_85.tag = 85 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_c2laulst2_trdn_redundant_86.tag = 86 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_cp2atcstlst_arity_87.tag = 87 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_loopexn_88.tag = 88 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some_89.tag = 89 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_none_90.tag = 90 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some2_91.tag = 91 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_cmp_92.tag = 92 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_d2exp_93.tag = 93 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_app_mac_arity_94.tag = 94 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_evalctx_extend_95.tag = 95 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval1_d2exp_96.tag = 96 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_reassume_tr_isnotasp_97.tag = 97 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_f2undeclst_tr_termetsrtck_98.tag = 98 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_v2aldeclst_rec_tr_linearity_99.tag = 99 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__D23Ed2exp_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__D23Ed3exp_1.tag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_label_dats.c0000644000175000017500000004334613431250607021616 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__LABint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__LABsym_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_compare_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, atspre_tostrptr_int) (ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ieq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__sasp__label_type = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__LABint_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__LABsym_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 1673(line=54, offs=16) -- 1692(line=54, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int: tmp0 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)tmp0)->tag = 0 ; ats_selptrset_mac(anairiats_sum_0, tmp0, atslab_0, arg0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 1719(line=56, offs=16) -- 1738(line=56, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_sym: tmp1 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp1)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp1, atslab_0, arg0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_sym] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 1790(line=61, offs=19) -- 1863(line=63, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_string (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_string: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (arg0) ; tmp2 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp2)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp2, atslab_0, tmp3) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_string] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 1939(line=68, offs=14) -- 1995(line=69, offs=50) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_int (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_int: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp4 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp4 = ats_false_bool ; break ; } while (0) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_int] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 2046(line=73, offs=15) -- 2108(line=74, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_int (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_int: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp5 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp5, atslab_0, tmp6) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp5 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_int] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 2180(line=80, offs=14) -- 2236(line=81, offs=50) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_sym: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp7 = ats_false_bool ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp7 = ats_true_bool ; break ; } while (0) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_sym] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 2287(line=85, offs=15) -- 2349(line=86, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_sym: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp8 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp8, atslab_0, tmp9) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp8 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_sym] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 2423(line=93, offs=3) -- 2736(line=109, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_dotize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_dotize: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp13 = atspre_tostringf (ATSstrcst(".%i"), tmp12) ; tmp11 = ats_castfn_mac(ats_ptr_type, tmp13) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp14) ; tmp15 = atspre_tostringf (ATSstrcst(".%s"), tmp16) ; tmp11 = ats_castfn_mac(ats_ptr_type, tmp15) ; break ; } while (0) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp11) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_dotize] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 2811(line=115, offs=3) -- 2854(line=115, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (arg0, arg1) ; tmp17 = atspre_ieq (tmp18, 0) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 2910(line=119, offs=3) -- 2954(line=119, offs=47) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__neq_label_label (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_int_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__neq_label_label: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (arg0, arg1) ; tmp19 = atspre_ineq (tmp20, 0) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__neq_label_label] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 3037(line=126, offs=3) -- 3362(line=148, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_12_1 ; } __ats_lab_10_2: tmp22 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp21 = atspre_compare_int_int (tmp22, tmp23) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_13_1 ; } __ats_lab_11_2: tmp24 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp25 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol (tmp24, tmp25) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_12_2: tmp21 = -1 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: // if (((ats_sum_ptr_type)arg1)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_13_2: tmp21 = 1 ; break ; } while (0) ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 3444(line=154, offs=3) -- 3598(line=163, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__tostring_label (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__tostring_label: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp28 = atspre_tostrptr_int (tmp27) ; tmp26 = ats_castfn_mac(ats_ptr_type, tmp28) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp29) ; break ; } while (0) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__tostring_label] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 3671(line=168, offs=12) -- 3704(line=168, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__print_label (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__print_label: /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (stdout, arg0) ; return /* (tmp30) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__print_label] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 3726(line=170, offs=12) -- 3759(line=170, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label: /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (stderr, arg0) ; return /* (tmp31) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label] */ /* // /tmp/ATS-Postiats/src/pats_label.dats: 3786(line=173, offs=14) -- 3899(line=177, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp32) ; ATSlocal (ats_int_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp32 = */ atspre_fprint_int (arg0, tmp33) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp34) ; break ; } while (0) ; return /* (tmp32) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__LABint_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__LABsym_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_label_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_depgen_dats.c0000644000175000017500000014720413431250607021777 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_d0exp_loc ; ats_ptr_type atslab_d0exp_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } 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_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_d0ecl_loc ; ats_ptr_type atslab_d0ecl_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_guad0ecl_loc ; ats_ptr_type atslab_guad0ecl_node ; } anairiats_rec_13 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eopid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eidext_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eint_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eempty_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecstsp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextval_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efoldat_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efreeat_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etmpid_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elet_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edeclseq_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhere_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eapp_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elist_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifhead_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esifhead_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etup_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Erec_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eseq_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eloopexn_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Cone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ctwo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ccons_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDfname_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cinclude_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaload_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadloc_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Clocal_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cguadecl_38) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_size_size) (ats_size_type, 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_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_ssize1_int1) (ats_ssize_type, ats_int_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_void_type, atspre_fprint_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_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_ssize_type, atspre_string_index_of_char_from_right) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_test_file_exists) (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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_srchknd) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_partname) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_filename_merge) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_filename_dirbase) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_target) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_givename) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_staloadarg) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0expopt) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_labd0explst) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0ecl) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_guad0ecl_node) (ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type loop_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type revapp_13 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type fpr_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3) ; static ats_void_type loop_17 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 2046(line=85, offs=1) -- 2815(line=125, offs=4) */ ATSstaticdec() ats_ptr_type loop_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; __ats_lab_loop_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp4 = patsopt_filename_dirbase (tmp2, arg1) ; tmp5 = atspre_test_file_exists (ats_castfn_mac(ats_ptr_type, tmp4)) ; if (tmp5) { tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize (ats_castfn_mac(ats_ptr_type, tmp4)) ; /* tmp7 = */ atspre_strptr_free (tmp4) ; tmp1 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp1, atslab_0, tmp6) ; } else { /* tmp8 = */ atspre_strptr_free (tmp4) ; arg0 = tmp3 ; arg1 = arg1 ; goto __ats_lab_loop_1 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp1) ; } /* end of [loop_1] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 1888(line=70, offs=17) -- 3597(line=163, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_givename (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_givename: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__givename_srchknd (arg0) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp9 != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_partname (tmp10) ; tmp12 = patsopt_filename_merge (tmp11, arg0) ; tmp13 = atspre_test_file_exists (ats_castfn_mac(ats_ptr_type, tmp12)) ; if (tmp13) { tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__path_normalize (ats_castfn_mac(ats_ptr_type, tmp12)) ; /* tmp15 = */ atspre_strptr_free (tmp12) ; tmp0 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp0, atslab_0, tmp14) ; } else { /* tmp16 = */ atspre_strptr_free (tmp12) ; tmp0 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (tmp9 != 1) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp0 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_get () ; tmp0 = loop_1 (tmp17, arg0) ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_givename] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 3751(line=173, offs=19) -- 3903(line=179, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_staloadarg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_staloadarg: do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_givename (tmp19) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp18 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_staloadarg] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 4458(line=206, offs=3) -- 6066(line=281, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp: tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_d0exp_node) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp21)->tag != 0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp21)->tag != 1) { goto __ats_lab_9_0 ; } __ats_lab_8_1: break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp21)->tag != 2) { goto __ats_lab_10_0 ; } __ats_lab_9_1: break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp21)->tag != 3) { goto __ats_lab_11_0 ; } __ats_lab_10_1: break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp21)->tag != 4) { goto __ats_lab_12_0 ; } __ats_lab_11_1: break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp21)->tag != 5) { goto __ats_lab_13_0 ; } __ats_lab_12_1: break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp21)->tag != 6) { goto __ats_lab_14_0 ; } __ats_lab_13_1: break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp21)->tag != 7) { goto __ats_lab_15_0 ; } __ats_lab_14_1: break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp21)->tag != 8) { goto __ats_lab_16_0 ; } __ats_lab_15_1: break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp21)->tag != 9) { goto __ats_lab_17_0 ; } __ats_lab_16_1: break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp21)->tag != 12) { goto __ats_lab_18_0 ; } __ats_lab_17_1: break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp21)->tag != 54) { goto __ats_lab_19_0 ; } __ats_lab_18_1: break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp21)->tag != 15) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_5, tmp21, atslab_0) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst (tmp22, arg1) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp21)->tag != 16) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_5, tmp21, atslab_0) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst (tmp23, arg1) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp21)->tag != 17) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp21)->tag != 18) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_3, tmp21, atslab_0) ; tmp25 = ats_caselptrlab_mac(anairiats_sum_3, tmp21, atslab_1) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp24, arg1) ; arg0 = tmp25 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp21)->tag != 19) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_5, tmp21, atslab_0) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp27, arg1) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp21)->tag != 20) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_3, tmp21, atslab_0) ; tmp29 = ats_caselptrlab_mac(anairiats_sum_3, tmp21, atslab_1) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp29, arg1) ; arg0 = tmp28 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp21)->tag != 21) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_3, tmp21, atslab_0) ; tmp32 = ats_caselptrlab_mac(anairiats_sum_3, tmp21, atslab_1) ; /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp (tmp31, arg1) ; arg0 = tmp32 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp21)->tag != 22) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_6, tmp21, atslab_1) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst (tmp34, arg1) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp21)->tag != 23) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_7, tmp21, atslab_1) ; tmp36 = ats_caselptrlab_mac(anairiats_sum_7, tmp21, atslab_2) ; tmp37 = ats_caselptrlab_mac(anairiats_sum_7, tmp21, atslab_3) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp (tmp35, arg1) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp (tmp36, arg1) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0expopt (tmp37, arg1) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp21)->tag != 24) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_7, tmp21, atslab_2) ; tmp41 = ats_caselptrlab_mac(anairiats_sum_7, tmp21, atslab_3) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp (tmp40, arg1) ; arg0 = tmp41 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp21)->tag != 31) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_5, tmp21, atslab_0) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst (tmp43, arg1) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp21)->tag != 28) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_8, tmp21, atslab_2) ; arg0 = tmp44 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp21)->tag != 29) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_9, tmp21, atslab_2) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst (tmp45, arg1) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp21)->tag != 30) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_9, tmp21, atslab_2) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_labd0explst (tmp46, arg1) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: break ; } while (0) ; return /* (tmp20) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 6142(line=287, offs=3) -- 6313(line=295, offs=20) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; // ATSlocal_void (tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp (tmp48, arg1) ; arg0 = tmp49 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst ; // tail call break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: break ; } while (0) ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0explst] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 6376(line=301, offs=3) -- 6462(line=305, offs=56) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0expopt (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0expopt: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp (tmp52, arg1) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: break ; } while (0) ; return /* (tmp51) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0expopt] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 6549(line=313, offs=3) -- 6733(line=323, offs=6) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_labd0explst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_labd0explst: 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: break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_1, tmp54, atslab_1) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0exp (tmp56, arg1) ; arg0 = tmp55 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_labd0explst ; // tail call break ; } while (0) ; return /* (tmp53) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_labd0explst] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 6839(line=331, offs=3) -- 7826(line=378, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0ecl (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0ecl: tmp59 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_d0ecl_node) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp59)->tag != 31) { goto __ats_lab_43_0 ; } __ats_lab_40_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_11, tmp59, atslab_2) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_givename (tmp60) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (tmp61 != (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (tmp61 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_2, tmp61, atslab_0) ; ATS_FREE(tmp61) ; tmp63 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp63, atslab_0, tmp62) ; ats_selptrset_mac(anairiats_sum_1, tmp63, atslab_1, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp63 ; break ; } while (0) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp59)->tag != 32) { goto __ats_lab_46_0 ; } __ats_lab_43_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_12, tmp59, atslab_2) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__pathtry_givename (tmp64) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (tmp65 != (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (tmp65 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_2, tmp65, atslab_0) ; ATS_FREE(tmp65) ; tmp67 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp67, atslab_0, tmp66) ; ats_selptrset_mac(anairiats_sum_1, tmp67, atslab_1, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp67 ; break ; } while (0) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp59)->tag != 34) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_12, tmp59, atslab_2) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp68, arg1) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp59)->tag != 37) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_3, tmp59, atslab_0) ; tmp70 = ats_caselptrlab_mac(anairiats_sum_3, tmp59, atslab_1) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp69, arg1) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp70, arg1) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp59)->tag != 38) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_3, tmp59, atslab_1) ; tmp73 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp72), atslab_guad0ecl_node) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_guad0ecl_node (tmp73, arg1) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: __ats_lab_49_1: break ; } while (0) ; return /* (tmp58) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0ecl] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 7902(line=384, offs=3) -- 8043(line=391, offs=6) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; // ATSlocal_void (tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; /* tmp77 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0ecl (tmp75, arg1) ; arg0 = tmp76 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist ; // tail call break ; } while (0) ; return /* (tmp74) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 8154(line=399, offs=3) -- 8591(line=420, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_guad0ecl_node (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; // ATSlocal_void (tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_guad0ecl_node: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp79, arg1) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_2) ; /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp80, arg1) ; /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp81, arg1) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp84 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_3) ; /* tmp85 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (tmp83, arg1) ; arg0 = tmp84 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_guad0ecl_node ; // tail call break ; } while (0) ; return /* (tmp78) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_guad0ecl_node] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_13 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab_revapp_13: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp92 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp93 = ats_ptrget_mac(ats_ptr_type, tmp92) ; ats_ptrget_mac(ats_ptr_type, tmp92) = arg1 ; tmp94 = arg0 ; arg0 = tmp93 ; arg1 = tmp94 ; goto __ats_lab_revapp_13 ; // tail call break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp91 = arg1 ; break ; } while (0) ; return (tmp91) ; } /* end of [revapp_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp90 = revapp_13 (arg0, arg1) ; return (tmp90) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp95 = (ats_sum_ptr_type)0 ; tmp89 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp95) ; return (tmp89) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 8668(line=425, offs=12) -- 8788(line=434, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__depgen_eval (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; // ATSlocal_void (tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__depgen_eval: /* ats_ptr_type tmp87 ; */ tmp87 = (ats_sum_ptr_type)0 ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__depgen_d0eclist (arg0, (&tmp87)) ; tmp86 = list_vt_reverse_01506_ats_ptr_type (tmp87) ; return (tmp86) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__depgen_eval] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 9037(line=451, offs=9) -- 9473(line=470, offs=8) */ ATSstaticdec() ats_void_type fpr_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3) { /* local vardec */ // ATSlocal_void (tmp99) ; ATSlocal (ats_bool_type, tmp100) ; ATSlocal (ats_char_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; // ATSlocal_void (tmp103) ; ATSlocal (ats_size_type, tmp104) ; __ats_lab_fpr_15: tmp100 = atspre_string_isnot_atend (arg1, arg3) ; if (tmp100) { tmp102 = atspre_eq_size_size (arg3, arg2) ; if (tmp102) { tmp101 = '_' ; } else { tmp101 = atspre_string_get_char_at (arg1, arg3) ; } /* end of [if] */ /* tmp103 = */ atspre_fprint_char (arg0, tmp101) ; tmp104 = atspre_add_size1_int1 (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp104 ; goto __ats_lab_fpr_15 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp99) */ ; } /* end of [fpr_15] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 8864(line=440, offs=3) -- 9659(line=477, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_target (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp96) ; ATSlocal (ats_ssize_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; // ATSlocal_void (tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_target: tmp97 = atspre_string_index_of_char_from_right (ats_castfn_mac(ats_ptr_type, arg1), '.') ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: tmp98 = atspre_gte_ssize1_int1 (tmp97, 0) ; if (!tmp98) { goto __ats_lab_58_1 ; } /* tmp105 = */ fpr_15 (arg0, ats_castfn_mac(ats_ptr_type, arg1), ats_castfn_mac(ats_size_type, tmp97), 0) ; /* tmp96 = */ atspre_fprint_string (arg0, ATSstrcst(".o")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: /* tmp96 = */ atspre_fprint_string (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; break ; } while (0) ; return /* (tmp96) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_target] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 9766(line=486, offs=1) -- 10133(line=507, offs=4) */ ATSstaticdec() ats_void_type loop_17 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_bool_type, tmp111) ; // ATSlocal_void (tmp112) ; ATSlocal (ats_int_type, tmp113) ; __ats_lab_loop_17: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; tmp109 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp111 = atspre_gt_int_int (arg1, 0) ; if (tmp111) { /* tmp110 = */ atspre_fprint_char (arg0, ' ') ; } else { /* empty */ } /* end of [if] */ /* tmp112 = */ atspre_fprint_string (arg0, tmp108) ; tmp113 = atspre_add_int_int (arg1, 1) ; arg0 = arg0 ; arg1 = tmp113 ; arg2 = tmp109 ; goto __ats_lab_loop_17 ; // tail call break ; } while (0) ; return /* (tmp107) */ ; } /* end of [loop_17] */ /* // /tmp/ATS-Postiats/src/pats_depgen.dats: 9734(line=483, offs=3) -- 10288(line=517, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_entlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_entlst: /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_target (arg0, arg1) ; /* tmp115 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp116 = */ loop_17 (arg0, 0, arg2) ; /* tmp106 = */ atspre_fprint_newline (arg0) ; return /* (tmp106) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_entlst] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_depgen_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/Makefile0000644000175000017500000002533513431250607017767 0ustar brandonbrandon###### # # The main Makefile # for C-bootstrapping ATS2 # ###### # CC=gcc GCC=gcc CCOMP=$(CC) # # GCFLAG=-D_ATS_NGC # GCFLAG=-D_ATS_GCATS # GCFLAG=-D_ATS_GCBDW # # CFLAGS= # LDFLAGS= # ###### CFLAGS += -I. -I./ccomp/runtime ###### # # This is fixed: # C3NSTRINTKND=gmpknd # # [gmpknd] for CBOOTgmp # [intknd] for CBOOTint # ###### # LIBGMP= # ifeq ($(C3NSTRINTKND),intknd) LIBGMP := endif ifeq ($(C3NSTRINTKND),gmpknd) LIBGMP := -lgmp endif # ###### # LIBGC= gcats_o= # ifeq ($(GCFLAG),-D_ATS_GCBDW) LIBGC := -lgc endif ifeq ($(GCFLAG),-D_ATS_GCATS) gcats_o := gcats.o endif # ###### all:: patsopt ###### SOURCES := \ pats_params.hats \ pats_error.sats \ pats_error.dats \ pats_intinf.sats \ pats_intinf.dats \ pats_counter.sats \ pats_counter.dats \ pats_utils.sats \ pats_utils.dats \ pats_global.sats \ pats_global.dats \ pats_basics.sats \ pats_basics.dats \ pats_basics.hats \ pats_stamp.sats \ pats_stamp.dats \ pats_symbol.sats \ pats_symbol.dats \ pats_filename.sats \ pats_filename.dats \ pats_location.sats \ pats_location.dats \ pats_location.cats \ pats_jsonize.sats \ pats_jsonize.dats \ pats_errmsg.sats \ pats_errmsg.dats \ pats_reader.sats \ pats_reader.dats \ pats_reader.cats \ pats_lexbuf.sats \ pats_lexbuf.dats \ pats_lexbuf.cats \ pats_lexing.sats \ pats_lexing.dats \ pats_lexing.cats \ pats_lexing_print.dats \ pats_lexing_error.dats \ pats_lexing_token.dats \ pats_label.sats \ pats_label.dats \ pats_effect.sats \ pats_effect.dats \ pats_fixity.sats \ pats_fixity_prec.dats \ pats_fixity_fxty.dats \ pats_syntax.sats \ pats_syntax.dats \ pats_syntax_print.dats \ pats_depgen.sats \ pats_depgen.dats \ pats_taggen.sats \ pats_taggen.dats \ pats_tokbuf.sats \ pats_tokbuf.dats \ pats_tokbuf.cats \ pats_parsing.sats \ pats_parsing.dats \ pats_parsing_error.dats \ pats_parsing_util.dats \ pats_parsing_kwds.dats \ pats_parsing_base.dats \ pats_parsing_e0xp.dats \ pats_parsing_sort.dats \ pats_parsing_staexp.dats \ pats_parsing_p0at.dats \ pats_parsing_dynexp.dats \ pats_parsing_decl.dats \ pats_parsing_toplevel.dats \ pats_symmap.sats \ pats_symmap.dats \ pats_symmap_avltree.hats \ pats_symmap_htlinprb.hats \ pats_symenv.sats \ pats_symenv.dats \ pats_staexp1.sats \ pats_staexp1.dats \ pats_staexp1_print.dats \ pats_dynexp1.sats \ pats_dynexp1.dats \ pats_dynexp1_print.dats \ pats_trans1.sats \ pats_trans1_env.sats \ pats_trans1_env.dats \ pats_e1xpval.sats \ pats_e1xpval.dats \ pats_e1xpval_error.dats \ pats_filename_reloc.dats \ pats_trans1_error.dats \ pats_trans1_e0xp.dats \ pats_trans1_effect.dats \ pats_trans1_sort.dats \ pats_trans1_staexp.dats \ pats_trans1_p0at.dats \ pats_trans1_syndef.dats \ pats_trans1_dynexp.dats \ pats_trans1_decl.dats \ pats_staexp2.sats \ pats_staexp2.dats \ pats_stacst2.sats \ pats_stacst2.dats \ pats_staexp2_print.dats \ pats_staexp2_pprint.dats \ pats_staexp2_sort.dats \ pats_staexp2_scst.dats \ pats_staexp2_svar.dats \ pats_staexp2_svvar.dats \ pats_staexp2_hole.dats \ pats_staexp2_ctxt.dats \ pats_staexp2_dcon.dats \ pats_staexp2_skexp.dats \ pats_staexp2_szexp.dats \ pats_staexp2_util.sats \ pats_staexp2_util1.dats \ pats_staexp2_util2.dats \ pats_staexp2_util3.dats \ pats_staexp2_error.sats \ pats_staexp2_error.dats \ pats_staexp2_solve.sats \ pats_staexp2_solve.dats \ pats_patcst2.sats \ pats_patcst2.dats \ pats_dynexp2.sats \ pats_dynexp2.dats \ pats_dyncst2.sats \ pats_dyncst2.dats \ pats_dynexp2_print.dats \ pats_dynexp2_dcst.dats \ pats_dynexp2_dvar.dats \ pats_dynexp2_dmac.dats \ pats_dynexp2_util.dats \ pats_dynexp2_mapgen.dats \ pats_codegen2.sats \ pats_codegen2.dats \ pats_codegen2_util.dats \ pats_codegen2_absrec.dats \ pats_codegen2_datype.dats \ pats_codegen2_fprint.dats \ pats_jsonize_synent2.sats \ pats_jsonize_synent2.dats \ pats_trans2.sats \ pats_namespace.sats \ pats_namespace.dats \ pats_trans2_env.sats \ pats_trans2_env.dats \ pats_trans2_error.dats \ pats_trans2_sort.dats \ pats_trans2_staexp.dats \ pats_trans2_p1at.dats \ pats_trans2_dynexp.dats \ pats_trans2_impdec.dats \ pats_trans2_decl.dats \ pats_dynexp3.sats \ pats_dynexp3.dats \ pats_dynexp3_print.dats \ pats_trans3.sats \ pats_trans3_error.dats \ pats_trans3_util.dats \ pats_trans3_env.sats \ pats_trans3_env.dats \ pats_trans3_env_print.dats \ pats_trans3_env_scst.dats \ pats_trans3_env_svar.dats \ pats_trans3_env_termet.dats \ pats_trans3_env_effect.dats \ pats_trans3_env_dvar.dats \ pats_trans3_env_lamlp.dats \ pats_trans3_env_pfman.dats \ pats_trans3_env_lstate.dats \ pats_dmacro2.sats \ pats_dmacro2.dats \ pats_dmacro2_print.dats \ pats_dmacro2_eval0.dats \ pats_dmacro2_eval1.dats \ pats_trans3_p2at.dats \ pats_trans3_patcon.dats \ pats_trans3_syncst.dats \ pats_trans3_dynexp_up.dats \ pats_trans3_dynexp_dn.dats \ pats_trans3_appsym.dats \ pats_trans3_caseof.dats \ pats_trans3_selab.dats \ pats_trans3_ptrof.dats \ pats_trans3_viewat.dats \ pats_trans3_deref.dats \ pats_trans3_assgn.dats \ pats_trans3_xchng.dats \ pats_trans3_lvalres.dats \ pats_trans3_fldfrat.dats \ pats_trans3_looping.dats \ pats_trans3_decl.dats \ pats_lintprgm.sats \ pats_lintprgm.dats \ pats_lintprgm_print.dats \ pats_lintprgm_myint.cats \ pats_lintprgm_myint.dats \ pats_lintprgm_solve.dats \ pats_constraint3.sats \ pats_constraint3.dats \ pats_constraint3_print.dats \ pats_constraint3_mapgen.dats \ pats_constraint3_jsonize.dats \ pats_constraint3_init.dats \ pats_constraint3_simplify.dats \ pats_constraint3_icnstr.dats \ pats_constraint3_solve.dats \ pats_histaexp.sats \ pats_histaexp.dats \ pats_histaexp_print.dats \ pats_histaexp_funlab.dats \ pats_hidynexp.sats \ pats_hidynexp.dats \ pats_hidynexp_print.dats \ pats_hidynexp_util.dats \ pats_typerase.sats \ pats_typerase_error.dats \ pats_typerase_staexp.dats \ pats_typerase_dynexp.dats \ pats_typerase_decl.dats \ pats_ccomp.sats \ pats_ccomp.dats \ pats_ccomp_print.dats \ pats_ccomp_hitype.dats \ pats_ccomp_tmplab.dats \ pats_ccomp_tmpvar.dats \ pats_ccomp_d2env.dats \ pats_ccomp_funlab.dats \ pats_ccomp_funent.dats \ pats_ccomp_util.dats \ pats_ccomp_ccompenv.dats \ pats_ccomp_instrseq.dats \ pats_ccomp_hipat.dats \ pats_ccomp_dynexp.dats \ pats_ccomp_caseof.dats \ pats_ccomp_claulst.dats \ pats_ccomp_lazyeval.dats \ pats_ccomp_trywith.dats \ pats_ccomp_looping.dats \ pats_ccomp_decl.dats \ pats_ccomp_subst.dats \ pats_ccomp_environ.dats \ pats_ccomp_template.dats \ pats_ccomp_emit.dats \ pats_ccomp_emit2.dats \ pats_ccomp_emit3.dats \ pats_ccomp_main.dats \ pats_comarg.sats \ pats_comarg.dats \ ###### SOURCESsta := $(filter %.sats, $(SOURCES)) SOURCESdyn := $(filter %.dats, $(SOURCES)) ###### OBJECTSsta := $(SOURCESsta) OBJECTSsta := $(patsubst %.sats, %_sats.o, $(OBJECTSsta)) OBJECTSdyn := $(SOURCESdyn) OBJECTSdyn := $(patsubst %.dats, %_dats.o, $(OBJECTSdyn)) ###### OBJECTSstadyn := $(OBJECTSsta) $(OBJECTSdyn) ###### # patsopt: \ pats_main_dats.o \ $(OBJECTSstadyn) \ prelude_libats.o \ libc_libats.o libats_libats.o ; \ $(CCOMP) -O2 -I. $(GCFLAG) -o $@ \ ccomp/runtime/ats_prelude.c $^ $(gcats_o) $(LDFLAGS) $(LIBGMP) $(LIBGC) # ###### # AR=ar MV=mv # libatsopt: \ pats_main_none_dats.o \ $(OBJECTSstadyn) \ prelude_libats.o \ libc_libats.o libats_libats.o ; \ $(AR) -r libatsopt.a $^ $(gcats_o) # ###### # %_sats.o: %_sats.c ; $(CCOMP) -O2 $(CFLAGS) -c -o $@ $< %_dats.o: %_dats.c ; $(CCOMP) -O2 $(CFLAGS) -c -o $@ $< # ###### PRELUDE_OBJECTS := \ prelude_basics_sta_sats.o \ prelude_basics_dyn_sats.o \ prelude_ats_main_prelude_dats.o \ prelude_DATS_basics_dats.o \ prelude_DATS_bool_dats.o \ prelude_DATS_char_dats.o \ prelude_DATS_float_dats.o \ prelude_DATS_integer_dats.o \ prelude_DATS_sizetype_dats.o \ prelude_DATS_pointer_dats.o \ prelude_DATS_reference_dats.o \ prelude_DATS_string_dats.o \ prelude_DATS_lazy_dats.o \ prelude_DATS_lazy_vt_dats.o \ prelude_DATS_printf_dats.o \ prelude_DATS_filebas_dats.o \ prelude_DATS_list_dats.o \ prelude_DATS_list_vt_dats.o \ prelude_DATS_list0_dats.o \ prelude_DATS_option_dats.o \ prelude_DATS_option_vt_dats.o \ prelude_DATS_option0_dats.o \ prelude_DATS_array_dats.o \ prelude_DATS_array0_dats.o \ prelude_DATS_matrix_dats.o \ prelude_DATS_matrix0_dats.o \ prelude_DATS_ptrarr_dats.o \ prelude_DATS_unsafe_dats.o \ ###### # prelude_%.o: \ prelude/%.c ; $(CCOMP) $(CFLAGS) -c -o $@ $< # prelude_libats.o: $(PRELUDE_OBJECTS) ; ld -r -o $@ $^ # ###### LIBC_OBJECTS := \ libc_SATS_errno_sats.o \ libc_SATS_fcntl_sats.o \ libc_DATS_fcntl_dats.o \ libc_SATS_stdarg_sats.o \ libc_SATS_stdio_sats.o \ libc_SATS_stdlib_sats.o \ libc_SATS_string_sats.o \ libc_SATS_time_sats.o \ libc_SATS_unistd_sats.o \ libc_DATS_unistd_dats.o \ libc_sys_SATS_stat_sats.o \ libc_sys_SATS_wait_sats.o \ libc_sys_SATS_types_sats.o \ ifeq ($(C3NSTRINTKND),gmpknd) LIBC_OBJECTS += \ libc_SATS_gmp_sats.o libc_DATS_gmp_dats.o endif ###### # libc_%.o: \ libc/%.c ; $(CCOMP) $(CFLAGS) -c -o $@ $< # libc_libats.o: $(LIBC_OBJECTS) ; ld -r -o $@ $^ # ###### LIBATS_OBJECTS := \ libats_SATS_funmap_avltree_sats.o \ libats_DATS_funmap_avltree_dats.o \ libats_SATS_funset_avltree_sats.o \ libats_DATS_funset_avltree_dats.o \ libats_SATS_funset_listord_sats.o \ libats_DATS_funset_listord_dats.o \ libats_SATS_funmset_listord_sats.o \ libats_DATS_funmset_listord_dats.o \ libats_SATS_hashtable_chain_sats.o \ libats_DATS_hashtable_chain_dats.o \ libats_SATS_hashtable_linprb_sats.o \ libats_DATS_hashtable_linprb_dats.o \ libats_SATS_linqueue_arr_sats.o \ libats_DATS_linqueue_arr_dats.o \ libats_SATS_linqueue_lst_sats.o \ libats_DATS_linqueue_lst_dats.o \ libats_ngc_SATS_deque_arr_sats.o \ libats_ngc_DATS_deque_arr_dats.o \ ###### # libats_%.o: \ libats/%.c ; $(CCOMP) $(CFLAGS) -c -o $@ $< # libats_libats.o: $(LIBATS_OBJECTS) ; ld -r -o $@ $^ # ###### # gcats.o: \ gcats1_hats gcats1_all_cats.o ; ld -r -o $@ gcats1_all_cats.o # gcats1_hats: ; \ $(GCC) -E -P -o gcats1.hats -x c ./ccomp/runtime/GCATS/gcats1_master.hats # gcats1_all_cats.o: ; \ $(CCOMP) -O2 -I. -I./ccomp/runtime -c -o $@ -x c ./ccomp/runtime/gcats1_all.cats # ###### CPF=cp -f RMF=rm -f ###### # clean:: ; $(RMF) *~ clean:: ; $(RMF) *_sats.o clean:: ; $(RMF) *_dats.o # clean:: ; $(RMF) gcats1.hats clean:: ; $(RMF) gcats1_all_cats.o # clean:: ; $(RMF) gcats.o clean:: ; $(RMF) patsopt clean:: ; $(RMF) prelude_libats.o clean:: ; $(RMF) libc_libats.o clean:: ; $(RMF) libats_libats.o # ###### cleanall:: clean ###### ###### end of [Makefile_CBOOTgmp] ###### ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_hidynexp_print_dats.c0000644000175000017500000040406213431250607023577 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_hipat_loc ; ats_ptr_type atslab_hipat_type ; ats_ptr_type atslab_hipat_node ; ats_ptr_type atslab_hipat_asvar ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_hilab_loc ; ats_ptr_type atslab_hilab_node ; } anairiats_rec_9 ; typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_16 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_17 ; typedef struct { ats_ptr_type atslab_higmat_loc ; ats_ptr_type atslab_higmat_exp ; ats_ptr_type atslab_higmat_pat ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_hiclau_loc ; ats_ptr_type atslab_hiclau_pat ; ats_ptr_type atslab_hiclau_gua ; ats_int_type atslab_hiclau_seq ; ats_int_type atslab_hiclau_neg ; ats_ptr_type atslab_hiclau_body ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_21 ; typedef struct { ats_ptr_type atslab_hiimpdec_loc ; ats_int_type atslab_hiimpdec_knd ; ats_ptr_type atslab_hiimpdec_cst ; ats_ptr_type atslab_hiimpdec_imparg ; ats_ptr_type atslab_hiimpdec_tmparg ; ats_ptr_type atslab_hiimpdec_def ; ats_ptr_type atslab_hiimpdec_funlab ; ats_ptr_type atslab_hiimpdec_instrlst ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_hifundec_loc ; ats_ptr_type atslab_hifundec_var ; ats_ptr_type atslab_hifundec_imparg ; ats_ptr_type atslab_hifundec_def ; ats_ptr_type atslab_hifundec_hidecl ; ats_ptr_type atslab_hifundec_funlab ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_hivaldec_loc ; ats_ptr_type atslab_hivaldec_pat ; ats_ptr_type atslab_hivaldec_def ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_hivardec_loc ; ats_int_type atslab_hivardec_knd ; ats_ptr_type atslab_hivardec_dvar_ptr ; ats_ptr_type atslab_hivardec_dvar_view ; ats_ptr_type atslab_hivardec_type ; ats_ptr_type atslab_hivardec_init ; } anairiats_rec_25 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIPAT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPbool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPchar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPstring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPi0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPf0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPempty_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_any_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPann_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPerr_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HILind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIDEXP_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEbool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEchar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEstring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEi0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEf0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcstsp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtyrep_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEempty_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEignore_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcastfn_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextval_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextfcall_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEextmcall_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcon_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpcst_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpvar_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfoldat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfreeat_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEapp_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEif_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEsif_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcase_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElst_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErec_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEseq_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselab_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofvar_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEptrofsel_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDErefarg_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselvar_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEselptr_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_var_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEassgn_ptr_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_var_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDExchng_ptr_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrpsz_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEarrinit_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEraise_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvararg_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtempenver_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElam_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfix_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEdelay_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEldelay_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElazyeval_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloop_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloopexn_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtrywith_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEerrexp_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDsaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDreassume_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextcode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDexndecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdatdecs_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdcstdecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDfundecs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_rec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvardecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDinclude_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaload_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaloadloc_17) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_caskind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_dcstkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipatlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhipatlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhidexplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidecl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hideclist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hifundec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivaldec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivardec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hiimpdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhipat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_higmat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_hiclau) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhidexp) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 1901(line=72, offs=3) -- 4735(line=204, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_int_type, tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_bool_type, tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_char_type, tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; ATSlocal (ats_int_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_hipat_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst("HIPany(")) ; /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp2) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("HIPvar(")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp5) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp1)->tag != 11) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; tmp9 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_2) ; tmp10 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_3) ; /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst("HIPcon(")) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp8) ; /* tmp13 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp9) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhipatlst (arg0, tmp10) ; /* tmp17 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp1)->tag != 12) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("HIPcon_any(")) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp18) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp1)->tag != 2) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_0) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst("HIPint(")) ; /* tmp23 = */ atspre_fprint_int (arg0, tmp21) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp1)->tag != 3) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp25 = */ atspre_fprint_string (arg0, ATSstrcst("HIPintrep(")) ; /* tmp26 = */ atspre_fprint_string (arg0, tmp24) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp1)->tag != 4) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_0) ; /* tmp28 = */ atspre_fprint_string (arg0, ATSstrcst("HIPbool(")) ; /* tmp29 = */ atspre_fprint_bool (arg0, tmp27) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp1)->tag != 5) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_0) ; /* tmp31 = */ atspre_fprint_string (arg0, ATSstrcst("HIPchar(")) ; /* tmp32 = */ atspre_fprint_char (arg0, tmp30) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp1)->tag != 6) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst("HIPstring(")) ; /* tmp35 = */ atspre_fprint_string (arg0, tmp33) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp1)->tag != 7) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("HIPfloat(")) ; /* tmp38 = */ atspre_fprint_string (arg0, tmp36) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp1)->tag != 8) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp40 = */ atspre_fprint_string (arg0, ATSstrcst("HIPi0nt(")) ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp39) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp1)->tag != 9) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp43 = */ atspre_fprint_string (arg0, ATSstrcst("HIPf0loat(")) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp42) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp1)->tag != 10) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("HIPempty()")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp1)->tag != 13) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_0) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_2) ; /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("HIPrec(")) ; /* tmp48 = */ atspre_fprintf_exn (arg0, ATSstrcst("knd= %i"), tmp45) ; /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhipatlst (arg0, tmp46) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp1)->tag != 14) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("HIPrefas(")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp51) ; /* tmp55 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat (arg0, tmp52) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp1)->tag != 15) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp58 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp59 = */ atspre_fprint_string (arg0, ATSstrcst("HIPann(")) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat (arg0, tmp57) ; /* tmp61 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp58) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (((ats_sum_ptr_type)tmp1)->tag != 16) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("HIPerr()")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 4784(line=207, offs=13) -- 4818(line=207, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat: /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat (stdout, arg0) ; return /* (tmp63) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 4841(line=209, offs=13) -- 4875(line=209, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hipat (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hipat: /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat (stderr, arg0) ; return /* (tmp64) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hipat] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_bool_type, tmp71) ; // ATSlocal_void (tmp72) ; ATSlocal (ats_int_type, tmp73) ; __ats_lab_aux_5: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp71 = atspre_gt_int_int (arg1, 0) ; if (tmp71) { /* tmp70 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp72 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp68) ; tmp73 = atspre_add_int_int (arg1, 1) ; arg0 = tmp69 ; arg1 = tmp73 ; goto __ats_lab_aux_5 ; // tail call break ; } while (0) ; return /* (tmp67) */ ; } /* end of [aux_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_5_closure_type ; ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_5 (((aux_5_closure_type*)cloptr)->closure_env_0, ((aux_5_closure_type*)cloptr)->closure_env_1, ((aux_5_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_5_closure_init (aux_5_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ; aux_5_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp66) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp66 = */ aux_5 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp66) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 4905(line=213, offs=3) -- 4960(line=213, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipatlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp65) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipatlst: /* tmp65 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat) ; return /* (tmp65) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipatlst] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 5070(line=220, offs=3) -- 5224(line=226, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhipat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhipat: tmp75 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; /* tmp77 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp75) ; /* tmp78 = */ atspre_fprint_string (arg0, ATSstrcst("= ")) ; /* tmp74 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat (arg0, tmp76) ; return /* (tmp74) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhipat] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 5285(line=230, offs=3) -- 5345(line=230, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhipatlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhipatlst: /* tmp79 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhipat) ; return /* (tmp79) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhipatlst] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 5424(line=237, offs=3) -- 5815(line=253, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilab: tmp81 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg1), atslab_hilab_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp81)->tag != 0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_1, tmp81, atslab_0) ; /* tmp83 = */ atspre_fprint_string (arg0, ATSstrcst("HILlab(")) ; /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp82) ; /* tmp80 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (((ats_sum_ptr_type)tmp81)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_1, tmp81, atslab_0) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst("HILind(")) ; /* tmp87 = */ fprintlst_01696_ats_ptr_type (arg0, tmp85, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp) ; /* tmp80 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp80) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilab] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 5870(line=257, offs=3) -- 5925(line=257, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst: /* tmp88 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilab) ; return /* (tmp88) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 6120(line=271, offs=3) -- 17573(line=766, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_int_type, tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; ATSlocal (ats_bool_type, tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; ATSlocal (ats_char_type, tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; // ATSlocal_void (tmp172) ; // ATSlocal_void (tmp173) ; // ATSlocal_void (tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; // ATSlocal_void (tmp206) ; // ATSlocal_void (tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; // ATSlocal_void (tmp224) ; // ATSlocal_void (tmp225) ; // ATSlocal_void (tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp229) ; ATSlocal (ats_int_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; // ATSlocal_void (tmp241) ; // ATSlocal_void (tmp242) ; // ATSlocal_void (tmp243) ; // ATSlocal_void (tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; // ATSlocal_void (tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; // ATSlocal_void (tmp265) ; // ATSlocal_void (tmp266) ; // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; ATSlocal (ats_int_type, tmp271) ; ATSlocal (ats_int_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; // ATSlocal_void (tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; // ATSlocal_void (tmp285) ; // ATSlocal_void (tmp286) ; // ATSlocal_void (tmp287) ; // ATSlocal_void (tmp288) ; // ATSlocal_void (tmp289) ; // ATSlocal_void (tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; // ATSlocal_void (tmp294) ; // ATSlocal_void (tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; // ATSlocal_void (tmp298) ; // ATSlocal_void (tmp299) ; // ATSlocal_void (tmp300) ; // ATSlocal_void (tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; // ATSlocal_void (tmp306) ; // ATSlocal_void (tmp307) ; // ATSlocal_void (tmp308) ; // ATSlocal_void (tmp309) ; // ATSlocal_void (tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; // ATSlocal_void (tmp313) ; // ATSlocal_void (tmp314) ; // ATSlocal_void (tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; // ATSlocal_void (tmp320) ; // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp325) ; // ATSlocal_void (tmp326) ; // ATSlocal_void (tmp327) ; // ATSlocal_void (tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; // ATSlocal_void (tmp336) ; // ATSlocal_void (tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; // ATSlocal_void (tmp340) ; // ATSlocal_void (tmp341) ; // ATSlocal_void (tmp342) ; // ATSlocal_void (tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; // ATSlocal_void (tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; // ATSlocal_void (tmp353) ; // ATSlocal_void (tmp354) ; // ATSlocal_void (tmp355) ; // ATSlocal_void (tmp356) ; // ATSlocal_void (tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_int_type, tmp360) ; // ATSlocal_void (tmp361) ; // ATSlocal_void (tmp362) ; // ATSlocal_void (tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; // ATSlocal_void (tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; // ATSlocal_void (tmp370) ; // ATSlocal_void (tmp371) ; // ATSlocal_void (tmp372) ; // ATSlocal_void (tmp373) ; // ATSlocal_void (tmp374) ; // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; // ATSlocal_void (tmp377) ; // ATSlocal_void (tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; // ATSlocal_void (tmp380) ; // ATSlocal_void (tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; // ATSlocal_void (tmp383) ; // ATSlocal_void (tmp384) ; ATSlocal (ats_int_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; // ATSlocal_void (tmp388) ; // ATSlocal_void (tmp389) ; // ATSlocal_void (tmp390) ; // ATSlocal_void (tmp391) ; // ATSlocal_void (tmp392) ; // ATSlocal_void (tmp393) ; ATSlocal (ats_int_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; // ATSlocal_void (tmp397) ; // ATSlocal_void (tmp398) ; // ATSlocal_void (tmp399) ; // ATSlocal_void (tmp400) ; // ATSlocal_void (tmp401) ; // ATSlocal_void (tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; // ATSlocal_void (tmp404) ; // ATSlocal_void (tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; // ATSlocal_void (tmp408) ; // ATSlocal_void (tmp409) ; // ATSlocal_void (tmp410) ; // ATSlocal_void (tmp411) ; ATSlocal (ats_int_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; // ATSlocal_void (tmp414) ; // ATSlocal_void (tmp415) ; // ATSlocal_void (tmp416) ; // ATSlocal_void (tmp417) ; ATSlocal (ats_int_type, tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; // ATSlocal_void (tmp422) ; // ATSlocal_void (tmp423) ; // ATSlocal_void (tmp424) ; // ATSlocal_void (tmp425) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp: tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_hidexp_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp90)->tag != 0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp92 = */ atspre_fprint_string (arg0, ATSstrcst("HDEcst(")) ; /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp91) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp90)->tag != 1) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp95 = */ atspre_fprint_string (arg0, ATSstrcst("HDEvar(")) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp94) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp90)->tag != 2) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_4, tmp90, atslab_0) ; /* tmp98 = */ atspre_fprint_string (arg0, ATSstrcst("HDEint(")) ; /* tmp99 = */ atspre_fprint_int (arg0, tmp97) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp90)->tag != 3) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp101 = */ atspre_fprint_string (arg0, ATSstrcst("HDEintrep(")) ; /* tmp102 = */ atspre_fprint_string (arg0, tmp100) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp90)->tag != 4) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_5, tmp90, atslab_0) ; /* tmp104 = */ atspre_fprint_string (arg0, ATSstrcst("HDEbool(")) ; /* tmp105 = */ atspre_fprint_bool (arg0, tmp103) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp90)->tag != 5) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_6, tmp90, atslab_0) ; /* tmp107 = */ atspre_fprint_string (arg0, ATSstrcst("HDEchar(")) ; /* tmp108 = */ atspre_fprint_char (arg0, tmp106) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp90)->tag != 6) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp110 = */ atspre_fprint_string (arg0, ATSstrcst("HDEfloat(")) ; /* tmp111 = */ atspre_fprint_string (arg0, tmp109) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp90)->tag != 7) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp113 = */ atspre_fprint_string (arg0, ATSstrcst("HDEstring(")) ; /* tmp114 = */ atspre_fprint_string (arg0, tmp112) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp90)->tag != 8) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp116 = */ atspre_fprint_string (arg0, ATSstrcst("HDEi0nt(")) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp115) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp90)->tag != 9) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp119 = */ atspre_fprint_string (arg0, ATSstrcst("HDEf0loat(")) ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp118) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp90)->tag != 10) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp122 = */ atspre_fprint_string (arg0, ATSstrcst("HDEcstsp(")) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp (arg0, tmp121) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp90)->tag != 11) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp125 = */ atspre_fprint_string (arg0, ATSstrcst("HDEtyrep(")) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp124) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp90)->tag != 12) { goto __ats_lab_34_0 ; } __ats_lab_33_1: /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("HDEtop()")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp90)->tag != 13) { goto __ats_lab_35_0 ; } __ats_lab_34_1: /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("HDEempty()")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp90)->tag != 14) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp128 = */ atspre_fprint_string (arg0, ATSstrcst("HDEignore(")) ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp127) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp90)->tag != 15) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_0) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_1) ; /* tmp132 = */ atspre_fprint_string (arg0, ATSstrcst("HDEcastfn(")) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp130) ; /* tmp134 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp131) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp90)->tag != 16) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp137 = */ atspre_fprint_string (arg0, ATSstrcst("HDEextval(")) ; /* tmp138 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp139 = */ atspre_fprint_string (arg0, tmp136) ; /* tmp140 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp90)->tag != 17) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_1) ; /* tmp143 = */ atspre_fprint_string (arg0, ATSstrcst("HDEextfcall(")) ; /* tmp144 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp145 = */ atspre_fprint_string (arg0, tmp141) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp147 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (arg0, tmp142) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp90)->tag != 18) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp150 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp151 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp152 = */ atspre_fprint_string (arg0, ATSstrcst("HDEextmcall(")) ; /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp149) ; /* tmp154 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp155 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp156 = */ atspre_fprint_string (arg0, tmp150) ; /* tmp157 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp159 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (arg0, tmp151) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp90)->tag != 19) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp161 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp162 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp163 = */ atspre_fprint_string (arg0, ATSstrcst("HDEcon(")) ; /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp160) ; /* tmp165 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp166 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp161) ; /* tmp167 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhidexplst (arg0, tmp162) ; /* tmp169 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp90)->tag != 20) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_1) ; /* tmp172 = */ atspre_fprint_string (arg0, ATSstrcst("HDEtmpcst(")) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp170) ; /* tmp174 = */ atspre_fprint_string (arg0, ATSstrcst("<")) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst (arg0, tmp171) ; /* tmp176 = */ atspre_fprint_string (arg0, ATSstrcst(">")) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp90)->tag != 21) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_0) ; tmp178 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_1) ; /* tmp179 = */ atspre_fprint_string (arg0, ATSstrcst("HDEtmpvar(")) ; /* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp177) ; /* tmp181 = */ atspre_fprint_string (arg0, ATSstrcst("<")) ; /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst (arg0, tmp178) ; /* tmp183 = */ atspre_fprint_string (arg0, ATSstrcst(">")) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp90)->tag != 22) { goto __ats_lab_44_0 ; } __ats_lab_43_1: /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("HDEfoldat()")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp90)->tag != 23) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp184 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp185 = */ atspre_fprint_string (arg0, ATSstrcst("HDEfreeat(")) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp184) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp90)->tag != 24) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_0) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_1) ; /* tmp189 = */ atspre_fprint_string (arg0, ATSstrcst("HDElet(\n")) ; /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hideclist (arg0, tmp187) ; /* tmp191 = */ atspre_fprint_string (arg0, ATSstrcst("**in**\n")) ; /* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp188) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp90)->tag != 25) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp193 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp196 = */ atspre_fprint_string (arg0, ATSstrcst("HDEapp(")) ; /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp193) ; /* tmp198 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp199 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp194) ; /* tmp200 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (arg0, tmp195) ; /* tmp202 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp90)->tag != 26) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp203 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp205 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp206 = */ atspre_fprint_string (arg0, ATSstrcst("HDEif(")) ; /* tmp207 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp203) ; /* tmp208 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp204) ; /* tmp210 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp205) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp90)->tag != 27) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp213 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp215 = */ atspre_fprint_string (arg0, ATSstrcst("HDEsif(")) ; /* tmp216 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp212) ; /* tmp217 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp218 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp213) ; /* tmp219 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp214) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp90)->tag != 28) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp221 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp222 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp223 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp224 = */ atspre_fprint_string (arg0, ATSstrcst("HDEcase(\n")) ; /* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_caskind (arg0, tmp221) ; /* tmp226 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (arg0, tmp222) ; /* tmp228 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp229 = */ fprintlst_01696_ats_ptr_type (arg0, tmp223, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_hiclau) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp90)->tag != 29) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_0) ; tmp231 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_1) ; tmp232 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_2) ; /* tmp233 = */ atspre_fprint_string (arg0, ATSstrcst("HDElst(")) ; /* tmp234 = */ atspre_fprintf_exn (arg0, ATSstrcst("lin= %i"), tmp230) ; /* tmp235 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp231) ; /* tmp237 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (arg0, tmp232) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp90)->tag != 30) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp239 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_0) ; tmp240 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_1) ; /* tmp241 = */ atspre_fprint_string (arg0, ATSstrcst("HDErec(")) ; /* tmp242 = */ atspre_fprintf_exn (arg0, ATSstrcst("knd= %i"), tmp239) ; /* tmp243 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp244 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhidexplst (arg0, tmp240) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp90)->tag != 31) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp245 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp246 = */ atspre_fprint_string (arg0, ATSstrcst("HDEseq(")) ; /* tmp247 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (arg0, tmp245) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp90)->tag != 32) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp248 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp249 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp250 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp251 = */ atspre_fprint_string (arg0, ATSstrcst("HDEselab(")) ; /* tmp252 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp248) ; /* tmp253 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp254 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp249) ; /* tmp255 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp256 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst (arg0, tmp250) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp90)->tag != 33) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp257 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp258 = */ atspre_fprint_string (arg0, ATSstrcst("HDEptrofvar(")) ; /* tmp259 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp257) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp90)->tag != 34) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp260 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp262 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp263 = */ atspre_fprint_string (arg0, ATSstrcst("HDEptrofsel(")) ; /* tmp264 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp260) ; /* tmp265 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp261) ; /* tmp267 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp268 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst (arg0, tmp262) ; /* tmp270 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp90)->tag != 35) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp271 = ats_caselptrlab_mac(anairiats_sum_13, tmp90, atslab_0) ; tmp272 = ats_caselptrlab_mac(anairiats_sum_13, tmp90, atslab_1) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_13, tmp90, atslab_2) ; /* tmp274 = */ atspre_fprint_string (arg0, ATSstrcst("HDErefarg(")) ; /* tmp275 = */ atspre_fprint_int (arg0, tmp271) ; /* tmp276 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp277 = */ atspre_fprint_int (arg0, tmp272) ; /* tmp278 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp273) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp90)->tag != 36) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp280 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp281 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp282 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp283 = */ atspre_fprint_string (arg0, ATSstrcst("HDEselvar(")) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp280) ; /* tmp285 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp286 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp281) ; /* tmp287 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp288 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp289 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst (arg0, tmp282) ; /* tmp290 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp90)->tag != 37) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp291 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp292 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp293 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_2) ; /* tmp294 = */ atspre_fprint_string (arg0, ATSstrcst("HDEselptr(")) ; /* tmp295 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp291) ; /* tmp296 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp297 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp292) ; /* tmp298 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp299 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst (arg0, tmp293) ; /* tmp301 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp90)->tag != 38) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp302 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_0) ; tmp303 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_1) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_2) ; tmp305 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_3) ; /* tmp306 = */ atspre_fprint_string (arg0, ATSstrcst("HDEassgn_var(")) ; /* tmp307 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp302) ; /* tmp308 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp309 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp303) ; /* tmp310 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp311 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst (arg0, tmp304) ; /* tmp313 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp314 = */ atspre_fprint_string (arg0, ATSstrcst(" := ")) ; /* tmp315 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp305) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp90)->tag != 39) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp316 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_0) ; tmp317 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_1) ; tmp318 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_2) ; tmp319 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_3) ; /* tmp320 = */ atspre_fprint_string (arg0, ATSstrcst("HDEassgn_ptr(")) ; /* tmp321 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp316) ; /* tmp322 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp323 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp317) ; /* tmp324 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp325 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst (arg0, tmp318) ; /* tmp327 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp328 = */ atspre_fprint_string (arg0, ATSstrcst(" := ")) ; /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp319) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp90)->tag != 40) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp330 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_0) ; tmp331 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_1) ; tmp332 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_2) ; tmp333 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_3) ; /* tmp334 = */ atspre_fprint_string (arg0, ATSstrcst("HDExchng_var(")) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp330) ; /* tmp336 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp337 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp331) ; /* tmp338 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp339 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp340 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst (arg0, tmp332) ; /* tmp341 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp342 = */ atspre_fprint_string (arg0, ATSstrcst(" := ")) ; /* tmp343 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp333) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp90)->tag != 41) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp344 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_0) ; tmp345 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_1) ; tmp346 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_2) ; tmp347 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_3) ; /* tmp348 = */ atspre_fprint_string (arg0, ATSstrcst("HDExchng_ptr(")) ; /* tmp349 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp344) ; /* tmp350 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp351 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp345) ; /* tmp352 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp353 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp354 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hilablst (arg0, tmp346) ; /* tmp355 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp356 = */ atspre_fprint_string (arg0, ATSstrcst(" := ")) ; /* tmp357 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp347) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp90)->tag != 42) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp358 = ats_caselptrlab_mac(anairiats_sum_14, tmp90, atslab_0) ; tmp359 = ats_caselptrlab_mac(anairiats_sum_14, tmp90, atslab_1) ; tmp360 = ats_caselptrlab_mac(anairiats_sum_14, tmp90, atslab_2) ; /* tmp361 = */ atspre_fprint_string (arg0, ATSstrcst("HDEarrpsz(")) ; /* tmp362 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp358) ; /* tmp363 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp364 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (arg0, tmp359) ; /* tmp365 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp366 = */ atspre_fprint_int (arg0, tmp360) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp90)->tag != 43) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp367 = ats_caselptrlab_mac(anairiats_sum_15, tmp90, atslab_0) ; tmp368 = ats_caselptrlab_mac(anairiats_sum_15, tmp90, atslab_1) ; tmp369 = ats_caselptrlab_mac(anairiats_sum_15, tmp90, atslab_2) ; /* tmp370 = */ atspre_fprint_string (arg0, ATSstrcst("HDEarrinit(")) ; /* tmp371 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp367) ; /* tmp372 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp368) ; /* tmp374 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp375 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (arg0, tmp369) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp90)->tag != 44) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp376 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp377 = */ atspre_fprint_string (arg0, ATSstrcst("HDEraise(")) ; /* tmp378 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp376) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp90)->tag != 45) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp379 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp380 = */ atspre_fprint_string (arg0, ATSstrcst("HDEvararg(")) ; /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (arg0, tmp379) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp90)->tag != 46) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp383 = */ atspre_fprint_string (arg0, ATSstrcst("HDEtempenver(")) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst (arg0, tmp382) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp90)->tag != 47) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp385 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_0) ; tmp386 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_1) ; tmp387 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_2) ; /* tmp388 = */ atspre_fprint_string (arg0, ATSstrcst("HDElam(")) ; /* tmp389 = */ atspre_fprint_int (arg0, tmp385) ; /* tmp390 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipatlst (arg0, tmp386) ; /* tmp392 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp393 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp387) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp90)->tag != 48) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp394 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_0) ; tmp395 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_1) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_12, tmp90, atslab_2) ; /* tmp397 = */ atspre_fprint_string (arg0, ATSstrcst("HDEfix(")) ; /* tmp398 = */ atspre_fprint_int (arg0, tmp394) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp400 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp395) ; /* tmp401 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp402 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp396) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp90)->tag != 49) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp403 = ats_caselptrlab_mac(anairiats_sum_1, tmp90, atslab_0) ; /* tmp404 = */ atspre_fprint_string (arg0, ATSstrcst("HDEdelay(")) ; /* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp403) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp90)->tag != 50) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp406 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_0) ; tmp407 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_1) ; /* tmp408 = */ atspre_fprint_string (arg0, ATSstrcst("HDEldelay(")) ; /* tmp409 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp406) ; /* tmp410 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp407) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp90)->tag != 51) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp412 = ats_caselptrlab_mac(anairiats_sum_16, tmp90, atslab_0) ; tmp413 = ats_caselptrlab_mac(anairiats_sum_16, tmp90, atslab_1) ; /* tmp414 = */ atspre_fprint_string (arg0, ATSstrcst("HDElazyeval(")) ; /* tmp415 = */ atspre_fprint_int (arg0, tmp412) ; /* tmp416 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp417 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp413) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp90)->tag != 52) { goto __ats_lab_74_0 ; } __ats_lab_73_1: /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("HDEloop(...)")) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp90)->tag != 53) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp418 = ats_caselptrlab_mac(anairiats_sum_4, tmp90, atslab_0) ; /* tmp419 = */ atspre_fprint_string (arg0, ATSstrcst("HDEloopexn(")) ; /* tmp420 = */ atspre_fprint_int (arg0, tmp418) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp90)->tag != 54) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp421 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_0) ; /* tmp422 = */ atspre_fprint_string (arg0, ATSstrcst("HDEtrywith(")) ; /* tmp423 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp421) ; /* tmp424 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp425 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (((ats_sum_ptr_type)tmp90)->tag != 55) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("HDEerrexp()")) ; break ; } while (0) ; return /* (tmp89) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 17624(line=769, offs=14) -- 17659(line=769, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidexp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp426) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidexp: /* tmp426 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (stdout, arg0) ; return /* (tmp426) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidexp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 17683(line=771, offs=14) -- 17718(line=771, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hidexp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp427) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hidexp: /* tmp427 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (stderr, arg0) ; return /* (tmp427) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hidexp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 17749(line=775, offs=3) -- 17805(line=775, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp428) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst: /* tmp428 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp) ; return /* (tmp428) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexplst] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12204(line=668, offs=1) -- 12471(line=681, offs=8) */ ATSstaticdec() ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; // ATSlocal_void (tmp432) ; // ATSlocal_void (tmp433) ; __ats_lab_fprintopt_01697_ats_ptr_type: do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: /* tmp430 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp431 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_0) ; /* tmp432 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp433 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg2) (arg0, tmp431) ; /* tmp430 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp430) */ ; } /* end of [fprintopt_01697_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 17865(line=780, offs=3) -- 17917(line=780, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexpopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp429) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexpopt: /* tmp429 = */ fprintopt_01697_ats_ptr_type (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp) ; return /* (tmp429) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexpopt] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 18052(line=789, offs=3) -- 18208(line=795, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhidexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; // ATSlocal_void (tmp437) ; // ATSlocal_void (tmp438) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhidexp: tmp435 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp436 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; /* tmp437 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp435) ; /* tmp438 = */ atspre_fprint_string (arg0, ATSstrcst("= ")) ; /* tmp434 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp436) ; return /* (tmp434) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhidexp] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 18271(line=799, offs=3) -- 18332(line=799, offs=64) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhidexplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp439) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhidexplst: /* tmp439 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_labhidexp) ; return /* (tmp439) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_labhidexplst] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 18411(line=805, offs=15) -- 18644(line=811, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_higmat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp440) ; // ATSlocal_void (tmp441) ; // ATSlocal_void (tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; // ATSlocal_void (tmp444) ; // ATSlocal_void (tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_higmat: /* tmp441 = */ atspre_fprint_string (arg0, ATSstrcst("HIGMAT(")) ; tmp443 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_higmat_exp) ; /* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp443) ; /* tmp444 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; tmp446 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_higmat_pat) ; /* tmp445 = */ fprintopt_01697_ats_ptr_type (arg0, tmp446, &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat) ; /* tmp440 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp440) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_higmat] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 18717(line=816, offs=15) -- 18941(line=822, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_hiclau (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp447) ; // ATSlocal_void (tmp448) ; // ATSlocal_void (tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; // ATSlocal_void (tmp451) ; // ATSlocal_void (tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_hiclau: /* tmp448 = */ atspre_fprint_string (arg0, ATSstrcst("HICLAU(")) ; tmp450 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_hiclau_pat) ; /* tmp449 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipatlst (arg0, tmp450) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(" => ")) ; tmp453 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_hiclau_body) ; /* tmp452 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp453) ; /* tmp447 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp447) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__fprint_hiclau] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 19018(line=828, offs=3) -- 22058(line=976, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidecl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; // ATSlocal_void (tmp457) ; // ATSlocal_void (tmp458) ; ATSlocal (ats_int_type, tmp459) ; ATSlocal (ats_int_type, tmp460) ; // ATSlocal_void (tmp461) ; // ATSlocal_void (tmp462) ; ATSlocal (ats_int_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; // ATSlocal_void (tmp465) ; // ATSlocal_void (tmp466) ; // ATSlocal_void (tmp467) ; // ATSlocal_void (tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; // ATSlocal_void (tmp470) ; // ATSlocal_void (tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; // ATSlocal_void (tmp474) ; // ATSlocal_void (tmp475) ; // ATSlocal_void (tmp476) ; // ATSlocal_void (tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; // ATSlocal_void (tmp479) ; // ATSlocal_void (tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; // ATSlocal_void (tmp482) ; // ATSlocal_void (tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; // ATSlocal_void (tmp485) ; // ATSlocal_void (tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; // ATSlocal_void (tmp488) ; // ATSlocal_void (tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; // ATSlocal_void (tmp491) ; // ATSlocal_void (tmp492) ; ATSlocal (ats_int_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; // ATSlocal_void (tmp495) ; // ATSlocal_void (tmp496) ; // ATSlocal_void (tmp497) ; // ATSlocal_void (tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; // ATSlocal_void (tmp500) ; // ATSlocal_void (tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; // ATSlocal_void (tmp504) ; // ATSlocal_void (tmp505) ; // ATSlocal_void (tmp506) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidecl: tmp455 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg1), atslab_hidecl_node) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp455)->tag != 0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("HIDnone()")) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp455)->tag != 1) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp456 = ats_caselptrlab_mac(anairiats_sum_1, tmp455, atslab_0) ; /* tmp457 = */ atspre_fprint_string (arg0, ATSstrcst("HIDlist(\n")) ; /* tmp458 = */ fprintlst_01696_ats_ptr_type (arg0, tmp456, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidecl) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp455)->tag != 2) { goto __ats_lab_82_0 ; } __ats_lab_81_1: /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("HIDsaspdec(...)")) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp455)->tag != 3) { goto __ats_lab_83_0 ; } __ats_lab_82_1: /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("HIDreassume(...)")) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp455)->tag != 6) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp459 = ats_caselptrlab_mac(anairiats_sum_13, tmp455, atslab_0) ; tmp460 = ats_caselptrlab_mac(anairiats_sum_13, tmp455, atslab_1) ; /* tmp461 = */ atspre_fprint_string (arg0, ATSstrcst("HIDextcode(")) ; /* tmp462 = */ atspre_fprintf_exn (arg0, ATSstrcst("knd=%i, pos=%i, code=..."), tmp459, tmp460) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp455)->tag != 8) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp463 = ats_caselptrlab_mac(anairiats_sum_16, tmp455, atslab_0) ; tmp464 = ats_caselptrlab_mac(anairiats_sum_16, tmp455, atslab_1) ; /* tmp465 = */ atspre_fprint_string (arg0, ATSstrcst("HIDdatdecs(")) ; /* tmp466 = */ atspre_fprint_int (arg0, tmp463) ; /* tmp467 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp468 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (arg0, tmp464) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp455)->tag != 7) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp469 = ats_caselptrlab_mac(anairiats_sum_1, tmp455, atslab_0) ; /* tmp470 = */ atspre_fprint_string (arg0, ATSstrcst("HIDexndecs(")) ; /* tmp471 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst (arg0, tmp469) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp455)->tag != 9) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp472 = ats_caselptrlab_mac(anairiats_sum_3, tmp455, atslab_0) ; tmp473 = ats_caselptrlab_mac(anairiats_sum_3, tmp455, atslab_1) ; /* tmp474 = */ atspre_fprint_string (arg0, ATSstrcst("HIDdcstdecs(")) ; /* tmp475 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_dcstkind (arg0, tmp472) ; /* tmp476 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp477 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cstlst (arg0, tmp473) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp455)->tag != 11) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp478 = ats_caselptrlab_mac(anairiats_sum_11, tmp455, atslab_2) ; /* tmp479 = */ atspre_fprint_string (arg0, ATSstrcst("HIDfundecs(\n")) ; /* tmp480 = */ fprintlst_01696_ats_ptr_type (arg0, tmp478, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hifundec) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp455)->tag != 12) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp481 = ats_caselptrlab_mac(anairiats_sum_3, tmp455, atslab_1) ; /* tmp482 = */ atspre_fprint_string (arg0, ATSstrcst("HIDvaldecs(\n")) ; /* tmp483 = */ fprintlst_01696_ats_ptr_type (arg0, tmp481, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivaldec) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp455)->tag != 13) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp484 = ats_caselptrlab_mac(anairiats_sum_3, tmp455, atslab_1) ; /* tmp485 = */ atspre_fprint_string (arg0, ATSstrcst("HIDvaldecs_rec(\n")) ; /* tmp486 = */ fprintlst_01696_ats_ptr_type (arg0, tmp484, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivaldec) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp455)->tag != 14) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp487 = ats_caselptrlab_mac(anairiats_sum_1, tmp455, atslab_0) ; /* tmp488 = */ atspre_fprint_string (arg0, ATSstrcst("HIDvardecs(\n")) ; /* tmp489 = */ fprintlst_01696_ats_ptr_type (arg0, tmp487, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivardec) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp455)->tag != 10) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp490 = ats_caselptrlab_mac(anairiats_sum_16, tmp455, atslab_1) ; /* tmp491 = */ atspre_fprint_string (arg0, ATSstrcst("HIDimpdec(\n")) ; /* tmp492 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hiimpdec (arg0, tmp490) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp455)->tag != 15) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp493 = ats_caselptrlab_mac(anairiats_sum_16, tmp455, atslab_0) ; tmp494 = ats_caselptrlab_mac(anairiats_sum_16, tmp455, atslab_1) ; /* tmp495 = */ atspre_fprint_string (arg0, ATSstrcst("HIDinclude(")) ; /* tmp496 = */ atspre_fprint_int (arg0, tmp493) ; /* tmp497 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp498 = */ fprintlst_01696_ats_ptr_type (arg0, tmp494, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidecl) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp455)->tag != 16) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp499 = ats_caselptrlab_mac(anairiats_sum_21, tmp455, atslab_1) ; /* tmp500 = */ atspre_fprint_string (arg0, ATSstrcst("HIDstaload(")) ; /* tmp501 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp499) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp455)->tag != 17) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp502 = ats_caselptrlab_mac(anairiats_sum_11, tmp455, atslab_0) ; tmp503 = ats_caselptrlab_mac(anairiats_sum_11, tmp455, atslab_1) ; /* tmp504 = */ atspre_fprint_string (arg0, ATSstrcst("HIDstaloadloc(")) ; /* tmp505 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp502) ; /* tmp506 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp503) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: __ats_lab_95_1: /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("HID...(...)")) ; break ; } while (0) ; return /* (tmp454) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidecl] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 22113(line=980, offs=3) -- 22151(line=980, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidecl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp507) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidecl: /* tmp507 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidecl (stdout, arg0) ; return /* (tmp507) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidecl] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 22177(line=983, offs=3) -- 22215(line=983, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hidecl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp508) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hidecl: /* tmp508 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidecl (stderr, arg0) ; return /* (tmp508) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__prerr_hidecl] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 22269(line=989, offs=3) -- 22512(line=1003, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hideclist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; // ATSlocal_void (tmp512) ; // ATSlocal_void (tmp513) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hideclist: do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp510 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp511 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; /* tmp512 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidecl (arg0, tmp510) ; /* tmp513 = */ atspre_fprint_newline (arg0) ; arg0 = arg0 ; arg1 = tmp511 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hideclist ; // tail call break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_97_1: break ; } while (0) ; return /* (tmp509) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hideclist] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 22592(line=1009, offs=3) -- 22755(line=1013, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hiimpdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp514) ; // ATSlocal_void (tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; // ATSlocal_void (tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hiimpdec: tmp516 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg1), atslab_hiimpdec_cst) ; /* tmp515 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp516) ; /* tmp517 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp518 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg1), atslab_hiimpdec_def) ; /* tmp514 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp518) ; return /* (tmp514) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hiimpdec] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 22834(line=1019, offs=3) -- 22985(line=1023, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hifundec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp519) ; // ATSlocal_void (tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; // ATSlocal_void (tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hifundec: tmp521 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg1), atslab_hifundec_var) ; /* tmp520 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp521) ; /* tmp522 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp523 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg1), atslab_hifundec_def) ; /* tmp519 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp523) ; return /* (tmp519) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hifundec] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 23043(line=1027, offs=3) -- 23194(line=1031, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivaldec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp524) ; // ATSlocal_void (tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; // ATSlocal_void (tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivaldec: tmp526 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg1), atslab_hivaldec_pat) ; /* tmp525 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat (arg0, tmp526) ; /* tmp527 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp528 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg1), atslab_hivaldec_def) ; /* tmp524 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp (arg0, tmp528) ; return /* (tmp524) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivaldec] */ /* // /tmp/ATS-Postiats/src/pats_hidynexp_print.dats: 23252(line=1035, offs=3) -- 23549(line=1044, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivardec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp529) ; // ATSlocal_void (tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; // ATSlocal_void (tmp532) ; // ATSlocal_void (tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; // ATSlocal_void (tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivardec: tmp531 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_hivardec_dvar_ptr) ; /* tmp530 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp531) ; /* tmp532 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; tmp534 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_hivardec_type) ; /* tmp533 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp534) ; /* tmp535 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp536 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_hivardec_init) ; /* tmp529 = */ fprintopt_01697_ats_ptr_type (arg0, tmp536, &_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hidexp) ; return /* (tmp529) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hivardec] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_hidynexp_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_error_dats.c0000644000175000017500000013256513431250607023340 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; /* 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_staexp2_error_2esats__STAERR_funclo_equal_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_clokind_equal_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_linearity_equal_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_pfarity_equal_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2eff_subeq_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_boxity_equal_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_tyreckind_equal_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_equal_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_tyleq_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2Var_s2exp_solve_13) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_add_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_void_type, atspre_prerr_int) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__prerr_funclo) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_tyreckind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2eff) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_get) (ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_5 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type revapp_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_void_type prerr_staerr_funclo_equal_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type prerr_staerr_clokind_equal_13 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ; static ats_void_type prerr_staerr_linearity_equal_14 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ; static ats_void_type prerr_staerr_pfarity_equal_15 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ; static ats_void_type prerr_staerr_s2eff_subeq_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type prerr_staerr_boxity_equal_17 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type prerr_staerr_tyreckind_equal_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type prerr_staerr_s2exp_equal_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type prerr_staerr_s2exp_tyleq_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type prerr_staerr_s2Var_s2exp_solve_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_23 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp4) ; ATSstatic (ats_ptr_type, statmp7) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 1608(line=47, offs=28) -- 1639(line=47, offs=59) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_staexp2_error")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; __ats_lab_ref_01088_ats_int_type: /* ats_int_type tmp3 ; */ tmp3 = arg0 ; tmp2 = atspre_ref_make_elt_tsz ((&tmp3), sizeof(ats_int_type)) ; return (tmp2) ; } /* end of [ref_01088_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp6 ; */ tmp6 = arg0 ; tmp5 = atspre_ref_make_elt_tsz ((&tmp6), sizeof(ats_ptr_type)) ; return (tmp5) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp13 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp12) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp11) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp11 = */ loop_5 (arg0) ; return /* (tmp11) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 2070(line=74, offs=3) -- 2279(line=81, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_clear () { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_clear: ats_ptrget_mac(ats_int_type, statmp1) = 0 ; tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp4), atslab_1) ; tmp14 = ats_ptrget_mac(ats_ptr_type, tmp9) ; /* tmp10 = */ list_vt_free_01499_ats_ptr_type (tmp14) ; tmp15 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp9) = tmp15 ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_clear] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 2343(line=85, offs=3) -- 2649(line=96, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add: tmp17 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp18 = ats_ptrget_mac(ats_int_type, tmp17) ; tmp19 = atspre_add_int_int (tmp18, 1) ; ats_ptrget_mac(ats_int_type, tmp17) = tmp19 ; tmp20 = atspre_lt_int_int (tmp18, 100) ; if (tmp20) { tmp21 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp4), atslab_1) ; tmp23 = ats_ptrget_mac(ats_ptr_type, tmp21) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp22, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp22, atslab_1, tmp23) ; ats_ptrget_mac(ats_ptr_type, tmp21) = tmp22 ; } else { /* empty */ } /* end of [if] */ return /* (tmp16) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_revapp_10: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp32 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp33 = ats_ptrget_mac(ats_ptr_type, tmp32) ; ats_ptrget_mac(ats_ptr_type, tmp32) = arg1 ; tmp34 = arg0 ; arg0 = tmp33 ; arg1 = tmp34 ; goto __ats_lab_revapp_10 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp31 = arg1 ; break ; } while (0) ; return (tmp31) ; } /* end of [revapp_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp30 = revapp_10 (arg0, arg1) ; return (tmp30) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp35 = (ats_sum_ptr_type)0 ; tmp29 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp35) ; return (tmp29) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 2711(line=100, offs=3) -- 2918(line=107, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_get (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_get: tmp25 = ats_ptrget_mac(ats_int_type, statmp1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp25 ; ats_ptrget_mac(ats_int_type, statmp1) = 0 ; tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp4), atslab_1) ; tmp27 = ats_ptrget_mac(ats_ptr_type, tmp26) ; tmp28 = list_vt_reverse_01506_ats_ptr_type (tmp27) ; tmp36 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp26) = tmp36 ; tmp24 = tmp28 ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_get] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; __ats_lab_prerr_error3_loc_02089_: /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp39 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp39) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 3004(line=115, offs=4) -- 3312(line=122, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_funclo_equal_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; __ats_lab_prerr_staerr_funclo_equal_11: /* tmp38 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp41 = */ atspre_prerr_string (ATSstrcst(": function/closure mismatch:\n")) ; /* tmp42 = */ atspre_prerr_string (ATSstrcst("The actual funclo kind is: ")) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__prerr_funclo (arg1) ; /* tmp44 = */ atspre_prerr_newline () ; /* tmp45 = */ atspre_prerr_string (ATSstrcst("The needed funclo kind is: ")) ; /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__prerr_funclo (arg2) ; /* tmp37 = */ atspre_prerr_newline () ; return /* (tmp37) */ ; } /* end of [prerr_staerr_funclo_equal_11] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 3355(line=124, offs=4) -- 3649(line=131, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_clokind_equal_13 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; __ats_lab_prerr_staerr_clokind_equal_13: /* tmp48 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp49 = */ atspre_prerr_string (ATSstrcst(": closure mismatch:\n")) ; /* tmp50 = */ atspre_prerr_string (ATSstrcst("The actual closure kind is: ")) ; /* tmp51 = */ atspre_prerr_int (arg1) ; /* tmp52 = */ atspre_prerr_newline () ; /* tmp53 = */ atspre_prerr_string (ATSstrcst("The needed closure kind is: ")) ; /* tmp54 = */ atspre_prerr_int (arg2) ; /* tmp47 = */ atspre_prerr_newline () ; return /* (tmp47) */ ; } /* end of [prerr_staerr_clokind_equal_13] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 3693(line=133, offs=4) -- 4090(line=144, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_linearity_equal_14 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_bool_type, tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; __ats_lab_prerr_staerr_linearity_equal_14: /* tmp56 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp57 = */ atspre_prerr_string (ATSstrcst(": linearity mismatch:\n")) ; /* tmp58 = */ atspre_prerr_string (ATSstrcst("The actual linearity is: ")) ; tmp61 = atspre_gt_int_int (arg1, 0) ; if (tmp61) { tmp60 = ATSstrcst("linear") ; } else { tmp60 = ATSstrcst("nonlinear") ; } /* end of [if] */ /* tmp59 = */ atspre_prerr_string (tmp60) ; /* tmp62 = */ atspre_prerr_newline () ; /* tmp63 = */ atspre_prerr_string (ATSstrcst("The needed linearity is: ")) ; tmp66 = atspre_gt_int_int (arg2, 0) ; if (tmp66) { tmp65 = ATSstrcst("linear") ; } else { tmp65 = ATSstrcst("nonlinear") ; } /* end of [if] */ /* tmp64 = */ atspre_prerr_string (tmp65) ; /* tmp55 = */ atspre_prerr_newline () ; return /* (tmp55) */ ; } /* end of [prerr_staerr_linearity_equal_14] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 4136(line=146, offs=4) -- 4432(line=153, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_pfarity_equal_15 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab_prerr_staerr_pfarity_equal_15: /* tmp68 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp69 = */ atspre_prerr_string (ATSstrcst(": proof arity mismatch:\n")) ; /* tmp70 = */ atspre_prerr_string (ATSstrcst("The actual proof arity is: ")) ; /* tmp71 = */ atspre_prerr_int (arg1) ; /* tmp72 = */ atspre_prerr_newline () ; /* tmp73 = */ atspre_prerr_string (ATSstrcst("The needed proof arity is: ")) ; /* tmp74 = */ atspre_prerr_int (arg2) ; /* tmp67 = */ atspre_prerr_newline () ; return /* (tmp67) */ ; } /* end of [prerr_staerr_pfarity_equal_15] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 4497(line=157, offs=4) -- 4812(line=164, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_s2eff_subeq_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; __ats_lab_prerr_staerr_s2eff_subeq_16: /* tmp76 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp77 = */ atspre_prerr_string (ATSstrcst(": maybe incurring disallowed effects:\n")) ; /* tmp78 = */ atspre_prerr_string (ATSstrcst("The actual effects are: ")) ; /* tmp79 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2eff (arg1) ; /* tmp80 = */ atspre_prerr_newline () ; /* tmp81 = */ atspre_prerr_string (ATSstrcst("The allowed effects are: ")) ; /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2eff (arg2) ; /* tmp75 = */ atspre_prerr_newline () ; return /* (tmp75) */ ; } /* end of [prerr_staerr_s2eff_subeq_16] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 4875(line=168, offs=4) -- 5080(line=178, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_boxity_equal_17 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; __ats_lab_prerr_staerr_boxity_equal_17: /* tmp84 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp85 = */ atspre_prerr_string (ATSstrcst(": boxity mismatch")) ; /* tmp83 = */ atspre_prerr_newline () ; return /* (tmp83) */ ; } /* end of [prerr_staerr_boxity_equal_17] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 5123(line=180, offs=4) -- 5428(line=193, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_tyreckind_equal_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; __ats_lab_prerr_staerr_tyreckind_equal_18: /* tmp87 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp88 = */ atspre_prerr_string (ATSstrcst(": tyreckind mismatch: ")) ; /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_tyreckind (arg1) ; /* tmp90 = */ atspre_prerr_string (ATSstrcst(" <> ")) ; /* tmp91 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_tyreckind (arg2) ; /* tmp86 = */ atspre_prerr_newline () ; return /* (tmp86) */ ; } /* end of [prerr_staerr_tyreckind_equal_18] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 5492(line=197, offs=4) -- 5798(line=204, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_s2exp_equal_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; __ats_lab_prerr_staerr_s2exp_equal_19: /* tmp93 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp94 = */ atspre_prerr_string (ATSstrcst(": mismatch of static terms (equal):\n")) ; /* tmp95 = */ atspre_prerr_string (ATSstrcst("The actual term is: ")) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp (arg1) ; /* tmp97 = */ atspre_prerr_newline () ; /* tmp98 = */ atspre_prerr_string (ATSstrcst("The needed term is: ")) ; /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp (arg2) ; /* tmp92 = */ atspre_prerr_newline () ; return /* (tmp92) */ ; } /* end of [prerr_staerr_s2exp_equal_19] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 5840(line=206, offs=4) -- 6146(line=213, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_s2exp_tyleq_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; __ats_lab_prerr_staerr_s2exp_tyleq_20: /* tmp101 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp102 = */ atspre_prerr_string (ATSstrcst(": mismatch of static terms (tyleq):\n")) ; /* tmp103 = */ atspre_prerr_string (ATSstrcst("The actual term is: ")) ; /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp (arg1) ; /* tmp105 = */ atspre_prerr_newline () ; /* tmp106 = */ atspre_prerr_string (ATSstrcst("The needed term is: ")) ; /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp (arg2) ; /* tmp100 = */ atspre_prerr_newline () ; return /* (tmp100) */ ; } /* end of [prerr_staerr_s2exp_tyleq_20] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 6188(line=215, offs=4) -- 6754(line=233, offs=4) */ ATSstaticdec() ats_void_type prerr_staerr_s2Var_s2exp_solve_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; __ats_lab_prerr_staerr_s2Var_s2exp_solve_21: tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt (arg1) ; tmp110 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_s2exp_srt) ; /* tmp111 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp112 = */ atspre_prerr_string (ATSstrcst(": mismatch of sorts in unification:\n")) ; /* tmp113 = */ atspre_prerr_string (ATSstrcst("The sort of variable is: ")) ; /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp109) ; /* tmp115 = */ atspre_prerr_newline () ; /* tmp116 = */ atspre_prerr_string (ATSstrcst("The sort of solution is: ")) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp110) ; /* tmp108 = */ atspre_prerr_newline () ; return /* (tmp108) */ ; } /* end of [prerr_staerr_s2Var_s2exp_solve_21] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 6866(line=240, offs=5) -- 8073(line=272, offs=4) */ ATSstaticdec() ats_void_type loop_23 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_int_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_int_type, tmp130) ; ATSlocal (ats_int_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_int_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_int_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; __ats_lab_loop_23: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_4_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp121 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp120)->tag != 2) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_0) ; tmp124 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_1) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_funclo_equal_11 (tmp123, tmp124, tmp125) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp120)->tag != 3) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_1) ; tmp128 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_clokind_equal_13 (tmp126, tmp127, tmp128) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp120)->tag != 4) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_1) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_linearity_equal_14 (tmp129, tmp130, tmp131) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp120)->tag != 5) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp133 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_1) ; tmp134 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_pfarity_equal_15 (tmp132, tmp133, tmp134) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp120)->tag != 6) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_0) ; tmp136 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_1) ; tmp137 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_s2eff_subeq_16 (tmp135, tmp136, tmp137) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp120)->tag != 7) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_5, tmp120, atslab_0) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_5, tmp120, atslab_1) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_5, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_boxity_equal_17 (tmp138, tmp139, tmp140) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp120)->tag != 8) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_1) ; tmp143 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_tyreckind_equal_18 (tmp141, tmp142, tmp143) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp120)->tag != 11) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_0) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_1) ; tmp146 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_s2exp_equal_19 (tmp144, tmp145, tmp146) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp120)->tag != 12) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_0) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_1) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_s2exp_tyleq_20 (tmp147, tmp148, tmp149) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp120)->tag != 13) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp150 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_0) ; tmp151 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_1) ; tmp152 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_2) ; /* tmp122 = */ prerr_staerr_s2Var_s2exp_solve_21 (tmp150, tmp151, tmp152) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: break ; } while (0) ; arg0 = tmp121 ; goto __ats_lab_loop_23 ; // tail call break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: break ; } while (0) ; return /* (tmp119) */ ; } /* end of [loop_23] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_error.dats: 6850(line=238, offs=21) -- 8157(line=279, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () { /* local vardec */ // ATSlocal_void (tmp118) ; ATSlocal (ats_int_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst: /* ats_int_type tmp153 ; */ tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_get ((&tmp153)) ; /* tmp118 = */ loop_23 (tmp154) ; return /* (tmp118) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp1 = ref_01088_ats_int_type (0) ; statmp7 = (ats_sum_ptr_type)0 ; statmp4 = ref_01088_ats_ptr_type (statmp7) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_error_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp2_print_dats.c0000644000175000017500000052345713431250607023352 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_d2sym_loc ; ats_ptr_type atslab_d2sym_qua ; ats_ptr_type atslab_d2sym_sym ; ats_ptr_type atslab_d2sym_pitmlst ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_19 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_21 ; typedef struct { ats_ptr_type atslab_d2lab_loc ; ats_ptr_type atslab_d2lab_node ; ats_ptr_type atslab_d2lab_overld ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_i2nvarg_var ; ats_ptr_type atslab_i2nvarg_type ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_i2nvresstate_svs ; ats_ptr_type atslab_i2nvresstate_gua ; ats_ptr_type atslab_i2nvresstate_arg ; ats_ptr_type atslab_i2nvresstate_met ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_loopi2nv_loc ; ats_ptr_type atslab_loopi2nv_svs ; ats_ptr_type atslab_loopi2nv_gua ; ats_ptr_type atslab_loopi2nv_arg ; ats_ptr_type atslab_loopi2nv_met ; ats_ptr_type atslab_loopi2nv_res ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_26 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_27 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2PITM_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMe1xp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMsymdef_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacdef_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacvar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKlincon_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlst_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Terrpat_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop2_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecstsp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etyrep_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eliteral_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextfcall_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextmcall_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Econ_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efoldat_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efreeat_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etmpid_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elet_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhere_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esifhead_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifcasehd_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Escasehead_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elst_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eptrof_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eviewat_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Exchng_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrsub_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrpsz_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrinit_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eraise_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eeffmask_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evararg_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evcopyenv_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eshowtype_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etempenver_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eexist_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elaminit_dyn_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efix_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Edelay_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eldelay_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efor_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhile_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eloopexn_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etrywith_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacsyn_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacfun_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolassert_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolverify_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eerrexp_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cpragma_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ccodegen_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacsts_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacons_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextype_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextvar_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextcode_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdatdecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdcstdecs_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cimpdec_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cfundecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_rec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvardecs_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cprvardecs_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaload_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaloadloc_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdynload_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cerrdec_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALderef_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_mut_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALarrsub_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALviewat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALnone_5) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_dcstkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2mac) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitm) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitmlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2atlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2expopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lablst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_loopi2nv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvarglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvresstate) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2ecl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2eclist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__fprint_i2nvarg) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 2107(line=73, offs=3) -- 3158(line=113, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("D2ITMcst(")) ; /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp1) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("D2ITMvar(")) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp4) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("D2ITMcon(")) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst (arg0, tmp7) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst("D2ITMe1xp(")) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, tmp10) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp14 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("D2ITMsymdef(")) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp13) ; /* tmp17 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitmlst (arg0, tmp14) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp20 = */ atspre_fprint_string (arg0, ATSstrcst("D2ITMmacdef(")) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2mac (arg0, tmp19) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (((ats_sum_ptr_type)arg1)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp23 = */ atspre_fprint_string (arg0, ATSstrcst("D2ITMmacvar(")) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp22) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 3229(line=118, offs=13) -- 3263(line=118, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2itm (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2itm: /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm (stdout, arg0) ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2itm] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 3286(line=120, offs=13) -- 3320(line=120, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2itm (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2itm: /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm (stderr, arg0) ; return /* (tmp26) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2itm] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_bool_type, tmp33) ; // ATSlocal_void (tmp34) ; ATSlocal (ats_int_type, tmp35) ; __ats_lab_aux_5: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp31 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp33 = atspre_gt_int_int (arg1, 0) ; if (tmp33) { /* tmp32 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp34 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp30) ; tmp35 = atspre_add_int_int (arg1, 1) ; arg0 = tmp31 ; arg1 = tmp35 ; goto __ats_lab_aux_5 ; // tail call break ; } while (0) ; return /* (tmp29) */ ; } /* end of [aux_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_5_closure_type ; ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_5 (((aux_5_closure_type*)cloptr)->closure_env_0, ((aux_5_closure_type*)cloptr)->closure_env_1, ((aux_5_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_5_closure_init (aux_5_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ; aux_5_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp28) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp28 = */ aux_5 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp28) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 3371(line=126, offs=3) -- 3426(line=126, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itmlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itmlst: /* tmp27 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm) ; return /* (tmp27) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itmlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 3503(line=133, offs=3) -- 3730(line=140, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitm (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp36) ; ATSlocal (ats_int_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitm: tmp37 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp38 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp39 = */ atspre_fprint_string (arg0, ATSstrcst("D2PITM(")) ; /* tmp40 = */ atspre_fprint_int (arg0, tmp37) ; /* tmp41 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm (arg0, tmp38) ; /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp36) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitm] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 3787(line=144, offs=3) -- 3843(line=144, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitmlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitmlst: /* tmp43 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitm) ; return /* (tmp43) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2pitmlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 3922(line=151, offs=3) -- 4029(line=154, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym: tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_d2sym_qua) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (arg0, tmp46) ; tmp47 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_d2sym_sym) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp47) ; return /* (tmp44) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 4076(line=157, offs=13) -- 4108(line=157, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2sym (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2sym: /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym (stdout, arg0) ; return /* (tmp48) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2sym] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 4131(line=159, offs=13) -- 4163(line=159, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2sym (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2sym: /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym (stderr, arg0) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2sym] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 4216(line=165, offs=3) -- 4453(line=178, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("PCKcon")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_11_0 ; } __ats_lab_10_1: /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("PCKlincon")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_12_0 ; } __ats_lab_11_1: /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("PCKfree")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (((ats_sum_ptr_type)arg1)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("PCKunfold")) ; break ; } while (0) ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 4506(line=181, offs=14) -- 4534(line=181, offs=42) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_pckind (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_pckind: /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind (stdout, arg0) ; return /* (tmp51) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_pckind] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 4558(line=183, offs=14) -- 4586(line=183, offs=42) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_pckind (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_pckind: /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind (stderr, arg0) ; return /* (tmp52) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_pckind] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12204(line=668, offs=1) -- 12471(line=681, offs=8) */ ATSstaticdec() ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; __ats_lab_fprintopt_01697_ats_ptr_type: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: /* tmp54 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; /* tmp56 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp57 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg2) (arg0, tmp55) ; /* tmp54 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp54) */ ; } /* end of [fprintopt_01697_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 4640(line=189, offs=3) -- 4692(line=189, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckindopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckindopt: /* tmp53 = */ fprintopt_01697_ats_ptr_type (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind) ; return /* (tmp53) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckindopt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 4768(line=196, offs=3) -- 7842(line=335, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; ATSlocal (ats_bool_type, tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_int_type, tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; ATSlocal (ats_char_type, tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_int_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; ATSlocal (ats_int_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at: tmp59 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_p2at_node) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp59)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tany()")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp59)->tag != 1) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_0, tmp59, atslab_0) ; /* tmp61 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tvar(")) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp60) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp59)->tag != 5) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_7, tmp59, atslab_0) ; /* tmp64 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tbool(")) ; /* tmp65 = */ atspre_fprint_bool (arg0, tmp63) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp59)->tag != 3) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_8, tmp59, atslab_0) ; /* tmp67 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tint(")) ; /* tmp68 = */ atspre_fprint_int (arg0, tmp66) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp59)->tag != 4) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_0, tmp59, atslab_0) ; /* tmp70 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tintrep(")) ; /* tmp71 = */ atspre_fprint_string (arg0, tmp69) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp59)->tag != 6) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_9, tmp59, atslab_0) ; /* tmp73 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tchar(")) ; /* tmp74 = */ atspre_fprint_char (arg0, tmp72) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp59)->tag != 7) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_0, tmp59, atslab_0) ; /* tmp76 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tfloat(")) ; /* tmp77 = */ atspre_fprint_string (arg0, tmp75) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp59)->tag != 8) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_0, tmp59, atslab_0) ; /* tmp79 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tstring(")) ; /* tmp80 = */ atspre_fprint_string (arg0, tmp78) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp59)->tag != 9) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_0, tmp59, atslab_0) ; /* tmp82 = */ atspre_fprint_string (arg0, ATSstrcst("P2Ti0nt(")) ; /* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp81) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp59)->tag != 10) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_0, tmp59, atslab_0) ; /* tmp85 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tf0loat(")) ; /* tmp86 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp84) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp59)->tag != 11) { goto __ats_lab_26_0 ; } __ats_lab_25_1: /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tempty()")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp59)->tag != 2) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp87 = ats_caselptrlab_mac(anairiats_sum_10, tmp59, atslab_0) ; tmp88 = ats_caselptrlab_mac(anairiats_sum_10, tmp59, atslab_1) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_10, tmp59, atslab_2) ; tmp90 = ats_caselptrlab_mac(anairiats_sum_10, tmp59, atslab_3) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_10, tmp59, atslab_4) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_10, tmp59, atslab_5) ; /* tmp93 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tcon(")) ; /* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind (arg0, tmp87) ; /* tmp95 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp88) ; /* tmp97 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst (arg0, tmp89) ; /* tmp99 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp90) ; /* tmp101 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp102 = */ atspre_fprint_int (arg0, tmp91) ; /* tmp103 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst (arg0, tmp92) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp59)->tag != 18) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_11, tmp59, atslab_0) ; tmp106 = ats_caselptrlab_mac(anairiats_sum_11, tmp59, atslab_1) ; /* tmp107 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tlist(")) ; /* tmp108 = */ atspre_fprint_int (arg0, tmp105) ; /* tmp109 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst (arg0, tmp106) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp59)->tag != 13) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_12, tmp59, atslab_0) ; tmp112 = ats_caselptrlab_mac(anairiats_sum_12, tmp59, atslab_1) ; tmp113 = ats_caselptrlab_mac(anairiats_sum_12, tmp59, atslab_2) ; /* tmp114 = */ atspre_fprint_string (arg0, ATSstrcst("P2Ttup(")) ; /* tmp115 = */ atspre_fprint_int (arg0, tmp111) ; /* tmp116 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp117 = */ atspre_fprint_int (arg0, tmp112) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2atlst (arg0, tmp113) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp59)->tag != 12) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_11, tmp59, atslab_0) ; tmp121 = ats_caselptrlab_mac(anairiats_sum_11, tmp59, atslab_1) ; /* tmp122 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tlst(")) ; /* tmp123 = */ atspre_fprint_int (arg0, tmp120) ; /* tmp124 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst (arg0, tmp121) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp59)->tag != 14) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_1, tmp59, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_1, tmp59, atslab_1) ; /* tmp128 = */ atspre_fprint_string (arg0, ATSstrcst("P2Trefas(")) ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp126) ; /* tmp130 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at (arg0, tmp127) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp59)->tag != 15) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_1, tmp59, atslab_0) ; tmp133 = ats_caselptrlab_mac(anairiats_sum_1, tmp59, atslab_1) ; /* tmp134 = */ atspre_fprint_string (arg0, ATSstrcst("P2Texist(")) ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp132) ; /* tmp136 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at (arg0, tmp133) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp59)->tag != 16) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_0, tmp59, atslab_0) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tvbox(")) ; /* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp138) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp59)->tag != 17) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_1, tmp59, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_1, tmp59, atslab_1) ; /* tmp143 = */ atspre_fprint_string (arg0, ATSstrcst("P2Tann(")) ; /* tmp144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at (arg0, tmp141) ; /* tmp145 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp142) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (((ats_sum_ptr_type)tmp59)->tag != 19) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("P2Terrpat()")) ; break ; } while (0) ; return /* (tmp58) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 7910(line=340, offs=12) -- 7943(line=340, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp147) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2at: /* tmp147 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at (stdout, arg0) ; return /* (tmp147) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 7965(line=342, offs=12) -- 7998(line=342, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_p2at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp148) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_p2at: /* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at (stderr, arg0) ; return /* (tmp148) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_p2at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 8050(line=348, offs=3) -- 8104(line=348, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp149) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst: /* tmp149 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at) ; return /* (tmp149) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 8159(line=352, offs=15) -- 8197(line=352, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2atlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp150) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2atlst: /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst (stdout, arg0) ; return /* (tmp150) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2atlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 8222(line=354, offs=15) -- 8260(line=354, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_p2atlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_p2atlst: /* tmp151 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst (stderr, arg0) ; return /* (tmp151) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_p2atlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 8312(line=360, offs=3) -- 8567(line=366, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2at: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp154 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab (arg0, tmp153) ; /* tmp156 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2at (arg0, tmp154) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (((ats_sum_ptr_type)arg1)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: /* tmp152 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; break ; } while (0) ; return /* (tmp152) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 8626(line=371, offs=3) -- 8683(line=371, offs=60) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2atlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp157) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2atlst: /* tmp157 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2at) ; return /* (tmp157) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labp2atlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 8758(line=378, offs=3) -- 21797(line=904, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; ATSlocal (ats_int_type, tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; ATSlocal (ats_bool_type, tmp172) ; // ATSlocal_void (tmp173) ; // ATSlocal_void (tmp174) ; ATSlocal (ats_char_type, tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_char_type, tmp191) ; // ATSlocal_void (tmp192) ; // ATSlocal_void (tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; // ATSlocal_void (tmp205) ; // ATSlocal_void (tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; // ATSlocal_void (tmp214) ; // ATSlocal_void (tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; // ATSlocal_void (tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; // ATSlocal_void (tmp242) ; // ATSlocal_void (tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; ATSlocal (ats_int_type, tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_int_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; // ATSlocal_void (tmp256) ; // ATSlocal_void (tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; // ATSlocal_void (tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; // ATSlocal_void (tmp265) ; // ATSlocal_void (tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; // ATSlocal_void (tmp287) ; // ATSlocal_void (tmp288) ; // ATSlocal_void (tmp289) ; // ATSlocal_void (tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; // ATSlocal_void (tmp293) ; // ATSlocal_void (tmp294) ; // ATSlocal_void (tmp295) ; // ATSlocal_void (tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; // ATSlocal_void (tmp299) ; // ATSlocal_void (tmp300) ; // ATSlocal_void (tmp301) ; // ATSlocal_void (tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; // ATSlocal_void (tmp306) ; // ATSlocal_void (tmp307) ; // ATSlocal_void (tmp308) ; // ATSlocal_void (tmp309) ; // ATSlocal_void (tmp310) ; // ATSlocal_void (tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; // ATSlocal_void (tmp317) ; // ATSlocal_void (tmp318) ; // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp325) ; // ATSlocal_void (tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; // ATSlocal_void (tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_int_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; // ATSlocal_void (tmp332) ; // ATSlocal_void (tmp333) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; // ATSlocal_void (tmp340) ; // ATSlocal_void (tmp341) ; ATSlocal (ats_int_type, tmp342) ; ATSlocal (ats_int_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; // ATSlocal_void (tmp347) ; // ATSlocal_void (tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; ATSlocal (ats_int_type, tmp351) ; ATSlocal (ats_int_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; // ATSlocal_void (tmp354) ; // ATSlocal_void (tmp355) ; // ATSlocal_void (tmp356) ; // ATSlocal_void (tmp357) ; // ATSlocal_void (tmp358) ; // ATSlocal_void (tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; // ATSlocal_void (tmp361) ; // ATSlocal_void (tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; // ATSlocal_void (tmp368) ; // ATSlocal_void (tmp369) ; // ATSlocal_void (tmp370) ; // ATSlocal_void (tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; // ATSlocal_void (tmp373) ; // ATSlocal_void (tmp374) ; ATSlocal (ats_int_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; // ATSlocal_void (tmp377) ; // ATSlocal_void (tmp378) ; // ATSlocal_void (tmp379) ; // ATSlocal_void (tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; // ATSlocal_void (tmp382) ; // ATSlocal_void (tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; // ATSlocal_void (tmp385) ; // ATSlocal_void (tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; // ATSlocal_void (tmp389) ; // ATSlocal_void (tmp390) ; // ATSlocal_void (tmp391) ; // ATSlocal_void (tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; // ATSlocal_void (tmp394) ; // ATSlocal_void (tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; // ATSlocal_void (tmp397) ; // ATSlocal_void (tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; // ATSlocal_void (tmp400) ; // ATSlocal_void (tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; // ATSlocal_void (tmp404) ; // ATSlocal_void (tmp405) ; // ATSlocal_void (tmp406) ; // ATSlocal_void (tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; // ATSlocal_void (tmp410) ; // ATSlocal_void (tmp411) ; // ATSlocal_void (tmp412) ; // ATSlocal_void (tmp413) ; // ATSlocal_void (tmp414) ; // ATSlocal_void (tmp415) ; // ATSlocal_void (tmp416) ; // ATSlocal_void (tmp417) ; // ATSlocal_void (tmp418) ; // ATSlocal_void (tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; // ATSlocal_void (tmp422) ; // ATSlocal_void (tmp423) ; // ATSlocal_void (tmp424) ; // ATSlocal_void (tmp425) ; ATSlocal (ats_int_type, tmp426) ; ATSlocal (ats_int_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; // ATSlocal_void (tmp430) ; // ATSlocal_void (tmp431) ; // ATSlocal_void (tmp432) ; // ATSlocal_void (tmp433) ; // ATSlocal_void (tmp434) ; // ATSlocal_void (tmp435) ; // ATSlocal_void (tmp436) ; // ATSlocal_void (tmp437) ; ATSlocal (ats_int_type, tmp438) ; ATSlocal (ats_int_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; // ATSlocal_void (tmp442) ; // ATSlocal_void (tmp443) ; // ATSlocal_void (tmp444) ; // ATSlocal_void (tmp445) ; // ATSlocal_void (tmp446) ; // ATSlocal_void (tmp447) ; // ATSlocal_void (tmp448) ; // ATSlocal_void (tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; // ATSlocal_void (tmp453) ; // ATSlocal_void (tmp454) ; // ATSlocal_void (tmp455) ; // ATSlocal_void (tmp456) ; // ATSlocal_void (tmp457) ; // ATSlocal_void (tmp458) ; // ATSlocal_void (tmp459) ; // ATSlocal_void (tmp460) ; // ATSlocal_void (tmp461) ; // ATSlocal_void (tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; // ATSlocal_void (tmp464) ; // ATSlocal_void (tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; // ATSlocal_void (tmp468) ; // ATSlocal_void (tmp469) ; // ATSlocal_void (tmp470) ; // ATSlocal_void (tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; // ATSlocal_void (tmp477) ; // ATSlocal_void (tmp478) ; // ATSlocal_void (tmp479) ; // ATSlocal_void (tmp480) ; // ATSlocal_void (tmp481) ; // ATSlocal_void (tmp482) ; // ATSlocal_void (tmp483) ; // ATSlocal_void (tmp484) ; // ATSlocal_void (tmp485) ; // ATSlocal_void (tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; // ATSlocal_void (tmp490) ; // ATSlocal_void (tmp491) ; // ATSlocal_void (tmp492) ; // ATSlocal_void (tmp493) ; // ATSlocal_void (tmp494) ; // ATSlocal_void (tmp495) ; // ATSlocal_void (tmp496) ; // ATSlocal_void (tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; // ATSlocal_void (tmp500) ; // ATSlocal_void (tmp501) ; // ATSlocal_void (tmp502) ; // ATSlocal_void (tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; // ATSlocal_void (tmp506) ; // ATSlocal_void (tmp507) ; // ATSlocal_void (tmp508) ; // ATSlocal_void (tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; // ATSlocal_void (tmp512) ; // ATSlocal_void (tmp513) ; // ATSlocal_void (tmp514) ; // ATSlocal_void (tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; // ATSlocal_void (tmp517) ; // ATSlocal_void (tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; // ATSlocal_void (tmp521) ; // ATSlocal_void (tmp522) ; // ATSlocal_void (tmp523) ; // ATSlocal_void (tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; // ATSlocal_void (tmp527) ; // ATSlocal_void (tmp528) ; // ATSlocal_void (tmp529) ; // ATSlocal_void (tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; // ATSlocal_void (tmp532) ; // ATSlocal_void (tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; // ATSlocal_void (tmp535) ; // ATSlocal_void (tmp536) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp: tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_d2exp_node) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp159)->tag != 0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp161 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ecst(")) ; /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp160) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp159)->tag != 1) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp164 = */ atspre_fprint_string (arg0, ATSstrcst("D2Evar(")) ; /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp163) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp159)->tag != 2) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp166 = ats_caselptrlab_mac(anairiats_sum_8, tmp159, atslab_0) ; /* tmp167 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eint(")) ; /* tmp168 = */ atspre_fprint_int (arg0, tmp166) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp159)->tag != 3) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp170 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eintrep(")) ; /* tmp171 = */ atspre_fprint_string (arg0, tmp169) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp159)->tag != 4) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_7, tmp159, atslab_0) ; /* tmp173 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ebool(")) ; /* tmp174 = */ atspre_fprint_bool (arg0, tmp172) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp159)->tag != 5) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_9, tmp159, atslab_0) ; /* tmp176 = */ atspre_fprint_string (arg0, ATSstrcst("D2Echar(")) ; /* tmp177 = */ atspre_fprint_char (arg0, tmp175) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp159)->tag != 6) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp179 = */ atspre_fprint_string (arg0, ATSstrcst("D2Efloat(")) ; /* tmp180 = */ atspre_fprint_string (arg0, tmp178) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp159)->tag != 7) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp181 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp182 = */ atspre_fprint_string (arg0, ATSstrcst("D2Estring(")) ; /* tmp183 = */ atspre_fprint_string (arg0, tmp181) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp159)->tag != 8) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp184 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; tmp185 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp184), atslab_token_node) ; if (((ats_sum_ptr_type)tmp185)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 9748(line=422, offs=5) -- 9813(line=425, offs=23)") ; } tmp186 = ats_caselptrlab_mac(anairiats_sum_15, tmp185, atslab_1) ; /* tmp187 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ei0nt(")) ; /* tmp188 = */ atspre_fprint_string (arg0, tmp186) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp159)->tag != 9) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp189 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; tmp190 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp189), atslab_token_node) ; if (((ats_sum_ptr_type)tmp190)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 9938(line=432, offs=5) -- 9966(line=432, offs=33)") ; } tmp191 = ats_caselptrlab_mac(anairiats_sum_9, tmp190, atslab_0) ; /* tmp192 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ec0har(")) ; /* tmp193 = */ atspre_fprint_char (arg0, tmp191) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp159)->tag != 10) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; tmp195 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp194), atslab_token_node) ; if (((ats_sum_ptr_type)tmp195)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 10085(line=438, offs=5) -- 10152(line=441, offs=23)") ; } tmp196 = ats_caselptrlab_mac(anairiats_sum_15, tmp195, atslab_1) ; /* tmp197 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ef0loat(")) ; /* tmp198 = */ atspre_fprint_string (arg0, tmp196) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp159)->tag != 11) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; tmp200 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp199), atslab_token_node) ; if (((ats_sum_ptr_type)tmp200)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 10282(line=447, offs=5) -- 10312(line=447, offs=35)") ; } tmp201 = ats_caselptrlab_mac(anairiats_sum_0, tmp200, atslab_0) ; /* tmp202 = */ atspre_fprint_string (arg0, ATSstrcst("D2Es0tring(")) ; /* tmp203 = */ atspre_fprint_string (arg0, tmp201) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp159)->tag != 15) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp205 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ecstsp(")) ; /* tmp206 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp (arg0, tmp204) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp159)->tag != 16) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp208 = */ atspre_fprint_string (arg0, ATSstrcst("D2Etyrep(")) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp207) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp159)->tag != 17) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp211 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eliteral(")) ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp210) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp159)->tag != 12) { goto __ats_lab_53_0 ; } __ats_lab_52_1: /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("D2Etop()")) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp159)->tag != 13) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp214 = */ atspre_fprint_string (arg0, ATSstrcst("D2Etop2(")) ; /* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp213) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp159)->tag != 14) { goto __ats_lab_55_0 ; } __ats_lab_54_1: /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eempty()")) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp159)->tag != 18) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp217 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp218 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eextval(")) ; /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp216) ; /* tmp220 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp221 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp222 = */ atspre_fprint_string (arg0, tmp217) ; /* tmp223 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp159)->tag != 19) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_16, tmp159, atslab_0) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_16, tmp159, atslab_1) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_16, tmp159, atslab_2) ; /* tmp227 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eextfcall(")) ; /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp224) ; /* tmp229 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp230 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp231 = */ atspre_fprint_string (arg0, tmp225) ; /* tmp232 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp233 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp226) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp159)->tag != 20) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_0) ; tmp236 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_1) ; tmp237 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_2) ; tmp238 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_3) ; /* tmp239 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eextmcall(")) ; /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp235) ; /* tmp241 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp236) ; /* tmp243 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp244 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp245 = */ atspre_fprint_string (arg0, tmp237) ; /* tmp246 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp247 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp238) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp159)->tag != 65) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_8, tmp159, atslab_0) ; /* tmp250 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eloopexn(")) ; /* tmp251 = */ atspre_fprint_int (arg0, tmp249) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp159)->tag != 21) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp252 = ats_caselptrlab_mac(anairiats_sum_18, tmp159, atslab_0) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_18, tmp159, atslab_2) ; tmp254 = ats_caselptrlab_mac(anairiats_sum_18, tmp159, atslab_3) ; tmp255 = ats_caselptrlab_mac(anairiats_sum_18, tmp159, atslab_5) ; /* tmp256 = */ atspre_fprint_string (arg0, ATSstrcst("D2Econ(")) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp252) ; /* tmp258 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp259 = */ fprintlst_01696_ats_ptr_type (arg0, tmp253, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparg) ; /* tmp260 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp261 = */ atspre_fprint_int (arg0, tmp254) ; /* tmp262 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp263 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp255) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp159)->tag != 22) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp264 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp265 = */ atspre_fprint_string (arg0, ATSstrcst("D2Esym(")) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2sym (arg0, tmp264) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp159)->tag != 23) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp268 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp269 = */ atspre_fprint_string (arg0, ATSstrcst("D2Efoldat(")) ; /* tmp270 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparglst (arg0, tmp267) ; /* tmp271 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp268) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp159)->tag != 24) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp273 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp274 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp275 = */ atspre_fprint_string (arg0, ATSstrcst("D2Efreeat(")) ; /* tmp276 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparglst (arg0, tmp273) ; /* tmp277 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp274) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp159)->tag != 25) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp279 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp280 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp281 = */ atspre_fprint_string (arg0, ATSstrcst("D2Etmpid(")) ; /* tmp282 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp279) ; /* tmp283 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst (arg0, tmp280) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp159)->tag != 26) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp285 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp286 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp287 = */ atspre_fprint_string (arg0, ATSstrcst("D2Elet(\n")) ; /* tmp288 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2eclist (arg0, tmp285) ; /* tmp289 = */ atspre_fprint_string (arg0, ATSstrcst("\n>>in-of-let<<\n")) ; /* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp286) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp159)->tag != 27) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp291 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp292 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp293 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ewhere(")) ; /* tmp294 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp291) ; /* tmp295 = */ atspre_fprint_string (arg0, ATSstrcst(";\n")) ; /* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2eclist (arg0, tmp292) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp159)->tag != 28) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp297 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp298 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp299 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eapplst(")) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp297) ; /* tmp301 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp302 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparglst (arg0, tmp298) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp159)->tag != 29) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp303 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_1) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_2) ; tmp305 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_3) ; /* tmp306 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eifhead(")) ; /* tmp307 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp303) ; /* tmp308 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp309 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp304) ; /* tmp310 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp311 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2expopt (arg0, tmp305) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp159)->tag != 30) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp312 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_1) ; tmp313 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_2) ; tmp314 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_3) ; /* tmp315 = */ atspre_fprint_string (arg0, ATSstrcst("D2Esifhead(")) ; /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp312) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp318 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp313) ; /* tmp319 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp314) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp159)->tag != 31) { goto __ats_lab_70_0 ; } __ats_lab_69_1: /* tmp321 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eifcasehd(")) ; /* tmp322 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp159)->tag != 32) { goto __ats_lab_71_0 ; } __ats_lab_70_1: /* tmp323 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ecasehead(")) ; /* tmp324 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp159)->tag != 33) { goto __ats_lab_72_0 ; } __ats_lab_71_1: /* tmp325 = */ atspre_fprint_string (arg0, ATSstrcst("D2Escasehead(")) ; /* tmp326 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp159)->tag != 34) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp327 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp328 = */ atspre_fprint_string (arg0, ATSstrcst("D2Esing(")) ; /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp327) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp159)->tag != 35) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp330 = ats_caselptrlab_mac(anairiats_sum_11, tmp159, atslab_0) ; tmp331 = ats_caselptrlab_mac(anairiats_sum_11, tmp159, atslab_1) ; /* tmp332 = */ atspre_fprint_string (arg0, ATSstrcst("D2Elist(")) ; /* tmp333 = */ atspre_fprint_int (arg0, tmp330) ; /* tmp334 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp331) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp159)->tag != 36) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp336 = ats_caselptrlab_mac(anairiats_sum_19, tmp159, atslab_1) ; tmp337 = ats_caselptrlab_mac(anairiats_sum_19, tmp159, atslab_2) ; /* tmp338 = */ atspre_fprint_string (arg0, ATSstrcst("D2Elst(")) ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt (arg0, tmp336) ; /* tmp340 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp337) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp159)->tag != 37) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp342 = ats_caselptrlab_mac(anairiats_sum_12, tmp159, atslab_0) ; tmp343 = ats_caselptrlab_mac(anairiats_sum_12, tmp159, atslab_1) ; tmp344 = ats_caselptrlab_mac(anairiats_sum_12, tmp159, atslab_2) ; /* tmp345 = */ atspre_fprint_string (arg0, ATSstrcst("D2Etup(knd=")) ; /* tmp346 = */ atspre_fprint_int (arg0, tmp342) ; /* tmp347 = */ atspre_fprint_string (arg0, ATSstrcst("; npf=")) ; /* tmp348 = */ atspre_fprint_int (arg0, tmp343) ; /* tmp349 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp344) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp159)->tag != 38) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp351 = ats_caselptrlab_mac(anairiats_sum_12, tmp159, atslab_0) ; tmp352 = ats_caselptrlab_mac(anairiats_sum_12, tmp159, atslab_1) ; tmp353 = ats_caselptrlab_mac(anairiats_sum_12, tmp159, atslab_2) ; /* tmp354 = */ atspre_fprint_string (arg0, ATSstrcst("D2Erec(knd=")) ; /* tmp355 = */ atspre_fprint_int (arg0, tmp351) ; /* tmp356 = */ atspre_fprint_string (arg0, ATSstrcst("; npf=")) ; /* tmp357 = */ atspre_fprint_int (arg0, tmp352) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp359 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2explst (arg0, tmp353) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp159)->tag != 39) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp360 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp361 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eseq(")) ; /* tmp362 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp360) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp159)->tag != 49) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp363 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp364 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eraise(")) ; /* tmp365 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp363) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp159)->tag != 50) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp366 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp367 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp368 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eeffmask(")) ; /* tmp369 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (arg0, tmp366) ; /* tmp370 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp371 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp367) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp159)->tag != 51) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp372 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp373 = */ atspre_fprint_string (arg0, ATSstrcst("D2Evararg(")) ; /* tmp374 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp372) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp159)->tag != 52) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp375 = ats_caselptrlab_mac(anairiats_sum_11, tmp159, atslab_0) ; tmp376 = ats_caselptrlab_mac(anairiats_sum_11, tmp159, atslab_1) ; /* tmp377 = */ atspre_fprint_string (arg0, ATSstrcst("D2Evcopyenv(")) ; /* tmp378 = */ atspre_fprint_int (arg0, tmp375) ; /* tmp379 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp376) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp159)->tag != 53) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp381 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp382 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eshowtype(")) ; /* tmp383 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp381) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp159)->tag != 54) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp384 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp385 = */ atspre_fprint_string (arg0, ATSstrcst("D2Etempenver(")) ; /* tmp386 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst (arg0, tmp384) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp159)->tag != 40) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp387 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp388 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp389 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eselab(")) ; /* tmp390 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp387) ; /* tmp391 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp392 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lablst (arg0, tmp388) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp159)->tag != 41) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp393 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp394 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eptrof(")) ; /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp393) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp159)->tag != 42) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp396 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp397 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eviewat(")) ; /* tmp398 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp396) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp159)->tag != 43) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp399 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp400 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ederef(")) ; /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp399) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp159)->tag != 44) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp402 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp403 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp404 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eassgn(")) ; /* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp402) ; /* tmp406 = */ atspre_fprint_string (arg0, ATSstrcst(" := ")) ; /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp403) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp159)->tag != 45) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp408 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp409 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp410 = */ atspre_fprint_string (arg0, ATSstrcst("D2Exchng(")) ; /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp408) ; /* tmp412 = */ atspre_fprint_string (arg0, ATSstrcst(" :=: ")) ; /* tmp413 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp409) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp159)->tag != 46) { goto __ats_lab_91_0 ; } __ats_lab_90_1: /* tmp414 = */ atspre_fprint_string (arg0, ATSstrcst("D2Earrsub(")) ; /* tmp415 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp159)->tag != 47) { goto __ats_lab_92_0 ; } __ats_lab_91_1: /* tmp416 = */ atspre_fprint_string (arg0, ATSstrcst("D2Earrpsz(")) ; /* tmp417 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp159)->tag != 48) { goto __ats_lab_93_0 ; } __ats_lab_92_1: /* tmp418 = */ atspre_fprint_string (arg0, ATSstrcst("D2Earrinit(")) ; /* tmp419 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp159)->tag != 55) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp420 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp421 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp422 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eexist(")) ; /* tmp423 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparg (arg0, tmp420) ; /* tmp424 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp425 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp421) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp159)->tag != 56) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp426 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_0) ; tmp427 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_1) ; tmp428 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_2) ; tmp429 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_3) ; /* tmp430 = */ atspre_fprint_string (arg0, ATSstrcst("D2Elam_dyn(")) ; /* tmp431 = */ atspre_fprint_int (arg0, tmp426) ; /* tmp432 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp433 = */ atspre_fprint_int (arg0, tmp427) ; /* tmp434 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp435 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst (arg0, tmp428) ; /* tmp436 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp437 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp429) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp159)->tag != 57) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp438 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_0) ; tmp439 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_1) ; tmp440 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_2) ; tmp441 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_3) ; /* tmp442 = */ atspre_fprint_string (arg0, ATSstrcst("D2Elaminit_dyn(")) ; /* tmp443 = */ atspre_fprint_int (arg0, tmp438) ; /* tmp444 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp445 = */ atspre_fprint_int (arg0, tmp439) ; /* tmp446 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp447 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_p2atlst (arg0, tmp440) ; /* tmp448 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp449 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp441) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp159)->tag != 58) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp450 = ats_caselptrlab_mac(anairiats_sum_16, tmp159, atslab_0) ; tmp451 = ats_caselptrlab_mac(anairiats_sum_16, tmp159, atslab_1) ; tmp452 = ats_caselptrlab_mac(anairiats_sum_16, tmp159, atslab_2) ; /* tmp453 = */ atspre_fprint_string (arg0, ATSstrcst("D2Elam_sta(")) ; /* tmp454 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp450) ; /* tmp455 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp456 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp451) ; /* tmp457 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp458 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp452) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp159)->tag != 59) { goto __ats_lab_98_0 ; } __ats_lab_97_1: /* tmp459 = */ atspre_fprint_string (arg0, ATSstrcst("D2Elam_met(")) ; /* tmp460 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp159)->tag != 60) { goto __ats_lab_99_0 ; } __ats_lab_98_1: /* tmp461 = */ atspre_fprint_string (arg0, ATSstrcst("D2Efix(")) ; /* tmp462 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp159)->tag != 61) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp463 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp464 = */ atspre_fprint_string (arg0, ATSstrcst("D2Edelay(")) ; /* tmp465 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp463) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp159)->tag != 62) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp466 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp467 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp468 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eldelay(")) ; /* tmp469 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp466) ; /* tmp470 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp471 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2expopt (arg0, tmp467) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp159)->tag != 63) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp472 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_0) ; tmp473 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_1) ; tmp474 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_2) ; tmp475 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_3) ; tmp476 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_4) ; /* tmp477 = */ atspre_fprint_string (arg0, ATSstrcst("D2Efor(")) ; /* tmp478 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_loopi2nv (arg0, tmp472) ; /* tmp479 = */ atspre_fprint_string (arg0, ATSstrcst("; init=")) ; /* tmp480 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp473) ; /* tmp481 = */ atspre_fprint_string (arg0, ATSstrcst("; test=")) ; /* tmp482 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp474) ; /* tmp483 = */ atspre_fprint_string (arg0, ATSstrcst("; post=")) ; /* tmp484 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp475) ; /* tmp485 = */ atspre_fprint_string (arg0, ATSstrcst("; body=")) ; /* tmp486 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp476) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp159)->tag != 64) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp487 = ats_caselptrlab_mac(anairiats_sum_16, tmp159, atslab_0) ; tmp488 = ats_caselptrlab_mac(anairiats_sum_16, tmp159, atslab_1) ; tmp489 = ats_caselptrlab_mac(anairiats_sum_16, tmp159, atslab_2) ; /* tmp490 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ewhile(")) ; /* tmp491 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_loopi2nv (arg0, tmp487) ; /* tmp492 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp493 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp488) ; /* tmp494 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp495 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp489) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp159)->tag != 66) { goto __ats_lab_104_0 ; } __ats_lab_103_1: /* tmp496 = */ atspre_fprint_string (arg0, ATSstrcst("D2Etrywith(")) ; /* tmp497 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp159)->tag != 67) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp498 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp499 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp500 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eann_type(")) ; /* tmp501 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp498) ; /* tmp502 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp503 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp499) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp159)->tag != 68) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp504 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp505 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp506 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eann_seff(")) ; /* tmp507 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp504) ; /* tmp508 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp509 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (arg0, tmp505) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp159)->tag != 69) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp510 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp511 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp512 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eann_funclo(")) ; /* tmp513 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp510) ; /* tmp514 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp515 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo (arg0, tmp511) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp159)->tag != 70) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp516 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp517 = */ atspre_fprint_string (arg0, ATSstrcst("D2Emac(")) ; /* tmp518 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2mac (arg0, tmp516) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp159)->tag != 71) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp519 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp520 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp521 = */ atspre_fprint_string (arg0, ATSstrcst("D2Emacsyn(")) ; /* tmp522 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind (arg0, tmp519) ; /* tmp523 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp524 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp520) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp159)->tag != 72) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp525 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_0) ; tmp526 = ats_caselptrlab_mac(anairiats_sum_1, tmp159, atslab_1) ; /* tmp527 = */ atspre_fprint_string (arg0, ATSstrcst("D2Emacfun(")) ; /* tmp528 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp525) ; /* tmp529 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp530 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp526) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp159)->tag != 73) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp531 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp532 = */ atspre_fprint_string (arg0, ATSstrcst("D2Esolassert(")) ; /* tmp533 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp531) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp159)->tag != 74) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp534 = ats_caselptrlab_mac(anairiats_sum_0, tmp159, atslab_0) ; /* tmp535 = */ atspre_fprint_string (arg0, ATSstrcst("D2Esolverify(")) ; /* tmp536 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp534) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: // if (((ats_sum_ptr_type)tmp159)->tag != 75) { ats_deadcode_failure_handle () ; } __ats_lab_112_1: /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("D2Eerr()")) ; break ; } while (0) ; return /* (tmp158) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 21867(line=909, offs=13) -- 21901(line=909, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp537) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2exp: /* tmp537 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (stdout, arg0) ; return /* (tmp537) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 21924(line=911, offs=13) -- 21958(line=911, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp538) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp: /* tmp538 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (stderr, arg0) ; return /* (tmp538) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 22007(line=916, offs=17) -- 22064(line=917, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp539) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst: /* tmp539 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp) ; return /* (tmp539) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 22143(line=924, offs=3) -- 22422(line=935, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2expopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; // ATSlocal_void (tmp542) ; // ATSlocal_void (tmp543) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2expopt: do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp541 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; /* tmp542 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp543 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp541) ; /* tmp540 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: /* tmp540 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; } while (0) ; return /* (tmp540) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2expopt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 22501(line=941, offs=3) -- 22654(line=946, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; // ATSlocal_void (tmp547) ; // ATSlocal_void (tmp548) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2exp: tmp545 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp546 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp547 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab (arg0, tmp545) ; /* tmp548 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp546) ; return /* (tmp544) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 22713(line=949, offs=20) -- 22773(line=950, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp549) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2explst: /* tmp549 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2exp) ; return /* (tmp549) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_labd2explst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 22855(line=957, offs=3) -- 23295(line=979, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; // ATSlocal_void (tmp552) ; // ATSlocal_void (tmp553) ; ATSlocal (ats_int_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; // ATSlocal_void (tmp556) ; // ATSlocal_void (tmp557) ; // ATSlocal_void (tmp558) ; // ATSlocal_void (tmp559) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparg: do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp551 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; /* tmp552 = */ atspre_fprint_string (arg0, ATSstrcst("D2EXPARGsta(")) ; /* tmp553 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparglst (arg0, tmp551) ; /* tmp550 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: tmp554 = ats_caselptrlab_mac(anairiats_sum_19, arg1, atslab_0) ; tmp555 = ats_caselptrlab_mac(anairiats_sum_19, arg1, atslab_2) ; /* tmp556 = */ atspre_fprint_string (arg0, ATSstrcst("D2EXPARGdyn(")) ; /* tmp557 = */ atspre_fprint_int (arg0, tmp554) ; /* tmp558 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp559 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2explst (arg0, tmp555) ; /* tmp550 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp550) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 23354(line=982, offs=20) -- 23414(line=983, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp560) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparglst: /* tmp560 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparg) ; return /* (tmp560) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exparglst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 23493(line=990, offs=3) -- 23895(line=1008, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; // ATSlocal_void (tmp564) ; // ATSlocal_void (tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; // ATSlocal_void (tmp567) ; // ATSlocal_void (tmp568) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lab: tmp562 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg1), atslab_d2lab_node) ; do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp562)->tag != 0) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp563 = ats_caselptrlab_mac(anairiats_sum_0, tmp562, atslab_0) ; /* tmp564 = */ atspre_fprint_string (arg0, ATSstrcst("D2LABlab(")) ; /* tmp565 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp563) ; /* tmp561 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: // if (((ats_sum_ptr_type)tmp562)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_118_1: tmp566 = ats_caselptrlab_mac(anairiats_sum_0, tmp562, atslab_0) ; /* tmp567 = */ atspre_fprint_string (arg0, ATSstrcst("D2LABind(")) ; /* tmp568 = */ fprintlst_01696_ats_ptr_type (arg0, tmp566, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp) ; /* tmp561 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp561) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 23948(line=1011, offs=17) -- 24005(line=1012, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lablst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp569) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lablst: /* tmp569 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lab) ; return /* (tmp569) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lablst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 24138(line=1023, offs=3) -- 24426(line=1039, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__fprint_i2nvarg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; // ATSlocal_void (tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; // ATSlocal_void (tmp575) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__fprint_i2nvarg: tmp571 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg1), atslab_i2nvarg_var) ; tmp572 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg1), atslab_i2nvarg_type) ; /* tmp573 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp571) ; do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (tmp572 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp574 = ats_caselptrlab_mac(anairiats_sum_5, tmp572, atslab_0) ; /* tmp575 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp570 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp574) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: // if (tmp572 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_120_1: break ; } while (0) ; return /* (tmp570) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__fprint_i2nvarg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 24485(line=1043, offs=3) -- 24548(line=1044, offs=50) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvarglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp576) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvarglst: /* tmp576 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__fprint_i2nvarg) ; return /* (tmp576) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvarglst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 24612(line=1049, offs=3) -- 24988(line=1061, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvresstate (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp577) ; // ATSlocal_void (tmp578) ; // ATSlocal_void (tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; // ATSlocal_void (tmp581) ; // ATSlocal_void (tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; // ATSlocal_void (tmp584) ; // ATSlocal_void (tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; // ATSlocal_void (tmp587) ; // ATSlocal_void (tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvresstate: /* tmp578 = */ atspre_fprint_string (arg0, ATSstrcst("i2nvresstate(svs=")) ; tmp580 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg1), atslab_i2nvresstate_svs) ; /* tmp579 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp580) ; /* tmp581 = */ atspre_fprint_string (arg0, ATSstrcst("; gua=")) ; tmp583 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg1), atslab_i2nvresstate_gua) ; /* tmp582 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp583) ; /* tmp584 = */ atspre_fprint_string (arg0, ATSstrcst("; met=")) ; tmp586 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg1), atslab_i2nvresstate_met) ; /* tmp585 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstopt (arg0, tmp586) ; /* tmp587 = */ atspre_fprint_string (arg0, ATSstrcst("; state=")) ; tmp589 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg1), atslab_i2nvresstate_arg) ; /* tmp588 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvarglst (arg0, tmp589) ; /* tmp577 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp577) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvresstate] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 25050(line=1065, offs=3) -- 25470(line=1079, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_loopi2nv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp590) ; // ATSlocal_void (tmp591) ; // ATSlocal_void (tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; // ATSlocal_void (tmp594) ; // ATSlocal_void (tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; // ATSlocal_void (tmp597) ; // ATSlocal_void (tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; // ATSlocal_void (tmp600) ; // ATSlocal_void (tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; // ATSlocal_void (tmp603) ; // ATSlocal_void (tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_loopi2nv: /* tmp591 = */ atspre_fprint_string (arg0, ATSstrcst("loop2inv(svs=")) ; tmp593 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_loopi2nv_svs) ; /* tmp592 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp593) ; /* tmp594 = */ atspre_fprint_string (arg0, ATSstrcst("; gua=")) ; tmp596 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_loopi2nv_gua) ; /* tmp595 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp596) ; /* tmp597 = */ atspre_fprint_string (arg0, ATSstrcst("; met=")) ; tmp599 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_loopi2nv_met) ; /* tmp598 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstopt (arg0, tmp599) ; /* tmp600 = */ atspre_fprint_string (arg0, ATSstrcst("; state=")) ; tmp602 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_loopi2nv_arg) ; /* tmp601 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvarglst (arg0, tmp602) ; /* tmp603 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; tmp605 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_loopi2nv_res) ; /* tmp604 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_i2nvresstate (arg0, tmp605) ; /* tmp590 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp590) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_loopi2nv] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 25547(line=1085, offs=3) -- 25581(line=1085, offs=37) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2ecl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp606) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2ecl: /* tmp606 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2ecl (stdout, arg0) ; return /* (tmp606) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2ecl] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 25606(line=1088, offs=3) -- 25640(line=1088, offs=37) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2ecl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp607) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2ecl: /* tmp607 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2ecl (stderr, arg0) ; return /* (tmp607) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2ecl] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 25669(line=1092, offs=3) -- 29539(line=1253, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2ecl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; // ATSlocal_void (tmp611) ; // ATSlocal_void (tmp612) ; ATSlocal (ats_ptr_type, tmp613) ; ATSlocal (ats_int_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; // ATSlocal_void (tmp616) ; // ATSlocal_void (tmp617) ; // ATSlocal_void (tmp618) ; // ATSlocal_void (tmp619) ; // ATSlocal_void (tmp620) ; // ATSlocal_void (tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; // ATSlocal_void (tmp624) ; // ATSlocal_void (tmp625) ; ATSlocal (ats_int_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; // ATSlocal_void (tmp628) ; // ATSlocal_void (tmp629) ; // ATSlocal_void (tmp630) ; // ATSlocal_void (tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; // ATSlocal_void (tmp634) ; // ATSlocal_void (tmp635) ; // ATSlocal_void (tmp636) ; // ATSlocal_void (tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; ATSlocal (ats_ptr_type, tmp639) ; // ATSlocal_void (tmp640) ; // ATSlocal_void (tmp641) ; // ATSlocal_void (tmp642) ; // ATSlocal_void (tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; // ATSlocal_void (tmp645) ; // ATSlocal_void (tmp646) ; ATSlocal (ats_int_type, tmp647) ; ATSlocal (ats_ptr_type, tmp648) ; // ATSlocal_void (tmp649) ; // ATSlocal_void (tmp650) ; // ATSlocal_void (tmp651) ; // ATSlocal_void (tmp652) ; ATSlocal (ats_int_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; // ATSlocal_void (tmp655) ; // ATSlocal_void (tmp656) ; // ATSlocal_void (tmp657) ; // ATSlocal_void (tmp658) ; ATSlocal (ats_int_type, tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; // ATSlocal_void (tmp662) ; // ATSlocal_void (tmp663) ; // ATSlocal_void (tmp664) ; // ATSlocal_void (tmp665) ; // ATSlocal_void (tmp666) ; // ATSlocal_void (tmp667) ; // ATSlocal_void (tmp668) ; // ATSlocal_void (tmp669) ; // ATSlocal_void (tmp670) ; // ATSlocal_void (tmp671) ; // ATSlocal_void (tmp672) ; // ATSlocal_void (tmp673) ; // ATSlocal_void (tmp674) ; // ATSlocal_void (tmp675) ; // ATSlocal_void (tmp676) ; // ATSlocal_void (tmp677) ; // ATSlocal_void (tmp678) ; // ATSlocal_void (tmp679) ; ATSlocal (ats_int_type, tmp680) ; // ATSlocal_void (tmp681) ; // ATSlocal_void (tmp682) ; // ATSlocal_void (tmp683) ; // ATSlocal_void (tmp684) ; // ATSlocal_void (tmp685) ; // ATSlocal_void (tmp686) ; // ATSlocal_void (tmp687) ; // ATSlocal_void (tmp688) ; // ATSlocal_void (tmp689) ; // ATSlocal_void (tmp690) ; // ATSlocal_void (tmp691) ; // ATSlocal_void (tmp692) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2ecl: tmp609 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg1), atslab_d2ecl_node) ; do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp609)->tag != 0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cnone()")) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp609)->tag != 1) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp610 = ats_caselptrlab_mac(anairiats_sum_0, tmp609, atslab_0) ; /* tmp611 = */ atspre_fprint_string (arg0, ATSstrcst("D2Clist(\n")) ; /* tmp612 = */ fprintlst_01696_ats_ptr_type (arg0, tmp610, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2ecl) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp609)->tag != 4) { goto __ats_lab_126_0 ; } __ats_lab_123_1: tmp613 = ats_caselptrlab_mac(anairiats_sum_27, tmp609, atslab_0) ; tmp614 = ats_caselptrlab_mac(anairiats_sum_27, tmp609, atslab_1) ; tmp615 = ats_caselptrlab_mac(anairiats_sum_27, tmp609, atslab_2) ; /* tmp616 = */ atspre_fprint_string (arg0, ATSstrcst("D2Coverload(")) ; /* tmp617 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (arg0, tmp613) ; /* tmp618 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp619 = */ atspre_fprint_int (arg0, tmp614) ; /* tmp620 = */ atspre_fprint_string (arg0, ATSstrcst("); ")) ; do { /* branch: __ats_lab_124 */ __ats_lab_124_0: if (tmp615 == (ats_sum_ptr_type)0) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp622 = ats_caselptrlab_mac(anairiats_sum_5, tmp615, atslab_0) ; /* tmp621 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm (arg0, tmp622) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: // if (tmp615 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_125_1: /* tmp621 = */ atspre_fprint_string (arg0, ATSstrcst("*ERROR*")) ; break ; } while (0) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp609)->tag != 7) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp623 = ats_caselptrlab_mac(anairiats_sum_0, tmp609, atslab_0) ; /* tmp624 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cstacsts(")) ; /* tmp625 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (arg0, tmp623) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp609)->tag != 8) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp626 = ats_caselptrlab_mac(anairiats_sum_11, tmp609, atslab_0) ; tmp627 = ats_caselptrlab_mac(anairiats_sum_11, tmp609, atslab_1) ; /* tmp628 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cstacons(")) ; /* tmp629 = */ atspre_fprint_int (arg0, tmp626) ; /* tmp630 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp631 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (arg0, tmp627) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp609)->tag != 11) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp632 = ats_caselptrlab_mac(anairiats_sum_1, tmp609, atslab_0) ; tmp633 = ats_caselptrlab_mac(anairiats_sum_1, tmp609, atslab_1) ; /* tmp634 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cextype(")) ; /* tmp635 = */ atspre_fprint_string (arg0, tmp632) ; /* tmp636 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp637 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp633) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp609)->tag != 12) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp638 = ats_caselptrlab_mac(anairiats_sum_1, tmp609, atslab_0) ; tmp639 = ats_caselptrlab_mac(anairiats_sum_1, tmp609, atslab_1) ; /* tmp640 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cextvar(")) ; /* tmp641 = */ atspre_fprint_string (arg0, tmp638) ; /* tmp642 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp643 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp639) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp609)->tag != 13) { goto __ats_lab_131_0 ; } __ats_lab_130_1: /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cextcode(...)")) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp609)->tag != 5) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp644 = ats_caselptrlab_mac(anairiats_sum_0, tmp609, atslab_0) ; /* tmp645 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cpragma(")) ; /* tmp646 = */ fprintlst_01696_ats_ptr_type (arg0, tmp644, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp609)->tag != 6) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp647 = ats_caselptrlab_mac(anairiats_sum_11, tmp609, atslab_0) ; tmp648 = ats_caselptrlab_mac(anairiats_sum_11, tmp609, atslab_1) ; /* tmp649 = */ atspre_fprint_string (arg0, ATSstrcst("D2Ccodegen(")) ; /* tmp650 = */ atspre_fprint_int (arg0, tmp647) ; /* tmp651 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp652 = */ fprintlst_01696_ats_ptr_type (arg0, tmp648, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp609)->tag != 14) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp653 = ats_caselptrlab_mac(anairiats_sum_11, tmp609, atslab_0) ; tmp654 = ats_caselptrlab_mac(anairiats_sum_11, tmp609, atslab_1) ; /* tmp655 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cdatdecs(")) ; /* tmp656 = */ atspre_fprint_int (arg0, tmp653) ; /* tmp657 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp658 = */ fprintlst_01696_ats_ptr_type (arg0, tmp654, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp609)->tag != 16) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp659 = ats_caselptrlab_mac(anairiats_sum_19, tmp609, atslab_0) ; tmp660 = ats_caselptrlab_mac(anairiats_sum_19, tmp609, atslab_1) ; tmp661 = ats_caselptrlab_mac(anairiats_sum_19, tmp609, atslab_2) ; /* tmp662 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cdcstdecs(")) ; /* tmp663 = */ atspre_fprint_int (arg0, tmp659) ; /* tmp664 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp665 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_dcstkind (arg0, tmp660) ; /* tmp666 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp667 = */ fprintlst_01696_ats_ptr_type (arg0, tmp661, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp609)->tag != 17) { goto __ats_lab_136_0 ; } __ats_lab_135_1: /* tmp668 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cimpdec(\n")) ; /* tmp669 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp609)->tag != 18) { goto __ats_lab_137_0 ; } __ats_lab_136_1: /* tmp670 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cfundecs(\n")) ; /* tmp671 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp609)->tag != 19) { goto __ats_lab_138_0 ; } __ats_lab_137_1: /* tmp672 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cvaldecs(\n")) ; /* tmp673 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp609)->tag != 20) { goto __ats_lab_139_0 ; } __ats_lab_138_1: /* tmp674 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cvaldecs_rec(\n")) ; /* tmp675 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp609)->tag != 21) { goto __ats_lab_140_0 ; } __ats_lab_139_1: /* tmp676 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cvardecs(\n")) ; /* tmp677 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)tmp609)->tag != 22) { goto __ats_lab_141_0 ; } __ats_lab_140_1: /* tmp678 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cprvardecs(\n")) ; /* tmp679 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp609)->tag != 23) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp680 = ats_caselptrlab_mac(anairiats_sum_11, tmp609, atslab_0) ; /* tmp681 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cinclude(")) ; /* tmp682 = */ atspre_fprint_int (arg0, tmp680) ; /* tmp683 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp684 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp609)->tag != 24) { goto __ats_lab_143_0 ; } __ats_lab_142_1: /* tmp685 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cstaload(\n")) ; /* tmp686 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp609)->tag != 25) { goto __ats_lab_144_0 ; } __ats_lab_143_1: /* tmp687 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cstaloadloc(\n")) ; /* tmp688 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp609)->tag != 26) { goto __ats_lab_145_0 ; } __ats_lab_144_1: /* tmp689 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cdynload(\n")) ; /* tmp690 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp609)->tag != 27) { goto __ats_lab_146_0 ; } __ats_lab_145_1: /* tmp691 = */ atspre_fprint_string (arg0, ATSstrcst("D2Clocal(\n")) ; /* tmp692 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp609)->tag != 28) { goto __ats_lab_147_0 ; } __ats_lab_146_1: /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("D2Cerrdec()")) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: __ats_lab_147_1: /* tmp608 = */ atspre_fprint_string (arg0, ATSstrcst("D2C...(...)")) ; break ; } while (0) ; return /* (tmp608) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2ecl] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 29596(line=1257, offs=3) -- 29657(line=1258, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2eclist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp693) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2eclist: /* tmp693 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2ecl) ; return /* (tmp693) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2eclist] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 29708(line=1264, offs=3) -- 30875(line=1316, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lval (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; // ATSlocal_void (tmp697) ; // ATSlocal_void (tmp698) ; // ATSlocal_void (tmp699) ; // ATSlocal_void (tmp700) ; ATSlocal (ats_ptr_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; // ATSlocal_void (tmp703) ; // ATSlocal_void (tmp704) ; // ATSlocal_void (tmp705) ; // ATSlocal_void (tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; ATSlocal (ats_ptr_type, tmp708) ; // ATSlocal_void (tmp709) ; // ATSlocal_void (tmp710) ; // ATSlocal_void (tmp711) ; // ATSlocal_void (tmp712) ; ATSlocal (ats_ptr_type, tmp713) ; ATSlocal (ats_ptr_type, tmp714) ; // ATSlocal_void (tmp715) ; // ATSlocal_void (tmp716) ; // ATSlocal_void (tmp717) ; // ATSlocal_void (tmp718) ; ATSlocal (ats_ptr_type, tmp719) ; // ATSlocal_void (tmp720) ; // ATSlocal_void (tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; // ATSlocal_void (tmp723) ; // ATSlocal_void (tmp724) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lval: do { /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp695 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp696 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; /* tmp697 = */ atspre_fprint_string (arg0, ATSstrcst("D2LVALderef(")) ; /* tmp698 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp695) ; /* tmp699 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp700 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lablst (arg0, tmp696) ; /* tmp694 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp701 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp702 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; /* tmp703 = */ atspre_fprint_string (arg0, ATSstrcst("D2LVALvar_lin(")) ; /* tmp704 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp701) ; /* tmp705 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp706 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lablst (arg0, tmp702) ; /* tmp694 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp707 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp708 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; /* tmp709 = */ atspre_fprint_string (arg0, ATSstrcst("D2LVALvar_mul(")) ; /* tmp710 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp707) ; /* tmp711 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp712 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lablst (arg0, tmp708) ; /* tmp694 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp713 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_1) ; tmp714 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_3) ; /* tmp715 = */ atspre_fprint_string (arg0, ATSstrcst("D2LVALarrsub(")) ; /* tmp716 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp713) ; /* tmp717 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp718 = */ fprintlst_01696_ats_ptr_type (arg0, tmp714, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp) ; /* tmp694 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp719 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp720 = */ atspre_fprint_string (arg0, ATSstrcst("D2LVALviewat(")) ; /* tmp721 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp719) ; /* tmp694 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: // if (((ats_sum_ptr_type)arg1)->tag != 5) { ats_deadcode_failure_handle () ; } __ats_lab_153_1: tmp722 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp723 = */ atspre_fprint_string (arg0, ATSstrcst("D2LVALnone(")) ; /* tmp724 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2exp (arg0, tmp722) ; /* tmp694 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp694) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lval] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 30949(line=1321, offs=14) -- 30984(line=1321, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2lval (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp725) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2lval: /* tmp725 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lval (stdout, arg0) ; return /* (tmp725) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2lval] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_print.dats: 31008(line=1323, offs=14) -- 31043(line=1323, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2lval (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp726) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2lval: /* tmp726 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2lval (stderr, arg0) ; return /* (tmp726) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2lval] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp2_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_tmplab_dats.c0000644000175000017500000003614513431250607023176 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_tmplab_loc ; ats_int_type atslab_tmplab_stamp ; } anairiats_rec_0 ; /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmplab_stamp_make) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_stamp) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__tmplab_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmplab.dats: 1851(line=68, offs=13) -- 1954(line=72, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmplab_stamp_make () ; tmp0 = ATS_MALLOC(sizeof(anairiats_rec_0)) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmplab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmplab_stamp, tmp1) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmplab.dats: 2005(line=75, offs=16) -- 2025(line=75, offs=36) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_loc: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmplab_loc) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmplab.dats: 2053(line=77, offs=18) -- 2075(line=77, offs=40) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_stamp: tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmplab_stamp) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmplab.dats: 2145(line=84, offs=15) -- 2318(line=90, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp4) ; ATSlocal (ats_int_type, tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_get_stamp (arg1) ; /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("tmplab(")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp5) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp4) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_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_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_tmplab_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/0000755000175000017500000000000013431250607017757 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_array_dats.c0000644000175000017500000003553413431250607023101 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ #include "prelude/CATS/array.cats" /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_2 ; ats_size_type atslab_3 ; } anairiats_rec_1 ; /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK 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_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__sasp__array_viewt0ype_int_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_1 (ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3, ats_size_type arg4, ats_ptr_type arg5) ; static ats_void_type loop_3 (ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ref_type arg3, ats_size_type arg4, ats_ptr_type arg5) ; static ats_void_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_ptr_type arg4) ; static ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_size_type arg4, ats_ptr_type arg5) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 6600(line=234, offs=7) -- 7239(line=251, offs=8) */ ATSstaticdec() ats_void_type loop_1 (ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3, ats_size_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_bool_type, tmp2) ; // ATSlocal_void (tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_size_type, tmp5) ; __ats_lab_loop_1: tmp2 = atspre_lt_size1_size1 (arg2, arg1) ; if (tmp2) { /* tmp3 = */ ((ats_void_type(*)(ats_size_type, ats_ref_type, ats_ptr_type))arg3) (arg2, arg0, arg5) ; tmp4 = atspre_padd_size (arg0, arg4) ; tmp5 = atspre_add_size1_int1 (arg2, 1) ; arg0 = tmp4 ; arg1 = arg1 ; arg2 = tmp5 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_loop_1 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp1) */ ; } /* end of [loop_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 6558(line=233, offs=3) -- 7333(line=255, offs=4) */ ATSglobaldec() ats_void_type atspre_array_ptr_initialize_funenv_tsz (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_size_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_atspre_array_ptr_initialize_funenv_tsz: /* tmp0 = */ loop_1 (arg0, arg1, 0, arg2, arg3, arg4) ; return /* (tmp0) */ ; } /* end of [atspre_array_ptr_initialize_funenv_tsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 8023(line=282, offs=7) -- 8675(line=299, offs=8) */ ATSstaticdec() ats_void_type loop_3 (ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ref_type arg3, ats_size_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp7) ; ATSlocal (ats_bool_type, tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_size_type, tmp11) ; __ats_lab_loop_3: tmp8 = atspre_lt_size1_size1 (arg2, arg1) ; if (tmp8) { /* tmp9 = */ ((ats_void_type(*)(ats_clo_ptr_type, ats_size_type, ats_ref_type, ats_ptr_type))(ats_closure_fun(arg3))) (arg3, arg2, arg0, arg5) ; tmp10 = atspre_padd_size (arg0, arg4) ; tmp11 = atspre_add_size1_int1 (arg2, 1) ; arg0 = tmp10 ; arg1 = arg1 ; arg2 = tmp11 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_loop_3 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp7) */ ; } /* end of [loop_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 7981(line=281, offs=3) -- 8769(line=303, offs=4) */ ATSglobaldec() ats_void_type atspre_array_ptr_initialize_cloenv_tsz (ats_ref_type arg0, ats_size_type arg1, ats_ref_type arg2, ats_size_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp6) ; __ats_lab_atspre_array_ptr_initialize_cloenv_tsz: /* tmp6 = */ loop_3 (arg0, arg1, 0, arg2, arg3, arg4) ; return /* (tmp6) */ ; } /* end of [atspre_array_ptr_initialize_cloenv_tsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 10828(line=379, offs=24) -- 11091(line=385, offs=4) */ ATSglobaldec() anairiats_rec_0 atspre_array_ptr_takeout2_tsz (ats_ptr_type arg0, ats_size_type arg1, ats_size_type arg2, ats_size_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_0, tmp12) ; ATSlocal (ats_size_type, tmp13) ; ATSlocal (ats_size_type, tmp14) ; ATSlocal (ats_size_type, tmp15) ; ATSlocal (ats_size_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_atspre_array_ptr_takeout2_tsz: tmp13 = atspre_mul2_size1_size1 (arg1, arg3) ; tmp14 = ats_selsin_mac(tmp13, atslab_1) ; tmp15 = atspre_mul2_size1_size1 (arg2, arg3) ; tmp16 = ats_selsin_mac(tmp15, atslab_1) ; tmp17 = atspre_padd_size (arg0, tmp14) ; tmp18 = atspre_padd_size (arg0, tmp16) ; tmp12.atslab_3 = tmp17 ; tmp12.atslab_4 = tmp18 ; return (tmp12) ; } /* end of [atspre_array_ptr_takeout2_tsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 11822(line=417, offs=10) -- 11993(line=422, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_make_arrpsz (anairiats_rec_1 arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_make_arrpsz: tmp21 = ats_select_mac(arg0, atslab_2) ; /* tmp20 = */ atspre_vbox_make_view_ptr (tmp21) ; /* tmp22 = ats_selsin_mac(tmp20, atslab_1) */ ; tmp19 = ats_select_mac(arg0, atslab_2) ; return (tmp19) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_make_arrpsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 16203(line=590, offs=7) -- 16815(line=608, offs=8) */ ATSstaticdec() ats_void_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp24) ; ATSlocal (ats_bool_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_size_type, tmp28) ; __ats_lab_loop_7: tmp25 = atspre_gt_size1_int1 (arg2, 0) ; if (tmp25) { /* tmp26 = */ ((ats_void_type(*)(ats_ref_type, ats_ptr_type))arg1) (arg0, arg4) ; tmp27 = atspre_padd_size (arg0, arg3) ; tmp28 = atspre_sub_size1_int1 (arg2, 1) ; arg0 = tmp27 ; arg1 = arg1 ; arg2 = tmp28 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_loop_7 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp24) */ ; } /* end of [loop_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 16161(line=589, offs=3) -- 16887(line=611, offs=4) */ ATSglobaldec() ats_void_type atspre_array_ptr_foreach_funenv_tsz (ats_ref_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp23) ; __ats_lab_atspre_array_ptr_foreach_funenv_tsz: /* tmp23 = */ loop_7 (arg0, arg1, arg2, arg3, arg4) ; return /* (tmp23) */ ; } /* end of [atspre_array_ptr_foreach_funenv_tsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 18160(line=663, offs=7) -- 18807(line=681, offs=8) */ ATSstaticdec() ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_size_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp30) ; ATSlocal (ats_bool_type, tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_size_type, tmp34) ; __ats_lab_loop_9: tmp31 = atspre_lt_size1_size1 (arg3, arg2) ; if (tmp31) { /* tmp32 = */ ((ats_void_type(*)(ats_size_type, ats_ref_type, ats_ptr_type))arg1) (arg3, arg0, arg5) ; tmp33 = atspre_padd_size (arg0, arg4) ; tmp34 = atspre_add_size1_int1 (arg3, 1) ; arg0 = tmp33 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp34 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_loop_9 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp30) */ ; } /* end of [loop_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 18118(line=662, offs=3) -- 18882(line=684, offs=4) */ ATSglobaldec() ats_void_type atspre_array_ptr_iforeach_funenv_tsz (ats_ref_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_size_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp29) ; __ats_lab_atspre_array_ptr_iforeach_funenv_tsz: /* tmp29 = */ loop_9 (arg0, arg1, arg2, 0, arg3, arg4) ; return /* (tmp29) */ ; } /* end of [atspre_array_ptr_iforeach_funenv_tsz] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ typedef unsigned char byte ; // // HX-2010-05-24 // In case 'memcpy' is already defined as a macro ... // #ifndef memcpy extern void *memcpy (void *dst, const void* src, size_t n) ; #endif // end of [memcpy] ats_void_type atspre_array_ptr_initialize_elt_tsz ( ats_ptr_type A , ats_size_type asz , ats_ptr_type ini , ats_size_type tsz ) { int i, itsz ; int left ; ats_ptr_type p ; if (asz == 0) return ; memcpy (A, ini, tsz) ; i = 1 ; itsz = tsz ; left = asz - i ; while (left > 0) { p = (ats_ptr_type)(((byte*)A) + itsz) ; if (left <= i) { memcpy (p, A, left * tsz) ; return ; } memcpy (p, A, itsz); i = i + i ; itsz = itsz + itsz ; left = asz - i ; } /* end of [while] */ return ; } /* end of [atspre_array_ptr_initialize_elt_tsz] */ /* ****** ****** */ /* end of [DATS_array_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_reference_dats.c0000644000175000017500000000725713431250607023722 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 2385(line=85, offs=7) -- 2462(line=87, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2reference_2esats__ref_app_fun (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2reference_2esats__ref_app_fun: tmp1 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; /* tmp0 = */ ((ats_void_type(*)(ats_ref_type))arg1) (tmp1) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2reference_2esats__ref_app_fun] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2reference_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2reference_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_reference_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_pointer_dats.c0000644000175000017500000000726213431250607023440 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ 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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1720(line=52, offs=1) -- 1771(line=52, offs=52) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2pointer_2esats__ptr_is_gtez_prfck () { /* local vardec */ // ATSlocal_void (tmp0) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2pointer_2esats__ptr_is_gtez) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2pointer_2esats__ptr_is_gtez) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2pointer_2esats__ptr_is_gtez_prfck] */ #endif /* _ATS_PROOFCHECK */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2pointer_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2pointer_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2pointer_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2pointer_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2pointer_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2pointer_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2pointer_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2pointer_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2pointer_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2pointer_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_pointer_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_option0_dats.c0000644000175000017500000000540513431250607023345 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK /* empty */ #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2option0_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2option0_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2option0_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2option0_2edats__staload_flag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2option0_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2option0_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2option0_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2option0_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_option0_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_bool_dats.c0000644000175000017500000000560113431250607022706 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK /* empty */ #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2bool_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2bool_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2bool_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2bool_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2bool_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2bool_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2bool_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2bool_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2bool_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2bool_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_bool_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/basics_sta_sats.c0000644000175000017500000000752013431250607023274 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__unit_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__box_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__box_vt_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list0_cons_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list0_nil_1) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__option0_some_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__option0_none_1) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_nil_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_cons_1) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_vt_nil_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_vt_cons_1) ; /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__unit_0.tag = 0 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__box_0.tag = 0 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__box_vt_0.tag = 0 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list0_cons_0.tag = 0 ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list0_nil_1.tag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0.tag = 0 ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1.tag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__option0_some_0.tag = 0 ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__option0_none_1.tag = 1 ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0.tag = 0 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1.tag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0.tag = 0 ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1.tag = 1 ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0.tag = 0 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1.tag = 1 ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_nil_0.tag = 0 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_cons_1.tag = 1 ; ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_vt_nil_0.tag = 0 ; // ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_vt_cons_1.tag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [basics_sta_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_list0_dats.c0000644000175000017500000000634713431250607023016 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (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_ptr_type, ListSubscriptException_make) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list0_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list0_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2list0_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2list0_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list0_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2list0_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list0_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list0_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2list0_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list0_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_list0_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_list_vt_dats.c0000644000175000017500000001414613431250607023443 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libc/CATS/stdlib.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; 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, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK 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_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 1743(line=51, offs=1) -- 1869(line=54, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () { /* local vardec */ // ATSlocal_void (tmp0) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck] */ #endif /* _ATS_PROOFCHECK */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_list_vt_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_array0_dats.c0000644000175000017500000001474513431250607023162 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_2 ; ats_size_type atslab_3 ; } anairiats_rec_0 ; /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_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_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_elt_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ArraySubscriptException_make) () ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2array0_2esats__array0_make_arrpsz) (anairiats_rec_0) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__sasp__array0_viewt0ype_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_anairiats_rec_0 (anairiats_rec_0 arg0) ; static ats_ptr_type ref_make_elt_01089_anairiats_rec_0 (anairiats_rec_0 arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_anairiats_rec_0 (anairiats_rec_0 arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (anairiats_rec_0, tmp3) ; __ats_lab_ref_01088_anairiats_rec_0: /* anairiats_rec_0 tmp3 ; */ tmp3 = arg0 ; tmp2 = atspre_ref_make_elt_tsz ((&tmp3), sizeof(anairiats_rec_0)) ; return (tmp2) ; } /* end of [ref_01088_anairiats_rec_0] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_anairiats_rec_0 (anairiats_rec_0 arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_ref_make_elt_01089_anairiats_rec_0: tmp1 = ref_01088_anairiats_rec_0 (arg0) ; return (tmp1) ; } /* end of [ref_make_elt_01089_anairiats_rec_0] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array0.dats: 1993(line=65, offs=30) -- 2018(line=65, offs=55) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array0_2esats__array0_make_arrpsz (anairiats_rec_0 arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2array0_2esats__array0_make_arrpsz: tmp0 = ref_make_elt_01089_anairiats_rec_0 (arg0) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2array0_2esats__array0_make_arrpsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array0.dats: 2813(line=96, offs=13) -- 2894(line=100, offs=4) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array0_2esats__array0_size (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2array0_2esats__array0_size: tmp5 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp4 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp5), atslab_3) ; return (tmp4) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2array0_2esats__array0_size] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array0_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array0_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2array0_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2array0_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array0_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2array0_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array0_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array0_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2array0_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array0_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_array0_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_lazy_dats.c0000644000175000017500000000611613431250607022734 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_isub) (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_ieq) (ats_int_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2lazy_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2lazy_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_lazy_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_string_dats.c0000644000175000017500000007527113431250607023273 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ ATSinline() ats_ptr_type atspre_string_string_alloc (ats_size_type n) { char *p ; p = ATS_MALLOC(n+1); p[n] = '\000'; return p ; } // end of [atspre_string_string_alloc] /* type definitions */ typedef struct { ats_char_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_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_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size_size) (ats_size_type, 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_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_char_type, atspre_string_get_char_at) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_strbuf_set_char_at) (ats_ref_type, ats_size_type, ats_char_type) ; ATSextern_fun(ats_char_type, atspre_string_test_char_at) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_string_make_list_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, atspre_string_make_substring) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_strptr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerrf_exn) (ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_string_string_alloc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_string_string_alloc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_string_string_alloc) (ats_size_type) ; ATSextern_fun(ats_char_type, atspre_char_tolower) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_vsubr_lemma0_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_split_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_unsplit_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_6 (ats_ref_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_8 (ats_ref_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_size_type aux_10 (ats_ptr_type arg0, ats_size_type arg1) ; static ats_size_type loop1_11 (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3, ats_size_type arg4) ; static ats_void_type loop2_12 (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3) ; static ats_ptr_type loop_14 (ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2) ; static ats_int_type loop_16 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_size_type arg3) ; static ats_void_type loop_20 (ats_ptr_type env0, ats_ptr_type env1, ats_size_type env2, ats_ptr_type arg0, ats_size_type arg1) ; static ats_clo_ptr_type loop_20_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_size_type env2) ; static ats_void_type loop_20_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1) ; static ats_ptr_type string_make_fun_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 1667(line=46, offs=1) -- 1715(line=46, offs=49) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_vsubr_lemma0_prfck () { /* local vardec */ // ATSlocal_void (tmp0) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_vsubr_lemma0) ; ATS_2d0_2e2_2e12_2prelude_2SATS_2vsubrw_2esats__vsubr_refl_prfck () ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_vsubr_lemma0) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_vsubr_lemma0_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 1738(line=50, offs=1) -- 2492(line=72, offs=2) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_split_prfck () { /* local vardec */ // ATSlocal_void (tmp1) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_split) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_split) ; return /* (tmp1) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_split_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 2521(line=74, offs=1) -- 3260(line=94, offs=2) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_unsplit_prfck () { /* local vardec */ // ATSlocal_void (tmp2) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_unsplit) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_unsplit) ; return /* (tmp2) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_unsplit_prfck] */ #endif /* _ATS_PROOFCHECK */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 3335(line=98, offs=24) -- 3375(line=98, offs=64) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__print_strbuf (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__print_strbuf: /* tmp3 = */ atspre_fprint_string (stdout, arg0) ; return /* (tmp3) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__print_strbuf] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 3399(line=99, offs=24) -- 3439(line=99, offs=64) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__prerr_strbuf (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp4) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__prerr_strbuf: /* tmp4 = */ atspre_fprint_string (stderr, arg0) ; return /* (tmp4) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__prerr_strbuf] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 4181(line=133, offs=9) -- 4889(line=154, offs=10) */ ATSstaticdec() ats_void_type loop_6 (ats_ref_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp9) ; ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_char_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_bool_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_size_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; __ats_lab_loop_6: tmp10 = atspre_ilt (arg2, arg1) ; if (tmp10) { // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp11 = ats_caselptrlab_mac(anairiats_sum_0, arg3, atslab_0) ; tmp12 = ats_caselptrlab_mac(anairiats_sum_0, arg3, atslab_1) ; tmp14 = atspre_neq_char_char (ats_castfn_mac(ats_char_type, tmp11), '\000') ; if (tmp14) { /* empty */ } else { /* tmp15 = */ atspre_prerrf_exn (ATSstrcst("exit(ATS): a string cannot contain null characters in the middle.\n")) ; /* tmp13 = */ ats_exit (1) ; } /* end of [if] */ tmp17 = atspre_size1_of_int1 (arg2) ; /* tmp16 = */ atspre_strbuf_set_char_at (arg0, tmp17, ats_castfn_mac(ats_char_type, tmp11)) ; tmp18 = atspre_iadd (arg2, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp18 ; arg3 = tmp12 ; goto __ats_lab_loop_6 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp9) */ ; } /* end of [loop_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 3873(line=125, offs=22) -- 4963(line=158, offs=4) */ ATSglobaldec() ats_ptr_type atspre_string_make_list_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_size_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; // ATSlocal_void (tmp19) ; __ats_lab_atspre_string_make_list_int: tmp7 = atspre_size1_of_int1 (arg1) ; tmp6 = atspre_string_string_alloc (tmp7) ; tmp8 = ats_selsin_mac(tmp6, atslab_2) ; /* tmp19 = */ loop_6 (tmp8, arg1, 0, arg0) ; tmp5 = tmp8 ; return (tmp5) ; } /* end of [atspre_string_make_list_int] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 5343(line=169, offs=9) -- 6064(line=190, offs=10) */ ATSstaticdec() ats_void_type loop_8 (ats_ref_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_char_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; ATSlocal (ats_bool_type, tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_size_type, tmp32) ; ATSlocal (ats_int_type, tmp33) ; ATSlocal (ats_int_type, tmp34) ; __ats_lab_loop_8: tmp25 = atspre_ilte (arg2, arg1) ; if (tmp25) { // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp26 = ats_caselptrlab_mac(anairiats_sum_0, arg3, atslab_0) ; tmp27 = ats_caselptrlab_mac(anairiats_sum_0, arg3, atslab_1) ; tmp29 = atspre_neq_char_char (ats_castfn_mac(ats_char_type, tmp26), '\000') ; if (tmp29) { /* empty */ } else { /* tmp30 = */ atspre_prerrf_exn (ATSstrcst("exit(ATS): a string cannot contain null characters in the middle.\n")) ; /* tmp28 = */ ats_exit (1) ; } /* end of [if] */ tmp33 = atspre_isub (arg1, arg2) ; tmp32 = atspre_size1_of_int1 (tmp33) ; /* tmp31 = */ atspre_strbuf_set_char_at (arg0, tmp32, ats_castfn_mac(ats_char_type, tmp26)) ; tmp34 = atspre_iadd (arg2, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp34 ; arg3 = tmp27 ; goto __ats_lab_loop_8 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp24) */ ; } /* end of [loop_8] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 5033(line=161, offs=26) -- 6138(line=194, offs=4) */ ATSglobaldec() ats_ptr_type atspre_string_make_list_rev_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_size_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp35) ; ATSlocal (ats_int_type, tmp36) ; __ats_lab_atspre_string_make_list_rev_int: tmp22 = atspre_size1_of_int1 (arg1) ; tmp21 = atspre_string_string_alloc (tmp22) ; tmp23 = ats_selsin_mac(tmp21, atslab_2) ; tmp36 = atspre_isub (arg1, 1) ; /* tmp35 = */ loop_8 (tmp23, tmp36, 0, arg0) ; tmp20 = tmp23 ; return (tmp20) ; } /* end of [atspre_string_make_list_rev_int] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 6276(line=201, offs=9) -- 6436(line=203, offs=79) */ ATSstaticdec() ats_size_type aux_10 (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_size_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_size_type, tmp41) ; ATSlocal (ats_size_type, tmp42) ; __ats_lab_aux_10: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp40 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp42 = atspre_string_length (tmp39) ; tmp41 = atspre_add_size_size (arg1, tmp42) ; arg0 = tmp40 ; arg1 = tmp41 ; goto __ats_lab_aux_10 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp38 = arg1 ; break ; } while (0) ; return (tmp38) ; } /* end of [aux_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 6525(line=207, offs=7) -- 6870(line=214, offs=6) */ ATSstaticdec() ats_size_type loop1_11 (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3, ats_size_type arg4) { /* local vardec */ ATSlocal (ats_size_type, tmp45) ; ATSlocal (ats_char_type, tmp46) ; ATSlocal (ats_bool_type, tmp47) ; ATSlocal (ats_bool_type, tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_size_type, tmp50) ; ATSlocal (ats_size_type, tmp51) ; __ats_lab_loop1_11: tmp46 = atspre_string_test_char_at (arg3, arg4) ; tmp47 = atspre_neq_char_char (tmp46, '\000') ; if (tmp47) { tmp48 = atspre_lt_size1_size1 (arg2, arg1) ; if (tmp48) { /* tmp49 = */ atspre_strbuf_set_char_at (arg0, arg2, tmp46) ; tmp50 = atspre_add_size1_int1 (arg2, 1) ; tmp51 = atspre_add_size1_int1 (arg4, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp50 ; arg3 = arg3 ; arg4 = tmp51 ; goto __ats_lab_loop1_11 ; // tail call } else { tmp45 = arg2 ; } /* end of [if] */ } else { tmp45 = arg2 ; } /* end of [if] */ return (tmp45) ; } /* end of [loop1_11] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 6898(line=215, offs=7) -- 7276(line=225, offs=6) */ ATSstaticdec() ats_void_type loop2_12 (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_size_type, tmp55) ; __ats_lab_loop2_12: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp54 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp55 = loop1_11 (arg0, arg1, arg2, ats_castfn_mac(ats_ptr_type, tmp53), 0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp55 ; arg3 = tmp54 ; goto __ats_lab_loop2_12 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp52) */ ; } /* end of [loop2_12] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 6221(line=199, offs=18) -- 7635(line=236, offs=4) */ ATSglobaldec() ats_ptr_type atspre_stringlst_concat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_size_type, tmp43) ; ATSlocal (ats_size_type, tmp44) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_atspre_stringlst_concat: tmp44 = atspre_size1_of_int1 (0) ; tmp43 = aux_10 (arg0, tmp44) ; tmp56 = atspre_string_string_alloc (ats_castfn_mac(ats_size_type, tmp43)) ; tmp57 = ats_selsin_mac(tmp56, atslab_2) ; /* tmp58 = */ loop2_12 (tmp57, ats_castfn_mac(ats_size_type, tmp43), 0, arg0) ; tmp59 = tmp57 ; tmp37 = ats_castfn_mac(ats_ptr_type, tmp59) ; return (tmp37) ; } /* end of [atspre_stringlst_concat] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 7728(line=242, offs=7) -- 8029(line=250, offs=8) */ ATSstaticdec() ats_ptr_type loop_14 (ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_bool_type, tmp62) ; ATSlocal (ats_size_type, tmp63) ; ATSlocal (ats_char_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab_loop_14: tmp62 = atspre_gte_size1_int1 (arg1, 1) ; if (tmp62) { tmp63 = atspre_sub_size1_int1 (arg1, 1) ; tmp64 = atspre_string_get_char_at (arg0, tmp63) ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp65, atslab_0, tmp64) ; ats_selptrset_mac(anairiats_sum_0, tmp65, atslab_1, arg2) ; arg0 = arg0 ; arg1 = tmp63 ; arg2 = tmp65 ; goto __ats_lab_loop_14 ; // tail call } else { tmp61 = arg2 ; } /* end of [if] */ return (tmp61) ; } /* end of [loop_14] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 7712(line=241, offs=16) -- 8111(line=255, offs=4) */ ATSglobaldec() ats_ptr_type atspre_string_explode (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_size_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab_atspre_string_explode: tmp66 = atspre_string_length (arg0) ; tmp67 = (ats_sum_ptr_type)0 ; tmp60 = loop_14 (arg0, tmp66, tmp67) ; return (tmp60) ; } /* end of [atspre_string_explode] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 8229(line=260, offs=7) -- 8372(line=262, offs=61) */ ATSstaticdec() ats_int_type loop_16 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; __ats_lab_loop_16: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp71 = atspre_iadd (arg1, 1) ; arg0 = tmp70 ; arg1 = tmp71 ; goto __ats_lab_loop_16 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp69 = arg1 ; break ; } while (0) ; return (tmp69) ; } /* end of [loop_16] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 8166(line=258, offs=16) -- 8390(line=264, offs=2) */ ATSglobaldec() ats_ptr_type atspre_string_implode (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_int_type, tmp72) ; __ats_lab_atspre_string_implode: tmp72 = loop_16 (arg0, 0) ; tmp68 = atspre_string_make_list_int (arg0, tmp72) ; return (tmp68) ; } /* end of [atspre_string_implode] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 8557(line=271, offs=7) -- 8787(line=275, offs=93) */ ATSstaticdec() ats_void_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_size_type arg3) { /* local vardec */ // ATSlocal_void (tmp74) ; ATSlocal (ats_bool_type, tmp75) ; // ATSlocal_void (tmp76) ; ATSlocal (ats_char_type, tmp77) ; ATSlocal (ats_size_type, tmp78) ; __ats_lab_loop_18: tmp75 = atspre_string_isnot_atend (arg0, arg3) ; if (tmp75) { tmp77 = atspre_string_get_char_at (arg0, arg3) ; /* tmp76 = */ ((ats_void_type(*)(ats_char_type, ats_ptr_type))arg1) (tmp77, arg2) ; tmp78 = atspre_add_size1_int1 (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp78 ; goto __ats_lab_loop_18 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp74) */ ; } /* end of [loop_18] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 8494(line=270, offs=3) -- 8808(line=277, offs=2) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__string_foreach__main (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp73) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__string_foreach__main: /* tmp73 = */ loop_18 (arg0, arg1, arg2, 0) ; return /* (tmp73) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__string_foreach__main] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 9118(line=289, offs=9) -- 9779(line=309, offs=8) */ ATSstaticdec() ats_void_type loop_20 (ats_ptr_type env0, ats_ptr_type env1, ats_size_type env2, ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ // ATSlocal_void (tmp84) ; ATSlocal (ats_bool_type, tmp85) ; ATSlocal (ats_char_type, tmp86) ; ATSlocal (ats_char_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_size_type, tmp89) ; __ats_lab_loop_20: tmp85 = atspre_lt_size1_size1 (arg1, env2) ; if (tmp85) { tmp86 = atspre_string_get_char_at (env0, arg1) ; tmp87 = ((ats_char_type(*)(ats_char_type))env1) (tmp86) ; ats_ptrget_mac(ats_char_type, arg0) = tmp87 ; tmp88 = atspre_padd_size (arg0, sizeof(ats_byte_type)) ; tmp89 = atspre_add_size1_int1 (arg1, 1) ; arg0 = tmp88 ; arg1 = tmp89 ; goto __ats_lab_loop_20 ; // tail call } else { ats_ptrget_mac(ats_char_type, arg0) = '\000' ; } /* end of [if] */ return /* (tmp84) */ ; } /* end of [loop_20] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_size_type closure_env_2 ; } loop_20_closure_type ; ats_void_type loop_20_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1) { loop_20 (((loop_20_closure_type*)cloptr)->closure_env_0, ((loop_20_closure_type*)cloptr)->closure_env_1, ((loop_20_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type loop_20_closure_init (loop_20_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_size_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_20_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type loop_20_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_size_type env2) { loop_20_closure_type *p_clo = ATS_MALLOC(sizeof(loop_20_closure_type)) ; loop_20_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 8874(line=283, offs=4) -- 9859(line=313, offs=4) */ ATSstaticdec() ats_ptr_type string_make_fun_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_size_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_size_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; // ATSlocal_void (tmp90) ; __ats_lab_string_make_fun_19: tmp80 = atspre_string_length (arg0) ; tmp82 = atspre_add_size1_int1 (tmp80, 1) ; tmp81 = ats_malloc_gc (tmp82) ; tmp83 = ats_selsin_mac(tmp81, atslab_2) ; /* tmp90 = */ loop_20 (arg0, arg1, tmp80, tmp83, 0) ; tmp79 = tmp83 ; return (tmp79) ; } /* end of [string_make_fun_19] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 9935(line=317, offs=26) -- 10047(line=321, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__string_tolower (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__string_tolower: tmp91 = string_make_fun_19 (arg0, &atspre_char_tolower) ; return (tmp91) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__string_tolower] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 10109(line=323, offs=26) -- 10221(line=327, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__string_toupper (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp92) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__string_toupper: tmp92 = string_make_fun_19 (arg0, &atspre_char_toupper) ; return (tmp92) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__string_toupper] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 10325(line=333, offs=24) -- 10360(line=333, offs=59) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__print_strptr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp93) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__print_strptr: /* tmp93 = */ atspre_fprint_strptr (stdout, arg0) ; return /* (tmp93) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__print_strptr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 10384(line=334, offs=24) -- 10419(line=334, offs=59) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__prerr_strptr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp94) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__prerr_strptr: /* tmp94 = */ atspre_fprint_strptr (stderr, arg0) ; return /* (tmp94) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__prerr_strptr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/string.dats: 10442(line=337, offs=12) -- 10671(line=345, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strptr_dup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_size_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strptr_dup: tmp96 = atspre_string_length (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp97 = atspre_string_make_substring (ats_castfn_mac(ats_ptr_type, arg0), 0, tmp96) ; tmp95 = ats_castfn_mac(ats_ptr_type, tmp97) ; return (tmp95) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strptr_dup] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2string_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2string_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2string_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2string_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2string_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2string_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2string_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2string_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_vsubr_lemma0_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_split_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2string_2esats__strbuf_v_unsplit_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ #ifndef EXIT_SUCCESS #define EXIT_SUCCESS 0 #endif #ifndef EXIT_FAILURE #define EXIT_FAILURE 1 #endif // // HX: a commonly used simple hash function // ats_ulint_type atspre_string_hash_33 (ats_ptr_type s0) { unsigned long int hash_val ; unsigned char *s; int c; hash_val = 3141593UL ; // s = (unsigned char*)s0 ; while (1) { c = *s ; if (!c) break ; // the end of string is reached hash_val = ((hash_val << 5) + hash_val) + c ; // hash_val = 33 * hash_val + c s += 1 ; } // end of [while] // return hash_val ; // } // end of [atspre_string_hash_33] ats_ptr_type atspre_string_make_char ( ats_size_type n, ats_char_type c ) { char *p ; if (!c) { ats_exit_errmsg (EXIT_FAILURE, "exit(ATS): [string_make_char] failed: null char.\n") ; } ; // end of [if] p = ATS_MALLOC(n+1) ; memset (p, c, n) ; p[n] = '\000' ; return p ; } // end of [atspre_string_make_char] /* ****** ****** */ ats_ptr_type atspre_string_make_substring ( ats_ptr_type src0, ats_size_type start, ats_size_type len ) { char *des, *src ; des = ATS_MALLOC(len+1) ; src = ((char*)src0) + start ; memcpy(des, src, len) ; des[len] = '\000' ; return des ; } // end of [atspre_string_make_substring] /* ****** ****** */ ats_void_type atspre_strbuf_tolower (ats_ptr_type p0) { int c ; char *p = (char*)p0 ; while ((c = *p)) { *p = tolower (c) ; p += 1 ; } return ; } // end of [atspre_strbuf_tolower] ats_void_type atspre_strbuf_toupper (ats_ptr_type p0) { int c ; char *p = (char*)p0 ; while ((c = *p)) { *p = toupper (c) ; p += 1 ; } return ; } // end of [atspre_strbuf_toupper] /* ****** ****** */ /* ****** ****** */ /* end of [DATS_string_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_basics_dats.c0000644000175000017500000002562013431250607023222 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ // // HX: for the purpose of debugging // ats_int_type ats_crash_int () { volatile int *p = 0 ; return *(p) ; } // end of [ats_crash_int] // /* ** HX: various functions for exits */ ats_void_type // external ats_exit (ats_int_type status) { exit(status) ; return ; } // end of [ats_exit] ats_void_type // external ats_exit_errmsg ( ats_int_type status , ats_ptr_type errmsg ) { fprintf(stderr, "%s", (char*)errmsg) ; exit(status) ; return ; // deadcode } /* end of [ats_exit_errmsg] */ /* ** HX: various functions for asserts */ #ifndef EXIT_SUCCESS #define EXIT_SUCCESS 0 #endif #ifndef EXIT_FAILURE #define EXIT_FAILURE 1 #endif ats_void_type atspre_assertfalse () { // extern void ats_crash() ; // fprintf(stderr, "[assertfalse] executed\n") ; ats_crash() ; // HX: this is likely to cause a core dump! return ; } // end of [atspre_asertfasle] ats_void_type atspre_assert ( ats_bool_type assertion ) { if (!assertion) { fprintf (stderr, "exit(ATS): [assert] failed\n") ; exit(EXIT_FAILURE) ; } // end of [if] return ; } /* end of [atspre_assert] */ ats_void_type atspre_assert_errmsg ( ats_bool_type assertion, ats_ptr_type errmsg ) { if (!assertion) { fprintf (stderr, "exit(ATS): [assert] failed: %s\n", (char*)errmsg) ; exit(EXIT_FAILURE) ; } // end of [if] return ; } /* end of [atspre_assert_errmsg] */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, ats_crash_int) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__false_elim_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__verify_constraint_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_r_r_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_rw_rw_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unsome_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unnone_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/basics.dats: 1553(line=40, offs=1) -- 1599(line=41, offs=37) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__false_elim_prfck () { /* local vardec */ // ATSlocal_void (tmp0) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__false_elim) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__false_elim) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__false_elim_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/basics.dats: 1758(line=48, offs=1) -- 1793(line=48, offs=36) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__verify_constraint_prfck () { /* local vardec */ // ATSlocal_void (tmp1) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__verify_constraint) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__verify_constraint) ; return /* (tmp1) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__verify_constraint_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/basics.dats: 1921(line=56, offs=1) -- 1976(line=56, offs=56) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_r_r_prfck () { /* local vardec */ // ATSlocal_void (tmp2) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_r_r) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_r_r) ; return /* (tmp2) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_r_r_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/basics.dats: 1977(line=57, offs=1) -- 2032(line=57, offs=56) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck () { /* local vardec */ // ATSlocal_void (tmp3) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_w_w) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_w_w) ; return /* (tmp3) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/basics.dats: 2033(line=58, offs=1) -- 2091(line=58, offs=59) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_rw_rw_prfck () { /* local vardec */ // ATSlocal_void (tmp4) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_rw_rw) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_rw_rw) ; return /* (tmp4) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_rw_rw_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/basics.dats: 2116(line=62, offs=1) -- 2201(line=63, offs=50) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unnone_prfck () { /* local vardec */ // ATSlocal_void (tmp5) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unnone) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unnone) ; return /* (tmp5) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unnone_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/basics.dats: 2202(line=64, offs=1) -- 2277(line=64, offs=76) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unsome_prfck () { /* local vardec */ // ATSlocal_void (tmp6) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unsome) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unsome) ; return /* (tmp6) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unsome_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/basics.dats: 2300(line=68, offs=1) -- 2372(line=68, offs=73) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_prfck () { /* local vardec */ // ATSlocal_void (tmp7) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim) ; return /* (tmp7) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_prfck] */ #endif /* _ATS_PROOFCHECK */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/basics.dats: 2578(line=85, offs=7) -- 2734(line=93, offs=2) */ ATSglobaldec() ats_void_type ats_crash () { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_int_type, tmp9) ; __ats_lab_ats_crash: tmp9 = ats_crash_int () ; /* tmp8 = */ ats_exit (tmp9) ; return /* (tmp8) */ ; } /* end of [ats_crash] */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2basics_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2basics_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2basics_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2basics_2edats__staload_flag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2basics_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2basics_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2basics_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2basics_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__false_elim_prfck () ; ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__verify_constraint_prfck () ; ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_r_r_prfck () ; ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck () ; ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_rw_rw_prfck () ; ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unsome_prfck () ; ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__option_v_unnone_prfck () ; ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_basics_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_integer_dats.c0000644000175000017500000001030313431250607023403 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imul2) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_ndiv2) (ats_int_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_isfun_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2integer_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2integer_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2integer_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2integer_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2integer_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2integer_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2integer_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2integer_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2integer_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2integer_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_isfun_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ // stringization ats_ptr_type atspre_tostrptr_llint (ats_llint_type i0) { ats_llint_type i, i1 ; int n ; char *res ; // i1 = (i0 >= 0 ? i0 : -i0) ; for (i = i1, n = 0; i > 0; i = i / 10) n += 1 ; if (i0 < 0) n += 1 ; if (i0 == 0) n = 1; res = ATS_MALLOC(n+1) ; res = res + n ; *res = '\000' ; for (i = i1, n = 0; i > 0; i = i / 10) { *--res = ('0' + i % 10) ; } // end of [for] if (i0 < 0) *--res = '-' ; if (i0 == 0) *--res = '0' ; // return res ; } // end of [atspre_tostrptr_llint] /* ****** ****** */ ats_ptr_type atspre_tostrptr_ullint (ats_ullint_type i0) { ats_ullint_type i; int n ; char *res ; // for (i = i0, n = 0; i > 0; i = i / 10) n += 1 ; if (i0 == 0) n = 1 ; res = ATS_MALLOC(n+1) ; res = res + n; *res = '\000' ; for (i = i0, n = 0; i > 0; i = i / 10) { *--res = ('0' + i % 10) ; } // end of [for] if (i0 == 0) *--res = '0' ; // return res ; } // end of [atspre_tostrptr_ullint] /* ****** ****** */ /* end of [DATS_integer_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/0000755000175000017500000000000013431250607020511 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/integer.cats0000644000175000017500000006637313431250607023041 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_INTEGER_CATS #define ATS_PRELUDE_INTEGER_CATS /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ /* ** these functions are declared in stdlib.h */ extern int atoi (const char* cs) ; extern long int atol (const char* cs) ; extern long long int atoll (const char* cs) ; /* ****** ****** */ #include "ats_types.h" #include "ats_memory.h" #include "ats_exception.h" /* ****** ****** */ // HX: implemented in $ATSHOME/prelude/DATS/integer.dats extern ats_ptr_type atspre_tostrptr_llint (ats_llint_type i) ; extern ats_ptr_type atspre_tostrptr_ullint (ats_ullint_type u) ; /* ****** ****** */ /* signed integers */ /* ****** ****** */ ATSinline() ats_int_type atspre_int_of_char (ats_char_type c) { return c ; } ATSinline() ats_int_type atspre_int_of_schar (ats_schar_type c) { return c ; } ATSinline() ats_int_type atspre_int_of_uchar (ats_uchar_type c) { return c ; } // ATSinline() ats_int_type atspre_int_of_string (ats_ptr_type s) { return atoi((char*)s) ; } /* end of [atspre_int_of_string] */ // ATSinline() ats_int_type atspre_abs_int (ats_int_type i) { return (i >= 0 ? i : -i) ; } // end of [atspre_abs_int] ATSinline() ats_int_type atspre_neg_int (ats_int_type i) { return (-i) ; } ATSinline() ats_int_type atspre_succ_int (ats_int_type i) { return (i + 1) ; } ATSinline() ats_int_type atspre_pred_int (ats_int_type i) { return (i - 1) ; } ATSinline() ats_int_type atspre_add_int_int (ats_int_type i1, ats_int_type i2) { return (i1 + i2) ; } ATSinline() ats_int_type atspre_sub_int_int (ats_int_type i1, ats_int_type i2) { return (i1 - i2) ; } ATSinline() ats_int_type atspre_mul_int_int (ats_int_type i1, ats_int_type i2) { return (i1 * i2) ; } ATSinline() ats_int_type atspre_div_int_int (ats_int_type i1, ats_int_type i2) { return (i1 / i2) ; } ATSinline() ats_int_type atspre_mod_int_int (ats_int_type i1, ats_int_type i2) { return (i1 % i2) ; } ATSinline() ats_bool_type atspre_lt_int_int (ats_int_type i1, ats_int_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_int_int (ats_int_type i1, ats_int_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_int_int (ats_int_type i1, ats_int_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_int_int (ats_int_type i1, ats_int_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_int_int (ats_int_type i1, ats_int_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_int_int (ats_int_type i1, ats_int_type i2) { return (i1 != i2) ; } // compare, max and min ATSinline() ats_int_type atspre_compare_int_int (ats_int_type i1, ats_int_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_int_type atspre_max_int_int (ats_int_type i1, ats_int_type i2) { return (i1 >= i2) ? i1 : i2 ; } ATSinline() ats_int_type atspre_min_int_int (ats_int_type i1, ats_int_type i2) { return (i1 <= i2) ? i1 : i2 ; } // // square, cube and pow functions // ATSinline() ats_int_type atspre_square_int (ats_int_type i) { return (i * i) ; } ATSinline() ats_int_type atspre_cube_int (ats_int_type i) { return (i * i * i) ; } ATSinline() ats_int_type atspre_pow_int_int1 (ats_int_type x, ats_int_type n) { ats_int_type res = 1; while (n > 0) { if (n % 2 > 0) { res *= x ; x = x * x ; } else { x = x * x ; } n = n >> 1 ; } return res ; } // greatest common division ATSinline() ats_int_type atspre_gcd_int_int (ats_int_type m0, ats_int_type n0) { int m, n, t ; if (m0 >= 0) m = m0; else m = -m0 ; if (n0 >= 0) n = n0; else n = -n0 ; while (m) { t = n % m ; n = m ; m = t ; } return n ; } // bitwise operations ATSinline() ats_int_type atspre_asl_int_int1 (ats_int_type i, ats_int_type n) { return i << n ; } ATSinline() ats_int_type atspre_asr_int_int1 (ats_int_type i, ats_int_type n) { return i >> n ; } // print functions ATSinline() ats_void_type atspre_fprint_int (ats_ptr_type out, ats_int_type i) { int n ; n = fprintf ((FILE*)out, "%d", i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_int] failed.\n") ; } /* end of [if] */ return ; } ATSinline() ats_void_type atspre_print_int (ats_int_type i) { // atspre_stdout_view_get () ; atspre_fprint_int ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_int (ats_int_type i) { // atspre_stderr_view_get () ; atspre_fprint_int ((ats_ptr_type)stderr, i) ; // atspre_stderr_view_set () ; return ; } // ATSinline() ats_void_type atspre_fscan_int_exn ( ats_ptr_type inp, ats_ref_type r ) { int n ; n = fscanf ((FILE*)inp, "%d", (int*)r) ; if (n <= 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fscan_int_exn] failed.\n") ; } // end of [if] return ; } /* end of [atspre_fscan_int_exn] */ // ATSinline() ats_ptr_type atspre_tostrptr_int (ats_int_type i) { return atspre_tostrptr_llint (i) ; } // end of [atspre_tostrptr_int] /* ****** ****** */ /* unsigned integers */ /* ****** ****** */ ATSinline() ats_uint_type atspre_uint_of_char (ats_char_type c) { return ((unsigned char)c) ; } // end of [atspre_uint_of_char] ATSinline() ats_uint_type atspre_uint_of_uchar (ats_uchar_type c) { return ((unsigned char)c) ; } // end of [atspre_uint_of_uchar] ATSinline() ats_uint_type atspre_uint_of_double (ats_double_type d) { return (ats_uint_type)d ; } // end of [atspre_uint_of_double] ATSinline() ats_uint_type atspre_succ_uint (ats_uint_type i) { return (i + 1) ; } ATSinline() ats_uint_type atspre_pred_uint (ats_uint_type i) { return (i - 1) ; } ATSinline() ats_uint_type atspre_add_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 + i2) ; } // end of [atspre_add_uint_uint] ATSinline() ats_uint_type atspre_sub_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 - i2) ; } // end of [atspre_sub_uint_uint] ATSinline() ats_uint_type atspre_mul_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 * i2) ; } // end of [atspre_mul_uint_uint] ATSinline() ats_uint_type atspre_div_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 / i2) ; } // end of [atspre_div_uint_uint] ATSinline() ats_uint_type atspre_mod_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 % i2) ; } // end of [atspre_mod_uint_uint] ATSinline() ats_bool_type atspre_lt_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 < i2) ; } // end of [atspre_lt_uint_uint] ATSinline() ats_bool_type atspre_lte_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 <= i2) ; } // end of [atspre_lte_uint_uint] ATSinline() ats_bool_type atspre_gt_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 > i2) ; } // end of [atspre_gt_uint_uint] ATSinline() ats_bool_type atspre_gte_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 >= i2) ; } // end of [atspre_gte_uint_uint] ATSinline() ats_bool_type atspre_eq_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 == i2) ; } // end of [atspre_eq_uint_uint] ATSinline() ats_bool_type atspre_neq_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 != i2) ; } // end of [atspre_neq_uint_uint] // // compare, max and min // ATSinline() ats_int_type atspre_compare_uint_uint (ats_uint_type i1, ats_uint_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_uint_type atspre_max_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 >= i2 ? i1 : i2) ; } ATSinline() ats_uint_type atspre_min_uint_uint (ats_uint_type i1, ats_uint_type i2) { return (i1 <= i2 ? i1 : i2) ; } ATSinline() ats_uint_type atspre_square_uint (ats_uint_type u) { return (u * u) ; } ATSinline() ats_uint_type atspre_cube_uint (ats_uint_type u) { return (u * u * u) ; } /* ** bitwise operations */ ATSinline() ats_uint_type atspre_lnot_uint (ats_uint_type x) { return (~x) ; } ATSinline() ats_uint_type atspre_land_uint_uint (ats_uint_type x, ats_uint_type y) { return (x & y) ; } ATSinline() ats_uint_type atspre_lor_uint_uint (ats_uint_type x, ats_uint_type y) { return (x | y) ; } ATSinline() ats_uint_type atspre_lxor_uint_uint (ats_uint_type x, ats_uint_type y) { return (x ^ y) ; } /* ** logical shifting operations */ ATSinline() ats_uint_type atspre_lsl_uint_int1 ( ats_uint_type u, ats_int_type n ) { return (u << n) ; } // end of [atspre_lsl_uint_int1] ATSinline() ats_uint_type atspre_lsr_uint_int1 ( ats_uint_type u, ats_int_type n ) { return (u >> n) ; } // end of [atspre_lsr_uint_int1] #define atspre_lsl_uint_uint atspre_lsl_uint_int1 #define atspre_lsr_uint_uint atspre_lsr_uint_int1 /* ****** ****** */ /* ** print functions */ ATSinline() ats_void_type atspre_fprint_uint (ats_ptr_type out, ats_uint_type u) { int n = fprintf ((FILE*)out, "%u", u) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_uint] failed.\n") ; } return ; } /* end of [atspre_fprint_uint] */ ATSinline() ats_void_type atspre_print_uint ( ats_uint_type u ) { // atspre_stdout_view_get () ; atspre_fprint_uint((ats_ptr_type)stdout, u) ; // atspre_stdout_view_set () ; return ; } /* end of [atspre_print_uint] */ ATSinline() ats_void_type atspre_prerr_uint ( ats_uint_type u ) { // atspre_stderr_view_get () ; atspre_fprint_uint((ats_ptr_type)stderr, u) ; // atspre_stderr_view_set () ; return ; } /* end of [atspre_prerr_uint] */ /* ** stringization */ ATSinline() ats_ptr_type atspre_tostrptr_uint (ats_uint_type u) { return atspre_tostrptr_ullint (u) ; } // end of [atspre_tostrptr_uint] /* ****** ****** */ #define atspre_int1_of_string atspre_int_of_string #define atspre_iabs atspre_abs_int #define atspre_ineg atspre_neg_int #define atspre_isucc atspre_succ_int #define atspre_ipred atspre_pred_int #define atspre_iadd atspre_add_int_int #define atspre_isub atspre_sub_int_int #define atspre_imul atspre_mul_int_int #define atspre_imul1 atspre_mul_int_int #define atspre_imul2 atspre_mul_int_int #define atspre_idiv atspre_div_int_int #define atspre_idiv1 atspre_div_int_int #define atspre_nmul atspre_mul_int_int #define atspre_ndiv atspre_div_int_int // HX: there is no [ndiv1] #define atspre_ndiv2 atspre_div_int_int #define atspre_nmod atspre_mod_int_int #define atspre_nmod1 atspre_mod_int_int #define atspre_nmod2 atspre_mod_int_int #define atspre_ilt atspre_lt_int_int #define atspre_ilte atspre_lte_int_int #define atspre_igt atspre_gt_int_int #define atspre_igte atspre_gte_int_int #define atspre_ieq atspre_eq_int_int #define atspre_ineq atspre_neq_int_int #define atspre_icompare atspre_compare_int_int #define atspre_imax atspre_max_int_int #define atspre_imin atspre_min_int_int #define atspre_ipow atspre_pow_int_int1 #define atspre_npow atspre_pow_int_int1 ATSinline() ats_int_type atspre_ihalf (ats_int_type n) { return (n / 2) ; } ATSinline() ats_int_type atspre_nhalf (ats_int_type n) { return (n >> 1) ; } /* ****** ****** */ #define atspre_uadd atspre_add_uint_uint #define atspre_usub atspre_sub_uint_uint #define atspre_umul atspre_mul_uint_uint #define atspre_udiv atspre_div_uint_uint #define atspre_umod atspre_mod_uint_uint // HX: there is no [nmod1] #define atspre_umod2 atspre_mod_uint_uint // ATSinline() ats_int_type atspre_uimod ( ats_uint_type u1, ats_int_type i2 ) { return (u1 % ((ats_uint_type)i2)) ; } /* end of [atspre_uimod] */ #define atspre_uimod2 ats_uimod #define atspre_ult atspre_lt_uint_uint #define atspre_ulte atspre_lte_uint_uint #define atspre_ugt atspre_gt_uint_uint #define atspre_ugte atspre_gte_uint_uint #define atspre_ueq atspre_eq_uint_uint #define atspre_uneq atspre_neq_uint_uint #define atspre_ucompare atspre_compare_uint_uint #define atspre_umax atspre_max_uint_uint #define atspre_umin atspre_min_uint_uint /* ****** ****** */ /* signed long integers */ /* ****** ****** */ ATSinline() ats_lint_type atspre_lint_of_int (ats_int_type i) { return i ; } ATSinline() ats_int_type atspre_int_of_lint (ats_lint_type li) { return li ; } /* ****** ****** */ ATSinline() ats_lint_type atspre_lint_of_uint (ats_uint_type u) { return u ; } ATSinline() ats_uint_type atspre_uint_of_lint (ats_lint_type li) { return li ; } /* ****** ****** */ ATSinline() ats_lint_type atspre_lint_of_string (ats_ptr_type s) { return atol((char*)s) ; } // end of [atspre_lint_of_string] // arithmetic functions and comparison functions ATSinline() ats_lint_type atspre_abs_lint (ats_lint_type i) { return (i >= 0 ? i : -i) ; } ATSinline() ats_lint_type atspre_neg_lint (ats_lint_type i) { return (-i) ; } ATSinline() ats_lint_type atspre_succ_lint (ats_lint_type i) { return (i + 1) ; } ATSinline() ats_lint_type atspre_pred_lint (ats_lint_type i) { return (i - 1) ; } ATSinline() ats_lint_type atspre_add_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 + i2) ; } ATSinline() ats_lint_type atspre_sub_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 - i2) ; } ATSinline() ats_lint_type atspre_mul_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 * i2) ; } ATSinline() ats_lint_type atspre_div_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 / i2) ; } ATSinline() ats_lint_type atspre_mod_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 % i2) ; } ATSinline() ats_bool_type atspre_lt_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 != i2) ; } // compare, max and min ATSinline() ats_int_type atspre_compare_lint_lint (ats_lint_type i1, ats_lint_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_lint_type atspre_max_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 >= i2 ? i1 : i2) ; } ATSinline() ats_lint_type atspre_min_lint_lint (ats_lint_type i1, ats_lint_type i2) { return (i1 <= i2 ? i1 : i2) ; } // print functions ATSinline() ats_void_type atspre_fprint_lint (ats_ptr_type out, ats_lint_type i) { int n ; n = fprintf ((FILE*)out, "%li", i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_lint] failed.\n") ; } return ; } ATSinline() ats_void_type atspre_print_lint (ats_lint_type i) { // atspre_stdout_view_get () ; atspre_fprint_lint ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_lint (ats_lint_type i) { // atspre_stderr_view_get () ; atspre_fprint_lint ((ats_ptr_type)stderr, i) ; // atspre_stderr_view_set () ; return ; } // ATSinline() ats_ptr_type atspre_tostrptr_lint (ats_lint_type i) { return atspre_tostrptr_llint (i) ; } // end of [atspre_tostrptr_lint] /* ****** ****** */ /* unsigned long integers */ /* ****** ****** */ ATSinline() ats_ulint_type atspre_ulint_of_int (ats_int_type i) { return i ; } ATSinline() ats_int_type atspre_int_of_ulint (ats_ulint_type ul) { return ul ; } // ATSinline() ats_ulint_type atspre_ulint_of_uint (ats_uint_type u) { return u ; } ATSinline() ats_uint_type atspre_uint_of_ulint (ats_ulint_type ul) { return ul ; } /* ****** ****** */ ATSinline() ats_ulint_type atspre_succ_ulint (ats_ulint_type i) { return (i + 1) ; } ATSinline() ats_ulint_type atspre_pred_ulint (ats_ulint_type i) { return (i - 1) ; } ATSinline() ats_ulint_type atspre_add_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 + i2) ; } ATSinline() ats_ulint_type atspre_sub_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 - i2) ; } ATSinline() ats_ulint_type atspre_mul_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 * i2) ; } ATSinline() ats_ulint_type atspre_div_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 / i2) ; } ATSinline() ats_ulint_type atspre_mod_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 % i2) ; } ATSinline() ats_bool_type atspre_lt_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 != i2) ; } // // compare, max and min // ATSinline() ats_int_type atspre_compare_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_ulint_type atspre_max_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 >= i2 ? i1 : i2) ; } ATSinline() ats_ulint_type atspre_min_ulint_ulint (ats_ulint_type i1, ats_ulint_type i2) { return (i1 <= i2 ? i1 : i2) ; } // // bitwise operations // ATSinline() ats_ulint_type atspre_lnot_ulint (ats_ulint_type x) { return (~x) ; } ATSinline() ats_ulint_type atspre_land_ulint_ulint (ats_ulint_type x, ats_ulint_type y) { return (x & y) ; } ATSinline() ats_ulint_type atspre_lor_ulint_ulint (ats_ulint_type x, ats_ulint_type y) { return (x | y) ; } ATSinline() ats_ulint_type atspre_lxor_ulint_ulint (ats_ulint_type x, ats_ulint_type y) { return (x ^ y) ; } ATSinline() ats_ulint_type atspre_lsl_ulint_int1 (ats_ulint_type i, ats_int_type n) { return i << n ; } ATSinline() ats_ulint_type atspre_lsr_ulint_int1 (ats_ulint_type i, ats_int_type n) { return i >> n ; } // // print functions // ATSinline() ats_void_type atspre_fprint_ulint (ats_ptr_type out, ats_ulint_type i) { int n = fprintf ((FILE*)out, "%lu", i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_ulint] failed.\n") ; } return ; } // end of [atspre_fprint_ulint] ATSinline() ats_void_type atspre_print_ulint (ats_ulint_type i) { // atspre_stdout_view_get () ; atspre_fprint_ulint ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } // end of [atspre_print_ulint] ATSinline() ats_void_type atspre_prerr_ulint (ats_ulint_type i) { // atspre_stderr_view_get () ; atspre_fprint_ulint ((ats_ptr_type)stderr, i) ; // atspre_stderr_view_set () ; return ; } // end of [atspre_prerr_ulint] // ATSinline() ats_ptr_type atspre_tostrptr_ulint (ats_ulint_type i) { return atspre_tostrptr_ullint (i) ; } // end of [atspre_tostrptr_ulint] /* ****** ****** */ // // long long integers // /* ****** ****** */ ATSinline() ats_llint_type atspre_llint_of_int (ats_int_type i) { return ((ats_llint_type)i) ; } // end of [atspre_llint_of_int] ATSinline() ats_int_type atspre_int_of_llint (ats_llint_type lli) { return ((ats_int_type)lli) ; } // end of [atspre_int_of_llint] #if (0) // // HX: defined in $ATSHOME/prelude/CATS/float.cats // ATSinline() ats_llint_type atspre_llint_of_double (ats_double_type d) { return ((ats_llint_type)d) ; } // end of [atspre_llint_of_double] #endif // end of [#if 0] ATSinline() ats_llint_type atspre_llint_of_string (ats_ptr_type s) { return atoll((char*)s) ; } // end of [atspre_llint_of_string] // // arithmetic functions and comparison functions // ATSinline() ats_llint_type atspre_abs_llint (ats_llint_type i) { return (i >= 0 ? i : -i) ; } ATSinline() ats_llint_type atspre_neg_llint (ats_llint_type i) { return (-i) ; } ATSinline() ats_llint_type atspre_succ_llint (ats_llint_type i) { return (i + 1) ; } ATSinline() ats_llint_type atspre_pred_llint (ats_llint_type i) { return (i - 1) ; } ATSinline() ats_llint_type atspre_add_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 + i2) ; } ATSinline() ats_llint_type atspre_sub_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 - i2) ; } ATSinline() ats_llint_type atspre_mul_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 * i2) ; } ATSinline() ats_llint_type atspre_div_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 / i2) ; } ATSinline() ats_llint_type atspre_mod_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 % i2) ; } ATSinline() ats_bool_type atspre_lt_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_llint_llint (ats_llint_type i1, ats_llint_type i2) { return (i1 != i2) ; } // compare, max and min ATSinline() ats_int_type atspre_compare_llint_llint (ats_llint_type i1, ats_llint_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_llint_type atspre_max_llint_llint ( ats_llint_type i1, ats_llint_type i2 ) { return (i1 >= i2 ? i1 : i2) ; } // end of [atspre_max_llint_llint] ATSinline() ats_llint_type atspre_min_llint_llint ( ats_llint_type i1, ats_llint_type i2 ) { return (i1 <= i2 ? i1 : i2) ; } // end of [atspre_min_llint_llint] // // print functions // ATSinline() ats_void_type atspre_fprint_llint ( ats_ptr_type out, ats_llint_type i ) { int n = fprintf ((FILE*)out, "%lli", i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_llint] failed.\n") ; } return ; } // end of [atspre_fprint_llint] ATSinline() ats_void_type atspre_print_llint (ats_llint_type lli) { // atspre_stdout_view_get () ; atspre_fprint_llint ((ats_ptr_type)stdout, lli) ; // atspre_stdout_view_set () ; return ; } // end of [atspre_print_llint] ATSinline() ats_void_type atspre_prerr_llint (ats_llint_type lli) { // atspre_stderr_view_get () ; atspre_fprint_llint ((ats_ptr_type)stderr, lli) ; // atspre_stderr_view_set () ; return ; } // end of [atspre_prerr_llint] /* ****** ****** */ // /* unsigned long long integers */ // /* ****** ****** */ ATSinline() ats_ullint_type atspre_ullint_of_int (ats_int_type i) { return ((ats_ullint_type)i) ; } // end of [atspre_ullint_of_int] ATSinline() ats_ullint_type atspre_ullint_of_uint (ats_uint_type u) { return ((ats_ullint_type)u) ; } // end of [atspre_ullint_of_uint] #if (0) // // HX: defined in $ATSHOME/prelude/CATS/float.cats // ATSinline() ats_ullint_type atspre_ullint_of_double (ats_double_type d) { return ((ats_ullint_type)d) ; } // end of [atspre_ullint_of_double] #endif // end of [#if 0] /* ****** ****** */ ATSinline() ats_ullint_type atspre_succ_ullint (ats_ullint_type i) { return (i + 1) ; } ATSinline() ats_ullint_type atspre_pred_ullint (ats_ullint_type i) { return (i - 1) ; } ATSinline() ats_ullint_type atspre_add_ullint_ullint ( ats_ullint_type i1, ats_ullint_type i2 ) { return (i1 + i2) ; } // end of [atspre_add_ullint_ullint] ATSinline() ats_ullint_type atspre_sub_ullint_ullint ( ats_ullint_type i1, ats_ullint_type i2 ) { return (i1 - i2) ; } // end of [atspre_sub_ullint_ullint] ATSinline() ats_ullint_type atspre_mul_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 * i2) ; } ATSinline() ats_ullint_type atspre_div_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 / i2) ; } ATSinline() ats_ullint_type atspre_mod_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 % i2) ; } ATSinline() ats_bool_type atspre_lt_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 != i2) ; } // // compare, max and min // ATSinline() ats_int_type atspre_compare_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } // end of [atspre_compare_ullint_ullint] ATSinline() ats_ullint_type atspre_max_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 >= i2 ? i1 : i2) ; } ATSinline() ats_ullint_type atspre_min_ullint_ullint (ats_ullint_type i1, ats_ullint_type i2) { return (i1 <= i2 ? i1 : i2) ; } // // print functions // ATSinline() ats_void_type atspre_fprint_ullint ( ats_ptr_type out, ats_ullint_type i ) { int n = fprintf ((FILE*)out, "%llu", i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_ullint] failed.\n") ; } return ; } // end of [atspre_fprint_ullint] ATSinline() ats_void_type atspre_print_ullint (ats_ullint_type i) { // atspre_stdout_view_get () ; atspre_fprint_ullint ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } // end of [atspre_print_ullint] ATSinline() ats_void_type atspre_prerr_ullint (ats_ullint_type i) { // atspre_stderr_view_get () ; atspre_fprint_ullint ((ats_ptr_type)stderr, i) ; // atspre_stderr_view_set () ; return ; } // end of [atspre_prerr_ullint] /* ****** ****** */ #endif /* ATS_PRELUDE_INTEGER_CATS */ /* end of [integer.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/matrix.cats0000644000175000017500000000422013431250607022667 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_MATRIX_CATS #define ATS_PRELUDE_MATRIX_CATS /* ****** ****** */ ATSinline() ats_ptr_type atspre_matrix_ptr_takeout_row_tsz ( ats_ptr_type base , ats_size_type iofs , ats_size_type ncol , ats_size_type tsz ) { return (ats_ptr_type)((char*)base + (iofs * ncol) * tsz) ; } /* end of [atspre_matrix_ptr_takeout_row_tsz] */ /* ****** ****** */ ATSinline() ats_ptr_type atspre_matrix_ptr_takeout_elt_tsz ( ats_ptr_type base , ats_size_type iofs , ats_size_type ncol , ats_size_type jofs , ats_size_type tsz ) { return (ats_ptr_type)((char*)base + (iofs * ncol + jofs) * tsz) ; } /* end of [atspre_matrix_ptr_takeout_tsz_tsz] */ /* ****** ****** */ #endif /* ATS_PRELUDE_MATRIX_CATS */ /* end of [matrix.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/float.cats0000644000175000017500000005002713431250607022476 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_FLOAT_CATS #define ATS_PRELUDE_FLOAT_CATS /* ****** ****** */ #include /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ // // HX: these functions are in [stdlib.h] // extern double atof (const char *str) ; extern long int atol (const char *str) ; extern long long int atoll (const char *str) ; /* ****** ****** */ #include "ats_types.h" /* ****** ****** */ extern ats_ptr_type atspre_tostringf (ats_ptr_type fmt, ...) ; extern ats_void_type ats_exit_errmsg(ats_int_type n, ats_ptr_type msg) ; /* ****** ****** */ /* floating point numbers of single precision */ /* ****** ****** */ ATSinline() ats_int_type atspre_int_of_float (ats_float_type f) { return f ; } ATSinline() ats_lint_type atspre_lint_of_float (ats_float_type f) { return f ; } ATSinline() ats_llint_type atspre_llint_of_float (ats_float_type f) { return f ; } // ATSinline() ats_float_type atspre_float_of_int (ats_int_type i) { return (ats_float_type)i ; } ATSinline() ats_float_type atspre_float_of_uint (ats_uint_type u) { return (ats_float_type)u ; } // ATSinline() ats_float_type atspre_float_of_lint (ats_lint_type i) { return (ats_float_type)i ; } ATSinline() ats_float_type atspre_float_of_ulint (ats_ulint_type u) { return (ats_float_type)u ; } // ATSinline() ats_float_type atspre_float_of_llint (ats_llint_type i) { return (ats_float_type)i ; } ATSinline() ats_float_type atspre_float_of_ullint (ats_ullint_type u) { return (ats_float_type)u ; } // ATSinline() ats_float_type atspre_float_of_size (ats_size_type sz) { return (ats_float_type)sz ; } // ATSinline() ats_float_type atspre_float_of_double (ats_double_type d) { return (ats_float_type)d ; } // end of [atspre_float_of_double] ATSinline() ats_float_type atspre_float_of_string (const ats_ptr_type s) { return (ats_float_type)(atof ((char *)s)) ; } // end of [atspre_float_of_string] /* ****** ****** */ ATSinline() ats_float_type atspre_abs_float (ats_float_type f) { return (f >= 0.0 ? f : -f) ; } // end of [atspre_abs_float] ATSinline() ats_float_type atspre_neg_float (ats_float_type f) { return (-f) ; } ATSinline() ats_float_type atspre_succ_float (ats_float_type f) { return (f + 1.0) ; } ATSinline() ats_float_type atspre_pred_float (ats_float_type f) { return (f - 1.0) ; } // ATSinline() ats_float_type atspre_add_float_float (ats_float_type f1, ats_float_type f2) { return (f1 + f2) ; } // end of [atspre_add_float_float] ATSinline() ats_float_type atspre_sub_float_float (ats_float_type f1, ats_float_type f2) { return (f1 - f2) ; } // end of [atspre_sub_float_float] // ATSinline() ats_float_type atspre_mul_float_float (ats_float_type f1, ats_float_type f2) { return (f1 * f2) ; } // end of [atspre_mul_float_float] ATSinline() ats_float_type atspre_mul_int_float (ats_int_type i1, ats_float_type f2) { return ((float)i1 * f2) ; } // end of [atspre_mul_int_float] ATSinline() ats_float_type atspre_mul_float_int (ats_float_type f1, ats_int_type i2) { return (f1 * (float)i2) ; } // end of [atspre_mul_float_int] // ATSinline() ats_float_type atspre_div_float_float (ats_float_type f1, ats_float_type f2) { return (f1 / f2) ; } // end of [atspre_div_float_float] ATSinline() ats_float_type atspre_div_float_int (ats_float_type f1, ats_int_type i2) { return (f1 / (float)i2) ; } // end of [atspre_div_float_int] ATSinline() ats_float_type atspre_div_int_float (ats_float_type i1, ats_int_type f2) { return ((float)i1 / f2) ; } // end of [atspre_div_int_float] // ATSinline() ats_bool_type atspre_lt_float_float ( ats_float_type f1, ats_float_type f2 ) { return (f1 < f2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lt_float_float] ATSinline() ats_bool_type atspre_lte_float_float ( ats_float_type f1, ats_float_type f2 ) { return (f1 <= f2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lte_float_float] ATSinline() ats_bool_type atspre_gt_float_float ( ats_float_type f1, ats_float_type f2 ) { return (f1 > f2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gt_float_float] ATSinline() ats_bool_type atspre_gte_float_float ( ats_float_type f1, ats_float_type f2 ) { return (f1 >= f2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gte_float_float] ATSinline() ats_bool_type atspre_eq_float_float ( ats_float_type f1, ats_float_type f2 ) { return (f1 == f2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_eq_float_float] ATSinline() ats_bool_type atspre_neq_float_float ( ats_float_type f1, ats_float_type f2 ) { return (f1 != f2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_neq_float_float] // compare, max and min ATSinline() ats_int_type atspre_compare_float_float (ats_float_type f1, ats_float_type f2) { if (f1 < f2) return (-1) ; if (f1 > f2) return ( 1) ; return 0 ; } ATSinline() ats_float_type atspre_max_float_float (ats_float_type f1, ats_float_type f2) { return (f1 >= f2) ? f1 : f2 ; } ATSinline() ats_float_type atspre_min_float_float (ats_float_type f1, ats_float_type f2) { return (f1 <= f2) ? f1 : f2 ; } // square function ATSinline() ats_float_type atspre_square_float (ats_float_type f) { return (f * f) ; } // cube function ATSinline() ats_float_type atspre_cube_float (ats_float_type f) { return (f * f * f) ; } // print function ATSinline() ats_void_type atspre_fprint_float ( ats_ptr_type out, ats_float_type f ) { int n = fprintf ((FILE*)out, "%f", f) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_float] failed.\n") ; } // end of [if] return ; } /* end of [atspre_fprint_float] */ ATSinline() ats_void_type atspre_print_float (ats_float_type f) { // atspre_stdout_view_get () ; atspre_fprint_float ((ats_ptr_type)stdout, f) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_float (ats_float_type f) { // atspre_stderr_view_get () ; atspre_fprint_float ((ats_ptr_type)stderr, f) ; // atspre_stderr_view_set () ; return ; } // stringization ATSinline() ats_ptr_type atspre_tostrptr_float (ats_float_type f) { return atspre_tostringf ((ats_ptr_type)"%f", f) ; } // end of [atspre_tostrptr_float] /* ****** ****** */ /* floating point numbers of double precision */ /* ****** ****** */ ATSinline() ats_int_type atspre_int_of_double (ats_double_type d) { return (ats_int_type)d ; } ATSinline() ats_lint_type atspre_lint_of_double (ats_double_type d) { return (ats_lint_type)d ; } ATSinline() ats_llint_type atspre_llint_of_double (ats_double_type d) { return (ats_llint_type)d ; } // end of [atspre_llint_of_double] ATSinline() ats_ullint_type atspre_ullint_of_double (ats_double_type d) { return ((ats_ullint_type)d) ; } // end of [atspre_ullint_of_double] /* ****** ****** */ ATSinline() ats_double_type atspre_double_of_int (ats_int_type i) { return (ats_double_type)i ; } // end of [atspre_double_of_int] ATSinline() ats_double_type atspre_double_of_uint (ats_uint_type u) { return (ats_double_type)u ; } // end of [atspre_double_of_uint] ATSinline() ats_double_type atspre_double_of_lint (ats_lint_type i) { return (ats_double_type)i ; } // end of [atspre_double_of_lint] ATSinline() ats_double_type atspre_double_of_ulint (ats_ulint_type u) { return (ats_double_type)u ; } // end of [atspre_double_of_ulint] ATSinline() ats_double_type atspre_double_of_llint (ats_llint_type i) { return (ats_double_type)i ; } // end of [atspre_double_of_llint] ATSinline() ats_double_type atspre_double_of_ullint (ats_ullint_type u) { return (ats_double_type)u ; } // end of [atspre_double_of_ullint] ATSinline() ats_double_type atspre_double_of_size (ats_size_type sz) { return (ats_double_type)sz ; } // end of [atspre_double_of_size] ATSinline() ats_double_type atspre_double_of_float (ats_float_type f) { return (ats_double_type)f ; } // end of [atspre_double_of_float] ATSinline() ats_double_type atspre_double_of_string (const ats_ptr_type s) { return (ats_double_type)(atof ((char*)s)) ; } // end of [atspre_double_of_string] /* ****** ****** */ ATSinline() ats_double_type atspre_abs_double (ats_double_type f) { return (f >= 0.0 ? f : -f) ; } // end of [atspre_abs_double] ATSinline() ats_double_type atspre_neg_double (ats_double_type f) { return (-f) ; } ATSinline() ats_double_type atspre_succ_double (ats_double_type f) { return (f + 1.0) ; } ATSinline() ats_double_type atspre_pred_double (ats_double_type f) { return (f - 1.0) ; } /* ****** ****** */ ATSinline() ats_double_type atspre_add_double_double (ats_double_type f1, ats_double_type f2) { return (f1 + f2) ; } // end of [atspre_add_double_double] ATSinline() ats_double_type atspre_add_double_int (ats_double_type f1, ats_int_type i2) { return (f1 + i2) ; } // end of [atspre_add_double_int] ATSinline() ats_double_type atspre_add_int_double (ats_int_type i1, ats_double_type f2) { return (i1 + f2) ; } // end of [atspre_add_int_double] ATSinline() ats_double_type atspre_sub_double_double (ats_double_type f1, ats_double_type f2) { return (f1 - f2) ; } // end of [atspre_sub_double_double] ATSinline() ats_double_type atspre_sub_double_int (ats_double_type f1, ats_int_type i2) { return (f1 - i2) ; } ATSinline() ats_double_type atspre_sub_int_double (ats_int_type i1, ats_double_type f2) { return (i1 - f2) ; } // end of [atspre_sub_int_double] ATSinline() ats_double_type atspre_mul_double_double (ats_double_type d1, ats_double_type d2) { return (d1 * d2) ; } // end of [atspre_mul_double_double] ATSinline() ats_double_type atspre_mul_double_int (ats_double_type d1, ats_int_type i2) { return (d1 * (double)i2) ; } // end of [atspre_mul_double_int] ATSinline() ats_double_type atspre_mul_int_double (ats_int_type i1, ats_double_type d2) { return ((double)i1 * d2) ; } // end of [atspre_mul_int_double] ATSinline() ats_double_type atspre_div_double_double (ats_double_type d1, ats_double_type d2) { return (d1 / d2) ; } // end of [atspre_div_double_double] ATSinline() ats_double_type atspre_div_double_int (ats_double_type d1, ats_int_type i2) { return (d1 / (double)i2) ; } // end of [atspre_div_double_int] ATSinline() ats_double_type atspre_div_int_double (ats_int_type i1, ats_double_type d2) { return ((double)i1 / d2) ; } // end of [atspre_div_int_double] ATSinline() ats_bool_type atspre_lt_double_double ( ats_double_type d1, ats_double_type d2 ) { return (d1 < d2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lt_double_double] ATSinline() ats_bool_type atspre_lte_double_double ( ats_double_type d1, ats_double_type d2 ) { return (d1 <= d2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lte_double_double] ATSinline() ats_bool_type atspre_gt_double_double (ats_double_type d1, ats_double_type d2) { return (d1 > d2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gt_double_double] ATSinline() ats_bool_type atspre_gte_double_double (ats_double_type d1, ats_double_type d2) { return (d1 >= d2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gte_double_double] ATSinline() ats_bool_type atspre_eq_double_double (ats_double_type d1, ats_double_type d2) { return (d1 == d2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_eq_double_double] ATSinline() ats_bool_type atspre_neq_double_double (ats_double_type d1, ats_double_type d2) { return (d1 != d2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_neq_double_double] // // compare, max and min // ATSinline() ats_int_type atspre_compare_double_double (ats_double_type d1, ats_double_type d2) { if (d1 < d2) return (-1) ; else if (d1 > d2) return ( 1) ; else return 0 ; } // end of [atspre_compare_double_double] ATSinline() ats_double_type atspre_max_double_double (ats_double_type d1, ats_double_type d2) { return (d1 >= d2) ? d1 : d2 ; } // end of [atspre_max_double_double] ATSinline() ats_double_type atspre_min_double_double (ats_double_type d1, ats_double_type d2) { return (d1 <= d2) ? d1 : d2 ; } // end of [atspre_min_double_double] // square function ATSinline() ats_double_type atspre_square_double (ats_double_type d) { return (d * d) ; } // cube function ATSinline() ats_double_type atspre_cube_double (ats_double_type d) { return (d * d * d) ; } // print functions ATSinline() ats_void_type atspre_fprint_double (ats_ptr_type out, ats_double_type f) { int n = fprintf ((FILE *)out, "%f", f) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_double] failed.\n") ; } // end of [if] return ; } /* end of [atspre_fprint_double] */ ATSinline() ats_void_type atspre_print_double (ats_double_type f) { // atspre_stdout_view_get () ; atspre_fprint_double ((ats_ptr_type)stdout, f) ; // atspre_stdout_view_set () ; return ; } // end of [atspre_print_double] ATSinline() ats_void_type atspre_prerr_double (ats_double_type f) { // atspre_stderr_view_get () ; atspre_fprint_double ((ats_ptr_type)stderr, f) ; // atspre_stderr_view_set () ; return ; } // end of [atspre_prerr_double] // stringization ATSinline() ats_ptr_type atspre_tostrptr_double (ats_double_type f) { return atspre_tostringf ((ats_ptr_type)"%f", f) ; } // end of [atspre_tostrptr_double] /* ****** ****** */ /* floating point numbers of long double precision */ /* ****** ****** */ ATSinline() ats_int_type atspre_int_of_ldouble (ats_ldouble_type ld) { return ld ; } ATSinline() ats_lint_type atspre_lint_of_ldouble (ats_ldouble_type ld) { return ld ; } ATSinline() ats_llint_type atspre_llint_of_ldouble (ats_ldouble_type ld) { return ld ; } // ATSinline() ats_ldouble_type atspre_ldouble_of_int (ats_int_type i) { return ((ats_ldouble_type)i) ; } // end of [atspre_ldouble_of_int] ATSinline() ats_ldouble_type atspre_ldouble_of_lint (ats_lint_type li) { return (ats_ldouble_type)li ; } // end of [atspre_ldouble_of_lint] ATSinline() ats_ldouble_type atspre_ldouble_of_llint (ats_llint_type lli) { return (ats_ldouble_type)lli ; } // end of [atspre_ldouble_of_llint] // ATSinline() ats_ldouble_type atspre_ldouble_of_float (ats_float_type f) { return ((ats_ldouble_type)f) ; } // end of [atspre_ldouble_of_float] ATSinline() ats_ldouble_type atspre_ldouble_of_double (ats_double_type d) { return ((ats_ldouble_type)d) ; } // end of [atspre_ldouble_of_double] // ATSinline() ats_ldouble_type atspre_abs_ldouble (ats_ldouble_type f) { return (f >= 0.0 ? f : -f) ; } ATSinline() ats_ldouble_type atspre_neg_ldouble (ats_ldouble_type f) { return (-f) ; } ATSinline() ats_ldouble_type atspre_succ_ldouble (ats_ldouble_type f) { return (f + 1.0) ; } ATSinline() ats_ldouble_type atspre_pred_ldouble (ats_ldouble_type f) { return (f - 1.0) ; } ATSinline() ats_ldouble_type atspre_add_ldouble_ldouble (ats_ldouble_type f1, ats_ldouble_type f2) { return (f1 + f2) ; } // end of [atspre_add_ldouble_ldouble] ATSinline() ats_ldouble_type atspre_sub_ldouble_ldouble (ats_ldouble_type f1, ats_ldouble_type f2) { return (f1 - f2) ; } // end of [atspre_sub_ldouble_ldouble] // ATSinline() ats_ldouble_type atspre_mul_ldouble_ldouble (ats_ldouble_type ld1, ats_ldouble_type ld2) { return (ld1 * ld2) ; } // end of [atspre_mul_ldouble_ldouble] ATSinline() ats_ldouble_type atspre_mul_int_ldouble (ats_int_type i1, ats_ldouble_type ld2) { return ((long double)i1 * ld2) ; } // end of [atspre_mul_int_ldouble] ATSinline() ats_ldouble_type atspre_mul_ldouble_int (ats_ldouble_type ld1, ats_int_type i2) { return (ld1 * (long double)i2) ; } // end of [atspre_mul_ldouble_int] // ATSinline() ats_ldouble_type atspre_div_ldouble_ldouble ( ats_ldouble_type ld1, ats_ldouble_type ld2 ) { return (ld1 / ld2) ; } // end of [atspre_div_ldouble_ldouble] ATSinline() ats_ldouble_type atspre_div_ldouble_int (ats_ldouble_type ld1, ats_int_type i2) { return (ld1 / (long double)i2) ; } // end of [atspre_div_ldouble_int] // ATSinline() ats_bool_type atspre_lt_ldouble_ldouble (ats_ldouble_type ld1, ats_ldouble_type ld2) { return (ld1 == ld2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lt_ldouble_ldouble] ATSinline() ats_bool_type atspre_lte_ldouble_ldouble (ats_ldouble_type ld1, ats_ldouble_type ld2) { return (ld1 <= ld2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lte_ldouble_ldouble] ATSinline() ats_bool_type atspre_gt_ldouble_ldouble (ats_ldouble_type ld1, ats_ldouble_type ld2) { return (ld1 > ld2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gt_ldouble_ldouble] ATSinline() ats_bool_type atspre_gte_ldouble_ldouble (ats_ldouble_type ld1, ats_ldouble_type ld2) { return (ld1 >= ld2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gte_ldouble_ldouble] ATSinline() ats_bool_type atspre_eq_ldouble_ldouble ( ats_ldouble_type ld1, ats_ldouble_type ld2 ) { return (ld1 == ld2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_eq_ldouble_ldouble] ATSinline() ats_bool_type atspre_neq_ldouble_ldouble ( ats_ldouble_type ld1, ats_ldouble_type ld2 ) { return (ld1 != ld2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_neq_ldouble_ldouble] // compare, max and min ATSinline() ats_int_type atspre_compare_ldouble_ldouble (ats_ldouble_type ld1, ats_ldouble_type ld2) { if (ld1 < ld2) return (-1) ; else if (ld1 > ld2) return ( 1) ; else return 0 ; } // end of [atspre_compare_ldouble_ldouble] ATSinline() ats_ldouble_type atspre_max_ldouble_ldouble (ats_ldouble_type ld1, ats_ldouble_type ld2) { return (ld1 >= ld2) ? ld1 : ld2 ; } // end of [atspre_max_ldouble_ldouble] ATSinline() ats_ldouble_type atspre_min_ldouble_ldouble (ats_ldouble_type ld1, ats_ldouble_type ld2) { return (ld1 <= ld2) ? ld1 : ld2 ; } // end of [atspre_min_ldouble_ldouble] // square function ATSinline() ats_ldouble_type atspre_square_ldouble (ats_ldouble_type ld) { return (ld * ld) ; } // cube function ATSinline() ats_ldouble_type atspre_cube_ldouble (ats_ldouble_type ld) { return (ld * ld * ld) ; } // print functions ATSinline() ats_void_type atspre_fprint_ldouble ( ats_ptr_type out, ats_ldouble_type f ) { int n = fprintf ((FILE *)out, "%Lf", f) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_ldouble] failed.\n") ; } // end of [if] return ; } /* end of [atspre_fprint_ldouble] */ ATSinline() ats_void_type atspre_print_ldouble (ats_ldouble_type f) { // atspre_stdout_view_get () ; atspre_fprint_ldouble ((ats_ptr_type)stdout, f) ; // atspre_stdout_view_set () ; return ; } // end of [atspre_print_ldouble] ATSinline() ats_void_type atspre_prerr_ldouble (ats_ldouble_type f) { // atspre_stderr_view_get () ; atspre_fprint_ldouble ((ats_ptr_type)stderr, f) ; // atspre_stderr_view_set () ; return ; } // end of [atspre_prerr_ldouble] // stringization ATSinline() ats_ptr_type atspre_tostrptr_ldouble (ats_ldouble_type f) { return atspre_tostringf ((ats_ptr_type)"%Lf", f) ; } // end of [atspre_tostrptr_ldouble] /* ****** ****** */ #endif /* ATS_PRELUDE_FLOAT_CATS */ /* end of [float.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/char.cats0000644000175000017500000001605713431250607022313 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_CHAR_CATS #define ATS_PRELUDE_CHAR_CATS /* ****** ****** */ #include /* ****** ****** */ #if(0) #ifndef isascii extern int isascii (int c) ; // _XOPEN_SOURCE #endif // end of [isascii] #ifndef isblank extern int isblank (int c) ; // _XOPEN_SOURCE >= 600 #endif // end of [isblank] #ifndef toascii extern int toascii (int c) ; // _XOPEN_SOURCE #endif // end of [toascii] #endif // end of [ #if(0) ] /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ // // HX: implemented in [prelude/DATS/basics.dats] // extern ats_void_type ats_exit_errmsg(ats_int_type n, ats_ptr_type msg) ; /* ****** ****** */ /* // // HX: these are now casting functions: // ATSinline() ats_char_type atspre_char_of_schar (ats_schar_type c) { return c ; } ATSinline() ats_schar_type atspre_schar_of_char (ats_char_type c) { return c ; } ATSinline() ats_char_type atspre_char_of_uchar (ats_uchar_type c) { return c ; } ATSinline() ats_uchar_type atspre_uchar_of_char (ats_char_type c) { return c ; } */ /* ****** ****** */ ATSinline() ats_char_type atspre_char_of_int (ats_int_type i) { return i ; } ATSinline() ats_schar_type atspre_schar_of_int (ats_int_type i) { return i ; } ATSinline() ats_uchar_type atspre_uchar_of_int (ats_int_type i) { return i ; } /* ****** ****** */ ATSinline() ats_char_type atspre_char_of_uint (ats_uint_type u) { return u ; } ATSinline() ats_schar_type atspre_schar_of_uint (ats_uint_type u) { return u ; } ATSinline() ats_uchar_type atspre_uchar_of_uint (ats_uint_type u) { return u ; } /* ****** ****** */ #define atspre_char1_of_char atspre_char_of_char #define atspre_char1_of_int atspre_char_of_int #define atspre_char1_of_uint atspre_char_of_uint /* ****** ****** */ ATSinline() ats_int_type atspre_sub_char_char ( ats_char_type c1 , ats_char_type c2 ) { return (c1 - c2) ; } /* end of [atspre_sub_char_char] */ /* ****** ****** */ ATSinline() ats_bool_type atspre_lt_char_char (ats_char_type c1, ats_char_type c2) { return (c1 < c2) ; } // end of [atspre_lt_char_char] ATSinline() ats_bool_type atspre_lte_char_char (ats_char_type c1, ats_char_type c2) { return (c1 <= c2) ; } // end of [atspre_lte_char_char] ATSinline() ats_bool_type atspre_gt_char_char (ats_char_type c1, ats_char_type c2) { return (c1 > c2) ; } // end of [atspre_gt_char_char] ATSinline() ats_bool_type atspre_gte_char_char (ats_char_type c1, ats_char_type c2) { return (c1 >= c2) ; } // end of [atspre_gte_char_char] ATSinline() ats_bool_type atspre_eq_char_char (ats_char_type c1, ats_char_type c2) { return (c1 == c2) ; } // end of [atspre_eq_char_char] ATSinline() ats_bool_type atspre_neq_char_char (ats_char_type c1, ats_char_type c2) { return (c1 != c2) ; } // end of [atspre_neq_char_char] ATSinline() ats_int_type atspre_compare_char_char (ats_char_type c1, ats_char_type c2) { int i = c1 - c2 ; if (i > 0) return 1 ; if (i < 0) return -1 ; return 0 ; } /* end of [atspre_compare_char_char] */ /* ****** ****** */ // // HX: print functions // ATSinline() ats_void_type atspre_fprint_char ( ats_ptr_type out, ats_char_type c ) { int n = fputc ((unsigned char)c, (FILE*)out) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"Exit: [fprint_char] failed.\n") ; } // end of [if] return ; } // end of [atspre_fprint_char] ATSinline() ats_void_type atspre_print_char (ats_char_type c) { // atspre_stdout_view_get () ; atspre_fprint_char((ats_ptr_type)stdout, c) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_char (ats_char_type c) { // atspre_stderr_view_get () ; atspre_fprint_char((ats_ptr_type)stderr, c) ; // atspre_stderr_view_set () ; return ; } // stringization ATSinline() ats_ptr_type atspre_tostrptr_char (ats_char_type c) { char *p ; p = (char *)ATS_MALLOC(2) ; *p = (char)c ; *(p+1) = '\000' ; return (ats_ptr_type)p ; } // end of [atspre_tostrptr_char] /* ****** ****** */ ATSinline() ats_bool_type atspre_char_isalnum (ats_char_type c) { return isalnum((int)c) ; } ATSinline() ats_bool_type atspre_char_isalpha (ats_char_type c) { return isalpha((int)c) ; } /* ****** ****** */ ATSinline() ats_bool_type atspre_char_isascii (ats_char_type c) { return isascii((int)c) ; } /* ****** ****** */ ATSinline() ats_bool_type atspre_char_isblank (ats_char_type c) { return isblank((int)c) ; } /* ****** ****** */ ATSinline() ats_bool_type atspre_char_iscntrl (ats_char_type c) { return iscntrl((int)c) ; } ATSinline() ats_bool_type atspre_char_isdigit (ats_char_type c) { return isdigit((int)c) ; } ATSinline() ats_bool_type atspre_char_isgraph (ats_char_type c) { return isgraph((int)c) ; } ATSinline() ats_bool_type atspre_char_islower (ats_char_type c) { return islower((int)c) ; } ATSinline() ats_bool_type atspre_char_isnull (ats_char_type c) { return (c == '\000' ? ats_true_bool : ats_false_bool) ; } // end of [atspre_char_isnull] ATSinline() ats_bool_type atspre_char_isprint (ats_char_type c) { return isprint((int)c) ; } ATSinline() ats_bool_type atspre_char_ispunct (ats_char_type c) { return ispunct((int)c) ; } ATSinline() ats_bool_type atspre_char_isspace (ats_char_type c) { return isspace((int)c) ; } ATSinline() ats_bool_type atspre_char_isupper (ats_char_type c) { return isupper((int)c) ; } ATSinline() ats_bool_type atspre_char_isxdigit (ats_char_type c) { return isxdigit((int)c) ; } /* ****** ****** */ ATSinline() ats_char_type atspre_char_tolower (ats_char_type c) { return (int)tolower((int)c) ; } ATSinline() ats_char_type atspre_char_toupper (ats_char_type c) { return (int)toupper((int)c) ; } /* ****** ****** */ #endif /* ATS_PRELUDE_CHAR_CATS */ /* end of [char.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/printf.cats0000644000175000017500000000625213431250607022674 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_PRINTF_CATS #define ATS_PRELUDE_PRINTF_CATS /* ****** ****** */ #include #include /* ****** ****** */ extern ats_void_type ats_exit_errmsg (ats_int_type n, ats_ptr_type msg) ; extern ats_void_type atspre_stdout_view_get() ; extern ats_void_type atspre_stdout_view_set() ; /* ****** ****** */ static ats_int_type atspre_fprintf_err (ats_ptr_type file, ats_ptr_type fmt, ...) { int n ; va_list ap ; va_start(ap, fmt) ; n = vfprintf((FILE *)file, (char *)fmt, ap) ; va_end(ap) ; return n ; } // end of [atspre_fprintf_err] static ats_void_type atspre_fprintf_exn ( ats_ptr_type file, ats_ptr_type fmt, ... ) { int n ; va_list ap ; va_start(ap, fmt) ; n = vfprintf((FILE *)file, (char *)fmt, ap) ; va_end(ap) ; if (n < 0) { ats_exit_errmsg(n, (ats_ptr_type)"exit(ATS): [fprintf] failed\n") ; } // end of [if] return ; } // end of [atspre_fprintf_exn] /* ****** ****** */ static ats_void_type atspre_printf_exn ( ats_ptr_type fmt, ... ) { int n ; va_list ap ; atspre_stdout_view_get() ; va_start(ap, fmt) ; n = vprintf((char*)fmt, ap) ; va_end(ap) ; atspre_stdout_view_set() ; if (n < 0) { ats_exit_errmsg(n, (ats_ptr_type)"exit(ATS): [printf] failed\n") ; } // end of [if] return ; } // end of [atspre_printf_exn] static ats_void_type atspre_prerrf_exn ( ats_ptr_type fmt, ... ) { int n ; va_list ap ; atspre_stderr_view_get() ; va_start(ap, fmt) ; n = vfprintf(stderr, (char *)fmt, ap) ; va_end(ap) ; atspre_stderr_view_set() ; if (n < 0) { ats_exit_errmsg(n, (ats_ptr_type)"exit(ATS): [prerrf] failed\n") ; } // end of [if] return ; } // end of [atspre_prerrf_exn] /* ****** ****** */ #endif /* ATS_PRELUDE_PRINTF_CATS */ /* end of [printf.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/reference.cats0000644000175000017500000000453113431250607023326 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_REFERENCE_CATS #define ATS_PRELUDE_REFERENCE_CATS /* ****** ****** */ #ifdef memcpy // // HX: [memcpy] is a macro on MACOS // #else // // in [string.h] // extern void *memcpy(void *dest, const void *src, size_t n) ; // #endif // memcpy /* ****** ****** */ ATSinline() ats_ptr_type atspre_ref_make_elt_tsz ( ats_ptr_type p0, ats_size_type sz ) { ats_ptr_type p ; p = ATS_MALLOC(sz) ; memcpy (p, p0, sz) ; return p ; } // end of [atspre_ref_make_elt_tsz] ATSinline() ats_ptr_type atspre_ref_void_make () { return (ats_ptr_type)0 ; } ATSinline() ats_ptr_type atspre_ref_make_view_ptr (ats_ptr_type p) { return p ; } /* ****** ****** */ // // HX-2011-01-12: it is now a casting function; this is // kept for backward compatibility // ATSinline() ats_ptr_type atspre_ref_get_view_ptr (ats_ptr_type r) { return r ; } /* ****** ****** */ #endif /* ATS_PRELUDE_REFERENCE_CATS */ /* end of [reference.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/lazy_vt.cats0000644000175000017500000000460113431250607023056 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /***********************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi, Boston University ** ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. ** */ /* ****** ****** */ // author of the file: Hongwei Xi (hwxi AT cs DOT bu DOT edu) /* ****** ****** */ #ifndef ATS_PRELUDE_LAZY_VT_CATS #define ATS_PRELUDE_LAZY_VT_CATS /* ****** ****** */ extern void free (void*) ; // see [stdlib.h] /* ****** ****** */ #define ats_instr_move_lazy_ldelay_mac(tmp, hit, vp_clo) \ do { tmp = (vp_clo) ; } while (0) /* end of [do ... while ...] */ #define ats_instr_move_lazy_lforce_mac(tmp, hit, vp_lazy) do { \ tmp = \ ((hit (*)(ats_ptr_type, ats_bool_type))ats_closure_fun(vp_lazy))(vp_lazy, ats_true_bool) ; \ ATS_FREE (vp_lazy) ; \ } while (0) /* end of [do ... while ...] */ /* ****** ****** */ /* ** HX: [lazy_vt_free] is declared in $ATSHOME/prelude/basics_dyn.sats */ ATSinline() ats_void_type ats_lazy_vt_free (ats_ptr_type vp_lazy) { ((void (*)(ats_ptr_type, ats_bool_type))ats_closure_fun(vp_lazy))(vp_lazy, ats_false_bool) ; ATS_FREE (vp_lazy) ; return ; } /* ats_lazy_vt_free */ /* ****** ****** */ #endif /* ATS_PRELUDE_LAZY_VT_CATS */ /* end of [lazy_vt.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/pointer.cats0000644000175000017500000001336313431250607023053 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_POINTER_CATS #define ATS_PRELUDE_POINTER_CATS /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ // // HX: [string.h] // #ifdef memset // // HX: [memset] is a macro on MACOS // #else extern void *memset(void *s, int c, size_t n); #endif #ifdef memcpy // // HX: [memcpy] is a macro on MACOS // #else extern void *memcpy(void *dest, const void *src, size_t n) ; #endif /* ****** ****** */ static ats_ptr_type atspre_null_ptr = (ats_ptr_type)0 ; ATSinline() ats_bool_type atspre_ptr_is_null (ats_ptr_type p) { return (p == (ats_ptr_type)0 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_ptr_is_null] ATSinline() ats_bool_type atspre_ptr_isnot_null (ats_ptr_type p) { return (p != (ats_ptr_type)0 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_ptr_isnot_null] /* ****** ****** */ // // HX-2010-04-19: // this one is to be used by various "free_null" functions // ATSinline() ats_void_type atspre_ptr_free_null (ats_ptr_type p) { return ; } // end of [atspre_ptr_free_null] /* ****** ****** */ ATSinline() ats_ptr_type atspre_psucc (ats_ptr_type p) { return (ats_ptr_type)((ats_byte_type*)p + 1) ; } ATSinline() ats_ptr_type atspre_ppred (ats_ptr_type p) { return (ats_ptr_type)((ats_byte_type*)p - 1) ; } /* ****** ****** */ ATSinline() ats_ptr_type atspre_padd_int ( ats_ptr_type p, ats_int_type n ) { return (ats_ptr_type)((ats_byte_type*)p + n) ; } // end of [atspre_padd_int] ATSinline() ats_ptr_type atspre_padd_size ( ats_ptr_type p, ats_size_type n ) { return (ats_ptr_type)((ats_byte_type*)p + n) ; } // end of [atspre_padd_size] ATSinline() ats_ptr_type atspre_psub_int ( ats_ptr_type p, ats_int_type n ) { return (ats_ptr_type)((ats_byte_type*)p - n) ; } // end of [atspre_psub_int] ATSinline() ats_ptr_type atspre_psub_size ( ats_ptr_type p, ats_size_type n ) { return (ats_ptr_type)((ats_byte_type*)p - n) ; } // end of [atspre_psub_size] ATSinline() ats_ptrdiff_type atspre_pdiff ( ats_ptr_type p1, ats_ptr_type p2 ) { return ((ats_byte_type*)p1 - (ats_byte_type*)p2) ; } /* ****** ****** */ ATSinline() ats_bool_type atspre_plt (ats_ptr_type p1, ats_ptr_type p2) { return (p1 < p2) ; } ATSinline() ats_bool_type atspre_plte (ats_ptr_type p1, ats_ptr_type p2) { return (p1 <= p2) ; } ATSinline() ats_bool_type atspre_pgt (ats_ptr_type p1, ats_ptr_type p2) { return (p1 > p2) ; } ATSinline() ats_bool_type atspre_pgte (ats_ptr_type p1, ats_ptr_type p2) { return (p1 >= p2) ; } ATSinline() ats_bool_type atspre_peq (ats_ptr_type p1, ats_ptr_type p2) { return (p1 == p2) ; } ATSinline() ats_bool_type atspre_pneq (ats_ptr_type p1, ats_ptr_type p2) { return (p1 != p2) ; } ATSinline() ats_int_type atspre_compare_ptr_ptr ( ats_ptr_type p1, ats_ptr_type p2 ) { if (p1 < p2) return (-1) ; else if (p1 > p2) return ( 1) ; else return (0) ; } /* end of [atspre_compare_ptr_ptr] */ /* ****** ****** */ // print functions ATSinline() ats_void_type atspre_fprint_ptr ( ats_ptr_type out, ats_ptr_type p ) { int n = fprintf ((FILE *)out, "%p", p) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_pointer] failed.\n") ; } /* end of [if] */ return ; } ATSinline() ats_void_type atspre_print_ptr(ats_ptr_type p) { // atspre_stdout_view_get() ; atspre_fprint_ptr ((ats_ptr_type)stdout, p) ; // atspre_stdout_view_set() ; return ; } ATSinline() ats_void_type atspre_prerr_ptr(ats_ptr_type p) { // atspre_stderr_view_get() ; atspre_fprint_ptr ((ats_ptr_type)stderr, p) ; // atspre_stderr_view_set() ; return ; } /* ****** ****** */ ATSinline() ats_ptr_type atspre_ptr_alloc_tsz (ats_size_type tsz) { ats_ptr_type p ; p = ATS_MALLOC(tsz) ; return (ats_ptr_type)p ; } // end of [atspre_ptr_alloc_tsz] ATSinline() ats_void_type atspre_ptr_free(ats_ptr_type ptr) { ATS_FREE(ptr) ; return ; } /* ****** ****** */ ATSinline() ats_void_type atspre_ptr_zero_tsz (ats_ref_type p, ats_size_type tsz) { memset (p, 0, tsz) ; return ; } // end of [atspre_ptr_zero] /* ****** ****** */ // HX: for both [ptr_move_t_tsz] and [ptr_move_vt_tsz] ATSinline() ats_void_type atspre_ptr_move_tsz ( ats_ptr_type p1 , ats_ptr_type p2 , ats_size_type tsz ) { memcpy ((void*)p2, (void*)p1, tsz) ; return ; } // end of ... /* ****** ****** */ #endif /* ATS_PRELUDE_POINTER_CATS */ /* end of [pointer.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/lazy.cats0000644000175000017500000000503313431250607022345 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /***********************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi, Boston University ** ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // author of the file: Hongwei Xi (hwxi AT cs DOT bu DOT edu) /* ****** ****** */ #ifndef ATS_PRELUDE_LAZY_CATS #define ATS_PRELUDE_LAZY_CATS /* ****** ****** */ /* typedef struct { ats_ptr_type tag ; ats_clo_ptr_type data ; } thunkvalue_struct ; */ typedef ats_ptr_type *thunkvalue ; /* ****** ****** */ #define ats_instr_move_lazy_delay_mac(tmp, hit, vp_clo) do { \ tmp = ATS_MALLOC ( \ sizeof(ats_ptr_type) + (sizeof(hit) <= sizeof(ats_ptr_type) ? sizeof(ats_ptr_type) : sizeof(hit)) \ ) ; /* end of [ATS_MALLOC] */ \ ((thunkvalue)tmp)[0] = (ats_ptr_type)0 ; ((thunkvalue)tmp)[1] = (vp_clo) ; \ } while (0) /* end of [do ... while ...] */ #define ats_instr_move_lazy_force_mac(tmp, hit, vp_lazy) do { \ if (((thunkvalue)vp_lazy)[0] == 0) { \ tmp = ((hit (*)(ats_clo_ptr_type))ats_closure_fun(((thunkvalue)vp_lazy)[1]))(((thunkvalue)vp_lazy)[1]) ; \ ((thunkvalue)vp_lazy)[0] += 1 ; \ *(hit*)(((thunkvalue)vp_lazy)+1) = tmp ; \ } else { \ tmp = *(hit*)(((thunkvalue)vp_lazy)+1) ; \ } /* end of [if] */ \ } while (0) /* end of [do ... while ...] */ /* ****** ****** */ #endif /* ATS_PRELUDE_LAZY_CATS */ /* end of [lazy.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/byte.cats0000644000175000017500000001322713431250607022335 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_BYTE_CATS #define ATS_PRELUDE_BYTE_CATS /* ****** ****** */ #include /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ extern ats_void_type ats_exit_errmsg (ats_int_type n, ats_ptr_type msg) ; /* ****** ****** */ /* // // HX: these are now casting functions: // ATSinline() ats_byte_type atspre_byte_of_char (ats_char_type c) { return c ; } ATSinline() ats_char_type atspre_char_of_byte (ats_byte_type b) { return b ; } */ /* ****** ****** */ ATSinline() ats_byte_type atspre_byte_of_int (ats_int_type i) { return i ; } ATSinline() ats_int_type atspre_int_of_byte (ats_byte_type b) { return b ; } /* ****** ****** */ ATSinline() ats_byte_type atspre_byte_of_uint (ats_uint_type u) { return u ; } ATSinline() ats_uint_type atspre_uint_of_byte (ats_byte_type b) { return b ; } /* ****** ****** */ // arithmetic operations ATSinline() ats_byte_type atspre_succ_byte(ats_byte_type i) { return (i + 1) ; } ATSinline() ats_byte_type atspre_pred_byte(ats_byte_type i) { return (i - 1) ; } ATSinline() ats_byte_type atspre_add_byte_byte(ats_byte_type i1, ats_byte_type i2) { return (i1 + i2) ; } ATSinline() ats_byte_type atspre_sub_byte_byte(ats_byte_type i1, ats_byte_type i2) { return (i1 - i2) ; } ATSinline() ats_byte_type atspre_mul_byte_byte(ats_byte_type i1, ats_byte_type i2) { return (i1 * i2) ; } ATSinline() ats_byte_type atspre_div_byte_byte(ats_byte_type i1, ats_byte_type i2) { return (i1 / i2) ; } /* ****** ****** */ ATSinline() ats_bool_type atspre_lt_byte_byte(ats_byte_type b1, ats_byte_type b2) { return (b1 < b2) ; } ATSinline() ats_bool_type atspre_lte_byte_byte(ats_byte_type b1, ats_byte_type b2) { return (b1 <= b2) ; } ATSinline() ats_bool_type atspre_gt_byte_byte(ats_byte_type b1, ats_byte_type b2) { return (b1 > b2) ; } ATSinline() ats_bool_type atspre_gte_byte_byte(ats_byte_type b1, ats_byte_type b2) { return (b1 >= b2) ; } /* ****** ****** */ ATSinline() ats_bool_type atspre_eq_byte_byte (ats_byte_type b1, ats_byte_type b2) { return (b1 == b2) ; } // end of [atspre_eq_byte_byte] ATSinline() ats_bool_type atspre_neq_byte_byte (ats_byte_type b1, ats_byte_type b2) { return (b1 != b2) ; } // end of [atspre_neq_byte_byte] // // bitwise operations // ATSinline() ats_byte_type atspre_lnot_byte(ats_byte_type b) { return (~b) ; } ATSinline() ats_byte_type atspre_land_byte_byte (ats_byte_type b1, ats_byte_type b2) { return (b1 & b2) ; } // end of [atspre_land_byte_byte] ATSinline() ats_byte_type atspre_lor_byte_byte (ats_byte_type b1, ats_byte_type b2) { return (b1 | b2) ; } // end of [atspre_lor_byte_byte] ATSinline() ats_byte_type atspre_lxor_byte_byte (ats_byte_type b1, ats_byte_type b2) { return (b1 ^ b2) ; } // end of [atspre_lxor_byte_byte] ATSinline() ats_byte_type atspre_lsl_byte_int1 (ats_byte_type b, ats_int_type n) { return (b << n) ; } // end of [atspre_lsl_byte_int1] ATSinline() ats_byte_type atspre_lsr_byte_int1 (ats_byte_type b, ats_int_type n) { return (b >> n) ; } // end of [atspre_lsr_byte_int1] // // print functions // ATSinline() ats_void_type atspre_fprint_byte ( const ats_ptr_type out, const ats_byte_type b ) { /* int n = fputc (b, (FILE *)out) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"Exit: [fprint_byte] failed.\n") ; } // end of [if] */ (void)fputc (b, (FILE *)out) ; return ; } // end of [atspre_fprint_byte] ATSinline() ats_void_type atspre_print_byte (const ats_byte_type c) { // atspre_stdout_view_get () ; atspre_fprint_byte((ats_ptr_type)stdout, c) ; // atspre_stdout_view_set () ; return ; } // end of [atspre_print_byte] ATSinline() ats_void_type atspre_prerr_byte (const ats_byte_type c) { // atspre_stderr_view_get () ; atspre_fprint_byte((ats_ptr_type)stderr, c) ; // atspre_stderr_view_set () ; return ; } // end of [atspre_prerr_byte] /* ****** ****** */ #define atspre_lt_byte1_byte1 atspre_lt_byte_byte #define atspre_lte_byte1_byte1 atspre_lte_byte_byte #define atspre_gt_byte1_byte1 atspre_gt_byte_byte #define atspre_gte_byte1_byte1 atspre_gte_byte_byte #define atspre_eq_byte1_byte1 atspre_eq_byte_byte #define atspre_neq_byte1_byte1 atspre_neq_byte_byte /* ****** ****** */ #endif /* ATS_PRELUDE_BYTE_CATS */ /* end of [byte.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/basics.cats0000644000175000017500000001650213431250607022635 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_BASICS_CATS #define ATS_PRELUDE_BASICS_CATS /* ****** ****** */ #include #include /* ****** ****** */ /* // // HX: for debugging // #define _ATS_RUNTIME_CHECK */ /* ****** ****** */ /* ** HX-2011-05-06: */ extern ats_empty_type ats_empty_value ; /* ****** ****** */ /* ** HX-2010-02-07: this one is used in many places */ ATSinline() ats_ptr_type atspre_castfn_ptr (ats_ptr_type p) { return p ; } /* ****** ****** */ /* ** HX-2011-02-26: ** this one is used to prevent tail-recursion optimization */ ATSinline() ats_void_type atspre_donothing () { return ; } /* ****** ****** */ ATSinline() ats_void_type atspre_free_null () { return ; } /* ****** ****** */ /* ** HX: cutting the corners? yes. worth it? probably. */ ATSinline() ats_ptr_type atspre_fun_coerce (ats_ptr_type p) { return p ; } ATSinline() ats_ptr_type atspre_clo_coerce (ats_ptr_type p) { return p ; } /* ****** ****** */ ATSinline() ats_ptr_type atspre_cloptr_get_view_ptr (ats_ptr_type p) { return p ; } /* ****** ****** */ ATSinline() ats_void_type atspre_cloptr_free ( ats_ptr_type p ) { ATS_FREE (p) ; return ; } // end of [atspre_cloptr_free] /* ****** ****** */ ATSinline() ats_void_type atspre_vbox_make_view_ptr (ats_ptr_type p) { return ; } ATSinline() ats_void_type atspre_vbox_make_view_ptr_gc (ats_ptr_type p) { return ; } /* ****** ****** */ /* ** HX: various functions for exits */ // implemented in [prelude/DATS/basics.dats] extern ats_void_type ats_exit (const ats_int_type n) ; // end of [ats_exit] // implemented in [prelude/DATS/basics.dats] extern ats_void_type ats_exit_errmsg (const ats_int_type n, const ats_ptr_type msg) ; // end of [ats_exit_errmsg] // implemented in [prelude/DATS/printf.dats] extern ats_void_type atspre_exit_prerrf (ats_int_type code, ats_ptr_type fmt, ...) ; // end of [atspre_exit_prerrf] /* ****** ****** */ // // HX: these will probably be removed in ATS/Postiats // extern int ats_stdin_view_lock ; extern int ats_stdout_view_lock ; extern int ats_stderr_view_lock ; /* ****** ****** */ ATSinline() ats_ptr_type atspre_stdin_get () { #ifdef _ATS_RUNTIME_CHECK if (!ats_stdin_view_lock) { ats_exit_errmsg (EXIT_FAILURE, "exit(ATS): [stdin_get] failed\n") ; } // end of [if] ats_stdin_view_lock = 0 ; #endif // end of [_ATS_RUNTIME_CHECK] return (ats_ptr_type)stdin; } // end of [atspre_stdin_get] ATSinline() ats_void_type atspre_stdin_view_get () { #ifdef _ATS_RUNTIME_CHECK if (!ats_stdin_view_lock) { ats_exit_errmsg (EXIT_FAILURE, "exit(ATS): [stdin_view_get] failed\n") ; } // end of [if] ats_stdin_view_lock = 0 ; #endif // end of [_ATS_RUNTIME_CHECK] return ; } // end of [atspre_stdin_view_get] ATSinline() ats_void_type atspre_stdin_view_set () { #ifdef _ATS_RUNTIME_CHECK if (ats_stdin_view_lock) { ats_exit_errmsg (EXIT_FAILURE, "exit(ATS): [stdin_view_set] failed\n") ; } // end of [if] ats_stdin_view_lock = 1 ; #endif // end of [_ATS_RUNTIME_CHECK] return ; } // end of [atspre_stdin_view_set] /* ****** ****** */ ATSinline() ats_ptr_type atspre_stdout_get () { #ifdef _ATS_RUNTIME_CHECK if (!ats_stdout_view_lock) { ats_exit_errmsg (EXIT_FAILURE, "exit(ATS): [stdout_get] failed\n") ; } // end of [if] ats_stdout_view_lock = 0 ; #endif // end of [_ATS_RUNTIME_CHECK] return (ats_ptr_type)stdout ; } // end of [atspre_stdout_get] ATSinline() ats_void_type atspre_stdout_view_get () { #ifdef _ATS_RUNTIME_CHECK if (!ats_stdout_view_lock) { ats_exit_errmsg (EXIT_FAILURE, "exit(ATS): [stdout_view_get] failed\n") ; } // end of [if] ats_stdout_view_lock = 0 ; #endif // end of [_ATS_RUNTIME_CHECK] return ; } // end of [atspre_stdout_view_get] ATSinline() ats_void_type atspre_stdout_view_set () { #ifdef _ATS_RUNTIME_CHECK if (ats_stdout_view_lock) { ats_exit_errmsg (EXIT_FAILURE, "exit(ATS): [stdout_view_set] failed\n") ; } // end of [if] ats_stdout_view_lock = 1 ; #endif // end of [_ATS_RUNTIME_CHECK] return ; } // end of [atspre_stdout_view_set] /* ****** ****** */ ATSinline() ats_ptr_type atspre_stderr_get () { #ifdef _ATS_RUNTIME_CHECK if (!ats_stderr_view_lock) { ats_exit_errmsg (EXIT_FAILURE, "exit(ATS): [stderr_get] failed\n") ; } // end of [if] ats_stderr_view_lock = 0 ; #endif // end of [_ATS_RUNTIME_CHECK] return (ats_ptr_type)stderr ; } // end of [atspre_stderr_get] ATSinline() ats_void_type atspre_stderr_view_get () { #ifdef _ATS_RUNTIME_CHECK if (!ats_stderr_view_lock) { ats_exit_errmsg (EXIT_FAILURE, "exit(ATS): [stderr_view_get] failed\n") ; } // end of [if] ats_stderr_view_lock = 0 ; #endif // end of [_ATS_RUNTIME_CHECK] return ; } // end of [atspre_stderr_view_get] ATSinline() ats_void_type atspre_stderr_view_set () { #ifdef _ATS_RUNTIME_CHECK if (ats_stderr_view_lock) { ats_exit_errmsg (EXIT_FAILURE, (ats_ptr_type)"exit(ATS): [stderr_view_set] failed\n") ; } // end of [if] ats_stderr_view_lock = 1 ; #endif // end of [_ATS_RUNTIME_CHECK] return ; } // end of [atspre_stderr_view_set] /* ****** ****** */ // // HX: // printing a newline on a given stream also fflushes the buffer // associated with the stream. // ATSinline() ats_void_type atspre_fprint_newline ( const ats_ptr_type out ) { int n1, n2 ; n1 = fprintf((FILE*)out, "\n") ; n2 = fflush((FILE*)out) ; #if(0) // HX: this is too much ... if (n1 + n2 < 0) { ats_exit_errmsg (EXIT_FAILURE, (ats_ptr_type)"exit(ATS): [fprint_newline] failed.\n") ; } // end of [if] #endif // end of [#if(0)] return ; } // end of [atspre_fprint_newline] ATSinline() ats_void_type atspre_print_newline () { atspre_stdout_view_get() ; atspre_fprint_newline((ats_ptr_type)stdout) ; atspre_stdout_view_set() ; return ; } // end of [atspre_print_newline] ATSinline() ats_void_type atspre_prerr_newline () { atspre_stderr_view_get() ; atspre_fprint_newline((ats_ptr_type)stderr) ; atspre_stderr_view_set() ; return ; } // end of [atspre_prerr_newline] /* ****** ****** */ #endif /* ATS_PRELUDE_BASICS_CATS */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/integer_ptr.cats0000644000175000017500000003367013431250607023720 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_INTEGER_PTR_CATS #define ATS_PRELUDE_INTEGER_PTR_CATS /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ // intptr and uintptr typedef ats_ptr_type ats_intptr_type ; typedef ats_ptr_type ats_uintptr_type ; /* ****** ****** */ extern ats_void_type ats_exit_errmsg(ats_int_type n, ats_ptr_type msg) ; /* ****** ****** */ // // intptr_t: integers of one word size // ATSinline() ats_int_type atspre_int_of_intptr (ats_intptr_type i) { return (ats_int_type)(intptr_t)i ; } // end of [atspre_int_of_intptr] ATSinline() ats_lint_type atspre_lint_of_intptr (ats_intptr_type i) { return (ats_lint_type)(intptr_t)i ; } // end of [atspre_lint_of_intptr] ATSinline() ats_intptr_type atspre_intptr_of_int (ats_int_type i) { return (ats_intptr_type)(intptr_t)i ; } // end of [atspre_intptr_of_int] ATSinline() ats_intptr_type atspre_intptr_of_lint (ats_lint_type i) { return (ats_intptr_type)(intptr_t)i ; } // end of [atspre_intptr_of_lint] /* ****** ****** */ ATSinline() ats_intptr_type atspre_abs_intptr (ats_intptr_type i) { return ((intptr_t)i >= 0 ? i : (ats_intptr_type)(-(intptr_t)i)) ; } // end of [atspre_abs_intptr] ATSinline() ats_intptr_type atspre_neg_intptr (ats_intptr_type i) { return (ats_intptr_type)(-(intptr_t)i) ; } // end of [atspre_neg_intptr] ATSinline() ats_intptr_type atspre_succ_intptr (ats_intptr_type i) { return (ats_intptr_type)((intptr_t)i + 1) ; } // end of [atspre_succ_intptr] ATSinline() ats_intptr_type atspre_pred_intptr (ats_intptr_type i) { return (ats_intptr_type)((intptr_t)i - 1) ; } // end of [atspre_pred_intptr] // ATSinline() ats_intptr_type atspre_add_intptr_int ( ats_intptr_type i1, ats_int_type i2 ) { return (ats_intptr_type)((intptr_t)i1 + (int)i2) ; } // end of [atspre_add_intptr_int] ATSinline() ats_intptr_type atspre_add_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return (ats_intptr_type)((intptr_t)i1 + (intptr_t)i2) ; } // end of [atspre_add_intptr_intptr] // ATSinline() ats_intptr_type atspre_sub_intptr_int ( ats_intptr_type i1, ats_int_type i2 ) { return (ats_intptr_type)((intptr_t)i1 - (int)i2) ; } // end of [atspre_sub_intptr_int] ATSinline() ats_intptr_type atspre_sub_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return (ats_intptr_type)((intptr_t)i1 - (intptr_t)i2) ; } // end of [atspre_sub_intptr_intptr] // ATSinline() ats_intptr_type atspre_mul_intptr_int ( ats_intptr_type i1, ats_int_type i2 ) { return (ats_intptr_type)((intptr_t)i1 * (int)i2) ; } // end of [atspre_mul_intptr_int] ATSinline() ats_intptr_type atspre_mul_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return (ats_intptr_type)((intptr_t)i1 * (intptr_t)i2) ; } // end of [atspre_mul_intptr_intptr] // ATSinline() ats_intptr_type atspre_div_intptr_int ( ats_intptr_type i1, ats_int_type i2 ) { return (ats_intptr_type)((intptr_t)i1 / (int)i2) ; } // end of [atspre_div_intptr_int] ATSinline() ats_intptr_type atspre_div_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return (ats_intptr_type)((intptr_t)i1 / (intptr_t)i2) ; } // end of [atspre_div_intptr_intptr] // ATSinline() ats_intptr_type atspre_mod_intptr_int ( ats_intptr_type i1, ats_int_type i2) { return (ats_intptr_type)((intptr_t)i1 % (int)i2) ; } // end of [atspre_mod_intptr_int] ATSinline() ats_intptr_type atspre_mod_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return (ats_intptr_type)((intptr_t)i1 % (intptr_t)i2) ; } // end of [atspre_mod_intptr_intptr] /* ****** ****** */ // comparison operations ATSinline() ats_bool_type atspre_lt_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return ( (intptr_t)i1 < (intptr_t)i2 ? ats_true_bool : ats_false_bool ) ; // end of [return] } // end of [atspre_lt_intptr_intptr] ATSinline() ats_bool_type atspre_lte_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return ( (intptr_t)i1 <= (intptr_t)i2 ? ats_true_bool : ats_false_bool ) ; // end of [return] } // end of [atspre_lte_intptr_intptr] ATSinline() ats_bool_type atspre_gt_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return ( (intptr_t)i1 > (intptr_t)i2 ? ats_true_bool : ats_false_bool ) ; // end of [return] } // end of [atspre_gt_intptr_intptr] ATSinline() ats_bool_type atspre_gte_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return ( (intptr_t)i1 >= (intptr_t)i2 ? ats_true_bool : ats_false_bool ) ; // end of [return] } // end of [atspre_gte_intptr_intptr] ATSinline() ats_bool_type atspre_eq_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return ( (intptr_t)i1 == (intptr_t)i2 ? ats_true_bool : ats_false_bool ) ; // end of [return] } // end of [atspre_eq_intptr_intptr] ATSinline() ats_bool_type atspre_neq_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return ( (intptr_t)i1 != (intptr_t)i2 ? ats_true_bool : ats_false_bool ) ; // end of [return] } // end of [atspre_neq_intptr_intptr] // // compare, max and min // ATSinline() ats_int_type atspre_compare_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } // end of [atspre_compare_intptr_intptr] ATSinline() ats_intptr_type atspre_max_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return ((i1 >= i2) ? i1 : i2) ; } // end of [atspre_max_intptr_intptr] ATSinline() ats_intptr_type atspre_min_intptr_intptr ( ats_intptr_type i1, ats_intptr_type i2 ) { return ((i1 <= i2) ? i1 : i2) ; } // end of [atspre_min_intptr_intptr] // // print functions // ATSinline() ats_void_type atspre_fprint_intptr ( ats_ptr_type out, ats_intptr_type i ) { int n ; n = fprintf ((FILE*)out, "%lli", (ats_llint_type)(intptr_t)i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_intptr] failed.\n") ; } return ; } // end of [atspre_fprint_intptr] ATSinline() ats_void_type atspre_print_intptr (ats_intptr_type i) { // atspre_stdout_view_get () ; atspre_fprint_intptr ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_intptr (ats_intptr_type i) { // atspre_stderr_view_get () ; atspre_fprint_intptr ((ats_ptr_type)stderr, i) ; // atspre_stderr_view_set () ; return ; } /* ****** ****** */ // // uintptr_t: unsigned integers of one word size // /* ****** ****** */ ATSinline() ats_uint_type atspre_uint_of_uintptr (ats_uintptr_type u) { return (ats_uint_type)(uintptr_t)u ; } // end of [atspre_uint_of_uintptr] ATSinline() ats_uintptr_type atspre_uintptr_of_int1 (ats_int_type i) { return (ats_uintptr_type)(uintptr_t)i ; } // end of [atspre_uintptr_of_int1] ATSinline() ats_uintptr_type atspre_uintptr_of_uint (ats_uint_type u) { return (ats_uintptr_type)(uintptr_t)u ; } // end of [atspre_uintptr_of_uint] ATSinline() ats_uintptr_type atspre_uintptr_of_ptr (ats_ptr_type p) { return (ats_uintptr_type)(uintptr_t)p ; } // end of [atspre_uintptr_of_ptr] // ------ ------ ATSinline() ats_ulint_type atspre_ulint_of_uintptr (ats_uintptr_type u) { return (ats_ulint_type)(uintptr_t)u ; } // end of [atspre_ulint_of_uintptr] ATSinline() ats_uintptr_type atspre_uintptr_of_ulint (ats_ulint_type u) { return (ats_uintptr_type)(uintptr_t)u ; } // end of [atspre_uintptr_of_ulint] // ------ ------ ATSinline() ats_uintptr_type atspre_succ_uintptr (ats_uintptr_type i) { return (ats_uintptr_type)((uintptr_t)i + 1) ; } ATSinline() ats_uintptr_type atspre_pred_uintptr (ats_uintptr_type i) { return (ats_uintptr_type)((uintptr_t)i - 1) ; } // ATSinline() ats_uintptr_type atspre_add_uintptr_uint (ats_uintptr_type i1, ats_uint_type i2) { return (ats_uintptr_type)((uintptr_t)i1 + i2) ; } ATSinline() ats_uintptr_type atspre_add_uintptr_uintptr (ats_uintptr_type i1, ats_uintptr_type i2) { return (ats_uintptr_type)((uintptr_t)i1 + (uintptr_t)i2) ; } // ATSinline() ats_uintptr_type atspre_sub_uintptr_uint (ats_uintptr_type i1, ats_uint_type i2) { return (ats_uintptr_type)((uintptr_t)i1 - i2) ; } ATSinline() ats_uintptr_type atspre_sub_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return (ats_uintptr_type)((uintptr_t)i1 - (uintptr_t)i2) ; } // ATSinline() ats_uintptr_type atspre_mul_uintptr_uint ( ats_uintptr_type i1, ats_uint_type i2 ) { return (ats_uintptr_type)((uintptr_t)i1 * i2) ; } ATSinline() ats_uintptr_type atspre_mul_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return (ats_uintptr_type)((uintptr_t)i1 * (uintptr_t)i2) ; } // ATSinline() ats_uintptr_type atspre_div_uintptr_uint ( ats_uintptr_type i1, ats_uint_type i2 ) { return (ats_uintptr_type)((uintptr_t)i1 / i2) ; } ATSinline() ats_uintptr_type atspre_div_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return (ats_uintptr_type)((uintptr_t)i1 / (uintptr_t)i2) ; } // ATSinline() ats_uintptr_type atspre_mod_uintptr_uint ( ats_uintptr_type i1, ats_uint_type i2 ) { return (ats_uintptr_type)((uintptr_t)i1 % i2) ; } ATSinline() ats_uintptr_type atspre_mod_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return (ats_uintptr_type)((uintptr_t)i1 % (uintptr_t)i2) ; } // // comparison operations on uintpr // ATSinline() ats_bool_type atspre_lt_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return ((uintptr_t)i1 < (uintptr_t)i2 ? ats_true_bool : ats_false_bool) ; } ATSinline() ats_bool_type atspre_lte_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return ((uintptr_t)i1 <= (uintptr_t)i2 ? ats_true_bool : ats_false_bool) ; } ATSinline() ats_bool_type atspre_gt_uintptr_uintptr (ats_uintptr_type i1, ats_uintptr_type i2) { return ((uintptr_t)i1 > (uintptr_t)i2 ? ats_true_bool : ats_false_bool) ; } ATSinline() ats_bool_type atspre_gte_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return ((uintptr_t)i1 >= (uintptr_t)i2 ? ats_true_bool : ats_false_bool) ; } ATSinline() ats_bool_type atspre_eq_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return ((uintptr_t)i1 == (uintptr_t)i2 ? ats_true_bool : ats_false_bool) ; } ATSinline() ats_bool_type atspre_neq_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return ((uintptr_t)i1 != (uintptr_t)i2 ? ats_true_bool : ats_false_bool) ; } // // compare, max and min // ATSinline() ats_int_type atspre_compare_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } // end of [atspre_compare_uintptr_uintptr] ATSinline() ats_uintptr_type atspre_max_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return (i1 >= i2 ? i1 : i2) ; } ATSinline() ats_uintptr_type atspre_min_uintptr_uintptr ( ats_uintptr_type i1, ats_uintptr_type i2 ) { return (i1 <= i2 ? i1 : i2) ; } // // bitwise operations // ATSinline() ats_uintptr_type atspre_lnot_uintptr (ats_uintptr_type x) { return (ats_uintptr_type)(~(uintptr_t)x) ; } ATSinline() ats_uintptr_type atspre_land_uintptr_uintptr (ats_uintptr_type x, ats_uintptr_type y) { return (ats_uintptr_type)((uintptr_t)x & (uintptr_t)y) ; } ATSinline() ats_uintptr_type atspre_lor_uintptr_uintptr (ats_uintptr_type x, ats_uintptr_type y) { return (ats_uintptr_type)((uintptr_t)x | (uintptr_t)y) ; } ATSinline() ats_uintptr_type atspre_lxor_uintptr_uintptr (ats_uintptr_type x, ats_uintptr_type y) { return (ats_uintptr_type)((uintptr_t)x ^ (uintptr_t)y) ; } ATSinline() ats_uintptr_type atspre_lsl_uintptr_int1 (ats_uintptr_type x, ats_int_type n) { return (ats_uintptr_type)((uintptr_t)x << n) ; } ATSinline() ats_uintptr_type atspre_lsr_uintptr_int1 (ats_uintptr_type x, ats_int_type n) { return (ats_uintptr_type)((uintptr_t)x >> n) ; } // print functions ATSinline() ats_void_type atspre_fprint_uintptr ( ats_ptr_type out, ats_uintptr_type u ) { int n ; n = fprintf ((FILE*)out, "%llu", (ats_ullint_type)(uintptr_t)u) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_uintptr] failed.\n") ; } // end of [if] return ; } // end of [atspre_fprint_uintptr] ATSinline() ats_void_type atspre_print_uintptr (ats_uintptr_type u) { // atspre_stdout_view_get () ; atspre_fprint_uintptr ((ats_ptr_type)stdout, u) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_uintptr (ats_uintptr_type u) { // atspre_stderr_view_get () ; atspre_fprint_uintptr ((ats_ptr_type)stderr, u) ; // atspre_stderr_view_set () ; return ; } /* ****** ****** */ #endif /* ATS_PRELUDE_INTEGER_PTR_CATS */ /* end of [integer_ptr.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/.keeper0000644000175000017500000000000013431250607021753 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/integer_fixed.cats0000644000175000017500000006322513431250607024211 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_INTEGER_FIXED_CATS #define ATS_PRELUDE_INTEGER_FIXED_CATS /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ extern ats_void_type ats_exit_errmsg (ats_int_type n, ats_ptr_type msg) ; /* ****** ****** */ /* signed and unsigned integers of fixed sizes */ /* ****** ****** */ // signed integer of size 8bit ATSinline() ats_int8_type atspre_int8_of_int (ats_int_type i) { return i ; } ATSinline() ats_int_type atspre_int_of_int8 (ats_int8_type i) { return i ; } // ------ ------ ATSinline() ats_int8_type atspre_abs_int8 (ats_int8_type i) { return (i >= 0 ? i : -i) ; } ATSinline() ats_int8_type atspre_neg_int8 (ats_int8_type i) { return (-i) ; } ATSinline() ats_int8_type atspre_succ_int8 (ats_int8_type i) { return (i + 1) ; } ATSinline() ats_int8_type atspre_pred_int8 (ats_int8_type i) { return (i - 1) ; } ATSinline() ats_int8_type atspre_add_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 + i2) ; } ATSinline() ats_int8_type atspre_sub_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 - i2) ; } ATSinline() ats_int8_type atspre_mul_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 * i2) ; } ATSinline() ats_int8_type atspre_div_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 / i2) ; } ATSinline() ats_int8_type atspre_mod_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 % i2) ; } ATSinline() ats_bool_type atspre_lt_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 != i2) ; } // compare, max, min ATSinline() ats_int_type atspre_compare_int8_int8 (ats_int8_type i1, ats_int8_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_int8_type atspre_max_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 >= i2) ? i1 : i2 ; } ATSinline() ats_int8_type atspre_min_int8_int8 (ats_int8_type i1, ats_int8_type i2) { return (i1 <= i2) ? i1 : i2 ; } // print functions ATSinline() ats_void_type atspre_fprint_int8 (ats_ptr_type out, ats_int8_type i) { int n = fprintf ((FILE*)out, "%hhd", i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_int8] failed.\n") ; } return ; } ATSinline() ats_void_type atspre_print_int8 (ats_int8_type i) { // atspre_stdout_view_get () ; atspre_fprint_int8 ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_int8 (ats_int8_type i) { atspre_stderr_view_get () ; atspre_fprint_int8 ((ats_ptr_type)stderr, i) ; atspre_stderr_view_set () ; return ; } /* ****** ****** */ // unsigned integer of size 8bit ATSinline() ats_uint8_type atspre_uint8_of_uint (ats_uint_type i) { return i ; } ATSinline() ats_uint_type atspre_uint_of_uint8 (ats_uint8_type i) { return i ; } // ------ ------ ATSinline() ats_uint8_type atspre_succ_uint8 (ats_uint8_type i) { return (i + 1) ; } ATSinline() ats_uint8_type atspre_pred_uint8 (ats_uint8_type i) { return (i - 1) ; } ATSinline() ats_uint8_type atspre_add_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 + i2) ; } ATSinline() ats_uint8_type atspre_sub_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 - i2) ; } ATSinline() ats_uint8_type atspre_mul_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 * i2) ; } ATSinline() ats_uint8_type atspre_div_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 / i2) ; } ATSinline() ats_uint8_type atspre_mod_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 % i2) ; } // ------ ------ // comparison operations ATSinline() ats_bool_type atspre_lt_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 != i2) ; } // compare, max, min ATSinline() ats_int_type atspre_compare_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_uint8_type atspre_max_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 >= i2) ? i1 : i2 ; } ATSinline() ats_uint8_type atspre_min_uint8_uint8 (ats_uint8_type i1, ats_uint8_type i2) { return (i1 <= i2) ? i1 : i2 ; } // print functions ATSinline() ats_void_type atspre_fprint_uint8 (ats_ptr_type out, ats_uint8_type i) { int n = fprintf ((FILE*)out, "%hhu", i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_uint8] failed.\n") ; } return ; } ATSinline() ats_void_type atspre_print_uint8 (ats_uint8_type i) { // atspre_stdout_view_get () ; atspre_fprint_uint8 ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_uint8 (ats_uint8_type i) { atspre_stderr_view_get () ; atspre_fprint_uint8 ((ats_ptr_type)stderr, i) ; atspre_stderr_view_set () ; return ; } /* ****** ****** */ // signed integer of size 16bit ATSinline() ats_int16_type atspre_int16_of_int (ats_int_type i) { return i ; } ATSinline() ats_int_type atspre_int_of_int16 (ats_int16_type i) { return i ; } // ------ ------ ATSinline() ats_int16_type atspre_abs_int16 (ats_int16_type i) { return (i >= 0 ? i : -i) ; } ATSinline() ats_int16_type atspre_neg_int16 (ats_int16_type i) { return (-i) ; } ATSinline() ats_int16_type atspre_succ_int16 (ats_int16_type i) { return (i + 1) ; } ATSinline() ats_int16_type atspre_pred_int16 (ats_int16_type i) { return (i - 1) ; } ATSinline() ats_int16_type atspre_add_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 + i2) ; } ATSinline() ats_int16_type atspre_sub_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 - i2) ; } ATSinline() ats_int16_type atspre_mul_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 * i2) ; } ATSinline() ats_int16_type atspre_div_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 / i2) ; } ATSinline() ats_int16_type atspre_mod_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 % i2) ; } ATSinline() ats_bool_type atspre_lt_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 != i2) ; } // compare, max, min ATSinline() ats_int_type atspre_compare_int16_int16 (ats_int16_type i1, ats_int16_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_int16_type atspre_max_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 >= i2) ? i1 : i2 ; } ATSinline() ats_int16_type atspre_min_int16_int16 (ats_int16_type i1, ats_int16_type i2) { return (i1 <= i2) ? i1 : i2 ; } // print functions ATSinline() ats_void_type atspre_fprint_int16 (ats_ptr_type out, ats_int16_type i) { int n = fprintf ((FILE*)out, "%d", i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_int16] failed.\n") ; } return ; } ATSinline() ats_void_type atspre_print_int16 (ats_int16_type i) { // atspre_stdout_view_get () ; atspre_fprint_int16 ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_int16 (ats_int16_type i) { atspre_stderr_view_get () ; atspre_fprint_int16 ((ats_ptr_type)stderr, i) ; atspre_stderr_view_set () ; return ; } /* ****** ****** */ // // unsigned integer of size 16bit // ATSinline() ats_uint16_type atspre_uint16_of_int (ats_int_type i) { return i ; } ATSinline() ats_int_type atspre_int_of_uint16 (ats_uint16_type i) { return i ; } ATSinline() ats_uint16_type atspre_uint16_of_uint (ats_uint_type i) { return i ; } ATSinline() ats_uint_type atspre_uint_of_uint16 (ats_uint16_type i) { return i ; } // ------ ------ ATSinline() ats_uint16_type atspre_succ_uint16 (ats_uint16_type i) { return (i + 1) ; } ATSinline() ats_uint16_type atspre_pred_uint16 (ats_uint16_type i) { return (i - 1) ; } ATSinline() ats_uint16_type atspre_add_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 + i2) ; } ATSinline() ats_uint16_type atspre_sub_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 - i2) ; } ATSinline() ats_uint16_type atspre_mul_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 * i2) ; } ATSinline() ats_uint16_type atspre_div_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 / i2) ; } ATSinline() ats_uint16_type atspre_mod_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 % i2) ; } // ------ ------ // comparison operations ATSinline() ats_bool_type atspre_lt_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 != i2) ; } // compare, max, min ATSinline() ats_int_type atspre_compare_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_uint16_type atspre_max_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 >= i2) ? i1 : i2 ; } ATSinline() ats_uint16_type atspre_min_uint16_uint16 (ats_uint16_type i1, ats_uint16_type i2) { return (i1 <= i2) ? i1 : i2 ; } // // print functions // ATSinline() ats_void_type atspre_fprint_uint16 (ats_ptr_type out, ats_uint16_type i) { int n = fprintf ((FILE*)out, "%hu", i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_uint16] failed.\n") ; } return ; } ATSinline() ats_void_type atspre_print_uint16 (ats_uint16_type i) { // atspre_stdout_view_get () ; atspre_fprint_uint16 ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_uint16 (ats_uint16_type i) { atspre_stderr_view_get () ; atspre_fprint_uint16 ((ats_ptr_type)stderr, i) ; atspre_stderr_view_set () ; return ; } /* ****** ****** */ // signed integer of size 32bit ATSinline() ats_int32_type atspre_int32_of_int (ats_int_type i) { return i ; } ATSinline() ats_int_type atspre_int_of_int32 (ats_int32_type i) { return i ; } // ------ ------ ATSinline() ats_int32_type atspre_abs_int32 (ats_int32_type i) { return (i >= 0 ? i : -i) ; } ATSinline() ats_int32_type atspre_neg_int32 (ats_int32_type i) { return (-i) ; } ATSinline() ats_int32_type atspre_succ_int32 (ats_int32_type i) { return (i + 1) ; } ATSinline() ats_int32_type atspre_pred_int32 (ats_int32_type i) { return (i - 1) ; } ATSinline() ats_int32_type atspre_add_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 + i2) ; } ATSinline() ats_int32_type atspre_sub_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 - i2) ; } ATSinline() ats_int32_type atspre_mul_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 * i2) ; } ATSinline() ats_int32_type atspre_div_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 / i2) ; } ATSinline() ats_int32_type atspre_mod_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 % i2) ; } ATSinline() ats_bool_type atspre_lt_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 != i2) ; } // compare, max, int ATSinline() ats_int_type atspre_compare_int32_int32 (ats_int32_type i1, ats_int32_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_int32_type atspre_max_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 >= i2) ? i1 : i2 ; } ATSinline() ats_int32_type atspre_min_int32_int32 (ats_int32_type i1, ats_int32_type i2) { return (i1 <= i2) ? i1 : i2 ; } // print functions ATSinline() ats_void_type atspre_fprint_int32 (ats_ptr_type out, ats_int32_type i) { int n ; n = fprintf ((FILE*)out, "%li", (ats_lint_type)i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_int32] failed.\n") ; } return ; } ATSinline() ats_void_type atspre_print_int32 (ats_int32_type i) { // atspre_stdout_view_get () ; atspre_fprint_int32 ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_int32 (ats_int32_type i) { atspre_stderr_view_get () ; atspre_fprint_int32 ((ats_ptr_type)stderr, i) ; atspre_stderr_view_set () ; return ; } ATSinline() ats_ptr_type atspre_tostrptr_int32 (ats_int32_type i) { return atspre_tostrptr_llint (i) ; } // end of [atspre_tostrptr_int32] /* ****** ****** */ // // unsigned integer of size 32bit // ATSinline() ats_uint32_type atspre_uint32_of_int (ats_int_type i) { return i ; } ATSinline() ats_int_type atspre_int_of_uint32 (ats_uint32_type i) { return i ; } ATSinline() ats_uint32_type atspre_uint32_of_uint (ats_uint_type i) { return i ; } ATSinline() ats_uint_type atspre_uint_of_uint32 (ats_uint32_type i) { return i ; } // ------ ------ ATSinline() ats_uint32_type atspre_succ_uint32 (ats_uint32_type i) { return (i + 1) ; } ATSinline() ats_uint32_type atspre_pred_uint32 (ats_uint32_type i) { return (i - 1) ; } ATSinline() ats_uint32_type atspre_add_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 + i2) ; } ATSinline() ats_uint32_type atspre_sub_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 - i2) ; } ATSinline() ats_uint32_type atspre_mul_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 * i2) ; } ATSinline() ats_uint32_type atspre_div_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 / i2) ; } ATSinline() ats_uint32_type atspre_mod_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 % i2) ; } // ------ ------ // comparison operations ATSinline() ats_bool_type atspre_lt_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 != i2) ; } // compare, max, min ATSinline() ats_int_type atspre_compare_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_uint32_type atspre_max_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 >= i2) ? i1 : i2 ; } ATSinline() ats_uint32_type atspre_min_uint32_uint32 (ats_uint32_type i1, ats_uint32_type i2) { return (i1 <= i2) ? i1 : i2 ; } // print functions ATSinline() ats_void_type atspre_fprint_uint32 (ats_ptr_type out, ats_uint32_type i) { int n = fprintf ((FILE*)out, "%lu", (ats_ulint_type)i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_uint32] failed.\n") ; } return ; } ATSinline() ats_void_type atspre_print_uint32 (ats_uint32_type i) { // atspre_stdout_view_get () ; atspre_fprint_uint32 ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_uint32 (ats_uint32_type i) { atspre_stderr_view_get () ; atspre_fprint_uint32 ((ats_ptr_type)stderr, i) ; atspre_stderr_view_set () ; return ; } /* ****** ****** */ // signed integer of size 64bit ATSinline() ats_int64_type atspre_int64_of_int (ats_int_type i) { return (i) ; } ATSinline() ats_int64_type atspre_int64_of_lint (ats_lint_type i) { return (i) ; } ATSinline() ats_int64_type atspre_int64_of_llint (ats_llint_type i) { return (i) ; } ATSinline() ats_int_type atspre_int_of_int64 (ats_int64_type i) { return i ; } // ------ ------ ATSinline() ats_int64_type atspre_abs_int64 (ats_int64_type i) { return (i >= 0 ? i : -i) ; } ATSinline() ats_int64_type atspre_neg_int64 (ats_int64_type i) { return (-i) ; } ATSinline() ats_int64_type atspre_succ_int64 (ats_int64_type i) { return (i + 1) ; } ATSinline() ats_int64_type atspre_pred_int64 (ats_int64_type i) { return (i - 1) ; } ATSinline() ats_int64_type atspre_add_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 + i2) ; } ATSinline() ats_int64_type atspre_sub_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 - i2) ; } ATSinline() ats_int64_type atspre_mul_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 * i2) ; } ATSinline() ats_int64_type atspre_div_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 / i2) ; } ATSinline() ats_int64_type atspre_mod_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 % i2) ; } ATSinline() ats_bool_type atspre_lt_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 != i2) ; } // compare, max, min ATSinline() ats_int_type atspre_compare_int64_int64 (ats_int64_type i1, ats_int64_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_int64_type atspre_max_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 >= i2) ? i1 : i2 ; } ATSinline() ats_int64_type atspre_min_int64_int64 (ats_int64_type i1, ats_int64_type i2) { return (i1 <= i2) ? i1 : i2 ; } // print functions ATSinline() ats_void_type atspre_fprint_int64 (ats_ptr_type out, ats_int64_type i) { int n ; n = fprintf ((FILE*)out, "%lli", (ats_llint_type)i) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_int64] failed.\n") ; } return ; } ATSinline() ats_void_type atspre_print_int64 (ats_int64_type i) { // atspre_stdout_view_get () ; atspre_fprint_int64 ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_int64 (ats_int64_type i) { atspre_stderr_view_get () ; atspre_fprint_int64 ((ats_ptr_type)stderr, i) ; atspre_stderr_view_set () ; return ; } ATSinline() ats_ptr_type atspre_tostrptr_int64 (ats_int64_type i) { return atspre_tostrptr_llint (i) ; } // end of [atspre_tostrptr_int64] /* ****** ****** */ // unsigned integer of size 64bit ATSinline() ats_uint64_type atspre_uint64_of_int1 (ats_int_type i) { return i ; } ATSinline() ats_uint64_type atspre_uint64_of_uint (ats_uint_type i) { return i ; } ATSinline() ats_uint64_type atspre_uint64_of_ulint (ats_ulint_type i) { return i ; } ATSinline() ats_uint64_type atspre_uint64_of_ullint (ats_ullint_type i) { return i ; } ATSinline() ats_uint_type atspre_uint_of_uint64 (ats_uint64_type i) { return i ; } /* ****** ****** */ ATSinline() ats_uint64_type atspre_succ_uint64 (ats_uint64_type i) { return (i + 1) ; } ATSinline() ats_uint64_type atspre_pred_uint64 (ats_uint64_type i) { return (i - 1) ; } /* ****** ****** */ ATSinline() ats_uint64_type atspre_add_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 + i2) ; } ATSinline() ats_uint64_type atspre_sub_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 - i2) ; } ATSinline() ats_uint64_type atspre_mul_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 * i2) ; } ATSinline() ats_uint64_type atspre_div_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 / i2) ; } ATSinline() ats_uint64_type atspre_mod_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 % i2) ; } /* ****** ****** */ // comparison operations ATSinline() ats_bool_type atspre_lt_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 < i2) ; } ATSinline() ats_bool_type atspre_lte_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 <= i2) ; } ATSinline() ats_bool_type atspre_gt_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 > i2) ; } ATSinline() ats_bool_type atspre_gte_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 >= i2) ; } ATSinline() ats_bool_type atspre_eq_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 == i2) ; } ATSinline() ats_bool_type atspre_neq_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 != i2) ; } // compare, max, min ATSinline() ats_int_type atspre_compare_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { if (i1 < i2) return (-1) ; else if (i1 > i2) return ( 1) ; else return (0) ; } ATSinline() ats_uint64_type atspre_max_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 >= i2) ? i1 : i2 ; } ATSinline() ats_uint64_type atspre_min_uint64_uint64 (ats_uint64_type i1, ats_uint64_type i2) { return (i1 <= i2) ? i1 : i2 ; } // print functions ATSinline() ats_void_type atspre_fprint_uint64 (ats_ptr_type out, ats_uint64_type u) { int n = fprintf ((FILE*)out, "%llu", (ats_ullint_type)u) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_uint64] failed.\n") ; } return ; } ATSinline() ats_void_type atspre_print_uint64 (ats_uint64_type i) { // atspre_stdout_view_get () ; atspre_fprint_uint64 ((ats_ptr_type)stdout, i) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_uint64 (ats_uint64_type i) { atspre_stderr_view_get () ; atspre_fprint_uint64 ((ats_ptr_type)stderr, i) ; atspre_stderr_view_set () ; return ; } /* ****** ****** */ #endif /* ATS_PRELUDE_INTEGER_FIXED_CATS */ /* end of [integer_fixed.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/option.cats0000644000175000017500000000352013431250607022675 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* * ATS - Unleashing the Potential of Types! * * Copyright (C) 2002-2008 Hongwei Xi. * * ATS is free software; you can redistribute it and/or modify it under * the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the * Free Software Foundation; either version 2.1, or (at your option) any * later version. * * ATS is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License * along with ATS; see the file COPYING. If not, please write to the * Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301, USA. * */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_OPTION_CATS #define ATS_PRELUDE_OPTION_CATS /* ****** ****** */ #if (0) // // HX-2010-03-24: no longer needed // static inline ats_ptr_type atspre_option0_of_option1 (ats_ptr_type x) { return x ; } static inline ats_ptr_type atspre_option1_of_option0 (ats_ptr_type x) { return x ; } #endif // end of if(0) /* ****** ****** */ #endif /* ATS_PRELUDE_OPTION_CATS */ /* end of [option.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/list.cats0000644000175000017500000000350113431250607022337 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_LIST_CATS #define ATS_PRELUDE_LIST_CATS /* ****** ****** */ ATSinline() ats_ptr_type atspre_list0_of_list1 (ats_ptr_type x) { return x ; } ATSinline() ats_ptr_type atspre_list0_of_list_vt (ats_ptr_type x) { return x ; } ATSinline() ats_ptr_type atspre_list1_of_list0 (ats_ptr_type x) { return x ; } /* ****** ****** */ #endif /* ATS_PRELUDE_LIST_CATS */ /* end of [list.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/bool.cats0000644000175000017500000001161613431250607022325 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_BOOL_CATS #define ATS_PRELUDE_BOOL_CATS /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ extern ats_void_type ats_exit_errmsg(ats_int_type n, ats_ptr_type msg) ; /* ****** ****** */ ATSinline() ats_bool_type atspre_neg_bool (ats_bool_type b) { return (b ? ats_false_bool : ats_true_bool) ; } // end of [atspre_neg_bool] /* ****** ****** */ #if(0) ATSinline() ats_bool_type atspre_add_bool_bool ( ats_bool_type b1, ats_bool_type b2 ) { if (b1) { return ats_true_bool ; } else { return b2 ; } } // end of [atspre_add_bool_bool] ATSinline() ats_bool_type atspre_mul_bool_bool ( ats_bool_type b1, ats_bool_type b2 ) { if (b1) { return b2 ; } else { return ats_false_bool ; } } // end of [atspre_mul_bool_bool] #endif #define atspre_add_bool_bool(b1, b2) ((b1) || (b2)) #define atspre_mul_bool_bool(b1, b2) ((b1) && (b2)) /* ****** ****** */ ATSinline() ats_bool_type atspre_lt_bool_bool ( ats_bool_type b1, ats_bool_type b2 ) { return (!b1 && b2) ; } // end of [atspre_lt_bool_bool] ATSinline() ats_bool_type atspre_lte_bool_bool ( ats_bool_type b1, ats_bool_type b2 ) { return (!b1 || b2) ; } // end of [atspre_lte_bool_bool] ATSinline() ats_bool_type atspre_gt_bool_bool ( ats_bool_type b1, ats_bool_type b2 ) { return (b1 && !b2) ; } // end of [atspre_gt_bool_bool] ATSinline() ats_bool_type atspre_gte_bool_bool ( ats_bool_type b1, ats_bool_type b2 ) { return (b1 || !b2) ; } // end of [atspre_gte_bool_bool] ATSinline() ats_bool_type atspre_eq_bool_bool ( ats_bool_type b1, ats_bool_type b2 ) { if (b1) { return b2 ; } else { return !b2 ; } } // end of [atspre_eq_bool_bool] ATSinline() ats_bool_type atspre_neq_bool_bool (ats_bool_type b1, ats_bool_type b2) { if (b1) { return !b2 ; } else { return b2 ; } } // end of [atspre_neq_bool_bool] /* ****** ****** */ // // HX: print functions // ATSinline() ats_void_type atspre_fprint_bool ( ats_ptr_type out, ats_bool_type b ) { int n ; if (b) { n = fprintf ((FILE *)out, "true") ; } else { n = fprintf ((FILE *)out, "false") ; } // end of [if] if (n < 0) { ats_exit_errmsg(n, (ats_ptr_type)"Exit: [fprint_bool] failed.\n") ; } // end of [if] return ; } // end of [atspre_fprint_bool] ATSinline() ats_void_type atspre_print_bool (ats_bool_type b) { // atspre_stdout_view_get() ; atspre_fprint_bool ((ats_ptr_type)stdout, b) ; // atspre_stdout_view_set() ; return ; } // end of [atspre_print_bool] ATSinline() ats_void_type atspre_prerr_bool (ats_bool_type b) { // atspre_stderr_view_get() ; atspre_fprint_bool ((ats_ptr_type)stderr, b) ; // atspre_stderr_view_set() ; return ; } // end of [atspre_prerr_bool] // // HX: stringization // ATSinline() ats_ptr_type atspre_tostring_bool (ats_bool_type b) { return (b ? (ats_ptr_type)"true" : (ats_ptr_type)"false") ; } // end of [atspre_tostring_bool] /* ****** ****** */ #define atspre_neg_bool1 atspre_neg_bool #define atspre_add_bool1_bool1 atspre_add_bool_bool #define atspre_mul_bool1_bool1 atspre_mul_bool_bool #define atspre_lt_bool1_bool1 atspre_lt_bool_bool #define atspre_lte_bool1_bool1 atspre_lte_bool_bool #define atspre_gt_bool1_bool1 atspre_gt_bool_bool #define atspre_gte_bool1_bool1 atspre_gte_bool_bool #define atspre_eq_bool1_bool1 atspre_eq_bool_bool #define atspre_neq_bool1_bool1 atspre_neq_bool_bool #define atspre_compare_bool1_bool1 atspre_compare_bool_bool /* ****** ****** */ #endif /* ATS_PRELUDE_BOOL_CATS */ /* end of [bool.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/string.cats0000644000175000017500000002524413431250607022702 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_STRING_CATS #define ATS_PRELUDE_STRING_CATS /* ****** ****** */ #include /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ #ifdef memcpy // // HX: [memcpy] is a macro on MACOS // #else // // in [string.h] // extern void *memcpy(void *dest, const void *src, size_t n) ; // #endif // memcpy /* ****** ****** */ ATSinline() ats_void_type atspre_strbuf_bytes_trans (ats_ptr_type p) { return ; } /* end of [atspre_strbuf_bytes_trans] */ ATSinline() ats_void_type atspre_bytes_strbuf_trans (ats_ptr_type p, ats_size_type n) { ((char*)p)[n] = '\000' ; return ; } /* end of [atspre_bytes_strbuf_trans] */ /* ****** ****** */ ATSinline() ats_void_type atspre_strbufptr_free (ats_ptr_type base) { ATS_FREE(base); return ; } // end of [atspre_strbufptr_free] /* ****** ****** */ ATSinline() ats_bool_type atspre_lt_string_string (const ats_ptr_type s1, const ats_ptr_type s2) { int i = strcmp((char*)s1, (char*)s2) ; return (i < 0 ? ats_true_bool : ats_false_bool) ; } /* end of [atspre_lt_string_string] */ ATSinline() ats_bool_type atspre_lte_string_string (const ats_ptr_type s1, const ats_ptr_type s2) { int i = strcmp((char*)s1, (char*)s2) ; return (i <= 0 ? ats_true_bool : ats_false_bool) ; } /* end of [atspre_lte_string_string] */ ATSinline() ats_bool_type atspre_gt_string_string (const ats_ptr_type s1, const ats_ptr_type s2) { int i = strcmp((char*)s1, (char*)s2) ; return (i > 0 ? ats_true_bool : ats_false_bool) ; } /* end of [atspre_gt_string_string] */ ATSinline() ats_bool_type atspre_gte_string_string (const ats_ptr_type s1, const ats_ptr_type s2) { int i = strcmp((char*)s1, (char*)s2) ; return (i >= 0 ? ats_true_bool : ats_false_bool) ; } /* end of [atspre_gte_string_string] */ ATSinline() ats_bool_type atspre_eq_string_string (const ats_ptr_type s1, const ats_ptr_type s2) { int i = strcmp((char*)s1, (char*)s2) ; /* fprintf (stdout, "ats_eq_string_string: s1 = %s and s2 = %s\n", s1, s2) ; fprintf (stdout, "ats_eq_string_string: i = %i\n", i) ; */ return (i == 0 ? ats_true_bool : ats_false_bool) ; } /* end of [atspre_eq_string_string] */ ATSinline() ats_bool_type atspre_neq_string_string (const ats_ptr_type s1, const ats_ptr_type s2) { int i = strcmp((char*)s1, (char*)s2) ; return (i != 0 ? ats_true_bool : ats_false_bool) ; } /* end of [atspre_neq_string_string] */ ATSinline() ats_int_type atspre_compare_string_string (const ats_ptr_type s1, const ats_ptr_type s2) { int i = strcmp((char*)s1, (char*)s2) ; if (i < 0) return -1 ; if (i > 0) return 1 ; return 0 ; } /* end of [atspre_compare_string_string] */ // print functions ATSinline() ats_void_type atspre_fprint_string (const ats_ptr_type out, const ats_ptr_type s) { int n = fprintf ((FILE *)out, "%s", (char*)s) ; if (n < 0) { ats_exit_errmsg (n, (ats_ptr_type)"exit(ATS): [fprint_string] failed.\n") ; } // end of [if] return ; } /* end of [atspre_fprint_string] */ ATSinline() ats_void_type atspre_print_string (const ats_ptr_type s) { // atspre_stdout_view_get() ; atspre_fprint_string((ats_ptr_type)stdout, s) ; // atspre_stdout_view_set() ; return ; } /* end of [atspre_print_string] */ ATSinline() ats_void_type atspre_prerr_string (const ats_ptr_type s) { // atspre_stderr_view_get() ; atspre_fprint_string((ats_ptr_type)stderr, s) ; // atspre_stderr_view_set() ; return ; } /* end of [atspre_prerr_string] */ /* ****** ****** */ ATSinline() ats_char_type atspre_string_get_char_at (const ats_ptr_type s, ats_size_type offset) { return *((char*)s + offset) ; } /* end of [atspre_string_get_char_at] */ ATSinline() ats_char_type atspre_string_get_char_at__intsz ( const ats_ptr_type s, ats_int_type offset ) { return *((char*)s + offset) ; } /* end of [atspre_string_get_char_at__intsz] */ ATSinline() ats_void_type atspre_strbuf_set_char_at ( ats_ptr_type s, ats_size_type offset, ats_char_type c ) { /* fprintf (stdout, "atspre_strbuf_set_char_at: s = %s\n", s); fprintf (stdout, "atspre_strbuf_set_char_at: offset = %li\n", (unsigned long)offset); fprintf (stdout, "atspre_strbuf_set_char_at: c = %c\n", c); */ *((char*)s + offset) = c ; return ; } /* end of [atspre_strbuf_set_char_at] */ ATSinline() ats_void_type atspre_strbuf_set_char_at__intsz ( ats_ptr_type s, ats_int_type offset, ats_char_type c ) { *((char*)s + offset) = c ; return ; } /* end of [atspre_strbuf_set_char_at__intsz] */ ATSinline() ats_char_type atspre_string_test_char_at ( const ats_ptr_type s, ats_size_type offset ) { return *((char*)s + offset) ; } /* end of [atspre_string_test_char_at] */ ATSinline() ats_char_type atspre_string_test_char_at__intsz ( const ats_ptr_type s, ats_int_type offset ) { return *((char*)s + offset) ; } /* end of [atspre_string_test_char_at__intsz] */ /* ****** ****** */ ATSinline() ats_void_type atspre_strbuf_initialize_substring ( ats_ptr_type p_buf , ats_ptr_type s, ats_size_type st, ats_size_type ln ) { memcpy (p_buf, ((char*)s)+st, ln) ; ((char*)p_buf)[ln] = '\000' ; return ; } // end of [atspre_strbuf_initialize_substring] /* ****** ****** */ ATSinline() ats_ptr_type atspre_string_copy (ats_ptr_type str) { int n ; char *des ; n = strlen((char*)str) ; des = (char*)ATS_MALLOC(n+1) ; des[n] = '\000' ; memcpy(des, str, n) ; return (des) ; } // end of [atspre_string_copy] /* ****** ****** */ ATSinline() ats_ptr_type atspre_string_append (ats_ptr_type s1, ats_ptr_type s2) { int n1, n2 ; char *des ; n1 = strlen((char*)s1) ; n2 = strlen((char*)s2) ; des = (char*)ATS_MALLOC(n1+n2+1) ; des[n1+n2] = '\000' ; memcpy(des, s1, n1) ; memcpy (des+n1, s2, n2) ; return (des) ; } // end of [atspre_string_append] /* ****** ****** */ ATSinline() ats_bool_type atspre_string_contains (ats_ptr_type s0, ats_char_type c) { char *s = strchr((char*)s0, (char)c) ; return (s != (char*)0 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_string_contains] /* ****** ****** */ ATSinline() ats_size_type atspre_string_length (ats_ptr_type s) { return (strlen((char*)s)) ; } // end of [atspre_string_length] /* ****** ****** */ ATSinline() ats_bool_type atspre_string_is_empty (ats_ptr_type s) { return (*((char*)s) == '\000') ; } // end of [atspre_string_is_empty] ATSinline() ats_bool_type atspre_string_isnot_empty (ats_ptr_type s) { return (*((char*)s) != '\000') ; } // end of [atspre_string_isnot_empty] /* ****** ****** */ ATSinline() ats_bool_type atspre_string_is_atend ( ats_ptr_type s, ats_size_type i ) { return (*((char*)s + i) == '\000' ? ats_true_bool : ats_false_bool) ; } // end of [atspre_string_is_atend] ATSinline() ats_bool_type atspre_string_isnot_atend ( ats_ptr_type s, ats_size_type i ) { return (*((char*)s + i) != '\000' ? ats_true_bool : ats_false_bool) ; } // end of [atspre_string_isnot_atend] /* ****** ****** */ ATSinline() ats_ssize_type atspre_string_index_of_char_from_left (const ats_ptr_type s, const ats_char_type c) { char *res ; res = strchr ((char*)s, c) ; if (res != (char*)0) return (res - (char*)s) ; return (-1) ; } // end of [atspre_string_index_of_char_from_left] ATSinline() ats_ssize_type atspre_string_index_of_char_from_right (const ats_ptr_type s, const ats_char_type c) { char *res ; res = strrchr ((char*)s, c) ; if (res != (char*)0) return (res - (char*)s) ; return (-1) ; } // end of [atspre_string_index_of_char_from_right] /* ****** ****** */ ATSinline() ats_ssize_type atspre_string_index_of_string (const ats_ptr_type s1, const ats_ptr_type s2) { char *res ; res = strstr ((char*)s1, (char*)s2) ; if (res != (char*)0) return (res - (char*)s1) ; return (-1) ; } // end of [atspre_string_index_of_string] /* ****** ****** */ extern ats_ptr_type atspre_string_make_char ( ats_size_type n, const ats_char_type c ) ; // implemented in [prelude/DATS/string.dats] extern ats_ptr_type atspre_string_make_substring ( ats_ptr_type src0, ats_size_type start, ats_size_type len ) ; // implemented in [prelude/DATS/string.dats] /* ****** ****** */ ATSinline() ats_ptr_type atspre_string_singleton (ats_char_type c) { return atspre_string_make_char (1, c) ; } // end of [atspre_string_singleton] /* ****** ****** */ // functions for optional strings static ats_ptr_type atspre_stropt_none = (ats_ptr_type)0 ; ATSinline() ats_bool_type atspre_stropt_is_none (ats_ptr_type opt) { return (opt == (ats_ptr_type)0) ; } // end of [atspre_stropt_is_none] ATSinline() ats_bool_type atspre_stropt_is_some (ats_ptr_type opt) { return (opt != (ats_ptr_type)0) ; } // end of [atspre_stropt_is_some] ATSinline() ats_void_type atspre_fprint_stropt ( ats_ref_type out, ats_ptr_type opt ) { if (!opt) { fprintf ((FILE*)out, "None()") ; return ; } // end of [if] fprintf ((FILE*)out, "Some(%s)", (char*)opt) ; return ; } // end of [atspre_fprint_stropt] /* ****** ****** */ #define atspre_stropt_gc_none() ((ats_ptr_type)0) ATSinline() ats_void_type atspre_stropt_gc_unnone (ats_ptr_type x) { return ; } /* ****** ****** */ #define atspre_strptr_null() ((ats_ptr_type)0) ATSinline() ats_void_type atspre_strptr_free (ats_ptr_type base) { if (base) ATS_FREE (base) ; return ; } // end of [atspre_strptr_free] #define atspre_fprint_strptr atspre_fprint_string /* ****** ****** */ #endif /* ATS_PRELUDE_STRING_CATS */ /* end of [string.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/sizetype.cats0000644000175000017500000003436613431250607023255 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2009 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_SIZETYPE_CATS #define ATS_PRELUDE_SIZETYPE_CATS /* ****** ****** */ #include /* ****** ****** */ extern int fprintf (FILE *stream, const char *format, ...) ; // in [stdio.h] /* ****** ****** */ // // unsigned size type // /* ****** ****** */ extern void exit (int) ; // HX: see [stdlib.h] /* ****** ****** */ ATSinline() ats_size_type atspre_size_of_int (ats_int_type i) { if (i < 0) { fprintf (stderr, "[atspre_size_of_int(%i)] failed\n", i) ; exit (1) ; } /* end of [if] */ return ((ats_size_type)i) ; } // end of [atspre_size_of_int] #define atspre_int_of_size atspre_int1_of_size1 #define atspre_size_of_int1 atspre_size1_of_int1 #define atspre_uint_of_size atspre_uint1_of_size1 #define atspre_size_of_uint atspre_size1_of_uint1 /* ****** ****** */ #define atspre_add_size_int atspre_add_size1_int1 #define atspre_add_size_size atspre_add_size1_size1 #define atspre_sub_size_int atspre_sub_size1_int1 #define atspre_sub_size_size atspre_sub_size1_size1 #define atspre_mul_int_size atspre_mul_int1_size1 #define atspre_mul_size_int atspre_mul_size1_int1 #define atspre_mul_size_size atspre_mul_size1_size1 #define atspre_div_size_int atspre_div_size1_int1 #define atspre_div_size_size atspre_div_size1_size1 #define atspre_mod_size_int atspre_mod_size1_int1 #define atspre_mod_size_size atspre_mod_size1_size1 #define atspre_lt_size_size atspre_lt_size1_size1 #define atspre_lte_size_size atspre_lte_size1_size1 #define atspre_gt_size_int atspre_gt_size1_int1 #define atspre_gt_size_size atspre_gt_size1_size1 #define atspre_gte_size_int atspre_gte_size1_int1 #define atspre_gte_size_size atspre_gte_size1_size1 #define atspre_eq_size_int atspre_eq_size1_int1 #define atspre_eq_size_size atspre_eq_size1_size1 #define atspre_neq_size_int atspre_neq_size1_int1 #define atspre_neq_size_size atspre_neq_size1_size1 #define atspre_max_size_size atspre_max_size1_size1 #define atspre_min_size_size atspre_min_size1_size1 /* ****** ****** */ ATSinline() ats_size_type atspre_land_size_size (ats_size_type x, ats_size_type y) { return (x & y) ; } ATSinline() ats_size_type atspre_lor_size_size (ats_size_type x, ats_size_type y) { return (x | y) ; } ATSinline() ats_size_type atspre_lxor_size_size (ats_size_type x, ats_size_type y) { return (x ^ y) ; } /* ****** ****** */ ATSinline() ats_size_type atspre_lsl_size_int1 (ats_size_type sz, ats_int_type n) { return (sz << n) ; } ATSinline() ats_size_type atspre_lsr_size_int1 (ats_size_type sz, ats_int_type n) { return (sz >> n) ; } /* ****** ****** */ // print functions ATSinline() ats_void_type atspre_fprint_size ( ats_ptr_type out, ats_size_type sz ) { fprintf ((FILE*)out, "%lu", (ats_ulint_type)sz) ; return ; } // end of [atspre_fprint_size] ATSinline() ats_void_type atspre_print_size (ats_size_type sz) { // atspre_stdout_view_get () ; atspre_fprint_size ((ats_ptr_type)stdout, sz) ; // atspre_stdout_view_set () ; return ; } ATSinline() ats_void_type atspre_prerr_size (ats_size_type sz) { // atspre_stderr_view_get () ; atspre_fprint_size ((ats_ptr_type)stderr, sz) ; // atspre_stderr_view_set () ; return ; } /* ****** ****** */ // // unsigned size type (indexed) // /* ****** ****** */ ATSinline() ats_int_type atspre_int1_of_size1 (ats_size_type sz) { if (INT_MAX < sz) { fprintf (stderr, "[atspre_int_of_size(%lu)] failed\n", (ats_ulint_type)sz) ; exit (1) ; } /* end of [if] */ return ((ats_int_type)sz) ; } // end of [atspre_int1_of_size1] ATSinline() ats_uint_type atspre_uint1_of_size1 (ats_size_type sz) { if (UINT_MAX < sz) { fprintf (stderr, "[atspre_uint_of_size(%lu)] failed\n", (ats_ulint_type)sz) ; exit (1) ; } /* end of [if] */ return ((ats_uint_type)sz) ; } // end of [atspre_uint1_of_size1] /* ****** ****** */ ATSinline() ats_size_type atspre_size1_of_int1 (ats_int_type i) { return (ats_size_type)i ; } ATSinline() ats_size_type atspre_size1_of_uint1 (ats_uint_type u) { return (ats_size_type)u ; } ATSinline() ats_size_type atspre_size1_of_ptrdiff1 (ats_ptrdiff_type x) { return (ats_size_type)x ; } /* ****** ****** */ ATSinline() ats_size_type atspre_succ_size1 (ats_size_type sz) { return (sz + 1) ; } ATSinline() ats_size_type atspre_pred_size1 (ats_size_type sz) { return (sz - 1) ; } /* ****** ****** */ ATSinline() ats_size_type atspre_add_size1_int1 (ats_size_type sz1, ats_int_type i2) { return (sz1 + i2) ; } ATSinline() ats_size_type atspre_add_size1_size1 ( ats_size_type sz1, ats_size_type sz2 ) { return (sz1 + sz2) ; } // end of [atspre_add_size1_size1] /* ****** ****** */ ATSinline() ats_size_type atspre_sub_size1_int1 (ats_size_type sz1, ats_int_type i2) { return (sz1 - i2) ; } ATSinline() ats_size_type atspre_sub_size1_size1 ( ats_size_type sz1, ats_size_type sz2 ) { return (sz1 - sz2) ; } // end of [atspre_sub_size1_size1] /* ****** ****** */ ATSinline() ats_size_type atspre_mul_int1_size1 ( ats_int_type i1, ats_size_type sz2 ) { return (i1 * sz2) ; } // end of [atspre_mul_int1_size1] ATSinline() ats_size_type atspre_mul_size1_int1 ( ats_size_type sz1, ats_int_type i2 ) { return (sz1 * i2) ; } // end of [atspre_mul_size1_int1] ATSinline() ats_size_type atspre_mul_size1_size1 ( ats_size_type sz1, ats_size_type sz2 ) { return (sz1 * sz2) ; } // end of [atspre_mul_size1_size1] #define atspre_mul1_size1_size1 atspre_mul_size1_size1 #define atspre_mul2_size1_size1 atspre_mul_size1_size1 /* ****** ****** */ ATSinline() ats_size_type atspre_div_size1_int1 ( ats_size_type sz1, ats_int_type i2 ) { return (sz1 / i2) ; } // end of [atspre_div_size1_int1] #define atspre_div2_size1_int1 atspre_div_size1_int1 ATSinline() ats_size_type atspre_div_size1_size1 ( ats_size_type sz1, ats_size_type sz2 ) { return (sz1 / sz2) ; } // end of [atspre_div_size1_size1] #define atspre_div2_size1_size1 atspre_div_size1_size1 /* ****** ****** */ ATSinline() ats_int_type atspre_mod_size1_int1 (ats_size_type sz1, ats_int_type i2) { return (sz1 % i2) ; } // end of [atspre_mod_size1_int1] #define atspre_mod1_size1_int1 atspre_mod_size1_int1 #define atspre_mod2_size1_int1 atspre_mod_size1_int1 ATSinline() ats_size_type atspre_mod_size1_size1 (ats_size_type sz1, ats_size_type sz2) { return (sz1 % sz2) ; } // end of [atspre_mod_size1_size1] #define atspre_mod1_size1_size1 atspre_mod_size1_size1 #define atspre_mod2_size1_size1 atspre_mod_size1_size1 /* ****** ****** */ ATSinline() ats_bool_type atspre_lt_size1_size1 (ats_size_type sz1, ats_size_type sz2) { return (sz1 < sz2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lt_size1_size1] ATSinline() ats_bool_type atspre_lt_int1_size1 (ats_int_type i1, ats_size_type sz2) { return ((ats_size_type)i1 < sz2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lt_int1_size1] ATSinline() ats_bool_type atspre_lt_size1_int1 (ats_size_type sz1, ats_int_type i2) { return (sz1 < (ats_size_type)i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lt_size1_int1] /* ****** ****** */ ATSinline() ats_bool_type atspre_lte_size1_size1 (ats_size_type sz1, ats_size_type sz2) { return (sz1 <= sz2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lte_size1_size1] ATSinline() ats_bool_type atspre_lte_int1_size1 (ats_int_type i1, ats_size_type sz2) { return ((ats_size_type)i1 <= sz2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lte_int1_size1] ATSinline() ats_bool_type atspre_lte_size1_int1 (ats_size_type sz1, ats_int_type i2) { return (sz1 <= (ats_size_type)i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lte_size1_int1] /* ****** ****** */ ATSinline() ats_bool_type atspre_gt_size1_size1 (ats_size_type sz1, ats_size_type sz2) { return (sz1 > sz2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gt_size1_size1] ATSinline() ats_bool_type atspre_gt_size1_int1 (ats_size_type sz1, ats_int_type i2) { return (sz1 > (ats_size_type)i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gt_size1_int1] ATSinline() ats_bool_type atspre_gte_size1_size1 (ats_size_type sz1, ats_size_type sz2) { return (sz1 >= sz2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gte_size1_size1] ATSinline() ats_bool_type atspre_gte_size1_int1 (ats_size_type sz1, ats_int_type i2) { return (sz1 >= (ats_size_type)i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gte_size1_int1] /* ****** ****** */ ATSinline() ats_bool_type atspre_eq_size1_size1 (ats_size_type sz1, ats_size_type sz2) { return (sz1 == sz2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_eq_size1_size1] ATSinline() ats_bool_type atspre_eq_size1_int1 (ats_size_type sz1, ats_int_type i2) { return (sz1 == (ats_size_type)i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_eq_size1_int1] /* ****** ****** */ ATSinline() ats_bool_type atspre_neq_size1_size1 (ats_size_type sz1, ats_size_type sz2) { return (sz1 != sz2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_neq_size1_size1] ATSinline() ats_bool_type atspre_neq_size1_int1 (ats_size_type sz1, ats_int_type i2) { return (sz1 != (ats_size_type)i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_neq_size1_int1] /* ****** ****** */ ATSinline() ats_size_type atspre_max_size1_size1 (ats_size_type sz1, ats_size_type sz2) { return (sz1 >= sz2 ? sz1 : sz2) ; } // end of [atspre_max_size1_size1] ATSinline() ats_size_type atspre_min_size1_size1 (ats_size_type sz1, ats_size_type sz2) { return (sz1 <= sz2 ? sz1 : sz2) ; } // end of [atspre_min_size1_size1] /* ****** ****** */ // // signed size type // /* ****** ****** */ #define atspre_int_of_ssize atspre_int1_of_ssize1 #define atspre_ssize_of_int atspre_ssize1_of_int1 #define atspre_add_ssize_ssize atspre_add_ssize1_ssize1 #define atspre_sub_ssize_ssize atspre_sub_ssize1_ssize1 #define atspre_mul_ssize_ssize atspre_mul_ssize1_ssize1 #define atspre_div_ssize_ssize atspre_div_ssize1_ssize1 /* ****** ****** */ // // signed size type (indexed) // /* ****** ****** */ ATSinline() ats_int_type atspre_int1_of_ssize1 (ats_ssize_type ssz) { if (INT_MAX < ssz || ssz < INT_MIN) { fprintf (stderr, "exit(ATS): [atspre_int1_of_ssize1(%li)] failed\n", (ats_lint_type)ssz ) ; exit (1) ; } /* end of [if] */ return (ats_int_type)ssz ; } // end of [atspre_int1_of_ssize1] ATSinline() ats_ssize_type atspre_ssize1_of_int1 (ats_int_type i) { return (ats_ssize_type)i ; } // end of [atspre_ssize1_of_int1] /* ****** ****** */ ATSinline() ats_ssize_type atspre_add_ssize1_ssize1 ( ats_ssize_type i, ats_ssize_type j ) { return (i + j) ; } // end of [atspre_add_ssize1_ssize1] ATSinline() ats_ssize_type atspre_sub_ssize1_ssize1 ( ats_ssize_type i, ats_ssize_type j ) { return (i - j) ; } // end of [atspre_sub_ssize1_ssize1] ATSinline() ats_ssize_type atspre_mul_ssize1_ssize1 ( ats_ssize_type i, ats_ssize_type j ) { return (i * j) ; } // end of [atspre_mul_ssize1_ssize1] ATSinline() ats_ssize_type atspre_div_ssize1_ssize1 ( ats_ssize_type i, ats_ssize_type j ) { return (i / j) ; } // end of [atspre_div_ssize1_ssize1] /* ****** ****** */ ATSinline() ats_bool_type atspre_lt_ssize1_int1 (ats_ssize_type ssz1, ats_int_type i2) { return (ssz1 < i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lt_ssize1_int1] ATSinline() ats_bool_type atspre_lte_ssize1_int1 (ats_ssize_type ssz1, ats_int_type i2) { return (ssz1 <= i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_lte_ssize1_int1] /* ****** ****** */ ATSinline() ats_bool_type atspre_gt_ssize1_int1 (ats_ssize_type ssz1, ats_int_type i2) { return (ssz1 > i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gt_ssize1_int1] ATSinline() ats_bool_type atspre_gte_ssize1_int1 (ats_ssize_type ssz1, ats_int_type i2) { return (ssz1 >= i2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_gte_ssize1_int1] /* ****** ****** */ ATSinline() ats_bool_type atspre_eq_ssize1_ssize1 (ats_ssize_type ssz1, ats_ssize_type ssz2) { return (ssz1 == ssz2 ? ats_true_bool : ats_false_bool) ; } // end of [atspre_eq_ssize1_ssize1] ATSinline() ats_bool_type atspre_neq_ssize1_ssize1 (ats_ssize_type ssz1, ats_ssize_type ssz2) { return (ssz1 != ssz2 ? ats_true_bool : ats_false_bool) ; } /* end of [atspre_eq_ssize1_ssize1] */ /* ****** ****** */ // print functions ATSinline() ats_void_type atspre_fprint_ssize ( ats_ptr_type out, ats_ssize_type ssz ) { fprintf ((FILE*)out, "%li", (ats_lint_type)ssz) ; return ; } // end of [atspre_fprint_ssize] ATSinline() ats_void_type atspre_print_ssize (ats_ssize_type ssz) { // atspre_stdout_view_get () ; atspre_fprint_ssize ((ats_ptr_type)stdout, ssz) ; // atspre_stdout_view_set () ; return ; } // end of [atspre_print_ssize] ATSinline() ats_void_type atspre_prerr_ssize (ats_size_type ssz) { // atspre_stderr_view_get () ; atspre_fprint_ssize ((ats_ptr_type)stderr, ssz) ; // atspre_stderr_view_set () ; return ; } // end of [atspre_prerr_ssize] /* ****** ****** */ #endif /* ATS_PRELUDE_SIZETYPE_CATS */ /* end of [sizetype.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/CATS/array.cats0000644000175000017500000000724413431250607022512 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Potential of Types! ** ** Copyright (C) 2002-2008 Hongwei Xi. ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_PRELUDE_ARRAY_CATS #define ATS_PRELUDE_ARRAY_CATS /* ****** ****** */ #ifdef memcpy // // HX: [memcpy] is a macro on MACOS // #else // // in [string.h] // extern void *memcpy(void *dest, const void *src, size_t n) ; // #endif // memcpy /* ****** ****** */ ATSinline() ats_ptr_type atspre_array0_of_array1 (ats_ptr_type A) { return A ; } ATSinline() ats_ptr_type atspre_array1_of_array0 (ats_ptr_type A) { return A ; } /* ****** ****** */ ATSinline() ats_ptr_type atspre_array_ptr_alloc_tsz ( ats_size_type n, ats_size_type tsz ) { return ATS_MALLOC(n * tsz) ; } /* end of [atspre_array_ptr_alloc_tsz] */ ATSinline() ats_void_type atspre_array_ptr_free (ats_ptr_type base) { ATS_FREE(base); return ; } /* end of [atspre_array_ptr_free] */ /* ****** ****** */ // // HX: implemented in // $ATSHOME/prelude/DATS/array.dats // extern ats_void_type atspre_array_ptr_initialize_elt_tsz ( ats_ptr_type A , ats_size_type asz , ats_ptr_type ini , ats_size_type tsz ) ; /* ****** ****** */ ATSinline() ats_ptr_type atspre_array_ptr_split_tsz ( ats_ptr_type base , ats_size_type offset , ats_size_type tsz ) { return (ats_ptr_type)((char*)base + offset * tsz) ; } /* end of [atspre_array_ptr_split_tsz] */ /* ****** ****** */ ATSinline() ats_ptr_type atspre_array_ptr_takeout_tsz ( ats_ptr_type base , ats_size_type offset , ats_size_type tsz ) { return (ats_ptr_type)((char*)base + offset * tsz) ; } /* end of [atspre_array_ptr_takeout_tsz] */ /* ****** ****** */ ATSinline() ats_void_type atspre_array_ptr_copy_tsz ( ats_ptr_type p1 , ats_ptr_type p2 , ats_size_type asz , ats_size_type tsz ) { memcpy (p2, p1, asz * tsz) ; return ; } /* end of [atspre_array_ptr_copy_tsz] */ ATSinline() ats_void_type atspre_array_ptr_move_tsz ( ats_ptr_type p1 , ats_ptr_type p2 , ats_size_type asz , ats_size_type tsz ) { memcpy (p2, p1, asz * tsz) ; return ; } /* end of [atspre_array_ptr_move_tsz] */ /* ****** ****** */ ATSinline() ats_ptr_type atspre_array2_ptr_takeout_tsz ( ats_ptr_type base , ats_size_type iofs , ats_size_type ncol , ats_size_type tsz ) { return (ats_ptr_type)((char*)base + (iofs * ncol) * tsz) ; } /* end of [atspre_array2_ptr_takeout_tsz] */ /* ****** ****** */ #endif /* ATS_PRELUDE_ARRAY_CATS */ /* end of [array.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_option_dats.c0000644000175000017500000001125613431250607023266 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option.dats: 1832(line=53, offs=16) -- 1886(line=54, offs=48) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2prelude_2SATS_2option_2esats__option_is_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp0) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2option_2esats__option_is_none: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp0 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp0 = ats_false_bool ; break ; } while (0) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2option_2esats__option_is_none] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option.dats: 1940(line=58, offs=16) -- 1994(line=59, offs=48) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2prelude_2SATS_2option_2esats__option_is_some (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2option_2esats__option_is_some: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp1 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp1 = ats_false_bool ; break ; } while (0) ; return (tmp1) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2option_2esats__option_is_some] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2option_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2option_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2option_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2option_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2option_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2option_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2option_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2option_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2option_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2option_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_option_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/basics_dyn_sats.c0000644000175000017500000000174013431250607023275 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [basics_dyn_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_float_dats.c0000644000175000017500000002306313431250607023062 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_float_type, atspre_mul_float_float) (ats_float_type, ats_float_type) ; ATSextern_fun(ats_double_type, atspre_mul_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_ldouble_type, atspre_mul_ldouble_ldouble) (ats_ldouble_type, ats_ldouble_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (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_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_float_type loop_1 (ats_float_type arg0, ats_int_type arg1, ats_float_type arg2) ; static ats_double_type loop_3 (ats_double_type arg0, ats_int_type arg1, ats_double_type arg2) ; static ats_ldouble_type loop_5 (ats_ldouble_type arg0, ats_int_type arg1, ats_ldouble_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/float.dats: 1748(line=50, offs=7) -- 2031(line=59, offs=6) */ ATSstaticdec() ats_float_type loop_1 (ats_float_type arg0, ats_int_type arg1, ats_float_type arg2) { /* local vardec */ ATSlocal (ats_float_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_float_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_float_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; __ats_lab_loop_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp2 = atspre_igte (arg1, 2) ; if (!tmp2) { goto __ats_lab_1_1 ; } tmp3 = atspre_idiv (arg1, 2) ; tmp4 = atspre_mul_float_float (arg0, arg0) ; tmp6 = atspre_iadd (tmp3, tmp3) ; tmp5 = atspre_igt (arg1, tmp6) ; if (tmp5) { tmp7 = atspre_mul_float_float (arg0, arg2) ; arg0 = tmp4 ; arg1 = tmp3 ; arg2 = tmp7 ; goto __ats_lab_loop_1 ; // tail call } else { arg0 = tmp4 ; arg1 = tmp3 ; arg2 = arg2 ; goto __ats_lab_loop_1 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp8 = atspre_igte (arg1, 1) ; if (!tmp8) { goto __ats_lab_2_1 ; } tmp1 = atspre_mul_float_float (arg0, arg2) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp1 = arg2 ; break ; } while (0) ; return (tmp1) ; } /* end of [loop_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/float.dats: 1709(line=48, offs=26) -- 2077(line=62, offs=4) */ ATSglobaldec() ats_float_type ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__pow_float_int1 (ats_float_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_float_type, tmp0) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__pow_float_int1: tmp0 = loop_1 (arg0, arg1, 1.0) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__pow_float_int1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/float.dats: 2173(line=67, offs=7) -- 2456(line=76, offs=6) */ ATSstaticdec() ats_double_type loop_3 (ats_double_type arg0, ats_int_type arg1, ats_double_type arg2) { /* local vardec */ ATSlocal (ats_double_type, tmp10) ; ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; ATSlocal (ats_double_type, tmp13) ; ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_double_type, tmp16) ; ATSlocal (ats_bool_type, tmp17) ; __ats_lab_loop_3: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp11 = atspre_igte (arg1, 2) ; if (!tmp11) { goto __ats_lab_4_1 ; } tmp12 = atspre_idiv (arg1, 2) ; tmp13 = atspre_mul_double_double (arg0, arg0) ; tmp15 = atspre_iadd (tmp12, tmp12) ; tmp14 = atspre_igt (arg1, tmp15) ; if (tmp14) { tmp16 = atspre_mul_double_double (arg0, arg2) ; arg0 = tmp13 ; arg1 = tmp12 ; arg2 = tmp16 ; goto __ats_lab_loop_3 ; // tail call } else { arg0 = tmp13 ; arg1 = tmp12 ; arg2 = arg2 ; goto __ats_lab_loop_3 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp17 = atspre_igte (arg1, 1) ; if (!tmp17) { goto __ats_lab_5_1 ; } tmp10 = atspre_mul_double_double (arg0, arg2) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp10 = arg2 ; break ; } while (0) ; return (tmp10) ; } /* end of [loop_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/float.dats: 2133(line=65, offs=27) -- 2502(line=79, offs=4) */ ATSglobaldec() ats_double_type ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__pow_double_int1 (ats_double_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_double_type, tmp9) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__pow_double_int1: tmp9 = loop_3 (arg0, arg1, 1.0) ; return (tmp9) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__pow_double_int1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/float.dats: 2601(line=84, offs=7) -- 2884(line=93, offs=6) */ ATSstaticdec() ats_ldouble_type loop_5 (ats_ldouble_type arg0, ats_int_type arg1, ats_ldouble_type arg2) { /* local vardec */ ATSlocal (ats_ldouble_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_ldouble_type, tmp22) ; ATSlocal (ats_bool_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_ldouble_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; __ats_lab_loop_5: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp20 = atspre_igte (arg1, 2) ; if (!tmp20) { goto __ats_lab_7_1 ; } tmp21 = atspre_idiv (arg1, 2) ; tmp22 = atspre_mul_ldouble_ldouble (arg0, arg0) ; tmp24 = atspre_iadd (tmp21, tmp21) ; tmp23 = atspre_igt (arg1, tmp24) ; if (tmp23) { tmp25 = atspre_mul_ldouble_ldouble (arg0, arg2) ; arg0 = tmp22 ; arg1 = tmp21 ; arg2 = tmp25 ; goto __ats_lab_loop_5 ; // tail call } else { arg0 = tmp22 ; arg1 = tmp21 ; arg2 = arg2 ; goto __ats_lab_loop_5 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp26 = atspre_igte (arg1, 1) ; if (!tmp26) { goto __ats_lab_8_1 ; } tmp19 = atspre_mul_ldouble_ldouble (arg0, arg2) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp19 = arg2 ; break ; } while (0) ; return (tmp19) ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/float.dats: 2560(line=82, offs=28) -- 2930(line=96, offs=4) */ ATSglobaldec() ats_ldouble_type ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__pow_ldouble_int1 (ats_ldouble_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ldouble_type, tmp18) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__pow_ldouble_int1: tmp18 = loop_5 (arg0, arg1, 1.0) ; return (tmp18) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__pow_ldouble_int1] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2float_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2float_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2float_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2float_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2float_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2float_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2float_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2float_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2float_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_float_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_list_dats.c0000644000175000017500000002376713431250607022743 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__lcons_0) ; ATSglobal(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__lnil_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 1801(line=57, offs=1) -- 1896(line=59, offs=52) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () { /* local vardec */ // ATSlocal_void (tmp0) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative) ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck] */ #endif /* _ATS_PROOFCHECK */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__lcons_0.tag = 0 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__lnil_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_list_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_unsafe_dats.c0000644000175000017500000000561413431250607023240 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_unsafe_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_char_dats.c0000644000175000017500000000560113431250607022670 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK /* empty */ #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2char_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2char_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2char_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2char_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2char_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2char_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2char_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2char_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2char_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2char_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_char_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_ptrarr_dats.c0000644000175000017500000000567713431250607023302 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ ats_size_type atspre_ptrarr_size (ats_ptr_type p0) { char **p = (char**)p0 ; size_t i = 0 ; for (i = 0; *p != (char*)0; i += 1) p += 1 ; return i ; } // end of [atspre_ptrarr_size] /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK /* empty */ #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2ptrarr_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2ptrarr_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2ptrarr_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2ptrarr_2edats__staload_flag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2ptrarr_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2ptrarr_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2ptrarr_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2ptrarr_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_ptrarr_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_matrix_dats.c0000644000175000017500000002567013431250607023267 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ #include "prelude/CATS/array.cats" #define atspre_matrix_szdiv(i, n) (i / n) /* type definitions */ typedef struct { ats_ptr_type atslab_2 ; ats_size_type atslab_3 ; } anairiats_rec_0 ; /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ 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_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_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_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_matrix_ptr_takeout_row_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_matrix_ptr_takeout_elt_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_matrix_make_arrpsz__main) (ats_size_type, ats_size_type, anairiats_rec_0) ; ATSextern_fun(ats_ptr_type, atspre_matrix_make_funenv_tsz) (ats_size_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_istot_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_nat_nat_nat_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__array_v_of_matrix_v_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__matrix_v_of_array_v_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__sasp__matrix_viewt0ype_int_int_type = 0 ; int ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__sasp__mtrxt = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type __ats_fun_5 (ats_size_type env0, ats_ptr_type env1, ats_size_type arg0, ats_ref_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type __ats_fun_5_closure_make (ats_size_type env0, ats_ptr_type env1) ; static ats_void_type __ats_fun_5_clofun (ats_clo_ptr_type cloptr, ats_size_type arg0, ats_ref_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix.dats: 1981(line=66, offs=1) -- 2175(line=74, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__array_v_of_matrix_v_prfck () { /* local vardec */ // ATSlocal_void (tmp0) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__array_v_of_matrix_v) ; ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_istot_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_nat_nat_nat_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_ungroup_prfck () ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__array_v_of_matrix_v) ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__array_v_of_matrix_v_prfck] */ #endif /* _ATS_PROOFCHECK */ #ifdef _ATS_PROOFCHECK /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix.dats: 2209(line=76, offs=1) -- 2288(line=78, offs=50) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__matrix_v_of_array_v_prfck () { /* local vardec */ // ATSlocal_void (tmp1) ; ats_proofcheck_beg_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__matrix_v_of_array_v) ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_group_prfck () ; ats_proofcheck_end_mac(ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__matrix_v_of_array_v) ; return /* (tmp1) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__matrix_v_of_array_v_prfck] */ #endif /* _ATS_PROOFCHECK */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix.dats: 3222(line=124, offs=13) -- 3362(line=129, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__matrix_make_arrpsz (ats_size_type arg0, ats_size_type arg1, anairiats_rec_0 arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__matrix_make_arrpsz: tmp2 = atspre_matrix_make_arrpsz__main (arg0, arg1, arg2) ; return (tmp2) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__matrix_make_arrpsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix.dats: 3436(line=133, offs=7) -- 3687(line=139, offs=6) */ ATSglobaldec() ats_ptr_type atspre_matrix_make_arrpsz__main (ats_size_type arg0, ats_size_type arg1, anairiats_rec_0 arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; __ats_lab_atspre_matrix_make_arrpsz__main: tmp5 = ats_select_mac(arg2, atslab_2) ; /* tmp4 = */ atspre_vbox_make_view_ptr (tmp5) ; /* tmp6 = ats_selsin_mac(tmp4, atslab_1) */ ; tmp3 = ats_select_mac(arg2, atslab_2) ; return (tmp3) ; } /* end of [atspre_matrix_make_arrpsz__main] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix.dats: 5006(line=187, offs=15) -- 5172(line=192, offs=6) */ ATSstaticdec() ats_void_type __ats_fun_5 (ats_size_type env0, ats_ptr_type env1, ats_size_type arg0, ats_ref_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_size_type, tmp14) ; ATSlocal (ats_size_type, tmp15) ; __ats_lab___ats_fun_5: tmp14 = atspre_matrix_szdiv (arg0, env0) ; tmp15 = atspre_mod1_size1_size1 (arg0, env0) ; /* tmp13 = */ ((ats_void_type(*)(ats_size_type, ats_size_type, ats_ref_type, ats_ptr_type))env1) (tmp14, tmp15, arg1, arg2) ; return /* (tmp13) */ ; } /* end of [__ats_fun_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_size_type closure_env_0 ; ats_ptr_type closure_env_1 ; } __ats_fun_5_closure_type ; ats_void_type __ats_fun_5_clofun (ats_clo_ptr_type cloptr, ats_size_type arg0, ats_ref_type arg1, ats_ptr_type arg2) { __ats_fun_5 (((__ats_fun_5_closure_type*)cloptr)->closure_env_0, ((__ats_fun_5_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; return ; } /* end of function */ ATSinline() ats_void_type __ats_fun_5_closure_init (__ats_fun_5_closure_type *p_clo, ats_size_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix.dats: 4664(line=178, offs=3) -- 5472(line=200, offs=6) */ ATSglobaldec() ats_ptr_type atspre_matrix_make_funenv_tsz (ats_size_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_size_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_size_type, tmp8) ; ATSlocal (ats_size_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (__ats_fun_5_closure_type, tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; __ats_lab_atspre_matrix_make_funenv_tsz: tmp8 = atspre_mul2_size1_size1 (arg0, arg1) ; tmp9 = ats_selsin_mac(tmp8, atslab_1) ; tmp10 = atspre_array_ptr_alloc_tsz (tmp9, arg3) ; tmp11 = ats_selsin_mac(tmp10, atslab_2) ; /* ats_ptr_type tmp12 ; */ tmp12 = &(tmp16) ; __ats_fun_5_closure_init (tmp12, arg1, arg2) ; // closure initialization /* tmp17 = */ atspre_array_ptr_initialize_cloenv_tsz (tmp11, tmp9, tmp12, arg3, arg4) ; /* tmp18 = */ atspre_vbox_make_view_ptr (tmp11) ; /* tmp19 = ats_selsin_mac(tmp18, atslab_1) */ ; tmp7 = tmp11 ; return (tmp7) ; } /* end of [atspre_matrix_make_funenv_tsz] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_istot_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_nat_nat_nat_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__array_v_of_matrix_v_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix_2esats__matrix_v_of_array_v_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_matrix_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_option_vt_dats.c0000644000175000017500000001137713431250607024003 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2018(line=62, offs=19) -- 2103(line=63, offs=69) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__option_vt_is_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp0) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__option_vt_is_none: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp0 = ats_false_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp0 = ats_true_bool ; break ; } while (0) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__option_vt_is_none] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2163(line=67, offs=19) -- 2248(line=68, offs=69) */ ATSglobaldec() ats_bool_type ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__option_vt_is_some (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__option_vt_is_some: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp1 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp1 = ats_false_bool ; break ; } while (0) ; return (tmp1) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__option_vt_is_some] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2option_vt_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2option_vt_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2option_vt_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2option_vt_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2option_vt_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2option_vt_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2option_vt_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2option_vt_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2option_vt_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_option_vt_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_matrix0_dats.c0000644000175000017500000002141313431250607023336 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_2 ; ats_size_type atslab_3 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_3 ; ats_size_type atslab_4 ; ats_size_type atslab_5 ; } anairiats_rec_1 ; /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size_int) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (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_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_elt_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_make_arrpsz__main) (ats_size_type, ats_size_type, anairiats_rec_0) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_istot_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_isfun_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_nat_nat_nat_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__lemma_for_matrix_subscripting_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__sasp__matrix0_viewt0ype_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_anairiats_rec_1 (anairiats_rec_1 arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_anairiats_rec_1 (anairiats_rec_1 arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (anairiats_rec_1, tmp2) ; __ats_lab_ref_01088_anairiats_rec_1: /* anairiats_rec_1 tmp2 ; */ tmp2 = arg0 ; tmp1 = atspre_ref_make_elt_tsz ((&tmp2), sizeof(anairiats_rec_1)) ; return (tmp1) ; } /* end of [ref_01088_anairiats_rec_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix0.dats: 2042(line=62, offs=13) -- 2174(line=67, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_make_arrpsz (ats_size_type arg0, ats_size_type arg1, anairiats_rec_0 arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (anairiats_rec_1, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_make_arrpsz: tmp4 = ats_select_mac(arg2, atslab_2) ; tmp3.atslab_3 = tmp4 ; tmp3.atslab_4 = arg0 ; tmp3.atslab_5 = arg1 ; tmp0 = ref_01088_anairiats_rec_1 (tmp3) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_make_arrpsz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix0.dats: 2261(line=71, offs=18) -- 2336(line=74, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_make_arrpsz__main (ats_size_type arg0, ats_size_type arg1, anairiats_rec_0 arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (anairiats_rec_1, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_make_arrpsz__main: tmp7 = ats_select_mac(arg2, atslab_2) ; tmp6.atslab_3 = tmp7 ; tmp6.atslab_4 = arg0 ; tmp6.atslab_5 = arg1 ; tmp5 = ref_01088_anairiats_rec_1 (tmp6) ; return (tmp5) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_make_arrpsz__main] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix0.dats: 2958(line=94, offs=23) -- 3022(line=96, offs=4) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_row (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_row: tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp8 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp9), atslab_4) ; return (tmp8) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_row] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/matrix0.dats: 3070(line=98, offs=23) -- 3134(line=100, offs=4) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_col (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_size_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_col: tmp11 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp10 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp11), atslab_5) ; return (tmp10) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__matrix0_col] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2matrix0_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_istot_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_isfun_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_nat_nat_nat_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__lemma_for_matrix_subscripting_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_matrix0_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_filebas_dats.c0000644000175000017500000010624013431250607023361 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libc/sys/CATS/stat.cats" #include "libc/sys/CATS/types.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ #include #include typedef struct { ats_char_type atslab_0 ; ats_ptr_type atslab_1 ; } *charlst ; // end of [typedef] ATSinline() ats_ptr_type string_make_charlst_rev (ats_int_type sz, ats_ptr_type cs) { char *s0, *s ; charlst cs_next ; s0 = (char*)ATS_MALLOC (sz + 1) ; s = s0 + sz ; *s-- = '\0' ; while (cs != (charlst)0) { *s-- = ((charlst)cs)->atslab_0 ; cs_next = ((charlst)cs)->atslab_1 ; ATS_FREE (cs) ; cs = cs_next ; } // end of [while] return s0 ; } /* string_make_charlst_rev */ /* type definitions */ typedef struct { ats_char_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_nil_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_cons_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_vt_nil_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__stream_vt_cons_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_char_type, atspre_char_of_int) (ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gte_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_int_type, atspre_iadd) (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_ieq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_ssize_type, atspre_ssize1_of_int1) (ats_int_type) ; ATSextern_fun(ats_ssize_type, atspre_sub_ssize1_ssize1) (ats_ssize_type, ats_ssize_type) ; ATSextern_fun(ats_bool_type, atspre_neq_ssize1_ssize1) (ats_ssize_type, ats_ssize_type) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_int_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_mode) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line_vt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_make_file) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_make_file) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_vt_make_file) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_vt_make_file) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atslib_fclose_exn) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atslib_fclose_exn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, string_make_charlst_rev) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atslib_fputc_exn) (ats_char_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atslib_fputs_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atslib_fflush_exn) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atslib_S_ISBLK) (ats_mode_type) ; ATSextern_fun(ats_bool_type, atslib_S_ISCHR) (ats_mode_type) ; ATSextern_fun(ats_bool_type, atslib_S_ISDIR) (ats_mode_type) ; ATSextern_fun(ats_bool_type, atslib_S_ISFIFO) (ats_mode_type) ; ATSextern_fun(ats_bool_type, atslib_S_ISREG) (ats_mode_type) ; ATSextern_fun(ats_bool_type, atslib_S_ISLNK) (ats_mode_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type loop_1 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_bool_type __ats_fun_7 (ats_uint_type arg0) ; static ats_bool_type __ats_fun_9 (ats_uint_type arg0) ; static ats_bool_type __ats_fun_11 (ats_uint_type arg0) ; static ats_bool_type __ats_fun_13 (ats_uint_type arg0) ; static ats_bool_type __ats_fun_15 (ats_uint_type arg0) ; static ats_void_type loop_18 (ats_ptr_type arg0, ats_ref_type arg1, ats_ssize_type arg2) ; static ats_ptr_type __ats_fun_22 (ats_ptr_type env0) ; static ats_clo_ptr_type __ats_fun_22_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr) ; static ats_ptr_type __ats_fun_24 (ats_ptr_type env0) ; static ats_clo_ptr_type __ats_fun_24_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_24_clofun (ats_clo_ptr_type cloptr) ; static ats_ptr_type __ats_fun_26 (ats_ptr_type env0, ats_bool_type arg0) ; static ats_clo_ptr_type __ats_fun_26_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_26_clofun (ats_clo_ptr_type cloptr, ats_bool_type arg0) ; static ats_ptr_type __ats_fun_29 (ats_bool_type arg0) ; static ats_clo_ptr_type __ats_fun_29_closure_make () ; static ats_ptr_type __ats_fun_29_clofun (ats_clo_ptr_type cloptr, ats_bool_type arg0) ; static ats_ptr_type loop_28 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_ptr_type __ats_fun_30 (ats_ptr_type env0, ats_bool_type arg0) ; static ats_clo_ptr_type __ats_fun_30_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_30_clofun (ats_clo_ptr_type cloptr, ats_bool_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 3688(line=135, offs=7) -- 4242(line=155, offs=6) */ ATSstaticdec() ats_ptr_type loop_1 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_bool_type, tmp3) ; ATSlocal (ats_char_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; __ats_lab_loop_1: tmp2 = atslib_fgetc_err (arg0) ; tmp3 = atspre_neq_int_int (tmp2, EOF) ; if (tmp3) { tmp4 = atspre_char_of_int (tmp2) ; tmp5 = atspre_neq_char_char (tmp4, '\n') ; if (tmp5) { tmp6 = atspre_iadd (arg1, 1) ; tmp7 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp7, atslab_0, tmp4) ; ats_selptrset_mac(anairiats_sum_0, tmp7, atslab_1, arg2) ; arg0 = arg0 ; arg1 = tmp6 ; arg2 = tmp7 ; goto __ats_lab_loop_1 ; // tail call } else { tmp1 = string_make_charlst_rev (arg1, arg2) ; } /* end of [if] */ } else { tmp8 = atspre_ieq (arg1, 0) ; if (tmp8) { // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp1 = atspre_strptr_null () ; } else { tmp1 = string_make_charlst_rev (arg1, arg2) ; } /* end of [if] */ } /* end of [if] */ return (tmp1) ; } /* end of [loop_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 3670(line=134, offs=15) -- 4298(line=158, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line_vt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line_vt: tmp9 = (ats_sum_ptr_type)0 ; tmp0 = loop_1 (arg0, 0, tmp9) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line_vt] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 4347(line=161, offs=12) -- 4420(line=163, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line: tmp11 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line_vt (arg0) ; tmp10 = ats_castfn_mac(ats_ptr_type, tmp11) ; return (tmp10) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 4871(line=186, offs=13) -- 4956(line=188, offs=2) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__output_line (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__output_line: /* tmp13 = */ atslib_fputs_exn (arg1, arg0) ; /* tmp14 = */ atslib_fputc_exn ('\n', arg0) ; /* tmp12 = */ atslib_fflush_exn (arg0) ; return /* (tmp12) */ ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__output_line] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 5197(line=203, offs=18) -- 5418(line=212, offs=4) */ ATSglobaldec() ats_bool_type atspre_test_file_exists (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp15) ; ATSlocal (ats_stat_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; __ats_lab_atspre_test_file_exists: /* ats_stat_type tmp16 ; */ tmp17 = atslib_stat_err (arg0, (&tmp16)) ; tmp18 = atspre_ieq (tmp17, 0) ; if (tmp18) { tmp15 = ats_true_bool ; } else { tmp15 = ats_false_bool ; } /* end of [if] */ return (tmp15) ; } /* end of [atspre_test_file_exists] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 5497(line=218, offs=3) -- 5766(line=228, offs=4) */ ATSglobaldec() ats_int_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_mode (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_stat_type, tmp20) ; ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_bool_type, tmp22) ; ATSlocal (ats_bool_type, tmp23) ; ATSlocal (ats_mode_type, tmp24) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_mode: /* ats_stat_type tmp20 ; */ tmp21 = atslib_stat_err (arg0, (&tmp20)) ; tmp22 = atspre_ieq (tmp21, 0) ; if (tmp22) { tmp24 = ats_select_mac(tmp20, st_mode) ; tmp23 = ((ats_bool_type(*)(ats_uint_type))arg1) (ats_castfn_mac(ats_uint_type, tmp24)) ; if (tmp23) { tmp19 = 1 ; } else { tmp19 = 0 ; } /* end of [if] */ } else { tmp19 = -1 ; } /* end of [if] */ return (tmp19) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_mode] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 5875(line=233, offs=34) -- 5900(line=233, offs=59) */ ATSstaticdec() ats_bool_type __ats_fun_7 (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp26) ; __ats_lab___ats_fun_7: tmp26 = atslib_S_ISBLK (ats_castfn_mac(ats_mode_type, arg0)) ; return (tmp26) ; } /* end of [__ats_fun_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 5844(line=233, offs=3) -- 5901(line=233, offs=60) */ ATSglobaldec() ats_int_type atspre_test_file_isblk (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp25) ; __ats_lab_atspre_test_file_isblk: tmp25 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_mode (arg0, &__ats_fun_7) ; return (tmp25) ; } /* end of [atspre_test_file_isblk] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 5990(line=237, offs=34) -- 6015(line=237, offs=59) */ ATSstaticdec() ats_bool_type __ats_fun_9 (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp28) ; __ats_lab___ats_fun_9: tmp28 = atslib_S_ISCHR (ats_castfn_mac(ats_mode_type, arg0)) ; return (tmp28) ; } /* end of [__ats_fun_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 5959(line=237, offs=3) -- 6016(line=237, offs=60) */ ATSglobaldec() ats_int_type atspre_test_file_ischr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp27) ; __ats_lab_atspre_test_file_ischr: tmp27 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_mode (arg0, &__ats_fun_9) ; return (tmp27) ; } /* end of [atspre_test_file_ischr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 6105(line=241, offs=34) -- 6130(line=241, offs=59) */ ATSstaticdec() ats_bool_type __ats_fun_11 (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp30) ; __ats_lab___ats_fun_11: tmp30 = atslib_S_ISDIR (ats_castfn_mac(ats_mode_type, arg0)) ; return (tmp30) ; } /* end of [__ats_fun_11] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 6074(line=241, offs=3) -- 6131(line=241, offs=60) */ ATSglobaldec() ats_int_type atspre_test_file_isdir (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp29) ; __ats_lab_atspre_test_file_isdir: tmp29 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_mode (arg0, &__ats_fun_11) ; return (tmp29) ; } /* end of [atspre_test_file_isdir] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 6221(line=245, offs=34) -- 6247(line=245, offs=60) */ ATSstaticdec() ats_bool_type __ats_fun_13 (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp32) ; __ats_lab___ats_fun_13: tmp32 = atslib_S_ISFIFO (ats_castfn_mac(ats_mode_type, arg0)) ; return (tmp32) ; } /* end of [__ats_fun_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 6190(line=245, offs=3) -- 6248(line=245, offs=61) */ ATSglobaldec() ats_int_type atspre_test_file_isfifo (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp31) ; __ats_lab_atspre_test_file_isfifo: tmp31 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_mode (arg0, &__ats_fun_13) ; return (tmp31) ; } /* end of [atspre_test_file_isfifo] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 6338(line=249, offs=34) -- 6363(line=249, offs=59) */ ATSstaticdec() ats_bool_type __ats_fun_15 (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp34) ; __ats_lab___ats_fun_15: tmp34 = atslib_S_ISREG (ats_castfn_mac(ats_mode_type, arg0)) ; return (tmp34) ; } /* end of [__ats_fun_15] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 6307(line=249, offs=3) -- 6364(line=249, offs=60) */ ATSglobaldec() ats_int_type atspre_test_file_isreg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp33) ; __ats_lab_atspre_test_file_isreg: tmp33 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_mode (arg0, &__ats_fun_15) ; return (tmp33) ; } /* end of [atspre_test_file_isreg] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 6441(line=255, offs=17) -- 6721(line=265, offs=4) */ ATSglobaldec() ats_int_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_isemp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp35) ; ATSlocal (ats_stat_type, tmp36) ; ATSlocal (ats_int_type, tmp37) ; ATSlocal (ats_bool_type, tmp38) ; ATSlocal (ats_bool_type, tmp39) ; ATSlocal (ats_off_type, tmp40) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_isemp: /* ats_stat_type tmp36 ; */ tmp37 = atslib_lstat_err (arg0, (&tmp36)) ; tmp38 = atspre_ieq (tmp37, 0) ; if (tmp38) { tmp40 = ats_select_mac(tmp36, st_size) ; tmp39 = atspre_eq_lint_lint (ats_castfn_mac(ats_lint_type, tmp40), 0L) ; if (tmp39) { tmp35 = 1 ; } else { tmp35 = 0 ; } /* end of [if] */ } else { tmp35 = -1 ; } /* end of [if] */ return (tmp35) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_isemp] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 6777(line=268, offs=17) -- 7045(line=278, offs=4) */ ATSglobaldec() ats_int_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_islnk (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp41) ; ATSlocal (ats_stat_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; ATSlocal (ats_bool_type, tmp45) ; ATSlocal (ats_mode_type, tmp46) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_islnk: /* ats_stat_type tmp42 ; */ tmp43 = atslib_lstat_err (arg0, (&tmp42)) ; tmp44 = atspre_ieq (tmp43, 0) ; if (tmp44) { tmp46 = ats_select_mac(tmp42, st_mode) ; tmp45 = atslib_S_ISLNK (tmp46) ; if (tmp45) { tmp41 = 1 ; } else { tmp41 = 0 ; } /* end of [if] */ } else { tmp41 = -1 ; } /* end of [if] */ return (tmp41) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__test_file_islnk] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 7224(line=290, offs=5) -- 7714(line=314, offs=4) */ ATSstaticdec() ats_void_type loop_18 (ats_ptr_type arg0, ats_ref_type arg1, ats_ssize_type arg2) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_bool_type, tmp48) ; ATSlocal (ats_ssize_type, tmp49) ; ATSlocal (ats_int_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_char_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ssize_type, tmp55) ; ATSlocal (ats_ssize_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab_loop_18: tmp49 = atspre_ssize1_of_int1 (0) ; tmp48 = atspre_neq_ssize1_ssize1 (arg2, tmp49) ; if (tmp48) { tmp50 = atslib_fgetc_err (arg0) ; tmp51 = atspre_gte_int_int (tmp50, 0) ; if (tmp51) { tmp52 = atspre_char_of_int (tmp50) ; tmp53 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp53, atslab_0, tmp52) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp53 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp54 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; tmp56 = atspre_ssize1_of_int1 (1) ; tmp55 = atspre_sub_ssize1_ssize1 (arg2, tmp56) ; arg0 = arg0 ; arg1 = tmp54 ; arg2 = tmp55 ; goto __ats_lab_loop_18 ; // tail call } else { tmp57 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp57 ; } /* end of [if] */ } else { tmp58 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp58 ; } /* end of [if] */ return /* (tmp47) */ ; } /* end of [loop_18] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 7789(line=320, offs=3) -- 7868(line=327, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_list_vt_make_file (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ssize_type, tmp62) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_list_vt_make_file: /* ats_ptr_type tmp60 ; */ tmp62 = atspre_ssize1_of_int1 (-1) ; /* tmp61 = */ loop_18 (arg0, (&tmp60), tmp62) ; tmp59 = tmp60 ; return (tmp59) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_list_vt_make_file] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 7944(line=331, offs=3) -- 8052(line=339, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_list_vt_make_file_len (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_list_vt_make_file_len: /* ats_ptr_type tmp64 ; */ /* tmp65 = */ loop_18 (arg0, (&tmp64), ats_castfn_mac(ats_ssize_type, ats_castfn_mac(ats_size_type, arg1))) ; tmp63 = tmp64 ; return (tmp63) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_list_vt_make_file_len] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 8179(line=347, offs=11) -- 8427(line=356, offs=22) */ ATSstaticdec() ats_ptr_type __ats_fun_22 (ats_ptr_type env0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_bool_type, tmp69) ; ATSlocal (ats_char_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; // ATSlocal_void (tmp72) ; __ats_lab___ats_fun_22: tmp68 = atslib_fgetc_err (env0) ; tmp69 = atspre_neq_int_int (tmp68, EOF) ; if (tmp69) { tmp70 = atspre_char_of_int (tmp68) ; tmp71 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_make_file (env0) ; tmp67 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp67, atslab_0, tmp70) ; ats_selptrset_mac(anairiats_sum_0, tmp67, atslab_1, tmp71) ; } else { /* tmp72 = */ atslib_fclose_exn (env0) ; tmp67 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp67) ; } /* end of [__ats_fun_22] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_22_closure_type ; ats_ptr_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr) { return __ats_fun_22 (((__ats_fun_22_closure_type*)cloptr)->closure_env_0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_22_closure_init (__ats_fun_22_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_22_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_22_closure_make (ats_ptr_type env0) { __ats_fun_22_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_22_closure_type)) ; __ats_fun_22_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 8171(line=347, offs=3) -- 8427(line=356, offs=22) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_make_file (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_make_file: ats_instr_move_lazy_delay_mac (tmp66, ats_ptr_type, __ats_fun_22_closure_make (arg0)) ; return (tmp66) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_make_file] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 8531(line=363, offs=11) -- 8815(line=372, offs=24) */ ATSstaticdec() ats_ptr_type __ats_fun_24 (ats_ptr_type env0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_bool_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; // ATSlocal_void (tmp78) ; __ats_lab___ats_fun_24: tmp75 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__input_line (env0) ; tmp76 = atspre_stropt_is_some (tmp75) ; if (tmp76) { tmp77 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_make_file (env0) ; tmp74 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp74, atslab_0, ats_castfn_mac(ats_ptr_type, tmp75)) ; ats_selptrset_mac(anairiats_sum_1, tmp74, atslab_1, tmp77) ; } else { /* tmp78 = */ atslib_fclose_exn (env0) ; tmp74 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp74) ; } /* end of [__ats_fun_24] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_24_closure_type ; ats_ptr_type __ats_fun_24_clofun (ats_clo_ptr_type cloptr) { return __ats_fun_24 (((__ats_fun_24_closure_type*)cloptr)->closure_env_0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_24_closure_init (__ats_fun_24_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_24_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_24_closure_make (ats_ptr_type env0) { __ats_fun_24_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_24_closure_type)) ; __ats_fun_24_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 8523(line=363, offs=3) -- 8815(line=372, offs=24) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_make_file (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp73) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_make_file: ats_instr_move_lazy_delay_mac (tmp73, ats_ptr_type, __ats_fun_24_closure_make (arg0)) ; return (tmp73) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_make_file] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 8969(line=381, offs=5) -- 9381(line=397, offs=2) */ ATSstaticdec() ats_ptr_type __ats_fun_26 (ats_ptr_type env0, ats_bool_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_char_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; // ATSlocal_void (tmp85) ; __ats_lab___ats_fun_26: if (arg0) { tmp81 = atslib_fgetc_err (env0) ; tmp82 = atspre_gte_int_int (tmp81, 0) ; if (tmp82) { tmp83 = atspre_char_of_int (tmp81) ; tmp84 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_vt_make_file (env0) ; tmp80 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp80, atslab_0, tmp83) ; ats_selptrset_mac(anairiats_sum_0, tmp80, atslab_1, tmp84) ; } else { /* tmp85 = */ atslib_fclose_exn (env0) ; tmp80 = (ats_sum_ptr_type)0 ; } /* end of [if] */ } else { /* tmp80 = */ atslib_fclose_exn (env0) ; } /* end of [if] */ return (tmp80) ; } /* end of [__ats_fun_26] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_26_closure_type ; ats_ptr_type __ats_fun_26_clofun (ats_clo_ptr_type cloptr, ats_bool_type arg0) { return __ats_fun_26 (((__ats_fun_26_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_26_closure_init (__ats_fun_26_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_26_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_26_closure_make (ats_ptr_type env0) { __ats_fun_26_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_26_closure_type)) ; __ats_fun_26_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 8938(line=379, offs=11) -- 9381(line=397, offs=2) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_vt_make_file (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_vt_make_file: ats_instr_move_lazy_ldelay_mac (tmp79, ats_ptr_type, __ats_fun_26_closure_make (arg0)) ; return (tmp79) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__char_stream_vt_make_file] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 10213(line=427, offs=29) -- 10234(line=427, offs=50) */ ATSstaticdec() ats_ptr_type __ats_fun_29 (ats_bool_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; __ats_lab___ats_fun_29: if (arg0) { tmp100 = (ats_sum_ptr_type)0 ; } else { /* empty */ } /* end of [if] */ return (tmp100) ; } /* end of [__ats_fun_29] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_29_closure_type ; ats_ptr_type __ats_fun_29_clofun (ats_clo_ptr_type cloptr, ats_bool_type arg0) { return __ats_fun_29 (arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_29_closure_init (__ats_fun_29_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_29_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_29_closure_make () { __ats_fun_29_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_29_closure_type)) ; __ats_fun_29_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 9524(line=405, offs=5) -- 10355(line=432, offs=4) */ ATSstaticdec() ats_ptr_type loop_28 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_int_type, tmp88) ; ATSlocal (ats_bool_type, tmp89) ; ATSlocal (ats_char_type, tmp90) ; ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_bool_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab_loop_28: tmp88 = atslib_fgetc_err (arg0) ; tmp89 = atspre_gte_int_int (tmp88, 0) ; if (tmp89) { tmp90 = atspre_char_of_int (tmp88) ; tmp91 = atspre_neq_char_char (tmp90, '\n') ; if (tmp91) { tmp92 = atspre_iadd (arg1, 1) ; tmp93 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp93, atslab_0, tmp90) ; ats_selptrset_mac(anairiats_sum_0, tmp93, atslab_1, arg2) ; arg0 = arg0 ; arg1 = tmp92 ; arg2 = tmp93 ; goto __ats_lab_loop_28 ; // tail call } else { tmp94 = string_make_charlst_rev (arg1, arg2) ; tmp95 = ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_vt_make_file (arg0) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp87, atslab_0, tmp94) ; ats_selptrset_mac(anairiats_sum_1, tmp87, atslab_1, tmp95) ; } /* end of [if] */ } else { /* tmp96 = */ atslib_fclose_exn (arg0) ; tmp97 = atspre_igt (arg1, 0) ; if (tmp97) { tmp98 = string_make_charlst_rev (arg1, arg2) ; ats_instr_move_lazy_ldelay_mac (tmp99, ats_ptr_type, __ats_fun_29_closure_make ()) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp87, atslab_0, tmp98) ; ats_selptrset_mac(anairiats_sum_1, tmp87, atslab_1, tmp99) ; } else { // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp87 = (ats_sum_ptr_type)0 ; } /* end of [if] */ } /* end of [if] */ return (tmp87) ; } /* end of [loop_28] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 10385(line=436, offs=1) -- 10525(line=442, offs=2) */ ATSstaticdec() ats_ptr_type __ats_fun_30 (ats_ptr_type env0, ats_bool_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab___ats_fun_30: if (arg0) { tmp102 = (ats_sum_ptr_type)0 ; tmp101 = loop_28 (env0, 0, tmp102) ; } else { /* tmp101 = */ atslib_fclose_exn (env0) ; } /* end of [if] */ return (tmp101) ; } /* end of [__ats_fun_30] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_30_closure_type ; ats_ptr_type __ats_fun_30_clofun (ats_clo_ptr_type cloptr, ats_bool_type arg0) { return __ats_fun_30 (((__ats_fun_30_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_30_closure_init (__ats_fun_30_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_30_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_30_closure_make (ats_ptr_type env0) { __ats_fun_30_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_30_closure_type)) ; __ats_fun_30_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/filebas.dats: 9486(line=403, offs=11) -- 10552(line=444, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_vt_make_file (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_vt_make_file: ats_instr_move_lazy_ldelay_mac (tmp86, ats_ptr_type, __ats_fun_30_closure_make (arg0)) ; return (tmp86) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__line_stream_vt_make_file] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2stat_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2filebas_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2filebas_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2filebas_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2filebas_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2filebas_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2stat_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2filebas_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2filebas_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2filebas_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2filebas_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_filebas_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_sizetype_dats.c0000644000175000017500000001045513431250607023632 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_size_type, atspre_sub_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_div2_size1_size1) (ats_size_type, ats_size_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_isfun_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/sizetype.dats: 1658(line=46, offs=9) -- 2092(line=63, offs=4) */ ATSglobaldec() ats_size_type ATS_2d0_2e2_2e12_2prelude_2SATS_2sizetype_2esats__divmod_size1_size1 (ats_size_type arg0, ats_size_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_size_type, tmp0) ; ATSlocal (ats_size_type, tmp1) ; ATSlocal (ats_size_type, tmp2) ; ATSlocal (ats_size_type, tmp3) ; ATSlocal (ats_size_type, tmp4) ; ATSlocal (ats_size_type, tmp5) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2sizetype_2esats__divmod_size1_size1: tmp1 = atspre_div2_size1_size1 (arg0, arg1) ; tmp2 = ats_selsin_mac(tmp1, atslab_1) ; tmp3 = atspre_mul2_size1_size1 (tmp2, arg1) ; tmp4 = ats_selsin_mac(tmp3, atslab_1) ; tmp5 = atspre_sub_size1_size1 (arg0, tmp4) ; ats_ptrget_mac(ats_size_type, arg2) = tmp5 ; tmp0 = tmp2 ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2sizetype_2esats__divmod_size1_size1] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2sizetype_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2sizetype_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2sizetype_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2sizetype_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2sizetype_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2sizetype_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2sizetype_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2sizetype_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2sizetype_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2sizetype_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2arith_2esats__mul_isfun_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_sizetype_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_lazy_vt_dats.c0000644000175000017500000000710613431250607023445 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_cloptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, ats_lazy_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__list_vt_of_lazy_vt_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2lazy_vt_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2lazy_vt_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__list_vt_of_lazy_vt_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_lazy_vt_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/DATS_printf_dats.c0000644000175000017500000001441713431250607023262 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libc/CATS/stdarg.cats" /* external codes at top */ #define ATSPRE_SPRINTF_GUESS 16 /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_ptr_type, atspre_vsprintf_size) (ats_size_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, atspre_vsprintf) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_va_end) (ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/printf.dats: 3563(line=139, offs=16) -- 3736(line=145, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2prelude_2SATS_2printf_2esats__tostringf_size (ats_size_type arg0, ats_ptr_type arg1, ...) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; ATSlocal (va_list, arg2) ; va_start(arg2, arg1) ; __ats_lab_ATS_2d0_2e2_2e12_2prelude_2SATS_2printf_2esats__tostringf_size: tmp1 = atspre_vsprintf_size (arg0, arg1, (&arg2)) ; /* tmp2 = */ atslib_va_end ((&arg2)) ; tmp0 = tmp1 ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2prelude_2SATS_2printf_2esats__tostringf_size] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/printf.dats: 3785(line=148, offs=11) -- 3942(line=154, offs=4) */ ATSglobaldec() ats_ptr_type atspre_tostringf (ats_ptr_type arg0, ...) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; ATSlocal (va_list, arg1) ; va_start(arg1, arg0) ; __ats_lab_atspre_tostringf: tmp4 = atspre_vsprintf (arg0, (&arg1)) ; /* tmp5 = */ atslib_va_end ((&arg1)) ; tmp3 = tmp4 ; return (tmp3) ; } /* end of [atspre_tostringf] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdarg_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2printf_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2printf_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2DATS_2printf_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2DATS_2printf_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2DATS_2printf_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdarg_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2printf_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2DATS_2printf_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2printf_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2DATS_2printf_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2printf_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ ats_void_type atspre_exit_prerrf ( const ats_int_type status, const ats_ptr_type fmt, ... ) { va_list ap ; va_start(ap, fmt) ; vfprintf(stderr, (char*)fmt, ap) ; va_end(ap) ; /* fprintf (stderr, "atspre_exit_prerrf: status = %i\n", status) ; */ exit(status) ; return ; // deadcode } /* end of [atspre_exit_prerrf] */ ats_void_type atspre_assert_prerrf ( ats_bool_type assertion, ats_ptr_type fmt, ... ) { int err ; va_list ap ; if (!assertion) { /* assertion is false */ va_start(ap, fmt) ; err = vfprintf(stderr, (char*)fmt, ap) ; va_end(ap) ; if (err < 0) { ats_exit_errmsg ( err, "[atspre_assert_prerrf]: prerrf failed\n" ) ; } else { ats_exit_errmsg (1, "[atspre_assert_prerrf]: assert failed\n") ; } } /* end of [if] */ return ; } /* end of [atspre_assert_prerrf] */ ats_ptr_type atspre_vsprintf_size ( ats_size_type bsz , const ats_ptr_type fmt, ats_ref_type ap0 ) { int n ; char *res ; va_list ap ; // while (1) { res = ATS_MALLOC(bsz) ; va_copy(ap, *(va_list*)ap0) ; n = vsnprintf(res, bsz, (char*)fmt, ap) ; va_end(ap) ; if (n >= 0) { if (n < bsz) return res ; bsz = n+1 ; ATS_FREE(res) ; continue ; } else { return ((ats_ptr_type)0) ; } // end of [if] } // end of [while] // return (ats_ptr_type)0 ; // deadcode // } /* end of [atspre_vsprintf_size] */ ats_ptr_type atspre_vsprintf ( const ats_ptr_type fmt, ats_ref_type ap0 ) { char *res = (char*)atspre_vsprintf_size (ATSPRE_SPRINTF_GUESS, fmt, ap0) ; if (!res) { ats_exit_errmsg (1, "exit(ATS): [atspre_vsprintf] failed.\n") ; } // end of [if] return res ; } // end of [atspre_vsprintf] /* external codes at bot */ /* ****** ****** */ /* end of [DATS_printf_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/prelude/ats_main_prelude_dats.c0000644000175000017500000001107213431250607024452 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK /* empty */ #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/ats_main_prelude.dats: 1642(line=45, offs=14) -- 3127(line=106, offs=4) */ ATSglobaldec() ats_void_type mainats_prelude () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_mainats_prelude: ATS_2d0_2e2_2e12_2prelude_2DATS_2basics_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2bool_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2char_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2float_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2integer_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2sizetype_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2pointer_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2reference_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2string_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2lazy_vt_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2printf_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2filebas_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list0_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2option_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2option_vt_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2option0_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array0_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2matrix0_2edats__dynload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2ptrarr_2edats__dynload () ; return /* (tmp0) */ ; } /* end of [mainats_prelude] */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2prelude_2ats_main_prelude_2edats__staload () { static int ATS_2d0_2e2_2e12_2prelude_2ats_main_prelude_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2prelude_2ats_main_prelude_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2prelude_2ats_main_prelude_2edats__staload_flag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2prelude_2ats_main_prelude_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2prelude_2ats_main_prelude_2edats__dynload () { // ATS_2d0_2e2_2e12_2prelude_2ats_main_prelude_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2ats_main_prelude_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [ats_main_prelude_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_symmap_dats.c0000644000175000017500000011670213431250607022042 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_int_type atslab_0 ; ats_uint_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_uint_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_2 ; typedef struct { anairiats_rec_2 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lt_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_int_type, atspre_compare_uint_uint) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_void_type, atspre_fprint_uint) (ats_ptr_type, ats_uint_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_bool_type, atspre_ilte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imax) (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_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_stamp) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__sasp__symmap_vtype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type compare_key_key_01713_ats_uint_type (ats_uint_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type linmap_make_nil_01714_ () ; static ats_void_type _free_5 (ats_ptr_type arg0) ; static ats_void_type linmap_free_01731_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type search_9 (ats_uint_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type search_9_closure_make (ats_uint_type env0, ats_clo_ref_type env1) ; static ats_ptr_type search_9_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type linmap_search_ref_01720_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type linmap_search_01719_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; static ats_int_type avltree_height_036_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_089_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_064_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_12 (ats_uint_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_clo_ptr_type insert_12_closure_make (ats_uint_type env0, ats_clo_ref_type env1) ; static ats_bool_type insert_12_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_bool_type linmap_insert_01722_ats_uint_type_2cats_ptr_type (ats_ref_type arg0, ats_uint_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) ; static ats_void_type loop_17 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linmap_listize_01733_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_void_type __ats_fun_21 (ats_ptr_type env0, ats_ptr_type env1, ats_uint_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type __ats_fun_21_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type __ats_fun_21_clofun (ats_clo_ptr_type cloptr, ats_uint_type arg0, ats_ref_type arg1) ; static ats_void_type foreach_23 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type linmap_foreach_vclo_01727_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_symmap_avltree.hats: 1790(line=59, offs=22) -- 1830(line=59, offs=62) */ ATSstaticdec() ats_int_type compare_key_key_01713_ats_uint_type (ats_uint_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_compare_key_key_01713_ats_uint_type: tmp0 = atspre_compare_uint_uint (arg0, arg1) ; return (tmp0) ; } /* end of [compare_key_key_01713_ats_uint_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3005(line=103, offs=29) -- 3014(line=103, offs=38) */ ATSstaticdec() ats_ptr_type linmap_make_nil_01714_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_linmap_make_nil_01714_: tmp2 = (ats_sum_ptr_type)0 ; return (tmp2) ; } /* end of [linmap_make_nil_01714_] */ /* // /tmp/ATS-Postiats/src/pats_symmap_avltree.hats: 1881(line=63, offs=27) -- 1906(line=63, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil: tmp1 = linmap_make_nil_01714_ () ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20597(line=699, offs=7) -- 20733(line=701, offs=65) */ ATSstaticdec() ats_void_type _free_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; __ats_lab__free_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_3) ; tmp7 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_4) ; ATS_FREE(arg0) ; /* tmp8 = */ _free_5 (tmp6) ; arg0 = tmp7 ; goto __ats_lab__free_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp5) */ ; } /* end of [_free_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20567(line=698, offs=13) -- 20755(line=703, offs=2) */ ATSstaticdec() ats_void_type linmap_free_01731_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp4) ; __ats_lab_linmap_free_01731_ats_uint_type_2cats_ptr_type: /* tmp4 = */ _free_5 (arg0) ; return /* (tmp4) */ ; } /* end of [linmap_free_01731_ats_uint_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_symmap_avltree.hats: 1935(line=64, offs=29) -- 1968(line=64, offs=62) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free: /* tmp3 = */ linmap_free_01731_ats_uint_type_2cats_ptr_type (arg0) ; return /* (tmp3) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4545(line=168, offs=7) -- 5110(line=188, offs=6) */ ATSstaticdec() ats_ptr_type search_9 (ats_uint_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_uint_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_bool_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab_search_9: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_2_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp18 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_2) ; tmp19 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_3) ; tmp20 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_4) ; tmp21 = compare_key_key_01713_ats_uint_type (env0, tmp17, env1) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp22 = atspre_lt_int_int (tmp21, 0) ; if (!tmp22) { goto __ats_lab_4_1 ; } tmp23 = ats_ptrget_mac(ats_ptr_type, tmp19) ; arg0 = tmp23 ; goto __ats_lab_search_9 ; // tail call break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp24 = atspre_gt_int_int (tmp21, 0) ; if (!tmp24) { goto __ats_lab_5_1 ; } tmp25 = ats_ptrget_mac(ats_ptr_type, tmp20) ; arg0 = tmp25 ; goto __ats_lab_search_9 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp16 = tmp18 ; break ; } while (0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp16 = atspre_null_ptr ; break ; } while (0) ; return (tmp16) ; } /* end of [search_9] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_uint_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } search_9_closure_type ; ats_ptr_type search_9_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return search_9 (((search_9_closure_type*)cloptr)->closure_env_0, ((search_9_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type search_9_closure_init (search_9_closure_type *p_clo, ats_uint_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&search_9_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type search_9_closure_make (ats_uint_type env0, ats_clo_ref_type env1) { search_9_closure_type *p_clo = ATS_MALLOC(sizeof(search_9_closure_type)) ; search_9_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4505(line=167, offs=3) -- 5131(line=189, offs=2) */ ATSstaticdec() ats_ptr_type linmap_search_ref_01720_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; __ats_lab_linmap_search_ref_01720_ats_uint_type_2cats_ptr_type: tmp15 = search_9 (arg1, arg2, arg0) ; return (tmp15) ; } /* end of [linmap_search_ref_01720_ats_uint_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4021(line=145, offs=3) -- 4437(line=162, offs=4) */ ATSstaticdec() ats_bool_type linmap_search_01719_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_uint_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab_linmap_search_01719_ats_uint_type_2cats_ptr_type: tmp14 = linmap_search_ref_01720_ats_uint_type_2cats_ptr_type (arg0, arg1, arg2) ; tmp26 = atspre_pgt (tmp14, atspre_null_ptr) ; if (tmp26) { tmp27 = ats_ptrget_mac(ats_ptr_type, tmp14) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp27 ; tmp13 = ats_true_bool ; } else { tmp13 = ats_false_bool ; } /* end of [if] */ return (tmp13) ; } /* end of [linmap_search_01719_ats_uint_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_symmap_avltree.hats: 2024(line=70, offs=9) -- 2315(line=80, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_uint_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_bool_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_stamp (arg1) ; /* ats_ptr_type tmp11 ; */ tmp12 = linmap_search_01719_ats_uint_type_2cats_ptr_type (arg0, tmp10, ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), (&tmp11)) ; if (tmp12) { tmp9 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp9, atslab_0, tmp11) ; } else { tmp9 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3769(line=134, offs=24) -- 3876(line=135, offs=69) */ ATSstaticdec() ats_int_type avltree_height_036_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp44) ; ATSlocal (ats_int_type, tmp45) ; __ats_lab_avltree_height_036_ats_uint_type_2cats_ptr_type: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp44 = tmp45 ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp44 = 0 ; break ; } while (0) ; return (tmp44) ; } /* end of [avltree_height_036_ats_uint_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 7405(line=276, offs=32) -- 8902(line=325, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_089_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_int_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_int_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_bool_type, tmp63) ; ATSlocal (ats_int_type, tmp64) ; ATSlocal (ats_int_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_int_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab_avltree_rrotate_089_ats_uint_type_2cats_ptr_type: tmp55 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp55 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp56 = &ats_caselptrlab_mac(anairiats_sum_0, tmp55, atslab_0) ; tmp57 = &ats_caselptrlab_mac(anairiats_sum_0, tmp55, atslab_3) ; tmp58 = &ats_caselptrlab_mac(anairiats_sum_0, tmp55, atslab_4) ; tmp60 = ats_ptrget_mac(ats_ptr_type, tmp57) ; tmp59 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp60) ; tmp62 = ats_ptrget_mac(ats_ptr_type, tmp58) ; tmp61 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp62) ; tmp64 = atspre_iadd (tmp59, 0) ; tmp63 = atspre_igte (tmp64, tmp61) ; if (tmp63) { tmp65 = atspre_iadd (tmp61, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp65 ; tmp66 = ats_ptrget_mac(ats_ptr_type, tmp58) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp66 ; tmp68 = atspre_imax (tmp59, tmp65) ; tmp67 = atspre_iadd (1, tmp68) ; ats_ptrget_mac(ats_int_type, tmp56) = tmp67 ; ats_ptrget_mac(ats_ptr_type, tmp58) = arg5 ; tmp54 = tmp55 ; } else { tmp69 = ats_ptrget_mac(ats_ptr_type, tmp58) ; // if (tmp69 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp70 = &ats_caselptrlab_mac(anairiats_sum_0, tmp69, atslab_0) ; tmp71 = &ats_caselptrlab_mac(anairiats_sum_0, tmp69, atslab_3) ; tmp72 = &ats_caselptrlab_mac(anairiats_sum_0, tmp69, atslab_4) ; tmp74 = ats_ptrget_mac(ats_ptr_type, tmp71) ; tmp73 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp74) ; tmp76 = ats_ptrget_mac(ats_ptr_type, tmp72) ; tmp75 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp76) ; tmp78 = atspre_imax (tmp75, arg3) ; tmp77 = atspre_iadd (1, tmp78) ; ats_ptrget_mac(ats_int_type, arg0) = tmp77 ; tmp79 = ats_ptrget_mac(ats_ptr_type, tmp72) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp79 ; tmp81 = atspre_imax (tmp59, tmp73) ; tmp80 = atspre_iadd (1, tmp81) ; ats_ptrget_mac(ats_int_type, tmp56) = tmp80 ; tmp82 = ats_ptrget_mac(ats_ptr_type, tmp71) ; ats_ptrget_mac(ats_ptr_type, tmp58) = tmp82 ; ats_ptrget_mac(ats_int_type, tmp70) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp71) = tmp55 ; ats_ptrget_mac(ats_ptr_type, tmp72) = arg5 ; tmp54 = tmp69 ; } /* end of [if] */ return (tmp54) ; } /* end of [avltree_rrotate_089_ats_uint_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5694(line=219, offs=32) -- 7221(line=268, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_064_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_int_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_int_type, tmp117) ; ATSlocal (ats_int_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_int_type, tmp120) ; ATSlocal (ats_int_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_avltree_lrotate_064_ats_uint_type_2cats_ptr_type: tmp95 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp95 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp96 = &ats_caselptrlab_mac(anairiats_sum_0, tmp95, atslab_0) ; tmp97 = &ats_caselptrlab_mac(anairiats_sum_0, tmp95, atslab_3) ; tmp98 = &ats_caselptrlab_mac(anairiats_sum_0, tmp95, atslab_4) ; tmp100 = ats_ptrget_mac(ats_ptr_type, tmp97) ; tmp99 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp100) ; tmp102 = ats_ptrget_mac(ats_ptr_type, tmp98) ; tmp101 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp102) ; tmp104 = atspre_iadd (tmp101, 0) ; tmp103 = atspre_ilte (tmp99, tmp104) ; if (tmp103) { tmp105 = atspre_iadd (tmp99, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp105 ; tmp106 = ats_ptrget_mac(ats_ptr_type, tmp97) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp106 ; tmp108 = atspre_imax (tmp105, tmp101) ; tmp107 = atspre_iadd (1, tmp108) ; ats_ptrget_mac(ats_int_type, tmp96) = tmp107 ; ats_ptrget_mac(ats_ptr_type, tmp97) = arg5 ; tmp94 = tmp95 ; } else { tmp109 = ats_ptrget_mac(ats_ptr_type, tmp97) ; // if (tmp109 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp110 = &ats_caselptrlab_mac(anairiats_sum_0, tmp109, atslab_0) ; tmp111 = &ats_caselptrlab_mac(anairiats_sum_0, tmp109, atslab_3) ; tmp112 = &ats_caselptrlab_mac(anairiats_sum_0, tmp109, atslab_4) ; tmp114 = ats_ptrget_mac(ats_ptr_type, tmp111) ; tmp113 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp114) ; tmp116 = ats_ptrget_mac(ats_ptr_type, tmp112) ; tmp115 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp116) ; tmp118 = atspre_imax (arg1, tmp113) ; tmp117 = atspre_iadd (1, tmp118) ; ats_ptrget_mac(ats_int_type, arg0) = tmp117 ; tmp119 = ats_ptrget_mac(ats_ptr_type, tmp111) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp119 ; tmp121 = atspre_imax (tmp115, tmp101) ; tmp120 = atspre_iadd (1, tmp121) ; ats_ptrget_mac(ats_int_type, tmp96) = tmp120 ; tmp122 = ats_ptrget_mac(ats_ptr_type, tmp112) ; ats_ptrget_mac(ats_ptr_type, tmp97) = tmp122 ; ats_ptrget_mac(ats_int_type, tmp110) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp111) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp112) = tmp95 ; tmp94 = tmp109 ; } /* end of [if] */ return (tmp94) ; } /* end of [avltree_lrotate_064_ats_uint_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 9023(line=333, offs=5) -- 11023(line=394, offs=4) */ ATSstaticdec() ats_bool_type insert_12 (ats_uint_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_uint_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_int_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_bool_type, tmp49) ; ATSlocal (ats_int_type, tmp50) ; ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_bool_type, tmp84) ; ATSlocal (ats_int_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_int_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_bool_type, tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab_insert_12: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_7_1: tmp34 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp35 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp36 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp37 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp38 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp40 = ats_ptrget_mac(ats_uint_type, tmp35) ; tmp39 = compare_key_key_01713_ats_uint_type (env0, tmp40, env1) ; tmp41 = atspre_lt_int_int (tmp39, 0) ; if (tmp41) { tmp42 = insert_12 (env0, env1, tmp37, arg1, arg2) ; tmp46 = ats_ptrget_mac(ats_ptr_type, tmp37) ; tmp43 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp46) ; tmp48 = ats_ptrget_mac(ats_ptr_type, tmp38) ; tmp47 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp48) ; tmp50 = atspre_isub (tmp43, tmp47) ; tmp49 = atspre_ilte (tmp50, 1) ; if (tmp49) { tmp52 = atspre_imax (tmp43, tmp47) ; tmp51 = atspre_iadd (1, tmp52) ; ats_ptrget_mac(ats_int_type, tmp34) = tmp51 ; tmp33 = tmp42 ; } else { tmp53 = avltree_rrotate_089_ats_uint_type_2cats_ptr_type (tmp34, tmp43, tmp37, tmp47, tmp38, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp53 ; tmp33 = tmp42 ; } /* end of [if] */ } else { tmp83 = atspre_gt_int_int (tmp39, 0) ; if (tmp83) { tmp84 = insert_12 (env0, env1, tmp38, arg1, arg2) ; tmp86 = ats_ptrget_mac(ats_ptr_type, tmp37) ; tmp85 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp86) ; tmp88 = ats_ptrget_mac(ats_ptr_type, tmp38) ; tmp87 = avltree_height_036_ats_uint_type_2cats_ptr_type (tmp88) ; tmp90 = atspre_isub (tmp87, tmp85) ; tmp89 = atspre_ilte (tmp90, 1) ; if (tmp89) { tmp92 = atspre_imax (tmp85, tmp87) ; tmp91 = atspre_iadd (1, tmp92) ; ats_ptrget_mac(ats_int_type, tmp34) = tmp91 ; tmp33 = tmp84 ; } else { tmp93 = avltree_lrotate_064_ats_uint_type_2cats_ptr_type (tmp34, tmp85, tmp37, tmp87, tmp38, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp93 ; tmp33 = tmp84 ; } /* end of [if] */ } else { tmp123 = ats_ptrget_mac(ats_ptr_type, tmp36) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp123 ; ats_ptrget_mac(ats_ptr_type, tmp36) = arg1 ; tmp33 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp125 = (ats_sum_ptr_type)0 ; tmp126 = (ats_sum_ptr_type)0 ; tmp124 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp124, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_0, tmp124, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_0, tmp124, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_0, tmp124, atslab_3, tmp125) ; ats_selptrset_mac(anairiats_sum_0, tmp124, atslab_4, tmp126) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp124 ; tmp33 = ats_false_bool ; break ; } while (0) ; return (tmp33) ; } /* end of [insert_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_uint_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_12_closure_type ; ats_bool_type insert_12_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { return insert_12 (((insert_12_closure_type*)cloptr)->closure_env_0, ((insert_12_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type insert_12_closure_init (insert_12_closure_type *p_clo, ats_uint_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_12_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_12_closure_make (ats_uint_type env0, ats_clo_ref_type env1) { insert_12_closure_type *p_clo = ATS_MALLOC(sizeof(insert_12_closure_type)) ; insert_12_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 8988(line=331, offs=3) -- 11078(line=400, offs=4) */ ATSstaticdec() ats_bool_type linmap_insert_01722_ats_uint_type_2cats_ptr_type (ats_ref_type arg0, ats_uint_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp32) ; __ats_lab_linmap_insert_01722_ats_uint_type_2cats_ptr_type: tmp32 = insert_12 (arg1, arg3, arg0, arg2, arg4) ; return (tmp32) ; } /* end of [linmap_insert_01722_ats_uint_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_symmap_avltree.hats: 2396(line=86, offs=9) -- 2549(line=91, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_uint_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_bool_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_insert: tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_stamp (arg1) ; /* ats_ptr_type tmp30 ; */ tmp31 = linmap_insert_01722_ats_uint_type_2cats_ptr_type (arg0, tmp29, arg2, ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), (&tmp30)) ; return /* (tmp28) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_insert] */ /* // /tmp/ATS-Postiats/src/pats_symmap_avltree.hats: 2691(line=101, offs=5) -- 3091(line=121, offs=4) */ ATSstaticdec() ats_void_type loop_17 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_uint_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab_loop_17: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp129 = &ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* ats_ptr_type tmp131 ; */ tmp133 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp129), atslab_0) ; tmp134 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp129), atslab_1) ; tmp132 = linmap_insert_01722_ats_uint_type_2cats_ptr_type (arg0, tmp133, tmp134, ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), (&tmp131)) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp130 ; goto __ats_lab_loop_17 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: break ; } while (0) ; return /* (tmp128) */ ; } /* end of [loop_17] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21260(line=724, offs=7) -- 21616(line=736, offs=31) */ ATSstaticdec() ats_ptr_type aux_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_uint_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (anairiats_rec_2, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; __ats_lab_aux_19: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_2) ; tmp140 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_3) ; tmp141 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_4) ; tmp143 = ats_ptrget_mac(ats_ptr_type, tmp141) ; tmp142 = aux_19 (tmp143, arg1) ; tmp145.atslab_0 = tmp138 ; tmp145.atslab_1 = tmp139 ; tmp144 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp144, atslab_0, tmp145) ; ats_selptrset_mac(anairiats_sum_3, tmp144, atslab_1, tmp142) ; tmp146 = ats_ptrget_mac(ats_ptr_type, tmp140) ; arg0 = tmp146 ; arg1 = tmp144 ; goto __ats_lab_aux_19 ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp137 = arg1 ; break ; } while (0) ; return (tmp137) ; } /* end of [aux_19] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21202(line=722, offs=16) -- 21664(line=740, offs=4) */ ATSstaticdec() ats_ptr_type linmap_listize_01733_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp147) ; __ats_lab_linmap_listize_01733_ats_uint_type_2cats_ptr_type: tmp147 = (ats_sum_ptr_type)0 ; tmp136 = aux_19 (arg0, tmp147) ; return (tmp136) ; } /* end of [linmap_listize_01733_ats_uint_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_symmap_avltree.hats: 2634(line=97, offs=9) -- 3181(line=127, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_joinwth (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp127) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_joinwth: tmp135 = linmap_listize_01733_ats_uint_type_2cats_ptr_type (arg1) ; /* tmp127 = */ loop_17 (arg0, tmp135) ; return /* (tmp127) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_joinwth] */ /* // /tmp/ATS-Postiats/src/pats_symmap_avltree.hats: 3295(line=133, offs=16) -- 3435(line=134, offs=91) */ ATSstaticdec() ats_void_type __ats_fun_21 (ats_ptr_type env0, ats_ptr_type env1, ats_uint_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; __ats_lab___ats_fun_21: /* tmp151 = */ atspre_fprint_uint (env0, arg0) ; /* tmp152 = */ atspre_fprint_string (env0, ATSstrcst(" -> ")) ; /* tmp153 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env1) (env0, ats_ptrget_mac(ats_ptr_type, arg1)) ; /* tmp150 = */ atspre_fprint_newline (env0) ; return /* (tmp150) */ ; } /* end of [__ats_fun_21] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } __ats_fun_21_closure_type ; ats_void_type __ats_fun_21_clofun (ats_clo_ptr_type cloptr, ats_uint_type arg0, ats_ref_type arg1) { __ats_fun_21 (((__ats_fun_21_closure_type*)cloptr)->closure_env_0, ((__ats_fun_21_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type __ats_fun_21_closure_init (__ats_fun_21_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_21_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 18402(line=624, offs=7) -- 18717(line=631, offs=24) */ ATSstaticdec() ats_void_type foreach_23 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; // ATSlocal_void (tmp163) ; ATSlocal (ats_uint_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; __ats_lab_foreach_23: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp157 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp158 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_2) ; tmp159 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_3) ; tmp160 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_4) ; tmp162 = ats_ptrget_mac(ats_ptr_type, tmp159) ; /* tmp161 = */ foreach_23 (tmp162, arg1) ; tmp164 = ats_ptrget_mac(ats_uint_type, tmp157) ; /* tmp163 = */ ((ats_void_type(*)(ats_clo_ptr_type, ats_uint_type, ats_ref_type))(ats_closure_fun(arg1))) (arg1, tmp164, tmp158) ; tmp165 = ats_ptrget_mac(ats_ptr_type, tmp160) ; arg0 = tmp165 ; arg1 = arg1 ; goto __ats_lab_foreach_23 ; // tail call break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: break ; } while (0) ; return /* (tmp156) */ ; } /* end of [foreach_23] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 18354(line=623, offs=3) -- 18741(line=633, offs=2) */ ATSstaticdec() ats_void_type linmap_foreach_vclo_01727_ats_uint_type_2cats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp155) ; __ats_lab_linmap_foreach_vclo_01727_ats_uint_type_2cats_ptr_type: /* tmp155 = */ foreach_23 (arg0, arg1) ; return /* (tmp155) */ ; } /* end of [linmap_foreach_vclo_01727_ats_uint_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_symmap_avltree.hats: 3260(line=132, offs=20) -- 3554(line=140, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__fprint_symmap (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (__ats_fun_21_closure_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__fprint_symmap: /* ats_ptr_type tmp149 ; */ tmp149 = &(tmp154) ; __ats_fun_21_closure_init (tmp149, arg0, arg2) ; // closure initialization /* tmp148 = */ linmap_foreach_vclo_01727_ats_uint_type_2cats_ptr_type (arg1, tmp149) ; return /* (tmp148) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__fprint_symmap] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_symmap_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_histaexp_print_dats.c0000644000175000017500000012061013431250607023566 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyabs_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEapp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEextype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEfun_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSErefarg_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyarr_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrec_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrecsin_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtysum_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyvar_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyclo_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEvararg_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2exp_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2zexp_15) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__fprint_labhisexp) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_2 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_2_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_2 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_bool_type, tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_int_type, tmp30) ; __ats_lab_aux_2: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp26 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp28 = atspre_gt_int_int (arg1, 0) ; if (tmp28) { /* tmp27 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp29 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp25) ; tmp30 = atspre_add_int_int (arg1, 1) ; arg0 = tmp26 ; arg1 = tmp30 ; goto __ats_lab_aux_2 ; // tail call break ; } while (0) ; return /* (tmp24) */ ; } /* end of [aux_2] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_2_closure_type ; ats_void_type aux_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_2 (((aux_2_closure_type*)cloptr)->closure_env_0, ((aux_2_closure_type*)cloptr)->closure_env_1, ((aux_2_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_2_closure_init (aux_2_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_2_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_2_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_2_closure_type *p_clo = ATS_MALLOC(sizeof(aux_2_closure_type)) ; aux_2_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp23) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp23 = */ aux_2 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp23) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_histaexp_print.dats: 1838(line=65, offs=4) -- 4698(line=193, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_int_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_hisexp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 5) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_1) ; tmp4 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_2) ; /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("HSEfun(")) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo (arg0, tmp2) ; /* tmp7 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexplst (arg0, tmp3) ; /* tmp9 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp4) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp1)->tag != 0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst("HSEcst(")) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (arg0, tmp11) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp1)->tag != 3) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp15 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp16 = */ atspre_fprint_string (arg0, ATSstrcst("HSEapp(")) ; /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp14) ; /* tmp18 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexplst (arg0, tmp15) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp1)->tag != 4) { goto __ats_lab_6_0 ; } __ats_lab_3_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp21 = */ atspre_fprint_string (arg0, ATSstrcst("HSEextype(")) ; /* tmp22 = */ fprintlst_01696_ats_ptr_type (arg0, tmp20, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexplst) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_0) ; tmp32 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_1) ; /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst("HSErefarg(")) ; /* tmp34 = */ atspre_fprint_int (arg0, tmp31) ; /* tmp35 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp32) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp1)->tag != 2) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst("HSEtyabs(")) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp37) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp1)->tag != 1) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("HSEtybox()")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp1)->tag != 7) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp41 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp42 = */ atspre_fprint_string (arg0, ATSstrcst("HSEtyarr(")) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp40) ; /* tmp44 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst (arg0, tmp41) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp1)->tag != 8) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp47 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp48 = */ atspre_fprint_string (arg0, ATSstrcst("HSEtyrec(")) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind (arg0, tmp46) ; /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp51 = */ fprintlst_01696_ats_ptr_type (arg0, tmp47, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__fprint_labhisexp) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp1)->tag != 9) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("HSEtyrecsin(")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__fprint_labhisexp (arg0, tmp52) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp1)->tag != 10) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp57 = */ atspre_fprint_string (arg0, ATSstrcst("HSEtysum(")) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp55) ; /* tmp59 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp60 = */ fprintlst_01696_ats_ptr_type (arg0, tmp56, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__fprint_labhisexp) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp1)->tag != 11) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst("HSEtyvar(")) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp61) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp1)->tag != 12) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp65 = */ atspre_fprint_string (arg0, ATSstrcst("HSEtyclo(")) ; /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_funlab (arg0, tmp64) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp1)->tag != 13) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("HSEvararg(")) ; /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp67) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp1)->tag != 14) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp71 = */ atspre_fprint_string (arg0, ATSstrcst("HSEs2exp(")) ; /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp70) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)tmp1)->tag != 15) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp74 = */ atspre_fprint_string (arg0, ATSstrcst("HSEs2zexp(")) ; /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp (arg0, tmp73) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_histaexp_print.dats: 4770(line=198, offs=14) -- 4809(line=198, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__print_hisexp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__print_hisexp: /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (stdout, arg0) ; return /* (tmp76) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__print_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_histaexp_print.dats: 4833(line=200, offs=14) -- 4872(line=200, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp: /* tmp77 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (stderr, arg0) ; return /* (tmp77) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_histaexp_print.dats: 4924(line=206, offs=3) -- 5102(line=214, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__fprint_labhisexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__fprint_labhisexp: tmp79 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_2) ; /* tmp81 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp79) ; /* tmp82 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp80) ; return /* (tmp78) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__fprint_labhisexp] */ /* // /tmp/ATS-Postiats/src/pats_histaexp_print.dats: 5183(line=220, offs=3) -- 5239(line=220, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexplst: /* tmp83 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp) ; return /* (tmp83) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexplst] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_histaexp_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_impdec_dats.c0000644000175000017500000040044613431250607023267 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_i1mpdec_loc ; ats_ptr_type atslab_i1mpdec_qid ; ats_ptr_type atslab_i1mpdec_tmparg ; ats_ptr_type atslab_i1mpdec_def ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_impqi0de_loc ; ats_ptr_type atslab_impqi0de_qua ; ats_ptr_type atslab_impqi0de_sym ; ats_ptr_type atslab_impqi0de_arg ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_d1exp_loc ; ats_ptr_type atslab_d1exp_node ; } anairiats_rec_9 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_p1at_loc ; ats_ptr_type atslab_p1at_node ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_16 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_17 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_19 ; typedef struct { anairiats_rec_19 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_20 ; typedef struct { ats_ptr_type atslab_d1ecl_loc ; ats_ptr_type atslab_d1ecl_node ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_t1mpmarg_loc ; ats_ptr_type atslab_t1mpmarg_arg ; } anairiats_rec_22 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_sarglst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_svararglst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_dyn_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elaminit_dyn_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_ana_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_effc_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_funclo_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cimpdec_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2PITM_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMsymdef_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1exp_tr_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1exp_tr_ann_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_nontop_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_tmparg_37) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerrf_exn) (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_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_addlst) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_laminit_dyn) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_def) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2mpdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_match_def) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_inc) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_dec) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_void_type prerr_error2_loc_02087_ (ats_ptr_type arg0) ; static ats_void_type auxerr1_2 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxerr1_2_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr1_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxerr2_4 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxerr2_4_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr2_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxerr3_5 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxerr3_5_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr3_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux1_6 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux1_6_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux1_6_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type loop_9 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux2_7 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux2_7_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type aux2_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type i1mpdec_select_d2cst_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_ptr_type d1exp_tr_ann_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxck_13 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxck_14 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ; static ats_void_type auxck_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxck_16 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ; static ats_void_type auxerr_17 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type aux_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type auxck_19 (ats_ptr_type arg0, ats_int_type arg1) ; static anairiats_rec_1 d1exp_tr_arg_body_ann_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_int_type arg7, ats_ptr_type arg8, ats_ptr_type arg9) ; static ats_void_type stasub_add_tmparg_20 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_imparg_sarglst_22 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr1_24 (ats_ptr_type env0) ; static ats_clo_ptr_type auxerr1_24_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr1_24_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxerr2_25 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type auxerr2_25_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr2_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type auxseq_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type loop_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_imparg_svararg_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type auxerr_31 (ats_ptr_type env0) ; static ats_clo_ptr_type auxerr_31_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr_31_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type aux_imparg_svararglst_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_ptr_type loop_35 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_reverse_01436_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append2_vt_01314_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_37 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_concat_01321_ats_ptr_type (ats_ptr_type arg0) ; static anairiats_rec_1 aux_imparg_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_tmparg_s1explst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type auxerr1_42 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type auxerr1_42_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr1_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type auxerr2_43 (ats_ptr_type env0) ; static ats_clo_ptr_type auxerr2_43_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr2_43_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxerr3_44 (ats_ptr_type env0) ; static ats_clo_ptr_type auxerr3_44_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr3_44_clofun (ats_clo_ptr_type cloptr) ; static ats_ptr_type aux_tmparg_marglst_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_tmparg_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_tmparg_46 (ats_ptr_type arg0) ; static ats_void_type auxerr_nontop_47 (ats_ptr_type arg0) ; static ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) ; static ats_ptr_type f_49 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 1667(line=52, offs=28) -- 1698(line=52, offs=59) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans2_impdec")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2105(line=76, offs=17) -- 2163(line=79, offs=2) */ ATSstaticdec() ats_void_type prerr_error2_loc_02087_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; __ats_lab_prerr_error2_loc_02087_: /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp7 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ; return /* (tmp7) */ ; } /* end of [prerr_error2_loc_02087_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 2414(line=94, offs=4) -- 2804(line=106, offs=4) */ ATSstaticdec() ats_void_type auxerr1_2 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab_auxerr1_2: tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_qid) ; tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp3), atslab_impqi0de_qua) ; tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp3), atslab_impqi0de_sym) ; tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_loc) ; /* tmp6 = */ prerr_error2_loc_02087_ (tmp9) ; /* tmp10 = */ atspre_prerr_string (ATSstrcst(": there is no suitable dynamic constant declared for [")) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (tmp4) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp5) ; /* tmp13 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp14 = */ atspre_prerr_newline () ; tmp15 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp15)->tag = 35 ; ats_selptrset_mac(anairiats_sum_4, tmp15, atslab_0, env0) ; /* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp15) ; return /* (tmp2) */ ; } /* end of [auxerr1_2] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr1_2_closure_type ; ats_void_type auxerr1_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxerr1_2 (((auxerr1_2_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr1_2_closure_init (auxerr1_2_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr1_2_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr1_2_closure_make (ats_ptr_type env0) { auxerr1_2_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr1_2_closure_type)) ; auxerr1_2_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 2828(line=107, offs=4) -- 3228(line=119, offs=4) */ ATSstaticdec() ats_void_type auxerr2_4 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab_auxerr2_4: tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_qid) ; tmp18 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp17), atslab_impqi0de_qua) ; tmp19 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp17), atslab_impqi0de_sym) ; tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_loc) ; /* tmp20 = */ prerr_error2_loc_02087_ (tmp21) ; /* tmp22 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (tmp18) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp19) ; /* tmp25 = */ atspre_prerr_string (ATSstrcst("] does not refer to a declared dynamic constant.")) ; /* tmp26 = */ atspre_prerr_newline () ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp27)->tag = 35 ; ats_selptrset_mac(anairiats_sum_4, tmp27, atslab_0, env0) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp27) ; return /* (tmp16) */ ; } /* end of [auxerr2_4] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr2_4_closure_type ; ats_void_type auxerr2_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxerr2_4 (((auxerr2_4_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr2_4_closure_init (auxerr2_4_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr2_4_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr2_4_closure_make (ats_ptr_type env0) { auxerr2_4_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr2_4_closure_type)) ; auxerr2_4_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 3252(line=120, offs=4) -- 3622(line=132, offs=4) */ ATSstaticdec() ats_void_type auxerr3_5 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab_auxerr3_5: tmp29 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_qid) ; tmp30 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp29), atslab_impqi0de_qua) ; tmp31 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp29), atslab_impqi0de_sym) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_loc) ; /* tmp32 = */ prerr_error2_loc_02087_ (tmp33) ; /* tmp34 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (tmp30) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp31) ; /* tmp37 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp38 = */ atspre_prerr_newline () ; tmp39 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp39)->tag = 35 ; ats_selptrset_mac(anairiats_sum_4, tmp39, atslab_0, env0) ; /* tmp28 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp39) ; return /* (tmp28) */ ; } /* end of [auxerr3_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr3_5_closure_type ; ats_void_type auxerr3_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxerr3_5 (((auxerr3_5_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr3_5_closure_init (auxerr3_5_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr3_5_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr3_5_closure_make (ats_ptr_type env0) { auxerr3_5_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr3_5_closure_type)) ; auxerr3_5_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 3763(line=138, offs=5) -- 4247(line=154, offs=34) */ ATSstaticdec() ats_ptr_type aux1_6 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_bool_type, tmp50) ; __ats_lab_aux1_6: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp47 = ats_caselptrlab_mac(anairiats_sum_6, tmp45, atslab_1) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp47)->tag != 0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_4, tmp47, atslab_0) ; tmp49 = aux1_6 (env0, tmp46) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_match_def (tmp48, env0) ; if (tmp50) { tmp44 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp44, atslab_0, tmp48) ; ats_selptrset_mac(anairiats_sum_5, tmp44, atslab_1, tmp49) ; } else { tmp44 = tmp49 ; } /* end of [if] */ break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: arg0 = tmp46 ; goto __ats_lab_aux1_6 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp44 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp44) ; } /* end of [aux1_6] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux1_6_closure_type ; ats_ptr_type aux1_6_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux1_6 (((aux1_6_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux1_6_closure_init (aux1_6_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux1_6_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux1_6_closure_make (ats_ptr_type env0) { aux1_6_closure_type *p_clo = ATS_MALLOC(sizeof(aux1_6_closure_type)) ; aux1_6_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_9 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab_loop_9: do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp57 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: break ; } while (0) ; return /* (tmp56) */ ; } /* end of [loop_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp55) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp55 = */ loop_9 (arg0) ; return /* (tmp55) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 4275(line=157, offs=5) -- 4585(line=166, offs=8) */ ATSstaticdec() ats_ptr_type aux2_7 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp58) ; __ats_lab_aux2_7: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_4_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp53 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp54 = */ list_vt_free_01499_ats_ptr_type (tmp53) ; tmp51 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp51, atslab_0, tmp52) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: /* tmp58 = */ auxerr1_2 (env0, env1) ; tmp51 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp51) ; } /* end of [aux2_7] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } aux2_7_closure_type ; ats_ptr_type aux2_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux2_7 (((aux2_7_closure_type*)cloptr)->closure_env_0, ((aux2_7_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux2_7_closure_init (aux2_7_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux2_7_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux2_7_closure_make (ats_ptr_type env0, ats_ptr_type env1) { aux2_7_closure_type *p_clo = ATS_MALLOC(sizeof(aux2_7_closure_type)) ; aux2_7_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 2326(line=89, offs=1) -- 5143(line=188, offs=4) */ ATSstaticdec() ats_ptr_type i1mpdec_select_d2cst_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; __ats_lab_i1mpdec_select_d2cst_1: tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_i1mpdec_qid) ; tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp40), atslab_impqi0de_qua) ; tmp42 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp40), atslab_impqi0de_sym) ; tmp43 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_i1mpdec_def) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua (tmp41, tmp42) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (tmp59 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_8_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_7, tmp59, atslab_0) ; ATS_FREE(tmp59) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp60)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_4, tmp60, atslab_0) ; tmp1 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp1, atslab_0, tmp61) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp60)->tag != 4) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_8, tmp60, atslab_1) ; tmp63 = aux1_6 (tmp43, tmp62) ; tmp1 = aux2_7 (arg0, arg1, tmp63) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: /* tmp64 = */ auxerr2_4 (arg0, arg1) ; tmp1 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (tmp59 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: /* tmp65 = */ auxerr3_5 (arg0, arg1) ; tmp1 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp1) ; } /* end of [i1mpdec_select_d2cst_1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 5532(line=208, offs=4) -- 5916(line=218, offs=4) */ ATSstaticdec() ats_void_type auxerr_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; ATSlocal (ats_bool_type, tmp74) ; // ATSlocal_void (tmp75) ; ATSlocal (ats_bool_type, tmp76) ; // ATSlocal_void (tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; __ats_lab_auxerr_12: /* tmp71 = */ prerr_error2_loc_02087_ (arg2) ; /* tmp72 = */ atspre_prerr_string (ATSstrcst(": static arity mismatch")) ; tmp74 = atspre_lt_int_int (arg3, 0) ; if (tmp74) { /* tmp73 = */ atspre_prerr_string (ATSstrcst(": more arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ tmp76 = atspre_gt_int_int (arg3, 0) ; if (tmp76) { /* tmp75 = */ atspre_prerr_string (ATSstrcst(": fewer arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ /* tmp77 = */ atspre_prerr_newline () ; tmp78 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp78)->tag = 29 ; ats_selptrset_mac(anairiats_sum_8, tmp78, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp78, atslab_1, arg1) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp78) ; return /* (tmp70) */ ; } /* end of [auxerr_12] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 5203(line=193, offs=1) -- 7820(line=280, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_tr_ann_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_int_type, tmp87) ; ATSlocal (anairiats_rec_1, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; // ATSlocal_void (tmp91) ; ATSlocal (ats_bool_type, tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (anairiats_rec_1, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (anairiats_rec_1, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_d1exp_tr_ann_10: tmp67 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp68) ; tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp69), atslab_s2exp_node) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp79)->tag != 28) { goto __ats_lab_16_0 ; } __ats_lab_13_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_11, tmp79, atslab_0) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_11, tmp79, atslab_1) ; tmp82 = ats_caselptrlab_mac(anairiats_sum_11, tmp79, atslab_2) ; tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp83)->tag != 57) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_11, tmp83, atslab_0) ; tmp85 = ats_caselptrlab_mac(anairiats_sum_11, tmp83, atslab_1) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_11, tmp83, atslab_2) ; /* ats_int_type tmp87 ; */ tmp87 = 0 ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst (tmp85, tmp80, (&tmp87)) ; tmp89 = ats_select_mac(tmp88, atslab_0) ; tmp90 = ats_select_mac(tmp88, atslab_1) ; tmp92 = atspre_neq_int_int (tmp87, 0) ; if (tmp92) { /* tmp91 = */ auxerr_12 (arg0, tmp69, tmp84, tmp87) ; } else { /* empty */ } /* end of [if] */ /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp94 = ats_selsin_mac(tmp93, atslab_1) */ ; /* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp90)) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (tmp89, tmp81) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp89, tmp82) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp89) ; tmp99 = d1exp_tr_ann_10 (tmp86, tmp97) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta (tmp67, ats_castfn_mac(ats_ptr_type, tmp90), tmp96, tmp99) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp101 = d1exp_tr_ann_10 (arg0, tmp82) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta (tmp67, tmp80, tmp81, tmp101) ; break ; } while (0) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp79)->tag != 19) { goto __ats_lab_20_0 ; } __ats_lab_16_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_1) ; tmp104 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_2) ; tmp105 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_3) ; tmp106 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_4) ; tmp107 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_5) ; tmp108 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_node) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp108)->tag != 54) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_0) ; tmp110 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_1) ; tmp111 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_2) ; tmp112 = d1exp_tr_arg_body_ann_11 (arg0, tmp102, tmp103, tmp104, tmp105, tmp106, tmp107, tmp109, tmp110, tmp111) ; tmp113 = ats_select_mac(tmp112, atslab_0) ; tmp114 = ats_select_mac(tmp112, atslab_1) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn (tmp67, tmp103, tmp105, tmp113, tmp114) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp108)->tag != 55) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_0) ; tmp116 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_1) ; tmp117 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_2) ; tmp118 = d1exp_tr_arg_body_ann_11 (arg0, tmp102, tmp103, tmp104, tmp105, tmp106, tmp107, tmp115, tmp116, tmp117) ; tmp119 = ats_select_mac(tmp118, atslab_0) ; tmp120 = ats_select_mac(tmp118, atslab_1) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_laminit_dyn (tmp67, tmp103, tmp105, tmp119, tmp120) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (arg0) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (tmp67, tmp121, tmp69) ; break ; } while (0) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (arg0) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (tmp67, tmp122, tmp69) ; break ; } while (0) ; return (tmp66) ; } /* end of [d1exp_tr_ann_10] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 8283(line=300, offs=7) -- 8741(line=312, offs=14) */ ATSstaticdec() ats_void_type auxck_13 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp124) ; ATSlocal (ats_int_type, tmp125) ; ATSlocal (ats_bool_type, tmp126) ; // ATSlocal_void (tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab_auxck_13: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_14, arg1, atslab_0) ; tmp126 = atspre_eq_int_int (tmp125, 0) ; if (!tmp126) { goto __ats_lab_22_1 ; } tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ; /* tmp127 = */ prerr_error2_loc_02087_ (tmp128) ; /* tmp129 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ; /* tmp130 = */ atspre_prerr_string (ATSstrcst(": the function cannot be given an unboxed closure type.")) ; /* tmp131 = */ atspre_prerr_newline () ; tmp132 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp132)->tag = 28 ; ats_selptrset_mac(anairiats_sum_4, tmp132, atslab_0, arg0) ; /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp132) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: break ; } while (0) ; return /* (tmp124) */ ; } /* end of [auxck_13] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 8829(line=319, offs=7) -- 9328(line=331, offs=8) */ ATSstaticdec() ats_void_type auxck_14 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp134) ; ATSlocal (ats_bool_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; ATSlocal (ats_bool_type, tmp140) ; // ATSlocal_void (tmp141) ; ATSlocal (ats_bool_type, tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab_auxck_14: tmp135 = atspre_neq_int_int (arg1, arg2) ; if (tmp135) { tmp136 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ; /* tmp137 = */ prerr_error2_loc_02087_ (tmp136) ; /* tmp138 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ; tmp140 = atspre_lt_int_int (arg1, arg2) ; if (tmp140) { /* tmp139 = */ atspre_prerr_string (ATSstrcst(": linear function is given a nonlinear type.")) ; } else { /* empty */ } /* end of [if] */ tmp142 = atspre_gt_int_int (arg1, arg2) ; if (tmp142) { /* tmp141 = */ atspre_prerr_string (ATSstrcst(": nonlinear function is given a linear type.")) ; } else { /* empty */ } /* end of [if] */ /* tmp143 = */ atspre_prerr_newline () ; tmp144 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp144)->tag = 28 ; ats_selptrset_mac(anairiats_sum_4, tmp144, atslab_0, arg0) ; /* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp144) ; } else { /* empty */ } /* end of [if] */ return /* (tmp134) */ ; } /* end of [auxck_14] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 9500(line=341, offs=7) -- 10019(line=355, offs=6) */ ATSstaticdec() ats_void_type auxck_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp148) ; ATSlocal (ats_bool_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab_auxck_15: tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none (arg2) ; tmp150 = atspre_neg_bool (tmp149) ; if (tmp150) { tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_p1at_loc) ; /* tmp152 = */ prerr_error2_loc_02087_ (tmp151) ; /* tmp153 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ; /* tmp154 = */ atspre_prerr_string (ATSstrcst(": the function argument cannot be ascribed refval types.")) ; /* tmp155 = */ atspre_prerr_newline () ; tmp156 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp156)->tag = 28 ; ats_selptrset_mac(anairiats_sum_4, tmp156, atslab_0, arg0) ; /* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp156) ; } else { /* empty */ } /* end of [if] */ return /* (tmp148) */ ; } /* end of [auxck_15] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 10291(line=368, offs=7) -- 10741(line=379, offs=8) */ ATSstaticdec() ats_void_type auxck_16 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp164) ; ATSlocal (ats_bool_type, tmp165) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab_auxck_16: tmp165 = atspre_neq_int_int (arg1, arg2) ; if (tmp165) { tmp167 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ; /* tmp166 = */ prerr_error2_loc_02087_ (tmp167) ; /* tmp168 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ; /* tmp169 = */ atspre_prerr_string (ATSstrcst(": proof arity mismatch")) ; /* tmp170 = */ atspre_prerrf_exn (ATSstrcst(": the expected number of proof arguments is [%i]"), arg1) ; /* tmp171 = */ atspre_prerr_newline () ; tmp172 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp172)->tag = 28 ; ats_selptrset_mac(anairiats_sum_4, tmp172, atslab_0, arg0) ; /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp172) ; } else { /* empty */ } /* end of [if] */ return /* (tmp164) */ ; } /* end of [auxck_16] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 10860(line=387, offs=6) -- 11317(line=399, offs=7) */ ATSstaticdec() ats_void_type auxerr_17 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; // ATSlocal_void (tmp179) ; ATSlocal (ats_bool_type, tmp180) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_bool_type, tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; __ats_lab_auxerr_17: tmp175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ; /* tmp176 = */ prerr_error2_loc_02087_ (tmp175) ; /* tmp177 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ; /* tmp178 = */ atspre_prerr_string (ATSstrcst(": arity mismatch")) ; tmp180 = atspre_lt_int_int (arg1, 0) ; if (tmp180) { /* tmp179 = */ atspre_prerr_string (ATSstrcst(": more arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ tmp182 = atspre_gt_int_int (arg1, 0) ; if (tmp182) { /* tmp181 = */ atspre_prerr_string (ATSstrcst(": fewer arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ /* tmp183 = */ atspre_prerr_newline () ; tmp184 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp184)->tag = 28 ; ats_selptrset_mac(anairiats_sum_4, tmp184, atslab_0, arg0) ; /* tmp174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp184) ; return /* (tmp174) */ ; } /* end of [auxerr_17] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 11346(line=401, offs=7) -- 11905(line=418, offs=10) */ ATSstaticdec() ats_ptr_type aux_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_int_type, tmp194) ; ATSlocal (ats_int_type, tmp195) ; __ats_lab_aux_18: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_27_1 ; } __ats_lab_25_2: tmp186 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp188) ; tmp192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp186), atslab_p2at_loc) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann (tmp192, tmp186, tmp190) ; tmp193 = aux_18 (tmp187, tmp189, arg2) ; tmp185 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp185, atslab_0, tmp191) ; ats_selptrset_mac(anairiats_sum_5, tmp185, atslab_1, tmp193) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_28_1 ; } __ats_lab_26_2: tmp185 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_2: tmp194 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp194 ; tmp185 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_2: tmp195 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp195 ; tmp185 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp185) ; } /* end of [aux_18] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 12631(line=450, offs=7) -- 12916(line=458, offs=8) */ ATSstaticdec() ats_void_type auxck_19 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp215) ; ATSlocal (ats_bool_type, tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; __ats_lab_auxck_19: tmp216 = atspre_gt_int_int (arg1, 0) ; if (tmp216) { tmp218 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ; /* tmp217 = */ prerr_error2_loc_02087_ (tmp218) ; /* tmp219 = */ atspre_prerr_string (ATSstrcst(": the [funclo/effect] annonation is redundant.")) ; /* tmp220 = */ atspre_prerr_newline () ; tmp221 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp221)->tag = 28 ; ats_selptrset_mac(anairiats_sum_4, tmp221, atslab_0, arg0) ; /* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp221) ; } else { /* empty */ } /* end of [if] */ return /* (tmp215) */ ; } /* end of [auxck_19] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 7851(line=283, offs=1) -- 13328(line=475, offs=4) */ ATSstaticdec() anairiats_rec_1 d1exp_tr_arg_body_ann_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_int_type arg7, ats_ptr_type arg8, ats_ptr_type arg9) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp123) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; // ATSlocal_void (tmp157) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_int_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; // ATSlocal_void (tmp173) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; // ATSlocal_void (tmp198) ; ATSlocal (ats_bool_type, tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; // ATSlocal_void (tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; // ATSlocal_void (tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_int_type, tmp210) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_int_type, tmp214) ; // ATSlocal_void (tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; // ATSlocal_void (tmp224) ; // ATSlocal_void (tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; __ats_lab_d1exp_tr_arg_body_ann_11: /* tmp133 = */ auxck_13 (arg0, arg1) ; /* tmp145 = */ auxck_14 (arg0, arg2, arg7) ; /* ats_ptr_type tmp146 ; */ tmp146 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg (arg8, (&tmp146)) ; /* tmp157 = */ auxck_15 (arg0, arg8, tmp146) ; /* ats_int_type tmp158 ; */ tmp158 = -1 ; tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp147), atslab_p2at_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp160)->tag != 18) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp161 = ats_caselptrlab_mac(anairiats_sum_17, tmp160, atslab_0) ; tmp162 = ats_caselptrlab_mac(anairiats_sum_17, tmp160, atslab_1) ; tmp158 = tmp161 ; tmp159 = tmp162 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp163 = (ats_sum_ptr_type)0 ; tmp159 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_0, tmp147) ; ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_1, tmp163) ; break ; } while (0) ; /* tmp173 = */ auxck_16 (arg0, arg4, tmp158) ; /* ats_int_type tmp196 ; */ tmp196 = 0 ; tmp197 = aux_18 (tmp159, arg5, (&tmp196)) ; tmp199 = atspre_neq_int_int (tmp196, 0) ; if (tmp199) { /* tmp198 = */ auxerr_17 (arg0, tmp196) ; } else { /* empty */ } /* end of [if] */ /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp201 = ats_selsin_mac(tmp200, atslab_1) */ ; tmp203 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp147), atslab_p2at_svs) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp203) ; /* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp202) ; tmp206 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp147), atslab_p2at_dvs) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp206) ; /* tmp207 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (tmp205) ; /* tmp208 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc () ; /* tmp209 = ats_selsin_mac(tmp208, atslab_1) */ ; /* ats_int_type tmp210 ; */ tmp210 = 0 ; tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg9), atslab_d1exp_node) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp212)->tag != 66) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp213 = atspre_iadd (tmp210, 1) ; tmp210 = tmp213 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp212)->tag != 67) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp214 = atspre_iadd (tmp210, 1) ; tmp210 = tmp214 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: break ; } while (0) ; /* tmp222 = */ auxck_19 (arg0, tmp210) ; tmp223 = d1exp_tr_ann_10 (arg9, arg6) ; /* tmp224 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec () ; /* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () ; tmp226 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp223), atslab_d2exp_loc) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff (tmp226, tmp223, arg3) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo (tmp226, tmp227, arg1) ; tmp123.atslab_0 = tmp197 ; tmp123.atslab_1 = tmp228 ; return (tmp123) ; } /* end of [d1exp_tr_arg_body_ann_11] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 13389(line=480, offs=1) -- 13792(line=498, offs=4) */ ATSstaticdec() ats_void_type stasub_add_tmparg_20 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp229) ; ATSlocal (anairiats_rec_19, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_int_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; __ats_lab_stasub_add_tmparg_20: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_32_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_20, arg1, atslab_0) ; tmp231 = ats_caselptrlab_mac(anairiats_sum_20, arg1, atslab_1) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp232 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp233 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; tmp235 = ats_select_mac(tmp230, atslab_s2qua_svs) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_addlst (arg0, tmp235, tmp232) ; arg0 = arg0 ; arg1 = tmp231 ; arg2 = tmp233 ; goto __ats_lab_stasub_add_tmparg_20 ; // tail call break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: break ; } while (0) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: break ; } while (0) ; return /* (tmp229) */ ; } /* end of [stasub_add_tmparg_20] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14051(line=517, offs=1) -- 14208(line=523, offs=2) */ ATSstaticdec() ats_ptr_type aux_imparg_sarglst_22 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; // ATSlocal_void (tmp239) ; __ats_lab_aux_imparg_sarglst_22: tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (arg1) ; /* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp238) ; tmp237 = tmp238 ; return (tmp237) ; } /* end of [aux_imparg_sarglst_22] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14362(line=533, offs=1) -- 14637(line=541, offs=4) */ ATSstaticdec() ats_void_type auxerr1_24 (ats_ptr_type env0) { /* local vardec */ // ATSlocal_void (tmp241) ; // ATSlocal_void (tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; __ats_lab_auxerr1_24: tmp243 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, env0), atslab_d1ecl_loc) ; /* tmp242 = */ prerr_error2_loc_02087_ (tmp243) ; /* tmp244 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ; /* tmp245 = */ atspre_prerr_string (ATSstrcst(": the implementation is overly applied.")) ; /* tmp246 = */ atspre_prerr_newline () ; tmp247 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp247)->tag = 35 ; ats_selptrset_mac(anairiats_sum_4, tmp247, atslab_0, env0) ; /* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp247) ; return /* (tmp241) */ ; } /* end of [auxerr1_24] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr1_24_closure_type ; ats_void_type auxerr1_24_clofun (ats_clo_ptr_type cloptr) { auxerr1_24 (((auxerr1_24_closure_type*)cloptr)->closure_env_0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr1_24_closure_init (auxerr1_24_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr1_24_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr1_24_closure_make (ats_ptr_type env0) { auxerr1_24_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr1_24_closure_type)) ; auxerr1_24_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14662(line=543, offs=1) -- 15068(line=555, offs=4) */ ATSstaticdec() ats_void_type auxerr2_25 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp248) ; // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_bool_type, tmp254) ; // ATSlocal_void (tmp255) ; // ATSlocal_void (tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; __ats_lab_auxerr2_25: /* tmp249 = */ prerr_error2_loc_02087_ (arg0) ; /* tmp250 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ; /* tmp251 = */ atspre_prerr_string (ATSstrcst(": the implementation argument group is expected to contain ")) ; tmp254 = atspre_gt_int_int (arg1, 0) ; if (tmp254) { tmp253 = ATSstrcst("fewer") ; } else { tmp253 = ATSstrcst("more") ; } /* end of [if] */ /* tmp252 = */ atspre_prerr_string (tmp253) ; /* tmp255 = */ atspre_prerr_string (ATSstrcst(" components.")) ; /* tmp256 = */ atspre_prerr_newline () ; tmp257 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp257)->tag = 35 ; ats_selptrset_mac(anairiats_sum_4, tmp257, atslab_0, env0) ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp257) ; return /* (tmp248) */ ; } /* end of [auxerr2_25] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr2_25_closure_type ; ats_void_type auxerr2_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { auxerr2_25 (((auxerr2_25_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr2_25_closure_init (auxerr2_25_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr2_25_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr2_25_closure_make (ats_ptr_type env0) { auxerr2_25_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr2_25_closure_type)) ; auxerr2_25_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 15096(line=558, offs=1) -- 15627(line=577, offs=2) */ ATSstaticdec() ats_ptr_type auxseq_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_int_type, tmp266) ; ATSlocal (ats_int_type, tmp267) ; __ats_lab_auxseq_26: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_38_1 ; } __ats_lab_36_2: tmp259 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp260 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp262 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp261) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn (tmp259, tmp263) ; tmp265 = auxseq_26 (tmp260, tmp262, arg2) ; tmp258 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp258, atslab_0, tmp264) ; ats_selptrset_mac(anairiats_sum_5, tmp258, atslab_1, tmp265) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_39_1 ; } __ats_lab_37_2: tmp258 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_2: tmp266 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp266 ; tmp258 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_2: tmp267 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp267 ; tmp258 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp258) ; } /* end of [auxseq_26] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; __ats_lab_loop_29: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp274 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp275 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp276 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp274, arg3) ; tmp277 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp277, atslab_0, tmp276) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp277 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp278 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp275 ; arg1 = arg1 ; arg2 = tmp278 ; arg3 = arg3 ; goto __ats_lab_loop_29 ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp279 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp279 ; break ; } while (0) ; return /* (tmp273) */ ; } /* end of [loop_29] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp280) ; // ATSlocal_void (tmp281) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp280 ; */ /* tmp281 = */ loop_29 (arg0, arg1, (&tmp280), arg2) ; tmp272 = tmp280 ; return (tmp272) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp271) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp271 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp271) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14250(line=526, offs=1) -- 17075(line=628, offs=4) */ ATSstaticdec() ats_ptr_type aux_imparg_svararg_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (anairiats_rec_19, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp282) ; // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; // ATSlocal_void (tmp285) ; ATSlocal (anairiats_rec_19, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; // ATSlocal_void (tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (anairiats_rec_19, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_int_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; // ATSlocal_void (tmp299) ; // ATSlocal_void (tmp300) ; ATSlocal (ats_bool_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; // ATSlocal_void (tmp303) ; __ats_lab_aux_imparg_svararg_23: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_45_0 ; } __ats_lab_40_1: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_41_1: tmp268 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_0) ; tmp269 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_1) ; tmp282 = ats_select_mac(tmp268, atslab_s2qua_svs) ; tmp270 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp282, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup) ; /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp270)) ; tmp284 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp284, atslab_0, ats_castfn_mac(ats_ptr_type, tmp270)) ; ats_selptrset_mac(anairiats_sum_5, tmp284, atslab_1, ats_ptrget_mac(ats_ptr_type, arg3)) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp284 ; tmp240 = tmp269 ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: /* tmp285 = */ auxerr1_24 (arg0) ; tmp240 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_48_0 ; } __ats_lab_45_1: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp286 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_0) ; tmp287 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_1) ; tmp289 = ats_select_mac(tmp286, atslab_s2qua_svs) ; tmp288 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp289, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup) ; /* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp288)) ; tmp291 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp291, atslab_0, ats_castfn_mac(ats_ptr_type, tmp288)) ; ats_selptrset_mac(anairiats_sum_5, tmp291, atslab_1, ats_ptrget_mac(ats_ptr_type, arg3)) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp291 ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp287 ; arg3 = arg3 ; goto __ats_lab_aux_imparg_svararg_23 ; // tail call break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp240 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp292 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp293 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp294 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_0) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_1) ; /* ats_int_type tmp296 ; */ tmp296 = 0 ; tmp298 = ats_select_mac(tmp294, atslab_s2qua_svs) ; tmp297 = auxseq_26 (tmp293, tmp298, (&tmp296)) ; /* tmp299 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp297) ; tmp301 = atspre_neq_int_int (tmp296, 0) ; if (tmp301) { /* tmp300 = */ auxerr2_25 (arg0, tmp292, tmp296) ; } else { /* empty */ } /* end of [if] */ tmp302 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp302, atslab_0, tmp297) ; ats_selptrset_mac(anairiats_sum_5, tmp302, atslab_1, ats_ptrget_mac(ats_ptr_type, arg3)) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp302 ; tmp240 = tmp295 ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: /* tmp303 = */ auxerr1_24 (arg0) ; tmp240 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp240) ; } /* end of [aux_imparg_svararg_23] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 17227(line=636, offs=6) -- 17522(line=643, offs=6) */ ATSstaticdec() ats_void_type auxerr_31 (ats_ptr_type env0) { /* local vardec */ // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; // ATSlocal_void (tmp308) ; // ATSlocal_void (tmp309) ; // ATSlocal_void (tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; __ats_lab_auxerr_31: tmp307 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, env0), atslab_d1ecl_loc) ; /* tmp306 = */ prerr_error2_loc_02087_ (tmp307) ; /* tmp308 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ; /* tmp309 = */ atspre_prerr_string (ATSstrcst(": the implementation is expected to be fully applied.")) ; /* tmp310 = */ atspre_prerr_newline () ; tmp311 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp311)->tag = 35 ; ats_selptrset_mac(anairiats_sum_4, tmp311, atslab_0, env0) ; /* tmp305 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp311) ; return /* (tmp305) */ ; } /* end of [auxerr_31] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr_31_closure_type ; ats_void_type auxerr_31_clofun (ats_clo_ptr_type cloptr) { auxerr_31 (((auxerr_31_closure_type*)cloptr)->closure_env_0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr_31_closure_init (auxerr_31_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr_31_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr_31_closure_make (ats_ptr_type env0) { auxerr_31_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_31_closure_type)) ; auxerr_31_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 17114(line=631, offs=1) -- 18001(line=663, offs=4) */ ATSstaticdec() ats_void_type aux_imparg_svararglst_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp304) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; __ats_lab_aux_imparg_svararglst_30: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp312 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp313 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; tmp314 = aux_imparg_svararg_23 (arg0, tmp312, arg1, arg3) ; arg0 = arg0 ; arg1 = tmp314 ; arg2 = tmp313 ; arg3 = arg3 ; goto __ats_lab_aux_imparg_svararglst_30 ; // tail call break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: /* tmp304 = */ auxerr_31 (arg0) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: break ; } while (0) ; break ; } while (0) ; return /* (tmp304) */ ; } /* end of [aux_imparg_svararglst_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61997(line=2223, offs=7) -- 62162(line=2225, offs=74) */ ATSstaticdec() ats_ptr_type loop_35 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; __ats_lab_loop_35: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp326 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp327 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp328 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp328, atslab_0, tmp326) ; ats_selptrset_mac(anairiats_sum_5, tmp328, atslab_1, arg1) ; arg0 = tmp327 ; arg1 = tmp328 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp325 = arg1 ; break ; } while (0) ; return (tmp325) ; } /* end of [loop_35] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61976(line=2222, offs=25) -- 62297(line=2231, offs=4) */ ATSstaticdec() ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp324) ; __ats_lab_list_reverse_append2_vt_01435_ats_ptr_type: tmp324 = loop_35 (arg0, arg1) ; return (tmp324) ; } /* end of [list_reverse_append2_vt_01435_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 62382(line=2236, offs=14) -- 62438(line=2237, offs=50) */ ATSstaticdec() ats_ptr_type list_reverse_01436_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp329) ; __ats_lab_list_reverse_01436_ats_ptr_type: tmp329 = (ats_sum_ptr_type)0 ; tmp323 = list_reverse_append2_vt_01435_ats_ptr_type (arg0, tmp329) ; return (tmp323) ; } /* end of [list_reverse_01436_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 8880(line=328, offs=5) -- 9252(line=342, offs=4) */ ATSstaticdec() ats_void_type loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; __ats_lab_loop_39: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp338 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp339 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp339, atslab_0, tmp337) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp339 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp340 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp338 ; arg1 = arg1 ; arg2 = tmp340 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp336) */ ; } /* end of [loop_39] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 8858(line=326, offs=17) -- 9436(line=351, offs=4) */ ATSstaticdec() ats_ptr_type list_append2_vt_01314_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp341) ; // ATSlocal_void (tmp342) ; __ats_lab_list_append2_vt_01314_ats_ptr_type: /* ats_ptr_type tmp341 ; */ /* tmp342 = */ loop_39 (arg0, arg1, (&tmp341)) ; tmp335 = tmp341 ; return (tmp335) ; } /* end of [list_append2_vt_01314_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12290(line=449, offs=7) -- 12492(line=454, offs=51) */ ATSstaticdec() ats_ptr_type aux_37 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; __ats_lab_aux_37: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_59_1: tmp333 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp334 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp343 = aux_37 (tmp333, tmp334) ; tmp332 = list_append2_vt_01314_ats_ptr_type (arg0, tmp343) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp344 = (ats_sum_ptr_type)0 ; tmp332 = list_append2_vt_01314_ats_ptr_type (arg0, tmp344) ; break ; } while (0) ; return (tmp332) ; } /* end of [aux_37] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12272(line=448, offs=13) -- 12586(line=458, offs=4) */ ATSstaticdec() ats_ptr_type list_concat_01321_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; __ats_lab_list_concat_01321_ats_ptr_type: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp345 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp346 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp331 = aux_37 (tmp345, tmp346) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp331 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp331) ; } /* end of [list_concat_01321_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 18043(line=666, offs=1) -- 18602(line=691, offs=4) */ ATSstaticdec() anairiats_rec_1 aux_imparg_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; // ATSlocal_void (tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp347) ; __ats_lab_aux_imparg_32: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp316 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp317 = aux_imparg_sarglst_22 (arg0, tmp316) ; tmp318 = (ats_sum_ptr_type)0 ; tmp315.atslab_0 = tmp317 ; tmp315.atslab_1 = tmp318 ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp319 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; /* ats_ptr_type tmp320 ; */ tmp320 = (ats_sum_ptr_type)0 ; /* tmp321 = */ aux_imparg_svararglst_30 (arg0, arg1, tmp319, (&tmp320)) ; tmp322 = list_reverse_01436_ats_ptr_type (tmp320) ; tmp330 = list_concat_01321_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp322)) ; tmp347 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_0, ats_castfn_mac(ats_ptr_type, tmp322)) ; tmp315.atslab_0 = ats_castfn_mac(ats_ptr_type, tmp330) ; tmp315.atslab_1 = tmp347 ; break ; } while (0) ; return (tmp315) ; } /* end of [aux_imparg_32] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 18633(line=694, offs=1) -- 19357(line=721, offs=4) */ ATSstaticdec() ats_ptr_type aux_tmparg_s1explst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_int_type, tmp356) ; ATSlocal (ats_int_type, tmp357) ; __ats_lab_aux_tmparg_s1explst_40: do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_67_1 ; } __ats_lab_65_2: tmp349 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp350 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp351 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp352 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp349) ; tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp351, tmp353) ; tmp355 = aux_tmparg_s1explst_40 (arg0, tmp350, tmp352, arg3) ; tmp348 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp348, atslab_0, tmp354) ; ats_selptrset_mac(anairiats_sum_5, tmp348, atslab_1, tmp355) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_68_1 ; } __ats_lab_66_2: tmp348 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_2: tmp356 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp356 ; tmp348 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_2: tmp357 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp357 ; tmp348 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp348) ; } /* end of [aux_tmparg_s1explst_40] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 19495(line=729, offs=6) -- 19970(line=740, offs=6) */ ATSstaticdec() ats_void_type auxerr1_42 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp359) ; // ATSlocal_void (tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; // ATSlocal_void (tmp362) ; // ATSlocal_void (tmp363) ; // ATSlocal_void (tmp364) ; ATSlocal (ats_bool_type, tmp365) ; // ATSlocal_void (tmp366) ; ATSlocal (ats_bool_type, tmp367) ; // ATSlocal_void (tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; __ats_lab_auxerr1_42: tmp361 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_t1mpmarg_loc) ; /* tmp360 = */ prerr_error2_loc_02087_ (tmp361) ; /* tmp362 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main: aux_tmparg_marglst")) ; /* tmp363 = */ atspre_prerr_string (ATSstrcst(": the template argument group is expected to be contain ")) ; tmp365 = atspre_gt_int_int (arg1, 0) ; if (tmp365) { /* tmp364 = */ atspre_prerr_string (ATSstrcst("more components.")) ; } else { /* empty */ } /* end of [if] */ tmp367 = atspre_lt_int_int (arg1, 0) ; if (tmp367) { /* tmp366 = */ atspre_prerr_string (ATSstrcst("fewer components.")) ; } else { /* empty */ } /* end of [if] */ /* tmp368 = */ atspre_prerr_newline () ; tmp369 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp369)->tag = 35 ; ats_selptrset_mac(anairiats_sum_4, tmp369, atslab_0, env0) ; /* tmp359 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp369) ; return /* (tmp359) */ ; } /* end of [auxerr1_42] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr1_42_closure_type ; ats_void_type auxerr1_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { auxerr1_42 (((auxerr1_42_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr1_42_closure_init (auxerr1_42_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr1_42_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr1_42_closure_make (ats_ptr_type env0) { auxerr1_42_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr1_42_closure_type)) ; auxerr1_42_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 19999(line=742, offs=6) -- 20323(line=749, offs=6) */ ATSstaticdec() ats_void_type auxerr2_43 (ats_ptr_type env0) { /* local vardec */ // ATSlocal_void (tmp370) ; // ATSlocal_void (tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; // ATSlocal_void (tmp373) ; // ATSlocal_void (tmp374) ; // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; __ats_lab_auxerr2_43: tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, env0), atslab_d1ecl_loc) ; /* tmp371 = */ prerr_error2_loc_02087_ (tmp372) ; /* tmp373 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main: aux_tmparg_marglst")) ; /* tmp374 = */ atspre_prerr_string (ATSstrcst(": the template is expected to be fully applied but it is not.")) ; /* tmp375 = */ atspre_prerr_newline () ; tmp376 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp376)->tag = 35 ; ats_selptrset_mac(anairiats_sum_4, tmp376, atslab_0, env0) ; /* tmp370 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp376) ; return /* (tmp370) */ ; } /* end of [auxerr2_43] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr2_43_closure_type ; ats_void_type auxerr2_43_clofun (ats_clo_ptr_type cloptr) { auxerr2_43 (((auxerr2_43_closure_type*)cloptr)->closure_env_0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr2_43_closure_init (auxerr2_43_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr2_43_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr2_43_closure_make (ats_ptr_type env0) { auxerr2_43_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr2_43_closure_type)) ; auxerr2_43_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 20352(line=751, offs=6) -- 20648(line=758, offs=6) */ ATSstaticdec() ats_void_type auxerr3_44 (ats_ptr_type env0) { /* local vardec */ // ATSlocal_void (tmp377) ; // ATSlocal_void (tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; // ATSlocal_void (tmp380) ; // ATSlocal_void (tmp381) ; // ATSlocal_void (tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; __ats_lab_auxerr3_44: tmp379 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, env0), atslab_d1ecl_loc) ; /* tmp378 = */ prerr_error2_loc_02087_ (tmp379) ; /* tmp380 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main: aux_tmparg_marglst")) ; /* tmp381 = */ atspre_prerr_string (ATSstrcst(": the template is overly applied.")) ; /* tmp382 = */ atspre_prerr_newline () ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp383)->tag = 35 ; ats_selptrset_mac(anairiats_sum_4, tmp383, atslab_0, env0) ; /* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp383) ; return /* (tmp377) */ ; } /* end of [auxerr3_44] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr3_44_closure_type ; ats_void_type auxerr3_44_clofun (ats_clo_ptr_type cloptr) { auxerr3_44 (((auxerr3_44_closure_type*)cloptr)->closure_env_0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr3_44_closure_init (auxerr3_44_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr3_44_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr3_44_closure_make (ats_ptr_type env0) { auxerr3_44_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr3_44_closure_type)) ; auxerr3_44_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 19397(line=724, offs=1) -- 21214(line=777, offs=4) */ ATSstaticdec() ats_ptr_type aux_tmparg_marglst_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (anairiats_rec_19, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_int_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; // ATSlocal_void (tmp392) ; ATSlocal (ats_bool_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; // ATSlocal_void (tmp395) ; // ATSlocal_void (tmp396) ; __ats_lab_aux_tmparg_marglst_41: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_71_1 ; } __ats_lab_69_2: tmp384 = ats_caselptrlab_mac(anairiats_sum_20, arg1, atslab_0) ; tmp385 = ats_caselptrlab_mac(anairiats_sum_20, arg1, atslab_1) ; tmp386 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp387 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; /* ats_int_type tmp388 ; */ tmp388 = 0 ; tmp390 = ats_select_mac(tmp384, atslab_s2qua_svs) ; tmp391 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp386), atslab_t1mpmarg_arg) ; tmp389 = aux_tmparg_s1explst_40 (arg0, tmp390, tmp391, (&tmp388)) ; tmp393 = atspre_neq_int_int (tmp388, 0) ; if (tmp393) { /* tmp392 = */ auxerr1_42 (arg0, tmp386, tmp388) ; } else { /* empty */ } /* end of [if] */ tmp394 = aux_tmparg_marglst_41 (arg0, tmp385, tmp387) ; tmp358 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp358, atslab_0, tmp389) ; ats_selptrset_mac(anairiats_sum_5, tmp358, atslab_1, tmp394) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_72_1 ; } __ats_lab_70_2: tmp358 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_2: /* tmp395 = */ auxerr2_43 (arg0) ; tmp358 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_2: /* tmp396 = */ auxerr3_44 (arg0) ; tmp358 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp358) ; } /* end of [aux_tmparg_marglst_41] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 21257(line=780, offs=1) -- 21392(line=787, offs=4) */ ATSstaticdec() ats_ptr_type aux_tmparg_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp397) ; __ats_lab_aux_tmparg_45: tmp397 = aux_tmparg_marglst_41 (arg0, arg1, arg2) ; return (tmp397) ; } /* end of [aux_tmparg_45] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 21423(line=790, offs=1) -- 21739(line=800, offs=4) */ ATSstaticdec() ats_void_type auxerr_tmparg_46 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp398) ; // ATSlocal_void (tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; // ATSlocal_void (tmp401) ; // ATSlocal_void (tmp402) ; // ATSlocal_void (tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; __ats_lab_auxerr_tmparg_46: tmp400 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_d1ecl_loc) ; /* tmp399 = */ prerr_error2_loc_02087_ (tmp400) ; /* tmp401 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ; /* tmp402 = */ atspre_prerr_string (ATSstrcst(": the redundantly provided template arguments are ignored.")) ; /* tmp403 = */ atspre_prerr_newline () ; tmp404 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp404)->tag = 37 ; ats_selptrset_mac(anairiats_sum_4, tmp404, atslab_0, arg0) ; /* tmp398 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp404) ; return /* (tmp398) */ ; } /* end of [auxerr_tmparg_46] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 21773(line=803, offs=1) -- 22093(line=813, offs=4) */ ATSstaticdec() ats_void_type auxerr_nontop_47 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp405) ; // ATSlocal_void (tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; // ATSlocal_void (tmp408) ; // ATSlocal_void (tmp409) ; // ATSlocal_void (tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; __ats_lab_auxerr_nontop_47: tmp407 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_d1ecl_loc) ; /* tmp406 = */ prerr_error2_loc_02087_ (tmp407) ; /* tmp408 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ; /* tmp409 = */ atspre_prerr_string (ATSstrcst(": the implementation should be at the top-level but it is not.")) ; /* tmp410 = */ atspre_prerr_newline () ; tmp411 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp411)->tag = 36 ; ats_selptrset_mac(anairiats_sum_4, tmp411, atslab_0, arg0) ; /* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp411) ; return /* (tmp405) */ ; } /* end of [auxerr_nontop_47] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50559(line=1787, offs=18) -- 50622(line=1789, offs=4) */ ATSstaticdec() ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp414) ; __ats_lab_list_is_cons_01295_: do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp414 = ats_true_bool ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: tmp414 = ats_false_bool ; break ; } while (0) ; return (tmp414) ; } /* end of [list_is_cons_01295_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 22474(line=825, offs=10) -- 22567(line=828, offs=46) */ ATSstaticdec() ats_ptr_type f_49 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; __ats_lab_f_49: tmp426 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) ; tmp425 = ats_castfn_mac(ats_ptr_type, tmp426) ; return (tmp425) ; } /* end of [f_49] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14006(line=512, offs=1) -- 23747(line=877, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_bool_type, tmp413) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_int_type, tmp416) ; // ATSlocal_void (tmp417) ; // ATSlocal_void (tmp418) ; // ATSlocal_void (tmp419) ; ATSlocal (anairiats_rec_1, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp428) ; // ATSlocal_void (tmp429) ; ATSlocal (ats_bool_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; // ATSlocal_void (tmp432) ; ATSlocal (ats_bool_type, tmp433) ; ATSlocal (ats_int_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; // ATSlocal_void (tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; // ATSlocal_void (tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; // ATSlocal_void (tmp442) ; // ATSlocal_void (tmp443) ; // ATSlocal_void (tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main: tmp412 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (arg1) ; tmp413 = list_is_cons_01295_ (tmp412) ; tmp415 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_i1mpdec_tmparg) ; /* ats_int_type tmp416 ; */ tmp416 = 0 ; /* tmp417 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp418 = ats_selsin_mac(tmp417, atslab_1) */ ; if (tmp413) { /* tmp419 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_inc () ; } else { /* empty */ } /* end of [if] */ tmp420 = aux_imparg_32 (arg0, tmp412, arg2) ; tmp421 = ats_select_mac(tmp420, atslab_0) ; tmp422 = ats_select_mac(tmp420, atslab_1) ; do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (tmp422 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_75_1: tmp424 = ats_caselptrlab_mac(anairiats_sum_7, tmp422, atslab_0) ; ATS_FREE(tmp422) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (tmp415 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp416 = 1 ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: __ats_lab_77_1: break ; } while (0) ; tmp428 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp424, &f_49) ; tmp423 = ats_castfn_mac(ats_ptr_type, tmp428) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (tmp422 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp423 = aux_tmparg_45 (arg0, tmp412, tmp415) ; break ; } while (0) ; tmp430 = atspre_gt_int_int (tmp416, 0) ; if (tmp430) { /* tmp429 = */ auxerr_tmparg_46 (arg0) ; } else { /* empty */ } /* end of [if] */ tmp431 = (ats_sum_ptr_type)0 ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (tmp423 != (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp433 = atspre_gt_int_int (tmp434, 0) ; if (tmp433) { /* tmp432 = */ auxerr_nontop_47 (arg0) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (tmp423 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: break ; } while (0) ; /* ats_ptr_type tmp435 ; */ tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; /* tmp436 = */ stasub_add_tmparg_20 ((&tmp435), tmp412, tmp423) ; tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg1) ; tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp435, tmp437) ; /* tmp439 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp435) ; tmp441 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_i1mpdec_def) ; tmp440 = d1exp_tr_ann_10 (tmp441, tmp438) ; if (tmp413) { /* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_dec () ; } else { /* empty */ } /* end of [if] */ /* tmp443 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp445 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp445, atslab_0, tmp440) ; /* tmp444 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_def (arg1, tmp445) ; tmp446 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_i1mpdec_loc) ; tmp447 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_i1mpdec_qid) ; tmp448 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp447), atslab_impqi0de_loc) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2mpdec_make (tmp446, tmp448, arg1, tmp421, tmp423, tmp431, tmp440) ; return (tmp236) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main] */ /* // /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 23821(line=882, offs=12) -- 24154(line=894, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__i1mpdec_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__i1mpdec_tr: tmp450 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_d1ecl_node) ; if (((ats_sum_ptr_type)tmp450)->tag != 27) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 23840(line=883, offs=7) -- 23893(line=884, offs=44)") ; } tmp451 = ats_caselptrlab_mac(anairiats_sum_13, tmp450, atslab_1) ; tmp452 = ats_caselptrlab_mac(anairiats_sum_13, tmp450, atslab_2) ; tmp453 = i1mpdec_select_d2cst_1 (arg0, tmp452) ; do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (tmp453 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp454 = ats_caselptrlab_mac(anairiats_sum_7, tmp453, atslab_0) ; ATS_FREE(tmp453) ; tmp455 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main (arg0, tmp454, tmp451, tmp452) ; tmp449 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp449, atslab_0, tmp455) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (tmp453 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: tmp449 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp449) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__i1mpdec_tr] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_impdec_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_deref_dats.c0000644000175000017500000016101113431250607023104 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_dyn_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_nonderef_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_pfobj_search_none_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_deref_context_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_deref_reflinsel_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_t0ype_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_vt0ype_vtype) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lazyeval) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02060_ () ; static ats_void_type prerr_error3_loc_02066_ (ats_ptr_type arg0) ; static ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type auxerr_nonderef_5 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_reflinsel_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type aux1_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type aux2_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type aux3_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type aux4_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 1751(line=58, offs=28) -- 1781(line=58, offs=58) */ ATSstaticdec() ats_void_type prerr_FILENAME_02060_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02060_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_deref")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02060_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02066_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; __ats_lab_prerr_error3_loc_02066_: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp3 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp3) */ ; } /* end of [prerr_error3_loc_02066_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 2076(line=78, offs=1) -- 2451(line=90, offs=4) */ ATSstaticdec() ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_auxerr_pfobj_1: /* tmp2 = */ prerr_error3_loc_02066_ (arg0) ; /* tmp5 = */ atspre_prerr_string (ATSstrcst(": dereference cannot be performed")) ; /* tmp6 = */ atspre_prerr_string (ATSstrcst(": the proof search for view located at [")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp8 = */ atspre_prerr_string (ATSstrcst("] failed to turn up a result.")) ; /* tmp9 = */ atspre_prerr_newline () ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp10)->tag = 54 ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_1, arg1) ; /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp10) ; return /* (tmp1) */ ; } /* end of [auxerr_pfobj_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 2482(line=93, offs=1) -- 3981(line=158, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_int_type, tmp16) ; ATSlocal (anairiats_rec_1, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_bool_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_bool_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab_auxmain_3: // tmp12 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp14 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_2) ; ATS_FREE(arg1) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp14 ; /* ats_int_type tmp15 ; */ tmp15 = 0 ; /* ats_int_type tmp16 ; */ tmp16 = 0 ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg0, tmp14, arg2, (&tmp15), (&tmp16)) ; tmp18 = ats_select_mac(tmp17, atslab_0) ; tmp19 = ats_select_mac(tmp17, atslab_1) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp18) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp19) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp20) ; if (tmp22) { tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2exp_srt) ; /* ats_ptr_type tmp24 ; */ tmp24 = (ats_sum_ptr_type)0 ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context (arg0, tmp14, arg2, (&tmp24)) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp24 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp26 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp24 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp26 = ats_false_bool ; break ; } while (0) ; tmp28 = atspre_neg_bool (tmp26) ; if (tmp28) { /* tmp29 = */ prerr_error3_loc_02066_ (arg0) ; /* tmp30 = */ atspre_prerr_string (ATSstrcst(": the linear component cannot taken out.")) ; /* tmp31 = */ atspre_prerr_newline () ; tmp32 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp32)->tag = 57 ; ats_selptrset_mac(anairiats_sum_5, tmp32, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp32, atslab_1, tmp14) ; ats_selptrset_mac(anairiats_sum_5, tmp32, atslab_2, arg2) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp32) ; } else { /* empty */ } /* end of [if] */ /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (tmp12) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize (1, tmp25) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp24 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_6, tmp24, atslab_0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (tmp36, tmp34) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp24 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp35 = tmp14 ; break ; } while (0) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl (tmp13, tmp35) ; tmp39 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp39, atslab_0, tmp37) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp12, tmp39) ; tmp11 = tmp25 ; } else { tmp11 = tmp20 ; } /* end of [if] */ return (tmp11) ; } /* end of [auxmain_3] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 4050(line=164, offs=3) -- 4412(line=179, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_deref: tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview (arg1) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp41 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_6, tmp41, atslab_0) ; ATS_FREE(tmp41) ; tmp40 = auxmain_3 (arg0, tmp42, arg2, arg3) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp41 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp43 ; /* tmp44 = */ auxerr_pfobj_1 (arg0, arg1) ; tmp40 = tmp43 ; break ; } while (0) ; return (tmp40) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_deref] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 4494(line=188, offs=1) -- 4734(line=203, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonderef_5 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_auxerr_nonderef_5: /* tmp46 = */ prerr_error3_loc_02066_ (arg0) ; /* tmp47 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression cannot be dereferenced.")) ; /* tmp48 = */ atspre_prerr_newline () ; tmp49 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp49)->tag = 53 ; ats_selptrset_mac(anairiats_sum_7, tmp49, atslab_0, arg1) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp49) ; return /* (tmp45) */ ; } /* end of [auxerr_nonderef_5] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 4768(line=206, offs=1) -- 5055(line=225, offs=4) */ ATSstaticdec() ats_void_type auxerr_reflinsel_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab_auxerr_reflinsel_6: /* tmp51 = */ prerr_error3_loc_02066_ (arg0) ; /* tmp52 = */ atspre_prerr_string (ATSstrcst(": the linear component cannot taken out.")) ; /* tmp53 = */ atspre_prerr_newline () ; tmp54 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp54)->tag = 65 ; ats_selptrset_mac(anairiats_sum_2, tmp54, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp54, atslab_1, arg2) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp54) ; return /* (tmp50) */ ; } /* end of [auxerr_reflinsel_6] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 5111(line=230, offs=1) -- 5541(line=253, offs=4) */ ATSstaticdec() ats_ptr_type aux1_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_aux1_7: tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (arg1) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp56 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp55 = aux2_8 (arg0, arg1, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp56 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_6, tmp56, atslab_0) ; ATS_FREE(tmp56) ; /* ats_ptr_type tmp58 ; */ tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_deref (arg0, tmp57, arg4, (&tmp58)) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ptr (arg0, tmp59, arg3, tmp58, arg4) ; break ; } while (0) ; return (tmp55) ; } /* end of [aux1_7] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 5564(line=256, offs=1) -- 6419(line=300, offs=4) */ ATSstaticdec() ats_ptr_type aux2_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_int_type, tmp64) ; ATSlocal (ats_int_type, tmp65) ; ATSlocal (anairiats_rec_1, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_bool_type, tmp71) ; // ATSlocal_void (tmp72) ; ATSlocal (ats_int_type, tmp73) ; __ats_lab_aux2_8: tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type (arg1) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (tmp61 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp60 = aux3_9 (arg0, arg1, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (tmp61 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_6, tmp61, atslab_0) ; ATS_FREE(tmp61) ; /* ats_ptr_type tmp63 ; */ tmp63 = tmp62 ; /* ats_int_type tmp64 ; */ tmp64 = 0 ; /* ats_int_type tmp65 ; */ tmp65 = 0 ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg0, tmp62, arg4, (&tmp64), (&tmp65)) ; tmp67 = ats_select_mac(tmp66, atslab_0) ; tmp68 = ats_select_mac(tmp66, atslab_1) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp67) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp68) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp69) ; if (tmp71) { /* tmp72 = */ auxerr_reflinsel_6 (arg0, arg3, arg4, tmp69) ; } else { /* empty */ } /* end of [if] */ tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref (arg0) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ref (arg0, tmp69, arg3, tmp63, arg4) ; break ; } while (0) ; return (tmp60) ; } /* end of [aux2_8] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 6442(line=303, offs=1) -- 6805(line=324, offs=4) */ ATSstaticdec() ats_ptr_type aux3_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab_aux3_9: tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_t0ype_type (arg1) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp75 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp74 = aux4_10 (arg0, arg1, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp75 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_6, tmp75, atslab_0) ; ATS_FREE(tmp75) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lazyeval (arg0, tmp76, 0, arg3) ; break ; } while (0) ; return (tmp74) ; } /* end of [aux3_9] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 6828(line=327, offs=1) -- 8029(line=381, offs=4) */ ATSstaticdec() ats_ptr_type aux4_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab_aux4_10: tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_vt0ype_vtype (arg1) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp78 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_6, tmp78, atslab_0) ; ATS_FREE(tmp78) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lazyeval (arg0, tmp79, 1, arg3) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp78 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp80 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg3), atslab_d3exp_loc) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top (arg0) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg3) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top2 (tmp80, tmp82) ; tmp85 = (ats_sum_ptr_type)0 ; tmp84 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp84, atslab_0, tmp83) ; ats_selptrset_mac(anairiats_sum_9, tmp84, atslab_1, tmp85) ; tmp86 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp86)->tag = 1 ; ats_selptrset_mac(anairiats_sum_10, tmp86, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_10, tmp86, atslab_1, tmp80) ; ats_selptrset_mac(anairiats_sum_10, tmp86, atslab_2, tmp84) ; tmp88 = (ats_sum_ptr_type)0 ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp87, atslab_0, tmp86) ; ats_selptrset_mac(anairiats_sum_9, tmp87, atslab_1, tmp88) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym (tmp81, arg2, tmp87) ; tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp89), atslab_d3exp_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp90)->tag != 26) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_0) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_11, tmp90, atslab_1) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp89) ; tmp95 = (ats_sum_ptr_type)0 ; tmp94 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp94, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_9, tmp94, atslab_1, tmp95) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn (arg0, tmp93, tmp91, tmp92, tmp94) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp77 = tmp89 ; break ; } while (0) ; break ; } while (0) ; return (tmp77) ; } /* end of [aux4_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_deref.dats: 8097(line=387, offs=1) -- 8735(line=431, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; // ATSlocal_void (tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_deref: tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg2) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg3) ; /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp97) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp97) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp100) ; tmp96 = aux1_7 (arg0, tmp101, arg1, tmp97, tmp98) ; return (tmp96) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_deref] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_deref_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lintprgm_print_dats.c0000644000175000017500000000715213431250607023602 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_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_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lintprgm_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_e1xpval_sats.c0000644000175000017500000001015513431250607022126 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_defined_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_undefined_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_maxlevel_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_opr_arglst_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPide_unbound_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPundef_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPlist_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPapp_fun_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_fun_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_opr_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_arity_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPfun_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPerr_13) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_defined_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_undefined_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_maxlevel_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_opr_arglst_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPide_unbound_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPundef_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPlist_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPapp_fun_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_fun_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_opr_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_arity_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPfun_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPerr_13.tag = 13 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_e1xpval_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_main_none_dats.c0000644000175000017500000065057613431250607022513 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 "libc/CATS/stdio.cats" #include "libc/sys/CATS/types.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ // extern void patsopt_PATSHOME_set() ; extern char *patsopt_PATSHOME_get() ; // extern void patsopt_PATSCONTRIB_set() ; // extern void patsopt_PATSHOMELOCS_set() ; // extern void patsopt_PATSRELOCROOT_set() ; // /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_comarg0 ; ats_ptr_type atslab_ATSHOME ; ats_ptr_type atslab_waitknd ; ats_int_type atslab_ninpfile ; ats_int_type atslab_preludeflag ; ats_ptr_type atslab_infil ; ats_ptr_type atslab_outmode ; ats_ptr_type atslab_outchan ; ats_int_type atslab_depgen ; ats_int_type atslab_taggen ; ats_int_type atslab_atsreloc ; ats_int_type atslab_codegenflag ; ats_int_type atslab_jsonizeflag ; ats_int_type atslab_typecheckflag ; ats_int_type atslab_cnstrsolveflag ; ats_int_type atslab_olevel ; ats_int_type atslab_nerror ; } anairiats_rec_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; /* 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_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__COMARG_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKdefine_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinclude_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANref_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANptr_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_none) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set) (ats_int_type) ; ATSextern_fun(ats_int_type, patsopt_debug_flag_get) () ; ATSextern_fun(ats_void_type, patsopt_debug_flag_set) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarglst_parse) (ats_int_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_DATS_flag) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_IATS_flag) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__DATS_extract) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__IATS_extract) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_DATS_def) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_IATS_dir) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_PATSRELOCROOT) () ; ATSextern_fun(ats_ptr_type, patsopt_filename_dirbase) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_stdin) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush) (ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_the_prepathlst_push) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_stdin_toplevel) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel) (ats_int_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givenames_toplocal2) (ats_int_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__depgen_eval) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_entlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__taggen_proc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__fprint_entlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__trans1_finalize) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set_none) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pervasive_joinwth) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitmlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsrelocitmlst_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_initialize) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__stacst2_initialize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr_errck) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pervasive_joinwth1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_initialize) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__d2eclist_jsonize_out) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_export) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer_errck) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_main) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_patsopt_version) (ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_the_fixity_load) (ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_pervasive_load) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_the_prelude_load) (ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_the_prelude_load_if) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, libatsopt_patsopt_main) (ats_int_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKdefine_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinclude_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANref_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANptr_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type patsopt_usage_0 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type waitknd_get_stadyn_2 (ats_ptr_type arg0) ; static ats_ptr_type outchan_get_filr_3 (ats_ptr_type arg0) ; static ats_ptr_type auxmain_4 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type outchan_make_path_5 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type cmdstate_set_outchan_6 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type isinpwait_7 (anairiats_rec_3 arg0) ; static ats_bool_type isoutwait_8 (anairiats_rec_3 arg0) ; static ats_bool_type isdatswait_9 (anairiats_rec_3 arg0) ; static ats_bool_type isiatswait_10 (anairiats_rec_3 arg0) ; static ats_ptr_type theOutFilename_get_11 () ; static ats_void_type theOutFilename_set_12 (ats_ptr_type arg0) ; static ats_void_type auxerr_28 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxexn_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static anairiats_rec_4 loop_31 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type revapp_35 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_37 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static anairiats_rec_4 loop2_32 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static anairiats_rec_4 parse_from_given_arglst_toplevel_30 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type process_nil_38 (ats_ref_type arg0) ; static ats_void_type process_cmdline_39 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type process_cmdline2_40 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type process_cmdline2_comarg1_41 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type process_cmdline2_comarg2_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (ats_int_type arg0, ...) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp90) ; // ATSstatic_void (statmp91) ; // ATSstatic_void (statmp92) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 9891(line=449, offs=1) -- 12618(line=512, offs=4) */ ATSstaticdec() ats_void_type patsopt_usage_0 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; __ats_lab_patsopt_usage_0: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("Usage: ")) ; /* tmp3 = */ atspre_fprint_string (arg0, tmp1) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst(" ... \n")) ; /* tmp5 = */ atspre_fprint_newline (arg0) ; /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("where a is of one of the following forms:\n")) ; /* tmp7 = */ atspre_fprint_newline (arg0) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst(" -h (for printing out this help usage)")) ; /* tmp9 = */ atspre_fprint_newline (arg0) ; /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst(" --help (for printing out this help usage)")) ; /* tmp11 = */ atspre_fprint_newline (arg0) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(" -v (for printing out the version)")) ; /* tmp13 = */ atspre_fprint_newline (arg0) ; /* tmp14 = */ atspre_fprint_string (arg0, ATSstrcst(" --version (for printing out the version)")) ; /* tmp15 = */ atspre_fprint_newline (arg0) ; /* tmp16 = */ atspre_fprint_string (arg0, ATSstrcst(" -s (for compiling static filenames individually)")) ; /* tmp17 = */ atspre_fprint_newline (arg0) ; /* tmp18 = */ atspre_fprint_string (arg0, ATSstrcst(" --static (for compiling static filenames individually)")) ; /* tmp19 = */ atspre_fprint_newline (arg0) ; /* tmp20 = */ atspre_fprint_string (arg0, ATSstrcst(" -d (for compiling dynamic filenames individually)")) ; /* tmp21 = */ atspre_fprint_newline (arg0) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst(" --dynamic (for compiling dynamic filenames individually)")) ; /* tmp23 = */ atspre_fprint_newline (arg0) ; /* tmp24 = */ atspre_fprint_string (arg0, ATSstrcst(" -dd (for compiling dynamic filenames in a combined manner)")) ; /* tmp25 = */ atspre_fprint_newline (arg0) ; /* tmp26 = */ atspre_fprint_string (arg0, ATSstrcst(" --dynamics (for compiling dynamic filenames in a combined manner)")) ; /* tmp27 = */ atspre_fprint_newline (arg0) ; /* tmp28 = */ atspre_fprint_string (arg0, ATSstrcst(" -o (output into filename)")) ; /* tmp29 = */ atspre_fprint_newline (arg0) ; /* tmp30 = */ atspre_fprint_string (arg0, ATSstrcst(" --output (output into filename)")) ; /* tmp31 = */ atspre_fprint_newline (arg0) ; /* tmp32 = */ atspre_fprint_string (arg0, ATSstrcst(" --output-w (output-write into filename)")) ; /* tmp33 = */ atspre_fprint_newline (arg0) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst(" --output-a (output-append into filename)")) ; /* tmp35 = */ atspre_fprint_newline (arg0) ; /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst(" -cc (for compiling into C)")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst(" -tc (for typechecking only)")) ; /* tmp39 = */ atspre_fprint_newline (arg0) ; /* tmp40 = */ atspre_fprint_string (arg0, ATSstrcst(" --compile (for compiling into C)")) ; /* tmp41 = */ atspre_fprint_newline (arg0) ; /* tmp42 = */ atspre_fprint_string (arg0, ATSstrcst(" --typecheck (for typechecking only)")) ; /* tmp43 = */ atspre_fprint_newline (arg0) ; /* tmp44 = */ atspre_fprint_string (arg0, ATSstrcst(" --depgen (for generating information on file dependencices)")) ; /* tmp45 = */ atspre_fprint_newline (arg0) ; /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst(" --taggen (for generating tagging information on syntactic entities)")) ; /* tmp47 = */ atspre_fprint_newline (arg0) ; /* tmp48 = */ atspre_fprint_string (arg0, ATSstrcst(" --gline (for generating line pragma information in target code)")) ; /* tmp49 = */ atspre_fprint_newline (arg0) ; /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst(" --debug (for enabling the generation of more informative error messages)")) ; /* tmp51 = */ atspre_fprint_newline (arg0) ; /* tmp52 = */ atspre_fprint_string (arg0, ATSstrcst(" --debug2 (for enabling the generation of debugging information in target code)")) ; /* tmp53 = */ atspre_fprint_newline (arg0) ; /* tmp54 = */ atspre_fprint_string (arg0, ATSstrcst(" --atsreloc (for generating a script to help relocate packages in need)")) ; /* tmp55 = */ atspre_fprint_newline (arg0) ; /* tmp56 = */ atspre_fprint_string (arg0, ATSstrcst(" --codegen-2 (for outputing code generated from level-2 syntax)")) ; /* tmp57 = */ atspre_fprint_newline (arg0) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(" --jsonize-2 (for outputing code in JSON based on level-2 syntax)")) ; /* tmp59 = */ atspre_fprint_newline (arg0) ; /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst(" --tlcalopt-disable (for disabling tail-call optimization)")) ; /* tmp61 = */ atspre_fprint_newline (arg0) ; /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst(" --constraint-export (for exporting constraints in JSON format)")) ; /* tmp63 = */ atspre_fprint_newline (arg0) ; /* tmp64 = */ atspre_fprint_string (arg0, ATSstrcst(" --constraint-ignore (for entirely ignoring constraint-solving)")) ; /* tmp65 = */ atspre_fprint_newline (arg0) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; return /* (tmp0) */ ; } /* end of [patsopt_usage_0] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 14577(line=570, offs=16) -- 14766(line=580, offs=2) */ ATSglobaldec() ats_void_type libatsopt_patsopt_version (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp66) ; __ats_lab_libatsopt_patsopt_version: /* tmp66 = */ atspre_fprintf_exn (arg0, ATSstrcst("ATS/Postiats version %i.%i.%i with %s\n"), 0, 3, 13, ATSstrcst("Copyright (c) 2011-2018 Hongwei Xi")) ; return /* (tmp66) */ ; } /* end of [libatsopt_patsopt_version] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 15074(line=598, offs=1) -- 15226(line=606, offs=2) */ ATSstaticdec() ats_int_type waitknd_get_stadyn_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp67) ; __ats_lab_waitknd_get_stadyn_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp67 = 0 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp67 = 1 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp67 = 2 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp67 = -1 ; break ; } while (0) ; return (tmp67) ; } /* end of [waitknd_get_stadyn_2] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 15376(line=617, offs=1) -- 15489(line=623, offs=2) */ ATSstaticdec() ats_ptr_type outchan_get_filr_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab_outchan_get_filr_3: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp68 = tmp69 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp68 = tmp70 ; break ; } while (0) ; return (tmp68) ; } /* end of [outchan_get_filr_3] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 16306(line=675, offs=1) -- 16693(line=705, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_4 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab_auxmain_4: tmp73 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outmode) ; tmp72 = atslib_fopen_err (arg1, tmp73) ; tmp74 = ats_selsin_mac(tmp72, atslab_1) ; tmp75 = atspre_pgt (tmp74, atspre_null_ptr) ; if (tmp75) { tmp76 = tmp74 ; tmp71 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp71)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp71, atslab_0, ats_castfn_mac(ats_ptr_type, tmp76)) ; } else { tmp71 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp71)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp71, atslab_0, stderr) ; } /* end of [if] */ return (tmp71) ; } /* end of [auxmain_4] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 16741(line=710, offs=1) -- 16903(line=720, offs=2) */ ATSstaticdec() ats_ptr_type outchan_make_path_5 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; __ats_lab_outchan_make_path_5: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (__strcmpats(arg1, ATSstrcst("-"))) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp77 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp77)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp77, atslab_0, stdout) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp77 = auxmain_4 (arg0, arg1) ; break ; } while (0) ; return (tmp77) ; } /* end of [outchan_make_path_5] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 16977(line=727, offs=1) -- 17291(line=744, offs=4) */ ATSstaticdec() ats_void_type cmdstate_set_outchan_6 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; __ats_lab_cmdstate_set_outchan_6: tmp79 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) = arg1 ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp79)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (((ats_sum_ptr_type)tmp79)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_2, tmp79, atslab_0) ; tmp81 = atslib_fclose_err (tmp80) ; break ; } while (0) ; return /* (tmp78) */ ; } /* end of [cmdstate_set_outchan_6] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 17351(line=749, offs=1) -- 17537(line=761, offs=2) */ ATSstaticdec() ats_bool_type isinpwait_7 (anairiats_rec_3 arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab_isinpwait_7: tmp83 = ats_select_mac(arg0, atslab_waitknd) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp83)->tag != 2) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp82 = ats_true_bool ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp83)->tag != 3) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp82 = ats_true_bool ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp83)->tag != 4) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp82 = ats_true_bool ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp82 = ats_false_bool ; break ; } while (0) ; return (tmp82) ; } /* end of [isinpwait_7] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 17565(line=764, offs=1) -- 17683(line=769, offs=2) */ ATSstaticdec() ats_bool_type isoutwait_8 (anairiats_rec_3 arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab_isoutwait_8: tmp85 = ats_select_mac(arg0, atslab_waitknd) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp85)->tag != 1) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp84 = ats_true_bool ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp84 = ats_false_bool ; break ; } while (0) ; return (tmp84) ; } /* end of [isoutwait_8] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 17714(line=772, offs=1) -- 17833(line=777, offs=2) */ ATSstaticdec() ats_bool_type isdatswait_9 (anairiats_rec_3 arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab_isdatswait_9: tmp87 = ats_select_mac(arg0, atslab_waitknd) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp87)->tag != 5) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp86 = ats_true_bool ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp86 = ats_false_bool ; break ; } while (0) ; return (tmp86) ; } /* end of [isdatswait_9] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 17865(line=780, offs=1) -- 17984(line=785, offs=2) */ ATSstaticdec() ats_bool_type isiatswait_10 (anairiats_rec_3 arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab_isiatswait_10: tmp89 = ats_select_mac(arg0, atslab_waitknd) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp89)->tag != 6) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp88 = ats_true_bool ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp88 = ats_false_bool ; break ; } while (0) ; return (tmp88) ; } /* end of [isiatswait_10] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 18217(line=802, offs=1) -- 18369(line=812, offs=2) */ ATSstaticdec() ats_ptr_type theOutFilename_get_11 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab_theOutFilename_get_11: tmp94 = statmp90 ; statmp90 = atspre_stropt_none ; tmp93 = tmp94 ; return (tmp93) ; } /* end of [theOutFilename_get_11] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 18406(line=815, offs=1) -- 18515(line=822, offs=2) */ ATSstaticdec() ats_void_type theOutFilename_set_12 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp95) ; __ats_lab_theOutFilename_set_12: statmp90 = arg0 ; return /* (tmp95) */ ; } /* end of [theOutFilename_set_12] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 18715(line=836, offs=3) -- 19473(line=868, offs=4) */ ATSglobaldec() ats_void_type libatsopt_the_fixity_load (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; // ATSlocal_void (tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab_libatsopt_the_fixity_load: tmp97 = patsopt_filename_dirbase (arg0, ATSstrcst("prelude/fixity.ats")) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make (ATSstrcst("prelude/fixity.ats"), ATSstrcst("prelude/fixity.ats"), ats_castfn_mac(ats_ptr_type, tmp97)) ; /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (tmp98) ; /* tmp100 = ats_selsin_mac(tmp99, atslab_1) */ ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel (0, tmp98) ; /* tmp102 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_push_nil () ; /* tmp104 = ats_selsin_mac(tmp103, atslab_1) */ ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck (tmp101) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pop () ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_pervasive_joinwth (tmp106) ; return /* (tmp96) */ ; } /* end of [libatsopt_the_fixity_load] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 19660(line=881, offs=3) -- 20752(line=924, offs=2) */ ATSglobaldec() ats_void_type libatsopt_pervasive_load (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; // ATSlocal_void (tmp124) ; __ats_lab_libatsopt_pervasive_load: tmp108 = patsopt_filename_dirbase (arg0, arg1) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_make (arg1, arg1, ats_castfn_mac(ats_ptr_type, tmp108)) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (tmp109) ; /* tmp111 = ats_selsin_mac(tmp110, atslab_1) */ ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel (0, tmp109) ; /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_name (ATSstrcst("ATSLIB.prelude")) ; /* tmp115 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set (ATSstrcst("atspre_")) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push () ; /* tmp117 = ats_selsin_mac(tmp116, atslab_1) */ ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck (tmp112) ; /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop () ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ; /* tmp121 = ats_selsin_mac(tmp120, atslab_1) */ ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr_errck (tmp118) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pervasive_joinwth1 (tmp109, tmp122) ; /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_none () ; /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_set_none () ; return /* (tmp107) */ ; } /* end of [libatsopt_pervasive_load] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 20979(line=941, offs=3) -- 24380(line=1046, offs=2) */ ATSglobaldec() ats_void_type libatsopt_the_prelude_load (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; __ats_lab_libatsopt_the_prelude_load: /* tmp126 = */ libatsopt_the_fixity_load (arg0) ; /* tmp127 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/basics_pre.sats")) ; /* tmp128 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/basics_sta.sats")) ; /* tmp129 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/basics_dyn.sats")) ; /* tmp130 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/basics_gen.sats")) ; /* tmp131 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/macrodef.sats")) ; /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__stacst2_initialize () ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize () ; /* tmp134 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer.sats")) ; /* tmp135 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/pointer.sats")) ; /* tmp136 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/arith_prf.sats")) ; /* tmp137 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_long.sats")) ; /* tmp138 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_size.sats")) ; /* tmp139 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_short.sats")) ; /* tmp140 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/bool.sats")) ; /* tmp141 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/char.sats")) ; /* tmp142 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/float.sats")) ; /* tmp143 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/string.sats")) ; /* tmp144 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/strptr.sats")) ; /* tmp145 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_ptr.sats")) ; /* tmp146 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/integer_fixed.sats")) ; /* tmp147 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/tuple.sats")) ; /* tmp148 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/memory.sats")) ; /* tmp149 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/reference.sats")) ; /* tmp150 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/filebas.sats")) ; /* tmp151 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/intrange.sats")) ; /* tmp152 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/gorder.sats")) ; /* tmp153 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/gnumber.sats")) ; /* tmp154 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/grandom.sats")) ; /* tmp155 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/checkast.sats")) ; /* tmp156 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/list.sats")) ; /* tmp157 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/list_vt.sats")) ; /* tmp158 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/option.sats")) ; /* tmp159 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/option_vt.sats")) ; /* tmp160 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/array.sats")) ; /* tmp161 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/array_prf.sats")) ; /* tmp162 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/arrayptr.sats")) ; /* tmp163 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/arrayref.sats")) ; /* tmp164 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/matrix.sats")) ; /* tmp165 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/matrixptr.sats")) ; /* tmp166 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/matrixref.sats")) ; /* tmp167 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/stream.sats")) ; /* tmp168 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/stream_vt.sats")) ; /* tmp169 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/gprint.sats")) ; /* tmp170 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/tostring.sats")) ; /* tmp171 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/parray.sats")) ; /* tmp125 = */ libatsopt_pervasive_load (arg0, ATSstrcst("prelude/SATS/extern.sats")) ; return /* (tmp125) */ ; } /* end of [libatsopt_the_prelude_load] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 24630(line=1063, offs=3) -- 24737(line=1068, offs=12) */ ATSglobaldec() ats_void_type libatsopt_the_prelude_load_if (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp172) ; ATSlocal (ats_bool_type, tmp173) ; __ats_lab_libatsopt_the_prelude_load_if: tmp173 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg1), 0) ; if (tmp173) { ats_ptrget_mac(ats_int_type, arg1) = 1 ; /* tmp172 = */ libatsopt_the_prelude_load (arg0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp172) */ ; } /* end of [libatsopt_the_prelude_load_if] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 25052(line=1091, offs=3) -- 25330(line=1105, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; // ATSlocal_void (tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen: tmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__depgen_eval (arg2) ; /* tmp176 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop () ; tmp178 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; tmp177 = outchan_get_filr_3 (tmp178) ; /* tmp174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__fprint_entlst (tmp177, arg1, tmp175) ; return /* (tmp174) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 25378(line=1109, offs=3) -- 25656(line=1123, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen: tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__taggen_proc (arg2) ; /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop () ; tmp183 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; tmp182 = outchan_get_filr_3 (tmp183) ; /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__fprint_entlst (tmp182, arg1, tmp180) ; return /* (tmp179) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 25841(line=1137, offs=3) -- 26022(line=1149, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc: tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsrelocitmlst_get () ; tmp187 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; tmp186 = outchan_get_filr_3 (tmp187) ; /* tmp184 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__fprint_atsrelocitmlst (tmp186, tmp185) ; return /* (tmp184) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 26232(line=1165, offs=3) -- 26371(line=1172, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2: tmp189 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; tmp190 = outchan_get_filr_3 (tmp189) ; /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out (tmp190, arg2) ; return /* (tmp188) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 27123(line=1227, offs=1) -- 27266(line=1236, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2: tmp192 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; tmp193 = outchan_get_filr_3 (tmp192) ; /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__d2eclist_jsonize_out (tmp193, arg2) ; return /* (tmp191) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 27992(line=1283, offs=1) -- 28332(line=1304, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; ATSlocal (ats_bool_type, tmp198) ; ATSlocal (ats_int_type, tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1: tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck (arg2) ; /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__trans1_finalize () ; tmp199 = patsopt_debug_flag_get () ; tmp198 = atspre_gt_int_int (tmp199, 0) ; if (tmp198) { /* tmp200 = */ atspre_prerr_string (ATSstrcst("The 1st translation (fixity) of [")) ; /* tmp201 = */ atspre_prerr_string (arg1) ; /* tmp202 = */ atspre_prerr_string (ATSstrcst("] is successfully completed!")) ; /* tmp197 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp194 = tmp195 ; return (tmp194) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 28398(line=1310, offs=1) -- 28827(line=1334, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; // ATSlocal_void (tmp205) ; ATSlocal (ats_bool_type, tmp206) ; ATSlocal (ats_int_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_bool_type, tmp210) ; ATSlocal (ats_int_type, tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; // ATSlocal_void (tmp214) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12: tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1 (arg0, arg1, arg2) ; tmp207 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_ninpfile) ; tmp206 = atspre_gte_int_int (tmp207, 2) ; if (tmp206) { /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_initialize () ; } else { /* empty */ } /* end of [if] */ tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1eclist_tr_errck (tmp204) ; tmp211 = patsopt_debug_flag_get () ; tmp210 = atspre_gt_int_int (tmp211, 0) ; if (tmp210) { /* tmp212 = */ atspre_prerr_string (ATSstrcst("The 2nd translation (binding) of [")) ; /* tmp213 = */ atspre_prerr_string (arg1) ; /* tmp214 = */ atspre_prerr_string (ATSstrcst("] is successfully completed!")) ; /* tmp209 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp203 = tmp208 ; return (tmp203) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 28898(line=1340, offs=1) -- 29898(line=1404, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_int_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; // ATSlocal_void (tmp221) ; ATSlocal (ats_bool_type, tmp222) ; // ATSlocal_void (tmp223) ; ATSlocal (ats_bool_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; ATSlocal (ats_bool_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123: tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12 (arg0, arg1, arg2) ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize () ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck (tmp216) ; tmp219 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_cnstrsolveflag) ; tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint () ; tmp222 = atspre_eq_int_int (tmp219, 0) ; if (tmp222) { /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve (tmp220) ; } else { /* empty */ } /* end of [if] */ tmp224 = atspre_gt_int_int (tmp219, 0) ; if (tmp224) { tmp226 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; tmp225 = outchan_get_filr_3 (tmp226) ; /* tmp223 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_export (tmp225, tmp220) ; } else { /* empty */ } /* end of [if] */ tmp229 = patsopt_debug_flag_get () ; tmp228 = atspre_gt_int_int (tmp229, 0) ; if (tmp228) { /* tmp230 = */ atspre_prerr_string (ATSstrcst("The 3rd translation (type-checking) of [")) ; /* tmp231 = */ atspre_prerr_string (arg1) ; /* tmp232 = */ atspre_prerr_string (ATSstrcst("] is successfully completed!")) ; /* tmp227 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp215 = tmp218 ; return (tmp215) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 29971(line=1410, offs=1) -- 30380(line=1432, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; // ATSlocal_void (tmp236) ; ATSlocal (ats_bool_type, tmp237) ; ATSlocal (ats_int_type, tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234: tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123 (arg0, arg1, arg2) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer_errck (tmp234) ; tmp238 = patsopt_debug_flag_get () ; tmp237 = atspre_gt_int_int (tmp238, 0) ; if (tmp237) { /* tmp239 = */ atspre_prerr_string (ATSstrcst("The 4th translation (type/proof-erasing) of [")) ; /* tmp240 = */ atspre_prerr_string (arg1) ; /* tmp241 = */ atspre_prerr_string (ATSstrcst("] is successfully completed!")) ; /* tmp236 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp233 = tmp235 ; return (tmp233) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 30457(line=1438, offs=3) -- 31664(line=1495, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp242) ; ATSlocal (ats_bool_type, tmp243) ; ATSlocal (ats_int_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_bool_type, tmp246) ; ATSlocal (ats_int_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_bool_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_bool_type, tmp252) ; ATSlocal (ats_int_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_int_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp244 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_atsreloc) ; tmp243 = atspre_gt_int_int (tmp244, 0) ; if (!tmp243) { goto __ats_lab_21_1 ; } tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1 (arg0, arg1, arg2) ; /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_atsreloc (arg0, arg1, tmp245) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp247 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_codegenflag) ; tmp246 = atspre_eq_int_int (tmp247, 2) ; if (!tmp246) { goto __ats_lab_22_1 ; } tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12 (arg0, arg1, arg2) ; /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_codegen_2 (arg0, arg1, tmp248) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp250 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_jsonizeflag) ; tmp249 = atspre_eq_int_int (tmp250, 2) ; if (!tmp249) { goto __ats_lab_23_1 ; } tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans12 (arg0, arg1, arg2) ; /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_jsonize_2 (arg0, arg1, tmp251) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp253 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_typecheckflag) ; tmp252 = atspre_gt_int_int (tmp253, 0) ; if (!tmp252) { goto __ats_lab_24_1 ; } tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans123 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_olevel) = 1 ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_trans1234 (arg0, arg1, arg2) ; tmp257 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_outchan) ; tmp256 = outchan_get_filr_3 (tmp257) ; tmp259 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_waitknd) ; tmp258 = waitknd_get_stadyn_2 (tmp259) ; tmp260 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_infil) ; /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_main (tmp256, tmp258, tmp260, tmp255) ; break ; } while (0) ; return /* (tmp242) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 31810(line=1509, offs=1) -- 32080(line=1528, offs=4) */ ATSstaticdec() ats_void_type auxerr_28 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp262) ; ATSlocal (ats_bool_type, tmp263) ; __ats_lab_auxerr_28: tmp263 = atspre_gt_int_int (arg0, 0) ; if (tmp263) { /* tmp262 = */ atspre_fprintf_exn (arg1, ATSstrcst("%s//\n#error(PATSOPT_ERROR_(patsopt(%s): %s))\n//\n%s"), ATSstrcst("/* ****** ****** */\n"), arg2, arg3, ATSstrcst("/* ****** ****** */\n")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp262) */ ; } /* end of [auxerr_28] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 31727(line=1502, offs=1) -- 33149(line=1585, offs=4) */ ATSstaticdec() ats_void_type auxexn_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp261) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_int_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_int_type, tmp268) ; ATSlocal (ats_int_type, tmp269) ; __ats_lab_auxexn_27: tmp264 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp265 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp264), atslab_olevel) ; tmp267 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp264), atslab_outchan) ; tmp266 = outchan_get_filr_3 (tmp267) ; tmp268 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp264), atslab_nerror) ; tmp269 = atspre_add_int_int (tmp268, 1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp264), atslab_nerror) = tmp269 ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_FIXITY_EXN) { goto __ats_lab_26_0 ; } __ats_lab_25_1: /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("fixity-errors")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN) { goto __ats_lab_27_0 ; } __ats_lab_26_1: /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("trans1-errors")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS2_EXN) { goto __ats_lab_28_0 ; } __ats_lab_27_1: /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("trans2-errors")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS3_EXN) { goto __ats_lab_29_0 ; } __ats_lab_28_1: /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("trans3-errors")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg3 != &_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN) { goto __ats_lab_30_0 ; } __ats_lab_29_1: /* tmp261 = */ auxerr_28 (tmp265, tmp266, arg1, ATSstrcst("trans4-errors")) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: /* tmp261 = */ ats_raise_exn (arg3) ; break ; } while (0) ; return /* (tmp261) */ ; } /* end of [auxexn_27] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 33216(line=1591, offs=1) -- 33480(line=1614, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2: ATS_TRYWITH_TRY(tmp273) tmp271 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal (tmp271, arg1, arg2) ; /* tmp270 = tmp272 */ ; ATS_TRYWITH_WITH(tmp273) do { /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: /* tmp270 = */ auxexn_27 (arg0, arg1, arg2, tmp273) ; break ; } while (0) ; ATS_TRYWITH_END() ; return /* (tmp270) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 33728(line=1633, offs=1) -- 34392(line=1665, offs=2) */ ATSstaticdec() anairiats_rec_4 loop_31 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_4, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_int_type, tmp279) ; ATSlocal (ats_int_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; __ats_lab_loop_31: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp275 = loop2_32 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp276 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp277 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp278 = ats_ptrget_mac(ats_ptr_type, tmp276) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: tmp279 = ats_caselptrlab_mac(anairiats_sum_1, tmp278, atslab_0) ; if (tmp279 != 1) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp275 = loop2_32 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: tmp280 = ats_caselptrlab_mac(anairiats_sum_1, tmp278, atslab_0) ; if (tmp280 != 2) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp275 = loop2_32 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // __ats_lab_36_1: tmp281 = ats_caselptrlab_mac(anairiats_sum_1, tmp278, atslab_1) ; tmp282 = ats_ptrget_mac(ats_ptr_type, tmp277) ; ATS_FREE(arg1) ; tmp283 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp283, atslab_0, tmp281) ; ats_selptrset_mac(anairiats_sum_5, tmp283, atslab_1, arg2) ; arg0 = arg0 ; arg1 = tmp282 ; arg2 = tmp283 ; goto __ats_lab_loop_31 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp275) ; } /* end of [loop_31] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_35 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab_revapp_35: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp289 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp290 = ats_ptrget_mac(ats_ptr_type, tmp289) ; ats_ptrget_mac(ats_ptr_type, tmp289) = arg1 ; tmp291 = arg0 ; arg0 = tmp290 ; arg1 = tmp291 ; goto __ats_lab_revapp_35 ; // tail call break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp288 = arg1 ; break ; } while (0) ; return (tmp288) ; } /* end of [revapp_35] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp287) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp287 = revapp_35 (arg0, arg1) ; return (tmp287) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp292) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp292 = (ats_sum_ptr_type)0 ; tmp286 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp292) ; return (tmp286) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_37 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; __ats_lab_loop_37: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp297 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp297 ; goto __ats_lab_loop_37 ; // tail call break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: break ; } while (0) ; return /* (tmp296) */ ; } /* end of [loop_37] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp295) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp295 = */ loop_37 (arg0) ; return /* (tmp295) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 34420(line=1668, offs=1) -- 34780(line=1687, offs=4) */ ATSstaticdec() anairiats_rec_4 loop2_32 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_4, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp293) ; // ATSlocal_void (tmp294) ; __ats_lab_loop2_32: tmp285 = list_vt_reverse_01506_ats_ptr_type (arg2) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givenames_toplocal2 (1, ats_castfn_mac(ats_ptr_type, tmp285), &ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_infil)) ; /* tmp294 = */ list_vt_free_01499_ats_ptr_type (tmp285) ; tmp284.atslab_0 = arg1 ; tmp284.atslab_1 = tmp293 ; return (tmp284) ; } /* end of [loop2_32] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 33556(line=1621, offs=1) -- 35114(line=1712, offs=4) */ ATSstaticdec() anairiats_rec_4 parse_from_given_arglst_toplevel_30 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_4, tmp274) ; ATSlocal (ats_int_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_bool_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; __ats_lab_parse_from_given_arglst_toplevel_30: tmp299 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_waitknd) ; tmp298 = waitknd_get_stadyn_2 (tmp299) ; tmp300 = atspre_lte_int_int (tmp298, 1) ; if (tmp300) { tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_givename_toplevel (tmp298, arg1, &ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_infil)) ; tmp274.atslab_0 = arg2 ; tmp274.atslab_1 = tmp301 ; } else { tmp303 = (ats_sum_ptr_type)0 ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp302, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp302, atslab_1, tmp303) ; tmp274 = loop_31 (arg0, arg2, tmp302) ; } /* end of [if] */ return (tmp274) ; } /* end of [parse_from_given_arglst_toplevel_30] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 35185(line=1717, offs=1) -- 36107(line=1775, offs=4) */ ATSstaticdec() ats_void_type process_nil_38 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp304) ; ATSlocal (ats_int_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_bool_type, tmp307) ; // ATSlocal_void (tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; // ATSlocal_void (tmp310) ; ATSlocal (ats_bool_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_bool_type, tmp313) ; ATSlocal (ats_bool_type, tmp314) ; ATSlocal (ats_int_type, tmp315) ; ATSlocal (ats_bool_type, tmp316) ; ATSlocal (ats_int_type, tmp317) ; // ATSlocal_void (tmp320) ; // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; __ats_lab_process_nil_38: tmp306 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_waitknd) ; tmp305 = waitknd_get_stadyn_2 (tmp306) ; tmp307 = atspre_gte_int_int (tmp305, 0) ; if (tmp307) { ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_infil) = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_stdin ; tmp309 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_ATSHOME) ; /* tmp308 = */ libatsopt_the_prelude_load_if (tmp309, &ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_preludeflag)) ; tmp311 = atspre_gte_int_int (tmp305, 1) ; if (tmp311) { /* tmp310 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set (1) ; } else { /* empty */ } /* end of [if] */ tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_stdin_toplevel (tmp305) ; /* ats_bool_type tmp313 ; */ tmp313 = ats_true_bool ; tmp315 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_depgen) ; tmp314 = atspre_gt_int_int (tmp315, 0) ; tmp317 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_taggen) ; tmp316 = atspre_gt_int_int (tmp317, 0) ; if (tmp314) { tmp313 = ats_false_bool ; } else { /* empty */ } /* end of [if] */ if (tmp316) { tmp313 = ats_false_bool ; } else { /* empty */ } /* end of [if] */ if (tmp314) { /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen (arg0, ATSstrcst("__STDIN__"), tmp312) ; } else { /* empty */ } /* end of [if] */ if (tmp316) { /* tmp321 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen (arg0, ATSstrcst("__STDIN__"), tmp312) ; } else { /* empty */ } /* end of [if] */ if (tmp313) { /* tmp322 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppush (_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_stdin) ; } else { /* empty */ } /* end of [if] */ if (tmp313) { /* tmp304 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2 (arg0, ATSstrcst("__STDIN__"), tmp312) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp304) */ ; } /* end of [process_nil_38] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 36158(line=1780, offs=1) -- 36471(line=1803, offs=4) */ ATSstaticdec() ats_void_type process_cmdline_39 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp421) ; /* tmp421 = */ process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (0, arg0, arg1) ; return /* (tmp421) */ ; } /* end of [process_cmdline_39] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 36526(line=1808, offs=1) -- 39557(line=1947, offs=4) */ ATSstaticdec() ats_void_type process_cmdline2_40 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp422) ; /* tmp422 = */ process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (1, arg0, arg1, arg2) ; return /* (tmp422) */ ; } /* end of [process_cmdline2_40] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 39613(line=1952, offs=1) -- 41321(line=2035, offs=4) */ ATSstaticdec() ats_void_type process_cmdline2_comarg1_41 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp423) ; /* tmp423 = */ process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (2, arg0, arg1, arg2) ; return /* (tmp423) */ ; } /* end of [process_cmdline2_comarg1_41] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 41385(line=2040, offs=1) -- 43436(line=2128, offs=4) */ ATSstaticdec() ats_void_type process_cmdline2_comarg2_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp424) ; /* tmp424 = */ process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (3, arg0, arg1, arg2) ; return /* (tmp424) */ ; } /* end of [process_cmdline2_comarg2_42] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 36158(line=1780, offs=1) -- 43436(line=2128, offs=4) */ ATSstaticdec() ats_void_type process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42 (ats_int_type arg0, ...) { /* local vardec */ ATSlocal (ats_ref_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ref_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ref_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ref_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; // ATSlocal_void (tmp334) ; ATSlocal (ats_bool_type, tmp335) ; ATSlocal (ats_int_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; // ATSlocal_void (tmp339) ; ATSlocal (ats_bool_type, tmp340) ; ATSlocal (ats_int_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_int_type, tmp343) ; ATSlocal (ats_int_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_bool_type, tmp346) ; ATSlocal (ats_int_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_bool_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_int_type, tmp351) ; // ATSlocal_void (tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_int_type, tmp354) ; // ATSlocal_void (tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; // ATSlocal_void (tmp357) ; ATSlocal (ats_bool_type, tmp358) ; ATSlocal (ats_bool_type, tmp359) ; ATSlocal (ats_bool_type, tmp360) ; ATSlocal (ats_int_type, tmp361) ; ATSlocal (ats_bool_type, tmp363) ; ATSlocal (ats_int_type, tmp364) ; ATSlocal (anairiats_rec_4, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; // ATSlocal_void (tmp369) ; // ATSlocal_void (tmp370) ; // ATSlocal_void (tmp371) ; ATSlocal (ats_bool_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; // ATSlocal_void (tmp377) ; ATSlocal (ats_bool_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; // ATSlocal_void (tmp381) ; ATSlocal (ats_bool_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; // ATSlocal_void (tmp385) ; ATSlocal (ats_int_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_int_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; // ATSlocal_void (tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; // ATSlocal_void (tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; // ATSlocal_void (tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_bool_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_bool_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_bool_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_bool_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; // ATSlocal_void (tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; // ATSlocal_void (tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; va_list funarg ; switch (arg0) { case 0: va_start(funarg, arg0) ; tmp323 = va_arg(funarg, ats_ref_type) ; tmp324 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_process_cmdline_39 ; case 1: va_start(funarg, arg0) ; tmp325 = va_arg(funarg, ats_ref_type) ; tmp326 = va_arg(funarg, ats_ptr_type) ; tmp327 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_process_cmdline2_40 ; case 2: va_start(funarg, arg0) ; tmp328 = va_arg(funarg, ats_ref_type) ; tmp329 = va_arg(funarg, ats_ptr_type) ; tmp330 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_process_cmdline2_comarg1_41 ; case 3: va_start(funarg, arg0) ; tmp331 = va_arg(funarg, ats_ref_type) ; tmp332 = va_arg(funarg, ats_ptr_type) ; tmp333 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_process_cmdline2_comarg2_42 ; default: exit(1) ; /* deadcode */ } /* end of switch */ ATSlocal (va_list, arg1) ; va_start(arg1, arg0) ; __ats_lab_process_cmdline_39: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (tmp324 != (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp336 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp323), atslab_ninpfile) ; tmp335 = atspre_eq_int_int (tmp336, 0) ; if (tmp335) { /* tmp334 = */ process_nil_38 (tmp323) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (tmp324 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_5, tmp324, atslab_0) ; tmp338 = ats_caselptrlab_mac(anairiats_sum_5, tmp324, atslab_1) ; ATS_FREE(tmp324) ; tmp325 = tmp323 ; tmp326 = tmp337 ; tmp327 = tmp338 ; goto __ats_lab_process_cmdline2_40 ; // tail call break ; } while (0) ; return /* tmp334 */ ; __ats_lab_process_cmdline2_40: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp340 = isinpwait_7 (ats_ptrget_mac(anairiats_rec_3, tmp325)) ; if (!tmp340) { goto __ats_lab_48_1 ; } tmp342 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) ; tmp341 = waitknd_get_stadyn_2 (tmp342) ; tmp343 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_ninpfile) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: tmp344 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_0) ; if (tmp344 != 1) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp345 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; tmp346 = atspre_gt_int_int (tmp343, 0) ; if (!tmp346) { goto __ats_lab_46_0 ; } tmp328 = tmp325 ; tmp329 = tmp327 ; tmp330 = tmp345 ; goto __ats_lab_process_cmdline2_comarg1_41 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: tmp347 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_0) ; if (tmp347 != 2) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp348 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; tmp349 = atspre_gt_int_int (tmp343, 0) ; if (!tmp349) { goto __ats_lab_46_0 ; } tmp331 = tmp325 ; tmp332 = tmp327 ; tmp333 = tmp348 ; goto __ats_lab_process_cmdline2_comarg2_42 ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: tmp350 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; if (__strcmpats(tmp350, ATSstrcst("-"))) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp351 = atspre_add_int_int (tmp343, 1) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_ninpfile) = tmp351 ; /* tmp352 = */ process_nil_38 (tmp325) ; tmp323 = tmp325 ; tmp324 = tmp327 ; goto __ats_lab_process_cmdline_39 ; // tail call break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // __ats_lab_47_1: tmp353 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; tmp354 = atspre_add_int_int (tmp343, 1) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_ninpfile) = tmp354 ; tmp356 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_ATSHOME) ; /* tmp355 = */ libatsopt_the_prelude_load_if (tmp356, &ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_preludeflag)) ; tmp358 = atspre_gte_int_int (tmp341, 1) ; if (tmp358) { /* tmp357 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set (1) ; } else { /* empty */ } /* end of [if] */ /* ats_bool_type tmp359 ; */ tmp359 = ats_true_bool ; tmp361 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_depgen) ; tmp360 = atspre_gt_int_int (tmp361, 0) ; if (tmp360) { tmp359 = ats_false_bool ; } else { /* empty */ } /* end of [if] */ tmp364 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_taggen) ; tmp363 = atspre_gt_int_int (tmp364, 0) ; if (tmp363) { tmp359 = ats_false_bool ; } else { /* empty */ } /* end of [if] */ tmp366 = parse_from_given_arglst_toplevel_30 (tmp325, tmp353, tmp327) ; tmp367 = ats_select_mac(tmp366, atslab_0) ; tmp368 = ats_select_mac(tmp366, atslab_1) ; if (tmp360) { /* tmp369 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_depgen (tmp325, tmp353, tmp368) ; } else { /* empty */ } /* end of [if] */ if (tmp363) { /* tmp370 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_taggen (tmp325, tmp353, tmp368) ; } else { /* empty */ } /* end of [if] */ if (tmp359) { /* tmp371 = */ _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__do_transfinal2 (tmp325, tmp353, tmp368) ; } else { /* empty */ } /* end of [if] */ tmp323 = tmp325 ; tmp324 = tmp367 ; goto __ats_lab_process_cmdline_39 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: __ats_lab_48_1: tmp372 = isoutwait_8 (ats_ptrget_mac(anairiats_rec_3, tmp325)) ; if (!tmp372) { goto __ats_lab_49_1 ; } tmp373 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) = tmp373 ; tmp374 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; /* tmp375 = */ theOutFilename_set_12 (ats_castfn_mac(ats_ptr_type, tmp374)) ; tmp376 = outchan_make_path_5 (tmp325, tmp374) ; /* tmp377 = */ cmdstate_set_outchan_6 (tmp325, tmp376) ; tmp323 = tmp325 ; tmp324 = tmp327 ; goto __ats_lab_process_cmdline_39 ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: __ats_lab_49_1: tmp378 = isdatswait_9 (ats_ptrget_mac(anairiats_rec_3, tmp325)) ; if (!tmp378) { goto __ats_lab_50_1 ; } tmp379 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) = tmp379 ; tmp380 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_DATS_def (tmp380) ; tmp323 = tmp325 ; tmp324 = tmp327 ; goto __ats_lab_process_cmdline_39 ; // tail call break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: __ats_lab_50_1: tmp382 = isiatswait_10 (ats_ptrget_mac(anairiats_rec_3, tmp325)) ; if (!tmp382) { goto __ats_lab_51_0 ; } tmp383 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) = tmp383 ; tmp384 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; /* tmp385 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_IATS_dir (tmp384) ; tmp323 = tmp325 ; tmp324 = tmp327 ; goto __ats_lab_process_cmdline_39 ; // tail call break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: tmp386 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_0) ; if (tmp386 != 1) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp387 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; tmp328 = tmp325 ; tmp329 = tmp327 ; tmp330 = tmp387 ; goto __ats_lab_process_cmdline2_comarg1_41 ; // tail call break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: tmp388 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_0) ; if (tmp388 != 2) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp389 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; tmp331 = tmp325 ; tmp332 = tmp327 ; tmp333 = tmp389 ; goto __ats_lab_process_cmdline2_comarg2_42 ; // tail call break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // __ats_lab_53_1: tmp390 = ats_caselptrlab_mac(anairiats_sum_1, tmp326, atslab_1) ; /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning (tmp390) ; tmp392 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp325), atslab_waitknd) = tmp392 ; tmp323 = tmp325 ; tmp324 = tmp327 ; goto __ats_lab_process_cmdline_39 ; // tail call break ; } while (0) ; return /* tmp339 */ ; __ats_lab_process_cmdline2_comarg1_41: tmp394 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp394 ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (__strcmpats(tmp330, ATSstrcst("-o"))) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp396 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp396 ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (__strcmpats(tmp330, ATSstrcst("-s"))) { goto __ats_lab_56_0 ; } __ats_lab_55_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_ninpfile) = 0 ; tmp397 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp397 ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (__strcmpats(tmp330, ATSstrcst("-d"))) { goto __ats_lab_57_0 ; } __ats_lab_56_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_ninpfile) = 0 ; tmp398 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp398 ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (__strcmpats(tmp330, ATSstrcst("-dd"))) { goto __ats_lab_58_0 ; } __ats_lab_57_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_ninpfile) = 0 ; tmp399 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp399 ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (__strcmpats(tmp330, ATSstrcst("-cc"))) { goto __ats_lab_59_0 ; } __ats_lab_58_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_typecheckflag) = 0 ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (__strcmpats(tmp330, ATSstrcst("-tc"))) { goto __ats_lab_60_0 ; } __ats_lab_59_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_typecheckflag) = 1 ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (__strcmpats(tmp330, ATSstrcst("-dep"))) { goto __ats_lab_61_0 ; } __ats_lab_60_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_depgen) = 1 ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (__strcmpats(tmp330, ATSstrcst("-tag"))) { goto __ats_lab_62_0 ; } __ats_lab_61_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_taggen) = 1 ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_DATS_flag (tmp330) ; if (!tmp400) { goto __ats_lab_63_1 ; } tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__DATS_extract (tmp330) ; tmp402 = atspre_stropt_is_some (tmp401) ; if (tmp402) { /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_DATS_def (ats_castfn_mac(ats_ptr_type, tmp401)) ; } else { tmp403 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKdefine_5) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp403 ; } /* end of [if] */ break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp404 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__is_IATS_flag (tmp330) ; if (!tmp404) { goto __ats_lab_64_0 ; } tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__IATS_extract (tmp330) ; tmp406 = atspre_stropt_is_some (tmp405) ; if (tmp406) { /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_IATS_dir (ats_castfn_mac(ats_ptr_type, tmp405)) ; } else { tmp407 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinclude_6) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_waitknd) = tmp407 ; } /* end of [if] */ break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (__strcmpats(tmp330, ATSstrcst("-h"))) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp408 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp328), atslab_comarg0) ; /* tmp395 = */ patsopt_usage_0 (stdout, tmp408) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (__strcmpats(tmp330, ATSstrcst("-v"))) { goto __ats_lab_66_0 ; } __ats_lab_65_1: /* tmp395 = */ libatsopt_patsopt_version (stdout) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning (tmp330) ; break ; } while (0) ; tmp323 = tmp328 ; tmp324 = tmp329 ; goto __ats_lab_process_cmdline_39 ; // tail call return /* tmp393 */ ; __ats_lab_process_cmdline2_comarg2_42: tmp410 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp410 ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (__strcmpats(tmp333, ATSstrcst("--help"))) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp412 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_comarg0) ; /* tmp411 = */ patsopt_usage_0 (stdout, tmp412) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (__strcmpats(tmp333, ATSstrcst("--output"))) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp413 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp413 ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (__strcmpats(tmp333, ATSstrcst("--output-w"))) { goto __ats_lab_70_0 ; } __ats_lab_69_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_outmode) = "w" ; tmp414 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp414 ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (__strcmpats(tmp333, ATSstrcst("--output-a"))) { goto __ats_lab_71_0 ; } __ats_lab_70_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_outmode) = "a" ; tmp415 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp415 ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (__strcmpats(tmp333, ATSstrcst("--static"))) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp416 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp416 ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (__strcmpats(tmp333, ATSstrcst("--dynamic"))) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp417 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp417 ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (__strcmpats(tmp333, ATSstrcst("--dynamics"))) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp418 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_waitknd) = tmp418 ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (__strcmpats(tmp333, ATSstrcst("--compile"))) { goto __ats_lab_75_0 ; } __ats_lab_74_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_typecheckflag) = 0 ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (__strcmpats(tmp333, ATSstrcst("--typecheck"))) { goto __ats_lab_76_0 ; } __ats_lab_75_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_typecheckflag) = 1 ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (__strcmpats(tmp333, ATSstrcst("--gline"))) { goto __ats_lab_77_0 ; } __ats_lab_76_1: /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_set (1) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (__strcmpats(tmp333, ATSstrcst("--debug"))) { goto __ats_lab_78_0 ; } __ats_lab_77_1: /* tmp411 = */ patsopt_debug_flag_set (1) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (__strcmpats(tmp333, ATSstrcst("--debug2"))) { goto __ats_lab_79_0 ; } __ats_lab_78_1: /* tmp419 = */ patsopt_debug_flag_set (1) ; /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_set (1) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (__strcmpats(tmp333, ATSstrcst("--depgen"))) { goto __ats_lab_80_0 ; } __ats_lab_79_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_depgen) = 1 ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (__strcmpats(tmp333, ATSstrcst("--taggen"))) { goto __ats_lab_81_0 ; } __ats_lab_80_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_taggen) = 1 ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (__strcmpats(tmp333, ATSstrcst("--atsreloc"))) { goto __ats_lab_82_0 ; } __ats_lab_81_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_atsreloc) = 1 ; /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set (1) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (__strcmpats(tmp333, ATSstrcst("--codegen-2"))) { goto __ats_lab_83_0 ; } __ats_lab_82_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_codegenflag) = 2 ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (__strcmpats(tmp333, ATSstrcst("--jsonize-2"))) { goto __ats_lab_84_0 ; } __ats_lab_83_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_jsonizeflag) = 2 ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (__strcmpats(tmp333, ATSstrcst("--tlcalopt-disable"))) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set (0) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (__strcmpats(tmp333, ATSstrcst("--constraint-export"))) { goto __ats_lab_86_0 ; } __ats_lab_85_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_cnstrsolveflag) = 1 ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (__strcmpats(tmp333, ATSstrcst("--constraint-ignore"))) { goto __ats_lab_87_0 ; } __ats_lab_86_1: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, tmp331), atslab_cnstrsolveflag) = -1 ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (__strcmpats(tmp333, ATSstrcst("--version"))) { goto __ats_lab_88_0 ; } __ats_lab_87_1: /* tmp411 = */ libatsopt_patsopt_version (stdout) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarg_warning (tmp333) ; break ; } while (0) ; tmp323 = tmp331 ; tmp324 = tmp332 ; goto __ats_lab_process_cmdline_39 ; // tail call return /* tmp409 */ ; return /* (tmp420) */ ; } /* end of [process_cmdline_39_0process_cmdline2_40_0process_cmdline2_comarg1_41_0process_cmdline2_comarg2_42] */ /* // /tmp/ATS-Postiats/src/pats_main.dats: 43661(line=2144, offs=3) -- 45909(line=2277, offs=2) */ ATSglobaldec() ats_void_type libatsopt_patsopt_main (ats_int_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp425) ; // ATSlocal_void (tmp426) ; // ATSlocal_void (tmp427) ; // ATSlocal_void (tmp428) ; // ATSlocal_void (tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_bool_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; // ATSlocal_void (tmp433) ; // ATSlocal_void (tmp434) ; // ATSlocal_void (tmp435) ; // ATSlocal_void (tmp436) ; // ATSlocal_void (tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (anairiats_rec_3, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; // ATSlocal_void (tmp444) ; // ATSlocal_void (tmp445) ; ATSlocal (ats_bool_type, tmp446) ; ATSlocal (ats_int_type, tmp447) ; __ats_lab_libatsopt_patsopt_main: /* tmp426 = */ patsopt_PATSHOME_set () ; /* tmp427 = */ patsopt_PATSCONTRIB_set () ; /* tmp428 = */ patsopt_PATSRELOCROOT_set () ; /* tmp429 = */ patsopt_PATSHOMELOCS_set () ; tmp430 = patsopt_PATSHOME_get () ; tmp431 = atspre_stropt_is_some (tmp430) ; if (tmp431) { tmp432 = ats_castfn_mac(ats_ptr_type, tmp430) ; } else { /* tmp433 = */ atspre_prerr_string (ATSstrcst("The environment variable PATSHOME is undefined!")) ; /* tmp434 = */ atspre_prerr_newline () ; /* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; } /* end of [if] */ /* tmp435 = */ libatsopt_the_prepathlst_push (tmp432) ; /* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_initialize () ; /* tmp437 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_initialize () ; tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__comarglst_parse (arg0, arg1) ; // if (tmp438 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp439 = ats_caselptrlab_mac(anairiats_sum_5, tmp438, atslab_0) ; tmp440 = ats_caselptrlab_mac(anairiats_sum_5, tmp438, atslab_1) ; ATS_FREE(tmp438) ; /* anairiats_rec_3 tmp441 ; */ tmp442 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0) ; tmp443 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp443)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp443, atslab_0, stdout) ; tmp441.atslab_comarg0 = tmp439 ; tmp441.atslab_ATSHOME = tmp432 ; tmp441.atslab_waitknd = tmp442 ; tmp441.atslab_ninpfile = 0 ; tmp441.atslab_preludeflag = 0 ; tmp441.atslab_infil = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; tmp441.atslab_outmode = "w" ; tmp441.atslab_outchan = tmp443 ; tmp441.atslab_depgen = 0 ; tmp441.atslab_taggen = 0 ; tmp441.atslab_atsreloc = 0 ; tmp441.atslab_codegenflag = 0 ; tmp441.atslab_jsonizeflag = 0 ; tmp441.atslab_typecheckflag = 0 ; tmp441.atslab_cnstrsolveflag = 0 ; tmp441.atslab_olevel = 0 ; tmp441.atslab_nerror = 0 ; /* tmp444 = */ _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__process_PATSRELOCROOT () ; /* tmp445 = */ process_cmdline_39 ((&tmp441), tmp440) ; tmp447 = ats_select_mac(tmp441, atslab_nerror) ; tmp446 = atspre_gt_int_int (tmp447, 0) ; if (tmp446) { /* tmp425 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; } else { /* empty */ } /* end of [if] */ return /* (tmp425) */ ; } /* end of [libatsopt_patsopt_main] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload (void) ; // 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_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKnone_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKoutput_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_sta_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinput_dyn_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinputs_dyn_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKdefine_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__WTKinclude_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANref_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__OUTCHANptr_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__dynload (void) ; ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__dynload_flag = 0 ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__dynload (void) ; // dynload flag declaration // extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__dynload () { // _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp90, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_comarg_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_prec_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_fxty_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_base_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_sort_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_staexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_p0at_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_dynexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_decl_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_error_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_sort_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_pprint_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_hole_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_dcon_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util3_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dcst_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_error_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_dynexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_decl_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_error_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_scst_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lamlp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_pfman_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_p2at_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_syncst_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_appsym_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_ptrof_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_deref_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_mapgen_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_util_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmplab_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funlab_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_dynexp_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_claulst_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_lazyeval_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_environ_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_template_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit2_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_emit3_2edats__dynload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_main_2edats__dynload () ; /* ats_ptr_type statmp90 ; */ statmp90 = atspre_stropt_none ; /* statmp91 = */ atspre_vbox_make_view_ptr ((&statmp90)) ; /* statmp92 = ats_selsin_mac(statmp91, atslab_1) */ ; return ; } /* end of [dynload function] */ ats_void_type libatsopt_dynloadall () { _2tmp_2ATS_2dPostiats_2src_2pats_main_2edats__dynload () ; return ; } /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_main_none_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_symenv_sats.c0000644000175000017500000000242113431250607022064 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_symenv_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_skexp_dats.c0000644000175000017500000025021613431250607023333 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_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_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SKLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEcst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEvar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEextype_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEextkind_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEfun_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEapp_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEtyarr_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEtyrec_8) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__S2KEXPISMATexn) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2kexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_pop) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_push) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_free) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_find) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplst_ismat_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplstlst_ismat_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__labs2kexplst_ismat_exn) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__sasp__env = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__S2KEXPISMATexn) ; /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_2 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_2_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_12 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type loop1_14 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type loop1_14_closure_make (ats_ptr_type env0) ; static ats_bool_type loop1_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type loop2_15 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type loop2_15_closure_make (ats_ptr_type env0) ; static ats_bool_type loop2_15_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_s2exp_16 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_arglst_17 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_arglstlst_18 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2explst_19 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_labs2explst_20 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type abort_22 () ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_2 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_bool_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_int_type, tmp41) ; __ats_lab_aux_2: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp37 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp39 = atspre_gt_int_int (arg1, 0) ; if (tmp39) { /* tmp38 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp40 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp36) ; tmp41 = atspre_add_int_int (arg1, 1) ; arg0 = tmp37 ; arg1 = tmp41 ; goto __ats_lab_aux_2 ; // tail call break ; } while (0) ; return /* (tmp35) */ ; } /* end of [aux_2] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_2_closure_type ; ats_void_type aux_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_2 (((aux_2_closure_type*)cloptr)->closure_env_0, ((aux_2_closure_type*)cloptr)->closure_env_1, ((aux_2_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_2_closure_init (aux_2_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_2_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_2_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_2_closure_type *p_clo = ATS_MALLOC(sizeof(aux_2_closure_type)) ; aux_2_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp34) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp34 = */ aux_2 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp34) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 1823(line=63, offs=3) -- 3236(line=127, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("S2KEany()")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("S2KEcst(")) ; /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (arg0, tmp1) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("S2KEvar(")) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp4) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("S2KEextype(")) ; /* tmp9 = */ atspre_fprint_string (arg0, tmp7) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst("S2KEextkind(")) ; /* tmp12 = */ atspre_fprint_string (arg0, tmp10) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp14 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("S2KEfun(")) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexplst (arg0, tmp13) ; /* tmp17 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp (arg0, tmp14) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp21 = */ atspre_fprint_string (arg0, ATSstrcst("S2KEapp(")) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp (arg0, tmp19) ; /* tmp23 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexplst (arg0, tmp20) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp26 = */ atspre_fprint_string (arg0, ATSstrcst("S2KEtyarr(")) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp (arg0, tmp25) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (((ats_sum_ptr_type)arg1)->tag != 8) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp29 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp30 = */ atspre_fprint_string (arg0, ATSstrcst("S2KEtyrec(")) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind (arg0, tmp28) ; /* tmp32 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp33 = */ fprintlst_01887_ats_ptr_type (arg0, tmp29, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2kexp) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 3291(line=130, offs=18) -- 3349(line=131, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexplst: /* tmp42 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp) ; return /* (tmp42) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexplst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 3409(line=136, offs=3) -- 3564(line=141, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2kexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2kexp: tmp44 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp45 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp44) ; /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp (arg0, tmp45) ; return /* (tmp43) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2kexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 3618(line=144, offs=14) -- 3653(line=144, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2kexp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2kexp: /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp (stdout, arg0) ; return /* (tmp48) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2kexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 3677(line=146, offs=14) -- 3712(line=146, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2kexp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2kexp: /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2kexp (stderr, arg0) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2kexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 4111(line=169, offs=24) -- 4130(line=169, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_make_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_make_nil: tmp50 = (ats_sum_ptr_type)0 ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_make_nil] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 4152(line=172, offs=9) -- 4227(line=175, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_pop (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_pop: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp52 ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: break ; } while (0) ; return /* (tmp51) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_pop] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 4275(line=179, offs=10) -- 4320(line=179, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_push (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_push: tmp54 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp54, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp54, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp54 ; return /* (tmp53) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_push] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_12 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab_loop_12: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp58 ; goto __ats_lab_loop_12 ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: break ; } while (0) ; return /* (tmp57) */ ; } /* end of [loop_12] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp56) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp56 = */ loop_12 (arg0) ; return /* (tmp56) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 4343(line=182, offs=10) -- 4368(line=182, offs=35) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_free: /* tmp55 = */ list_vt_free_01499_ats_ptr_type (arg0) ; return /* (tmp55) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_free] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 4414(line=186, offs=7) -- 4577(line=190, offs=27) */ ATSstaticdec() ats_bool_type loop1_14 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_bool_type, tmp63) ; __ats_lab_loop1_14: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp62 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (env0, tmp61) ; if (tmp63) { tmp60 = ats_true_bool ; } else { arg0 = tmp62 ; goto __ats_lab_loop1_14 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp60 = ats_false_bool ; break ; } while (0) ; return (tmp60) ; } /* end of [loop1_14] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop1_14_closure_type ; ats_bool_type loop1_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return loop1_14 (((loop1_14_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type loop1_14_closure_init (loop1_14_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop1_14_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop1_14_closure_make (ats_ptr_type env0) { loop1_14_closure_type *p_clo = ATS_MALLOC(sizeof(loop1_14_closure_type)) ; loop1_14_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 4604(line=192, offs=7) -- 4779(line=196, offs=27) */ ATSstaticdec() ats_bool_type loop2_15 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_bool_type, tmp67) ; __ats_lab_loop2_15: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp66 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp67 = loop1_14 (env0, tmp65) ; if (tmp67) { tmp64 = ats_true_bool ; } else { arg0 = tmp66 ; goto __ats_lab_loop2_15 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp64 = ats_false_bool ; break ; } while (0) ; return (tmp64) ; } /* end of [loop2_15] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop2_15_closure_type ; ats_bool_type loop2_15_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return loop2_15 (((loop2_15_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type loop2_15_closure_init (loop2_15_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop2_15_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop2_15_closure_make (ats_ptr_type env0) { loop2_15_closure_type *p_clo = ATS_MALLOC(sizeof(loop2_15_closure_type)) ; loop2_15_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 4392(line=185, offs=10) -- 4850(line=200, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_find (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_find: tmp59 = loop2_15 (arg1, ats_castfn_mac(ats_ptr_type, ats_ptrget_mac(ats_ptr_type, arg0))) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_find] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 4930(line=208, offs=5) -- 6631(line=283, offs=4) */ ATSstaticdec() ats_ptr_type aux_s2exp_16 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_bool_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; // ATSlocal_void (tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab_aux_s2exp_16: tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg1) ; tmp70 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp69), atslab_s2exp_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp70)->tag != 4) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_1, tmp70, atslab_0) ; tmp68 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp68)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp68, atslab_0, tmp71) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp70)->tag != 7) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_1, tmp70, atslab_0) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_find (arg0, tmp72) ; if (tmp73) { tmp68 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEany_0) ; } else { tmp68 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp68)->tag = 2 ; ats_selptrset_mac(anairiats_sum_1, tmp68, atslab_0, tmp72) ; } /* end of [if] */ break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp70)->tag != 8) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp68 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEany_0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp70)->tag != 5) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_2, tmp70, atslab_0) ; tmp75 = ats_caselptrlab_mac(anairiats_sum_2, tmp70, atslab_1) ; tmp76 = aux_arglstlst_18 (arg0, tmp75) ; tmp68 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp68)->tag = 3 ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_0, tmp74) ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_1, tmp76) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp70)->tag != 6) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_2, tmp70, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_2, tmp70, atslab_1) ; tmp79 = aux_arglstlst_18 (arg0, tmp78) ; tmp68 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp68)->tag = 4 ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_0, tmp77) ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_1, tmp79) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp70)->tag != 19) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_5, tmp70, atslab_4) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_5, tmp70, atslab_5) ; tmp82 = aux_s2explst_19 (arg0, tmp80) ; tmp83 = aux_s2exp_16 (arg0, tmp81) ; tmp68 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp68)->tag = 5 ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_0, tmp82) ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_1, tmp83) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp70)->tag != 17) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_2, tmp70, atslab_0) ; tmp85 = ats_caselptrlab_mac(anairiats_sum_2, tmp70, atslab_1) ; tmp86 = aux_s2exp_16 (arg0, tmp84) ; tmp87 = aux_arglst_17 (arg0, tmp85) ; tmp68 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp68)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_0, tmp86) ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_1, tmp87) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp70)->tag != 24) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_2, tmp70, atslab_0) ; tmp89 = aux_s2exp_16 (arg0, tmp88) ; tmp68 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp68)->tag = 7 ; ats_selptrset_mac(anairiats_sum_1, tmp68, atslab_0, tmp89) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp70)->tag != 25) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_6, tmp70, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_6, tmp70, atslab_2) ; tmp92 = aux_labs2explst_20 (arg0, tmp91) ; tmp68 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp68)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_0, tmp90) ; ats_selptrset_mac(anairiats_sum_2, tmp68, atslab_1, tmp92) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp70)->tag != 29) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_7, tmp70, atslab_1) ; arg0 = arg0 ; arg1 = tmp93 ; goto __ats_lab_aux_s2exp_16 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp70)->tag != 27) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_8, tmp70, atslab_0) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_8, tmp70, atslab_2) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_push (arg0, tmp94) ; tmp97 = aux_s2exp_16 (arg0, tmp95) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_pop (arg0) ; tmp68 = tmp97 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp70)->tag != 28) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_8, tmp70, atslab_0) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_8, tmp70, atslab_2) ; /* tmp101 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_push (arg0, tmp99) ; tmp102 = aux_s2exp_16 (arg0, tmp100) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_pop (arg0) ; tmp68 = tmp102 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp70)->tag != 31) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_2, tmp70, atslab_0) ; arg0 = arg0 ; arg1 = tmp104 ; goto __ats_lab_aux_s2exp_16 ; // tail call break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp68 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEany_0) ; break ; } while (0) ; return (tmp68) ; } /* end of [aux_s2exp_16] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 6659(line=285, offs=5) -- 7189(line=303, offs=31) */ ATSstaticdec() ats_ptr_type aux_arglst_17 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_bool_type, tmp109) ; ATSlocal (ats_bool_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab_aux_arglst_17: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp107 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp108 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp106), atslab_s2exp_srt) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind (tmp108) ; if (tmp109) { tmp110 = ats_true_bool ; } else { tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm (tmp108) ; } /* end of [if] */ if (tmp110) { tmp111 = aux_s2exp_16 (arg0, tmp106) ; tmp112 = aux_arglst_17 (arg0, tmp107) ; tmp105 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp105, atslab_0, tmp111) ; ats_selptrset_mac(anairiats_sum_3, tmp105, atslab_1, tmp112) ; } else { arg0 = arg0 ; arg1 = tmp107 ; goto __ats_lab_aux_arglst_17 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp105 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp105) ; } /* end of [aux_arglst_17] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 7218(line=306, offs=5) -- 7464(line=315, offs=31) */ ATSstaticdec() ats_ptr_type aux_arglstlst_18 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; __ats_lab_aux_arglstlst_18: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp115 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp116 = aux_arglst_17 (arg0, tmp114) ; tmp117 = aux_arglstlst_18 (arg0, tmp115) ; tmp113 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp113, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_3, tmp113, atslab_1, tmp117) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp113 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp113) ; } /* end of [aux_arglstlst_18] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 7496(line=318, offs=5) -- 7727(line=327, offs=31) */ ATSstaticdec() ats_ptr_type aux_s2explst_19 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_aux_s2explst_19: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp120 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp121 = aux_s2exp_16 (arg0, tmp119) ; tmp122 = aux_s2explst_19 (arg0, tmp120) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp118, atslab_0, tmp121) ; ats_selptrset_mac(anairiats_sum_3, tmp118, atslab_1, tmp122) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp118 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp118) ; } /* end of [aux_s2explst_19] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 7758(line=330, offs=5) -- 8163(line=345, offs=31) */ ATSstaticdec() ats_ptr_type aux_labs2explst_20 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab_aux_labs2explst_20: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_9, tmp124, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_9, tmp124, atslab_2) ; tmp128 = aux_s2exp_16 (arg0, tmp127) ; tmp129 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_0, tmp126) ; ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_1, tmp128) ; tmp130 = aux_labs2explst_20 (arg0, tmp125) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_0, tmp129) ; ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_1, tmp130) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp123 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp123) ; } /* end of [aux_labs2explst_20] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 8247(line=352, offs=3) -- 8591(line=368, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2kexp_make_s2exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; // ATSlocal_void (tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2kexp_make_s2exp: /* ats_ptr_type tmp132 ; */ tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_make_nil () ; tmp133 = aux_s2exp_16 ((&tmp132), arg0) ; /* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__env_free (tmp132) ; tmp131 = tmp133 ; return (tmp131) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2kexp_make_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 9205(line=401, offs=4) -- 9245(line=401, offs=44) */ ATSstaticdec() ats_void_type abort_22 () { /* local vardec */ // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; __ats_lab_abort_22: tmp136 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__S2KEXPISMATexn) ; /* tmp135 = */ ats_raise_exn (tmp136) ; return /* (tmp135) */ ; } /* end of [abort_22] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 9300(line=407, offs=3) -- 10692(line=462, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_bool_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_bool_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_bool_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; // ATSlocal_void (tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_bool_type, tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: __ats_lab_41_2: break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_43_0 ; } __ats_lab_42_2: break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_44_0 ; } __ats_lab_43_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_52_1 ; } __ats_lab_43_2: tmp138 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq (tmp138, tmp139) ; if (tmp140) { /* empty */ } else { /* tmp137 = */ abort_22 () ; } /* end of [if] */ break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_45_0 ; } __ats_lab_44_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_52_1 ; } __ats_lab_44_2: tmp141 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp141, tmp142) ; if (tmp143) { /* empty */ } else { /* tmp137 = */ abort_22 () ; } /* end of [if] */ break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_46_0 ; } __ats_lab_45_1: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_52_1 ; } __ats_lab_45_2: tmp144 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp146 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp147 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp148 = atspre_eq_string_string (tmp144, tmp146) ; if (tmp148) { /* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplstlst_ismat_exn (tmp145, tmp147) ; } else { /* tmp137 = */ abort_22 () ; } /* end of [if] */ break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_47_0 ; } __ats_lab_46_1: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_52_1 ; } __ats_lab_46_2: tmp149 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp150 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp151 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp152 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp153 = atspre_eq_string_string (tmp149, tmp151) ; if (tmp153) { /* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplstlst_ismat_exn (tmp150, tmp152) ; } else { /* tmp137 = */ abort_22 () ; } /* end of [if] */ break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_48_0 ; } __ats_lab_47_1: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_52_1 ; } __ats_lab_47_2: tmp154 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp155 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplst_ismat_exn (tmp156, tmp154) ; arg0 = tmp155 ; arg1 = tmp157 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_49_0 ; } __ats_lab_48_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_49_1 ; } __ats_lab_48_2: tmp159 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; arg0 = tmp159 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_50_0 ; } __ats_lab_49_1: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_52_1 ; } __ats_lab_49_2: tmp160 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp161 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp162 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp163 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn (tmp160, tmp162) ; /* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplst_ismat_exn (tmp161, tmp163) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_51_0 ; } __ats_lab_50_1: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_52_1 ; } __ats_lab_50_2: tmp165 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; arg0 = tmp165 ; arg1 = tmp166 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn ; // tail call break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_52_0 ; } __ats_lab_51_1: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_52_1 ; } __ats_lab_51_2: tmp167 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp168 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (tmp167, tmp169) ; if (tmp171) { /* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__labs2kexplst_ismat_exn (tmp168, tmp170) ; } else { /* tmp137 = */ abort_22 () ; } /* end of [if] */ break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: __ats_lab_52_2: /* tmp137 = */ abort_22 () ; break ; } while (0) ; return /* (tmp137) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 10755(line=466, offs=3) -- 11027(line=477, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplst_ismat_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; // ATSlocal_void (tmp177) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplst_ismat_exn: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_55_1 ; } __ats_lab_53_2: tmp173 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp176 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn (tmp173, tmp175) ; arg0 = tmp174 ; arg1 = tmp176 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplst_ismat_exn ; // tail call break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_55_1 ; } __ats_lab_54_2: break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: __ats_lab_55_1: __ats_lab_55_2: /* tmp172 = */ abort_22 () ; break ; } while (0) ; return /* (tmp172) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplst_ismat_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 11096(line=481, offs=3) -- 11386(line=492, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplstlst_ismat_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplstlst_ismat_exn: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_58_1 ; } __ats_lab_56_2: tmp179 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp180 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplst_ismat_exn (tmp179, tmp181) ; arg0 = tmp180 ; arg1 = tmp182 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplstlst_ismat_exn ; // tail call break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_58_1 ; } __ats_lab_57_2: break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: __ats_lab_58_2: /* tmp178 = */ abort_22 () ; break ; } while (0) ; return /* (tmp178) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplstlst_ismat_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 11458(line=496, offs=3) -- 11874(line=513, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__labs2kexplst_ismat_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_bool_type, tmp193) ; // ATSlocal_void (tmp194) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__labs2kexplst_ismat_exn: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_61_1 ; } __ats_lab_59_2: tmp185 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp186 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_3, tmp185, atslab_0) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_3, tmp185, atslab_1) ; tmp191 = ats_caselptrlab_mac(anairiats_sum_3, tmp187, atslab_0) ; tmp192 = ats_caselptrlab_mac(anairiats_sum_3, tmp187, atslab_1) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (tmp189, tmp191) ; if (tmp193) { /* tmp194 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn (tmp190, tmp192) ; arg0 = tmp186 ; arg1 = tmp188 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__labs2kexplst_ismat_exn ; // tail call } else { /* tmp184 = */ abort_22 () ; } /* end of [if] */ break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_61_1 ; } __ats_lab_60_2: break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: __ats_lab_61_1: __ats_lab_61_2: /* tmp184 = */ abort_22 () ; break ; } while (0) ; return /* (tmp184) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__labs2kexplst_ismat_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 12040(line=524, offs=3) -- 12142(line=527, offs=30) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2kexp_ismat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp195) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2kexp_ismat: ATS_TRYWITH_TRY(tmp197) /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexp_ismat_exn (arg0, arg1) ; tmp195 = ats_true_bool ; ATS_TRYWITH_WITH(tmp197) do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (tmp197 != &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__S2KEXPISMATexn) { ats_raise_exn (tmp197) ; } __ats_lab_62_1: tmp195 = ats_false_bool ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp195) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2kexp_ismat] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_skexp.dats: 12225(line=532, offs=3) -- 12334(line=535, offs=30) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2kexplst_ismat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp198) ; // ATSlocal_void (tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2kexplst_ismat: ATS_TRYWITH_TRY(tmp200) /* tmp199 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__s2kexplst_ismat_exn (arg0, arg1) ; tmp198 = ats_true_bool ; ATS_TRYWITH_WITH(tmp200) do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (tmp200 != &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__S2KEXPISMATexn) { ats_raise_exn (tmp200) ; } __ats_lab_63_1: tmp198 = ats_false_bool ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp198) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2kexplst_ismat] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__S2KEXPISMATexn.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__S2KEXPISMATexn.name = "_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__S2KEXPISMATexn" ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_skexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_skexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_typerase_decl_dats.c0000644000175000017500000031630713431250607023362 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d3ecl_loc ; ats_ptr_type atslab_d3ecl_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_i3mpdec_loc ; ats_ptr_type atslab_i3mpdec_cst ; ats_ptr_type atslab_i3mpdec_imparg ; ats_ptr_type atslab_i3mpdec_tmparg ; ats_ptr_type atslab_i3mpdec_def ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_12 ; typedef struct { anairiats_rec_12 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_f3undec_loc ; ats_ptr_type atslab_f3undec_var ; ats_ptr_type atslab_f3undec_def ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_v3aldec_loc ; ats_ptr_type atslab_v3aldec_pat ; ats_ptr_type atslab_v3aldec_def ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_v3ardec_loc ; ats_int_type atslab_v3ardec_knd ; ats_ptr_type atslab_v3ardec_dvar_var ; ats_ptr_type atslab_v3ardec_dvar_view ; ats_ptr_type atslab_v3ardec_type ; ats_ptr_type atslab_v3ardec_init ; ats_ptr_type atslab_v3ardec_dvaropt ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_hiimpdec_loc ; ats_int_type atslab_hiimpdec_knd ; ats_ptr_type atslab_hiimpdec_cst ; ats_ptr_type atslab_hiimpdec_imparg ; ats_ptr_type atslab_hiimpdec_tmparg ; ats_ptr_type atslab_hiimpdec_def ; ats_ptr_type atslab_hiimpdec_funlab ; ats_ptr_type atslab_hiimpdec_instrlst ; } anairiats_rec_18 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_dynexp3_2esats__D3Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Csaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Creassume_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextcode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cexndecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdatdecs_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdcstdecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cfundecs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_rec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvardecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cprvardecs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cinclude_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaload_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaloadloc_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdynload_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clocal_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDfundecs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDinclude_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlocal_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__T4E_d3exp_tyer_isprf_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_lte_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_proof) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind_is_proof) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_mhnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpcstimpmap) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpvardecmap) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundeclst_set_hideclopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivaldec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivardec_make) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiimpdec_make) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_is_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_saspdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_reassume) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extype) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extcode) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_exndecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_datdecs) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dcstdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_impdec) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_fundecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_vardecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_include) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staload) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staloadloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dynload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_local) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_insert) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_inserts) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_finalize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2cst_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3expopt_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__decarg2imparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3ecl_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_impdec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_fundecs) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs_rec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_vardecs) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpcstimpmap_make_hideclist) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpvardecmap_make_hideclist) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02085_ () ; static ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type revapp_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_error4_loc_02092_ (ats_ptr_type arg0) ; static ats_ptr_type f3undec_tyer_14 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type app_19 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type __ats_fun_22 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_22_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f3undeclst_tyer_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type v3aldec_tyer_24 (ats_ptr_type arg0) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type v3aldeclst_tyer_25 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type v3ardec_tyer_29 (ats_ptr_type arg0) ; static ats_void_type aux_32 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_33 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_35 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_36 (ats_ref_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 1728(line=56, offs=18) -- 1759(line=56, offs=49) */ ATSstaticdec() ats_void_type prerr_FILENAME_02085_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02085_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_typerase_decl")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02085_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2024(line=63, offs=10) -- 2250(line=73, offs=2) */ ATSstaticdec() ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp39) ; __ats_lab_ptr0_set_01760_ats_ptr_type: ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) = arg1 ; return /* (tmp39) */ ; } /* end of [ptr0_set_01760_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2472(line=83, offs=21) -- 2499(line=83, offs=48) */ ATSstaticdec() ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp38) ; __ats_lab_ptrset_01764_ats_ptr_type: /* tmp38 = */ ptr0_set_01760_ats_ptr_type (arg0, arg1) ; return /* (tmp38) */ ; } /* end of [ptrset_01764_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 2822(line=115, offs=3) -- 5884(line=239, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3ecl_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_int_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3ecl_tyer: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp3)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_none (tmp2) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp3)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer (tmp4) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_list (tmp2, tmp5) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp3)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_saspdec (tmp2, tmp6) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp3)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_reassume (tmp2, tmp7) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp3)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_3, tmp3, atslab_0) ; tmp9 = ats_caselptrlab_mac(anairiats_sum_3, tmp3, atslab_1) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp2, tmp9) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extype (tmp2, tmp8, tmp10) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp3)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_3, tmp3, atslab_0) ; tmp12 = ats_caselptrlab_mac(anairiats_sum_3, tmp3, atslab_1) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp12) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extvar (tmp2, tmp11, tmp13) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp3)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_0) ; tmp15 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_1) ; tmp16 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_2) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_extcode (tmp2, tmp14, tmp15, tmp16) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp3)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_exndecs (tmp2, tmp17) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp3)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_0) ; tmp19 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_1) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_datdecs (tmp2, tmp18, tmp19) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp3)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ; tmp21 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_2) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dcstdecs (tmp2, tmp20, tmp21) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp3)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_impdec (arg0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp3)->tag != 11) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_fundecs (arg0) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp3)->tag != 12) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs (arg0) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp3)->tag != 13) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs_rec (arg0) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp3)->tag != 14) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_vardecs (arg0) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp3)->tag != 15) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_none (tmp2) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp3)->tag != 16) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_1) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer (tmp23) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_include (tmp2, tmp22, tmp24) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp3)->tag != 17) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_0) ; tmp26 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_1) ; tmp27 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_2) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_3) ; tmp29 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_4) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt (tmp28) ; if (tmp30 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_decl.dats: 4330(line=182, offs=9) -- 4387(line=183, offs=44)") ; } tmp31 = ats_caselptrlab_mac(anairiats_sum_8, tmp30, atslab_0) ; tmp33 = atspre_eq_int_int (tmp29, 0) ; if (tmp33) { tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer (tmp31) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpcstimpmap_make_hideclist (tmp34) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpcstimpmap (tmp28) ; tmp40 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp40, atslab_0, tmp35) ; /* tmp37 = */ ptrset_01764_ats_ptr_type (tmp36, tmp40) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpvardecmap_make_hideclist (tmp34) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpvardecmap (tmp28) ; tmp43 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp43, atslab_0, tmp41) ; /* tmp32 = */ ptrset_01764_ats_ptr_type (tmp42, tmp43) ; } else { /* empty */ } /* end of [if] */ tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staload (tmp2, tmp25, tmp26, tmp27, tmp28, tmp29) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp3)->tag != 18) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_9, tmp3, atslab_0) ; tmp45 = ats_caselptrlab_mac(anairiats_sum_9, tmp3, atslab_1) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_9, tmp3, atslab_2) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt (tmp46) ; if (tmp47 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_decl.dats: 5261(line=213, offs=9) -- 5318(line=214, offs=44)") ; } tmp48 = ats_caselptrlab_mac(anairiats_sum_8, tmp47, atslab_0) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer (tmp48) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_staloadloc (tmp2, tmp44, tmp45, tmp49) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp3)->tag != 19) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_dynload (tmp2, tmp50) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (((ats_sum_ptr_type)tmp3)->tag != 20) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_3, tmp3, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_3, tmp3, atslab_1) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer (tmp51) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer (tmp52) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_local (tmp2, tmp53, tmp54) ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3ecl_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 6011(line=249, offs=5) -- 6356(line=266, offs=4) */ ATSstaticdec() ats_ptr_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_bool_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab_loop_5: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp58 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3ecl_tyer (tmp57) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_is_empty (tmp59) ; if (tmp60) { arg0 = tmp58 ; arg1 = arg1 ; goto __ats_lab_loop_5 ; // tail call } else { tmp61 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp61, atslab_0, tmp59) ; ats_selptrset_mac(anairiats_sum_10, tmp61, atslab_1, arg1) ; arg0 = tmp58 ; arg1 = tmp61 ; goto __ats_lab_loop_5 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp56 = arg1 ; break ; } while (0) ; return (tmp56) ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab_revapp_8: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp68 = &ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp69 = ats_ptrget_mac(ats_ptr_type, tmp68) ; ats_ptrget_mac(ats_ptr_type, tmp68) = arg1 ; tmp70 = arg0 ; arg0 = tmp69 ; arg1 = tmp70 ; goto __ats_lab_revapp_8 ; // tail call break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp67 = arg1 ; break ; } while (0) ; return (tmp67) ; } /* end of [revapp_8] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp66 = revapp_8 (arg0, arg1) ; return (tmp66) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp71) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp71 = (ats_sum_ptr_type)0 ; tmp65 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp71) ; return (tmp65) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 5956(line=245, offs=3) -- 6489(line=273, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer: tmp63 = (ats_sum_ptr_type)0 ; tmp62 = loop_5 (arg0, tmp63) ; tmp64 = list_vt_reverse_01506_ats_ptr_type (tmp62) ; tmp55 = ats_castfn_mac(ats_ptr_type, tmp64) ; return (tmp55) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 6570(line=279, offs=3) -- 6667(line=282, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer_errck (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer_errck: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer (arg0) ; /* tmp74 = */ _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_finalize () ; tmp72 = tmp73 ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer_errck] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 6752(line=288, offs=3) -- 7333(line=318, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_impdec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_impdec: tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_loc) ; tmp77 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_node) ; if (((ats_sum_ptr_type)tmp77)->tag != 10) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_decl.dats: 6798(line=291, offs=5) -- 6839(line=291, offs=46)") ; } tmp78 = ats_caselptrlab_mac(anairiats_sum_5, tmp77, atslab_0) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_5, tmp77, atslab_1) ; tmp80 = atspre_gte_int_int (tmp78, 0) ; if (tmp80) { tmp81 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp79), atslab_i3mpdec_loc) ; tmp82 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp79), atslab_i3mpdec_cst) ; tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp79), atslab_i3mpdec_imparg) ; tmp84 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp79), atslab_i3mpdec_tmparg) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_mhnfize (tmp84) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2cst_tyer (tmp82) ; tmp88 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp79), atslab_i3mpdec_def) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp88) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiimpdec_make (tmp81, tmp78, tmp86, tmp83, tmp85, tmp87) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_impdec (tmp76, tmp78, tmp89) ; } else { tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_none (tmp76) ; } /* end of [if] */ return (tmp75) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_impdec] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4) */ ATSstaticdec() ats_void_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab_loop_13: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp97 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp98 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp98, atslab_0, tmp96) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp98 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp99 = &ats_caselptrlab_mac(anairiats_sum_10, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp97 ; arg1 = arg1 ; arg2 = tmp99 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp95) */ ; } /* end of [loop_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4) */ ATSstaticdec() ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp100) ; __ats_lab_list_append_01312_ats_ptr_type: /* ats_ptr_type tmp94 ; */ /* tmp100 = */ loop_13 (arg0, arg1, (&tmp94)) ; tmp93 = tmp94 ; return (tmp93) ; } /* end of [list_append_01312_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 7410(line=323, offs=15) -- 7594(line=333, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__decarg2imparg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (anairiats_rec_12, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__decarg2imparg: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_25_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_1) ; tmp101 = ats_select_mac(tmp91, atslab_s2qua_svs) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__decarg2imparg (tmp92) ; tmp90 = list_append_01312_ats_ptr_type (tmp101, tmp102) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp90 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__decarg2imparg] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2458(line=94, offs=17) -- 2516(line=97, offs=2) */ ATSstaticdec() ats_void_type prerr_error4_loc_02092_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; __ats_lab_prerr_error4_loc_02092_: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp110 = */ atspre_prerr_string (ATSstrcst(": error(4)")) ; return /* (tmp110) */ ; } /* end of [prerr_error4_loc_02092_] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 7654(line=340, offs=1) -- 8242(line=375, offs=4) */ ATSstaticdec() ats_ptr_type f3undec_tyer_14 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_bool_type, tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab_f3undec_tyer_14: tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_f3undec_loc) ; tmp105 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_f3undec_var) ; tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_f3undec_def) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (tmp106) ; if (tmp107) { /* tmp109 = */ prerr_error4_loc_02092_ (tmp104) ; /* tmp112 = */ atspre_prerr_string (ATSstrcst(": [fun] should be replaced with [prfun].")) ; /* tmp113 = */ atspre_prerr_newline () ; tmp114 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp114)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_0, tmp106) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_add (tmp114) ; } else { /* empty */ } /* end of [if] */ tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer (tmp105) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp106) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundec_make (tmp104, tmp115, arg0, tmp116) ; return (tmp103) ; } /* end of [f3undec_tyer_14] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54647(line=1953, offs=6) -- 54699(line=1953, offs=58) */ ATSstaticdec() ats_ptr_type app_19 (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_app_19: tmp123 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp123) ; } /* end of [app_19] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab_loop_21: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp128 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp126, arg3) ; tmp129 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp129, atslab_0, tmp128) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp129 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp130 = &ats_caselptrlab_mac(anairiats_sum_10, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp127 ; arg1 = arg1 ; arg2 = tmp130 ; arg3 = arg3 ; goto __ats_lab_loop_21 ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp131 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp131 ; break ; } while (0) ; return /* (tmp125) */ ; } /* end of [loop_21] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp132) ; // ATSlocal_void (tmp133) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp132 ; */ /* tmp133 = */ loop_21 (arg0, arg1, (&tmp132), arg2) ; tmp124 = tmp132 ; return (tmp124) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54575(line=1951, offs=23) -- 54763(line=1956, offs=4) */ ATSstaticdec() ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type: tmp122 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_19, arg1) ; return (tmp122) ; } /* end of [list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54041(line=1936, offs=19) -- 54491(line=1948, offs=2) */ ATSstaticdec() ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_list_map_cloptr_01415_ats_ptr_type_ats_ptr_type: tmp121 = list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (arg0, arg1) ; return (tmp121) ; } /* end of [list_map_cloptr_01415_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 8561(line=392, offs=47) -- 8602(line=392, offs=88) */ ATSstaticdec() ats_ptr_type __ats_fun_22 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; __ats_lab___ats_fun_22: tmp135 = f3undec_tyer_14 (env0, arg0) ; return (tmp135) ; } /* end of [__ats_fun_22] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_22_closure_type ; ats_ptr_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_22 (((__ats_fun_22_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_22_closure_init (__ats_fun_22_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_22_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_22_closure_make (ats_ptr_type env0) { __ats_fun_22_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_22_closure_type)) ; __ats_fun_22_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 8273(line=378, offs=1) -- 8677(line=398, offs=4) */ ATSstaticdec() ats_ptr_type f3undeclst_tyer_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_bool_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab_f3undeclst_tyer_16: tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_proof (arg0) ; if (tmp118) { tmp117 = (ats_sum_ptr_type)0 ; } else { tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__decarg2imparg (arg1) ; /* ats_ptr_type tmp134 ; */ tmp134 = __ats_fun_22_closure_make (tmp119) ; tmp120 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (arg2, tmp134) ; ATS_FREE(tmp134) ; tmp117 = ats_castfn_mac(ats_ptr_type, tmp120) ; } /* end of [if] */ return (tmp117) ; } /* end of [f3undeclst_tyer_16] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 8762(line=404, offs=3) -- 9034(line=417, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_fundecs (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; // ATSlocal_void (tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_fundecs: tmp137 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_loc) ; tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_node) ; if (((ats_sum_ptr_type)tmp138)->tag != 11) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_decl.dats: 8820(line=409, offs=5) -- 8870(line=410, offs=40)") ; } tmp139 = ats_caselptrlab_mac(anairiats_sum_9, tmp138, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_9, tmp138, atslab_1) ; tmp141 = ats_caselptrlab_mac(anairiats_sum_9, tmp138, atslab_2) ; tmp142 = f3undeclst_tyer_16 (tmp139, tmp140, tmp141) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_fundecs (tmp137, tmp139, tmp140, tmp142) ; tmp145 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp145, atslab_0, tmp143) ; /* tmp144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hifundeclst_set_hideclopt (tmp142, tmp145) ; tmp136 = tmp143 ; return (tmp136) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_fundecs] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 9125(line=426, offs=1) -- 9667(line=461, offs=4) */ ATSstaticdec() ats_ptr_type v3aldec_tyer_24 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_bool_type, tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; __ats_lab_v3aldec_tyer_24: tmp147 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_v3aldec_loc) ; tmp149 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_v3aldec_pat) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer (tmp149) ; tmp150 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_v3aldec_def) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (tmp150) ; if (tmp151) { /* tmp153 = */ prerr_error4_loc_02092_ (tmp147) ; /* tmp154 = */ atspre_prerr_string (ATSstrcst(": [val] should be replaced with [prval].")) ; /* tmp155 = */ atspre_prerr_newline () ; tmp156 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp156)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp156, atslab_0, tmp150) ; /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_add (tmp156) ; } else { /* empty */ } /* end of [if] */ tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp150) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivaldec_make (tmp147, tmp148, tmp157) ; return (tmp146) ; } /* end of [v3aldec_tyer_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp161) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp161 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp161) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 9698(line=464, offs=1) -- 9972(line=479, offs=4) */ ATSstaticdec() ats_ptr_type v3aldeclst_tyer_25 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_bool_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; __ats_lab_v3aldeclst_tyer_25: tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind_is_proof (arg0) ; if (tmp159) { tmp158 = (ats_sum_ptr_type)0 ; } else { tmp160 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg1, &v3aldec_tyer_24) ; tmp158 = ats_castfn_mac(ats_ptr_type, tmp160) ; } /* end of [if] */ return (tmp158) ; } /* end of [v3aldeclst_tyer_25] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 10055(line=484, offs=20) -- 10225(line=492, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs: tmp163 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_loc) ; tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_node) ; if (((ats_sum_ptr_type)tmp164)->tag != 12) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_decl.dats: 10101(line=487, offs=5) -- 10141(line=487, offs=45)") ; } tmp165 = ats_caselptrlab_mac(anairiats_sum_3, tmp164, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_3, tmp164, atslab_1) ; tmp167 = v3aldeclst_tyer_25 (tmp165, tmp166) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs (tmp163, tmp165, tmp167) ; return (tmp162) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 10291(line=495, offs=24) -- 10469(line=503, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs_rec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs_rec: tmp169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_loc) ; tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_node) ; if (((ats_sum_ptr_type)tmp170)->tag != 13) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_decl.dats: 10337(line=498, offs=5) -- 10381(line=498, offs=49)") ; } tmp171 = ats_caselptrlab_mac(anairiats_sum_3, tmp170, atslab_0) ; tmp172 = ats_caselptrlab_mac(anairiats_sum_3, tmp170, atslab_1) ; tmp173 = v3aldeclst_tyer_25 (tmp171, tmp172) ; tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_valdecs_rec (tmp169, tmp171, tmp173) ; return (tmp168) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_valdecs_rec] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 10561(line=512, offs=1) -- 10937(line=532, offs=4) */ ATSstaticdec() ats_ptr_type v3ardec_tyer_29 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_int_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab_v3ardec_tyer_29: tmp175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_v3ardec_loc) ; tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_v3ardec_knd) ; tmp177 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_v3ardec_dvar_var) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer (tmp177) ; tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_v3ardec_dvar_view) ; tmp180 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_v3ardec_type) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp175, tmp180) ; tmp183 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_v3ardec_init) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3expopt_tyer (tmp183) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hivardec_make (tmp175, tmp176, tmp178, tmp179, tmp181, tmp182) ; return (tmp174) ; } /* end of [v3ardec_tyer_29] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 11017(line=537, offs=20) -- 11217(line=546, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_vardecs (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_vardecs: tmp185 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_loc) ; tmp186 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3ecl_node) ; if (((ats_sum_ptr_type)tmp186)->tag != 14) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_decl.dats: 11063(line=540, offs=5) -- 11098(line=540, offs=40)") ; } tmp187 = ats_caselptrlab_mac(anairiats_sum_2, tmp186, atslab_0) ; tmp188 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp187, &v3ardec_tyer_29) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidecl_vardecs (tmp185, ats_castfn_mac(ats_ptr_type, tmp188)) ; return (tmp184) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__d3ecl_tyer_vardecs] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 11350(line=555, offs=5) -- 11857(line=583, offs=4) */ ATSstaticdec() ats_void_type aux_32 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; // ATSlocal_void (tmp197) ; __ats_lab_aux_32: tmp191 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg1), atslab_hidecl_node) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp191)->tag != 10) { goto __ats_lab_34_0 ; } __ats_lab_31_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_5, tmp191, atslab_1) ; tmp193 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp192), atslab_hiimpdec_tmparg) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp193 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_insert (arg0, tmp192) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (tmp193 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: break ; } while (0) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp191)->tag != 15) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_5, tmp191, atslab_1) ; /* tmp190 = */ auxlst_33 (arg0, tmp194) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp191)->tag != 19) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp195 = ats_caselptrlab_mac(anairiats_sum_3, tmp191, atslab_0) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_3, tmp191, atslab_1) ; /* tmp197 = */ auxlst_33 (arg0, tmp195) ; /* tmp190 = */ auxlst_33 (arg0, tmp196) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: break ; } while (0) ; return /* (tmp190) */ ; } /* end of [aux_32] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 11884(line=585, offs=5) -- 12096(line=598, offs=4) */ ATSstaticdec() ats_void_type auxlst_33 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; // ATSlocal_void (tmp201) ; __ats_lab_auxlst_33: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; /* tmp201 = */ aux_32 (arg0, tmp199) ; arg0 = arg0 ; arg1 = tmp200 ; goto __ats_lab_auxlst_33 ; // tail call break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: break ; } while (0) ; return /* (tmp198) */ ; } /* end of [auxlst_33] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 11332(line=553, offs=29) -- 12206(line=606, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpcstimpmap_make_hideclist (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp202) ; // ATSlocal_void (tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpcstimpmap_make_hideclist: /* ats_ptr_type tmp202 ; */ tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstmap_nil () ; /* tmp203 = */ auxlst_33 ((&tmp202), arg0) ; tmp189 = tmp202 ; return (tmp189) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpcstimpmap_make_hideclist] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 12325(line=613, offs=5) -- 12804(line=640, offs=4) */ ATSstaticdec() ats_void_type aux_35 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; // ATSlocal_void (tmp212) ; __ats_lab_aux_35: tmp206 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg1), atslab_hidecl_node) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp206)->tag != 11) { goto __ats_lab_42_0 ; } __ats_lab_39_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_9, tmp206, atslab_1) ; tmp208 = ats_caselptrlab_mac(anairiats_sum_9, tmp206, atslab_2) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (tmp207 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_inserts (arg0, tmp208) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (tmp207 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: break ; } while (0) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp206)->tag != 15) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp209 = ats_caselptrlab_mac(anairiats_sum_5, tmp206, atslab_1) ; /* tmp205 = */ auxlst_36 (arg0, tmp209) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp206)->tag != 19) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_3, tmp206, atslab_0) ; tmp211 = ats_caselptrlab_mac(anairiats_sum_3, tmp206, atslab_1) ; /* tmp212 = */ auxlst_36 (arg0, tmp210) ; /* tmp205 = */ auxlst_36 (arg0, tmp211) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: break ; } while (0) ; return /* (tmp205) */ ; } /* end of [aux_35] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 12831(line=642, offs=5) -- 13043(line=655, offs=4) */ ATSstaticdec() ats_void_type auxlst_36 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; // ATSlocal_void (tmp216) ; __ats_lab_auxlst_36: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp215 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; /* tmp216 = */ aux_35 (arg0, tmp214) ; arg0 = arg0 ; arg1 = tmp215 ; goto __ats_lab_auxlst_36 ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: break ; } while (0) ; return /* (tmp213) */ ; } /* end of [auxlst_36] */ /* // /tmp/ATS-Postiats/src/pats_typerase_decl.dats: 12307(line=611, offs=29) -- 13153(line=663, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpvardecmap_make_hideclist (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp217) ; // ATSlocal_void (tmp218) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpvardecmap_make_hideclist: /* ats_ptr_type tmp217 ; */ tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil () ; /* tmp218 = */ auxlst_36 ((&tmp217), arg0) ; tmp204 = tmp217 ; return (tmp204) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__tmpvardecmap_make_hideclist] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_decl_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_typerase_decl_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_effect_dats.c0000644000175000017500000011104513431250607023253 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_e0fftag_loc ; ats_ptr_type atslab_e0fftag_node ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_rec_9 ; typedef struct { int tag ; ats_uint_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGcst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGvar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGprf_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGlin_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGfun_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGclo_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTset_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effset_effset) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add) (ats_uint_type, ats_int_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del) (ats_uint_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_01894_ () ; static ats_bool_type name_is_nil_1 (ats_ptr_type arg0) ; static ats_bool_type name_is_all_2 (ats_ptr_type arg0) ; static ats_bool_type name_is_ntm_3 (ats_ptr_type arg0) ; static ats_bool_type name_is_exn_4 (ats_ptr_type arg0) ; static ats_bool_type name_is_ref_5 (ats_ptr_type arg0) ; static ats_bool_type name_is_wrt_6 (ats_ptr_type arg0) ; static ats_bool_type name_is_exnref_7 (ats_ptr_type arg0) ; static ats_bool_type name_is_exnwrt_8 (ats_ptr_type arg0) ; static ats_bool_type name_is_exnrefwrt_9 (ats_ptr_type arg0) ; static ats_bool_type name_is_refwrt_10 (ats_ptr_type arg0) ; static ats_bool_type name_is_lazy_11 (ats_ptr_type arg0) ; static ats_void_type prerr_error1_loc_01897_ (ats_ptr_type arg0) ; static ats_void_type loop_err_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_14 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ptr_type arg5) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp18) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 1598(line=46, offs=28) -- 1629(line=46, offs=59) */ ATSstaticdec() ats_void_type prerr_FILENAME_01894_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_01894_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans1_staexp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_01894_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 1838(line=63, offs=4) -- 1916(line=64, offs=44) */ ATSstaticdec() ats_bool_type name_is_nil_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; __ats_lab_name_is_nil_1: tmp2 = atspre_eq_string_string (arg0, ATSstrcst("0")) ; if (tmp2) { tmp1 = ats_true_bool ; } else { tmp1 = atspre_eq_string_string (arg0, ATSstrcst("nil")) ; } /* end of [if] */ return (tmp1) ; } /* end of [name_is_nil_1] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 1920(line=65, offs=4) -- 1998(line=66, offs=44) */ ATSstaticdec() ats_bool_type name_is_all_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; __ats_lab_name_is_all_2: tmp4 = atspre_eq_string_string (arg0, ATSstrcst("1")) ; if (tmp4) { tmp3 = ats_true_bool ; } else { tmp3 = atspre_eq_string_string (arg0, ATSstrcst("all")) ; } /* end of [if] */ return (tmp3) ; } /* end of [name_is_all_2] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2003(line=68, offs=4) -- 2087(line=69, offs=50) */ ATSstaticdec() ats_bool_type name_is_ntm_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp5) ; ATSlocal (ats_bool_type, tmp6) ; __ats_lab_name_is_ntm_3: tmp6 = atspre_eq_string_string (arg0, ATSstrcst("ntm")) ; if (tmp6) { tmp5 = ats_true_bool ; } else { tmp5 = atspre_eq_string_string (arg0, ATSstrcst("nonterm")) ; } /* end of [if] */ return (tmp5) ; } /* end of [name_is_ntm_3] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2092(line=71, offs=4) -- 2178(line=72, offs=52) */ ATSstaticdec() ats_bool_type name_is_exn_4 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; __ats_lab_name_is_exn_4: tmp8 = atspre_eq_string_string (arg0, ATSstrcst("exn")) ; if (tmp8) { tmp7 = ats_true_bool ; } else { tmp7 = atspre_eq_string_string (arg0, ATSstrcst("exception")) ; } /* end of [if] */ return (tmp7) ; } /* end of [name_is_exn_4] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2182(line=73, offs=4) -- 2267(line=74, offs=52) */ ATSstaticdec() ats_bool_type name_is_ref_5 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; __ats_lab_name_is_ref_5: tmp10 = atspre_eq_string_string (arg0, ATSstrcst("ref")) ; if (tmp10) { tmp9 = ats_true_bool ; } else { tmp9 = atspre_eq_string_string (arg0, ATSstrcst("reference")) ; } /* end of [if] */ return (tmp9) ; } /* end of [name_is_ref_5] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2271(line=75, offs=4) -- 2353(line=76, offs=48) */ ATSstaticdec() ats_bool_type name_is_wrt_6 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_bool_type, tmp12) ; __ats_lab_name_is_wrt_6: tmp12 = atspre_eq_string_string (arg0, ATSstrcst("wrt")) ; if (tmp12) { tmp11 = ats_true_bool ; } else { tmp11 = atspre_eq_string_string (arg0, ATSstrcst("write")) ; } /* end of [if] */ return (tmp11) ; } /* end of [name_is_wrt_6] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2358(line=78, offs=4) -- 2411(line=78, offs=57) */ ATSstaticdec() ats_bool_type name_is_exnref_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp13) ; __ats_lab_name_is_exnref_7: tmp13 = atspre_eq_string_string (arg0, ATSstrcst("exnref")) ; return (tmp13) ; } /* end of [name_is_exnref_7] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2415(line=79, offs=4) -- 2468(line=79, offs=57) */ ATSstaticdec() ats_bool_type name_is_exnwrt_8 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp14) ; __ats_lab_name_is_exnwrt_8: tmp14 = atspre_eq_string_string (arg0, ATSstrcst("exnwrt")) ; return (tmp14) ; } /* end of [name_is_exnwrt_8] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2472(line=80, offs=4) -- 2531(line=80, offs=63) */ ATSstaticdec() ats_bool_type name_is_exnrefwrt_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp15) ; __ats_lab_name_is_exnrefwrt_9: tmp15 = atspre_eq_string_string (arg0, ATSstrcst("exnrefwrt")) ; return (tmp15) ; } /* end of [name_is_exnrefwrt_9] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2535(line=81, offs=4) -- 2588(line=81, offs=57) */ ATSstaticdec() ats_bool_type name_is_refwrt_10 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp16) ; __ats_lab_name_is_refwrt_10: tmp16 = atspre_eq_string_string (arg0, ATSstrcst("refwrt")) ; return (tmp16) ; } /* end of [name_is_refwrt_10] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2620(line=86, offs=4) -- 2668(line=86, offs=52) */ ATSstaticdec() ats_bool_type name_is_lazy_11 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp17) ; __ats_lab_name_is_lazy_11: tmp17 = atspre_eq_string_string (arg0, ATSstrcst("laz")) ; return (tmp17) ; } /* end of [name_is_lazy_11] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1988(line=70, offs=17) -- 2046(line=73, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_01897_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab_prerr_error1_loc_01897_: /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp21 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp21) */ ; } /* end of [prerr_error1_loc_01897_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 2765(line=97, offs=1) -- 3001(line=110, offs=2) */ ATSstaticdec() ats_void_type loop_err_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; __ats_lab_loop_err_12: tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_e0fftag_loc) ; /* tmp20 = */ prerr_error1_loc_01897_ (tmp23) ; /* tmp24 = */ atspre_prerr_string (ATSstrcst(": unrecognized effect constant: [")) ; /* tmp25 = */ atspre_prerr_string (arg1) ; /* tmp26 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp27 = */ atspre_prerr_newline () ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; return /* (tmp19) */ ; } /* end of [loop_err_12] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 3031(line=112, offs=5) -- 7510(line=234, offs=4) */ ATSstaticdec() ats_void_type loop_14 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_int_type, tmp35) ; ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_bool_type, tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_bool_type, tmp45) ; ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_int_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_bool_type, tmp49) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_uint_type, tmp52) ; ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_uint_type, tmp54) ; ATSlocal (ats_int_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_bool_type, tmp57) ; ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_uint_type, tmp60) ; ATSlocal (ats_bool_type, tmp61) ; ATSlocal (ats_uint_type, tmp62) ; ATSlocal (ats_bool_type, tmp63) ; ATSlocal (ats_bool_type, tmp65) ; ATSlocal (ats_uint_type, tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_uint_type, tmp68) ; ATSlocal (ats_bool_type, tmp69) ; ATSlocal (ats_bool_type, tmp71) ; ATSlocal (ats_uint_type, tmp72) ; ATSlocal (ats_bool_type, tmp73) ; ATSlocal (ats_uint_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_bool_type, tmp77) ; ATSlocal (ats_uint_type, tmp78) ; ATSlocal (ats_bool_type, tmp79) ; ATSlocal (ats_uint_type, tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_uint_type, tmp84) ; ATSlocal (ats_uint_type, tmp85) ; ATSlocal (ats_bool_type, tmp86) ; ATSlocal (ats_uint_type, tmp87) ; ATSlocal (ats_uint_type, tmp88) ; ATSlocal (ats_bool_type, tmp89) ; ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_uint_type, tmp92) ; ATSlocal (ats_uint_type, tmp93) ; ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_uint_type, tmp95) ; ATSlocal (ats_uint_type, tmp96) ; ATSlocal (ats_bool_type, tmp97) ; ATSlocal (ats_bool_type, tmp99) ; ATSlocal (ats_uint_type, tmp100) ; ATSlocal (ats_uint_type, tmp101) ; ATSlocal (ats_uint_type, tmp102) ; ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_uint_type, tmp104) ; ATSlocal (ats_uint_type, tmp105) ; ATSlocal (ats_uint_type, tmp106) ; ATSlocal (ats_bool_type, tmp107) ; ATSlocal (ats_bool_type, tmp109) ; ATSlocal (ats_uint_type, tmp110) ; ATSlocal (ats_uint_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_uint_type, tmp113) ; ATSlocal (ats_uint_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_bool_type, tmp116) ; ATSlocal (ats_int_type, tmp117) ; ATSlocal (ats_int_type, tmp118) ; ATSlocal (ats_bool_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_bool_type, tmp123) ; ATSlocal (ats_int_type, tmp124) ; ATSlocal (ats_int_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; __ats_lab_loop_14: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_0_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_1, arg5, atslab_0) ; tmp30 = ats_caselptrlab_mac(anairiats_sum_1, arg5, atslab_1) ; tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, tmp29), atslab_e0fftag_node) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp32)->tag != 2) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_2, tmp32, atslab_0) ; tmp34 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp34, atslab_0, tmp33) ; ats_selptrset_mac(anairiats_sum_1, tmp34, atslab_1, ats_ptrget_mac(ats_ptr_type, arg4)) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp34 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp32)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_3, tmp32, atslab_0) ; ats_ptrget_mac(ats_ptr_type, arg4) = statmp18 ; tmp37 = atspre_eq_int_int (tmp35, 0) ; if (tmp37) { ats_ptrget_mac(ats_uint_type, arg3) = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil ; } else { /* empty */ } /* end of [if] */ tmp38 = atspre_eq_int_int (tmp35, 1) ; if (tmp38) { ats_ptrget_mac(ats_uint_type, arg3) = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp32)->tag != 1) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_4, tmp32, atslab_0) ; tmp40 = ats_caselptrlab_mac(anairiats_sum_4, tmp32, atslab_1) ; tmp41 = name_is_all_2 (tmp40) ; if (!tmp41) { goto __ats_lab_4_1 ; } ats_ptrget_mac(ats_ptr_type, arg4) = statmp18 ; tmp42 = atspre_gt_int_int (tmp39, 0) ; if (tmp42) { ats_ptrget_mac(ats_uint_type, arg3) = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil ; } else { ats_ptrget_mac(ats_uint_type, arg3) = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all ; } /* end of [if] */ break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp32)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_4, tmp32, atslab_0) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_4, tmp32, atslab_1) ; tmp45 = name_is_nil_1 (tmp44) ; if (!tmp45) { goto __ats_lab_5_1 ; } ats_ptrget_mac(ats_ptr_type, arg4) = statmp18 ; tmp46 = atspre_gt_int_int (tmp43, 0) ; if (tmp46) { ats_ptrget_mac(ats_uint_type, arg3) = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all ; } else { ats_ptrget_mac(ats_uint_type, arg3) = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil ; } /* end of [if] */ break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp32)->tag != 1) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_4, tmp32, atslab_0) ; tmp48 = ats_caselptrlab_mac(anairiats_sum_4, tmp32, atslab_1) ; tmp49 = name_is_lazy_11 (tmp48) ; if (!tmp49) { goto __ats_lab_6_1 ; } ats_ptrget_mac(ats_ptr_type, arg4) = statmp18 ; tmp51 = atspre_gt_int_int (tmp47, 0) ; if (tmp51) { tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp52 ; } else { /* empty */ } /* end of [if] */ tmp53 = atspre_eq_int_int (tmp47, 0) ; if (tmp53) { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp54 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp32)->tag != 1) { goto __ats_lab_16_0 ; } __ats_lab_6_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_4, tmp32, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_4, tmp32, atslab_1) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp57 = name_is_ntm_3 (tmp56) ; if (!tmp57) { goto __ats_lab_8_1 ; } tmp59 = atspre_gt_int_int (tmp55, 0) ; if (tmp59) { tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp60 ; } else { /* empty */ } /* end of [if] */ tmp61 = atspre_eq_int_int (tmp55, 0) ; if (tmp61) { tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp62 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp63 = name_is_exn_4 (tmp56) ; if (!tmp63) { goto __ats_lab_9_1 ; } tmp65 = atspre_gt_int_int (tmp55, 0) ; if (tmp65) { tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp66 ; } else { /* empty */ } /* end of [if] */ tmp67 = atspre_eq_int_int (tmp55, 0) ; if (tmp67) { tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp68 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp69 = name_is_ref_5 (tmp56) ; if (!tmp69) { goto __ats_lab_10_1 ; } tmp71 = atspre_gt_int_int (tmp55, 0) ; if (tmp71) { tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp72 ; } else { /* empty */ } /* end of [if] */ tmp73 = atspre_eq_int_int (tmp55, 0) ; if (tmp73) { tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp74 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp75 = name_is_wrt_6 (tmp56) ; if (!tmp75) { goto __ats_lab_11_1 ; } tmp77 = atspre_gt_int_int (tmp55, 0) ; if (tmp77) { tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp78 ; } else { /* empty */ } /* end of [if] */ tmp79 = atspre_eq_int_int (tmp55, 0) ; if (tmp79) { tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp80 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp81 = name_is_exnref_7 (tmp56) ; if (!tmp81) { goto __ats_lab_12_1 ; } tmp83 = atspre_gt_int_int (tmp55, 0) ; if (tmp83) { tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (tmp85, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp84 ; } else { /* empty */ } /* end of [if] */ tmp86 = atspre_eq_int_int (tmp55, 0) ; if (tmp86) { tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (tmp88, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp87 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp89 = name_is_exnwrt_8 (tmp56) ; if (!tmp89) { goto __ats_lab_13_1 ; } tmp91 = atspre_gt_int_int (tmp55, 0) ; if (tmp91) { tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (tmp93, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp92 ; } else { /* empty */ } /* end of [if] */ tmp94 = atspre_eq_int_int (tmp55, 0) ; if (tmp94) { tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (tmp96, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp95 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp97 = name_is_exnrefwrt_9 (tmp56) ; if (!tmp97) { goto __ats_lab_14_1 ; } tmp99 = atspre_gt_int_int (tmp55, 0) ; if (tmp99) { tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (tmp102, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (tmp101, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp100 ; } else { /* empty */ } /* end of [if] */ tmp103 = atspre_eq_int_int (tmp55, 0) ; if (tmp103) { tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_exn) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (tmp106, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (tmp105, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp104 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: tmp107 = name_is_refwrt_10 (tmp56) ; if (!tmp107) { goto __ats_lab_15_1 ; } tmp109 = atspre_gt_int_int (tmp55, 0) ; if (tmp109) { tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_del (tmp111, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp110 ; } else { /* empty */ } /* end of [if] */ tmp112 = atspre_eq_int_int (tmp55, 0) ; if (tmp112) { tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (ats_ptrget_mac(ats_uint_type, arg3), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ref) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_add (tmp114, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_wrt) ; ats_ptrget_mac(ats_uint_type, arg3) = tmp113 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: /* tmp31 = */ loop_err_12 (tmp29, tmp56) ; break ; } while (0) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp32)->tag != 3) { goto __ats_lab_17_0 ; } __ats_lab_16_1: ats_ptrget_mac(ats_int_type, arg2) = 1 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp32)->tag != 4) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_3, tmp32, atslab_0) ; ats_ptrget_mac(ats_int_type, arg1) = 1 ; tmp116 = atspre_gt_int_int (tmp115, 0) ; if (tmp116) { ats_ptrget_mac(ats_uint_type, arg3) = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all ; ats_ptrget_mac(ats_ptr_type, arg4) = statmp18 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp32)->tag != 5) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_5, tmp32, atslab_0) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_5, tmp32, atslab_1) ; tmp120 = atspre_gte_int_int (tmp117, 0) ; if (tmp120) { ats_ptrget_mac(ats_int_type, arg1) = tmp117 ; } else { /* empty */ } /* end of [if] */ tmp122 = (ats_sum_ptr_type)0 ; tmp121 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp121, atslab_0, tmp122) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp121 ; tmp123 = atspre_gt_int_int (tmp118, 0) ; if (tmp123) { ats_ptrget_mac(ats_uint_type, arg3) = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all ; ats_ptrget_mac(ats_ptr_type, arg4) = statmp18 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (((ats_sum_ptr_type)tmp32)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_7, tmp32, atslab_0) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_7, tmp32, atslab_1) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_7, tmp32, atslab_2) ; tmp128 = atspre_gte_int_int (tmp124, 0) ; if (tmp128) { ats_ptrget_mac(ats_int_type, arg1) = tmp124 ; } else { /* empty */ } /* end of [if] */ tmp130 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp130, atslab_0, tmp125) ; tmp129 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_0, tmp130) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp129 ; tmp131 = atspre_gt_int_int (tmp126, 0) ; if (tmp131) { ats_ptrget_mac(ats_uint_type, arg3) = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all ; ats_ptrget_mac(ats_ptr_type, arg4) = statmp18 ; } else { /* empty */ } /* end of [if] */ break ; } while (0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = tmp30 ; goto __ats_lab_loop_14 ; // tail call break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: break ; } while (0) ; return /* (tmp28) */ ; } /* end of [loop_14] */ /* // /tmp/ATS-Postiats/src/pats_trans1_effect.dats: 7579(line=240, offs=3) -- 8060(line=265, offs=4) */ ATSglobaldec() anairiats_rec_9 _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_9, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; ATSlocal (ats_int_type, tmp135) ; ATSlocal (ats_uint_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_bool_type, tmp141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr: /* ats_ptr_type tmp133 ; */ tmp133 = (ats_sum_ptr_type)0 ; /* ats_int_type tmp134 ; */ tmp134 = 0 ; /* ats_int_type tmp135 ; */ tmp135 = 0 ; /* ats_uint_type tmp136 ; */ tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil ; /* ats_ptr_type tmp137 ; */ tmp137 = statmp18 ; /* tmp138 = */ loop_14 ((&tmp133), (&tmp134), (&tmp135), (&tmp136), (&tmp137), arg0) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effset_effset (tmp136, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; if (!tmp140) { goto __ats_lab_22_1 ; } tmp139 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effset_effset (tmp136, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; if (!tmp141) { goto __ats_lab_25_1 ; } do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (tmp137 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp139 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp139 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp139)->tag = 2 ; ats_selptrset_mac(anairiats_sum_10, tmp139, atslab_0, tmp136) ; ats_selptrset_mac(anairiats_sum_10, tmp139, atslab_1, tmp137) ; break ; } while (0) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp139 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp139)->tag = 2 ; ats_selptrset_mac(anairiats_sum_10, tmp139, atslab_0, tmp136) ; ats_selptrset_mac(anairiats_sum_10, tmp139, atslab_1, tmp137) ; break ; } while (0) ; tmp132.atslab_0 = tmp133 ; tmp132.atslab_1 = tmp134 ; tmp132.atslab_2 = tmp135 ; tmp132.atslab_3 = tmp139 ; return (tmp132) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_effect_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp18, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp18 = (ats_sum_ptr_type)0 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_effect_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp1_print_dats.c0000644000175000017500000044665613431250607023356 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_p1at_loc ; ats_ptr_type atslab_p1at_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_labp1at_loc ; ats_ptr_type atslab_labp1at_node ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_d1exp_loc ; ats_ptr_type atslab_d1exp_node ; } anairiats_rec_11 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_d1lab_loc ; ats_ptr_type atslab_d1lab_node ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_m1acdef_loc ; ats_ptr_type atslab_m1acdef_sym ; ats_ptr_type atslab_m1acdef_arg ; ats_ptr_type atslab_m1acdef_def ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_v1aldec_loc ; ats_ptr_type atslab_v1aldec_pat ; ats_ptr_type atslab_v1aldec_def ; ats_ptr_type atslab_v1aldec_ann ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_v1ardec_loc ; ats_int_type atslab_v1ardec_knd ; ats_ptr_type atslab_v1ardec_sym ; ats_ptr_type atslab_v1ardec_sym_loc ; ats_ptr_type atslab_v1ardec_pfat ; ats_ptr_type atslab_v1ardec_type ; ats_ptr_type atslab_v1ardec_init ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_d1ecl_loc ; ats_ptr_type atslab_d1ecl_node ; } anairiats_rec_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_21 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_22 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_23 ; typedef struct { ats_ptr_type atslab_i1mpdec_loc ; ats_ptr_type atslab_i1mpdec_qid ; ats_ptr_type atslab_i1mpdec_tmparg ; ats_ptr_type atslab_i1mpdec_def ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_impqi0de_loc ; ats_ptr_type atslab_impqi0de_qua ; ats_ptr_type atslab_impqi0de_sym ; ats_ptr_type atslab_impqi0de_arg ; } anairiats_rec_25 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_26 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany2_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tide_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tdqid_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tint_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tintrep_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_sta_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_dyn_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlist_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ttup_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlst_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfree_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tunfold_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trefas_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Texist_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tsvararg_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tann_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Terrpat_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eidextapp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ebool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Echar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Estring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ei0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ec0har_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ef0loat_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Es0tring_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etop_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecstsp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etyrep_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eliteral_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextfcall_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextmcall_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efoldat_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efreeat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etmpid_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhere_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edecseq_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_dyn_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_sta_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esing_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elist_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifhead_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esifhead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifcasehd_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecasehead_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Escasehead_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elst_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrsub_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrinit_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrpsz_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eptrof_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eviewat_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eselab_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eraise_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eeffmask_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evararg_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evcopyenv_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eshowtype_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etempenver_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esexparg_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eexist_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_dyn_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elaminit_dyn_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_met_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_ana_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_syn_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efix_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edelay_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efor_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhile_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eloopexn_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etrywith_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_type_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_effc_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_funclo_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacsyn_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacfun_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolassert_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolverify_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eerrexp_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpackname_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymintr_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymelim_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Coverload_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpdef_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpundef_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpragma_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ccodegen_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatsrts_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csrtdefs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacsts_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacons_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csexpdefs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csaspdec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cexndecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatdecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cclassdec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextvar_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextcode_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdcstdecs_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cmacdefs_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cimpdec_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cfundecs_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvaldecs_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvardecs_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cinclude_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaload_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadnm_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadloc_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdynload_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clocal_36) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbolopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_valkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_dcstkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_effcst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtdef) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacon) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expdef) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1aspdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_i1mparg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xndec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1cstdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1atlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labp1at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1expopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1lab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1ecl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1eclist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_m1acdef) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1aldec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1ardec) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_2 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_2_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_2 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_bool_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_int_type, tmp41) ; __ats_lab_aux_2: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp37 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp39 = atspre_gt_int_int (arg1, 0) ; if (tmp39) { /* tmp38 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp40 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp36) ; tmp41 = atspre_add_int_int (arg1, 1) ; arg0 = tmp37 ; arg1 = tmp41 ; goto __ats_lab_aux_2 ; // tail call break ; } while (0) ; return /* (tmp35) */ ; } /* end of [aux_2] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_2_closure_type ; ats_void_type aux_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_2 (((aux_2_closure_type*)cloptr)->closure_env_0, ((aux_2_closure_type*)cloptr)->closure_env_1, ((aux_2_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_2_closure_init (aux_2_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_2_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_2_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_2_closure_type *p_clo = ATS_MALLOC(sizeof(aux_2_closure_type)) ; aux_2_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp34) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp34 = */ aux_2 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp34) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 1847(line=60, offs=3) -- 5498(line=218, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_int_type, tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_char_type, tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_int_type, tmp57) ; ATSlocal (ats_int_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_int_type, tmp66) ; ATSlocal (ats_int_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_p1at_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tany()")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tany2()")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tide(")) ; /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp2) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp6 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp7 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tdqid(")) ; /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (arg0, tmp5) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp6) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tint(")) ; /* tmp12 = */ atspre_fprint_int (arg0, tmp10) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp14 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tintrep(")) ; /* tmp15 = */ atspre_fprint_string (arg0, tmp13) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_0) ; /* tmp17 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tchar(")) ; /* tmp18 = */ atspre_fprint_char (arg0, tmp16) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp1)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp20 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tfloat(")) ; /* tmp21 = */ atspre_fprint_string (arg0, tmp19) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp1)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp23 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tint(")) ; /* tmp24 = */ atspre_fprint_string (arg0, tmp22) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp1)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp26 = */ atspre_fprint_string (arg0, ATSstrcst("P1Ti0nt(")) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp25) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp1)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp29 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tf0loat(")) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp28) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp1)->tag != 11) { goto __ats_lab_12_0 ; } __ats_lab_11_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tempty()")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp1)->tag != 12) { goto __ats_lab_15_0 ; } __ats_lab_12_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp32 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tapp_sta(")) ; /* tmp33 = */ fprintlst_01696_ats_ptr_type (arg0, tmp31, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp1)->tag != 13) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_2) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_3) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tapp_dyn(")) ; /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (arg0, tmp42) ; /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp48 = */ atspre_fprint_int (arg0, tmp43) ; /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1atlst (arg0, tmp44) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp1)->tag != 14) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_1) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tlist(")) ; /* tmp54 = */ atspre_fprint_int (arg0, tmp51) ; /* tmp55 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1atlst (arg0, tmp52) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp1)->tag != 15) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_0) ; tmp58 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_1) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_2) ; /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst("P1Ttup(")) ; /* tmp61 = */ atspre_fprint_int (arg0, tmp57) ; /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp63 = */ atspre_fprint_int (arg0, tmp58) ; /* tmp64 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1atlst (arg0, tmp59) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp1)->tag != 16) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_1) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_8, tmp1, atslab_2) ; /* tmp69 = */ atspre_fprint_string (arg0, ATSstrcst("P1Ttup(")) ; /* tmp70 = */ atspre_fprint_int (arg0, tmp66) ; /* tmp71 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp72 = */ atspre_fprint_int (arg0, tmp67) ; /* tmp73 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp74 = */ fprintlst_01696_ats_ptr_type (arg0, tmp68, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labp1at) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp1)->tag != 17) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_1) ; /* tmp77 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tlst(")) ; /* tmp78 = */ atspre_fprint_int (arg0, tmp75) ; /* tmp79 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1atlst (arg0, tmp76) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp1)->tag != 18) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp82 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tfree(")) ; /* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (arg0, tmp81) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp1)->tag != 19) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp85 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tunfold(")) ; /* tmp86 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (arg0, tmp84) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp1)->tag != 20) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp87 = ats_caselptrlab_mac(anairiats_sum_9, tmp1, atslab_0) ; tmp88 = ats_caselptrlab_mac(anairiats_sum_9, tmp1, atslab_2) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("P1Trefas(")) ; /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp87) ; /* tmp91 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (arg0, tmp88) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp1)->tag != 21) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp94 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp95 = */ atspre_fprint_string (arg0, ATSstrcst("P1Texist(")) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arglst (arg0, tmp93) ; /* tmp97 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (arg0, tmp94) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp1)->tag != 22) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp100 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tsvararg(")) ; /* tmp101 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg (arg0, tmp99) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp1)->tag != 23) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; /* tmp104 = */ atspre_fprint_string (arg0, ATSstrcst("P1Tann(")) ; /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (arg0, tmp102) ; /* tmp106 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp103) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (((ats_sum_ptr_type)tmp1)->tag != 24) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("P1Terrpat()")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 5545(line=221, offs=12) -- 5582(line=221, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__print_p1at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__print_p1at: /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (stdout, arg0) ; return /* (tmp108) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__print_p1at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 5604(line=223, offs=12) -- 5641(line=223, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_p1at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_p1at: /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (stderr, arg0) ; return /* (tmp109) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_p1at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 5691(line=229, offs=3) -- 5745(line=229, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1atlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1atlst: /* tmp110 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at) ; return /* (tmp110) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1atlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 5799(line=233, offs=16) -- 6146(line=249, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labp1at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labp1at: tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_labp1at_node) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp112 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp113 = ats_caselptrlab_mac(anairiats_sum_5, tmp112, atslab_0) ; tmp114 = ats_caselptrlab_mac(anairiats_sum_5, tmp112, atslab_1) ; /* tmp115 = */ atspre_fprint_string (arg0, ATSstrcst("LABP1ATnorm(")) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab (arg0, tmp113) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (arg0, tmp114) ; /* tmp111 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (tmp112 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: /* tmp111 = */ atspre_fprint_string (arg0, ATSstrcst("LABP1ATomit()")) ; break ; } while (0) ; return /* (tmp111) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labp1at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 6221(line=255, offs=3) -- 17299(line=743, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; ATSlocal (ats_int_type, tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; ATSlocal (ats_bool_type, tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; ATSlocal (ats_char_type, tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; // ATSlocal_void (tmp204) ; // ATSlocal_void (tmp205) ; ATSlocal (ats_int_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; // ATSlocal_void (tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_int_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; // ATSlocal_void (tmp224) ; // ATSlocal_void (tmp225) ; // ATSlocal_void (tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; // ATSlocal_void (tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; ATSlocal (ats_int_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; // ATSlocal_void (tmp256) ; // ATSlocal_void (tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; // ATSlocal_void (tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; // ATSlocal_void (tmp265) ; ATSlocal (ats_int_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp272) ; // ATSlocal_void (tmp273) ; // ATSlocal_void (tmp274) ; ATSlocal (ats_int_type, tmp275) ; ATSlocal (ats_int_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; // ATSlocal_void (tmp278) ; // ATSlocal_void (tmp279) ; // ATSlocal_void (tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; ATSlocal (ats_int_type, tmp284) ; ATSlocal (ats_int_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; // ATSlocal_void (tmp287) ; // ATSlocal_void (tmp288) ; // ATSlocal_void (tmp289) ; // ATSlocal_void (tmp290) ; // ATSlocal_void (tmp291) ; // ATSlocal_void (tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; // ATSlocal_void (tmp294) ; // ATSlocal_void (tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; // ATSlocal_void (tmp298) ; // ATSlocal_void (tmp299) ; // ATSlocal_void (tmp300) ; // ATSlocal_void (tmp301) ; ATSlocal (ats_int_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; // ATSlocal_void (tmp307) ; // ATSlocal_void (tmp308) ; // ATSlocal_void (tmp309) ; // ATSlocal_void (tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; // ATSlocal_void (tmp312) ; // ATSlocal_void (tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; // ATSlocal_void (tmp318) ; // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; // ATSlocal_void (tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; ATSlocal (ats_int_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; // ATSlocal_void (tmp327) ; // ATSlocal_void (tmp328) ; // ATSlocal_void (tmp329) ; // ATSlocal_void (tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; // ATSlocal_void (tmp332) ; // ATSlocal_void (tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; // ATSlocal_void (tmp335) ; // ATSlocal_void (tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; // ATSlocal_void (tmp342) ; // ATSlocal_void (tmp343) ; // ATSlocal_void (tmp344) ; // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; // ATSlocal_void (tmp347) ; // ATSlocal_void (tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; // ATSlocal_void (tmp353) ; // ATSlocal_void (tmp354) ; // ATSlocal_void (tmp355) ; // ATSlocal_void (tmp356) ; // ATSlocal_void (tmp357) ; // ATSlocal_void (tmp358) ; // ATSlocal_void (tmp359) ; // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; // ATSlocal_void (tmp362) ; // ATSlocal_void (tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; // ATSlocal_void (tmp368) ; // ATSlocal_void (tmp369) ; // ATSlocal_void (tmp370) ; // ATSlocal_void (tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; // ATSlocal_void (tmp374) ; // ATSlocal_void (tmp375) ; // ATSlocal_void (tmp376) ; // ATSlocal_void (tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; // ATSlocal_void (tmp380) ; // ATSlocal_void (tmp381) ; // ATSlocal_void (tmp382) ; // ATSlocal_void (tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; // ATSlocal_void (tmp386) ; // ATSlocal_void (tmp387) ; // ATSlocal_void (tmp388) ; // ATSlocal_void (tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; // ATSlocal_void (tmp392) ; // ATSlocal_void (tmp393) ; // ATSlocal_void (tmp394) ; // ATSlocal_void (tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; // ATSlocal_void (tmp397) ; // ATSlocal_void (tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; // ATSlocal_void (tmp400) ; // ATSlocal_void (tmp401) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp: tmp119 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d1exp_node) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp119)->tag != 0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp121 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eide(")) ; /* tmp122 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp120) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp119)->tag != 1) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp124 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp125 = */ atspre_fprint_string (arg0, ATSstrcst("D1Edqid(")) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (arg0, tmp123) ; /* tmp127 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp124) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp119)->tag != 2) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp128 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp129 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp130 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eidextapp(")) ; /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp128) ; /* tmp132 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp129) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp119)->tag != 3) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_3, tmp119, atslab_0) ; /* tmp135 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eint(")) ; /* tmp136 = */ atspre_fprint_int (arg0, tmp134) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp119)->tag != 4) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp138 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eintrep(")) ; /* tmp139 = */ atspre_fprint_string (arg0, tmp137) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp119)->tag != 5) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_12, tmp119, atslab_0) ; /* tmp141 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ebool(")) ; /* tmp142 = */ atspre_fprint_bool (arg0, tmp140) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp119)->tag != 6) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_4, tmp119, atslab_0) ; /* tmp144 = */ atspre_fprint_string (arg0, ATSstrcst("D1Echar(")) ; /* tmp145 = */ atspre_fprint_char (arg0, tmp143) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp119)->tag != 7) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp147 = */ atspre_fprint_string (arg0, ATSstrcst("D1Efloat(")) ; /* tmp148 = */ atspre_fprint_string (arg0, tmp146) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp119)->tag != 8) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp150 = */ atspre_fprint_string (arg0, ATSstrcst("D1Estring(")) ; /* tmp151 = */ atspre_fprint_string (arg0, tmp149) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp119)->tag != 9) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp153 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ei0nt(")) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp152) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp119)->tag != 10) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp156 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ec0har(")) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_c0har (arg0, tmp155) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp119)->tag != 11) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp159 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ef0loat(")) ; /* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp158) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp119)->tag != 12) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp161 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp162 = */ atspre_fprint_string (arg0, ATSstrcst("D1Es0tring(")) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0tring (arg0, tmp161) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp119)->tag != 13) { goto __ats_lab_43_0 ; } __ats_lab_42_1: /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst("D1Etop()")) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp119)->tag != 14) { goto __ats_lab_44_0 ; } __ats_lab_43_1: /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eempty()")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp119)->tag != 15) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp165 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ecstsp(")) ; /* tmp166 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp (arg0, tmp164) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp119)->tag != 16) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp167 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp168 = */ atspre_fprint_string (arg0, ATSstrcst("D1Etyrep(")) ; /* tmp169 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp167) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp119)->tag != 17) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp171 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eliteral(")) ; /* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp170) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp119)->tag != 18) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp175 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eextval(")) ; /* tmp176 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp173) ; /* tmp177 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp178 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp179 = */ atspre_fprint_string (arg0, tmp174) ; /* tmp180 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp119)->tag != 19) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp181 = ats_caselptrlab_mac(anairiats_sum_9, tmp119, atslab_0) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_9, tmp119, atslab_1) ; tmp183 = ats_caselptrlab_mac(anairiats_sum_9, tmp119, atslab_2) ; /* tmp184 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eextfcall(")) ; /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp181) ; /* tmp186 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp187 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp188 = */ atspre_fprint_string (arg0, tmp182) ; /* tmp189 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp190 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp183) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp119)->tag != 20) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_0) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_1) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_2) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_3) ; /* tmp196 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eextmcall(")) ; /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp192) ; /* tmp198 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp199 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp193) ; /* tmp200 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp201 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp202 = */ atspre_fprint_string (arg0, tmp194) ; /* tmp203 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp204 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp195) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp119)->tag != 63) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_3, tmp119, atslab_0) ; /* tmp118 = */ atspre_fprintf_exn (arg0, ATSstrcst("D1Eloopexn(%i)"), tmp206) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp119)->tag != 21) { goto __ats_lab_52_0 ; } __ats_lab_51_1: /* tmp118 = */ atspre_fprintf_exn (arg0, ATSstrcst("D1Efoldat(...)")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp119)->tag != 22) { goto __ats_lab_53_0 ; } __ats_lab_52_1: /* tmp118 = */ atspre_fprintf_exn (arg0, ATSstrcst("D1Efreeat(...)")) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp119)->tag != 23) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; /* tmp208 = */ atspre_fprint_string (arg0, ATSstrcst("D1Etmpid(")) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de (arg0, tmp207) ; /* tmp210 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp211 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp119)->tag != 24) { goto __ats_lab_55_0 ; } __ats_lab_54_1: /* tmp212 = */ atspre_fprint_string (arg0, ATSstrcst("D1Elet(")) ; /* tmp213 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp119)->tag != 25) { goto __ats_lab_56_0 ; } __ats_lab_55_1: /* tmp214 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ewhere(")) ; /* tmp215 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp119)->tag != 26) { goto __ats_lab_57_0 ; } __ats_lab_56_1: /* tmp216 = */ atspre_fprint_string (arg0, ATSstrcst("D1Edecseq(")) ; /* tmp217 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp119)->tag != 27) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_0) ; tmp219 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_2) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_3) ; /* tmp221 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eapp_dyn(")) ; /* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp218) ; /* tmp223 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp224 = */ atspre_fprint_int (arg0, tmp219) ; /* tmp225 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp226 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp220) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp119)->tag != 28) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp228 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp229 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eapp_sta(")) ; /* tmp230 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp227) ; /* tmp231 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp232 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparglst (arg0, tmp228) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp119)->tag != 29) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp233 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp234 = */ atspre_fprint_string (arg0, ATSstrcst("D1Esing(")) ; /* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp233) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp119)->tag != 30) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp236 = ats_caselptrlab_mac(anairiats_sum_7, tmp119, atslab_0) ; tmp237 = ats_caselptrlab_mac(anairiats_sum_7, tmp119, atslab_1) ; /* tmp238 = */ atspre_fprint_string (arg0, ATSstrcst("D1Elist(")) ; /* tmp239 = */ atspre_fprint_int (arg0, tmp236) ; /* tmp240 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp237) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp119)->tag != 31) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_1) ; tmp243 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_2) ; tmp244 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_3) ; /* tmp245 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eifhead(")) ; /* tmp246 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp242) ; /* tmp247 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp243) ; /* tmp249 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp250 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1expopt (arg0, tmp244) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp119)->tag != 32) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp251 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_1) ; tmp252 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_2) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_13, tmp119, atslab_3) ; /* tmp254 = */ atspre_fprint_string (arg0, ATSstrcst("D1Esifhead(")) ; /* tmp255 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp251) ; /* tmp256 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp252) ; /* tmp258 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp259 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp253) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp119)->tag != 33) { goto __ats_lab_64_0 ; } __ats_lab_63_1: /* tmp260 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eifcasehd(")) ; /* tmp261 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp119)->tag != 34) { goto __ats_lab_65_0 ; } __ats_lab_64_1: /* tmp262 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ecasehead(")) ; /* tmp263 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp119)->tag != 35) { goto __ats_lab_66_0 ; } __ats_lab_65_1: /* tmp264 = */ atspre_fprint_string (arg0, ATSstrcst("D1Escasehead(")) ; /* tmp265 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp119)->tag != 36) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp266 = ats_caselptrlab_mac(anairiats_sum_14, tmp119, atslab_0) ; tmp267 = ats_caselptrlab_mac(anairiats_sum_14, tmp119, atslab_1) ; tmp268 = ats_caselptrlab_mac(anairiats_sum_14, tmp119, atslab_2) ; /* tmp269 = */ atspre_fprint_string (arg0, ATSstrcst("D1Etup(")) ; /* tmp270 = */ atspre_fprint_int (arg0, tmp266) ; /* tmp271 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expopt (arg0, tmp267) ; /* tmp273 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp274 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp268) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp119)->tag != 37) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp275 = ats_caselptrlab_mac(anairiats_sum_8, tmp119, atslab_0) ; tmp276 = ats_caselptrlab_mac(anairiats_sum_8, tmp119, atslab_1) ; tmp277 = ats_caselptrlab_mac(anairiats_sum_8, tmp119, atslab_2) ; /* tmp278 = */ atspre_fprint_string (arg0, ATSstrcst("D1Etup(knd=")) ; /* tmp279 = */ atspre_fprint_int (arg0, tmp275) ; /* tmp280 = */ atspre_fprint_string (arg0, ATSstrcst("; npf=")) ; /* tmp281 = */ atspre_fprint_int (arg0, tmp276) ; /* tmp282 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp277) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp119)->tag != 38) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_8, tmp119, atslab_0) ; tmp285 = ats_caselptrlab_mac(anairiats_sum_8, tmp119, atslab_1) ; tmp286 = ats_caselptrlab_mac(anairiats_sum_8, tmp119, atslab_2) ; /* tmp287 = */ atspre_fprint_string (arg0, ATSstrcst("D1Erec(knd=")) ; /* tmp288 = */ atspre_fprint_int (arg0, tmp284) ; /* tmp289 = */ atspre_fprint_string (arg0, ATSstrcst("; npf=")) ; /* tmp290 = */ atspre_fprint_int (arg0, tmp285) ; /* tmp291 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp292 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1explst (arg0, tmp286) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp119)->tag != 39) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp293 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp294 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eseq(")) ; /* tmp295 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp293) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp119)->tag != 40) { goto __ats_lab_71_0 ; } __ats_lab_70_1: /* tmp296 = */ atspre_fprint_string (arg0, ATSstrcst("D1Earrsub(")) ; /* tmp297 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp119)->tag != 42) { goto __ats_lab_72_0 ; } __ats_lab_71_1: /* tmp298 = */ atspre_fprint_string (arg0, ATSstrcst("D1Earrpsz(")) ; /* tmp299 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp119)->tag != 41) { goto __ats_lab_73_0 ; } __ats_lab_72_1: /* tmp300 = */ atspre_fprint_string (arg0, ATSstrcst("D1Earrinit(")) ; /* tmp301 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp119)->tag != 45) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp302 = ats_caselptrlab_mac(anairiats_sum_14, tmp119, atslab_0) ; tmp303 = ats_caselptrlab_mac(anairiats_sum_14, tmp119, atslab_1) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_14, tmp119, atslab_2) ; /* tmp305 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eselab(")) ; /* tmp306 = */ atspre_fprint_int (arg0, tmp302) ; /* tmp307 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp308 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp303) ; /* tmp309 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp310 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1lab (arg0, tmp304) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp119)->tag != 43) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp311 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp312 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eptrof(")) ; /* tmp313 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp311) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp119)->tag != 44) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp315 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eviewat(")) ; /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp314) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp119)->tag != 46) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp317 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp318 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eraise(")) ; /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp317) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp119)->tag != 47) { goto __ats_lab_78_0 ; } __ats_lab_77_1: /* tmp320 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eeffmask(")) ; /* tmp321 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp119)->tag != 48) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp322 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp323 = */ atspre_fprint_string (arg0, ATSstrcst("D1Evararg(")) ; /* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp322) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp119)->tag != 49) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp325 = ats_caselptrlab_mac(anairiats_sum_7, tmp119, atslab_0) ; tmp326 = ats_caselptrlab_mac(anairiats_sum_7, tmp119, atslab_1) ; /* tmp327 = */ atspre_fprint_string (arg0, ATSstrcst("D1Evcopyenv(")) ; /* tmp328 = */ atspre_fprint_int (arg0, tmp325) ; /* tmp329 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp330 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp326) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp119)->tag != 50) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp331 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp332 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eshowtype(")) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp331) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp119)->tag != 51) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp334 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp335 = */ atspre_fprint_string (arg0, ATSstrcst("D1Etempenver(")) ; /* tmp336 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp334) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp119)->tag != 52) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp338 = */ atspre_fprint_string (arg0, ATSstrcst("D1Esexparg(")) ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparg (arg0, tmp337) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp119)->tag != 53) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp340 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp342 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eexist(")) ; /* tmp343 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparg (arg0, tmp340) ; /* tmp344 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp345 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp341) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp119)->tag != 54) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp346 = */ atspre_fprint_string (arg0, ATSstrcst("D1Elam_dyn(")) ; /* tmp347 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp119)->tag != 55) { goto __ats_lab_86_0 ; } __ats_lab_85_1: /* tmp348 = */ atspre_fprint_string (arg0, ATSstrcst("D1Elaminit_dyn(")) ; /* tmp349 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp119)->tag != 57) { goto __ats_lab_87_0 ; } __ats_lab_86_1: /* tmp350 = */ atspre_fprint_string (arg0, ATSstrcst("D1Elam_sta_ana(")) ; /* tmp351 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp119)->tag != 58) { goto __ats_lab_88_0 ; } __ats_lab_87_1: /* tmp352 = */ atspre_fprint_string (arg0, ATSstrcst("D1Elam_sta_syn(")) ; /* tmp353 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp119)->tag != 56) { goto __ats_lab_89_0 ; } __ats_lab_88_1: /* tmp354 = */ atspre_fprint_string (arg0, ATSstrcst("D1Elam_met(")) ; /* tmp355 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp119)->tag != 59) { goto __ats_lab_90_0 ; } __ats_lab_89_1: /* tmp356 = */ atspre_fprint_string (arg0, ATSstrcst("D1Efix(")) ; /* tmp357 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp119)->tag != 60) { goto __ats_lab_91_0 ; } __ats_lab_90_1: /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst("D1Edelay(")) ; /* tmp359 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp119)->tag != 61) { goto __ats_lab_92_0 ; } __ats_lab_91_1: /* tmp360 = */ atspre_fprint_string (arg0, ATSstrcst("D1Efor(")) ; /* tmp361 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp119)->tag != 62) { goto __ats_lab_93_0 ; } __ats_lab_92_1: /* tmp362 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ewhile(")) ; /* tmp363 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp119)->tag != 64) { goto __ats_lab_94_0 ; } __ats_lab_93_1: /* tmp364 = */ atspre_fprint_string (arg0, ATSstrcst("D1Etrywith(")) ; /* tmp365 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp119)->tag != 65) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp366 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp367 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp368 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eann_type(")) ; /* tmp369 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp366) ; /* tmp370 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp371 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp367) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp119)->tag != 66) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp372 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp373 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp374 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eann_effc(")) ; /* tmp375 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp372) ; /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_effcst (arg0, tmp373) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp119)->tag != 67) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp378 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp379 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp380 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eann_funclo(")) ; /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp378) ; /* tmp382 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp383 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo (arg0, tmp379) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp119)->tag != 68) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp384 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp385 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp386 = */ atspre_fprint_string (arg0, ATSstrcst("D1Emacsyn(")) ; /* tmp387 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_macsynkind (arg0, tmp384) ; /* tmp388 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp389 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp385) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp119)->tag != 69) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp390 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_0) ; tmp391 = ats_caselptrlab_mac(anairiats_sum_2, tmp119, atslab_1) ; /* tmp392 = */ atspre_fprint_string (arg0, ATSstrcst("D1Emacfun(")) ; /* tmp393 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp390) ; /* tmp394 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (arg0, tmp391) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp119)->tag != 70) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp396 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp397 = */ atspre_fprint_string (arg0, ATSstrcst("D1Esolassert(")) ; /* tmp398 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp396) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp119)->tag != 71) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp399 = ats_caselptrlab_mac(anairiats_sum_1, tmp119, atslab_0) ; /* tmp400 = */ atspre_fprint_string (arg0, ATSstrcst("D1Esolverify(")) ; /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp399) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: // if (((ats_sum_ptr_type)tmp119)->tag != 72) { ats_deadcode_failure_handle () ; } __ats_lab_101_1: /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst("D1Eerrexp()")) ; break ; } while (0) ; return /* (tmp118) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 17348(line=746, offs=13) -- 17382(line=746, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__print_d1exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp402) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__print_d1exp: /* tmp402 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (stdout, arg0) ; return /* (tmp402) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__print_d1exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 17405(line=748, offs=13) -- 17439(line=748, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp403) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp: /* tmp403 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (stderr, arg0) ; return /* (tmp403) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 17490(line=754, offs=3) -- 17545(line=754, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp404) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst: /* tmp404 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp) ; return /* (tmp404) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1explst] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12204(line=668, offs=1) -- 12471(line=681, offs=8) */ ATSstaticdec() ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; // ATSlocal_void (tmp408) ; // ATSlocal_void (tmp409) ; __ats_lab_fprintopt_01697_ats_ptr_type: do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_103_0 ; } __ats_lab_102_1: /* tmp406 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_103_1: tmp407 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; /* tmp408 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp409 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg2) (arg0, tmp407) ; /* tmp406 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp406) */ ; } /* end of [fprintopt_01697_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 17624(line=761, offs=3) -- 17675(line=761, offs=54) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1expopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp405) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1expopt: /* tmp405 = */ fprintopt_01697_ats_ptr_type (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp) ; return /* (tmp405) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1expopt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 17754(line=768, offs=3) -- 17910(line=773, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; // ATSlocal_void (tmp413) ; // ATSlocal_void (tmp414) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1exp: tmp411 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp412 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; /* tmp413 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab (arg0, tmp411) ; /* tmp414 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp410 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp412) ; return /* (tmp410) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 17969(line=776, offs=20) -- 18029(line=777, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp415) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1explst: /* tmp415 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1exp) ; return /* (tmp415) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_labd1explst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 18108(line=784, offs=3) -- 18514(line=800, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1lab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; // ATSlocal_void (tmp422) ; // ATSlocal_void (tmp423) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1lab: tmp417 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_d1lab_node) ; do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp417)->tag != 0) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp418 = ats_caselptrlab_mac(anairiats_sum_1, tmp417, atslab_0) ; /* tmp419 = */ atspre_fprint_string (arg0, ATSstrcst("D1LABlab(")) ; /* tmp420 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp418) ; /* tmp416 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: // if (((ats_sum_ptr_type)tmp417)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_105_1: tmp421 = ats_caselptrlab_mac(anairiats_sum_1, tmp417, atslab_0) ; /* tmp422 = */ atspre_fprint_string (arg0, ATSstrcst("D1LABind(")) ; /* tmp423 = */ fprintlst_01696_ats_ptr_type (arg0, tmp421, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp) ; /* tmp416 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp416) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1lab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 18639(line=809, offs=3) -- 18814(line=814, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_m1acdef (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; // ATSlocal_void (tmp426) ; // ATSlocal_void (tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_m1acdef: tmp425 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg1), atslab_m1acdef_sym) ; /* tmp426 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp425) ; /* tmp427 = */ atspre_fprint_string (arg0, ATSstrcst("(...) = ")) ; tmp428 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg1), atslab_m1acdef_def) ; /* tmp424 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp428) ; return /* (tmp424) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_m1acdef] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 18942(line=821, offs=16) -- 19083(line=825, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1aldec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp429) ; // ATSlocal_void (tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; // ATSlocal_void (tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1aldec: tmp431 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_v1aldec_pat) ; /* tmp430 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_p1at (arg0, tmp431) ; /* tmp432 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp433 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_v1aldec_def) ; /* tmp429 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp433) ; return /* (tmp429) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1aldec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 19181(line=832, offs=16) -- 19818(line=864, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1ardec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp434) ; // ATSlocal_void (tmp435) ; ATSlocal (ats_int_type, tmp436) ; // ATSlocal_void (tmp437) ; // ATSlocal_void (tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; // ATSlocal_void (tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; // ATSlocal_void (tmp443) ; // ATSlocal_void (tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; // ATSlocal_void (tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; // ATSlocal_void (tmp450) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1ardec: tmp436 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v1ardec_knd) ; /* tmp435 = */ atspre_fprint_int (arg0, tmp436) ; /* tmp437 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; tmp439 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v1ardec_sym) ; /* tmp438 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp439) ; tmp441 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v1ardec_type) ; do { /* branch: __ats_lab_106 */ __ats_lab_106_0: if (tmp441 != (ats_sum_ptr_type)0) { goto __ats_lab_107_0 ; } __ats_lab_106_1: break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: // if (tmp441 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_107_1: tmp442 = ats_caselptrlab_mac(anairiats_sum_15, tmp441, atslab_0) ; /* tmp443 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp440 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp442) ; break ; } while (0) ; tmp445 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v1ardec_pfat) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (tmp445 != (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; } __ats_lab_108_1: break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (tmp445 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: tmp446 = ats_caselptrlab_mac(anairiats_sum_15, tmp445, atslab_0) ; /* tmp447 = */ atspre_fprint_string (arg0, ATSstrcst(" with ")) ; /* tmp444 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (arg0, tmp446) ; break ; } while (0) ; tmp448 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v1ardec_init) ; do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (tmp448 != (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (tmp448 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_15, tmp448, atslab_0) ; /* tmp450 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp434 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp449) ; break ; } while (0) ; return /* (tmp434) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1ardec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 19893(line=870, offs=3) -- 27596(line=1203, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1ecl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; // ATSlocal_void (tmp454) ; // ATSlocal_void (tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; // ATSlocal_void (tmp457) ; // ATSlocal_void (tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; // ATSlocal_void (tmp460) ; // ATSlocal_void (tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; // ATSlocal_void (tmp463) ; // ATSlocal_void (tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; // ATSlocal_void (tmp468) ; // ATSlocal_void (tmp469) ; // ATSlocal_void (tmp470) ; // ATSlocal_void (tmp471) ; // ATSlocal_void (tmp472) ; // ATSlocal_void (tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; // ATSlocal_void (tmp476) ; // ATSlocal_void (tmp477) ; // ATSlocal_void (tmp478) ; // ATSlocal_void (tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; // ATSlocal_void (tmp481) ; // ATSlocal_void (tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; // ATSlocal_void (tmp484) ; // ATSlocal_void (tmp485) ; ATSlocal (ats_int_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; // ATSlocal_void (tmp488) ; // ATSlocal_void (tmp489) ; // ATSlocal_void (tmp490) ; // ATSlocal_void (tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; // ATSlocal_void (tmp493) ; // ATSlocal_void (tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; // ATSlocal_void (tmp496) ; // ATSlocal_void (tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; // ATSlocal_void (tmp499) ; // ATSlocal_void (tmp500) ; ATSlocal (ats_int_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; // ATSlocal_void (tmp503) ; // ATSlocal_void (tmp504) ; // ATSlocal_void (tmp505) ; // ATSlocal_void (tmp506) ; ATSlocal (ats_int_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; // ATSlocal_void (tmp509) ; // ATSlocal_void (tmp510) ; // ATSlocal_void (tmp511) ; // ATSlocal_void (tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; // ATSlocal_void (tmp514) ; // ATSlocal_void (tmp515) ; ATSlocal (ats_int_type, tmp516) ; // ATSlocal_void (tmp517) ; // ATSlocal_void (tmp518) ; // ATSlocal_void (tmp519) ; // ATSlocal_void (tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; // ATSlocal_void (tmp522) ; // ATSlocal_void (tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; // ATSlocal_void (tmp526) ; // ATSlocal_void (tmp527) ; // ATSlocal_void (tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; // ATSlocal_void (tmp530) ; ATSlocal (ats_int_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; // ATSlocal_void (tmp534) ; // ATSlocal_void (tmp535) ; // ATSlocal_void (tmp536) ; // ATSlocal_void (tmp537) ; // ATSlocal_void (tmp538) ; // ATSlocal_void (tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; // ATSlocal_void (tmp542) ; // ATSlocal_void (tmp543) ; // ATSlocal_void (tmp544) ; // ATSlocal_void (tmp545) ; ATSlocal (ats_int_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; // ATSlocal_void (tmp549) ; // ATSlocal_void (tmp550) ; // ATSlocal_void (tmp551) ; // ATSlocal_void (tmp552) ; // ATSlocal_void (tmp553) ; // ATSlocal_void (tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; // ATSlocal_void (tmp557) ; // ATSlocal_void (tmp558) ; // ATSlocal_void (tmp559) ; // ATSlocal_void (tmp560) ; ATSlocal (ats_int_type, tmp561) ; ATSlocal (ats_int_type, tmp562) ; // ATSlocal_void (tmp563) ; // ATSlocal_void (tmp564) ; // ATSlocal_void (tmp565) ; // ATSlocal_void (tmp566) ; // ATSlocal_void (tmp567) ; // ATSlocal_void (tmp568) ; ATSlocal (ats_int_type, tmp569) ; ATSlocal (ats_bool_type, tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; // ATSlocal_void (tmp572) ; // ATSlocal_void (tmp573) ; // ATSlocal_void (tmp574) ; // ATSlocal_void (tmp575) ; // ATSlocal_void (tmp576) ; // ATSlocal_void (tmp577) ; ATSlocal (ats_int_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; // ATSlocal_void (tmp582) ; // ATSlocal_void (tmp583) ; // ATSlocal_void (tmp584) ; // ATSlocal_void (tmp585) ; // ATSlocal_void (tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; // ATSlocal_void (tmp589) ; // ATSlocal_void (tmp590) ; // ATSlocal_void (tmp591) ; // ATSlocal_void (tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; // ATSlocal_void (tmp596) ; // ATSlocal_void (tmp597) ; // ATSlocal_void (tmp598) ; // ATSlocal_void (tmp599) ; // ATSlocal_void (tmp600) ; // ATSlocal_void (tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (ats_bool_type, tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; // ATSlocal_void (tmp605) ; // ATSlocal_void (tmp606) ; // ATSlocal_void (tmp607) ; // ATSlocal_void (tmp608) ; // ATSlocal_void (tmp609) ; // ATSlocal_void (tmp610) ; ATSlocal (ats_int_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; // ATSlocal_void (tmp613) ; // ATSlocal_void (tmp614) ; // ATSlocal_void (tmp615) ; // ATSlocal_void (tmp616) ; ATSlocal (ats_int_type, tmp617) ; ATSlocal (ats_ptr_type, tmp618) ; // ATSlocal_void (tmp619) ; // ATSlocal_void (tmp620) ; // ATSlocal_void (tmp621) ; // ATSlocal_void (tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; // ATSlocal_void (tmp625) ; // ATSlocal_void (tmp626) ; // ATSlocal_void (tmp627) ; // ATSlocal_void (tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp630) ; // ATSlocal_void (tmp631) ; // ATSlocal_void (tmp632) ; // ATSlocal_void (tmp633) ; // ATSlocal_void (tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; // ATSlocal_void (tmp636) ; // ATSlocal_void (tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; // ATSlocal_void (tmp639) ; // ATSlocal_void (tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; ATSlocal (ats_ptr_type, tmp642) ; // ATSlocal_void (tmp643) ; // ATSlocal_void (tmp644) ; // ATSlocal_void (tmp645) ; // ATSlocal_void (tmp646) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1ecl: tmp452 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg1), atslab_d1ecl_node) ; do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp452)->tag != 0) { goto __ats_lab_113_0 ; } __ats_lab_112_1: /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cnone()")) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp452)->tag != 1) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp453 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp454 = */ atspre_fprint_string (arg0, ATSstrcst("D1Clist(\n")) ; /* tmp455 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1eclist (arg0, tmp453) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp452)->tag != 2) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp456 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp457 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cpackname(")) ; /* tmp458 = */ _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt (arg0, tmp456) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp452)->tag != 3) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp459 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp460 = */ atspre_fprint_string (arg0, ATSstrcst("D1Csymintr(")) ; /* tmp461 = */ fprintlst_01696_ats_ptr_type (arg0, tmp459, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp452)->tag != 4) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp462 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp463 = */ atspre_fprint_string (arg0, ATSstrcst("D1Csymelim(")) ; /* tmp464 = */ fprintlst_01696_ats_ptr_type (arg0, tmp462, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp452)->tag != 5) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp465 = ats_caselptrlab_mac(anairiats_sum_21, tmp452, atslab_0) ; tmp466 = ats_caselptrlab_mac(anairiats_sum_21, tmp452, atslab_1) ; tmp467 = ats_caselptrlab_mac(anairiats_sum_21, tmp452, atslab_2) ; /* tmp468 = */ atspre_fprint_string (arg0, ATSstrcst("D1Coverload(")) ; /* tmp469 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (arg0, tmp465) ; /* tmp470 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp471 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_dqi0de (arg0, tmp466) ; /* tmp472 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp473 = */ atspre_fprint_int (arg0, tmp467) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp452)->tag != 6) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp474 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_0) ; tmp475 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_1) ; /* tmp476 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ce1xpdef(")) ; /* tmp477 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp474) ; /* tmp478 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp479 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, tmp475) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp452)->tag != 7) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp480 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_0) ; /* tmp481 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ce1xpundef(")) ; /* tmp482 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp480) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp452)->tag != 8) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp483 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp484 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cpragma(")) ; /* tmp485 = */ fprintlst_01696_ats_ptr_type (arg0, tmp483, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp452)->tag != 9) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp486 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_0) ; tmp487 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_1) ; /* tmp488 = */ atspre_fprint_string (arg0, ATSstrcst("D1Ccodegen(")) ; /* tmp489 = */ atspre_fprint_int (arg0, tmp486) ; /* tmp490 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp491 = */ fprintlst_01696_ats_ptr_type (arg0, tmp487, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp452)->tag != 10) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp492 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp493 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cdatsrts(\n")) ; /* tmp494 = */ fprintlst_01696_ats_ptr_type (arg0, tmp492, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtdec) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp452)->tag != 11) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp495 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp496 = */ atspre_fprint_string (arg0, ATSstrcst("D1Csrtdefs(\n")) ; /* tmp497 = */ fprintlst_01696_ats_ptr_type (arg0, tmp495, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtdef) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp452)->tag != 12) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp498 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp499 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cstacsts(\n")) ; /* tmp500 = */ fprintlst_01696_ats_ptr_type (arg0, tmp498, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacst) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp452)->tag != 13) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp501 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_0) ; tmp502 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_1) ; /* tmp503 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cstacons(")) ; /* tmp504 = */ atspre_fprint_int (arg0, tmp501) ; /* tmp505 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp506 = */ fprintlst_01696_ats_ptr_type (arg0, tmp502, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacon) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp452)->tag != 15) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp507 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_0) ; tmp508 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_1) ; /* tmp509 = */ atspre_fprint_string (arg0, ATSstrcst("D1Csexpdefs(")) ; /* tmp510 = */ atspre_fprint_int (arg0, tmp507) ; /* tmp511 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp512 = */ fprintlst_01696_ats_ptr_type (arg0, tmp508, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expdef) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp452)->tag != 16) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp513 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp514 = */ atspre_fprint_string (arg0, ATSstrcst("D1Csaspdec(")) ; /* tmp515 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1aspdec (arg0, tmp513) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp452)->tag != 19) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp516 = ats_caselptrlab_mac(anairiats_sum_14, tmp452, atslab_0) ; /* tmp517 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cdatdecs(")) ; /* tmp518 = */ atspre_fprint_int (arg0, tmp516) ; /* tmp519 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp520 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp452)->tag != 18) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp521 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp522 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cexndecs(\n")) ; /* tmp523 = */ fprintlst_01696_ats_ptr_type (arg0, tmp521, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xndec) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp452)->tag != 20) { goto __ats_lab_133_0 ; } __ats_lab_130_1: tmp524 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_0) ; tmp525 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_1) ; /* tmp526 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cclassdec(")) ; /* tmp527 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de (arg0, tmp524) ; do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (tmp525 == (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp529 = ats_caselptrlab_mac(anairiats_sum_15, tmp525, atslab_0) ; /* tmp530 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp528 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp529) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (tmp525 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: break ; } while (0) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp452)->tag != 25) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp531 = ats_caselptrlab_mac(anairiats_sum_22, tmp452, atslab_0) ; tmp532 = ats_caselptrlab_mac(anairiats_sum_22, tmp452, atslab_1) ; tmp533 = ats_caselptrlab_mac(anairiats_sum_22, tmp452, atslab_3) ; /* tmp534 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cdcstdecs(")) ; /* tmp535 = */ atspre_fprint_int (arg0, tmp531) ; /* tmp536 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp537 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_dcstkind (arg0, tmp532) ; /* tmp538 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp539 = */ fprintlst_01696_ats_ptr_type (arg0, tmp533, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1cstdec) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp452)->tag != 21) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp540 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_0) ; tmp541 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_1) ; /* tmp542 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cextype(")) ; /* tmp543 = */ atspre_fprint_string (arg0, tmp540) ; /* tmp544 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp545 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp541) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp452)->tag != 22) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp546 = ats_caselptrlab_mac(anairiats_sum_14, tmp452, atslab_0) ; tmp547 = ats_caselptrlab_mac(anairiats_sum_14, tmp452, atslab_1) ; tmp548 = ats_caselptrlab_mac(anairiats_sum_14, tmp452, atslab_2) ; /* tmp549 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cextype(")) ; /* tmp550 = */ atspre_fprint_int (arg0, tmp546) ; /* tmp551 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp552 = */ atspre_fprint_string (arg0, tmp547) ; /* tmp553 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp554 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp548) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp452)->tag != 23) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp555 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_0) ; tmp556 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_1) ; /* tmp557 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cextvalr")) ; /* tmp558 = */ atspre_fprint_string (arg0, tmp555) ; /* tmp559 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp560 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp556) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp452)->tag != 24) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp561 = ats_caselptrlab_mac(anairiats_sum_8, tmp452, atslab_0) ; tmp562 = ats_caselptrlab_mac(anairiats_sum_8, tmp452, atslab_1) ; /* tmp563 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cextcode(")) ; /* tmp564 = */ atspre_fprint_int (arg0, tmp561) ; /* tmp565 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp566 = */ atspre_fprint_int (arg0, tmp562) ; /* tmp567 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp568 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp452)->tag != 26) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp569 = ats_caselptrlab_mac(anairiats_sum_23, tmp452, atslab_0) ; tmp570 = ats_caselptrlab_mac(anairiats_sum_23, tmp452, atslab_1) ; tmp571 = ats_caselptrlab_mac(anairiats_sum_23, tmp452, atslab_2) ; /* tmp572 = */ atspre_fprint_string (arg0, ATSstrcst("D1macdef(")) ; /* tmp573 = */ atspre_fprint_int (arg0, tmp569) ; /* tmp574 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp575 = */ atspre_fprint_bool (arg0, tmp570) ; /* tmp576 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp577 = */ fprintlst_01696_ats_ptr_type (arg0, tmp571, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_m1acdef) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp452)->tag != 27) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp578 = ats_caselptrlab_mac(anairiats_sum_14, tmp452, atslab_0) ; tmp579 = ats_caselptrlab_mac(anairiats_sum_14, tmp452, atslab_1) ; tmp580 = ats_caselptrlab_mac(anairiats_sum_14, tmp452, atslab_2) ; tmp581 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, tmp580), atslab_i1mpdec_qid) ; /* tmp582 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cimpdec[")) ; /* tmp583 = */ atspre_fprint_int (arg0, tmp578) ; /* tmp584 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp585 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_i1mparg (arg0, tmp579) ; /* tmp586 = */ atspre_fprint_string (arg0, ATSstrcst("(\n")) ; tmp587 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, tmp581), atslab_impqi0de_qua) ; tmp588 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, tmp581), atslab_impqi0de_sym) ; /* tmp589 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_d0ynq (arg0, tmp587) ; /* tmp590 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp588) ; /* tmp591 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; tmp593 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, tmp580), atslab_i1mpdec_def) ; /* tmp592 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1exp (arg0, tmp593) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)tmp452)->tag != 28) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp594 = ats_caselptrlab_mac(anairiats_sum_9, tmp452, atslab_0) ; tmp595 = ats_caselptrlab_mac(anairiats_sum_9, tmp452, atslab_1) ; /* tmp596 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cfundecs(")) ; /* tmp597 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funkind (arg0, tmp594) ; /* tmp598 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp599 = */ fprintlst_01696_ats_ptr_type (arg0, tmp595, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marg) ; /* tmp600 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp601 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp452)->tag != 29) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp602 = ats_caselptrlab_mac(anairiats_sum_26, tmp452, atslab_0) ; tmp603 = ats_caselptrlab_mac(anairiats_sum_26, tmp452, atslab_1) ; tmp604 = ats_caselptrlab_mac(anairiats_sum_26, tmp452, atslab_2) ; /* tmp605 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cvaldecs(")) ; /* tmp606 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_valkind (arg0, tmp602) ; /* tmp607 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp608 = */ atspre_fprint_bool (arg0, tmp603) ; /* tmp609 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp610 = */ fprintlst_01696_ats_ptr_type (arg0, tmp604, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1aldec) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp452)->tag != 30) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp611 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_0) ; tmp612 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_1) ; /* tmp613 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cvardecs(")) ; /* tmp614 = */ atspre_fprint_int (arg0, tmp611) ; /* tmp615 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp616 = */ fprintlst_01696_ats_ptr_type (arg0, tmp612, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__fprint_v1ardec) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp452)->tag != 31) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp617 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_0) ; tmp618 = ats_caselptrlab_mac(anairiats_sum_7, tmp452, atslab_1) ; /* tmp619 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cinclude(")) ; /* tmp620 = */ atspre_fprint_int (arg0, tmp617) ; /* tmp621 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp622 = */ fprintlst_01696_ats_ptr_type (arg0, tmp618, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1ecl) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp452)->tag != 32) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp623 = ats_caselptrlab_mac(anairiats_sum_6, tmp452, atslab_0) ; tmp624 = ats_caselptrlab_mac(anairiats_sum_6, tmp452, atslab_1) ; /* tmp625 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cstaload(")) ; /* tmp626 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbolopt (arg0, tmp623) ; /* tmp627 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp628 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp624) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp452)->tag != 33) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp629 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_0) ; tmp630 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_1) ; /* tmp631 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cstaloadnm(")) ; /* tmp632 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbolopt (arg0, tmp629) ; /* tmp633 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp634 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp630) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp452)->tag != 34) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp635 = ats_caselptrlab_mac(anairiats_sum_9, tmp452, atslab_1) ; /* tmp636 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cstaloadloc(")) ; /* tmp637 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp635) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(", ...)")) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp452)->tag != 35) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp638 = ats_caselptrlab_mac(anairiats_sum_1, tmp452, atslab_0) ; /* tmp639 = */ atspre_fprint_string (arg0, ATSstrcst("D1Cdynload(")) ; /* tmp640 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp638) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp452)->tag != 36) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp641 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_0) ; tmp642 = ats_caselptrlab_mac(anairiats_sum_2, tmp452, atslab_1) ; /* tmp643 = */ atspre_fprint_string (arg0, ATSstrcst("D1Clocal(\n")) ; /* tmp644 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1eclist (arg0, tmp641) ; /* tmp645 = */ atspre_fprint_string (arg0, ATSstrcst("\n(*in*)\n")) ; /* tmp646 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1eclist (arg0, tmp642) ; /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: __ats_lab_149_1: /* tmp451 = */ atspre_fprint_string (arg0, ATSstrcst("D1C...(...)")) ; break ; } while (0) ; return /* (tmp451) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1ecl] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 27645(line=1206, offs=13) -- 27679(line=1206, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__print_d1ecl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp647) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__print_d1ecl: /* tmp647 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1ecl (stdout, arg0) ; return /* (tmp647) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__print_d1ecl] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 27702(line=1208, offs=13) -- 27736(line=1208, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1ecl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp648) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1ecl: /* tmp648 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1ecl (stderr, arg0) ; return /* (tmp648) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1ecl] */ /* // /tmp/ATS-Postiats/src/pats_dynexp1_print.dats: 27787(line=1214, offs=3) -- 27842(line=1214, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1eclist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp649) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1eclist: /* tmp649 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1ecl) ; return /* (tmp649) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__fprint_d1eclist] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp1_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lexing_print_dats.c0000644000175000017500000016720013431250607023235 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; /* external typedefs */ /* external dynamic constructor declarations */ 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_AT_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BAR_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BANG_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BQUOTE_4) ; 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_COLON_6) ; 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_DOLLAR_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOT_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOTDOT_11) ; 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_EQ_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGT_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLT_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLTGT_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGT_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGTGT_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGTGT_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_HASH_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LT_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GT_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTLT_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLT_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTDOT_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLTGTDOT_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSGT_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLT_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLTGT_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TILDE_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ABSTYPE_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ASSUME_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REASSUME_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AS_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AND_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BEGIN_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CASE_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CLASSDEC_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATASORT_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATATYPE_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DO_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ELSE_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_END_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXCEPTION_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTERN_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTYPE_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTVAR_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIX_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIXITY_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOR_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FORSTAR_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FUN_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IF_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IFCASE_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPLEMENT_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPORT_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IN_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LAM_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LET_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LOCAL_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MACDEF_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONFIX_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OF_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OP_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REC_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SIF_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SCASE_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STACST_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STADEF_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STATIC_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SORTDEF_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMELIM_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMINTR_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMLOAD_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_THEN_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TKINDEF_76) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TRY_77) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPE_78) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPEDEF_79) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAL_80) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAR_81) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHEN_82) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHERE_83) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILE_84) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILESTAR_85) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITH_86) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITHTYPE_87) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ADDRAT_88) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOLDAT_89) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FREEAT_90) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VIEWAT_91) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRDELAY_92) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRARRPSZ_93) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTYREP_94) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRD2CTYPE_95) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_96) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_ARG_97) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTERN_98) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_99) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTKIND_100) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_STRUCT_101) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTVAL_102) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTFCALL_103) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTMCALL_104) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLITERAL_105) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFILENAME_106) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYLOCATION_107) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFUNCTION_108) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLST_109) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRREC_110) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTUP_111) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRBREAK_112) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRCONTINUE_113) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRRAISE_114) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVARARG_115) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVCOPYENV_116) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSHOWTYPE_117) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTEMPENVER_118) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLASSERT_119) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLVERIFY_120) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIF_121) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFDEF_122) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFNDEF_123) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPTHEN_124) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIF_125) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFDEF_126) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFNDEF_127) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELSE_128) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPENDIF_129) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPERROR_130) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRERR_131) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRINT_132) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPASSERT_133) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPUNDEF_134) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDEFINE_135) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPINCLUDE_136) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPSTALOAD_137) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDYNLOAD_138) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPREQUIRE_139) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRAGMA_140) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN2_141) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN3_142) ; 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_CDATA_153) ; 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) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_token) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_lexing_print.dats: 1516(line=46, offs=3) -- 11522(line=288, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_token (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_int_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_char_type, tmp28) ; ATSlocal (ats_int_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_int_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_token: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_token_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 1) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("AT()")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp1)->tag != 5) { goto __ats_lab_2_0 ; } __ats_lab_1_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("BACKSLASH()")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp1)->tag != 3) { goto __ats_lab_3_0 ; } __ats_lab_2_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("BANG()")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp1)->tag != 2) { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("BAR()")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("BQUOTE()")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp1)->tag != 6) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("COLON()")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp1)->tag != 8) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DOLLAR()")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp1)->tag != 9) { goto __ats_lab_8_0 ; } __ats_lab_7_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DOT()")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp1)->tag != 13) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EQ()")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp1)->tag != 20) { goto __ats_lab_10_0 ; } __ats_lab_9_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("HASH()")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp1)->tag != 30) { goto __ats_lab_11_0 ; } __ats_lab_10_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("TILDE()")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp1)->tag != 12) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DOTINT(%i)"), tmp2) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp1)->tag != 10) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DOTDOT()")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp1)->tag != 11) { goto __ats_lab_14_0 ; } __ats_lab_13_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DOTDOTDOT()")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp1)->tag != 14) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EQGT()")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp1)->tag != 15) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EQLT()")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp1)->tag != 16) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EQLTGT()")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp1)->tag != 17) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EQSLASHEQGT()")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp1)->tag != 18) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EQGTGT()")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp1)->tag != 19) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EQSLASHEQGTGT()")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp1)->tag != 21) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("LT()")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp1)->tag != 22) { goto __ats_lab_22_0 ; } __ats_lab_21_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("GT()")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp1)->tag != 23) { goto __ats_lab_23_0 ; } __ats_lab_22_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("GTLT()")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp1)->tag != 24) { goto __ats_lab_24_0 ; } __ats_lab_23_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DOTLT()")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp1)->tag != 25) { goto __ats_lab_25_0 ; } __ats_lab_24_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("GTDOT()")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp1)->tag != 26) { goto __ats_lab_26_0 ; } __ats_lab_25_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DOTLTGTDOT()")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp1)->tag != 27) { goto __ats_lab_27_0 ; } __ats_lab_26_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("MINUSGT()")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp1)->tag != 28) { goto __ats_lab_28_0 ; } __ats_lab_27_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("MINUSLT()")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp1)->tag != 29) { goto __ats_lab_29_0 ; } __ats_lab_28_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("MINUSLTGT()")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp1)->tag != 7) { goto __ats_lab_30_0 ; } __ats_lab_29_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("COLONLT()")) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp1)->tag != 31) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("ABSTYPE(%i)"), tmp3) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp1)->tag != 32) { goto __ats_lab_32_0 ; } __ats_lab_31_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("ASSUME()")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp1)->tag != 33) { goto __ats_lab_33_0 ; } __ats_lab_32_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("REASSUME()")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp1)->tag != 34) { goto __ats_lab_34_0 ; } __ats_lab_33_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("AS()")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp1)->tag != 35) { goto __ats_lab_35_0 ; } __ats_lab_34_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("AND()")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp1)->tag != 36) { goto __ats_lab_36_0 ; } __ats_lab_35_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("BEGIN()")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp1)->tag != 37) { goto __ats_lab_37_0 ; } __ats_lab_36_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("CASE(...)")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp1)->tag != 38) { goto __ats_lab_38_0 ; } __ats_lab_37_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("CLASSDEC()")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp1)->tag != 39) { goto __ats_lab_39_0 ; } __ats_lab_38_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DATASORT()")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp1)->tag != 40) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DATATYPE(%i)"), tmp4) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp1)->tag != 41) { goto __ats_lab_41_0 ; } __ats_lab_40_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DO()")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp1)->tag != 42) { goto __ats_lab_42_0 ; } __ats_lab_41_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("ELSE()")) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp1)->tag != 43) { goto __ats_lab_43_0 ; } __ats_lab_42_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("END()")) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp1)->tag != 44) { goto __ats_lab_44_0 ; } __ats_lab_43_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EXCEPTION()")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp1)->tag != 45) { goto __ats_lab_45_0 ; } __ats_lab_44_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EXTERN()")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp1)->tag != 46) { goto __ats_lab_46_0 ; } __ats_lab_45_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EXTYPE()")) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp1)->tag != 47) { goto __ats_lab_47_0 ; } __ats_lab_46_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EXTVAR()")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp1)->tag != 48) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("FIX(%i)"), tmp5) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp1)->tag != 49) { goto __ats_lab_49_0 ; } __ats_lab_48_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("FIXITY(...)")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp1)->tag != 50) { goto __ats_lab_50_0 ; } __ats_lab_49_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("FOR()")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp1)->tag != 51) { goto __ats_lab_51_0 ; } __ats_lab_50_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("FORSTAR()")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp1)->tag != 52) { goto __ats_lab_52_0 ; } __ats_lab_51_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("FUN(...)")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp1)->tag != 53) { goto __ats_lab_53_0 ; } __ats_lab_52_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IF()")) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp1)->tag != 54) { goto __ats_lab_54_0 ; } __ats_lab_53_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IFCASE()")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp1)->tag != 55) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IMPLEMENT(%i)"), tmp6) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp1)->tag != 56) { goto __ats_lab_56_0 ; } __ats_lab_55_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IMPORT()")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp1)->tag != 57) { goto __ats_lab_57_0 ; } __ats_lab_56_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IN()")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp1)->tag != 58) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("LAM(%i)"), tmp7) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp1)->tag != 59) { goto __ats_lab_59_0 ; } __ats_lab_58_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("LET()")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp1)->tag != 60) { goto __ats_lab_60_0 ; } __ats_lab_59_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("LOCAL()")) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp1)->tag != 61) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("MACDEF(%i)"), tmp8) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp1)->tag != 62) { goto __ats_lab_62_0 ; } __ats_lab_61_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("NONFIX()")) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp1)->tag != 63) { goto __ats_lab_63_0 ; } __ats_lab_62_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("OF()")) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp1)->tag != 64) { goto __ats_lab_64_0 ; } __ats_lab_63_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("OP()")) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp1)->tag != 65) { goto __ats_lab_65_0 ; } __ats_lab_64_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("REC()")) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp1)->tag != 66) { goto __ats_lab_66_0 ; } __ats_lab_65_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SIF()")) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp1)->tag != 67) { goto __ats_lab_67_0 ; } __ats_lab_66_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SCASE()")) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp1)->tag != 71) { goto __ats_lab_68_0 ; } __ats_lab_67_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SORTDEF()")) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp1)->tag != 68) { goto __ats_lab_69_0 ; } __ats_lab_68_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("STACST()")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp1)->tag != 69) { goto __ats_lab_70_0 ; } __ats_lab_69_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("STADEF()")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp1)->tag != 70) { goto __ats_lab_71_0 ; } __ats_lab_70_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("STATIC()")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp1)->tag != 72) { goto __ats_lab_72_0 ; } __ats_lab_71_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SYMELIM()")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp1)->tag != 73) { goto __ats_lab_73_0 ; } __ats_lab_72_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SYMINTR()")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp1)->tag != 74) { goto __ats_lab_74_0 ; } __ats_lab_73_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SYMLOAD()")) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp1)->tag != 75) { goto __ats_lab_75_0 ; } __ats_lab_74_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("THEN()")) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp1)->tag != 76) { goto __ats_lab_76_0 ; } __ats_lab_75_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("TKINDEF()")) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp1)->tag != 77) { goto __ats_lab_77_0 ; } __ats_lab_76_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("TRY()")) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp1)->tag != 78) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("TYPE(%i)"), tmp9) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp1)->tag != 79) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("TYPEDEF(%i)"), tmp10) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp1)->tag != 80) { goto __ats_lab_80_0 ; } __ats_lab_79_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("VAL(...)")) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp1)->tag != 81) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("VAR(%i)"), tmp11) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp1)->tag != 82) { goto __ats_lab_82_0 ; } __ats_lab_81_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("WHEN()")) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp1)->tag != 83) { goto __ats_lab_83_0 ; } __ats_lab_82_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("WHERE()")) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp1)->tag != 84) { goto __ats_lab_84_0 ; } __ats_lab_83_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("WHILE()")) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp1)->tag != 85) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("WHILESTAR()")) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp1)->tag != 86) { goto __ats_lab_86_0 ; } __ats_lab_85_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("WITH()")) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp1)->tag != 87) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("WITHTYPE(%i)"), tmp12) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp1)->tag != 88) { goto __ats_lab_88_0 ; } __ats_lab_87_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("ADDRAT()")) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp1)->tag != 89) { goto __ats_lab_89_0 ; } __ats_lab_88_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("FOLDAT()")) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp1)->tag != 90) { goto __ats_lab_90_0 ; } __ats_lab_89_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("FREEAT()")) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp1)->tag != 91) { goto __ats_lab_91_0 ; } __ats_lab_90_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("VIEWAT()")) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp1)->tag != 92) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRDELAY(%i)"), tmp13) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp1)->tag != 93) { goto __ats_lab_93_0 ; } __ats_lab_92_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRARRPSZ()")) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp1)->tag != 94) { goto __ats_lab_94_0 ; } __ats_lab_93_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRTYREP()")) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp1)->tag != 95) { goto __ats_lab_95_0 ; } __ats_lab_94_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRD2CTYPE()")) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp1)->tag != 96) { goto __ats_lab_96_0 ; } __ats_lab_95_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLREFFMASK()")) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp1)->tag != 97) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLREFFMASK(%i)"), tmp14) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp1)->tag != 98) { goto __ats_lab_98_0 ; } __ats_lab_97_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLREXTERN()")) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp1)->tag != 100) { goto __ats_lab_99_0 ; } __ats_lab_98_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLREXTKIND()")) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp1)->tag != 99) { goto __ats_lab_100_0 ; } __ats_lab_99_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLREXTYPE()")) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp1)->tag != 101) { goto __ats_lab_101_0 ; } __ats_lab_100_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLREXTYPE_STRUCT()")) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp1)->tag != 102) { goto __ats_lab_102_0 ; } __ats_lab_101_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLREXTVAL()")) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp1)->tag != 103) { goto __ats_lab_103_0 ; } __ats_lab_102_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLREXTFCALL()")) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp1)->tag != 104) { goto __ats_lab_104_0 ; } __ats_lab_103_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLREXTMCALL()")) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp1)->tag != 105) { goto __ats_lab_105_0 ; } __ats_lab_104_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRLITERAL()")) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp1)->tag != 106) { goto __ats_lab_106_0 ; } __ats_lab_105_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRMYFILENAME()")) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp1)->tag != 107) { goto __ats_lab_107_0 ; } __ats_lab_106_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRMYLOCATION()")) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp1)->tag != 108) { goto __ats_lab_108_0 ; } __ats_lab_107_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRMYFUNCTION()")) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp1)->tag != 109) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRLST(%i)"), tmp15) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp1)->tag != 110) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRREC(%i)"), tmp16) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp1)->tag != 111) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRTUP(%i)"), tmp17) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp1)->tag != 112) { goto __ats_lab_112_0 ; } __ats_lab_111_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRBREAK()")) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp1)->tag != 113) { goto __ats_lab_113_0 ; } __ats_lab_112_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRCONTINUE()")) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp1)->tag != 114) { goto __ats_lab_114_0 ; } __ats_lab_113_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRRAISE()")) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp1)->tag != 115) { goto __ats_lab_115_0 ; } __ats_lab_114_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRVARARG()")) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp1)->tag != 116) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRVCOPYENV(%i)"), tmp18) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp1)->tag != 117) { goto __ats_lab_117_0 ; } __ats_lab_116_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRSHOWTYPE()")) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp1)->tag != 118) { goto __ats_lab_118_0 ; } __ats_lab_117_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRTEMPENVER()")) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp1)->tag != 119) { goto __ats_lab_119_0 ; } __ats_lab_118_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRSOLASSERT()")) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp1)->tag != 120) { goto __ats_lab_120_0 ; } __ats_lab_119_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("DLRSOLVERIFY()")) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp1)->tag != 121) { goto __ats_lab_121_0 ; } __ats_lab_120_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPIF()")) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp1)->tag != 122) { goto __ats_lab_122_0 ; } __ats_lab_121_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPIFDEF()")) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp1)->tag != 123) { goto __ats_lab_123_0 ; } __ats_lab_122_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPIFNDEF()")) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp1)->tag != 124) { goto __ats_lab_124_0 ; } __ats_lab_123_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPTHEN()")) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp1)->tag != 128) { goto __ats_lab_125_0 ; } __ats_lab_124_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPELSE()")) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp1)->tag != 125) { goto __ats_lab_126_0 ; } __ats_lab_125_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPELIF()")) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp1)->tag != 126) { goto __ats_lab_127_0 ; } __ats_lab_126_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPELIFDEF()")) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp1)->tag != 127) { goto __ats_lab_128_0 ; } __ats_lab_127_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPELIFNDEF()")) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp1)->tag != 129) { goto __ats_lab_129_0 ; } __ats_lab_128_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPENDIF()")) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp1)->tag != 130) { goto __ats_lab_130_0 ; } __ats_lab_129_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPERROR()")) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp1)->tag != 131) { goto __ats_lab_131_0 ; } __ats_lab_130_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPPRERR()")) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp1)->tag != 132) { goto __ats_lab_132_0 ; } __ats_lab_131_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPPRINT()")) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp1)->tag != 133) { goto __ats_lab_133_0 ; } __ats_lab_132_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPASSERT()")) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp1)->tag != 134) { goto __ats_lab_134_0 ; } __ats_lab_133_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPUNDEF()")) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp1)->tag != 135) { goto __ats_lab_135_0 ; } __ats_lab_134_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPDEFINE()")) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp1)->tag != 136) { goto __ats_lab_136_0 ; } __ats_lab_135_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPINCLUDE()")) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp1)->tag != 137) { goto __ats_lab_137_0 ; } __ats_lab_136_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPSTALOAD()")) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp1)->tag != 138) { goto __ats_lab_138_0 ; } __ats_lab_137_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPDYNLOAD()")) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp1)->tag != 139) { goto __ats_lab_139_0 ; } __ats_lab_138_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPREQUIRE()")) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp1)->tag != 140) { goto __ats_lab_140_0 ; } __ats_lab_139_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPPRAGMA()")) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)tmp1)->tag != 141) { goto __ats_lab_141_0 ; } __ats_lab_140_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPCODEGEN2()")) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp1)->tag != 142) { goto __ats_lab_142_0 ; } __ats_lab_141_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SRPCODEGEN3()")) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp1)->tag != 143) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IDENT_alp(%s)"), tmp19) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp1)->tag != 144) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IDENT_sym(%s)"), tmp20) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp1)->tag != 145) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IDENT_arr(%s)"), tmp21) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp1)->tag != 146) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IDENT_tmp(%s)"), tmp22) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp1)->tag != 147) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IDENT_dlr(%s)"), tmp23) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp1)->tag != 148) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IDENT_srp(%s)"), tmp24) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp1)->tag != 149) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("IDENT_ext(%s)"), tmp25) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)tmp1)->tag != 150) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp27 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("INT(%i; %s)"), tmp26, tmp27) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp1)->tag != 151) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("CHAR(%c)"), tmp28) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)tmp1)->tag != 152) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; tmp30 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_1) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("FLOAT(%i; %s)"), tmp29, tmp30) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)tmp1)->tag != 153) { goto __ats_lab_153_0 ; } __ats_lab_152_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("CDATA(...)")) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp1)->tag != 154) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("STRING(%s)"), tmp31) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)tmp1)->tag != 155) { goto __ats_lab_155_0 ; } __ats_lab_154_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("COMMA()")) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)tmp1)->tag != 156) { goto __ats_lab_156_0 ; } __ats_lab_155_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("SEMICOLON()")) ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)tmp1)->tag != 157) { goto __ats_lab_157_0 ; } __ats_lab_156_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("LPAREN()")) ; break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)tmp1)->tag != 158) { goto __ats_lab_158_0 ; } __ats_lab_157_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("RPAREN()")) ; break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)tmp1)->tag != 159) { goto __ats_lab_159_0 ; } __ats_lab_158_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("LBRACKET()")) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: if (((ats_sum_ptr_type)tmp1)->tag != 160) { goto __ats_lab_160_0 ; } __ats_lab_159_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("RBRACKET()")) ; break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: if (((ats_sum_ptr_type)tmp1)->tag != 161) { goto __ats_lab_161_0 ; } __ats_lab_160_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("LBRACE()")) ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: if (((ats_sum_ptr_type)tmp1)->tag != 162) { goto __ats_lab_162_0 ; } __ats_lab_161_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("RBRACE()")) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: if (((ats_sum_ptr_type)tmp1)->tag != 163) { goto __ats_lab_163_0 ; } __ats_lab_162_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("ATLPAREN()")) ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)tmp1)->tag != 164) { goto __ats_lab_164_0 ; } __ats_lab_163_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("QUOTELPAREN()")) ; break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)tmp1)->tag != 165) { goto __ats_lab_165_0 ; } __ats_lab_164_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("ATLBRACKET()")) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)tmp1)->tag != 166) { goto __ats_lab_166_0 ; } __ats_lab_165_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("QUOTELBRACKET()")) ; break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)tmp1)->tag != 167) { goto __ats_lab_167_0 ; } __ats_lab_166_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("HASHLBRACKET()")) ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: if (((ats_sum_ptr_type)tmp1)->tag != 168) { goto __ats_lab_168_0 ; } __ats_lab_167_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("ATLBRACE()")) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: if (((ats_sum_ptr_type)tmp1)->tag != 169) { goto __ats_lab_169_0 ; } __ats_lab_168_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("QUOTELBRACE()")) ; break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: if (((ats_sum_ptr_type)tmp1)->tag != 170) { goto __ats_lab_170_0 ; } __ats_lab_169_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("BQUOTELPAREN()")) ; break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: if (((ats_sum_ptr_type)tmp1)->tag != 171) { goto __ats_lab_171_0 ; } __ats_lab_170_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("COMMALPAREN()")) ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: if (((ats_sum_ptr_type)tmp1)->tag != 172) { goto __ats_lab_172_0 ; } __ats_lab_171_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("PERCENTLPAREN()")) ; break ; /* branch: __ats_lab_172 */ __ats_lab_172_0: if (((ats_sum_ptr_type)tmp1)->tag != 173) { goto __ats_lab_173_0 ; } __ats_lab_172_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_0) ; tmp33 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_1) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EXTCODE(%i, %s)"), tmp32, tmp33) ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: if (((ats_sum_ptr_type)tmp1)->tag != 174) { goto __ats_lab_174_0 ; } __ats_lab_173_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("COMMENT_line()")) ; break ; /* branch: __ats_lab_174 */ __ats_lab_174_0: if (((ats_sum_ptr_type)tmp1)->tag != 176) { goto __ats_lab_175_0 ; } __ats_lab_174_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("COMMENT_block()")) ; break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: if (((ats_sum_ptr_type)tmp1)->tag != 175) { goto __ats_lab_176_0 ; } __ats_lab_175_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("COMMENT_rest()")) ; break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: if (((ats_sum_ptr_type)tmp1)->tag != 177) { goto __ats_lab_177_0 ; } __ats_lab_176_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("ERR()")) ; break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: if (((ats_sum_ptr_type)tmp1)->tag != 178) { goto __ats_lab_178_0 ; } __ats_lab_177_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("EOF()")) ; break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: // if (((ats_sum_ptr_type)tmp1)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_178_1: /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("NONE()")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_token] */ /* // /tmp/ATS-Postiats/src/pats_lexing_print.dats: 11622(line=295, offs=23) -- 11660(line=295, offs=61) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__print_token (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__print_token: /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_token (stdout, arg0) ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__print_token] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lexing_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_basics_sats.c0000644000175000017500000001213013431250607022005 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infix_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixl_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixr_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_prefix_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_postfix_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fn_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fnx_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fun_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfn_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfun_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_praxi_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_castfn_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_pos_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_neg_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_prval_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKval_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKpraxi_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprfun_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprval_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKcastfn_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; /* exn constructor declarations */ /* static load function */ ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infix_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixl_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixr_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_prefix_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_postfix_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fn_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fnx_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fun_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfn_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfun_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_praxi_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_castfn_6.tag = 6 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_pos_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_neg_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_prval_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKval_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKpraxi_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprfun_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprval_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKcastfn_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1.tag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_basics_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_codegen2_datype_dats.c0000644000175000017500000011205713431250607023567 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_datype) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type auxerr_nil_0 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_cons_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxfun0_3 (ats_ptr_type env0, ats_ptr_type env1) ; static ats_clo_ptr_type auxfun0_3_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxfun0_3_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxfun1_4 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type auxfun1_4_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxfun1_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxcon_5 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxcon_5_closure_make (ats_ptr_type env0) ; static ats_void_type auxcon_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxconlst_6 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxconlst_6_closure_make (ats_ptr_type env0) ; static ats_void_type auxconlst_6_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type aux_datype_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr_nil_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_cons_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxfun0_11 (ats_ptr_type env0, ats_ptr_type env1) ; static ats_clo_ptr_type auxfun0_11_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxfun0_11_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxfun1_12 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type auxfun1_12_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxfun1_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxcon_13 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxcon_13_closure_make (ats_ptr_type env0) ; static ats_void_type auxcon_13_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxconlst_14 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxconlst_14_closure_make (ats_ptr_type env0) ; static ats_void_type auxconlst_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type aux_datype_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 1813(line=66, offs=1) -- 2078(line=83, offs=2) */ ATSstaticdec() ats_void_type auxerr_nil_0 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; __ats_lab_auxerr_nil_0: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp1) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): no spec on datatype is given\n")) ; /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("*)")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; return /* (tmp0) */ ; } /* end of [auxerr_nil_0] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 2110(line=86, offs=1) -- 2388(line=105, offs=2) */ ATSstaticdec() ats_void_type auxerr_cons_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; __ats_lab_auxerr_cons_1: tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp7) ; /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): no datatype of the given spec\n")) ; /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst("*)")) ; /* tmp6 = */ atspre_fprint_newline (arg0) ; return /* (tmp6) */ ; } /* end of [auxerr_cons_1] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 2512(line=115, offs=1) -- 2675(line=125, offs=4) */ ATSstaticdec() ats_void_type auxfun0_3 (ats_ptr_type env0, ats_ptr_type env1) { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; __ats_lab_auxfun0_3: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (env1) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp14) ; /* tmp16 = */ atspre_fprint_string (env0, ATSstrcst("datcon_")) ; /* tmp17 = */ atspre_fprint_string (env0, tmp15) ; /* tmp13 = */ atspre_fprint_string (env0, ATSstrcst("_")) ; return /* (tmp13) */ ; } /* end of [auxfun0_3] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxfun0_3_closure_type ; ats_void_type auxfun0_3_clofun (ats_clo_ptr_type cloptr) { auxfun0_3 (((auxfun0_3_closure_type*)cloptr)->closure_env_0, ((auxfun0_3_closure_type*)cloptr)->closure_env_1) ; return ; } /* end of function */ ATSinline() ats_void_type auxfun0_3_closure_init (auxfun0_3_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxfun0_3_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxfun0_3_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxfun0_3_closure_type *p_clo = ATS_MALLOC(sizeof(auxfun0_3_closure_type)) ; auxfun0_3_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 2703(line=128, offs=1) -- 2942(line=141, offs=2) */ ATSstaticdec() ats_void_type auxfun1_4 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab_auxfun1_4: tmp19 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp19)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_2, tmp19, atslab_0) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (env0, tmp20) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp19)->tag != 5) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_2, tmp19, atslab_0) ; /* tmp18 = */ atspre_fprint_string (env0, tmp21) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: /* tmp18 = */ auxfun0_3 (env0, env1) ; break ; } while (0) ; return /* (tmp18) */ ; } /* end of [auxfun1_4] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxfun1_4_closure_type ; ats_void_type auxfun1_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxfun1_4 (((auxfun1_4_closure_type*)cloptr)->closure_env_0, ((auxfun1_4_closure_type*)cloptr)->closure_env_1, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxfun1_4_closure_init (auxfun1_4_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxfun1_4_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxfun1_4_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxfun1_4_closure_type *p_clo = ATS_MALLOC(sizeof(auxfun1_4_closure_type)) ; auxfun1_4_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 2950(line=144, offs=1) -- 3128(line=154, offs=4) */ ATSstaticdec() ats_void_type auxcon_5 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; __ats_lab_auxcon_5: tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym (arg0) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp23) ; /* tmp25 = */ atspre_fprint_string (env0, ATSstrcst("| ")) ; /* tmp26 = */ atspre_fprint_string (env0, tmp24) ; /* tmp27 = */ atspre_fprint_string (env0, ATSstrcst(" _ => \"")) ; /* tmp28 = */ atspre_fprint_string (env0, tmp24) ; /* tmp29 = */ atspre_fprint_string (env0, ATSstrcst("\"")) ; /* tmp22 = */ atspre_fprint_newline (env0) ; return /* (tmp22) */ ; } /* end of [auxcon_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxcon_5_closure_type ; ats_void_type auxcon_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxcon_5 (((auxcon_5_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxcon_5_closure_init (auxcon_5_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcon_5_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxcon_5_closure_make (ats_ptr_type env0) { auxcon_5_closure_type *p_clo = ATS_MALLOC(sizeof(auxcon_5_closure_type)) ; auxcon_5_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 3155(line=157, offs=1) -- 3316(line=166, offs=2) */ ATSstaticdec() ats_void_type auxconlst_6 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; __ats_lab_auxconlst_6: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp32 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp33 = */ auxcon_5 (env0, tmp31) ; arg0 = tmp32 ; goto __ats_lab_auxconlst_6 ; // tail call break ; } while (0) ; return /* (tmp30) */ ; } /* end of [auxconlst_6] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxconlst_6_closure_type ; ats_void_type auxconlst_6_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxconlst_6 (((auxconlst_6_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxconlst_6_closure_init (auxconlst_6_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxconlst_6_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxconlst_6_closure_make (ats_ptr_type env0) { auxconlst_6_closure_type *p_clo = ATS_MALLOC(sizeof(auxconlst_6_closure_type)) ; auxconlst_6_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 2421(line=108, offs=1) -- 4056(line=215, offs=4) */ ATSstaticdec() ats_void_type aux_datype_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; __ats_lab_aux_datype_2: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name (arg2) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (arg2) ; if (tmp35 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 3357(line=169, offs=5) -- 3394(line=169, offs=42)") ; } tmp36 = ats_caselptrlab_mac(anairiats_sum_4, tmp35, atslab_0) ; /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("(* ****** ****** *)\n")) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp39 = */ atspre_fprint_string (arg0, ATSstrcst("implement\n")) ; /* tmp40 = */ atspre_fprint_string (arg0, ATSstrcst("{}(*tmp*)\n")) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp41 = */ auxfun0_3 (arg0, arg2) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; /* tmp41 = */ auxfun1_4 (arg0, arg2, tmp42) ; break ; } while (0) ; /* tmp43 = */ atspre_fprint_string (arg0, ATSstrcst("\n ")) ; /* tmp44 = */ atspre_fprint_string (arg0, ATSstrcst("(arg0) =\n")) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst("(\n")) ; /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst("case+ arg0 of\n")) ; /* tmp47 = */ auxconlst_6 (arg0, tmp36) ; /* tmp48 = */ atspre_fprint_string (arg0, ATSstrcst(")\n")) ; /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst("(* ****** ****** *)\n")) ; return /* (tmp12) */ ; } /* end of [aux_datype_2] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 4131(line=221, offs=3) -- 4526(line=243, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcon (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcon: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: /* tmp50 = */ auxerr_nil_0 (arg0, arg1) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_datype (tmp51) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (tmp53 != (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: /* tmp50 = */ auxerr_cons_1 (arg0, arg1, tmp51) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (tmp53 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_4, tmp53, atslab_0) ; ATS_FREE(tmp53) ; /* tmp50 = */ aux_datype_2 (arg0, arg1, tmp54, tmp52) ; break ; } while (0) ; break ; } while (0) ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcon] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 4611(line=252, offs=1) -- 4876(line=269, offs=2) */ ATSstaticdec() ats_void_type auxerr_nil_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; __ats_lab_auxerr_nil_8: tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ; /* tmp57 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp56) ; /* tmp59 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): no spec on datatype is given\n")) ; /* tmp55 = */ atspre_fprint_string (arg0, ATSstrcst("*)\n")) ; return /* (tmp55) */ ; } /* end of [auxerr_nil_8] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 4908(line=272, offs=1) -- 5185(line=290, offs=2) */ ATSstaticdec() ats_void_type auxerr_cons_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; __ats_lab_auxerr_cons_9: tmp61 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ; /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp61) ; /* tmp64 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): no datatype of the given spec\n")) ; /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst("*)\n")) ; return /* (tmp60) */ ; } /* end of [auxerr_cons_9] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 5309(line=300, offs=1) -- 5475(line=310, offs=4) */ ATSstaticdec() ats_void_type auxfun0_11 (ats_ptr_type env0, ats_ptr_type env1) { /* local vardec */ // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; __ats_lab_auxfun0_11: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (env1) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp67) ; /* tmp69 = */ atspre_fprint_string (env0, ATSstrcst("datcontag_")) ; /* tmp70 = */ atspre_fprint_string (env0, tmp68) ; /* tmp66 = */ atspre_fprint_string (env0, ATSstrcst("_")) ; return /* (tmp66) */ ; } /* end of [auxfun0_11] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxfun0_11_closure_type ; ats_void_type auxfun0_11_clofun (ats_clo_ptr_type cloptr) { auxfun0_11 (((auxfun0_11_closure_type*)cloptr)->closure_env_0, ((auxfun0_11_closure_type*)cloptr)->closure_env_1) ; return ; } /* end of function */ ATSinline() ats_void_type auxfun0_11_closure_init (auxfun0_11_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxfun0_11_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxfun0_11_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxfun0_11_closure_type *p_clo = ATS_MALLOC(sizeof(auxfun0_11_closure_type)) ; auxfun0_11_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 5503(line=313, offs=1) -- 5744(line=326, offs=2) */ ATSstaticdec() ats_void_type auxfun1_12 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab_auxfun1_12: tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp72)->tag != 0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_2, tmp72, atslab_0) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (env0, tmp73) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp72)->tag != 5) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_2, tmp72, atslab_0) ; /* tmp71 = */ atspre_fprint_string (env0, tmp74) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: /* tmp71 = */ auxfun0_11 (env0, env1) ; break ; } while (0) ; return /* (tmp71) */ ; } /* end of [auxfun1_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxfun1_12_closure_type ; ats_void_type auxfun1_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxfun1_12 (((auxfun1_12_closure_type*)cloptr)->closure_env_0, ((auxfun1_12_closure_type*)cloptr)->closure_env_1, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxfun1_12_closure_init (auxfun1_12_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxfun1_12_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxfun1_12_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxfun1_12_closure_type *p_clo = ATS_MALLOC(sizeof(auxfun1_12_closure_type)) ; auxfun1_12_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 5752(line=329, offs=1) -- 5950(line=340, offs=4) */ ATSstaticdec() ats_void_type auxcon_13 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; __ats_lab_auxcon_13: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym (arg0) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag (arg0) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp76) ; /* tmp79 = */ atspre_fprint_string (env0, ATSstrcst("| ")) ; /* tmp80 = */ atspre_fprint_string (env0, tmp78) ; /* tmp81 = */ atspre_fprint_string (env0, ATSstrcst(" _ => ")) ; /* tmp82 = */ atspre_fprint_int (env0, tmp77) ; /* tmp75 = */ atspre_fprint_newline (env0) ; return /* (tmp75) */ ; } /* end of [auxcon_13] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxcon_13_closure_type ; ats_void_type auxcon_13_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxcon_13 (((auxcon_13_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxcon_13_closure_init (auxcon_13_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcon_13_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxcon_13_closure_make (ats_ptr_type env0) { auxcon_13_closure_type *p_clo = ATS_MALLOC(sizeof(auxcon_13_closure_type)) ; auxcon_13_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 5980(line=343, offs=1) -- 6141(line=352, offs=2) */ ATSstaticdec() ats_void_type auxconlst_14 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; // ATSlocal_void (tmp86) ; __ats_lab_auxconlst_14: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp85 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp86 = */ auxcon_13 (env0, tmp84) ; arg0 = tmp85 ; goto __ats_lab_auxconlst_14 ; // tail call break ; } while (0) ; return /* (tmp83) */ ; } /* end of [auxconlst_14] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxconlst_14_closure_type ; ats_void_type auxconlst_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxconlst_14 (((auxconlst_14_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxconlst_14_closure_init (auxconlst_14_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxconlst_14_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxconlst_14_closure_make (ats_ptr_type env0) { auxconlst_14_closure_type *p_clo = ATS_MALLOC(sizeof(auxconlst_14_closure_type)) ; auxconlst_14_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 5218(line=293, offs=1) -- 6890(line=402, offs=4) */ ATSstaticdec() ats_void_type aux_datype_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; __ats_lab_aux_datype_10: tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name (arg2) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (arg2) ; if (tmp88 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 6182(line=355, offs=5) -- 6219(line=355, offs=42)") ; } tmp89 = ats_caselptrlab_mac(anairiats_sum_4, tmp88, atslab_0) ; /* tmp90 = */ atspre_fprint_string (arg0, ATSstrcst("(* ****** ****** *)\n")) ; /* tmp91 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp92 = */ atspre_fprint_string (arg0, ATSstrcst("implement\n")) ; /* tmp93 = */ atspre_fprint_string (arg0, ATSstrcst("{}(*tmp*)\n")) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp94 = */ auxfun0_11 (arg0, arg2) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; /* tmp94 = */ auxfun1_12 (arg0, arg2, tmp95) ; break ; } while (0) ; /* tmp96 = */ atspre_fprint_string (arg0, ATSstrcst("\n ")) ; /* tmp97 = */ atspre_fprint_string (arg0, ATSstrcst("(arg0) =\n")) ; /* tmp98 = */ atspre_fprint_string (arg0, ATSstrcst("(\n")) ; /* tmp99 = */ atspre_fprint_string (arg0, ATSstrcst("case+ arg0 of\n")) ; /* tmp100 = */ auxconlst_14 (arg0, tmp89) ; /* tmp101 = */ atspre_fprint_string (arg0, ATSstrcst(")\n")) ; /* tmp102 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp65 = */ atspre_fprint_string (arg0, ATSstrcst("(* ****** ****** *)\n")) ; return /* (tmp65) */ ; } /* end of [aux_datype_10] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_datype.dats: 6968(line=408, offs=3) -- 7366(line=430, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcontag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcontag: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp103 = */ auxerr_nil_8 (arg0, arg1) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp105 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_datype (tmp104) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp106 != (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp103 = */ auxerr_cons_9 (arg0, arg1, tmp104) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp106 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_4, tmp106, atslab_0) ; ATS_FREE(tmp106) ; /* tmp103 = */ aux_datype_10 (arg0, arg1, tmp107, tmp105) ; break ; } while (0) ; break ; } while (0) ; return /* (tmp103) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcontag] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_datype_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_codegen2_datype_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_histaexp_sats.c0000644000175000017500000001246213431250607022376 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_0 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HITNAM_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEcst_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyabs_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEapp_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEextype_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEfun_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSErefarg_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyarr_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrec_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrecsin_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtysum_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyvar_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyclo_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEvararg_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2exp_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2zexp_15) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HITNAM_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEcst_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyabs_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEapp_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEextype_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEfun_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSErefarg_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyarr_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrec_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrecsin_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtysum_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyvar_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyclo_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEvararg_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2exp_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2zexp_15.tag = 15 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_histaexp_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_sats.c0000644000175000017500000001030013431250607021746 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_rec_0 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_prec_tr_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_e0xp_tr_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_s0rt_tr_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_s0exp_tr_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_p0at_tr_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_d0exp_tr_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_d0cstdec_tr_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_termet_check_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_i0nclude_tr_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_s0taload_tr_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_d0ynload_tr_10) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_prec_tr_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_e0xp_tr_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_s0rt_tr_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_s0exp_tr_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_p0at_tr_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_d0exp_tr_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_d0cstdec_tr_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_termet_check_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_i0nclude_tr_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_s0taload_tr_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_d0ynload_tr_10.tag = 10 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_utils_dats.c0000644000175000017500000022320413431250607021670 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 "libc/CATS/stdlib.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.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" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/stdio.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/stdlib.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/unistd.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ // static char *patsopt_PATSHOME = (char*)0 ; static char *patsopt_PATSCONTRIB = (char*)0 ; static char *patsopt_PATSHOMELOCS = (char*)0 ; static char *patsopt_PATSRELOCROOT = (char*)0 ; // #define \ patsopt_getenv(name) getenv(name) // extern ats_ptr_type patsopt_getenv_gc (ats_ptr_type name); // ATSextfun() ats_ptr_type patsopt_PATSHOME_get() { return patsopt_PATSHOME ; // optional string } // end of [patsopt_PATSHOME_get] ATSextfun() ats_void_type patsopt_PATSHOME_set() { // patsopt_PATSHOME = patsopt_getenv_gc("PATSHOME") ; // if ( !patsopt_PATSHOME ) { patsopt_PATSHOME = patsopt_getenv_gc("ATSHOME") ; } // return ; // } // end of [patsopt_PATSHOME_set] // ATSextfun() ats_ptr_type patsopt_PATSCONTRIB_get() { return patsopt_PATSCONTRIB ; // optional string } // end of [patsopt_PATSCONTRIB_get] ATSextfun() ats_void_type patsopt_PATSCONTRIB_set() { // patsopt_PATSCONTRIB = patsopt_getenv_gc("PATSCONTRIB") ; // if ( !patsopt_PATSCONTRIB ) { patsopt_PATSCONTRIB = patsopt_getenv_gc("ATSCONTRIB") ; } // return ; // } // end of [patsopt_PATSCONTRIB_set] // ATSextfun() ats_ptr_type patsopt_PATSHOMELOCS_get() { return patsopt_PATSHOMELOCS ; // optional string } // end of [patsopt_PATSHOMELOCS_get] ATSextfun() ats_void_type patsopt_PATSHOMELOCS_set() { // patsopt_PATSHOMELOCS = patsopt_getenv_gc("PATSHOMELOCS") ; // if ( !patsopt_PATSHOMELOCS ) { patsopt_PATSHOMELOCS = patsopt_getenv_gc("ATSHOMELOCS") ; } // return ; } // end of [patsopt_PATSHOMELOCS_set] // ATSextfun() ats_ptr_type patsopt_PATSRELOCROOT_get() { return patsopt_PATSRELOCROOT ; // optional string } // end of [patsopt_PATSRELOCROOR_get] ATSextfun() ats_void_type patsopt_PATSRELOCROOT_set() { // patsopt_PATSRELOCROOT = patsopt_getenv_gc("PATSRELOCROOT") ; // if ( !patsopt_PATSRELOCROOT ) { patsopt_PATSRELOCROOT = patsopt_getenv_gc("ATSRELOCROOT") ; } // return ; // } // end of [patsopt_PATSRELOCROOT_set] // /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_char_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_type) ; ATSextern_fun(ats_ptr_type, patsopt_getenv_gc) (ats_ptr_type) ; ATSextern_fun(ats_int_type, patsopt_strcasecmp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, patsopt_string_test_prefix) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, patsopt_string_test_suffix) (ats_ptr_type, ats_ptr_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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__sasp__charset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__sasp__lstord = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_char_type ptr0_get_01703_ats_char_type (ats_ptr_type arg0) ; static ats_char_type ptrget_01707_ats_char_type (ats_ptr_type arg0) ; static ats_int_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_llint_type llint_make_string_sgn_9 (ats_int_type arg0, ats_ptr_type arg1, ats_size_type arg2) ; static ats_llint_type llint_make_string_sgn_base_10 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_size_type arg3) ; static ats_uint_type loop_15 (ats_ptr_type arg0, ats_size_type arg1, ats_uint_type arg2) ; static ats_uint_type loop_17 (ats_ptr_type arg0, ats_size_type arg1, ats_uint_type arg2) ; static ats_ptr_type aux_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_21_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type aux_21_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_23 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type aux_23_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_23_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_25 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_clo_ptr_type aux_25_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_int_type cmp_31 (ats_char_type arg0, ats_char_type arg1) ; static ats_clo_ptr_type cmp_31_closure_make () ; static ats_int_type cmp_31_clofun (ats_clo_ptr_type cloptr, ats_char_type arg0, ats_char_type arg1) ; static ats_ptr_type funset_make_sing_01855_ats_char_type (ats_char_type arg0) ; static ats_int_type compare_elt_elt_01853_ats_char_type (ats_char_type arg0, ats_char_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_36 (ats_char_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_36_closure_make (ats_char_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_36_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type funset_is_member_01858_ats_char_type (ats_ptr_type arg0, ats_char_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type ins_40 (ats_char_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type ins_40_closure_make (ats_char_type env0, ats_clo_ref_type env1) ; static ats_ptr_type ins_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_01860_ats_char_type (ats_ref_type arg0, ats_char_type arg1, ats_clo_ref_type arg2) ; static ats_void_type loop_44 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_char_type (ats_ptr_type arg0) ; static ats_ptr_type funset_listize_01871_ats_char_type (ats_ptr_type arg0) ; static ats_void_type loop_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type deque_copyout_01954_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ref_type arg3) ; static ats_void_type queue_copyout_01757_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ref_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 3713(line=174, offs=3) -- 3978(line=192, offs=4) */ ATSglobaldec() ats_ptr_type patsopt_getenv_gc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_patsopt_getenv_gc: tmp1 = patsopt_getenv (arg0) ; tmp2 = atspre_stropt_is_some (tmp1) ; if (tmp2) { tmp3 = atspre_string_copy (ats_castfn_mac(ats_ptr_type, tmp1)) ; tmp0 = ats_castfn_mac(ats_ptr_type, tmp3) ; } else { tmp0 = atspre_stropt_none ; } /* end of [if] */ return (tmp0) ; } /* end of [patsopt_getenv_gc] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 4058(line=198, offs=7) -- 4182(line=203, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__eqref_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__eqref_type: tmp4 = atspre_peq (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__eqref_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_char_type ptr0_get_01703_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp10) ; __ats_lab_ptr0_get_01703_ats_char_type: tmp10 = ats_ptrget_mac(ats_char_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp10) ; } /* end of [ptr0_get_01703_ats_char_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41) */ ATSstaticdec() ats_char_type ptrget_01707_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp9) ; __ats_lab_ptrget_01707_ats_char_type: tmp9 = ptr0_get_01703_ats_char_type (arg0) ; return (tmp9) ; } /* end of [ptrget_01707_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 4434(line=222, offs=1) -- 4729(line=246, offs=4) */ ATSstaticdec() ats_int_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_char_type, tmp7) ; ATSlocal (ats_char_type, tmp8) ; ATSlocal (ats_char_type, tmp11) ; ATSlocal (ats_char_type, tmp12) ; ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_bool_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab_loop_3: tmp8 = ptrget_01707_ats_char_type (arg0) ; tmp7 = atspre_char_toupper (tmp8) ; tmp12 = ptrget_01707_ats_char_type (arg1) ; tmp11 = atspre_char_toupper (tmp12) ; tmp13 = atspre_lt_char_char (tmp7, tmp11) ; if (tmp13) { tmp6 = -1 ; } else { tmp14 = atspre_gt_char_char (tmp7, tmp11) ; if (tmp14) { tmp6 = 1 ; } else { tmp15 = atspre_neq_char_char (tmp7, '\000') ; if (tmp15) { tmp16 = atspre_padd_int (arg0, 1) ; tmp17 = atspre_padd_int (arg1, 1) ; arg0 = tmp16 ; arg1 = tmp17 ; goto __ats_lab_loop_3 ; // tail call } else { tmp6 = 0 ; } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ return (tmp6) ; } /* end of [loop_3] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 4390(line=217, offs=3) -- 4822(line=253, offs=4) */ ATSglobaldec() ats_int_type patsopt_strcasecmp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp5) ; __ats_lab_patsopt_strcasecmp: tmp5 = loop_3 (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp5) ; } /* end of [patsopt_strcasecmp] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 5061(line=271, offs=5) -- 5282(line=283, offs=4) */ ATSstaticdec() ats_bool_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_char_type, tmp20) ; ATSlocal (ats_bool_type, tmp21) ; ATSlocal (ats_char_type, tmp22) ; ATSlocal (ats_bool_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab_loop_7: tmp20 = ptrget_01707_ats_char_type (arg0) ; tmp21 = atspre_gt_char_char (tmp20, '\000') ; if (tmp21) { tmp22 = ptrget_01707_ats_char_type (arg1) ; tmp23 = atspre_eq_char_char (tmp20, tmp22) ; if (tmp23) { tmp24 = atspre_padd_int (arg0, 1) ; tmp25 = atspre_padd_int (arg1, 1) ; arg0 = tmp24 ; arg1 = tmp25 ; goto __ats_lab_loop_7 ; // tail call } else { tmp19 = ats_false_bool ; } /* end of [if] */ } else { tmp19 = ats_true_bool ; } /* end of [if] */ return (tmp19) ; } /* end of [loop_7] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 5014(line=267, offs=3) -- 5373(line=287, offs=4) */ ATSglobaldec() ats_bool_type patsopt_string_test_prefix (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp18) ; __ats_lab_patsopt_string_test_prefix: tmp18 = loop_7 (ats_castfn_mac(ats_ptr_type, arg1), ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp18) ; } /* end of [patsopt_string_test_prefix] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 5577(line=301, offs=3) -- 5835(line=318, offs=4) */ ATSglobaldec() ats_bool_type patsopt_string_test_suffix (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_size_type, tmp27) ; ATSlocal (ats_size_type, tmp28) ; ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_size_type, tmp31) ; __ats_lab_patsopt_string_test_suffix: tmp27 = atspre_string_length (arg0) ; tmp28 = atspre_string_length (arg1) ; tmp29 = atspre_gte_size_size (tmp27, tmp28) ; if (tmp29) { tmp31 = atspre_sub_size_size (tmp27, tmp28) ; tmp30 = atspre_padd_size (ats_castfn_mac(ats_ptr_type, arg0), tmp31) ; tmp26 = atspre_eq_string_string (ats_castfn_mac(ats_ptr_type, tmp30), arg1) ; } else { tmp26 = ats_false_bool ; } /* end of [if] */ return (tmp26) ; } /* end of [patsopt_string_test_suffix] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 5984(line=332, offs=1) -- 6675(line=362, offs=4) */ ATSstaticdec() ats_llint_type llint_make_string_sgn_9 (ats_int_type arg0, ats_ptr_type arg1, ats_size_type arg2) { /* local vardec */ ATSlocal (ats_llint_type, tmp32) ; ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_char_type, tmp34) ; ATSlocal (ats_bool_type, tmp35) ; ATSlocal (ats_size_type, tmp36) ; ATSlocal (ats_size_type, tmp37) ; ATSlocal (ats_char_type, tmp38) ; ATSlocal (ats_bool_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_size_type, tmp42) ; __ats_lab_llint_make_string_sgn_9: tmp33 = atspre_string_isnot_atend (arg1, arg2) ; if (tmp33) { tmp34 = atspre_string_get_char_at (arg1, arg2) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp34 != '0') { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp36 = atspre_add_size1_int1 (arg2, 1) ; tmp35 = atspre_string_isnot_atend (arg1, tmp36) ; if (tmp35) { tmp37 = atspre_add_size1_int1 (arg2, 1) ; tmp38 = atspre_string_get_char_at (arg1, tmp37) ; tmp40 = atspre_neq_char_char (tmp38, 'x') ; tmp41 = atspre_neq_char_char (tmp38, 'X') ; tmp39 = atspre_mul_bool_bool (tmp40, tmp41) ; if (tmp39) { tmp32 = llint_make_string_sgn_base_10 (arg0, 8, arg1, tmp37) ; } else { tmp42 = atspre_add_size1_int1 (tmp37, 1) ; tmp32 = llint_make_string_sgn_base_10 (arg0, 16, arg1, tmp42) ; } /* end of [if] */ } else { tmp32 = 0ll ; } /* end of [if] */ break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp32 = llint_make_string_sgn_base_10 (arg0, 10, arg1, arg2) ; break ; } while (0) ; } else { tmp32 = 0ll ; } /* end of [if] */ return (tmp32) ; } /* end of [llint_make_string_sgn_9] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 6715(line=365, offs=1) -- 7034(line=377, offs=4) */ ATSstaticdec() ats_llint_type llint_make_string_sgn_base_10 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_size_type arg3) { /* local vardec */ ATSlocal (ats_llint_type, tmp43) ; ATSlocal (ats_llint_type, tmp44) ; ATSlocal (ats_llint_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab_llint_make_string_sgn_base_10: tmp44 = atspre_llint_of_int (arg0) ; tmp46 = atspre_padd_int (arg2, arg3) ; tmp45 = atslib_strtoll_errnul (tmp46, arg1) ; tmp43 = atspre_mul_llint_llint (tmp44, tmp45) ; return (tmp43) ; } /* end of [llint_make_string_sgn_base_10] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 7129(line=383, offs=3) -- 7582(line=402, offs=4) */ ATSglobaldec() ats_llint_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_llint_type, tmp47) ; ATSlocal (ats_int_type, tmp48) ; ATSlocal (ats_bool_type, tmp49) ; ATSlocal (ats_char_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string: /* ats_int_type tmp48 ; */ tmp48 = 1 ; tmp49 = atspre_string_isnot_empty (ats_castfn_mac(ats_ptr_type, arg0)) ; if (tmp49) { tmp50 = atspre_string_get_char_at__intsz (ats_castfn_mac(ats_ptr_type, arg0), 0) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp50 != '+') { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp47 = llint_make_string_sgn_9 (1, ats_castfn_mac(ats_ptr_type, arg0), 1) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (tmp50 != '-') { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp47 = llint_make_string_sgn_9 (-1, ats_castfn_mac(ats_ptr_type, arg0), 1) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp50 != '~') { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp47 = llint_make_string_sgn_9 (-1, ats_castfn_mac(ats_ptr_type, arg0), 1) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp47 = llint_make_string_sgn_9 (1, ats_castfn_mac(ats_ptr_type, arg0), 0) ; break ; } while (0) ; } else { tmp47 = 0ll ; } /* end of [if] */ return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 7643(line=405, offs=20) -- 7668(line=405, offs=45) */ ATSglobaldec() ats_double_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__double_make_string (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_double_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__double_make_string: tmp51 = atslib_atof (arg0) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__double_make_string] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 7741(line=412, offs=17) -- 8257(line=441, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_base (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_char_type, tmp54) ; ATSlocal (ats_bool_type, tmp55) ; ATSlocal (ats_bool_type, tmp56) ; ATSlocal (ats_char_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_bool_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_base: tmp53 = atspre_string_isnot_atend (ats_castfn_mac(ats_ptr_type, arg0), 0) ; if (tmp53) { tmp54 = atspre_string_get_char_at__intsz (ats_castfn_mac(ats_ptr_type, arg0), 0) ; tmp55 = atspre_eq_char_char (tmp54, '0') ; if (tmp55) { tmp56 = atspre_string_isnot_atend (ats_castfn_mac(ats_ptr_type, arg0), 1) ; if (tmp56) { tmp57 = atspre_string_get_char_at__intsz (ats_castfn_mac(ats_ptr_type, arg0), 1) ; tmp59 = atspre_eq_char_char (tmp57, 'x') ; if (tmp59) { tmp58 = ats_true_bool ; } else { tmp58 = atspre_eq_char_char (tmp57, 'X') ; } /* end of [if] */ if (tmp58) { tmp52 = 16 ; } else { tmp60 = atspre_char_isdigit (tmp57) ; if (tmp60) { tmp52 = 8 ; } else { tmp52 = 10 ; } /* end of [if] */ } /* end of [if] */ } else { tmp52 = 10 ; } /* end of [if] */ } else { tmp52 = 10 ; } /* end of [if] */ } else { tmp52 = 10 ; } /* end of [if] */ return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_base] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 8429(line=451, offs=5) -- 8646(line=462, offs=4) */ ATSstaticdec() ats_uint_type loop_15 (ats_ptr_type arg0, ats_size_type arg1, ats_uint_type arg2) { /* local vardec */ ATSlocal (ats_uint_type, tmp62) ; ATSlocal (ats_bool_type, tmp63) ; ATSlocal (ats_size_type, tmp64) ; ATSlocal (ats_char_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_uint_type, tmp67) ; __ats_lab_loop_15: tmp63 = atspre_gt_size1_int1 (arg1, 0) ; if (tmp63) { tmp64 = atspre_sub_size1_int1 (arg1, 1) ; tmp65 = atspre_string_get_char_at (arg0, tmp64) ; tmp66 = atspre_string_contains (ATSstrcst("ulUL"), tmp65) ; if (tmp66) { tmp67 = atspre_add_uint_uint (arg2, 1u) ; arg0 = arg0 ; arg1 = tmp64 ; arg2 = tmp67 ; goto __ats_lab_loop_15 ; // tail call } else { tmp62 = arg2 ; } /* end of [if] */ } else { tmp62 = arg2 ; } /* end of [if] */ return (tmp62) ; } /* end of [loop_15] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 8313(line=444, offs=17) -- 8724(line=468, offs=4) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_nsfx (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_uint_type, tmp61) ; ATSlocal (ats_size_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_nsfx: tmp68 = atspre_string_length (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp61 = loop_15 (ats_castfn_mac(ats_ptr_type, arg0), tmp68, 0u) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__intrep_get_nsfx] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 8916(line=480, offs=5) -- 9133(line=492, offs=4) */ ATSstaticdec() ats_uint_type loop_17 (ats_ptr_type arg0, ats_size_type arg1, ats_uint_type arg2) { /* local vardec */ ATSlocal (ats_uint_type, tmp70) ; ATSlocal (ats_bool_type, tmp71) ; ATSlocal (ats_size_type, tmp72) ; ATSlocal (ats_char_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_uint_type, tmp75) ; __ats_lab_loop_17: tmp71 = atspre_gt_size1_int1 (arg1, 0) ; if (tmp71) { tmp72 = atspre_sub_size1_int1 (arg1, 1) ; tmp73 = atspre_string_get_char_at (arg0, tmp72) ; tmp74 = atspre_string_contains (ATSstrcst("fFlL"), tmp73) ; if (tmp74) { tmp75 = atspre_add_uint_uint (arg2, 1u) ; arg0 = arg0 ; arg1 = tmp72 ; arg2 = tmp75 ; goto __ats_lab_loop_17 ; // tail call } else { tmp70 = arg2 ; } /* end of [if] */ } else { tmp70 = arg2 ; } /* end of [if] */ return (tmp70) ; } /* end of [loop_17] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 8800(line=473, offs=16) -- 9211(line=498, offs=4) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__float_get_nsfx (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_uint_type, tmp69) ; ATSlocal (ats_size_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__float_get_nsfx: tmp76 = atspre_string_length (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp69 = loop_17 (ats_castfn_mac(ats_ptr_type, arg0), tmp76, 0u) ; return (tmp69) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__float_get_nsfx] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 9352(line=510, offs=12) -- 9368(line=510, offs=28) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil: tmp77 = (ats_sum_ptr_type)0 ; return (tmp77) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 9392(line=513, offs=13) -- 9424(line=513, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_sing (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_sing: tmp79 = (ats_sum_ptr_type)0 ; tmp78 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp78, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp78, atslab_1, tmp79) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_sing] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 9481(line=518, offs=7) -- 9750(line=525, offs=46) */ ATSstaticdec() ats_ptr_type aux_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_bool_type, tmp84) ; ATSlocal (ats_int_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab_aux_21: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp83 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp85 = ((ats_int_type(*)(ats_ptr_type, ats_ptr_type))env1) (env0, tmp82) ; tmp84 = atspre_lte_int_int (tmp85, 0) ; if (tmp84) { tmp81 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp81, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_0, tmp81, atslab_1, arg0) ; } else { tmp86 = aux_21 (env0, env1, tmp83) ; tmp81 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp81, atslab_0, tmp82) ; ats_selptrset_mac(anairiats_sum_0, tmp81, atslab_1, tmp86) ; } /* end of [if] */ break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp87 = (ats_sum_ptr_type)0 ; tmp81 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp81, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_0, tmp81, atslab_1, tmp87) ; break ; } while (0) ; return (tmp81) ; } /* end of [aux_21] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } aux_21_closure_type ; ats_ptr_type aux_21_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_21 (((aux_21_closure_type*)cloptr)->closure_env_0, ((aux_21_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_21_closure_init (aux_21_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_21_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_21_closure_make (ats_ptr_type env0, ats_ptr_type env1) { aux_21_closure_type *p_clo = ATS_MALLOC(sizeof(aux_21_closure_type)) ; aux_21_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 9455(line=517, offs=3) -- 9786(line=529, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert: tmp80 = aux_21 (arg1, arg2, arg0) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 9871(line=536, offs=1) -- 10292(line=553, offs=2) */ ATSstaticdec() ats_ptr_type aux_23 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_int_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab_aux_23: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp89 = arg1 ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp89 = arg0 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp93 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; tmp95 = ((ats_int_type(*)(ats_ptr_type, ats_ptr_type))env0) (tmp90, tmp92) ; tmp94 = atspre_lte_int_int (tmp95, 0) ; if (tmp94) { tmp96 = aux_23 (env0, tmp91, arg1) ; tmp89 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp89, atslab_0, tmp90) ; ats_selptrset_mac(anairiats_sum_0, tmp89, atslab_1, tmp96) ; } else { tmp97 = aux_23 (env0, arg0, tmp93) ; tmp89 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp89, atslab_0, tmp92) ; ats_selptrset_mac(anairiats_sum_0, tmp89, atslab_1, tmp97) ; } /* end of [if] */ break ; } while (0) ; break ; } while (0) ; return (tmp89) ; } /* end of [aux_23] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_23_closure_type ; ats_ptr_type aux_23_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return aux_23 (((aux_23_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_23_closure_init (aux_23_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_23_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_23_closure_make (ats_ptr_type env0) { aux_23_closure_type *p_clo = ATS_MALLOC(sizeof(aux_23_closure_type)) ; aux_23_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 9842(line=533, offs=3) -- 10338(line=557, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_union (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_union: tmp88 = aux_23 (arg2, arg0, arg1) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_union] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 10420(line=563, offs=5) -- 10836(line=576, offs=61) */ ATSstaticdec() ats_ptr_type aux_25 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_bool_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_bool_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; __ats_lab_aux_25: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; tmp103 = ((ats_int_type(*)(ats_ptr_type, ats_ptr_type))env0) (tmp100, arg0) ; tmp102 = atspre_eq_int_int (tmp103, 0) ; if (tmp102) { tmp104 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp101 ; arg2 = tmp104 ; goto __ats_lab_aux_25 ; // tail call } else { tmp105 = atspre_gt_int_int (arg2, 0) ; if (tmp105) { tmp106 = aux_25 (env0, tmp100, tmp101, 0) ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp99, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp99, atslab_1, tmp106) ; } else { arg0 = tmp100 ; arg1 = tmp101 ; arg2 = 0 ; goto __ats_lab_aux_25 ; // tail call } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp107 = atspre_gt_int_int (arg2, 0) ; if (tmp107) { tmp108 = (ats_sum_ptr_type)0 ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp99, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp99, atslab_1, tmp108) ; } else { tmp99 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; } while (0) ; return (tmp99) ; } /* end of [aux_25] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_25_closure_type ; ats_ptr_type aux_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { return aux_25 (((aux_25_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type aux_25_closure_init (aux_25_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_25_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_25_closure_make (ats_ptr_type env0) { aux_25_closure_type *p_clo = ATS_MALLOC(sizeof(aux_25_closure_type)) ; aux_25_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 10397(line=561, offs=7) -- 10975(line=586, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_get_dups (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_get_dups: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp98 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp110 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp98 = aux_25 (arg1, tmp109, tmp110, 0) ; break ; } while (0) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_get_dups] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11027(line=588, offs=23) -- 11036(line=588, offs=32) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list: tmp111 = arg0 ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11109(line=596, offs=3) -- 11323(line=606, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__dirpath_append (ats_ptr_type arg0, ats_ptr_type arg1, ats_char_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_char_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__dirpath_append: tmp113 = ptr0_get_01703_ats_char_type (ats_castfn_mac(ats_ptr_type, arg1)) ; tmp114 = atspre_eq_char_char (tmp113, arg2) ; if (tmp114) { tmp112 = atspre_tostringf (ATSstrcst("%s%s"), arg0, arg1) ; } else { tmp112 = atspre_tostringf (ATSstrcst("%s%c%s"), arg0, arg2, arg1) ; } /* end of [if] */ return (tmp112) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__dirpath_append] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11399(line=612, offs=2) -- 11438(line=613, offs=32) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__print_stropt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__print_stropt: /* tmp115 = */ _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt (stdout, arg0) ; return /* (tmp115) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__print_stropt] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11463(line=616, offs=2) -- 11502(line=617, offs=32) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__prerr_stropt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp116) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__prerr_stropt: /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt (stderr, arg0) ; return /* (tmp116) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__prerr_stropt] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11531(line=621, offs=2) -- 11680(line=632, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp117) ; ATSlocal (ats_bool_type, tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt: tmp118 = atspre_stropt_is_some (arg1) ; if (tmp118) { /* tmp117 = */ atspre_fprint_string (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; } else { /* tmp117 = */ atspre_fprint_string (arg0, ATSstrcst("(none)")) ; } /* end of [if] */ return /* (tmp117) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12649(line=693, offs=4) -- 12722(line=696, offs=29) */ ATSstaticdec() ats_int_type cmp_31 (ats_char_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp119) ; __ats_lab_cmp_31: tmp119 = atspre_compare_char_char (arg0, arg1) ; return (tmp119) ; } /* end of [cmp_31] */ typedef struct { ats_fun_ptr_type closure_fun ; } cmp_31_closure_type ; ats_int_type cmp_31_clofun (ats_clo_ptr_type cloptr, ats_char_type arg0, ats_char_type arg1) { return cmp_31 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type cmp_31_closure_init (cmp_31_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&cmp_31_clofun ; return ; } /* end of function */ ats_clo_ptr_type cmp_31_closure_make () { cmp_31_closure_type *p_clo = ATS_MALLOC(sizeof(cmp_31_closure_type)) ; cmp_31_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 2248(line=76, offs=18) -- 2277(line=76, offs=47) */ ATSstaticdec() ats_ptr_type funset_make_sing_01855_ats_char_type (ats_char_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_funset_make_sing_01855_ats_char_type: tmp122 = (ats_sum_ptr_type)0 ; tmp121 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp121, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp121, atslab_1, tmp122) ; return (tmp121) ; } /* end of [funset_make_sing_01855_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12805(line=703, offs=14) -- 12830(line=703, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_sing (ats_char_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_sing: tmp120 = funset_make_sing_01855_ats_char_type (arg0) ; return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_sing] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 1887(line=58, offs=32) -- 1915(line=58, offs=60) */ ATSstaticdec() ats_int_type compare_elt_elt_01853_ats_char_type (ats_char_type arg0, ats_char_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp129) ; __ats_lab_compare_elt_elt_01853_ats_char_type: tmp129 = ((ats_int_type(*)(ats_clo_ptr_type, ats_char_type, ats_char_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp129) ; } /* end of [compare_elt_elt_01853_ats_char_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 3671(line=138, offs=7) -- 3950(line=144, offs=27) */ ATSstaticdec() ats_bool_type aux_36 (ats_char_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp125) ; ATSlocal (ats_char_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_int_type, tmp128) ; ATSlocal (ats_bool_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; __ats_lab_aux_36: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp128 = compare_elt_elt_01853_ats_char_type (env0, tmp126, env1) ; tmp130 = atspre_gt_int_int (tmp128, 0) ; if (tmp130) { tmp125 = ats_false_bool ; } else { tmp131 = atspre_lt_int_int (tmp128, 0) ; if (tmp131) { arg0 = tmp127 ; goto __ats_lab_aux_36 ; // tail call } else { tmp125 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp125 = ats_false_bool ; break ; } while (0) ; return (tmp125) ; } /* end of [aux_36] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_char_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_36_closure_type ; ats_bool_type aux_36_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_36 (((aux_36_closure_type*)cloptr)->closure_env_0, ((aux_36_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_36_closure_init (aux_36_closure_type *p_clo, ats_char_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_36_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_36_closure_make (ats_char_type env0, ats_clo_ref_type env1) { aux_36_closure_type *p_clo = ATS_MALLOC(sizeof(aux_36_closure_type)) ; aux_36_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 3645(line=137, offs=3) -- 3986(line=148, offs=4) */ ATSstaticdec() ats_bool_type funset_is_member_01858_ats_char_type (ats_ptr_type arg0, ats_char_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp124) ; __ats_lab_funset_is_member_01858_ats_char_type: tmp124 = aux_36 (arg1, arg2, arg0) ; return (tmp124) ; } /* end of [funset_is_member_01858_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12863(line=707, offs=3) -- 12902(line=707, offs=42) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_is_member (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_is_member: tmp123 = funset_is_member_01858_ats_char_type (arg0, arg1, cmp_31_closure_make ()) ; return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_is_member] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 4180(line=158, offs=7) -- 4779(line=176, offs=10) */ ATSstaticdec() ats_ptr_type ins_40 (ats_char_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_char_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_int_type, tmp139) ; ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_bool_type, tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; __ats_lab_ins_40: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp138 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp139 = compare_elt_elt_01853_ats_char_type (env0, tmp137, env1) ; tmp140 = atspre_gt_int_int (tmp139, 0) ; if (tmp140) { tmp141 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp141 ; tmp136 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp136, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_1, tmp136, atslab_1, arg0) ; } else { tmp142 = atspre_lt_int_int (tmp139, 0) ; if (tmp142) { tmp143 = ats_ptrget_mac(ats_int_type, arg1) ; tmp144 = ins_40 (env0, env1, tmp138, arg1) ; tmp145 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp143) ; if (tmp145) { tmp136 = arg0 ; } else { tmp136 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp136, atslab_0, tmp137) ; ats_selptrset_mac(anairiats_sum_1, tmp136, atslab_1, tmp144) ; } /* end of [if] */ } else { tmp136 = arg0 ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp146 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp146 ; tmp147 = (ats_sum_ptr_type)0 ; tmp136 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp136, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_1, tmp136, atslab_1, tmp147) ; break ; } while (0) ; return (tmp136) ; } /* end of [ins_40] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_char_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } ins_40_closure_type ; ats_ptr_type ins_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return ins_40 (((ins_40_closure_type*)cloptr)->closure_env_0, ((ins_40_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type ins_40_closure_init (ins_40_closure_type *p_clo, ats_char_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&ins_40_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type ins_40_closure_make (ats_char_type env0, ats_clo_ref_type env1) { ins_40_closure_type *p_clo = ATS_MALLOC(sizeof(ins_40_closure_type)) ; ins_40_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 4154(line=157, offs=3) -- 4907(line=182, offs=4) */ ATSstaticdec() ats_bool_type funset_insert_01860_ats_char_type (ats_ref_type arg0, ats_char_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp135) ; ATSlocal (ats_int_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; __ats_lab_funset_insert_01860_ats_char_type: /* ats_int_type tmp148 ; */ tmp148 = 0 ; tmp149 = ins_40 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp148)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp149 ; tmp150 = atspre_eq_int_int (tmp148, 0) ; if (tmp150) { tmp135 = ats_true_bool ; } else { tmp135 = ats_false_bool ; } /* end of [if] */ return (tmp135) ; } /* end of [funset_insert_01860_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12944(line=712, offs=3) -- 13026(line=716, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_add (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_bool_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_add: /* ats_ptr_type tmp133 ; */ tmp133 = arg0 ; tmp134 = funset_insert_01860_ats_char_type ((&tmp133), arg1, cmp_31_closure_make ()) ; tmp132 = tmp133 ; return (tmp132) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_44 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp154) ; ATSlocal (ats_char_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab_loop_44: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp157, atslab_0, tmp155) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp157 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp158 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp156 ; arg1 = tmp158 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp159 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp159 ; break ; } while (0) ; return /* (tmp154) */ ; } /* end of [loop_44] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; __ats_lab_list_copy_01322_ats_char_type: /* ats_ptr_type tmp160 ; */ /* tmp161 = */ loop_44 (arg0, (&tmp160)) ; tmp153 = tmp160 ; return (tmp153) ; } /* end of [list_copy_01322_ats_char_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 10918(line=433, offs=16) -- 10941(line=433, offs=39) */ ATSstaticdec() ats_ptr_type funset_listize_01871_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; __ats_lab_funset_listize_01871_ats_char_type: tmp152 = list_copy_01322_ats_char_type (arg0) ; return (tmp152) ; } /* end of [funset_listize_01871_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 13073(line=719, offs=17) -- 13098(line=719, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize: tmp151 = funset_listize_01871_ats_char_type (arg0) ; return (tmp151) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 13207(line=729, offs=5) -- 13494(line=744, offs=2) */ ATSstaticdec() ats_void_type loop_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp164) ; ATSlocal (ats_char_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; // ATSlocal_void (tmp167) ; ATSlocal (ats_bool_type, tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_int_type, tmp170) ; __ats_lab_loop_46: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp168 = atspre_gt_int_int (arg2, 0) ; if (tmp168) { /* tmp167 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp169 = */ atspre_fprint_char (arg0, tmp165) ; tmp170 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp166 ; arg2 = tmp170 ; goto __ats_lab_loop_46 ; // tail call break ; } while (0) ; return /* (tmp164) */ ; } /* end of [loop_46] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 13151(line=725, offs=3) -- 13544(line=748, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_charset (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_charset: tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize (arg1) ; /* tmp162 = */ loop_46 (arg0, tmp163, 0) ; return /* (tmp162) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_charset] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 13059(line=506, offs=15) -- 13123(line=507, offs=49) */ ATSstaticdec() ats_void_type deque_copyout_01954_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp177) ; __ats_lab_deque_copyout_01954_ats_uchar_type: /* tmp177 = */ atslib_ngc_deque_arr_deque_copyout_tsz (arg0, arg1, arg2, arg3, sizeof(ats_uchar_type)) ; return /* (tmp177) */ ; } /* end of [deque_copyout_01954_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 4072(line=159, offs=3) -- 4119(line=159, offs=50) */ ATSstaticdec() ats_void_type queue_copyout_01757_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp176) ; __ats_lab_queue_copyout_01757_ats_uchar_type: /* tmp176 = */ deque_copyout_01954_ats_uchar_type (arg0, arg1, arg2, arg3) ; return /* (tmp176) */ ; } /* end of [queue_copyout_01757_ats_uchar_type] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 13814(line=763, offs=3) -- 14317(line=780, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__queue_get_strptr1 (ats_ref_type arg0, ats_size_type arg1, ats_size_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_size_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__queue_get_strptr1: tmp173 = atspre_add_size1_int1 (arg2, 1) ; tmp172 = ats_malloc_gc (tmp173) ; tmp174 = ats_selsin_mac(tmp172, atslab_2) ; /* tmp175 = */ queue_copyout_01757_ats_uchar_type (arg0, arg1, arg2, tmp174) ; /* tmp178 = */ atspre_bytes_strbuf_trans (tmp174, arg2) ; tmp179 = tmp174 ; tmp171 = ats_castfn_mac(ats_ptr_type, tmp179) ; return (tmp171) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__queue_get_strptr1] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 17063(line=933, offs=26) -- 17082(line=933, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__ptr_as_volatile (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp180) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__ptr_as_volatile: return /* (tmp180) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__ptr_as_volatile] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__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) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__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 () ; ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ // extern ats_ssize_type atslib_fildes_read_all_err ( ats_int_type fd , ats_ref_type buf , ats_size_type ntot ) ; // end of [atslib_fildes_read_all_err] // ats_ptr_type patsopt_file2strptr ( ats_int_type fd ) { int err = 0 ; int nerr = 0 ; char* sbp = (char*)0 ; // long int ofs_beg, ofs_end, nbyte ; // ofs_beg = lseek (fd, 0L, SEEK_CUR) ; if (ofs_beg < 0) nerr += 1 ; ofs_end = lseek (fd, 0L, SEEK_END) ; if (ofs_end < 0) nerr += 1 ; ofs_beg = lseek (fd, ofs_beg, SEEK_SET) ; if (ofs_beg < 0) nerr += 1 ; nbyte = ofs_end - ofs_beg ; // if (nerr == 0) { sbp = ATS_MALLOC(nbyte + 1) ; } if (sbp == NULL) nerr += 1 ; // if (nerr == 0) { err = atslib_fildes_read_all_err (fd, sbp, nbyte) ; } if (err < 0) { nerr += 1 ; } // if (nerr==0) { sbp[ofs_end] = '\0'; return sbp ; } // if (sbp) free(sbp) ; return (NULL) ; } // end of [patsopt_file2strptr] // /* ****** ****** */ /* end of [pats_utils_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp1_sats.c0000644000175000017500000003335413431250607022141 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALint_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALchar_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALstring_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALfloat_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPide_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPint_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPintrep_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPchar_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfloat_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPv1al_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPnone_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPundef_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPapp_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfun_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPif_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPeval_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPlist_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPerr_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTset_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTapp_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTlist_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTqid_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTtype_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTerr_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__SP1Tcstr_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_some_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_none_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qprop_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qvars_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsrt_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsub_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eide_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Esqid_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eint_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eintrep_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Echar_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Efloat_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Estring_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextype_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextkind_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eapp_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elam_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eimp_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etop_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elist_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Einvar_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etrans_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyarr_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etytup_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_ext_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Euni_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eexi_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eann_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Ed2ctype_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eerr_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGall_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGseq_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGall_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGseq_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGdyn_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGsta_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEsome_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEnone_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_sarglst_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_svararglst_1) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALint_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALchar_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALstring_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALfloat_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPide_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPint_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPintrep_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPchar_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfloat_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPv1al_6.tag = 6 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPnone_7.tag = 7 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPundef_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPapp_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfun_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPif_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPeval_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPlist_13.tag = 13 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPerr_14.tag = 14 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTset_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTapp_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTlist_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTqid_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTtype_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTerr_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__SP1Tcstr_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_some_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_none_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qprop_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qvars_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsrt_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsub_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eide_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Esqid_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eint_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eintrep_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Echar_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Efloat_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Estring_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextype_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextkind_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eapp_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elam_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eimp_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etop_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elist_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Einvar_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etrans_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyarr_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etytup_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_ext_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Euni_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eexi_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eann_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Ed2ctype_23.tag = 23 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eerr_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGall_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGseq_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGone_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGall_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGseq_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGdyn_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGsta_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEsome_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEnone_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_sarglst_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_svararglst_1.tag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp1_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lintprgm_dats.c0000644000175000017500000001343313431250607022365 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_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_int_type, atspre_ineg) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (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_ieq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvec0_free) (ats_ptr_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout0_addback_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__Finished) ; /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 3379(line=122, offs=10) -- 3643(line=131, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvec0_free (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvec0_free: tmp1 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; /* tmp0 = */ atspre_array_ptr_free (tmp1) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvec0_free] */ /* static load function */ // 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_lintprgm_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__Finished.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__Finished.name = "_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__Finished" ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload () ; #ifdef _ATS_PROOFCHECK _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout0_addback_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lintprgm_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_lstate_dats.c0000644000175000017500000034076513431250607024202 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_lstbefitm_var ; ats_int_type atslab_lstbefitm_linval ; ats_ptr_type atslab_lstbefitm_type ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_lstaftitm_var ; ats_int_type atslab_lstaftitm_knd ; ats_ptr_type atslab_lstaftitm_type ; ats_ptr_type atslab_lstaftitm_saits ; } anairiats_rec_4 ; typedef struct { anairiats_rec_4 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_i2nvresstate_svs ; ats_ptr_type atslab_i2nvresstate_gua ; ats_ptr_type atslab_i2nvresstate_arg ; ats_ptr_type atslab_i2nvresstate_met ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_c3nstroptref_loc ; ats_ptr_type atslab_c3nstroptref_ref ; } anairiats_rec_10 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_dynexp2_2esats__D2VFINdone_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some_89) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some2_91) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__LSTAFTC3NSTR_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__lstaftc3nstr_viewtype = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__LSTAFTC3NSTR_0) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02433_ () ; static ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type f_7 (ats_ptr_type arg0) ; static ats_void_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type f_12 (ats_ptr_type arg0) ; static ats_int_type auxlst_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_22 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type revapp_27 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type d2var_is_done_32 (ats_ptr_type arg0) ; static ats_ptr_type aux1_33 (ats_ptr_type arg0) ; static ats_ptr_type aux2_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type aux3_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_39 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type prerr_error3_loc_02439_ (ats_ptr_type arg0) ; static ats_void_type auxerr_some_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_none_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_some2_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxsait_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxmain_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxmainlst_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 1761(line=58, offs=18) -- 1792(line=58, offs=49) */ ATSstaticdec() ats_void_type prerr_FILENAME_02433_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02433_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_lstate")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02433_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 2322(line=95, offs=3) -- 2454(line=98, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg0) ; tmp1 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp1, atslab_lstbefitm_var, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp1, atslab_lstbefitm_linval, arg1) ; ats_selptrset_mac(anairiats_rec_1, tmp1, atslab_lstbefitm_type, tmp2) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 2531(line=103, offs=18) -- 3015(line=124, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; ATSlocal (ats_int_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm: /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst("lstbefitm(")) ; tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_lstbefitm_var) ; /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp6) ; /* tmp7 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_lstbefitm_linval) ; /* tmp8 = */ atspre_fprint_int (arg0, tmp9) ; /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_lstbefitm_type) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp11 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_2, tmp11, atslab_0) ; /* tmp14 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp13) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp11 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; } while (0) ; /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp3) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_bool_type, tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_int_type, tmp24) ; __ats_lab_aux_5: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp22 = atspre_gt_int_int (arg1, 0) ; if (tmp22) { /* tmp21 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp23 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp19) ; tmp24 = atspre_add_int_int (arg1, 1) ; arg0 = tmp20 ; arg1 = tmp24 ; goto __ats_lab_aux_5 ; // tail call break ; } while (0) ; return /* (tmp18) */ ; } /* end of [aux_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_5_closure_type ; ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_5 (((aux_5_closure_type*)cloptr)->closure_env_0, ((aux_5_closure_type*)cloptr)->closure_env_1, ((aux_5_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_5_closure_init (aux_5_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ; aux_5_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp17) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp17 = */ aux_5 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp17) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3078(line=128, offs=3) -- 3137(line=128, offs=62) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitmlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitmlst: /* tmp16 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm) ; return /* (tmp16) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitmlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3272(line=136, offs=7) -- 3351(line=137, offs=55) */ ATSstaticdec() ats_void_type f_7 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_f_7: tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_var) ; tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_type) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp27, tmp28) ; return /* (tmp26) */ ; } /* end of [f_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; __ats_lab_loop_10: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp33 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp34 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp32, arg2) ; arg0 = tmp33 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_10 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: break ; } while (0) ; return /* (tmp31) */ ; } /* end of [loop_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp30) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp30 = */ loop_10 (arg0, arg1, arg2) ; return /* (tmp30) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp29) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp29 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp29) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3230(line=135, offs=3) -- 3369(line=139, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type: /* tmp25 = */ list_app_fun_01301_ats_ptr_type (arg0, &f_7) ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3514(line=144, offs=7) -- 3712(line=151, offs=6) */ ATSstaticdec() ats_void_type f_12 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab_f_12: tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_var) ; tmp39 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_linval) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (tmp37, tmp39) ; tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_type) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp37, tmp40) ; return /* (tmp36) */ ; } /* end of [f_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3472(line=143, offs=3) -- 3728(line=152, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_linval_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_linval_type: /* tmp35 = */ list_app_fun_01301_ats_ptr_type (arg0, &f_12) ; return /* (tmp35) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_linval_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3984(line=163, offs=15) -- 4172(line=170, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp43 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp42) ; /* tmp41 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: /* tmp41 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; } while (0) ; return /* (tmp41) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 4283(line=176, offs=3) -- 4339(line=176, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst: /* tmp45 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 4473(line=183, offs=3) -- 4539(line=183, offs=69) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt: /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; return /* (tmp46) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 4715(line=195, offs=5) -- 5079(line=209, offs=2) */ ATSstaticdec() ats_int_type auxlst_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; __ats_lab_auxlst_16: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_8_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (tmp48 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_2, tmp48, atslab_0) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq (arg0, tmp50) ; if (tmp51) { arg0 = arg0 ; arg1 = tmp49 ; goto __ats_lab_auxlst_16 ; // tail call } else { tmp47 = 1 ; } /* end of [if] */ break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (tmp48 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: arg0 = arg0 ; arg1 = tmp49 ; goto __ats_lab_auxlst_16 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp47 = 0 ; break ; } while (0) ; return (tmp47) ; } /* end of [auxlst_16] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 5155(line=215, offs=3) -- 5434(line=229, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 5177(line=216, offs=7) -- 5199(line=216, offs=29)") ; } tmp53 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp54 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp53 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_2, tmp53, atslab_0) ; tmp57 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp57, atslab_0, tmp55) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg0, tmp57) ; tmp52 = auxlst_16 (tmp55, tmp54) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp53 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 5206(line=219, offs=1) -- 5410(line=227, offs=6)") ; } __ats_lab_13_1: tmp59 = (ats_sum_ptr_type)0 ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg0, tmp59) ; tmp52 = 0 ; break ; } while (0) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 5895(line=252, offs=3) -- 6300(line=266, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_int_type, tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm: /* tmp61 = */ atspre_fprint_string (arg0, ATSstrcst("LSTAFTITM(\n")) ; tmp63 = ats_select_mac(ats_ptrget_mac(anairiats_rec_4, arg1), atslab_lstaftitm_var) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp63) ; /* tmp64 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; tmp66 = ats_select_mac(ats_ptrget_mac(anairiats_rec_4, arg1), atslab_lstaftitm_knd) ; /* tmp65 = */ atspre_fprint_int (arg0, tmp66) ; /* tmp67 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; tmp69 = ats_select_mac(ats_ptrget_mac(anairiats_rec_4, arg1), atslab_lstaftitm_type) ; /* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt (arg0, tmp69) ; /* tmp70 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; tmp72 = ats_select_mac(ats_ptrget_mac(anairiats_rec_4, arg1), atslab_lstaftitm_saits) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt (arg0, tmp72) ; /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; return /* (tmp60) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 6436(line=273, offs=3) -- 6755(line=284, offs=33) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp74 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp75 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm (arg0, tmp74) ; /* tmp77 = */ atspre_fprint_newline (arg0) ; tmp78 = ats_ptrget_mac(ats_ptr_type, tmp75) ; arg0 = arg0 ; arg1 = tmp78 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: break ; } while (0) ; return /* (tmp73) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 6873(line=290, offs=19) -- 7075(line=298, offs=26) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp79) ; ATSlocal (anairiats_rec_4, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp82 = ats_select_mac(tmp80, atslab_lstaftitm_saits) ; if (tmp82 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 6945(line=294, offs=11) -- 6980(line=294, offs=46)") ; } arg0 = tmp81 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free ; // tail call break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: break ; } while (0) ; return /* (tmp79) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 7240(line=309, offs=5) -- 7838(line=331, offs=4) */ ATSstaticdec() ats_void_type loop_22 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab_loop_22: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp85), atslab_lstbefitm_var) ; tmp88 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp88 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp89 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg1), atslab_0) ; tmp90 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp89), atslab_lstaftitm_var) = tmp87 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp89), atslab_lstaftitm_knd) = 0 ; tmp91 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp89), atslab_lstaftitm_type) = tmp91 ; tmp92 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp89), atslab_lstaftitm_saits) = tmp92 ; arg0 = tmp86 ; arg1 = tmp90 ; goto __ats_lab_loop_22 ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp93 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp93 ; break ; } while (0) ; return /* (tmp84) */ ; } /* end of [loop_22] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 7222(line=307, offs=19) -- 7920(line=338, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make: /* ats_ptr_type tmp94 ; */ /* tmp95 = */ loop_22 (arg0, (&tmp94)) ; tmp83 = tmp94 ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 8060(line=345, offs=21) -- 8444(line=360, offs=31) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp97 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp98 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp99 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp97), atslab_lstaftitm_var) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp99) ; tmp101 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp97), atslab_lstaftitm_saits) ; tmp102 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp102, atslab_0, tmp100) ; ats_selptrset_mac(anairiats_sum_3, tmp102, atslab_1, tmp101) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp97), atslab_lstaftitm_saits) = tmp102 ; tmp103 = ats_ptrget_mac(ats_ptr_type, tmp98) ; arg0 = tmp103 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: break ; } while (0) ; return /* (tmp96) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_27 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab_revapp_27: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp112 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp113 = ats_ptrget_mac(ats_ptr_type, tmp112) ; ats_ptrget_mac(ats_ptr_type, tmp112) = arg1 ; tmp114 = arg0 ; arg0 = tmp113 ; arg1 = tmp114 ; goto __ats_lab_revapp_27 ; // tail call break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp111 = arg1 ; break ; } while (0) ; return (tmp111) ; } /* end of [revapp_27] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp110 = revapp_27 (arg0, arg1) ; return (tmp110) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp115 = (ats_sum_ptr_type)0 ; tmp109 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp115) ; return (tmp109) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 8618(line=371, offs=3) -- 8931(line=383, offs=31) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_22_1: tmp105 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp106 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp107 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp105), atslab_lstaftitm_saits) ; tmp108 = list_vt_reverse_01506_ats_ptr_type (tmp107) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp105), atslab_lstaftitm_saits) = tmp108 ; tmp116 = ats_ptrget_mac(ats_ptr_type, tmp106) ; arg0 = tmp116 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: break ; } while (0) ; return /* (tmp104) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 9195(line=401, offs=3) -- 9336(line=409, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstaftc3nstr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstaftc3nstr: tmp118 = &ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp119 = ats_ptrget_mac(ats_ptr_type, tmp118) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst (arg0, tmp119) ; return /* (tmp117) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstaftc3nstr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 9424(line=415, offs=3) -- 9558(line=422, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize: tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make (arg0) ; tmp122 = (ats_sum_ptr_type)0 ; tmp120 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_0, tmp121) ; ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_1, tmp122) ; return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 9646(line=428, offs=3) -- 9853(line=437, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update: // tmp124 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp125 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp127 = ats_ptrget_mac(ats_ptr_type, tmp124) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update (tmp127) ; tmp129 = ats_ptrget_mac(ats_ptr_type, tmp125) ; tmp128 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp128, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp128, atslab_1, tmp129) ; ats_ptrget_mac(ats_ptr_type, tmp125) = tmp128 ; return /* (tmp123) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 9942(line=443, offs=3) -- 10111(line=451, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; // ATSlocal_void (tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize: // tmp131 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free (tmp131) ; if (tmp132 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 10038(line=447, offs=5) -- 10059(line=447, offs=26)") ; } return /* (tmp130) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 10294(line=462, offs=5) -- 10425(line=467, offs=4) */ ATSstaticdec() ats_bool_type d2var_is_done_32 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_d2var_is_done_32: tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd (arg0) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp135)->tag != 4) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp134 = ats_true_bool ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp134 = ats_false_bool ; break ; } while (0) ; return (tmp134) ; } /* end of [d2var_is_done_32] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 10457(line=469, offs=5) -- 11111(line=495, offs=2) */ ATSstaticdec() ats_ptr_type aux1_33 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_bool_type, tmp145) ; __ats_lab_aux1_33: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp137 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp138 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp139 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp137), atslab_lstaftitm_var) ; tmp140 = d2var_is_done_32 (tmp139) ; if (tmp140) { tmp141 = 0 ; } else { tmp142 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp137), atslab_lstaftitm_saits) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check (tmp139, ats_castfn_mac(ats_ptr_type, tmp142)) ; } /* end of [if] */ tmp144 = ats_ptrget_mac(ats_ptr_type, tmp138) ; tmp143 = aux1_33 (tmp144) ; tmp145 = atspre_gt_int_int (tmp141, 0) ; if (tmp145) { tmp136 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_0, tmp139) ; ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_1, tmp143) ; } else { tmp136 = tmp143 ; } /* end of [if] */ break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp136 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp136) ; } /* end of [aux1_33] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 11134(line=497, offs=5) -- 11485(line=516, offs=2) */ ATSstaticdec() ats_ptr_type aux2_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab_aux2_34: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, tmp147) ; tmp150 = atspre_ieq (tmp149, 0) ; if (tmp150) { tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (tmp147) ; ats_ptrget_mac(ats_int_type, arg2) = 1 ; tmp146 = tmp151 ; } else { arg0 = arg0 ; arg1 = tmp148 ; arg2 = arg2 ; goto __ats_lab_aux2_34 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp146 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp146) ; } /* end of [aux2_34] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 11508(line=518, offs=5) -- 11950(line=541, offs=2) */ ATSstaticdec() ats_ptr_type aux3_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; ATSlocal (ats_bool_type, tmp157) ; __ats_lab_aux3_35: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp154 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp153) ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, tmp155) ; tmp157 = atspre_ieq (tmp156, 0) ; if (tmp157) { ats_ptrget_mac(ats_int_type, arg3) = 2 ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp153) ; } else { arg0 = arg0 ; arg1 = tmp154 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_aux3_35 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp152 = aux2_34 (arg0, arg2, arg3) ; break ; } while (0) ; return (tmp152) ; } /* end of [aux3_35] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 11973(line=543, offs=5) -- 12472(line=564, offs=4) */ ATSstaticdec() ats_void_type auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; // ATSlocal_void (tmp164) ; ATSlocal (ats_bool_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; __ats_lab_auxlst_36: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp159 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp160 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp161 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp159), atslab_lstaftitm_var) ; /* ats_int_type tmp162 ; */ tmp162 = 0 ; tmp163 = aux3_35 (tmp161, arg1, arg2, (&tmp162)) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp159), atslab_lstaftitm_knd) = tmp162 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp159), atslab_lstaftitm_type) = tmp163 ; tmp165 = atspre_gt_int_int (tmp162, 0) ; if (tmp165) { /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp161, tmp163) ; } else { /* empty */ } /* end of [if] */ tmp166 = ats_ptrget_mac(ats_ptr_type, tmp160) ; arg0 = tmp166 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_36 ; // tail call break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: break ; } while (0) ; return /* (tmp158) */ ; } /* end of [auxlst_36] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_39 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; __ats_lab_loop_39: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp176 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp176 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: break ; } while (0) ; return /* (tmp175) */ ; } /* end of [loop_39] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp174) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp174 = */ loop_39 (arg0) ; return /* (tmp174) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 12548(line=570, offs=3) -- 12877(line=589, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check: // tmp168 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp170 = ats_ptrget_mac(ats_ptr_type, tmp168) ; tmp169 = aux1_33 (tmp170) ; tmp171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_i2nvresstate_arg) ; tmp173 = ats_ptrget_mac(ats_ptr_type, tmp168) ; /* tmp172 = */ auxlst_36 (tmp173, tmp171, ats_castfn_mac(ats_ptr_type, tmp169)) ; /* tmp167 = */ list_vt_free_01499_ats_ptr_type (tmp169) ; return /* (tmp167) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02439_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; __ats_lab_prerr_error3_loc_02439_: /* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp179 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp179) */ ; } /* end of [prerr_error3_loc_02439_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 12965(line=597, offs=5) -- 13365(line=610, offs=4) */ ATSstaticdec() ats_void_type auxerr_some_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab_auxerr_some_40: /* tmp178 = */ prerr_error3_loc_02439_ (arg0) ; /* tmp181 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ; /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp183 = */ atspre_prerr_string (ATSstrcst("] is consumed but it should be retained with the type [")) ; /* tmp184 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ; /* tmp185 = */ atspre_prerr_string (ATSstrcst("] instead.")) ; /* tmp186 = */ atspre_prerr_newline () ; tmp187 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp187)->tag = 89 ; ats_selptrset_mac(anairiats_sum_7, tmp187, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp187, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp187, atslab_2, arg2) ; /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp187) ; return /* (tmp177) */ ; } /* end of [auxerr_some_40] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 13395(line=612, offs=5) -- 13792(line=625, offs=4) */ ATSstaticdec() ats_void_type auxerr_none_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; // ATSlocal_void (tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; __ats_lab_auxerr_none_42: /* tmp189 = */ prerr_error3_loc_02439_ (arg0) ; /* tmp190 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ; /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp192 = */ atspre_prerr_string (ATSstrcst("] is retained with the type [")) ; /* tmp193 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ; /* tmp194 = */ atspre_prerr_string (ATSstrcst("] but it should be consumed instead.")) ; /* tmp195 = */ atspre_prerr_newline () ; tmp196 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp196)->tag = 89 ; ats_selptrset_mac(anairiats_sum_7, tmp196, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp196, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp196, atslab_2, arg2) ; /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp196) ; return /* (tmp188) */ ; } /* end of [auxerr_none_42] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 13822(line=627, offs=5) -- 14210(line=639, offs=4) */ ATSstaticdec() ats_void_type auxerr_some2_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; __ats_lab_auxerr_some2_43: /* tmp198 = */ prerr_error3_loc_02439_ (arg0) ; /* tmp199 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ; /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp201 = */ atspre_prerr_string (ATSstrcst("] is retained but with a type that fails to merge.")) ; /* tmp202 = */ atspre_prerr_newline () ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp204 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp204)->tag = 91 ; ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_3, arg3) ; /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp204) ; return /* (tmp197) */ ; } /* end of [auxerr_some2_43] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 14241(line=641, offs=5) -- 15392(line=689, offs=4) */ ATSstaticdec() ats_void_type auxsait_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_bool_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_bool_type, tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; ATSlocal (ats_bool_type, tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; __ats_lab_auxsait_44: do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_38_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_2, arg4, atslab_0) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_39_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_2, arg5, atslab_0) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: tmp208 = atspre_gte_int_int (arg2, 1) ; if (!tmp208) { goto __ats_lab_41_1 ; } tmp210 = atspre_gte_int_int (arg2, 2) ; if (tmp210) { tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (arg3, tmp206) ; } else { tmp209 = tmp206 ; } /* end of [if] */ /* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp212 = ats_selsin_mac(tmp211, atslab_1) */ ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (arg0, tmp207, tmp209) ; tmp214 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp214)->tag = 8 ; ats_selptrset_mac(anairiats_sum_9, tmp214, atslab_0, arg1) ; /* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp214) ; tmp216 = atspre_gt_int_int (tmp213, 0) ; if (tmp216) { /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; /* tmp205 = */ auxerr_some2_43 (arg0, arg1, tmp209, tmp207) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: break ; } while (0) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: /* tmp205 = */ auxerr_some_40 (arg0, arg1, tmp206) ; break ; } while (0) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_2, arg5, atslab_0) ; /* tmp205 = */ auxerr_none_42 (arg0, arg1, tmp218) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: break ; } while (0) ; break ; } while (0) ; return /* (tmp205) */ ; } /* end of [auxsait_44] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 15418(line=691, offs=5) -- 16002(line=711, offs=2) */ ATSstaticdec() ats_void_type auxmain_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_int_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; // ATSlocal_void (tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; __ats_lab_auxmain_45: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp220 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp221 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp222 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp220), atslab_lstaftitm_var) ; tmp223 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp220), atslab_lstaftitm_knd) ; tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp222) ; tmp225 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp220), atslab_lstaftitm_saits) ; if (tmp225 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 15673(line=702, offs=11) -- 15723(line=702, offs=61)") ; } tmp226 = ats_caselptrlab_mac(anairiats_sum_3, tmp225, atslab_0) ; tmp227 = ats_caselptrlab_mac(anairiats_sum_3, tmp225, atslab_1) ; ATS_FREE(tmp225) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp220), atslab_lstaftitm_saits) = tmp227 ; tmp228 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_c3nstroptref_loc) ; /* tmp229 = */ auxsait_44 (tmp228, tmp222, tmp223, arg2, tmp224, tmp226) ; tmp230 = ats_ptrget_mac(ats_ptr_type, tmp221) ; arg0 = tmp230 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxmain_45 ; // tail call break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: break ; } while (0) ; return /* (tmp219) */ ; } /* end of [auxmain_45] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 16028(line=713, offs=5) -- 16871(line=748, offs=4) */ ATSstaticdec() ats_void_type auxmainlst_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; // ATSlocal_void (tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; // ATSlocal_void (tmp248) ; __ats_lab_auxmainlst_46: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp232 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp233 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp234 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp232), atslab_c3nstroptref_loc) ; tmp236 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_i2nvresstate_svs) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (tmp234, tmp236) ; tmp238 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_i2nvresstate_gua) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp235, tmp238) ; /* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp240 = ats_selsin_mac(tmp239, atslab_1) */ ; /* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (tmp234, tmp237) ; /* tmp242 = */ auxmain_45 (arg0, tmp232, tmp235) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () ; tmp245 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst (tmp234, tmp245, ats_castfn_mac(ats_ptr_type, tmp243)) ; tmp246 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp232), atslab_c3nstroptref_ref) ; tmp247 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp247, atslab_0, tmp244) ; ats_ptrget_mac(ats_ptr_type, tmp246) = tmp247 ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp235) ; arg0 = arg0 ; arg1 = tmp233 ; arg2 = arg2 ; goto __ats_lab_auxmainlst_46 ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: break ; } while (0) ; return /* (tmp231) */ ; } /* end of [auxmainlst_46] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 16950(line=754, offs=3) -- 17330(line=776, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process: /* tmp250 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check (arg0, arg1) ; tmp251 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp252 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp253 = ats_ptrget_mac(ats_ptr_type, tmp252) ; tmp254 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp252) = tmp254 ; tmp255 = ats_ptrget_mac(ats_ptr_type, tmp251) ; /* tmp249 = */ auxmainlst_46 (tmp255, tmp253, arg1) ; return /* (tmp249) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 17439(line=784, offs=3) -- 17908(line=808, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp257 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp258 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp257) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp257) ; /* tmp261 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (tmp259) ; /* tmp262 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp259, tmp260) ; arg0 = arg0 ; arg1 = tmp258 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update ; // tail call break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: break ; } while (0) ; return /* (tmp256) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 17993(line=814, offs=3) -- 18298(line=827, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; // ATSlocal_void (tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update: tmp265 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_i2nvresstate_svs) ; /* tmp264 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp265) ; tmp267 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_i2nvresstate_gua) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (arg0, tmp267) ; tmp268 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_i2nvresstate_arg) ; /* tmp263 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update (arg0, tmp268) ; return /* (tmp263) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__LSTAFTC3NSTR_0.tag = 0 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_lstate_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_errmsg_dats.c0000644000175000017500000000612213431250607022025 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_errmsg_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_constraint3_dats.c0000644000175000017500000043250513431250607023005 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_h3ypo_loc ; ats_ptr_type atslab_h3ypo_node ; } anairiats_rec_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_12 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPObind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOeqeq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Evar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ecst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eunit_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneg_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebadd_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebmul_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebeq_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneq_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebineq_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebdom_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eiatm_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eicff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eisum_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eimul_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Esizeof_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eapp_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eerr_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTsvar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTsbexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTcons_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTnonlin_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTmark_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTnil_5) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_eq_bool_bool) (ats_bool_type, ats_bool_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_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_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_int) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_addr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_bool) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_find) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_is_bool) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_is_equal) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_true_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_false_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_null_addr) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool) (ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_badd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlte) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_err) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_null) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_2) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_neg_1) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_beq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_intinf) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_nonlin) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_make) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_s2cst_s2explst) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize_map) (ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__sasp__s2cfunmap = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__sasp__s2vbcfenv_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__sasp__s2vbcfenv_viewtype = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTsvar_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTsbexp_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTcons_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTnonlin_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTmark_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTnil_5) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_null) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_unit) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_0) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_1) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_2) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_neg_1) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_0) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_1) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_2) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_neg_1) ; /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_ptr_type traux_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type synlt_s2hnf_s2hnf_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type synlte_s2hnf_s2hnf_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type synlte_s2hnf_s2explst_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type s2exp_synlt_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type s2exp_synlte_20 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlt_21 (ats_bool_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_ptr_type auxlte_22 (ats_bool_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_ptr_type auxlst_23 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s2exp_metdec_reduce_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxeq_25 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxbind_26 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_34 (ats_ptr_type arg0) ; static ats_void_type loop_39 (ats_ptr_type arg0, ats_ref_type arg1, ats_ref_type arg2) ; static ats_void_type loop_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2vbcfenv_add2_cstapp_40 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp7) ; ATSstatic (ats_ptr_type, statmp8) ; ATSstatic (ats_ptr_type, statmp9) ; ATSstatic (ats_ptr_type, statmp10) ; ATSstatic (ats_ptr_type, statmp11) ; ATSstatic (ats_ptr_type, statmp12) ; ATSstatic (ats_ptr_type, statmp13) ; ATSstatic (ats_ptr_type, statmp14) ; ATSstatic (ats_ptr_type, statmp15) ; ATSstatic (ats_ptr_type, statmp16) ; ATSstatic (ats_ptr_type, statmp17) ; ATSstatic (ats_ptr_type, statmp18) ; ATSstatic (ats_ptr_type, statmp336) ; // ATSstatic_void (statmp337) ; // ATSstatic_void (statmp338) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 1671(line=52, offs=28) -- 1700(line=52, offs=57) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_constraint3")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 2072(line=79, offs=11) -- 2091(line=79, offs=30) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_err (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_err: tmp1 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp1)->tag = 19 ; ats_selptrset_mac(anairiats_sum_1, tmp1, atslab_0, arg0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_err] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 2135(line=84, offs=11) -- 2231(line=88, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_bool_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_is_bool (arg0) ; if (tmp3) { tmp2 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp2)->tag = 5 ; ats_selptrset_mac(anairiats_sum_1, tmp2, atslab_0, arg0) ; } else { tmp2 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp2)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp2, atslab_0, arg0) ; } /* end of [if] */ return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 2297(line=92, offs=22) -- 2317(line=92, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bvar (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bvar: tmp4 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp4)->tag = 5 ; ats_selptrset_mac(anairiats_sum_1, tmp4, atslab_0, arg0) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bvar] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 2361(line=97, offs=11) -- 2380(line=97, offs=30) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_cst: tmp5 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp5)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp5, atslab_0, arg0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_cst] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 2424(line=102, offs=11) -- 2458(line=102, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_app: tmp6 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp6)->tag = 18 ; ats_selptrset_mac(anairiats_sum_2, tmp6, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp6, atslab_1, arg1) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_app] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 3010(line=125, offs=12) -- 3055(line=126, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool (ats_bool_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool: if (arg0) { tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true ; } else { tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false ; } /* end of [if] */ return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 3125(line=132, offs=15) -- 3796(line=167, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_srt: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp21) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp22) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 11) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg0)->tag != 12) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg0)->tag != 13) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 14) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 15) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 16) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg0)->tag != 17) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg0)->tag != 18) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_srt (tmp23) ; if (((ats_sum_ptr_type)tmp24)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3.dats: 3699(line=162, offs=9) -- 3741(line=162, offs=51)") ; } tmp25 = ats_caselptrlab_mac(anairiats_sum_2, tmp24, atslab_1) ; tmp20 = tmp25 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (((ats_sum_ptr_type)arg0)->tag != 19) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp20 = tmp26 ; break ; } while (0) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_srt] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 4734(line=205, offs=9) -- 4990(line=212, offs=31) */ ATSstaticdec() ats_ptr_type traux_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab_traux_10: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add (arg0, tmp48) ; arg0 = tmp50 ; arg1 = tmp49 ; goto __ats_lab_traux_10 ; // tail call break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp47 = arg0 ; break ; } while (0) ; return (tmp47) ; } /* end of [traux_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25316(line=913, offs=7) -- 25599(line=923, offs=20) */ ATSstaticdec() ats_ptr_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_loop_13: do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp58 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; tmp59 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg0) (arg1, tmp57, arg3) ; arg0 = arg0 ; arg1 = tmp59 ; arg2 = tmp58 ; arg3 = arg3 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp56 = arg1 ; break ; } while (0) ; return (tmp56) ; } /* end of [loop_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25281(line=912, offs=20) -- 25655(line=927, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; __ats_lab_list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type: tmp55 = loop_13 (arg0, arg1, arg2, arg3) ; return (tmp55) ; } /* end of [list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25737(line=930, offs=28) -- 26032(line=939, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; __ats_lab_list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type: tmp54 = list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), arg1, arg2, atspre_null_ptr) ; return (tmp54) ; } /* end of [list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 3919(line=175, offs=5) -- 5529(line=235, offs=4) */ ATSstaticdec() ats_ptr_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab_loop_9: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add (arg0, tmp29) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp28 = arg0 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp28 = arg0 ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp28 = arg0 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp28 = arg0 ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add (arg0, tmp30) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; arg0 = arg0 ; arg1 = tmp31 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp33 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp34 = loop_9 (arg0, tmp32) ; arg0 = tmp34 ; arg1 = tmp33 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp36 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp37 = loop_9 (arg0, tmp35) ; arg0 = tmp37 ; arg1 = tmp36 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp39 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp40 = loop_9 (arg0, tmp38) ; arg0 = tmp40 ; arg1 = tmp39 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp42 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp43 = loop_9 (arg0, tmp41) ; arg0 = tmp43 ; arg1 = tmp42 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)arg1)->tag != 11) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; arg0 = arg0 ; arg1 = tmp44 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)arg1)->tag != 12) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add (arg0, tmp45) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_36_0 ; } __ats_lab_33_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_listize (tmp46) ; tmp28 = traux_10 (arg0, tmp51) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)arg1)->tag != 14) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; arg0 = arg0 ; arg1 = tmp52 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_40_0 ; } __ats_lab_37_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp28 = list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (&loop_9, arg0, tmp53) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)arg1)->tag != 16) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp61 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp62 = loop_9 (arg0, tmp60) ; arg0 = tmp62 ; arg1 = tmp61 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg1)->tag != 17) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp28 = arg0 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)arg1)->tag != 18) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp64 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp65 = loop_9 (arg0, tmp63) ; tmp28 = list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (&loop_9, tmp65, tmp64) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (((ats_sum_ptr_type)arg1)->tag != 19) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp28 = arg0 ; break ; } while (0) ; return (tmp28) ; } /* end of [loop_9] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 3869(line=172, offs=15) -- 5607(line=241, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_fvs (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_fvs: tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil () ; tmp27 = loop_9 (tmp66, arg0) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_fvs] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 5680(line=247, offs=3) -- 8425(line=348, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_bool_type, tmp72) ; ATSlocal (ats_bool_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_bool_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_bool_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_bool_type, tmp97) ; ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_int_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_bool_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_bool_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_bool_type, tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_47_0 ; } __ats_lab_44_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp68, tmp69) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_50_0 ; } __ats_lab_47_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (tmp70, tmp71) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: __ats_lab_49_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_53_0 ; } __ats_lab_50_1: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp67 = ats_true_bool ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_56_0 ; } __ats_lab_53_1: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp67 = ats_true_bool ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: __ats_lab_55_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_59_0 ; } __ats_lab_56_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp67 = atspre_eq_bool_bool (tmp72, tmp73) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_62_0 ; } __ats_lab_59_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp74, tmp75) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: __ats_lab_61_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_65_0 ; } __ats_lab_62_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; arg0 = tmp76 ; arg1 = tmp77 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq ; // tail call break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: __ats_lab_64_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_68_0 ; } __ats_lab_65_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq (tmp78, tmp80) ; if (tmp82) { arg0 = tmp79 ; arg1 = tmp81 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq ; // tail call } else { tmp67 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: __ats_lab_67_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_71_0 ; } __ats_lab_68_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp84 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq (tmp83, tmp85) ; if (tmp87) { arg0 = tmp84 ; arg1 = tmp86 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq ; // tail call } else { tmp67 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_74_0 ; } __ats_lab_71_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq (tmp88, tmp90) ; if (tmp92) { arg0 = tmp89 ; arg1 = tmp91 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq ; // tail call } else { tmp67 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_77_0 ; } __ats_lab_74_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp94 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp96 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq (tmp93, tmp95) ; if (tmp97) { arg0 = tmp94 ; arg1 = tmp96 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq ; // tail call } else { tmp67 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: __ats_lab_76_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)arg0)->tag != 11) { goto __ats_lab_80_0 ; } __ats_lab_77_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)arg1)->tag != 11) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp102 = atspre_ieq (tmp98, tmp100) ; if (tmp102) { arg0 = tmp99 ; arg1 = tmp101 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq ; // tail call } else { tmp67 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: __ats_lab_79_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)arg0)->tag != 12) { goto __ats_lab_83_0 ; } __ats_lab_80_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)arg1)->tag != 12) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp103, tmp104) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: __ats_lab_82_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)arg0)->tag != 13) { goto __ats_lab_86_0 ; } __ats_lab_83_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_is_equal (tmp105, tmp106) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: __ats_lab_85_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)arg0)->tag != 14) { goto __ats_lab_89_0 ; } __ats_lab_86_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)arg1)->tag != 14) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp110 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf (tmp107, tmp109) ; if (tmp111) { arg0 = tmp108 ; arg1 = tmp110 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq ; // tail call } else { tmp67 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)arg0)->tag != 15) { goto __ats_lab_92_0 ; } __ats_lab_89_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp113 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_syneq (tmp112, tmp113) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: __ats_lab_91_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)arg0)->tag != 16) { goto __ats_lab_95_0 ; } __ats_lab_92_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp115 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)arg1)->tag != 16) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp117 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq (tmp114, tmp116) ; if (tmp118) { arg0 = tmp115 ; arg1 = tmp117 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq ; // tail call } else { tmp67 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: __ats_lab_94_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)arg0)->tag != 17) { goto __ats_lab_98_0 ; } __ats_lab_95_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)arg1)->tag != 17) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_syneq (tmp119, tmp120) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: __ats_lab_97_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)arg0)->tag != 18) { goto __ats_lab_101_0 ; } __ats_lab_98_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp122 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)arg1)->tag != 18) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp124 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq (tmp121, tmp123) ; if (tmp125) { tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_syneq (tmp122, tmp124) ; } else { tmp67 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: __ats_lab_100_1: tmp67 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: // if (((ats_sum_ptr_type)arg0)->tag != 19) { ats_deadcode_failure_handle () ; } __ats_lab_101_1: tmp67 = ats_false_bool ; break ; } while (0) ; return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 8499(line=354, offs=3) -- 8823(line=365, offs=6) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_syneq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_syneq: do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_105_0 ; } __ats_lab_102_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp128 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq (tmp127, tmp129) ; if (tmp131) { arg0 = tmp128 ; arg1 = tmp130 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_syneq ; // tail call } else { tmp126 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_104_1: tmp126 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_105_1: do { /* branch: __ats_lab_106 */ __ats_lab_106_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp126 = ats_false_bool ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_107_1: tmp126 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; return (tmp126) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_syneq] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 8913(line=373, offs=1) -- 9251(line=390, offs=4) */ ATSstaticdec() ats_bool_type synlt_s2hnf_s2hnf_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_synlt_s2hnf_s2hnf_16: tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp134 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp133), atslab_s2exp_node) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp134)->tag != 17) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_2, tmp134, atslab_1) ; tmp132 = synlte_s2hnf_s2explst_18 (arg0, tmp135) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: __ats_lab_109_1: tmp132 = ats_false_bool ; break ; } while (0) ; return (tmp132) ; } /* end of [synlt_s2hnf_s2hnf_16] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 9281(line=393, offs=1) -- 9404(line=397, offs=65) */ ATSstaticdec() ats_bool_type synlte_s2hnf_s2hnf_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp136) ; ATSlocal (ats_bool_type, tmp137) ; __ats_lab_synlte_s2hnf_s2hnf_17: tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq (arg0, arg1) ; if (tmp137) { tmp136 = ats_true_bool ; } else { tmp136 = synlt_s2hnf_s2hnf_16 (arg0, arg1) ; } /* end of [if] */ return (tmp136) ; } /* end of [synlte_s2hnf_s2hnf_17] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 9502(line=405, offs=1) -- 9841(line=418, offs=25) */ ATSstaticdec() ats_bool_type synlte_s2hnf_s2explst_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_bool_type, tmp142) ; __ats_lab_synlte_s2hnf_s2explst_18: do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp139) ; tmp142 = synlte_s2hnf_s2hnf_17 (arg0, tmp141) ; if (tmp142) { tmp138 = ats_true_bool ; } else { arg0 = arg0 ; arg1 = tmp140 ; goto __ats_lab_synlte_s2hnf_s2explst_18 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: tmp138 = ats_false_bool ; break ; } while (0) ; return (tmp138) ; } /* end of [synlte_s2hnf_s2explst_18] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 9905(line=424, offs=1) -- 10058(line=431, offs=4) */ ATSstaticdec() ats_bool_type s2exp_synlt_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; __ats_lab_s2exp_synlt_19: tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp143 = synlt_s2hnf_s2hnf_16 (tmp144, tmp145) ; return (tmp143) ; } /* end of [s2exp_synlt_19] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 10088(line=434, offs=1) -- 10243(line=441, offs=4) */ ATSstaticdec() ats_bool_type s2exp_synlte_20 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab_s2exp_synlte_20: tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp146 = synlte_s2hnf_s2hnf_17 (tmp147, tmp148) ; return (tmp146) ; } /* end of [s2exp_synlte_20] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 10324(line=449, offs=5) -- 10590(line=462, offs=6) */ ATSstaticdec() ats_ptr_type auxlt_21 (ats_bool_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; __ats_lab_auxlt_21: if (arg0) { tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlt (arg1, arg2) ; } else { tmp150 = s2exp_synlt_19 (arg1, arg2) ; if (tmp150) { ats_ptrget_mac(ats_int_type, arg3) = 1 ; } else { ats_ptrget_mac(ats_int_type, arg3) = -1 ; } /* end of [if] */ tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (tmp150) ; } /* end of [if] */ return (tmp149) ; } /* end of [auxlt_21] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 10631(line=465, offs=5) -- 10906(line=478, offs=6) */ ATSstaticdec() ats_ptr_type auxlte_22 (ats_bool_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_bool_type, tmp153) ; __ats_lab_auxlte_22: if (arg0) { tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlte (arg1, arg2) ; } else { tmp153 = s2exp_synlte_20 (arg1, arg2) ; if (tmp153) { ats_ptrget_mac(ats_int_type, arg3) = 1 ; } else { ats_ptrget_mac(ats_int_type, arg3) = -1 ; } /* end of [if] */ tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (tmp153) ; } /* end of [if] */ return (tmp152) ; } /* end of [auxlte_22] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 10929(line=480, offs=5) -- 12215(line=528, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_23 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_int_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_bool_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_bool_type, tmp165) ; ATSlocal (ats_bool_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_bool_type, tmp171) ; __ats_lab_auxlst_23: do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } __ats_lab_112_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; /* ats_int_type tmp158 ; */ tmp158 = 0 ; /* ats_int_type tmp159 ; */ tmp159 = 0 ; do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; } __ats_lab_113_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp161 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp163 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp156), atslab_s2exp_srt) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_int (tmp163) ; tmp164 = auxlt_21 (tmp162, tmp156, tmp160, (&tmp158)) ; do { /* branch: __ats_lab_114 */ __ats_lab_114_0: __ats_lab_114_1: tmp165 = atspre_gt_int_int (tmp158, 0) ; if (!tmp165) { goto __ats_lab_115_1 ; } tmp155 = tmp164 ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: __ats_lab_115_1: tmp166 = atspre_eq_int_int (tmp158, 0) ; if (!tmp166) { goto __ats_lab_116_1 ; } tmp167 = auxlte_22 (tmp162, tmp156, tmp160, (&tmp159)) ; tmp168 = auxlst_23 (tmp157, tmp161) ; tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul (tmp167, tmp168) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_badd (tmp164, tmp169) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: __ats_lab_116_1: tmp170 = auxlte_22 (tmp162, tmp156, tmp160, (&tmp159)) ; tmp171 = atspre_gte_int_int (tmp159, 0) ; if (tmp171) { arg0 = tmp157 ; arg1 = tmp161 ; goto __ats_lab_auxlst_23 ; // tail call } else { tmp155 = tmp170 ; } /* end of [if] */ break ; } while (0) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_117_1: tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_true_bool) ; break ; } while (0) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_118_1: tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ; break ; } while (0) ; return (tmp155) ; } /* end of [auxlst_23] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 12264(line=532, offs=5) -- 12355(line=533, offs=72) */ ATSstaticdec() ats_ptr_type s2exp_metdec_reduce_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp172) ; __ats_lab_s2exp_metdec_reduce_24: tmp172 = auxlst_23 (arg0, arg1) ; return (tmp172) ; } /* end of [s2exp_metdec_reduce_24] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 12444(line=543, offs=1) -- 13057(line=570, offs=4) */ ATSstaticdec() ats_ptr_type auxeq_25 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_bool_type, tmp177) ; ATSlocal (ats_bool_type, tmp178) ; ATSlocal (ats_bool_type, tmp179) ; ATSlocal (ats_bool_type, tmp180) ; __ats_lab_auxeq_25: tmp174 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_srt) ; tmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, arg1) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, arg2) ; do { /* branch: __ats_lab_119 */ __ats_lab_119_0: __ats_lab_119_1: tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_int (tmp174) ; if (!tmp177) { goto __ats_lab_120_1 ; } tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq (tmp175, tmp176) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: __ats_lab_120_1: tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_addr (tmp174) ; if (!tmp178) { goto __ats_lab_121_1 ; } tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq (tmp175, tmp176) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: __ats_lab_121_1: tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_bool (tmp174) ; if (!tmp179) { goto __ats_lab_122_1 ; } tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_beq (tmp175, tmp176) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: __ats_lab_122_1: tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq (arg1, arg2) ; if (tmp180) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true ; } else { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_err (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; } /* end of [if] */ break ; } while (0) ; return (tmp173) ; } /* end of [auxeq_25] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 13081(line=573, offs=1) -- 13445(line=592, offs=4) */ ATSstaticdec() ats_ptr_type auxbind_26 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; // ATSlocal_void (tmp185) ; __ats_lab_auxbind_26: tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (arg2) ; tmp183 = auxeq_25 (arg1, tmp182, arg3) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg3) ; /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind (arg0, arg2, tmp184) ; tmp181 = tmp183 ; return (tmp181) ; } /* end of [auxbind_26] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 13515(line=598, offs=3) -- 15188(line=663, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_int_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_bool_type, tmp194) ; ATSlocal (ats_bool_type, tmp195) ; ATSlocal (ats_bool_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make: tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp187) ; tmp189 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp188), atslab_s2exp_node) ; do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp189)->tag != 7) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp190 = ats_caselptrlab_mac(anairiats_sum_1, tmp189, atslab_0) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp190) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp189)->tag != 0) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_7, tmp189, atslab_0) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_int (tmp191) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp189)->tag != 1) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_1, tmp189, atslab_0) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_intinf (tmp192) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp189)->tag != 4) { goto __ats_lab_131_0 ; } __ats_lab_126_1: tmp193 = ats_caselptrlab_mac(anairiats_sum_1, tmp189, atslab_0) ; do { /* branch: __ats_lab_127 */ __ats_lab_127_0: __ats_lab_127_1: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_null_addr, tmp193) ; if (!tmp194) { goto __ats_lab_128_1 ; } tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_null ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: __ats_lab_128_1: tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_true_bool, tmp193) ; if (!tmp195) { goto __ats_lab_129_1 ; } tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: __ats_lab_129_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_false_bool, tmp193) ; if (!tmp196) { goto __ats_lab_130_1 ; } tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: __ats_lab_130_1: tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_cst (tmp193) ; break ; } while (0) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp189)->tag != 17) { goto __ats_lab_134_0 ; } __ats_lab_131_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_2, tmp189, atslab_0) ; tmp198 = ats_caselptrlab_mac(anairiats_sum_2, tmp189, atslab_1) ; tmp199 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp197), atslab_s2exp_node) ; do { /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp199)->tag != 4) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp200 = ats_caselptrlab_mac(anairiats_sum_1, tmp199, atslab_0) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_s2cst_s2explst (arg0, tmp200, tmp198) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: __ats_lab_133_1: tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp197) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_make (arg0, tmp198) ; tmp186 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp186)->tag = 18 ; ats_selptrset_mac(anairiats_sum_2, tmp186, atslab_0, tmp201) ; ats_selptrset_mac(anairiats_sum_2, tmp186, atslab_1, tmp202) ; break ; } while (0) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp189)->tag != 15) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp203 = ats_caselptrlab_mac(anairiats_sum_2, tmp189, atslab_0) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_2, tmp189, atslab_1) ; tmp186 = auxeq_25 (arg0, tmp203, tmp204) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp189)->tag != 21) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp205 = ats_caselptrlab_mac(anairiats_sum_2, tmp189, atslab_0) ; tmp206 = ats_caselptrlab_mac(anairiats_sum_2, tmp189, atslab_1) ; tmp207 = s2exp_metdec_reduce_24 (tmp205, tmp206) ; arg0 = arg0 ; arg1 = tmp207 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make ; // tail call break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp189)->tag != 13) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_1, tmp189, atslab_0) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp (tmp208) ; tmp186 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp186)->tag = 17 ; ats_selptrset_mac(anairiats_sum_1, tmp186, atslab_0, tmp209) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: __ats_lab_137_1: tmp210 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp188), atslab_s2exp_srt) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_err (tmp210) ; break ; } while (0) ; return (tmp186) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 15242(line=667, offs=3) -- 15450(line=671, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_h3ypo (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_h3ypo: tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_h3ypo_node) ; do { /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp212)->tag != 0) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_1, tmp212, atslab_0) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp213) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp212)->tag != 1) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_2, tmp212, atslab_0) ; tmp215 = ats_caselptrlab_mac(anairiats_sum_2, tmp212, atslab_1) ; tmp216 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_h3ypo_loc) ; tmp211 = auxbind_26 (tmp216, arg0, tmp214, tmp215) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (((ats_sum_ptr_type)tmp212)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp217 = ats_caselptrlab_mac(anairiats_sum_2, tmp212, atslab_0) ; tmp218 = ats_caselptrlab_mac(anairiats_sum_2, tmp212, atslab_1) ; tmp211 = auxeq_25 (arg0, tmp217, tmp218) ; break ; } while (0) ; return (tmp211) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_h3ypo] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 15553(line=680, offs=3) -- 15744(line=689, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_make (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_make: do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp220 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp221 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp220) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_make (arg0, tmp221) ; tmp219 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp219, atslab_0, tmp222) ; ats_selptrset_mac(anairiats_sum_5, tmp219, atslab_1, tmp223) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_142_1: tmp219 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp219) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_make] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 16329(line=716, offs=15) -- 16349(line=716, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_nil: tmp224 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTnil_5) ; return (tmp224) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2556(line=86, offs=16) -- 2611(line=87, offs=49) */ ATSstaticdec() ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp231) ; __ats_lab_option_vt_free_01544_ats_ptr_type: do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_147_0 ; } __ats_lab_146_1: ATS_FREE(arg0) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_147_1: break ; } while (0) ; return /* (tmp231) */ ; } /* end of [option_vt_free_01544_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 16376(line=719, offs=16) -- 16778(line=728, offs=27) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; // ATSlocal_void (tmp230) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free: do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp226 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp226 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free ; // tail call break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp227 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free ; // tail call break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_148_0 ; } __ats_lab_145_1: tmp228 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ; tmp229 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_4) ; ATS_FREE(arg0) ; /* tmp230 = */ option_vt_free_01544_ats_ptr_type (tmp228) ; arg0 = tmp229 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free ; // tail call break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp232 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_2) ; ATS_FREE(arg0) ; arg0 = tmp232 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free ; // tail call break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp233 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; ATS_FREE(arg0) ; arg0 = tmp233 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free ; // tail call break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: // if (((ats_sum_ptr_type)arg0)->tag != 5) { ats_deadcode_failure_handle () ; } __ats_lab_150_1: break ; } while (0) ; return /* (tmp225) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 16856(line=733, offs=7) -- 17285(line=744, offs=42) */ ATSstaticdec() ats_ptr_type aux_34 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab_aux_34: do { /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp236 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp236 ; goto __ats_lab_aux_34 ; // tail call break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp237 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp237 ; goto __ats_lab_aux_34 ; // tail call break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp238 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ; tmp239 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_4) ; ATS_FREE(arg0) ; /* tmp240 = */ option_vt_free_01544_ats_ptr_type (tmp238) ; arg0 = tmp239 ; goto __ats_lab_aux_34 ; // tail call break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp241 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_2) ; ATS_FREE(arg0) ; arg0 = tmp241 ; goto __ats_lab_aux_34 ; // tail call break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; ATS_FREE(arg0) ; tmp235 = tmp242 ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: // if (((ats_sum_ptr_type)arg0)->tag != 5) { ats_deadcode_failure_handle () ; } __ats_lab_156_1: tmp235 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTnil_5) ; break ; } while (0) ; return (tmp235) ; } /* end of [aux_34] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 16833(line=732, offs=15) -- 17352(line=749, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_pop (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp234) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_pop: tmp243 = aux_34 (ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp243 ; return /* (tmp234) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 17408(line=752, offs=16) -- 17481(line=754, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_push (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_push: tmp245 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp245)->tag = 4 ; ats_selptrset_mac(anairiats_sum_1, tmp245, atslab_0, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp245 ; return /* (tmp244) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_push] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 17565(line=760, offs=3) -- 18795(line=812, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_bool_type, tmp253) ; ATSlocal (ats_bool_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp: do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 0) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp247 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp247 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp ; // tail call break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 1) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp248 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp248 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp ; // tail call break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 2) { goto __ats_lab_160_0 ; } __ats_lab_159_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp250 = ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp251 = ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp252 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (arg1, tmp249) ; if (tmp254) { tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_syneq (arg2, tmp250) ; } else { tmp253 = ats_false_bool ; } /* end of [if] */ if (tmp253) { tmp246 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp246, atslab_0, tmp251) ; } else { arg0 = tmp252 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 3) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp255 = &ats_caselptrlab_mac(anairiats_sum_10, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; arg0 = tmp255 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp ; // tail call break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 4) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp256 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; arg0 = tmp256 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp ; // tail call break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: // if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 5) { ats_deadcode_failure_handle () ; } __ats_lab_162_1: tmp246 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp246) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 18886(line=818, offs=3) -- 19928(line=865, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_bool_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin: do { /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 0) { goto __ats_lab_164_0 ; } __ats_lab_163_1: tmp258 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp258 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin ; // tail call break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 1) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp259 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp259 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin ; // tail call break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 2) { goto __ats_lab_166_0 ; } __ats_lab_165_1: tmp260 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; arg0 = tmp260 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin ; // tail call break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 3) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp261 = ats_caselptrlab_mac(anairiats_sum_10, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp262 = ats_caselptrlab_mac(anairiats_sum_10, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp263 = &ats_caselptrlab_mac(anairiats_sum_10, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_syneq (arg1, tmp262) ; if (tmp264) { tmp257 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp257, atslab_0, tmp261) ; } else { arg0 = tmp263 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 4) { goto __ats_lab_168_0 ; } __ats_lab_167_1: tmp265 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; arg0 = tmp265 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin ; // tail call break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: // if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 5) { ats_deadcode_failure_handle () ; } __ats_lab_168_1: tmp257 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp257) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 20032(line=872, offs=5) -- 21356(line=918, offs=4) */ ATSstaticdec() ats_void_type loop_39 (ats_ptr_type arg0, ats_ref_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_bool_type, tmp271) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; __ats_lab_loop_39: do { /* branch: __ats_lab_169 */ __ats_lab_169_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_170_0 ; } __ats_lab_169_1: tmp268 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp269 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp270 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp270, atslab_0, tmp268) ; ats_selptrset_mac(anairiats_sum_5, tmp270, atslab_1, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp270 ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_is_bool (tmp268) ; if (tmp271) { tmp274 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp274)->tag = 12 ; ats_selptrset_mac(anairiats_sum_1, tmp274, atslab_0, tmp268) ; tmp273 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp273, atslab_0, tmp274) ; ats_selptrset_mac(anairiats_sum_5, tmp273, atslab_1, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp273 ; } else { /* empty */ } /* end of [if] */ tmp275 = ats_ptrget_mac(ats_ptr_type, tmp269) ; arg0 = tmp275 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp276 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp277 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp278 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp278, atslab_0, tmp276) ; ats_selptrset_mac(anairiats_sum_5, tmp278, atslab_1, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp278 ; tmp279 = ats_ptrget_mac(ats_ptr_type, tmp277) ; arg0 = tmp279 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_174_0 ; } __ats_lab_171_1: tmp280 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ; tmp281 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_4) ; tmp283 = ats_ptrget_mac(ats_ptr_type, tmp280) ; do { /* branch: __ats_lab_172 */ __ats_lab_172_0: if (tmp283 == (ats_sum_ptr_type)0) { goto __ats_lab_173_0 ; } __ats_lab_172_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_11, tmp283, atslab_0) ; tmp285 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp285, atslab_0, tmp284) ; ats_selptrset_mac(anairiats_sum_5, tmp285, atslab_1, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp285 ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: // if (tmp283 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_173_1: break ; } while (0) ; tmp286 = ats_ptrget_mac(ats_ptr_type, tmp281) ; arg0 = tmp286 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_174 */ __ats_lab_174_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_175_0 ; } __ats_lab_174_1: tmp287 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp288 = &ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_2) ; tmp289 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp289, atslab_0, tmp287) ; ats_selptrset_mac(anairiats_sum_5, tmp289, atslab_1, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp289 ; tmp290 = ats_ptrget_mac(ats_ptr_type, tmp288) ; arg0 = tmp290 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_176_0 ; } __ats_lab_175_1: tmp291 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp292 = ats_ptrget_mac(ats_ptr_type, tmp291) ; arg0 = tmp292 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: // if (((ats_sum_ptr_type)arg0)->tag != 5) { ats_deadcode_failure_handle () ; } __ats_lab_176_1: break ; } while (0) ; return /* (tmp267) */ ; } /* end of [loop_39] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 20013(line=870, offs=19) -- 21515(line=926, offs=4) */ ATSglobaldec() anairiats_rec_12 _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_extract (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_12, tmp266) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; // ATSlocal_void (tmp295) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_extract: /* ats_ptr_type tmp293 ; */ tmp293 = (ats_sum_ptr_type)0 ; /* ats_ptr_type tmp294 ; */ tmp294 = (ats_sum_ptr_type)0 ; /* tmp295 = */ loop_39 (arg0, (&tmp293), (&tmp294)) ; tmp266.atslab_0 = tmp293 ; tmp266.atslab_1 = tmp294 ; return (tmp266) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_extract] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19194(line=690, offs=7) -- 19604(line=704, offs=6) */ ATSstaticdec() ats_void_type loop_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; __ats_lab_loop_42: do { /* branch: __ats_lab_177 */ __ats_lab_177_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_178_0 ; } __ats_lab_177_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp305 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp306 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp306, atslab_0, tmp304) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp306 ; if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19444(line=699, offs=13) -- 19470(line=699, offs=39)") ; } tmp307 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp305 ; arg1 = arg1 ; arg2 = tmp307 ; goto __ats_lab_loop_42 ; // tail call break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_178_1: tmp309 = (ats_sum_ptr_type)0 ; tmp308 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp308, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp308, atslab_1, tmp309) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp308 ; break ; } while (0) ; return /* (tmp303) */ ; } /* end of [loop_42] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19136(line=688, offs=13) -- 19698(line=708, offs=4) */ ATSstaticdec() ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; // ATSlocal_void (tmp310) ; __ats_lab_list_extend_01337_ats_ptr_type: /* ats_ptr_type tmp302 ; */ /* tmp310 = */ loop_42 (arg0, arg1, (&tmp302)) ; tmp301 = tmp302 ; return (tmp301) ; } /* end of [list_extend_01337_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 21572(line=931, offs=1) -- 22238(line=960, offs=4) */ ATSstaticdec() ats_void_type s2vbcfenv_add2_cstapp_40 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; __ats_lab_s2vbcfenv_add2_cstapp_40: tmp297 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp297)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp297, atslab_0, arg4) ; ats_selptrset_mac(anairiats_sum_2, tmp297, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp297 ; tmp298 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (arg1) ; tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (arg4) ; tmp300 = list_extend_01337_ats_ptr_type (arg2, tmp299) ; tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool, tmp298, ats_castfn_mac(ats_ptr_type, tmp300)) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp311) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize (arg0, tmp312) ; tmp315 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp315, atslab_0, tmp313) ; tmp314 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp314)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp314, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp314, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_9, tmp314, atslab_2, arg4) ; ats_selptrset_mac(anairiats_sum_9, tmp314, atslab_3, tmp315) ; ats_selptrset_mac(anairiats_sum_9, tmp314, atslab_4, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp314 ; return /* (tmp296) */ ; } /* end of [s2vbcfenv_add2_cstapp_40] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 22326(line=966, offs=3) -- 22371(line=966, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_svar (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_svar: tmp317 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp317)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp317, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp317, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp317 ; return /* (tmp316) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_svar] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 22437(line=971, offs=3) -- 22485(line=971, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_sbexp (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_sbexp: tmp319 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp319)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp319, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp319, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp319 ; return /* (tmp318) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_sbexp] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 22553(line=976, offs=3) -- 22760(line=986, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_nonlin (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_nonlin: tmp321 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp321)->tag = 3 ; ats_selptrset_mac(anairiats_sum_10, tmp321, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp321, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp321, atslab_2, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp321 ; return /* (tmp320) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_nonlin] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 22893(line=996, offs=3) -- 23219(line=1010, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_cstapp (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_cstapp: tmp323 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_make (arg0, arg2) ; /* tmp322 = */ s2vbcfenv_add2_cstapp_40 (arg0, arg1, arg2, tmp323, arg3) ; return /* (tmp322) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_cstapp] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 23312(line=1016, offs=3) -- 23680(line=1035, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; // ATSlocal_void (tmp329) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp: tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_make (arg0, arg3) ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_cstapp (arg0, arg2, tmp325) ; do { /* branch: __ats_lab_179 */ __ats_lab_179_0: if (tmp326 == (ats_sum_ptr_type)0) { goto __ats_lab_180_0 ; } __ats_lab_179_1: tmp327 = ats_caselptrlab_mac(anairiats_sum_11, tmp326, atslab_0) ; ATS_FREE(tmp326) ; tmp324 = tmp327 ; break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: // if (tmp326 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_180_1: tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (arg1) ; /* tmp329 = */ s2vbcfenv_add2_cstapp_40 (arg0, arg2, arg3, tmp325, tmp328) ; tmp324 = tmp328 ; break ; } while (0) ; return (tmp324) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 23777(line=1041, offs=3) -- 24081(line=1057, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_nonlin (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; // ATSlocal_void (tmp335) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_nonlin: tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_find_nonlin (arg0, arg1) ; do { /* branch: __ats_lab_181 */ __ats_lab_181_0: if (tmp331 == (ats_sum_ptr_type)0) { goto __ats_lab_182_0 ; } __ats_lab_181_1: tmp332 = ats_caselptrlab_mac(anairiats_sum_11, tmp331, atslab_0) ; ATS_FREE(tmp331) ; tmp330 = tmp332 ; break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: // if (tmp331 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_182_1: tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_srt (arg1) ; tmp334 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (tmp333) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_nonlin (arg0, tmp334, arg1) ; tmp330 = tmp334 ; break ; } while (0) ; return (tmp330) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_nonlin] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 24475(line=1079, offs=3) -- 24945(line=1099, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_s2cst_s2explst (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_s2cst_s2explst: tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_find (statmp336, arg1) ; do { /* branch: __ats_lab_183 */ __ats_lab_183_0: if (tmp340 == (ats_sum_ptr_type)0) { goto __ats_lab_184_0 ; } __ats_lab_183_1: tmp341 = ats_caselptrlab_mac(anairiats_sum_11, tmp340, atslab_0) ; ATS_FREE(tmp340) ; tmp339 = ((ats_ptr_type(*)(ats_ref_type, ats_ptr_type))tmp341) (arg0, arg2) ; break ; /* branch: __ats_lab_184 */ __ats_lab_184_0: // if (tmp340 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_184_1: tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_cst (arg1) ; tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_make (arg0, arg2) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_app (tmp342, tmp343) ; break ; } while (0) ; return (tmp339) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_s2cst_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_constraint3.dats: 25039(line=1104, offs=24) -- 25151(line=1107, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize () { /* local vardec */ // ATSlocal_void (tmp344) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize: /* tmp344 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize_map ((&statmp336)) ; return /* (tmp344) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTsvar_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTsbexp_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTcons_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTnonlin_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTmark_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__S2VBCFLSTnil_5.tag = 5 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp8, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp9, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp10, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp11, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp12, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp13, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp14, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp15, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp16, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp17, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp18, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp336, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp7 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_null, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_null = statmp7 ; statmp8 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_unit, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_unit = statmp8 ; statmp9 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp9)->tag = 4 ; ats_selptrset_mac(anairiats_sum_3, statmp9, atslab_0, ats_true_bool) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true = statmp9 ; statmp10 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp10)->tag = 4 ; ats_selptrset_mac(anairiats_sum_3, statmp10, atslab_0, ats_false_bool) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false = statmp10 ; statmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int (0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_0, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_0 = statmp11 ; statmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int (1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_1, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_1 = statmp12 ; statmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int (2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_2, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_2 = statmp13 ; statmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int (-1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_neg_1, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_neg_1 = statmp14 ; statmp15 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_0, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_0 = statmp15 ; statmp16 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eunit_3) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_1, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_1 = statmp16 ; statmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_intinf (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_2, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_2 = statmp17 ; statmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_intinf (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_neg_1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_neg_1, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_neg_1 = statmp18 ; /* ats_ptr_type statmp336 ; */ statmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_nil () ; /* statmp337 = */ atspre_vbox_make_view_ptr ((&statmp336)) ; /* statmp338 = ats_selsin_mac(statmp337, atslab_1) */ ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_constraint3_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp1_dats.c0000644000175000017500000042766313431250607022134 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_uint_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_s0rtq_loc ; ats_ptr_type atslab_s0rtq_node ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_s1rt_loc ; ats_ptr_type atslab_s1rt_node ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_s1rtpol_loc ; ats_ptr_type atslab_s1rtpol_srt ; ats_int_type atslab_s1rtpol_pol ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_d1atsrtcon_loc ; ats_ptr_type atslab_d1atsrtcon_sym ; ats_ptr_type atslab_d1atsrtcon_arg ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_d1atsrtdec_loc ; ats_ptr_type atslab_d1atsrtdec_sym ; ats_ptr_type atslab_d1atsrtdec_con ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_s1arg_loc ; ats_ptr_type atslab_s1arg_sym ; ats_ptr_type atslab_s1arg_srt ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_s1marg_loc ; ats_ptr_type atslab_s1marg_arg ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_a1srt_loc ; ats_ptr_type atslab_a1srt_sym ; ats_ptr_type atslab_a1srt_srt ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_a1msrt_loc ; ats_ptr_type atslab_a1msrt_arg ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_sp1at_loc ; ats_ptr_type atslab_sp1at_node ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_21 ; typedef struct { ats_ptr_type atslab_s1exp_loc ; ats_ptr_type atslab_s1exp_node ; } anairiats_rec_22 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_23 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_24 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_25 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_26 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_27 ; typedef struct { ats_ptr_type atslab_s1rtext_loc ; ats_ptr_type atslab_s1rtext_node ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_s1qua_loc ; ats_ptr_type atslab_s1qua_node ; } anairiats_rec_29 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_30 ; typedef struct { ats_ptr_type atslab_q1marg_loc ; ats_ptr_type atslab_q1marg_arg ; } anairiats_rec_31 ; typedef struct { ats_ptr_type atslab_t1mpmarg_loc ; ats_ptr_type atslab_t1mpmarg_arg ; } anairiats_rec_32 ; typedef struct { ats_ptr_type atslab_s1exparg_loc ; ats_ptr_type atslab_s1exparg_node ; } anairiats_rec_33 ; typedef struct { ats_ptr_type atslab_m1acarg_loc ; ats_ptr_type atslab_m1acarg_node ; } anairiats_rec_34 ; typedef struct { ats_ptr_type atslab_s1rtdef_loc ; ats_ptr_type atslab_s1rtdef_sym ; ats_ptr_type atslab_s1rtdef_def ; } anairiats_rec_35 ; typedef struct { ats_ptr_type atslab_s1tacst_loc ; ats_ptr_type atslab_s1tacst_sym ; ats_ptr_type atslab_s1tacst_fil ; ats_ptr_type atslab_s1tacst_arg ; ats_ptr_type atslab_s1tacst_res ; ats_ptr_type atslab_s1tacst_extdef ; } anairiats_rec_36 ; typedef struct { ats_ptr_type atslab_s1tacon_loc ; ats_ptr_type atslab_s1tacon_sym ; ats_ptr_type atslab_s1tacon_fil ; ats_ptr_type atslab_s1tacon_arg ; ats_ptr_type atslab_s1tacon_def ; } anairiats_rec_37 ; typedef struct { ats_ptr_type atslab_t1kindef_loc ; ats_ptr_type atslab_t1kindef_sym ; ats_ptr_type atslab_t1kindef_loc_id ; ats_ptr_type atslab_t1kindef_def ; } anairiats_rec_38 ; typedef struct { ats_ptr_type atslab_s1expdef_loc ; ats_ptr_type atslab_s1expdef_sym ; ats_ptr_type atslab_s1expdef_loc_id ; ats_ptr_type atslab_s1expdef_arg ; ats_ptr_type atslab_s1expdef_res ; ats_ptr_type atslab_s1expdef_def ; } anairiats_rec_39 ; typedef struct { ats_ptr_type atslab_s1aspdec_loc ; ats_ptr_type atslab_s1aspdec_qid ; ats_ptr_type atslab_s1aspdec_arg ; ats_ptr_type atslab_s1aspdec_res ; ats_ptr_type atslab_s1aspdec_def ; } anairiats_rec_40 ; typedef struct { ats_ptr_type atslab_d1atcon_loc ; ats_ptr_type atslab_d1atcon_sym ; ats_ptr_type atslab_d1atcon_qua ; ats_int_type atslab_d1atcon_npf ; ats_ptr_type atslab_d1atcon_arg ; ats_ptr_type atslab_d1atcon_ind ; } anairiats_rec_41 ; typedef struct { ats_ptr_type atslab_d1atdec_loc ; ats_ptr_type atslab_d1atdec_fil ; ats_ptr_type atslab_d1atdec_sym ; ats_ptr_type atslab_d1atdec_arg ; ats_ptr_type atslab_d1atdec_con ; } anairiats_rec_42 ; typedef struct { ats_ptr_type atslab_e1xndec_loc ; ats_ptr_type atslab_e1xndec_fil ; ats_ptr_type atslab_e1xndec_sym ; ats_ptr_type atslab_e1xndec_qua ; ats_int_type atslab_e1xndec_npf ; ats_ptr_type atslab_e1xndec_arg ; } anairiats_rec_43 ; typedef struct { ats_ptr_type atslab_d1cstdec_loc ; ats_ptr_type atslab_d1cstdec_fil ; ats_ptr_type atslab_d1cstdec_sym ; ats_ptr_type atslab_d1cstdec_type ; ats_ptr_type atslab_d1cstdec_extdef ; } anairiats_rec_44 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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_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_syntax_2esats__S0RTQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALchar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALstring_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPintrep_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPchar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfloat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPv1al_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPnone_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPundef_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfun_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPif_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPeval_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPlist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPerr_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTset_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTapp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTqid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTtype_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTerr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__SP1Tcstr_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_none_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qvars_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsub_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Esqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Echar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Efloat_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Estring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextype_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextkind_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elam_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eimp_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Einvar_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etrans_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyarr_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etytup_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_ext_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Euni_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eexi_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eann_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Ed2ctype_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eerr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGdyn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGsta_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_sarglst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_svararglst_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_lte_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ntm) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_exn) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ref) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_wrt) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ismem) (ats_uint_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_arrow) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_err) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_v1al) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__v1al_true) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__v1al_false) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_nil) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_all) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ntm) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_exn) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ref) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_wrt) ; /* internal function declarations */ static ats_void_type prerr_error1_loc_0 (ats_ptr_type arg0) ; static ats_bool_type s0rtq_is_none_25 (ats_ptr_type arg0) ; static ats_int_type loop_62 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_64 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_85 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_85_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_85_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxlst_86 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_86_closure_make (ats_ptr_type env0) ; static ats_ptr_type auxlst_86_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_88 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_88_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_88_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxlst_89 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_89_closure_make (ats_ptr_type env0) ; static ats_ptr_type auxlst_89_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type loop_92 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp47) ; ATSstatic (ats_ptr_type, statmp48) ; ATSstatic (ats_ptr_type, statmp49) ; ATSstatic (ats_ptr_type, statmp50) ; ATSstatic (ats_ptr_type, statmp51) ; ATSstatic (ats_ptr_type, statmp52) ; ATSstatic (ats_ptr_type, statmp53) ; ATSstatic (ats_ptr_type, statmp54) ; ATSstatic (ats_ptr_type, statmp55) ; ATSstatic (ats_ptr_type, statmp56) ; ATSstatic (ats_ptr_type, statmp57) ; ATSstatic (ats_ptr_type, statmp58) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 1678(line=55, offs=4) -- 1770(line=58, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_0 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; // ATSlocal_void (tmp1) ; __ats_lab_prerr_error1_loc_0: /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp0 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp0) */ ; } /* end of [prerr_error1_loc_0] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 1842(line=63, offs=11) -- 1893(line=65, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make: tmp2 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp2, atslab_e1xp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp2, atslab_e1xp_node, arg1) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 1936(line=68, offs=10) -- 1985(line=68, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide: tmp4 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp4)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp4, atslab_0, arg1) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp4) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 2006(line=71, offs=10) -- 2047(line=72, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int: tmp6 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp6)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp6, atslab_0, arg1) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp6) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 2070(line=74, offs=13) -- 2118(line=75, offs=36) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep: tmp8 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp8)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp8, atslab_0, arg1) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp8) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 2163(line=78, offs=11) -- 2209(line=78, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char: tmp10 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp10)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp10, atslab_0, arg1) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp10) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 2232(line=80, offs=13) -- 2278(line=80, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string: tmp12 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp12)->tag = 5 ; ats_selptrset_mac(anairiats_sum_2, tmp12, atslab_0, arg1) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp12) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 2300(line=82, offs=12) -- 2343(line=82, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float: tmp14 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp14)->tag = 4 ; ats_selptrset_mac(anairiats_sum_2, tmp14, atslab_0, arg1) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp14) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 2388(line=88, offs=3) -- 2510(line=94, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_i0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_i0nt: tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp16)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp1.dats: 2409(line=89, offs=7) -- 2460(line=90, offs=41)") ; } tmp17 = ats_caselptrlab_mac(anairiats_sum_6, tmp16, atslab_1) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep (arg0, tmp17) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 2554(line=96, offs=12) -- 2631(line=98, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_c0har (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_char_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_c0har: tmp19 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp19)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp1.dats: 2575(line=97, offs=7) -- 2605(line=97, offs=37)") ; } tmp20 = ats_caselptrlab_mac(anairiats_sum_4, tmp19, atslab_0) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char (arg0, tmp20) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_c0har] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 2678(line=100, offs=14) -- 2759(line=102, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_s0tring (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_s0tring: tmp22 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp22)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp1.dats: 2699(line=101, offs=7) -- 2731(line=101, offs=39)") ; } tmp23 = ats_caselptrlab_mac(anairiats_sum_2, tmp22, atslab_0) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (arg0, tmp23) ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 2807(line=104, offs=13) -- 2934(line=110, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_f0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_f0loat: tmp25 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp25)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp1.dats: 2828(line=105, offs=7) -- 2885(line=106, offs=45)") ; } tmp26 = ats_caselptrlab_mac(anairiats_sum_6, tmp25, atslab_1) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float (arg0, tmp26) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3006(line=116, offs=3) -- 3046(line=116, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_v1al (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_v1al: tmp28 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp28)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp28, atslab_0, arg1) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp28) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_v1al] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3091(line=121, offs=11) -- 3127(line=121, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none: tmp30 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPnone_7) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp30) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3149(line=123, offs=12) -- 3186(line=123, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_undef (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_undef: tmp32 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPundef_8) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp32) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_undef] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3228(line=129, offs=1) -- 3313(line=131, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app: tmp34 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp34)->tag = 9 ; ats_selptrset_mac(anairiats_sum_7, tmp34, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp34, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp34, atslab_2, arg3) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp34) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3336(line=135, offs=3) -- 3391(line=135, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_fun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_fun: tmp36 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp36)->tag = 10 ; ats_selptrset_mac(anairiats_sum_8, tmp36, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp36, atslab_1, arg2) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp36) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3455(line=141, offs=9) -- 3531(line=142, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_if (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_if: tmp38 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp38)->tag = 11 ; ats_selptrset_mac(anairiats_sum_7, tmp38, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp38, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp38, atslab_2, arg3) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp38) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_if] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3578(line=147, offs=11) -- 3624(line=147, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_eval (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_eval: tmp40 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp40)->tag = 12 ; ats_selptrset_mac(anairiats_sum_2, tmp40, atslab_0, arg1) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp40) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_eval] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3648(line=150, offs=11) -- 3699(line=150, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list: tmp42 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp42)->tag = 13 ; ats_selptrset_mac(anairiats_sum_2, tmp42, atslab_0, arg1) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp42) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3743(line=155, offs=10) -- 3783(line=155, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err: tmp44 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPerr_14) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp44) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3826(line=159, offs=21) -- 3851(line=159, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_true (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_true: tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int (arg0, 1) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_true] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 3873(line=160, offs=22) -- 3898(line=160, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_false (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_false: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int (arg0, 0) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_false] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 4336(line=178, offs=3) -- 4465(line=181, offs=53) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_uint_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp59 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp59 = ats_false_bool ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ismem (tmp60, arg1) ; break ; } while (0) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 4523(line=185, offs=20) -- 4563(line=185, offs=60) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain_ntm (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain_ntm: tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effect_ntm) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain_ntm] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 4712(line=196, offs=4) -- 4802(line=197, offs=58) */ ATSstaticdec() ats_bool_type s0rtq_is_none_25 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; __ats_lab_s0rtq_is_none_25: tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s0rtq_node) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (tmp63 != (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp62 = ats_true_bool ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp62 = ats_false_bool ; break ; } while (0) ; return (tmp62) ; } /* end of [s0rtq_is_none_25] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 4872(line=203, offs=12) -- 4971(line=206, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_arrow (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_arrow: tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_none (arg0) ; tmp66 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp66)->tag = 2 ; ats_selptrset_mac(anairiats_sum_8, tmp66, atslab_0, tmp65) ; ats_selptrset_mac(anairiats_sum_8, tmp66, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; tmp64 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp64, atslab_s1rt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp64, atslab_s1rt_node, tmp66) ; return (tmp64) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_arrow] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 5061(line=210, offs=15) -- 5209(line=215, offs=15) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_is_arrow (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_bool_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_is_arrow: tmp68 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_s1rt_node) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp68)->tag != 2) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_8, tmp68, atslab_0) ; tmp70 = ats_caselptrlab_mac(anairiats_sum_8, tmp68, atslab_1) ; tmp71 = s0rtq_is_none_25 (tmp69) ; if (tmp71) { tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp70, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; } else { tmp67 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp67 = ats_false_bool ; break ; } while (0) ; return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_is_arrow] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 5291(line=221, offs=10) -- 5382(line=225, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_app: tmp73 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp73)->tag = 0 ; ats_selptrset_mac(anairiats_sum_8, tmp73, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp73, atslab_1, arg2) ; tmp72 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp72, atslab_s1rt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp72, atslab_s1rt_node, tmp73) ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_app] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 5424(line=228, offs=10) -- 5578(line=232, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_fun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_fun: tmp77 = (ats_sum_ptr_type)0 ; tmp76 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp76, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_12, tmp76, atslab_1, tmp77) ; tmp75 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp75, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp75, atslab_1, tmp76) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_arrow (arg0) ; tmp78 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp78)->tag = 0 ; ats_selptrset_mac(anairiats_sum_8, tmp78, atslab_0, tmp79) ; ats_selptrset_mac(anairiats_sum_8, tmp78, atslab_1, tmp75) ; tmp74 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp74, atslab_s1rt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp74, atslab_s1rt_node, tmp78) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 5620(line=235, offs=10) -- 5718(line=238, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_ide (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_ide: tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__s0rtq_none (arg0) ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp82)->tag = 2 ; ats_selptrset_mac(anairiats_sum_8, tmp82, atslab_0, tmp81) ; ats_selptrset_mac(anairiats_sum_8, tmp82, atslab_1, arg1) ; tmp80 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp80, atslab_s1rt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp80, atslab_s1rt_node, tmp82) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_ide] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 5763(line=242, offs=3) -- 5919(line=246, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_list (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_list: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } tmp84 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; if (tmp84 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp83 = tmp85 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp86 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp86)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp86, atslab_0, arg1) ; tmp83 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp83, atslab_s1rt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp83, atslab_s1rt_node, tmp86) ; break ; } while (0) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_list] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 5976(line=250, offs=10) -- 6040(line=252, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_qid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_qid: tmp88 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp88)->tag = 2 ; ats_selptrset_mac(anairiats_sum_8, tmp88, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp88, atslab_1, arg2) ; tmp87 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp87, atslab_s1rt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp87, atslab_s1rt_node, tmp88) ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_qid] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 6190(line=262, offs=11) -- 6250(line=264, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_type (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_type: tmp90 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp90)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp90, atslab_0, arg1) ; tmp89 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp89, atslab_s1rt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp89, atslab_s1rt_node, tmp90) ; return (tmp89) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 6271(line=267, offs=10) -- 6322(line=269, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_err (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_err: tmp92 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTerr_4) ; tmp91 = ATS_MALLOC(sizeof(anairiats_rec_11)) ; ats_selptrset_mac(anairiats_rec_11, tmp91, atslab_s1rt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_11, tmp91, atslab_s1rt_node, tmp92) ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 6368(line=274, offs=14) -- 6445(line=276, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtpol_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtpol_make: tmp93 = ATS_MALLOC(sizeof(anairiats_rec_13)) ; ats_selptrset_mac(anairiats_rec_13, tmp93, atslab_s1rtpol_loc, arg0) ; ats_selptrset_mac(anairiats_rec_13, tmp93, atslab_s1rtpol_srt, arg1) ; ats_selptrset_mac(anairiats_rec_13, tmp93, atslab_s1rtpol_pol, arg2) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtpol_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 6521(line=282, offs=3) -- 6609(line=284, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtcon_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtcon_make: tmp94 = ATS_MALLOC(sizeof(anairiats_rec_14)) ; ats_selptrset_mac(anairiats_rec_14, tmp94, atslab_d1atsrtcon_loc, arg0) ; ats_selptrset_mac(anairiats_rec_14, tmp94, atslab_d1atsrtcon_sym, arg1) ; ats_selptrset_mac(anairiats_rec_14, tmp94, atslab_d1atsrtcon_arg, arg2) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtcon_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 6667(line=288, offs=3) -- 6761(line=290, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtdec_make: tmp95 = ATS_MALLOC(sizeof(anairiats_rec_15)) ; ats_selptrset_mac(anairiats_rec_15, tmp95, atslab_d1atsrtdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_15, tmp95, atslab_d1atsrtdec_sym, arg1) ; ats_selptrset_mac(anairiats_rec_15, tmp95, atslab_d1atsrtdec_con, arg2) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atsrtdec_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 6833(line=295, offs=12) -- 6904(line=297, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1arg_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1arg_make: tmp96 = ATS_MALLOC(sizeof(anairiats_rec_16)) ; ats_selptrset_mac(anairiats_rec_16, tmp96, atslab_s1arg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_16, tmp96, atslab_s1arg_sym, arg1) ; ats_selptrset_mac(anairiats_rec_16, tmp96, atslab_s1arg_srt, arg2) ; return (tmp96) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1arg_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 6928(line=300, offs=13) -- 6982(line=302, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1marg_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1marg_make: tmp97 = ATS_MALLOC(sizeof(anairiats_rec_17)) ; ats_selptrset_mac(anairiats_rec_17, tmp97, atslab_s1marg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_17, tmp97, atslab_s1marg_arg, arg1) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1marg_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 7026(line=307, offs=12) -- 7097(line=309, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1srt_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1srt_make: tmp98 = ATS_MALLOC(sizeof(anairiats_rec_18)) ; ats_selptrset_mac(anairiats_rec_18, tmp98, atslab_a1srt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_18, tmp98, atslab_a1srt_sym, arg1) ; ats_selptrset_mac(anairiats_rec_18, tmp98, atslab_a1srt_srt, arg2) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1srt_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 7120(line=311, offs=13) -- 7172(line=313, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1msrt_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1msrt_make: tmp99 = ATS_MALLOC(sizeof(anairiats_rec_19)) ; ats_selptrset_mac(anairiats_rec_19, tmp99, atslab_a1msrt_loc, arg0) ; ats_selptrset_mac(anairiats_rec_19, tmp99, atslab_a1msrt_arg, arg1) ; return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__a1msrt_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 7218(line=319, offs=3) -- 7294(line=321, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__sp1at_cstr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__sp1at_cstr: tmp101 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ats_selptrset_mac(anairiats_sum_21, tmp101, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_21, tmp101, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_21, tmp101, atslab_2, arg3) ; tmp100 = ATS_MALLOC(sizeof(anairiats_rec_20)) ; ats_selptrset_mac(anairiats_rec_20, tmp100, atslab_sp1at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_20, tmp100, atslab_sp1at_node, tmp101) ; return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__sp1at_cstr] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 7362(line=327, offs=3) -- 7420(line=329, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ide (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ide: tmp103 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp103)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp103, atslab_0, arg1) ; tmp102 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp102, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp102, atslab_s1exp_node, tmp103) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ide] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 7470(line=333, offs=3) -- 7537(line=335, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_sqid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_sqid: tmp105 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp105)->tag = 1 ; ats_selptrset_mac(anairiats_sum_8, tmp105, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp105, atslab_1, arg2) ; tmp104 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp104, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp104, atslab_s1exp_node, tmp105) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_sqid] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 7608(line=341, offs=3) -- 7668(line=343, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_int: tmp107 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp107)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp107, atslab_0, arg1) ; tmp106 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp106, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp106, atslab_s1exp_node, tmp107) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_int] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 7720(line=347, offs=3) -- 7783(line=349, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_intrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_intrep: tmp109 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp109)->tag = 3 ; ats_selptrset_mac(anairiats_sum_2, tmp109, atslab_0, arg1) ; tmp108 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp108, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp108, atslab_s1exp_node, tmp109) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_intrep] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 7836(line=353, offs=3) -- 7959(line=359, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_i0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_i0nt: tmp111 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp111)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp1.dats: 7857(line=354, offs=7) -- 7908(line=355, offs=41)") ; } tmp112 = ats_caselptrlab_mac(anairiats_sum_6, tmp111, atslab_1) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_intrep (arg0, tmp112) ; return (tmp110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 8026(line=364, offs=12) -- 8083(line=366, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_char (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_char: tmp114 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp114)->tag = 4 ; ats_selptrset_mac(anairiats_sum_4, tmp114, atslab_0, arg1) ; tmp113 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp113, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp113, atslab_s1exp_node, tmp114) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_char] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 8129(line=368, offs=13) -- 8234(line=372, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_c0har (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_char_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_c0har: tmp116 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp116)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp1.dats: 8150(line=369, offs=7) -- 8180(line=369, offs=37)") ; } tmp117 = ats_caselptrlab_mac(anairiats_sum_4, tmp116, atslab_0) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 4 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp117) ; tmp115 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp115, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp115, atslab_s1exp_node, tmp118) ; return (tmp115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_c0har] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 8303(line=377, offs=13) -- 8361(line=379, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_float (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_float: tmp120 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp120)->tag = 5 ; ats_selptrset_mac(anairiats_sum_2, tmp120, atslab_0, arg1) ; tmp119 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp119, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp119, atslab_s1exp_node, tmp120) ; return (tmp119) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_float] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 8412(line=381, offs=14) -- 8543(line=386, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_f0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_f0loat: tmp122 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp122)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp1.dats: 8433(line=382, offs=7) -- 8486(line=383, offs=41)") ; } tmp123 = ats_caselptrlab_mac(anairiats_sum_6, tmp122, atslab_1) ; tmp124 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp124)->tag = 5 ; ats_selptrset_mac(anairiats_sum_2, tmp124, atslab_0, tmp123) ; tmp121 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp121, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp121, atslab_s1exp_node, tmp124) ; return (tmp121) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 8614(line=391, offs=14) -- 8673(line=393, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_string: tmp126 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp126)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp126, atslab_0, arg1) ; tmp125 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp125, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp125, atslab_s1exp_node, tmp126) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_string] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 8726(line=395, offs=15) -- 8839(line=399, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_s0tring (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_s0tring: tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_token_node) ; if (((ats_sum_ptr_type)tmp128)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp1.dats: 8747(line=396, offs=7) -- 8781(line=396, offs=41)") ; } tmp129 = ats_caselptrlab_mac(anairiats_sum_2, tmp128, atslab_0) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp130)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp130, atslab_0, tmp129) ; tmp127 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp127, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp127, atslab_s1exp_node, tmp130) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 8915(line=405, offs=3) -- 8990(line=407, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extype (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extype: tmp132 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp132)->tag = 7 ; ats_selptrset_mac(anairiats_sum_8, tmp132, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp132, atslab_1, arg2) ; tmp131 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp131, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp131, atslab_s1exp_node, tmp132) ; return (tmp131) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extype] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 9020(line=411, offs=3) -- 9096(line=413, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extkind (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extkind: tmp134 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp134)->tag = 8 ; ats_selptrset_mac(anairiats_sum_8, tmp134, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp134, atslab_1, arg2) ; tmp133 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp133, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp133, atslab_s1exp_node, tmp134) ; return (tmp133) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extkind] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 9141(line=418, offs=11) -- 9238(line=423, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app: tmp136 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp136)->tag = 9 ; ats_selptrset_mac(anairiats_sum_7, tmp136, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp136, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp136, atslab_2, arg3) ; tmp135 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp135, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp135, atslab_s1exp_node, tmp136) ; return (tmp135) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 9282(line=426, offs=11) -- 9368(line=430, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_lam (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_lam: tmp138 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp138)->tag = 10 ; ats_selptrset_mac(anairiats_sum_7, tmp138, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp138, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp138, atslab_2, arg3) ; tmp137 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp137, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp137, atslab_s1exp_node, tmp138) ; return (tmp137) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_lam] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 9390(line=433, offs=11) -- 9494(line=437, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_imp (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_imp: tmp140 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ((ats_sum_ptr_type)tmp140)->tag = 11 ; ats_selptrset_mac(anairiats_sum_23, tmp140, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_23, tmp140, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_23, tmp140, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_23, tmp140, atslab_3, arg4) ; tmp139 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp139, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp139, atslab_s1exp_node, tmp140) ; return (tmp139) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_imp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 9540(line=443, offs=3) -- 9739(line=452, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } tmp142 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; if (tmp142 != (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp141 = tmp143 ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp144 = ATS_MALLOC(sizeof(anairiats_sum_24)) ; ((ats_sum_ptr_type)tmp144)->tag = 13 ; ats_selptrset_mac(anairiats_sum_24, tmp144, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_24, tmp144, atslab_1, arg1) ; tmp141 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp141, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp141, atslab_s1exp_node, tmp144) ; break ; } while (0) ; return (tmp141) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_62 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_int_type, tmp151) ; __ats_lab_loop_62: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp149 = &ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ; tmp150 = ats_ptrget_mac(ats_ptr_type, tmp149) ; tmp151 = atspre_iadd (arg1, 1) ; arg0 = tmp150 ; arg1 = tmp151 ; goto __ats_lab_loop_62 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp148 = arg1 ; break ; } while (0) ; return (tmp148) ; } /* end of [loop_62] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp147) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp147 = loop_62 (arg0, 0) ; return (tmp147) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_64 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab_loop_64: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp156 = &ats_caselptrlab_mac(anairiats_sum_12, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp156 ; arg1 = arg1 ; goto __ats_lab_loop_64 ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp155) */ ; } /* end of [loop_64] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; // ATSlocal_void (tmp157) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp154 ; */ tmp154 = arg0 ; /* tmp157 = */ loop_64 ((&tmp154), arg1) ; tmp153 = tmp154 ; return (tmp153) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 9814(line=457, offs=3) -- 10002(line=463, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp158) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list2: tmp146 = list_vt_length_01501_ats_ptr_type (arg1) ; tmp152 = list_vt_append_01504_ats_ptr_type (arg1, arg2) ; tmp158 = ATS_MALLOC(sizeof(anairiats_sum_24)) ; ((ats_sum_ptr_type)tmp158)->tag = 13 ; ats_selptrset_mac(anairiats_sum_24, tmp158, atslab_0, tmp146) ; ats_selptrset_mac(anairiats_sum_24, tmp158, atslab_1, ats_castfn_mac(ats_ptr_type, tmp152)) ; tmp145 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp145, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp145, atslab_s1exp_node, tmp158) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list2] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 10055(line=467, offs=3) -- 10198(line=475, offs=28) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_npf_list (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_bool_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_npf_list: tmp160 = atspre_gte_int_int (arg1, 0) ; if (tmp160) { tmp161 = ATS_MALLOC(sizeof(anairiats_sum_24)) ; ((ats_sum_ptr_type)tmp161)->tag = 13 ; ats_selptrset_mac(anairiats_sum_24, tmp161, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_24, tmp161, atslab_1, arg2) ; tmp159 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp159, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp159, atslab_s1exp_node, tmp161) ; } else { tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list (arg0, arg2) ; } /* end of [if] */ return (tmp159) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_npf_list] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 10273(line=482, offs=11) -- 10343(line=484, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top: tmp163 = ATS_MALLOC(sizeof(anairiats_sum_24)) ; ((ats_sum_ptr_type)tmp163)->tag = 12 ; ats_selptrset_mac(anairiats_sum_24, tmp163, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_24, tmp163, atslab_1, arg2) ; tmp162 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp162, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp162, atslab_s1exp_node, tmp163) ; return (tmp162) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 10390(line=489, offs=13) -- 10462(line=491, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_invar (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_invar: tmp165 = ATS_MALLOC(sizeof(anairiats_sum_24)) ; ((ats_sum_ptr_type)tmp165)->tag = 14 ; ats_selptrset_mac(anairiats_sum_24, tmp165, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_24, tmp165, atslab_1, arg2) ; tmp164 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp164, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp164, atslab_s1exp_node, tmp165) ; return (tmp164) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_invar] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 10488(line=494, offs=13) -- 10564(line=496, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_trans (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_trans: tmp167 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp167)->tag = 15 ; ats_selptrset_mac(anairiats_sum_8, tmp167, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp167, atslab_1, arg2) ; tmp166 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp166, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp166, atslab_s1exp_node, tmp167) ; return (tmp166) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_trans] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 10611(line=502, offs=1) -- 10706(line=507, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyarr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyarr: tmp169 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp169)->tag = 16 ; ats_selptrset_mac(anairiats_sum_8, tmp169, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp169, atslab_1, arg2) ; tmp168 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp168, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp168, atslab_s1exp_node, tmp169) ; return (tmp168) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyarr] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 10759(line=511, offs=3) -- 10843(line=513, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tytup (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tytup: tmp171 = ATS_MALLOC(sizeof(anairiats_sum_25)) ; ((ats_sum_ptr_type)tmp171)->tag = 17 ; ats_selptrset_mac(anairiats_sum_25, tmp171, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_25, tmp171, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_25, tmp171, atslab_2, arg3) ; tmp170 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp170, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp170, atslab_s1exp_node, tmp171) ; return (tmp170) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tytup] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 10888(line=518, offs=13) -- 10978(line=522, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec: tmp173 = ATS_MALLOC(sizeof(anairiats_sum_25)) ; ((ats_sum_ptr_type)tmp173)->tag = 18 ; ats_selptrset_mac(anairiats_sum_25, tmp173, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_25, tmp173, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_25, tmp173, atslab_2, arg3) ; tmp172 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp172, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp172, atslab_s1exp_node, tmp173) ; return (tmp172) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 11030(line=525, offs=17) -- 11126(line=529, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec_ext (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec_ext: tmp175 = ATS_MALLOC(sizeof(anairiats_sum_26)) ; ((ats_sum_ptr_type)tmp175)->tag = 19 ; ats_selptrset_mac(anairiats_sum_26, tmp175, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_26, tmp175, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_26, tmp175, atslab_2, arg3) ; tmp174 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp174, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp174, atslab_s1exp_node, tmp175) ; return (tmp174) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec_ext] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 11199(line=535, offs=1) -- 11275(line=539, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_uni (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_uni: tmp177 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp177)->tag = 20 ; ats_selptrset_mac(anairiats_sum_8, tmp177, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp177, atslab_1, arg2) ; tmp176 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp176, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp176, atslab_s1exp_node, tmp177) ; return (tmp176) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_uni] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 11324(line=543, offs=1) -- 11410(line=547, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_exi (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_exi: tmp179 = ATS_MALLOC(sizeof(anairiats_sum_27)) ; ((ats_sum_ptr_type)tmp179)->tag = 21 ; ats_selptrset_mac(anairiats_sum_27, tmp179, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_27, tmp179, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_27, tmp179, atslab_2, arg3) ; tmp178 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp178, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp178, atslab_s1exp_node, tmp179) ; return (tmp178) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_exi] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 11480(line=552, offs=11) -- 11550(line=554, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ann (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ann: tmp181 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp181)->tag = 22 ; ats_selptrset_mac(anairiats_sum_8, tmp181, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp181, atslab_1, arg2) ; tmp180 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp180, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp180, atslab_s1exp_node, tmp181) ; return (tmp180) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ann] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 11597(line=559, offs=15) -- 11665(line=561, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_d2ctype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_d2ctype: tmp183 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp183)->tag = 23 ; ats_selptrset_mac(anairiats_sum_2, tmp183, atslab_0, arg1) ; tmp182 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp182, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp182, atslab_s1exp_node, tmp183) ; return (tmp182) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_d2ctype] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 11708(line=566, offs=11) -- 11760(line=568, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_err (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_err: tmp185 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eerr_24) ; tmp184 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp184, atslab_s1exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp184, atslab_s1exp_node, tmp185) ; return (tmp184) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 11809(line=574, offs=3) -- 11850(line=574, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__labs1exp_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp186) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__labs1exp_make: tmp186 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ats_selptrset_mac(anairiats_sum_21, tmp186, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_21, tmp186, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_21, tmp186, atslab_2, arg2) ; return (tmp186) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__labs1exp_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 11921(line=580, offs=13) -- 11986(line=582, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_srt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_srt: tmp188 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp188)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp188, atslab_0, arg1) ; tmp187 = ATS_MALLOC(sizeof(anairiats_rec_28)) ; ats_selptrset_mac(anairiats_rec_28, tmp187, atslab_s1rtext_loc, arg0) ; ats_selptrset_mac(anairiats_rec_28, tmp187, atslab_s1rtext_node, tmp188) ; return (tmp187) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 12010(line=585, offs=13) -- 12099(line=587, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_sub (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_sub: tmp190 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp190)->tag = 1 ; ats_selptrset_mac(anairiats_sum_7, tmp190, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp190, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp190, atslab_2, arg3) ; tmp189 = ATS_MALLOC(sizeof(anairiats_rec_28)) ; ats_selptrset_mac(anairiats_rec_28, tmp189, atslab_s1rtext_loc, arg0) ; ats_selptrset_mac(anairiats_rec_28, tmp189, atslab_s1rtext_node, tmp190) ; return (tmp189) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_sub] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 12143(line=592, offs=12) -- 12204(line=594, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_prop (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_prop: tmp192 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp192, atslab_0, arg1) ; tmp191 = ATS_MALLOC(sizeof(anairiats_rec_29)) ; ats_selptrset_mac(anairiats_rec_29, tmp191, atslab_s1qua_loc, arg0) ; ats_selptrset_mac(anairiats_rec_29, tmp191, atslab_s1qua_node, tmp192) ; return (tmp191) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_prop] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 12227(line=597, offs=12) -- 12300(line=599, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_vars (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_vars: tmp194 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp194)->tag = 1 ; ats_selptrset_mac(anairiats_sum_8, tmp194, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp194, atslab_1, arg2) ; tmp193 = ATS_MALLOC(sizeof(anairiats_rec_29)) ; ats_selptrset_mac(anairiats_rec_29, tmp193, atslab_s1qua_loc, arg0) ; ats_selptrset_mac(anairiats_rec_29, tmp193, atslab_s1qua_node, tmp194) ; return (tmp193) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_vars] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 12351(line=605, offs=3) -- 12563(line=618, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_v1al (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_char_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_v1al: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp196 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_int (arg0, tmp196) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_char (arg0, tmp197) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp198 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_string (arg0, tmp198) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_err (arg0) ; break ; } while (0) ; return (tmp195) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_v1al] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 12664(line=625, offs=5) -- 13637(line=666, offs=4) */ ATSstaticdec() ats_ptr_type aux_85 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_char_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp218) ; __ats_lab_aux_85: tmp201 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp201)->tag != 9) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_7, tmp201, atslab_0) ; tmp203 = ats_caselptrlab_mac(anairiats_sum_7, tmp201, atslab_1) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_7, tmp201, atslab_2) ; tmp205 = aux_85 (env0, tmp202) ; tmp206 = auxlst_86 (env0, tmp204) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app (env0, tmp205, tmp203, tmp206) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp201)->tag != 0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_2, tmp201, atslab_0) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ide (env0, tmp207) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp201)->tag != 1) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_3, tmp201, atslab_0) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_int (env0, tmp208) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp201)->tag != 2) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp209 = ats_caselptrlab_mac(anairiats_sum_2, tmp201, atslab_0) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_intrep (env0, tmp209) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp201)->tag != 3) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_4, tmp201, atslab_0) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_char (env0, tmp210) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp201)->tag != 4) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp211 = ats_caselptrlab_mac(anairiats_sum_2, tmp201, atslab_0) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_float (env0, tmp211) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp201)->tag != 5) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_2, tmp201, atslab_0) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_string (env0, tmp212) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp201)->tag != 6) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_2, tmp201, atslab_0) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_v1al (env0, tmp213) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp201)->tag != 13) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_2, tmp201, atslab_0) ; tmp215 = auxlst_86 (env0, tmp214) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list (env0, tmp215) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: /* tmp216 = */ prerr_error1_loc_0 (env0) ; /* tmp217 = */ atspre_prerr_string (ATSstrcst(": the expression cannot be translated into a legal static expression.")) ; /* tmp218 = */ atspre_prerr_newline () ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_err (env0) ; break ; } while (0) ; return (tmp200) ; } /* end of [aux_85] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_85_closure_type ; ats_ptr_type aux_85_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_85 (((aux_85_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_85_closure_init (aux_85_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_85_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_85_closure_make (ats_ptr_type env0) { aux_85_closure_type *p_clo = ATS_MALLOC(sizeof(aux_85_closure_type)) ; aux_85_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 13664(line=668, offs=5) -- 13809(line=672, offs=31) */ ATSstaticdec() ats_ptr_type auxlst_86 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; __ats_lab_auxlst_86: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp220 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp221 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ; tmp222 = aux_85 (env0, tmp220) ; tmp223 = auxlst_86 (env0, tmp221) ; tmp219 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp219, atslab_0, tmp222) ; ats_selptrset_mac(anairiats_sum_12, tmp219, atslab_1, tmp223) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp219 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp219) ; } /* end of [auxlst_86] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_86_closure_type ; ats_ptr_type auxlst_86_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return auxlst_86 (((auxlst_86_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type auxlst_86_closure_init (auxlst_86_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_86_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_86_closure_make (ats_ptr_type env0) { auxlst_86_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_86_closure_type)) ; auxlst_86_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 12640(line=623, offs=17) -- 13852(line=677, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp199) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp: tmp199 = aux_85 (arg0, arg1) ; return (tmp199) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 13957(line=685, offs=5) -- 14452(line=699, offs=25) */ ATSstaticdec() ats_ptr_type aux_88 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_int_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_char_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; __ats_lab_aux_88: tmp226 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_s1exp_node) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp226)->tag != 0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_2, tmp226, atslab_0) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide (env0, tmp227) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp226)->tag != 2) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp228 = ats_caselptrlab_mac(anairiats_sum_3, tmp226, atslab_0) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_int (env0, tmp228) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp226)->tag != 3) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp229 = ats_caselptrlab_mac(anairiats_sum_2, tmp226, atslab_0) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep (env0, tmp229) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp226)->tag != 4) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_4, tmp226, atslab_0) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char (env0, tmp230) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp226)->tag != 9) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp231 = ats_caselptrlab_mac(anairiats_sum_7, tmp226, atslab_0) ; tmp232 = ats_caselptrlab_mac(anairiats_sum_7, tmp226, atslab_2) ; tmp233 = aux_88 (env0, tmp231) ; tmp234 = auxlst_89 (env0, tmp232) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (env0, tmp233, env0, tmp234) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp226)->tag != 13) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_24, tmp226, atslab_1) ; tmp236 = auxlst_89 (env0, tmp235) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list (env0, tmp236) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err (env0) ; break ; } while (0) ; return (tmp225) ; } /* end of [aux_88] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_88_closure_type ; ats_ptr_type aux_88_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_88 (((aux_88_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_88_closure_init (aux_88_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_88_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_88_closure_make (ats_ptr_type env0) { aux_88_closure_type *p_clo = ATS_MALLOC(sizeof(aux_88_closure_type)) ; aux_88_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 14479(line=702, offs=5) -- 14636(line=706, offs=31) */ ATSstaticdec() ats_ptr_type auxlst_89 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; __ats_lab_auxlst_89: 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: tmp238 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp239 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ; tmp240 = aux_88 (env0, tmp238) ; tmp241 = auxlst_89 (env0, tmp239) ; tmp237 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp237, atslab_0, tmp240) ; ats_selptrset_mac(anairiats_sum_12, tmp237, atslab_1, tmp241) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp237 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp237) ; } /* end of [auxlst_89] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_89_closure_type ; ats_ptr_type auxlst_89_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return auxlst_89 (((auxlst_89_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type auxlst_89_closure_init (auxlst_89_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_89_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_89_closure_make (ats_ptr_type env0) { auxlst_89_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_89_closure_type)) ; auxlst_89_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 13931(line=683, offs=3) -- 14681(line=711, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make_s1exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make_s1exp: tmp224 = aux_88 (arg0, arg1) ; return (tmp224) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make_s1exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 14764(line=717, offs=3) -- 14926(line=720, offs=30) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp242 = ats_false_bool ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp243 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; arg0 = tmp243 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp242 = ats_true_bool ; break ; } while (0) ; return (tmp242) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 15012(line=725, offs=7) -- 15353(line=733, offs=31) */ ATSstaticdec() ats_ptr_type loop_92 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_int_type, tmp246) ; ATSlocal (ats_int_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; __ats_lab_loop_92: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp246 = ats_caselptrlab_mac(anairiats_sum_30, arg0, atslab_0) ; tmp247 = ats_caselptrlab_mac(anairiats_sum_30, arg0, atslab_1) ; tmp248 = ats_caselptrlab_mac(anairiats_sum_30, arg0, atslab_2) ; tmp249 = ats_caselptrlab_mac(anairiats_sum_30, arg0, atslab_3) ; tmp250 = ATS_MALLOC(sizeof(anairiats_sum_30)) ; ((ats_sum_ptr_type)tmp250)->tag = 1 ; ats_selptrset_mac(anairiats_sum_30, tmp250, atslab_0, tmp246) ; ats_selptrset_mac(anairiats_sum_30, tmp250, atslab_1, tmp247) ; ats_selptrset_mac(anairiats_sum_30, tmp250, atslab_2, tmp248) ; ats_selptrset_mac(anairiats_sum_30, tmp250, atslab_3, arg1) ; arg0 = tmp249 ; arg1 = tmp250 ; goto __ats_lab_loop_92 ; // tail call break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp251 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp252 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp252)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp252, atslab_0, arg1) ; arg0 = tmp251 ; arg1 = tmp252 ; goto __ats_lab_loop_92 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp245 = arg1 ; break ; } while (0) ; return (tmp245) ; } /* end of [loop_92] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 14990(line=724, offs=21) -- 15442(line=737, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_reverse (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp253) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_reverse: tmp253 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ; tmp244 = loop_92 (arg0, tmp253) ; return (tmp244) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_reverse] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 15521(line=743, offs=3) -- 15573(line=745, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__q1marg_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp254) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__q1marg_make: tmp254 = ATS_MALLOC(sizeof(anairiats_rec_31)) ; ats_selptrset_mac(anairiats_rec_31, tmp254, atslab_q1marg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_31, tmp254, atslab_q1marg_arg, arg1) ; return (tmp254) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__q1marg_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 15646(line=750, offs=17) -- 15672(line=750, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_sarglst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_sarglst: tmp255 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp255)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp255, atslab_0, arg0) ; return (tmp255) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_sarglst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 15703(line=752, offs=20) -- 15732(line=752, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_svararglst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp256) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_svararglst: tmp256 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp256)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp256, atslab_0, arg0) ; return (tmp256) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_svararglst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 15782(line=758, offs=3) -- 15838(line=760, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1mpmarg_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1mpmarg_make: tmp257 = ATS_MALLOC(sizeof(anairiats_rec_32)) ; ats_selptrset_mac(anairiats_rec_32, tmp257, atslab_t1mpmarg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_32, tmp257, atslab_t1mpmarg_arg, arg1) ; return (tmp257) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1mpmarg_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 15910(line=765, offs=14) -- 15973(line=767, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_one (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_one: tmp259 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGone_0) ; tmp258 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp258, atslab_s1exparg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_33, tmp258, atslab_s1exparg_node, tmp259) ; return (tmp258) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_one] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 15997(line=769, offs=14) -- 16060(line=771, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_all (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_all: tmp261 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGall_1) ; tmp260 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp260, atslab_s1exparg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_33, tmp260, atslab_s1exparg_node, tmp261) ; return (tmp260) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_all] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 16084(line=773, offs=14) -- 16153(line=775, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_seq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_seq: tmp263 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp263)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp263, atslab_0, arg1) ; tmp262 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp262, atslab_s1exparg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_33, tmp262, atslab_s1exparg_node, tmp263) ; return (tmp262) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_seq] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 16203(line=780, offs=18) -- 16273(line=782, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_dyn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_dyn: tmp265 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp265)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp265, atslab_0, arg1) ; tmp264 = ATS_MALLOC(sizeof(anairiats_rec_34)) ; ats_selptrset_mac(anairiats_rec_34, tmp264, atslab_m1acarg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_34, tmp264, atslab_m1acarg_node, tmp265) ; return (tmp264) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_dyn] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 16331(line=785, offs=18) -- 16401(line=787, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_sta (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_sta: tmp267 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp267)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp267, atslab_0, arg1) ; tmp266 = ATS_MALLOC(sizeof(anairiats_rec_34)) ; ats_selptrset_mac(anairiats_rec_34, tmp266, atslab_m1acarg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_34, tmp266, atslab_m1acarg_node, tmp267) ; return (tmp266) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_sta] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 16476(line=792, offs=14) -- 16561(line=798, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtdef_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtdef_make: tmp268 = ATS_MALLOC(sizeof(anairiats_rec_35)) ; ats_selptrset_mac(anairiats_rec_35, tmp268, atslab_s1rtdef_loc, arg0) ; ats_selptrset_mac(anairiats_rec_35, tmp268, atslab_s1rtdef_sym, arg1) ; ats_selptrset_mac(anairiats_rec_35, tmp268, atslab_s1rtdef_def, arg2) ; return (tmp268) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtdef_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 16632(line=804, offs=1) -- 16797(line=814, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacst_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacst_make: tmp269 = ATS_MALLOC(sizeof(anairiats_rec_36)) ; ats_selptrset_mac(anairiats_rec_36, tmp269, atslab_s1tacst_loc, arg0) ; ats_selptrset_mac(anairiats_rec_36, tmp269, atslab_s1tacst_sym, arg2) ; ats_selptrset_mac(anairiats_rec_36, tmp269, atslab_s1tacst_fil, arg1) ; ats_selptrset_mac(anairiats_rec_36, tmp269, atslab_s1tacst_arg, arg3) ; ats_selptrset_mac(anairiats_rec_36, tmp269, atslab_s1tacst_res, arg4) ; ats_selptrset_mac(anairiats_rec_36, tmp269, atslab_s1tacst_extdef, arg5) ; return (tmp269) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacst_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 16847(line=818, offs=1) -- 16978(line=826, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacon_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp270) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacon_make: tmp270 = ATS_MALLOC(sizeof(anairiats_rec_37)) ; ats_selptrset_mac(anairiats_rec_37, tmp270, atslab_s1tacon_loc, arg0) ; ats_selptrset_mac(anairiats_rec_37, tmp270, atslab_s1tacon_sym, arg2) ; ats_selptrset_mac(anairiats_rec_37, tmp270, atslab_s1tacon_fil, arg1) ; ats_selptrset_mac(anairiats_rec_37, tmp270, atslab_s1tacon_arg, arg3) ; ats_selptrset_mac(anairiats_rec_37, tmp270, atslab_s1tacon_def, arg4) ; return (tmp270) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacon_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 17242(line=847, offs=15) -- 17360(line=854, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1kindef_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp271) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1kindef_make: tmp271 = ATS_MALLOC(sizeof(anairiats_rec_38)) ; ats_selptrset_mac(anairiats_rec_38, tmp271, atslab_t1kindef_loc, arg0) ; ats_selptrset_mac(anairiats_rec_38, tmp271, atslab_t1kindef_sym, arg1) ; ats_selptrset_mac(anairiats_rec_38, tmp271, atslab_t1kindef_loc_id, arg2) ; ats_selptrset_mac(anairiats_rec_38, tmp271, atslab_t1kindef_def, arg3) ; return (tmp271) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1kindef_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 17433(line=859, offs=15) -- 17601(line=868, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1expdef_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp272) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1expdef_make: tmp272 = ATS_MALLOC(sizeof(anairiats_rec_39)) ; ats_selptrset_mac(anairiats_rec_39, tmp272, atslab_s1expdef_loc, arg0) ; ats_selptrset_mac(anairiats_rec_39, tmp272, atslab_s1expdef_sym, arg1) ; ats_selptrset_mac(anairiats_rec_39, tmp272, atslab_s1expdef_loc_id, arg2) ; ats_selptrset_mac(anairiats_rec_39, tmp272, atslab_s1expdef_arg, arg3) ; ats_selptrset_mac(anairiats_rec_39, tmp272, atslab_s1expdef_res, arg4) ; ats_selptrset_mac(anairiats_rec_39, tmp272, atslab_s1expdef_def, arg5) ; return (tmp272) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1expdef_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 17653(line=871, offs=15) -- 17789(line=879, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1aspdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp273) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1aspdec_make: tmp273 = ATS_MALLOC(sizeof(anairiats_rec_40)) ; ats_selptrset_mac(anairiats_rec_40, tmp273, atslab_s1aspdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_40, tmp273, atslab_s1aspdec_qid, arg1) ; ats_selptrset_mac(anairiats_rec_40, tmp273, atslab_s1aspdec_arg, arg2) ; ats_selptrset_mac(anairiats_rec_40, tmp273, atslab_s1aspdec_res, arg3) ; ats_selptrset_mac(anairiats_rec_40, tmp273, atslab_s1aspdec_def, arg4) ; return (tmp273) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1aspdec_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 17861(line=884, offs=14) -- 18014(line=893, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atcon_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp274) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atcon_make: tmp274 = ATS_MALLOC(sizeof(anairiats_rec_41)) ; ats_selptrset_mac(anairiats_rec_41, tmp274, atslab_d1atcon_loc, arg0) ; ats_selptrset_mac(anairiats_rec_41, tmp274, atslab_d1atcon_sym, arg1) ; ats_selptrset_mac(anairiats_rec_41, tmp274, atslab_d1atcon_qua, arg2) ; ats_selptrset_mac(anairiats_rec_41, tmp274, atslab_d1atcon_npf, arg3) ; ats_selptrset_mac(anairiats_rec_41, tmp274, atslab_d1atcon_arg, arg4) ; ats_selptrset_mac(anairiats_rec_41, tmp274, atslab_d1atcon_ind, arg5) ; return (tmp274) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atcon_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 18064(line=897, offs=1) -- 18196(line=906, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp275) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atdec_make: tmp275 = ATS_MALLOC(sizeof(anairiats_rec_42)) ; ats_selptrset_mac(anairiats_rec_42, tmp275, atslab_d1atdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_42, tmp275, atslab_d1atdec_fil, arg1) ; ats_selptrset_mac(anairiats_rec_42, tmp275, atslab_d1atdec_sym, arg2) ; ats_selptrset_mac(anairiats_rec_42, tmp275, atslab_d1atdec_arg, arg3) ; ats_selptrset_mac(anairiats_rec_42, tmp275, atslab_d1atdec_con, arg4) ; return (tmp275) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atdec_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 18249(line=910, offs=1) -- 18405(line=920, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xndec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp276) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xndec_make: tmp276 = ATS_MALLOC(sizeof(anairiats_rec_43)) ; ats_selptrset_mac(anairiats_rec_43, tmp276, atslab_e1xndec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_43, tmp276, atslab_e1xndec_fil, arg1) ; ats_selptrset_mac(anairiats_rec_43, tmp276, atslab_e1xndec_sym, arg2) ; ats_selptrset_mac(anairiats_rec_43, tmp276, atslab_e1xndec_qua, arg3) ; ats_selptrset_mac(anairiats_rec_43, tmp276, atslab_e1xndec_npf, arg4) ; ats_selptrset_mac(anairiats_rec_43, tmp276, atslab_e1xndec_arg, arg5) ; return (tmp276) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xndec_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp1.dats: 18480(line=926, offs=1) -- 18627(line=935, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1cstdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp277) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1cstdec_make: tmp277 = ATS_MALLOC(sizeof(anairiats_rec_44)) ; ats_selptrset_mac(anairiats_rec_44, tmp277, atslab_d1cstdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_44, tmp277, atslab_d1cstdec_fil, arg1) ; ats_selptrset_mac(anairiats_rec_44, tmp277, atslab_d1cstdec_sym, arg2) ; ats_selptrset_mac(anairiats_rec_44, tmp277, atslab_d1cstdec_type, arg3) ; ats_selptrset_mac(anairiats_rec_44, tmp277, atslab_d1cstdec_extdef, arg4) ; return (tmp277) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1cstdec_make] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp47, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp48, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp49, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp50, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp51, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp52, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp53, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp54, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp55, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp56, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp57, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp58, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp47 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp47)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, statmp47, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__v1al_true, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__v1al_true = statmp47 ; statmp48 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp48)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, statmp48, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__v1al_false, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__v1al_false = statmp48 ; statmp49 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_nil, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_nil = statmp49 ; statmp50 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_all, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_all = statmp50 ; statmp52 = (ats_sum_ptr_type)0 ; statmp51 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)statmp51)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, statmp51, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ntm) ; ats_selptrset_mac(anairiats_sum_9, statmp51, atslab_1, statmp52) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ntm, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ntm = statmp51 ; statmp54 = (ats_sum_ptr_type)0 ; statmp53 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)statmp53)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, statmp53, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_exn) ; ats_selptrset_mac(anairiats_sum_9, statmp53, atslab_1, statmp54) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_exn, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_exn = statmp53 ; statmp56 = (ats_sum_ptr_type)0 ; statmp55 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)statmp55)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, statmp55, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ref) ; ats_selptrset_mac(anairiats_sum_9, statmp55, atslab_1, statmp56) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ref, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_ref = statmp55 ; statmp58 = (ats_sum_ptr_type)0 ; statmp57 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)statmp57)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, statmp57, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_wrt) ; ats_selptrset_mac(anairiats_sum_9, statmp57, atslab_1, statmp58) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_wrt, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_wrt = statmp57 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp1_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_namespace_sats.c0000644000175000017500000000277713431250607022515 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_namespace_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dmacro2_eval0_dats.c0000644000175000017500000037524313431250607023161 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d2sym_loc ; ats_ptr_type atslab_d2sym_qua ; ats_ptr_type atslab_d2sym_sym ; ats_ptr_type atslab_d2sym_pitmlst ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_d0ynq_loc ; ats_ptr_type atslab_d0ynq_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_11 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_13 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_16 ; typedef struct { ats_ptr_type atslab_s2exparg_loc ; ats_ptr_type atslab_s2exparg_node ; } anairiats_rec_17 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_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_syntax_2esats__MSKencode_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacsyn_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacfun_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vbool_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vchar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vfloat_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vstring_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vunit_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vscode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vdcode_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vlist_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_cmp_92) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_d2exp_93) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_app_mac_arity_94) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_evalctx_extend_95) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_int_type, atspre_compare_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilte) (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_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_int_of_llint) (ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MUL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTEQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTEQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTGT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANGEQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_llint_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_def) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_sadd) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_bool_type d2sym_is_nonqua_1 (ats_ptr_type arg0) ; static ats_ptr_type eval0_app_add_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type eval0_app_sub_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type eval0_app_mul_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type prerr_errmac_loc_02050_ (ats_ptr_type arg0) ; static ats_int_type auxerr_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type eval0_app_cmp_int_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type eval0_app_lt_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type eval0_app_lte_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type eval0_app_gt_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type eval0_app_gte_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type eval0_app_eq_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type eval0_app_neq_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type d2exparg_get_d2explst_14 (ats_ptr_type arg0) ; static ats_ptr_type eval0_d2exparg_1_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type eval0_d2exparglst_1_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static anairiats_rec_7 eval0_d2exparg_2_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static anairiats_rec_7 eval0_d2exparglst_2_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxerr_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type eval0_app_eval_20 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type eval0_app_lift_22 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type eval0_car_23 (ats_ptr_type arg0) ; static ats_ptr_type eval0_cdr_24 (ats_ptr_type arg0) ; static ats_ptr_type eval0_islist_25 (ats_ptr_type arg0) ; static ats_ptr_type eval0_isnil_26 (ats_ptr_type arg0) ; static ats_ptr_type eval0_iscons_27 (ats_ptr_type arg0) ; static ats_ptr_type auxerr_29 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type eval0_d2var_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type auxerr_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_ptr_type auxexp_37 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ; static ats_ptr_type auxexplst_38 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ; static ats_void_type prerr_warning2_loc_02055_ (ats_ptr_type arg0) ; static ats_void_type auxwarn_40 (ats_ptr_type arg0) ; static ats_void_type loop_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s2exparglst_join_39 (ats_ptr_type arg0) ; static ats_void_type auxerr_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_int_type loop_49 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_52 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static anairiats_rec_7 list_split_at_01440_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 1620(line=51, offs=17) -- 1651(line=51, offs=48) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_dmacro2_eval0")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 2747(line=106, offs=1) -- 2888(line=110, offs=4) */ ATSstaticdec() ats_bool_type d2sym_is_nonqua_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_d2sym_is_nonqua_1: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2sym_qua) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp2), atslab_d0ynq_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp3 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp1 = ats_false_bool ; break ; } while (0) ; return (tmp1) ; } /* end of [d2sym_is_nonqua_1] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 3349(line=137, offs=1) -- 3634(line=155, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_add_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_int_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; __ats_lab_eval0_app_add_2: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_2_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp7 = atspre_add_int_int (tmp5, tmp6) ; tmp4 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp4)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp4, atslab_0, tmp7) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp4 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp4 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp4) ; } /* end of [eval0_app_add_2] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 3666(line=158, offs=1) -- 3950(line=176, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_sub_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; __ats_lab_eval0_app_sub_3: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_9_0 ; } __ats_lab_6_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp11 = atspre_sub_int_int (tmp9, tmp10) ; tmp8 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp8)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp8, atslab_0, tmp11) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp8 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp8 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp8) ; } /* end of [eval0_app_sub_3] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 3982(line=179, offs=1) -- 4266(line=197, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_mul_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; __ats_lab_eval0_app_mul_4: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_13_0 ; } __ats_lab_10_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp15 = atspre_mul_int_int (tmp13, tmp14) ; tmp12 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp12)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp12, atslab_0, tmp15) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp12 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp12 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp12) ; } /* end of [eval0_app_mul_4] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2222(line=82, offs=17) -- 2282(line=85, offs=2) */ ATSstaticdec() ats_void_type prerr_errmac_loc_02050_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; __ats_lab_prerr_errmac_loc_02050_: /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp19 = */ atspre_prerr_string (ATSstrcst(": error(mac)")) ; return /* (tmp19) */ ; } /* end of [prerr_errmac_loc_02050_] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 4399(line=208, offs=1) -- 4688(line=224, offs=4) */ ATSstaticdec() ats_int_type auxerr_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab_auxerr_6: /* tmp18 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp21 = */ atspre_prerr_string (ATSstrcst(": values are compared that do not support comparison.")) ; /* tmp22 = */ atspre_prerr_newline () ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp24)->tag = 92 ; ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_2, arg2) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp24) ; tmp17 = 0 ; return (tmp17) ; } /* end of [auxerr_6] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 4318(line=202, offs=1) -- 4963(line=240, offs=4) */ ATSstaticdec() ats_int_type eval0_app_cmp_int_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp16) ; ATSlocal (ats_int_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; __ats_lab_eval0_app_cmp_int_5: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_17_0 ; } __ats_lab_14_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp16 = atspre_compare_int_int (tmp25, tmp26) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp16 = auxerr_6 (arg0, arg1, arg2) ; break ; } while (0) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp16 = auxerr_6 (arg0, arg1, arg2) ; break ; } while (0) ; return (tmp16) ; } /* end of [eval0_app_cmp_int_5] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5020(line=245, offs=1) -- 5195(line=254, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_lt_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; ATSlocal (ats_bool_type, tmp29) ; __ats_lab_eval0_app_lt_8: tmp28 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ; tmp29 = atspre_ilt (tmp28, 0) ; if (tmp29) { tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ; } else { tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ; } /* end of [if] */ return (tmp27) ; } /* end of [eval0_app_lt_8] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5230(line=257, offs=1) -- 5407(line=266, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_lte_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_int_type, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; __ats_lab_eval0_app_lte_9: tmp31 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ; tmp32 = atspre_ilte (tmp31, 0) ; if (tmp32) { tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ; } else { tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ; } /* end of [if] */ return (tmp30) ; } /* end of [eval0_app_lte_9] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5464(line=271, offs=1) -- 5639(line=280, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_gt_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_int_type, tmp34) ; ATSlocal (ats_bool_type, tmp35) ; __ats_lab_eval0_app_gt_10: tmp34 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ; tmp35 = atspre_igt (tmp34, 0) ; if (tmp35) { tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ; } else { tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ; } /* end of [if] */ return (tmp33) ; } /* end of [eval0_app_gt_10] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5674(line=283, offs=1) -- 5851(line=292, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_gte_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_int_type, tmp37) ; ATSlocal (ats_bool_type, tmp38) ; __ats_lab_eval0_app_gte_11: tmp37 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ; tmp38 = atspre_igte (tmp37, 0) ; if (tmp38) { tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ; } else { tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ; } /* end of [if] */ return (tmp36) ; } /* end of [eval0_app_gte_11] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5908(line=297, offs=1) -- 6083(line=307, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_eq_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_int_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; __ats_lab_eval0_app_eq_12: tmp40 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ; tmp41 = atspre_ieq (tmp40, 0) ; if (tmp41) { tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ; } else { tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ; } /* end of [if] */ return (tmp39) ; } /* end of [eval0_app_eq_12] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 6118(line=310, offs=1) -- 6294(line=319, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_neq_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; __ats_lab_eval0_app_neq_13: tmp43 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ; tmp44 = atspre_ineq (tmp43, 0) ; if (tmp44) { tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ; } else { tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ; } /* end of [if] */ return (tmp42) ; } /* end of [eval0_app_neq_13] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 6351(line=324, offs=1) -- 6585(line=337, offs=4) */ ATSstaticdec() ats_ptr_type d2exparg_get_d2explst_14 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab_d2exparg_get_d2explst_14: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ; tmp45 = tmp46 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp45 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp45) ; } /* end of [d2exparg_get_d2explst_14] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 6646(line=342, offs=1) -- 6943(line=364, offs=4) */ ATSstaticdec() ats_ptr_type eval0_d2exparg_1_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_eval0_d2exparg_1_15: tmp48 = d2exparg_get_d2explst_14 (arg3) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp48 != (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp47 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp48 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_6, tmp48, atslab_0) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp49) ; break ; } while (0) ; return (tmp47) ; } /* end of [eval0_d2exparg_1_15] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 6978(line=367, offs=1) -- 7242(line=384, offs=2) */ ATSstaticdec() ats_ptr_type eval0_d2exparglst_1_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab_eval0_d2exparglst_1_16: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp50 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp50 = eval0_d2exparg_1_15 (arg0, arg1, arg2, tmp51) ; break ; } while (0) ; return (tmp50) ; } /* end of [eval0_d2exparglst_1_16] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 7356(line=393, offs=1) -- 7898(line=420, offs=4) */ ATSstaticdec() anairiats_rec_7 eval0_d2exparg_2_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_7, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab_eval0_d2exparg_2_17: tmp53 = d2exparg_get_d2explst_14 (arg3) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (tmp53 != (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp54 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; tmp55 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; tmp52.atslab_0 = tmp54 ; tmp52.atslab_1 = tmp55 ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (tmp53 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp56 = ats_caselptrlab_mac(anairiats_sum_6, tmp53, atslab_0) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_6, tmp53, atslab_1) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp56) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (tmp57 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp59 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; tmp52.atslab_0 = tmp58 ; tmp52.atslab_1 = tmp59 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (tmp57 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_6, tmp57, atslab_0) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp60) ; tmp52.atslab_0 = tmp58 ; tmp52.atslab_1 = tmp61 ; break ; } while (0) ; break ; } while (0) ; return (tmp52) ; } /* end of [eval0_d2exparg_2_17] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 7933(line=423, offs=1) -- 8187(line=437, offs=4) */ ATSstaticdec() anairiats_rec_7 eval0_d2exparglst_2_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_7, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab_eval0_d2exparglst_2_18: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp63 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; tmp64 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; tmp62.atslab_0 = tmp63 ; tmp62.atslab_1 = tmp64 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp62 = eval0_d2exparg_2_17 (arg0, arg1, arg2, tmp65) ; break ; } while (0) ; return (tmp62) ; } /* end of [eval0_d2exparglst_2_18] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 8290(line=445, offs=1) -- 10230(line=545, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (anairiats_rec_7, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_bool_type, tmp71) ; ATSlocal (anairiats_rec_7, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (anairiats_rec_7, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_bool_type, tmp79) ; ATSlocal (anairiats_rec_7, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_bool_type, tmp83) ; ATSlocal (anairiats_rec_7, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_bool_type, tmp87) ; ATSlocal (anairiats_rec_7, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_bool_type, tmp91) ; ATSlocal (anairiats_rec_7, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_bool_type, tmp95) ; ATSlocal (anairiats_rec_7, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_bool_type, tmp99) ; ATSlocal (anairiats_rec_7, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_bool_type, tmp103) ; ATSlocal (anairiats_rec_7, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD) ; if (!tmp67) { goto __ats_lab_31_1 ; } tmp68 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp69 = ats_select_mac(tmp68, atslab_0) ; tmp70 = ats_select_mac(tmp68, atslab_1) ; tmp66 = eval0_app_add_2 (arg0, tmp69, tmp70) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB) ; if (!tmp71) { goto __ats_lab_32_1 ; } tmp72 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp73 = ats_select_mac(tmp72, atslab_0) ; tmp74 = ats_select_mac(tmp72, atslab_1) ; tmp66 = eval0_app_sub_3 (arg0, tmp73, tmp74) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MUL) ; if (!tmp75) { goto __ats_lab_33_1 ; } tmp76 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp77 = ats_select_mac(tmp76, atslab_0) ; tmp78 = ats_select_mac(tmp76, atslab_1) ; tmp66 = eval0_app_mul_4 (arg0, tmp77, tmp78) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ; if (!tmp79) { goto __ats_lab_34_1 ; } tmp80 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp81 = ats_select_mac(tmp80, atslab_0) ; tmp82 = ats_select_mac(tmp80, atslab_1) ; tmp66 = eval0_app_lt_8 (arg0, tmp81, tmp82) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTEQ) ; if (!tmp83) { goto __ats_lab_35_1 ; } tmp84 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp85 = ats_select_mac(tmp84, atslab_0) ; tmp86 = ats_select_mac(tmp84, atslab_1) ; tmp66 = eval0_app_lte_9 (arg0, tmp85, tmp86) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ; if (!tmp87) { goto __ats_lab_36_1 ; } tmp88 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp89 = ats_select_mac(tmp88, atslab_0) ; tmp90 = ats_select_mac(tmp88, atslab_1) ; tmp66 = eval0_app_gt_10 (arg0, tmp89, tmp90) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTEQ) ; if (!tmp91) { goto __ats_lab_37_1 ; } tmp92 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp93 = ats_select_mac(tmp92, atslab_0) ; tmp94 = ats_select_mac(tmp92, atslab_1) ; tmp66 = eval0_app_gte_11 (arg0, tmp93, tmp94) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ) ; if (!tmp95) { goto __ats_lab_38_1 ; } tmp96 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp97 = ats_select_mac(tmp96, atslab_0) ; tmp98 = ats_select_mac(tmp96, atslab_1) ; tmp66 = eval0_app_eq_12 (arg0, tmp97, tmp98) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTGT) ; if (!tmp99) { goto __ats_lab_39_1 ; } tmp100 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp101 = ats_select_mac(tmp100, atslab_0) ; tmp102 = ats_select_mac(tmp100, atslab_1) ; tmp66 = eval0_app_neq_13 (arg0, tmp101, tmp102) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANGEQ) ; if (!tmp103) { goto __ats_lab_40_1 ; } tmp104 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ; tmp105 = ats_select_mac(tmp104, atslab_0) ; tmp106 = ats_select_mac(tmp104, atslab_1) ; tmp66 = eval0_app_neq_13 (arg0, tmp105, tmp106) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: tmp66 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp66) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 10372(line=558, offs=1) -- 10582(line=569, offs=2) */ ATSstaticdec() ats_ptr_type auxerr_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; __ats_lab_auxerr_21: /* tmp109 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp110 = */ atspre_prerr_string (ATSstrcst(": evaluation is performed on a value not representing code.")) ; /* tmp111 = */ atspre_prerr_newline () ; tmp108 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; return (tmp108) ; } /* end of [auxerr_21] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 10306(line=552, offs=1) -- 10906(line=585, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_eval_20 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; __ats_lab_eval0_app_eval_20: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; /* ats_ptr_type tmp113 ; */ tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () ; /* ats_ptr_type tmp114 ; */ tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil () ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, tmp113, (&tmp114), tmp112) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free (tmp114) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (tmp113) ; tmp107 = tmp115 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp107 = auxerr_21 (arg0, arg1) ; break ; } while (0) ; return (tmp107) ; } /* end of [eval0_app_eval_20] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 10960(line=590, offs=1) -- 11075(line=595, offs=4) */ ATSstaticdec() ats_ptr_type eval0_app_lift_22 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab_eval0_app_lift_22: tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp (arg0, arg1) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp118)->tag = 7 ; ats_selptrset_mac(anairiats_sum_8, tmp118, atslab_0, tmp119) ; return (tmp118) ; } /* end of [eval0_app_lift_22] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 11129(line=599, offs=5) -- 11414(line=612, offs=35) */ ATSstaticdec() ats_ptr_type eval0_car_23 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_eval0_car_23: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_43_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp121)->tag != 8) { goto __ats_lab_47_0 ; } __ats_lab_44_1: tmp122 = ats_caselptrlab_mac(anairiats_sum_8, tmp121, atslab_0) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (tmp122 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_6, tmp122, atslab_0) ; tmp120 = tmp123 ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp120 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: __ats_lab_47_1: tmp120 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp120 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp120) ; } /* end of [eval0_car_23] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 11458(line=615, offs=5) -- 11785(line=630, offs=35) */ ATSstaticdec() ats_ptr_type eval0_cdr_24 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab_eval0_cdr_24: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_49_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp125)->tag != 8) { goto __ats_lab_53_0 ; } __ats_lab_50_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_8, tmp125, atslab_0) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (tmp126 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_6, tmp126, atslab_1) ; tmp124 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp124)->tag = 8 ; ats_selptrset_mac(anairiats_sum_8, tmp124, atslab_0, tmp127) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: __ats_lab_53_1: tmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp124) ; } /* end of [eval0_cdr_24] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 11850(line=636, offs=1) -- 12089(line=647, offs=2) */ ATSstaticdec() ats_ptr_type eval0_islist_25 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; __ats_lab_eval0_islist_25: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_55_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp129)->tag != 8) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp128 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp128)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp128, atslab_0, ats_true_bool) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: tmp128 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp128)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp128, atslab_0, ats_false_bool) ; break ; } while (0) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp128 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp128) ; } /* end of [eval0_islist_25] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 12143(line=652, offs=1) -- 12457(line=667, offs=2) */ ATSstaticdec() ats_ptr_type eval0_isnil_26 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab_eval0_isnil_26: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_59_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp131)->tag != 8) { goto __ats_lab_63_0 ; } __ats_lab_60_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_8, tmp131, atslab_0) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (tmp132 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp130 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp130)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp130, atslab_0, ats_false_bool) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: tmp130 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp130)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp130, atslab_0, ats_true_bool) ; break ; } while (0) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp130 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp130 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp130) ; } /* end of [eval0_isnil_26] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 12489(line=670, offs=1) -- 12802(line=685, offs=2) */ ATSstaticdec() ats_ptr_type eval0_iscons_27 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_eval0_iscons_27: do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_65_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp134)->tag != 8) { goto __ats_lab_69_0 ; } __ats_lab_66_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_8, tmp134, atslab_0) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (tmp135 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp133 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp133)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp133, atslab_0, ats_true_bool) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: tmp133 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp133)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp133, atslab_0, ats_false_bool) ; break ; } while (0) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: __ats_lab_69_1: tmp133 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp133 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp133) ; } /* end of [eval0_iscons_27] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 12934(line=697, offs=1) -- 13183(line=711, offs=4) */ ATSstaticdec() ats_ptr_type auxerr_29 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; __ats_lab_auxerr_29: /* tmp138 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp139 = */ atspre_prerr_string (ATSstrcst(": the variable [")) ; /* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp141 = */ atspre_prerr_string (ATSstrcst("] is unbound.")) ; /* tmp142 = */ atspre_prerr_newline () ; tmp137 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; return (tmp137) ; } /* end of [auxerr_29] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 12856(line=690, offs=1) -- 13335(line=721, offs=4) */ ATSstaticdec() ats_ptr_type eval0_d2var_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab_eval0_d2var_28: tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind (arg1, arg2) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (tmp143 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_10, tmp143, atslab_0) ; ATS_FREE(tmp143) ; tmp136 = tmp144 ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (tmp143 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: tmp136 = auxerr_29 (arg0, arg2) ; break ; } while (0) ; return (tmp136) ; } /* end of [eval0_d2var_28] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 13542(line=734, offs=3) -- 13876(line=748, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst: do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp147 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp146) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst (arg0, arg1, arg2, tmp147) ; tmp145 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp145, atslab_0, tmp148) ; ats_selptrset_mac(anairiats_sum_6, tmp145, atslab_1, tmp149) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: tmp145 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 14081(line=761, offs=3) -- 14202(line=766, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp150 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vunit_5) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp151 = ats_caselptrlab_mac(anairiats_sum_10, arg3, atslab_0) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp151) ; break ; } while (0) ; return (tmp150) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 14278(line=772, offs=3) -- 17932(line=918, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_int_type, tmp155) ; ATSlocal (ats_char_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; ATSlocal (ats_llint_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_char_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_bool_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_bool_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_bool_type, tmp204) ; ATSlocal (ats_bool_type, tmp205) ; ATSlocal (ats_bool_type, tmp206) ; ATSlocal (ats_bool_type, tmp207) ; ATSlocal (ats_bool_type, tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; // ATSlocal_void (tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp: tmp153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg3), atslab_d2exp_node) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp153)->tag != 1) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ; tmp152 = eval0_d2var_28 (arg0, arg1, tmp154) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp153)->tag != 2) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_3, tmp153, atslab_0) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp152)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp152, atslab_0, tmp155) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp153)->tag != 5) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_12, tmp153, atslab_0) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp152)->tag = 2 ; ats_selptrset_mac(anairiats_sum_12, tmp152, atslab_0, tmp156) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp153)->tag != 6) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp157 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp152)->tag = 3 ; ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp157) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp153)->tag != 7) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp152)->tag = 4 ; ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp158) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp153)->tag != 8) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp159 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ; tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp159), atslab_token_node) ; if (((ats_sum_ptr_type)tmp160)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 14863(line=803, offs=9) -- 14911(line=804, offs=38)") ; } tmp161 = ats_caselptrlab_mac(anairiats_sum_14, tmp160, atslab_1) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string (tmp161) ; tmp162 = atspre_int_of_llint (tmp163) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp152)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp152, atslab_0, tmp162) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp153)->tag != 9) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ; tmp165 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp164), atslab_token_node) ; if (((ats_sum_ptr_type)tmp165)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 15045(line=810, offs=9) -- 15074(line=810, offs=38)") ; } tmp166 = ats_caselptrlab_mac(anairiats_sum_12, tmp165, atslab_0) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp152)->tag = 2 ; ats_selptrset_mac(anairiats_sum_12, tmp152, atslab_0, tmp166) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp153)->tag != 10) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp167 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ; tmp168 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp167), atslab_token_node) ; if (((ats_sum_ptr_type)tmp168)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 15166(line=814, offs=9) -- 15215(line=815, offs=37)") ; } tmp169 = ats_caselptrlab_mac(anairiats_sum_14, tmp168, atslab_1) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp152)->tag = 3 ; ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp169) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp153)->tag != 11) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ; tmp171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp170), atslab_token_node) ; if (((ats_sum_ptr_type)tmp171)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 15312(line=819, offs=9) -- 15343(line=819, offs=40)") ; } tmp172 = ats_caselptrlab_mac(anairiats_sum_8, tmp171, atslab_0) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp152)->tag = 4 ; ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp172) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp153)->tag != 34) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp173 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp ; // tail call break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp153)->tag != 28) { goto __ats_lab_91_0 ; } __ats_lab_87_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_0) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_1) ; tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp174), atslab_d2exp_node) ; do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp176)->tag != 70) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_8, tmp176, atslab_0) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long (arg0, tmp177, arg1, arg2, tmp175) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp176)->tag != 22) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_8, tmp176, atslab_0) ; tmp179 = d2sym_is_nonqua_1 (tmp178) ; if (!tmp179) { goto __ats_lab_90_1 ; } tmp180 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp178), atslab_d2sym_sym) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym (arg0, tmp180, arg1, arg2, tmp175) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: __ats_lab_90_1: /* tmp181 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp182 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression at (")) ; tmp184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp174), atslab_d2exp_loc) ; /* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp184) ; /* tmp185 = */ atspre_prerr_string (ATSstrcst(") should be a macro but it is not.")) ; /* tmp186 = */ atspre_prerr_newline () ; tmp152 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp153)->tag != 29) { goto __ats_lab_94_0 ; } __ats_lab_91_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_16, tmp153, atslab_1) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_16, tmp153, atslab_2) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_16, tmp153, atslab_3) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp187) ; do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp190)->tag != 1) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_9, tmp190, atslab_0) ; if (tmp191) { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp188 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp ; // tail call } else { tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt (arg0, arg1, arg2, tmp189) ; } /* end of [if] */ break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: __ats_lab_93_1: tmp152 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp153)->tag != 70) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ; tmp193 = (ats_sum_ptr_type)0 ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long (arg0, tmp192, arg1, arg2, tmp193) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp153)->tag != 71) { goto __ats_lab_99_0 ; } __ats_lab_95_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_0) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_1) ; do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp194)->tag != 0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp195) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp152)->tag = 7 ; ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp196) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp194)->tag != 1) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp195) ; tmp152 = eval0_app_eval_20 (arg0, tmp197) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: // if (((ats_sum_ptr_type)tmp194)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_98_1: tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp195) ; tmp198 = eval0_app_eval_20 (arg0, tmp199) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp (arg0, tmp198) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp152)->tag = 7 ; ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp200) ; break ; } while (0) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp153)->tag != 72) { goto __ats_lab_106_0 ; } __ats_lab_99_1: tmp201 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_0) ; tmp202 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_1) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst (arg0, arg1, arg2, tmp202) ; do { /* branch: __ats_lab_100 */ __ats_lab_100_0: __ats_lab_100_1: tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR) ; if (!tmp204) { goto __ats_lab_101_1 ; } tmp152 = eval0_car_23 (tmp203) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: __ats_lab_101_1: tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR) ; if (!tmp205) { goto __ats_lab_102_1 ; } tmp152 = eval0_cdr_24 (tmp203) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: __ats_lab_102_1: tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL) ; if (!tmp206) { goto __ats_lab_103_1 ; } tmp152 = eval0_isnil_26 (tmp203) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: __ats_lab_103_1: tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS) ; if (!tmp207) { goto __ats_lab_104_1 ; } tmp152 = eval0_iscons_27 (tmp203) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: __ats_lab_104_1: tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST) ; if (!tmp208) { goto __ats_lab_105_1 ; } tmp152 = eval0_islist_25 (tmp203) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: __ats_lab_105_1: tmp152 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: __ats_lab_106_1: /* tmp209 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp210 = */ atspre_prerr_string (ATSstrcst(": the form of dynamic expression [")) ; /* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp (arg3) ; /* tmp212 = */ atspre_prerr_string (ATSstrcst("] is unsupported for macro expansion.")) ; /* tmp213 = */ atspre_prerr_newline () ; tmp215 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp215)->tag = 93 ; ats_selptrset_mac(anairiats_sum_15, tmp215, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp215, atslab_1, arg3) ; /* tmp214 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp215) ; tmp152 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ; break ; } while (0) ; return (tmp152) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 18910(line=985, offs=1) -- 19353(line=1000, offs=4) */ ATSstaticdec() ats_void_type auxerr_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; ATSlocal (ats_bool_type, tmp222) ; // ATSlocal_void (tmp223) ; ATSlocal (ats_bool_type, tmp224) ; // ATSlocal_void (tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; __ats_lab_auxerr_34: /* tmp218 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp219 = */ atspre_prerr_string (ATSstrcst(": some static argument group of the macro [")) ; /* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (arg1) ; tmp222 = atspre_lt_int_int (arg2, 0) ; if (tmp222) { /* tmp221 = */ atspre_prerr_string (ATSstrcst("] is expected to contain more arguments.")) ; } else { /* empty */ } /* end of [if] */ tmp224 = atspre_gt_int_int (arg2, 0) ; if (tmp224) { /* tmp223 = */ atspre_prerr_string (ATSstrcst("] is expected to contain fewer arguments.")) ; } else { /* empty */ } /* end of [if] */ /* tmp225 = */ atspre_prerr_newline () ; tmp226 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp226)->tag = 95 ; ats_selptrset_mac(anairiats_sum_15, tmp226, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp226, atslab_1, arg1) ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp226) ; return /* (tmp217) */ ; } /* end of [auxerr_34] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 18850(line=980, offs=1) -- 19942(line=1030, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg: do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_110_0 ; } __ats_lab_107_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_0) ; tmp228 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp229 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_0) ; tmp230 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_1) ; tmp232 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp232)->tag = 6 ; ats_selptrset_mac(anairiats_sum_8, tmp232, atslab_0, tmp229) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_sadd (arg7, tmp227, tmp232) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = tmp228 ; arg6 = tmp230 ; arg7 = tmp231 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg ; // tail call break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: /* tmp233 = */ auxerr_34 (arg0, arg1, 1) ; tmp216 = arg7 ; break ; } while (0) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: // if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_110_1: do { /* branch: __ats_lab_111 */ __ats_lab_111_0: if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_112_0 ; } __ats_lab_111_1: /* tmp234 = */ auxerr_34 (arg0, arg1, -1) ; tmp216 = arg7 ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: // if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_112_1: tmp216 = arg7 ; break ; } while (0) ; break ; } while (0) ; return (tmp216) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 20088(line=1042, offs=1) -- 20529(line=1055, offs=4) */ ATSstaticdec() ats_void_type auxerr_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; ATSlocal (ats_bool_type, tmp241) ; // ATSlocal_void (tmp242) ; ATSlocal (ats_bool_type, tmp243) ; // ATSlocal_void (tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; __ats_lab_auxerr_36: /* tmp237 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp238 = */ atspre_prerr_string (ATSstrcst(": some dynamic argument group of the macro [")) ; /* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (arg1) ; tmp241 = atspre_lt_int_int (arg2, 0) ; if (tmp241) { /* tmp240 = */ atspre_prerr_string (ATSstrcst("] is expected to contain more arguments.")) ; } else { /* empty */ } /* end of [if] */ tmp243 = atspre_gt_int_int (arg2, 0) ; if (tmp243) { /* tmp242 = */ atspre_prerr_string (ATSstrcst("] is expected to contain fewer arguments.")) ; } else { /* empty */ } /* end of [if] */ /* tmp244 = */ atspre_prerr_newline () ; tmp245 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp245)->tag = 95 ; ats_selptrset_mac(anairiats_sum_15, tmp245, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp245, atslab_1, arg1) ; /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp245) ; return /* (tmp236) */ ; } /* end of [auxerr_36] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 20556(line=1058, offs=1) -- 20835(line=1073, offs=4) */ ATSstaticdec() ats_ptr_type auxexp_37 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_bool_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab_auxexp_37: tmp247 = atspre_gte_int_int (arg1, 1) ; if (tmp247) { tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg2, arg3, arg4) ; } else { tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg2, arg3, arg4) ; tmp246 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp246)->tag = 7 ; ats_selptrset_mac(anairiats_sum_8, tmp246, atslab_0, tmp248) ; } /* end of [if] */ return (tmp246) ; } /* end of [auxexp_37] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 20862(line=1076, offs=1) -- 21222(line=1093, offs=4) */ ATSstaticdec() ats_ptr_type auxexplst_38 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; __ats_lab_auxexplst_38: do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp250 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_0) ; tmp251 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_1) ; tmp252 = auxexp_37 (arg0, arg1, arg2, arg3, tmp250) ; tmp253 = auxexplst_38 (arg0, arg1, arg2, arg3, tmp251) ; tmp249 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp249, atslab_0, tmp252) ; ats_selptrset_mac(anairiats_sum_6, tmp249, atslab_1, tmp253) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: tmp249 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp249) ; } /* end of [auxexplst_38] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 20027(line=1036, offs=1) -- 22346(line=1145, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg: do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } tmp254 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ; if (tmp254 != (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } __ats_lab_115_1: tmp255 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_0) ; do { /* branch: __ats_lab_116 */ __ats_lab_116_0: if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; } tmp256 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_1) ; if (tmp256 != (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp257 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_0) ; tmp258 = auxexp_37 (arg0, arg2, arg3, arg4, tmp257) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd (arg7, tmp255, tmp258) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: __ats_lab_117_1: tmp259 = auxexplst_38 (arg0, arg2, arg3, arg4, arg6) ; tmp260 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp260)->tag = 8 ; ats_selptrset_mac(anairiats_sum_8, tmp260, atslab_0, tmp259) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd (arg7, tmp255, tmp260) ; break ; } while (0) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_121_0 ; } __ats_lab_118_1: tmp261 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_0) ; tmp262 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ; do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp263 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_0) ; tmp264 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_1) ; tmp265 = auxexp_37 (arg0, arg2, arg3, arg4, tmp263) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd (arg7, tmp261, tmp265) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = tmp262 ; arg6 = tmp264 ; arg7 = tmp266 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg ; // tail call break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: // if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_120_1: /* tmp267 = */ auxerr_36 (arg0, arg1, 1) ; tmp235 = arg7 ; break ; } while (0) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: // if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_121_1: do { /* branch: __ats_lab_122 */ __ats_lab_122_0: if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_123_0 ; } __ats_lab_122_1: /* tmp268 = */ auxerr_36 (arg0, arg1, -1) ; tmp235 = arg7 ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: // if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_123_1: tmp235 = arg7 ; break ; } while (0) ; break ; } while (0) ; return (tmp235) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2872(line=116, offs=20) -- 2933(line=119, offs=2) */ ATSstaticdec() ats_void_type prerr_warning2_loc_02055_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp272) ; // ATSlocal_void (tmp273) ; __ats_lab_prerr_warning2_loc_02055_: /* tmp273 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp272 = */ atspre_prerr_string (ATSstrcst(": warning(2)")) ; return /* (tmp272) */ ; } /* end of [prerr_warning2_loc_02055_] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 22467(line=1154, offs=1) -- 22595(line=1160, offs=2) */ ATSstaticdec() ats_void_type auxwarn_40 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp274) ; __ats_lab_auxwarn_40: /* tmp271 = */ prerr_warning2_loc_02055_ (arg0) ; /* tmp274 = */ atspre_prerr_string (ATSstrcst(": the static macro argument is ignored.")) ; /* tmp270 = */ atspre_prerr_newline () ; return /* (tmp270) */ ; } /* end of [auxwarn_40] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4) */ ATSstaticdec() ats_void_type loop_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab_loop_43: do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp283 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp284 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp285 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp285, atslab_0, tmp283) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp285 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp286 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp284 ; arg1 = arg1 ; arg2 = tmp286 ; goto __ats_lab_loop_43 ; // tail call break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp282) */ ; } /* end of [loop_43] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4) */ ATSstaticdec() ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; // ATSlocal_void (tmp287) ; __ats_lab_list_append_01312_ats_ptr_type: /* ats_ptr_type tmp281 ; */ /* tmp287 = */ loop_43 (arg0, arg1, (&tmp281)) ; tmp280 = tmp281 ; return (tmp280) ; } /* end of [list_append_01312_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 22405(line=1150, offs=1) -- 23357(line=1191, offs=4) */ ATSstaticdec() ats_ptr_type s2exparglst_join_39 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; // ATSlocal_void (tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab_s2exparglst_join_39: do { /* branch: __ats_lab_124 */ __ats_lab_124_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } __ats_lab_124_1: tmp275 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp276 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp277 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, tmp275), atslab_s2exparg_node) ; do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp277)->tag != 2) { goto __ats_lab_130_0 ; } __ats_lab_125_1: tmp278 = ats_caselptrlab_mac(anairiats_sum_8, tmp277, atslab_0) ; do { /* branch: __ats_lab_126 */ __ats_lab_126_0: if (tmp276 == (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; } __ats_lab_126_1: tmp279 = s2exparglst_join_39 (tmp276) ; tmp269 = list_append_01312_ats_ptr_type (tmp278, tmp279) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: // if (tmp276 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_129_1: tmp269 = tmp278 ; break ; } while (0) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp277)->tag != 0) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp289 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, tmp275), atslab_s2exparg_loc) ; /* tmp288 = */ auxwarn_40 (tmp289) ; arg0 = tmp276 ; goto __ats_lab_s2exparglst_join_39 ; // tail call break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: // if (((ats_sum_ptr_type)tmp277)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_131_1: tmp291 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, tmp275), atslab_s2exparg_loc) ; /* tmp290 = */ auxwarn_40 (tmp291) ; arg0 = tmp276 ; goto __ats_lab_s2exparglst_join_39 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: tmp269 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp269) ; } /* end of [s2exparglst_join_39] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 23497(line=1203, offs=1) -- 23937(line=1221, offs=4) */ ATSstaticdec() ats_void_type auxerr_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp293) ; // ATSlocal_void (tmp294) ; // ATSlocal_void (tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; ATSlocal (ats_bool_type, tmp298) ; // ATSlocal_void (tmp299) ; ATSlocal (ats_bool_type, tmp300) ; // ATSlocal_void (tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; __ats_lab_auxerr_45: /* tmp294 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp295 = */ atspre_prerr_string (ATSstrcst(": the macro argument at (")) ; /* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg1) ; tmp298 = atspre_eq_int_int (arg3, 0) ; if (tmp298) { /* tmp297 = */ atspre_prerr_string (ATSstrcst(") is expected to be static.")) ; } else { /* empty */ } /* end of [if] */ tmp300 = atspre_gt_int_int (arg3, 0) ; if (tmp300) { /* tmp299 = */ atspre_prerr_string (ATSstrcst(") is expected to be dynamic.")) ; } else { /* empty */ } /* end of [if] */ /* tmp301 = */ atspre_prerr_newline () ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp302)->tag = 95 ; ats_selptrset_mac(anairiats_sum_15, tmp302, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp302, atslab_1, arg2) ; /* tmp293 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp302) ; return /* (tmp293) */ ; } /* end of [auxerr_45] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 23438(line=1197, offs=1) -- 24707(line=1255, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; // ATSlocal_void (tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; // ATSlocal_void (tmp311) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg: do { /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)arg5)->tag != 0) { goto __ats_lab_136_0 ; } __ats_lab_133_1: tmp303 = ats_caselptrlab_mac(anairiats_sum_8, arg5, atslab_0) ; do { /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)arg6)->tag != 0) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_15, arg6, atslab_1) ; tmp305 = s2exparglst_join_39 (tmp304) ; tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg (arg0, arg1, arg2, arg3, arg4, tmp303, tmp305, arg7) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: // if (((ats_sum_ptr_type)arg6)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_135_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_5, arg6, atslab_1) ; /* tmp307 = */ auxerr_45 (arg0, tmp306, arg1, 0) ; tmp292 = arg7 ; break ; } while (0) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (((ats_sum_ptr_type)arg5)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_8, arg5, atslab_0) ; do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)arg6)->tag != 1) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp309 = ats_caselptrlab_mac(anairiats_sum_5, arg6, atslab_2) ; tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg (arg0, arg1, arg2, arg3, arg4, tmp308, tmp309, arg7) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (((ats_sum_ptr_type)arg6)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: tmp310 = ats_caselptrlab_mac(anairiats_sum_15, arg6, atslab_0) ; /* tmp311 = */ auxerr_45 (arg0, tmp310, arg1, 1) ; tmp292 = arg7 ; break ; } while (0) ; break ; } while (0) ; return (tmp292) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 24794(line=1261, offs=1) -- 25191(line=1280, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (arg5 != (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp312 = arg7 ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp313 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_0) ; tmp314 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ; if (arg6 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 24957(line=1272, offs=9) -- 24984(line=1272, offs=36)") ; } tmp315 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_0) ; tmp316 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_1) ; tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg (arg0, arg1, arg2, arg3, arg4, tmp313, tmp315, arg7) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = tmp314 ; arg6 = tmp316 ; arg7 = tmp317 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst ; // tail call break ; } while (0) ; return (tmp312) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_49 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_int_type, tmp323) ; __ats_lab_loop_49: do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp322 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp323 = atspre_isucc (arg1) ; arg0 = tmp322 ; arg1 = tmp323 ; goto __ats_lab_loop_49 ; // tail call break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_142_1: tmp321 = arg1 ; break ; } while (0) ; return (tmp321) ; } /* end of [loop_49] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp320) ; __ats_lab_list_length_01410_ats_ptr_type: tmp320 = loop_49 (arg0, 0) ; return (tmp320) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 25319(line=1288, offs=1) -- 26352(line=1345, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_int_type, tmp319) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_int_type, tmp325) ; // ATSlocal_void (tmp326) ; ATSlocal (ats_bool_type, tmp327) ; // ATSlocal_void (tmp328) ; // ATSlocal_void (tmp329) ; // ATSlocal_void (tmp330) ; // ATSlocal_void (tmp331) ; ATSlocal (ats_bool_type, tmp332) ; // ATSlocal_void (tmp333) ; ATSlocal (ats_bool_type, tmp334) ; // ATSlocal_void (tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; // ATSlocal_void (tmp341) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long: tmp319 = list_length_01410_ats_ptr_type (arg4) ; tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst (arg1) ; tmp325 = list_length_01410_ats_ptr_type (tmp324) ; tmp327 = atspre_ineq (tmp319, tmp325) ; if (tmp327) { /* tmp328 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp329 = */ atspre_prerr_string (ATSstrcst(": the macro function [")) ; /* tmp330 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (arg1) ; tmp332 = atspre_igt (tmp319, tmp325) ; if (tmp332) { /* tmp331 = */ atspre_prerr_string (ATSstrcst("] is overlly applied.")) ; } else { /* empty */ } /* end of [if] */ tmp334 = atspre_ilt (tmp319, tmp325) ; if (tmp334) { /* tmp333 = */ atspre_prerr_string (ATSstrcst("] is applied insufficiently.")) ; } else { /* empty */ } /* end of [if] */ /* tmp335 = */ atspre_prerr_newline () ; tmp336 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp336)->tag = 94 ; ats_selptrset_mac(anairiats_sum_4, tmp336, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp336, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp336, atslab_2, arg4) ; /* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp336) ; } else { /* empty */ } /* end of [if] */ tmp337 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () ; tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst (arg0, arg1, 1, arg2, arg3, tmp324, arg4, tmp337) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_def (arg1) ; tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, tmp338, arg3, tmp339) ; /* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (tmp338) ; tmp318 = tmp340 ; return (tmp318) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 63850(line=2298, offs=7) -- 64282(line=2312, offs=8) */ ATSstaticdec() ats_ptr_type loop_52 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_bool_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_int_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; __ats_lab_loop_52: tmp361 = atspre_igt (arg1, 0) ; if (tmp361) { // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp362 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp363 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp364 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp364, atslab_0, tmp362) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp364 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp365 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; tmp366 = atspre_isub (arg1, 1) ; arg0 = tmp363 ; arg1 = tmp366 ; arg2 = tmp365 ; goto __ats_lab_loop_52 ; // tail call } else { tmp367 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp367 ; tmp360 = arg0 ; } /* end of [if] */ return (tmp360) ; } /* end of [loop_52] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 63790(line=2296, offs=23) -- 64357(line=2316, offs=4) */ ATSstaticdec() anairiats_rec_7 list_split_at_01440_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (anairiats_rec_7, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp368) ; __ats_lab_list_split_at_01440_ats_ptr_type: /* ats_ptr_type tmp359 ; */ tmp368 = loop_52 (arg0, arg1, (&tmp359)) ; tmp358.atslab_0 = tmp359 ; tmp358.atslab_1 = tmp368 ; return (tmp358) ; } /* end of [list_split_at_01440_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 26484(line=1353, offs=3) -- 28286(line=1453, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_int_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_int_type, tmp345) ; // ATSlocal_void (tmp346) ; ATSlocal (ats_bool_type, tmp347) ; // ATSlocal_void (tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_bool_type, tmp356) ; ATSlocal (anairiats_rec_7, tmp357) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short: tmp343 = list_length_01410_ats_ptr_type (arg4) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst (arg1) ; tmp345 = list_length_01410_ats_ptr_type (tmp344) ; tmp347 = atspre_ilt (tmp343, tmp345) ; if (tmp347) { /* tmp348 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp349 = */ atspre_prerr_string (ATSstrcst(": the macro function [")) ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (arg1) ; /* tmp351 = */ atspre_prerr_string (ATSstrcst("] is applied insufficiently.")) ; /* tmp352 = */ atspre_prerr_newline () ; tmp353 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp353)->tag = 94 ; ats_selptrset_mac(anairiats_sum_4, tmp353, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp353, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp353, atslab_2, arg4) ; /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp353) ; } else { /* empty */ } /* end of [if] */ /* ats_ptr_type tmp354 ; */ tmp354 = (ats_sum_ptr_type)0 ; tmp356 = atspre_igte (tmp343, tmp345) ; if (tmp356) { tmp357 = list_split_at_01440_ats_ptr_type (arg4, tmp345) ; tmp369 = ats_select_mac(tmp357, atslab_0) ; tmp370 = ats_select_mac(tmp357, atslab_1) ; tmp354 = ats_castfn_mac(ats_ptr_type, tmp369) ; tmp355 = tmp370 ; } else { tmp354 = arg4 ; tmp355 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp372 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst (arg0, arg1, 0, arg2, arg3, tmp344, tmp354, tmp372) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_def (arg1) ; tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, tmp371, arg3, tmp374) ; /* tmp375 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (tmp371) ; do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (tmp355 != (ats_sum_ptr_type)0) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp342 = tmp373 ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: // if (tmp355 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_144_1: tmp376 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp373), atslab_d2exp_node) ; do { /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp376)->tag != 28) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp377 = ats_caselptrlab_mac(anairiats_sum_15, tmp376, atslab_0) ; tmp378 = ats_caselptrlab_mac(anairiats_sum_15, tmp376, atslab_1) ; tmp379 = list_append_01312_ats_ptr_type (tmp378, tmp355) ; tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst (arg0, tmp377, tmp379) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: __ats_lab_146_1: tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst (arg0, tmp373, tmp355) ; break ; } while (0) ; break ; } while (0) ; return (tmp342) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short] */ /* 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_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_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_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dmacro2_eval0_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_szexp_dats.c0000644000175000017500000030653013431250607023353 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; } 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_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_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_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_staexp2_2esats__TYRECKINDflt0_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt1_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SZLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEprf_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEptr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEcst_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEVar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEapp_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyarr_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyrec_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEclo_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, 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_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_is_bot) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_tszeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_merge) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__fprint_labs2zexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_make_s2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_pop) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_push) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_free) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_find) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_merge_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplst_merge_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplstlst_merge_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__labs2zexplst_merge_exn) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__sasp__env = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn) ; /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_void_type aux_3 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_3_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_3_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_02107_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_14 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type loop1_16 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type loop1_16_closure_make (ats_ptr_type env0) ; static ats_bool_type loop1_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type loop2_17 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type loop2_17_closure_make (ats_ptr_type env0) ; static ats_bool_type loop2_17_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type s2zexp_tyrec_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2exp_19 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2exp_app_20 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type aux_arglst_21 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_arglstlst_22 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_labs2explst_23 (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s2zexp_linkrem_25 (ats_ptr_type arg0) ; static ats_ptr_type abort_27 () ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 1671(line=52, offs=28) -- 1702(line=52, offs=59) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_staexp2_szexp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_3 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_bool_type, tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_int_type, tmp30) ; __ats_lab_aux_3: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp26 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp28 = atspre_gt_int_int (arg1, 0) ; if (tmp28) { /* tmp27 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp29 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp25) ; tmp30 = atspre_add_int_int (arg1, 1) ; arg0 = tmp26 ; arg1 = tmp30 ; goto __ats_lab_aux_3 ; // tail call break ; } while (0) ; return /* (tmp24) */ ; } /* end of [aux_3] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_3_closure_type ; ats_void_type aux_3_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_3 (((aux_3_closure_type*)cloptr)->closure_env_0, ((aux_3_closure_type*)cloptr)->closure_env_1, ((aux_3_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_3_closure_init (aux_3_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_3_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_3_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_3_closure_type *p_clo = ATS_MALLOC(sizeof(aux_3_closure_type)) ; aux_3_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_02107_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp23) ; __ats_lab_fprintlst_02107_ats_ptr_type: /* tmp23 = */ aux_3 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp23) */ ; } /* end of [fprintlst_02107_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 2078(line=75, offs=15) -- 3603(line=140, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEprf()")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEptr()")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEcst(")) ; /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (arg0, tmp2) ; /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEvar(")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp5) ; /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp9 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZE(")) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (arg0, tmp8) ; /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEextype(")) ; /* tmp13 = */ atspre_fprint_string (arg0, tmp11) ; /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEextkind(")) ; /* tmp16 = */ atspre_fprint_string (arg0, tmp14) ; /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_10_0 ; } __ats_lab_7_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp18 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEapp(")) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp (arg0, tmp17) ; /* tmp21 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp22 = */ fprintlst_02107_ats_ptr_type (arg0, tmp18, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp) ; /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp32 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEtyarr(")) ; /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp (arg0, tmp31) ; /* tmp35 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp32) ; /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEtyrec(")) ; /* tmp39 = */ fprintlst_02107_ats_ptr_type (arg0, tmp37, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__fprint_labs2zexp) ; /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEclo()")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)arg1)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: /* tmp1 = */ atspre_fprint_string (arg0, ATSstrcst("S2ZEbot()")) ; break ; } while (0) ; return /* (tmp1) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 3654(line=143, offs=14) -- 3689(line=143, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2zexp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2zexp: /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp (stdout, arg0) ; return /* (tmp40) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2zexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 3713(line=145, offs=14) -- 3748(line=145, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2zexp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2zexp: /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp (stderr, arg0) ; return /* (tmp41) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2zexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 3779(line=149, offs=3) -- 3954(line=156, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__fprint_labs2zexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__fprint_labs2zexp: tmp43 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp43) ; /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp (arg0, tmp44) ; return /* (tmp42) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__fprint_labs2zexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 4030(line=161, offs=15) -- 4080(line=162, offs=45) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_is_bot (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_is_bot: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 11) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp47 = ats_true_bool ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp47 = ats_false_bool ; break ; } while (0) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_is_bot] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 4207(line=169, offs=29) -- 4226(line=169, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_make_s2cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_make_s2cst: tmp48 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp48)->tag = 2 ; ats_selptrset_mac(anairiats_sum_1, tmp48, atslab_0, arg0) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_make_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 4585(line=187, offs=24) -- 4604(line=187, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_make_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_make_nil: tmp49 = (ats_sum_ptr_type)0 ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_make_nil] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 4623(line=189, offs=9) -- 4698(line=192, offs=12) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_pop (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_pop: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp51 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: break ; } while (0) ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_pop] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 4738(line=195, offs=10) -- 4783(line=195, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_push (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_push: tmp53 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp53, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp53, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp53 ; return /* (tmp52) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_push] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_14 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab_loop_14: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp57 ; goto __ats_lab_loop_14 ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: break ; } while (0) ; return /* (tmp56) */ ; } /* end of [loop_14] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp55) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp55 = */ loop_14 (arg0) ; return /* (tmp55) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 4803(line=197, offs=10) -- 4828(line=197, offs=35) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_free: /* tmp54 = */ list_vt_free_01499_ats_ptr_type (arg0) ; return /* (tmp54) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_free] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 4871(line=200, offs=7) -- 5034(line=204, offs=27) */ ATSstaticdec() ats_bool_type loop1_16 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_bool_type, tmp62) ; __ats_lab_loop1_16: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp61 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (env0, tmp60) ; if (tmp62) { tmp59 = ats_true_bool ; } else { arg0 = tmp61 ; goto __ats_lab_loop1_16 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp59 = ats_false_bool ; break ; } while (0) ; return (tmp59) ; } /* end of [loop1_16] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop1_16_closure_type ; ats_bool_type loop1_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return loop1_16 (((loop1_16_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type loop1_16_closure_init (loop1_16_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop1_16_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop1_16_closure_make (ats_ptr_type env0) { loop1_16_closure_type *p_clo = ATS_MALLOC(sizeof(loop1_16_closure_type)) ; loop1_16_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 5061(line=206, offs=7) -- 5236(line=210, offs=27) */ ATSstaticdec() ats_bool_type loop2_17 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; __ats_lab_loop2_17: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp65 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp66 = loop1_16 (env0, tmp64) ; if (tmp66) { tmp63 = ats_true_bool ; } else { arg0 = tmp65 ; goto __ats_lab_loop2_17 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp63 = ats_false_bool ; break ; } while (0) ; return (tmp63) ; } /* end of [loop2_17] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop2_17_closure_type ; ats_bool_type loop2_17_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return loop2_17 (((loop2_17_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type loop2_17_closure_init (loop2_17_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop2_17_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop2_17_closure_make (ats_ptr_type env0) { loop2_17_closure_type *p_clo = ATS_MALLOC(sizeof(loop2_17_closure_type)) ; loop2_17_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 4849(line=199, offs=10) -- 5307(line=214, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_find (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_find: tmp58 = loop2_17 (arg1, ats_castfn_mac(ats_ptr_type, ats_ptrget_mac(ats_ptr_type, arg0))) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_find] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 5385(line=223, offs=1) -- 5784(line=249, offs=4) */ ATSstaticdec() ats_ptr_type s2zexp_tyrec_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_bool_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; __ats_lab_s2zexp_tyrec_18: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp68 = ats_true_bool ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp68 = ats_true_bool ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp68 = ats_false_bool ; break ; } while (0) ; if (tmp68) { do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } tmp69 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; if (tmp69 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; // tmp71 = ats_caselptrlab_mac(anairiats_sum_3, tmp70, atslab_1) ; tmp67 = tmp71 ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp67 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp67)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp67, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp67, atslab_1, arg1) ; break ; } while (0) ; } else { tmp67 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp67)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp67, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp67, atslab_1, arg1) ; } /* end of [if] */ return (tmp67) ; } /* end of [s2zexp_tyrec_18] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 5815(line=252, offs=1) -- 7947(line=350, offs=4) */ ATSstaticdec() ats_ptr_type aux_s2exp_19 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_bool_type, tmp76) ; ATSlocal (ats_bool_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; // ATSlocal_void (tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; // ATSlocal_void (tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab_aux_s2exp_19: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg1) ; tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp73), atslab_s2exp_srt) ; tmp75 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp73), atslab_s2exp_node) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp74) ; if (!tmp76) { goto __ats_lab_30_1 ; } tmp72 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEprf_0) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed (tmp74) ; if (!tmp77) { goto __ats_lab_31_0 ; } tmp72 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEptr_1) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp75)->tag != 4) { goto __ats_lab_34_0 ; } __ats_lab_31_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_1, tmp75, atslab_0) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (tmp78) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp79 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } tmp80 = ats_caselptrlab_mac(anairiats_sum_5, tmp79, atslab_0) ; if (tmp80 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_5, tmp80, atslab_0) ; arg0 = arg0 ; arg1 = tmp81 ; goto __ats_lab_aux_s2exp_19 ; // tail call break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_make_s2cst (tmp78) ; break ; } while (0) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp75)->tag != 7) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_1, tmp75, atslab_0) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_find (arg0, tmp82) ; if (tmp83) { tmp72 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; } else { tmp72 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp72)->tag = 3 ; ats_selptrset_mac(anairiats_sum_1, tmp72, atslab_0, tmp82) ; } /* end of [if] */ break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp75)->tag != 8) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_1, tmp75, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (tmp84) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp75)->tag != 5) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_2, tmp75, atslab_0) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_2, tmp75, atslab_1) ; tmp87 = aux_arglstlst_22 (arg0, tmp86) ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp72)->tag = 5 ; ats_selptrset_mac(anairiats_sum_2, tmp72, atslab_0, tmp85) ; ats_selptrset_mac(anairiats_sum_2, tmp72, atslab_1, tmp87) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp75)->tag != 6) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_2, tmp75, atslab_0) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_2, tmp75, atslab_1) ; tmp90 = aux_arglstlst_22 (arg0, tmp89) ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp72)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp72, atslab_0, tmp88) ; ats_selptrset_mac(anairiats_sum_2, tmp72, atslab_1, tmp90) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp75)->tag != 17) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_2, tmp75, atslab_0) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_2, tmp75, atslab_1) ; tmp93 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp73), atslab_s2exp_srt) ; tmp72 = aux_s2exp_app_20 (arg0, tmp93, tmp91, tmp92) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp75)->tag != 19) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp72 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEclo_10) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp75)->tag != 22) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_6, tmp75, atslab_1) ; arg0 = arg0 ; arg1 = tmp94 ; goto __ats_lab_aux_s2exp_19 ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp75)->tag != 24) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_2, tmp75, atslab_0) ; tmp96 = ats_caselptrlab_mac(anairiats_sum_2, tmp75, atslab_1) ; tmp97 = aux_s2exp_19 (arg0, tmp95) ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp72)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp72, atslab_0, tmp97) ; ats_selptrset_mac(anairiats_sum_2, tmp72, atslab_1, tmp96) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp75)->tag != 25) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_7, tmp75, atslab_0) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_7, tmp75, atslab_1) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_7, tmp75, atslab_2) ; tmp101 = aux_labs2explst_23 (arg0, tmp99, tmp100) ; tmp72 = s2zexp_tyrec_18 (tmp98, tmp101) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp75)->tag != 27) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_8, tmp75, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_8, tmp75, atslab_2) ; /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_push (arg0, tmp102) ; tmp105 = aux_s2exp_19 (arg0, tmp103) ; /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_pop (arg0) ; tmp72 = tmp105 ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp75)->tag != 28) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_8, tmp75, atslab_0) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_8, tmp75, atslab_2) ; /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_push (arg0, tmp107) ; tmp110 = aux_s2exp_19 (arg0, tmp108) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_pop (arg0) ; tmp72 = tmp110 ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp75)->tag != 26) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_1, tmp75, atslab_0) ; arg0 = arg0 ; arg1 = tmp112 ; goto __ats_lab_aux_s2exp_19 ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp75)->tag != 30) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp72 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp75)->tag != 31) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp113 = ats_caselptrlab_mac(anairiats_sum_2, tmp75, atslab_0) ; arg0 = arg0 ; arg1 = tmp113 ; goto __ats_lab_aux_s2exp_19 ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: __ats_lab_48_1: tmp72 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; break ; } while (0) ; return (tmp72) ; } /* end of [aux_s2exp_19] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 7975(line=353, offs=1) -- 8894(line=385, offs=4) */ ATSstaticdec() ats_ptr_type aux_s2exp_app_20 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_aux_s2exp_app_20: tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg2) ; tmp116 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp115), atslab_s2exp_node) ; do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp116)->tag != 4) { goto __ats_lab_52_0 ; } __ats_lab_49_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_1, tmp116, atslab_0) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (tmp117) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (tmp118 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } tmp119 = ats_caselptrlab_mac(anairiats_sum_5, tmp118, atslab_0) ; if (tmp119 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_5, tmp119, atslab_0) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (arg1, tmp120, arg3) ; tmp114 = aux_s2exp_19 (arg0, tmp121) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_make_s2cst (tmp117) ; tmp123 = aux_arglst_21 (arg0, arg3) ; tmp114 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp114)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_0, tmp122) ; ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_1, tmp123) ; break ; } while (0) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp114 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; break ; } while (0) ; return (tmp114) ; } /* end of [aux_s2exp_app_20] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 8926(line=388, offs=1) -- 9432(line=405, offs=31) */ ATSstaticdec() ats_ptr_type aux_arglst_21 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_bool_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab_aux_arglst_21: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp125), atslab_s2exp_srt) ; tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm (tmp127) ; if (tmp129) { tmp128 = ats_true_bool ; } else { tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind (tmp127) ; } /* end of [if] */ if (tmp128) { tmp130 = aux_s2exp_19 (arg0, tmp125) ; tmp131 = aux_arglst_21 (arg0, tmp126) ; tmp124 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp124, atslab_0, tmp130) ; ats_selptrset_mac(anairiats_sum_3, tmp124, atslab_1, tmp131) ; } else { arg0 = arg0 ; arg1 = tmp126 ; goto __ats_lab_aux_arglst_21 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp124 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp124) ; } /* end of [aux_arglst_21] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 9461(line=409, offs=1) -- 9701(line=416, offs=31) */ ATSstaticdec() ats_ptr_type aux_arglstlst_22 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; __ats_lab_aux_arglstlst_22: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp133 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp134 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp135 = aux_arglst_21 (arg0, tmp133) ; tmp136 = aux_arglstlst_22 (arg0, tmp134) ; tmp132 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp132, atslab_0, tmp135) ; ats_selptrset_mac(anairiats_sum_3, tmp132, atslab_1, tmp136) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp132 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp132) ; } /* end of [aux_arglstlst_22] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 9733(line=420, offs=1) -- 10234(line=437, offs=31) */ ATSstaticdec() ats_ptr_type aux_labs2explst_23 (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; __ats_lab_aux_labs2explst_23: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp140 = atspre_gt_int_int (arg1, 0) ; if (tmp140) { tmp141 = atspre_sub_int_int (arg1, 1) ; arg0 = arg0 ; arg1 = tmp141 ; arg2 = tmp139 ; goto __ats_lab_aux_labs2explst_23 ; // tail call } else { tmp142 = ats_caselptrlab_mac(anairiats_sum_9, tmp138, atslab_0) ; tmp143 = ats_caselptrlab_mac(anairiats_sum_9, tmp138, atslab_2) ; tmp144 = aux_s2exp_19 (arg0, tmp143) ; tmp145 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp145, atslab_0, tmp142) ; ats_selptrset_mac(anairiats_sum_3, tmp145, atslab_1, tmp144) ; tmp146 = aux_labs2explst_23 (arg0, arg1, tmp139) ; tmp137 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp137, atslab_0, tmp145) ; ats_selptrset_mac(anairiats_sum_3, tmp137, atslab_1, tmp146) ; } /* end of [if] */ break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp137 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp137) ; } /* end of [aux_labs2explst_23] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 10315(line=444, offs=3) -- 10547(line=456, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp: /* ats_ptr_type tmp148 ; */ tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_make_nil () ; tmp149 = aux_s2exp_19 ((&tmp148), arg0) ; /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__env_free (tmp148) ; tmp147 = tmp149 ; return (tmp147) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 11157(line=486, offs=1) -- 11258(line=488, offs=52) */ ATSstaticdec() ats_ptr_type s2zexp_linkrem_25 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; __ats_lab_s2zexp_linkrem_25: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (tmp152) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: tmp151 = arg0 ; break ; } while (0) ; return (tmp151) ; } /* end of [s2zexp_linkrem_25] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 11358(line=498, offs=1) -- 11415(line=502, offs=26) */ ATSstaticdec() ats_ptr_type abort_27 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab_abort_27: tmp155 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn) ; /* tmp154 = */ ats_raise_exn (tmp155) ; return (tmp154) ; } /* end of [abort_27] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 11337(line=495, offs=3) -- 13563(line=596, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_merge_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_bool_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_bool_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; // ATSlocal_void (tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; // ATSlocal_void (tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_bool_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_bool_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_bool_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_bool_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_merge_exn: tmp156 = s2zexp_linkrem_25 (arg0) ; tmp157 = s2zexp_linkrem_25 (arg1) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp156)->tag != 11) { goto __ats_lab_62_0 ; } __ats_lab_61_1: __ats_lab_61_2: tmp153 = abort_27 () ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: if (((ats_sum_ptr_type)tmp157)->tag != 11) { goto __ats_lab_63_0 ; } __ats_lab_62_2: tmp153 = abort_27 () ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp156)->tag != 0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: if (((ats_sum_ptr_type)tmp157)->tag != 0) { goto __ats_lab_68_1 ; } __ats_lab_63_2: tmp153 = tmp156 ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp156)->tag != 1) { goto __ats_lab_65_0 ; } __ats_lab_64_1: if (((ats_sum_ptr_type)tmp157)->tag != 1) { goto __ats_lab_68_1 ; } __ats_lab_64_2: tmp153 = tmp156 ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp156)->tag != 2) { goto __ats_lab_66_0 ; } __ats_lab_65_1: if (((ats_sum_ptr_type)tmp157)->tag != 2) { goto __ats_lab_68_1 ; } __ats_lab_65_2: tmp158 = ats_caselptrlab_mac(anairiats_sum_1, tmp156, atslab_0) ; tmp159 = ats_caselptrlab_mac(anairiats_sum_1, tmp157, atslab_0) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (tmp158, tmp159) ; if (tmp160) { tmp153 = tmp156 ; } else { tmp153 = abort_27 () ; } /* end of [if] */ break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp156)->tag != 3) { goto __ats_lab_67_0 ; } __ats_lab_66_1: if (((ats_sum_ptr_type)tmp157)->tag != 3) { goto __ats_lab_68_1 ; } __ats_lab_66_2: tmp161 = ats_caselptrlab_mac(anairiats_sum_1, tmp156, atslab_0) ; tmp162 = ats_caselptrlab_mac(anairiats_sum_1, tmp157, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp161, tmp162) ; if (tmp163) { tmp153 = tmp156 ; } else { tmp153 = abort_27 () ; } /* end of [if] */ break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp156)->tag != 4) { goto __ats_lab_68_0 ; } __ats_lab_67_1: __ats_lab_67_2: tmp164 = ats_caselptrlab_mac(anairiats_sum_1, tmp156, atslab_0) ; /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp (tmp164, tmp157) ; tmp153 = tmp157 ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: if (((ats_sum_ptr_type)tmp157)->tag != 4) { goto __ats_lab_69_0 ; } __ats_lab_68_2: tmp166 = ats_caselptrlab_mac(anairiats_sum_1, tmp157, atslab_0) ; /* tmp167 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp (tmp166, tmp156) ; tmp153 = tmp156 ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp156)->tag != 5) { goto __ats_lab_70_0 ; } __ats_lab_69_1: if (((ats_sum_ptr_type)tmp157)->tag != 5) { goto __ats_lab_75_1 ; } __ats_lab_69_2: tmp168 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_0) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_1) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_1) ; tmp172 = atspre_eq_string_string (tmp168, tmp170) ; if (tmp172) { tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplstlst_merge_exn (tmp169, tmp171) ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp153)->tag = 5 ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_0, tmp168) ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_1, tmp173) ; } else { tmp153 = abort_27 () ; } /* end of [if] */ break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp156)->tag != 6) { goto __ats_lab_71_0 ; } __ats_lab_70_1: if (((ats_sum_ptr_type)tmp157)->tag != 6) { goto __ats_lab_75_1 ; } __ats_lab_70_2: tmp174 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_0) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_1) ; tmp176 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_0) ; tmp177 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_1) ; tmp178 = atspre_eq_string_string (tmp174, tmp176) ; if (tmp178) { tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplstlst_merge_exn (tmp175, tmp177) ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp153)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_0, tmp174) ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_1, tmp179) ; } else { tmp153 = abort_27 () ; } /* end of [if] */ break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp156)->tag != 7) { goto __ats_lab_72_0 ; } __ats_lab_71_1: if (((ats_sum_ptr_type)tmp157)->tag != 7) { goto __ats_lab_75_1 ; } __ats_lab_71_2: tmp180 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_0) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_1) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_0) ; tmp183 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_1) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_merge_exn (tmp180, tmp182) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplst_merge_exn (tmp181, tmp183) ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp153)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_0, tmp184) ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_1, tmp185) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp156)->tag != 8) { goto __ats_lab_73_0 ; } __ats_lab_72_1: if (((ats_sum_ptr_type)tmp157)->tag != 8) { goto __ats_lab_75_1 ; } __ats_lab_72_2: tmp186 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_0) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_1) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_0) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_1) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_merge_exn (tmp186, tmp188) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq (tmp187, tmp189) ; if (tmp191) { tmp153 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp153)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_0, tmp190) ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_1, tmp187) ; } else { tmp153 = abort_27 () ; } /* end of [if] */ break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp156)->tag != 9) { goto __ats_lab_74_0 ; } __ats_lab_73_1: if (((ats_sum_ptr_type)tmp157)->tag != 9) { goto __ats_lab_75_1 ; } __ats_lab_73_2: tmp192 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_0) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_2, tmp156, atslab_1) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_0) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_2, tmp157, atslab_1) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (tmp192, tmp194) ; if (tmp196) { tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__labs2zexplst_merge_exn (tmp193, tmp195) ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp153)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_0, tmp192) ; ats_selptrset_mac(anairiats_sum_2, tmp153, atslab_1, tmp197) ; } else { tmp198 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn) ; /* tmp153 = */ ats_raise_exn (tmp198) ; } /* end of [if] */ break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp156)->tag != 10) { goto __ats_lab_75_0 ; } __ats_lab_74_1: if (((ats_sum_ptr_type)tmp157)->tag != 10) { goto __ats_lab_75_1 ; } __ats_lab_74_2: tmp153 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEclo_10) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: __ats_lab_75_1: __ats_lab_75_2: tmp153 = abort_27 () ; break ; } while (0) ; return (tmp153) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_merge_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 13616(line=600, offs=3) -- 13925(line=609, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplst_merge_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplst_merge_exn: do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_78_1 ; } __ats_lab_76_2: tmp200 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp201 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp202 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp203 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_merge_exn (tmp200, tmp202) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplst_merge_exn (tmp201, tmp203) ; tmp199 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp199, atslab_0, tmp204) ; ats_selptrset_mac(anairiats_sum_3, tmp199, atslab_1, tmp205) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_78_1 ; } __ats_lab_77_2: tmp199 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: __ats_lab_78_1: __ats_lab_78_2: tmp206 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn) ; /* tmp199 = */ ats_raise_exn (tmp206) ; break ; } while (0) ; return (tmp199) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplst_merge_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 13999(line=614, offs=3) -- 14332(line=623, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplstlst_merge_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplstlst_merge_exn: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_81_1 ; } __ats_lab_79_2: tmp208 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp210 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp211 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplst_merge_exn (tmp208, tmp210) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplstlst_merge_exn (tmp209, tmp211) ; tmp207 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp207, atslab_0, tmp212) ; ats_selptrset_mac(anairiats_sum_3, tmp207, atslab_1, tmp213) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_81_1 ; } __ats_lab_80_2: tmp207 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: __ats_lab_81_1: __ats_lab_81_2: tmp214 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn) ; /* tmp207 = */ ats_raise_exn (tmp214) ; break ; } while (0) ; return (tmp207) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexplstlst_merge_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 14409(line=628, offs=3) -- 14979(line=648, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__labs2zexplst_merge_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_bool_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__labs2zexplst_merge_exn: do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_83_0 ; } __ats_lab_82_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_84_1 ; } __ats_lab_82_2: tmp216 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp217 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp218 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp219 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_3, tmp216, atslab_0) ; tmp221 = ats_caselptrlab_mac(anairiats_sum_3, tmp216, atslab_1) ; tmp222 = ats_caselptrlab_mac(anairiats_sum_3, tmp218, atslab_0) ; tmp223 = ats_caselptrlab_mac(anairiats_sum_3, tmp218, atslab_1) ; tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (tmp220, tmp222) ; if (tmp224) { tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_merge_exn (tmp221, tmp223) ; tmp226 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp226, atslab_0, tmp220) ; ats_selptrset_mac(anairiats_sum_3, tmp226, atslab_1, tmp225) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__labs2zexplst_merge_exn (tmp217, tmp219) ; tmp215 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp215, atslab_0, tmp226) ; ats_selptrset_mac(anairiats_sum_3, tmp215, atslab_1, tmp227) ; } else { tmp228 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn) ; /* tmp215 = */ ats_raise_exn (tmp228) ; } /* end of [if] */ break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_84_1 ; } __ats_lab_83_2: tmp215 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: __ats_lab_84_1: __ats_lab_84_2: tmp229 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn) ; /* tmp215 = */ ats_raise_exn (tmp229) ; break ; } while (0) ; return (tmp215) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__labs2zexplst_merge_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 15124(line=657, offs=3) -- 15206(line=660, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_merge (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_merge: ATS_TRYWITH_TRY(tmp232) tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__s2zexp_merge_exn (arg0, arg1) ; tmp230 = tmp231 ; ATS_TRYWITH_WITH(tmp232) do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (tmp232 != &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn) { ats_raise_exn (tmp232) ; } __ats_lab_85_1: tmp230 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp230) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_merge] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 15307(line=667, offs=3) -- 15408(line=671, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_syneq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_bool_type, tmp235) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_syneq: tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_merge (arg0, arg1) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_is_bot (tmp234) ; if (tmp235) { tmp233 = ats_false_bool ; } else { tmp233 = ats_true_bool ; } /* end of [if] */ return (tmp233) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_syneq] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 15480(line=677, offs=3) -- 15789(line=694, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_tszeq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_tszeq: tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp (tmp237) ; tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp (tmp238) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_syneq (tmp239, tmp240) ; return (tmp236) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_tszeq] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_szexp.dats: 15859(line=699, offs=12) -- 15923(line=701, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq: tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_tszeq (tmp242, tmp243) ; return (tmp241) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn.name = "_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__S2ZEXPMERGEexn" ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_szexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_szexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_constraint3_simplify_dats.c0000644000175000017500000034165513431250607024726 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Evar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ecst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eunit_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneg_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebadd_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebmul_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebeq_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneq_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebineq_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebdom_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eiatm_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eicff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eisum_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eimul_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Esizeof_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eapp_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eerr_19) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_ineg) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilte) (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_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__lt_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__gte_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_pair) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_gte) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_union) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isgte) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_0) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_1) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_2) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_neg_1) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_0) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_1) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_neg_1) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool) (ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_intinf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_icff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_nonlin) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag) (ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3explst_lintize_flag) (ats_ref_type, ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type uns3exp_intinf_5 (ats_ptr_type arg0) ; static ats_ptr_type app_19 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type __ats_fun_22 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_22_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type uns3exp_icff_28 (ats_ptr_type arg0) ; static ats_ptr_type s3exp_icff_add_29 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s3exp_isum_pair_30 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_34 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_32 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s3exp_isum_list_31 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_36 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_36_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_36_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type loop_38 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type s3exp_imul_list_35 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_42 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_42_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_43 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_43_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 1731(line=60, offs=12) -- 2113(line=69, offs=24) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_int_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp2 = atspre_neg_bool (tmp1) ; tmp0 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp0)->tag = 4 ; ats_selptrset_mac(anairiats_sum_1, tmp0, atslab_0, tmp2) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp0 = tmp3 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp6 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp6)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp6, atslab_0, tmp4) ; tmp7 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp7)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp7, atslab_0, tmp5) ; tmp0 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp0)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_0, tmp6) ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_1, tmp7) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp9 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp10)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_0, tmp8) ; tmp11 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp11)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp11, atslab_0, tmp9) ; tmp0 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp0)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_0, tmp10) ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_1, tmp11) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp0 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp0)->tag = 10 ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_0, tmp12) ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_1, tmp13) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp15 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp0 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp0)->tag = 9 ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_0, tmp14) ; ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_1, tmp15) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg0)->tag != 11) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp17 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp18 = atspre_ineg (tmp16) ; tmp0 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp0)->tag = 11 ; ats_selptrset_mac(anairiats_sum_4, tmp0, atslab_0, tmp18) ; ats_selptrset_mac(anairiats_sum_4, tmp0, atslab_1, tmp17) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp0 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp0)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp0, atslab_0, arg0) ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 2184(line=76, offs=3) -- 2450(line=87, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_badd (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; ATSlocal (ats_bool_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_badd: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; if (tmp20) { tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true ; } else { tmp19 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; if (tmp21) { tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_true ; } else { tmp19 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp19 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp19)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp19, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp19, atslab_1, arg1) ; break ; } while (0) ; break ; } while (0) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_badd] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 2498(line=91, offs=3) -- 2770(line=103, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bmul (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_bool_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bmul: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; if (tmp23) { tmp22 = arg1 ; } else { tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false ; } /* end of [if] */ break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; if (tmp24) { tmp22 = arg0 ; } else { tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false ; } /* end of [if] */ break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp22 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp22)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp22, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp22, atslab_1, arg1) ; break ; } while (0) ; break ; } while (0) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bmul] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 2838(line=109, offs=3) -- 3061(line=117, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_beq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_bool_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_beq: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; if (tmp26) { tmp25 = arg1 ; } else { tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg (arg1) ; } /* end of [if] */ break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; if (tmp27) { tmp25 = arg0 ; } else { tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg (arg0) ; } /* end of [if] */ break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp25 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp25)->tag = 9 ; ats_selptrset_mac(anairiats_sum_3, tmp25, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp25, atslab_1, arg1) ; break ; } while (0) ; break ; } while (0) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_beq] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 3124(line=122, offs=3) -- 3348(line=130, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_bool_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneq: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; if (tmp29) { tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg (arg1) ; } else { tmp28 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; if (tmp30) { tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg (arg0) ; } else { tmp28 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp28 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp28)->tag = 10 ; ats_selptrset_mac(anairiats_sum_3, tmp28, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp28, atslab_1, arg1) ; break ; } while (0) ; break ; } while (0) ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneq] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 3414(line=136, offs=1) -- 3767(line=148, offs=20) */ ATSstaticdec() ats_ptr_type uns3exp_intinf_5 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab_uns3exp_intinf_5: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp31 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp31, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_0) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp31 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp31, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_1) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)arg0)->tag != 14) { goto __ats_lab_29_0 ; } __ats_lab_26_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp33 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp34 = uns3exp_intinf_5 (tmp33) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp34 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_5, tmp34, atslab_0) ; ATS_FREE(tmp34) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_intinf (tmp32, tmp35) ; tmp31 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp31, atslab_0, tmp36) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (tmp34 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp31 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp31 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp31) ; } /* end of [uns3exp_intinf_5] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 3818(line=152, offs=13) -- 4253(line=166, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_bool_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; ATSlocal (ats_bool_type, tmp45) ; ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_bool_type, tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq: tmp38 = uns3exp_intinf_5 (arg1) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (tmp38 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_30_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_5, tmp38, atslab_0) ; ATS_FREE(tmp38) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp40 = atspre_ieq (arg0, 2) ; if (!tmp40) { goto __ats_lab_32_1 ; } tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__gte_intinf_int (tmp39, 0) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool (tmp41) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp42 = atspre_ieq (arg0, -2) ; if (!tmp42) { goto __ats_lab_33_1 ; } tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__lt_intinf_int (tmp39, 0) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool (tmp43) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp44 = atspre_ieq (arg0, 1) ; if (!tmp44) { goto __ats_lab_34_1 ; } tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int (tmp39, 0) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool (tmp45) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: tmp46 = atspre_ieq (arg0, -1) ; if (!tmp46) { goto __ats_lab_35_1 ; } tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_intinf_int (tmp39, 0) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool (tmp47) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp49 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 4128(line=162, offs=18) -- 4144(line=162, offs=34)", ATSstrcst("\n")) ; /* tmp48 = */ atspre_assert_errmsg (ats_false_bool, tmp49) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false ; break ; } while (0) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (tmp38 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp37 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp37)->tag = 11 ; ats_selptrset_mac(anairiats_sum_4, tmp37, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp37, atslab_1, arg1) ; break ; } while (0) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 4320(line=171, offs=11) -- 4384(line=172, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilt: tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub (arg0, arg1) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq (-2, tmp51) ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilt] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 4429(line=176, offs=12) -- 4493(line=177, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilte (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilte: tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub (arg1, arg0) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq (2, tmp53) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilte] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 4538(line=181, offs=11) -- 4602(line=182, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igt: tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub (arg1, arg0) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq (-2, tmp55) ; return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igt] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 4647(line=186, offs=12) -- 4711(line=187, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igte (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igte: tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub (arg0, arg1) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq (2, tmp57) ; return (tmp56) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igte] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 4756(line=191, offs=11) -- 4819(line=192, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq: tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub (arg0, arg1) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq (1, tmp59) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 4864(line=196, offs=12) -- 4929(line=197, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineq: tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub (arg0, arg1) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bineq (-1, tmp61) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineq] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 4995(line=203, offs=11) -- 5062(line=205, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_int (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_int: tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int (arg0) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_intinf (tmp63) ; return (tmp62) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_int] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 5109(line=207, offs=24) -- 5142(line=207, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_intinf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_intinf: tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_1) ; return (tmp64) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_intinf] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 5186(line=212, offs=12) -- 5554(line=230, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int (arg0, 1) ; if (!tmp66) { goto __ats_lab_38_1 ; } tmp65 = arg1 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int (arg0, 0) ; if (!tmp67) { goto __ats_lab_39_1 ; } tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_0 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_0 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg1)->tag != 14) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_intinf (arg0, tmp68) ; arg0 = tmp70 ; arg1 = tmp69 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_icff (arg0, tmp71) ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp65)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp65, atslab_0, ats_castfn_mac(ats_ptr_type, tmp72)) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp65 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp65)->tag = 14 ; ats_selptrset_mac(anairiats_sum_3, tmp65, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp65, atslab_1, arg1) ; break ; } while (0) ; break ; } while (0) ; return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54647(line=1953, offs=6) -- 54699(line=1953, offs=58) */ ATSstaticdec() ats_ptr_type app_19 (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; __ats_lab_app_19: tmp76 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp76) ; } /* end of [app_19] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab_loop_21: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp81 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp79, arg3) ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp82, atslab_0, tmp81) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp82 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp83 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp80 ; arg1 = arg1 ; arg2 = tmp83 ; arg3 = arg3 ; goto __ats_lab_loop_21 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp84 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp84 ; break ; } while (0) ; return /* (tmp78) */ ; } /* end of [loop_21] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp85) ; // ATSlocal_void (tmp86) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp85 ; */ /* tmp86 = */ loop_21 (arg0, arg1, (&tmp85), arg2) ; tmp77 = tmp85 ; return (tmp77) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54575(line=1951, offs=23) -- 54763(line=1956, offs=4) */ ATSstaticdec() ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; __ats_lab_list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type: tmp75 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_19, arg1) ; return (tmp75) ; } /* end of [list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54041(line=1936, offs=19) -- 54491(line=1948, offs=2) */ ATSstaticdec() ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; __ats_lab_list_map_cloptr_01415_ats_ptr_type_ats_ptr_type: tmp74 = list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (arg0, arg1) ; return (tmp74) ; } /* end of [list_map_cloptr_01415_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 5638(line=234, offs=24) -- 5666(line=234, offs=52) */ ATSstaticdec() ats_ptr_type __ats_fun_22 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; __ats_lab___ats_fun_22: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (env0, arg0) ; return (tmp88) ; } /* end of [__ats_fun_22] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_22_closure_type ; ats_ptr_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_22 (((__ats_fun_22_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_22_closure_init (__ats_fun_22_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_22_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_22_closure_make (ats_ptr_type env0) { __ats_fun_22_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_22_closure_type)) ; __ats_fun_22_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 5603(line=233, offs=15) -- 5667(line=234, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_icff (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_icff: /* ats_ptr_type tmp87 ; */ tmp87 = __ats_fun_22_closure_make (arg0) ; tmp73 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (arg1, tmp87) ; ATS_FREE(tmp87) ; return (tmp73) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_icff] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 5718(line=238, offs=12) -- 5752(line=238, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg: tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_neg_1, arg0) ; return (tmp89) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 5796(line=243, offs=12) -- 5971(line=249, offs=27) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_46_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (tmp92 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp90 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp90)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp90, atslab_0, arg0) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (tmp92 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp90 = tmp91 ; break ; } while (0) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_0 ; break ; } while (0) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 6041(line=255, offs=13) -- 6074(line=255, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isucc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isucc: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_1) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isucc] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 6097(line=257, offs=13) -- 6134(line=257, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ipred (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ipred: tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_neg_1) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ipred] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 6179(line=262, offs=13) -- 7078(line=306, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isgte (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_int_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isgte: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg0)->tag != 13) { goto __ats_lab_53_0 ; } __ats_lab_50_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_gte (tmp96, tmp97) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp95 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_57_0 ; } __ats_lab_53_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp95 = ats_false_bool ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (tmp98, tmp99) ; tmp95 = atspre_ilte (tmp100, 0) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: tmp95 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_62_0 ; } __ats_lab_57_1: tmp101 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp95 = ats_false_bool ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp95 = ats_false_bool ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (tmp101, tmp102) ; tmp95 = atspre_ilte (tmp103, 0) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: __ats_lab_61_1: tmp95 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_68_0 ; } __ats_lab_62_1: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp95 = ats_false_bool ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp95 = ats_false_bool ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp95 = ats_false_bool ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp95 = ats_true_bool ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: __ats_lab_67_1: tmp95 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: tmp95 = ats_false_bool ; break ; } while (0) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isgte] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 7136(line=312, offs=5) -- 7212(line=314, offs=42) */ ATSstaticdec() ats_ptr_type uns3exp_icff_28 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab_uns3exp_icff_28: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg0)->tag != 14) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp104 = tmp105 ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp104 = arg0 ; break ; } while (0) ; return (tmp104) ; } /* end of [uns3exp_icff_28] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 7292(line=320, offs=5) -- 7573(line=327, offs=40) */ ATSstaticdec() ats_ptr_type s3exp_icff_add_29 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab_s3exp_icff_add_29: do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)arg0)->tag != 14) { goto __ats_lab_72_0 ; } __ats_lab_71_1: if (((ats_sum_ptr_type)arg1)->tag != 14) { goto __ats_lab_72_1 ; } __ats_lab_71_2: tmp107 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp109 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_intinf (tmp107, tmp109) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (tmp110, tmp108) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)arg0)->tag != 14) { goto __ats_lab_73_0 ; } __ats_lab_72_1: __ats_lab_72_2: tmp111 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp112 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_int (tmp111, 1) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (tmp113, tmp112) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: if (((ats_sum_ptr_type)arg1)->tag != 14) { goto __ats_lab_74_1 ; } __ats_lab_73_2: tmp114 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp115 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_int (tmp114, 1) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (tmp116, tmp115) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: __ats_lab_74_1: __ats_lab_74_2: tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_2, arg0) ; break ; } while (0) ; return (tmp106) ; } /* end of [s3exp_icff_add_29] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 7606(line=331, offs=1) -- 7981(line=349, offs=4) */ ATSstaticdec() ats_ptr_type s3exp_isum_pair_30 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_bool_type, tmp120) ; ATSlocal (ats_bool_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab_s3exp_isum_pair_30: tmp118 = uns3exp_icff_28 (arg0) ; tmp119 = uns3exp_icff_28 (arg1) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isgte (tmp118, tmp119) ; if (tmp120) { tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isgte (tmp119, tmp118) ; if (tmp121) { tmp117 = s3exp_icff_add_29 (arg0, arg1) ; } else { tmp124 = (ats_sum_ptr_type)0 ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp123, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp123, atslab_1, tmp124) ; tmp122 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp122, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp122, atslab_1, tmp123) ; tmp117 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp117)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp117, atslab_0, tmp122) ; } /* end of [if] */ } else { tmp127 = (ats_sum_ptr_type)0 ; tmp126 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp126, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp126, atslab_1, tmp127) ; tmp125 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp125, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp125, atslab_1, tmp126) ; tmp117 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp117)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp117, atslab_0, tmp125) ; } /* end of [if] */ return (tmp117) ; } /* end of [s3exp_isum_pair_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_34 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab_loop_34: do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp146 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp146, atslab_0, tmp144) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp146 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp147 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp145 ; arg1 = tmp147 ; goto __ats_lab_loop_34 ; // tail call break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: tmp148 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp148 ; break ; } while (0) ; return /* (tmp143) */ ; } /* end of [loop_34] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp149 ; */ /* tmp150 = */ loop_34 (arg0, (&tmp149)) ; tmp142 = tmp149 ; return (tmp142) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 8093(line=356, offs=5) -- 9008(line=387, offs=35) */ ATSstaticdec() ats_ptr_type aux_32 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_bool_type, tmp136) ; ATSlocal (ats_bool_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; __ats_lab_aux_32: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_75_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_76_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp133 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp134 = uns3exp_icff_28 (tmp130) ; tmp135 = uns3exp_icff_28 (tmp132) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isgte (tmp134, tmp135) ; if (tmp136) { tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isgte (tmp135, tmp134) ; if (tmp137) { tmp138 = s3exp_icff_add_29 (tmp130, tmp132) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp138)->tag != 2) { goto __ats_lab_78_0 ; } __ats_lab_77_1: arg0 = tmp131 ; arg1 = tmp133 ; goto __ats_lab_aux_32 ; // tail call break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: __ats_lab_78_1: tmp139 = aux_32 (tmp131, tmp133) ; tmp129 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_0, tmp138) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_1, tmp139) ; break ; } while (0) ; } else { tmp140 = aux_32 (tmp131, arg1) ; tmp129 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_0, tmp130) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_1, tmp140) ; } /* end of [if] */ } else { tmp141 = aux_32 (arg0, tmp133) ; tmp129 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_0, tmp132) ; ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_1, tmp141) ; } /* end of [if] */ break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: tmp129 = list_copy_01322_ats_ptr_type (arg0) ; break ; } while (0) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: tmp129 = list_copy_01322_ats_ptr_type (arg1) ; break ; } while (0) ; return (tmp129) ; } /* end of [aux_32] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 8015(line=352, offs=1) -- 9049(line=391, offs=4) */ ATSstaticdec() ats_ptr_type s3exp_isum_list_31 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; __ats_lab_s3exp_isum_list_31: tmp128 = aux_32 (arg0, arg1) ; return (tmp128) ; } /* end of [s3exp_isum_list_31] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 9246(line=402, offs=13) -- 9277(line=402, offs=44) */ ATSstaticdec() ats_ptr_type __ats_fun_36 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp156) ; __ats_lab___ats_fun_36: tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul (env0, arg0) ; return (tmp156) ; } /* end of [__ats_fun_36] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_36_closure_type ; ats_ptr_type __ats_fun_36_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_36 (((__ats_fun_36_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_36_closure_init (__ats_fun_36_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_36_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_36_closure_make (ats_ptr_type env0) { __ats_fun_36_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_36_closure_type)) ; __ats_fun_36_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_38 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; __ats_lab_loop_38: do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp162 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp162 ; goto __ats_lab_loop_38 ; // tail call break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: break ; } while (0) ; return /* (tmp161) */ ; } /* end of [loop_38] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp160) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp160 = */ loop_38 (arg0) ; return /* (tmp160) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 9083(line=394, offs=1) -- 9597(line=414, offs=4) */ ATSstaticdec() ats_ptr_type s3exp_imul_list_35 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp163) ; __ats_lab_s3exp_imul_list_35: do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_86_0 ; } __ats_lab_83_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp153 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; /* ats_ptr_type tmp155 ; */ tmp155 = __ats_fun_36_closure_make (tmp152) ; tmp154 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (arg1, tmp155) ; ATS_FREE(tmp155) ; tmp157 = s3exp_imul_list_35 (tmp153, arg1) ; tmp158 = s3exp_isum_list_31 (ats_castfn_mac(ats_ptr_type, tmp154), ats_castfn_mac(ats_ptr_type, tmp157)) ; /* tmp159 = */ list_vt_free_01499_ats_ptr_type (tmp154) ; /* tmp163 = */ list_vt_free_01499_ats_ptr_type (tmp157) ; tmp151 = tmp158 ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: tmp151 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp151) ; } /* end of [s3exp_imul_list_35] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 9674(line=420, offs=3) -- 10406(line=443, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; // ATSlocal_void (tmp177) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd: do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_88_0 ; } __ats_lab_87_1: __ats_lab_87_2: tmp164 = arg1 ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_89_0 ; } __ats_lab_88_2: tmp164 = arg0 ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)arg0)->tag != 15) { goto __ats_lab_90_0 ; } __ats_lab_89_1: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_90_1 ; } __ats_lab_89_2: tmp165 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp167 = s3exp_isum_list_31 (tmp165, tmp166) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum (ats_castfn_mac(ats_ptr_type, tmp167)) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)arg0)->tag != 15) { goto __ats_lab_91_0 ; } __ats_lab_90_1: __ats_lab_90_2: tmp168 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp170 = (ats_sum_ptr_type)0 ; tmp169 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp169, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp169, atslab_1, tmp170) ; tmp171 = s3exp_isum_list_31 (tmp168, ats_castfn_mac(ats_ptr_type, tmp169)) ; /* tmp172 = */ list_vt_free_01499_ats_ptr_type (tmp169) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum (ats_castfn_mac(ats_ptr_type, tmp171)) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: __ats_lab_91_1: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_92_1 ; } __ats_lab_91_2: tmp173 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp175 = (ats_sum_ptr_type)0 ; tmp174 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_1, tmp175) ; tmp176 = s3exp_isum_list_31 (ats_castfn_mac(ats_ptr_type, tmp174), tmp173) ; /* tmp177 = */ list_vt_free_01499_ats_ptr_type (tmp174) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum (ats_castfn_mac(ats_ptr_type, tmp176)) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: __ats_lab_92_1: __ats_lab_92_2: tmp164 = s3exp_isum_pair_30 (arg0, arg1) ; break ; } while (0) ; return (tmp164) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 10456(line=448, offs=3) -- 11495(line=479, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; // ATSlocal_void (tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub: do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_94_0 ; } __ats_lab_93_1: __ats_lab_93_2: tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg (arg1) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: __ats_lab_94_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_95_0 ; } __ats_lab_94_2: tmp178 = arg0 ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)arg0)->tag != 15) { goto __ats_lab_96_0 ; } __ats_lab_95_1: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_96_1 ; } __ats_lab_95_2: tmp179 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp180 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_icff (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_neg_1, tmp180) ; tmp182 = s3exp_isum_list_31 (tmp179, ats_castfn_mac(ats_ptr_type, tmp181)) ; /* tmp183 = */ list_vt_free_01499_ats_ptr_type (tmp181) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum (ats_castfn_mac(ats_ptr_type, tmp182)) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)arg0)->tag != 15) { goto __ats_lab_97_0 ; } __ats_lab_96_1: __ats_lab_96_2: tmp184 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg (arg1) ; tmp187 = (ats_sum_ptr_type)0 ; tmp185 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp185, atslab_0, tmp186) ; ats_selptrset_mac(anairiats_sum_6, tmp185, atslab_1, tmp187) ; tmp188 = s3exp_isum_list_31 (tmp184, ats_castfn_mac(ats_ptr_type, tmp185)) ; /* tmp189 = */ list_vt_free_01499_ats_ptr_type (tmp185) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum (ats_castfn_mac(ats_ptr_type, tmp188)) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: __ats_lab_97_1: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_98_1 ; } __ats_lab_97_2: tmp190 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp192 = (ats_sum_ptr_type)0 ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp191, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp191, atslab_1, tmp192) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_icff (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__intinf_neg_1, tmp190) ; tmp194 = s3exp_isum_list_31 (ats_castfn_mac(ats_ptr_type, tmp191), ats_castfn_mac(ats_ptr_type, tmp193)) ; /* tmp195 = */ list_vt_free_01499_ats_ptr_type (tmp191) ; /* tmp196 = */ list_vt_free_01499_ats_ptr_type (tmp193) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum (ats_castfn_mac(ats_ptr_type, tmp194)) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: __ats_lab_98_1: __ats_lab_98_2: tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg (arg1) ; tmp178 = s3exp_isum_pair_30 (arg0, tmp197) ; break ; } while (0) ; return (tmp178) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 12527(line=516, offs=37) -- 12558(line=516, offs=68) */ ATSstaticdec() ats_ptr_type __ats_fun_42 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp223) ; __ats_lab___ats_fun_42: tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul (arg0, env0) ; return (tmp223) ; } /* end of [__ats_fun_42] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_42_closure_type ; ats_ptr_type __ats_fun_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_42 (((__ats_fun_42_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_42_closure_init (__ats_fun_42_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_42_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_42_closure_make (ats_ptr_type env0) { __ats_fun_42_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_42_closure_type)) ; __ats_fun_42_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 12681(line=521, offs=37) -- 12712(line=521, offs=68) */ ATSstaticdec() ats_ptr_type __ats_fun_43 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp227) ; __ats_lab___ats_fun_43: tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul (env0, arg0) ; return (tmp227) ; } /* end of [__ats_fun_43] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_43_closure_type ; ats_ptr_type __ats_fun_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_43 (((__ats_fun_43_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_43_closure_init (__ats_fun_43_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_43_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_43_closure_make (ats_ptr_type env0) { __ats_fun_43_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_43_closure_type)) ; __ats_fun_43_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 11545(line=484, offs=3) -- 12809(line=528, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul: do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_100_0 ; } __ats_lab_99_1: __ats_lab_99_2: tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_0 ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: __ats_lab_100_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_101_0 ; } __ats_lab_100_2: tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_0 ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_102_0 ; } __ats_lab_101_1: __ats_lab_101_2: tmp198 = arg1 ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: __ats_lab_102_1: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_103_0 ; } __ats_lab_102_2: tmp198 = arg0 ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)arg0)->tag != 14) { goto __ats_lab_104_0 ; } __ats_lab_103_1: __ats_lab_103_2: tmp199 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul (tmp200, arg1) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (tmp199, tmp201) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: __ats_lab_104_1: if (((ats_sum_ptr_type)arg1)->tag != 14) { goto __ats_lab_105_0 ; } __ats_lab_104_2: tmp202 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp203 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul (arg0, tmp203) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_icff (tmp202, tmp204) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_106_0 ; } __ats_lab_105_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_107_1 ; } __ats_lab_105_2: tmp205 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp206 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_pair (tmp205, tmp206) ; tmp198 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp198)->tag = 13 ; ats_selptrset_mac(anairiats_sum_2, tmp198, atslab_0, tmp207) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)arg0)->tag != 13) { goto __ats_lab_107_0 ; } __ats_lab_106_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_108_1 ; } __ats_lab_106_2: tmp208 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_add (tmp208, tmp209) ; tmp198 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp198)->tag = 13 ; ats_selptrset_mac(anairiats_sum_2, tmp198, atslab_0, tmp210) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_111_1 ; } __ats_lab_107_2: tmp211 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp212 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_add (tmp212, tmp211) ; tmp198 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp198)->tag = 13 ; ats_selptrset_mac(anairiats_sum_2, tmp198, atslab_0, tmp213) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)arg0)->tag != 13) { goto __ats_lab_109_0 ; } __ats_lab_108_1: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_111_1 ; } __ats_lab_108_2: tmp214 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp215 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_union (tmp214, tmp215) ; tmp198 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp198)->tag = 13 ; ats_selptrset_mac(anairiats_sum_2, tmp198, atslab_0, tmp216) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)arg0)->tag != 15) { goto __ats_lab_110_0 ; } __ats_lab_109_1: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_110_1 ; } __ats_lab_109_2: tmp217 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp218 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp219 = s3exp_imul_list_35 (tmp217, tmp218) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isum (ats_castfn_mac(ats_ptr_type, tmp219)) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)arg0)->tag != 15) { goto __ats_lab_111_0 ; } __ats_lab_110_1: __ats_lab_110_2: tmp220 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; /* ats_ptr_type tmp222 ; */ tmp222 = __ats_fun_42_closure_make (arg1) ; tmp221 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (tmp220, tmp222) ; ATS_FREE(tmp222) ; tmp198 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp198)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp198, atslab_0, ats_castfn_mac(ats_ptr_type, tmp221)) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: __ats_lab_111_1: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_112_1 ; } __ats_lab_111_2: tmp224 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* ats_ptr_type tmp226 ; */ tmp226 = __ats_fun_43_closure_make (arg0) ; tmp225 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (tmp224, tmp226) ; ATS_FREE(tmp226) ; tmp198 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp198)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp198, atslab_0, ats_castfn_mac(ats_ptr_type, tmp225)) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: __ats_lab_112_1: __ats_lab_112_2: tmp198 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp198)->tag = 16 ; ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_1, arg1) ; break ; } while (0) ; return (tmp198) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 13169(line=547, offs=3) -- 13380(line=558, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize: /* ats_int_type tmp229 ; */ tmp229 = 0 ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, arg1, (&tmp229)) ; return (tmp228) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 13458(line=564, offs=1) -- 16477(line=678, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_int_type, tmp231) ; ATSlocal (ats_int_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_bool_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_bool_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_bool_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_bool_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_bool_type, tmp256) ; ATSlocal (ats_int_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_bool_type, tmp260) ; ATSlocal (ats_int_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_bool_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_bool_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_bool_type, tmp275) ; ATSlocal (ats_int_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_int_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_bool_type, tmp285) ; ATSlocal (ats_int_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag: tmp231 = ats_ptrget_mac(ats_int_type, arg2) ; do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp230 = arg1 ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp232 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp232 ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_nonlin (arg0, arg1) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp233) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp230 = arg1 ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp230 = arg1 ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp230 = arg1 ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp230 = arg1 ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp234 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp234, arg2) ; tmp236 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp236) { tmp230 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp230)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp230, atslab_0, tmp235) ; } else { tmp230 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp237 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp238 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp237, arg2) ; tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp238, arg2) ; tmp241 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp241) { tmp230 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp230)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_0, tmp239) ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_1, tmp240) ; } else { tmp230 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp243 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp242, arg2) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp243, arg2) ; tmp246 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp246) { tmp230 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp230)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_0, tmp244) ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_1, tmp245) ; } else { tmp230 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp247 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp248 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp247, arg2) ; tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp248, arg2) ; tmp251 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp251) { tmp230 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp230)->tag = 9 ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_0, tmp249) ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_1, tmp250) ; } else { tmp230 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp252 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp252, arg2) ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp253, arg2) ; tmp256 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp256) { tmp230 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp230)->tag = 10 ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_0, tmp254) ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_1, tmp255) ; } else { tmp230 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)arg1)->tag != 11) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp257 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp258 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp258, arg2) ; tmp260 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp260) { tmp230 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp230)->tag = 11 ; ats_selptrset_mac(anairiats_sum_4, tmp230, atslab_0, tmp257) ; ats_selptrset_mac(anairiats_sum_4, tmp230, atslab_1, tmp259) ; } else { tmp230 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)arg1)->tag != 12) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp230 = arg1 ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp261 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp261 ; tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_nonlin (arg0, arg1) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp262) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)arg1)->tag != 14) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp263 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp264 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp264, arg2) ; tmp266 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp266) { tmp230 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp230)->tag = 14 ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_0, tmp263) ; ats_selptrset_mac(anairiats_sum_3, tmp230, atslab_1, tmp265) ; } else { tmp230 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp268 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3explst_lintize_flag (arg0, tmp267, arg2) ; tmp269 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp269) { tmp230 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp230)->tag = 15 ; ats_selptrset_mac(anairiats_sum_2, tmp230, atslab_0, tmp268) ; } else { tmp230 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)arg1)->tag != 16) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp270 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp271 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp270, arg2) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp271, arg2) ; tmp275 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp275) { tmp274 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp274)->tag = 16 ; ats_selptrset_mac(anairiats_sum_3, tmp274, atslab_0, tmp272) ; ats_selptrset_mac(anairiats_sum_3, tmp274, atslab_1, tmp273) ; } else { tmp274 = arg1 ; } /* end of [if] */ tmp276 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp276 ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_nonlin (arg0, tmp274) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp277) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)arg1)->tag != 17) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp278 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp278 ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_nonlin (arg0, arg1) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp279) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)arg1)->tag != 18) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp280 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp281 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp282 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp280, arg2) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3explst_lintize_flag (arg0, tmp281, arg2) ; tmp285 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp231) ; if (tmp285) { tmp284 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp284)->tag = 18 ; ats_selptrset_mac(anairiats_sum_3, tmp284, atslab_0, tmp282) ; ats_selptrset_mac(anairiats_sum_3, tmp284, atslab_1, tmp283) ; } else { tmp284 = arg1 ; } /* end of [if] */ tmp286 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp286 ; tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_nonlin (arg0, tmp284) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp287) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (((ats_sum_ptr_type)arg1)->tag != 19) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: tmp230 = arg1 ; break ; } while (0) ; return (tmp230) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_simplify.dats: 16558(line=684, offs=1) -- 16901(line=700, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3explst_lintize_flag (ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_int_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_bool_type, tmp294) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3explst_lintize_flag: tmp289 = ats_ptrget_mac(ats_int_type, arg2) ; do { /* branch: __ats_lab_133 */ __ats_lab_133_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp290 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3exp_lintize_flag (arg0, tmp290, arg2) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3explst_lintize_flag (arg0, tmp291, arg2) ; tmp294 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp289) ; if (tmp294) { tmp288 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_0, tmp292) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_1, tmp293) ; } else { tmp288 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_134_1: tmp288 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp288) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__s3explst_lintize_flag] */ /* 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_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_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_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_simplify_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_constraint3_simplify_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_dvar_dats.c0000644000175000017500000036347113431250607023641 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_p3at_loc ; ats_ptr_type atslab_p3at_node ; ats_ptr_type atslab_p3at_type ; ats_ptr_type atslab_p3at_dvaropt ; ats_ptr_type atslab_p3at_type_left ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_11 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_lvar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_vbox_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINdone_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__LABP3AT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trec_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tlst_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Terrpat_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_fin_none_some_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_fin_some_some_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_fin_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_lvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_vbox_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSlam_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSnil_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_lin2) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_agtz) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_dvaropt) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvaropt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_top) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_llamd2vs) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_lam) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_get_funarg) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_add_labp3atlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__d2vfin_check) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__d2varenv_push_v = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSset_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSlam_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSnil_2) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02047_ () ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_13 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_11 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type loop_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_21 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type auxlst_22 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type auxset_23 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type auxsetlst_24 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type loop_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_31 (ats_ptr_type arg0) ; static ats_void_type prerr_error3_loc_02053_ (ats_ptr_type arg0) ; static ats_void_type auxerr1_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr2_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type d2vfin_check_some_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_37 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2vfin_check_none_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_40 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_42 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_43 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2vfin_checked_44 (ats_ptr_type arg0) ; static ats_void_type auxvar_46 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxpatlst_47 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_interror_loc_02049_ (ats_ptr_type arg0) ; static ats_ptr_type p3at_get_var_50 (ats_ptr_type arg0) ; static ats_void_type d2vfin_unchecked_51 (ats_ptr_type arg0) ; static ats_void_type aux_invar_52 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_trans_53 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxlst_54 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp31) ; ATSstatic (ats_ptr_type, statmp34) ; ATSstatic (ats_ptr_type, statmp35) ; ATSstatic (ats_ptr_type, statmp36) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 1616(line=49, offs=18) -- 1649(line=49, offs=51) */ ATSstaticdec() ats_void_type prerr_FILENAME_02047_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02047_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_env_dvar")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02047_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 2206(line=86, offs=3) -- 3562(line=135, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (arg0, arg1) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (arg1) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp3 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp4 = tmp5 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg1) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp6, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar (tmp7) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp7) ; tmp11 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp11, atslab_0, tmp9) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr (arg1, tmp11) ; tmp4 = tmp9 ; break ; } while (0) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type (tmp4) ; tmp14 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp14, atslab_0, tmp12) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp14) ; tmp16 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp16, atslab_0, tmp12) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (arg1, tmp16) ; /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (arg1, -1) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_agtz (tmp4) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp18) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make (arg1, arg3) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp22, atslab_0, tmp20) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view (arg1, tmp22) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (arg2, tmp4) ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp25, atslab_0, tmp23) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp20, tmp25) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp2, tmp4) ; tmp28 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp28, atslab_0, tmp26) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp20, tmp28) ; tmp1 = tmp20 ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 3625(line=139, offs=3) -- 3689(line=140, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize_none (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize_none: tmp30 = (ats_sum_ptr_type)0 ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize (arg0, arg1, arg2, tmp30) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize_none] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp33 ; */ tmp33 = arg0 ; tmp32 = atspre_ref_make_elt_tsz ((&tmp33), sizeof(ats_ptr_type)) ; return (tmp32) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 4273(line=170, offs=22) -- 4366(line=174, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_top () { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_top: tmp38 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp31), atslab_1) ; tmp39 = ats_ptrget_mac(ats_ptr_type, tmp38) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize (tmp39) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_top] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 4437(line=177, offs=27) -- 4766(line=188, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_llamd2vs () { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_llamd2vs: tmp41 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp35), atslab_1) ; tmp42 = ats_ptrget_mac(ats_ptr_type, tmp41) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp42)->tag != 1) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp43 = &ats_caselptrlab_mac(anairiats_sum_3, tmp42, atslab_1) ; tmp44 = ats_ptrget_mac(ats_ptr_type, tmp43) ; tmp45 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp43) = tmp45 ; tmp40 = tmp44 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp42)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp40 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (((ats_sum_ptr_type)tmp42)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: tmp40 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp40) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_llamd2vs] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 4861(line=194, offs=3) -- 5095(line=205, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar: tmp47 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp31), atslab_1) ; tmp49 = ats_ptrget_mac(ats_ptr_type, tmp47) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add (tmp49, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp47) = tmp48 ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (arg0) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (tmp50 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_2, tmp50, atslab_0) ; tmp53 = ats_ptrget_mac(ats_ptr_type, tmp47) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add (tmp53, tmp51) ; ats_ptrget_mac(ats_ptr_type, tmp47) = tmp52 ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (tmp50 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: break ; } while (0) ; return /* (tmp46) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 5182(line=210, offs=7) -- 5443(line=217, offs=25) */ ATSstaticdec() ats_ptr_type loop_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab_loop_8: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp56 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add (arg0, tmp56) ; arg0 = tmp58 ; arg1 = tmp57 ; goto __ats_lab_loop_8 ; // tail call break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp55 = arg0 ; break ; } while (0) ; return (tmp55) ; } /* end of [loop_8] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 5163(line=209, offs=3) -- 5544(line=222, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvarlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvarlst: tmp59 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp31), atslab_1) ; tmp61 = ats_ptrget_mac(ats_ptr_type, tmp59) ; tmp60 = loop_8 (tmp61, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp59) = tmp60 ; return /* (tmp54) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 5615(line=226, offs=3) -- 5703(line=229, offs=18) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvaropt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvaropt: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (tmp63) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: break ; } while (0) ; return /* (tmp62) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvaropt] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_13 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab_loop_13: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp73 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: break ; } while (0) ; return /* (tmp72) */ ; } /* end of [loop_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp71) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp71 = */ loop_13 (arg0) ; return /* (tmp71) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 5862(line=238, offs=8) -- 6307(line=251, offs=11) */ ATSstaticdec() ats_ptr_type loop_11 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab_loop_11: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp66 ; tmp65 = tmp67 ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_15_0 ; } __ats_lab_12_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; ATS_FREE(arg0) ; /* tmp70 = */ list_vt_free_01499_ats_ptr_type (tmp68) ; arg0 = tmp69 ; arg1 = arg1 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil () ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp74 ; tmp65 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSnil_2) ; break ; } while (0) ; return (tmp65) ; } /* end of [loop_11] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 5795(line=236, offs=4) -- 6645(line=264, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop () { /* local vardec */ // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop: tmp75 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp31), atslab_1) ; tmp77 = ats_ptrget_mac(ats_ptr_type, tmp75) ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_free (tmp77) ; tmp78 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp35), atslab_1) ; tmp80 = ats_ptrget_mac(ats_ptr_type, tmp78) ; tmp79 = loop_11 (tmp80, tmp75) ; ats_ptrget_mac(ats_ptr_type, tmp78) = tmp79 ; return /* (tmp64) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 6725(line=269, offs=19) -- 7006(line=279, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_push () { /* local vardec */ // ATSlocal_void (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_push: tmp82 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp31), atslab_1) ; tmp83 = ats_ptrget_mac(ats_ptr_type, tmp82) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil () ; ats_ptrget_mac(ats_ptr_type, tmp82) = tmp84 ; tmp85 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp35), atslab_1) ; tmp87 = ats_ptrget_mac(ats_ptr_type, tmp85) ; tmp86 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp86)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp86, atslab_0, tmp83) ; ats_selptrset_mac(anairiats_sum_5, tmp86, atslab_1, tmp87) ; ats_ptrget_mac(ats_ptr_type, tmp85) = tmp86 ; return /* (tmp81) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_push] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 7070(line=282, offs=23) -- 7251(line=288, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_lam (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_lam: /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_push () ; /* tmp90 = ats_selsin_mac(tmp89, atslab_1) */ ; tmp91 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp35), atslab_1) ; tmp93 = (ats_sum_ptr_type)0 ; tmp94 = ats_ptrget_mac(ats_ptr_type, tmp91) ; tmp92 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp92)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp92, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp92, atslab_1, tmp93) ; ats_selptrset_mac(anairiats_sum_3, tmp92, atslab_2, tmp94) ; ats_ptrget_mac(ats_ptr_type, tmp91) = tmp92 ; return /* (tmp88) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_lam] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 7319(line=291, offs=23) -- 7344(line=291, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_let () { /* local vardec */ // ATSlocal_void (tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_let: /* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_push () ; return /* (tmp95) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_let] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 7436(line=295, offs=23) -- 7465(line=295, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_try () { /* local vardec */ // ATSlocal_void (tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_try: /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_lam (0) ; return /* (tmp96) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_try] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 7573(line=303, offs=5) -- 8295(line=330, offs=2) */ ATSstaticdec() ats_bool_type loop_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_bool_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab_loop_19: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_19_0 ; } __ats_lab_16_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp100 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp101 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp102 = atspre_gt_int_int (tmp99, 0) ; if (!tmp102) { goto __ats_lab_18_1 ; } tmp104 = ats_ptrget_mac(ats_ptr_type, tmp100) ; tmp103 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp103, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp103, atslab_1, tmp104) ; ats_ptrget_mac(ats_ptr_type, tmp100) = tmp103 ; tmp105 = ats_ptrget_mac(ats_ptr_type, tmp101) ; arg0 = tmp105 ; arg1 = arg1 ; goto __ats_lab_loop_19 ; // tail call break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp98 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp106 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp107 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp109 = ats_ptrget_mac(ats_ptr_type, tmp106) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem (tmp109, arg1) ; if (tmp108) { tmp98 = ats_true_bool ; } else { tmp110 = ats_ptrget_mac(ats_ptr_type, tmp107) ; arg0 = tmp110 ; arg1 = arg1 ; goto __ats_lab_loop_19 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp98 = ats_false_bool ; break ; } while (0) ; return (tmp98) ; } /* end of [loop_19] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 7533(line=301, offs=3) -- 8596(line=351, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_d2var_is_llamlocal (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp97) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_d2var_is_llamlocal: tmp111 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp31), atslab_1) ; tmp113 = ats_ptrget_mac(ats_ptr_type, tmp111) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem (tmp113, arg0) ; if (tmp112) { tmp97 = ats_true_bool ; } else { tmp114 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp35), atslab_1) ; tmp115 = ats_ptrget_mac(ats_ptr_type, tmp114) ; tmp97 = loop_19 (tmp115, arg0) ; } /* end of [if] */ return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_d2var_is_llamlocal] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 8722(line=359, offs=5) -- 9147(line=374, offs=4) */ ATSstaticdec() ats_void_type aux_21 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp117) ; ATSlocal (ats_int_type, tmp118) ; ATSlocal (ats_bool_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_aux_21: tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (arg0) ; tmp119 = atspre_gte_int_int (tmp118, 0) ; if (tmp119) { tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make (arg0, tmp118) ; tmp121 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp121, atslab_0, tmp120) ; ats_selptrset_mac(anairiats_sum_4, tmp121, atslab_1, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp121 ; } else { /* empty */ } /* end of [if] */ return /* (tmp117) */ ; } /* end of [aux_21] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 9171(line=376, offs=5) -- 9415(line=385, offs=2) */ ATSstaticdec() ats_void_type auxlst_22 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; // ATSlocal_void (tmp125) ; __ats_lab_auxlst_22: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp124 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp125 = */ aux_21 (tmp123, arg1) ; arg0 = tmp124 ; arg1 = arg1 ; goto __ats_lab_auxlst_22 ; // tail call break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: break ; } while (0) ; return /* (tmp122) */ ; } /* end of [auxlst_22] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 9445(line=387, offs=5) -- 9592(line=392, offs=4) */ ATSstaticdec() ats_void_type auxset_23 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab_auxset_23: tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize (arg0) ; /* tmp126 = */ auxlst_22 (tmp127, arg1) ; return /* (tmp126) */ ; } /* end of [auxset_23] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 9619(line=394, offs=5) -- 10044(line=414, offs=4) */ ATSstaticdec() ats_void_type auxsetlst_24 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_bool_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab_auxsetlst_24: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp129 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp130 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp132 = ats_ptrget_mac(ats_ptr_type, tmp129) ; /* tmp131 = */ auxset_23 (tmp132, arg1) ; tmp133 = ats_ptrget_mac(ats_ptr_type, tmp130) ; arg0 = tmp133 ; arg1 = arg1 ; goto __ats_lab_auxsetlst_24 ; // tail call break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp135 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp136 = atspre_gt_int_int (tmp134, 0) ; if (!tmp136) { goto __ats_lab_25_1 ; } tmp137 = ats_ptrget_mac(ats_ptr_type, tmp135) ; arg0 = tmp137 ; arg1 = arg1 ; goto __ats_lab_auxsetlst_24 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: break ; } while (0) ; return /* (tmp128) */ ; } /* end of [auxsetlst_24] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 8706(line=357, offs=3) -- 10509(line=435, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst: /* ats_ptr_type tmp138 ; */ tmp138 = (ats_sum_ptr_type)0 ; tmp139 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp31), atslab_1) ; tmp141 = ats_ptrget_mac(ats_ptr_type, tmp139) ; /* tmp140 = */ auxset_23 (tmp141, (&tmp138)) ; tmp142 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp35), atslab_1) ; tmp144 = ats_ptrget_mac(ats_ptr_type, tmp142) ; /* tmp143 = */ auxsetlst_24 (tmp144, (&tmp138)) ; tmp116 = tmp138 ; return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 10716(line=448, offs=3) -- 11731(line=501, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; // ATSlocal_void (tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; // ATSlocal_void (tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_dvaropt (arg0) ; /* tmp147 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvaropt (tmp146) ; tmp148 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p3at_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp148)->tag != 0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_7, tmp148, atslab_0) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (tmp149) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp148)->tag != 1) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp150 = ats_caselptrlab_mac(anairiats_sum_7, tmp148, atslab_0) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (tmp150) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp148)->tag != 2) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp151 = ats_caselptrlab_mac(anairiats_sum_8, tmp148, atslab_3) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst (tmp151) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp148)->tag != 17) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_5, tmp148, atslab_0) ; arg0 = tmp152 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp148)->tag != 3) { goto __ats_lab_31_0 ; } __ats_lab_30_1: break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp148)->tag != 4) { goto __ats_lab_32_0 ; } __ats_lab_31_1: break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp148)->tag != 5) { goto __ats_lab_33_0 ; } __ats_lab_32_1: break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp148)->tag != 6) { goto __ats_lab_34_0 ; } __ats_lab_33_1: break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp148)->tag != 7) { goto __ats_lab_35_0 ; } __ats_lab_34_1: break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp148)->tag != 8) { goto __ats_lab_36_0 ; } __ats_lab_35_1: break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp148)->tag != 9) { goto __ats_lab_37_0 ; } __ats_lab_36_1: break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp148)->tag != 10) { goto __ats_lab_38_0 ; } __ats_lab_37_1: break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp148)->tag != 11) { goto __ats_lab_39_0 ; } __ats_lab_38_1: break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp148)->tag != 12) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_9, tmp148, atslab_3) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_add_labp3atlst (tmp153) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp148)->tag != 13) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_3, tmp148, atslab_2) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst (tmp154) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp148)->tag != 14) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_5, tmp148, atslab_0) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_5, tmp148, atslab_1) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (tmp155) ; arg0 = tmp156 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp148)->tag != 15) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_5, tmp148, atslab_1) ; arg0 = tmp158 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp148)->tag != 16) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp159 = ats_caselptrlab_mac(anairiats_sum_7, tmp148, atslab_0) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (tmp159) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (((ats_sum_ptr_type)tmp148)->tag != 18) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: break ; } while (0) ; return /* (tmp145) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; // ATSlocal_void (tmp166) ; __ats_lab_loop_29: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp165 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; /* tmp166 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp164, arg2) ; arg0 = tmp165 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_29 ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: break ; } while (0) ; return /* (tmp163) */ ; } /* end of [loop_29] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp162) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp162 = */ loop_29 (arg0, arg1, arg2) ; return /* (tmp162) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp161) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp161 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp161) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 11804(line=505, offs=3) -- 11862(line=507, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp160) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst: /* tmp160 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at) ; return /* (tmp160) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 11974(line=513, offs=7) -- 12195(line=523, offs=8) */ ATSstaticdec() ats_void_type loop_31 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; // ATSlocal_void (tmp172) ; __ats_lab_loop_31: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_4, tmp169, atslab_1) ; /* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at (tmp171) ; arg0 = tmp170 ; goto __ats_lab_loop_31 ; // tail call break ; } while (0) ; return /* (tmp168) */ ; } /* end of [loop_31] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 11943(line=512, offs=3) -- 12241(line=525, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_add_labp3atlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp167) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_add_labp3atlst: /* tmp167 = */ loop_31 (arg0) ; return /* (tmp167) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__the_d2varenv_add_labp3atlst] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02053_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; __ats_lab_prerr_error3_loc_02053_: /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp176 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp176) */ ; } /* end of [prerr_error3_loc_02053_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 12479(line=544, offs=5) -- 12869(line=556, offs=2) */ ATSstaticdec() ats_void_type auxerr1_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab_auxerr1_33: /* tmp175 = */ prerr_error3_loc_02053_ (arg0) ; /* tmp178 = */ atspre_prerr_string (ATSstrcst(": the linear dynamic variable [")) ; /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp180 = */ atspre_prerr_string (ATSstrcst("] is preserved but with an incompatible type.")) ; /* tmp181 = */ atspre_prerr_newline () ; /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp183 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp183)->tag = 10 ; ats_selptrset_mac(anairiats_sum_5, tmp183, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp183, atslab_1, arg1) ; /* tmp174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp183) ; return /* (tmp174) */ ; } /* end of [auxerr1_33] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 12897(line=557, offs=5) -- 13309(line=569, offs=2) */ ATSstaticdec() ats_void_type auxerr2_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; __ats_lab_auxerr2_35: /* tmp185 = */ prerr_error3_loc_02053_ (arg0) ; /* tmp186 = */ atspre_prerr_string (ATSstrcst(": the linear dynamic variable [")) ; /* tmp187 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp188 = */ atspre_prerr_string (ATSstrcst("] needs to be consumed but it is preserved with the type [")) ; /* tmp189 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ; /* tmp190 = */ atspre_prerr_string (ATSstrcst("] instead.")) ; /* tmp191 = */ atspre_prerr_newline () ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp192)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp192, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp192, atslab_1, arg1) ; /* tmp184 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp192) ; return /* (tmp184) */ ; } /* end of [auxerr2_35] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 12399(line=539, offs=1) -- 15642(line=655, offs=4) */ ATSstaticdec() ats_void_type d2vfin_check_some_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_bool_type, tmp194) ; // ATSlocal_void (tmp195) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_bool_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_int_type, tmp202) ; // ATSlocal_void (tmp203) ; ATSlocal (ats_bool_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; // ATSlocal_void (tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_bool_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_int_type, tmp219) ; // ATSlocal_void (tmp220) ; ATSlocal (ats_bool_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; // ATSlocal_void (tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; // ATSlocal_void (tmp226) ; // ATSlocal_void (tmp227) ; ATSlocal (ats_int_type, tmp228) ; // ATSlocal_void (tmp229) ; ATSlocal (ats_bool_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; // ATSlocal_void (tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; __ats_lab_d2vfin_check_some_32: tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd (arg1) ; do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp193)->tag != 0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_lin2 (arg2) ; if (tmp194) { /* tmp195 = */ auxerr2_35 (arg0, arg1, arg2) ; } else { /* empty */ } /* end of [if] */ tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (arg1) ; tmp197 = atspre_gte_int_int (tmp196, 0) ; if (tmp197) { tmp198 = (ats_sum_ptr_type)0 ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp198) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp193)->tag != 1) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_7, tmp193, atslab_0) ; /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp201 = ats_selsin_mac(tmp200, atslab_1) */ ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (arg0, arg2, tmp199) ; tmp204 = atspre_gt_int_int (tmp202, 0) ; if (tmp204) { /* tmp203 = */ auxerr1_33 (arg0, arg1, arg2, tmp199) ; } else { /* empty */ } /* end of [if] */ tmp205 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp205)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp205, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp205, atslab_1, tmp199) ; ats_selptrset_mac(anairiats_sum_10, tmp205, atslab_2, arg2) ; /* tmp206 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp205) ; tmp207 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp207, atslab_0, tmp199) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp207) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp193)->tag != 2) { goto __ats_lab_54_0 ; } __ats_lab_51_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_7, tmp193, atslab_0) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp210 = ats_selsin_mac(tmp209, atslab_1) */ ; tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg2), atslab_s2exp_node) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp212)->tag != 12) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_0) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_1) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin (tmp213) ; if (tmp215) { tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0 (tmp213) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp216, tmp214) ; } else { tmp211 = arg2 ; } /* end of [if] */ break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: __ats_lab_53_1: tmp218 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 14625(line=619, offs=20) -- 14641(line=619, offs=36)", ATSstrcst("\n")) ; /* tmp217 = */ atspre_assert_errmsg (ats_false_bool, tmp218) ; tmp211 = arg2 ; break ; } while (0) ; tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (arg0, tmp211, tmp208) ; tmp221 = atspre_gt_int_int (tmp219, 0) ; if (tmp221) { /* tmp220 = */ auxerr1_33 (arg0, arg1, tmp211, tmp208) ; } else { /* empty */ } /* end of [if] */ tmp222 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp222)->tag = 5 ; ats_selptrset_mac(anairiats_sum_10, tmp222, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp222, atslab_1, tmp208) ; ats_selptrset_mac(anairiats_sum_10, tmp222, atslab_2, tmp211) ; /* tmp223 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp222) ; tmp224 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp224, atslab_0, tmp208) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp224) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp193)->tag != 3) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp225 = ats_caselptrlab_mac(anairiats_sum_7, tmp193, atslab_0) ; /* tmp226 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp227 = ats_selsin_mac(tmp226, atslab_1) */ ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (arg0, arg2, tmp225) ; tmp230 = atspre_gt_int_int (tmp228, 0) ; if (tmp230) { /* tmp229 = */ auxerr1_33 (arg0, arg1, arg2, tmp225) ; } else { /* empty */ } /* end of [if] */ tmp231 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp231)->tag = 6 ; ats_selptrset_mac(anairiats_sum_10, tmp231, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp231, atslab_1, tmp225) ; ats_selptrset_mac(anairiats_sum_10, tmp231, atslab_2, arg2) ; /* tmp232 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp231) ; tmp233 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp233, atslab_0, tmp225) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp233) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (((ats_sum_ptr_type)tmp193)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: break ; } while (0) ; return /* (tmp173) */ ; } /* end of [d2vfin_check_some_32] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 15746(line=663, offs=5) -- 16009(line=672, offs=2) */ ATSstaticdec() ats_void_type auxerr_37 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; __ats_lab_auxerr_37: /* tmp236 = */ prerr_error3_loc_02053_ (arg0) ; /* tmp237 = */ atspre_prerr_string (ATSstrcst(": the linear dynamic variable [")) ; /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp239 = */ atspre_prerr_string (ATSstrcst("] needs to be preserved but it is consumed instead.")) ; /* tmp235 = */ atspre_prerr_newline () ; return /* (tmp235) */ ; } /* end of [auxerr_37] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 15678(line=658, offs=1) -- 16848(line=702, offs=4) */ ATSstaticdec() ats_void_type d2vfin_check_none_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp234) ; ATSlocal (ats_ptr_type, tmp240) ; // ATSlocal_void (tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; // ATSlocal_void (tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; // ATSlocal_void (tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; __ats_lab_d2vfin_check_none_36: tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd (arg1) ; do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp240)->tag != 0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp240)->tag != 1) { goto __ats_lab_58_0 ; } __ats_lab_57_1: /* tmp241 = */ auxerr_37 (arg0, arg1) ; tmp242 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp242)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp242, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp242, atslab_1, arg1) ; /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp242) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp240)->tag != 2) { goto __ats_lab_59_0 ; } __ats_lab_58_1: /* tmp243 = */ auxerr_37 (arg0, arg1) ; tmp244 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp244)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp244, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp244, atslab_1, arg1) ; /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp244) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp240)->tag != 3) { goto __ats_lab_60_0 ; } __ats_lab_59_1: /* tmp245 = */ auxerr_37 (arg0, arg1) ; tmp246 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp246)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp246, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp246, atslab_1, arg1) ; /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp246) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (((ats_sum_ptr_type)tmp240)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: break ; } while (0) ; return /* (tmp234) */ ; } /* end of [d2vfin_check_none_36] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 16924(line=707, offs=14) -- 17301(line=731, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__d2vfin_check (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__d2vfin_check: tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg1) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (tmp248 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_2, tmp248, atslab_0) ; /* tmp247 = */ d2vfin_check_some_32 (arg0, arg1, tmp249) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (tmp248 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: /* tmp247 = */ d2vfin_check_none_36 (arg0, arg1) ; break ; } while (0) ; return /* (tmp247) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__d2vfin_check] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 17456(line=740, offs=5) -- 17679(line=748, offs=26) */ ATSstaticdec() ats_void_type loop_40 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; // ATSlocal_void (tmp254) ; __ats_lab_loop_40: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp252 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; ATS_FREE(arg1) ; /* tmp254 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__d2vfin_check (arg0, tmp252) ; arg0 = arg0 ; arg1 = tmp253 ; goto __ats_lab_loop_40 ; // tail call break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: break ; } while (0) ; return /* (tmp251) */ ; } /* end of [loop_40] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 17357(line=734, offs=20) -- 17748(line=753, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp250) ; ATSlocal (ats_ptr_type, tmp255) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check: tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_top () ; /* tmp250 = */ loop_40 (arg0, tmp255) ; return /* (tmp250) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 17837(line=759, offs=5) -- 18528(line=785, offs=4) */ ATSstaticdec() ats_void_type aux_42 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_bool_type, tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; // ATSlocal_void (tmp265) ; // ATSlocal_void (tmp266) ; // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; __ats_lab_aux_42: tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg1) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (tmp258 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp259 = ats_caselptrlab_mac(anairiats_sum_2, tmp258, atslab_0) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp259) ; if (tmp260) { /* tmp261 = */ prerr_error3_loc_02053_ (arg0) ; /* tmp262 = */ atspre_prerr_string (ATSstrcst(": the linear dynamic variable [")) ; /* tmp263 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp264 = */ atspre_prerr_string (ATSstrcst("] needs to be consumed but it is preserved with the type [")) ; /* tmp265 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp259) ; /* tmp266 = */ atspre_prerr_string (ATSstrcst("] instead.")) ; /* tmp267 = */ atspre_prerr_newline () ; tmp269 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 18364(line=777, offs=18) -- 18380(line=777, offs=34)", ATSstrcst("\n")) ; /* tmp268 = */ atspre_assert_errmsg (ats_false_bool, tmp269) ; /* tmp257 = */ ats_exit (1) ; } else { tmp270 = (ats_sum_ptr_type)0 ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp270) ; } /* end of [if] */ break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (tmp258 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: break ; } while (0) ; return /* (tmp257) */ ; } /* end of [aux_42] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 18552(line=787, offs=5) -- 18816(line=801, offs=2) */ ATSstaticdec() ats_void_type auxlst_43 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; // ATSlocal_void (tmp274) ; __ats_lab_auxlst_43: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; ATS_FREE(arg1) ; /* tmp274 = */ aux_42 (arg0, tmp272) ; arg0 = arg0 ; arg1 = tmp273 ; goto __ats_lab_auxlst_43 ; // tail call break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: break ; } while (0) ; return /* (tmp271) */ ; } /* end of [auxlst_43] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 17817(line=757, offs=3) -- 18894(line=805, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check_llam (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp256) ; ATSlocal (ats_ptr_type, tmp275) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check_llam: tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_get_llamd2vs () ; /* tmp256 = */ auxlst_43 (arg0, tmp275) ; return /* (tmp256) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check_llam] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 19008(line=815, offs=5) -- 19188(line=824, offs=4) */ ATSstaticdec() ats_void_type d2vfin_checked_44 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; __ats_lab_d2vfin_checked_44: tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd (arg0) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp277)->tag != 4) { goto __ats_lab_70_0 ; } __ats_lab_69_1: break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp278 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp278)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp278, atslab_0, tmp277) ; /* tmp276 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (arg0, tmp278) ; break ; } while (0) ; return /* (tmp276) */ ; } /* end of [d2vfin_checked_44] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 19365(line=835, offs=5) -- 19871(line=858, offs=4) */ ATSstaticdec() ats_void_type auxvar_46 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; // ATSlocal_void (tmp284) ; __ats_lab_auxvar_46: tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (arg1) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (tmp281 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp283 = ats_caselptrlab_mac(anairiats_sum_2, tmp281, atslab_0) ; tmp282 = tmp283 ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (tmp281 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: tmp282 = arg1 ; break ; } while (0) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__d2vfin_check (arg0, tmp282) ; /* tmp280 = */ d2vfin_checked_44 (tmp282) ; return /* (tmp280) */ ; } /* end of [auxvar_46] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 19898(line=861, offs=1) -- 20275(line=881, offs=4) */ ATSstaticdec() ats_void_type auxpatlst_47 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab_auxpatlst_47: do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_73_1: tmp286 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp287 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp289 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp286), atslab_p3at_node) ; do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp289)->tag != 1) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp290 = ats_caselptrlab_mac(anairiats_sum_7, tmp289, atslab_0) ; /* tmp288 = */ auxvar_46 (arg0, tmp290) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp289)->tag != 14) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp291 = ats_caselptrlab_mac(anairiats_sum_5, tmp289, atslab_0) ; /* tmp288 = */ auxvar_46 (arg0, tmp291) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: __ats_lab_76_1: break ; } while (0) ; arg0 = arg0 ; arg1 = tmp287 ; goto __ats_lab_auxpatlst_47 ; // tail call break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: break ; } while (0) ; return /* (tmp285) */ ; } /* end of [auxpatlst_47] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02049_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; // ATSlocal_void (tmp298) ; __ats_lab_prerr_interror_loc_02049_: /* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp297 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp298 = */ prerr_FILENAME_02047_ () ; /* tmp295 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp295) */ ; } /* end of [prerr_interror_loc_02049_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 19268(line=829, offs=21) -- 20678(line=901, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__funarg_d2vfin_check (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp279) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; // ATSlocal_void (tmp294) ; // ATSlocal_void (tmp299) ; // ATSlocal_void (tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__funarg_d2vfin_check: tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_get_funarg () ; do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (tmp292 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp293 = ats_caselptrlab_mac(anairiats_sum_2, tmp292, atslab_0) ; ATS_FREE(tmp292) ; /* tmp279 = */ auxpatlst_47 (arg0, tmp293) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (tmp292 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: /* tmp294 = */ prerr_interror_loc_02049_ (arg0) ; /* tmp299 = */ atspre_prerr_string (ATSstrcst(": funarg_d2vfin_check: there is no funarg.")) ; /* tmp300 = */ atspre_prerr_newline () ; tmp301 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 20631(line=899, offs=5) -- 20647(line=899, offs=21)", ATSstrcst("\n")) ; /* tmp279 = */ atspre_assert_errmsg (ats_false_bool, tmp301) ; break ; } while (0) ; return /* (tmp279) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__funarg_d2vfin_check] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 20921(line=916, offs=5) -- 21367(line=934, offs=4) */ ATSstaticdec() ats_ptr_type p3at_get_var_50 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; // ATSlocal_void (tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; // ATSlocal_void (tmp309) ; // ATSlocal_void (tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; __ats_lab_p3at_get_var_50: tmp304 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p3at_node) ; do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp304)->tag != 1) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp305 = ats_caselptrlab_mac(anairiats_sum_7, tmp304, atslab_0) ; tmp303 = tmp305 ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp304)->tag != 14) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_5, tmp304, atslab_0) ; tmp303 = tmp306 ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: __ats_lab_82_1: tmp308 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p3at_loc) ; /* tmp307 = */ prerr_interror_loc_02049_ (tmp308) ; /* tmp309 = */ atspre_prerr_string (ATSstrcst(": s2exp_wthtype_instantiate")) ; /* tmp310 = */ atspre_prerr_string (ATSstrcst(": p2at_get_var: the pattern is expected to be a variable.")) ; /* tmp311 = */ atspre_prerr_newline () ; tmp313 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 21275(line=929, offs=22) -- 21291(line=929, offs=38)", ATSstrcst("\n")) ; /* tmp312 = */ atspre_assert_errmsg (ats_false_bool, tmp313) ; /* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; return (tmp303) ; } /* end of [p3at_get_var_50] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 21400(line=936, offs=5) -- 21618(line=945, offs=4) */ ATSstaticdec() ats_void_type d2vfin_unchecked_51 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; __ats_lab_d2vfin_unchecked_51: tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd (arg0) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp315)->tag != 4) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp316 = ats_caselptrlab_mac(anairiats_sum_7, tmp315, atslab_0) ; /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (arg0, tmp316) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: __ats_lab_84_1: break ; } while (0) ; return /* (tmp314) */ ; } /* end of [d2vfin_unchecked_51] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 21655(line=947, offs=5) -- 21974(line=966, offs=4) */ ATSstaticdec() ats_void_type aux_invar_52 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_bool_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; __ats_lab_aux_invar_52: tmp318 = p3at_get_var_50 (arg1) ; do { /* branch: __ats_lab_85 */ __ats_lab_85_0: __ats_lab_85_1: tmp319 = atspre_eq_int_int (arg0, 0) ; if (!tmp319) { goto __ats_lab_86_1 ; } /* tmp317 = */ d2vfin_unchecked_51 (tmp318) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: __ats_lab_86_1: tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (tmp318) ; if (tmp320 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 21862(line=960, offs=9) -- 21916(line=963, offs=29)") ; } tmp321 = ats_caselptrlab_mac(anairiats_sum_2, tmp320, atslab_0) ; /* tmp317 = */ d2vfin_unchecked_51 (tmp321) ; break ; } while (0) ; return /* (tmp317) */ ; } /* end of [aux_invar_52] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 22004(line=968, offs=5) -- 22538(line=993, offs=4) */ ATSstaticdec() ats_void_type aux_trans_53 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_bool_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; __ats_lab_aux_trans_53: tmp323 = p3at_get_var_50 (arg1) ; do { /* branch: __ats_lab_87 */ __ats_lab_87_0: __ats_lab_87_1: tmp324 = atspre_eq_int_int (arg0, 0) ; if (!tmp324) { goto __ats_lab_88_1 ; } tmp325 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp325)->tag = 1 ; ats_selptrset_mac(anairiats_sum_7, tmp325, atslab_0, arg2) ; /* tmp322 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (tmp323, tmp325) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (tmp323) ; if (tmp326 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 22326(line=986, offs=9) -- 22364(line=986, offs=47)") ; } tmp327 = ats_caselptrlab_mac(anairiats_sum_2, tmp326, atslab_0) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp323) ; if (tmp328 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 22373(line=987, offs=9) -- 22411(line=987, offs=47)") ; } tmp329 = ats_caselptrlab_mac(anairiats_sum_2, tmp328, atslab_0) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (arg2, tmp329) ; tmp331 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp331)->tag = 1 ; ats_selptrset_mac(anairiats_sum_7, tmp331, atslab_0, tmp330) ; /* tmp322 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (tmp327, tmp331) ; break ; } while (0) ; return /* (tmp322) */ ; } /* end of [aux_trans_53] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 22568(line=995, offs=5) -- 23292(line=1025, offs=4) */ ATSstaticdec() ats_void_type auxlst_54 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp332) ; ATSlocal (ats_int_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; ATSlocal (ats_int_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; // ATSlocal_void (tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; __ats_lab_auxlst_54: do { /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp333 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp334 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp335 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_2) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 22733(line=1005, offs=9) -- 22761(line=1005, offs=37)") ; } tmp336 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp337 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp338 = */ aux_invar_52 (tmp333, tmp336, tmp334) ; arg0 = arg0 ; arg1 = tmp337 ; arg2 = tmp335 ; goto __ats_lab_auxlst_54 ; // tail call break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp340 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_2) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 22948(line=1012, offs=9) -- 22976(line=1012, offs=37)") ; } tmp342 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp343 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp344 = */ aux_trans_53 (tmp339, tmp342, tmp340) ; arg0 = arg0 ; arg1 = tmp343 ; arg2 = tmp341 ; goto __ats_lab_auxlst_54 ; // tail call break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp345 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_0) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 23154(line=1019, offs=9) -- 23182(line=1019, offs=37)") ; } tmp346 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; arg0 = arg0 ; arg1 = tmp346 ; arg2 = tmp345 ; goto __ats_lab_auxlst_54 ; // tail call break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (((ats_sum_ptr_type)arg2)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: break ; } while (0) ; return /* (tmp332) */ ; } /* end of [auxlst_54] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 20795(line=908, offs=27) -- 23745(line=1048, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_wthtype_instantiate (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_int_type, tmp347) ; ATSlocal (anairiats_rec_1, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; // ATSlocal_void (tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; // ATSlocal_void (tmp357) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_wthtype_instantiate: /* ats_int_type tmp347 ; */ tmp347 = 0 ; tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all (arg1, arg0, (&tmp347)) ; tmp349 = ats_select_mac(tmp348, atslab_0) ; tmp350 = ats_select_mac(tmp348, atslab_1) ; /* tmp351 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp350) ; tmp352 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp349), atslab_s2exp_node) ; do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp352)->tag != 31) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp353 = ats_caselptrlab_mac(anairiats_sum_5, tmp352, atslab_0) ; tmp354 = ats_caselptrlab_mac(anairiats_sum_5, tmp352, atslab_1) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_get_funarg () ; if (tmp355 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_dvar.dats: 23527(line=1038, offs=9) -- 23605(line=1040, offs=6)") ; } tmp356 = ats_caselptrlab_mac(anairiats_sum_2, tmp355, atslab_0) ; ATS_FREE(tmp355) ; /* tmp357 = */ auxlst_54 (arg0, tmp356, tmp354) ; tmp302 = tmp353 ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: __ats_lab_94_1: tmp302 = tmp349 ; break ; } while (0) ; return (tmp302) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_wthtype_instantiate] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSset_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSlam_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSnil_2.tag = 2 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp31, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp34, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp35, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp36, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil () ; statmp31 = ref_01088_ats_ptr_type (statmp34) ; statmp36 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_dvar_2edats__LD2VSnil_2) ; statmp35 = ref_01088_ats_ptr_type (statmp36) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_dvar_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_constraint3_icnstr_dats.c0000644000175000017500000014547213431250607024373 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_add_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_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_ilte) (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_int_type, atspre_imax) (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_size) (ats_size_type, 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_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3exp) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__sasp__s2varindmap = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_int_type cmp_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type cmp_1_closure_make () ; static ats_int_type cmp_1_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type compare_key_key_04580_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_02079_ats_ptr_type_2cats_int_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_02132_ats_ptr_type_2cats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_02107_ats_ptr_type_2cats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_5 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_clo_ptr_type insert_5_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type insert_5_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_bool_type linmap_insert_04589_ats_ptr_type_2cats_int_type (ats_ref_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) ; static ats_int_type loop_3 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type linmap_make_nil_04581_ () ; static ats_ptr_type search_14 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type search_14_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type search_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type linmap_search_ref_04587_ats_ptr_type_2cats_int_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type linmap_search_04586_ats_ptr_type_2cats_int_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; static ats_void_type _free_17 (ats_ptr_type arg0) ; static ats_void_type linmap_free_04598_ats_ptr_type_2cats_int_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 1625(line=51, offs=18) -- 1661(line=51, offs=54) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_constraint3_icnstr")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 2193(line=82, offs=4) -- 2268(line=84, offs=47) */ ATSstaticdec() ats_int_type cmp_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; __ats_lab_cmp_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ; return (tmp1) ; } /* end of [cmp_1] */ typedef struct { ats_fun_ptr_type closure_fun ; } cmp_1_closure_type ; ats_int_type cmp_1_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return cmp_1 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type cmp_1_closure_init (cmp_1_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&cmp_1_clofun ; return ; } /* end of function */ ats_clo_ptr_type cmp_1_closure_make () { cmp_1_closure_type *p_clo = ATS_MALLOC(sizeof(cmp_1_closure_type)) ; cmp_1_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 2008(line=61, offs=17) -- 2036(line=61, offs=45) */ ATSstaticdec() ats_int_type compare_key_key_04580_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp16) ; __ats_lab_compare_key_key_04580_ats_ptr_type: tmp16 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp16) ; } /* end of [compare_key_key_04580_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3769(line=134, offs=24) -- 3876(line=135, offs=69) */ ATSstaticdec() ats_int_type avltree_height_02079_ats_ptr_type_2cats_int_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_int_type, tmp22) ; __ats_lab_avltree_height_02079_ats_ptr_type_2cats_int_type: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp21 = tmp22 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp21 = 0 ; break ; } while (0) ; return (tmp21) ; } /* end of [avltree_height_02079_ats_ptr_type_2cats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 7405(line=276, offs=32) -- 8902(line=325, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_02132_ats_ptr_type_2cats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_int_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_int_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_int_type, tmp44) ; ATSlocal (ats_int_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_int_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_int_type, tmp54) ; ATSlocal (ats_int_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_int_type, tmp57) ; ATSlocal (ats_int_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_avltree_rrotate_02132_ats_ptr_type_2cats_int_type: tmp32 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp32 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp33 = &ats_caselptrlab_mac(anairiats_sum_3, tmp32, atslab_0) ; tmp34 = &ats_caselptrlab_mac(anairiats_sum_3, tmp32, atslab_3) ; tmp35 = &ats_caselptrlab_mac(anairiats_sum_3, tmp32, atslab_4) ; tmp37 = ats_ptrget_mac(ats_ptr_type, tmp34) ; tmp36 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp37) ; tmp39 = ats_ptrget_mac(ats_ptr_type, tmp35) ; tmp38 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp39) ; tmp41 = atspre_iadd (tmp36, 0) ; tmp40 = atspre_igte (tmp41, tmp38) ; if (tmp40) { tmp42 = atspre_iadd (tmp38, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp42 ; tmp43 = ats_ptrget_mac(ats_ptr_type, tmp35) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp43 ; tmp45 = atspre_imax (tmp36, tmp42) ; tmp44 = atspre_iadd (1, tmp45) ; ats_ptrget_mac(ats_int_type, tmp33) = tmp44 ; ats_ptrget_mac(ats_ptr_type, tmp35) = arg5 ; tmp31 = tmp32 ; } else { tmp46 = ats_ptrget_mac(ats_ptr_type, tmp35) ; // if (tmp46 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp47 = &ats_caselptrlab_mac(anairiats_sum_3, tmp46, atslab_0) ; tmp48 = &ats_caselptrlab_mac(anairiats_sum_3, tmp46, atslab_3) ; tmp49 = &ats_caselptrlab_mac(anairiats_sum_3, tmp46, atslab_4) ; tmp51 = ats_ptrget_mac(ats_ptr_type, tmp48) ; tmp50 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp51) ; tmp53 = ats_ptrget_mac(ats_ptr_type, tmp49) ; tmp52 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp53) ; tmp55 = atspre_imax (tmp52, arg3) ; tmp54 = atspre_iadd (1, tmp55) ; ats_ptrget_mac(ats_int_type, arg0) = tmp54 ; tmp56 = ats_ptrget_mac(ats_ptr_type, tmp49) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp56 ; tmp58 = atspre_imax (tmp36, tmp50) ; tmp57 = atspre_iadd (1, tmp58) ; ats_ptrget_mac(ats_int_type, tmp33) = tmp57 ; tmp59 = ats_ptrget_mac(ats_ptr_type, tmp48) ; ats_ptrget_mac(ats_ptr_type, tmp35) = tmp59 ; ats_ptrget_mac(ats_int_type, tmp47) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp48) = tmp32 ; ats_ptrget_mac(ats_ptr_type, tmp49) = arg5 ; tmp31 = tmp46 ; } /* end of [if] */ return (tmp31) ; } /* end of [avltree_rrotate_02132_ats_ptr_type_2cats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5694(line=219, offs=32) -- 7221(line=268, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_02107_ats_ptr_type_2cats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; ATSlocal (ats_int_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_int_type, tmp84) ; ATSlocal (ats_int_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_int_type, tmp94) ; ATSlocal (ats_int_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_int_type, tmp97) ; ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab_avltree_lrotate_02107_ats_ptr_type_2cats_int_type: tmp72 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp72 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp73 = &ats_caselptrlab_mac(anairiats_sum_3, tmp72, atslab_0) ; tmp74 = &ats_caselptrlab_mac(anairiats_sum_3, tmp72, atslab_3) ; tmp75 = &ats_caselptrlab_mac(anairiats_sum_3, tmp72, atslab_4) ; tmp77 = ats_ptrget_mac(ats_ptr_type, tmp74) ; tmp76 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp77) ; tmp79 = ats_ptrget_mac(ats_ptr_type, tmp75) ; tmp78 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp79) ; tmp81 = atspre_iadd (tmp78, 0) ; tmp80 = atspre_ilte (tmp76, tmp81) ; if (tmp80) { tmp82 = atspre_iadd (tmp76, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp82 ; tmp83 = ats_ptrget_mac(ats_ptr_type, tmp74) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp83 ; tmp85 = atspre_imax (tmp82, tmp78) ; tmp84 = atspre_iadd (1, tmp85) ; ats_ptrget_mac(ats_int_type, tmp73) = tmp84 ; ats_ptrget_mac(ats_ptr_type, tmp74) = arg5 ; tmp71 = tmp72 ; } else { tmp86 = ats_ptrget_mac(ats_ptr_type, tmp74) ; // if (tmp86 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp87 = &ats_caselptrlab_mac(anairiats_sum_3, tmp86, atslab_0) ; tmp88 = &ats_caselptrlab_mac(anairiats_sum_3, tmp86, atslab_3) ; tmp89 = &ats_caselptrlab_mac(anairiats_sum_3, tmp86, atslab_4) ; tmp91 = ats_ptrget_mac(ats_ptr_type, tmp88) ; tmp90 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp91) ; tmp93 = ats_ptrget_mac(ats_ptr_type, tmp89) ; tmp92 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp93) ; tmp95 = atspre_imax (arg1, tmp90) ; tmp94 = atspre_iadd (1, tmp95) ; ats_ptrget_mac(ats_int_type, arg0) = tmp94 ; tmp96 = ats_ptrget_mac(ats_ptr_type, tmp88) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp96 ; tmp98 = atspre_imax (tmp92, tmp78) ; tmp97 = atspre_iadd (1, tmp98) ; ats_ptrget_mac(ats_int_type, tmp73) = tmp97 ; tmp99 = ats_ptrget_mac(ats_ptr_type, tmp89) ; ats_ptrget_mac(ats_ptr_type, tmp74) = tmp99 ; ats_ptrget_mac(ats_int_type, tmp87) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp88) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp89) = tmp72 ; tmp71 = tmp86 ; } /* end of [if] */ return (tmp71) ; } /* end of [avltree_lrotate_02107_ats_ptr_type_2cats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 9023(line=333, offs=5) -- 11023(line=394, offs=4) */ ATSstaticdec() ats_bool_type insert_5 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_int_type, tmp20) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; ATSlocal (ats_int_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_bool_type, tmp60) ; ATSlocal (ats_bool_type, tmp61) ; ATSlocal (ats_int_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_int_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_int_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_int_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab_insert_5: do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_1_1: tmp10 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp11 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp12 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp13 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp14 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp17 = ats_ptrget_mac(ats_ptr_type, tmp11) ; tmp15 = compare_key_key_04580_ats_ptr_type (env0, tmp17, env1) ; tmp18 = atspre_lt_int_int (tmp15, 0) ; if (tmp18) { tmp19 = insert_5 (env0, env1, tmp13, arg1, arg2) ; tmp23 = ats_ptrget_mac(ats_ptr_type, tmp13) ; tmp20 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp23) ; tmp25 = ats_ptrget_mac(ats_ptr_type, tmp14) ; tmp24 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp25) ; tmp27 = atspre_isub (tmp20, tmp24) ; tmp26 = atspre_ilte (tmp27, 1) ; if (tmp26) { tmp29 = atspre_imax (tmp20, tmp24) ; tmp28 = atspre_iadd (1, tmp29) ; ats_ptrget_mac(ats_int_type, tmp10) = tmp28 ; tmp9 = tmp19 ; } else { tmp30 = avltree_rrotate_02132_ats_ptr_type_2cats_int_type (tmp10, tmp20, tmp13, tmp24, tmp14, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp30 ; tmp9 = tmp19 ; } /* end of [if] */ } else { tmp60 = atspre_gt_int_int (tmp15, 0) ; if (tmp60) { tmp61 = insert_5 (env0, env1, tmp14, arg1, arg2) ; tmp63 = ats_ptrget_mac(ats_ptr_type, tmp13) ; tmp62 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp63) ; tmp65 = ats_ptrget_mac(ats_ptr_type, tmp14) ; tmp64 = avltree_height_02079_ats_ptr_type_2cats_int_type (tmp65) ; tmp67 = atspre_isub (tmp64, tmp62) ; tmp66 = atspre_ilte (tmp67, 1) ; if (tmp66) { tmp69 = atspre_imax (tmp62, tmp64) ; tmp68 = atspre_iadd (1, tmp69) ; ats_ptrget_mac(ats_int_type, tmp10) = tmp68 ; tmp9 = tmp61 ; } else { tmp70 = avltree_lrotate_02107_ats_ptr_type_2cats_int_type (tmp10, tmp62, tmp13, tmp64, tmp14, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp70 ; tmp9 = tmp61 ; } /* end of [if] */ } else { tmp100 = ats_ptrget_mac(ats_int_type, tmp12) ; ats_ptrget_mac(ats_int_type, arg2) = tmp100 ; ats_ptrget_mac(ats_int_type, tmp12) = arg1 ; tmp9 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: tmp102 = (ats_sum_ptr_type)0 ; tmp103 = (ats_sum_ptr_type)0 ; tmp101 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp101, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_3, tmp101, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_3, tmp101, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp101, atslab_3, tmp102) ; ats_selptrset_mac(anairiats_sum_3, tmp101, atslab_4, tmp103) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp101 ; tmp9 = ats_false_bool ; break ; } while (0) ; return (tmp9) ; } /* end of [insert_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_5_closure_type ; ats_bool_type insert_5_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { return insert_5 (((insert_5_closure_type*)cloptr)->closure_env_0, ((insert_5_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type insert_5_closure_init (insert_5_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_5_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_5_closure_type *p_clo = ATS_MALLOC(sizeof(insert_5_closure_type)) ; insert_5_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 8988(line=331, offs=3) -- 11078(line=400, offs=4) */ ATSstaticdec() ats_bool_type linmap_insert_04589_ats_ptr_type_2cats_int_type (ats_ref_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp8) ; __ats_lab_linmap_insert_04589_ats_ptr_type_2cats_int_type: tmp8 = insert_5 (arg1, arg3, arg0, arg2, arg4) ; return (tmp8) ; } /* end of [linmap_insert_04589_ats_ptr_type_2cats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 2382(line=94, offs=5) -- 2825(line=107, offs=41) */ ATSstaticdec() ats_int_type loop_3 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; __ats_lab_loop_3: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_0_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp5 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; /* ats_int_type tmp6 ; */ tmp7 = linmap_insert_04589_ats_ptr_type_2cats_int_type (arg2, tmp4, arg1, cmp_1_closure_make (), (&tmp6)) ; tmp104 = ats_ptrget_mac(ats_ptr_type, tmp5) ; tmp105 = atspre_iadd (arg1, 1) ; arg0 = tmp104 ; arg1 = tmp105 ; arg2 = arg2 ; goto __ats_lab_loop_3 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp3 = arg1 ; break ; } while (0) ; return (tmp3) ; } /* end of [loop_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3005(line=103, offs=29) -- 3014(line=103, offs=38) */ ATSstaticdec() ats_ptr_type linmap_make_nil_04581_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; __ats_lab_linmap_make_nil_04581_: tmp107 = (ats_sum_ptr_type)0 ; return (tmp107) ; } /* end of [linmap_make_nil_04581_] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 2324(line=90, offs=7) -- 2942(line=116, offs=4) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_make (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp2) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_int_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_make: /* ats_ptr_type tmp106 ; */ tmp106 = linmap_make_nil_04581_ () ; tmp108 = loop_3 (arg0, 0, (&tmp106)) ; tmp2.atslab_0 = tmp106 ; tmp2.atslab_1 = tmp108 ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_make] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4545(line=168, offs=7) -- 5110(line=188, offs=6) */ ATSstaticdec() ats_ptr_type search_14 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_int_type, tmp120) ; ATSlocal (ats_bool_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_bool_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab_search_14: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_6_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp117 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp118 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp119 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_4) ; tmp120 = compare_key_key_04580_ats_ptr_type (env0, tmp116, env1) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp121 = atspre_lt_int_int (tmp120, 0) ; if (!tmp121) { goto __ats_lab_8_1 ; } tmp122 = ats_ptrget_mac(ats_ptr_type, tmp118) ; arg0 = tmp122 ; goto __ats_lab_search_14 ; // tail call break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp123 = atspre_gt_int_int (tmp120, 0) ; if (!tmp123) { goto __ats_lab_9_1 ; } tmp124 = ats_ptrget_mac(ats_ptr_type, tmp119) ; arg0 = tmp124 ; goto __ats_lab_search_14 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp115 = tmp117 ; break ; } while (0) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp115 = atspre_null_ptr ; break ; } while (0) ; return (tmp115) ; } /* end of [search_14] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } search_14_closure_type ; ats_ptr_type search_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return search_14 (((search_14_closure_type*)cloptr)->closure_env_0, ((search_14_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type search_14_closure_init (search_14_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&search_14_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type search_14_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { search_14_closure_type *p_clo = ATS_MALLOC(sizeof(search_14_closure_type)) ; search_14_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4505(line=167, offs=3) -- 5131(line=189, offs=2) */ ATSstaticdec() ats_ptr_type linmap_search_ref_04587_ats_ptr_type_2cats_int_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; __ats_lab_linmap_search_ref_04587_ats_ptr_type_2cats_int_type: tmp114 = search_14 (arg1, arg2, arg0) ; return (tmp114) ; } /* end of [linmap_search_ref_04587_ats_ptr_type_2cats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4021(line=145, offs=3) -- 4437(line=162, offs=4) */ ATSstaticdec() ats_bool_type linmap_search_04586_ats_ptr_type_2cats_int_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_bool_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; __ats_lab_linmap_search_04586_ats_ptr_type_2cats_int_type: tmp113 = linmap_search_ref_04587_ats_ptr_type_2cats_int_type (arg0, arg1, arg2) ; tmp125 = atspre_pgt (tmp113, atspre_null_ptr) ; if (tmp125) { tmp126 = ats_ptrget_mac(ats_int_type, tmp113) ; ats_ptrget_mac(ats_int_type, arg3) = tmp126 ; tmp112 = ats_true_bool ; } else { tmp112 = ats_false_bool ; } /* end of [if] */ return (tmp112) ; } /* end of [linmap_search_04586_ats_ptr_type_2cats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 3006(line=120, offs=7) -- 3299(line=130, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_int_type, tmp110) ; ATSlocal (ats_bool_type, tmp111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find: /* ats_int_type tmp110 ; */ tmp111 = linmap_search_04586_ats_ptr_type_2cats_int_type (arg0, arg1, cmp_1_closure_make (), (&tmp110)) ; if (tmp111) { tmp109 = atspre_iadd (tmp110, 1) ; } else { tmp109 = 0 ; } /* end of [if] */ return (tmp109) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20597(line=699, offs=7) -- 20733(line=701, offs=65) */ ATSstaticdec() ats_void_type _free_17 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; // ATSlocal_void (tmp132) ; __ats_lab__free_17: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_4) ; ATS_FREE(arg0) ; /* tmp132 = */ _free_17 (tmp130) ; arg0 = tmp131 ; goto __ats_lab__free_17 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: break ; } while (0) ; return /* (tmp129) */ ; } /* end of [_free_17] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20567(line=698, offs=13) -- 20755(line=703, offs=2) */ ATSstaticdec() ats_void_type linmap_free_04598_ats_ptr_type_2cats_int_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp128) ; __ats_lab_linmap_free_04598_ats_ptr_type_2cats_int_type: /* tmp128 = */ _free_17 (arg0) ; return /* (tmp128) */ ; } /* end of [linmap_free_04598_ats_ptr_type_2cats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 3352(line=133, offs=18) -- 3380(line=133, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_free: /* tmp127 = */ linmap_free_04598_ats_ptr_type_2cats_int_type (arg0) ; return /* (tmp127) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_free] */ /* 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_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_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_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_constraint3_icnstr_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_dats.c0000644000175000017500000032633013431250607022122 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_sp2at_loc ; ats_ptr_type atslab_sp2at_exp ; ats_ptr_type atslab_sp2at_node ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { anairiats_rec_5 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_uint_type atslab_0 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_s2exparg_loc ; ats_ptr_type atslab_s2exparg_node ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_t2mpmarg_loc ; ats_ptr_type atslab_t2mpmarg_arg ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_s2tavar_loc ; ats_ptr_type atslab_s2tavar_var ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_s2aspdec_loc ; ats_ptr_type atslab_s2aspdec_cst ; ats_ptr_type atslab_s2aspdec_def ; } anairiats_rec_17 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt1_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_int_of_char) (ats_char_type) ; ATSextern_fun(ats_int_type, atspre_int_of_uchar) (ats_uchar_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, 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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil) (ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall) (ats_uint_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_union) (ats_uint_type, ats_uint_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_float) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_string) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset) (ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all) ; /* internal function declarations */ static ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type aux_70 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp217) ; ATSstatic (ats_ptr_type, statmp218) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 1985(line=80, offs=17) -- 2043(line=81, offs=51) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_box (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_box: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp0 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp0 = ats_false_bool ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_box] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 2103(line=85, offs=20) -- 2165(line=86, offs=55) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxlin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxlin: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp1 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp1 = ats_false_bool ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxlin] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 2227(line=90, offs=19) -- 2319(line=94, offs=67) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp2 = ats_true_bool ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp2 = ats_true_bool ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp2 = ats_false_bool ; break ; } while (0) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 2409(line=101, offs=19) -- 2558(line=108, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp3 = ats_true_bool ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp3 = ats_true_bool ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp3 = ats_true_bool ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp3 = ats_false_bool ; break ; } while (0) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 2618(line=111, offs=20) -- 2682(line=113, offs=55) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp4 = ats_true_bool ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp4 = ats_false_bool ; break ; } while (0) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 2773(line=119, offs=22) -- 2943(line=127, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_nameless (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_nameless: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp5 = ats_true_bool ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp5 = ats_true_bool ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp5 = ats_true_bool ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp5 = ats_false_bool ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)arg0)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp5 = ats_false_bool ; break ; } while (0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_nameless] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 3043(line=135, offs=3) -- 3430(line=154, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_23_1 ; } __ats_lab_18_2: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_20_0 ; } __ats_lab_19_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_23_1 ; } __ats_lab_19_2: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_21_0 ; } __ats_lab_20_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_23_1 ; } __ats_lab_20_2: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_22_0 ; } __ats_lab_21_1: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_23_1 ; } __ats_lab_21_2: tmp7 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp8 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp (tmp7, tmp8) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_23_0 ; } __ats_lab_22_1: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_23_1 ; } __ats_lab_22_2: tmp9 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp10 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp6 = atspre_eq_string_string (tmp9, tmp10) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: __ats_lab_23_2: tmp6 = ats_false_bool ; break ; } while (0) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 3503(line=158, offs=3) -- 3561(line=160, offs=42) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_tyreckind_tyreckind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_bool_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_tyreckind_tyreckind: tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (arg0, arg1) ; tmp11 = atspre_neg_bool (tmp12) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_tyreckind_tyreckind] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab_loop_11: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp19 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp20 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp18, arg3) ; tmp21 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp21, atslab_0, tmp20) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp21 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp22 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp19 ; arg1 = arg1 ; arg2 = tmp22 ; arg3 = arg3 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp23 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp23 ; break ; } while (0) ; return /* (tmp17) */ ; } /* end of [loop_11] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp24) ; // ATSlocal_void (tmp25) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp24 ; */ /* tmp25 = */ loop_11 (arg0, arg1, (&tmp24), arg2) ; tmp16 = tmp24 ; return (tmp16) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp15 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp15) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 3645(line=167, offs=3) -- 3846(line=178, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con: tmp14 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (arg1, ats_castfn_mac(ats_ptr_type, tmp14)) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp27, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp27, atslab_1, arg2) ; tmp13 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp13, atslab_sp2at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_4, tmp13, atslab_sp2at_exp, tmp26) ; ats_selptrset_mac(anairiats_rec_4, tmp13, atslab_sp2at_node, tmp27) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 3890(line=181, offs=11) -- 4039(line=187, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err: tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp29) ; tmp31 = (ats_sum_ptr_type)0 ; tmp28 = ATS_MALLOC(sizeof(anairiats_rec_4)) ; ats_selptrset_mac(anairiats_rec_4, tmp28, atslab_sp2at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_4, tmp28, atslab_sp2at_exp, tmp30) ; ats_selptrset_mac(anairiats_rec_4, tmp28, atslab_sp2at_node, tmp31) ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 4107(line=193, offs=3) -- 4157(line=195, offs=2) */ ATSglobaldec() anairiats_rec_5 _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (anairiats_rec_5, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make: tmp32.atslab_s2qua_svs = arg0 ; tmp32.atslab_s2qua_sps = arg1 ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 4349(line=207, offs=11) -- 4409(line=209, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int: tmp35 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp35)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp35, atslab_0, arg0) ; tmp34 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp34, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ats_selptrset_mac(anairiats_rec_6, tmp34, atslab_s2exp_node, tmp35) ; tmp33 = ats_castfn_mac(ats_ptr_type, tmp34) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 4455(line=211, offs=14) -- 4518(line=213, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf: tmp38 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp38)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp38, atslab_0, arg0) ; tmp37 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp37, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ats_selptrset_mac(anairiats_rec_6, tmp37, atslab_s2exp_node, tmp38) ; tmp36 = ats_castfn_mac(ats_ptr_type, tmp37) ; return (tmp36) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 4569(line=215, offs=16) -- 4599(line=215, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char (ats_char_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_int_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char: tmp40 = atspre_int_of_char (arg0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp40) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 4628(line=217, offs=17) -- 4659(line=217, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_uchar (ats_uchar_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_uchar: tmp42 = atspre_int_of_uchar (arg0) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp42) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_uchar] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 4708(line=223, offs=3) -- 4775(line=225, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float: tmp45 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp45)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp45, atslab_0, arg0) ; tmp44 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp44, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_float) ; ats_selptrset_mac(anairiats_rec_6, tmp44, atslab_s2exp_node, tmp45) ; tmp43 = ats_castfn_mac(ats_ptr_type, tmp44) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 4850(line=231, offs=3) -- 4919(line=233, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string: tmp48 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp48)->tag = 3 ; ats_selptrset_mac(anairiats_sum_2, tmp48, atslab_0, arg0) ; tmp47 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp47, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_string) ; ats_selptrset_mac(anairiats_rec_6, tmp47, atslab_s2exp_node, tmp48) ; tmp46 = ats_castfn_mac(ats_ptr_type, tmp47) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 4990(line=238, offs=11) -- 5092(line=242, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst: tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ; tmp52 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp52)->tag = 4 ; ats_selptrset_mac(anairiats_sum_2, tmp52, atslab_0, arg0) ; tmp51 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp51, atslab_s2exp_srt, tmp50) ; ats_selptrset_mac(anairiats_rec_6, tmp51, atslab_s2exp_node, tmp52) ; tmp49 = ats_castfn_mac(ats_ptr_type, tmp51) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 5136(line=245, offs=11) -- 5238(line=249, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var: tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ; tmp56 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp56)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp56, atslab_0, arg0) ; tmp55 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp55, atslab_s2exp_srt, tmp54) ; ats_selptrset_mac(anairiats_rec_6, tmp55, atslab_s2exp_node, tmp56) ; tmp53 = ats_castfn_mac(ats_ptr_type, tmp55) ; return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 5335(line=256, offs=2) -- 5399(line=258, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var_srt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var_srt: tmp59 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp59)->tag = 7 ; ats_selptrset_mac(anairiats_sum_2, tmp59, atslab_0, arg1) ; tmp58 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp58, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp58, atslab_s2exp_node, tmp59) ; tmp57 = ats_castfn_mac(ats_ptr_type, tmp58) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 5447(line=261, offs=11) -- 5569(line=265, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var: tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt (arg0) ; tmp62 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp62)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp62, atslab_0, arg0) ; tmp60 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp60, atslab_s2exp_srt, tmp61) ; ats_selptrset_mac(anairiats_rec_6, tmp60, atslab_s2exp_node, tmp62) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 5614(line=268, offs=12) -- 5718(line=272, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole: tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_srt (arg0) ; tmp66 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp66)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp66, atslab_0, arg0) ; tmp65 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp65, atslab_s2exp_srt, tmp64) ; ats_selptrset_mac(anairiats_rec_6, tmp65, atslab_s2exp_node, tmp66) ; tmp63 = ats_castfn_mac(ats_ptr_type, tmp65) ; return (tmp63) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 5795(line=278, offs=3) -- 5878(line=280, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt: tmp69 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp69)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp69, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp69, atslab_1, arg2) ; tmp68 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp68, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp68, atslab_s2exp_node, tmp69) ; tmp67 = ats_castfn_mac(ats_ptr_type, tmp68) ; return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 5939(line=284, offs=3) -- 6023(line=286, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt: tmp72 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp72)->tag = 6 ; ats_selptrset_mac(anairiats_sum_7, tmp72, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp72, atslab_1, arg2) ; tmp71 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp71, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp71, atslab_s2exp_node, tmp72) ; tmp70 = ats_castfn_mac(ats_ptr_type, tmp71) ; return (tmp70) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 6097(line=292, offs=3) -- 6175(line=294, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at: tmp75 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp75)->tag = 12 ; ats_selptrset_mac(anairiats_sum_7, tmp75, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp75, atslab_1, arg1) ; tmp74 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp74, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ats_selptrset_mac(anairiats_rec_6, tmp74, atslab_s2exp_node, tmp75) ; tmp73 = ats_castfn_mac(ats_ptr_type, tmp74) ; return (tmp73) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 6221(line=297, offs=14) -- 6288(line=299, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof: tmp78 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp78)->tag = 13 ; ats_selptrset_mac(anairiats_sum_2, tmp78, atslab_0, arg0) ; tmp77 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp77, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ats_selptrset_mac(anairiats_rec_6, tmp77, atslab_s2exp_node, tmp78) ; tmp76 = ats_castfn_mac(ats_ptr_type, tmp77) ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 6358(line=305, offs=3) -- 6424(line=307, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff: tmp81 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp81)->tag = 14 ; ats_selptrset_mac(anairiats_sum_2, tmp81, atslab_0, arg0) ; tmp80 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp80, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff) ; ats_selptrset_mac(anairiats_rec_6, tmp80, atslab_s2exp_node, tmp81) ; tmp79 = ats_castfn_mac(ats_ptr_type, tmp80) ; return (tmp79) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 6472(line=311, offs=3) -- 6552(line=313, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq: tmp84 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp84)->tag = 15 ; ats_selptrset_mac(anairiats_sum_7, tmp84, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp84, atslab_1, arg1) ; tmp83 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp83, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; ats_selptrset_mac(anairiats_rec_6, tmp83, atslab_s2exp_node, tmp84) ; tmp82 = ats_castfn_mac(ats_ptr_type, tmp83) ; return (tmp82) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 6600(line=317, offs=3) -- 6783(line=322, offs=24) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp87 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp87)->tag = 16 ; ats_selptrset_mac(anairiats_sum_8, tmp87, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp87, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp87, atslab_2, arg2) ; tmp86 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp86, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ats_selptrset_mac(anairiats_rec_6, tmp86, atslab_s2exp_node, tmp87) ; tmp85 = ats_castfn_mac(ats_ptr_type, tmp86) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp85 = arg0 ; break ; } while (0) ; return (tmp85) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 6857(line=329, offs=3) -- 6931(line=331, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt: tmp89 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp89)->tag = 17 ; ats_selptrset_mac(anairiats_sum_7, tmp89, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp89, atslab_1, arg2) ; tmp88 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp88, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp88, atslab_s2exp_node, tmp89) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 7002(line=337, offs=3) -- 7177(line=342, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam: tmp91 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) ; tmp93 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_srt) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun (ats_castfn_mac(ats_ptr_type, tmp91), tmp93) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (tmp92, arg0, arg1) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 7227(line=346, offs=3) -- 7325(line=348, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt: tmp95 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp95)->tag = 18 ; ats_selptrset_mac(anairiats_sum_7, tmp95, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp95, atslab_1, arg2) ; tmp94 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp94, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp94, atslab_s2exp_node, tmp95) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 7397(line=353, offs=14) -- 7544(line=360, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp96 = arg1 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp98 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst (tmp98, arg1) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam (tmp97, tmp99) ; break ; } while (0) ; return (tmp96) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 7645(line=367, offs=15) -- 7767(line=371, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt: tmp102 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp102)->tag = 19 ; ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_4, arg5) ; ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_5, arg6) ; tmp101 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp101, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp101, atslab_s2exp_node, tmp102) ; tmp100 = ats_castfn_mac(ats_ptr_type, tmp101) ; return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 7818(line=374, offs=14) -- 7967(line=381, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun: tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_s2exp_srt) ; tmp106 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp106)->tag = 20 ; ats_selptrset_mac(anairiats_sum_8, tmp106, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp106, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp106, atslab_2, arg2) ; tmp105 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp105, atslab_s2exp_srt, tmp104) ; ats_selptrset_mac(anairiats_rec_6, tmp105, atslab_s2exp_node, tmp106) ; tmp103 = ats_castfn_mac(ats_ptr_type, tmp105) ; return (tmp103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 8038(line=386, offs=14) -- 8128(line=390, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec: tmp109 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp109)->tag = 21 ; ats_selptrset_mac(anairiats_sum_7, tmp109, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp109, atslab_1, arg1) ; tmp108 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp108, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; ats_selptrset_mac(anairiats_rec_6, tmp108, atslab_s2exp_node, tmp109) ; tmp107 = ats_castfn_mac(ats_ptr_type, tmp108) ; return (tmp107) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 8201(line=396, offs=3) -- 8402(line=402, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp: tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (arg0) ; if (((ats_sum_ptr_type)tmp111)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2.dats: 8307(line=399, offs=7) -- 8344(line=399, offs=44)") ; } tmp113 = ats_caselptrlab_mac(anairiats_sum_7, tmp111, atslab_1) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp113, tmp112, arg1) ; tmp110 = ats_castfn_mac(ats_ptr_type, tmp114) ; return (tmp110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 8452(line=405, offs=14) -- 8622(line=412, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun: tmp118 = (ats_sum_ptr_type)0 ; tmp117 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp117)->tag = 19 ; ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_0, tmp118) ; ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_1, 0) ; ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_2, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ; ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_3, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_4, arg1) ; ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_5, arg2) ; tmp116 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp116, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ; ats_selptrset_mac(anairiats_rec_6, tmp116, atslab_s2exp_node, tmp117) ; tmp115 = ats_castfn_mac(ats_ptr_type, tmp116) ; return (tmp115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 8701(line=418, offs=3) -- 8927(line=425, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_int_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_bool_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp: tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (arg0) ; tmp122 = atspre_gt_int_int (tmp120, 0) ; if (tmp122) { tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; } else { tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; } /* end of [if] */ tmp124 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp124)->tag = 10 ; ats_selptrset_mac(anairiats_sum_7, tmp124, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp124, atslab_1, arg1) ; tmp123 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp123, atslab_s2exp_srt, tmp121) ; ats_selptrset_mac(anairiats_rec_6, tmp123, atslab_s2exp_node, tmp124) ; tmp119 = ats_castfn_mac(ats_ptr_type, tmp123) ; return (tmp119) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 8985(line=429, offs=3) -- 9219(line=436, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr: tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (arg0) ; tmp128 = atspre_gt_int_int (tmp126, 0) ; if (tmp128) { tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; } else { tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; } /* end of [if] */ tmp130 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp130)->tag = 11 ; ats_selptrset_mac(anairiats_sum_8, tmp130, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp130, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp130, atslab_2, arg2) ; tmp129 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp129, atslab_s2exp_srt, tmp127) ; ats_selptrset_mac(anairiats_rec_6, tmp129, atslab_s2exp_node, tmp130) ; tmp125 = ats_castfn_mac(ats_ptr_type, tmp129) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 9292(line=442, offs=3) -- 9538(line=453, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_bool_type, tmp134) ; ATSlocal (ats_bool_type, tmp135) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top: tmp132 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_srt) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp132) ; if (tmp134) { tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop ; } else { tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed (tmp132) ; if (tmp135) { tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; } else { tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; } /* end of [if] */ } /* end of [if] */ tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt (tmp133, arg0, arg1) ; return (tmp131) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 9588(line=457, offs=3) -- 9658(line=459, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt: tmp137 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp137)->tag = 22 ; ats_selptrset_mac(anairiats_sum_10, tmp137, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp137, atslab_1, arg2) ; tmp136 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp136, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp136, atslab_s2exp_node, tmp137) ; return (tmp136) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 9713(line=462, offs=15) -- 9779(line=464, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without: tmp139 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp139)->tag = 23 ; ats_selptrset_mac(anairiats_sum_2, tmp139, atslab_0, arg0) ; tmp138 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp138, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ats_selptrset_mac(anairiats_rec_6, tmp138, atslab_s2exp_node, tmp139) ; return (tmp138) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 9855(line=470, offs=3) -- 10022(line=476, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_bool_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr: tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (arg0) ; if (tmp142) { tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; } else { tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; } /* end of [if] */ tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt (tmp141, arg0, arg1) ; return (tmp140) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 10076(line=480, offs=3) -- 10159(line=482, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt: tmp145 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp145)->tag = 24 ; ats_selptrset_mac(anairiats_sum_7, tmp145, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp145, atslab_1, arg2) ; tmp144 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp144, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp144, atslab_s2exp_node, tmp145) ; tmp143 = ats_castfn_mac(ats_ptr_type, tmp144) ; return (tmp143) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 10238(line=488, offs=3) -- 10328(line=490, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt: tmp148 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp148)->tag = 25 ; ats_selptrset_mac(anairiats_sum_11, tmp148, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp148, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp148, atslab_2, arg3) ; tmp147 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp147, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp147, atslab_s2exp_node, tmp148) ; tmp146 = ats_castfn_mac(ats_ptr_type, tmp147) ; return (tmp146) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 10401(line=495, offs=13) -- 10472(line=497, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar: tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp152)->tag = 26 ; ats_selptrset_mac(anairiats_sum_2, tmp152, atslab_0, arg0) ; tmp150 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp150, atslab_s2exp_srt, tmp151) ; ats_selptrset_mac(anairiats_rec_6, tmp150, atslab_s2exp_node, tmp152) ; tmp149 = ats_castfn_mac(ats_ptr_type, tmp150) ; return (tmp149) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 10542(line=502, offs=14) -- 10626(line=504, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg: tmp154 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_srt) ; tmp155 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp155)->tag = 29 ; ats_selptrset_mac(anairiats_sum_10, tmp155, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_10, tmp155, atslab_1, arg1) ; tmp153 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp153, atslab_s2exp_srt, tmp154) ; ats_selptrset_mac(anairiats_rec_6, tmp153, atslab_s2exp_node, tmp155) ; return (tmp153) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 10676(line=507, offs=14) -- 10745(line=509, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg: tmp158 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp158)->tag = 30 ; ats_selptrset_mac(anairiats_sum_2, tmp158, atslab_0, arg0) ; tmp157 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp157, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ats_selptrset_mac(anairiats_rec_6, tmp157, atslab_s2exp_node, tmp158) ; tmp156 = ats_castfn_mac(ats_ptr_type, tmp157) ; return (tmp156) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 10813(line=514, offs=11) -- 10992(line=520, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_31_1 ; } __ats_lab_30_2: tmp159 = arg2 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: __ats_lab_31_2: tmp161 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_s2exp_srt) ; tmp162 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp162)->tag = 27 ; ats_selptrset_mac(anairiats_sum_8, tmp162, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp162, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp162, atslab_2, arg2) ; tmp160 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp160, atslab_s2exp_srt, tmp161) ; ats_selptrset_mac(anairiats_rec_6, tmp160, atslab_s2exp_node, tmp162) ; tmp159 = ats_castfn_mac(ats_ptr_type, tmp160) ; break ; } while (0) ; return (tmp159) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 11058(line=524, offs=11) -- 11237(line=530, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_33_1 ; } __ats_lab_32_2: tmp163 = arg2 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: __ats_lab_33_2: tmp165 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_s2exp_srt) ; tmp166 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp166)->tag = 28 ; ats_selptrset_mac(anairiats_sum_8, tmp166, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp166, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp166, atslab_2, arg2) ; tmp164 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp164, atslab_s2exp_srt, tmp165) ; ats_selptrset_mac(anairiats_rec_6, tmp164, atslab_s2exp_node, tmp166) ; tmp163 = ats_castfn_mac(ats_ptr_type, tmp164) ; break ; } while (0) ; return (tmp163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 11308(line=535, offs=3) -- 11421(line=539, offs=32) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exiuni (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_bool_type, tmp168) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exiuni: tmp168 = atspre_eq_int_int (arg0, 0) ; if (tmp168) { tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi (arg1, arg2, arg3) ; } else { tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (arg1, arg2, arg3) ; } /* end of [if] */ return (tmp167) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exiuni] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 11493(line=544, offs=16) -- 11913(line=558, offs=8) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_bool_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_bool_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni: tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp170)->tag != 27) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp171 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_0) ; tmp172 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_1) ; tmp173 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_2) ; tmp174 = atspre_eq_int_int (arg0, 0) ; if (!tmp174) { goto __ats_lab_36_1 ; } ats_ptrget_mac(ats_ptr_type, arg2) = tmp171 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp172 ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp173 ; tmp169 = ats_true_bool ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp170)->tag != 28) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_0) ; tmp176 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_1) ; tmp177 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_2) ; tmp178 = atspre_eq_int_int (arg0, 1) ; if (!tmp178) { goto __ats_lab_36_1 ; } ats_ptrget_mac(ats_ptr_type, arg2) = tmp175 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp176 ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp177 ; tmp169 = ats_true_bool ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp179 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp179 ; tmp180 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp180 ; ats_ptrget_mac(ats_ptr_type, arg4) = arg1 ; tmp169 = ats_false_bool ; break ; } while (0) ; return (tmp169) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 11998(line=564, offs=12) -- 12158(line=569, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (anairiats_rec_5, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp181 = arg1 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp182 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp183 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ; tmp184 = ats_select_mac(tmp182, atslab_s2qua_svs) ; tmp185 = ats_select_mac(tmp182, atslab_s2qua_sps) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis (tmp183, arg1) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (tmp184, tmp185, tmp186) ; break ; } while (0) ; return (tmp181) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 12252(line=576, offs=3) -- 12339(line=578, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype: tmp188 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ; tmp189 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp189)->tag = 31 ; ats_selptrset_mac(anairiats_sum_7, tmp189, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp189, atslab_1, arg1) ; tmp187 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp187, atslab_s2exp_srt, tmp188) ; ats_selptrset_mac(anairiats_rec_6, tmp187, atslab_s2exp_node, tmp189) ; return (tmp187) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 12412(line=583, offs=13) -- 12466(line=585, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp: tmp191 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; tmp190 = ATS_MALLOC(sizeof(anairiats_rec_6)) ; ats_selptrset_mac(anairiats_rec_6, tmp190, atslab_s2exp_srt, arg0) ; ats_selptrset_mac(anairiats_rec_6, tmp190, atslab_s2exp_node, tmp191) ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 12519(line=588, offs=15) -- 12547(line=588, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err: tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp193) ; return (tmp192) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 12574(line=590, offs=16) -- 12602(line=590, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err: tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; return (tmp194) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 12652(line=596, offs=3) -- 12709(line=597, offs=41) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp195) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq: tmp195 = atspre_peq (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp195) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 12784(line=604, offs=3) -- 12817(line=604, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf: tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp197) ; return (tmp196) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 12869(line=607, offs=16) -- 12897(line=607, offs=44) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonprf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp198) ; ATSlocal (ats_bool_type, tmp199) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonprf: tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (arg0) ; tmp198 = atspre_neg_bool (tmp199) ; return (tmp198) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonprf] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 12926(line=611, offs=3) -- 12959(line=611, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin: tmp201 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (tmp201) ; return (tmp200) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 13011(line=614, offs=16) -- 13039(line=614, offs=44) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp202) ; ATSlocal (ats_bool_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin: tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (arg0) ; tmp202 = atspre_neg_bool (tmp203) ; return (tmp202) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 13070(line=618, offs=3) -- 13106(line=618, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_boxed (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_boxed: tmp205 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed (tmp205) ; return (tmp204) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_boxed] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 13183(line=625, offs=3) -- 13218(line=625, offs=38) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prgm (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prgm: tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm (tmp207) ; return (tmp206) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prgm] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 13275(line=630, offs=3) -- 13312(line=630, offs=40) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_impred (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_impred: tmp209 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred (tmp209) ; return (tmp208) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_impred] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 13415(line=639, offs=5) -- 13709(line=654, offs=2) */ ATSstaticdec() ats_bool_type aux_70 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; __ats_lab_aux_70: tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp212)->tag != 19) { goto __ats_lab_42_0 ; } __ats_lab_39_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_9, tmp212, atslab_0) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (tmp213 != (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp211 = ats_true_bool ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: tmp211 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp212)->tag != 28) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_8, tmp212, atslab_2) ; arg0 = tmp214 ; goto __ats_lab_aux_70 ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp212)->tag != 27) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_8, tmp212, atslab_2) ; arg0 = tmp215 ; goto __ats_lab_aux_70 ; // tail call break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp212)->tag != 20) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_8, tmp212, atslab_2) ; arg0 = tmp216 ; goto __ats_lab_aux_70 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: tmp211 = ats_false_bool ; break ; } while (0) ; return (tmp211) ; } /* end of [aux_70] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 13395(line=637, offs=3) -- 13751(line=658, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_FUNCLOfun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp210) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_FUNCLOfun: tmp210 = aux_70 (arg0) ; return (tmp210) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_FUNCLOfun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 13927(line=668, offs=14) -- 13948(line=668, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (ats_uint_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp219) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset: tmp219 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp219)->tag = 0 ; ats_selptrset_mac(anairiats_sum_13, tmp219, atslab_0, arg0) ; return (tmp219) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 13971(line=671, offs=11) -- 14032(line=673, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_var: tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (arg0) ; tmp220 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp220)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp220, atslab_0, tmp221) ; return (tmp220) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_var] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 14076(line=675, offs=21) -- 14097(line=675, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp: tmp222 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp222)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp222, atslab_0, arg0) ; return (tmp222) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 14122(line=679, offs=3) -- 14590(line=688, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_uint_type, tmp224) ; ATSlocal (ats_bool_type, tmp225) ; ATSlocal (ats_uint_type, tmp226) ; ATSlocal (ats_bool_type, tmp227) ; ATSlocal (ats_uint_type, tmp228) ; ATSlocal (ats_bool_type, tmp229) ; ATSlocal (ats_uint_type, tmp230) ; ATSlocal (ats_bool_type, tmp231) ; ATSlocal (ats_uint_type, tmp232) ; ATSlocal (ats_uint_type, tmp233) ; ATSlocal (ats_uint_type, tmp234) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: __ats_lab_46_2: tmp224 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (tmp224) ; if (!tmp225) { goto __ats_lab_47_1 ; } tmp223 = arg1 ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: __ats_lab_47_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_48_0 ; } __ats_lab_47_2: tmp226 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (tmp226) ; if (!tmp227) { goto __ats_lab_48_0 ; } tmp223 = arg0 ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: __ats_lab_48_2: tmp228 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall (tmp228) ; if (!tmp229) { goto __ats_lab_49_1 ; } tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: __ats_lab_49_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_50_0 ; } __ats_lab_49_2: tmp230 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall (tmp230) ; if (!tmp231) { goto __ats_lab_50_0 ; } tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_51_1 ; } __ats_lab_50_2: tmp232 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ; tmp233 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_union (tmp232, tmp233) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (tmp234) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: __ats_lab_51_2: tmp223 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp223)->tag = 2 ; ats_selptrset_mac(anairiats_sum_7, tmp223, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp223, atslab_1, arg1) ; break ; } while (0) ; return (tmp223) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 14660(line=694, offs=14) -- 14723(line=696, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one: tmp236 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ; tmp235 = ATS_MALLOC(sizeof(anairiats_rec_14)) ; ats_selptrset_mac(anairiats_rec_14, tmp235, atslab_s2exparg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_14, tmp235, atslab_s2exparg_node, tmp236) ; return (tmp235) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 14747(line=698, offs=14) -- 14810(line=700, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all: tmp238 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ; tmp237 = ATS_MALLOC(sizeof(anairiats_rec_14)) ; ats_selptrset_mac(anairiats_rec_14, tmp237, atslab_s2exparg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_14, tmp237, atslab_s2exparg_node, tmp238) ; return (tmp237) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 14834(line=702, offs=14) -- 14907(line=704, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq: tmp240 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp240)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp240, atslab_0, arg1) ; tmp239 = ATS_MALLOC(sizeof(anairiats_rec_14)) ; ats_selptrset_mac(anairiats_rec_14, tmp239, atslab_s2exparg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_14, tmp239, atslab_s2exparg_node, tmp240) ; return (tmp239) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 14984(line=710, offs=3) -- 15042(line=712, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make: tmp241 = ATS_MALLOC(sizeof(anairiats_rec_15)) ; ats_selptrset_mac(anairiats_rec_15, tmp241, atslab_t2mpmarg_loc, arg0) ; ats_selptrset_mac(anairiats_rec_15, tmp241, atslab_t2mpmarg_arg, arg1) ; return (tmp241) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 15119(line=718, offs=3) -- 15173(line=720, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2tavar_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp242) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2tavar_make: tmp242 = ATS_MALLOC(sizeof(anairiats_rec_16)) ; ats_selptrset_mac(anairiats_rec_16, tmp242, atslab_s2tavar_loc, arg0) ; ats_selptrset_mac(anairiats_rec_16, tmp242, atslab_s2tavar_var, arg1) ; return (tmp242) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2tavar_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 15229(line=724, offs=3) -- 15309(line=726, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2aspdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2aspdec_make: tmp243 = ATS_MALLOC(sizeof(anairiats_rec_17)) ; ats_selptrset_mac(anairiats_rec_17, tmp243, atslab_s2aspdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_17, tmp243, atslab_s2aspdec_cst, arg1) ; ats_selptrset_mac(anairiats_rec_17, tmp243, atslab_s2aspdec_def, arg2) ; return (tmp243) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2aspdec_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2.dats: 15387(line=732, offs=3) -- 15509(line=737, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; // ATSlocal_void (tmp247) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: tmp245 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp246 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp247 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg2) (tmp245, arg1) ; arg0 = tmp246 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app ; // tail call break ; } while (0) ; return /* (tmp244) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app] */ /* 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_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_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_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp217, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp218, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp217 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)statmp217)->tag = 0 ; ats_selptrset_mac(anairiats_sum_13, statmp217, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil = statmp217 ; statmp218 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)statmp218)->tag = 0 ; ats_selptrset_mac(anairiats_sum_13, statmp218, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all = statmp218 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_kwds_dats.c0000644000175000017500000026026313431250607023231 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BAR_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BANG_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLON_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQ_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGT_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GT_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTLT_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTDOT_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AS_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AND_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CASE_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ELSE_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_END_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FORSTAR_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IF_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IFCASE_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IN_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OF_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REC_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SIF_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SCASE_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_THEN_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TRY_77) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHEN_82) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILESTAR_85) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITH_86) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPTHEN_124) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPENDIF_129) ; 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_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_EOF_178) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_AS_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_AND_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_END_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IN_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_OF_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IF_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SIF_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_CASE_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SCASE_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IFCASE_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_THEN_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_ELSE_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_REC_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHEN_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WITH_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_FOR_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHILE_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_TRY_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BAR_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COLON_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COMMA_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SEMICOLON_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LPAREN_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RPAREN_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACKET_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACKET_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACE_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACE_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BANG_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_DOT_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQ_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQGT_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GT_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTDOT_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTLT_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPTHEN_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPENDIF_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EOF_37) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AND) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_END) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_THEN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AS) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IF) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SIF) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_CASE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SCASE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IFCASE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_REC) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WITH) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHEN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_FORSTAR) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHILESTAR) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_TRY) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BAR) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COMMA) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SEMICOLON) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BARSEMI) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RPAREN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACKET) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACKET) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACE) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BANG) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_DOT) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQGT) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GT) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTDOT) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTLT) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPTHEN) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPENDIF) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EOF) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun) (ats_ref_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 1727(line=56, offs=7) -- 1776(line=57, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AS (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AS: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 34) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp0 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp0 = ats_false_bool ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AS] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 1792(line=59, offs=6) -- 1850(line=60, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AS (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AS: tmp2 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_AS_0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AS, tmp2) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AS] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 1890(line=65, offs=8) -- 1940(line=66, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AND (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AND: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 35) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp3 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp3 = ats_false_bool ; break ; } while (0) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AND] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 1957(line=68, offs=7) -- 2017(line=69, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AND (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AND: tmp5 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_AND_1) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AND, tmp5) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AND] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2039(line=71, offs=12) -- 2076(line=71, offs=49) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AND_test (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AND_test: tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_AND) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AND_test] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2116(line=76, offs=8) -- 2166(line=77, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_END (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_END: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 43) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp7 = ats_true_bool ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp7 = ats_false_bool ; break ; } while (0) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_END] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2183(line=79, offs=7) -- 2243(line=80, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END: tmp9 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_END_2) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_END, tmp9) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_END] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2282(line=85, offs=7) -- 2331(line=86, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg0)->tag != 63) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp10 = ats_true_bool ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp10 = ats_false_bool ; break ; } while (0) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2347(line=88, offs=6) -- 2405(line=89, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_OF (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_OF: tmp12 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_OF_4) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_OF, tmp12) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_OF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2423(line=92, offs=7) -- 2472(line=93, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IN (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IN: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg0)->tag != 57) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp13 = ats_true_bool ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp13 = ats_false_bool ; break ; } while (0) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2488(line=95, offs=6) -- 2546(line=96, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IN (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IN: tmp15 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IN_3) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IN, tmp15) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2585(line=101, offs=7) -- 2634(line=102, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IF (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IF: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 53) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp16 = ats_true_bool ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp16 = ats_false_bool ; break ; } while (0) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2650(line=104, offs=6) -- 2708(line=105, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IF (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IF: tmp18 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IF_5) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IF, tmp18) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2726(line=107, offs=8) -- 2776(line=108, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SIF (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SIF: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg0)->tag != 66) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp19 = ats_true_bool ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp19 = ats_false_bool ; break ; } while (0) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SIF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2793(line=110, offs=7) -- 2853(line=111, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SIF (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SIF: tmp21 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SIF_6) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SIF, tmp21) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SIF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2894(line=116, offs=9) -- 2944(line=117, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_CASE (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_CASE: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 37) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp22 = ats_true_bool ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp22 = ats_false_bool ; break ; } while (0) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_CASE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 2962(line=119, offs=8) -- 3024(line=120, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_CASE (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_CASE: tmp24 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_CASE_7) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_CASE, tmp24) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_CASE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3044(line=122, offs=10) -- 3096(line=123, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SCASE (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SCASE: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 67) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp25 = ats_true_bool ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp25 = ats_false_bool ; break ; } while (0) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SCASE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3115(line=125, offs=9) -- 3179(line=126, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SCASE (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SCASE: tmp27 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SCASE_8) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SCASE, tmp27) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SCASE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3222(line=131, offs=11) -- 3275(line=132, offs=37) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IFCASE (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IFCASE: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg0)->tag != 54) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp28 = ats_true_bool ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp28 = ats_false_bool ; break ; } while (0) ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IFCASE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3295(line=134, offs=10) -- 3361(line=135, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IFCASE (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IFCASE: tmp30 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IFCASE_9) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_IFCASE, tmp30) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_IFCASE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3402(line=140, offs=9) -- 3453(line=141, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_THEN (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_THEN: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg0)->tag != 75) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp31 = ats_true_bool ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp31 = ats_false_bool ; break ; } while (0) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_THEN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3471(line=143, offs=8) -- 3533(line=144, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN: tmp33 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_THEN_10) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_THEN, tmp33) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3553(line=147, offs=9) -- 3604(line=148, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg0)->tag != 42) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp34 = ats_true_bool ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp34 = ats_false_bool ; break ; } while (0) ; return (tmp34) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3622(line=150, offs=8) -- 3684(line=151, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ELSE (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ELSE: tmp36 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_ELSE_11) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE, tmp36) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_ELSE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3724(line=156, offs=8) -- 3774(line=157, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_REC (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_REC: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)arg0)->tag != 65) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp37 = ats_true_bool ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp37 = ats_false_bool ; break ; } while (0) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_REC] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3791(line=159, offs=7) -- 3851(line=160, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC: tmp39 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_REC_12) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_REC, tmp39) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3873(line=162, offs=12) -- 3910(line=162, offs=49) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC_test (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC_test: tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_REC) ; return (tmp40) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_REC_test] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 3951(line=167, offs=9) -- 4002(line=168, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WITH (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WITH: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)arg0)->tag != 86) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp41 = ats_true_bool ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp41 = ats_false_bool ; break ; } while (0) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WITH] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4020(line=170, offs=8) -- 4082(line=171, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WITH (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WITH: tmp43 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WITH_14) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WITH, tmp43) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WITH] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4102(line=174, offs=9) -- 4153(line=175, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHEN (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHEN: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)arg0)->tag != 82) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp44 = ats_true_bool ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp44 = ats_false_bool ; break ; } while (0) ; return (tmp44) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHEN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4171(line=177, offs=8) -- 4233(line=178, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WHEN (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WHEN: tmp46 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHEN_13) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHEN, tmp46) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WHEN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4277(line=183, offs=12) -- 4331(line=184, offs=38) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_FORSTAR (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_FORSTAR: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)arg0)->tag != 51) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp47 = ats_true_bool ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp47 = ats_false_bool ; break ; } while (0) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_FORSTAR] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4352(line=186, offs=11) -- 4416(line=187, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_FORSTAR (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_FORSTAR: tmp49 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_FOR_15) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_FORSTAR, tmp49) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_FORSTAR] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4441(line=190, offs=14) -- 4497(line=191, offs=40) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHILESTAR (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHILESTAR: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)arg0)->tag != 85) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp50 = ats_true_bool ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp50 = ats_false_bool ; break ; } while (0) ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHILESTAR] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4520(line=193, offs=13) -- 4588(line=194, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WHILESTAR (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WHILESTAR: tmp52 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHILE_16) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_WHILESTAR, tmp52) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_WHILESTAR] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4607(line=197, offs=8) -- 4657(line=198, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_TRY (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_TRY: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)arg0)->tag != 77) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp53 = ats_true_bool ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp53 = ats_false_bool ; break ; } while (0) ; return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_TRY] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4674(line=200, offs=7) -- 4734(line=201, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_TRY (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_TRY: tmp55 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_TRY_17) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_TRY, tmp55) ; return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_TRY] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4774(line=206, offs=8) -- 4824(line=207, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BAR (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BAR: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp56 = ats_true_bool ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp56 = ats_false_bool ; break ; } while (0) ; return (tmp56) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BAR] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4841(line=209, offs=7) -- 4901(line=210, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR: tmp58 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BAR_18) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BAR, tmp58) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4923(line=212, offs=12) -- 4960(line=212, offs=49) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test: tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BAR) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 4981(line=215, offs=10) -- 5033(line=216, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON: do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp60 = ats_true_bool ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp60 = ats_false_bool ; break ; } while (0) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5052(line=218, offs=9) -- 5116(line=219, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON: tmp62 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COLON_19) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON, tmp62) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5140(line=221, offs=14) -- 5179(line=221, offs=53) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON_test (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON_test: tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COLON) ; return (tmp63) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COLON_test] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5200(line=224, offs=10) -- 5252(line=225, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COMMA (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COMMA: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)arg0)->tag != 155) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp64 = ats_true_bool ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: tmp64 = ats_false_bool ; break ; } while (0) ; return (tmp64) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COMMA] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5271(line=227, offs=9) -- 5335(line=228, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA: tmp66 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COMMA_20) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COMMA, tmp66) ; return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5359(line=230, offs=14) -- 5398(line=230, offs=53) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_COMMA) ; return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5423(line=233, offs=14) -- 5479(line=234, offs=40) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SEMICOLON (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SEMICOLON: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)arg0)->tag != 156) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp68 = ats_true_bool ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp68 = ats_false_bool ; break ; } while (0) ; return (tmp68) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SEMICOLON] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5502(line=236, offs=13) -- 5574(line=237, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON: tmp70 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SEMICOLON_21) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SEMICOLON, tmp70) ; return (tmp69) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5604(line=240, offs=3) -- 5647(line=240, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON_test (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON_test: tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SEMICOLON) ; return (tmp71) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON_test] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5699(line=244, offs=12) -- 5774(line=245, offs=59) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BARSEMI (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BARSEMI: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp72 = ats_true_bool ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg0)->tag != 156) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp72 = ats_true_bool ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp72 = ats_false_bool ; break ; } while (0) ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BARSEMI] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5800(line=247, offs=16) -- 5841(line=247, offs=57) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BARSEMI_test (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BARSEMI_test: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BARSEMI) ; return (tmp73) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BARSEMI_test] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5884(line=252, offs=11) -- 5937(line=253, offs=37) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg0)->tag != 157) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp74 = ats_true_bool ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: __ats_lab_48_1: tmp74 = ats_false_bool ; break ; } while (0) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 5957(line=255, offs=10) -- 6023(line=256, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN: tmp76 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LPAREN_22) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN, tmp76) ; return (tmp75) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LPAREN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6045(line=259, offs=11) -- 6098(line=260, offs=37) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RPAREN (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RPAREN: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg0)->tag != 158) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp77 = ats_true_bool ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: __ats_lab_50_1: tmp77 = ats_false_bool ; break ; } while (0) ; return (tmp77) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RPAREN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6118(line=262, offs=10) -- 6184(line=263, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN: tmp79 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RPAREN_23) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RPAREN, tmp79) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6229(line=268, offs=13) -- 6284(line=269, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACKET (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACKET: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)arg0)->tag != 159) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp80 = ats_true_bool ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp80 = ats_false_bool ; break ; } while (0) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACKET] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6306(line=271, offs=12) -- 6376(line=272, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACKET (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACKET: tmp82 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACKET_24) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACKET, tmp82) ; return (tmp81) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACKET] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6400(line=275, offs=13) -- 6455(line=276, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACKET (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACKET: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg0)->tag != 160) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp83 = ats_true_bool ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: __ats_lab_54_1: tmp83 = ats_false_bool ; break ; } while (0) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACKET] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6477(line=278, offs=12) -- 6547(line=279, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET: tmp85 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACKET_25) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACKET, tmp85) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACKET] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6590(line=284, offs=11) -- 6643(line=285, offs=37) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)arg0)->tag != 161) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp86 = ats_true_bool ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: tmp86 = ats_false_bool ; break ; } while (0) ; return (tmp86) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6663(line=287, offs=10) -- 6729(line=288, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE: tmp88 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACE_26) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE, tmp88) ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_LBRACE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6751(line=291, offs=11) -- 6804(line=292, offs=37) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACE (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACE: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)arg0)->tag != 162) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp89 = ats_true_bool ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: tmp89 = ats_false_bool ; break ; } while (0) ; return (tmp89) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6824(line=294, offs=10) -- 6890(line=295, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE: tmp91 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACE_27) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_RBRACE, tmp91) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RBRACE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 6931(line=300, offs=9) -- 6982(line=301, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BANG (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BANG: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp92 = ats_true_bool ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: tmp92 = ats_false_bool ; break ; } while (0) ; return (tmp92) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BANG] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7000(line=303, offs=8) -- 7062(line=304, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BANG (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BANG: tmp94 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BANG_28) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_BANG, tmp94) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BANG] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7100(line=308, offs=8) -- 7150(line=309, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_DOT (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_DOT: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp95 = ats_true_bool ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: tmp95 = ats_false_bool ; break ; } while (0) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_DOT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7167(line=311, offs=7) -- 7227(line=312, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_DOT (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_DOT: tmp97 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_DOT_29) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_DOT, tmp97) ; return (tmp96) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_DOT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7263(line=316, offs=7) -- 7312(line=317, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp98) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)arg0)->tag != 13) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp98 = ats_true_bool ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: __ats_lab_64_1: tmp98 = ats_false_bool ; break ; } while (0) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7328(line=319, offs=6) -- 7386(line=320, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ: tmp100 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQ_30) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ, tmp100) ; return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQ] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7423(line=324, offs=9) -- 7474(line=325, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQGT (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQGT: do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg0)->tag != 14) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp101 = ats_true_bool ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: tmp101 = ats_false_bool ; break ; } while (0) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQGT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7512(line=328, offs=8) -- 7574(line=329, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT: tmp103 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQGT_31) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQGT, tmp103) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EQGT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7611(line=333, offs=7) -- 7660(line=334, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GT (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GT: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)arg0)->tag != 22) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp104 = ats_true_bool ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: tmp104 = ats_false_bool ; break ; } while (0) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7694(line=337, offs=6) -- 7752(line=338, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT: tmp106 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GT_32) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GT, tmp106) ; return (tmp105) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7790(line=342, offs=10) -- 7842(line=343, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTDOT (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTDOT: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg0)->tag != 25) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp107 = ats_true_bool ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp107 = ats_false_bool ; break ; } while (0) ; return (tmp107) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTDOT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7882(line=346, offs=9) -- 7946(line=347, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTDOT (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTDOT: tmp109 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTDOT_33) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTDOT, tmp109) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTDOT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 7986(line=351, offs=9) -- 8037(line=352, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTLT (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTLT: do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)arg0)->tag != 23) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp110 = ats_true_bool ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: __ats_lab_72_1: tmp110 = ats_false_bool ; break ; } while (0) ; return (tmp110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTLT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 8075(line=355, offs=8) -- 8137(line=356, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT: tmp112 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTLT_34) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTLT, tmp112) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 8179(line=359, offs=13) -- 8217(line=359, offs=51) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT_test (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT_test: tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_GTLT) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_GTLT_test] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 8261(line=364, offs=12) -- 8315(line=365, offs=38) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPTHEN (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPTHEN: do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)arg0)->tag != 124) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp114 = ats_true_bool ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: __ats_lab_74_1: tmp114 = ats_false_bool ; break ; } while (0) ; return (tmp114) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPTHEN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 8359(line=368, offs=11) -- 8427(line=369, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPTHEN (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPTHEN: tmp116 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPTHEN_35) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPTHEN, tmp116) ; return (tmp115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPTHEN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 8473(line=373, offs=13) -- 8528(line=374, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPENDIF (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPENDIF: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)arg0)->tag != 129) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp117 = ats_true_bool ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: __ats_lab_76_1: tmp117 = ats_false_bool ; break ; } while (0) ; return (tmp117) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPENDIF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 8574(line=377, offs=12) -- 8644(line=378, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPENDIF (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPENDIF: tmp119 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPENDIF_36) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_SRPENDIF, tmp119) ; return (tmp118) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SRPENDIF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 8707(line=384, offs=8) -- 8757(line=385, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EOF (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp120) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EOF: do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)arg0)->tag != 178) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp120 = ats_true_bool ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: __ats_lab_78_1: tmp120 = ats_false_bool ; break ; } while (0) ; return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EOF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 8793(line=388, offs=7) -- 8853(line=389, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EOF (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EOF: tmp122 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EOF_37) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EOF, tmp122) ; return (tmp121) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EOF] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 8916(line=395, offs=13) -- 8973(line=397, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLPAREN (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLPAREN: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)arg0)->tag != 163) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp123 = ats_true_bool ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: __ats_lab_80_1: tmp123 = ats_false_bool ; break ; } while (0) ; return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLPAREN] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 9023(line=400, offs=16) -- 9111(line=404, offs=15) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN_deco (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN_deco: do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)arg0)->tag != 163) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp124 = ats_true_bool ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)arg0)->tag != 164) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp124 = ats_true_bool ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: __ats_lab_83_1: tmp124 = ats_false_bool ; break ; } while (0) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LPAREN_deco] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 9162(line=408, offs=13) -- 9219(line=410, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLBRACE (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLBRACE: do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)arg0)->tag != 168) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp125 = ats_true_bool ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: __ats_lab_85_1: tmp125 = ats_false_bool ; break ; } while (0) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ATLBRACE] */ /* // /tmp/ATS-Postiats/src/pats_parsing_kwds.dats: 9269(line=413, offs=16) -- 9357(line=417, offs=15) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE_deco (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE_deco: do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)arg0)->tag != 168) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp126 = ats_true_bool ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)arg0)->tag != 169) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp126 = ats_true_bool ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: tmp126 = ats_false_bool ; break ; } while (0) ; return (tmp126) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_LBRACE_deco] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_kwds_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_kwds_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_util1_dats.c0000644000175000017500000051233413431250607023241 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_7 ; typedef struct { anairiats_rec_7 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_uint_type atslab_0 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_15 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SZLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEprf_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEptr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEcst_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEVar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEapp_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyarr_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyrec_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEclo_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__impkind_linearize) (ats_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil) (ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall) (ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_supset) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat0) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tkind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec) (ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exiuni) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset) (ats_uint_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_linearize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_boxed) (ats_int_type, ats_int_type, ats_int_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst) (ats_int_type, ats_int_type, ats_int_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_without) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_lin2) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_set) (ats_ptr_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_copy) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_occurcheck) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_alpha) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_without) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_lin2) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2explstlst_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__wths2explst_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lab_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lablst_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2eff_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2zexplst_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2zexplst_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__sasp__stasub_vtype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_error2_loc_0 (ats_ptr_type arg0) ; static ats_ptr_type impname_linearize_1 (ats_ptr_type arg0) ; static ats_ptr_type aux_6 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_8 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_void_type aux01_10 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) ; static ats_bool_type test1_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type test2_13 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type filter_14 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type list_is_sing_01298_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_23 (ats_ptr_type arg0) ; static ats_bool_type loop_25 (ats_ptr_type arg0) ; static ats_bool_type aux_28 (ats_ptr_type arg0, ats_uint_type arg1) ; static ats_void_type loop_34 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_anairiats_rec_7 (ats_ptr_type arg0) ; static ats_ptr_type list_vt_copy_01498_anairiats_rec_7 (ats_ptr_type arg0) ; static ats_void_type loop_37 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_anairiats_rec_7 (ats_ptr_type arg0) ; static ats_void_type loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_int_type loop_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_49 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type revapp_52 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type s2var_subst_flag_53 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s2Var_subst_flag_54 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_57 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type s2exp_subst_flag_exiuni_55 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ; static ats_ptr_type aux_76 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_76_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type aux_76_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 1895(line=69, offs=4) -- 1987(line=72, offs=2) */ ATSstaticdec() ats_void_type prerr_error2_loc_0 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; // ATSlocal_void (tmp1) ; __ats_lab_prerr_error2_loc_0: /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp0 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ; return /* (tmp0) */ ; } /* end of [prerr_error2_loc_0] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 2049(line=78, offs=4) -- 2312(line=88, offs=4) */ ATSstaticdec() ats_ptr_type impname_linearize_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_bool_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; __ats_lab_impname_linearize_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP) ; if (!tmp3) { goto __ats_lab_1_1 ; } tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE) ; if (!tmp4) { goto __ats_lab_2_1 ; } tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE) ; if (!tmp5) { goto __ats_lab_3_1 ; } tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp2 = arg0 ; break ; } while (0) ; return (tmp2) ; } /* end of [impname_linearize_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 2395(line=94, offs=3) -- 2941(line=117, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_linearize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_linearize: /* ats_int_type tmp7 ; */ tmp7 = 0 ; /* ats_ptr_type tmp8 ; */ tmp8 = arg0 ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp8)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_4_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_1, tmp8, atslab_0) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp10)->tag != 1) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_2, tmp10, atslab_0) ; tmp12 = ats_caselptrlab_mac(anairiats_sum_2, tmp10, atslab_1) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__impkind_linearize (tmp11) ; tmp14 = impname_linearize_1 (tmp12) ; tmp16 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp16)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp16, atslab_0, tmp13) ; ats_selptrset_mac(anairiats_sum_2, tmp16, atslab_1, tmp14) ; tmp15 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp15)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp15, atslab_0, tmp16) ; tmp8 = tmp15 ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp7 = 1 ; break ; } while (0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp7 = 1 ; break ; } while (0) ; tmp6 = tmp8 ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_linearize] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 3121(line=133, offs=1) -- 4145(line=174, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc (ats_ptr_type arg0, ats_bool_type arg1, ats_bool_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_int_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc: if (arg1) { if (arg2) { tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view ; } else { tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop ; } /* end of [if] */ } else { do { /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: if (!arg2) { goto __ats_lab_14_1 ; } do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_9_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp18 != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (tmp18 != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: /* tmp19 = */ prerr_error2_loc_0 (arg0) ; /* tmp20 = */ atspre_prerr_string (ATSstrcst(": a closure reference cannot be linear.")) ; /* tmp21 = */ atspre_prerr_newline () ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; break ; } while (0) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; break ; } while (0) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_15_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (tmp22 != 0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (tmp22 != 1) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; break ; } while (0) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; break ; } while (0) ; break ; } while (0) ; } /* end of [if] */ return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 4310(line=185, offs=3) -- 4821(line=219, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_boxed (ats_int_type arg0, ats_int_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_bool_type, tmp27) ; ATSlocal (ats_bool_type, tmp28) ; ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_bool_type, tmp30) ; ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_bool_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_boxed: tmp24 = atspre_gte_int_int (arg0, 0) ; if (tmp24) { tmp25 = atspre_eq_int_int (arg1, 0) ; if (tmp25) { tmp26 = atspre_gt_int_int (arg3, 0) ; if (tmp26) { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; } else { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; } /* end of [if] */ } else { tmp27 = atspre_gt_int_int (arg3, 0) ; if (tmp27) { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; } else { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; } /* end of [if] */ } /* end of [if] */ } else { tmp28 = atspre_eq_int_int (arg2, 0) ; if (tmp28) { tmp29 = atspre_eq_int_int (arg1, 0) ; if (tmp29) { tmp30 = atspre_gt_int_int (arg3, 0) ; if (tmp30) { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; } else { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; } /* end of [if] */ } else { tmp31 = atspre_gt_int_int (arg3, 0) ; if (tmp31) { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; } else { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; } /* end of [if] */ } /* end of [if] */ } else { tmp32 = atspre_eq_int_int (arg1, 0) ; if (tmp32) { tmp33 = atspre_gt_int_int (arg3, 0) ; if (tmp33) { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; } else { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop ; } /* end of [if] */ } else { tmp34 = atspre_gt_int_int (arg3, 0) ; if (tmp34) { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; } else { tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view ; } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_boxed] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 5847(line=250, offs=5) -- 6353(line=282, offs=4) */ ATSstaticdec() ats_ptr_type aux_6 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; ATSlocal (ats_bool_type, tmp45) ; __ats_lab_aux_6: tmp37 = atspre_gt_int_int (arg0, 0) ; if (tmp37) { if (arg2 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 5966(line=259, offs=7) -- 5988(line=259, offs=29)") ; } tmp38 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; tmp39 = atspre_sub_int_int (arg0, 1) ; arg0 = tmp39 ; arg1 = arg1 ; arg2 = tmp38 ; goto __ats_lab_aux_6 ; // tail call } else { if (arg2 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 6037(line=264, offs=3) -- 6058(line=264, offs=24)") ; } tmp40 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp41 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; tmp42 = ats_caselptrlab_mac(anairiats_sum_5, tmp40, atslab_2) ; tmp43 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp42), atslab_s2exp_srt) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp43) ; if (tmp44) { arg0 = 0 ; arg1 = arg1 ; arg2 = tmp41 ; goto __ats_lab_aux_6 ; // tail call } else { tmp45 = atspre_eq_int_int (arg1, 0) ; if (tmp45) { tmp36 = tmp43 ; } else { tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_linearize (tmp43) ; } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ return (tmp36) ; } /* end of [aux_6] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 4955(line=227, offs=3) -- 6790(line=308, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (ats_int_type arg0, ats_int_type arg1, ats_int_type arg2, ats_int_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_bool_type, tmp47) ; ATSlocal (ats_bool_type, tmp48) ; ATSlocal (ats_bool_type, tmp49) ; ATSlocal (ats_bool_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_bool_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst: tmp46 = atspre_eq_int_int (arg3, 0) ; if (tmp46) { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_boxed (arg0, arg1, arg2, arg4) ; } else { tmp47 = atspre_eq_int_int (arg3, 1) ; if (tmp47) { tmp48 = atspre_gt_int_int (arg4, 0) ; if (tmp48) { tmp49 = atspre_eq_int_int (arg1, 0) ; if (tmp49) { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; } else { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; } /* end of [if] */ } else { tmp35 = aux_6 (arg0, arg1, arg5) ; } /* end of [if] */ } else { tmp50 = atspre_eq_int_int (arg1, 0) ; if (tmp50) { tmp51 = atspre_gt_int_int (arg4, 0) ; if (tmp51) { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; } else { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; } /* end of [if] */ } else { tmp52 = atspre_gt_int_int (arg4, 0) ; if (tmp52) { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; } else { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 6923(line=318, offs=5) -- 7299(line=341, offs=4) */ ATSstaticdec() ats_ptr_type aux_8 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_int_type, tmp61) ; __ats_lab_aux_8: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp54 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg0) ; tmp59 = (ats_sum_ptr_type)0 ; tmp58 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp58, atslab_0, tmp57) ; ats_selptrset_mac(anairiats_sum_5, tmp58, atslab_1, tmp59) ; ats_selptrset_mac(anairiats_sum_5, tmp58, atslab_2, tmp55) ; tmp61 = atspre_add_int_int (arg0, 1) ; tmp60 = aux_8 (tmp61, tmp56) ; tmp54 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp54, atslab_0, tmp58) ; ats_selptrset_mac(anairiats_sum_4, tmp54, atslab_1, tmp60) ; break ; } while (0) ; return (tmp54) ; } /* end of [aux_8] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 6889(line=314, offs=1) -- 7384(line=347, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tytup (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tytup: tmp62 = aux_8 (0, arg2) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec (arg0, arg1, tmp62) ; return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tytup] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 7488(line=357, offs=5) -- 8073(line=390, offs=4) */ ATSstaticdec() ats_void_type aux01_10 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_bool_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_bool_type, tmp73) ; ATSlocal (ats_int_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; __ats_lab_aux01_10: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp66 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_5, tmp65, atslab_2) ; tmp68 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp67), atslab_s2exp_srt) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (tmp68) ; if (tmp70) { tmp71 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp71 ; } else { /* empty */ } /* end of [if] */ tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp68) ; if (tmp73) { tmp74 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp74 ; } else { tmp75 = atspre_gte_int_int (arg0, arg1) ; if (tmp75) { tmp76 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg5), 1) ; ats_ptrget_mac(ats_int_type, arg5) = tmp76 ; } else { /* empty */ } /* end of [if] */ } /* end of [if] */ tmp77 = atspre_add_int_int (arg0, 1) ; arg0 = tmp77 ; arg1 = arg1 ; arg2 = tmp66 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_aux01_10 ; // tail call break ; } while (0) ; return /* (tmp64) */ ; } /* end of [aux01_10] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 7453(line=353, offs=1) -- 8607(line=414, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; // ATSlocal_void (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_bool_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec: /* ats_int_type tmp78 ; */ tmp78 = 0 ; /* ats_int_type tmp79 ; */ tmp79 = 0 ; /* ats_int_type tmp80 ; */ tmp80 = 0 ; /* tmp81 = */ aux01_10 (0, arg1, arg2, (&tmp78), (&tmp79), (&tmp80)) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 != 0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp82 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 != 1) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp82 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg0 != 2) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp82 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp82 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; break ; } while (0) ; tmp84 = atspre_gte_int_int (arg0, 3) ; if (tmp84) { tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; } else { tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg1, tmp78, tmp79, tmp80, arg0, arg2) ; } /* end of [if] */ tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp83, tmp82, arg1, arg2) ; return (tmp63) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 8721(line=422, offs=7) -- 9165(line=435, offs=8) */ ATSstaticdec() ats_bool_type test1_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp86) ; ATSlocal (anairiats_rec_7, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_bool_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab_test1_12: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_28_1: tmp87 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp88 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp89 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp90 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp91 = ats_select_mac(tmp87, atslab_1) ; tmp93 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp91), atslab_s2exp_srt) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat0 (tmp93, tmp89) ; if (tmp92) { arg0 = tmp88 ; arg1 = tmp90 ; goto __ats_lab_test1_12 ; // tail call } else { tmp86 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp86 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp86 = ats_false_bool ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp86 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; return (tmp86) ; } /* end of [test1_12] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 9219(line=438, offs=7) -- 9581(line=450, offs=26) */ ATSstaticdec() ats_bool_type test2_13 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_bool_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_bool_type, tmp100) ; __ats_lab_test2_13: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp96 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun (arg0) ; if (tmp97) { if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 9387(line=445, offs=15) -- 9420(line=445, offs=48)") ; } tmp98 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp100 = test1_12 (tmp95, tmp98) ; if (tmp100) { arg0 = tmp99 ; arg1 = tmp96 ; goto __ats_lab_test2_13 ; // tail call } else { tmp94 = ats_false_bool ; } /* end of [if] */ } else { tmp94 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp94 = ats_true_bool ; break ; } while (0) ; return (tmp94) ; } /* end of [test2_13] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 9614(line=453, offs=7) -- 10265(line=474, offs=33) */ ATSstaticdec() ats_ptr_type filter_14 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_bool_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab_filter_14: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp102) ; tmp105 = test2_13 (tmp104, arg1) ; if (tmp105) { tmp106 = filter_14 (tmp103, arg1) ; tmp101 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp101, atslab_0, tmp102) ; ats_selptrset_mac(anairiats_sum_4, tmp101, atslab_1, tmp106) ; } else { arg0 = tmp103 ; arg1 = arg1 ; goto __ats_lab_filter_14 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp101 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp101) ; } /* end of [filter_14] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50922(line=1801, offs=14) -- 50991(line=1803, offs=4) */ ATSstaticdec() ats_bool_type list_is_sing_01298_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab_list_is_sing_01298_ats_ptr_type: do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } tmp109 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; if (tmp109 != (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp108 = ats_true_bool ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp108 = ats_false_bool ; break ; } while (0) ; return (tmp108) ; } /* end of [list_is_sing_01298_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 8694(line=420, offs=3) -- 10379(line=481, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2cst_select_locs2explstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_bool_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2cst_select_locs2explstlst: tmp107 = list_is_sing_01298_ats_ptr_type (arg0) ; if (tmp107) { tmp85 = arg0 ; } else { tmp85 = filter_14 (arg0, arg1) ; } /* end of [if] */ return (tmp85) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2cst_select_locs2explstlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 10467(line=486, offs=16) -- 10555(line=491, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_nonvar (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_nonvar: tmp111 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp111)->tag != 7) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp110 = ats_false_bool ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: tmp110 = ats_true_bool ; break ; } while (0) ; return (tmp110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_nonvar] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 10637(line=497, offs=17) -- 10786(line=504, offs=31) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype: tmp113 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp113)->tag != 31) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp112 = ats_true_bool ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp113)->tag != 27) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_10, tmp113, atslab_2) ; arg0 = tmp114 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype ; // tail call break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: tmp112 = ats_false_bool ; break ; } while (0) ; return (tmp112) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 10936(line=515, offs=17) -- 11094(line=522, offs=31) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_without (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_without: tmp116 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp116)->tag != 23) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp115 = ats_true_bool ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp116)->tag != 25) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_11, tmp116, atslab_2) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_without (tmp117) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: __ats_lab_47_1: tmp115 = ats_false_bool ; break ; } while (0) ; return (tmp115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_without] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 11167(line=527, offs=3) -- 11381(line=538, offs=6) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_without (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_bool_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_without: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp118 = ats_true_bool ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp120 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp121 = ats_caselptrlab_mac(anairiats_sum_5, tmp119, atslab_2) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_without (tmp121) ; if (tmp122) { arg0 = tmp120 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_without ; // tail call } else { tmp118 = ats_false_bool ; } /* end of [if] */ break ; } while (0) ; return (tmp118) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_without] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 11556(line=550, offs=3) -- 11963(line=571, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_lin2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_bool_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_lin2: tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg0) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp124) ; if (tmp125) { tmp126 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp124), atslab_s2exp_node) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp126)->tag != 12) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_9, tmp126, atslab_0) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_without (tmp127) ; if (tmp128) { tmp123 = ats_false_bool ; } else { tmp123 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp126)->tag != 25) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_11, tmp126, atslab_0) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_11, tmp126, atslab_2) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed (tmp129) ; if (tmp131) { tmp123 = ats_true_bool ; } else { tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_lin2 (tmp130) ; } /* end of [if] */ break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp123 = ats_true_bool ; break ; } while (0) ; } else { tmp123 = ats_false_bool ; } /* end of [if] */ return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_lin2] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 12025(line=575, offs=3) -- 12211(line=584, offs=6) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_lin2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_bool_type, tmp136) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_lin2: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp132 = ats_false_bool ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp133 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp134 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp135 = ats_caselptrlab_mac(anairiats_sum_5, tmp133, atslab_2) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_lin2 (tmp135) ; if (tmp136) { tmp132 = ats_true_bool ; } else { arg0 = tmp134 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_lin2 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp132) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_is_lin2] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 12341(line=594, offs=1) -- 12446(line=600, offs=2) */ ATSstaticdec() ats_ptr_type loop_23 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab_loop_23: tmp139 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp139)->tag != 17) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_9, tmp139, atslab_0) ; arg0 = tmp140 ; goto __ats_lab_loop_23 ; // tail call break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: tmp138 = arg0 ; break ; } while (0) ; return (tmp138) ; } /* end of [loop_23] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 12322(line=591, offs=3) -- 12532(line=606, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_get_head (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_get_head: tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp142 = loop_23 (tmp141) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp142) ; return (tmp137) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_get_head] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 12629(line=614, offs=5) -- 12897(line=624, offs=15) */ ATSstaticdec() ats_bool_type loop_25 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_bool_type, tmp147) ; ATSlocal (ats_bool_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; __ats_lab_loop_25: tmp145 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp145)->tag != 4) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_1, tmp145, atslab_0) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr (tmp146) ; if (tmp147) { tmp144 = ats_true_bool ; } else { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tkind (tmp146) ; if (tmp148) { tmp144 = ats_true_bool ; } else { tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon (tmp146) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp145)->tag != 17) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_9, tmp145, atslab_0) ; arg0 = tmp149 ; goto __ats_lab_loop_25 ; // tail call break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: tmp144 = ats_false_bool ; break ; } while (0) ; return (tmp144) ; } /* end of [loop_25] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 12610(line=612, offs=3) -- 12960(line=629, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_is_abscon (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp143) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_is_abscon: tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp143 = loop_25 (tmp150) ; return (tmp143) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_is_abscon] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 13037(line=635, offs=3) -- 13241(line=641, offs=8) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_add_set (ats_ptr_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_bool_type, tmp152) ; ATSlocal (ats_bool_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_add_set: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (arg1) ; if (!tmp152) { goto __ats_lab_61_1 ; } tmp151 = arg0 ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: __ats_lab_61_1: tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall (arg1) ; if (!tmp153) { goto __ats_lab_62_1 ; } tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (arg1) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add (arg0, tmp154) ; break ; } while (0) ; return (tmp151) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_add_set] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 13362(line=650, offs=5) -- 13513(line=658, offs=4) */ ATSstaticdec() ats_bool_type aux_28 (ats_ptr_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab_aux_28: tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp157) ; tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp158), atslab_s2exp_node) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp156 = ats_false_bool ; break ; } while (0) ; return (tmp156) ; } /* end of [aux_28] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 13336(line=648, offs=3) -- 13819(line=672, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_set (ats_ptr_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp155) ; ATSlocal (ats_uint_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_bool_type, tmp164) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_set: do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_supset (tmp160, arg1) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp161 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp155 = aux_28 (tmp161, arg1) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp162 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp163 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_set (tmp162, arg1) ; if (tmp164) { tmp155 = ats_true_bool ; } else { arg0 = tmp163 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_set ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp155) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_set] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 13902(line=678, offs=3) -- 14232(line=691, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp165) ; ATSlocal (ats_uint_type, tmp166) ; ATSlocal (ats_bool_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_bool_type, tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_exp: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp166 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall (tmp166) ; if (tmp167) { tmp165 = ats_true_bool ; } else { tmp165 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq (arg1, tmp168) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_exp (tmp169, arg1) ; if (tmp171) { tmp165 = ats_true_bool ; } else { arg0 = tmp170 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_exp ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp165) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 14413(line=703, offs=17) -- 14432(line=703, offs=36) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil: tmp172 = (ats_sum_ptr_type)0 ; return (tmp172) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_34 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp176) ; ATSlocal (anairiats_rec_7, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab_loop_34: do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp178 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp179 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp179, atslab_0, tmp177) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp179 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp180 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp178 ; arg1 = tmp180 ; goto __ats_lab_loop_34 ; // tail call break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp181 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp181 ; break ; } while (0) ; return /* (tmp176) */ ; } /* end of [loop_34] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_anairiats_rec_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; __ats_lab_list_copy_01322_anairiats_rec_7: /* ats_ptr_type tmp182 ; */ /* tmp183 = */ loop_34 (arg0, (&tmp182)) ; tmp175 = tmp182 ; return (tmp175) ; } /* end of [list_copy_01322_anairiats_rec_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4725(line=167, offs=18) -- 4776(line=168, offs=44) */ ATSstaticdec() ats_ptr_type list_vt_copy_01498_anairiats_rec_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; __ats_lab_list_vt_copy_01498_anairiats_rec_7: tmp174 = list_copy_01322_anairiats_rec_7 (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp174) ; } /* end of [list_vt_copy_01498_anairiats_rec_7] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 14455(line=705, offs=13) -- 14480(line=705, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_copy (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_copy: tmp173 = list_vt_copy_01498_anairiats_rec_7 (arg0) ; return (tmp173) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_copy] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_37 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab_loop_37: do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp187 ; goto __ats_lab_loop_37 ; // tail call break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_73_1: break ; } while (0) ; return /* (tmp186) */ ; } /* end of [loop_37] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_anairiats_rec_7 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp185) ; __ats_lab_list_vt_free_01499_anairiats_rec_7: /* tmp185 = */ loop_37 (arg0) ; return /* (tmp185) */ ; } /* end of [list_vt_free_01499_anairiats_rec_7] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 14504(line=707, offs=13) -- 14529(line=707, offs=38) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp184) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free: /* tmp184 = */ list_vt_free_01499_anairiats_rec_7 (arg0) ; return /* (tmp184) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 14603(line=715, offs=5) -- 15062(line=738, offs=4) */ ATSstaticdec() ats_void_type loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp189) ; ATSlocal (anairiats_rec_7, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_bool_type, tmp193) ; // ATSlocal_void (tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_int_type, tmp200) ; __ats_lab_loop_39: do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp190 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp191 = &ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp193 = atspre_gt_int_int (arg2, 0) ; if (tmp193) { /* tmp192 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp195 = ats_select_mac(tmp190, atslab_0) ; /* tmp194 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp195) ; /* tmp196 = */ atspre_fprint_string (arg0, ATSstrcst("->")) ; tmp198 = ats_select_mac(tmp190, atslab_1) ; /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp198) ; tmp199 = ats_ptrget_mac(ats_ptr_type, tmp191) ; tmp200 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp199 ; arg2 = tmp200 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: break ; } while (0) ; return /* (tmp189) */ ; } /* end of [loop_39] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 14579(line=713, offs=3) -- 15110(line=742, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__fprint_stasub (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp188) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__fprint_stasub: /* tmp188 = */ loop_39 (arg0, arg1, 0) ; return /* (tmp188) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__fprint_stasub] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 15182(line=748, offs=3) -- 15224(line=748, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (anairiats_rec_7, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add: tmp203.atslab_0 = arg1 ; tmp203.atslab_1 = arg2 ; tmp202 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp202, atslab_0, tmp203) ; ats_selptrset_mac(anairiats_sum_8, tmp202, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp202 ; return /* (tmp201) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 15305(line=754, offs=7) -- 15737(line=768, offs=8) */ ATSstaticdec() ats_int_type loop_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; // ATSlocal_void (tmp210) ; __ats_lab_loop_42: do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_76_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp207 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; /* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp206, tmp208) ; arg0 = arg0 ; arg1 = tmp207 ; arg2 = tmp209 ; goto __ats_lab_loop_42 ; // tail call break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp205 = 1 ; break ; } while (0) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp205 = -1 ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: tmp205 = 0 ; break ; } while (0) ; break ; } while (0) ; return (tmp205) ; } /* end of [loop_42] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 15275(line=753, offs=3) -- 15809(line=772, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_addlst (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp204) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_addlst: tmp204 = loop_42 (arg0, arg1, arg2) ; return (tmp204) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_addlst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 9577(line=358, offs=7) -- 9950(line=371, offs=27) */ ATSstaticdec() ats_ptr_type loop_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (anairiats_rec_7, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_bool_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; __ats_lab_loop_46: do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp216 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp218 = ats_select_mac(tmp215, atslab_0) ; tmp217 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg1) (arg2, tmp218, arg3) ; if (tmp217) { tmp219 = ats_select_mac(tmp215, atslab_1) ; tmp214 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp214, atslab_0, tmp219) ; } else { arg0 = tmp216 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_46 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_83_1: tmp214 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp214) ; } /* end of [loop_46] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 9541(line=357, offs=21) -- 9988(line=374, offs=4) */ ATSstaticdec() ats_ptr_type list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp213) ; __ats_lab_list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type: tmp213 = loop_46 (arg0, arg1, arg2, arg3) ; return (tmp213) ; } /* end of [list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 10063(line=378, offs=12) -- 10354(line=385, offs=2) */ ATSstaticdec() ats_ptr_type list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp212) ; __ats_lab_list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type: tmp212 = list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), arg2, atspre_null_ptr) ; return (tmp212) ; } /* end of [list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 15880(line=777, offs=13) -- 16067(line=783, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp211) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find: tmp211 = list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var, arg1) ; return (tmp211) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 16363(line=800, offs=3) -- 16832(line=816, offs=8) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_occurcheck (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp220) ; ATSlocal (anairiats_rec_7, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_bool_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_occurcheck: do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp221 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp222 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp224 = ats_select_mac(tmp221, atslab_0) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset (tmp224) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem (tmp223, arg1) ; if (tmp225) { tmp220 = ats_true_bool ; } else { tmp226 = ats_ptrget_mac(ats_ptr_type, tmp222) ; arg0 = tmp226 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_occurcheck ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp220 = ats_false_bool ; break ; } while (0) ; return (tmp220) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_occurcheck] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 16989(line=826, offs=5) -- 17360(line=838, offs=25) */ ATSstaticdec() ats_ptr_type loop_49 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; // ATSlocal_void (tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; __ats_lab_loop_49: do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp229 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp230 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup (tmp229) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp231) ; /* tmp233 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp229, tmp232) ; tmp234 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp234, atslab_0, tmp231) ; ats_selptrset_mac(anairiats_sum_4, tmp234, atslab_1, arg2) ; arg0 = arg0 ; arg1 = tmp230 ; arg2 = tmp234 ; goto __ats_lab_loop_49 ; // tail call break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_87_1: tmp228 = arg2 ; break ; } while (0) ; return (tmp228) ; } /* end of [loop_49] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_52 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab_revapp_52: do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp240 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp241 = ats_ptrget_mac(ats_ptr_type, tmp240) ; ats_ptrget_mac(ats_ptr_type, tmp240) = arg1 ; tmp242 = arg0 ; arg0 = tmp241 ; arg1 = tmp242 ; goto __ats_lab_revapp_52 ; // tail call break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: tmp239 = arg1 ; break ; } while (0) ; return (tmp239) ; } /* end of [revapp_52] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp238) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp238 = revapp_52 (arg0, arg1) ; return (tmp238) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp243 = (ats_sum_ptr_type)0 ; tmp237 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp243) ; return (tmp237) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 16964(line=824, offs=23) -- 17465(line=847, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst: tmp236 = (ats_sum_ptr_type)0 ; tmp235 = loop_49 (arg0, arg1, tmp236) ; tmp227 = list_vt_reverse_01506_ats_ptr_type (tmp235) ; return (tmp227) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 18565(line=894, offs=1) -- 18826(line=905, offs=4) */ ATSstaticdec() ats_ptr_type s2var_subst_flag_53 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_int_type, tmp247) ; __ats_lab_s2var_subst_flag_53: tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find (arg0, arg3) ; do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (tmp245 == (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp246 = ats_caselptrlab_mac(anairiats_sum_13, tmp245, atslab_0) ; ATS_FREE(tmp245) ; tmp247 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp247 ; tmp244 = tmp246 ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (tmp245 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: tmp244 = arg1 ; break ; } while (0) ; return (tmp244) ; } /* end of [s2var_subst_flag_53] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 18861(line=908, offs=1) -- 19372(line=932, offs=4) */ ATSstaticdec() ats_ptr_type s2Var_subst_flag_54 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_int_type, tmp251) ; ATSlocal (ats_bool_type, tmp252) ; ATSlocal (ats_int_type, tmp254) ; ATSlocal (ats_bool_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab_s2Var_subst_flag_54: tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link (arg3) ; do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (tmp249 == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp250 = ats_caselptrlab_mac(anairiats_sum_13, tmp249, atslab_0) ; tmp251 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp251 ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp250, arg2) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (tmp249 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_occurcheck (arg0, arg3) ; if (tmp252) { tmp254 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp254 ; } else { /* empty */ } /* end of [if] */ tmp255 = atspre_neg_bool (tmp252) ; if (tmp255) { tmp248 = arg1 ; } else { tmp256 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_srt) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp256) ; } /* end of [if] */ break ; } while (0) ; return (tmp248) ; } /* end of [s2Var_subst_flag_54] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_57 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab_loop_57: do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp268 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp268 ; goto __ats_lab_loop_57 ; // tail call break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_95_1: break ; } while (0) ; return /* (tmp267) */ ; } /* end of [loop_57] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp266) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp266 = */ loop_57 (arg0) ; return /* (tmp266) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 19407(line=935, offs=1) -- 19976(line=955, offs=4) */ ATSstaticdec() ats_ptr_type s2exp_subst_flag_exiuni_55 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_int_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; // ATSlocal_void (tmp263) ; ATSlocal (ats_bool_type, tmp264) ; // ATSlocal_void (tmp265) ; __ats_lab_s2exp_subst_flag_exiuni_55: tmp258 = ats_ptrget_mac(ats_int_type, arg3) ; /* ats_ptr_type tmp259 ; */ tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_copy (arg1) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst ((&tmp259), arg4) ; tmp261 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (tmp259, arg5, arg3) ; tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (tmp259, arg6, arg3) ; /* tmp263 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp259) ; tmp264 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg3), tmp258) ; if (tmp264) { tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exiuni (arg0, ats_castfn_mac(ats_ptr_type, tmp260), tmp261, tmp262) ; } else { /* tmp265 = */ list_vt_free_01499_ats_ptr_type (tmp260) ; tmp257 = arg2 ; } /* end of [if] */ return (tmp257) ; } /* end of [s2exp_subst_flag_exiuni_55] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 20064(line=961, offs=3) -- 26626(line=1188, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_int_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_bool_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_int_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_bool_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_int_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_bool_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_int_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_bool_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_int_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_bool_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_int_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_bool_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_int_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_bool_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_int_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_bool_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_int_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_bool_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_int_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_bool_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_int_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; // ATSlocal_void (tmp336) ; ATSlocal (ats_bool_type, tmp337) ; // ATSlocal_void (tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_int_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_int_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_int_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_bool_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_int_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_bool_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_int_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_bool_type, tmp362) ; ATSlocal (ats_int_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_int_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_bool_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_int_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_bool_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_int_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_bool_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_int_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_int_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_bool_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_int_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_bool_type, tmp387) ; ATSlocal (ats_int_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_int_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_bool_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_int_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_bool_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_int_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_bool_type, tmp408) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag: tmp270 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_srt) ; tmp271 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp271)->tag != 0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp269 = arg1 ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp271)->tag != 1) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp269 = arg1 ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp271)->tag != 2) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp269 = arg1 ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp271)->tag != 3) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp269 = arg1 ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp271)->tag != 4) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp269 = arg1 ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp271)->tag != 5) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp274 = ats_ptrget_mac(ats_int_type, arg2) ; tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2explstlst_subst_flag (arg0, tmp273, arg2) ; tmp276 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp274) ; if (tmp276) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt (tmp270, tmp272, tmp275) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp271)->tag != 6) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp277 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp278 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp279 = ats_ptrget_mac(ats_int_type, arg2) ; tmp280 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2explstlst_subst_flag (arg0, tmp278, arg2) ; tmp281 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp279) ; if (tmp281) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt (tmp270, tmp277, tmp280) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp271)->tag != 7) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp282 = ats_caselptrlab_mac(anairiats_sum_1, tmp271, atslab_0) ; tmp269 = s2var_subst_flag_53 (arg0, arg1, arg2, tmp282) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp271)->tag != 8) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp283 = ats_caselptrlab_mac(anairiats_sum_1, tmp271, atslab_0) ; tmp269 = s2Var_subst_flag_54 (arg0, arg1, arg2, tmp283) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp271)->tag != 9) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp269 = arg1 ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp271)->tag != 10) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp285 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp286 = ats_ptrget_mac(ats_int_type, arg2) ; tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp285, arg2) ; tmp288 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp286) ; if (tmp288) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp (tmp284, tmp287) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp271)->tag != 11) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp289 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_0) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_1) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_2) ; tmp292 = ats_ptrget_mac(ats_int_type, arg2) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp290, arg2) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp291, arg2) ; tmp295 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp292) ; if (tmp295) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr (tmp289, tmp293, tmp294) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp271)->tag != 12) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp297 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp298 = ats_ptrget_mac(ats_int_type, arg2) ; tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp296, arg2) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp297, arg2) ; tmp301 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp298) ; if (tmp301) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp299, tmp300) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp271)->tag != 13) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp302 = ats_caselptrlab_mac(anairiats_sum_1, tmp271, atslab_0) ; tmp303 = ats_ptrget_mac(ats_int_type, arg2) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp302, arg2) ; tmp305 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp303) ; if (tmp305) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof (tmp304) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp271)->tag != 14) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_1, tmp271, atslab_0) ; tmp307 = ats_ptrget_mac(ats_int_type, arg2) ; tmp308 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2eff_subst_flag (arg0, tmp306, arg2) ; tmp309 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp307) ; if (tmp309) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff (tmp308) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp271)->tag != 15) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp310 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp311 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp312 = ats_ptrget_mac(ats_int_type, arg2) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp310, arg2) ; tmp314 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp311, arg2) ; tmp315 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp312) ; if (tmp315) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq (tmp313, tmp314) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp271)->tag != 16) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp316 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_0) ; tmp317 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_1) ; tmp318 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_2) ; tmp319 = ats_ptrget_mac(ats_int_type, arg2) ; tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp316, arg2) ; tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp317, arg2) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lablst_subst_flag (arg0, tmp318, arg2) ; tmp323 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp319) ; if (tmp323) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj (tmp320, tmp321, tmp322) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp271)->tag != 17) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp324 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp325 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp326 = ats_ptrget_mac(ats_int_type, arg2) ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp324, arg2) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp325, arg2) ; tmp329 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp326) ; if (tmp329) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp270, tmp327, tmp328) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp271)->tag != 18) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp330 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp331 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp332 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp333 ; */ tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_copy (arg0) ; tmp334 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst ((&tmp333), tmp330) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (tmp333, tmp331, arg2) ; /* tmp336 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp333) ; tmp337 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp332) ; if (tmp337) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (tmp270, ats_castfn_mac(ats_ptr_type, tmp334), tmp335) ; } else { /* tmp338 = */ list_vt_free_01499_ats_ptr_type (tmp334) ; tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp271)->tag != 19) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_14, tmp271, atslab_0) ; tmp340 = ats_caselptrlab_mac(anairiats_sum_14, tmp271, atslab_1) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_14, tmp271, atslab_2) ; tmp342 = ats_caselptrlab_mac(anairiats_sum_14, tmp271, atslab_3) ; tmp343 = ats_caselptrlab_mac(anairiats_sum_14, tmp271, atslab_4) ; tmp344 = ats_caselptrlab_mac(anairiats_sum_14, tmp271, atslab_5) ; tmp345 = ats_ptrget_mac(ats_int_type, arg2) ; tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2eff_subst_flag (arg0, tmp341, arg2) ; tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp343, arg2) ; tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp344, arg2) ; tmp349 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp345) ; if (tmp349) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (tmp270, tmp339, tmp340, tmp346, tmp342, tmp347, tmp348) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp271)->tag != 20) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp350 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_0) ; tmp351 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_1) ; tmp352 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_2) ; tmp353 = ats_ptrget_mac(ats_int_type, arg2) ; tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp351, arg2) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp352, arg2) ; tmp356 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp353) ; if (tmp356) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun (tmp350, tmp354, tmp355) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp271)->tag != 21) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp357 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp358 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp359 = ats_ptrget_mac(ats_int_type, arg2) ; tmp360 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp357, arg2) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp358, arg2) ; tmp362 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp359) ; if (tmp362) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec (tmp360, tmp361) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp271)->tag != 22) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp363 = ats_caselptrlab_mac(anairiats_sum_2, tmp271, atslab_0) ; tmp364 = ats_caselptrlab_mac(anairiats_sum_2, tmp271, atslab_1) ; tmp365 = ats_ptrget_mac(ats_int_type, arg2) ; tmp366 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp364, arg2) ; tmp367 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp365) ; if (tmp367) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt (tmp270, tmp363, tmp366) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp271)->tag != 23) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp368 = ats_caselptrlab_mac(anairiats_sum_1, tmp271, atslab_0) ; tmp369 = ats_ptrget_mac(ats_int_type, arg2) ; tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp368, arg2) ; tmp371 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp369) ; if (tmp371) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without (tmp370) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp271)->tag != 24) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp372 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp373 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp374 = ats_ptrget_mac(ats_int_type, arg2) ; tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp372, arg2) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp373, arg2) ; tmp377 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp374) ; if (tmp377) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr (tmp375, tmp376) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp271)->tag != 25) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp378 = ats_caselptrlab_mac(anairiats_sum_11, tmp271, atslab_0) ; tmp379 = ats_caselptrlab_mac(anairiats_sum_11, tmp271, atslab_1) ; tmp380 = ats_caselptrlab_mac(anairiats_sum_11, tmp271, atslab_2) ; tmp381 = ats_ptrget_mac(ats_int_type, arg2) ; tmp382 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_subst_flag (arg0, tmp380, arg2) ; tmp383 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp381) ; if (tmp383) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp270, tmp378, tmp379, tmp382) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp271)->tag != 26) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp384 = ats_caselptrlab_mac(anairiats_sum_1, tmp271, atslab_0) ; tmp385 = ats_ptrget_mac(ats_int_type, arg2) ; tmp386 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp384, arg2) ; tmp387 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp385) ; if (tmp387) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar (tmp386) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp271)->tag != 29) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp388 = ats_caselptrlab_mac(anairiats_sum_2, tmp271, atslab_0) ; tmp389 = ats_caselptrlab_mac(anairiats_sum_2, tmp271, atslab_1) ; tmp390 = ats_ptrget_mac(ats_int_type, arg2) ; tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp389, arg2) ; tmp392 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp390) ; if (tmp392) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg (tmp388, tmp391) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp271)->tag != 27) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp393 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_0) ; tmp394 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_1) ; tmp395 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_2) ; tmp269 = s2exp_subst_flag_exiuni_55 (0, arg0, arg1, arg2, tmp393, tmp394, tmp395) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp271)->tag != 28) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp396 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_0) ; tmp397 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_1) ; tmp398 = ats_caselptrlab_mac(anairiats_sum_10, tmp271, atslab_2) ; tmp269 = s2exp_subst_flag_exiuni_55 (1, arg0, arg1, arg2, tmp396, tmp397, tmp398) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp271)->tag != 30) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp399 = ats_caselptrlab_mac(anairiats_sum_1, tmp271, atslab_0) ; tmp400 = ats_ptrget_mac(ats_int_type, arg2) ; tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp399, arg2) ; tmp402 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp400) ; if (tmp402) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg (tmp401) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp271)->tag != 31) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp403 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_0) ; tmp404 = ats_caselptrlab_mac(anairiats_sum_9, tmp271, atslab_1) ; tmp405 = ats_ptrget_mac(ats_int_type, arg2) ; tmp406 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp403, arg2) ; tmp407 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__wths2explst_subst_flag (arg0, tmp404, arg2) ; tmp408 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp405) ; if (tmp408) { tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype (tmp406, tmp407) ; } else { tmp269 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (((ats_sum_ptr_type)tmp271)->tag != 32) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: tmp269 = arg1 ; break ; } while (0) ; return (tmp269) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 26710(line=1194, offs=3) -- 27033(line=1203, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_int_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_bool_type, tmp415) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag: do { /* branch: __ats_lab_129 */ __ats_lab_129_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp410 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp411 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp412 = ats_ptrget_mac(ats_int_type, arg2) ; tmp413 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp410, arg2) ; tmp414 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp411, arg2) ; tmp415 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp412) ; if (tmp415) { tmp409 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp409, atslab_0, tmp413) ; ats_selptrset_mac(anairiats_sum_4, tmp409, atslab_1, tmp414) ; } else { tmp409 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_130_1: tmp409 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp409) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 27102(line=1208, offs=3) -- 27440(line=1217, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2explstlst_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_int_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_bool_type, tmp422) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2explstlst_subst_flag: do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp417 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp418 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp419 = ats_ptrget_mac(ats_int_type, arg2) ; tmp420 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp417, arg2) ; tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2explstlst_subst_flag (arg0, tmp418, arg2) ; tmp422 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp419) ; if (tmp422) { tmp416 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp416, atslab_0, tmp420) ; ats_selptrset_mac(anairiats_sum_4, tmp416, atslab_1, tmp421) ; } else { tmp416 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: tmp416 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp416) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2explstlst_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 27533(line=1224, offs=3) -- 28001(line=1240, offs=8) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_int_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_bool_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_subst_flag: do { /* branch: __ats_lab_133 */ __ats_lab_133_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp423 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_134_1: tmp424 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp425 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp426 = ats_caselptrlab_mac(anairiats_sum_5, tmp424, atslab_0) ; tmp427 = ats_caselptrlab_mac(anairiats_sum_5, tmp424, atslab_1) ; tmp428 = ats_caselptrlab_mac(anairiats_sum_5, tmp424, atslab_2) ; tmp429 = ats_ptrget_mac(ats_int_type, arg2) ; tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp428, arg2) ; tmp431 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_subst_flag (arg0, tmp425, arg2) ; tmp432 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp429) ; if (tmp432) { tmp433 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp433, atslab_0, tmp426) ; ats_selptrset_mac(anairiats_sum_5, tmp433, atslab_1, tmp427) ; ats_selptrset_mac(anairiats_sum_5, tmp433, atslab_2, tmp430) ; tmp423 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp423, atslab_0, tmp433) ; ats_selptrset_mac(anairiats_sum_4, tmp423, atslab_1, tmp431) ; } else { tmp423 = arg1 ; } /* end of [if] */ break ; } while (0) ; return (tmp423) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2explst_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 28127(line=1247, offs=3) -- 29122(line=1285, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__wths2explst_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_int_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_int_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_bool_type, tmp441) ; ATSlocal (ats_int_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_int_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_bool_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_int_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_bool_type, tmp452) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__wths2explst_subst_flag: do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp434 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp435 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp436 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp437 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_2) ; tmp438 = ats_ptrget_mac(ats_int_type, arg2) ; tmp439 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp436, arg2) ; tmp440 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__wths2explst_subst_flag (arg0, tmp437, arg2) ; tmp441 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp438) ; if (tmp441) { tmp434 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp434)->tag = 2 ; ats_selptrset_mac(anairiats_sum_15, tmp434, atslab_0, tmp435) ; ats_selptrset_mac(anairiats_sum_15, tmp434, atslab_1, tmp439) ; ats_selptrset_mac(anairiats_sum_15, tmp434, atslab_2, tmp440) ; } else { tmp434 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp442 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp443 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp444 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_2) ; tmp445 = ats_ptrget_mac(ats_int_type, arg2) ; tmp446 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp443, arg2) ; tmp447 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__wths2explst_subst_flag (arg0, tmp444, arg2) ; tmp448 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp445) ; if (tmp448) { tmp434 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp434)->tag = 3 ; ats_selptrset_mac(anairiats_sum_15, tmp434, atslab_0, tmp442) ; ats_selptrset_mac(anairiats_sum_15, tmp434, atslab_1, tmp446) ; ats_selptrset_mac(anairiats_sum_15, tmp434, atslab_2, tmp447) ; } else { tmp434 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp450 = ats_ptrget_mac(ats_int_type, arg2) ; tmp451 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__wths2explst_subst_flag (arg0, tmp449, arg2) ; tmp452 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp450) ; if (tmp452) { tmp434 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp434)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp434, atslab_0, tmp451) ; } else { tmp434 = arg1 ; } /* end of [if] */ break ; } while (0) ; return (tmp434) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__wths2explst_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 29248(line=1293, offs=1) -- 29491(line=1306, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lab_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_int_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_bool_type, tmp457) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lab_subst_flag: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp453 = arg1 ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp454 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp455 = ats_ptrget_mac(ats_int_type, arg2) ; tmp456 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp454, arg2) ; tmp457 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp455) ; if (tmp457) { tmp453 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp453)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp453, atslab_0, tmp456) ; } else { tmp453 = arg1 ; } /* end of [if] */ break ; } while (0) ; return (tmp453) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lab_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 29581(line=1312, offs=1) -- 29917(line=1329, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lablst_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_int_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_bool_type, tmp464) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lablst_subst_flag: do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp458 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_142_1: tmp459 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp460 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp461 = ats_ptrget_mac(ats_int_type, arg2) ; tmp462 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lab_subst_flag (arg0, tmp459, arg2) ; tmp463 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lablst_subst_flag (arg0, tmp460, arg2) ; tmp464 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp461) ; if (tmp464) { tmp458 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp458, atslab_0, tmp462) ; ats_selptrset_mac(anairiats_sum_4, tmp458, atslab_1, tmp463) ; } else { tmp458 = arg1 ; } /* end of [if] */ break ; } while (0) ; return (tmp458) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2lablst_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 30031(line=1337, offs=3) -- 30517(line=1352, offs=8) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2eff_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_bool_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_int_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_bool_type, tmp475) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2eff_subst_flag: do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp465 = arg1 ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp466 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp467 = ats_ptrget_mac(ats_int_type, arg2) ; tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp466, arg2) ; tmp469 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp467) ; if (tmp469) { tmp465 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp465)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp465, atslab_0, tmp468) ; } else { tmp465 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_145_1: tmp470 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp471 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp472 = ats_ptrget_mac(ats_int_type, arg2) ; tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2eff_subst_flag (arg0, tmp470, arg2) ; tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2eff_subst_flag (arg0, tmp471, arg2) ; tmp475 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp472) ; if (tmp475) { tmp465 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp465)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp465, atslab_0, tmp473) ; ats_selptrset_mac(anairiats_sum_9, tmp465, atslab_1, tmp474) ; } else { tmp465 = arg1 ; } /* end of [if] */ break ; } while (0) ; return (tmp465) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2eff_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 30620(line=1359, offs=3) -- 32168(line=1431, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_int_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_int_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_int_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_int_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_int_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_bool_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_int_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_bool_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_int_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_bool_type, tmp503) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag: do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp476 = arg1 ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp476 = arg1 ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp476 = arg1 ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_152_0 ; } __ats_lab_149_1: tmp477 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp478 = ats_ptrget_mac(ats_int_type, arg2) ; tmp479 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find (arg0, tmp477) ; do { /* branch: __ats_lab_150 */ __ats_lab_150_0: if (tmp479 == (ats_sum_ptr_type)0) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp480 = ats_caselptrlab_mac(anairiats_sum_13, tmp479, atslab_0) ; ATS_FREE(tmp479) ; tmp481 = atspre_add_int_int (tmp478, 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp481 ; tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp (tmp480) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: // if (tmp479 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_151_1: tmp476 = arg1 ; break ; } while (0) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp482 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp483 = ats_ptrget_mac(ats_int_type, arg2) ; tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (tmp482) ; tmp485 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag (arg0, tmp484, arg2) ; tmp486 = atspre_add_int_int (tmp483, 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp486 ; tmp476 = tmp485 ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp476 = arg1 ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp476 = arg1 ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp487 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp488 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp489 = ats_ptrget_mac(ats_int_type, arg2) ; tmp490 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag (arg0, tmp487, arg2) ; tmp491 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2zexplst_subst_flag (arg0, tmp488, arg2) ; tmp492 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp489) ; if (tmp492) { tmp476 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp476)->tag = 7 ; ats_selptrset_mac(anairiats_sum_9, tmp476, atslab_0, tmp490) ; ats_selptrset_mac(anairiats_sum_9, tmp476, atslab_1, tmp491) ; } else { tmp476 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_157_0 ; } __ats_lab_156_1: tmp493 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp494 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp495 = ats_ptrget_mac(ats_int_type, arg2) ; tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag (arg0, tmp493, arg2) ; tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp494, arg2) ; tmp498 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp495) ; if (tmp498) { tmp476 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp476)->tag = 8 ; ats_selptrset_mac(anairiats_sum_9, tmp476, atslab_0, tmp496) ; ats_selptrset_mac(anairiats_sum_9, tmp476, atslab_1, tmp497) ; } else { tmp476 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp499 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp500 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp501 = ats_ptrget_mac(ats_int_type, arg2) ; tmp502 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2zexplst_subst_flag (arg0, tmp500, arg2) ; tmp503 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp501) ; if (tmp503) { tmp476 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp476)->tag = 9 ; ats_selptrset_mac(anairiats_sum_9, tmp476, atslab_0, tmp499) ; ats_selptrset_mac(anairiats_sum_9, tmp476, atslab_1, tmp502) ; } else { tmp476 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp476 = arg1 ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: // if (((ats_sum_ptr_type)arg1)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_159_1: tmp476 = arg1 ; break ; } while (0) ; return (tmp476) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 32254(line=1437, offs=3) -- 32588(line=1446, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2zexplst_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_int_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_bool_type, tmp510) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2zexplst_subst_flag: do { /* branch: __ats_lab_160 */ __ats_lab_160_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp505 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp506 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp507 = ats_ptrget_mac(ats_int_type, arg2) ; tmp508 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag (arg0, tmp505, arg2) ; tmp509 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2zexplst_subst_flag (arg0, tmp506, arg2) ; tmp510 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp507) ; if (tmp510) { tmp504 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp504, atslab_0, tmp505) ; ats_selptrset_mac(anairiats_sum_4, tmp504, atslab_1, tmp506) ; } else { tmp504 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_161_1: tmp504 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp504) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2zexplst_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 32682(line=1453, offs=3) -- 33158(line=1466, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2zexplst_subst_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_int_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_bool_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2zexplst_subst_flag: do { /* branch: __ats_lab_162 */ __ats_lab_162_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp512 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp513 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp514 = ats_caselptrlab_mac(anairiats_sum_4, tmp512, atslab_0) ; tmp515 = ats_caselptrlab_mac(anairiats_sum_4, tmp512, atslab_1) ; tmp516 = ats_ptrget_mac(ats_int_type, arg2) ; tmp517 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag (arg0, tmp515, arg2) ; tmp518 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2zexplst_subst_flag (arg0, tmp513, arg2) ; tmp519 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp516) ; if (tmp519) { tmp520 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp520, atslab_0, tmp514) ; ats_selptrset_mac(anairiats_sum_4, tmp520, atslab_1, tmp517) ; tmp511 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp511, atslab_0, tmp520) ; ats_selptrset_mac(anairiats_sum_4, tmp511, atslab_1, tmp518) ; } else { tmp511 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_163_1: tmp511 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp511) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__labs2zexplst_subst_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 33239(line=1472, offs=13) -- 33316(line=1474, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_int_type, tmp522) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst: /* ats_int_type tmp522 ; */ tmp522 = 0 ; tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, arg1, (&tmp522)) ; return (tmp521) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 33388(line=1479, offs=16) -- 33470(line=1481, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_int_type, tmp524) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst: /* ats_int_type tmp524 ; */ tmp524 = 0 ; tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, arg1, (&tmp524)) ; return (tmp523) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 33529(line=1485, offs=3) -- 33777(line=1492, offs=34) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt: do { /* branch: __ats_lab_164 */ __ats_lab_164_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp526 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp527 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp528 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (arg0, tmp526) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (arg0, tmp527) ; tmp525 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp525, atslab_0, tmp528) ; ats_selptrset_mac(anairiats_sum_4, tmp525, atslab_1, tmp529) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_165_1: tmp525 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp525) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 33839(line=1497, offs=3) -- 33926(line=1499, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_subst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_int_type, tmp531) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_subst: /* ats_int_type tmp531 ; */ tmp531 = 0 ; tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__s2explstlst_subst_flag (arg0, arg1, (&tmp531)) ; return (tmp530) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_subst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 34006(line=1505, offs=3) -- 34221(line=1513, offs=19) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_int_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_bool_type, tmp536) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst: do { /* branch: __ats_lab_166 */ __ats_lab_166_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp533 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; /* ats_int_type tmp534 ; */ tmp534 = 0 ; tmp535 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp533, (&tmp534)) ; tmp536 = atspre_gt_int_int (tmp534, 0) ; if (tmp536) { tmp532 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp532, atslab_0, tmp535) ; } else { tmp532 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_167_1: tmp532 = arg1 ; break ; } while (0) ; return (tmp532) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 34295(line=1520, offs=3) -- 34490(line=1527, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_alpha (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; // ATSlocal_void (tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; // ATSlocal_void (tmp542) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_alpha: /* ats_ptr_type tmp538 ; */ tmp538 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp540 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (arg1) ; /* tmp539 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add ((&tmp538), arg0, tmp540) ; tmp541 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp538, arg2) ; /* tmp542 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp538) ; tmp537 = tmp541 ; return (tmp537) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_alpha] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 34576(line=1532, offs=7) -- 35126(line=1546, offs=27) */ ATSstaticdec() ats_ptr_type aux_76 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_int_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_bool_type, tmp550) ; ATSlocal (ats_int_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_bool_type, tmp554) ; ATSlocal (ats_int_type, tmp555) ; ATSlocal (ats_bool_type, tmp556) ; __ats_lab_aux_76: do { /* branch: __ats_lab_168 */ __ats_lab_168_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_169_0 ; } __ats_lab_168_1: tmp545 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp546 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; /* ats_int_type tmp547 ; */ tmp547 = 0 ; tmp548 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_alpha (env0, env1, tmp545) ; tmp550 = atspre_pneq (ats_castfn_mac(ats_ptr_type, tmp545), ats_castfn_mac(ats_ptr_type, tmp548)) ; if (tmp550) { tmp551 = atspre_iadd (tmp547, 1) ; tmp547 = tmp551 ; } else { /* empty */ } /* end of [if] */ tmp552 = aux_76 (env0, env1, tmp546) ; tmp554 = atspre_pneq (ats_castfn_mac(ats_ptr_type, tmp546), ats_castfn_mac(ats_ptr_type, tmp552)) ; if (tmp554) { tmp555 = atspre_add_int_int (tmp547, 1) ; tmp547 = tmp555 ; } else { /* empty */ } /* end of [if] */ tmp556 = atspre_gt_int_int (tmp547, 0) ; if (tmp556) { tmp544 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp544, atslab_0, tmp548) ; ats_selptrset_mac(anairiats_sum_4, tmp544, atslab_1, tmp552) ; } else { tmp544 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_169_1: tmp544 = arg0 ; break ; } while (0) ; return (tmp544) ; } /* end of [aux_76] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } aux_76_closure_type ; ats_ptr_type aux_76_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_76 (((aux_76_closure_type*)cloptr)->closure_env_0, ((aux_76_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_76_closure_init (aux_76_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_76_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_76_closure_make (ats_ptr_type env0, ats_ptr_type env1) { aux_76_closure_type *p_clo = ATS_MALLOC(sizeof(aux_76_closure_type)) ; aux_76_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util1.dats: 34543(line=1531, offs=3) -- 35164(line=1550, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_alpha (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp543) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_alpha: tmp543 = aux_76 (arg0, arg1, arg2) ; return (tmp543) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_alpha] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util1_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_util1_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_typerase_error_dats.c0000644000175000017500000007231613431250607023603 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* 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_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type the_trans4errlst_get_1 () ; static ats_int_type loop_5 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_7 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp3) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp2 ; */ tmp2 = arg0 ; tmp1 = atspre_ref_make_elt_tsz ((&tmp2), sizeof(ats_ptr_type)) ; return (tmp1) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_error.dats: 1719(line=61, offs=1) -- 1883(line=68, offs=4) */ ATSstaticdec() ats_ptr_type the_trans4errlst_get_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_the_trans4errlst_get_1: tmp5 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp6 = ats_ptrget_mac(ats_ptr_type, tmp5) ; tmp7 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp5) = tmp7 ; tmp4 = tmp6 ; return (tmp4) ; } /* end of [the_trans4errlst_get_1] */ /* // /tmp/ATS-Postiats/src/pats_typerase_error.dats: 1975(line=73, offs=22) -- 2089(line=76, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_add: tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp11 = ats_ptrget_mac(ats_ptr_type, tmp9) ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_1, tmp11) ; ats_ptrget_mac(ats_ptr_type, tmp9) = tmp10 ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_5 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp17 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp18 = ats_ptrget_mac(ats_ptr_type, tmp17) ; tmp19 = atspre_iadd (arg1, 1) ; arg0 = tmp18 ; arg1 = tmp19 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp16 = arg1 ; break ; } while (0) ; return (tmp16) ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp15) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp15 = loop_5 (arg0, 0) ; return (tmp15) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_7 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab_loop_7: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp23 ; goto __ats_lab_loop_7 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp22) */ ; } /* end of [loop_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp21 = */ loop_7 (arg0) ; return /* (tmp21) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_error.dats: 2162(line=80, offs=3) -- 2620(line=100, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_finalize () { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_finalize: tmp13 = the_trans4errlst_get_1 () ; tmp14 = list_vt_length_01501_ats_ptr_type (tmp13) ; /* tmp20 = */ list_vt_free_01499_ats_ptr_type (tmp13) ; tmp25 = atspre_igt (tmp14, 0) ; if (tmp25) { /* tmp24 = */ atspre_fprintf_exn (stderr, ATSstrcst("patsopt(TYPERASE): there are [%i] errors in total.\n"), tmp14) ; } else { /* empty */ } /* end of [if] */ tmp26 = atspre_igt (tmp14, 0) ; if (tmp26) { tmp27 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS4_EXN) ; /* tmp12 = */ ats_raise_exn (tmp27) ; } else { /* empty */ } /* end of [if] */ return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_finalize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_error_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp3, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp3 = (ats_sum_ptr_type)0 ; statmp0 = ref_01088_ats_ptr_type (statmp3) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_typerase_error_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lexbuf_sats.c0000644000175000017500000000227713431250607022041 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" /* external codes at top */ #include "pats_lexbuf.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lexbuf_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_tokbuf.cats0000644000175000017500000000354213431250607021520 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_TOKBUF_CATS #define POSTIATS_SRC_PATS_TOKBUF_CATS /* ****** ****** */ #include "libats/CATS/linqueue_arr.cats" /* ****** ****** */ #include "pats_lexbuf.cats" /* ****** ****** */ typedef struct { // atslib_linqueue_arr_QUEUE tbuf ; // ats_uint_type ntok ; // the current token number // pats_lexbuf_struct lexbuf ; // for lexing // } pats_tokbuf_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_TOKBUF_CATS] /* ****** ****** */ /* end of [pats_tokbuf.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_staexp_dats.c0000644000175000017500000047012113431250607023326 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_s0arg_loc ; ats_ptr_type atslab_s0arg_sym ; ats_ptr_type atslab_s0arg_srt ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_s0marg_loc ; ats_ptr_type atslab_s0marg_arg ; } anairiats_rec_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_s1exp_loc ; ats_ptr_type atslab_s1exp_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_s0qua_loc ; ats_ptr_type atslab_s0qua_node ; } anairiats_rec_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_s0exp_loc ; ats_ptr_type atslab_s0exp_node ; } anairiats_rec_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_clo_ref_type atslab_1 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_clo_ref_type atslab_2 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_18 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_19 ; typedef struct { ats_ptr_type atslab_s0rtext_loc ; ats_ptr_type atslab_s0rtext_node ; } anairiats_rec_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_21 ; typedef struct { ats_ptr_type atslab_i0de_loc ; ats_ptr_type atslab_i0de_sym ; } anairiats_rec_22 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_23 ; typedef struct { ats_ptr_type atslab_q0marg_loc ; ats_ptr_type atslab_q0marg_arg ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_t0mpmarg_loc ; ats_ptr_type atslab_t0mpmarg_arg ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_a0typ_loc ; ats_ptr_type atslab_a0typ_sym ; ats_ptr_type atslab_a0typ_typ ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_sp0at_loc ; ats_ptr_type atslab_sp0at_node ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_sqi0de_loc ; ats_ptr_type atslab_sqi0de_qua ; ats_ptr_type atslab_sqi0de_sym ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_m0acarg_loc ; ats_ptr_type atslab_m0acarg_node ; } anairiats_rec_29 ; typedef struct { ats_ptr_type atslab_m1acarg_loc ; ats_ptr_type atslab_m1acarg_node ; } anairiats_rec_30 ; typedef struct { ats_ptr_type atslab_d0atcon_loc ; ats_ptr_type atslab_d0atcon_sym ; ats_ptr_type atslab_d0atcon_qua ; ats_ptr_type atslab_d0atcon_arg ; ats_ptr_type atslab_d0atcon_ind ; } anairiats_rec_31 ; typedef struct { ats_ptr_type atslab_d0cstarg_loc ; ats_ptr_type atslab_d0cstarg_node ; } anairiats_rec_32 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_33 ; typedef struct { ats_ptr_type atslab_d0cstdec_loc ; ats_ptr_type atslab_d0cstdec_fil ; ats_ptr_type atslab_d0cstdec_sym ; ats_ptr_type atslab_d0cstdec_arg ; ats_ptr_type atslab_d0cstdec_eff ; ats_ptr_type atslab_d0cstdec_res ; ats_ptr_type atslab_d0cstdec_extopt ; } anairiats_rec_34 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMatm_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMopr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRinf_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpre_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpos_2) ; 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_syntax_2esats__SL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SP0Tcstr_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAvars_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsub_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Esqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eopid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Echar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Efloat_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Estring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextype_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextkind_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elam_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eimp_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist2_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyarr_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etytup_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_ext_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Euni_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eexi_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eann_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Ed2ctype_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__WITHT0YPEsome_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__WITHT0YPEnone_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0CSTARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0CSTARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__M0ACARGdyn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__M0ACARGsta_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_ext_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_mac_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_sta_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__I0MPARG_sarglst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__I0MPARG_svararglst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGdyn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__M1ACARGsta_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEsome_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEnone_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_s0exp_tr_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_d0cstdec_tr_6) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_is_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERSAND) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERBANG) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERQMARK) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTGT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARK) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARKBANG) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exi_prec_sta) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__uni_prec_sta) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__invar_prec_sta) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmark_prec_sta) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmarkbang_prec_sta) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__trans_prec_sta) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app) (ats_ptr_type, ats_clo_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1arg_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1marg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__sp1at_cstr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_c0har) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_s0tring) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extype) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extkind) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_sqid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_lam) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_imp) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list2) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_npf_list) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_invar) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_trans) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyarr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tytup) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec_ext) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_exi) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ann) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_d2ctype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_err) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__labs1exp_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_sub) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_prop) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_vars) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_one) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_all) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_seq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_dyn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_sta) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__q1marg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_sarglst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_svararglst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1mpmarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atcon_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1cstdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__dcstextdef_tr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtopt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labs0exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtext_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__S0Ed2ctype_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typ_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typlst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__m0acarglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0cstdeclst_tr) (ats_bool_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, patsopt_extnam_ismac) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, patsopt_extnam_issta) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, patsopt_extnam_isext) (ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02085_ () ; static ats_ptr_type extprfx_add_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_char_type ptr0_get_01703_ats_char_type (ats_ptr_type arg0) ; static ats_char_type ptrget_01707_ats_char_type (ats_ptr_type arg0) ; static ats_bool_type isemp_3 (ats_ptr_type arg0) ; static ats_bool_type isperc_6 (ats_ptr_type arg0) ; static ats_void_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type appf_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type appf_18_closure_make () ; static ats_ptr_type appf_18_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s1expitm_app_19 (ats_ptr_type arg0) ; static ats_ptr_type s1exp_get_loc_20 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_22_closure_make () ; static ats_ptr_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s1exp_make_opr_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_24 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_25_closure_make () ; static ats_ptr_type __ats_fun_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s1expitm_backslash_23 (ats_ptr_type arg0) ; static ats_ptr_type s0qua_tr_26 (ats_ptr_type arg0) ; static ats_void_type prerr_error1_loc_02088_ (ats_ptr_type arg0) ; static ats_ptr_type s0exp_tr_errmsg_opr_29 (ats_ptr_type arg0) ; static ats_ptr_type aux_extarg_31 (ats_ptr_type arg0) ; static ats_ptr_type f_35 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type f_35_closure_make (ats_ptr_type env0) ; static ats_ptr_type f_35_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_36 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type f_36_closure_make (ats_ptr_type env0) ; static ats_ptr_type f_36_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_37 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type f_37_closure_make (ats_ptr_type env0) ; static ats_ptr_type f_37_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_38 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type f_38_closure_make (ats_ptr_type env0) ; static ats_ptr_type f_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_39 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type f_39_closure_make (ats_ptr_type env0) ; static ats_ptr_type f_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_40 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type f_40_closure_make (ats_ptr_type env0) ; static ats_ptr_type f_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_41 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type f_41_closure_make () ; static ats_ptr_type f_41_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_42 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type f_42_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type f_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_43 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type f_43_closure_make (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2) ; static ats_ptr_type f_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_item_33 (ats_ptr_type arg0) ; static ats_ptr_type loop_44 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_itemlst_34 (ats_ptr_type arg0) ; static ats_void_type loop_60 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_interror_02086_ () ; static ats_ptr_type aux1_63 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ref_type arg6, ats_ptr_type arg7, ats_ptr_type arg8) ; static ats_ptr_type aux2_64 (ats_ptr_type arg0, ats_bool_type arg1, ats_bool_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type d0cstdec_tr_65 (ats_bool_type arg0, ats_bool_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 1728(line=57, offs=28) -- 1759(line=57, offs=59) */ ATSstaticdec() ats_void_type prerr_FILENAME_02085_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02085_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans1_staexp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02085_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 3087(line=122, offs=1) -- 3798(line=166, offs=4) */ ATSstaticdec() ats_ptr_type extprfx_add_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_bool_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_extprfx_add_1: tmp2 = atspre_padd_int (arg1, 1) ; tmp4 = atspre_string_is_empty (ats_castfn_mac(ats_ptr_type, tmp2)) ; if (tmp4) { tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (arg0) ; } else { tmp3 = ats_castfn_mac(ats_ptr_type, tmp2) ; } /* end of [if] */ tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_EXTERN_PREFIX_get () ; tmp6 = atspre_stropt_is_some (tmp5) ; if (tmp6) { tmp7 = atspre_tostringf (ATSstrcst("%s%s"), ats_castfn_mac(ats_ptr_type, tmp5), tmp3) ; tmp1 = ats_castfn_mac(ats_ptr_type, tmp7) ; } else { tmp8 = atspre_tostringf (ATSstrcst("__ATS_EXTERN_PREFIX__%s"), tmp3) ; tmp1 = ats_castfn_mac(ats_ptr_type, tmp8) ; } /* end of [if] */ return (tmp1) ; } /* end of [extprfx_add_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_char_type ptr0_get_01703_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp13) ; __ats_lab_ptr0_get_01703_ats_char_type: tmp13 = ats_ptrget_mac(ats_char_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp13) ; } /* end of [ptr0_get_01703_ats_char_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41) */ ATSstaticdec() ats_char_type ptrget_01707_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp12) ; __ats_lab_ptrget_01707_ats_char_type: tmp12 = ptr0_get_01703_ats_char_type (arg0) ; return (tmp12) ; } /* end of [ptrget_01707_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 3918(line=176, offs=5) -- 3970(line=177, offs=47) */ ATSstaticdec() ats_bool_type isemp_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_char_type, tmp11) ; __ats_lab_isemp_3: tmp11 = ptrget_01707_ats_char_type (arg0) ; tmp10 = atspre_eq_char_char (tmp11, '\000') ; return (tmp10) ; } /* end of [isemp_3] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 3975(line=178, offs=5) -- 4028(line=179, offs=47) */ ATSstaticdec() ats_bool_type isperc_6 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_char_type, tmp15) ; __ats_lab_isperc_6: tmp15 = ptrget_01707_ats_char_type (arg0) ; tmp14 = atspre_eq_char_char (tmp15, '%') ; return (tmp14) ; } /* end of [isperc_6] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 3872(line=172, offs=3) -- 4230(line=190, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_bool_type, tmp16) ; ATSlocal (ats_bool_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp16 = isemp_3 (ats_castfn_mac(ats_ptr_type, arg1)) ; if (!tmp16) { goto __ats_lab_1_1 ; } tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (arg0) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp17 = isperc_6 (ats_castfn_mac(ats_ptr_type, arg1)) ; if (!tmp17) { goto __ats_lab_2_1 ; } tmp9 = extprfx_add_1 (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp9 = arg1 ; break ; } while (0) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 4617(line=221, offs=3) -- 5175(line=251, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__scstextdef_tr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_bool_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__scstextdef_tr: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp18 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp20 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp19), atslab_token_node) ; if (((ats_sum_ptr_type)tmp20)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 4882(line=242, offs=9) -- 4916(line=242, offs=43)") ; } tmp21 = ats_caselptrlab_mac(anairiats_sum_4, tmp20, atslab_0) ; /* ats_ptr_type tmp22 ; */ tmp22 = tmp21 ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp23 = patsopt_extnam_isext (tmp21, (&tmp22)) ; if (!tmp23) { goto __ats_lab_6_1 ; } tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef (arg1, tmp22) ; tmp18 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp18, atslab_0, tmp24) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef (arg1, tmp22) ; tmp18 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp18, atslab_0, tmp25) ; break ; } while (0) ; break ; } while (0) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__scstextdef_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 5229(line=255, offs=3) -- 5944(line=289, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__dcstextdef_tr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_bool_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__dcstextdef_tr: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp26 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp26)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp26, atslab_0, 1) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp27), atslab_token_node) ; if (((ats_sum_ptr_type)tmp28)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 5505(line=276, offs=9) -- 5539(line=276, offs=43)") ; } tmp29 = ats_caselptrlab_mac(anairiats_sum_4, tmp28, atslab_0) ; /* ats_ptr_type tmp30 ; */ tmp30 = tmp29 ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp31 = patsopt_extnam_ismac (tmp29, (&tmp30)) ; if (!tmp31) { goto __ats_lab_10_1 ; } tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef (arg1, tmp30) ; tmp26 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp26)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp26, atslab_0, tmp32) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp33 = patsopt_extnam_issta (tmp29, (&tmp30)) ; if (!tmp33) { goto __ats_lab_11_1 ; } tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef (arg1, tmp30) ; tmp26 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp26)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp26, atslab_0, tmp34) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp35 = patsopt_extnam_isext (tmp29, (&tmp30)) ; if (!tmp35) { goto __ats_lab_12_1 ; } tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef (arg1, tmp30) ; tmp26 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp26)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp26, atslab_0, tmp36) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__proc_extdef (arg1, tmp30) ; tmp26 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp26)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp26, atslab_0, tmp37) ; break ; } while (0) ; break ; } while (0) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__dcstextdef_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 6035(line=296, offs=10) -- 6133(line=300, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arg_tr: tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s0arg_srt) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtopt_tr (tmp40) ; tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s0arg_loc) ; tmp42 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s0arg_sym) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1arg_make (tmp41, tmp42, tmp39) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arg_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab_loop_13: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp50 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp48, arg3) ; tmp51 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp51, atslab_0, tmp50) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp51 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp52 = &ats_caselptrlab_mac(anairiats_sum_7, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp49 ; arg1 = arg1 ; arg2 = tmp52 ; arg3 = arg3 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp53 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp53 ; break ; } while (0) ; return /* (tmp47) */ ; } /* end of [loop_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp54) ; // ATSlocal_void (tmp55) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp54 ; */ /* tmp55 = */ loop_13 (arg0, arg1, (&tmp54), arg2) ; tmp46 = tmp54 ; return (tmp46) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp45 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp45) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 6178(line=303, offs=13) -- 6218(line=303, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr: tmp44 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arg_tr) ; tmp43 = ats_castfn_mac(ats_ptr_type, tmp44) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 6241(line=306, offs=11) -- 6346(line=311, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marg_tr: tmp57 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s0marg_loc) ; tmp59 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s0marg_arg) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr (tmp59) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1marg_make (tmp57, tmp58) ; return (tmp56) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marg_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 6393(line=314, offs=14) -- 6435(line=314, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marglst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marglst_tr: tmp61 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marg_tr) ; tmp60 = ats_castfn_mac(ats_ptr_type, tmp61) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marglst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 6483(line=320, offs=3) -- 6682(line=324, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararg_tr: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp64 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr (tmp64) ; tmp62 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp62)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp62, atslab_0, tmp63) ; ats_selptrset_mac(anairiats_sum_9, tmp62, atslab_1, tmp65) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp67 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp66), atslab_token_loc) ; tmp62 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp62)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp62, atslab_0, tmp67) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp68), atslab_token_loc) ; tmp62 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp62)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp62, atslab_0, tmp69) ; break ; } while (0) ; return (tmp62) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararg_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 6733(line=328, offs=16) -- 6779(line=328, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararglst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararglst_tr: tmp71 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararg_tr) ; tmp70 = ats_castfn_mac(ats_ptr_type, tmp71) ; return (tmp70) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararglst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 6950(line=341, offs=4) -- 7354(line=354, offs=4) */ ATSstaticdec() ats_ptr_type appf_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; __ats_lab_appf_18: tmp73 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_s1exp_loc) ; tmp75 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp75, tmp73) ; tmp77 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_s1exp_node) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp77)->tag != 13) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_11, tmp77, atslab_1) ; tmp76 = tmp78 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp79 = (ats_sum_ptr_type)0 ; tmp76 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp76, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp76, atslab_1, tmp79) ; break ; } while (0) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app (tmp74, arg0, tmp73, tmp76) ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp72)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp72, atslab_0, tmp80) ; return (tmp72) ; } /* end of [appf_18] */ typedef struct { ats_fun_ptr_type closure_fun ; } appf_18_closure_type ; ats_ptr_type appf_18_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return appf_18 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type appf_18_closure_init (appf_18_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&appf_18_clofun ; return ; } /* end of function */ ats_clo_ptr_type appf_18_closure_make () { appf_18_closure_type *p_clo = ATS_MALLOC(sizeof(appf_18_closure_type)) ; appf_18_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 7400(line=358, offs=4) -- 7464(line=359, offs=52) */ ATSstaticdec() ats_ptr_type s1expitm_app_19 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp81) ; __ats_lab_s1expitm_app_19: tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app (arg0, appf_18_closure_make ()) ; return (tmp81) ; } /* end of [s1expitm_app_19] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 7517(line=364, offs=4) -- 7565(line=364, offs=52) */ ATSstaticdec() ats_ptr_type s1exp_get_loc_20 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; __ats_lab_s1exp_get_loc_20: tmp82 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; return (tmp82) ; } /* end of [s1exp_get_loc_20] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 7675(line=371, offs=5) -- 7735(line=371, offs=65) */ ATSstaticdec() ats_ptr_type __ats_fun_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; __ats_lab___ats_fun_22: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app (arg0, arg1, arg2, arg3) ; return (tmp84) ; } /* end of [__ats_fun_22] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_22_closure_type ; ats_ptr_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_22 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_22_closure_init (__ats_fun_22_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_22_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_22_closure_make () { __ats_fun_22_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_22_closure_type)) ; __ats_fun_22_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 7570(line=366, offs=4) -- 7776(line=374, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_make_opr_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; __ats_lab_s1exp_make_opr_21: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make (&s1exp_get_loc_20, __ats_fun_22_closure_make (), arg0, arg1) ; return (tmp83) ; } /* end of [s1exp_make_opr_21] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 7894(line=379, offs=5) -- 7914(line=379, offs=25) */ ATSstaticdec() ats_ptr_type __ats_fun_24 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; __ats_lab___ats_fun_24: tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; return (tmp86) ; } /* end of [__ats_fun_24] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 7919(line=380, offs=5) -- 7979(line=380, offs=65) */ ATSstaticdec() ats_ptr_type __ats_fun_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; __ats_lab___ats_fun_25: tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app (arg0, arg1, arg2, arg3) ; return (tmp87) ; } /* end of [__ats_fun_25] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_25_closure_type ; ats_ptr_type __ats_fun_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_25 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_25_closure_init (__ats_fun_25_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_25_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_25_closure_make () { __ats_fun_25_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_25_closure_type)) ; __ats_fun_25_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 7808(line=376, offs=4) -- 8031(line=383, offs=4) */ ATSstaticdec() ats_ptr_type s1expitm_backslash_23 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; __ats_lab_s1expitm_backslash_23: tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash (&__ats_fun_24, __ats_fun_25_closure_make (), arg0) ; return (tmp85) ; } /* end of [s1expitm_backslash_23] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 8088(line=387, offs=4) -- 8340(line=396, offs=6) */ ATSstaticdec() ats_ptr_type s0qua_tr_26 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; __ats_lab_s0qua_tr_26: tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_s0qua_node) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp89)->tag != 0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_4, tmp89, atslab_0) ; tmp91 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_s0qua_loc) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp90) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_prop (tmp91, tmp92) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (((ats_sum_ptr_type)tmp89)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_13, tmp89, atslab_0) ; tmp94 = ats_caselptrlab_mac(anairiats_sum_13, tmp89, atslab_1) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_13, tmp89, atslab_2) ; tmp96 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_s0qua_loc) ; tmp97 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp97, atslab_0, tmp93) ; ats_selptrset_mac(anairiats_sum_7, tmp97, atslab_1, tmp94) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtext_tr (tmp95) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1qua_vars (tmp96, tmp97, tmp98) ; break ; } while (0) ; return (tmp88) ; } /* end of [s0qua_tr_26] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 8407(line=400, offs=13) -- 8446(line=400, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr: tmp100 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &s0qua_tr_26) ; tmp99 = ats_castfn_mac(ats_ptr_type, tmp100) ; return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 8473(line=402, offs=16) -- 8517(line=402, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualstlst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualstlst_tr: tmp102 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr) ; tmp101 = ats_castfn_mac(ats_ptr_type, tmp102) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualstlst_tr] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1988(line=70, offs=17) -- 2046(line=73, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_02088_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; __ats_lab_prerr_error1_loc_02088_: /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp106 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp106) */ ; } /* end of [prerr_error1_loc_02088_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 8551(line=408, offs=4) -- 8801(line=416, offs=4) */ ATSstaticdec() ats_ptr_type s0exp_tr_errmsg_opr_29 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; __ats_lab_s0exp_tr_errmsg_opr_29: tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0exp_loc) ; /* tmp105 = */ prerr_error1_loc_02088_ (tmp104) ; /* tmp108 = */ atspre_prerr_string (ATSstrcst(": the operator needs to be applied.")) ; /* tmp109 = */ atspre_prerr_newline () ; tmp111 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp111)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp111, atslab_0, arg0) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp111) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_err (tmp104) ; return (tmp103) ; } /* end of [s0exp_tr_errmsg_opr_29] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 8838(line=418, offs=4) -- 8997(line=422, offs=4) */ ATSstaticdec() ats_ptr_type aux_extarg_31 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab_aux_extarg_31: tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (arg0) ; tmp114 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp113), atslab_s1exp_node) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp114)->tag != 13) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_11, tmp114, atslab_1) ; tmp112 = tmp115 ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp116 = (ats_sum_ptr_type)0 ; tmp112 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp112, atslab_0, tmp113) ; ats_selptrset_mac(anairiats_sum_7, tmp112, atslab_1, tmp116) ; break ; } while (0) ; return (tmp112) ; } /* end of [aux_extarg_31] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 9285(line=446, offs=10) -- 9453(line=452, offs=10) */ ATSstaticdec() ats_ptr_type f_35 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab_f_35: tmp125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp125) ; tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_invar (tmp124, 1, arg0) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp123)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp123, atslab_0, tmp126) ; return (tmp123) ; } /* end of [f_35] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } f_35_closure_type ; ats_ptr_type f_35_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_35 (((f_35_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type f_35_closure_init (f_35_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&f_35_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type f_35_closure_make (ats_ptr_type env0) { f_35_closure_type *p_clo = ATS_MALLOC(sizeof(f_35_closure_type)) ; f_35_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 9620(line=458, offs=10) -- 9788(line=464, offs=10) */ ATSstaticdec() ats_ptr_type f_36 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; __ats_lab_f_36: tmp132 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp132) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_invar (tmp131, 2, arg0) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp130)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp130, atslab_0, tmp133) ; return (tmp130) ; } /* end of [f_36] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } f_36_closure_type ; ats_ptr_type f_36_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_36 (((f_36_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type f_36_closure_init (f_36_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&f_36_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type f_36_closure_make (ats_ptr_type env0) { f_36_closure_type *p_clo = ATS_MALLOC(sizeof(f_36_closure_type)) ; f_36_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 9954(line=470, offs=10) -- 10123(line=476, offs=10) */ ATSstaticdec() ats_ptr_type f_37 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab_f_37: tmp139 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp139) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_invar (tmp138, 3, arg0) ; tmp137 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp137)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp137, atslab_0, tmp140) ; return (tmp137) ; } /* end of [f_37] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } f_37_closure_type ; ats_ptr_type f_37_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_37 (((f_37_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type f_37_closure_init (f_37_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&f_37_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type f_37_closure_make (ats_ptr_type env0) { f_37_closure_type *p_clo = ATS_MALLOC(sizeof(f_37_closure_type)) ; f_37_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 10386(line=487, offs=10) -- 10552(line=493, offs=10) */ ATSstaticdec() ats_ptr_type f_38 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; __ats_lab_f_38: tmp148 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp148) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_invar (tmp147, 0, arg0) ; tmp146 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp146)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp146, atslab_0, tmp149) ; return (tmp146) ; } /* end of [f_38] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } f_38_closure_type ; ats_ptr_type f_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_38 (((f_38_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type f_38_closure_init (f_38_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&f_38_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type f_38_closure_make (ats_ptr_type env0) { f_38_closure_type *p_clo = ATS_MALLOC(sizeof(f_38_closure_type)) ; f_38_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 10717(line=500, offs=10) -- 10882(line=506, offs=10) */ ATSstaticdec() ats_ptr_type f_39 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab_f_39: tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp155, env0) ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top (env0, 0, arg0) ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp153)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp153, atslab_0, tmp156) ; return (tmp153) ; } /* end of [f_39] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } f_39_closure_type ; ats_ptr_type f_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_39 (((f_39_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type f_39_closure_init (f_39_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&f_39_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type f_39_closure_make (ats_ptr_type env0) { f_39_closure_type *p_clo = ATS_MALLOC(sizeof(f_39_closure_type)) ; f_39_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 11048(line=512, offs=10) -- 11213(line=518, offs=10) */ ATSstaticdec() ats_ptr_type f_40 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; __ats_lab_f_40: tmp162 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp162, env0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top (env0, 1, arg0) ; tmp160 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp160)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp160, atslab_0, tmp163) ; return (tmp160) ; } /* end of [f_40] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } f_40_closure_type ; ats_ptr_type f_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_40 (((f_40_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type f_40_closure_init (f_40_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&f_40_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type f_40_closure_make (ats_ptr_type env0) { f_40_closure_type *p_clo = ATS_MALLOC(sizeof(f_40_closure_type)) ; f_40_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 11381(line=525, offs=10) -- 11576(line=532, offs=10) */ ATSstaticdec() ats_ptr_type f_41 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; __ats_lab_f_41: tmp169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_s1exp_loc) ; tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp169, tmp170) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_trans (tmp168, arg0, arg1) ; tmp167 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp167)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp167, atslab_0, tmp171) ; return (tmp167) ; } /* end of [f_41] */ typedef struct { ats_fun_ptr_type closure_fun ; } f_41_closure_type ; ats_ptr_type f_41_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return f_41 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type f_41_closure_init (f_41_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&f_41_clofun ; return ; } /* end of function */ ats_clo_ptr_type f_41_closure_make () { f_41_closure_type *p_clo = ATS_MALLOC(sizeof(f_41_closure_type)) ; f_41_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 14997(line=650, offs=10) -- 15156(line=655, offs=10) */ ATSstaticdec() ats_ptr_type f_42 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; __ats_lab_f_42: tmp253 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp253) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_uni (tmp252, env1, arg0) ; tmp251 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp251)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp251, atslab_0, tmp254) ; return (tmp251) ; } /* end of [f_42] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } f_42_closure_type ; ats_ptr_type f_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_42 (((f_42_closure_type*)cloptr)->closure_env_0, ((f_42_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type f_42_closure_init (f_42_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&f_42_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type f_42_closure_make (ats_ptr_type env0, ats_ptr_type env1) { f_42_closure_type *p_clo = ATS_MALLOC(sizeof(f_42_closure_type)) ; f_42_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 15354(line=664, offs=10) -- 15518(line=669, offs=10) */ ATSstaticdec() ats_ptr_type f_43 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; __ats_lab_f_43: tmp261 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1exp_loc) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp261) ; tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_exi (tmp260, env1, env2, arg0) ; tmp259 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp259)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp259, atslab_0, tmp262) ; return (tmp259) ; } /* end of [f_43] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_int_type closure_env_1 ; ats_ptr_type closure_env_2 ; } f_43_closure_type ; ats_ptr_type f_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_43 (((f_43_closure_type*)cloptr)->closure_env_0, ((f_43_closure_type*)cloptr)->closure_env_1, ((f_43_closure_type*)cloptr)->closure_env_2, arg0) ; } /* end of function */ ATSinline() ats_void_type f_43_closure_init (f_43_closure_type *p_clo, ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&f_43_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type f_43_closure_make (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2) { f_43_closure_type *p_clo = ATS_MALLOC(sizeof(f_43_closure_type)) ; f_43_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 9107(line=432, offs=1) -- 16200(line=696, offs=4) */ ATSstaticdec() ats_ptr_type aux_item_33 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_bool_type, tmp122) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_bool_type, tmp129) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_bool_type, tmp136) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_bool_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_bool_type, tmp152) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_bool_type, tmp159) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_bool_type, tmp166) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (anairiats_rec_1, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_int_type, tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_int_type, tmp234) ; ATSlocal (ats_int_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_int_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_int_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; __ats_lab_aux_item_33: tmp119 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0exp_loc) ; tmp120 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0exp_node) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp121, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERSAND) ; if (!tmp122) { goto __ats_lab_25_1 ; } tmp127 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp127)->tag = 1 ; ats_selptrset_mac(anairiats_sum_15, tmp127, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__invar_prec_sta) ; ats_selptrset_mac(anairiats_sum_15, tmp127, atslab_1, f_35_closure_make (tmp119)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp118)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_1, tmp127) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp128 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp128, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERQMARK) ; if (!tmp129) { goto __ats_lab_26_1 ; } tmp134 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp134)->tag = 1 ; ats_selptrset_mac(anairiats_sum_15, tmp134, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__invar_prec_sta) ; ats_selptrset_mac(anairiats_sum_15, tmp134, atslab_1, f_36_closure_make (tmp119)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp118)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_1, tmp134) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp135, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERBANG) ; if (!tmp136) { goto __ats_lab_27_1 ; } tmp141 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp141)->tag = 1 ; ats_selptrset_mac(anairiats_sum_15, tmp141, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__invar_prec_sta) ; ats_selptrset_mac(anairiats_sum_15, tmp141, atslab_1, f_37_closure_make (tmp119)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp118)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_1, tmp141) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp142 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp142, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; if (!tmp143) { goto __ats_lab_28_1 ; } tmp118 = s1expitm_backslash_23 (tmp119) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp144, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; if (!tmp145) { goto __ats_lab_29_1 ; } tmp150 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp150)->tag = 1 ; ats_selptrset_mac(anairiats_sum_15, tmp150, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__invar_prec_sta) ; ats_selptrset_mac(anairiats_sum_15, tmp150, atslab_1, f_38_closure_make (tmp119)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp118)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_1, tmp150) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp151 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp151, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARK) ; if (!tmp152) { goto __ats_lab_30_1 ; } tmp157 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp157)->tag = 2 ; ats_selptrset_mac(anairiats_sum_15, tmp157, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmark_prec_sta) ; ats_selptrset_mac(anairiats_sum_15, tmp157, atslab_1, f_39_closure_make (tmp119)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp118)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_1, tmp157) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp158, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARKBANG) ; if (!tmp159) { goto __ats_lab_31_1 ; } tmp164 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp164)->tag = 2 ; ats_selptrset_mac(anairiats_sum_15, tmp164, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__qmarkbang_prec_sta) ; ats_selptrset_mac(anairiats_sum_15, tmp164, atslab_1, f_40_closure_make (tmp119)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp118)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_1, tmp164) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp165, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTGT) ; if (!tmp166) { goto __ats_lab_32_1 ; } tmp173 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0) ; tmp172 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp172)->tag = 0 ; ats_selptrset_mac(anairiats_sum_16, tmp172, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__trans_prec_sta) ; ats_selptrset_mac(anairiats_sum_16, tmp172, atslab_1, tmp173) ; ats_selptrset_mac(anairiats_sum_16, tmp172, atslab_2, f_41_closure_make ()) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp118)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_1, tmp172) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_35_0 ; } __ats_lab_32_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ide (tmp119, tmp174) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find (tmp174) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (tmp176 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_2, tmp176, atslab_0) ; ATS_FREE(tmp176) ; tmp118 = s1exp_make_opr_21 (tmp175, tmp177) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (tmp176 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp175) ; break ; } while (0) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp120)->tag != 2) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ide (tmp119, tmp178) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp179) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp120)->tag != 1) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_0) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_1) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_sqid (tmp119, tmp180, tmp181) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp182) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp120)->tag != 3) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp183 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_i0nt (tmp119, tmp183) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp184) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp120)->tag != 4) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp185 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_c0har (tmp119, tmp185) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp186) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp120)->tag != 5) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_f0loat (tmp119, tmp187) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp188) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp120)->tag != 6) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp189 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_s0tring (tmp119, tmp189) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp190) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp120)->tag != 7) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_0) ; tmp192 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_1) ; tmp193 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp192, &aux_extarg_31) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extype (tmp119, tmp191, ats_castfn_mac(ats_ptr_type, tmp193)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp194) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp120)->tag != 8) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp195 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_0) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_1) ; tmp197 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp196, &aux_extarg_31) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_extkind (tmp119, tmp195, ats_castfn_mac(ats_ptr_type, tmp197)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp198) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp120)->tag != 9) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp200 = s1expitm_app_19 (tmp119) ; tmp201 = aux_itemlst_34 (arg0) ; tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve (tmp119, &s1exp_get_loc_20, tmp200, tmp201) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp199) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp120)->tag != 10) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_13, tmp120, atslab_0) ; tmp203 = ats_caselptrlab_mac(anairiats_sum_13, tmp120, atslab_1) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_13, tmp120, atslab_2) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marg_tr (tmp202) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtopt_tr (tmp203) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp204) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_lam (tmp119, tmp205, tmp206, tmp207) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp208) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp120)->tag != 11) { goto __ats_lab_48_0 ; } __ats_lab_45_1: tmp209 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr (tmp209) ; tmp211 = ats_select_mac(tmp210, atslab_0) ; tmp212 = ats_select_mac(tmp210, atslab_1) ; tmp213 = ats_select_mac(tmp210, atslab_2) ; tmp214 = ats_select_mac(tmp210, atslab_3) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (tmp211 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_2, tmp211, atslab_0) ; tmp215 = tmp216 ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (tmp211 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp215 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; if (tmp217 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 13644(line=608, offs=7) -- 13689(line=609, offs=32)") ; } tmp218 = ats_caselptrlab_mac(anairiats_sum_2, tmp217, atslab_0) ; ATS_FREE(tmp217) ; tmp220 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp220, atslab_0, tmp214) ; tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_imp (tmp119, tmp215, tmp212, tmp213, tmp220) ; tmp118 = s1exp_make_opr_21 (tmp219, tmp218) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp120)->tag != 12) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp221 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (tmp221) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list (tmp119, tmp222) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp223) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp120)->tag != 13) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_0) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_1) ; tmp226 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp224, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr) ; tmp227 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp225, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_list2 (tmp119, tmp226, tmp227) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp228) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp120)->tag != 14) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp229 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_0) ; tmp230 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_1) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp229) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (tmp230) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyarr (tmp119, tmp231, tmp232) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp233) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp120)->tag != 15) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp234 = ats_caselptrlab_mac(anairiats_sum_17, tmp120, atslab_0) ; tmp235 = ats_caselptrlab_mac(anairiats_sum_17, tmp120, atslab_1) ; tmp236 = ats_caselptrlab_mac(anairiats_sum_17, tmp120, atslab_2) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (tmp236) ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tytup (tmp119, tmp234, tmp235, tmp237) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp238) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp120)->tag != 16) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp239 = ats_caselptrlab_mac(anairiats_sum_17, tmp120, atslab_0) ; tmp240 = ats_caselptrlab_mac(anairiats_sum_17, tmp120, atslab_1) ; tmp241 = ats_caselptrlab_mac(anairiats_sum_17, tmp120, atslab_2) ; tmp242 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp241, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labs0exp_tr) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec (tmp119, tmp239, tmp240, ats_castfn_mac(ats_ptr_type, tmp242)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp243) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp120)->tag != 17) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp244 = ats_caselptrlab_mac(anairiats_sum_18, tmp120, atslab_0) ; tmp245 = ats_caselptrlab_mac(anairiats_sum_18, tmp120, atslab_1) ; tmp246 = ats_caselptrlab_mac(anairiats_sum_18, tmp120, atslab_2) ; tmp247 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp246, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labs0exp_tr) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tyrec_ext (tmp119, tmp244, tmp245, ats_castfn_mac(ats_ptr_type, tmp247)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp248) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp120)->tag != 18) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr (tmp249) ; tmp255 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp255)->tag = 1 ; ats_selptrset_mac(anairiats_sum_15, tmp255, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__uni_prec_sta) ; ats_selptrset_mac(anairiats_sum_15, tmp255, atslab_1, f_42_closure_make (tmp119, tmp250)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp118)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_1, tmp255) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp120)->tag != 19) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_11, tmp120, atslab_0) ; tmp257 = ats_caselptrlab_mac(anairiats_sum_11, tmp120, atslab_1) ; tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr (tmp257) ; tmp263 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp263)->tag = 1 ; ats_selptrset_mac(anairiats_sum_15, tmp263, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exi_prec_sta) ; ats_selptrset_mac(anairiats_sum_15, tmp263, atslab_1, f_43_closure_make (tmp119, tmp256, tmp258)) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp118)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_9, tmp118, atslab_1, tmp263) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp120)->tag != 20) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp264 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_0) ; tmp265 = ats_caselptrlab_mac(anairiats_sum_9, tmp120, atslab_1) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr (tmp265) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp264) ; tmp268 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_ann (tmp119, tmp267, tmp266) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp268) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (((ats_sum_ptr_type)tmp120)->tag != 21) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp269 = ats_caselptrlab_mac(anairiats_sum_4, tmp120, atslab_0) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__S0Ed2ctype_tr (tmp269) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_d2ctype (tmp119, tmp270) ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, tmp271) ; break ; } while (0) ; return (tmp118) ; } /* end of [aux_item_33] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 16282(line=700, offs=7) -- 16515(line=705, offs=32) */ ATSstaticdec() ats_ptr_type loop_44 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; __ats_lab_loop_44: tmp274 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0exp_node) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp274)->tag != 9) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp275 = ats_caselptrlab_mac(anairiats_sum_9, tmp274, atslab_0) ; tmp276 = ats_caselptrlab_mac(anairiats_sum_9, tmp274, atslab_1) ; tmp278 = aux_item_33 (tmp276) ; tmp277 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp277, atslab_0, tmp278) ; ats_selptrset_mac(anairiats_sum_7, tmp277, atslab_1, arg1) ; arg0 = tmp275 ; arg1 = tmp277 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: tmp279 = aux_item_33 (arg0) ; tmp273 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp273, atslab_0, tmp279) ; ats_selptrset_mac(anairiats_sum_7, tmp273, atslab_1, arg1) ; break ; } while (0) ; return (tmp273) ; } /* end of [loop_44] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 16229(line=698, offs=5) -- 16568(line=709, offs=4) */ ATSstaticdec() ats_ptr_type aux_itemlst_34 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp280) ; __ats_lab_aux_itemlst_34: tmp280 = (ats_sum_ptr_type)0 ; tmp272 = loop_44 (arg0, tmp280) ; return (tmp272) ; } /* end of [aux_itemlst_34] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 9065(line=427, offs=10) -- 16701(line=717, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr: tmp281 = aux_item_33 (arg0) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp281)->tag != 0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp282 = ats_caselptrlab_mac(anairiats_sum_4, tmp281, atslab_0) ; tmp117 = tmp282 ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (((ats_sum_ptr_type)tmp281)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: tmp117 = s0exp_tr_errmsg_opr_29 (arg0) ; break ; } while (0) ; return (tmp117) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 16790(line=724, offs=13) -- 16829(line=724, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr: tmp284 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr) ; tmp283 = ats_castfn_mac(ats_ptr_type, tmp284) ; return (tmp283) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 16854(line=727, offs=13) -- 16929(line=728, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr: do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp286 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp286) ; tmp285 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp285, atslab_0, tmp287) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_63_1: tmp285 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp285) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 16998(line=734, offs=13) -- 17091(line=738, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labs0exp_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labs0exp_tr: // tmp289 = ats_caselptrlab_mac(anairiats_sum_19, arg0, atslab_0) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_19, arg0, atslab_1) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_19, arg0, atslab_2) ; tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp291) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__labs1exp_make (tmp289, tmp290, tmp292) ; return (tmp288) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labs0exp_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 17159(line=743, offs=12) -- 17488(line=755, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtext_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtext_tr: tmp294 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_s0rtext_loc) ; tmp295 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_s0rtext_node) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp295)->tag != 0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_4, tmp295, atslab_0) ; tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr (tmp296) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_srt (tmp294, tmp297) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: // if (((ats_sum_ptr_type)tmp295)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_65_1: tmp298 = ats_caselptrlab_mac(anairiats_sum_21, tmp295, atslab_0) ; tmp299 = ats_caselptrlab_mac(anairiats_sum_21, tmp295, atslab_1) ; tmp300 = ats_caselptrlab_mac(anairiats_sum_21, tmp295, atslab_2) ; tmp301 = ats_caselptrlab_mac(anairiats_sum_21, tmp295, atslab_3) ; tmp302 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtext_tr (tmp299) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp300) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (tmp301) ; tmp305 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp298), atslab_i0de_sym) ; tmp306 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp306, atslab_0, tmp303) ; ats_selptrset_mac(anairiats_sum_7, tmp306, atslab_1, tmp304) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtext_sub (tmp294, tmp305, tmp302, tmp306) ; break ; } while (0) ; return (tmp293) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtext_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 17557(line=760, offs=14) -- 17682(line=762, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__witht0ype_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_int_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__witht0ype_tr: do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_23, arg0, atslab_0) ; tmp309 = ats_caselptrlab_mac(anairiats_sum_23, arg0, atslab_1) ; tmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp309) ; tmp307 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ats_selptrset_mac(anairiats_sum_23, tmp307, atslab_0, tmp308) ; ats_selptrset_mac(anairiats_sum_23, tmp307, atslab_1, tmp310) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp307 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp307) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__witht0ype_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 17750(line=768, offs=11) -- 17812(line=769, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marg_tr: tmp312 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg0), atslab_q0marg_loc) ; tmp314 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg0), atslab_q0marg_arg) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr (tmp314) ; tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__q1marg_make (tmp312, tmp313) ; return (tmp311) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marg_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 17859(line=772, offs=24) -- 17899(line=772, offs=64) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marglst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marglst_tr: tmp316 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marg_tr) ; tmp315 = ats_castfn_mac(ats_ptr_type, tmp316) ; return (tmp315) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marglst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 17944(line=777, offs=12) -- 18099(line=779, offs=74) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__i0mparg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__i0mparg_tr: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp318 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr (tmp318) ; tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_sarglst (tmp319) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: tmp320 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararglst_tr (tmp320) ; tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__i1mparg_svararglst (tmp321) ; break ; } while (0) ; return (tmp317) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__i0mparg_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 18167(line=785, offs=13) -- 18235(line=786, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0mpmarg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0mpmarg_tr: tmp323 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_t0mpmarg_loc) ; tmp325 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_t0mpmarg_arg) ; tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (tmp325) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1mpmarg_make (tmp323, tmp324) ; return (tmp322) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0mpmarg_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 18354(line=796, offs=9) -- 18649(line=815, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typ_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_int_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typ_tr: tmp327 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_a0typ_sym) ; tmp329 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_a0typ_typ) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp329) ; do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (tmp327 != (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp326 = tmp328 ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (tmp327 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp330 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp328), atslab_s1exp_node) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp330)->tag != 13) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp331 = ats_caselptrlab_mac(anairiats_sum_11, tmp330, atslab_0) ; tmp332 = ats_caselptrlab_mac(anairiats_sum_11, tmp330, atslab_1) ; tmp333 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp328), atslab_s1exp_loc) ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_tytup (tmp333, 0, tmp331, tmp332) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: tmp326 = tmp328 ; break ; } while (0) ; break ; } while (0) ; return (tmp326) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typ_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 18695(line=818, offs=12) -- 18733(line=818, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typlst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typlst_tr: tmp335 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typ_tr) ; tmp334 = ats_castfn_mac(ats_ptr_type, tmp335) ; return (tmp334) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typlst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 18778(line=823, offs=10) -- 18964(line=828, offs=8) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__sp0at_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__sp0at_tr: tmp337 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_sp0at_node) ; do { /* branch: __ats_lab_74 */ __ats_lab_74_0: // __ats_lab_74_1: tmp338 = ats_caselptrlab_mac(anairiats_sum_7, tmp337, atslab_0) ; tmp339 = ats_caselptrlab_mac(anairiats_sum_7, tmp337, atslab_1) ; tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr (tmp339) ; tmp341 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_sp0at_loc) ; tmp342 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, tmp338), atslab_sqi0de_qua) ; tmp343 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, tmp338), atslab_sqi0de_sym) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__sp1at_cstr (tmp341, tmp342, tmp343, tmp340) ; break ; } while (0) ; return (tmp336) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__sp0at_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 19054(line=835, offs=3) -- 19224(line=838, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exparg_tr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exparg_tr: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_one (arg0) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_all (arg0) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: tmp345 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (tmp345) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exparg_seq (arg0, tmp346) ; break ; } while (0) ; return (tmp344) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exparg_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4) */ ATSstaticdec() ats_void_type loop_60 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; __ats_lab_loop_60: do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp367 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp368 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp369 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp369, atslab_0, tmp367) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp369 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp370 = &ats_caselptrlab_mac(anairiats_sum_7, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp368 ; arg1 = arg1 ; arg2 = tmp370 ; goto __ats_lab_loop_60 ; // tail call break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp366) */ ; } /* end of [loop_60] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4) */ ATSstaticdec() ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; // ATSlocal_void (tmp371) ; __ats_lab_list_append_01312_ats_ptr_type: /* ats_ptr_type tmp365 ; */ /* tmp371 = */ loop_60 (arg0, arg1, (&tmp365)) ; tmp364 = tmp365 ; return (tmp364) ; } /* end of [list_append_01312_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 19368(line=847, offs=3) -- 20456(line=884, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__m0acarglst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__m0acarglst_tr: do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_78_1: tmp348 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp349 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp350 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp348), atslab_m0acarg_loc) ; tmp352 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp348), atslab_m0acarg_node) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp352)->tag != 0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp353 = ats_caselptrlab_mac(anairiats_sum_4, tmp352, atslab_0) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_dyn (tmp350, tmp353) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (((ats_sum_ptr_type)tmp352)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: tmp354 = ats_caselptrlab_mac(anairiats_sum_4, tmp352, atslab_0) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr (tmp354) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_sta (tmp350, tmp355) ; break ; } while (0) ; tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__m0acarglst_tr (tmp349) ; tmp357 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, tmp351), atslab_m1acarg_node) ; do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp357)->tag != 0) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp347 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_0, tmp351) ; ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_1, tmp356) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (((ats_sum_ptr_type)tmp357)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: tmp358 = ats_caselptrlab_mac(anairiats_sum_4, tmp357, atslab_0) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (tmp356 == (ats_sum_ptr_type)0) { goto __ats_lab_88_0 ; } __ats_lab_83_1: tmp359 = ats_caselptrlab_mac(anairiats_sum_7, tmp356, atslab_0) ; tmp360 = ats_caselptrlab_mac(anairiats_sum_7, tmp356, atslab_1) ; tmp361 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, tmp359), atslab_m1acarg_node) ; do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp361)->tag != 1) { goto __ats_lab_87_0 ; } __ats_lab_84_1: tmp362 = ats_caselptrlab_mac(anairiats_sum_4, tmp361, atslab_0) ; tmp363 = list_append_01312_ats_ptr_type (tmp358, tmp362) ; tmp373 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, tmp359), atslab_m1acarg_loc) ; tmp372 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp350, tmp373) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__m1acarg_make_sta (tmp372, tmp363) ; tmp347 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_0, tmp374) ; ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_1, tmp360) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: __ats_lab_87_1: tmp347 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_0, tmp351) ; ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_1, tmp356) ; break ; } while (0) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: // if (tmp356 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_88_1: tmp375 = (ats_sum_ptr_type)0 ; tmp347 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_0, tmp351) ; ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_1, tmp375) ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: tmp347 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp347) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__m0acarglst_tr] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1637(line=52, offs=15) -- 1735(line=57, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_02086_ () { /* local vardec */ // ATSlocal_void (tmp396) ; // ATSlocal_void (tmp397) ; // ATSlocal_void (tmp398) ; __ats_lab_prerr_interror_02086_: /* tmp397 = */ atspre_prerr_string (ATSstrcst("INTERROR(")) ; /* tmp398 = */ prerr_FILENAME_02085_ () ; /* tmp396 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp396) */ ; } /* end of [prerr_interror_02086_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 20525(line=889, offs=11) -- 21918(line=952, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atcon_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_int_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_int_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; // ATSlocal_void (tmp395) ; // ATSlocal_void (tmp399) ; // ATSlocal_void (tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atcon_tr: tmp377 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_d0atcon_sym) ; tmp378 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_d0atcon_qua) ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marglst_tr (tmp378) ; /* ats_int_type tmp380 ; */ tmp380 = -1 ; tmp382 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_d0atcon_arg) ; do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (tmp382 == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_90_1: tmp383 = ats_caselptrlab_mac(anairiats_sum_2, tmp382, atslab_0) ; tmp384 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp383) ; tmp385 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp384), atslab_s1exp_node) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp385)->tag != 13) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp386 = ats_caselptrlab_mac(anairiats_sum_11, tmp385, atslab_0) ; tmp387 = ats_caselptrlab_mac(anairiats_sum_11, tmp385, atslab_1) ; tmp380 = tmp386 ; tmp381 = tmp387 ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: __ats_lab_92_1: tmp388 = (ats_sum_ptr_type)0 ; tmp381 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp381, atslab_0, tmp384) ; ats_selptrset_mac(anairiats_sum_7, tmp381, atslab_1, tmp388) ; break ; } while (0) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (tmp382 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp381 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp389 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_d0atcon_ind) ; do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (tmp389 == (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; } __ats_lab_94_1: tmp391 = ats_caselptrlab_mac(anairiats_sum_2, tmp389, atslab_0) ; tmp393 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp391), atslab_s0exp_node) ; do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp393)->tag != 12) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp394 = ats_caselptrlab_mac(anairiats_sum_4, tmp393, atslab_0) ; tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (tmp394) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: __ats_lab_96_1: /* tmp395 = */ prerr_interror_02086_ () ; /* tmp399 = */ atspre_prerr_string (ATSstrcst(": d0atcon_tr: index is required to be a list.")) ; /* tmp400 = */ atspre_prerr_newline () ; /* tmp392 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; tmp390 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp390, atslab_0, tmp392) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: // if (tmp389 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_97_1: tmp390 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp401 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_d0atcon_loc) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atcon_make (tmp401, tmp377, tmp379, tmp380, tmp381, tmp390) ; return (tmp376) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atcon_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 22051(line=963, offs=5) -- 23851(line=1016, offs=4) */ ATSstaticdec() ats_ptr_type aux1_63 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ref_type arg6, ats_ptr_type arg7, ats_ptr_type arg8) { /* local vardec */ ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_int_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_int_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_bool_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_bool_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_int_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_int_type, tmp430) ; ATSlocal (ats_bool_type, tmp432) ; ATSlocal (ats_int_type, tmp433) ; // ATSlocal_void (tmp434) ; ATSlocal (ats_bool_type, tmp435) ; // ATSlocal_void (tmp436) ; // ATSlocal_void (tmp437) ; // ATSlocal_void (tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; __ats_lab_aux1_63: do { /* branch: __ats_lab_98 */ __ats_lab_98_0: if (arg7 == (ats_sum_ptr_type)0) { goto __ats_lab_103_0 ; } __ats_lab_98_1: tmp403 = ats_caselptrlab_mac(anairiats_sum_7, arg7, atslab_0) ; tmp404 = ats_caselptrlab_mac(anairiats_sum_7, arg7, atslab_1) ; tmp405 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, tmp403), atslab_d0cstarg_node) ; do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp405)->tag != 1) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp406 = ats_caselptrlab_mac(anairiats_sum_11, tmp405, atslab_0) ; tmp407 = ats_caselptrlab_mac(anairiats_sum_11, tmp405, atslab_1) ; tmp408 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, tmp403), atslab_d0cstarg_loc) ; tmp410 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0typlst_tr (tmp407) ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_npf_list (tmp408, tmp406, tmp410) ; tmp412 = atspre_add_int_int (arg5, 1) ; tmp411 = aux1_63 (arg0, arg1, arg2, arg3, arg4, tmp412, arg6, tmp404, arg8) ; tmp413 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp411), atslab_s1exp_loc) ; tmp414 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp408, tmp413) ; tmp416 = atspre_gt_int_int (arg5, 0) ; if (tmp416) { tmp415 = ATS_MALLOC(sizeof(anairiats_sum_33)) ; ats_selptrset_mac(anairiats_sum_33, tmp415, atslab_0, -1) ; } else { tmp415 = arg1 ; } /* end of [if] */ tmp418 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg6), 0) ; if (tmp418) { tmp419 = (ats_sum_ptr_type)0 ; tmp417 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_imp (tmp413, tmp415, 0, 0, tmp419) ; } else { tmp417 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_imp (tmp413, tmp415, arg2, arg3, arg4) ; } /* end of [if] */ tmp420 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg6), 1) ; ats_ptrget_mac(ats_int_type, arg6) = tmp420 ; tmp423 = (ats_sum_ptr_type)0 ; tmp422 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp422, atslab_0, tmp411) ; ats_selptrset_mac(anairiats_sum_7, tmp422, atslab_1, tmp423) ; tmp421 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp421, atslab_0, tmp409) ; ats_selptrset_mac(anairiats_sum_7, tmp421, atslab_1, tmp422) ; tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_app (tmp414, tmp417, tmp414, tmp421) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: // if (((ats_sum_ptr_type)tmp405)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_100_1: tmp424 = ats_caselptrlab_mac(anairiats_sum_4, tmp405, atslab_0) ; tmp425 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, tmp403), atslab_d0cstarg_loc) ; tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr (tmp424) ; tmp427 = aux1_63 (arg0, arg1, arg2, arg3, arg4, arg5, arg6, tmp404, arg8) ; tmp428 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp427), atslab_s1exp_loc) ; tmp429 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp425, tmp428) ; /* ats_int_type tmp430 ; */ tmp430 = 0 ; do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp432 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg6), 0) ; if (tmp432) { tmp433 = atspre_iadd (tmp430, 1) ; tmp430 = tmp433 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_102_1: break ; } while (0) ; tmp435 = atspre_gt_int_int (tmp430, 0) ; if (tmp435) { /* tmp436 = */ prerr_error1_loc_02088_ (tmp429) ; /* tmp437 = */ atspre_prerr_string (ATSstrcst(": illegal use of effect annotation")) ; /* tmp438 = */ atspre_prerr_newline () ; tmp439 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp439)->tag = 6 ; ats_selptrset_mac(anairiats_sum_4, tmp439, atslab_0, arg0) ; /* tmp434 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp439) ; } else { /* empty */ } /* end of [if] */ tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_uni (tmp429, tmp426, tmp427) ; break ; } while (0) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: // if (arg7 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_103_1: tmp402 = arg8 ; break ; } while (0) ; return (tmp402) ; } /* end of [aux1_63] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 23876(line=1018, offs=5) -- 25358(line=1066, offs=4) */ ATSstaticdec() ats_ptr_type aux2_64 (ats_ptr_type arg0, ats_bool_type arg1, ats_bool_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_int_type, tmp442) ; ATSlocal (ats_int_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (anairiats_rec_1, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_int_type, tmp449) ; ATSlocal (ats_int_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_int_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; // ATSlocal_void (tmp456) ; ATSlocal (ats_int_type, tmp457) ; ATSlocal (ats_bool_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; // ATSlocal_void (tmp460) ; // ATSlocal_void (tmp461) ; ATSlocal (ats_bool_type, tmp462) ; // ATSlocal_void (tmp463) ; ATSlocal (ats_bool_type, tmp464) ; // ATSlocal_void (tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; __ats_lab_aux2_64: /* ats_ptr_type tmp441 ; */ tmp441 = (ats_sum_ptr_type)0 ; /* ats_int_type tmp442 ; */ tmp442 = 0 ; /* ats_int_type tmp443 ; */ if (arg2) { tmp443 = 1 ; } else { tmp443 = 0 ; } /* end of [if] */ /* ats_ptr_type tmp444 ; */ tmp444 = (ats_sum_ptr_type)0 ; do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_107_0 ; } __ats_lab_104_1: tmp446 = ats_caselptrlab_mac(anairiats_sum_2, arg4, atslab_0) ; tmp447 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr (tmp446) ; tmp448 = ats_select_mac(tmp447, atslab_0) ; tmp449 = ats_select_mac(tmp447, atslab_1) ; tmp450 = ats_select_mac(tmp447, atslab_2) ; tmp451 = ats_select_mac(tmp447, atslab_3) ; do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (tmp448 == (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp453 = ats_caselptrlab_mac(anairiats_sum_2, tmp448, atslab_0) ; tmp441 = tmp453 ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: // if (tmp448 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_106_1: break ; } while (0) ; tmp442 = tmp449 ; tmp454 = atspre_add_int_int (tmp443, tmp450) ; tmp443 = tmp454 ; tmp455 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp455, atslab_0, tmp451) ; tmp444 = tmp455 ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_107_1: break ; } while (0) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (tmp441 == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp457 = ats_caselptrlab_mac(anairiats_sum_33, tmp441, atslab_0) ; tmp458 = atspre_neq_int_int (tmp457, -1) ; if (tmp458) { tmp459 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg0), atslab_d0cstdec_loc) ; /* tmp460 = */ prerr_error1_loc_02088_ (tmp459) ; tmp462 = atspre_eq_int_int (tmp457, 0) ; if (tmp462) { /* tmp461 = */ atspre_prerr_string (ATSstrcst(": a closure struct is not allowed at the toplevel.")) ; } else { /* empty */ } /* end of [if] */ tmp464 = atspre_eq_int_int (tmp457, 1) ; if (tmp464) { /* tmp463 = */ atspre_prerr_string (ATSstrcst(": a closure pointer is not allowed at the toplevel.")) ; } else { /* empty */ } /* end of [if] */ /* tmp465 = */ atspre_prerr_newline () ; tmp466 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp466)->tag = 6 ; ats_selptrset_mac(anairiats_sum_4, tmp466, atslab_0, arg0) ; /* tmp456 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp466) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (tmp441 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: break ; } while (0) ; /* ats_int_type tmp467 ; */ tmp467 = 0 ; tmp440 = aux1_63 (arg0, tmp441, tmp442, tmp443, tmp444, 0, (&tmp467), arg3, arg5) ; return (tmp440) ; } /* end of [aux2_64] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 25382(line=1068, offs=4) -- 25884(line=1084, offs=4) */ ATSstaticdec() ats_ptr_type d0cstdec_tr_65 (ats_bool_type arg0, ats_bool_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; __ats_lab_d0cstdec_tr_65: tmp469 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg2), atslab_d0cstdec_loc) ; tmp470 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg2), atslab_d0cstdec_sym) ; tmp471 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp473 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg2), atslab_d0cstdec_res) ; tmp472 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp473) ; tmp474 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg2), atslab_d0cstdec_arg) ; tmp475 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg2), atslab_d0cstdec_eff) ; tmp476 = aux2_64 (arg2, arg0, arg1, tmp474, tmp475, tmp472) ; tmp478 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg2), atslab_d0cstdec_extopt) ; tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__dcstextdef_tr (arg2, tmp470, tmp478) ; tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1cstdec_make (tmp469, tmp471, tmp470, tmp476, tmp477) ; return (tmp468) ; } /* end of [d0cstdec_tr_65] */ /* // /tmp/ATS-Postiats/src/pats_trans1_staexp.dats: 25961(line=1090, offs=1) -- 26193(line=1100, offs=8) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0cstdeclst_tr (ats_bool_type arg0, ats_bool_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0cstdeclst_tr: do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp479 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: tmp480 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_0) ; tmp481 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_1) ; tmp482 = d0cstdec_tr_65 (arg0, arg1, tmp480) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0cstdeclst_tr (arg0, arg1, tmp481) ; tmp479 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp479, atslab_0, tmp482) ; ats_selptrset_mac(anairiats_sum_7, tmp479, atslab_1, tmp483) ; break ; } while (0) ; return (tmp479) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0cstdeclst_tr] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_staexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_staexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_effect_dats.c0000644000175000017500000021325613431250607024134 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_uint_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_uint_type atslab_1 ; } anairiats_sum_5 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_effenv_check_set_80) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_effenv_check_sexp_81) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFFENVITMeff_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFFENVITMeffmask_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTcons_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTmark_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTnil_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ntm) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_exn) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ref) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_wrt) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_sing) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil) (ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_supset) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_diff) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_inter) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_union) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__prerr_effset) (ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2eff_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set) (ats_uint_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set) (ats_ptr_type, ats_uint_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_sexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_diff_s2eff) (ats_uint_type, ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_union_s2eff) (ats_uint_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__effenv_push_v = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFFENVITMeff_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFFENVITMeffmask_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTcons_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTmark_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTnil_2) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_ptr_type efilst_mark_1 (ats_ptr_type arg0) ; static ats_ptr_type efilst_unmark_2 (ats_ptr_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_void_type auxerr_15 (ats_ptr_type env0, ats_uint_type env1, ats_uint_type arg0) ; static ats_clo_ptr_type auxerr_15_closure_make (ats_ptr_type env0, ats_uint_type env1) ; static ats_void_type auxerr_15_clofun (ats_clo_ptr_type cloptr, ats_uint_type arg0) ; static ats_int_type auxcheck_17 (ats_ptr_type env0, ats_uint_type env1, ats_ptr_type arg0, ats_uint_type arg1) ; static ats_clo_ptr_type auxcheck_17_closure_make (ats_ptr_type env0, ats_uint_type env1) ; static ats_int_type auxcheck_17_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_uint_type arg1) ; static ats_void_type auxerr_25 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxerr_25_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_int_type auxcheck_26 (ats_ptr_type env0, ats_ptr_type arg0, ats_uint_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type auxcheck_26_closure_make (ats_ptr_type env0) ; static ats_int_type auxcheck_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_uint_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp15) ; ATSstatic (ats_ptr_type, statmp18) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 1606(line=47, offs=28) -- 1641(line=47, offs=63) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_env_effect")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 2352(line=85, offs=1) -- 2438(line=87, offs=54) */ ATSstaticdec() ats_ptr_type efilst_mark_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_efilst_mark_1: tmp1 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp1)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp1, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_1, tmp1, atslab_1, arg0) ; return (tmp1) ; } /* end of [efilst_mark_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 2468(line=91, offs=1) -- 2666(line=98, offs=34) */ ATSstaticdec() ats_ptr_type efilst_unmark_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_efilst_unmark_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp3 ; goto __ats_lab_efilst_unmark_2 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp2 = tmp4 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp2 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTnil_2) ; break ; } while (0) ; return (tmp2) ; } /* end of [efilst_unmark_2] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 2812(line=108, offs=3) -- 3051(line=114, offs=6) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_diff_s2eff (ats_uint_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_uint_type, tmp5) ; ATSlocal (ats_uint_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_uint_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_diff_s2eff: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_diff (arg0, tmp6) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp5 = arg0 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp8 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_diff_s2eff (arg0, tmp7) ; arg0 = tmp9 ; arg1 = tmp8 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_diff_s2eff ; // tail call break ; } while (0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_diff_s2eff] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 3205(line=122, offs=3) -- 3447(line=128, offs=6) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_union_s2eff (ats_uint_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_uint_type, tmp10) ; ATSlocal (ats_uint_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_uint_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_union_s2eff: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_union (arg0, tmp11) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp10 = arg0 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_union_s2eff (arg0, tmp12) ; arg0 = tmp14 ; arg1 = tmp13 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_union_s2eff ; // tail call break ; } while (0) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_union_s2eff] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp17 ; */ tmp17 = arg0 ; tmp16 = atspre_ref_make_elt_tsz ((&tmp17), sizeof(ats_ptr_type)) ; return (tmp16) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 3665(line=142, offs=3) -- 3823(line=148, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_add_eff (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_uint_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_add_eff: tmp20 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp15), atslab_1) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_sing (arg0) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp22)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp22, atslab_0, tmp21) ; tmp24 = ats_ptrget_mac(ats_ptr_type, tmp20) ; tmp23 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp23)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp23, atslab_0, tmp22) ; ats_selptrset_mac(anairiats_sum_2, tmp23, atslab_1, tmp24) ; ats_ptrget_mac(ats_ptr_type, tmp20) = tmp23 ; return /* (tmp19) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_add_eff] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 3904(line=154, offs=3) -- 4039(line=159, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop () { /* local vardec */ // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop: tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp15), atslab_1) ; tmp28 = ats_ptrget_mac(ats_ptr_type, tmp26) ; tmp27 = efilst_unmark_2 (tmp28) ; ats_ptrget_mac(ats_ptr_type, tmp26) = tmp27 ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 4098(line=163, offs=3) -- 4258(line=169, offs=6) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop_if (ats_bool_type arg0) { /* local vardec */ // ATSlocal_void (tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop_if: if (arg0) { /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop () ; } else { /* empty */ } /* end of [if] */ return /* (tmp29) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop_if] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 4352(line=175, offs=17) -- 4502(line=182, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push () { /* local vardec */ // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push: tmp31 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp15), atslab_1) ; tmp33 = ats_ptrget_mac(ats_ptr_type, tmp31) ; tmp32 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp32)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp32, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_1, tmp32, atslab_1, tmp33) ; ats_ptrget_mac(ats_ptr_type, tmp31) = tmp32 ; return /* (tmp30) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 4564(line=186, offs=3) -- 4766(line=195, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_lam (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_lam: tmp35 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp35)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp35, atslab_0, arg0) ; tmp36 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp15), atslab_1) ; tmp38 = ats_ptrget_mac(ats_ptr_type, tmp36) ; tmp37 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp37)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp37, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_1, tmp37, atslab_1, tmp38) ; tmp39 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp39)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp39, atslab_0, tmp35) ; ats_selptrset_mac(anairiats_sum_2, tmp39, atslab_1, tmp37) ; ats_ptrget_mac(ats_ptr_type, tmp36) = tmp39 ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_lam] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 4851(line=200, offs=21) -- 5047(line=209, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set (ats_uint_type arg0) { /* local vardec */ // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set: tmp41 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp41)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp41, atslab_0, arg0) ; tmp42 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp15), atslab_1) ; tmp44 = ats_ptrget_mac(ats_ptr_type, tmp42) ; tmp43 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp43)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp43, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_1, tmp43, atslab_1, tmp44) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp45, atslab_0, tmp41) ; ats_selptrset_mac(anairiats_sum_2, tmp45, atslab_1, tmp43) ; ats_ptrget_mac(ats_ptr_type, tmp42) = tmp45 ; return /* (tmp40) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 5116(line=213, offs=3) -- 5272(line=218, offs=28) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set_if (ats_bool_type arg0, ats_uint_type arg1) { /* local vardec */ // ATSlocal_void (tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set_if: if (arg0) { /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set (arg1) ; } else { /* empty */ } /* end of [if] */ return /* (tmp46) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set_if] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 5366(line=224, offs=25) -- 5568(line=233, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_effmask (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_effmask: tmp48 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp48)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp48, atslab_0, arg0) ; tmp49 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp15), atslab_1) ; tmp51 = ats_ptrget_mac(ats_ptr_type, tmp49) ; tmp50 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp50)->tag = 1 ; ats_selptrset_mac(anairiats_sum_1, tmp50, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_1, tmp50, atslab_1, tmp51) ; tmp52 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp52)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, tmp52, atslab_0, tmp48) ; ats_selptrset_mac(anairiats_sum_2, tmp52, atslab_1, tmp50) ; ats_ptrget_mac(ats_ptr_type, tmp49) = tmp52 ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_effmask] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; __ats_lab_prerr_error3_loc_02089_: /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp56 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp56) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 5765(line=245, offs=5) -- 6036(line=254, offs=4) */ ATSstaticdec() ats_void_type auxerr_15 (ats_ptr_type env0, ats_uint_type env1, ats_uint_type arg0) { /* local vardec */ // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab_auxerr_15: /* tmp55 = */ prerr_error3_loc_02089_ (env0) ; /* tmp58 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env_effect.dats"), ATSstrcst("the_effenv_check_set")) ; /* tmp59 = */ atspre_prerr_string (ATSstrcst(": some disallowed effects may be incurred: ")) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__prerr_effset (arg0) ; /* tmp61 = */ atspre_prerr_newline () ; tmp62 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp62)->tag = 80 ; ats_selptrset_mac(anairiats_sum_5, tmp62, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_5, tmp62, atslab_1, env1) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp62) ; return /* (tmp54) */ ; } /* end of [auxerr_15] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_uint_type closure_env_1 ; } auxerr_15_closure_type ; ats_void_type auxerr_15_clofun (ats_clo_ptr_type cloptr, ats_uint_type arg0) { auxerr_15 (((auxerr_15_closure_type*)cloptr)->closure_env_0, ((auxerr_15_closure_type*)cloptr)->closure_env_1, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr_15_closure_init (auxerr_15_closure_type *p_clo, ats_ptr_type env0, ats_uint_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr_15_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxerr_15_closure_make (ats_ptr_type env0, ats_uint_type env1) { auxerr_15_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_15_closure_type)) ; auxerr_15_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 6068(line=256, offs=5) -- 7384(line=298, offs=38) */ ATSstaticdec() ats_int_type auxcheck_17 (ats_ptr_type env0, ats_uint_type env1, ats_ptr_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_uint_type, tmp66) ; ATSlocal (ats_uint_type, tmp67) ; ATSlocal (ats_bool_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; // ATSlocal_void (tmp71) ; ATSlocal (ats_bool_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_uint_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_bool_type, tmp84) ; __ats_lab_auxcheck_17: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_12_0 ; } __ats_lab_9_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp65 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp64)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_3, tmp64, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_inter (arg1, tmp66) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (tmp67) ; if (tmp68) { tmp70 = ats_ptrget_mac(ats_ptr_type, tmp65) ; tmp69 = auxcheck_17 (env0, env1, tmp70, arg1) ; } else { tmp69 = 1 ; } /* end of [if] */ tmp72 = atspre_gt_int_int (tmp69, 0) ; if (tmp72) { /* tmp71 = */ auxerr_15 (env0, env1, tmp67) ; } else { /* empty */ } /* end of [if] */ tmp63 = tmp69 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (((ats_sum_ptr_type)tmp64)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_4, tmp64, atslab_0) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_diff_s2eff (arg1, tmp73) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (tmp74) ; if (tmp75) { tmp63 = 0 ; } else { tmp76 = ats_ptrget_mac(ats_ptr_type, tmp65) ; arg0 = tmp76 ; arg1 = tmp74 ; goto __ats_lab_auxcheck_17 ; // tail call } /* end of [if] */ break ; } while (0) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp78 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp80 = atspre_gt_int_int (tmp77, 0) ; if (tmp80) { tmp79 = 1 ; } else { tmp81 = ats_ptrget_mac(ats_ptr_type, tmp78) ; tmp79 = auxcheck_17 (env0, env1, tmp81, arg1) ; } /* end of [if] */ tmp83 = atspre_gt_int_int (tmp77, 0) ; if (tmp83) { tmp84 = atspre_gt_int_int (tmp79, 0) ; if (tmp84) { /* tmp82 = */ auxerr_15 (env0, env1, arg1) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp63 = tmp79 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp63 = 0 ; break ; } while (0) ; return (tmp63) ; } /* end of [auxcheck_17] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_uint_type closure_env_1 ; } auxcheck_17_closure_type ; ats_int_type auxcheck_17_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_uint_type arg1) { return auxcheck_17 (((auxcheck_17_closure_type*)cloptr)->closure_env_0, ((auxcheck_17_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type auxcheck_17_closure_init (auxcheck_17_closure_type *p_clo, ats_ptr_type env0, ats_uint_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcheck_17_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxcheck_17_closure_make (ats_ptr_type env0, ats_uint_type env1) { auxcheck_17_closure_type *p_clo = ATS_MALLOC(sizeof(auxcheck_17_closure_type)) ; auxcheck_17_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 5660(line=239, offs=3) -- 7585(line=311, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set (ats_ptr_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp53) ; ATSlocal (ats_bool_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set: tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (arg1) ; if (tmp85) { tmp53 = 0 ; } else { tmp86 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp15), atslab_1) ; tmp87 = ats_ptrget_mac(ats_ptr_type, tmp86) ; tmp53 = auxcheck_17 (arg0, arg1, tmp87, arg1) ; } /* end of [if] */ return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 7674(line=317, offs=3) -- 7738(line=318, offs=49) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_eff (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp88) ; ATSlocal (ats_uint_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_eff: tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_sing (arg1) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set (arg0, tmp89) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_eff] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 7808(line=323, offs=3) -- 7856(line=323, offs=51) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn: tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_exn) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 7924(line=328, offs=3) -- 7972(line=328, offs=51) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ntm (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ntm: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ntm) ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ntm] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 8040(line=333, offs=3) -- 8088(line=333, offs=51) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref: tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ref) ; return (tmp92) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 8156(line=338, offs=3) -- 8204(line=338, offs=51) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_wrt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_wrt: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_wrt) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_wrt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 8301(line=345, offs=3) -- 8466(line=348, offs=24) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn (arg0) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp94 = 0 ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp94 = 0 ; break ; } while (0) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 8710(line=361, offs=5) -- 8984(line=369, offs=4) */ ATSstaticdec() ats_void_type auxerr_25 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab_auxerr_25: /* tmp97 = */ prerr_error3_loc_02089_ (env0) ; /* tmp98 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env_effect.dats"), ATSstrcst("the_effenv_check_sexp")) ; /* tmp99 = */ atspre_prerr_string (ATSstrcst(": some disallowed effects may be incurred: ")) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg0) ; /* tmp101 = */ atspre_prerr_newline () ; tmp102 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp102)->tag = 81 ; ats_selptrset_mac(anairiats_sum_2, tmp102, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_2, tmp102, atslab_1, arg0) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp102) ; return /* (tmp96) */ ; } /* end of [auxerr_25] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr_25_closure_type ; ats_void_type auxerr_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxerr_25 (((auxerr_25_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr_25_closure_init (auxerr_25_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr_25_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr_25_closure_make (ats_ptr_type env0) { auxerr_25_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_25_closure_type)) ; auxerr_25_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 9014(line=371, offs=5) -- 10203(line=405, offs=46) */ ATSstaticdec() ats_int_type auxcheck_26 (ats_ptr_type env0, ats_ptr_type arg0, ats_uint_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_uint_type, tmp106) ; ATSlocal (ats_bool_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; // ATSlocal_void (tmp109) ; ATSlocal (ats_bool_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_uint_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_int_type, tmp117) ; ATSlocal (ats_bool_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; // ATSlocal_void (tmp120) ; ATSlocal (ats_bool_type, tmp121) ; __ats_lab_auxcheck_26: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_20_0 ; } __ats_lab_17_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp105 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp104)->tag != 0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_3, tmp104, atslab_0) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_supset (arg1, tmp106) ; if (tmp107) { tmp108 = 0 ; } else { tmp108 = 1 ; } /* end of [if] */ tmp110 = atspre_gt_int_int (tmp108, 0) ; if (tmp110) { /* tmp109 = */ auxerr_25 (env0, arg2) ; } else { /* empty */ } /* end of [if] */ tmp103 = tmp108 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (((ats_sum_ptr_type)tmp104)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_4, tmp104, atslab_0) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2eff_contain_exp (tmp111, arg2) ; if (tmp112) { tmp103 = 0 ; } else { tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__effset_union_s2eff (arg1, tmp111) ; tmp114 = ats_ptrget_mac(ats_ptr_type, tmp105) ; arg0 = tmp114 ; arg1 = tmp113 ; arg2 = arg2 ; goto __ats_lab_auxcheck_26 ; // tail call } /* end of [if] */ break ; } while (0) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp116 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp118 = atspre_gt_int_int (tmp115, 0) ; if (tmp118) { tmp117 = 1 ; } else { tmp119 = ats_ptrget_mac(ats_ptr_type, tmp116) ; tmp117 = auxcheck_26 (env0, tmp119, arg1, arg2) ; } /* end of [if] */ tmp121 = atspre_gt_int_int (tmp117, 0) ; if (tmp121) { /* tmp120 = */ auxerr_25 (env0, arg2) ; } else { /* empty */ } /* end of [if] */ tmp103 = tmp117 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp103 = 0 ; break ; } while (0) ; return (tmp103) ; } /* end of [auxcheck_26] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxcheck_26_closure_type ; ats_int_type auxcheck_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_uint_type arg1, ats_ptr_type arg2) { return auxcheck_26 (((auxcheck_26_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type auxcheck_26_closure_init (auxcheck_26_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcheck_26_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxcheck_26_closure_make (ats_ptr_type env0) { auxcheck_26_closure_type *p_clo = ATS_MALLOC(sizeof(auxcheck_26_closure_type)) ; auxcheck_26_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 8604(line=355, offs=3) -- 10329(line=412, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_sexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp95) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_sexp: tmp122 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp15), atslab_1) ; tmp123 = ats_ptrget_mac(ats_ptr_type, tmp122) ; tmp95 = auxcheck_26 (arg0, tmp123, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil, arg1) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_sexp] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_effect.dats: 10421(line=418, offs=3) -- 10983(line=443, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_uint_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_int_type, tmp132) ; ATSlocal (ats_bool_type, tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff: tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2eff_hnfize (arg1) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp125)->tag != 0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_3, tmp125, atslab_0) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_set (arg0, tmp126) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp125)->tag != 1) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_4, tmp125, atslab_0) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp127) ; tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp128) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_sexp (arg0, tmp129) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (((ats_sum_ptr_type)tmp125)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_2, tmp125, atslab_0) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_2, tmp125, atslab_1) ; tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff (arg0, tmp130) ; tmp133 = atspre_gt_int_int (tmp132, 0) ; if (tmp133) { tmp124 = 1 ; } else { arg0 = arg0 ; arg1 = tmp131 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFFENVITMeff_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFFENVITMeffmask_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTcons_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTmark_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTnil_2.tag = 2 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp15, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp18, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp18 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_effect_2edats__EFILSTnil_2) ; statmp15 = ref_01088_ats_ptr_type (statmp18) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_effect_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp1_print_dats.c0000644000175000017500000034352413431250607023341 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_double_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_uint_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_s1rt_loc ; ats_ptr_type atslab_s1rt_node ; } anairiats_rec_9 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_d1atsrtcon_loc ; ats_ptr_type atslab_d1atsrtcon_sym ; ats_ptr_type atslab_d1atsrtcon_arg ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_d1atsrtdec_loc ; ats_ptr_type atslab_d1atsrtdec_sym ; ats_ptr_type atslab_d1atsrtdec_con ; } anairiats_rec_12 ; typedef struct { ats_ptr_type atslab_s1arg_loc ; ats_ptr_type atslab_s1arg_sym ; ats_ptr_type atslab_s1arg_srt ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_s1marg_loc ; ats_ptr_type atslab_s1marg_arg ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_a1srt_loc ; ats_ptr_type atslab_a1srt_sym ; ats_ptr_type atslab_a1srt_srt ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_a1msrt_loc ; ats_ptr_type atslab_a1msrt_arg ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_s1exp_loc ; ats_ptr_type atslab_s1exp_node ; } anairiats_rec_17 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_19 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_21 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_22 ; typedef struct { ats_ptr_type atslab_s1rtext_loc ; ats_ptr_type atslab_s1rtext_node ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_s1qua_loc ; ats_ptr_type atslab_s1qua_node ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_s1exparg_loc ; ats_ptr_type atslab_s1exparg_node ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_s1rtdef_loc ; ats_ptr_type atslab_s1rtdef_sym ; ats_ptr_type atslab_s1rtdef_def ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_s1tacst_loc ; ats_ptr_type atslab_s1tacst_sym ; ats_ptr_type atslab_s1tacst_fil ; ats_ptr_type atslab_s1tacst_arg ; ats_ptr_type atslab_s1tacst_res ; ats_ptr_type atslab_s1tacst_extdef ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_s1tacon_loc ; ats_ptr_type atslab_s1tacon_sym ; ats_ptr_type atslab_s1tacon_fil ; ats_ptr_type atslab_s1tacon_arg ; ats_ptr_type atslab_s1tacon_def ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_s1expdef_loc ; ats_ptr_type atslab_s1expdef_sym ; ats_ptr_type atslab_s1expdef_loc_id ; ats_ptr_type atslab_s1expdef_arg ; ats_ptr_type atslab_s1expdef_res ; ats_ptr_type atslab_s1expdef_def ; } anairiats_rec_29 ; typedef struct { ats_ptr_type atslab_s1aspdec_loc ; ats_ptr_type atslab_s1aspdec_qid ; ats_ptr_type atslab_s1aspdec_arg ; ats_ptr_type atslab_s1aspdec_res ; ats_ptr_type atslab_s1aspdec_def ; } anairiats_rec_30 ; typedef struct { ats_ptr_type atslab_q1marg_loc ; ats_ptr_type atslab_q1marg_arg ; } anairiats_rec_31 ; typedef struct { ats_ptr_type atslab_e1xndec_loc ; ats_ptr_type atslab_e1xndec_fil ; ats_ptr_type atslab_e1xndec_sym ; ats_ptr_type atslab_e1xndec_qua ; ats_int_type atslab_e1xndec_npf ; ats_ptr_type atslab_e1xndec_arg ; } anairiats_rec_32 ; typedef struct { ats_ptr_type atslab_d1cstdec_loc ; ats_ptr_type atslab_d1cstdec_fil ; ats_ptr_type atslab_d1cstdec_sym ; ats_ptr_type atslab_d1cstdec_type ; ats_ptr_type atslab_d1cstdec_extdef ; } anairiats_rec_33 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALchar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALstring_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALfloat_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPintrep_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPchar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfloat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPv1al_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPnone_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPundef_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfun_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPif_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPeval_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPlist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPerr_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTset_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTapp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTqid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTtype_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTerr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qvars_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsub_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Esqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Echar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Efloat_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Estring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextype_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextkind_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elam_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eimp_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Einvar_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etrans_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyarr_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etytup_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_ext_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Euni_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eexi_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eann_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Ed2ctype_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eerr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_sarglst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_svararglst_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_double) (ats_ptr_type, ats_double_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset) (ats_ptr_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_sqi0de) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_v1al) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtcon) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1marg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srtlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrtlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtext) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qualst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marg) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 1721(line=59, offs=3) -- 2309(line=90, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_v1al (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_int_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; ATSlocal (ats_char_type, tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_double_type, tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_v1al: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("V1ALint(")) ; /* tmp3 = */ atspre_fprint_int (arg0, tmp1) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("V1ALchar(")) ; /* tmp6 = */ atspre_fprint_char (arg0, tmp4) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("V1ALstring(")) ; /* tmp9 = */ atspre_fprint_string (arg0, tmp7) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst("V1ALdouble(")) ; /* tmp12 = */ atspre_fprint_double (arg0, tmp10) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("V1ALerr()")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_v1al] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 2357(line=93, offs=11) -- 2389(line=93, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_v1al (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_v1al: /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_v1al (stdout, arg0) ; return /* (tmp13) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_v1al] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 2410(line=95, offs=11) -- 2442(line=95, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_v1al (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_v1al: /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_v1al (stderr, arg0) ; return /* (tmp14) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_v1al] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_bool_type, tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_int_type, tmp53) ; __ats_lab_aux_5: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp51 = atspre_gt_int_int (arg1, 0) ; if (tmp51) { /* tmp50 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp52 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp48) ; tmp53 = atspre_add_int_int (arg1, 1) ; arg0 = tmp49 ; arg1 = tmp53 ; goto __ats_lab_aux_5 ; // tail call break ; } while (0) ; return /* (tmp47) */ ; } /* end of [aux_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_5_closure_type ; ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_5 (((aux_5_closure_type*)cloptr)->closure_env_0, ((aux_5_closure_type*)cloptr)->closure_env_1, ((aux_5_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_5_closure_init (aux_5_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ; aux_5_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp46) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp46 = */ aux_5 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp46) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 2491(line=101, offs=3) -- 4636(line=189, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_char_type, tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp: tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_e1xp_node) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp16)->tag != 0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_2, tmp16, atslab_0) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp17) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp16)->tag != 1) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_0, tmp16, atslab_0) ; /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPint(")) ; /* tmp20 = */ atspre_fprint_int (arg0, tmp18) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp16)->tag != 2) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_2, tmp16, atslab_0) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPintrep(")) ; /* tmp23 = */ atspre_fprint_string (arg0, tmp21) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp16)->tag != 3) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_1, tmp16, atslab_0) ; /* tmp25 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPchar(")) ; /* tmp26 = */ atspre_fprint_char (arg0, tmp24) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp16)->tag != 4) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_2, tmp16, atslab_0) ; /* tmp28 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPfloat(")) ; /* tmp29 = */ atspre_fprint_string (arg0, tmp27) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp16)->tag != 6) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_2, tmp16, atslab_0) ; /* tmp31 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPv1al(")) ; /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_v1al (arg0, tmp30) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp16)->tag != 7) { goto __ats_lab_12_0 ; } __ats_lab_11_1: /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPnone()")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp16)->tag != 8) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPundef()")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp16)->tag != 5) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_2, tmp16, atslab_0) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPstring(")) ; /* tmp35 = */ atspre_fprint_string (arg0, tmp33) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp16)->tag != 9) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_5, tmp16, atslab_0) ; tmp37 = ats_caselptrlab_mac(anairiats_sum_5, tmp16, atslab_2) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPapp(")) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, tmp36) ; /* tmp40 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xplst (arg0, tmp37) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp16)->tag != 10) { goto __ats_lab_18_0 ; } __ats_lab_15_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_6, tmp16, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_6, tmp16, atslab_1) ; /* tmp44 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPfun(")) ; /* tmp45 = */ fprintlst_01696_ats_ptr_type (arg0, tmp42, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) ; /* tmp54 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, tmp43) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp16)->tag != 11) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp56 = ats_caselptrlab_mac(anairiats_sum_5, tmp16, atslab_0) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_5, tmp16, atslab_1) ; tmp58 = ats_caselptrlab_mac(anairiats_sum_5, tmp16, atslab_2) ; /* tmp59 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPif(")) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, tmp56) ; /* tmp61 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, tmp57) ; /* tmp63 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, tmp58) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp16)->tag != 12) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_2, tmp16, atslab_0) ; /* tmp66 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPeval(")) ; /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, tmp65) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp16)->tag != 13) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_2, tmp16, atslab_0) ; /* tmp69 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPlist(")) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xplst (arg0, tmp68) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (((ats_sum_ptr_type)tmp16)->tag != 14) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("E1XPerr()")) ; break ; } while (0) ; return /* (tmp15) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 4706(line=193, offs=22) -- 4739(line=193, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_e1xp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_e1xp: /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (stdout, arg0) ; return /* (tmp71) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 4761(line=194, offs=22) -- 4794(line=194, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_e1xp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_e1xp: /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (stderr, arg0) ; return /* (tmp72) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 4844(line=199, offs=16) -- 4906(line=200, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xplst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xplst: /* tmp73 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) ; return /* (tmp73) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xplst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 4959(line=203, offs=25) -- 4997(line=203, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_e1xplst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_e1xplst: /* tmp74 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xplst (stdout, arg0) ; return /* (tmp74) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_e1xplst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 5022(line=204, offs=25) -- 5060(line=204, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_e1xplst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_e1xplst: /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xplst (stderr, arg0) ; return /* (tmp75) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_e1xplst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 5107(line=209, offs=15) -- 5485(line=224, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_effcst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp76) ; ATSlocal (ats_uint_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_effcst: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: /* tmp76 = */ atspre_fprint_string (arg0, ATSstrcst("all")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_24_0 ; } __ats_lab_23_1: /* tmp76 = */ atspre_fprint_string (arg0, ATSstrcst("nil")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; /* tmp79 = */ atspre_fprint_string (arg0, ATSstrcst("set(")) ; /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset (arg0, tmp77) ; /* tmp81 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp82 = */ fprintlst_01696_ats_ptr_type (arg0, tmp78, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) ; /* tmp76 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp76) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_effcst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 5558(line=229, offs=13) -- 6437(line=261, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_int_type, tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt: tmp84 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg1), atslab_s1rt_node) ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp84)->tag != 0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_6, tmp84, atslab_0) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_6, tmp84, atslab_1) ; /* tmp87 = */ atspre_fprint_string (arg0, ATSstrcst("S1RTapp(")) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (arg0, tmp85) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst (arg0, tmp86) ; /* tmp83 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp84)->tag != 1) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_2, tmp84, atslab_0) ; /* tmp92 = */ atspre_fprint_string (arg0, ATSstrcst("S1RTlist(")) ; /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst (arg0, tmp91) ; /* tmp83 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp84)->tag != 2) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_6, tmp84, atslab_0) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_6, tmp84, atslab_1) ; /* tmp96 = */ atspre_fprint_string (arg0, ATSstrcst("S1RTqid(")) ; /* tmp97 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0rtq (arg0, tmp94) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp95) ; /* tmp83 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp84)->tag != 3) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_0, tmp84, atslab_0) ; /* tmp100 = */ atspre_fprint_string (arg0, ATSstrcst("S1RTtype(")) ; /* tmp101 = */ atspre_fprint_int (arg0, tmp99) ; /* tmp83 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (((ats_sum_ptr_type)tmp84)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: /* tmp83 = */ atspre_fprint_string (arg0, ATSstrcst("S1RTerr()")) ; break ; } while (0) ; return /* (tmp83) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 6484(line=263, offs=22) -- 6517(line=263, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1rt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1rt: /* tmp102 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (stdout, arg0) ; return /* (tmp102) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1rt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 6539(line=264, offs=22) -- 6572(line=264, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1rt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1rt: /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (stderr, arg0) ; return /* (tmp103) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1rt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 6620(line=269, offs=16) -- 6682(line=270, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst: /* tmp104 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt) ; return /* (tmp104) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 6735(line=273, offs=25) -- 6773(line=273, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1rtlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1rtlst: /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst (stdout, arg0) ; return /* (tmp105) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1rtlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 6798(line=274, offs=25) -- 6836(line=274, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1rtlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1rtlst: /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst (stderr, arg0) ; return /* (tmp106) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1rtlst] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12204(line=668, offs=1) -- 12471(line=681, offs=8) */ ATSstaticdec() ats_void_type fprintopt_01697_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; __ats_lab_fprintopt_01697_ats_ptr_type: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: /* tmp108 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; /* tmp110 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp111 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg2) (arg0, tmp109) ; /* tmp108 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp108) */ ; } /* end of [fprintopt_01697_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 6884(line=279, offs=16) -- 6936(line=279, offs=68) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtopt: /* tmp107 = */ fprintopt_01697_ats_ptr_type (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt) ; return /* (tmp107) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtopt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 6987(line=284, offs=19) -- 7057(line=285, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlstlst: /* tmp112 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst) ; return /* (tmp112) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlstlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 7138(line=291, offs=19) -- 7323(line=296, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtcon (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtcon: tmp115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d1atsrtcon_sym) ; /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp115) ; /* tmp116 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d1atsrtcon_arg) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtlst (arg0, tmp118) ; /* tmp113 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp113) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtcon] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 7353(line=299, offs=19) -- 7566(line=304, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtdec: tmp121 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg1), atslab_d1atsrtdec_sym) ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp121) ; /* tmp122 = */ atspre_fprint_string (arg0, ATSstrcst("(\n")) ; tmp124 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg1), atslab_d1atsrtdec_con) ; /* tmp123 = */ fprintlst_01696_ats_ptr_type (arg0, tmp124, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtcon) ; /* tmp119 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ; return /* (tmp119) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1atsrtdec] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 7612(line=309, offs=14) -- 7853(line=317, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; // ATSlocal_void (tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arg: tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1arg_sym) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp127) ; tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1arg_srt) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp128 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_10, tmp128, atslab_0) ; /* tmp130 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (arg0, tmp129) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (tmp128 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: break ; } while (0) ; return /* (tmp125) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arg] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 7908(line=321, offs=3) -- 7963(line=321, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arglst: /* tmp131 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arg) ; return /* (tmp131) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arglst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 8017(line=325, offs=15) -- 8063(line=325, offs=61) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1marg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1marg: tmp133 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_s1marg_arg) ; /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arglst (arg0, tmp133) ; return /* (tmp132) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1marg] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 8109(line=330, offs=14) -- 8350(line=338, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srt: tmp136 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_a1srt_sym) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp136 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_10, tmp136, atslab_0) ; /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp137) ; /* tmp135 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (tmp136 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: break ; } while (0) ; tmp139 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_a1srt_srt) ; /* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (arg0, tmp139) ; return /* (tmp134) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 8405(line=342, offs=3) -- 8460(line=342, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srtlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp140) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srtlst: /* tmp140 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srt) ; return /* (tmp140) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srtlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 8535(line=348, offs=15) -- 8668(line=352, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrt: /* tmp142 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_a1msrt_arg) ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1srtlst (arg0, tmp144) ; /* tmp141 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp141) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 8699(line=356, offs=3) -- 8754(line=356, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrtlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp145) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrtlst: /* tmp145 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(" "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrt) ; return /* (tmp145) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrtlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 8829(line=362, offs=14) -- 13249(line=551, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_int_type, tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; ATSlocal (ats_char_type, tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; // ATSlocal_void (tmp173) ; // ATSlocal_void (tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; // ATSlocal_void (tmp192) ; // ATSlocal_void (tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; ATSlocal (ats_int_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; // ATSlocal_void (tmp204) ; // ATSlocal_void (tmp205) ; ATSlocal (ats_int_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; ATSlocal (ats_int_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; // ATSlocal_void (tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; // ATSlocal_void (tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp229) ; ATSlocal (ats_int_type, tmp230) ; ATSlocal (ats_int_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_int_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; // ATSlocal_void (tmp242) ; // ATSlocal_void (tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_int_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; // ATSlocal_void (tmp256) ; ATSlocal (ats_int_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; // ATSlocal_void (tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; // ATSlocal_void (tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; // ATSlocal_void (tmp277) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp: tmp147 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg1), atslab_s1exp_node) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp147)->tag != 2) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_0, tmp147, atslab_0) ; /* tmp149 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eint(")) ; /* tmp150 = */ atspre_fprint_int (arg0, tmp148) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp147)->tag != 3) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp151 = ats_caselptrlab_mac(anairiats_sum_2, tmp147, atslab_0) ; /* tmp152 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eintrep(")) ; /* tmp153 = */ atspre_fprint_string (arg0, tmp151) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp147)->tag != 4) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_1, tmp147, atslab_0) ; /* tmp155 = */ atspre_fprint_string (arg0, ATSstrcst("S1Echar(")) ; /* tmp156 = */ atspre_fprint_char (arg0, tmp154) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp147)->tag != 5) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp157 = ats_caselptrlab_mac(anairiats_sum_2, tmp147, atslab_0) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("S1Efloat(")) ; /* tmp159 = */ atspre_fprint_string (arg0, tmp157) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp147)->tag != 6) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_2, tmp147, atslab_0) ; /* tmp161 = */ atspre_fprint_string (arg0, ATSstrcst("S1Estring(")) ; /* tmp162 = */ atspre_fprint_string (arg0, tmp160) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp147)->tag != 7) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_0) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_1) ; /* tmp165 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eextype(")) ; /* tmp166 = */ atspre_fprint_string (arg0, tmp163) ; /* tmp167 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp168 = */ fprintlst_01696_ats_ptr_type (arg0, tmp164, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp147)->tag != 8) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_0) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_1) ; /* tmp171 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eextkind(")) ; /* tmp172 = */ atspre_fprint_string (arg0, tmp169) ; /* tmp173 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp174 = */ fprintlst_01696_ats_ptr_type (arg0, tmp170, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp147)->tag != 0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_2, tmp147, atslab_0) ; /* tmp176 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eide(")) ; /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp175) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp147)->tag != 1) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_0) ; tmp179 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_1) ; /* tmp180 = */ atspre_fprint_string (arg0, ATSstrcst("S1Esqid(")) ; /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_s0taq (arg0, tmp178) ; /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp179) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp147)->tag != 9) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp183 = ats_caselptrlab_mac(anairiats_sum_5, tmp147, atslab_0) ; tmp184 = ats_caselptrlab_mac(anairiats_sum_5, tmp147, atslab_2) ; /* tmp185 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eapp(")) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp183) ; /* tmp187 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst (arg0, tmp184) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp147)->tag != 10) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp189 = ats_caselptrlab_mac(anairiats_sum_5, tmp147, atslab_0) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_5, tmp147, atslab_1) ; tmp191 = ats_caselptrlab_mac(anairiats_sum_5, tmp147, atslab_2) ; /* tmp192 = */ atspre_fprint_string (arg0, ATSstrcst("S1Elam(")) ; /* tmp193 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1marg (arg0, tmp189) ; /* tmp194 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtopt (arg0, tmp190) ; /* tmp196 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp191) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp147)->tag != 11) { goto __ats_lab_48_0 ; } __ats_lab_47_1: /* tmp198 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eimp(")) ; /* tmp199 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp147)->tag != 13) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp200 = ats_caselptrlab_mac(anairiats_sum_18, tmp147, atslab_0) ; tmp201 = ats_caselptrlab_mac(anairiats_sum_18, tmp147, atslab_1) ; /* tmp202 = */ atspre_fprint_string (arg0, ATSstrcst("S1Elist(")) ; /* tmp203 = */ atspre_fprint_int (arg0, tmp200) ; /* tmp204 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst (arg0, tmp201) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp147)->tag != 12) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_18, tmp147, atslab_0) ; tmp207 = ats_caselptrlab_mac(anairiats_sum_18, tmp147, atslab_1) ; /* tmp208 = */ atspre_fprint_string (arg0, ATSstrcst("S1Etop(")) ; /* tmp209 = */ atspre_fprint_int (arg0, tmp206) ; /* tmp210 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp207) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp147)->tag != 14) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_18, tmp147, atslab_0) ; tmp213 = ats_caselptrlab_mac(anairiats_sum_18, tmp147, atslab_1) ; /* tmp214 = */ atspre_fprint_string (arg0, ATSstrcst("S1Einvar(")) ; /* tmp215 = */ atspre_fprint_int (arg0, tmp212) ; /* tmp216 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp213) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp147)->tag != 15) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_0) ; tmp219 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_1) ; /* tmp220 = */ atspre_fprint_string (arg0, ATSstrcst("S1Etrans(")) ; /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp218) ; /* tmp222 = */ atspre_fprint_string (arg0, ATSstrcst(" >> ")) ; /* tmp223 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp219) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp147)->tag != 16) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_0) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_1) ; /* tmp226 = */ atspre_fprint_string (arg0, ATSstrcst("S1Etyarr(")) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp224) ; /* tmp228 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp229 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst (arg0, tmp225) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp147)->tag != 17) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_19, tmp147, atslab_0) ; tmp231 = ats_caselptrlab_mac(anairiats_sum_19, tmp147, atslab_1) ; tmp232 = ats_caselptrlab_mac(anairiats_sum_19, tmp147, atslab_2) ; /* tmp233 = */ atspre_fprint_string (arg0, ATSstrcst("S1Etytup(")) ; /* tmp234 = */ atspre_fprint_int (arg0, tmp230) ; /* tmp235 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp236 = */ atspre_fprint_int (arg0, tmp231) ; /* tmp237 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst (arg0, tmp232) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp147)->tag != 18) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp239 = ats_caselptrlab_mac(anairiats_sum_19, tmp147, atslab_0) ; tmp240 = ats_caselptrlab_mac(anairiats_sum_19, tmp147, atslab_1) ; tmp241 = ats_caselptrlab_mac(anairiats_sum_19, tmp147, atslab_2) ; /* tmp242 = */ atspre_fprint_string (arg0, ATSstrcst("S1Etyrec(")) ; /* tmp243 = */ atspre_fprint_int (arg0, tmp239) ; /* tmp244 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp245 = */ atspre_fprint_int (arg0, tmp240) ; /* tmp246 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp247 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1explst (arg0, tmp241) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp147)->tag != 19) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp248 = ats_caselptrlab_mac(anairiats_sum_20, tmp147, atslab_0) ; tmp249 = ats_caselptrlab_mac(anairiats_sum_20, tmp147, atslab_1) ; tmp250 = ats_caselptrlab_mac(anairiats_sum_20, tmp147, atslab_2) ; /* tmp251 = */ atspre_fprint_string (arg0, ATSstrcst("S1Etyrec_ext(")) ; /* tmp252 = */ atspre_fprint_string (arg0, tmp248) ; /* tmp253 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp254 = */ atspre_fprint_int (arg0, tmp249) ; /* tmp255 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp256 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1explst (arg0, tmp250) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp147)->tag != 21) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp257 = ats_caselptrlab_mac(anairiats_sum_21, tmp147, atslab_0) ; tmp258 = ats_caselptrlab_mac(anairiats_sum_21, tmp147, atslab_1) ; tmp259 = ats_caselptrlab_mac(anairiats_sum_21, tmp147, atslab_2) ; /* tmp260 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eexi(")) ; /* tmp261 = */ atspre_fprint_int (arg0, tmp257) ; /* tmp262 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp263 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qualst (arg0, tmp258) ; /* tmp264 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp265 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp259) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp147)->tag != 20) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp266 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_0) ; tmp267 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_1) ; /* tmp268 = */ atspre_fprint_string (arg0, ATSstrcst("S1Euni(")) ; /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qualst (arg0, tmp266) ; /* tmp270 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp271 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp267) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp147)->tag != 22) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_0) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_6, tmp147, atslab_1) ; /* tmp274 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eann(")) ; /* tmp275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp272) ; /* tmp276 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp277 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (arg0, tmp273) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp147)->tag != 23) { goto __ats_lab_60_0 ; } __ats_lab_59_1: /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst("S1Ed2ctype(...)")) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (((ats_sum_ptr_type)tmp147)->tag != 24) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst("S1Eerr()")) ; break ; } while (0) ; return /* (tmp146) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 13298(line=554, offs=13) -- 13332(line=554, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp278) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1exp: /* tmp278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (stdout, arg0) ; return /* (tmp278) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 13355(line=556, offs=13) -- 13389(line=556, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp279) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp: /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (stderr, arg0) ; return /* (tmp279) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 13419(line=560, offs=3) -- 13474(line=560, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp280) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst: /* tmp280 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp) ; return /* (tmp280) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 13532(line=565, offs=3) -- 13583(line=565, offs=54) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp281) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expopt: /* tmp281 = */ fprintopt_01697_ats_ptr_type (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp) ; return /* (tmp281) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expopt] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 13662(line=572, offs=3) -- 13824(line=577, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; // ATSlocal_void (tmp285) ; // ATSlocal_void (tmp286) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1exp: // tmp283 = ats_caselptrlab_mac(anairiats_sum_22, arg1, atslab_0) ; tmp284 = ats_caselptrlab_mac(anairiats_sum_22, arg1, atslab_2) ; /* tmp285 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_l0ab (arg0, tmp283) ; /* tmp286 = */ atspre_fprint_string (arg0, ATSstrcst("= ")) ; /* tmp282 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp284) ; return /* (tmp282) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 13885(line=581, offs=3) -- 13943(line=581, offs=61) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1explst: /* tmp287 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1exp) ; return /* (tmp287) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_labs1explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 14024(line=588, offs=3) -- 14494(line=608, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtext (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; // ATSlocal_void (tmp291) ; // ATSlocal_void (tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; // ATSlocal_void (tmp298) ; // ATSlocal_void (tmp299) ; // ATSlocal_void (tmp300) ; // ATSlocal_void (tmp301) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtext: tmp289 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg1), atslab_s1rtext_node) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp289)->tag != 0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp290 = ats_caselptrlab_mac(anairiats_sum_2, tmp289, atslab_0) ; /* tmp291 = */ atspre_fprint_string (arg0, ATSstrcst("S1TEsrt(")) ; /* tmp292 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (arg0, tmp290) ; /* tmp288 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (((ats_sum_ptr_type)tmp289)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp293 = ats_caselptrlab_mac(anairiats_sum_5, tmp289, atslab_0) ; tmp294 = ats_caselptrlab_mac(anairiats_sum_5, tmp289, atslab_1) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_5, tmp289, atslab_2) ; /* tmp296 = */ atspre_fprint_string (arg0, ATSstrcst("S1TEsub(")) ; /* tmp297 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp293) ; /* tmp298 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp299 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtext (arg0, tmp294) ; /* tmp300 = */ atspre_fprint_string (arg0, ATSstrcst(" | ")) ; /* tmp301 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst (arg0, tmp295) ; /* tmp288 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp288) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtext] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 14569(line=614, offs=3) -- 15006(line=630, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qua (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; // ATSlocal_void (tmp309) ; // ATSlocal_void (tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qua: tmp303 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg1), atslab_s1qua_node) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp303)->tag != 0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_2, tmp303, atslab_0) ; /* tmp305 = */ atspre_fprint_string (arg0, ATSstrcst("S1Qprop(")) ; /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp304) ; /* tmp302 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (((ats_sum_ptr_type)tmp303)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp307 = ats_caselptrlab_mac(anairiats_sum_6, tmp303, atslab_0) ; tmp308 = ats_caselptrlab_mac(anairiats_sum_6, tmp303, atslab_1) ; /* tmp309 = */ atspre_fprint_string (arg0, ATSstrcst("S1Qvars(")) ; /* tmp310 = */ fprintlst_01696_ats_ptr_type (arg0, tmp307, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0de) ; /* tmp311 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtext (arg0, tmp308) ; /* tmp302 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp302) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qua] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 15061(line=634, offs=3) -- 15116(line=634, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qualst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp313) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qualst: /* tmp313 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qua) ; return /* (tmp313) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qualst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 15193(line=640, offs=17) -- 15493(line=650, offs=6) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; // ATSlocal_void (tmp316) ; // ATSlocal_void (tmp317) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg: do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: /* tmp314 = */ atspre_fprint_string (arg0, ATSstrcst("{..}")) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_67_0 ; } __ats_lab_66_1: /* tmp314 = */ atspre_fprint_string (arg0, ATSstrcst("{...}")) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp315 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; /* tmp316 = */ atspre_fprint_string (arg0, ATSstrcst("{")) ; /* tmp317 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arglst (arg0, tmp315) ; /* tmp314 = */ atspre_fprint_string (arg0, ATSstrcst("}")) ; break ; } while (0) ; return /* (tmp314) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 15575(line=654, offs=16) -- 15612(line=654, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1vararg (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp318) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1vararg: /* tmp318 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg (stdout, arg0) ; return /* (tmp318) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__print_s1vararg] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 15638(line=656, offs=16) -- 15675(line=656, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1vararg (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp319) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1vararg: /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg (stderr, arg0) ; return /* (tmp319) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1vararg] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 15724(line=661, offs=17) -- 16031(line=671, offs=6) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparg: tmp321 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_s1exparg_node) ; do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp321)->tag != 0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: /* tmp320 = */ atspre_fprint_string (arg0, ATSstrcst("{..}")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp321)->tag != 1) { goto __ats_lab_70_0 ; } __ats_lab_69_1: /* tmp320 = */ atspre_fprint_string (arg0, ATSstrcst("{...}")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (((ats_sum_ptr_type)tmp321)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp322 = ats_caselptrlab_mac(anairiats_sum_2, tmp321, atslab_0) ; /* tmp323 = */ atspre_fprint_string (arg0, ATSstrcst("{")) ; /* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst (arg0, tmp322) ; /* tmp320 = */ atspre_fprint_string (arg0, ATSstrcst("}")) ; break ; } while (0) ; return /* (tmp320) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparg] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 16117(line=676, offs=3) -- 16173(line=676, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp325) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparglst: /* tmp325 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(""), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparg) ; return /* (tmp325) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exparglst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 16252(line=682, offs=16) -- 16397(line=686, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtdef (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp326) ; // ATSlocal_void (tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtdef: tmp328 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg1), atslab_s1rtdef_sym) ; /* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp328) ; /* tmp329 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp330 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg1), atslab_s1rtdef_def) ; /* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtext (arg0, tmp330) ; return /* (tmp326) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rtdef] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 16472(line=691, offs=16) -- 16700(line=697, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp331) ; // ATSlocal_void (tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; // ATSlocal_void (tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacst: tmp333 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_s1tacst_sym) ; /* tmp332 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp333) ; /* tmp334 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp336 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_s1tacst_arg) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrtlst (arg0, tmp336) ; /* tmp337 = */ atspre_fprint_string (arg0, ATSstrcst(") : ")) ; tmp338 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_s1tacst_res) ; /* tmp331 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (arg0, tmp338) ; return /* (tmp331) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 16775(line=702, offs=16) -- 17007(line=708, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacon (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp339) ; // ATSlocal_void (tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; // ATSlocal_void (tmp342) ; // ATSlocal_void (tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; // ATSlocal_void (tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacon: tmp341 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg1), atslab_s1tacon_sym) ; /* tmp340 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp341) ; /* tmp342 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp344 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg1), atslab_s1tacon_arg) ; /* tmp343 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_a1msrtlst (arg0, tmp344) ; /* tmp345 = */ atspre_fprint_string (arg0, ATSstrcst(") = ")) ; tmp346 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg1), atslab_s1tacon_def) ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expopt (arg0, tmp346) ; return /* (tmp339) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1tacon] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 17306(line=724, offs=17) -- 17731(line=736, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expdef (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp347) ; // ATSlocal_void (tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; // ATSlocal_void (tmp353) ; // ATSlocal_void (tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; // ATSlocal_void (tmp357) ; // ATSlocal_void (tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expdef: tmp349 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, arg1), atslab_s1expdef_sym) ; /* tmp348 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp349) ; /* tmp350 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp352 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, arg1), atslab_s1expdef_arg) ; /* tmp351 = */ fprintlst_01696_ats_ptr_type (arg0, tmp352, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1marg) ; /* tmp353 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; tmp355 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, arg1), atslab_s1expdef_res) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (tmp355 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp356 = ats_caselptrlab_mac(anairiats_sum_10, tmp355, atslab_0) ; /* tmp357 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp354 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (arg0, tmp356) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (tmp355 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: break ; } while (0) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp359 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, arg1), atslab_s1expdef_def) ; /* tmp347 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp359) ; return /* (tmp347) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1expdef] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 17808(line=741, offs=17) -- 18233(line=753, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1aspdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; // ATSlocal_void (tmp363) ; // ATSlocal_void (tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; // ATSlocal_void (tmp366) ; // ATSlocal_void (tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; // ATSlocal_void (tmp370) ; // ATSlocal_void (tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1aspdec: tmp362 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg1), atslab_s1aspdec_qid) ; /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_sqi0de (arg0, tmp362) ; /* tmp363 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp365 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg1), atslab_s1aspdec_arg) ; /* tmp364 = */ fprintlst_01696_ats_ptr_type (arg0, tmp365, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1marg) ; /* tmp366 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; tmp368 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg1), atslab_s1aspdec_res) ; do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (tmp368 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp369 = ats_caselptrlab_mac(anairiats_sum_10, tmp368, atslab_0) ; /* tmp370 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp367 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1rt (arg0, tmp369) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (tmp368 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: break ; } while (0) ; /* tmp371 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg1), atslab_s1aspdec_def) ; /* tmp360 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp372) ; return /* (tmp360) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1aspdec] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 18308(line=758, offs=15) -- 18441(line=762, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp373) ; // ATSlocal_void (tmp374) ; // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marg: /* tmp374 = */ atspre_fprint_string (arg0, ATSstrcst("{")) ; tmp376 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg1), atslab_q1marg_arg) ; /* tmp375 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1qualst (arg0, tmp376) ; /* tmp373 = */ atspre_fprint_string (arg0, ATSstrcst("}")) ; return /* (tmp373) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marg] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 18498(line=766, offs=3) -- 18552(line=766, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp377) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marglst: /* tmp377 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(""), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marg) ; return /* (tmp377) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marglst] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 18629(line=772, offs=16) -- 19009(line=784, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_i1mparg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; // ATSlocal_void (tmp380) ; // ATSlocal_void (tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_i1mparg: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp379 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp380 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1arglst (arg0, tmp379) ; /* tmp378 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp378 = */ fprintlst_01696_ats_ptr_type (arg0, tmp382, ATSstrcst(""), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1vararg) ; break ; } while (0) ; return /* (tmp378) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_i1mparg] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 19084(line=789, offs=16) -- 19448(line=798, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xndec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp383) ; // ATSlocal_void (tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; // ATSlocal_void (tmp386) ; // ATSlocal_void (tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; // ATSlocal_void (tmp389) ; // ATSlocal_void (tmp390) ; ATSlocal (ats_int_type, tmp391) ; // ATSlocal_void (tmp392) ; // ATSlocal_void (tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xndec: tmp385 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg1), atslab_e1xndec_sym) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp385) ; /* tmp386 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; tmp388 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg1), atslab_e1xndec_qua) ; /* tmp387 = */ fprintlst_01696_ats_ptr_type (arg0, tmp388, ATSstrcst(" "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_q1marg) ; /* tmp389 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; tmp391 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg1), atslab_e1xndec_npf) ; /* tmp390 = */ atspre_fprint_int (arg0, tmp391) ; /* tmp392 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; tmp394 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg1), atslab_e1xndec_arg) ; /* tmp393 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1explst (arg0, tmp394) ; /* tmp383 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp383) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xndec] */ /* // /tmp/ATS-Postiats/src/pats_staexp1_print.dats: 19524(line=803, offs=17) -- 19670(line=807, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1cstdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp395) ; // ATSlocal_void (tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; // ATSlocal_void (tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1cstdec: tmp397 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg1), atslab_d1cstdec_sym) ; /* tmp396 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp397) ; /* tmp398 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; tmp399 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg1), atslab_d1cstdec_type) ; /* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_s1exp (arg0, tmp399) ; return /* (tmp395) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_d1cstdec] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp1_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dyncst2_sats.c0000644000175000017500000000432513431250607022136 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dyncst2_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_env_sats.c0000644000175000017500000000566013431250607022633 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__ATSRELOCITM_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__ATSRELOCITM2_1) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__ATSRELOCITM_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__ATSRELOCITM2_1.tag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_env_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_error_dats.c0000644000175000017500000001031313431250607021654 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn_interr) ; /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, pats_error_segfault) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_error.dats: 1564(line=53, offs=6) -- 1639(line=59, offs=4) */ ATSglobaldec() ats_varet_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort: tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn) ; /* tmp0 = */ ats_raise_exn (tmp1) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort] */ /* // /tmp/ATS-Postiats/src/pats_error.dats: 1681(line=62, offs=13) -- 1763(line=68, offs=4) */ ATSglobaldec() ats_varet_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr: tmp3 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn_interr) ; /* tmp2 = */ ats_raise_exn (tmp3) ; return /* (tmp2) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_error_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_funent_dats.c0000644000175000017500000014707413431250607023222 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_funent_loc ; ats_ptr_type atslab_funent_lab ; ats_ptr_type atslab_funent_imparg ; ats_ptr_type atslab_funent_tmparg ; ats_ptr_type atslab_funent_tmpsub ; ats_ptr_type atslab_funent_tmpret ; ats_ptr_type atslab_funent_flablst ; ats_ptr_type atslab_funent_flablst_fin ; ats_ptr_type atslab_funent_d2envlst ; ats_ptr_type atslab_funent_d2envlst_fin ; ats_ptr_type atslab_funent_vbindmap ; ats_ptr_type atslab_funent_instrlst ; ats_ptr_type atslab_funent_tmpvarlst ; ats_ptr_type atslab_funent_fnxlablst ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* external typedefs */ typedef anairiats_rec_0 *funent_t ; /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funent) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_imparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsubopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instrlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrlst_get_tmpvarset) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpsub) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_instrlst) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__funent_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_19 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_19_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 2932(line=105, offs=1) -- 3538(line=139, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_ptr_type arg8, ats_ptr_type arg9, ats_ptr_type arg10) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make: tmp1 = (ats_sum_ptr_type)0 ; tmp2 = (ats_sum_ptr_type)0 ; tmp3 = (ats_sum_ptr_type)0 ; tmp0 = ATS_MALLOC(sizeof(anairiats_rec_0)) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_loc, arg0) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_lab, arg1) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_imparg, arg2) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_tmparg, arg3) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_tmpsub, arg4) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_tmpret, arg5) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_flablst, arg6) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_flablst_fin, tmp1) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_d2envlst, arg7) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_d2envlst_fin, tmp2) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_vbindmap, arg8) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_instrlst, arg9) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_tmpvarlst, arg10) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_funent_fnxlablst, tmp3) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 3610(line=144, offs=16) -- 3634(line=144, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_loc: tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_loc) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 3661(line=147, offs=16) -- 3685(line=147, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab: tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_lab) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 3716(line=151, offs=3) -- 3758(line=151, offs=45) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_level (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_level: tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_lab) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level (tmp7) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_level] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 3818(line=155, offs=19) -- 3845(line=155, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_imparg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_imparg: tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_imparg) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_imparg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 3875(line=158, offs=19) -- 3902(line=158, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg: tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_tmparg) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 3932(line=161, offs=19) -- 3959(line=161, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpsub (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpsub: tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_tmpsub) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpsub] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 3989(line=164, offs=19) -- 4016(line=164, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret: tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_tmpret) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 4047(line=167, offs=20) -- 4075(line=167, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst: tmp12 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_flablst) ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 4109(line=169, offs=24) -- 4141(line=169, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst_fin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst_fin: tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_flablst_fin) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst_fin] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 4173(line=172, offs=21) -- 4202(line=172, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst: tmp14 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_d2envlst) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 4237(line=174, offs=25) -- 4270(line=174, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst_fin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst_fin: tmp15 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_d2envlst_fin) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst_fin] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 4302(line=177, offs=21) -- 4331(line=177, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_vbindmap (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_vbindmap: tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_vbindmap) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_vbindmap] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 4363(line=180, offs=21) -- 4392(line=180, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_instrlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_instrlst: tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_instrlst) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_instrlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 4425(line=183, offs=22) -- 4455(line=183, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpvarlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpvarlst: tmp18 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_tmpvarlst) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpvarlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 4509(line=188, offs=22) -- 4539(line=188, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_fnxlablst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_fnxlablst: tmp19 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_funent_fnxlablst) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_fnxlablst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 4629(line=198, offs=1) -- 5014(line=215, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_ptr_type arg8) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make2: tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrlst_get_tmpvarset (arg8) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (tmp21, arg4) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize_free (tmp22) ; tmp24 = (ats_sum_ptr_type)0 ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make (arg0, arg1, arg2, arg3, tmp24, arg4, arg5, arg6, arg7, arg8, ats_castfn_mac(ats_ptr_type, tmp23)) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make2] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_19 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_bool_type, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_int_type, tmp48) ; __ats_lab_aux_19: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp46 = atspre_gt_int_int (arg1, 0) ; if (tmp46) { /* tmp45 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp47 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp43) ; tmp48 = atspre_add_int_int (arg1, 1) ; arg0 = tmp44 ; arg1 = tmp48 ; goto __ats_lab_aux_19 ; // tail call break ; } while (0) ; return /* (tmp42) */ ; } /* end of [aux_19] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_19_closure_type ; ats_void_type aux_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_19 (((aux_19_closure_type*)cloptr)->closure_env_0, ((aux_19_closure_type*)cloptr)->closure_env_1, ((aux_19_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_19_closure_init (aux_19_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_19_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_19_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_19_closure_type *p_clo = ATS_MALLOC(sizeof(aux_19_closure_type)) ; aux_19_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp41) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp41 = */ aux_19 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp41) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 5088(line=221, offs=3) -- 5979(line=263, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funent (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funent: tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab (arg1) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_imparg (arg1) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg (arg1) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpsub (arg1) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret (arg1) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_instrlst (arg1) ; /* tmp32 = */ atspre_fprint_string (arg0, ATSstrcst("FUNENT(\n")) ; /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst("lab=")) ; /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp26) ; /* tmp35 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst("imparg=")) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp27) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp39 = */ atspre_fprint_string (arg0, ATSstrcst("tmparg=")) ; /* tmp40 = */ fprintlst_01696_ats_ptr_type (arg0, tmp28, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst) ; /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("tmpsub=")) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsubopt (arg0, tmp29) ; /* tmp52 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("tmpret=")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp30) ; /* tmp55 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp56 = */ atspre_fprint_string (arg0, ATSstrcst("instrlst=\n")) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instrlst (arg0, tmp31) ; /* tmp25 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funent] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 6054(line=268, offs=17) -- 6178(line=274, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_is_tmplt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_is_tmplt: tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg (arg0) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp59 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp58 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp59 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp58 = ats_false_bool ; break ; } while (0) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_is_tmplt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 6253(line=279, offs=14) -- 6294(line=279, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_funent (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_funent: /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funent (stdout, arg0) ; return /* (tmp60) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_funent] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_funent.dats: 6318(line=281, offs=14) -- 6359(line=281, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_funent (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_funent: /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funent (stderr, arg0) ; return /* (tmp61) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_funent] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_funent_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ extern ats_void_type patsopt_funent_set_tmpsub ( ats_ptr_type fent, ats_ptr_type opt ) { ((funent_t)fent)->atslab_funent_tmpsub = opt ; return ; } // end of [patsopt_funent_set_tmpsub] extern ats_void_type patsopt_funent_set_flablst_fin ( ats_ptr_type fent, ats_ptr_type opt ) { ((funent_t)fent)->atslab_funent_flablst_fin = opt ; return ; } // end of [patsopt_funent_set_flablst_fin] extern ats_void_type patsopt_funent_set_d2envlst_fin ( ats_ptr_type fent, ats_ptr_type opt ) { ((funent_t)fent)->atslab_funent_d2envlst_fin = opt ; return ; } // end of [patsopt_funent_set_d2envlst_fin] extern ats_void_type patsopt_funent_set_fnxlablst ( ats_ptr_type fent, ats_ptr_type fls ) { ((funent_t)fent)->atslab_funent_fnxlablst = fls ; return ; } // end of [patsopt_funent_set_fnxlablst] /* ****** ****** */ /* end of [pats_ccomp_funent_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_stamp_dats.c0000644000175000017500000013204213431250607021653 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_0 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_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_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_bool_type, atspre_ilte) (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_int_type, atspre_imax) (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_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__count_get_int) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lt_count_count) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lte_count_count) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__eq_count_count) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__neq_count_count) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__compare_count_count) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__fprint_count) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_count) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_count) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__sasp__stampset_viewtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__sasp__stamp_t0ype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type __ats_fun_22 (ats_int_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type __ats_fun_22_closure_make () ; static ats_int_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_int_type arg1) ; static ats_ptr_type linset_make_nil_01771_ () ; static ats_bool_type linset_is_empty_01773_ (ats_ptr_type arg0) ; static ats_bool_type linset_isnot_empty_01774_ (ats_ptr_type arg0) ; static ats_int_type compare_elt_elt_01770_ats_int_type (ats_int_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_31 (ats_int_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_31_closure_make (ats_int_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_31_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type linset_is_member_01776_ats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_070_ats_int_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_0124_ats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_0100_ats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_35 (ats_clo_ref_type env0, ats_ref_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type insert_35_closure_make (ats_clo_ref_type env0) ; static ats_bool_type insert_35_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_int_type arg1) ; static ats_bool_type linset_insert_01780_ats_int_type (ats_ref_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) ; static ats_void_type aux_41 (ats_ptr_type arg0) ; static ats_void_type linset_free_01778_ats_int_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp9) ; ATSstatic (ats_ptr_type, statmp11) ; ATSstatic (ats_ptr_type, statmp13) ; ATSstatic (ats_ptr_type, statmp15) ; ATSstatic (ats_ptr_type, statmp17) ; ATSstatic (ats_ptr_type, statmp19) ; ATSstatic (ats_ptr_type, statmp21) ; ATSstatic (ats_ptr_type, statmp23) ; ATSstatic (ats_ptr_type, statmp25) ; ATSstatic (ats_ptr_type, statmp27) ; ATSstatic (ats_ptr_type, statmp29) ; ATSstatic (ats_ptr_type, statmp31) ; ATSstatic (ats_ptr_type, statmp33) ; ATSstatic (ats_ptr_type, statmp36) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 1558(line=47, offs=15) -- 1586(line=47, offs=43) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__count_get_int (arg0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 1639(line=53, offs=3) -- 1679(line=53, offs=43) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__lt_stamp_stamp (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__lt_stamp_stamp: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lt_count_count (arg0, arg1) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__lt_stamp_stamp] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 1708(line=56, offs=3) -- 1749(line=56, offs=44) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__lte_stamp_stamp (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__lte_stamp_stamp: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lte_count_count (arg0, arg1) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__lte_stamp_stamp] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 1780(line=60, offs=3) -- 1820(line=60, offs=43) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__eq_count_count (arg0, arg1) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 1849(line=63, offs=3) -- 1890(line=63, offs=44) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__neq_stamp_stamp (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__neq_stamp_stamp: tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__neq_count_count (arg0, arg1) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__neq_stamp_stamp] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 1926(line=67, offs=3) -- 1971(line=67, offs=48) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__compare_count_count (arg0, arg1) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 2023(line=72, offs=16) -- 2052(line=72, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_stamp (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_stamp: tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_count (arg0) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_stamp] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 2088(line=75, offs=3) -- 2135(line=75, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_prefix_stamp (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_prefix_stamp: tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_count (arg0, arg1) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_prefix_stamp] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 2183(line=80, offs=14) -- 2221(line=80, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp: /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__fprint_count (arg0, arg1) ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 2388(line=96, offs=20) -- 2419(line=96, offs=51) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2rtdat_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2rtdat_stamp_make: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp9) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2rtdat_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 2546(line=109, offs=18) -- 2577(line=109, offs=49) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2cst_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2cst_stamp_make: tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp11) ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2cst_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 2704(line=122, offs=18) -- 2735(line=122, offs=49) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2var_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2var_stamp_make: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp13) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2var_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 2862(line=135, offs=18) -- 2893(line=135, offs=49) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2Var_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2Var_stamp_make: tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp15) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2Var_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 3021(line=148, offs=19) -- 3052(line=148, offs=50) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2hole_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2hole_stamp_make: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp17) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2hole_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 3179(line=161, offs=18) -- 3210(line=161, offs=49) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2con_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2con_stamp_make: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp19) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2con_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 3337(line=174, offs=18) -- 3368(line=174, offs=49) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2cst_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2cst_stamp_make: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp21) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2cst_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 3495(line=187, offs=18) -- 3526(line=187, offs=49) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2mac_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2mac_stamp_make: tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp23) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2mac_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 3653(line=200, offs=18) -- 3684(line=200, offs=49) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2var_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2var_stamp_make: tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp25) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2var_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 3812(line=213, offs=19) -- 3843(line=213, offs=50) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__hitype_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__hitype_stamp_make: tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp27) ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__hitype_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 3971(line=226, offs=19) -- 4002(line=226, offs=50) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmplab_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmplab_stamp_make: tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp29) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmplab_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 4130(line=239, offs=19) -- 4161(line=239, offs=50) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmpvar_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmpvar_stamp_make: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp31) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmpvar_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 4289(line=252, offs=19) -- 4320(line=252, offs=50) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make () { /* local vardec */ ATSlocal (ats_int_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp33) ; return (tmp34) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 4484(line=265, offs=7) -- 4559(line=268, offs=47) */ ATSstaticdec() ats_int_type __ats_fun_22 (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp35) ; __ats_lab___ats_fun_22: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (arg0, arg1) ; return (tmp35) ; } /* end of [__ats_fun_22] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_22_closure_type ; ats_int_type __ats_fun_22_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_int_type arg1) { return __ats_fun_22 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_22_closure_init (__ats_fun_22_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_22_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_22_closure_make () { __ats_fun_22_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_22_closure_type)) ; __ats_fun_22_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26) */ ATSstaticdec() ats_ptr_type linset_make_nil_01771_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; __ats_lab_linset_make_nil_01771_: tmp38 = (ats_sum_ptr_type)0 ; return (tmp38) ; } /* end of [linset_make_nil_01771_] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 4657(line=275, offs=17) -- 4684(line=275, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_nil: tmp37 = linset_make_nil_01771_ () ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2977(line=114, offs=17) -- 3047(line=115, offs=65) */ ATSstaticdec() ats_bool_type linset_is_empty_01773_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp40) ; __ats_lab_linset_is_empty_01773_: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp40 = ats_false_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp40 = ats_true_bool ; break ; } while (0) ; return (tmp40) ; } /* end of [linset_is_empty_01773_] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 4715(line=278, offs=20) -- 4745(line=278, offs=50) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_is_nil (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_is_nil: tmp39 = linset_is_empty_01773_ (arg0) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_is_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3108(line=119, offs=20) -- 3178(line=120, offs=65) */ ATSstaticdec() ats_bool_type linset_isnot_empty_01774_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp42) ; __ats_lab_linset_isnot_empty_01774_: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp42 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp42 = ats_false_bool ; break ; } while (0) ; return (tmp42) ; } /* end of [linset_isnot_empty_01774_] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 4779(line=280, offs=23) -- 4812(line=280, offs=56) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_isnot_nil (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_isnot_nil: tmp41 = linset_isnot_empty_01774_ (arg0) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_isnot_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45) */ ATSstaticdec() ats_int_type compare_elt_elt_01770_ats_int_type (ats_int_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp50) ; __ats_lab_compare_elt_elt_01770_ats_int_type: tmp50 = ((ats_int_type(*)(ats_clo_ptr_type, ats_int_type, ats_int_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp50) ; } /* end of [compare_elt_elt_01770_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3861(line=149, offs=7) -- 4231(line=160, offs=33) */ ATSstaticdec() ats_bool_type aux_31 (ats_int_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp45) ; ATSlocal (ats_int_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_int_type, tmp49) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab_aux_31: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp47 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_2) ; tmp48 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_3) ; tmp49 = compare_elt_elt_01770_ats_int_type (env0, tmp46, env1) ; tmp51 = atspre_lt_int_int (tmp49, 0) ; if (tmp51) { tmp52 = ats_ptrget_mac(ats_ptr_type, tmp47) ; arg0 = tmp52 ; goto __ats_lab_aux_31 ; // tail call } else { tmp53 = atspre_gt_int_int (tmp49, 0) ; if (tmp53) { tmp54 = ats_ptrget_mac(ats_ptr_type, tmp48) ; arg0 = tmp54 ; goto __ats_lab_aux_31 ; // tail call } else { tmp45 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp45 = ats_false_bool ; break ; } while (0) ; return (tmp45) ; } /* end of [aux_31] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_31_closure_type ; ats_bool_type aux_31_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_31 (((aux_31_closure_type*)cloptr)->closure_env_0, ((aux_31_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_31_closure_init (aux_31_closure_type *p_clo, ats_int_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_31_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_31_closure_make (ats_int_type env0, ats_clo_ref_type env1) { aux_31_closure_type *p_clo = ATS_MALLOC(sizeof(aux_31_closure_type)) ; aux_31_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3822(line=148, offs=3) -- 4251(line=162, offs=2) */ ATSstaticdec() ats_bool_type linset_is_member_01776_ats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp44) ; __ats_lab_linset_is_member_01776_ats_int_type: tmp44 = aux_31 (arg1, arg2, arg0) ; return (tmp44) ; } /* end of [linset_is_member_01776_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 4849(line=284, offs=3) -- 4892(line=284, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_is_member (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_is_member: tmp43 = linset_is_member_01776_ats_int_type (arg0, arg1, statmp36) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_is_member] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54) */ ATSstaticdec() ats_int_type avltree_height_070_ats_int_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp69) ; ATSlocal (ats_int_type, tmp70) ; __ats_lab_avltree_height_070_ats_int_type: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp69 = tmp70 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp69 = 0 ; break ; } while (0) ; return (tmp69) ; } /* end of [avltree_height_070_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_0124_ats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_int_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_int_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_bool_type, tmp88) ; ATSlocal (ats_int_type, tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_int_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_int_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_int_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab_avltree_rrotate_0124_ats_int_type: tmp80 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp80 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp81 = &ats_caselptrlab_mac(anairiats_sum_0, tmp80, atslab_0) ; tmp82 = &ats_caselptrlab_mac(anairiats_sum_0, tmp80, atslab_2) ; tmp83 = &ats_caselptrlab_mac(anairiats_sum_0, tmp80, atslab_3) ; tmp85 = ats_ptrget_mac(ats_ptr_type, tmp82) ; tmp84 = avltree_height_070_ats_int_type (tmp85) ; tmp87 = ats_ptrget_mac(ats_ptr_type, tmp83) ; tmp86 = avltree_height_070_ats_int_type (tmp87) ; tmp89 = atspre_iadd (tmp84, 0) ; tmp88 = atspre_igte (tmp89, tmp86) ; if (tmp88) { tmp90 = atspre_iadd (tmp86, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp90 ; tmp91 = ats_ptrget_mac(ats_ptr_type, tmp83) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp91 ; tmp93 = atspre_imax (tmp84, tmp90) ; tmp92 = atspre_iadd (1, tmp93) ; ats_ptrget_mac(ats_int_type, tmp81) = tmp92 ; ats_ptrget_mac(ats_ptr_type, tmp83) = arg5 ; tmp79 = tmp80 ; } else { tmp94 = ats_ptrget_mac(ats_ptr_type, tmp83) ; // if (tmp94 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp95 = &ats_caselptrlab_mac(anairiats_sum_0, tmp94, atslab_0) ; tmp96 = &ats_caselptrlab_mac(anairiats_sum_0, tmp94, atslab_2) ; tmp97 = &ats_caselptrlab_mac(anairiats_sum_0, tmp94, atslab_3) ; tmp99 = ats_ptrget_mac(ats_ptr_type, tmp96) ; tmp98 = avltree_height_070_ats_int_type (tmp99) ; tmp101 = ats_ptrget_mac(ats_ptr_type, tmp97) ; tmp100 = avltree_height_070_ats_int_type (tmp101) ; tmp103 = atspre_imax (tmp100, arg3) ; tmp102 = atspre_iadd (1, tmp103) ; ats_ptrget_mac(ats_int_type, arg0) = tmp102 ; tmp104 = ats_ptrget_mac(ats_ptr_type, tmp97) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp104 ; tmp106 = atspre_imax (tmp84, tmp98) ; tmp105 = atspre_iadd (1, tmp106) ; ats_ptrget_mac(ats_int_type, tmp81) = tmp105 ; tmp107 = ats_ptrget_mac(ats_ptr_type, tmp96) ; ats_ptrget_mac(ats_ptr_type, tmp83) = tmp107 ; ats_ptrget_mac(ats_int_type, tmp95) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp96) = tmp80 ; ats_ptrget_mac(ats_ptr_type, tmp97) = arg5 ; tmp79 = tmp94 ; } /* end of [if] */ return (tmp79) ; } /* end of [avltree_rrotate_0124_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_0100_ats_int_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_int_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_int_type, tmp129) ; ATSlocal (ats_int_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_int_type, tmp132) ; ATSlocal (ats_int_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_int_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_int_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_int_type, tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_int_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; __ats_lab_avltree_lrotate_0100_ats_int_type: tmp120 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp120 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp121 = &ats_caselptrlab_mac(anairiats_sum_0, tmp120, atslab_0) ; tmp122 = &ats_caselptrlab_mac(anairiats_sum_0, tmp120, atslab_2) ; tmp123 = &ats_caselptrlab_mac(anairiats_sum_0, tmp120, atslab_3) ; tmp125 = ats_ptrget_mac(ats_ptr_type, tmp122) ; tmp124 = avltree_height_070_ats_int_type (tmp125) ; tmp127 = ats_ptrget_mac(ats_ptr_type, tmp123) ; tmp126 = avltree_height_070_ats_int_type (tmp127) ; tmp129 = atspre_iadd (tmp126, 0) ; tmp128 = atspre_ilte (tmp124, tmp129) ; if (tmp128) { tmp130 = atspre_iadd (tmp124, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp130 ; tmp131 = ats_ptrget_mac(ats_ptr_type, tmp122) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp131 ; tmp133 = atspre_imax (tmp130, tmp126) ; tmp132 = atspre_iadd (1, tmp133) ; ats_ptrget_mac(ats_int_type, tmp121) = tmp132 ; ats_ptrget_mac(ats_ptr_type, tmp122) = arg5 ; tmp119 = tmp120 ; } else { tmp134 = ats_ptrget_mac(ats_ptr_type, tmp122) ; // if (tmp134 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp135 = &ats_caselptrlab_mac(anairiats_sum_0, tmp134, atslab_0) ; tmp136 = &ats_caselptrlab_mac(anairiats_sum_0, tmp134, atslab_2) ; tmp137 = &ats_caselptrlab_mac(anairiats_sum_0, tmp134, atslab_3) ; tmp139 = ats_ptrget_mac(ats_ptr_type, tmp136) ; tmp138 = avltree_height_070_ats_int_type (tmp139) ; tmp141 = ats_ptrget_mac(ats_ptr_type, tmp137) ; tmp140 = avltree_height_070_ats_int_type (tmp141) ; tmp143 = atspre_imax (arg1, tmp138) ; tmp142 = atspre_iadd (1, tmp143) ; ats_ptrget_mac(ats_int_type, arg0) = tmp142 ; tmp144 = ats_ptrget_mac(ats_ptr_type, tmp136) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp144 ; tmp146 = atspre_imax (tmp140, tmp126) ; tmp145 = atspre_iadd (1, tmp146) ; ats_ptrget_mac(ats_int_type, tmp121) = tmp145 ; tmp147 = ats_ptrget_mac(ats_ptr_type, tmp137) ; ats_ptrget_mac(ats_ptr_type, tmp122) = tmp147 ; ats_ptrget_mac(ats_int_type, tmp135) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp136) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp137) = tmp120 ; tmp119 = tmp134 ; } /* end of [if] */ return (tmp119) ; } /* end of [avltree_lrotate_0100_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4) */ ATSstaticdec() ats_bool_type insert_35 (ats_clo_ref_type env0, ats_ref_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_int_type, tmp64) ; ATSlocal (ats_int_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_int_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_bool_type, tmp108) ; ATSlocal (ats_bool_type, tmp109) ; ATSlocal (ats_int_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_int_type, tmp116) ; ATSlocal (ats_int_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab_insert_35: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_6_1: tmp60 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp61 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp62 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp63 = &ats_caselptrlab_mac(anairiats_sum_0, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp65 = ats_ptrget_mac(ats_int_type, tmp61) ; tmp64 = compare_elt_elt_01770_ats_int_type (arg1, tmp65, env0) ; tmp66 = atspre_lt_int_int (tmp64, 0) ; if (tmp66) { tmp67 = insert_35 (env0, tmp62, arg1) ; tmp71 = ats_ptrget_mac(ats_ptr_type, tmp62) ; tmp68 = avltree_height_070_ats_int_type (tmp71) ; tmp73 = ats_ptrget_mac(ats_ptr_type, tmp63) ; tmp72 = avltree_height_070_ats_int_type (tmp73) ; tmp75 = atspre_isub (tmp68, tmp72) ; tmp74 = atspre_ilte (tmp75, 1) ; if (tmp74) { tmp77 = atspre_imax (tmp68, tmp72) ; tmp76 = atspre_iadd (1, tmp77) ; ats_ptrget_mac(ats_int_type, tmp60) = tmp76 ; tmp59 = tmp67 ; } else { tmp78 = avltree_rrotate_0124_ats_int_type (tmp60, tmp68, tmp62, tmp72, tmp63, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp78 ; tmp59 = tmp67 ; } /* end of [if] */ } else { tmp108 = atspre_gt_int_int (tmp64, 0) ; if (tmp108) { tmp109 = insert_35 (env0, tmp63, arg1) ; tmp111 = ats_ptrget_mac(ats_ptr_type, tmp62) ; tmp110 = avltree_height_070_ats_int_type (tmp111) ; tmp113 = ats_ptrget_mac(ats_ptr_type, tmp63) ; tmp112 = avltree_height_070_ats_int_type (tmp113) ; tmp115 = atspre_isub (tmp112, tmp110) ; tmp114 = atspre_ilte (tmp115, 1) ; if (tmp114) { tmp117 = atspre_imax (tmp110, tmp112) ; tmp116 = atspre_iadd (1, tmp117) ; ats_ptrget_mac(ats_int_type, tmp60) = tmp116 ; tmp59 = tmp109 ; } else { tmp118 = avltree_lrotate_0100_ats_int_type (tmp60, tmp110, tmp62, tmp112, tmp63, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp118 ; tmp59 = tmp109 ; } /* end of [if] */ } else { tmp59 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp149 = (ats_sum_ptr_type)0 ; tmp150 = (ats_sum_ptr_type)0 ; tmp148 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp148, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_0, tmp148, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_0, tmp148, atslab_2, tmp149) ; ats_selptrset_mac(anairiats_sum_0, tmp148, atslab_3, tmp150) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp148 ; tmp59 = ats_false_bool ; break ; } while (0) ; return (tmp59) ; } /* end of [insert_35] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } insert_35_closure_type ; ats_bool_type insert_35_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_int_type arg1) { return insert_35 (((insert_35_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_35_closure_init (insert_35_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_35_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type insert_35_closure_make (ats_clo_ref_type env0) { insert_35_closure_type *p_clo = ATS_MALLOC(sizeof(insert_35_closure_type)) ; insert_35_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_01780_ats_int_type (ats_ref_type arg0, ats_int_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp58) ; __ats_lab_linset_insert_01780_ats_int_type: tmp58 = insert_35 (arg2, arg0, arg1) ; return (tmp58) ; } /* end of [linset_insert_01780_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 4922(line=288, offs=3) -- 5011(line=291, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_add (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_bool_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_add: /* ats_ptr_type tmp56 ; */ tmp56 = arg0 ; tmp57 = linset_insert_01780_ats_int_type ((&tmp56), arg1, statmp36) ; tmp55 = tmp56 ; return (tmp55) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18) */ ATSstaticdec() ats_void_type aux_41 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; // ATSlocal_void (tmp156) ; __ats_lab_aux_41: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_2) ; tmp155 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_3) ; ATS_FREE(arg0) ; /* tmp156 = */ aux_41 (tmp154) ; arg0 = tmp155 ; goto __ats_lab_aux_41 ; // tail call break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: break ; } while (0) ; return /* (tmp153) */ ; } /* end of [aux_41] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4410(line=170, offs=13) -- 4591(line=179, offs=4) */ ATSstaticdec() ats_void_type linset_free_01778_ats_int_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp152) ; __ats_lab_linset_free_01778_ats_int_type: /* tmp152 = */ aux_41 (arg0) ; return /* (tmp152) */ ; } /* end of [linset_free_01778_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_stamp.dats: 5068(line=294, offs=18) -- 5094(line=294, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_free: /* tmp151 = */ linset_free_01778_ats_int_type (arg0) ; return /* (tmp151) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_free] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp9, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp11, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp13, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp15, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp17, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp19, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp21, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp23, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp25, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp27, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp29, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp31, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp33, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp36, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ; statmp36 = __ats_fun_22_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_stamp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_subst_dats.c0000644000175000017500000061243313431250607023057 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_t2mpmarg_loc ; ats_ptr_type atslab_t2mpmarg_arg ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_primval_loc ; ats_ptr_type atslab_primval_type ; ats_ptr_type atslab_primval_node ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } 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_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_primlab_loc ; ats_ptr_type atslab_primlab_node ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_12 ; typedef struct { anairiats_rec_12 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_primdec_loc ; ats_ptr_type atslab_primdec_node ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_15 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_16 ; typedef struct { ats_ptr_type atslab_instr_loc ; ats_ptr_type atslab_instr_node ; } anairiats_rec_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_19 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; ats_ptr_type atslab_6 ; ats_ptr_type atslab_7 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_21 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_22 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_23 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_24 ; typedef struct { ats_ptr_type atslab_ibranch_loc ; ats_ptr_type atslab_ibranch_inslst ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_hifundec_loc ; ats_ptr_type atslab_hifundec_var ; ats_ptr_type atslab_hifundec_imparg ; ats_ptr_type atslab_hifundec_def ; ats_ptr_type atslab_hifundec_hidecl ; ats_ptr_type atslab_hifundec_funlab ; } anairiats_rec_26 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaload_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__LABPRIMVAL_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpref_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVarg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargref_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargenv_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtyrep_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVsizeof_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtop_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVempty_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVextval_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcastfn_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselcon_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect2_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselptr_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrof_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrofsel_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVrefarg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfunlab_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcfunlab_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVd2vfunlab_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVlamfix_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcst_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvar_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDsaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDextvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdatdecs_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDexndecs_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDfundecs_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_rec_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvardecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDinclude_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaload_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaloadloc_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdynload_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlocal_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TPMVsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabmov_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTraise_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfunlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmplab_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScomment_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_val_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_val_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arg_val_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall2_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextfcall_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextmcall_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScond_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfreecon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloopexn_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScaseof_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpop_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpush_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_con_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ref_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_boxrec_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_fltrec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpatck_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ptrofsel_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_ptrofs_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSxstore_ptrofs_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSraise_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_delay_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_lazyeval_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStrywith_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_nil_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_nil_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_cons_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_phead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_ptail_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arrpsz_ptr_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_asz_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_ptr_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrinc_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrdec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSclosure_initize_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmpdec_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextvar_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSdcstdef_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStempenver_43) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_add_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPENV_maxtmprecdepth_get) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_copy_err) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isref) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_origin) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_set_tyclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_search) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_incget_ncopy) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_origin) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_suffix) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_suffix) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_imparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpvarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_funent_set_fnxlablst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub2stasub) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_vardecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_include) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_local) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argref) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argenv) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tyrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_sizeof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_top) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_extval) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_castfn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrofsel) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_refarg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cfunlab) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_d2vfunlab) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arg_val) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extfcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extmcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_cond) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_freecon) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loop) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_caseof) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpush) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_boxrec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ptrofsel) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_ptrofs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_xstore_ptrofs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_raise) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_delay) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_lazyeval) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_trywith) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_nil) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_nil) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_cons) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_phead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_ptail) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arrpsz_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_asz) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrinc) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_closure_initize) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_dcstdef) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ibranch_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_get_funlabopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_vbindmap) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_instrlst) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmprecdepth) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_incwth_dvarsetenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_dvarsetenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_flabsetenv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_flabsetenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_flabsetenv_ifmap) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_localjoin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapall) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_staload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdecloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundecsloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpcstmat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpvarmat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tempenver) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dvarsetenv_add_tempenver) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpcstmat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpcst_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpvarmat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpvar_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar_subst) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvarlst_subst) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, patsopt_tmpvar_set_ref) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, patsopt_tmpvar_set_ret) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, patsopt_tmpvar_set_origin) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_tmpvar_set_suffix) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlab_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlablst_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimval_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimvalist_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmprimval_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmovlst_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__patckont_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdec_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__vbindmap_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instr_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ibranchlst_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst0_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_lamfix_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ccompenv_add_fundecsloc_subst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmap_make) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__funent_funlablst_update) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_ptr_type auxlst_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_ptr_type revapp_9 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_13 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type prerr_warnccomp_loc_02096_ (ats_ptr_type arg0) ; static ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) ; static ats_ptr_type aux_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_22 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_24 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ref_type arg5) ; static ats_void_type loop_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ref_type arg5) ; static ats_ptr_type auxinit_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type auxmain_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type fwork_47 (ats_ptr_type arg0) ; static ats_void_type loop_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_foreach_funenv_01378_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_foreach_fun_01379_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxfnxset_46 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 1678(line=55, offs=3) -- 1715(line=55, offs=40) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_ccomp_subst")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 2554(line=105, offs=5) -- 3061(line=132, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_auxlst_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp2), atslab_t2mpmarg_arg) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (arg1, tmp4) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make (arg0, tmp5) ; tmp7 = auxlst_1 (arg0, arg1, tmp3) ; tmp1 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp1, atslab_0, tmp6) ; ats_selptrset_mac(anairiats_sum_1, tmp1, atslab_1, tmp7) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp1 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp1) ; } /* end of [auxlst_1] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 3136(line=138, offs=3) -- 3356(line=150, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_subst: tmp8 = auxlst_1 (arg0, arg1, arg2) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 3463(line=158, offs=3) -- 3615(line=165, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_tsubst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_tsubst: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub2stasub (arg1) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_subst (arg0, tmp10, arg2) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp10) ; tmp9 = tmp11 ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_tsubst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 4302(line=205, offs=3) -- 4754(line=222, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; ATSlocal (ats_bool_type, tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_bool_type, tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar_subst: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc (arg1) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type (arg1) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg0, tmp15) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp14, tmp16) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isref (arg1) ; if (tmp19) { /* tmp18 = */ patsopt_tmpvar_set_ref (tmp17, 1) ; } else { /* empty */ } /* end of [if] */ tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret (arg1) ; if (tmp21) { /* tmp20 = */ patsopt_tmpvar_set_ret (tmp17, 1) ; } else { /* empty */ } /* end of [if] */ tmp23 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp23, atslab_0, arg1) ; /* tmp22 = */ patsopt_tmpvar_set_origin (tmp17, tmp23) ; /* tmp24 = */ patsopt_tmpvar_set_suffix (tmp17, arg2) ; tmp13 = tmp17 ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 4885(line=232, offs=5) -- 5170(line=249, offs=4) */ ATSstaticdec() ats_ptr_type loop_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab_loop_6: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar_subst (arg0, tmp27, arg2) ; tmp30 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp30, atslab_0, tmp29) ; ats_selptrset_mac(anairiats_sum_1, tmp30, atslab_1, arg3) ; arg0 = arg0 ; arg1 = tmp28 ; arg2 = arg2 ; arg3 = tmp30 ; goto __ats_lab_loop_6 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp26 = arg3 ; break ; } while (0) ; return (tmp26) ; } /* end of [loop_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_9 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab_revapp_9: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp37 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp38 = ats_ptrget_mac(ats_ptr_type, tmp37) ; ats_ptrget_mac(ats_ptr_type, tmp37) = arg1 ; tmp39 = arg0 ; arg0 = tmp38 ; arg1 = tmp39 ; goto __ats_lab_revapp_9 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp36 = arg1 ; break ; } while (0) ; return (tmp36) ; } /* end of [revapp_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp35 = revapp_9 (arg0, arg1) ; return (tmp35) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp40 = (ats_sum_ptr_type)0 ; tmp34 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp40) ; return (tmp34) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 4853(line=230, offs=3) -- 5321(line=257, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvarlst_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvarlst_subst: tmp32 = (ats_sum_ptr_type)0 ; tmp31 = loop_6 (arg0, arg1, arg2, tmp32) ; tmp33 = list_vt_reverse_01506_ats_ptr_type (tmp31) ; tmp25 = ats_castfn_mac(ats_ptr_type, tmp33) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvarlst_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 8223(line=411, offs=3) -- 8587(line=427, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst_subst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst_subst: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (tmp42) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (tmp42) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg0, tmp45) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make (tmp44, tmp46) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst_subst (arg0, tmp43) ; tmp41 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp41, atslab_0, tmp47) ; ats_selptrset_mac(anairiats_sum_1, tmp41, atslab_1, tmp48) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp41 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 8662(line=433, offs=3) -- 9242(line=457, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_subst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_int_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_subst: tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name (arg1) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type (arg1) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg0, tmp52) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo (arg1) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (arg1) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt (arg1) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_tmparg (arg1) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__funlab_stamp_make () ; tmp60 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp60, atslab_0, tmp54) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make (tmp50, tmp51, tmp53, tmp60, tmp55, tmp56, tmp57, tmp58) ; tmp62 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp62, atslab_0, arg1) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_origin (tmp59, tmp62) ; tmp49 = tmp59 ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 9379(line=467, offs=5) -- 9657(line=482, offs=4) */ ATSstaticdec() ats_void_type loop_13 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_bool_type, tmp69) ; __ats_lab_loop_13: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp66 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_origin (tmp65) ; if (tmp67 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 9488(line=475, offs=9) -- 9521(line=475, offs=42)") ; } tmp68 = ats_caselptrlab_mac(anairiats_sum_3, tmp67, atslab_0) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_insert (arg1, tmp68, tmp65) ; arg0 = tmp66 ; arg1 = arg1 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: break ; } while (0) ; return /* (tmp64) */ ; } /* end of [loop_13] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 9361(line=465, offs=13) -- 9758(line=490, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmap_make (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp70) ; // ATSlocal_void (tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmap_make: /* ats_ptr_type tmp70 ; */ tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_nil () ; /* tmp71 = */ loop_13 (arg0, (&tmp70)) ; tmp63 = tmp70 ; return (tmp63) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmap_make] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 3269(line=136, offs=21) -- 3334(line=139, offs=2) */ ATSstaticdec() ats_void_type prerr_warnccomp_loc_02096_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; __ats_lab_prerr_warnccomp_loc_02096_: /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp77 = */ atspre_prerr_string (ATSstrcst(": warning(ccomp)")) ; return /* (tmp77) */ ; } /* end of [prerr_warnccomp_loc_02096_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 9886(line=499, offs=12) -- 10399(line=528, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_search (arg0, arg1) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp73 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_3, tmp73, atslab_0) ; ATS_FREE(tmp73) ; tmp72 = tmp74 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp73 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc (arg1) ; /* tmp76 = */ prerr_warnccomp_loc_02096_ (tmp75) ; /* tmp79 = */ atspre_prerr_string (ATSstrcst(": referencing toplevel code in a template may be problematic.")) ; /* tmp80 = */ atspre_prerr_newline () ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_copy_err (arg1) ; break ; } while (0) ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; __ats_lab_prerr_interror_loc_02085_: /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp93 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp94 = */ prerr_FILENAME_02083_ () ; /* tmp91 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp91) */ ; } /* end of [prerr_interror_loc_02085_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 11418(line=585, offs=5) -- 12626(line=635, offs=4) */ ATSstaticdec() ats_ptr_type aux_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; // ATSlocal_void (tmp90) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; __ats_lab_aux_17: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt (arg1) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp83 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_12_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_3, tmp83, atslab_0) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapall (arg0, tmp84) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp85 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_13_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_3, tmp85, atslab_0) ; ATS_FREE(tmp85) ; tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp86), atslab_primval_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp87)->tag != 31) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_5, tmp87, atslab_0) ; tmp82 = tmp88 ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp87)->tag != 32) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp89 = ats_caselptrlab_mac(anairiats_sum_6, tmp87, atslab_1) ; tmp82 = tmp89 ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp82 = arg1 ; break ; } while (0) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (tmp85 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (tmp84) ; /* tmp90 = */ prerr_interror_loc_02085_ (tmp95) ; /* tmp96 = */ atspre_prerr_string (ATSstrcst(": unbound variable [")) ; /* tmp97 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (tmp84) ; /* tmp98 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp99 = */ atspre_prerr_string (ATSstrcst(": appearance is likely during compilation of template instances.")) ; /* tmp100 = */ atspre_prerr_newline () ; tmp82 = arg1 ; break ; } while (0) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (tmp83 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp82 = arg1 ; break ; } while (0) ; return (tmp82) ; } /* end of [aux_17] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 12650(line=637, offs=5) -- 12869(line=650, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab_auxlst_19: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp101 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp104 = aux_17 (arg0, tmp102) ; tmp105 = auxlst_19 (arg0, tmp103) ; tmp101 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp101, atslab_0, tmp104) ; ats_selptrset_mac(anairiats_sum_1, tmp101, atslab_1, tmp105) ; break ; } while (0) ; return (tmp101) ; } /* end of [auxlst_19] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 11311(line=578, offs=3) -- 12917(line=654, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__funent_funlablst_update (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__funent_funlablst_update: tmp81 = auxlst_19 (arg0, arg1) ; return (tmp81) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__funent_funlablst_update] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_22 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab_loop_22: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp137 ; goto __ats_lab_loop_22 ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: break ; } while (0) ; return /* (tmp136) */ ; } /* end of [loop_22] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp135) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp135 = */ loop_22 (arg0) ; return /* (tmp135) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_24 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab_loop_24: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp148 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp148 ; arg1 = arg1 ; goto __ats_lab_loop_24 ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp147) */ ; } /* end of [loop_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; // ATSlocal_void (tmp149) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp146 ; */ tmp146 = arg0 ; /* tmp149 = */ loop_24 ((&tmp146), arg1) ; tmp145 = tmp146 ; return (tmp145) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 13001(line=660, offs=3) -- 15591(line=772, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; // ATSlocal_void (tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; // ATSlocal_void (tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_subst: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_loc (arg3) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_lab (arg3) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_imparg (arg3) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmparg (arg3) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_subst (arg1, tmp110) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret (arg3) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_vbindmap (arg3) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_instrlst (arg3) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpvarlst (arg3) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvarlst_subst (arg1, tmp115, arg4) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmap_make (tmp116) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (tmp117, tmp112) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (tmp108) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (tmp119 != (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp119 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_3, tmp119, atslab_0) ; tmp122 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp122)->tag = 2 ; ats_selptrset_mac(anairiats_sum_7, tmp122, atslab_0, tmp121) ; ats_selptrset_mac(anairiats_sum_7, tmp122, atslab_1, tmp111) ; ats_selptrset_mac(anairiats_sum_7, tmp122, atslab_2, arg2) ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpcstmat (arg0, tmp122) ; break ; } while (0) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt (tmp108) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (tmp123 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (tmp123 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_3, tmp123, atslab_0) ; tmp126 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp126)->tag = 2 ; ats_selptrset_mac(anairiats_sum_7, tmp126, atslab_0, tmp125) ; ats_selptrset_mac(anairiats_sum_7, tmp126, atslab_1, tmp111) ; ats_selptrset_mac(anairiats_sum_7, tmp126, atslab_2, arg2) ; /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpvarmat (arg0, tmp126) ; break ; } while (0) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level (arg2) ; /* tmp128 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc () ; /* tmp129 = ats_selsin_mac(tmp128, atslab_1) */ ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst (arg3) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst_subst (arg1, tmp130) ; /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_flabsetenv (arg0) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_incwth_dvarsetenv (arg0, ats_castfn_mac(ats_ptr_type, tmp131)) ; /* tmp134 = */ list_vt_free_01499_ats_ptr_type (tmp131) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, tmp117, arg1, tmp114, arg4) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_flabsetenv (arg0) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_listize_free (tmp139) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_flabsetenv_ifmap (arg0, tmp127, tmp113, tmp140) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_flablst (arg3) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__funent_funlablst_update (arg0, tmp142) ; tmp144 = list_vt_append_01504_ats_ptr_type (tmp143, tmp141) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_dvarsetenv (arg0) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dvarsetenv_add_tempenver (arg0, tmp150) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free (tmp151) ; /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec () ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__vbindmap_subst (arg0, tmp117, arg1, tmp113, arg4) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_free (tmp117) ; tmp156 = (ats_sum_ptr_type)0 ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_make (tmp107, arg2, tmp109, tmp110, tmp156, tmp118, ats_castfn_mac(ats_ptr_type, tmp144), ats_castfn_mac(ats_ptr_type, tmp152), tmp154, tmp138, tmp116) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 15663(line=778, offs=1) -- 20402(line=980, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_int_type, tmp166) ; ATSlocal (ats_int_type, tmp167) ; ATSlocal (ats_int_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; ATSlocal (ats_int_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_int_type, tmp221) ; ATSlocal (ats_int_type, tmp222) ; ATSlocal (ats_bool_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_int_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; ATSlocal (ats_bool_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst: tmp158 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_primval_loc) ; tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_primval_type) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp159) ; tmp161 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_primval_node) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp161)->tag != 0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp162 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp162) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp (tmp158, tmp160, tmp163) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp161)->tag != 1) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp164) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref (tmp158, tmp160, tmp165) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp161)->tag != 2) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp166 = ats_caselptrlab_mac(anairiats_sum_8, tmp161, atslab_0) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg (tmp158, tmp160, tmp166) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp161)->tag != 3) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp167 = ats_caselptrlab_mac(anairiats_sum_8, tmp161, atslab_0) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argref (tmp158, tmp160, tmp167) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp161)->tag != 4) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_8, tmp161, atslab_0) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argenv (tmp158, tmp160, tmp168) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp161)->tag != 19) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_top (tmp158, tmp160) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp161)->tag != 20) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp158, tmp160) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp161)->tag != 21) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_extval (tmp158, tmp160, tmp169) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp161)->tag != 22) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_1) ; tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp171, arg4) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_castfn (tmp158, tmp160, tmp170, tmp172) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp161)->tag != 17) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp173) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tyrep (tmp158, tmp160, tmp174) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp161)->tag != 18) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp175) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_sizeof (tmp158, tmp160, tmp176) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp161)->tag != 23) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_0) ; tmp178 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_1) ; tmp179 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_2) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp177, arg4) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp178) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon (tmp158, tmp160, tmp180, tmp181, tmp179) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp161)->tag != 24) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp182 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_0) ; tmp183 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_1) ; tmp184 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_2) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp182, arg4) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp183) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlab_subst (arg0, arg1, arg2, tmp184, arg4) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select (tmp158, tmp160, tmp185, tmp186, tmp187) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp161)->tag != 25) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp188 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_0) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_1) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_2) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp188, arg4) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp189) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlablst_subst (arg0, arg1, arg2, tmp190, arg4) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2 (tmp158, tmp160, tmp191, tmp192, tmp193) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp161)->tag != 26) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_0) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_1) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_2) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp194, arg4) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp195) ; tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlablst_subst (arg0, arg1, arg2, tmp196, arg4) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr (tmp158, tmp160, tmp197, tmp198, tmp199) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp161)->tag != 27) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp200 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp200, arg4) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp158, tmp160, tmp201) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp161)->tag != 28) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_0) ; tmp203 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_1) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_7, tmp161, atslab_2) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp202, arg4) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp203) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlablst_subst (arg0, arg1, arg2, tmp204, arg4) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrofsel (tmp158, tmp160, tmp205, tmp206, tmp207) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp161)->tag != 30) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_10, tmp161, atslab_0) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_10, tmp161, atslab_1) ; tmp210 = ats_caselptrlab_mac(anairiats_sum_10, tmp161, atslab_2) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp210, arg4) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_refarg (tmp158, tmp160, tmp208, tmp209, tmp211) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp161)->tag != 31) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab (tmp158, tmp160, tmp212) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp161)->tag != 32) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_6, tmp161, atslab_0) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_6, tmp161, atslab_1) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cfunlab (tmp158, tmp160, tmp213, tmp214) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp161)->tag != 33) { goto __ats_lab_52_0 ; } __ats_lab_49_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_0) ; tmp216 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_1) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapall (arg0, tmp215) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (tmp217 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_3, tmp217, atslab_0) ; ATS_FREE(tmp217) ; tmp157 = tmp218 ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (tmp217 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_d2vfunlab (tmp158, tmp160, tmp215, tmp216) ; break ; } while (0) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp161)->tag != 34) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_lamfix_subst (arg0, arg2, arg3) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp161)->tag != 35) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp219 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_0) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_1) ; tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmprecdepth (arg0) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPENV_maxtmprecdepth_get () ; tmp223 = atspre_lt_int_int (tmp221, tmp222) ; if (tmp223) { tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_subst (tmp158, arg2, tmp220) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpcst_match (arg0, tmp219, tmp224) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpcstmat (arg0, tmp158, tmp160, tmp219, tmp224, tmp225) ; } else { tmp157 = arg3 ; } /* end of [if] */ break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp161)->tag != 36) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp226 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_0) ; tmp227 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_1) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmprecdepth (arg0) ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPENV_maxtmprecdepth_get () ; tmp230 = atspre_lt_int_int (tmp228, tmp229) ; if (tmp230) { tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__t2mpmarglst_subst (tmp158, arg2, tmp227) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpvar_match (arg0, tmp226, tmp231) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccomp_tmpvarmat (arg0, tmp158, tmp160, tmp226, tmp231, tmp232) ; } else { tmp157 = arg3 ; } /* end of [if] */ break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: __ats_lab_55_1: tmp157 = arg3 ; break ; } while (0) ; return (tmp157) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 20478(line=986, offs=1) -- 20811(line=1003, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp233 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp234 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp235 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp234, arg4) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst (arg0, arg1, arg2, tmp235, arg4) ; tmp233 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp233, atslab_0, tmp236) ; ats_selptrset_mac(anairiats_sum_1, tmp233, atslab_1, tmp237) ; break ; } while (0) ; return (tmp233) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 20887(line=1009, offs=1) -- 21190(line=1026, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlab_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlab_subst: tmp239 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg3), atslab_primlab_node) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp239)->tag != 0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp238 = arg3 ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (((ats_sum_ptr_type)tmp239)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: tmp240 = ats_caselptrlab_mac(anairiats_sum_5, tmp239, atslab_0) ; tmp241 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg3), atslab_primlab_loc) ; tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst (arg0, arg1, arg2, tmp240, arg4) ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_ind (tmp241, tmp242) ; break ; } while (0) ; return (tmp238) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlab_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 21269(line=1032, offs=1) -- 21568(line=1047, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlablst_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlablst_subst: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp244 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp245 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlab_subst (arg0, arg1, arg2, tmp244, arg4) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlablst_subst (arg0, arg1, arg2, tmp245, arg4) ; tmp243 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp243, atslab_0, tmp246) ; ats_selptrset_mac(anairiats_sum_1, tmp243, atslab_1, tmp247) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: tmp243 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp243) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primlablst_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 21647(line=1053, offs=1) -- 21803(line=1062, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimval_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimval_subst: tmp249 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp250 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp250, arg4) ; tmp248 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp248, atslab_0, tmp249) ; ats_selptrset_mac(anairiats_sum_1, tmp248, atslab_1, tmp251) ; return (tmp248) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimval_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 21885(line=1068, offs=1) -- 22200(line=1083, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimvalist_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimvalist_subst: do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp253 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp254 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimval_subst (arg0, arg1, arg2, tmp253, arg4) ; tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimvalist_subst (arg0, arg1, arg2, tmp254, arg4) ; tmp252 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp252, atslab_0, tmp255) ; ats_selptrset_mac(anairiats_sum_1, tmp252, atslab_1, tmp256) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_63_1: tmp252 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp252) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimvalist_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 22278(line=1089, offs=1) -- 22545(line=1102, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmprimval_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmprimval_subst: do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg3)->tag != 0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp258 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_0) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp258, arg4) ; tmp257 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp257)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp257, atslab_0, tmp259) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: // if (((ats_sum_ptr_type)arg3)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_65_1: tmp260 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp260) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp261, arg4) ; tmp257 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp257)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp257, atslab_0, tmp262) ; ats_selptrset_mac(anairiats_sum_9, tmp257, atslab_1, tmp263) ; break ; } while (0) ; return (tmp257) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmprimval_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 22622(line=1108, offs=1) -- 23010(line=1125, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmovlst_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (anairiats_rec_12, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (anairiats_rec_12, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmovlst_subst: do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp264 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp265 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_0) ; tmp266 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_1) ; tmp269 = ats_select_mac(tmp265, atslab_0) ; tmp268 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmprimval_subst (arg0, arg1, arg2, tmp269, arg4) ; tmp271 = ats_select_mac(tmp265, atslab_1) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp271) ; tmp267.atslab_0 = tmp268 ; tmp267.atslab_1 = tmp270 ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmovlst_subst (arg0, arg1, arg2, tmp266, arg4) ; tmp264 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp264, atslab_0, tmp267) ; ats_selptrset_mac(anairiats_sum_13, tmp264, atslab_1, tmp272) ; break ; } while (0) ; return (tmp264) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmovlst_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 23086(line=1131, offs=1) -- 23632(line=1156, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__patckont_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__patckont_subst: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg3)->tag != 3) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp274 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp275 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpmovlst_subst (arg0, arg1, arg2, tmp275, arg4) ; tmp273 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp273)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp273, atslab_0, tmp274) ; ats_selptrset_mac(anairiats_sum_9, tmp273, atslab_1, tmp276) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg3)->tag != 6) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp277 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp278 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp277) ; tmp280 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp278, arg4) ; tmp273 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp273)->tag = 6 ; ats_selptrset_mac(anairiats_sum_9, tmp273, atslab_0, tmp279) ; ats_selptrset_mac(anairiats_sum_9, tmp273, atslab_1, tmp280) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp273 = arg3 ; break ; } while (0) ; return (tmp273) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__patckont_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 23706(line=1162, offs=1) -- 26389(line=1304, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdec_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; // ATSlocal_void (tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; // ATSlocal_void (tmp294) ; // ATSlocal_void (tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_int_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; // ATSlocal_void (tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; // ATSlocal_void (tmp316) ; // ATSlocal_void (tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; // ATSlocal_void (tmp322) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdec_subst: tmp282 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg3), atslab_primdec_loc) ; tmp283 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg3), atslab_primdec_node) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp283)->tag != 0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp281 = arg3 ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp283)->tag != 1) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_5, tmp283, atslab_0) ; tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst (arg0, arg1, arg2, tmp284, arg4) ; tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_list (tmp282, tmp285) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp283)->tag != 2) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp281 = arg3 ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp283)->tag != 3) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp286 = ats_caselptrlab_mac(anairiats_sum_9, tmp283, atslab_0) ; tmp287 = ats_caselptrlab_mac(anairiats_sum_9, tmp283, atslab_1) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst0_subst (arg0, arg1, arg2, tmp287, arg4) ; tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_extvar (tmp282, tmp286, tmp288) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp283)->tag != 4) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp281 = arg3 ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp283)->tag != 5) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp281 = arg3 ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp283)->tag != 10) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp289 = ats_caselptrlab_mac(anairiats_sum_5, tmp283, atslab_0) ; /* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdecloc (arg0, arg2, tmp289) ; tmp281 = arg3 ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp283)->tag != 6) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp291 = ats_caselptrlab_mac(anairiats_sum_7, tmp283, atslab_0) ; tmp292 = ats_caselptrlab_mac(anairiats_sum_7, tmp283, atslab_1) ; tmp293 = ats_caselptrlab_mac(anairiats_sum_7, tmp283, atslab_2) ; /* tmp294 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundecsloc (arg0, arg2, tmp291, tmp292, tmp293) ; /* tmp295 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ccompenv_add_fundecsloc_subst (arg0, arg2, tmp291, tmp292, tmp293) ; tmp281 = arg3 ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp283)->tag != 7) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_7, tmp283, atslab_0) ; tmp297 = ats_caselptrlab_mac(anairiats_sum_7, tmp283, atslab_1) ; tmp298 = ats_caselptrlab_mac(anairiats_sum_7, tmp283, atslab_2) ; tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst0_subst (arg0, arg1, arg2, tmp298, arg4) ; tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs (tmp282, tmp296, tmp297, tmp299) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp283)->tag != 8) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp300 = ats_caselptrlab_mac(anairiats_sum_7, tmp283, atslab_0) ; tmp301 = ats_caselptrlab_mac(anairiats_sum_7, tmp283, atslab_1) ; tmp302 = ats_caselptrlab_mac(anairiats_sum_7, tmp283, atslab_2) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst0_subst (arg0, arg1, arg2, tmp302, arg4) ; tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs_rec (tmp282, tmp300, tmp301, tmp303) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp283)->tag != 9) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_9, tmp283, atslab_0) ; tmp305 = ats_caselptrlab_mac(anairiats_sum_9, tmp283, atslab_1) ; tmp306 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst0_subst (arg0, arg1, arg2, tmp305, arg4) ; tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_vardecs (tmp282, tmp304, tmp306) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp283)->tag != 11) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp307 = ats_caselptrlab_mac(anairiats_sum_6, tmp283, atslab_0) ; tmp308 = ats_caselptrlab_mac(anairiats_sum_6, tmp283, atslab_1) ; tmp309 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst (arg0, arg1, arg2, tmp308, arg4) ; tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_include (tmp282, tmp307, tmp309) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp283)->tag != 12) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp310 = ats_caselptrlab_mac(anairiats_sum_5, tmp283, atslab_0) ; tmp311 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp310), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp311)->tag != 16) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 25641(line=1269, offs=9) -- 25699(line=1270, offs=48)") ; } tmp312 = ats_caselptrlab_mac(anairiats_sum_16, tmp311, atslab_3) ; /* tmp313 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_staload (arg0, tmp312) ; tmp281 = arg3 ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp283)->tag != 13) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp281 = arg3 ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp283)->tag != 14) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp281 = arg3 ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (((ats_sum_ptr_type)tmp283)->tag != 15) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_9, tmp283, atslab_0) ; tmp315 = ats_caselptrlab_mac(anairiats_sum_9, tmp283, atslab_1) ; /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp317 = ats_selsin_mac(tmp316, atslab_1) */ ; tmp318 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst (arg0, arg1, arg2, tmp314, arg4) ; /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp320 = ats_selsin_mac(tmp319, atslab_1) */ ; tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst (arg0, arg1, arg2, tmp315, arg4) ; /* tmp322 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_localjoin (arg0) ; tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_local (tmp282, tmp318, tmp321) ; break ; } while (0) ; return (tmp281) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdec_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 26465(line=1310, offs=1) -- 26754(line=1324, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst: do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp323 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_88_1: tmp324 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp325 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdec_subst (arg0, arg1, arg2, tmp324, arg4) ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst (arg0, arg1, arg2, tmp325, arg4) ; tmp323 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp323, atslab_0, tmp326) ; ats_selptrset_mac(anairiats_sum_1, tmp323, atslab_1, tmp327) ; break ; } while (0) ; return (tmp323) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 26867(line=1333, offs=5) -- 27260(line=1351, offs=4) */ ATSstaticdec() ats_void_type auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp328) ; ATSlocal (anairiats_rec_12, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_bool_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; __ats_lab_auxlst_36: do { /* branch: __ats_lab_89 */ __ats_lab_89_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp329 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_0) ; tmp330 = ats_caselptrlab_mac(anairiats_sum_13, arg3, atslab_1) ; ATS_FREE(arg3) ; tmp332 = ats_select_mac(tmp329, atslab_1) ; tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp332, arg4) ; tmp334 = ats_select_mac(tmp329, atslab_0) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert (arg5, tmp334, tmp331) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp330 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_auxlst_36 ; // tail call break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_90_1: break ; } while (0) ; return /* (tmp328) */ ; } /* end of [auxlst_36] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 27333(line=1357, offs=1) -- 27508(line=1365, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__vbindmap_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__vbindmap_subst: /* ats_ptr_type tmp336 ; */ tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil () ; tmp337 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize (arg3) ; /* tmp338 = */ auxlst_36 (arg0, arg1, arg2, tmp337, arg4, (&tmp336)) ; tmp335 = tmp336 ; return (tmp335) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__vbindmap_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 27606(line=1373, offs=1) -- 38117(line=1814, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instr_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_int_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_int_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; // ATSlocal_void (tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; // ATSlocal_void (tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; // ATSlocal_void (tmp407) ; // ATSlocal_void (tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_int_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_int_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_int_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_int_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_int_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; // ATSlocal_void (tmp530) ; // ATSlocal_void (tmp531) ; // ATSlocal_void (tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; // ATSlocal_void (tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; // ATSlocal_void (tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; // ATSlocal_void (tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; // ATSlocal_void (tmp550) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instr_subst: tmp340 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg3), atslab_instr_loc) ; tmp341 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg3), atslab_instr_node) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp341)->tag != 0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp339 = arg3 ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp341)->tag != 1) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp339 = arg3 ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp341)->tag != 2) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp339 = arg3 ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp341)->tag != 3) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp342 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp343 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp342) ; tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp343, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (tmp340, tmp344, tmp345) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp341)->tag != 4) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp346 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp347 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp346) ; tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp347, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_val (tmp340, tmp348, tmp349) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp341)->tag != 5) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp350 = ats_caselptrlab_mac(anairiats_sum_6, tmp341, atslab_0) ; tmp351 = ats_caselptrlab_mac(anairiats_sum_6, tmp341, atslab_1) ; tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp351, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arg_val (tmp340, tmp350, tmp352) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp341)->tag != 6) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp353 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_0) ; tmp354 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_1) ; tmp355 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_2) ; tmp356 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_3) ; tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp353) ; tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp354, arg4) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp355) ; tmp360 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst (arg0, arg1, arg2, tmp356, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall (tmp340, tmp357, tmp358, tmp359, tmp360) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp341)->tag != 7) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp361 = ats_caselptrlab_mac(anairiats_sum_19, tmp341, atslab_0) ; tmp362 = ats_caselptrlab_mac(anairiats_sum_19, tmp341, atslab_1) ; tmp363 = ats_caselptrlab_mac(anairiats_sum_19, tmp341, atslab_2) ; tmp364 = ats_caselptrlab_mac(anairiats_sum_19, tmp341, atslab_3) ; tmp365 = ats_caselptrlab_mac(anairiats_sum_19, tmp341, atslab_4) ; tmp366 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp361) ; /* tmp367 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal (tmp366) ; tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp364) ; tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst (arg0, arg1, arg2, tmp365, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2 (tmp340, tmp366, tmp362, tmp363, tmp368, tmp369) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp341)->tag != 8) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp370 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_0) ; tmp371 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_1) ; tmp372 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_2) ; tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp370) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst (arg0, arg1, arg2, tmp372, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extfcall (tmp340, tmp373, tmp371, tmp374) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp341)->tag != 9) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp375 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_0) ; tmp376 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_1) ; tmp377 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_2) ; tmp378 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_3) ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp375) ; tmp380 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp376, arg4) ; tmp381 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primvalist_subst (arg0, arg1, arg2, tmp378, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extmcall (tmp340, tmp379, tmp380, tmp377, tmp381) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp341)->tag != 10) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_0) ; tmp383 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_1) ; tmp384 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_2) ; tmp385 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp382, arg4) ; tmp386 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, arg1, arg2, tmp383, arg4) ; tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, arg1, arg2, tmp384, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_cond (tmp340, tmp385, tmp386, tmp387) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp341)->tag != 11) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp388 = ats_caselptrlab_mac(anairiats_sum_5, tmp341, atslab_0) ; tmp389 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp388, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_freecon (tmp340, tmp389) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp341)->tag != 12) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp390 = ats_caselptrlab_mac(anairiats_sum_20, tmp341, atslab_0) ; tmp391 = ats_caselptrlab_mac(anairiats_sum_20, tmp341, atslab_1) ; tmp392 = ats_caselptrlab_mac(anairiats_sum_20, tmp341, atslab_2) ; tmp393 = ats_caselptrlab_mac(anairiats_sum_20, tmp341, atslab_3) ; tmp394 = ats_caselptrlab_mac(anairiats_sum_20, tmp341, atslab_4) ; tmp395 = ats_caselptrlab_mac(anairiats_sum_20, tmp341, atslab_5) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_20, tmp341, atslab_6) ; tmp397 = ats_caselptrlab_mac(anairiats_sum_20, tmp341, atslab_7) ; tmp398 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, arg1, arg2, tmp393, arg4) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp394, arg4) ; tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, arg1, arg2, tmp395, arg4) ; tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, arg1, arg2, tmp396, arg4) ; tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, arg1, arg2, tmp397, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loop (tmp340, tmp390, tmp391, tmp392, tmp398, tmp399, tmp400, tmp401, tmp402) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp341)->tag != 13) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp339 = arg3 ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp341)->tag != 14) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp403 = ats_caselptrlab_mac(anairiats_sum_5, tmp341, atslab_0) ; tmp404 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ibranchlst_subst (arg0, arg1, arg2, tmp403, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_caseof (tmp340, tmp404) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp341)->tag != 15) { goto __ats_lab_107_0 ; } __ats_lab_106_1: /* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ; tmp339 = arg3 ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp341)->tag != 16) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp406 = ats_caselptrlab_mac(anairiats_sum_5, tmp341, atslab_0) ; /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp408 = ats_selsin_mac(tmp407, atslab_1) */ ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primdeclst_subst (arg0, arg1, arg2, tmp406, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpush (tmp340, tmp409) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp341)->tag != 17) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp410 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_0) ; tmp411 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_1) ; tmp412 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_2) ; tmp413 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_3) ; tmp414 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp410) ; tmp415 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp412) ; tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimvalist_subst (arg0, arg1, arg2, tmp413, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_con (tmp340, tmp414, tmp411, tmp415, tmp416) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp341)->tag != 18) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp417 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp418 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp417) ; tmp420 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp418, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ref (tmp340, tmp419, tmp420) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp341)->tag != 19) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp421 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_0) ; tmp422 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_1) ; tmp423 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_2) ; tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp421) ; tmp425 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp423) ; tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimvalist_subst (arg0, arg1, arg2, tmp422, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_boxrec (tmp340, tmp424, tmp426, tmp425) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp341)->tag != 20) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp427 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_0) ; tmp428 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_1) ; tmp429 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_2) ; tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp427) ; tmp431 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp429) ; tmp432 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__labprimvalist_subst (arg0, arg1, arg2, tmp428, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec (tmp340, tmp430, tmp432, tmp431) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp341)->tag != 21) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp433 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_0) ; tmp434 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_1) ; tmp435 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_2) ; tmp436 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp433, arg4) ; tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__patckont_subst (arg0, arg1, arg2, tmp435, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp340, tmp436, tmp434, tmp437) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp341)->tag != 22) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp438 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_0) ; tmp439 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_1) ; tmp440 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_2) ; tmp441 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_3) ; tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp438) ; tmp443 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp439, arg4) ; tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp440) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ptrofsel (tmp340, tmp442, tmp443, tmp444, tmp441) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp341)->tag != 23) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp445 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_0) ; tmp446 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_1) ; tmp447 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_2) ; tmp448 = ats_caselptrlab_mac(anairiats_sum_18, tmp341, atslab_3) ; tmp449 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp445, arg4) ; tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp446) ; tmp451 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp448, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_ptrofs (tmp340, tmp449, tmp450, tmp447, tmp451) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp341)->tag != 24) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp452 = ats_caselptrlab_mac(anairiats_sum_21, tmp341, atslab_0) ; tmp453 = ats_caselptrlab_mac(anairiats_sum_21, tmp341, atslab_1) ; tmp454 = ats_caselptrlab_mac(anairiats_sum_21, tmp341, atslab_2) ; tmp455 = ats_caselptrlab_mac(anairiats_sum_21, tmp341, atslab_3) ; tmp456 = ats_caselptrlab_mac(anairiats_sum_21, tmp341, atslab_4) ; tmp457 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp452) ; tmp458 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp453, arg4) ; tmp459 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp454) ; tmp460 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp456, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_xstore_ptrofs (tmp340, tmp457, tmp458, tmp459, tmp455, tmp460) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp341)->tag != 26) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp461 = ats_caselptrlab_mac(anairiats_sum_22, tmp341, atslab_0) ; tmp462 = ats_caselptrlab_mac(anairiats_sum_22, tmp341, atslab_1) ; tmp463 = ats_caselptrlab_mac(anairiats_sum_22, tmp341, atslab_2) ; tmp464 = ats_caselptrlab_mac(anairiats_sum_22, tmp341, atslab_3) ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp461) ; tmp466 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp463) ; tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp464, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_delay (tmp340, tmp465, tmp462, tmp466, tmp467) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp341)->tag != 27) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp468 = ats_caselptrlab_mac(anairiats_sum_22, tmp341, atslab_0) ; tmp469 = ats_caselptrlab_mac(anairiats_sum_22, tmp341, atslab_1) ; tmp470 = ats_caselptrlab_mac(anairiats_sum_22, tmp341, atslab_2) ; tmp471 = ats_caselptrlab_mac(anairiats_sum_22, tmp341, atslab_3) ; tmp472 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp468) ; tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp470) ; tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp471, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_lazyeval (tmp340, tmp472, tmp469, tmp473, tmp474) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp341)->tag != 25) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp475 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp476 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp475) ; tmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp476, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_raise (tmp340, tmp477, tmp478) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp341)->tag != 28) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp479 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_0) ; tmp480 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_1) ; tmp481 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_2) ; tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp479) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, arg1, arg2, tmp480, arg4) ; tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ibranchlst_subst (arg0, arg1, arg2, tmp481, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_trywith (tmp340, tmp482, tmp483, tmp484) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp341)->tag != 29) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp485 = ats_caselptrlab_mac(anairiats_sum_5, tmp341, atslab_0) ; tmp486 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp485) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_nil (tmp340, tmp486) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp341)->tag != 30) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp487 = ats_caselptrlab_mac(anairiats_sum_5, tmp341, atslab_0) ; tmp488 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp487) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_nil (tmp340, tmp488) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp341)->tag != 31) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp489 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp490 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp491 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp489) ; tmp492 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp490) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_cons (tmp340, tmp491, tmp492) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp341)->tag != 32) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp493 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_0) ; tmp494 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_1) ; tmp495 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_2) ; tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp493) ; tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp494) ; tmp498 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp495) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_phead (tmp340, tmp496, tmp497, tmp498) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp341)->tag != 33) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp499 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_0) ; tmp500 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_1) ; tmp501 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_2) ; tmp502 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp499) ; tmp503 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp500) ; tmp504 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp501) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_ptail (tmp340, tmp502, tmp503, tmp504) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp341)->tag != 34) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp505 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp506 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp507 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp505) ; tmp508 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp506) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arrpsz_ptr (tmp340, tmp507, tmp508) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp341)->tag != 35) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp509 = ats_caselptrlab_mac(anairiats_sum_23, tmp341, atslab_0) ; tmp510 = ats_caselptrlab_mac(anairiats_sum_23, tmp341, atslab_1) ; tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp509) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_asz (tmp340, tmp511, tmp510) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp341)->tag != 36) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp512 = ats_caselptrlab_mac(anairiats_sum_24, tmp341, atslab_0) ; tmp513 = ats_caselptrlab_mac(anairiats_sum_24, tmp341, atslab_1) ; tmp514 = ats_caselptrlab_mac(anairiats_sum_24, tmp341, atslab_2) ; tmp515 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp512) ; tmp516 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp513) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_ptr (tmp340, tmp515, tmp516, tmp514) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp341)->tag != 37) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp517 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp518 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp519 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp517) ; tmp520 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp518) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrinc (tmp340, tmp519, tmp520) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp341)->tag != 38) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp521 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp522 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp521) ; tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (arg2, tmp522) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrdec (tmp340, tmp523, tmp524) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp341)->tag != 39) { goto __ats_lab_133_0 ; } __ats_lab_130_1: tmp525 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_0) ; tmp526 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_1) ; tmp527 = ats_caselptrlab_mac(anairiats_sum_7, tmp341, atslab_2) ; tmp528 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_incget_ncopy (tmp527) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_subst (arg2, tmp527) ; /* tmp530 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_suffix (tmp529, tmp528) ; /* tmp531 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp529) ; /* tmp532 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp529) ; tmp533 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (tmp340, tmp529) ; do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (tmp526 != (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (tmp526 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: tmp535 = ats_caselptrlab_mac(anairiats_sum_3, tmp526, atslab_0) ; /* tmp534 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp535, tmp533) ; break ; } while (0) ; tmp536 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp527) ; if (tmp536 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 37307(line=1781, offs=9) -- 37343(line=1781, offs=45)") ; } tmp537 = ats_caselptrlab_mac(anairiats_sum_3, tmp536, atslab_0) ; tmp538 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_subst (arg0, arg2, tmp529, tmp537, tmp528) ; tmp540 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp540, atslab_0, tmp538) ; /* tmp539 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (tmp529, tmp540) ; tmp541 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__tmpvar2var (arg1, tmp525) ; /* tmp542 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_set_tyclo (tmp541, ats_castfn_mac(ats_ptr_type, tmp529)) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_closure_initize (tmp340, tmp541, tmp526, tmp529) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp341)->tag != 40) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp339 = arg3 ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp341)->tag != 41) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp543 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp544 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp545 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp544, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extvar (tmp340, tmp543, tmp545) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp341)->tag != 42) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp546 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_0) ; tmp547 = ats_caselptrlab_mac(anairiats_sum_9, tmp341, atslab_1) ; tmp548 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_subst (arg0, arg1, arg2, tmp547, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_dcstdef (tmp340, tmp546, tmp548) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (((ats_sum_ptr_type)tmp341)->tag != 43) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: tmp549 = ats_caselptrlab_mac(anairiats_sum_5, tmp341, atslab_0) ; /* tmp550 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tempenver (arg0, tmp549) ; tmp339 = arg3 ; break ; } while (0) ; return (tmp339) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instr_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 38231(line=1822, offs=5) -- 38751(line=1848, offs=4) */ ATSstaticdec() ats_void_type loop_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp552) ; ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; __ats_lab_loop_40: do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp553 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp554 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp555 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instr_subst (arg0, arg1, arg2, tmp553, arg4) ; tmp556 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp556, atslab_0, tmp555) ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp556 ; if (ats_ptrget_mac(ats_ptr_type, arg5) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 38549(line=1840, offs=9) -- 38577(line=1840, offs=37)") ; } tmp557 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg5), atslab_1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp554 ; arg4 = arg4 ; arg5 = tmp557 ; goto __ats_lab_loop_40 ; // tail call break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: tmp558 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp558 ; break ; } while (0) ; return /* (tmp552) */ ; } /* end of [loop_40] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 38191(line=1820, offs=3) -- 38852(line=1855, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_ptr_type, tmp559) ; // ATSlocal_void (tmp560) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst: /* ats_ptr_type tmp559 ; */ /* tmp560 = */ loop_40 (arg0, arg1, arg2, arg3, arg4, (&tmp559)) ; tmp551 = tmp559 ; return (tmp551) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 38931(line=1861, offs=3) -- 39332(line=1877, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ibranchlst_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ibranchlst_subst: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp562 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp563 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp564 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, tmp562), atslab_ibranch_loc) ; tmp565 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, tmp562), atslab_ibranch_inslst) ; tmp566 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, arg1, arg2, tmp565, arg4) ; tmp567 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ibranch_make (tmp564, tmp566) ; tmp568 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ibranchlst_subst (arg0, arg1, arg2, tmp563, arg4) ; tmp561 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp561, atslab_0, tmp567) ; ats_selptrset_mac(anairiats_sum_1, tmp561, atslab_1, tmp568) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp561 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp561) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ibranchlst_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 39415(line=1883, offs=3) -- 39577(line=1888, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst0_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst0_subst: tmp570 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst_subst (arg0, arg1, arg2, ats_castfn_mac(ats_ptr_type, arg3), arg4) ; tmp569 = ats_castfn_mac(ats_ptr_type, tmp570) ; return (tmp569) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__instrlst0_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 39661(line=1894, offs=3) -- 40550(line=1941, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_lamfix_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_int_type, tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; // ATSlocal_void (tmp584) ; // ATSlocal_void (tmp585) ; // ATSlocal_void (tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; // ATSlocal_void (tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; ATSlocal (ats_ptr_type, tmp590) ; ATSlocal (ats_ptr_type, tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; // ATSlocal_void (tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_lamfix_subst: tmp572 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg2), atslab_primval_node) ; if (((ats_sum_ptr_type)tmp572)->tag != 34) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 39692(line=1897, offs=1) -- 39736(line=1900, offs=22)") ; } tmp573 = ats_caselptrlab_mac(anairiats_sum_9, tmp572, atslab_0) ; tmp574 = ats_caselptrlab_mac(anairiats_sum_9, tmp572, atslab_1) ; tmp575 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp574), atslab_primval_loc) ; tmp576 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp574), atslab_primval_type) ; tmp578 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp574), atslab_primval_node) ; do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp578)->tag != 31) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp579 = ats_caselptrlab_mac(anairiats_sum_5, tmp578, atslab_0) ; tmp577 = tmp579 ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp578)->tag != 32) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp580 = ats_caselptrlab_mac(anairiats_sum_6, tmp578, atslab_1) ; tmp577 = tmp580 ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp578)->tag != 33) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 39810(line=1907, offs=1) -- 39927(line=1912, offs=30)") ; } __ats_lab_143_1: tmp581 = ats_caselptrlab_mac(anairiats_sum_9, tmp578, atslab_1) ; tmp577 = tmp581 ; break ; } while (0) ; tmp582 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_incget_ncopy (tmp577) ; tmp583 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_subst (arg1, tmp577) ; /* tmp584 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_suffix (tmp583, tmp582) ; /* tmp585 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp583) ; /* tmp586 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp583) ; tmp587 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (tmp575, tmp583) ; do { /* branch: __ats_lab_144 */ __ats_lab_144_0: if (tmp573 != (ats_sum_ptr_type)0) { goto __ats_lab_145_0 ; } __ats_lab_144_1: break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: // if (tmp573 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_145_1: tmp589 = ats_caselptrlab_mac(anairiats_sum_3, tmp573, atslab_0) ; /* tmp588 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp589, tmp587) ; break ; } while (0) ; tmp590 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp577) ; if (tmp590 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 40364(line=1934, offs=5) -- 40398(line=1934, offs=39)") ; } tmp591 = ats_caselptrlab_mac(anairiats_sum_3, tmp590, atslab_0) ; tmp592 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_subst (arg0, arg1, tmp583, tmp591, tmp582) ; tmp594 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp594, atslab_0, tmp592) ; /* tmp593 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (tmp583, tmp594) ; tmp571 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix (tmp573, tmp587) ; return (tmp571) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__primval_lamfix_subst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 40617(line=1948, offs=1) -- 41525(line=1988, offs=4) */ ATSstaticdec() ats_ptr_type auxinit_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; ATSlocal (ats_ptr_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_int_type, tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; // ATSlocal_void (tmp602) ; // ATSlocal_void (tmp603) ; ATSlocal (ats_bool_type, tmp604) ; // ATSlocal_void (tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; // ATSlocal_void (tmp609) ; ATSlocal (ats_int_type, tmp610) ; ATSlocal (ats_bool_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; __ats_lab_auxinit_44: do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp596 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; tmp597 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; tmp598 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_get_funlabopt (tmp596) ; if (tmp598 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 40792(line=1959, offs=9) -- 40836(line=1960, offs=34)") ; } tmp599 = ats_caselptrlab_mac(anairiats_sum_3, tmp598, atslab_0) ; tmp600 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_incget_ncopy (tmp599) ; tmp601 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_subst (arg1, tmp599) ; /* tmp602 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_suffix (tmp601, tmp600) ; tmp604 = atspre_lte_int_int (arg3, 1) ; if (tmp604) { /* tmp603 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp601) ; } else { /* empty */ } /* end of [if] */ /* tmp605 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp601) ; tmp606 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp596), atslab_hifundec_loc) ; tmp607 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp596), atslab_hifundec_var) ; tmp608 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (tmp606, tmp601) ; /* tmp609 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp607, tmp608) ; tmp611 = atspre_gte_int_int (arg3, 1) ; if (tmp611) { tmp610 = atspre_add_int_int (arg3, 1) ; } else { tmp610 = arg3 ; } /* end of [if] */ tmp612 = auxinit_44 (arg0, arg1, tmp597, tmp610) ; tmp595 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp595, atslab_0, tmp601) ; ats_selptrset_mac(anairiats_sum_1, tmp595, atslab_1, tmp612) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_147_1: tmp595 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp595) ; } /* end of [auxinit_44] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 41551(line=1991, offs=1) -- 42155(line=2014, offs=4) */ ATSstaticdec() ats_void_type auxmain_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; ATSlocal (ats_ptr_type, tmp617) ; ATSlocal (ats_ptr_type, tmp618) ; ATSlocal (ats_ptr_type, tmp619) ; ATSlocal (ats_ptr_type, tmp620) ; ATSlocal (ats_int_type, tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; // ATSlocal_void (tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; __ats_lab_auxmain_45: do { /* branch: __ats_lab_148 */ __ats_lab_148_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp614 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp615 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp616 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp617 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_origin (tmp615) ; if (tmp617 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 41765(line=2002, offs=9) -- 41800(line=2002, offs=44)") ; } tmp618 = ats_caselptrlab_mac(anairiats_sum_3, tmp617, atslab_0) ; tmp619 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp618) ; if (tmp619 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 41809(line=2003, offs=9) -- 41845(line=2003, offs=45)") ; } tmp620 = ats_caselptrlab_mac(anairiats_sum_3, tmp619, atslab_0) ; tmp621 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_suffix (tmp615) ; tmp622 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_subst (arg0, arg1, tmp615, tmp620, tmp621) ; tmp624 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp624, atslab_0, tmp622) ; /* tmp623 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (tmp615, tmp624) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp614 ; arg3 = tmp616 ; goto __ats_lab_auxmain_45 ; // tail call break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_149_1: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } break ; } while (0) ; return /* (tmp613) */ ; } /* end of [auxmain_45] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 42369(line=2034, offs=1) -- 42498(line=2041, offs=4) */ ATSstaticdec() ats_void_type fwork_47 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp630) ; ATSlocal (ats_ptr_type, tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; __ats_lab_fwork_47: tmp631 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (arg0) ; if (tmp631 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 42411(line=2038, offs=7) -- 42445(line=2038, offs=41)") ; } tmp632 = ats_caselptrlab_mac(anairiats_sum_3, tmp631, atslab_0) ; tmp633 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret (tmp632) ; /* tmp630 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal (tmp633) ; return /* (tmp630) */ ; } /* end of [fwork_47] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 38130(line=1351, offs=7) -- 38345(line=1358, offs=19) */ ATSstaticdec() ats_void_type loop_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp636) ; ATSlocal (ats_ptr_type, tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; // ATSlocal_void (tmp639) ; __ats_lab_loop_50: do { /* branch: __ats_lab_150 */ __ats_lab_150_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp637 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp638 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; /* tmp639 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp637, arg2) ; arg0 = tmp638 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_50 ; // tail call break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_151_1: break ; } while (0) ; return /* (tmp636) */ ; } /* end of [loop_50] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 38100(line=1350, offs=20) -- 38396(line=1362, offs=4) */ ATSstaticdec() ats_void_type list_foreach_funenv_01378_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp635) ; __ats_lab_list_foreach_funenv_01378_ats_ptr_type: /* tmp635 = */ loop_50 (arg0, arg1, arg2) ; return /* (tmp635) */ ; } /* end of [list_foreach_funenv_01378_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 38461(line=1365, offs=26) -- 38734(line=1374, offs=4) */ ATSstaticdec() ats_void_type list_foreach_fun_01379_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp634) ; __ats_lab_list_foreach_fun_01379_ats_ptr_type: /* tmp634 = */ list_foreach_funenv_01378_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp634) */ ; } /* end of [list_foreach_fun_01379_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 42181(line=2017, offs=1) -- 42596(line=2047, offs=4) */ ATSstaticdec() ats_void_type auxfnxset_46 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; // ATSlocal_void (tmp629) ; __ats_lab_auxfnxset_46: if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 42233(line=2023, offs=1) -- 42259(line=2024, offs=17)") ; } tmp626 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp627 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp626) ; if (tmp627 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 42268(line=2027, offs=1) -- 42306(line=2028, offs=25)") ; } tmp628 = ats_caselptrlab_mac(anairiats_sum_3, tmp627, atslab_0) ; /* tmp629 = */ patsopt_funent_set_fnxlablst (tmp628, arg0) ; /* tmp625 = */ list_foreach_fun_01379_ats_ptr_type (arg0, &fwork_47) ; return /* (tmp625) */ ; } /* end of [auxfnxset_46] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_subst.dats: 42686(line=2053, offs=3) -- 43216(line=2077, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ccompenv_add_fundecsloc_subst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp640) ; ATSlocal (ats_int_type, tmp641) ; ATSlocal (ats_bool_type, tmp642) ; ATSlocal (ats_bool_type, tmp643) ; ATSlocal (ats_int_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; // ATSlocal_void (tmp646) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ccompenv_add_fundecsloc_subst: do { /* branch: __ats_lab_152 */ __ats_lab_152_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_153_0 ; } __ats_lab_152_1: break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_153_1: tmp641 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get () ; tmp643 = atspre_gt_int_int (tmp641, 0) ; if (tmp643) { tmp642 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec (arg2) ; } else { tmp642 = ats_false_bool ; } /* end of [if] */ if (tmp642) { tmp644 = 1 ; } else { tmp644 = 0 ; } /* end of [if] */ tmp645 = auxinit_44 (arg0, arg1, arg4, tmp644) ; /* tmp646 = */ auxmain_45 (arg0, arg1, arg4, tmp645) ; if (tmp642) { /* tmp640 = */ auxfnxset_46 (tmp645) ; } else { /* empty */ } /* end of [if] */ break ; } while (0) ; return /* (tmp640) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__ccompenv_add_fundecsloc_subst] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_subst_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_subst_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_location_dats.c0000644000175000017500000016352513431250607022351 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_filename ; ats_lint_type atslab_beg_ntot ; ats_int_type atslab_beg_nrow ; ats_int_type atslab_beg_ncol ; ats_lint_type atslab_end_ntot ; ats_int_type atslab_end_nrow ; ats_int_type atslab_end_ncol ; ats_ptr_type atslab_locpragma ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA0_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA1_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA2_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_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_bool_type, atspre_lte_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_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_lint_type, atspre_lint_of_uint) (ats_uint_type) ; ATSextern_fun(ats_lint_type, atspre_add_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_lint_type, atspre_sub_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_bool_type, atspre_lt_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_bool_type, atspre_lte_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_bool_type, atspre_gte_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_void_type, atspre_fprint_lint) (ats_ptr_type, ats_lint_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint2_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_position) (ats_ptr_type, pats_position_struct) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locrange) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_fil_pos_pos) (ats_ptr_type, pats_position_struct, pats_position_struct) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma0_make) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locpragma) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__sasp__locpragma_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__sasp__location_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__sasp__position_t0ype = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA0_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA1_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA2_2) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; /* internal function declarations */ static ats_bool_type location_is_none_25 (ats_ptr_type arg0) ; static ats_ptr_type location_combine_main_26 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp82) ; ATSstatic (ats_ptr_type, statmp83) ; ATSstatic (ats_ptr_type, statmp157) ; ATSstatic (ats_ptr_type, statmp160) ; ATSstatic (ats_ptr_type, statmp161) ; ATSstatic (ats_ptr_type, statmp162) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 1785(line=63, offs=3) -- 1826(line=63, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_position (pats_position_struct arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_position: /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_position (stdout, arg0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_position] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 1879(line=69, offs=3) -- 2064(line=82, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_position (ats_ptr_type arg0, pats_position_struct arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_lint_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_lint_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_position: tmp2 = ats_select_mac(arg1, ntot) ; tmp3 = ats_select_mac(arg1, nrow) ; tmp4 = ats_select_mac(arg1, ncol) ; tmp5 = atspre_add_lint_lint (tmp2, 1L) ; tmp6 = atspre_add_int_int (tmp3, 1) ; tmp7 = atspre_add_int_int (tmp4, 1) ; /* tmp1 = */ atspre_fprintf_exn (arg0, ATSstrcst("%li(line=%i, offs=%i)"), tmp5, tmp6, tmp7) ; return /* (tmp1) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_position] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 2143(line=86, offs=29) -- 2159(line=86, offs=45) */ ATSglobaldec() ats_lint_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ntot (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_lint_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ntot: tmp8 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ntot) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ntot] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 2188(line=87, offs=29) -- 2204(line=87, offs=45) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_nrow (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_nrow: tmp9 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), nrow) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_nrow] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 2233(line=88, offs=29) -- 2249(line=88, offs=45) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ncol (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ncol: tmp10 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ncol] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 2296(line=94, offs=1) -- 2426(line=100, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_init (ats_ref_type arg0, ats_lint_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_init: ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ntot) = arg1 ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), nrow) = arg2 ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) = arg3 ; return /* (tmp11) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_init] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 2481(line=104, offs=1) -- 2616(line=110, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_copy (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_lint_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_copy: tmp13 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg1), ntot) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ntot) = tmp13 ; tmp14 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg1), nrow) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), nrow) = tmp14 ; tmp15 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg1), ncol) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) = tmp15 ; return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_copy] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 2700(line=116, offs=3) -- 3056(line=136, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (ats_ref_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_bool_type, tmp17) ; ATSlocal (ats_lint_type, tmp18) ; ATSlocal (ats_lint_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char: tmp17 = atspre_gte_int_int (arg1, 0) ; if (tmp17) { tmp19 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ntot) ; tmp18 = atspre_add_lint_lint (tmp19, 1L) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ntot) = tmp18 ; tmp21 = atspre_int_of_char ('\n') ; tmp20 = atspre_eq_int_int (arg1, tmp21) ; if (tmp20) { tmp23 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), nrow) ; tmp22 = atspre_add_int_int (tmp23, 1) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), nrow) = tmp22 ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) = 0 ; } else { tmp25 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) ; tmp24 = atspre_add_int_int (tmp25, 1) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) = tmp24 ; } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp16) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 3144(line=142, offs=3) -- 3308(line=149, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_decby_count (ats_ref_type arg0, ats_uint_type arg1) { /* local vardec */ // ATSlocal_void (tmp26) ; ATSlocal (ats_lint_type, tmp27) ; ATSlocal (ats_lint_type, tmp28) ; ATSlocal (ats_lint_type, tmp29) ; ATSlocal (ats_int_type, tmp30) ; ATSlocal (ats_int_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_decby_count: tmp28 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ntot) ; tmp29 = atspre_lint_of_uint (arg1) ; tmp27 = atspre_sub_lint_lint (tmp28, tmp29) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ntot) = tmp27 ; tmp31 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) ; tmp30 = atspre_sub_int_int (tmp31, ats_castfn_mac(ats_int_type, arg1)) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) = tmp30 ; return /* (tmp26) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_decby_count] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 3376(line=153, offs=3) -- 3540(line=160, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (ats_ref_type arg0, ats_uint_type arg1) { /* local vardec */ // ATSlocal_void (tmp32) ; ATSlocal (ats_lint_type, tmp33) ; ATSlocal (ats_lint_type, tmp34) ; ATSlocal (ats_lint_type, tmp35) ; ATSlocal (ats_int_type, tmp36) ; ATSlocal (ats_int_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count: tmp34 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ntot) ; tmp35 = atspre_lint_of_uint (arg1) ; tmp33 = atspre_add_lint_lint (tmp34, tmp35) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ntot) = tmp33 ; tmp37 = ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) ; tmp36 = atspre_add_int_int (tmp37, ats_castfn_mac(ats_int_type, arg1)) ; ats_select_mac(ats_ptrget_mac(pats_position_struct, arg0), ncol) = tmp36 ; return /* (tmp32) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 3927(line=185, offs=20) -- 3947(line=185, offs=40) */ ATSglobaldec() ats_lint_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_bchar (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_lint_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_bchar: tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ntot) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_bchar] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 3998(line=190, offs=19) -- 4018(line=190, offs=39) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_nrow (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_nrow: tmp39 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_nrow) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_nrow] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 4069(line=195, offs=19) -- 4089(line=195, offs=39) */ ATSglobaldec() ats_lint_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_ntot (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_lint_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_ntot: tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ntot) ; return (tmp40) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_ntot] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 4118(line=197, offs=19) -- 4138(line=197, offs=39) */ ATSglobaldec() ats_lint_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_end_ntot (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_lint_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_end_ntot: tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_ntot) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_end_ntot] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 4192(line=202, offs=22) -- 4212(line=202, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_filename (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_filename: tmp42 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_filename] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 4264(line=208, offs=3) -- 4304(line=208, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location: /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (stdout, arg0) ; return /* (tmp43) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 4335(line=212, offs=3) -- 4375(line=212, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location: /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (stderr, arg0) ; return /* (tmp44) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 4428(line=218, offs=3) -- 4988(line=238, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locrange (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; ATSlocal (ats_lint_type, tmp47) ; ATSlocal (ats_lint_type, tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_int_type, tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_int_type, tmp55) ; ATSlocal (ats_int_type, tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; ATSlocal (ats_lint_type, tmp60) ; ATSlocal (ats_lint_type, tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_int_type, tmp64) ; ATSlocal (ats_int_type, tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locrange: tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_beg_ntot) ; tmp47 = atspre_add_lint_lint (tmp48, 1L) ; /* tmp46 = */ atspre_fprint_lint (arg0, tmp47) ; /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst("(line=")) ; tmp52 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_beg_nrow) ; tmp51 = atspre_add_int_int (tmp52, 1) ; /* tmp50 = */ atspre_fprint_int (arg0, tmp51) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst(", offs=")) ; tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_beg_ncol) ; tmp55 = atspre_add_int_int (tmp56, 1) ; /* tmp54 = */ atspre_fprint_int (arg0, tmp55) ; /* tmp57 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(" -- ")) ; tmp61 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_end_ntot) ; tmp60 = atspre_add_lint_lint (tmp61, 1L) ; /* tmp59 = */ atspre_fprint_lint (arg0, tmp60) ; /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst("(line=")) ; tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_end_nrow) ; tmp64 = atspre_add_int_int (tmp65, 1) ; /* tmp63 = */ atspre_fprint_int (arg0, tmp64) ; /* tmp66 = */ atspre_fprint_string (arg0, ATSstrcst(", offs=")) ; tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_end_ncol) ; tmp68 = atspre_add_int_int (tmp69, 1) ; /* tmp67 = */ atspre_fprint_int (arg0, tmp68) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locrange] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 5070(line=244, offs=3) -- 5282(line=254, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; // ATSlocal_void (tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location: tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_locpragma) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locpragma (arg0, tmp72) ; tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_filename) ; /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp74) ; /* tmp75 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locrange (arg0, arg1) ; return /* (tmp70) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 5365(line=260, offs=3) -- 5580(line=270, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint2_location (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; // ATSlocal_void (tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint2_location: tmp78 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_locpragma) ; /* tmp77 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locpragma (arg0, tmp78) ; tmp80 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_filename) ; /* tmp79 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint2_filename_full (arg0, tmp80) ; /* tmp81 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locrange (arg0, arg1) ; return /* (tmp76) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint2_location] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 5911(line=291, offs=3) -- 6052(line=297, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_filename_origin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_filename_origin: tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma0_make () ; tmp84 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp84, atslab_filename, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp84, atslab_beg_ntot, 0L) ; ats_selptrset_mac(anairiats_rec_1, tmp84, atslab_beg_nrow, 0) ; ats_selptrset_mac(anairiats_rec_1, tmp84, atslab_beg_ncol, 0) ; ats_selptrset_mac(anairiats_rec_1, tmp84, atslab_end_ntot, 0L) ; ats_selptrset_mac(anairiats_rec_1, tmp84, atslab_end_nrow, 0) ; ats_selptrset_mac(anairiats_rec_1, tmp84, atslab_end_ncol, 0) ; ats_selptrset_mac(anairiats_rec_1, tmp84, atslab_locpragma, tmp85) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_filename_origin] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 6149(line=303, offs=3) -- 6261(line=307, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_pos_pos (pats_position_struct arg0, pats_position_struct arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_pos_pos: tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_fil_pos_pos (tmp87, arg0, arg1) ; return (tmp86) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_pos_pos] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 6356(line=313, offs=3) -- 6567(line=322, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_fil_pos_pos (ats_ptr_type arg0, pats_position_struct arg1, pats_position_struct arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_lint_type, tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_lint_type, tmp92) ; ATSlocal (ats_int_type, tmp93) ; ATSlocal (ats_int_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_fil_pos_pos: tmp89 = ats_select_mac(arg1, ntot) ; tmp90 = ats_select_mac(arg1, nrow) ; tmp91 = ats_select_mac(arg1, ncol) ; tmp92 = ats_select_mac(arg2, ntot) ; tmp93 = ats_select_mac(arg2, nrow) ; tmp94 = ats_select_mac(arg2, ncol) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_get () ; tmp88 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_filename, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_beg_ntot, tmp89) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_beg_nrow, tmp90) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_beg_ncol, tmp91) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_end_ntot, tmp92) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_end_nrow, tmp93) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_end_ncol, tmp94) ; ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_locpragma, tmp95) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_fil_pos_pos] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 6654(line=328, offs=3) -- 6868(line=337, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_leftmost (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_lint_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_int_type, tmp100) ; ATSlocal (ats_lint_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_leftmost: tmp97 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename) ; tmp98 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ntot) ; tmp99 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_nrow) ; tmp100 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ncol) ; tmp101 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ntot) ; tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_nrow) ; tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ncol) ; tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_locpragma) ; tmp96 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp96, atslab_filename, tmp97) ; ats_selptrset_mac(anairiats_rec_1, tmp96, atslab_beg_ntot, tmp98) ; ats_selptrset_mac(anairiats_rec_1, tmp96, atslab_beg_nrow, tmp99) ; ats_selptrset_mac(anairiats_rec_1, tmp96, atslab_beg_ncol, tmp100) ; ats_selptrset_mac(anairiats_rec_1, tmp96, atslab_end_ntot, tmp101) ; ats_selptrset_mac(anairiats_rec_1, tmp96, atslab_end_nrow, tmp102) ; ats_selptrset_mac(anairiats_rec_1, tmp96, atslab_end_ncol, tmp103) ; ats_selptrset_mac(anairiats_rec_1, tmp96, atslab_locpragma, tmp104) ; return (tmp96) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_leftmost] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 6931(line=341, offs=3) -- 7145(line=350, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_lint_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_lint_type, tmp110) ; ATSlocal (ats_int_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost: tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename) ; tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_ntot) ; tmp108 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_nrow) ; tmp109 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_ncol) ; tmp110 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_ntot) ; tmp111 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_nrow) ; tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_ncol) ; tmp113 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_locpragma) ; tmp105 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp105, atslab_filename, tmp106) ; ats_selptrset_mac(anairiats_rec_1, tmp105, atslab_beg_ntot, tmp107) ; ats_selptrset_mac(anairiats_rec_1, tmp105, atslab_beg_nrow, tmp108) ; ats_selptrset_mac(anairiats_rec_1, tmp105, atslab_beg_ncol, tmp109) ; ats_selptrset_mac(anairiats_rec_1, tmp105, atslab_end_ntot, tmp110) ; ats_selptrset_mac(anairiats_rec_1, tmp105, atslab_end_nrow, tmp111) ; ats_selptrset_mac(anairiats_rec_1, tmp105, atslab_end_ncol, tmp112) ; ats_selptrset_mac(anairiats_rec_1, tmp105, atslab_locpragma, tmp113) ; return (tmp105) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 7209(line=357, offs=1) -- 7276(line=360, offs=33) */ ATSstaticdec() ats_bool_type location_is_none_25 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_lint_type, tmp115) ; __ats_lab_location_is_none_25: tmp115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ntot) ; tmp114 = atspre_lt_lint_lint (tmp115, 0L) ; return (tmp114) ; } /* end of [location_is_none_25] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 7281(line=363, offs=1) -- 8394(line=406, offs=6) */ ATSstaticdec() ats_ptr_type location_combine_main_26 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_lint_type, tmp117) ; ATSlocal (ats_int_type, tmp118) ; ATSlocal (ats_int_type, tmp119) ; ATSlocal (ats_lint_type, tmp120) ; ATSlocal (ats_int_type, tmp121) ; ATSlocal (ats_int_type, tmp122) ; ATSlocal (ats_bool_type, tmp124) ; ATSlocal (ats_lint_type, tmp125) ; ATSlocal (ats_lint_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_int_type, tmp128) ; ATSlocal (ats_lint_type, tmp129) ; ATSlocal (ats_int_type, tmp130) ; ATSlocal (ats_int_type, tmp131) ; ATSlocal (ats_lint_type, tmp132) ; ATSlocal (ats_bool_type, tmp134) ; ATSlocal (ats_lint_type, tmp135) ; ATSlocal (ats_lint_type, tmp136) ; ATSlocal (ats_int_type, tmp137) ; ATSlocal (ats_int_type, tmp138) ; ATSlocal (ats_lint_type, tmp139) ; ATSlocal (ats_int_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_lint_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab_location_combine_main_26: /* ats_lint_type tmp117 ; */ /* ats_int_type tmp118 ; */ /* ats_int_type tmp119 ; */ /* ats_lint_type tmp120 ; */ /* ats_int_type tmp121 ; */ /* ats_int_type tmp122 ; */ tmp125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ntot) ; tmp126 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_beg_ntot) ; tmp124 = atspre_lte_lint_lint (tmp125, tmp126) ; if (tmp124) { tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_nrow) ; tmp118 = tmp127 ; tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ncol) ; tmp119 = tmp128 ; tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_beg_ntot) ; tmp117 = tmp129 ; } else { tmp130 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_beg_nrow) ; tmp118 = tmp130 ; tmp131 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_beg_ncol) ; tmp119 = tmp131 ; tmp132 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_beg_ntot) ; tmp117 = tmp132 ; } /* end of [if] */ tmp135 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_ntot) ; tmp136 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_end_ntot) ; tmp134 = atspre_gte_lint_lint (tmp135, tmp136) ; if (tmp134) { tmp137 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_nrow) ; tmp121 = tmp137 ; tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_ncol) ; tmp122 = tmp138 ; tmp139 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_end_ntot) ; tmp120 = tmp139 ; } else { tmp140 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_end_nrow) ; tmp121 = tmp140 ; tmp141 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_end_ncol) ; tmp122 = tmp141 ; tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_end_ntot) ; tmp120 = tmp142 ; } /* end of [if] */ tmp143 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_filename) ; tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_locpragma) ; tmp116 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp116, atslab_filename, tmp143) ; ats_selptrset_mac(anairiats_rec_1, tmp116, atslab_beg_ntot, tmp117) ; ats_selptrset_mac(anairiats_rec_1, tmp116, atslab_beg_nrow, tmp118) ; ats_selptrset_mac(anairiats_rec_1, tmp116, atslab_beg_ncol, tmp119) ; ats_selptrset_mac(anairiats_rec_1, tmp116, atslab_end_ntot, tmp120) ; ats_selptrset_mac(anairiats_rec_1, tmp116, atslab_end_nrow, tmp121) ; ats_selptrset_mac(anairiats_rec_1, tmp116, atslab_end_ncol, tmp122) ; ats_selptrset_mac(anairiats_rec_1, tmp116, atslab_locpragma, tmp144) ; return (tmp116) ; } /* end of [location_combine_main_26] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 8480(line=412, offs=3) -- 8640(line=415, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_bool_type, tmp146) ; ATSlocal (ats_bool_type, tmp147) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp146 = location_is_none_25 (arg0) ; if (!tmp146) { goto __ats_lab_1_1 ; } tmp145 = arg1 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp147 = location_is_none_25 (arg1) ; if (!tmp147) { goto __ats_lab_2_1 ; } tmp145 = arg0 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp145 = location_combine_main_26 (arg0, arg1) ; break ; } while (0) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 8746(line=424, offs=3) -- 9278(line=454, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_line_pragma (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; ATSlocal (ats_int_type, tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_line_pragma: tmp149 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_beg_nrow) ; tmp150 = atspre_gte_int_int (tmp149, 0) ; if (tmp150) { /* tmp151 = */ atspre_fprint_string (arg0, ATSstrcst("#line ")) ; tmp153 = atspre_add_int_int (tmp149, 1) ; /* tmp152 = */ atspre_fprint_int (arg0, tmp153) ; /* tmp154 = */ atspre_fprint_string (arg0, ATSstrcst(" \"")) ; tmp156 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_filename) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp156) ; /* tmp148 = */ atspre_fprint_string (arg0, ATSstrcst("\"\n")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp148) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_line_pragma] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp159 ; */ tmp159 = arg0 ; tmp158 = atspre_ref_make_elt_tsz ((&tmp159), sizeof(ats_ptr_type)) ; return (tmp158) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 9704(line=478, offs=16) -- 9720(line=478, offs=32) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma0_make () { /* local vardec */ ATSlocal (ats_ptr_type, tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma0_make: tmp163 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA0_0) ; return (tmp163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma0_make] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 9746(line=480, offs=16) -- 9763(line=480, offs=33) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma1_make (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma1_make: tmp164 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp164)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp164, atslab_0, arg0) ; return (tmp164) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma1_make] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 9790(line=482, offs=16) -- 9818(line=482, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma2_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp165) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma2_make: tmp165 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp165)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp165, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp165, atslab_1, arg1) ; return (tmp165) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma2_make] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 9858(line=486, offs=3) -- 9885(line=486, offs=30) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp166) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_get: tmp166 = ats_ptrget_mac(ats_ptr_type, statmp157) ; return (tmp166) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_get] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 9922(line=489, offs=3) -- 9949(line=489, offs=30) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_set (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp167) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_set: ats_ptrget_mac(ats_ptr_type, statmp157) = arg0 ; return /* (tmp167) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_set] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 9989(line=493, offs=3) -- 10169(line=502, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_pop () { /* local vardec */ // ATSlocal_void (tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_pop: tmp169 = ats_ptrget_mac(ats_ptr_type, statmp157) ; tmp170 = ats_ptrget_mac(ats_ptr_type, statmp161) ; if (tmp170 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_location.dats: 10077(line=498, offs=7) -- 10098(line=498, offs=28)") ; } tmp171 = ats_caselptrlab_mac(anairiats_sum_4, tmp170, atslab_0) ; tmp172 = ats_caselptrlab_mac(anairiats_sum_4, tmp170, atslab_1) ; ats_ptrget_mac(ats_ptr_type, statmp157) = tmp171 ; ats_ptrget_mac(ats_ptr_type, statmp161) = tmp172 ; return /* (tmp168) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_pop] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 10249(line=506, offs=3) -- 10427(line=514, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_push () { /* local vardec */ // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_push: tmp174 = ats_ptrget_mac(ats_ptr_type, statmp157) ; tmp175 = ats_ptrget_mac(ats_ptr_type, statmp161) ; tmp176 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA0_0) ; ats_ptrget_mac(ats_ptr_type, statmp157) = tmp176 ; tmp177 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp177, atslab_0, tmp174) ; ats_selptrset_mac(anairiats_sum_4, tmp177, atslab_1, tmp175) ; ats_ptrget_mac(ats_ptr_type, statmp161) = tmp177 ; return /* (tmp173) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__the_location_pragma_push] */ /* // /tmp/ATS-Postiats/src/pats_location.dats: 10516(line=519, offs=17) -- 10707(line=527, offs=54) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locpragma (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locpragma: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp180 = */ atspre_fprint_string (arg0, ATSstrcst("#locpragma(")) ; /* tmp181 = */ atspre_fprint_string (arg0, tmp179) ; /* tmp178 = */ atspre_fprint_string (arg0, ATSstrcst("): ")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp182 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp183 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp184 = */ atspre_fprint_string (arg0, ATSstrcst("#locpragma(")) ; /* tmp185 = */ atspre_fprint_string (arg0, tmp182) ; /* tmp186 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; /* tmp187 = */ atspre_fprint_string (arg0, tmp183) ; /* tmp178 = */ atspre_fprint_string (arg0, ATSstrcst("): ")) ; break ; } while (0) ; return /* (tmp178) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_locpragma] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA0_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA1_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA2_2.tag = 2 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp82, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp83, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp157, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp160, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp161, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp162, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__locpragma0_make () ; statmp82 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, statmp82, atslab_filename, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ats_selptrset_mac(anairiats_rec_1, statmp82, atslab_beg_ntot, -1L) ; ats_selptrset_mac(anairiats_rec_1, statmp82, atslab_beg_nrow, -1) ; ats_selptrset_mac(anairiats_rec_1, statmp82, atslab_beg_ncol, -1) ; ats_selptrset_mac(anairiats_rec_1, statmp82, atslab_end_ntot, -1L) ; ats_selptrset_mac(anairiats_rec_1, statmp82, atslab_end_nrow, -1) ; ats_selptrset_mac(anairiats_rec_1, statmp82, atslab_end_ncol, -1) ; ats_selptrset_mac(anairiats_rec_1, statmp82, atslab_locpragma, statmp83) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy = statmp82 ; statmp160 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_location_2edats__LOCPRAGMA0_0) ; statmp157 = ref_01088_ats_ptr_type (statmp160) ; statmp162 = (ats_sum_ptr_type)0 ; statmp161 = ref_01088_ats_ptr_type (statmp162) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_location_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_termet_dats.c0000644000175000017500000014244213431250607024176 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_3 ; typedef struct { anairiats_rec_3 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { anairiats_rec_3 atslab_0 ; } anairiats_sum_9 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_nil) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_is_member) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_add) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isnat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_get_termet) (ats_int_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__termetenv_push_v = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type f_7 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_12 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_19 (ats_ptr_type arg0) ; static ats_ptr_type aux_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp8) ; ATSstatic (ats_ptr_type, statmp12) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 1777(line=61, offs=1) -- 2138(line=78, offs=4) */ ATSstaticdec() ats_void_type loop_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_loop_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp2), atslab_s2exp_srt) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_int (tmp5) ; if (tmp4) { tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isnat (arg0, tmp2) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp7) ; } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = tmp3 ; goto __ats_lab_loop_1 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp1) */ ; } /* end of [loop_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 1747(line=58, offs=3) -- 2192(line=82, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2explst_check_termet (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2explst_check_termet: /* tmp0 = */ loop_1 (arg0, arg1) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2explst_check_termet] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp11 ; */ tmp11 = arg0 ; tmp10 = atspre_ref_make_elt_tsz ((&tmp11), sizeof(ats_ptr_type)) ; return (tmp10) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; __ats_lab_ref_make_elt_01089_ats_ptr_type: tmp9 = ref_01088_ats_ptr_type (arg0) ; return (tmp9) ; } /* end of [ref_make_elt_01089_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 2471(line=99, offs=3) -- 2781(line=113, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_pop () { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_pop: tmp14 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp8), atslab_1) ; tmp15 = ats_ptrget_mac(ats_ptr_type, tmp14) ; if (tmp15 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 2625(line=105, offs=5) -- 2658(line=105, offs=38)") ; } tmp16 = &ats_caselptrlab_mac(anairiats_sum_4, tmp15, atslab_0) ; tmp17 = &ats_caselptrlab_mac(anairiats_sum_4, tmp15, atslab_1) ; tmp19 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp16), atslab_0) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_free (tmp19) ; tmp20 = ats_ptrget_mac(ats_ptr_type, tmp17) ; tmp21 = ats_ptrget_mac(ats_ptr_type, tmp14) ; ATS_FREE(tmp21) ; ats_ptrget_mac(ats_ptr_type, tmp14) = tmp20 ; return /* (tmp13) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 2836(line=117, offs=3) -- 3001(line=127, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (anairiats_rec_3, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push: tmp23 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp8), atslab_1) ; tmp25.atslab_0 = arg0 ; tmp25.atslab_1 = arg1 ; tmp26 = ats_ptrget_mac(ats_ptr_type, tmp23) ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_0, tmp25) ; ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_1, tmp26) ; ats_ptrget_mac(ats_ptr_type, tmp23) = tmp24 ; return /* (tmp22) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 3153(line=134, offs=6) -- 3243(line=137, offs=49) */ ATSstaticdec() ats_ptr_type f_7 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_int_type, tmp30) ; __ats_lab_f_7: tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg1) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_add (arg0, tmp30) ; return (tmp29) ; } /* end of [f_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25316(line=913, offs=7) -- 25599(line=923, offs=20) */ ATSstaticdec() ats_ptr_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab_loop_10: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; tmp36 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; tmp37 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg0) (arg1, tmp35, arg3) ; arg0 = arg0 ; arg1 = tmp37 ; arg2 = tmp36 ; arg3 = arg3 ; goto __ats_lab_loop_10 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp34 = arg1 ; break ; } while (0) ; return (tmp34) ; } /* end of [loop_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25281(line=912, offs=20) -- 25655(line=927, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; __ats_lab_list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type: tmp33 = loop_10 (arg0, arg1, arg2, arg3) ; return (tmp33) ; } /* end of [list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25737(line=930, offs=28) -- 26032(line=939, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type: tmp32 = list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), arg1, arg2, atspre_null_ptr) ; return (tmp32) ; } /* end of [list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 3065(line=131, offs=3) -- 3357(line=142, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push_dvarlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push_dvarlst: tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_nil () ; tmp31 = list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (&f_7, tmp28, arg0) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push (tmp31, arg1) ; return /* (tmp27) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push_dvarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 3523(line=151, offs=5) -- 3983(line=172, offs=4) */ ATSstaticdec() ats_ptr_type loop_12 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab_loop_12: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp40 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp41 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp43 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp40), atslab_0) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stampset_vt_is_member (tmp43, arg1) ; if (tmp42) { tmp44 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp40), atslab_1) ; tmp39 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp39, atslab_0, tmp44) ; } else { tmp45 = ats_ptrget_mac(ats_ptr_type, tmp41) ; arg0 = tmp45 ; arg1 = arg1 ; goto __ats_lab_loop_12 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp39 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp39) ; } /* end of [loop_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 3427(line=146, offs=3) -- 4099(line=178, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_get_termet (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_get_termet: tmp46 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp8), atslab_1) ; tmp47 = ats_ptrget_mac(ats_ptr_type, tmp46) ; tmp38 = loop_12 (tmp47, arg0) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_get_termet] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 4194(line=184, offs=3) -- 4559(line=202, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_termet_instantiate (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_termet_instantiate: tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_get_termet (arg1) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp49 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_5, tmp49, atslab_0) ; ATS_FREE(tmp49) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec (arg0, arg2, tmp50) ; /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp51) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp49 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ; /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop (arg0, tmp52) ; break ; } while (0) ; return /* (tmp48) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_termet_instantiate] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; __ats_lab_loop_18: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp77 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp75, arg3) ; tmp78 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp78, atslab_0, tmp77) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp78 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp79 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp76 ; arg1 = arg1 ; arg2 = tmp79 ; arg3 = arg3 ; goto __ats_lab_loop_18 ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp80 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp80 ; break ; } while (0) ; return /* (tmp74) */ ; } /* end of [loop_18] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp81 ; */ /* tmp82 = */ loop_18 (arg0, arg1, (&tmp81), arg2) ; tmp73 = tmp81 ; return (tmp73) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp72 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp72) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 5307(line=236, offs=51) -- 5333(line=236, offs=77) */ ATSstaticdec() ats_ptr_type __ats_fun_19 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; __ats_lab___ats_fun_19: tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s2exp_srt) ; return (tmp83) ; } /* end of [__ats_fun_19] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 4675(line=210, offs=5) -- 5730(line=254, offs=4) */ ATSstaticdec() ats_ptr_type aux_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_int_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_int_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_int_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; __ats_lab_aux_15: tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp55) ; tmp57 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp56), atslab_s2exp_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp57)->tag != 19) { goto __ats_lab_11_0 ; } __ats_lab_8_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_6, tmp57, atslab_0) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_6, tmp57, atslab_1) ; tmp60 = ats_caselptrlab_mac(anairiats_sum_6, tmp57, atslab_2) ; tmp61 = ats_caselptrlab_mac(anairiats_sum_6, tmp57, atslab_3) ; tmp62 = ats_caselptrlab_mac(anairiats_sum_6, tmp57, atslab_4) ; tmp63 = ats_caselptrlab_mac(anairiats_sum_6, tmp57, atslab_5) ; tmp64 = aux_15 (tmp63, arg1, arg2) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (tmp64 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_5, tmp64, atslab_0) ; ATS_FREE(tmp64) ; tmp67 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp56), atslab_s2exp_srt) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (tmp67, tmp58, tmp59, tmp60, tmp61, tmp62, tmp65) ; tmp54 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp54, atslab_0, tmp66) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp64 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 4946(line=225, offs=5) -- 5121(line=229, offs=32)") ; } __ats_lab_10_1: tmp54 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp57)->tag != 20) { goto __ats_lab_14_0 ; } __ats_lab_11_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_7, tmp57, atslab_1) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_7, tmp57, atslab_2) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg1) ; tmp71 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp68, &__ats_fun_19) ; ats_ptrget_mac(ats_ptr_type, arg2) = ats_castfn_mac(ats_ptr_type, tmp71) ; tmp85 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp85, atslab_0, tmp70) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun (tmp85, tmp68, tmp69) ; tmp54 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp54, atslab_0, tmp84) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp57)->tag != 28) { goto __ats_lab_17_0 ; } __ats_lab_14_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_7, tmp57, atslab_0) ; tmp87 = ats_caselptrlab_mac(anairiats_sum_7, tmp57, atslab_1) ; tmp88 = ats_caselptrlab_mac(anairiats_sum_7, tmp57, atslab_2) ; tmp89 = aux_15 (tmp88, arg1, arg2) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (tmp89 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_5, tmp89, atslab_0) ; ATS_FREE(tmp89) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (tmp86, tmp87, tmp90) ; tmp54 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp54, atslab_0, tmp91) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (tmp89 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp54 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp54 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp54) ; } /* end of [aux_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_termet.dats: 4649(line=208, offs=3) -- 5896(line=263, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_metfun_load (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (anairiats_rec_3, tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_metfun_load: /* ats_ptr_type tmp92 ; */ tmp92 = (ats_sum_ptr_type)0 ; tmp93 = aux_15 (arg0, arg1, (&tmp92)) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (tmp93 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_5, tmp93, atslab_0) ; ATS_FREE(tmp93) ; tmp95.atslab_0 = tmp94 ; tmp95.atslab_1 = tmp92 ; tmp53 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp53, atslab_0, tmp95) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (tmp93 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp53 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_metfun_load] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_termet_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp8, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp12, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp12 = (ats_sum_ptr_type)0 ; statmp8 = ref_make_elt_01089_ats_ptr_type (statmp12) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_termet_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/0000755000175000017500000000000013431250607017230 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/SATS_unistd_sats.c0000644000175000017500000000261513431250607022572 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ #include "libc/sys/CATS/types.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ #include "libc/CATS/unistd.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_unistd_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/SATS_stdlib_sats.c0000644000175000017500000000232313431250607022541 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ #include "libc/CATS/stdlib.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_stdlib_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/DATS_fcntl_dats.c0000644000175000017500000003656213431250607022344 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libc/CATS/errno.cats" #include "libc/CATS/stdio.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/stdlib.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_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_ssize_type, atspre_ssize1_of_int1) (ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lt_ssize1_int1) (ats_ssize_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_ssize1_int1) (ats_ssize_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gte_ssize1_int1) (ats_ssize_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerrf_exn) (ats_ptr_type, ...) ; ATSextern_fun(ats_int_type, atslib_errno_get) () ; ATSextern_fun(ats_bool_type, atslib_eq_errno_errno) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atslib_perror) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atslib_close_err) (ats_int_type) ; ATSextern_fun(ats_int_type, ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__close_loop_err) (ats_int_type) ; ATSextern_fun(ats_ssize_type, atslib_fildes_read_err) (ats_int_type, ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ssize_type, atslib_fildes_read_all_err) (ats_int_type, ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ssize_type, atslib_fildes_write_err) (ats_int_type, ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ssize_type, atslib_fildes_write_all_err) (ats_int_type, ats_ref_type, ats_size_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type loop_1 (ats_int_type arg0) ; static ats_size_type loop_4 (ats_int_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_ref_type arg3) ; static ats_size_type loop_7 (ats_int_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_ref_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/fcntl.dats: 2040(line=65, offs=7) -- 2395(line=75, offs=6) */ ATSstaticdec() ats_int_type loop_1 (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; __ats_lab_loop_1: tmp2 = atslib_close_err (arg0) ; tmp3 = ats_selsin_mac(tmp2, atslab_1) ; tmp4 = atspre_igte (tmp3, 0) ; if (tmp4) { tmp1 = tmp3 ; } else { tmp6 = atslib_errno_get () ; tmp5 = atslib_eq_errno_errno (tmp6, EINTR) ; if (tmp5) { arg0 = arg0 ; goto __ats_lab_loop_1 ; // tail call } else { tmp1 = tmp3 ; } /* end of [if] */ } /* end of [if] */ return (tmp1) ; } /* end of [loop_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/fcntl.dats: 1976(line=63, offs=8) -- 2417(line=76, offs=2) */ ATSglobaldec() ats_int_type ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__close_loop_err (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__close_loop_err: tmp0 = loop_1 (arg0) ; return (tmp0) ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__close_loop_err] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/fcntl.dats: 2471(line=79, offs=16) -- 2895(line=93, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__close_loop_exn (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__close_loop_exn: tmp8 = ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__close_loop_err (arg0) ; tmp9 = ats_selsin_mac(tmp8, atslab_1) ; tmp10 = atspre_igte (tmp9, 0) ; if (tmp10) { /* empty */ } else { /* tmp11 = */ atslib_perror (ATSstrcst("close")) ; /* tmp12 = */ atspre_prerrf_exn (ATSstrcst("exit(ATS): [close_loop] failed\n")) ; /* tmp7 = */ ats_exit (EXIT_FAILURE) ; } /* end of [if] */ return /* (tmp7) */ ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__close_loop_exn] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/fcntl.dats: 3271(line=108, offs=7) -- 4265(line=134, offs=8) */ ATSstaticdec() ats_size_type loop_4 (ats_int_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_size_type, tmp14) ; ATSlocal (ats_bool_type, tmp15) ; ATSlocal (ats_ssize_type, tmp16) ; ATSlocal (ats_bool_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_size_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; ATSlocal (ats_bool_type, tmp21) ; ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; __ats_lab_loop_4: tmp15 = atspre_gt_size1_int1 (arg2, 0) ; if (tmp15) { tmp16 = atslib_fildes_read_err (arg0, arg1, arg2) ; tmp17 = atspre_gt_ssize1_int1 (tmp16, 0) ; if (tmp17) { tmp18 = atspre_padd_size (arg1, ats_castfn_mac(ats_size_type, tmp16)) ; tmp19 = atspre_sub_size1_size1 (arg2, ats_castfn_mac(ats_size_type, tmp16)) ; arg0 = arg0 ; arg1 = tmp18 ; arg2 = tmp19 ; arg3 = arg3 ; goto __ats_lab_loop_4 ; // tail call } else { tmp21 = atspre_lt_ssize1_int1 (tmp16, 0) ; if (tmp21) { tmp22 = atslib_errno_get () ; tmp20 = atslib_eq_errno_errno (tmp22, EINTR) ; } else { tmp20 = ats_false_bool ; } /* end of [if] */ if (tmp20) { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_4 ; // tail call } else { tmp24 = atspre_lt_ssize1_int1 (tmp16, 0) ; if (tmp24) { tmp25 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp25 ; } else { /* empty */ } /* end of [if] */ tmp14 = arg2 ; } /* end of [if] */ } /* end of [if] */ } else { tmp14 = atspre_size1_of_int1 (0) ; } /* end of [if] */ return (tmp14) ; } /* end of [loop_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/fcntl.dats: 3233(line=107, offs=3) -- 4445(line=140, offs=4) */ ATSglobaldec() ats_ssize_type atslib_fildes_read_all_err (ats_int_type arg0, ats_ref_type arg1, ats_size_type arg2) { /* local vardec */ ATSlocal (ats_ssize_type, tmp13) ; ATSlocal (ats_int_type, tmp26) ; ATSlocal (ats_size_type, tmp27) ; ATSlocal (ats_bool_type, tmp28) ; ATSlocal (ats_size_type, tmp29) ; __ats_lab_atslib_fildes_read_all_err: /* ats_int_type tmp26 ; */ tmp26 = 0 ; tmp27 = loop_4 (arg0, arg1, arg2, (&tmp26)) ; tmp28 = atspre_eq_int_int (tmp26, 0) ; if (tmp28) { tmp29 = atspre_sub_size1_size1 (arg2, tmp27) ; tmp13 = ats_castfn_mac(ats_ssize_type, tmp29) ; } else { tmp13 = atspre_ssize1_of_int1 (-1) ; } /* end of [if] */ return (tmp13) ; } /* end of [atslib_fildes_read_all_err] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/fcntl.dats: 4497(line=144, offs=3) -- 4756(line=153, offs=4) */ ATSglobaldec() ats_size_type atslib_fildes_read_all_exn (ats_int_type arg0, ats_ref_type arg1, ats_size_type arg2) { /* local vardec */ ATSlocal (ats_size_type, tmp30) ; ATSlocal (ats_ssize_type, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; // ATSlocal_void (tmp33) ; __ats_lab_atslib_fildes_read_all_exn: tmp31 = atslib_fildes_read_all_err (arg0, arg1, arg2) ; tmp32 = atspre_gte_ssize1_int1 (tmp31, 0) ; if (tmp32) { tmp30 = ats_castfn_mac(ats_size_type, tmp31) ; } else { /* tmp33 = */ atslib_perror (ATSstrcst("read")) ; /* tmp30 = */ ats_exit_errmsg (EXIT_FAILURE, ATSstrcst("exit(ATS): [read_all] failed\n")) ; } /* end of [if] */ return (tmp30) ; } /* end of [atslib_fildes_read_all_exn] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/fcntl.dats: 4882(line=161, offs=7) -- 5790(line=185, offs=8) */ ATSstaticdec() ats_size_type loop_7 (ats_int_type arg0, ats_ptr_type arg1, ats_size_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_size_type, tmp35) ; ATSlocal (ats_bool_type, tmp36) ; ATSlocal (ats_ssize_type, tmp37) ; ATSlocal (ats_bool_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_size_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_int_type, tmp44) ; __ats_lab_loop_7: tmp36 = atspre_gt_size1_int1 (arg2, 0) ; if (tmp36) { tmp37 = atslib_fildes_write_err (arg0, arg1, arg2) ; tmp38 = atspre_gt_ssize1_int1 (tmp37, 0) ; if (tmp38) { tmp39 = atspre_padd_size (arg1, ats_castfn_mac(ats_size_type, tmp37)) ; tmp40 = atspre_sub_size1_size1 (arg2, ats_castfn_mac(ats_size_type, tmp37)) ; arg0 = arg0 ; arg1 = tmp39 ; arg2 = tmp40 ; arg3 = arg3 ; goto __ats_lab_loop_7 ; // tail call } else { tmp42 = atspre_lt_ssize1_int1 (tmp37, 0) ; if (tmp42) { tmp43 = atslib_errno_get () ; tmp41 = atslib_eq_errno_errno (tmp43, EINTR) ; } else { tmp41 = ats_true_bool ; } /* end of [if] */ if (tmp41) { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_7 ; // tail call } else { tmp44 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp44 ; tmp35 = arg2 ; } /* end of [if] */ } /* end of [if] */ } else { tmp35 = atspre_size1_of_int1 (0) ; } /* end of [if] */ return (tmp35) ; } /* end of [loop_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/fcntl.dats: 4844(line=160, offs=3) -- 5970(line=191, offs=4) */ ATSglobaldec() ats_ssize_type atslib_fildes_write_all_err (ats_int_type arg0, ats_ref_type arg1, ats_size_type arg2) { /* local vardec */ ATSlocal (ats_ssize_type, tmp34) ; ATSlocal (ats_int_type, tmp45) ; ATSlocal (ats_size_type, tmp46) ; ATSlocal (ats_bool_type, tmp47) ; ATSlocal (ats_size_type, tmp48) ; __ats_lab_atslib_fildes_write_all_err: /* ats_int_type tmp45 ; */ tmp45 = 0 ; tmp46 = loop_7 (arg0, arg1, arg2, (&tmp45)) ; tmp47 = atspre_eq_int_int (tmp45, 0) ; if (tmp47) { tmp48 = atspre_sub_size1_size1 (arg2, tmp46) ; tmp34 = ats_castfn_mac(ats_ssize_type, tmp48) ; } else { tmp34 = atspre_ssize1_of_int1 (-1) ; } /* end of [if] */ return (tmp34) ; } /* end of [atslib_fildes_write_all_err] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/fcntl.dats: 6045(line=197, offs=3) -- 6455(line=209, offs=4) */ ATSglobaldec() ats_void_type atslib_fildes_write_all_exn (ats_int_type arg0, ats_ref_type arg1, ats_size_type arg2) { /* local vardec */ // ATSlocal_void (tmp49) ; ATSlocal (ats_int_type, tmp50) ; ATSlocal (ats_ssize_type, tmp51) ; ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_bool_type, tmp54) ; ATSlocal (ats_int_type, tmp55) ; ATSlocal (ats_int_type, tmp56) ; ATSlocal (ats_bool_type, tmp57) ; // ATSlocal_void (tmp58) ; __ats_lab_atslib_fildes_write_all_exn: /* ats_int_type tmp50 ; */ tmp50 = 0 ; tmp51 = atslib_fildes_write_all_err (arg0, arg1, arg2) ; tmp53 = atspre_gte_ssize1_int1 (tmp51, 0) ; if (tmp53) { tmp54 = atspre_lt_size1_size1 (ats_castfn_mac(ats_size_type, tmp51), arg2) ; if (tmp54) { tmp55 = atspre_iadd (tmp50, 1) ; tmp50 = tmp55 ; } else { /* empty */ } /* end of [if] */ } else { tmp56 = atspre_iadd (tmp50, 1) ; tmp50 = tmp56 ; } /* end of [if] */ tmp57 = atspre_gt_int_int (tmp50, 0) ; if (tmp57) { /* tmp58 = */ atslib_perror (ATSstrcst("write")) ; /* tmp49 = */ ats_exit_errmsg (EXIT_FAILURE, ATSstrcst("exit(ATS): [write_all]: failed\n")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp49) */ ; } /* end of [atslib_fildes_write_all_exn] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2DATS_2fcntl_2edats__staload () { static int ATS_2d0_2e2_2e12_2libc_2DATS_2fcntl_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2DATS_2fcntl_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2DATS_2fcntl_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdlib_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libc_2DATS_2fcntl_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libc_2DATS_2fcntl_2edats__dynload () { // ATS_2d0_2e2_2e12_2libc_2DATS_2fcntl_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2DATS_2fcntl_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ ats_void_type atslib_close_exn (ats_int_type fd) { int err = close(fd) ; if (err < 0) { perror ("close") ; fprintf (stderr, "exit(ATS): [close(%i)] failed\n", (fd)) ; exit (EXIT_FAILURE) ; } // end of [atslib_close_exn] return ; } // end of [atslib_close_exn] /* ****** ****** */ /* end of [DATS_fcntl_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/sys_SATS_types_sats.c0000644000175000017500000000202613431250607023322 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "libc/sys/CATS/types.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [sys_SATS_types_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/DATS_gmp_dats.c0000644000175000017500000003304113431250607022006 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libc/CATS/gmp.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_ptr_type, atspre_stdout_get) () ; ATSextern_fun(ats_void_type, atspre_stdout_view_set) () ; ATSextern_fun(ats_ptr_type, atspre_stderr_get) () ; ATSextern_fun(ats_void_type, atspre_stderr_view_set) () ; ATSextern_fun(ats_ptr_type, atslib_mpz_get_str) (ats_int_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_mul2_ulint) (ats_ref_type, ats_ulint_type) ; ATSextern_fun(ats_void_type, atslib_mpz_pow2_ui) (ats_ref_type, ats_ulint_type) ; ATSextern_fun(ats_void_type, atslib_fprint_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_fprint_mpq) (ats_ref_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 2289(line=74, offs=21) -- 2321(line=74, offs=53) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__print_mpz (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__print_mpz: tmp1 = atspre_stdout_get () ; tmp2 = ats_selsin_mac(tmp1, atslab_1) ; /* tmp3 = */ atslib_fprint_mpz (tmp2, arg0) ; /* tmp0 = */ atspre_stdout_view_set () ; return /* (tmp0) */ ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__print_mpz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 2342(line=75, offs=21) -- 2374(line=75, offs=53) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__prerr_mpz (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__prerr_mpz: tmp5 = atspre_stderr_get () ; tmp6 = ats_selsin_mac(tmp5, atslab_1) ; /* tmp7 = */ atslib_fprint_mpz (tmp6, arg0) ; /* tmp4 = */ atspre_stderr_view_set () ; return /* (tmp4) */ ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__prerr_mpz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 2399(line=77, offs=24) -- 2424(line=77, offs=49) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__tostrptr_mpz (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__tostrptr_mpz: tmp8 = atslib_mpz_get_str (10, arg0) ; return (tmp8) ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__tostrptr_mpz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 2448(line=78, offs=24) -- 2519(line=80, offs=4) */ ATSglobaldec() ats_ptr_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__tostring_mpz (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__tostring_mpz: tmp10 = atslib_mpz_get_str (10, arg0) ; tmp9 = ats_castfn_mac(ats_ptr_type, tmp10) ; return (tmp9) ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__tostring_mpz] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 2587(line=85, offs=11) -- 2880(line=95, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_incby (ats_ref_type arg0, ats_ulint_type arg1, ats_ulint_type arg2) { /* local vardec */ // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_incby: tmp12 = atslib_mpq_numref (arg0) ; tmp13 = ats_selsin_mac(tmp12, atslab_2) ; tmp14 = atslib_mpq_denref (arg0) ; tmp15 = ats_selsin_mac(tmp14, atslab_2) ; /* tmp16 = */ atslib_mpz_mul2_ulint (tmp13, arg2) ; /* tmp17 = */ atslib_mpz_addmul3_ulint (tmp13, tmp15, arg1) ; /* tmp18 = */ atslib_mpz_mul2_ulint (tmp15, arg2) ; /* tmp11 = */ atslib_mpq_canonicalize (arg0) ; return /* (tmp11) */ ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_incby] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 2924(line=98, offs=11) -- 3217(line=108, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_decby (ats_ref_type arg0, ats_ulint_type arg1, ats_ulint_type arg2) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_decby: tmp20 = atslib_mpq_numref (arg0) ; tmp21 = ats_selsin_mac(tmp20, atslab_2) ; tmp22 = atslib_mpq_denref (arg0) ; tmp23 = ats_selsin_mac(tmp22, atslab_2) ; /* tmp24 = */ atslib_mpz_mul2_ulint (tmp21, arg2) ; /* tmp25 = */ atslib_mpz_submul3_ulint (tmp21, tmp23, arg1) ; /* tmp26 = */ atslib_mpz_mul2_ulint (tmp23, arg2) ; /* tmp19 = */ atslib_mpq_canonicalize (arg0) ; return /* (tmp19) */ ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_decby] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 3284(line=113, offs=13) -- 3754(line=129, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_pow3_ui (ats_ref_type arg0, ats_ref_type arg1, ats_ulint_type arg2) { /* local vardec */ // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_pow3_ui: tmp28 = atslib_mpq_numref (arg0) ; tmp29 = ats_selsin_mac(tmp28, atslab_2) ; tmp30 = atslib_mpq_numref (arg1) ; tmp31 = ats_selsin_mac(tmp30, atslab_2) ; /* tmp32 = */ atslib_mpz_pow3_ui (tmp29, tmp31, arg2) ; tmp33 = atslib_mpq_denref (arg0) ; tmp34 = ats_selsin_mac(tmp33, atslab_2) ; tmp35 = atslib_mpq_denref (arg1) ; tmp36 = ats_selsin_mac(tmp35, atslab_2) ; /* tmp27 = */ atslib_mpz_pow3_ui (tmp34, tmp36, arg2) ; return /* (tmp27) */ ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_pow3_ui] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 3802(line=131, offs=23) -- 4077(line=143, offs=4) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_pow2_ui (ats_ref_type arg0, ats_ulint_type arg1) { /* local vardec */ // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_pow2_ui: tmp38 = atslib_mpq_numref (arg0) ; tmp39 = ats_selsin_mac(tmp38, atslab_2) ; /* tmp40 = */ atslib_mpz_pow2_ui (tmp39, arg1) ; tmp41 = atslib_mpq_denref (arg0) ; tmp42 = ats_selsin_mac(tmp41, atslab_2) ; /* tmp37 = */ atslib_mpz_pow2_ui (tmp42, arg1) ; return /* (tmp37) */ ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__mpq_pow2_ui] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 4784(line=177, offs=21) -- 4816(line=177, offs=53) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__print_mpq (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; // ATSlocal_void (tmp46) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__print_mpq: tmp44 = atspre_stdout_get () ; tmp45 = ats_selsin_mac(tmp44, atslab_1) ; /* tmp46 = */ atslib_fprint_mpq (tmp45, arg0) ; /* tmp43 = */ atspre_stdout_view_set () ; return /* (tmp43) */ ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__print_mpq] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/gmp.dats: 4837(line=178, offs=21) -- 4869(line=178, offs=53) */ ATSglobaldec() ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__prerr_mpq (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; // ATSlocal_void (tmp50) ; __ats_lab_ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__prerr_mpq: tmp48 = atspre_stderr_get () ; tmp49 = ats_selsin_mac(tmp48, atslab_1) ; /* tmp50 = */ atslib_fprint_mpq (tmp49, arg0) ; /* tmp47 = */ atspre_stderr_view_set () ; return /* (tmp47) */ ; } /* end of [ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__prerr_mpq] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2DATS_2gmp_2edats__staload () { static int ATS_2d0_2e2_2e12_2libc_2DATS_2gmp_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2DATS_2gmp_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2DATS_2gmp_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libc_2DATS_2gmp_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libc_2DATS_2gmp_2edats__dynload () { // ATS_2d0_2e2_2e12_2libc_2DATS_2gmp_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2DATS_2gmp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__file_mode_lte_w_w_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ ats_void_type atslib_mpz_inp_str_exn ( ats_mpz_ptr_type x , ats_ptr_type file , ats_int_type base ) { size_t n = mpz_inp_str(x, (FILE*)file, base) ; if (n == 0) { ats_exit_errmsg (1, "exit(ATS): [mpz_inp_str] failed.\n") ; } // end of [if] return ; } // end of [atslib_mpz_inp_str_exn] ats_void_type atslib_mpz_out_str_exn ( ats_ptr_type file , ats_int_type base , const ats_mpz_ptr_type x ) { size_t n = mpz_out_str((FILE*)file, base, (mpz_ptr)x) ; if (n == 0) { ats_exit_errmsg (1, "exit(ATS): [mpz_out_str] failed.\n") ; } // end of [if] return ; } // end of [atslib_mpz_out_str_exn] ats_void_type atslib_mpq_inp_str_exn ( ats_mpq_ptr_type x , ats_ptr_type file , ats_int_type base ) { size_t n = mpq_inp_str(x, (FILE*)file, base) ; if (n == 0) { ats_exit_errmsg (1, "exit(ATS): [mpq_inp_str] failed.\n") ; } // end of [if] return ; } // end of [atslib_mpq_inp_str_exn] ats_void_type atslib_mpq_out_str_exn ( ats_ptr_type file , ats_int_type base , const ats_mpq_ptr_type x ) { size_t n = mpq_out_str((FILE*)file, base, (mpq_ptr)x) ; if (n == 0) { ats_exit_errmsg (1, "exit(ATS): [mpq_out_str] failed.\n") ; } // end of [if] return ; } // end of [atslib_mpq_out_str_exn] ats_void_type atslib_mpf_inp_str_exn ( ats_mpf_ptr_type x , ats_ptr_type file , ats_int_type base ) { size_t n = mpf_inp_str(x, (FILE*)file, base) ; if (n == 0) { ats_exit_errmsg (1, "exit(ATS): [mpf_inp_str] failed.\n") ; } // end of [if] return ; } // end of [atslib_mpf_inp_str_exn] ats_void_type atslib_mpf_out_str_exn ( ats_ptr_type file , ats_int_type base , ats_size_type ndigit , const ats_mpf_ptr_type x ) { size_t n = mpf_out_str((FILE*)file, base, ndigit, (mpf_ptr)x) ; if (n == 0) { ats_exit_errmsg (1, "exit(ATS): [mpf_out_str] failed.\n") ; } // end of [if] return ; } // end of [atslib_mpf_out_str_exn] /* external codes at bot */ /* ****** ****** */ /* end of [DATS_gmp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/SATS_stdio_sats.c0000644000175000017500000000226613431250607022410 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ #include "libc/sys/CATS/types.cats" /* external codes at top */ #include "libc/CATS/stdio.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_stdio_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/sys_SATS_stat_sats.c0000644000175000017500000000231413431250607023131 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ #include "libc/sys/CATS/types.cats" /* external codes at top */ #include "libc/sys/CATS/stat.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2stat_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2stat_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2stat_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2stat_2esats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [sys_SATS_stat_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/SATS_string_sats.c0000644000175000017500000000225613431250607022573 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ #include "libc/CATS/errno.cats" /* external codes at top */ #include "libc/CATS/string.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_string_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/sys/0000755000175000017500000000000013431250607020046 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/sys/CATS/0000755000175000017500000000000013431250607020600 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/sys/CATS/wait.cats0000644000175000017500000000611313431250607022421 0ustar brandonbrandon/************************************************************************/ /* */ /* Applied Type System */ /* */ /* Hongwei Xi */ /* */ /************************************************************************/ /* ** ATS - Unleashing the Power of Types! ** Copyright (C) 2002-2010 Hongwei Xi, Boston University ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the ** Free Software Foundation; either version 2.1, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_SYS_WAIT_CATS #define ATS_LIBC_SYS_WAIT_CATS #include #include /* ****** ****** */ #include "libc/sys/CATS/types.cats" /* ****** ****** */ #if(0) // // HX-2010-10-8: these will also work: // #define atslib_WIFEXITED(status) WIFEXITED(status) #define atslib_WIFSIGNALED(status) WIFSIGNALED(status) #define atslib_WIFSTOPPED(status) WIFSTOPPED(status) // #define atslib_WEXITSTATUS(status) WEXITSTATUS(status) #define atslib_WTERMSIG(status) WTERMSIG(status) #define atslib_WSTOPSIG(status) WSTOPSIG(status) // #endif // end of [#if(0)] /* ****** ****** */ ATSinline() ats_int_type atslib_WIFEXITED (ats_int_type status) { return WIFEXITED(status) ; } // end of [atslib_WIFEXITED] ATSinline() ats_int_type atslib_WEXITSTATUS (ats_int_type status) { return WEXITSTATUS(status) ; } // end of [atslib_WEXITSTATUS] /* ****** ****** */ ATSinline() ats_int_type atslib_WIFSIGNALED (ats_int_type status) { return WIFSIGNALED(status) ; } // end of [atslib_WIFSIGNALED] ATSinline() ats_int_type atslib_WTERMSIG (ats_int_type status) { return WTERMSIG(status) ; } // end of [atslib_WTERMSIG] /* ****** ****** */ ATSinline() ats_int_type atslib_WIFSTOPPED (ats_int_type status) { return WIFSTOPPED(status) ; } // end of [atslib_WIFSTOPPED] ATSinline() ats_int_type atslib_WSTOPSIG (ats_int_type status) { return WSTOPSIG(status) ; } // end of [atslib_WSTOPSIG] /* ****** ****** */ ATSinline() ats_pid_type atslib_wait_null () { return wait((int*)0) ; } #define atslib_wait wait #define atslib_waitpid waitpid /* ****** ****** */ #endif /* end of [ATS_LIBC_SYS_WAIT_CATS] */ /* end of [wait.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/sys/CATS/stat.cats0000644000175000017500000000532713431250607022436 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_SYS_STAT_CATS #define ATS_LIBC_SYS_STAT_CATS /* ****** ****** */ #include #include "libc/sys/CATS/types.cats" typedef struct stat ats_stat_type ; /* ****** ****** */ extern void perror (const char *msg) ; // declared in [stdio.h] // // HX: implemented in [prelude/DATS/basics.dats] // extern ats_void_type ats_exit_errmsg(ats_int_type n, ats_ptr_type msg) ; /* ****** ****** */ ATSinline() ats_bool_type atslib_S_ISBLK (ats_mode_type m) { return S_ISBLK(m) ; } ATSinline() ats_bool_type atslib_S_ISCHR (ats_mode_type m) { return S_ISCHR(m) ; } ATSinline() ats_bool_type atslib_S_ISDIR (ats_mode_type m) { return S_ISDIR(m) ; } ATSinline() ats_bool_type atslib_S_ISFIFO (ats_mode_type m) { return S_ISFIFO(m) ; } ATSinline() ats_bool_type atslib_S_ISREG (ats_mode_type m) { return S_ISREG(m) ; } ATSinline() ats_bool_type atslib_S_ISLNK (ats_mode_type m) { return S_ISLNK(m) ; } ATSinline() ats_bool_type atslib_S_ISSOCK (ats_mode_type m) { return S_ISSOCK(m) ; } /* ****** ****** */ #define atslib_chmod_err chmod /* ****** ****** */ #define atslib_mkdir_err mkdir /* ****** ****** */ #define atslib_stat_err stat #define atslib_fstat_err fstat #define atslib_lstat_err lstat /* ****** ****** */ #define atslib_umask umask /* ****** ****** */ #define atslib_mkfifo mkfifo /* ****** ****** */ #endif /* end of [ATS_LIBC_SYS_STAT_CATS] */ /* end of [stat.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/sys/CATS/types.cats0000644000175000017500000001255313431250607022626 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_SYS_TYPES_CATS #define ATS_LIBC_SYS_TYPES_CATS /* ****** ****** */ #include #include /* ****** ****** */ // // typedef blksize_t ats_blksize_type ; // I/O block size // typedef blkcnt_t ats_blkcnt_type ; // number of blocks allowed /* ****** ****** */ // // HX: it should be defined in [sys/types.h] but it is actually in [time.h] // typedef clock_t ats_clock_type ; // for CLOCKS_PER_SEC ATSinline() ats_lint_type atslib_lint_of_clock (clock_t t) { return t ; } ATSinline() ats_double_type atslib_double_of_clock (clock_t t) { return t ; } /* ****** ****** */ // HX: not supported on Mac OSX ? // typedef clockid_t ats_clockid_type ; // for clock ID type /* ****** ****** */ typedef dev_t ats_dev_type ; // for device IDs ATSinline() ats_bool_type atslib_eq_dev_dev (dev_t x1, dev_t x2) { return (x1 == x2 ? ats_true_bool : ats_false_bool) ; } // end of [atslib_eq_dev_dev] /* ****** ****** */ typedef fsblkcnt_t ats_fsblkcnt_type ; // file system block counts typedef fsfilcnt_t ats_fsfilcnt_type ; // file system file counts typedef gid_t ats_gid_type ; // for group IDs /* ****** ****** */ typedef ino_t ats_ino_type ; // for file serial numbers ATSinline() ats_bool_type atslib_eq_ino_ino (ino_t x1, ino_t x2) { return (x1 == x2 ? ats_true_bool : ats_false_bool) ; } // end of [atslib_eq_ino_ino] /* ****** ****** */ typedef key_t ats_key_type ; // for XSI interprocess communication /* ****** ****** */ typedef mode_t ats_mode_type ; // file mode ATSinline() ats_bool_type atslib_eq_mode_mode (ats_mode_type m1, ats_mode_type m2) { return (m1 == m2 ? ats_true_bool : ats_false_bool) ; } // end of [atslib_eq_mode_mode] ATSinline() ats_bool_type atslib_neq_mode_mode (ats_mode_type m1, ats_mode_type m2) { return (m1 != m2 ? ats_true_bool : ats_false_bool) ; } // end of [atslib_neq_mode_mode] ATSinline() ats_mode_type atslib_lor_mode_mode (ats_mode_type m1, ats_mode_type m2) { return (m1 | m2) ; } // end of [atslib_lor_mode_mode] ATSinline() ats_mode_type atslib_land_mode_mode (ats_mode_type m1, ats_mode_type m2) { return (m1 & m2) ; } // end of [atslib_land_mode_mode] /* ****** ****** */ typedef nlink_t ats_nlink_type ; // number of hard links to a file /* ****** ****** */ typedef off_t ats_off_type ; // file size in bytes #if (0) // // HX: these are now cast functions // ATSinline() ats_lint_type atslib_lint_of_off (ats_off_type off) { return off ; } ATSinline() ats_off_type atslib_off_of_lint (ats_lint_type li) { return li ; } #endif // end of [if(0)] /* ****** ****** */ typedef pid_t ats_pid_type ; // for process IDs // signed integer type #if (0) // // HX: these are now cast functions // ATSinline() ats_pid_type atslib_pid_of_int (ats_int_type i) { return (i) ; } ATSinline() ats_int_type atslib_int_of_pid (ats_pid_type p) { return (p) ; } ATSinline() ats_lint_type atslib_lint_of_pid (ats_pid_type p) { return (p) ; } #endif // end of [if(0)] /* ****** ****** */ // // HX: already defined in [ats_types.h] // typedef size_t ats_size_type ; // for sizes of objects // typedef ssize_t ats_ssize_type ; // for sizes or error indication // /* ****** ****** */ typedef time_t ats_time_type ; // for time in seconds ATSinline() ats_lint_type atslib_lint_of_time (time_t t) { return t ; } ATSinline() ats_double_type atslib_double_of_time (time_t t) { return t ; } /* ****** ****** */ // // HX: where is [timer_t] declared? // typedef timer_t ats_timer_type ; // for timers returned by timer_create () // #ifdef _XOPEN_SOURCE // for POSIX and XPG things typedef useconds_t ats_useconds_type ; // for time in microseconds typedef suseconds_t ats_suseconds_type ; // for signed time in microseconds #endif // end of [_XOPEN_SOURCE] /* ****** ****** */ typedef uid_t ats_uid_type ; #if (0) // // HX: these are now cast functions // ATSinline() ats_int_type atslib_int_of_uid (ats_uid_type u) { return u ; } ATSinline() ats_uid_type atslib_uid_of_int (ats_int_type i) { return i ; } #endif // end of [if(0)] /* ****** ****** */ #endif /* end of [ATS_LIBC_SYS_TYPES_CATS] */ /* end of [types.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/sys/CATS/.keeper0000644000175000017500000000000013431250607022042 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/SATS_errno_sats.c0000644000175000017500000000177213431250607022414 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "libc/CATS/errno.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_errno_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/.keeper0000644000175000017500000000000013431250607020472 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/sys_SATS_wait_sats.c0000644000175000017500000000231413431250607023122 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ #include "libc/sys/CATS/types.cats" /* external codes at top */ #include "libc/sys/CATS/wait.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2wait_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2wait_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2wait_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2wait_2esats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [sys_SATS_wait_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/0000755000175000017500000000000013431250607017762 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/unistd.cats0000644000175000017500000001205513431250607022147 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2010 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_UNISTD_CATS #define ATS_LIBC_UNISTD_CATS /* ****** ****** */ #include #include #include // for [wait] #include /* ****** ****** */ #include "libc/sys/CATS/types.cats" // for [pid_t] /* ****** ****** */ // // HX: implemented in [prelude/DATS/basics.dats] // extern ats_void_type ats_exit_errmsg(ats_int_type n, ats_ptr_type msg) ; /* ****** ****** */ #define atslib_dup dup #define atslib_dup2 dup2 /* ****** ****** */ #define atslib__exit _exit // equivalent to _Exit in stdlib /* ****** ****** */ ATSinline() ats_ptr_type atslib_strarr_get ( ats_ptr_type A, ats_size_type i ) { return ((char**)A)[i] ; } // end of [atslib_strarr_get] /* ****** ****** */ #define atslib_execv execv #define atslib_execvp execvp #define atslib_execl execl // HX: no interface in ATS #define atslib_execlp execlp // HX: no interface in ATS /* ****** ****** */ #define atslib_fork_err fork /* ****** ****** */ #define atslib_getcwd getcwd /* ****** ****** */ #define atslib_alarm_set alarm #define atslib_alarm_cancel() alarm(0U) /* ****** ****** */ #define atslib_sleep sleep #define atslib_usleep usleep /* ****** ****** */ #define atslib_getpagesize getpagesize /* ****** ****** */ #define atslib_getuid getuid #define atslib_geteuid geteuid #define atslib_getgid getgid #define atslib_getegid getegid /* ****** ****** */ #define atslib_getpid getpid #define atslib_getppid getppid #define atslib_setsid setsid #define atslib_getsid getsid #define atslib_setpgid setpgid #define atslib_getpgid getpgid /* ****** ****** */ #define atslib_getlogin getlogin #define atslib_getlogin_r getlogin_r /* ****** ****** */ #define atslib_access access /* ****** ****** */ #define atslib_chroot chroot /* ****** ****** */ #define atslib_chdir chdir #define atslib_fchdir fchdir /* ****** ****** */ #define atslib_nice nice /* ****** ****** */ #define atslib_rmdir rmdir /* ****** ****** */ #define atslib_link link #define atslib_unlink unlink /* ****** ****** */ #define atslib_fildes_lseek_err lseek ATSinline() ats_off_type atslib_fildes_lseek_exn ( ats_int_type fd , ats_off_type ofs , ats_int_type whence ) { off_t ofs_new ; ofs_new = lseek(fd, ofs, whence) ; if (ofs_new == (ats_off_type)(-1)) { perror ("lseek") ; ats_exit_errmsg (1, "exit(ATS): [lseek] failed\n") ; } return ofs_new ; } /* end of [atslib_fildes_lseek_exn] */ /* ****** ****** */ #define atslib_fildes_pread pread #define atslib_fildes_pwrite pwrite /* ****** ****** */ #define atslib_sync sync #define atslib_fsync fsync #define atslib_fdatasync fdatasync /* ****** ****** */ #define atslib_pathconf pathconf #define atslib_fpathconf fpathconf /* ****** ****** */ #define atslib_readlink readlink /* ****** ****** */ #define atslib_tcsetpgrp tcsetpgrp #define atslib_tcgetpgrp tcgetpgrp /* ****** ****** */ #define atslib_ttyname ttyname #define atslib_ttyname_r ttyname_r #define atslib_isatty isatty /* ****** ****** */ ATSinline() ats_int_type atslib_gethostname ( ats_ptr_type bufp, ats_size_type len ) { int rtn ; rtn = gethostname((char*)bufp, len) ; if (rtn == 0) ((char*)bufp)[len] = '\0' ; // HX: force it to be null terminated! return rtn ; } // end of [atslib_gethostname] #define atslib_sethostname sethostname /* ****** ****** */ ATSinline() ats_int_type atslib_getdomainname ( ats_ptr_type bufp, ats_size_type len ) { int rtn ; rtn = getdomainname((char*)bufp, len) ; if (rtn == 0) ((char*)bufp)[len] = '\0' ; // HX: force it to be null terminated! return rtn ; } // end of [atslib_getdomainname] #define atslib_setdomainname setdomainname /* ****** ****** */ #define atslib_pause pause /* ****** ****** */ #endif /* ATS_LIBC_UNISTD_CATS */ /* end of [unistd.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/stdlib.cats0000644000175000017500000000627313431250607022127 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_STDLIB_CATS #define ATS_LIBC_STDLIB_CATS /* ****** ****** */ #include #include /* ****** ****** */ #include "ats_types.h" /* ****** ****** */ // implemented in [prelude/CATS/printf.cats] extern ats_void_type atspre_exit_prerrf(ats_int_type code, ats_ptr_type fmt, ...) ; /* ****** ****** */ #define atslib_atoi atoi #define atslib_atof atof #define atslib_atol atol #define atslib_atoll atoll /* ****** ****** */ #define atslib_strtoi_errnul(str, base) strtoi(str, NULL, base) #define atslib_strtol_errnul(str, base) strtol(str, NULL, base) #define atslib_strtoll_errnul(str, base) strtoll(str, NULL, base) /* ****** ****** */ #define atslib_getenv getenv #define atslib_putenv putenv #define atslib_setenv setenv #define atslib_unsetenv unsetenv /* ****** ****** */ #define atslib_abort aboirt #define atslib__Exit _Exit #define atslib_atexit atexit /* ****** ****** */ #define atslib_system system /* ****** ****** */ #define atslib_mkstemp mkstemp #define atslib_mkdtemp mkdtemp /* ****** ****** */ // // HX: [atslib_bsearch] is slightly different from [bsearch] // ATSinline() ats_int_type atslib_bsearch ( ats_ref_type key, ats_ref_type base, ats_size_type nmemb, ats_size_type size, ats_fun_ptr_type compar ) { void *p ; p = bsearch ( key, base, nmemb, size, (int(*)(const void*, const void*))compar ) ; // end of [bsearch] if (!p) return -1 ; return ((char*)p - (char*)base) / size ; } /* end of [atslib_bsearch] */ /* ****** ****** */ // // HX: [atslib_qsort] is the same as [qsort] // ATSinline() ats_void_type atslib_qsort ( ats_ref_type base, ats_size_type nmemb, ats_size_type size, ats_ptr_type compar ) { qsort(base, nmemb, size, (int(*)(const void*, const void*))compar) ; return ; } /* end of [atslib_qsort] */ /* ****** ****** */ #endif /* ATS_LIBC_STDLIB_CATS */ /* end of [stdlib.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/stdarg.cats0000644000175000017500000000455713431250607022135 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_STDARG_CATS #define ATS_LIBC_STDARG_CATS /* ****** ****** */ #include /* ****** ****** */ ATSinline() ats_bool_type atslib_va_arg_bool (ats_ref_type ap) { return va_arg(*(va_list*)ap, ats_int_type) ; } // end of ... ATSinline() ats_char_type // note the need for alignment atslib_va_arg_char (ats_ref_type ap) { return va_arg(*(va_list*)ap, ats_int_type) ; } // end of ... ATSinline() ats_int_type atslib_va_arg_int (ats_ref_type ap) { return va_arg(*(va_list*)ap, ats_int_type) ; } // end of ... ATSinline() ats_ptr_type atslib_va_arg_ptr (ats_ref_type ap) { return va_arg(*(va_list*)ap, ats_ptr_type) ; } // end of ... /* ****** ****** */ ATSinline() ats_void_type atslib_va_end (ats_ref_type ap) { va_end(*(va_list*)ap) ; return ; } /* ****** ****** */ ATSinline() ats_void_type atslib_va_copy (ats_ref_type dst, va_list src) { va_copy(*(va_list*)dst, src) ; return ; // do dst and src share? } // end of [atslib_va_copy] /* ****** ****** */ #endif /* ATS_LIBC_STDARG_CATS */ /* end of [stdarg.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/time.cats0000644000175000017500000001111613431250607021574 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2010 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_TIME_CATS #define ATS_LIBC_TIME_CATS /* ****** ****** */ #include /* ****** ****** */ #include "libc/sys/CATS/types.cats" /* ****** ****** */ typedef struct tm ats_tm_struct_type ; typedef struct timespec ats_timespec_type ; typedef struct itimerspec ats_itimerspec_type ; /* ****** ****** */ #define atslib_difftime difftime /* ****** ****** */ ATSinline() ats_int_type atslib_tm_get_sec (ats_ptr_type tm) { return ((struct tm*)tm)->tm_sec ; } // end of [atslib_tm_get_sec] ATSinline() ats_int_type atslib_tm_get_min (ats_ptr_type tm) { return ((struct tm*)tm)->tm_min ; } // end of [atslib_tm_get_min] ATSinline() ats_int_type atslib_tm_get_hour (ats_ptr_type tm) { return ((struct tm*)tm)->tm_hour ; } // end of [atslib_tm_get_hour] ATSinline() ats_int_type atslib_tm_get_mday (ats_ptr_type tm) { return ((struct tm*)tm)->tm_mday ; } // end of [atslib_tm_get_mday] ATSinline() ats_int_type atslib_tm_get_mon (ats_ptr_type tm) { return ((struct tm*)tm)->tm_mon ; } // end of [atslib_tm_get_mon] ATSinline() ats_int_type atslib_tm_get_year (ats_ptr_type tm) { return ((struct tm*)tm)->tm_year ; } // end of [atslib_tm_get_year] ATSinline() ats_int_type atslib_tm_get_wday (ats_ptr_type tm) { return ((struct tm*)tm)->tm_wday ; } // end of [atslib_tm_get_wday] ATSinline() ats_int_type atslib_tm_get_yday (ats_ptr_type tm) { return ((struct tm*)tm)->tm_yday ; } // end of [atslib_tm_get_yday] ATSinline() ats_int_type atslib_tm_get_isdst (ats_ptr_type tm) { return ((struct tm*)tm)->tm_isdst ; } // end of [atslib_tm_get_isdst] // /* ****** ****** */ ATSinline() ats_time_type atslib_time_get () { return time((time_t*)0) ; } ATSinline() ats_int_type atslib_time_get_and_set (ats_ref_type p) { time_t err = time((time_t*)p) ; return (err > 0) ? ats_true_bool : ats_false_bool ; } // end of [atslib_time_get_and_set] /* ****** ****** */ #define atslib_ctime ctime #define atslib_ctime_r ctime_r /* ****** ****** */ #define atslib_localtime localtime #define atslib_localtime_r localtime_r #define atslib_gmtime gmtime #define atslib_gmtime_r gmtime_r /* ****** ****** */ #define atslib_mktime mktime /* ****** ****** */ #define atslib_asctime asctime #define atslib_strftime strftime /* ****** ****** */ extern int getdate_err ; ATSinline() ats_int_type atslib_getdate_err_get() { return getdate_err ;} // ATSinline() ats_void_type atslib_getdate_err_set(ats_int_type n) { getdate_err = n ; return ; } // #define atslib_getdate getdate #define atslib_strptime strptime /* ****** ****** */ #define atslib_tzset tzset /* ****** ****** */ #define atslib_clock clock /* ****** ****** */ #define atslib_nanosleep nanosleep #define atslib_nanosleep_null(ts) nanosleep_null(ts, NULL) /* ****** ****** */ #define atslib_clock_gettime clock_gettime #define atslib_clock_getres clock_getres #define atslib_clock_settime clock_settime /* ****** ****** */ #define atslib_timer_create timer_create #define atslib_timer_create_null(cid, p_tid) timer_create(cid, NULL, p_tid) #define atslib_timer_delete timer_delete #define atslib_timer_gettime timer_gettime #define atslib_timer_settime timer_settime #define atslib_timer_getoverrun timer_getoverrun /* ****** ****** */ #endif /* ATS_LIBC_TIME_CATS */ /* end of [time.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/.keeper0000644000175000017500000000000013431250607021224 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/gmp.cats0000644000175000017500000006564213431250607021436 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_GMP_CATS #define ATS_LIBC_GMP_CATS /* ****** ****** */ #include #include /* ****** ****** */ #include "ats_types.h" /* ****** ****** */ #include "prelude/CATS/basics.cats" /* ****** ****** */ typedef unsigned long int ulint ; /* ****** ****** */ // [mpz_t] is one-element array of [__mpz_struct] typedef __mpz_struct ats_mpz_viewt0ype ; // [mpq_t] is one-element array of [__mpq_struct] typedef __mpq_struct ats_mpq_viewt0ype ; // [mpf_t] is one-element array of [__mpf_struct] typedef __mpf_struct ats_mpf_viewt0ype ; // [mpz_ptr] is defined in [gmp.h] // call-by-reference typedef ats_ref_type ats_mpz_ptr_type ; typedef ats_ref_type ats_mpq_ptr_type ; typedef ats_ref_type ats_mpf_ptr_type ; /* ****** ****** */ // // [gmp_randstate_t] is // one-element array of [__gmp_randstate_struct] // typedef __gmp_randstate_struct ats_gmp_randstate_viewt0ype ; /* ****** ****** */ // // init/clear/realloc // #define atslib_mpz_init mpz_init #define atslib_mpz_init2 mpz_init2 #define atslib_mpz_clear mpz_clear #define atslib_mpz_realloc2 mpz_realloc2 /* ****** ****** */ // // HX: integral number operations // /* ****** ****** */ // // get functions // #define atslib_mpz_get_int mpz_get_si #define atslib_mpz_get_uint mpz_get_ui #define atslib_mpz_get_lint mpz_get_si #define atslib_mpz_get_ulint mpz_get_ui #define atslib_mpz_get_double mpz_get_d ATSinline() ats_ptr_type atslib_mpz_get_str ( ats_int_type base, ats_mpz_ptr_type x ) { return mpz_get_str((char*)0, base, (mpz_ptr)x) ; } // end of [atslib_mpz_get_str] // // set functions // #define atslib_mpz_set_mpz mpz_set #define atslib_mpz_set_int mpz_set_si #define atslib_mpz_set_uint mpz_set_ui #define atslib_mpz_set_lint mpz_set_si #define atslib_mpz_set_ulint mpz_set_ui #define atslib_mpz_set_double mpz_set_d #define atslib_mpz_set_mpq mpz_set_q #define atslib_mpz_set_mpf mpz_set_f #define atslib_mpz_set_str mpz_set_str ATSinline() ats_void_type atslib_mpz_set_str_exn ( ats_mpz_ptr_type x, ats_ptr_type s, ats_int_type base ) { int n ; n = mpz_set_str((mpz_ptr)x, (char*)s, base) ; if (n < 0) { atspre_exit_prerrf(1, "exit(ATS): [mpz_set_str(%s)]: failed\n", s) ; } // end of [if] return ; } // end of [atslib_mpz_set_str_exn] // // init and set functions // #define atslib_mpz_init_set_mpz mpz_init_set #define atslib_mpz_init_set_int mpz_init_set_si #define atslib_mpz_init_set_uint mpz_init_set_ui #define atslib_mpz_init_set_lint mpz_init_set_si #define atslib_mpz_init_set_ulint mpz_init_set_ui #define atslib_mpz_init_set_double mpz_init_set_d ATSinline() ats_void_type atslib_mpz_init_set_mpq (ats_mpz_ptr_type x, ats_mpq_ptr_type y) { mpz_init((mpz_ptr)x) ; mpz_set_q((mpz_ptr)x, (mpq_ptr)y); return ; } // end of [atslib_mpz_init_set_mpq] ATSinline() ats_void_type atslib_mpz_init_set_mpf (ats_mpz_ptr_type x, ats_mpf_ptr_type y) { mpz_init((mpz_ptr)x) ; mpz_set_f((mpz_ptr)x, (mpf_ptr)y); return ; } // end of [atslib_mpz_init_set_mpf] #define atslib_mpz_init_set_str mpz_init_set_str ATSinline() ats_void_type atslib_mpz_init_set_str_exn ( ats_mpz_ptr_type x, ats_ptr_type s, ats_int_type base ) { int err ; err = mpz_init_set_str((mpz_ptr)x, (char*)s, base) ; if (err < 0) { atspre_exit_prerrf(1, "exit(ATS): [mpz_init_set_str(%s)] failed\n", s) ; } // end of [if] return ; } // end of [atslib_mpz_init_set_str_exn] /* ****** ****** */ #define atslib_mpz_swap mpz_swap /* ****** ****** */ ATSinline() ats_bool_type atslib_mpz_odd_p (ats_ref_type x) { return mpz_odd_p((mpz_ptr)x) ? ats_true_bool : ats_false_bool ; } // end of [atslib_mpz_odd_p] ATSinline() ats_bool_type atslib_mpz_even_p (ats_ref_type x) { return mpz_even_p((mpz_ptr)x) ? ats_true_bool : ats_false_bool ; } // end of [atslib_mpz_even_p] #define atslib_mpz_fits_int_p mpz_fits_int_p #define atslib_mpz_fits_uint_p mpz_fits_uint_p #define atslib_mpz_fits_lint_p mpz_fits_long_p #define atslib_mpz_fits_ulint_p mpz_fits_ulong_p #define atslib_mpz_fits_sint_p mpz_fits_sshort_p #define atslib_mpz_fits_usint_p mpz_fits_ushort_p #define atslib_mpz_size mpz_size #define atslib_mpz_sizeinbase mpz_sizeinbase /* ****** ****** */ // // negation // #define atslib_mpz_neg2 mpz_neg ATSinline() ats_void_type atslib_mpz_neg1 (ats_mpz_ptr_type x) { mpz_neg((mpz_ptr)x, (mpz_ptr)x) ; return ; } // end of [atslib_mpz_neg1] // // absolute value // #define atslib_mpz_abs2 mpz_abs ATSinline() ats_void_type atslib_mpz_abs1 (ats_mpz_ptr_type x) { mpz_abs((mpz_ptr)x, (mpz_ptr)x) ; return ; } // end of [atslib_mpz_abs1] /* ****** ****** */ // // addition, subtraction and multiplcation // /* ****** ****** */ // // addition // #define atslib_mpz_add3_mpz mpz_add #define atslib_mpz_add3_int(x, y, z) \ atslib_mpz_add3_lint(x, y, (ats_lint_type)z) #define atslib_mpz_add3_uint mpz_add_ui ATSinline() ats_void_type atslib_mpz_add3_lint (ats_mpz_ptr_type x, ats_mpz_ptr_type y, ats_lint_type z) { if (z >= 0) { mpz_add_ui ((mpz_ptr)x, (mpz_ptr)y, (ulint)z) ; } else { mpz_sub_ui ((mpz_ptr)x, (mpz_ptr)y, (ulint)-z) ; } return ; } // end of [atslib_mpz_add3_lint] #define atslib_mpz_add3_ulint mpz_add_ui // ATSinline() ats_void_type atslib_mpz_add2_mpz ( ats_mpz_ptr_type x, ats_mpz_ptr_type y ) { mpz_add ((mpz_ptr)x, (mpz_ptr)x, (mpz_ptr)y) ; return ; } // end of [atslib_mpz_add2_mpz] ATSinline() ats_void_type atslib_mpz_add2_lint ( ats_mpz_ptr_type x, ats_lint_type y ) { if (y >= 0) { mpz_add_ui ((mpz_ptr)x, (mpz_ptr)x, (ulint)y) ; } else { mpz_sub_ui ((mpz_ptr)x, (mpz_ptr)x, (ulint)-y) ; } // end of [if] return ; } // end of [atslib_mpz_add2_lint] ATSinline() ats_void_type atslib_mpz_add2_ulint ( ats_mpz_ptr_type x, ats_ulint_type y ) { mpz_add_ui ((mpz_ptr)x, (mpz_ptr)x, y) ; return ; } // end of [atslib_mpz_add2_ulint] #define atslib_mpz_add2_int(x, y) atslib_mpz_add2_lint(x, (ats_lint_type)y) #define atslib_mpz_add2_uint(x, y) atslib_mpz_add2_lint(x, (ats_ulint_type)y) // // subtraction // #define atslib_mpz_sub3_mpz mpz_sub #define atslib_mpz_sub3_int(x, y, z) \ atslib_mpz_sub3_lint(x, y, (ats_lint_type)z) #define atslib_mpz_sub3_uint mpz_sub_ui ATSinline() ats_void_type atslib_mpz_sub3_lint ( ats_mpz_ptr_type x, ats_mpz_ptr_type y, ats_lint_type z ) { if (z >= 0) { mpz_sub_ui ((mpz_ptr)x, (mpz_ptr)y, (ulint)z) ; } else { mpz_add_ui ((mpz_ptr)x, (mpz_ptr)y, (ulint)-z) ; } return ; } // end of [atslib_mpz_sub3_lint] #define atslib_mpz_sub3_ulint mpz_sub_ui #define atslib_mpz_ui_sub3 mpz_ui_sub ATSinline() ats_void_type atslib_mpz_sub2_mpz ( ats_mpz_ptr_type x, ats_mpz_ptr_type y ) { mpz_sub ((mpz_ptr)x, (mpz_ptr)x, (mpz_ptr)y) ; return ; } // end of [atslib_mpz_sub2_mpz] ATSinline() ats_void_type atslib_mpz_sub2_lint ( ats_mpz_ptr_type x, ats_lint_type y ) { if (y >= 0) { mpz_sub_ui ((mpz_ptr)x, (mpz_ptr)x, y) ; } else { mpz_add_ui ((mpz_ptr)x, (mpz_ptr)x, -y) ; } return ; } // end of [atslib_mpz_sub2_lint] ATSinline() ats_void_type atslib_mpz_sub2_ulint ( ats_mpz_ptr_type x, ats_ulint_type y ) { mpz_sub_ui ((mpz_ptr)x, (mpz_ptr)x, y) ; return ; } // end of [atslib_mpz_sub2_ulint] #define atslib_mpz_sub2_int(x, y) atslib_mpz_sub2_lint(x, (ats_lint_type)y) #define atslib_mpz_sub2_uint(x, y) atslib_mpz_sub2_ulint(x, (ats_ulint_type)y) // // multiplication // #define atslib_mpz_mul3_mpz mpz_mul #define atslib_mpz_mul3_int mpz_mul_si #define atslib_mpz_mul3_uint mpz_mul_ui #define atslib_mpz_mul3_lint mpz_mul_si #define atslib_mpz_mul3_ulint mpz_mul_ui ATSinline() ats_void_type atslib_mpz_mul2_mpz ( ats_mpz_ptr_type x, ats_mpz_ptr_type y ) { mpz_mul ((mpz_ptr)x, (mpz_ptr)x, (mpz_ptr)y) ; return ; } // end of [atslib_mpz_mul2_mpz] ATSinline() ats_void_type atslib_mpz_mul2_lint ( ats_mpz_ptr_type x, ats_lint_type y ) { mpz_mul_si ((mpz_ptr)x, (mpz_ptr)x, y) ; return ; } // end of [atslib_mpz_mul2_lint] ATSinline() ats_void_type atslib_mpz_mul2_ulint ( ats_mpz_ptr_type x, ats_ulint_type y ) { mpz_mul_ui ((mpz_ptr)x, (mpz_ptr)x, y) ; return ; } // end of [atslib_mpz_mul2_ulint] #define atslib_mpz_mul2_int(x, y) atslib_mpz_mul2_lint (x, (ats_lint_type)y) #define atslib_mpz_mul2_uint(x, y) atslib_mpz_mul2_ulint (x, (ats_ulint_type)y) ATSinline() ats_void_type atslib_mpz_mul1_mpz (ats_mpz_ptr_type x) { mpz_mul ((mpz_ptr)x, (mpz_ptr)x, (mpz_ptr)x) ; return ; } // end of [atslib_mpz_mul1_mpz] ATSinline() ats_void_type atslib_mpz_mul_2exp ( // x = y * 2^n ats_mpz_ptr_type x, ats_mpz_ptr_type y, ats_ulint_type n ) { mpz_mul_2exp((mpz_ptr)x, (mpz_ptr)y, n) ; return ; } // end of [atslib_mpz_mul_2exp] /* ****** ****** */ // // truncate division // #define atslib_mpz_tdiv4_qr_mpz mpz_tdiv_qr #define atslib_mpz_tdiv4_qr_ulint mpz_tdiv_qr_ui #define atslib_mpz_tdiv3_q_mpz mpz_tdiv_q #define atslib_mpz_tdiv3_q_ulint mpz_tdiv_q_ui ATSinline() ats_void_type atslib_mpz_tdiv2_q_mpz ( ats_mpz_ptr_type x, ats_mpz_ptr_type d ) { mpz_tdiv_q ((mpz_ptr)x, (mpz_ptr)x, (mpz_ptr)d) ; return ; } // end of [atslib_mpz_tdiv2_q_mpz] ATSinline() ats_ulint_type atslib_mpz_tdiv2_q_ulint ( ats_mpz_ptr_type x, ats_ulint_type d ) { return mpz_tdiv_q_ui ((mpz_ptr)x, (mpz_ptr)x, d) ; } // end of [atslib_mpz_tdiv2_q_ulint] /* ****** ****** */ // // floor division // #define atslib_mpz_fdiv4_qr_mpz mpz_fdiv_qr #define atslib_mpz_fdiv4_qr_ulint mpz_fdiv_qr_ui #define atslib_mpz_fdiv3_q_mpz mpz_fdiv_q #define atslib_mpz_fdiv3_q_ulint mpz_fdiv_q_ui ATSinline() ats_void_type atslib_mpz_fdiv2_q_mpz ( ats_mpz_ptr_type x, ats_mpz_ptr_type d ) { mpz_fdiv_q ((mpz_ptr)x, (mpz_ptr)x, (mpz_ptr)d) ; return ; } // end of [atslib_mpz_fdiv2_q_mpz] ATSinline() ats_ulint_type atslib_mpz_fdiv2_q_ulint ( ats_mpz_ptr_type x, ats_ulint_type d ) { return mpz_fdiv_q_ui ((mpz_ptr)x, (mpz_ptr)x, d) ; } // end of [atslib_mpz_fdiv2_q_ulint] #define atslib_mpz_fdiv3_r_mpz mpz_fdiv_r #define atslib_mpz_fdiv3_r_ulint mpz_fdiv_r_ui ATSinline() ats_void_type atslib_mpz_fdiv2_r_mpz ( ats_mpz_ptr_type x, ats_mpz_ptr_type d ) { mpz_fdiv_r ((mpz_ptr)x, (mpz_ptr)x, (mpz_ptr)d) ; return ; } // end of [atslib_mpz_fdiv2_r_mpz] ATSinline() ats_ulint_type atslib_mpz_fdiv2_r_ulint ( ats_mpz_ptr_type x, ats_ulint_type d ) { return mpz_fdiv_r_ui ((mpz_ptr)x, (mpz_ptr)x, d) ; } // end of [atslib_mpz_fdiv2_r_ulint] /* ****** ****** */ #define atslib_mpz_divisible_p mpz_divisible_p #define atslib_mpz_divisible_ui_p mpz_divisible_ui_p #define atslib_mpz_congruent_p mpz_congruent_p #define atslib_mpz_congruent_ui_p mpz_congruent_ui_p /* ****** ****** */ #define atslib_mpz_mod3_mpz mpz_mod #define atslib_mpz_mod2_mpz(n, d) mpz_mod((mpz_ptr)n, (mpz_ptr)n, (mpz_ptr)d) #define atslib_mpz_mod3_ulint mpz_mod_ui #define atslib_mpz_mod2_ulint(n, d) mpz_mod_ui((mpz_ptr)n, (mpz_ptr)n, d) #define atslib_mpz_divexact3 mpz_divexact #define atslib_mpz_divexact2(n, d) mpz_divexact((mpz_ptr)n, (mpz_ptr)n, (mpz_ptr)d) #define atslib_tdiv3_q_2exp tdiv_q_2exp #define atslib_tdiv3_r_2exp tdiv_r_2exp #define atslib_fdiv3_q_2exp fdiv_q_2exp #define atslib_fdiv3_r_2exp fdiv_r_2exp #define atslib_mpz_divisible_ui_2exp_p mpz_divisible_ui_2exp_p #define atslib_mpz_congruent_ui_2exp_p mpz_congruent_ui_2exp_p /* ****** ****** */ #define atslib_mpz_sqrt2 mpz_sqrt ATSinline() ats_void_type atslib_mpz_sqrt1 (ats_ref_type dst) { mpz_sqrt ((mpz_ptr)dst, (mpz_ptr)dst) ; return ; } // end of [atslib_mpz_sqrt1] #define atslib_mpz_sqrtrem3 mpz_sqrtrem #define atslib_mpz_perfect_square_p mpz_perfect_square_p /* ****** ****** */ #define atslib_mpz_powm4_mpz mpz_powm #define atslib_mpz_powm4_ui mpz_powm_ui /* ****** ****** */ #define atslib_mpz_pow3_ui mpz_pow_ui ATSinline() ats_void_type atslib_mpz_pow2_ui ( ats_ref_type dst, ats_ulint_type src2 ) { mpz_pow_ui ((mpz_ptr)dst, (mpz_ptr)dst, src2) ; return ; } // end of [atslib_mpz_pow2_ui] /* ****** ****** */ // addmul and submul compibination #define atslib_mpz_addmul3_mpz mpz_addmul #define atslib_mpz_addmul3_uint mpz_addmul_ui #define atslib_mpz_addmul3_ulint mpz_addmul_ui #define atslib_mpz_submul3_mpz mpz_submul #define atslib_mpz_submul3_uint mpz_submul_ui #define atslib_mpz_submul3_ulint mpz_submul_ui /* ****** ****** */ // comparison functions #define atslib_mpz_cmp_mpz mpz_cmp #define atslib_mpz_cmp_lint(x, y) mpz_cmp_si((mpz_ptr)x, y) #define atslib_mpz_cmp_ulint(x, y) mpz_cmp_ui((mpz_ptr)x, y) #define atslib_mpz_cmp_int atslib_mpz_cmp_lint #define atslib_mpz_cmp_uint atslib_mpz_cmp_ulint ATSinline() ats_int_type atslib_mpz_cmp_double ( ats_ref_type x, ats_double_type y ) { return mpz_cmp_d((mpz_ptr)x, y) ; } // end of [atslib_mpz_cmp_double] #define atslib_mpz_cmpabs_mpz mpz_cmpabs #define atslib_mpz_cmpabs_uint mpz_cmpabs_ui #define atslib_mpz_cmpabs_ulint mpz_cmpabs_ui #define atslib_mpz_cmpabs_double mpz_cmpabs_d #define atslib_mpz_sgn mpz_sgn /* ****** ****** */ #define atslib_mpz_gcd3_mpz mpz_gcd #define atslib_mpz_gcd2_mpz(dst, src2) \ mpz_gcd((mpz_ptr)dst, (mpz_ptr)dst, (mpz_ptr)src2) #define atslib_mpz_gcd3_ui mpz_gcd_ui #define atslib_mpz_gcd2_ui(dst, src2) mpz_gcd_ui((mpz_ptr)dst, (mpz_ptr)dst, src2) #define atslib_mpz_gcdext mpz_gcdext #define atslib_mpz_lcm3_mpz mpz_lcm #define atslib_mpz_lcm2_mpz(dst, src2) \ mpz_lcm((mpz_ptr)dst, (mpz_ptr)dst, (mpz_ptr)src2) #define atslib_mpz_lcm3_ui mpz_lcm_ui #define atslib_mpz_lcm2_ui(dst, src2) mpz_lcm_ui((mpz_ptr)dst, (mpz_ptr)dst, src2) #define atslib_mpz_invert3 mpz_invert /* ****** ****** */ // // various number-theoretic functions // ATSinline() ats_void_type atslib_mpz_nextprime1 (ats_ref_type dst) { mpz_nextprime((mpz_ptr)dst, (mpz_ptr)dst); return ; } // end of [atslib_mpz_nextprime1] #define atslib_mpz_nextprime2 mpz_nextprime #define atslib_mpz_jacobi mpz_jacobi #define atslib_mpz_legendre mpz_legendre #define atslib_mpz_kronecker_mpz mpz_kronecker #define atslib_mpz_kronecker_si mpz_kronecker_si #define atslib_mpz_kronecker_ui mpz_kronecker_ui #define atslib_mpz_si_kronecker mpz_si_kronecker #define atslib_mpz_ui_kronecker mpz_ui_kronecker #define atslib_mpz_fac_ui mpz_fac_ui #define atslib_mpz_bin3_ui mpz_bin_ui #define atslib_mpz_bin2_ui(n, k) \ mpz_bin_ui ((mpz_ptr)n, (mpz_ptr)n, (mpz_ptr)k) #define atslib_mpz_bin_uiui mpz_bin_uiui #define atslib_mpz_fib_ui mpz_fib_ui #define atslib_mpz_fib2_ui mpz_fib2_ui #define atslib_mpz_remove3 mpz_remove ATSinline() ats_void_type atslib_mpz_remove2 ( ats_ptr_type dst, ats_ptr_type src2 ) { mpz_remove ((mpz_ptr)dst, (mpz_ptr)dst, (mpz_ptr)src2); return ; } // end of [atslib_mpz_remove2] /* ****** ****** */ // // some MPZ input/output/print functions // #define atslib_mpz_inp_str mpz_inp_str #define atslib_mpz_out_str mpz_out_str extern ats_void_type atslib_mpz_out_str_exn ( ats_ptr_type, ats_int_type, ats_mpf_ptr_type ) ; // end of [extern] ATSinline() ats_void_type atslib_fprint_mpz ( ats_ptr_type file, const ats_mpz_ptr_type x ) { atslib_mpz_out_str_exn (file, 10/*base*/, x) ; return ; } // end of [atslib_fprint_mpz] #define atslib_mpz_inp_raw mpz_inp_raw #define atslib_mpz_out_raw mpz_out_raw /* ****** ****** */ // // // HX: rational number operations // // /* ****** ****** */ #define atslib_mpq_canonicalize mpq_canonicalize #define atslib_mpq_init mpq_init #define atslib_mpq_clear mpq_clear #define atslib_mpq_get_d mpq_get_d ATSinline() ats_ptr_type atslib_mpq_get_str ( ats_int_type base, ats_mpq_ptr_type x ) { return mpq_get_str((char*)0, base, (mpq_ptr)x) ; } // end of [atslib_mpq_get_str] #define atslib_mpq_get_num mpq_get_num #define atslib_mpq_get_den mpq_get_den ATSinline() ats_ptr_type atslib_mpq_numref (ats_ptr_type x) { return mpq_numref ((mpq_ptr)x) ; } // end of [atslib_mpq_numref] ATSinline() ats_ptr_type atslib_mpq_denref (ats_ptr_type x) { return mpq_denref ((mpq_ptr)x) ; } // end of [atslib_mpq_denref] #define atslib_mpq_set_mpq mpq_set #define atslib_mpq_set_mpz mpq_set_z #define atslib_mpq_set_si mpq_set_si #define atslib_mpq_set_ui mpq_set_ui #define atslib_mpq_set_d mpq_set_d #define atslib_mpq_set_mpf mpq_set_f #define atslib_mpq_set_num mpq_set_num #define atslib_mpq_set_den mpq_set_den /* ****** ****** */ #define atslib_mpq_neg2 mpq_neg ATSinline() ats_void_type atslib_mpq_neg1 (ats_mpq_ptr_type x) { mpq_neg((mpq_ptr)x, (mpq_ptr)x) ; return ; } // end of [atslib_mpq_neg1] /* ****** ****** */ #define atslib_mpq_inv2 mpq_inv ATSinline() ats_void_type atslib_mpq_inv1 (ats_mpq_ptr_type x) { mpq_inv((mpq_ptr)x, (mpq_ptr)x) ; return ; } // end of [atslib_mpq_inv1] /* ****** ****** */ #define atslib_mpq_add3_mpq mpq_add ATSinline() ats_void_type atslib_mpq_add2_mpq ( ats_ref_type dst, ats_ref_type src2 ) { mpq_add ((mpq_ptr)dst, (mpq_ptr) dst, (mpq_ptr)src2); return ; } // end of [atslib_mpq_add2_mpq] #define atslib_mpq_sub3_mpq mpq_sub ATSinline() ats_void_type atslib_mpq_sub2_mpq ( ats_ref_type dst, ats_ref_type src2 ) { mpq_sub ((mpq_ptr)dst, (mpq_ptr) dst, (mpq_ptr)src2); return ; } // end of [atslib_mpq_sub2_mpq] #define atslib_mpq_mul3_mpq mpq_mul ATSinline() ats_void_type atslib_mpq_mul2_mpq ( ats_ref_type dst, ats_ref_type src2 ) { mpq_mul ((mpq_ptr)dst, (mpq_ptr) dst, (mpq_ptr)src2); return ; } // end of [atslib_mpq_mul2_mpq] #define atslib_mpq_div3_mpq mpq_div ATSinline() ats_void_type atslib_mpq_div2_mpq ( ats_ref_type dst, ats_ref_type src2 ) { mpq_div ((mpq_ptr)dst, (mpq_ptr) dst, (mpq_ptr)src2); return ; } // end of [atslib_mpq_div2_mpq] /* ****** ****** */ #define atslib_mpq_equal mpq_equal #define atslib_mpq_cmp_mpq mpq_cmp #define atslib_mpq_cmp_ui mpq_cmp_ui #define atslib_mpq_sgn mpq_sgn /* ****** ****** */ // // some MPQ input/output/print functions // #define atslib_mpq_inp_str mpq_inp_str #define atslib_mpq_out_str mpq_out_str extern ats_void_type atslib_mpq_out_str_exn ( ats_ptr_type, ats_int_type, ats_mpf_ptr_type ) ; // end of [extern] ATSinline() ats_void_type atslib_fprint_mpq ( ats_ptr_type file, const ats_mpq_ptr_type x ) { atslib_mpq_out_str_exn (file, 10/*base*/, x) ; return ; } // end of [atslib_fprint_mpq] /* ****** ****** */ // // // HX: floating number operations // // /* ****** ****** */ #define atslib_mpf_get_default_prec mpf_get_default_prec #define atslib_mpf_set_default_prec mpf_set_default_prec /* ****** ****** */ #define atslib_mpf_init mpf_init #define atslib_mpf_init2 mpf_init2 #define atslib_mpf_clear mpf_clear #define atslib_mpf_get_prec mpf_get_prec #define atslib_mpf_set_prec mpf_set_prec #define atslib_mpf_set_prec_raw mpf_set_prec_raw #define atslib_mpf_get_d mpf_get_d #define atslib_mpf_get_d_2exp mpf_get_d_2exp #define atslib_mpf_get_si mpf_get_si #define atslib_mpf_get_ui mpf_get_ui ATSinline() ats_ptr_type atslib_mpf_get_str ( ats_ptr_type exp , ats_int_type base, ats_size_type ndigit , ats_mpf_ptr_type x ) { return mpf_get_str((char*)0, (mp_exp_t*)exp, base, ndigit, (mpf_ptr)x) ; } // end of [atslib_mpf_get_str] /* ****** ****** */ #define atslib_mpf_set_mpf mpf_set #define atslib_mpf_set_si mpf_set_si #define atslib_mpf_set_ui mpf_set_ui #define atslib_mpf_set_mpz mpf_set_z #define atslib_mpf_set_mpq mpf_set_q #define atslib_mpf_set_d mpf_set_d #define atslib_mpf_set_str mpf_set_str ATSinline() ats_void_type atslib_mpf_set_str_exn ( ats_mpf_ptr_type x, ats_ptr_type s, ats_int_type base ) { int n ; n = mpf_set_str((mpf_ptr)x, (char*)s, base) ; if (n < 0) { atspre_exit_prerrf(1, "exit(ATS): [mpf_set_str(%s)]: failed\n", s) ; } // end of [if] return ; } // end of [atslib_mpf_set_str_exn] /* ****** ****** */ #define atslib_mpf_init_set_mpf mpf_init_set #define atslib_mpf_init_set_d mpf_init_set_d #define atslib_mpf_init_set_si mpf_init_set_si #define atslib_mpf_init_set_ui mpf_init_set_ui #define atslib_mpf_init_set_str mpf_init_set_str #define atslib_mpf_swap mpf_swap /* ****** ****** */ #define atslib_mpf_ceil mpf_ceil #define atslib_mpf_floor mpf_floor #define atslib_mpf_trunc mpf_trunc #define atslib_mpf_integer_p mpf_integer_p #define atslib_mpf_int_p mpf_int_p #define atslib_mpf_uint_p mpf_uint_p #define atslib_mpf_lint_p mpf_slong_p #define atslib_mpf_ulint_p mpf_ulong_p #define atslib_mpf_sint_p mpf_sshort_p #define atslib_mpf_usint_p mpf_ushort_p #define atslib_mpf_fits_int_p mpf_fits_int_p #define atslib_mpf_fits_uint_p mpf_fits_uint_p #define atslib_mpf_fits_lint_p mpf_fits_long_p #define atslib_mpf_fits_ulint_p mpf_fits_ulong_p #define atslib_mpf_fits_sint_p mpf_fits_sshort_p #define atslib_mpf_fits_usint_p mpf_fits_ushort_p /* ****** ****** */ #define abslib_mpf_neg2 mpf_neg2 ATSinline() ats_void_type atslib_mpf_neg1 (ats_ref_type x) { mpf_neg ((mpf_ptr)x, (mpf_ptr)x) ; return ; } // end of [atslib_mpf_neg1] #define abslib_mpf_abs2 mpf_abs2 ATSinline() ats_void_type atslib_mpf_abs1 (ats_ref_type x) { mpf_abs ((mpf_ptr) x, (mpf_ptr) x) ; return ; } // end of [atslib_mpf_abs1] /* ****** ****** */ #define atslib_mpf_add3_mpf mpf_add #define atslib_mpf_add3_mpf_ui mpf_add_ui ATSinline() ats_void_type atslib_mpf_add2_mpf ( ats_ref_type dst, ats_ref_type src2 ) { mpf_add ((mpf_ptr)dst, (mpf_ptr) dst, (mpf_ptr)src2); return ; } // end of [atslib_mpf_add2_mpf] ATSinline() ats_void_type atslib_mpf_add2_ui ( ats_ref_type dst, ats_ulint_type src2 ) { mpf_add_ui ((mpf_ptr)dst, (mpf_ptr)dst, src2) ; return ; } // end of [atslib_mpf_add2_ui] /* ****** ****** */ #define atslib_mpf_sub3_mpf mpf_sub #define atslib_mpf_sub3_ui mpf_sub_ui #define atslib_mpf_ui_sub3 mpf_ui_sub ATSinline() ats_void_type atslib_mpf_sub2_mpf ( ats_ref_type dst, ats_ref_type src2 ) { mpf_sub ((mpf_ptr) dst, (mpf_ptr) dst, (mpf_ptr) src2) ; return ; } // end of [atslib_mpf_sub2_mpf] ATSinline() ats_void_type atslib_mpf_sub2_ui ( ats_ref_type dst, ats_ulint_type src2 ) { mpf_sub_ui ((mpf_ptr)dst, (mpf_ptr)dst, src2) ; return ; } // end of [atslib_mpf_sub2_ui] ATSinline() ats_void_type atslib_mpf_ui_sub2 ( ats_ref_type dst, ats_ulint_type src1 ) { mpf_ui_sub ((mpf_ptr)dst, src1, (mpf_ptr)dst) ; return ; } // end of [atslib_mpf_ui_sub2] /* ****** ****** */ #define atslib_mpf_mul3_mpf mpf_mul #define atslib_mpf_mul3_ui mpf_mul_ui ATSinline() ats_void_type atslib_mpf_mul2_mpf ( ats_ref_type dst, ats_ref_type src2 ) { mpf_mul ((mpf_ptr)dst, (mpf_ptr)dst, (mpf_ptr)src2) ; return ; } // end of [atslib_mpf_mul2_mpf] ATSinline() ats_void_type atslib_mpf_mul2_ui ( ats_ref_type dst, ats_ulint_type src2 ) { mpf_mul_ui ((mpf_ptr)dst, (mpf_ptr)dst, src2) ; return ; } // end of [atslib_mpf_mul2_ui] /* ****** ****** */ #define atslib_mpf_div3_mpf mpf_div #define atslib_mpf_div3_ui mpf_div_ui #define atslib_mpf_ui_div3 mpf_ui_div ATSinline() ats_void_type atslib_mpf_div2_mpf (ats_ref_type dst, ats_ref_type src2) { mpf_div ((mpf_ptr)dst, (mpf_ptr)dst, (mpf_ptr)src2) ; return ; } // end of [atslib_mpf_div2_mpf] ATSinline() ats_void_type atslib_mpf_div2_ui ( ats_ref_type dst, ats_ulint_type src2 ) { mpf_div_ui ((mpf_ptr)dst, (mpf_ptr)dst, src2) ; return ; } // end of [atslib_mpf_div2_ui] ATSinline() ats_void_type atslib_mpf_ui_div2 ( ats_ref_type dst, ats_ulint_type src1 ) { mpf_ui_div ((mpf_ptr)dst, src1, (mpf_ptr)dst) ; return ; } // end of [atslib_mpf_ui_div2] /* ****** ****** */ #define atslib_mpf_sqrt2_mpf mpf_sqrt #define atslib_mpf_sqrt2_ui mpf_sqrt_ui ATSinline() ats_void_type atslib_mpf_sqrt1_mpf (ats_ref_type dst) { mpf_sqrt ((mpf_ptr)dst, (mpf_ptr)dst) ; return ; } // end of [atslib_mpf_sqrt1] /* ****** ****** */ #define atslib_mpf_pow3_ui mpf_pow_ui ATSinline() ats_void_type atslib_mpf_pow2_ui ( ats_ref_type dst, ats_ulint_type src2 ) { mpf_pow_ui ((mpf_ptr)dst, (mpf_ptr)dst, src2) ; return ; } // end of [atslib_mpf_pow2_ui] /* ****** ****** */ #define atslib_mpf_mul3_2exp mpf_mul_2exp ATSinline() ats_void_type atslib_mpf_mul2_2exp ( ats_ref_type dst, ats_ulint_type src2 ) { mpf_mul_2exp ((mpf_ptr)dst, (mpf_ptr)dst, src2) ; return ; } // end of [atslib_mpf_mul2_2exp] /* ****** ****** */ #define atslib_mpf_div3_2exp mpf_div_2exp ATSinline() ats_void_type atslib_mpf_div2_2exp ( ats_ref_type dst, ats_ulint_type src2 ) { mpf_div_2exp ((mpf_ptr)dst, (mpf_ptr)dst, src2) ; return ; } // end of [atslib_mpf_div2_2exp] /* ****** ****** */ #define atslib_mpf_eq mpf_eq #define atslib_mpf_cmp_mpf mpf_cmp #define atslib_mpf_cmp_si mpf_cmp_si #define atslib_mpf_cmp_ui mpf_cmp_ui #define atslib_mpf_cmp_d mpf_cmp_d #define atslib_mpf_sgn mpf_sgn /* ****** ****** */ #define atslib_mpf_reldiff mpf_reldiff /* ****** ****** */ // // HX: input/output/print functions // #define atslib_mpf_out_str mpf_out_str #define atslib_mpf_inp_str mpf_inp_str extern ats_void_type atslib_mpf_out_str_exn ( ats_ptr_type, ats_int_type, ats_size_type, ats_mpf_ptr_type ) ; // end of [extern] ATSinline() ats_void_type atslib_fprint_mpf ( ats_ptr_type file, ats_mpf_ptr_type x, ats_size_type ndigit ) { atslib_mpf_out_str_exn (file, 10/*base*/, ndigit, x) ; return ; } // end of [atslib_fprint_mpf] ATSinline() ats_void_type atslib_print_mpf ( const ats_mpf_ptr_type x, ats_size_type ndigit ) { atslib_mpf_out_str_exn (stdout, 10/*base*/, ndigit, x) ; return ; } // end of [atslib_print_mpf] ATSinline() ats_void_type atslib_prerr_mpf ( const ats_mpf_ptr_type x, ats_size_type ndigit ) { atslib_mpf_out_str_exn (stderr, 10/*base*/, ndigit, x) ; return ; } // end of [atslib_prerr_mpf] /* ****** ****** */ // // random number generators for MPZ, MPQ and MPF // #define atslib_gmp_randclear gmp_randclear #define atslib_gmp_randinit_default gmp_randinit_default #define atslib_gmp_randinit_lc_2exp gmp_randinit_lc_2exp #define atslib_gmp_randinit_lc_2exp_size gmp_randinit_lc_2exp_size // #define atslib_gmp_randseed_mpz gmp_randseed #define atslib_gmp_randseed_ui gmp_randseed_ui // #define atslib_mpz_urandomb mpz_urandomb #define atslib_mpz_urandomm mpz_urandomm #define atslib_mpz_rrandomb mpz_rrandomb #define atslib_mpz_random mpz_random #define atslib_mpz_random2 mpz_random2 // #define atslib_mpf_random2 mpf_random2 #define atslib_mpf_urandomb mpf_urandomb /* ****** ****** */ #endif /* ATS_LIBC_GMP_CATS */ /* end of [gmp.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/string.cats0000644000175000017500000000530013431250607022142 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_STRING_CATS #define ATS_LIBC_STRING_CATS /* ****** ****** */ #include /* ****** ****** */ #define atslib_strcmp strcmp ATSinline() ats_int_type atslib_substrcmp ( ats_ptr_type str1, ats_size_type i1 , ats_ptr_type str2, ats_size_type i2 ) { return strcmp((char*)str1+i1, (char*)str2+i2) ; } /* end of [atslib_substrcmp] */ /* ****** ****** */ #define atslib_strncmp strncmp ATSinline() ats_int_type atslib_substrncmp ( ats_ptr_type str1, ats_size_type i1 , ats_ptr_type str2, ats_size_type i2 , ats_size_type n) { return strncmp(((char*)str1)+i1, ((char*)str2)+i2, n) ; } // end of [atslib_substrncmp] /* ****** ****** */ #define atslib_strlen strlen /* ****** ****** */ #define atslib_strchr strchr #define atslib_strrchr strrchr #define atslib_strstr strstr /* ****** ****** */ #define atslib_strspn strspn #define atslib_strcspn strcspn /* ****** ****** */ #define atslib_strcpy strcpy #define atslib_strcat strcat #define atslib_strncat strncat // HX: no interface in ATS /* ****** ****** */ #define atslib_strpbrk strpbrk /* ****** ****** */ #define atslib_memchr memchr #define atslib_memcmp memcmp #define atslib_memcpy memcpy #define atslib_memset memset /* ****** ****** */ #define atslib_strerror strerror #define atslib_strerror_r strerror_r /* ****** ****** */ #endif /* ATS_LIBC_STRING_CATS */ /* end of [string.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/fcntl.cats0000644000175000017500000001275013431250607021751 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_FCNTL_CATS #define ATS_LIBC_FCNTL_CATS /* ****** ****** */ #include #include /* ****** ****** */ #include "libc/sys/CATS/types.cats" /* ****** ****** */ // // HX: functions declared in [unistd.h] // extern ssize_t read (int fd, void *buf, size_t cnt) ; extern ssize_t write (int fd, const void *buf, size_t cnt) ; /* ****** ****** */ // // HX: implemented in [prelude/DATS/basics.dats] // extern ats_void_type ats_exit_errmsg(ats_int_type n, ats_ptr_type msg) ; /* ****** ****** */ typedef ats_int_type ats_fcntlflag_type ; /* ****** ****** */ ATSinline() ats_int_type atslib_lnot_disjflag (ats_fcntlflag_type df) { return (~df) ; } // end of [atslib_lnot_disjflag] ATSinline() ats_int_type atslib_lor_flag_disjflag ( ats_fcntlflag_type f, ats_fcntlflag_type df ) { return (f | df) ; } // end of [atslib_lor_flag_disjflag] ATSinline() ats_int_type atslib_land_flag_conjflag ( ats_fcntlflag_type f, ats_fcntlflag_type cf ) { return (f & cf) ; } // end of [atslib_land_flag_conjflag] /* ****** ****** */ ATSinline() ats_int_type atslib_open_flag_err ( ats_ptr_type path, ats_fcntlflag_type flag ) { return open((char*)path, flag) ; } // end of [atslib_open_flag_err] ATSinline() ats_int_type atslib_open_flag_mode_err ( ats_ptr_type path , ats_fcntlflag_type flag , ats_mode_type mode ) { return open((char*)path, flag, mode) ; } // end of [atslib_open_flag_mode_err] /* ****** ****** */ ATSinline() ats_int_type atslib_open_flag_exn (ats_ptr_type path, ats_fcntlflag_type flag) { int fd = open((char*)path, flag) ; if (fd < 0) { perror ("open") ; ats_exit_errmsg(1, "exit(ATS): [open_flag] failed.\n") ; } // end of [if] return fd ; } // end of [atslib_open_flag_exn] ATSinline() ats_int_type atslib_open_flag_mode_exn ( ats_ptr_type path , ats_fcntlflag_type flag , ats_mode_type mode ) { int fd = open((char*)path, flag, mode) ; if (fd < 0) { perror ("open") ; ats_exit_errmsg(1, "exit(ATS): [open_flag_mode] failed.\n") ; } // end of [if] return fd ; } // end of [atslib_open_flag_mode_exn] /* ****** ****** */ ATSinline() ats_int_type atslib_close_err (ats_int_type fd) { return close(fd) ; } /* ****** ****** */ ATSinline() ats_ssize_type atslib_fildes_read_err (ats_int_type fd, ats_ptr_type buf, ats_size_type cnt) { return read(fd, buf, cnt) ; } // end of [atslib_fildes_read_err] ATSinline() ats_size_type atslib_fildes_read_exn (ats_int_type fd, ats_ptr_type buf, ats_size_type cnt) { ats_ssize_type res ; res = read(fd, buf, cnt) ; if (res < 0) { perror("read") ; ats_exit_errmsg(1, "exit(ATS): [fildes_read] failed.\n") ; } // end of [if] return res ; } // end of [atslib_fildes_read_exn] /* ****** ****** */ ATSinline() ats_ssize_type atslib_fildes_write_err (ats_int_type fd, ats_ptr_type buf, ats_size_type cnt) { return write(fd, buf, cnt) ; } // end of [atslib_fildes_write_err] ATSinline() ats_size_type atslib_fildes_write_exn (ats_int_type fd, ats_ptr_type buf, ats_size_type cnt) { ats_ssize_type res ; res = write(fd, buf, cnt) ; if (res < 0) { perror("write") ; ats_exit_errmsg(1, "exit(ATS): [fildes_write] failed.\n") ; } // end of [if] return res ; } // end of [atslib_fildes_write_exn] /* ****** ****** */ ATSinline() ats_ssize_type atslib_fildes_write_substring_err ( ats_int_type fd, ats_ptr_type str, ats_size_type start, ats_size_type n ) { return write(fd, ((char*)str)+start, n) ; } // end of [atslib_fildes_write_substring_err] ATSinline() ats_size_type atslib_fildes_write_substring_exn ( ats_int_type fd, ats_ptr_type str, ats_size_type start, ats_size_type n ) { ats_ssize_type res ; res = write(fd, ((char*)str)+start, n) ; if (res < 0) { perror("write") ; ats_exit_errmsg(1, "exit(ATS): [fildes_write] failed.\n") ; } // end of [if] return res ; } // end of [ats_fildes_write_substring_exn] /* ****** ****** */ ATSinline() ats_fcntlflag_type atslib_fcntl_getfl (ats_int_type fd) { return fcntl(fd, F_GETFL) ; } ATSinline() ats_int_type atslib_fcntl_setfl ( ats_int_type fd, ats_fcntlflag_type flag ) { return fcntl(fd, F_SETFL, flag) ; } // end of [atslib_fcntl_setfl] /* ****** ****** */ #endif /* ATS_LIBC_FCNTL_CATS */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/stdio.cats0000644000175000017500000003103613431250607021763 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_STDIO_CATS #define ATS_LIBC_STDIO_CATS /* ****** ****** */ #include #include /* ****** ****** */ #include "ats_types.h" typedef fpos_t ats_fpos_type ; typedef FILE ats_FILE_viewtype ; /* --------------------------------------- */ // // HX: implemented in [prelude/DATS/basics.dats] // extern ats_void_type ats_exit_errmsg(ats_int_type n, ats_ptr_type msg) ; // // HX: implemented in [prelude/CATS/printf.cats] // extern ats_void_type atspre_exit_prerrf(ats_int_type code, ats_ptr_type fmt, ...) ; /* --------------------------------------- */ extern ats_void_type atspre_stdin_view_get() ; extern ats_void_type atspre_stdout_view_get() ; extern ats_void_type atspre_stderr_view_get() ; extern ats_void_type atspre_stdin_view_set() ; extern ats_void_type atspre_stdout_view_set() ; extern ats_void_type atspre_stderr_view_set() ; /* --------------------------------------- */ ATSinline() ats_void_type atslib_clearerr (ats_ptr_type fil) { clearerr ((FILE*)fil) ; return ; } /* --------------------------------------- */ #define atslib_fclose_err fclose ATSinline() ats_void_type atslib_fclose_exn(ats_ptr_type fil) { int err = fclose((FILE*)fil) ; if (err < 0) { perror ("fclose") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [fclose] failed\n") ; } // end of [if] return ; } ATSinline() ats_void_type atslib_fclose_stdin() { atspre_stdin_view_get() ; atslib_fclose_exn(stdin) ; return ; } ATSinline() ats_void_type atslib_fclose_stdout() { atspre_stdout_view_get() ; atslib_fclose_exn(stdout) ; return ; } ATSinline() ats_void_type atslib_fclose_stderr() { atspre_stderr_view_get() ; atslib_fclose_exn(stderr) ; return ; } /* ****** ****** */ /* #define atslib_feof feof // HX: cgwin defines [feof] as a macro */ ATSinline() ats_int_type atslib_feof(ats_ref_type filp) { return feof((FILE*)filp) ; } /* ****** ****** */ /* #define atslib_ferror ferror */ ATSinline() ats_int_type atslib_ferror(ats_ref_type filp) { return ferror((FILE*)filp) ; } /* ****** ****** */ #define atslib_fflush_err fflush ATSinline() ats_void_type atslib_fflush_exn( ats_ptr_type fil ) { int err = fflush((FILE*)fil) ; if (err < 0) { perror ("fflush") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [fflush] failed\n") ; } // end of [if] return ; } /* end of [atslib_fflush_exn] */ ATSinline() ats_void_type atslib_fflush_stdout (void) { atspre_stdout_view_get (); atslib_fflush_exn (stdout); atspre_stdout_view_set () ; return ; } /* end of [atslib_fflush_stdout] */ /* --------------------------------------- */ #define atslib_fgetc_err fgetc ATSinline() ats_int_type atslib_getchar () { int i ; atspre_stdin_view_get (); i = getchar (); atspre_stdin_view_set () ; return i ; } /* end of [atslib_getchar] */ /* --------------------------------------- */ #define atslib_fgets_err fgets ATSinline() ats_void_type atslib_fgets_exn ( ats_ptr_type buf , ats_int_type n , ats_ptr_type fil ) { ats_ptr_type p ; p = fgets((char*)buf, (int)n, (FILE*)fil) ; if (!p) { if (feof((FILE*)fil)) { *(char*)buf = '\000' ; // EOF is reached } else { perror ("fgets") ; ats_exit_errmsg(1, (ats_ptr_type)"exit(ATS): [fgets] failed\n") ; } // end of [if] } /* end of [if] */ return ; } /* end of [atslib_fgets_exn] */ /* --------------------------------------- */ #define atslib_fgetpos fgetpos /* --------------------------------------- */ #define atslib_fileno fileno /* --------------------------------------- */ #define atslib_fopen_err fopen ATSinline() ats_ptr_type atslib_fopen_exn ( ats_ptr_type name, ats_ptr_type mode ) { FILE *fil = fopen((char*)name, (char*)mode) ; if (!fil) { perror ("fopen") ; atspre_exit_prerrf (1, "exit(ATS): [fopen(\"%s\", \"%s\")] failed\n", name, mode) ; } // end of [if] return fil ; } /* atslib_fopen_exn */ /* --------------------------------------- */ #define atslib_fputc_err fputc ATSinline() ats_void_type atslib_fputc_exn ( ats_char_type c, ats_ptr_type fil ) { int n = fputc((unsigned char)c, (FILE*)fil) ; if (n < 0) { perror ("fputc") ; atspre_exit_prerrf (1, "exit(ATS): [fputc(%c)] failed\n", c) ; } return ; } // end of [atslib_fputc_exn] /* --------------------------------------- */ #define atslib_fputs_err fputs ATSinline() ats_void_type atslib_fputs_exn( ats_ptr_type s, ats_ptr_type fil ) { int n = fputs ((char*)s, (FILE*)fil) ; if (n < 0) { perror ("fputs") ; atspre_exit_prerrf (1, "exit(ATS): [fputs(%s)] failed\n", s) ; } return ; } // end of [atslib_fputs_exn] /* --------------------------------------- */ #define atslib_fread fread ATSinline() ats_size_type atslib_fread_byte ( ats_ptr_type buf , ats_size_type n , ats_ptr_type fil ) { return fread ((void*)buf, 1, n, (FILE*)fil) ; } // end of [atslib_fread_byte] ATSinline() ats_void_type atslib_fread_byte_exn ( ats_ptr_type buf , ats_size_type ntotal , ats_ptr_type fil ) { int nread ; nread = fread ((void*)buf, 1, ntotal, (FILE*)fil) ; if (nread < ntotal) { perror ("fread") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [fread] failed\n") ; } return ; } // end of [atslib_fread_byte_exn] /* --------------------------------------- */ #define atslib_freopen_err freopen ATSinline() ats_void_type atslib_freopen_exn( ats_ptr_type name , ats_ptr_type mode , ats_ptr_type fil ) { FILE *fil_new = freopen(name, mode, (FILE*)fil) ; if (!fil_new) { perror ("freopen") ; atspre_exit_prerrf ( 1, "exit(ATS): [freopen(\"%s\", \"%s\")] failed\n", name, mode ) ; } return ; } // end of [atslib_freopen_exn] /* --------------------------------------- */ ATSinline() ats_void_type atslib_freopen_stdin (ats_ptr_type name) { FILE *fil_new ; atspre_stdin_view_get() ; fil_new = freopen(name, "r", stdin) ; if (!fil_new) { perror ("freopen") ; atspre_exit_prerrf ( 1, "exit(ATS): [freopen_stdin(\"%s\")] failed\n", name ) ; } atspre_stdin_view_set() ; return ; } // end of [atslib_freopen_stdin] ATSinline() ats_void_type atslib_freopen_stdout (ats_ptr_type name) { FILE *fil_new ; atspre_stdout_view_get () ; fil_new = freopen(name, "w", stdout) ; if (!fil_new) { perror ("freopen") ; atspre_exit_prerrf ( 1, "exit(ATS): [freopen_stdout(\"%s\")] failed\n", name ) ; } atspre_stdout_view_set () ; return ; } // end of [atslib_freopen_stdout] ATSinline() ats_void_type atslib_freopen_stderr (ats_ptr_type name) { FILE *fil_new ; atspre_stderr_view_get() ; fil_new = freopen(name, "w", stderr) ; if (!fil_new) { perror ("freopen") ; atspre_exit_prerrf ( 1, "exit(ATS): [freopen_stderr(\"%s\")] failed\n", name ) ; } atspre_stderr_view_set() ; return ; } // end of [atslib_freopen_stderr] /* --------------------------------------- */ #define atslib_fseek_err fseek ATSinline() ats_void_type atslib_fseek_exn ( ats_ptr_type fil , ats_lint_type offset , ats_int_type whence ) { int err ; err = fseek ((FILE*)fil, offset, whence) ; if (err < 0) { perror ("fseek") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [fseek] failed\n") ; } return ; } // end of [atslib_fseek_exn] /* --------------------------------------- */ #define atslib_ftell_err ftell ATSinline() ats_lint_type atslib_ftell_exn( ats_ptr_type fil ) { long int ret = ftell((FILE*)fil) ; if (ret < 0) { perror ("ftell") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [ftell] failed\n") ; } return ret ; } // end of [atslib_ftell_exn] /* --------------------------------------- */ #define atslib_fwrite fwrite ATSinline() ats_size_type atslib_fwrite_byte ( ats_ptr_type buf , ats_size_type n , ats_ptr_type fil ) { return fwrite((void*)buf, 1, n, (FILE*)fil) ; } /* end of [atslib_fwrite_byte] */ ATSinline() ats_void_type atslib_fwrite_byte_exn ( ats_ptr_type buf0 , ats_size_type ntotal , ats_ptr_type fil ) { char *buf = (char*) buf0 ; size_t nwritten ; nwritten = fwrite((void*)buf, 1, ntotal, (FILE*)fil) ; if (nwritten < ntotal) { perror ("fwrite") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [fwrite] failed\n") ; } return ; } /* end of [atslib_fwrite_all_byte] */ /* --------------------------------------- */ ATSinline() ats_void_type atslib_perror( ats_ptr_type msg ) { atspre_stderr_view_get () ; perror ((char*)msg) ; atspre_stderr_view_set () ; return ; } // end of [atslib_perror] /* --------------------------------------- */ ATSinline() ats_int_type atslib_putchar( ats_char_type c ) { int i ; atspre_stdout_view_get () ; i = putchar((unsigned char)c) ; atspre_stdout_view_set () ; return i ; } /* end of [atslib_putchar] */ /* --------------------------------------- */ ATSinline() ats_int_type atslib_puts_err( ats_ptr_type str ) { int err ; atspre_stdout_view_get () ; err = puts ((char*)str) ; atspre_stdout_view_set () ; return err ; } /* end of [atslib_puts_err] */ ATSinline() ats_void_type atslib_puts_exn( ats_ptr_type str ) { int err ; atspre_stdout_view_get () ; err = puts ((char*)str) ; atspre_stdout_view_set () ; if (err < 0) { perror ("puts") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [remove] failed\n") ; } /* end of [if] */ return ; } /* end of [atslib_puts_exn] */ /* --------------------------------------- */ #define atslib_remove_err remove ATSinline() ats_void_type atslib_remove_exn( ats_ptr_type path ) { int err = remove((char*)path) ; if (err < 0) { perror ("remove") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [remove] failed\n") ; } return ; } // end of [atslib_remove_exn] /* --------------------------------------- */ #define atslib_rename_err rename ATSinline() ats_void_type atslib_rename_exn( ats_ptr_type oldpath, ats_ptr_type newpath ) { int err = rename((char*)oldpath, (char*)newpath) ; if (err < 0) { perror ("rename") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [rename] failed\n") ; } return ; } // end of [atslib_rename_exn] /* --------------------------------------- */ #define atslib_rewind rewind /* --------------------------------------- */ #define atslib_tmpfile_err tmpfile ATSinline() ats_ptr_type atslib_tmpfile_exn () { FILE* fil = tmpfile() ; if (!fil) { perror ("tmpfile") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [tmpfile] failed\n") ; } return fil ; } // end of [atslib_tmpfile_exn] /* --------------------------------------- */ #define atslib_ungetc_err ungetc ATSinline() ats_void_type atslib_ungetc_exn ( ats_char_type c, ats_ptr_type fil ) { int err = ungetc((unsigned char)c, (FILE*)fil) ; if (err < 0) { perror ("ungetc") ; ats_exit_errmsg (1, (ats_ptr_type)"exit(ATS): [ungetc] failed\n") ; } // end of [if] return ; } // end of [atslib_ungetc_exn] /* --------------------------------------- */ ATSinline() ats_void_type atslib_setbuf_null ( ats_ptr_type fil ) { setbuf((FILE*)fil, NULL) ; return ; } // end of [atslib_setbuf_null] #define atslib_setbuffer setbuffer #define atslib_setlinebuf setlinebuf ATSinline() ats_int_type atslib_setvbuf_null ( ats_ptr_type fil , ats_int_type mode ) { return setvbuf((FILE*)fil, NULL, mode, 0) ; } // end of [atslib_setbuf_null] #define atslib_setvbuf setvbuf /* --------------------------------------- */ #endif /* ATS_LIBC_STDIO_CATS */ /* end of [stdio.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/CATS/errno.cats0000644000175000017500000000442413431250607021767 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2002-2008 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) */ /* ****** ****** */ #ifndef ATS_LIBC_ERRNO_CATS #define ATS_LIBC_ERRNO_CATS /* ****** ****** */ #include /* ****** ****** */ #define ENONE 0 // indicating no error /* ****** ****** */ ATSinline() ats_int_type atslib_errno_get () { return errno ; } // end of [atslib_errno_get] ATSinline() ats_void_type atslib_errno_set (ats_int_type n) { errno = n ; return ; } // end of [atslib_errno_set] ATSinline() ats_void_type atslib_errno_reset () { errno = 0/*ENONE*/ ; return ; } // end of [atslib_errno_reset] /* ****** ****** */ ATSinline() ats_bool_type atslib_eq_errno_errno (ats_int_type n1, ats_int_type n2) { return (n1 == n2 ? ats_true_bool : ats_false_bool) ; } // end of [atslib_eq_errno_errno] ATSinline() ats_bool_type atslib_neq_errno_errno (ats_int_type n1, ats_int_type n2) { return (n1 != n2 ? ats_true_bool : ats_false_bool) ; } // end of [atslib_neq_errno_errno] /* ****** ****** */ #endif /* ATS_LIBC_ERRNO_CATS */ /* end of [errno.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/SATS_gmp_sats.c0000644000175000017500000000175613431250607022054 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "libc/CATS/gmp.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_gmp_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/DATS_unistd_dats.c0000644000175000017500000001543013431250607022533 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 "libc/sys/CATS/types.cats" #include "libc/CATS/errno.cats" #include "libc/CATS/stdio.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/unistd.cats" #include "libc/sys/CATS/types.cats" #include "libc/CATS/fcntl.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ extern char **environ ; // in [unistd.h] ats_void_type atslib_fork_exec_cloptr_exn (ats_ptr_type f_child) { pid_t pid ; pid = fork () ; // if (pid < 0) { ats_exit_errmsg (errno, "exit(ATS): [fork] failed.\n") ; } // end of [if] // /* this is the parent */ if (pid > 0) { ATS_FREE (f_child) ; return ; } // /* this is the child */ ((ats_void_type (*)(ats_clo_ptr_type))((ats_clo_ptr_type)f_child)->closure_fun)(f_child) ; _exit (0) ; /* no need to flush STDIN, STDOUT and STDERR */ // return ; /* deadcode */ } /* end of [atslib_fork_exec_cloptr] */ /* ****** ****** */ ats_int_type atslib_fork_exec_and_wait_cloptr_exn (ats_ptr_type f_child) { pid_t pid ; int status ; // pid = fork () ; // if (pid < 0) { ats_exit_errmsg (errno, "exit(ATS): [fork] failed.\n") ; } // end of [if] // if (pid > 0) { ATS_FREE (f_child) ; if (wait (&status) < 0) return -1 ; return status ; } // end of [if] // /* this is the child */ ((ats_void_type (*)(ats_clo_ptr_type))((ats_clo_ptr_type)f_child)->closure_fun)(f_child) ; _exit (0) ; /* no need to flush STDIN, STDOUT and STDERR */ // return 0 ; /* deadcode */ } /* atslib_fork_exec_and_wait_cloptr_exn */ #define atslib_GETCWD_BUFSZ 64 ats_ptr_type atslib_getcwd0 () { char *buf, *res ; int sz = atslib_GETCWD_BUFSZ ; // buf = (char*)ats_malloc_gc(atslib_GETCWD_BUFSZ) ; // // HX: this strategy may not be so attractive; // an alternative is to use pathconf to get the maximum pathname length // while (1) { res = getcwd (buf, sz) ; if (!res) { ATS_FREE (buf) ; sz = sz + sz ; buf = ATS_MALLOC (sz) ; continue ; } // end of [if] break ; } // end of [while] // return buf ; } // end of [atslib_getcwd0] ats_int_type atslib_pipe ( ats_ptr_type pfd1, ats_ptr_type pfd2 ) { int err ; int pfd[2] ; err = pipe(pfd) ; if (err==0) { *(int*)pfd1 = pfd[0] ; *(int*)pfd2 = pfd[1] ; } // end of [if] return err ; } // end of [atslib_pipe] // extern ats_size_type atspre_ptrarr_size (ats_ptr_type p0) ; // ats_ptr_type atslib_environ_get_arrsz (size_t *sizep) { *sizep = atspre_ptrarr_size (environ) ; return environ; } // end of [atslib_environ_get_arrsz] // /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_lt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atslib_errno_get) () ; ATSextern_fun(ats_void_type, atslib_perror) (ats_ptr_type) ; ATSextern_fun(ats_pid_type, atslib_fork_err) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libc/DATS/unistd.dats: 1828(line=61, offs=10) -- 2089(line=70, offs=2) */ ATSglobaldec() ats_pid_type atslib_fork_exn () { /* local vardec */ ATSlocal (ats_pid_type, tmp0) ; ATSlocal (ats_pid_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; // ATSlocal_void (tmp3) ; ATSlocal (ats_int_type, tmp4) ; // ATSlocal_void (tmp5) ; __ats_lab_atslib_fork_exn: tmp1 = atslib_fork_err () ; tmp2 = atspre_lt_int_int (ats_castfn_mac(ats_int_type, tmp1), 0) ; if (tmp2) { tmp4 = atslib_errno_get () ; /* tmp5 = */ atslib_perror (ATSstrcst("fork")) ; /* tmp3 = */ ats_exit_errmsg (ats_castfn_mac(ats_int_type, tmp4), ATSstrcst("exit(ATS): [fork] failed.\n")) ; } else { /* empty */ } /* end of [if] */ tmp0 = tmp1 ; return (tmp0) ; } /* end of [atslib_fork_exn] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2DATS_2unistd_2edats__staload () { static int ATS_2d0_2e2_2e12_2libc_2DATS_2unistd_2edats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2DATS_2unistd_2edats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2DATS_2unistd_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2errno_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2unistd_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration // extern ats_int_type ATS_2d0_2e2_2e12_2libc_2DATS_2unistd_2edats__dynload_flag ; ats_void_type ATS_2d0_2e2_2e12_2libc_2DATS_2unistd_2edats__dynload () { // ATS_2d0_2e2_2e12_2libc_2DATS_2unistd_2edats__dynload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2DATS_2unistd_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [DATS_unistd_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/SATS_time_sats.c0000644000175000017500000000226013431250607022216 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ #include "libc/sys/CATS/types.cats" /* external codes at top */ #include "libc/CATS/time.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2time_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2SATS_2time_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2SATS_2time_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2SATS_2time_2esats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_time_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/SATS_stdarg_sats.c0000644000175000017500000000200013431250607022534 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "libc/CATS/stdarg.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdarg_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2SATS_2stdarg_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2SATS_2stdarg_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdarg_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_stdarg_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/libc/SATS_fcntl_sats.c0000644000175000017500000000226613431250607022374 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:31m ** */ /* 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 */ /* prologues from statically loaded files */ #include "libc/sys/CATS/types.cats" /* external codes at top */ #include "libc/CATS/fcntl.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload (void) ; ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload () { static int ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload_flag = 0 ; if (ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload_flag) return ; ATS_2d0_2e2_2e12_2libc_2SATS_2fcntl_2esats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2libc_2sys_2SATS_2types_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [SATS_fcntl_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_error_sats.c0000644000175000017500000001222513431250607023345 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_label_equal_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_stamp_equal_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_funclo_equal_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_clokind_equal_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_linearity_equal_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_pfarity_equal_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2eff_subeq_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_boxity_equal_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_tyreckind_equal_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_refval_equal_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2zexp_merge_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_equal_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_tyleq_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2Var_s2exp_solve_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2explst_length_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_labs2explst_length_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_wths2explst_shape_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_linearity_17) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_label_equal_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_stamp_equal_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_funclo_equal_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_clokind_equal_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_linearity_equal_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_pfarity_equal_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2eff_subeq_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_boxity_equal_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_tyreckind_equal_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_refval_equal_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2zexp_merge_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_equal_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_tyleq_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2Var_s2exp_solve_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2explst_length_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_labs2explst_length_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_wths2explst_shape_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_linearity_17.tag = 17 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_error_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_fixity_sats.c0000644000175000017500000000576613431250607022076 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOClft_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCrgt_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYnon_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYinf_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYpre_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYpos_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMatm_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMopr_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRinf_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpre_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpos_2) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCnon_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOClft_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ASSOCrgt_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYnon_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYinf_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYpre_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXTYpos_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMatm_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMopr_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRinf_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpre_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpos_2.tag = 2 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_fixity_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_assgn_dats.c0000644000175000017500000025100713431250607023137 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALderef_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_mut_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALarrsub_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALviewat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_wrt_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_nonlval_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_nonderef_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_pfobj_search_none_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_assgn_tszeq_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_linsel_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_sharing_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_proof_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_assgn_deref_context_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_assgn_deref_reflinsel_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_assgn_deref_refsharing_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld_root) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_isnot_prf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_assgn_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat_assgn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_wrt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin0) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin1) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin01) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) ; static ats_void_type auxerr_proof_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr_linsel_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr_context_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr_pfobj_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_sharing_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_linsel_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxck_tszeq_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxmain_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_void_type auxerr_nonderef_14 (ats_ptr_type arg0) ; static ats_void_type auxerr_refsharing_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_reflinsel_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type aux1_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type aux2_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type aux3_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type auxerr_wrt_if_21 (ats_ptr_type arg0) ; static ats_void_type loop_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 1555(line=44, offs=18) -- 1585(line=44, offs=48) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_assgn")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; __ats_lab_prerr_error3_loc_02051_: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp3 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp3) */ ; } /* end of [prerr_error3_loc_02051_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 2122(line=84, offs=1) -- 2431(line=93, offs=4) */ ATSstaticdec() ats_void_type auxerr_proof_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_auxerr_proof_1: /* tmp2 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp5 = */ atspre_prerr_string (ATSstrcst(": a non-proof component is replaced of the type")) ; /* tmp6 = */ atspre_prerr_string (ATSstrcst(": [")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg3) ; /* tmp8 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp9 = */ atspre_prerr_newline () ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp10)->tag = 60 ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_2, arg2) ; /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp10) ; return /* (tmp1) */ ; } /* end of [auxerr_proof_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 2462(line=96, offs=1) -- 2771(line=105, offs=4) */ ATSstaticdec() ats_void_type auxerr_linsel_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_auxerr_linsel_3: /* tmp12 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp13 = */ atspre_prerr_string (ATSstrcst(": a linear component is abandoned of the type")) ; /* tmp14 = */ atspre_prerr_string (ATSstrcst(": [")) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg3) ; /* tmp16 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp17 = */ atspre_prerr_newline () ; tmp18 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp18)->tag = 58 ; ats_selptrset_mac(anairiats_sum_2, tmp18, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp18, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp18, atslab_2, arg2) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp18) ; return /* (tmp11) */ ; } /* end of [auxerr_linsel_3] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 2803(line=108, offs=1) -- 3125(line=117, offs=4) */ ATSstaticdec() ats_void_type auxerr_context_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab_auxerr_context_4: /* tmp20 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp21 = */ atspre_prerr_string (ATSstrcst(": the type of the selected component cannot be changed")) ; /* tmp22 = */ atspre_prerr_string (ATSstrcst(": [")) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg3) ; /* tmp24 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp25 = */ atspre_prerr_newline () ; tmp26 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp26)->tag = 61 ; ats_selptrset_mac(anairiats_sum_2, tmp26, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp26, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp26, atslab_2, arg2) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp26) ; return /* (tmp19) */ ; } /* end of [auxerr_context_4] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 3572(line=139, offs=3) -- 4009(line=165, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin0 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin0: tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg1) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp28 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp29 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp29, atslab_0, arg2) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp29) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp28 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_3, tmp28, atslab_0) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp30) ; tmp32 = (ats_sum_ptr_type)0 ; if (tmp31) { /* tmp33 = */ auxerr_linsel_3 (arg0, tmp30, tmp32, tmp30) ; } else { /* empty */ } /* end of [if] */ tmp34 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp34, atslab_0, arg2) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp34) ; break ; } while (0) ; return /* (tmp27) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin0] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 4069(line=169, offs=3) -- 4830(line=207, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_bool_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_bool_type, tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin1: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (arg0, arg1) ; /* ats_ptr_type tmp37 ; */ tmp37 = (ats_sum_ptr_type)0 ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context (arg0, tmp36, arg2, (&tmp37)) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (tmp38) ; tmp41 = atspre_neg_bool (tmp39) ; if (tmp41) { /* tmp40 = */ auxerr_proof_1 (arg0, tmp36, arg2, tmp38) ; } else { /* empty */ } /* end of [if] */ tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp38) ; if (tmp42) { /* tmp43 = */ auxerr_linsel_3 (arg0, tmp36, arg2, tmp38) ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp37 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp44 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp37 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp44 = ats_false_bool ; break ; } while (0) ; tmp46 = atspre_neg_bool (tmp44) ; if (tmp46) { /* tmp45 = */ auxerr_context_4 (arg0, tmp36, arg2, tmp38) ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp37 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_3, tmp37, atslab_0) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (tmp48, arg3) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp37 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp47 = tmp36 ; break ; } while (0) ; tmp49 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp49, atslab_0, tmp47) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp49) ; return /* (tmp35) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 4889(line=211, offs=1) -- 5161(line=223, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin01 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin01: /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (arg1) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin0 (arg0, arg1, arg3) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin1 (arg0, arg1, arg2, arg3) ; break ; } while (0) ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin01] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 5248(line=232, offs=1) -- 5564(line=247, offs=4) */ ATSstaticdec() ats_void_type auxerr_pfobj_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_auxerr_pfobj_8: /* tmp53 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp54 = */ atspre_prerr_string (ATSstrcst(": assignment cannot be performed")) ; /* tmp55 = */ atspre_prerr_string (ATSstrcst(": proof search for the view at [")) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp57 = */ atspre_prerr_string (ATSstrcst("] failed.")) ; /* tmp58 = */ atspre_prerr_newline () ; tmp59 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp59)->tag = 54 ; ats_selptrset_mac(anairiats_sum_4, tmp59, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp59, atslab_1, arg1) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp59) ; return /* (tmp52) */ ; } /* end of [auxerr_pfobj_8] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 5595(line=250, offs=1) -- 5910(line=266, offs=4) */ ATSstaticdec() ats_void_type auxerr_sharing_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; __ats_lab_auxerr_sharing_9: /* tmp61 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp62 = */ atspre_prerr_string (ATSstrcst(": a boxed non-linear record is selected for field-update.")) ; /* tmp63 = */ atspre_prerr_newline () ; tmp64 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp64)->tag = 59 ; ats_selptrset_mac(anairiats_sum_2, tmp64, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp64, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp64, atslab_2, arg2) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp64) ; return /* (tmp60) */ ; } /* end of [auxerr_sharing_9] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 5943(line=269, offs=1) -- 6326(line=284, offs=4) */ ATSstaticdec() ats_void_type auxerr_linsel_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab_auxerr_linsel_10: /* tmp66 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp67 = */ atspre_prerr_string (ATSstrcst(": a linear component of the following type is abandoned: ")) ; /* tmp68 = */ atspre_prerr_string (ATSstrcst("[")) ; /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg3) ; /* tmp70 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp71 = */ atspre_prerr_newline () ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp72)->tag = 58 ; ats_selptrset_mac(anairiats_sum_2, tmp72, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp72, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp72, atslab_2, arg2) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp72) ; return /* (tmp65) */ ; } /* end of [auxerr_linsel_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 6358(line=287, offs=1) -- 6946(line=314, offs=4) */ ATSstaticdec() ats_void_type auxck_tszeq_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab_auxck_tszeq_11: tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq (arg1, arg2) ; tmp75 = atspre_neg_bool (tmp74) ; if (tmp75) { /* tmp76 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp77 = */ atspre_prerr_string (ATSstrcst(": assignment cannot be performed")) ; /* tmp78 = */ atspre_prerr_string (ATSstrcst(": mismatch of bef/aft type-sizes:\n")) ; /* tmp79 = */ atspre_prerr_string (ATSstrcst("bef: [")) ; /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp81 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp82 = */ atspre_prerr_newline () ; /* tmp83 = */ atspre_prerr_string (ATSstrcst("aft: [")) ; /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ; /* tmp85 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp86 = */ atspre_prerr_newline () ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp87)->tag = 55 ; ats_selptrset_mac(anairiats_sum_2, tmp87, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp87, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp87, atslab_2, arg2) ; /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp87) ; } else { /* empty */ } /* end of [if] */ return /* (tmp73) */ ; } /* end of [auxck_tszeq_11] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 6976(line=317, offs=1) -- 8455(line=388, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_int_type, tmp93) ; ATSlocal (anairiats_rec_1, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; // ATSlocal_void (tmp97) ; ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_bool_type, tmp101) ; // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; // ATSlocal_void (tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab_auxmain_12: // tmp89 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp90 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_2) ; ATS_FREE(arg1) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp91 ; /* ats_int_type tmp92 ; */ tmp92 = 0 ; /* ats_int_type tmp93 ; */ tmp93 = 0 ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg0, tmp91, arg2, (&tmp92), (&tmp93)) ; tmp95 = ats_select_mac(tmp94, atslab_0) ; tmp96 = ats_select_mac(tmp94, atslab_1) ; tmp98 = atspre_gt_int_int (tmp93, 0) ; if (tmp98) { /* tmp97 = */ auxerr_sharing_9 (arg0, tmp91, arg2) ; } else { /* empty */ } /* end of [if] */ tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp95) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp96) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp99) ; if (tmp101) { /* tmp102 = */ auxerr_linsel_10 (arg0, tmp91, arg2, tmp99) ; } else { /* empty */ } /* end of [if] */ /* ats_ptr_type tmp103 ; */ tmp103 = (ats_sum_ptr_type)0 ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context (arg0, tmp91, arg2, (&tmp103)) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (tmp103 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_3, tmp103, atslab_0) ; /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (arg3) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg3) ; /* tmp108 = */ auxck_tszeq_11 (arg0, tmp99, tmp107) ; /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (tmp89) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (tmp105, tmp107) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl (tmp90, tmp110) ; tmp113 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp113, atslab_0, tmp111) ; /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp89, tmp113) ; tmp88 = arg3 ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (tmp103 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (arg3, tmp99) ; break ; } while (0) ; return (tmp88) ; } /* end of [auxmain_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 8530(line=394, offs=1) -- 8906(line=411, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_assgn_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; // ATSlocal_void (tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_assgn_deref: tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview (arg1) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp115 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_3, tmp115, atslab_0) ; ATS_FREE(tmp115) ; tmp114 = auxmain_12 (arg0, tmp116, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp115 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp117 ; /* tmp118 = */ auxerr_pfobj_8 (arg0, arg1) ; tmp114 = arg3 ; break ; } while (0) ; return (tmp114) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_assgn_deref] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 8994(line=420, offs=1) -- 9261(line=434, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonderef_14 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab_auxerr_nonderef_14: tmp120 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d3exp_loc) ; /* tmp121 = */ prerr_error3_loc_02051_ (tmp120) ; /* tmp122 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression cannot be dereferenced.")) ; /* tmp123 = */ atspre_prerr_newline () ; tmp124 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp124)->tag = 53 ; ats_selptrset_mac(anairiats_sum_7, tmp124, atslab_0, arg0) ; /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp124) ; return /* (tmp119) */ ; } /* end of [auxerr_nonderef_14] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 9295(line=437, offs=1) -- 9619(line=452, offs=4) */ ATSstaticdec() ats_void_type auxerr_refsharing_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; __ats_lab_auxerr_refsharing_15: /* tmp126 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp127 = */ atspre_prerr_string (ATSstrcst(": a boxed non-linear record is selected for field-update.")) ; /* tmp128 = */ atspre_prerr_newline () ; tmp129 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp129)->tag = 67 ; ats_selptrset_mac(anairiats_sum_4, tmp129, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp129, atslab_1, arg2) ; /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp129) ; return /* (tmp125) */ ; } /* end of [auxerr_refsharing_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 9655(line=455, offs=1) -- 10013(line=472, offs=4) */ ATSstaticdec() ats_void_type auxerr_reflinsel_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab_auxerr_reflinsel_16: /* tmp131 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp132 = */ atspre_prerr_string (ATSstrcst(": a linear component of the following type is abandoned: ")) ; /* tmp133 = */ atspre_prerr_string (ATSstrcst("[")) ; /* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg3) ; /* tmp135 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp136 = */ atspre_prerr_newline () ; tmp137 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp137)->tag = 66 ; ats_selptrset_mac(anairiats_sum_4, tmp137, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp137, atslab_1, arg2) ; /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp137) ; return /* (tmp130) */ ; } /* end of [auxerr_reflinsel_16] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 10048(line=474, offs=5) -- 10533(line=506, offs=4) */ ATSstaticdec() ats_ptr_type aux1_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab_aux1_17: tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (arg1) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp139 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp138 = aux2_18 (arg0, arg1, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp139 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_3, tmp139, atslab_0) ; ATS_FREE(tmp139) ; /* ats_ptr_type tmp141 ; */ tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_assgn_deref (arg0, tmp140, arg3, arg4, (&tmp141)) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ptr (arg0, arg2, tmp141, arg3, tmp142) ; break ; } while (0) ; return (tmp138) ; } /* end of [aux1_17] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 10556(line=508, offs=5) -- 11571(line=551, offs=4) */ ATSstaticdec() ats_ptr_type aux2_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_int_type, tmp147) ; ATSlocal (anairiats_rec_1, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; // ATSlocal_void (tmp151) ; ATSlocal (ats_bool_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_bool_type, tmp155) ; // ATSlocal_void (tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_int_type, tmp158) ; __ats_lab_aux2_18: tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type (arg1) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp144 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ; ATS_FREE(tmp144) ; /* ats_int_type tmp146 ; */ tmp146 = 0 ; /* ats_int_type tmp147 ; */ tmp147 = 0 ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg0, tmp145, arg3, (&tmp146), (&tmp147)) ; tmp149 = ats_select_mac(tmp148, atslab_0) ; tmp150 = ats_select_mac(tmp148, atslab_1) ; tmp152 = atspre_gt_int_int (tmp147, 0) ; if (tmp152) { /* tmp151 = */ auxerr_refsharing_15 (arg0, arg2, arg3) ; } else { /* empty */ } /* end of [if] */ tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp149) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp150) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp153) ; if (tmp155) { /* tmp156 = */ auxerr_reflinsel_16 (arg0, arg2, arg3, tmp153) ; } else { /* empty */ } /* end of [if] */ tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (arg4, tmp153) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref (arg0) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_ref (arg0, arg2, tmp145, arg3, tmp157) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp144 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp143 = aux3_19 (arg0, arg1, arg2, arg3, arg4) ; break ; } while (0) ; return (tmp143) ; } /* end of [aux2_18] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 11594(line=553, offs=5) -- 11758(line=562, offs=4) */ ATSstaticdec() ats_ptr_type aux3_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp159) ; // ATSlocal_void (tmp160) ; __ats_lab_aux3_19: /* tmp160 = */ auxerr_nonderef_14 (arg2) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (arg0) ; return (tmp159) ; } /* end of [aux3_19] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 11836(line=568, offs=3) -- 12329(line=589, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; // ATSlocal_void (tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; // ATSlocal_void (tmp168) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn_deref: tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg1) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp162) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg2) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp162) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp165) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg3) ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp167) ; tmp161 = aux1_17 (arg0, tmp166, tmp162, tmp164, tmp167) ; return (tmp161) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn_deref] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 12421(line=598, offs=1) -- 12608(line=609, offs=4) */ ATSstaticdec() ats_void_type auxerr_wrt_if_21 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp169) ; ATSlocal (ats_int_type, tmp170) ; ATSlocal (ats_bool_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab_auxerr_wrt_if_21: tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_wrt (arg0) ; tmp171 = atspre_gt_int_int (tmp170, 0) ; if (tmp171) { tmp172 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp172)->tag = 32 ; ats_selptrset_mac(anairiats_sum_7, tmp172, atslab_0, arg0) ; /* tmp169 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp172) ; } else { /* empty */ } /* end of [if] */ return /* (tmp169) */ ; } /* end of [auxerr_wrt_if_21] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19194(line=690, offs=7) -- 19604(line=704, offs=6) */ ATSstaticdec() ats_void_type loop_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; __ats_lab_loop_24: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp213 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp214 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp214, atslab_0, tmp212) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp214 ; if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19444(line=699, offs=13) -- 19470(line=699, offs=39)") ; } tmp215 = &ats_caselptrlab_mac(anairiats_sum_10, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp213 ; arg1 = arg1 ; arg2 = tmp215 ; goto __ats_lab_loop_24 ; // tail call break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp217 = (ats_sum_ptr_type)0 ; tmp216 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp216, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp216, atslab_1, tmp217) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp216 ; break ; } while (0) ; return /* (tmp211) */ ; } /* end of [loop_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19136(line=688, offs=13) -- 19698(line=708, offs=4) */ ATSstaticdec() ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; // ATSlocal_void (tmp218) ; __ats_lab_list_extend_01337_ats_ptr_type: /* ats_ptr_type tmp210 ; */ /* tmp218 = */ loop_24 (arg0, arg1, (&tmp210)) ; tmp209 = tmp210 ; return (tmp209) ; } /* end of [list_extend_01337_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 12686(line=615, offs=3) -- 15541(line=728, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_bool_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; // ATSlocal_void (tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn: tmp174 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_d2exp_loc) ; tmp175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp175)->tag != 44) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 12732(line=618, offs=5) -- 12772(line=618, offs=45)") ; } tmp176 = ats_caselptrlab_mac(anairiats_sum_4, tmp175, atslab_0) ; tmp177 = ats_caselptrlab_mac(anairiats_sum_4, tmp175, atslab_1) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize (tmp176) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp178)->tag != 2) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_4, tmp178, atslab_0) ; tmp180 = ats_caselptrlab_mac(anairiats_sum_4, tmp178, atslab_1) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp179) ; if (tmp181 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_assgn.dats: 12971(line=634, offs=5) -- 13008(line=635, offs=26)") ; } tmp182 = ats_caselptrlab_mac(anairiats_sum_3, tmp181, atslab_0) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (tmp180) ; /* ats_ptr_type tmp184 ; */ tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp177) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp185) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_assgn_deref (tmp174, tmp182, tmp183, tmp185, (&tmp184)) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_isnot_prf (tmp187) ; if (tmp189) { /* tmp188 = */ auxerr_wrt_if_21 (tmp174) ; } else { /* empty */ } /* end of [if] */ tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_var (tmp174, tmp179, tmp184, tmp183, tmp187) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp178)->tag != 1) { goto __ats_lab_20_0 ; } __ats_lab_17_1: tmp190 = ats_caselptrlab_mac(anairiats_sum_4, tmp178, atslab_0) ; tmp191 = ats_caselptrlab_mac(anairiats_sum_4, tmp178, atslab_1) ; tmp192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp176), atslab_d2exp_loc) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (tmp191) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp177) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp194) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp194) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp190) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (tmp197 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_3, tmp197, atslab_0) ; tmp198 = tmp199 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (tmp197 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; break ; } while (0) ; /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__d2var_assgn_lin01 (tmp192, tmp190, tmp193, tmp196) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_assgn_var (tmp174, tmp190, tmp198, tmp193, tmp194) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp178)->tag != 0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp201 = ats_caselptrlab_mac(anairiats_sum_4, tmp178, atslab_0) ; tmp202 = ats_caselptrlab_mac(anairiats_sum_4, tmp178, atslab_1) ; /* tmp203 = */ auxerr_wrt_if_21 (tmp174) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn_deref (tmp174, tmp201, tmp202, tmp177) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp178)->tag != 4) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat_assgn (arg0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp178)->tag != 3) { goto __ats_lab_25_0 ; } __ats_lab_22_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_9, tmp178, atslab_0) ; tmp205 = ats_caselptrlab_mac(anairiats_sum_9, tmp178, atslab_1) ; tmp206 = ats_caselptrlab_mac(anairiats_sum_9, tmp178, atslab_3) ; tmp208 = list_extend_01337_ats_ptr_type (tmp206, tmp177) ; tmp207 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp207, atslab_0, tmp205) ; ats_selptrset_mac(anairiats_sum_10, tmp207, atslab_1, tmp208) ; tmp219 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp219)->tag = 1 ; ats_selptrset_mac(anairiats_sum_11, tmp219, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_11, tmp219, atslab_1, tmp174) ; ats_selptrset_mac(anairiats_sum_11, tmp219, atslab_2, ats_castfn_mac(ats_ptr_type, tmp207)) ; tmp222 = (ats_sum_ptr_type)0 ; tmp221 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp221, atslab_0, tmp219) ; ats_selptrset_mac(anairiats_sum_10, tmp221, atslab_1, tmp222) ; tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym (arg0, tmp204, tmp221) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp220, tmp223) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld (tmp176) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (tmp224 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp225 = ats_caselptrlab_mac(anairiats_sum_3, tmp224, atslab_0) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top (tmp174) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld_root (tmp176) ; tmp231 = (ats_sum_ptr_type)0 ; tmp230 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp230, atslab_0, tmp177) ; ats_selptrset_mac(anairiats_sum_10, tmp230, atslab_1, tmp231) ; tmp229 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp229, atslab_0, tmp227) ; ats_selptrset_mac(anairiats_sum_10, tmp229, atslab_1, tmp230) ; tmp228 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp228)->tag = 1 ; ats_selptrset_mac(anairiats_sum_11, tmp228, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_11, tmp228, atslab_1, tmp174) ; ats_selptrset_mac(anairiats_sum_11, tmp228, atslab_2, tmp229) ; tmp234 = (ats_sum_ptr_type)0 ; tmp233 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp233, atslab_0, tmp228) ; ats_selptrset_mac(anairiats_sum_10, tmp233, atslab_1, tmp234) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym (tmp226, tmp225, tmp233) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp232, tmp235) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (tmp224 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp236 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp176), atslab_d2exp_loc) ; /* tmp237 = */ prerr_error3_loc_02051_ (tmp236) ; /* tmp238 = */ atspre_prerr_string (ATSstrcst(": a left-value is required but a non-left-value is given.")) ; /* tmp239 = */ atspre_prerr_newline () ; tmp241 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp241)->tag = 51 ; ats_selptrset_mac(anairiats_sum_7, tmp241, atslab_0, tmp176) ; /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp241) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (tmp174) ; break ; } while (0) ; break ; } while (0) ; return (tmp173) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_assgn_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_assgn_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_syndef_dats.c0000644000175000017500000016747213431250607023326 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_d1exp_loc ; ats_ptr_type atslab_d1exp_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eidextapp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elist_30) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TUPZ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_list) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macfun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__syndef_search_all) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type fsyndef_CAR_0 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_CDR_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_ISNIL_2 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_ISCONS_3 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_ISLIST_4 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux1_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type app_9 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type __ats_fun_12 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_12_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type __ats_fun_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux1lst_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux2_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type __ats_fun_15 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_15_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type __ats_fun_15_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux2lst_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux3_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type __ats_fun_18 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_18_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_ptr_type __ats_fun_18_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux3lst_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type fsyndef_TUPZ_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxpr_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxprln_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxfpr_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxfprln_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type fsyndef_PRINT_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_PRINTLN_25 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_PRERR_26 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_PRERRLN_27 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_FPRINT_28 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_FPRINTLN_29 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_GPRINT_30 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fsyndef_GPRINTLN_31 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_reverse_01436_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp5) ; ATSstatic (ats_ptr_type, statmp6) ; ATSstatic (ats_ptr_type, statmp7) ; ATSstatic (ats_ptr_type, statmp8) ; ATSstatic (ats_ptr_type, statmp9) ; ATSstatic (ats_ptr_type, statmp10) ; ATSstatic (ats_ptr_type, statmp11) ; ATSstatic (ats_ptr_type, statmp12) ; ATSstatic (ats_ptr_type, statmp13) ; ATSstatic (ats_ptr_type, statmp14) ; ATSstatic (ats_ptr_type, statmp15) ; ATSstatic (ats_ptr_type, statmp16) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 2334(line=88, offs=1) -- 2430(line=91, offs=50) */ ATSstaticdec() ats_ptr_type fsyndef_CAR_0 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab_fsyndef_CAR_0: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macfun (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR, arg1) ; return (tmp0) ; } /* end of [fsyndef_CAR_0] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 2435(line=93, offs=1) -- 2531(line=96, offs=50) */ ATSstaticdec() ats_ptr_type fsyndef_CDR_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_fsyndef_CDR_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macfun (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR, arg1) ; return (tmp1) ; } /* end of [fsyndef_CDR_1] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 2537(line=99, offs=1) -- 2637(line=102, offs=52) */ ATSstaticdec() ats_ptr_type fsyndef_ISNIL_2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_fsyndef_ISNIL_2: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macfun (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL, arg1) ; return (tmp2) ; } /* end of [fsyndef_ISNIL_2] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 2642(line=104, offs=1) -- 2744(line=107, offs=53) */ ATSstaticdec() ats_ptr_type fsyndef_ISCONS_3 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_fsyndef_ISCONS_3: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macfun (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS, arg1) ; return (tmp3) ; } /* end of [fsyndef_ISCONS_3] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 2749(line=109, offs=1) -- 2851(line=112, offs=53) */ ATSstaticdec() ats_ptr_type fsyndef_ISLIST_4 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_fsyndef_ISLIST_4: tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macfun (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST, arg1) ; return (tmp4) ; } /* end of [fsyndef_ISLIST_4] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 3655(line=138, offs=5) -- 3787(line=144, offs=4) */ ATSstaticdec() ats_ptr_type aux1_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab_aux1_5: tmp19 = (ats_sum_ptr_type)0 ; tmp18 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp18, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_1, tmp18, atslab_1, tmp19) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (arg0, arg1, arg0, -1, tmp18) ; return (tmp17) ; } /* end of [aux1_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54647(line=1953, offs=6) -- 54699(line=1953, offs=58) */ ATSstaticdec() ats_ptr_type app_9 (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; __ats_lab_app_9: tmp24 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp24) ; } /* end of [app_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_loop_11: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp29 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp27, arg3) ; tmp30 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp30, atslab_0, tmp29) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp30 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp31 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp28 ; arg1 = arg1 ; arg2 = tmp31 ; arg3 = arg3 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp32 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp32 ; break ; } while (0) ; return /* (tmp26) */ ; } /* end of [loop_11] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp33 ; */ /* tmp34 = */ loop_11 (arg0, arg1, (&tmp33), arg2) ; tmp25 = tmp33 ; return (tmp25) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54575(line=1951, offs=23) -- 54763(line=1956, offs=4) */ ATSstaticdec() ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; __ats_lab_list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type: tmp23 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_9, arg1) ; return (tmp23) ; } /* end of [list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54041(line=1936, offs=19) -- 54491(line=1948, offs=2) */ ATSstaticdec() ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; __ats_lab_list_map_cloptr_01415_ats_ptr_type_ats_ptr_type: tmp22 = list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (arg0, arg1) ; return (tmp22) ; } /* end of [list_map_cloptr_01415_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 3923(line=152, offs=26) -- 3957(line=152, offs=60) */ ATSstaticdec() ats_ptr_type __ats_fun_12 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; __ats_lab___ats_fun_12: tmp36 = aux1_5 (env0, env1, arg0) ; return (tmp36) ; } /* end of [__ats_fun_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } __ats_fun_12_closure_type ; ats_ptr_type __ats_fun_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_12 (((__ats_fun_12_closure_type*)cloptr)->closure_env_0, ((__ats_fun_12_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_12_closure_init (__ats_fun_12_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_12_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_12_closure_make (ats_ptr_type env0, ats_ptr_type env1) { __ats_fun_12_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_12_closure_type)) ; __ats_fun_12_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 3810(line=146, offs=5) -- 3993(line=156, offs=4) */ ATSstaticdec() ats_ptr_type aux1lst_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_aux1lst_6: /* ats_ptr_type tmp35 ; */ tmp35 = __ats_fun_12_closure_make (arg0, arg1) ; tmp21 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (arg2, tmp35) ; ATS_FREE(tmp35) ; tmp20 = ats_castfn_mac(ats_ptr_type, tmp21) ; return (tmp20) ; } /* end of [aux1lst_6] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 4040(line=160, offs=5) -- 4286(line=170, offs=4) */ ATSstaticdec() ats_ptr_type aux2_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab_aux2_13: tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_d1exp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp38)->tag != 30) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_3, tmp38, atslab_1) ; tmp40 = aux1lst_6 (arg0, arg1, tmp39) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq (arg0, tmp40) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp37 = aux1_5 (arg0, arg1, arg2) ; break ; } while (0) ; return (tmp37) ; } /* end of [aux2_13] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 4419(line=176, offs=37) -- 4453(line=176, offs=71) */ ATSstaticdec() ats_ptr_type __ats_fun_15 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; __ats_lab___ats_fun_15: tmp44 = aux2_13 (env0, env1, arg0) ; return (tmp44) ; } /* end of [__ats_fun_15] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } __ats_fun_15_closure_type ; ats_ptr_type __ats_fun_15_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_15 (((__ats_fun_15_closure_type*)cloptr)->closure_env_0, ((__ats_fun_15_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_15_closure_init (__ats_fun_15_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_15_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_15_closure_make (ats_ptr_type env0, ats_ptr_type env1) { __ats_fun_15_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_15_closure_type)) ; __ats_fun_15_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 4309(line=172, offs=5) -- 4486(line=179, offs=4) */ ATSstaticdec() ats_ptr_type aux2lst_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab_aux2lst_14: /* ats_ptr_type tmp43 ; */ tmp43 = __ats_fun_15_closure_make (arg0, arg1) ; tmp42 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (arg2, tmp43) ; ATS_FREE(tmp43) ; tmp41 = ats_castfn_mac(ats_ptr_type, tmp42) ; return (tmp41) ; } /* end of [aux2lst_14] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 4533(line=183, offs=5) -- 4686(line=189, offs=4) */ ATSstaticdec() ats_ptr_type aux3_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab_aux3_16: tmp48 = (ats_sum_ptr_type)0 ; tmp47 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp47, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_1, tmp47, atslab_1, tmp48) ; tmp46 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp46, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_1, tmp46, atslab_1, tmp47) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (arg0, arg1, arg0, -1, tmp46) ; return (tmp45) ; } /* end of [aux3_16] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 4834(line=195, offs=38) -- 4876(line=195, offs=80) */ ATSstaticdec() ats_ptr_type __ats_fun_18 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; __ats_lab___ats_fun_18: tmp52 = aux3_16 (env0, env1, env2, arg0) ; return (tmp52) ; } /* end of [__ats_fun_18] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } __ats_fun_18_closure_type ; ats_ptr_type __ats_fun_18_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_18 (((__ats_fun_18_closure_type*)cloptr)->closure_env_0, ((__ats_fun_18_closure_type*)cloptr)->closure_env_1, ((__ats_fun_18_closure_type*)cloptr)->closure_env_2, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_18_closure_init (__ats_fun_18_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_18_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_18_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { __ats_fun_18_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_18_closure_type)) ; __ats_fun_18_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 4709(line=191, offs=5) -- 4909(line=198, offs=4) */ ATSstaticdec() ats_ptr_type aux3lst_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab_aux3lst_17: /* ats_ptr_type tmp51 ; */ tmp51 = __ats_fun_18_closure_make (arg0, arg1, arg2) ; tmp50 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (arg3, tmp51) ; ATS_FREE(tmp51) ; tmp49 = ats_castfn_mac(ats_ptr_type, tmp50) ; return (tmp49) ; } /* end of [aux3lst_17] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 4956(line=203, offs=1) -- 5056(line=209, offs=2) */ ATSstaticdec() ats_ptr_type fsyndef_TUPZ_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; __ats_lab_fsyndef_TUPZ_19: tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_list (arg0, -1, arg1) ; return (tmp53) ; } /* end of [fsyndef_TUPZ_19] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 5118(line=216, offs=1) -- 5390(line=233, offs=4) */ ATSstaticdec() ats_ptr_type auxpr_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab_auxpr_20: tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none (arg0) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid (arg0, tmp55, arg2) ; tmp57 = aux2lst_14 (arg0, tmp56, arg1) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq (arg0, tmp57) ; return (tmp54) ; } /* end of [auxpr_20] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 5417(line=236, offs=1) -- 5805(line=256, offs=4) */ ATSstaticdec() ats_ptr_type auxprln_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab_auxprln_21: tmp59 = auxpr_20 (arg0, arg1, arg2) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none (arg0) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid (arg0, tmp60, arg3) ; tmp63 = (ats_sum_ptr_type)0 ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (arg0, tmp61, arg0, -1, tmp63) ; tmp66 = (ats_sum_ptr_type)0 ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp65, atslab_0, tmp62) ; ats_selptrset_mac(anairiats_sum_1, tmp65, atslab_1, tmp66) ; tmp64 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp64, atslab_0, tmp59) ; ats_selptrset_mac(anairiats_sum_1, tmp64, atslab_1, tmp65) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq (arg0, tmp64) ; return (tmp58) ; } /* end of [auxprln_21] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 5855(line=261, offs=1) -- 6279(line=285, offs=4) */ ATSstaticdec() ats_ptr_type auxfpr_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab_auxfpr_22: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none (arg0) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid (arg0, tmp70, arg2) ; tmp72 = aux3lst_17 (arg0, tmp71, tmp68, tmp69) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq (arg0, tmp72) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp (arg0) ; break ; } while (0) ; return (tmp67) ; } /* end of [auxfpr_22] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 6307(line=288, offs=1) -- 7208(line=330, offs=4) */ ATSstaticdec() ats_ptr_type auxfprln_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab_auxfprln_23: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp (arg0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp75 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_none (arg0) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid (arg0, tmp76, arg2) ; tmp79 = aux3lst_17 (arg0, tmp77, tmp74, tmp75) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq (arg0, tmp79) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid (arg0, tmp76, arg3) ; tmp83 = (ats_sum_ptr_type)0 ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp82, atslab_0, tmp74) ; ats_selptrset_mac(anairiats_sum_1, tmp82, atslab_1, tmp83) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (arg0, tmp80, arg0, -1, tmp82) ; tmp86 = (ats_sum_ptr_type)0 ; tmp85 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp85, atslab_0, tmp81) ; ats_selptrset_mac(anairiats_sum_1, tmp85, atslab_1, tmp86) ; tmp84 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp84, atslab_0, tmp78) ; ats_selptrset_mac(anairiats_sum_1, tmp84, atslab_1, tmp85) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq (arg0, tmp84) ; break ; } while (0) ; return (tmp73) ; } /* end of [auxfprln_23] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 7285(line=337, offs=1) -- 7378(line=340, offs=45) */ ATSstaticdec() ats_ptr_type fsyndef_PRINT_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; __ats_lab_fsyndef_PRINT_24: tmp87 = auxpr_20 (arg0, arg1, statmp5) ; return (tmp87) ; } /* end of [fsyndef_PRINT_24] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 7386(line=343, offs=1) -- 7511(line=349, offs=2) */ ATSstaticdec() ats_ptr_type fsyndef_PRINTLN_25 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; __ats_lab_fsyndef_PRINTLN_25: tmp88 = auxprln_21 (arg0, arg1, statmp5, statmp7) ; return (tmp88) ; } /* end of [fsyndef_PRINTLN_25] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 7571(line=354, offs=1) -- 7664(line=357, offs=45) */ ATSstaticdec() ats_ptr_type fsyndef_PRERR_26 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; __ats_lab_fsyndef_PRERR_26: tmp89 = auxpr_20 (arg0, arg1, statmp8) ; return (tmp89) ; } /* end of [fsyndef_PRERR_26] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 7669(line=359, offs=1) -- 7794(line=365, offs=2) */ ATSstaticdec() ats_ptr_type fsyndef_PRERRLN_27 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; __ats_lab_fsyndef_PRERRLN_27: tmp90 = auxprln_21 (arg0, arg1, statmp8, statmp10) ; return (tmp90) ; } /* end of [fsyndef_PRERRLN_27] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 7852(line=370, offs=1) -- 8397(line=404, offs=4) */ ATSstaticdec() ats_ptr_type fsyndef_FPRINT_28 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab_fsyndef_FPRINT_28: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp (arg0) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } tmp92 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; if (tmp92 != (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_9_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp94 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp93), atslab_d1exp_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp94)->tag != 30) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_3, tmp94, atslab_1) ; tmp91 = auxfpr_22 (arg0, tmp95, statmp11) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp97 = (ats_sum_ptr_type)0 ; tmp96 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp96, atslab_0, tmp93) ; ats_selptrset_mac(anairiats_sum_1, tmp96, atslab_1, tmp97) ; tmp91 = auxfpr_22 (arg0, tmp96, statmp11) ; break ; } while (0) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp91 = auxfpr_22 (arg0, arg1, statmp11) ; break ; } while (0) ; return (tmp91) ; } /* end of [fsyndef_FPRINT_28] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 8433(line=407, offs=1) -- 9128(line=450, offs=4) */ ATSstaticdec() ats_ptr_type fsyndef_FPRINTLN_29 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab_fsyndef_FPRINTLN_29: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp (arg0) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } tmp99 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; if (tmp99 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_14_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp101 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp100), atslab_d1exp_node) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp101)->tag != 30) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_3, tmp101, atslab_1) ; tmp98 = auxfprln_23 (arg0, tmp102, statmp11, statmp13) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp104 = (ats_sum_ptr_type)0 ; tmp103 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp103, atslab_0, tmp100) ; ats_selptrset_mac(anairiats_sum_1, tmp103, atslab_1, tmp104) ; tmp98 = auxfprln_23 (arg0, tmp103, statmp11, statmp13) ; break ; } while (0) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp98 = auxfprln_23 (arg0, arg1, statmp11, statmp13) ; break ; } while (0) ; return (tmp98) ; } /* end of [fsyndef_FPRINTLN_29] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 9189(line=455, offs=1) -- 9289(line=461, offs=2) */ ATSstaticdec() ats_ptr_type fsyndef_GPRINT_30 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; __ats_lab_fsyndef_GPRINT_30: tmp105 = auxpr_20 (arg0, arg1, statmp14) ; return (tmp105) ; } /* end of [fsyndef_GPRINT_30] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 9297(line=464, offs=1) -- 9424(line=470, offs=2) */ ATSstaticdec() ats_ptr_type fsyndef_GPRINTLN_31 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; __ats_lab_fsyndef_GPRINTLN_31: tmp106 = auxprln_21 (arg0, arg1, statmp14, statmp16) ; return (tmp106) ; } /* end of [fsyndef_GPRINTLN_31] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 9598(line=484, offs=3) -- 10514(line=517, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__syndef_search_all (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_bool_type, tmp108) ; ATSlocal (ats_bool_type, tmp109) ; ATSlocal (ats_bool_type, tmp110) ; ATSlocal (ats_bool_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_bool_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_bool_type, tmp115) ; ATSlocal (ats_bool_type, tmp116) ; ATSlocal (ats_bool_type, tmp117) ; ATSlocal (ats_bool_type, tmp118) ; ATSlocal (ats_bool_type, tmp119) ; ATSlocal (ats_bool_type, tmp120) ; ATSlocal (ats_bool_type, tmp121) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__syndef_search_all: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR) ; if (!tmp108) { goto __ats_lab_19_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_CAR_0) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR) ; if (!tmp109) { goto __ats_lab_20_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_CDR_1) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL) ; if (!tmp110) { goto __ats_lab_21_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_ISNIL_2) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS) ; if (!tmp111) { goto __ats_lab_22_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_ISCONS_3) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST) ; if (!tmp112) { goto __ats_lab_23_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_ISLIST_4) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TUPZ) ; if (!tmp113) { goto __ats_lab_24_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_TUPZ_19) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, statmp5) ; if (!tmp114) { goto __ats_lab_25_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_PRINT_24) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, statmp6) ; if (!tmp115) { goto __ats_lab_26_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_PRINTLN_25) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, statmp8) ; if (!tmp116) { goto __ats_lab_27_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_PRERR_26) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, statmp9) ; if (!tmp117) { goto __ats_lab_28_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_PRERRLN_27) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, statmp11) ; if (!tmp118) { goto __ats_lab_29_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_FPRINT_28) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, statmp12) ; if (!tmp119) { goto __ats_lab_30_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_FPRINTLN_29) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, statmp14) ; if (!tmp120) { goto __ats_lab_31_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_GPRINT_30) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, statmp15) ; if (!tmp121) { goto __ats_lab_32_1 ; } tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, &fsyndef_GPRINTLN_31) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp107 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp107) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__syndef_search_all] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61997(line=2223, offs=7) -- 62162(line=2225, offs=74) */ ATSstaticdec() ats_ptr_type loop_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab_loop_36: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp133 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp134 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp134, atslab_0, tmp132) ; ats_selptrset_mac(anairiats_sum_1, tmp134, atslab_1, arg1) ; arg0 = tmp133 ; arg1 = tmp134 ; goto __ats_lab_loop_36 ; // tail call break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp131 = arg1 ; break ; } while (0) ; return (tmp131) ; } /* end of [loop_36] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61976(line=2222, offs=25) -- 62297(line=2231, offs=4) */ ATSstaticdec() ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; __ats_lab_list_reverse_append2_vt_01435_ats_ptr_type: tmp130 = loop_36 (arg0, arg1) ; return (tmp130) ; } /* end of [list_reverse_append2_vt_01435_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 62382(line=2236, offs=14) -- 62438(line=2237, offs=50) */ ATSstaticdec() ats_ptr_type list_reverse_01436_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_list_reverse_01436_ats_ptr_type: tmp135 = (ats_sum_ptr_type)0 ; tmp129 = list_reverse_append2_vt_01435_ats_ptr_type (arg0, tmp135) ; return (tmp129) ; } /* end of [list_reverse_01436_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_syndef.dats: 10623(line=525, offs=3) -- 11046(line=551, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d1exp_syndef_resolve (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d1exp_syndef_resolve: tmp123 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_d1exp_node) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp123)->tag != 2) { goto __ats_lab_38_0 ; } __ats_lab_33_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_5, tmp123, atslab_0) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_5, tmp123, atslab_1) ; tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__syndef_search_all (tmp124) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp126 != (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp122 = arg1 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (tmp126 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_4, tmp126, atslab_0) ; ATS_FREE(tmp126) ; tmp128 = list_reverse_01436_ats_ptr_type (tmp125) ; tmp122 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))tmp127) (arg0, ats_castfn_mac(ats_ptr_type, tmp128)) ; break ; } while (0) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp122 = arg1 ; break ; } while (0) ; return (tmp122) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d1exp_syndef_resolve] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_syndef_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp5, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp6, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp8, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp9, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp10, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp11, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp12, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp13, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp14, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp15, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp16, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("print")) ; statmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("println")) ; statmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("print_newline")) ; statmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("prerr")) ; statmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("prerrln")) ; statmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("prerr_newline")) ; statmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("fprint")) ; statmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("fprintln")) ; statmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("fprint_newline")) ; statmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("gprint")) ; statmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("gprintln")) ; statmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("gprint_newline")) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_syndef_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lexing_error_dats.c0000644000175000017500000010506313431250607023231 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_lexerr_loc ; ats_ptr_type atslab_lexerr_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, _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) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_lexerr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__the_lexerrlst_get) (ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_5 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type revapp_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp4) ; ATSstatic (ats_ptr_type, statmp7) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_lexing_error.dats: 1665(line=54, offs=3) -- 1720(line=56, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make: tmp0 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_lexerr_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_lexerr_node, arg1) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; __ats_lab_ref_01088_ats_int_type: /* ats_int_type tmp3 ; */ tmp3 = arg0 ; tmp2 = atspre_ref_make_elt_tsz ((&tmp3), sizeof(ats_int_type)) ; return (tmp2) ; } /* end of [ref_01088_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp6 ; */ tmp6 = arg0 ; tmp5 = atspre_ref_make_elt_tsz ((&tmp6), sizeof(ats_ptr_type)) ; return (tmp5) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp13 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp12) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp11) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp11 = */ loop_5 (arg0) ; return /* (tmp11) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_lexing_error.dats: 2277(line=87, offs=3) -- 2486(line=94, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_clear () { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_clear: ats_ptrget_mac(ats_int_type, statmp1) = 0 ; tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp4), atslab_1) ; tmp14 = ats_ptrget_mac(ats_ptr_type, tmp9) ; /* tmp10 = */ list_vt_free_01499_ats_ptr_type (tmp14) ; tmp15 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp9) = tmp15 ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_clear] */ /* // /tmp/ATS-Postiats/src/pats_lexing_error.dats: 2550(line=98, offs=3) -- 2856(line=109, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add: tmp17 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp18 = ats_ptrget_mac(ats_int_type, tmp17) ; tmp19 = atspre_add_int_int (tmp18, 1) ; ats_ptrget_mac(ats_int_type, tmp17) = tmp19 ; tmp20 = atspre_lt_int_int (tmp18, 100) ; if (tmp20) { tmp21 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp4), atslab_1) ; tmp23 = ats_ptrget_mac(ats_ptr_type, tmp21) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp22, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp22, atslab_1, tmp23) ; ats_ptrget_mac(ats_ptr_type, tmp21) = tmp22 ; } else { /* empty */ } /* end of [if] */ return /* (tmp16) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_revapp_10: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp32 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp33 = ats_ptrget_mac(ats_ptr_type, tmp32) ; ats_ptrget_mac(ats_ptr_type, tmp32) = arg1 ; tmp34 = arg0 ; arg0 = tmp33 ; arg1 = tmp34 ; goto __ats_lab_revapp_10 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp31 = arg1 ; break ; } while (0) ; return (tmp31) ; } /* end of [revapp_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp30 = revapp_10 (arg0, arg1) ; return (tmp30) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp35 = (ats_sum_ptr_type)0 ; tmp29 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp35) ; return (tmp29) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_lexing_error.dats: 2918(line=113, offs=3) -- 3125(line=120, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__the_lexerrlst_get (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__the_lexerrlst_get: tmp25 = ats_ptrget_mac(ats_int_type, statmp1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp25 ; ats_ptrget_mac(ats_int_type, statmp1) = 0 ; tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp4), atslab_1) ; tmp27 = ats_ptrget_mac(ats_ptr_type, tmp26) ; tmp28 = list_vt_reverse_01506_ats_ptr_type (tmp27) ; tmp36 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp26) = tmp36 ; tmp24 = tmp28 ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__the_lexerrlst_get] */ /* // /tmp/ATS-Postiats/src/pats_lexing_error.dats: 3227(line=128, offs=3) -- 6653(line=218, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_lexerr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; // ATSlocal_void (tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_char_type, tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; ATSlocal (ats_char_type, tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_lexerr: tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_lexerr_loc) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp38) ; tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_lexerr_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp40)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: /* tmp41 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp42 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the char format (oct) is incorrect.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp40)->tag != 1) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp43 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp44 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the char format (hex) is incorrect.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp40)->tag != 2) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp45 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp46 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the char consant is unclosed.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp40)->tag != 5) { goto __ats_lab_8_0 ; } __ats_lab_7_1: /* tmp47 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp48 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the string-char format (oct) is incorrect.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp40)->tag != 6) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp49 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp50 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the string-char format (hex) is incorrect.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp40)->tag != 4) { goto __ats_lab_10_0 ; } __ats_lab_9_1: /* tmp51 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp52 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the string constant is unclosed.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp40)->tag != 7) { goto __ats_lab_11_0 ; } __ats_lab_10_1: /* tmp53 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp54 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the comment block is unclosed.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp40)->tag != 8) { goto __ats_lab_12_0 ; } __ats_lab_11_1: /* tmp55 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp56 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the external code block is unclosed.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp40)->tag != 9) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_3, tmp40, atslab_0) ; /* tmp58 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp59 = */ atspre_fprintf_exn (arg0, ATSstrcst(": illegal digit (oct): %c"), tmp57) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp40)->tag != 10) { goto __ats_lab_14_0 ; } __ats_lab_13_1: /* tmp60 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp61 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the integer digits is empty.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp40)->tag != 11) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp62 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp63 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the floating exponent is empty.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp40)->tag != 12) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp64 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp65 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the floating exponent is missing.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp40)->tag != 13) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp66 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp67 = */ atspre_fprintf_exn (arg0, ATSstrcst(": integral or fractional part is missing.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp40)->tag != 3) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp68 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp69 = */ atspre_fprintf_exn (arg0, ATSstrcst(": the quote symbol (') is dangling.")) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (((ats_sum_ptr_type)tmp40)->tag != 14) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_3, tmp40, atslab_0) ; /* tmp71 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(lexing)")) ; /* tmp72 = */ atspre_fprintf_exn (arg0, ATSstrcst(": unsupported char: %c"), tmp70) ; /* tmp37 = */ atspre_fprint_newline (arg0) ; break ; } while (0) ; return /* (tmp37) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_lexerr] */ /* // /tmp/ATS-Postiats/src/pats_lexing_error.dats: 6803(line=228, offs=7) -- 7040(line=235, offs=27) */ ATSstaticdec() ats_int_type loop_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; ATSlocal (ats_int_type, tmp80) ; __ats_lab_loop_13: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; ATS_FREE(arg1) ; /* tmp79 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_lexerr (arg0, tmp77) ; tmp80 = atspre_sub_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp78 ; arg2 = tmp80 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp76 = arg2 ; break ; } while (0) ; return (tmp76) ; } /* end of [loop_13] */ /* // /tmp/ATS-Postiats/src/pats_lexing_error.dats: 6735(line=224, offs=3) -- 7455(line=254, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_the_lexerrlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp73) ; ATSlocal (ats_int_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_int_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_bool_type, tmp83) ; // ATSlocal_void (tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_the_lexerrlst: /* ats_int_type tmp74 ; */ tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__the_lexerrlst_get ((&tmp74)) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (tmp75 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp81 = loop_13 (arg0, tmp75, tmp74) ; tmp83 = atspre_gt_int_int (tmp81, 0) ; if (tmp83) { /* tmp84 = */ atspre_fprint_string (arg0, ATSstrcst("There are possibly some additional errors.")) ; /* tmp82 = */ atspre_fprint_newline (arg0) ; } else { /* empty */ } /* end of [if] */ tmp73 = 1 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp75 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp73 = 0 ; break ; } while (0) ; return (tmp73) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__fprint_the_lexerrlst] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_error_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp1 = ref_01088_ats_int_type (0) ; statmp7 = (ats_sum_ptr_type)0 ; statmp4 = ref_01088_ats_ptr_type (statmp7) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lexing_error_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_sats.c0000644000175000017500000004214313431250607022213 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_AS_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_AND_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_END_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IN_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_OF_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IF_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SIF_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_CASE_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SCASE_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IFCASE_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_THEN_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_ELSE_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_REC_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHEN_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WITH_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_FOR_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHILE_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_TRY_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BAR_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COLON_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COMMA_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SEMICOLON_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LPAREN_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RPAREN_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACKET_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACKET_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACE_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACE_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BANG_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_DOT_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQ_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQGT_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GT_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTDOT_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTLT_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPTHEN_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPENDIF_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EOF_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0nt_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_c0har_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_f0loat_40) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0tring_41) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_42) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0dext_43) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_dlr_44) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtid_45) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_si0de_46) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_di0de_47) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_pi0de_48) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_stai0de_49) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0taq_50) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ynq_51) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_dqi0de_52) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_arrqi0de_53) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_tmpqi0de_54) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_impqi0de_55) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_l0ab_56) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0rec_57) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_funarrow_58) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_colonwith_59) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_e0xp_60) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atme0xp_61) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rt_62) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0rt_63) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0marg_64) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_a0msrt_65) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0exp_66) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0exp_67) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labs0exp_68) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtext_69) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0qua_70) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_q0marg_71) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_72) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmp0at_73) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labp0at_74) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_as_75) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0fcl_76) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_gm0at_77) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guap0at_78) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_c0lau_79) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_sc0lau_80) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp_81) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp0_82) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp1_83) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmd0exp_84) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labd0exp_85) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_86) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_sta_87) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_dyn_88) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guad0ecl_89) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_staloadarg_90) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_fname_unclosed_91) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_DISCARD_92) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT2_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT3_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12one_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12two_1) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_AS_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_AND_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_END_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IN_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_OF_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IF_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SIF_6.tag = 6 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_CASE_7.tag = 7 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SCASE_8.tag = 8 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IFCASE_9.tag = 9 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_THEN_10.tag = 10 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_ELSE_11.tag = 11 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_REC_12.tag = 12 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHEN_13.tag = 13 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WITH_14.tag = 14 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_FOR_15.tag = 15 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHILE_16.tag = 16 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_TRY_17.tag = 17 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BAR_18.tag = 18 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COLON_19.tag = 19 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COMMA_20.tag = 20 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SEMICOLON_21.tag = 21 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LPAREN_22.tag = 22 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RPAREN_23.tag = 23 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACKET_24.tag = 24 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACKET_25.tag = 25 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACE_26.tag = 26 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACE_27.tag = 27 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BANG_28.tag = 28 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_DOT_29.tag = 29 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQ_30.tag = 30 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQGT_31.tag = 31 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GT_32.tag = 32 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTDOT_33.tag = 33 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTLT_34.tag = 34 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPTHEN_35.tag = 35 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPENDIF_36.tag = 36 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EOF_37.tag = 37 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0nt_38.tag = 38 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_c0har_39.tag = 39 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_f0loat_40.tag = 40 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0tring_41.tag = 41 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_42.tag = 42 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0dext_43.tag = 43 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_dlr_44.tag = 44 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtid_45.tag = 45 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_si0de_46.tag = 46 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_di0de_47.tag = 47 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_pi0de_48.tag = 48 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_stai0de_49.tag = 49 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0taq_50.tag = 50 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ynq_51.tag = 51 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_dqi0de_52.tag = 52 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_arrqi0de_53.tag = 53 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_tmpqi0de_54.tag = 54 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_impqi0de_55.tag = 55 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_l0ab_56.tag = 56 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0rec_57.tag = 57 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_funarrow_58.tag = 58 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_colonwith_59.tag = 59 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_e0xp_60.tag = 60 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atme0xp_61.tag = 61 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rt_62.tag = 62 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0rt_63.tag = 63 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0marg_64.tag = 64 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_a0msrt_65.tag = 65 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0exp_66.tag = 66 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0exp_67.tag = 67 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labs0exp_68.tag = 68 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtext_69.tag = 69 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0qua_70.tag = 70 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_q0marg_71.tag = 71 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_72.tag = 72 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmp0at_73.tag = 73 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labp0at_74.tag = 74 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_as_75.tag = 75 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0fcl_76.tag = 76 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_gm0at_77.tag = 77 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guap0at_78.tag = 78 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_c0lau_79.tag = 79 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_sc0lau_80.tag = 80 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp_81.tag = 81 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp0_82.tag = 82 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp1_83.tag = 83 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmd0exp_84.tag = 84 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labd0exp_85.tag = 85 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_86.tag = 86 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_sta_87.tag = 87 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_dyn_88.tag = 88 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guad0ecl_89.tag = 89 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_staloadarg_90.tag = 90 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_fname_unclosed_91.tag = 91 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_DISCARD_92.tag = 92 ; // _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT2_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT3_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12one_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12two_1.tag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_symenv_dats.c0000644000175000017500000010325613431250607022055 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_map ; ats_ptr_type atslab_maplst ; ats_ptr_type atslab_savedlst ; ats_ptr_type atslab_pervasive ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_3 ; typedef struct { anairiats_rec_3 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_joinwth) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__fprint_symmap) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push) (ats_ref_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__sasp__symenv_vt0ype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type symmaplst_free_0 (ats_ptr_type arg0) ; static ats_ptr_type symmaplst_search_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ptr_alloc_01070_anairiats_rec_2 () ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 1690(line=56, offs=1) -- 1878(line=62, offs=26) */ ATSstaticdec() ats_void_type symmaplst_free_0 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; __ats_lab_symmaplst_free_0: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (tmp1) ; arg0 = tmp2 ; goto __ats_lab_symmaplst_free_0 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp0) */ ; } /* end of [symmaplst_free_0] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 1911(line=66, offs=1) -- 2491(line=84, offs=4) */ ATSstaticdec() ats_ptr_type symmaplst_search_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_symmaplst_search_1: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_2_1: tmp5 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp6 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp8 = ats_ptrget_mac(ats_ptr_type, tmp5) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp8, arg1) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (tmp7 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp4 = tmp7 ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (tmp7 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: tmp10 = ats_ptrget_mac(ats_ptr_type, tmp6) ; tmp9 = symmaplst_search_1 (tmp10, arg1) ; tmp4 = tmp9 ; break ; } while (0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp4 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp4) ; } /* end of [symmaplst_search_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_2 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_ptr_alloc_01070_anairiats_rec_2: tmp13 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_2)) ; return (tmp13) ; } /* end of [ptr_alloc_01070_anairiats_rec_2] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 2787(line=101, offs=9) -- 3081(line=111, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil: tmp12 = ptr_alloc_01070_anairiats_rec_2 () ; tmp14 = ats_selsin_mac(tmp12, atslab_2) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil () ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp14), atslab_map) = tmp15 ; tmp16 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp14), atslab_maplst) = tmp16 ; tmp17 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp14), atslab_savedlst) = tmp17 ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil () ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp14), atslab_pervasive) = tmp18 ; tmp11 = tmp14 ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 3164(line=117, offs=9) -- 3327(line=123, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search: tmp21 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp21, arg1) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp20 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp19 = tmp20 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp20 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp22 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) ; tmp19 = symmaplst_search_1 (tmp22, arg1) ; break ; } while (0) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 3408(line=129, offs=3) -- 3457(line=129, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert: /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_insert (&ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map), arg1, arg2) ; return /* (tmp23) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 3529(line=136, offs=3) -- 3673(line=141, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop: tmp25 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) ; tmp26 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) ; if (tmp26 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_symenv.dats: 3577(line=138, offs=7) -- 3615(line=138, offs=45)") ; } tmp27 = ats_caselptrlab_mac(anairiats_sum_1, tmp26, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_1, tmp26, atslab_1) ; ATS_FREE(tmp26) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) = tmp27 ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) = tmp28 ; tmp24 = tmp25 ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 3726(line=145, offs=3) -- 3804(line=148, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop_free (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop_free: tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop (arg0) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (tmp30) ; return /* (tmp29) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop_free] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 3858(line=152, offs=3) -- 3971(line=155, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push: tmp33 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) ; tmp34 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) ; tmp32 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp32, atslab_0, tmp33) ; ats_selptrset_mac(anairiats_sum_1, tmp32, atslab_1, tmp34) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) = tmp32 ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) = arg1 ; return /* (tmp31) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 4025(line=159, offs=3) -- 4110(line=162, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil () ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push (arg0, tmp36) ; return /* (tmp35) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 4190(line=168, offs=3) -- 4286(line=173, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_top_clear (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_top_clear: tmp39 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (tmp39) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil () ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) = tmp40 ; return /* (tmp37) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_top_clear] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 4373(line=179, offs=8) -- 4589(line=187, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (anairiats_rec_3, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur: tmp42 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil () ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) = tmp43 ; tmp44 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) ; tmp45 = (ats_sum_ptr_type)0 ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) = tmp45 ; tmp47.atslab_0 = tmp42 ; tmp47.atslab_1 = tmp44 ; tmp48 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_savedlst) ; tmp46 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp46, atslab_0, tmp47) ; ats_selptrset_mac(anairiats_sum_4, tmp46, atslab_1, tmp48) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_savedlst) = tmp46 ; return /* (tmp41) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 4650(line=191, offs=8) -- 4889(line=200, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (anairiats_rec_3, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore: tmp50 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) ; tmp52 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) ; /* tmp51 = */ symmaplst_free_0 (tmp52) ; tmp53 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_savedlst) ; if (tmp53 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_symenv.dats: 4757(line=195, offs=7) -- 4793(line=195, offs=43)") ; } tmp54 = ats_caselptrlab_mac(anairiats_sum_4, tmp53, atslab_0) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_4, tmp53, atslab_1) ; ATS_FREE(tmp53) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_savedlst) = tmp55 ; tmp56 = ats_select_mac(tmp54, atslab_0) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) = tmp56 ; tmp57 = ats_select_mac(tmp54, atslab_1) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) = tmp57 ; tmp49 = tmp50 ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 4973(line=206, offs=8) -- 5416(line=226, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; // ATSlocal_void (tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin: tmp59 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) ; if (tmp59 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_symenv.dats: 5012(line=209, offs=5) -- 5039(line=209, offs=32)") ; } tmp60 = ats_caselptrlab_mac(anairiats_sum_1, tmp59, atslab_0) ; tmp61 = ats_caselptrlab_mac(anairiats_sum_1, tmp59, atslab_1) ; ATS_FREE(tmp59) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (tmp60) ; if (tmp61 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_symenv.dats: 5070(line=211, offs=5) -- 5097(line=211, offs=32)") ; } tmp63 = ats_caselptrlab_mac(anairiats_sum_1, tmp61, atslab_0) ; tmp64 = ats_caselptrlab_mac(anairiats_sum_1, tmp61, atslab_1) ; ATS_FREE(tmp61) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_maplst) = tmp64 ; tmp65 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) ; ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map) = tmp63 ; /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_joinwth (&ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_map), tmp65) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (tmp65) ; return /* (tmp58) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 5504(line=232, offs=3) -- 5549(line=233, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search: tmp68 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_pervasive) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp68, arg1) ; return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 5623(line=238, offs=3) -- 5674(line=239, offs=38) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_insert: /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_insert (&ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_pervasive), arg1, arg2) ; return /* (tmp69) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_insert] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 5761(line=246, offs=3) -- 5855(line=252, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth0 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth0: /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_joinwth (&ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_pervasive), arg1) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_free (arg1) ; return /* (tmp70) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth0] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 5933(line=256, offs=3) -- 5981(line=256, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth1 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth1: /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_joinwth (&ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg0), atslab_pervasive), arg1) ; return /* (tmp72) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth1] */ /* // /tmp/ATS-Postiats/src/pats_symenv.dats: 6072(line=263, offs=3) -- 6119(line=263, offs=50) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__fprint_symenv_map (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__fprint_symenv_map: tmp74 = ats_select_mac(ats_ptrget_mac(anairiats_rec_2, arg1), atslab_map) ; /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__fprint_symmap (arg0, tmp74, arg2) ; return /* (tmp73) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__fprint_symenv_map] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_symenv_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_intinf_sats.c0000644000175000017500000000175113431250607022037 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload_flag = 1 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_intinf_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_taggen_dats.c0000644000175000017500000016405413431250607022004 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_tagent_sym ; ats_ptr_type atslab_tagent_loc ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_i0de_loc ; ats_ptr_type atslab_i0de_sym ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_p0at_loc ; ats_ptr_type atslab_p0at_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_d0ecl_loc ; ats_ptr_type atslab_d0ecl_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_t0kindef_loc ; ats_ptr_type atslab_t0kindef_sym ; ats_ptr_type atslab_t0kindef_loc_id ; ats_ptr_type atslab_t0kindef_def ; } anairiats_rec_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_s0aspdec_loc ; ats_ptr_type atslab_s0aspdec_qid ; ats_ptr_type atslab_s0aspdec_arg ; ats_ptr_type atslab_s0aspdec_res ; ats_ptr_type atslab_s0aspdec_def ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_sqi0de_loc ; ats_ptr_type atslab_sqi0de_qua ; ats_ptr_type atslab_sqi0de_sym ; } anairiats_rec_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_i0mpdec_loc ; ats_ptr_type atslab_i0mpdec_qid ; ats_ptr_type atslab_i0mpdec_arg ; ats_ptr_type atslab_i0mpdec_res ; ats_ptr_type atslab_i0mpdec_def ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_impqi0de_loc ; ats_ptr_type atslab_impqi0de_qua ; ats_ptr_type atslab_impqi0de_sym ; ats_ptr_type atslab_impqi0de_arg ; } anairiats_rec_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_19 ; typedef struct { ats_ptr_type atslab_guad0ecl_loc ; ats_ptr_type atslab_guad0ecl_node ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_s0expdef_loc ; ats_ptr_type atslab_s0expdef_sym ; ats_ptr_type atslab_s0expdef_loc_id ; ats_ptr_type atslab_s0expdef_arg ; ats_ptr_type atslab_s0expdef_res ; ats_ptr_type atslab_s0expdef_def ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_e0xndec_loc ; ats_ptr_type atslab_e0xndec_fil ; ats_ptr_type atslab_e0xndec_sym ; ats_ptr_type atslab_e0xndec_qua ; ats_ptr_type atslab_e0xndec_arg ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_d0atdec_loc ; ats_ptr_type atslab_d0atdec_loc_hd ; ats_ptr_type atslab_d0atdec_fil ; ats_ptr_type atslab_d0atdec_sym ; ats_ptr_type atslab_d0atdec_arg ; ats_ptr_type atslab_d0atdec_con ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_d0cstdec_loc ; ats_ptr_type atslab_d0cstdec_fil ; ats_ptr_type atslab_d0cstdec_sym ; ats_ptr_type atslab_d0cstdec_arg ; ats_ptr_type atslab_d0cstdec_eff ; ats_ptr_type atslab_d0cstdec_res ; ats_ptr_type atslab_d0cstdec_extopt ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_m0acdef_loc ; ats_ptr_type atslab_m0acdef_sym ; ats_ptr_type atslab_m0acdef_arg ; ats_ptr_type atslab_m0acdef_def ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_f0undec_loc ; ats_ptr_type atslab_f0undec_sym ; ats_ptr_type atslab_f0undec_sym_loc ; ats_ptr_type atslab_f0undec_arg ; ats_ptr_type atslab_f0undec_eff ; ats_ptr_type atslab_f0undec_res ; ats_ptr_type atslab_f0undec_def ; ats_ptr_type atslab_f0undec_ann ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_v0aldec_loc ; ats_ptr_type atslab_v0aldec_pat ; ats_ptr_type atslab_v0aldec_def ; ats_ptr_type atslab_v0aldec_ann ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_v0ardec_loc ; ats_int_type atslab_v0ardec_knd ; ats_ptr_type atslab_v0ardec_sym ; ats_ptr_type atslab_v0ardec_sym_loc ; ats_ptr_type atslab_v0ardec_pfat ; ats_ptr_type atslab_v0ardec_type ; ats_ptr_type atslab_v0ardec_init ; } anairiats_rec_28 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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_syntax_2esats__P0Tide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tdqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Topid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Cone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ctwo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ccons_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfixity_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cnonfix_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymintr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymelim_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpdef_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpundef_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ctkindef_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csexpdefs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csaspdec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cexndecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatdecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdcstdecs_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cimpdec_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cmacdefs_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfundecs_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvaldecs_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvardecs_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cinclude_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaload_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadnm_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadloc_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdynload_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Clocal_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cguadecl_38) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_lint_type, atspre_add_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_void_type, atspre_fprint_lint) (ats_ptr_type, ats_lint_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, 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, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_nrow) (ats_ptr_type) ; ATSextern_fun(ats_lint_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_ntot) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0ecl) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_guad0ecl) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_s0expdeflst) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_e0xndeclst) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0atdeclst) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0cstdeclst) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_m0acdeflst) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_f0undeclst) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0aldeclst) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0ardeclst) (ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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 () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__sasp__tagent_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type tagentlst_add_0 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type TAGENT_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type tagentlst_add_symloc_2 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type tagentlst_add_i0de_3 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type tagentlst_add_i0delst_4 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type tagentlst_add_p0at_5 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type taggen_guad0ecl_node_8 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type revapp_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type fprint_name_23 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type fprint_ent_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_25 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 1704(line=56, offs=5) -- 1815(line=62, offs=4) */ ATSstaticdec() ats_void_type tagentlst_add_0 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_tagentlst_add_0: tmp1 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp1, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_0, tmp1, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp1 ; return /* (tmp0) */ ; } /* end of [tagentlst_add_0] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 1977(line=74, offs=5) -- 2067(line=79, offs=2) */ ATSstaticdec() ats_ptr_type TAGENT_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_TAGENT_1: tmp2 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp2, atslab_tagent_sym, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp2, atslab_tagent_loc, arg1) ; return (tmp2) ; } /* end of [TAGENT_1] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 2971(line=121, offs=1) -- 3095(line=126, offs=41) */ ATSstaticdec() ats_void_type tagentlst_add_symloc_2 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_tagentlst_add_symloc_2: tmp4 = TAGENT_1 (arg1, arg2) ; /* tmp3 = */ tagentlst_add_0 (arg0, tmp4) ; return /* (tmp3) */ ; } /* end of [tagentlst_add_symloc_2] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 3155(line=132, offs=1) -- 3276(line=137, offs=2) */ ATSstaticdec() ats_void_type tagentlst_add_i0de_3 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_tagentlst_add_i0de_3: tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_i0de_sym) ; tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_i0de_loc) ; /* tmp5 = */ tagentlst_add_symloc_2 (arg0, tmp6, tmp7) ; return /* (tmp5) */ ; } /* end of [tagentlst_add_i0de_3] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 3337(line=142, offs=1) -- 3622(line=156, offs=2) */ ATSstaticdec() ats_void_type tagentlst_add_i0delst_4 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; // ATSlocal_void (tmp11) ; __ats_lab_tagentlst_add_i0delst_4: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp10 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; /* tmp11 = */ tagentlst_add_i0de_3 (arg0, tmp9) ; arg0 = arg0 ; arg1 = tmp10 ; goto __ats_lab_tagentlst_add_i0delst_4 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp8) */ ; } /* end of [tagentlst_add_i0delst_4] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 3686(line=161, offs=1) -- 4113(line=184, offs=4) */ ATSstaticdec() ats_void_type tagentlst_add_p0at_5 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_tagentlst_add_p0at_5: tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p0at_loc) ; tmp14 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p0at_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp14)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_4, tmp14, atslab_0) ; /* tmp12 = */ tagentlst_add_symloc_2 (arg0, tmp15, tmp13) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp14)->tag != 1) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_5, tmp14, atslab_1) ; /* tmp12 = */ tagentlst_add_symloc_2 (arg0, tmp16, tmp13) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp14)->tag != 2) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_4, tmp14, atslab_0) ; /* tmp12 = */ tagentlst_add_symloc_2 (arg0, tmp17, tmp13) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp14)->tag != 17) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_5, tmp14, atslab_0) ; arg0 = arg0 ; arg1 = tmp18 ; goto __ats_lab_tagentlst_add_p0at_5 ; // tail call break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: break ; } while (0) ; return /* (tmp12) */ ; } /* end of [tagentlst_add_p0at_5] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 4194(line=190, offs=3) -- 6235(line=269, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0ecl (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0ecl: tmp20 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d0ecl_loc) ; tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d0ecl_node) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp21)->tag != 0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp21)->tag != 1) { goto __ats_lab_9_0 ; } __ats_lab_8_1: break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp21)->tag != 2) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_4, tmp21, atslab_0) ; /* tmp19 = */ tagentlst_add_i0delst_4 (arg1, tmp22) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp21)->tag != 3) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_4, tmp21, atslab_0) ; /* tmp19 = */ tagentlst_add_i0delst_4 (arg1, tmp23) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp21)->tag != 4) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_7, tmp21, atslab_0) ; /* tmp19 = */ tagentlst_add_i0de_3 (arg1, tmp24) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp21)->tag != 5) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_5, tmp21, atslab_0) ; /* tmp19 = */ tagentlst_add_symloc_2 (arg1, tmp25, tmp20) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp21)->tag != 6) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_4, tmp21, atslab_0) ; /* tmp19 = */ tagentlst_add_symloc_2 (arg1, tmp26, tmp20) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp21)->tag != 14) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_4, tmp21, atslab_0) ; tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp27), atslab_t0kindef_sym) ; tmp29 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp27), atslab_t0kindef_loc_id) ; /* tmp19 = */ tagentlst_add_symloc_2 (arg1, tmp28, tmp29) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp21)->tag != 15) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_9, tmp21, atslab_1) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_s0expdeflst (tmp30, arg1) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp21)->tag != 16) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_4, tmp21, atslab_0) ; tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp31), atslab_s0aspdec_qid) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp32), atslab_sqi0de_sym) ; tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp32), atslab_sqi0de_loc) ; /* tmp19 = */ tagentlst_add_symloc_2 (arg1, tmp33, tmp34) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp21)->tag != 18) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_4, tmp21, atslab_0) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_e0xndeclst (tmp35, arg1) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp21)->tag != 19) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_12, tmp21, atslab_1) ; tmp37 = ats_caselptrlab_mac(anairiats_sum_12, tmp21, atslab_2) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0atdeclst (tmp36, arg1) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_s0expdeflst (tmp37, arg1) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp21)->tag != 25) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_13, tmp21, atslab_3) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0cstdeclst (tmp39, arg1) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp21)->tag != 26) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_12, tmp21, atslab_2) ; tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp40), atslab_i0mpdec_qid) ; tmp42 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp41), atslab_impqi0de_sym) ; tmp43 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp41), atslab_impqi0de_loc) ; /* tmp19 = */ tagentlst_add_symloc_2 (arg1, tmp42, tmp43) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp21)->tag != 27) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_16, tmp21, atslab_2) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_m0acdeflst (tmp44, arg1) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp21)->tag != 28) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_17, tmp21, atslab_2) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_f0undeclst (tmp45, arg1) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp21)->tag != 29) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_18, tmp21, atslab_2) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0aldeclst (tmp46, arg1) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp21)->tag != 30) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_9, tmp21, atslab_1) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0ardeclst (tmp47, arg1) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp21)->tag != 31) { goto __ats_lab_26_0 ; } __ats_lab_25_1: break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp21)->tag != 32) { goto __ats_lab_27_0 ; } __ats_lab_26_1: break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp21)->tag != 33) { goto __ats_lab_28_0 ; } __ats_lab_27_1: break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp21)->tag != 34) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_17, tmp21, atslab_2) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist (tmp48, arg1) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp21)->tag != 36) { goto __ats_lab_30_0 ; } __ats_lab_29_1: break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp21)->tag != 37) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_5, tmp21, atslab_0) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist (tmp49, arg1) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist (tmp49, arg1) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp21)->tag != 38) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_5, tmp21, atslab_1) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_guad0ecl (tmp51, arg1) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp52 = TAGENT_1 (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty, tmp20) ; /* tmp19 = */ tagentlst_add_0 (arg1, tmp52) ; break ; } while (0) ; return /* (tmp19) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0ecl] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 6311(line=275, offs=3) -- 6538(line=289, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0ecl (tmp54, arg1) ; arg0 = tmp55 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist ; // tail call break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: break ; } while (0) ; return /* (tmp53) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 6600(line=296, offs=1) -- 6997(line=318, offs=4) */ ATSstaticdec() ats_void_type taggen_guad0ecl_node_8 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab_taggen_guad0ecl_node_8: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist (tmp58, arg1) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_17, arg0, atslab_1) ; tmp60 = ats_caselptrlab_mac(anairiats_sum_17, arg0, atslab_2) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist (tmp59, arg1) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist (tmp60, arg1) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_19, arg0, atslab_3) ; arg0 = tmp62 ; arg1 = arg1 ; goto __ats_lab_taggen_guad0ecl_node_8 ; // tail call break ; } while (0) ; return /* (tmp57) */ ; } /* end of [taggen_guad0ecl_node_8] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 7085(line=323, offs=17) -- 7147(line=324, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_guad0ecl (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_guad0ecl: tmp64 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_guad0ecl_node) ; /* tmp63 = */ taggen_guad0ecl_node_8 (tmp64, arg1) ; return /* (tmp63) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_guad0ecl] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 7252(line=333, offs=3) -- 7568(line=349, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_s0expdeflst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_s0expdeflst: 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: tmp66 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp68 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, tmp66), atslab_s0expdef_sym) ; tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, tmp66), atslab_s0expdef_loc_id) ; /* tmp70 = */ tagentlst_add_symloc_2 (arg1, tmp68, tmp69) ; arg0 = tmp67 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_s0expdeflst ; // 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 /* (tmp65) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_s0expdeflst] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 7652(line=355, offs=3) -- 7962(line=371, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_e0xndeclst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_e0xndeclst: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp73 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp72), atslab_e0xndec_sym) ; tmp75 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp72), atslab_e0xndec_loc) ; /* tmp76 = */ tagentlst_add_symloc_2 (arg1, tmp74, tmp75) ; arg0 = tmp73 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_e0xndeclst ; // tail call break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: break ; } while (0) ; return /* (tmp71) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_e0xndeclst] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 8045(line=377, offs=3) -- 8355(line=393, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0atdeclst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0atdeclst: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp80 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, tmp78), atslab_d0atdec_sym) ; tmp81 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, tmp78), atslab_d0atdec_loc) ; /* tmp82 = */ tagentlst_add_symloc_2 (arg1, tmp80, tmp81) ; arg0 = tmp79 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0atdeclst ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: break ; } while (0) ; return /* (tmp77) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0atdeclst] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 8439(line=399, offs=3) -- 8752(line=415, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0cstdeclst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; // ATSlocal_void (tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0cstdeclst: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp85 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, tmp84), atslab_d0cstdec_sym) ; tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, tmp84), atslab_d0cstdec_loc) ; /* tmp88 = */ tagentlst_add_symloc_2 (arg1, tmp86, tmp87) ; arg0 = tmp85 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0cstdeclst ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: break ; } while (0) ; return /* (tmp83) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0cstdeclst] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 8836(line=421, offs=3) -- 9113(line=435, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_m0acdeflst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; // ATSlocal_void (tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_m0acdeflst: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp92 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, tmp90), atslab_m0acdef_sym) ; tmp93 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, tmp90), atslab_m0acdef_loc) ; /* tmp94 = */ tagentlst_add_symloc_2 (arg1, tmp92, tmp93) ; arg0 = tmp91 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_m0acdeflst ; // tail call break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: break ; } while (0) ; return /* (tmp89) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_m0acdeflst] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 9196(line=441, offs=3) -- 9477(line=455, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_f0undeclst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_f0undeclst: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp97 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp98 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp96), atslab_f0undec_sym) ; tmp99 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp96), atslab_f0undec_sym_loc) ; /* tmp100 = */ tagentlst_add_symloc_2 (arg1, tmp98, tmp99) ; arg0 = tmp97 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_f0undeclst ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: break ; } while (0) ; return /* (tmp95) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_f0undeclst] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 9560(line=461, offs=3) -- 9801(line=474, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0aldeclst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; // ATSlocal_void (tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0aldeclst: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, tmp102), atslab_v0aldec_pat) ; /* tmp105 = */ tagentlst_add_p0at_5 (arg1, tmp104) ; arg0 = tmp103 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0aldeclst ; // tail call break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: break ; } while (0) ; return /* (tmp101) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0aldeclst] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 9884(line=480, offs=3) -- 10165(line=494, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0ardeclst (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; // ATSlocal_void (tmp111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0ardeclst: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp109 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, tmp107), atslab_v0ardec_sym) ; tmp110 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, tmp107), atslab_v0ardec_sym_loc) ; /* tmp111 = */ tagentlst_add_symloc_2 (arg1, tmp109, tmp110) ; arg0 = tmp108 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0ardeclst ; // tail call break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: break ; } while (0) ; return /* (tmp106) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_v0ardeclst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; __ats_lab_revapp_21: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp118 = &ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp119 = ats_ptrget_mac(ats_ptr_type, tmp118) ; ats_ptrget_mac(ats_ptr_type, tmp118) = arg1 ; tmp120 = arg0 ; arg0 = tmp119 ; arg1 = tmp120 ; goto __ats_lab_revapp_21 ; // tail call break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: tmp117 = arg1 ; break ; } while (0) ; return (tmp117) ; } /* end of [revapp_21] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp116 = revapp_21 (arg0, arg1) ; return (tmp116) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp121 = (ats_sum_ptr_type)0 ; tmp115 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp121) ; return (tmp115) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 10240(line=499, offs=13) -- 10375(line=507, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__taggen_proc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; // ATSlocal_void (tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__taggen_proc: /* ats_ptr_type tmp113 ; */ tmp113 = (ats_sum_ptr_type)0 ; /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__taggen_d0eclist (arg0, (&tmp113)) ; tmp112 = list_vt_reverse_01506_ats_ptr_type (tmp113) ; return (tmp112) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__taggen_proc] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 10478(line=515, offs=5) -- 10638(line=523, offs=2) */ ATSstaticdec() ats_void_type fprint_name_23 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp123) ; // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp125) ; __ats_lab_fprint_name_23: /* tmp124 = */ atspre_fprint_char (arg0, '"') ; /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, arg1) ; /* tmp123 = */ atspre_fprint_char (arg0, '"') ; return /* (tmp123) */ ; } /* end of [fprint_name_23] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 10646(line=525, offs=5) -- 11103(line=544, offs=4) */ ATSstaticdec() ats_void_type fprint_ent_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; ATSlocal (ats_int_type, tmp134) ; ATSlocal (ats_int_type, tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; ATSlocal (ats_lint_type, tmp138) ; ATSlocal (ats_lint_type, tmp139) ; __ats_lab_fprint_ent_24: tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_tagent_loc) ; /* tmp128 = */ atspre_fprint_string (arg0, ATSstrcst("{\n")) ; /* tmp129 = */ atspre_fprint_string (arg0, ATSstrcst("\"name\": ")) ; tmp131 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_tagent_sym) ; /* tmp130 = */ fprint_name_23 (arg0, tmp131) ; /* tmp132 = */ atspre_fprint_string (arg0, ATSstrcst(", \"nline\": ")) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_nrow (tmp127) ; tmp134 = atspre_add_int_int (tmp135, 1) ; /* tmp133 = */ atspre_fprint_int (arg0, tmp134) ; /* tmp136 = */ atspre_fprint_string (arg0, ATSstrcst(", \"nchar\": ")) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_beg_ntot (tmp127) ; tmp138 = atspre_add_lint_lint (tmp139, 1L) ; /* tmp137 = */ atspre_fprint_lint (arg0, tmp138) ; /* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst("\n}\n")) ; return /* (tmp126) */ ; } /* end of [fprint_ent_24] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 11134(line=546, offs=5) -- 11469(line=566, offs=4) */ ATSstaticdec() ats_void_type auxlst_25 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_bool_type, tmp144) ; // ATSlocal_void (tmp145) ; ATSlocal (ats_int_type, tmp146) ; __ats_lab_auxlst_25: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_0, arg2, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_0, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp144 = atspre_gt_int_int (arg1, 0) ; if (tmp144) { /* tmp143 = */ atspre_fprint_string (arg0, ATSstrcst(",\n")) ; } else { /* empty */ } /* end of [if] */ /* tmp145 = */ fprint_ent_24 (arg0, tmp141) ; tmp146 = atspre_add_int_int (arg1, 1) ; arg0 = arg0 ; arg1 = tmp146 ; arg2 = tmp142 ; goto __ats_lab_auxlst_25 ; // tail call break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: break ; } while (0) ; return /* (tmp140) */ ; } /* end of [auxlst_25] */ /* // /tmp/ATS-Postiats/src/pats_taggen.dats: 10448(line=513, offs=3) -- 11895(line=581, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__fprint_entlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__fprint_entlst: /* tmp147 = */ atspre_fprint_string (arg0, ATSstrcst("{\n")) ; /* tmp148 = */ atspre_fprint_string (arg0, ATSstrcst("\"tagfile\": ")) ; /* tmp149 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp150 = */ atspre_fprint_string (arg0, arg1) ; /* tmp151 = */ atspre_fprint_string (arg0, ATSstrcst("\"")) ; /* tmp152 = */ atspre_fprint_string (arg0, ATSstrcst(",\n")) ; /* tmp153 = */ atspre_fprint_string (arg0, ATSstrcst("\"tagentarr\": [\n")) ; /* tmp154 = */ auxlst_25 (arg0, 0, arg2) ; /* tmp155 = */ atspre_fprint_string (arg0, ATSstrcst("]\n")) ; /* tmp122 = */ atspre_fprint_string (arg0, ATSstrcst("}\n")) ; return /* (tmp122) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__fprint_entlst] */ /* static load function */ extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_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_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__staload_flag = 1 ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_taggen_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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 () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_taggen_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_patcon_dats.c0000644000175000017500000024351513431250607023315 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_3 ; typedef struct { anairiats_rec_3 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_p3at_loc ; ats_ptr_type atslab_p3at_node ; ats_ptr_type atslab_p3at_type ; ats_ptr_type atslab_p3at_dvaropt ; ats_ptr_type atslab_p3at_type_left ; } anairiats_rec_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_13 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKlincon_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trup_con_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_trdn_con_arity_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_p2at_free_update_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__PATCONTRUP_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerrf_exn) (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_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_vwtp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_get_head) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_1) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_pckind_pckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_p3at_set_dvaropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_p3at_set_type_left) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve) (ats_ptr_type, ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize_none) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p2at_trup_con) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_lincon_update) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_free_update) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_unfold_update) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__PATCONTRUP_0) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_void_type loop_2 (ats_ptr_type arg0) ; static ats_void_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_ptr_type aux_5 (ats_ptr_type arg0) ; static ats_void_type auxvar_6 (ats_ptr_type arg0) ; static ats_void_type auxpat_7 (ats_ptr_type arg0) ; static ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxck_12 (ats_ptr_type arg0) ; static ats_ptr_type auxpat1_14 (ats_ptr_type arg0) ; static ats_ptr_type auxpat2_15 (ats_ptr_type arg0) ; static ats_ptr_type s2dcp_make_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_arity_21 (ats_ptr_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 1671(line=52, offs=28) -- 1702(line=52, offs=59) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_patcon")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 2602(line=105, offs=7) -- 2825(line=112, offs=24) */ ATSstaticdec() ats_void_type loop_2 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp9) ; ATSlocal (anairiats_rec_3, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_loop_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp11 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp13 = ats_select_mac(tmp10, atslab_s2qua_svs) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp13) ; arg0 = tmp11 ; goto __ats_lab_loop_2 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp9) */ ; } /* end of [loop_2] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 2904(line=119, offs=7) -- 3160(line=127, offs=24) */ ATSstaticdec() ats_void_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp15) ; ATSlocal (anairiats_rec_3, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab_loop_3: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp17 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp19 = ats_select_mac(tmp16, atslab_s2qua_sps) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (arg0, tmp19) ; arg0 = arg0 ; arg1 = tmp17 ; goto __ats_lab_loop_3 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp15) */ ; } /* end of [loop_3] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; __ats_lab_prerr_error3_loc_02089_: /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp29 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp29) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 4203(line=161, offs=11) -- 4453(line=168, offs=37) */ ATSstaticdec() ats_ptr_type aux_5 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab_aux_5: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; tmp47 = aux_5 (tmp45) ; tmp44 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp44, atslab_0, tmp46) ; ats_selptrset_mac(anairiats_sum_9, tmp44, atslab_1, tmp47) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp44 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp44) ; } /* end of [aux_5] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 2461(line=97, offs=3) -- 4611(line=176, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p2at_trup_con (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_bool_type, tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p2at_trup_con: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp3)->tag != 2) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 2506(line=100, offs=5) -- 2579(line=102, offs=19)") ; } tmp4 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_1) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_2) ; tmp6 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_3) ; tmp7 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_4) ; tmp8 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_5) ; /* tmp14 = */ loop_2 (tmp5) ; /* tmp20 = */ loop_3 (tmp2, tmp5) ; tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp6), atslab_s2exp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp21)->tag != 19) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_6, tmp21, atslab_3) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_6, tmp21, atslab_4) ; tmp24 = ats_caselptrlab_mac(anairiats_sum_6, tmp21, atslab_5) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve (tmp2, tmp7, tmp22) ; tmp27 = atspre_gt_int_int (tmp25, 0) ; if (tmp27) { /* tmp28 = */ prerr_error3_loc_02089_ (tmp2) ; /* tmp31 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_patcon.dats"), ATSstrcst("p2at_trup_con")) ; /* tmp32 = */ atspre_prerr_string (ATSstrcst(": proof arity mismatch: the constructor [")) ; /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con (tmp4) ; /* tmp34 = */ atspre_prerrf_exn (ATSstrcst("] requires [%i] arguments."), tmp22) ; /* tmp35 = */ atspre_prerr_newline () ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp37 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp37)->tag = 14 ; ats_selptrset_mac(anairiats_sum_7, tmp37, atslab_0, arg0) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp37) ; } else { /* empty */ } /* end of [if] */ tmp1 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp1, atslab_0, tmp8) ; ats_selptrset_mac(anairiats_sum_8, tmp1, atslab_1, tmp23) ; ats_selptrset_mac(anairiats_sum_8, tmp1, atslab_2, tmp24) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: /* tmp38 = */ prerr_error3_loc_02089_ (tmp2) ; /* tmp39 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_patcon.dats"), ATSstrcst("p2at_trup_con")) ; /* tmp40 = */ atspre_prerr_string (ATSstrcst(": the constructor pattern is ill-typed.")) ; /* tmp41 = */ atspre_prerr_newline () ; tmp43 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp43)->tag = 14 ; ats_selptrset_mac(anairiats_sum_7, tmp43, atslab_0, arg0) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp43) ; tmp48 = aux_5 (tmp8) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; tmp1 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp1, atslab_0, tmp8) ; ats_selptrset_mac(anairiats_sum_8, tmp1, atslab_1, tmp48) ; ats_selptrset_mac(anairiats_sum_8, tmp1, atslab_2, tmp49) ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p2at_trup_con] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 4809(line=190, offs=5) -- 5043(line=205, offs=4) */ ATSstaticdec() ats_void_type auxvar_6 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp50) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab_auxvar_6: tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (arg0) ; if (tmp51) { tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (arg0) ; if (tmp52 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 4913(line=198, offs=7) -- 4953(line=199, offs=36)") ; } tmp53 = ats_caselptrlab_mac(anairiats_sum_10, tmp52, atslab_0) ; tmp54 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp54)->tag = 1 ; ats_selptrset_mac(anairiats_sum_7, tmp54, atslab_0, tmp53) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (arg0, tmp54) ; } else { /* empty */ } /* end of [if] */ return /* (tmp50) */ ; } /* end of [auxvar_6] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 5068(line=207, offs=5) -- 5210(line=215, offs=4) */ ATSstaticdec() ats_void_type auxpat_7 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab_auxpat_7: tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_p3at_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp56)->tag != 1) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_7, tmp56, atslab_0) ; /* tmp55 = */ auxvar_6 (tmp57) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp56)->tag != 14) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_12, tmp56, atslab_0) ; /* tmp55 = */ auxvar_6 (tmp58) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: break ; } while (0) ; return /* (tmp55) */ ; } /* end of [auxpat_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; // ATSlocal_void (tmp66) ; __ats_lab_loop_11: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp65 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; /* tmp66 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp64, arg2) ; arg0 = tmp65 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: break ; } while (0) ; return /* (tmp63) */ ; } /* end of [loop_11] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp62) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp62 = */ loop_11 (arg0, arg1, arg2) ; return /* (tmp62) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp61) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp61 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp61) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 5284(line=220, offs=20) -- 5422(line=226, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_lincon_update (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_lincon_update: /* tmp60 = */ list_app_fun_01301_ats_ptr_type (arg2, &auxpat_7) ; tmp68 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_p3at_type) ; tmp67 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp67, atslab_0, tmp68) ; /* tmp59 = */ patsopt_p3at_set_type_left (arg0, tmp67) ; return /* (tmp59) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_lincon_update] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 5623(line=239, offs=5) -- 6133(line=258, offs=4) */ ATSstaticdec() ats_void_type auxck_12 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab_auxck_12: tmp70 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_p3at_loc) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left (arg0) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp71 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_10, tmp71, atslab_0) ; /* tmp73 = */ prerr_error3_loc_02089_ (tmp70) ; /* tmp74 = */ atspre_prerr_string (ATSstrcst(": a value matching this pattern may not be freed")) ; /* tmp75 = */ atspre_prerr_string (ATSstrcst(": it contains a linear component of the following type [")) ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp (tmp72) ; /* tmp77 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp78 = */ atspre_prerr_newline () ; tmp79 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp79)->tag = 16 ; ats_selptrset_mac(anairiats_sum_7, tmp79, atslab_0, arg0) ; /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp79) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp71 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: break ; } while (0) ; return /* (tmp69) */ ; } /* end of [auxck_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 6206(line=264, offs=3) -- 6268(line=265, offs=39) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_free_update (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_free_update: /* tmp80 = */ list_app_fun_01301_ats_ptr_type (arg2, &auxck_12) ; return /* (tmp80) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_free_update] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 6471(line=279, offs=5) -- 7526(line=326, offs=4) */ ATSstaticdec() ats_ptr_type auxpat1_14 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; // ATSlocal_void (tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; // ATSlocal_void (tmp101) ; __ats_lab_auxpat1_14: tmp82 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_p3at_node) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp82)->tag != 0) { goto __ats_lab_18_0 ; } __ats_lab_15_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_7, tmp82, atslab_0) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left (arg0) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (tmp84 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp85 = tmp84 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (tmp84 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_p3at_type) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_1 (tmp87) ; tmp85 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp85, atslab_0, tmp86) ; break ; } while (0) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp83, tmp85) ; tmp81 = tmp83 ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp82)->tag != 1) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp89 = ats_caselptrlab_mac(anairiats_sum_7, tmp82, atslab_0) ; tmp81 = tmp89 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp82)->tag != 14) { goto __ats_lab_22_0 ; } __ats_lab_19_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_12, tmp82, atslab_0) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left (arg0) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp91 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp90, tmp91) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp91 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: break ; } while (0) ; tmp81 = tmp90 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp94 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_p3at_loc) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any (tmp94) ; tmp96 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp96, atslab_0, tmp93) ; /* tmp95 = */ patsopt_p3at_set_dvaropt (arg0, tmp96) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left (arg0) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (tmp97 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp98 = tmp97 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (tmp97 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp100 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_p3at_type) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_1 (tmp100) ; tmp98 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp98, atslab_0, tmp99) ; break ; } while (0) ; /* tmp101 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp93, tmp98) ; tmp81 = tmp93 ; break ; } while (0) ; return (tmp81) ; } /* end of [auxpat1_14] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 7552(line=328, offs=5) -- 7804(line=337, offs=4) */ ATSstaticdec() ats_ptr_type auxpat2_15 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab_auxpat2_15: tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_p3at_loc) ; tmp104 = auxpat1_14 (arg0) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp104) ; if (tmp105 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 7644(line=332, offs=7) -- 7677(line=332, offs=40)") ; } tmp106 = ats_caselptrlab_mac(anairiats_sum_10, tmp105, atslab_0) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize_none (tmp103, tmp104, tmp106) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp104) ; if (tmp108 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 7758(line=334, offs=7) -- 7791(line=334, offs=40)") ; } tmp109 = ats_caselptrlab_mac(anairiats_sum_10, tmp108, atslab_0) ; tmp102 = tmp109 ; return (tmp102) ; } /* end of [auxpat2_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 7833(line=339, offs=5) -- 8072(line=347, offs=4) */ ATSstaticdec() ats_ptr_type s2dcp_make_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; // ATSlocal_void (tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab_s2dcp_make_16: tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar (tmp111) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp111) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr (arg0, tmp113, arg1) ; return (tmp110) ; } /* end of [s2dcp_make_16] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab_loop_20: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp120 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp121 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp119, arg3) ; tmp122 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp122, atslab_0, tmp121) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp122 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp123 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp120 ; arg1 = arg1 ; arg2 = tmp123 ; arg3 = arg3 ; goto __ats_lab_loop_20 ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp124 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp124 ; break ; } while (0) ; return /* (tmp118) */ ; } /* end of [loop_20] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp125) ; // ATSlocal_void (tmp126) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp125 ; */ /* tmp126 = */ loop_20 (arg0, arg1, (&tmp125), arg2) ; tmp117 = tmp125 ; return (tmp117) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp116 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp116) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 8152(line=353, offs=3) -- 8545(line=369, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_unfold_update (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_unfold_update: tmp115 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg2, &auxpat2_15) ; tmp127 = s2dcp_make_16 (arg1, ats_castfn_mac(ats_ptr_type, tmp115)) ; tmp128 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp128, atslab_0, tmp127) ; /* tmp114 = */ patsopt_p3at_set_type_left (arg0, tmp128) ; return /* (tmp114) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_unfold_update] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 8633(line=378, offs=1) -- 9028(line=390, offs=4) */ ATSstaticdec() ats_void_type auxerr_arity_21 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; ATSlocal (ats_bool_type, tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_bool_type, tmp136) ; // ATSlocal_void (tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; __ats_lab_auxerr_arity_21: tmp130 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; /* tmp131 = */ prerr_error3_loc_02089_ (tmp130) ; /* tmp132 = */ atspre_prerr_string (ATSstrcst(": constructor arity mismatch")) ; tmp134 = atspre_lt_int_int (arg1, 0) ; if (tmp134) { /* tmp133 = */ atspre_prerr_string (ATSstrcst(": more arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ tmp136 = atspre_gt_int_int (arg1, 0) ; if (tmp136) { /* tmp135 = */ atspre_prerr_string (ATSstrcst(": fewer arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ /* tmp137 = */ atspre_prerr_newline () ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp138)->tag = 15 ; ats_selptrset_mac(anairiats_sum_13, tmp138, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_13, tmp138, atslab_1, arg1) ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp138) ; return /* (tmp129) */ ; } /* end of [auxerr_arity_21] */ /* // /tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 9096(line=396, offs=3) -- 12910(line=537, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_con (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_int_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_int_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_bool_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_bool_type, tmp161) ; // ATSlocal_void (tmp162) ; ATSlocal (ats_bool_type, tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; // ATSlocal_void (tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; // ATSlocal_void (tmp172) ; ATSlocal (ats_bool_type, tmp173) ; // ATSlocal_void (tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_int_type, tmp180) ; ATSlocal (ats_bool_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_bool_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_bool_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_bool_type, tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_bool_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; ATSlocal (ats_int_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; // ATSlocal_void (tmp205) ; ATSlocal (ats_bool_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; // ATSlocal_void (tmp208) ; ATSlocal (ats_bool_type, tmp209) ; ATSlocal (ats_int_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; // ATSlocal_void (tmp212) ; ATSlocal (ats_bool_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_con: tmp140 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_loc) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p2at_node) ; if (((ats_sum_ptr_type)tmp142)->tag != 2) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_patcon.dats: 9297(line=405, offs=5) -- 9365(line=407, offs=19)") ; } tmp143 = ats_caselptrlab_mac(anairiats_sum_2, tmp142, atslab_0) ; tmp144 = ats_caselptrlab_mac(anairiats_sum_2, tmp142, atslab_1) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_2, tmp142, atslab_4) ; tmp146 = ats_caselptrlab_mac(anairiats_sum_2, tmp142, atslab_5) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (tmp144) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp140, arg1) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp148) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp149) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_get_head (tmp149) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp151) ; /* ats_int_type tmp153 ; */ tmp153 = -1 ; /* ats_ptr_type tmp154 ; */ tmp154 = (ats_sum_ptr_type)0 ; tmp156 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp152), atslab_s2exp_node) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp156)->tag != 4) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp157 = ats_caselptrlab_mac(anairiats_sum_7, tmp156, atslab_0) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (tmp147, tmp157) ; if (tmp158) { tmp153 = 0 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp156)->tag != 10) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp159 = ats_caselptrlab_mac(anairiats_sum_12, tmp156, atslab_0) ; tmp160 = ats_caselptrlab_mac(anairiats_sum_12, tmp156, atslab_1) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp144, tmp159) ; if (tmp161) { tmp153 = 1 ; tmp154 = tmp160 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: break ; } while (0) ; tmp163 = atspre_gt_int_int (tmp153, 0) ; if (tmp163) { do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp143)->tag != 2) { goto __ats_lab_31_0 ; } __ats_lab_30_1: /* tmp164 = */ prerr_error3_loc_02089_ (tmp140) ; /* tmp165 = */ atspre_prerr_string (ATSstrcst(": the pattern decoration ~(freeing) is wrongly applied.")) ; /* tmp166 = */ atspre_prerr_newline () ; tmp167 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp167)->tag = 11 ; ats_selptrset_mac(anairiats_sum_12, tmp167, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp167, atslab_1, tmp141) ; /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp167) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp143)->tag != 3) { goto __ats_lab_32_0 ; } __ats_lab_31_1: /* tmp168 = */ prerr_error3_loc_02089_ (tmp140) ; /* tmp169 = */ atspre_prerr_string (ATSstrcst(": the pattern decoration @(unfolding) is wrongly applied.")) ; /* tmp170 = */ atspre_prerr_newline () ; tmp171 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp171)->tag = 11 ; ats_selptrset_mac(anairiats_sum_12, tmp171, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp171, atslab_1, tmp141) ; /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp171) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: break ; } while (0) ; } else { /* empty */ } /* end of [if] */ tmp173 = atspre_lt_int_int (tmp153, 0) ; if (tmp173) { /* tmp174 = */ prerr_error3_loc_02089_ (tmp140) ; /* tmp175 = */ atspre_prerr_string (ATSstrcst(": the constructor pattern cannot be assigned the type [")) ; /* tmp176 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp (tmp150) ; /* tmp177 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp178 = */ atspre_prerr_newline () ; tmp179 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp179)->tag = 11 ; ats_selptrset_mac(anairiats_sum_12, tmp179, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp179, atslab_1, tmp141) ; /* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp179) ; } else { /* empty */ } /* end of [if] */ tmp181 = atspre_gt_int_int (tmp153, 0) ; if (tmp181) { tmp180 = 1 ; } else { tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_vwtp (tmp144) ; } /* end of [if] */ /* ats_ptr_type tmp182 ; */ tmp182 = tmp143 ; tmp185 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_pckind_pckind (tmp182, tmp185) ; if (tmp184) { tmp186 = atspre_gt_int_int (tmp180, 0) ; if (tmp186) { tmp187 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKlincon_1) ; tmp182 = tmp187 ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp189 = atspre_eq_int_int (tmp180, 0) ; if (tmp189) { do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp182)->tag != 2) { goto __ats_lab_34_0 ; } __ats_lab_33_1: /* tmp190 = */ prerr_error3_loc_02089_ (tmp140) ; /* tmp191 = */ atspre_prerr_string (ATSstrcst(": pattern decoration ~(freeing) cannot be applied.")) ; /* tmp192 = */ atspre_prerr_newline () ; tmp193 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp193)->tag = 11 ; ats_selptrset_mac(anairiats_sum_12, tmp193, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp193, atslab_1, tmp141) ; /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp193) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp182)->tag != 3) { goto __ats_lab_35_0 ; } __ats_lab_34_1: /* tmp194 = */ prerr_error3_loc_02089_ (tmp140) ; /* tmp195 = */ atspre_prerr_string (ATSstrcst(": pattern decoration ~(unfolding) cannot be applied.")) ; /* tmp196 = */ atspre_prerr_newline () ; tmp197 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp197)->tag = 11 ; ats_selptrset_mac(anairiats_sum_12, tmp197, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp197, atslab_1, tmp141) ; /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp197) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: break ; } while (0) ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp198 = atspre_eq_int_int (tmp153, 0) ; if (!tmp198) { goto __ats_lab_41_1 ; } tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p2at_trup_con (arg0) ; // tmp200 = ats_caselptrlab_mac(anairiats_sum_8, tmp199, atslab_1) ; tmp201 = ats_caselptrlab_mac(anairiats_sum_8, tmp199, atslab_2) ; ATS_FREE(tmp199) ; /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (tmp140, tmp201, tmp150) ; /* ats_int_type tmp203 ; */ tmp203 = 0 ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn (tmp140, tmp146, tmp200, (&tmp203)) ; tmp206 = atspre_neq_int_int (tmp203, 0) ; if (tmp206) { /* tmp205 = */ auxerr_arity_21 (arg0, tmp203) ; } else { /* empty */ } /* end of [if] */ tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_con (tmp140, tmp150, tmp182, tmp144, tmp145, tmp204) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp182)->tag != 0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp182)->tag != 1) { goto __ats_lab_39_0 ; } __ats_lab_38_1: /* tmp208 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_lincon_update (tmp207, tmp144, tmp204) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp182)->tag != 2) { goto __ats_lab_40_0 ; } __ats_lab_39_1: /* tmp208 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_free_update (tmp207, tmp144, tmp204) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (((ats_sum_ptr_type)tmp182)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: /* tmp208 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_unfold_update (tmp207, tmp144, tmp204) ; break ; } while (0) ; tmp139 = tmp207 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: tmp209 = atspre_gt_int_int (tmp153, 0) ; if (!tmp209) { goto __ats_lab_42_1 ; } /* ats_int_type tmp210 ; */ tmp210 = 0 ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn (tmp140, tmp146, tmp154, (&tmp210)) ; tmp213 = atspre_neq_int_int (tmp210, 0) ; if (tmp213) { /* tmp212 = */ auxerr_arity_21 (arg0, tmp210) ; } else { /* empty */ } /* end of [if] */ tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_con (tmp140, tmp150, tmp182, tmp144, tmp145, tmp211) ; /* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__p3at_unfold_update (tmp214, tmp144, tmp211) ; tmp139 = tmp214 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_errpat (tmp140, tmp150) ; break ; } while (0) ; return (tmp139) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn_con] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__PATCONTRUP_0.tag = 0 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_patcon_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_patcon_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_print_dats.c0000644000175000017500000034037213431250607023340 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_8 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_uint_type atslab_0 ; } anairiats_sum_14 ; typedef struct { anairiats_rec_0 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_s2exparg_loc ; ats_ptr_type atslab_s2exparg_node ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_sp2at_loc ; ats_ptr_type atslab_sp2at_exp ; ats_ptr_type atslab_sp2at_node ; } anairiats_rec_17 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASpre_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASdef_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTtup_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTVar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTerr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMvar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMcst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMe1xp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatcontyp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatconptr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMfilenv_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt1_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsub_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEerr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_polkind) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset) (ats_ptr_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtdat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtbas) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__filenv_get_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2itm) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qua) (ats_ptr_type, anairiats_rec_0) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hole) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_wths2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lablst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__fprint_labs2exp) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_9 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_9_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_9_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type aux_44 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_44_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_anairiats_rec_0 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 2089(line=75, offs=16) -- 2167(line=77, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtdat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtdat: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym (arg1) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp1) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtdat] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 2242(line=82, offs=16) -- 2940(line=108, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtbas (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_int_type, tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_bool_type, tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_bool_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtbas: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst("S2RTBASpre(")) ; /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp3) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp7 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("S2RTBASimp(")) ; /* tmp9 = */ atspre_fprint_int (arg0, tmp6) ; /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp7) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_polkind (tmp6) ; tmp14 = atspre_gt_int_int (tmp12, 0) ; if (tmp14) { /* tmp13 = */ atspre_fprint_string (arg0, ATSstrcst("+")) ; } else { /* empty */ } /* end of [if] */ tmp16 = atspre_lt_int_int (tmp12, 0) ; if (tmp16) { /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("-")) ; } else { /* empty */ } /* end of [if] */ /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp18 = */ atspre_fprint_string (arg0, ATSstrcst("S2RTBASdef(")) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtdat (arg0, tmp17) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp2) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtbas] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 3013(line=113, offs=12) -- 3046(line=113, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2rt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2rt: /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (stdout, arg0) ; return /* (tmp20) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2rt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 3068(line=115, offs=12) -- 3101(line=115, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt: /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (stderr, arg0) ; return /* (tmp21) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 3127(line=118, offs=13) -- 3813(line=151, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt: tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink (arg1) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp23)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_1, tmp23, atslab_0) ; /* tmp25 = */ atspre_fprint_string (arg0, ATSstrcst("S2RTbas(")) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtbas (arg0, tmp24) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp23)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_3, tmp23, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_3, tmp23, atslab_1) ; /* tmp29 = */ atspre_fprint_string (arg0, ATSstrcst("S2RTfun(")) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtlst (arg0, tmp27) ; /* tmp31 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (arg0, tmp28) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp23)->tag != 2) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_1, tmp23, atslab_0) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst("S2RTtup(")) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtlst (arg0, tmp33) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp23)->tag != 3) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst("S2RTVar(")) ; /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (((ats_sum_ptr_type)tmp23)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst("S2RTerr()")) ; break ; } while (0) ; return /* (tmp22) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 3888(line=156, offs=15) -- 3926(line=156, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2rtlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2rtlst: /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtlst (stdout, arg0) ; return /* (tmp38) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2rtlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 3951(line=158, offs=15) -- 3989(line=158, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rtlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rtlst: /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtlst (stderr, arg0) ; return /* (tmp39) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rtlst] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_9 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_bool_type, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_int_type, tmp48) ; __ats_lab_aux_9: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp46 = atspre_gt_int_int (arg1, 0) ; if (tmp46) { /* tmp45 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp47 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp43) ; tmp48 = atspre_add_int_int (arg1, 1) ; arg0 = tmp44 ; arg1 = tmp48 ; goto __ats_lab_aux_9 ; // tail call break ; } while (0) ; return /* (tmp42) */ ; } /* end of [aux_9] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_9_closure_type ; ats_void_type aux_9_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_9 (((aux_9_closure_type*)cloptr)->closure_env_0, ((aux_9_closure_type*)cloptr)->closure_env_1, ((aux_9_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_9_closure_init (aux_9_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_9_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_9_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_9_closure_type *p_clo = ATS_MALLOC(sizeof(aux_9_closure_type)) ; aux_9_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp41) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp41 = */ aux_9 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp41) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 4020(line=162, offs=3) -- 4074(line=162, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtlst: /* tmp40 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt) ; return /* (tmp40) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 4148(line=168, offs=13) -- 4184(line=168, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2itm (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2itm: /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2itm (stdout, arg0) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2itm] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 4207(line=170, offs=13) -- 4243(line=170, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2itm (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2itm: /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2itm (stderr, arg0) ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2itm] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 4268(line=173, offs=14) -- 5151(line=209, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2itm (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2itm: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("S2ITMvar(")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp52) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp56 = */ atspre_fprint_string (arg0, ATSstrcst("S2ITMcst(")) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (arg0, tmp55) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp59 = */ atspre_fprint_string (arg0, ATSstrcst("S2ITMe1xp(")) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, tmp58) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp62 = */ atspre_fprint_string (arg0, ATSstrcst("S2ITMdatconptr(")) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp61) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp65 = */ atspre_fprint_string (arg0, ATSstrcst("S2ITMdatcontyp(")) ; /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp64) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (((ats_sum_ptr_type)arg1)->tag != 5) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("S2ITMfilenv(")) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__filenv_get_name (tmp67) ; /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp70) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp51) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2itm] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 5229(line=215, offs=3) -- 5271(line=215, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_tyreckind (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_tyreckind: /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind (stdout, arg0) ; return /* (tmp71) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_tyreckind] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 5300(line=218, offs=3) -- 5342(line=218, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_tyreckind (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_tyreckind: /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind (stderr, arg0) ; return /* (tmp72) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_tyreckind] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 5375(line=222, offs=3) -- 5802(line=238, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_int_type, tmp74) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp73 = */ atspre_fprint_string (arg0, ATSstrcst("box")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp73 = */ atspre_fprint_string (arg0, ATSstrcst("boxlin")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp73 = */ atspre_fprint_string (arg0, ATSstrcst("flt0")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; /* tmp75 = */ atspre_fprint_string (arg0, ATSstrcst("flt1(")) ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp74) ; /* tmp73 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp73 = */ atspre_fprintf_exn (arg0, ATSstrcst("fltext(%s)"), tmp77) ; break ; } while (0) ; return /* (tmp73) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 5880(line=243, offs=13) -- 5910(line=243, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2hnf (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2hnf: tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2exp (tmp79) ; return /* (tmp78) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2hnf] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 5934(line=245, offs=13) -- 5964(line=245, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2hnf (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2hnf: tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp81) ; return /* (tmp80) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2hnf] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 5994(line=249, offs=3) -- 6036(line=249, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hnf (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hnf: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp83) ; return /* (tmp82) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hnf] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 6108(line=255, offs=13) -- 6142(line=255, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2exp: /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (stdout, arg0) ; return /* (tmp84) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 6165(line=257, offs=13) -- 6199(line=257, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp: /* tmp85 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (stderr, arg0) ; return /* (tmp85) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 6224(line=260, offs=14) -- 13597(line=562, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_int_type, tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; // ATSlocal_void (tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_int_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_int_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; // ATSlocal_void (tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; ATSlocal (ats_int_type, tmp204) ; // ATSlocal_void (tmp205) ; // ATSlocal_void (tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; // ATSlocal_void (tmp224) ; // ATSlocal_void (tmp225) ; // ATSlocal_void (tmp226) ; // ATSlocal_void (tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_int_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; ATSlocal (ats_int_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; // ATSlocal_void (tmp242) ; // ATSlocal_void (tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; // ATSlocal_void (tmp252) ; // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; // ATSlocal_void (tmp256) ; // ATSlocal_void (tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; // ATSlocal_void (tmp265) ; // ATSlocal_void (tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp272) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp: tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp87)->tag != 0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_5, tmp87, atslab_0) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eint(")) ; /* tmp90 = */ atspre_fprint_int (arg0, tmp88) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp87)->tag != 1) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp92 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eintinf(")) ; /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf (arg0, tmp91) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp87)->tag != 2) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp95 = */ atspre_fprint_string (arg0, ATSstrcst("S2Efloat(")) ; /* tmp96 = */ atspre_fprint_string (arg0, tmp94) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp87)->tag != 3) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp98 = */ atspre_fprint_string (arg0, ATSstrcst("S2Estring(")) ; /* tmp99 = */ atspre_fprint_string (arg0, tmp97) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp87)->tag != 4) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp101 = */ atspre_fprint_string (arg0, ATSstrcst("S2Ecst(")) ; /* tmp102 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (arg0, tmp100) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp87)->tag != 5) { goto __ats_lab_29_0 ; } __ats_lab_26_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp104 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp105 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eextype(")) ; /* tmp106 = */ atspre_fprint_string (arg0, tmp103) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp104 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (tmp104 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: /* tmp108 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst (arg0, tmp104) ; break ; } while (0) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp87)->tag != 6) { goto __ats_lab_32_0 ; } __ats_lab_29_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp110 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp111 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eextkind(")) ; /* tmp112 = */ atspre_fprint_string (arg0, tmp109) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (tmp110 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (tmp110 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: /* tmp114 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst (arg0, tmp110) ; break ; } while (0) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp87)->tag != 7) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp116 = */ atspre_fprint_string (arg0, ATSstrcst("S2Evar(")) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp115) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp87)->tag != 8) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp119 = */ atspre_fprint_string (arg0, ATSstrcst("S2EVar(")) ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (arg0, tmp118) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp87)->tag != 9) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp122 = */ atspre_fprint_string (arg0, ATSstrcst("S2Ehole(")) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2hole (arg0, tmp121) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp87)->tag != 10) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst("S2Edatcontyp(")) ; /* tmp127 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp124) ; /* tmp128 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp125) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp87)->tag != 11) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_0) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_1) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_2) ; /* tmp133 = */ atspre_fprint_string (arg0, ATSstrcst("S2Edatconptr(")) ; /* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp130) ; /* tmp135 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp131) ; /* tmp137 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp132) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp87)->tag != 12) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp141 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eat(")) ; /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp139) ; /* tmp143 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp140) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp87)->tag != 13) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst("S2Esizeof(")) ; /* tmp147 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp145) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp87)->tag != 14) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp149 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eeff(")) ; /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (arg0, tmp148) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp87)->tag != 15) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp151 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp152 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp153 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eeqeq(")) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp151) ; /* tmp155 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp156 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp152) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp87)->tag != 16) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp157 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_0) ; tmp158 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_1) ; tmp159 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_2) ; /* tmp160 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eproj(")) ; /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp157) ; /* tmp162 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp158) ; /* tmp164 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lablst (arg0, tmp159) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp87)->tag != 17) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp166 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp167 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp168 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eapp(")) ; /* tmp169 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp166) ; /* tmp170 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp171 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp167) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp87)->tag != 18) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp173 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp174 = */ atspre_fprint_string (arg0, ATSstrcst("S2Elam(")) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp172) ; /* tmp176 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp173) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp87)->tag != 19) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_8, tmp87, atslab_0) ; tmp179 = ats_caselptrlab_mac(anairiats_sum_8, tmp87, atslab_1) ; tmp180 = ats_caselptrlab_mac(anairiats_sum_8, tmp87, atslab_2) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_8, tmp87, atslab_3) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_8, tmp87, atslab_4) ; tmp183 = ats_caselptrlab_mac(anairiats_sum_8, tmp87, atslab_5) ; /* tmp184 = */ atspre_fprint_string (arg0, ATSstrcst("S2Efun(")) ; /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo (arg0, tmp178) ; /* tmp186 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp187 = */ atspre_fprintf_exn (arg0, ATSstrcst("lin=%i"), tmp179) ; /* tmp188 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp189 = */ atspre_fprint_string (arg0, ATSstrcst("eff=")) ; /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (arg0, tmp180) ; /* tmp191 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp192 = */ atspre_fprintf_exn (arg0, ATSstrcst("npf=%i"), tmp181) ; /* tmp193 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp194 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp182) ; /* tmp195 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp183) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp87)->tag != 20) { goto __ats_lab_48_0 ; } __ats_lab_45_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_0) ; tmp198 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_1) ; tmp199 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_2) ; /* tmp200 = */ atspre_fprint_string (arg0, ATSstrcst("S2Emetfun(")) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp198) ; /* tmp202 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (tmp197 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_9, tmp197, atslab_0) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp204) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (tmp197 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: break ; } while (0) ; /* tmp205 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp206 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp199) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp87)->tag != 21) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp208 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp209 = */ atspre_fprint_string (arg0, ATSstrcst("S2Emetdec((")) ; /* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp207) ; /* tmp211 = */ atspre_fprint_string (arg0, ATSstrcst(") < (")) ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp208) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst("))")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp87)->tag != 22) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_2, tmp87, atslab_0) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_2, tmp87, atslab_1) ; /* tmp215 = */ atspre_fprint_string (arg0, ATSstrcst("S2Etop(")) ; /* tmp216 = */ atspre_fprintf_exn (arg0, ATSstrcst("knd=%i"), tmp213) ; /* tmp217 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp218 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp214) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp87)->tag != 23) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp219 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp220 = */ atspre_fprint_string (arg0, ATSstrcst("S2Ewithout(")) ; /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp219) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp87)->tag != 24) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp222 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp223 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp224 = */ atspre_fprint_string (arg0, ATSstrcst("S2Etyarr(")) ; /* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp222) ; /* tmp226 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp223) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp87)->tag != 25) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp228 = ats_caselptrlab_mac(anairiats_sum_10, tmp87, atslab_0) ; tmp229 = ats_caselptrlab_mac(anairiats_sum_10, tmp87, atslab_1) ; tmp230 = ats_caselptrlab_mac(anairiats_sum_10, tmp87, atslab_2) ; /* tmp231 = */ atspre_fprint_string (arg0, ATSstrcst("S2Etyrec(")) ; /* tmp232 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_tyreckind (arg0, tmp228) ; /* tmp233 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp234 = */ atspre_fprintf_exn (arg0, ATSstrcst("npf=%i"), tmp229) ; /* tmp235 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2explst (arg0, tmp230) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp87)->tag != 26) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp237 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp238 = */ atspre_fprint_string (arg0, ATSstrcst("S2Einvar(")) ; /* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp237) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp87)->tag != 29) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp240 = ats_caselptrlab_mac(anairiats_sum_2, tmp87, atslab_0) ; tmp241 = ats_caselptrlab_mac(anairiats_sum_2, tmp87, atslab_1) ; /* tmp242 = */ atspre_fprint_string (arg0, ATSstrcst("S2Erefarg(")) ; /* tmp243 = */ atspre_fprint_int (arg0, tmp240) ; /* tmp244 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp241) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp87)->tag != 30) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp246 = ats_caselptrlab_mac(anairiats_sum_1, tmp87, atslab_0) ; /* tmp247 = */ atspre_fprint_string (arg0, ATSstrcst("S2Evararg(")) ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp246) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp87)->tag != 27) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_0) ; tmp250 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_1) ; tmp251 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_2) ; /* tmp252 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eexi(")) ; /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp249) ; /* tmp254 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp255 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp250) ; /* tmp256 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp251) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp87)->tag != 28) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp258 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_0) ; tmp259 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_1) ; tmp260 = ats_caselptrlab_mac(anairiats_sum_7, tmp87, atslab_2) ; /* tmp261 = */ atspre_fprint_string (arg0, ATSstrcst("S2Euni(")) ; /* tmp262 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp258) ; /* tmp263 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp264 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp259) ; /* tmp265 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp260) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp87)->tag != 31) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_0) ; tmp268 = ats_caselptrlab_mac(anairiats_sum_3, tmp87, atslab_1) ; /* tmp269 = */ atspre_fprint_string (arg0, ATSstrcst("S2Ewth(")) ; /* tmp270 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp267) ; /* tmp271 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_wths2explst (arg0, tmp268) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (((ats_sum_ptr_type)tmp87)->tag != 32) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst("S2Eerrexp()")) ; break ; } while (0) ; return /* (tmp86) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 13670(line=567, offs=16) -- 13709(line=567, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2explst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp273) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2explst: /* tmp273 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (stdout, arg0) ; return /* (tmp273) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 13735(line=569, offs=16) -- 13774(line=569, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2explst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp274) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2explst: /* tmp274 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (stderr, arg0) ; return /* (tmp274) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 13804(line=573, offs=3) -- 13859(line=573, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp275) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst: /* tmp275 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) ; return /* (tmp275) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 13938(line=580, offs=3) -- 14152(line=588, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; // ATSlocal_void (tmp278) ; // ATSlocal_void (tmp279) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp277 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; /* tmp278 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp277) ; /* tmp276 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: /* tmp276 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; } while (0) ; return /* (tmp276) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 14207(line=591, offs=16) -- 14248(line=591, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2expopt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp280) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2expopt: /* tmp280 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt (stdout, arg0) ; return /* (tmp280) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2expopt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 14274(line=593, offs=16) -- 14315(line=593, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2expopt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp281) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2expopt: /* tmp281 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt (stderr, arg0) ; return /* (tmp281) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2expopt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 14369(line=599, offs=3) -- 14429(line=599, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp282) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst: /* tmp282 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst) ; return /* (tmp282) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 14514(line=606, offs=3) -- 14721(line=614, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; // ATSlocal_void (tmp285) ; // ATSlocal_void (tmp286) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstopt: do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; /* tmp285 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp286 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp284) ; /* tmp283 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_63_1: break ; } while (0) ; return /* (tmp283) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstopt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 14854(line=622, offs=17) -- 15011(line=627, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__fprint_labs2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; // ATSlocal_void (tmp290) ; // ATSlocal_void (tmp291) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__fprint_labs2exp: tmp288 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp289 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_2) ; /* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp288) ; /* tmp291 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp287 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp289) ; return /* (tmp287) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__fprint_labs2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 15070(line=630, offs=20) -- 15130(line=631, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp292) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2explst: /* tmp292 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__fprint_labs2exp) ; return /* (tmp292) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_labs2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 15241(line=640, offs=5) -- 16281(line=678, offs=4) */ ATSstaticdec() ats_void_type loop_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp294) ; ATSlocal (ats_int_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; // ATSlocal_void (tmp298) ; ATSlocal (ats_bool_type, tmp299) ; // ATSlocal_void (tmp300) ; // ATSlocal_void (tmp301) ; // ATSlocal_void (tmp302) ; // ATSlocal_void (tmp303) ; // ATSlocal_void (tmp304) ; ATSlocal (ats_int_type, tmp305) ; ATSlocal (ats_int_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; // ATSlocal_void (tmp309) ; ATSlocal (ats_bool_type, tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; // ATSlocal_void (tmp313) ; // ATSlocal_void (tmp314) ; // ATSlocal_void (tmp315) ; ATSlocal (ats_int_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; // ATSlocal_void (tmp318) ; ATSlocal (ats_bool_type, tmp319) ; // ATSlocal_void (tmp320) ; ATSlocal (ats_int_type, tmp321) ; __ats_lab_loop_33: do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp295 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp296 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_1) ; tmp297 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_2) ; tmp299 = atspre_gt_int_int (arg2, 0) ; if (tmp299) { /* tmp298 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp300 = */ atspre_fprint_string (arg0, ATSstrcst("invar(")) ; /* tmp301 = */ atspre_fprint_int (arg0, tmp295) ; /* tmp302 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp296) ; /* tmp304 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; tmp305 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp297 ; arg2 = tmp305 ; goto __ats_lab_loop_33 ; // tail call break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp307 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_1) ; tmp308 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_2) ; tmp310 = atspre_gt_int_int (arg2, 0) ; if (tmp310) { /* tmp309 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp311 = */ atspre_fprint_string (arg0, ATSstrcst("trans(")) ; /* tmp312 = */ atspre_fprint_int (arg0, tmp306) ; /* tmp313 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp307) ; /* tmp315 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; tmp316 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp308 ; arg2 = tmp316 ; goto __ats_lab_loop_33 ; // tail call break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp317 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp319 = atspre_gt_int_int (arg2, 0) ; if (tmp319) { /* tmp318 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp320 = */ atspre_fprintf_exn (arg0, ATSstrcst("none()")) ; tmp321 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp317 ; arg2 = tmp321 ; goto __ats_lab_loop_33 ; // tail call break ; } while (0) ; return /* (tmp294) */ ; } /* end of [loop_33] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 15215(line=638, offs=3) -- 16331(line=682, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_wths2explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_wths2explst: /* tmp293 = */ loop_33 (arg0, arg1, 0) ; return /* (tmp293) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_wths2explst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 16410(line=688, offs=3) -- 16759(line=704, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; // ATSlocal_void (tmp327) ; // ATSlocal_void (tmp328) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lab: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp323 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp324 = */ atspre_fprint_string (arg0, ATSstrcst("S2LABlab(")) ; /* tmp325 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp323) ; /* tmp322 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: tmp326 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp327 = */ atspre_fprint_string (arg0, ATSstrcst("S2LABind(")) ; /* tmp328 = */ fprintlst_01696_ats_ptr_type (arg0, tmp326, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) ; /* tmp322 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp322) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lab] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 16808(line=707, offs=13) -- 16842(line=707, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2lab (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp329) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2lab: /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lab (stdout, arg0) ; return /* (tmp329) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2lab] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 16865(line=709, offs=13) -- 16899(line=709, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2lab (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp330) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2lab: /* tmp330 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lab (stderr, arg0) ; return /* (tmp330) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2lab] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 16929(line=713, offs=3) -- 16984(line=713, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lablst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp331) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lablst: /* tmp331 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(" ,"), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lab) ; return /* (tmp331) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2lablst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 17060(line=720, offs=3) -- 17657(line=746, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp332) ; ATSlocal (ats_uint_type, tmp333) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; // ATSlocal_void (tmp337) ; // ATSlocal_void (tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; // ATSlocal_void (tmp341) ; // ATSlocal_void (tmp342) ; // ATSlocal_void (tmp343) ; // ATSlocal_void (tmp344) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff: do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp333 = ats_caselptrlab_mac(anairiats_sum_14, arg1, atslab_0) ; /* tmp334 = */ atspre_fprint_string (arg0, ATSstrcst("S2EFFset(")) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__fprint_effset (arg0, tmp333) ; /* tmp332 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp336 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp337 = */ atspre_fprint_string (arg0, ATSstrcst("S2EFFexp(")) ; /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp336) ; /* tmp332 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp340 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp341 = */ atspre_fprint_string (arg0, ATSstrcst("S2EFFadd(")) ; /* tmp342 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (arg0, tmp339) ; /* tmp343 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp344 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (arg0, tmp340) ; /* tmp332 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp332) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 17699(line=749, offs=13) -- 17733(line=749, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2eff (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp345) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2eff: /* tmp345 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (stdout, arg0) ; return /* (tmp345) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2eff] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 17756(line=751, offs=13) -- 17790(line=751, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2eff (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp346) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2eff: /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (stderr, arg0) ; return /* (tmp346) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2eff] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 17836(line=756, offs=14) -- 17985(line=760, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qua (ats_ptr_type arg0, anairiats_rec_0 arg1) { /* local vardec */ // ATSlocal_void (tmp347) ; // ATSlocal_void (tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; // ATSlocal_void (tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qua: tmp349 = ats_select_mac(arg1, atslab_s2qua_svs) ; /* tmp348 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp349) ; /* tmp350 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; tmp351 = ats_select_mac(arg1, atslab_s2qua_sps) ; /* tmp347 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp351) ; return /* (tmp347) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qua] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_44 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp354) ; ATSlocal (anairiats_rec_0, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; // ATSlocal_void (tmp357) ; ATSlocal (ats_bool_type, tmp358) ; // ATSlocal_void (tmp359) ; ATSlocal (ats_int_type, tmp360) ; __ats_lab_aux_44: do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: tmp355 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ; tmp356 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ; tmp358 = atspre_gt_int_int (arg1, 0) ; if (tmp358) { /* tmp357 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp359 = */ ((ats_void_type(*)(ats_ptr_type, anairiats_rec_0))env2) (env0, tmp355) ; tmp360 = atspre_add_int_int (arg1, 1) ; arg0 = tmp356 ; arg1 = tmp360 ; goto __ats_lab_aux_44 ; // tail call break ; } while (0) ; return /* (tmp354) */ ; } /* end of [aux_44] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_44_closure_type ; ats_void_type aux_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_44 (((aux_44_closure_type*)cloptr)->closure_env_0, ((aux_44_closure_type*)cloptr)->closure_env_1, ((aux_44_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_44_closure_init (aux_44_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_44_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_44_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_44_closure_type *p_clo = ATS_MALLOC(sizeof(aux_44_closure_type)) ; aux_44_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_anairiats_rec_0 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp353) ; __ats_lab_fprintlst_01696_anairiats_rec_0: /* tmp353 = */ aux_44 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp353) */ ; } /* end of [fprintlst_01696_anairiats_rec_0] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 18038(line=763, offs=17) -- 18099(line=764, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp352) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst: /* tmp352 = */ fprintlst_01696_anairiats_rec_0 (arg0, arg1, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qua) ; return /* (tmp352) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 18154(line=768, offs=16) -- 18193(line=768, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2qualst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp361) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2qualst: /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst (stdout, arg0) ; return /* (tmp361) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2qualst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 18219(line=770, offs=16) -- 18258(line=770, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2qualst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp362) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2qualst: /* tmp362 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst (stderr, arg0) ; return /* (tmp362) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2qualst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 18306(line=775, offs=16) -- 18653(line=792, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtext (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; // ATSlocal_void (tmp365) ; // ATSlocal_void (tmp366) ; // ATSlocal_void (tmp367) ; // ATSlocal_void (tmp368) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtext: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp364 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp365 = */ atspre_fprint_string (arg0, ATSstrcst("S2TEsrt(")) ; /* tmp366 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (arg0, tmp364) ; /* tmp363 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_77_0 ; } __ats_lab_76_1: /* tmp367 = */ atspre_fprint_string (arg0, ATSstrcst("S2TEsub(")) ; /* tmp368 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp363 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: /* tmp363 = */ atspre_fprint_string (arg0, ATSstrcst("S2TEerr()")) ; break ; } while (0) ; return /* (tmp363) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rtext] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 18729(line=797, offs=17) -- 19068(line=810, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; // ATSlocal_void (tmp372) ; // ATSlocal_void (tmp373) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparg: tmp370 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_s2exparg_node) ; do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp370)->tag != 0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: /* tmp369 = */ atspre_fprint_string (arg0, ATSstrcst("S2EXPARGone()")) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp370)->tag != 1) { goto __ats_lab_80_0 ; } __ats_lab_79_1: /* tmp369 = */ atspre_fprint_string (arg0, ATSstrcst("S2EXPARGall()")) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (((ats_sum_ptr_type)tmp370)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: tmp371 = ats_caselptrlab_mac(anairiats_sum_1, tmp370, atslab_0) ; /* tmp372 = */ atspre_fprint_string (arg0, ATSstrcst("S2EXPARGseq(")) ; /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp371) ; /* tmp369 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp369) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparg] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 19127(line=813, offs=20) -- 19187(line=814, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp374) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparglst: /* tmp374 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparg) ; return /* (tmp374) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exparglst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_print.dats: 19266(line=821, offs=3) -- 19608(line=835, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_sp2at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; // ATSlocal_void (tmp379) ; // ATSlocal_void (tmp380) ; // ATSlocal_void (tmp381) ; // ATSlocal_void (tmp382) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_sp2at: tmp376 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg1), atslab_sp2at_node) ; do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (tmp376 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp377 = ats_caselptrlab_mac(anairiats_sum_4, tmp376, atslab_0) ; tmp378 = ats_caselptrlab_mac(anairiats_sum_4, tmp376, atslab_1) ; /* tmp379 = */ atspre_fprint_string (arg0, ATSstrcst("SP2Tcon(")) ; /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (arg0, tmp377) ; /* tmp381 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp382 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp378) ; /* tmp375 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (tmp376 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: /* tmp375 = */ atspre_fprint_string (arg0, ATSstrcst("SP2Terr()")) ; break ; } while (0) ; return /* (tmp375) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_sp2at] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_svar_dats.c0000644000175000017500000007736013431250607023657 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_2 ; typedef struct { anairiats_rec_2 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_search) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_remove) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_listize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__s2varbindmap_push_v = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type auxrmv_2 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_6 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp4) ; ATSstatic (ats_ptr_type, statmp5) ; ATSstatic (ats_ptr_type, statmp6) ; ATSstatic (ats_ptr_type, statmp7) ; ATSstatic (ats_ptr_type, statmp8) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp3 ; */ tmp3 = arg0 ; tmp2 = atspre_ref_make_elt_tsz ((&tmp3), sizeof(ats_ptr_type)) ; return (tmp2) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_ref_make_elt_01089_ats_ptr_type: tmp1 = ref_01088_ats_ptr_type (arg0) ; return (tmp1) ; } /* end of [ref_make_elt_01089_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_svar.dats: 1885(line=61, offs=5) -- 2124(line=68, offs=26) */ ATSstaticdec() ats_void_type auxrmv_2 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab_auxrmv_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp11 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; ATS_FREE(arg1) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_remove (arg0, tmp10) ; arg0 = arg0 ; arg1 = tmp11 ; goto __ats_lab_auxrmv_2 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp9) */ ; } /* end of [auxrmv_2] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_svar.dats: 2199(line=75, offs=3) -- 2771(line=98, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop () { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop: tmp14 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp7), atslab_1) ; tmp16 = ats_ptrget_mac(ats_ptr_type, tmp14) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp16 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_1, tmp16, atslab_0) ; tmp18 = ats_caselptrlab_mac(anairiats_sum_1, tmp16, atslab_1) ; ATS_FREE(tmp16) ; ats_ptrget_mac(ats_ptr_type, tmp14) = tmp18 ; tmp15 = tmp17 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp16 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp15 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp19 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp5), atslab_1) ; tmp20 = ats_ptrget_mac(ats_ptr_type, tmp19) ; ats_ptrget_mac(ats_ptr_type, tmp19) = tmp15 ; tmp21 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; /* tmp13 = */ auxrmv_2 (tmp21, tmp20) ; return /* (tmp13) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_svar.dats: 2838(line=101, offs=23) -- 3127(line=111, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push () { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push: tmp23 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp5), atslab_1) ; tmp24 = ats_ptrget_mac(ats_ptr_type, tmp23) ; tmp25 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp23) = tmp25 ; tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp7), atslab_1) ; tmp28 = ats_ptrget_mac(ats_ptr_type, tmp26) ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp27, atslab_0, tmp24) ; ats_selptrset_mac(anairiats_sum_1, tmp27, atslab_1, tmp28) ; ats_ptrget_mac(ats_ptr_type, tmp26) = tmp27 ; return /* (tmp22) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_svar.dats: 3215(line=115, offs=7) -- 3596(line=127, offs=28) */ ATSstaticdec() ats_void_type aux_6 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp30) ; ATSlocal (anairiats_rec_2, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; __ats_lab_aux_6: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp32 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp34 = ats_select_mac(tmp31, atslab_0) ; /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp34) ; /* tmp35 = */ atspre_fprint_string (arg0, ATSstrcst(" -> ")) ; tmp37 = ats_select_mac(tmp31, atslab_1) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp37) ; /* tmp38 = */ atspre_fprint_newline (arg0) ; arg0 = arg0 ; arg1 = tmp32 ; goto __ats_lab_aux_6 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: break ; } while (0) ; return /* (tmp30) */ ; } /* end of [aux_6] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_svar.dats: 3197(line=114, offs=25) -- 3786(line=136, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s2varbindmap (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s2varbindmap: tmp39 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp41 = ats_ptrget_mac(ats_ptr_type, tmp39) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_listize (tmp41) ; /* tmp29 = */ aux_6 (arg0, tmp40) ; return /* (tmp29) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s2varbindmap] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_svar.dats: 3858(line=139, offs=25) -- 3981(line=143, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_search (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_search: tmp43 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp44 = ats_ptrget_mac(ats_ptr_type, tmp43) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_search (tmp44, arg0) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_search] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_svar.dats: 4053(line=146, offs=25) -- 4368(line=162, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_insert (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_insert: tmp46 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp5), atslab_1) ; tmp48 = ats_ptrget_mac(ats_ptr_type, tmp46) ; tmp47 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp47, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp47, atslab_1, tmp48) ; ats_ptrget_mac(ats_ptr_type, tmp46) = tmp47 ; tmp49 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_insert (tmp49, arg0, arg1) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_insert] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_svar.dats: 4441(line=165, offs=26) -- 4748(line=181, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_freetop () { /* local vardec */ // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_freetop: tmp51 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp5), atslab_1) ; tmp52 = ats_ptrget_mac(ats_ptr_type, tmp51) ; tmp53 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp51) = tmp53 ; tmp54 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; /* tmp50 = */ auxrmv_2 (tmp54, tmp52) ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_freetop] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_svar_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp5, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp6, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp8, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_make_nil () ; statmp0 = ref_make_elt_01089_ats_ptr_type (statmp4) ; statmp6 = (ats_sum_ptr_type)0 ; statmp5 = ref_make_elt_01089_ats_ptr_type (statmp6) ; statmp8 = (ats_sum_ptr_type)0 ; statmp7 = ref_make_elt_01089_ats_ptr_type (statmp8) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_svar_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_typerase_dynexp_dats.c0000644000175000017500000054555613431250607023774 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_hipat_loc ; ats_ptr_type atslab_hipat_type ; ats_ptr_type atslab_hipat_node ; ats_ptr_type atslab_hipat_asvar ; } anairiats_rec_3 ; typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_p3at_loc ; ats_ptr_type atslab_p3at_node ; ats_ptr_type atslab_p3at_type ; ats_ptr_type atslab_p3at_dvaropt ; ats_ptr_type atslab_p3at_type_left ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_15 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_18 ; typedef struct { ats_ptr_type atslab_i3fcl_loc ; ats_ptr_type atslab_i3fcl_test ; ats_ptr_type atslab_i3fcl_body ; } anairiats_rec_19 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_21 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_22 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_23 ; typedef struct { ats_ptr_type atslab_l0ab_loc ; ats_ptr_type atslab_l0ab_lab ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_d3lab_loc ; ats_ptr_type atslab_d3lab_node ; ats_ptr_type atslab_d3lab_overld ; ats_ptr_type atslab_d3lab_overld_app ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_gm3at_loc ; ats_ptr_type atslab_gm3at_exp ; ats_ptr_type atslab_gm3at_pat ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_c3lau_loc ; ats_ptr_type atslab_c3lau_pat ; ats_ptr_type atslab_c3lau_gua ; ats_int_type atslab_c3lau_seq ; ats_int_type atslab_c3lau_neg ; ats_ptr_type atslab_c3lau_body ; } anairiats_rec_27 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__LABP3AT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trec_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tlst_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ef0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecstsp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etyrep_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etop_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextval_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextfcall_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextmcall_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Econ_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpcst_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpvar_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efoldat_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efreeat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_sta_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_dyn_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eif_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esif_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecase_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eifcase_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elst_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etup_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erec_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eseq_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eselab_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofvar_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofsel_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erefarg_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_var_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ptr_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ref_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_var_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ptr_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ref_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_var_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ptr_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ref_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_assgn_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrpsz_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrinit_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eraise_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eeffmask_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evararg_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evcopyenv_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etempenver_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eann_type_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_dyn_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elaminit_dyn_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_sta_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_met_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efix_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Edelay_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eldelay_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elazyeval_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloop_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloopexn_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etrywith_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esolverify_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eerrexp_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIPAT_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIDEXP_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__T4E_p3at_tyer_isprf_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TRUE_BOOL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FALSE_BOOL) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_intconst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1size_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_p3at) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_p3at) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_d3exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_set2_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_set2_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_unused) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_any) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con_any) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_int) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_intrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_bool) (ats_ptr_type, ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_char) (ats_ptr_type, ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_string) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_i0nt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_f0loat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_lst) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec2) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_refas) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_ann) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhidexplst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_int) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_intrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_bool) (ats_ptr_type, ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_char) (ats_ptr_type, ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_float) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_string) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_i0nt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_f0loat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cstsp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tyrep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_top) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extval) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extfcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extmcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_foldat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_freeat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let_simplify) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_sif) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_case) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lst) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec2) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq_simplify) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selab) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofsel) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_refarg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrpsz) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrinit) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_raise) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vararg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vcopyenv) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tempenver) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lam) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_fix) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_delay) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ldelay) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lazyeval) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loop) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loopexn) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_trywith) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_errexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_lab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__higmat_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiclau_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarglst_mhnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2cst_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3expopt_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lab_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3at_tyer_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer_labize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_npf_tyer) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3at_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3atlst_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_cst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer_labize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_npf_tyer) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_tyer) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_ptr_type fopr_2 (ats_ptr_type arg0) ; static ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type fopr_7 (ats_ptr_type arg0) ; static ats_void_type prerr_ERROR_beg_02081_ () ; static ats_void_type prerr_error4_loc_02090_ (ats_ptr_type arg0) ; static ats_void_type prerr_ERROR_end_02082_ () ; static ats_void_type auxerr_if_11 (ats_ptr_type arg0) ; static ats_ptr_type auxlst_19 (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_ptr_type d3exp_tyer_type_23 (ats_ptr_type arg0) ; static ats_ptr_type auxlst_25 (ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type auxlst_25_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2) ; static ats_ptr_type auxlst_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_warning4_loc_02095_ (ats_ptr_type arg0) ; static ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) ; static ats_ptr_type aux1_34 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux2_35 (ats_int_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 1677(line=54, offs=18) -- 1710(line=54, offs=51) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_typerase_dynexp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 2501(line=112, offs=1) -- 2643(line=127, offs=4) */ ATSstaticdec() ats_ptr_type fopr_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_fopr_2: tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp5 = (ats_sum_ptr_type)0 ; tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp4), atslab_hipat_type) ; tmp2 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp2, atslab_0, tmp3) ; ats_selptrset_mac(anairiats_sum_2, tmp2, atslab_1, tmp5) ; ats_selptrset_mac(anairiats_sum_2, tmp2, atslab_2, tmp6) ; return (tmp2) ; } /* end of [fopr_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp12 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp13 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp11, arg3) ; tmp14 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp14, atslab_0, tmp13) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp14 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp15 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp12 ; arg1 = arg1 ; arg2 = tmp15 ; arg3 = arg3 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp16 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp16 ; break ; } while (0) ; return /* (tmp10) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp17 ; */ /* tmp18 = */ loop_5 (arg0, arg1, (&tmp17), arg2) ; tmp9 = tmp17 ; return (tmp9) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp8 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp8) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 2482(line=109, offs=3) -- 2755(line=135, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_get_type: tmp7 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &fopr_2) ; tmp1 = ats_castfn_mac(ats_ptr_type, tmp7) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_get_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 2843(line=142, offs=1) -- 2988(line=157, offs=4) */ ATSstaticdec() ats_ptr_type fopr_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab_fopr_7: tmp21 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp22 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp23 = (ats_sum_ptr_type)0 ; tmp24 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp22), atslab_hidexp_type) ; tmp20 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp20, atslab_0, tmp21) ; ats_selptrset_mac(anairiats_sum_2, tmp20, atslab_1, tmp23) ; ats_selptrset_mac(anairiats_sum_2, tmp20, atslab_2, tmp24) ; return (tmp20) ; } /* end of [fopr_7] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 2824(line=139, offs=3) -- 3098(line=165, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhidexplst_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhidexplst_get_type: tmp25 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &fopr_7) ; tmp19 = ats_castfn_mac(ats_ptr_type, tmp25) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhidexplst_get_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 3564(line=190, offs=12) -- 3895(line=208, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer: tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (arg0) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp27 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_5, tmp27, atslab_0) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (arg0) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp29, tmp28) ; tmp32 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp32, atslab_0, tmp30) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_set2_hisexp (arg0, tmp32) ; tmp26 = arg0 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp27 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp26 = arg0 ; break ; } while (0) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 3962(line=213, offs=12) -- 4272(line=229, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2cst_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2cst_tyer: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_hisexp (arg0) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp34 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp33 = arg0 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp34 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_loc (arg0) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg0) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp35, tmp36) ; tmp39 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp39, atslab_0, tmp37) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_set2_hisexp (arg0, tmp39) ; tmp33 = arg0 ; break ; } while (0) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2cst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 4337(line=234, offs=10) -- 6652(line=335, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_int_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_bool_type, tmp55) ; ATSlocal (ats_char_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_int_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_int_type, tmp65) ; ATSlocal (ats_int_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_bool_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer: tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p3at_loc) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type (arg0) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp41, tmp42) ; tmp44 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p3at_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp44)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_0) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer (tmp45) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_any (tmp41, tmp43, tmp46) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp44)->tag != 1) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_0) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer (tmp47) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_var (tmp41, tmp43, tmp48) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp44)->tag != 2) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_8, tmp44, atslab_0) ; tmp50 = ats_caselptrlab_mac(anairiats_sum_8, tmp44, atslab_1) ; tmp51 = ats_caselptrlab_mac(anairiats_sum_8, tmp44, atslab_2) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_8, tmp44, atslab_3) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3at_tyer_con (tmp41, tmp43, tmp49, tmp50, tmp51, tmp52) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp44)->tag != 3) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_9, tmp44, atslab_0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_int (tmp41, tmp43, tmp53) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp44)->tag != 4) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_intrep (tmp41, tmp43, tmp54) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp44)->tag != 5) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_10, tmp44, atslab_0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_bool (tmp41, tmp43, tmp55) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp44)->tag != 6) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp56 = ats_caselptrlab_mac(anairiats_sum_11, tmp44, atslab_0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_char (tmp41, tmp43, tmp56) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp44)->tag != 8) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_string (tmp41, tmp43, tmp57) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp44)->tag != 9) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_i0nt (tmp41, tmp43, tmp58) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp44)->tag != 10) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_f0loat (tmp41, tmp43, tmp59) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp44)->tag != 11) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_empty (tmp41, tmp43) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp44)->tag != 13) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_12, tmp44, atslab_0) ; tmp61 = ats_caselptrlab_mac(anairiats_sum_12, tmp44, atslab_1) ; tmp62 = ats_caselptrlab_mac(anairiats_sum_12, tmp44, atslab_2) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp41, tmp61) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer (tmp62) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_lst (tmp41, tmp60, tmp43, tmp63, tmp64) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp44)->tag != 12) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_13, tmp44, atslab_0) ; tmp66 = ats_caselptrlab_mac(anairiats_sum_13, tmp44, atslab_1) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_13, tmp44, atslab_2) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_13, tmp44, atslab_3) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_npf_tyer (tmp66, tmp68) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_get_type (tmp69) ; tmp72 = atspre_gt_int_int (tmp65, 0) ; if (tmp72) { tmp71 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; } else { tmp71 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; } /* end of [if] */ tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec2 (tmp71, tmp70) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_rec2 (tmp41, tmp43, tmp65, tmp67, tmp69, tmp73) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp44)->tag != 14) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_14, tmp44, atslab_0) ; tmp75 = ats_caselptrlab_mac(anairiats_sum_14, tmp44, atslab_1) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2var_tyer (tmp74) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer (tmp75) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_refas (tmp41, tmp43, tmp76, tmp77) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp44)->tag != 15) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_14, tmp44, atslab_1) ; arg0 = tmp78 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp44)->tag != 17) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_14, tmp44, atslab_0) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_14, tmp44, atslab_1) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer (tmp79) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp41, tmp80) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_ann (tmp41, tmp43, tmp81, tmp82) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: /* tmp83 = */ atspre_print_string (ATSstrcst("p3at_tyer: loc0 = ")) ; /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location (tmp41) ; /* tmp85 = */ atspre_print_newline () ; /* tmp86 = */ atspre_print_string (ATSstrcst("p3at_tyer: p3t0 = ")) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_p3at (arg0) ; /* tmp88 = */ atspre_print_newline () ; tmp89 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 6494(line=329, offs=5) -- 6503(line=329, offs=14)", ATSstrcst("\n")) ; /* tmp40 = */ ats_exit_errmsg (1, tmp89) ; break ; } while (0) ; return (tmp40) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1478(line=42, offs=16) -- 1514(line=43, offs=32) */ ATSstaticdec() ats_void_type prerr_ERROR_beg_02081_ () { /* local vardec */ // ATSlocal_void (tmp94) ; __ats_lab_prerr_ERROR_beg_02081_: /* tmp94 = */ atspre_prerr_string (ATSstrcst("**ERROR(000000):beg**\n")) ; return /* (tmp94) */ ; } /* end of [prerr_ERROR_beg_02081_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2458(line=94, offs=17) -- 2516(line=97, offs=2) */ ATSstaticdec() ats_void_type prerr_error4_loc_02090_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; __ats_lab_prerr_error4_loc_02090_: /* tmp97 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp96 = */ atspre_prerr_string (ATSstrcst(": error(4)")) ; return /* (tmp96) */ ; } /* end of [prerr_error4_loc_02090_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1551(line=46, offs=16) -- 1587(line=47, offs=32) */ ATSstaticdec() ats_void_type prerr_ERROR_end_02082_ () { /* local vardec */ // ATSlocal_void (tmp104) ; __ats_lab_prerr_ERROR_end_02082_: /* tmp104 = */ atspre_prerr_string (ATSstrcst("**ERROR(000000):end**\n")) ; return /* (tmp104) */ ; } /* end of [prerr_ERROR_end_02082_] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 6707(line=342, offs=1) -- 7100(line=370, offs=4) */ ATSstaticdec() ats_void_type auxerr_if_11 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp90) ; ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_bool_type, tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; // ATSlocal_void (tmp103) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab_auxerr_if_11: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_full (arg0) ; tmp92 = atspre_neg_bool (tmp91) ; if (tmp92) { /* tmp93 = */ prerr_ERROR_beg_02081_ () ; tmp98 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p3at_loc) ; /* tmp95 = */ prerr_error4_loc_02090_ (tmp98) ; /* tmp99 = */ atspre_prerr_string (ATSstrcst(": partial proof pattern [")) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_p3at (arg0) ; /* tmp101 = */ atspre_prerr_string (ATSstrcst("] is not allowed for erasure.")) ; /* tmp102 = */ atspre_prerr_newline () ; /* tmp103 = */ prerr_ERROR_end_02082_ () ; tmp105 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp105)->tag = 0 ; ats_selptrset_mac(anairiats_sum_7, tmp105, atslab_0, arg0) ; /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__the_trans4errlst_add (tmp105) ; } else { /* empty */ } /* end of [if] */ return /* (tmp90) */ ; } /* end of [auxerr_if_11] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 7171(line=376, offs=3) -- 7624(line=401, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_bool_type, tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp106 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_prf (tmp107) ; if (tmp109) { /* tmp110 = */ auxerr_if_11 (tmp107) ; arg0 = tmp108 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer ; // tail call } else { tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer (tmp107) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer (tmp108) ; tmp106 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp106, atslab_0, tmp111) ; ats_selptrset_mac(anairiats_sum_1, tmp106, atslab_1, tmp112) ; } /* end of [if] */ break ; } while (0) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 7698(line=407, offs=3) -- 8339(line=440, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_bool_type, tmp118) ; ATSlocal (ats_bool_type, tmp119) ; // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer2: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp113 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp115 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 7824(line=418, offs=5) -- 7851(line=418, offs=32)") ; } tmp116 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp117 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_prf (tmp114) ; if (tmp118) { tmp119 = ats_true_bool ; } else { tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (tmp116) ; } /* end of [if] */ if (tmp119) { /* tmp120 = */ auxerr_if_11 (tmp114) ; arg0 = tmp117 ; arg1 = tmp115 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer2 ; // tail call } else { tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer (tmp114) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer2 (tmp117, tmp115) ; tmp113 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp113, atslab_0, tmp121) ; ats_selptrset_mac(anairiats_sum_1, tmp113, atslab_1, tmp122) ; } /* end of [if] */ break ; } while (0) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer2] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 8440(line=448, offs=3) -- 8618(line=458, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_bool_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer: tmp124 = atspre_gt_int_int (arg0, 0) ; if (tmp124) { if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 8496(line=452, offs=5) -- 8522(line=452, offs=31)") ; } tmp125 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp126 = atspre_sub_int_int (arg0, 1) ; arg0 = tmp126 ; arg1 = tmp125 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer ; // tail call } else { tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer (arg1) ; } /* end of [if] */ return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 8731(line=466, offs=5) -- 9377(line=498, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_19 (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_bool_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_int_type, tmp131) ; ATSlocal (ats_int_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_bool_type, tmp135) ; ATSlocal (ats_int_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; __ats_lab_auxlst_19: tmp129 = atspre_gt_int_int (arg0, 0) ; if (tmp129) { if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 8828(line=472, offs=7) -- 8854(line=472, offs=33)") ; } tmp130 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp131 = atspre_sub_int_int (arg0, 1) ; tmp132 = atspre_add_int_int (arg2, 1) ; arg0 = tmp131 ; arg1 = tmp130 ; arg2 = tmp132 ; goto __ats_lab_auxlst_19 ; // tail call } else { do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp133 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp134 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_prf (tmp133) ; if (tmp135) { tmp136 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp134 ; arg2 = tmp136 ; goto __ats_lab_auxlst_19 ; // tail call } else { tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg2) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer (tmp133) ; tmp139 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp139, atslab_0, tmp137) ; ats_selptrset_mac(anairiats_sum_1, tmp139, atslab_1, tmp138) ; tmp141 = atspre_add_int_int (arg2, 1) ; tmp140 = auxlst_19 (arg0, tmp134, tmp141) ; tmp128 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp128, atslab_0, tmp139) ; ats_selptrset_mac(anairiats_sum_1, tmp128, atslab_1, tmp140) ; } /* end of [if] */ break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp128 = (ats_sum_ptr_type)0 ; break ; } while (0) ; } /* end of [if] */ return (tmp128) ; } /* end of [auxlst_19] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 8706(line=464, offs=3) -- 9430(line=502, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer_labize (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer_labize: tmp127 = auxlst_19 (arg0, arg1, 0) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer_labize] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 9580(line=512, offs=17) -- 9987(line=534, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_bool_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_tyer: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp144 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; // tmp145 = ats_caselptrlab_mac(anairiats_sum_1, tmp143, atslab_0) ; tmp146 = ats_caselptrlab_mac(anairiats_sum_1, tmp143, atslab_1) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_is_prf (tmp146) ; if (tmp147) { arg0 = tmp144 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_tyer ; // tail call } else { tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer (tmp146) ; tmp149 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp149, atslab_0, tmp145) ; ats_selptrset_mac(anairiats_sum_1, tmp149, atslab_1, tmp148) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_tyer (tmp144) ; tmp142 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp142, atslab_0, tmp149) ; ats_selptrset_mac(anairiats_sum_1, tmp142, atslab_1, tmp150) ; } /* end of [if] */ break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp142 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp142) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 10070(line=540, offs=3) -- 10264(line=556, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_npf_tyer (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_bool_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_int_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_npf_tyer: tmp152 = atspre_gt_int_int (arg0, 0) ; if (tmp152) { if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 10122(line=547, offs=5) -- 10150(line=547, offs=33)") ; } tmp153 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp154 = atspre_sub_int_int (arg0, 1) ; arg0 = tmp154 ; arg1 = tmp153 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_npf_tyer ; // tail call } else { tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_tyer (arg1) ; } /* end of [if] */ return (tmp151) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labp3atlst_npf_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 10343(line=562, offs=1) -- 10805(line=587, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3at_tyer_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_bool_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3at_tyer_con: tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer_labize (arg4, arg5) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_is_unused (tmp156) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: if (!tmp157) { goto __ats_lab_32_1 ; } tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con_any (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhipatlst_get_type (tmp156) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum (arg3, tmp158) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_con (arg0, arg1, arg2, arg3, tmp159, tmp156) ; break ; } while (0) ; return (tmp155) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3at_tyer_con] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 11843(line=647, offs=1) -- 11984(line=655, offs=4) */ ATSstaticdec() ats_ptr_type d3exp_tyer_type_23 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; __ats_lab_d3exp_tyer_type_23: tmp161 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_d3exp_loc) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg0) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp161, tmp162) ; return (tmp160) ; } /* end of [d3exp_tyer_type_23] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 15390(line=809, offs=5) -- 16269(line=840, offs=6) */ ATSstaticdec() ats_ptr_type auxlst_25 (ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_bool_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab_auxlst_25: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp229 = atspre_gt_int_int (env2, 0) ; if (tmp229) { tmp230 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_i3fcl_body) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp230) ; } else { tmp232 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_i3fcl_test) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp232) ; tmp234 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_i3fcl_body) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp234) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty (env0, env1) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_if (env0, env1, tmp231, tmp233, tmp235) ; } /* end of [if] */ break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp236 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp237 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp239 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_i3fcl_test) ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp239) ; tmp241 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_i3fcl_body) ; tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp241) ; tmp242 = auxlst_25 (env0, env1, env2, tmp236, tmp237) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_if (env0, env1, tmp238, tmp240, tmp242) ; break ; } while (0) ; return (tmp228) ; } /* end of [auxlst_25] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_int_type closure_env_2 ; } auxlst_25_closure_type ; ats_ptr_type auxlst_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return auxlst_25 (((auxlst_25_closure_type*)cloptr)->closure_env_0, ((auxlst_25_closure_type*)cloptr)->closure_env_1, ((auxlst_25_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type auxlst_25_closure_init (auxlst_25_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_25_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_25_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2) { auxlst_25_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_25_closure_type)) ; auxlst_25_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; // ATSlocal_void (tmp386) ; __ats_lab_loop_28: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp384 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp385 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; /* tmp386 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp384, arg2) ; arg0 = tmp385 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_28 ; // tail call break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_96_1: break ; } while (0) ; return /* (tmp383) */ ; } /* end of [loop_28] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp382) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp382 = */ loop_28 (arg0, arg1, arg2) ; return /* (tmp382) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp381) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp381 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp381) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 3122(line=128, offs=20) -- 3183(line=131, offs=2) */ ATSstaticdec() ats_void_type prerr_warning4_loc_02095_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp406) ; // ATSlocal_void (tmp407) ; __ats_lab_prerr_warning4_loc_02095_: /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp406 = */ atspre_prerr_string (ATSstrcst(": warning(4)")) ; return /* (tmp406) */ ; } /* end of [prerr_warning4_loc_02095_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp438) ; // ATSlocal_void (tmp439) ; // ATSlocal_void (tmp440) ; // ATSlocal_void (tmp441) ; __ats_lab_prerr_interror_loc_02085_: /* tmp439 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp440 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp441 = */ prerr_FILENAME_02083_ () ; /* tmp438 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp438) */ ; } /* end of [prerr_interror_loc_02085_] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 12060(line=661, offs=3) -- 26049(line=1239, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_int_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_bool_type, tmp173) ; ATSlocal (ats_char_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_int_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_int_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_int_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_int_type, tmp260) ; ATSlocal (ats_int_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; // ATSlocal_void (tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_int_type, tmp280) ; ATSlocal (ats_int_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; // ATSlocal_void (tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_bool_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; // ATSlocal_void (tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_bool_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; // ATSlocal_void (tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_int_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_int_type, tmp369) ; ATSlocal (ats_int_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; // ATSlocal_void (tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; // ATSlocal_void (tmp380) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_int_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_int_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_bool_type, tmp402) ; // ATSlocal_void (tmp403) ; ATSlocal (ats_bool_type, tmp404) ; // ATSlocal_void (tmp405) ; // ATSlocal_void (tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_int_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_int_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_int_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; // ATSlocal_void (tmp437) ; // ATSlocal_void (tmp442) ; // ATSlocal_void (tmp443) ; // ATSlocal_void (tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer: tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_d3exp_loc) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg0) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp164, tmp165) ; tmp167 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_d3exp_node) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp167)->tag != 1) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; /* tmp169 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes (tmp168) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_var (tmp164, tmp166, tmp168) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp167)->tag != 0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_cst (tmp164, tmp166, tmp170) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp167)->tag != 2) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp171 = ats_caselptrlab_mac(anairiats_sum_9, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_int (tmp164, tmp166, tmp171) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp167)->tag != 3) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_intrep (tmp164, tmp166, tmp172) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp167)->tag != 4) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_10, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_bool (tmp164, tmp166, tmp173) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp167)->tag != 5) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_11, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_char (tmp164, tmp166, tmp174) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp167)->tag != 7) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_string (tmp164, tmp166, tmp175) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp167)->tag != 8) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp176 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_i0nt (tmp164, tmp166, tmp176) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp167)->tag != 9) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_f0loat (tmp164, tmp166, tmp177) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp167)->tag != 6) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_float (tmp164, tmp166, tmp178) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp167)->tag != 10) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cstsp (tmp164, tmp166, tmp179) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp167)->tag != 11) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp164, tmp180) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tyrep (tmp164, tmp166, tmp181) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp167)->tag != 13) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_top (tmp164, tmp166) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp167)->tag != 14) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty (tmp164, tmp166) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp167)->tag != 15) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp182 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extval (tmp164, tmp166, tmp182) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp167)->tag != 16) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp183 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_0) ; tmp184 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_1) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer (tmp184) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extfcall (tmp164, tmp166, tmp183, tmp185) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp167)->tag != 17) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp186 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_0) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_1) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp186) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer (tmp188) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_extmcall (tmp164, tmp166, tmp189, tmp187, tmp190) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp167)->tag != 18) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_17, tmp167, atslab_0) ; tmp192 = ats_caselptrlab_mac(anairiats_sum_17, tmp167, atslab_1) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_17, tmp167, atslab_2) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer_labize (tmp192, tmp193) ; tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__labhidexplst_get_type (tmp194) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum (tmp191, tmp195) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_con (tmp164, tmp166, tmp191, tmp196, tmp194) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp167)->tag != 19) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_0) ; tmp198 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_1) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpcst (tmp164, tmp166, tmp197, tmp198) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp167)->tag != 20) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_0) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_1) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpvar (tmp164, tmp166, tmp199, tmp200) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp167)->tag != 21) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_foldat (tmp164, tmp166) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp167)->tag != 22) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp201 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp201) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_freeat (tmp164, tmp166, tmp202) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp167)->tag != 24) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp203 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_0) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_1) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3eclist_tyer (tmp203) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp204) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_let_simplify (tmp164, tmp166, tmp205, tmp206) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp167)->tag != 26) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_17, tmp167, atslab_0) ; tmp208 = ats_caselptrlab_mac(anairiats_sum_17, tmp167, atslab_1) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_17, tmp167, atslab_2) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp207) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp210) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp207) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer (tmp208, tmp209) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_app2 (tmp164, tmp166, tmp211, tmp212, tmp213) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp167)->tag != 25) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; arg0 = tmp214 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer ; // tail call break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp167)->tag != 27) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_0) ; tmp216 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_1) ; tmp217 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp215) ; tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp216) ; tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp217) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_if (tmp164, tmp166, tmp218, tmp219, tmp220) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp167)->tag != 28) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp221 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_0) ; tmp222 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_1) ; tmp223 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp222) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp223) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_sif (tmp164, tmp166, tmp221, tmp224, tmp225) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp167)->tag != 31) { goto __ats_lab_65_0 ; } __ats_lab_60_1: tmp226 = ats_caselptrlab_mac(anairiats_sum_18, tmp167, atslab_0) ; tmp227 = ats_caselptrlab_mac(anairiats_sum_18, tmp167, atslab_1) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (tmp227 != (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty (tmp164, tmp166) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (tmp227 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp243 = ats_caselptrlab_mac(anairiats_sum_1, tmp227, atslab_0) ; tmp244 = ats_caselptrlab_mac(anairiats_sum_1, tmp227, atslab_1) ; tmp163 = auxlst_25 (tmp164, tmp166, tmp226, tmp243, tmp244) ; break ; } while (0) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp167)->tag != 29) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp245 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_0) ; tmp246 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_1) ; tmp247 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer (tmp246) ; tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer2 (tmp246, tmp247) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_case (tmp164, tmp166, tmp245, tmp248, tmp249) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp167)->tag != 32) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp250 = ats_caselptrlab_mac(anairiats_sum_12, tmp167, atslab_0) ; tmp251 = ats_caselptrlab_mac(anairiats_sum_12, tmp167, atslab_1) ; tmp252 = ats_caselptrlab_mac(anairiats_sum_12, tmp167, atslab_2) ; tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp164, tmp251) ; tmp254 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp252, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lst (tmp164, tmp166, tmp250, tmp253, ats_castfn_mac(ats_ptr_type, tmp254)) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp167)->tag != 33) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp255 = ats_caselptrlab_mac(anairiats_sum_20, tmp167, atslab_0) ; tmp256 = ats_caselptrlab_mac(anairiats_sum_20, tmp167, atslab_1) ; tmp257 = ats_caselptrlab_mac(anairiats_sum_20, tmp167, atslab_2) ; tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp165) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer_labize (tmp256, tmp257) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec2 (tmp164, tmp166, tmp255, tmp259, tmp258) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp167)->tag != 34) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp260 = ats_caselptrlab_mac(anairiats_sum_20, tmp167, atslab_0) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_20, tmp167, atslab_1) ; tmp262 = ats_caselptrlab_mac(anairiats_sum_20, tmp167, atslab_2) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp165) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_npf_tyer (tmp261, tmp262) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_rec2 (tmp164, tmp166, tmp260, tmp264, tmp263) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp167)->tag != 35) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp265 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp266 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp265, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_seq_simplify (tmp164, tmp166, ats_castfn_mac(ats_ptr_type, tmp266)) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp167)->tag != 36) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_0) ; tmp268 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_1) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp267) ; tmp270 = d3exp_tyer_type_23 (tmp267) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp268) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selab (tmp164, tmp166, tmp269, tmp270, tmp271) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp167)->tag != 37) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; /* tmp273 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes (tmp272) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofvar (tmp164, tmp166, tmp272) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp167)->tag != 38) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp274 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_0) ; tmp275 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_1) ; tmp276 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp274) ; tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp164, tmp275) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp276) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ptrofsel (tmp164, tmp166, tmp277, tmp278, tmp279) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp167)->tag != 40) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp280 = ats_caselptrlab_mac(anairiats_sum_20, tmp167, atslab_0) ; tmp281 = ats_caselptrlab_mac(anairiats_sum_20, tmp167, atslab_1) ; tmp282 = ats_caselptrlab_mac(anairiats_sum_20, tmp167, atslab_2) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp282) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_refarg (tmp164, tmp166, tmp280, tmp281, tmp283) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp167)->tag != 41) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_0) ; tmp285 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_1) ; tmp286 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; /* tmp287 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes (tmp284) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp285) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp286) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selvar (tmp164, tmp166, tmp284, tmp288, tmp289) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp167)->tag != 42) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp290 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_0) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_1) ; tmp292 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp290) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp291) ; tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp292) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selptr (tmp164, tmp166, tmp293, tmp294, tmp295) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp167)->tag != 43) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_0) ; tmp297 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_1) ; tmp298 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp296) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp297) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp298) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_selptr (tmp164, tmp166, tmp299, tmp300, tmp301) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp167)->tag != 44) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp302 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_3) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (tmp302) ; if (!tmp303) { goto __ats_lab_78_1 ; } tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty (tmp164, tmp166) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp167)->tag != 44) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_0) ; tmp305 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_1) ; tmp306 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_2) ; tmp307 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_3) ; /* tmp308 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes (tmp304) ; tmp309 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp305) ; tmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp306) ; tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp307) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_var (tmp164, tmp166, tmp304, tmp309, tmp310, tmp311) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp167)->tag != 45) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp312 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_3) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (tmp312) ; if (!tmp313) { goto __ats_lab_80_1 ; } tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty (tmp164, tmp166) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp167)->tag != 45) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_0) ; tmp315 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_1) ; tmp316 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_2) ; tmp317 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_3) ; tmp318 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp314) ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp315) ; tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp316) ; tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp317) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_ptr (tmp164, tmp166, tmp318, tmp319, tmp320, tmp321) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp167)->tag != 46) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp322 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_0) ; tmp323 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_1) ; tmp324 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_2) ; tmp325 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_3) ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp322) ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp323) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp324) ; tmp329 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp325) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_assgn_ptr (tmp164, tmp166, tmp326, tmp327, tmp328, tmp329) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp167)->tag != 47) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp330 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_0) ; tmp331 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_1) ; tmp332 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_2) ; tmp333 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_3) ; /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes (tmp330) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp331) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp332) ; tmp337 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp333) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_var (tmp164, tmp166, tmp330, tmp335, tmp336, tmp337) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp167)->tag != 48) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp338 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_0) ; tmp339 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_1) ; tmp340 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_2) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_3) ; tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp338) ; tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp339) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp340) ; tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp341) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_ptr (tmp164, tmp166, tmp342, tmp343, tmp344, tmp345) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp167)->tag != 49) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp346 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_0) ; tmp347 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_1) ; tmp348 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_2) ; tmp349 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_3) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp346) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp347) ; tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (tmp348) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp349) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_xchng_ptr (tmp164, tmp166, tmp350, tmp351, tmp352, tmp353) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp167)->tag != 50) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty (tmp164, tmp166) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp167)->tag != 51) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp354 = ats_caselptrlab_mac(anairiats_sum_22, tmp167, atslab_0) ; tmp355 = ats_caselptrlab_mac(anairiats_sum_22, tmp167, atslab_1) ; tmp356 = ats_caselptrlab_mac(anairiats_sum_22, tmp167, atslab_2) ; tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp164, tmp354) ; tmp358 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp355, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrpsz (tmp164, tmp166, tmp357, ats_castfn_mac(ats_ptr_type, tmp358), tmp356) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp167)->tag != 52) { goto __ats_lab_90_0 ; } __ats_lab_87_1: tmp359 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_0) ; tmp360 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_1) ; tmp361 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp164, tmp359) ; tmp363 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp360) ; tmp364 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp360) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp364) ; tmp366 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1size_index_t0ype (tmp365) ; if (tmp366 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 22041(line=1070, offs=5) -- 22099(line=1071, offs=43)") ; } tmp367 = ats_caselptrlab_mac(anairiats_sum_5, tmp366, atslab_0) ; ATS_FREE(tmp366) ; tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_intconst (tmp367) ; do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (tmp368 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp370 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_0) ; ATS_FREE(tmp368) ; tmp369 = tmp370 ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (tmp368 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: tmp369 = -1 ; break ; } while (0) ; tmp371 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp361, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_arrinit (tmp164, tmp166, tmp362, tmp363, ats_castfn_mac(ats_ptr_type, tmp371), tmp369) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp167)->tag != 53) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp372 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp372) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_raise (tmp164, tmp166, tmp373) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp167)->tag != 54) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp374 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_1) ; arg0 = tmp374 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer ; // tail call break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp167)->tag != 55) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp375 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer (tmp375) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vararg (tmp164, tmp166, tmp376) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp167)->tag != 56) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp377 = ats_caselptrlab_mac(anairiats_sum_18, tmp167, atslab_1) ; /* tmp378 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes (tmp377) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_vcopyenv (tmp164, tmp166, tmp377) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp167)->tag != 57) { goto __ats_lab_97_0 ; } __ats_lab_94_1: tmp379 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; /* tmp380 = */ list_app_fun_01301_ats_ptr_type (tmp379, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tempenver (tmp164, tmp166, tmp379) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp167)->tag != 58) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp387 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_0) ; arg0 = tmp387 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer ; // tail call break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp167)->tag != 59) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp388 = ats_caselptrlab_mac(anairiats_sum_13, tmp167, atslab_1) ; tmp389 = ats_caselptrlab_mac(anairiats_sum_13, tmp167, atslab_2) ; tmp390 = ats_caselptrlab_mac(anairiats_sum_13, tmp167, atslab_3) ; tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp165) ; tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer (tmp388, tmp389) ; tmp393 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp390) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lam (tmp164, tmp391, 1, tmp392, tmp393) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp167)->tag != 60) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp394 = ats_caselptrlab_mac(anairiats_sum_13, tmp167, atslab_1) ; tmp395 = ats_caselptrlab_mac(anairiats_sum_13, tmp167, atslab_2) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_13, tmp167, atslab_3) ; tmp397 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (tmp164, tmp165) ; tmp398 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__p3atlst_npf_tyer (tmp394, tmp395) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp396) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lam (tmp164, tmp397, 0, tmp398, tmp399) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp167)->tag != 61) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp400 = ats_caselptrlab_mac(anairiats_sum_16, tmp167, atslab_2) ; tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp400) ; tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_is_value (tmp401) ; tmp404 = atspre_neg_bool (tmp402) ; if (tmp404) { /* tmp405 = */ prerr_warning4_loc_02095_ (tmp164) ; /* tmp408 = */ atspre_prerr_string (ATSstrcst(": a non-value body for static lam-abstraction is not supported.")) ; /* tmp403 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp163 = tmp401 ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp167)->tag != 62) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp409 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_1) ; arg0 = tmp409 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer ; // tail call break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp167)->tag != 63) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp410 = ats_caselptrlab_mac(anairiats_sum_12, tmp167, atslab_0) ; tmp411 = ats_caselptrlab_mac(anairiats_sum_12, tmp167, atslab_1) ; tmp412 = ats_caselptrlab_mac(anairiats_sum_12, tmp167, atslab_2) ; tmp413 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp412) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_fix (tmp164, tmp166, tmp410, tmp411, tmp413) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp167)->tag != 64) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp414 = ats_caselptrlab_mac(anairiats_sum_7, tmp167, atslab_0) ; tmp415 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp414) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_delay (tmp164, tmp166, tmp415) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp167)->tag != 65) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp416 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_0) ; tmp417 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_1) ; tmp418 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp416) ; tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp417) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_ldelay (tmp164, tmp166, tmp418, tmp419) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp167)->tag != 66) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp420 = ats_caselptrlab_mac(anairiats_sum_18, tmp167, atslab_0) ; tmp421 = ats_caselptrlab_mac(anairiats_sum_18, tmp167, atslab_1) ; tmp422 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp421) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_lazyeval (tmp164, tmp166, tmp420, tmp422) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp167)->tag != 67) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp423 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_0) ; tmp424 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_1) ; tmp425 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_2) ; tmp426 = ats_caselptrlab_mac(anairiats_sum_21, tmp167, atslab_3) ; tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3expopt_tyer (tmp423) ; tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp424) ; tmp429 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3expopt_tyer (tmp425) ; tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp426) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loop (tmp164, tmp166, tmp427, tmp428, tmp429, tmp430) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp167)->tag != 68) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp431 = ats_caselptrlab_mac(anairiats_sum_9, tmp167, atslab_0) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_loopexn (tmp164, tmp166, tmp431) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp167)->tag != 69) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp432 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_0) ; tmp433 = ats_caselptrlab_mac(anairiats_sum_14, tmp167, atslab_1) ; tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp432) ; tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer (tmp433) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_trywith (tmp164, tmp166, tmp434, tmp435) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp167)->tag != 70) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp436 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype () ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_empty (tmp164, tmp436) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp167)->tag != 71) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_errexp (tmp164, tmp166) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: __ats_lab_111_1: /* tmp437 = */ prerr_interror_loc_02085_ (tmp164) ; /* tmp442 = */ atspre_prerr_string (ATSstrcst(": d3exp_tyer: d3e0 = ")) ; /* tmp443 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_d3exp (arg0) ; /* tmp444 = */ atspre_prerr_newline () ; tmp445 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 25973(line=1235, offs=51) -- 25982(line=1235, offs=60)", ATSstrcst("\n")) ; /* tmp163 = */ ats_exit_errmsg (1, tmp445) ; break ; } while (0) ; return (tmp163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 26137(line=1245, offs=3) -- 26476(line=1265, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_bool_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer: do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp447 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp448 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp449 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (tmp447) ; if (tmp449) { arg0 = tmp448 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer ; // tail call } else { tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp447) ; tmp451 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer (tmp448) ; tmp446 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp446, atslab_0, tmp450) ; ats_selptrset_mac(anairiats_sum_1, tmp446, atslab_1, tmp451) ; } /* end of [if] */ break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_113_1: tmp446 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp446) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 26534(line=1269, offs=3) -- 26717(line=1286, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_bool_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_int_type, tmp455) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer: tmp453 = atspre_gt_int_int (arg0, 0) ; if (tmp453) { if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 26586(line=1277, offs=1) -- 26611(line=1277, offs=26)") ; } tmp454 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp455 = atspre_sub_int_int (arg0, 1) ; arg0 = tmp455 ; arg1 = tmp454 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer ; // tail call } else { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3explst_tyer (arg1) ; } /* end of [if] */ return (tmp452) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 26811(line=1292, offs=5) -- 26954(line=1297, offs=16) */ ATSstaticdec() ats_ptr_type aux1_34 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_bool_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_int_type, tmp460) ; __ats_lab_aux1_34: tmp458 = atspre_gt_int_int (arg0, 0) ; if (tmp458) { if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 26890(line=1296, offs=9) -- 26916(line=1296, offs=35)") ; } tmp459 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp460 = atspre_sub_int_int (arg0, 1) ; arg0 = tmp460 ; arg1 = tmp459 ; goto __ats_lab_aux1_34 ; // tail call } else { tmp457 = arg1 ; } /* end of [if] */ return (tmp457) ; } /* end of [aux1_34] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 26979(line=1299, offs=5) -- 27410(line=1322, offs=4) */ ATSstaticdec() ats_ptr_type aux2_35 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_bool_type, tmp464) ; ATSlocal (ats_int_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_int_type, tmp470) ; __ats_lab_aux2_35: do { /* branch: __ats_lab_114 */ __ats_lab_114_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp462 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp463 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp464 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (tmp462) ; if (tmp464) { tmp465 = atspre_add_int_int (arg0, 1) ; arg0 = tmp465 ; arg1 = tmp463 ; goto __ats_lab_aux2_35 ; // tail call } else { tmp466 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg0) ; tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp462) ; tmp468 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp468, atslab_0, tmp466) ; ats_selptrset_mac(anairiats_sum_1, tmp468, atslab_1, tmp467) ; tmp470 = atspre_add_int_int (arg0, 1) ; tmp469 = aux2_35 (tmp470, tmp463) ; tmp461 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp461, atslab_0, tmp468) ; ats_selptrset_mac(anairiats_sum_1, tmp461, atslab_1, tmp469) ; } /* end of [if] */ break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_115_1: tmp461 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp461) ; } /* end of [aux2_35] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 26786(line=1290, offs=3) -- 27514(line=1328, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer_labize (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_int_type, tmp471) ; ATSlocal (ats_bool_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer_labize: tmp472 = atspre_gte_int_int (arg0, 0) ; if (tmp472) { tmp471 = arg0 ; } else { tmp471 = 0 ; } /* end of [if] */ tmp473 = aux1_34 (arg0, arg1) ; tmp456 = aux2_35 (tmp471, tmp473) ; return (tmp456) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3explst_npf_tyer_labize] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 27598(line=1333, offs=15) -- 27685(line=1335, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3expopt_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3expopt_tyer: do { /* branch: __ats_lab_116 */ __ats_lab_116_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp475 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp475) ; tmp474 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp474, atslab_0, tmp476) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_117_1: tmp474 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp474) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3expopt_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 27826(line=1344, offs=3) -- 28197(line=1363, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_bool_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_tyer: do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp478 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp479 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp480 = ats_caselptrlab_mac(anairiats_sum_1, tmp478, atslab_0) ; tmp481 = ats_caselptrlab_mac(anairiats_sum_1, tmp478, atslab_1) ; tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_is_prf (tmp481) ; if (tmp482) { arg0 = tmp479 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_tyer ; // tail call } else { tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp481) ; tmp485 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, tmp480), atslab_l0ab_lab) ; tmp484 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp484, atslab_0, tmp485) ; ats_selptrset_mac(anairiats_sum_1, tmp484, atslab_1, tmp483) ; tmp486 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_tyer (tmp479) ; tmp477 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp477, atslab_0, tmp484) ; ats_selptrset_mac(anairiats_sum_1, tmp477, atslab_1, tmp486) ; } /* end of [if] */ break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_119_1: tmp477 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp477) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 28261(line=1367, offs=3) -- 28429(line=1378, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_npf_tyer (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_bool_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_int_type, tmp490) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_npf_tyer: tmp488 = atspre_gt_int_int (arg0, 0) ; if (tmp488) { if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 28310(line=1371, offs=7) -- 28334(line=1371, offs=31)") ; } tmp489 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp490 = atspre_sub_int_int (arg0, 1) ; arg0 = tmp490 ; arg1 = tmp489 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_npf_tyer ; // tail call } else { tmp487 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_tyer (arg1) ; } /* end of [if] */ return (tmp487) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__labd3explst_npf_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 28508(line=1384, offs=3) -- 28880(line=1405, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lab_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lab_tyer: tmp492 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_d3lab_loc) ; tmp493 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_d3lab_node) ; do { /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp493)->tag != 0) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp494 = ats_caselptrlab_mac(anairiats_sum_7, tmp493, atslab_0) ; tmp491 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_lab (tmp492, tmp494) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: // if (((ats_sum_ptr_type)tmp493)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_121_1: tmp495 = ats_caselptrlab_mac(anairiats_sum_7, tmp493, atslab_0) ; tmp496 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp495, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer) ; tmp491 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hilab_ind (tmp492, ats_castfn_mac(ats_ptr_type, tmp496)) ; break ; } while (0) ; return (tmp491) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lab_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 28928(line=1408, offs=14) -- 28987(line=1410, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer: tmp498 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lab_tyer) ; tmp497 = ats_castfn_mac(ats_ptr_type, tmp498) ; return (tmp497) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3lablst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 29069(line=1417, offs=3) -- 29408(line=1434, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_cst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_bool_type, tmp501) ; ATSlocal (ats_bool_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_cst: tmp500 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym (arg2) ; do { /* branch: __ats_lab_122 */ __ats_lab_122_0: __ats_lab_122_1: tmp501 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp500, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TRUE_BOOL) ; if (!tmp501) { goto __ats_lab_123_1 ; } tmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_bool (arg0, arg1, ats_true_bool) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: __ats_lab_123_1: tmp502 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp500, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FALSE_BOOL) ; if (!tmp502) { goto __ats_lab_124_1 ; } tmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_bool (arg0, arg1, ats_false_bool) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: __ats_lab_124_1: tmp503 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d2cst_tyer (arg2) ; tmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_cst (arg0, arg1, tmp503) ; break ; } while (0) ; return (tmp499) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_cst] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 29486(line=1440, offs=1) -- 29634(line=1448, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpcst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpcst: tmp505 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarglst_mhnfize (arg3) ; tmp504 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpcst (arg0, arg1, arg2, tmp505) ; return (tmp504) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpcst] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 29697(line=1452, offs=1) -- 29845(line=1460, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpvar: tmp507 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarglst_mhnfize (arg3) ; tmp506 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hidexp_tmpvar (arg0, arg1, arg2, tmp507) ; return (tmp506) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__d3exp_tyer_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 29924(line=1466, offs=3) -- 30174(line=1480, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3at_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3at_tyer: tmp509 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_gm3at_loc) ; tmp511 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_gm3at_exp) ; tmp510 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp511) ; tmp513 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_gm3at_pat) ; do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (tmp513 == (ats_sum_ptr_type)0) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp514 = ats_caselptrlab_mac(anairiats_sum_5, tmp513, atslab_0) ; tmp515 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3at_tyer (tmp514) ; tmp512 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp512, atslab_0, tmp515) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: // if (tmp513 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_126_1: tmp512 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp508 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__higmat_make (tmp509, tmp510, tmp512) ; return (tmp508) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3at_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 30225(line=1483, offs=14) -- 30322(line=1488, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3atlst_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3atlst_tyer: tmp517 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3at_tyer) ; tmp516 = ats_castfn_mac(ats_ptr_type, tmp517) ; return (tmp516) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3atlst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 30391(line=1493, offs=11) -- 30676(line=1508, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_int_type, tmp524) ; ATSlocal (ats_int_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer: tmp519 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_c3lau_loc) ; tmp521 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_c3lau_pat) ; tmp520 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer (tmp521) ; tmp523 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_c3lau_gua) ; tmp522 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3atlst_tyer (tmp523) ; tmp524 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_c3lau_seq) ; tmp525 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_c3lau_neg) ; tmp527 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_c3lau_body) ; tmp526 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp527) ; tmp518 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiclau_make (tmp519, tmp520, tmp522, tmp524, tmp525, tmp526) ; return (tmp518) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 30724(line=1511, offs=14) -- 30815(line=1516, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer: tmp529 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer) ; tmp528 = ats_castfn_mac(ats_ptr_type, tmp529) ; return (tmp528) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 30888(line=1522, offs=3) -- 31173(line=1537, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_int_type, tmp536) ; ATSlocal (ats_int_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer2: tmp531 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_c3lau_loc) ; tmp533 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_c3lau_pat) ; tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__p3atlst_tyer2 (arg0, tmp533) ; tmp535 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_c3lau_gua) ; tmp534 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__gm3atlst_tyer (tmp535) ; tmp536 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_c3lau_seq) ; tmp537 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_c3lau_neg) ; tmp539 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg1), atslab_c3lau_body) ; tmp538 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__d3exp_tyer (tmp539) ; tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hiclau_make (tmp531, tmp532, tmp534, tmp536, tmp537, tmp538) ; return (tmp530) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer2] */ /* // /tmp/ATS-Postiats/src/pats_typerase_dynexp.dats: 31226(line=1541, offs=3) -- 31487(line=1555, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer2: do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp540 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: tmp541 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp542 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp543 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3lau_tyer2 (arg0, tmp541) ; tmp544 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer2 (arg0, tmp542) ; tmp540 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp540, atslab_0, tmp543) ; ats_selptrset_mac(anairiats_sum_1, tmp540, atslab_1, tmp544) ; break ; } while (0) ; return (tmp540) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__c3laulst_tyer2] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_dynexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_typerase_dynexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lexbuf_dats.c0000644000175000017500000015764213431250607022031 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 "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" #include "pats_reader.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_uchar_type, atspre_uchar_of_int) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_int_of_uchar) (ats_uchar_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_lint_type, atspre_lint_of_uint) (ats_uint_type) ; ATSextern_fun(ats_uint_type, atspre_uint_of_lint) (ats_lint_type) ; ATSextern_fun(ats_lint_type, atspre_add_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_lint_type, atspre_sub_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_int_type, atspre_int_of_size) (ats_size_type) ; ATSextern_fun(ats_size_type, atspre_size_of_uint) (ats_uint_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_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lte_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_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_cap) (ats_ref_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_void_type, ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_clear_all) (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_lint_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ntot) (ats_ref_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_nrow) (ats_ref_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_init) (ats_ref_type, ats_lint_type, ats_int_type, ats_int_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_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_filp) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_getc) (ats_ref_type, ats_clo_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_string) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_charlst_vt) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_uninitize) (ats_ref_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_get_char) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff) (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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr0) (ats_ref_type, ats_uint_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__lexbuf_get_substrptr0) (ats_ref_type, ats_uint_type, ats_uint_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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_trans_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_trans_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_trans_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_trans_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_untrans_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__sasp__lexbuf_vt0ype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type array_ptr_alloc_01563_ats_uchar_type (ats_size_type arg0) ; static ats_void_type deque_initialize_02098_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_void_type deque_clear_beg_02113_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) ; static ats_void_type queue_clear_01917_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) ; static ats_uchar_type deque_get_elt_at_02103_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) ; static ats_uchar_type queue_get_elt_at_01911_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) ; static ats_ptr_type DEQUEptrnxt_02125_ats_uchar_type (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type deque_insert_end_02106_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 deque_update_capacity_02118_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) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 23852(line=868, offs=17) -- 23896(line=868, offs=61) */ ATSstaticdec() ats_ptr_type array_ptr_alloc_01563_ats_uchar_type (ats_size_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_array_ptr_alloc_01563_ats_uchar_type: tmp4 = atspre_array_ptr_alloc_tsz (arg0, sizeof(ats_uchar_type)) ; return (tmp4) ; } /* end of [array_ptr_alloc_01563_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02098_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp6) ; __ats_lab_deque_initialize_02098_ats_uchar_type: /* tmp6 = */ atslib_ngc_deque_arr_deque_initialize_tsz (arg0, arg1, arg2, sizeof(ats_uchar_type)) ; return /* (tmp6) */ ; } /* end of [deque_initialize_02098_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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 (tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp5) ; __ats_lab_queue_initialize_01907_ats_uchar_type: tmp3 = array_ptr_alloc_01563_ats_uchar_type (arg1) ; tmp5 = ats_selsin_mac(tmp3, atslab_2) ; /* tmp2 = */ deque_initialize_02098_ats_uchar_type (arg0, arg1, tmp5) ; return /* (tmp2) */ ; } /* end of [queue_initialize_01907_ats_uchar_type] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 2854(line=119, offs=3) -- 3205(line=138, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_filp (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; // ATSlocal_void (tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_filp: ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) = 0L ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_nrow) = 0 ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) = 0 ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), nspace) = 0 ; /* tmp1 = */ queue_initialize_01907_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), 1024) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_filp (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), reader), arg1) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_filp] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 3295(line=144, offs=3) -- 3620(line=163, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_getc (ats_ref_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_getc: ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) = 0L ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_nrow) = 0 ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) = 0 ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), nspace) = 0 ; /* tmp8 = */ queue_initialize_01907_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), 1024) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_getc (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), reader), arg1) ; return /* (tmp7) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_getc] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 3712(line=169, offs=3) -- 4034(line=187, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_string (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_string: ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) = 0L ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_nrow) = 0 ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) = 0 ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), nspace) = 0 ; /* tmp10 = */ queue_initialize_01907_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), 1024) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_string (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), reader), arg1) ; return /* (tmp9) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_string] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 4132(line=193, offs=3) -- 4469(line=211, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_charlst_vt (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_charlst_vt: ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) = 0L ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_nrow) = 0 ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) = 0 ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), nspace) = 0 ; /* tmp12 = */ queue_initialize_01907_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), 1024) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_charlst_vt (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), reader), arg1) ; return /* (tmp11) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_charlst_vt] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 4562(line=217, offs=3) -- 4774(line=227, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_uninitize (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_uninitize: /* tmp14 = */ atslib_linqueue_arr_queue_uninitialize (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf)) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_uninitize (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), reader)) ; return /* (tmp13) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_uninitize] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 4853(line=233, offs=3) -- 4941(line=237, offs=4) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_uint_type, tmp16) ; ATSlocal (ats_lint_type, tmp17) ; ATSlocal (ats_lint_type, tmp18) ; ATSlocal (ats_lint_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ntot (arg1) ; tmp19 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) ; tmp17 = atspre_sub_lint_lint (tmp18, tmp19) ; tmp16 = atspre_uint_of_lint (tmp17) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 5017(line=242, offs=17) -- 5033(line=242, offs=33) */ ATSglobaldec() ats_lint_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_base (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_lint_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_base: tmp20 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_base] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 5088(line=248, offs=3) -- 5232(line=254, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp21) ; ATSlocal (ats_lint_type, tmp22) ; ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position: tmp22 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) ; tmp23 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_nrow) ; tmp24 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_init (arg1, tmp22, tmp23, tmp24) ; return /* (tmp21) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 10929(line=427, offs=15) -- 11658(line=451, offs=2) */ ATSstaticdec() ats_void_type deque_clear_beg_02113_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) { /* local vardec */ // ATSlocal_void (tmp34) ; ATSlocal (ats_size_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_size_type, tmp39) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptrdiff_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_size_type, tmp46) ; __ats_lab_deque_clear_beg_02113_ats_uchar_type: tmp35 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp36 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_rgt) ; tmp37 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_beg) ; /* ats_ptr_type tmp38 ; */ tmp39 = atspre_mul_size1_size1 (arg1, sizeof(ats_uchar_type)) ; tmp38 = atspre_padd_size (tmp37, tmp39) ; tmp41 = atspre_pgte (tmp38, tmp36) ; if (tmp41) { tmp43 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ; tmp44 = atspre_pdiff (tmp38, tmp36) ; tmp42 = atspre_padd_size (tmp43, ats_castfn_mac(ats_size_type, tmp44)) ; tmp38 = tmp42 ; } else { /* empty */ } /* end of [if] */ tmp45 = ats_castfn_mac(ats_ptr_type, tmp38) ; tmp46 = atspre_sub_size1_size1 (tmp35, arg1) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) = tmp46 ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_beg) = tmp45 ; return /* (tmp34) */ ; } /* end of [deque_clear_beg_02113_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 3899(line=149, offs=3) -- 3939(line=149, offs=43) */ ATSstaticdec() ats_void_type queue_clear_01917_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) { /* local vardec */ // ATSlocal_void (tmp33) ; __ats_lab_queue_clear_01917_ats_uchar_type: /* tmp33 = */ deque_clear_beg_02113_ats_uchar_type (arg0, arg1) ; return /* (tmp33) */ ; } /* end of [queue_clear_01917_ats_uchar_type] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 5319(line=260, offs=3) -- 5922(line=293, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp25) ; ATSlocal (ats_lint_type, tmp26) ; ATSlocal (ats_lint_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; ATSlocal (ats_int_type, tmp29) ; ATSlocal (ats_lint_type, tmp30) ; ATSlocal (ats_size_type, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position: tmp26 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ntot (arg1) ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) = tmp27 ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_nrow (arg1) ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_nrow) = tmp28 ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ncol (arg1) ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) = tmp29 ; tmp30 = atspre_sub_lint_lint (tmp27, tmp26) ; tmp31 = ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf)) ; tmp32 = atspre_lt_size1_size1 (ats_castfn_mac(ats_size_type, ats_castfn_mac(ats_size_type, tmp30)), tmp31) ; if (tmp32) { /* tmp25 = */ queue_clear_01917_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), ats_castfn_mac(ats_size_type, ats_castfn_mac(ats_size_type, tmp30))) ; } else { /* tmp25 = */ ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_clear_all (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf)) ; } /* end of [if] */ return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 6005(line=298, offs=19) -- 6023(line=298, offs=37) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_nspace (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_nspace: tmp47 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), nspace) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_nspace] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 6052(line=300, offs=19) -- 6078(line=300, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_nspace (ats_ref_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_nspace: ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), nspace) = arg1 ; return /* (tmp48) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_nspace] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 6136(line=306, offs=3) -- 6294(line=313, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (pats_position_struct, tmp50) ; // ATSlocal_void (tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location: /* pats_position_struct tmp50 ; */ /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position (arg0, (&tmp50)) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_pos_pos (tmp50, ats_ptrget_mac(pats_position_struct, arg1)) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 7245(line=285, offs=3) -- 7378(line=291, offs=2) */ ATSstaticdec() ats_uchar_type deque_get_elt_at_02103_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_uchar_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab_deque_get_elt_at_02103_ats_uchar_type: tmp59 = atslib_ngc_deque_arr_deque_takeout_tsz (arg0, arg1, sizeof(ats_uchar_type)) ; tmp60 = ats_selsin_mac(tmp59, atslab_2) ; tmp58 = ats_ptrget_mac(ats_uchar_type, tmp60) ; return (tmp58) ; } /* end of [deque_get_elt_at_02103_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 3260(line=115, offs=3) -- 3296(line=115, offs=39) */ ATSstaticdec() ats_uchar_type queue_get_elt_at_01911_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_uchar_type, tmp57) ; __ats_lab_queue_get_elt_at_01911_ats_uchar_type: tmp57 = deque_get_elt_at_02103_ats_uchar_type (arg0, arg1) ; return (tmp57) ; } /* end of [queue_get_elt_at_01911_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02125_ats_uchar_type (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab_DEQUEptrnxt_02125_ats_uchar_type: /* ats_ptr_type tmp72 ; */ tmp72 = atspre_padd_size (arg1, sizeof(ats_uchar_type)) ; tmp75 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_rgt) ; tmp74 = atspre_pgte (tmp72, tmp75) ; if (tmp74) { tmp76 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ; tmp72 = tmp76 ; } else { /* empty */ } /* end of [if] */ tmp71 = tmp72 ; return (tmp71) ; } /* end of [DEQUEptrnxt_02125_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02106_ats_uchar_type (ats_ref_type arg0, ats_uchar_type arg1) { /* local vardec */ // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_size_type, tmp78) ; ATSlocal (ats_size_type, tmp79) ; __ats_lab_deque_insert_end_02106_ats_uchar_type: tmp69 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) ; tmp70 = DEQUEptrnxt_02125_ats_uchar_type (arg0, tmp69) ; tmp77 = ats_selsin_mac(tmp70, atslab_1) ; ats_ptrget_mac(ats_uchar_type, tmp69) = arg1 ; tmp79 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp78 = atspre_add_size1_int1 (tmp79, 1) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) = tmp78 ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) = tmp77 ; return /* (tmp68) */ ; } /* end of [deque_insert_end_02106_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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 (tmp67) ; __ats_lab_queue_insert_01913_ats_uchar_type: /* tmp67 = */ deque_insert_end_02106_ats_uchar_type (arg0, arg1) ; return /* (tmp67) */ ; } /* end of [queue_insert_01913_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02118_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; __ats_lab_deque_update_capacity_02118_ats_uchar_type: tmp85 = atslib_ngc_deque_arr_deque_update_capacity_tsz (arg0, arg1, arg2, sizeof(ats_uchar_type)) ; return (tmp85) ; } /* end of [deque_update_capacity_02118_ats_uchar_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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 (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab_queue_update_capacity_01920_ats_uchar_type: tmp82 = array_ptr_alloc_01563_ats_uchar_type (arg1) ; tmp83 = ats_selsin_mac(tmp82, atslab_2) ; tmp84 = deque_update_capacity_02118_ats_uchar_type (arg0, arg1, tmp83) ; tmp86 = ats_selsin_mac(tmp84, atslab_2) ; /* tmp81 = */ atspre_array_ptr_free (tmp86) ; return /* (tmp81) */ ; } /* end of [queue_update_capacity_01920_ats_uchar_type] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 6380(line=319, offs=3) -- 7130(line=362, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (ats_ref_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_size_type, tmp53) ; ATSlocal (ats_size_type, tmp54) ; ATSlocal (ats_bool_type, tmp55) ; ATSlocal (ats_uchar_type, tmp56) ; ATSlocal (ats_int_type, tmp61) ; ATSlocal (ats_bool_type, tmp62) ; ATSlocal (ats_uchar_type, tmp63) ; ATSlocal (ats_size_type, tmp64) ; ATSlocal (ats_bool_type, tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_size_type, tmp87) ; // ATSlocal_void (tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char: tmp53 = atspre_size_of_uint (arg1) ; tmp54 = ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf)) ; tmp55 = atspre_lt_size1_size1 (ats_castfn_mac(ats_size_type, tmp53), tmp54) ; if (tmp55) { tmp56 = queue_get_elt_at_01911_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), ats_castfn_mac(ats_size_type, tmp53)) ; tmp52 = atspre_int_of_uchar (tmp56) ; } else { tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_get_char (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), reader)) ; tmp62 = atspre_gte_int_int (tmp61, 0) ; if (tmp62) { tmp63 = atspre_uchar_of_int (tmp61) ; tmp64 = ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_cap (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf)) ; tmp65 = atspre_gt_size1_size1 (tmp64, tmp54) ; if (tmp65) { /* tmp66 = */ queue_insert_01913_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), tmp63) ; tmp52 = tmp61 ; } else { tmp87 = atspre_add_size1_int1 (tmp64, 1024) ; /* tmp80 = */ queue_update_capacity_01920_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), tmp87) ; /* tmp88 = */ queue_insert_01913_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), tmp63) ; tmp52 = tmp61 ; } /* end of [if] */ } else { tmp52 = tmp61 ; } /* end of [if] */ } /* end of [if] */ return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 7212(line=368, offs=3) -- 7341(line=373, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp89) ; ATSlocal (ats_lint_type, tmp90) ; ATSlocal (ats_lint_type, tmp91) ; ATSlocal (ats_lint_type, tmp92) ; ATSlocal (ats_uint_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ntot (arg1) ; tmp92 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) ; tmp90 = atspre_sub_lint_lint (tmp91, tmp92) ; tmp93 = atspre_uint_of_lint (tmp90) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (arg0, tmp93) ; return (tmp89) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 7426(line=379, offs=3) -- 7986(line=400, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_incby_count (ats_ref_type arg0, ats_uint_type arg1) { /* local vardec */ // ATSlocal_void (tmp94) ; ATSlocal (ats_size_type, tmp95) ; ATSlocal (ats_size_type, tmp96) ; ATSlocal (ats_bool_type, tmp97) ; ATSlocal (ats_lint_type, tmp98) ; ATSlocal (ats_lint_type, tmp99) ; ATSlocal (ats_lint_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_lint_type, tmp103) ; ATSlocal (ats_lint_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_int_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_incby_count: tmp95 = atspre_size_of_uint (arg1) ; tmp96 = ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf)) ; tmp97 = atspre_lt_size1_size1 (ats_castfn_mac(ats_size_type, tmp95), tmp96) ; if (tmp97) { tmp99 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) ; tmp100 = atspre_lint_of_uint (arg1) ; tmp98 = atspre_add_lint_lint (tmp99, tmp100) ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) = tmp98 ; tmp102 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) ; tmp101 = atspre_add_int_int (tmp102, ats_castfn_mac(ats_int_type, arg1)) ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) = tmp101 ; /* tmp94 = */ queue_clear_01917_ats_uchar_type (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), ats_castfn_mac(ats_size_type, tmp95)) ; } else { tmp104 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) ; tmp103 = atspre_add_lint_lint (tmp104, ats_castfn_mac(ats_lint_type, tmp96)) ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base) = tmp103 ; tmp106 = ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) ; tmp107 = atspre_int_of_size (tmp96) ; tmp105 = atspre_add_int_int (tmp106, tmp107) ; ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), base_ncol) = tmp105 ; /* tmp94 = */ ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_clear_all (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf)) ; } /* end of [if] */ return /* (tmp94) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_incby_count] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 8071(line=406, offs=3) -- 8119(line=407, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr0 (ats_ref_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr0: tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr0 (arg0, 0u, arg1) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr0] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 8183(line=412, offs=3) -- 8231(line=413, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (ats_ref_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1: tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr1 (arg0, 0u, arg1) ; return (tmp109) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 8318(line=420, offs=3) -- 8782(line=444, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr0 (ats_ref_type arg0, ats_uint_type arg1, ats_uint_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_size_type, tmp111) ; ATSlocal (ats_size_type, tmp112) ; ATSlocal (ats_size_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_size_type, tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr0: tmp111 = atspre_size_of_uint (arg1) ; tmp112 = atspre_size_of_uint (arg2) ; tmp113 = ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf)) ; tmp115 = atspre_add_size1_size1 (ats_castfn_mac(ats_size_type, tmp111), ats_castfn_mac(ats_size_type, tmp112)) ; tmp114 = atspre_lte_size1_size1 (tmp115, tmp113) ; if (tmp114) { tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__queue_get_strptr1 (&ats_select_mac(ats_ptrget_mac(pats_lexbuf_struct, arg0), cbuf), ats_castfn_mac(ats_size_type, tmp111), ats_castfn_mac(ats_size_type, tmp112)) ; } else { tmp110 = atspre_strptr_null () ; } /* end of [if] */ return (tmp110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr0] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 8852(line=448, offs=3) -- 8984(line=451, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr1 (ats_ref_type arg0, ats_uint_type arg1, ats_uint_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; // ATSlocal_void (tmp118) ; ATSlocal (ats_bool_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr1: tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr0 (arg0, arg1, arg2) ; tmp119 = atspre_ptr_isnot_null (tmp117) ; tmp120 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_lexbuf.dats: 8947(line=450, offs=20) -- 8980(line=450, offs=53)", ATSstrcst("\n")) ; /* tmp118 = */ atspre_assert_errmsg (tmp119, tmp120) ; tmp116 = tmp117 ; return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr1] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 9075(line=457, offs=3) -- 9139(line=458, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr0 (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_uint_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr0: tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff (arg0, arg1) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr0 (arg0, tmp122) ; return (tmp121) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr0] */ /* // /tmp/ATS-Postiats/src/pats_lexbuf.dats: 9209(line=463, offs=3) -- 9274(line=464, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_uint_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1: tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff (arg0, arg1) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, tmp124) ; return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_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) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_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_reader_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__lemma_queue_param_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_trans_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_trans_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_trans_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_trans_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2edats__lexbuf0_untrans_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lexbuf_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_util_dats.c0000644000175000017500000014725013431250607023236 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BAR_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT2_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__SYNENT3_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12one_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__LIST12two_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_isnot_null) (ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AND_test) (ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test) (ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test) (ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON_test) (ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BARSEMI_test) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun) (ats_ref_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_sep) (ats_ref_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_5 (ats_ptr_type env0, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) ; static ats_clo_ptr_type loop_5_closure_make (ats_ptr_type env0) ; static ats_void_type loop_5_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) ; static ats_void_type loop_7 (ats_ptr_type env0, ats_ptr_type env1, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) ; static ats_clo_ptr_type loop_7_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type loop_7_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) ; static ats_void_type loop_23 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 1806(line=62, offs=3) -- 1880(line=64, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (ats_ref_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; // ATSlocal_void (tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null: /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (arg0, arg1) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 1957(line=70, offs=1) -- 2285(line=85, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; // ATSlocal_void (tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp3), atslab_token_node) ; tmp4 = ((ats_bool_type(*)(ats_ptr_type))arg3) (tmp5) ; if (tmp4) { /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp2 = tmp3 ; } else { tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp3), atslab_token_loc) ; tmp8 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp8 ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp7, arg4) ; tmp2 = ats_castfn_mac(ats_ptr_type, atspre_null_ptr) ; } /* end of [if] */ return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 2359(line=91, offs=3) -- 2506(line=97, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_bool_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun: tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp11), atslab_token_node) ; tmp12 = ((ats_bool_type(*)(ats_ptr_type))arg1) (tmp13) ; if (tmp12) { /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp10 = ats_true_bool ; } else { tmp10 = ats_false_bool ; } /* end of [if] */ return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptoken_test_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 2584(line=103, offs=3) -- 2960(line=117, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_uint_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_bool_type, tmp23) ; // ATSlocal_void (tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun: tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp19 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp17), atslab_token_node) ; tmp18 = ((ats_bool_type(*)(ats_ptr_type))arg1) (tmp19) ; if (tmp18) { /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; /* ats_int_type tmp21 ; */ tmp21 = 0 ; tmp22 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg2) (arg0, 0, (&tmp21)) ; tmp23 = atspre_eq_int_int (tmp21, 0) ; if (tmp23) { tmp15 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp15, atslab_0, tmp22) ; } else { /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (arg0, tmp16) ; tmp15 = (ats_sum_ptr_type)0 ; } /* end of [if] */ } else { tmp15 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 3138(line=129, offs=7) -- 3651(line=151, offs=6) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type env0, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_bool_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab_loop_5: tmp27 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))env0) (arg0, 1, arg2) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp28 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ; if (!tmp28) { goto __ats_lab_1_1 ; } tmp29 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp29 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp30 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp30, atslab_0, tmp27) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp30 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp31 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = arg0 ; arg1 = tmp31 ; arg2 = arg2 ; goto __ats_lab_loop_5 ; // tail call break ; } while (0) ; return /* (tmp26) */ ; } /* end of [loop_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop_5_closure_type ; ats_void_type loop_5_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) { loop_5 (((loop_5_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; return ; } /* end of function */ ATSinline() ats_void_type loop_5_closure_init (loop_5_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_5_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_5_closure_make (ats_ptr_type env0) { loop_5_closure_type *p_clo = ATS_MALLOC(sizeof(loop_5_closure_type)) ; loop_5_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 3075(line=125, offs=3) -- 3773(line=157, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_int_type, tmp33) ; // ATSlocal_void (tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun: /* ats_ptr_type tmp32 ; */ /* ats_int_type tmp33 ; */ tmp33 = 0 ; /* tmp34 = */ loop_5 (arg2, arg0, (&tmp32), (&tmp33)) ; tmp25 = tmp32 ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 3955(line=169, offs=7) -- 4683(line=199, offs=6) */ ATSstaticdec() ats_void_type loop_7 (ats_ptr_type env0, ats_ptr_type env1, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp36) ; ATSlocal (ats_uint_type, tmp37) ; ATSlocal (ats_bool_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab_loop_7: tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp38 = ((ats_bool_type(*)(ats_ref_type))env0) (arg0) ; if (tmp38) { tmp39 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))env1) (arg0, 0, arg2) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp40 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ; if (!tmp40) { goto __ats_lab_3_1 ; } /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (arg0, tmp37) ; tmp42 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp42 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp43 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp43, atslab_0, tmp39) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp43 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp44 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = arg0 ; arg1 = tmp44 ; arg2 = arg2 ; goto __ats_lab_loop_7 ; // tail call break ; } while (0) ; } else { tmp45 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp45 ; } /* end of [if] */ return /* (tmp36) */ ; } /* end of [loop_7] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } loop_7_closure_type ; ats_void_type loop_7_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) { loop_7 (((loop_7_closure_type*)cloptr)->closure_env_0, ((loop_7_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; return ; } /* end of function */ ATSinline() ats_void_type loop_7_closure_init (loop_7_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_7_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type loop_7_closure_make (ats_ptr_type env0, ats_ptr_type env1) { loop_7_closure_type *p_clo = ATS_MALLOC(sizeof(loop_7_closure_type)) ; loop_7_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 3887(line=165, offs=3) -- 4805(line=205, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_int_type, tmp47) ; // ATSlocal_void (tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun: /* ats_ptr_type tmp46 ; */ /* ats_int_type tmp47 ; */ tmp47 = 0 ; /* tmp48 = */ loop_7 (arg2, arg3, arg0, (&tmp46), (&tmp47)) ; tmp35 = tmp46 ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 4882(line=211, offs=3) -- 4939(line=212, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_COMMA_fun (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_COMMA_fun: tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test, arg2) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_COMMA_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 5017(line=219, offs=3) -- 5281(line=233, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_sep (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_sep: /* ats_int_type tmp51 ; */ tmp51 = 0 ; tmp52 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg2) (arg0, 1, (&tmp51)) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp53 = atspre_gt_int_int (tmp51, 0) ; if (!tmp53) { goto __ats_lab_5_1 ; } tmp50 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun (arg0, 1, arg3, arg2) ; tmp50 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp50, atslab_0, tmp52) ; ats_selptrset_mac(anairiats_sum_3, tmp50, atslab_1, tmp54) ; break ; } while (0) ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_sep] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 5358(line=239, offs=3) -- 5414(line=240, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR: tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_sep (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BAR_test) ; return (tmp55) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BAR] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 5472(line=245, offs=3) -- 5530(line=246, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA: tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_sep (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test) ; return (tmp56) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 5594(line=251, offs=3) -- 5656(line=252, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_SEMICOLON (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_SEMICOLON: tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_sep (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON_test) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_SEMICOLON] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 5722(line=257, offs=3) -- 5782(line=258, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BARSEMI (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BARSEMI: tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_sep (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_BARSEMI_test) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_BARSEMI] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 5861(line=265, offs=1) -- 6188(line=284, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_bool_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_int_type, tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep: tmp60 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg3) (arg0, arg1, arg2) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_isnot_null (tmp60) ; if (!tmp61) { goto __ats_lab_7_1 ; } tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun (arg0, 1, arg4, arg3) ; tmp59 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp59, atslab_0, tmp60) ; ats_selptrset_mac(anairiats_sum_3, tmp59, atslab_1, tmp62) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp63 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp63 ; tmp59 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 6265(line=290, offs=3) -- 6331(line=291, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND: tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_sep (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_AND_test) ; return (tmp64) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun1_AND] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 6402(line=298, offs=1) -- 6682(line=315, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_int_type, tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun: tmp66 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg3) (arg0, arg1, arg2) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_isnot_null (tmp66) ; if (!tmp67) { goto __ats_lab_9_1 ; } tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 1, arg3) ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp65, atslab_0, tmp66) ; ats_selptrset_mac(anairiats_sum_3, tmp65, atslab_1, tmp68) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp69 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp69 ; tmp65 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 6751(line=321, offs=3) -- 6873(line=326, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__popt_fun (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_bool_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__popt_fun: /* ats_int_type tmp71 ; */ tmp71 = 0 ; tmp72 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg2) (arg0, 1, (&tmp71)) ; tmp73 = atspre_eq_int_int (tmp71, 0) ; if (tmp73) { tmp70 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp70, atslab_0, tmp72) ; } else { tmp70 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp70) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__popt_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 6944(line=332, offs=1) -- 7302(line=359, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_uint_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_bool_type, tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_bool_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun: tmp75 = ats_ptrget_mac(ats_int_type, arg2) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp77 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg3) (arg0, arg1, arg2) ; tmp79 = atspre_lte_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp75) ; if (tmp79) { tmp78 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg4) (arg0, 0, arg2) ; } else { tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ tmp81 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp75) ; if (tmp81) { /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (arg0, tmp76) ; } else { /* empty */ } /* end of [if] */ tmp74 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp74, atslab_0, tmp77) ; ats_selptrset_mac(anairiats_sum_3, tmp74, atslab_1, tmp78) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq2_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 7377(line=365, offs=1) -- 7871(line=398, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_int_type, tmp83) ; ATSlocal (ats_uint_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_bool_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_bool_type, tmp89) ; // ATSlocal_void (tmp90) ; ATSlocal (ats_bool_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun: tmp83 = ats_ptrget_mac(ats_int_type, arg2) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp85 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg3) (arg0, arg1, arg2) ; tmp87 = atspre_lte_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp83) ; if (tmp87) { tmp86 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg4) (arg0, 0, arg2) ; } else { tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ tmp89 = atspre_lte_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp83) ; if (tmp89) { tmp88 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg5) (arg0, 0, arg2) ; } else { tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ tmp91 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp83) ; if (tmp91) { /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (arg0, tmp84) ; } else { /* empty */ } /* end of [if] */ tmp82 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp82, atslab_0, tmp85) ; ats_selptrset_mac(anairiats_sum_4, tmp82, atslab_1, tmp86) ; ats_selptrset_mac(anairiats_sum_4, tmp82, atslab_2, tmp88) ; return (tmp82) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pseq3_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 7941(line=404, offs=3) -- 8052(line=409, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp92) ; ATSlocal (ats_int_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun: /* ats_int_type tmp93 ; */ tmp93 = 0 ; tmp94 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg1) (arg0, 1, (&tmp93)) ; ats_ptrget_mac(ats_ptr_type, arg2) = ats_castfn_mac(ats_ptr_type, tmp94) ; tmp92 = atspre_eq_int_int (tmp93, 0) ; return (tmp92) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_23 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab_loop_23: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp99 ; goto __ats_lab_loop_23 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: break ; } while (0) ; return /* (tmp98) */ ; } /* end of [loop_23] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp97) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp97 = */ loop_23 (arg0) ; return /* (tmp97) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 8121(line=415, offs=3) -- 8254(line=418, offs=70) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; // ATSlocal_void (tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_13_0 ; } __ats_lab_10_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; ATS_FREE(arg0) ; /* tmp95 = */ list_vt_free_01499_ats_ptr_type (tmp96) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp102 = */ list_vt_free_01499_ats_ptr_type (tmp100) ; /* tmp95 = */ list_vt_free_01499_ats_ptr_type (tmp101) ; break ; } while (0) ; return /* (tmp95) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__list12_free] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 8333(line=425, offs=6) -- 8662(line=446, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun (ats_ref_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun: tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, arg2) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp105), atslab_token_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp106)->tag != 2) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, arg2) ; tmp103 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp103)->tag = 1 ; ats_selptrset_mac(anairiats_sum_6, tmp103, atslab_0, tmp104) ; ats_selptrset_mac(anairiats_sum_6, tmp103, atslab_1, tmp108) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp103 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp103)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp103, atslab_0, tmp104) ; break ; } while (0) ; return (tmp103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__plist12_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 8737(line=452, offs=3) -- 9130(line=476, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p1list12_fun (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p1list12_fun: tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_sep_fun (arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_COMMA_test, arg3) ; tmp111 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp111, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp111, atslab_1, tmp110) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg1) ; tmp113 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp112), atslab_token_node) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp113)->tag != 2) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg1) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg1, arg2, arg3) ; tmp109 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp109)->tag = 1 ; ats_selptrset_mac(anairiats_sum_6, tmp109, atslab_0, tmp111) ; ats_selptrset_mac(anairiats_sum_6, tmp109, atslab_1, tmp115) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp109 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp109)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp109, atslab_0, tmp111) ; break ; } while (0) ; return (tmp109) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p1list12_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 9196(line=481, offs=9) -- 9297(line=486, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_bool_type, tmp117) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun: tmp117 = atspre_lte_int_int (ats_ptrget_mac(ats_int_type, arg2), arg4) ; if (tmp117) { tmp116 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg3) (arg0, arg1, arg2) ; } else { tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun] */ /* // /tmp/ATS-Postiats/src/pats_parsing_util.dats: 9371(line=494, offs=1) -- 9764(line=511, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_int_type, tmp119) ; ATSlocal (ats_uint_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_bool_type, tmp124) ; // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun: tmp119 = ats_ptrget_mac(ats_int_type, arg2) ; ats_ptrget_mac(ats_int_type, arg2) = 0 ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp122 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type))arg3) (arg0, arg1, arg2, tmp121) ; tmp124 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ; if (tmp124) { /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (arg0, tmp120) ; tmp126 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp121), atslab_token_loc) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (arg1, tmp126, arg4) ; } else { /* empty */ } /* end of [if] */ tmp127 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp119) ; ats_ptrget_mac(ats_int_type, arg2) = tmp127 ; tmp118 = tmp122 ; return (tmp118) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun] */ /* 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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_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_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_util_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_util_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_constraint3_print_dats.c0000644000175000017500000013754413431250607024226 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Evar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ecst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eunit_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneg_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebadd_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebmul_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebeq_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneq_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebineq_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebdom_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eiatm_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eicff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eisum_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eimul_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Esizeof_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eapp_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eerr_19) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varmset) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3explst) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_constraint3_print.dats: 1728(line=55, offs=14) -- 5054(line=185, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_int_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("S3Ecst(")) ; /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (arg0, tmp1) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst(":")) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp1) ; /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (arg0, tmp6) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("S3Evar(")) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp7) ; /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst(":")) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp7) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (arg0, tmp12) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("0")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("1")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp0 = */ atspre_fprint_bool (arg0, tmp13) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("S3Ebvar(")) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp14) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp18 = */ atspre_fprint_string (arg0, ATSstrcst("S3Ebneg(")) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp17) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp21 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst("S3Ebadd(")) ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp20) ; /* tmp24 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp21) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp27 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp28 = */ atspre_fprint_string (arg0, ATSstrcst("S3Ebmul(")) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp26) ; /* tmp30 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp27) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp33 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst("S3Ebeq(")) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp32) ; /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp33) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp39 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp40 = */ atspre_fprint_string (arg0, ATSstrcst("S3Ebneq(")) ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp38) ; /* tmp42 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp39) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 11) { goto __ats_lab_17_0 ; } __ats_lab_11_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp45 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst("S3Ebineq(")) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp44 != 1) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp44 != -1) { goto __ats_lab_14_0 ; } __ats_lab_13_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("!=")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp44 != 2) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst(">=")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (tmp44 != -2) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("<")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("?")) ; break ; } while (0) ; /* tmp48 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp45) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg1)->tag != 12) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst("S3Ebdom(")) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp50) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg1)->tag != 13) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp54 = */ atspre_fprint_string (arg0, ATSstrcst("S3Eiatm(")) ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varmset (arg0, tmp53) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg1)->tag != 14) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp56 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("S3Eicff(")) ; /* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf (arg0, tmp56) ; /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp57) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg1)->tag != 15) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp63 = */ atspre_fprint_string (arg0, ATSstrcst("S3Eisum(")) ; /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3explst (arg0, tmp62) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)arg1)->tag != 16) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp66 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp67 = */ atspre_fprint_string (arg0, ATSstrcst("S3Eimul(")) ; /* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp65) ; /* tmp69 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp66) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg1)->tag != 17) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp72 = */ atspre_fprint_string (arg0, ATSstrcst("S3Esizeof(")) ; /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2zexp (arg0, tmp71) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg1)->tag != 18) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp75 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp76 = */ atspre_fprint_string (arg0, ATSstrcst("S3Eapp(")) ; /* tmp77 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (arg0, tmp74) ; /* tmp78 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp79 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3explst (arg0, tmp75) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (((ats_sum_ptr_type)arg1)->tag != 19) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp81 = */ atspre_fprint_string (arg0, ATSstrcst("S3Eerr(")) ; /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (arg0, tmp80) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_print.dats: 5103(line=188, offs=13) -- 5137(line=188, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__print_s3exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__print_s3exp: /* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (stdout, arg0) ; return /* (tmp83) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__print_s3exp] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_print.dats: 5160(line=190, offs=13) -- 5194(line=190, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3exp: /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp (stderr, arg0) ; return /* (tmp84) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3exp] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; // ATSlocal_void (tmp90) ; ATSlocal (ats_bool_type, tmp91) ; // ATSlocal_void (tmp92) ; ATSlocal (ats_int_type, tmp93) ; __ats_lab_aux_5: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp91 = atspre_gt_int_int (arg1, 0) ; if (tmp91) { /* tmp90 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp92 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp88) ; tmp93 = atspre_add_int_int (arg1, 1) ; arg0 = tmp89 ; arg1 = tmp93 ; goto __ats_lab_aux_5 ; // tail call break ; } while (0) ; return /* (tmp87) */ ; } /* end of [aux_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_5_closure_type ; ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_5 (((aux_5_closure_type*)cloptr)->closure_env_0, ((aux_5_closure_type*)cloptr)->closure_env_1, ((aux_5_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_5_closure_init (aux_5_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ; aux_5_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp86) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp86 = */ aux_5 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp86) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_print.dats: 5243(line=195, offs=17) -- 5300(line=196, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3explst: /* tmp85 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3exp) ; return /* (tmp85) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3explst] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_print.dats: 5355(line=200, offs=16) -- 5394(line=200, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__print_s3explst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__print_s3explst: /* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3explst (stdout, arg0) ; return /* (tmp94) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__print_s3explst] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_print.dats: 5420(line=202, offs=16) -- 5459(line=202, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3explst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3explst: /* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__fprint_s3explst (stderr, arg0) ; return /* (tmp95) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3explst] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_constraint3_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_basics_dats.c0000644000175000017500000011043313431250607021773 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_int_type atslab_0 ; } anairiats_sum_0 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fnx_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfn_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfun_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_praxi_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_castfn_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_prval_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKval_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKpraxi_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprfun_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprval_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKcastfn_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_int_type, atspre_asl_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lt_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_uint_type, atspre_lnot_uint) (ats_uint_type) ; ATSextern_fun(ats_uint_type, atspre_land_uint_uint) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_uint_type, atspre_lor_uint_uint) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_fltkind) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__eq_funclo_funclo) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VIEWT0YPE_knd) ; /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_int_type, statmp62) ; // ATSstatic_void (statmp63) ; // ATSstatic_void (statmp64) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 1581(line=49, offs=13) -- 1696(line=54, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_fltkind (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_uint_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_fltkind: tmp1 = atspre_asl_int_int1 (1, 0) ; tmp2 = atspre_land_uint_uint (ats_castfn_mac(ats_uint_type, arg0), ats_castfn_mac(ats_uint_type, tmp1)) ; tmp0 = atspre_gt_uint_uint (tmp2, 0u) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_fltkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 1745(line=57, offs=13) -- 1797(line=58, offs=45) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_boxkind (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_boxkind: tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_fltkind (arg0) ; if (tmp4) { tmp3 = ats_false_bool ; } else { tmp3 = ats_true_bool ; } /* end of [if] */ return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_boxkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 1846(line=62, offs=13) -- 1961(line=67, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_uint_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind: tmp6 = atspre_asl_int_int1 (1, 1) ; tmp7 = atspre_land_uint_uint (ats_castfn_mac(ats_uint_type, arg0), ats_castfn_mac(ats_uint_type, tmp6)) ; tmp5 = atspre_gt_uint_uint (tmp7, 0u) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 2010(line=70, offs=13) -- 2123(line=75, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_uint_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind: tmp9 = atspre_asl_int_int1 (1, 2) ; tmp10 = atspre_land_uint_uint (ats_castfn_mac(ats_uint_type, arg0), ats_castfn_mac(ats_uint_type, tmp9)) ; tmp8 = atspre_gt_uint_uint (tmp10, 0u) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 2173(line=78, offs=14) -- 2286(line=83, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prgmkind (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; ATSlocal (ats_uint_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prgmkind: tmp12 = atspre_asl_int_int1 (1, 2) ; tmp13 = atspre_land_uint_uint (ats_castfn_mac(ats_uint_type, arg0), ats_castfn_mac(ats_uint_type, tmp12)) ; tmp11 = atspre_eq_uint_uint (tmp13, 0u) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prgmkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 2337(line=86, offs=14) -- 2535(line=97, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_polkind (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_uint_type, tmp16) ; ATSlocal (ats_bool_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_polkind: tmp15 = atspre_asl_int_int1 (3, 3) ; tmp16 = atspre_land_uint_uint (ats_castfn_mac(ats_uint_type, arg0), ats_castfn_mac(ats_uint_type, tmp15)) ; tmp17 = atspre_eq_uint_uint (tmp16, 0u) ; if (tmp17) { tmp14 = 0 ; } else { tmp18 = atspre_lt_uint_uint (tmp16, ats_castfn_mac(ats_uint_type, tmp15)) ; if (tmp18) { tmp14 = 1 ; } else { tmp14 = -1 ; } /* end of [if] */ } /* end of [if] */ return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_polkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 2610(line=102, offs=18) -- 2723(line=107, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__impkind_linearize (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_int_type, tmp20) ; ATSlocal (ats_uint_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__impkind_linearize: tmp20 = atspre_asl_int_int1 (1, 1) ; tmp21 = atspre_lor_uint_uint (ats_castfn_mac(ats_uint_type, arg0), ats_castfn_mac(ats_uint_type, tmp20)) ; tmp19 = ats_castfn_mac(ats_int_type, tmp21) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__impkind_linearize] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 2783(line=110, offs=19) -- 2898(line=115, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__impkind_neutralize (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_uint_type, tmp24) ; ATSlocal (ats_uint_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__impkind_neutralize: tmp23 = atspre_asl_int_int1 (3, 3) ; tmp25 = atspre_lnot_uint (ats_castfn_mac(ats_uint_type, tmp23)) ; tmp24 = atspre_land_uint_uint (ats_castfn_mac(ats_uint_type, arg0), tmp25) ; tmp22 = ats_castfn_mac(ats_int_type, tmp24) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__impkind_neutralize] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 2981(line=120, offs=20) -- 3201(line=133, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__lte_impkind_impkind (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_uint_type, tmp28) ; ATSlocal (ats_uint_type, tmp29) ; ATSlocal (ats_uint_type, tmp30) ; ATSlocal (ats_uint_type, tmp31) ; ATSlocal (ats_uint_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__lte_impkind_impkind: tmp27 = atspre_asl_int_int1 (3, 3) ; tmp28 = atspre_lnot_uint (ats_castfn_mac(ats_uint_type, tmp27)) ; tmp29 = atspre_land_uint_uint (ats_castfn_mac(ats_uint_type, arg0), tmp28) ; tmp30 = atspre_land_uint_uint (ats_castfn_mac(ats_uint_type, arg1), tmp28) ; tmp32 = atspre_lnot_uint (tmp30) ; tmp31 = atspre_land_uint_uint (tmp29, tmp32) ; tmp26 = atspre_eq_uint_uint (tmp31, 0u) ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__lte_impkind_impkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 3283(line=139, offs=3) -- 3460(line=143, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_caskind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_caskind: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst("case")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst("case+")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst("case-")) ; break ; } while (0) ; return /* (tmp33) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_caskind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 3541(line=150, offs=3) -- 3668(line=159, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_proof (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_proof: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp34 = ats_true_bool ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp34 = ats_true_bool ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp34 = ats_true_bool ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp34 = ats_false_bool ; break ; } while (0) ; return (tmp34) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_proof] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 3732(line=163, offs=3) -- 3936(line=178, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp35 = ats_true_bool ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp35 = ats_true_bool ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp35 = ats_true_bool ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp35 = ats_true_bool ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp35 = ats_true_bool ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp35 = ats_false_bool ; break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 4025(line=184, offs=3) -- 4079(line=186, offs=43) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp36 = ats_true_bool ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: tmp36 = ats_false_bool ; break ; } while (0) ; return (tmp36) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 4170(line=194, offs=3) -- 4544(line=210, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funkind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funkind: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("fn")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("fnx")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("fun")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("prfn")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("prfun")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("praxi")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (((ats_sum_ptr_type)arg1)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: /* tmp37 = */ atspre_fprint_string (arg0, ATSstrcst("castfn")) ; break ; } while (0) ; return /* (tmp37) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 4738(line=222, offs=18) -- 4791(line=223, offs=47) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind_is_proof (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind_is_proof: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp38 = ats_true_bool ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp38 = ats_false_bool ; break ; } while (0) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind_is_proof] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 4870(line=230, offs=3) -- 5092(line=239, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_valkind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_valkind: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: /* tmp39 = */ atspre_fprint_string (arg0, ATSstrcst("val")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_26_0 ; } __ats_lab_25_1: /* tmp39 = */ atspre_fprint_string (arg0, ATSstrcst("val+")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_27_0 ; } __ats_lab_26_1: /* tmp39 = */ atspre_fprint_string (arg0, ATSstrcst("val-")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (((ats_sum_ptr_type)arg1)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: /* tmp39 = */ atspre_fprint_string (arg0, ATSstrcst("prval")) ; break ; } while (0) ; return /* (tmp39) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_valkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 5173(line=245, offs=3) -- 5360(line=254, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind2caskind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind2caskind: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp40 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp40 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp40 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp40 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; break ; } while (0) ; return (tmp40) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind2caskind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 5437(line=259, offs=17) -- 5486(line=260, offs=44) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp41 = ats_true_bool ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp41 = ats_false_bool ; break ; } while (0) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 5542(line=264, offs=17) -- 5591(line=265, offs=44) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_val (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_val: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp42 = ats_true_bool ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp42 = ats_false_bool ; break ; } while (0) ; return (tmp42) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_val] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 5649(line=269, offs=19) -- 5700(line=270, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_prfun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_prfun: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp43 = ats_true_bool ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp43 = ats_false_bool ; break ; } while (0) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_prfun] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 5760(line=274, offs=19) -- 5811(line=275, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_prval (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_prval: do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp44 = ats_true_bool ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp44 = ats_false_bool ; break ; } while (0) ; return (tmp44) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_prval] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 5894(line=282, offs=3) -- 6022(line=291, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_proof (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_proof: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp45 = ats_true_bool ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp45 = ats_true_bool ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp45 = ats_true_bool ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp45 = ats_false_bool ; break ; } while (0) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_proof] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 6083(line=294, offs=20) -- 6137(line=295, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_castfn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_castfn: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp46 = ats_true_bool ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: tmp46 = ats_false_bool ; break ; } while (0) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_castfn] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 6219(line=302, offs=3) -- 6559(line=313, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_dcstkind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_dcstkind: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("DCKfun()")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_48_0 ; } __ats_lab_47_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("DCKval()")) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_49_0 ; } __ats_lab_48_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("DCKpraxi()")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_50_0 ; } __ats_lab_49_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("DCKprfun()")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_51_0 ; } __ats_lab_50_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("DCKprval()")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (((ats_sum_ptr_type)arg1)->tag != 5) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("DCKcastfn()")) ; break ; } while (0) ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_dcstkind] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 6634(line=318, offs=15) -- 6705(line=320, offs=51) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_clo (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_clo: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp48 = ats_true_bool ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: tmp48 = ats_false_bool ; break ; } while (0) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_clo] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 6778(line=326, offs=15) -- 6852(line=328, offs=54) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_ptr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp49) ; ATSlocal (ats_int_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_ptr: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp49 = atspre_neq_int_int (tmp50, 0) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: tmp49 = ats_true_bool ; break ; } while (0) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_ptr] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 6907(line=332, offs=18) -- 6982(line=334, offs=55) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_cloptr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_int_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_cloptr: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp51 = atspre_neq_int_int (tmp52, 0) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp51 = ats_false_bool ; break ; } while (0) ; return (tmp51) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funclo_is_cloptr] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 7063(line=341, offs=3) -- 7208(line=344, offs=20) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__eq_funclo_funclo (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_int_type, tmp54) ; ATSlocal (ats_int_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__eq_funclo_funclo: do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_60_1 ; } __ats_lab_58_2: tmp54 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp53 = atspre_eq_int_int (tmp54, tmp55) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_60_1 ; } __ats_lab_59_2: tmp53 = ats_true_bool ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: __ats_lab_60_2: tmp53 = ats_false_bool ; break ; } while (0) ; return (tmp53) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__eq_funclo_funclo] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 7267(line=348, offs=19) -- 7308(line=348, offs=60) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__neq_funclo_funclo (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp56) ; ATSlocal (ats_bool_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__neq_funclo_funclo: tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__eq_funclo_funclo (arg0, arg1) ; tmp56 = atspre_neg_bool (tmp57) ; return (tmp56) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__neq_funclo_funclo] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 7357(line=354, offs=3) -- 7492(line=359, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp58) ; ATSlocal (ats_int_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; /* tmp58 = */ atspre_fprintf_exn (arg0, ATSstrcst("CLO(%i)"), tmp59) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: /* tmp58 = */ atspre_fprintf_exn (arg0, ATSstrcst("FUN")) ; break ; } while (0) ; return /* (tmp58) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 7548(line=362, offs=24) -- 7585(line=362, offs=61) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__print_funclo (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__print_funclo: /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo (stdout, arg0) ; return /* (tmp60) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__print_funclo] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 7609(line=363, offs=24) -- 7646(line=363, offs=61) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__prerr_funclo (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__prerr_funclo: /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funclo (stderr, arg0) ; return /* (tmp61) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__prerr_funclo] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 7875(line=379, offs=16) -- 7934(line=381, offs=4) */ ATSglobaldec() ats_int_type patsopt_debug_flag_get () { /* local vardec */ ATSlocal (ats_int_type, tmp65) ; __ats_lab_patsopt_debug_flag_get: tmp65 = ats_ptrget_mac(ats_int_type, (&statmp62)) ; return (tmp65) ; } /* end of [patsopt_debug_flag_get] */ /* // /tmp/ATS-Postiats/src/pats_basics.dats: 7988(line=384, offs=16) -- 8053(line=386, offs=4) */ ATSglobaldec() ats_void_type patsopt_debug_flag_set (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp66) ; __ats_lab_patsopt_debug_flag_set: ats_ptrget_mac(ats_int_type, (&statmp62)) = arg0 ; return /* (tmp66) */ ; } /* end of [patsopt_debug_flag_set] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp62, sizeof(ats_int_type)) ; /* marking external values for GC */ /* code for dynamic loading */ ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VIEWT0YPE_knd, sizeof(ats_int_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VIEWT0YPE_knd = 3 ; /* ats_int_type statmp62 ; */ statmp62 = 0 ; /* statmp63 = */ atspre_vbox_make_view_ptr ((&statmp62)) ; /* statmp64 = ats_selsin_mac(statmp63, atslab_1) */ ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ ats_void_type patsopt_vfprintf_ifdebug ( ats_ptr_type out , ats_ptr_type fmt , va_list ap // variadic arguments ) { // if (patsopt_debug_flag_get () > 0) { (void)vfprintf((FILE*)out, (char*)fmt, ap) ; } // end of [if] // return ; } // end of [patsopt_debug_printf] ats_void_type patsopt_prerrf_ifdebug ( ats_ptr_type fmt, ... ) { va_list ap ; va_start(ap, fmt) ; patsopt_vfprintf_ifdebug(stderr, (char*)fmt, ap) ; va_end(ap) ; return ; } // end of [patsopt_debug_prerrf] /* ****** ****** */ /* end of [pats_basics_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_env_dats.c0000644000175000017500000044452513431250607022624 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_name ; ats_ptr_type atslab_sort ; ats_ptr_type atslab_sexp ; ats_ptr_type atslab_dexp ; ats_ptr_type atslab_decl2 ; ats_ptr_type atslab_decl3 ; ats_ptr_type atslab_tcimap ; ats_ptr_type atslab_tvdmap ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_s0rtq_loc ; ats_ptr_type atslab_s0rtq_node ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_s0taq_loc ; ats_ptr_type atslab_s0taq_node ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_sp2at_loc ; ats_ptr_type atslab_sp2at_exp ; ats_ptr_type atslab_sp2at_node ; } anairiats_rec_7 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_8 ; typedef struct { anairiats_rec_8 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_d0ynq_loc ; ats_ptr_type atslab_d0ynq_node ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_f2undec_loc ; ats_ptr_type atslab_f2undec_var ; ats_ptr_type atslab_f2undec_def ; ats_ptr_type atslab_f2undec_ann ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_12 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQsymdot_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQsymdot_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQsymdot_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMvar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMcst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatcontyp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatconptr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMfilenv_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacdef_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacvar_6) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, 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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_INT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BOOL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADDR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_REAL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FLOAT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_STRING) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CLS) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EFF) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TKIND) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VTYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VT0YPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop_free) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_top_clear) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth0) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth1) (ats_ref_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_real) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_float) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_string) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_cls) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_types) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_tmplev) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_search) (ats_clo_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_localjoin) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_save) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_restore) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2temap) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2itmmap) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2itmmap) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_top_clear) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop_free) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth0) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth1) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_top_clear) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_joinwth1) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_top_clear) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop_free) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_joinwth1) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_add) (ats_ptr_type, ats_ptr_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 _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__sasp__trans2_env_save_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__sasp__trans2_env_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__sasp__staload_level_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__sasp__d2expenv_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__sasp__the_d2varlev_inc_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__sasp__s2expenv_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__sasp__s2rtenv_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__filenv_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02630_ () ; static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_ptr_type fopr_12 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type fopr_12_closure_make (ats_ptr_type env0) ; static ats_ptr_type fopr_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type the_s2rtenv_find_namespace_11 (ats_ptr_type arg0) ; static ats_void_type the_s2rtenv_localjoin_19 () ; static ats_void_type the_s2rtenv_save_20 () ; static ats_ptr_type the_s2rtenv_restore_21 () ; static ats_void_type prerr_error2_loc_02634_ (ats_ptr_type arg0) ; static ats_ptr_type fopr_27 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type fopr_27_closure_make (ats_ptr_type env0) ; static ats_ptr_type fopr_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type the_s2expenv_find_namespace_26 (ats_ptr_type arg0) ; static ats_void_type the_s2expenv_localjoin_35 () ; static ats_void_type the_s2expenv_save_36 () ; static ats_ptr_type the_s2expenv_restore_37 () ; static ats_void_type loop_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_int_type (ats_int_type arg0) ; static ats_void_type app_65 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type list_app_vcloptr_01304_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type list_app_cloptr_01303_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_void_type __ats_fun_66 (ats_int_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_66_closure_make (ats_int_type env0) ; static ats_void_type __ats_fun_66_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type aux_62 (ats_int_type env0, anairiats_rec_8 arg0) ; static ats_clo_ptr_type aux_62_closure_make (ats_int_type env0) ; static ats_void_type aux_62_clofun (ats_clo_ptr_type cloptr, anairiats_rec_8 arg0) ; static ats_void_type app_68 (anairiats_rec_8 arg0, ats_clo_ptr_type arg1) ; static ats_void_type loop_70 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_anairiats_rec_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_vcloptr_01304_anairiats_rec_8 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type fopr_77 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type fopr_77_closure_make (ats_ptr_type env0) ; static ats_ptr_type fopr_77_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type the_d2expenv_find_namespace_76 (ats_ptr_type arg0) ; static ats_void_type the_d2expenv_localjoin_86 () ; static ats_void_type the_d2expenv_save_87 () ; static ats_ptr_type the_d2expenv_restore_88 () ; static ats_void_type auxlst_101 (ats_ptr_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type the_s2rtenv_initialize_114 () ; static ats_void_type the_s2rtenv_reinitialize_115 () ; static ats_void_type the_s2expenv_initialize_116 () ; static ats_void_type the_s2expenv_reinitialize_117 () ; static ats_void_type the_d2expenv_initialize_118 () ; static ats_void_type the_d2expenv_reinitialize_119 () ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp24) ; ATSstatic (ats_ptr_type, statmp25) ; // ATSstatic_void (statmp26) ; // ATSstatic_void (statmp27) ; ATSstatic (ats_ptr_type, statmp70) ; ATSstatic (ats_ptr_type, statmp71) ; // ATSstatic_void (statmp72) ; // ATSstatic_void (statmp73) ; ATSstatic (ats_ptr_type, statmp148) ; ATSstatic (ats_ptr_type, statmp167) ; ATSstatic (ats_ptr_type, statmp175) ; ATSstatic (ats_ptr_type, statmp199) ; ATSstatic (ats_ptr_type, statmp210) ; ATSstatic (ats_ptr_type, statmp211) ; // ATSstatic_void (statmp212) ; // ATSstatic_void (statmp213) ; ATSstatic (ats_ptr_type, statmp294) ; ATSstatic (ats_ptr_type, statmp302) ; ATSstatic (ats_ptr_type, statmp305) ; ATSstatic (ats_ptr_type, statmp390) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 1850(line=63, offs=28) -- 1878(line=63, offs=56) */ ATSstaticdec() ats_void_type prerr_FILENAME_02630_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02630_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans2_env")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02630_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp3 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp3) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 2572(line=104, offs=1) -- 3012(line=128, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_make: tmp2 = ptr_alloc_01070_anairiats_rec_1 () ; tmp4 = ats_selsin_mac(tmp2, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_name) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_sort) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_sexp) = arg2 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_dexp) = arg3 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_decl2) = arg4 ; tmp5 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_decl3) = tmp5 ; tmp6 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_tcimap) = tmp6 ; tmp7 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_tvdmap) = tmp7 ; tmp1 = atspre_ref_make_view_ptr (tmp4) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_make] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 3064(line=131, offs=17) -- 3139(line=133, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__filenv_get_name (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__filenv_get_name: tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp8 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp9), atslab_name) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__filenv_get_name] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 3198(line=136, offs=20) -- 3458(line=143, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2temap (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2temap: tmp11 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp10 = &ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp11), atslab_sort) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2temap] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 3521(line=146, offs=21) -- 3781(line=153, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2itmmap (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2itmmap: tmp13 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp12 = &ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp13), atslab_sexp) ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2itmmap] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 3845(line=156, offs=21) -- 4105(line=163, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2itmmap (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2itmmap: tmp15 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp14 = &ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp15), atslab_dexp) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2itmmap] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 4169(line=166, offs=21) -- 4243(line=168, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist: tmp17 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp16 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp17), atslab_decl2) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 4336(line=174, offs=3) -- 4428(line=176, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt: tmp19 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp18 = ats_castfn_mac(ats_ptr_type, &ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp19), atslab_decl3)) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 4525(line=182, offs=3) -- 4618(line=184, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpcstimpmap (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpcstimpmap: tmp21 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp20 = ats_castfn_mac(ats_ptr_type, &ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp21), atslab_tcimap)) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpcstimpmap] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 4698(line=188, offs=3) -- 4791(line=190, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpvardecmap (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpvardecmap: tmp23 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp22 = ats_castfn_mac(ats_ptr_type, &ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp23), atslab_tvdmap)) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_tmpvardecmap] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 5162(line=211, offs=6) -- 5372(line=219, offs=6) */ ATSstaticdec() ats_ptr_type fopr_12 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_fopr_12: tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2temap (arg0) ; tmp31 = ats_selsin_mac(tmp30, atslab_2) ; tmp32 = ats_ptrget_mac(ats_ptr_type, tmp31) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp32, env0) ; return (tmp29) ; } /* end of [fopr_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } fopr_12_closure_type ; ats_ptr_type fopr_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return fopr_12 (((fopr_12_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type fopr_12_closure_init (fopr_12_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&fopr_12_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type fopr_12_closure_make (ats_ptr_type env0) { fopr_12_closure_type *p_clo = ATS_MALLOC(sizeof(fopr_12_closure_type)) ; fopr_12_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 5087(line=208, offs=1) -- 5425(line=222, offs=4) */ ATSstaticdec() ats_ptr_type the_s2rtenv_find_namespace_11 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_clo_ptr_type, tmp33) ; __ats_lab_the_s2rtenv_find_namespace_11: /* ats_clo_ptr_type tmp33 ; */ tmp33 = fopr_12_closure_make (arg0) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_search (tmp33) ; ATS_FREE(tmp33) ; return (tmp28) ; } /* end of [the_s2rtenv_find_namespace_11] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 5558(line=231, offs=17) -- 5633(line=233, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add: /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert (statmp25, arg0, arg1) ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 5711(line=238, offs=18) -- 6142(line=257, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search (statmp25, arg0) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp36 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp35 = tmp36 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp36 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp37 = the_s2rtenv_find_namespace_11 (arg0) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp37 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp35 = tmp37 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp37 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search (statmp25, arg0) ; break ; } while (0) ; break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 6228(line=263, offs=3) -- 6301(line=266, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_top_clear () { /* local vardec */ // ATSlocal_void (tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_top_clear: /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_top_clear (statmp25) ; return /* (tmp38) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_top_clear] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 6384(line=271, offs=17) -- 6485(line=278, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop: tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop (statmp25) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 6548(line=282, offs=3) -- 6653(line=286, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop_free () { /* local vardec */ // ATSlocal_void (tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop_free: /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop_free (statmp25) ; return /* (tmp40) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop_free] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 6721(line=290, offs=3) -- 6829(line=294, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_push_nil () { /* local vardec */ // ATSlocal_void (tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_push_nil: /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil (statmp25) ; return /* (tmp41) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_push_nil] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 6889(line=299, offs=1) -- 7100(line=309, offs=2) */ ATSstaticdec() ats_void_type the_s2rtenv_localjoin_19 () { /* local vardec */ // ATSlocal_void (tmp42) ; __ats_lab_the_s2rtenv_localjoin_19: /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin (statmp25) ; return /* (tmp42) */ ; } /* end of [the_s2rtenv_localjoin_19] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 7193(line=315, offs=5) -- 7322(line=321, offs=4) */ ATSstaticdec() ats_void_type the_s2rtenv_save_20 () { /* local vardec */ // ATSlocal_void (tmp43) ; __ats_lab_the_s2rtenv_save_20: /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur (statmp25) ; return /* (tmp43) */ ; } /* end of [the_s2rtenv_save_20] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 7357(line=323, offs=5) -- 7511(line=330, offs=4) */ ATSstaticdec() ats_ptr_type the_s2rtenv_restore_21 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; __ats_lab_the_s2rtenv_restore_21: tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore (statmp25) ; return (tmp44) ; } /* end of [the_s2rtenv_restore_21] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 7607(line=335, offs=32) -- 7684(line=337, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth0 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth0: /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth0 (statmp25, arg0) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth0] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 7769(line=339, offs=32) -- 7846(line=341, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth1 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth1: /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth1 (statmp25, arg0) ; return /* (tmp46) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth1] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2105(line=76, offs=17) -- 2163(line=79, offs=2) */ ATSstaticdec() ats_void_type prerr_error2_loc_02634_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; __ats_lab_prerr_error2_loc_02634_: /* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp58 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ; return /* (tmp58) */ ; } /* end of [prerr_error2_loc_02634_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 7989(line=351, offs=3) -- 9344(line=402, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua: tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s0rtq_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp48 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find (arg1) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp48 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_3, tmp48, atslab_0) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (tmp49) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp50 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_6_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_3, tmp50, atslab_0) ; ATS_FREE(tmp50) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp51)->tag != 5) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_4, tmp51, atslab_0) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2temap (tmp52) ; tmp54 = ats_selsin_mac(tmp53, atslab_2) ; tmp55 = ats_ptrget_mac(ats_ptr_type, tmp54) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp55, arg1) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s0rtq_loc) ; /* tmp57 = */ prerr_error2_loc_02634_ (tmp56) ; /* tmp60 = */ atspre_prerr_string (ATSstrcst(": the qualifier [")) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp49) ; /* tmp62 = */ atspre_prerr_string (ATSstrcst("] should refer to a filename but it does not.")) ; /* tmp63 = */ atspre_prerr_newline () ; tmp47 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (tmp50 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp64 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s0rtq_loc) ; /* tmp65 = */ prerr_error2_loc_02634_ (tmp64) ; /* tmp66 = */ atspre_prerr_string (ATSstrcst(": the qualifier [")) ; /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp49) ; /* tmp68 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp69 = */ atspre_prerr_newline () ; tmp47 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 9686(line=421, offs=6) -- 9895(line=429, offs=6) */ ATSstaticdec() ats_ptr_type fopr_27 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; __ats_lab_fopr_27: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2itmmap (arg0) ; tmp77 = ats_selsin_mac(tmp76, atslab_2) ; tmp78 = ats_ptrget_mac(ats_ptr_type, tmp77) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp78, env0) ; return (tmp75) ; } /* end of [fopr_27] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } fopr_27_closure_type ; ats_ptr_type fopr_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return fopr_27 (((fopr_27_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type fopr_27_closure_init (fopr_27_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&fopr_27_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type fopr_27_closure_make (ats_ptr_type env0) { fopr_27_closure_type *p_clo = ATS_MALLOC(sizeof(fopr_27_closure_type)) ; fopr_27_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 9612(line=418, offs=1) -- 9948(line=432, offs=4) */ ATSstaticdec() ats_ptr_type the_s2expenv_find_namespace_26 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_clo_ptr_type, tmp79) ; __ats_lab_the_s2expenv_find_namespace_26: /* ats_clo_ptr_type tmp79 ; */ tmp79 = fopr_27_closure_make (arg0) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_search (tmp79) ; ATS_FREE(tmp79) ; return (tmp74) ; } /* end of [the_s2expenv_find_namespace_26] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 10083(line=441, offs=18) -- 10156(line=443, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp80) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add: /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert (statmp71, arg0, arg1) ; return /* (tmp80) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 10236(line=448, offs=19) -- 10668(line=467, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find: tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search (statmp71, arg0) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp82 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp81 = tmp82 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp82 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp83 = the_s2expenv_find_namespace_26 (arg0) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp83 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp81 = tmp83 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp83 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search (statmp71, arg0) ; break ; } while (0) ; break ; } while (0) ; return (tmp81) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 10759(line=472, offs=29) -- 10833(line=474, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_find: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search (statmp71, arg0) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_find] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 10931(line=480, offs=3) -- 11004(line=483, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_top_clear () { /* local vardec */ // ATSlocal_void (tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_top_clear: /* tmp85 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_top_clear (statmp71) ; return /* (tmp85) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_top_clear] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 11089(line=488, offs=18) -- 11191(line=495, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop: tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop (statmp71) ; return (tmp86) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 11256(line=499, offs=3) -- 11370(line=503, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () { /* local vardec */ // ATSlocal_void (tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free: /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop_free (statmp71) ; return /* (tmp87) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 11440(line=507, offs=3) -- 11548(line=511, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () { /* local vardec */ // ATSlocal_void (tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil: /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil (statmp71) ; return /* (tmp88) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 11609(line=516, offs=1) -- 11823(line=526, offs=2) */ ATSstaticdec() ats_void_type the_s2expenv_localjoin_35 () { /* local vardec */ // ATSlocal_void (tmp89) ; __ats_lab_the_s2expenv_localjoin_35: /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin (statmp71) ; return /* (tmp89) */ ; } /* end of [the_s2expenv_localjoin_35] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 11918(line=532, offs=5) -- 12048(line=538, offs=4) */ ATSstaticdec() ats_void_type the_s2expenv_save_36 () { /* local vardec */ // ATSlocal_void (tmp90) ; __ats_lab_the_s2expenv_save_36: /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur (statmp71) ; return /* (tmp90) */ ; } /* end of [the_s2expenv_save_36] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 12084(line=540, offs=5) -- 12241(line=547, offs=4) */ ATSstaticdec() ats_ptr_type the_s2expenv_restore_37 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; __ats_lab_the_s2expenv_restore_37: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore (statmp71) ; return (tmp91) ; } /* end of [the_s2expenv_restore_37] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 12339(line=552, offs=33) -- 12416(line=554, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_joinwth0 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_joinwth0: /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth0 (statmp71, arg0) ; return /* (tmp92) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_joinwth0] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 12503(line=556, offs=33) -- 12580(line=558, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_joinwth1 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_joinwth1: /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth1 (statmp71, arg0) ; return /* (tmp93) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_joinwth1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 12704(line=566, offs=3) -- 14179(line=628, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua: tmp95 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_s0taq_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp95 != (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (arg1) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp95 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_3, tmp95, atslab_0) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (tmp96) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (tmp97 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_16_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_3, tmp97, atslab_0) ; ATS_FREE(tmp97) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp98)->tag != 5) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_4, tmp98, atslab_0) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_s2itmmap (tmp99) ; tmp101 = ats_selsin_mac(tmp100, atslab_2) ; tmp102 = ats_ptrget_mac(ats_ptr_type, tmp101) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp102, arg1) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_s0taq_loc) ; /* tmp104 = */ prerr_error2_loc_02634_ (tmp103) ; /* tmp105 = */ atspre_prerr_string (ATSstrcst(": the qualifier [")) ; /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp96) ; /* tmp107 = */ atspre_prerr_string (ATSstrcst("] should refer to a filename but it does not.")) ; /* tmp108 = */ atspre_prerr_newline () ; tmp94 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (tmp97 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp109 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_s0taq_loc) ; /* tmp110 = */ prerr_error2_loc_02634_ (tmp109) ; /* tmp111 = */ atspre_prerr_string (ATSstrcst(": the qualifier [")) ; /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp96) ; /* tmp113 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp114 = */ atspre_prerr_newline () ; tmp94 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 14270(line=634, offs=3) -- 14764(line=656, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst: tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg0) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (tmp116) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp118 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_20_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_3, tmp118, atslab_0) ; ATS_FREE(tmp118) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp119)->tag != 1) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_4, tmp119, atslab_0) ; tmp117 = tmp120 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp117 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (tmp118 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp117 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp122 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp122, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp122, atslab_1, tmp117) ; tmp121 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp121)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp121, atslab_0, tmp122) ; /* tmp115 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (tmp116, tmp121) ; return /* (tmp115) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_scst] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 14834(line=660, offs=3) -- 14921(line=664, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar: tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg0) ; tmp125 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp125)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp125, atslab_0, arg0) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (tmp124, tmp125) ; return /* (tmp123) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; // ATSlocal_void (tmp132) ; __ats_lab_loop_46: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; /* tmp132 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp130, arg2) ; arg0 = tmp131 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_46 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: break ; } while (0) ; return /* (tmp129) */ ; } /* end of [loop_46] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp128) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp128 = */ loop_46 (arg0, arg1, arg2) ; return /* (tmp128) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp127) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp127 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp127) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 14994(line=668, offs=3) -- 15045(line=668, offs=54) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst: /* tmp126 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar) ; return /* (tmp126) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 15119(line=673, offs=3) -- 15236(line=676, offs=21) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_sp2at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_sp2at: tmp134 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_sp2at_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (tmp134 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_6, tmp134, atslab_1) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp135) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (tmp134 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: break ; } while (0) ; return /* (tmp133) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_sp2at] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 15357(line=680, offs=28) -- 15565(line=687, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datconptr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datconptr: tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym (arg0) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp137) ; tmp140 = atspre_string_append (tmp138, ATSstrcst("_unfold")) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp140) ; tmp141 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp141)->tag = 4 ; ats_selptrset_mac(anairiats_sum_4, tmp141, atslab_0, arg0) ; /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (tmp139, tmp141) ; return /* (tmp136) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datconptr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 15643(line=690, offs=28) -- 15852(line=697, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datcontyp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datcontyp: tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym (arg0) ; tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp143) ; tmp146 = atspre_string_append (tmp144, ATSstrcst("_pstruct")) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp146) ; tmp147 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp147)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp147, atslab_0, arg0) ; /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add (tmp145, tmp147) ; return /* (tmp142) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datcontyp] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_int_type, tmp151) ; __ats_lab_ref_01088_ats_int_type: /* ats_int_type tmp151 ; */ tmp151 = arg0 ; tmp150 = atspre_ref_make_elt_tsz ((&tmp151), sizeof(ats_int_type)) ; return (tmp150) ; } /* end of [ref_01088_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp149) ; __ats_lab_ref_make_elt_01089_ats_int_type: tmp149 = ref_01088_ats_int_type (arg0) ; return (tmp149) ; } /* end of [ref_make_elt_01089_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 16058(line=710, offs=16) -- 16074(line=710, offs=32) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_get () { /* local vardec */ ATSlocal (ats_int_type, tmp152) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_get: tmp152 = ats_ptrget_mac(ats_int_type, statmp148) ; return (tmp152) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_get] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 16103(line=714, offs=3) -- 16380(line=723, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_inc (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp153) ; ATSlocal (ats_int_type, tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_bool_type, tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; ATSlocal (ats_int_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_inc: tmp154 = ats_ptrget_mac(ats_int_type, statmp148) ; tmp156 = atspre_gt_int_int (tmp154, 0) ; if (tmp156) { /* tmp157 = */ prerr_error2_loc_02634_ (arg0) ; /* tmp158 = */ atspre_prerr_string (ATSstrcst(": the syntax `(...) is used incorrectly at this location.")) ; /* tmp155 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp159 = atspre_add_int_int (tmp154, 1) ; ats_ptrget_mac(ats_int_type, statmp148) = tmp159 ; return /* (tmp153) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_inc] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 16436(line=727, offs=3) -- 16723(line=736, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_dec (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp160) ; ATSlocal (ats_int_type, tmp161) ; // ATSlocal_void (tmp162) ; ATSlocal (ats_bool_type, tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; ATSlocal (ats_int_type, tmp166) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_dec: tmp161 = ats_ptrget_mac(ats_int_type, statmp148) ; tmp163 = atspre_eq_int_int (tmp161, 0) ; if (tmp163) { /* tmp164 = */ prerr_error2_loc_02634_ (arg0) ; /* tmp165 = */ atspre_prerr_string (ATSstrcst(": the syntax ,(...) or %(...) is used incorrectly at this location.")) ; /* tmp162 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp166 = atspre_sub_int_int (tmp161, 1) ; ats_ptrget_mac(ats_int_type, statmp148) = tmp166 ; return /* (tmp160) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_maclev_dec] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 16916(line=751, offs=19) -- 16935(line=751, offs=38) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_get () { /* local vardec */ ATSlocal (ats_int_type, tmp168) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_get: tmp168 = ats_ptrget_mac(ats_int_type, statmp167) ; return (tmp168) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_get] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 16965(line=754, offs=19) -- 17008(line=755, offs=39) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_inc () { /* local vardec */ // ATSlocal_void (tmp169) ; ATSlocal (ats_int_type, tmp170) ; ATSlocal (ats_int_type, tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_inc: tmp171 = ats_ptrget_mac(ats_int_type, statmp167) ; tmp170 = atspre_add_int_int (tmp171, 1) ; ats_ptrget_mac(ats_int_type, statmp167) = tmp170 ; return /* (tmp169) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_inc] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 17064(line=759, offs=19) -- 17107(line=760, offs=39) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_dec () { /* local vardec */ // ATSlocal_void (tmp172) ; ATSlocal (ats_int_type, tmp173) ; ATSlocal (ats_int_type, tmp174) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_dec: tmp174 = ats_ptrget_mac(ats_int_type, statmp167) ; tmp173 = atspre_sub_int_int (tmp174, 1) ; ats_ptrget_mac(ats_int_type, statmp167) = tmp173 ; return /* (tmp172) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_macdeflev_dec] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 17293(line=776, offs=16) -- 17309(line=776, offs=32) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_get () { /* local vardec */ ATSlocal (ats_int_type, tmp176) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_get: tmp176 = ats_ptrget_mac(ats_int_type, statmp175) ; return (tmp176) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_get] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 17336(line=779, offs=16) -- 17373(line=780, offs=33) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_inc () { /* local vardec */ // ATSlocal_void (tmp177) ; ATSlocal (ats_int_type, tmp178) ; ATSlocal (ats_int_type, tmp179) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_inc: tmp179 = ats_ptrget_mac(ats_int_type, statmp175) ; tmp178 = atspre_add_int_int (tmp179, 1) ; ats_ptrget_mac(ats_int_type, statmp175) = tmp178 ; return /* (tmp177) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_inc] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 17423(line=784, offs=16) -- 17460(line=785, offs=33) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_dec () { /* local vardec */ // ATSlocal_void (tmp180) ; ATSlocal (ats_int_type, tmp181) ; ATSlocal (ats_int_type, tmp182) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_dec: tmp182 = ats_ptrget_mac(ats_int_type, statmp175) ; tmp181 = atspre_sub_int_int (tmp182, 1) ; ats_ptrget_mac(ats_int_type, statmp175) = tmp181 ; return /* (tmp180) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_dec] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 4310(line=156, offs=6) -- 4365(line=156, offs=61) */ ATSstaticdec() ats_void_type app_65 (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp187) ; __ats_lab_app_65: /* tmp187 = */ ((ats_void_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return /* (tmp187) */ ; } /* end of [app_65] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 4235(line=154, offs=20) -- 4426(line=159, offs=4) */ ATSstaticdec() ats_void_type list_app_vcloptr_01304_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp186) ; __ats_lab_list_app_vcloptr_01304_ats_ptr_type: /* tmp186 = */ list_app_funenv_01300_ats_ptr_type (arg0, &app_65, arg1) ; return /* (tmp186) */ ; } /* end of [list_app_vcloptr_01304_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 3690(line=137, offs=11) -- 4157(line=151, offs=4) */ ATSstaticdec() ats_void_type list_app_cloptr_01303_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp185) ; __ats_lab_list_app_cloptr_01303_ats_ptr_type: /* tmp185 = */ list_app_vcloptr_01304_ats_ptr_type (arg0, arg1) ; return /* (tmp185) */ ; } /* end of [list_app_cloptr_01303_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 18471(line=831, offs=37) -- 18514(line=831, offs=80) */ ATSstaticdec() ats_void_type __ats_fun_66 (ats_int_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp190) ; __ats_lab___ats_fun_66: /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_tmplev (arg0, env0) ; return /* (tmp190) */ ; } /* end of [__ats_fun_66] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; } __ats_fun_66_closure_type ; ats_void_type __ats_fun_66_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { __ats_fun_66 (((__ats_fun_66_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type __ats_fun_66_closure_init (__ats_fun_66_closure_type *p_clo, ats_int_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_66_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_66_closure_make (ats_int_type env0) { __ats_fun_66_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_66_closure_type)) ; __ats_fun_66_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 18378(line=828, offs=7) -- 18515(line=831, offs=81) */ ATSstaticdec() ats_void_type aux_62 (ats_int_type env0, anairiats_rec_8 arg0) { /* local vardec */ // ATSlocal_void (tmp184) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab_aux_62: /* ats_ptr_type tmp188 ; */ tmp189 = ats_select_mac(arg0, atslab_s2qua_svs) ; tmp188 = __ats_fun_66_closure_make (env0) ; /* tmp184 = */ list_app_cloptr_01303_ats_ptr_type (tmp189, tmp188) ; ATS_FREE(tmp188) ; return /* (tmp184) */ ; } /* end of [aux_62] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; } aux_62_closure_type ; ats_void_type aux_62_clofun (ats_clo_ptr_type cloptr, anairiats_rec_8 arg0) { aux_62 (((aux_62_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type aux_62_closure_init (aux_62_closure_type *p_clo, ats_int_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_62_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_62_closure_make (ats_int_type env0) { aux_62_closure_type *p_clo = ATS_MALLOC(sizeof(aux_62_closure_type)) ; aux_62_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 4310(line=156, offs=6) -- 4365(line=156, offs=61) */ ATSstaticdec() ats_void_type app_68 (anairiats_rec_8 arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp192) ; __ats_lab_app_68: /* tmp192 = */ ((ats_void_type(*)(ats_clo_ptr_type, anairiats_rec_8))(ats_closure_fun(arg1))) (arg1, arg0) ; return /* (tmp192) */ ; } /* end of [app_68] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_70 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp194) ; ATSlocal (anairiats_rec_8, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; // ATSlocal_void (tmp197) ; __ats_lab_loop_70: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp195 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; /* tmp197 = */ ((ats_void_type(*)(anairiats_rec_8, ats_ptr_type))arg1) (tmp195, arg2) ; arg0 = tmp196 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_70 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: break ; } while (0) ; return /* (tmp194) */ ; } /* end of [loop_70] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_anairiats_rec_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp193) ; __ats_lab_list_app_funenv_01300_anairiats_rec_8: /* tmp193 = */ loop_70 (arg0, arg1, arg2) ; return /* (tmp193) */ ; } /* end of [list_app_funenv_01300_anairiats_rec_8] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 4235(line=154, offs=20) -- 4426(line=159, offs=4) */ ATSstaticdec() ats_void_type list_app_vcloptr_01304_anairiats_rec_8 (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp191) ; __ats_lab_list_app_vcloptr_01304_anairiats_rec_8: /* tmp191 = */ list_app_funenv_01300_anairiats_rec_8 (arg0, &app_68, arg1) ; return /* (tmp191) */ ; } /* end of [list_app_vcloptr_01304_anairiats_rec_8] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 18344(line=827, offs=3) -- 18638(line=836, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__s2qualstlst_set_tmplev (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp183) ; ATSlocal (ats_clo_ptr_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__s2qualstlst_set_tmplev: /* ats_clo_ptr_type tmp198 ; */ tmp198 = aux_62_closure_make (arg1) ; /* tmp183 = */ list_app_vcloptr_01304_anairiats_rec_8 (arg0, tmp198) ; ATS_FREE(tmp198) ; return /* (tmp183) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__s2qualstlst_set_tmplev] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 18829(line=850, offs=18) -- 18847(line=850, offs=36) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () { /* local vardec */ ATSlocal (ats_int_type, tmp200) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get: tmp200 = ats_ptrget_mac(ats_int_type, statmp199) ; return (tmp200) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 18878(line=854, offs=3) -- 19000(line=860, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc () { /* local vardec */ // ATSlocal_void (tmp201) ; ATSlocal (ats_int_type, tmp202) ; ATSlocal (ats_int_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc: tmp202 = ats_ptrget_mac(ats_int_type, statmp199) ; tmp203 = atspre_add_int_int (tmp202, 1) ; ats_ptrget_mac(ats_int_type, statmp199) = tmp203 ; return /* (tmp201) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 19060(line=864, offs=3) -- 19188(line=870, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec () { /* local vardec */ // ATSlocal_void (tmp204) ; ATSlocal (ats_int_type, tmp205) ; ATSlocal (ats_int_type, tmp206) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec: tmp205 = ats_ptrget_mac(ats_int_type, statmp199) ; tmp206 = atspre_sub_int_int (tmp205, 1) ; ats_ptrget_mac(ats_int_type, statmp199) = tmp206 ; return /* (tmp204) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 19247(line=873, offs=19) -- 19308(line=875, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_save () { /* local vardec */ ATSlocal (ats_int_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_save: tmp208 = ats_ptrget_mac(ats_int_type, statmp199) ; ats_ptrget_mac(ats_int_type, statmp199) = 0 ; tmp207 = tmp208 ; return (tmp207) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_save] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 19374(line=878, offs=22) -- 19404(line=878, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_restore (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp209) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_restore: ats_ptrget_mac(ats_int_type, statmp199) = arg0 ; return /* (tmp209) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_restore] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 20022(line=922, offs=6) -- 20759(line=960, offs=6) */ ATSstaticdec() ats_ptr_type fopr_77 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; __ats_lab_fopr_77: tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2itmmap (arg0) ; tmp217 = ats_selsin_mac(tmp216, atslab_2) ; tmp219 = ats_ptrget_mac(ats_ptr_type, tmp217) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp219, env0) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (tmp218 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp215 = tmp218 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (tmp218 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp220 = ats_caselptrlab_mac(anairiats_sum_3, tmp218, atslab_0) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp220)->tag != 1) { goto __ats_lab_33_0 ; } __ats_lab_32_1: ATS_FREE(tmp218) ; tmp215 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp215 = tmp218 ; break ; } while (0) ; break ; } while (0) ; return (tmp215) ; } /* end of [fopr_77] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } fopr_77_closure_type ; ats_ptr_type fopr_77_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return fopr_77 (((fopr_77_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type fopr_77_closure_init (fopr_77_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&fopr_77_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type fopr_77_closure_make (ats_ptr_type env0) { fopr_77_closure_type *p_clo = ATS_MALLOC(sizeof(fopr_77_closure_type)) ; fopr_77_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 19662(line=896, offs=1) -- 20812(line=963, offs=4) */ ATSstaticdec() ats_ptr_type the_d2expenv_find_namespace_76 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_clo_ptr_type, tmp221) ; __ats_lab_the_d2expenv_find_namespace_76: /* ats_clo_ptr_type tmp221 ; */ tmp221 = fopr_77_closure_make (arg0) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_search (tmp221) ; ATS_FREE(tmp221) ; return (tmp214) ; } /* end of [the_d2expenv_find_namespace_76] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 20905(line=968, offs=18) -- 20978(line=970, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add: /* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_insert (statmp211, arg0, arg1) ; return /* (tmp222) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 21058(line=975, offs=19) -- 21490(line=994, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find: tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search (statmp211, arg0) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp224 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp223 = tmp224 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (tmp224 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp225 = the_d2expenv_find_namespace_76 (arg0) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (tmp225 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp223 = tmp225 ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (tmp225 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search (statmp211, arg0) ; break ; } while (0) ; break ; } while (0) ; return (tmp223) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 21579(line=999, offs=27) -- 21643(line=1001, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_current_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp226) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_current_find: tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_search (statmp211, arg0) ; return (tmp226) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_current_find] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 21721(line=1004, offs=29) -- 21795(line=1006, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp227) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_find: tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_search (statmp211, arg0) ; return (tmp227) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_find] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 21893(line=1012, offs=3) -- 21966(line=1015, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_top_clear () { /* local vardec */ // ATSlocal_void (tmp228) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_top_clear: /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_top_clear (statmp211) ; return /* (tmp228) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_top_clear] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 22051(line=1020, offs=18) -- 22153(line=1027, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop: tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop (statmp211) ; return (tmp229) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 22218(line=1031, offs=3) -- 22332(line=1035, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop_free () { /* local vardec */ // ATSlocal_void (tmp230) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop_free: /* tmp230 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pop_free (statmp211) ; return /* (tmp230) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop_free] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 22402(line=1039, offs=3) -- 22510(line=1043, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_push_nil () { /* local vardec */ // ATSlocal_void (tmp231) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_push_nil: /* tmp231 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_push_nil (statmp211) ; return /* (tmp231) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_push_nil] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 22571(line=1048, offs=1) -- 22785(line=1058, offs=2) */ ATSstaticdec() ats_void_type the_d2expenv_localjoin_86 () { /* local vardec */ // ATSlocal_void (tmp232) ; __ats_lab_the_d2expenv_localjoin_86: /* tmp232 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_localjoin (statmp211) ; return /* (tmp232) */ ; } /* end of [the_d2expenv_localjoin_86] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 22880(line=1064, offs=5) -- 23010(line=1070, offs=4) */ ATSstaticdec() ats_void_type the_d2expenv_save_87 () { /* local vardec */ // ATSlocal_void (tmp233) ; __ats_lab_the_d2expenv_save_87: /* tmp233 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_savecur (statmp211) ; return /* (tmp233) */ ; } /* end of [the_d2expenv_save_87] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 23046(line=1072, offs=5) -- 23203(line=1079, offs=4) */ ATSstaticdec() ats_ptr_type the_d2expenv_restore_88 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp234) ; __ats_lab_the_d2expenv_restore_88: tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_restore (statmp211) ; return (tmp234) ; } /* end of [the_d2expenv_restore_88] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 23301(line=1084, offs=33) -- 23378(line=1086, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_joinwth0 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp235) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_joinwth0: /* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth0 (statmp211, arg0) ; return /* (tmp235) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_joinwth0] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 23465(line=1088, offs=33) -- 23542(line=1090, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_joinwth1 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_joinwth1: /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_pervasive_joinwth1 (statmp211, arg0) ; return /* (tmp236) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_joinwth1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 23666(line=1098, offs=3) -- 25338(line=1169, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; // ATSlocal_void (tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; // ATSlocal_void (tmp248) ; // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; // ATSlocal_void (tmp256) ; // ATSlocal_void (tmp257) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua: tmp238 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_d0ynq_node) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (tmp238 != (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (arg1) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (tmp238 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp239 = ats_caselptrlab_mac(anairiats_sum_3, tmp238, atslab_0) ; tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (tmp239) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (tmp240 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_40_1: tmp241 = ats_caselptrlab_mac(anairiats_sum_3, tmp240, atslab_0) ; ATS_FREE(tmp240) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp241)->tag != 5) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_4, tmp241, atslab_0) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2itmmap (tmp242) ; tmp244 = ats_selsin_mac(tmp243, atslab_2) ; tmp245 = ats_ptrget_mac(ats_ptr_type, tmp244) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp245, arg1) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp247 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_d0ynq_loc) ; /* tmp246 = */ prerr_error2_loc_02634_ (tmp247) ; /* tmp248 = */ atspre_prerr_string (ATSstrcst(": the qualifier [")) ; /* tmp249 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp239) ; /* tmp250 = */ atspre_prerr_string (ATSstrcst("] should refer to a filename but it does not.")) ; /* tmp251 = */ atspre_prerr_newline () ; tmp237 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (tmp240 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp253 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_d0ynq_loc) ; /* tmp252 = */ prerr_error2_loc_02634_ (tmp253) ; /* tmp254 = */ atspre_prerr_string (ATSstrcst(": the qualifier [")) ; /* tmp255 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp239) ; /* tmp256 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp257 = */ atspre_prerr_newline () ; tmp237 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp237) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 25429(line=1175, offs=3) -- 25767(line=1191, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcon (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcon: tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym (arg0) ; tmp261 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (tmp259) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (tmp261 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_44_1: tmp262 = ats_caselptrlab_mac(anairiats_sum_3, tmp261, atslab_0) ; ATS_FREE(tmp261) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp262)->tag != 2) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp263 = ats_caselptrlab_mac(anairiats_sum_4, tmp262, atslab_0) ; tmp260 = tmp263 ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp260 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (tmp261 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp260 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp265 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp265, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp265, atslab_1, tmp260) ; tmp264 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp264)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp264, atslab_0, tmp265) ; /* tmp258 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp259, tmp264) ; return /* (tmp258) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcon] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 25856(line=1196, offs=23) -- 25941(line=1198, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcst: tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym (arg0) ; tmp268 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp268)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp268, atslab_0, arg0) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp267, tmp268) ; return /* (tmp266) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcst] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 26033(line=1203, offs=26) -- 26121(line=1205, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacdef (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacdef: tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_sym (arg0) ; tmp271 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp271)->tag = 5 ; ats_selptrset_mac(anairiats_sum_4, tmp271, atslab_0, arg0) ; /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp270, tmp271) ; return /* (tmp269) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacdef] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 26194(line=1207, offs=26) -- 26282(line=1209, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvar (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvar: tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg0) ; tmp274 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp274)->tag = 6 ; ats_selptrset_mac(anairiats_sum_4, tmp274, atslab_0, arg0) ; /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp273, tmp274) ; return /* (tmp272) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvar] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 26360(line=1212, offs=3) -- 26414(line=1212, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvarlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp275) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvarlst: /* tmp275 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvar) ; return /* (tmp275) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dmacvarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 26509(line=1218, offs=23) -- 26594(line=1220, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar: tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg0) ; tmp278 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp278)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp278, atslab_0, arg0) ; /* tmp276 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add (tmp277, tmp278) ; return /* (tmp276) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 26666(line=1223, offs=3) -- 26717(line=1223, offs=54) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp279) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst: /* tmp279 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar) ; return /* (tmp279) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 26790(line=1226, offs=26) -- 26872(line=1227, offs=73) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvaropt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvaropt: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp281 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp280 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar (tmp281) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: break ; } while (0) ; return /* (tmp280) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvaropt] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 26998(line=1236, offs=5) -- 27221(line=1248, offs=2) */ ATSstaticdec() ats_void_type auxlst_101 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; // ATSlocal_void (tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; __ats_lab_auxlst_101: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp285 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp287 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp284), atslab_f2undec_var) ; /* tmp286 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar (tmp287) ; arg0 = tmp285 ; goto __ats_lab_auxlst_101 ; // tail call break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: break ; } while (0) ; return /* (tmp283) */ ; } /* end of [auxlst_101] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 26973(line=1234, offs=3) -- 27480(line=1261, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_fundeclst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp282) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; // ATSlocal_void (tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_bool_type, tmp292) ; ATSlocal (ats_bool_type, tmp293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_fundeclst: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp288 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp289 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp291 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp288), atslab_f2undec_var) ; /* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvar (tmp291) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec (arg0) ; tmp292 = atspre_neg_bool (tmp293) ; if (tmp292) { /* tmp282 = */ auxlst_101 (tmp289) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: break ; } while (0) ; return /* (tmp282) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_fundeclst] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 27681(line=1274, offs=23) -- 27704(line=1274, offs=46) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_get () { /* local vardec */ ATSlocal (ats_int_type, tmp295) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_get: tmp295 = ats_ptrget_mac(ats_int_type, statmp294) ; return (tmp295) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_get] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 27741(line=1278, offs=3) -- 27854(line=1282, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_push () { /* local vardec */ // ATSlocal_void (tmp296) ; ATSlocal (ats_int_type, tmp297) ; ATSlocal (ats_int_type, tmp298) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_push: tmp297 = ats_ptrget_mac(ats_int_type, statmp294) ; tmp298 = atspre_add_int_int (tmp297, 1) ; ats_ptrget_mac(ats_int_type, statmp294) = tmp298 ; return /* (tmp296) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_push] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 27925(line=1286, offs=3) -- 28055(line=1292, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_pop () { /* local vardec */ // ATSlocal_void (tmp299) ; ATSlocal (ats_int_type, tmp300) ; ATSlocal (ats_int_type, tmp301) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_pop: tmp300 = ats_ptrget_mac(ats_int_type, statmp294) ; tmp301 = atspre_sub_int_int (tmp300, 1) ; ats_ptrget_mac(ats_int_type, statmp294) = tmp301 ; return /* (tmp299) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_staload_level_pop] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp304 ; */ tmp304 = arg0 ; tmp303 = atspre_ref_make_elt_tsz ((&tmp304), sizeof(ats_ptr_type)) ; return (tmp303) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 28284(line=1307, offs=19) -- 28395(line=1311, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_add: tmp307 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp302), atslab_1) ; /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_insert (tmp307, arg0, arg1) ; return /* (tmp306) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_add] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 28456(line=1314, offs=20) -- 28555(line=1318, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_find (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_find: tmp309 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp302), atslab_1) ; tmp310 = ats_ptrget_mac(ats_ptr_type, tmp309) ; tmp308 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_search (tmp310, arg0) ; return (tmp308) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_find] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 28811(line=1335, offs=3) -- 29028(line=1340, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () { /* local vardec */ // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; // ATSlocal_void (tmp313) ; // ATSlocal_void (tmp314) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop: /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_pop () ; /* tmp313 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop_free () ; /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; /* tmp311 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop_free () ; return /* (tmp311) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 29091(line=1343, offs=21) -- 29295(line=1350, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () { /* local vardec */ // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; // ATSlocal_void (tmp317) ; // ATSlocal_void (tmp318) ; // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push: /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_push () ; /* tmp317 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_push_nil () ; /* tmp318 = ats_selsin_mac(tmp317, atslab_1) */ ; /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp320 = ats_selsin_mac(tmp319, atslab_1) */ ; /* tmp315 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_push_nil () ; return /* (tmp315) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 29366(line=1354, offs=3) -- 29610(line=1359, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_localjoin () { /* local vardec */ // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_localjoin: /* tmp322 = */ _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_localjoin () ; /* tmp323 = */ the_s2rtenv_localjoin_19 () ; /* tmp324 = */ the_s2expenv_localjoin_35 () ; /* tmp321 = */ the_d2expenv_localjoin_86 () ; return /* (tmp321) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_localjoin] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 29691(line=1363, offs=3) -- 30156(line=1375, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pervasive_joinwth1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; // ATSlocal_void (tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; // ATSlocal_void (tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pervasive_joinwth1: tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop () ; /* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth1 (tmp326) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop () ; /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_joinwth1 (tmp328) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pop () ; /* tmp331 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_joinwth1 (tmp330) ; tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname (arg0) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_make (arg0, tmp326, tmp328, tmp330, arg1) ; /* tmp325 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_filenvmap_add (tmp332, tmp333) ; return /* (tmp325) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pervasive_joinwth1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 30423(line=1391, offs=21) -- 30639(line=1399, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_save () { /* local vardec */ // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; // ATSlocal_void (tmp336) ; // ATSlocal_void (tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_save: /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_save () ; /* tmp336 = */ the_s2rtenv_save_20 () ; /* tmp337 = ats_selsin_mac(tmp336, atslab_1) */ ; /* tmp338 = */ the_s2expenv_save_36 () ; /* tmp339 = ats_selsin_mac(tmp338, atslab_1) */ ; /* tmp334 = */ the_d2expenv_save_87 () ; return /* (tmp334) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_save] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 30708(line=1403, offs=3) -- 30954(line=1410, offs=4) */ ATSglobaldec() anairiats_rec_12 _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_restore () { /* local vardec */ ATSlocal (anairiats_rec_12, tmp340) ; // ATSlocal_void (tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_restore: /* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__the_namespace_restore () ; tmp342 = the_s2rtenv_restore_21 () ; tmp343 = the_s2expenv_restore_37 () ; tmp344 = the_d2expenv_restore_88 () ; tmp340.atslab_0 = tmp342 ; tmp340.atslab_1 = tmp343 ; tmp340.atslab_2 = tmp344 ; return (tmp340) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_restore] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 31046(line=1419, offs=1) -- 32661(line=1467, offs=2) */ ATSstaticdec() ats_void_type the_s2rtenv_initialize_114 () { /* local vardec */ // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; // ATSlocal_void (tmp347) ; // ATSlocal_void (tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; // ATSlocal_void (tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; // ATSlocal_void (tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; // ATSlocal_void (tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; // ATSlocal_void (tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; // ATSlocal_void (tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; // ATSlocal_void (tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; // ATSlocal_void (tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; // ATSlocal_void (tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; // ATSlocal_void (tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; // ATSlocal_void (tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; // ATSlocal_void (tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; // ATSlocal_void (tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; // ATSlocal_void (tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; // ATSlocal_void (tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; // ATSlocal_void (tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; // ATSlocal_void (tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; // ATSlocal_void (tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; __ats_lab_the_s2rtenv_initialize_114: /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_push_nil () ; /* tmp347 = ats_selsin_mac(tmp346, atslab_1) */ ; tmp349 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp349)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp349, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; /* tmp348 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_INT, tmp349) ; tmp351 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp351)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp351, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADDR, tmp351) ; tmp353 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp353)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp353, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BOOL, tmp353) ; tmp355 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp355)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp355, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_real) ; /* tmp354 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_REAL, tmp355) ; tmp357 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp357)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp357, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_float) ; /* tmp356 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FLOAT, tmp357) ; tmp359 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp359)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp359, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_string) ; /* tmp358 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_STRING, tmp359) ; tmp361 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp361)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp361, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_cls) ; /* tmp360 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CLS, tmp361) ; tmp363 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp363)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp363, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff) ; /* tmp362 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EFF, tmp363) ; tmp365 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp365)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp365, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind) ; /* tmp364 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TKIND, tmp365) ; tmp367 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp367)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp367, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; /* tmp366 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP, tmp367) ; tmp369 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp369)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp369, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; /* tmp368 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW, tmp369) ; tmp371 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp371)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp371, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ; /* tmp370 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE, tmp371) ; tmp373 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp373)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp373, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; /* tmp372 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE, tmp373) ; tmp375 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp375)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp375, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_types) ; /* tmp374 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES, tmp375) ; tmp377 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp377)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp377, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ; /* tmp376 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VTYPE, tmp377) ; tmp379 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp379)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp379, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; /* tmp378 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VT0YPE, tmp379) ; tmp381 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp381)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp381, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ; /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE, tmp381) ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp383)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp383, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; /* tmp382 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_add (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE, tmp383) ; tmp384 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pop () ; /* tmp345 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_pervasive_joinwth0 (tmp384) ; return /* (tmp345) */ ; } /* end of [the_s2rtenv_initialize_114] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 32704(line=1470, offs=1) -- 32763(line=1470, offs=60) */ ATSstaticdec() ats_void_type the_s2rtenv_reinitialize_115 () { /* local vardec */ // ATSlocal_void (tmp385) ; __ats_lab_the_s2rtenv_reinitialize_115: /* tmp385 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_top_clear () ; return /* (tmp385) */ ; } /* end of [the_s2rtenv_reinitialize_115] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 32793(line=1475, offs=1) -- 32830(line=1475, offs=38) */ ATSstaticdec() ats_void_type the_s2expenv_initialize_116 () { /* local vardec */ // ATSlocal_void (tmp386) ; __ats_lab_the_s2expenv_initialize_116: return /* (tmp386) */ ; } /* end of [the_s2expenv_initialize_116] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 32835(line=1477, offs=1) -- 32895(line=1477, offs=61) */ ATSstaticdec() ats_void_type the_s2expenv_reinitialize_117 () { /* local vardec */ // ATSlocal_void (tmp387) ; __ats_lab_the_s2expenv_reinitialize_117: /* tmp387 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_top_clear () ; return /* (tmp387) */ ; } /* end of [the_s2expenv_reinitialize_117] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 32927(line=1482, offs=1) -- 33308(line=1500, offs=2) */ ATSstaticdec() ats_void_type the_d2expenv_initialize_118 () { /* local vardec */ // ATSlocal_void (tmp388) ; __ats_lab_the_d2expenv_initialize_118: return /* (tmp388) */ ; } /* end of [the_d2expenv_initialize_118] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 33355(line=1503, offs=1) -- 33415(line=1503, offs=61) */ ATSstaticdec() ats_void_type the_d2expenv_reinitialize_119 () { /* local vardec */ // ATSlocal_void (tmp389) ; __ats_lab_the_d2expenv_reinitialize_119: /* tmp389 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_top_clear () ; return /* (tmp389) */ ; } /* end of [the_d2expenv_reinitialize_119] */ /* // /tmp/ATS-Postiats/src/pats_trans2_env.dats: 33561(line=1515, offs=1) -- 33948(line=1536, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_initialize () { /* local vardec */ // ATSlocal_void (tmp391) ; ATSlocal (ats_int_type, tmp392) ; ATSlocal (ats_int_type, tmp393) ; ATSlocal (ats_bool_type, tmp394) ; // ATSlocal_void (tmp395) ; // ATSlocal_void (tmp396) ; // ATSlocal_void (tmp397) ; // ATSlocal_void (tmp398) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_initialize: tmp392 = ats_ptrget_mac(ats_int_type, statmp390) ; tmp393 = atspre_add_int_int (tmp392, 1) ; ats_ptrget_mac(ats_int_type, statmp390) = tmp393 ; tmp394 = atspre_eq_int_int (tmp392, 0) ; if (tmp394) { /* tmp395 = */ the_s2rtenv_initialize_114 () ; /* tmp396 = */ the_s2expenv_initialize_116 () ; /* tmp391 = */ the_d2expenv_initialize_118 () ; } else { /* tmp397 = */ the_s2rtenv_reinitialize_115 () ; /* tmp398 = */ the_s2expenv_reinitialize_117 () ; /* tmp391 = */ the_d2expenv_reinitialize_119 () ; } /* end of [if] */ return /* (tmp391) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_initialize] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_namespace_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp24, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp25, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp70, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp71, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp148, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp167, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp175, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp199, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp210, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp211, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp294, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp302, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp305, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp390, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil () ; statmp25 = ats_selsin_mac(statmp24, atslab_1) ; /* statmp26 = */ atspre_vbox_make_view_ptr (statmp25) ; /* statmp27 = ats_selsin_mac(statmp26, atslab_1) */ ; statmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil () ; statmp71 = ats_selsin_mac(statmp70, atslab_1) ; /* statmp72 = */ atspre_vbox_make_view_ptr (statmp71) ; /* statmp73 = ats_selsin_mac(statmp72, atslab_1) */ ; statmp148 = ref_make_elt_01089_ats_int_type (1) ; statmp167 = ref_make_elt_01089_ats_int_type (0) ; statmp175 = ref_make_elt_01089_ats_int_type (0) ; statmp199 = ref_01088_ats_int_type (0) ; statmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_symenv_2esats__symenv_make_nil () ; statmp211 = ats_selsin_mac(statmp210, atslab_1) ; /* statmp212 = */ atspre_vbox_make_view_ptr (statmp211) ; /* statmp213 = ats_selsin_mac(statmp212, atslab_1) */ ; statmp294 = ref_01088_ats_int_type (0) ; statmp305 = _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__symmap_make_nil () ; statmp302 = ref_01088_ats_ptr_type (statmp305) ; statmp390 = ref_01088_ats_int_type (0) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_env_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_codegen2_util_dats.c0000644000175000017500000015560113431250607023260 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_4 ; typedef struct { anairiats_rec_4 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASpre_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASdef_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMcst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_add_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_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_int) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_sym) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_nonlin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tydef) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_s2cst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2var) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_bool_type aux_test_0 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_find_5 (ats_ptr_type arg0) ; static ats_ptr_type aux_find_9 (ats_ptr_type arg0) ; static ats_void_type auxlst_12 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_12_closure_make (ats_ptr_type env0) ; static ats_void_type auxlst_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type aux_s2qua_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, anairiats_rec_4 arg3) ; static ats_void_type aux_s2qualst_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type fprs2t_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_19 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type loop_19_closure_make (ats_ptr_type env0) ; static ats_void_type loop_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type aux_17 (ats_ptr_type env0, anairiats_rec_4 arg0) ; static ats_clo_ptr_type aux_17_closure_make (ats_ptr_type env0) ; static ats_void_type aux_17_clofun (ats_clo_ptr_type cloptr, anairiats_rec_4 arg0) ; static ats_void_type auxlst_20 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_20_closure_make (ats_ptr_type env0) ; static ats_void_type auxlst_20_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type aux_s2rt_22 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_s2rt_22_closure_make (ats_ptr_type env0) ; static ats_void_type aux_s2rt_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type aux_s2rtlst_23 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_s2rtlst_23_closure_make (ats_ptr_type env0) ; static ats_void_type aux_s2rtlst_23_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type aux_s2rtbas_24 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_s2rtbas_24_closure_make (ats_ptr_type env0) ; static ats_void_type aux_s2rtbas_24_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type aux_istup_27 (ats_ptr_type arg0) ; static ats_void_type aux_s2exp_28 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_s2explst_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type aux_labs2explst_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 1813(line=67, offs=1) -- 2057(line=83, offs=2) */ ATSstaticdec() ats_bool_type aux_test_0 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_aux_test_0: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp2) ; tmp0 = atspre_eq_string_string (arg1, tmp3) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp1)->tag != 5) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; tmp0 = atspre_eq_string_string (arg1, tmp4) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp0 = ats_false_bool ; break ; } while (0) ; return (tmp0) ; } /* end of [aux_test_0] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 2133(line=88, offs=17) -- 2162(line=88, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcon_test_e1xp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcon_test_e1xp: tmp5 = aux_test_0 (arg0, ATSstrcst("datcon")) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcon_test_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 2192(line=90, offs=20) -- 2224(line=90, offs=52) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcontag_test_e1xp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcontag_test_e1xp: tmp6 = aux_test_0 (arg0, ATSstrcst("datcontag")) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcontag_test_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 2254(line=93, offs=17) -- 2283(line=93, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__fprint_test_e1xp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__fprint_test_e1xp: tmp7 = aux_test_0 (arg0, ATSstrcst("fprint")) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__fprint_test_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 2313(line=96, offs=17) -- 2342(line=96, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__absrec_test_e1xp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__absrec_test_e1xp: tmp8 = aux_test_0 (arg0, ATSstrcst("absrec")) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__absrec_test_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 2401(line=105, offs=1) -- 2781(line=128, offs=4) */ ATSstaticdec() ats_ptr_type aux_find_5 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_aux_find_5: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (arg0) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (tmp10 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_3_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_2, tmp10, atslab_0) ; ATS_FREE(tmp10) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp11)->tag != 1) { goto __ats_lab_7_0 ; } __ats_lab_4_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_1, tmp11, atslab_0) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (tmp12 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_3, tmp12, atslab_0) ; tmp9 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp9, atslab_0, tmp13) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (tmp12 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp9 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp9 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (tmp10 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp9 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp9) ; } /* end of [aux_find_5] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 2857(line=134, offs=3) -- 3224(line=163, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_s2cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_s2cst: tmp15 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp15)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_1, tmp15, atslab_0) ; tmp14 = aux_find_5 (tmp16) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp14 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 3332(line=171, offs=3) -- 3598(line=187, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_tydef (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_tydef: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_s2cst (arg0) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (tmp18 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_2, tmp18, atslab_0) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tydef (tmp19) ; if (tmp20) { tmp17 = tmp18 ; } else { ATS_FREE(tmp18) ; tmp17 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (tmp18 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp17 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_tydef] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 3684(line=193, offs=3) -- 3951(line=209, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_datype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_datype: tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_s2cst (arg0) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp22 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_2, tmp22, atslab_0) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype (tmp23) ; if (tmp24) { tmp21 = tmp22 ; } else { ATS_FREE(tmp22) ; tmp21 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp22 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp21 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_datype] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 4017(line=216, offs=1) -- 4309(line=235, offs=4) */ ATSstaticdec() ats_ptr_type aux_find_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_aux_find_9: tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (arg0) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (tmp26 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_15_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_2, tmp26, atslab_0) ; ATS_FREE(tmp26) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp27)->tag != 0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_1, tmp27, atslab_0) ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp25, atslab_0, tmp28) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp25 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (tmp26 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp25 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp25) ; } /* end of [aux_find_9] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 4385(line=241, offs=3) -- 4749(line=269, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_d2cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_d2cst: tmp30 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp30)->tag != 0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_1, tmp30, atslab_0) ; tmp29 = aux_find_9 (tmp31) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp29 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 4927(line=285, offs=1) -- 5093(line=296, offs=2) */ ATSstaticdec() ats_void_type auxlst_12 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab_auxlst_12: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp35 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (tmp34) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (env0, tmp37) ; arg0 = tmp35 ; goto __ats_lab_auxlst_12 ; // tail call break ; } while (0) ; return /* (tmp33) */ ; } /* end of [auxlst_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_12_closure_type ; ats_void_type auxlst_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxlst_12 (((auxlst_12_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxlst_12_closure_init (auxlst_12_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_12_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_12_closure_make (ats_ptr_type env0) { auxlst_12_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_12_closure_type)) ; auxlst_12_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 4837(line=278, offs=1) -- 5165(line=300, offs=4) */ ATSstaticdec() ats_void_type aux_s2qua_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, anairiats_rec_4 arg3) { /* local vardec */ // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab_aux_s2qua_11: /* tmp38 = */ atspre_fprint_string (arg0, arg1) ; tmp40 = ats_select_mac(arg3, atslab_s2qua_svs) ; /* tmp39 = */ auxlst_12 (arg0, tmp40) ; /* tmp32 = */ atspre_fprint_string (arg0, arg2) ; return /* (tmp32) */ ; } /* end of [aux_s2qua_11] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 5193(line=303, offs=1) -- 5457(line=317, offs=2) */ ATSstaticdec() ats_void_type aux_s2qualst_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp41) ; ATSlocal (anairiats_rec_4, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; __ats_lab_aux_s2qualst_13: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_1) ; /* tmp44 = */ aux_s2qua_11 (arg0, arg1, arg2, tmp42) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp43 ; goto __ats_lab_aux_s2qualst_13 ; // tail call break ; } while (0) ; return /* (tmp41) */ ; } /* end of [aux_s2qualst_13] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 5545(line=323, offs=3) -- 5649(line=331, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (arg1) ; /* tmp45 = */ aux_s2qualst_13 (arg0, ATSstrcst("<"), ATSstrcst(">"), tmp46) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 5723(line=335, offs=3) -- 5827(line=343, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp: tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (arg1) ; /* tmp47 = */ aux_s2qualst_13 (arg0, ATSstrcst("{"), ATSstrcst("}"), tmp48) ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 6020(line=360, offs=1) -- 6223(line=373, offs=2) */ ATSstaticdec() ats_void_type fprs2t_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp51) ; ATSlocal (ats_bool_type, tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_bool_type, tmp54) ; ATSlocal (ats_bool_type, tmp55) ; __ats_lab_fprs2t_18: tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm (arg1) ; if (tmp52) { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (arg1) ; if (tmp54) { /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("vt0p")) ; } else { /* empty */ } /* end of [if] */ tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_nonlin (arg1) ; if (tmp55) { /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst("t0p")) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp51) */ ; } /* end of [fprs2t_18] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 6253(line=376, offs=1) -- 6544(line=392, offs=2) */ ATSstaticdec() ats_void_type loop_19 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; __ats_lab_loop_19: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp58 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (tmp57) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp57) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (env0, tmp59) ; /* tmp62 = */ atspre_fprint_string (env0, ATSstrcst(":")) ; /* tmp63 = */ fprs2t_18 (env0, tmp60) ; arg0 = tmp58 ; goto __ats_lab_loop_19 ; // tail call break ; } while (0) ; return /* (tmp56) */ ; } /* end of [loop_19] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } loop_19_closure_type ; ats_void_type loop_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { loop_19 (((loop_19_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type loop_19_closure_init (loop_19_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_19_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type loop_19_closure_make (ats_ptr_type env0) { loop_19_closure_type *p_clo = ATS_MALLOC(sizeof(loop_19_closure_type)) ; loop_19_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 5970(line=354, offs=1) -- 6632(line=398, offs=4) */ ATSstaticdec() ats_void_type aux_17 (ats_ptr_type env0, anairiats_rec_4 arg0) { /* local vardec */ // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; __ats_lab_aux_17: tmp64 = ats_select_mac(arg0, atslab_s2qua_svs) ; /* tmp65 = */ atspre_fprint_string (env0, ATSstrcst("{")) ; /* tmp66 = */ loop_19 (env0, tmp64) ; /* tmp50 = */ atspre_fprint_string (env0, ATSstrcst("}")) ; return /* (tmp50) */ ; } /* end of [aux_17] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_17_closure_type ; ats_void_type aux_17_clofun (ats_clo_ptr_type cloptr, anairiats_rec_4 arg0) { aux_17 (((aux_17_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type aux_17_closure_init (aux_17_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_17_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_17_closure_make (ats_ptr_type env0) { aux_17_closure_type *p_clo = ATS_MALLOC(sizeof(aux_17_closure_type)) ; aux_17_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 6654(line=401, offs=1) -- 6787(line=409, offs=2) */ ATSstaticdec() ats_void_type auxlst_20 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp67) ; ATSlocal (anairiats_rec_4, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; __ats_lab_auxlst_20: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; /* tmp70 = */ aux_17 (env0, tmp68) ; arg0 = tmp69 ; goto __ats_lab_auxlst_20 ; // tail call break ; } while (0) ; return /* (tmp67) */ ; } /* end of [auxlst_20] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_20_closure_type ; ats_void_type auxlst_20_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxlst_20 (((auxlst_20_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxlst_20_closure_init (auxlst_20_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_20_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_20_closure_make (ats_ptr_type env0) { auxlst_20_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_20_closure_type)) ; auxlst_20_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 5945(line=351, offs=3) -- 6852(line=413, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec: tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (arg1) ; /* tmp49 = */ auxlst_20 (arg0, tmp71) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 6967(line=422, offs=1) -- 7350(line=446, offs=2) */ ATSstaticdec() ats_void_type aux_s2rt_22 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; __ats_lab_aux_s2rt_22: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp73 = */ aux_s2rtbas_24 (env0, tmp74) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; /* tmp77 = */ atspre_fprint_string (env0, ATSstrcst("(")) ; /* tmp78 = */ aux_s2rtlst_23 (env0, tmp75, 0) ; /* tmp79 = */ atspre_fprint_string (env0, ATSstrcst(") ->")) ; arg0 = tmp76 ; goto __ats_lab_aux_s2rt_22 ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (env0, arg0) ; break ; } while (0) ; return /* (tmp73) */ ; } /* end of [aux_s2rt_22] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_s2rt_22_closure_type ; ats_void_type aux_s2rt_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { aux_s2rt_22 (((aux_s2rt_22_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type aux_s2rt_22_closure_init (aux_s2rt_22_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_s2rt_22_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_s2rt_22_closure_make (ats_ptr_type env0) { aux_s2rt_22_closure_type *p_clo = ATS_MALLOC(sizeof(aux_s2rt_22_closure_type)) ; aux_s2rt_22_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 7382(line=449, offs=1) -- 7672(line=465, offs=2) */ ATSstaticdec() ats_void_type aux_s2rtlst_23 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; // ATSlocal_void (tmp83) ; ATSlocal (ats_bool_type, tmp84) ; // ATSlocal_void (tmp85) ; ATSlocal (ats_int_type, tmp86) ; __ats_lab_aux_s2rtlst_23: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp82 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp84 = atspre_gt_int_int (arg1, 0) ; if (tmp84) { /* tmp83 = */ atspre_fprint_string (env0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp85 = */ aux_s2rt_22 (env0, tmp81) ; tmp86 = atspre_add_int_int (arg1, 1) ; arg0 = tmp82 ; arg1 = tmp86 ; goto __ats_lab_aux_s2rtlst_23 ; // tail call break ; } while (0) ; return /* (tmp80) */ ; } /* end of [aux_s2rtlst_23] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_s2rtlst_23_closure_type ; ats_void_type aux_s2rtlst_23_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_s2rtlst_23 (((aux_s2rtlst_23_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_s2rtlst_23_closure_init (aux_s2rtlst_23_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_s2rtlst_23_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_s2rtlst_23_closure_make (ats_ptr_type env0) { aux_s2rtlst_23_closure_type *p_clo = ATS_MALLOC(sizeof(aux_s2rtlst_23_closure_type)) ; aux_s2rtlst_23_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 7707(line=468, offs=1) -- 8001(line=483, offs=2) */ ATSstaticdec() ats_void_type aux_s2rtbas_24 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; __ats_lab_aux_s2rtbas_24: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (env0, tmp88) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp89 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (env0, tmp89) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym (tmp90) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (env0, tmp91) ; break ; } while (0) ; return /* (tmp87) */ ; } /* end of [aux_s2rtbas_24] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_s2rtbas_24_closure_type ; ats_void_type aux_s2rtbas_24_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { aux_s2rtbas_24 (((aux_s2rtbas_24_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type aux_s2rtbas_24_closure_init (aux_s2rtbas_24_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_s2rtbas_24_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_s2rtbas_24_closure_make (ats_ptr_type env0) { aux_s2rtbas_24_closure_type *p_clo = ATS_MALLOC(sizeof(aux_s2rtbas_24_closure_type)) ; aux_s2rtbas_24_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 6942(line=419, offs=3) -- 8055(line=487, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2rt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2rt: /* tmp72 = */ aux_s2rt_22 (arg0, arg1) ; return /* (tmp72) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2rt] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 8141(line=493, offs=3) -- 8211(line=496, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2cst: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg1) ; /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp93) ; return /* (tmp92) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 8271(line=500, offs=3) -- 8341(line=503, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2var: tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg1) ; /* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp95) ; return /* (tmp94) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2var] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 8403(line=510, offs=1) -- 8650(line=523, offs=2) */ ATSstaticdec() ats_bool_type aux_istup_27 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_bool_type, tmp100) ; __ats_lab_aux_istup_27: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp96 = ats_true_bool ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp98 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; // tmp99 = ats_caselptrlab_mac(anairiats_sum_8, tmp97, atslab_0) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_int (tmp99) ; if (tmp100) { arg0 = tmp98 ; goto __ats_lab_aux_istup_27 ; // tail call } else { tmp96 = ats_false_bool ; } /* end of [if] */ break ; } while (0) ; return (tmp96) ; } /* end of [aux_istup_27] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 8656(line=526, offs=1) -- 10045(line=609, offs=4) */ ATSstaticdec() ats_void_type aux_s2exp_28 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; // ATSlocal_void (tmp115) ; ATSlocal (ats_bool_type, tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_bool_type, tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; __ats_lab_aux_s2exp_28: tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp102)->tag != 4) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_1, tmp102, atslab_0) ; /* tmp101 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2cst (arg0, tmp103) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp102)->tag != 7) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_1, tmp102, atslab_0) ; /* tmp101 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2var (arg0, tmp104) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp102)->tag != 17) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_6, tmp102, atslab_0) ; tmp106 = ats_caselptrlab_mac(anairiats_sum_6, tmp102, atslab_1) ; /* tmp107 = */ aux_s2exp_28 (arg0, tmp105) ; /* tmp108 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp109 = */ aux_s2explst_29 (arg0, tmp106, 0) ; /* tmp101 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp102)->tag != 25) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_10, tmp102, atslab_0) ; tmp111 = ats_caselptrlab_mac(anairiats_sum_10, tmp102, atslab_2) ; tmp112 = aux_istup_27 (tmp111) ; if (tmp112) { tmp113 = ATSstrcst("$tup") ; } else { tmp113 = ATSstrcst("$rec") ; } /* end of [if] */ tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted (tmp110) ; if (tmp114) { /* tmp115 = */ atspre_fprint_string (arg0, ATSstrcst("@")) ; } else { /* empty */ } /* end of [if] */ tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed (tmp110) ; if (tmp116) { tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin (arg1) ; if (tmp118) { /* tmp119 = */ atspre_fprint_string (arg0, tmp113) ; /* tmp117 = */ atspre_fprint_string (arg0, ATSstrcst("_t")) ; } else { /* tmp120 = */ atspre_fprint_string (arg0, tmp113) ; /* tmp117 = */ atspre_fprint_string (arg0, ATSstrcst("_vt")) ; } /* end of [if] */ } else { /* empty */ } /* end of [if] */ if (tmp112) { /* tmp121 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; } else { /* tmp121 = */ atspre_fprint_string (arg0, ATSstrcst("{")) ; } /* end of [if] */ /* tmp122 = */ aux_labs2explst_30 (arg0, tmp111, 0) ; if (tmp112) { /* tmp101 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; } else { /* tmp101 = */ atspre_fprint_string (arg0, ATSstrcst("}")) ; } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: /* tmp101 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, arg1) ; break ; } while (0) ; return /* (tmp101) */ ; } /* end of [aux_s2exp_28] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 10076(line=612, offs=1) -- 10418(line=633, offs=4) */ ATSstaticdec() ats_void_type aux_s2explst_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_bool_type, tmp127) ; // ATSlocal_void (tmp128) ; ATSlocal (ats_int_type, tmp129) ; __ats_lab_aux_s2explst_29: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp127 = atspre_gt_int_int (arg2, 0) ; if (tmp127) { /* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp128 = */ aux_s2exp_28 (arg0, tmp124) ; tmp129 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp125 ; arg2 = tmp129 ; goto __ats_lab_aux_s2explst_29 ; // tail call break ; } while (0) ; return /* (tmp123) */ ; } /* end of [aux_s2explst_29] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 10449(line=636, offs=1) -- 10932(line=665, offs=4) */ ATSstaticdec() ats_void_type aux_labs2explst_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; // ATSlocal_void (tmp133) ; ATSlocal (ats_bool_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; // ATSlocal_void (tmp137) ; ATSlocal (ats_bool_type, tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_int_type, tmp141) ; __ats_lab_aux_labs2explst_30: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp134 = atspre_gt_int_int (arg2, 0) ; if (tmp134) { /* tmp133 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ // tmp135 = ats_caselptrlab_mac(anairiats_sum_8, tmp131, atslab_0) ; tmp136 = ats_caselptrlab_mac(anairiats_sum_8, tmp131, atslab_2) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_is_sym (tmp135) ; if (tmp138) { /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp135) ; /* tmp137 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; } else { /* empty */ } /* end of [if] */ /* tmp140 = */ aux_s2exp_28 (arg0, tmp136) ; tmp141 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp132 ; arg2 = tmp141 ; goto __ats_lab_aux_labs2explst_30 ; // tail call break ; } while (0) ; return /* (tmp130) */ ; } /* end of [aux_labs2explst_30] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_util.dats: 11016(line=671, offs=3) -- 11149(line=683, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2exp: /* tmp142 = */ aux_s2exp_28 (arg0, arg1) ; return /* (tmp142) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2exp] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_util_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_codegen2_util_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_solve_dats.c0000644000175000017500000052312713431250607023335 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_uint_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_16 ; typedef struct { anairiats_rec_2 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_17 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_label_equal_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_stamp_equal_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_funclo_equal_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_clokind_equal_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_linearity_equal_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_pfarity_equal_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2eff_subeq_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_boxity_equal_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_tyreckind_equal_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_refval_equal_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2zexp_merge_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_equal_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2exp_tyleq_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2Var_s2exp_solve_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_s2explst_length_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_labs2explst_length_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__STAERR_wths2explst_shape_16) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_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_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_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__eq_funclo_funclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil) (ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall) (ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_subset) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_get_pol) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_nameless) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_argsrtss) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_val) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_lb_insert) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_ub_insert) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_impred) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_is_bot) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_is_abscon) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_merge) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2Var_occurcheck_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool) (ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2eff_hnfize) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_2, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_2, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2var_occurcheck_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_absuni_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__label_equal_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve_err) (ats_ptr_type, ats_int_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err) (ats_ptr_type, ats_int_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__tyreckind_equal_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err) (ats_ptr_type, ats_int_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_equal_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_equal_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_equal_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_tyleq_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_tyleq_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_argsrtlst_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_hypequal_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_hypequal_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_merge_szexp_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_s2exp_srtck_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lbs_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_ubs_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err_nck) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err_nck) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lVar_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_rVar_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_solve_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_bool_type aux_check_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2hnf_equal_solve_abscon_err_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_int_type loop_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_int_type loop_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_int_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_int_type loop_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_int_type loop_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_int_type loop_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type auxsolve_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type auxcheck_50 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2hnf_hypequal_solve_abscon_48 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 2276(line=90, offs=3) -- 2476(line=104, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__label_equal_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__label_equal_solve_err: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (arg1, arg2) ; tmp1 = atspre_ieq (tmp2, 0) ; if (tmp1) { /* empty */ } else { tmp3 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp3 ; tmp4 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp4)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp4, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp4, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp4, atslab_2, arg2) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp4) ; } /* end of [if] */ return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__label_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 2569(line=110, offs=3) -- 2766(line=123, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__stamp_equal_solve_err (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_bool_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__stamp_equal_solve_err: tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (arg1, arg2) ; tmp6 = atspre_ieq (tmp7, 0) ; if (tmp6) { /* empty */ } else { tmp8 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp8 ; tmp9 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp9)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp9, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp9, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp9, atslab_2, arg2) ; /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp9) ; } /* end of [if] */ return /* (tmp5) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__stamp_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 2872(line=130, offs=1) -- 2995(line=139, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp10) ; ATSlocal (ats_int_type, tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve: /* ats_int_type tmp11 ; */ tmp11 = 0 ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve_err (arg0, arg1, arg2, (&tmp11)) ; tmp10 = tmp11 ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 3061(line=143, offs=1) -- 3268(line=159, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_int_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve_err: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__eq_funclo_funclo (arg1, arg2) ; if (tmp14) { /* empty */ } else { tmp15 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp15 ; tmp16 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp16)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp16, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp16, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp16, atslab_2, arg2) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp16) ; } /* end of [if] */ return /* (tmp13) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 3383(line=167, offs=1) -- 3602(line=183, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__clokind_equal_solve_err (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp17) ; ATSlocal (ats_bool_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__clokind_equal_solve_err: tmp18 = atspre_eq_int_int (arg1, arg2) ; if (tmp18) { /* empty */ } else { tmp19 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp19 ; tmp20 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp20)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp20, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp20, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp20, atslab_2, arg2) ; /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp20) ; } /* end of [if] */ return /* (tmp17) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__clokind_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 3713(line=190, offs=1) -- 3838(line=200, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_int_type, tmp22) ; // ATSlocal_void (tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve: /* ats_int_type tmp22 ; */ tmp22 = 0 ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve_err (arg0, arg1, arg2, (&tmp22)) ; tmp21 = tmp22 ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 3915(line=204, offs=3) -- 4127(line=218, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve_err (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve_err: tmp25 = atspre_eq_int_int (arg1, arg2) ; if (tmp25) { /* empty */ } else { tmp26 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp26 ; tmp27 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp27)->tag = 4 ; ats_selptrset_mac(anairiats_sum_4, tmp27, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp27, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp27, atslab_2, arg2) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp27) ; } /* end of [if] */ return /* (tmp24) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 4241(line=226, offs=1) -- 4364(line=236, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp28) ; ATSlocal (ats_int_type, tmp29) ; // ATSlocal_void (tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve: /* ats_int_type tmp29 ; */ tmp29 = 0 ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err (arg0, arg1, arg2, (&tmp29)) ; tmp28 = tmp29 ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 4437(line=240, offs=3) -- 4647(line=255, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp31) ; ATSlocal (ats_bool_type, tmp32) ; ATSlocal (ats_int_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err: tmp32 = atspre_eq_int_int (arg1, arg2) ; if (tmp32) { /* empty */ } else { tmp33 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp33 ; tmp34 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp34)->tag = 5 ; ats_selptrset_mac(anairiats_sum_4, tmp34, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp34, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp34, atslab_2, arg2) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp34) ; } /* end of [if] */ return /* (tmp31) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 4764(line=263, offs=3) -- 5099(line=282, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__boxity_equal_solve_err (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_int_type, tmp36) ; ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_bool_type, tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__boxity_equal_solve_err: tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed (arg2) ; if (tmp37) { tmp36 = atspre_sub_int_int (1, arg1) ; } else { tmp36 = arg1 ; } /* end of [if] */ tmp38 = atspre_eq_int_int (tmp36, 0) ; if (tmp38) { /* empty */ } else { tmp39 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp39 ; tmp40 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp40)->tag = 7 ; ats_selptrset_mac(anairiats_sum_5, tmp40, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp40, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp40, atslab_2, arg2) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp40) ; } /* end of [if] */ return /* (tmp35) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__boxity_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 5174(line=286, offs=3) -- 5382(line=300, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__tyreckind_equal_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__tyreckind_equal_solve_err: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (arg1, arg2) ; if (tmp42) { /* empty */ } else { tmp43 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp43 ; tmp44 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp44)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp44, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp44, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp44, atslab_2, arg2) ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp44) ; } /* end of [if] */ return /* (tmp41) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__tyreckind_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 5503(line=308, offs=3) -- 5708(line=322, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_int_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err: tmp46 = atspre_eq_int_int (arg1, arg2) ; if (tmp46) { /* empty */ } else { tmp47 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp47 ; tmp48 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp48)->tag = 9 ; ats_selptrset_mac(anairiats_sum_4, tmp48, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp48, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp48, atslab_2, arg2) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp48) ; } /* end of [if] */ return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 5965(line=338, offs=3) -- 6323(line=357, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_merge_szexp_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_int_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_merge_szexp_err: tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (arg1) ; tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_merge (tmp50, arg2) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_is_bot (tmp51) ; if (tmp53) { tmp54 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp54 ; tmp55 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp55)->tag = 10 ; ats_selptrset_mac(anairiats_sum_3, tmp55, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp55, atslab_1, tmp50) ; ats_selptrset_mac(anairiats_sum_3, tmp55, atslab_2, arg2) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp55) ; } else { /* empty */ } /* end of [if] */ /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp (arg1, tmp51) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_merge_szexp_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 6551(line=370, offs=3) -- 6887(line=388, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_s2exp_srtck_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_bool_type, tmp60) ; ATSlocal (ats_int_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_s2exp_srtck_err: tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt (arg1) ; tmp58 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_s2exp_srt) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp58, tmp57) ; tmp60 = atspre_neg_bool (tmp59) ; if (tmp60) { tmp61 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp61 ; tmp62 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp62)->tag = 13 ; ats_selptrset_mac(anairiats_sum_3, tmp62, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp62, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp62, atslab_2, arg2) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp62) ; } else { /* empty */ } /* end of [if] */ return /* (tmp56) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_s2exp_srtck_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 7641(line=428, offs=1) -- 8475(line=466, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (anairiats_rec_1, tmp66) ; ATSlocal (ats_int_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_bool_type, tmp71) ; // ATSlocal_void (tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err: tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2Var_occurcheck_s2exp (arg3, tmp65) ; tmp67 = ats_select_mac(tmp66, atslab_0) ; tmp68 = ats_select_mac(tmp66, atslab_1) ; tmp69 = ats_select_mac(tmp66, atslab_2) ; tmp70 = ats_select_mac(tmp66, atslab_3) ; tmp71 = atspre_eq_int_int (tmp67, 0) ; if (tmp71) { /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst (tmp70, arg3) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err_nck (arg0, arg1, arg2, arg3, arg4) ; } else { /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq (arg0, tmp64, tmp65) ; } /* end of [if] */ return /* (tmp63) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 8557(line=470, offs=1) -- 9264(line=516, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err_nck (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; // ATSlocal_void (tmp75) ; ATSlocal (ats_bool_type, tmp76) ; // ATSlocal_void (tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err_nck: tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_s2exp_srtck_err (arg0, arg3, tmp74, arg4) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_impred (tmp74) ; if (tmp76) { tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp (tmp74) ; /* tmp77 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_merge_szexp_err (arg0, arg3, tmp78, arg4) ; } else { /* empty */ } /* end of [if] */ tmp80 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp80, atslab_0, tmp74) ; /* tmp79 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link (arg3, tmp80) ; if (tmp76) { tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs (arg3) ; /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lbs_err (arg0, tmp81, arg2, arg4) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs (arg3) ; /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_ubs_err (arg0, arg2, tmp83, arg4) ; } else { /* empty */ } /* end of [if] */ return /* (tmp73) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err_nck] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 9711(line=539, offs=3) -- 10677(line=579, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (anairiats_rec_1, tmp87) ; ATSlocal (ats_int_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_bool_type, tmp92) ; // ATSlocal_void (tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err: tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2Var_occurcheck_s2exp (arg3, tmp85) ; tmp88 = ats_select_mac(tmp87, atslab_0) ; tmp89 = ats_select_mac(tmp87, atslab_1) ; tmp90 = ats_select_mac(tmp87, atslab_2) ; tmp91 = ats_select_mac(tmp87, atslab_3) ; tmp92 = atspre_eq_int_int (tmp88, 0) ; if (tmp92) { /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst (tmp91, arg3) ; /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err_nck (arg0, arg1, arg2, arg3, arg4) ; } else { /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq (arg0, tmp85, tmp86) ; } /* end of [if] */ return /* (tmp84) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 10761(line=583, offs=3) -- 11449(line=622, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err_nck (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_bool_type, tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; // ATSlocal_void (tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err_nck: tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_s2exp_srtck_err (arg0, arg3, tmp95, arg4) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_impred (tmp95) ; if (tmp97) { tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp (tmp95) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_merge_szexp_err (arg0, arg3, tmp99, arg4) ; } else { /* empty */ } /* end of [if] */ tmp101 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp101, atslab_0, tmp95) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link (arg3, tmp101) ; if (tmp97) { tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs (arg3) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lbs_err (arg0, tmp102, arg1, arg4) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs (arg3) ; /* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_ubs_err (arg0, arg1, tmp104, arg4) ; } else { /* empty */ } /* end of [if] */ return /* (tmp94) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err_nck] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 11543(line=628, offs=1) -- 11672(line=636, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_int_type, tmp106) ; // ATSlocal_void (tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve: /* ats_int_type tmp106 ; */ tmp106 = 0 ; /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve_err (arg0, arg1, arg2, (&tmp106)) ; tmp105 = tmp106 ; return (tmp105) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 11738(line=640, offs=3) -- 12819(line=682, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_uint_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_uint_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_uint_type, tmp115) ; ATSlocal (ats_uint_type, tmp116) ; ATSlocal (ats_bool_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_bool_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_int_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve_err: tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2eff_hnfize (arg1) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2eff_hnfize (arg2) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp109)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: __ats_lab_0_2: tmp111 = ats_caselptrlab_mac(anairiats_sum_8, tmp109, atslab_0) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (tmp111) ; if (!tmp112) { goto __ats_lab_1_1 ; } break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: if (((ats_sum_ptr_type)tmp110)->tag != 0) { goto __ats_lab_2_0 ; } __ats_lab_1_2: tmp113 = ats_caselptrlab_mac(anairiats_sum_8, tmp110, atslab_0) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall (tmp113) ; if (!tmp114) { goto __ats_lab_2_0 ; } break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp109)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: if (((ats_sum_ptr_type)tmp110)->tag != 0) { goto __ats_lab_4_1 ; } __ats_lab_2_2: tmp115 = ats_caselptrlab_mac(anairiats_sum_8, tmp109, atslab_0) ; tmp116 = ats_caselptrlab_mac(anairiats_sum_8, tmp110, atslab_0) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_subset (tmp115, tmp116) ; if (!tmp117) { goto __ats_lab_7_2 ; } break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp109)->tag != 1) { goto __ats_lab_4_0 ; } __ats_lab_3_1: if (((ats_sum_ptr_type)tmp110)->tag != 1) { goto __ats_lab_4_1 ; } __ats_lab_3_2: tmp118 = ats_caselptrlab_mac(anairiats_sum_9, tmp109, atslab_0) ; tmp119 = ats_caselptrlab_mac(anairiats_sum_9, tmp110, atslab_0) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq (tmp118, tmp119) ; if (!tmp120) { goto __ats_lab_4_2 ; } break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: if (((ats_sum_ptr_type)tmp110)->tag != 1) { goto __ats_lab_7_1 ; } __ats_lab_4_2: tmp121 = ats_caselptrlab_mac(anairiats_sum_9, tmp110, atslab_0) ; tmp122 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp121), atslab_s2exp_node) ; do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp122)->tag != 8) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_9, tmp122, atslab_0) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff (tmp109) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp124) ; tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp121) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err (arg0, tmp125, tmp126, tmp123, arg3) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp127 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp127 ; tmp128 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp128)->tag = 6 ; ats_selptrset_mac(anairiats_sum_3, tmp128, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp128, atslab_1, tmp109) ; ats_selptrset_mac(anairiats_sum_3, tmp128, atslab_2, tmp110) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp128) ; break ; } while (0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: __ats_lab_7_2: tmp129 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp129 ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp130)->tag = 6 ; ats_selptrset_mac(anairiats_sum_3, tmp130, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp130, atslab_1, tmp109) ; ats_selptrset_mac(anairiats_sum_3, tmp130, atslab_2, tmp110) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp130) ; break ; } while (0) ; return /* (tmp108) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 12904(line=688, offs=1) -- 13034(line=697, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp131) ; ATSlocal (ats_int_type, tmp132) ; // ATSlocal_void (tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve: /* ats_int_type tmp132 ; */ tmp132 = 0 ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve_err (arg0, arg1, arg2, (&tmp132)) ; tmp131 = tmp132 ; return (tmp131) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 13097(line=701, offs=1) -- 13227(line=710, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp134) ; ATSlocal (ats_int_type, tmp135) ; // ATSlocal_void (tmp136) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve: /* ats_int_type tmp135 ; */ tmp135 = 0 ; /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, arg1, arg2, (&tmp135)) ; tmp134 = tmp135 ; return (tmp134) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 13454(line=725, offs=1) -- 13917(line=753, offs=4) */ ATSstaticdec() ats_void_type aux_solve_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; // ATSlocal_void (tmp147) ; __ats_lab_aux_solve_23: tmp141 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_node) ; tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_s2exp_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp141)->tag != 17) { goto __ats_lab_9_0 ; } __ats_lab_8_1: if (((ats_sum_ptr_type)tmp142)->tag != 17) { goto __ats_lab_9_1 ; } __ats_lab_8_2: tmp143 = ats_caselptrlab_mac(anairiats_sum_10, tmp141, atslab_0) ; tmp144 = ats_caselptrlab_mac(anairiats_sum_10, tmp141, atslab_1) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_10, tmp142, atslab_0) ; tmp146 = ats_caselptrlab_mac(anairiats_sum_10, tmp142, atslab_1) ; /* tmp147 = */ aux_solve_23 (arg0, tmp143, tmp145, arg3) ; /* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_equal_solve_err (arg0, tmp144, tmp146, arg3) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: __ats_lab_9_2: break ; } while (0) ; return /* (tmp140) */ ; } /* end of [aux_solve_23] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 13947(line=756, offs=1) -- 14260(line=775, offs=4) */ ATSstaticdec() ats_bool_type aux_check_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; __ats_lab_aux_check_24: tmp149 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_node) ; tmp150 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp149)->tag != 4) { goto __ats_lab_11_0 ; } __ats_lab_10_1: if (((ats_sum_ptr_type)tmp150)->tag != 4) { goto __ats_lab_12_1 ; } __ats_lab_10_2: tmp151 = ats_caselptrlab_mac(anairiats_sum_9, tmp149, atslab_0) ; tmp152 = ats_caselptrlab_mac(anairiats_sum_9, tmp150, atslab_0) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (tmp151, tmp152) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp149)->tag != 17) { goto __ats_lab_12_0 ; } __ats_lab_11_1: if (((ats_sum_ptr_type)tmp150)->tag != 17) { goto __ats_lab_12_1 ; } __ats_lab_11_2: tmp153 = ats_caselptrlab_mac(anairiats_sum_10, tmp149, atslab_0) ; tmp154 = ats_caselptrlab_mac(anairiats_sum_10, tmp150, atslab_0) ; arg0 = tmp153 ; arg1 = tmp154 ; goto __ats_lab_aux_check_24 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: __ats_lab_12_2: tmp148 = ats_false_bool ; break ; } while (0) ; return (tmp148) ; } /* end of [aux_check_24] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 13287(line=715, offs=1) -- 14412(line=784, offs=4) */ ATSstaticdec() ats_void_type s2hnf_equal_solve_abscon_err_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_bool_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; __ats_lab_s2hnf_equal_solve_abscon_err_22: tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp155 = aux_check_24 (tmp138, tmp139) ; if (tmp155) { /* tmp137 = */ aux_solve_23 (arg0, tmp138, tmp139, arg3) ; } else { tmp156 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp156 ; } /* end of [if] */ return /* (tmp137) */ ; } /* end of [s2hnf_equal_solve_abscon_err_22] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 14508(line=790, offs=1) -- 18472(line=958, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp157) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; // ATSlocal_void (tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_bool_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_bool_type, tmp174) ; ATSlocal (ats_int_type, tmp175) ; ATSlocal (ats_int_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_int_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_bool_type, tmp180) ; ATSlocal (ats_int_type, tmp181) ; ATSlocal (ats_int_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; // ATSlocal_void (tmp187) ; ATSlocal (ats_int_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; // ATSlocal_void (tmp193) ; ATSlocal (ats_int_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_int_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; ATSlocal (ats_bool_type, tmp203) ; ATSlocal (ats_int_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_int_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; // ATSlocal_void (tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_bool_type, tmp214) ; ATSlocal (ats_bool_type, tmp215) ; ATSlocal (ats_bool_type, tmp216) ; ATSlocal (ats_bool_type, tmp217) ; ATSlocal (ats_bool_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve_err: tmp158 = ats_ptrget_mac(ats_int_type, arg3) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp161 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp159), atslab_s2exp_node) ; tmp162 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp160), atslab_s2exp_node) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp161)->tag != 26) { goto __ats_lab_14_0 ; } __ats_lab_13_1: __ats_lab_13_2: tmp164 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_0) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp164) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve_err (arg0, tmp165, arg2, arg3) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: if (((ats_sum_ptr_type)tmp162)->tag != 26) { goto __ats_lab_15_0 ; } __ats_lab_14_2: tmp166 = ats_caselptrlab_mac(anairiats_sum_9, tmp162, atslab_0) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp166) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve_err (arg0, arg1, tmp167, arg3) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp161)->tag != 8) { goto __ats_lab_18_0 ; } __ats_lab_15_1: __ats_lab_15_2: tmp168 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_0) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp162)->tag != 8) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_9, tmp162, atslab_0) ; tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var (tmp168, tmp169) ; if (!tmp170) { goto __ats_lab_17_1 ; } break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_lVar_err (arg0, arg1, arg2, tmp168, arg3) ; break ; } while (0) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: if (((ats_sum_ptr_type)tmp162)->tag != 8) { goto __ats_lab_19_0 ; } __ats_lab_18_2: tmp171 = ats_caselptrlab_mac(anairiats_sum_9, tmp162, atslab_0) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err (arg0, arg1, arg2, tmp171, arg3) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp161)->tag != 4) { goto __ats_lab_22_0 ; } __ats_lab_19_1: __ats_lab_19_2: tmp172 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_0) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp162)->tag != 4) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_9, tmp162, atslab_0) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst (tmp172, tmp173) ; if (tmp174) { tmp175 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp175 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq (arg0, tmp159, tmp160) ; break ; } while (0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp161)->tag != 22) { goto __ats_lab_25_0 ; } __ats_lab_22_1: __ats_lab_22_2: tmp176 = ats_caselptrlab_mac(anairiats_sum_11, tmp161, atslab_0) ; tmp177 = ats_caselptrlab_mac(anairiats_sum_11, tmp161, atslab_1) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp162)->tag != 22) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_11, tmp162, atslab_0) ; tmp179 = ats_caselptrlab_mac(anairiats_sum_11, tmp162, atslab_1) ; tmp180 = atspre_gte_int_int (tmp176, tmp178) ; if (tmp180) { /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp177, tmp179, arg3) ; } else { tmp181 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp181 ; } /* end of [if] */ break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp182 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp182 ; break ; } while (0) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp161)->tag != 12) { goto __ats_lab_28_0 ; } __ats_lab_25_1: __ats_lab_25_2: tmp183 = ats_caselptrlab_mac(anairiats_sum_10, tmp161, atslab_0) ; tmp184 = ats_caselptrlab_mac(anairiats_sum_10, tmp161, atslab_1) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp162)->tag != 12) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp185 = ats_caselptrlab_mac(anairiats_sum_10, tmp162, atslab_0) ; tmp186 = ats_caselptrlab_mac(anairiats_sum_10, tmp162, atslab_1) ; /* tmp187 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp183, tmp185, arg3) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp184, tmp186, arg3) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp188 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp188 ; break ; } while (0) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp161)->tag != 24) { goto __ats_lab_31_0 ; } __ats_lab_28_1: __ats_lab_28_2: tmp189 = ats_caselptrlab_mac(anairiats_sum_10, tmp161, atslab_0) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_10, tmp161, atslab_1) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp162)->tag != 24) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_10, tmp162, atslab_0) ; tmp192 = ats_caselptrlab_mac(anairiats_sum_10, tmp162, atslab_1) ; /* tmp193 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp189, tmp191, arg3) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_equal_solve_err (arg0, tmp190, tmp192, arg3) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp194 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp194 ; break ; } while (0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp161)->tag != 25) { goto __ats_lab_34_0 ; } __ats_lab_31_1: __ats_lab_31_2: tmp195 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_1) ; tmp197 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_2) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp162)->tag != 25) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp198 = ats_caselptrlab_mac(anairiats_sum_5, tmp162, atslab_0) ; tmp199 = ats_caselptrlab_mac(anairiats_sum_5, tmp162, atslab_1) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_5, tmp162, atslab_2) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__tyreckind_equal_solve_err (arg0, tmp195, tmp198, arg3) ; /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err (arg0, tmp196, tmp199, arg3) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_nameless (tmp195) ; if (tmp203) { /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_equal_solve_err (arg0, tmp197, tmp200, arg3) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp204 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp204 ; break ; } while (0) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp161)->tag != 30) { goto __ats_lab_37_0 ; } __ats_lab_34_1: __ats_lab_34_2: tmp205 = ats_caselptrlab_mac(anairiats_sum_9, tmp161, atslab_0) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp162)->tag != 30) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_9, tmp162, atslab_0) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp205, tmp206, arg3) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp207 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp207 ; break ; } while (0) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp161)->tag != 31) { goto __ats_lab_40_0 ; } __ats_lab_37_1: __ats_lab_37_2: tmp208 = ats_caselptrlab_mac(anairiats_sum_10, tmp161, atslab_0) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_10, tmp161, atslab_1) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp162)->tag != 31) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_10, tmp162, atslab_0) ; tmp211 = ats_caselptrlab_mac(anairiats_sum_10, tmp162, atslab_1) ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp208, tmp210, arg3) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_equal_solve_err (arg0, tmp209, tmp211, arg3) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp213 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp213 ; break ; } while (0) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: __ats_lab_40_2: tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_is_abscon (arg1) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_is_abscon (arg2) ; tmp214 = atspre_mul_bool_bool (tmp215, tmp216) ; if (!tmp214) { goto __ats_lab_41_2 ; } /* tmp163 = */ s2hnf_equal_solve_abscon_err_22 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: __ats_lab_41_2: tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq2 (arg1, arg2) ; if (!tmp217) { goto __ats_lab_42_2 ; } break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: __ats_lab_42_2: /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq (arg0, tmp159, tmp160) ; break ; } while (0) ; tmp218 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg3), tmp158) ; if (tmp218) { tmp219 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp219)->tag = 11 ; ats_selptrset_mac(anairiats_sum_3, tmp219, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp219, atslab_1, tmp159) ; ats_selptrset_mac(anairiats_sum_3, tmp219, atslab_2, tmp160) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp219) ; } else { /* empty */ } /* end of [if] */ return /* (tmp157) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 18540(line=962, offs=1) -- 18697(line=971, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err: tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg2) ; /* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_equal_solve_err (arg0, tmp221, tmp222, arg3) ; return /* (tmp220) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 18832(line=981, offs=5) -- 19289(line=1004, offs=2) */ ATSstaticdec() ats_int_type loop_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; // ATSlocal_void (tmp229) ; __ats_lab_loop_28: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_43_1: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp224 = 0 ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp224 = -1 ; break ; } while (0) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp225 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp224 = 1 ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_0) ; tmp228 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; /* tmp229 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp225, tmp227, arg3) ; arg0 = arg0 ; arg1 = tmp226 ; arg2 = tmp228 ; arg3 = arg3 ; goto __ats_lab_loop_28 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp224) ; } /* end of [loop_28] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 18789(line=977, offs=1) -- 19565(line=1023, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_equal_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp223) ; ATSlocal (ats_int_type, tmp230) ; ATSlocal (ats_bool_type, tmp231) ; ATSlocal (ats_int_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_equal_solve_err: tmp230 = loop_28 (arg0, arg1, arg2, arg3) ; tmp231 = atspre_neq_int_int (tmp230, 0) ; if (tmp231) { tmp232 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp232 ; tmp233 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp233)->tag = 14 ; ats_selptrset_mac(anairiats_sum_13, tmp233, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_13, tmp233, atslab_1, tmp230) ; /* tmp223 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp233) ; } else { /* empty */ } /* end of [if] */ return /* (tmp223) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 19708(line=1034, offs=1) -- 20299(line=1058, offs=4) */ ATSstaticdec() ats_int_type loop_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; __ats_lab_loop_30: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_49_1: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp235 = 0 ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp235 = -1 ; break ; } while (0) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp236 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp237 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp235 = 1 ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp238 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_0) ; tmp239 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; tmp240 = ats_caselptrlab_mac(anairiats_sum_14, tmp236, atslab_0) ; tmp241 = ats_caselptrlab_mac(anairiats_sum_14, tmp236, atslab_2) ; tmp242 = ats_caselptrlab_mac(anairiats_sum_14, tmp238, atslab_0) ; tmp243 = ats_caselptrlab_mac(anairiats_sum_14, tmp238, atslab_2) ; /* tmp244 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__label_equal_solve_err (arg0, tmp240, tmp242, arg3) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp241, tmp243, arg3) ; arg0 = arg0 ; arg1 = tmp237 ; arg2 = tmp239 ; arg3 = arg3 ; goto __ats_lab_loop_30 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp235) ; } /* end of [loop_30] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 19663(line=1029, offs=1) -- 20594(line=1077, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_equal_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp234) ; ATSlocal (ats_int_type, tmp246) ; ATSlocal (ats_bool_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_equal_solve_err: tmp246 = loop_30 (arg0, arg1, arg2, arg3) ; tmp247 = atspre_neq_int_int (tmp246, 0) ; if (tmp247) { tmp248 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp248 ; tmp249 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp249)->tag = 15 ; ats_selptrset_mac(anairiats_sum_13, tmp249, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_13, tmp249, atslab_1, tmp246) ; /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp249) ; } else { /* empty */ } /* end of [if] */ return /* (tmp234) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 20734(line=1087, offs=5) -- 21591(line=1121, offs=4) */ ATSstaticdec() ats_int_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp251) ; ATSlocal (ats_int_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_int_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_int_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_int_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; // ATSlocal_void (tmp266) ; // ATSlocal_void (tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_int_type, tmp270) ; __ats_lab_loop_32: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_56_0 ; } __ats_lab_55_1: if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_59_1 ; } __ats_lab_55_2: tmp252 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp254 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_2) ; tmp255 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp256 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp257 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_2) ; /* tmp258 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err (arg0, tmp252, tmp255, arg3) ; /* tmp259 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp253, tmp256, arg3) ; arg0 = arg0 ; arg1 = tmp254 ; arg2 = tmp257 ; arg3 = arg3 ; goto __ats_lab_loop_32 ; // tail call break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_57_0 ; } __ats_lab_56_1: if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_59_1 ; } __ats_lab_56_2: tmp260 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp262 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_2) ; tmp263 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp264 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp265 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_2) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err (arg0, tmp260, tmp263, arg3) ; /* tmp267 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp261, tmp264, arg3) ; arg0 = arg0 ; arg1 = tmp262 ; arg2 = tmp265 ; arg3 = arg3 ; goto __ats_lab_loop_32 ; // tail call break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_58_0 ; } __ats_lab_57_1: if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_59_1 ; } __ats_lab_57_2: tmp268 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp269 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; arg0 = arg0 ; arg1 = tmp268 ; arg2 = tmp269 ; arg3 = arg3 ; goto __ats_lab_loop_32 ; // tail call break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_59_1 ; } __ats_lab_58_2: tmp251 = 0 ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: __ats_lab_59_2: tmp270 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp270 ; tmp251 = 1 ; break ; } while (0) ; return (tmp251) ; } /* end of [loop_32] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 20695(line=1083, offs=1) -- 21773(line=1132, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_equal_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp250) ; ATSlocal (ats_int_type, tmp271) ; ATSlocal (ats_bool_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_equal_solve_err: tmp271 = loop_32 (arg0, arg1, arg2, arg3) ; tmp272 = atspre_gt_int_int (tmp271, 0) ; if (tmp272) { tmp273 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp273)->tag = 16 ; ats_selptrset_mac(anairiats_sum_3, tmp273, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp273, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp273, atslab_2, arg2) ; /* tmp250 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp273) ; } else { /* empty */ } /* end of [if] */ return /* (tmp250) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_equal_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 22034(line=1146, offs=1) -- 22751(line=1188, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lVar_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; // ATSlocal_void (tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; // ATSlocal_void (tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; // ATSlocal_void (tmp280) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lVar_err: tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; /* tmp276 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_s2exp_srtck_err (arg0, arg3, tmp275, arg4) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp (tmp275) ; /* tmp278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_merge_szexp_err (arg0, arg3, tmp277, arg4) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs (arg3) ; /* tmp280 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lbs_err (arg0, tmp279, arg2, arg4) ; /* tmp274 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_ub_insert (arg0, arg3, tmp275) ; return /* (tmp274) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lVar_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 23011(line=1202, offs=1) -- 23591(line=1235, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_rVar_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; // ATSlocal_void (tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; // ATSlocal_void (tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_rVar_err: tmp282 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_s2exp_srtck_err (arg0, arg3, tmp282, arg4) ; tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2zexp_make_s2exp (tmp282) ; /* tmp285 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2Var_merge_szexp_err (arg0, arg3, tmp284, arg4) ; tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs (arg3) ; /* tmp287 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_ubs_err (arg0, arg1, tmp286, arg4) ; /* tmp281 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_lb_insert (arg0, arg3, tmp282) ; return /* (tmp281) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_rVar_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 23681(line=1241, offs=1) -- 23811(line=1250, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp288) ; ATSlocal (ats_int_type, tmp289) ; // ATSlocal_void (tmp290) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve: /* ats_int_type tmp289 ; */ tmp289 = 0 ; /* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err (arg0, arg1, arg2, (&tmp289)) ; tmp288 = tmp289 ; return (tmp288) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 23871(line=1254, offs=1) -- 24001(line=1263, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp291) ; ATSlocal (ats_int_type, tmp292) ; // ATSlocal_void (tmp293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve: /* ats_int_type tmp292 ; */ tmp292 = 0 ; /* tmp293 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, arg1, arg2, (&tmp292)) ; tmp291 = tmp292 ; return (tmp291) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 24089(line=1269, offs=1) -- 33168(line=1643, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp294) ; ATSlocal (ats_int_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; // ATSlocal_void (tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_int_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_int_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_bool_type, tmp314) ; ATSlocal (ats_int_type, tmp315) ; ATSlocal (ats_int_type, tmp316) ; ATSlocal (ats_int_type, tmp317) ; ATSlocal (ats_bool_type, tmp318) ; ATSlocal (ats_bool_type, tmp319) ; ATSlocal (ats_bool_type, tmp320) ; ATSlocal (ats_int_type, tmp321) ; ATSlocal (ats_int_type, tmp322) ; ATSlocal (ats_int_type, tmp323) ; // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (anairiats_rec_2, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; // ATSlocal_void (tmp330) ; // ATSlocal_void (tmp331) ; // ATSlocal_void (tmp332) ; // ATSlocal_void (tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (anairiats_rec_2, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; // ATSlocal_void (tmp340) ; // ATSlocal_void (tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; // ATSlocal_void (tmp343) ; // ATSlocal_void (tmp344) ; // ATSlocal_void (tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; // ATSlocal_void (tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_bool_type, tmp350) ; ATSlocal (ats_bool_type, tmp351) ; ATSlocal (ats_int_type, tmp352) ; ATSlocal (ats_int_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_bool_type, tmp359) ; ATSlocal (ats_bool_type, tmp360) ; ATSlocal (ats_int_type, tmp361) ; ATSlocal (ats_int_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_bool_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_int_type, tmp372) ; // ATSlocal_void (tmp373) ; ATSlocal (ats_int_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_int_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_int_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_int_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_int_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; // ATSlocal_void (tmp387) ; // ATSlocal_void (tmp388) ; // ATSlocal_void (tmp389) ; // ATSlocal_void (tmp390) ; // ATSlocal_void (tmp391) ; ATSlocal (ats_int_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; // ATSlocal_void (tmp397) ; ATSlocal (ats_int_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; // ATSlocal_void (tmp403) ; ATSlocal (ats_int_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_int_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_int_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; // ATSlocal_void (tmp411) ; // ATSlocal_void (tmp412) ; ATSlocal (ats_int_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_bool_type, tmp420) ; // ATSlocal_void (tmp421) ; ATSlocal (ats_int_type, tmp422) ; ATSlocal (ats_int_type, tmp423) ; ATSlocal (ats_int_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_int_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; // ATSlocal_void (tmp428) ; ATSlocal (ats_int_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_int_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; // ATSlocal_void (tmp437) ; ATSlocal (ats_int_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_bool_type, tmp441) ; ATSlocal (ats_bool_type, tmp442) ; ATSlocal (ats_int_type, tmp443) ; ATSlocal (ats_int_type, tmp444) ; ATSlocal (ats_bool_type, tmp445) ; ATSlocal (ats_int_type, tmp446) ; ATSlocal (ats_bool_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err: tmp295 = ats_ptrget_mac(ats_int_type, arg3) ; tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp298 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp296), atslab_s2exp_node) ; tmp299 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp297), atslab_s2exp_node) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp298)->tag != 26) { goto __ats_lab_61_0 ; } __ats_lab_60_1: __ats_lab_60_2: tmp301 = ats_caselptrlab_mac(anairiats_sum_9, tmp298, atslab_0) ; tmp302 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp301) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err (arg0, tmp302, arg2, arg3) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: __ats_lab_61_1: if (((ats_sum_ptr_type)tmp299)->tag != 26) { goto __ats_lab_64_1 ; } __ats_lab_61_2: tmp303 = ats_caselptrlab_mac(anairiats_sum_9, tmp299, atslab_0) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp303) ; tmp305 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp304) ; tmp306 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp305), atslab_s2exp_node) ; do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp306)->tag != 8) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp307 = ats_caselptrlab_mac(anairiats_sum_9, tmp306, atslab_0) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_equal_solve_rVar_err (arg0, arg1, tmp304, tmp307, arg3) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err (arg0, arg1, tmp304, arg3) ; break ; } while (0) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: __ats_lab_64_1: if (((ats_sum_ptr_type)tmp299)->tag != 8) { goto __ats_lab_65_0 ; } __ats_lab_64_2: tmp308 = ats_caselptrlab_mac(anairiats_sum_9, tmp299, atslab_0) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_rVar_err (arg0, arg1, arg2, tmp308, arg3) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp298)->tag != 8) { goto __ats_lab_66_0 ; } __ats_lab_65_1: __ats_lab_65_2: tmp309 = ats_caselptrlab_mac(anairiats_sum_9, tmp298, atslab_0) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lVar_err (arg0, arg1, arg2, tmp309, arg3) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp298)->tag != 22) { goto __ats_lab_69_0 ; } __ats_lab_66_1: __ats_lab_66_2: tmp310 = ats_caselptrlab_mac(anairiats_sum_11, tmp298, atslab_0) ; tmp311 = ats_caselptrlab_mac(anairiats_sum_11, tmp298, atslab_1) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp299)->tag != 22) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp312 = ats_caselptrlab_mac(anairiats_sum_11, tmp299, atslab_0) ; tmp313 = ats_caselptrlab_mac(anairiats_sum_11, tmp299, atslab_1) ; tmp314 = atspre_lt_int_int (tmp310, tmp312) ; if (tmp314) { tmp315 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp315 ; } else { /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp311, tmp313, arg3) ; } /* end of [if] */ break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: tmp316 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp316 ; break ; } while (0) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: __ats_lab_69_1: if (((ats_sum_ptr_type)tmp299)->tag != 22) { goto __ats_lab_72_0 ; } __ats_lab_69_2: tmp317 = ats_caselptrlab_mac(anairiats_sum_11, tmp299, atslab_0) ; do { /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp318 = atspre_eq_int_int (tmp317, 0) ; if (!tmp318) { goto __ats_lab_71_1 ; } tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin (tmp296) ; if (tmp319) { tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq (tmp296, tmp297) ; if (tmp320) { /* empty */ } else { tmp321 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp321 ; } /* end of [if] */ } else { tmp322 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp322 ; } /* end of [if] */ break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: __ats_lab_71_1: tmp323 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp323 ; break ; } while (0) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp298)->tag != 28) { goto __ats_lab_73_0 ; } __ats_lab_72_1: __ats_lab_72_2: /* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp325 = ats_selsin_mac(tmp324, atslab_1) */ ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_absuni_and_add (arg0, arg2) ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all (tmp296, arg0, arg3) ; tmp328 = ats_select_mac(tmp327, atslab_0) ; tmp329 = ats_select_mac(tmp327, atslab_1) ; /* tmp330 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp329) ; /* tmp331 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp328, tmp326, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (arg0) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: if (((ats_sum_ptr_type)tmp299)->tag != 27) { goto __ats_lab_74_1 ; } __ats_lab_73_2: /* tmp332 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp333 = ats_selsin_mac(tmp332, atslab_1) */ ; tmp334 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (arg0, arg1) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all (tmp297, arg0, arg3) ; tmp336 = ats_select_mac(tmp335, atslab_0) ; tmp337 = ats_select_mac(tmp335, atslab_1) ; /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp337) ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp334, tmp336, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (arg0) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: __ats_lab_74_1: if (((ats_sum_ptr_type)tmp299)->tag != 28) { goto __ats_lab_75_0 ; } __ats_lab_74_2: /* tmp340 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp341 = ats_selsin_mac(tmp340, atslab_1) */ ; tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_absuni_and_add (arg0, arg2) ; /* tmp343 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp296, tmp342, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (arg0) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp298)->tag != 27) { goto __ats_lab_76_0 ; } __ats_lab_75_1: __ats_lab_75_2: /* tmp344 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp345 = ats_selsin_mac(tmp344, atslab_1) */ ; tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (arg0, arg1) ; /* tmp347 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp346, tmp297, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (arg0) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp298)->tag != 4) { goto __ats_lab_79_0 ; } __ats_lab_76_1: __ats_lab_76_2: tmp348 = ats_caselptrlab_mac(anairiats_sum_9, tmp298, atslab_0) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp299)->tag != 4) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp349 = ats_caselptrlab_mac(anairiats_sum_9, tmp299, atslab_0) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq (tmp348, tmp349) ; tmp351 = atspre_neg_bool (tmp350) ; if (tmp351) { tmp352 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp352 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: __ats_lab_78_1: tmp353 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp353 ; break ; } while (0) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp298)->tag != 17) { goto __ats_lab_87_0 ; } __ats_lab_79_1: __ats_lab_79_2: tmp354 = ats_caselptrlab_mac(anairiats_sum_10, tmp298, atslab_0) ; tmp355 = ats_caselptrlab_mac(anairiats_sum_10, tmp298, atslab_1) ; do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp299)->tag != 4) { goto __ats_lab_83_0 ; } __ats_lab_80_1: tmp356 = ats_caselptrlab_mac(anairiats_sum_9, tmp299, atslab_0) ; tmp357 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp354), atslab_s2exp_node) ; do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp357)->tag != 4) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp358 = ats_caselptrlab_mac(anairiats_sum_9, tmp357, atslab_0) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq (tmp358, tmp356) ; tmp360 = atspre_neg_bool (tmp359) ; if (tmp360) { tmp361 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp361 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: __ats_lab_82_1: tmp362 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp362 ; break ; } while (0) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp299)->tag != 17) { goto __ats_lab_86_0 ; } __ats_lab_83_1: tmp363 = ats_caselptrlab_mac(anairiats_sum_10, tmp299, atslab_0) ; tmp364 = ats_caselptrlab_mac(anairiats_sum_10, tmp299, atslab_1) ; tmp365 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp354), atslab_s2exp_node) ; tmp366 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp363), atslab_s2exp_node) ; do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp365)->tag != 4) { goto __ats_lab_85_0 ; } __ats_lab_84_1: if (((ats_sum_ptr_type)tmp366)->tag != 4) { goto __ats_lab_85_1 ; } __ats_lab_84_2: tmp367 = ats_caselptrlab_mac(anairiats_sum_9, tmp365, atslab_0) ; tmp368 = ats_caselptrlab_mac(anairiats_sum_9, tmp366, atslab_0) ; tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq (tmp367, tmp368) ; if (tmp369) { tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_argsrtss (tmp367) ; if (tmp370 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 28711(line=1475, offs=11) -- 28769(line=1476, offs=35)") ; } tmp371 = ats_caselptrlab_mac(anairiats_sum_12, tmp370, atslab_0) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_argsrtlst_err (arg0, tmp371, tmp355, tmp364, arg3) ; } else { tmp372 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp372 ; } /* end of [if] */ break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: __ats_lab_85_1: __ats_lab_85_2: /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp354, tmp363, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_equal_solve_err (arg0, tmp355, tmp364, arg3) ; break ; } while (0) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: __ats_lab_86_1: tmp374 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp374 ; break ; } while (0) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp298)->tag != 19) { goto __ats_lab_90_0 ; } __ats_lab_87_1: __ats_lab_87_2: tmp375 = ats_caselptrlab_mac(anairiats_sum_16, tmp298, atslab_0) ; tmp376 = ats_caselptrlab_mac(anairiats_sum_16, tmp298, atslab_1) ; tmp377 = ats_caselptrlab_mac(anairiats_sum_16, tmp298, atslab_2) ; tmp378 = ats_caselptrlab_mac(anairiats_sum_16, tmp298, atslab_3) ; tmp379 = ats_caselptrlab_mac(anairiats_sum_16, tmp298, atslab_4) ; tmp380 = ats_caselptrlab_mac(anairiats_sum_16, tmp298, atslab_5) ; do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp299)->tag != 19) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp381 = ats_caselptrlab_mac(anairiats_sum_16, tmp299, atslab_0) ; tmp382 = ats_caselptrlab_mac(anairiats_sum_16, tmp299, atslab_1) ; tmp383 = ats_caselptrlab_mac(anairiats_sum_16, tmp299, atslab_2) ; tmp384 = ats_caselptrlab_mac(anairiats_sum_16, tmp299, atslab_3) ; tmp385 = ats_caselptrlab_mac(anairiats_sum_16, tmp299, atslab_4) ; tmp386 = ats_caselptrlab_mac(anairiats_sum_16, tmp299, atslab_5) ; /* tmp387 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve_err (arg0, tmp375, tmp381, arg3) ; /* tmp388 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err (arg0, tmp378, tmp384, arg3) ; /* tmp389 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve_err (arg0, tmp376, tmp382, arg3) ; /* tmp390 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve_err (arg0, tmp377, tmp383, arg3) ; /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp380, tmp386, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_err (arg0, tmp385, tmp379, arg3) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: __ats_lab_89_1: tmp392 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp392 ; break ; } while (0) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp298)->tag != 12) { goto __ats_lab_93_0 ; } __ats_lab_90_1: __ats_lab_90_2: tmp393 = ats_caselptrlab_mac(anairiats_sum_10, tmp298, atslab_0) ; tmp394 = ats_caselptrlab_mac(anairiats_sum_10, tmp298, atslab_1) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp299)->tag != 12) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp395 = ats_caselptrlab_mac(anairiats_sum_10, tmp299, atslab_0) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_10, tmp299, atslab_1) ; /* tmp397 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp393, tmp395, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp394, tmp396, arg3) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: __ats_lab_92_1: tmp398 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp398 ; break ; } while (0) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp298)->tag != 24) { goto __ats_lab_96_0 ; } __ats_lab_93_1: __ats_lab_93_2: tmp399 = ats_caselptrlab_mac(anairiats_sum_10, tmp298, atslab_0) ; tmp400 = ats_caselptrlab_mac(anairiats_sum_10, tmp298, atslab_1) ; do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp299)->tag != 24) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp401 = ats_caselptrlab_mac(anairiats_sum_10, tmp299, atslab_0) ; tmp402 = ats_caselptrlab_mac(anairiats_sum_10, tmp299, atslab_1) ; /* tmp403 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp399, tmp401, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_equal_solve_err (arg0, tmp400, tmp402, arg3) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: __ats_lab_95_1: tmp404 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp404 ; break ; } while (0) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp298)->tag != 25) { goto __ats_lab_99_0 ; } __ats_lab_96_1: __ats_lab_96_2: tmp405 = ats_caselptrlab_mac(anairiats_sum_5, tmp298, atslab_0) ; tmp406 = ats_caselptrlab_mac(anairiats_sum_5, tmp298, atslab_1) ; tmp407 = ats_caselptrlab_mac(anairiats_sum_5, tmp298, atslab_2) ; do { /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp299)->tag != 25) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp408 = ats_caselptrlab_mac(anairiats_sum_5, tmp299, atslab_0) ; tmp409 = ats_caselptrlab_mac(anairiats_sum_5, tmp299, atslab_1) ; tmp410 = ats_caselptrlab_mac(anairiats_sum_5, tmp299, atslab_2) ; /* tmp411 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__tyreckind_equal_solve_err (arg0, tmp405, tmp408, arg3) ; /* tmp412 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err (arg0, tmp406, tmp409, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_tyleq_solve_err (arg0, tmp407, tmp410, arg3) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: __ats_lab_98_1: tmp413 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp413 ; break ; } while (0) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp298)->tag != 11) { goto __ats_lab_102_0 ; } __ats_lab_99_1: __ats_lab_99_2: tmp414 = ats_caselptrlab_mac(anairiats_sum_3, tmp298, atslab_0) ; tmp415 = ats_caselptrlab_mac(anairiats_sum_3, tmp298, atslab_1) ; tmp416 = ats_caselptrlab_mac(anairiats_sum_3, tmp298, atslab_2) ; do { /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp299)->tag != 11) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp417 = ats_caselptrlab_mac(anairiats_sum_3, tmp299, atslab_0) ; tmp418 = ats_caselptrlab_mac(anairiats_sum_3, tmp299, atslab_1) ; tmp419 = ats_caselptrlab_mac(anairiats_sum_3, tmp299, atslab_2) ; tmp420 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp414, tmp417) ; if (tmp420) { /* tmp421 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp415, tmp418, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_equal_solve_err (arg0, tmp416, tmp419, arg3) ; } else { tmp422 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp422 ; } /* end of [if] */ break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: __ats_lab_101_1: tmp423 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp423 ; break ; } while (0) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp298)->tag != 29) { goto __ats_lab_105_0 ; } __ats_lab_102_1: __ats_lab_102_2: tmp424 = ats_caselptrlab_mac(anairiats_sum_11, tmp298, atslab_0) ; tmp425 = ats_caselptrlab_mac(anairiats_sum_11, tmp298, atslab_1) ; do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp299)->tag != 29) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp426 = ats_caselptrlab_mac(anairiats_sum_11, tmp299, atslab_0) ; tmp427 = ats_caselptrlab_mac(anairiats_sum_11, tmp299, atslab_1) ; /* tmp428 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err (arg0, tmp424, tmp426, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp425, tmp427, arg3) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: __ats_lab_104_1: tmp429 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp429 ; break ; } while (0) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp298)->tag != 30) { goto __ats_lab_108_0 ; } __ats_lab_105_1: __ats_lab_105_2: tmp430 = ats_caselptrlab_mac(anairiats_sum_9, tmp298, atslab_0) ; do { /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp299)->tag != 30) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp431 = ats_caselptrlab_mac(anairiats_sum_9, tmp299, atslab_0) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp430, tmp431, arg3) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: __ats_lab_107_1: tmp432 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp432 ; break ; } while (0) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp298)->tag != 31) { goto __ats_lab_111_0 ; } __ats_lab_108_1: __ats_lab_108_2: tmp433 = ats_caselptrlab_mac(anairiats_sum_10, tmp298, atslab_0) ; tmp434 = ats_caselptrlab_mac(anairiats_sum_10, tmp298, atslab_1) ; do { /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp299)->tag != 31) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp435 = ats_caselptrlab_mac(anairiats_sum_10, tmp299, atslab_0) ; tmp436 = ats_caselptrlab_mac(anairiats_sum_10, tmp299, atslab_1) ; /* tmp437 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp433, tmp435, arg3) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_tyleq_solve_err (arg0, tmp434, tmp436, arg3) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: __ats_lab_110_1: tmp438 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp438 ; break ; } while (0) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp298)->tag != 23) { goto __ats_lab_114_0 ; } __ats_lab_111_1: __ats_lab_111_2: tmp439 = ats_caselptrlab_mac(anairiats_sum_9, tmp298, atslab_0) ; do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp299)->tag != 23) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp440 = ats_caselptrlab_mac(anairiats_sum_9, tmp299, atslab_0) ; tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq (tmp439, tmp440) ; tmp441 = atspre_neg_bool (tmp442) ; if (tmp441) { tmp443 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp443 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: __ats_lab_113_1: tmp444 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp444 ; break ; } while (0) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: __ats_lab_114_1: __ats_lab_114_2: tmp445 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq2 (arg1, arg2) ; if (!tmp445) { goto __ats_lab_115_2 ; } break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: __ats_lab_115_1: __ats_lab_115_2: tmp446 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp446 ; break ; } while (0) ; tmp447 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg3), tmp295) ; if (tmp447) { tmp448 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp448)->tag = 12 ; ats_selptrset_mac(anairiats_sum_3, tmp448, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp448, atslab_1, tmp296) ; ats_selptrset_mac(anairiats_sum_3, tmp448, atslab_2, tmp297) ; /* tmp294 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp448) ; } else { /* empty */ } /* end of [if] */ return /* (tmp294) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 33236(line=1647, offs=1) -- 33406(line=1655, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err: tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp451 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg2) ; /* tmp449 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err (arg0, tmp450, tmp451, arg3) ; return /* (tmp449) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 33541(line=1666, offs=1) -- 34039(line=1690, offs=2) */ ATSstaticdec() ats_int_type loop_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; // ATSlocal_void (tmp458) ; __ats_lab_loop_40: do { /* branch: __ats_lab_116 */ __ats_lab_116_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_119_0 ; } __ats_lab_116_1: do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp453 = 0 ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_118_1: tmp453 = -1 ; break ; } while (0) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_119_1: tmp454 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp455 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; do { /* branch: __ats_lab_120 */ __ats_lab_120_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp453 = 1 ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_121_1: tmp456 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_0) ; tmp457 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; /* tmp458 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp454, tmp456, arg3) ; arg0 = arg0 ; arg1 = tmp455 ; arg2 = tmp457 ; arg3 = arg3 ; goto __ats_lab_loop_40 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp453) ; } /* end of [loop_40] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 33498(line=1661, offs=1) -- 34296(line=1711, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp452) ; ATSlocal (ats_int_type, tmp459) ; ATSlocal (ats_bool_type, tmp460) ; ATSlocal (ats_int_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_err: tmp459 = loop_40 (arg0, arg1, arg2, arg3) ; tmp460 = atspre_neq_int_int (tmp459, 0) ; if (tmp460) { tmp461 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp461 ; tmp462 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp462)->tag = 14 ; ats_selptrset_mac(anairiats_sum_13, tmp462, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_13, tmp462, atslab_1, tmp459) ; /* tmp452 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp462) ; } else { /* empty */ } /* end of [if] */ return /* (tmp452) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 34439(line=1721, offs=5) -- 35055(line=1746, offs=2) */ ATSstaticdec() ats_int_type loop_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; // ATSlocal_void (tmp473) ; // ATSlocal_void (tmp474) ; __ats_lab_loop_42: do { /* branch: __ats_lab_122 */ __ats_lab_122_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_125_0 ; } __ats_lab_122_1: do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp464 = 0 ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_124_1: tmp464 = -1 ; break ; } while (0) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_125_1: tmp465 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp466 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; do { /* branch: __ats_lab_126 */ __ats_lab_126_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp464 = 1 ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_127_1: tmp467 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_0) ; tmp468 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; tmp469 = ats_caselptrlab_mac(anairiats_sum_14, tmp465, atslab_0) ; tmp470 = ats_caselptrlab_mac(anairiats_sum_14, tmp465, atslab_2) ; tmp471 = ats_caselptrlab_mac(anairiats_sum_14, tmp467, atslab_0) ; tmp472 = ats_caselptrlab_mac(anairiats_sum_14, tmp467, atslab_2) ; /* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__label_equal_solve_err (arg0, tmp469, tmp471, arg3) ; /* tmp474 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp470, tmp472, arg3) ; arg0 = arg0 ; arg1 = tmp466 ; arg2 = tmp468 ; arg3 = arg3 ; goto __ats_lab_loop_42 ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp464) ; } /* end of [loop_42] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 34394(line=1717, offs=1) -- 35311(line=1764, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_tyleq_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp463) ; ATSlocal (ats_int_type, tmp475) ; ATSlocal (ats_bool_type, tmp476) ; ATSlocal (ats_int_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_tyleq_solve_err: tmp475 = loop_42 (arg0, arg1, arg2, arg3) ; tmp476 = atspre_neq_int_int (tmp475, 0) ; if (tmp476) { tmp477 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp477 ; tmp478 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp478)->tag = 15 ; ats_selptrset_mac(anairiats_sum_13, tmp478, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_13, tmp478, atslab_1, tmp475) ; /* tmp463 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp478) ; } else { /* empty */ } /* end of [if] */ return /* (tmp463) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__labs2explst_tyleq_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 35451(line=1775, offs=1) -- 36574(line=1821, offs=4) */ ATSstaticdec() ats_int_type loop_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp480) ; ATSlocal (ats_int_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_int_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; // ATSlocal_void (tmp487) ; // ATSlocal_void (tmp488) ; ATSlocal (ats_int_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_int_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; // ATSlocal_void (tmp495) ; // ATSlocal_void (tmp496) ; ATSlocal (ats_int_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_int_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; // ATSlocal_void (tmp503) ; // ATSlocal_void (tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_int_type, tmp507) ; __ats_lab_loop_44: do { /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_129_0 ; } __ats_lab_128_1: if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_129_1 ; } __ats_lab_128_2: tmp481 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp482 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp483 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_2) ; tmp484 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp485 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp486 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_2) ; /* tmp487 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err (arg0, tmp481, tmp484, arg3) ; /* tmp488 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp482, tmp485, arg3) ; arg0 = arg0 ; arg1 = tmp483 ; arg2 = tmp486 ; arg3 = arg3 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_130_0 ; } __ats_lab_129_1: if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_133_1 ; } __ats_lab_129_2: tmp489 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp490 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp491 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_2) ; tmp492 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp493 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp494 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_2) ; /* tmp495 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err (arg0, tmp489, tmp492, arg3) ; /* tmp496 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp490, tmp493, arg3) ; arg0 = arg0 ; arg1 = tmp491 ; arg2 = tmp494 ; arg3 = arg3 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_131_0 ; } __ats_lab_130_1: if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_133_1 ; } __ats_lab_130_2: tmp497 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ; tmp498 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ; tmp499 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_2) ; tmp500 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ; tmp501 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ; tmp502 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_2) ; /* tmp503 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__refval_equal_solve_err (arg0, tmp497, tmp500, arg3) ; /* tmp504 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp498, tmp501, arg3) ; arg0 = arg0 ; arg1 = tmp499 ; arg2 = tmp502 ; arg3 = arg3 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_132_0 ; } __ats_lab_131_1: if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_133_1 ; } __ats_lab_131_2: tmp505 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp506 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; arg0 = arg0 ; arg1 = tmp505 ; arg2 = tmp506 ; arg3 = arg3 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_133_0 ; } __ats_lab_132_1: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_133_1 ; } __ats_lab_132_2: tmp480 = 0 ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: __ats_lab_133_1: __ats_lab_133_2: tmp507 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp507 ; tmp480 = 1 ; break ; } while (0) ; return (tmp480) ; } /* end of [loop_44] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 35412(line=1770, offs=1) -- 36770(line=1837, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_tyleq_solve_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp479) ; ATSlocal (ats_int_type, tmp508) ; ATSlocal (ats_bool_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_tyleq_solve_err: tmp508 = loop_44 (arg0, arg1, arg2, arg3) ; tmp509 = atspre_gt_int_int (tmp508, 0) ; if (tmp509) { tmp510 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp510)->tag = 16 ; ats_selptrset_mac(anairiats_sum_3, tmp510, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp510, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp510, atslab_2, arg2) ; /* tmp479 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__the_staerrlst_add (tmp510) ; } else { /* empty */ } /* end of [if] */ return /* (tmp479) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__wths2explst_tyleq_solve_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 36871(line=1843, offs=3) -- 37488(line=1882, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lbs_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; // ATSlocal_void (tmp516) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lbs_err: do { /* branch: __ats_lab_134 */ __ats_lab_134_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_135_0 ; } __ats_lab_134_1: break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_135_1: tmp512 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp513 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; tmp515 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_val (tmp512) ; tmp514 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp515) ; /* tmp516 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err (arg0, tmp514, arg2, arg3) ; arg0 = arg0 ; arg1 = tmp513 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lbs_err ; // tail call break ; } while (0) ; return /* (tmp511) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_lbs_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 37566(line=1886, offs=3) -- 37946(line=1907, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_ubs_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; // ATSlocal_void (tmp522) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_ubs_err: do { /* branch: __ats_lab_136 */ __ats_lab_136_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_137_0 ; } __ats_lab_136_1: break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_137_1: tmp518 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_0) ; tmp519 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_val (tmp518) ; tmp520 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp521) ; /* tmp522 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve_err (arg0, arg1, tmp520, arg3) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp519 ; arg3 = arg3 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_ubs_err ; // tail call break ; } while (0) ; return /* (tmp517) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__s2hnf_tyleq_solve_ubs_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 38054(line=1913, offs=3) -- 38913(line=1946, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_argsrtlst_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (anairiats_rec_2, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_int_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; // ATSlocal_void (tmp532) ; ATSlocal (ats_bool_type, tmp533) ; ATSlocal (ats_bool_type, tmp534) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_argsrtlst_err: do { /* branch: __ats_lab_138 */ __ats_lab_138_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_139_0 ; } __ats_lab_138_1: break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_139_1: tmp524 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_0) ; tmp525 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; do { /* branch: __ats_lab_140 */ __ats_lab_140_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_141_0 ; } __ats_lab_140_1: break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_141_1: tmp526 = ats_caselptrlab_mac(anairiats_sum_12, arg3, atslab_0) ; tmp527 = ats_caselptrlab_mac(anairiats_sum_12, arg3, atslab_1) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 38345(line=1928, offs=11) -- 38390(line=1929, offs=36)") ; } tmp528 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_0) ; tmp529 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_1) ; tmp531 = ats_select_mac(tmp528, atslab_1) ; tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_get_pol (tmp531) ; tmp533 = atspre_eq_int_int (tmp530, 0) ; if (tmp533) { /* tmp532 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_equal_solve_err (arg0, tmp524, tmp526, arg4) ; } else { tmp534 = atspre_gt_int_int (tmp530, 0) ; if (tmp534) { /* tmp532 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp524, tmp526, arg4) ; } else { /* tmp532 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve_err (arg0, tmp526, tmp524, arg4) ; } /* end of [if] */ } /* end of [if] */ arg0 = arg0 ; arg1 = tmp529 ; arg2 = tmp525 ; arg3 = tmp527 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_argsrtlst_err ; // tail call break ; } while (0) ; break ; } while (0) ; return /* (tmp523) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_argsrtlst_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 39292(line=1968, offs=1) -- 39671(line=1985, offs=45) */ ATSstaticdec() ats_void_type auxsolve_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; // ATSlocal_void (tmp545) ; __ats_lab_auxsolve_49: tmp539 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_node) ; tmp540 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_s2exp_node) ; do { /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp539)->tag != 17) { goto __ats_lab_143_0 ; } __ats_lab_142_1: if (((ats_sum_ptr_type)tmp540)->tag != 17) { goto __ats_lab_143_1 ; } __ats_lab_142_2: tmp541 = ats_caselptrlab_mac(anairiats_sum_10, tmp539, atslab_0) ; tmp542 = ats_caselptrlab_mac(anairiats_sum_10, tmp539, atslab_1) ; tmp543 = ats_caselptrlab_mac(anairiats_sum_10, tmp540, atslab_0) ; tmp544 = ats_caselptrlab_mac(anairiats_sum_10, tmp540, atslab_1) ; /* tmp545 = */ auxsolve_49 (arg0, tmp541, tmp543) ; /* tmp538 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_hypequal_solve (arg0, tmp542, tmp544) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: __ats_lab_143_1: __ats_lab_143_2: break ; } while (0) ; return /* (tmp538) */ ; } /* end of [auxsolve_49] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 39700(line=1989, offs=1) -- 39999(line=2007, offs=2) */ ATSstaticdec() ats_bool_type auxcheck_50 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; __ats_lab_auxcheck_50: tmp547 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_node) ; tmp548 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp547)->tag != 4) { goto __ats_lab_145_0 ; } __ats_lab_144_1: if (((ats_sum_ptr_type)tmp548)->tag != 4) { goto __ats_lab_146_1 ; } __ats_lab_144_2: tmp549 = ats_caselptrlab_mac(anairiats_sum_9, tmp547, atslab_0) ; tmp550 = ats_caselptrlab_mac(anairiats_sum_9, tmp548, atslab_0) ; tmp546 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (tmp549, tmp550) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp547)->tag != 17) { goto __ats_lab_146_0 ; } __ats_lab_145_1: if (((ats_sum_ptr_type)tmp548)->tag != 17) { goto __ats_lab_146_1 ; } __ats_lab_145_2: tmp551 = ats_caselptrlab_mac(anairiats_sum_10, tmp547, atslab_0) ; tmp552 = ats_caselptrlab_mac(anairiats_sum_10, tmp548, atslab_0) ; arg0 = tmp551 ; arg1 = tmp552 ; goto __ats_lab_auxcheck_50 ; // tail call break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: __ats_lab_146_1: __ats_lab_146_2: tmp546 = ats_false_bool ; break ; } while (0) ; return (tmp546) ; } /* end of [auxcheck_50] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 38987(line=1951, offs=1) -- 40227(line=2024, offs=4) */ ATSstaticdec() ats_void_type s2hnf_hypequal_solve_abscon_48 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_bool_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; __ats_lab_s2hnf_hypequal_solve_abscon_48: tmp536 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp537 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp553 = auxcheck_50 (tmp536, tmp537) ; if (tmp553) { /* tmp535 = */ auxsolve_49 (arg0, tmp536, tmp537) ; } else { tmp554 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ; /* tmp535 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp554) ; } /* end of [if] */ return /* (tmp535) */ ; } /* end of [s2hnf_hypequal_solve_abscon_48] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 40323(line=2030, offs=3) -- 42042(line=2104, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_hypequal_solve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_bool_type, tmp560) ; ATSlocal (ats_bool_type, tmp561) ; ATSlocal (ats_bool_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_bool_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_int_type, tmp568) ; ATSlocal (ats_bool_type, tmp569) ; ATSlocal (ats_bool_type, tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_bool_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_bool_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; // ATSlocal_void (tmp579) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_hypequal_solve: tmp556 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp557 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp558 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp556), atslab_s2exp_node) ; tmp559 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp557), atslab_s2exp_node) ; do { /* branch: __ats_lab_147 */ __ats_lab_147_0: __ats_lab_147_1: __ats_lab_147_2: tmp561 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_is_abscon (arg1) ; tmp562 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_is_abscon (arg2) ; tmp560 = atspre_mul_bool_bool (tmp561, tmp562) ; if (!tmp560) { goto __ats_lab_148_0 ; } /* tmp555 = */ s2hnf_hypequal_solve_abscon_48 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp558)->tag != 4) { goto __ats_lab_149_0 ; } __ats_lab_148_1: if (((ats_sum_ptr_type)tmp559)->tag != 4) { goto __ats_lab_154_1 ; } __ats_lab_148_2: tmp563 = ats_caselptrlab_mac(anairiats_sum_9, tmp558, atslab_0) ; tmp564 = ats_caselptrlab_mac(anairiats_sum_9, tmp559, atslab_0) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (tmp563, tmp564) ; if (!tmp565) { goto __ats_lab_156_2 ; } break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)tmp558)->tag != 7) { goto __ats_lab_153_0 ; } __ats_lab_149_1: if (((ats_sum_ptr_type)tmp559)->tag != 7) { goto __ats_lab_153_1 ; } __ats_lab_149_2: tmp566 = ats_caselptrlab_mac(anairiats_sum_9, tmp558, atslab_0) ; tmp567 = ats_caselptrlab_mac(anairiats_sum_9, tmp559, atslab_0) ; tmp568 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (tmp566, tmp567) ; do { /* branch: __ats_lab_150 */ __ats_lab_150_0: __ats_lab_150_1: tmp569 = atspre_igt (tmp568, 0) ; if (!tmp569) { goto __ats_lab_151_1 ; } /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind (arg0, tmp566, arg2) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: __ats_lab_151_1: tmp570 = atspre_ilt (tmp568, 0) ; if (!tmp570) { goto __ats_lab_152_1 ; } /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind (arg0, tmp567, arg1) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: __ats_lab_152_1: break ; } while (0) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp558)->tag != 7) { goto __ats_lab_154_0 ; } __ats_lab_153_1: __ats_lab_153_2: tmp571 = ats_caselptrlab_mac(anairiats_sum_9, tmp558, atslab_0) ; tmp572 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2var_occurcheck_s2exp (tmp571, tmp557) ; if (tmp572) { /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (arg0, arg1, arg2) ; } else { /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind (arg0, tmp571, arg2) ; } /* end of [if] */ break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: __ats_lab_154_1: if (((ats_sum_ptr_type)tmp559)->tag != 7) { goto __ats_lab_155_0 ; } __ats_lab_154_2: tmp573 = ats_caselptrlab_mac(anairiats_sum_9, tmp559, atslab_0) ; tmp574 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2var_occurcheck_s2exp (tmp573, tmp556) ; if (tmp574) { /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (arg0, arg1, arg2) ; } else { /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind (arg0, tmp573, arg1) ; } /* end of [if] */ break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)tmp558)->tag != 19) { goto __ats_lab_156_0 ; } __ats_lab_155_1: if (((ats_sum_ptr_type)tmp559)->tag != 19) { goto __ats_lab_156_1 ; } __ats_lab_155_2: tmp575 = ats_caselptrlab_mac(anairiats_sum_16, tmp558, atslab_4) ; tmp576 = ats_caselptrlab_mac(anairiats_sum_16, tmp558, atslab_5) ; tmp577 = ats_caselptrlab_mac(anairiats_sum_16, tmp559, atslab_4) ; tmp578 = ats_caselptrlab_mac(anairiats_sum_16, tmp559, atslab_5) ; /* tmp579 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp576, tmp578) ; /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_hypequal_solve (arg0, tmp577, tmp575) ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: __ats_lab_156_1: __ats_lab_156_2: /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (arg0, arg1, arg2) ; break ; } while (0) ; return /* (tmp555) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_hypequal_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 42131(line=2110, offs=3) -- 42269(line=2115, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_ptr_type, tmp582) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve: tmp581 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp582 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg2) ; /* tmp580 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_hypequal_solve (arg0, tmp581, tmp582) ; return /* (tmp580) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_solve.dats: 42340(line=2119, offs=3) -- 43053(line=2155, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_hypequal_solve (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_ptr_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; // ATSlocal_void (tmp590) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_hypequal_solve: do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_160_0 ; } __ats_lab_157_1: do { /* branch: __ats_lab_158 */ __ats_lab_158_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_159_0 ; } __ats_lab_158_1: break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_159_1: tmp584 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ; /* tmp583 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp584) ; break ; } while (0) ; break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_160_1: tmp585 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_0) ; tmp586 = ats_caselptrlab_mac(anairiats_sum_12, arg1, atslab_1) ; do { /* branch: __ats_lab_161 */ __ats_lab_161_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp587 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ; /* tmp583 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp587) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_162_1: tmp588 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_0) ; tmp589 = ats_caselptrlab_mac(anairiats_sum_12, arg2, atslab_1) ; /* tmp590 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp585, tmp588) ; arg0 = arg0 ; arg1 = tmp586 ; arg2 = tmp589 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_hypequal_solve ; // tail call break ; } while (0) ; break ; } while (0) ; return /* (tmp583) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_hypequal_solve] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_solve_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_stacst2_dats.c0000644000175000017500000062550713431250607022127 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_sym ; ats_ptr_type atslab_cst ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_5 ; typedef struct { int tag ; ats_ptr_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 { ats_int_type atslab_0 ; } anairiats_sum_8 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMcst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_int_of_size) (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_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int) (ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ntm) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_exn) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ref) ; ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_wrt) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset) (ats_uint_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_true_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_false_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_bool_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_bool_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_addr_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_nil) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_cons) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uint_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lint_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ulint_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_llint_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ullint_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_int_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_float_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_double_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ldouble_kind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0float_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_float) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_string) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_exception_vtype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_arrpsz_vt0ype_int_vt0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vbox_view_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ref_vt0ype_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_t0ype_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_vt0ype_vtype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sizeof_t0ype_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_at_vt0ype_addr_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_prop_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_view_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_t0ype_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_vt0ype_vt0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_view_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_vt0ype_vt0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_uni) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_exi) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_uni) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_exi) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool) (ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_badd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgte) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1int_kind_index_t0ype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1uint_kind_index_t0ype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1uint_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_cons) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effnil) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effall) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effntm) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effexn) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effref) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effwrt) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_find) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_ptr_is_null) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_ptr_isnot_null) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__sizeof_t0ype_int_assume) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__at_vt0ype_addr_view_assume) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_assume) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_prop_prop_assume) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_view_view_assume) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_t0ype_t0ype_assume) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_vt0ype_vt0ype_assume) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__sasp__s2cstref_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_true_bool) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_false_bool) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_bool) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_bool_bool) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_bool_bool) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_bool_bool) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_bool_bool) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_div_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndiv_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idiv_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_abs_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_absrel_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgn_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgnrel_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_max_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_min_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_maxrel_int_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_minrel_int_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndivrel_int_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idivrel_int_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifint_bool_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifintrel_bool_int_int_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_of_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_addr_of_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_null_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_addr_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_addr_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_addr_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_addr_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_addr_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_addr_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_addr_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_nil) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_cons) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_cls_cls) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_cls_cls) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lterel_cls_cls) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gterel_cls_cls) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstkind_type) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstkind_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uint_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lint_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ulint_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_llint_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ullint_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_size_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ssize_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_int_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_int_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_float_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_double_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ldouble_kind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0float_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_type) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_float) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_string) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_type) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_prop) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_view) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_exception_vtype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_arrpsz_vt0ype_int_vt0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vbox_view_prop) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ref_vt0ype_type) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_t0ype_type) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_vt0ype_vtype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_uni) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_exi) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_uni) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_exi) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_view_view) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_vt0ype_vt0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effnil) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effall) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effntm) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effexn) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effref) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effwrt) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_at_vt0ype_addr_view) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sizeof_t0ype_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_prop_prop) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_view_view) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_t0ype_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_vt0ype_vt0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_bool) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_uint) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_size) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_ssize) ; /* internal function declarations */ static ats_void_type prerr_FILENAME_02078_ () ; static ats_ptr_type s2cstref_get_sym_1 (ats_ptr_type arg0) ; static ats_ptr_type s2cstref_get_cstnul_2 (ats_ptr_type arg0) ; static ats_void_type s2cstref_set_cstnul_3 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_void_type prerr_interror_02079_ () ; static ats_ptr_type auxerr_7 (ats_ptr_type arg0) ; static ats_ptr_type aux_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxg0i_32 (ats_ptr_type arg0) ; static ats_ptr_type auxg0u_33 (ats_ptr_type arg0) ; static ats_ptr_type auxg1i_34 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxg1u_35 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_67 (ats_ptr_type arg0) ; static ats_ptr_type auxlst_101 (ats_ptr_type arg0) ; static ats_ptr_type aux_105 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp37) ; ATSstatic (ats_ptr_type, statmp38) ; ATSstatic (ats_ptr_type, statmp39) ; ATSstatic (ats_ptr_type, statmp40) ; ATSstatic (ats_ptr_type, statmp41) ; ATSstatic (ats_ptr_type, statmp42) ; ATSstatic (ats_ptr_type, statmp43) ; ATSstatic (ats_ptr_type, statmp44) ; ATSstatic (ats_ptr_type, statmp45) ; ATSstatic (ats_ptr_type, statmp46) ; ATSstatic (ats_ptr_type, statmp47) ; ATSstatic (ats_ptr_type, statmp48) ; ATSstatic (ats_ptr_type, statmp49) ; ATSstatic (ats_ptr_type, statmp50) ; ATSstatic (ats_ptr_type, statmp51) ; ATSstatic (ats_ptr_type, statmp52) ; ATSstatic (ats_ptr_type, statmp53) ; ATSstatic (ats_ptr_type, statmp54) ; ATSstatic (ats_ptr_type, statmp55) ; ATSstatic (ats_ptr_type, statmp56) ; ATSstatic (ats_ptr_type, statmp57) ; ATSstatic (ats_ptr_type, statmp58) ; ATSstatic (ats_ptr_type, statmp59) ; ATSstatic (ats_ptr_type, statmp60) ; ATSstatic (ats_ptr_type, statmp61) ; ATSstatic (ats_ptr_type, statmp62) ; ATSstatic (ats_ptr_type, statmp63) ; ATSstatic (ats_ptr_type, statmp64) ; ATSstatic (ats_ptr_type, statmp65) ; ATSstatic (ats_ptr_type, statmp66) ; ATSstatic (ats_ptr_type, statmp67) ; ATSstatic (ats_ptr_type, statmp68) ; ATSstatic (ats_ptr_type, statmp69) ; ATSstatic (ats_ptr_type, statmp70) ; ATSstatic (ats_ptr_type, statmp71) ; ATSstatic (ats_ptr_type, statmp72) ; ATSstatic (ats_ptr_type, statmp73) ; ATSstatic (ats_ptr_type, statmp74) ; ATSstatic (ats_ptr_type, statmp75) ; ATSstatic (ats_ptr_type, statmp76) ; ATSstatic (ats_ptr_type, statmp77) ; ATSstatic (ats_ptr_type, statmp78) ; ATSstatic (ats_ptr_type, statmp79) ; ATSstatic (ats_ptr_type, statmp80) ; ATSstatic (ats_ptr_type, statmp81) ; ATSstatic (ats_ptr_type, statmp82) ; ATSstatic (ats_ptr_type, statmp83) ; ATSstatic (ats_ptr_type, statmp84) ; ATSstatic (ats_ptr_type, statmp85) ; ATSstatic (ats_ptr_type, statmp86) ; ATSstatic (ats_ptr_type, statmp157) ; ATSstatic (ats_ptr_type, statmp158) ; ATSstatic (ats_ptr_type, statmp162) ; ATSstatic (ats_ptr_type, statmp163) ; ATSstatic (ats_ptr_type, statmp182) ; ATSstatic (ats_ptr_type, statmp183) ; ATSstatic (ats_ptr_type, statmp184) ; ATSstatic (ats_ptr_type, statmp185) ; ATSstatic (ats_ptr_type, statmp186) ; ATSstatic (ats_ptr_type, statmp187) ; ATSstatic (ats_ptr_type, statmp188) ; ATSstatic (ats_ptr_type, statmp189) ; ATSstatic (ats_ptr_type, statmp190) ; ATSstatic (ats_ptr_type, statmp191) ; ATSstatic (ats_ptr_type, statmp192) ; ATSstatic (ats_ptr_type, statmp193) ; ATSstatic (ats_ptr_type, statmp294) ; ATSstatic (ats_ptr_type, statmp295) ; ATSstatic (ats_ptr_type, statmp314) ; ATSstatic (ats_ptr_type, statmp315) ; ATSstatic (ats_ptr_type, statmp323) ; ATSstatic (ats_ptr_type, statmp324) ; ATSstatic (ats_ptr_type, statmp332) ; ATSstatic (ats_ptr_type, statmp333) ; ATSstatic (ats_ptr_type, statmp334) ; ATSstatic (ats_ptr_type, statmp335) ; ATSstatic (ats_ptr_type, statmp347) ; ATSstatic (ats_ptr_type, statmp348) ; ATSstatic (ats_ptr_type, statmp361) ; ATSstatic (ats_ptr_type, statmp362) ; ATSstatic (ats_ptr_type, statmp373) ; ATSstatic (ats_ptr_type, statmp376) ; ATSstatic (ats_ptr_type, statmp388) ; ATSstatic (ats_ptr_type, statmp391) ; ATSstatic (ats_ptr_type, statmp394) ; ATSstatic (ats_ptr_type, statmp397) ; ATSstatic (ats_ptr_type, statmp400) ; ATSstatic (ats_ptr_type, statmp407) ; ATSstatic (ats_ptr_type, statmp414) ; ATSstatic (ats_ptr_type, statmp421) ; ATSstatic (ats_ptr_type, statmp433) ; ATSstatic (ats_ptr_type, statmp445) ; ATSstatic (ats_ptr_type, statmp457) ; ATSstatic (ats_ptr_type, statmp469) ; ATSstatic (ats_ptr_type, statmp472) ; ATSstatic (ats_ptr_type, statmp475) ; ATSstatic (ats_ptr_type, statmp478) ; ATSstatic (ats_ptr_type, statmp494) ; ATSstatic (ats_ptr_type, statmp499) ; ATSstatic (ats_ptr_type, statmp504) ; ATSstatic (ats_ptr_type, statmp505) ; ATSstatic (ats_ptr_type, statmp506) ; ATSstatic (ats_ptr_type, statmp507) ; ATSstatic (ats_ptr_type, statmp508) ; ATSstatic (ats_ptr_type, statmp509) ; ATSstatic (ats_ptr_type, statmp525) ; ATSstatic (ats_ptr_type, statmp539) ; ATSstatic (ats_ptr_type, statmp551) ; ATSstatic (ats_ptr_type, statmp552) ; ATSstatic (ats_ptr_type, statmp553) ; ATSstatic (ats_ptr_type, statmp554) ; ATSstatic (ats_ptr_type, statmp566) ; ATSstatic (ats_ptr_type, statmp567) ; ATSstatic (ats_ptr_type, statmp568) ; ATSstatic (ats_ptr_type, statmp569) ; ATSstatic (ats_ptr_type, statmp570) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 1726(line=56, offs=28) -- 1751(line=56, offs=53) */ ATSstaticdec() ats_void_type prerr_FILENAME_02078_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02078_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_stacst2")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02078_] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 2683(line=106, offs=1) -- 2785(line=109, offs=4) */ ATSstaticdec() ats_ptr_type s2cstref_get_sym_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_s2cstref_get_sym_1: tmp2 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp1 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp2), atslab_sym) ; return (tmp1) ; } /* end of [s2cstref_get_sym_1] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 2820(line=112, offs=1) -- 2927(line=115, offs=4) */ ATSstaticdec() ats_ptr_type s2cstref_get_cstnul_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_s2cstref_get_cstnul_2: tmp4 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp3 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_cst) ; return (tmp3) ; } /* end of [s2cstref_get_cstnul_2] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 2964(line=117, offs=1) -- 3089(line=120, offs=4) */ ATSstaticdec() ats_void_type s2cstref_set_cstnul_3 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_s2cstref_set_cstnul_3: tmp6 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_cst) = arg1 ; return /* (tmp5) */ ; } /* end of [s2cstref_set_cstnul_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp10 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp10) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 3146(line=123, offs=14) -- 3378(line=130, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (arg0) ; tmp9 = ptr_alloc_01070_anairiats_rec_1 () ; tmp11 = ats_selsin_mac(tmp9, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp11), atslab_sym) = tmp8 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp11), atslab_cst) = ats_castfn_mac(ats_ptr_type, atspre_null_ptr) ; tmp7 = atspre_ref_make_view_ptr (tmp11) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1637(line=52, offs=15) -- 1735(line=57, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_02079_ () { /* local vardec */ // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; __ats_lab_prerr_interror_02079_: /* tmp16 = */ atspre_prerr_string (ATSstrcst("INTERROR(")) ; /* tmp17 = */ prerr_FILENAME_02078_ () ; /* tmp15 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp15) */ ; } /* end of [prerr_interror_02079_] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 3493(line=139, offs=4) -- 3780(line=149, offs=4) */ ATSstaticdec() ats_ptr_type auxerr_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab_auxerr_7: /* tmp14 = */ prerr_interror_02079_ () ; /* tmp18 = */ atspre_prerr_string (ATSstrcst(": s2cstref_get_cst: ")) ; /* tmp19 = */ atspre_prerr_string (ATSstrcst("the pervasive static constant [")) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg0) ; /* tmp21 = */ atspre_prerr_string (ATSstrcst("] is not available.")) ; /* tmp22 = */ atspre_prerr_newline () ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; return (tmp13) ; } /* end of [auxerr_7] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 3477(line=137, offs=17) -- 4334(line=177, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst: tmp23 = s2cstref_get_cstnul_2 (arg0) ; tmp24 = atspre_ptr_is_null (tmp23) ; if (tmp24) { tmp25 = s2cstref_get_sym_1 (arg0) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pervasive_find (tmp25) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp26 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_2, tmp26, atslab_0) ; ATS_FREE(tmp26) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp27)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_3, tmp27, atslab_0) ; if (tmp28 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 4074(line=165, offs=11) -- 4099(line=165, offs=36)") ; } tmp29 = ats_caselptrlab_mac(anairiats_sum_4, tmp28, atslab_0) ; /* tmp30 = */ s2cstref_set_cstnul_3 (arg0, ats_castfn_mac(ats_ptr_type, tmp29)) ; tmp12 = tmp29 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp12 = auxerr_7 (tmp25) ; break ; } while (0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp26 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp12 = auxerr_7 (tmp25) ; break ; } while (0) ; } else { tmp12 = ats_castfn_mac(ats_ptr_type, tmp23) ; } /* end of [if] */ return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 4415(line=183, offs=3) -- 4474(line=187, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (arg0) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (tmp32, arg1) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 4542(line=193, offs=3) -- 4711(line=200, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp: tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp34)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_3, tmp34, atslab_0) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (arg0, tmp35) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp34)->tag != 17) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_6, tmp34, atslab_0) ; arg0 = arg0 ; arg1 = tmp36 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp ; // tail call break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp33 = ats_false_bool ; break ; } while (0) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 8003(line=342, offs=11) -- 8156(line=348, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_agtz (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_agtz: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_addr_addr) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (0) ; tmp92 = (ats_sum_ptr_type)0 ; tmp91 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp91, atslab_0, tmp89) ; ats_selptrset_mac(anairiats_sum_4, tmp91, atslab_1, tmp92) ; tmp90 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp90, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp90, atslab_1, tmp91) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp88, tmp90) ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_agtz] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 8222(line=353, offs=11) -- 8341(line=359, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg: tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_bool) ; tmp96 = (ats_sum_ptr_type)0 ; tmp95 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp95, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp95, atslab_1, tmp96) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp94, tmp95) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 8386(line=362, offs=11) -- 8524(line=368, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_badd (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_badd: tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_bool_bool) ; tmp101 = (ats_sum_ptr_type)0 ; tmp100 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp100, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp100, atslab_1, tmp101) ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp99, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp99, atslab_1, tmp100) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp98, tmp99) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_badd] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 8570(line=371, offs=12) -- 8708(line=377, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul: tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_bool_bool) ; tmp106 = (ats_sum_ptr_type)0 ; tmp105 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp105, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp105, atslab_1, tmp106) ; tmp104 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp104, atslab_1, tmp105) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp103, tmp104) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 8797(line=385, offs=1) -- 8970(line=394, offs=2) */ ATSstaticdec() ats_ptr_type aux_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; __ats_lab_aux_16: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp108 = arg0 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp110 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp111 = aux_16 (tmp109, tmp110) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_badd (arg0, tmp111) ; break ; } while (0) ; return (tmp108) ; } /* end of [aux_16] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 8777(line=382, offs=14) -- 9075(line=400, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2explst_badd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2explst_badd: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp113 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp107 = aux_16 (tmp112, tmp113) ; break ; } while (0) ; return (tmp107) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2explst_badd] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 9146(line=406, offs=1) -- 9319(line=415, offs=2) */ ATSstaticdec() ats_ptr_type aux_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab_aux_18: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp115 = arg0 ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp117 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp118 = aux_18 (tmp116, tmp117) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul (arg0, tmp118) ; break ; } while (0) ; return (tmp115) ; } /* end of [aux_18] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 9126(line=403, offs=14) -- 9423(line=421, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2explst_bmul (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2explst_bmul: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_true_bool) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp120 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp114 = aux_18 (tmp119, tmp120) ; break ; } while (0) ; return (tmp114) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2explst_bmul] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 9492(line=426, offs=11) -- 9592(line=432, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ineg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ineg: tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_int) ; tmp124 = (ats_sum_ptr_type)0 ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp123, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp123, atslab_1, tmp124) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp122, tmp123) ; return (tmp121) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ineg] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 9659(line=437, offs=12) -- 9774(line=442, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlt: tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_int_int) ; tmp129 = (ats_sum_ptr_type)0 ; tmp128 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp128, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp128, atslab_1, tmp129) ; tmp127 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp127, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp127, atslab_1, tmp128) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp126, tmp127) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlt] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 9822(line=445, offs=13) -- 9938(line=450, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlte (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlte: tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_int_int) ; tmp134 = (ats_sum_ptr_type)0 ; tmp133 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp133, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp133, atslab_1, tmp134) ; tmp132 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp132, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp132, atslab_1, tmp133) ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp131, tmp132) ; return (tmp130) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlte] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 9986(line=453, offs=12) -- 10101(line=458, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgt: tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_int_int) ; tmp139 = (ats_sum_ptr_type)0 ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp138, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp138, atslab_1, tmp139) ; tmp137 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp137, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp137, atslab_1, tmp138) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp136, tmp137) ; return (tmp135) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgt] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 10149(line=461, offs=13) -- 10265(line=466, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgte (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgte: tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_int_int) ; tmp144 = (ats_sum_ptr_type)0 ; tmp143 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp143, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp143, atslab_1, tmp144) ; tmp142 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp142, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp142, atslab_1, tmp143) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp141, tmp142) ; return (tmp140) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgte] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 10314(line=469, offs=13) -- 10430(line=474, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intneq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intneq: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_int_int) ; tmp149 = (ats_sum_ptr_type)0 ; tmp148 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp148, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp148, atslab_1, tmp149) ; tmp147 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp147, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp147, atslab_1, tmp148) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp146, tmp147) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intneq] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 10504(line=480, offs=3) -- 10543(line=480, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_igtez (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_igtez: tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (0) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgte (arg0, tmp151) ; return (tmp150) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_igtez] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 10598(line=486, offs=3) -- 10821(line=503, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_intconst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_int_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_intconst: tmp153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp153)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_7, tmp153, atslab_0) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp154) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp153)->tag != 1) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_3, tmp153, atslab_0) ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int (tmp155) ; tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp156) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp152 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp152) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_intconst] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 11097(line=520, offs=11) -- 11280(line=530, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_bool_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool: if (arg0) { tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_true_bool ; } else { tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_false_bool ; } /* end of [if] */ tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (tmp160) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp161) ; return (tmp159) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 11450(line=538, offs=17) -- 11498(line=539, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype: tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_t0ype) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp165) ; return (tmp164) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 11565(line=544, offs=3) -- 11701(line=552, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_bool_t0ype (ats_bool_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_bool_t0ype: tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (arg0) ; tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype) ; tmp170 = (ats_sum_ptr_type)0 ; tmp169 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp169, atslab_0, tmp167) ; ats_selptrset_mac(anairiats_sum_4, tmp169, atslab_1, tmp170) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp168, tmp169) ; return (tmp166) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_bool_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 11793(line=558, offs=3) -- 11901(line=566, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_index_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_index_t0ype: tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype) ; tmp174 = (ats_sum_ptr_type)0 ; tmp173 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp173, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp173, atslab_1, tmp174) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp172, tmp173) ; return (tmp171) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 11976(line=570, offs=3) -- 12298(line=587, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_bool_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype: tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp177 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp176), atslab_s2exp_node) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp177)->tag != 17) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_6, tmp177, atslab_0) ; tmp179 = ats_caselptrlab_mac(anairiats_sum_6, tmp177, atslab_1) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype, tmp178) ; if (!tmp180) { goto __ats_lab_19_1 ; } if (tmp179 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 12171(line=583, offs=9) -- 12199(line=583, offs=37)") ; } tmp181 = ats_caselptrlab_mac(anairiats_sum_4, tmp179, atslab_0) ; tmp175 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp175, atslab_0, tmp181) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp175 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp175) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 13051(line=622, offs=5) -- 13205(line=628, offs=4) */ ATSstaticdec() ats_ptr_type auxg0i_32 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab_auxg0i_32: tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (arg0) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype) ; tmp198 = (ats_sum_ptr_type)0 ; tmp197 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp197, atslab_0, tmp195) ; ats_selptrset_mac(anairiats_sum_4, tmp197, atslab_1, tmp198) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp196, tmp197) ; return (tmp194) ; } /* end of [auxg0i_32] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 13230(line=630, offs=5) -- 13385(line=636, offs=4) */ ATSstaticdec() ats_ptr_type auxg0u_33 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; __ats_lab_auxg0u_33: tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (arg0) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype) ; tmp203 = (ats_sum_ptr_type)0 ; tmp202 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp202, atslab_0, tmp200) ; ats_selptrset_mac(anairiats_sum_4, tmp202, atslab_1, tmp203) ; tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp201, tmp202) ; return (tmp199) ; } /* end of [auxg0u_33] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 13410(line=638, offs=5) -- 13588(line=645, offs=4) */ ATSstaticdec() ats_ptr_type auxg1i_34 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; __ats_lab_auxg1i_34: tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (arg0) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype) ; tmp209 = (ats_sum_ptr_type)0 ; tmp208 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp208, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp208, atslab_1, tmp209) ; tmp207 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp207, atslab_0, tmp205) ; ats_selptrset_mac(anairiats_sum_4, tmp207, atslab_1, tmp208) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp206, tmp207) ; return (tmp204) ; } /* end of [auxg1i_34] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 13613(line=647, offs=5) -- 13792(line=654, offs=4) */ ATSstaticdec() ats_ptr_type auxg1u_35 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; __ats_lab_auxg1u_35: tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (arg0) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype) ; tmp215 = (ats_sum_ptr_type)0 ; tmp214 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp214, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp214, atslab_1, tmp215) ; tmp213 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp213, atslab_0, tmp211) ; ats_selptrset_mac(anairiats_sum_4, tmp213, atslab_1, tmp214) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp212, tmp213) ; return (tmp210) ; } /* end of [auxg1u_35] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 13860(line=659, offs=17) -- 13905(line=660, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype: tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind) ; tmp216 = auxg0i_32 (tmp217) ; return (tmp216) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 13964(line=664, offs=18) -- 14010(line=665, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_t0ype: tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uint_kind) ; tmp218 = auxg0u_33 (tmp219) ; return (tmp218) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 14070(line=669, offs=18) -- 14116(line=670, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_t0ype: tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lint_kind) ; tmp220 = auxg0u_33 (tmp221) ; return (tmp220) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 14177(line=674, offs=19) -- 14224(line=675, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_t0ype: tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ulint_kind) ; tmp222 = auxg0u_33 (tmp223) ; return (tmp222) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 14286(line=679, offs=19) -- 14333(line=680, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_t0ype: tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_llint_kind) ; tmp224 = auxg0u_33 (tmp225) ; return (tmp224) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 14396(line=684, offs=20) -- 14444(line=685, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_t0ype: tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ullint_kind) ; tmp226 = auxg0u_33 (tmp227) ; return (tmp226) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 14530(line=691, offs=21) -- 14636(line=696, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_int_t0ype (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_int_t0ype: tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (arg0) ; tmp228 = auxg1i_34 (tmp229, tmp230) ; return (tmp228) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_int_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 14703(line=699, offs=24) -- 14816(line=704, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_intinf_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_intinf_t0ype: tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (arg0) ; tmp231 = auxg1i_34 (tmp232, tmp233) ; return (tmp231) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_intinf_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 14905(line=709, offs=22) -- 15012(line=714, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_int_t0ype (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_int_t0ype: tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uint_kind) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (arg0) ; tmp234 = auxg1u_35 (tmp235, tmp236) ; return (tmp234) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_int_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 15084(line=717, offs=25) -- 15198(line=722, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_intinf_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_intinf_t0ype: tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uint_kind) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (arg0) ; tmp237 = auxg1u_35 (tmp238, tmp239) ; return (tmp237) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_intinf_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 15291(line=727, offs=25) -- 15405(line=732, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_intinf_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_intinf_t0ype: tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lint_kind) ; tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (arg0) ; tmp240 = auxg1i_34 (tmp241, tmp242) ; return (tmp240) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lint_intinf_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 15478(line=735, offs=26) -- 15593(line=740, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_intinf_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_intinf_t0ype: tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ulint_kind) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (arg0) ; tmp243 = auxg1u_35 (tmp244, tmp245) ; return (tmp243) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ulint_intinf_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 15667(line=743, offs=26) -- 15782(line=748, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_intinf_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_intinf_t0ype: tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_llint_kind) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (arg0) ; tmp246 = auxg1i_34 (tmp247, tmp248) ; return (tmp246) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_llint_intinf_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 15857(line=751, offs=27) -- 15973(line=756, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_intinf_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_intinf_t0ype: tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ullint_kind) ; tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (arg0) ; tmp249 = auxg1u_35 (tmp250, tmp251) ; return (tmp249) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ullint_intinf_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 16090(line=763, offs=24) -- 16193(line=767, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g0int_kind_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g0int_kind_t0ype: tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype) ; tmp255 = (ats_sum_ptr_type)0 ; tmp254 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp254, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp254, atslab_1, tmp255) ; tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp253, tmp254) ; return (tmp252) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g0int_kind_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 16271(line=771, offs=3) -- 16388(line=775, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1int_kind_index_t0ype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1int_kind_index_t0ype: tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype) ; tmp260 = (ats_sum_ptr_type)0 ; tmp259 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp259, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp259, atslab_1, tmp260) ; tmp258 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp258, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp258, atslab_1, tmp259) ; tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp257, tmp258) ; return (tmp256) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1int_kind_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 16491(line=781, offs=3) -- 16849(line=797, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_bool_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype: tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp263 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp262), atslab_s2exp_node) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp263)->tag != 17) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp264 = ats_caselptrlab_mac(anairiats_sum_6, tmp263, atslab_0) ; tmp265 = ats_caselptrlab_mac(anairiats_sum_6, tmp263, atslab_1) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype, tmp264) ; if (!tmp266) { goto __ats_lab_21_1 ; } if (tmp265 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 16671(line=790, offs=9) -- 16712(line=790, offs=50)") ; } tmp267 = ats_caselptrlab_mac(anairiats_sum_4, tmp265, atslab_1) ; if (tmp267 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 16721(line=791, offs=9) -- 16762(line=791, offs=50)") ; } tmp268 = ats_caselptrlab_mac(anairiats_sum_4, tmp267, atslab_0) ; tmp261 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp261, atslab_0, tmp268) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp261 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp261) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 16945(line=802, offs=25) -- 17049(line=806, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g0uint_kind_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g0uint_kind_t0ype: tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype) ; tmp272 = (ats_sum_ptr_type)0 ; tmp271 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp271, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp271, atslab_1, tmp272) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp270, tmp271) ; return (tmp269) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g0uint_kind_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 17129(line=810, offs=3) -- 17247(line=814, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1uint_kind_index_t0ype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1uint_kind_index_t0ype: tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype) ; tmp277 = (ats_sum_ptr_type)0 ; tmp276 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp276, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp276, atslab_1, tmp277) ; tmp275 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp275, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp275, atslab_1, tmp276) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp274, tmp275) ; return (tmp273) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1uint_kind_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 17352(line=820, offs=3) -- 17711(line=836, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1uint_index_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_bool_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1uint_index_t0ype: tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp280 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp279), atslab_s2exp_node) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp280)->tag != 17) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp281 = ats_caselptrlab_mac(anairiats_sum_6, tmp280, atslab_0) ; tmp282 = ats_caselptrlab_mac(anairiats_sum_6, tmp280, atslab_1) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype, tmp281) ; if (!tmp283) { goto __ats_lab_23_1 ; } if (tmp282 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 17533(line=829, offs=9) -- 17574(line=829, offs=50)") ; } tmp284 = ats_caselptrlab_mac(anairiats_sum_4, tmp282, atslab_1) ; if (tmp284 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 17583(line=830, offs=9) -- 17624(line=830, offs=50)") ; } tmp285 = ats_caselptrlab_mac(anairiats_sum_4, tmp284, atslab_0) ; tmp278 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp278, atslab_0, tmp285) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp278 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp278) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1uint_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 17814(line=842, offs=3) -- 18052(line=854, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1size_index_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1size_index_t0ype: tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype (arg0) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (tmp287 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp286 = tmp287 ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (tmp287 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1uint_index_t0ype (arg0) ; break ; } while (0) ; return (tmp286) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1size_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 18147(line=859, offs=23) -- 18263(line=862, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_index_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_index_t0ype: tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind) ; tmp290 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp289) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1int_kind_index_t0ype (tmp290, arg0) ; return (tmp288) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 18332(line=865, offs=24) -- 18449(line=868, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_index_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_index_t0ype: tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind) ; tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp292) ; tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_g1uint_kind_index_t0ype (tmp293, arg0) ; return (tmp291) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uint_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 18651(line=878, offs=18) -- 18701(line=879, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_t0ype: tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_t0ype) ; tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp297) ; return (tmp296) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 18765(line=883, offs=22) -- 18895(line=888, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_int_t0ype (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_int_t0ype: tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (arg0) ; tmp302 = (ats_sum_ptr_type)0 ; tmp301 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp301, atslab_0, tmp300) ; ats_selptrset_mac(anairiats_sum_4, tmp301, atslab_1, tmp302) ; tmp298 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp299, tmp301) ; return (tmp298) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_int_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 18984(line=893, offs=24) -- 19090(line=897, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_index_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_index_t0ype: tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype) ; tmp306 = (ats_sum_ptr_type)0 ; tmp305 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp305, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp305, atslab_1, tmp306) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp304, tmp305) ; return (tmp303) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 19163(line=900, offs=27) -- 19447(line=913, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_char_index_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_bool_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_char_index_t0ype: tmp308 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp309 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp308), atslab_s2exp_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp309)->tag != 17) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp310 = ats_caselptrlab_mac(anairiats_sum_6, tmp309, atslab_0) ; tmp311 = ats_caselptrlab_mac(anairiats_sum_6, tmp309, atslab_1) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype, tmp310) ; if (!tmp312) { goto __ats_lab_27_1 ; } if (tmp311 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 19342(line=909, offs=9) -- 19371(line=909, offs=38)") ; } tmp313 = ats_caselptrlab_mac(anairiats_sum_4, tmp311, atslab_0) ; tmp307 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp307, atslab_0, tmp313) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp307 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp307) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_char_index_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 19657(line=923, offs=19) -- 19708(line=924, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_schar_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_schar_t0ype: tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_t0ype) ; tmp316 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp317) ; return (tmp316) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_schar_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 19774(line=928, offs=23) -- 19905(line=933, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_schar_int_t0ype (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_schar_int_t0ype: tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_int_t0ype) ; tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (arg0) ; tmp322 = (ats_sum_ptr_type)0 ; tmp321 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp321, atslab_0, tmp320) ; ats_selptrset_mac(anairiats_sum_4, tmp321, atslab_1, tmp322) ; tmp318 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp319, tmp321) ; return (tmp318) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_schar_int_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 20090(line=941, offs=19) -- 20141(line=942, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uchar_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uchar_t0ype: tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_t0ype) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp326) ; return (tmp325) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uchar_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 20207(line=946, offs=23) -- 20338(line=951, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uchar_int_t0ype (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uchar_int_t0ype: tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_int_t0ype) ; tmp329 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (arg0) ; tmp331 = (ats_sum_ptr_type)0 ; tmp330 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp330, atslab_0, tmp329) ; ats_selptrset_mac(anairiats_sum_4, tmp330, atslab_1, tmp331) ; tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp328, tmp330) ; return (tmp327) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_uchar_int_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 20642(line=967, offs=5) -- 20799(line=973, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_67 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; __ats_lab_auxmain_67: tmp337 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (arg0) ; tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0float_t0ype) ; tmp340 = (ats_sum_ptr_type)0 ; tmp339 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp339, atslab_0, tmp337) ; ats_selptrset_mac(anairiats_sum_4, tmp339, atslab_1, tmp340) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp338, tmp339) ; return (tmp336) ; } /* end of [auxmain_67] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 20870(line=978, offs=19) -- 20918(line=979, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_float_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_float_t0ype: tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_float_kind) ; tmp341 = auxmain_67 (tmp342) ; return (tmp341) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_float_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 20981(line=983, offs=20) -- 21030(line=984, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype: tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_double_kind) ; tmp343 = auxmain_67 (tmp344) ; return (tmp343) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 21095(line=988, offs=21) -- 21145(line=989, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ldouble_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ldouble_t0ype: tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ldouble_kind) ; tmp345 = auxmain_67 (tmp346) ; return (tmp345) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ldouble_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 21376(line=1004, offs=19) -- 21427(line=1005, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type () { /* local vardec */ ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type: tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_type) ; tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp350) ; return (tmp349) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 21493(line=1009, offs=23) -- 21732(line=1018, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_int_type (ats_size_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_int_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_int_type: tmp353 = atspre_int_of_size (arg0) ; tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp353) ; tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type) ; tmp356 = (ats_sum_ptr_type)0 ; tmp355 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp355, atslab_0, tmp352) ; ats_selptrset_mac(anairiats_sum_4, tmp355, atslab_1, tmp356) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp354, tmp355) ; return (tmp351) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_int_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 21798(line=1021, offs=25) -- 21904(line=1025, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_index_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_index_type: tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type) ; tmp360 = (ats_sum_ptr_type)0 ; tmp359 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp359, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp359, atslab_1, tmp360) ; tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp358, tmp359) ; return (tmp357) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_index_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 22124(line=1038, offs=3) -- 22258(line=1043, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_float (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_float: tmp364 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float (arg0) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_float) ; tmp367 = (ats_sum_ptr_type)0 ; tmp366 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp366, atslab_0, tmp364) ; ats_selptrset_mac(anairiats_sum_4, tmp366, atslab_1, tmp367) ; tmp363 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp365, tmp366) ; return (tmp363) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_float] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 22325(line=1047, offs=3) -- 22461(line=1052, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_string (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_string: tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string (arg0) ; tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_string) ; tmp372 = (ats_sum_ptr_type)0 ; tmp371 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp371, atslab_0, tmp369) ; ats_selptrset_mac(anairiats_sum_4, tmp371, atslab_1, tmp372) ; tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp370, tmp371) ; return (tmp368) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_literal_string] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 22599(line=1060, offs=16) -- 22673(line=1064, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_type () { /* local vardec */ ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_type: tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_type) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp375) ; return (tmp374) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 22825(line=1074, offs=21) -- 22935(line=1081, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type: tmp378 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type) ; tmp380 = (ats_sum_ptr_type)0 ; tmp379 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp379, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp379, atslab_1, tmp380) ; tmp377 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp378, tmp379) ; return (tmp377) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_addr_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 23006(line=1085, offs=3) -- 23289(line=1098, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_bool_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type: tmp382 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp383 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp382), atslab_s2exp_node) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp383)->tag != 17) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp384 = ats_caselptrlab_mac(anairiats_sum_6, tmp383, atslab_0) ; tmp385 = ats_caselptrlab_mac(anairiats_sum_6, tmp383, atslab_1) ; tmp386 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type, tmp384) ; if (!tmp386) { goto __ats_lab_29_1 ; } if (tmp385 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 23184(line=1094, offs=9) -- 23213(line=1094, offs=38)") ; } tmp387 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp381 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp381, atslab_0, tmp387) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp381 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp381) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 23443(line=1107, offs=18) -- 23496(line=1108, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype: tmp390 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype) ; tmp389 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp390) ; return (tmp389) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 23627(line=1116, offs=17) -- 23676(line=1117, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_unit_prop () { /* local vardec */ ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_unit_prop: tmp393 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_prop) ; tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp393) ; return (tmp392) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_unit_prop] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 23782(line=1122, offs=17) -- 23831(line=1123, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_unit_view () { /* local vardec */ ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_unit_view: tmp396 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_view) ; tmp395 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp396) ; return (tmp395) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_unit_view] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 23989(line=1134, offs=3) -- 24079(line=1138, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_exception_vtype () { /* local vardec */ ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_exception_vtype: tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_exception_vtype) ; tmp398 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp399) ; return (tmp398) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_exception_vtype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 24268(line=1147, offs=3) -- 24418(line=1152, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_arrpsz_vt0ype_int_vt0ype (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_arrpsz_vt0ype_int_vt0ype: tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (arg1) ; tmp403 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_arrpsz_vt0ype_int_vt0ype) ; tmp406 = (ats_sum_ptr_type)0 ; tmp405 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp405, atslab_0, tmp402) ; ats_selptrset_mac(anairiats_sum_4, tmp405, atslab_1, tmp406) ; tmp404 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp404, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp404, atslab_1, tmp405) ; tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp403, tmp404) ; return (tmp401) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_arrpsz_vt0ype_int_vt0ype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 24866(line=1175, offs=3) -- 25014(line=1180, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_t0ype_int_type (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_t0ype_int_type: tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (arg1) ; tmp410 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type) ; tmp413 = (ats_sum_ptr_type)0 ; tmp412 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp412, atslab_0, tmp409) ; ats_selptrset_mac(anairiats_sum_4, tmp412, atslab_1, tmp413) ; tmp411 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp411, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp411, atslab_1, tmp412) ; tmp408 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp410, tmp411) ; return (tmp408) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_t0ype_int_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 25172(line=1187, offs=3) -- 25321(line=1192, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_vt0ype_int_vtype (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_vt0ype_int_vtype: tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (arg1) ; tmp417 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype) ; tmp420 = (ats_sum_ptr_type)0 ; tmp419 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp419, atslab_0, tmp416) ; ats_selptrset_mac(anairiats_sum_4, tmp419, atslab_1, tmp420) ; tmp418 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp418, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp418, atslab_1, tmp419) ; tmp415 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp417, tmp418) ; return (tmp415) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_vt0ype_int_vtype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 25486(line=1202, offs=3) -- 25617(line=1213, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vbox_view_prop (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vbox_view_prop: tmp423 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vbox_view_prop) ; tmp425 = (ats_sum_ptr_type)0 ; tmp424 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp424, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp424, atslab_1, tmp425) ; tmp422 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp423, tmp424) ; return (tmp422) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vbox_view_prop] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 25690(line=1217, offs=3) -- 25978(line=1232, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_vbox_view_prop (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_bool_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_vbox_view_prop: tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp428 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp427), atslab_s2exp_node) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp428)->tag != 17) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp429 = ats_caselptrlab_mac(anairiats_sum_6, tmp428, atslab_0) ; tmp430 = ats_caselptrlab_mac(anairiats_sum_6, tmp428, atslab_1) ; tmp431 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vbox_view_prop, tmp429) ; if (!tmp431) { goto __ats_lab_31_1 ; } if (tmp430 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 25873(line=1228, offs=9) -- 25902(line=1228, offs=38)") ; } tmp432 = ats_caselptrlab_mac(anairiats_sum_4, tmp430, atslab_0) ; tmp426 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp426, atslab_0, tmp432) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp426 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp426) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_vbox_view_prop] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 26139(line=1241, offs=3) -- 26272(line=1252, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ref_vt0ype_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ref_vt0ype_type: tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ref_vt0ype_type) ; tmp437 = (ats_sum_ptr_type)0 ; tmp436 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp436, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp436, atslab_1, tmp437) ; tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp435, tmp436) ; return (tmp434) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ref_vt0ype_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 26345(line=1256, offs=3) -- 26630(line=1269, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_bool_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type: tmp439 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp440 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp439), atslab_s2exp_node) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp440)->tag != 17) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp441 = ats_caselptrlab_mac(anairiats_sum_6, tmp440, atslab_0) ; tmp442 = ats_caselptrlab_mac(anairiats_sum_6, tmp440, atslab_1) ; tmp443 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ref_vt0ype_type, tmp441) ; if (!tmp443) { goto __ats_lab_33_1 ; } if (tmp442 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 26525(line=1265, offs=9) -- 26554(line=1265, offs=38)") ; } tmp444 = ats_caselptrlab_mac(anairiats_sum_4, tmp442, atslab_0) ; tmp438 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp438, atslab_0, tmp444) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp438 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp438) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 26792(line=1278, offs=3) -- 26924(line=1289, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_t0ype_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_t0ype_type: tmp447 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_t0ype_type) ; tmp449 = (ats_sum_ptr_type)0 ; tmp448 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp448, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp448, atslab_1, tmp449) ; tmp446 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp447, tmp448) ; return (tmp446) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_t0ype_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 26999(line=1293, offs=3) -- 27284(line=1306, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_t0ype_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_bool_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_t0ype_type: tmp451 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp452 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp451), atslab_s2exp_node) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp452)->tag != 17) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp453 = ats_caselptrlab_mac(anairiats_sum_6, tmp452, atslab_0) ; tmp454 = ats_caselptrlab_mac(anairiats_sum_6, tmp452, atslab_1) ; tmp455 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_t0ype_type, tmp453) ; if (!tmp455) { goto __ats_lab_35_1 ; } if (tmp454 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 27179(line=1302, offs=9) -- 27208(line=1302, offs=38)") ; } tmp456 = ats_caselptrlab_mac(anairiats_sum_4, tmp454, atslab_0) ; tmp450 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp450, atslab_0, tmp456) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp450 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp450) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_t0ype_type] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 27457(line=1316, offs=3) -- 27570(line=1325, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_vt0ype_vtype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_vt0ype_vtype: tmp459 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_vt0ype_vtype) ; tmp461 = (ats_sum_ptr_type)0 ; tmp460 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp460, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp460, atslab_1, tmp461) ; tmp458 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp459, tmp460) ; return (tmp458) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_vt0ype_vtype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 27649(line=1329, offs=3) -- 27991(line=1350, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_vt0ype_vtype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_bool_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_vt0ype_vtype: tmp463 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp464 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp463), atslab_s2exp_node) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp464)->tag != 17) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp465 = ats_caselptrlab_mac(anairiats_sum_6, tmp464, atslab_0) ; tmp466 = ats_caselptrlab_mac(anairiats_sum_6, tmp464, atslab_1) ; tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_vt0ype_vtype, tmp465) ; if (!tmp467) { goto __ats_lab_37_1 ; } if (tmp466 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_stacst2.dats: 27856(line=1345, offs=5) -- 27891(line=1346, offs=26)") ; } tmp468 = ats_caselptrlab_mac(anairiats_sum_4, tmp466, atslab_0) ; tmp462 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp462, atslab_0, tmp468) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp462 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp462) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_vt0ype_vtype] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 28160(line=1359, offs=23) -- 28213(line=1361, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_t0ype_uni () { /* local vardec */ ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_t0ype_uni: tmp471 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_uni) ; tmp470 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp471) ; return (tmp470) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_t0ype_uni] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 28357(line=1369, offs=23) -- 28410(line=1371, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_t0ype_exi () { /* local vardec */ ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_t0ype_exi: tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_exi) ; tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp474) ; return (tmp473) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_t0ype_exi] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 28580(line=1381, offs=24) -- 28634(line=1383, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_vt0ype_uni () { /* local vardec */ ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_vt0ype_uni: tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_uni) ; tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp477) ; return (tmp476) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_vt0ype_uni] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 28782(line=1391, offs=24) -- 28836(line=1393, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_vt0ype_exi () { /* local vardec */ ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_vt0ype_exi: tmp480 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_exi) ; tmp479 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp480) ; return (tmp479) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_vt0ype_exi] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 28927(line=1400, offs=3) -- 29015(line=1408, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_nil: tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_nil) ; tmp481 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp482) ; return (tmp481) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_nil] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 29074(line=1412, offs=3) -- 29191(line=1420, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_cons (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_cons: tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_cons) ; tmp487 = (ats_sum_ptr_type)0 ; tmp486 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp486, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp486, atslab_1, tmp487) ; tmp485 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp485, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp485, atslab_1, tmp486) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp484, tmp485) ; return (tmp483) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_cons] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 29294(line=1429, offs=1) -- 29439(line=1434, offs=38) */ ATSstaticdec() ats_ptr_type auxlst_101 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; __ats_lab_auxlst_101: 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: tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_nil () ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp490 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp491 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp492 = auxlst_101 (tmp491) ; tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_cons (tmp490, tmp492) ; break ; } while (0) ; return (tmp489) ; } /* end of [auxlst_101] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 29274(line=1426, offs=3) -- 29478(line=1438, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_list (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp493) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_list: tmp493 = auxlst_101 (arg0) ; tmp488 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg (tmp493) ; return (tmp488) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_list] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 29637(line=1447, offs=17) -- 29748(line=1455, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_v (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_v: tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_view_view) ; tmp498 = (ats_sum_ptr_type)0 ; tmp497 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp497, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp497, atslab_1, tmp498) ; tmp495 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp496, tmp497) ; return (tmp495) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_v] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 29910(line=1463, offs=19) -- 30024(line=1467, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_vt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_vt: tmp501 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_vt0ype_vt0ype) ; tmp503 = (ats_sum_ptr_type)0 ; tmp502 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp502, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp502, atslab_1, tmp503) ; tmp500 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp501, tmp502) ; return (tmp500) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_vt] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 30418(line=1489, offs=5) -- 31246(line=1517, offs=4) */ ATSstaticdec() ats_ptr_type aux_105 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_bool_type, tmp516) ; ATSlocal (ats_bool_type, tmp517) ; ATSlocal (ats_bool_type, tmp518) ; ATSlocal (ats_bool_type, tmp519) ; ATSlocal (ats_bool_type, tmp520) ; ATSlocal (ats_bool_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; __ats_lab_aux_105: tmp512 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp513 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp512) ; tmp514 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp513), atslab_s2exp_node) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp514)->tag != 4) { goto __ats_lab_48_0 ; } __ats_lab_40_1: tmp515 = ats_caselptrlab_mac(anairiats_sum_3, tmp514, atslab_0) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: tmp516 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effnil, tmp515) ; if (!tmp516) { goto __ats_lab_42_1 ; } tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: tmp517 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effall, tmp515) ; if (!tmp517) { goto __ats_lab_43_1 ; } tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp518 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effntm, tmp515) ; if (!tmp518) { goto __ats_lab_44_1 ; } tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ntm) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: tmp519 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effexn, tmp515) ; if (!tmp519) { goto __ats_lab_45_1 ; } tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_exn) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: tmp520 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effref, tmp515) ; if (!tmp520) { goto __ats_lab_46_1 ; } tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_ref) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effwrt, tmp515) ; if (!tmp521) { goto __ats_lab_47_1 ; } tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_wrt) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: __ats_lab_47_1: tmp511 = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp514)->tag != 7) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp511 = arg0 ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp514)->tag != 8) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp511 = arg0 ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp514)->tag != 14) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp522 = ats_caselptrlab_mac(anairiats_sum_3, tmp514, atslab_0) ; tmp511 = tmp522 ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff) ; tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp (tmp523) ; break ; } while (0) ; return (tmp511) ; } /* end of [aux_105] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 30398(line=1487, offs=14) -- 31372(line=1526, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2eff_hnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp524) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2eff_hnfize: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp510 = arg0 ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp524 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp510 = aux_105 (arg0, tmp524) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp510 = arg0 ; break ; } while (0) ; return (tmp510) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2eff_hnfize] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 31961(line=1561, offs=1) -- 32431(line=1588, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__at_vt0ype_addr_view_assume () { /* local vardec */ // ATSlocal_void (tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__at_vt0ype_addr_view_assume: tmp527 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_at_vt0ype_addr_view) ; tmp528 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp527) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; tmp531 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp529) ; tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp530) ; tmp533 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp531, tmp532) ; tmp535 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp535, atslab_0, tmp529) ; tmp536 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_4, tmp535), atslab_1) ; tmp537 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp537, atslab_0, tmp530) ; ats_ptrget_mac(ats_ptr_type, tmp536) = tmp537 ; tmp536 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_4, tmp537), atslab_1) ; tmp537 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp536) = tmp537 ; tmp534 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (tmp528, tmp535, tmp533) ; tmp538 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp538, atslab_0, tmp534) ; /* tmp526 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (tmp527, tmp538) ; return /* (tmp526) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__at_vt0ype_addr_view_assume] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 32673(line=1603, offs=1) -- 33028(line=1628, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__sizeof_t0ype_int_assume () { /* local vardec */ // ATSlocal_void (tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__sizeof_t0ype_int_assume: tmp541 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sizeof_t0ype_int) ; tmp542 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; tmp543 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp542) ; tmp544 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof (tmp543) ; tmp545 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp541) ; tmp547 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp547, atslab_0, tmp542) ; tmp548 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_4, tmp547), atslab_1) ; tmp549 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp548) = tmp549 ; tmp546 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (tmp545, tmp547, tmp544) ; tmp550 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp550, atslab_0, tmp546) ; /* tmp540 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (tmp541, tmp550) ; return /* (tmp540) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__sizeof_t0ype_int_assume] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 33456(line=1652, offs=3) -- 33738(line=1664, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_assume (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_ptr_type, tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_assume: tmp556 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (arg0) ; tmp557 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp556) ; tmp558 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (arg1) ; tmp559 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp558) ; tmp560 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar (tmp559) ; tmp562 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp562, atslab_0, tmp558) ; tmp563 = &ats_selptr_mac(ats_castptr_mac(anairiats_sum_4, tmp562), atslab_1) ; tmp564 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp563) = tmp564 ; tmp561 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (tmp557, tmp562, tmp560) ; tmp565 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp565, atslab_0, tmp561) ; /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (tmp556, tmp565) ; return /* (tmp555) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_assume] */ /* // /tmp/ATS-Postiats/src/pats_stacst2.dats: 34165(line=1684, offs=19) -- 34528(line=1695, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__stacst2_initialize () { /* local vardec */ // ATSlocal_void (tmp571) ; // ATSlocal_void (tmp572) ; // ATSlocal_void (tmp573) ; // ATSlocal_void (tmp574) ; // ATSlocal_void (tmp575) ; // ATSlocal_void (tmp576) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__stacst2_initialize: /* tmp572 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__sizeof_t0ype_int_assume () ; /* tmp573 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__at_vt0ype_addr_view_assume () ; /* tmp574 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_assume (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_prop_prop, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; /* tmp575 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_assume (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_view_view, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; /* tmp576 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_assume (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_t0ype_t0ype, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__invar_assume (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_vt0ype_vt0ype, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; return /* (tmp571) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__stacst2_initialize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp37, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp38, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp39, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp40, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp41, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp42, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp43, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp44, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp45, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp46, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp47, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp48, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp49, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp50, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp51, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp52, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp53, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp54, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp55, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp56, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp57, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp58, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp59, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp60, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp61, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp62, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp63, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp64, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp65, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp66, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp67, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp68, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp69, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp70, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp71, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp72, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp73, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp74, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp75, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp76, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp77, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp78, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp79, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp80, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp81, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp82, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp83, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp84, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp85, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp86, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp157, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp158, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp162, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp163, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp182, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp183, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp184, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp185, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp186, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp187, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp188, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp189, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp190, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp191, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp192, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp193, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp294, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp295, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp314, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp315, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp323, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp324, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp332, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp333, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp334, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp335, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp347, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp348, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp361, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp362, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp373, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp376, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp388, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp391, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp394, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp397, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp400, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp407, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp414, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp421, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp433, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp445, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp457, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp469, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp472, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp475, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp478, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp494, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp499, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp504, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp505, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp506, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp507, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp508, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp509, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp525, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp539, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp551, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp552, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp553, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp554, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp566, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp567, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp568, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp569, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp570, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("true_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_true_bool, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_true_bool = statmp37 ; statmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("false_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_false_bool, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_false_bool = statmp38 ; statmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("neg_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_bool, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_bool = statmp39 ; statmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("add_bool_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_bool_bool, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_bool_bool = statmp40 ; statmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("mul_bool_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_bool_bool, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_bool_bool = statmp41 ; statmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("eq_bool_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_bool_bool, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_bool_bool = statmp42 ; statmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("neq_bool_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_bool_bool, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_bool_bool = statmp43 ; statmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("neg_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_int = statmp44 ; statmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("add_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_int_int = statmp45 ; statmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("sub_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_int_int = statmp46 ; statmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("mul_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_int_int = statmp47 ; statmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("div_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_div_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_div_int_int = statmp48 ; statmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ndiv_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndiv_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndiv_int_int = statmp49 ; statmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("idiv_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idiv_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idiv_int_int = statmp50 ; statmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("lt_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_int_int = statmp51 ; statmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("lte_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_int_int = statmp52 ; statmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("gt_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_int_int = statmp53 ; statmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("gte_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_int_int = statmp54 ; statmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("eq_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_int_int = statmp55 ; statmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("neq_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_int_int = statmp56 ; statmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("abs_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_abs_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_abs_int = statmp57 ; statmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("absrel_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_absrel_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_absrel_int_int = statmp58 ; statmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("sgn_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgn_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgn_int = statmp59 ; statmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("sgnrel_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgnrel_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgnrel_int_int = statmp60 ; statmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("max_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_max_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_max_int_int = statmp61 ; statmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("min_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_min_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_min_int_int = statmp62 ; statmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("maxrel_int_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_maxrel_int_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_maxrel_int_int_int = statmp63 ; statmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("minrel_int_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_minrel_int_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_minrel_int_int_int = statmp64 ; statmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ndivrel_int_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndivrel_int_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndivrel_int_int_int = statmp65 ; statmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("idivrel_int_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idivrel_int_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idivrel_int_int_int = statmp66 ; statmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ifint_bool_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifint_bool_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifint_bool_int_int = statmp67 ; statmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ifintrel_bool_int_int_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifintrel_bool_int_int_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifintrel_bool_int_int_int = statmp68 ; statmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("int_of_addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_of_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_of_addr = statmp69 ; statmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("addr_of_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_addr_of_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_addr_of_int = statmp70 ; statmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("null_addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_null_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_null_addr = statmp71 ; statmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("lt_addr_addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_addr_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_addr_addr = statmp72 ; statmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("lte_addr_addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_addr_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_addr_addr = statmp73 ; statmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("gt_addr_addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_addr_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_addr_addr = statmp74 ; statmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("gte_addr_addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_addr_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_addr_addr = statmp75 ; statmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("eq_addr_addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_addr_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_addr_addr = statmp76 ; statmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("neq_addr_addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_addr_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_addr_addr = statmp77 ; statmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("add_addr_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_addr_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_addr_int = statmp78 ; statmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("sub_addr_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_int = statmp79 ; statmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("sub_addr_addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_addr = statmp80 ; statmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("types_nil")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_nil, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_nil = statmp81 ; statmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("types_cons")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_cons, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_types_cons = statmp82 ; statmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("lte_cls_cls")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_cls_cls, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_cls_cls = statmp83 ; statmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("gte_cls_cls")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_cls_cls, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_cls_cls = statmp84 ; statmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("lterel_cls_cls")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lterel_cls_cls, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lterel_cls_cls = statmp85 ; statmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("gterel_cls_cls")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gterel_cls_cls, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gterel_cls_cls = statmp86 ; statmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("atstkind_type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstkind_type, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstkind_type = statmp157 ; statmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("atstkind_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstkind_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstkind_t0ype = statmp158 ; statmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("bool_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_t0ype = statmp162 ; statmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("bool_bool_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype = statmp163 ; statmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("int_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_kind = statmp182 ; statmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("uint_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uint_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uint_kind = statmp183 ; statmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("lint_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lint_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lint_kind = statmp184 ; statmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ulint_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ulint_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ulint_kind = statmp185 ; statmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("llint_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_llint_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_llint_kind = statmp186 ; statmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ullint_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ullint_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ullint_kind = statmp187 ; statmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("size_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_size_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_size_kind = statmp188 ; statmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ssize_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ssize_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ssize_kind = statmp189 ; statmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("g0int_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype = statmp190 ; statmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("g1int_int_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype = statmp191 ; statmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("g0uint_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype = statmp192 ; statmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("g1uint_int_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype = statmp193 ; statmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("char_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_t0ype = statmp294 ; statmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("char_int_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype = statmp295 ; statmp314 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("schar_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_t0ype = statmp314 ; statmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("schar_int_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_int_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_int_t0ype = statmp315 ; statmp323 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("uchar_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_t0ype = statmp323 ; statmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("uchar_int_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_int_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_int_t0ype = statmp324 ; statmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("float_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_float_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_float_kind = statmp332 ; statmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("double_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_double_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_double_kind = statmp333 ; statmp334 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ldouble_kind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ldouble_kind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ldouble_kind = statmp334 ; statmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("g0float_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0float_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0float_t0ype = statmp335 ; statmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("string_type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_type, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_type = statmp347 ; statmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("string_int_type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type = statmp348 ; statmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("literal_float")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_float, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_float = statmp361 ; statmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("literal_string")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_string, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_literal_string = statmp362 ; statmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ptr_type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_type, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_type = statmp373 ; statmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ptr_addr_type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type = statmp376 ; statmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("atsvoid_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype = statmp388 ; statmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("unit_p")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_prop, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_prop = statmp391 ; statmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("unit_v")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_view, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_unit_view = statmp394 ; statmp397 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("exception_vtype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_exception_vtype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_exception_vtype = statmp397 ; statmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("arrpsz_vt0ype_int_vt0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_arrpsz_vt0ype_int_vt0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_arrpsz_vt0ype_int_vt0ype = statmp400 ; statmp407 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("list_t0ype_int_type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type = statmp407 ; statmp414 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("list_vt0ype_int_vtype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype = statmp414 ; statmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("vbox_view_prop")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vbox_view_prop, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vbox_view_prop = statmp421 ; statmp433 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("ref_vt0ype_type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ref_vt0ype_type, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ref_vt0ype_type = statmp433 ; statmp445 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("lazy_t0ype_type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_t0ype_type, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_t0ype_type = statmp445 ; statmp457 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("lazy_vt0ype_vtype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_vt0ype_vtype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lazy_vt0ype_vtype = statmp457 ; statmp469 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("bottom_t0ype_uni")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_uni, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_uni = statmp469 ; statmp472 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("bottom_t0ype_exi")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_exi, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_t0ype_exi = statmp472 ; statmp475 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("bottom_vt0ype_uni")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_uni, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_uni = statmp475 ; statmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("bottom_vt0ype_exi")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_exi, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bottom_vt0ype_exi = statmp478 ; statmp494 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("vcopyenv_view_view")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_view_view, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_view_view = statmp494 ; statmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("vcopyenv_vt0ype_vt0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_vt0ype_vt0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_vcopyenv_vt0ype_vt0ype = statmp499 ; statmp504 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("effnil")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effnil, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effnil = statmp504 ; statmp505 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("effall")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effall, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effall = statmp505 ; statmp506 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("effntm")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effntm, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effntm = statmp506 ; statmp507 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("effexn")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effexn, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effexn = statmp507 ; statmp508 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("effref")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effref, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effref = statmp508 ; statmp509 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("effwrt")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effwrt, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_effwrt = statmp509 ; statmp525 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("at_vt0ype_addr_view")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_at_vt0ype_addr_view, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_at_vt0ype_addr_view = statmp525 ; statmp539 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("sizeof_t0ype_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sizeof_t0ype_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sizeof_t0ype_int = statmp539 ; statmp551 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("invar_prop_prop")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_prop_prop, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_prop_prop = statmp551 ; statmp552 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("invar_view_view")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_view_view, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_view_view = statmp552 ; statmp553 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("invar_t0ype_t0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_t0ype_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_t0ype_t0ype = statmp553 ; statmp554 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("invar_vt0ype_vt0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_vt0ype_vt0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_invar_vt0ype_vt0ype = statmp554 ; statmp566 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("atstype_int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_int = statmp566 ; statmp567 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("atstype_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_bool, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_bool = statmp567 ; statmp568 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("atstype_uint")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_uint, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_uint = statmp568 ; statmp569 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("atstype_size")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_size, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_size = statmp569 ; statmp570 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_make (ATSstrcst("atstype_ssize")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_ssize, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_ssize = statmp570 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_stacst2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_constraint3_solve_dats.c0000644000175000017500000100455713431250607024220 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "libc/CATS/gmp.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ #include "pats_lintprgm_myint.cats" /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_rec_2 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_c3nstr_loc ; ats_ptr_type atslab_c3nstr_kind ; ats_ptr_type atslab_c3nstr_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_c3nstroptref_loc ; ats_ptr_type atslab_c3nstroptref_ref ; } anairiats_rec_12 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_13 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_basics_2esats__CK_case_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKcase_exhaustiveness_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isnat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isdec_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_fin_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_lvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_vbox_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKloop_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRitmlst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRsolverify_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsvar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMhypo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsVar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_ref_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMdisj_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsolassert_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICvec_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICveclst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICerr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Evar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eunit_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneg_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebadd_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebmul_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebeq_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneq_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebineq_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebdom_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eicff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eisum_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eerr_19) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__Finished) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTcons_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTmark_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTcons_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTmark_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_neg_int) (ats_int_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_int_type, atspre_div_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_mod_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_gcd_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_int_type, atspre_compare_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_uint_uint) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, atspre_lte_uint_uint) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, atspre_gte_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_ineg) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilte) (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_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_imax) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_size_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_free) (ats_ptr_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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_c3nstr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_freetop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvec0_free) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_nil) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_is_member) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_add) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_fvs) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3exp) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_pop) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_push) (ats_ref_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_extract) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_svar) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_sbexp) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_h3ypo) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_2, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_make) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atslib_mpz_neg1) (ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_add2_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_sub2_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_mul2_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_fprint_mpz) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_make) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_choose) (ats_ref_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg) (ats_ptr_type, ats_uint_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main) (ats_ref_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout0_addback_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02435_ () ; static ats_void_type fprint_myint_04718_gmpknd (ats_ptr_type arg0, gmpknd arg1) ; static ats_void_type print_myint_04719_gmpknd (gmpknd arg0) ; static ats_void_type prerr_myint_04720_gmpknd (gmpknd arg0) ; static gmpknd myint_make_int_04721_gmpknd (ats_int_type arg0) ; static gmpknd myint_make_intinf_04722_gmpknd (ats_ptr_type arg0) ; static gmpknd myint_copy_04724_gmpknd (gmpknd arg0) ; static ats_void_type myint_free_04723_gmpknd (gmpknd arg0) ; static gmpknd neg_myint_04725_gmpknd (gmpknd arg0) ; static gmpknd neg1_myint_04726_gmpknd (gmpknd arg0) ; static gmpknd add01_myint_myint_04728_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd sub01_myint_myint_04729_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd add_myint_int_04727_gmpknd (gmpknd arg0, ats_int_type arg1) ; static gmpknd mul01_myint_myint_04730_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd mul10_myint_myint_04731_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd mul11_myint_myint_04732_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd div01_myint_myint_04733_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd ediv01_myint_myint_04735_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd mod01_myint_myint_04736_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd mod11_myint_myint_04737_gmpknd (gmpknd arg0, gmpknd arg1) ; static gmpknd gcd01_myint_myint_04738_gmpknd (gmpknd arg0, gmpknd arg1) ; static ats_int_type compare_myint_int_04745_gmpknd (gmpknd arg0, ats_int_type arg1) ; static ats_int_type compare_myint_myint_04750_gmpknd (gmpknd arg0, gmpknd arg1) ; static ats_void_type prerr_warning3_loc_02446_ (ats_ptr_type arg0) ; static ats_void_type loop_29 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type array_ptr_alloc_01563_gmpknd (ats_size_type arg0) ; static ats_ptr_type myintvec0_make_04762_gmpknd (ats_int_type arg0) ; static ats_ptr_type myintvec_make_04764_gmpknd (ats_int_type arg0) ; static ats_ptr_type array_ptr_takeout_01586_gmpknd (ats_ptr_type arg0, ats_size_type arg1) ; static ats_void_type myintvec_addby_cffvar_05289_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, gmpknd arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_void_type myintvec_add_int_04760_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type clear_37 (ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_size_type arg3) ; static ats_void_type array_ptr_clear_fun_01576_gmpknd (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) ; static ats_void_type __ats_fun_38 (ats_ref_type arg0) ; static ats_void_type myintvec_free_04765_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type icnstrlst_negate_04776_gmpknd (ats_ptr_type arg0) ; static ats_ptr_type icnstr_negate_04775_gmpknd (ats_ptr_type arg0) ; static ats_void_type loop_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_ptr_type myintvec_copy_04788_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type icnstrlst_copy_04774_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type icnstr_copy_04773_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type myintvec_addby_const_05288_gmpknd (ats_ptr_type arg0, gmpknd arg1) ; static ats_void_type myintvec_addby_s3exp_05050_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type myintvec_addby_s3explst_05063_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_ptr_type s3exp2myintvec_04875_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type prerr_error3_loc_02441_ (ats_ptr_type arg0) ; static ats_ptr_type s3exp2icnstr_04874_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_ptr_type loop_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type loop_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type indexset_make_s3exp_05084_ats_abs_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_57 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type myiveqlst_get_last_05246_gmpknd (ats_ptr_type arg0) ; static ats_int_type myintvec_compare_at_04761_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ; static gmpknd myintvec_get_at_04758_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type loop_63 (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type myintvec_scale_04792_gmpknd (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type loop_65 (ats_ptr_type arg0, gmpknd arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type myintvec_addby_cff_04795_gmpknd (ats_ptr_type arg0, gmpknd arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type myintvec_elimeq_at_05235_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ; static ats_void_type myintvec_elimeqlst_rev_04571_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type myintvec_elimeqlst_05247_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_bool_type eq_myint_int_04743_gmpknd (gmpknd arg0, ats_int_type arg1) ; static ats_bool_type loop_68 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_bool_type gte_myint_int_04742_gmpknd (gmpknd arg0, ats_int_type arg1) ; static ats_bool_type lt_myint_int_04739_gmpknd (gmpknd arg0, ats_int_type arg1) ; static ats_bool_type neq_myint_int_04744_gmpknd (gmpknd arg0, ats_int_type arg1) ; static ats_int_type myintvec_inspect_04779_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_int_type myintvec_inspect_lt_04780_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type loop_74 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type myintvec_negate_04791_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type loop_77 (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) ; static gmpknd ptr0_get_01759_gmpknd (ats_ptr_type arg0) ; static ats_void_type loop_80 (ats_int_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type loop_80_closure_make (ats_int_type env0, ats_ptr_type env1) ; static ats_void_type loop_80_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type myintvec_cffgcd_main_04131_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static gmpknd myintvec_cffgcd_04785_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_bool_type gt_myint_int_04741_gmpknd (gmpknd arg0, ats_int_type arg1) ; static ats_int_type myintvec_normalize_05215_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type myintvec_normalize_gte_04786_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type auxlt_04604_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) ; static ats_void_type loop_85 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ref_type arg3) ; static ats_ptr_type myivlst_elimeqlst_05252_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_int_type myintvec_inspect_gte_04781_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type myintveclst_inspect_gte_04784_gmpknd (ats_ref_type arg0, ats_int_type arg1) ; static ats_void_type myintveclst_normalize_gte_04787_gmpknd (ats_ref_type arg0, ats_int_type arg1) ; static ats_void_type auxbeg_92 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) ; static ats_void_type loop_96 (gmpknd arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_ptr_type myintvec_copy_cff_04789_gmpknd (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_ptr_type myintvec_combine_at_05228_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ; static ats_int_type auxcomb_93 (ats_int_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ; static ats_void_type myintveclst_free_04768_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type auxcomblst_97 (ats_int_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ; static ats_int_type myintveclst_split_at_05229_gmpknd (ats_ref_type arg0, ats_int_type arg1, ats_int_type arg2) ; static ats_int_type solve_90 (ats_ref_type arg0, ats_ref_type arg1, ats_int_type arg2) ; static ats_int_type myintveclst_solve_05234_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_int_type auxcont_04626_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_int_type arg6) ; static ats_int_type auxgte_04611_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) ; static ats_int_type myintvec_inspect_eq_04782_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_bool_type lt_myint_myint_04746_gmpknd (gmpknd arg0, gmpknd arg1) ; static ats_void_type loop_103 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_bool_type arg3, ats_ref_type arg4, ats_ref_type arg5) ; static ats_int_type myintvec_get_index_of_absmincff_05230_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type myiveqlst_get_prev_04542_gmpknd (ats_ptr_type arg0) ; static ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type myiveqlst_cons_05243_gmpknd (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_int_type auxeq_04618_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) ; static ats_int_type myintvec_inspect_neq_04783_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type auxneq_04636_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ref_type arg5) ; static ats_int_type loop_113 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_115 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_117 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_vt_split_at_01505_ats_ptr_type (ats_ref_type arg0, ats_int_type arg1) ; static ats_int_type auxmain_conj_05254_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_ref_type arg6) ; static ats_ptr_type myivlst_mark_05238_gmpknd (ats_ptr_type arg0) ; static ats_ptr_type myiveqlst_mark_05244_gmpknd (ats_ptr_type arg0) ; static ats_ptr_type myivlst_unmark_05239_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type myiveqlst_unmark_05245_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type icnstr_free_04777_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type icnstrlst_free_04778_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type revapp_126 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type auxmain_disj_05255_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_ref_type arg6, ats_ptr_type arg7) ; static ats_int_type auxmain_05253_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5) ; static ats_void_type myivlst_free_05237_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type myiveqlst_free_05241_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type icnstrlst_solve_04799_gmpknd (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2) ; static ats_int_type auxsolve_05097_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type loop_131 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type prlst_133 (ats_ptr_type arg0) ; static ats_void_type prerr_c3nstr_if_135 (ats_uint_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_142 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 1882(line=66, offs=18) -- 1917(line=66, offs=53) */ ATSstaticdec() ats_void_type prerr_FILENAME_02435_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02435_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_constraint3_solve")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02435_] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2251(line=82, offs=3) -- 2419(line=90, offs=4) */ ATSstaticdec() ats_void_type fprint_myint_04718_gmpknd (ats_ptr_type arg0, gmpknd arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_fprint_myint_04718_gmpknd: tmp2 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp1 = */ atslib_fprint_mpz (arg0, tmp2) ; return /* (tmp1) */ ; } /* end of [fprint_myint_04718_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2486(line=93, offs=21) -- 2528(line=93, offs=63) */ ATSstaticdec() ats_void_type print_myint_04719_gmpknd (gmpknd arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab_print_myint_04719_gmpknd: /* tmp3 = */ fprint_myint_04718_gmpknd (stdout, arg0) ; return /* (tmp3) */ ; } /* end of [print_myint_04719_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2559(line=95, offs=21) -- 2601(line=95, offs=63) */ ATSstaticdec() ats_void_type prerr_myint_04720_gmpknd (gmpknd arg0) { /* local vardec */ // ATSlocal_void (tmp4) ; __ats_lab_prerr_myint_04720_gmpknd: /* tmp4 = */ fprint_myint_04718_gmpknd (stderr, arg0) ; return /* (tmp4) */ ; } /* end of [prerr_myint_04720_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2659(line=100, offs=24) -- 2814(line=107, offs=4) */ ATSstaticdec() gmpknd myint_make_int_04721_gmpknd (ats_int_type arg0) { /* local vardec */ ATSlocal (gmpknd, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab_myint_make_int_04721_gmpknd: tmp6 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp7 = ats_selsin_mac(tmp6, atslab_2) ; /* tmp8 = */ atslib_mpz_init_set_int (tmp7, arg0) ; tmp9 = tmp7 ; tmp5 = ats_castfn_mac(gmpknd, tmp9) ; return (tmp5) ; } /* end of [myint_make_int_04721_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3094(line=126, offs=27) -- 3321(line=135, offs=4) */ ATSstaticdec() gmpknd myint_make_intinf_04722_gmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (gmpknd, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab_myint_make_intinf_04722_gmpknd: tmp11 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp12 = ats_selsin_mac(tmp11, atslab_2) ; tmp13 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; /* tmp14 = */ atslib_mpz_init_set_mpz (tmp12, tmp13) ; tmp15 = tmp12 ; tmp10 = ats_castfn_mac(gmpknd, tmp15) ; return (tmp10) ; } /* end of [myint_make_intinf_04722_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3424(line=142, offs=20) -- 3667(line=151, offs=4) */ ATSstaticdec() gmpknd myint_copy_04724_gmpknd (gmpknd arg0) { /* local vardec */ ATSlocal (gmpknd, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab_myint_copy_04724_gmpknd: tmp17 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp18 = ats_selsin_mac(tmp17, atslab_2) ; tmp20 = ats_varget_mac(ats_ptr_type, arg0) ; /* tmp19 = */ atslib_mpz_init_set_mpz (tmp18, tmp20) ; tmp21 = tmp18 ; tmp16 = ats_castfn_mac(gmpknd, tmp21) ; return (tmp16) ; } /* end of [myint_copy_04724_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3750(line=156, offs=20) -- 3877(line=162, offs=4) */ ATSstaticdec() ats_void_type myint_free_04723_gmpknd (gmpknd arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab_myint_free_04723_gmpknd: tmp24 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp23 = */ atslib_mpz_clear (tmp24) ; tmp25 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp22 = */ atspre_ptr_free (tmp25) ; return /* (tmp22) */ ; } /* end of [myint_free_04723_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3961(line=168, offs=3) -- 4079(line=173, offs=2) */ ATSstaticdec() gmpknd neg_myint_04725_gmpknd (gmpknd arg0) { /* local vardec */ ATSlocal (gmpknd, tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_neg_myint_04725_gmpknd: tmp28 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp27 = */ atslib_mpz_neg1 (tmp28) ; tmp26 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp26) ; } /* end of [neg_myint_04725_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 4163(line=179, offs=3) -- 4417(line=187, offs=2) */ ATSstaticdec() gmpknd neg1_myint_04726_gmpknd (gmpknd arg0) { /* local vardec */ ATSlocal (gmpknd, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_neg1_myint_04726_gmpknd: tmp30 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp31 = ats_selsin_mac(tmp30, atslab_2) ; /* tmp32 = */ atslib_mpz_init (tmp31) ; tmp34 = ats_varget_mac(ats_ptr_type, arg0) ; /* tmp33 = */ atslib_mpz_neg2 (tmp31, tmp34) ; tmp35 = tmp31 ; tmp29 = ats_castfn_mac(gmpknd, tmp35) ; return (tmp29) ; } /* end of [neg1_myint_04726_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 4509(line=193, offs=3) -- 4734(line=199, offs=2) */ ATSstaticdec() gmpknd add01_myint_myint_04728_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab_add01_myint_myint_04728_gmpknd: tmp38 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp39 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp37 = */ atslib_mpz_add2_mpz (tmp38, tmp39) ; tmp36 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp36) ; } /* end of [add01_myint_myint_04728_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 4831(line=205, offs=3) -- 5056(line=211, offs=2) */ ATSstaticdec() gmpknd sub01_myint_myint_04729_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp40) ; // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab_sub01_myint_myint_04729_gmpknd: tmp42 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp43 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp41 = */ atslib_mpz_sub2_mpz (tmp42, tmp43) ; tmp40 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp40) ; } /* end of [sub01_myint_myint_04729_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 5149(line=217, offs=3) -- 5278(line=222, offs=2) */ ATSstaticdec() gmpknd add_myint_int_04727_gmpknd (gmpknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (gmpknd, tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab_add_myint_int_04727_gmpknd: tmp46 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; /* tmp45 = */ atslib_mpz_add2_int (tmp46, arg1) ; tmp44 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp44) ; } /* end of [add_myint_int_04727_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 5373(line=228, offs=3) -- 5599(line=235, offs=2) */ ATSstaticdec() gmpknd mul01_myint_myint_04730_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab_mul01_myint_myint_04730_gmpknd: tmp49 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp50 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp48 = */ atslib_mpz_mul2_mpz (tmp49, tmp50) ; tmp47 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp47) ; } /* end of [mul01_myint_myint_04730_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 5677(line=239, offs=3) -- 6142(line=254, offs=2) */ ATSstaticdec() gmpknd mul10_myint_myint_04731_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab_mul10_myint_myint_04731_gmpknd: tmp52 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg1)) ; tmp53 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp52), atslab_2) ; tmp55 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg1)) ; tmp56 = ats_varget_mac(ats_ptr_type, arg0) ; /* tmp54 = */ atslib_mpz_mul3_mpz (tmp55, tmp56, tmp53) ; tmp51 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp51) ; } /* end of [mul10_myint_myint_04731_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 6220(line=258, offs=3) -- 6574(line=268, offs=4) */ ATSstaticdec() gmpknd mul11_myint_myint_04732_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; __ats_lab_mul11_myint_myint_04732_gmpknd: tmp58 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp59 = ats_selsin_mac(tmp58, atslab_2) ; /* tmp60 = */ atslib_mpz_init (tmp59) ; tmp62 = ats_varget_mac(ats_ptr_type, arg0) ; tmp63 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp61 = */ atslib_mpz_mul3_mpz (tmp59, tmp62, tmp63) ; tmp64 = tmp59 ; tmp57 = ats_castfn_mac(gmpknd, tmp64) ; return (tmp57) ; } /* end of [mul11_myint_myint_04732_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 6673(line=274, offs=3) -- 7138(line=288, offs=2) */ ATSstaticdec() gmpknd div01_myint_myint_04733_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab_div01_myint_myint_04733_gmpknd: tmp66 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp67 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp66), atslab_2) ; tmp69 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp70 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp68 = */ atslib_mpz_tdiv3_q_mpz (tmp67, tmp69, tmp70) ; tmp65 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp65) ; } /* end of [div01_myint_myint_04733_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 7238(line=294, offs=3) -- 7701(line=308, offs=2) */ ATSstaticdec() gmpknd ediv01_myint_myint_04735_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; // ATSlocal_void (tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab_ediv01_myint_myint_04735_gmpknd: tmp72 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp73 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp72), atslab_2) ; tmp75 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp76 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp74 = */ atslib_mpz_divexact3 (tmp73, tmp75, tmp76) ; tmp71 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp71) ; } /* end of [ediv01_myint_myint_04735_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 7801(line=314, offs=3) -- 8263(line=328, offs=2) */ ATSstaticdec() gmpknd mod01_myint_myint_04736_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab_mod01_myint_myint_04736_gmpknd: tmp78 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp79 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp78), atslab_2) ; tmp81 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp82 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp80 = */ atslib_mpz_mod3_mpz (tmp79, tmp81, tmp82) ; tmp77 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp77) ; } /* end of [mod01_myint_myint_04736_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 8341(line=332, offs=3) -- 8695(line=342, offs=4) */ ATSstaticdec() gmpknd mod11_myint_myint_04737_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab_mod11_myint_myint_04737_gmpknd: tmp84 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp85 = ats_selsin_mac(tmp84, atslab_2) ; /* tmp86 = */ atslib_mpz_init (tmp85) ; tmp88 = ats_varget_mac(ats_ptr_type, arg0) ; tmp89 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp87 = */ atslib_mpz_mod3_mpz (tmp85, tmp88, tmp89) ; tmp90 = tmp85 ; tmp83 = ats_castfn_mac(gmpknd, tmp90) ; return (tmp83) ; } /* end of [mod11_myint_myint_04737_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 8794(line=348, offs=3) -- 9256(line=362, offs=2) */ ATSstaticdec() gmpknd gcd01_myint_myint_04738_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (gmpknd, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab_gcd01_myint_myint_04738_gmpknd: tmp92 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp93 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp92), atslab_2) ; tmp95 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ; tmp96 = ats_varget_mac(ats_ptr_type, arg1) ; /* tmp94 = */ atslib_mpz_gcd3_mpz (tmp93, tmp95, tmp96) ; tmp91 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp91) ; } /* end of [gcd01_myint_myint_04738_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 9355(line=368, offs=3) -- 9509(line=374, offs=2) */ ATSstaticdec() ats_int_type compare_myint_int_04745_gmpknd (gmpknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; __ats_lab_compare_myint_int_04745_gmpknd: tmp98 = ats_varget_mac(ats_ptr_type, arg0) ; tmp97 = atslib_mpz_cmp_int (tmp98, arg1) ; return (tmp97) ; } /* end of [compare_myint_int_04745_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 9603(line=380, offs=3) -- 9841(line=386, offs=2) */ ATSstaticdec() ats_int_type compare_myint_myint_04750_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab_compare_myint_myint_04750_gmpknd: tmp100 = ats_varget_mac(ats_ptr_type, arg0) ; tmp101 = ats_varget_mac(ats_ptr_type, arg1) ; tmp99 = atslib_mpz_cmp_mpz (tmp100, tmp101) ; return (tmp99) ; } /* end of [compare_myint_myint_04750_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2997(line=122, offs=20) -- 3058(line=125, offs=2) */ ATSstaticdec() ats_void_type prerr_warning3_loc_02446_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; __ats_lab_prerr_warning3_loc_02446_: /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp106 = */ atspre_prerr_string (ATSstrcst(": warning(3)")) ; return /* (tmp106) */ ; } /* end of [prerr_warning3_loc_02446_] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 15120(line=664, offs=1) -- 15566(line=682, offs=6) */ ATSstaticdec() ats_void_type loop_29 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp138) ; ATSlocal (ats_bool_type, tmp139) ; ATSlocal (gmpknd, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_int_type, tmp142) ; __ats_lab_loop_29: tmp139 = atspre_igt (arg1, 0) ; if (tmp139) { tmp140 = myint_make_int_04721_gmpknd (0) ; ats_ptrget_mac(gmpknd, arg0) = tmp140 ; tmp141 = atspre_padd_size (arg0, sizeof(gmpknd)) ; tmp142 = atspre_isub (arg1, 1) ; arg0 = tmp141 ; arg1 = tmp142 ; goto __ats_lab_loop_29 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp138) */ ; } /* end of [loop_29] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 23852(line=868, offs=17) -- 23896(line=868, offs=61) */ ATSstaticdec() ats_ptr_type array_ptr_alloc_01563_gmpknd (ats_size_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp147) ; __ats_lab_array_ptr_alloc_01563_gmpknd: tmp147 = atspre_array_ptr_alloc_tsz (arg0, sizeof(gmpknd)) ; return (tmp147) ; } /* end of [array_ptr_alloc_01563_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 14751(line=645, offs=7) -- 14994(line=653, offs=4) */ ATSstaticdec() ats_ptr_type myintvec0_make_04762_gmpknd (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_size_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab_myintvec0_make_04762_gmpknd: tmp145 = atspre_size1_of_int1 (arg0) ; tmp146 = array_ptr_alloc_01563_gmpknd (tmp145) ; tmp148 = ats_selsin_mac(tmp146, atslab_2) ; tmp144 = ats_castfn_mac(ats_ptr_type, tmp148) ; return (tmp144) ; } /* end of [myintvec0_make_04762_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 15077(line=659, offs=7) -- 15780(line=692, offs=4) */ ATSstaticdec() ats_ptr_type myintvec_make_04764_gmpknd (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; __ats_lab_myintvec_make_04764_gmpknd: tmp143 = myintvec0_make_04762_gmpknd (arg0) ; tmp149 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp143), atslab_1) ; /* tmp150 = */ loop_29 (tmp149, arg0) ; tmp137 = tmp143 ; return (tmp137) ; } /* end of [myintvec_make_04764_gmpknd] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 10493(line=364, offs=19) -- 10557(line=365, offs=51) */ ATSstaticdec() ats_ptr_type array_ptr_takeout_01586_gmpknd (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp160) ; __ats_lab_array_ptr_takeout_01586_gmpknd: tmp160 = atspre_array_ptr_takeout_tsz (arg0, arg1, sizeof(gmpknd)) ; return (tmp160) ; } /* end of [array_ptr_takeout_01586_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 4159(line=168, offs=3) -- 4633(line=186, offs=4) */ ATSstaticdec() ats_void_type myintvec_addby_cffvar_05289_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, gmpknd arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp154) ; ATSlocal (ats_int_type, tmp155) ; ATSlocal (ats_bool_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_size_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (gmpknd, tmp162) ; ATSlocal (gmpknd, tmp163) ; // ATSlocal_void (tmp164) ; ATSlocal (ats_int_type, tmp165) ; __ats_lab_myintvec_addby_cffvar_05289_gmpknd: tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find (arg1, arg3) ; tmp156 = atspre_igt (tmp155, 0) ; if (tmp156) { tmp157 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp158 = atspre_size1_of_int1 (tmp155) ; tmp159 = array_ptr_takeout_01586_gmpknd (tmp157, tmp158) ; tmp161 = ats_selsin_mac(tmp159, atslab_2) ; tmp163 = ats_ptrget_mac(gmpknd, tmp161) ; tmp162 = add01_myint_myint_04728_gmpknd (tmp163, arg2) ; ats_ptrget_mac(gmpknd, tmp161) = tmp162 ; /* tmp154 = */ myint_free_04723_gmpknd (arg2) ; } else { /* tmp164 = */ myint_free_04723_gmpknd (arg2) ; tmp165 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp165 ; } /* end of [if] */ return /* (tmp154) */ ; } /* end of [myintvec_addby_cffvar_05289_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 3019(line=107, offs=3) -- 3293(line=116, offs=4) */ ATSstaticdec() ats_void_type myintvec_add_int_04760_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (gmpknd, tmp169) ; ATSlocal (gmpknd, tmp170) ; __ats_lab_myintvec_add_int_04760_gmpknd: tmp168 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp170 = ats_ptrget_mac(gmpknd, tmp168) ; tmp169 = add_myint_int_04727_gmpknd (tmp170, arg1) ; ats_ptrget_mac(gmpknd, tmp168) = tmp169 ; return /* (tmp167) */ ; } /* end of [myintvec_add_int_04760_gmpknd] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 9652(line=333, offs=7) -- 10175(line=348, offs=8) */ ATSstaticdec() ats_void_type clear_37 (ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_size_type arg3) { /* local vardec */ // ATSlocal_void (tmp178) ; ATSlocal (ats_bool_type, tmp179) ; // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_size_type, tmp182) ; __ats_lab_clear_37: tmp179 = atspre_gt_size1_int1 (arg1, 0) ; if (tmp179) { /* tmp180 = */ ((ats_void_type(*)(ats_ref_type))arg2) (arg0) ; tmp181 = atspre_padd_size (arg0, arg3) ; tmp182 = atspre_sub_size1_int1 (arg1, 1) ; arg0 = tmp181 ; arg1 = tmp182 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_clear_37 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp178) */ ; } /* end of [clear_37] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 9569(line=329, offs=15) -- 10265(line=352, offs=4) */ ATSstaticdec() ats_void_type array_ptr_clear_fun_01576_gmpknd (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp177) ; __ats_lab_array_ptr_clear_fun_01576_gmpknd: /* tmp177 = */ clear_37 (arg0, arg1, arg2, sizeof(gmpknd)) ; return /* (tmp177) */ ; } /* end of [array_ptr_clear_fun_01576_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 3893(line=139, offs=45) -- 3923(line=139, offs=75) */ ATSstaticdec() ats_void_type __ats_fun_38 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp183) ; __ats_lab___ats_fun_38: /* tmp183 = */ myint_free_04723_gmpknd (ats_ptrget_mac(gmpknd, arg0)) ; return /* (tmp183) */ ; } /* end of [__ats_fun_38] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 3699(line=134, offs=15) -- 4007(line=143, offs=4) */ ATSstaticdec() ats_void_type myintvec_free_04765_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_size_type, tmp175) ; // ATSlocal_void (tmp176) ; __ats_lab_myintvec_free_04765_gmpknd: tmp174 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp175 = atspre_size1_of_int1 (arg1) ; /* tmp176 = */ array_ptr_clear_fun_01576_gmpknd (tmp174, tmp175, &__ats_fun_38) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvec0_free (arg0, arg1) ; return /* (tmp173) */ ; } /* end of [myintvec_free_04765_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 5305(line=194, offs=18) -- 5568(line=202, offs=41) */ ATSstaticdec() ats_ptr_type icnstrlst_negate_04776_gmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; __ats_lab_icnstrlst_negate_04776_gmpknd: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp196 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp197 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp199 = ats_ptrget_mac(ats_ptr_type, tmp196) ; tmp198 = icnstr_negate_04775_gmpknd (tmp199) ; ats_ptrget_mac(ats_ptr_type, tmp196) = tmp198 ; tmp201 = ats_ptrget_mac(ats_ptr_type, tmp197) ; tmp200 = icnstrlst_negate_04776_gmpknd (tmp201) ; ats_ptrget_mac(ats_ptr_type, tmp197) = tmp200 ; tmp195 = arg0 ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp195 = arg0 ; break ; } while (0) ; return (tmp195) ; } /* end of [icnstrlst_negate_04776_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 4962(line=182, offs=15) -- 5247(line=190, offs=32) */ ATSstaticdec() ats_ptr_type icnstr_negate_04775_gmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_int_type, tmp188) ; ATSlocal (ats_int_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_int_type, tmp192) ; ATSlocal (ats_int_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab_icnstr_negate_04775_gmpknd: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp187 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp189 = ats_ptrget_mac(ats_int_type, tmp187) ; tmp188 = atspre_ineg (tmp189) ; ats_ptrget_mac(ats_int_type, tmp187) = tmp188 ; tmp186 = arg0 ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_13_0 ; } __ats_lab_10_1: tmp190 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp191 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp193 = ats_ptrget_mac(ats_int_type, tmp190) ; tmp192 = atspre_isub (1, tmp193) ; ats_ptrget_mac(ats_int_type, tmp190) = tmp192 ; tmp202 = ats_ptrget_mac(ats_ptr_type, tmp191) ; tmp194 = icnstrlst_negate_04776_gmpknd (tmp202) ; ats_ptrget_mac(ats_ptr_type, tmp191) = tmp194 ; tmp186 = arg0 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp186 = arg0 ; break ; } while (0) ; return (tmp186) ; } /* end of [icnstr_negate_04775_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 15952(line=704, offs=5) -- 16565(line=722, offs=6) */ ATSstaticdec() ats_void_type loop_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp229) ; ATSlocal (ats_bool_type, tmp230) ; ATSlocal (gmpknd, tmp231) ; ATSlocal (gmpknd, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_int_type, tmp235) ; __ats_lab_loop_43: tmp230 = atspre_igt (arg2, 0) ; if (tmp230) { tmp232 = ats_ptrget_mac(gmpknd, arg0) ; tmp231 = myint_copy_04724_gmpknd (tmp232) ; ats_ptrget_mac(gmpknd, arg1) = tmp231 ; tmp233 = atspre_padd_size (arg0, sizeof(gmpknd)) ; tmp234 = atspre_padd_size (arg1, sizeof(gmpknd)) ; tmp235 = atspre_isub (arg2, 1) ; arg0 = tmp233 ; arg1 = tmp234 ; arg2 = tmp235 ; goto __ats_lab_loop_43 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp229) */ ; } /* end of [loop_43] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 15861(line=698, offs=6) -- 16845(line=732, offs=4) */ ATSstaticdec() ats_ptr_type myintvec_copy_04788_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; // ATSlocal_void (tmp239) ; __ats_lab_myintvec_copy_04788_gmpknd: tmp236 = myintvec0_make_04762_gmpknd (arg1) ; tmp237 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp238 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp236), atslab_1) ; /* tmp239 = */ loop_43 (tmp237, tmp238, arg1) ; tmp228 = tmp236 ; return (tmp228) ; } /* end of [myintvec_copy_04788_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 4520(line=164, offs=16) -- 4861(line=176, offs=8) */ ATSstaticdec() ats_ptr_type icnstrlst_copy_04774_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; __ats_lab_icnstrlst_copy_04774_gmpknd: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp245 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp246 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp248 = ats_ptrget_mac(ats_ptr_type, tmp245) ; tmp247 = icnstr_copy_04773_gmpknd (tmp248, arg1) ; tmp250 = ats_ptrget_mac(ats_ptr_type, tmp246) ; tmp249 = icnstrlst_copy_04774_gmpknd (tmp250, arg1) ; tmp244 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp244, atslab_0, tmp247) ; ats_selptrset_mac(anairiats_sum_4, tmp244, atslab_1, tmp249) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp244 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp244) ; } /* end of [icnstrlst_copy_04774_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 4081(line=148, offs=13) -- 4466(line=160, offs=55) */ ATSstaticdec() ats_ptr_type icnstr_copy_04773_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_int_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_int_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; __ats_lab_icnstr_copy_04773_gmpknd: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp225 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp226 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp240 = ats_ptrget_mac(ats_ptr_type, tmp226) ; tmp227 = myintvec_copy_04788_gmpknd (tmp240, arg1) ; tmp224 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp224)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp224, atslab_0, tmp225) ; ats_selptrset_mac(anairiats_sum_5, tmp224, atslab_1, tmp227) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_21_0 ; } __ats_lab_18_1: tmp241 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp242 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp251 = ats_ptrget_mac(ats_ptr_type, tmp242) ; tmp243 = icnstrlst_copy_04774_gmpknd (tmp251, arg1) ; tmp224 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp224)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp224, atslab_0, tmp241) ; ats_selptrset_mac(anairiats_sum_5, tmp224, atslab_1, tmp243) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp252 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp224 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp224)->tag = 2 ; ats_selptrset_mac(anairiats_sum_7, tmp224, atslab_0, tmp252) ; ats_selptrset_mac(anairiats_sum_7, tmp224, atslab_1, tmp253) ; break ; } while (0) ; return (tmp224) ; } /* end of [icnstr_copy_04773_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 3802(line=157, offs=3) -- 4087(line=164, offs=2) */ ATSstaticdec() ats_void_type myintvec_addby_const_05288_gmpknd (ats_ptr_type arg0, gmpknd arg1) { /* local vardec */ // ATSlocal_void (tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (gmpknd, tmp301) ; ATSlocal (gmpknd, tmp302) ; __ats_lab_myintvec_addby_const_05288_gmpknd: tmp300 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp302 = ats_ptrget_mac(gmpknd, tmp300) ; tmp301 = add01_myint_myint_04728_gmpknd (tmp302, arg1) ; ats_ptrget_mac(gmpknd, tmp300) = tmp301 ; /* tmp299 = */ myint_free_04723_gmpknd (arg1) ; return /* (tmp299) */ ; } /* end of [myintvec_addby_const_05288_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 8460(line=326, offs=11) -- 9350(line=361, offs=4) */ ATSstaticdec() ats_void_type myintvec_addby_s3exp_05050_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (gmpknd, tmp319) ; ATSlocal (gmpknd, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (gmpknd, tmp324) ; ATSlocal (gmpknd, tmp325) ; ATSlocal (ats_int_type, tmp326) ; ATSlocal (ats_int_type, tmp327) ; __ats_lab_myintvec_addby_s3exp_05050_gmpknd: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp318 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp319 = myint_make_int_04721_gmpknd (1) ; /* tmp317 = */ myintvec_addby_cffvar_05289_gmpknd (arg0, arg1, tmp319, tmp318, arg3) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp320 = myint_make_int_04721_gmpknd (1) ; /* tmp317 = */ myintvec_addby_const_05288_gmpknd (arg0, tmp320) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg2)->tag != 14) { goto __ats_lab_39_0 ; } __ats_lab_35_1: tmp321 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_0) ; tmp322 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_1) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp322)->tag != 0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp323 = ats_caselptrlab_mac(anairiats_sum_6, tmp322, atslab_0) ; tmp324 = myint_make_intinf_04722_gmpknd (tmp321) ; /* tmp317 = */ myintvec_addby_cffvar_05289_gmpknd (arg0, arg1, tmp324, tmp323, arg3) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp322)->tag != 3) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp325 = myint_make_intinf_04722_gmpknd (tmp321) ; /* tmp317 = */ myintvec_addby_const_05288_gmpknd (arg0, tmp325) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp326 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp326 ; break ; } while (0) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp327 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp327 ; break ; } while (0) ; return /* (tmp317) */ ; } /* end of [myintvec_addby_s3exp_05050_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 9432(line=365, offs=11) -- 9766(line=377, offs=22) */ ATSstaticdec() ats_void_type myintvec_addby_s3explst_05063_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; // ATSlocal_void (tmp316) ; __ats_lab_myintvec_addby_s3explst_05063_gmpknd: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_32_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp315 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; /* tmp316 = */ myintvec_addby_s3exp_05050_gmpknd (arg0, arg1, tmp314, arg3) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp315 ; arg3 = arg3 ; goto __ats_lab_myintvec_addby_s3explst_05063_gmpknd ; // tail call break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: break ; } while (0) ; return /* (tmp313) */ ; } /* end of [myintvec_addby_s3explst_05063_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 9859(line=384, offs=1) -- 10793(line=421, offs=4) */ ATSstaticdec() ats_ptr_type s3exp2myintvec_04875_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_int_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (gmpknd, tmp295) ; // ATSlocal_void (tmp296) ; ATSlocal (gmpknd, tmp297) ; // ATSlocal_void (tmp298) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (gmpknd, tmp306) ; // ATSlocal_void (tmp307) ; ATSlocal (gmpknd, tmp308) ; // ATSlocal_void (tmp309) ; ATSlocal (ats_int_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; // ATSlocal_void (tmp312) ; ATSlocal (ats_int_type, tmp328) ; __ats_lab_s3exp2myintvec_04875_gmpknd: tmp293 = atspre_iadd (arg1, 1) ; tmp292 = myintvec_make_04764_gmpknd (tmp293) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp294 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp295 = myint_make_int_04721_gmpknd (1) ; /* tmp296 = */ myintvec_addby_cffvar_05289_gmpknd (tmp292, arg0, tmp295, tmp294, arg3) ; tmp291 = tmp292 ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp291 = tmp292 ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp297 = myint_make_int_04721_gmpknd (1) ; /* tmp298 = */ myintvec_addby_const_05288_gmpknd (tmp292, tmp297) ; tmp291 = tmp292 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)arg2)->tag != 14) { goto __ats_lab_31_0 ; } __ats_lab_27_1: tmp303 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_0) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_1) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp304)->tag != 0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp305 = ats_caselptrlab_mac(anairiats_sum_6, tmp304, atslab_0) ; tmp306 = myint_make_intinf_04722_gmpknd (tmp303) ; /* tmp307 = */ myintvec_addby_cffvar_05289_gmpknd (tmp292, arg0, tmp306, tmp305, arg3) ; tmp291 = tmp292 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp304)->tag != 3) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp308 = myint_make_intinf_04722_gmpknd (tmp303) ; /* tmp309 = */ myintvec_addby_const_05288_gmpknd (tmp292, tmp308) ; tmp291 = tmp292 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp310 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp310 ; tmp291 = tmp292 ; break ; } while (0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)arg2)->tag != 15) { goto __ats_lab_41_0 ; } __ats_lab_31_1: tmp311 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; /* tmp312 = */ myintvec_addby_s3explst_05063_gmpknd (tmp292, arg0, tmp311, arg3) ; tmp291 = tmp292 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: tmp328 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp328 ; tmp291 = tmp292 ; break ; } while (0) ; return (tmp291) ; } /* end of [s3exp2myintvec_04875_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02441_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; __ats_lab_prerr_error3_loc_02441_: /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp334 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp334) */ ; } /* end of [prerr_error3_loc_02441_] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 4722(line=192, offs=7) -- 8361(line=318, offs=4) */ ATSstaticdec() ats_ptr_type s3exp2icnstr_04874_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_int_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (gmpknd, tmp151) ; ATSlocal (ats_int_type, tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_bool_type, tmp171) ; // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_int_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_int_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_int_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_int_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_bool_type, tmp329) ; // ATSlocal_void (tmp330) ; ATSlocal (ats_int_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; // ATSlocal_void (tmp333) ; // ATSlocal_void (tmp336) ; // ATSlocal_void (tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; __ats_lab_s3exp2icnstr_04874_gmpknd: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg3)->tag != 4) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; if (tmp131) { tmp132 = (ats_sum_ptr_type)0 ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp130)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp132) ; } else { tmp133 = (ats_sum_ptr_type)0 ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp130)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp133) ; } /* end of [if] */ break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg3)->tag != 5) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp135 = atspre_iadd (arg2, 1) ; tmp136 = myintvec_make_04764_gmpknd (tmp135) ; tmp151 = myint_make_int_04721_gmpknd (1) ; /* ats_int_type tmp152 ; */ tmp152 = 0 ; /* tmp153 = */ myintvec_addby_cffvar_05289_gmpknd (tmp136, arg1, tmp151, tmp134, (&tmp152)) ; /* tmp166 = */ myintvec_add_int_04760_gmpknd (tmp136, -1) ; tmp171 = atspre_gt_int_int (tmp152, 0) ; if (tmp171) { /* tmp172 = */ myintvec_free_04765_gmpknd (tmp136, tmp135) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp130)->tag = 2 ; ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_1, ats_castfn_mac(ats_ptr_type, arg3)) ; } else { tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp130)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp136) ; } /* end of [if] */ break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg3)->tag != 6) { goto __ats_lab_14_0 ; } __ats_lab_8_1: tmp184 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp185 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp184) ; tmp130 = icnstr_negate_04775_gmpknd (tmp185) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg3)->tag != 7) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp203 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ; tmp205 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp203) ; tmp206 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp204) ; tmp209 = (ats_sum_ptr_type)0 ; tmp208 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp208, atslab_0, tmp206) ; ats_selptrset_mac(anairiats_sum_4, tmp208, atslab_1, tmp209) ; tmp207 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp207, atslab_0, tmp205) ; ats_selptrset_mac(anairiats_sum_4, tmp207, atslab_1, tmp208) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp130)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp207) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg3)->tag != 8) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ; tmp211 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ; tmp212 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp210) ; tmp213 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp211) ; tmp216 = (ats_sum_ptr_type)0 ; tmp215 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp215, atslab_0, tmp213) ; ats_selptrset_mac(anairiats_sum_4, tmp215, atslab_1, tmp216) ; tmp214 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp214, atslab_0, tmp212) ; ats_selptrset_mac(anairiats_sum_4, tmp214, atslab_1, tmp215) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp130)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp214) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg3)->tag != 9) { goto __ats_lab_22_0 ; } __ats_lab_16_1: tmp217 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ; tmp218 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ; tmp219 = atspre_iadd (arg2, 1) ; tmp220 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp217) ; tmp221 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp218) ; tmp223 = icnstr_copy_04773_gmpknd (tmp220, tmp219) ; tmp222 = icnstr_negate_04775_gmpknd (tmp223) ; tmp255 = icnstr_copy_04773_gmpknd (tmp221, tmp219) ; tmp254 = icnstr_negate_04775_gmpknd (tmp255) ; tmp259 = (ats_sum_ptr_type)0 ; tmp258 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp258, atslab_0, tmp221) ; ats_selptrset_mac(anairiats_sum_4, tmp258, atslab_1, tmp259) ; tmp257 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp257, atslab_0, tmp220) ; ats_selptrset_mac(anairiats_sum_4, tmp257, atslab_1, tmp258) ; tmp256 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp256)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp256, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_5, tmp256, atslab_1, tmp257) ; tmp263 = (ats_sum_ptr_type)0 ; tmp262 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp262, atslab_0, tmp254) ; ats_selptrset_mac(anairiats_sum_4, tmp262, atslab_1, tmp263) ; tmp261 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp261, atslab_0, tmp222) ; ats_selptrset_mac(anairiats_sum_4, tmp261, atslab_1, tmp262) ; tmp260 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp260)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp260, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_5, tmp260, atslab_1, tmp261) ; tmp266 = (ats_sum_ptr_type)0 ; tmp265 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp265, atslab_0, tmp260) ; ats_selptrset_mac(anairiats_sum_4, tmp265, atslab_1, tmp266) ; tmp264 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp264, atslab_0, tmp256) ; ats_selptrset_mac(anairiats_sum_4, tmp264, atslab_1, tmp265) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp130)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp264) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg3)->tag != 10) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ; tmp268 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ; tmp269 = atspre_iadd (arg2, 1) ; tmp270 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp267) ; tmp271 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp268) ; tmp273 = icnstr_copy_04773_gmpknd (tmp270, tmp269) ; tmp272 = icnstr_negate_04775_gmpknd (tmp273) ; tmp275 = icnstr_copy_04773_gmpknd (tmp271, tmp269) ; tmp274 = icnstr_negate_04775_gmpknd (tmp275) ; tmp279 = (ats_sum_ptr_type)0 ; tmp278 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp278, atslab_0, tmp274) ; ats_selptrset_mac(anairiats_sum_4, tmp278, atslab_1, tmp279) ; tmp277 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp277, atslab_0, tmp270) ; ats_selptrset_mac(anairiats_sum_4, tmp277, atslab_1, tmp278) ; tmp276 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp276)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp276, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_5, tmp276, atslab_1, tmp277) ; tmp283 = (ats_sum_ptr_type)0 ; tmp282 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp282, atslab_0, tmp271) ; ats_selptrset_mac(anairiats_sum_4, tmp282, atslab_1, tmp283) ; tmp281 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp281, atslab_0, tmp272) ; ats_selptrset_mac(anairiats_sum_4, tmp281, atslab_1, tmp282) ; tmp280 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp280)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp280, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_5, tmp280, atslab_1, tmp281) ; tmp286 = (ats_sum_ptr_type)0 ; tmp285 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp285, atslab_0, tmp280) ; ats_selptrset_mac(anairiats_sum_4, tmp285, atslab_1, tmp286) ; tmp284 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp284, atslab_0, tmp276) ; ats_selptrset_mac(anairiats_sum_4, tmp284, atslab_1, tmp285) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp130)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp284) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg3)->tag != 11) { goto __ats_lab_42_0 ; } __ats_lab_23_1: tmp287 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_0) ; tmp288 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_1) ; /* ats_int_type tmp289 ; */ tmp289 = 0 ; tmp290 = s3exp2myintvec_04875_gmpknd (arg1, arg2, tmp288, (&tmp289)) ; tmp329 = atspre_gt_int_int (tmp289, 0) ; if (tmp329) { tmp331 = atspre_iadd (arg2, 1) ; /* tmp330 = */ myintvec_free_04765_gmpknd (tmp290, tmp331) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp130)->tag = 2 ; ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_1, ats_castfn_mac(ats_ptr_type, arg3)) ; } else { tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp130)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, tmp287) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp290) ; } /* end of [if] */ break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)arg3)->tag != 12) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp332 = (ats_sum_ptr_type)0 ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp130)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp332) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: /* tmp333 = */ prerr_error3_loc_02441_ (arg0) ; /* tmp336 = */ atspre_prerr_string (ATSstrcst(": this constraint cannot be s3exp2icnstr-handled: s3e0 = ")) ; /* tmp337 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3exp (arg3) ; /* tmp338 = */ atspre_prerr_newline () ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp130)->tag = 2 ; ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_1, ats_castfn_mac(ats_ptr_type, arg3)) ; break ; } while (0) ; return (tmp130) ; } /* end of [s3exp2icnstr_04874_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 3429(line=144, offs=1) -- 3981(line=168, offs=4) */ ATSstaticdec() ats_ptr_type loop_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp340) ; __ats_lab_loop_26: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp126 = arg4 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp128 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ; tmp129 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, tmp127) ; tmp340 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp340, atslab_0, tmp129) ; ats_selptrset_mac(anairiats_sum_4, tmp340, atslab_1, arg4) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp128 ; arg4 = tmp340 ; goto __ats_lab_loop_26 ; // tail call break ; } while (0) ; return (tmp126) ; } /* end of [loop_26] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 2594(line=104, offs=7) -- 2980(line=117, offs=29) */ ATSstaticdec() ats_ptr_type loop_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_int_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_bool_type, tmp352) ; __ats_lab_loop_51: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp348 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp349 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find (arg1, tmp348) ; tmp352 = atspre_igt (tmp350, 0) ; if (tmp352) { tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_add (arg2, tmp350) ; } else { tmp351 = arg2 ; } /* end of [if] */ arg0 = tmp349 ; arg1 = arg1 ; arg2 = tmp351 ; goto __ats_lab_loop_51 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp347 = arg2 ; break ; } while (0) ; return (tmp347) ; } /* end of [loop_51] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 2461(line=99, offs=11) -- 3120(line=123, offs=4) */ ATSstaticdec() ats_ptr_type indexset_make_s3exp_05084_ats_abs_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; __ats_lab_indexset_make_s3exp_05084_ats_abs_type: tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_fvs (arg1) ; tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free (tmp353) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_nil () ; tmp346 = loop_51 (tmp354, arg0, tmp355) ; return (tmp346) ; } /* end of [indexset_make_s3exp_05084_ats_abs_type] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 18069(line=882, offs=5) -- 18503(line=900, offs=4) */ ATSstaticdec() ats_ptr_type loop_57 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; __ats_lab_loop_57: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp377 = arg0 ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp378 = &ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_4) ; tmp379 = ats_ptrget_mac(ats_ptr_type, tmp378) ; tmp380 = ats_castfn_mac(ats_ptr_type, arg1) ; arg0 = tmp380 ; arg1 = tmp379 ; goto __ats_lab_loop_57 ; // tail call break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp381 = &ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ; tmp382 = ats_ptrget_mac(ats_ptr_type, tmp381) ; tmp383 = ats_castfn_mac(ats_ptr_type, arg1) ; arg0 = tmp383 ; arg1 = tmp382 ; goto __ats_lab_loop_57 ; // tail call break ; } while (0) ; return (tmp377) ; } /* end of [loop_57] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 18014(line=878, offs=6) -- 18548(line=904, offs=4) */ ATSstaticdec() ats_ptr_type myiveqlst_get_last_05246_gmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp376) ; __ats_lab_myiveqlst_get_last_05246_gmpknd: tmp376 = loop_57 (atspre_null_ptr, arg0) ; return (tmp376) ; } /* end of [myiveqlst_get_last_05246_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 2670(line=94, offs=3) -- 2932(line=101, offs=2) */ ATSstaticdec() ats_int_type myintvec_compare_at_04761_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_size_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (gmpknd, tmp400) ; __ats_lab_myintvec_compare_at_04761_gmpknd: tmp396 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp397 = atspre_size1_of_int1 (arg1) ; tmp398 = array_ptr_takeout_01586_gmpknd (tmp396, tmp397) ; tmp399 = ats_selsin_mac(tmp398, atslab_2) ; tmp400 = ats_ptrget_mac(gmpknd, tmp399) ; tmp395 = compare_myint_int_04745_gmpknd (tmp400, arg2) ; return (tmp395) ; } /* end of [myintvec_compare_at_04761_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 2339(line=81, offs=3) -- 2584(line=88, offs=2) */ ATSstaticdec() gmpknd myintvec_get_at_04758_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (gmpknd, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_size_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (gmpknd, tmp408) ; __ats_lab_myintvec_get_at_04758_gmpknd: tmp404 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp405 = atspre_size1_of_int1 (arg1) ; tmp406 = array_ptr_takeout_01586_gmpknd (tmp404, tmp405) ; tmp407 = ats_selsin_mac(tmp406, atslab_2) ; tmp408 = ats_ptrget_mac(gmpknd, tmp407) ; tmp403 = myint_copy_04724_gmpknd (tmp408) ; return (tmp403) ; } /* end of [myintvec_get_at_04758_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 18874(line=831, offs=5) -- 19225(line=844, offs=6) */ ATSstaticdec() ats_void_type loop_63 (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp415) ; ATSlocal (ats_bool_type, tmp416) ; ATSlocal (gmpknd, tmp417) ; ATSlocal (gmpknd, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_int_type, tmp420) ; __ats_lab_loop_63: tmp416 = atspre_igt (arg2, 0) ; if (tmp416) { tmp418 = ats_ptrget_mac(gmpknd, arg1) ; tmp417 = mul10_myint_myint_04731_gmpknd (arg0, tmp418) ; ats_ptrget_mac(gmpknd, arg1) = tmp417 ; tmp419 = atspre_padd_size (arg1, sizeof(gmpknd)) ; tmp420 = atspre_isub (arg2, 1) ; arg0 = arg0 ; arg1 = tmp419 ; arg2 = tmp420 ; goto __ats_lab_loop_63 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp415) */ ; } /* end of [loop_63] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 18746(line=822, offs=7) -- 19380(line=851, offs=4) */ ATSstaticdec() ats_void_type myintvec_scale_04792_gmpknd (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp414) ; ATSlocal (ats_ptr_type, tmp421) ; __ats_lab_myintvec_scale_04792_gmpknd: tmp421 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; /* tmp414 = */ loop_63 (arg0, tmp421, arg2) ; return /* (tmp414) */ ; } /* end of [myintvec_scale_04792_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 21591(line=948, offs=5) -- 22169(line=966, offs=6) */ ATSstaticdec() ats_void_type loop_65 (ats_ptr_type arg0, gmpknd arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp424) ; ATSlocal (ats_bool_type, tmp425) ; ATSlocal (gmpknd, tmp426) ; ATSlocal (gmpknd, tmp427) ; ATSlocal (gmpknd, tmp428) ; ATSlocal (gmpknd, tmp429) ; // ATSlocal_void (tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_int_type, tmp433) ; __ats_lab_loop_65: tmp425 = atspre_igt (arg3, 0) ; if (tmp425) { tmp427 = ats_ptrget_mac(gmpknd, arg2) ; tmp426 = mul11_myint_myint_04732_gmpknd (arg1, tmp427) ; tmp429 = ats_ptrget_mac(gmpknd, arg0) ; tmp428 = add01_myint_myint_04728_gmpknd (tmp429, tmp426) ; ats_ptrget_mac(gmpknd, arg0) = tmp428 ; /* tmp430 = */ myint_free_04723_gmpknd (tmp426) ; tmp431 = atspre_padd_size (arg0, sizeof(gmpknd)) ; tmp432 = atspre_padd_size (arg2, sizeof(gmpknd)) ; tmp433 = atspre_isub (arg3, 1) ; arg0 = tmp431 ; arg1 = arg1 ; arg2 = tmp432 ; arg3 = tmp433 ; goto __ats_lab_loop_65 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp424) */ ; } /* end of [loop_65] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 21425(line=937, offs=7) -- 22433(line=975, offs=4) */ ATSstaticdec() ats_void_type myintvec_addby_cff_04795_gmpknd (ats_ptr_type arg0, gmpknd arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp423) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; __ats_lab_myintvec_addby_cff_04795_gmpknd: tmp434 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp435 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg2), atslab_1) ; /* tmp423 = */ loop_65 (tmp434, arg1, tmp435, arg3) ; return /* (tmp423) */ ; } /* end of [myintvec_addby_cff_04795_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 11181(line=515, offs=3) -- 12112(line=549, offs=4) */ ATSstaticdec() ats_void_type myintvec_elimeq_at_05235_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp393) ; ATSlocal (ats_int_type, tmp394) ; ATSlocal (ats_bool_type, tmp401) ; ATSlocal (gmpknd, tmp402) ; ATSlocal (gmpknd, tmp409) ; ATSlocal (ats_int_type, tmp410) ; ATSlocal (ats_bool_type, tmp411) ; ATSlocal (gmpknd, tmp412) ; // ATSlocal_void (tmp413) ; // ATSlocal_void (tmp422) ; // ATSlocal_void (tmp436) ; // ATSlocal_void (tmp437) ; ATSlocal (gmpknd, tmp438) ; // ATSlocal_void (tmp439) ; // ATSlocal_void (tmp440) ; // ATSlocal_void (tmp441) ; // ATSlocal_void (tmp442) ; __ats_lab_myintvec_elimeq_at_05235_gmpknd: tmp394 = myintvec_compare_at_04761_gmpknd (arg0, arg3, 0) ; tmp401 = atspre_neq_int_int (tmp394, 0) ; if (tmp401) { /* gmpknd tmp402 ; */ tmp402 = myintvec_get_at_04758_gmpknd (arg0, arg3) ; /* gmpknd tmp409 ; */ tmp409 = myintvec_get_at_04758_gmpknd (arg1, arg3) ; tmp410 = compare_myint_int_04745_gmpknd (tmp409, 0) ; tmp411 = atspre_gte_int_int (tmp410, 0) ; if (tmp411) { tmp412 = neg_myint_04725_gmpknd (tmp402) ; tmp402 = tmp412 ; /* tmp413 = */ myintvec_scale_04792_gmpknd (tmp409, arg0, arg2) ; /* tmp422 = */ myintvec_addby_cff_04795_gmpknd (arg0, tmp402, arg1, arg2) ; /* tmp436 = */ myint_free_04723_gmpknd (tmp402) ; /* tmp437 = */ myint_free_04723_gmpknd (tmp409) ; } else { tmp438 = neg_myint_04725_gmpknd (tmp409) ; tmp409 = tmp438 ; /* tmp439 = */ myintvec_scale_04792_gmpknd (tmp409, arg0, arg2) ; /* tmp440 = */ myintvec_addby_cff_04795_gmpknd (arg0, tmp402, arg1, arg2) ; /* tmp441 = */ myint_free_04723_gmpknd (tmp402) ; /* tmp442 = */ myint_free_04723_gmpknd (tmp409) ; } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp393) */ ; } /* end of [myintvec_elimeq_at_05235_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 18828(line=921, offs=32) -- 19936(line=971, offs=4) */ ATSstaticdec() ats_void_type myintvec_elimeqlst_rev_04571_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_int_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_int_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; // ATSlocal_void (tmp391) ; ATSlocal (ats_bool_type, tmp392) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_bool_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; __ats_lab_myintvec_elimeqlst_rev_04571_gmpknd: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp386 = atspre_null_ptr ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp387 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_0) ; tmp388 = &ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_1) ; tmp389 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_2) ; tmp390 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_3) ; tmp392 = atspre_lte_int_int (arg0, tmp387) ; if (tmp392) { tmp443 = ats_ptrget_mac(ats_ptr_type, tmp388) ; /* tmp391 = */ myintvec_elimeq_at_05235_gmpknd (arg1, tmp443, arg3, tmp389) ; } else { /* empty */ } /* end of [if] */ tmp386 = tmp390 ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (((ats_sum_ptr_type)arg2)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp444 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_0) ; tmp386 = tmp444 ; break ; } while (0) ; tmp445 = atspre_pgt (tmp386, atspre_null_ptr) ; if (tmp445) { tmp446 = ats_castfn_mac(ats_ptr_type, tmp386) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp446 ; arg3 = arg3 ; goto __ats_lab_myintvec_elimeqlst_rev_04571_gmpknd ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp385) */ ; } /* end of [myintvec_elimeqlst_rev_04571_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 20033(line=977, offs=7) -- 20438(line=991, offs=4) */ ATSstaticdec() ats_void_type myintvec_elimeqlst_05247_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_bool_type, tmp384) ; __ats_lab_myintvec_elimeqlst_05247_gmpknd: tmp375 = myiveqlst_get_last_05246_gmpknd (arg2) ; tmp384 = atspre_pgt (tmp375, atspre_null_ptr) ; if (tmp384) { /* tmp374 = */ myintvec_elimeqlst_rev_04571_gmpknd (arg0, arg1, ats_castfn_mac(ats_ptr_type, tmp375), arg3) ; } else { /* empty */ } /* end of [if] */ return /* (tmp374) */ ; } /* end of [myintvec_elimeqlst_05247_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1855(line=61, offs=14) -- 1893(line=61, offs=52) */ ATSstaticdec() ats_bool_type eq_myint_int_04743_gmpknd (gmpknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp453) ; ATSlocal (ats_int_type, tmp454) ; __ats_lab_eq_myint_int_04743_gmpknd: tmp454 = compare_myint_int_04745_gmpknd (arg0, arg1) ; tmp453 = atspre_eq_int_int (tmp454, 0) ; return (tmp453) ; } /* end of [eq_myint_int_04743_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 6610(line=256, offs=1) -- 7074(line=277, offs=4) */ ATSstaticdec() ats_bool_type loop_68 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp450) ; ATSlocal (ats_bool_type, tmp451) ; ATSlocal (ats_bool_type, tmp452) ; ATSlocal (gmpknd, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_int_type, tmp457) ; __ats_lab_loop_68: tmp451 = atspre_igt (arg1, 0) ; if (tmp451) { tmp455 = ats_ptrget_mac(gmpknd, arg0) ; tmp452 = eq_myint_int_04743_gmpknd (tmp455, 0) ; if (tmp452) { tmp456 = atspre_padd_size (arg0, sizeof(gmpknd)) ; tmp457 = atspre_isub (arg1, 1) ; arg0 = tmp456 ; arg1 = tmp457 ; goto __ats_lab_loop_68 ; // tail call } else { tmp450 = ats_false_bool ; } /* end of [if] */ } else { tmp450 = ats_true_bool ; } /* end of [if] */ return (tmp450) ; } /* end of [loop_68] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1787(line=58, offs=15) -- 1826(line=58, offs=54) */ ATSstaticdec() ats_bool_type gte_myint_int_04742_gmpknd (gmpknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp465) ; ATSlocal (ats_int_type, tmp466) ; __ats_lab_gte_myint_int_04742_gmpknd: tmp466 = compare_myint_int_04745_gmpknd (arg0, arg1) ; tmp465 = atspre_gte_int_int (tmp466, 0) ; return (tmp465) ; } /* end of [gte_myint_int_04742_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1585(line=51, offs=14) -- 1623(line=51, offs=52) */ ATSstaticdec() ats_bool_type lt_myint_int_04739_gmpknd (gmpknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp469) ; ATSlocal (ats_int_type, tmp470) ; __ats_lab_lt_myint_int_04739_gmpknd: tmp470 = compare_myint_int_04745_gmpknd (arg0, arg1) ; tmp469 = atspre_lt_int_int (tmp470, 0) ; return (tmp469) ; } /* end of [lt_myint_int_04739_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1922(line=63, offs=15) -- 1961(line=63, offs=54) */ ATSstaticdec() ats_bool_type neq_myint_int_04744_gmpknd (gmpknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp475) ; ATSlocal (ats_int_type, tmp476) ; __ats_lab_neq_myint_int_04744_gmpknd: tmp476 = compare_myint_int_04745_gmpknd (arg0, arg1) ; tmp475 = atspre_neq_int_int (tmp476, 0) ; return (tmp475) ; } /* end of [neq_myint_int_04744_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 6558(line=251, offs=6) -- 7907(line=310, offs=4) */ ATSstaticdec() ats_int_type myintvec_inspect_04779_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp449) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_bool_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_int_type, tmp461) ; ATSlocal (ats_int_type, tmp462) ; ATSlocal (ats_bool_type, tmp464) ; ATSlocal (gmpknd, tmp467) ; ATSlocal (ats_bool_type, tmp468) ; ATSlocal (gmpknd, tmp471) ; ATSlocal (ats_bool_type, tmp472) ; ATSlocal (gmpknd, tmp473) ; ATSlocal (ats_bool_type, tmp474) ; ATSlocal (gmpknd, tmp477) ; __ats_lab_myintvec_inspect_04779_gmpknd: tmp458 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; tmp460 = atspre_padd_size (tmp458, sizeof(gmpknd)) ; tmp461 = atspre_isub (arg2, 1) ; tmp459 = loop_68 (tmp460, tmp461) ; /* ats_int_type tmp462 ; */ tmp462 = 0 ; if (tmp459) { do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (arg0 != 2) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp467 = ats_ptrget_mac(gmpknd, tmp458) ; tmp464 = gte_myint_int_04742_gmpknd (tmp467, 0) ; if (tmp464) { tmp462 = 1 ; } else { tmp462 = -1 ; } /* end of [if] */ break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (arg0 != -2) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp471 = ats_ptrget_mac(gmpknd, tmp458) ; tmp468 = lt_myint_int_04739_gmpknd (tmp471, 0) ; if (tmp468) { tmp462 = 1 ; } else { tmp462 = -1 ; } /* end of [if] */ break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg0 != 1) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp473 = ats_ptrget_mac(gmpknd, tmp458) ; tmp472 = eq_myint_int_04743_gmpknd (tmp473, 0) ; if (tmp472) { tmp462 = 1 ; } else { tmp462 = -1 ; } /* end of [if] */ break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (arg0 != -1) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp477 = ats_ptrget_mac(gmpknd, tmp458) ; tmp474 = neq_myint_int_04744_gmpknd (tmp477, 0) ; if (tmp474) { tmp462 = 1 ; } else { tmp462 = -1 ; } /* end of [if] */ break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: break ; } while (0) ; } else { /* empty */ } /* end of [if] */ tmp449 = tmp462 ; return (tmp449) ; } /* end of [myintvec_inspect_04779_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 7973(line=314, offs=3) -- 8017(line=314, offs=47) */ ATSstaticdec() ats_int_type myintvec_inspect_lt_04780_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp448) ; __ats_lab_myintvec_inspect_lt_04780_gmpknd: tmp448 = myintvec_inspect_04779_gmpknd (-2, arg0, arg1) ; return (tmp448) ; } /* end of [myintvec_inspect_lt_04780_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 18175(line=790, offs=1) -- 18502(line=804, offs=6) */ ATSstaticdec() ats_void_type loop_74 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp481) ; ATSlocal (ats_bool_type, tmp482) ; ATSlocal (gmpknd, tmp483) ; ATSlocal (gmpknd, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_int_type, tmp486) ; __ats_lab_loop_74: tmp482 = atspre_igt (arg1, 0) ; if (tmp482) { tmp484 = ats_ptrget_mac(gmpknd, arg0) ; tmp483 = neg_myint_04725_gmpknd (tmp484) ; ats_ptrget_mac(gmpknd, arg0) = tmp483 ; tmp485 = atspre_padd_size (arg0, sizeof(gmpknd)) ; tmp486 = atspre_isub (arg1, 1) ; arg0 = tmp485 ; arg1 = tmp486 ; goto __ats_lab_loop_74 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp481) */ ; } /* end of [loop_74] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 18060(line=781, offs=7) -- 18661(line=816, offs=4) */ ATSstaticdec() ats_void_type myintvec_negate_04791_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp480) ; ATSlocal (ats_ptr_type, tmp487) ; __ats_lab_myintvec_negate_04791_gmpknd: tmp487 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; /* tmp480 = */ loop_74 (tmp487, arg1) ; return /* (tmp480) */ ; } /* end of [myintvec_negate_04791_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 12558(line=552, offs=1) -- 12938(line=569, offs=6) */ ATSstaticdec() ats_void_type loop_77 (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp493) ; ATSlocal (ats_bool_type, tmp494) ; ATSlocal (gmpknd, tmp495) ; ATSlocal (gmpknd, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_int_type, tmp498) ; __ats_lab_loop_77: tmp494 = atspre_igt (arg2, 0) ; if (tmp494) { tmp496 = ats_ptrget_mac(gmpknd, arg1) ; tmp495 = ediv01_myint_myint_04735_gmpknd (tmp496, arg0) ; ats_ptrget_mac(gmpknd, arg1) = tmp495 ; tmp497 = atspre_padd_size (arg1, sizeof(gmpknd)) ; tmp498 = atspre_isub (arg2, 1) ; arg0 = arg0 ; arg1 = tmp497 ; arg2 = tmp498 ; goto __ats_lab_loop_77 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp493) */ ; } /* end of [loop_77] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() gmpknd ptr0_get_01759_gmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (gmpknd, tmp508) ; __ats_lab_ptr0_get_01759_gmpknd: tmp508 = ats_ptrget_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp508) ; } /* end of [ptr0_get_01759_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 10322(line=428, offs=1) -- 11020(line=470, offs=2) */ ATSstaticdec() ats_void_type loop_80 (ats_int_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp505) ; ATSlocal (ats_bool_type, tmp506) ; ATSlocal (gmpknd, tmp507) ; ATSlocal (ats_bool_type, tmp509) ; ATSlocal (ats_bool_type, tmp510) ; ATSlocal (gmpknd, tmp511) ; ATSlocal (gmpknd, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_int_type, tmp514) ; // ATSlocal_void (tmp515) ; ATSlocal (gmpknd, tmp516) ; ATSlocal (gmpknd, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_int_type, tmp519) ; __ats_lab_loop_80: tmp506 = atspre_lt_int_int (arg1, env0) ; if (tmp506) { tmp507 = ptr0_get_01759_gmpknd (arg0) ; tmp509 = neq_myint_int_04744_gmpknd (tmp507, 0) ; if (tmp509) { tmp510 = neq_myint_int_04744_gmpknd (tmp507, 1) ; if (tmp510) { tmp512 = ats_ptrget_mac(gmpknd, env1) ; tmp511 = gcd01_myint_myint_04738_gmpknd (tmp512, tmp507) ; ats_ptrget_mac(gmpknd, env1) = tmp511 ; tmp513 = atspre_padd_size (arg0, sizeof(gmpknd)) ; tmp514 = atspre_add_int_int (arg1, 1) ; arg0 = tmp513 ; arg1 = tmp514 ; goto __ats_lab_loop_80 ; // tail call } else { tmp516 = ats_ptrget_mac(gmpknd, env1) ; /* tmp515 = */ myint_free_04723_gmpknd (tmp516) ; tmp517 = myint_make_int_04721_gmpknd (1) ; ats_ptrget_mac(gmpknd, env1) = tmp517 ; } /* end of [if] */ } else { tmp518 = atspre_padd_size (arg0, sizeof(gmpknd)) ; tmp519 = atspre_add_int_int (arg1, 1) ; arg0 = tmp518 ; arg1 = tmp519 ; goto __ats_lab_loop_80 ; // tail call } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp505) */ ; } /* end of [loop_80] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; ats_ptr_type closure_env_1 ; } loop_80_closure_type ; ats_void_type loop_80_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { loop_80 (((loop_80_closure_type*)cloptr)->closure_env_0, ((loop_80_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type loop_80_closure_init (loop_80_closure_type *p_clo, ats_int_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_80_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type loop_80_closure_make (ats_int_type env0, ats_ptr_type env1) { loop_80_closure_type *p_clo = ATS_MALLOC(sizeof(loop_80_closure_type)) ; loop_80_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 9501(line=388, offs=12) -- 11209(line=479, offs=4) */ ATSstaticdec() ats_void_type myintvec_cffgcd_main_04131_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp504) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; __ats_lab_myintvec_cffgcd_main_04131_gmpknd: tmp520 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp521 = atspre_padd_size (tmp520, sizeof(gmpknd)) ; /* tmp504 = */ loop_80 (arg1, arg2, tmp521, 1) ; return /* (tmp504) */ ; } /* end of [myintvec_cffgcd_main_04131_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 11302(line=485, offs=6) -- 12298(line=535, offs=4) */ ATSstaticdec() gmpknd myintvec_cffgcd_04785_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (gmpknd, tmp500) ; ATSlocal (gmpknd, tmp501) ; // ATSlocal_void (tmp502) ; // ATSlocal_void (tmp503) ; ATSlocal (ats_ptr_type, tmp522) ; __ats_lab_myintvec_cffgcd_04785_gmpknd: /* gmpknd tmp501 ; */ tmp501 = myint_make_int_04721_gmpknd (0) ; ATS_TRYWITH_TRY(tmp522) /* tmp503 = */ myintvec_cffgcd_main_04131_gmpknd (ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)), arg1, (&tmp501)) ; /* tmp502 = tmp503 */ ; ATS_TRYWITH_WITH(tmp522) do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (tmp522 != &_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__Finished) { ats_raise_exn (tmp522) ; } __ats_lab_60_1: break ; } while (0) ; ATS_TRYWITH_END() ; tmp500 = tmp501 ; return (tmp500) ; } /* end of [myintvec_cffgcd_04785_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1720(line=56, offs=14) -- 1758(line=56, offs=52) */ ATSstaticdec() ats_bool_type gt_myint_int_04741_gmpknd (gmpknd arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp524) ; ATSlocal (ats_int_type, tmp525) ; __ats_lab_gt_myint_int_04741_gmpknd: tmp525 = compare_myint_int_04745_gmpknd (arg0, arg1) ; tmp524 = atspre_gt_int_int (tmp525, 0) ; return (tmp524) ; } /* end of [gt_myint_int_04741_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 12407(line=543, offs=7) -- 14127(line=613, offs=4) */ ATSstaticdec() ats_int_type myintvec_normalize_05215_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp492) ; ATSlocal (gmpknd, tmp499) ; ATSlocal (ats_bool_type, tmp523) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_int_type, tmp527) ; // ATSlocal_void (tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_int_type, tmp530) ; // ATSlocal_void (tmp531) ; ATSlocal (ats_bool_type, tmp532) ; ATSlocal (ats_bool_type, tmp533) ; ATSlocal (gmpknd, tmp534) ; ATSlocal (gmpknd, tmp535) ; ATSlocal (gmpknd, tmp536) ; ATSlocal (gmpknd, tmp537) ; ATSlocal (gmpknd, tmp538) ; ATSlocal (gmpknd, tmp539) ; ATSlocal (gmpknd, tmp540) ; ATSlocal (gmpknd, tmp541) ; ATSlocal (gmpknd, tmp542) ; ATSlocal (ats_bool_type, tmp543) ; ATSlocal (gmpknd, tmp544) ; ATSlocal (gmpknd, tmp545) ; ATSlocal (ats_bool_type, tmp547) ; ATSlocal (gmpknd, tmp548) ; ATSlocal (gmpknd, tmp549) ; // ATSlocal_void (tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; // ATSlocal_void (tmp552) ; // ATSlocal_void (tmp553) ; __ats_lab_myintvec_normalize_05215_gmpknd: tmp499 = myintvec_cffgcd_04785_gmpknd (arg1, arg2) ; tmp523 = gt_myint_int_04741_gmpknd (tmp499, 1) ; if (tmp523) { tmp526 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; /* ats_int_type tmp527 ; */ tmp527 = 0 ; tmp529 = atspre_padd_size (tmp526, sizeof(gmpknd)) ; tmp530 = atspre_isub (arg2, 1) ; /* tmp528 = */ loop_77 (tmp499, tmp529, tmp530) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: __ats_lab_61_1: tmp532 = atspre_eq_int_int (arg0, 2) ; if (!tmp532) { goto __ats_lab_62_1 ; } tmp534 = ats_ptrget_mac(gmpknd, tmp526) ; tmp533 = gte_myint_int_04742_gmpknd (tmp534, 0) ; if (tmp533) { tmp536 = ats_ptrget_mac(gmpknd, tmp526) ; tmp535 = div01_myint_myint_04733_gmpknd (tmp536, tmp499) ; ats_ptrget_mac(gmpknd, tmp526) = tmp535 ; } else { tmp538 = ats_ptrget_mac(gmpknd, tmp526) ; tmp537 = sub01_myint_myint_04729_gmpknd (tmp538, tmp499) ; ats_ptrget_mac(gmpknd, tmp526) = tmp537 ; tmp540 = ats_ptrget_mac(gmpknd, tmp526) ; tmp539 = add_myint_int_04727_gmpknd (tmp540, 1) ; ats_ptrget_mac(gmpknd, tmp526) = tmp539 ; tmp542 = ats_ptrget_mac(gmpknd, tmp526) ; tmp541 = div01_myint_myint_04733_gmpknd (tmp542, tmp499) ; ats_ptrget_mac(gmpknd, tmp526) = tmp541 ; } /* end of [if] */ break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: tmp543 = atspre_eq_int_int (arg0, 1) ; if (!tmp543) { goto __ats_lab_63_1 ; } tmp545 = ats_ptrget_mac(gmpknd, tmp526) ; tmp544 = mod11_myint_myint_04737_gmpknd (tmp545, tmp499) ; tmp547 = eq_myint_int_04743_gmpknd (tmp544, 0) ; if (tmp547) { tmp549 = ats_ptrget_mac(gmpknd, tmp526) ; tmp548 = ediv01_myint_myint_04735_gmpknd (tmp549, tmp499) ; ats_ptrget_mac(gmpknd, tmp526) = tmp548 ; } else { tmp527 = -1 ; } /* end of [if] */ /* tmp531 = */ myint_free_04723_gmpknd (tmp544) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp551 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_lintprgm.dats: 13818(line=601, offs=18) -- 13834(line=601, offs=34)", ATSstrcst("\n")) ; /* tmp550 = */ atspre_assert_errmsg (ats_false_bool, tmp551) ; tmp527 = -1 ; break ; } while (0) ; /* tmp552 = */ myint_free_04723_gmpknd (tmp499) ; tmp492 = tmp527 ; } else { /* tmp553 = */ myint_free_04723_gmpknd (tmp499) ; tmp492 = 0 ; } /* end of [if] */ return (tmp492) ; } /* end of [myintvec_normalize_05215_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 14198(line=617, offs=3) -- 14275(line=619, offs=2) */ ATSstaticdec() ats_void_type myintvec_normalize_gte_04786_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp490) ; ATSlocal (ats_int_type, tmp491) ; __ats_lab_myintvec_normalize_gte_04786_gmpknd: tmp491 = myintvec_normalize_05215_gmpknd (2, arg0, arg1) ; return /* (tmp490) */ ; } /* end of [myintvec_normalize_gte_04786_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 22438(line=1099, offs=17) -- 23051(line=1128, offs=4) */ ATSstaticdec() ats_int_type auxlt_04604_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_int_type, tmp372) ; // ATSlocal_void (tmp373) ; ATSlocal (ats_int_type, tmp447) ; ATSlocal (ats_bool_type, tmp478) ; // ATSlocal_void (tmp479) ; // ATSlocal_void (tmp488) ; // ATSlocal_void (tmp489) ; ATSlocal (ats_ptr_type, tmp554) ; // ATSlocal_void (tmp555) ; __ats_lab_auxlt_04604_gmpknd: /* tmp373 = */ myintvec_elimeqlst_05247_gmpknd (0, arg3, ats_ptrget_mac(ats_ptr_type, arg2), arg4) ; tmp447 = myintvec_inspect_lt_04780_gmpknd (arg3, arg4) ; tmp478 = atspre_ieq (tmp447, 0) ; if (tmp478) { /* tmp479 = */ myintvec_negate_04791_gmpknd (arg3, arg4) ; /* tmp488 = */ myintvec_add_int_04760_gmpknd (arg3, -1) ; /* tmp489 = */ myintvec_normalize_gte_04786_gmpknd (arg3, arg4) ; tmp554 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp554)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp554, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp554, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_9, tmp554, atslab_2, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp554 ; tmp372 = 0 ; } else { /* tmp555 = */ myintvec_free_04765_gmpknd (arg3, arg4) ; tmp372 = tmp447 ; } /* end of [if] */ return (tmp372) ; } /* end of [auxlt_04604_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 20786(line=1009, offs=5) -- 21544(line=1042, offs=4) */ ATSstaticdec() ats_void_type loop_85 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_int_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; // ATSlocal_void (tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; __ats_lab_loop_85: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp562 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp562 ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp563 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp564 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp565 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ; tmp567 = ats_ptrget_mac(ats_ptr_type, tmp564) ; tmp566 = myintvec_copy_04788_gmpknd (tmp567, arg2) ; /* tmp568 = */ myintvec_elimeqlst_05247_gmpknd (tmp563, tmp566, arg1, arg2) ; tmp569 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp569, atslab_0, tmp566) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp569 ; // if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp570 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ; tmp571 = ats_ptrget_mac(ats_ptr_type, tmp565) ; arg0 = tmp571 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp570 ; goto __ats_lab_loop_85 ; // tail call break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: tmp572 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp573 = ats_ptrget_mac(ats_ptr_type, tmp572) ; arg0 = tmp573 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_85 ; // tail call break ; } while (0) ; return /* (tmp561) */ ; } /* end of [loop_85] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 20715(line=1005, offs=7) -- 21644(line=1049, offs=4) */ ATSstaticdec() ats_ptr_type myivlst_elimeqlst_05252_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp560) ; ATSlocal (ats_ptr_type, tmp574) ; // ATSlocal_void (tmp575) ; __ats_lab_myivlst_elimeqlst_05252_gmpknd: /* ats_ptr_type tmp574 ; */ /* tmp575 = */ loop_85 (arg0, arg1, arg2, (&tmp574)) ; tmp560 = tmp574 ; return (tmp560) ; } /* end of [myivlst_elimeqlst_05252_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 8088(line=319, offs=3) -- 8132(line=319, offs=47) */ ATSstaticdec() ats_int_type myintvec_inspect_gte_04781_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp581) ; __ats_lab_myintvec_inspect_gte_04781_gmpknd: tmp581 = myintvec_inspect_04779_gmpknd (2, arg0, arg1) ; return (tmp581) ; } /* end of [myintvec_inspect_gte_04781_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 8581(line=342, offs=7) -- 9361(line=376, offs=4) */ ATSstaticdec() ats_int_type myintveclst_inspect_gte_04784_gmpknd (ats_ref_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_int_type, tmp580) ; ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_bool_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; // ATSlocal_void (tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_bool_type, tmp587) ; __ats_lab_myintveclst_inspect_gte_04784_gmpknd: do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp578 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp579 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp582 = ats_ptrget_mac(ats_ptr_type, tmp578) ; tmp580 = myintvec_inspect_gte_04781_gmpknd (tmp582, arg1) ; tmp583 = atspre_ineq (tmp580, 0) ; if (tmp583) { tmp584 = ats_ptrget_mac(ats_ptr_type, tmp579) ; tmp586 = ats_ptrget_mac(ats_ptr_type, tmp578) ; /* tmp585 = */ myintvec_free_04765_gmpknd (tmp586, arg1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp584 ; tmp587 = atspre_igt (tmp580, 0) ; if (tmp587) { arg0 = arg0 ; arg1 = arg1 ; goto __ats_lab_myintveclst_inspect_gte_04784_gmpknd ; // tail call } else { tmp577 = -1 ; } /* end of [if] */ } else { arg0 = tmp579 ; arg1 = arg1 ; goto __ats_lab_myintveclst_inspect_gte_04784_gmpknd ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp577 = 0 ; break ; } while (0) ; return (tmp577) ; } /* end of [myintveclst_inspect_gte_04784_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 14357(line=623, offs=7) -- 14656(line=639, offs=4) */ ATSstaticdec() ats_void_type myintveclst_normalize_gte_04787_gmpknd (ats_ref_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; // ATSlocal_void (tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; __ats_lab_myintveclst_normalize_gte_04787_gmpknd: do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp592 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp593 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp595 = ats_ptrget_mac(ats_ptr_type, tmp592) ; /* tmp594 = */ myintvec_normalize_gte_04786_gmpknd (tmp595, arg1) ; arg0 = tmp593 ; arg1 = arg1 ; goto __ats_lab_myintveclst_normalize_gte_04787_gmpknd ; // tail call break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_73_1: break ; } while (0) ; return /* (tmp591) */ ; } /* end of [myintveclst_normalize_gte_04787_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 2771(line=107, offs=1) -- 3620(line=146, offs=4) */ ATSstaticdec() ats_void_type auxbeg_92 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_int_type, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_bool_type, tmp609) ; ATSlocal (ats_bool_type, tmp610) ; __ats_lab_auxbeg_92: do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_74_1: break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: tmp604 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp605 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp607 = ats_ptrget_mac(ats_ptr_type, tmp604) ; tmp606 = myintvec_compare_at_04761_gmpknd (tmp607, arg1, 0) ; tmp608 = ats_ptrget_mac(ats_ptr_type, tmp605) ; tmp609 = atspre_gt_int_int (tmp606, 0) ; if (tmp609) { ats_ptrget_mac(ats_ptr_type, tmp605) = ats_ptrget_mac(ats_ptr_type, arg3) ; ats_ptrget_mac(ats_ptr_type, arg3) = arg0 ; arg0 = tmp608 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_auxbeg_92 ; // tail call } else { tmp610 = atspre_lt_int_int (tmp606, 0) ; if (tmp610) { ats_ptrget_mac(ats_ptr_type, tmp605) = ats_ptrget_mac(ats_ptr_type, arg4) ; ats_ptrget_mac(ats_ptr_type, arg4) = arg0 ; arg0 = tmp608 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_auxbeg_92 ; // tail call } else { ats_ptrget_mac(ats_ptr_type, tmp605) = ats_ptrget_mac(ats_ptr_type, arg2) ; ats_ptrget_mac(ats_ptr_type, arg2) = arg0 ; arg0 = tmp608 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_auxbeg_92 ; // tail call } /* end of [if] */ } /* end of [if] */ break ; } while (0) ; return /* (tmp603) */ ; } /* end of [auxbeg_92] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 17061(line=747, offs=5) -- 17687(line=765, offs=6) */ ATSstaticdec() ats_void_type loop_96 (gmpknd arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp621) ; ATSlocal (ats_bool_type, tmp622) ; ATSlocal (gmpknd, tmp623) ; ATSlocal (gmpknd, tmp624) ; ATSlocal (ats_ptr_type, tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_int_type, tmp627) ; __ats_lab_loop_96: tmp622 = atspre_igt (arg3, 0) ; if (tmp622) { tmp624 = ats_ptrget_mac(gmpknd, arg1) ; tmp623 = mul11_myint_myint_04732_gmpknd (arg0, tmp624) ; ats_ptrget_mac(gmpknd, arg2) = tmp623 ; tmp625 = atspre_padd_size (arg1, sizeof(gmpknd)) ; tmp626 = atspre_padd_size (arg2, sizeof(gmpknd)) ; tmp627 = atspre_isub (arg3, 1) ; arg0 = arg0 ; arg1 = tmp625 ; arg2 = tmp626 ; arg3 = tmp627 ; goto __ats_lab_loop_96 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp621) */ ; } /* end of [loop_96] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 16931(line=738, offs=7) -- 17972(line=775, offs=4) */ ATSstaticdec() ats_ptr_type myintvec_copy_cff_04789_gmpknd (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp620) ; ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp630) ; // ATSlocal_void (tmp631) ; __ats_lab_myintvec_copy_cff_04789_gmpknd: tmp628 = myintvec0_make_04762_gmpknd (arg2) ; tmp629 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; tmp630 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp628), atslab_1) ; /* tmp631 = */ loop_96 (arg0, tmp629, tmp630, arg2) ; tmp620 = tmp628 ; return (tmp620) ; } /* end of [myintvec_copy_cff_04789_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 2067(line=76, offs=3) -- 2376(line=85, offs=4) */ ATSstaticdec() ats_ptr_type myintvec_combine_at_05228_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (gmpknd, tmp616) ; ATSlocal (gmpknd, tmp617) ; ATSlocal (gmpknd, tmp618) ; ATSlocal (ats_ptr_type, tmp619) ; // ATSlocal_void (tmp632) ; // ATSlocal_void (tmp633) ; // ATSlocal_void (tmp634) ; __ats_lab_myintvec_combine_at_05228_gmpknd: tmp616 = myintvec_get_at_04758_gmpknd (arg0, arg3) ; tmp618 = myintvec_get_at_04758_gmpknd (arg1, arg3) ; tmp617 = neg_myint_04725_gmpknd (tmp618) ; tmp619 = myintvec_copy_cff_04789_gmpknd (tmp616, arg1, arg2) ; /* tmp632 = */ myintvec_addby_cff_04795_gmpknd (tmp619, tmp617, arg0, arg2) ; /* tmp633 = */ myint_free_04723_gmpknd (tmp616) ; /* tmp634 = */ myint_free_04723_gmpknd (tmp617) ; tmp615 = tmp619 ; return (tmp615) ; } /* end of [myintvec_combine_at_05228_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 3647(line=149, offs=1) -- 4609(line=190, offs=4) */ ATSstaticdec() ats_int_type auxcomb_93 (ats_int_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_int_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; ATSlocal (ats_ptr_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp635) ; ATSlocal (ats_int_type, tmp636) ; // ATSlocal_void (tmp637) ; ATSlocal (ats_bool_type, tmp638) ; // ATSlocal_void (tmp639) ; ATSlocal (ats_ptr_type, tmp640) ; ATSlocal (ats_bool_type, tmp641) ; __ats_lab_auxcomb_93: do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (ats_ptrget_mac(ats_ptr_type, arg3) != (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp611 = 0 ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: tmp612 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg3), atslab_0) ; tmp613 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ; tmp635 = ats_ptrget_mac(ats_ptr_type, tmp612) ; tmp614 = myintvec_combine_at_05228_gmpknd (tmp635, arg4, arg0, arg1) ; tmp636 = myintvec_inspect_gte_04781_gmpknd (tmp614, arg0) ; tmp638 = atspre_ineq (tmp636, 0) ; if (tmp638) { /* tmp637 = */ myintvec_free_04765_gmpknd (tmp614, arg0) ; } else { /* tmp639 = */ myintvec_normalize_gte_04786_gmpknd (tmp614, arg0) ; tmp640 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp640, atslab_0, tmp614) ; ats_selptrset_mac(anairiats_sum_4, tmp640, atslab_1, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp640 ; } /* end of [if] */ tmp641 = atspre_igte (tmp636, 0) ; if (tmp641) { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp613 ; arg4 = arg4 ; goto __ats_lab_auxcomb_93 ; // tail call } else { tmp611 = -1 ; } /* end of [if] */ break ; } while (0) ; return (tmp611) ; } /* end of [auxcomb_93] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 5650(line=208, offs=18) -- 5789(line=212, offs=26) */ ATSstaticdec() ats_void_type myintveclst_free_04768_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; // ATSlocal_void (tmp652) ; __ats_lab_myintveclst_free_04768_gmpknd: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp650 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp651 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp652 = */ myintvec_free_04765_gmpknd (tmp650, arg1) ; arg0 = tmp651 ; arg1 = arg1 ; goto __ats_lab_myintveclst_free_04768_gmpknd ; // tail call break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: break ; } while (0) ; return /* (tmp649) */ ; } /* end of [myintveclst_free_04768_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 4692(line=195, offs=1) -- 5195(line=218, offs=4) */ ATSstaticdec() ats_int_type auxcomblst_97 (ats_int_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_int_type, tmp642) ; ATSlocal (ats_ptr_type, tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; ATSlocal (ats_int_type, tmp645) ; // ATSlocal_void (tmp646) ; ATSlocal (ats_bool_type, tmp647) ; // ATSlocal_void (tmp648) ; __ats_lab_auxcomblst_97: do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_78_1: tmp643 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ; tmp644 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ; ATS_FREE(arg4) ; tmp645 = auxcomb_93 (arg0, arg1, arg2, arg3, tmp643) ; /* tmp646 = */ myintvec_free_04765_gmpknd (tmp643, arg0) ; tmp647 = atspre_gte_int_int (tmp645, 0) ; if (tmp647) { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp644 ; goto __ats_lab_auxcomblst_97 ; // tail call } else { /* tmp648 = */ myintveclst_free_04768_gmpknd (tmp644, arg0) ; tmp642 = -1 ; } /* end of [if] */ break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: tmp642 = 0 ; break ; } while (0) ; return (tmp642) ; } /* end of [auxcomblst_97] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 2683(line=101, offs=7) -- 5491(line=233, offs=4) */ ATSstaticdec() ats_int_type myintveclst_split_at_05229_gmpknd (ats_ref_type arg0, ats_int_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp602) ; ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; // ATSlocal_void (tmp656) ; ATSlocal (ats_int_type, tmp657) ; // ATSlocal_void (tmp658) ; __ats_lab_myintveclst_split_at_05229_gmpknd: /* ats_ptr_type tmp653 ; */ tmp653 = (ats_sum_ptr_type)0 ; /* ats_ptr_type tmp654 ; */ tmp654 = (ats_sum_ptr_type)0 ; /* ats_ptr_type tmp655 ; */ tmp655 = (ats_sum_ptr_type)0 ; /* tmp656 = */ auxbeg_92 (ats_ptrget_mac(ats_ptr_type, arg0), arg2, (&tmp653), (&tmp654), (&tmp655)) ; tmp657 = auxcomblst_97 (arg1, arg2, (&tmp653), (&tmp654), tmp655) ; /* tmp658 = */ myintveclst_free_04768_gmpknd (tmp654, arg1) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp653 ; tmp602 = tmp657 ; return (tmp602) ; } /* end of [myintveclst_split_at_05229_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 9818(line=454, offs=5) -- 10328(line=473, offs=4) */ ATSstaticdec() ats_int_type solve_90 (ats_ref_type arg0, ats_ref_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp598) ; ATSlocal (ats_int_type, tmp599) ; ATSlocal (ats_bool_type, tmp600) ; ATSlocal (ats_int_type, tmp601) ; ATSlocal (ats_bool_type, tmp659) ; __ats_lab_solve_90: tmp599 = _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_choose (arg1) ; tmp600 = atspre_igt (tmp599, 0) ; if (tmp600) { tmp601 = myintveclst_split_at_05229_gmpknd (arg0, arg2, tmp599) ; tmp659 = atspre_gte_int_int (tmp601, 0) ; if (tmp659) { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_solve_90 ; // tail call } else { tmp598 = -1 ; } /* end of [if] */ } else { tmp598 = 0 ; } /* end of [if] */ return (tmp598) ; } /* end of [solve_90] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 9625(line=445, offs=6) -- 10615(line=488, offs=4) */ ATSstaticdec() ats_int_type myintveclst_solve_05234_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp597) ; ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; ATSlocal (ats_int_type, tmp662) ; // ATSlocal_void (tmp663) ; // ATSlocal_void (tmp664) ; __ats_lab_myintveclst_solve_05234_gmpknd: /* ats_ptr_type tmp660 ; */ tmp660 = arg1 ; /* ats_ptr_type tmp661 ; */ tmp661 = _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_make (arg0, arg2) ; tmp662 = solve_90 ((&tmp660), (&tmp661), arg2) ; /* tmp663 = */ myintveclst_free_04768_gmpknd (tmp660, arg2) ; /* tmp664 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_free (tmp661) ; tmp597 = tmp662 ; return (tmp597) ; } /* end of [myintveclst_solve_05234_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 24367(line=1199, offs=18) -- 25413(line=1241, offs=4) */ ATSstaticdec() ats_int_type auxcont_04626_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_int_type arg6) { /* local vardec */ ATSlocal (ats_int_type, tmp556) ; ATSlocal (ats_bool_type, tmp557) ; ATSlocal (ats_bool_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_int_type, tmp576) ; // ATSlocal_void (tmp588) ; ATSlocal (ats_bool_type, tmp589) ; // ATSlocal_void (tmp590) ; ATSlocal (ats_int_type, tmp596) ; ATSlocal (ats_bool_type, tmp666) ; ATSlocal (ats_int_type, tmp667) ; ATSlocal (ats_int_type, tmp668) ; __ats_lab_auxcont_04626_gmpknd: do { /* branch: __ats_lab_64 */ __ats_lab_64_0: __ats_lab_64_1: tmp557 = atspre_lt_int_int (arg6, 0) ; if (!tmp557) { goto __ats_lab_65_1 ; } tmp556 = -1 ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: __ats_lab_65_1: tmp558 = atspre_gt_int_int (arg6, 0) ; if (!tmp558) { goto __ats_lab_66_1 ; } tmp556 = auxmain_05253_gmpknd (arg0, arg1, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: /* ats_ptr_type tmp559 ; */ tmp559 = myivlst_elimeqlst_05252_gmpknd (ats_ptrget_mac(ats_ptr_type, arg2), ats_ptrget_mac(ats_ptr_type, arg3), arg4) ; /* ats_int_type tmp576 ; */ tmp576 = myintveclst_inspect_gte_04784_gmpknd ((&tmp559), arg4) ; tmp589 = atspre_igte (tmp576, 0) ; if (tmp589) { /* tmp590 = */ myintveclst_normalize_gte_04787_gmpknd ((&tmp559), arg4) ; tmp596 = myintveclst_solve_05234_gmpknd (arg1, tmp559, arg4) ; tmp576 = tmp596 ; } else { /* tmp588 = */ myintveclst_free_04768_gmpknd (tmp559, arg4) ; } /* end of [if] */ tmp666 = atspre_igte (tmp576, 0) ; if (tmp666) { tmp668 = atspre_add_int_int (arg0, 1) ; tmp667 = auxmain_05253_gmpknd (tmp668, arg1, arg2, arg3, arg4, arg5) ; tmp576 = tmp667 ; } else { /* empty */ } /* end of [if] */ tmp556 = tmp576 ; break ; } while (0) ; return (tmp556) ; } /* end of [auxcont_04626_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 23101(line=1132, offs=18) -- 23644(line=1159, offs=4) */ ATSstaticdec() ats_int_type auxgte_04611_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_int_type, tmp673) ; // ATSlocal_void (tmp674) ; ATSlocal (ats_int_type, tmp675) ; ATSlocal (ats_bool_type, tmp676) ; // ATSlocal_void (tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; // ATSlocal_void (tmp679) ; __ats_lab_auxgte_04611_gmpknd: /* tmp674 = */ myintvec_elimeqlst_05247_gmpknd (0, arg3, ats_ptrget_mac(ats_ptr_type, arg2), arg4) ; tmp675 = myintvec_inspect_gte_04781_gmpknd (arg3, arg4) ; tmp676 = atspre_ieq (tmp675, 0) ; if (tmp676) { /* tmp677 = */ myintvec_normalize_gte_04786_gmpknd (arg3, arg4) ; tmp678 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp678)->tag = 1 ; ats_selptrset_mac(anairiats_sum_9, tmp678, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp678, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_9, tmp678, atslab_2, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp678 ; tmp673 = 0 ; } else { /* tmp679 = */ myintvec_free_04765_gmpknd (arg3, arg4) ; tmp673 = tmp675 ; } /* end of [if] */ return (tmp673) ; } /* end of [auxgte_04611_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 8202(line=324, offs=3) -- 8367(line=331, offs=4) */ ATSstaticdec() ats_int_type myintvec_inspect_eq_04782_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp687) ; ATSlocal (ats_int_type, tmp688) ; ATSlocal (ats_bool_type, tmp689) ; __ats_lab_myintvec_inspect_eq_04782_gmpknd: tmp688 = myintvec_inspect_04779_gmpknd (1, arg0, arg1) ; tmp689 = atspre_ieq (tmp688, 0) ; if (tmp689) { tmp687 = myintvec_normalize_05215_gmpknd (1, arg0, arg1) ; } else { tmp687 = tmp688 ; } /* end of [if] */ return (tmp687) ; } /* end of [myintvec_inspect_eq_04782_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 2013(line=68, offs=16) -- 2057(line=68, offs=60) */ ATSstaticdec() ats_bool_type lt_myint_myint_04746_gmpknd (gmpknd arg0, gmpknd arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp701) ; ATSlocal (ats_int_type, tmp702) ; __ats_lab_lt_myint_myint_04746_gmpknd: tmp702 = compare_myint_myint_04750_gmpknd (arg0, arg1) ; tmp701 = atspre_lt_int_int (tmp702, 0) ; return (tmp701) ; } /* end of [lt_myint_myint_04746_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 5811(line=251, offs=5) -- 7162(line=305, offs=4) */ ATSstaticdec() ats_void_type loop_103 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_bool_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp693) ; ATSlocal (ats_bool_type, tmp694) ; ATSlocal (ats_int_type, tmp695) ; ATSlocal (gmpknd, tmp696) ; ATSlocal (ats_bool_type, tmp698) ; ATSlocal (ats_bool_type, tmp699) ; ATSlocal (ats_bool_type, tmp700) ; ATSlocal (gmpknd, tmp703) ; ATSlocal (ats_int_type, tmp704) ; // ATSlocal_void (tmp705) ; ATSlocal (gmpknd, tmp706) ; ATSlocal (gmpknd, tmp707) ; // ATSlocal_void (tmp708) ; ATSlocal (ats_bool_type, tmp709) ; ATSlocal (gmpknd, tmp710) ; ATSlocal (gmpknd, tmp711) ; ATSlocal (ats_bool_type, tmp712) ; ATSlocal (ats_bool_type, tmp713) ; ATSlocal (ats_int_type, tmp714) ; // ATSlocal_void (tmp715) ; ATSlocal (ats_bool_type, tmp716) ; ATSlocal (ats_ptr_type, tmp717) ; ATSlocal (ats_int_type, tmp718) ; ATSlocal (ats_bool_type, tmp719) ; ATSlocal (ats_ptr_type, tmp720) ; ATSlocal (ats_int_type, tmp721) ; __ats_lab_loop_103: tmp694 = atspre_igt (arg2, 0) ; if (tmp694) { tmp696 = ats_ptrget_mac(gmpknd, arg0) ; tmp695 = compare_myint_int_04745_gmpknd (tmp696, 0) ; tmp698 = atspre_gt_int_int (tmp695, 0) ; if (tmp698) { tmp703 = ats_ptrget_mac(gmpknd, arg0) ; tmp700 = lt_myint_myint_04746_gmpknd (tmp703, ats_ptrget_mac(gmpknd, arg5)) ; tmp699 = atspre_add_bool_bool (arg3, tmp700) ; if (tmp699) { tmp704 = atspre_isub (arg1, arg2) ; ats_ptrget_mac(ats_int_type, arg4) = tmp704 ; /* tmp705 = */ myint_free_04723_gmpknd (ats_ptrget_mac(gmpknd, arg5)) ; tmp707 = ats_ptrget_mac(gmpknd, arg0) ; tmp706 = myint_copy_04724_gmpknd (tmp707) ; ats_ptrget_mac(gmpknd, arg5) = tmp706 ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp709 = atspre_lt_int_int (tmp695, 0) ; if (tmp709) { tmp711 = ats_ptrget_mac(gmpknd, arg0) ; tmp710 = neg1_myint_04726_gmpknd (tmp711) ; tmp713 = lt_myint_myint_04746_gmpknd (tmp710, ats_ptrget_mac(gmpknd, arg5)) ; tmp712 = atspre_add_bool_bool (arg3, tmp713) ; if (tmp712) { tmp714 = atspre_isub (arg1, arg2) ; ats_ptrget_mac(ats_int_type, arg4) = tmp714 ; /* tmp715 = */ myint_free_04723_gmpknd (ats_ptrget_mac(gmpknd, arg5)) ; ats_ptrget_mac(gmpknd, arg5) = tmp710 ; } else { /* tmp708 = */ myint_free_04723_gmpknd (tmp710) ; } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp716 = atspre_eq_int_int (tmp695, 0) ; if (tmp716) { tmp717 = atspre_padd_size (arg0, sizeof(gmpknd)) ; tmp718 = atspre_isub (arg2, 1) ; arg0 = tmp717 ; arg1 = arg1 ; arg2 = tmp718 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_loop_103 ; // tail call } else { tmp719 = gt_myint_int_04741_gmpknd (ats_ptrget_mac(gmpknd, arg5), 1) ; if (tmp719) { tmp720 = atspre_padd_size (arg0, sizeof(gmpknd)) ; tmp721 = atspre_isub (arg2, 1) ; arg0 = tmp720 ; arg1 = arg1 ; arg2 = tmp721 ; arg3 = ats_false_bool ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_loop_103 ; // tail call } else { /* empty */ } /* end of [if] */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp693) */ ; } /* end of [loop_103] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 5762(line=247, offs=6) -- 7550(line=320, offs=4) */ ATSstaticdec() ats_int_type myintvec_get_index_of_absmincff_05230_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp692) ; ATSlocal (ats_int_type, tmp722) ; ATSlocal (gmpknd, tmp723) ; ATSlocal (ats_ptr_type, tmp724) ; // ATSlocal_void (tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; ATSlocal (ats_int_type, tmp727) ; // ATSlocal_void (tmp728) ; // ATSlocal_void (tmp729) ; ATSlocal (ats_bool_type, tmp730) ; ATSlocal (ats_ptr_type, tmp731) ; __ats_lab_myintvec_get_index_of_absmincff_05230_gmpknd: /* ats_int_type tmp722 ; */ tmp722 = 0 ; /* gmpknd tmp723 ; */ tmp723 = myint_make_int_04721_gmpknd (0) ; tmp724 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp726 = atspre_padd_size (tmp724, sizeof(gmpknd)) ; tmp727 = atspre_isub (arg1, 1) ; /* tmp725 = */ loop_103 (tmp726, arg1, tmp727, ats_true_bool, (&tmp722), (&tmp723)) ; /* tmp728 = */ myint_free_04723_gmpknd (tmp723) ; tmp730 = atspre_igt (tmp722, 0) ; tmp731 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 7515(line=316, offs=10) -- 7533(line=316, offs=28)", ATSstrcst("\n")) ; /* tmp729 = */ atspre_assert_errmsg (tmp730, tmp731) ; tmp692 = tmp722 ; return (tmp692) ; } /* end of [myintvec_get_index_of_absmincff_05230_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 15946(line=756, offs=1) -- 16215(line=767, offs=52) */ ATSstaticdec() ats_ptr_type myiveqlst_get_prev_04542_gmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp735) ; ATSlocal (ats_ptr_type, tmp736) ; ATSlocal (ats_ptr_type, tmp737) ; __ats_lab_myiveqlst_get_prev_04542_gmpknd: do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp735 = atspre_null_ptr ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp736 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ; tmp735 = tmp736 ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: tmp737 = &ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp735 = tmp737 ; break ; } while (0) ; return (tmp735) ; } /* end of [myiveqlst_get_prev_04542_gmpknd] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2024(line=63, offs=10) -- 2250(line=73, offs=2) */ ATSstaticdec() ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp742) ; __ats_lab_ptr0_set_01760_ats_ptr_type: ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) = arg1 ; return /* (tmp742) */ ; } /* end of [ptr0_set_01760_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2472(line=83, offs=21) -- 2499(line=83, offs=48) */ ATSstaticdec() ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp741) ; __ats_lab_ptrset_01764_ats_ptr_type: /* tmp741 = */ ptr0_set_01760_ats_ptr_type (arg0, arg1) ; return /* (tmp741) */ ; } /* end of [ptrset_01764_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 16485(line=786, offs=1) -- 16852(line=808, offs=2) */ ATSstaticdec() ats_ptr_type myiveqlst_cons_05243_gmpknd (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp733) ; ATSlocal (ats_ptr_type, tmp734) ; ATSlocal (ats_ptr_type, tmp738) ; // ATSlocal_void (tmp739) ; ATSlocal (ats_bool_type, tmp740) ; __ats_lab_myiveqlst_cons_05243_gmpknd: tmp734 = myiveqlst_get_prev_04542_gmpknd (arg3) ; tmp738 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp738)->tag = 1 ; ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_3, atspre_null_ptr) ; ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_4, arg3) ; tmp740 = atspre_pgt (ats_castfn_mac(ats_ptr_type, tmp734), atspre_null_ptr) ; if (tmp740) { /* tmp739 = */ ptrset_01764_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp734), ats_castfn_mac(ats_ptr_type, tmp738)) ; } else { /* empty */ } /* end of [if] */ tmp733 = tmp738 ; return (tmp733) ; } /* end of [myiveqlst_cons_05243_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 23694(line=1163, offs=17) -- 24307(line=1194, offs=4) */ ATSstaticdec() ats_int_type auxeq_04618_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_int_type, tmp684) ; // ATSlocal_void (tmp685) ; ATSlocal (ats_int_type, tmp686) ; ATSlocal (ats_bool_type, tmp690) ; ATSlocal (ats_int_type, tmp691) ; ATSlocal (ats_ptr_type, tmp732) ; // ATSlocal_void (tmp743) ; __ats_lab_auxeq_04618_gmpknd: /* tmp685 = */ myintvec_elimeqlst_05247_gmpknd (0, arg3, ats_ptrget_mac(ats_ptr_type, arg2), arg4) ; tmp686 = myintvec_inspect_eq_04782_gmpknd (arg3, arg4) ; tmp690 = atspre_ieq (tmp686, 0) ; if (tmp690) { tmp691 = myintvec_get_index_of_absmincff_05230_gmpknd (arg3, arg4) ; tmp732 = myiveqlst_cons_05243_gmpknd (arg0, tmp691, arg3, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp732 ; tmp684 = 0 ; } else { /* tmp743 = */ myintvec_free_04765_gmpknd (arg3, arg4) ; tmp684 = tmp686 ; } /* end of [if] */ return (tmp684) ; } /* end of [auxeq_04618_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 8437(line=335, offs=3) -- 8482(line=335, offs=48) */ ATSstaticdec() ats_int_type myintvec_inspect_neq_04783_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp749) ; __ats_lab_myintvec_inspect_neq_04783_gmpknd: tmp749 = myintvec_inspect_04779_gmpknd (-1, arg0, arg1) ; return (tmp749) ; } /* end of [myintvec_inspect_neq_04783_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 25463(line=1244, offs=16) -- 26584(line=1294, offs=4) */ ATSstaticdec() ats_ptr_type auxneq_04636_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp746) ; // ATSlocal_void (tmp747) ; ATSlocal (ats_int_type, tmp748) ; ATSlocal (ats_bool_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; // ATSlocal_void (tmp752) ; ATSlocal (gmpknd, tmp753) ; ATSlocal (ats_ptr_type, tmp754) ; // ATSlocal_void (tmp755) ; // ATSlocal_void (tmp756) ; // ATSlocal_void (tmp757) ; // ATSlocal_void (tmp758) ; // ATSlocal_void (tmp759) ; ATSlocal (ats_ptr_type, tmp760) ; ATSlocal (ats_ptr_type, tmp761) ; ATSlocal (ats_ptr_type, tmp762) ; ATSlocal (ats_ptr_type, tmp763) ; ATSlocal (ats_ptr_type, tmp764) ; // ATSlocal_void (tmp765) ; ATSlocal (ats_int_type, tmp766) ; ATSlocal (ats_bool_type, tmp767) ; ATSlocal (ats_ptr_type, tmp768) ; __ats_lab_auxneq_04636_gmpknd: /* tmp747 = */ myintvec_elimeqlst_05247_gmpknd (0, arg3, ats_ptrget_mac(ats_ptr_type, arg2), arg4) ; tmp748 = myintvec_inspect_neq_04783_gmpknd (arg3, arg4) ; ats_ptrget_mac(ats_int_type, arg5) = tmp748 ; tmp750 = atspre_ieq (ats_ptrget_mac(ats_int_type, arg5), 0) ; if (tmp750) { tmp751 = myintvec_copy_04788_gmpknd (arg3, arg4) ; /* tmp752 = */ myintvec_add_int_04760_gmpknd (tmp751, -1) ; tmp753 = myint_make_int_04721_gmpknd (-1) ; tmp754 = myintvec_copy_cff_04789_gmpknd (tmp753, arg3, arg4) ; /* tmp755 = */ myint_free_04723_gmpknd (tmp753) ; /* tmp756 = */ myintvec_add_int_04760_gmpknd (tmp754, -1) ; /* tmp757 = */ myintvec_free_04765_gmpknd (arg3, arg4) ; /* tmp758 = */ myintvec_normalize_gte_04786_gmpknd (tmp751, arg4) ; /* tmp759 = */ myintvec_normalize_gte_04786_gmpknd (tmp754, arg4) ; tmp760 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp760)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp760, atslab_0, 2) ; ats_selptrset_mac(anairiats_sum_5, tmp760, atslab_1, tmp751) ; tmp761 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp761)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp761, atslab_0, 2) ; ats_selptrset_mac(anairiats_sum_5, tmp761, atslab_1, tmp754) ; tmp764 = (ats_sum_ptr_type)0 ; tmp763 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp763, atslab_0, tmp761) ; ats_selptrset_mac(anairiats_sum_4, tmp763, atslab_1, tmp764) ; tmp762 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp762, atslab_0, tmp760) ; ats_selptrset_mac(anairiats_sum_4, tmp762, atslab_1, tmp763) ; tmp746 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp746)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp746, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_5, tmp746, atslab_1, tmp762) ; } else { /* tmp765 = */ myintvec_free_04765_gmpknd (arg3, arg4) ; tmp767 = atspre_igt (ats_ptrget_mac(ats_int_type, arg5), 0) ; if (tmp767) { tmp766 = 0 ; } else { tmp766 = 1 ; } /* end of [if] */ tmp768 = (ats_sum_ptr_type)0 ; tmp746 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp746)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp746, atslab_0, tmp766) ; ats_selptrset_mac(anairiats_sum_5, tmp746, atslab_1, tmp768) ; } /* end of [if] */ return (tmp746) ; } /* end of [auxneq_04636_gmpknd] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_113 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp778) ; ATSlocal (ats_ptr_type, tmp779) ; ATSlocal (ats_ptr_type, tmp780) ; ATSlocal (ats_int_type, tmp781) ; __ats_lab_loop_113: do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp779 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp780 = ats_ptrget_mac(ats_ptr_type, tmp779) ; tmp781 = atspre_iadd (arg1, 1) ; arg0 = tmp780 ; arg1 = tmp781 ; goto __ats_lab_loop_113 ; // tail call break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: tmp778 = arg1 ; break ; } while (0) ; return (tmp778) ; } /* end of [loop_113] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp777) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp777 = loop_113 (arg0, 0) ; return (tmp777) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_115 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp785) ; ATSlocal (ats_ptr_type, tmp786) ; __ats_lab_loop_115: do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp786 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp786 ; arg1 = arg1 ; goto __ats_lab_loop_115 ; // tail call break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp785) */ ; } /* end of [loop_115] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp783) ; ATSlocal (ats_ptr_type, tmp784) ; // ATSlocal_void (tmp787) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp784 ; */ tmp784 = arg0 ; /* tmp787 = */ loop_115 ((&tmp784), arg1) ; tmp783 = tmp784 ; return (tmp783) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7114(line=272, offs=5) -- 7471(line=286, offs=2) */ ATSstaticdec() ats_void_type loop_117 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp791) ; ATSlocal (ats_bool_type, tmp792) ; ATSlocal (ats_ptr_type, tmp793) ; ATSlocal (ats_ptr_type, tmp794) ; ATSlocal (ats_int_type, tmp795) ; ATSlocal (ats_ptr_type, tmp796) ; __ats_lab_loop_117: tmp792 = atspre_igt (arg1, 0) ; if (tmp792) { ats_ptrget_mac(ats_ptr_type, arg2) = ats_ptrget_mac(ats_ptr_type, arg0) ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp793 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; tmp794 = ats_ptrget_mac(ats_ptr_type, tmp793) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp794 ; tmp795 = atspre_isub (arg1, 1) ; arg0 = arg0 ; arg1 = tmp795 ; arg2 = tmp793 ; goto __ats_lab_loop_117 ; // tail call } else { tmp796 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp796 ; } /* end of [if] */ return /* (tmp791) */ ; } /* end of [loop_117] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7093(line=270, offs=18) -- 7571(line=293, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_split_at_01505_ats_ptr_type (ats_ref_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp790) ; ATSlocal (ats_ptr_type, tmp797) ; // ATSlocal_void (tmp798) ; __ats_lab_list_vt_split_at_01505_ats_ptr_type: /* ats_ptr_type tmp797 ; */ /* tmp798 = */ loop_117 (arg0, arg1, (&tmp797)) ; tmp790 = tmp797 ; return (tmp790) ; } /* end of [list_vt_split_at_01505_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 29291(line=1397, offs=21) -- 29683(line=1411, offs=4) */ ATSstaticdec() ats_int_type auxmain_conj_05254_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_ref_type arg6) { /* local vardec */ ATSlocal (ats_int_type, tmp775) ; ATSlocal (ats_int_type, tmp776) ; ATSlocal (ats_ptr_type, tmp782) ; ATSlocal (ats_int_type, tmp788) ; ATSlocal (ats_ptr_type, tmp789) ; __ats_lab_auxmain_conj_05254_gmpknd: tmp776 = list_vt_length_01501_ats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg6)) ; tmp782 = list_vt_append_01504_ats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg6), ats_ptrget_mac(ats_ptr_type, arg5)) ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp782 ; tmp788 = auxmain_05253_gmpknd (arg0, arg1, arg2, arg3, arg4, arg5) ; tmp789 = list_vt_split_at_01505_ats_ptr_type (arg5, tmp776) ; ats_ptrget_mac(ats_ptr_type, arg6) = tmp789 ; tmp775 = tmp788 ; return (tmp775) ; } /* end of [auxmain_conj_05254_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 13422(line=613, offs=16) -- 13447(line=613, offs=41) */ ATSstaticdec() ats_ptr_type myivlst_mark_05238_gmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp805) ; __ats_lab_myivlst_mark_05238_gmpknd: tmp805 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp805)->tag = 2 ; ats_selptrset_mac(anairiats_sum_6, tmp805, atslab_0, arg0) ; return (tmp805) ; } /* end of [myivlst_mark_05238_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 17045(line=822, offs=6) -- 17309(line=839, offs=2) */ ATSstaticdec() ats_ptr_type myiveqlst_mark_05244_gmpknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp807) ; ATSlocal (ats_ptr_type, tmp808) ; ATSlocal (ats_ptr_type, tmp809) ; // ATSlocal_void (tmp810) ; ATSlocal (ats_bool_type, tmp811) ; __ats_lab_myiveqlst_mark_05244_gmpknd: tmp808 = myiveqlst_get_prev_04542_gmpknd (arg0) ; tmp809 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp809)->tag = 2 ; ats_selptrset_mac(anairiats_sum_7, tmp809, atslab_0, atspre_null_ptr) ; ats_selptrset_mac(anairiats_sum_7, tmp809, atslab_1, arg0) ; tmp811 = atspre_pgt (ats_castfn_mac(ats_ptr_type, tmp808), atspre_null_ptr) ; if (tmp811) { /* tmp810 = */ ptrset_01764_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp808), ats_castfn_mac(ats_ptr_type, tmp809)) ; } else { /* empty */ } /* end of [if] */ tmp807 = tmp809 ; return (tmp807) ; } /* end of [myiveqlst_mark_05244_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 13619(line=624, offs=3) -- 13858(line=634, offs=31) */ ATSstaticdec() ats_ptr_type myivlst_unmark_05239_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp815) ; ATSlocal (ats_ptr_type, tmp816) ; ATSlocal (ats_ptr_type, tmp817) ; // ATSlocal_void (tmp818) ; ATSlocal (ats_ptr_type, tmp819) ; __ats_lab_myivlst_unmark_05239_gmpknd: do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp815 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTnil_0) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp816 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp817 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ; ATS_FREE(arg0) ; /* tmp818 = */ myintvec_free_04765_gmpknd (tmp816, arg1) ; arg0 = tmp817 ; arg1 = arg1 ; goto __ats_lab_myivlst_unmark_05239_gmpknd ; // tail call break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_98_1: tmp819 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; ATS_FREE(arg0) ; tmp815 = tmp819 ; break ; } while (0) ; return (tmp815) ; } /* end of [myivlst_unmark_05239_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 17528(line=852, offs=3) -- 17797(line=862, offs=38) */ ATSstaticdec() ats_ptr_type myiveqlst_unmark_05245_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp821) ; ATSlocal (ats_ptr_type, tmp822) ; ATSlocal (ats_ptr_type, tmp823) ; // ATSlocal_void (tmp824) ; ATSlocal (ats_ptr_type, tmp825) ; __ats_lab_myiveqlst_unmark_05245_gmpknd: do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp821 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTnil_0) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp822 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp823 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_4) ; ATS_FREE(arg0) ; /* tmp824 = */ myintvec_free_04765_gmpknd (tmp822, arg1) ; arg0 = tmp823 ; arg1 = arg1 ; goto __ats_lab_myiveqlst_unmark_05245_gmpknd ; // tail call break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_101_1: tmp825 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp821 = tmp825 ; break ; } while (0) ; return (tmp821) ; } /* end of [myiveqlst_unmark_05245_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 5866(line=218, offs=13) -- 6019(line=222, offs=28) */ ATSstaticdec() ats_void_type icnstr_free_04777_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp833) ; ATSlocal (ats_ptr_type, tmp834) ; ATSlocal (ats_ptr_type, tmp835) ; __ats_lab_icnstr_free_04777_gmpknd: do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp834 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp833 = */ myintvec_free_04765_gmpknd (tmp834, arg1) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp835 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp833 = */ icnstrlst_free_04778_gmpknd (tmp835, arg1) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_105_1: ATS_FREE(arg0) ; break ; } while (0) ; return /* (tmp833) */ ; } /* end of [icnstr_free_04777_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm.dats: 6073(line=226, offs=16) -- 6208(line=230, offs=26) */ ATSstaticdec() ats_void_type icnstrlst_free_04778_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp829) ; ATSlocal (ats_ptr_type, tmp830) ; ATSlocal (ats_ptr_type, tmp831) ; // ATSlocal_void (tmp832) ; __ats_lab_icnstrlst_free_04778_gmpknd: do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; } __ats_lab_102_1: tmp830 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp831 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp832 = */ icnstr_free_04777_gmpknd (tmp830, arg1) ; arg0 = tmp831 ; arg1 = arg1 ; goto __ats_lab_icnstrlst_free_04778_gmpknd ; // tail call break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_106_1: break ; } while (0) ; return /* (tmp829) */ ; } /* end of [icnstrlst_free_04778_gmpknd] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_126 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp840) ; ATSlocal (ats_ptr_type, tmp841) ; ATSlocal (ats_ptr_type, tmp842) ; ATSlocal (ats_ptr_type, tmp843) ; __ats_lab_revapp_126: do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp841 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp842 = ats_ptrget_mac(ats_ptr_type, tmp841) ; ats_ptrget_mac(ats_ptr_type, tmp841) = arg1 ; tmp843 = arg0 ; arg0 = tmp842 ; arg1 = tmp843 ; goto __ats_lab_revapp_126 ; // tail call break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp840 = arg1 ; break ; } while (0) ; return (tmp840) ; } /* end of [revapp_126] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp839) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp839 = revapp_126 (arg0, arg1) ; return (tmp839) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp845) ; ATSlocal (ats_ptr_type, tmp846) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp846 = (ats_sum_ptr_type)0 ; tmp845 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp846) ; return (tmp845) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 29743(line=1414, offs=21) -- 30975(line=1455, offs=4) */ ATSstaticdec() ats_int_type auxmain_disj_05255_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_ref_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_int_type, tmp799) ; ATSlocal (ats_ptr_type, tmp800) ; ATSlocal (ats_ptr_type, tmp801) ; ATSlocal (ats_ptr_type, tmp802) ; ATSlocal (ats_ptr_type, tmp803) ; ATSlocal (ats_ptr_type, tmp804) ; ATSlocal (ats_ptr_type, tmp806) ; ATSlocal (ats_ptr_type, tmp812) ; ATSlocal (ats_int_type, tmp813) ; ATSlocal (ats_ptr_type, tmp814) ; ATSlocal (ats_ptr_type, tmp820) ; ATSlocal (ats_ptr_type, tmp826) ; ATSlocal (ats_ptr_type, tmp827) ; // ATSlocal_void (tmp828) ; ATSlocal (ats_ptr_type, tmp836) ; ATSlocal (ats_bool_type, tmp837) ; ATSlocal (ats_ptr_type, tmp838) ; ATSlocal (ats_ptr_type, tmp844) ; __ats_lab_auxmain_disj_05255_gmpknd: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (ats_ptrget_mac(ats_ptr_type, arg6) == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; } __ats_lab_95_1: tmp800 = ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg6), atslab_0) ; tmp801 = ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg6), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg6)) ; ats_ptrget_mac(ats_ptr_type, arg6) = tmp801 ; tmp802 = icnstrlst_copy_04774_gmpknd (ats_ptrget_mac(ats_ptr_type, arg5), arg4) ; tmp803 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp803, atslab_0, tmp800) ; ats_selptrset_mac(anairiats_sum_4, tmp803, atslab_1, tmp802) ; tmp804 = myivlst_mark_05238_gmpknd (ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp804 ; tmp806 = myiveqlst_mark_05244_gmpknd (ats_ptrget_mac(ats_ptr_type, arg3)) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp806 ; /* ats_ptr_type tmp812 ; */ tmp812 = tmp803 ; tmp813 = auxmain_05253_gmpknd (arg0, arg1, arg2, arg3, arg4, (&tmp812)) ; tmp814 = myivlst_unmark_05239_gmpknd (ats_ptrget_mac(ats_ptr_type, arg2), arg4) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp814 ; tmp820 = myiveqlst_unmark_05245_gmpknd (ats_ptrget_mac(ats_ptr_type, arg3), arg4) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp820 ; // if (tmp812 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp826 = ats_caselptrlab_mac(anairiats_sum_4, tmp812, atslab_0) ; tmp827 = ats_caselptrlab_mac(anairiats_sum_4, tmp812, atslab_1) ; ATS_FREE(tmp812) ; /* tmp828 = */ icnstrlst_free_04778_gmpknd (tmp827, arg4) ; tmp836 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp836, atslab_0, tmp826) ; ats_selptrset_mac(anairiats_sum_4, tmp836, atslab_1, arg7) ; tmp837 = atspre_igte (tmp813, 0) ; if (tmp837) { tmp838 = list_vt_reverse_append_01507_ats_ptr_type (tmp836, ats_ptrget_mac(ats_ptr_type, arg6)) ; ats_ptrget_mac(ats_ptr_type, arg6) = tmp838 ; tmp799 = 0 ; } else { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; arg6 = arg6 ; arg7 = tmp836 ; goto __ats_lab_auxmain_disj_05255_gmpknd ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (ats_ptrget_mac(ats_ptr_type, arg6) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: tmp844 = list_vt_reverse_01506_ats_ptr_type (arg7) ; ats_ptrget_mac(ats_ptr_type, arg6) = tmp844 ; tmp799 = -1 ; break ; } while (0) ; return (tmp799) ; } /* end of [auxmain_disj_05255_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 26633(line=1297, offs=16) -- 29236(line=1394, offs=4) */ ATSstaticdec() ats_int_type auxmain_05253_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_int_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_int_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_bool_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_int_type, tmp371) ; ATSlocal (ats_bool_type, tmp669) ; ATSlocal (ats_ptr_type, tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; ATSlocal (ats_int_type, tmp672) ; ATSlocal (ats_bool_type, tmp680) ; ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_ptr_type, tmp682) ; ATSlocal (ats_int_type, tmp683) ; ATSlocal (ats_int_type, tmp744) ; ATSlocal (ats_ptr_type, tmp745) ; ATSlocal (ats_ptr_type, tmp769) ; ATSlocal (ats_ptr_type, tmp770) ; ATSlocal (ats_bool_type, tmp771) ; ATSlocal (ats_int_type, tmp772) ; ATSlocal (ats_ptr_type, tmp773) ; ATSlocal (ats_bool_type, tmp774) ; ATSlocal (ats_ptr_type, tmp847) ; __ats_lab_auxmain_05253_gmpknd: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (ats_ptrget_mac(ats_ptr_type, arg5) == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_46_1: tmp363 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg5), atslab_0) ; tmp364 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg5), atslab_1) ; tmp365 = ats_ptrget_mac(ats_ptr_type, tmp363) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp365)->tag != 0) { goto __ats_lab_88_0 ; } __ats_lab_47_1: tmp366 = ats_caselptrlab_mac(anairiats_sum_5, tmp365, atslab_0) ; tmp367 = &ats_caselptrlab_mac(anairiats_sum_5, tmp365, atslab_1) ; do { /* branch: __ats_lab_48 */ __ats_lab_48_0: __ats_lab_48_1: tmp368 = atspre_ieq (tmp366, -2) ; if (!tmp368) { goto __ats_lab_82_1 ; } tmp370 = ats_ptrget_mac(ats_ptr_type, tmp367) ; tmp369 = myintvec_copy_04788_gmpknd (tmp370, arg4) ; tmp371 = auxlt_04604_gmpknd (arg0, arg2, arg3, tmp369, arg4) ; tmp362 = auxcont_04626_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp371) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: __ats_lab_82_1: tmp669 = atspre_ieq (tmp366, 2) ; if (!tmp669) { goto __ats_lab_83_1 ; } tmp671 = ats_ptrget_mac(ats_ptr_type, tmp367) ; tmp670 = myintvec_copy_04788_gmpknd (tmp671, arg4) ; tmp672 = auxgte_04611_gmpknd (arg0, arg2, arg3, tmp670, arg4) ; tmp362 = auxcont_04626_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp672) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: __ats_lab_83_1: tmp680 = atspre_ieq (tmp366, 1) ; if (!tmp680) { goto __ats_lab_87_1 ; } tmp682 = ats_ptrget_mac(ats_ptr_type, tmp367) ; tmp681 = myintvec_copy_04788_gmpknd (tmp682, arg4) ; tmp683 = auxeq_04618_gmpknd (arg0, arg2, arg3, tmp681, arg4) ; tmp362 = auxcont_04626_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp683) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: __ats_lab_87_1: /* ats_int_type tmp744 ; */ tmp769 = ats_ptrget_mac(ats_ptr_type, tmp367) ; tmp745 = auxneq_04636_gmpknd (arg0, arg2, arg3, tmp769, arg4, (&tmp744)) ; tmp770 = ats_ptrget_mac(ats_ptr_type, tmp363) ; ATS_FREE(tmp770) ; ats_ptrget_mac(ats_ptr_type, tmp363) = tmp745 ; tmp771 = atspre_gte_int_int (tmp744, 0) ; if (tmp771) { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_auxmain_05253_gmpknd ; // tail call } else { tmp362 = -1 ; } /* end of [if] */ break ; } while (0) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp365)->tag != 1) { goto __ats_lab_110_0 ; } __ats_lab_88_1: tmp772 = ats_caselptrlab_mac(anairiats_sum_5, tmp365, atslab_0) ; tmp773 = &ats_caselptrlab_mac(anairiats_sum_5, tmp365, atslab_1) ; do { /* branch: __ats_lab_89 */ __ats_lab_89_0: __ats_lab_89_1: tmp774 = atspre_ieq (tmp772, 0) ; if (!tmp774) { goto __ats_lab_94_1 ; } tmp362 = auxmain_conj_05254_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp773) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: __ats_lab_94_1: tmp847 = (ats_sum_ptr_type)0 ; tmp362 = auxmain_disj_05255_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp773, tmp847) ; break ; } while (0) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: // if (((ats_sum_ptr_type)tmp365)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_110_1: tmp362 = 0 ; break ; } while (0) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (ats_ptrget_mac(ats_ptr_type, arg5) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: tmp362 = 0 ; break ; } while (0) ; return (tmp362) ; } /* end of [auxmain_05253_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 12968(line=591, offs=3) -- 13225(line=600, offs=50) */ ATSstaticdec() ats_void_type myivlst_free_05237_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp849) ; ATSlocal (ats_ptr_type, tmp850) ; ATSlocal (ats_ptr_type, tmp851) ; // ATSlocal_void (tmp852) ; ATSlocal (ats_ptr_type, tmp853) ; __ats_lab_myivlst_free_05237_gmpknd: do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_113_0 ; } __ats_lab_112_1: break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp850 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp851 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ; ATS_FREE(arg0) ; /* tmp852 = */ myintvec_free_04765_gmpknd (tmp850, arg1) ; arg0 = tmp851 ; arg1 = arg1 ; goto __ats_lab_myivlst_free_05237_gmpknd ; // tail call break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: tmp853 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; ATS_FREE(arg0) ; arg0 = tmp853 ; arg1 = arg1 ; goto __ats_lab_myivlst_free_05237_gmpknd ; // tail call break ; } while (0) ; return /* (tmp849) */ ; } /* end of [myivlst_free_05237_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 15460(line=726, offs=3) -- 15723(line=740, offs=53) */ ATSstaticdec() ats_void_type myiveqlst_free_05241_gmpknd (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp855) ; ATSlocal (ats_ptr_type, tmp856) ; ATSlocal (ats_ptr_type, tmp857) ; // ATSlocal_void (tmp858) ; ATSlocal (ats_ptr_type, tmp859) ; __ats_lab_myiveqlst_free_05241_gmpknd: do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp856 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp857 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_4) ; ATS_FREE(arg0) ; /* tmp858 = */ myintvec_free_04765_gmpknd (tmp856, arg1) ; arg0 = tmp857 ; arg1 = arg1 ; goto __ats_lab_myiveqlst_free_05241_gmpknd ; // tail call break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_117_1: tmp859 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp859 ; arg1 = arg1 ; goto __ats_lab_myiveqlst_free_05241_gmpknd ; // tail call break ; } while (0) ; return /* (tmp855) */ ; } /* end of [myiveqlst_free_05241_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 31059(line=1461, offs=7) -- 31498(line=1484, offs=4) */ ATSstaticdec() ats_int_type icnstrlst_solve_04799_gmpknd (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_int_type, tmp361) ; // ATSlocal_void (tmp848) ; // ATSlocal_void (tmp854) ; __ats_lab_icnstrlst_solve_04799_gmpknd: /* ats_ptr_type tmp359 ; */ tmp359 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTnil_0) ; /* ats_ptr_type tmp360 ; */ tmp360 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTnil_0) ; tmp361 = auxmain_05253_gmpknd (0, arg0, (&tmp359), (&tmp360), arg2, arg1) ; /* tmp848 = */ myivlst_free_05237_gmpknd (tmp359, arg2) ; /* tmp854 = */ myiveqlst_free_05241_gmpknd (tmp360, arg2) ; tmp358 = tmp361 ; return (tmp358) ; } /* end of [icnstrlst_solve_04799_gmpknd] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 3206(line=130, offs=1) -- 4694(line=204, offs=4) */ ATSstaticdec() ats_int_type auxsolve_05097_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_int_type, tmp125) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_int_type, tmp357) ; ATSlocal (ats_int_type, tmp860) ; // ATSlocal_void (tmp861) ; ATSlocal (ats_int_type, tmp862) ; __ats_lab_auxsolve_05097_gmpknd: tmp342 = (ats_sum_ptr_type)0 ; tmp341 = loop_26 (arg0, arg1, arg2, arg3, tmp342) ; tmp343 = s3exp2icnstr_04874_gmpknd (arg0, arg1, arg2, arg4) ; tmp344 = icnstr_negate_04775_gmpknd (tmp343) ; tmp345 = indexset_make_s3exp_05084_ats_abs_type (arg1, arg4) ; /* ats_ptr_type tmp356 ; */ tmp356 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp356, atslab_0, tmp344) ; ats_selptrset_mac(anairiats_sum_4, tmp356, atslab_1, tmp341) ; tmp860 = atspre_iadd (arg2, 1) ; tmp357 = icnstrlst_solve_04799_gmpknd (tmp345, (&tmp356), tmp860) ; tmp862 = atspre_iadd (arg2, 1) ; /* tmp861 = */ icnstrlst_free_04778_gmpknd (tmp356, tmp862) ; tmp125 = tmp357 ; return (tmp125) ; } /* end of [auxsolve_05097_gmpknd] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_131 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp866) ; ATSlocal (ats_ptr_type, tmp867) ; __ats_lab_loop_131: do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp867 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp867 ; goto __ats_lab_loop_131 ; // tail call break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_119_1: break ; } while (0) ; return /* (tmp866) */ ; } /* end of [loop_131] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp865) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp865 = */ loop_131 (arg0) ; return /* (tmp865) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 4774(line=210, offs=3) -- 6727(line=287, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_int_type, tmp112) ; ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_bool_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (anairiats_rec_1, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (anairiats_rec_2, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_int_type, tmp123) ; ATSlocal (ats_int_type, tmp124) ; // ATSlocal_void (tmp863) ; // ATSlocal_void (tmp864) ; // ATSlocal_void (tmp868) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp: tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg1, arg2) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp103)->tag != 19) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp105 = */ prerr_warning3_loc_02446_ (arg0) ; /* tmp108 = */ atspre_prerr_string (ATSstrcst(": the constraint [")) ; /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp (arg2) ; /* tmp110 = */ atspre_prerr_string (ATSstrcst("] cannot be translated into a form accepted by the constraint solver.")) ; /* tmp111 = */ atspre_prerr_newline () ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp104 = tmp103 ; break ; } while (0) ; /* ats_int_type tmp112 ; */ tmp112 = 0 ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp104)->tag != 4) { goto __ats_lab_3_0 ; } tmp114 = ats_caselptrlab_mac(anairiats_sum_3, tmp104, atslab_0) ; if (!tmp114) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp112 = -1 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: break ; } while (0) ; tmp116 = atspre_gte_int_int (tmp112, 0) ; if (tmp116) { tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize (arg1, tmp104) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_extract (ats_ptrget_mac(ats_ptr_type, arg1)) ; tmp119 = ats_select_mac(tmp118, atslab_0) ; tmp120 = ats_select_mac(tmp118, atslab_1) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_make (tmp119) ; tmp122 = ats_select_mac(tmp121, atslab_0) ; tmp123 = ats_select_mac(tmp121, atslab_1) ; tmp124 = auxsolve_05097_gmpknd (arg0, tmp122, tmp123, ats_castfn_mac(ats_ptr_type, tmp120), tmp117) ; tmp112 = tmp124 ; /* tmp863 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_free (tmp122) ; /* tmp864 = */ list_vt_free_01499_ats_ptr_type (tmp119) ; /* tmp868 = */ list_vt_free_01499_ats_ptr_type (tmp120) ; } else { /* empty */ } /* end of [if] */ tmp102 = tmp112 ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 8289(line=367, offs=5) -- 8597(line=382, offs=4) */ ATSstaticdec() ats_void_type prlst_133 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp870) ; ATSlocal (ats_ptr_type, tmp871) ; ATSlocal (ats_ptr_type, tmp872) ; // ATSlocal_void (tmp873) ; // ATSlocal_void (tmp874) ; __ats_lab_prlst_133: do { /* branch: __ats_lab_120 */ __ats_lab_120_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp871 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp872 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; /* tmp873 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst (stderr, tmp871) ; /* tmp874 = */ atspre_fprint_newline (stderr) ; arg0 = tmp872 ; goto __ats_lab_prlst_133 ; // tail call break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_121_1: break ; } while (0) ; return /* (tmp870) */ ; } /* end of [prlst_133] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 8254(line=365, offs=3) -- 9105(line=405, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp869) ; // ATSlocal_void (tmp875) ; // ATSlocal_void (tmp876) ; // ATSlocal_void (tmp877) ; // ATSlocal_void (tmp878) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg: do { /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_123_0 ; } __ats_lab_122_1: /* tmp875 = */ prerr_error3_loc_02441_ (arg0) ; /* tmp876 = */ atspre_prerr_string (ATSstrcst(": pattern match is nonexhaustive:\n")) ; /* tmp869 = */ prlst_133 (arg2) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_124_0 ; } __ats_lab_123_1: break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: // if (((ats_sum_ptr_type)arg1)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_124_1: /* tmp877 = */ prerr_warning3_loc_02446_ (arg0) ; /* tmp878 = */ atspre_prerr_string (ATSstrcst(": pattern match is nonexhaustive:\n")) ; /* tmp869 = */ prlst_133 (arg2) ; break ; } while (0) ; return /* (tmp869) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 9290(line=417, offs=1) -- 9405(line=421, offs=57) */ ATSstaticdec() ats_void_type prerr_c3nstr_if_135 (ats_uint_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp882) ; ATSlocal (ats_bool_type, tmp883) ; // ATSlocal_void (tmp884) ; __ats_lab_prerr_c3nstr_if_135: tmp883 = atspre_eq_uint_uint (arg0, 0u) ; if (tmp883) { /* tmp884 = */ atspre_prerr_string (ATSstrcst(": ")) ; /* tmp882 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_c3nstr (arg1) ; } else { /* empty */ } /* end of [if] */ return /* (tmp882) */ ; } /* end of [prerr_c3nstr_if_135] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 9205(line=411, offs=3) -- 12279(line=530, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg (ats_ptr_type arg0, ats_uint_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp879) ; ATSlocal (ats_ptr_type, tmp880) ; ATSlocal (ats_ptr_type, tmp881) ; ATSlocal (ats_bool_type, tmp885) ; // ATSlocal_void (tmp886) ; // ATSlocal_void (tmp887) ; // ATSlocal_void (tmp888) ; // ATSlocal_void (tmp889) ; ATSlocal (ats_ptr_type, tmp890) ; ATSlocal (ats_ptr_type, tmp891) ; // ATSlocal_void (tmp892) ; // ATSlocal_void (tmp893) ; // ATSlocal_void (tmp894) ; // ATSlocal_void (tmp895) ; // ATSlocal_void (tmp896) ; // ATSlocal_void (tmp897) ; // ATSlocal_void (tmp898) ; // ATSlocal_void (tmp899) ; // ATSlocal_void (tmp900) ; // ATSlocal_void (tmp901) ; // ATSlocal_void (tmp902) ; // ATSlocal_void (tmp903) ; // ATSlocal_void (tmp904) ; // ATSlocal_void (tmp905) ; // ATSlocal_void (tmp906) ; // ATSlocal_void (tmp907) ; // ATSlocal_void (tmp908) ; // ATSlocal_void (tmp909) ; // ATSlocal_void (tmp910) ; // ATSlocal_void (tmp911) ; // ATSlocal_void (tmp912) ; ATSlocal (ats_ptr_type, tmp913) ; // ATSlocal_void (tmp914) ; // ATSlocal_void (tmp915) ; // ATSlocal_void (tmp916) ; // ATSlocal_void (tmp917) ; // ATSlocal_void (tmp918) ; ATSlocal (ats_int_type, tmp919) ; // ATSlocal_void (tmp920) ; // ATSlocal_void (tmp921) ; ATSlocal (ats_bool_type, tmp922) ; // ATSlocal_void (tmp923) ; ATSlocal (ats_bool_type, tmp924) ; // ATSlocal_void (tmp925) ; ATSlocal (ats_bool_type, tmp926) ; // ATSlocal_void (tmp927) ; // ATSlocal_void (tmp928) ; // ATSlocal_void (tmp929) ; // ATSlocal_void (tmp930) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg: tmp880 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_c3nstr_loc) ; tmp881 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_c3nstr_kind) ; do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp881)->tag != 0) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp885 = atspre_eq_uint_uint (arg1, 0u) ; if (tmp885) { /* tmp886 = */ prerr_error3_loc_02441_ (tmp880) ; /* tmp887 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint: ")) ; /* tmp888 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_c3nstr (arg0) ; /* tmp889 = */ atspre_prerr_newline () ; tmp879 = 0 ; } else { tmp879 = 0 ; } /* end of [if] */ break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp881)->tag != 1) { goto __ats_lab_130_0 ; } __ats_lab_126_1: tmp890 = ats_caselptrlab_mac(anairiats_sum_7, tmp881, atslab_0) ; tmp891 = ats_caselptrlab_mac(anairiats_sum_7, tmp881, atslab_1) ; /* tmp892 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg (tmp880, tmp890, tmp891) ; do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp890)->tag != 0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp879 = 1 ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp890)->tag != 1) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp879 = 0 ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: // if (((ats_sum_ptr_type)tmp890)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_129_1: tmp879 = 0 ; break ; } while (0) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp881)->tag != 2) { goto __ats_lab_131_0 ; } __ats_lab_130_1: /* tmp893 = */ prerr_error3_loc_02441_ (tmp880) ; /* tmp894 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for termetric being well-founded")) ; /* tmp895 = */ prerr_c3nstr_if_135 (arg1, arg0) ; /* tmp896 = */ atspre_prerr_newline () ; tmp879 = 0 ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp881)->tag != 3) { goto __ats_lab_132_0 ; } __ats_lab_131_1: /* tmp897 = */ prerr_error3_loc_02441_ (tmp880) ; /* tmp898 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for termetric being strictly decreasing")) ; /* tmp899 = */ prerr_c3nstr_if_135 (arg1, arg0) ; /* tmp900 = */ atspre_prerr_newline () ; tmp879 = 0 ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp881)->tag != 4) { goto __ats_lab_133_0 ; } __ats_lab_132_1: /* tmp901 = */ prerr_error3_loc_02441_ (tmp880) ; /* tmp902 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for var preservation")) ; /* tmp903 = */ atspre_prerr_newline () ; tmp879 = 0 ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp881)->tag != 5) { goto __ats_lab_134_0 ; } __ats_lab_133_1: /* tmp904 = */ prerr_error3_loc_02441_ (tmp880) ; /* tmp905 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for lvar preservation")) ; /* tmp906 = */ atspre_prerr_newline () ; tmp879 = 0 ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp881)->tag != 6) { goto __ats_lab_135_0 ; } __ats_lab_134_1: /* tmp907 = */ prerr_error3_loc_02441_ (tmp880) ; /* tmp908 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for vbox preservation")) ; /* tmp909 = */ atspre_prerr_newline () ; tmp879 = 0 ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp881)->tag != 7) { goto __ats_lab_136_0 ; } __ats_lab_135_1: /* tmp910 = */ prerr_error3_loc_02441_ (tmp880) ; /* tmp911 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for lstate merging")) ; /* tmp912 = */ atspre_prerr_newline () ; tmp879 = 0 ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp881)->tag != 8) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp913 = ats_caselptrlab_mac(anairiats_sum_6, tmp881, atslab_0) ; /* tmp914 = */ prerr_error3_loc_02441_ (tmp880) ; /* tmp915 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for merging the lstate of [")) ; /* tmp916 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (tmp913) ; /* tmp917 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp918 = */ atspre_prerr_newline () ; tmp879 = 0 ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp881)->tag != 9) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp919 = ats_caselptrlab_mac(anairiats_sum_11, tmp881, atslab_0) ; /* tmp920 = */ prerr_error3_loc_02441_ (tmp880) ; tmp922 = atspre_lt_int_int (tmp919, 0) ; if (tmp922) { /* tmp921 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for loop(enter)")) ; } else { /* empty */ } /* end of [if] */ tmp924 = atspre_eq_int_int (tmp919, 0) ; if (tmp924) { /* tmp923 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for loop(break)")) ; } else { /* empty */ } /* end of [if] */ tmp926 = atspre_gt_int_int (tmp919, 0) ; if (tmp926) { /* tmp925 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for loop(continue)")) ; } else { /* empty */ } /* end of [if] */ /* tmp927 = */ atspre_prerr_newline () ; tmp879 = 0 ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (((ats_sum_ptr_type)tmp881)->tag != 10) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: /* tmp928 = */ prerr_error3_loc_02441_ (tmp880) ; /* tmp929 = */ atspre_prerr_string (ATSstrcst(": the constraint is expected to be verified externally.")) ; /* tmp930 = */ atspre_prerr_newline () ; tmp879 = 0 ; break ; } while (0) ; return (tmp879) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 12362(line=536, offs=1) -- 13255(line=593, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main (ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp931) ; ATSlocal (ats_ptr_type, tmp932) ; ATSlocal (ats_int_type, tmp933) ; ATSlocal (ats_ptr_type, tmp934) ; ATSlocal (ats_ptr_type, tmp935) ; ATSlocal (ats_ptr_type, tmp936) ; ATSlocal (ats_ptr_type, tmp937) ; ATSlocal (ats_bool_type, tmp939) ; ATSlocal (ats_int_type, tmp940) ; ATSlocal (ats_bool_type, tmp941) ; ATSlocal (ats_bool_type, tmp943) ; ATSlocal (ats_uint_type, tmp944) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main: tmp932 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_c3nstr_loc) ; /* ats_int_type tmp933 ; */ tmp934 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_c3nstr_node) ; do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp934)->tag != 0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp935 = ats_caselptrlab_mac(anairiats_sum_6, tmp934, atslab_0) ; tmp933 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop (tmp932, arg0, tmp935, arg3) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)tmp934)->tag != 1) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp936 = ats_caselptrlab_mac(anairiats_sum_6, tmp934, atslab_0) ; tmp933 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst (tmp932, arg0, tmp936, arg2, arg3) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: // if (((ats_sum_ptr_type)tmp934)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_141_1: tmp937 = ats_caselptrlab_mac(anairiats_sum_6, tmp934, atslab_0) ; tmp933 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify (tmp932, arg0, tmp937, arg3) ; break ; } while (0) ; tmp939 = atspre_gte_int_int (tmp933, 0) ; if (tmp939) { tmp940 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg (arg1, ats_ptrget_mac(ats_uint_type, arg2)) ; tmp941 = atspre_gt_int_int (tmp940, 0) ; if (tmp941) { tmp933 = -1 ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp943 = atspre_gte_int_int (tmp933, 0) ; if (tmp943) { tmp944 = atspre_add_uint_uint (ats_ptrget_mac(ats_uint_type, arg2), 1u) ; ats_ptrget_mac(ats_uint_type, arg2) = tmp944 ; } else { /* empty */ } /* end of [if] */ tmp931 = tmp933 ; return (tmp931) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 13338(line=599, offs=3) -- 13543(line=608, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp945) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop: tmp945 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp (arg0, arg1, arg2, arg3) ; return (tmp945) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 13626(line=614, offs=1) -- 15638(line=690, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_int_type, tmp946) ; ATSlocal (ats_ptr_type, tmp947) ; ATSlocal (ats_ptr_type, tmp948) ; ATSlocal (ats_ptr_type, tmp949) ; // ATSlocal_void (tmp950) ; ATSlocal (ats_ptr_type, tmp951) ; ATSlocal (ats_ptr_type, tmp952) ; // ATSlocal_void (tmp953) ; ATSlocal (ats_ptr_type, tmp954) ; ATSlocal (ats_ptr_type, tmp955) ; ATSlocal (ats_ptr_type, tmp956) ; ATSlocal (ats_ptr_type, tmp957) ; ATSlocal (ats_ptr_type, tmp958) ; ATSlocal (ats_ptr_type, tmp959) ; ATSlocal (ats_ptr_type, tmp960) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst: do { /* branch: __ats_lab_142 */ __ats_lab_142_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp946 = -1 ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_143_1: tmp947 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp948 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; do { /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp947)->tag != 0) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp949 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ; /* tmp950 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_svar (arg1, tmp949) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp948 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst ; // tail call break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp947)->tag != 1) { goto __ats_lab_148_0 ; } __ats_lab_145_1: tmp951 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ; tmp952 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_h3ypo (arg1, tmp951) ; do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp952)->tag != 19) { goto __ats_lab_147_0 ; } __ats_lab_146_1: break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: __ats_lab_147_1: tmp954 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize (arg1, tmp952) ; /* tmp953 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_sbexp (arg1, tmp954) ; break ; } while (0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp948 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst ; // tail call break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp947)->tag != 2) { goto __ats_lab_149_0 ; } __ats_lab_148_1: arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp948 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst ; // tail call break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)tmp947)->tag != 3) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp955 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ; tmp946 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr (arg0, arg1, tmp948, tmp955, arg3, arg4) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp947)->tag != 4) { goto __ats_lab_153_0 ; } __ats_lab_150_1: tmp956 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ; tmp957 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp956), atslab_c3nstroptref_ref) ; tmp958 = ats_ptrget_mac(ats_ptr_type, tmp957) ; do { /* branch: __ats_lab_151 */ __ats_lab_151_0: if (tmp958 != (ats_sum_ptr_type)0) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp946 = -1 ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: // if (tmp958 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_152_1: tmp959 = ats_caselptrlab_mac(anairiats_sum_13, tmp958, atslab_0) ; tmp946 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr (arg0, arg1, tmp948, tmp959, arg3, arg4) ; break ; } while (0) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp947)->tag != 5) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp960 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ; tmp946 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj (arg0, arg1, tmp948, tmp960, arg3, arg4) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: // if (((ats_sum_ptr_type)tmp947)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_154_1: arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp948 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp946) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 15729(line=696, offs=1) -- 16164(line=711, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_int_type, tmp961) ; // ATSlocal_void (tmp962) ; // ATSlocal_void (tmp963) ; // ATSlocal_void (tmp964) ; // ATSlocal_void (tmp965) ; ATSlocal (ats_int_type, tmp966) ; // ATSlocal_void (tmp967) ; // ATSlocal_void (tmp968) ; ATSlocal (ats_int_type, tmp969) ; ATSlocal (ats_bool_type, tmp970) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr: /* tmp962 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_push (arg1) ; /* tmp963 = ats_selsin_mac(tmp962, atslab_1) */ ; /* tmp964 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push () ; /* tmp965 = ats_selsin_mac(tmp964, atslab_1) */ ; tmp966 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main (arg1, arg3, arg4, arg5) ; /* tmp967 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop () ; /* tmp968 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_pop (arg1) ; tmp969 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst (arg0, arg1, arg2, arg4, arg5) ; tmp970 = atspre_gte_int_int (tmp966, 0) ; if (tmp970) { tmp961 = 0 ; } else { tmp961 = tmp969 ; } /* end of [if] */ return (tmp961) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4) */ ATSstaticdec() ats_void_type loop_142 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp981) ; ATSlocal (ats_ptr_type, tmp982) ; ATSlocal (ats_ptr_type, tmp983) ; ATSlocal (ats_ptr_type, tmp984) ; ATSlocal (ats_ptr_type, tmp985) ; __ats_lab_loop_142: do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp982 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp983 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp984 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp984, atslab_0, tmp982) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp984 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp985 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp983 ; arg1 = arg1 ; arg2 = tmp985 ; goto __ats_lab_loop_142 ; // tail call break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_158_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp981) */ ; } /* end of [loop_142] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4) */ ATSstaticdec() ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp979) ; ATSlocal (ats_ptr_type, tmp980) ; // ATSlocal_void (tmp986) ; __ats_lab_list_append_01312_ats_ptr_type: /* ats_ptr_type tmp980 ; */ /* tmp986 = */ loop_142 (arg0, arg1, (&tmp980)) ; tmp979 = tmp980 ; return (tmp979) ; } /* end of [list_append_01312_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 16260(line=717, offs=1) -- 16956(line=746, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_int_type, tmp971) ; ATSlocal (ats_ptr_type, tmp972) ; ATSlocal (ats_ptr_type, tmp973) ; // ATSlocal_void (tmp974) ; // ATSlocal_void (tmp975) ; // ATSlocal_void (tmp976) ; // ATSlocal_void (tmp977) ; ATSlocal (ats_ptr_type, tmp978) ; ATSlocal (ats_int_type, tmp987) ; // ATSlocal_void (tmp988) ; // ATSlocal_void (tmp989) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj: do { /* branch: __ats_lab_155 */ __ats_lab_155_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp971 = -1 ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_156_1: tmp972 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp973 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ; /* tmp974 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_push (arg1) ; /* tmp975 = ats_selsin_mac(tmp974, atslab_1) */ ; /* tmp976 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push () ; /* tmp977 = ats_selsin_mac(tmp976, atslab_1) */ ; tmp978 = list_append_01312_ats_ptr_type (tmp972, arg2) ; tmp987 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst (arg0, arg1, tmp978, arg4, arg5) ; /* tmp988 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop () ; /* tmp989 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_pop (arg1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp973 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj ; // tail call break ; } while (0) ; return (tmp971) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 17051(line=752, offs=3) -- 17204(line=763, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_int_type, tmp990) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify: tmp990 = 0 ; return (tmp990) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 17290(line=768, offs=19) -- 18406(line=819, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp991) ; ATSlocal (ats_ptr_type, tmp992) ; // ATSlocal_void (tmp993) ; ATSlocal (ats_uint_type, tmp994) ; ATSlocal (ats_int_type, tmp995) ; ATSlocal (ats_int_type, tmp996) ; // ATSlocal_void (tmp997) ; ATSlocal (ats_bool_type, tmp998) ; // ATSlocal_void (tmp999) ; // ATSlocal_void (tmp1000) ; ATSlocal (ats_bool_type, tmp1001) ; // ATSlocal_void (tmp1002) ; ATSlocal (ats_bool_type, tmp1003) ; // ATSlocal_void (tmp1004) ; // ATSlocal_void (tmp1005) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve: /* ats_ptr_type tmp992 ; */ tmp992 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_nil () ; /* tmp993 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_freetop () ; /* ats_uint_type tmp994 ; */ tmp994 = 0u ; /* ats_int_type tmp995 ; */ tmp995 = 0 ; tmp996 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main ((&tmp992), arg0, (&tmp994), (&tmp995)) ; /* tmp997 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free (tmp992) ; do { /* branch: __ats_lab_159 */ __ats_lab_159_0: __ats_lab_159_1: tmp998 = atspre_eq_uint_uint (tmp994, 0u) ; if (!tmp998) { goto __ats_lab_160_1 ; } break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: __ats_lab_160_1: /* tmp999 = */ atspre_prerr_string (ATSstrcst("typechecking has failed")) ; tmp1001 = atspre_lte_uint_uint (tmp994, 1u) ; if (tmp1001) { /* tmp1000 = */ atspre_prerr_string (ATSstrcst(": there is one unsolved constraint")) ; } else { /* empty */ } /* end of [if] */ tmp1003 = atspre_gte_uint_uint (tmp994, 2u) ; if (tmp1003) { /* tmp1002 = */ atspre_prerr_string (ATSstrcst(": there are some unsolved constraints")) ; } else { /* empty */ } /* end of [if] */ /* tmp1004 = */ atspre_prerr_string (ATSstrcst(": please inspect the above reported error message(s) for information.")) ; /* tmp1005 = */ atspre_prerr_newline () ; /* tmp991 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; break ; } while (0) ; return /* (tmp991) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve] */ /* 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_basics_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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout0_addback_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_constraint3_solve_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_dats.c0000644000175000017500000040055313431250607021635 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hifundec_loc ; ats_ptr_type atslab_hifundec_var ; ats_ptr_type atslab_hifundec_imparg ; ats_ptr_type atslab_hifundec_def ; ats_ptr_type atslab_hifundec_hidecl ; ats_ptr_type atslab_hifundec_funlab ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_hiimpdec_loc ; ats_int_type atslab_hiimpdec_knd ; ats_ptr_type atslab_hiimpdec_cst ; ats_ptr_type atslab_hiimpdec_imparg ; ats_ptr_type atslab_hiimpdec_tmparg ; ats_ptr_type atslab_hiimpdec_def ; ats_ptr_type atslab_hiimpdec_funlab ; ats_ptr_type atslab_hiimpdec_instrlst ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_primdec_loc ; ats_ptr_type atslab_primdec_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_primval_loc ; ats_ptr_type atslab_primval_type ; ats_ptr_type atslab_primval_node ; } anairiats_rec_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_double_type atslab_0 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_ibranch_loc ; ats_ptr_type atslab_ibranch_inslst ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_primlab_loc ; ats_ptr_type atslab_primlab_node ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_instr_loc ; ats_ptr_type atslab_instr_node ; } anairiats_rec_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; ats_ptr_type atslab_6 ; ats_ptr_type atslab_7 ; } anairiats_sum_19 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_21 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_22 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_23 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_24 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrecsin_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__LABPRIMVAL_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpref_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVarg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargref_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargenv_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargtmpref_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcst_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVenv_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVint_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVintrep_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVbool_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVchar_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfloat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVstring_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVi0nt_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVf0loat_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcstsp_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtyrep_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVsizeof_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtop_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVempty_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVextval_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcastfn_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselcon_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect2_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselptr_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrof_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrofsel_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVvararg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVrefarg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfunlab_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcfunlab_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVd2vfunlab_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVlamfix_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcst_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvar_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcstmat_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvarmat_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVerror_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDsaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDextvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdatdecs_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDexndecs_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDfundecs_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_rec_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvardecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDinclude_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaload_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaloadloc_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdynload_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlocal_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfunlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmplab_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScomment_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_val_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_val_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arg_val_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall2_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextfcall_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextmcall_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScond_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfreecon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloopexn_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScaseof_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpop_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpush_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_con_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ref_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_boxrec_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_fltrec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpatck_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ptrofsel_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_ptrofs_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSxstore_ptrofs_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSraise_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_delay_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_lazyeval_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStrywith_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_nil_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_nil_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_cons_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_phead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_ptail_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arrpsz_ptr_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_asz_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_ptr_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrinc_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrdec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSclosure_initize_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmpdec_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextvar_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSdcstdef_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStempenver_43) ; /* external dynamic constant declarations */ ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_size_t0ype) () ; ATSextern_fun(ats_ptr_type, patsopt_hifundec_getref_funlabopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_hiimpdec_getref_funlabopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_hiimpdec_getref_instrlstopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_sizeof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type ptr0_set_01704_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type ptrset_01708_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 1676(line=52, offs=3) -- 1723(line=52, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_get_funlabopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_get_funlabopt: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hifundec_funlab) ; tmp0 = ats_castfn_mac(ats_ptr_type, tmp1) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_get_funlabopt] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2024(line=63, offs=10) -- 2250(line=73, offs=2) */ ATSstaticdec() ats_void_type ptr0_set_01704_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp4) ; __ats_lab_ptr0_set_01704_ats_ptr_type: ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) = arg1 ; return /* (tmp4) */ ; } /* end of [ptr0_set_01704_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2472(line=83, offs=21) -- 2499(line=83, offs=48) */ ATSstaticdec() ats_void_type ptrset_01708_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab_ptrset_01708_ats_ptr_type: /* tmp3 = */ ptr0_set_01704_ats_ptr_type (arg0, arg1) ; return /* (tmp3) */ ; } /* end of [ptrset_01708_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 1758(line=54, offs=24) -- 1833(line=55, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_set_funlabopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_set_funlabopt: tmp5 = patsopt_hifundec_getref_funlabopt (arg0) ; /* tmp2 = */ ptrset_01708_ats_ptr_type (tmp5, arg1) ; return /* (tmp2) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_set_funlabopt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 1895(line=61, offs=3) -- 1942(line=61, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_funlabopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_funlabopt: tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_hiimpdec_funlab) ; tmp6 = ats_castfn_mac(ats_ptr_type, tmp7) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_funlabopt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 1977(line=63, offs=24) -- 2052(line=64, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_funlabopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_funlabopt: tmp9 = patsopt_hiimpdec_getref_funlabopt (arg0) ; /* tmp8 = */ ptrset_01708_ats_ptr_type (tmp9, arg1) ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_funlabopt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 2116(line=70, offs=3) -- 2167(line=70, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_instrlstopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_instrlstopt: tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_hiimpdec_instrlst) ; tmp10 = ats_castfn_mac(ats_ptr_type, tmp11) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_instrlstopt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 2204(line=72, offs=26) -- 2283(line=73, offs=67) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_instrlstopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_instrlstopt: tmp13 = patsopt_hiimpdec_getref_instrlstopt (arg0) ; /* tmp12 = */ ptrset_01708_ats_ptr_type (tmp13, arg1) ; return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_instrlstopt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 2433(line=85, offs=3) -- 2490(line=87, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node: tmp14 = ATS_MALLOC(sizeof(anairiats_rec_3)) ; ats_selptrset_mac(anairiats_rec_3, tmp14, atslab_primdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_3, tmp14, atslab_primdec_node, arg1) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 2566(line=92, offs=14) -- 2611(line=93, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none: tmp16 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDnone_0) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp16) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 2682(line=99, offs=14) -- 2737(line=100, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_list (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_list: tmp18 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp18)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp18, atslab_0, arg1) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp18) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_list] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 2811(line=106, offs=17) -- 2867(line=107, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_saspdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_saspdec: tmp20 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp20)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp20, atslab_0, arg1) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp20) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_saspdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 2945(line=114, offs=3) -- 3014(line=115, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_extvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_extvar: tmp22 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp22)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp22, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp22, atslab_1, arg2) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp22) ; return (tmp21) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_extvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 3090(line=121, offs=17) -- 3148(line=122, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_datdecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_datdecs: tmp24 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp24)->tag = 4 ; ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_0, arg1) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp24) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_datdecs] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 3175(line=124, offs=17) -- 3233(line=125, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_exndecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_exndecs: tmp26 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp26)->tag = 5 ; ats_selptrset_mac(anairiats_sum_4, tmp26, atslab_0, arg1) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp26) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_exndecs] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 3283(line=131, offs=3) -- 3344(line=132, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_impdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_impdec: tmp28 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp28)->tag = 10 ; ats_selptrset_mac(anairiats_sum_4, tmp28, atslab_0, arg1) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp28) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_impdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 3422(line=139, offs=3) -- 3506(line=140, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_fundecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_fundecs: tmp30 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp30)->tag = 6 ; ats_selptrset_mac(anairiats_sum_6, tmp30, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp30, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp30, atslab_2, arg3) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp30) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_fundecs] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 3583(line=146, offs=17) -- 3663(line=147, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs: tmp32 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp32)->tag = 7 ; ats_selptrset_mac(anairiats_sum_6, tmp32, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp32, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp32, atslab_2, arg3) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp32) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 3694(line=149, offs=21) -- 3778(line=150, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs_rec: tmp34 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp34)->tag = 8 ; ats_selptrset_mac(anairiats_sum_6, tmp34, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp34, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp34, atslab_2, arg3) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp34) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs_rec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 3831(line=156, offs=3) -- 3901(line=157, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_vardecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_vardecs: tmp36 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp36)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp36, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp36, atslab_1, arg2) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp36) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_vardecs] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 3956(line=163, offs=3) -- 4024(line=164, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_include (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_include: tmp38 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp38)->tag = 11 ; ats_selptrset_mac(anairiats_sum_7, tmp38, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp38, atslab_1, arg2) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp38) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_include] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 4077(line=169, offs=17) -- 4133(line=170, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staload: tmp40 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp40)->tag = 12 ; ats_selptrset_mac(anairiats_sum_4, tmp40, atslab_0, arg1) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp40) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staload] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 4166(line=174, offs=1) -- 4259(line=177, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staloadloc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staloadloc: tmp42 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp42)->tag = 13 ; ats_selptrset_mac(anairiats_sum_6, tmp42, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp42, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp42, atslab_2, arg3) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp42) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staloadloc] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 4289(line=180, offs=17) -- 4345(line=181, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_dynload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_dynload: tmp44 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp44)->tag = 14 ; ats_selptrset_mac(anairiats_sum_4, tmp44, atslab_0, arg1) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp44) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_dynload] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 4396(line=187, offs=3) -- 4468(line=188, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_local (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_local: tmp46 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp46)->tag = 15 ; ats_selptrset_mac(anairiats_sum_5, tmp46, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp46, atslab_1, arg2) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primdec_make_node (arg0, tmp46) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_local] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 4633(line=199, offs=3) -- 4714(line=201, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node: tmp47 = ATS_MALLOC(sizeof(anairiats_rec_8)) ; ats_selptrset_mac(anairiats_rec_8, tmp47, atslab_primval_loc, arg0) ; ats_selptrset_mac(anairiats_rec_8, tmp47, atslab_primval_type, arg1) ; ats_selptrset_mac(anairiats_rec_8, tmp47, atslab_primval_node, arg2) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 4789(line=206, offs=13) -- 4851(line=207, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp: tmp49 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp49)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp49, atslab_0, arg2) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp49) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 4902(line=211, offs=16) -- 4967(line=212, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref: tmp51 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp51)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp51, atslab_0, arg2) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp51) ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 5041(line=218, offs=13) -- 5105(line=219, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg: tmp53 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp53)->tag = 2 ; ats_selptrset_mac(anairiats_sum_9, tmp53, atslab_0, arg2) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp53) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 5131(line=221, offs=16) -- 5198(line=222, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argref (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argref: tmp55 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp55)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp55, atslab_0, arg2) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp55) ; return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 5227(line=224, offs=19) -- 5297(line=225, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argtmpref (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argtmpref: tmp57 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp57)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp57, atslab_0, arg2) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp57) ; return (tmp56) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argtmpref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 5326(line=228, offs=16) -- 5393(line=229, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argenv (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argenv: tmp59 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp59)->tag = 4 ; ats_selptrset_mac(anairiats_sum_9, tmp59, atslab_0, arg2) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp59) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 5442(line=235, offs=3) -- 5504(line=236, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cst: tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp61)->tag = 6 ; ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, arg2) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp61) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 5554(line=241, offs=3) -- 5616(line=242, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_env (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_env: tmp63 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp63)->tag = 7 ; ats_selptrset_mac(anairiats_sum_4, tmp63, atslab_0, arg2) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp63) ; return (tmp62) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_env] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 5687(line=249, offs=3) -- 5745(line=250, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_int (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_int: tmp65 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp65)->tag = 8 ; ats_selptrset_mac(anairiats_sum_9, tmp65, atslab_0, arg2) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp65) ; return (tmp64) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_int] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 5798(line=255, offs=3) -- 5863(line=256, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_intrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_intrep: tmp67 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp67)->tag = 9 ; ats_selptrset_mac(anairiats_sum_4, tmp67, atslab_0, arg2) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp67) ; return (tmp66) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_intrep] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 5938(line=263, offs=3) -- 5997(line=264, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_bool (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_bool: tmp69 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp69)->tag = 10 ; ats_selptrset_mac(anairiats_sum_10, tmp69, atslab_0, arg2) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp69) ; return (tmp68) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_bool] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 6049(line=269, offs=3) -- 6108(line=270, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_char (ats_ptr_type arg0, ats_ptr_type arg1, ats_char_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_char: tmp71 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp71)->tag = 11 ; ats_selptrset_mac(anairiats_sum_11, tmp71, atslab_0, arg2) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp71) ; return (tmp70) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_char] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 6161(line=275, offs=3) -- 6221(line=276, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_float (ats_ptr_type arg0, ats_ptr_type arg1, ats_double_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_float: tmp73 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp73)->tag = 12 ; ats_selptrset_mac(anairiats_sum_12, tmp73, atslab_0, arg2) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp73) ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_float] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 6276(line=281, offs=3) -- 6341(line=282, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_string (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_string: tmp75 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp75)->tag = 13 ; ats_selptrset_mac(anairiats_sum_4, tmp75, atslab_0, arg2) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp75) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_string] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 6416(line=289, offs=3) -- 6475(line=290, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_i0nt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_i0nt: tmp77 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp77)->tag = 14 ; ats_selptrset_mac(anairiats_sum_4, tmp77, atslab_0, arg2) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp77) ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 6529(line=295, offs=3) -- 6590(line=296, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_f0loat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_f0loat: tmp79 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp79)->tag = 15 ; ats_selptrset_mac(anairiats_sum_4, tmp79, atslab_0, arg2) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp79) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 6666(line=303, offs=3) -- 6734(line=304, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cstsp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cstsp: tmp81 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp81)->tag = 16 ; ats_selptrset_mac(anairiats_sum_4, tmp81, atslab_0, arg2) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp81) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cstsp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 6809(line=311, offs=3) -- 6875(line=312, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tyrep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tyrep: tmp83 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp83)->tag = 17 ; ats_selptrset_mac(anairiats_sum_4, tmp83, atslab_0, arg2) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp83) ; return (tmp82) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tyrep] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 6930(line=317, offs=3) -- 6997(line=318, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_sizeof (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_sizeof: tmp85 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp85)->tag = 18 ; ats_selptrset_mac(anairiats_sum_4, tmp85, atslab_0, arg2) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp85) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_sizeof] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 7069(line=324, offs=13) -- 7123(line=325, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_top (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_top: tmp87 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtop_19) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp87) ; return (tmp86) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_top] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 7173(line=329, offs=15) -- 7229(line=330, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty: tmp89 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVempty_20) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp89) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 7303(line=336, offs=16) -- 7370(line=337, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_extval (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_extval: tmp91 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp91)->tag = 21 ; ats_selptrset_mac(anairiats_sum_4, tmp91, atslab_0, arg2) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp91) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_extval] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 7447(line=344, offs=3) -- 7522(line=345, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_castfn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_castfn: tmp93 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp93)->tag = 22 ; ats_selptrset_mac(anairiats_sum_5, tmp93, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp93, atslab_1, arg3) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp93) ; return (tmp92) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_castfn] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 7599(line=352, offs=3) -- 7692(line=353, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon: tmp95 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp95)->tag = 23 ; ats_selptrset_mac(anairiats_sum_6, tmp95, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp95, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp95, atslab_2, arg4) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp95) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 7769(line=360, offs=3) -- 7860(line=361, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select: tmp97 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp97)->tag = 24 ; ats_selptrset_mac(anairiats_sum_6, tmp97, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp97, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp97, atslab_2, arg4) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp97) ; return (tmp96) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 7917(line=366, offs=3) -- 8011(line=367, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2: tmp99 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp99)->tag = 25 ; ats_selptrset_mac(anairiats_sum_6, tmp99, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp99, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp99, atslab_2, arg4) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp99) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 8089(line=374, offs=3) -- 8181(line=375, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr: tmp101 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp101)->tag = 26 ; ats_selptrset_mac(anairiats_sum_6, tmp101, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp101, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp101, atslab_2, arg4) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp101) ; return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 8257(line=382, offs=3) -- 8319(line=383, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof: tmp103 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp103)->tag = 27 ; ats_selptrset_mac(anairiats_sum_4, tmp103, atslab_0, arg2) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp103) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 8374(line=388, offs=1) -- 8473(line=392, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrofsel (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrofsel: tmp105 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp105)->tag = 28 ; ats_selptrset_mac(anairiats_sum_6, tmp105, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp105, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp105, atslab_2, arg4) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp105) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrofsel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 8554(line=399, offs=3) -- 8619(line=400, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_vararg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_vararg: tmp107 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp107)->tag = 29 ; ats_selptrset_mac(anairiats_sum_4, tmp107, atslab_0, arg2) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp107) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_vararg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 8696(line=407, offs=3) -- 8787(line=408, offs=60) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_refarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_refarg: tmp109 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp109)->tag = 30 ; ats_selptrset_mac(anairiats_sum_13, tmp109, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp109, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_13, tmp109, atslab_2, arg4) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp109) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_refarg] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 8864(line=415, offs=3) -- 8925(line=416, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab: tmp111 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp111)->tag = 31 ; ats_selptrset_mac(anairiats_sum_4, tmp111, atslab_0, arg2) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp111) ; return (tmp110) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 8982(line=421, offs=3) -- 9054(line=422, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cfunlab (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cfunlab: tmp113 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp113)->tag = 32 ; ats_selptrset_mac(anairiats_sum_7, tmp113, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp113, atslab_1, arg3) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp113) ; return (tmp112) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cfunlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 9135(line=429, offs=3) -- 9209(line=430, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_d2vfunlab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_d2vfunlab: tmp115 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp115)->tag = 33 ; ats_selptrset_mac(anairiats_sum_5, tmp115, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp115, atslab_1, arg3) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp115) ; return (tmp114) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_d2vfunlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 9289(line=437, offs=3) -- 9450(line=444, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix: tmp117 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_loc) ; tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_primval_type) ; tmp119 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp119)->tag = 34 ; ats_selptrset_mac(anairiats_sum_5, tmp119, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp119, atslab_1, arg1) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (tmp117, tmp118, tmp119) ; return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_lamfix] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 9529(line=450, offs=3) -- 9608(line=451, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcst: tmp121 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp121)->tag = 35 ; ats_selptrset_mac(anairiats_sum_5, tmp121, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp121, atslab_1, arg3) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp121) ; return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 9667(line=455, offs=3) -- 9746(line=456, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvar: tmp123 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp123)->tag = 36 ; ats_selptrset_mac(anairiats_sum_5, tmp123, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp123, atslab_1, arg3) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp123) ; return (tmp122) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 9832(line=463, offs=3) -- 9924(line=465, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcstmat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcstmat: tmp125 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp125)->tag = 37 ; ats_selptrset_mac(anairiats_sum_6, tmp125, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp125, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp125, atslab_2, arg4) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp125) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltcstmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 9994(line=470, offs=3) -- 10086(line=472, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvarmat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvarmat: tmp127 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp127)->tag = 38 ; ats_selptrset_mac(anairiats_sum_6, tmp127, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp127, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp127, atslab_2, arg4) ; tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp127) ; return (tmp126) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpltvarmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 10302(line=488, offs=3) -- 10366(line=489, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_error (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_error: tmp129 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVerror_39) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__primval_make_node (arg0, arg1, tmp129) ; return (tmp128) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_error] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 10447(line=496, offs=3) -- 10538(line=501, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_sizeof (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_sizeof: tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_size_t0ype () ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_sizeof (arg0, tmp131, arg1) ; return (tmp130) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_sizeof] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 10622(line=507, offs=3) -- 10707(line=509, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp: tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type (arg1) ; tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp (arg0, tmp133, arg1) ; return (tmp132) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 10770(line=513, offs=3) -- 10858(line=515, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmpref (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmpref: tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type (arg1) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref (arg0, tmp135, arg1) ; return (tmp134) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmpref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 10947(line=521, offs=1) -- 11181(line=529, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_ptrofsel (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_ptrofsel: tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selptr (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined, arg1, arg2, arg3) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, tmp137) ; return (tmp136) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_ptrofsel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 11263(line=535, offs=3) -- 11322(line=537, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ibranch_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ibranch_make: tmp138 = ATS_MALLOC(sizeof(anairiats_rec_14)) ; ats_selptrset_mac(anairiats_rec_14, tmp138, atslab_ibranch_loc, arg0) ; ats_selptrset_mac(anairiats_rec_14, tmp138, atslab_ibranch_inslst, arg1) ; return (tmp138) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ibranch_make] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 11395(line=542, offs=16) -- 11471(line=544, offs=41) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_is_lab (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_is_lab: tmp140 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_primlab_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp140)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp139 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (((ats_sum_ptr_type)tmp140)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp139 = ats_false_bool ; break ; } while (0) ; return (tmp139) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_is_lab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 11525(line=548, offs=16) -- 11601(line=550, offs=41) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_is_ind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_is_ind: tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_primlab_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp142)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp141 = ats_false_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (((ats_sum_ptr_type)tmp142)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp141 = ats_true_bool ; break ; } while (0) ; return (tmp141) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_is_ind] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 11673(line=556, offs=13) -- 11737(line=558, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab: tmp144 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp144)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp144, atslab_0, arg1) ; tmp143 = ATS_MALLOC(sizeof(anairiats_rec_15)) ; ats_selptrset_mac(anairiats_rec_15, tmp143, atslab_primlab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_15, tmp143, atslab_primlab_node, tmp144) ; return (tmp143) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 11785(line=561, offs=13) -- 11849(line=563, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_ind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_ind: tmp146 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp146)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp146, atslab_0, arg1) ; tmp145 = ATS_MALLOC(sizeof(anairiats_rec_15)) ; ats_selptrset_mac(anairiats_rec_15, tmp145, atslab_primlab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_15, tmp145, atslab_primlab_node, tmp146) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_ind] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 12013(line=575, offs=3) -- 12066(line=577, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp147) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node: tmp147 = ATS_MALLOC(sizeof(anairiats_rec_16)) ; ats_selptrset_mac(anairiats_rec_16, tmp147, atslab_instr_loc, arg0) ; ats_selptrset_mac(anairiats_rec_16, tmp147, atslab_instr_node, arg1) ; return (tmp147) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 12140(line=582, offs=14) -- 12191(line=583, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab: tmp149 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp149)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp149, atslab_0, arg1) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp149) ; return (tmp148) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 12262(line=589, offs=14) -- 12313(line=590, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmplab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmplab: tmp151 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp151)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp151, atslab_0, arg1) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp151) ; return (tmp150) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmplab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 12385(line=596, offs=15) -- 12439(line=597, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_comment (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_comment: tmp153 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp153)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp153, atslab_0, arg1) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp153) ; return (tmp152) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_comment] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 12513(line=603, offs=16) -- 12578(line=604, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val: tmp155 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp155)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp155, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp155, atslab_1, arg2) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp155) ; return (tmp154) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 12633(line=608, offs=17) -- 12699(line=609, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_val (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_val: tmp157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp157)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_1, arg2) ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp157) ; return (tmp156) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_val] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 12779(line=615, offs=20) -- 12848(line=616, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arg_val (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arg_val: tmp159 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp159)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp159, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp159, atslab_1, arg2) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp159) ; return (tmp158) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arg_val] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 12924(line=623, offs=1) -- 13042(line=626, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall: tmp161 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp161)->tag = 6 ; ats_selptrset_mac(anairiats_sum_17, tmp161, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp161, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp161, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_17, tmp161, atslab_3, arg4) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp161) ; return (tmp160) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 13091(line=631, offs=1) -- 13214(line=634, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2: tmp163 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp163)->tag = 7 ; ats_selptrset_mac(anairiats_sum_18, tmp163, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp163, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp163, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp163, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_18, tmp163, atslab_4, arg5) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp163) ; return (tmp162) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_fcall2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 13289(line=641, offs=3) -- 13373(line=642, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extfcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extfcall: tmp165 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp165)->tag = 8 ; ats_selptrset_mac(anairiats_sum_6, tmp165, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp165, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp165, atslab_2, arg3) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp165) ; return (tmp164) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extfcall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 13429(line=647, offs=3) -- 13525(line=648, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extmcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extmcall: tmp167 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp167)->tag = 9 ; ats_selptrset_mac(anairiats_sum_17, tmp167, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp167, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp167, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_17, tmp167, atslab_3, arg4) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp167) ; return (tmp166) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extmcall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 13598(line=655, offs=3) -- 13681(line=656, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_cond (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_cond: tmp169 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp169)->tag = 10 ; ats_selptrset_mac(anairiats_sum_6, tmp169, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp169, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp169, atslab_2, arg3) ; tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp169) ; return (tmp168) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_cond] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 13753(line=663, offs=3) -- 13805(line=663, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_freecon (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_freecon: tmp171 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp171)->tag = 11 ; ats_selptrset_mac(anairiats_sum_4, tmp171, atslab_0, arg1) ; tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp171) ; return (tmp170) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_freecon] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 13875(line=670, offs=1) -- 14133(line=683, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loop (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_ptr_type arg8) { /* local vardec */ ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loop: tmp173 = ATS_MALLOC(sizeof(anairiats_sum_19)) ; ((ats_sum_ptr_type)tmp173)->tag = 12 ; ats_selptrset_mac(anairiats_sum_19, tmp173, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_19, tmp173, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_19, tmp173, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_19, tmp173, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_19, tmp173, atslab_4, arg5) ; ats_selptrset_mac(anairiats_sum_19, tmp173, atslab_5, arg6) ; ats_selptrset_mac(anairiats_sum_19, tmp173, atslab_6, arg7) ; ats_selptrset_mac(anairiats_sum_19, tmp173, atslab_7, arg8) ; tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp173) ; return (tmp172) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loop] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 14184(line=686, offs=15) -- 14252(line=688, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loopexn (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loopexn: tmp175 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp175)->tag = 13 ; ats_selptrset_mac(anairiats_sum_7, tmp175, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp175, atslab_1, arg2) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp175) ; return (tmp174) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loopexn] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 14300(line=694, offs=3) -- 14349(line=694, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_caseof (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_caseof: tmp177 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp177)->tag = 14 ; ats_selptrset_mac(anairiats_sum_4, tmp177, atslab_0, arg1) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp177) ; return (tmp176) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_caseof] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 14422(line=701, offs=3) -- 14465(line=701, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpop (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpop: tmp179 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpop_15) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp179) ; return (tmp178) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpop] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 14518(line=706, offs=3) -- 14572(line=706, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpush (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpush: tmp181 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp181)->tag = 16 ; ats_selptrset_mac(anairiats_sum_4, tmp181, atslab_0, arg1) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp181) ; return (tmp180) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_letpush] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 14646(line=712, offs=16) -- 14751(line=715, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_con: tmp183 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp183)->tag = 17 ; ats_selptrset_mac(anairiats_sum_17, tmp183, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp183, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp183, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_17, tmp183, atslab_3, arg4) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp183) ; return (tmp182) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_con] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 14828(line=722, offs=3) -- 14899(line=723, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ref: tmp185 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp185)->tag = 18 ; ats_selptrset_mac(anairiats_sum_5, tmp185, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp185, atslab_1, arg2) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp185) ; return (tmp184) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 14977(line=730, offs=1) -- 15077(line=733, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_boxrec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_boxrec: tmp187 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp187)->tag = 19 ; ats_selptrset_mac(anairiats_sum_6, tmp187, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp187, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp187, atslab_2, arg3) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp187) ; return (tmp186) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_boxrec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 15137(line=738, offs=1) -- 15237(line=741, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec: tmp189 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp189)->tag = 20 ; ats_selptrset_mac(anairiats_sum_6, tmp189, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp189, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp189, atslab_2, arg3) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp189) ; return (tmp188) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 15298(line=746, offs=1) -- 15610(line=761, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec2: tmp191 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg3), atslab_hisexp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp191)->tag != 9) { goto __ats_lab_5_0 ; } __ats_lab_4_1: if (arg2 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp.dats: 15411(line=754, offs=9) -- 15438(line=754, offs=36)") ; } tmp192 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_0) ; // tmp193 = ats_caselptrlab_mac(anairiats_sum_20, tmp192, atslab_1) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (arg0, arg1, tmp193) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec (arg0, arg1, arg2, arg3) ; break ; } while (0) ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_fltrec2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 15688(line=767, offs=3) -- 15768(line=768, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck: tmp195 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp195)->tag = 21 ; ats_selptrset_mac(anairiats_sum_6, tmp195, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp195, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp195, atslab_2, arg3) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp195) ; return (tmp194) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 15843(line=774, offs=19) -- 15992(line=780, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_selcon (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_selcon: tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon (arg0, arg2, arg3, arg4, arg5) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (arg0, arg1, tmp197) ; return (tmp196) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_selcon] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 16047(line=783, offs=19) -- 16194(line=789, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select: tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select (arg0, arg2, arg3, arg4, arg5) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (arg0, arg1, tmp199) ; return (tmp198) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 16250(line=792, offs=20) -- 16400(line=798, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select2: tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_select2 (arg0, arg2, arg3, arg4, arg5) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (arg0, arg1, tmp201) ; return (tmp200) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 16479(line=804, offs=1) -- 16612(line=812, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ptrofsel (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ptrofsel: tmp203 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp203)->tag = 22 ; ats_selptrset_mac(anairiats_sum_17, tmp203, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp203, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp203, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_17, tmp203, atslab_3, arg4) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp203) ; return (tmp202) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_ptrofsel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 16881(line=828, offs=1) -- 17019(line=837, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_ptrofs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_ptrofs: tmp205 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp205)->tag = 23 ; ats_selptrset_mac(anairiats_sum_17, tmp205, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp205, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp205, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_17, tmp205, atslab_3, arg4) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp205) ; return (tmp204) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_ptrofs] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 17082(line=841, offs=1) -- 17230(line=850, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_xstore_ptrofs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_xstore_ptrofs: tmp207 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ((ats_sum_ptr_type)tmp207)->tag = 24 ; ats_selptrset_mac(anairiats_sum_21, tmp207, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_21, tmp207, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_21, tmp207, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_21, tmp207, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_21, tmp207, atslab_4, arg5) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp207) ; return (tmp206) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_xstore_ptrofs] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 17309(line=856, offs=3) -- 17379(line=857, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_raise (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_raise: tmp209 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp209)->tag = 25 ; ats_selptrset_mac(anairiats_sum_5, tmp209, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp209, atslab_1, arg2) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp209) ; return (tmp208) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_raise] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 17455(line=864, offs=3) -- 17582(line=871, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_delay (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_delay: tmp211 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp211)->tag = 26 ; ats_selptrset_mac(anairiats_sum_22, tmp211, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp211, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp211, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_22, tmp211, atslab_3, arg4) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp211) ; return (tmp210) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_delay] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 17645(line=875, offs=3) -- 17778(line=881, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_lazyeval (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_lazyeval: tmp213 = ATS_MALLOC(sizeof(anairiats_sum_22)) ; ((ats_sum_ptr_type)tmp213)->tag = 27 ; ats_selptrset_mac(anairiats_sum_22, tmp213, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_22, tmp213, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_22, tmp213, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_22, tmp213, atslab_3, arg4) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp213) ; return (tmp212) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_lazyeval] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 17859(line=887, offs=3) -- 17950(line=890, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_trywith (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_trywith: tmp215 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp215)->tag = 28 ; ats_selptrset_mac(anairiats_sum_6, tmp215, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp215, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp215, atslab_2, arg3) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp215) ; return (tmp214) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_trywith] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 18031(line=896, offs=3) -- 18091(line=897, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_nil (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_nil: tmp217 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp217)->tag = 29 ; ats_selptrset_mac(anairiats_sum_4, tmp217, atslab_0, arg1) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp217) ; return (tmp216) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_nil] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 18157(line=901, offs=3) -- 18218(line=902, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_nil (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_nil: tmp219 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp219)->tag = 30 ; ats_selptrset_mac(anairiats_sum_4, tmp219, atslab_0, arg1) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp219) ; return (tmp218) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_nil] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 18286(line=906, offs=3) -- 18366(line=907, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_cons (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_cons: tmp221 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp221)->tag = 31 ; ats_selptrset_mac(anairiats_sum_5, tmp221, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp221, atslab_1, arg2) ; tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp221) ; return (tmp220) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_pmove_list_cons] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 18457(line=914, offs=3) -- 18557(line=916, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_phead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_phead: tmp223 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp223)->tag = 32 ; ats_selptrset_mac(anairiats_sum_6, tmp223, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp223, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp223, atslab_2, arg3) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp223) ; return (tmp222) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_phead] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 18627(line=921, offs=3) -- 18731(line=923, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_ptail (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_ptail: tmp225 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp225)->tag = 33 ; ats_selptrset_mac(anairiats_sum_6, tmp225, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp225, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp225, atslab_2, arg3) ; tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp225) ; return (tmp224) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_list_ptail] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 18822(line=930, offs=3) -- 18896(line=932, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arrpsz_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arrpsz_ptr: tmp227 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp227)->tag = 34 ; ats_selptrset_mac(anairiats_sum_5, tmp227, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp227, atslab_1, arg2) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp227) ; return (tmp226) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_arrpsz_ptr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 18988(line=939, offs=3) -- 19063(line=941, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_asz (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_asz: tmp229 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ((ats_sum_ptr_type)tmp229)->tag = 35 ; ats_selptrset_mac(anairiats_sum_23, tmp229, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_23, tmp229, atslab_1, arg2) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp229) ; return (tmp228) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_asz] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 19135(line=946, offs=3) -- 19227(line=951, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_ptr: tmp231 = ATS_MALLOC(sizeof(anairiats_sum_24)) ; ((ats_sum_ptr_type)tmp231)->tag = 36 ; ats_selptrset_mac(anairiats_sum_24, tmp231, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_24, tmp231, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_24, tmp231, atslab_2, arg3) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp231) ; return (tmp230) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_store_arrpsz_ptr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 19319(line=958, offs=3) -- 19405(line=960, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrinc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrinc: tmp233 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp233)->tag = 37 ; ats_selptrset_mac(anairiats_sum_5, tmp233, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp233, atslab_1, arg2) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp233) ; return (tmp232) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrinc] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 19471(line=965, offs=3) -- 19557(line=967, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrdec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrdec: tmp235 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp235)->tag = 38 ; ats_selptrset_mac(anairiats_sum_5, tmp235, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp235, atslab_1, arg2) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp235) ; return (tmp234) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_update_ptrdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 19648(line=974, offs=3) -- 19739(line=976, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_closure_initize (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_closure_initize: tmp237 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp237)->tag = 39 ; ats_selptrset_mac(anairiats_sum_6, tmp237, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp237, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp237, atslab_2, arg3) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp237) ; return (tmp236) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_closure_initize] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 19789(line=982, offs=3) -- 19840(line=983, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmpdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmpdec: tmp239 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp239)->tag = 40 ; ats_selptrset_mac(anairiats_sum_4, tmp239, atslab_0, arg1) ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp239) ; return (tmp238) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmpdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 19913(line=990, offs=3) -- 19974(line=991, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extvar: tmp241 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp241)->tag = 41 ; ats_selptrset_mac(anairiats_sum_5, tmp241, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp241, atslab_1, arg2) ; tmp240 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp241) ; return (tmp240) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 20048(line=998, offs=3) -- 20110(line=999, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_dcstdef (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_dcstdef: tmp243 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp243)->tag = 42 ; ats_selptrset_mac(anairiats_sum_5, tmp243, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp243, atslab_1, arg2) ; tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp243) ; return (tmp242) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_dcstdef] */ /* // /tmp/ATS-Postiats/src/pats_ccomp.dats: 20187(line=1006, offs=3) -- 20245(line=1007, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tempenver (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tempenver: tmp245 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp245)->tag = 43 ; ats_selptrset_mac(anairiats_sum_4, tmp245, atslab_0, arg1) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__instr_make_node (arg0, tmp245) ; return (tmp244) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tempenver] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_staexp_dats.c0000644000175000017500000121530513431250607023331 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_s0taq_loc ; ats_ptr_type atslab_s0taq_node ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_i0de_loc ; ats_ptr_type atslab_i0de_sym ; } anairiats_rec_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_uint_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_s1arg_loc ; ats_ptr_type atslab_s1arg_sym ; ats_ptr_type atslab_s1arg_srt ; } anairiats_rec_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_s1marg_loc ; ats_ptr_type atslab_s1marg_arg ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_sp1at_loc ; ats_ptr_type atslab_sp1at_node ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_s1exp_loc ; ats_ptr_type atslab_s1exp_node ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_15 ; typedef struct { anairiats_rec_14 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_17 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_18 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_19 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_21 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_l0ab_loc ; ats_ptr_type atslab_l0ab_lab ; } anairiats_rec_23 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_24 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_25 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_26 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_27 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_28 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_29 ; typedef struct { ats_ptr_type atslab_s1qua_loc ; ats_ptr_type atslab_s1qua_node ; } anairiats_rec_30 ; typedef struct { ats_ptr_type atslab_q1marg_loc ; ats_ptr_type atslab_q1marg_arg ; } anairiats_rec_31 ; typedef struct { ats_ptr_type atslab_s1rt_loc ; ats_ptr_type atslab_s1rt_node ; } anairiats_rec_32 ; typedef struct { ats_ptr_type atslab_s1rtext_loc ; ats_ptr_type atslab_s1rtext_node ; } anairiats_rec_33 ; typedef struct { ats_ptr_type atslab_s1exparg_loc ; ats_ptr_type atslab_s1exparg_node ; } anairiats_rec_34 ; typedef struct { ats_ptr_type atslab_t1mpmarg_loc ; ats_ptr_type atslab_t1mpmarg_arg ; } anairiats_rec_35 ; typedef struct { ats_ptr_type atslab_d1atcon_loc ; ats_ptr_type atslab_d1atcon_sym ; ats_ptr_type atslab_d1atcon_qua ; ats_int_type atslab_d1atcon_npf ; ats_ptr_type atslab_d1atcon_arg ; ats_ptr_type atslab_d1atcon_ind ; } anairiats_rec_36 ; typedef struct { anairiats_rec_1 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_37 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; 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_syntax_2esats__S0TAQnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfun_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTset_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTqid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__SP1Tcstr_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_none_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qvars_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsub_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Esqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Echar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Efloat_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Estring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextype_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextkind_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elam_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eimp_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Einvar_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etrans_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyarr_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etytup_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_ext_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Euni_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eexi_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eann_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Ed2ctype_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eerr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEsome_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEnone_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTVar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMvar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMcst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMe1xp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatcontyp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatconptr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsub_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEerr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_effvar_tr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trup_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trup_app_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trdn_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trdn_impred_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s2exp_trdn_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1arg_trdn_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1marg_trdn_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sp1at_trdn_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_q1marg_tr_dec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1rtext_tr_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1atcon_tr_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDarrow_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_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_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_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_get_dups) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_fun(ats_ptr_type, patsopt_intinf_make_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0rtq) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_s0taq_none) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make_s1exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_reverse) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_make) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_dat) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_nonlin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2itm) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char) (ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset) (ats_uint_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc) (ats_ptr_type, ats_bool_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst) (ats_int_type, ats_int_type, ats_int_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2cst_select_locs2explstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_nonvar) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_alpha) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_alpha) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__S1Ed2ctype_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst) (ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datconptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datcontyp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcon) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDarrow_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02164_ () ; static ats_ptr_type staspecid_of_sqid_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_error2_loc_02168_ (ats_ptr_type arg0) ; static ats_ptr_type effvar_tr_2 (ats_ptr_type arg0) ; static ats_ptr_type effvarlst_tr_4 (ats_ptr_type arg0) ; static ats_void_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_ptr_type f_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type sp1at_get_dups_16 (ats_ptr_type arg0) ; static ats_void_type auxerr_22 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type auxerr_22_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxerr_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type sp1at_trdn_arg_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxerr1_24 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type auxerr1_24_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxerr1_24_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr2_25 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type auxerr2_25_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxerr2_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr3_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type auxerr3_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxerr3_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type procrepeat_28 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type procrepeat2_29 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxcheck_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type auxcheck_27_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxcheck_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxselect_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_interror_loc_02166_ (ats_ptr_type arg0) ; static ats_ptr_type s1exp_trup_sqid_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_35 (ats_ptr_type arg0, anairiats_rec_14 arg1, ats_ptr_type arg2) ; static ats_ptr_type auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_39 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s2exp_app_wind_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s1exp_app_unwind_40 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_int_type loop_43 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_anairiats_rec_14 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_44 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_44_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type app_46 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type s1exp_app_unwind_e1xp_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type s1exp_trup_invar_47 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_bool_type s1exp_is_underscore_48 (ats_ptr_type arg0) ; static ats_int_type s1exp_test_top_underscore_49 (ats_ptr_type arg0) ; static ats_ptr_type s1exp_untop_if_50 (ats_ptr_type arg0) ; static ats_ptr_type s1exp_trans_syn_arg2_51 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxwth_54 (ats_ptr_type arg0) ; static ats_ptr_type auxres_55 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr1_57 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_60 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_anairiats_rec_14 (ats_ptr_type arg0) ; static ats_void_type auxerr2_58 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxerr3_61 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_62 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type aux_62_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_62_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type s1exp_trup_arrow_56 (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2, ats_bool_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxerr1_64 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type auxerr2_65 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type loop_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s1exp_trup_app_63 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_int_type auxck1_68 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type loop_71 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type auxck2_69 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s1exp_trup_app_datcontyp_67 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_int_type auxck1_73 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxck2_74 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s1exp_trup_app_datconptr_72 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s1exp_trup_app_sqid_75 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type loop_80 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_14 (ats_ptr_type arg0, ats_ptr_type arg1) ; static anairiats_rec_14 __ats_fun_81 (ats_ptr_type arg0) ; static ats_ptr_type f_77 (anairiats_rec_14 arg0) ; static ats_void_type loop_84 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_anairiats_rec_14_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_anairiats_rec_14_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s1exp_trup_app_sqid_itm_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type s1exp_trup_top_85 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux01_86 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) ; static ats_ptr_type aux23_87 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type s1exp_trup_tytup_88 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s1exp_trup_tytup_flt_89 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_ptr_type string_of_s0tring_90 (ats_ptr_type arg0) ; static ats_ptr_type aux01_91 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) ; static ats_ptr_type aux23_92 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type s1exp_trup_tyrec_93 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_ptr_type s1exp_trup_tyrec_ext_94 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr_101 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type auxerr_101_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxerr_101_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s1exp_trdn_lam_100 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_104 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxsrt_121 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type auxsub1_122 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static ats_void_type auxsub2_123 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) ; static ats_void_type loop_120 (ats_ptr_type arg0, ats_ref_type arg1, ats_ref_type arg2) ; static ats_ptr_type revapp_126 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ; static ats_void_type prerr_error3_loc_02170_ (ats_ptr_type arg0) ; static ats_void_type auxerr_132 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type auxerr_132_closure_make (ats_ptr_type env0) ; static ats_void_type auxerr_132_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_134 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr1_141 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type auxerr2_142 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr3_143 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_146 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_149 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_150 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_151 (ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_int_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type aux_151_closure_make (ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_ptr_type aux_151_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1) ; static ats_int_type list_length_compare_01411_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_154 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 1817(line=64, offs=1) -- 1865(line=66, offs=31) */ ATSstaticdec() ats_void_type prerr_FILENAME_02164_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02164_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans2_staexp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02164_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 3124(line=140, offs=1) -- 3425(line=157, offs=2) */ ATSstaticdec() ats_ptr_type staspecid_of_sqid_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_bool_type, tmp3) ; __ats_lab_staspecid_of_sqid_1: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s0taq_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp2 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; if (tmp3) { tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDarrow_0) ; } else { tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1) ; } /* end of [if] */ break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1) ; break ; } while (0) ; return (tmp1) ; } /* end of [staspecid_of_sqid_1] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2105(line=76, offs=17) -- 2163(line=79, offs=2) */ ATSstaticdec() ats_void_type prerr_error2_loc_02168_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; __ats_lab_prerr_error2_loc_02168_: /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp14 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ; return /* (tmp14) */ ; } /* end of [prerr_error2_loc_02168_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 3487(line=162, offs=1) -- 4615(line=204, offs=4) */ ATSstaticdec() ats_ptr_type effvar_tr_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab_effvar_tr_2: tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ; tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (tmp6) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp7 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_2_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_4, tmp7, atslab_0) ; ATS_FREE(tmp7) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp8)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_5, tmp8, atslab_0) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp9) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp8)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_5, tmp8, atslab_0) ; if (tmp10 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 3839(line=182, offs=11) -- 3864(line=182, offs=36)") ; } tmp11 = ats_caselptrlab_mac(anairiats_sum_6, tmp10, atslab_0) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp11) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; /* tmp13 = */ prerr_error2_loc_02168_ (tmp5) ; /* tmp16 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("effvar_tr")) ; /* tmp17 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ; /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp6) ; /* tmp19 = */ atspre_prerr_string (ATSstrcst("] should refer to a variable or constant.")) ; /* tmp20 = */ atspre_prerr_newline () ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp22)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp22, atslab_0, arg0) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp22) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (tmp7 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; /* tmp24 = */ prerr_error2_loc_02168_ (tmp5) ; /* tmp25 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("effvar_tr")) ; /* tmp26 = */ atspre_prerr_string (ATSstrcst(": unrecognized static identifier [")) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp6) ; /* tmp28 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp29 = */ atspre_prerr_newline () ; tmp31 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp31)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp31, atslab_0, arg0) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp31) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; return (tmp4) ; } /* end of [effvar_tr_2] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 4643(line=206, offs=5) -- 4944(line=218, offs=2) */ ATSstaticdec() ats_ptr_type effvarlst_tr_4 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab_effvarlst_tr_4: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp34 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp35 = effvar_tr_2 (tmp33) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp (tmp35) ; tmp37 = effvarlst_tr_4 (tmp34) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add (tmp36, tmp37) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ; break ; } while (0) ; return (tmp32) ; } /* end of [effvarlst_tr_4] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 4991(line=221, offs=11) -- 5195(line=228, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_uint_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp40 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (tmp39) ; tmp42 = effvarlst_tr_4 (tmp40) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add (tmp41, tmp42) ; break ; } while (0) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 5260(line=233, offs=11) -- 5503(line=248, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup: tmp45 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_srt) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp45 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_4, tmp45, atslab_0) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp46) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp45 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_loc) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_make (tmp48) ; tmp44 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp44)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp44, atslab_0, tmp47) ; break ; } while (0) ; tmp49 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_sym) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp49, tmp44) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab_loop_10: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp57 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp55, arg3) ; tmp58 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp58, atslab_0, tmp57) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp58 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp59 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp56 ; arg1 = arg1 ; arg2 = tmp59 ; arg3 = arg3 ; goto __ats_lab_loop_10 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp60 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp60 ; break ; } while (0) ; return /* (tmp54) */ ; } /* end of [loop_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp61 ; */ /* tmp62 = */ loop_10 (arg0, arg1, (&tmp61), arg2) ; tmp53 = tmp61 ; return (tmp53) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp52 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp52) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 5554(line=252, offs=3) -- 5597(line=252, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup: tmp51 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup) ; tmp50 = ats_castfn_mac(ats_ptr_type, tmp51) ; return (tmp50) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 5804(line=271, offs=1) -- 6169(line=290, offs=4) */ ATSstaticdec() ats_void_type auxerr_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab_auxerr_12: tmp66 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_loc) ; /* tmp65 = */ prerr_error2_loc_02168_ (tmp66) ; /* tmp67 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1arg_trdn")) ; /* tmp68 = */ atspre_prerr_string (ATSstrcst(": the argument is assigned the sort [")) ; /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ; /* tmp70 = */ atspre_prerr_string (ATSstrcst("] but it is expected to accept a static term of the sort [")) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ; /* tmp72 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp73 = */ atspre_prerr_newline () ; tmp74 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp74)->tag = 9 ; ats_selptrset_mac(anairiats_sum_9, tmp74, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp74, atslab_1, arg2) ; /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp74) ; return /* (tmp64) */ ; } /* end of [auxerr_12] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 5670(line=259, offs=3) -- 6553(line=307, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_bool_type, tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn: tmp75 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_srt) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (tmp75 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_sym) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp76, arg1) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (tmp75 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_4, tmp75, atslab_0) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp77) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (arg1, tmp78) ; tmp81 = atspre_neg_bool (tmp79) ; if (tmp81) { /* tmp80 = */ auxerr_12 (arg0, tmp78, arg1) ; } else { /* empty */ } /* end of [if] */ tmp82 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_sym) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp82, arg1) ; break ; } while (0) ; return (tmp63) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 6611(line=311, offs=3) -- 7098(line=332, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_20_1 ; } __ats_lab_18_2: tmp84 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp85 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp87 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn (tmp84, tmp86) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err (tmp85, tmp87, arg2) ; tmp83 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp83, atslab_0, tmp88) ; ats_selptrset_mac(anairiats_sum_6, tmp83, atslab_1, tmp89) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_21_1 ; } __ats_lab_19_2: tmp83 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_2: tmp90 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp90 ; tmp83 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_2: tmp91 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp91 ; tmp83 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 7180(line=338, offs=5) -- 7590(line=353, offs=4) */ ATSstaticdec() ats_void_type auxerr_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_bool_type, tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; __ats_lab_auxerr_15: tmp94 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1marg_loc) ; /* tmp95 = */ prerr_error2_loc_02168_ (tmp94) ; /* tmp96 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1marg_trdn")) ; /* tmp97 = */ atspre_prerr_string (ATSstrcst(": the static argument group is expected to contain ")) ; tmp100 = atspre_gt_int_int (arg2, 0) ; if (tmp100) { tmp99 = ATSstrcst("more") ; } else { tmp99 = ATSstrcst("fewer") ; } /* end of [if] */ /* tmp98 = */ atspre_prerr_string (tmp99) ; /* tmp101 = */ atspre_prerr_string (ATSstrcst(" components.")) ; /* tmp102 = */ atspre_prerr_newline () ; tmp103 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp103)->tag = 10 ; ats_selptrset_mac(anairiats_sum_9, tmp103, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp103, atslab_1, arg1) ; /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp103) ; return /* (tmp93) */ ; } /* end of [auxerr_15] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 7154(line=336, offs=3) -- 7777(line=363, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; // ATSlocal_void (tmp107) ; ATSlocal (ats_bool_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn: /* ats_int_type tmp104 ; */ tmp104 = 0 ; tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1marg_arg) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err (tmp106, arg1, (&tmp104)) ; tmp108 = atspre_neq_int_int (tmp104, 0) ; if (tmp108) { /* tmp107 = */ auxerr_15 (arg0, arg1, tmp104) ; } else { /* empty */ } /* end of [if] */ tmp92 = tmp105 ; return (tmp92) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 7933(line=374, offs=5) -- 8033(line=377, offs=54) */ ATSstaticdec() ats_ptr_type f_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; __ats_lab_f_17: tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym) ; return (tmp110) ; } /* end of [f_17] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25316(line=913, offs=7) -- 25599(line=923, offs=20) */ ATSstaticdec() ats_ptr_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; __ats_lab_loop_20: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp116 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp117 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg0) (arg1, tmp115, arg3) ; arg0 = arg0 ; arg1 = tmp117 ; arg2 = tmp116 ; arg3 = arg3 ; goto __ats_lab_loop_20 ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp114 = arg1 ; break ; } while (0) ; return (tmp114) ; } /* end of [loop_20] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25281(line=912, offs=20) -- 25655(line=927, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; __ats_lab_list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type: tmp113 = loop_20 (arg0, arg1, arg2, arg3) ; return (tmp113) ; } /* end of [list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25737(line=930, offs=28) -- 26032(line=939, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; __ats_lab_list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type: tmp112 = list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), arg1, arg2, atspre_null_ptr) ; return (tmp112) ; } /* end of [list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 7835(line=369, offs=5) -- 8205(line=386, offs=4) */ ATSstaticdec() ats_ptr_type sp1at_get_dups_16 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab_sp1at_get_dups_16: tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil () ; tmp111 = list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (&f_17, tmp118, arg0) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_get_dups (tmp111, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym) ; return (tmp109) ; } /* end of [sp1at_get_dups_16] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 8367(line=396, offs=5) -- 8769(line=413, offs=4) */ ATSstaticdec() ats_void_type auxerr_22 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_bool_type, tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab_auxerr_22: tmp121 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_sp1at_loc) ; /* tmp122 = */ prerr_error2_loc_02168_ (tmp121) ; /* tmp123 = */ atspre_prerr_string (ATSstrcst(": the static constructor [")) ; /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (env1) ; /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (env2) ; /* tmp126 = */ atspre_prerr_string (ATSstrcst("] requires ")) ; tmp129 = atspre_gt_int_int (arg1, 0) ; if (tmp129) { tmp128 = ATSstrcst("more") ; } else { tmp128 = ATSstrcst("fewer") ; } /* end of [if] */ /* tmp127 = */ atspre_prerr_string (tmp128) ; /* tmp130 = */ atspre_prerr_string (ATSstrcst(" arguments.")) ; /* tmp131 = */ atspre_prerr_newline () ; tmp132 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp132)->tag = 11 ; ats_selptrset_mac(anairiats_sum_9, tmp132, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp132, atslab_1, env0) ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp132) ; return /* (tmp120) */ ; } /* end of [auxerr_22] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxerr_22_closure_type ; ats_void_type auxerr_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { auxerr_22 (((auxerr_22_closure_type*)cloptr)->closure_env_0, ((auxerr_22_closure_type*)cloptr)->closure_env_1, ((auxerr_22_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr_22_closure_init (auxerr_22_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr_22_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxerr_22_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxerr_22_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_22_closure_type)) ; auxerr_22_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 8238(line=388, offs=5) -- 8939(line=423, offs=4) */ ATSstaticdec() ats_ptr_type sp1at_trdn_arg_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_int_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_bool_type, tmp136) ; __ats_lab_sp1at_trdn_arg_21: /* ats_int_type tmp133 ; */ tmp133 = 0 ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err (arg4, arg5, (&tmp133)) ; tmp136 = atspre_neq_int_int (tmp133, 0) ; if (tmp136) { /* tmp135 = */ auxerr_22 (arg1, arg2, arg3, arg0, tmp133) ; } else { /* empty */ } /* end of [if] */ tmp119 = tmp134 ; return (tmp119) ; } /* end of [sp1at_trdn_arg_21] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 9073(line=433, offs=5) -- 9458(line=450, offs=4) */ ATSstaticdec() ats_void_type auxerr1_24 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; __ats_lab_auxerr1_24: /* tmp140 = */ prerr_error2_loc_02168_ (env2) ; /* tmp141 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("sp1at_trdn")) ; /* tmp142 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg0) ; /* tmp144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ; /* tmp145 = */ atspre_prerr_string (ATSstrcst("] does not refer to a static constructor associated with the sort [")) ; /* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (env1) ; /* tmp147 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp148 = */ atspre_prerr_newline () ; tmp149 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp149)->tag = 11 ; ats_selptrset_mac(anairiats_sum_9, tmp149, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_9, tmp149, atslab_1, env1) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp149) ; return /* (tmp139) */ ; } /* end of [auxerr1_24] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxerr1_24_closure_type ; ats_void_type auxerr1_24_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { auxerr1_24 (((auxerr1_24_closure_type*)cloptr)->closure_env_0, ((auxerr1_24_closure_type*)cloptr)->closure_env_1, ((auxerr1_24_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr1_24_closure_init (auxerr1_24_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr1_24_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxerr1_24_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxerr1_24_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr1_24_closure_type)) ; auxerr1_24_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 9486(line=452, offs=5) -- 9826(line=469, offs=4) */ ATSstaticdec() ats_void_type auxerr2_25 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; __ats_lab_auxerr2_25: /* tmp151 = */ prerr_error2_loc_02168_ (env2) ; /* tmp152 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("sp1at_trdn")) ; /* tmp153 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg0) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ; /* tmp156 = */ atspre_prerr_string (ATSstrcst("] does not refer to a static constructor.")) ; /* tmp157 = */ atspre_prerr_newline () ; tmp158 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp158)->tag = 11 ; ats_selptrset_mac(anairiats_sum_9, tmp158, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_9, tmp158, atslab_1, env1) ; /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp158) ; return /* (tmp150) */ ; } /* end of [auxerr2_25] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxerr2_25_closure_type ; ats_void_type auxerr2_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { auxerr2_25 (((auxerr2_25_closure_type*)cloptr)->closure_env_0, ((auxerr2_25_closure_type*)cloptr)->closure_env_1, ((auxerr2_25_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr2_25_closure_init (auxerr2_25_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr2_25_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxerr2_25_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxerr2_25_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr2_25_closure_type)) ; auxerr2_25_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 9854(line=471, offs=5) -- 10169(line=487, offs=4) */ ATSstaticdec() ats_void_type auxerr3_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; __ats_lab_auxerr3_26: /* tmp160 = */ prerr_error2_loc_02168_ (env2) ; /* tmp161 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("sp1at_trdn")) ; /* tmp162 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg0) ; /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ; /* tmp165 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp166 = */ atspre_prerr_newline () ; tmp167 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp167)->tag = 11 ; ats_selptrset_mac(anairiats_sum_9, tmp167, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_9, tmp167, atslab_1, env1) ; /* tmp159 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp167) ; return /* (tmp159) */ ; } /* end of [auxerr3_26] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxerr3_26_closure_type ; ats_void_type auxerr3_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { auxerr3_26 (((auxerr3_26_closure_type*)cloptr)->closure_env_0, ((auxerr3_26_closure_type*)cloptr)->closure_env_1, ((auxerr3_26_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr3_26_closure_init (auxerr3_26_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr3_26_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxerr3_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxerr3_26_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr3_26_closure_type)) ; auxerr3_26_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 10271(line=494, offs=7) -- 10431(line=501, offs=4) */ ATSstaticdec() ats_void_type procrepeat_28 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; __ats_lab_procrepeat_28: tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_sp1at_node) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: // __ats_lab_24_1: tmp171 = ats_caselptrlab_mac(anairiats_sum_12, tmp170, atslab_2) ; /* tmp169 = */ procrepeat2_29 (tmp171, arg1) ; break ; } while (0) ; return /* (tmp169) */ ; } /* end of [procrepeat_28] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 10438(line=502, offs=7) -- 10811(line=518, offs=4) */ ATSstaticdec() ats_void_type procrepeat2_29 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; ATSlocal (ats_bool_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab_procrepeat2_29: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp177 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp173), atslab_s1arg_sym) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp177, arg1) ; if (tmp176) { tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp173), atslab_s1arg_loc) ; /* tmp178 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp179) ; /* tmp175 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ arg0 = tmp174 ; arg1 = arg1 ; goto __ats_lab_procrepeat2_29 ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: break ; } while (0) ; return /* (tmp172) */ ; } /* end of [procrepeat2_29] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 10197(line=489, offs=5) -- 11312(line=541, offs=4) */ ATSstaticdec() ats_void_type auxcheck_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp168) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab_auxcheck_27: tmp180 = sp1at_get_dups_16 (arg1) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp180 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (tmp180 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp181 = ats_caselptrlab_mac(anairiats_sum_6, tmp180, atslab_0) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (tmp181) ; /* tmp183 = */ prerr_error2_loc_02168_ (env1) ; /* tmp184 = */ atspre_prerr_string (ATSstrcst(": the static variable [")) ; /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp182) ; /* tmp186 = */ atspre_prerr_string (ATSstrcst("] is not allowed to occur repeatedly in a pattern:")) ; /* tmp187 = */ atspre_prerr_newline () ; /* tmp188 = */ procrepeat_28 (arg0, tmp182) ; tmp189 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp189)->tag = 11 ; ats_selptrset_mac(anairiats_sum_9, tmp189, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp189, atslab_1, env0) ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp189) ; break ; } while (0) ; return /* (tmp168) */ ; } /* end of [auxcheck_27] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxcheck_27_closure_type ; ats_void_type auxcheck_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { auxcheck_27 (((auxcheck_27_closure_type*)cloptr)->closure_env_0, ((auxcheck_27_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxcheck_27_closure_init (auxcheck_27_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcheck_27_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxcheck_27_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxcheck_27_closure_type *p_clo = ATS_MALLOC(sizeof(auxcheck_27_closure_type)) ; auxcheck_27_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 11344(line=543, offs=5) -- 11942(line=570, offs=4) */ ATSstaticdec() ats_ptr_type auxselect_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_bool_type, tmp196) ; __ats_lab_auxselect_30: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_29_1: tmp191 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp192 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp191) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp193)->tag != 1) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_9, tmp193, atslab_0) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_9, tmp193, atslab_1) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (arg1, tmp195) ; if (tmp196) { ats_ptrget_mac(ats_ptr_type, arg2) = tmp194 ; tmp190 = arg0 ; } else { arg0 = tmp192 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxselect_30 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: arg0 = tmp192 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxselect_30 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp190 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp190) ; } /* end of [auxselect_30] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 9015(line=429, offs=3) -- 13230(line=611, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sp1at_trdn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sp1at_trdn: tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_sp1at_loc) ; tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_sp1at_node) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: // __ats_lab_33_1: tmp198 = ats_caselptrlab_mac(anairiats_sum_12, tmp197, atslab_0) ; tmp199 = ats_caselptrlab_mac(anairiats_sum_12, tmp197, atslab_1) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_12, tmp197, atslab_2) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua (tmp198, tmp199) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp201 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_34_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_4, tmp201, atslab_0) ; ATS_FREE(tmp201) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp202)->tag != 1) { goto __ats_lab_38_0 ; } __ats_lab_35_1: tmp203 = ats_caselptrlab_mac(anairiats_sum_5, tmp202, atslab_0) ; /* ats_ptr_type tmp204 ; */ tmp204 = (ats_sum_ptr_type)0 ; tmp205 = auxselect_30 (tmp203, arg1, (&tmp204)) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (tmp205 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_6, tmp205, atslab_0) ; tmp207 = sp1at_trdn_arg_21 (arg0, arg1, tmp198, tmp199, tmp200, tmp204) ; /* tmp208 = */ auxcheck_27 (arg1, tmp138, arg0, tmp207) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con (tmp138, tmp206, tmp207) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (tmp205 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: /* tmp209 = */ auxerr1_24 (arg0, arg1, tmp138, tmp198, tmp199) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err (tmp138) ; break ; } while (0) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: /* tmp210 = */ auxerr2_25 (arg0, arg1, tmp138, tmp198, tmp199) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err (tmp138) ; break ; } while (0) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (tmp201 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: /* tmp211 = */ auxerr3_26 (arg0, arg1, tmp138, tmp198, tmp199) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err (tmp138) ; break ; } while (0) ; break ; } while (0) ; return (tmp137) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sp1at_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 13621(line=635, offs=11) -- 13968(line=643, offs=30) */ ATSstaticdec() ats_ptr_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_bool_type, tmp222) ; __ats_lab_loop_32: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp219 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp219) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun (tmp221) ; if (tmp222) { arg0 = tmp220 ; arg1 = arg1 ; goto __ats_lab_loop_32 ; // tail call } else { tmp218 = tmp219 ; } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp218 = arg1 ; break ; } while (0) ; return (tmp218) ; } /* end of [loop_32] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02166_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; __ats_lab_prerr_interror_loc_02166_: /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp237 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp238 = */ prerr_FILENAME_02164_ () ; /* tmp235 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp235) */ ; } /* end of [prerr_interror_loc_02166_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 13303(line=617, offs=5) -- 15372(line=698, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_sqid_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_bool_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; // ATSlocal_void (tmp242) ; // ATSlocal_void (tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; __ats_lab_s1exp_trup_sqid_31: tmp213 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua (arg1, arg2) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (tmp214 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_40_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_4, tmp214, atslab_0) ; ATS_FREE(tmp214) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp215)->tag != 1) { goto __ats_lab_46_0 ; } __ats_lab_41_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_5, tmp215, atslab_0) ; if (tmp216 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 13552(line=633, offs=11) -- 13577(line=633, offs=36)") ; } tmp217 = ats_caselptrlab_mac(anairiats_sum_6, tmp216, atslab_0) ; tmp223 = loop_32 (tmp216, tmp217) ; tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp223) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp223) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp225)->tag != 1) { goto __ats_lab_45_0 ; } tmp226 = ats_caselptrlab_mac(anairiats_sum_9, tmp225, atslab_0) ; if (tmp226 != (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_9, tmp225, atslab_1) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_dat (tmp227) ; if (!tmp228) { goto __ats_lab_45_1 ; } tmp229 = (ats_sum_ptr_type)0 ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp227, tmp224, tmp229) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: tmp212 = tmp224 ; break ; } while (0) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp215)->tag != 2) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_5, tmp215, atslab_0) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize (tmp230) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp (tmp213, tmp231) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp232) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp215)->tag != 0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp233 = ats_caselptrlab_mac(anairiats_sum_5, tmp215, atslab_0) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp233) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: __ats_lab_48_1: /* tmp234 = */ prerr_interror_loc_02166_ (tmp213) ; /* tmp239 = */ atspre_prerr_string (ATSstrcst(": s1exp_trup_sqid: s1e0 = ")) ; /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp (arg0) ; /* tmp241 = */ atspre_prerr_newline () ; /* tmp242 = */ atspre_prerr_string (ATSstrcst(": s1exp_trup_sqid: s2i0 = ")) ; /* tmp243 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2itm (tmp215) ; /* tmp244 = */ atspre_prerr_newline () ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (tmp214 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: /* tmp245 = */ prerr_error2_loc_02168_ (tmp213) ; /* tmp246 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_sqid")) ; /* tmp247 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg1) ; /* tmp249 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp250 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp251 = */ atspre_prerr_newline () ; tmp253 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp253)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp253, atslab_0, arg0) ; /* tmp252 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp253) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; return (tmp212) ; } /* end of [s1exp_trup_sqid_31] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 15623(line=715, offs=5) -- 16251(line=743, offs=4) */ ATSstaticdec() ats_ptr_type aux_35 (ats_ptr_type arg0, anairiats_rec_14 arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_bool_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; // ATSlocal_void (tmp265) ; // ATSlocal_void (tmp266) ; // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; __ats_lab_aux_35: tmp256 = ats_select_mac(arg1, atslab_1) ; tmp258 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp256), atslab_s2exp_srt) ; tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp258, arg2) ; if (tmp257) { tmp255 = tmp256 ; } else { tmp260 = ats_select_mac(arg1, atslab_0) ; /* tmp259 = */ prerr_error2_loc_02168_ (tmp260) ; /* tmp261 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_app_wind")) ; /* tmp262 = */ atspre_prerr_string (ATSstrcst(": the static expression is of the sort [")) ; tmp264 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp256), atslab_s2exp_srt) ; /* tmp263 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp264) ; /* tmp265 = */ atspre_prerr_string (ATSstrcst("] but it is expected to be of the sort [")) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ; /* tmp267 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp268 = */ atspre_prerr_newline () ; tmp270 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp270)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp270, atslab_0, arg0) ; /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp270) ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (arg2) ; } /* end of [if] */ return (tmp255) ; } /* end of [aux_35] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 16286(line=745, offs=5) -- 17515(line=788, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (anairiats_rec_14, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; // ATSlocal_void (tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; // ATSlocal_void (tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; // ATSlocal_void (tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; // ATSlocal_void (tmp289) ; // ATSlocal_void (tmp290) ; // ATSlocal_void (tmp291) ; // ATSlocal_void (tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; __ats_lab_auxlst_36: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_50_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp274 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp275 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp276 = aux_35 (arg0, tmp272, tmp274) ; tmp277 = auxlst_36 (arg0, tmp273, tmp275) ; tmp271 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp271, atslab_0, tmp276) ; ats_selptrset_mac(anairiats_sum_6, tmp271, atslab_1, tmp277) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp279 = ats_select_mac(tmp272, atslab_0) ; /* tmp278 = */ prerr_error2_loc_02168_ (tmp279) ; /* tmp280 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_app_wind")) ; /* tmp281 = */ atspre_prerr_string (ATSstrcst(": arity mismatch: the static argument is discarded.")) ; /* tmp282 = */ atspre_prerr_newline () ; tmp284 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp284)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp284, atslab_0, arg0) ; /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp284) ; arg0 = arg0 ; arg1 = tmp273 ; arg2 = arg2 ; goto __ats_lab_auxlst_36 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp285 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp286 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp288 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp287 = */ prerr_error2_loc_02168_ (tmp288) ; /* tmp289 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_app_wind")) ; /* tmp290 = */ atspre_prerr_string (ATSstrcst(": arity mismatch: more static arguments are needed.")) ; /* tmp291 = */ atspre_prerr_newline () ; tmp293 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp293)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp293, atslab_0, arg0) ; /* tmp292 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp293) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp285) ; tmp295 = auxlst_36 (arg0, arg1, tmp286) ; tmp271 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp271, atslab_0, tmp294) ; ats_selptrset_mac(anairiats_sum_6, tmp271, atslab_1, tmp295) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: tmp271 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp271) ; } /* end of [auxlst_36] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_39 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; __ats_lab_loop_39: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp308 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: break ; } while (0) ; return /* (tmp307) */ ; } /* end of [loop_39] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp306) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp306 = */ loop_39 (arg0) ; return /* (tmp306) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 17542(line=790, offs=5) -- 18370(line=823, offs=4) */ ATSstaticdec() ats_ptr_type loop_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_bool_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_int_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; // ATSlocal_void (tmp313) ; // ATSlocal_void (tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; __ats_lab_loop_37: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_56_1: tmp297 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp298 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun (arg1) ; if (tmp299) { if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 17738(line=803, offs=13) -- 17763(line=803, offs=38)") ; } tmp300 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp301 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; /* ats_int_type tmp302 ; */ tmp302 = 0 ; tmp303 = auxlst_36 (arg0, tmp297, tmp300) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp301, arg3, tmp303) ; arg0 = arg0 ; arg1 = tmp301 ; arg2 = tmp298 ; arg3 = tmp304 ; goto __ats_lab_loop_37 ; // tail call } else { /* tmp305 = */ list_vt_free_01499_ats_ptr_type (tmp298) ; tmp310 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp309 = */ prerr_error2_loc_02168_ (tmp310) ; /* tmp311 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_app_wind")) ; /* tmp312 = */ atspre_prerr_string (ATSstrcst(": the static term is overly applied.")) ; /* tmp313 = */ atspre_prerr_newline () ; tmp315 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp315)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp315, atslab_0, arg0) ; /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp315) ; tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (arg1) ; } /* end of [if] */ break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: tmp296 = arg3 ; break ; } while (0) ; return (tmp296) ; } /* end of [loop_37] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 15427(line=703, offs=1) -- 18453(line=827, offs=4) */ ATSstaticdec() ats_ptr_type s2exp_app_wind_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp316) ; __ats_lab_s2exp_app_wind_34: tmp316 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_s2exp_srt) ; tmp254 = loop_37 (arg0, tmp316, arg2, arg1) ; return (tmp254) ; } /* end of [s2exp_app_wind_34] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 18573(line=836, offs=5) -- 19159(line=863, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_app_unwind_40 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (anairiats_rec_14, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; __ats_lab_s1exp_app_unwind_40: tmp318 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp318)->tag != 9) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp319 = ats_caselptrlab_mac(anairiats_sum_17, tmp318, atslab_0) ; tmp320 = ats_caselptrlab_mac(anairiats_sum_17, tmp318, atslab_1) ; tmp321 = ats_caselptrlab_mac(anairiats_sum_17, tmp318, atslab_2) ; tmp322.atslab_0 = tmp320 ; tmp322.atslab_1 = tmp321 ; tmp323 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp323, atslab_0, tmp322) ; ats_selptrset_mac(anairiats_sum_16, tmp323, atslab_1, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp323 ; arg0 = tmp319 ; arg1 = arg1 ; goto __ats_lab_s1exp_app_unwind_40 ; // tail call break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp318)->tag != 0) { goto __ats_lab_66_0 ; } __ats_lab_61_1: tmp324 = ats_caselptrlab_mac(anairiats_sum_5, tmp318, atslab_0) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (tmp324) ; do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (tmp325 == (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; } __ats_lab_62_1: tmp326 = ats_caselptrlab_mac(anairiats_sum_4, tmp325, atslab_0) ; ATS_FREE(tmp325) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp326)->tag != 2) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp327 = ats_caselptrlab_mac(anairiats_sum_5, tmp326, atslab_0) ; tmp317 = s1exp_app_unwind_e1xp_41 (arg0, tmp327, arg1) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: __ats_lab_64_1: tmp317 = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: // if (tmp325 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_65_1: tmp317 = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: tmp317 = arg0 ; break ; } while (0) ; return (tmp317) ; } /* end of [s1exp_app_unwind_40] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_43 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_int_type, tmp335) ; __ats_lab_loop_43: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp333 = &ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; tmp334 = ats_ptrget_mac(ats_ptr_type, tmp333) ; tmp335 = atspre_iadd (arg1, 1) ; arg0 = tmp334 ; arg1 = tmp335 ; goto __ats_lab_loop_43 ; // tail call break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp332 = arg1 ; break ; } while (0) ; return (tmp332) ; } /* end of [loop_43] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_anairiats_rec_14 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp331) ; __ats_lab_list_vt_length_01501_anairiats_rec_14: tmp331 = loop_43 (arg0, 0) ; return (tmp331) ; } /* end of [list_vt_length_01501_anairiats_rec_14] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 19615(line=885, offs=9) -- 19683(line=885, offs=77) */ ATSstaticdec() ats_ptr_type __ats_fun_44 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp341) ; __ats_lab___ats_fun_44: tmp341 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make_s1exp (env0, arg0) ; return (tmp341) ; } /* end of [__ats_fun_44] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_44_closure_type ; ats_ptr_type __ats_fun_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_44 (((__ats_fun_44_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_44_closure_init (__ats_fun_44_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_44_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53639(line=1919, offs=6) -- 53788(line=1925, offs=6) */ ATSstaticdec() ats_ptr_type app_46 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp345) ; __ats_lab_app_46: tmp345 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp345) ; } /* end of [app_46] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53503(line=1915, offs=23) -- 53963(line=1932, offs=4) */ ATSstaticdec() ats_ptr_type list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp344) ; __ats_lab_list_map_vclo_01414_ats_ptr_type_ats_ptr_type: tmp344 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_46, arg1) ; return (tmp344) ; } /* end of [list_map_vclo_01414_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 19194(line=865, offs=5) -- 20144(line=905, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_app_unwind_e1xp_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_int_type, tmp330) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_bool_type, tmp337) ; ATSlocal (anairiats_rec_14, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (__ats_fun_44_closure_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; __ats_lab_s1exp_app_unwind_e1xp_41: tmp329 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; tmp330 = list_vt_length_01501_anairiats_rec_14 (ats_ptrget_mac(ats_ptr_type, arg2)) ; tmp336 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_e1xp_node) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp336)->tag != 10) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp337 = atspre_igt (tmp330, 0) ; if (!tmp337) { goto __ats_lab_70_1 ; } // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp338 = ats_caselptrlab_mac(anairiats_sum_16, ats_ptrget_mac(ats_ptr_type, arg2), atslab_0) ; tmp339 = ats_caselptrlab_mac(anairiats_sum_16, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp339 ; /* ats_ptr_type tmp340 ; */ tmp340 = &(tmp342) ; __ats_fun_44_closure_init (tmp340, tmp329) ; // closure initialization tmp346 = ats_select_mac(tmp338, atslab_1) ; tmp343 = list_map_vclo_01414_ats_ptr_type_ats_ptr_type (tmp346, tmp340) ; tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (tmp329, arg1, tmp329, ats_castfn_mac(ats_ptr_type, tmp343)) ; tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize (tmp347) ; tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp (tmp329, tmp348) ; tmp328 = s1exp_app_unwind_40 (tmp349, arg2) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: __ats_lab_70_1: tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize (arg1) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp (tmp329, tmp350) ; tmp328 = s1exp_app_unwind_40 (tmp351, arg2) ; break ; } while (0) ; return (tmp328) ; } /* end of [s1exp_app_unwind_e1xp_41] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 20205(line=910, offs=1) -- 20449(line=920, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_invar_47 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_bool_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; __ats_lab_s1exp_trup_invar_47: tmp354 = atspre_eq_int_int (arg0, 0) ; if (tmp354) { tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view ; } else { tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; } /* end of [if] */ tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg1, tmp353) ; tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg (arg0, tmp355) ; return (tmp352) ; } /* end of [s1exp_trup_invar_47] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 20705(line=933, offs=1) -- 20892(line=940, offs=4) */ ATSstaticdec() ats_bool_type s1exp_is_underscore_48 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_bool_type, tmp359) ; __ats_lab_s1exp_is_underscore_48: tmp357 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp357)->tag != 0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp358 = ats_caselptrlab_mac(anairiats_sum_5, tmp357, atslab_0) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp358, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ; if (tmp359) { tmp356 = ats_true_bool ; } else { tmp356 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: __ats_lab_72_1: tmp356 = ats_false_bool ; break ; } while (0) ; return (tmp356) ; } /* end of [s1exp_is_underscore_48] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 20930(line=943, offs=1) -- 21103(line=950, offs=4) */ ATSstaticdec() ats_int_type s1exp_test_top_underscore_49 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_int_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_bool_type, tmp364) ; __ats_lab_s1exp_test_top_underscore_49: tmp361 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ; do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp361)->tag != 12) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp362 = ats_caselptrlab_mac(anairiats_sum_19, tmp361, atslab_0) ; tmp363 = ats_caselptrlab_mac(anairiats_sum_19, tmp361, atslab_1) ; tmp364 = s1exp_is_underscore_48 (tmp363) ; if (tmp364) { tmp360 = tmp362 ; } else { tmp360 = -1 ; } /* end of [if] */ break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: __ats_lab_74_1: tmp360 = -1 ; break ; } while (0) ; return (tmp360) ; } /* end of [s1exp_test_top_underscore_49] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 21145(line=952, offs=5) -- 21249(line=956, offs=2) */ ATSstaticdec() ats_ptr_type s1exp_untop_if_50 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; __ats_lab_s1exp_untop_if_50: tmp366 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ; do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp366)->tag != 12) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp367 = ats_caselptrlab_mac(anairiats_sum_19, tmp366, atslab_1) ; tmp365 = tmp367 ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: __ats_lab_76_1: tmp365 = arg0 ; break ; } while (0) ; return (tmp365) ; } /* end of [s1exp_untop_if_50] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 21282(line=958, offs=5) -- 21689(line=975, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trans_syn_arg2_51 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_bool_type, tmp369) ; ATSlocal (ats_int_type, tmp370) ; ATSlocal (ats_bool_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; __ats_lab_s1exp_trans_syn_arg2_51: tmp369 = s1exp_is_underscore_48 (arg1) ; if (tmp369) { tmp368 = s1exp_untop_if_50 (arg0) ; } else { tmp370 = s1exp_test_top_underscore_49 (arg1) ; tmp371 = atspre_gte_int_int (tmp370, 0) ; if (tmp371) { tmp372 = s1exp_untop_if_50 (arg0) ; tmp373 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp372), atslab_s1exp_loc) ; tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top (tmp373, tmp370, tmp372) ; } else { tmp368 = arg1 ; } /* end of [if] */ } /* end of [if] */ return (tmp368) ; } /* end of [s1exp_trans_syn_arg2_51] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 21772(line=981, offs=3) -- 22929(line=1025, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_int_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_int_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; // ATSlocal_void (tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; // ATSlocal_void (tmp388) ; // ATSlocal_void (tmp389) ; // ATSlocal_void (tmp390) ; // ATSlocal_void (tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg: tmp375 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ; do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp375)->tag != 14) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp376 = ats_caselptrlab_mac(anairiats_sum_19, tmp375, atslab_0) ; tmp377 = ats_caselptrlab_mac(anairiats_sum_19, tmp375, atslab_1) ; tmp378 = ATS_MALLOC(sizeof(anairiats_sum_20)) ; ((ats_sum_ptr_type)tmp378)->tag = 1 ; ats_selptrset_mac(anairiats_sum_20, tmp378, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_20, tmp378, atslab_1, tmp376) ; ats_selptrset_mac(anairiats_sum_20, tmp378, atslab_2, tmp377) ; ats_selptrset_mac(anairiats_sum_20, tmp378, atslab_3, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp378 ; tmp374 = s1exp_trup_invar_47 (tmp376, tmp377) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp375)->tag != 15) { goto __ats_lab_81_0 ; } __ats_lab_78_1: tmp379 = ats_caselptrlab_mac(anairiats_sum_9, tmp375, atslab_0) ; tmp380 = ats_caselptrlab_mac(anairiats_sum_9, tmp375, atslab_1) ; tmp381 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp379), atslab_s1exp_node) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp381)->tag != 14) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_19, tmp381, atslab_0) ; tmp383 = ats_caselptrlab_mac(anairiats_sum_19, tmp381, atslab_1) ; tmp384 = s1exp_trans_syn_arg2_51 (tmp383, tmp380) ; tmp385 = ATS_MALLOC(sizeof(anairiats_sum_20)) ; ((ats_sum_ptr_type)tmp385)->tag = 1 ; ats_selptrset_mac(anairiats_sum_20, tmp385, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_20, tmp385, atslab_1, tmp382) ; ats_selptrset_mac(anairiats_sum_20, tmp385, atslab_2, tmp384) ; ats_selptrset_mac(anairiats_sum_20, tmp385, atslab_3, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp385 ; tmp374 = s1exp_trup_invar_47 (tmp382, tmp383) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: __ats_lab_80_1: tmp387 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp379), atslab_s1exp_loc) ; /* tmp386 = */ prerr_error2_loc_02168_ (tmp387) ; /* tmp388 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_arg")) ; /* tmp389 = */ atspre_prerr_string (ATSstrcst(": a refval-type must begin with !(call-by-value) or &(call-by-reference)")) ; /* tmp390 = */ atspre_prerr_newline () ; tmp392 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp392)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp392, atslab_0, arg0) ; /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp392) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: __ats_lab_81_1: tmp393 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp393)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp393, atslab_0, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp393 ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ; break ; } while (0) ; return (tmp374) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 23040(line=1033, offs=5) -- 23930(line=1070, offs=4) */ ATSstaticdec() ats_ptr_type auxwth_54 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_int_type, tmp396) ; ATSlocal (ats_int_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_bool_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_bool_type, tmp405) ; ATSlocal (ats_bool_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; __ats_lab_auxwth_54: do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp396 = ats_caselptrlab_mac(anairiats_sum_20, arg0, atslab_0) ; tmp397 = ats_caselptrlab_mac(anairiats_sum_20, arg0, atslab_1) ; tmp398 = ats_caselptrlab_mac(anairiats_sum_20, arg0, atslab_2) ; tmp399 = ats_caselptrlab_mac(anairiats_sum_20, arg0, atslab_3) ; tmp401 = atspre_eq_int_int (tmp397, 0) ; if (tmp401) { tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view ; } else { tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; } /* end of [if] */ tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp398, tmp400) ; tmp403 = auxwth_54 (tmp399) ; tmp404 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp402) ; tmp406 = atspre_eq_int_int (tmp396, 0) ; if (tmp406) { tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_nonvar (tmp404) ; } else { tmp405 = ats_false_bool ; } /* end of [if] */ if (tmp405) { tmp395 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ((ats_sum_ptr_type)tmp395)->tag = 2 ; ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_0, tmp397) ; ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_1, tmp404) ; ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_2, tmp403) ; } else { tmp395 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ((ats_sum_ptr_type)tmp395)->tag = 3 ; ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_0, tmp397) ; ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_1, tmp404) ; ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_2, tmp403) ; } /* end of [if] */ break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp407 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp408 = auxwth_54 (tmp407) ; tmp395 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp395)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp395, atslab_0, tmp408) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_84_1: tmp395 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; break ; } while (0) ; return (tmp395) ; } /* end of [auxwth_54] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 23956(line=1072, offs=5) -- 24518(line=1096, offs=4) */ ATSstaticdec() ats_ptr_type auxres_55 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_int_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; // ATSlocal_void (tmp414) ; // ATSlocal_void (tmp415) ; ATSlocal (anairiats_rec_1, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; // ATSlocal_void (tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; __ats_lab_auxres_55: tmp410 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ; do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp410)->tag != 21) { goto __ats_lab_86_0 ; } tmp411 = ats_caselptrlab_mac(anairiats_sum_21, tmp410, atslab_0) ; if (tmp411 != 1) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp412 = ats_caselptrlab_mac(anairiats_sum_21, tmp410, atslab_1) ; tmp413 = ats_caselptrlab_mac(anairiats_sum_21, tmp410, atslab_2) ; /* tmp414 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp415 = ats_selsin_mac(tmp414, atslab_1) */ ; tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp412) ; tmp417 = auxres_55 (tmp413, arg1) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp419 = ats_select_mac(tmp416, atslab_s2qua_svs) ; tmp420 = ats_select_mac(tmp416, atslab_s2qua_sps) ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi (tmp419, tmp420, tmp417) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: __ats_lab_86_1: tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (arg0) ; tmp422 = auxwth_54 (arg1) ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype (tmp421, tmp422) ; break ; } while (0) ; return (tmp409) ; } /* end of [auxres_55] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 23013(line=1031, offs=3) -- 24657(line=1104, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_bool_type, tmp423) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred: tmp423 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none (arg1) ; if (tmp423) { tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (arg0) ; } else { tmp394 = auxres_55 (arg0, arg1) ; } /* end of [if] */ return (tmp394) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 24972(line=1123, offs=5) -- 25353(line=1134, offs=6) */ ATSstaticdec() ats_void_type auxerr1_57 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp425) ; // ATSlocal_void (tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; // ATSlocal_void (tmp428) ; // ATSlocal_void (tmp429) ; // ATSlocal_void (tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; __ats_lab_auxerr1_57: do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_88_0 ; } __ats_lab_87_1: break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_88_1: tmp427 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp426 = */ prerr_error2_loc_02168_ (tmp427) ; /* tmp428 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_arrow")) ; /* tmp429 = */ atspre_prerr_string (ATSstrcst(": illegal static application.")) ; /* tmp430 = */ atspre_prerr_newline () ; tmp431 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp431)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp431, atslab_0, arg0) ; /* tmp425 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp431) ; break ; } while (0) ; return /* (tmp425) */ ; } /* end of [auxerr1_57] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_60 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; __ats_lab_loop_60: do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp436 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp436 ; goto __ats_lab_loop_60 ; // tail call break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: break ; } while (0) ; return /* (tmp435) */ ; } /* end of [loop_60] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_anairiats_rec_14 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp434) ; __ats_lab_list_vt_free_01499_anairiats_rec_14: /* tmp434 = */ loop_60 (arg0) ; return /* (tmp434) */ ; } /* end of [list_vt_free_01499_anairiats_rec_14] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 25402(line=1136, offs=5) -- 25885(line=1158, offs=4) */ ATSstaticdec() ats_void_type auxerr2_58 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp432) ; // ATSlocal_void (tmp433) ; // ATSlocal_void (tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; // ATSlocal_void (tmp439) ; // ATSlocal_void (tmp440) ; // ATSlocal_void (tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; __ats_lab_auxerr2_58: do { /* branch: __ats_lab_89 */ __ats_lab_89_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_92_0 ; } __ats_lab_89_1: /* tmp433 = */ list_vt_free_01499_anairiats_rec_14 (arg1) ; tmp438 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp437 = */ prerr_error2_loc_02168_ (tmp438) ; /* tmp439 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_arrow")) ; /* tmp440 = */ atspre_prerr_string (ATSstrcst(": illegal static application.")) ; /* tmp441 = */ atspre_prerr_newline () ; tmp442 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp442)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp442, atslab_0, arg0) ; /* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp442) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: break ; } while (0) ; return /* (tmp432) */ ; } /* end of [auxerr2_58] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 25913(line=1160, offs=5) -- 26301(line=1175, offs=4) */ ATSstaticdec() ats_ptr_type auxerr3_61 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp443) ; // ATSlocal_void (tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; // ATSlocal_void (tmp446) ; // ATSlocal_void (tmp447) ; // ATSlocal_void (tmp448) ; // ATSlocal_void (tmp449) ; // ATSlocal_void (tmp450) ; // ATSlocal_void (tmp451) ; // ATSlocal_void (tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; __ats_lab_auxerr3_61: tmp445 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1exp_loc) ; /* tmp444 = */ prerr_error2_loc_02168_ (tmp445) ; /* tmp446 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_arrow")) ; /* tmp447 = */ atspre_prerr_string (ATSstrcst(": the static expression needs to be impredicative")) ; /* tmp448 = */ atspre_prerr_string (ATSstrcst(" but is assigned the sort [")) ; /* tmp449 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ; /* tmp450 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp451 = */ atspre_prerr_newline () ; tmp453 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp453)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp453, atslab_0, arg0) ; /* tmp452 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp453) ; tmp443 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; return (tmp443) ; } /* end of [auxerr3_61] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26909(line=1197, offs=7) -- 27961(line=1232, offs=10) */ ATSstaticdec() ats_ptr_type aux_62 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_int_type, tmp477) ; ATSlocal (ats_int_type, tmp478) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_bool_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_bool_type, tmp484) ; ATSlocal (ats_bool_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; __ats_lab_aux_62: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp472 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_96_1: tmp473 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp474 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp475 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg (tmp473, arg1) ; tmp476 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp475), atslab_s2exp_srt) ; /* ats_int_type tmp477 ; */ tmp477 = 0 ; /* ats_int_type tmp478 ; */ tmp478 = 0 ; do { /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp476)->tag != 0) { goto __ats_lab_100_0 ; } __ats_lab_97_1: tmp480 = ats_caselptrlab_mac(anairiats_sum_5, tmp476, atslab_0) ; do { /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp480)->tag != 1) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp481 = ats_caselptrlab_mac(anairiats_sum_19, tmp480, atslab_1) ; tmp477 = 1 ; tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp481, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES) ; if (tmp482) { tmp478 = 1 ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: __ats_lab_99_1: break ; } while (0) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: __ats_lab_100_1: break ; } while (0) ; tmp484 = atspre_gt_int_int (tmp477, 0) ; if (tmp484) { tmp485 = atspre_gt_int_int (tmp478, 0) ; if (tmp485) { tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg (tmp475) ; } else { tmp483 = tmp475 ; } /* end of [if] */ } else { tmp483 = auxerr3_61 (env0, tmp473, tmp476) ; } /* end of [if] */ tmp486 = aux_62 (env0, tmp474, arg1) ; tmp472 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp472, atslab_0, tmp483) ; ats_selptrset_mac(anairiats_sum_6, tmp472, atslab_1, tmp486) ; break ; } while (0) ; return (tmp472) ; } /* end of [aux_62] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_62_closure_type ; ats_ptr_type aux_62_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return aux_62 (((aux_62_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_62_closure_init (aux_62_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_62_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_62_closure_make (ats_ptr_type env0) { aux_62_closure_type *p_clo = ATS_MALLOC(sizeof(aux_62_closure_type)) ; aux_62_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 24718(line=1109, offs=1) -- 28754(line=1270, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_arrow_56 (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2, ats_bool_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp424) ; // ATSlocal_void (tmp454) ; ATSlocal (anairiats_rec_14, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; // ATSlocal_void (tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_int_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_bool_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_int_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; __ats_lab_s1exp_trup_arrow_56: /* tmp454 = */ auxerr1_57 (arg0, arg5) ; if (arg5 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26389(line=1178, offs=5) -- 26414(line=1178, offs=30)") ; } tmp455 = ats_caselptrlab_mac(anairiats_sum_16, arg5, atslab_0) ; tmp456 = ats_caselptrlab_mac(anairiats_sum_16, arg5, atslab_1) ; ATS_FREE(arg5) ; /* tmp457 = */ auxerr2_58 (arg0, tmp456) ; tmp458 = ats_select_mac(tmp455, atslab_1) ; if (tmp458 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26519(line=1181, offs=5) -- 26554(line=1181, offs=40)") ; } tmp459 = ats_caselptrlab_mac(anairiats_sum_6, tmp458, atslab_1) ; if (tmp459 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26519(line=1181, offs=5) -- 26554(line=1181, offs=40)") ; } tmp460 = ats_caselptrlab_mac(anairiats_sum_6, tmp459, atslab_1) ; if (tmp460 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26519(line=1181, offs=5) -- 26554(line=1181, offs=40)") ; } tmp461 = ats_caselptrlab_mac(anairiats_sum_6, tmp458, atslab_0) ; tmp462 = ats_caselptrlab_mac(anairiats_sum_6, tmp459, atslab_0) ; /* ats_int_type tmp463 ; */ tmp463 = -1 ; /* ats_ptr_type tmp464 ; */ tmp464 = (ats_sum_ptr_type)0 ; tmp466 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp461), atslab_s1exp_node) ; do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp466)->tag != 13) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp467 = ats_caselptrlab_mac(anairiats_sum_19, tmp466, atslab_0) ; tmp468 = ats_caselptrlab_mac(anairiats_sum_19, tmp466, atslab_1) ; tmp463 = tmp467 ; tmp464 = tmp468 ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: __ats_lab_94_1: tmp470 = (ats_sum_ptr_type)0 ; tmp469 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp469, atslab_0, tmp461) ; ats_selptrset_mac(anairiats_sum_6, tmp469, atslab_1, tmp470) ; tmp464 = tmp469 ; break ; } while (0) ; /* ats_ptr_type tmp471 ; */ tmp471 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ; tmp487 = aux_62 (arg0, tmp464, (&tmp471)) ; tmp488 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_reverse (tmp471) ; tmp471 = tmp488 ; tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred (tmp462, tmp471) ; tmp490 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp489), atslab_s2exp_srt) ; tmp491 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; if (arg3) { tmp492 = arg3 ; } else { tmp492 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp490) ; } /* end of [if] */ do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp494 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp493 = tmp494 ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_102_1: tmp493 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp495 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc (tmp491, tmp492, arg2, tmp493) ; if (arg2) { tmp496 = 1 ; } else { tmp496 = 0 ; } /* end of [if] */ do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp498 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ; tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr (tmp498) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_104_1: if (tmp492) { tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ; } else { tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ; } /* end of [if] */ break ; } while (0) ; tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (tmp495, tmp493, tmp496, tmp497, tmp463, tmp487, tmp489) ; return (tmp424) ; } /* end of [s1exp_trup_arrow_56] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 28920(line=1281, offs=5) -- 29283(line=1295, offs=2) */ ATSstaticdec() ats_void_type auxerr1_64 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp500) ; // ATSlocal_void (tmp501) ; // ATSlocal_void (tmp502) ; // ATSlocal_void (tmp503) ; // ATSlocal_void (tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_bool_type, tmp506) ; // ATSlocal_void (tmp507) ; // ATSlocal_void (tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; __ats_lab_auxerr1_64: /* tmp501 = */ prerr_error2_loc_02168_ (arg1) ; /* tmp502 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_app")) ; /* tmp503 = */ atspre_prerr_string (ATSstrcst(": the static application needs ")) ; tmp506 = atspre_gt_int_int (arg2, 0) ; if (tmp506) { tmp505 = ATSstrcst("more") ; } else { tmp505 = ATSstrcst("fewer") ; } /* end of [if] */ /* tmp504 = */ atspre_prerr_string (tmp505) ; /* tmp507 = */ atspre_prerr_string (ATSstrcst(" arguments.")) ; /* tmp508 = */ atspre_prerr_newline () ; tmp509 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp509)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp509, atslab_0, arg0) ; /* tmp500 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp509) ; return /* (tmp500) */ ; } /* end of [auxerr1_64] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 29314(line=1297, offs=5) -- 29703(line=1310, offs=2) */ ATSstaticdec() ats_void_type auxerr2_65 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp510) ; // ATSlocal_void (tmp511) ; // ATSlocal_void (tmp512) ; // ATSlocal_void (tmp513) ; // ATSlocal_void (tmp514) ; // ATSlocal_void (tmp515) ; // ATSlocal_void (tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; // ATSlocal_void (tmp518) ; // ATSlocal_void (tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; __ats_lab_auxerr2_65: /* tmp511 = */ prerr_error2_loc_02168_ (arg1) ; /* tmp512 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_app")) ; /* tmp513 = */ atspre_prerr_string (ATSstrcst(": the static expression [")) ; /* tmp514 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ; /* tmp515 = */ atspre_prerr_string (ATSstrcst("] is expected to be of a functional sort but it is assigned the sort [")) ; tmp517 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg2), atslab_s2exp_srt) ; /* tmp516 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp517) ; /* tmp518 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp519 = */ atspre_prerr_newline () ; tmp520 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp520)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp520, atslab_0, arg0) ; /* tmp510 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp520) ; return /* (tmp510) */ ; } /* end of [auxerr2_65] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 29734(line=1313, offs=1) -- 30757(line=1344, offs=4) */ ATSstaticdec() ats_ptr_type loop_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (anairiats_rec_14, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_bool_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_int_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_bool_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; // ATSlocal_void (tmp533) ; // ATSlocal_void (tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; // ATSlocal_void (tmp537) ; // ATSlocal_void (tmp538) ; __ats_lab_loop_66: do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_105_1: tmp522 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_0) ; tmp523 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_1) ; ATS_FREE(arg3) ; tmp524 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg2), atslab_s2exp_srt) ; tmp525 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun (tmp524) ; if (tmp525) { if (((ats_sum_ptr_type)tmp524)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 29975(line=1322, offs=13) -- 30011(line=1322, offs=49)") ; } tmp526 = ats_caselptrlab_mac(anairiats_sum_9, tmp524, atslab_0) ; tmp527 = ats_caselptrlab_mac(anairiats_sum_9, tmp524, atslab_1) ; /* ats_int_type tmp528 ; */ tmp528 = 0 ; tmp530 = ats_select_mac(tmp522, atslab_1) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err (tmp530, tmp526, (&tmp528)) ; do { /* branch: __ats_lab_106 */ __ats_lab_106_0: __ats_lab_106_1: tmp531 = atspre_eq_int_int (tmp528, 0) ; if (!tmp531) { goto __ats_lab_107_1 ; } tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp527, arg2, tmp529) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp532 ; arg3 = tmp523 ; goto __ats_lab_loop_66 ; // tail call break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: __ats_lab_107_1: /* tmp533 = */ list_vt_free_01499_anairiats_rec_14 (tmp523) ; tmp536 = ats_select_mac(tmp522, atslab_0) ; tmp535 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (arg1, tmp536) ; /* tmp534 = */ auxerr1_64 (arg0, tmp535, tmp528) ; tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp527) ; break ; } while (0) ; } else { /* tmp537 = */ list_vt_free_01499_anairiats_rec_14 (tmp523) ; /* tmp538 = */ auxerr2_65 (arg0, arg1, arg2) ; tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp524) ; } /* end of [if] */ break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp521 = arg2 ; break ; } while (0) ; return (tmp521) ; } /* end of [loop_66] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 28810(line=1275, offs=1) -- 30827(line=1348, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_app_63 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp539) ; __ats_lab_s1exp_trup_app_63: tmp539 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1exp_loc) ; tmp499 = loop_66 (arg0, tmp539, arg2, arg3) ; return (tmp499) ; } /* end of [s1exp_trup_app_63] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 31000(line=1359, offs=5) -- 31337(line=1375, offs=4) */ ATSstaticdec() ats_int_type auxck1_68 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp541) ; ATSlocal (anairiats_rec_14, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; // ATSlocal_void (tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; // ATSlocal_void (tmp546) ; // ATSlocal_void (tmp547) ; ATSlocal (ats_int_type, tmp548) ; __ats_lab_auxck1_68: do { /* branch: __ats_lab_109 */ __ats_lab_109_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp542 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_0) ; tmp543 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp545 = ats_select_mac(tmp542, atslab_0) ; /* tmp544 = */ prerr_error2_loc_02168_ (tmp545) ; /* tmp546 = */ atspre_prerr_string (ATSstrcst(": overly supplied static argument group.")) ; /* tmp547 = */ atspre_prerr_newline () ; tmp548 = auxck1_68 (arg0, arg1, tmp543) ; tmp541 = atspre_add_int_int (tmp548, 1) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_110_1: tmp541 = 0 ; break ; } while (0) ; return (tmp541) ; } /* end of [auxck1_68] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_71 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp552) ; ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_int_type, tmp554) ; __ats_lab_loop_71: do { /* branch: __ats_lab_111 */ __ats_lab_111_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp553 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp554 = atspre_isucc (arg1) ; arg0 = tmp553 ; arg1 = tmp554 ; goto __ats_lab_loop_71 ; // tail call break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_112_1: tmp552 = arg1 ; break ; } while (0) ; return (tmp552) ; } /* end of [loop_71] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp551) ; __ats_lab_list_length_01410_ats_ptr_type: tmp551 = loop_71 (arg0, 0) ; return (tmp551) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 31364(line=1377, offs=5) -- 31922(line=1398, offs=4) */ ATSstaticdec() ats_void_type auxck2_69 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp549) ; ATSlocal (ats_int_type, tmp550) ; ATSlocal (ats_int_type, tmp555) ; ATSlocal (ats_int_type, tmp556) ; ATSlocal (ats_bool_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; // ATSlocal_void (tmp559) ; // ATSlocal_void (tmp560) ; // ATSlocal_void (tmp561) ; // ATSlocal_void (tmp562) ; ATSlocal (ats_bool_type, tmp563) ; // ATSlocal_void (tmp564) ; ATSlocal (ats_bool_type, tmp565) ; // ATSlocal_void (tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; __ats_lab_auxck2_69: tmp550 = list_length_01410_ats_ptr_type (arg2) ; tmp555 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full (arg1) ; tmp556 = atspre_sub_int_int (tmp550, tmp555) ; tmp557 = atspre_neq_int_int (tmp556, 0) ; if (tmp557) { tmp558 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp559 = */ prerr_error2_loc_02168_ (tmp558) ; /* tmp560 = */ atspre_prerr_string (ATSstrcst(": the type constructor [")) ; /* tmp561 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con (arg1) ; tmp563 = atspre_lt_int_int (tmp556, 0) ; if (tmp563) { /* tmp562 = */ atspre_prerr_string (ATSstrcst("] expects more arguments.")) ; } else { /* empty */ } /* end of [if] */ tmp565 = atspre_gt_int_int (tmp556, 0) ; if (tmp565) { /* tmp564 = */ atspre_prerr_string (ATSstrcst("] expects fewer arguments.")) ; } else { /* empty */ } /* end of [if] */ /* tmp566 = */ atspre_prerr_newline () ; tmp567 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp567)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp567, atslab_0, arg0) ; /* tmp549 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp567) ; } else { /* empty */ } /* end of [if] */ return /* (tmp549) */ ; } /* end of [auxck2_69] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 30881(line=1352, offs=5) -- 32398(line=1422, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_app_datcontyp_67 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (anairiats_rec_14, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; ATSlocal (ats_int_type, tmp571) ; // ATSlocal_void (tmp572) ; ATSlocal (ats_bool_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; // ATSlocal_void (tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; __ats_lab_s1exp_trup_app_datcontyp_67: do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp569 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_0) ; tmp570 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_1) ; ATS_FREE(arg3) ; tmp571 = auxck1_68 (arg0, arg2, tmp570) ; tmp573 = atspre_gt_int_int (tmp571, 0) ; if (tmp573) { tmp574 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp574)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp574, atslab_0, arg0) ; /* tmp572 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp574) ; } else { /* empty */ } /* end of [if] */ tmp568 = ats_select_mac(tmp569, atslab_1) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: tmp568 = (ats_sum_ptr_type)0 ; break ; } while (0) ; /* tmp575 = */ auxck2_69 (arg0, arg2, tmp568) ; tmp576 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred (tmp568) ; tmp540 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp (arg2, tmp576) ; return (tmp540) ; } /* end of [s1exp_trup_app_datcontyp_67] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 32581(line=1433, offs=5) -- 32918(line=1449, offs=4) */ ATSstaticdec() ats_int_type auxck1_73 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp578) ; ATSlocal (anairiats_rec_14, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; // ATSlocal_void (tmp581) ; ATSlocal (ats_ptr_type, tmp582) ; // ATSlocal_void (tmp583) ; // ATSlocal_void (tmp584) ; ATSlocal (ats_int_type, tmp585) ; __ats_lab_auxck1_73: do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp579 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_0) ; tmp580 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp582 = ats_select_mac(tmp579, atslab_0) ; /* tmp581 = */ prerr_error2_loc_02168_ (tmp582) ; /* tmp583 = */ atspre_prerr_string (ATSstrcst(": overly supplied static argument group.")) ; /* tmp584 = */ atspre_prerr_newline () ; tmp585 = auxck1_73 (arg0, arg1, tmp580) ; tmp578 = atspre_add_int_int (tmp585, 1) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: tmp578 = 0 ; break ; } while (0) ; return (tmp578) ; } /* end of [auxck1_73] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 32945(line=1451, offs=5) -- 33515(line=1472, offs=4) */ ATSstaticdec() ats_void_type auxck2_74 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp586) ; ATSlocal (ats_int_type, tmp587) ; ATSlocal (ats_int_type, tmp588) ; ATSlocal (ats_int_type, tmp589) ; ATSlocal (ats_int_type, tmp590) ; ATSlocal (ats_bool_type, tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; // ATSlocal_void (tmp593) ; // ATSlocal_void (tmp594) ; // ATSlocal_void (tmp595) ; // ATSlocal_void (tmp596) ; ATSlocal (ats_bool_type, tmp597) ; // ATSlocal_void (tmp598) ; ATSlocal (ats_bool_type, tmp599) ; // ATSlocal_void (tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; __ats_lab_auxck2_74: tmp587 = list_length_01410_ats_ptr_type (arg2) ; tmp588 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full (arg1) ; tmp590 = atspre_add_int_int (1, tmp588) ; tmp589 = atspre_sub_int_int (tmp587, tmp590) ; tmp591 = atspre_neq_int_int (tmp589, 0) ; if (tmp591) { tmp592 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp593 = */ prerr_error2_loc_02168_ (tmp592) ; /* tmp594 = */ atspre_prerr_string (ATSstrcst(": the type constructor [")) ; /* tmp595 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con (arg1) ; tmp597 = atspre_lt_int_int (tmp589, 0) ; if (tmp597) { /* tmp596 = */ atspre_prerr_string (ATSstrcst("] expects more arguments.")) ; } else { /* empty */ } /* end of [if] */ tmp599 = atspre_gt_int_int (tmp589, 0) ; if (tmp599) { /* tmp598 = */ atspre_prerr_string (ATSstrcst("] expects fewer arguments.")) ; } else { /* empty */ } /* end of [if] */ /* tmp600 = */ atspre_prerr_newline () ; tmp601 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp601)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp601, atslab_0, arg0) ; /* tmp586 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp601) ; } else { /* empty */ } /* end of [if] */ return /* (tmp586) */ ; } /* end of [auxck2_74] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 32462(line=1426, offs=5) -- 34027(line=1497, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_app_datconptr_72 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (anairiats_rec_14, tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_int_type, tmp605) ; // ATSlocal_void (tmp606) ; ATSlocal (ats_bool_type, tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; // ATSlocal_void (tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; __ats_lab_s1exp_trup_app_datconptr_72: do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp603 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_0) ; tmp604 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_1) ; ATS_FREE(arg3) ; tmp605 = auxck1_73 (arg0, arg2, tmp604) ; tmp607 = atspre_gt_int_int (tmp605, 0) ; if (tmp607) { tmp608 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp608)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp608, atslab_0, arg0) ; /* tmp606 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp608) ; } else { /* empty */ } /* end of [if] */ tmp602 = ats_select_mac(tmp603, atslab_1) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_118_1: tmp602 = (ats_sum_ptr_type)0 ; break ; } while (0) ; /* tmp609 = */ auxck2_74 (arg0, arg2, tmp602) ; tmp610 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr (tmp602) ; if (tmp610 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 33954(line=1493, offs=5) -- 33982(line=1493, offs=33)") ; } tmp611 = ats_caselptrlab_mac(anairiats_sum_6, tmp610, atslab_0) ; tmp612 = ats_caselptrlab_mac(anairiats_sum_6, tmp610, atslab_1) ; tmp577 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr (arg2, tmp611, tmp612) ; return (tmp577) ; } /* end of [s1exp_trup_app_datconptr_72] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 34088(line=1502, offs=1) -- 35046(line=1542, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_app_sqid_75 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; ATSlocal (ats_ptr_type, tmp617) ; ATSlocal (ats_ptr_type, tmp618) ; // ATSlocal_void (tmp619) ; // ATSlocal_void (tmp620) ; ATSlocal (ats_ptr_type, tmp621) ; // ATSlocal_void (tmp622) ; // ATSlocal_void (tmp623) ; // ATSlocal_void (tmp624) ; // ATSlocal_void (tmp625) ; // ATSlocal_void (tmp626) ; // ATSlocal_void (tmp627) ; __ats_lab_s1exp_trup_app_sqid_75: tmp614 = staspecid_of_sqid_1 (arg2, arg3) ; do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp614)->tag != 0) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp615 = (ats_sum_ptr_type)0 ; tmp616 = (ats_sum_ptr_type)0 ; tmp613 = s1exp_trup_arrow_56 (arg0, tmp615, ats_false_bool, ats_false_bool, tmp616, arg4) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: __ats_lab_120_1: tmp617 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua (arg2, arg3) ; do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (tmp617 == (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp618 = ats_caselptrlab_mac(anairiats_sum_4, tmp617, atslab_0) ; ATS_FREE(tmp617) ; tmp613 = s1exp_trup_app_sqid_itm_76 (arg0, arg1, arg2, arg3, tmp618, arg4) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: // if (tmp617 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_122_1: /* tmp619 = */ list_vt_free_01499_anairiats_rec_14 (arg4) ; tmp621 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1exp_loc) ; /* tmp620 = */ prerr_error2_loc_02168_ (tmp621) ; /* tmp622 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_app_sqid")) ; /* tmp623 = */ atspre_prerr_string (ATSstrcst(": unrecognized static identifier [")) ; /* tmp624 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg2) ; /* tmp625 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ; /* tmp626 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp627 = */ atspre_prerr_newline () ; tmp613 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; break ; } while (0) ; return (tmp613) ; } /* end of [s1exp_trup_app_sqid_75] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_80 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; ATSlocal (ats_ptr_type, tmp636) ; ATSlocal (anairiats_rec_14, tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; ATSlocal (ats_ptr_type, tmp639) ; ATSlocal (ats_ptr_type, tmp640) ; __ats_lab_loop_80: do { /* branch: __ats_lab_124 */ __ats_lab_124_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp635 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp636 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp637 = ((anairiats_rec_14(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp635, arg3) ; tmp638 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp638, atslab_0, tmp637) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp638 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp639 = &ats_caselptrlab_mac(anairiats_sum_16, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp636 ; arg1 = arg1 ; arg2 = tmp639 ; arg3 = arg3 ; goto __ats_lab_loop_80 ; // tail call break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_125_1: tmp640 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp640 ; break ; } while (0) ; return /* (tmp634) */ ; } /* end of [loop_80] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp633) ; ATSlocal (ats_ptr_type, tmp641) ; // ATSlocal_void (tmp642) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_anairiats_rec_14: /* ats_ptr_type tmp641 ; */ /* tmp642 = */ loop_80 (arg0, arg1, (&tmp641), arg2) ; tmp633 = tmp641 ; return (tmp633) ; } /* end of [list_map_funenv_01412_ats_ptr_type_anairiats_rec_14] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_14 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp632) ; __ats_lab_list_map_fun_01413_ats_ptr_type_anairiats_rec_14: tmp632 = list_map_funenv_01412_ats_ptr_type_anairiats_rec_14 (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp632) ; } /* end of [list_map_fun_01413_ats_ptr_type_anairiats_rec_14] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 35596(line=1569, offs=35) -- 35640(line=1569, offs=79) */ ATSstaticdec() anairiats_rec_14 __ats_fun_81 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_14, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; ATSlocal (ats_ptr_type, tmp646) ; __ats_lab___ats_fun_81: tmp645 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; tmp646 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ; tmp644.atslab_0 = tmp645 ; tmp644.atslab_1 = tmp646 ; return (tmp644) ; } /* end of [__ats_fun_81] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 35540(line=1568, offs=11) -- 35649(line=1570, offs=8) */ ATSstaticdec() ats_ptr_type f_77 (anairiats_rec_14 arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp630) ; ATSlocal (ats_ptr_type, tmp631) ; ATSlocal (ats_ptr_type, tmp643) ; __ats_lab_f_77: tmp643 = ats_select_mac(arg0, atslab_1) ; tmp631 = list_map_fun_01413_ats_ptr_type_anairiats_rec_14 (tmp643, &__ats_fun_81) ; tmp630 = ats_castfn_mac(ats_ptr_type, tmp631) ; return (tmp630) ; } /* end of [f_77] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_84 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp650) ; ATSlocal (anairiats_rec_14, tmp651) ; ATSlocal (ats_ptr_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; __ats_lab_loop_84: do { /* branch: __ats_lab_126 */ __ats_lab_126_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp651 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ; tmp652 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; tmp653 = ((ats_ptr_type(*)(anairiats_rec_14, ats_ptr_type))arg1) (tmp651, arg3) ; tmp654 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp654, atslab_0, tmp653) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp654 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp655 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp652 ; arg1 = arg1 ; arg2 = tmp655 ; arg3 = arg3 ; goto __ats_lab_loop_84 ; // tail call break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_127_1: tmp656 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp656 ; break ; } while (0) ; return /* (tmp650) */ ; } /* end of [loop_84] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_anairiats_rec_14_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp657) ; // ATSlocal_void (tmp658) ; __ats_lab_list_map_funenv_01412_anairiats_rec_14_ats_ptr_type: /* ats_ptr_type tmp657 ; */ /* tmp658 = */ loop_84 (arg0, arg1, (&tmp657), arg2) ; tmp649 = tmp657 ; return (tmp649) ; } /* end of [list_map_funenv_01412_anairiats_rec_14_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_anairiats_rec_14_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp648) ; __ats_lab_list_map_fun_01413_anairiats_rec_14_ats_ptr_type: tmp648 = list_map_funenv_01412_anairiats_rec_14_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp648) ; } /* end of [list_map_fun_01413_anairiats_rec_14_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 35084(line=1545, offs=1) -- 37186(line=1615, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_app_sqid_itm_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp647) ; // ATSlocal_void (tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; // ATSlocal_void (tmp663) ; // ATSlocal_void (tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; // ATSlocal_void (tmp666) ; // ATSlocal_void (tmp667) ; // ATSlocal_void (tmp668) ; // ATSlocal_void (tmp669) ; // ATSlocal_void (tmp670) ; // ATSlocal_void (tmp671) ; // ATSlocal_void (tmp672) ; ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; // ATSlocal_void (tmp678) ; // ATSlocal_void (tmp679) ; ATSlocal (ats_ptr_type, tmp680) ; // ATSlocal_void (tmp681) ; // ATSlocal_void (tmp682) ; // ATSlocal_void (tmp683) ; // ATSlocal_void (tmp684) ; // ATSlocal_void (tmp685) ; // ATSlocal_void (tmp686) ; // ATSlocal_void (tmp687) ; __ats_lab_s1exp_trup_app_sqid_itm_76: do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)arg4)->tag != 1) { goto __ats_lab_130_0 ; } __ats_lab_123_1: tmp629 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_0) ; tmp647 = list_map_fun_01413_anairiats_rec_14_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg5), &f_77) ; /* tmp659 = */ list_vt_free_01499_anairiats_rec_14 (arg5) ; tmp660 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2cst_select_locs2explstlst (tmp629, ats_castfn_mac(ats_ptr_type, tmp647)) ; do { /* branch: __ats_lab_128 */ __ats_lab_128_0: if (tmp660 == (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp661 = ats_caselptrlab_mac(anairiats_sum_6, tmp660, atslab_0) ; tmp662 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp661) ; tmp628 = s2exp_app_wind_34 (arg0, tmp662, tmp647) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: // if (tmp660 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_129_1: /* tmp663 = */ list_vt_free_01499_ats_ptr_type (tmp647) ; tmp665 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp664 = */ prerr_error2_loc_02168_ (tmp665) ; /* tmp666 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_app_sqid_itm")) ; /* tmp667 = */ atspre_prerr_string (ATSstrcst(": none of the static constants referred to by [")) ; /* tmp668 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg2) ; /* tmp669 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ; /* tmp670 = */ atspre_prerr_string (ATSstrcst("] is applicable.")) ; /* tmp671 = */ atspre_prerr_newline () ; tmp673 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp673)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp673, atslab_0, arg0) ; /* tmp672 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp673) ; tmp628 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)arg4)->tag != 0) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp674 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_0) ; tmp675 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp674) ; tmp628 = s1exp_trup_app_63 (arg0, arg1, tmp675, arg5) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)arg4)->tag != 3) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp676 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_0) ; tmp628 = s1exp_trup_app_datcontyp_67 (arg0, arg1, tmp676, arg5) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)arg4)->tag != 4) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp677 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_0) ; tmp628 = s1exp_trup_app_datconptr_72 (arg0, arg1, tmp677, arg5) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: __ats_lab_133_1: /* tmp678 = */ list_vt_free_01499_anairiats_rec_14 (arg5) ; tmp680 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1exp_loc) ; /* tmp679 = */ prerr_interror_loc_02166_ (tmp680) ; /* tmp681 = */ atspre_prerr_newline () ; /* tmp682 = */ atspre_prerr_string (ATSstrcst(": NIY: s1exp_trup_app_sqid_itm: s1e0 = ")) ; /* tmp683 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp (arg0) ; /* tmp684 = */ atspre_prerr_newline () ; /* tmp685 = */ atspre_prerr_string (ATSstrcst(": NIY: s1exp_trup_app_sqid_itm: s2i0 = ")) ; /* tmp686 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2itm (arg4) ; /* tmp687 = */ atspre_prerr_newline () ; /* tmp628 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; return (tmp628) ; } /* end of [s1exp_trup_app_sqid_itm_76] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 37249(line=1619, offs=5) -- 37370(line=1626, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_top_85 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp688) ; ATSlocal (ats_ptr_type, tmp689) ; __ats_lab_s1exp_trup_top_85: tmp689 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (arg1) ; tmp688 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top (arg0, tmp689) ; return (tmp688) ; } /* end of [s1exp_trup_top_85] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 37431(line=1632, offs=5) -- 38173(line=1668, offs=4) */ ATSstaticdec() ats_ptr_type aux01_86 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_bool_type, tmp699) ; ATSlocal (ats_int_type, tmp700) ; ATSlocal (ats_bool_type, tmp702) ; ATSlocal (ats_int_type, tmp703) ; ATSlocal (ats_bool_type, tmp704) ; ATSlocal (ats_int_type, tmp705) ; ATSlocal (ats_ptr_type, tmp706) ; ATSlocal (ats_int_type, tmp707) ; __ats_lab_aux01_86: do { /* branch: __ats_lab_134 */ __ats_lab_134_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp690 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_135_1: tmp691 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp692 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp693 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg0) ; tmp694 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp691) ; tmp695 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp694), atslab_s2exp_srt) ; tmp697 = (ats_sum_ptr_type)0 ; tmp696 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp696, atslab_0, tmp693) ; ats_selptrset_mac(anairiats_sum_12, tmp696, atslab_1, tmp697) ; ats_selptrset_mac(anairiats_sum_12, tmp696, atslab_2, tmp694) ; tmp699 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (tmp695) ; if (tmp699) { tmp700 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp700 ; } else { /* empty */ } /* end of [if] */ tmp702 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp695) ; if (tmp702) { tmp703 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp703 ; } else { tmp704 = atspre_gte_int_int (arg0, arg1) ; if (tmp704) { tmp705 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg5), 1) ; ats_ptrget_mac(ats_int_type, arg5) = tmp705 ; } else { /* empty */ } /* end of [if] */ } /* end of [if] */ tmp707 = atspre_add_int_int (arg0, 1) ; tmp706 = aux01_86 (tmp707, arg1, tmp692, arg3, arg4, arg5) ; tmp690 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp690, atslab_0, tmp696) ; ats_selptrset_mac(anairiats_sum_6, tmp690, atslab_1, tmp706) ; break ; } while (0) ; return (tmp690) ; } /* end of [aux01_86] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 38197(line=1670, offs=5) -- 38771(line=1696, offs=4) */ ATSstaticdec() ats_ptr_type aux23_87 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; ATSlocal (ats_ptr_type, tmp711) ; ATSlocal (ats_ptr_type, tmp712) ; ATSlocal (ats_bool_type, tmp713) ; ATSlocal (ats_ptr_type, tmp714) ; ATSlocal (ats_ptr_type, tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; ATSlocal (ats_int_type, tmp717) ; __ats_lab_aux23_87: do { /* branch: __ats_lab_136 */ __ats_lab_136_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp708 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_137_1: tmp709 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp710 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp711 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg0) ; tmp713 = atspre_gte_int_int (arg0, arg1) ; if (tmp713) { tmp712 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp709, arg4) ; } else { tmp712 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp709, arg3) ; } /* end of [if] */ tmp715 = (ats_sum_ptr_type)0 ; tmp714 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp714, atslab_0, tmp711) ; ats_selptrset_mac(anairiats_sum_12, tmp714, atslab_1, tmp715) ; ats_selptrset_mac(anairiats_sum_12, tmp714, atslab_2, tmp712) ; tmp717 = atspre_add_int_int (arg0, 1) ; tmp716 = aux23_87 (tmp717, arg1, tmp710, arg3, arg4) ; tmp708 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp708, atslab_0, tmp714) ; ats_selptrset_mac(anairiats_sum_6, tmp708, atslab_1, tmp716) ; break ; } while (0) ; return (tmp708) ; } /* end of [aux23_87] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 38819(line=1701, offs=1) -- 40150(line=1760, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_tytup_88 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp718) ; ATSlocal (ats_int_type, tmp719) ; ATSlocal (ats_int_type, tmp720) ; ATSlocal (ats_int_type, tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; ATSlocal (ats_ptr_type, tmp723) ; ATSlocal (ats_ptr_type, tmp724) ; ATSlocal (ats_bool_type, tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; ATSlocal (ats_ptr_type, tmp727) ; ATSlocal (ats_ptr_type, tmp728) ; ATSlocal (ats_ptr_type, tmp729) ; // ATSlocal_void (tmp730) ; ATSlocal (ats_ptr_type, tmp731) ; __ats_lab_s1exp_trup_tytup_88: do { /* branch: __ats_lab_138 */ __ats_lab_138_0: if (arg1 != 0) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp718 = s1exp_trup_tytup_flt_89 (arg0, arg2, arg3) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (arg1 != 1) { goto __ats_lab_140_0 ; } __ats_lab_139_1: /* ats_int_type tmp719 ; */ tmp719 = 0 ; /* ats_int_type tmp720 ; */ tmp720 = 0 ; /* ats_int_type tmp721 ; */ tmp721 = 0 ; tmp722 = aux01_86 (0, arg2, arg3, (&tmp719), (&tmp720), (&tmp721)) ; tmp723 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg2, tmp719, tmp720, tmp721, 1, tmp722) ; tmp725 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_nonlin (tmp723) ; if (tmp725) { tmp724 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; } else { tmp724 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; } /* end of [if] */ tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp723, tmp724, arg2, tmp722) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (arg1 != 2) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp726 = aux23_87 (0, arg2, arg3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; tmp727 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type, tmp727, arg2, tmp726) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (arg1 != 3) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp728 = aux23_87 (0, arg2, arg3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; tmp729 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype, tmp729, arg2, tmp728) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: __ats_lab_142_1: tmp731 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40084(line=1758, offs=14) -- 40100(line=1758, offs=30)", ATSstrcst("\n")) ; /* tmp730 = */ atspre_assert_errmsg (ats_false_bool, tmp731) ; tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; return (tmp718) ; } /* end of [s1exp_trup_tytup_88] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40185(line=1763, offs=1) -- 40600(line=1777, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_tytup_flt_89 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp732) ; ATSlocal (ats_int_type, tmp733) ; ATSlocal (ats_int_type, tmp734) ; ATSlocal (ats_int_type, tmp735) ; ATSlocal (ats_ptr_type, tmp736) ; ATSlocal (ats_ptr_type, tmp737) ; ATSlocal (ats_ptr_type, tmp738) ; __ats_lab_s1exp_trup_tytup_flt_89: /* ats_int_type tmp733 ; */ tmp733 = 0 ; /* ats_int_type tmp734 ; */ tmp734 = 0 ; /* ats_int_type tmp735 ; */ tmp735 = 0 ; tmp736 = aux01_86 (0, arg1, arg2, (&tmp733), (&tmp734), (&tmp735)) ; tmp737 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg1, tmp733, tmp734, tmp735, 0, tmp736) ; tmp738 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; tmp732 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp737, tmp738, arg1, tmp736) ; return (tmp732) ; } /* end of [s1exp_trup_tytup_flt_89] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40690(line=1785, offs=5) -- 40790(line=1788, offs=4) */ ATSstaticdec() ats_ptr_type string_of_s0tring_90 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp739) ; ATSlocal (ats_ptr_type, tmp740) ; ATSlocal (ats_ptr_type, tmp741) ; __ats_lab_string_of_s0tring_90: tmp740 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp740)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40743(line=1787, offs=7) -- 40779(line=1787, offs=43)") ; } tmp741 = ats_caselptrlab_mac(anairiats_sum_5, tmp740, atslab_0) ; tmp739 = tmp741 ; return (tmp739) ; } /* end of [string_of_s0tring_90] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40826(line=1790, offs=5) -- 41714(line=1817, offs=4) */ ATSstaticdec() ats_ptr_type aux01_91 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp742) ; ATSlocal (ats_ptr_type, tmp743) ; ATSlocal (ats_ptr_type, tmp744) ; ATSlocal (ats_ptr_type, tmp745) ; ATSlocal (ats_ptr_type, tmp746) ; ATSlocal (ats_ptr_type, tmp747) ; ATSlocal (ats_ptr_type, tmp748) ; ATSlocal (ats_ptr_type, tmp749) ; ATSlocal (ats_ptr_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; ATSlocal (ats_ptr_type, tmp752) ; ATSlocal (ats_ptr_type, tmp753) ; ATSlocal (ats_ptr_type, tmp754) ; ATSlocal (ats_bool_type, tmp756) ; ATSlocal (ats_int_type, tmp757) ; ATSlocal (ats_bool_type, tmp759) ; ATSlocal (ats_int_type, tmp760) ; ATSlocal (ats_bool_type, tmp761) ; ATSlocal (ats_int_type, tmp762) ; ATSlocal (ats_ptr_type, tmp763) ; ATSlocal (ats_int_type, tmp764) ; __ats_lab_aux01_91: do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_146_0 ; } __ats_lab_143_1: tmp743 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp744 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp745 = ats_caselptrlab_mac(anairiats_sum_12, tmp743, atslab_0) ; tmp746 = ats_caselptrlab_mac(anairiats_sum_12, tmp743, atslab_1) ; tmp747 = ats_caselptrlab_mac(anairiats_sum_12, tmp743, atslab_2) ; tmp748 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, tmp745), atslab_l0ab_lab) ; do { /* branch: __ats_lab_144 */ __ats_lab_144_0: if (tmp746 == (ats_sum_ptr_type)0) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp750 = ats_caselptrlab_mac(anairiats_sum_4, tmp746, atslab_0) ; tmp751 = string_of_s0tring_90 (tmp750) ; tmp749 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp749, atslab_0, tmp751) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: // if (tmp746 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_145_1: tmp749 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp752 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp747) ; tmp753 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp753, atslab_0, tmp748) ; ats_selptrset_mac(anairiats_sum_12, tmp753, atslab_1, tmp749) ; ats_selptrset_mac(anairiats_sum_12, tmp753, atslab_2, tmp752) ; tmp754 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp752), atslab_s2exp_srt) ; tmp756 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (tmp754) ; if (tmp756) { tmp757 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp757 ; } else { /* empty */ } /* end of [if] */ tmp759 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp754) ; if (tmp759) { tmp760 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp760 ; } else { tmp761 = atspre_gte_int_int (arg0, arg1) ; if (tmp761) { tmp762 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg5), 1) ; ats_ptrget_mac(ats_int_type, arg5) = tmp762 ; } else { /* empty */ } /* end of [if] */ } /* end of [if] */ tmp764 = atspre_add_int_int (arg0, 1) ; tmp763 = aux01_91 (tmp764, arg1, tmp744, arg3, arg4, arg5) ; tmp742 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp742, atslab_0, tmp753) ; ats_selptrset_mac(anairiats_sum_6, tmp742, atslab_1, tmp763) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_146_1: tmp742 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp742) ; } /* end of [aux01_91] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 41738(line=1819, offs=5) -- 42612(line=1850, offs=4) */ ATSstaticdec() ats_ptr_type aux23_92 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp765) ; ATSlocal (ats_ptr_type, tmp766) ; ATSlocal (ats_ptr_type, tmp767) ; ATSlocal (ats_ptr_type, tmp768) ; ATSlocal (ats_ptr_type, tmp769) ; ATSlocal (ats_ptr_type, tmp770) ; ATSlocal (ats_ptr_type, tmp771) ; ATSlocal (ats_ptr_type, tmp772) ; ATSlocal (ats_ptr_type, tmp773) ; ATSlocal (ats_ptr_type, tmp774) ; ATSlocal (ats_ptr_type, tmp775) ; ATSlocal (ats_bool_type, tmp776) ; ATSlocal (ats_ptr_type, tmp777) ; ATSlocal (ats_ptr_type, tmp778) ; ATSlocal (ats_int_type, tmp779) ; __ats_lab_aux23_92: do { /* branch: __ats_lab_147 */ __ats_lab_147_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_150_0 ; } __ats_lab_147_1: tmp766 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ; tmp767 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp768 = ats_caselptrlab_mac(anairiats_sum_12, tmp766, atslab_0) ; tmp769 = ats_caselptrlab_mac(anairiats_sum_12, tmp766, atslab_1) ; tmp770 = ats_caselptrlab_mac(anairiats_sum_12, tmp766, atslab_2) ; tmp771 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, tmp768), atslab_l0ab_lab) ; do { /* branch: __ats_lab_148 */ __ats_lab_148_0: if (tmp769 != (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp772 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: // if (tmp769 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_149_1: tmp773 = ats_caselptrlab_mac(anairiats_sum_4, tmp769, atslab_0) ; tmp774 = string_of_s0tring_90 (tmp773) ; tmp772 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp772, atslab_0, tmp774) ; break ; } while (0) ; tmp776 = atspre_gte_int_int (arg0, arg1) ; if (tmp776) { tmp775 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp770, arg4) ; } else { tmp775 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp770, arg3) ; } /* end of [if] */ tmp777 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp777, atslab_0, tmp771) ; ats_selptrset_mac(anairiats_sum_12, tmp777, atslab_1, tmp772) ; ats_selptrset_mac(anairiats_sum_12, tmp777, atslab_2, tmp775) ; tmp779 = atspre_add_int_int (arg0, 1) ; tmp778 = aux23_92 (tmp779, arg1, tmp767, arg3, arg4) ; tmp765 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp765, atslab_0, tmp777) ; ats_selptrset_mac(anairiats_sum_6, tmp765, atslab_1, tmp778) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_150_1: tmp765 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp765) ; } /* end of [aux23_92] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 42660(line=1855, offs=1) -- 44369(line=1922, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_tyrec_93 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp780) ; ATSlocal (ats_int_type, tmp781) ; ATSlocal (ats_int_type, tmp782) ; ATSlocal (ats_int_type, tmp783) ; ATSlocal (ats_ptr_type, tmp784) ; ATSlocal (ats_ptr_type, tmp785) ; ATSlocal (ats_ptr_type, tmp786) ; ATSlocal (ats_int_type, tmp787) ; ATSlocal (ats_int_type, tmp788) ; ATSlocal (ats_int_type, tmp789) ; ATSlocal (ats_ptr_type, tmp790) ; ATSlocal (ats_ptr_type, tmp791) ; ATSlocal (ats_ptr_type, tmp792) ; ATSlocal (ats_ptr_type, tmp793) ; ATSlocal (ats_ptr_type, tmp794) ; ATSlocal (ats_ptr_type, tmp795) ; ATSlocal (ats_ptr_type, tmp796) ; // ATSlocal_void (tmp797) ; ATSlocal (ats_ptr_type, tmp798) ; __ats_lab_s1exp_trup_tyrec_93: do { /* branch: __ats_lab_151 */ __ats_lab_151_0: if (arg1 != 0) { goto __ats_lab_152_0 ; } __ats_lab_151_1: /* ats_int_type tmp781 ; */ tmp781 = 0 ; /* ats_int_type tmp782 ; */ tmp782 = 0 ; /* ats_int_type tmp783 ; */ tmp783 = 0 ; tmp784 = aux01_91 (0, arg2, arg3, (&tmp781), (&tmp782), (&tmp783)) ; tmp785 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg2, tmp781, tmp782, tmp783, 0, tmp784) ; tmp786 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp785, tmp786, arg2, tmp784) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (arg1 != 1) { goto __ats_lab_153_0 ; } __ats_lab_152_1: /* ats_int_type tmp787 ; */ tmp787 = 0 ; /* ats_int_type tmp788 ; */ tmp788 = 0 ; /* ats_int_type tmp789 ; */ tmp789 = 0 ; tmp790 = aux01_91 (0, arg2, arg3, (&tmp787), (&tmp788), (&tmp789)) ; tmp791 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg2, tmp787, tmp788, tmp789, 1, tmp790) ; tmp792 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp791, tmp792, arg2, tmp790) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (arg1 != 2) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp793 = aux23_92 (0, arg2, arg3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; tmp794 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type, tmp794, arg2, tmp793) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: if (arg1 != 3) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp795 = aux23_92 (0, arg2, arg3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; tmp796 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype, tmp796, arg2, tmp795) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: __ats_lab_155_1: tmp798 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 44305(line=1920, offs=24) -- 44320(line=1920, offs=39)", ATSstrcst("\n")) ; /* tmp797 = */ atspre_assert_errmsg (ats_false_bool, tmp798) ; tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; return (tmp780) ; } /* end of [s1exp_trup_tyrec_93] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 44404(line=1925, offs=1) -- 44884(line=1942, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trup_tyrec_ext_94 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp799) ; ATSlocal (ats_int_type, tmp800) ; ATSlocal (ats_int_type, tmp801) ; ATSlocal (ats_int_type, tmp802) ; ATSlocal (ats_ptr_type, tmp803) ; ATSlocal (ats_ptr_type, tmp804) ; ATSlocal (ats_ptr_type, tmp805) ; __ats_lab_s1exp_trup_tyrec_ext_94: /* ats_int_type tmp800 ; */ tmp800 = 0 ; /* ats_int_type tmp801 ; */ tmp801 = 0 ; /* ats_int_type tmp802 ; */ tmp802 = 0 ; tmp803 = aux01_91 (0, arg2, arg3, (&tmp800), (&tmp801), (&tmp802)) ; tmp804 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg2, tmp800, tmp801, tmp802, 0, tmp803) ; tmp805 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp805)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp805, atslab_0, arg1) ; tmp799 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp804, tmp805, arg2, tmp803) ; return (tmp799) ; } /* end of [s1exp_trup_tyrec_ext_94] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 44984(line=1949, offs=11) -- 50566(line=2169, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp806) ; ATSlocal (ats_ptr_type, tmp807) ; ATSlocal (ats_ptr_type, tmp808) ; ATSlocal (ats_ptr_type, tmp809) ; ATSlocal (ats_ptr_type, tmp810) ; ATSlocal (ats_ptr_type, tmp811) ; ATSlocal (ats_int_type, tmp812) ; ATSlocal (ats_ptr_type, tmp813) ; ATSlocal (ats_ptr_type, tmp814) ; ATSlocal (ats_char_type, tmp815) ; ATSlocal (ats_ptr_type, tmp816) ; ATSlocal (ats_ptr_type, tmp817) ; ATSlocal (ats_ptr_type, tmp818) ; ATSlocal (ats_ptr_type, tmp819) ; ATSlocal (ats_ptr_type, tmp820) ; ATSlocal (ats_ptr_type, tmp821) ; ATSlocal (ats_ptr_type, tmp822) ; ATSlocal (ats_ptr_type, tmp823) ; ATSlocal (ats_ptr_type, tmp824) ; ATSlocal (ats_ptr_type, tmp825) ; ATSlocal (ats_ptr_type, tmp826) ; ATSlocal (ats_ptr_type, tmp827) ; ATSlocal (ats_ptr_type, tmp828) ; ATSlocal (ats_ptr_type, tmp829) ; ATSlocal (ats_ptr_type, tmp830) ; ATSlocal (ats_int_type, tmp831) ; ATSlocal (ats_int_type, tmp832) ; ATSlocal (ats_ptr_type, tmp833) ; ATSlocal (ats_ptr_type, tmp834) ; ATSlocal (ats_bool_type, tmp835) ; ATSlocal (ats_bool_type, tmp836) ; ATSlocal (ats_ptr_type, tmp837) ; ATSlocal (ats_ptr_type, tmp838) ; ATSlocal (ats_ptr_type, tmp839) ; ATSlocal (ats_ptr_type, tmp840) ; ATSlocal (ats_ptr_type, tmp841) ; ATSlocal (ats_ptr_type, tmp842) ; // ATSlocal_void (tmp843) ; // ATSlocal_void (tmp844) ; // ATSlocal_void (tmp845) ; ATSlocal (ats_ptr_type, tmp846) ; ATSlocal (ats_ptr_type, tmp847) ; ATSlocal (ats_ptr_type, tmp848) ; // ATSlocal_void (tmp849) ; // ATSlocal_void (tmp850) ; // ATSlocal_void (tmp851) ; // ATSlocal_void (tmp852) ; // ATSlocal_void (tmp853) ; ATSlocal (ats_int_type, tmp854) ; ATSlocal (ats_ptr_type, tmp855) ; ATSlocal (ats_int_type, tmp856) ; ATSlocal (ats_ptr_type, tmp857) ; ATSlocal (ats_ptr_type, tmp858) ; ATSlocal (ats_ptr_type, tmp859) ; ATSlocal (ats_ptr_type, tmp860) ; ATSlocal (ats_ptr_type, tmp861) ; ATSlocal (ats_int_type, tmp862) ; ATSlocal (ats_int_type, tmp863) ; ATSlocal (ats_ptr_type, tmp864) ; ATSlocal (ats_int_type, tmp865) ; ATSlocal (ats_int_type, tmp866) ; ATSlocal (ats_ptr_type, tmp867) ; ATSlocal (ats_ptr_type, tmp868) ; ATSlocal (ats_int_type, tmp869) ; ATSlocal (ats_ptr_type, tmp870) ; // ATSlocal_void (tmp871) ; // ATSlocal_void (tmp872) ; // ATSlocal_void (tmp873) ; // ATSlocal_void (tmp874) ; ATSlocal (ats_ptr_type, tmp875) ; // ATSlocal_void (tmp876) ; // ATSlocal_void (tmp877) ; // ATSlocal_void (tmp878) ; // ATSlocal_void (tmp879) ; ATSlocal (ats_ptr_type, tmp880) ; ATSlocal (ats_ptr_type, tmp881) ; ATSlocal (ats_ptr_type, tmp882) ; // ATSlocal_void (tmp883) ; // ATSlocal_void (tmp884) ; ATSlocal (anairiats_rec_1, tmp885) ; ATSlocal (ats_ptr_type, tmp886) ; // ATSlocal_void (tmp887) ; ATSlocal (ats_ptr_type, tmp888) ; ATSlocal (ats_ptr_type, tmp889) ; ATSlocal (ats_int_type, tmp890) ; ATSlocal (ats_ptr_type, tmp891) ; ATSlocal (ats_ptr_type, tmp892) ; // ATSlocal_void (tmp893) ; ATSlocal (ats_bool_type, tmp894) ; // ATSlocal_void (tmp895) ; // ATSlocal_void (tmp896) ; // ATSlocal_void (tmp897) ; ATSlocal (ats_ptr_type, tmp898) ; // ATSlocal_void (tmp899) ; // ATSlocal_void (tmp900) ; ATSlocal (anairiats_rec_1, tmp901) ; ATSlocal (ats_ptr_type, tmp902) ; // ATSlocal_void (tmp903) ; ATSlocal (ats_ptr_type, tmp904) ; ATSlocal (ats_ptr_type, tmp905) ; ATSlocal (ats_ptr_type, tmp906) ; ATSlocal (ats_ptr_type, tmp907) ; ATSlocal (ats_ptr_type, tmp908) ; ATSlocal (ats_ptr_type, tmp909) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup: tmp807 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; tmp808 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ; do { /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)tmp808)->tag != 0) { goto __ats_lab_157_0 ; } __ats_lab_156_1: tmp809 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ; tmp806 = s1exp_trup_sqid_31 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_s0taq_none, tmp809) ; break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)tmp808)->tag != 1) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp810 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ; tmp811 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ; tmp806 = s1exp_trup_sqid_31 (arg0, tmp810, tmp811) ; break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)tmp808)->tag != 2) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp812 = ats_caselptrlab_mac(anairiats_sum_24, tmp808, atslab_0) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp812) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: if (((ats_sum_ptr_type)tmp808)->tag != 3) { goto __ats_lab_160_0 ; } __ats_lab_159_1: tmp813 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ; tmp814 = patsopt_intinf_make_string (tmp813) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (tmp814) ; break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: if (((ats_sum_ptr_type)tmp808)->tag != 4) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp815 = ats_caselptrlab_mac(anairiats_sum_25, tmp808, atslab_0) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char (tmp815) ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: if (((ats_sum_ptr_type)tmp808)->tag != 5) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp816 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float (tmp816) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: if (((ats_sum_ptr_type)tmp808)->tag != 6) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp817 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string (tmp817) ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)tmp808)->tag != 7) { goto __ats_lab_164_0 ; } __ats_lab_163_1: tmp818 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ; tmp819 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ; tmp820 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp819, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype, tmp818, ats_castfn_mac(ats_ptr_type, tmp820)) ; break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)tmp808)->tag != 8) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp821 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ; tmp822 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ; tmp823 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp822, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind, tmp821, ats_castfn_mac(ats_ptr_type, tmp823)) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)tmp808)->tag != 9) { goto __ats_lab_170_0 ; } __ats_lab_165_1: /* ats_ptr_type tmp824 ; */ tmp824 = (ats_sum_ptr_type)0 ; tmp825 = s1exp_app_unwind_40 (arg0, (&tmp824)) ; tmp826 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp825), atslab_s1exp_node) ; do { /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)tmp826)->tag != 0) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp827 = ats_caselptrlab_mac(anairiats_sum_5, tmp826, atslab_0) ; tmp806 = s1exp_trup_app_sqid_75 (arg0, tmp825, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_s0taq_none, tmp827, tmp824) ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: if (((ats_sum_ptr_type)tmp826)->tag != 1) { goto __ats_lab_168_0 ; } __ats_lab_167_1: tmp828 = ats_caselptrlab_mac(anairiats_sum_9, tmp826, atslab_0) ; tmp829 = ats_caselptrlab_mac(anairiats_sum_9, tmp826, atslab_1) ; tmp806 = s1exp_trup_app_sqid_75 (arg0, tmp825, tmp828, tmp829, tmp824) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: if (((ats_sum_ptr_type)tmp826)->tag != 11) { goto __ats_lab_169_0 ; } __ats_lab_168_1: tmp830 = ats_caselptrlab_mac(anairiats_sum_26, tmp826, atslab_0) ; tmp831 = ats_caselptrlab_mac(anairiats_sum_26, tmp826, atslab_1) ; tmp832 = ats_caselptrlab_mac(anairiats_sum_26, tmp826, atslab_2) ; tmp833 = ats_caselptrlab_mac(anairiats_sum_26, tmp826, atslab_3) ; tmp834 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp834, atslab_0, tmp830) ; tmp835 = atspre_gt_int_int (tmp831, 0) ; tmp836 = atspre_gt_int_int (tmp832, 0) ; tmp806 = s1exp_trup_arrow_56 (arg0, tmp834, tmp835, tmp836, tmp833, tmp824) ; break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: __ats_lab_169_1: tmp837 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp825) ; tmp806 = s1exp_trup_app_63 (arg0, tmp825, tmp837, tmp824) ; break ; } while (0) ; break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: if (((ats_sum_ptr_type)tmp808)->tag != 10) { goto __ats_lab_173_0 ; } __ats_lab_170_1: tmp838 = ats_caselptrlab_mac(anairiats_sum_17, tmp808, atslab_0) ; tmp839 = ats_caselptrlab_mac(anairiats_sum_17, tmp808, atslab_1) ; tmp840 = ats_caselptrlab_mac(anairiats_sum_17, tmp808, atslab_2) ; tmp842 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp838), atslab_s1marg_arg) ; tmp841 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (tmp842) ; /* tmp843 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp844 = ats_selsin_mac(tmp843, atslab_1) */ ; /* tmp845 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp841) ; do { /* branch: __ats_lab_171 */ __ats_lab_171_0: if (tmp839 == (ats_sum_ptr_type)0) { goto __ats_lab_172_0 ; } __ats_lab_171_1: tmp847 = ats_caselptrlab_mac(anairiats_sum_4, tmp839, atslab_0) ; tmp848 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp847) ; tmp846 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp840, tmp848) ; break ; /* branch: __ats_lab_172 */ __ats_lab_172_0: // if (tmp839 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_172_1: tmp846 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp840) ; break ; } while (0) ; /* tmp849 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam (tmp841, tmp846) ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: if (((ats_sum_ptr_type)tmp808)->tag != 11) { goto __ats_lab_174_0 ; } __ats_lab_173_1: /* tmp850 = */ prerr_interror_loc_02166_ (tmp807) ; /* tmp851 = */ atspre_prerr_string (ATSstrcst(": s1exp_trup: S1Eimp: s1e0 = ")) ; /* tmp852 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp (arg0) ; /* tmp853 = */ atspre_prerr_newline () ; /* tmp806 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; /* branch: __ats_lab_174 */ __ats_lab_174_0: if (((ats_sum_ptr_type)tmp808)->tag != 12) { goto __ats_lab_175_0 ; } __ats_lab_174_1: tmp854 = ats_caselptrlab_mac(anairiats_sum_19, tmp808, atslab_0) ; tmp855 = ats_caselptrlab_mac(anairiats_sum_19, tmp808, atslab_1) ; tmp806 = s1exp_trup_top_85 (tmp854, tmp855) ; break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: if (((ats_sum_ptr_type)tmp808)->tag != 13) { goto __ats_lab_176_0 ; } __ats_lab_175_1: tmp856 = ats_caselptrlab_mac(anairiats_sum_19, tmp808, atslab_0) ; tmp857 = ats_caselptrlab_mac(anairiats_sum_19, tmp808, atslab_1) ; tmp806 = s1exp_trup_tytup_flt_89 (arg0, tmp856, tmp857) ; break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: if (((ats_sum_ptr_type)tmp808)->tag != 16) { goto __ats_lab_177_0 ; } __ats_lab_176_1: tmp858 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ; tmp859 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ; tmp860 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype (tmp858) ; tmp861 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int (tmp859) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr (tmp860, tmp861) ; break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: if (((ats_sum_ptr_type)tmp808)->tag != 17) { goto __ats_lab_178_0 ; } __ats_lab_177_1: tmp862 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_0) ; tmp863 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_1) ; tmp864 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_2) ; tmp806 = s1exp_trup_tytup_88 (arg0, tmp862, tmp863, tmp864) ; break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: if (((ats_sum_ptr_type)tmp808)->tag != 18) { goto __ats_lab_179_0 ; } __ats_lab_178_1: tmp865 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_0) ; tmp866 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_1) ; tmp867 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_2) ; tmp806 = s1exp_trup_tyrec_93 (arg0, tmp865, tmp866, tmp867) ; break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: if (((ats_sum_ptr_type)tmp808)->tag != 19) { goto __ats_lab_180_0 ; } __ats_lab_179_1: tmp868 = ats_caselptrlab_mac(anairiats_sum_28, tmp808, atslab_0) ; tmp869 = ats_caselptrlab_mac(anairiats_sum_28, tmp808, atslab_1) ; tmp870 = ats_caselptrlab_mac(anairiats_sum_28, tmp808, atslab_2) ; tmp806 = s1exp_trup_tyrec_ext_94 (arg0, tmp868, tmp869, tmp870) ; break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: if (((ats_sum_ptr_type)tmp808)->tag != 14) { goto __ats_lab_181_0 ; } __ats_lab_180_1: /* tmp871 = */ prerr_error2_loc_02168_ (tmp807) ; /* tmp872 = */ atspre_prerr_string (ATSstrcst(": invariant type can only be assigned to a function argument.")) ; /* tmp873 = */ atspre_prerr_newline () ; tmp875 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp875)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp875, atslab_0, arg0) ; /* tmp874 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp875) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: if (((ats_sum_ptr_type)tmp808)->tag != 15) { goto __ats_lab_182_0 ; } __ats_lab_181_1: /* tmp876 = */ prerr_error2_loc_02168_ (tmp807) ; /* tmp877 = */ atspre_prerr_string (ATSstrcst(": transitional type can only be assigned to a function argument.")) ; /* tmp878 = */ atspre_prerr_newline () ; tmp880 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp880)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp880, atslab_0, arg0) ; /* tmp879 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp880) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: if (((ats_sum_ptr_type)tmp808)->tag != 20) { goto __ats_lab_183_0 ; } __ats_lab_182_1: tmp881 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ; tmp882 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ; /* tmp883 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp884 = ats_selsin_mac(tmp883, atslab_1) */ ; tmp885 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp881) ; tmp886 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp882) ; /* tmp887 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp888 = ats_select_mac(tmp885, atslab_s2qua_svs) ; tmp889 = ats_select_mac(tmp885, atslab_s2qua_sps) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (tmp888, tmp889, tmp886) ; break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: if (((ats_sum_ptr_type)tmp808)->tag != 21) { goto __ats_lab_184_0 ; } __ats_lab_183_1: tmp890 = ats_caselptrlab_mac(anairiats_sum_21, tmp808, atslab_0) ; tmp891 = ats_caselptrlab_mac(anairiats_sum_21, tmp808, atslab_1) ; tmp892 = ats_caselptrlab_mac(anairiats_sum_21, tmp808, atslab_2) ; tmp894 = atspre_gt_int_int (tmp890, 0) ; if (tmp894) { /* tmp895 = */ prerr_error2_loc_02168_ (tmp807) ; /* tmp896 = */ atspre_prerr_string (ATSstrcst(": incorrect use of the existential quantifier #[...]")) ; /* tmp897 = */ atspre_prerr_newline () ; tmp898 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp898)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp898, atslab_0, arg0) ; /* tmp893 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp898) ; } else { /* empty */ } /* end of [if] */ /* tmp899 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp900 = ats_selsin_mac(tmp899, atslab_1) */ ; tmp901 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp891) ; tmp902 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp892) ; /* tmp903 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp904 = ats_select_mac(tmp901, atslab_s2qua_svs) ; tmp905 = ats_select_mac(tmp901, atslab_s2qua_sps) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi (tmp904, tmp905, tmp902) ; break ; /* branch: __ats_lab_184 */ __ats_lab_184_0: if (((ats_sum_ptr_type)tmp808)->tag != 22) { goto __ats_lab_185_0 ; } __ats_lab_184_1: tmp906 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ; tmp907 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ; tmp908 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp907) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp906, tmp908) ; break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: if (((ats_sum_ptr_type)tmp808)->tag != 23) { goto __ats_lab_186_0 ; } __ats_lab_185_1: tmp909 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__S1Ed2ctype_tr (tmp909) ; break ; /* branch: __ats_lab_186 */ __ats_lab_186_0: // if (((ats_sum_ptr_type)tmp808)->tag != 24) { ats_deadcode_failure_handle () ; } __ats_lab_186_1: tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; return (tmp806) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 50619(line=2172, offs=19) -- 50655(line=2172, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp910) ; ATSlocal (ats_ptr_type, tmp911) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize: tmp911 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ; tmp910 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp911) ; return (tmp910) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 50705(line=2178, offs=3) -- 50750(line=2178, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp912) ; ATSlocal (ats_ptr_type, tmp913) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup: tmp913 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup) ; tmp912 = ats_castfn_mac(ats_ptr_type, tmp913) ; return (tmp912) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 50812(line=2183, offs=3) -- 50864(line=2183, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup_hnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp914) ; ATSlocal (ats_ptr_type, tmp915) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup_hnfize: tmp915 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize) ; tmp914 = ats_castfn_mac(ats_ptr_type, tmp915) ; return (tmp914) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup_hnfize] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 50940(line=2190, offs=3) -- 51025(line=2191, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1expopt_trup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp916) ; ATSlocal (ats_ptr_type, tmp917) ; ATSlocal (ats_ptr_type, tmp918) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1expopt_trup: do { /* branch: __ats_lab_187 */ __ats_lab_187_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_188_0 ; } __ats_lab_187_1: tmp917 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp918 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp917) ; tmp916 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp916, atslab_0, tmp918) ; break ; /* branch: __ats_lab_188 */ __ats_lab_188_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_188_1: tmp916 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp916) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1expopt_trup] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 51150(line=2201, offs=5) -- 51559(line=2212, offs=2) */ ATSstaticdec() ats_void_type auxerr_101 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp920) ; // ATSlocal_void (tmp921) ; ATSlocal (ats_ptr_type, tmp922) ; // ATSlocal_void (tmp923) ; // ATSlocal_void (tmp924) ; // ATSlocal_void (tmp925) ; // ATSlocal_void (tmp926) ; // ATSlocal_void (tmp927) ; // ATSlocal_void (tmp928) ; // ATSlocal_void (tmp929) ; ATSlocal (ats_ptr_type, tmp930) ; __ats_lab_auxerr_101: tmp922 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp921 = */ prerr_error2_loc_02168_ (tmp922) ; /* tmp923 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trdn_lam")) ; /* tmp924 = */ atspre_prerr_string (ATSstrcst(": the body of the static function is given the sort [")) ; /* tmp925 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ; /* tmp926 = */ atspre_prerr_string (ATSstrcst("] but it is expected to be of the sort [")) ; /* tmp927 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ; /* tmp928 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp929 = */ atspre_prerr_newline () ; tmp930 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp930)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp930, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_9, tmp930, atslab_1, env1) ; /* tmp920 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp930) ; return /* (tmp920) */ ; } /* end of [auxerr_101] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxerr_101_closure_type ; ats_void_type auxerr_101_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { auxerr_101 (((auxerr_101_closure_type*)cloptr)->closure_env_0, ((auxerr_101_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr_101_closure_init (auxerr_101_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr_101_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxerr_101_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxerr_101_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_101_closure_type)) ; auxerr_101_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 51078(line=2196, offs=5) -- 52293(line=2238, offs=4) */ ATSstaticdec() ats_ptr_type s1exp_trdn_lam_100 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp919) ; ATSlocal (ats_ptr_type, tmp931) ; ATSlocal (ats_ptr_type, tmp932) ; ATSlocal (ats_ptr_type, tmp933) ; ATSlocal (ats_ptr_type, tmp934) ; ATSlocal (ats_ptr_type, tmp935) ; ATSlocal (ats_ptr_type, tmp936) ; ATSlocal (ats_int_type, tmp937) ; ATSlocal (ats_ptr_type, tmp938) ; ATSlocal (ats_ptr_type, tmp939) ; ATSlocal (ats_ptr_type, tmp940) ; ATSlocal (ats_ptr_type, tmp941) ; ATSlocal (ats_bool_type, tmp942) ; // ATSlocal_void (tmp943) ; ATSlocal (ats_bool_type, tmp944) ; // ATSlocal_void (tmp945) ; // ATSlocal_void (tmp946) ; // ATSlocal_void (tmp947) ; ATSlocal (ats_ptr_type, tmp948) ; // ATSlocal_void (tmp949) ; __ats_lab_s1exp_trdn_lam_100: tmp931 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ; if (((ats_sum_ptr_type)tmp931)->tag != 10) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 51588(line=2214, offs=7) -- 51652(line=2216, offs=25)") ; } tmp932 = ats_caselptrlab_mac(anairiats_sum_17, tmp931, atslab_0) ; tmp933 = ats_caselptrlab_mac(anairiats_sum_17, tmp931, atslab_1) ; tmp934 = ats_caselptrlab_mac(anairiats_sum_17, tmp931, atslab_2) ; if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 51659(line=2217, offs=7) -- 51696(line=2217, offs=44)") ; } tmp935 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp936 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; /* ats_int_type tmp937 ; */ tmp937 = 0 ; tmp938 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn (tmp932, tmp935) ; do { /* branch: __ats_lab_189 */ __ats_lab_189_0: if (tmp933 == (ats_sum_ptr_type)0) { goto __ats_lab_190_0 ; } __ats_lab_189_1: tmp940 = ats_caselptrlab_mac(anairiats_sum_4, tmp933, atslab_0) ; tmp941 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp940) ; tmp942 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp941, tmp936) ; tmp944 = atspre_neg_bool (tmp942) ; if (tmp944) { /* tmp943 = */ auxerr_101 (arg0, arg1, arg0, tmp941, tmp936) ; } else { /* empty */ } /* end of [if] */ tmp939 = tmp941 ; break ; /* branch: __ats_lab_190 */ __ats_lab_190_0: // if (tmp933 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_190_1: tmp939 = tmp936 ; break ; } while (0) ; /* tmp945 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp946 = ats_selsin_mac(tmp945, atslab_1) */ ; /* tmp947 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp938) ; tmp948 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp934, tmp939) ; /* tmp949 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp919 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (arg1, tmp938, tmp948) ; return (tmp919) ; } /* end of [s1exp_trdn_lam_100] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 52345(line=2242, offs=3) -- 52904(line=2263, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp950) ; ATSlocal (ats_ptr_type, tmp951) ; ATSlocal (ats_bool_type, tmp952) ; // ATSlocal_void (tmp953) ; // ATSlocal_void (tmp954) ; // ATSlocal_void (tmp955) ; // ATSlocal_void (tmp956) ; // ATSlocal_void (tmp957) ; // ATSlocal_void (tmp958) ; // ATSlocal_void (tmp959) ; // ATSlocal_void (tmp960) ; // ATSlocal_void (tmp961) ; ATSlocal (ats_ptr_type, tmp962) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn: tmp951 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_s2exp_srt) ; tmp952 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp951, arg2) ; if (tmp952) { tmp950 = arg1 ; } else { /* tmp953 = */ prerr_error2_loc_02168_ (arg0) ; /* tmp954 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s2exp_trdn")) ; /* tmp955 = */ atspre_prerr_string (ATSstrcst(": the static expression is of the sort [")) ; /* tmp956 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp951) ; /* tmp957 = */ atspre_prerr_string (ATSstrcst("] but it is expected to be of the sort [")) ; /* tmp958 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ; /* tmp959 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp960 = */ atspre_prerr_newline () ; tmp962 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp962)->tag = 7 ; ats_selptrset_mac(anairiats_sum_17, tmp962, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_17, tmp962, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp962, atslab_2, arg2) ; /* tmp961 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp962) ; tmp950 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (arg2) ; } /* end of [if] */ return (tmp950) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 52974(line=2268, offs=5) -- 53278(line=2277, offs=2) */ ATSstaticdec() ats_void_type auxerr_104 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp964) ; // ATSlocal_void (tmp965) ; ATSlocal (ats_ptr_type, tmp966) ; // ATSlocal_void (tmp967) ; // ATSlocal_void (tmp968) ; // ATSlocal_void (tmp969) ; // ATSlocal_void (tmp970) ; // ATSlocal_void (tmp971) ; ATSlocal (ats_ptr_type, tmp972) ; __ats_lab_auxerr_104: tmp966 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp965 = */ prerr_error2_loc_02168_ (tmp966) ; /* tmp967 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trdn")) ; /* tmp968 = */ atspre_prerr_string (ATSstrcst(": the static term (extype) cannot be given the sort [")) ; /* tmp969 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ; /* tmp970 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp971 = */ atspre_prerr_newline () ; tmp972 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp972)->tag = 5 ; ats_selptrset_mac(anairiats_sum_9, tmp972, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp972, atslab_1, arg1) ; /* tmp964 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp972) ; return /* (tmp964) */ ; } /* end of [auxerr_104] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 52950(line=2266, offs=12) -- 53809(line=2298, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp963) ; ATSlocal (ats_ptr_type, tmp973) ; ATSlocal (ats_ptr_type, tmp974) ; ATSlocal (ats_ptr_type, tmp975) ; ATSlocal (ats_bool_type, tmp976) ; ATSlocal (ats_ptr_type, tmp977) ; // ATSlocal_void (tmp978) ; ATSlocal (ats_ptr_type, tmp979) ; ATSlocal (ats_ptr_type, tmp980) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn: tmp973 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ; do { /* branch: __ats_lab_191 */ __ats_lab_191_0: if (((ats_sum_ptr_type)tmp973)->tag != 10) { goto __ats_lab_192_0 ; } __ats_lab_191_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_193_1 ; } __ats_lab_191_2: tmp963 = s1exp_trdn_lam_100 (arg0, arg1) ; break ; /* branch: __ats_lab_192 */ __ats_lab_192_0: if (((ats_sum_ptr_type)tmp973)->tag != 7) { goto __ats_lab_193_0 ; } __ats_lab_192_1: __ats_lab_192_2: tmp974 = ats_caselptrlab_mac(anairiats_sum_9, tmp973, atslab_0) ; tmp975 = ats_caselptrlab_mac(anairiats_sum_9, tmp973, atslab_1) ; tmp976 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; if (tmp976) { tmp977 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp975, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype) ; tmp963 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt (arg1, tmp974, ats_castfn_mac(ats_ptr_type, tmp977)) ; } else { /* tmp978 = */ auxerr_104 (arg0, arg1) ; tmp963 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (arg1) ; } /* end of [if] */ break ; /* branch: __ats_lab_193 */ __ats_lab_193_0: __ats_lab_193_1: __ats_lab_193_2: tmp979 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ; tmp980 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; tmp963 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn (tmp980, tmp979, arg1) ; break ; } while (0) ; return (tmp963) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 53880(line=2303, offs=16) -- 53914(line=2303, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp981) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int: tmp981 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; return (tmp981) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 53941(line=2305, offs=17) -- 53976(line=2305, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp982) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr: tmp982 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; return (tmp982) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54003(line=2307, offs=17) -- 54038(line=2307, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp983) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool: tmp983 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; return (tmp983) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54066(line=2309, offs=18) -- 54102(line=2309, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_t0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp984) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_t0ype: tmp984 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; return (tmp984) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_t0ype] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54131(line=2311, offs=19) -- 54168(line=2311, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp985) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype: tmp985 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; return (tmp985) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54219(line=2316, offs=19) -- 54816(line=2340, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp986) ; ATSlocal (ats_ptr_type, tmp987) ; ATSlocal (ats_ptr_type, tmp988) ; ATSlocal (ats_ptr_type, tmp989) ; ATSlocal (ats_bool_type, tmp990) ; // ATSlocal_void (tmp991) ; ATSlocal (ats_ptr_type, tmp992) ; // ATSlocal_void (tmp993) ; // ATSlocal_void (tmp994) ; // ATSlocal_void (tmp995) ; // ATSlocal_void (tmp996) ; // ATSlocal_void (tmp997) ; // ATSlocal_void (tmp998) ; // ATSlocal_void (tmp999) ; ATSlocal (ats_ptr_type, tmp1000) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred: tmp987 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ; tmp989 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp987), atslab_s2exp_srt) ; tmp988 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink (tmp989) ; tmp990 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred (tmp988) ; if (tmp990) { tmp986 = tmp987 ; } else { tmp992 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp991 = */ prerr_error2_loc_02168_ (tmp992) ; /* tmp993 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trdn_impred")) ; /* tmp994 = */ atspre_prerr_string (ATSstrcst(": the static expression needs to be impredicative")) ; /* tmp995 = */ atspre_prerr_string (ATSstrcst(" but is assigned the sort [")) ; /* tmp996 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp988) ; /* tmp997 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp998 = */ atspre_prerr_newline () ; tmp1000 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1000)->tag = 6 ; ats_selptrset_mac(anairiats_sum_5, tmp1000, atslab_0, arg0) ; /* tmp999 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1000) ; tmp986 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp988) ; } /* end of [if] */ return (tmp986) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54899(line=2346, offs=3) -- 54948(line=2346, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1001) ; ATSlocal (ats_ptr_type, tmp1002) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int: tmp1002 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int) ; tmp1001 = ats_castfn_mac(ats_ptr_type, tmp1002) ; return (tmp1001) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55012(line=2351, offs=3) -- 55062(line=2351, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1003) ; ATSlocal (ats_ptr_type, tmp1004) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr: tmp1004 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr) ; tmp1003 = ats_castfn_mac(ats_ptr_type, tmp1004) ; return (tmp1003) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55127(line=2356, offs=3) -- 55177(line=2356, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1005) ; ATSlocal (ats_ptr_type, tmp1006) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool: tmp1006 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool) ; tmp1005 = ats_castfn_mac(ats_ptr_type, tmp1006) ; return (tmp1005) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55244(line=2361, offs=3) -- 55296(line=2361, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1007) ; ATSlocal (ats_ptr_type, tmp1008) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype: tmp1008 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype) ; tmp1007 = ats_castfn_mac(ats_ptr_type, tmp1008) ; return (tmp1007) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55365(line=2366, offs=3) -- 55417(line=2366, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1009) ; ATSlocal (ats_ptr_type, tmp1010) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred: tmp1010 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred) ; tmp1009 = ats_castfn_mac(ats_ptr_type, tmp1010) ; return (tmp1009) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55504(line=2373, offs=3) -- 56073(line=2394, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1011) ; ATSlocal (ats_ptr_type, tmp1012) ; ATSlocal (ats_ptr_type, tmp1013) ; ATSlocal (ats_ptr_type, tmp1014) ; ATSlocal (ats_ptr_type, tmp1015) ; ATSlocal (ats_ptr_type, tmp1016) ; ATSlocal (ats_ptr_type, tmp1017) ; ATSlocal (ats_int_type, tmp1018) ; ATSlocal (ats_int_type, tmp1020) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err: do { /* branch: __ats_lab_194 */ __ats_lab_194_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_197_0 ; } __ats_lab_194_1: tmp1012 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp1013 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_195 */ __ats_lab_195_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_196_0 ; } __ats_lab_195_1: tmp1014 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp1015 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp1016 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp1012, tmp1014) ; tmp1017 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err (tmp1013, tmp1015, arg2) ; tmp1011 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp1011, atslab_0, tmp1016) ; ats_selptrset_mac(anairiats_sum_6, tmp1011, atslab_1, tmp1017) ; break ; /* branch: __ats_lab_196 */ __ats_lab_196_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_196_1: tmp1018 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp1018 ; tmp1011 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_197 */ __ats_lab_197_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_197_1: do { /* branch: __ats_lab_198 */ __ats_lab_198_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_199_0 ; } __ats_lab_198_1: tmp1020 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp1020 ; break ; /* branch: __ats_lab_199 */ __ats_lab_199_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_199_1: break ; } while (0) ; tmp1011 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp1011) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 56160(line=2400, offs=3) -- 56667(line=2420, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_arg_impred (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1021) ; ATSlocal (ats_ptr_type, tmp1022) ; ATSlocal (ats_ptr_type, tmp1023) ; ATSlocal (ats_ptr_type, tmp1024) ; ATSlocal (ats_bool_type, tmp1025) ; // ATSlocal_void (tmp1026) ; ATSlocal (ats_bool_type, tmp1027) ; // ATSlocal_void (tmp1028) ; ATSlocal (ats_ptr_type, tmp1029) ; // ATSlocal_void (tmp1030) ; // ATSlocal_void (tmp1031) ; // ATSlocal_void (tmp1032) ; // ATSlocal_void (tmp1033) ; // ATSlocal_void (tmp1034) ; // ATSlocal_void (tmp1035) ; ATSlocal (ats_ptr_type, tmp1036) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_arg_impred: tmp1022 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg (arg0, arg1) ; tmp1023 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp1022), atslab_s2exp_srt) ; tmp1024 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink (tmp1023) ; tmp1025 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred (tmp1024) ; tmp1027 = atspre_neg_bool (tmp1025) ; if (tmp1027) { tmp1029 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ; /* tmp1028 = */ prerr_error2_loc_02168_ (tmp1029) ; /* tmp1030 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trdn_arg_impred")) ; /* tmp1031 = */ atspre_prerr_string (ATSstrcst(": the static expression needs to be impredicative")) ; /* tmp1032 = */ atspre_prerr_string (ATSstrcst(" but it is assigned the sort [")) ; /* tmp1033 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp1024) ; /* tmp1034 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp1035 = */ atspre_prerr_newline () ; tmp1036 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1036)->tag = 6 ; ats_selptrset_mac(anairiats_sum_5, tmp1036, atslab_0, arg0) ; /* tmp1026 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1036) ; } else { /* empty */ } /* end of [if] */ tmp1021 = tmp1022 ; return (tmp1021) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_arg_impred] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 56747(line=2425, offs=14) -- 56933(line=2432, offs=30) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__witht1ype_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1037) ; ATSlocal (ats_int_type, tmp1038) ; ATSlocal (ats_ptr_type, tmp1039) ; ATSlocal (ats_ptr_type, tmp1040) ; ATSlocal (ats_ptr_type, tmp1041) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__witht1ype_tr: do { /* branch: __ats_lab_200 */ __ats_lab_200_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_201_0 ; } __ats_lab_200_1: tmp1038 = ats_caselptrlab_mac(anairiats_sum_29, arg0, atslab_0) ; tmp1039 = ats_caselptrlab_mac(anairiats_sum_29, arg0, atslab_1) ; tmp1040 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred (tmp1038) ; tmp1041 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp1039, tmp1040) ; tmp1037 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp1037, atslab_0, tmp1041) ; break ; /* branch: __ats_lab_201 */ __ats_lab_201_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_201_1: tmp1037 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp1037) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__witht1ype_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57113(line=2446, offs=5) -- 57463(line=2459, offs=22) */ ATSstaticdec() ats_void_type auxsrt_121 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp1044) ; ATSlocal (ats_ptr_type, tmp1045) ; ATSlocal (ats_ptr_type, tmp1046) ; ATSlocal (ats_ptr_type, tmp1047) ; ATSlocal (ats_ptr_type, tmp1048) ; // ATSlocal_void (tmp1049) ; ATSlocal (ats_ptr_type, tmp1050) ; __ats_lab_auxsrt_121: do { /* branch: __ats_lab_202 */ __ats_lab_202_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_203_0 ; } __ats_lab_202_1: tmp1045 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp1046 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp1048 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp1045), atslab_i0de_sym) ; tmp1047 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp1048, arg0) ; /* tmp1049 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar (tmp1047) ; tmp1050 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp1050, atslab_0, tmp1047) ; ats_selptrset_mac(anairiats_sum_6, tmp1050, atslab_1, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp1050 ; arg0 = arg0 ; arg1 = tmp1046 ; arg2 = arg2 ; goto __ats_lab_auxsrt_121 ; // tail call break ; /* branch: __ats_lab_203 */ __ats_lab_203_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_203_1: break ; } while (0) ; return /* (tmp1044) */ ; } /* end of [auxsrt_121] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57493(line=2462, offs=5) -- 57821(line=2474, offs=22) */ ATSstaticdec() ats_void_type auxsub1_122 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp1051) ; ATSlocal (ats_ptr_type, tmp1052) ; ATSlocal (ats_ptr_type, tmp1053) ; ATSlocal (ats_ptr_type, tmp1054) ; ATSlocal (ats_ptr_type, tmp1055) ; __ats_lab_auxsub1_122: do { /* branch: __ats_lab_204 */ __ats_lab_204_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_205_0 ; } __ats_lab_204_1: tmp1052 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp1053 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp1054 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_alpha (arg0, arg2, tmp1052) ; tmp1055 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp1055, atslab_0, tmp1054) ; ats_selptrset_mac(anairiats_sum_6, tmp1055, atslab_1, ats_ptrget_mac(ats_ptr_type, arg3)) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp1055 ; arg0 = arg0 ; arg1 = tmp1053 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_auxsub1_122 ; // tail call break ; /* branch: __ats_lab_205 */ __ats_lab_205_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_205_1: break ; } while (0) ; return /* (tmp1051) */ ; } /* end of [auxsub1_122] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57852(line=2477, offs=5) -- 58351(line=2495, offs=22) */ ATSstaticdec() ats_void_type auxsub2_123 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ // ATSlocal_void (tmp1056) ; ATSlocal (ats_ptr_type, tmp1057) ; ATSlocal (ats_ptr_type, tmp1058) ; ATSlocal (ats_ptr_type, tmp1059) ; ATSlocal (ats_ptr_type, tmp1060) ; // ATSlocal_void (tmp1061) ; ATSlocal (ats_ptr_type, tmp1062) ; // ATSlocal_void (tmp1063) ; __ats_lab_auxsub2_123: do { /* branch: __ats_lab_206 */ __ats_lab_206_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_207_0 ; } __ats_lab_206_1: tmp1057 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp1058 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ; tmp1060 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp1057), atslab_i0de_sym) ; tmp1059 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp1060, arg1) ; /* tmp1061 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar (tmp1059) ; tmp1062 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp1062, atslab_0, tmp1059) ; ats_selptrset_mac(anairiats_sum_6, tmp1062, atslab_1, ats_ptrget_mac(ats_ptr_type, arg4)) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp1062 ; /* tmp1063 = */ auxsub1_122 (arg0, arg2, tmp1059, arg5) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp1058 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_auxsub2_123 ; // tail call break ; /* branch: __ats_lab_207 */ __ats_lab_207_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_207_1: break ; } while (0) ; return /* (tmp1056) */ ; } /* end of [auxsub2_123] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57025(line=2440, offs=5) -- 59311(line=2533, offs=4) */ ATSstaticdec() ats_void_type loop_120 (ats_ptr_type arg0, ats_ref_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp1043) ; ATSlocal (ats_ptr_type, tmp1064) ; ATSlocal (ats_ptr_type, tmp1065) ; ATSlocal (ats_ptr_type, tmp1066) ; ATSlocal (ats_ptr_type, tmp1067) ; ATSlocal (ats_ptr_type, tmp1068) ; ATSlocal (ats_ptr_type, tmp1069) ; ATSlocal (ats_ptr_type, tmp1070) ; ATSlocal (ats_ptr_type, tmp1071) ; ATSlocal (ats_ptr_type, tmp1072) ; ATSlocal (ats_ptr_type, tmp1073) ; // ATSlocal_void (tmp1074) ; ATSlocal (ats_ptr_type, tmp1075) ; ATSlocal (ats_ptr_type, tmp1076) ; ATSlocal (ats_ptr_type, tmp1077) ; // ATSlocal_void (tmp1078) ; ATSlocal (ats_ptr_type, tmp1079) ; // ATSlocal_void (tmp1080) ; __ats_lab_loop_120: do { /* branch: __ats_lab_208 */ __ats_lab_208_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_214_0 ; } __ats_lab_208_1: tmp1064 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp1065 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp1066 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, tmp1064), atslab_s1qua_node) ; do { /* branch: __ats_lab_209 */ __ats_lab_209_0: if (((ats_sum_ptr_type)tmp1066)->tag != 0) { goto __ats_lab_210_0 ; } __ats_lab_209_1: tmp1067 = ats_caselptrlab_mac(anairiats_sum_5, tmp1066, atslab_0) ; tmp1068 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool (tmp1067) ; tmp1069 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp1069, atslab_0, tmp1068) ; ats_selptrset_mac(anairiats_sum_6, tmp1069, atslab_1, ats_ptrget_mac(ats_ptr_type, arg2)) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp1069 ; arg0 = tmp1065 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_120 ; // tail call break ; /* branch: __ats_lab_210 */ __ats_lab_210_0: // if (((ats_sum_ptr_type)tmp1066)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_210_1: tmp1070 = ats_caselptrlab_mac(anairiats_sum_9, tmp1066, atslab_0) ; tmp1071 = ats_caselptrlab_mac(anairiats_sum_9, tmp1066, atslab_1) ; tmp1072 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr (tmp1071) ; do { /* branch: __ats_lab_211 */ __ats_lab_211_0: if (((ats_sum_ptr_type)tmp1072)->tag != 0) { goto __ats_lab_212_0 ; } __ats_lab_211_1: tmp1073 = ats_caselptrlab_mac(anairiats_sum_5, tmp1072, atslab_0) ; /* tmp1074 = */ auxsrt_121 (tmp1073, tmp1070, arg1) ; arg0 = tmp1065 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_120 ; // tail call break ; /* branch: __ats_lab_212 */ __ats_lab_212_0: if (((ats_sum_ptr_type)tmp1072)->tag != 1) { goto __ats_lab_213_0 ; } __ats_lab_212_1: tmp1075 = ats_caselptrlab_mac(anairiats_sum_17, tmp1072, atslab_0) ; tmp1076 = ats_caselptrlab_mac(anairiats_sum_17, tmp1072, atslab_1) ; tmp1077 = ats_caselptrlab_mac(anairiats_sum_17, tmp1072, atslab_2) ; /* tmp1078 = */ auxsub2_123 (tmp1075, tmp1076, tmp1077, tmp1070, arg1, arg2) ; arg0 = tmp1065 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_120 ; // tail call break ; /* branch: __ats_lab_213 */ __ats_lab_213_0: // if (((ats_sum_ptr_type)tmp1072)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_213_1: tmp1079 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; /* tmp1080 = */ auxsrt_121 (tmp1079, tmp1070, arg1) ; arg0 = tmp1065 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_120 ; // tail call break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_214 */ __ats_lab_214_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_214_1: break ; } while (0) ; return /* (tmp1043) */ ; } /* end of [loop_120] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_126 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1087) ; ATSlocal (ats_ptr_type, tmp1088) ; ATSlocal (ats_ptr_type, tmp1089) ; ATSlocal (ats_ptr_type, tmp1090) ; __ats_lab_revapp_126: do { /* branch: __ats_lab_215 */ __ats_lab_215_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_216_0 ; } __ats_lab_215_1: tmp1088 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp1089 = ats_ptrget_mac(ats_ptr_type, tmp1088) ; ats_ptrget_mac(ats_ptr_type, tmp1088) = arg1 ; tmp1090 = arg0 ; arg0 = tmp1089 ; arg1 = tmp1090 ; goto __ats_lab_revapp_126 ; // tail call break ; /* branch: __ats_lab_216 */ __ats_lab_216_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_216_1: tmp1087 = arg1 ; break ; } while (0) ; return (tmp1087) ; } /* end of [revapp_126] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1086) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp1086 = revapp_126 (arg0, arg1) ; return (tmp1086) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1085) ; ATSlocal (ats_ptr_type, tmp1091) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp1091 = (ats_sum_ptr_type)0 ; tmp1085 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp1091) ; return (tmp1085) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57005(line=2438, offs=13) -- 59590(line=2549, offs=4) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp1042) ; ATSlocal (ats_ptr_type, tmp1081) ; ATSlocal (ats_ptr_type, tmp1082) ; // ATSlocal_void (tmp1083) ; ATSlocal (ats_ptr_type, tmp1084) ; ATSlocal (ats_ptr_type, tmp1092) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr: /* ats_ptr_type tmp1081 ; */ tmp1081 = (ats_sum_ptr_type)0 ; /* ats_ptr_type tmp1082 ; */ tmp1082 = (ats_sum_ptr_type)0 ; /* tmp1083 = */ loop_120 (arg0, (&tmp1081), (&tmp1082)) ; tmp1084 = list_vt_reverse_01506_ats_ptr_type (tmp1081) ; tmp1092 = list_vt_reverse_01506_ats_ptr_type (tmp1082) ; tmp1042 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (ats_castfn_mac(ats_ptr_type, tmp1084), ats_castfn_mac(ats_ptr_type, tmp1092)) ; return (tmp1042) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 59657(line=2554, offs=11) -- 59694(line=2554, offs=48) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp1093) ; ATSlocal (ats_ptr_type, tmp1094) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr: tmp1094 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_q1marg_arg) ; tmp1093 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp1094) ; return (tmp1093) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4) */ ATSstaticdec() ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1099) ; __ats_lab_list_is_nil_01294_: do { /* branch: __ats_lab_217 */ __ats_lab_217_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_218_0 ; } __ats_lab_217_1: tmp1099 = ats_false_bool ; break ; /* branch: __ats_lab_218 */ __ats_lab_218_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_218_1: tmp1099 = ats_true_bool ; break ; } while (0) ; return (tmp1099) ; } /* end of [list_is_nil_01294_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02170_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp1103) ; // ATSlocal_void (tmp1104) ; __ats_lab_prerr_error3_loc_02170_: /* tmp1104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp1103 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp1103) */ ; } /* end of [prerr_error3_loc_02170_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 59721(line=2557, offs=15) -- 60166(line=2583, offs=4) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr_dec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp1095) ; ATSlocal (anairiats_rec_1, tmp1096) ; ATSlocal (ats_ptr_type, tmp1097) ; ATSlocal (ats_bool_type, tmp1098) ; ATSlocal (ats_ptr_type, tmp1100) ; ATSlocal (ats_ptr_type, tmp1101) ; // ATSlocal_void (tmp1102) ; // ATSlocal_void (tmp1105) ; // ATSlocal_void (tmp1106) ; // ATSlocal_void (tmp1107) ; // ATSlocal_void (tmp1108) ; ATSlocal (ats_ptr_type, tmp1109) ; ATSlocal (ats_ptr_type, tmp1110) ; ATSlocal (ats_ptr_type, tmp1111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr_dec: tmp1097 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_q1marg_arg) ; tmp1096 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp1097) ; tmp1100 = ats_select_mac(tmp1096, atslab_s2qua_sps) ; tmp1098 = list_is_nil_01294_ (tmp1100) ; if (tmp1098) { tmp1095 = tmp1096 ; } else { tmp1101 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_q1marg_loc) ; /* tmp1102 = */ prerr_error3_loc_02170_ (tmp1101) ; /* tmp1105 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("q1marg_tr_dec")) ; /* tmp1106 = */ atspre_prerr_string (ATSstrcst(": template arguments cannot be constrained.")) ; /* tmp1107 = */ atspre_prerr_newline () ; tmp1109 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1109)->tag = 16 ; ats_selptrset_mac(anairiats_sum_5, tmp1109, atslab_0, arg0) ; /* tmp1108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1109) ; tmp1110 = ats_select_mac(tmp1096, atslab_s2qua_svs) ; tmp1111 = (ats_sum_ptr_type)0 ; tmp1095 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (tmp1110, tmp1111) ; } /* end of [if] */ return (tmp1095) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr_dec] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 60379(line=2594, offs=5) -- 60756(line=2610, offs=4) */ ATSstaticdec() ats_void_type auxerr_132 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp1113) ; // ATSlocal_void (tmp1114) ; ATSlocal (ats_ptr_type, tmp1115) ; // ATSlocal_void (tmp1116) ; // ATSlocal_void (tmp1117) ; // ATSlocal_void (tmp1118) ; // ATSlocal_void (tmp1119) ; // ATSlocal_void (tmp1120) ; // ATSlocal_void (tmp1121) ; ATSlocal (ats_ptr_type, tmp1122) ; __ats_lab_auxerr_132: tmp1115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg0), atslab_s1rt_loc) ; /* tmp1114 = */ prerr_error2_loc_02168_ (tmp1115) ; /* tmp1116 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1rtext_tr")) ; /* tmp1117 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp1118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0rtq (arg1) ; /* tmp1119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp1120 = */ atspre_prerr_string (ATSstrcst("] refers to an unrecognized sort.")) ; /* tmp1121 = */ atspre_prerr_newline () ; tmp1122 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1122)->tag = 17 ; ats_selptrset_mac(anairiats_sum_5, tmp1122, atslab_0, env0) ; /* tmp1113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1122) ; return /* (tmp1113) */ ; } /* end of [auxerr_132] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxerr_132_closure_type ; ats_void_type auxerr_132_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { auxerr_132 (((auxerr_132_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr_132_closure_init (auxerr_132_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr_132_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxerr_132_closure_make (ats_ptr_type env0) { auxerr_132_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_132_closure_type)) ; auxerr_132_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4) */ ATSstaticdec() ats_void_type loop_134 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp1150) ; ATSlocal (ats_ptr_type, tmp1151) ; ATSlocal (ats_ptr_type, tmp1152) ; ATSlocal (ats_ptr_type, tmp1153) ; ATSlocal (ats_ptr_type, tmp1154) ; __ats_lab_loop_134: do { /* branch: __ats_lab_230 */ __ats_lab_230_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_231_0 ; } __ats_lab_230_1: tmp1151 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp1152 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp1153 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp1153, atslab_0, tmp1151) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp1153 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp1154 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp1152 ; arg1 = arg1 ; arg2 = tmp1154 ; goto __ats_lab_loop_134 ; // tail call break ; /* branch: __ats_lab_231 */ __ats_lab_231_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_231_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp1150) */ ; } /* end of [loop_134] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4) */ ATSstaticdec() ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1148) ; ATSlocal (ats_ptr_type, tmp1149) ; // ATSlocal_void (tmp1155) ; __ats_lab_list_append_01312_ats_ptr_type: /* ats_ptr_type tmp1149 ; */ /* tmp1155 = */ loop_134 (arg0, arg1, (&tmp1149)) ; tmp1148 = tmp1149 ; return (tmp1148) ; } /* end of [list_append_01312_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 60236(line=2588, offs=12) -- 62002(line=2654, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1112) ; ATSlocal (ats_ptr_type, tmp1123) ; ATSlocal (ats_ptr_type, tmp1124) ; ATSlocal (ats_ptr_type, tmp1125) ; ATSlocal (ats_ptr_type, tmp1126) ; ATSlocal (ats_ptr_type, tmp1127) ; ATSlocal (ats_ptr_type, tmp1128) ; ATSlocal (ats_ptr_type, tmp1129) ; // ATSlocal_void (tmp1130) ; ATSlocal (ats_ptr_type, tmp1131) ; ATSlocal (ats_ptr_type, tmp1132) ; ATSlocal (ats_ptr_type, tmp1133) ; ATSlocal (ats_ptr_type, tmp1134) ; ATSlocal (ats_ptr_type, tmp1135) ; ATSlocal (ats_ptr_type, tmp1136) ; ATSlocal (ats_ptr_type, tmp1137) ; ATSlocal (ats_ptr_type, tmp1138) ; ATSlocal (ats_ptr_type, tmp1139) ; // ATSlocal_void (tmp1140) ; // ATSlocal_void (tmp1141) ; // ATSlocal_void (tmp1142) ; ATSlocal (ats_ptr_type, tmp1143) ; // ATSlocal_void (tmp1144) ; ATSlocal (ats_ptr_type, tmp1145) ; ATSlocal (ats_ptr_type, tmp1146) ; ATSlocal (ats_ptr_type, tmp1147) ; ATSlocal (ats_ptr_type, tmp1156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr: tmp1123 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg0), atslab_s1rtext_node) ; do { /* branch: __ats_lab_219 */ __ats_lab_219_0: if (((ats_sum_ptr_type)tmp1123)->tag != 0) { goto __ats_lab_224_0 ; } __ats_lab_219_1: tmp1124 = ats_caselptrlab_mac(anairiats_sum_5, tmp1123, atslab_0) ; tmp1125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, tmp1124), atslab_s1rt_node) ; do { /* branch: __ats_lab_220 */ __ats_lab_220_0: if (((ats_sum_ptr_type)tmp1125)->tag != 2) { goto __ats_lab_223_0 ; } __ats_lab_220_1: tmp1126 = ats_caselptrlab_mac(anairiats_sum_9, tmp1125, atslab_0) ; tmp1127 = ats_caselptrlab_mac(anairiats_sum_9, tmp1125, atslab_1) ; tmp1128 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua (tmp1126, tmp1127) ; do { /* branch: __ats_lab_221 */ __ats_lab_221_0: if (tmp1128 == (ats_sum_ptr_type)0) { goto __ats_lab_222_0 ; } __ats_lab_221_1: tmp1129 = ats_caselptrlab_mac(anairiats_sum_4, tmp1128, atslab_0) ; ATS_FREE(tmp1128) ; tmp1112 = tmp1129 ; break ; /* branch: __ats_lab_222 */ __ats_lab_222_0: // if (tmp1128 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_222_1: /* tmp1130 = */ auxerr_132 (arg0, tmp1124, tmp1126, tmp1127) ; tmp1112 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEerr_2) ; break ; } while (0) ; break ; /* branch: __ats_lab_223 */ __ats_lab_223_0: __ats_lab_223_1: tmp1131 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp1124) ; tmp1112 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1112)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp1112, atslab_0, tmp1131) ; break ; } while (0) ; break ; /* branch: __ats_lab_224 */ __ats_lab_224_0: // if (((ats_sum_ptr_type)tmp1123)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_224_1: tmp1132 = ats_caselptrlab_mac(anairiats_sum_17, tmp1123, atslab_0) ; tmp1133 = ats_caselptrlab_mac(anairiats_sum_17, tmp1123, atslab_1) ; tmp1134 = ats_caselptrlab_mac(anairiats_sum_17, tmp1123, atslab_2) ; tmp1135 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr (tmp1133) ; do { /* branch: __ats_lab_225 */ __ats_lab_225_0: if (((ats_sum_ptr_type)tmp1135)->tag != 0) { goto __ats_lab_226_0 ; } __ats_lab_225_1: tmp1137 = ats_caselptrlab_mac(anairiats_sum_5, tmp1135, atslab_0) ; tmp1136 = tmp1137 ; break ; /* branch: __ats_lab_226 */ __ats_lab_226_0: if (((ats_sum_ptr_type)tmp1135)->tag != 1) { goto __ats_lab_227_0 ; } __ats_lab_226_1: tmp1138 = ats_caselptrlab_mac(anairiats_sum_17, tmp1135, atslab_1) ; tmp1136 = tmp1138 ; break ; /* branch: __ats_lab_227 */ __ats_lab_227_0: // if (((ats_sum_ptr_type)tmp1135)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_227_1: tmp1136 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; break ; } while (0) ; tmp1139 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp1132, tmp1136) ; /* tmp1140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp1141 = ats_selsin_mac(tmp1140, atslab_1) */ ; /* tmp1142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar (tmp1139) ; tmp1143 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool (tmp1134) ; /* tmp1144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; do { /* branch: __ats_lab_228 */ __ats_lab_228_0: if (((ats_sum_ptr_type)tmp1135)->tag != 0) { goto __ats_lab_229_0 ; } __ats_lab_228_1: tmp1145 = tmp1143 ; break ; /* branch: __ats_lab_229 */ __ats_lab_229_0: if (((ats_sum_ptr_type)tmp1135)->tag != 1) { goto __ats_lab_232_0 ; } __ats_lab_229_1: tmp1146 = ats_caselptrlab_mac(anairiats_sum_17, tmp1135, atslab_0) ; tmp1147 = ats_caselptrlab_mac(anairiats_sum_17, tmp1135, atslab_2) ; tmp1156 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_alpha (tmp1146, tmp1139, tmp1147) ; tmp1145 = list_append_01312_ats_ptr_type (tmp1143, tmp1156) ; break ; /* branch: __ats_lab_232 */ __ats_lab_232_0: // if (((ats_sum_ptr_type)tmp1135)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_232_1: tmp1145 = tmp1143 ; break ; } while (0) ; tmp1112 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp1112)->tag = 1 ; ats_selptrset_mac(anairiats_sum_17, tmp1112, atslab_0, tmp1139) ; ats_selptrset_mac(anairiats_sum_17, tmp1112, atslab_1, tmp1136) ; ats_selptrset_mac(anairiats_sum_17, tmp1112, atslab_2, tmp1145) ; break ; } while (0) ; return (tmp1112) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62070(line=2659, offs=13) -- 62271(line=2665, offs=8) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1157) ; ATSlocal (ats_ptr_type, tmp1158) ; ATSlocal (ats_ptr_type, tmp1159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_tr: do { /* branch: __ats_lab_233 */ __ats_lab_233_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_234_0 ; } __ats_lab_233_1: tmp1157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGone_0) ; break ; /* branch: __ats_lab_234 */ __ats_lab_234_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_235_0 ; } __ats_lab_234_1: tmp1157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGall_1) ; break ; /* branch: __ats_lab_235 */ __ats_lab_235_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_235_1: tmp1158 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp1159 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (tmp1158) ; tmp1157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1157)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp1157, atslab_0, tmp1159) ; break ; } while (0) ; return (tmp1157) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62343(line=2669, offs=13) -- 62593(line=2680, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1160) ; ATSlocal (ats_ptr_type, tmp1161) ; ATSlocal (ats_ptr_type, tmp1162) ; ATSlocal (ats_ptr_type, tmp1163) ; ATSlocal (ats_ptr_type, tmp1164) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr: tmp1161 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg0), atslab_s1exparg_loc) ; tmp1162 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg0), atslab_s1exparg_node) ; do { /* branch: __ats_lab_236 */ __ats_lab_236_0: if (((ats_sum_ptr_type)tmp1162)->tag != 0) { goto __ats_lab_237_0 ; } __ats_lab_236_1: tmp1160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one (tmp1161) ; break ; /* branch: __ats_lab_237 */ __ats_lab_237_0: if (((ats_sum_ptr_type)tmp1162)->tag != 1) { goto __ats_lab_238_0 ; } __ats_lab_237_1: tmp1160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all (tmp1161) ; break ; /* branch: __ats_lab_238 */ __ats_lab_238_0: // if (((ats_sum_ptr_type)tmp1162)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_238_1: tmp1163 = ats_caselptrlab_mac(anairiats_sum_5, tmp1162, atslab_0) ; tmp1164 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup (tmp1163) ; tmp1160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq (tmp1161, tmp1164) ; break ; } while (0) ; return (tmp1160) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62644(line=2683, offs=16) -- 62711(line=2685, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1165) ; ATSlocal (ats_ptr_type, tmp1166) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr: tmp1166 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr) ; tmp1165 = ats_castfn_mac(ats_ptr_type, tmp1166) ; return (tmp1165) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62783(line=2690, offs=13) -- 62916(line=2696, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1167) ; ATSlocal (ats_ptr_type, tmp1168) ; ATSlocal (ats_ptr_type, tmp1169) ; ATSlocal (ats_ptr_type, tmp1170) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr: tmp1168 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_t1mpmarg_loc) ; tmp1169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_t1mpmarg_arg) ; tmp1170 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup (tmp1169) ; tmp1167 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make (tmp1168, tmp1170) ; return (tmp1167) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62967(line=2699, offs=16) -- 63034(line=2701, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarglst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1171) ; ATSlocal (ats_ptr_type, tmp1172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarglst_tr: tmp1172 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr) ; tmp1171 = ats_castfn_mac(ats_ptr_type, tmp1172) ; return (tmp1171) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarglst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 63160(line=2711, offs=5) -- 63584(line=2735, offs=2) */ ATSstaticdec() ats_void_type auxerr1_141 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp1174) ; ATSlocal (ats_ptr_type, tmp1175) ; // ATSlocal_void (tmp1176) ; // ATSlocal_void (tmp1177) ; // ATSlocal_void (tmp1178) ; // ATSlocal_void (tmp1179) ; ATSlocal (ats_bool_type, tmp1180) ; // ATSlocal_void (tmp1181) ; // ATSlocal_void (tmp1182) ; ATSlocal (ats_bool_type, tmp1183) ; // ATSlocal_void (tmp1184) ; ATSlocal (ats_ptr_type, tmp1185) ; __ats_lab_auxerr1_141: tmp1175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_d1atcon_loc) ; /* tmp1176 = */ prerr_error2_loc_02168_ (tmp1175) ; /* tmp1177 = */ atspre_prerr_string (ATSstrcst(": the constructor [")) ; /* tmp1178 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ; tmp1180 = atspre_lt_int_int (arg2, 0) ; if (tmp1180) { /* tmp1181 = */ atspre_prerr_string (ATSstrcst("] is expected to be given more indexes.")) ; /* tmp1179 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp1183 = atspre_gt_int_int (arg2, 0) ; if (tmp1183) { /* tmp1184 = */ atspre_prerr_string (ATSstrcst("] is expected to be given fewer indexes.")) ; /* tmp1182 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp1185 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1185)->tag = 23 ; ats_selptrset_mac(anairiats_sum_5, tmp1185, atslab_0, arg0) ; /* tmp1174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1185) ; return /* (tmp1174) */ ; } /* end of [auxerr1_141] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 63615(line=2737, offs=5) -- 63899(line=2752, offs=2) */ ATSstaticdec() ats_void_type auxerr2_142 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1186) ; ATSlocal (ats_ptr_type, tmp1187) ; // ATSlocal_void (tmp1188) ; // ATSlocal_void (tmp1189) ; // ATSlocal_void (tmp1190) ; // ATSlocal_void (tmp1191) ; // ATSlocal_void (tmp1192) ; ATSlocal (ats_ptr_type, tmp1193) ; __ats_lab_auxerr2_142: tmp1187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_d1atcon_loc) ; /* tmp1188 = */ prerr_error2_loc_02168_ (tmp1187) ; /* tmp1189 = */ atspre_prerr_string (ATSstrcst(": the constructor [")) ; /* tmp1190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ; /* tmp1191 = */ atspre_prerr_string (ATSstrcst("] needs some indexes (but is given none).")) ; /* tmp1192 = */ atspre_prerr_newline () ; tmp1193 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1193)->tag = 23 ; ats_selptrset_mac(anairiats_sum_5, tmp1193, atslab_0, arg0) ; /* tmp1186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1193) ; return /* (tmp1186) */ ; } /* end of [auxerr2_142] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 63930(line=2754, offs=5) -- 64193(line=2763, offs=2) */ ATSstaticdec() ats_void_type auxerr3_143 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1194) ; // ATSlocal_void (tmp1195) ; ATSlocal (ats_ptr_type, tmp1196) ; // ATSlocal_void (tmp1197) ; // ATSlocal_void (tmp1198) ; // ATSlocal_void (tmp1199) ; // ATSlocal_void (tmp1200) ; ATSlocal (ats_ptr_type, tmp1201) ; __ats_lab_auxerr3_143: tmp1196 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_d1atcon_loc) ; /* tmp1195 = */ prerr_error2_loc_02168_ (tmp1196) ; /* tmp1197 = */ atspre_prerr_string (ATSstrcst(": the constructor [")) ; /* tmp1198 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ; /* tmp1199 = */ atspre_prerr_string (ATSstrcst("] needs no indexes (but is given some).")) ; /* tmp1200 = */ atspre_prerr_newline () ; tmp1201 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1201)->tag = 23 ; ats_selptrset_mac(anairiats_sum_5, tmp1201, atslab_0, arg0) ; /* tmp1194 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1201) ; return /* (tmp1194) */ ; } /* end of [auxerr3_143] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_146 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp1207) ; ATSlocal (ats_ptr_type, tmp1208) ; ATSlocal (ats_ptr_type, tmp1209) ; // ATSlocal_void (tmp1210) ; __ats_lab_loop_146: do { /* branch: __ats_lab_239 */ __ats_lab_239_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_240_0 ; } __ats_lab_239_1: tmp1208 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp1209 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; /* tmp1210 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp1208, arg2) ; arg0 = tmp1209 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_146 ; // tail call break ; /* branch: __ats_lab_240 */ __ats_lab_240_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_240_1: break ; } while (0) ; return /* (tmp1207) */ ; } /* end of [loop_146] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp1206) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp1206 = */ loop_146 (arg0, arg1, arg2) ; return /* (tmp1206) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1205) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp1205 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp1205) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_149 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp1214) ; ATSlocal (ats_ptr_type, tmp1215) ; ATSlocal (ats_ptr_type, tmp1216) ; ATSlocal (anairiats_rec_1, tmp1217) ; ATSlocal (ats_ptr_type, tmp1218) ; ATSlocal (ats_ptr_type, tmp1219) ; ATSlocal (ats_ptr_type, tmp1220) ; __ats_lab_loop_149: do { /* branch: __ats_lab_241 */ __ats_lab_241_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_242_0 ; } __ats_lab_241_1: tmp1215 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp1216 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp1217 = ((anairiats_rec_1(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp1215, arg3) ; tmp1218 = ATS_MALLOC(sizeof(anairiats_sum_37)) ; ats_selptrset_mac(anairiats_sum_37, tmp1218, atslab_0, tmp1217) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp1218 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp1219 = &ats_caselptrlab_mac(anairiats_sum_37, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp1216 ; arg1 = arg1 ; arg2 = tmp1219 ; arg3 = arg3 ; goto __ats_lab_loop_149 ; // tail call break ; /* branch: __ats_lab_242 */ __ats_lab_242_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_242_1: tmp1220 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp1220 ; break ; } while (0) ; return /* (tmp1214) */ ; } /* end of [loop_149] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1213) ; ATSlocal (ats_ptr_type, tmp1221) ; // ATSlocal_void (tmp1222) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_anairiats_rec_1: /* ats_ptr_type tmp1221 ; */ /* tmp1222 = */ loop_149 (arg0, arg1, (&tmp1221), arg2) ; tmp1213 = tmp1221 ; return (tmp1213) ; } /* end of [list_map_funenv_01412_ats_ptr_type_anairiats_rec_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1212) ; __ats_lab_list_map_fun_01413_ats_ptr_type_anairiats_rec_1: tmp1212 = list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp1212) ; } /* end of [list_map_fun_01413_ats_ptr_type_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 64425(line=2774, offs=7) -- 64691(line=2784, offs=10) */ ATSstaticdec() ats_void_type aux_150 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1224) ; ATSlocal (ats_ptr_type, tmp1225) ; ATSlocal (ats_ptr_type, tmp1226) ; // ATSlocal_void (tmp1227) ; ATSlocal (anairiats_rec_1, tmp1228) ; ATSlocal (ats_ptr_type, tmp1229) ; ATSlocal (ats_ptr_type, tmp1230) ; __ats_lab_aux_150: do { /* branch: __ats_lab_243 */ __ats_lab_243_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_244_0 ; } __ats_lab_243_1: break ; /* branch: __ats_lab_244 */ __ats_lab_244_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_244_1: tmp1225 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp1226 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; /* tmp1227 = */ aux_150 (arg0, tmp1226) ; tmp1229 = (ats_sum_ptr_type)0 ; tmp1228 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (tmp1225, tmp1229) ; tmp1230 = ATS_MALLOC(sizeof(anairiats_sum_37)) ; ats_selptrset_mac(anairiats_sum_37, tmp1230, atslab_0, tmp1228) ; ats_selptrset_mac(anairiats_sum_37, tmp1230, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp1230 ; break ; } while (0) ; return /* (tmp1224) */ ; } /* end of [aux_150] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 65270(line=2812, offs=7) -- 65617(line=2824, offs=33) */ ATSstaticdec() ats_ptr_type aux_151 (ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1240) ; ATSlocal (ats_ptr_type, tmp1241) ; ATSlocal (ats_ptr_type, tmp1242) ; ATSlocal (ats_ptr_type, tmp1243) ; ATSlocal (ats_bool_type, tmp1244) ; ATSlocal (ats_ptr_type, tmp1245) ; ATSlocal (ats_ptr_type, tmp1246) ; ATSlocal (ats_int_type, tmp1247) ; __ats_lab_aux_151: do { /* branch: __ats_lab_247 */ __ats_lab_247_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_248_0 ; } __ats_lab_247_1: tmp1241 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp1242 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp1244 = atspre_lt_int_int (arg0, env0) ; if (tmp1244) { tmp1243 = env1 ; } else { tmp1243 = env2 ; } /* end of [if] */ tmp1245 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp1241, tmp1243) ; tmp1247 = atspre_add_int_int (arg0, 1) ; tmp1246 = aux_151 (env0, env1, env2, tmp1247, tmp1242) ; tmp1240 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp1240, atslab_0, tmp1245) ; ats_selptrset_mac(anairiats_sum_6, tmp1240, atslab_1, tmp1246) ; break ; /* branch: __ats_lab_248 */ __ats_lab_248_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_248_1: tmp1240 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp1240) ; } /* end of [aux_151] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_151_closure_type ; ats_ptr_type aux_151_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1) { return aux_151 (((aux_151_closure_type*)cloptr)->closure_env_0, ((aux_151_closure_type*)cloptr)->closure_env_1, ((aux_151_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type aux_151_closure_init (aux_151_closure_type *p_clo, ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_151_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_151_closure_make (ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_151_closure_type *p_clo = ATS_MALLOC(sizeof(aux_151_closure_type)) ; aux_151_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52087(line=1854, offs=21) -- 52314(line=1862, offs=6) */ ATSstaticdec() ats_int_type list_length_compare_01411_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp1262) ; ATSlocal (ats_ptr_type, tmp1263) ; ATSlocal (ats_ptr_type, tmp1264) ; __ats_lab_list_length_compare_01411_ats_ptr_type_2cats_ptr_type: do { /* branch: __ats_lab_254 */ __ats_lab_254_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_257_0 ; } __ats_lab_254_1: tmp1263 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_255 */ __ats_lab_255_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_256_0 ; } __ats_lab_255_1: tmp1264 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; arg0 = tmp1263 ; arg1 = tmp1264 ; goto __ats_lab_list_length_compare_01411_ats_ptr_type_2cats_ptr_type ; // tail call break ; /* branch: __ats_lab_256 */ __ats_lab_256_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_256_1: tmp1262 = 1 ; break ; } while (0) ; break ; /* branch: __ats_lab_257 */ __ats_lab_257_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_257_1: do { /* branch: __ats_lab_258 */ __ats_lab_258_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_259_0 ; } __ats_lab_258_1: tmp1262 = -1 ; break ; /* branch: __ats_lab_259 */ __ats_lab_259_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_259_1: tmp1262 = 0 ; break ; } while (0) ; break ; } while (0) ; return (tmp1262) ; } /* end of [list_length_compare_01411_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 63105(line=2707, offs=1) -- 67394(line=2902, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1atcon_tr (ats_ptr_type arg0, ats_bool_type arg1, ats_bool_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1173) ; // ATSlocal_void (tmp1202) ; // ATSlocal_void (tmp1203) ; // ATSlocal_void (tmp1204) ; ATSlocal (ats_ptr_type, tmp1211) ; ATSlocal (ats_ptr_type, tmp1223) ; // ATSlocal_void (tmp1231) ; ATSlocal (ats_ptr_type, tmp1232) ; ATSlocal (ats_ptr_type, tmp1233) ; ATSlocal (ats_ptr_type, tmp1234) ; ATSlocal (ats_ptr_type, tmp1235) ; ATSlocal (ats_int_type, tmp1236) ; ATSlocal (ats_ptr_type, tmp1237) ; ATSlocal (ats_ptr_type, tmp1238) ; ATSlocal (ats_ptr_type, tmp1239) ; ATSlocal (ats_ptr_type, tmp1248) ; ATSlocal (ats_ptr_type, tmp1249) ; ATSlocal (ats_ptr_type, tmp1250) ; ATSlocal (ats_ptr_type, tmp1251) ; ATSlocal (ats_ptr_type, tmp1252) ; ATSlocal (ats_ptr_type, tmp1253) ; ATSlocal (ats_int_type, tmp1254) ; ATSlocal (ats_ptr_type, tmp1255) ; // ATSlocal_void (tmp1256) ; ATSlocal (ats_bool_type, tmp1257) ; ATSlocal (ats_ptr_type, tmp1258) ; ATSlocal (ats_ptr_type, tmp1259) ; ATSlocal (ats_ptr_type, tmp1260) ; ATSlocal (ats_int_type, tmp1261) ; ATSlocal (ats_ptr_type, tmp1265) ; ATSlocal (ats_bool_type, tmp1266) ; ATSlocal (ats_ptr_type, tmp1267) ; // ATSlocal_void (tmp1268) ; ATSlocal (ats_ptr_type, tmp1269) ; // ATSlocal_void (tmp1270) ; // ATSlocal_void (tmp1271) ; ATSlocal (ats_ptr_type, tmp1272) ; ATSlocal (ats_int_type, tmp1273) ; ATSlocal (ats_ptr_type, tmp1274) ; // ATSlocal_void (tmp1275) ; // ATSlocal_void (tmp1276) ; ATSlocal (ats_bool_type, tmp1277) ; // ATSlocal_void (tmp1278) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1atcon_tr: /* tmp1202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp1203 = ats_selsin_mac(tmp1202, atslab_1) */ ; /* tmp1204 = */ list_app_fun_01301_ats_ptr_type (arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst) ; /* ats_ptr_type tmp1211 ; */ tmp1223 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_qua) ; tmp1211 = list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (tmp1223, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr) ; /* tmp1231 = */ aux_150 ((&tmp1211), arg3) ; tmp1232 = ats_castfn_mac(ats_ptr_type, tmp1211) ; tmp1233 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ; do { /* branch: __ats_lab_245 */ __ats_lab_245_0: if (((ats_sum_ptr_type)tmp1233)->tag != 1) { goto __ats_lab_246_0 ; } __ats_lab_245_1: tmp1235 = ats_caselptrlab_mac(anairiats_sum_9, tmp1233, atslab_0) ; tmp1234 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp1234, atslab_0, tmp1235) ; break ; /* branch: __ats_lab_246 */ __ats_lab_246_0: __ats_lab_246_1: tmp1234 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp1236 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_npf) ; tmp1237 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_arg) ; if (arg1) { tmp1238 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view ; } else { tmp1238 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop ; } /* end of [if] */ if (arg2) { tmp1239 = tmp1238 ; } else { if (arg1) { tmp1239 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; } else { tmp1239 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; } /* end of [if] */ } /* end of [if] */ tmp1248 = aux_151 (tmp1236, tmp1238, tmp1239, 0, tmp1237) ; tmp1249 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_sym) ; tmp1250 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_ind) ; do { /* branch: __ats_lab_249 */ __ats_lab_249_0: if (tmp1250 != (ats_sum_ptr_type)0) { goto __ats_lab_250_0 ; } __ats_lab_249_1: if (tmp1234 != (ats_sum_ptr_type)0) { goto __ats_lab_251_1 ; } __ats_lab_249_2: tmp1251 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_250 */ __ats_lab_250_0: if (tmp1250 == (ats_sum_ptr_type)0) { goto __ats_lab_251_0 ; } __ats_lab_250_1: if (tmp1234 == (ats_sum_ptr_type)0) { goto __ats_lab_260_1 ; } __ats_lab_250_2: tmp1252 = ats_caselptrlab_mac(anairiats_sum_4, tmp1250, atslab_0) ; tmp1253 = ats_caselptrlab_mac(anairiats_sum_4, tmp1234, atslab_0) ; /* ats_int_type tmp1254 ; */ tmp1254 = 0 ; tmp1255 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err (tmp1252, tmp1253, (&tmp1254)) ; tmp1257 = atspre_neq_int_int (tmp1254, 0) ; if (tmp1257) { /* tmp1256 = */ auxerr1_141 (arg5, tmp1249, tmp1254) ; } else { /* empty */ } /* end of [if] */ tmp1251 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp1251, atslab_0, tmp1255) ; break ; /* branch: __ats_lab_251 */ __ats_lab_251_0: if (tmp1250 != (ats_sum_ptr_type)0) { goto __ats_lab_260_0 ; } __ats_lab_251_1: // if (tmp1234 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_251_2: tmp1258 = ats_caselptrlab_mac(anairiats_sum_4, tmp1234, atslab_0) ; do { /* branch: __ats_lab_252 */ __ats_lab_252_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_253_0 ; } __ats_lab_252_1: tmp1259 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_253 */ __ats_lab_253_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_253_1: tmp1260 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ; tmp1259 = tmp1260 ; break ; } while (0) ; tmp1261 = list_length_compare_01411_ats_ptr_type_2cats_ptr_type (tmp1259, tmp1258) ; tmp1266 = atspre_ieq (tmp1261, 0) ; if (tmp1266) { tmp1267 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp1259, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) ; tmp1265 = ats_castfn_mac(ats_ptr_type, tmp1267) ; } else { /* tmp1268 = */ auxerr2_142 (arg5, tmp1249) ; tmp1269 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp1258, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) ; tmp1265 = ats_castfn_mac(ats_ptr_type, tmp1269) ; } /* end of [if] */ tmp1251 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp1251, atslab_0, tmp1265) ; break ; /* branch: __ats_lab_260 */ __ats_lab_260_0: // if (tmp1250 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_260_1: // if (tmp1234 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_260_2: /* tmp1270 = */ auxerr3_143 (arg5, tmp1249) ; tmp1251 = (ats_sum_ptr_type)0 ; break ; } while (0) ; /* tmp1271 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp1272 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_loc) ; if (arg2) { tmp1273 = 0 ; } else { if (arg1) { tmp1273 = 1 ; } else { tmp1273 = 0 ; } /* end of [if] */ } /* end of [if] */ tmp1274 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_make (tmp1272, arg4, tmp1249, arg0, tmp1273, tmp1232, tmp1236, tmp1248, tmp1251) ; /* tmp1275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcon (tmp1274) ; tmp1277 = atspre_neg_bool (arg2) ; if (tmp1277) { /* tmp1278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datcontyp (tmp1274) ; if (arg1) { /* tmp1276 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datconptr (tmp1274) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp1173 = tmp1274 ; return (tmp1173) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1atcon_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 67519(line=2910, offs=5) -- 68167(line=2933, offs=8) */ ATSstaticdec() ats_ptr_type loop_154 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1280) ; ATSlocal (ats_ptr_type, tmp1281) ; ATSlocal (ats_ptr_type, tmp1282) ; ATSlocal (ats_ptr_type, tmp1283) ; ATSlocal (ats_ptr_type, tmp1284) ; ATSlocal (ats_ptr_type, tmp1285) ; ATSlocal (ats_ptr_type, tmp1286) ; ATSlocal (ats_ptr_type, tmp1287) ; // ATSlocal_void (tmp1288) ; ATSlocal (ats_ptr_type, tmp1289) ; ATSlocal (ats_int_type, tmp1290) ; ATSlocal (ats_int_type, tmp1291) ; __ats_lab_loop_154: do { /* branch: __ats_lab_261 */ __ats_lab_261_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_262_0 ; } __ats_lab_261_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_263_1 ; } __ats_lab_261_2: tmp1281 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp1282 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp1283 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp1284 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp1285 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp1283) ; tmp1286 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn (tmp1281, tmp1285) ; tmp1287 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp1286) ; /* tmp1288 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg2, tmp1283, tmp1287) ; tmp1289 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp1289, atslab_0, tmp1286) ; ats_selptrset_mac(anairiats_sum_6, tmp1289, atslab_1, arg3) ; arg0 = tmp1282 ; arg1 = tmp1284 ; arg2 = arg2 ; arg3 = tmp1289 ; arg4 = arg4 ; goto __ats_lab_loop_154 ; // tail call break ; /* branch: __ats_lab_262 */ __ats_lab_262_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_263_0 ; } __ats_lab_262_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_264_1 ; } __ats_lab_262_2: tmp1280 = arg3 ; break ; /* branch: __ats_lab_263 */ __ats_lab_263_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_264_0 ; } __ats_lab_263_1: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_263_2: tmp1290 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp1290 ; tmp1280 = arg3 ; break ; /* branch: __ats_lab_264 */ __ats_lab_264_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_264_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_264_2: tmp1291 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp1291 ; tmp1280 = arg3 ; break ; } while (0) ; return (tmp1280) ; } /* end of [loop_154] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 67482(line=2908, offs=3) -- 68279(line=2938, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1279) ; ATSlocal (ats_ptr_type, tmp1292) ; ATSlocal (ats_ptr_type, tmp1293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst: tmp1293 = (ats_sum_ptr_type)0 ; tmp1292 = loop_154 (arg1, arg2, arg0, tmp1293, arg3) ; tmp1279 = list_vt_reverse_01506_ats_ptr_type (tmp1292) ; return (tmp1279) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst] */ /* // /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 68378(line=2944, offs=3) -- 69155(line=2974, offs=4) */ ATSglobaldec() anairiats_rec_14 _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_14, tmp1294) ; ATSlocal (ats_ptr_type, tmp1295) ; ATSlocal (ats_ptr_type, tmp1296) ; ATSlocal (ats_ptr_type, tmp1297) ; ATSlocal (ats_ptr_type, tmp1298) ; ATSlocal (ats_ptr_type, tmp1299) ; ATSlocal (ats_ptr_type, tmp1300) ; ATSlocal (ats_ptr_type, tmp1301) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst: do { /* branch: __ats_lab_265 */ __ats_lab_265_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_266_0 ; } __ats_lab_265_1: /* ats_ptr_type tmp1295 ; */ tmp1295 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp1296 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst ((&tmp1295), arg1) ; tmp1294.atslab_0 = tmp1295 ; tmp1294.atslab_1 = tmp1296 ; break ; /* branch: __ats_lab_266 */ __ats_lab_266_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_267_0 ; } __ats_lab_266_1: /* ats_ptr_type tmp1297 ; */ tmp1297 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp1298 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst ((&tmp1297), arg1) ; tmp1294.atslab_0 = tmp1297 ; tmp1294.atslab_1 = tmp1298 ; break ; /* branch: __ats_lab_267 */ __ats_lab_267_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_267_1: tmp1299 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; /* ats_ptr_type tmp1300 ; */ tmp1300 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp1301 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst ((&tmp1300), tmp1299, arg1, arg2) ; tmp1294.atslab_0 = tmp1300 ; tmp1294.atslab_1 = tmp1301 ; break ; } while (0) ; return (tmp1294) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst] */ /* 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_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_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_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDarrow_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1.tag = 1 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_staexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_label_sats.c0000644000175000017500000000242413431250607021625 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__LABELED_0) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__LABELED_0.tag = 0 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_label_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_sort_dats.c0000644000175000017500000040567413431250607023202 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2rtdat_sym ; ats_ptr_type atslab_s2rtdat_sconlst ; ats_int_type atslab_s2rtdat_stamp ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_6 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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_staexp2_2esats__S2RTBASpre_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASdef_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTtup_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTVar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTerr_4) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_prerr_int) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilte) (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_int_type, atspre_imax) (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_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, 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_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_fltkind) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_boxkind) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prgmkind) (ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_polkind) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__lte_impkind_impkind) (ats_int_type, ats_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_INT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BOOL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADDR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_REAL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FLOAT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_STRING) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CLS) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EFF) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TKIND) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2rtdat_stamp_make) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtdat_s2rtdat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2rtdat_s2rtdat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtVar_s2rtVar) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_pos) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_neg) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_pos) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_neg) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_pos) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_neg) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_pos) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_neg) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_pos) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_neg) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_pos) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_neg) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_flat) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_set_s2rt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_occurcheck) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_ptr_is_null) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_ptr_isnot_null) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__lte_s2rtbas_s2rtbas) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rt_ltmat) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rtlst_ltmat) (ats_int_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2rtdatset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2rtVar = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2rtdat_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_real) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_float) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_string) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_cls) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_types) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_neg) ; /* internal function declarations */ static ats_void_type prerr_interror_0 () ; static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_bool_type s2rt_test_fun_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_38 (ats_ptr_type arg0) ; static ats_ptr_type aux_40 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type auxlst_41 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type aux_45 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_45_closure_make (ats_ptr_type env0) ; static ats_bool_type aux_45_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type auxlst_46 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_46_closure_make (ats_ptr_type env0) ; static ats_bool_type auxlst_46_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type auxVar_52 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type __ats_fun_56 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_56_closure_make () ; static ats_int_type __ats_fun_56_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_make_nil_03358_ () ; static ats_int_type compare_elt_elt_03357_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type avltree_rrotate_02322_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type avltree_lrotate_02305_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ; static ats_ptr_type insert_61 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type insert_61_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type insert_61_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_03367_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type listize_67 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_listize_03382_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp20) ; ATSstatic (ats_ptr_type, statmp21) ; ATSstatic (ats_ptr_type, statmp22) ; ATSstatic (ats_ptr_type, statmp23) ; ATSstatic (ats_ptr_type, statmp24) ; ATSstatic (ats_ptr_type, statmp25) ; ATSstatic (ats_ptr_type, statmp26) ; ATSstatic (ats_ptr_type, statmp27) ; ATSstatic (ats_ptr_type, statmp28) ; ATSstatic (ats_ptr_type, statmp29) ; ATSstatic (ats_ptr_type, statmp30) ; ATSstatic (ats_ptr_type, statmp31) ; ATSstatic (ats_ptr_type, statmp32) ; ATSstatic (ats_ptr_type, statmp33) ; ATSstatic (ats_ptr_type, statmp34) ; ATSstatic (ats_ptr_type, statmp35) ; ATSstatic (ats_ptr_type, statmp36) ; ATSstatic (ats_ptr_type, statmp37) ; ATSstatic (ats_ptr_type, statmp38) ; ATSstatic (ats_ptr_type, statmp39) ; ATSstatic (ats_ptr_type, statmp40) ; ATSstatic (ats_ptr_type, statmp41) ; ATSstatic (ats_ptr_type, statmp42) ; ATSstatic (ats_ptr_type, statmp43) ; ATSstatic (ats_ptr_type, statmp44) ; ATSstatic (ats_ptr_type, statmp45) ; ATSstatic (ats_ptr_type, statmp46) ; ATSstatic (ats_ptr_type, statmp47) ; ATSstatic (ats_ptr_type, statmp48) ; ATSstatic (ats_ptr_type, statmp49) ; ATSstatic (ats_ptr_type, statmp50) ; ATSstatic (ats_ptr_type, statmp51) ; ATSstatic (ats_ptr_type, statmp52) ; ATSstatic (ats_ptr_type, statmp53) ; ATSstatic (ats_ptr_type, statmp54) ; ATSstatic (ats_ptr_type, statmp55) ; ATSstatic (ats_ptr_type, statmp56) ; ATSstatic (ats_ptr_type, statmp57) ; ATSstatic (ats_ptr_type, statmp58) ; ATSstatic (ats_ptr_type, statmp59) ; ATSstatic (ats_ptr_type, statmp60) ; ATSstatic (ats_ptr_type, statmp61) ; ATSstatic (ats_ptr_type, statmp62) ; ATSstatic (ats_ptr_type, statmp63) ; ATSstatic (ats_ptr_type, statmp64) ; ATSstatic (ats_ptr_type, statmp65) ; ATSstatic (ats_ptr_type, statmp66) ; ATSstatic (ats_ptr_type, statmp67) ; ATSstatic (ats_ptr_type, statmp68) ; ATSstatic (ats_ptr_type, statmp69) ; ATSstatic (ats_ptr_type, statmp70) ; ATSstatic (ats_ptr_type, statmp71) ; ATSstatic (ats_ptr_type, statmp72) ; ATSstatic (ats_ptr_type, statmp73) ; ATSstatic (ats_ptr_type, statmp74) ; ATSstatic (ats_ptr_type, statmp75) ; ATSstatic (ats_ptr_type, statmp227) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 1804(line=66, offs=1) -- 1866(line=67, offs=38) */ ATSstaticdec() ats_void_type prerr_interror_0 () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_interror_0: /* tmp0 = */ atspre_prerr_string (ATSstrcst("INTERROR(pats_staexp2_sort)")) ; return /* (tmp0) */ ; } /* end of [prerr_interror_0] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp4 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp4) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 2165(line=88, offs=14) -- 2472(line=104, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_make (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_make: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2rtdat_stamp_make () ; tmp3 = ptr_alloc_01070_anairiats_rec_1 () ; tmp5 = ats_selsin_mac(tmp3, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_s2rtdat_sym) = arg0 ; tmp6 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_s2rtdat_sconlst) = tmp6 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_s2rtdat_stamp) = tmp2 ; tmp1 = atspre_ref_make_view_ptr (tmp5) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 2546(line=109, offs=17) -- 2625(line=111, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym: tmp8 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp7 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp8), atslab_s2rtdat_sym) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 2706(line=116, offs=21) -- 2789(line=118, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sconlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sconlst: tmp10 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp9 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp10), atslab_s2rtdat_sconlst) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sconlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 2852(line=120, offs=21) -- 2949(line=122, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_set_sconlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_set_sconlst: tmp12 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2rtdat_sconlst) = arg1 ; return /* (tmp11) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_set_sconlst] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 3032(line=127, offs=19) -- 3113(line=129, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_stamp: tmp14 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp13 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_s2rtdat_stamp) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 3241(line=139, offs=1) -- 3293(line=141, offs=42) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtdat_s2rtdat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp15) ; ATSlocal (ats_int_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtdat_s2rtdat: tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2rtdat_s2rtdat (arg0, arg1) ; tmp15 = atspre_eq_int_int (tmp16, 0) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtdat_s2rtdat] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 3332(line=145, offs=1) -- 3417(line=150, offs=56) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2rtdat_s2rtdat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2rtdat_s2rtdat: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_stamp (arg0) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_stamp (arg1) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp18, tmp19) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2rtdat_s2rtdat] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 7039(line=263, offs=12) -- 7964(line=306, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 != 5) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (arg0 != 0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 != 1) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg0 != 7) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 != 2) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg0 != 3) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 != 13) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_pos ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg0 != 29) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_neg ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_pos ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 != 24) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_neg ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 != 9) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_pos ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 != 25) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_neg ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg0 != 15) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_pos ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg0 != 31) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_neg ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 != 10) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_pos ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg0 != 26) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_neg ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 != 11) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_pos ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg0 != 27) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_neg ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: /* tmp77 = */ prerr_interror_0 () ; /* tmp78 = */ atspre_prerr_string (ATSstrcst(": s2rt_impred: knd = ")) ; /* tmp79 = */ atspre_prerr_int (arg0) ; /* tmp80 = */ atspre_prerr_newline () ; tmp82 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 7868(line=301, offs=14) -- 7884(line=301, offs=30)", ATSstrcst("\n")) ; /* tmp81 = */ atspre_assert_errmsg (ats_false_bool, tmp82) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; break ; } while (0) ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 8056(line=313, offs=13) -- 8212(line=320, offs=15) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_int (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_int: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_22_0 ; } __ats_lab_19_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp84)->tag != 0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_2, tmp84, atslab_0) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp85, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_INT) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp83 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp83 = ats_false_bool ; break ; } while (0) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_int] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 8263(line=324, offs=14) -- 8420(line=331, offs=15) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_addr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_addr: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_26_0 ; } __ats_lab_23_1: tmp87 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp87)->tag != 0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_2, tmp87, atslab_0) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp88, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADDR) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp86 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp86 = ats_false_bool ; break ; } while (0) ; return (tmp86) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_addr] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 8471(line=334, offs=14) -- 8626(line=341, offs=13) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_bool (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_bool: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_30_0 ; } __ats_lab_27_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp90)->tag != 0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_0) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp91, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BOOL) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp89 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp89 = ats_false_bool ; break ; } while (0) ; return (tmp89) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_bool] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 8938(line=363, offs=3) -- 9169(line=374, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_float (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_float: do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_34_0 ; } __ats_lab_31_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp93)->tag != 0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_2, tmp93, atslab_0) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp94, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FLOAT) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp92 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: tmp92 = ats_false_bool ; break ; } while (0) ; return (tmp92) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_float] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 9244(line=381, offs=12) -- 9406(line=389, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_dat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_dat: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_38_0 ; } __ats_lab_35_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp96)->tag != 2) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp95 = ats_true_bool ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp95 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp95 = ats_false_bool ; break ; } while (0) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_dat] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 9476(line=395, offs=12) -- 9531(line=397, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp97 = ats_true_bool ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: tmp97 = ats_false_bool ; break ; } while (0) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 9580(line=401, offs=12) -- 9748(line=408, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_int_type, tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_44_0 ; } __ats_lab_41_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp99)->tag != 1) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_3, tmp99, atslab_0) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind (tmp100) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp98 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: tmp98 = ats_false_bool ; break ; } while (0) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 9832(line=414, offs=12) -- 10000(line=421, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_48_0 ; } __ats_lab_45_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp102)->tag != 1) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_0) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind (tmp103) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: __ats_lab_47_1: tmp101 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: __ats_lab_48_1: tmp101 = ats_false_bool ; break ; } while (0) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 10066(line=425, offs=15) -- 10239(line=432, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_nonlin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_bool_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_nonlin: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_52_0 ; } __ats_lab_49_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp105)->tag != 1) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_3, tmp105, atslab_0) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind (tmp106) ; tmp104 = atspre_neg_bool (tmp107) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: tmp104 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp104 = ats_false_bool ; break ; } while (0) ; return (tmp104) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_nonlin] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 10327(line=438, offs=13) -- 10495(line=445, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_flat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_int_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_flat: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_56_0 ; } __ats_lab_53_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp109)->tag != 1) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_3, tmp109, atslab_0) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_fltkind (tmp110) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: __ats_lab_55_1: tmp108 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: tmp108 = ats_false_bool ; break ; } while (0) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_flat] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 10564(line=449, offs=14) -- 10732(line=456, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_60_0 ; } __ats_lab_57_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp112)->tag != 1) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp113 = ats_caselptrlab_mac(anairiats_sum_3, tmp112, atslab_0) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_boxkind (tmp113) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: tmp111 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: tmp111 = ats_false_bool ; break ; } while (0) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 10823(line=462, offs=14) -- 11068(line=472, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_64_0 ; } __ats_lab_61_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp115)->tag != 0) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_2, tmp115, atslab_0) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp116, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TKIND) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp114 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: __ats_lab_64_1: tmp114 = ats_false_bool ; break ; } while (0) ; return (tmp114) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 11155(line=478, offs=13) -- 11324(line=485, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_int_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm: do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_68_0 ; } __ats_lab_65_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp118)->tag != 1) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_3, tmp118, atslab_0) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prgmkind (tmp119) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: __ats_lab_67_1: tmp117 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: tmp117 = ats_false_bool ; break ; } while (0) ; return (tmp117) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 11418(line=492, offs=3) -- 11566(line=498, offs=29) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_72_0 ; } __ats_lab_69_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp121)->tag != 1) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp120 = ats_true_bool ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: __ats_lab_71_1: tmp120 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: __ats_lab_72_1: tmp120 = ats_false_bool ; break ; } while (0) ; return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 11649(line=507, offs=1) -- 11832(line=516, offs=2) */ ATSstaticdec() ats_bool_type s2rt_test_fun_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_s2rt_test_fun_24: do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; arg0 = tmp123 ; arg1 = arg1 ; goto __ats_lab_s2rt_test_fun_24 ; // tail call break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: __ats_lab_74_1: tmp122 = ((ats_bool_type(*)(ats_ptr_type))arg1) (arg0) ; break ; } while (0) ; return (tmp122) ; } /* end of [s2rt_test_fun_24] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 11912(line=522, offs=3) -- 11951(line=522, offs=42) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin_fun: tmp124 = s2rt_test_fun_24 (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 11984(line=526, offs=3) -- 12024(line=526, offs=43) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_flat_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_flat_fun: tmp125 = s2rt_test_fun_24 (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_flat) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_flat_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 12058(line=530, offs=3) -- 12099(line=530, offs=44) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun: tmp126 = s2rt_test_fun_24 (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed) ; return (tmp126) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 12133(line=534, offs=3) -- 12174(line=534, offs=44) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind_fun: tmp127 = s2rt_test_fun_24 (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 12207(line=538, offs=3) -- 12247(line=538, offs=43) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp128) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm_fun: tmp128 = s2rt_test_fun_24 (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm) ; return (tmp128) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 12279(line=541, offs=3) -- 12321(line=541, offs=45) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred_fun (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp129) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred_fun: tmp129 = s2rt_test_fun_24 (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred) ; return (tmp129) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 12391(line=548, offs=13) -- 12562(line=557, offs=27) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_get_pol (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_int_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_get_pol: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_78_0 ; } __ats_lab_75_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp131)->tag != 1) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_3, tmp131, atslab_0) ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_polkind (tmp132) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: __ats_lab_77_1: tmp130 = 0 ; break ; } while (0) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: __ats_lab_78_1: tmp130 = 0 ; break ; } while (0) ; return (tmp130) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_get_pol] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 13277(line=595, offs=3) -- 13361(line=597, offs=2) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtVar_s2rtVar (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtVar_s2rtVar: tmp133 = atspre_peq (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp133) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtVar_s2rtVar] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 13430(line=601, offs=3) -- 13529(line=603, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2rtVar_s2rtVar (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2rtVar_s2rtVar: tmp134 = atspre_compare_ptr_ptr (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp134) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2rtVar_s2rtVar] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp138 ; */ tmp138 = arg0 ; tmp137 = atspre_ref_make_elt_tsz ((&tmp138), sizeof(ats_ptr_type)) ; return (tmp137) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; __ats_lab_ref_make_elt_01089_ats_ptr_type: tmp136 = ref_01088_ats_ptr_type (arg0) ; return (tmp136) ; } /* end of [ref_make_elt_01089_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 13611(line=608, offs=14) -- 13680(line=610, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_make (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_make: tmp135 = ref_make_elt_01089_ats_ptr_type (ats_castfn_mac(ats_ptr_type, atspre_null_ptr)) ; return (tmp135) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 13770(line=618, offs=1) -- 14239(line=644, offs=2) */ ATSstaticdec() ats_ptr_type aux_38 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_bool_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab_aux_38: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp142 = ats_ptrget_mac(ats_ptr_type, tmp141) ; tmp143 = atspre_ptr_isnot_null (tmp142) ; if (tmp143) { tmp144 = aux_38 (ats_castfn_mac(ats_ptr_type, tmp142)) ; ats_ptrget_mac(ats_ptr_type, tmp141) = ats_castfn_mac(ats_ptr_type, tmp144) ; tmp140 = tmp144 ; } else { tmp140 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: __ats_lab_80_1: tmp140 = arg0 ; break ; } while (0) ; return (tmp140) ; } /* end of [aux_38] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 13750(line=615, offs=13) -- 14281(line=648, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink: tmp139 = aux_38 (arg0) ; return (tmp139) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 14355(line=655, offs=1) -- 15254(line=699, offs=2) */ ATSstaticdec() ats_ptr_type aux_40 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_bool_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_int_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_bool_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_bool_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_int_type, tmp161) ; __ats_lab_aux_40: do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp149 = ats_ptrget_mac(ats_int_type, arg1) ; tmp150 = aux_40 (tmp148, arg1) ; tmp151 = auxlst_41 (tmp147, arg1) ; tmp152 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp149) ; if (tmp152) { tmp146 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp146)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp146, atslab_0, tmp151) ; ats_selptrset_mac(anairiats_sum_4, tmp146, atslab_1, tmp150) ; } else { tmp146 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp154 = ats_ptrget_mac(ats_int_type, arg1) ; tmp155 = auxlst_41 (tmp153, arg1) ; tmp156 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp154) ; if (tmp156) { tmp146 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp146)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp146, atslab_0, tmp155) ; } else { tmp146 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp157 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp158 = ats_ptrget_mac(ats_ptr_type, tmp157) ; tmp159 = atspre_ptr_isnot_null (tmp158) ; if (tmp159) { tmp160 = aux_40 (ats_castfn_mac(ats_ptr_type, tmp158), arg1) ; ats_ptrget_mac(ats_ptr_type, tmp157) = ats_castfn_mac(ats_ptr_type, tmp160) ; tmp161 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp161 ; tmp146 = tmp160 ; } else { tmp146 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: __ats_lab_84_1: tmp146 = arg0 ; break ; } while (0) ; return (tmp146) ; } /* end of [aux_40] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 15281(line=702, offs=1) -- 15637(line=722, offs=2) */ ATSstaticdec() ats_ptr_type auxlst_41 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_int_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_bool_type, tmp168) ; __ats_lab_auxlst_41: do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp162 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp165 = ats_ptrget_mac(ats_int_type, arg1) ; tmp166 = aux_40 (tmp163, arg1) ; tmp167 = auxlst_41 (tmp164, arg1) ; tmp168 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp165) ; if (tmp168) { tmp162 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp162, atslab_0, tmp166) ; ats_selptrset_mac(anairiats_sum_5, tmp162, atslab_1, tmp167) ; } else { tmp162 = arg0 ; } /* end of [if] */ break ; } while (0) ; return (tmp162) ; } /* end of [auxlst_41] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 14335(line=652, offs=3) -- 15709(line=728, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink_all (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_int_type, tmp169) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink_all: /* ats_int_type tmp169 ; */ tmp169 = 0 ; tmp145 = aux_40 (arg0, (&tmp169)) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink_all] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 15789(line=734, offs=3) -- 15919(line=741, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_get_s2rt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_bool_type, tmp172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_get_s2rt: tmp171 = ats_ptrget_mac(ats_ptr_type, arg0) ; tmp172 = atspre_ptr_isnot_null (tmp171) ; if (tmp172) { tmp170 = ats_castfn_mac(ats_ptr_type, tmp171) ; } else { tmp170 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTerr_4) ; } /* end of [if] */ return (tmp170) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_get_s2rt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 15979(line=745, offs=3) -- 16048(line=747, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_set_s2rt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp173) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_set_s2rt: ats_ptrget_mac(ats_ptr_type, arg0) = ats_castfn_mac(ats_ptr_type, arg1) ; return /* (tmp173) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_set_s2rt] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 16136(line=753, offs=5) -- 16716(line=785, offs=2) */ ATSstaticdec() ats_bool_type aux_45 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_bool_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_bool_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_bool_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; __ats_lab_aux_45: do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp175 = ats_false_bool ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp176 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp177 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp178 = auxlst_46 (env0, tmp176) ; if (tmp178) { tmp175 = ats_true_bool ; } else { arg0 = tmp177 ; goto __ats_lab_aux_45 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp175 = auxlst_46 (env0, tmp179) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtVar_s2rtVar (env0, tmp180) ; if (tmp181) { tmp175 = ats_true_bool ; } else { tmp182 = ats_ptrget_mac(ats_ptr_type, tmp180) ; tmp183 = atspre_ptr_isnot_null (tmp182) ; if (tmp183) { tmp184 = ats_castfn_mac(ats_ptr_type, tmp182) ; arg0 = tmp184 ; goto __ats_lab_aux_45 ; // tail call } else { tmp175 = ats_false_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (((ats_sum_ptr_type)arg0)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: tmp175 = ats_false_bool ; break ; } while (0) ; return (tmp175) ; } /* end of [aux_45] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_45_closure_type ; ats_bool_type aux_45_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_45 (((aux_45_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_45_closure_init (aux_45_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_45_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_45_closure_make (ats_ptr_type env0) { aux_45_closure_type *p_clo = ATS_MALLOC(sizeof(aux_45_closure_type)) ; aux_45_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 16743(line=788, offs=1) -- 16931(line=800, offs=2) */ ATSstaticdec() ats_bool_type auxlst_46 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_bool_type, tmp188) ; __ats_lab_auxlst_46: do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp185 = ats_false_bool ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp186 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp188 = aux_45 (env0, tmp186) ; if (tmp188) { tmp185 = ats_true_bool ; } else { arg0 = tmp187 ; goto __ats_lab_auxlst_46 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp185) ; } /* end of [auxlst_46] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_46_closure_type ; ats_bool_type auxlst_46_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return auxlst_46 (((auxlst_46_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type auxlst_46_closure_init (auxlst_46_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_46_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_46_closure_make (ats_ptr_type env0) { auxlst_46_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_46_closure_type)) ; auxlst_46_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 16110(line=751, offs=3) -- 16976(line=804, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_occurcheck (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp174) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_occurcheck: tmp174 = aux_45 (arg0, arg1) ; return (tmp174) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_occurcheck] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 17093(line=813, offs=10) -- 17128(line=813, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun: tmp189 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp189)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp189, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp189, atslab_1, arg1) ; return (tmp189) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 17149(line=816, offs=10) -- 17171(line=816, offs=32) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tup: tmp190 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp190)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp190, atslab_0, arg0) ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tup] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 17229(line=819, offs=10) -- 17244(line=819, offs=25) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () { /* local vardec */ ATSlocal (ats_ptr_type, tmp191) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err: tmp191 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTerr_4) ; return (tmp191) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 17440(line=832, offs=3) -- 17710(line=843, offs=18) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__lte_s2rtbas_s2rtbas (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_int_type, tmp195) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__lte_s2rtbas_s2rtbas: do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_95_0 ; } __ats_lab_94_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_97_1 ; } __ats_lab_94_2: tmp193 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp193, tmp194) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_96_0 ; } __ats_lab_95_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_97_1 ; } __ats_lab_95_2: tmp195 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__lte_impkind_impkind (tmp195, tmp196) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_97_0 ; } __ats_lab_96_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_97_1 ; } __ats_lab_96_2: tmp197 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp198 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtdat_s2rtdat (tmp197, tmp198) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: __ats_lab_97_1: __ats_lab_97_2: tmp192 = ats_false_bool ; break ; } while (0) ; return (tmp192) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__lte_s2rtbas_s2rtbas] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 18005(line=863, offs=1) -- 18298(line=883, offs=2) */ ATSstaticdec() ats_bool_type auxVar_52 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp200) ; ATSlocal (ats_bool_type, tmp201) ; ATSlocal (ats_bool_type, tmp202) ; // ATSlocal_void (tmp203) ; __ats_lab_auxVar_52: tmp201 = atspre_gt_int_int (arg0, 0) ; if (tmp201) { tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_occurcheck (arg1, arg2) ; if (tmp202) { tmp200 = ats_false_bool ; } else { /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_set_s2rt (arg1, arg2) ; tmp200 = ats_true_bool ; } /* end of [if] */ } else { tmp200 = ats_true_bool ; } /* end of [if] */ return (tmp200) ; } /* end of [auxVar_52] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 17974(line=860, offs=3) -- 19023(line=925, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rt_ltmat (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp199) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_bool_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_bool_type, tmp217) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rt_ltmat: tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink (arg1) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink (arg2) ; do { /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp204)->tag != 0) { goto __ats_lab_101_0 ; } __ats_lab_98_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_2, tmp204, atslab_0) ; do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp205)->tag != 0) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_2, tmp205, atslab_0) ; tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__lte_s2rtbas_s2rtbas (tmp206, tmp207) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: __ats_lab_100_1: tmp199 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp204)->tag != 1) { goto __ats_lab_104_0 ; } __ats_lab_101_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_4, tmp204, atslab_0) ; tmp209 = ats_caselptrlab_mac(anairiats_sum_4, tmp204, atslab_1) ; do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp205)->tag != 1) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_4, tmp205, atslab_0) ; tmp211 = ats_caselptrlab_mac(anairiats_sum_4, tmp205, atslab_1) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rtlst_ltmat (arg0, tmp210, tmp208) ; if (tmp212) { arg0 = arg0 ; arg1 = tmp209 ; arg2 = tmp211 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rt_ltmat ; // tail call } else { tmp199 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: __ats_lab_103_1: tmp199 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp204)->tag != 2) { goto __ats_lab_107_0 ; } __ats_lab_104_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_2, tmp204, atslab_0) ; do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp205)->tag != 2) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_2, tmp205, atslab_0) ; tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rtlst_ltmat (arg0, tmp213, tmp214) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: __ats_lab_106_1: tmp199 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp204)->tag != 3) { goto __ats_lab_110_0 ; } __ats_lab_107_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_2, tmp204, atslab_0) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp205)->tag != 3) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_2, tmp205, atslab_0) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2rtVar_s2rtVar (tmp215, tmp216) ; if (!tmp217) { goto __ats_lab_109_1 ; } tmp199 = ats_true_bool ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: __ats_lab_109_1: tmp199 = auxVar_52 (arg0, tmp215, tmp205) ; break ; } while (0) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: // if (((ats_sum_ptr_type)tmp204)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_110_1: tmp199 = ats_false_bool ; break ; } while (0) ; return (tmp199) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rt_ltmat] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 19097(line=931, offs=3) -- 19349(line=941, offs=20) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rtlst_ltmat (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_bool_type, tmp223) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rtlst_ltmat: do { /* branch: __ats_lab_111 */ __ats_lab_111_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_112_0 ; } __ats_lab_111_1: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_113_1 ; } __ats_lab_111_2: tmp218 = ats_true_bool ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_113_0 ; } __ats_lab_112_1: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_113_1 ; } __ats_lab_112_2: tmp219 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp221 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ; tmp222 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rt_ltmat (arg0, tmp219, tmp221) ; if (tmp223) { arg0 = arg0 ; arg1 = tmp220 ; arg2 = tmp222 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rtlst_ltmat ; // tail call } else { tmp218 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: __ats_lab_113_1: __ats_lab_113_2: tmp218 = ats_false_bool ; break ; } while (0) ; return (tmp218) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rtlst_ltmat] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 19424(line=946, offs=22) -- 19456(line=946, offs=54) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat0 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp224) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat0: tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rt_ltmat (0, arg0, arg1) ; return (tmp224) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat0] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 19478(line=947, offs=22) -- 19510(line=947, offs=54) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp225) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1: tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__s2rt_ltmat (1, arg0, arg1) ; return (tmp225) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 19654(line=960, offs=1) -- 19739(line=963, offs=35) */ ATSstaticdec() ats_int_type __ats_fun_56 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp226) ; __ats_lab___ats_fun_56: tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2rtdat_s2rtdat (arg0, arg1) ; return (tmp226) ; } /* end of [__ats_fun_56] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_56_closure_type ; ats_int_type __ats_fun_56_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_56 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_56_closure_init (__ats_fun_56_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_56_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_56_closure_make () { __ats_fun_56_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_56_closure_type)) ; __ats_fun_56_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 2749(line=94, offs=29) -- 2758(line=94, offs=38) */ ATSstaticdec() ats_ptr_type funset_make_nil_03358_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; __ats_lab_funset_make_nil_03358_: tmp229 = (ats_sum_ptr_type)0 ; return (tmp229) ; } /* end of [funset_make_nil_03358_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 19854(line=972, offs=3) -- 19889(line=972, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_nil: tmp228 = funset_make_nil_03358_ () ; return (tmp228) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 1954(line=57, offs=30) -- 1982(line=57, offs=58) */ ATSstaticdec() ats_int_type compare_elt_elt_03357_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp240) ; __ats_lab_compare_elt_elt_03357_ats_ptr_type: tmp240 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp240) ; } /* end of [compare_elt_elt_03357_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 5504(line=202, offs=46) -- 6164(line=224, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_02322_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_int_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_int_type, tmp257) ; ATSlocal (ats_int_type, tmp258) ; ATSlocal (ats_bool_type, tmp259) ; ATSlocal (ats_int_type, tmp260) ; ATSlocal (ats_int_type, tmp261) ; ATSlocal (ats_int_type, tmp262) ; ATSlocal (ats_int_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_int_type, tmp268) ; ATSlocal (ats_int_type, tmp269) ; ATSlocal (ats_int_type, tmp270) ; ATSlocal (ats_int_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_int_type, tmp273) ; ATSlocal (ats_int_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_int_type, tmp276) ; ATSlocal (ats_int_type, tmp277) ; __ats_lab_avltree_rrotate_02322_ats_ptr_type: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp252 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_2) ; tmp254 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_3) ; do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (tmp253 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_6, tmp253, atslab_0) ; tmp255 = tmp256 ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: // if (tmp253 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_120_1: tmp255 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (tmp254 == (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp258 = ats_caselptrlab_mac(anairiats_sum_6, tmp254, atslab_0) ; tmp257 = tmp258 ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: // if (tmp254 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_122_1: tmp257 = 0 ; break ; } while (0) ; tmp260 = atspre_iadd (tmp255, 0) ; tmp259 = atspre_igte (tmp260, tmp257) ; if (tmp259) { tmp261 = atspre_iadd (tmp257, 1) ; tmp263 = atspre_imax (tmp255, tmp261) ; tmp262 = atspre_iadd (1, tmp263) ; tmp264 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp264, atslab_0, tmp261) ; ats_selptrset_mac(anairiats_sum_6, tmp264, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp264, atslab_2, tmp254) ; ats_selptrset_mac(anairiats_sum_6, tmp264, atslab_3, arg4) ; tmp251 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp251, atslab_0, tmp262) ; ats_selptrset_mac(anairiats_sum_6, tmp251, atslab_1, tmp252) ; ats_selptrset_mac(anairiats_sum_6, tmp251, atslab_2, tmp253) ; ats_selptrset_mac(anairiats_sum_6, tmp251, atslab_3, tmp264) ; } else { // if (tmp254 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp265 = ats_caselptrlab_mac(anairiats_sum_6, tmp254, atslab_1) ; tmp266 = ats_caselptrlab_mac(anairiats_sum_6, tmp254, atslab_2) ; tmp267 = ats_caselptrlab_mac(anairiats_sum_6, tmp254, atslab_3) ; do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (tmp266 == (ats_sum_ptr_type)0) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp269 = ats_caselptrlab_mac(anairiats_sum_6, tmp266, atslab_0) ; tmp268 = tmp269 ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: // if (tmp266 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_124_1: tmp268 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (tmp267 == (ats_sum_ptr_type)0) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp271 = ats_caselptrlab_mac(anairiats_sum_6, tmp267, atslab_0) ; tmp270 = tmp271 ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: // if (tmp267 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_126_1: tmp270 = 0 ; break ; } while (0) ; tmp274 = atspre_imax (tmp255, tmp268) ; tmp273 = atspre_iadd (1, tmp274) ; tmp272 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp272, atslab_0, tmp273) ; ats_selptrset_mac(anairiats_sum_6, tmp272, atslab_1, tmp252) ; ats_selptrset_mac(anairiats_sum_6, tmp272, atslab_2, tmp253) ; ats_selptrset_mac(anairiats_sum_6, tmp272, atslab_3, tmp266) ; tmp277 = atspre_imax (tmp270, arg3) ; tmp276 = atspre_iadd (1, tmp277) ; tmp275 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp275, atslab_0, tmp276) ; ats_selptrset_mac(anairiats_sum_6, tmp275, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp275, atslab_2, tmp267) ; ats_selptrset_mac(anairiats_sum_6, tmp275, atslab_3, arg4) ; tmp251 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp251, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp251, atslab_1, tmp265) ; ats_selptrset_mac(anairiats_sum_6, tmp251, atslab_2, tmp272) ; ats_selptrset_mac(anairiats_sum_6, tmp251, atslab_3, tmp275) ; } /* end of [if] */ return (tmp251) ; } /* end of [avltree_rrotate_02322_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4671(line=174, offs=46) -- 5362(line=196, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_02305_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_int_type, tmp292) ; ATSlocal (ats_int_type, tmp293) ; ATSlocal (ats_int_type, tmp294) ; ATSlocal (ats_int_type, tmp295) ; ATSlocal (ats_bool_type, tmp296) ; ATSlocal (ats_int_type, tmp297) ; ATSlocal (ats_int_type, tmp298) ; ATSlocal (ats_int_type, tmp299) ; ATSlocal (ats_int_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_int_type, tmp305) ; ATSlocal (ats_int_type, tmp306) ; ATSlocal (ats_int_type, tmp307) ; ATSlocal (ats_int_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_int_type, tmp310) ; ATSlocal (ats_int_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_int_type, tmp313) ; ATSlocal (ats_int_type, tmp314) ; __ats_lab_avltree_lrotate_02305_ats_ptr_type: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp289 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_1) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_2) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_3) ; do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (tmp290 == (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp293 = ats_caselptrlab_mac(anairiats_sum_6, tmp290, atslab_0) ; tmp292 = tmp293 ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (tmp290 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: tmp292 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_133 */ __ats_lab_133_0: if (tmp291 == (ats_sum_ptr_type)0) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp295 = ats_caselptrlab_mac(anairiats_sum_6, tmp291, atslab_0) ; tmp294 = tmp295 ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: // if (tmp291 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_134_1: tmp294 = 0 ; break ; } while (0) ; tmp297 = atspre_iadd (tmp294, 0) ; tmp296 = atspre_ilte (tmp292, tmp297) ; if (tmp296) { tmp298 = atspre_iadd (tmp292, 1) ; tmp300 = atspre_imax (tmp298, tmp294) ; tmp299 = atspre_iadd (1, tmp300) ; tmp301 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp301, atslab_0, tmp298) ; ats_selptrset_mac(anairiats_sum_6, tmp301, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp301, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp301, atslab_3, tmp290) ; tmp288 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_0, tmp299) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_1, tmp289) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_2, tmp301) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_3, tmp291) ; } else { // if (tmp290 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp302 = ats_caselptrlab_mac(anairiats_sum_6, tmp290, atslab_1) ; tmp303 = ats_caselptrlab_mac(anairiats_sum_6, tmp290, atslab_2) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_6, tmp290, atslab_3) ; do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (tmp303 == (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_6, tmp303, atslab_0) ; tmp305 = tmp306 ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (tmp303 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: tmp305 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (tmp304 == (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_6, tmp304, atslab_0) ; tmp307 = tmp308 ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (tmp304 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: tmp307 = 0 ; break ; } while (0) ; tmp311 = atspre_imax (arg1, tmp305) ; tmp310 = atspre_iadd (1, tmp311) ; tmp309 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp309, atslab_0, tmp310) ; ats_selptrset_mac(anairiats_sum_6, tmp309, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp309, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_6, tmp309, atslab_3, tmp303) ; tmp314 = atspre_imax (tmp307, tmp294) ; tmp313 = atspre_iadd (1, tmp314) ; tmp312 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp312, atslab_0, tmp313) ; ats_selptrset_mac(anairiats_sum_6, tmp312, atslab_1, tmp289) ; ats_selptrset_mac(anairiats_sum_6, tmp312, atslab_2, tmp304) ; ats_selptrset_mac(anairiats_sum_6, tmp312, atslab_3, tmp291) ; tmp288 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_1, tmp302) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_2, tmp309) ; ats_selptrset_mac(anairiats_sum_6, tmp288, atslab_3, tmp312) ; } /* end of [if] */ return (tmp288) ; } /* end of [avltree_lrotate_02305_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6) */ ATSstaticdec() ats_ptr_type insert_61 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_int_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_bool_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_int_type, tmp243) ; ATSlocal (ats_int_type, tmp244) ; ATSlocal (ats_int_type, tmp245) ; ATSlocal (ats_int_type, tmp246) ; ATSlocal (ats_bool_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_int_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_bool_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_int_type, tmp280) ; ATSlocal (ats_int_type, tmp281) ; ATSlocal (ats_int_type, tmp282) ; ATSlocal (ats_int_type, tmp283) ; ATSlocal (ats_bool_type, tmp284) ; ATSlocal (ats_int_type, tmp285) ; ATSlocal (ats_int_type, tmp286) ; ATSlocal (ats_int_type, tmp287) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; __ats_lab_insert_61: do { /* branch: __ats_lab_114 */ __ats_lab_114_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_139_0 ; } __ats_lab_114_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp236 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp237 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp238 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp239 = compare_elt_elt_03357_ats_ptr_type (env0, tmp236, env1) ; tmp241 = atspre_lt_int_int (tmp239, 0) ; if (tmp241) { tmp242 = insert_61 (env0, env1, tmp237, arg1) ; do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (tmp242 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp244 = ats_caselptrlab_mac(anairiats_sum_6, tmp242, atslab_0) ; tmp243 = tmp244 ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (tmp242 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: tmp243 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (tmp238 == (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp246 = ats_caselptrlab_mac(anairiats_sum_6, tmp238, atslab_0) ; tmp245 = tmp246 ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: // if (tmp238 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_118_1: tmp245 = 0 ; break ; } while (0) ; tmp248 = atspre_isub (tmp243, tmp245) ; tmp247 = atspre_ilte (tmp248, 1) ; if (tmp247) { tmp250 = atspre_imax (tmp243, tmp245) ; tmp249 = atspre_iadd (1, tmp250) ; tmp234 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_0, tmp249) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_1, tmp236) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_2, tmp242) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_3, tmp238) ; } else { tmp234 = avltree_rrotate_02322_ats_ptr_type (tmp236, tmp243, tmp242, tmp245, tmp238) ; } /* end of [if] */ } else { tmp278 = atspre_gt_int_int (tmp239, 0) ; if (tmp278) { tmp279 = insert_61 (env0, env1, tmp238, arg1) ; do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (tmp237 == (ats_sum_ptr_type)0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp281 = ats_caselptrlab_mac(anairiats_sum_6, tmp237, atslab_0) ; tmp280 = tmp281 ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (tmp237 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: tmp280 = 0 ; break ; } while (0) ; do { /* branch: __ats_lab_129 */ __ats_lab_129_0: if (tmp279 == (ats_sum_ptr_type)0) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp283 = ats_caselptrlab_mac(anairiats_sum_6, tmp279, atslab_0) ; tmp282 = tmp283 ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: // if (tmp279 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_130_1: tmp282 = 0 ; break ; } while (0) ; tmp285 = atspre_isub (tmp282, tmp280) ; tmp284 = atspre_ilte (tmp285, 1) ; if (tmp284) { tmp287 = atspre_imax (tmp280, tmp282) ; tmp286 = atspre_iadd (1, tmp287) ; tmp234 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_0, tmp286) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_1, tmp236) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_2, tmp237) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_3, tmp279) ; } else { tmp234 = avltree_lrotate_02305_ats_ptr_type (tmp236, tmp280, tmp237, tmp282, tmp279) ; } /* end of [if] */ } else { ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ; tmp234 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_0, tmp235) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_2, tmp237) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_3, tmp238) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_139_1: ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ; tmp315 = (ats_sum_ptr_type)0 ; tmp316 = (ats_sum_ptr_type)0 ; tmp234 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_2, tmp315) ; ats_selptrset_mac(anairiats_sum_6, tmp234, atslab_3, tmp316) ; break ; } while (0) ; return (tmp234) ; } /* end of [insert_61] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_61_closure_type ; ats_ptr_type insert_61_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return insert_61 (((insert_61_closure_type*)cloptr)->closure_env_0, ((insert_61_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_61_closure_init (insert_61_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_61_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_61_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_61_closure_type *p_clo = ATS_MALLOC(sizeof(insert_61_closure_type)) ; insert_61_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6244(line=230, offs=3) -- 7632(line=267, offs=2) */ ATSstaticdec() ats_bool_type funset_insert_03367_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp233) ; ATSlocal (ats_bool_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; __ats_lab_funset_insert_03367_ats_ptr_type: /* ats_bool_type tmp317 ; */ tmp318 = insert_61 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp317)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp318 ; tmp233 = tmp317 ; return (tmp233) ; } /* end of [funset_insert_03367_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 19918(line=976, offs=3) -- 20005(line=979, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_bool_type, tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_add: /* ats_ptr_type tmp231 ; */ tmp231 = arg0 ; tmp232 = funset_insert_03367_ats_ptr_type ((&tmp231), arg1, statmp227) ; tmp230 = tmp231 ; return (tmp230) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20241(line=721, offs=7) -- 20545(line=732, offs=18) */ ATSstaticdec() ats_ptr_type listize_67 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; __ats_lab_listize_67: do { /* branch: __ats_lab_140 */ __ats_lab_140_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp322 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp323 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ; tmp324 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ; tmp325 = listize_67 (tmp324, arg1) ; tmp326 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp326, atslab_0, tmp322) ; ats_selptrset_mac(anairiats_sum_5, tmp326, atslab_1, tmp325) ; arg0 = tmp323 ; arg1 = tmp326 ; goto __ats_lab_listize_67 ; // tail call break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_141_1: tmp321 = arg1 ; break ; } while (0) ; return (tmp321) ; } /* end of [listize_67] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20189(line=719, offs=16) -- 20605(line=736, offs=4) */ ATSstaticdec() ats_ptr_type funset_listize_03382_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp327) ; __ats_lab_funset_listize_03382_ats_ptr_type: tmp327 = (ats_sum_ptr_type)0 ; tmp320 = listize_67 (arg0, tmp327) ; return (tmp320) ; } /* end of [funset_listize_03382_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_sort.dats: 20066(line=982, offs=20) -- 20095(line=982, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp319) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_listize: tmp319 = funset_listize_03382_ats_ptr_type (arg0) ; return (tmp319) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_listize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_sort_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp20, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp21, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp22, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp23, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp24, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp25, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp26, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp27, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp28, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp29, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp30, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp31, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp32, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp33, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp34, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp35, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp36, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp37, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp38, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp39, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp40, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp41, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp42, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp43, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp44, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp45, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp46, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp47, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp48, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp49, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp50, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp51, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp52, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp53, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp54, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp55, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp56, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp57, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp58, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp59, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp60, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp61, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp62, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp63, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp64, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp65, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp66, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp67, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp68, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp69, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp70, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp71, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp72, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp73, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp74, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp75, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp227, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp20 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp20)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp20, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_INT) ; statmp21 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp21)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp21, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADDR) ; statmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp22)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp22, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BOOL) ; statmp23 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp23)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp23, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_REAL) ; statmp24 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp24)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp24, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FLOAT) ; statmp25 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp25)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp25, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_STRING) ; statmp26 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp26)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp26, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CLS) ; statmp27 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp27)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp27, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EFF) ; statmp28 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp28)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp28, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TKIND) ; statmp29 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp29)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp29, atslab_0, statmp20) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int = statmp29 ; statmp30 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp30)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp30, atslab_0, statmp21) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr = statmp30 ; statmp31 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp31)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp31, atslab_0, statmp22) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool = statmp31 ; statmp32 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp32)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp32, atslab_0, statmp23) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_real, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_real = statmp32 ; statmp33 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp33)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp33, atslab_0, statmp24) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_float, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_float = statmp33 ; statmp34 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp34)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp34, atslab_0, statmp25) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_string, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_string = statmp34 ; statmp35 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp35)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp35, atslab_0, statmp26) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_cls, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_cls = statmp35 ; statmp36 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp36)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp36, atslab_0, statmp27) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff = statmp36 ; statmp37 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp37)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp37, atslab_0, statmp28) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind = statmp37 ; statmp38 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp38)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp38, atslab_0, 5) ; ats_selptrset_mac(anairiats_sum_3, statmp38, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP) ; statmp39 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp39)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp39, atslab_0, 13) ; ats_selptrset_mac(anairiats_sum_3, statmp39, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP) ; statmp40 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp40)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp40, atslab_0, 29) ; ats_selptrset_mac(anairiats_sum_3, statmp40, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP) ; statmp41 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp41)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp41, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_3, statmp41, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE) ; statmp42 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp42)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp42, atslab_0, 8) ; ats_selptrset_mac(anairiats_sum_3, statmp42, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE) ; statmp43 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp43)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp43, atslab_0, 24) ; ats_selptrset_mac(anairiats_sum_3, statmp43, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE) ; statmp44 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp44)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp44, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_3, statmp44, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE) ; statmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp45)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp45, atslab_0, 9) ; ats_selptrset_mac(anairiats_sum_3, statmp45, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE) ; statmp46 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp46)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp46, atslab_0, 25) ; ats_selptrset_mac(anairiats_sum_3, statmp46, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE) ; statmp47 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp47)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp47, atslab_0, 0) ; ats_selptrset_mac(anairiats_sum_3, statmp47, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES) ; statmp48 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp48)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp48, atslab_0, 7) ; ats_selptrset_mac(anairiats_sum_3, statmp48, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW) ; statmp49 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp49)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp49, atslab_0, 15) ; ats_selptrset_mac(anairiats_sum_3, statmp49, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW) ; statmp50 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp50)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp50, atslab_0, 31) ; ats_selptrset_mac(anairiats_sum_3, statmp50, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW) ; statmp51 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp51)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp51, atslab_0, 2) ; ats_selptrset_mac(anairiats_sum_3, statmp51, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE) ; statmp52 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp52)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp52, atslab_0, 10) ; ats_selptrset_mac(anairiats_sum_3, statmp52, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE) ; statmp53 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp53)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp53, atslab_0, 26) ; ats_selptrset_mac(anairiats_sum_3, statmp53, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE) ; statmp54 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp54)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp54, atslab_0, 3) ; ats_selptrset_mac(anairiats_sum_3, statmp54, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE) ; statmp55 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp55)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp55, atslab_0, 11) ; ats_selptrset_mac(anairiats_sum_3, statmp55, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE) ; statmp56 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)statmp56)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, statmp56, atslab_0, 27) ; ats_selptrset_mac(anairiats_sum_3, statmp56, atslab_1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE) ; statmp57 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp57)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp57, atslab_0, statmp38) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop = statmp57 ; statmp58 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp58)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp58, atslab_0, statmp39) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_pos = statmp58 ; statmp59 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp59)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp59, atslab_0, statmp40) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop_neg = statmp59 ; statmp60 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp60)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp60, atslab_0, statmp41) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type = statmp60 ; statmp61 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp61)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp61, atslab_0, statmp42) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_pos = statmp61 ; statmp62 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp62)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp62, atslab_0, statmp43) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type_neg = statmp62 ; statmp63 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp63)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp63, atslab_0, statmp44) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype = statmp63 ; statmp64 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp64)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp64, atslab_0, statmp45) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_pos = statmp64 ; statmp65 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp65)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp65, atslab_0, statmp46) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype_neg = statmp65 ; statmp66 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp66)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp66, atslab_0, statmp47) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_types, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_types = statmp66 ; statmp67 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp67)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp67, atslab_0, statmp48) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view = statmp67 ; statmp68 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp68)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp68, atslab_0, statmp49) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_pos = statmp68 ; statmp69 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp69)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp69, atslab_0, statmp50) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view_neg = statmp69 ; statmp70 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp70)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp70, atslab_0, statmp51) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype = statmp70 ; statmp71 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp71)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp71, atslab_0, statmp52) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_pos = statmp71 ; statmp72 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp72)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp72, atslab_0, statmp53) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype_neg = statmp72 ; statmp73 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp73)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp73, atslab_0, statmp54) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype = statmp73 ; statmp74 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp74)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp74, atslab_0, statmp55) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_pos = statmp74 ; statmp75 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp75)->tag = 0 ; ats_selptrset_mac(anairiats_sum_2, statmp75, atslab_0, statmp56) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype_neg = statmp75 ; statmp227 = __ats_fun_56_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_sort_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_env_sats.c0000644000175000017500000000707413431250607022635 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_0 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symmap_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_env_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_p0at_dats.c0000644000175000017500000020153013431250607022662 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_p1at_loc ; ats_ptr_type atslab_p1at_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_p0at_loc ; ats_ptr_type atslab_p0at_node ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_clo_ref_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_labp0at_loc ; ats_ptr_type atslab_labp0at_node ; } anairiats_rec_11 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMatm_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMopr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpre_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATnorm_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATomit_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tdqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Topid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tchar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfloat_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tstring_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tapp_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlist_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlst_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Ttup_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trec_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfree_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tunfold_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Texist_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tsvararg_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trefas_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Terr_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_sta_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlist_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tsvararg_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_p0at_tr_4) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exist_prec_dyn) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app) (ats_ptr_type, ats_clo_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_dqid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_c0har) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_s0tring) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_list) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_tup) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_rec) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_lst) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_free) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_unfold) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_refas) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_exist) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_svararg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ann) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_errpat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_norm) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_omit) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0atlst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0at_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0atlst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02047_ () ; static ats_void_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type appf_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type appf_1_closure_make () ; static ats_ptr_type appf_1_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p1atitm_app_4 (ats_ptr_type arg0) ; static ats_ptr_type p1at_get_loc_5 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_7_closure_make () ; static ats_ptr_type __ats_fun_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p1at_make_opr_6 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_9 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_10_closure_make () ; static ats_ptr_type __ats_fun_10_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p1atitm_backslash_8 (ats_ptr_type arg0) ; static ats_void_type prerr_error1_loc_02050_ (ats_ptr_type arg0) ; static ats_ptr_type p0at_tr_errmsg_opr_11 (ats_ptr_type arg0) ; static ats_ptr_type fopr_16 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type fopr_16_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type fopr_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type prerr_interror_loc_02049_ (ats_ptr_type arg0) ; static ats_ptr_type aux_item_14 (ats_ptr_type arg0) ; static ats_ptr_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_itemlst_15 (ats_ptr_type arg0) ; static ats_void_type loop_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 1844(line=54, offs=28) -- 1873(line=54, offs=57) */ ATSstaticdec() ats_void_type prerr_FILENAME_02047_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02047_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans1_p0at")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02047_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19194(line=690, offs=7) -- 19604(line=704, offs=6) */ ATSstaticdec() ats_void_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab_loop_3: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp18 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp19 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp19, atslab_0, tmp17) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp19 ; if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19444(line=699, offs=13) -- 19470(line=699, offs=39)") ; } tmp20 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp18 ; arg1 = arg1 ; arg2 = tmp20 ; goto __ats_lab_loop_3 ; // tail call break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: tmp22 = (ats_sum_ptr_type)0 ; tmp21 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp21, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp21, atslab_1, tmp22) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp21 ; break ; } while (0) ; return /* (tmp16) */ ; } /* end of [loop_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19136(line=688, offs=13) -- 19698(line=708, offs=4) */ ATSstaticdec() ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp23) ; __ats_lab_list_extend_01337_ats_ptr_type: /* ats_ptr_type tmp15 ; */ /* tmp23 = */ loop_3 (arg0, arg1, (&tmp15)) ; tmp14 = tmp15 ; return (tmp14) ; } /* end of [list_extend_01337_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 2437(line=92, offs=4) -- 3266(line=120, offs=4) */ ATSstaticdec() ats_ptr_type appf_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab_appf_1: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_p1at_loc) ; tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p1at_loc) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp4, tmp2) ; tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_p1at_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp6)->tag != 14) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_2, tmp6, atslab_0) ; tmp8 = ats_caselptrlab_mac(anairiats_sum_2, tmp6, atslab_1) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn (tmp3, arg0, tmp2, tmp7, tmp8) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp6)->tag != 22) { goto __ats_lab_6_0 ; } __ats_lab_1_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_3, tmp6, atslab_0) ; tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p1at_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp10)->tag != 12) { goto __ats_lab_5_0 ; } __ats_lab_2_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_0) ; tmp12 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_1) ; tmp13 = list_extend_01337_ats_ptr_type (tmp12, tmp9) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_sta (tmp3, tmp11, ats_castfn_mac(ats_ptr_type, tmp13)) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp25 = (ats_sum_ptr_type)0 ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp24, atslab_0, tmp9) ; ats_selptrset_mac(anairiats_sum_5, tmp24, atslab_1, tmp25) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_sta (tmp3, arg0, tmp24) ; break ; } while (0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp27 = (ats_sum_ptr_type)0 ; tmp26 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp26, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp26, atslab_1, tmp27) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn (tmp3, arg0, tmp2, -1, tmp26) ; break ; } while (0) ; tmp1 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp1)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp1, atslab_0, tmp5) ; return (tmp1) ; } /* end of [appf_1] */ typedef struct { ats_fun_ptr_type closure_fun ; } appf_1_closure_type ; ats_ptr_type appf_1_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return appf_1 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type appf_1_closure_init (appf_1_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&appf_1_clofun ; return ; } /* end of function */ ats_clo_ptr_type appf_1_closure_make () { appf_1_closure_type *p_clo = ATS_MALLOC(sizeof(appf_1_closure_type)) ; appf_1_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 3310(line=124, offs=4) -- 3372(line=125, offs=51) */ ATSstaticdec() ats_ptr_type p1atitm_app_4 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_p1atitm_app_4: tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app (arg0, appf_1_closure_make ()) ; return (tmp28) ; } /* end of [p1atitm_app_4] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 3424(line=130, offs=4) -- 3469(line=130, offs=49) */ ATSstaticdec() ats_ptr_type p1at_get_loc_5 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; __ats_lab_p1at_get_loc_5: tmp29 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p1at_loc) ; return (tmp29) ; } /* end of [p1at_get_loc_5] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 3574(line=137, offs=5) -- 3648(line=137, offs=79) */ ATSstaticdec() ats_ptr_type __ats_fun_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; __ats_lab___ats_fun_7: tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn (arg0, arg1, arg2, -1, arg3) ; return (tmp31) ; } /* end of [__ats_fun_7] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_7_closure_type ; ats_ptr_type __ats_fun_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_7 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_7_closure_init (__ats_fun_7_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_7_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_7_closure_make () { __ats_fun_7_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_7_closure_type)) ; __ats_fun_7_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 3474(line=132, offs=4) -- 3689(line=140, offs=4) */ ATSstaticdec() ats_ptr_type p1at_make_opr_6 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; __ats_lab_p1at_make_opr_6: tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make (&p1at_get_loc_5, __ats_fun_7_closure_make (), arg0, arg1) ; return (tmp30) ; } /* end of [p1at_make_opr_6] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 3804(line=145, offs=5) -- 3823(line=145, offs=24) */ ATSstaticdec() ats_ptr_type __ats_fun_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; __ats_lab___ats_fun_9: tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p1at_loc) ; return (tmp33) ; } /* end of [__ats_fun_9] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 3828(line=146, offs=5) -- 3902(line=146, offs=79) */ ATSstaticdec() ats_ptr_type __ats_fun_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; __ats_lab___ats_fun_10: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_app_dyn (arg0, arg1, arg2, -1, arg3) ; return (tmp34) ; } /* end of [__ats_fun_10] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_10_closure_type ; ats_ptr_type __ats_fun_10_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_10 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_10_closure_init (__ats_fun_10_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_10_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_10_closure_make () { __ats_fun_10_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_10_closure_type)) ; __ats_fun_10_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 3720(line=142, offs=4) -- 3954(line=149, offs=4) */ ATSstaticdec() ats_ptr_type p1atitm_backslash_8 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_p1atitm_backslash_8: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash (&__ats_fun_9, __ats_fun_10_closure_make (), arg0) ; return (tmp32) ; } /* end of [p1atitm_backslash_8] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1988(line=70, offs=17) -- 2046(line=73, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_02050_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; __ats_lab_prerr_error1_loc_02050_: /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp38 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp38) */ ; } /* end of [prerr_error1_loc_02050_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 4017(line=155, offs=4) -- 4288(line=164, offs=4) */ ATSstaticdec() ats_ptr_type p0at_tr_errmsg_opr_11 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab_p0at_tr_errmsg_opr_11: tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p0at_loc) ; /* tmp37 = */ prerr_error1_loc_02050_ (tmp36) ; /* tmp40 = */ atspre_prerr_string (ATSstrcst(": the operator needs to be applied.")) ; /* tmp41 = */ atspre_prerr_newline () ; tmp43 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp43)->tag = 4 ; ats_selptrset_mac(anairiats_sum_3, tmp43, atslab_0, arg0) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp43) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_errpat (tmp36) ; return (tmp35) ; } /* end of [p0at_tr_errmsg_opr_11] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 6326(line=254, offs=9) -- 6472(line=259, offs=8) */ ATSstaticdec() ats_ptr_type fopr_16 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab_fopr_16: tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_p1at_loc) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp104) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_exist (tmp103, env1, arg0) ; tmp102 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp102)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp102, atslab_0, tmp105) ; return (tmp102) ; } /* end of [fopr_16] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } fopr_16_closure_type ; ats_ptr_type fopr_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return fopr_16 (((fopr_16_closure_type*)cloptr)->closure_env_0, ((fopr_16_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type fopr_16_closure_init (fopr_16_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&fopr_16_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type fopr_16_closure_make (ats_ptr_type env0, ats_ptr_type env1) { fopr_16_closure_type *p_clo = ATS_MALLOC(sizeof(fopr_16_closure_type)) ; fopr_16_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02049_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; __ats_lab_prerr_interror_loc_02049_: /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp118 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp119 = */ prerr_FILENAME_02047_ () ; /* tmp116 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp116) */ ; } /* end of [prerr_interror_loc_02049_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 4405(line=174, offs=1) -- 7320(line=291, offs=4) */ ATSstaticdec() ats_ptr_type aux_item_14 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_bool_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_int_type, tmp84) ; ATSlocal (ats_int_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; __ats_lab_aux_item_14: tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p0at_loc) ; tmp47 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p0at_node) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp47)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_7_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp48, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ; if (tmp49) { tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_any (tmp46) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp50) ; } else { tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp48, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; if (tmp51) { tmp45 = p1atitm_backslash_8 (tmp46) ; } else { tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ide (tmp46, tmp48) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find (tmp48) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (tmp53 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp52) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (tmp53 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_7, tmp53, atslab_0) ; ATS_FREE(tmp53) ; tmp45 = p1at_make_opr_6 (tmp52, tmp54) ; break ; } while (0) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp47)->tag != 1) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_4, tmp47, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_4, tmp47, atslab_1) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_dqid (tmp46, tmp55, tmp56) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp57) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp47)->tag != 2) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ide (tmp46, tmp58) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp59) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp47)->tag != 3) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_i0nt (tmp46, tmp60) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp61) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp47)->tag != 4) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_c0har (tmp46, tmp62) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp63) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp47)->tag != 5) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_f0loat (tmp46, tmp64) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp65) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp47)->tag != 6) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_s0tring (tmp46, tmp66) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp67) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp47)->tag != 7) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp69 = p1atitm_app_4 (tmp46) ; tmp70 = aux_itemlst_15 (arg0) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve (tmp46, &p1at_get_loc_5, tmp69, tmp70) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp68) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp47)->tag != 8) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_2, tmp47, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_2, tmp47, atslab_1) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0atlst_tr (tmp72) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_list (tmp46, tmp71, tmp73) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp74) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp47)->tag != 9) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_2, tmp47, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_2, tmp47, atslab_1) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0atlst_tr (tmp76) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_lst (tmp46, tmp75, tmp77) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp78) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp47)->tag != 10) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_8, tmp47, atslab_0) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_8, tmp47, atslab_1) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_8, tmp47, atslab_2) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0atlst_tr (tmp81) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_tup (tmp46, tmp79, tmp80, tmp82) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp83) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp47)->tag != 11) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_8, tmp47, atslab_0) ; tmp85 = ats_caselptrlab_mac(anairiats_sum_8, tmp47, atslab_1) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_8, tmp47, atslab_2) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0atlst_tr (tmp86) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_rec (tmp46, tmp84, tmp85, tmp87) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp88) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp47)->tag != 12) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp89 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp89) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_free (tmp46, tmp91) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp90) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp47)->tag != 13) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp92) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_unfold (tmp46, tmp94) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp93) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp47)->tag != 16) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_9, tmp47, atslab_0) ; tmp96 = ats_caselptrlab_mac(anairiats_sum_9, tmp47, atslab_1) ; tmp97 = ats_caselptrlab_mac(anairiats_sum_9, tmp47, atslab_2) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp97) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_refas (tmp46, tmp95, tmp96, tmp99) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp98) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp47)->tag != 14) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0arglst_tr (tmp100) ; tmp106 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp106)->tag = 1 ; ats_selptrset_mac(anairiats_sum_10, tmp106, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__exist_prec_dyn) ; ats_selptrset_mac(anairiats_sum_10, tmp106, atslab_1, fopr_16_closure_make (tmp46, tmp101)) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp45)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp45, atslab_0, tmp46) ; ats_selptrset_mac(anairiats_sum_4, tmp45, atslab_1, tmp106) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp47)->tag != 15) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_3, tmp47, atslab_0) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararg_tr (tmp107) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_svararg (tmp46, tmp109) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp108) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp47)->tag != 17) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_4, tmp47, atslab_0) ; tmp111 = ats_caselptrlab_mac(anairiats_sum_4, tmp47, atslab_1) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp110) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp111) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_ann (tmp46, tmp112, tmp113) ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp45)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp45, atslab_0, tmp114) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (((ats_sum_ptr_type)tmp47)->tag != 18) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: /* tmp115 = */ prerr_interror_loc_02049_ (tmp46) ; /* tmp120 = */ atspre_fprint_string (stderr, ATSstrcst(": p0at_tr: p0t0 = ")) ; /* tmp121 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_p0at (stderr, arg0) ; /* tmp122 = */ atspre_fprint_newline (stderr) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; return (tmp45) ; } /* end of [aux_item_14] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 7403(line=296, offs=7) -- 7653(line=303, offs=44) */ ATSstaticdec() ats_ptr_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab_loop_18: tmp125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_p0at_node) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp125)->tag != 7) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_4, tmp125, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_4, tmp125, atslab_1) ; tmp129 = aux_item_14 (tmp127) ; tmp128 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp128, atslab_0, tmp129) ; ats_selptrset_mac(anairiats_sum_5, tmp128, atslab_1, arg1) ; arg0 = tmp126 ; arg1 = tmp128 ; goto __ats_lab_loop_18 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp130 = aux_item_14 (arg0) ; tmp124 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp124, atslab_0, tmp130) ; ats_selptrset_mac(anairiats_sum_5, tmp124, atslab_1, arg1) ; break ; } while (0) ; return (tmp124) ; } /* end of [loop_18] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 7352(line=294, offs=1) -- 7706(line=307, offs=4) */ ATSstaticdec() ats_ptr_type aux_itemlst_15 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab_aux_itemlst_15: tmp131 = (ats_sum_ptr_type)0 ; tmp123 = loop_18 (arg0, tmp131) ; return (tmp123) ; } /* end of [aux_itemlst_15] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 4361(line=169, offs=9) -- 7838(line=315, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr: tmp132 = aux_item_14 (arg0) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp132)->tag != 0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp133 = ats_caselptrlab_mac(anairiats_sum_3, tmp132, atslab_0) ; tmp44 = tmp133 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (((ats_sum_ptr_type)tmp132)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp44 = p0at_tr_errmsg_opr_11 (arg0) ; break ; } while (0) ; return (tmp44) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 7906(line=321, offs=3) -- 8110(line=332, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0at_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0at_tr: tmp135 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_labp0at_loc) ; tmp136 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_labp0at_node) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp136 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_5, tmp136, atslab_0) ; tmp138 = ats_caselptrlab_mac(anairiats_sum_5, tmp136, atslab_1) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp138) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_norm (tmp135, tmp137, tmp139) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (tmp136 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labp1at_omit (tmp135) ; break ; } while (0) ; return (tmp134) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0at_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab_loop_23: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp146 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp147 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp145, arg3) ; tmp148 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp148, atslab_0, tmp147) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp148 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp149 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp146 ; arg1 = arg1 ; arg2 = tmp149 ; arg3 = arg3 ; goto __ats_lab_loop_23 ; // tail call break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp150 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp150 ; break ; } while (0) ; return /* (tmp144) */ ; } /* end of [loop_23] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp151) ; // ATSlocal_void (tmp152) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp151 ; */ /* tmp152 = */ loop_23 (arg0, arg1, (&tmp151), arg2) ; tmp143 = tmp151 ; return (tmp143) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp142) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp142 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp142) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 8179(line=337, offs=12) -- 8217(line=337, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0atlst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0atlst_tr: tmp141 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr) ; tmp140 = ats_castfn_mac(ats_ptr_type, tmp141) ; return (tmp140) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0atlst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_p0at.dats: 8246(line=340, offs=15) -- 8289(line=340, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0atlst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0atlst_tr: tmp154 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0at_tr) ; tmp153 = ats_castfn_mac(ats_ptr_type, tmp154) ; return (tmp153) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labp0atlst_tr] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_p0at_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_p0at_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_tmpvar_dats.c0000644000175000017500000033476613431250607023242 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_tmpvar_loc ; ats_ptr_type atslab_tmpvar_type ; ats_int_type atslab_tmpvar_ref ; ats_int_type atslab_tmpvar_ret ; ats_int_type atslab_tmpvar_topknd ; ats_ptr_type atslab_tmpvar_origin ; ats_int_type atslab_tmpvar_suffix ; ats_int_type atslab_tmpvar_stamp ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_4 ; /* external typedefs */ typedef anairiats_rec_0 *tmpvar_t ; /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__B_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__E_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_bool_type, atspre_ilte) (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_int_type, atspre_imax) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_size_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmpvar_stamp_make) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyclo) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isref) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_tailcal) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__compare_tmpvar_tmpvar) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_tmpvar_set_ref) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, patsopt_tmpvar_set_ret) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, patsopt_tmpvar_set_type) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__tmpvarmap_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__tmpvarset_vtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__tmpvar_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type fprintopt_01724_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type __ats_fun_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type __ats_fun_21_closure_make () ; static ats_int_type __ats_fun_21_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_make_nil_05138_ () ; static ats_void_type aux_26 (ats_ptr_type arg0) ; static ats_void_type linset_free_05145_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type compare_elt_elt_05137_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_01896_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_01950_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_01926_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_29 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type insert_29_closure_make (ats_clo_ref_type env0) ; static ats_bool_type insert_29_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linset_insert_05147_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_05162_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_39 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type linset_listize_free_05163_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type linmap_make_nil_05168_ () ; static ats_void_type _free_44 (ats_ptr_type arg0) ; static ats_void_type linmap_free_05185_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_int_type compare_key_key_05167_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type search_49 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type search_49_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type search_49_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type linmap_search_ref_05174_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type linmap_search_05173_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ; static ats_ptr_type linmap_search_opt_05175_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_int_type avltree_height_02279_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type avltree_rrotate_02332_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type avltree_lrotate_02307_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_bool_type insert_53 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_clo_ptr_type insert_53_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type insert_53_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_bool_type linmap_insert_05176_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) ; static ats_ptr_type avltree_takeout_min_02383_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) ; static ats_bool_type takeout_60 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type takeout_60_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type takeout_60_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ; static ats_bool_type linmap_takeout_ptr_05191_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) ; static ats_bool_type linmap_remove_05178_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp48) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 2301(line=87, offs=3) -- 2576(line=96, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tmpvar_stamp_make () ; tmp2 = (ats_sum_ptr_type)0 ; tmp0 = ATS_MALLOC(sizeof(anairiats_rec_0)) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmpvar_loc, arg0) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmpvar_type, arg1) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmpvar_ref, 0) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmpvar_ret, 0) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmpvar_topknd, 0) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmpvar_origin, tmp2) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmpvar_suffix, 0) ; ats_selptrset_mac(anairiats_rec_0, tmp0, atslab_tmpvar_stamp, tmp1) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 2649(line=101, offs=15) -- 2671(line=101, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc: tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_loc) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 2700(line=104, offs=16) -- 2723(line=104, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type: tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_type) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 2749(line=107, offs=13) -- 2775(line=107, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isref (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isref: tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_ref) ; tmp5 = atspre_gt_int_int (tmp6, 0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 2798(line=109, offs=13) -- 2824(line=109, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret: tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_ret) ; tmp7 = atspre_gt_int_int (tmp8, 0) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 2855(line=112, offs=18) -- 2880(line=112, offs=43) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_topknd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_topknd: tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_topknd) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_topknd] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 2911(line=115, offs=18) -- 2958(line=116, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_origin (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_origin: tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_origin) ; tmp10 = ats_castfn_mac(ats_ptr_type, tmp11) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_origin] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 3020(line=120, offs=18) -- 3044(line=120, offs=42) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_stamp: tmp12 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_stamp) ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 3072(line=122, offs=18) -- 3097(line=122, offs=43) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_suffix (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_suffix: tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_suffix) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_suffix] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 3153(line=127, offs=20) -- 3175(line=127, offs=42) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_tailcal (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_tailcal: tmp14 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_ret) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_tailcal] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 3229(line=132, offs=18) -- 3305(line=133, offs=62) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__eq_tmpvar_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp15) ; ATSlocal (ats_int_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__eq_tmpvar_tmpvar: tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_stamp) ; tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_tmpvar_stamp) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp (tmp16, tmp17) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__eq_tmpvar_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 3370(line=137, offs=23) -- 3451(line=138, offs=67) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__compare_tmpvar_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_int_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__compare_tmpvar_tmpvar: tmp19 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_tmpvar_stamp) ; tmp20 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_tmpvar_stamp) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp19, tmp20) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__compare_tmpvar_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 3581(line=149, offs=3) -- 3620(line=149, offs=42) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_tmpvar (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_tmpvar: /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (stdout, arg0) ; return /* (tmp21) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 3646(line=152, offs=3) -- 3685(line=152, offs=42) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_tmpvar (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_tmpvar: /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (stderr, arg0) ; return /* (tmp22) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 3715(line=156, offs=3) -- 4111(line=168, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar: tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isref (arg1) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_isret (arg1) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_stamp (arg1) ; /* tmp27 = */ atspre_fprint_string (arg0, ATSstrcst("tmp")) ; if (tmp24) { /* tmp28 = */ atspre_fprint_string (arg0, ATSstrcst("ref")) ; } else { /* empty */ } /* end of [if] */ if (tmp25) { /* tmp29 = */ atspre_fprint_string (arg0, ATSstrcst("ret")) ; } else { /* empty */ } /* end of [if] */ /* tmp30 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp26) ; /* tmp23 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp23) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 12204(line=668, offs=1) -- 12471(line=681, offs=8) */ ATSstaticdec() ats_void_type fprintopt_01724_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; __ats_lab_fprintopt_01724_ats_ptr_type: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp35 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp36 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg2) (arg0, tmp34) ; /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp33) */ ; } /* end of [fprintopt_01724_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 4170(line=172, offs=3) -- 4222(line=172, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvaropt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvaropt: /* tmp32 = */ fprintopt_01724_ats_ptr_type (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar) ; return /* (tmp32) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvaropt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 4531(line=193, offs=3) -- 4634(line=196, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ref (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; // ATSlocal_void (tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ref: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (arg0, arg1) ; /* tmp39 = */ patsopt_tmpvar_set_ref (tmp38, 1) ; tmp37 = tmp38 ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ref] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 4692(line=200, offs=3) -- 4795(line=203, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ret (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; // ATSlocal_void (tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ret: tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (arg0, arg1) ; /* tmp42 = */ patsopt_tmpvar_set_ret (tmp41, 1) ; tmp40 = tmp41 ; return (tmp40) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ret] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 4856(line=207, offs=3) -- 4963(line=210, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp43) ; ATSlocal (ats_int_type, tmp44) ; ATSlocal (ats_int_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal: tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_tailcal (arg0) ; tmp45 = atspre_add_int_int (tmp44, 1) ; /* tmp43 = */ patsopt_tmpvar_set_ret (arg0, tmp45) ; return /* (tmp43) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 5066(line=217, offs=17) -- 5077(line=217, offs=28) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_copy_err (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_copy_err: tmp46 = arg0 ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_copy_err] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 5461(line=235, offs=11) -- 5550(line=239, offs=37) */ ATSstaticdec() ats_int_type __ats_fun_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp47) ; __ats_lab___ats_fun_21: tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__compare_tmpvar_tmpvar (arg0, arg1) ; return (tmp47) ; } /* end of [__ats_fun_21] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_21_closure_type ; ats_int_type __ats_fun_21_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return __ats_fun_21 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_21_closure_init (__ats_fun_21_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_21_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_21_closure_make () { __ats_fun_21_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_21_closure_type)) ; __ats_fun_21_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26) */ ATSstaticdec() ats_ptr_type linset_make_nil_05138_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; __ats_lab_linset_make_nil_05138_: tmp50 = (ats_sum_ptr_type)0 ; return (tmp50) ; } /* end of [linset_make_nil_05138_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 5619(line=245, offs=18) -- 5646(line=245, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_nil: tmp49 = linset_make_nil_05138_ () ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18) */ ATSstaticdec() ats_void_type aux_26 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; __ats_lab_aux_26: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_2) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_3) ; ATS_FREE(arg0) ; /* tmp56 = */ aux_26 (tmp54) ; arg0 = tmp55 ; goto __ats_lab_aux_26 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp53) */ ; } /* end of [aux_26] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4410(line=170, offs=13) -- 4591(line=179, offs=4) */ ATSstaticdec() ats_void_type linset_free_05145_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp52) ; __ats_lab_linset_free_05145_ats_ptr_type: /* tmp52 = */ aux_26 (arg0) ; return /* (tmp52) */ ; } /* end of [linset_free_05145_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 5676(line=248, offs=19) -- 5702(line=248, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_free: /* tmp51 = */ linset_free_05145_ats_ptr_type (arg0) ; return /* (tmp51) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45) */ ATSstaticdec() ats_int_type compare_elt_elt_05137_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp67) ; __ats_lab_compare_elt_elt_05137_ats_ptr_type: tmp67 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp67) ; } /* end of [compare_elt_elt_05137_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54) */ ATSstaticdec() ats_int_type avltree_height_01896_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; __ats_lab_avltree_height_01896_ats_ptr_type: do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp72 = tmp73 ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp72 = 0 ; break ; } while (0) ; return (tmp72) ; } /* end of [avltree_height_01896_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_01950_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_int_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_int_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_int_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_int_type, tmp95) ; ATSlocal (ats_int_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_int_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_int_type, tmp105) ; ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab_avltree_rrotate_01950_ats_ptr_type: tmp83 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp83 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp84 = &ats_caselptrlab_mac(anairiats_sum_2, tmp83, atslab_0) ; tmp85 = &ats_caselptrlab_mac(anairiats_sum_2, tmp83, atslab_2) ; tmp86 = &ats_caselptrlab_mac(anairiats_sum_2, tmp83, atslab_3) ; tmp88 = ats_ptrget_mac(ats_ptr_type, tmp85) ; tmp87 = avltree_height_01896_ats_ptr_type (tmp88) ; tmp90 = ats_ptrget_mac(ats_ptr_type, tmp86) ; tmp89 = avltree_height_01896_ats_ptr_type (tmp90) ; tmp92 = atspre_iadd (tmp87, 0) ; tmp91 = atspre_igte (tmp92, tmp89) ; if (tmp91) { tmp93 = atspre_iadd (tmp89, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp93 ; tmp94 = ats_ptrget_mac(ats_ptr_type, tmp86) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp94 ; tmp96 = atspre_imax (tmp87, tmp93) ; tmp95 = atspre_iadd (1, tmp96) ; ats_ptrget_mac(ats_int_type, tmp84) = tmp95 ; ats_ptrget_mac(ats_ptr_type, tmp86) = arg5 ; tmp82 = tmp83 ; } else { tmp97 = ats_ptrget_mac(ats_ptr_type, tmp86) ; // if (tmp97 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp98 = &ats_caselptrlab_mac(anairiats_sum_2, tmp97, atslab_0) ; tmp99 = &ats_caselptrlab_mac(anairiats_sum_2, tmp97, atslab_2) ; tmp100 = &ats_caselptrlab_mac(anairiats_sum_2, tmp97, atslab_3) ; tmp102 = ats_ptrget_mac(ats_ptr_type, tmp99) ; tmp101 = avltree_height_01896_ats_ptr_type (tmp102) ; tmp104 = ats_ptrget_mac(ats_ptr_type, tmp100) ; tmp103 = avltree_height_01896_ats_ptr_type (tmp104) ; tmp106 = atspre_imax (tmp103, arg3) ; tmp105 = atspre_iadd (1, tmp106) ; ats_ptrget_mac(ats_int_type, arg0) = tmp105 ; tmp107 = ats_ptrget_mac(ats_ptr_type, tmp100) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp107 ; tmp109 = atspre_imax (tmp87, tmp101) ; tmp108 = atspre_iadd (1, tmp109) ; ats_ptrget_mac(ats_int_type, tmp84) = tmp108 ; tmp110 = ats_ptrget_mac(ats_ptr_type, tmp99) ; ats_ptrget_mac(ats_ptr_type, tmp86) = tmp110 ; ats_ptrget_mac(ats_int_type, tmp98) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp99) = tmp83 ; ats_ptrget_mac(ats_ptr_type, tmp100) = arg5 ; tmp82 = tmp97 ; } /* end of [if] */ return (tmp82) ; } /* end of [avltree_rrotate_01950_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_01926_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_int_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; ATSlocal (ats_int_type, tmp132) ; ATSlocal (ats_int_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_int_type, tmp135) ; ATSlocal (ats_int_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_int_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_int_type, tmp145) ; ATSlocal (ats_int_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_int_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab_avltree_lrotate_01926_ats_ptr_type: tmp123 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp123 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp124 = &ats_caselptrlab_mac(anairiats_sum_2, tmp123, atslab_0) ; tmp125 = &ats_caselptrlab_mac(anairiats_sum_2, tmp123, atslab_2) ; tmp126 = &ats_caselptrlab_mac(anairiats_sum_2, tmp123, atslab_3) ; tmp128 = ats_ptrget_mac(ats_ptr_type, tmp125) ; tmp127 = avltree_height_01896_ats_ptr_type (tmp128) ; tmp130 = ats_ptrget_mac(ats_ptr_type, tmp126) ; tmp129 = avltree_height_01896_ats_ptr_type (tmp130) ; tmp132 = atspre_iadd (tmp129, 0) ; tmp131 = atspre_ilte (tmp127, tmp132) ; if (tmp131) { tmp133 = atspre_iadd (tmp127, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp133 ; tmp134 = ats_ptrget_mac(ats_ptr_type, tmp125) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp134 ; tmp136 = atspre_imax (tmp133, tmp129) ; tmp135 = atspre_iadd (1, tmp136) ; ats_ptrget_mac(ats_int_type, tmp124) = tmp135 ; ats_ptrget_mac(ats_ptr_type, tmp125) = arg5 ; tmp122 = tmp123 ; } else { tmp137 = ats_ptrget_mac(ats_ptr_type, tmp125) ; // if (tmp137 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp138 = &ats_caselptrlab_mac(anairiats_sum_2, tmp137, atslab_0) ; tmp139 = &ats_caselptrlab_mac(anairiats_sum_2, tmp137, atslab_2) ; tmp140 = &ats_caselptrlab_mac(anairiats_sum_2, tmp137, atslab_3) ; tmp142 = ats_ptrget_mac(ats_ptr_type, tmp139) ; tmp141 = avltree_height_01896_ats_ptr_type (tmp142) ; tmp144 = ats_ptrget_mac(ats_ptr_type, tmp140) ; tmp143 = avltree_height_01896_ats_ptr_type (tmp144) ; tmp146 = atspre_imax (arg1, tmp141) ; tmp145 = atspre_iadd (1, tmp146) ; ats_ptrget_mac(ats_int_type, arg0) = tmp145 ; tmp147 = ats_ptrget_mac(ats_ptr_type, tmp139) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp147 ; tmp149 = atspre_imax (tmp143, tmp129) ; tmp148 = atspre_iadd (1, tmp149) ; ats_ptrget_mac(ats_int_type, tmp124) = tmp148 ; tmp150 = ats_ptrget_mac(ats_ptr_type, tmp140) ; ats_ptrget_mac(ats_ptr_type, tmp125) = tmp150 ; ats_ptrget_mac(ats_int_type, tmp138) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp139) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp140) = tmp123 ; tmp122 = tmp137 ; } /* end of [if] */ return (tmp122) ; } /* end of [avltree_lrotate_01926_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4) */ ATSstaticdec() ats_bool_type insert_29 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_int_type, tmp66) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_bool_type, tmp69) ; ATSlocal (ats_bool_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_bool_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_bool_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_bool_type, tmp117) ; ATSlocal (ats_int_type, tmp118) ; ATSlocal (ats_int_type, tmp119) ; ATSlocal (ats_int_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; __ats_lab_insert_29: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_4_1: tmp62 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp63 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp64 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp65 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp68 = ats_ptrget_mac(ats_ptr_type, tmp63) ; tmp66 = compare_elt_elt_05137_ats_ptr_type (arg1, tmp68, env0) ; tmp69 = atspre_lt_int_int (tmp66, 0) ; if (tmp69) { tmp70 = insert_29 (env0, tmp64, arg1) ; tmp74 = ats_ptrget_mac(ats_ptr_type, tmp64) ; tmp71 = avltree_height_01896_ats_ptr_type (tmp74) ; tmp76 = ats_ptrget_mac(ats_ptr_type, tmp65) ; tmp75 = avltree_height_01896_ats_ptr_type (tmp76) ; tmp78 = atspre_isub (tmp71, tmp75) ; tmp77 = atspre_ilte (tmp78, 1) ; if (tmp77) { tmp80 = atspre_imax (tmp71, tmp75) ; tmp79 = atspre_iadd (1, tmp80) ; ats_ptrget_mac(ats_int_type, tmp62) = tmp79 ; tmp61 = tmp70 ; } else { tmp81 = avltree_rrotate_01950_ats_ptr_type (tmp62, tmp71, tmp64, tmp75, tmp65, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp81 ; tmp61 = tmp70 ; } /* end of [if] */ } else { tmp111 = atspre_gt_int_int (tmp66, 0) ; if (tmp111) { tmp112 = insert_29 (env0, tmp65, arg1) ; tmp114 = ats_ptrget_mac(ats_ptr_type, tmp64) ; tmp113 = avltree_height_01896_ats_ptr_type (tmp114) ; tmp116 = ats_ptrget_mac(ats_ptr_type, tmp65) ; tmp115 = avltree_height_01896_ats_ptr_type (tmp116) ; tmp118 = atspre_isub (tmp115, tmp113) ; tmp117 = atspre_ilte (tmp118, 1) ; if (tmp117) { tmp120 = atspre_imax (tmp113, tmp115) ; tmp119 = atspre_iadd (1, tmp120) ; ats_ptrget_mac(ats_int_type, tmp62) = tmp119 ; tmp61 = tmp112 ; } else { tmp121 = avltree_lrotate_01926_ats_ptr_type (tmp62, tmp113, tmp64, tmp115, tmp65, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp121 ; tmp61 = tmp112 ; } /* end of [if] */ } else { tmp61 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp152 = (ats_sum_ptr_type)0 ; tmp153 = (ats_sum_ptr_type)0 ; tmp151 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp151, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_2, tmp151, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp151, atslab_2, tmp152) ; ats_selptrset_mac(anairiats_sum_2, tmp151, atslab_3, tmp153) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp151 ; tmp61 = ats_false_bool ; break ; } while (0) ; return (tmp61) ; } /* end of [insert_29] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_clo_ref_type closure_env_0 ; } insert_29_closure_type ; ats_bool_type insert_29_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return insert_29 (((insert_29_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type insert_29_closure_init (insert_29_closure_type *p_clo, ats_clo_ref_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_29_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type insert_29_closure_make (ats_clo_ref_type env0) { insert_29_closure_type *p_clo = ATS_MALLOC(sizeof(insert_29_closure_type)) ; insert_29_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4) */ ATSstaticdec() ats_bool_type linset_insert_05147_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp60) ; __ats_lab_linset_insert_05147_ats_ptr_type: tmp60 = insert_29 (arg2, arg0, arg1) ; return (tmp60) ; } /* end of [linset_insert_05147_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 5734(line=252, offs=3) -- 5823(line=255, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_bool_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add: /* ats_ptr_type tmp58 ; */ tmp58 = arg0 ; tmp59 = linset_insert_05147_ats_ptr_type ((&tmp58), arg1, statmp48) ; tmp57 = tmp58 ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27430(line=997, offs=7) -- 27766(line=1008, offs=31) */ ATSstaticdec() ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; __ats_lab_aux_36: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp157 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp158 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_2) ; tmp159 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_3) ; tmp161 = ats_ptrget_mac(ats_ptr_type, tmp159) ; tmp160 = aux_36 (tmp161, arg1) ; tmp162 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp162, atslab_0, tmp157) ; ats_selptrset_mac(anairiats_sum_3, tmp162, atslab_1, tmp160) ; tmp163 = ats_ptrget_mac(ats_ptr_type, tmp158) ; arg0 = tmp163 ; arg1 = tmp162 ; goto __ats_lab_aux_36 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp156 = arg1 ; break ; } while (0) ; return (tmp156) ; } /* end of [aux_36] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27379(line=995, offs=16) -- 27815(line=1012, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_05162_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp164) ; __ats_lab_linset_listize_05162_ats_ptr_type: tmp164 = (ats_sum_ptr_type)0 ; tmp155 = aux_36 (arg0, tmp164) ; return (tmp155) ; } /* end of [linset_listize_05162_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 5885(line=258, offs=22) -- 5914(line=258, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize: tmp154 = linset_listize_05162_ats_ptr_type (arg0) ; return (tmp154) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19) */ ATSstaticdec() ats_ptr_type aux_39 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab_aux_39: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_2) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_3) ; ATS_FREE(arg0) ; tmp171 = aux_39 (tmp170, arg1) ; tmp172 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp172, atslab_0, tmp168) ; ats_selptrset_mac(anairiats_sum_3, tmp172, atslab_1, tmp171) ; arg0 = tmp169 ; arg1 = tmp172 ; goto __ats_lab_aux_39 ; // tail call break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp167 = arg1 ; break ; } while (0) ; return (tmp167) ; } /* end of [aux_39] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4) */ ATSstaticdec() ats_ptr_type linset_listize_free_05163_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab_linset_listize_free_05163_ats_ptr_type: tmp173 = (ats_sum_ptr_type)0 ; tmp166 = aux_39 (arg0, tmp173) ; return (tmp166) ; } /* end of [linset_listize_free_05163_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 5952(line=260, offs=27) -- 5986(line=260, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp165) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize_free: tmp165 = linset_listize_free_05163_ats_ptr_type (arg0) ; return (tmp165) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_listize_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3005(line=103, offs=29) -- 3014(line=103, offs=38) */ ATSstaticdec() ats_ptr_type linmap_make_nil_05168_ () { /* local vardec */ ATSlocal (ats_ptr_type, tmp175) ; __ats_lab_linmap_make_nil_05168_: tmp175 = (ats_sum_ptr_type)0 ; return (tmp175) ; } /* end of [linmap_make_nil_05168_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 6037(line=265, offs=18) -- 6064(line=265, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_nil: tmp174 = linmap_make_nil_05168_ () ; return (tmp174) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20597(line=699, offs=7) -- 20733(line=701, offs=65) */ ATSstaticdec() ats_void_type _free_44 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; // ATSlocal_void (tmp181) ; __ats_lab__free_44: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_3) ; tmp180 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_4) ; ATS_FREE(arg0) ; /* tmp181 = */ _free_44 (tmp179) ; arg0 = tmp180 ; goto __ats_lab__free_44 ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: break ; } while (0) ; return /* (tmp178) */ ; } /* end of [_free_44] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20567(line=698, offs=13) -- 20755(line=703, offs=2) */ ATSstaticdec() ats_void_type linmap_free_05185_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp177) ; __ats_lab_linmap_free_05185_ats_ptr_type_2cats_ptr_type: /* tmp177 = */ _free_44 (arg0) ; return /* (tmp177) */ ; } /* end of [linmap_free_05185_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 6094(line=268, offs=19) -- 6122(line=268, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp176) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_free: /* tmp176 = */ linmap_free_05185_ats_ptr_type_2cats_ptr_type (arg0) ; return /* (tmp176) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 2008(line=61, offs=17) -- 2036(line=61, offs=45) */ ATSstaticdec() ats_int_type compare_key_key_05167_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp195) ; __ats_lab_compare_key_key_05167_ats_ptr_type: tmp195 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp195) ; } /* end of [compare_key_key_05167_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4545(line=168, offs=7) -- 5110(line=188, offs=6) */ ATSstaticdec() ats_ptr_type search_49 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_int_type, tmp194) ; ATSlocal (ats_bool_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_bool_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; __ats_lab_search_49: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_14_1: tmp190 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp191 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp192 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_3) ; tmp193 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_4) ; tmp194 = compare_key_key_05167_ats_ptr_type (env0, tmp190, env1) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp196 = atspre_lt_int_int (tmp194, 0) ; if (!tmp196) { goto __ats_lab_16_1 ; } tmp197 = ats_ptrget_mac(ats_ptr_type, tmp192) ; arg0 = tmp197 ; goto __ats_lab_search_49 ; // tail call break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp198 = atspre_gt_int_int (tmp194, 0) ; if (!tmp198) { goto __ats_lab_17_1 ; } tmp199 = ats_ptrget_mac(ats_ptr_type, tmp193) ; arg0 = tmp199 ; goto __ats_lab_search_49 ; // tail call break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp189 = tmp191 ; break ; } while (0) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp189 = atspre_null_ptr ; break ; } while (0) ; return (tmp189) ; } /* end of [search_49] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } search_49_closure_type ; ats_ptr_type search_49_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return search_49 (((search_49_closure_type*)cloptr)->closure_env_0, ((search_49_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type search_49_closure_init (search_49_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&search_49_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type search_49_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { search_49_closure_type *p_clo = ATS_MALLOC(sizeof(search_49_closure_type)) ; search_49_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4505(line=167, offs=3) -- 5131(line=189, offs=2) */ ATSstaticdec() ats_ptr_type linmap_search_ref_05174_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp188) ; __ats_lab_linmap_search_ref_05174_ats_ptr_type_2cats_ptr_type: tmp188 = search_49 (arg1, arg2, arg0) ; return (tmp188) ; } /* end of [linmap_search_ref_05174_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4021(line=145, offs=3) -- 4437(line=162, offs=4) */ ATSstaticdec() ats_bool_type linmap_search_05173_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_bool_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; __ats_lab_linmap_search_05173_ats_ptr_type_2cats_ptr_type: tmp187 = linmap_search_ref_05174_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2) ; tmp200 = atspre_pgt (tmp187, atspre_null_ptr) ; if (tmp200) { tmp201 = ats_ptrget_mac(ats_ptr_type, tmp187) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp201 ; tmp186 = ats_true_bool ; } else { tmp186 = ats_false_bool ; } /* end of [if] */ return (tmp186) ; } /* end of [linmap_search_05173_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5224(line=196, offs=3) -- 5488(line=209, offs=4) */ ATSstaticdec() ats_ptr_type linmap_search_opt_05175_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_bool_type, tmp185) ; __ats_lab_linmap_search_opt_05175_ats_ptr_type_2cats_ptr_type: /* ats_ptr_type tmp184 ; */ tmp185 = linmap_search_05173_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, (&tmp184)) ; if (tmp185) { tmp183 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp183, atslab_0, tmp184) ; } else { tmp183 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp183) ; } /* end of [linmap_search_opt_05175_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 6161(line=272, offs=7) -- 6213(line=273, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_search (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_search: tmp182 = linmap_search_opt_05175_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp48) ; return (tmp182) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_search] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3769(line=134, offs=24) -- 3876(line=135, offs=69) */ ATSstaticdec() ats_int_type avltree_height_02279_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp216) ; ATSlocal (ats_int_type, tmp217) ; __ats_lab_avltree_height_02279_ats_ptr_type_2cats_ptr_type: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp217 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp216 = tmp217 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp216 = 0 ; break ; } while (0) ; return (tmp216) ; } /* end of [avltree_height_02279_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 7405(line=276, offs=32) -- 8902(line=325, offs=4) */ ATSstaticdec() ats_ptr_type avltree_rrotate_02332_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_int_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_int_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_bool_type, tmp235) ; ATSlocal (ats_int_type, tmp236) ; ATSlocal (ats_int_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_int_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_int_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_int_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_int_type, tmp249) ; ATSlocal (ats_int_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_int_type, tmp252) ; ATSlocal (ats_int_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; __ats_lab_avltree_rrotate_02332_ats_ptr_type_2cats_ptr_type: tmp227 = ats_ptrget_mac(ats_ptr_type, arg2) ; // if (tmp227 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp228 = &ats_caselptrlab_mac(anairiats_sum_4, tmp227, atslab_0) ; tmp229 = &ats_caselptrlab_mac(anairiats_sum_4, tmp227, atslab_3) ; tmp230 = &ats_caselptrlab_mac(anairiats_sum_4, tmp227, atslab_4) ; tmp232 = ats_ptrget_mac(ats_ptr_type, tmp229) ; tmp231 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp232) ; tmp234 = ats_ptrget_mac(ats_ptr_type, tmp230) ; tmp233 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp234) ; tmp236 = atspre_iadd (tmp231, 0) ; tmp235 = atspre_igte (tmp236, tmp233) ; if (tmp235) { tmp237 = atspre_iadd (tmp233, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp237 ; tmp238 = ats_ptrget_mac(ats_ptr_type, tmp230) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp238 ; tmp240 = atspre_imax (tmp231, tmp237) ; tmp239 = atspre_iadd (1, tmp240) ; ats_ptrget_mac(ats_int_type, tmp228) = tmp239 ; ats_ptrget_mac(ats_ptr_type, tmp230) = arg5 ; tmp226 = tmp227 ; } else { tmp241 = ats_ptrget_mac(ats_ptr_type, tmp230) ; // if (tmp241 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp242 = &ats_caselptrlab_mac(anairiats_sum_4, tmp241, atslab_0) ; tmp243 = &ats_caselptrlab_mac(anairiats_sum_4, tmp241, atslab_3) ; tmp244 = &ats_caselptrlab_mac(anairiats_sum_4, tmp241, atslab_4) ; tmp246 = ats_ptrget_mac(ats_ptr_type, tmp243) ; tmp245 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp246) ; tmp248 = ats_ptrget_mac(ats_ptr_type, tmp244) ; tmp247 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp248) ; tmp250 = atspre_imax (tmp247, arg3) ; tmp249 = atspre_iadd (1, tmp250) ; ats_ptrget_mac(ats_int_type, arg0) = tmp249 ; tmp251 = ats_ptrget_mac(ats_ptr_type, tmp244) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp251 ; tmp253 = atspre_imax (tmp231, tmp245) ; tmp252 = atspre_iadd (1, tmp253) ; ats_ptrget_mac(ats_int_type, tmp228) = tmp252 ; tmp254 = ats_ptrget_mac(ats_ptr_type, tmp243) ; ats_ptrget_mac(ats_ptr_type, tmp230) = tmp254 ; ats_ptrget_mac(ats_int_type, tmp242) = arg1 ; ats_ptrget_mac(ats_ptr_type, tmp243) = tmp227 ; ats_ptrget_mac(ats_ptr_type, tmp244) = arg5 ; tmp226 = tmp241 ; } /* end of [if] */ return (tmp226) ; } /* end of [avltree_rrotate_02332_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5694(line=219, offs=32) -- 7221(line=268, offs=4) */ ATSstaticdec() ats_ptr_type avltree_lrotate_02307_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_int_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_int_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_bool_type, tmp275) ; ATSlocal (ats_int_type, tmp276) ; ATSlocal (ats_int_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_int_type, tmp279) ; ATSlocal (ats_int_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_int_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_int_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_int_type, tmp289) ; ATSlocal (ats_int_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_int_type, tmp292) ; ATSlocal (ats_int_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; __ats_lab_avltree_lrotate_02307_ats_ptr_type_2cats_ptr_type: tmp267 = ats_ptrget_mac(ats_ptr_type, arg4) ; // if (tmp267 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp268 = &ats_caselptrlab_mac(anairiats_sum_4, tmp267, atslab_0) ; tmp269 = &ats_caselptrlab_mac(anairiats_sum_4, tmp267, atslab_3) ; tmp270 = &ats_caselptrlab_mac(anairiats_sum_4, tmp267, atslab_4) ; tmp272 = ats_ptrget_mac(ats_ptr_type, tmp269) ; tmp271 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp272) ; tmp274 = ats_ptrget_mac(ats_ptr_type, tmp270) ; tmp273 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp274) ; tmp276 = atspre_iadd (tmp273, 0) ; tmp275 = atspre_ilte (tmp271, tmp276) ; if (tmp275) { tmp277 = atspre_iadd (tmp271, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp277 ; tmp278 = ats_ptrget_mac(ats_ptr_type, tmp269) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp278 ; tmp280 = atspre_imax (tmp277, tmp273) ; tmp279 = atspre_iadd (1, tmp280) ; ats_ptrget_mac(ats_int_type, tmp268) = tmp279 ; ats_ptrget_mac(ats_ptr_type, tmp269) = arg5 ; tmp266 = tmp267 ; } else { tmp281 = ats_ptrget_mac(ats_ptr_type, tmp269) ; // if (tmp281 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp282 = &ats_caselptrlab_mac(anairiats_sum_4, tmp281, atslab_0) ; tmp283 = &ats_caselptrlab_mac(anairiats_sum_4, tmp281, atslab_3) ; tmp284 = &ats_caselptrlab_mac(anairiats_sum_4, tmp281, atslab_4) ; tmp286 = ats_ptrget_mac(ats_ptr_type, tmp283) ; tmp285 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp286) ; tmp288 = ats_ptrget_mac(ats_ptr_type, tmp284) ; tmp287 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp288) ; tmp290 = atspre_imax (arg1, tmp285) ; tmp289 = atspre_iadd (1, tmp290) ; ats_ptrget_mac(ats_int_type, arg0) = tmp289 ; tmp291 = ats_ptrget_mac(ats_ptr_type, tmp283) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp291 ; tmp293 = atspre_imax (tmp287, tmp273) ; tmp292 = atspre_iadd (1, tmp293) ; ats_ptrget_mac(ats_int_type, tmp268) = tmp292 ; tmp294 = ats_ptrget_mac(ats_ptr_type, tmp284) ; ats_ptrget_mac(ats_ptr_type, tmp269) = tmp294 ; ats_ptrget_mac(ats_int_type, tmp282) = arg3 ; ats_ptrget_mac(ats_ptr_type, tmp283) = arg5 ; ats_ptrget_mac(ats_ptr_type, tmp284) = tmp267 ; tmp266 = tmp281 ; } /* end of [if] */ return (tmp266) ; } /* end of [avltree_lrotate_02307_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 9023(line=333, offs=5) -- 11023(line=394, offs=4) */ ATSstaticdec() ats_bool_type insert_53 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_int_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_bool_type, tmp213) ; ATSlocal (ats_bool_type, tmp214) ; ATSlocal (ats_int_type, tmp215) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_int_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_bool_type, tmp221) ; ATSlocal (ats_int_type, tmp222) ; ATSlocal (ats_int_type, tmp223) ; ATSlocal (ats_int_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_bool_type, tmp255) ; ATSlocal (ats_bool_type, tmp256) ; ATSlocal (ats_int_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_int_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_bool_type, tmp261) ; ATSlocal (ats_int_type, tmp262) ; ATSlocal (ats_int_type, tmp263) ; ATSlocal (ats_int_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; __ats_lab_insert_53: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_19_1: tmp206 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp207 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp208 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp209 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp210 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp212 = ats_ptrget_mac(ats_ptr_type, tmp207) ; tmp211 = compare_key_key_05167_ats_ptr_type (env0, tmp212, env1) ; tmp213 = atspre_lt_int_int (tmp211, 0) ; if (tmp213) { tmp214 = insert_53 (env0, env1, tmp209, arg1, arg2) ; tmp218 = ats_ptrget_mac(ats_ptr_type, tmp209) ; tmp215 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp218) ; tmp220 = ats_ptrget_mac(ats_ptr_type, tmp210) ; tmp219 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp220) ; tmp222 = atspre_isub (tmp215, tmp219) ; tmp221 = atspre_ilte (tmp222, 1) ; if (tmp221) { tmp224 = atspre_imax (tmp215, tmp219) ; tmp223 = atspre_iadd (1, tmp224) ; ats_ptrget_mac(ats_int_type, tmp206) = tmp223 ; tmp205 = tmp214 ; } else { tmp225 = avltree_rrotate_02332_ats_ptr_type_2cats_ptr_type (tmp206, tmp215, tmp209, tmp219, tmp210, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp225 ; tmp205 = tmp214 ; } /* end of [if] */ } else { tmp255 = atspre_gt_int_int (tmp211, 0) ; if (tmp255) { tmp256 = insert_53 (env0, env1, tmp210, arg1, arg2) ; tmp258 = ats_ptrget_mac(ats_ptr_type, tmp209) ; tmp257 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp258) ; tmp260 = ats_ptrget_mac(ats_ptr_type, tmp210) ; tmp259 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp260) ; tmp262 = atspre_isub (tmp259, tmp257) ; tmp261 = atspre_ilte (tmp262, 1) ; if (tmp261) { tmp264 = atspre_imax (tmp257, tmp259) ; tmp263 = atspre_iadd (1, tmp264) ; ats_ptrget_mac(ats_int_type, tmp206) = tmp263 ; tmp205 = tmp256 ; } else { tmp265 = avltree_lrotate_02307_ats_ptr_type_2cats_ptr_type (tmp206, tmp257, tmp209, tmp259, tmp210, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp265 ; tmp205 = tmp256 ; } /* end of [if] */ } else { tmp295 = ats_ptrget_mac(ats_ptr_type, tmp208) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp295 ; ats_ptrget_mac(ats_ptr_type, tmp208) = arg1 ; tmp205 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp297 = (ats_sum_ptr_type)0 ; tmp298 = (ats_sum_ptr_type)0 ; tmp296 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp296, atslab_0, 1) ; ats_selptrset_mac(anairiats_sum_4, tmp296, atslab_1, env0) ; ats_selptrset_mac(anairiats_sum_4, tmp296, atslab_2, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp296, atslab_3, tmp297) ; ats_selptrset_mac(anairiats_sum_4, tmp296, atslab_4, tmp298) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp296 ; tmp205 = ats_false_bool ; break ; } while (0) ; return (tmp205) ; } /* end of [insert_53] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } insert_53_closure_type ; ats_bool_type insert_53_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { return insert_53 (((insert_53_closure_type*)cloptr)->closure_env_0, ((insert_53_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; } /* end of function */ ATSinline() ats_void_type insert_53_closure_init (insert_53_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&insert_53_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type insert_53_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { insert_53_closure_type *p_clo = ATS_MALLOC(sizeof(insert_53_closure_type)) ; insert_53_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 8988(line=331, offs=3) -- 11078(line=400, offs=4) */ ATSstaticdec() ats_bool_type linmap_insert_05176_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_bool_type, tmp204) ; __ats_lab_linmap_insert_05176_ats_ptr_type_2cats_ptr_type: tmp204 = insert_53 (arg1, arg3, arg0, arg2, arg4) ; return (tmp204) ; } /* end of [linmap_insert_05176_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 6283(line=278, offs=7) -- 6429(line=284, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_insert: /* ats_ptr_type tmp203 ; */ tmp202 = linmap_insert_05176_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, statmp48, (&tmp203)) ; return (tmp202) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_insert] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 11578(line=417, offs=35) -- 12629(line=451, offs=4) */ ATSstaticdec() ats_ptr_type avltree_takeout_min_02383_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_int_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_int_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_bool_type, tmp344) ; ATSlocal (ats_int_type, tmp345) ; ATSlocal (ats_int_type, tmp346) ; ATSlocal (ats_int_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; __ats_lab_avltree_takeout_min_02383_ats_ptr_type_2cats_ptr_type: // if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp335 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp336 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp337 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp338 = ats_ptrget_mac(ats_ptr_type, tmp336) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (tmp338 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp339 = avltree_takeout_min_02383_ats_ptr_type_2cats_ptr_type (tmp336) ; tmp341 = ats_ptrget_mac(ats_ptr_type, tmp336) ; tmp340 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp341) ; tmp343 = ats_ptrget_mac(ats_ptr_type, tmp337) ; tmp342 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp343) ; tmp345 = atspre_isub (tmp342, tmp340) ; tmp344 = atspre_ilte (tmp345, 1) ; if (tmp344) { tmp347 = atspre_imax (tmp340, tmp342) ; tmp346 = atspre_iadd (1, tmp347) ; ats_ptrget_mac(ats_int_type, tmp335) = tmp346 ; tmp334 = tmp339 ; } else { tmp348 = avltree_lrotate_02307_ats_ptr_type_2cats_ptr_type (tmp335, tmp340, tmp336, tmp342, tmp337, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp348 ; tmp334 = tmp339 ; } /* end of [if] */ break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (tmp338 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp349 = ats_ptrget_mac(ats_ptr_type, tmp337) ; tmp350 = ats_ptrget_mac(ats_ptr_type, arg0) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp349 ; tmp334 = ats_castfn_mac(ats_ptr_type, tmp350) ; break ; } while (0) ; return (tmp334) ; } /* end of [avltree_takeout_min_02383_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 13012(line=467, offs=7) -- 16649(line=558, offs=6) */ ATSstaticdec() ats_bool_type takeout_60 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_int_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_bool_type, tmp310) ; ATSlocal (ats_bool_type, tmp311) ; ATSlocal (ats_int_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_int_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_bool_type, tmp316) ; ATSlocal (ats_int_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_bool_type, tmp319) ; ATSlocal (ats_bool_type, tmp320) ; ATSlocal (ats_int_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_int_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_bool_type, tmp325) ; ATSlocal (ats_int_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_bool_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_int_type, tmp354) ; ATSlocal (ats_int_type, tmp355) ; ATSlocal (ats_bool_type, tmp356) ; ATSlocal (ats_int_type, tmp357) ; ATSlocal (ats_int_type, tmp358) ; ATSlocal (ats_int_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; __ats_lab_takeout_60: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_23_1: tmp303 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp304 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp305 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ; tmp306 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ; tmp307 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ; tmp309 = ats_ptrget_mac(ats_ptr_type, tmp304) ; tmp308 = compare_key_key_05167_ats_ptr_type (env0, tmp309, env1) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp310 = atspre_lt_int_int (tmp308, 0) ; if (!tmp310) { goto __ats_lab_25_1 ; } tmp311 = takeout_60 (env0, env1, tmp306, arg1) ; tmp313 = ats_ptrget_mac(ats_ptr_type, tmp306) ; tmp312 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp313) ; tmp315 = ats_ptrget_mac(ats_ptr_type, tmp307) ; tmp314 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp315) ; tmp317 = atspre_isub (tmp314, tmp312) ; tmp316 = atspre_ilte (tmp317, 1) ; if (tmp316) { tmp302 = tmp311 ; } else { tmp318 = avltree_lrotate_02307_ats_ptr_type_2cats_ptr_type (tmp303, tmp312, tmp306, tmp314, tmp307, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp318 ; tmp302 = tmp311 ; } /* end of [if] */ break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp319 = atspre_gt_int_int (tmp308, 0) ; if (!tmp319) { goto __ats_lab_26_1 ; } tmp320 = takeout_60 (env0, env1, tmp307, arg1) ; tmp322 = ats_ptrget_mac(ats_ptr_type, tmp306) ; tmp321 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp322) ; tmp324 = ats_ptrget_mac(ats_ptr_type, tmp307) ; tmp323 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp324) ; tmp326 = atspre_isub (tmp321, tmp323) ; tmp325 = atspre_ilte (tmp326, 1) ; if (tmp325) { tmp302 = tmp320 ; } else { tmp327 = avltree_rrotate_02332_ats_ptr_type_2cats_ptr_type (tmp303, tmp321, tmp306, tmp323, tmp307, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp327 ; tmp302 = tmp320 ; } /* end of [if] */ break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp329 = atspre_pgt (arg1, atspre_null_ptr) ; if (tmp329) { tmp330 = ats_ptrget_mac(ats_ptr_type, tmp305) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp330 ; } else { /* empty */ } /* end of [if] */ /* ats_ptr_type tmp331 ; */ tmp331 = ats_ptrget_mac(ats_ptr_type, tmp306) ; /* ats_ptr_type tmp332 ; */ tmp332 = ats_ptrget_mac(ats_ptr_type, tmp307) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (tmp332 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_27_1: tmp333 = avltree_takeout_min_02383_ats_ptr_type_2cats_ptr_type ((&tmp332)) ; if (tmp333 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 15639(line=535, offs=21) -- 15683(line=535, offs=65)") ; } tmp351 = &ats_caselptrlab_mac(anairiats_sum_4, tmp333, atslab_0) ; tmp352 = &ats_caselptrlab_mac(anairiats_sum_4, tmp333, atslab_3) ; tmp353 = &ats_caselptrlab_mac(anairiats_sum_4, tmp333, atslab_4) ; tmp354 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp331) ; tmp355 = avltree_height_02279_ats_ptr_type_2cats_ptr_type (tmp332) ; ats_ptrget_mac(ats_ptr_type, tmp352) = tmp331 ; ats_ptrget_mac(ats_ptr_type, tmp353) = tmp332 ; tmp357 = atspre_isub (tmp354, tmp355) ; tmp356 = atspre_ilte (tmp357, 1) ; if (tmp356) { tmp359 = atspre_imax (tmp354, tmp355) ; tmp358 = atspre_iadd (1, tmp359) ; ats_ptrget_mac(ats_int_type, tmp351) = tmp358 ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp333 ; tmp302 = ats_true_bool ; } else { tmp360 = avltree_rrotate_02332_ats_ptr_type_2cats_ptr_type (tmp351, tmp354, tmp352, tmp355, tmp353, tmp333) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp360 ; tmp302 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (tmp332 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: ats_ptrget_mac(ats_ptr_type, arg0) = tmp331 ; tmp302 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp302 = ats_false_bool ; break ; } while (0) ; return (tmp302) ; } /* end of [takeout_60] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } takeout_60_closure_type ; ats_bool_type takeout_60_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) { return takeout_60 (((takeout_60_closure_type*)cloptr)->closure_env_0, ((takeout_60_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type takeout_60_closure_init (takeout_60_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&takeout_60_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type takeout_60_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { takeout_60_closure_type *p_clo = ATS_MALLOC(sizeof(takeout_60_closure_type)) ; takeout_60_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 12957(line=466, offs=3) -- 16671(line=559, offs=2) */ ATSstaticdec() ats_bool_type linmap_takeout_ptr_05191_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp301) ; __ats_lab_linmap_takeout_ptr_05191_ats_ptr_type_2cats_ptr_type: tmp301 = takeout_60 (arg1, arg2, arg0, arg3) ; return (tmp301) ; } /* end of [linmap_takeout_ptr_05191_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17132(line=576, offs=15) -- 17193(line=576, offs=76) */ ATSstaticdec() ats_bool_type linmap_remove_05178_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp300) ; __ats_lab_linmap_remove_05178_ats_ptr_type_2cats_ptr_type: tmp300 = linmap_takeout_ptr_05191_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, atspre_null_ptr) ; return (tmp300) ; } /* end of [linmap_remove_05178_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 6499(line=288, offs=7) -- 6547(line=289, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_remove (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp299) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_remove: tmp299 = linmap_remove_05178_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp48) ; return (tmp299) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmap_vt_remove] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_tmpvar.dats: 6654(line=298, offs=3) -- 6901(line=309, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_set_tyclo (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_set_tyclo: tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyclo (arg1) ; /* tmp361 = */ patsopt_tmpvar_set_type (arg0, tmp362) ; return /* (tmp361) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_set_tyclo] */ /* static load function */ // 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_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_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_tmpvar_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp48, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp48 = __ats_fun_21_closure_make () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ ats_void_type patsopt_tmpvar_set_type ( ats_ptr_type tmp, ats_ptr_type hse ) { ((tmpvar_t)tmp)->atslab_tmpvar_type = hse ; return ; } // end of [patsopt_tmpvar_set_type] ats_void_type patsopt_tmpvar_set_ref ( ats_ptr_type tmp, ats_int_type ref ) { ((tmpvar_t)tmp)->atslab_tmpvar_ref = ref ; return ; } // end of [patsopt_tmpvar_set_ref] ats_void_type patsopt_tmpvar_set_ret ( ats_ptr_type tmp, ats_int_type ret ) { ((tmpvar_t)tmp)->atslab_tmpvar_ret = ret ; return ; } // end of [patsopt_tmpvar_set_ret] ats_void_type patsopt_tmpvar_set_topknd ( ats_ptr_type tmp, ats_int_type knd ) { ((tmpvar_t)tmp)->atslab_tmpvar_topknd = knd ; return ; } // end of [patsopt_tmpvar_set_topknd] ats_void_type patsopt_tmpvar_set_origin ( ats_ptr_type tmp, ats_ptr_type opt ) { ((tmpvar_t)tmp)->atslab_tmpvar_origin = opt ; return ; } // end of [patsopt_tmpvar_set_origin] ats_void_type patsopt_tmpvar_set_suffix ( ats_ptr_type tmp, ats_int_type sfx ) { ((tmpvar_t)tmp)->atslab_tmpvar_suffix = sfx ; return ; } // end of [patsopt_tmpvar_set_suffix] /* ****** ****** */ /* end of [pats_ccomp_tmpvar_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_e1xpval_dats.c0000644000175000017500000047652013431250607022123 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_double_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_7 ; typedef struct { anairiats_rec_7 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDif_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifdef_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifndef_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALchar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALstring_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALfloat_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPintrep_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPchar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfloat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPv1al_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPnone_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPundef_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPapp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfun_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPif_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPeval_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPlist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPerr_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_defined_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_valize_undefined_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_maxlevel_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_opr_arglst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPide_unbound_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPundef_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPlist_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPapp_fun_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_fun_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_opr_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPappid_arity_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPfun_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__VE_E1XPerr_13) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_double_type, atspre_double_of_string) (ats_ptr_type) ; ATSextern_fun(ats_double_type, atspre_neg_double) (ats_double_type) ; ATSextern_fun(ats_double_type, atspre_add_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_double_type, atspre_sub_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_double_type, atspre_mul_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_double_type, atspre_div_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_bool_type, atspre_lt_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_bool_type, atspre_lte_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_bool_type, atspre_gt_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_bool_type, atspre_gte_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_bool_type, atspre_neq_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_int_type, atspre_neg_int) (ats_int_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_int_type, atspre_div_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_int_type, atspre_asl_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_asr_int_int1) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_int_of_llint) (ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_gt_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_gte_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_is_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerrf_exn) (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_int_type, patsopt_debug_flag_get) () ; ATSextern_fun(ats_llint_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string) (ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_NEG) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MUL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DIV) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTEQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTEQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQEQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTGT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANGEQ) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LAND) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LOR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DEFINED) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDEFINED) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_v1al) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_err) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_the_valerrlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_valize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_defined) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_undefined) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfree) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_v1alist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_e1xplst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_main) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_delta) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_normalize) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize_main) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__sasp__lenv_vtype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_error1_loc_0 (ats_ptr_type arg0) ; static ats_void_type loop_11 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_anairiats_rec_7 (ats_ptr_type arg0) ; static ats_ptr_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type __ats_fun_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type e1xp_valize_int_21 (ats_ptr_type arg0) ; static ats_ptr_type e1xplevenv_valize_ide_22 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type e1xplstlevenv_valize_23 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type e1xplevenv_valize_list_24 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_bool_type loop_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_exists_funenv_01325_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type list_exists_fun_01326_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_30 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type e1xplevenv_valize_appid_25 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type e1xplevenv_valize_neg_34 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type e1xplevenv_valize_add_35 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_sub_36 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_mul_37 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_div_38 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_lt_39 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_lteq_40 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_gt_41 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_gteq_42 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_eq_43 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_neq_44 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_land_45 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_lor_46 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_asl_47 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_valize_asr_48 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type e1xplevenv_normalize_ide_52 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type e1xplstlevenv_normalize_53 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 2722(line=104, offs=1) -- 2814(line=107, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_0 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; // ATSlocal_void (tmp1) ; __ats_lab_prerr_error1_loc_0: /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp0 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp0) */ ; } /* end of [prerr_error1_loc_0] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 2888(line=112, offs=13) -- 2942(line=114, offs=47) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_err (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_err: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp2 = ats_false_bool ; break ; } while (0) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_err] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 2996(line=118, offs=14) -- 3208(line=128, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_char_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_double_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp3 = atspre_neq_int_int (tmp4, 0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp3 = atspre_neq_char_char (tmp5, '\000') ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp3 = atspre_string_isnot_empty (tmp6) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp3 = atspre_neq_double_double (tmp7, 0.0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (((ats_sum_ptr_type)arg0)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp3 = ats_false_bool ; break ; } while (0) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 3259(line=130, offs=25) -- 3280(line=130, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_false (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_bool_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_false: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true (arg0) ; tmp8 = atspre_neg_bool (tmp9) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_false] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 3511(line=144, offs=3) -- 3807(line=155, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize: tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_valize (0, arg0) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp11)->tag != 4) { goto __ats_lab_8_0 ; } __ats_lab_7_1: /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__fprint_the_valerrlst (stderr) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: break ; } while (0) ; tmp10 = tmp11 ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 3861(line=158, offs=16) -- 4025(line=162, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize_if (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize_if: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize (arg1) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_defined (arg1) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_undefined (arg1) ; break ; } while (0) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize_if] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 4107(line=169, offs=3) -- 4507(line=180, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_defined (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_defined: tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp16)->tag != 0) { goto __ats_lab_17_0 ; } __ats_lab_12_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_3, tmp16, atslab_0) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (tmp17) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp19 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_13_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_6, tmp19, atslab_0) ; ATS_FREE(tmp19) ; tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp20), atslab_e1xp_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp21)->tag != 8) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp18 = 0 ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp18 = 1 ; break ; } while (0) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (tmp19 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp18 = 0 ; break ; } while (0) ; tmp15 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp15)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp15, atslab_0, tmp18) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp23 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp23)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp23, atslab_0, arg0) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp23) ; tmp15 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_defined] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 4589(line=185, offs=3) -- 4991(line=196, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_undefined (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_undefined: tmp25 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_e1xp_node) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp25)->tag != 0) { goto __ats_lab_23_0 ; } __ats_lab_18_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_3, tmp25, atslab_0) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (tmp26) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp28 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_19_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_6, tmp28, atslab_0) ; ATS_FREE(tmp28) ; tmp30 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp29), atslab_e1xp_node) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp30)->tag != 8) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp27 = 1 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp27 = 0 ; break ; } while (0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp28 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp27 = 1 ; break ; } while (0) ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp24)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp24, atslab_0, tmp27) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp32 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp32)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp32, atslab_0, arg0) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp32) ; tmp24 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_undefined] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 5681(line=227, offs=14) -- 5700(line=227, offs=33) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_nil: tmp33 = (ats_sum_ptr_type)0 ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_11 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab_loop_11: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp37 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: break ; } while (0) ; return /* (tmp36) */ ; } /* end of [loop_11] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_anairiats_rec_7 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp35) ; __ats_lab_list_vt_free_01499_anairiats_rec_7: /* tmp35 = */ loop_11 (arg0) ; return /* (tmp35) */ ; } /* end of [list_vt_free_01499_anairiats_rec_7] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 5721(line=229, offs=20) -- 5746(line=229, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfree (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfree: /* tmp34 = */ list_vt_free_01499_anairiats_rec_7 (arg0) ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfree] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 9577(line=358, offs=7) -- 9950(line=371, offs=27) */ ATSstaticdec() ats_ptr_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (anairiats_rec_7, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab_loop_15: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp45 = ats_select_mac(tmp42, atslab_0) ; tmp44 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg1) (arg2, tmp45, arg3) ; if (tmp44) { tmp46 = ats_select_mac(tmp42, atslab_1) ; tmp41 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp41, atslab_0, tmp46) ; } else { arg0 = tmp43 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_15 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp41 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp41) ; } /* end of [loop_15] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 9541(line=357, offs=21) -- 9988(line=374, offs=4) */ ATSstaticdec() ats_ptr_type list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; __ats_lab_list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type: tmp40 = loop_15 (arg0, arg1, arg2, arg3) ; return (tmp40) ; } /* end of [list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 10063(line=378, offs=12) -- 10354(line=385, offs=2) */ ATSstaticdec() ats_ptr_type list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; __ats_lab_list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type: tmp39 = list_assoc_funenv_01315_ats_ptr_type_2cats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), arg2, atspre_null_ptr) ; return (tmp39) ; } /* end of [list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 5901(line=236, offs=34) -- 5928(line=236, offs=61) */ ATSstaticdec() ats_bool_type __ats_fun_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp47) ; __ats_lab___ats_fun_16: tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg0, arg1) ; return (tmp47) ; } /* end of [__ats_fun_16] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 5772(line=232, offs=14) -- 5936(line=237, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfind: tmp38 = list_assoc_fun_01316_ats_ptr_type_2cats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), &__ats_fun_16, arg1) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfind] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 6008(line=242, offs=7) -- 6399(line=254, offs=36) */ ATSstaticdec() ats_ptr_type aux_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (anairiats_rec_7, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (anairiats_rec_7, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab_aux_18: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_28_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp51 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp53 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp54.atslab_0 = tmp50 ; tmp54.atslab_1 = tmp52 ; tmp55 = aux_18 (tmp51, tmp53) ; tmp49 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp49, atslab_0, tmp54) ; ats_selptrset_mac(anairiats_sum_8, tmp49, atslab_1, tmp55) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp56 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp56)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp56, atslab_0, 0) ; tmp57.atslab_0 = tmp50 ; tmp57.atslab_1 = tmp56 ; tmp58 = aux_18 (tmp51, arg1) ; tmp49 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp49, atslab_0, tmp57) ; ats_selptrset_mac(anairiats_sum_8, tmp49, atslab_1, tmp58) ; break ; } while (0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp49 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp49) ; } /* end of [aux_18] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 5987(line=241, offs=3) -- 6421(line=257, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_v1alist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_v1alist: tmp48 = aux_18 (arg0, arg1) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_v1alist] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 6507(line=262, offs=7) -- 6944(line=276, offs=36) */ ATSstaticdec() ats_ptr_type aux_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (anairiats_rec_7, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (anairiats_rec_7, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab_aux_20: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_32_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp62 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; tmp64 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ; tmp65.atslab_0 = tmp61 ; tmp65.atslab_1 = tmp63 ; tmp66 = aux_20 (arg0, tmp62, tmp64) ; tmp60 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp60, atslab_0, tmp65) ; ats_selptrset_mac(anairiats_sum_8, tmp60, atslab_1, tmp66) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none (arg0) ; tmp68.atslab_0 = tmp61 ; tmp68.atslab_1 = tmp67 ; tmp69 = aux_20 (arg0, tmp62, arg2) ; tmp60 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp60, atslab_0, tmp68) ; ats_selptrset_mac(anairiats_sum_8, tmp60, atslab_1, tmp69) ; break ; } while (0) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp60 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp60) ; } /* end of [aux_20] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 6480(line=261, offs=3) -- 6972(line=279, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_e1xplst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_e1xplst: tmp59 = aux_20 (arg0, arg1, arg2) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_e1xplst] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 7050(line=285, offs=4) -- 7154(line=288, offs=4) */ ATSstaticdec() ats_int_type e1xp_valize_int_21 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp70) ; ATSlocal (ats_llint_type, tmp71) ; __ats_lab_e1xp_valize_int_21: tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string (arg0) ; tmp70 = atspre_int_of_llint (tmp71) ; return (tmp70) ; } /* end of [e1xp_valize_int_21] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 7208(line=292, offs=4) -- 7605(line=307, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_ide_22 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab_e1xplevenv_valize_ide_22: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfind (arg1, arg3) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (tmp73 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_6, tmp73, atslab_0) ; ATS_FREE(tmp73) ; tmp72 = tmp74 ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (tmp73 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (arg3) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (tmp75 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_6, tmp75, atslab_0) ; ATS_FREE(tmp75) ; tmp77 = atspre_add_int_int (arg0, 1) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_valize (tmp77, tmp76) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (tmp75 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp79 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp79)->tag = 5 ; ats_selptrset_mac(anairiats_sum_3, tmp79, atslab_0, arg2) ; /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp79) ; tmp72 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; } while (0) ; return (tmp72) ; } /* end of [e1xplevenv_valize_ide_22] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 7831(line=319, offs=1) -- 8127(line=330, offs=34) */ ATSstaticdec() ats_ptr_type e1xplstlevenv_valize_23 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab_e1xplstlevenv_valize_23: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; tmp82 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, tmp81) ; tmp84 = e1xplstlevenv_valize_23 (arg0, arg1, tmp82) ; tmp80 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp80, atslab_0, tmp83) ; ats_selptrset_mac(anairiats_sum_9, tmp80, atslab_1, tmp84) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp80 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp80) ; } /* end of [e1xplstlevenv_valize_23] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 8187(line=336, offs=1) -- 8563(line=347, offs=31) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_list_24 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; // ATSlocal_void (tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab_e1xplevenv_valize_list_24: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_42_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp87 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (tmp87 != (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, tmp86) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (tmp87 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: tmp89 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp89)->tag = 7 ; ats_selptrset_mac(anairiats_sum_3, tmp89, atslab_0, arg2) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp89) ; tmp85 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: tmp85 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp85)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp85, atslab_0, 0) ; break ; } while (0) ; return (tmp85) ; } /* end of [e1xplevenv_valize_list_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 13947(line=514, offs=7) -- 14180(line=521, offs=22) */ ATSstaticdec() ats_bool_type loop_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_bool_type, tmp106) ; __ats_lab_loop_28: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp105 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp106 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp104, arg2) ; if (tmp106) { tmp103 = ats_true_bool ; } else { arg0 = tmp105 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_28 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp103 = ats_false_bool ; break ; } while (0) ; return (tmp103) ; } /* end of [loop_28] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 13917(line=513, offs=20) -- 14231(line=525, offs=4) */ ATSstaticdec() ats_bool_type list_exists_funenv_01325_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp102) ; __ats_lab_list_exists_funenv_01325_ats_ptr_type: tmp102 = loop_28 (arg0, arg1, arg2) ; return (tmp102) ; } /* end of [list_exists_funenv_01325_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 14303(line=529, offs=11) -- 14565(line=538, offs=4) */ ATSstaticdec() ats_bool_type list_exists_fun_01326_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp101) ; __ats_lab_list_exists_fun_01326_ats_ptr_type: tmp101 = list_exists_funenv_01325_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp101) ; } /* end of [list_exists_fun_01326_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_30 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab_loop_30: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp110 ; goto __ats_lab_loop_30 ; // tail call break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: break ; } while (0) ; return /* (tmp109) */ ; } /* end of [loop_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp108) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp108 = */ loop_30 (arg0) ; return /* (tmp108) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 8788(line=362, offs=1) -- 9885(line=402, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_appid_25 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_int_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_bool_type, tmp100) ; // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab_e1xplevenv_valize_appid_25: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (arg3) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (tmp91 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_46_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_6, tmp91, atslab_0) ; ATS_FREE(tmp91) ; tmp93 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp92), atslab_e1xp_node) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp93)->tag != 0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_3, tmp93, atslab_0) ; tmp95 = atspre_add_int_int (arg0, 1) ; arg0 = tmp95 ; arg1 = arg1 ; arg2 = tmp92 ; arg3 = tmp94 ; arg4 = arg4 ; goto __ats_lab_e1xplevenv_valize_appid_25 ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp93)->tag != 10) { goto __ats_lab_53_0 ; } __ats_lab_48_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_10, tmp93, atslab_0) ; tmp97 = ats_caselptrlab_mac(anairiats_sum_10, tmp93, atslab_1) ; tmp98 = e1xplstlevenv_valize_23 (arg0, arg1, arg4) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_v1alist (tmp96, ats_castfn_mac(ats_ptr_type, tmp98)) ; tmp100 = list_exists_fun_01326_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp98), &_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_err) ; /* tmp107 = */ list_vt_free_01499_ats_ptr_type (tmp98) ; if (tmp100) { tmp111 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; } else { tmp112 = atspre_add_int_int (arg0, 1) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (tmp112, tmp99, tmp97) ; } /* end of [if] */ /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfree (tmp99) ; tmp90 = tmp111 ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: __ats_lab_53_1: tmp115 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp115)->tag = 9 ; ats_selptrset_mac(anairiats_sum_10, tmp115, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp115, atslab_1, arg3) ; /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp115) ; tmp90 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (tmp91 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_delta (arg0, arg1, arg2, arg3, arg4) ; break ; } while (0) ; return (tmp90) ; } /* end of [e1xplevenv_valize_appid_25] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 9971(line=408, offs=3) -- 10095(line=412, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_valize (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; // ATSlocal_void (tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_valize: tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_nil () ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, tmp117, arg1) ; /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfree (tmp117) ; tmp116 = tmp118 ; return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_valize] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 10175(line=418, offs=3) -- 10666(line=444, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_bool_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize: tmp121 = atspre_lte_int_int (arg0, 99) ; if (tmp121) { tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_main (arg0, arg1, arg2) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp122)->tag != 4) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp124 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp124)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp124, atslab_0, arg2) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp124) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: break ; } while (0) ; tmp120 = tmp122 ; } else { tmp126 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp126)->tag = 3 ; ats_selptrset_mac(anairiats_sum_11, tmp126, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_11, tmp126, atslab_1, arg2) ; /* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp126) ; tmp120 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; } /* end of [if] */ return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 10733(line=448, offs=3) -- 12462(line=520, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_main (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_int_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_int_type, tmp133) ; ATSlocal (ats_char_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_double_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; // ATSlocal_void (tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; // ATSlocal_void (tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_bool_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; // ATSlocal_void (tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_main: tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg2), atslab_e1xp_loc) ; tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg2), atslab_e1xp_node) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp129)->tag != 0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_3, tmp129, atslab_0) ; tmp127 = e1xplevenv_valize_ide_22 (arg0, arg1, arg2, tmp130) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp129)->tag != 1) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_1, tmp129, atslab_0) ; tmp127 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp127)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp127, atslab_0, tmp131) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp129)->tag != 2) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_3, tmp129, atslab_0) ; tmp133 = e1xp_valize_int_21 (tmp132) ; tmp127 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp127)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp127, atslab_0, tmp133) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp129)->tag != 3) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_2, tmp129, atslab_0) ; tmp127 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp127)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp127, atslab_0, tmp134) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp129)->tag != 5) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_3, tmp129, atslab_0) ; tmp127 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp127)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp127, atslab_0, tmp135) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp129)->tag != 4) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_3, tmp129, atslab_0) ; tmp137 = atspre_double_of_string (tmp136) ; tmp127 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp127)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp127, atslab_0, tmp137) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp129)->tag != 6) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_3, tmp129, atslab_0) ; tmp127 = tmp138 ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp129)->tag != 7) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp127 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp127)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp127, atslab_0, 0) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp129)->tag != 8) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp140 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp140)->tag = 6 ; ats_selptrset_mac(anairiats_sum_3, tmp140, atslab_0, arg2) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp140) ; tmp127 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp129)->tag != 9) { goto __ats_lab_69_0 ; } __ats_lab_66_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_12, tmp129, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_12, tmp129, atslab_2) ; tmp143 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp141), atslab_e1xp_node) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp143)->tag != 0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_3, tmp143, atslab_0) ; tmp127 = e1xplevenv_valize_appid_25 (arg0, arg1, arg2, tmp144, tmp142) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: __ats_lab_68_1: tmp146 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp146)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp146, atslab_0, arg2) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp146) ; tmp127 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp129)->tag != 11) { goto __ats_lab_72_0 ; } __ats_lab_69_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_12, tmp129, atslab_0) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_12, tmp129, atslab_1) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_12, tmp129, atslab_2) ; tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, tmp147) ; do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp150)->tag != 4) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp127 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: __ats_lab_71_1: tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true (tmp150) ; if (tmp152) { tmp151 = tmp148 ; } else { tmp151 = tmp149 ; } /* end of [if] */ tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, tmp151) ; break ; } while (0) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp129)->tag != 13) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_3, tmp129, atslab_0) ; tmp127 = e1xplevenv_valize_list_24 (arg0, arg1, arg2, tmp153) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp129)->tag != 12) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_3, tmp129, atslab_0) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, tmp154) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp129)->tag != 10) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp156 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp156)->tag = 12 ; ats_selptrset_mac(anairiats_sum_3, tmp156, atslab_0, arg2) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp156) ; tmp127 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (((ats_sum_ptr_type)tmp129)->tag != 14) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: tmp158 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp158)->tag = 13 ; ats_selptrset_mac(anairiats_sum_3, tmp158, atslab_0, arg2) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp158) ; tmp127 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_main] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 12523(line=525, offs=1) -- 12860(line=538, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_neg_34 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_int_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; ATSlocal (ats_double_type, tmp163) ; ATSlocal (ats_double_type, tmp164) ; // ATSlocal_void (tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; __ats_lab_e1xplevenv_valize_neg_34: tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp160)->tag != 0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp161 = ats_caselptrlab_mac(anairiats_sum_1, tmp160, atslab_0) ; tmp162 = atspre_neg_int (tmp161) ; tmp159 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp159)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp159, atslab_0, tmp162) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp160)->tag != 3) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_4, tmp160, atslab_0) ; tmp164 = atspre_neg_double (tmp163) ; tmp159 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp159)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp159, atslab_0, tmp164) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: __ats_lab_78_1: tmp166 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp166)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp166, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp166, atslab_1, arg3) ; /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp166) ; tmp159 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp159) ; } /* end of [e1xplevenv_valize_neg_34] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 12920(line=543, offs=1) -- 13402(line=558, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_add_35 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_int_type, tmp170) ; ATSlocal (ats_int_type, tmp171) ; ATSlocal (ats_int_type, tmp172) ; ATSlocal (ats_double_type, tmp173) ; ATSlocal (ats_double_type, tmp174) ; ATSlocal (ats_double_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; // ATSlocal_void (tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; __ats_lab_e1xplevenv_valize_add_35: tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp168)->tag != 0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: if (((ats_sum_ptr_type)tmp169)->tag != 0) { goto __ats_lab_82_1 ; } __ats_lab_79_2: tmp170 = ats_caselptrlab_mac(anairiats_sum_1, tmp168, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_1, tmp169, atslab_0) ; tmp172 = atspre_add_int_int (tmp170, tmp171) ; tmp167 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp167)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp167, atslab_0, tmp172) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp168)->tag != 3) { goto __ats_lab_81_0 ; } __ats_lab_80_1: if (((ats_sum_ptr_type)tmp169)->tag != 3) { goto __ats_lab_82_1 ; } __ats_lab_80_2: tmp173 = ats_caselptrlab_mac(anairiats_sum_4, tmp168, atslab_0) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_4, tmp169, atslab_0) ; tmp175 = atspre_add_double_double (tmp173, tmp174) ; tmp167 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp167)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp167, atslab_0, tmp175) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp168)->tag != 2) { goto __ats_lab_82_0 ; } __ats_lab_81_1: if (((ats_sum_ptr_type)tmp169)->tag != 2) { goto __ats_lab_82_1 ; } __ats_lab_81_2: tmp176 = ats_caselptrlab_mac(anairiats_sum_3, tmp168, atslab_0) ; tmp177 = ats_caselptrlab_mac(anairiats_sum_3, tmp169, atslab_0) ; tmp178 = atspre_string_append (tmp176, tmp177) ; tmp167 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp167)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp167, atslab_0, tmp178) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: __ats_lab_82_1: __ats_lab_82_2: tmp180 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp180)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp180, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp180, atslab_1, arg3) ; /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp180) ; tmp167 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp167) ; } /* end of [e1xplevenv_valize_add_35] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 13441(line=561, offs=1) -- 13864(line=575, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_sub_36 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_int_type, tmp184) ; ATSlocal (ats_int_type, tmp185) ; ATSlocal (ats_int_type, tmp186) ; ATSlocal (ats_double_type, tmp187) ; ATSlocal (ats_double_type, tmp188) ; ATSlocal (ats_double_type, tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; __ats_lab_e1xplevenv_valize_sub_36: tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp182)->tag != 0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: if (((ats_sum_ptr_type)tmp183)->tag != 0) { goto __ats_lab_85_1 ; } __ats_lab_83_2: tmp184 = ats_caselptrlab_mac(anairiats_sum_1, tmp182, atslab_0) ; tmp185 = ats_caselptrlab_mac(anairiats_sum_1, tmp183, atslab_0) ; tmp186 = atspre_sub_int_int (tmp184, tmp185) ; tmp181 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp181)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp181, atslab_0, tmp186) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp182)->tag != 3) { goto __ats_lab_85_0 ; } __ats_lab_84_1: if (((ats_sum_ptr_type)tmp183)->tag != 3) { goto __ats_lab_85_1 ; } __ats_lab_84_2: tmp187 = ats_caselptrlab_mac(anairiats_sum_4, tmp182, atslab_0) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_4, tmp183, atslab_0) ; tmp189 = atspre_sub_double_double (tmp187, tmp188) ; tmp181 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp181)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp181, atslab_0, tmp189) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: __ats_lab_85_1: __ats_lab_85_2: tmp191 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp191)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp191, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp191, atslab_1, arg3) ; /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp191) ; tmp181 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp181) ; } /* end of [e1xplevenv_valize_sub_36] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 13903(line=578, offs=1) -- 14326(line=592, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_mul_37 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_int_type, tmp195) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_int_type, tmp197) ; ATSlocal (ats_double_type, tmp198) ; ATSlocal (ats_double_type, tmp199) ; ATSlocal (ats_double_type, tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab_e1xplevenv_valize_mul_37: tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp193)->tag != 0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: if (((ats_sum_ptr_type)tmp194)->tag != 0) { goto __ats_lab_88_1 ; } __ats_lab_86_2: tmp195 = ats_caselptrlab_mac(anairiats_sum_1, tmp193, atslab_0) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_1, tmp194, atslab_0) ; tmp197 = atspre_mul_int_int (tmp195, tmp196) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp192, atslab_0, tmp197) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp193)->tag != 3) { goto __ats_lab_88_0 ; } __ats_lab_87_1: if (((ats_sum_ptr_type)tmp194)->tag != 3) { goto __ats_lab_88_1 ; } __ats_lab_87_2: tmp198 = ats_caselptrlab_mac(anairiats_sum_4, tmp193, atslab_0) ; tmp199 = ats_caselptrlab_mac(anairiats_sum_4, tmp194, atslab_0) ; tmp200 = atspre_mul_double_double (tmp198, tmp199) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp192)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp192, atslab_0, tmp200) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: __ats_lab_88_2: tmp202 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp202)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp202, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp202, atslab_1, arg3) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp202) ; tmp192 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp192) ; } /* end of [e1xplevenv_valize_mul_37] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 14365(line=595, offs=1) -- 14788(line=609, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_div_38 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_int_type, tmp206) ; ATSlocal (ats_int_type, tmp207) ; ATSlocal (ats_int_type, tmp208) ; ATSlocal (ats_double_type, tmp209) ; ATSlocal (ats_double_type, tmp210) ; ATSlocal (ats_double_type, tmp211) ; // ATSlocal_void (tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; __ats_lab_e1xplevenv_valize_div_38: tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp204)->tag != 0) { goto __ats_lab_90_0 ; } __ats_lab_89_1: if (((ats_sum_ptr_type)tmp205)->tag != 0) { goto __ats_lab_91_1 ; } __ats_lab_89_2: tmp206 = ats_caselptrlab_mac(anairiats_sum_1, tmp204, atslab_0) ; tmp207 = ats_caselptrlab_mac(anairiats_sum_1, tmp205, atslab_0) ; tmp208 = atspre_div_int_int (tmp206, tmp207) ; tmp203 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp203)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp203, atslab_0, tmp208) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp204)->tag != 3) { goto __ats_lab_91_0 ; } __ats_lab_90_1: if (((ats_sum_ptr_type)tmp205)->tag != 3) { goto __ats_lab_91_1 ; } __ats_lab_90_2: tmp209 = ats_caselptrlab_mac(anairiats_sum_4, tmp204, atslab_0) ; tmp210 = ats_caselptrlab_mac(anairiats_sum_4, tmp205, atslab_0) ; tmp211 = atspre_div_double_double (tmp209, tmp210) ; tmp203 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp203)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp203, atslab_0, tmp211) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: __ats_lab_91_1: __ats_lab_91_2: tmp213 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp213)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp213, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp213, atslab_1, arg3) ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp213) ; tmp203 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp203) ; } /* end of [e1xplevenv_valize_div_38] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 14848(line=613, offs=4) -- 15411(line=630, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_lt_39 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_double_type, tmp217) ; ATSlocal (ats_double_type, tmp218) ; ATSlocal (ats_bool_type, tmp219) ; ATSlocal (ats_int_type, tmp220) ; ATSlocal (ats_int_type, tmp221) ; ATSlocal (ats_bool_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_bool_type, tmp225) ; // ATSlocal_void (tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; __ats_lab_e1xplevenv_valize_lt_39: tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp215)->tag != 3) { goto __ats_lab_93_0 ; } __ats_lab_92_1: if (((ats_sum_ptr_type)tmp216)->tag != 3) { goto __ats_lab_95_1 ; } __ats_lab_92_2: tmp217 = ats_caselptrlab_mac(anairiats_sum_4, tmp215, atslab_0) ; tmp218 = ats_caselptrlab_mac(anairiats_sum_4, tmp216, atslab_0) ; tmp219 = atspre_lt_double_double (tmp217, tmp218) ; if (tmp219) { tmp214 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp214)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp214, atslab_0, 1) ; } else { tmp214 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp214)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp214, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp215)->tag != 0) { goto __ats_lab_94_0 ; } __ats_lab_93_1: if (((ats_sum_ptr_type)tmp216)->tag != 0) { goto __ats_lab_95_1 ; } __ats_lab_93_2: tmp220 = ats_caselptrlab_mac(anairiats_sum_1, tmp215, atslab_0) ; tmp221 = ats_caselptrlab_mac(anairiats_sum_1, tmp216, atslab_0) ; tmp222 = atspre_lt_int_int (tmp220, tmp221) ; if (tmp222) { tmp214 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp214)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp214, atslab_0, 1) ; } else { tmp214 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp214)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp214, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp215)->tag != 2) { goto __ats_lab_95_0 ; } __ats_lab_94_1: if (((ats_sum_ptr_type)tmp216)->tag != 2) { goto __ats_lab_95_1 ; } __ats_lab_94_2: tmp223 = ats_caselptrlab_mac(anairiats_sum_3, tmp215, atslab_0) ; tmp224 = ats_caselptrlab_mac(anairiats_sum_3, tmp216, atslab_0) ; tmp225 = atspre_lt_string_string (tmp223, tmp224) ; if (tmp225) { tmp214 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp214)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp214, atslab_0, 1) ; } else { tmp214 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp214)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp214, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: __ats_lab_95_1: __ats_lab_95_2: tmp227 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp227)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp227, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp227, atslab_1, arg3) ; /* tmp226 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp227) ; tmp214 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp214) ; } /* end of [e1xplevenv_valize_lt_39] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 15449(line=632, offs=4) -- 16017(line=649, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_lteq_40 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_double_type, tmp231) ; ATSlocal (ats_double_type, tmp232) ; ATSlocal (ats_bool_type, tmp233) ; ATSlocal (ats_int_type, tmp234) ; ATSlocal (ats_int_type, tmp235) ; ATSlocal (ats_bool_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_bool_type, tmp239) ; // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; __ats_lab_e1xplevenv_valize_lteq_40: tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp229)->tag != 3) { goto __ats_lab_97_0 ; } __ats_lab_96_1: if (((ats_sum_ptr_type)tmp230)->tag != 3) { goto __ats_lab_99_1 ; } __ats_lab_96_2: tmp231 = ats_caselptrlab_mac(anairiats_sum_4, tmp229, atslab_0) ; tmp232 = ats_caselptrlab_mac(anairiats_sum_4, tmp230, atslab_0) ; tmp233 = atspre_lte_double_double (tmp231, tmp232) ; if (tmp233) { tmp228 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp228)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp228, atslab_0, 1) ; } else { tmp228 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp228)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp228, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp229)->tag != 0) { goto __ats_lab_98_0 ; } __ats_lab_97_1: if (((ats_sum_ptr_type)tmp230)->tag != 0) { goto __ats_lab_99_1 ; } __ats_lab_97_2: tmp234 = ats_caselptrlab_mac(anairiats_sum_1, tmp229, atslab_0) ; tmp235 = ats_caselptrlab_mac(anairiats_sum_1, tmp230, atslab_0) ; tmp236 = atspre_lte_int_int (tmp234, tmp235) ; if (tmp236) { tmp228 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp228)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp228, atslab_0, 1) ; } else { tmp228 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp228)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp228, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp229)->tag != 2) { goto __ats_lab_99_0 ; } __ats_lab_98_1: if (((ats_sum_ptr_type)tmp230)->tag != 2) { goto __ats_lab_99_1 ; } __ats_lab_98_2: tmp237 = ats_caselptrlab_mac(anairiats_sum_3, tmp229, atslab_0) ; tmp238 = ats_caselptrlab_mac(anairiats_sum_3, tmp230, atslab_0) ; tmp239 = atspre_lte_string_string (tmp237, tmp238) ; if (tmp239) { tmp228 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp228)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp228, atslab_0, 1) ; } else { tmp228 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp228)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp228, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: __ats_lab_99_1: __ats_lab_99_2: tmp241 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp241)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp241, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp241, atslab_1, arg3) ; /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp241) ; tmp228 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp228) ; } /* end of [e1xplevenv_valize_lteq_40] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 16057(line=651, offs=4) -- 16620(line=668, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_gt_41 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_double_type, tmp245) ; ATSlocal (ats_double_type, tmp246) ; ATSlocal (ats_bool_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_int_type, tmp249) ; ATSlocal (ats_bool_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_bool_type, tmp253) ; // ATSlocal_void (tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; __ats_lab_e1xplevenv_valize_gt_41: tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp243)->tag != 3) { goto __ats_lab_101_0 ; } __ats_lab_100_1: if (((ats_sum_ptr_type)tmp244)->tag != 3) { goto __ats_lab_103_1 ; } __ats_lab_100_2: tmp245 = ats_caselptrlab_mac(anairiats_sum_4, tmp243, atslab_0) ; tmp246 = ats_caselptrlab_mac(anairiats_sum_4, tmp244, atslab_0) ; tmp247 = atspre_gt_double_double (tmp245, tmp246) ; if (tmp247) { tmp242 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp242)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp242, atslab_0, 1) ; } else { tmp242 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp242)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp242, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp243)->tag != 0) { goto __ats_lab_102_0 ; } __ats_lab_101_1: if (((ats_sum_ptr_type)tmp244)->tag != 0) { goto __ats_lab_103_1 ; } __ats_lab_101_2: tmp248 = ats_caselptrlab_mac(anairiats_sum_1, tmp243, atslab_0) ; tmp249 = ats_caselptrlab_mac(anairiats_sum_1, tmp244, atslab_0) ; tmp250 = atspre_gt_int_int (tmp248, tmp249) ; if (tmp250) { tmp242 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp242)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp242, atslab_0, 1) ; } else { tmp242 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp242)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp242, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp243)->tag != 2) { goto __ats_lab_103_0 ; } __ats_lab_102_1: if (((ats_sum_ptr_type)tmp244)->tag != 2) { goto __ats_lab_103_1 ; } __ats_lab_102_2: tmp251 = ats_caselptrlab_mac(anairiats_sum_3, tmp243, atslab_0) ; tmp252 = ats_caselptrlab_mac(anairiats_sum_3, tmp244, atslab_0) ; tmp253 = atspre_gt_string_string (tmp251, tmp252) ; if (tmp253) { tmp242 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp242)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp242, atslab_0, 1) ; } else { tmp242 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp242)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp242, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: __ats_lab_103_1: __ats_lab_103_2: tmp255 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp255)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp255, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp255, atslab_1, arg3) ; /* tmp254 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp255) ; tmp242 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp242) ; } /* end of [e1xplevenv_valize_gt_41] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 16658(line=670, offs=4) -- 17226(line=687, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_gteq_42 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_double_type, tmp259) ; ATSlocal (ats_double_type, tmp260) ; ATSlocal (ats_bool_type, tmp261) ; ATSlocal (ats_int_type, tmp262) ; ATSlocal (ats_int_type, tmp263) ; ATSlocal (ats_bool_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_bool_type, tmp267) ; // ATSlocal_void (tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; __ats_lab_e1xplevenv_valize_gteq_42: tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp257)->tag != 3) { goto __ats_lab_105_0 ; } __ats_lab_104_1: if (((ats_sum_ptr_type)tmp258)->tag != 3) { goto __ats_lab_107_1 ; } __ats_lab_104_2: tmp259 = ats_caselptrlab_mac(anairiats_sum_4, tmp257, atslab_0) ; tmp260 = ats_caselptrlab_mac(anairiats_sum_4, tmp258, atslab_0) ; tmp261 = atspre_gte_double_double (tmp259, tmp260) ; if (tmp261) { tmp256 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp256)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp256, atslab_0, 1) ; } else { tmp256 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp256)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp256, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp257)->tag != 0) { goto __ats_lab_106_0 ; } __ats_lab_105_1: if (((ats_sum_ptr_type)tmp258)->tag != 0) { goto __ats_lab_107_1 ; } __ats_lab_105_2: tmp262 = ats_caselptrlab_mac(anairiats_sum_1, tmp257, atslab_0) ; tmp263 = ats_caselptrlab_mac(anairiats_sum_1, tmp258, atslab_0) ; tmp264 = atspre_gte_int_int (tmp262, tmp263) ; if (tmp264) { tmp256 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp256)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp256, atslab_0, 1) ; } else { tmp256 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp256)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp256, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp257)->tag != 2) { goto __ats_lab_107_0 ; } __ats_lab_106_1: if (((ats_sum_ptr_type)tmp258)->tag != 2) { goto __ats_lab_107_1 ; } __ats_lab_106_2: tmp265 = ats_caselptrlab_mac(anairiats_sum_3, tmp257, atslab_0) ; tmp266 = ats_caselptrlab_mac(anairiats_sum_3, tmp258, atslab_0) ; tmp267 = atspre_gte_string_string (tmp265, tmp266) ; if (tmp267) { tmp256 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp256)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp256, atslab_0, 1) ; } else { tmp256 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp256)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp256, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: __ats_lab_107_1: __ats_lab_107_2: tmp269 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp269)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp269, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp269, atslab_1, arg3) ; /* tmp268 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp269) ; tmp256 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp256) ; } /* end of [e1xplevenv_valize_gteq_42] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 17288(line=691, offs=5) -- 17768(line=706, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_eq_43 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_int_type, tmp273) ; ATSlocal (ats_int_type, tmp274) ; ATSlocal (ats_bool_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_bool_type, tmp278) ; // ATSlocal_void (tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; __ats_lab_e1xplevenv_valize_eq_43: tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp271)->tag != 0) { goto __ats_lab_109_0 ; } __ats_lab_108_1: if (((ats_sum_ptr_type)tmp272)->tag != 0) { goto __ats_lab_110_1 ; } __ats_lab_108_2: tmp273 = ats_caselptrlab_mac(anairiats_sum_1, tmp271, atslab_0) ; tmp274 = ats_caselptrlab_mac(anairiats_sum_1, tmp272, atslab_0) ; tmp275 = atspre_eq_int_int (tmp273, tmp274) ; if (tmp275) { tmp270 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp270)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp270, atslab_0, 1) ; } else { tmp270 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp270)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp270, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp271)->tag != 2) { goto __ats_lab_110_0 ; } __ats_lab_109_1: if (((ats_sum_ptr_type)tmp272)->tag != 2) { goto __ats_lab_110_1 ; } __ats_lab_109_2: tmp276 = ats_caselptrlab_mac(anairiats_sum_3, tmp271, atslab_0) ; tmp277 = ats_caselptrlab_mac(anairiats_sum_3, tmp272, atslab_0) ; tmp278 = atspre_eq_string_string (tmp276, tmp277) ; if (tmp278) { tmp270 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp270)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp270, atslab_0, 1) ; } else { tmp270 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp270)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp270, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: __ats_lab_110_1: __ats_lab_110_2: tmp280 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp280)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp280, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp280, atslab_1, arg3) ; /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp280) ; tmp270 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp270) ; } /* end of [e1xplevenv_valize_eq_43] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 17807(line=708, offs=5) -- 18290(line=723, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_neq_44 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_int_type, tmp284) ; ATSlocal (ats_int_type, tmp285) ; ATSlocal (ats_bool_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_bool_type, tmp289) ; // ATSlocal_void (tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab_e1xplevenv_valize_neq_44: tmp282 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp282)->tag != 0) { goto __ats_lab_112_0 ; } __ats_lab_111_1: if (((ats_sum_ptr_type)tmp283)->tag != 0) { goto __ats_lab_113_1 ; } __ats_lab_111_2: tmp284 = ats_caselptrlab_mac(anairiats_sum_1, tmp282, atslab_0) ; tmp285 = ats_caselptrlab_mac(anairiats_sum_1, tmp283, atslab_0) ; tmp286 = atspre_neq_int_int (tmp284, tmp285) ; if (tmp286) { tmp281 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp281)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp281, atslab_0, 1) ; } else { tmp281 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp281)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp281, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp282)->tag != 2) { goto __ats_lab_113_0 ; } __ats_lab_112_1: if (((ats_sum_ptr_type)tmp283)->tag != 2) { goto __ats_lab_113_1 ; } __ats_lab_112_2: tmp287 = ats_caselptrlab_mac(anairiats_sum_3, tmp282, atslab_0) ; tmp288 = ats_caselptrlab_mac(anairiats_sum_3, tmp283, atslab_0) ; tmp289 = atspre_neq_string_string (tmp287, tmp288) ; if (tmp289) { tmp281 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp281)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp281, atslab_0, 1) ; } else { tmp281 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp281)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp281, atslab_0, 0) ; } /* end of [if] */ break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: __ats_lab_113_1: __ats_lab_113_2: tmp291 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp291)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp291, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp291, atslab_1, arg3) ; /* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp291) ; tmp281 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp281) ; } /* end of [e1xplevenv_valize_neq_44] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 18351(line=727, offs=5) -- 19106(line=750, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_land_45 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_int_type, tmp295) ; ATSlocal (ats_int_type, tmp296) ; ATSlocal (ats_bool_type, tmp297) ; ATSlocal (ats_bool_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_bool_type, tmp301) ; ATSlocal (ats_bool_type, tmp302) ; // ATSlocal_void (tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; __ats_lab_e1xplevenv_valize_land_45: tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp293)->tag != 0) { goto __ats_lab_115_0 ; } __ats_lab_114_1: if (((ats_sum_ptr_type)tmp294)->tag != 0) { goto __ats_lab_116_1 ; } __ats_lab_114_2: tmp295 = ats_caselptrlab_mac(anairiats_sum_1, tmp293, atslab_0) ; tmp296 = ats_caselptrlab_mac(anairiats_sum_1, tmp294, atslab_0) ; tmp297 = atspre_eq_int_int (tmp295, 0) ; if (tmp297) { tmp292 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp292)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp292, atslab_0, 0) ; } else { tmp298 = atspre_eq_int_int (tmp296, 0) ; if (tmp298) { tmp292 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp292)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp292, atslab_0, 0) ; } else { tmp292 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp292)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp292, atslab_0, 1) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp293)->tag != 2) { goto __ats_lab_116_0 ; } __ats_lab_115_1: if (((ats_sum_ptr_type)tmp294)->tag != 2) { goto __ats_lab_116_1 ; } __ats_lab_115_2: tmp299 = ats_caselptrlab_mac(anairiats_sum_3, tmp293, atslab_0) ; tmp300 = ats_caselptrlab_mac(anairiats_sum_3, tmp294, atslab_0) ; tmp301 = atspre_string_is_empty (ats_castfn_mac(ats_ptr_type, tmp299)) ; if (tmp301) { tmp292 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp292)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp292, atslab_0, 0) ; } else { tmp302 = atspre_string_is_empty (ats_castfn_mac(ats_ptr_type, tmp299)) ; if (tmp302) { tmp292 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp292)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp292, atslab_0, 0) ; } else { tmp292 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp292)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp292, atslab_0, 1) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: __ats_lab_116_1: __ats_lab_116_2: tmp304 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp304)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp304, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp304, atslab_1, arg3) ; /* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp304) ; tmp292 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp292) ; } /* end of [e1xplevenv_valize_land_45] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 19147(line=752, offs=5) -- 19909(line=775, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_lor_46 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_int_type, tmp308) ; ATSlocal (ats_int_type, tmp309) ; ATSlocal (ats_bool_type, tmp310) ; ATSlocal (ats_bool_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_bool_type, tmp314) ; ATSlocal (ats_bool_type, tmp315) ; // ATSlocal_void (tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; __ats_lab_e1xplevenv_valize_lor_46: tmp306 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp307 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp306)->tag != 0) { goto __ats_lab_118_0 ; } __ats_lab_117_1: if (((ats_sum_ptr_type)tmp307)->tag != 0) { goto __ats_lab_119_1 ; } __ats_lab_117_2: tmp308 = ats_caselptrlab_mac(anairiats_sum_1, tmp306, atslab_0) ; tmp309 = ats_caselptrlab_mac(anairiats_sum_1, tmp307, atslab_0) ; tmp310 = atspre_neq_int_int (tmp308, 0) ; if (tmp310) { tmp305 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp305)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp305, atslab_0, 1) ; } else { tmp311 = atspre_neq_int_int (tmp309, 0) ; if (tmp311) { tmp305 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp305)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp305, atslab_0, 1) ; } else { tmp305 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp305)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp305, atslab_0, 0) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp306)->tag != 2) { goto __ats_lab_119_0 ; } __ats_lab_118_1: if (((ats_sum_ptr_type)tmp307)->tag != 2) { goto __ats_lab_119_1 ; } __ats_lab_118_2: tmp312 = ats_caselptrlab_mac(anairiats_sum_3, tmp306, atslab_0) ; tmp313 = ats_caselptrlab_mac(anairiats_sum_3, tmp307, atslab_0) ; tmp314 = atspre_string_isnot_empty (ats_castfn_mac(ats_ptr_type, tmp312)) ; if (tmp314) { tmp305 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp305)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp305, atslab_0, 1) ; } else { tmp315 = atspre_string_isnot_empty (ats_castfn_mac(ats_ptr_type, tmp313)) ; if (tmp315) { tmp305 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp305)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp305, atslab_0, 1) ; } else { tmp305 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp305)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp305, atslab_0, 0) ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: __ats_lab_119_1: __ats_lab_119_2: tmp317 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp317)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp317, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp317, atslab_1, arg3) ; /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp317) ; tmp305 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp305) ; } /* end of [e1xplevenv_valize_lor_46] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 19969(line=779, offs=4) -- 20826(line=805, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_asl_47 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_int_type, tmp321) ; ATSlocal (ats_int_type, tmp322) ; // ATSlocal_void (tmp323) ; ATSlocal (ats_bool_type, tmp324) ; // ATSlocal_void (tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; // ATSlocal_void (tmp327) ; ATSlocal (ats_bool_type, tmp328) ; ATSlocal (ats_int_type, tmp329) ; // ATSlocal_void (tmp330) ; // ATSlocal_void (tmp331) ; // ATSlocal_void (tmp332) ; ATSlocal (ats_bool_type, tmp333) ; ATSlocal (ats_int_type, tmp334) ; // ATSlocal_void (tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; __ats_lab_e1xplevenv_valize_asl_47: tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp319)->tag != 0) { goto __ats_lab_121_0 ; } __ats_lab_120_1: if (((ats_sum_ptr_type)tmp320)->tag != 0) { goto __ats_lab_121_1 ; } __ats_lab_120_2: tmp321 = ats_caselptrlab_mac(anairiats_sum_1, tmp319, atslab_0) ; tmp322 = ats_caselptrlab_mac(anairiats_sum_1, tmp320, atslab_0) ; tmp324 = atspre_ilt (ats_castfn_mac(ats_int_type, tmp322), 0) ; if (tmp324) { tmp326 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg2), atslab_e1xp_loc) ; /* tmp325 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp326) ; tmp329 = patsopt_debug_flag_get () ; tmp328 = atspre_gt_int_int (tmp329, 0) ; if (tmp328) { /* tmp327 = */ atspre_prerr_string (ATSstrcst(": e1xplevenv_valize_asl")) ; } else { /* empty */ } /* end of [if] */ /* tmp330 = */ atspre_prerr_string (ATSstrcst(": the second argument of [<<] is required to be a natural number.")) ; /* tmp331 = */ atspre_prerr_newline () ; /* tmp323 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; } else { /* empty */ } /* end of [if] */ tmp333 = atspre_igte (ats_castfn_mac(ats_int_type, tmp322), 0) ; /* tmp332 = */ atspre_assert (tmp333) ; tmp334 = atspre_asl_int_int1 (tmp321, ats_castfn_mac(ats_int_type, tmp322)) ; tmp318 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp318)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp318, atslab_0, tmp334) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: __ats_lab_121_1: __ats_lab_121_2: tmp336 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp336)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp336, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp336, atslab_1, arg3) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp336) ; tmp318 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp318) ; } /* end of [e1xplevenv_valize_asl_47] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 20865(line=807, offs=4) -- 21722(line=833, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_valize_asr_48 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_int_type, tmp340) ; ATSlocal (ats_int_type, tmp341) ; // ATSlocal_void (tmp342) ; ATSlocal (ats_bool_type, tmp343) ; // ATSlocal_void (tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; // ATSlocal_void (tmp346) ; ATSlocal (ats_bool_type, tmp347) ; ATSlocal (ats_int_type, tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; ATSlocal (ats_bool_type, tmp352) ; ATSlocal (ats_int_type, tmp353) ; // ATSlocal_void (tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; __ats_lab_e1xplevenv_valize_asr_48: tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg4) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize (arg0, arg1, arg5) ; do { /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp338)->tag != 0) { goto __ats_lab_123_0 ; } __ats_lab_122_1: if (((ats_sum_ptr_type)tmp339)->tag != 0) { goto __ats_lab_123_1 ; } __ats_lab_122_2: tmp340 = ats_caselptrlab_mac(anairiats_sum_1, tmp338, atslab_0) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_1, tmp339, atslab_0) ; tmp343 = atspre_ilt (ats_castfn_mac(ats_int_type, tmp341), 0) ; if (tmp343) { tmp345 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg2), atslab_e1xp_loc) ; /* tmp344 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp345) ; tmp348 = patsopt_debug_flag_get () ; tmp347 = atspre_gt_int_int (tmp348, 0) ; if (tmp347) { /* tmp346 = */ atspre_prerr_string (ATSstrcst(": e1xplevenv_valize_asl")) ; } else { /* empty */ } /* end of [if] */ /* tmp349 = */ atspre_prerr_string (ATSstrcst(": the second argument of [>>] is required to be a natural number.")) ; /* tmp350 = */ atspre_prerr_newline () ; /* tmp342 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; } else { /* empty */ } /* end of [if] */ tmp352 = atspre_igte (ats_castfn_mac(ats_int_type, tmp341), 0) ; /* tmp351 = */ atspre_assert (tmp352) ; tmp353 = atspre_asr_int_int1 (tmp340, ats_castfn_mac(ats_int_type, tmp341)) ; tmp337 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp337)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp337, atslab_0, tmp353) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: __ats_lab_123_1: __ats_lab_123_2: tmp355 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp355)->tag = 4 ; ats_selptrset_mac(anairiats_sum_10, tmp355, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp355, atslab_1, arg3) ; /* tmp354 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp355) ; tmp337 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp337) ; } /* end of [e1xplevenv_valize_asr_48] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 21815(line=839, offs=3) -- 24407(line=943, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_delta (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_bool_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; // ATSlocal_void (tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_bool_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; // ATSlocal_void (tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_bool_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; // ATSlocal_void (tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_bool_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; // ATSlocal_void (tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_bool_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; // ATSlocal_void (tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_bool_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; // ATSlocal_void (tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_bool_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; // ATSlocal_void (tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_bool_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; // ATSlocal_void (tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_bool_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; // ATSlocal_void (tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_bool_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; // ATSlocal_void (tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_bool_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; // ATSlocal_void (tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_bool_type, tmp428) ; ATSlocal (ats_bool_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; // ATSlocal_void (tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_bool_type, tmp436) ; ATSlocal (ats_bool_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; // ATSlocal_void (tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_bool_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; // ATSlocal_void (tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_bool_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; // ATSlocal_void (tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; // ATSlocal_void (tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_delta: do { /* branch: __ats_lab_124 */ __ats_lab_124_0: __ats_lab_124_1: tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DEFINED) ; if (!tmp357) { goto __ats_lab_127_1 ; } do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_126_0 ; } tmp358 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp358 != (ats_sum_ptr_type)0) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp359 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_defined (tmp359) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: __ats_lab_126_1: tmp361 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp361)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp361, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp361, atslab_1, arg3) ; /* tmp360 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp361) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: __ats_lab_127_1: tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDEFINED) ; if (!tmp362) { goto __ats_lab_130_1 ; } do { /* branch: __ats_lab_128 */ __ats_lab_128_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; } tmp363 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp363 != (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp364 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xp_valize_undefined (tmp364) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: __ats_lab_129_1: tmp366 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp366)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp366, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp366, atslab_1, arg3) ; /* tmp365 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp366) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: __ats_lab_130_1: tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_NEG) ; if (!tmp367) { goto __ats_lab_133_1 ; } do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } tmp368 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp368 != (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp369 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp356 = e1xplevenv_valize_neg_34 (arg0, arg1, arg2, arg3, tmp369) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: __ats_lab_132_1: tmp371 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp371)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp371, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp371, atslab_1, arg3) ; /* tmp370 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp371) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: __ats_lab_133_1: tmp372 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD) ; if (!tmp372) { goto __ats_lab_136_1 ; } do { /* branch: __ats_lab_134 */ __ats_lab_134_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_135_0 ; } tmp373 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp373 == (ats_sum_ptr_type)0) { goto __ats_lab_135_0 ; } tmp374 = ats_caselptrlab_mac(anairiats_sum_9, tmp373, atslab_1) ; if (tmp374 != (ats_sum_ptr_type)0) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp375 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp376 = ats_caselptrlab_mac(anairiats_sum_9, tmp373, atslab_0) ; tmp356 = e1xplevenv_valize_add_35 (arg0, arg1, arg2, arg3, tmp375, tmp376) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: __ats_lab_135_1: tmp378 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp378)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp378, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp378, atslab_1, arg3) ; /* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp378) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: __ats_lab_136_1: tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB) ; if (!tmp379) { goto __ats_lab_139_1 ; } do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } tmp380 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp380 == (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } tmp381 = ats_caselptrlab_mac(anairiats_sum_9, tmp380, atslab_1) ; if (tmp381 != (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp383 = ats_caselptrlab_mac(anairiats_sum_9, tmp380, atslab_0) ; tmp356 = e1xplevenv_valize_sub_36 (arg0, arg1, arg2, arg3, tmp382, tmp383) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: __ats_lab_138_1: tmp385 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp385)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp385, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp385, atslab_1, arg3) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp385) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: __ats_lab_139_1: tmp386 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MUL) ; if (!tmp386) { goto __ats_lab_142_1 ; } do { /* branch: __ats_lab_140 */ __ats_lab_140_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_141_0 ; } tmp387 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp387 == (ats_sum_ptr_type)0) { goto __ats_lab_141_0 ; } tmp388 = ats_caselptrlab_mac(anairiats_sum_9, tmp387, atslab_1) ; if (tmp388 != (ats_sum_ptr_type)0) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp389 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp390 = ats_caselptrlab_mac(anairiats_sum_9, tmp387, atslab_0) ; tmp356 = e1xplevenv_valize_mul_37 (arg0, arg1, arg2, arg3, tmp389, tmp390) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: __ats_lab_141_1: tmp392 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp392)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp392, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp392, atslab_1, arg3) ; /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp392) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: __ats_lab_142_1: tmp393 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DIV) ; if (!tmp393) { goto __ats_lab_145_1 ; } do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_144_0 ; } tmp394 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp394 == (ats_sum_ptr_type)0) { goto __ats_lab_144_0 ; } tmp395 = ats_caselptrlab_mac(anairiats_sum_9, tmp394, atslab_1) ; if (tmp395 != (ats_sum_ptr_type)0) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp396 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp397 = ats_caselptrlab_mac(anairiats_sum_9, tmp394, atslab_0) ; tmp356 = e1xplevenv_valize_div_38 (arg0, arg1, arg2, arg3, tmp396, tmp397) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: __ats_lab_144_1: tmp399 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp399)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp399, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp399, atslab_1, arg3) ; /* tmp398 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp399) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: __ats_lab_145_1: tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ; if (!tmp400) { goto __ats_lab_148_1 ; } do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_147_0 ; } tmp401 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp401 == (ats_sum_ptr_type)0) { goto __ats_lab_147_0 ; } tmp402 = ats_caselptrlab_mac(anairiats_sum_9, tmp401, atslab_1) ; if (tmp402 != (ats_sum_ptr_type)0) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp403 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp404 = ats_caselptrlab_mac(anairiats_sum_9, tmp401, atslab_0) ; tmp356 = e1xplevenv_valize_lt_39 (arg0, arg1, arg2, arg3, tmp403, tmp404) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: __ats_lab_147_1: tmp406 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp406)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp406, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp406, atslab_1, arg3) ; /* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp406) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: __ats_lab_148_1: tmp407 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTEQ) ; if (!tmp407) { goto __ats_lab_151_1 ; } do { /* branch: __ats_lab_149 */ __ats_lab_149_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_150_0 ; } tmp408 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp408 == (ats_sum_ptr_type)0) { goto __ats_lab_150_0 ; } tmp409 = ats_caselptrlab_mac(anairiats_sum_9, tmp408, atslab_1) ; if (tmp409 != (ats_sum_ptr_type)0) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp410 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp411 = ats_caselptrlab_mac(anairiats_sum_9, tmp408, atslab_0) ; tmp356 = e1xplevenv_valize_lteq_40 (arg0, arg1, arg2, arg3, tmp410, tmp411) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: __ats_lab_150_1: tmp413 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp413)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp413, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp413, atslab_1, arg3) ; /* tmp412 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp413) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: __ats_lab_151_1: tmp414 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ; if (!tmp414) { goto __ats_lab_154_1 ; } do { /* branch: __ats_lab_152 */ __ats_lab_152_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_153_0 ; } tmp415 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp415 == (ats_sum_ptr_type)0) { goto __ats_lab_153_0 ; } tmp416 = ats_caselptrlab_mac(anairiats_sum_9, tmp415, atslab_1) ; if (tmp416 != (ats_sum_ptr_type)0) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp417 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp418 = ats_caselptrlab_mac(anairiats_sum_9, tmp415, atslab_0) ; tmp356 = e1xplevenv_valize_gt_41 (arg0, arg1, arg2, arg3, tmp417, tmp418) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: __ats_lab_153_1: tmp420 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp420)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp420, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp420, atslab_1, arg3) ; /* tmp419 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp420) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: __ats_lab_154_1: tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTEQ) ; if (!tmp421) { goto __ats_lab_157_1 ; } do { /* branch: __ats_lab_155 */ __ats_lab_155_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_156_0 ; } tmp422 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp422 == (ats_sum_ptr_type)0) { goto __ats_lab_156_0 ; } tmp423 = ats_caselptrlab_mac(anairiats_sum_9, tmp422, atslab_1) ; if (tmp423 != (ats_sum_ptr_type)0) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp424 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp425 = ats_caselptrlab_mac(anairiats_sum_9, tmp422, atslab_0) ; tmp356 = e1xplevenv_valize_gteq_42 (arg0, arg1, arg2, arg3, tmp424, tmp425) ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: __ats_lab_156_1: tmp427 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp427)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp427, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp427, atslab_1, arg3) ; /* tmp426 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp427) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: __ats_lab_157_1: tmp429 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ) ; if (tmp429) { tmp428 = ats_true_bool ; } else { tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQEQ) ; } /* end of [if] */ if (!tmp428) { goto __ats_lab_160_1 ; } do { /* branch: __ats_lab_158 */ __ats_lab_158_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_159_0 ; } tmp430 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp430 == (ats_sum_ptr_type)0) { goto __ats_lab_159_0 ; } tmp431 = ats_caselptrlab_mac(anairiats_sum_9, tmp430, atslab_1) ; if (tmp431 != (ats_sum_ptr_type)0) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp432 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp433 = ats_caselptrlab_mac(anairiats_sum_9, tmp430, atslab_0) ; tmp356 = e1xplevenv_valize_eq_43 (arg0, arg1, arg2, arg3, tmp432, tmp433) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: __ats_lab_159_1: tmp435 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp435)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp435, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp435, atslab_1, arg3) ; /* tmp434 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp435) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: __ats_lab_160_1: tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTGT) ; if (tmp437) { tmp436 = ats_true_bool ; } else { tmp436 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANGEQ) ; } /* end of [if] */ if (!tmp436) { goto __ats_lab_163_1 ; } do { /* branch: __ats_lab_161 */ __ats_lab_161_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_162_0 ; } tmp438 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp438 == (ats_sum_ptr_type)0) { goto __ats_lab_162_0 ; } tmp439 = ats_caselptrlab_mac(anairiats_sum_9, tmp438, atslab_1) ; if (tmp439 != (ats_sum_ptr_type)0) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp440 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp441 = ats_caselptrlab_mac(anairiats_sum_9, tmp438, atslab_0) ; tmp356 = e1xplevenv_valize_neq_44 (arg0, arg1, arg2, arg3, tmp440, tmp441) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: __ats_lab_162_1: tmp443 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp443)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp443, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp443, atslab_1, arg3) ; /* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp443) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: __ats_lab_163_1: tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LAND) ; if (!tmp444) { goto __ats_lab_166_1 ; } do { /* branch: __ats_lab_164 */ __ats_lab_164_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_165_0 ; } tmp445 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp445 == (ats_sum_ptr_type)0) { goto __ats_lab_165_0 ; } tmp446 = ats_caselptrlab_mac(anairiats_sum_9, tmp445, atslab_1) ; if (tmp446 != (ats_sum_ptr_type)0) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp447 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp448 = ats_caselptrlab_mac(anairiats_sum_9, tmp445, atslab_0) ; tmp356 = e1xplevenv_valize_land_45 (arg0, arg1, arg2, arg3, tmp447, tmp448) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: __ats_lab_165_1: tmp450 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp450)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp450, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp450, atslab_1, arg3) ; /* tmp449 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp450) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: __ats_lab_166_1: tmp451 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg3, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LOR) ; if (!tmp451) { goto __ats_lab_169_1 ; } do { /* branch: __ats_lab_167 */ __ats_lab_167_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_168_0 ; } tmp452 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; if (tmp452 == (ats_sum_ptr_type)0) { goto __ats_lab_168_0 ; } tmp453 = ats_caselptrlab_mac(anairiats_sum_9, tmp452, atslab_1) ; if (tmp453 != (ats_sum_ptr_type)0) { goto __ats_lab_168_0 ; } __ats_lab_167_1: tmp454 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp455 = ats_caselptrlab_mac(anairiats_sum_9, tmp452, atslab_0) ; tmp356 = e1xplevenv_valize_lor_46 (arg0, arg1, arg2, arg3, tmp454, tmp455) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: __ats_lab_168_1: tmp457 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp457)->tag = 11 ; ats_selptrset_mac(anairiats_sum_10, tmp457, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp457, atslab_1, arg3) ; /* tmp456 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp457) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: __ats_lab_169_1: tmp459 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp459)->tag = 10 ; ats_selptrset_mac(anairiats_sum_10, tmp459, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp459, atslab_1, arg3) ; /* tmp458 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__the_valerrlst_add (tmp459) ; tmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ; break ; } while (0) ; return (tmp356) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_valize_delta] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 24875(line=965, offs=16) -- 24929(line=966, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize: tmp461 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_e1xp_loc) ; tmp460 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_normalize (tmp461, 0, arg0) ; return (tmp460) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 24988(line=971, offs=3) -- 25127(line=975, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_normalize (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; // ATSlocal_void (tmp465) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_normalize: tmp463 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_nil () ; tmp464 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize (arg0, arg1, tmp463, arg2) ; /* tmp465 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfree (tmp463) ; tmp462 = tmp464 ; return (tmp462) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_normalize] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 25183(line=979, offs=4) -- 25563(line=995, offs=4) */ ATSstaticdec() ats_ptr_type e1xplevenv_normalize_ide_52 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_int_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; __ats_lab_e1xplevenv_normalize_ide_52: tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfind (arg2, arg4) ; do { /* branch: __ats_lab_170 */ __ats_lab_170_0: if (tmp467 == (ats_sum_ptr_type)0) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp468 = ats_caselptrlab_mac(anairiats_sum_6, tmp467, atslab_0) ; ATS_FREE(tmp467) ; tmp466 = tmp468 ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: // if (tmp467 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_171_1: tmp469 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (arg4) ; do { /* branch: __ats_lab_172 */ __ats_lab_172_0: if (tmp469 == (ats_sum_ptr_type)0) { goto __ats_lab_173_0 ; } __ats_lab_172_1: tmp470 = ats_caselptrlab_mac(anairiats_sum_6, tmp469, atslab_0) ; ATS_FREE(tmp469) ; tmp471 = atspre_add_int_int (arg1, 1) ; tmp466 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplev_normalize (arg0, tmp471, tmp470) ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: // if (tmp469 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_173_1: tmp472 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg3), atslab_e1xp_node) ; tmp466 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp472) ; break ; } while (0) ; break ; } while (0) ; return (tmp466) ; } /* end of [e1xplevenv_normalize_ide_52] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 25627(line=999, offs=5) -- 25945(line=1008, offs=31) */ ATSstaticdec() ats_ptr_type e1xplstlevenv_normalize_53 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; __ats_lab_e1xplstlevenv_normalize_53: do { /* branch: __ats_lab_174 */ __ats_lab_174_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_175_0 ; } __ats_lab_174_1: tmp474 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp475 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize (arg0, arg1, arg2, tmp474) ; tmp477 = e1xplstlevenv_normalize_53 (arg0, arg1, arg2, tmp475) ; tmp473 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp473, atslab_0, tmp476) ; ats_selptrset_mac(anairiats_sum_9, tmp473, atslab_1, tmp477) ; break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_175_1: tmp473 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp473) ; } /* end of [e1xplstlevenv_normalize_53] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 26136(line=1020, offs=3) -- 26497(line=1034, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_bool_type, tmp479) ; // ATSlocal_void (tmp480) ; // ATSlocal_void (tmp481) ; // ATSlocal_void (tmp482) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize: tmp479 = atspre_lte_int_int (arg1, 99) ; if (tmp479) { tmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize_main (arg0, arg1, arg2, arg3) ; } else { /* tmp480 = */ prerr_error1_loc_0 (arg0) ; /* tmp481 = */ atspre_prerrf_exn (ATSstrcst(": the maximal normlization depth (%i) has been reached."), arg1) ; /* tmp482 = */ atspre_prerr_newline () ; tmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err (arg0) ; } /* end of [if] */ return (tmp478) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize] */ /* // /tmp/ATS-Postiats/src/pats_e1xpval.dats: 26570(line=1038, offs=3) -- 28437(line=1101, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize_main (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_int_type, tmp500) ; // ATSlocal_void (tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_bool_type, tmp507) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize_main: tmp484 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg3), atslab_e1xp_node) ; do { /* branch: __ats_lab_176 */ __ats_lab_176_0: if (((ats_sum_ptr_type)tmp484)->tag != 0) { goto __ats_lab_177_0 ; } __ats_lab_176_1: tmp485 = ats_caselptrlab_mac(anairiats_sum_3, tmp484, atslab_0) ; tmp483 = e1xplevenv_normalize_ide_52 (arg0, arg1, arg2, arg3, tmp485) ; break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: if (((ats_sum_ptr_type)tmp484)->tag != 1) { goto __ats_lab_178_0 ; } __ats_lab_177_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: if (((ats_sum_ptr_type)tmp484)->tag != 2) { goto __ats_lab_179_0 ; } __ats_lab_178_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: if (((ats_sum_ptr_type)tmp484)->tag != 3) { goto __ats_lab_180_0 ; } __ats_lab_179_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: if (((ats_sum_ptr_type)tmp484)->tag != 5) { goto __ats_lab_181_0 ; } __ats_lab_180_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: if (((ats_sum_ptr_type)tmp484)->tag != 4) { goto __ats_lab_182_0 ; } __ats_lab_181_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: if (((ats_sum_ptr_type)tmp484)->tag != 6) { goto __ats_lab_183_0 ; } __ats_lab_182_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: if (((ats_sum_ptr_type)tmp484)->tag != 7) { goto __ats_lab_184_0 ; } __ats_lab_183_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; /* branch: __ats_lab_184 */ __ats_lab_184_0: if (((ats_sum_ptr_type)tmp484)->tag != 8) { goto __ats_lab_185_0 ; } __ats_lab_184_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: if (((ats_sum_ptr_type)tmp484)->tag != 13) { goto __ats_lab_186_0 ; } __ats_lab_185_1: tmp486 = ats_caselptrlab_mac(anairiats_sum_3, tmp484, atslab_0) ; tmp487 = e1xplstlevenv_normalize_53 (arg0, arg1, arg2, tmp486) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list (arg0, tmp487) ; break ; /* branch: __ats_lab_186 */ __ats_lab_186_0: if (((ats_sum_ptr_type)tmp484)->tag != 12) { goto __ats_lab_187_0 ; } __ats_lab_186_1: tmp488 = ats_caselptrlab_mac(anairiats_sum_3, tmp484, atslab_0) ; tmp490 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize (arg0, arg1, arg2, tmp488) ; tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize (tmp490) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_v1al (arg0, tmp489) ; break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: if (((ats_sum_ptr_type)tmp484)->tag != 9) { goto __ats_lab_190_0 ; } __ats_lab_187_1: tmp491 = ats_caselptrlab_mac(anairiats_sum_12, tmp484, atslab_0) ; tmp492 = ats_caselptrlab_mac(anairiats_sum_12, tmp484, atslab_2) ; tmp493 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize (arg0, arg1, arg2, tmp491) ; tmp494 = e1xplstlevenv_normalize_53 (arg0, arg1, arg2, tmp492) ; tmp495 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp493), atslab_e1xp_node) ; do { /* branch: __ats_lab_188 */ __ats_lab_188_0: if (((ats_sum_ptr_type)tmp495)->tag != 10) { goto __ats_lab_189_0 ; } __ats_lab_188_1: tmp496 = ats_caselptrlab_mac(anairiats_sum_10, tmp495, atslab_0) ; tmp497 = ats_caselptrlab_mac(anairiats_sum_10, tmp495, atslab_1) ; tmp498 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvmake_e1xplst (arg0, tmp496, tmp494) ; tmp500 = atspre_add_int_int (arg1, 1) ; tmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize (arg0, tmp500, tmp498, tmp497) ; /* tmp501 = */ _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__lenvfree (tmp498) ; tmp483 = tmp499 ; break ; /* branch: __ats_lab_189 */ __ats_lab_189_0: __ats_lab_189_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (arg0, tmp493, arg0, tmp494) ; break ; } while (0) ; break ; /* branch: __ats_lab_190 */ __ats_lab_190_0: if (((ats_sum_ptr_type)tmp484)->tag != 10) { goto __ats_lab_191_0 ; } __ats_lab_190_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; /* branch: __ats_lab_191 */ __ats_lab_191_0: if (((ats_sum_ptr_type)tmp484)->tag != 11) { goto __ats_lab_192_0 ; } __ats_lab_191_1: tmp502 = ats_caselptrlab_mac(anairiats_sum_12, tmp484, atslab_0) ; tmp503 = ats_caselptrlab_mac(anairiats_sum_12, tmp484, atslab_1) ; tmp504 = ats_caselptrlab_mac(anairiats_sum_12, tmp484, atslab_2) ; tmp506 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize (arg0, arg1, arg2, tmp502) ; tmp505 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize (tmp506) ; tmp507 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true (tmp505) ; if (tmp507) { tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize (arg0, arg1, arg2, tmp503) ; } else { tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize (arg0, arg1, arg2, tmp504) ; } /* end of [if] */ break ; /* branch: __ats_lab_192 */ __ats_lab_192_0: // if (((ats_sum_ptr_type)tmp484)->tag != 14) { ats_deadcode_failure_handle () ; } __ats_lab_192_1: tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make (arg0, tmp484) ; break ; } while (0) ; return (tmp483) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__e1xplevenv_normalize_main] */ /* 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_basics_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_error_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_e1xpval_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_util2_dats.c0000644000175000017500000056756513431250607023262 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } 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_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_uint_type atslab_0 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_13 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEvar_3) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__eq_funclo_funclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__neq_funclo_funclo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__eqref_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effset_effset) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_int_intinf) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isrec) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2Var_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize_flag_svar) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2var_syneq_env) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq_env) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_syneq_env) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_type) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_unit_prop) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_linkrem_flag) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_topize_flag) (ats_int_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_invar_flag) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_hnfize_flag) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_hnfize_flag) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_mhnfize_flag) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_mhnfize_flag) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_mhnfize_flag) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnf_syneq_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnflst_syneq_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_syneq_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_syneq_env) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type auxlinkrem_1 (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2) ; static ats_ptr_type labs2explst_top_3 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_bool_type s2eff_syneq_33 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2eff_syneq_exn_34 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type s2lab_syneq_35 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type s2lablst_syneq_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2lab_syneq_exn_37 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2lablst_syneq_exn_38 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type labs2explst_syneq_exn_39 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type aux0_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_bool_type aux1_0_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_bool_type aux1_t_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_bool_type aux1_f_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_bool_type aux2_0_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_50 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_52 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxenv_47 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_55 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type s2exp_prenexize_63 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) ; static ats_ptr_type revapp_68 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s2exp_prenexize_work_64 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5, ats_ref_type arg6) ; static ats_ptr_type s2explst_prenexize_65 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) ; static ats_ptr_type labs2explst_prenexize_66 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 2613(line=114, offs=1) -- 3944(line=189, offs=4) */ ATSstaticdec() ats_ptr_type auxlinkrem_1 (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; ATSlocal (ats_bool_type, tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_int_type, tmp22) ; ATSlocal (ats_int_type, tmp23) ; __ats_lab_auxlinkrem_1: tmp3 = atspre_lte_int_int (arg2, 0) ; if (tmp3) { /* tmp4 = */ atspre_prerr_string (ATSstrcst("Panic from [patsopt]:\n")) ; /* tmp5 = */ atspre_prerr_newline () ; /* tmp6 = */ atspre_prerr_string (ATSstrcst("The potential causes may be:\n")) ; /* tmp7 = */ atspre_prerr_newline () ; /* tmp8 = */ atspre_prerr_string (ATSstrcst("1. template arguments are not given explicitly;")) ; /* tmp9 = */ atspre_prerr_newline () ; /* tmp10 = */ atspre_prerr_string (ATSstrcst("2. ...(other potential causes are yet to be added!)")) ; /* tmp11 = */ atspre_prerr_newline () ; /* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; } else { /* empty */ } /* end of [if] */ tmp12 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp12)->tag != 4) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_2, tmp12, atslab_0) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isrec (tmp13) ; if (tmp14) { tmp1 = arg0 ; } else { tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def (tmp13) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (tmp15 != (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp1 = arg0 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (tmp15 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_3, tmp15, atslab_0) ; tmp17 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp17 ; tmp18 = atspre_sub_int_int (arg2, 1) ; arg0 = tmp16 ; arg1 = arg1 ; arg2 = tmp18 ; goto __ats_lab_auxlinkrem_1 ; // tail call break ; } while (0) ; } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp12)->tag != 8) { goto __ats_lab_6_0 ; } __ats_lab_3_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_2, tmp12, atslab_0) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link (tmp19) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp20 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_3, tmp20, atslab_0) ; tmp22 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp22 ; tmp23 = atspre_sub_int_int (arg2, 1) ; arg0 = tmp21 ; arg1 = arg1 ; arg2 = tmp23 ; goto __ats_lab_auxlinkrem_1 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp20 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp1 = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp1 = arg0 ; break ; } while (0) ; return (tmp1) ; } /* end of [auxlinkrem_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 2425(line=98, offs=3) -- 4040(line=195, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_linkrem_flag (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_linkrem_flag: tmp0 = auxlinkrem_1 (arg0, arg1, 1000) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_linkrem_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 4101(line=198, offs=14) -- 4171(line=199, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_linkrem (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_linkrem: /* ats_int_type tmp25 ; */ tmp25 = 0 ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_linkrem_flag (arg0, (&tmp25)) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_linkrem] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 4226(line=205, offs=1) -- 4650(line=228, offs=4) */ ATSstaticdec() ats_ptr_type labs2explst_top_3 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_labs2explst_top_3: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp26 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp29 = ats_caselptrlab_mac(anairiats_sum_5, tmp27, atslab_0) ; tmp30 = ats_caselptrlab_mac(anairiats_sum_5, tmp27, atslab_1) ; tmp31 = ats_caselptrlab_mac(anairiats_sum_5, tmp27, atslab_2) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top (arg0, tmp31) ; tmp33 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp33, atslab_0, tmp29) ; ats_selptrset_mac(anairiats_sum_5, tmp33, atslab_1, tmp30) ; ats_selptrset_mac(anairiats_sum_5, tmp33, atslab_2, tmp32) ; tmp34 = labs2explst_top_3 (arg0, tmp28) ; tmp26 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp26, atslab_0, tmp33) ; ats_selptrset_mac(anairiats_sum_4, tmp26, atslab_1, tmp34) ; break ; } while (0) ; return (tmp26) ; } /* end of [labs2explst_top_3] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 5346(line=271, offs=3) -- 6854(line=330, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_topize_flag (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; ATSlocal (ats_bool_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_int_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_bool_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_bool_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_topize_flag: tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_s2exp_srt) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp36) ; if (!tmp37) { goto __ats_lab_10_1 ; } tmp38 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp38 ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_unit_prop () ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp40 = atspre_gt_int_int (arg0, 0) ; if (tmp40) { tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (arg1) ; if (tmp41) { tmp39 = ats_false_bool ; } else { tmp39 = ats_true_bool ; } /* end of [if] */ } else { tmp39 = ats_false_bool ; } /* end of [if] */ tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (arg1, arg2) ; if (tmp39) { tmp35 = tmp42 ; } else { tmp43 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp43 ; tmp44 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp42), atslab_s2exp_node) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp44)->tag != 22) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_6, tmp44, atslab_1) ; arg0 = arg0 ; arg1 = tmp45 ; arg2 = arg2 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_topize_flag ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp44)->tag != 24) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_0) ; tmp47 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_1) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top (arg0, tmp46) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype, tmp48, tmp47) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp44)->tag != 25) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_8, tmp44, atslab_0) ; tmp50 = ats_caselptrlab_mac(anairiats_sum_8, tmp44, atslab_1) ; tmp51 = ats_caselptrlab_mac(anairiats_sum_8, tmp44, atslab_2) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed (tmp49) ; if (tmp52) { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_type () ; } else { tmp53 = labs2explst_top_3 (arg0, tmp51) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype, tmp49, tmp50, tmp53) ; } /* end of [if] */ break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed (tmp36) ; if (!tmp54) { goto __ats_lab_15_1 ; } tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ptr_type () ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype, arg0, tmp42) ; break ; } while (0) ; } /* end of [if] */ break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_topize_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 6935(line=336, offs=3) -- 7014(line=340, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_int_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize: /* ats_int_type tmp56 ; */ tmp56 = 0 ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_topize_flag (arg0, arg1, (&tmp56)) ; return (tmp55) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 7067(line=343, offs=15) -- 7102(line=343, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0: tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize (0, arg0) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 7127(line=345, offs=15) -- 7162(line=345, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_1: tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize (1, arg0) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_1] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 7214(line=351, offs=3) -- 7620(line=376, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_invar_flag (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_int_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_bool_type, tmp65) ; ATSlocal (ats_int_type, tmp66) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_invar_flag: tmp60 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp60)->tag != 26) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 7240(line=353, offs=5) -- 7271(line=353, offs=36)") ; } tmp61 = ats_caselptrlab_mac(anairiats_sum_2, tmp60, atslab_0) ; tmp62 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp61), atslab_s2exp_node) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp62)->tag != 7) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp59 = arg0 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp62)->tag != 8) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp63 = ats_ptrget_mac(ats_int_type, arg1) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (tmp61, arg1) ; tmp65 = atspre_lte_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp63) ; if (tmp65) { tmp59 = arg0 ; } else { tmp59 = tmp64 ; } /* end of [if] */ break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp66 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp66 ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (tmp61, arg1) ; break ; } while (0) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_invar_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 8142(line=418, offs=5) -- 8478(line=432, offs=10) */ ATSstaticdec() ats_void_type aux_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; __ats_lab_aux_10: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: __ats_lab_20_2: break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_2: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_2: tmp75 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp79 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg2, tmp75, tmp77) ; arg0 = tmp76 ; arg1 = tmp78 ; arg2 = arg2 ; goto __ats_lab_aux_10 ; // tail call break ; } while (0) ; return /* (tmp74) */ ; } /* end of [aux_10] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 7699(line=382, offs=1) -- 9030(line=454, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_bool_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_app: tmp68 = ats_ptrget_mac(ats_int_type, arg3) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (arg1, arg3) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_hnfize_flag (arg2, arg3) ; tmp71 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp69), atslab_s2exp_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp71)->tag != 18) { goto __ats_lab_23_0 ; } __ats_lab_19_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_7, tmp71, atslab_0) ; tmp73 = ats_caselptrlab_mac(anairiats_sum_7, tmp71, atslab_1) ; tmp80 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp80 ; /* ats_ptr_type tmp81 ; */ tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; /* tmp82 = */ aux_10 (tmp72, tmp70, (&tmp81)) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp81, tmp73) ; /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp81) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (tmp83, arg3) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp85 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg3), tmp68) ; if (tmp85) { tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_srt) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp86, tmp69, tmp70) ; } else { tmp67 = arg0 ; } /* end of [if] */ break ; } while (0) ; return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_app] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 9117(line=460, offs=3) -- 11332(line=594, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_int_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_bool_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_int_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag: tmp88 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_srt) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_linkrem_flag (arg0, arg1) ; tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp89), atslab_s2exp_node) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp90)->tag != 0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp90)->tag != 1) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp90)->tag != 2) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp90)->tag != 3) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp90)->tag != 4) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp90)->tag != 5) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp90)->tag != 6) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp90)->tag != 7) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_2, tmp90, atslab_0) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize_flag_svar (tmp89, tmp91, arg1) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp90)->tag != 8) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp90)->tag != 9) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp90)->tag != 10) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp90)->tag != 11) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp90)->tag != 12) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp90)->tag != 13) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp90)->tag != 14) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp90)->tag != 15) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp90)->tag != 16) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp90)->tag != 17) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_7, tmp90, atslab_0) ; tmp93 = ats_caselptrlab_mac(anairiats_sum_7, tmp90, atslab_1) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_app (tmp89, tmp92, tmp93, arg1) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp90)->tag != 18) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_7, tmp90, atslab_0) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_7, tmp90, atslab_1) ; tmp96 = ats_ptrget_mac(ats_int_type, arg1) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (tmp95, arg1) ; tmp98 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp96) ; if (tmp98) { tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (tmp88, tmp94, tmp97) ; } else { tmp87 = tmp89 ; } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp90)->tag != 19) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp90)->tag != 20) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp90)->tag != 21) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp90)->tag != 22) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_6, tmp90, atslab_0) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_6, tmp90, atslab_1) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_topize_flag (tmp99, tmp100, arg1) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp90)->tag != 23) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp90)->tag != 24) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp90)->tag != 25) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp90)->tag != 26) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_invar_flag (tmp89, arg1) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp90)->tag != 27) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp101 = ats_caselptrlab_mac(anairiats_sum_9, tmp90, atslab_0) ; tmp102 = ats_caselptrlab_mac(anairiats_sum_9, tmp90, atslab_1) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_9, tmp90, atslab_2) ; tmp104 = ats_ptrget_mac(ats_int_type, arg1) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (tmp103, arg1) ; tmp106 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp104) ; if (tmp106) { tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi (tmp101, tmp102, tmp105) ; } else { tmp87 = tmp89 ; } /* end of [if] */ break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp90)->tag != 28) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_9, tmp90, atslab_0) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_9, tmp90, atslab_1) ; tmp109 = ats_caselptrlab_mac(anairiats_sum_9, tmp90, atslab_2) ; tmp110 = ats_ptrget_mac(ats_int_type, arg1) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (tmp109, arg1) ; tmp112 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp110) ; if (tmp112) { tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (tmp107, tmp108, tmp111) ; } else { tmp87 = tmp89 ; } /* end of [if] */ break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp90)->tag != 29) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp90)->tag != 30) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp90)->tag != 31) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp87 = tmp89 ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (((ats_sum_ptr_type)tmp90)->tag != 32) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp87 = tmp89 ; break ; } while (0) ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 11418(line=600, offs=3) -- 11804(line=622, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_hnfize_flag (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_int_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_bool_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_hnfize_flag: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp113 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp115 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp116 = ats_ptrget_mac(ats_int_type, arg1) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (tmp114, arg1) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_hnfize_flag (tmp115, arg1) ; tmp119 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp116) ; if (tmp119) { tmp113 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp113, atslab_0, tmp117) ; ats_selptrset_mac(anairiats_sum_4, tmp113, atslab_1, tmp118) ; } else { tmp113 = arg0 ; } /* end of [if] */ break ; } while (0) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_hnfize_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 11896(line=628, offs=3) -- 12336(line=647, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_hnfize_flag (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_int_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_bool_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_hnfize_flag: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp120 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp122 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp123 = ats_ptrget_mac(ats_int_type, arg1) ; tmp124 = ats_caselptrlab_mac(anairiats_sum_5, tmp121, atslab_0) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_5, tmp121, atslab_1) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_5, tmp121, atslab_2) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (tmp126, arg1) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_hnfize_flag (tmp122, arg1) ; tmp129 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp123) ; if (tmp129) { tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, tmp124) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp125) ; ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_2, tmp127) ; tmp120 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_0, tmp130) ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_1, tmp128) ; } else { tmp120 = arg0 ; } /* end of [if] */ break ; } while (0) ; return (tmp120) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_hnfize_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 12417(line=652, offs=13) -- 12548(line=660, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_int_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize: /* ats_int_type tmp132 ; */ tmp132 = 0 ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (arg0, (&tmp132)) ; return (tmp131) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 12601(line=663, offs=16) -- 12673(line=665, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_hnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_hnfize: /* ats_int_type tmp134 ; */ tmp134 = 0 ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_hnfize_flag (arg0, (&tmp134)) ; return (tmp133) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_hnfize] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 12732(line=669, offs=3) -- 12964(line=683, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_hnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_int_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_bool_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_hnfize: /* ats_int_type tmp136 ; */ tmp136 = 0 ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp135 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (tmp137, (&tmp136)) ; tmp139 = atspre_gt_int_int (tmp136, 0) ; if (tmp139) { tmp135 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp135, atslab_0, tmp138) ; } else { tmp135 = arg0 ; } /* end of [if] */ break ; } while (0) ; return (tmp135) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_hnfize] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 13410(line=711, offs=3) -- 13838(line=732, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_mhnfize_flag (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_int_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_int_type, tmp147) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_mhnfize_flag: tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_hnfize_flag (arg0, arg1) ; tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp141), atslab_s2exp_node) ; do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp142)->tag != 8) { goto __ats_lab_66_0 ; } __ats_lab_63_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_2, tmp142, atslab_0) ; tmp144 = ats_ptrget_mac(ats_int_type, arg1) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (tmp143) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp145)->tag != 3) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_2, tmp145, atslab_0) ; tmp147 = atspre_add_int_int (tmp144, 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp147 ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp146) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: __ats_lab_65_1: tmp140 = tmp141 ; break ; } while (0) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: tmp140 = tmp141 ; break ; } while (0) ; return (tmp140) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_mhnfize_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 13926(line=738, offs=3) -- 14258(line=754, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_mhnfize_flag (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_int_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_bool_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_mhnfize_flag: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp148 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp150 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp151 = ats_ptrget_mac(ats_int_type, arg1) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_mhnfize_flag (tmp149, arg1) ; tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_mhnfize_flag (tmp150, arg1) ; tmp154 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp151) ; if (tmp154) { tmp148 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp148, atslab_0, tmp152) ; ats_selptrset_mac(anairiats_sum_4, tmp148, atslab_1, tmp153) ; } else { tmp148 = arg0 ; } /* end of [if] */ break ; } while (0) ; return (tmp148) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_mhnfize_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 14352(line=760, offs=3) -- 14704(line=776, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_mhnfize_flag (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_int_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_bool_type, tmp161) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_mhnfize_flag: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp155 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp158 = ats_ptrget_mac(ats_int_type, arg1) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_mhnfize_flag (tmp156, arg1) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_mhnfize_flag (tmp157, arg1) ; tmp161 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp158) ; if (tmp161) { tmp155 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp155, atslab_0, tmp159) ; ats_selptrset_mac(anairiats_sum_4, tmp155, atslab_1, tmp160) ; } else { tmp155 = arg0 ; } /* end of [if] */ break ; } while (0) ; return (tmp155) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_mhnfize_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 14787(line=781, offs=14) -- 14855(line=783, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_mhnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_int_type, tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_mhnfize: /* ats_int_type tmp163 ; */ tmp163 = 0 ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_mhnfize_flag (arg0, (&tmp163)) ; return (tmp162) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_mhnfize] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 14909(line=786, offs=17) -- 14982(line=788, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_mhnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_int_type, tmp165) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_mhnfize: /* ats_int_type tmp165 ; */ tmp165 = 0 ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_mhnfize_flag (arg0, (&tmp165)) ; return (tmp164) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_mhnfize] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 15042(line=791, offs=20) -- 15120(line=793, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_mhnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_int_type, tmp167) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_mhnfize: /* ats_int_type tmp167 ; */ tmp167 = 0 ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_mhnfize_flag (arg0, (&tmp167)) ; return (tmp166) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_mhnfize] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 15196(line=798, offs=10) -- 15223(line=798, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp168) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp: tmp168 = ats_castfn_mac(ats_ptr_type, arg0) ; return (tmp168) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 15247(line=801, offs=10) -- 15320(line=806, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf: tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg0) ; tmp169 = ats_castfn_mac(ats_ptr_type, tmp170) ; return (tmp169) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 15370(line=809, offs=15) -- 15397(line=809, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast: tmp171 = ats_castfn_mac(ats_ptr_type, arg0) ; return (tmp171) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 15892(line=843, offs=3) -- 16013(line=853, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp172) ; // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq: ATS_TRYWITH_TRY(tmp174) /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnf_syneq_exn (arg0, arg1) ; tmp172 = ats_true_bool ; ATS_TRYWITH_WITH(tmp174) do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (tmp174 != &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) { ats_raise_exn (tmp174) ; } __ats_lab_71_1: tmp172 = ats_false_bool ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp172) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 16068(line=858, offs=3) -- 16189(line=868, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp175) ; // ATSlocal_void (tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq: ATS_TRYWITH_TRY(tmp177) /* tmp176 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (arg0, arg1) ; tmp175 = ats_true_bool ; ATS_TRYWITH_WITH(tmp177) do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (tmp177 != &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) { ats_raise_exn (tmp177) ; } __ats_lab_72_1: tmp175 = ats_false_bool ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp175) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 16268(line=875, offs=3) -- 16388(line=885, offs=33) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp178) ; // ATSlocal_void (tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq: ATS_TRYWITH_TRY(tmp180) /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn (arg0, arg1) ; tmp178 = ats_true_bool ; ATS_TRYWITH_WITH(tmp180) do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (tmp180 != &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) { ats_raise_exn (tmp180) ; } __ats_lab_73_1: tmp178 = ats_false_bool ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp178) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 16471(line=892, offs=3) -- 16595(line=897, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn: tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnf_syneq_exn (tmp182, tmp183) ; return /* (tmp181) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 16656(line=901, offs=3) -- 16919(line=912, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnflst_syneq_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; // ATSlocal_void (tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnflst_syneq_exn: do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_74_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_76_1 ; } __ats_lab_74_2: tmp185 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp186 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp187 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp189 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnf_syneq_exn (tmp185, tmp187) ; arg0 = tmp186 ; arg1 = tmp188 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnflst_syneq_exn ; // tail call break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_76_1 ; } __ats_lab_75_2: break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: __ats_lab_76_1: __ats_lab_76_2: tmp190 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp184 = */ ats_raise_exn (tmp190) ; break ; } while (0) ; return /* (tmp184) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnflst_syneq_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 16983(line=916, offs=3) -- 17356(line=942, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn: do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_79_1 ; } __ats_lab_77_2: tmp192 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp192, tmp194) ; arg0 = tmp193 ; arg1 = tmp195 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn ; // tail call break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_79_1 ; } __ats_lab_78_2: break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: __ats_lab_79_1: __ats_lab_79_2: tmp197 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp191 = */ ats_raise_exn (tmp197) ; break ; } while (0) ; return /* (tmp191) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 17423(line=946, offs=3) -- 17823(line=972, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_syneq_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_syneq_exn: do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_80_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_82_1 ; } __ats_lab_80_2: tmp199 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp201 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp202 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn (tmp199, tmp201) ; arg0 = tmp200 ; arg1 = tmp202 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_syneq_exn ; // tail call break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_81_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_82_1 ; } __ats_lab_81_2: break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: __ats_lab_82_1: __ats_lab_82_2: tmp204 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp198 = */ ats_raise_exn (tmp204) ; break ; } while (0) ; return /* (tmp198) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_syneq_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 17886(line=977, offs=1) -- 18051(line=991, offs=2) */ ATSstaticdec() ats_bool_type s2eff_syneq_33 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp205) ; // ATSlocal_void (tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; __ats_lab_s2eff_syneq_33: ATS_TRYWITH_TRY(tmp207) /* tmp206 = */ s2eff_syneq_exn_34 (arg0, arg1) ; tmp205 = ats_true_bool ; ATS_TRYWITH_WITH(tmp207) do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (tmp207 != &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) { ats_raise_exn (tmp207) ; } __ats_lab_83_1: tmp205 = ats_false_bool ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp205) ; } /* end of [s2eff_syneq_33] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 18090(line=994, offs=1) -- 18684(line=1031, offs=4) */ ATSstaticdec() ats_void_type s2eff_syneq_exn_34 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp208) ; ATSlocal (ats_uint_type, tmp209) ; ATSlocal (ats_uint_type, tmp210) ; ATSlocal (ats_bool_type, tmp211) ; ATSlocal (ats_bool_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; // ATSlocal_void (tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; __ats_lab_s2eff_syneq_exn_34: do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_87_1 ; } __ats_lab_84_2: tmp209 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp210 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__eq_effset_effset (tmp209, tmp210) ; tmp211 = atspre_neg_bool (tmp212) ; if (tmp211) { tmp213 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp208 = */ ats_raise_exn (tmp213) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_86_0 ; } __ats_lab_85_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_87_1 ; } __ats_lab_85_2: tmp214 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp215 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp208 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp214, tmp215) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_87_0 ; } __ats_lab_86_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_87_1 ; } __ats_lab_86_2: tmp216 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp217 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp218 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ; /* tmp219 = */ s2eff_syneq_exn_34 (tmp216, tmp217) ; arg0 = tmp217 ; arg1 = tmp218 ; goto __ats_lab_s2eff_syneq_exn_34 ; // tail call break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: __ats_lab_87_1: __ats_lab_87_2: tmp220 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp208 = */ ats_raise_exn (tmp220) ; break ; } while (0) ; return /* (tmp208) */ ; } /* end of [s2eff_syneq_exn_34] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 18741(line=1036, offs=1) -- 18893(line=1049, offs=2) */ ATSstaticdec() ats_bool_type s2lab_syneq_35 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp221) ; // ATSlocal_void (tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; __ats_lab_s2lab_syneq_35: ATS_TRYWITH_TRY(tmp223) /* tmp222 = */ s2lab_syneq_exn_37 (arg0, arg1) ; tmp221 = ats_true_bool ; ATS_TRYWITH_WITH(tmp223) do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (tmp223 != &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) { ats_raise_exn (tmp223) ; } __ats_lab_88_1: tmp221 = ats_false_bool ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp221) ; } /* end of [s2lab_syneq_35] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 18926(line=1052, offs=1) -- 19094(line=1065, offs=2) */ ATSstaticdec() ats_bool_type s2lablst_syneq_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp224) ; // ATSlocal_void (tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; __ats_lab_s2lablst_syneq_36: ATS_TRYWITH_TRY(tmp226) /* tmp225 = */ s2lablst_syneq_exn_38 (arg0, arg1) ; tmp224 = ats_true_bool ; ATS_TRYWITH_WITH(tmp226) do { /* branch: __ats_lab_89 */ __ats_lab_89_0: if (tmp226 != &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) { ats_raise_exn (tmp226) ; } __ats_lab_89_1: tmp224 = ats_false_bool ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp224) ; } /* end of [s2lablst_syneq_36] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 19130(line=1068, offs=1) -- 19539(line=1090, offs=4) */ ATSstaticdec() ats_void_type s2lab_syneq_exn_37 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_bool_type, tmp230) ; ATSlocal (ats_bool_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; __ats_lab_s2lab_syneq_exn_37: do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_93_0 ; } __ats_lab_90_1: tmp228 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp229 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (tmp228, tmp229) ; tmp230 = atspre_neg_bool (tmp231) ; if (tmp230) { tmp232 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp227 = */ ats_raise_exn (tmp232) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: tmp233 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp227 = */ ats_raise_exn (tmp233) ; break ; } while (0) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp234 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp235 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp227 = */ ats_raise_exn (tmp235) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_95_1: tmp236 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn (tmp234, tmp236) ; break ; } while (0) ; break ; } while (0) ; return /* (tmp227) */ ; } /* end of [s2lab_syneq_exn_37] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 19573(line=1093, offs=1) -- 19968(line=1117, offs=4) */ ATSstaticdec() ats_void_type s2lablst_syneq_exn_38 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; // ATSlocal_void (tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab_s2lablst_syneq_exn_38: do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_98_1 ; } __ats_lab_96_2: tmp238 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp239 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp240 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp241 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp242 = */ s2lab_syneq_exn_37 (tmp238, tmp240) ; arg0 = tmp239 ; arg1 = tmp241 ; goto __ats_lab_s2lablst_syneq_exn_38 ; // tail call break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_98_0 ; } __ats_lab_97_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_98_1 ; } __ats_lab_97_2: break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: __ats_lab_98_1: __ats_lab_98_2: tmp243 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp237 = */ ats_raise_exn (tmp243) ; break ; } while (0) ; return /* (tmp237) */ ; } /* end of [s2lablst_syneq_exn_38] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 20005(line=1120, offs=1) -- 20569(line=1147, offs=4) */ ATSstaticdec() ats_void_type labs2explst_syneq_exn_39 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_bool_type, tmp253) ; // ATSlocal_void (tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab_labs2explst_syneq_exn_39: do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_100_0 ; } __ats_lab_99_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_101_1 ; } __ats_lab_99_2: tmp245 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp246 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp247 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp248 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp249 = ats_caselptrlab_mac(anairiats_sum_5, tmp245, atslab_0) ; tmp250 = ats_caselptrlab_mac(anairiats_sum_5, tmp245, atslab_2) ; tmp251 = ats_caselptrlab_mac(anairiats_sum_5, tmp247, atslab_0) ; tmp252 = ats_caselptrlab_mac(anairiats_sum_5, tmp247, atslab_2) ; tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (tmp249, tmp251) ; if (tmp253) { /* tmp254 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp250, tmp252) ; arg0 = tmp246 ; arg1 = tmp248 ; goto __ats_lab_labs2explst_syneq_exn_39 ; // tail call } else { tmp255 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp244 = */ ats_raise_exn (tmp255) ; } /* end of [if] */ break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_101_0 ; } __ats_lab_100_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_101_1 ; } __ats_lab_100_2: break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: __ats_lab_101_1: __ats_lab_101_2: tmp256 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp244 = */ ats_raise_exn (tmp256) ; break ; } while (0) ; return /* (tmp244) */ ; } /* end of [labs2explst_syneq_exn_39] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 20654(line=1153, offs=3) -- 26890(line=1417, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnf_syneq_exn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_bool_type, tmp262) ; ATSlocal (ats_int_type, tmp263) ; ATSlocal (ats_int_type, tmp264) ; ATSlocal (ats_bool_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_bool_type, tmp268) ; ATSlocal (ats_bool_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_int_type, tmp273) ; ATSlocal (ats_bool_type, tmp274) ; ATSlocal (ats_bool_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_bool_type, tmp278) ; ATSlocal (ats_bool_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_bool_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_bool_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_bool_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_bool_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_bool_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_bool_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_bool_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; // ATSlocal_void (tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; // ATSlocal_void (tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_int_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_int_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_int_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_int_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; // ATSlocal_void (tmp358) ; ATSlocal (ats_bool_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; // ATSlocal_void (tmp361) ; ATSlocal (ats_bool_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; ATSlocal (ats_bool_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; // ATSlocal_void (tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_int_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_int_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_bool_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; // ATSlocal_void (tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_int_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_int_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; // ATSlocal_void (tmp392) ; ATSlocal (ats_bool_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; // ATSlocal_void (tmp395) ; ATSlocal (ats_bool_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_int_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_int_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_bool_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnf_syneq_exn: tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg0) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp260 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp258), atslab_s2exp_node) ; tmp261 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp259), atslab_s2exp_node) ; do { /* branch: __ats_lab_102 */ __ats_lab_102_0: __ats_lab_102_1: tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__eqref_type (tmp258, tmp259) ; if (!tmp262) { goto __ats_lab_103_0 ; } break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp260)->tag != 0) { goto __ats_lab_107_0 ; } __ats_lab_103_1: tmp263 = ats_caselptrlab_mac(anairiats_sum_11, tmp260, atslab_0) ; do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp261)->tag != 0) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp264 = ats_caselptrlab_mac(anairiats_sum_11, tmp261, atslab_0) ; tmp265 = atspre_neq_int_int (tmp263, tmp264) ; if (tmp265) { tmp266 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp266) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp261)->tag != 1) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp267 = ats_caselptrlab_mac(anairiats_sum_2, tmp261, atslab_0) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_int_intinf (tmp263, tmp267) ; tmp268 = atspre_neg_bool (tmp269) ; if (tmp268) { tmp270 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp270) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: __ats_lab_106_1: tmp271 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp271) ; break ; } while (0) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp260)->tag != 1) { goto __ats_lab_111_0 ; } __ats_lab_107_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_2, tmp260, atslab_0) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp261)->tag != 0) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp273 = ats_caselptrlab_mac(anairiats_sum_11, tmp261, atslab_0) ; tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int (tmp272, tmp273) ; tmp274 = atspre_neg_bool (tmp275) ; if (tmp274) { tmp276 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp276) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp261)->tag != 1) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp277 = ats_caselptrlab_mac(anairiats_sum_2, tmp261, atslab_0) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf (tmp272, tmp277) ; tmp278 = atspre_neg_bool (tmp279) ; if (tmp278) { tmp280 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp280) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: __ats_lab_110_1: tmp281 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp281) ; break ; } while (0) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp260)->tag != 4) { goto __ats_lab_114_0 ; } __ats_lab_111_1: tmp282 = ats_caselptrlab_mac(anairiats_sum_2, tmp260, atslab_0) ; do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp261)->tag != 4) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp283 = ats_caselptrlab_mac(anairiats_sum_2, tmp261, atslab_0) ; tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst (tmp282, tmp283) ; if (tmp284) { tmp285 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp285) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: __ats_lab_113_1: tmp286 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp286) ; break ; } while (0) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp260)->tag != 5) { goto __ats_lab_117_0 ; } __ats_lab_114_1: tmp287 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_0) ; tmp288 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_1) ; do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp261)->tag != 5) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp289 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_0) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_1) ; tmp291 = atspre_eq_string_string (tmp287, tmp289) ; if (tmp291) { /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_syneq_exn (tmp288, tmp290) ; } else { tmp292 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp292) ; } /* end of [if] */ break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: __ats_lab_116_1: tmp293 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp293) ; break ; } while (0) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp260)->tag != 6) { goto __ats_lab_120_0 ; } __ats_lab_117_1: tmp294 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_0) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_1) ; do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp261)->tag != 6) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_0) ; tmp297 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_1) ; tmp298 = atspre_eq_string_string (tmp294, tmp296) ; if (tmp298) { /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explstlst_syneq_exn (tmp295, tmp297) ; } else { tmp299 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp299) ; } /* end of [if] */ break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: __ats_lab_119_1: tmp300 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp300) ; break ; } while (0) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp260)->tag != 7) { goto __ats_lab_123_0 ; } __ats_lab_120_1: tmp301 = ats_caselptrlab_mac(anairiats_sum_2, tmp260, atslab_0) ; do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp261)->tag != 7) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp302 = ats_caselptrlab_mac(anairiats_sum_2, tmp261, atslab_0) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2var_s2var (tmp301, tmp302) ; if (tmp303) { tmp304 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp304) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: __ats_lab_122_1: tmp305 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp305) ; break ; } while (0) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp260)->tag != 8) { goto __ats_lab_126_0 ; } __ats_lab_123_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_2, tmp260, atslab_0) ; do { /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp261)->tag != 8) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp307 = ats_caselptrlab_mac(anairiats_sum_2, tmp261, atslab_0) ; tmp308 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2Var_s2Var (tmp306, tmp307) ; if (tmp308) { tmp309 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp309) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: __ats_lab_125_1: tmp310 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp310) ; break ; } while (0) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp260)->tag != 10) { goto __ats_lab_129_0 ; } __ats_lab_126_1: tmp311 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_0) ; tmp312 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_1) ; do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp261)->tag != 10) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp313 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_0) ; tmp314 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_1) ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp311, tmp313) ; if (tmp315) { /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn (tmp312, tmp314) ; } else { tmp316 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp316) ; } /* end of [if] */ break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: __ats_lab_128_1: tmp317 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp317) ; break ; } while (0) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp260)->tag != 11) { goto __ats_lab_132_0 ; } __ats_lab_129_1: tmp318 = ats_caselptrlab_mac(anairiats_sum_9, tmp260, atslab_0) ; tmp319 = ats_caselptrlab_mac(anairiats_sum_9, tmp260, atslab_1) ; do { /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)tmp261)->tag != 11) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp320 = ats_caselptrlab_mac(anairiats_sum_9, tmp261, atslab_0) ; tmp321 = ats_caselptrlab_mac(anairiats_sum_9, tmp261, atslab_1) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp318, tmp320) ; if (tmp322) { /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp319, tmp321) ; } else { tmp323 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp323) ; } /* end of [if] */ break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: __ats_lab_131_1: tmp324 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp324) ; break ; } while (0) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp260)->tag != 13) { goto __ats_lab_135_0 ; } __ats_lab_132_1: tmp325 = ats_caselptrlab_mac(anairiats_sum_2, tmp260, atslab_0) ; do { /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp261)->tag != 13) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp326 = ats_caselptrlab_mac(anairiats_sum_2, tmp261, atslab_0) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp325, tmp326) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: __ats_lab_134_1: tmp327 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp327) ; break ; } while (0) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp260)->tag != 15) { goto __ats_lab_138_0 ; } __ats_lab_135_1: tmp328 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_0) ; tmp329 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_1) ; do { /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp261)->tag != 15) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp330 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_0) ; tmp331 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_1) ; /* tmp332 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp328, tmp330) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp329, tmp331) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: __ats_lab_137_1: tmp333 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp333) ; break ; } while (0) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp260)->tag != 16) { goto __ats_lab_141_0 ; } __ats_lab_138_1: tmp334 = ats_caselptrlab_mac(anairiats_sum_9, tmp260, atslab_0) ; tmp335 = ats_caselptrlab_mac(anairiats_sum_9, tmp260, atslab_2) ; do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp261)->tag != 16) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp336 = ats_caselptrlab_mac(anairiats_sum_9, tmp261, atslab_0) ; tmp337 = ats_caselptrlab_mac(anairiats_sum_9, tmp261, atslab_2) ; /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp334, tmp336) ; /* tmp257 = */ s2lablst_syneq_exn_38 (tmp335, tmp337) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: __ats_lab_140_1: tmp339 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp339) ; break ; } while (0) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp260)->tag != 17) { goto __ats_lab_144_0 ; } __ats_lab_141_1: tmp340 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_0) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_1) ; do { /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp261)->tag != 17) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp342 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_0) ; tmp343 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_1) ; /* tmp344 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp340, tmp342) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn (tmp341, tmp343) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: __ats_lab_143_1: tmp345 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp345) ; break ; } while (0) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp260)->tag != 19) { goto __ats_lab_147_0 ; } __ats_lab_144_1: tmp346 = ats_caselptrlab_mac(anairiats_sum_12, tmp260, atslab_0) ; tmp347 = ats_caselptrlab_mac(anairiats_sum_12, tmp260, atslab_1) ; tmp348 = ats_caselptrlab_mac(anairiats_sum_12, tmp260, atslab_2) ; tmp349 = ats_caselptrlab_mac(anairiats_sum_12, tmp260, atslab_3) ; tmp350 = ats_caselptrlab_mac(anairiats_sum_12, tmp260, atslab_4) ; tmp351 = ats_caselptrlab_mac(anairiats_sum_12, tmp260, atslab_5) ; do { /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp261)->tag != 19) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp352 = ats_caselptrlab_mac(anairiats_sum_12, tmp261, atslab_0) ; tmp353 = ats_caselptrlab_mac(anairiats_sum_12, tmp261, atslab_1) ; tmp354 = ats_caselptrlab_mac(anairiats_sum_12, tmp261, atslab_2) ; tmp355 = ats_caselptrlab_mac(anairiats_sum_12, tmp261, atslab_3) ; tmp356 = ats_caselptrlab_mac(anairiats_sum_12, tmp261, atslab_4) ; tmp357 = ats_caselptrlab_mac(anairiats_sum_12, tmp261, atslab_5) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__neq_funclo_funclo (tmp346, tmp352) ; if (tmp359) { tmp360 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp358 = */ ats_raise_exn (tmp360) ; } else { /* empty */ } /* end of [if] */ tmp362 = atspre_neq_int_int (tmp347, tmp353) ; if (tmp362) { tmp363 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp361 = */ ats_raise_exn (tmp363) ; } else { /* empty */ } /* end of [if] */ /* tmp364 = */ s2eff_syneq_exn_34 (tmp348, tmp354) ; tmp366 = atspre_neq_int_int (tmp349, tmp355) ; if (tmp366) { tmp367 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp365 = */ ats_raise_exn (tmp367) ; } else { /* empty */ } /* end of [if] */ /* tmp368 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn (tmp350, tmp356) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp351, tmp357) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: __ats_lab_146_1: tmp369 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp369) ; break ; } while (0) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp260)->tag != 22) { goto __ats_lab_150_0 ; } __ats_lab_147_1: tmp370 = ats_caselptrlab_mac(anairiats_sum_6, tmp260, atslab_0) ; tmp371 = ats_caselptrlab_mac(anairiats_sum_6, tmp260, atslab_1) ; do { /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp261)->tag != 22) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp372 = ats_caselptrlab_mac(anairiats_sum_6, tmp261, atslab_0) ; tmp373 = ats_caselptrlab_mac(anairiats_sum_6, tmp261, atslab_1) ; tmp374 = atspre_eq_int_int (tmp370, tmp372) ; if (tmp374) { /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp371, tmp373) ; } else { tmp375 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp375) ; } /* end of [if] */ break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: __ats_lab_149_1: tmp376 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp376) ; break ; } while (0) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp260)->tag != 23) { goto __ats_lab_153_0 ; } __ats_lab_150_1: tmp377 = ats_caselptrlab_mac(anairiats_sum_2, tmp260, atslab_0) ; do { /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)tmp261)->tag != 23) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp378 = ats_caselptrlab_mac(anairiats_sum_2, tmp261, atslab_0) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp377, tmp378) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: __ats_lab_152_1: tmp379 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp379) ; break ; } while (0) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp260)->tag != 24) { goto __ats_lab_156_0 ; } __ats_lab_153_1: tmp380 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_0) ; tmp381 = ats_caselptrlab_mac(anairiats_sum_7, tmp260, atslab_1) ; do { /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)tmp261)->tag != 24) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_0) ; tmp383 = ats_caselptrlab_mac(anairiats_sum_7, tmp261, atslab_1) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp380, tmp382) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2explst_syneq_exn (tmp381, tmp383) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: __ats_lab_155_1: tmp385 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp385) ; break ; } while (0) ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)tmp260)->tag != 25) { goto __ats_lab_159_0 ; } __ats_lab_156_1: tmp386 = ats_caselptrlab_mac(anairiats_sum_8, tmp260, atslab_0) ; tmp387 = ats_caselptrlab_mac(anairiats_sum_8, tmp260, atslab_1) ; tmp388 = ats_caselptrlab_mac(anairiats_sum_8, tmp260, atslab_2) ; do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)tmp261)->tag != 25) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp389 = ats_caselptrlab_mac(anairiats_sum_8, tmp261, atslab_0) ; tmp390 = ats_caselptrlab_mac(anairiats_sum_8, tmp261, atslab_1) ; tmp391 = ats_caselptrlab_mac(anairiats_sum_8, tmp261, atslab_2) ; tmp393 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (tmp386, tmp389) ; if (tmp393) { tmp394 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp392 = */ ats_raise_exn (tmp394) ; } else { /* empty */ } /* end of [if] */ tmp396 = atspre_neq_int_int (tmp387, tmp390) ; if (tmp396) { tmp397 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp395 = */ ats_raise_exn (tmp397) ; } else { /* empty */ } /* end of [if] */ /* tmp257 = */ labs2explst_syneq_exn_39 (tmp388, tmp391) ; break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: __ats_lab_158_1: tmp398 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp398) ; break ; } while (0) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: if (((ats_sum_ptr_type)tmp260)->tag != 26) { goto __ats_lab_162_0 ; } __ats_lab_159_1: tmp399 = ats_caselptrlab_mac(anairiats_sum_2, tmp260, atslab_0) ; do { /* branch: __ats_lab_160 */ __ats_lab_160_0: if (((ats_sum_ptr_type)tmp261)->tag != 26) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp400 = ats_caselptrlab_mac(anairiats_sum_2, tmp261, atslab_0) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp399, tmp400) ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: __ats_lab_161_1: tmp401 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp401) ; break ; } while (0) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: if (((ats_sum_ptr_type)tmp260)->tag != 29) { goto __ats_lab_165_0 ; } __ats_lab_162_1: tmp402 = ats_caselptrlab_mac(anairiats_sum_6, tmp260, atslab_0) ; tmp403 = ats_caselptrlab_mac(anairiats_sum_6, tmp260, atslab_1) ; do { /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)tmp261)->tag != 29) { goto __ats_lab_164_0 ; } __ats_lab_163_1: tmp404 = ats_caselptrlab_mac(anairiats_sum_6, tmp261, atslab_0) ; tmp405 = ats_caselptrlab_mac(anairiats_sum_6, tmp261, atslab_1) ; tmp406 = atspre_eq_int_int (tmp402, tmp404) ; if (tmp406) { /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp403, tmp405) ; } else { tmp407 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp407) ; } /* end of [if] */ break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: __ats_lab_164_1: tmp408 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp408) ; break ; } while (0) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)tmp260)->tag != 30) { goto __ats_lab_168_0 ; } __ats_lab_165_1: tmp409 = ats_caselptrlab_mac(anairiats_sum_2, tmp260, atslab_0) ; do { /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)tmp261)->tag != 30) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp410 = ats_caselptrlab_mac(anairiats_sum_2, tmp261, atslab_0) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2exp_syneq_exn (tmp409, tmp410) ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: __ats_lab_167_1: tmp411 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp411) ; break ; } while (0) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: __ats_lab_168_1: tmp412 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn) ; /* tmp257 = */ ats_raise_exn (tmp412) ; break ; } while (0) ; return /* (tmp257) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__s2hnf_syneq_exn] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 27239(line=1441, offs=1) -- 27590(line=1460, offs=2) */ ATSstaticdec() ats_bool_type aux0_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_bool_type, tmp416) ; __ats_lab_aux0_41: do { /* branch: __ats_lab_169 */ __ats_lab_169_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_170_0 ; } __ats_lab_169_1: tmp413 = aux1_0_42 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_170_1: tmp414 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp415 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp414, arg2) ; if (tmp416) { tmp413 = aux1_t_43 (tmp415, arg1, arg2, arg3) ; } else { tmp413 = aux1_f_44 (tmp415, arg1, arg2, arg3) ; } /* end of [if] */ break ; } while (0) ; return (tmp413) ; } /* end of [aux0_41] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 27616(line=1463, offs=1) -- 27955(line=1481, offs=2) */ ATSstaticdec() ats_bool_type aux1_0_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp417) ; ATSlocal (ats_bool_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_bool_type, tmp421) ; __ats_lab_aux1_0_42: do { /* branch: __ats_lab_171 */ __ats_lab_171_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_172_0 ; } __ats_lab_171_1: tmp418 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (arg2, arg3) ; if (tmp418) { tmp417 = ats_true_bool ; } else { tmp417 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_172 */ __ats_lab_172_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_172_1: tmp419 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp420 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp419, arg3) ; if (tmp421) { tmp417 = ats_false_bool ; } else { arg0 = arg0 ; arg1 = tmp420 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_aux1_0_42 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp417) ; } /* end of [aux1_0_42] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 27983(line=1484, offs=1) -- 28203(line=1497, offs=2) */ ATSstaticdec() ats_bool_type aux1_t_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_bool_type, tmp424) ; __ats_lab_aux1_t_43: do { /* branch: __ats_lab_173 */ __ats_lab_173_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_174_0 ; } __ats_lab_173_1: tmp422 = ats_false_bool ; break ; /* branch: __ats_lab_174 */ __ats_lab_174_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_174_1: tmp423 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp423, arg3) ; if (tmp424) { tmp422 = ats_true_bool ; } else { tmp422 = ats_false_bool ; } /* end of [if] */ break ; } while (0) ; return (tmp422) ; } /* end of [aux1_t_43] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 28231(line=1500, offs=1) -- 28512(line=1515, offs=2) */ ATSstaticdec() ats_bool_type aux1_f_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_bool_type, tmp428) ; __ats_lab_aux1_f_44: do { /* branch: __ats_lab_175 */ __ats_lab_175_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_176_0 ; } __ats_lab_175_1: tmp425 = aux2_0_45 (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_176_1: tmp426 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp427 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp426, arg3) ; if (tmp428) { tmp425 = ats_false_bool ; } else { tmp425 = aux0_41 (arg0, tmp427, arg2, arg3) ; } /* end of [if] */ break ; } while (0) ; return (tmp425) ; } /* end of [aux1_f_44] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 28540(line=1518, offs=1) -- 28884(line=1537, offs=2) */ ATSstaticdec() ats_bool_type aux2_0_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp429) ; ATSlocal (ats_bool_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_bool_type, tmp433) ; __ats_lab_aux2_0_45: do { /* branch: __ats_lab_177 */ __ats_lab_177_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_178_0 ; } __ats_lab_177_1: tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (arg2, arg3) ; if (tmp430) { tmp429 = ats_true_bool ; } else { tmp429 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_178_1: tmp431 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp432 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp433 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (tmp431, arg2) ; if (tmp433) { tmp429 = ats_false_bool ; } else { arg0 = tmp432 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_aux2_0_45 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp429) ; } /* end of [aux2_0_45] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 28956(line=1543, offs=1) -- 29103(line=1552, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2var_syneq_env (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp434) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2var_syneq_env: tmp434 = aux0_41 (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1), arg2, arg3) ; return (tmp434) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2var_syneq_env] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_50 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; __ats_lab_loop_50: do { /* branch: __ats_lab_179 */ __ats_lab_179_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_180_0 ; } __ats_lab_179_1: tmp440 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp441 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp442 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp442, atslab_0, tmp440) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp442 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp443 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp441 ; arg1 = tmp443 ; goto __ats_lab_loop_50 ; // tail call break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_180_1: tmp444 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp444 ; break ; } while (0) ; return /* (tmp439) */ ; } /* end of [loop_50] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp445) ; // ATSlocal_void (tmp446) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp445 ; */ /* tmp446 = */ loop_50 (arg0, (&tmp445)) ; tmp438 = tmp445 ; return (tmp438) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4725(line=167, offs=18) -- 4776(line=168, offs=44) */ ATSstaticdec() ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp437) ; __ats_lab_list_vt_copy_01498_ats_ptr_type: tmp437 = list_copy_01322_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp437) ; } /* end of [list_vt_copy_01498_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61997(line=2223, offs=7) -- 62162(line=2225, offs=74) */ ATSstaticdec() ats_ptr_type loop_52 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; __ats_lab_loop_52: do { /* branch: __ats_lab_181 */ __ats_lab_181_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_182_0 ; } __ats_lab_181_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp450 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp451 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp451, atslab_0, tmp449) ; ats_selptrset_mac(anairiats_sum_4, tmp451, atslab_1, arg1) ; arg0 = tmp450 ; arg1 = tmp451 ; goto __ats_lab_loop_52 ; // tail call break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_182_1: tmp448 = arg1 ; break ; } while (0) ; return (tmp448) ; } /* end of [loop_52] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 61976(line=2222, offs=25) -- 62297(line=2231, offs=4) */ ATSstaticdec() ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp447) ; __ats_lab_list_reverse_append2_vt_01435_ats_ptr_type: tmp447 = loop_52 (arg0, arg1) ; return (tmp447) ; } /* end of [list_reverse_append2_vt_01435_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 29188(line=1561, offs=1) -- 29337(line=1568, offs=4) */ ATSstaticdec() ats_ptr_type auxenv_47 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; __ats_lab_auxenv_47: tmp436 = list_vt_copy_01498_ats_ptr_type (arg0) ; tmp435 = list_reverse_append2_vt_01435_ats_ptr_type (arg1, tmp436) ; return (tmp435) ; } /* end of [auxenv_47] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_55 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; __ats_lab_loop_55: do { /* branch: __ats_lab_223 */ __ats_lab_223_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_224_0 ; } __ats_lab_223_1: tmp520 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp520 ; goto __ats_lab_loop_55 ; // tail call break ; /* branch: __ats_lab_224 */ __ats_lab_224_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_224_1: break ; } while (0) ; return /* (tmp519) */ ; } /* end of [loop_55] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp518) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp518 = */ loop_55 (arg0) ; return /* (tmp518) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 29406(line=1574, offs=1) -- 37257(line=1904, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq_env (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_int_type, tmp457) ; ATSlocal (ats_int_type, tmp458) ; ATSlocal (ats_bool_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_bool_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_int_type, tmp463) ; ATSlocal (ats_bool_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_bool_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_bool_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_bool_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_bool_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_bool_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_bool_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_bool_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_bool_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_bool_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_bool_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_bool_type, tmp516) ; // ATSlocal_void (tmp517) ; // ATSlocal_void (tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_int_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_int_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_int_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_int_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_bool_type, tmp534) ; ATSlocal (ats_bool_type, tmp535) ; ATSlocal (ats_bool_type, tmp536) ; ATSlocal (ats_bool_type, tmp537) ; ATSlocal (ats_bool_type, tmp538) ; ATSlocal (ats_bool_type, tmp539) ; ATSlocal (ats_int_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_int_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_bool_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_bool_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_int_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; ATSlocal (ats_int_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_bool_type, tmp558) ; ATSlocal (ats_bool_type, tmp559) ; ATSlocal (ats_bool_type, tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; ATSlocal (ats_bool_type, tmp571) ; ATSlocal (ats_bool_type, tmp572) ; // ATSlocal_void (tmp573) ; // ATSlocal_void (tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_bool_type, tmp583) ; ATSlocal (ats_bool_type, tmp584) ; // ATSlocal_void (tmp585) ; // ATSlocal_void (tmp586) ; ATSlocal (ats_int_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; ATSlocal (ats_int_type, tmp589) ; ATSlocal (ats_ptr_type, tmp590) ; ATSlocal (ats_bool_type, tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq_env: tmp453 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg3) ; tmp455 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp453), atslab_s2exp_node) ; tmp456 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp454), atslab_s2exp_node) ; do { /* branch: __ats_lab_183 */ __ats_lab_183_0: if (((ats_sum_ptr_type)tmp455)->tag != 0) { goto __ats_lab_187_0 ; } __ats_lab_183_1: tmp457 = ats_caselptrlab_mac(anairiats_sum_11, tmp455, atslab_0) ; do { /* branch: __ats_lab_184 */ __ats_lab_184_0: if (((ats_sum_ptr_type)tmp456)->tag != 0) { goto __ats_lab_185_0 ; } __ats_lab_184_1: tmp458 = ats_caselptrlab_mac(anairiats_sum_11, tmp456, atslab_0) ; tmp459 = atspre_eq_int_int (tmp457, tmp458) ; if (tmp459) { tmp452 = ats_true_bool ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: if (((ats_sum_ptr_type)tmp456)->tag != 1) { goto __ats_lab_186_0 ; } __ats_lab_185_1: tmp460 = ats_caselptrlab_mac(anairiats_sum_2, tmp456, atslab_0) ; tmp461 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_int_intinf (tmp457, tmp460) ; if (tmp461) { tmp452 = ats_true_bool ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_186 */ __ats_lab_186_0: __ats_lab_186_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: if (((ats_sum_ptr_type)tmp455)->tag != 1) { goto __ats_lab_191_0 ; } __ats_lab_187_1: tmp462 = ats_caselptrlab_mac(anairiats_sum_2, tmp455, atslab_0) ; do { /* branch: __ats_lab_188 */ __ats_lab_188_0: if (((ats_sum_ptr_type)tmp456)->tag != 0) { goto __ats_lab_189_0 ; } __ats_lab_188_1: tmp463 = ats_caselptrlab_mac(anairiats_sum_11, tmp456, atslab_0) ; tmp464 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int (tmp462, tmp463) ; if (tmp464) { tmp452 = ats_true_bool ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_189 */ __ats_lab_189_0: if (((ats_sum_ptr_type)tmp456)->tag != 1) { goto __ats_lab_190_0 ; } __ats_lab_189_1: tmp465 = ats_caselptrlab_mac(anairiats_sum_2, tmp456, atslab_0) ; tmp466 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf (tmp462, tmp465) ; if (tmp466) { tmp452 = ats_true_bool ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_190 */ __ats_lab_190_0: __ats_lab_190_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_191 */ __ats_lab_191_0: if (((ats_sum_ptr_type)tmp455)->tag != 4) { goto __ats_lab_194_0 ; } __ats_lab_191_1: tmp467 = ats_caselptrlab_mac(anairiats_sum_2, tmp455, atslab_0) ; do { /* branch: __ats_lab_192 */ __ats_lab_192_0: if (((ats_sum_ptr_type)tmp456)->tag != 4) { goto __ats_lab_193_0 ; } __ats_lab_192_1: tmp468 = ats_caselptrlab_mac(anairiats_sum_2, tmp456, atslab_0) ; tmp469 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (tmp467, tmp468) ; if (tmp469) { tmp452 = ats_true_bool ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_193 */ __ats_lab_193_0: __ats_lab_193_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_194 */ __ats_lab_194_0: if (((ats_sum_ptr_type)tmp455)->tag != 5) { goto __ats_lab_197_0 ; } __ats_lab_194_1: tmp470 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_0) ; tmp471 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_1) ; do { /* branch: __ats_lab_195 */ __ats_lab_195_0: if (((ats_sum_ptr_type)tmp456)->tag != 5) { goto __ats_lab_196_0 ; } __ats_lab_195_1: tmp472 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_0) ; tmp473 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_1) ; tmp474 = atspre_eq_string_string (tmp470, tmp472) ; if (tmp474) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_syneq_env (arg0, arg1, tmp471, tmp473) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_196 */ __ats_lab_196_0: __ats_lab_196_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_197 */ __ats_lab_197_0: if (((ats_sum_ptr_type)tmp455)->tag != 6) { goto __ats_lab_200_0 ; } __ats_lab_197_1: tmp475 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_0) ; tmp476 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_1) ; do { /* branch: __ats_lab_198 */ __ats_lab_198_0: if (((ats_sum_ptr_type)tmp456)->tag != 6) { goto __ats_lab_199_0 ; } __ats_lab_198_1: tmp477 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_0) ; tmp478 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_1) ; tmp479 = atspre_eq_string_string (tmp475, tmp477) ; if (tmp479) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_syneq_env (arg0, arg1, tmp476, tmp478) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_199 */ __ats_lab_199_0: __ats_lab_199_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_200 */ __ats_lab_200_0: if (((ats_sum_ptr_type)tmp455)->tag != 7) { goto __ats_lab_203_0 ; } __ats_lab_200_1: tmp480 = ats_caselptrlab_mac(anairiats_sum_2, tmp455, atslab_0) ; do { /* branch: __ats_lab_201 */ __ats_lab_201_0: if (((ats_sum_ptr_type)tmp456)->tag != 7) { goto __ats_lab_202_0 ; } __ats_lab_201_1: tmp481 = ats_caselptrlab_mac(anairiats_sum_2, tmp456, atslab_0) ; tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2var_syneq_env (arg0, arg1, tmp480, tmp481) ; break ; /* branch: __ats_lab_202 */ __ats_lab_202_0: __ats_lab_202_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_203 */ __ats_lab_203_0: if (((ats_sum_ptr_type)tmp455)->tag != 8) { goto __ats_lab_206_0 ; } __ats_lab_203_1: tmp482 = ats_caselptrlab_mac(anairiats_sum_2, tmp455, atslab_0) ; do { /* branch: __ats_lab_204 */ __ats_lab_204_0: if (((ats_sum_ptr_type)tmp456)->tag != 8) { goto __ats_lab_205_0 ; } __ats_lab_204_1: tmp483 = ats_caselptrlab_mac(anairiats_sum_2, tmp456, atslab_0) ; tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var (tmp482, tmp483) ; if (tmp484) { tmp452 = ats_true_bool ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_205 */ __ats_lab_205_0: __ats_lab_205_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_206 */ __ats_lab_206_0: if (((ats_sum_ptr_type)tmp455)->tag != 10) { goto __ats_lab_209_0 ; } __ats_lab_206_1: tmp485 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_0) ; tmp486 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_1) ; do { /* branch: __ats_lab_207 */ __ats_lab_207_0: if (((ats_sum_ptr_type)tmp456)->tag != 10) { goto __ats_lab_208_0 ; } __ats_lab_207_1: tmp487 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_0) ; tmp488 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_1) ; tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp485, tmp487) ; if (tmp489) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (arg0, arg1, tmp486, tmp488) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_208 */ __ats_lab_208_0: __ats_lab_208_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_209 */ __ats_lab_209_0: if (((ats_sum_ptr_type)tmp455)->tag != 11) { goto __ats_lab_212_0 ; } __ats_lab_209_1: tmp490 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_0) ; tmp491 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_1) ; do { /* branch: __ats_lab_210 */ __ats_lab_210_0: if (((ats_sum_ptr_type)tmp456)->tag != 11) { goto __ats_lab_211_0 ; } __ats_lab_210_1: tmp492 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_0) ; tmp493 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_1) ; tmp494 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp490, tmp492) ; if (tmp494) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp491, tmp493) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_211 */ __ats_lab_211_0: __ats_lab_211_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_212 */ __ats_lab_212_0: if (((ats_sum_ptr_type)tmp455)->tag != 15) { goto __ats_lab_215_0 ; } __ats_lab_212_1: tmp495 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_0) ; tmp496 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_1) ; do { /* branch: __ats_lab_213 */ __ats_lab_213_0: if (((ats_sum_ptr_type)tmp456)->tag != 15) { goto __ats_lab_214_0 ; } __ats_lab_213_1: tmp497 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_0) ; tmp498 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_1) ; tmp499 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp495, tmp497) ; if (tmp499) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp496, tmp498) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_214 */ __ats_lab_214_0: __ats_lab_214_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_215 */ __ats_lab_215_0: if (((ats_sum_ptr_type)tmp455)->tag != 16) { goto __ats_lab_218_0 ; } __ats_lab_215_1: tmp500 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_0) ; tmp501 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_2) ; do { /* branch: __ats_lab_216 */ __ats_lab_216_0: if (((ats_sum_ptr_type)tmp456)->tag != 16) { goto __ats_lab_217_0 ; } __ats_lab_216_1: tmp502 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_0) ; tmp503 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_2) ; tmp504 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp500, tmp502) ; if (tmp504) { tmp452 = s2lablst_syneq_36 (tmp501, tmp503) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_217 */ __ats_lab_217_0: __ats_lab_217_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_218 */ __ats_lab_218_0: if (((ats_sum_ptr_type)tmp455)->tag != 17) { goto __ats_lab_221_0 ; } __ats_lab_218_1: tmp505 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_0) ; tmp506 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_1) ; do { /* branch: __ats_lab_219 */ __ats_lab_219_0: if (((ats_sum_ptr_type)tmp456)->tag != 17) { goto __ats_lab_220_0 ; } __ats_lab_219_1: tmp507 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_0) ; tmp508 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_1) ; tmp509 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp505, tmp507) ; if (tmp509) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (arg0, arg1, tmp506, tmp508) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_220 */ __ats_lab_220_0: __ats_lab_220_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_221 */ __ats_lab_221_0: if (((ats_sum_ptr_type)tmp455)->tag != 18) { goto __ats_lab_226_0 ; } __ats_lab_221_1: tmp510 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_0) ; tmp511 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_1) ; do { /* branch: __ats_lab_222 */ __ats_lab_222_0: if (((ats_sum_ptr_type)tmp456)->tag != 18) { goto __ats_lab_225_0 ; } __ats_lab_222_1: tmp512 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_0) ; tmp513 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_1) ; tmp514 = auxenv_47 (arg0, tmp510) ; tmp515 = auxenv_47 (arg1, tmp512) ; tmp516 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (tmp514, tmp515, tmp511, tmp513) ; /* tmp517 = */ list_vt_free_01499_ats_ptr_type (tmp514) ; /* tmp521 = */ list_vt_free_01499_ats_ptr_type (tmp515) ; tmp452 = tmp516 ; break ; /* branch: __ats_lab_225 */ __ats_lab_225_0: __ats_lab_225_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_226 */ __ats_lab_226_0: if (((ats_sum_ptr_type)tmp455)->tag != 19) { goto __ats_lab_229_0 ; } __ats_lab_226_1: tmp522 = ats_caselptrlab_mac(anairiats_sum_12, tmp455, atslab_0) ; tmp523 = ats_caselptrlab_mac(anairiats_sum_12, tmp455, atslab_1) ; tmp524 = ats_caselptrlab_mac(anairiats_sum_12, tmp455, atslab_2) ; tmp525 = ats_caselptrlab_mac(anairiats_sum_12, tmp455, atslab_3) ; tmp526 = ats_caselptrlab_mac(anairiats_sum_12, tmp455, atslab_4) ; tmp527 = ats_caselptrlab_mac(anairiats_sum_12, tmp455, atslab_5) ; do { /* branch: __ats_lab_227 */ __ats_lab_227_0: if (((ats_sum_ptr_type)tmp456)->tag != 19) { goto __ats_lab_228_0 ; } __ats_lab_227_1: tmp528 = ats_caselptrlab_mac(anairiats_sum_12, tmp456, atslab_0) ; tmp529 = ats_caselptrlab_mac(anairiats_sum_12, tmp456, atslab_1) ; tmp530 = ats_caselptrlab_mac(anairiats_sum_12, tmp456, atslab_2) ; tmp531 = ats_caselptrlab_mac(anairiats_sum_12, tmp456, atslab_3) ; tmp532 = ats_caselptrlab_mac(anairiats_sum_12, tmp456, atslab_4) ; tmp533 = ats_caselptrlab_mac(anairiats_sum_12, tmp456, atslab_5) ; tmp535 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__eq_funclo_funclo (tmp522, tmp528) ; if (tmp535) { tmp534 = ats_true_bool ; } else { tmp534 = ats_false_bool ; } /* end of [if] */ if (tmp534) { tmp536 = atspre_eq_int_int (tmp523, tmp529) ; } else { tmp536 = ats_false_bool ; } /* end of [if] */ if (tmp536) { tmp537 = s2eff_syneq_33 (tmp524, tmp530) ; } else { tmp537 = ats_false_bool ; } /* end of [if] */ if (tmp537) { tmp538 = atspre_eq_int_int (tmp525, tmp531) ; } else { tmp538 = ats_false_bool ; } /* end of [if] */ if (tmp538) { tmp539 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (arg0, arg1, tmp526, tmp532) ; } else { tmp539 = ats_false_bool ; } /* end of [if] */ if (tmp539) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp527, tmp533) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_228 */ __ats_lab_228_0: __ats_lab_228_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_229 */ __ats_lab_229_0: if (((ats_sum_ptr_type)tmp455)->tag != 22) { goto __ats_lab_232_0 ; } __ats_lab_229_1: tmp540 = ats_caselptrlab_mac(anairiats_sum_6, tmp455, atslab_0) ; tmp541 = ats_caselptrlab_mac(anairiats_sum_6, tmp455, atslab_1) ; do { /* branch: __ats_lab_230 */ __ats_lab_230_0: if (((ats_sum_ptr_type)tmp456)->tag != 22) { goto __ats_lab_231_0 ; } __ats_lab_230_1: tmp542 = ats_caselptrlab_mac(anairiats_sum_6, tmp456, atslab_0) ; tmp543 = ats_caselptrlab_mac(anairiats_sum_6, tmp456, atslab_1) ; tmp544 = atspre_eq_int_int (tmp540, tmp542) ; if (tmp544) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp541, tmp543) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_231 */ __ats_lab_231_0: __ats_lab_231_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_232 */ __ats_lab_232_0: if (((ats_sum_ptr_type)tmp455)->tag != 23) { goto __ats_lab_235_0 ; } __ats_lab_232_1: tmp545 = ats_caselptrlab_mac(anairiats_sum_2, tmp455, atslab_0) ; do { /* branch: __ats_lab_233 */ __ats_lab_233_0: if (((ats_sum_ptr_type)tmp456)->tag != 23) { goto __ats_lab_234_0 ; } __ats_lab_233_1: tmp546 = ats_caselptrlab_mac(anairiats_sum_2, tmp456, atslab_0) ; tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp545, tmp546) ; break ; /* branch: __ats_lab_234 */ __ats_lab_234_0: __ats_lab_234_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_235 */ __ats_lab_235_0: if (((ats_sum_ptr_type)tmp455)->tag != 24) { goto __ats_lab_238_0 ; } __ats_lab_235_1: tmp547 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_0) ; tmp548 = ats_caselptrlab_mac(anairiats_sum_7, tmp455, atslab_1) ; do { /* branch: __ats_lab_236 */ __ats_lab_236_0: if (((ats_sum_ptr_type)tmp456)->tag != 24) { goto __ats_lab_237_0 ; } __ats_lab_236_1: tmp549 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_0) ; tmp550 = ats_caselptrlab_mac(anairiats_sum_7, tmp456, atslab_1) ; tmp551 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp547, tmp549) ; if (tmp551) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (arg0, arg1, tmp548, tmp550) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_237 */ __ats_lab_237_0: __ats_lab_237_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_238 */ __ats_lab_238_0: if (((ats_sum_ptr_type)tmp455)->tag != 25) { goto __ats_lab_241_0 ; } __ats_lab_238_1: tmp552 = ats_caselptrlab_mac(anairiats_sum_8, tmp455, atslab_0) ; tmp553 = ats_caselptrlab_mac(anairiats_sum_8, tmp455, atslab_1) ; tmp554 = ats_caselptrlab_mac(anairiats_sum_8, tmp455, atslab_2) ; do { /* branch: __ats_lab_239 */ __ats_lab_239_0: if (((ats_sum_ptr_type)tmp456)->tag != 25) { goto __ats_lab_240_0 ; } __ats_lab_239_1: tmp555 = ats_caselptrlab_mac(anairiats_sum_8, tmp456, atslab_0) ; tmp556 = ats_caselptrlab_mac(anairiats_sum_8, tmp456, atslab_1) ; tmp557 = ats_caselptrlab_mac(anairiats_sum_8, tmp456, atslab_2) ; tmp559 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (tmp552, tmp555) ; if (tmp559) { tmp558 = ats_true_bool ; } else { tmp558 = ats_false_bool ; } /* end of [if] */ if (tmp558) { tmp560 = atspre_eq_int_int (tmp553, tmp556) ; } else { tmp560 = ats_false_bool ; } /* end of [if] */ if (tmp560) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_syneq_env (arg0, arg1, tmp554, tmp557) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_240 */ __ats_lab_240_0: __ats_lab_240_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_241 */ __ats_lab_241_0: if (((ats_sum_ptr_type)tmp455)->tag != 26) { goto __ats_lab_244_0 ; } __ats_lab_241_1: tmp561 = ats_caselptrlab_mac(anairiats_sum_2, tmp455, atslab_0) ; do { /* branch: __ats_lab_242 */ __ats_lab_242_0: if (((ats_sum_ptr_type)tmp456)->tag != 26) { goto __ats_lab_243_0 ; } __ats_lab_242_1: tmp562 = ats_caselptrlab_mac(anairiats_sum_2, tmp456, atslab_0) ; tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp561, tmp562) ; break ; /* branch: __ats_lab_243 */ __ats_lab_243_0: __ats_lab_243_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_244 */ __ats_lab_244_0: if (((ats_sum_ptr_type)tmp455)->tag != 27) { goto __ats_lab_247_0 ; } __ats_lab_244_1: tmp563 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_0) ; tmp564 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_1) ; tmp565 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_2) ; do { /* branch: __ats_lab_245 */ __ats_lab_245_0: if (((ats_sum_ptr_type)tmp456)->tag != 27) { goto __ats_lab_246_0 ; } __ats_lab_245_1: tmp566 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_0) ; tmp567 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_1) ; tmp568 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_2) ; tmp569 = auxenv_47 (arg0, tmp563) ; tmp570 = auxenv_47 (arg1, tmp566) ; tmp571 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (tmp569, tmp570, tmp564, tmp567) ; if (tmp571) { tmp572 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (tmp569, tmp570, tmp565, tmp568) ; } else { tmp572 = ats_false_bool ; } /* end of [if] */ /* tmp573 = */ list_vt_free_01499_ats_ptr_type (tmp569) ; /* tmp574 = */ list_vt_free_01499_ats_ptr_type (tmp570) ; tmp452 = tmp572 ; break ; /* branch: __ats_lab_246 */ __ats_lab_246_0: __ats_lab_246_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_247 */ __ats_lab_247_0: if (((ats_sum_ptr_type)tmp455)->tag != 28) { goto __ats_lab_250_0 ; } __ats_lab_247_1: tmp575 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_0) ; tmp576 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_1) ; tmp577 = ats_caselptrlab_mac(anairiats_sum_9, tmp455, atslab_2) ; do { /* branch: __ats_lab_248 */ __ats_lab_248_0: if (((ats_sum_ptr_type)tmp456)->tag != 28) { goto __ats_lab_249_0 ; } __ats_lab_248_1: tmp578 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_0) ; tmp579 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_1) ; tmp580 = ats_caselptrlab_mac(anairiats_sum_9, tmp456, atslab_2) ; tmp581 = auxenv_47 (arg0, tmp575) ; tmp582 = auxenv_47 (arg1, tmp578) ; tmp583 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (tmp581, tmp582, tmp576, tmp579) ; if (tmp583) { tmp584 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (tmp581, tmp582, tmp577, tmp580) ; } else { tmp584 = ats_false_bool ; } /* end of [if] */ /* tmp585 = */ list_vt_free_01499_ats_ptr_type (tmp581) ; /* tmp586 = */ list_vt_free_01499_ats_ptr_type (tmp582) ; tmp452 = tmp584 ; break ; /* branch: __ats_lab_249 */ __ats_lab_249_0: __ats_lab_249_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_250 */ __ats_lab_250_0: if (((ats_sum_ptr_type)tmp455)->tag != 29) { goto __ats_lab_253_0 ; } __ats_lab_250_1: tmp587 = ats_caselptrlab_mac(anairiats_sum_6, tmp455, atslab_0) ; tmp588 = ats_caselptrlab_mac(anairiats_sum_6, tmp455, atslab_1) ; do { /* branch: __ats_lab_251 */ __ats_lab_251_0: if (((ats_sum_ptr_type)tmp456)->tag != 29) { goto __ats_lab_252_0 ; } __ats_lab_251_1: tmp589 = ats_caselptrlab_mac(anairiats_sum_6, tmp456, atslab_0) ; tmp590 = ats_caselptrlab_mac(anairiats_sum_6, tmp456, atslab_1) ; tmp591 = atspre_eq_int_int (tmp587, tmp589) ; if (tmp591) { tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp588, tmp590) ; } else { tmp452 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_252 */ __ats_lab_252_0: __ats_lab_252_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_253 */ __ats_lab_253_0: if (((ats_sum_ptr_type)tmp455)->tag != 30) { goto __ats_lab_256_0 ; } __ats_lab_253_1: tmp592 = ats_caselptrlab_mac(anairiats_sum_2, tmp455, atslab_0) ; do { /* branch: __ats_lab_254 */ __ats_lab_254_0: if (((ats_sum_ptr_type)tmp456)->tag != 30) { goto __ats_lab_255_0 ; } __ats_lab_254_1: tmp593 = ats_caselptrlab_mac(anairiats_sum_2, tmp456, atslab_0) ; tmp452 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp592, tmp593) ; break ; /* branch: __ats_lab_255 */ __ats_lab_255_0: __ats_lab_255_1: tmp452 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_256 */ __ats_lab_256_0: __ats_lab_256_1: tmp452 = ats_false_bool ; break ; } while (0) ; return (tmp452) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq_env] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 37359(line=1912, offs=3) -- 37508(line=1919, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env: tmp595 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg2) ; tmp596 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg3) ; tmp594 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq_env (arg0, arg1, tmp595, tmp596) ; return (tmp594) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 37590(line=1925, offs=3) -- 38062(line=1948, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_bool_type, tmp602) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env: do { /* branch: __ats_lab_257 */ __ats_lab_257_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_260_0 ; } __ats_lab_257_1: do { /* branch: __ats_lab_258 */ __ats_lab_258_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_259_0 ; } __ats_lab_258_1: tmp597 = ats_true_bool ; break ; /* branch: __ats_lab_259 */ __ats_lab_259_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_259_1: tmp597 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_260 */ __ats_lab_260_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_260_1: tmp598 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp599 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; do { /* branch: __ats_lab_261 */ __ats_lab_261_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_262_0 ; } __ats_lab_261_1: tmp597 = ats_false_bool ; break ; /* branch: __ats_lab_262 */ __ats_lab_262_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_262_1: tmp600 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp601 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ; tmp602 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp598, tmp600) ; if (tmp602) { arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp599 ; arg3 = tmp601 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env ; // tail call } else { tmp597 = ats_false_bool ; } /* end of [if] */ break ; } while (0) ; break ; } while (0) ; return (tmp597) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 38183(line=1956, offs=3) -- 38674(line=1979, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_syneq_env (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_bool_type, tmp608) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_syneq_env: do { /* branch: __ats_lab_263 */ __ats_lab_263_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_266_0 ; } __ats_lab_263_1: do { /* branch: __ats_lab_264 */ __ats_lab_264_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_265_0 ; } __ats_lab_264_1: tmp603 = ats_true_bool ; break ; /* branch: __ats_lab_265 */ __ats_lab_265_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_265_1: tmp603 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_266 */ __ats_lab_266_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_266_1: tmp604 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp605 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; do { /* branch: __ats_lab_267 */ __ats_lab_267_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_268_0 ; } __ats_lab_267_1: tmp603 = ats_false_bool ; break ; /* branch: __ats_lab_268 */ __ats_lab_268_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_268_1: tmp606 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp607 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ; tmp608 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (arg0, arg1, tmp604, tmp606) ; if (tmp608) { arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp605 ; arg3 = tmp607 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_syneq_env ; // tail call } else { tmp603 = ats_false_bool ; } /* end of [if] */ break ; } while (0) ; break ; } while (0) ; return (tmp603) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_syneq_env] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 38796(line=1987, offs=1) -- 39383(line=2014, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_syneq_env (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; ATSlocal (ats_ptr_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; ATSlocal (ats_ptr_type, tmp617) ; ATSlocal (ats_bool_type, tmp618) ; ATSlocal (ats_bool_type, tmp619) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_syneq_env: do { /* branch: __ats_lab_269 */ __ats_lab_269_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_270_0 ; } __ats_lab_269_1: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_271_1 ; } __ats_lab_269_2: tmp610 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp611 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; tmp612 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp613 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ; tmp614 = ats_caselptrlab_mac(anairiats_sum_5, tmp610, atslab_0) ; tmp615 = ats_caselptrlab_mac(anairiats_sum_5, tmp610, atslab_2) ; tmp616 = ats_caselptrlab_mac(anairiats_sum_5, tmp612, atslab_0) ; tmp617 = ats_caselptrlab_mac(anairiats_sum_5, tmp612, atslab_2) ; tmp618 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (tmp614, tmp616) ; if (tmp618) { tmp619 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (arg0, arg1, tmp615, tmp617) ; if (tmp619) { arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp611 ; arg3 = tmp613 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_syneq_env ; // tail call } else { tmp609 = ats_false_bool ; } /* end of [if] */ } else { tmp609 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_270 */ __ats_lab_270_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_271_0 ; } __ats_lab_270_1: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_271_1 ; } __ats_lab_270_2: tmp609 = ats_true_bool ; break ; /* branch: __ats_lab_271 */ __ats_lab_271_0: __ats_lab_271_1: __ats_lab_271_2: tmp609 = ats_false_bool ; break ; } while (0) ; return (tmp609) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__labs2explst_syneq_env] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 39467(line=2020, offs=3) -- 39667(line=2027, offs=2) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp620) ; ATSlocal (ats_ptr_type, tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; ATSlocal (ats_bool_type, tmp623) ; // ATSlocal_void (tmp624) ; // ATSlocal_void (tmp625) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq2: tmp621 = (ats_sum_ptr_type)0 ; tmp622 = (ats_sum_ptr_type)0 ; tmp623 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq_env (tmp621, tmp622, arg0, arg1) ; /* tmp624 = */ list_vt_free_01499_ats_ptr_type (tmp621) ; /* tmp625 = */ list_vt_free_01499_ats_ptr_type (tmp622) ; tmp620 = tmp623 ; return (tmp620) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf_syneq2] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 39724(line=2031, offs=3) -- 39942(line=2039, offs=2) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_bool_type, tmp629) ; // ATSlocal_void (tmp630) ; // ATSlocal_void (tmp631) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq2: tmp627 = (ats_sum_ptr_type)0 ; tmp628 = (ats_sum_ptr_type)0 ; tmp629 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq_env (tmp627, tmp628, arg0, arg1) ; /* tmp630 = */ list_vt_free_01499_ats_ptr_type (tmp627) ; /* tmp631 = */ list_vt_free_01499_ats_ptr_type (tmp628) ; tmp626 = tmp629 ; return (tmp626) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq2] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 40002(line=2043, offs=3) -- 40227(line=2051, offs=2) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; ATSlocal (ats_ptr_type, tmp634) ; ATSlocal (ats_bool_type, tmp635) ; // ATSlocal_void (tmp636) ; // ATSlocal_void (tmp637) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq2: tmp633 = (ats_sum_ptr_type)0 ; tmp634 = (ats_sum_ptr_type)0 ; tmp635 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq_env (tmp633, tmp634, arg0, arg1) ; /* tmp636 = */ list_vt_free_01499_ats_ptr_type (tmp633) ; /* tmp637 = */ list_vt_free_01499_ats_ptr_type (tmp634) ; tmp632 = tmp635 ; return (tmp632) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_syneq2] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 40294(line=2058, offs=1) -- 41698(line=2130, offs=4) */ ATSstaticdec() ats_ptr_type s2exp_prenexize_63 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp638) ; ATSlocal (ats_ptr_type, tmp639) ; ATSlocal (ats_ptr_type, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; ATSlocal (ats_ptr_type, tmp642) ; ATSlocal (ats_ptr_type, tmp643) ; ATSlocal (ats_bool_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; ATSlocal (ats_ptr_type, tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; ATSlocal (ats_bool_type, tmp648) ; ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_int_type, tmp651) ; ATSlocal (ats_ptr_type, tmp652) ; ATSlocal (ats_bool_type, tmp653) ; ATSlocal (ats_bool_type, tmp654) ; __ats_lab_s2exp_prenexize_63: tmp639 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg1) ; tmp640 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp639), atslab_s2exp_node) ; do { /* branch: __ats_lab_272 */ __ats_lab_272_0: if (((ats_sum_ptr_type)tmp640)->tag != 27) { goto __ats_lab_273_0 ; } __ats_lab_272_1: tmp641 = ats_caselptrlab_mac(anairiats_sum_9, tmp640, atslab_0) ; tmp642 = ats_caselptrlab_mac(anairiats_sum_9, tmp640, atslab_1) ; tmp643 = ats_caselptrlab_mac(anairiats_sum_9, tmp640, atslab_2) ; tmp644 = atspre_eq_int_int (arg0, 0) ; if (tmp644) { tmp638 = s2exp_prenexize_work_64 (arg0, tmp641, tmp642, tmp643, arg2, arg3, arg4) ; } else { tmp638 = tmp639 ; } /* end of [if] */ break ; /* branch: __ats_lab_273 */ __ats_lab_273_0: if (((ats_sum_ptr_type)tmp640)->tag != 28) { goto __ats_lab_274_0 ; } __ats_lab_273_1: tmp645 = ats_caselptrlab_mac(anairiats_sum_9, tmp640, atslab_0) ; tmp646 = ats_caselptrlab_mac(anairiats_sum_9, tmp640, atslab_1) ; tmp647 = ats_caselptrlab_mac(anairiats_sum_9, tmp640, atslab_2) ; tmp648 = atspre_gt_int_int (arg0, 0) ; if (tmp648) { tmp638 = s2exp_prenexize_work_64 (arg0, tmp645, tmp646, tmp647, arg2, arg3, arg4) ; } else { tmp638 = tmp639 ; } /* end of [if] */ break ; /* branch: __ats_lab_274 */ __ats_lab_274_0: if (((ats_sum_ptr_type)tmp640)->tag != 12) { goto __ats_lab_275_0 ; } __ats_lab_274_1: tmp649 = ats_caselptrlab_mac(anairiats_sum_7, tmp640, atslab_0) ; tmp650 = ats_caselptrlab_mac(anairiats_sum_7, tmp640, atslab_1) ; tmp651 = ats_ptrget_mac(ats_int_type, arg2) ; tmp653 = atspre_eq_int_int (arg0, 0) ; if (tmp653) { tmp652 = s2exp_prenexize_63 (arg0, tmp649, arg2, arg3, arg4) ; } else { tmp652 = tmp649 ; } /* end of [if] */ tmp654 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp651) ; if (tmp654) { tmp638 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp652, tmp650) ; } else { tmp638 = tmp639 ; } /* end of [if] */ break ; /* branch: __ats_lab_275 */ __ats_lab_275_0: __ats_lab_275_1: tmp638 = tmp639 ; break ; } while (0) ; return (tmp638) ; } /* end of [s2exp_prenexize_63] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_68 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; ATSlocal (ats_ptr_type, tmp666) ; ATSlocal (ats_ptr_type, tmp667) ; __ats_lab_revapp_68: do { /* branch: __ats_lab_276 */ __ats_lab_276_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_277_0 ; } __ats_lab_276_1: tmp665 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp666 = ats_ptrget_mac(ats_ptr_type, tmp665) ; ats_ptrget_mac(ats_ptr_type, tmp665) = arg1 ; tmp667 = arg0 ; arg0 = tmp666 ; arg1 = tmp667 ; goto __ats_lab_revapp_68 ; // tail call break ; /* branch: __ats_lab_277 */ __ats_lab_277_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_277_1: tmp664 = arg1 ; break ; } while (0) ; return (tmp664) ; } /* end of [revapp_68] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp663) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp663 = revapp_68 (arg0, arg1) ; return (tmp663) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 41732(line=2133, offs=1) -- 42373(line=2152, offs=4) */ ATSstaticdec() ats_ptr_type s2exp_prenexize_work_64 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5, ats_ref_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; ATSlocal (ats_ptr_type, tmp657) ; ATSlocal (ats_ptr_type, tmp658) ; ATSlocal (ats_ptr_type, tmp659) ; // ATSlocal_void (tmp660) ; ATSlocal (ats_int_type, tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; ATSlocal (ats_ptr_type, tmp668) ; __ats_lab_s2exp_prenexize_work_64: /* ats_ptr_type tmp656 ; */ tmp656 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp657 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst ((&tmp656), arg1) ; tmp658 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp656, arg2) ; tmp659 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp656, arg3) ; /* tmp660 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp656) ; tmp661 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ; ats_ptrget_mac(ats_int_type, arg4) = tmp661 ; tmp662 = list_vt_reverse_append_01507_ats_ptr_type (tmp657, ats_ptrget_mac(ats_ptr_type, arg5)) ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp662 ; tmp668 = list_vt_reverse_append_01507_ats_ptr_type (tmp658, ats_ptrget_mac(ats_ptr_type, arg6)) ; ats_ptrget_mac(ats_ptr_type, arg6) = tmp668 ; tmp655 = s2exp_prenexize_63 (arg0, tmp659, arg4, arg5, arg6) ; return (tmp655) ; } /* end of [s2exp_prenexize_work_64] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 42412(line=2155, offs=1) -- 42945(line=2181, offs=4) */ ATSstaticdec() ats_ptr_type s2explst_prenexize_65 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp669) ; ATSlocal (ats_ptr_type, tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; ATSlocal (ats_int_type, tmp672) ; ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_bool_type, tmp675) ; __ats_lab_s2explst_prenexize_65: do { /* branch: __ats_lab_278 */ __ats_lab_278_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_279_0 ; } __ats_lab_278_1: tmp669 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_279 */ __ats_lab_279_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_279_1: tmp670 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp671 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp672 = ats_ptrget_mac(ats_int_type, arg2) ; tmp673 = s2exp_prenexize_63 (arg0, tmp670, arg2, arg3, arg4) ; tmp674 = s2explst_prenexize_65 (arg0, tmp671, arg2, arg3, arg4) ; tmp675 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp672) ; if (tmp675) { tmp669 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp669, atslab_0, tmp673) ; ats_selptrset_mac(anairiats_sum_4, tmp669, atslab_1, tmp674) ; } else { tmp669 = arg1 ; } /* end of [if] */ break ; } while (0) ; return (tmp669) ; } /* end of [s2explst_prenexize_65] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 42982(line=2184, offs=1) -- 43693(line=2215, offs=4) */ ATSstaticdec() ats_ptr_type labs2explst_prenexize_66 (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; ATSlocal (ats_int_type, tmp679) ; ATSlocal (ats_ptr_type, tmp680) ; ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_ptr_type, tmp682) ; ATSlocal (ats_ptr_type, tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; ATSlocal (ats_bool_type, tmp685) ; ATSlocal (ats_ptr_type, tmp686) ; ATSlocal (ats_bool_type, tmp687) ; __ats_lab_labs2explst_prenexize_66: do { /* branch: __ats_lab_280 */ __ats_lab_280_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_281_0 ; } __ats_lab_280_1: tmp676 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_281 */ __ats_lab_281_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_281_1: tmp677 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp678 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp679 = ats_ptrget_mac(ats_int_type, arg2) ; tmp680 = ats_caselptrlab_mac(anairiats_sum_5, tmp677, atslab_0) ; tmp681 = ats_caselptrlab_mac(anairiats_sum_5, tmp677, atslab_1) ; tmp682 = ats_caselptrlab_mac(anairiats_sum_5, tmp677, atslab_2) ; tmp683 = s2exp_prenexize_63 (arg0, tmp682, arg2, arg3, arg4) ; tmp685 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp679) ; if (tmp685) { tmp684 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp684, atslab_0, tmp680) ; ats_selptrset_mac(anairiats_sum_5, tmp684, atslab_1, tmp681) ; ats_selptrset_mac(anairiats_sum_5, tmp684, atslab_2, tmp683) ; } else { tmp684 = tmp677 ; } /* end of [if] */ tmp686 = labs2explst_prenexize_66 (arg0, tmp678, arg2, arg3, arg4) ; tmp687 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp679) ; if (tmp687) { tmp676 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp676, atslab_0, tmp684) ; ats_selptrset_mac(anairiats_sum_4, tmp676, atslab_1, tmp686) ; } else { tmp676 = arg1 ; } /* end of [if] */ break ; } while (0) ; return (tmp676) ; } /* end of [labs2explst_prenexize_66] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp695 = (ats_sum_ptr_type)0 ; tmp694 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp695) ; return (tmp694) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 43775(line=2220, offs=13) -- 44111(line=2236, offs=4) */ ATSglobaldec() anairiats_rec_13 _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_absuni (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_13, tmp688) ; ATSlocal (ats_int_type, tmp689) ; ATSlocal (ats_ptr_type, tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; ATSlocal (ats_ptr_type, tmp696) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_absuni: /* ats_int_type tmp689 ; */ tmp689 = 0 ; /* ats_ptr_type tmp690 ; */ tmp690 = (ats_sum_ptr_type)0 ; /* ats_ptr_type tmp691 ; */ tmp691 = (ats_sum_ptr_type)0 ; tmp692 = s2exp_prenexize_63 (1, arg0, (&tmp689), (&tmp690), (&tmp691)) ; tmp693 = list_vt_reverse_01506_ats_ptr_type (tmp690) ; tmp696 = list_vt_reverse_01506_ats_ptr_type (tmp691) ; tmp688.atslab_0 = tmp692 ; tmp688.atslab_1 = tmp693 ; tmp688.atslab_2 = tmp696 ; return (tmp688) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_absuni] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_util2.dats: 44161(line=2239, offs=14) -- 44497(line=2255, offs=4) */ ATSglobaldec() anairiats_rec_13 _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_opnexi (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_13, tmp697) ; ATSlocal (ats_int_type, tmp698) ; ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_ptr_type, tmp700) ; ATSlocal (ats_ptr_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; ATSlocal (ats_ptr_type, tmp703) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_opnexi: /* ats_int_type tmp698 ; */ tmp698 = 0 ; /* ats_ptr_type tmp699 ; */ tmp699 = (ats_sum_ptr_type)0 ; /* ats_ptr_type tmp700 ; */ tmp700 = (ats_sum_ptr_type)0 ; tmp701 = s2exp_prenexize_63 (0, arg0, (&tmp698), (&tmp699), (&tmp700)) ; tmp702 = list_vt_reverse_01506_ats_ptr_type (tmp699) ; tmp703 = list_vt_reverse_01506_ats_ptr_type (tmp700) ; tmp697.atslab_0 = tmp701 ; tmp697.atslab_1 = tmp702 ; tmp697.atslab_2 = tmp703 ; return (tmp697) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_opnexi] */ /* 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_basics_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_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn.name = "_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__SYNEQexn" ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util2_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_util2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_dynexp_up_dats.c0000644000175000017500000076156513431250607024056 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_bool_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_3 ; typedef struct { ats_ptr_type atslab_i2nvresstate_svs ; ats_ptr_type atslab_i2nvresstate_gua ; ats_ptr_type atslab_i2nvresstate_arg ; ats_ptr_type atslab_i2nvresstate_met ; } anairiats_rec_4 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_18 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_19 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_20 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_21 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_22 ; typedef struct { ats_ptr_type atslab_s2exparg_loc ; ats_ptr_type atslab_s2exparg_node ; } anairiats_rec_23 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_24 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_25 ; typedef struct { ats_ptr_type atslab_l0ab_loc ; ats_ptr_type atslab_l0ab_lab ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_27 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_28 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_29 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_30 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; 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_STRING_154) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKencode_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop2_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecstsp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etyrep_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eliteral_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextfcall_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextmcall_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Econ_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efoldat_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efreeat_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etmpid_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elet_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhere_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esifhead_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifcasehd_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Escasehead_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elst_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eptrof_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eviewat_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Exchng_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrsub_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrpsz_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrinit_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eraise_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eeffmask_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evararg_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evcopyenv_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eshowtype_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etempenver_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elaminit_dyn_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efix_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Edelay_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eldelay_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efor_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhile_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eloopexn_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etrywith_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacsyn_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolassert_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolverify_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eerrexp_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_uni_instantiate_sexparglst_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_typeless_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_tmpid_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_trup_llamlocal_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_con_npf_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_laminit_funclo_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23explst_trdn_arity_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23exp_trup_app23_npf_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23exp_trup_app23_fun_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d23exp_trup_app23_eff_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_sym_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_exn_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_arg_body_linpat_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_delay_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_extfcall_arg_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_extmcall_arg_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__D23Ed2exp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__D23Ed3exp_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerrf_exn) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind) (ats_int_type) ; ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec) (ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc) (ats_ptr_type, ats_bool_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1size_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_exception_vtype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_arrpsz_vt0ype_int_vt0ype) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_t0ype_int_type) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_vt0ype_int_vtype) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_t0ype_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_vt0ype_vtype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_vt0ype_uni) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_list) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_v) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_vt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2sym) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup_flt) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_nil) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_varlamcst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_labtype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_int) (ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_top) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extval) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extfcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extmcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_let) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_unista) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lst) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tup) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_rec) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrpsz) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrinit) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_raise) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_effmask) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vararg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vcopyenv) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tempenver) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_dyn) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_laminit_dyn) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_met) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_fix) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_delay) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ldelay) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_trywith) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ann_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_solverify) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_decode) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_xstage) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_app_short) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve) (ats_ptr_type, ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trup_arg) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__funarg_patck_exhaust) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_funclo_of_d2exp) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_s2eff_of_d2exp) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_up) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23explst_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tyrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_literal) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_mutabl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_nonmut) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_trup_applst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_tmpsym) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_seloverld) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_selab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_foldat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_freeat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_ptrof) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loop) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loopexn) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trdn_elt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifhead) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_sifhead) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifcasehd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__c2laulst_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_casehead) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_scasehead) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_fun_restore) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_arg_restore) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, patsopt_s2exp_tmp_instantiate_rest) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, patsopt_s2exp_tmp_instantiate_tmpmarglst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_assert) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_verify) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2explst_check_termet) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push_dvarlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_lam) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_effmask) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_2, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_lam) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_let) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_try) () ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_d2var_is_llamlocal) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check_llam) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_lam) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_lam) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_try) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extval) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extfcall) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extmcall) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_con) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tmpid) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_rec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_seq) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_effmask) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vararg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vcopyenv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tempenver) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_3, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_arg_body) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_letwhere) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_dyn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_laminit_dyn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_sta) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_met) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_fix) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_delay) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_ldelay) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_for) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_while) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_trywith) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_mac) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_macsyn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solassert) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solverify) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__labd3explst_get_type) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_bool_type d2exp_is_sym_1 (ats_ptr_type arg0) ; static ats_int_type loop_4 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) ; static ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type d2explst_trup_arg_10 (ats_ptr_type arg0) ; static ats_void_type fopr_12 (ats_ptr_type arg0) ; static ats_void_type d23explst_open_and_add_11 (ats_ptr_type arg0) ; static ats_ptr_type aux_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_ptr_type d23explst_trdn_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxcheck_25 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_27 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxcheck_28 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_38 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type d23exp_trup_applst_sta_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type d23exp_trup_app23_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type d23exp_trup_applst_dyn_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type fopr_45 (ats_ptr_type arg0) ; static ats_ptr_type aux_47 (ats_ptr_type arg0) ; static ats_ptr_type aux_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxlst_56 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlinck_57 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_59 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) ; static ats_ptr_type s2exp_clo2fun_66 (ats_ptr_type arg0) ; static ats_void_type prerr_errmac_loc_02088_ (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 1676(line=54, offs=18) -- 1710(line=54, offs=52) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_dynexp_up")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 4670(line=231, offs=1) -- 4776(line=237, offs=4) */ ATSstaticdec() ats_bool_type d2exp_is_sym_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_d2exp_is_sym_1: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp2)->tag != 22) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp1 = ats_false_bool ; break ; } while (0) ; return (tmp1) ; } /* end of [d2exp_is_sym_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_4 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_int_type, tmp84) ; __ats_lab_loop_4: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; tmp84 = atspre_isucc (arg1) ; arg0 = tmp83 ; arg1 = tmp84 ; goto __ats_lab_loop_4 ; // tail call break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: tmp82 = arg1 ; break ; } while (0) ; return (tmp82) ; } /* end of [loop_4] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp81) ; __ats_lab_list_length_01410_ats_ptr_type: tmp81 = loop_4 (arg0, 0) ; return (tmp81) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; __ats_lab_prerr_interror_loc_02085_: /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp127 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp128 = */ prerr_FILENAME_02083_ () ; /* tmp125 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp125) */ ; } /* end of [prerr_interror_loc_02085_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 4847(line=243, offs=3) -- 14737(line=643, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_char_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_char_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_int_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_int_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_bool_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; // ATSlocal_void (tmp118) ; ATSlocal (ats_int_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup: tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp5)->tag != 1) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var (tmp4, tmp6) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp5)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cst (tmp4, tmp7) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp5)->tag != 2) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_7, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_int (arg0, tmp8) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp5)->tag != 3) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_intrep (arg0, tmp9) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp5)->tag != 4) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_8, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_bool (arg0, tmp10) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp5)->tag != 5) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_9, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_char (arg0, tmp11) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp5)->tag != 6) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_float (arg0, tmp12) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp5)->tag != 7) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_string (arg0, tmp13) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp5)->tag != 8) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_i0nt (arg0, tmp14) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp5)->tag != 9) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp15), atslab_token_node) ; if (((ats_sum_ptr_type)tmp16)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 5534(line=277, offs=5) -- 5564(line=278, offs=19)") ; } tmp17 = ats_caselptrlab_mac(anairiats_sum_9, tmp16, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_char (arg0, tmp17) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp5)->tag != 10) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_f0loat (arg0, tmp18) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp5)->tag != 11) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp20 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp19), atslab_token_node) ; if (((ats_sum_ptr_type)tmp20)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 5709(line=283, offs=5) -- 5743(line=284, offs=19)") ; } tmp21 = ats_caselptrlab_mac(anairiats_sum_6, tmp20, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_string (arg0, tmp21) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp5)->tag != 15) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cstsp (arg0, tmp22) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp5)->tag != 16) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tyrep (arg0, tmp23) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp5)->tag != 17) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_literal (arg0, tmp24) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp5)->tag != 13) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_top (tmp4, tmp25) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp5)->tag != 14) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_empty (tmp4, tmp26) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp5)->tag != 18) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extval (arg0) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp5)->tag != 19) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extfcall (arg0) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp5)->tag != 20) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extmcall (arg0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp5)->tag != 21) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_con (arg0) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp5)->tag != 22) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_sym (arg0) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp5)->tag != 23) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_foldat (arg0) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp5)->tag != 24) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_freeat (arg0) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp5)->tag != 25) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tmpid (arg0) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp5)->tag != 26) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_1) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_letwhere (arg0, tmp27, tmp28) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp5)->tag != 27) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_0) ; tmp30 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_1) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_letwhere (arg0, tmp30, tmp29) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp5)->tag != 28) { goto __ats_lab_36_0 ; } __ats_lab_29_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_0) ; tmp32 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_1) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp31), atslab_d2exp_node) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp33)->tag != 22) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_6, tmp33, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym (arg0, tmp34, tmp32) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp33)->tag != 25) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_11, tmp33, atslab_0) ; tmp36 = ats_caselptrlab_mac(anairiats_sum_11, tmp33, atslab_1) ; tmp37 = d2exp_is_sym_1 (tmp35) ; if (!tmp37) { goto __ats_lab_33_1 ; } tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp35), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp38)->tag != 22) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 7112(line=341, offs=13) -- 7140(line=341, offs=41)") ; } tmp39 = ats_caselptrlab_mac(anairiats_sum_6, tmp38, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_tmpsym (arg0, tmp39, tmp36, tmp32) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp33)->tag != 70) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_6, tmp33, atslab_0) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_app_short (tmp4, tmp40, tmp32) ; arg0 = tmp41 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup ; // tail call break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld (tmp31) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp42 != (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst (arg0, tmp31, tmp32) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (tmp42 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_12, tmp42, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_seloverld (arg0, tmp31, tmp43, tmp32) ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp5)->tag != 29) { goto __ats_lab_39_0 ; } __ats_lab_36_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_13, tmp5, atslab_3) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (tmp44 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (tmp44 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp4, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; break ; } while (0) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp45) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifhead (arg0, tmp46) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp5)->tag != 30) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp4, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp47) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_sifhead (arg0, tmp48) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp5)->tag != 31) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_14, tmp5, atslab_0) ; tmp51 = atspre_eq_int_int (tmp49, 0) ; if (tmp51) { tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; } else { tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp4, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; } /* end of [if] */ tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp50) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifcasehd (arg0, tmp52) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp5)->tag != 32) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp4, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp53) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_casehead (arg0, tmp54) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp5)->tag != 33) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp4, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp55) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_scasehead (arg0, tmp56) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp5)->tag != 34) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; arg0 = tmp57 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup ; // tail call break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp5)->tag != 35) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_15, tmp5, atslab_0) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_15, tmp5, atslab_1) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup_flt (tmp4, tmp58, tmp59) ; arg0 = tmp60 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp5)->tag != 36) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lst (arg0) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp5)->tag != 37) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tup (arg0) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp5)->tag != 38) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_rec (arg0) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp5)->tag != 39) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_seq (arg0) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp5)->tag != 40) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_0) ; tmp62 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_1) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_selab (tmp4, tmp61, tmp62) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp5)->tag != 41) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_ptrof (arg0) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp5)->tag != 42) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat (arg0) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp5)->tag != 43) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_0) ; tmp64 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_1) ; tmp65 = (ats_sum_ptr_type)0 ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_deref (tmp4, tmp63, tmp64, tmp65) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp5)->tag != 44) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_assgn (arg0) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp5)->tag != 45) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng (arg0) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp5)->tag != 46) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_13, tmp5, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_13, tmp5, atslab_1) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_13, tmp5, atslab_2) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_13, tmp5, atslab_3) ; tmp70 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp67), atslab_d2exp_loc) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp70, tmp68) ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp72, atslab_0, tmp67) ; ats_selptrset_mac(anairiats_sum_16, tmp72, atslab_1, tmp69) ; tmp73 = ATS_MALLOC(sizeof(anairiats_sum_14)) ; ((ats_sum_ptr_type)tmp73)->tag = 1 ; ats_selptrset_mac(anairiats_sum_14, tmp73, atslab_0, -1) ; ats_selptrset_mac(anairiats_sum_14, tmp73, atslab_1, tmp71) ; ats_selptrset_mac(anairiats_sum_14, tmp73, atslab_2, tmp72) ; tmp75 = (ats_sum_ptr_type)0 ; tmp74 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp74, atslab_0, tmp73) ; ats_selptrset_mac(anairiats_sum_16, tmp74, atslab_1, tmp75) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst_sym (arg0, tmp66, tmp74) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp5)->tag != 47) { goto __ats_lab_61_0 ; } __ats_lab_56_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_0) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_1) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (tmp76 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_12, tmp76, atslab_0) ; tmp78 = tmp79 ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (tmp76 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp4, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; break ; } while (0) ; tmp80 = list_length_01410_ats_ptr_type (tmp77) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trdn_elt (tmp77, tmp78) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_arrpsz_vt0ype_int_vt0ype (tmp78, tmp80) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrpsz (tmp4, tmp86, tmp78, tmp85, tmp80) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp5)->tag != 48) { goto __ats_lab_68_0 ; } __ats_lab_61_1: tmp87 = ats_caselptrlab_mac(anairiats_sum_17, tmp5, atslab_0) ; tmp88 = ats_caselptrlab_mac(anairiats_sum_17, tmp5, atslab_1) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_17, tmp5, atslab_2) ; /* ats_ptr_type tmp90 ; */ tmp91 = list_length_01410_ats_ptr_type (tmp89) ; do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (tmp88 != (ats_sum_ptr_type)0) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp91) ; tmp90 = tmp93 ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_index_t0ype (tmp90) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_int (tmp4, tmp94, tmp91) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: // if (tmp88 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_63_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_12, tmp88, atslab_0) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp95) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp96) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp97) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1size_index_t0ype (tmp98) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (tmp99 == (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp101 = ats_caselptrlab_mac(anairiats_sum_12, tmp99, atslab_0) ; ATS_FREE(tmp99) ; tmp90 = tmp101 ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: // if (tmp99 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_65_1: tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; tmp90 = tmp102 ; break ; } while (0) ; tmp92 = tmp96 ; break ; } while (0) ; do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (tmp89 == (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp103 = tmp87 ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (tmp89 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top (0, tmp87) ; break ; } while (0) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trdn_elt (tmp89, tmp103) ; tmp107 = (ats_sum_ptr_type)0 ; tmp106 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp106, atslab_0, tmp90) ; ats_selptrset_mac(anairiats_sum_16, tmp106, atslab_1, tmp107) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr (tmp103, tmp106) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_arrinit (tmp4, tmp105, tmp103, tmp92, tmp104) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp5)->tag != 49) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn (tmp4) ; tmp111 = atspre_gt_int_int (tmp109, 0) ; if (tmp111) { tmp112 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp112)->tag = 31 ; ats_selptrset_mac(anairiats_sum_6, tmp112, atslab_0, tmp4) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp112) ; } else { /* empty */ } /* end of [if] */ tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_exception_vtype () ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp108, tmp113) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_vt0ype_uni () ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_raise (tmp4, tmp115, tmp114) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp5)->tag != 50) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_effmask (arg0) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp5)->tag != 51) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vararg (arg0) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp5)->tag != 52) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vcopyenv (arg0) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp5)->tag != 53) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_6, tmp5, atslab_0) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp116) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_up (tmp117) ; tmp3 = tmp117 ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp5)->tag != 54) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tempenver (arg0) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp5)->tag != 56) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_dyn (arg0) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp5)->tag != 57) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_laminit_dyn (arg0) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp5)->tag != 58) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_sta (arg0) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp5)->tag != 59) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_met (arg0) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp5)->tag != 60) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_fix (arg0) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp5)->tag != 61) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_delay (arg0) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp5)->tag != 62) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_ldelay (arg0) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp5)->tag != 63) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_for (arg0) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp5)->tag != 64) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_while (arg0) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp5)->tag != 65) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_7, tmp5, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loopexn (tmp4, tmp119) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp5)->tag != 66) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_trywith (arg0) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp5)->tag != 67) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_0) ; tmp121 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_1) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp120, tmp121) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ann_type (tmp4, tmp122, tmp121) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp5)->tag != 68) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_11, tmp5, atslab_0) ; arg0 = tmp123 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup ; // tail call break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp5)->tag != 70) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_mac (arg0) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp5)->tag != 71) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_macsyn (arg0) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp5)->tag != 73) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solassert (arg0) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp5)->tag != 74) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solverify (arg0) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp5)->tag != 75) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp4) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: __ats_lab_92_1: /* tmp124 = */ prerr_interror_loc_02085_ (tmp4) ; /* tmp129 = */ atspre_prerr_string (ATSstrcst(": d2exp_trup: d2e0 = ")) ; /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp (arg0) ; /* tmp131 = */ atspre_prerr_newline () ; tmp132 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 14479(line=628, offs=5) -- 14488(line=628, offs=14)", ATSstrcst("\n")) ; /* tmp3 = */ ats_exit_errmsg (1, tmp132) ; break ; } while (0) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; __ats_lab_loop_9: do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; tmp140 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp138, arg3) ; tmp141 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp141, atslab_0, tmp140) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp141 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp142 = &ats_caselptrlab_mac(anairiats_sum_16, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp139 ; arg1 = arg1 ; arg2 = tmp142 ; arg3 = arg3 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: tmp143 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp143 ; break ; } while (0) ; return /* (tmp137) */ ; } /* end of [loop_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp144) ; // ATSlocal_void (tmp145) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp144 ; */ /* tmp145 = */ loop_9 (arg0, arg1, (&tmp144), arg2) ; tmp136 = tmp144 ; return (tmp136) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp135 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp135) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 14809(line=649, offs=3) -- 14854(line=649, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup: tmp134 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) ; tmp133 = ats_castfn_mac(ats_ptr_type, tmp134) ; return (tmp133) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 14908(line=655, offs=1) -- 15628(line=689, offs=4) */ ATSstaticdec() ats_ptr_type d2explst_trup_arg_10 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_bool_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; __ats_lab_d2explst_trup_arg_10: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_varlamcst (tmp147) ; if (tmp149) { tmp150 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp150)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp150, atslab_0, tmp147) ; } else { tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp147) ; tmp150 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp150)->tag = 1 ; ats_selptrset_mac(anairiats_sum_6, tmp150, atslab_0, tmp151) ; } /* end of [if] */ tmp152 = d2explst_trup_arg_10 (tmp148) ; tmp146 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp146, atslab_0, tmp150) ; ats_selptrset_mac(anairiats_sum_16, tmp146, atslab_1, tmp152) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_96_1: tmp146 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp146) ; } /* end of [d2explst_trup_arg_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 15777(line=701, offs=1) -- 16074(line=716, offs=2) */ ATSstaticdec() ats_void_type fopr_12 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab_fopr_12: do { /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_98_0 ; } __ats_lab_97_1: break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_98_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp155) ; break ; } while (0) ; return /* (tmp154) */ ; } /* end of [fopr_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 15685(line=694, offs=1) -- 16436(line=731, offs=4) */ ATSstaticdec() ats_void_type d23explst_open_and_add_11 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp153) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; __ats_lab_d23explst_open_and_add_11: do { /* branch: __ats_lab_99 */ __ats_lab_99_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_100_0 ; } __ats_lab_99_1: break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_100_1: tmp156 = &ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ; tmp157 = &ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; tmp159 = ats_ptrget_mac(ats_ptr_type, tmp156) ; /* tmp158 = */ fopr_12 (tmp159) ; tmp160 = ats_ptrget_mac(ats_ptr_type, tmp157) ; arg0 = tmp160 ; goto __ats_lab_d23explst_open_and_add_11 ; // tail call break ; } while (0) ; return /* (tmp153) */ ; } /* end of [d23explst_open_and_add_11] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 17048(line=763, offs=5) -- 17967(line=800, offs=4) */ ATSstaticdec() ats_ptr_type aux_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_int_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_int_type, tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; __ats_lab_aux_14: do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; } __ats_lab_101_1: do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp162 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_103_1: tmp163 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp163 ; tmp162 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_104_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ; tmp165 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; ATS_FREE(arg0) ; do { /* branch: __ats_lab_105 */ __ats_lab_105_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp166 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp166 ; /* tmp167 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_free (tmp164) ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23explst_free (tmp165) ; tmp162 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_106_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp164)->tag != 0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_6, tmp164, atslab_0) ; ATS_FREE(tmp164) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp172, tmp169) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (((ats_sum_ptr_type)tmp164)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_6, tmp164, atslab_0) ; ATS_FREE(tmp164) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp173, tmp169) ; break ; } while (0) ; tmp174 = aux_14 (tmp165, tmp170, arg2) ; tmp162 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp162, atslab_0, tmp171) ; ats_selptrset_mac(anairiats_sum_16, tmp162, atslab_1, tmp174) ; break ; } while (0) ; break ; } while (0) ; return (tmp162) ; } /* end of [aux_14] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; __ats_lab_prerr_error3_loc_02089_: /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp180 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp180) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 16954(line=757, offs=4) -- 18498(line=825, offs=4) */ ATSstaticdec() ats_ptr_type d23explst_trdn_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_int_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; // ATSlocal_void (tmp177) ; ATSlocal (ats_bool_type, tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; // ATSlocal_void (tmp184) ; ATSlocal (ats_bool_type, tmp185) ; // ATSlocal_void (tmp186) ; ATSlocal (ats_bool_type, tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab_d23explst_trdn_13: /* ats_int_type tmp175 ; */ tmp175 = 0 ; tmp176 = aux_14 (arg1, arg2, (&tmp175)) ; tmp178 = atspre_neq_int_int (tmp175, 0) ; if (tmp178) { /* tmp179 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp182 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d23explst_trdn")) ; /* tmp183 = */ atspre_prerr_string (ATSstrcst(": arity mismatch")) ; tmp185 = atspre_lt_int_int (tmp175, 0) ; if (tmp185) { /* tmp184 = */ atspre_prerr_string (ATSstrcst(": more arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ tmp187 = atspre_gt_int_int (tmp175, 0) ; if (tmp187) { /* tmp186 = */ atspre_prerr_string (ATSstrcst(": fewer arguments are expected.")) ; } else { /* empty */ } /* end of [if] */ /* tmp188 = */ atspre_prerr_newline () ; tmp189 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp189)->tag = 23 ; ats_selptrset_mac(anairiats_sum_18, tmp189, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_18, tmp189, atslab_1, tmp175) ; /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp189) ; } else { /* empty */ } /* end of [if] */ tmp161 = tmp176 ; return (tmp161) ; } /* end of [d23explst_trdn_13] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 18605(line=833, offs=5) -- 19080(line=855, offs=4) */ ATSstaticdec() ats_void_type auxerr_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp191) ; ATSlocal (ats_bool_type, tmp192) ; // ATSlocal_void (tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; ATSlocal (ats_bool_type, tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; __ats_lab_auxerr_17: tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (arg1) ; /* tmp193 = */ prerr_error3_loc_02089_ (arg0) ; if (tmp192) { /* tmp195 = */ atspre_prerr_string (ATSstrcst(": the linear dynamic variable [")) ; /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp197 = */ atspre_prerr_string (ATSstrcst("] is no longer available.")) ; /* tmp194 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp199 = atspre_neg_bool (tmp192) ; if (tmp199) { /* tmp200 = */ atspre_prerr_string (ATSstrcst(": the (non-linear) dynamic variable [")) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp202 = */ atspre_prerr_string (ATSstrcst("] is not available for external use.")) ; /* tmp198 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp203 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp203)->tag = 7 ; ats_selptrset_mac(anairiats_sum_11, tmp203, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_11, tmp203, atslab_1, arg1) ; /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp203) ; return /* (tmp191) */ ; } /* end of [auxerr_17] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 18580(line=831, offs=3) -- 19282(line=867, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; // ATSlocal_void (tmp206) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some: tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg1) ; do { /* branch: __ats_lab_109 */ __ats_lab_109_0: if (tmp204 == (ats_sum_ptr_type)0) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp205 = ats_caselptrlab_mac(anairiats_sum_12, tmp204, atslab_0) ; tmp190 = tmp205 ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: // if (tmp204 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_110_1: /* tmp206 = */ auxerr_17 (arg0, arg1) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 19371(line=873, offs=3) -- 19543(line=879, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_mutabl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_mutabl: tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (arg1) ; if (tmp208 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 19395(line=874, offs=7) -- 19428(line=874, offs=40)") ; } tmp209 = ats_caselptrlab_mac(anairiats_sum_12, tmp208, atslab_0) ; /* ats_ptr_type tmp210 ; */ tmp212 = (ats_sum_ptr_type)0 ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_deref (arg0, tmp209, tmp212, (&tmp210)) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_var (arg0, tmp211, arg1) ; return (tmp207) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_mutabl] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 19634(line=885, offs=3) -- 20870(line=941, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_nonmut (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_int_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_bool_type, tmp218) ; ATSlocal (ats_bool_type, tmp219) ; // ATSlocal_void (tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; // ATSlocal_void (tmp224) ; // ATSlocal_void (tmp225) ; // ATSlocal_void (tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_int_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (anairiats_rec_1, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_nonmut: tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (arg1) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg (arg1) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (arg0, arg1) ; tmp218 = atspre_gte_int_int (tmp214, 0) ; if (tmp218) { tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_d2var_is_llamlocal (arg1) ; if (tmp219) { /* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (arg1) ; tmp221 = (ats_sum_ptr_type)0 ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp221) ; } else { /* tmp222 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp223 = */ atspre_prerr_string (ATSstrcst(": the linear dynamic variable [")) ; /* tmp224 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp225 = */ atspre_prerr_string (ATSstrcst("] is expected to be local but it is not.")) ; /* tmp226 = */ atspre_prerr_newline () ; tmp227 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp227)->tag = 19 ; ats_selptrset_mac(anairiats_sum_6, tmp227, atslab_0, arg1) ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp227) ; } /* end of [if] */ } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_111 */ __ats_lab_111_0: if (tmp215 != (ats_sum_ptr_type)0) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_var (arg0, tmp216, arg1) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: // if (tmp215 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_112_1: /* ats_int_type tmp228 ; */ tmp228 = 0 ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (arg0) ; tmp230 = patsopt_s2exp_tmp_instantiate_rest (tmp216, tmp229, tmp215, (&tmp228)) ; tmp231 = ats_select_mac(tmp230, atslab_0) ; tmp232 = ats_select_mac(tmp230, atslab_1) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpvar (arg0, tmp231, arg1, tmp232) ; break ; } while (0) ; return (tmp213) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_nonmut] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 20933(line=945, offs=3) -- 21089(line=952, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_bool_type, tmp234) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var: tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (arg1) ; if (tmp234) { tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_mutabl (arg0, arg1) ; } else { tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_nonmut (arg0, arg1) ; } /* end of [if] */ return (tmp233) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 21166(line=958, offs=3) -- 21584(line=975, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_int_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (anairiats_rec_1, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cst: tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg1) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (arg1) ; do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (tmp237 != (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_cst (arg0, tmp236, arg1) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (tmp237 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: /* ats_int_type tmp238 ; */ tmp238 = 0 ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (arg0) ; tmp240 = patsopt_s2exp_tmp_instantiate_rest (tmp236, tmp239, tmp237, (&tmp238)) ; tmp241 = ats_select_mac(tmp240, atslab_0) ; tmp242 = ats_select_mac(tmp240, atslab_1) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpcst (arg0, tmp241, arg1, tmp242) ; break ; } while (0) ; return (tmp235) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_cst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 21661(line=981, offs=3) -- 22005(line=998, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; // ATSlocal_void (tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_sym: tmp244 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp245 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp245)->tag != 22) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 21707(line=984, offs=5) -- 21736(line=984, offs=34)") ; } tmp246 = ats_caselptrlab_mac(anairiats_sum_6, tmp245, atslab_0) ; /* tmp247 = */ prerr_error3_loc_02089_ (tmp244) ; /* tmp248 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d2exp_trup_sym")) ; /* tmp249 = */ atspre_prerr_string (ATSstrcst(": the symbol [")) ; /* tmp250 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2sym (tmp246) ; /* tmp251 = */ atspre_prerr_string (ATSstrcst("] cannot be resolved.")) ; /* tmp252 = */ atspre_prerr_newline () ; tmp254 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp254)->tag = 28 ; ats_selptrset_mac(anairiats_sum_6, tmp254, atslab_0, arg0) ; /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp254) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp244) ; return (tmp243) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_sym] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 22085(line=1004, offs=3) -- 22212(line=1011, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extval (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extval: tmp256 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp257 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp257)->tag != 18) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 22131(line=1007, offs=5) -- 22169(line=1007, offs=43)") ; } tmp258 = ats_caselptrlab_mac(anairiats_sum_11, tmp257, atslab_0) ; tmp259 = ats_caselptrlab_mac(anairiats_sum_11, tmp257, atslab_1) ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extval (tmp256, tmp258, tmp259) ; return (tmp255) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extval] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 22276(line=1017, offs=5) -- 22599(line=1028, offs=4) */ ATSstaticdec() ats_void_type auxerr_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; // ATSlocal_void (tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; __ats_lab_auxerr_24: tmp261 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d3exp_loc) ; /* tmp262 = */ prerr_error3_loc_02089_ (tmp261) ; /* tmp263 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d2exp_trup_extfcall")) ; /* tmp264 = */ atspre_prerr_string (ATSstrcst(": no linear argument is allowed for the extfcall.")) ; /* tmp265 = */ atspre_prerr_newline () ; tmp266 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp266)->tag = 41 ; ats_selptrset_mac(anairiats_sum_11, tmp266, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_11, tmp266, atslab_1, arg1) ; /* tmp260 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp266) ; return /* (tmp260) */ ; } /* end of [auxerr_24] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 22624(line=1030, offs=5) -- 22944(line=1047, offs=4) */ ATSstaticdec() ats_void_type auxcheck_25 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_bool_type, tmp271) ; // ATSlocal_void (tmp272) ; __ats_lab_auxcheck_25: do { /* branch: __ats_lab_115 */ __ats_lab_115_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp268 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp269 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp268) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp270) ; if (tmp271) { /* tmp272 = */ auxerr_24 (arg0, tmp268) ; } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = tmp269 ; goto __ats_lab_auxcheck_25 ; // tail call break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: break ; } while (0) ; return /* (tmp267) */ ; } /* end of [auxcheck_25] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 23023(line=1053, offs=3) -- 23252(line=1060, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extfcall (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; // ATSlocal_void (tmp280) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extfcall: tmp274 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp275 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp275)->tag != 19) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 23070(line=1055, offs=7) -- 23117(line=1055, offs=54)") ; } tmp276 = ats_caselptrlab_mac(anairiats_sum_17, tmp275, atslab_0) ; tmp277 = ats_caselptrlab_mac(anairiats_sum_17, tmp275, atslab_1) ; tmp278 = ats_caselptrlab_mac(anairiats_sum_17, tmp275, atslab_2) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup (tmp278) ; /* tmp280 = */ auxcheck_25 (tmp274, tmp279) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extfcall (tmp274, tmp276, tmp277, tmp279) ; return (tmp273) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extfcall] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 23341(line=1068, offs=5) -- 23664(line=1079, offs=4) */ ATSstaticdec() ats_void_type auxerr_27 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; // ATSlocal_void (tmp285) ; // ATSlocal_void (tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; __ats_lab_auxerr_27: tmp282 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d3exp_loc) ; /* tmp283 = */ prerr_error3_loc_02089_ (tmp282) ; /* tmp284 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d2exp_trup_extmcall")) ; /* tmp285 = */ atspre_prerr_string (ATSstrcst(": no linear argument is allowed for the extmcall.")) ; /* tmp286 = */ atspre_prerr_newline () ; tmp287 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp287)->tag = 42 ; ats_selptrset_mac(anairiats_sum_11, tmp287, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_11, tmp287, atslab_1, arg1) ; /* tmp281 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp287) ; return /* (tmp281) */ ; } /* end of [auxerr_27] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 23689(line=1081, offs=5) -- 24009(line=1098, offs=4) */ ATSstaticdec() ats_void_type auxcheck_28 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_bool_type, tmp292) ; // ATSlocal_void (tmp293) ; __ats_lab_auxcheck_28: do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp289 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp289) ; tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp291) ; if (tmp292) { /* tmp293 = */ auxerr_27 (arg0, tmp289) ; } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = tmp290 ; goto __ats_lab_auxcheck_28 ; // tail call break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_118_1: break ; } while (0) ; return /* (tmp288) */ ; } /* end of [auxcheck_28] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 24088(line=1104, offs=3) -- 24366(line=1112, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extmcall (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; // ATSlocal_void (tmp303) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extmcall: tmp295 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp296 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp296)->tag != 20) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 24135(line=1106, offs=7) -- 24188(line=1106, offs=60)") ; } tmp297 = ats_caselptrlab_mac(anairiats_sum_13, tmp296, atslab_0) ; tmp298 = ats_caselptrlab_mac(anairiats_sum_13, tmp296, atslab_1) ; tmp299 = ats_caselptrlab_mac(anairiats_sum_13, tmp296, atslab_2) ; tmp300 = ats_caselptrlab_mac(anairiats_sum_13, tmp296, atslab_3) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp298) ; tmp302 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup (tmp300) ; /* tmp303 = */ auxcheck_28 (tmp295, tmp302) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_extmcall (tmp295, tmp297, tmp301, tmp299, tmp302) ; return (tmp294) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_extmcall] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 24469(line=1119, offs=16) -- 26399(line=1180, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_con (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_int_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_int_type, tmp314) ; ATSlocal (anairiats_rec_1, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; // ATSlocal_void (tmp318) ; // ATSlocal_void (tmp319) ; ATSlocal (ats_bool_type, tmp320) ; // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; // ATSlocal_void (tmp327) ; ATSlocal (ats_int_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (anairiats_rec_1, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; // ATSlocal_void (tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_int_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_int_type, tmp338) ; // ATSlocal_void (tmp339) ; ATSlocal (ats_bool_type, tmp340) ; // ATSlocal_void (tmp341) ; // ATSlocal_void (tmp342) ; // ATSlocal_void (tmp343) ; // ATSlocal_void (tmp344) ; // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; // ATSlocal_void (tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; // ATSlocal_void (tmp350) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_con: tmp305 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp306 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp306)->tag != 21) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 24516(line=1121, offs=7) -- 24591(line=1123, offs=22)") ; } tmp307 = ats_caselptrlab_mac(anairiats_sum_20, tmp306, atslab_0) ; tmp308 = ats_caselptrlab_mac(anairiats_sum_20, tmp306, atslab_1) ; tmp309 = ats_caselptrlab_mac(anairiats_sum_20, tmp306, atslab_2) ; tmp310 = ats_caselptrlab_mac(anairiats_sum_20, tmp306, atslab_3) ; tmp311 = ats_caselptrlab_mac(anairiats_sum_20, tmp306, atslab_4) ; tmp312 = ats_caselptrlab_mac(anairiats_sum_20, tmp306, atslab_5) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type (tmp307) ; /* ats_int_type tmp314 ; */ tmp314 = 0 ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst (tmp313, tmp309, (&tmp314)) ; tmp316 = ats_select_mac(tmp315, atslab_0) ; tmp317 = ats_select_mac(tmp315, atslab_1) ; /* tmp318 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (tmp308, tmp317) ; tmp320 = atspre_gt_int_int (tmp314, 0) ; if (tmp320) { /* tmp321 = */ prerr_error3_loc_02089_ (tmp308) ; /* tmp322 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d2exp_trup_con")) ; /* tmp323 = */ atspre_prerr_string (ATSstrcst(": static application cannot be properly typechecked.")) ; /* tmp324 = */ atspre_prerr_newline () ; tmp325 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp325)->tag = 6 ; ats_selptrset_mac(anairiats_sum_17, tmp325, atslab_0, tmp308) ; ats_selptrset_mac(anairiats_sum_17, tmp325, atslab_1, tmp313) ; ats_selptrset_mac(anairiats_sum_17, tmp325, atslab_2, tmp309) ; /* tmp319 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp325) ; } else { /* empty */ } /* end of [if] */ tmp326 = d2explst_trup_arg_10 (tmp312) ; /* tmp327 = */ d23explst_open_and_add_11 (tmp326) ; /* ats_int_type tmp328 ; */ tmp328 = 0 ; tmp329 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (tmp308) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all (tmp316, tmp329, (&tmp328)) ; tmp331 = ats_select_mac(tmp330, atslab_0) ; tmp332 = ats_select_mac(tmp330, atslab_1) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (tmp329, tmp332) ; tmp334 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, tmp331), atslab_s2exp_node) ; do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp334)->tag != 19) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp335 = ats_caselptrlab_mac(anairiats_sum_22, tmp334, atslab_3) ; tmp336 = ats_caselptrlab_mac(anairiats_sum_22, tmp334, atslab_4) ; tmp337 = ats_caselptrlab_mac(anairiats_sum_22, tmp334, atslab_5) ; tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve (tmp305, tmp335, tmp310) ; tmp340 = atspre_gt_int_int (tmp338, 0) ; if (tmp340) { /* tmp341 = */ prerr_error3_loc_02089_ (tmp305) ; /* tmp342 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d2exp_trup_con")) ; /* tmp343 = */ atspre_prerr_string (ATSstrcst(": proof arity mismatch: the constructor [")) ; /* tmp344 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con (tmp307) ; /* tmp345 = */ atspre_prerrf_exn (ATSstrcst("] requires [%i] arguments."), tmp335) ; /* tmp346 = */ atspre_prerr_newline () ; /* tmp347 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp348 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp348)->tag = 20 ; ats_selptrset_mac(anairiats_sum_18, tmp348, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_18, tmp348, atslab_1, tmp310) ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp348) ; } else { /* empty */ } /* end of [if] */ tmp349 = d23explst_trdn_13 (tmp311, tmp326, tmp336) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_con (tmp305, tmp337, tmp307, tmp310, tmp349) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: __ats_lab_120_1: /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23explst_free (tmp326) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp305) ; break ; } while (0) ; return (tmp304) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_con] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 26476(line=1186, offs=3) -- 26801(line=1200, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpcst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_int_type, tmp355) ; ATSlocal (anairiats_rec_1, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpcst: tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (arg0) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (arg1) ; tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg1) ; /* ats_int_type tmp355 ; */ tmp355 = 0 ; tmp356 = patsopt_s2exp_tmp_instantiate_tmpmarglst (tmp354, tmp352, tmp353, arg2, (&tmp355)) ; tmp357 = ats_select_mac(tmp356, atslab_0) ; tmp358 = ats_select_mac(tmp356, atslab_1) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpcst (arg0, tmp357, arg1, tmp358) ; return (tmp351) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpcst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 26863(line=1204, offs=3) -- 27193(line=1216, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_int_type, tmp363) ; ATSlocal (anairiats_rec_1, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpvar: tmp360 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (arg0) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg (arg1) ; tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (arg0, arg1) ; /* ats_int_type tmp363 ; */ tmp363 = 0 ; tmp364 = patsopt_s2exp_tmp_instantiate_tmpmarglst (tmp362, tmp360, tmp361, arg2, (&tmp363)) ; tmp365 = ats_select_mac(tmp364, atslab_0) ; tmp366 = ats_select_mac(tmp364, atslab_1) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tmpvar (arg0, tmp365, arg1, tmp366) ; return (tmp359) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 27254(line=1220, offs=3) -- 27848(line=1250, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tmpid (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; // ATSlocal_void (tmp375) ; // ATSlocal_void (tmp376) ; // ATSlocal_void (tmp377) ; // ATSlocal_void (tmp378) ; // ATSlocal_void (tmp379) ; // ATSlocal_void (tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tmpid: tmp368 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp369 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp369)->tag != 25) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 27300(line=1223, offs=5) -- 27342(line=1223, offs=47)") ; } tmp370 = ats_caselptrlab_mac(anairiats_sum_11, tmp369, atslab_0) ; tmp371 = ats_caselptrlab_mac(anairiats_sum_11, tmp369, atslab_1) ; tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp370), atslab_d2exp_node) ; do { /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp372)->tag != 0) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp373 = ats_caselptrlab_mac(anairiats_sum_6, tmp372, atslab_0) ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpcst (tmp368, tmp373, tmp371) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp372)->tag != 1) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp374 = ats_caselptrlab_mac(anairiats_sum_6, tmp372, atslab_0) ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_tmpvar (tmp368, tmp374, tmp371) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: __ats_lab_123_1: /* tmp375 = */ prerr_error3_loc_02089_ (tmp368) ; /* tmp376 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d2exp_trup_tmpid")) ; /* tmp377 = */ atspre_prerr_string (ATSstrcst(": a non-template is treated as a template: ")) ; /* tmp378 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp (arg0) ; /* tmp379 = */ atspre_prerr_newline () ; tmp381 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp381)->tag = 18 ; ats_selptrset_mac(anairiats_sum_6, tmp381, atslab_0, arg0) ; /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp381) ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp368) ; break ; } while (0) ; return (tmp367) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tmpid] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 27930(line=1256, offs=3) -- 28092(line=1261, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; // ATSlocal_void (tmp384) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst: tmp383 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg1) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp383) ; tmp382 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_trup_applst (arg0, tmp383, arg2) ; return (tmp382) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_applst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51232(line=1817, offs=5) -- 51354(line=1819, offs=58) */ ATSstaticdec() ats_ptr_type loop_38 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; __ats_lab_loop_38: do { /* branch: __ats_lab_126 */ __ats_lab_126_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp392 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp393 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; arg0 = tmp392 ; arg1 = tmp393 ; goto __ats_lab_loop_38 ; // tail call break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_127_1: tmp391 = arg0 ; break ; } while (0) ; return (tmp391) ; } /* end of [loop_38] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51194(line=1813, offs=11) -- 51390(line=1823, offs=2) */ ATSstaticdec() ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; __ats_lab_list_last_01407_ats_ptr_type: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp394 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ; tmp395 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; tmp390 = loop_38 (tmp394, tmp395) ; return (tmp390) ; } /* end of [list_last_01407_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 28454(line=1280, offs=9) -- 28745(line=1291, offs=6) */ ATSstaticdec() ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp396) ; __ats_lab_aux_36: do { /* branch: __ats_lab_124 */ __ats_lab_124_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp388 = arg0 ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_125_1: tmp389 = list_last_01407_ats_ptr_type (arg1) ; tmp396 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, tmp389), atslab_s2exparg_loc) ; tmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (arg0, tmp396) ; break ; } while (0) ; return (tmp388) ; } /* end of [aux_36] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 28149(line=1266, offs=1) -- 29540(line=1319, offs=4) */ ATSstaticdec() ats_ptr_type d23exp_trup_applst_sta_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_int_type, tmp398) ; ATSlocal (anairiats_rec_1, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; // ATSlocal_void (tmp402) ; // ATSlocal_void (tmp403) ; ATSlocal (ats_bool_type, tmp404) ; // ATSlocal_void (tmp405) ; // ATSlocal_void (tmp406) ; // ATSlocal_void (tmp407) ; // ATSlocal_void (tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; __ats_lab_d23exp_trup_applst_sta_35: tmp386 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d3exp_loc) ; tmp387 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d3exp_type) ; tmp397 = aux_36 (tmp386, arg2) ; /* ats_int_type tmp398 ; */ tmp398 = 0 ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst (tmp387, arg2, (&tmp398)) ; tmp400 = ats_select_mac(tmp399, atslab_0) ; tmp401 = ats_select_mac(tmp399, atslab_1) ; /* tmp402 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (tmp397, tmp401) ; tmp404 = atspre_gt_int_int (tmp398, 0) ; if (tmp404) { /* tmp405 = */ prerr_error3_loc_02089_ (tmp397) ; /* tmp406 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d2exp_trup_applst_sta")) ; /* tmp407 = */ atspre_prerr_string (ATSstrcst(": static application cannot be properly typechecked.")) ; /* tmp408 = */ atspre_prerr_newline () ; tmp409 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp409)->tag = 6 ; ats_selptrset_mac(anairiats_sum_17, tmp409, atslab_0, tmp397) ; ats_selptrset_mac(anairiats_sum_17, tmp409, atslab_1, tmp400) ; ats_selptrset_mac(anairiats_sum_17, tmp409, atslab_2, arg2) ; /* tmp403 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp409) ; } else { /* empty */ } /* end of [if] */ tmp410 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_sta (tmp397, tmp400, arg1) ; tmp385 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_trup_applst (arg0, tmp410, arg3) ; return (tmp385) ; } /* end of [d23exp_trup_applst_sta_35] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 29601(line=1324, offs=1) -- 32576(line=1424, offs=4) */ ATSstaticdec() ats_ptr_type d23exp_trup_app23_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_int_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (anairiats_rec_1, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; // ATSlocal_void (tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_int_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_int_type, tmp427) ; // ATSlocal_void (tmp428) ; ATSlocal (ats_bool_type, tmp429) ; // ATSlocal_void (tmp430) ; // ATSlocal_void (tmp431) ; // ATSlocal_void (tmp432) ; // ATSlocal_void (tmp433) ; // ATSlocal_void (tmp434) ; // ATSlocal_void (tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (anairiats_rec_2, tmp440) ; ATSlocal (ats_bool_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_int_type, tmp446) ; // ATSlocal_void (tmp447) ; ATSlocal (ats_bool_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; // ATSlocal_void (tmp450) ; // ATSlocal_void (tmp451) ; // ATSlocal_void (tmp452) ; // ATSlocal_void (tmp453) ; // ATSlocal_void (tmp454) ; // ATSlocal_void (tmp455) ; // ATSlocal_void (tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; __ats_lab_d23exp_trup_app23_39: tmp412 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d3exp_loc) ; tmp413 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d3exp_type) ; /* ats_int_type tmp414 ; */ tmp414 = 0 ; tmp415 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (tmp412) ; tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all (tmp413, tmp415, (&tmp414)) ; tmp417 = ats_select_mac(tmp416, atslab_0) ; tmp418 = ats_select_mac(tmp416, atslab_1) ; /* tmp419 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (tmp415, tmp418) ; tmp420 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_unista (tmp412, tmp417, arg1) ; tmp421 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, tmp417), atslab_s2exp_node) ; do { /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp421)->tag != 19) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp422 = ats_caselptrlab_mac(anairiats_sum_22, tmp421, atslab_0) ; tmp423 = ats_caselptrlab_mac(anairiats_sum_22, tmp421, atslab_2) ; tmp424 = ats_caselptrlab_mac(anairiats_sum_22, tmp421, atslab_3) ; tmp425 = ats_caselptrlab_mac(anairiats_sum_22, tmp421, atslab_4) ; tmp426 = ats_caselptrlab_mac(anairiats_sum_22, tmp421, atslab_5) ; tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve (tmp412, tmp424, arg2) ; tmp429 = atspre_gt_int_int (tmp427, 0) ; if (tmp429) { /* tmp430 = */ prerr_error3_loc_02089_ (tmp412) ; /* tmp431 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d23exp_trup_app23")) ; /* tmp432 = */ atspre_prerr_string (ATSstrcst(": proof arity mismatch")) ; /* tmp433 = */ atspre_prerrf_exn (ATSstrcst(": the function requires %i proof arguments."), tmp424) ; /* tmp434 = */ atspre_prerr_newline () ; /* tmp435 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp436 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp436)->tag = 25 ; ats_selptrset_mac(anairiats_sum_18, tmp436, atslab_0, tmp412) ; ats_selptrset_mac(anairiats_sum_18, tmp436, atslab_1, arg2) ; /* tmp428 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp436) ; } else { /* empty */ } /* end of [if] */ tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp412, arg3) ; tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add (arg3, tmp425, tmp426) ; tmp439 = d23explst_trdn_13 (arg3, arg4, tmp438) ; tmp440 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype (tmp437, tmp426) ; tmp441 = ats_select_mac(tmp440, atslab_0) ; tmp442 = ats_select_mac(tmp440, atslab_1) ; tmp443 = ats_select_mac(tmp440, atslab_2) ; tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_fun_restore (tmp422, tmp420) ; if (tmp441) { tmp445 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_arg_restore (tmp439, tmp438, tmp443) ; } else { tmp445 = tmp439 ; } /* end of [if] */ tmp446 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_s2eff (tmp437, tmp423) ; tmp448 = atspre_gt_int_int (tmp446, 0) ; if (tmp448) { tmp449 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp449)->tag = 27 ; ats_selptrset_mac(anairiats_sum_11, tmp449, atslab_0, tmp437) ; ats_selptrset_mac(anairiats_sum_11, tmp449, atslab_1, tmp423) ; /* tmp447 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp449) ; } else { /* empty */ } /* end of [if] */ tmp411 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn (tmp437, tmp442, tmp444, arg2, tmp445) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: __ats_lab_129_1: /* tmp450 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23explst_free (arg4) ; /* tmp451 = */ prerr_error3_loc_02089_ (tmp412) ; /* tmp452 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d23exp_trup_app23")) ; /* tmp453 = */ atspre_prerr_string (ATSstrcst(": the applied dynamic expression is of non-function type: ")) ; /* tmp454 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp417) ; /* tmp455 = */ atspre_prerr_newline () ; tmp457 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp457)->tag = 26 ; ats_selptrset_mac(anairiats_sum_11, tmp457, atslab_0, tmp412) ; ats_selptrset_mac(anairiats_sum_11, tmp457, atslab_1, tmp417) ; /* tmp456 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp457) ; tmp411 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp412) ; break ; } while (0) ; return (tmp411) ; } /* end of [d23exp_trup_app23_39] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 32612(line=1427, offs=1) -- 33214(line=1453, offs=4) */ ATSstaticdec() ats_ptr_type d23exp_trup_applst_dyn_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; // ATSlocal_void (tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; __ats_lab_d23exp_trup_applst_dyn_40: tmp459 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d3exp_loc) ; tmp460 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp459, arg3) ; tmp461 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_d3exp_type) ; tmp462 = d2explst_trup_arg_10 (arg4) ; /* tmp463 = */ d23explst_open_and_add_11 (tmp462) ; tmp464 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, tmp461), atslab_s2exp_node) ; do { /* branch: __ats_lab_130 */ __ats_lab_130_0: __ats_lab_130_1: tmp465 = d23exp_trup_app23_39 (arg0, arg1, arg2, arg3, tmp462) ; tmp458 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_trup_applst (arg0, tmp465, arg5) ; break ; } while (0) ; return (tmp458) ; } /* end of [d23exp_trup_applst_dyn_40] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 33300(line=1459, offs=1) -- 33975(line=1489, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_trup_applst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_int_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_trup_applst: do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_134_0 ; } __ats_lab_131_1: tmp467 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_0) ; tmp468 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_1) ; do { /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp467)->tag != 0) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp469 = ats_caselptrlab_mac(anairiats_sum_11, tmp467, atslab_1) ; tmp466 = d23exp_trup_applst_sta_35 (arg0, arg1, tmp469, tmp468) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: // if (((ats_sum_ptr_type)tmp467)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_133_1: tmp470 = ats_caselptrlab_mac(anairiats_sum_14, tmp467, atslab_0) ; tmp471 = ats_caselptrlab_mac(anairiats_sum_14, tmp467, atslab_1) ; tmp472 = ats_caselptrlab_mac(anairiats_sum_14, tmp467, atslab_2) ; tmp466 = d23exp_trup_applst_dyn_40 (arg0, arg1, tmp470, tmp471, tmp472, tmp468) ; break ; } while (0) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_134_1: tmp466 = arg1 ; break ; } while (0) ; return (tmp466) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_trup_applst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 34055(line=1495, offs=3) -- 34983(line=1543, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_int_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_bool_type, tmp479) ; ATSlocal (ats_bool_type, tmp480) ; ATSlocal (ats_bool_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_int_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_bool_type, tmp487) ; ATSlocal (ats_bool_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lst: tmp474 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp475 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp475)->tag != 36) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 34101(line=1498, offs=5) -- 34142(line=1498, offs=46)") ; } tmp476 = ats_caselptrlab_mac(anairiats_sum_14, tmp475, atslab_0) ; tmp477 = ats_caselptrlab_mac(anairiats_sum_14, tmp475, atslab_1) ; tmp478 = ats_caselptrlab_mac(anairiats_sum_14, tmp475, atslab_2) ; tmp480 = atspre_gte_int_int (tmp476, 0) ; if (tmp480) { tmp479 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind (tmp476) ; } else { tmp479 = ats_false_bool ; } /* end of [if] */ tmp481 = atspre_neg_bool (tmp479) ; do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (tmp477 == (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp483 = ats_caselptrlab_mac(anairiats_sum_12, tmp477, atslab_0) ; tmp482 = tmp483 ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (tmp477 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: if (tmp481) { tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; } else { tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; } /* end of [if] */ tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp474, tmp484) ; break ; } while (0) ; tmp485 = list_length_01410_ats_ptr_type (tmp478) ; tmp486 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trdn_elt (tmp478, tmp482) ; tmp488 = atspre_gte_int_int (tmp476, 0) ; if (tmp488) { tmp487 = tmp481 ; } else { tmp487 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin (tmp482) ; } /* end of [if] */ if (tmp487) { tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_t0ype_int_type (tmp482, tmp485) ; } else { tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_vt0ype_int_vtype (tmp482, tmp485) ; } /* end of [if] */ tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lst (tmp474, tmp489, tmp476, tmp482, tmp486) ; return (tmp473) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 35060(line=1549, offs=3) -- 35539(line=1576, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_int_type, tmp493) ; ATSlocal (ats_int_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tup: tmp491 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp492 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp492)->tag != 37) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 35106(line=1552, offs=5) -- 35146(line=1552, offs=45)") ; } tmp493 = ats_caselptrlab_mac(anairiats_sum_24, tmp492, atslab_0) ; tmp494 = ats_caselptrlab_mac(anairiats_sum_24, tmp492, atslab_1) ; tmp495 = ats_caselptrlab_mac(anairiats_sum_24, tmp492, atslab_2) ; tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup (tmp495) ; tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_labtype (tmp496) ; tmp498 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec (tmp493, tmp494, tmp497) ; tmp490 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tup (tmp491, tmp498, tmp493, tmp494, tmp496) ; return (tmp490) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tup] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 35709(line=1587, offs=6) -- 35851(line=1592, offs=6) */ ATSstaticdec() ats_ptr_type fopr_45 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; __ats_lab_fopr_45: tmp501 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ; tmp502 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; tmp503 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp501), atslab_l0ab_lab) ; tmp504 = (ats_sum_ptr_type)0 ; tmp505 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, tmp502), atslab_d3exp_type) ; tmp500 = ATS_MALLOC(sizeof(anairiats_sum_25)) ; ats_selptrset_mac(anairiats_sum_25, tmp500, atslab_0, tmp503) ; ats_selptrset_mac(anairiats_sum_25, tmp500, atslab_1, tmp504) ; ats_selptrset_mac(anairiats_sum_25, tmp500, atslab_2, tmp505) ; return (tmp500) ; } /* end of [fopr_45] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 35690(line=1586, offs=21) -- 35917(line=1595, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__labd3explst_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp506) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__labd3explst_get_type: tmp506 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &fopr_45) ; tmp499 = ats_castfn_mac(ats_ptr_type, tmp506) ; return (tmp499) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__labd3explst_get_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 36230(line=1612, offs=7) -- 36591(line=1628, offs=4) */ ATSstaticdec() ats_ptr_type aux_47 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; __ats_lab_aux_47: do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp513 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_138_1: tmp514 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ; tmp515 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; tmp516 = ats_caselptrlab_mac(anairiats_sum_16, tmp514, atslab_0) ; tmp517 = ats_caselptrlab_mac(anairiats_sum_16, tmp514, atslab_1) ; tmp519 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp517) ; tmp518 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp518, atslab_0, tmp516) ; ats_selptrset_mac(anairiats_sum_16, tmp518, atslab_1, tmp519) ; tmp520 = aux_47 (tmp515) ; tmp513 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp513, atslab_0, tmp518) ; ats_selptrset_mac(anairiats_sum_16, tmp513, atslab_1, tmp520) ; break ; } while (0) ; return (tmp513) ; } /* end of [aux_47] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 36002(line=1601, offs=3) -- 36787(line=1637, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_rec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_int_type, tmp510) ; ATSlocal (ats_int_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_rec: tmp508 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp509 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp509)->tag != 38) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 36049(line=1603, offs=7) -- 36094(line=1603, offs=52)") ; } tmp510 = ats_caselptrlab_mac(anairiats_sum_24, tmp509, atslab_0) ; tmp511 = ats_caselptrlab_mac(anairiats_sum_24, tmp509, atslab_1) ; tmp512 = ats_caselptrlab_mac(anairiats_sum_24, tmp509, atslab_2) ; tmp521 = aux_47 (tmp512) ; tmp522 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__labd3explst_get_type (tmp521) ; tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec (tmp510, tmp511, tmp522) ; tmp507 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_rec (tmp508, tmp523, tmp510, tmp511, tmp521) ; return (tmp507) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_rec] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 36949(line=1648, offs=5) -- 37433(line=1668, offs=8) */ ATSstaticdec() ats_ptr_type aux_49 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; __ats_lab_aux_49: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp529 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp530 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; tmp531 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (arg0, arg3) ; tmp532 = aux_49 (tmp529, tmp530, arg2, arg3) ; tmp528 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp528, atslab_0, tmp531) ; ats_selptrset_mac(anairiats_sum_16, tmp528, atslab_1, tmp532) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp533 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg0) ; tmp535 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, tmp533), atslab_d3exp_type) ; tmp534 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp535) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp534 ; tmp536 = (ats_sum_ptr_type)0 ; tmp528 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp528, atslab_0, tmp533) ; ats_selptrset_mac(anairiats_sum_16, tmp528, atslab_1, tmp536) ; break ; } while (0) ; return (tmp528) ; } /* end of [aux_49] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 36864(line=1643, offs=3) -- 37765(line=1685, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_seq (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_seq: tmp525 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp526 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp526)->tag != 39) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 36910(line=1646, offs=5) -- 36941(line=1646, offs=36)") ; } tmp527 = ats_caselptrlab_mac(anairiats_sum_6, tmp526, atslab_0) ; tmp537 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; do { /* branch: __ats_lab_141 */ __ats_lab_141_0: if (tmp527 == (ats_sum_ptr_type)0) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp538 = ats_caselptrlab_mac(anairiats_sum_16, tmp527, atslab_0) ; tmp539 = ats_caselptrlab_mac(anairiats_sum_16, tmp527, atslab_1) ; /* ats_ptr_type tmp540 ; */ tmp541 = aux_49 (tmp538, tmp539, (&tmp540), tmp537) ; tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_seq (tmp525, tmp540, tmp541) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: // if (tmp527 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_142_1: tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_empty (tmp525, tmp537) ; break ; } while (0) ; return (tmp524) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_seq] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 37847(line=1691, offs=3) -- 38390(line=1707, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_letwhere (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; // ATSlocal_void (tmp544) ; // ATSlocal_void (tmp545) ; // ATSlocal_void (tmp546) ; // ATSlocal_void (tmp547) ; // ATSlocal_void (tmp548) ; // ATSlocal_void (tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; // ATSlocal_void (tmp552) ; // ATSlocal_void (tmp553) ; // ATSlocal_void (tmp554) ; // ATSlocal_void (tmp555) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_letwhere: tmp543 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; /* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push () ; /* tmp545 = ats_selsin_mac(tmp544, atslab_1) */ ; /* tmp546 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ; /* tmp547 = ats_selsin_mac(tmp546, atslab_1) */ ; /* tmp548 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_let () ; /* tmp549 = ats_selsin_mac(tmp548, atslab_1) */ ; tmp550 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (arg1) ; tmp551 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg2) ; /* tmp552 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check (tmp543) ; /* tmp553 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop () ; /* tmp554 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind () ; /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop () ; tmp542 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_let (tmp543, tmp550, tmp551) ; return (tmp542) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_letwhere] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 38476(line=1713, offs=3) -- 38728(line=1723, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_effmask (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_ptr_type, tmp560) ; // ATSlocal_void (tmp561) ; // ATSlocal_void (tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; // ATSlocal_void (tmp564) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_effmask: tmp557 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp558 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp558)->tag != 50) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 38522(line=1716, offs=5) -- 38562(line=1716, offs=45)") ; } tmp559 = ats_caselptrlab_mac(anairiats_sum_11, tmp558, atslab_0) ; tmp560 = ats_caselptrlab_mac(anairiats_sum_11, tmp558, atslab_1) ; /* tmp561 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_effmask (tmp559) ; /* tmp562 = ats_selsin_mac(tmp561, atslab_1) */ ; tmp563 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp560) ; /* tmp564 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop () ; tmp556 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_effmask (tmp557, tmp559, tmp563) ; return (tmp556) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_effmask] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 38812(line=1729, offs=3) -- 39216(line=1757, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vararg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vararg: tmp566 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp567 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp567)->tag != 51) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 38858(line=1732, offs=5) -- 38891(line=1732, offs=38)") ; } tmp568 = ats_caselptrlab_mac(anairiats_sum_6, tmp567, atslab_0) ; tmp569 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup (tmp568) ; tmp570 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3explst_get_type (tmp569) ; tmp571 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_types_list (tmp570) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vararg (tmp566, tmp571, tmp569) ; return (tmp565) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vararg] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 39301(line=1763, offs=3) -- 39934(line=1791, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vcopyenv (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_int_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_bool_type, tmp582) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vcopyenv: tmp573 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp574 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp574)->tag != 52) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 39347(line=1766, offs=5) -- 39387(line=1766, offs=45)") ; } tmp575 = ats_caselptrlab_mac(anairiats_sum_15, tmp574, atslab_0) ; tmp576 = ats_caselptrlab_mac(anairiats_sum_15, tmp574, atslab_1) ; tmp577 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp576), atslab_d2exp_node) ; do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp577)->tag != 1) { goto __ats_lab_146_0 ; } __ats_lab_143_1: tmp578 = ats_caselptrlab_mac(anairiats_sum_6, tmp577, atslab_0) ; tmp579 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp578) ; do { /* branch: __ats_lab_144 */ __ats_lab_144_0: if (tmp579 == (ats_sum_ptr_type)0) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp581 = ats_caselptrlab_mac(anairiats_sum_12, tmp579, atslab_0) ; tmp582 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind (tmp575) ; if (tmp582) { tmp580 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_v (tmp581) ; } else { tmp580 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_vcopyenv_vt (tmp581) ; } /* end of [if] */ break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: // if (tmp579 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_145_1: tmp580 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; break ; } while (0) ; tmp572 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_vcopyenv (tmp573, tmp580, tmp575, tmp578) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: __ats_lab_146_1: tmp572 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp576) ; break ; } while (0) ; return (tmp572) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_vcopyenv] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 40022(line=1797, offs=3) -- 40165(line=1804, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tempenver (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_ptr_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tempenver: tmp584 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp585 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp585)->tag != 54) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 40068(line=1800, offs=5) -- 40104(line=1800, offs=41)") ; } tmp586 = ats_caselptrlab_mac(anairiats_sum_6, tmp585, atslab_0) ; tmp587 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp583 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tempenver (tmp584, tmp587, tmp586) ; return (tmp583) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_tempenver] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 40375(line=1822, offs=1) -- 40787(line=1844, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_56 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp589) ; ATSlocal (ats_ptr_type, tmp590) ; ATSlocal (ats_ptr_type, tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; // ATSlocal_void (tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; __ats_lab_auxlst_56: do { /* branch: __ats_lab_147 */ __ats_lab_147_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp589 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_148_1: tmp590 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ; tmp591 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; do { /* branch: __ats_lab_149 */ __ats_lab_149_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp589 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_150_1: tmp592 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp593 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; tmp594 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst (tmp590) ; /* tmp595 = */ auxlinck_57 (tmp590, tmp594, tmp592) ; tmp596 = auxlst_56 (tmp591, tmp593) ; tmp589 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp589, atslab_0, tmp594) ; ats_selptrset_mac(anairiats_sum_16, tmp589, atslab_1, tmp596) ; break ; } while (0) ; break ; } while (0) ; return (tmp589) ; } /* end of [auxlst_56] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 40795(line=1847, offs=1) -- 41346(line=1871, offs=2) */ ATSstaticdec() ats_void_type auxlinck_57 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp597) ; ATSlocal (ats_bool_type, tmp598) ; // ATSlocal_void (tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; // ATSlocal_void (tmp601) ; // ATSlocal_void (tmp602) ; // ATSlocal_void (tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; __ats_lab_auxlinck_57: do { /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_152_0 ; } __ats_lab_151_1: break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: __ats_lab_152_1: tmp598 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (arg2) ; if (tmp598) { tmp600 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_p2at_loc) ; /* tmp599 = */ prerr_error3_loc_02089_ (tmp600) ; /* tmp601 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("funarg_patck_exhaust")) ; /* tmp602 = */ atspre_prerr_string (ATSstrcst(": the linear pattern cannot be used as a function argument.")) ; /* tmp603 = */ atspre_prerr_newline () ; tmp604 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp604)->tag = 37 ; ats_selptrset_mac(anairiats_sum_6, tmp604, atslab_0, arg0) ; /* tmp597 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp604) ; } else { /* empty */ } /* end of [if] */ break ; } while (0) ; return /* (tmp597) */ ; } /* end of [auxlinck_57] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_59 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; __ats_lab_loop_59: do { /* branch: __ats_lab_153 */ __ats_lab_153_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp610 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp610 ; goto __ats_lab_loop_59 ; // tail call break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_154_1: break ; } while (0) ; return /* (tmp609) */ ; } /* end of [loop_59] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp608) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp608 = */ loop_59 (arg0) ; return /* (tmp608) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 1961(line=59, offs=16) -- 2054(line=60, offs=87) */ ATSstaticdec() ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp613) ; __ats_lab_list_vt_is_nil_01494_: do { /* branch: __ats_lab_155 */ __ats_lab_155_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp613 = ats_true_bool ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_156_1: tmp613 = ats_false_bool ; break ; } while (0) ; return (tmp613) ; } /* end of [list_vt_is_nil_01494_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 40252(line=1810, offs=1) -- 41853(line=1894, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__funarg_patck_exhaust (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp588) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; // ATSlocal_void (tmp607) ; ATSlocal (ats_bool_type, tmp611) ; ATSlocal (ats_bool_type, tmp612) ; // ATSlocal_void (tmp614) ; ATSlocal (ats_bool_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; ATSlocal (ats_ptr_type, tmp617) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__funarg_patck_exhaust: tmp605 = auxlst_56 (arg1, arg2) ; tmp606 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (ats_castfn_mac(ats_ptr_type, tmp605)) ; /* tmp607 = */ list_vt_free_01499_ats_ptr_type (tmp605) ; tmp612 = list_vt_is_nil_01494_ (tmp606) ; if (tmp612) { tmp611 = ats_true_bool ; } else { tmp611 = ats_false_bool ; } /* end of [if] */ tmp615 = atspre_neg_bool (tmp611) ; if (tmp615) { tmp616 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy (tmp606) ; tmp617 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; /* tmp614 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false (arg0, tmp617, tmp616, arg2) ; } else { /* empty */ } /* end of [if] */ /* tmp588 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free (tmp606) ; return /* (tmp588) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__funarg_patck_exhaust] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 41942(line=1900, offs=1) -- 43701(line=1983, offs=4) */ ATSglobaldec() anairiats_rec_3 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_arg_body (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (anairiats_rec_3, tmp618) ; // ATSlocal_void (tmp619) ; // ATSlocal_void (tmp620) ; ATSlocal (ats_ptr_type, tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; // ATSlocal_void (tmp625) ; // ATSlocal_void (tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; // ATSlocal_void (tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; // ATSlocal_void (tmp630) ; // ATSlocal_void (tmp631) ; // ATSlocal_void (tmp632) ; // ATSlocal_void (tmp633) ; // ATSlocal_void (tmp634) ; // ATSlocal_void (tmp635) ; // ATSlocal_void (tmp636) ; // ATSlocal_void (tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; // ATSlocal_void (tmp639) ; // ATSlocal_void (tmp640) ; ATSlocal (ats_bool_type, tmp641) ; // ATSlocal_void (tmp642) ; // ATSlocal_void (tmp643) ; // ATSlocal_void (tmp644) ; // ATSlocal_void (tmp645) ; // ATSlocal_void (tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; ATSlocal (ats_bool_type, tmp648) ; ATSlocal (ats_bool_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_arg_body: /* tmp619 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp620 = ats_selsin_mac(tmp619, atslab_1) */ ; /* ats_ptr_type tmp621 ; */ tmp621 = arg1 ; tmp622 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_funclo_of_d2exp (arg5, (&tmp621)) ; /* ats_ptr_type tmp623 ; */ tmp623 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ; tmp624 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_s2eff_of_d2exp (tmp622, (&tmp623)) ; /* tmp625 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_lam (tmp623) ; /* tmp626 = ats_selsin_mac(tmp625, atslab_1) */ ; tmp627 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_syn_type (arg4) ; /* tmp628 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__funarg_patck_exhaust (arg0, arg4, tmp627) ; tmp629 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trup_arg (arg3, arg4) ; /* tmp630 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_lam (arg2) ; /* tmp631 = ats_selsin_mac(tmp630, atslab_1) */ ; /* tmp632 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst (tmp629) ; /* tmp633 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_lam (arg2) ; /* tmp634 = ats_selsin_mac(tmp633, atslab_1) */ ; /* tmp635 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst (tmp629) ; /* tmp636 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_lam (tmp629) ; /* tmp637 = ats_selsin_mac(tmp636, atslab_1) */ ; tmp638 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp624) ; /* tmp639 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check (arg0) ; tmp641 = atspre_gt_int_int (arg2, 0) ; if (tmp641) { /* tmp640 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check_llam (arg0) ; } else { /* empty */ } /* end of [if] */ /* tmp642 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop () ; /* tmp643 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop () ; /* tmp644 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop () ; /* tmp645 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop () ; /* tmp646 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (arg0) ; tmp647 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, tmp638), atslab_d3exp_type) ; tmp648 = atspre_gt_int_int (arg2, 0) ; tmp649 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (tmp647) ; tmp650 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc (arg0, tmp649, tmp648, tmp621) ; tmp651 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (tmp650, tmp621, arg2, tmp623, arg3, tmp627, tmp647) ; tmp618.atslab_0 = tmp651 ; tmp618.atslab_1 = tmp629 ; tmp618.atslab_2 = tmp638 ; return (tmp618) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_arg_body] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 43787(line=1989, offs=3) -- 44176(line=2001, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_dyn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; ATSlocal (ats_int_type, tmp655) ; ATSlocal (ats_int_type, tmp656) ; ATSlocal (ats_ptr_type, tmp657) ; ATSlocal (ats_ptr_type, tmp658) ; ATSlocal (ats_ptr_type, tmp659) ; ATSlocal (anairiats_rec_3, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; ATSlocal (ats_ptr_type, tmp663) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_dyn: tmp653 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp654 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp654)->tag != 56) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 43834(line=1991, offs=7) -- 43897(line=1992, offs=53)") ; } tmp655 = ats_caselptrlab_mac(anairiats_sum_28, tmp654, atslab_0) ; tmp656 = ats_caselptrlab_mac(anairiats_sum_28, tmp654, atslab_1) ; tmp657 = ats_caselptrlab_mac(anairiats_sum_28, tmp654, atslab_2) ; tmp658 = ats_caselptrlab_mac(anairiats_sum_28, tmp654, atslab_3) ; tmp659 = (ats_sum_ptr_type)0 ; tmp660 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_arg_body (tmp653, tmp659, tmp655, tmp656, tmp657, tmp658) ; tmp661 = ats_select_mac(tmp660, atslab_0) ; tmp662 = ats_select_mac(tmp660, atslab_1) ; tmp663 = ats_select_mac(tmp660, atslab_2) ; tmp652 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_dyn (tmp653, tmp661, tmp655, tmp656, tmp662, tmp663) ; return (tmp652) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_dyn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 44265(line=2007, offs=3) -- 45333(line=2042, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_laminit_dyn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; ATSlocal (ats_ptr_type, tmp666) ; ATSlocal (ats_int_type, tmp667) ; ATSlocal (ats_int_type, tmp668) ; ATSlocal (ats_ptr_type, tmp669) ; ATSlocal (ats_ptr_type, tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; ATSlocal (anairiats_rec_3, tmp672) ; ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; // ATSlocal_void (tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; ATSlocal (ats_int_type, tmp679) ; // ATSlocal_void (tmp680) ; // ATSlocal_void (tmp681) ; // ATSlocal_void (tmp682) ; // ATSlocal_void (tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_laminit_dyn: tmp665 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp666 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp666)->tag != 57) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 44312(line=2009, offs=7) -- 44379(line=2010, offs=53)") ; } tmp667 = ats_caselptrlab_mac(anairiats_sum_28, tmp666, atslab_0) ; tmp668 = ats_caselptrlab_mac(anairiats_sum_28, tmp666, atslab_1) ; tmp669 = ats_caselptrlab_mac(anairiats_sum_28, tmp666, atslab_2) ; tmp670 = ats_caselptrlab_mac(anairiats_sum_28, tmp666, atslab_3) ; tmp671 = ATS_MALLOC(sizeof(anairiats_sum_29)) ; ats_selptrset_mac(anairiats_sum_29, tmp671, atslab_0, 0) ; tmp672 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_arg_body (tmp665, tmp671, tmp667, tmp668, tmp669, tmp670) ; tmp673 = ats_select_mac(tmp672, atslab_0) ; tmp674 = ats_select_mac(tmp672, atslab_1) ; tmp675 = ats_select_mac(tmp672, atslab_2) ; tmp677 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, tmp673), atslab_s2exp_node) ; do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)tmp677)->tag != 19) { goto __ats_lab_160_0 ; } __ats_lab_157_1: tmp678 = ats_caselptrlab_mac(anairiats_sum_22, tmp677, atslab_0) ; do { /* branch: __ats_lab_158 */ __ats_lab_158_0: if (tmp678 == (ats_sum_ptr_type)0) { goto __ats_lab_159_0 ; } tmp679 = ats_caselptrlab_mac(anairiats_sum_29, tmp678, atslab_0) ; if (tmp679 != 0) { goto __ats_lab_159_0 ; } __ats_lab_158_1: break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: __ats_lab_159_1: /* tmp680 = */ prerr_error3_loc_02089_ (tmp665) ; /* tmp681 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats"), ATSstrcst("d2exp_trup_laminit_dyn")) ; /* tmp682 = */ atspre_prerr_string (ATSstrcst(": the initializing value is expected to be a flat closure but it is not.")) ; /* tmp683 = */ atspre_prerr_newline () ; tmp684 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp684)->tag = 21 ; ats_selptrset_mac(anairiats_sum_11, tmp684, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_11, tmp684, atslab_1, tmp678) ; /* tmp676 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp684) ; break ; } while (0) ; break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: __ats_lab_160_1: break ; } while (0) ; tmp664 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_laminit_dyn (tmp665, tmp673, tmp667, tmp668, tmp674, tmp675) ; return (tmp664) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_laminit_dyn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 45422(line=2048, offs=3) -- 45893(line=2064, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_sta (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp685) ; ATSlocal (ats_ptr_type, tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_ptr_type, tmp688) ; ATSlocal (ats_ptr_type, tmp689) ; ATSlocal (ats_ptr_type, tmp690) ; // ATSlocal_void (tmp691) ; // ATSlocal_void (tmp692) ; // ATSlocal_void (tmp693) ; // ATSlocal_void (tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; // ATSlocal_void (tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_ptr_type, tmp698) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_sta: tmp686 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp687 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp687)->tag != 58) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 45469(line=2050, offs=7) -- 45520(line=2050, offs=58)") ; } tmp688 = ats_caselptrlab_mac(anairiats_sum_17, tmp687, atslab_0) ; tmp689 = ats_caselptrlab_mac(anairiats_sum_17, tmp687, atslab_1) ; tmp690 = ats_caselptrlab_mac(anairiats_sum_17, tmp687, atslab_2) ; /* tmp691 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp692 = ats_selsin_mac(tmp691, atslab_1) */ ; /* tmp693 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp688) ; /* tmp694 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (tmp686, tmp689) ; tmp695 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp690) ; /* tmp696 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp686) ; tmp697 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, tmp695), atslab_d3exp_type) ; tmp698 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (tmp688, tmp689, tmp697) ; tmp685 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_sta (tmp686, tmp698, tmp688, tmp689, tmp695) ; return (tmp685) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_sta] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 45978(line=2070, offs=3) -- 46355(line=2081, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_met (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_ptr_type, tmp700) ; ATSlocal (ats_ptr_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; ATSlocal (ats_ptr_type, tmp703) ; ATSlocal (ats_ptr_type, tmp704) ; // ATSlocal_void (tmp705) ; // ATSlocal_void (tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; // ATSlocal_void (tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; // ATSlocal_void (tmp710) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_met: tmp700 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp701 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp701)->tag != 59) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 46025(line=2072, offs=7) -- 46088(line=2073, offs=53)") ; } tmp702 = ats_caselptrlab_mac(anairiats_sum_17, tmp701, atslab_0) ; tmp703 = ats_caselptrlab_mac(anairiats_sum_17, tmp701, atslab_1) ; tmp704 = ats_caselptrlab_mac(anairiats_sum_17, tmp701, atslab_2) ; /* tmp705 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2explst_check_termet (tmp700, tmp703) ; tmp707 = ats_ptrget_mac(ats_ptr_type, tmp702) ; /* tmp706 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_push_dvarlst (tmp707, tmp703) ; /* tmp708 = ats_selsin_mac(tmp706, atslab_1) */ ; tmp709 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp704) ; /* tmp710 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__termetenv_pop () ; tmp699 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_met (tmp700, tmp703, tmp709) ; return (tmp699) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_lam_met] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 46420(line=2088, offs=1) -- 46669(line=2100, offs=4) */ ATSstaticdec() ats_ptr_type s2exp_clo2fun_66 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp711) ; ATSlocal (ats_ptr_type, tmp712) ; ATSlocal (ats_int_type, tmp713) ; ATSlocal (ats_ptr_type, tmp714) ; ATSlocal (ats_int_type, tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; ATSlocal (ats_ptr_type, tmp717) ; ATSlocal (ats_ptr_type, tmp718) ; ATSlocal (ats_ptr_type, tmp719) ; __ats_lab_s2exp_clo2fun_66: tmp712 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_161 */ __ats_lab_161_0: if (((ats_sum_ptr_type)tmp712)->tag != 19) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp713 = ats_caselptrlab_mac(anairiats_sum_22, tmp712, atslab_1) ; tmp714 = ats_caselptrlab_mac(anairiats_sum_22, tmp712, atslab_2) ; tmp715 = ats_caselptrlab_mac(anairiats_sum_22, tmp712, atslab_3) ; tmp716 = ats_caselptrlab_mac(anairiats_sum_22, tmp712, atslab_4) ; tmp717 = ats_caselptrlab_mac(anairiats_sum_22, tmp712, atslab_5) ; tmp718 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_s2exp_srt) ; tmp719 = (ats_sum_ptr_type)0 ; tmp711 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (tmp718, tmp719, tmp713, tmp714, tmp715, tmp716, tmp717) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: __ats_lab_162_1: tmp711 = arg0 ; break ; } while (0) ; return (tmp711) ; } /* end of [s2exp_clo2fun_66] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 46744(line=2105, offs=16) -- 47136(line=2121, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_fix (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp720) ; ATSlocal (ats_ptr_type, tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; ATSlocal (ats_int_type, tmp723) ; ATSlocal (ats_ptr_type, tmp724) ; ATSlocal (ats_ptr_type, tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; ATSlocal (ats_ptr_type, tmp727) ; ATSlocal (ats_ptr_type, tmp728) ; // ATSlocal_void (tmp729) ; // ATSlocal_void (tmp730) ; ATSlocal (ats_ptr_type, tmp731) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_fix: tmp721 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp722 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp722)->tag != 60) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 46790(line=2108, offs=5) -- 46834(line=2108, offs=49)") ; } tmp723 = ats_caselptrlab_mac(anairiats_sum_14, tmp722, atslab_0) ; tmp724 = ats_caselptrlab_mac(anairiats_sum_14, tmp722, atslab_1) ; tmp725 = ats_caselptrlab_mac(anairiats_sum_14, tmp722, atslab_2) ; tmp726 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type (tmp725) ; tmp727 = s2exp_clo2fun_66 (tmp726) ; tmp728 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp728, atslab_0, tmp727) ; /* tmp729 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp724, tmp728) ; /* tmp730 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp724, tmp728) ; tmp731 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp725) ; tmp720 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_fix (tmp721, tmp726, tmp723, tmp724, tmp731) ; return (tmp720) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_fix] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 47238(line=2129, offs=3) -- 47996(line=2158, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_delay (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp732) ; ATSlocal (ats_ptr_type, tmp733) ; ATSlocal (ats_ptr_type, tmp734) ; ATSlocal (ats_ptr_type, tmp735) ; ATSlocal (ats_ptr_type, tmp736) ; ATSlocal (ats_ptr_type, tmp737) ; ATSlocal (anairiats_rec_3, tmp738) ; ATSlocal (ats_ptr_type, tmp739) ; ATSlocal (ats_ptr_type, tmp740) ; ATSlocal (ats_ptr_type, tmp741) ; ATSlocal (ats_ptr_type, tmp742) ; ATSlocal (ats_ptr_type, tmp743) ; ATSlocal (ats_bool_type, tmp744) ; // ATSlocal_void (tmp745) ; // ATSlocal_void (tmp746) ; // ATSlocal_void (tmp747) ; // ATSlocal_void (tmp748) ; ATSlocal (ats_ptr_type, tmp749) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_delay: tmp733 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp734 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp734)->tag != 61) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 47284(line=2132, offs=5) -- 47321(line=2132, offs=42)") ; } tmp735 = ats_caselptrlab_mac(anairiats_sum_6, tmp734, atslab_0) ; tmp736 = (ats_sum_ptr_type)0 ; tmp737 = (ats_sum_ptr_type)0 ; tmp738 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_arg_body (tmp733, tmp736, 0, -1, tmp737, tmp735) ; tmp739 = ats_select_mac(tmp738, atslab_0) ; tmp740 = ats_select_mac(tmp738, atslab_1) ; tmp741 = ats_select_mac(tmp738, atslab_2) ; tmp742 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp741) ; tmp743 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_t0ype_type (tmp742) ; tmp744 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp742) ; if (tmp744) { /* tmp746 = */ prerr_error3_loc_02089_ (tmp733) ; /* tmp747 = */ atspre_prerr_string (ATSstrcst(": it is not allowed to apply $delay to a linear value.")) ; /* tmp748 = */ atspre_prerr_newline () ; tmp749 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp749)->tag = 38 ; ats_selptrset_mac(anairiats_sum_11, tmp749, atslab_0, tmp733) ; ats_selptrset_mac(anairiats_sum_11, tmp749, atslab_1, tmp741) ; /* tmp745 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp749) ; } else { /* empty */ } /* end of [if] */ tmp732 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_delay (tmp733, tmp743, tmp741) ; return (tmp732) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_delay] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 48078(line=2164, offs=3) -- 49509(line=2218, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_ldelay (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; ATSlocal (ats_ptr_type, tmp752) ; ATSlocal (ats_ptr_type, tmp753) ; ATSlocal (ats_ptr_type, tmp754) ; ATSlocal (ats_ptr_type, tmp755) ; ATSlocal (ats_ptr_type, tmp756) ; ATSlocal (ats_ptr_type, tmp757) ; ATSlocal (ats_ptr_type, tmp758) ; // ATSlocal_void (tmp759) ; // ATSlocal_void (tmp760) ; ATSlocal (ats_ptr_type, tmp761) ; // ATSlocal_void (tmp762) ; // ATSlocal_void (tmp763) ; // ATSlocal_void (tmp764) ; // ATSlocal_void (tmp765) ; ATSlocal (ats_ptr_type, tmp766) ; ATSlocal (ats_ptr_type, tmp767) ; ATSlocal (ats_ptr_type, tmp768) ; ATSlocal (ats_ptr_type, tmp769) ; // ATSlocal_void (tmp770) ; // ATSlocal_void (tmp771) ; ATSlocal (ats_ptr_type, tmp772) ; ATSlocal (ats_ptr_type, tmp773) ; // ATSlocal_void (tmp774) ; // ATSlocal_void (tmp775) ; // ATSlocal_void (tmp776) ; // ATSlocal_void (tmp777) ; // ATSlocal_void (tmp778) ; // ATSlocal_void (tmp779) ; ATSlocal (ats_ptr_type, tmp780) ; ATSlocal (ats_ptr_type, tmp781) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_ldelay: tmp751 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp752 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp752)->tag != 62) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 48124(line=2167, offs=5) -- 48167(line=2167, offs=48)") ; } tmp753 = ats_caselptrlab_mac(anairiats_sum_11, tmp752, atslab_0) ; tmp754 = ats_caselptrlab_mac(anairiats_sum_11, tmp752, atslab_1) ; tmp755 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; /* ats_ptr_type tmp756 ; */ tmp756 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize (tmp755) ; tmp757 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp753), atslab_d2exp_loc) ; tmp758 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp757) ; /* tmp759 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp760 = ats_selsin_mac(tmp759, atslab_1) */ ; tmp761 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp753) ; /* tmp762 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (tmp758) ; /* tmp763 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp757) ; /* tmp764 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (tmp756, tmp758) ; /* tmp765 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (tmp755) ; do { /* branch: __ats_lab_163 */ __ats_lab_163_0: if (tmp754 == (ats_sum_ptr_type)0) { goto __ats_lab_164_0 ; } __ats_lab_163_1: tmp767 = ats_caselptrlab_mac(anairiats_sum_12, tmp754, atslab_0) ; tmp766 = tmp767 ; break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (tmp754 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 48683(line=2189, offs=1) -- 48745(line=2189, offs=63)") ; } __ats_lab_164_1: tmp766 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (tmp757) ; break ; } while (0) ; tmp768 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp766), atslab_d2exp_loc) ; tmp769 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp768) ; /* tmp770 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp771 = ats_selsin_mac(tmp770, atslab_1) */ ; tmp772 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp773 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp766, tmp772) ; /* tmp774 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (tmp769) ; /* tmp775 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp768) ; /* tmp776 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (tmp756, tmp769) ; /* tmp777 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process (tmp756, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_nil) ; /* tmp778 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize (tmp756) ; /* tmp779 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (tmp751, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_nil) ; tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp761) ; tmp781 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_lazy_vt0ype_vtype (tmp780) ; tmp750 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ldelay (tmp751, tmp781, tmp761, tmp773) ; return (tmp750) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_ldelay] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 49587(line=2223, offs=16) -- 49765(line=2230, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_for (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp782) ; ATSlocal (ats_ptr_type, tmp783) ; ATSlocal (ats_ptr_type, tmp784) ; ATSlocal (ats_ptr_type, tmp785) ; ATSlocal (ats_ptr_type, tmp786) ; ATSlocal (ats_ptr_type, tmp787) ; ATSlocal (ats_ptr_type, tmp788) ; ATSlocal (ats_ptr_type, tmp789) ; ATSlocal (ats_ptr_type, tmp790) ; ATSlocal (ats_ptr_type, tmp791) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_for: tmp783 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp784 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp784)->tag != 63) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 49633(line=2226, offs=5) -- 49688(line=2226, offs=60)") ; } tmp785 = ats_caselptrlab_mac(anairiats_sum_30, tmp784, atslab_0) ; tmp786 = ats_caselptrlab_mac(anairiats_sum_30, tmp784, atslab_1) ; tmp787 = ats_caselptrlab_mac(anairiats_sum_30, tmp784, atslab_2) ; tmp788 = ats_caselptrlab_mac(anairiats_sum_30, tmp784, atslab_3) ; tmp789 = ats_caselptrlab_mac(anairiats_sum_30, tmp784, atslab_4) ; tmp790 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp790, atslab_0, tmp786) ; tmp791 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp791, atslab_0, tmp788) ; tmp782 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loop (tmp783, tmp785, tmp790, tmp787, tmp791, tmp789) ; return (tmp782) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_for] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 49821(line=2233, offs=18) -- 49993(line=2240, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_while (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp792) ; ATSlocal (ats_ptr_type, tmp793) ; ATSlocal (ats_ptr_type, tmp794) ; ATSlocal (ats_ptr_type, tmp795) ; ATSlocal (ats_ptr_type, tmp796) ; ATSlocal (ats_ptr_type, tmp797) ; ATSlocal (ats_ptr_type, tmp798) ; ATSlocal (ats_ptr_type, tmp799) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_while: tmp793 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp794 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp794)->tag != 64) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 49867(line=2236, offs=5) -- 49912(line=2236, offs=50)") ; } tmp795 = ats_caselptrlab_mac(anairiats_sum_17, tmp794, atslab_0) ; tmp796 = ats_caselptrlab_mac(anairiats_sum_17, tmp794, atslab_1) ; tmp797 = ats_caselptrlab_mac(anairiats_sum_17, tmp794, atslab_2) ; tmp798 = (ats_sum_ptr_type)0 ; tmp799 = (ats_sum_ptr_type)0 ; tmp792 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loop (tmp793, tmp795, tmp798, tmp796, tmp799, tmp797) ; return (tmp792) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_while] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 50076(line=2246, offs=3) -- 50815(line=2275, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_trywith (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp800) ; ATSlocal (ats_ptr_type, tmp801) ; ATSlocal (ats_ptr_type, tmp802) ; ATSlocal (ats_ptr_type, tmp803) ; ATSlocal (ats_ptr_type, tmp804) ; ATSlocal (ats_ptr_type, tmp805) ; ATSlocal (ats_ptr_type, tmp806) ; ATSlocal (ats_ptr_type, tmp807) ; // ATSlocal_void (tmp808) ; // ATSlocal_void (tmp809) ; // ATSlocal_void (tmp810) ; // ATSlocal_void (tmp811) ; ATSlocal (ats_ptr_type, tmp812) ; ATSlocal (ats_ptr_type, tmp813) ; ATSlocal (ats_ptr_type, tmp814) ; ATSlocal (ats_ptr_type, tmp815) ; ATSlocal (ats_ptr_type, tmp816) ; ATSlocal (ats_ptr_type, tmp817) ; ATSlocal (ats_ptr_type, tmp818) ; ATSlocal (ats_ptr_type, tmp819) ; ATSlocal (ats_ptr_type, tmp820) ; // ATSlocal_void (tmp821) ; // ATSlocal_void (tmp822) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_trywith: tmp801 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp802 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp802)->tag != 66) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 50123(line=2248, offs=7) -- 50173(line=2249, offs=40)") ; } tmp803 = ats_caselptrlab_mac(anairiats_sum_17, tmp802, atslab_0) ; tmp804 = ats_caselptrlab_mac(anairiats_sum_17, tmp802, atslab_1) ; tmp805 = ats_caselptrlab_mac(anairiats_sum_17, tmp802, atslab_2) ; tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp804) ; tmp807 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp806) ; /* tmp808 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_try () ; /* tmp809 = ats_selsin_mac(tmp808, atslab_1) */ ; /* tmp810 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_try () ; /* tmp811 = ats_selsin_mac(tmp810, atslab_1) */ ; tmp812 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_exception_vtype () ; tmp813 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, tmp806), atslab_d3exp_loc) ; tmp814 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_top (tmp813, tmp812) ; tmp816 = (ats_sum_ptr_type)0 ; tmp815 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp815, atslab_0, tmp814) ; ats_selptrset_mac(anairiats_sum_16, tmp815, atslab_1, tmp816) ; tmp818 = (ats_sum_ptr_type)0 ; tmp817 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ats_selptrset_mac(anairiats_sum_16, tmp817, atslab_0, tmp812) ; ats_selptrset_mac(anairiats_sum_16, tmp817, atslab_1, tmp818) ; tmp820 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; tmp819 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__c2laulst_trdn (tmp801, tmp820, tmp803, tmp805, tmp815, tmp817, tmp807) ; /* tmp821 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop () ; /* tmp822 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop () ; tmp800 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_trywith (tmp801, tmp806, tmp819) ; return (tmp800) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_trywith] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 50896(line=2281, offs=3) -- 51234(line=2294, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_mac (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp823) ; ATSlocal (ats_ptr_type, tmp824) ; ATSlocal (ats_ptr_type, tmp825) ; ATSlocal (ats_ptr_type, tmp826) ; ATSlocal (ats_ptr_type, tmp827) ; ATSlocal (ats_ptr_type, tmp828) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_mac: tmp824 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp824)->tag != 70) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 50915(line=2282, offs=7) -- 50945(line=2282, offs=37)") ; } tmp825 = ats_caselptrlab_mac(anairiats_sum_6, tmp824, atslab_0) ; tmp827 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp828 = (ats_sum_ptr_type)0 ; tmp826 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_app_short (tmp827, tmp825, tmp828) ; tmp823 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp826) ; return (tmp823) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_mac] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2222(line=82, offs=17) -- 2282(line=85, offs=2) */ ATSstaticdec() ats_void_type prerr_errmac_loc_02088_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp836) ; // ATSlocal_void (tmp837) ; __ats_lab_prerr_errmac_loc_02088_: /* tmp837 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp836 = */ atspre_prerr_string (ATSstrcst(": error(mac)")) ; return /* (tmp836) */ ; } /* end of [prerr_errmac_loc_02088_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 51285(line=2298, offs=3) -- 51991(line=2332, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_macsyn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp829) ; ATSlocal (ats_ptr_type, tmp830) ; ATSlocal (ats_ptr_type, tmp831) ; ATSlocal (ats_ptr_type, tmp832) ; ATSlocal (ats_ptr_type, tmp833) ; ATSlocal (ats_ptr_type, tmp834) ; // ATSlocal_void (tmp835) ; // ATSlocal_void (tmp838) ; // ATSlocal_void (tmp839) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_macsyn: tmp830 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp831 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp831)->tag != 71) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 51331(line=2301, offs=5) -- 51369(line=2301, offs=43)") ; } tmp832 = ats_caselptrlab_mac(anairiats_sum_11, tmp831, atslab_0) ; tmp833 = ats_caselptrlab_mac(anairiats_sum_11, tmp831, atslab_1) ; do { /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)tmp832)->tag != 1) { goto __ats_lab_166_0 ; } __ats_lab_165_1: tmp834 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_decode (tmp833) ; break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)tmp832)->tag != 2) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp834 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_xstage (tmp833) ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: // if (((ats_sum_ptr_type)tmp832)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_167_1: /* tmp835 = */ prerr_errmac_loc_02088_ (tmp830) ; /* tmp838 = */ atspre_prerr_string (ATSstrcst(": the macro syntax `(...) is used incorrectly.")) ; /* tmp839 = */ atspre_prerr_newline () ; tmp834 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp830) ; break ; } while (0) ; tmp829 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp834) ; return (tmp829) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_macsyn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 52077(line=2338, offs=3) -- 52456(line=2361, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solassert (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp840) ; ATSlocal (ats_ptr_type, tmp841) ; ATSlocal (ats_ptr_type, tmp842) ; ATSlocal (ats_ptr_type, tmp843) ; ATSlocal (ats_ptr_type, tmp844) ; ATSlocal (ats_ptr_type, tmp845) ; // ATSlocal_void (tmp846) ; ATSlocal (ats_ptr_type, tmp847) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solassert: tmp841 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp842 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp842)->tag != 73) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 52127(line=2344, offs=1) -- 52169(line=2345, offs=30)") ; } tmp843 = ats_caselptrlab_mac(anairiats_sum_6, tmp842, atslab_0) ; tmp844 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp843) ; tmp845 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp844) ; /* tmp846 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_assert (tmp841, tmp845) ; tmp847 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp840 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_empty (tmp841, tmp847) ; return (tmp840) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solassert] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 52537(line=2367, offs=3) -- 52860(line=2388, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solverify (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp848) ; ATSlocal (ats_ptr_type, tmp849) ; ATSlocal (ats_ptr_type, tmp850) ; ATSlocal (ats_ptr_type, tmp851) ; ATSlocal (ats_ptr_type, tmp852) ; // ATSlocal_void (tmp853) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solverify: tmp849 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp850 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp850)->tag != 74) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_up.dats: 52587(line=2373, offs=1) -- 52630(line=2374, offs=31)") ; } tmp851 = ats_caselptrlab_mac(anairiats_sum_6, tmp850, atslab_0) ; tmp852 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp851) ; /* tmp853 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_verify (tmp849, tmp852) ; tmp848 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_solverify (tmp849, tmp852) ; return (tmp848) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__d2exp_trup_solverify] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_up_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_dynexp_up_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp3_sats.c0000644000175000017500000005441413431250607022146 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__LABP3AT_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tany_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvar_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tcon_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tint_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tintrep_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tbool_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tchar_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tfloat_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tstring_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Ti0nt_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tf0loat_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tempty_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trec_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tlst_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trefas_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Texist_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvbox_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tann_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Terrpat_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABlab_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABind_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecst_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evar_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eint_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eintrep_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ebool_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Echar_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efloat_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Estring_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ei0nt_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ef0loat_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecstsp_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etyrep_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eliteral_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etop_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eempty_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextval_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextfcall_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextmcall_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Econ_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpcst_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpvar_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efoldat_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efreeat_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eitem_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elet_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_sta_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_dyn_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eif_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esif_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecase_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Escase_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eifcase_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elst_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etup_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erec_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eseq_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eselab_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofvar_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofsel_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erefarg_40) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_var_41) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ptr_42) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ref_43) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_var_44) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ptr_45) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ref_46) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_var_47) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ptr_48) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ref_49) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_assgn_50) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrpsz_51) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrinit_52) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eraise_53) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eeffmask_54) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evararg_55) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evcopyenv_56) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etempenver_57) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eann_type_58) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_dyn_59) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elaminit_dyn_60) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_sta_61) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_met_62) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efix_63) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Edelay_64) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eldelay_65) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elazyeval_66) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloop_67) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloopexn_68) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etrywith_69) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esolverify_70) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eerrexp_71) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clist_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Csaspdec_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Creassume_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextype_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextvar_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextcode_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cexndecs_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdatdecs_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdcstdecs_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cimpdec_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cfundecs_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_rec_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvardecs_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cprvardecs_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cinclude_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaload_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaloadloc_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdynload_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clocal_20) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__LABP3AT_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tany_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvar_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tcon_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tint_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tintrep_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tbool_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tchar_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tfloat_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tstring_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Ti0nt_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tf0loat_10.tag = 10 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tempty_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trec_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tlst_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trefas_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Texist_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvbox_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tann_17.tag = 17 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Terrpat_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABlab_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABind_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecst_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evar_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eint_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eintrep_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ebool_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Echar_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efloat_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Estring_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ei0nt_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ef0loat_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecstsp_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etyrep_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eliteral_12.tag = 12 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etop_13.tag = 13 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eempty_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextval_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextfcall_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextmcall_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Econ_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpcst_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpvar_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efoldat_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efreeat_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eitem_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elet_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_sta_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_dyn_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eif_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esif_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecase_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Escase_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eifcase_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elst_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etup_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erec_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eseq_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eselab_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofvar_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofsel_38.tag = 38 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_39.tag = 39 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erefarg_40.tag = 40 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_var_41.tag = 41 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ptr_42.tag = 42 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ref_43.tag = 43 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_var_44.tag = 44 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ptr_45.tag = 45 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ref_46.tag = 46 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_var_47.tag = 47 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ptr_48.tag = 48 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ref_49.tag = 49 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_assgn_50.tag = 50 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrpsz_51.tag = 51 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrinit_52.tag = 52 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eraise_53.tag = 53 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eeffmask_54.tag = 54 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evararg_55.tag = 55 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evcopyenv_56.tag = 56 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etempenver_57.tag = 57 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eann_type_58.tag = 58 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_dyn_59.tag = 59 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elaminit_dyn_60.tag = 60 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_sta_61.tag = 61 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_met_62.tag = 62 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efix_63.tag = 63 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Edelay_64.tag = 64 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eldelay_65.tag = 65 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elazyeval_66.tag = 66 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloop_67.tag = 67 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloopexn_68.tag = 68 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etrywith_69.tag = 69 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esolverify_70.tag = 70 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eerrexp_71.tag = 71 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clist_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Csaspdec_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Creassume_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextype_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextvar_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextcode_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cexndecs_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdatdecs_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdcstdecs_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cimpdec_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cfundecs_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_rec_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvardecs_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cprvardecs_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cinclude_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaload_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaloadloc_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdynload_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clocal_20.tag = 20 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp3_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_depgen_sats.c0000644000175000017500000000242713431250607022013 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_depgen_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_depgen_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_viewat_dats.c0000644000175000017500000020504513431250607023324 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_d3lab_loc ; ats_ptr_type atslab_d3lab_node ; ats_ptr_type atslab_d3lab_overld ; ats_ptr_type atslab_d3lab_overld_app ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_9 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eviewat_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALderef_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_mut_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_nonmut_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_nonlval_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_addrless_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_nonderef_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_pfobj_search_none_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_viewat_addreq_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_viewat_deref_context_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_set_viewat_atview_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_set_viewat_without_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat_assgn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_viewat_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_exch_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat_check) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_01854_ () ; static ats_void_type prerr_error3_loc_01860_ (ats_ptr_type arg0) ; static ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_context_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxlabs_4 (ats_ptr_type arg0) ; static ats_ptr_type auxmain_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type s2addr_get_root_7 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type eq_dlablst_slablst_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_nonatview_9 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_nonwithout_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxck_addreq_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr_nonptr_14 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr1_15 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlablst1_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr_nonptr_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlablst1_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 1494(line=41, offs=1) -- 1542(line=43, offs=31) */ ATSstaticdec() ats_void_type prerr_FILENAME_01854_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_01854_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_viewat")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_01854_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_01860_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; __ats_lab_prerr_error3_loc_01860_: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp3 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp3) */ ; } /* end of [prerr_error3_loc_01860_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 1976(line=74, offs=1) -- 2365(line=86, offs=4) */ ATSstaticdec() ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_auxerr_pfobj_1: /* tmp2 = */ prerr_error3_loc_01860_ (arg0) ; /* tmp5 = */ atspre_prerr_string (ATSstrcst(": [view@] operation cannot be performed")) ; /* tmp6 = */ atspre_prerr_string (ATSstrcst(": the proof search for view located at [")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp8 = */ atspre_prerr_string (ATSstrcst("] failed to turn up a result.")) ; /* tmp9 = */ atspre_prerr_newline () ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)tmp10)->tag = 54 ; ats_selptrset_mac(anairiats_sum_0, tmp10, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp10, atslab_1, arg1) ; /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp10) ; return /* (tmp1) */ ; } /* end of [auxerr_pfobj_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 2396(line=89, offs=1) -- 2755(line=99, offs=4) */ ATSstaticdec() ats_void_type auxerr_context_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab_auxerr_context_3: /* tmp12 = */ prerr_error3_loc_01860_ (arg0) ; /* tmp13 = */ atspre_prerr_string (ATSstrcst(": [view@] operation cannot be performed")) ; /* tmp14 = */ atspre_prerr_string (ATSstrcst(": context cannot be formed for the atview being taken.")) ; /* tmp15 = */ atspre_prerr_newline () ; tmp16 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp16)->tag = 69 ; ats_selptrset_mac(anairiats_sum_1, tmp16, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp16, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_1, tmp16, atslab_2, arg2) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp16) ; return /* (tmp11) */ ; } /* end of [auxerr_context_3] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 2788(line=101, offs=5) -- 3071(line=112, offs=2) */ ATSstaticdec() ats_ptr_type auxlabs_4 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab_auxlabs_4: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp19 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp20 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp18), atslab_d3lab_node) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp20)->tag != 0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_4, tmp20, atslab_0) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp22)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp22, atslab_0, tmp21) ; tmp23 = auxlabs_4 (tmp19) ; tmp17 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp17, atslab_0, tmp22) ; ats_selptrset_mac(anairiats_sum_2, tmp17, atslab_1, tmp23) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp17 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp17 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp17) ; } /* end of [auxlabs_4] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 3097(line=114, offs=5) -- 3933(line=150, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; __ats_lab_auxmain_5: // tmp25 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp26 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp27 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_2) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_3) ; ATS_FREE(arg1) ; /* ats_ptr_type tmp29 ; */ tmp29 = (ats_sum_ptr_type)0 ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context (arg0, tmp27, arg2, (&tmp29)) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp29 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_6, tmp29, atslab_0) ; /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (tmp25) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without (tmp30) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (tmp31, tmp33) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl (tmp26, tmp34) ; tmp37 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp37, atslab_0, tmp35) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp25, tmp37) ; tmp38 = auxlabs_4 (arg2) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj (tmp28, tmp34, tmp38) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp30, tmp39) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp29 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: /* tmp40 = */ auxerr_context_3 (arg0, tmp27, arg2) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; break ; } while (0) ; return (tmp24) ; } /* end of [auxmain_5] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 4011(line=156, offs=3) -- 4268(line=166, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_viewat_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_viewat_deref: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview (arg1) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp42 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_6, tmp42, atslab_0) ; ATS_FREE(tmp42) ; tmp41 = auxmain_5 (arg0, tmp43, arg2) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp42 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: /* tmp44 = */ auxerr_pfobj_1 (arg0, arg1) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ; break ; } while (0) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_viewat_deref] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 4350(line=172, offs=5) -- 4556(line=180, offs=33) */ ATSstaticdec() ats_ptr_type s2addr_get_root_7 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_s2addr_get_root_7: tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp46)->tag != 16) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_1, tmp46, atslab_0) ; tmp48 = ats_caselptrlab_mac(anairiats_sum_1, tmp46, atslab_2) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp48 ; tmp45 = tmp47 ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp49 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp49 ; tmp45 = arg0 ; break ; } while (0) ; return (tmp45) ; } /* end of [s2addr_get_root_7] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 4590(line=183, offs=5) -- 5101(line=202, offs=6) */ ATSstaticdec() ats_bool_type eq_dlablst_slablst_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; __ats_lab_eq_dlablst_slablst_8: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_10_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_11_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp54 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp55 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp51), atslab_d3lab_node) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp55)->tag != 0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: if (((ats_sum_ptr_type)tmp53)->tag != 0) { goto __ats_lab_13_1 ; } __ats_lab_12_2: tmp56 = ats_caselptrlab_mac(anairiats_sum_4, tmp55, atslab_0) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_4, tmp53, atslab_0) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (tmp56, tmp57) ; if (tmp58) { arg0 = tmp52 ; arg1 = tmp54 ; goto __ats_lab_eq_dlablst_slablst_8 ; // tail call } else { tmp50 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: __ats_lab_13_2: tmp50 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp50 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp50 = ats_false_bool ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp50 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; return (tmp50) ; } /* end of [eq_dlablst_slablst_8] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 5187(line=210, offs=1) -- 5612(line=221, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonatview_9 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab_auxerr_nonatview_9: /* tmp60 = */ prerr_error3_loc_01860_ (arg0) ; /* tmp61 = */ atspre_prerr_string (ATSstrcst(": viewat-restoration cannot be performed")) ; /* tmp62 = */ atspre_prerr_string (ATSstrcst(": proof of some atview is needed but one of the following type is given: ")) ; /* tmp63 = */ atspre_prerr_string (ATSstrcst("[")) ; /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp65 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp66 = */ atspre_prerr_newline () ; tmp67 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)tmp67)->tag = 70 ; ats_selptrset_mac(anairiats_sum_0, tmp67, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp67, atslab_1, arg1) ; /* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp67) ; return /* (tmp59) */ ; } /* end of [auxerr_nonatview_9] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 5647(line=224, offs=1) -- 6067(line=235, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonwithout_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab_auxerr_nonwithout_10: /* tmp69 = */ prerr_error3_loc_01860_ (arg0) ; /* tmp70 = */ atspre_prerr_string (ATSstrcst(": viewat-restoration cannot be performed")) ; /* tmp71 = */ atspre_prerr_string (ATSstrcst(": the following type is expected to be a without-type but it is not: ")) ; /* tmp72 = */ atspre_prerr_string (ATSstrcst("[")) ; /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp74 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp75 = */ atspre_prerr_newline () ; tmp76 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)tmp76)->tag = 71 ; ats_selptrset_mac(anairiats_sum_0, tmp76, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp76, atslab_1, arg1) ; /* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp76) ; return /* (tmp68) */ ; } /* end of [auxerr_nonwithout_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 6103(line=237, offs=5) -- 6900(line=264, offs=4) */ ATSstaticdec() ats_void_type auxck_addreq_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_bool_type, tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; __ats_lab_auxck_addreq_11: tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg3) ; /* ats_ptr_type tmp79 ; */ tmp80 = s2addr_get_root_7 (tmp78, (&tmp79)) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_syneq (arg1, tmp80) ; if (tmp81) { tmp82 = eq_dlablst_slablst_8 (arg2, tmp79) ; } else { tmp82 = ats_false_bool ; } /* end of [if] */ tmp83 = atspre_neg_bool (tmp82) ; if (tmp83) { /* tmp84 = */ prerr_error3_loc_01860_ (arg0) ; /* tmp85 = */ atspre_prerr_string (ATSstrcst(": viewat-restoration cannot be performed")) ; /* tmp86 = */ atspre_prerr_string (ATSstrcst(": mismatch of bef/aft locations of atviews:\n")) ; /* tmp87 = */ atspre_prerr_string (ATSstrcst("bef: [")) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp89 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp90 = */ atspre_prerr_newline () ; /* tmp91 = */ atspre_prerr_string (ATSstrcst("aft: [")) ; /* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp78) ; /* tmp93 = */ atspre_prerr_string (ATSstrcst("]")) ; /* tmp94 = */ atspre_prerr_newline () ; tmp95 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp95)->tag = 56 ; ats_selptrset_mac(anairiats_sum_8, tmp95, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_8, tmp95, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_8, tmp95, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_8, tmp95, atslab_3, tmp78) ; /* tmp77 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp95) ; } else { /* empty */ } /* end of [if] */ return /* (tmp77) */ ; } /* end of [auxck_addreq_11] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 6979(line=269, offs=19) -- 7391(line=288, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat: tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg3) ; tmp98 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp97), atslab_s2exp_node) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp98)->tag != 12) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_0, tmp98, atslab_0) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_0, tmp98, atslab_1) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_exch_type (arg0, arg1, arg2, tmp99) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat_check (arg0, arg1, arg2, tmp97, tmp101, tmp99, tmp100) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: /* tmp96 = */ auxerr_nonatview_9 (arg0, tmp97) ; break ; } while (0) ; return /* (tmp96) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 7457(line=291, offs=25) -- 8186(line=319, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat_check (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; // ATSlocal_void (tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat_check: tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg4) ; tmp105 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp103), atslab_s2exp_node) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp105)->tag != 23) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_4, tmp105, atslab_0) ; tmp104 = tmp106 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: /* tmp107 = */ auxerr_nonwithout_10 (arg0, tmp103) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; /* tmp102 = */ auxck_addreq_11 (arg0, arg1, arg2, arg6) ; return /* (tmp102) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat_check] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 8279(line=328, offs=1) -- 8536(line=337, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonptr_14 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab_auxerr_nonptr_14: /* tmp109 = */ prerr_error3_loc_01860_ (arg0) ; /* tmp110 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression is expected to be a pointer.")) ; /* tmp111 = */ atspre_prerr_newline () ; tmp112 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp112)->tag = 53 ; ats_selptrset_mac(anairiats_sum_4, tmp112, atslab_0, arg1) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp112) ; return /* (tmp108) */ ; } /* end of [auxerr_nonptr_14] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 8568(line=339, offs=5) -- 8895(line=350, offs=4) */ ATSstaticdec() ats_void_type auxerr1_15 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab_auxerr1_15: /* tmp114 = */ prerr_error3_loc_01860_ (arg0) ; /* tmp115 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp117 = */ atspre_prerr_string (ATSstrcst("] is not mutable and thus [view@] cannot be applied.")) ; /* tmp118 = */ atspre_prerr_newline () ; tmp119 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)tmp119)->tag = 49 ; ats_selptrset_mac(anairiats_sum_0, tmp119, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp119, atslab_1, arg1) ; /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp119) ; return /* (tmp113) */ ; } /* end of [auxerr1_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 8921(line=352, offs=5) -- 9258(line=369, offs=4) */ ATSstaticdec() ats_ptr_type auxlablst1_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; __ats_lab_auxlablst1_16: tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (arg1) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (tmp121 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp122 = ats_caselptrlab_mac(anairiats_sum_6, tmp121, atslab_0) ; ATS_FREE(tmp121) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_viewat_deref (arg0, tmp122, arg3) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (tmp121 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: /* tmp123 = */ auxerr_nonptr_14 (arg0, arg2) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; return (tmp120) ; } /* end of [auxlablst1_16] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 9337(line=375, offs=3) -- 10805(line=425, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat: tmp125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d2exp_loc) ; tmp126 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp126)->tag != 42) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 9383(line=378, offs=5) -- 9416(line=378, offs=38)") ; } tmp127 = ats_caselptrlab_mac(anairiats_sum_4, tmp126, atslab_0) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize (tmp127) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp128)->tag != 2) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_0, tmp128, atslab_0) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_0, tmp128, atslab_1) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (tmp130) ; tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp129) ; if (tmp132 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 9554(line=387, offs=9) -- 9587(line=387, offs=42)") ; } tmp133 = ats_caselptrlab_mac(anairiats_sum_6, tmp132, atslab_0) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (tmp125, tmp129) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofvar (tmp125, tmp134, tmp129) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_viewat_deref (tmp125, tmp133, tmp131) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat (tmp125, tmp136, tmp135, tmp131) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp128)->tag != 0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_0, tmp128, atslab_0) ; tmp138 = ats_caselptrlab_mac(anairiats_sum_0, tmp128, atslab_1) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp137) ; /* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp139) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (tmp138) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp139) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp142) ; tmp144 = auxlablst1_16 (tmp125, tmp143, tmp139, tmp141) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat (tmp125, tmp144, tmp139, tmp141) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp128)->tag != 1) { goto __ats_lab_27_0 ; } __ats_lab_26_1: /* tmp145 = */ prerr_error3_loc_01860_ (tmp125) ; /* tmp146 = */ atspre_prerr_string (ATSstrcst(": [view@] operation cannot be applied")) ; /* tmp147 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression is addressless.")) ; /* tmp148 = */ atspre_prerr_newline () ; tmp150 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp150)->tag = 52 ; ats_selptrset_mac(anairiats_sum_4, tmp150, atslab_0, arg0) ; /* tmp149 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp150) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp125) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: /* tmp151 = */ prerr_error3_loc_01860_ (tmp125) ; /* tmp152 = */ atspre_prerr_string (ATSstrcst(": [view@] operation cannot be applied: ")) ; /* tmp153 = */ atspre_prerr_newline () ; tmp155 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp155)->tag = 51 ; ats_selptrset_mac(anairiats_sum_4, tmp155, atslab_0, arg0) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp155) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp125) ; break ; } while (0) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 10892(line=434, offs=1) -- 11149(line=443, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonptr_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; __ats_lab_auxerr_nonptr_18: /* tmp157 = */ prerr_error3_loc_01860_ (arg0) ; /* tmp158 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression is expected to be a pointer.")) ; /* tmp159 = */ atspre_prerr_newline () ; tmp160 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp160)->tag = 53 ; ats_selptrset_mac(anairiats_sum_4, tmp160, atslab_0, arg1) ; /* tmp156 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp160) ; return /* (tmp156) */ ; } /* end of [auxerr_nonptr_18] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 11181(line=445, offs=5) -- 11708(line=471, offs=4) */ ATSstaticdec() ats_ptr_type auxlablst1_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; __ats_lab_auxlablst1_19: tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (arg1) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (tmp162 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_6, tmp162, atslab_0) ; ATS_FREE(tmp162) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg4) ; /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat (arg0, tmp163, arg3, tmp164) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat_assgn (arg0, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (tmp162 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: /* tmp166 = */ auxerr_nonptr_18 (arg0, arg2) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (arg0) ; break ; } while (0) ; return (tmp161) ; } /* end of [auxlablst1_19] */ /* // /tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 11793(line=477, offs=3) -- 13547(line=534, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat_assgn (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; // ATSlocal_void (tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; // ATSlocal_void (tmp204) ; // ATSlocal_void (tmp205) ; // ATSlocal_void (tmp206) ; // ATSlocal_void (tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat_assgn: tmp168 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d2exp_loc) ; tmp169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp169)->tag != 44) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 11840(line=479, offs=7) -- 11885(line=480, offs=37)") ; } tmp170 = ats_caselptrlab_mac(anairiats_sum_0, tmp169, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_0, tmp169, atslab_1) ; tmp172 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp170), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp172)->tag != 42) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 11892(line=481, offs=7) -- 11928(line=481, offs=43)") ; } tmp173 = ats_caselptrlab_mac(anairiats_sum_4, tmp172, atslab_0) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize (tmp173) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp174)->tag != 2) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_0, tmp174, atslab_0) ; tmp176 = ats_caselptrlab_mac(anairiats_sum_0, tmp174, atslab_1) ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (tmp176) ; tmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp175) ; if (tmp178 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_viewat.dats: 12071(line=489, offs=9) -- 12104(line=489, offs=42)") ; } tmp179 = ats_caselptrlab_mac(anairiats_sum_6, tmp178, atslab_0) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp171) ; /* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp180) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp180) ; /* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat (tmp168, tmp179, tmp177, tmp182) ; tmp184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp173), atslab_d2exp_loc) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (tmp184, tmp175) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ptrofvar (tmp184, tmp185, tmp175) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_viewat_assgn (tmp168, tmp186, tmp177, tmp180) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp174)->tag != 0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_0, tmp174, atslab_0) ; tmp188 = ats_caselptrlab_mac(anairiats_sum_0, tmp174, atslab_1) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp187) ; /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp189) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (tmp188) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp171) ; /* tmp193 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp192) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp189) ; tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp194) ; tmp167 = auxlablst1_19 (tmp168, tmp195, tmp189, tmp191, tmp192) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp174)->tag != 1) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp196 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp173), atslab_d2exp_loc) ; /* tmp197 = */ prerr_error3_loc_01860_ (tmp196) ; /* tmp198 = */ atspre_prerr_string (ATSstrcst(": [view@] operation cannot be applied")) ; /* tmp199 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression is addressless.")) ; /* tmp200 = */ atspre_prerr_newline () ; tmp202 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp202)->tag = 52 ; ats_selptrset_mac(anairiats_sum_4, tmp202, atslab_0, arg0) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp202) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (tmp168) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp203 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp173), atslab_d2exp_loc) ; /* tmp204 = */ prerr_error3_loc_01860_ (tmp203) ; /* tmp205 = */ atspre_prerr_string (ATSstrcst(": [view@] operation cannot be applied: ")) ; /* tmp206 = */ atspre_prerr_newline () ; tmp208 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp208)->tag = 51 ; ats_selptrset_mac(anairiats_sum_4, tmp208, atslab_0, arg0) ; /* tmp207 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp208) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (tmp168) ; break ; } while (0) ; return (tmp167) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_viewat_assgn] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_viewat_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_viewat_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_p1at_dats.c0000644000175000017500000035374413431250607022703 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_d0ynq_loc ; ats_ptr_type atslab_d0ynq_node ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_p1at_loc ; ats_ptr_type atslab_p1at_node ; } anairiats_rec_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { anairiats_rec_1 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_9 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_17 ; typedef struct { ats_ptr_type atslab_labp1at_loc ; ats_ptr_type atslab_labp1at_node ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_19 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfun_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_none_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany2_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tide_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tdqid_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tint_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tintrep_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_sta_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_dyn_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlist_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ttup_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlst_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfree_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tunfold_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trefas_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Texist_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tsvararg_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tann_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Terrpat_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMe1xp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_p1at_tr_27) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_sub_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_neq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VBOX) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TRUE_BOOL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FALSE_BOOL) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_is_none) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_e1xp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_p1at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_npf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_qua) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arg) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_ind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_list) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_lst) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_rec) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_refas) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_exist) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_vbox) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_tupize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2con_select_arity) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_arg_impred) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst) (ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labp1at_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr_arg) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_sta_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_e1xp) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_dqid) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02047_ () ; static ats_ptr_type p1at_tr_ide_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type p1atconarg_is_omit_2 (ats_ptr_type arg0) ; static ats_ptr_type revapp_6 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_anairiats_rec_1 (ats_ptr_type arg0) ; static ats_ptr_type p1at_tr_con_sapp1_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_void_type prerr_error2_loc_02051_ (ats_ptr_type arg0) ; static ats_void_type auxerr1_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr2_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_ptr_type p1at_tr_con_sapp2_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ref_type arg5) ; static ats_int_type loop_13 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type nanys_14 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type p1at_tr_con_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ; static ats_ptr_type __ats_fun_16 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_16_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type app_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type dqid_is_vbox_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr1_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr2_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p2at_vbox_err_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p1at_tr_app_sta_dyn_itm_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ptr_type arg6) ; static ats_void_type auxerr_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type p1at_tr_free_unfold_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_34 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p1at_tr_tup_31 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_void_type prerr_interror_loc_02049_ (ats_ptr_type arg0) ; static ats_ptr_type p1at_tr_arg_2_40 (ats_ptr_type arg0, ats_ref_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 1671(line=52, offs=28) -- 1700(line=52, offs=57) */ ATSstaticdec() ats_void_type prerr_FILENAME_02047_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02047_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans2_p1at")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02047_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 2378(line=93, offs=1) -- 3208(line=122, offs=4) */ ATSstaticdec() ats_ptr_type p1at_tr_ide_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_bool_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_p1at_tr_ide_1: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (arg1) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp3 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_0_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_0) ; ATS_FREE(tmp3) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp4)->tag != 3) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_5, tmp4, atslab_0) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_e1xp (tmp2, tmp5) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (tmp6) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp4)->tag != 0) { goto __ats_lab_6_0 ; } __ats_lab_2_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_5, tmp4, atslab_0) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym (tmp7) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp8, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TRUE_BOOL) ; if (!tmp9) { goto __ats_lab_4_1 ; } tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_bool (tmp2, ats_true_bool) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp8, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FALSE_BOOL) ; if (!tmp10) { goto __ats_lab_5_1 ; } tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_bool (tmp2, ats_false_bool) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp2, arg1) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_var (tmp2, tmp11) ; break ; } while (0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp2, arg1) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_var (tmp2, tmp12) ; break ; } while (0) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp2, arg1) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_var (tmp2, tmp13) ; break ; } while (0) ; return (tmp1) ; } /* end of [p1at_tr_ide_1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 3559(line=143, offs=1) -- 3786(line=155, offs=4) */ ATSstaticdec() ats_bool_type p1atconarg_is_omit_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab_p1atconarg_is_omit_2: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } tmp15 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; if (tmp15 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_8_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp16), atslab_p1at_node) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp17)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp14 = ats_true_bool ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp14 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp14 = ats_false_bool ; break ; } while (0) ; return (tmp14) ; } /* end of [p1atconarg_is_omit_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_6 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab_revapp_6: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp39 = &ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp40 = ats_ptrget_mac(ats_ptr_type, tmp39) ; ats_ptrget_mac(ats_ptr_type, tmp39) = arg1 ; tmp41 = arg0 ; arg0 = tmp40 ; arg1 = tmp41 ; goto __ats_lab_revapp_6 ; // tail call break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp38 = arg1 ; break ; } while (0) ; return (tmp38) ; } /* end of [revapp_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; __ats_lab_list_vt_reverse_append_01507_anairiats_rec_1: tmp37 = revapp_6 (arg0, arg1) ; return (tmp37) ; } /* end of [list_vt_reverse_append_01507_anairiats_rec_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_anairiats_rec_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab_list_vt_reverse_01506_anairiats_rec_1: tmp42 = (ats_sum_ptr_type)0 ; tmp36 = list_vt_reverse_append_01507_anairiats_rec_1 (arg0, tmp42) ; return (tmp36) ; } /* end of [list_vt_reverse_01506_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 3823(line=158, offs=1) -- 4932(line=198, offs=4) */ ATSstaticdec() ats_ptr_type p1at_tr_con_sapp1_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (anairiats_rec_1, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (anairiats_rec_1, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_p1at_tr_con_sapp1_3: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ; tmp22 = ats_select_mac(tmp19, atslab_s2qua_svs) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst (arg2, tmp22) ; tmp24 = ats_select_mac(tmp19, atslab_s2qua_sps) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (ats_ptrget_mac(ats_ptr_type, arg2), tmp24) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (ats_castfn_mac(ats_ptr_type, tmp21), tmp23) ; tmp26 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp26, atslab_0, tmp25) ; ats_selptrset_mac(anairiats_sum_7, tmp26, atslab_1, ats_ptrget_mac(ats_ptr_type, arg4)) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp26 ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp20 ; arg4 = arg4 ; goto __ats_lab_p1at_tr_con_sapp1_3 ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_npf (arg1) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arg (arg1) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (ats_ptrget_mac(ats_ptr_type, arg2), tmp29) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg1) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_ind (arg1) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (tmp31 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_4, tmp31, atslab_0) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (ats_ptrget_mac(ats_ptr_type, arg2), tmp33) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (tmp30, tmp34) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (tmp31 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp30) ; break ; } while (0) ; tmp35 = list_vt_reverse_01506_anairiats_rec_1 (ats_ptrget_mac(ats_ptr_type, arg4)) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp35 ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun (tmp27, tmp28, tmp32) ; break ; } while (0) ; return (tmp18) ; } /* end of [p1at_tr_con_sapp1_3] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2105(line=76, offs=17) -- 2163(line=79, offs=2) */ ATSstaticdec() ats_void_type prerr_error2_loc_02051_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; __ats_lab_prerr_error2_loc_02051_: /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp46 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ; return /* (tmp46) */ ; } /* end of [prerr_error2_loc_02051_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 5230(line=212, offs=4) -- 5521(line=222, offs=4) */ ATSstaticdec() ats_void_type auxerr1_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab_auxerr1_8: tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; /* tmp45 = */ prerr_error2_loc_02051_ (tmp48) ; /* tmp49 = */ atspre_prerr_string (ATSstrcst(": the constructor [")) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con (arg1) ; /* tmp51 = */ atspre_prerr_string (ATSstrcst("] is overly applied statically.")) ; /* tmp52 = */ atspre_prerr_newline () ; tmp53 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp53)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp53, atslab_0, arg0) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp53) ; return /* (tmp44) */ ; } /* end of [auxerr1_8] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 5545(line=223, offs=4) -- 5935(line=233, offs=4) */ ATSstaticdec() ats_void_type auxerr2_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_bool_type, tmp58) ; // ATSlocal_void (tmp59) ; ATSlocal (ats_bool_type, tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; __ats_lab_auxerr2_10: /* tmp55 = */ prerr_error2_loc_02051_ (arg2) ; /* tmp56 = */ atspre_prerr_string (ATSstrcst(": the static argument group is expected to contain ")) ; tmp58 = atspre_lt_int_int (arg3, 0) ; if (tmp58) { /* tmp57 = */ atspre_prerr_string (ATSstrcst("more components.")) ; } else { /* empty */ } /* end of [if] */ tmp60 = atspre_gt_int_int (arg3, 0) ; if (tmp60) { /* tmp59 = */ atspre_prerr_string (ATSstrcst("fewer components.")) ; } else { /* empty */ } /* end of [if] */ /* tmp61 = */ atspre_prerr_newline () ; tmp62 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp62)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp62, atslab_0, arg0) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp62) ; return /* (tmp54) */ ; } /* end of [auxerr2_10] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 4968(line=201, offs=1) -- 7605(line=285, offs=4) */ ATSstaticdec() ats_ptr_type p1at_tr_con_sapp2_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (anairiats_rec_1, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (anairiats_rec_1, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (anairiats_rec_1, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (anairiats_rec_1, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; // ATSlocal_void (tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab_p1at_tr_con_sapp2_7: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_18_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_0) ; tmp64 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_1) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp63)->tag != 0) { goto __ats_lab_22_0 ; } __ats_lab_19_1: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ; tmp66 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ; tmp68 = ats_select_mac(tmp65, atslab_s2qua_svs) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst (arg2, tmp68) ; tmp70 = ats_select_mac(tmp65, atslab_s2qua_sps) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (ats_ptrget_mac(ats_ptr_type, arg2), tmp70) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (ats_castfn_mac(ats_ptr_type, tmp67), tmp69) ; tmp72 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp72, atslab_0, tmp71) ; ats_selptrset_mac(anairiats_sum_7, tmp72, atslab_1, ats_ptrget_mac(ats_ptr_type, arg5)) ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp72 ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp66 ; arg4 = tmp64 ; arg5 = arg5 ; goto __ats_lab_p1at_tr_con_sapp2_7 ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: /* tmp73 = */ auxerr1_8 (arg0, arg1) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp63)->tag != 1) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp43 = p1at_tr_con_sapp1_3 (tmp74, arg1, arg2, arg3, arg5) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (((ats_sum_ptr_type)tmp63)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_8, tmp63, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_8, tmp63, atslab_1) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ; /* ats_int_type tmp79 ; */ tmp79 = 0 ; tmp80 = ats_select_mac(tmp77, atslab_s2qua_svs) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst (arg2, tmp76, tmp80, (&tmp79)) ; tmp83 = atspre_neq_int_int (tmp79, 0) ; if (tmp83) { /* tmp82 = */ auxerr2_10 (arg0, arg1, tmp75, tmp79) ; } else { /* empty */ } /* end of [if] */ tmp85 = ats_select_mac(tmp77, atslab_s2qua_sps) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (ats_ptrget_mac(ats_ptr_type, arg2), tmp85) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (ats_castfn_mac(ats_ptr_type, tmp81), tmp84) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp87, atslab_0, tmp86) ; ats_selptrset_mac(anairiats_sum_7, tmp87, atslab_1, ats_ptrget_mac(ats_ptr_type, arg5)) ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp87 ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp78 ; arg4 = tmp64 ; arg5 = arg5 ; goto __ats_lab_p1at_tr_con_sapp2_7 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: /* tmp88 = */ auxerr1_8 (arg0, arg1) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp43 = p1at_tr_con_sapp1_3 (tmp89, arg1, arg2, arg3, arg5) ; break ; } while (0) ; return (tmp43) ; } /* end of [p1at_tr_con_sapp2_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_13 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_int_type, tmp97) ; __ats_lab_loop_13: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp97 = atspre_isucc (arg1) ; arg0 = tmp96 ; arg1 = tmp97 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp95 = arg1 ; break ; } while (0) ; return (tmp95) ; } /* end of [loop_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp94) ; __ats_lab_list_length_01410_ats_ptr_type: tmp94 = loop_13 (arg0, 0) ; return (tmp94) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 8280(line=314, offs=7) -- 8432(line=317, offs=22) */ ATSstaticdec() ats_ptr_type nanys_14 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_bool_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_int_type, tmp109) ; __ats_lab_nanys_14: tmp106 = atspre_gt_int_int (arg1, 0) ; if (tmp106) { tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any (arg0) ; tmp109 = atspre_sub_int_int (arg1, 1) ; tmp108 = nanys_14 (arg0, tmp109) ; tmp105 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp105, atslab_0, tmp107) ; ats_selptrset_mac(anairiats_sum_6, tmp105, atslab_1, tmp108) ; } else { tmp105 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp105) ; } /* end of [nanys_14] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 7662(line=290, offs=1) -- 8737(line=331, offs=4) */ ATSstaticdec() ats_ptr_type p1at_tr_con_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_int_type, tmp93) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; // ATSlocal_void (tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab_p1at_tr_con_11: tmp91 = p1atconarg_is_omit_2 (arg5) ; if (tmp91) { tmp92 = arg2 ; } else { tmp93 = list_length_01410_ats_ptr_type (arg5) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2con_select_arity (arg2, tmp93) ; } /* end of [if] */ if (tmp92 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 7989(line=304, offs=5) -- 8014(line=304, offs=30)") ; } tmp98 = ats_caselptrlab_mac(anairiats_sum_6, tmp92, atslab_0) ; /* ats_ptr_type tmp99 ; */ tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_qua (tmp98) ; /* ats_ptr_type tmp101 ; */ tmp101 = (ats_sum_ptr_type)0 ; tmp102 = p1at_tr_con_sapp2_7 (arg1, tmp98, (&tmp99), tmp100, arg3, (&tmp101)) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp99) ; tmp104 = ats_castfn_mac(ats_ptr_type, tmp101) ; if (tmp91) { if (arg5 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 8503(line=321, offs=9) -- 8528(line=321, offs=34)") ; } tmp111 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_0) ; tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp111), atslab_p1at_loc) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full (tmp98) ; tmp110 = nanys_14 (tmp112, tmp113) ; } else { tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr (arg5) ; } /* end of [if] */ tmp114 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp115 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_con (tmp114, tmp115, tmp98, tmp104, tmp102, arg4, tmp110) ; return (tmp90) ; } /* end of [p1at_tr_con_11] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 9484(line=371, offs=20) -- 9550(line=371, offs=86) */ ATSstaticdec() ats_ptr_type __ats_fun_16 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; __ats_lab___ats_fun_16: tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__e1xp_make_p1at (env0, arg0) ; return (tmp120) ; } /* end of [__ats_fun_16] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_16_closure_type ; ats_ptr_type __ats_fun_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_16 (((__ats_fun_16_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_16_closure_init (__ats_fun_16_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_16_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53639(line=1919, offs=6) -- 53788(line=1925, offs=6) */ ATSstaticdec() ats_ptr_type app_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; __ats_lab_app_18: tmp124 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp124) ; } /* end of [app_18] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab_loop_20: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp128 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp129 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp127, arg3) ; tmp130 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp130, atslab_0, tmp129) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp130 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp131 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp128 ; arg1 = arg1 ; arg2 = tmp131 ; arg3 = arg3 ; goto __ats_lab_loop_20 ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp132 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp132 ; break ; } while (0) ; return /* (tmp126) */ ; } /* end of [loop_20] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp133) ; // ATSlocal_void (tmp134) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp133 ; */ /* tmp134 = */ loop_20 (arg0, arg1, (&tmp133), arg2) ; tmp125 = tmp133 ; return (tmp125) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53503(line=1915, offs=23) -- 53963(line=1932, offs=4) */ ATSstaticdec() ats_ptr_type list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_list_map_vclo_01414_ats_ptr_type_ats_ptr_type: tmp123 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_18, arg1) ; return (tmp123) ; } /* end of [list_map_vclo_01414_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 9129(line=355, offs=1) -- 10189(line=399, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_e1xp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (__ats_fun_16_closure_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_e1xp: tmp117 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg2), atslab_e1xp_node) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp117)->tag != 10) { goto __ats_lab_32_0 ; } __ats_lab_29_1: tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; /* ats_ptr_type tmp119 ; */ tmp119 = &(tmp121) ; __ats_fun_16_closure_init (tmp119, tmp118) ; // closure initialization tmp122 = list_map_vclo_01414_ats_ptr_type_ats_ptr_type (arg4, tmp119) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (tmp118, arg2, tmp118, ats_castfn_mac(ats_ptr_type, tmp122)) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize (tmp135) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_e1xp (tmp118, tmp136) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (tmp137) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp139 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p1at_loc) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_e1xp (tmp139, arg2) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn (arg0, tmp138, arg3, arg4) ; break ; } while (0) ; return (tmp116) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_e1xp] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 10235(line=404, offs=1) -- 10351(line=408, offs=67) */ ATSstaticdec() ats_bool_type dqid_is_vbox_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_bool_type, tmp141) ; __ats_lab_dqid_is_vbox_21: tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__d0ynq_is_none (arg0) ; if (tmp141) { tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VBOX) ; } else { tmp140 = ats_false_bool ; } /* end of [if] */ return (tmp140) ; } /* end of [dqid_is_vbox_21] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 10382(line=412, offs=1) -- 10783(line=423, offs=4) */ ATSstaticdec() ats_void_type auxerr1_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; __ats_lab_auxerr1_22: tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p1at_loc) ; /* tmp143 = */ prerr_error2_loc_02051_ (tmp144) ; /* tmp145 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_p1at.dats"), ATSstrcst("p1at_tr_app_dyn_dqid")) ; /* tmp146 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp147 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg2) ; /* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ; /* tmp149 = */ atspre_prerr_string (ATSstrcst("] does not refer to any constructor.")) ; /* tmp150 = */ atspre_prerr_newline () ; tmp151 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp151)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp151, atslab_0, arg0) ; /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp151) ; return /* (tmp142) */ ; } /* end of [auxerr1_22] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 10809(line=426, offs=1) -- 11192(line=437, offs=4) */ ATSstaticdec() ats_void_type auxerr2_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab_auxerr2_23: tmp154 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p1at_loc) ; /* tmp153 = */ prerr_error2_loc_02051_ (tmp154) ; /* tmp155 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_p1at.dats"), ATSstrcst("p1at_tr_app_dyn_dqid")) ; /* tmp156 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg2) ; /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ; /* tmp159 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp160 = */ atspre_prerr_newline () ; tmp161 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp161)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp161, atslab_0, arg0) ; /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp161) ; return /* (tmp152) */ ; } /* end of [auxerr2_23] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 11239(line=442, offs=1) -- 12223(line=478, offs=4) */ ATSstaticdec() ats_ptr_type p2at_vbox_err_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab_p2at_vbox_err_24: tmp163 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } tmp164 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; if (tmp164 != (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_33_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp166 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp165), atslab_p2at_node) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp166)->tag != 0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp168 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp165), atslab_p2at_loc) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any (tmp168) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_vbox (tmp163, tmp167) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp166)->tag != 1) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_5, tmp166, atslab_0) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_vbox (tmp163, tmp169) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: /* tmp170 = */ prerr_error2_loc_02051_ (tmp163) ; /* tmp171 = */ atspre_prerr_string (ATSstrcst(": [vbox] should be applied to a variable.")) ; /* tmp172 = */ atspre_prerr_newline () ; tmp174 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp174)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp174, atslab_0, arg0) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp174) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp163) ; break ; } while (0) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: /* tmp175 = */ prerr_error2_loc_02051_ (tmp163) ; /* tmp176 = */ atspre_prerr_string (ATSstrcst(": [vbox] should be applied to exactly one argument.")) ; /* tmp177 = */ atspre_prerr_newline () ; tmp179 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp179)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp179, atslab_0, arg0) ; /* tmp178 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp179) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp163) ; break ; } while (0) ; return (tmp162) ; } /* end of [p2at_vbox_err_24] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 12304(line=484, offs=1) -- 13091(line=514, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_dqid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_bool_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_dqid: tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua (arg2, arg3) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (tmp181 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_38_1: tmp182 = ats_caselptrlab_mac(anairiats_sum_4, tmp181, atslab_0) ; ATS_FREE(tmp181) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp182)->tag != 3) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp183 = ats_caselptrlab_mac(anairiats_sum_5, tmp182, atslab_0) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_e1xp (arg0, arg1, tmp183, arg4, arg5) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp182)->tag != 2) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp184 = ats_caselptrlab_mac(anairiats_sum_5, tmp182, atslab_0) ; tmp185 = (ats_sum_ptr_type)0 ; tmp180 = p1at_tr_con_11 (arg0, arg1, tmp184, tmp185, arg4, arg5) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: /* tmp186 = */ auxerr1_22 (arg0, arg1, arg2, arg3) ; tmp187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp187) ; break ; } while (0) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (tmp181 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp188 = dqid_is_vbox_21 (arg2, arg3) ; if (!tmp188) { goto __ats_lab_44_1 ; } tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr (arg5) ; tmp180 = p2at_vbox_err_24 (arg0, tmp189) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: /* tmp190 = */ auxerr2_23 (arg0, arg1, arg2, arg3) ; tmp191 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp191) ; break ; } while (0) ; break ; } while (0) ; return (tmp180) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_dqid] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 13198(line=522, offs=1) -- 13859(line=549, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; // ATSlocal_void (tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn: tmp193 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p1at_node) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp193)->tag != 2) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_5, tmp193, atslab_0) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_dqid (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none, tmp194, arg2, arg3) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp193)->tag != 3) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp195 = ats_caselptrlab_mac(anairiats_sum_8, tmp193, atslab_0) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_8, tmp193, atslab_1) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_dqid (arg0, arg1, tmp195, tmp196, arg2, arg3) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: __ats_lab_47_1: tmp198 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p1at_loc) ; /* tmp197 = */ prerr_error2_loc_02051_ (tmp198) ; /* tmp199 = */ atspre_prerr_string (ATSstrcst(": a (qualified) identifier is expected.")) ; /* tmp200 = */ atspre_prerr_newline () ; tmp202 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp202)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp202, atslab_0, arg0) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp202) ; tmp203 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp203) ; break ; } while (0) ; return (tmp192) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 13914(line=554, offs=1) -- 14707(line=583, offs=4) */ ATSstaticdec() ats_ptr_type p1at_tr_app_sta_dyn_itm_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; __ats_lab_p1at_tr_app_sta_dyn_itm_27: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg3)->tag != 2) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp205 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_0) ; tmp204 = p1at_tr_con_11 (arg0, arg1, tmp205, arg4, arg5, arg6) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg3)->tag != 3) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_0) ; tmp208 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p1at_loc) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__p1at_make_e1xp (tmp208, tmp206) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_sta_dyn (arg0, arg1, tmp207, arg4, arg5, arg6) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: __ats_lab_50_1: tmp210 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p1at_loc) ; /* tmp209 = */ prerr_error2_loc_02051_ (tmp210) ; /* tmp211 = */ atspre_prerr_string (ATSstrcst(": the (qualified) identifier does not refer to any constructor.")) ; /* tmp212 = */ atspre_prerr_newline () ; tmp214 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp214)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp214, atslab_0, arg0) ; /* tmp213 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp214) ; tmp215 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp215) ; break ; } while (0) ; return (tmp204) ; } /* end of [p1at_tr_app_sta_dyn_itm_27] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 14831(line=592, offs=1) -- 15207(line=603, offs=4) */ ATSstaticdec() ats_void_type auxerr_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; // ATSlocal_void (tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; __ats_lab_auxerr_29: tmp218 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p1at_loc) ; /* tmp219 = */ prerr_error2_loc_02051_ (tmp218) ; /* tmp220 = */ atspre_prerr_string (ATSstrcst(": the (qualified) identifier [")) ; /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (arg3) ; /* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg4) ; /* tmp223 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ; /* tmp224 = */ atspre_prerr_newline () ; tmp225 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp225)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp225, atslab_0, arg0) ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp225) ; return /* (tmp217) */ ; } /* end of [auxerr_29] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 14775(line=587, offs=1) -- 16307(line=643, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_sta_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; // ATSlocal_void (tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; // ATSlocal_void (tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; // ATSlocal_void (tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; // ATSlocal_void (tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_sta_dyn: tmp226 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p1at_node) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp226)->tag != 2) { goto __ats_lab_54_0 ; } __ats_lab_51_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_5, tmp226, atslab_0) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (tmp227) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (tmp228 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp229 = ats_caselptrlab_mac(anairiats_sum_4, tmp228, atslab_0) ; ATS_FREE(tmp228) ; tmp216 = p1at_tr_app_sta_dyn_itm_27 (arg0, arg1, arg2, tmp229, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (tmp228 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: /* tmp230 = */ auxerr_29 (arg0, arg1, arg2, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_d0ynq_none, tmp227) ; tmp231 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p1at_loc) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp231) ; break ; } while (0) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp226)->tag != 3) { goto __ats_lab_57_0 ; } __ats_lab_54_1: tmp232 = ats_caselptrlab_mac(anairiats_sum_8, tmp226, atslab_0) ; tmp233 = ats_caselptrlab_mac(anairiats_sum_8, tmp226, atslab_1) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua (tmp232, tmp233) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (tmp234 == (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_4, tmp234, atslab_0) ; ATS_FREE(tmp234) ; tmp216 = p1at_tr_app_sta_dyn_itm_27 (arg0, arg1, arg2, tmp235, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (tmp234 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: /* tmp236 = */ auxerr_29 (arg0, arg1, arg2, tmp232, tmp233) ; tmp237 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p1at_loc) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp237) ; break ; } while (0) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: __ats_lab_57_1: tmp239 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p1at_loc) ; /* tmp238 = */ prerr_error2_loc_02051_ (tmp239) ; /* tmp240 = */ atspre_prerr_string (ATSstrcst(": a (qualified) identifier is expected.")) ; /* tmp241 = */ atspre_prerr_newline () ; tmp243 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp243)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp243, atslab_0, arg0) ; /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp243) ; tmp244 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp244) ; break ; } while (0) ; return (tmp216) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_sta_dyn] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 16366(line=648, offs=1) -- 17044(line=679, offs=4) */ ATSstaticdec() ats_ptr_type p1at_tr_free_unfold_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_int_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; // ATSlocal_void (tmp256) ; // ATSlocal_void (tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; // ATSlocal_void (tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; __ats_lab_p1at_tr_free_unfold_30: tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (arg2) ; tmp247 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp246), atslab_p2at_node) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp247)->tag != 2) { goto __ats_lab_59_0 ; } tmp248 = ats_caselptrlab_mac(anairiats_sum_11, tmp247, atslab_0) ; if (((ats_sum_ptr_type)tmp248)->tag != 0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_11, tmp247, atslab_1) ; tmp250 = ats_caselptrlab_mac(anairiats_sum_11, tmp247, atslab_2) ; tmp251 = ats_caselptrlab_mac(anairiats_sum_11, tmp247, atslab_3) ; tmp252 = ats_caselptrlab_mac(anairiats_sum_11, tmp247, atslab_4) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_11, tmp247, atslab_5) ; tmp254 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p1at_loc) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_con (tmp254, arg0, tmp249, tmp250, tmp251, tmp252, tmp253) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: tmp255 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p1at_loc) ; /* tmp256 = */ prerr_error2_loc_02051_ (tmp255) ; /* tmp257 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_p1at.dats"), ATSstrcst("p1at_tr_free_unfold")) ; /* tmp258 = */ atspre_prerr_string (ATSstrcst(": the pattern is expected to be formed with a constructor (of datavtype).")) ; /* tmp259 = */ atspre_prerr_newline () ; tmp261 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp261)->tag = 27 ; ats_selptrset_mac(anairiats_sum_5, tmp261, atslab_0, arg1) ; /* tmp260 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp261) ; tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp255) ; break ; } while (0) ; return (tmp245) ; } /* end of [p1at_tr_free_unfold_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp265) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp265 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp265) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_34 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; __ats_lab_loop_34: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp270 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp270 ; goto __ats_lab_loop_34 ; // tail call break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: break ; } while (0) ; return /* (tmp269) */ ; } /* end of [loop_34] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp268) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp268 = */ loop_34 (arg0) ; return /* (tmp268) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 17103(line=684, offs=1) -- 17384(line=698, offs=4) */ ATSstaticdec() ats_ptr_type p1at_tr_tup_31 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp266) ; // ATSlocal_void (tmp267) ; __ats_lab_p1at_tr_tup_31: tmp263 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp264 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_tupize (ats_castfn_mac(ats_ptr_type, tmp264)) ; /* tmp267 = */ list_vt_free_01499_ats_ptr_type (tmp264) ; tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_rec (tmp263, arg1, arg2, tmp266) ; return (tmp262) ; } /* end of [p1at_tr_tup_31] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02049_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp325) ; // ATSlocal_void (tmp326) ; // ATSlocal_void (tmp327) ; __ats_lab_prerr_interror_loc_02049_: /* tmp325 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp326 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp327 = */ prerr_FILENAME_02047_ () ; /* tmp324 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp324) */ ; } /* end of [prerr_interror_loc_02049_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 17451(line=703, offs=9) -- 20359(line=817, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_int_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_char_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_int_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_int_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_int_type, tmp296) ; ATSlocal (ats_int_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_int_type, tmp299) ; ATSlocal (ats_int_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_int_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; // ATSlocal_void (tmp317) ; // ATSlocal_void (tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; // ATSlocal_void (tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr: tmp272 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp273 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_node) ; do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp273)->tag != 0) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any (tmp272) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp273)->tag != 1) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any (tmp272) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp273)->tag != 2) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp274 = ats_caselptrlab_mac(anairiats_sum_5, tmp273, atslab_0) ; tmp271 = p1at_tr_ide_1 (arg0, tmp274) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp273)->tag != 3) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp275 = ats_caselptrlab_mac(anairiats_sum_8, tmp273, atslab_0) ; tmp276 = ats_caselptrlab_mac(anairiats_sum_8, tmp273, atslab_1) ; tmp277 = (ats_sum_ptr_type)0 ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn_dqid (arg0, arg0, tmp275, tmp276, -1, tmp277) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp273)->tag != 4) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp278 = ats_caselptrlab_mac(anairiats_sum_12, tmp273, atslab_0) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_int (tmp272, tmp278) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp273)->tag != 5) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp279 = ats_caselptrlab_mac(anairiats_sum_5, tmp273, atslab_0) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_intrep (tmp272, tmp279) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp273)->tag != 6) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp280 = ats_caselptrlab_mac(anairiats_sum_13, tmp273, atslab_0) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_char (tmp272, tmp280) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp273)->tag != 8) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp281 = ats_caselptrlab_mac(anairiats_sum_5, tmp273, atslab_0) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_string (tmp272, tmp281) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp273)->tag != 7) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp282 = ats_caselptrlab_mac(anairiats_sum_5, tmp273, atslab_0) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_float (tmp272, tmp282) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp273)->tag != 9) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp283 = ats_caselptrlab_mac(anairiats_sum_5, tmp273, atslab_0) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_i0nt (tmp272, tmp283) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp273)->tag != 10) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_5, tmp273, atslab_0) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_f0loat (tmp272, tmp284) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp273)->tag != 11) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_empty (tmp272) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp273)->tag != 13) { goto __ats_lab_77_0 ; } __ats_lab_74_1: tmp285 = ats_caselptrlab_mac(anairiats_sum_14, tmp273, atslab_0) ; tmp286 = ats_caselptrlab_mac(anairiats_sum_14, tmp273, atslab_2) ; tmp287 = ats_caselptrlab_mac(anairiats_sum_14, tmp273, atslab_3) ; tmp288 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp285), atslab_p1at_node) ; do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp288)->tag != 12) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp289 = ats_caselptrlab_mac(anairiats_sum_8, tmp288, atslab_0) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_8, tmp288, atslab_1) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_sta_dyn (arg0, tmp285, tmp289, tmp290, tmp286, tmp287) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: __ats_lab_76_1: tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_dyn (arg0, tmp285, tmp286, tmp287) ; break ; } while (0) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp273)->tag != 12) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp291 = ats_caselptrlab_mac(anairiats_sum_8, tmp273, atslab_0) ; tmp292 = ats_caselptrlab_mac(anairiats_sum_8, tmp273, atslab_1) ; tmp293 = (ats_sum_ptr_type)0 ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__p1at_tr_app_sta_dyn (arg0, tmp291, tmp291, tmp292, -1, tmp293) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp273)->tag != 14) { goto __ats_lab_81_0 ; } __ats_lab_78_1: tmp294 = ats_caselptrlab_mac(anairiats_sum_15, tmp273, atslab_0) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_15, tmp273, atslab_1) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (tmp295 == (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp271 = p1at_tr_tup_31 (arg0, 0, tmp294, tmp295) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (tmp295 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_empty (tmp272) ; break ; } while (0) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp273)->tag != 15) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_16, tmp273, atslab_0) ; tmp297 = ats_caselptrlab_mac(anairiats_sum_16, tmp273, atslab_1) ; tmp298 = ats_caselptrlab_mac(anairiats_sum_16, tmp273, atslab_2) ; tmp271 = p1at_tr_tup_31 (arg0, tmp296, tmp297, tmp298) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp273)->tag != 16) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp299 = ats_caselptrlab_mac(anairiats_sum_16, tmp273, atslab_0) ; tmp300 = ats_caselptrlab_mac(anairiats_sum_16, tmp273, atslab_1) ; tmp301 = ats_caselptrlab_mac(anairiats_sum_16, tmp273, atslab_2) ; tmp302 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp301, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labp1at_tr) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_rec (tmp272, tmp299, tmp300, ats_castfn_mac(ats_ptr_type, tmp302)) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp273)->tag != 17) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp303 = ats_caselptrlab_mac(anairiats_sum_15, tmp273, atslab_0) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_15, tmp273, atslab_1) ; tmp305 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr (tmp304) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_lst (tmp272, tmp303, tmp305) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp273)->tag != 18) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_5, tmp273, atslab_0) ; tmp307 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; tmp271 = p1at_tr_free_unfold_30 (tmp307, arg0, tmp306) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp273)->tag != 19) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_5, tmp273, atslab_0) ; tmp309 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3) ; tmp271 = p1at_tr_free_unfold_30 (tmp309, arg0, tmp308) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp273)->tag != 20) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp310 = ats_caselptrlab_mac(anairiats_sum_17, tmp273, atslab_0) ; tmp311 = ats_caselptrlab_mac(anairiats_sum_17, tmp273, atslab_1) ; tmp312 = ats_caselptrlab_mac(anairiats_sum_17, tmp273, atslab_2) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp311, tmp310) ; tmp314 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (tmp312) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_refas (tmp272, tmp313, tmp314) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp273)->tag != 21) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp315 = ats_caselptrlab_mac(anairiats_sum_8, tmp273, atslab_0) ; tmp316 = ats_caselptrlab_mac(anairiats_sum_8, tmp273, atslab_1) ; /* tmp317 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ; /* tmp318 = ats_selsin_mac(tmp317, atslab_1) */ ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (tmp315) ; /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp319) ; tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (tmp316) ; /* tmp322 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_exist (tmp272, tmp319, tmp321) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp273)->tag != 22) { goto __ats_lab_89_0 ; } __ats_lab_88_1: /* tmp323 = */ prerr_interror_loc_02049_ (tmp272) ; /* tmp328 = */ atspre_prerr_string (ATSstrcst(": p1at_tr: P1Tsvararg: this pattern should have been eliminated.")) ; /* tmp329 = */ atspre_prerr_newline () ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp272) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp273)->tag != 23) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp330 = ats_caselptrlab_mac(anairiats_sum_8, tmp273, atslab_0) ; tmp331 = ats_caselptrlab_mac(anairiats_sum_8, tmp273, atslab_1) ; tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (tmp330) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp331) ; tmp334 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp333) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann (tmp272, tmp332, tmp334) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: // if (((ats_sum_ptr_type)tmp273)->tag != 24) { ats_deadcode_failure_handle () ; } __ats_lab_90_1: tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (tmp272) ; break ; } while (0) ; return (tmp271) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 20402(line=820, offs=12) -- 20444(line=820, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr: tmp336 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr) ; tmp335 = ats_castfn_mac(ats_ptr_type, tmp336) ; return (tmp335) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 20468(line=823, offs=12) -- 20693(line=833, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labp1at_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labp1at_tr: tmp338 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_labp1at_node) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (tmp338 == (ats_sum_ptr_type)0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_6, tmp338, atslab_0) ; tmp340 = ats_caselptrlab_mac(anairiats_sum_6, tmp338, atslab_1) ; tmp341 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (tmp340) ; tmp337 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp337)->tag = 1 ; ats_selptrset_mac(anairiats_sum_8, tmp337, atslab_0, tmp339) ; ats_selptrset_mac(anairiats_sum_8, tmp337, atslab_1, tmp341) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (tmp338 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: tmp342 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_labp1at_loc) ; tmp337 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp337)->tag = 0 ; ats_selptrset_mac(anairiats_sum_5, tmp337, atslab_0, tmp342) ; break ; } while (0) ; return (tmp337) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__labp1at_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 20763(line=839, offs=3) -- 21352(line=872, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_int_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg: tmp344 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_loc) ; tmp345 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_p1at_node) ; do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp345)->tag != 23) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp346 = ats_caselptrlab_mac(anairiats_sum_8, tmp345, atslab_0) ; tmp347 = ats_caselptrlab_mac(anairiats_sum_8, tmp345, atslab_1) ; tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (tmp346) ; tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_arg_impred (tmp347, arg1) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp349) ; tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann (tmp344, tmp348, tmp350) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp345)->tag != 14) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp351 = ats_caselptrlab_mac(anairiats_sum_15, tmp345, atslab_0) ; tmp352 = ats_caselptrlab_mac(anairiats_sum_15, tmp345, atslab_1) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr_arg (tmp352, arg1) ; tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_list (tmp344, tmp351, tmp353) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: __ats_lab_95_1: tmp354 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp354)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp354, atslab_0, ats_ptrget_mac(ats_ptr_type, arg1)) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp354 ; tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr (arg0) ; break ; } while (0) ; return (tmp343) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 21390(line=878, offs=1) -- 21730(line=898, offs=4) */ ATSstaticdec() ats_ptr_type p1at_tr_arg_2_40 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_int_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; __ats_lab_p1at_tr_arg_2_40: tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg (arg0, arg1) ; tmp357 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp356), atslab_p2at_node) ; do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp357)->tag != 18) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp358 = ats_caselptrlab_mac(anairiats_sum_15, tmp357, atslab_0) ; tmp359 = ats_caselptrlab_mac(anairiats_sum_15, tmp357, atslab_1) ; tmp360 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp356), atslab_p2at_loc) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_tupize (tmp359) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_rec (tmp360, 0, tmp358, tmp361) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: __ats_lab_97_1: tmp355 = tmp356 ; break ; } while (0) ; return (tmp355) ; } /* end of [p1at_tr_arg_2_40] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 21807(line=904, offs=3) -- 22061(line=917, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr_arg (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr_arg: do { /* branch: __ats_lab_98 */ __ats_lab_98_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp363 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp364 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp365 = p1at_tr_arg_2_40 (tmp363, arg1) ; tmp366 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr_arg (tmp364, arg1) ; tmp362 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp362, atslab_0, tmp365) ; ats_selptrset_mac(anairiats_sum_6, tmp362, atslab_1, tmp366) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_99_1: tmp362 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp362) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1atlst_tr_arg] */ /* // /tmp/ATS-Postiats/src/pats_trans2_p1at.dats: 22164(line=925, offs=3) -- 22412(line=936, offs=4) */ ATSglobaldec() anairiats_rec_19 _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d2con_instantiate (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (anairiats_rec_19, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; // ATSlocal_void (tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d2con_instantiate: /* ats_ptr_type tmp368 ; */ tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_qua (arg1) ; /* ats_ptr_type tmp370 ; */ tmp370 = (ats_sum_ptr_type)0 ; tmp371 = p1at_tr_con_sapp1_3 (arg0, arg1, (&tmp368), tmp369, (&tmp370)) ; /* tmp372 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp368) ; tmp373 = ats_castfn_mac(ats_ptr_type, tmp370) ; tmp367.atslab_0 = tmp373 ; tmp367.atslab_1 = tmp371 ; return (tmp367) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d2con_instantiate] */ /* 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_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_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_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_p1at_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_p1at_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_ccompenv_dats.c0000644000175000017500000073233013431250607023530 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_hifundec_loc ; ats_ptr_type atslab_hifundec_var ; ats_ptr_type atslab_hifundec_imparg ; ats_ptr_type atslab_hifundec_def ; ats_ptr_type atslab_hifundec_hidecl ; ats_ptr_type atslab_hifundec_funlab ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_hiimpdec_loc ; ats_int_type atslab_hiimpdec_knd ; ats_ptr_type atslab_hiimpdec_cst ; ats_ptr_type atslab_hiimpdec_imparg ; ats_ptr_type atslab_hiimpdec_tmparg ; ats_ptr_type atslab_hiimpdec_def ; ats_ptr_type atslab_hiimpdec_funlab ; ats_ptr_type atslab_hiimpdec_instrlst ; } anairiats_rec_7 ; typedef struct { ats_int_type atslab_ccompenv_tmplevel ; ats_int_type atslab_ccompenv_tmprecdepth ; ats_ptr_type atslab_ccompenv_freeconenv ; ats_ptr_type atslab_ccompenv_loopexnenv ; ats_ptr_type atslab_ccompenv_tailcalenv ; ats_ptr_type atslab_ccompenv_flabsetenv ; ats_ptr_type atslab_ccompenv_dvarsetenv ; ats_ptr_type atslab_ccompenv_vbindmapenv ; ats_ptr_type atslab_ccompenv_markenvlst ; ats_ptr_type atslab_ccompenv_vbindmapall ; } anairiats_rec_8 ; typedef struct { anairiats_rec_8 atslab_0 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_11 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextcode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIFUNDEC2_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIIMPDEC2_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTmark_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_var_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_fundec_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_fundec2_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_impdec_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_impdec2_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_staload_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tmpsub_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tmpcstmat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tmpvarmat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tempenver_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__LOOPTMPLAB3_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__TCIfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__TCIfnx_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__CCOMPENV_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, 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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__filenv_get_name) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nullary) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_ismem) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_ismem) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_search) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_remove) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_find) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpcstimpmapopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_find) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpvardecmapopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2var2env) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst2set) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hifundec2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hiimpdec2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_var) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_dvarsetenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_env) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_flabsetenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_vbindmapenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenv) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapall) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec2) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tempenver) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get2_tempenver) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_tmparg_match) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_tmpcst_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec2_tmpcst_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdeclst_tmpcst_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundecopt2tmpvarmat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_tmpvar_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2_tmpvar_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpcstmat_tmpcst_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmat_tmpvar_match) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__fprint_markenvlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__freeconenv_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__loopexnenv_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tlcalitm_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tailcalenv_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__flabsetenv_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dvarsetenv_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__vbindmapenv_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_struct_uninitize) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_find_tmpsub) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__ccompenv_push_v = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__ccompenv_vtype = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTnil_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTmark_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_var_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_fundec_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_fundec2_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_impdec_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_impdec2_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_staload_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tmpsub_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tmpcstmat_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tmpvarmat_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tempenver_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__LOOPTMPLAB3_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__TCIfun_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__TCIfnx_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__CCOMPENV_0) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type revapp_6 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type __ats_fun_13 (ats_ref_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type __ats_fun_13_closure_make () ; static ats_int_type __ats_fun_13_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1) ; static ats_void_type split_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type merge_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ; static ats_int_type loop_18 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_vt_mergesort_01524_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type loop_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type loop_38 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type auxfind_67 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_int_type auxfind_lst_68 (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_ptr_type auxfind2_69 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxfind3_70 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type auxfind3_lst_71 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_void_type addlst_if_86 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_void_type auxenv_88 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type addlst_if_89 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxpop_94 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxpop2_95 (ats_ref_type arg0) ; static ats_void_type auxjoin2_96 (ats_ref_type arg0) ; static ats_ptr_type loop_110 (ats_ptr_type arg0) ; static ats_void_type auxlst_112 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxlst_116 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxcont_117 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxlst_119 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxcont_120 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type revapp_125 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_126 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ref_01088_ats_bool_type (ats_bool_type arg0) ; static ats_bool_type theFlag_get_128 () ; static ats_void_type theFlag_set_129 () ; static ats_void_type theFlag_unset_130 () ; static ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) ; static ats_ptr_type auxlst_135 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp4) ; ATSstatic (ats_ptr_type, statmp5) ; ATSstatic (ats_ptr_type, statmp6) ; ATSstatic (ats_ptr_type, statmp32) ; ATSstatic (ats_ptr_type, statmp33) ; ATSstatic (ats_ptr_type, statmp43) ; ATSstatic (ats_ptr_type, statmp44) ; ATSstatic (ats_ptr_type, statmp94) ; ATSstatic (ats_ptr_type, statmp95) ; ATSstatic (ats_ptr_type, statmp96) ; ATSstatic (ats_ptr_type, statmp97) ; ATSstatic (ats_ptr_type, statmp116) ; ATSstatic (ats_ptr_type, statmp117) ; ATSstatic (ats_ptr_type, statmp118) ; ATSstatic (ats_ptr_type, statmp119) ; ATSstatic (ats_ptr_type, statmp133) ; ATSstatic (ats_ptr_type, statmp134) ; ATSstatic (ats_ptr_type, statmp135) ; ATSstatic (ats_ptr_type, statmp136) ; ATSstatic (ats_ptr_type, statmp150) ; ATSstatic (ats_ptr_type, statmp151) ; ATSstatic (ats_ptr_type, statmp771) ; ATSstatic (ats_ptr_type, statmp772) ; ATSstatic (ats_ptr_type, statmp773) ; ATSstatic (ats_ptr_type, statmp774) ; ATSstatic (ats_ptr_type, statmp812) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp3 ; */ tmp3 = arg0 ; tmp2 = atspre_ref_make_elt_tsz ((&tmp3), sizeof(ats_ptr_type)) ; return (tmp2) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_ref_make_elt_01089_ats_ptr_type: tmp1 = ref_01088_ats_ptr_type (arg0) ; return (tmp1) ; } /* end of [ref_make_elt_01089_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 2214(line=89, offs=18) -- 2324(line=98, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_add: tmp8 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp10 = ats_ptrget_mac(ats_ptr_type, tmp8) ; tmp9 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp9, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp9, atslab_1, tmp10) ; ats_ptrget_mac(ats_ptr_type, tmp8) = tmp9 ; return /* (tmp7) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_6 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab_revapp_6: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp19 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp20 = ats_ptrget_mac(ats_ptr_type, tmp19) ; ats_ptrget_mac(ats_ptr_type, tmp19) = arg1 ; tmp21 = arg0 ; arg0 = tmp20 ; arg1 = tmp21 ; goto __ats_lab_revapp_6 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp18 = arg1 ; break ; } while (0) ; return (tmp18) ; } /* end of [revapp_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp17 = revapp_6 (arg0, arg1) ; return (tmp17) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp22 = (ats_sum_ptr_type)0 ; tmp16 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp22) ; return (tmp16) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 2383(line=101, offs=18) -- 2564(line=112, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_get: tmp12 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp13 = ats_ptrget_mac(ats_ptr_type, tmp12) ; tmp14 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp12) = tmp14 ; tmp15 = list_vt_reverse_01506_ats_ptr_type (tmp13) ; tmp11 = ats_castfn_mac(ats_ptr_type, tmp15) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 2645(line=117, offs=19) -- 2756(line=126, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_add: tmp24 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp5), atslab_1) ; tmp26 = ats_ptrget_mac(ats_ptr_type, tmp24) ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp25, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp25, atslab_1, tmp26) ; ats_ptrget_mac(ats_ptr_type, tmp24) = tmp25 ; return /* (tmp23) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_add] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 2817(line=129, offs=19) -- 3001(line=142, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_get: tmp28 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp5), atslab_1) ; tmp29 = ats_ptrget_mac(ats_ptr_type, tmp28) ; tmp30 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp28) = tmp30 ; tmp31 = list_vt_reverse_01506_ats_ptr_type (tmp29) ; tmp27 = ats_castfn_mac(ats_ptr_type, tmp31) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 3262(line=161, offs=18) -- 3373(line=170, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_add: tmp35 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp32), atslab_1) ; tmp37 = ats_ptrget_mac(ats_ptr_type, tmp35) ; tmp36 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp36, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp36, atslab_1, tmp37) ; ats_ptrget_mac(ats_ptr_type, tmp35) = tmp36 ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_add] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 3433(line=173, offs=19) -- 3614(line=185, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_get: tmp39 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp32), atslab_1) ; tmp40 = ats_ptrget_mac(ats_ptr_type, tmp39) ; tmp41 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp39) = tmp41 ; tmp42 = list_vt_reverse_01506_ats_ptr_type (tmp40) ; tmp38 = ats_castfn_mac(ats_ptr_type, tmp42) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 3878(line=204, offs=19) -- 3988(line=213, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_add: tmp46 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp43), atslab_1) ; tmp48 = ats_ptrget_mac(ats_ptr_type, tmp46) ; tmp47 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp47, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp47, atslab_1, tmp48) ; ats_ptrget_mac(ats_ptr_type, tmp46) = tmp47 ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_add] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 4181(line=226, offs=14) -- 4353(line=234, offs=2) */ ATSstaticdec() ats_int_type __ats_fun_13 (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_int_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_int_type, tmp58) ; __ats_lab___ats_fun_13: tmp55 = ats_caselptrlab_mac(anairiats_rec_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp55)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 4260(line=232, offs=7) -- 4302(line=232, offs=49)") ; } tmp56 = ats_caselptrlab_mac(anairiats_sum_3, tmp55, atslab_1) ; tmp57 = ats_caselptrlab_mac(anairiats_rec_2, ats_ptrget_mac(ats_ptr_type, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp57)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 4309(line=233, offs=7) -- 4351(line=233, offs=49)") ; } tmp58 = ats_caselptrlab_mac(anairiats_sum_3, tmp57, atslab_1) ; tmp54 = atspre_sub_int_int (tmp56, tmp58) ; return (tmp54) ; } /* end of [__ats_fun_13] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_13_closure_type ; ats_int_type __ats_fun_13_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1) { return __ats_fun_13 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_13_closure_init (__ats_fun_13_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_13_clofun ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 16240(line=604, offs=5) -- 16603(line=618, offs=6) */ ATSstaticdec() ats_void_type split_15 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp63) ; ATSlocal (ats_bool_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_int_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab_split_15: tmp64 = atspre_igt (arg1, 0) ; if (tmp64) { // if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp65 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp66 = atspre_isub (arg1, 1) ; arg0 = tmp65 ; arg1 = tmp66 ; arg2 = arg2 ; goto __ats_lab_split_15 ; // tail call } else { ats_ptrget_mac(ats_ptr_type, arg2) = ats_ptrget_mac(ats_ptr_type, arg0) ; tmp67 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp67 ; } /* end of [if] */ return /* (tmp63) */ ; } /* end of [split_15] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 16641(line=620, offs=5) -- 17444(line=646, offs=36) */ ATSstaticdec() ats_void_type merge_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; // ATSlocal_void (tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; __ats_lab_merge_16: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_2_1: tmp69 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp70 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp71 = &ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp72 = &ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp73 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ref_type, ats_ref_type))(ats_closure_fun(arg2))) (arg2, tmp69, tmp71) ; tmp74 = atspre_lte_int_int (tmp73, 0) ; if (tmp74) { tmp76 = ats_ptrget_mac(ats_ptr_type, tmp70) ; /* tmp75 = */ merge_16 (tmp76, arg1, arg2, tmp70) ; ats_ptrget_mac(ats_ptr_type, arg3) = arg0 ; } else { tmp78 = ats_ptrget_mac(ats_ptr_type, tmp72) ; /* tmp77 = */ merge_16 (arg0, tmp78, arg2, tmp72) ; ats_ptrget_mac(ats_ptr_type, arg3) = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: ats_ptrget_mac(ats_ptr_type, arg3) = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: ats_ptrget_mac(ats_ptr_type, arg3) = arg1 ; break ; } while (0) ; return /* (tmp68) */ ; } /* end of [merge_16] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_18 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_int_type, tmp84) ; __ats_lab_loop_18: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp82 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp83 = ats_ptrget_mac(ats_ptr_type, tmp82) ; tmp84 = atspre_iadd (arg1, 1) ; arg0 = tmp83 ; arg1 = tmp84 ; goto __ats_lab_loop_18 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp81 = arg1 ; break ; } while (0) ; return (tmp81) ; } /* end of [loop_18] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp80) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp80 = loop_18 (arg0, 0) ; return (tmp80) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 16217(line=602, offs=7) -- 17831(line=665, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_mergesort_01524_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_int_type, tmp79) ; ATSlocal (ats_bool_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; // ATSlocal_void (tmp88) ; ATSlocal (ats_int_type, tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; // ATSlocal_void (tmp93) ; __ats_lab_list_vt_mergesort_01524_ats_ptr_type: tmp79 = list_vt_length_01501_ats_ptr_type (arg0) ; tmp85 = atspre_igte (tmp79, 2) ; if (tmp85) { // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp86 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; /* ats_ptr_type tmp87 ; */ tmp90 = atspre_isub (tmp79, 1) ; tmp89 = atspre_idiv (tmp90, 2) ; /* tmp88 = */ split_15 (tmp86, tmp89, (&tmp87)) ; tmp91 = list_vt_mergesort_01524_ats_ptr_type (arg0, arg1) ; tmp92 = list_vt_mergesort_01524_ats_ptr_type (tmp87, arg1) ; /* tmp93 = */ merge_16 (tmp91, tmp92, arg1, (&tmp87)) ; tmp62 = tmp87 ; } else { tmp62 = arg0 ; } /* end of [if] */ return (tmp62) ; } /* end of [list_vt_mergesort_01524_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 4049(line=216, offs=19) -- 4525(line=241, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (__ats_fun_13_closure_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_get: tmp50 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp43), atslab_1) ; tmp51 = ats_ptrget_mac(ats_ptr_type, tmp50) ; tmp52 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp50) = tmp52 ; /* ats_ptr_type tmp53 ; */ tmp53 = &(tmp59) ; __ats_fun_13_closure_init (tmp53) ; // closure initialization tmp60 = list_vt_reverse_01506_ats_ptr_type (tmp51) ; tmp61 = list_vt_mergesort_01524_ats_ptr_type (tmp60, tmp53) ; tmp49 = ats_castfn_mac(ats_ptr_type, tmp61) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 4879(line=264, offs=19) -- 4989(line=273, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_add: tmp99 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp94), atslab_1) ; tmp101 = ats_ptrget_mac(ats_ptr_type, tmp99) ; tmp100 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp100, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp100, atslab_1, tmp101) ; ats_ptrget_mac(ats_ptr_type, tmp99) = tmp100 ; return /* (tmp98) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_add] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 5050(line=276, offs=19) -- 5231(line=288, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_get: tmp103 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp94), atslab_1) ; tmp104 = ats_ptrget_mac(ats_ptr_type, tmp103) ; tmp105 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp103) = tmp105 ; tmp106 = list_vt_reverse_01506_ats_ptr_type (tmp104) ; tmp102 = ats_castfn_mac(ats_ptr_type, tmp106) ; return (tmp102) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 5313(line=293, offs=19) -- 5425(line=302, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_add: tmp108 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp96), atslab_1) ; tmp110 = ats_ptrget_mac(ats_ptr_type, tmp108) ; tmp109 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp109, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp109, atslab_1, tmp110) ; ats_ptrget_mac(ats_ptr_type, tmp108) = tmp109 ; return /* (tmp107) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_add] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 5486(line=305, offs=19) -- 5670(line=318, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_get: tmp112 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp96), atslab_1) ; tmp113 = ats_ptrget_mac(ats_ptr_type, tmp112) ; tmp114 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp112) = tmp114 ; tmp115 = list_vt_reverse_01506_ats_ptr_type (tmp113) ; tmp111 = ats_castfn_mac(ats_ptr_type, tmp115) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 5933(line=337, offs=3) -- 6260(line=356, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_bool_type, tmp122) ; ATSlocal (ats_bool_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_add: tmp121 = ats_ptrget_mac(ats_ptr_type, statmp116) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_ismem (tmp121, arg0) ; tmp123 = atspre_neg_bool (tmp122) ; if (tmp123) { tmp124 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp118), atslab_1) ; tmp126 = ats_ptrget_mac(ats_ptr_type, tmp124) ; tmp125 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp125, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp125, atslab_1, tmp126) ; ats_ptrget_mac(ats_ptr_type, tmp124) = tmp125 ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_add (tmp121, arg0) ; ats_ptrget_mac(ats_ptr_type, statmp116) = tmp127 ; } else { /* empty */ } /* end of [if] */ return /* (tmp120) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_add] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 6322(line=360, offs=3) -- 6564(line=374, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_get: tmp129 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp118), atslab_1) ; tmp130 = ats_ptrget_mac(ats_ptr_type, tmp129) ; tmp131 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp129) = tmp131 ; tmp132 = list_vt_reverse_01506_ats_ptr_type (tmp130) ; tmp128 = ats_castfn_mac(ats_ptr_type, tmp132) ; return (tmp128) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 6826(line=393, offs=3) -- 7153(line=412, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_bool_type, tmp139) ; ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_add: tmp138 = ats_ptrget_mac(ats_ptr_type, statmp133) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_ismem (tmp138, arg0) ; tmp140 = atspre_neg_bool (tmp139) ; if (tmp140) { tmp141 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp135), atslab_1) ; tmp143 = ats_ptrget_mac(ats_ptr_type, tmp141) ; tmp142 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp142, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp142, atslab_1, tmp143) ; ats_ptrget_mac(ats_ptr_type, tmp141) = tmp142 ; tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_add (tmp138, arg0) ; ats_ptrget_mac(ats_ptr_type, statmp133) = tmp144 ; } else { /* empty */ } /* end of [if] */ return /* (tmp137) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_add] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 7215(line=416, offs=3) -- 7457(line=430, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_get: tmp146 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp135), atslab_1) ; tmp147 = ats_ptrget_mac(ats_ptr_type, tmp146) ; tmp148 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp146) = tmp148 ; tmp149 = list_vt_reverse_01506_ats_ptr_type (tmp147) ; tmp145 = ats_castfn_mac(ats_ptr_type, tmp149) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynconlst_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 7721(line=449, offs=18) -- 7825(line=457, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add: tmp153 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp150), atslab_1) ; tmp155 = ats_ptrget_mac(ats_ptr_type, tmp153) ; tmp154 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp154, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp154, atslab_1, tmp155) ; ats_ptrget_mac(ats_ptr_type, tmp153) = tmp154 ; return /* (tmp152) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6) */ ATSstaticdec() ats_void_type loop_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; // ATSlocal_void (tmp162) ; __ats_lab_loop_31: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp161 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; /* tmp162 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp160, arg2) ; arg0 = tmp161 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_loop_31 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: break ; } while (0) ; return /* (tmp159) */ ; } /* end of [loop_31] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4) */ ATSstaticdec() ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp158) ; __ats_lab_list_app_funenv_01300_ats_ptr_type: /* tmp158 = */ loop_31 (arg0, arg1, arg2) ; return /* (tmp158) */ ; } /* end of [list_app_funenv_01300_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4) */ ATSstaticdec() ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp157) ; __ats_lab_list_app_fun_01301_ats_ptr_type: /* tmp157 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return /* (tmp157) */ ; } /* end of [list_app_fun_01301_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 7890(line=461, offs=3) -- 7934(line=461, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_addlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_addlst: /* tmp156 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add) ; return /* (tmp156) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_addlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 8020(line=468, offs=3) -- 8268(line=487, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_get: tmp164 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp150), atslab_1) ; tmp165 = ats_ptrget_mac(ats_ptr_type, tmp164) ; tmp166 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp164) = tmp166 ; tmp167 = list_vt_reverse_01506_ats_ptr_type (tmp165) ; tmp163 = ats_castfn_mac(ats_ptr_type, tmp167) ; return (tmp163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_get] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 9149(line=523, offs=20) -- 9889(line=538, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; ATS_FREE(arg0) ; arg0 = tmp169 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp170 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp171 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp171 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp172 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp172 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp173 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp174 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp175 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp176 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp176 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp177 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp178 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (((ats_sum_ptr_type)arg0)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp179 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free ; // tail call break ; } while (0) ; return /* (tmp168) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 10071(line=550, offs=5) -- 13772(line=715, offs=4) */ ATSstaticdec() ats_void_type loop_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_bool_type, tmp184) ; // ATSlocal_void (tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_int_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_bool_type, tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_int_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; // ATSlocal_void (tmp198) ; ATSlocal (ats_bool_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_int_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; // ATSlocal_void (tmp207) ; ATSlocal (ats_bool_type, tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_int_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; ATSlocal (ats_bool_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_int_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; // ATSlocal_void (tmp226) ; ATSlocal (ats_bool_type, tmp227) ; // ATSlocal_void (tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_int_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; // ATSlocal_void (tmp234) ; ATSlocal (ats_bool_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; // ATSlocal_void (tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_int_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; // ATSlocal_void (tmp243) ; ATSlocal (ats_bool_type, tmp244) ; // ATSlocal_void (tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; // ATSlocal_void (tmp251) ; ATSlocal (ats_bool_type, tmp252) ; // ATSlocal_void (tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_int_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_bool_type, tmp260) ; // ATSlocal_void (tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_int_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; // ATSlocal_void (tmp267) ; ATSlocal (ats_bool_type, tmp268) ; // ATSlocal_void (tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_int_type, tmp272) ; __ats_lab_loop_35: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp182 = &ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp184 = atspre_gt_int_int (arg2, 0) ; if (tmp184) { /* tmp183 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp185 = */ atspre_fprint_string (arg0, ATSstrcst("||")) ; tmp186 = ats_ptrget_mac(ats_ptr_type, tmp182) ; tmp187 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp186 ; arg2 = tmp187 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp188 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp189 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp191 = atspre_gt_int_int (arg2, 0) ; if (tmp191) { /* tmp190 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp193 = ats_ptrget_mac(ats_ptr_type, tmp188) ; /* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp193) ; tmp194 = ats_ptrget_mac(ats_ptr_type, tmp189) ; tmp195 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp194 ; arg2 = tmp195 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp196 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp197 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp199 = atspre_gt_int_int (arg2, 0) ; if (tmp199) { /* tmp198 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp200 = ats_ptrget_mac(ats_ptr_type, tmp196) ; tmp201 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp200), atslab_hifundec_var) ; /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp201) ; tmp203 = ats_ptrget_mac(ats_ptr_type, tmp197) ; tmp204 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp203 ; arg2 = tmp204 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp205 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp206 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp208 = atspre_gt_int_int (arg2, 0) ; if (tmp208) { /* tmp207 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp210 = ats_ptrget_mac(ats_ptr_type, tmp205) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hifundec2 (arg0, tmp210) ; tmp211 = ats_ptrget_mac(ats_ptr_type, tmp206) ; tmp212 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp211 ; arg2 = tmp212 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp213 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp214 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp216 = atspre_gt_int_int (arg2, 0) ; if (tmp216) { /* tmp215 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp217 = ats_ptrget_mac(ats_ptr_type, tmp213) ; tmp218 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp217), atslab_hiimpdec_cst) ; /* tmp219 = */ atspre_fprint_string (arg0, ATSstrcst("HIIMPDEC(")) ; /* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp218) ; /* tmp221 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; tmp222 = ats_ptrget_mac(ats_ptr_type, tmp214) ; tmp223 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp222 ; arg2 = tmp223 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp224 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp225 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp227 = atspre_gt_int_int (arg2, 0) ; if (tmp227) { /* tmp226 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp229 = ats_ptrget_mac(ats_ptr_type, tmp224) ; /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hiimpdec2 (arg0, tmp229) ; tmp230 = ats_ptrget_mac(ats_ptr_type, tmp225) ; tmp231 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp230 ; arg2 = tmp231 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp232 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp233 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp235 = atspre_gt_int_int (arg2, 0) ; if (tmp235) { /* tmp234 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp237 = ats_ptrget_mac(ats_ptr_type, tmp232) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__filenv_get_name (tmp237) ; /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp236) ; tmp239 = ats_ptrget_mac(ats_ptr_type, tmp233) ; tmp240 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp239 ; arg2 = tmp240 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp241 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp242 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp244 = atspre_gt_int_int (arg2, 0) ; if (tmp244) { /* tmp243 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp246 = ats_ptrget_mac(ats_ptr_type, tmp241) ; /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub (arg0, tmp246) ; tmp247 = ats_ptrget_mac(ats_ptr_type, tmp242) ; tmp248 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp247 ; arg2 = tmp248 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp249 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp250 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp252 = atspre_gt_int_int (arg2, 0) ; if (tmp252) { /* tmp251 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp254 = ats_ptrget_mac(ats_ptr_type, tmp249) ; /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat (arg0, tmp254) ; tmp255 = ats_ptrget_mac(ats_ptr_type, tmp250) ; tmp256 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp255 ; arg2 = tmp256 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp257 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp258 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp260 = atspre_gt_int_int (arg2, 0) ; if (tmp260) { /* tmp259 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp262 = ats_ptrget_mac(ats_ptr_type, tmp257) ; /* tmp261 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat (arg0, tmp262) ; tmp263 = ats_ptrget_mac(ats_ptr_type, tmp258) ; tmp264 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp263 ; arg2 = tmp264 ; goto __ats_lab_loop_35 ; // tail call break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (((ats_sum_ptr_type)arg1)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp265 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp266 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp268 = atspre_gt_int_int (arg2, 0) ; if (tmp268) { /* tmp267 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp270 = ats_ptrget_mac(ats_ptr_type, tmp265) ; /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst (arg0, tmp270) ; tmp271 = ats_ptrget_mac(ats_ptr_type, tmp266) ; tmp272 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp271 ; arg2 = tmp272 ; goto __ats_lab_loop_35 ; // tail call break ; } while (0) ; return /* (tmp181) */ ; } /* end of [loop_35] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 10048(line=548, offs=19) -- 13819(line=719, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__fprint_markenvlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp180) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__fprint_markenvlst: /* tmp180 = */ loop_35 (arg0, arg1, 0) ; return /* (tmp180) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__fprint_markenvlst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_38 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; __ats_lab_loop_38: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp279 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp279 ; goto __ats_lab_loop_38 ; // tail call break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: break ; } while (0) ; return /* (tmp278) */ ; } /* end of [loop_38] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp277) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp277 = */ loop_38 (arg0) ; return /* (tmp277) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 13993(line=731, offs=16) -- 14216(line=745, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__freeconenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; // ATSlocal_void (tmp276) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__freeconenv_free: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp274 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp275 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp276 = */ list_vt_free_01499_ats_ptr_type (tmp274) ; arg0 = tmp275 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__freeconenv_free ; // tail call break ; } while (0) ; return /* (tmp273) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__freeconenv_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 14506(line=763, offs=17) -- 14690(line=773, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__loopexnenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__loopexnenv_free: 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: tmp281 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp282 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; // ATS_FREE(tmp281) ; arg0 = tmp282 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__loopexnenv_free ; // 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 /* (tmp280) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__loopexnenv_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 14977(line=794, offs=15) -- 15069(line=801, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tlcalitm_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tlcalitm_free: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: ATS_FREE(arg0) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp284 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; ATS_FREE(arg0) ; /* tmp283 = */ list_vt_free_01499_ats_ptr_type (tmp284) ; break ; } while (0) ; return /* (tmp283) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tlcalitm_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 15203(line=811, offs=17) -- 15370(line=822, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tailcalenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; // ATSlocal_void (tmp288) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tailcalenv_free: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp286 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp287 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp288 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tlcalitm_free (tmp286) ; arg0 = tmp287 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tailcalenv_free ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: break ; } while (0) ; return /* (tmp285) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tailcalenv_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 15545(line=832, offs=17) -- 15676(line=840, offs=24) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__flabsetenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; // ATSlocal_void (tmp292) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__flabsetenv_free: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp290 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp292 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_free (tmp290) ; arg0 = tmp291 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__flabsetenv_free ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: break ; } while (0) ; return /* (tmp289) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__flabsetenv_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 15871(line=854, offs=17) -- 16001(line=862, offs=24) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dvarsetenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; // ATSlocal_void (tmp296) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dvarsetenv_free: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp294 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_free (tmp294) ; arg0 = tmp295 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dvarsetenv_free ; // tail call break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: break ; } while (0) ; return /* (tmp293) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dvarsetenv_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 16206(line=875, offs=18) -- 16328(line=883, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__vbindmapenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__vbindmapenv_free: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp298 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp298 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__vbindmapenv_free ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: break ; } while (0) ; return /* (tmp297) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__vbindmapenv_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 16989(line=915, offs=27) -- 17506(line=934, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_struct_uninitize (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp299) ; // ATSlocal_void (tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; // ATSlocal_void (tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; // ATSlocal_void (tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; // ATSlocal_void (tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; // ATSlocal_void (tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; // ATSlocal_void (tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; // ATSlocal_void (tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_struct_uninitize: tmp301 = ats_select_mac(ats_ptrget_mac(anairiats_rec_8, arg0), atslab_ccompenv_markenvlst) ; /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__markenvlst_vt_free (tmp301) ; tmp303 = ats_select_mac(ats_ptrget_mac(anairiats_rec_8, arg0), atslab_ccompenv_freeconenv) ; /* tmp302 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__freeconenv_free (tmp303) ; tmp305 = ats_select_mac(ats_ptrget_mac(anairiats_rec_8, arg0), atslab_ccompenv_loopexnenv) ; /* tmp304 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__loopexnenv_free (tmp305) ; tmp307 = ats_select_mac(ats_ptrget_mac(anairiats_rec_8, arg0), atslab_ccompenv_tailcalenv) ; /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tailcalenv_free (tmp307) ; tmp309 = ats_select_mac(ats_ptrget_mac(anairiats_rec_8, arg0), atslab_ccompenv_flabsetenv) ; /* tmp308 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__flabsetenv_free (tmp309) ; tmp311 = ats_select_mac(ats_ptrget_mac(anairiats_rec_8, arg0), atslab_ccompenv_dvarsetenv) ; /* tmp310 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dvarsetenv_free (tmp311) ; tmp313 = ats_select_mac(ats_ptrget_mac(anairiats_rec_8, arg0), atslab_ccompenv_vbindmapenv) ; /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__vbindmapenv_free (tmp313) ; tmp314 = ats_select_mac(ats_ptrget_mac(anairiats_rec_8, arg0), atslab_ccompenv_vbindmapall) ; /* tmp299 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free (tmp314) ; return /* (tmp299) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_struct_uninitize] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 17725(line=949, offs=3) -- 18483(line=976, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_make () { /* local vardec */ ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; // ATSlocal_void (tmp326) ; // ATSlocal_void (tmp327) ; // ATSlocal_void (tmp328) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_make: tmp316 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; tmp317 = &ats_caselptrlab_mac(anairiats_sum_9, tmp316, atslab_0) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_tmplevel) = 0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_tmprecdepth) = 0 ; tmp318 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_freeconenv) = tmp318 ; tmp319 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_loopexnenv) = tmp319 ; tmp320 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_tailcalenv) = tmp320 ; tmp321 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_flabsetenv) = tmp321 ; tmp322 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_dvarsetenv) = tmp322 ; tmp323 = (ats_sum_ptr_type)0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_vbindmapenv) = tmp323 ; tmp324 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTnil_0) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_markenvlst) = tmp324 ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil () ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp317), atslab_ccompenv_vbindmapall) = tmp325 ; /* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_flabsetenv (tmp316) ; /* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_dvarsetenv (tmp316) ; /* tmp328 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_vbindmapenv (tmp316) ; tmp315 = tmp316 ; return (tmp315) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_make] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 18555(line=981, offs=14) -- 18767(line=998, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; // ATSlocal_void (tmp331) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_free: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: // __ats_lab_50_1: tmp330 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; /* tmp331 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_struct_uninitize (tmp330) ; ATS_FREE(arg0) ; break ; } while (0) ; return /* (tmp329) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_free] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 18844(line=1004, offs=3) -- 19187(line=1024, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_ccompenv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_ccompenv: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: // __ats_lab_51_1: tmp333 = &ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; /* tmp334 = */ atspre_fprint_string (arg0, ATSstrcst("ccompenv_markenvlst: ")) ; tmp336 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp333), atslab_ccompenv_markenvlst) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__fprint_markenvlst (arg0, tmp336) ; /* tmp332 = */ atspre_fprint_newline (arg0) ; break ; } while (0) ; return /* (tmp332) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_ccompenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 19272(line=1030, offs=3) -- 19397(line=1039, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel: tmp338 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp337 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp338), atslab_ccompenv_tmplevel) ; return (tmp337) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 19470(line=1043, offs=3) -- 19655(line=1054, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmplevel (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_int_type, tmp341) ; ATSlocal (ats_int_type, tmp342) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmplevel: tmp340 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp341 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp340), atslab_ccompenv_tmplevel) ; tmp342 = atspre_add_int_int (tmp341, 1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp340), atslab_ccompenv_tmplevel) = tmp342 ; return /* (tmp339) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmplevel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 19725(line=1058, offs=3) -- 19910(line=1069, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmplevel (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_int_type, tmp345) ; ATSlocal (ats_int_type, tmp346) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmplevel: tmp344 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp345 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp344), atslab_ccompenv_tmplevel) ; tmp346 = atspre_sub_int_int (tmp345, 1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp344), atslab_ccompenv_tmplevel) = tmp346 ; return /* (tmp343) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmplevel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 20004(line=1075, offs=3) -- 20128(line=1083, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmprecdepth (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmprecdepth: tmp348 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp347 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp348), atslab_ccompenv_tmprecdepth) ; return (tmp347) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmprecdepth] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 20207(line=1087, offs=3) -- 20394(line=1098, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmprecdepth (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_int_type, tmp351) ; ATSlocal (ats_int_type, tmp352) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmprecdepth: tmp350 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp351 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp350), atslab_ccompenv_tmprecdepth) ; tmp352 = atspre_add_int_int (tmp351, 1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp350), atslab_ccompenv_tmprecdepth) = tmp352 ; return /* (tmp349) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmprecdepth] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 20470(line=1102, offs=3) -- 20657(line=1113, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmprecdepth (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_int_type, tmp355) ; ATSlocal (ats_int_type, tmp356) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmprecdepth: tmp354 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp355 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp354), atslab_ccompenv_tmprecdepth) ; tmp356 = atspre_sub_int_int (tmp355, 1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp354), atslab_ccompenv_tmprecdepth) = tmp356 ; return /* (tmp353) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmprecdepth] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 20753(line=1119, offs=3) -- 20992(line=1132, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_freeconenv (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_freeconenv: tmp358 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp359 = (ats_sum_ptr_type)0 ; tmp360 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp358), atslab_ccompenv_freeconenv) ; tmp361 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp361, atslab_0, tmp359) ; ats_selptrset_mac(anairiats_sum_1, tmp361, atslab_1, tmp360) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp358), atslab_ccompenv_freeconenv) = tmp361 ; return /* (tmp357) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_freeconenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 21069(line=1136, offs=3) -- 21267(line=1148, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_freeconenv (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_freeconenv: tmp363 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp364 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp363), atslab_ccompenv_freeconenv) ; if (tmp364 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 21124(line=1142, offs=1) -- 21177(line=1143, offs=40)") ; } tmp365 = ats_caselptrlab_mac(anairiats_sum_1, tmp364, atslab_0) ; tmp366 = ats_caselptrlab_mac(anairiats_sum_1, tmp364, atslab_1) ; ATS_FREE(tmp364) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp363), atslab_ccompenv_freeconenv) = tmp366 ; tmp362 = tmp365 ; return (tmp362) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_freeconenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 21365(line=1154, offs=3) -- 21638(line=1171, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv: tmp368 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp369 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp368), atslab_ccompenv_freeconenv) ; if (tmp369 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 21416(line=1159, offs=1) -- 21466(line=1160, offs=38)") ; } tmp370 = &ats_caselptrlab_mac(anairiats_sum_1, tmp369, atslab_0) ; tmp372 = ats_ptrget_mac(ats_ptr_type, tmp370) ; tmp371 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp371, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_1, tmp371, atslab_1, tmp372) ; ats_ptrget_mac(ats_ptr_type, tmp370) = tmp371 ; return /* (tmp367) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 21715(line=1175, offs=3) -- 21913(line=1189, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freetupenv_if (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp373) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freetupenv_if: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_53_0 ; } __ats_lab_52_1: /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv (arg0, arg1) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: __ats_lab_53_1: break ; } while (0) ; return /* (tmp373) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freetupenv_if] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 21993(line=1193, offs=3) -- 22318(line=1212, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp374) ; ATSlocal (ats_bool_type, tmp375) ; ATSlocal (ats_bool_type, tmp376) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_nullary (arg3) ; tmp376 = atspre_neg_bool (tmp375) ; if (tmp376) { /* tmp374 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv (arg0, arg1) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: __ats_lab_55_1: break ; } while (0) ; return /* (tmp374) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 22416(line=1218, offs=3) -- 22637(line=1225, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_loopexnenv (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_loopexnenv: tmp378 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp378, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp378, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp378, atslab_2, arg3) ; tmp379 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp381 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp379), atslab_ccompenv_loopexnenv) ; tmp380 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp380, atslab_0, tmp378) ; ats_selptrset_mac(anairiats_sum_1, tmp380, atslab_1, tmp381) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp379), atslab_ccompenv_loopexnenv) = tmp380 ; return /* (tmp377) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_loopexnenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 22711(line=1229, offs=3) -- 22921(line=1237, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_loopexnenv (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_loopexnenv: tmp383 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp384 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp383), atslab_ccompenv_loopexnenv) ; if (tmp384 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 22755(line=1231, offs=7) -- 22801(line=1231, offs=53)") ; } tmp385 = ats_caselptrlab_mac(anairiats_sum_1, tmp384, atslab_0) ; tmp386 = ats_caselptrlab_mac(anairiats_sum_1, tmp384, atslab_1) ; ATS_FREE(tmp384) ; // ATS_FREE(tmp385) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp383), atslab_ccompenv_loopexnenv) = tmp386 ; return /* (tmp382) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_loopexnenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 22993(line=1241, offs=3) -- 23234(line=1250, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopfini (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopfini: tmp388 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp389 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp388), atslab_ccompenv_loopexnenv) ; if (tmp389 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 23037(line=1243, offs=7) -- 23083(line=1243, offs=53)") ; } tmp390 = &ats_caselptrlab_mac(anairiats_sum_1, tmp389, atslab_0) ; tmp391 = ats_ptrget_mac(ats_ptr_type, tmp390) ; // tmp392 = ats_caselptrlab_mac(anairiats_sum_10, tmp391, atslab_1) ; tmp387 = tmp392 ; return (tmp387) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopfini] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 23304(line=1254, offs=3) -- 23545(line=1263, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopcont (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopcont: tmp394 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp395 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp394), atslab_ccompenv_loopexnenv) ; if (tmp395 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 23348(line=1256, offs=7) -- 23394(line=1256, offs=53)") ; } tmp396 = &ats_caselptrlab_mac(anairiats_sum_1, tmp395, atslab_0) ; tmp397 = ats_ptrget_mac(ats_ptr_type, tmp396) ; // tmp398 = ats_caselptrlab_mac(anairiats_sum_10, tmp397, atslab_2) ; tmp393 = tmp398 ; return (tmp393) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopcont] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 23638(line=1269, offs=3) -- 23902(line=1282, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv: tmp400 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp401 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp401)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp401, atslab_0, arg1) ; tmp402 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp400), atslab_ccompenv_tailcalenv) ; tmp403 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp403, atslab_0, tmp401) ; ats_selptrset_mac(anairiats_sum_1, tmp403, atslab_1, tmp402) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp400), atslab_ccompenv_tailcalenv) = tmp403 ; return /* (tmp399) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 23980(line=1286, offs=3) -- 24185(line=1296, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv_fnx (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv_fnx: tmp405 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp406 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp406)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp406, atslab_0, arg1) ; tmp407 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp405), atslab_ccompenv_tailcalenv) ; tmp408 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp408, atslab_0, tmp406) ; ats_selptrset_mac(anairiats_sum_1, tmp408, atslab_1, tmp407) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp405), atslab_ccompenv_tailcalenv) = tmp408 ; return /* (tmp404) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv_fnx] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 24263(line=1300, offs=3) -- 24462(line=1310, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; // ATSlocal_void (tmp414) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv: tmp410 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp411 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp410), atslab_ccompenv_tailcalenv) ; if (tmp411 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 24313(line=1304, offs=5) -- 24365(line=1305, offs=39)") ; } tmp412 = ats_caselptrlab_mac(anairiats_sum_1, tmp411, atslab_0) ; tmp413 = ats_caselptrlab_mac(anairiats_sum_1, tmp411, atslab_1) ; ATS_FREE(tmp411) ; /* tmp414 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__tlcalitm_free (tmp412) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp410), atslab_ccompenv_tailcalenv) = tmp413 ; return /* (tmp409) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 24553(line=1319, offs=1) -- 24961(line=1340, offs=4) */ ATSstaticdec() ats_int_type auxfind_67 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_int_type, tmp417) ; ATSlocal (ats_bool_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; __ats_lab_auxfind_67: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp416 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp417 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp (tmp416) ; tmp418 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp (arg0, tmp417) ; if (tmp418) { tmp415 = 0 ; } else { tmp415 = -1 ; } /* end of [if] */ break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp419 = &ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp420 = ats_ptrget_mac(ats_ptr_type, tmp419) ; tmp415 = auxfind_lst_68 (arg0, ats_castfn_mac(ats_ptr_type, tmp420), 1) ; break ; } while (0) ; return (tmp415) ; } /* end of [auxfind_67] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 24987(line=1343, offs=1) -- 25296(line=1361, offs=4) */ ATSstaticdec() ats_int_type auxfind_lst_68 (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_int_type, tmp424) ; ATSlocal (ats_bool_type, tmp425) ; ATSlocal (ats_int_type, tmp426) ; __ats_lab_auxfind_lst_68: do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp421 = -1 ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: tmp422 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp423 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp (tmp422) ; tmp425 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp (arg0, tmp424) ; if (tmp425) { tmp421 = arg2 ; } else { tmp426 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp423 ; arg2 = tmp426 ; goto __ats_lab_auxfind_lst_68 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp421) ; } /* end of [auxfind_lst_68] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 25347(line=1366, offs=1) -- 25913(line=1397, offs=4) */ ATSstaticdec() ats_ptr_type auxfind2_69 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_bool_type, tmp431) ; __ats_lab_auxfind2_69: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_63_0 ; } __ats_lab_60_1: tmp428 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp429 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2copt (tmp428) ; do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (tmp429 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp430 = ats_caselptrlab_mac(anairiats_sum_11, tmp429, atslab_0) ; tmp431 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst (arg0, tmp430) ; if (tmp431) { tmp427 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp427, atslab_0, tmp428) ; } else { tmp427 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (tmp429 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp427 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_63_1: tmp427 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp427) ; } /* end of [auxfind2_69] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 25961(line=1402, offs=1) -- 26676(line=1440, offs=4) */ ATSstaticdec() ats_ptr_type auxfind3_70 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_bool_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; __ats_lab_auxfind3_70: do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_67_0 ; } __ats_lab_64_1: tmp433 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt (tmp433) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (tmp434 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp435 = ats_caselptrlab_mac(anairiats_sum_11, tmp434, atslab_0) ; tmp436 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (arg0, tmp435) ; if (tmp436) { tmp432 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp432, atslab_0, tmp433) ; } else { tmp432 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (tmp434 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp432 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp437 = &ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; ats_ptrget_mac(ats_int_type, arg2) = 1 ; tmp438 = ats_ptrget_mac(ats_ptr_type, tmp437) ; tmp432 = auxfind3_lst_71 (arg0, ats_castfn_mac(ats_ptr_type, tmp438), arg2) ; break ; } while (0) ; return (tmp432) ; } /* end of [auxfind3_70] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 26703(line=1443, offs=1) -- 27353(line=1475, offs=4) */ ATSstaticdec() ats_ptr_type auxfind3_lst_71 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_bool_type, tmp444) ; ATSlocal (ats_int_type, tmp445) ; __ats_lab_auxfind3_lst_71: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_68_1: tmp440 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp441 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_d2vopt (tmp440) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (tmp442 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp443 = ats_caselptrlab_mac(anairiats_sum_11, tmp442, atslab_0) ; tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (arg0, tmp443) ; if (tmp444) { tmp439 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp439, atslab_0, tmp440) ; } else { tmp445 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp445 ; arg0 = arg0 ; arg1 = tmp441 ; arg2 = arg2 ; goto __ats_lab_auxfind3_lst_71 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (tmp442 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp439 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp439 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp439) ; } /* end of [auxfind3_lst_71] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 27441(line=1481, offs=3) -- 27687(line=1494, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp446) ; ATSlocal (ats_int_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv: tmp447 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp (arg1) ; tmp448 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp449 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp448), atslab_ccompenv_tailcalenv) ; if (tmp449 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 27524(line=1486, offs=5) -- 27575(line=1487, offs=39)") ; } tmp450 = &ats_caselptrlab_mac(anairiats_sum_1, tmp449, atslab_0) ; tmp451 = ats_ptrget_mac(ats_ptr_type, tmp450) ; tmp446 = auxfind_67 (tmp447, tmp451) ; return (tmp446) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 27767(line=1498, offs=3) -- 27991(line=1512, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_cst: tmp453 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp454 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp453), atslab_ccompenv_tailcalenv) ; if (tmp454 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 27819(line=1502, offs=5) -- 27870(line=1503, offs=39)") ; } tmp455 = &ats_caselptrlab_mac(anairiats_sum_1, tmp454, atslab_0) ; tmp456 = ats_ptrget_mac(ats_ptr_type, tmp455) ; tmp452 = auxfind2_69 (arg1, tmp456) ; return (tmp452) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_cst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 28075(line=1516, offs=3) -- 28309(line=1530, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_var: tmp458 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp459 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp458), atslab_ccompenv_tailcalenv) ; if (tmp459 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 28132(line=1520, offs=5) -- 28183(line=1521, offs=39)") ; } tmp460 = &ats_caselptrlab_mac(anairiats_sum_1, tmp459, atslab_0) ; tmp461 = ats_ptrget_mac(ats_ptr_type, tmp460) ; tmp457 = auxfind3_70 (arg1, tmp461, arg2) ; return (tmp457) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_var] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 28699(line=1552, offs=3) -- 29178(line=1577, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpcst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_bool_type, tmp465) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpcst: tmp463 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_cst (arg0, arg1) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (tmp463 == (ats_sum_ptr_type)0) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp464 = ats_caselptrlab_mac(anairiats_sum_11, tmp463, atslab_0) ; ATS_FREE(tmp463) ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_tmparg_match (tmp464, arg2) ; if (tmp465) { tmp462 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp462, atslab_0, tmp464) ; } else { tmp462 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: // if (tmp463 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_73_1: tmp462 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp462) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpcst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 29289(line=1583, offs=3) -- 29779(line=1608, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_bool_type, tmp469) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpvar: tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_var (arg0, arg1, arg3) ; do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (tmp467 == (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp468 = ats_caselptrlab_mac(anairiats_sum_11, tmp467, atslab_0) ; ATS_FREE(tmp467) ; tmp469 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_tmparg_match (tmp468, arg2) ; if (tmp469) { tmp466 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp466, atslab_0, tmp468) ; } else { tmp466 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: // if (tmp467 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_75_1: tmp466 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp466) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_tailcalenv_tmpvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 30099(line=1630, offs=3) -- 30312(line=1640, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_dvarsetenv (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_dvarsetenv: tmp471 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp472 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil () ; tmp473 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp471), atslab_ccompenv_dvarsetenv) ; tmp474 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp474, atslab_0, tmp472) ; ats_selptrset_mac(anairiats_sum_1, tmp474, atslab_1, tmp473) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp471), atslab_ccompenv_dvarsetenv) = tmp474 ; return /* (tmp470) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_dvarsetenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 30389(line=1644, offs=3) -- 30635(line=1658, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_incwth_dvarsetenv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_incwth_dvarsetenv: tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst2set (arg1) ; tmp477 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp478 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp477), atslab_ccompenv_dvarsetenv) ; tmp479 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp479, atslab_0, tmp476) ; ats_selptrset_mac(anairiats_sum_1, tmp479, atslab_1, tmp478) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp477), atslab_ccompenv_dvarsetenv) = tmp479 ; return /* (tmp475) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_incwth_dvarsetenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 30736(line=1664, offs=3) -- 30911(line=1672, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_dvarsetenv (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_dvarsetenv: tmp481 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp482 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp481), atslab_ccompenv_dvarsetenv) ; if (tmp482 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 30790(line=1668, offs=5) -- 30842(line=1668, offs=57)") ; } tmp483 = ats_caselptrlab_mac(anairiats_sum_1, tmp482, atslab_0) ; tmp484 = ats_caselptrlab_mac(anairiats_sum_1, tmp482, atslab_1) ; ATS_FREE(tmp482) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp481), atslab_ccompenv_dvarsetenv) = tmp484 ; tmp480 = tmp483 ; return (tmp480) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_dvarsetenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 31016(line=1678, offs=3) -- 31371(line=1698, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp485) ; ATSlocal (ats_int_type, tmp486) ; ATSlocal (ats_bool_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_var: tmp486 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level (arg1) ; tmp487 = atspre_gt_int_int (tmp486, 0) ; if (tmp487) { tmp488 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2var2env (arg1) ; tmp490 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp488), atslab_ccompenv_dvarsetenv) ; if (tmp490 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 31175(line=1690, offs=5) -- 31227(line=1691, offs=40)") ; } tmp491 = &ats_caselptrlab_mac(anairiats_sum_1, tmp490, atslab_0) ; tmp493 = ats_ptrget_mac(ats_ptr_type, tmp491) ; tmp492 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add (tmp493, tmp489) ; ats_ptrget_mac(ats_ptr_type, tmp491) = tmp492 ; } else { /* empty */ } /* end of [if] */ return /* (tmp485) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_var] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 31449(line=1702, offs=3) -- 31805(line=1721, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_env (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_int_type, tmp496) ; ATSlocal (ats_bool_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_env: tmp495 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (arg1) ; tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level (tmp495) ; tmp497 = atspre_gt_int_int (tmp496, 0) ; if (tmp497) { tmp498 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp499 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp498), atslab_ccompenv_dvarsetenv) ; if (tmp499 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 31609(line=1713, offs=5) -- 31661(line=1714, offs=40)") ; } tmp500 = &ats_caselptrlab_mac(anairiats_sum_1, tmp499, atslab_0) ; tmp502 = ats_ptrget_mac(ats_ptr_type, tmp500) ; tmp501 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add (tmp502, arg1) ; ats_ptrget_mac(ats_ptr_type, tmp500) = tmp501 ; } else { /* empty */ } /* end of [if] */ return /* (tmp494) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_env] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 31900(line=1727, offs=3) -- 32170(line=1740, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_flabsetenv (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_flabsetenv: tmp504 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp505 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_nil () ; tmp507 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp504), atslab_ccompenv_flabsetenv) ; tmp506 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp506, atslab_0, tmp505) ; ats_selptrset_mac(anairiats_sum_1, tmp506, atslab_1, tmp507) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp504), atslab_ccompenv_flabsetenv) = tmp506 ; return /* (tmp503) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_flabsetenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 32247(line=1744, offs=3) -- 32496(line=1754, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_flabsetenv (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_flabsetenv: tmp509 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp510 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp509), atslab_ccompenv_flabsetenv) ; if (tmp510 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 32300(line=1748, offs=5) -- 32350(line=1748, offs=55)") ; } tmp511 = ats_caselptrlab_mac(anairiats_sum_1, tmp510, atslab_0) ; tmp512 = ats_caselptrlab_mac(anairiats_sum_1, tmp510, atslab_1) ; ATS_FREE(tmp510) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp509), atslab_ccompenv_flabsetenv) = tmp512 ; tmp508 = tmp511 ; return (tmp508) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_flabsetenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 32594(line=1760, offs=3) -- 32892(line=1775, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv: tmp514 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp515 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp514), atslab_ccompenv_flabsetenv) ; if (tmp515 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 32722(line=1769, offs=5) -- 32773(line=1770, offs=39)") ; } tmp516 = &ats_caselptrlab_mac(anairiats_sum_1, tmp515, atslab_0) ; tmp518 = ats_ptrget_mac(ats_ptr_type, tmp516) ; tmp517 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlabset_vt_add (tmp518, arg1) ; ats_ptrget_mac(ats_ptr_type, tmp516) = tmp517 ; return /* (tmp513) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 33025(line=1783, offs=5) -- 33486(line=1804, offs=4) */ ATSstaticdec() ats_void_type addlst_if_86 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_int_type, tmp524) ; // ATSlocal_void (tmp525) ; ATSlocal (ats_bool_type, tmp526) ; __ats_lab_addlst_if_86: do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp521 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; tmp522 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (tmp521) ; tmp524 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level (tmp523) ; tmp526 = atspre_lte_int_int (tmp524, arg1) ; if (tmp526) { /* tmp525 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_env (arg0, tmp521) ; } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp522 ; goto __ats_lab_addlst_if_86 ; // tail call break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: break ; } while (0) ; return /* (tmp520) */ ; } /* end of [addlst_if_86] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 32993(line=1781, offs=3) -- 33553(line=1810, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_dvarsetenv_if (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp519) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_dvarsetenv_if: /* tmp519 = */ addlst_if_86 (arg0, arg1, arg2) ; return /* (tmp519) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_dvarsetenv_if] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 33702(line=1818, offs=5) -- 34154(line=1841, offs=4) */ ATSstaticdec() ats_void_type auxenv_88 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; // ATSlocal_void (tmp533) ; __ats_lab_auxenv_88: do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; } __ats_lab_78_1: tmp529 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; tmp530 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; tmp531 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (tmp529) ; tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search (arg1, tmp531) ; do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (tmp532 == (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: ATS_FREE(tmp532) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (tmp532 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: /* tmp533 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_dvarsetenv_env (arg0, tmp529) ; break ; } while (0) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp530 ; goto __ats_lab_auxenv_88 ; // tail call break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_81_1: break ; } while (0) ; return /* (tmp528) */ ; } /* end of [auxenv_88] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 34184(line=1843, offs=5) -- 34818(line=1869, offs=4) */ ATSstaticdec() ats_ptr_type addlst_if_89 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_int_type, tmp537) ; ATSlocal (ats_bool_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; // ATSlocal_void (tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; // ATSlocal_void (tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; __ats_lab_addlst_if_89: do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp535 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp536 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; ATS_FREE(arg3) ; tmp537 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_level (tmp535) ; tmp538 = atspre_gt_int_int (tmp537, arg1) ; if (tmp538) { tmp539 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp535) ; if (tmp539 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 34422(line=1856, offs=11) -- 34457(line=1856, offs=46)") ; } tmp540 = ats_caselptrlab_mac(anairiats_sum_11, tmp539, atslab_0) ; tmp542 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_d2envlst (tmp540) ; /* tmp541 = */ auxenv_88 (arg0, arg2, tmp542) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp536 ; goto __ats_lab_addlst_if_89 ; // tail call } else { /* tmp543 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_flabsetenv (arg0, tmp535) ; tmp544 = addlst_if_89 (arg0, arg1, arg2, tmp536) ; tmp534 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp534, atslab_0, tmp535) ; ats_selptrset_mac(anairiats_sum_1, tmp534, atslab_1, tmp544) ; } /* end of [if] */ break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_83_1: tmp534 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp534) ; } /* end of [addlst_if_89] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 33663(line=1816, offs=3) -- 34892(line=1875, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_flabsetenv_ifmap (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp527) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_flabsetenv_ifmap: tmp527 = addlst_if_89 (arg0, arg1, arg2, arg3) ; return (tmp527) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_addlst_flabsetenv_ifmap] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 34997(line=1881, offs=3) -- 35205(line=1891, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_vbindmapenv (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_vbindmapenv: tmp546 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp547 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil () ; tmp548 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp546), atslab_ccompenv_vbindmapenv) ; tmp549 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp549, atslab_0, tmp547) ; ats_selptrset_mac(anairiats_sum_1, tmp549, atslab_1, tmp548) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp546), atslab_ccompenv_vbindmapenv) = tmp549 ; return /* (tmp545) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_vbindmapenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 35284(line=1895, offs=3) -- 35463(line=1906, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_vbindmapenv (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_vbindmapenv: tmp551 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp552 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp551), atslab_ccompenv_vbindmapenv) ; if (tmp552 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 35338(line=1900, offs=5) -- 35391(line=1901, offs=40)") ; } tmp553 = ats_caselptrlab_mac(anairiats_sum_1, tmp552, atslab_0) ; tmp554 = ats_caselptrlab_mac(anairiats_sum_1, tmp552, atslab_1) ; ATS_FREE(tmp552) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp551), atslab_ccompenv_vbindmapenv) = tmp554 ; tmp550 = tmp553 ; return (tmp550) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_vbindmapenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 35563(line=1912, offs=3) -- 35818(line=1925, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenv (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_bool_type, tmp559) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenv: tmp556 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp557 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp556), atslab_ccompenv_vbindmapenv) ; if (tmp557 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 35619(line=1916, offs=5) -- 35671(line=1917, offs=40)") ; } tmp558 = &ats_caselptrlab_mac(anairiats_sum_1, tmp557, atslab_0) ; tmp559 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert (tmp558, arg1, arg2) ; return /* (tmp555) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 35898(line=1929, offs=3) -- 36123(line=1942, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapenv (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapenv: tmp561 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp562 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp561), atslab_ccompenv_vbindmapenv) ; if (tmp562 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 35957(line=1935, offs=5) -- 36009(line=1936, offs=40)") ; } tmp563 = &ats_caselptrlab_mac(anairiats_sum_1, tmp562, atslab_0) ; tmp564 = ats_ptrget_mac(ats_ptr_type, tmp563) ; tmp560 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search (tmp564, arg1) ; return (tmp560) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapenv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 36277(line=1955, offs=5) -- 37125(line=1982, offs=4) */ ATSstaticdec() ats_ptr_type auxpop_94 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_bool_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; __ats_lab_auxpop_94: do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp565 = arg1 ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp566 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; ATS_FREE(arg1) ; tmp565 = tmp566 ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp567 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp568 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp569 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_remove (arg0, tmp567) ; arg0 = arg0 ; arg1 = tmp568 ; goto __ats_lab_auxpop_94 ; // tail call break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp570 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp570 ; goto __ats_lab_auxpop_94 ; // tail call break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp571 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp571 ; goto __ats_lab_auxpop_94 ; // tail call break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp572 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp572 ; goto __ats_lab_auxpop_94 ; // tail call break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp573 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp573 ; goto __ats_lab_auxpop_94 ; // tail call break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp574 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp574 ; goto __ats_lab_auxpop_94 ; // tail call break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp575 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp575 ; goto __ats_lab_auxpop_94 ; // tail call break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp576 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp576 ; goto __ats_lab_auxpop_94 ; // tail call break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp577 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp577 ; goto __ats_lab_auxpop_94 ; // tail call break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: // if (((ats_sum_ptr_type)arg1)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_95_1: tmp578 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; ATS_FREE(arg1) ; arg0 = arg0 ; arg1 = tmp578 ; goto __ats_lab_auxpop_94 ; // tail call break ; } while (0) ; return (tmp565) ; } /* end of [auxpop_94] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 39033(line=2045, offs=1) -- 40124(line=2080, offs=4) */ ATSstaticdec() ats_void_type auxpop2_95 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_ptr_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; ATSlocal (ats_ptr_type, tmp590) ; __ats_lab_auxpop2_95: do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 2) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp580 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp580 ; goto __ats_lab_auxpop2_95 ; // tail call break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 3) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp581 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp581 ; goto __ats_lab_auxpop2_95 ; // tail call break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 4) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp582 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp582 ; goto __ats_lab_auxpop2_95 ; // tail call break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 1) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp583 = ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp583 ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 5) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp584 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp584 ; arg0 = arg0 ; goto __ats_lab_auxpop2_95 ; // tail call break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 6) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp585 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp585 ; arg0 = arg0 ; goto __ats_lab_auxpop2_95 ; // tail call break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 7) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp586 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp586 ; arg0 = arg0 ; goto __ats_lab_auxpop2_95 ; // tail call break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 8) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp587 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp587 ; arg0 = arg0 ; goto __ats_lab_auxpop2_95 ; // tail call break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 9) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp588 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp588 ; arg0 = arg0 ; goto __ats_lab_auxpop2_95 ; // tail call break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 10) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp589 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp589 ; arg0 = arg0 ; goto __ats_lab_auxpop2_95 ; // tail call break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: // if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_107_1: tmp590 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp590 ; arg0 = arg0 ; goto __ats_lab_auxpop2_95 ; // tail call break ; } while (0) ; return /* (tmp579) */ ; } /* end of [auxpop2_95] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 40150(line=2083, offs=1) -- 41886(line=2133, offs=4) */ ATSstaticdec() ats_void_type auxjoin2_96 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; ATSlocal (ats_ptr_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; __ats_lab_auxjoin2_96: do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 0) { goto __ats_lab_109_0 ; } __ats_lab_108_1: break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 2) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp592 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp592 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 3) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp593 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp593 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 4) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp594 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp594 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 5) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp595 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp595 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 6) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp596 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp596 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 7) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp597 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp597 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 8) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp598 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp598 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 9) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp599 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp599 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 10) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp600 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp600 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 11) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp601 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp601 ; goto __ats_lab_auxjoin2_96 ; // tail call break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: // if (((ats_sum_ptr_type)ats_ptrget_mac(ats_ptr_type, arg0))->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_119_1: tmp602 = ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp602 ; /* tmp591 = */ auxpop2_95 (arg0) ; break ; } while (0) ; return /* (tmp591) */ ; } /* end of [auxjoin2_96] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 41957(line=2138, offs=15) -- 42161(line=2154, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push: tmp604 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp605 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp604), atslab_ccompenv_markenvlst) ; tmp606 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp606)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp606, atslab_0, tmp605) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp604), atslab_ccompenv_markenvlst) = tmp606 ; return /* (tmp603) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 42214(line=2158, offs=3) -- 42460(line=2174, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp607) ; ATSlocal (ats_ptr_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop: tmp608 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp609 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp608), atslab_ccompenv_markenvlst) ; tmp610 = auxpop_94 (&ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp608), atslab_ccompenv_vbindmapall), tmp609) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp608), atslab_ccompenv_markenvlst) = tmp610 ; return /* (tmp607) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 42853(line=2201, offs=3) -- 43068(line=2214, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_localjoin (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_localjoin: tmp612 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; /* tmp611 = */ auxjoin2_96 (&ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp612), atslab_ccompenv_markenvlst)) ; return /* (tmp611) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_localjoin] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 43182(line=2222, offs=3) -- 43609(line=2241, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; ATSlocal (ats_bool_type, tmp617) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapall: tmp614 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp615 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp614), atslab_ccompenv_markenvlst) ; tmp616 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp616)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp616, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp616, atslab_1, tmp615) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp614), atslab_ccompenv_markenvlst) = tmp616 ; tmp617 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert (&ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp614), atslab_ccompenv_vbindmapall), arg1, arg2) ; return /* (tmp613) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 43686(line=2245, offs=3) -- 43834(line=2252, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapall (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp618) ; ATSlocal (ats_ptr_type, tmp619) ; ATSlocal (ats_ptr_type, tmp620) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapall: tmp619 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp620 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp619), atslab_ccompenv_vbindmapall) ; tmp618 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_search (tmp620, arg1) ; return (tmp618) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 43934(line=2258, offs=3) -- 44070(line=2263, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp621) ; // ATSlocal_void (tmp622) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall: /* tmp622 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenv (arg0, arg1, arg2) ; /* tmp621 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapall (arg0, arg1, arg2) ; return /* (tmp621) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 44168(line=2269, offs=3) -- 44364(line=2278, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; ATSlocal (ats_ptr_type, tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec: tmp624 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp625 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp624), atslab_ccompenv_markenvlst) ; tmp626 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp626)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp626, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp626, atslab_1, tmp625) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp624), atslab_ccompenv_markenvlst) = tmp626 ; return /* (tmp623) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 44431(line=2282, offs=3) -- 44625(line=2292, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp630) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec2: tmp628 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp629 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp628), atslab_ccompenv_markenvlst) ; tmp630 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp630)->tag = 4 ; ats_selptrset_mac(anairiats_sum_5, tmp630, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp630, atslab_1, tmp629) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp628), atslab_ccompenv_markenvlst) = tmp630 ; return /* (tmp627) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 44713(line=2298, offs=3) -- 44909(line=2307, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; ATSlocal (ats_ptr_type, tmp634) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec: tmp632 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp633 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp632), atslab_ccompenv_markenvlst) ; tmp634 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp634)->tag = 5 ; ats_selptrset_mac(anairiats_sum_5, tmp634, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp634, atslab_1, tmp633) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp632), atslab_ccompenv_markenvlst) = tmp634 ; return /* (tmp631) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 44976(line=2311, offs=3) -- 45170(line=2321, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp635) ; ATSlocal (ats_ptr_type, tmp636) ; ATSlocal (ats_ptr_type, tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec2: tmp636 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp637 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp636), atslab_ccompenv_markenvlst) ; tmp638 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp638)->tag = 6 ; ats_selptrset_mac(anairiats_sum_5, tmp638, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp638, atslab_1, tmp637) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp636), atslab_ccompenv_markenvlst) = tmp638 ; return /* (tmp635) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 45259(line=2327, offs=3) -- 45461(line=2337, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_staload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp639) ; ATSlocal (ats_ptr_type, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; ATSlocal (ats_ptr_type, tmp642) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_staload: tmp640 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp641 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp640), atslab_ccompenv_markenvlst) ; tmp642 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp642)->tag = 7 ; ats_selptrset_mac(anairiats_sum_5, tmp642, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp642, atslab_1, tmp641) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp640), atslab_ccompenv_markenvlst) = tmp642 ; return /* (tmp639) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_staload] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 45549(line=2343, offs=3) -- 45738(line=2353, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpsub (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; ATSlocal (ats_ptr_type, tmp646) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpsub: tmp644 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp645 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp644), atslab_ccompenv_markenvlst) ; tmp646 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp646)->tag = 8 ; ats_selptrset_mac(anairiats_sum_5, tmp646, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp646, atslab_1, tmp645) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp644), atslab_ccompenv_markenvlst) = tmp646 ; return /* (tmp643) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpsub] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 45928(line=2368, offs=5) -- 47704(line=2441, offs=4) */ ATSstaticdec() ats_ptr_type loop_110 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp648) ; ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; ATSlocal (ats_ptr_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (ats_ptr_type, tmp656) ; ATSlocal (ats_ptr_type, tmp657) ; ATSlocal (ats_ptr_type, tmp658) ; ATSlocal (ats_ptr_type, tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; ATSlocal (ats_ptr_type, tmp662) ; ATSlocal (ats_ptr_type, tmp663) ; ATSlocal (ats_ptr_type, tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; ATSlocal (ats_ptr_type, tmp666) ; ATSlocal (ats_ptr_type, tmp667) ; ATSlocal (ats_ptr_type, tmp668) ; ATSlocal (ats_ptr_type, tmp669) ; __ats_lab_loop_110: do { /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp648 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp649 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp648 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp648, atslab_0, tmp649) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp650 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp651 = ats_ptrget_mac(ats_ptr_type, tmp650) ; arg0 = tmp651 ; goto __ats_lab_loop_110 ; // tail call break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp652 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp653 = ats_ptrget_mac(ats_ptr_type, tmp652) ; arg0 = tmp653 ; goto __ats_lab_loop_110 ; // tail call break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp654 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp655 = ats_ptrget_mac(ats_ptr_type, tmp654) ; arg0 = tmp655 ; goto __ats_lab_loop_110 ; // tail call break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp656 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp657 = ats_ptrget_mac(ats_ptr_type, tmp656) ; arg0 = tmp657 ; goto __ats_lab_loop_110 ; // tail call break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp658 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp659 = ats_ptrget_mac(ats_ptr_type, tmp658) ; arg0 = tmp659 ; goto __ats_lab_loop_110 ; // tail call break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp660 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp661 = ats_ptrget_mac(ats_ptr_type, tmp660) ; arg0 = tmp661 ; goto __ats_lab_loop_110 ; // tail call break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp662 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp663 = ats_ptrget_mac(ats_ptr_type, tmp662) ; arg0 = tmp663 ; goto __ats_lab_loop_110 ; // tail call break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp664 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp665 = ats_ptrget_mac(ats_ptr_type, tmp664) ; arg0 = tmp665 ; goto __ats_lab_loop_110 ; // tail call break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp666 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp667 = ats_ptrget_mac(ats_ptr_type, tmp666) ; arg0 = tmp667 ; goto __ats_lab_loop_110 ; // tail call break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: // if (((ats_sum_ptr_type)arg0)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_131_1: tmp668 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp669 = ats_ptrget_mac(ats_ptr_type, tmp668) ; arg0 = tmp669 ; goto __ats_lab_loop_110 ; // tail call break ; } while (0) ; return (tmp648) ; } /* end of [loop_110] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 45909(line=2366, offs=3) -- 47835(line=2449, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_find_tmpsub (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp647) ; ATSlocal (ats_ptr_type, tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_find_tmpsub: tmp670 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp671 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp670), atslab_ccompenv_markenvlst) ; tmp647 = loop_110 (tmp671) ; return (tmp647) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_find_tmpsub] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 47928(line=2455, offs=3) -- 48286(line=2471, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdecloc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp672) ; ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdecloc: tmp673 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_find_tmpsub (arg0) ; do { /* branch: __ats_lab_132 */ __ats_lab_132_0: if (tmp673 == (ats_sum_ptr_type)0) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp674 = ats_caselptrlab_mac(anairiats_sum_11, tmp673, atslab_0) ; ATS_FREE(tmp673) ; tmp676 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg2), atslab_hiimpdec_tmparg) ; tmp675 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explstlst_subst (arg1, tmp676) ; tmp677 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp677, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp677, atslab_1, tmp674) ; ats_selptrset_mac(anairiats_sum_10, tmp677, atslab_2, tmp675) ; /* tmp672 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec2 (arg0, tmp677) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: // if (tmp673 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_133_1: break ; } while (0) ; return /* (tmp672) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdecloc] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 48355(line=2478, offs=1) -- 48673(line=2496, offs=4) */ ATSstaticdec() ats_void_type auxlst_112 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp678) ; ATSlocal (ats_ptr_type, tmp679) ; ATSlocal (ats_ptr_type, tmp680) ; // ATSlocal_void (tmp681) ; ATSlocal (ats_ptr_type, tmp682) ; __ats_lab_auxlst_112: do { /* branch: __ats_lab_134 */ __ats_lab_134_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_135_0 ; } __ats_lab_134_1: break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_135_1: tmp679 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; tmp680 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; tmp682 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp682, atslab_0, tmp679) ; ats_selptrset_mac(anairiats_sum_1, tmp682, atslab_1, arg1) ; /* tmp681 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec2 (arg0, tmp682) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp680 ; goto __ats_lab_auxlst_112 ; // tail call break ; } while (0) ; return /* (tmp678) */ ; } /* end of [auxlst_112] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 48754(line=2502, offs=3) -- 49067(line=2515, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundecsloc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; ATSlocal (ats_ptr_type, tmp685) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundecsloc: do { /* branch: __ats_lab_136 */ __ats_lab_136_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_137_0 ; } __ats_lab_136_1: break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_137_1: tmp684 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__ccompenv_find_tmpsub (arg0) ; do { /* branch: __ats_lab_138 */ __ats_lab_138_0: if (tmp684 == (ats_sum_ptr_type)0) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp685 = ats_caselptrlab_mac(anairiats_sum_11, tmp684, atslab_0) ; ATS_FREE(tmp684) ; /* tmp683 = */ auxlst_112 (arg0, tmp685, arg4) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: // if (tmp684 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_139_1: break ; } while (0) ; break ; } while (0) ; return /* (tmp683) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundecsloc] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 49184(line=2523, offs=3) -- 49392(line=2533, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpcstmat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_ptr_type, tmp688) ; ATSlocal (ats_ptr_type, tmp689) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpcstmat: tmp687 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp688 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp687), atslab_ccompenv_markenvlst) ; tmp689 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp689)->tag = 9 ; ats_selptrset_mac(anairiats_sum_5, tmp689, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp689, atslab_1, tmp688) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp687), atslab_ccompenv_markenvlst) = tmp689 ; return /* (tmp686) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpcstmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 49464(line=2537, offs=3) -- 49672(line=2547, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpvarmat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpvarmat: tmp691 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp692 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp691), atslab_ccompenv_markenvlst) ; tmp693 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp693)->tag = 10 ; ats_selptrset_mac(anairiats_sum_5, tmp693, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp693, atslab_1, tmp692) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp691), atslab_ccompenv_markenvlst) = tmp693 ; return /* (tmp690) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tmpvarmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 49741(line=2554, offs=1) -- 52400(line=2646, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_116 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_ptr_type, tmp698) ; ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_ptr_type, tmp700) ; ATSlocal (ats_ptr_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; ATSlocal (ats_ptr_type, tmp703) ; ATSlocal (ats_ptr_type, tmp704) ; ATSlocal (ats_ptr_type, tmp705) ; ATSlocal (ats_ptr_type, tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; ATSlocal (ats_ptr_type, tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; ATSlocal (ats_ptr_type, tmp711) ; ATSlocal (ats_ptr_type, tmp712) ; ATSlocal (ats_ptr_type, tmp713) ; ATSlocal (ats_ptr_type, tmp714) ; ATSlocal (ats_ptr_type, tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; ATSlocal (ats_ptr_type, tmp717) ; ATSlocal (ats_ptr_type, tmp718) ; ATSlocal (ats_ptr_type, tmp719) ; ATSlocal (ats_ptr_type, tmp720) ; ATSlocal (ats_ptr_type, tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; ATSlocal (ats_ptr_type, tmp723) ; ATSlocal (ats_ptr_type, tmp724) ; ATSlocal (ats_ptr_type, tmp725) ; ATSlocal (ats_ptr_type, tmp726) ; ATSlocal (ats_ptr_type, tmp727) ; ATSlocal (ats_ptr_type, tmp728) ; __ats_lab_auxlst_116: do { /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp694 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp695 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp696 = ats_ptrget_mac(ats_ptr_type, tmp695) ; arg0 = tmp696 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_116 ; // tail call break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp697 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp698 = ats_ptrget_mac(ats_ptr_type, tmp697) ; arg0 = tmp698 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_116 ; // tail call break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp699 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp700 = ats_ptrget_mac(ats_ptr_type, tmp699) ; arg0 = tmp700 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_116 ; // tail call break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp701 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp702 = ats_ptrget_mac(ats_ptr_type, tmp701) ; arg0 = tmp702 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_116 ; // tail call break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp703 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp704 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp705 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_tmpcst_match (tmp703, arg1, arg2, 0) ; tmp706 = ats_ptrget_mac(ats_ptr_type, tmp704) ; tmp694 = auxcont_117 (tmp705, tmp706, arg1, arg2) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp707 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp708 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp709 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec2_tmpcst_match (tmp707, arg1, arg2, 0) ; tmp710 = ats_ptrget_mac(ats_ptr_type, tmp708) ; tmp694 = auxcont_117 (tmp709, tmp710, arg1, arg2) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_150_0 ; } __ats_lab_147_1: tmp711 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp712 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp713 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpcstimpmapopt (tmp711) ; do { /* branch: __ats_lab_148 */ __ats_lab_148_0: if (tmp713 == (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp714 = ats_caselptrlab_mac(anairiats_sum_11, tmp713, atslab_0) ; tmp715 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpcstimpmap_find (tmp714, arg1) ; tmp716 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdeclst_tmpcst_match (tmp715, arg1, arg2, 1) ; tmp717 = ats_ptrget_mac(ats_ptr_type, tmp712) ; tmp694 = auxcont_117 (tmp716, tmp717, arg1, arg2) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: // if (tmp713 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_149_1: tmp718 = ats_ptrget_mac(ats_ptr_type, tmp712) ; arg0 = tmp718 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_116 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp719 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp720 = ats_ptrget_mac(ats_ptr_type, tmp719) ; arg0 = tmp720 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_116 ; // tail call break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp721 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp722 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp723 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpcstmat_tmpcst_match (tmp721, arg1, arg2) ; tmp724 = ats_ptrget_mac(ats_ptr_type, tmp722) ; tmp694 = auxcont_117 (tmp723, tmp724, arg1, arg2) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp725 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp726 = ats_ptrget_mac(ats_ptr_type, tmp725) ; arg0 = tmp726 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_116 ; // tail call break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: // if (((ats_sum_ptr_type)arg0)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_153_1: tmp727 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp728 = ats_ptrget_mac(ats_ptr_type, tmp727) ; arg0 = tmp728 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_116 ; // tail call break ; } while (0) ; return (tmp694) ; } /* end of [auxlst_116] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 52428(line=2649, offs=1) -- 52730(line=2671, offs=4) */ ATSstaticdec() ats_ptr_type auxcont_117 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp729) ; __ats_lab_auxcont_117: do { /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp729 = arg0 ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp729 = arg0 ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_156_1: tmp729 = auxlst_116 (arg1, arg2, arg3) ; break ; } while (0) ; return (tmp729) ; } /* end of [auxcont_117] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 52810(line=2677, offs=3) -- 52958(line=2687, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpcst_match (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp730) ; ATSlocal (ats_ptr_type, tmp731) ; ATSlocal (ats_ptr_type, tmp732) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpcst_match: tmp731 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp732 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp731), atslab_ccompenv_markenvlst) ; tmp730 = auxlst_116 (tmp732, arg1, arg2) ; return (tmp730) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpcst_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 53049(line=2695, offs=5) -- 55347(line=2770, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_119 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp733) ; ATSlocal (ats_ptr_type, tmp734) ; ATSlocal (ats_ptr_type, tmp735) ; ATSlocal (ats_ptr_type, tmp736) ; ATSlocal (ats_ptr_type, tmp737) ; ATSlocal (ats_ptr_type, tmp738) ; ATSlocal (ats_ptr_type, tmp739) ; ATSlocal (ats_ptr_type, tmp740) ; ATSlocal (ats_ptr_type, tmp741) ; ATSlocal (ats_ptr_type, tmp742) ; ATSlocal (ats_ptr_type, tmp743) ; ATSlocal (ats_ptr_type, tmp744) ; ATSlocal (ats_ptr_type, tmp745) ; ATSlocal (ats_ptr_type, tmp746) ; ATSlocal (ats_ptr_type, tmp747) ; ATSlocal (ats_ptr_type, tmp748) ; ATSlocal (ats_ptr_type, tmp749) ; ATSlocal (ats_ptr_type, tmp750) ; ATSlocal (ats_ptr_type, tmp751) ; ATSlocal (ats_ptr_type, tmp752) ; ATSlocal (ats_ptr_type, tmp753) ; ATSlocal (ats_ptr_type, tmp754) ; ATSlocal (ats_ptr_type, tmp755) ; ATSlocal (ats_ptr_type, tmp756) ; ATSlocal (ats_ptr_type, tmp757) ; ATSlocal (ats_ptr_type, tmp758) ; ATSlocal (ats_ptr_type, tmp759) ; ATSlocal (ats_ptr_type, tmp760) ; ATSlocal (ats_ptr_type, tmp761) ; ATSlocal (ats_ptr_type, tmp762) ; ATSlocal (ats_ptr_type, tmp763) ; ATSlocal (ats_ptr_type, tmp764) ; ATSlocal (ats_ptr_type, tmp765) ; ATSlocal (ats_ptr_type, tmp766) ; __ats_lab_auxlst_119: do { /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp733 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0) ; break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp734 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp735 = ats_ptrget_mac(ats_ptr_type, tmp734) ; arg0 = tmp735 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_119 ; // tail call break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_160_0 ; } __ats_lab_159_1: tmp736 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp737 = ats_ptrget_mac(ats_ptr_type, tmp736) ; arg0 = tmp737 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_119 ; // tail call break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp738 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp739 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp740 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_tmpvar_match (tmp738, arg1, arg2) ; tmp741 = ats_ptrget_mac(ats_ptr_type, tmp739) ; tmp733 = auxcont_120 (tmp740, tmp741, arg1, arg2) ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp742 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp743 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp744 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec2_tmpvar_match (tmp742, arg1, arg2) ; tmp745 = ats_ptrget_mac(ats_ptr_type, tmp743) ; tmp733 = auxcont_120 (tmp744, tmp745, arg1, arg2) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp746 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp747 = ats_ptrget_mac(ats_ptr_type, tmp746) ; arg0 = tmp747 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_119 ; // tail call break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_164_0 ; } __ats_lab_163_1: tmp748 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp749 = ats_ptrget_mac(ats_ptr_type, tmp748) ; arg0 = tmp749 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_119 ; // tail call break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp750 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp751 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp752 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__filenv_get_tmpvardecmapopt (tmp750) ; if (tmp752 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 54371(line=2743, offs=9) -- 54423(line=2744, offs=40)") ; } tmp753 = ats_caselptrlab_mac(anairiats_sum_11, tmp752, atslab_0) ; tmp754 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__tmpvardecmap_find (tmp753, arg1) ; tmp755 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundecopt2tmpvarmat (tmp754, arg2) ; tmp756 = ats_ptrget_mac(ats_ptr_type, tmp751) ; tmp733 = auxcont_120 (tmp755, tmp756, arg1, arg2) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_166_0 ; } __ats_lab_165_1: tmp757 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp758 = ats_ptrget_mac(ats_ptr_type, tmp757) ; arg0 = tmp758 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_119 ; // tail call break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp759 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp760 = ats_ptrget_mac(ats_ptr_type, tmp759) ; arg0 = tmp760 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_119 ; // tail call break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_168_0 ; } __ats_lab_167_1: tmp761 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp762 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp763 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarmat_tmpvar_match (tmp761, arg1, arg2) ; tmp764 = ats_ptrget_mac(ats_ptr_type, tmp762) ; tmp733 = auxcont_120 (tmp763, tmp764, arg1, arg2) ; break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: // if (((ats_sum_ptr_type)arg0)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_168_1: tmp765 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp766 = ats_ptrget_mac(ats_ptr_type, tmp765) ; arg0 = tmp766 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_auxlst_119 ; // tail call break ; } while (0) ; return (tmp733) ; } /* end of [auxlst_119] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 55372(line=2772, offs=5) -- 55597(line=2786, offs=4) */ ATSstaticdec() ats_ptr_type auxcont_120 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp767) ; __ats_lab_auxcont_120: do { /* branch: __ats_lab_169 */ __ats_lab_169_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_170_0 ; } __ats_lab_169_1: tmp767 = arg0 ; break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp767 = arg0 ; break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_171_1: tmp767 = auxlst_119 (arg1, arg2, arg3) ; break ; } while (0) ; return (tmp767) ; } /* end of [auxcont_120] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 55677(line=2792, offs=3) -- 55822(line=2800, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpvar_match (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp768) ; ATSlocal (ats_ptr_type, tmp769) ; ATSlocal (ats_ptr_type, tmp770) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpvar_match: tmp769 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp770 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp769), atslab_ccompenv_markenvlst) ; tmp768 = auxlst_119 (tmp770, arg1, arg2) ; return (tmp768) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_tmpvar_match] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 56065(line=2819, offs=3) -- 56103(line=2819, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_tmpvarlst () { /* local vardec */ ATSlocal (ats_ptr_type, tmp775) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_tmpvarlst: tmp775 = ats_castfn_mac(ats_ptr_type, statmp771) ; return (tmp775) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_tmpvarlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 56151(line=2823, offs=3) -- 56189(line=2823, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_primdeclst () { /* local vardec */ ATSlocal (ats_ptr_type, tmp776) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_primdeclst: tmp776 = ats_castfn_mac(ats_ptr_type, statmp773) ; return (tmp776) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_toplevel_getref_primdeclst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 56292(line=2834, offs=1) -- 56514(line=2847, offs=2) */ ATSstaticdec() ats_ptr_type revapp_125 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp778) ; ATSlocal (ats_ptr_type, tmp779) ; ATSlocal (ats_ptr_type, tmp780) ; ATSlocal (ats_ptr_type, tmp781) ; __ats_lab_revapp_125: do { /* branch: __ats_lab_172 */ __ats_lab_172_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_173_0 ; } __ats_lab_172_1: tmp778 = arg1 ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_173_1: tmp779 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp780 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp781 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp781, atslab_0, tmp779) ; ats_selptrset_mac(anairiats_sum_1, tmp781, atslab_1, arg1) ; arg0 = tmp780 ; arg1 = tmp781 ; goto __ats_lab_revapp_125 ; // tail call break ; } while (0) ; return (tmp778) ; } /* end of [revapp_125] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 56544(line=2850, offs=1) -- 58275(line=2913, offs=2) */ ATSstaticdec() ats_ptr_type auxlst_126 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp782) ; ATSlocal (ats_ptr_type, tmp783) ; ATSlocal (ats_ptr_type, tmp784) ; ATSlocal (ats_ptr_type, tmp785) ; ATSlocal (ats_ptr_type, tmp786) ; ATSlocal (ats_ptr_type, tmp787) ; ATSlocal (ats_ptr_type, tmp788) ; ATSlocal (ats_ptr_type, tmp789) ; ATSlocal (ats_ptr_type, tmp790) ; ATSlocal (ats_ptr_type, tmp791) ; ATSlocal (ats_ptr_type, tmp792) ; ATSlocal (ats_ptr_type, tmp793) ; ATSlocal (ats_ptr_type, tmp794) ; ATSlocal (ats_ptr_type, tmp795) ; ATSlocal (ats_ptr_type, tmp796) ; ATSlocal (ats_ptr_type, tmp797) ; ATSlocal (ats_ptr_type, tmp798) ; ATSlocal (ats_ptr_type, tmp799) ; ATSlocal (ats_ptr_type, tmp800) ; ATSlocal (ats_ptr_type, tmp801) ; ATSlocal (ats_ptr_type, tmp802) ; ATSlocal (ats_ptr_type, tmp803) ; ATSlocal (ats_ptr_type, tmp804) ; ATSlocal (ats_ptr_type, tmp805) ; ATSlocal (ats_ptr_type, tmp806) ; ATSlocal (ats_ptr_type, tmp807) ; __ats_lab_auxlst_126: do { /* branch: __ats_lab_174 */ __ats_lab_174_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_175_0 ; } __ats_lab_174_1: tmp782 = arg1 ; break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: if (((ats_sum_ptr_type)arg0)->tag != 11) { goto __ats_lab_176_0 ; } __ats_lab_175_1: tmp783 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp784 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp786 = ats_ptrget_mac(ats_ptr_type, tmp783) ; tmp785 = revapp_125 (tmp786, arg1) ; tmp787 = ats_ptrget_mac(ats_ptr_type, tmp784) ; arg0 = tmp787 ; arg1 = tmp785 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_177_0 ; } __ats_lab_176_1: tmp788 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp789 = ats_ptrget_mac(ats_ptr_type, tmp788) ; arg0 = tmp789 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_178_0 ; } __ats_lab_177_1: tmp790 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp791 = ats_ptrget_mac(ats_ptr_type, tmp790) ; arg0 = tmp791 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_179_0 ; } __ats_lab_178_1: tmp792 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp793 = ats_ptrget_mac(ats_ptr_type, tmp792) ; arg0 = tmp793 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_180_0 ; } __ats_lab_179_1: tmp794 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp795 = ats_ptrget_mac(ats_ptr_type, tmp794) ; arg0 = tmp795 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_181_0 ; } __ats_lab_180_1: tmp796 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp797 = ats_ptrget_mac(ats_ptr_type, tmp796) ; arg0 = tmp797 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_182_0 ; } __ats_lab_181_1: tmp798 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp799 = ats_ptrget_mac(ats_ptr_type, tmp798) ; arg0 = tmp799 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_182 */ __ats_lab_182_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_183_0 ; } __ats_lab_182_1: tmp800 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp801 = ats_ptrget_mac(ats_ptr_type, tmp800) ; arg0 = tmp801 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_184_0 ; } __ats_lab_183_1: tmp802 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp803 = ats_ptrget_mac(ats_ptr_type, tmp802) ; arg0 = tmp803 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_184 */ __ats_lab_184_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_185_0 ; } __ats_lab_184_1: tmp804 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp805 = ats_ptrget_mac(ats_ptr_type, tmp804) ; arg0 = tmp805 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: // if (((ats_sum_ptr_type)arg0)->tag != 10) { ats_deadcode_failure_handle () ; } __ats_lab_185_1: tmp806 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp807 = ats_ptrget_mac(ats_ptr_type, tmp806) ; arg0 = tmp807 ; arg1 = arg1 ; goto __ats_lab_auxlst_126 ; // tail call break ; } while (0) ; return (tmp782) ; } /* end of [auxlst_126] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 56273(line=2831, offs=3) -- 58452(line=2921, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tempenver (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp777) ; ATSlocal (ats_ptr_type, tmp808) ; ATSlocal (ats_ptr_type, tmp809) ; ATSlocal (ats_ptr_type, tmp810) ; ATSlocal (ats_ptr_type, tmp811) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tempenver: tmp808 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp810 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp808), atslab_ccompenv_markenvlst) ; tmp811 = (ats_sum_ptr_type)0 ; tmp809 = auxlst_126 (tmp810, tmp811) ; tmp777 = list_vt_reverse_01506_ats_ptr_type (tmp809) ; return (tmp777) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tempenver] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_bool_type (ats_bool_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp813) ; ATSlocal (ats_bool_type, tmp814) ; __ats_lab_ref_01088_ats_bool_type: /* ats_bool_type tmp814 ; */ tmp814 = arg0 ; tmp813 = atspre_ref_make_elt_tsz ((&tmp814), sizeof(ats_bool_type)) ; return (tmp813) ; } /* end of [ref_01088_ats_bool_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 58553(line=2930, offs=1) -- 58578(line=2930, offs=26) */ ATSstaticdec() ats_bool_type theFlag_get_128 () { /* local vardec */ ATSlocal (ats_bool_type, tmp815) ; __ats_lab_theFlag_get_128: tmp815 = ats_ptrget_mac(ats_bool_type, statmp812) ; return (tmp815) ; } /* end of [theFlag_get_128] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 58583(line=2932, offs=1) -- 58616(line=2932, offs=34) */ ATSstaticdec() ats_void_type theFlag_set_129 () { /* local vardec */ // ATSlocal_void (tmp816) ; __ats_lab_theFlag_set_129: ats_ptrget_mac(ats_bool_type, statmp812) = ats_true_bool ; return /* (tmp816) */ ; } /* end of [theFlag_set_129] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 58621(line=2934, offs=1) -- 58657(line=2934, offs=37) */ ATSstaticdec() ats_void_type theFlag_unset_130 () { /* local vardec */ // ATSlocal_void (tmp817) ; __ats_lab_theFlag_unset_130: ats_ptrget_mac(ats_bool_type, statmp812) = ats_false_bool ; return /* (tmp817) */ ; } /* end of [theFlag_unset_130] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 58716(line=2940, offs=3) -- 59033(line=2960, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tempenver (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp818) ; // ATSlocal_void (tmp819) ; ATSlocal (ats_ptr_type, tmp820) ; ATSlocal (ats_ptr_type, tmp821) ; ATSlocal (ats_ptr_type, tmp822) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tempenver: /* tmp819 = */ theFlag_set_129 () ; tmp820 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp821 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp820), atslab_ccompenv_markenvlst) ; tmp822 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp822)->tag = 11 ; ats_selptrset_mac(anairiats_sum_5, tmp822, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp822, atslab_1, tmp821) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_8, tmp820), atslab_ccompenv_markenvlst) = tmp822 ; return /* (tmp818) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_tempenver] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 1961(line=59, offs=16) -- 2054(line=60, offs=87) */ ATSstaticdec() ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp828) ; __ats_lab_list_vt_is_nil_01494_: do { /* branch: __ats_lab_186 */ __ats_lab_186_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_187_0 ; } __ats_lab_186_1: tmp828 = ats_true_bool ; break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_187_1: tmp828 = ats_false_bool ; break ; } while (0) ; return (tmp828) ; } /* end of [list_vt_is_nil_01494_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 59127(line=2966, offs=3) -- 59371(line=2987, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get2_tempenver (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp823) ; ATSlocal (ats_bool_type, tmp824) ; ATSlocal (ats_ptr_type, tmp825) ; // ATSlocal_void (tmp826) ; ATSlocal (ats_bool_type, tmp827) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get2_tempenver: tmp824 = theFlag_get_128 () ; if (tmp824) { tmp825 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tempenver (arg0) ; tmp827 = list_vt_is_nil_01494_ (tmp825) ; if (tmp827) { /* tmp826 = */ theFlag_unset_130 () ; } else { /* empty */ } /* end of [if] */ tmp823 = tmp825 ; } else { tmp823 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp823) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get2_tempenver] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 59501(line=2995, offs=5) -- 59780(line=3012, offs=2) */ ATSstaticdec() ats_ptr_type auxlst_135 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp830) ; ATSlocal (ats_ptr_type, tmp831) ; ATSlocal (ats_ptr_type, tmp832) ; ATSlocal (ats_ptr_type, tmp833) ; ATSlocal (ats_ptr_type, tmp834) ; __ats_lab_auxlst_135: do { /* branch: __ats_lab_188 */ __ats_lab_188_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_189_0 ; } __ats_lab_188_1: tmp830 = arg0 ; break ; /* branch: __ats_lab_189 */ __ats_lab_189_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_189_1: tmp831 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp832 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp834 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2var2env (tmp831) ; tmp833 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add (arg0, tmp834) ; arg0 = tmp833 ; arg1 = tmp832 ; goto __ats_lab_auxlst_135 ; // tail call break ; } while (0) ; return (tmp830) ; } /* end of [auxlst_135] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_ccompenv.dats: 59476(line=2993, offs=3) -- 60017(line=3024, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dvarsetenv_add_tempenver (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp829) ; ATSlocal (ats_ptr_type, tmp835) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dvarsetenv_add_tempenver: tmp835 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get2_tempenver (arg0) ; tmp829 = auxlst_135 (arg1, tmp835) ; return (tmp829) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dvarsetenv_add_tempenver] */ /* 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_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_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_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTnil_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTmark_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_var_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_fundec_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_fundec2_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_impdec_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_impdec2_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_staload_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tmpsub_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tmpcstmat_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tmpvarmat_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__MARKENVLSTcons_tempenver_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__LOOPTMPLAB3_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__TCIfun_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__TCIfnx_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__CCOMPENV_0.tag = 0 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_ccompenv_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp5, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp6, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp32, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp33, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp43, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp44, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp94, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp95, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp96, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp97, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp116, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp117, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp118, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp119, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp133, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp134, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp135, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp136, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp150, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp151, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp771, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp772, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp773, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp774, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp812, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp4 = (ats_sum_ptr_type)0 ; statmp0 = ref_make_elt_01089_ats_ptr_type (statmp4) ; statmp6 = (ats_sum_ptr_type)0 ; statmp5 = ref_make_elt_01089_ats_ptr_type (statmp6) ; statmp33 = (ats_sum_ptr_type)0 ; statmp32 = ref_make_elt_01089_ats_ptr_type (statmp33) ; statmp44 = (ats_sum_ptr_type)0 ; statmp43 = ref_make_elt_01089_ats_ptr_type (statmp44) ; statmp95 = (ats_sum_ptr_type)0 ; statmp94 = ref_make_elt_01089_ats_ptr_type (statmp95) ; statmp97 = (ats_sum_ptr_type)0 ; statmp96 = ref_make_elt_01089_ats_ptr_type (statmp97) ; statmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_nil () ; statmp116 = ref_make_elt_01089_ats_ptr_type (statmp117) ; statmp119 = (ats_sum_ptr_type)0 ; statmp118 = ref_make_elt_01089_ats_ptr_type (statmp119) ; statmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_nil () ; statmp133 = ref_make_elt_01089_ats_ptr_type (statmp134) ; statmp136 = (ats_sum_ptr_type)0 ; statmp135 = ref_make_elt_01089_ats_ptr_type (statmp136) ; statmp151 = (ats_sum_ptr_type)0 ; statmp150 = ref_make_elt_01089_ats_ptr_type (statmp151) ; statmp772 = (ats_sum_ptr_type)0 ; statmp771 = ref_01088_ats_ptr_type (statmp772) ; statmp774 = (ats_sum_ptr_type)0 ; statmp773 = ref_01088_ats_ptr_type (statmp774) ; statmp812 = ref_01088_ats_bool_type (ats_false_bool) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_ccompenv_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_toplevel_dats.c0000644000175000017500000010264613431250607024113 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; /* 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_ABSTYPE_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ASSUME_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATASORT_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATATYPE_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXCEPTION_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTERN_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIXITY_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FUN_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPLEMENT_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LOCAL_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONFIX_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STACST_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STADEF_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STATIC_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SORTDEF_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMELIM_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMINTR_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPEDEF_79) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAL_80) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAR_81) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIF_121) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFDEF_122) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFNDEF_123) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPERROR_130) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRERR_131) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRINT_132) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPASSERT_133) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPUNDEF_134) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDEFINE_135) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPINCLUDE_136) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPSTALOAD_137) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDYNLOAD_138) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPREQUIRE_139) ; 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_parsing_2esats__PE_DISCARD_92) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_is_comment) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_reset) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EOF) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn) (ats_ref_type, ats_int_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type pskip_tokbuf_0 (ats_ref_type arg0) ; static ats_ptr_type pskip1_tokbuf_reset_1 (ats_ref_type arg0) ; static ats_void_type loop_5 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_3 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type p_toplevel_fun_2 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing_toplevel.dats: 1732(line=61, offs=1) -- 2799(line=135, offs=4) */ ATSstaticdec() ats_ptr_type pskip_tokbuf_0 (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; __ats_lab_pskip_tokbuf_0: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp1), atslab_token_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp2)->tag != 178) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp2)->tag != 71) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp2)->tag != 39) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp2)->tag != 32) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp2)->tag != 68) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp2)->tag != 69) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp2)->tag != 31) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp2)->tag != 79) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp2)->tag != 40) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp2)->tag != 44) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp2)->tag != 52) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp2)->tag != 80) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp2)->tag != 81) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp2)->tag != 55) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp2)->tag != 49) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp2)->tag != 62) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp2)->tag != 73) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp2)->tag != 72) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp2)->tag != 60) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp2)->tag != 70) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp2)->tag != 45) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp2)->tag != 130) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp2)->tag != 131) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp2)->tag != 132) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp2)->tag != 133) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp2)->tag != 134) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp2)->tag != 135) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp2)->tag != 121) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp2)->tag != 122) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp2)->tag != 123) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp2)->tag != 136) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp2)->tag != 137) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp2)->tag != 138) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp2)->tag != 139) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp0 = tmp1 ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; arg0 = arg0 ; goto __ats_lab_pskip_tokbuf_0 ; // tail call break ; } while (0) ; return (tmp0) ; } /* end of [pskip_tokbuf_0] */ /* // /tmp/ATS-Postiats/src/pats_parsing_toplevel.dats: 2830(line=138, offs=1) -- 3321(line=168, offs=4) */ ATSstaticdec() ats_ptr_type pskip1_tokbuf_reset_1 (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; __ats_lab_pskip1_tokbuf_reset_1: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_token_node) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp7)->tag != 178) { goto __ats_lab_36_0 ; } __ats_lab_35_1: break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_is_comment (tmp7) ; if (!tmp8) { goto __ats_lab_37_1 ; } break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp5), atslab_token_loc) ; tmp11 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_DISCARD_92) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make (tmp9, tmp11) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add (tmp10) ; break ; } while (0) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp13 = pskip_tokbuf_0 (arg0) ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_reset (arg0) ; tmp4 = tmp13 ; return (tmp4) ; } /* end of [pskip1_tokbuf_reset_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab_loop_5: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp31 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: break ; } while (0) ; return /* (tmp30) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp29) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp29 = */ loop_5 (arg0) ; return /* (tmp29) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_toplevel.dats: 3477(line=178, offs=7) -- 4691(line=223, offs=7) */ ATSstaticdec() ats_void_type loop_3 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab_loop_3: tmp17 = ats_ptrget_mac(ats_int_type, arg2) ; tmp18 = ((ats_ptr_type(*)(ats_ref_type, ats_int_type, ats_ref_type))arg3) (arg0, 1, arg2) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp19 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp17) ; if (!tmp19) { goto __ats_lab_43_1 ; } tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp22 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp20), atslab_token_node) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp22)->tag != 178) { goto __ats_lab_40_0 ; } __ats_lab_39_1: ats_ptrget_mac(ats_int_type, arg2) = tmp17 ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: break ; } while (0) ; tmp23 = pskip1_tokbuf_reset_1 (arg0) ; tmp24 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp23), atslab_token_node) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp24)->tag != 178) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp25 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp25 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: __ats_lab_42_1: arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_3 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_reset (arg0) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun (arg0, 1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_SEMICOLON) ; /* tmp28 = */ list_vt_free_01499_ats_ptr_type (tmp27) ; tmp32 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp32, atslab_0, tmp18) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp32 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp33 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = arg0 ; arg1 = tmp33 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_3 ; // tail call break ; } while (0) ; return /* (tmp16) */ ; } /* end of [loop_3] */ /* // /tmp/ATS-Postiats/src/pats_parsing_toplevel.dats: 3380(line=173, offs=1) -- 4894(line=232, offs=4) */ ATSstaticdec() ats_ptr_type p_toplevel_fun_2 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp34) ; // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab_p_toplevel_fun_2: ats_ptrget_mac(ats_int_type, arg1) = 0 ; /* ats_ptr_type tmp34 ; */ /* tmp35 = */ loop_3 (arg0, (&tmp34), arg1, arg2) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_EOF (arg0, 0, arg1) ; tmp15 = ats_castfn_mac(ats_ptr_type, tmp34) ; return (tmp15) ; } /* end of [p_toplevel_fun_2] */ /* // /tmp/ATS-Postiats/src/pats_parsing_toplevel.dats: 4969(line=237, offs=16) -- 5022(line=237, offs=69) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_sta (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_sta: tmp37 = p_toplevel_fun_2 (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_sta) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_sta] */ /* // /tmp/ATS-Postiats/src/pats_parsing_toplevel.dats: 5048(line=239, offs=16) -- 5101(line=239, offs=69) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_dyn (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_dyn: tmp38 = p_toplevel_fun_2 (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_d0ecl_dyn) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_toplevel_dyn] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_toplevel_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_toplevel_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_codegen2_fprint_dats.c0000644000175000017500000032606713431250607023613 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_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_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_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_datype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_d2cst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type auxerr_nil_0 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_s2cst_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_d2cst_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxfun1_7 (ats_ptr_type arg0) ; static ats_ptr_type auxfun2_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_datype_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxd2c_dec_9 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type auxd2c_dec_9_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxd2c_dec_9_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxd2cs_dec_10 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type auxd2cs_dec_10_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxd2cs_dec_10_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxd2c_cla_11 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type auxd2c_cla_11_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxd2c_cla_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxd2cs_cla_12 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type auxd2cs_cla_12_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type auxd2cs_cla_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxsep_13 (ats_ptr_type env0, ats_ptr_type env1) ; static ats_clo_ptr_type auxsep_13_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxsep_13_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxcarg_14 (ats_ptr_type env0, ats_ptr_type env1) ; static ats_clo_ptr_type auxcarg_14_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxcarg_14_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxlpar_15 (ats_ptr_type env0, ats_ptr_type env1) ; static ats_clo_ptr_type auxlpar_15_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxlpar_15_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxrpar_16 (ats_ptr_type env0, ats_ptr_type env1) ; static ats_clo_ptr_type auxrpar_16_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxrpar_16_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type aux_datype_d2cf_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type auxcon1_17 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_clo_ptr_type auxcon1_17_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxcon1_17_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxlpar1_18 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_clo_ptr_type auxlpar1_18_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxlpar1_18_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxrpar1_19 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_clo_ptr_type auxrpar1_19_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxrpar1_19_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxsep1_n_20 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) ; static ats_clo_ptr_type auxsep1_n_20_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxsep1_n_20_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type auxarg1_n_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) ; static ats_clo_ptr_type auxarg1_n_21_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxarg1_n_21_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type auxcon2_22 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_clo_ptr_type auxcon2_22_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxcon2_22_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxlpar2_23 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_clo_ptr_type auxlpar2_23_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxlpar2_23_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxrpar2_24 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_clo_ptr_type auxrpar2_24_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxrpar2_24_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxsep2_n_25 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) ; static ats_clo_ptr_type auxsep2_n_25_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxsep2_n_25_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type auxarg2_n_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) ; static ats_clo_ptr_type auxarg2_n_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxarg2_n_26_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type auxbody2_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type auxbody2_27_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) ; static ats_void_type auxbody2_27_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_int_type arg1) ; static ats_void_type auxcon3_28 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_clo_ptr_type auxcon3_28_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxcon3_28_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxlpar3_29 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_clo_ptr_type auxlpar3_29_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxlpar3_29_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxrpar3_30 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_clo_ptr_type auxrpar3_30_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxrpar3_30_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type auxsep3_n_31 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) ; static ats_clo_ptr_type auxsep3_n_31_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxsep3_n_31_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type aux_33 (ats_ptr_type env0, ats_int_type env1, ats_int_type env2, ats_int_type arg0) ; static ats_clo_ptr_type aux_33_closure_make (ats_ptr_type env0, ats_int_type env1, ats_int_type env2) ; static ats_void_type aux_33_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type auxpat3_n_32 (ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2, ats_int_type arg0) ; static ats_clo_ptr_type auxpat3_n_32_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2) ; static ats_void_type auxpat3_n_32_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type auxarg3_n_34 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) ; static ats_clo_ptr_type auxarg3_n_34_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) ; static ats_void_type auxarg3_n_34_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type loop_35 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) ; static ats_clo_ptr_type loop_35_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) ; static ats_void_type loop_35_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type loop_36 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) ; static ats_clo_ptr_type loop_36_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) ; static ats_void_type loop_36_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type loop_37 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) ; static ats_clo_ptr_type loop_37_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) ; static ats_void_type loop_37_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type loop_38 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) ; static ats_clo_ptr_type loop_38_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) ; static ats_void_type loop_38_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) ; static ats_void_type aux_datype_d2cf_con_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type aux_datype_d2cf_conlst_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 1911(line=75, offs=1) -- 2176(line=92, offs=2) */ ATSstaticdec() ats_void_type auxerr_nil_0 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; __ats_lab_auxerr_nil_0: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp1) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): no spec on datatype is given\n")) ; /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("*)")) ; /* tmp0 = */ atspre_fprint_newline (arg0) ; return /* (tmp0) */ ; } /* end of [auxerr_nil_0] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 2208(line=95, offs=1) -- 2475(line=112, offs=2) */ ATSstaticdec() ats_void_type auxerr_s2cst_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; __ats_lab_auxerr_s2cst_1: tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp7) ; /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): no datatype of the given spec\n")) ; /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst("*)")) ; /* tmp6 = */ atspre_fprint_newline (arg0) ; return /* (tmp6) */ ; } /* end of [auxerr_s2cst_1] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 2509(line=115, offs=1) -- 2797(line=132, offs=2) */ ATSstaticdec() ats_void_type auxerr_d2cst_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; __ats_lab_auxerr_d2cst_2: tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ; /* tmp14 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp13) ; /* tmp16 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): no fprint-function of the given spec\n")) ; /* tmp17 = */ atspre_fprint_string (arg0, ATSstrcst("*)")) ; /* tmp12 = */ atspre_fprint_newline (arg0) ; return /* (tmp12) */ ; } /* end of [auxerr_d2cst_2] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 2922(line=142, offs=1) -- 3360(line=165, offs=4) */ ATSstaticdec() ats_ptr_type auxfun1_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab_auxfun1_7: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg0) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp20) ; tmp22 = atspre_tostringf (ATSstrcst("fprint_%s_"), tmp21) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ats_castfn_mac(ats_ptr_type, tmp22)) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find (tmp23) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp24 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp19 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp24 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_1, tmp24, atslab_0) ; ATS_FREE(tmp24) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp25)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_2, tmp25, atslab_0) ; tmp19 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp19, atslab_0, tmp26) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp19 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp19) ; } /* end of [auxfun1_7] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 3388(line=168, offs=1) -- 3538(line=176, offs=2) */ ATSstaticdec() ats_ptr_type auxfun2_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_auxfun2_8: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp27 = auxfun1_7 (arg0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_d2cst (tmp28) ; break ; } while (0) ; return (tmp27) ; } /* end of [auxfun2_8] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 2831(line=135, offs=1) -- 3866(line=196, offs=4) */ ATSstaticdec() ats_void_type aux_datype_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_aux_datype_3: tmp29 = auxfun2_8 (arg2, arg3) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp30 = arg3 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_1) ; tmp30 = tmp31 ; break ; } while (0) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (tmp29 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp18 = */ auxerr_d2cst_2 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (tmp29 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_1, tmp29, atslab_0) ; ATS_FREE(tmp29) ; /* tmp18 = */ aux_datype_d2cf_4 (arg0, arg1, arg2, tmp32, tmp30) ; break ; } while (0) ; return /* (tmp18) */ ; } /* end of [aux_datype_3] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 4082(line=213, offs=1) -- 4471(line=234, offs=4) */ ATSstaticdec() ats_void_type auxd2c_dec_9 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; __ats_lab_auxd2c_dec_9: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name (arg0) ; /* tmp37 = */ atspre_fprint_string (env0, ATSstrcst("extern\nfun")) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec (env0, env1) ; /* tmp39 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp40 = */ atspre_fprint_string (env0, env2) ; /* tmp41 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp42 = */ atspre_fprint_string (env0, tmp36) ; /* tmp43 = */ atspre_fprint_string (env0, ATSstrcst(": $d2ctype(")) ; /* tmp44 = */ atspre_fprint_string (env0, env2) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp46 = */ atspre_fprint_string (env0, ATSstrcst(")")) ; /* tmp35 = */ atspre_fprint_newline (env0) ; return /* (tmp35) */ ; } /* end of [auxd2c_dec_9] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxd2c_dec_9_closure_type ; ats_void_type auxd2c_dec_9_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxd2c_dec_9 (((auxd2c_dec_9_closure_type*)cloptr)->closure_env_0, ((auxd2c_dec_9_closure_type*)cloptr)->closure_env_1, ((auxd2c_dec_9_closure_type*)cloptr)->closure_env_2, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxd2c_dec_9_closure_init (auxd2c_dec_9_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxd2c_dec_9_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxd2c_dec_9_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxd2c_dec_9_closure_type *p_clo = ATS_MALLOC(sizeof(auxd2c_dec_9_closure_type)) ; auxd2c_dec_9_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 4502(line=237, offs=1) -- 4671(line=246, offs=2) */ ATSstaticdec() ats_void_type auxd2cs_dec_10 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; // ATSlocal_void (tmp50) ; __ats_lab_auxd2cs_dec_10: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp50 = */ auxd2c_dec_9 (env0, env1, env2, tmp48) ; arg0 = tmp49 ; goto __ats_lab_auxd2cs_dec_10 ; // tail call break ; } while (0) ; return /* (tmp47) */ ; } /* end of [auxd2cs_dec_10] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxd2cs_dec_10_closure_type ; ats_void_type auxd2cs_dec_10_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxd2cs_dec_10 (((auxd2cs_dec_10_closure_type*)cloptr)->closure_env_0, ((auxd2cs_dec_10_closure_type*)cloptr)->closure_env_1, ((auxd2cs_dec_10_closure_type*)cloptr)->closure_env_2, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxd2cs_dec_10_closure_init (auxd2cs_dec_10_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxd2cs_dec_10_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxd2cs_dec_10_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxd2cs_dec_10_closure_type *p_clo = ATS_MALLOC(sizeof(auxd2cs_dec_10_closure_type)) ; auxd2cs_dec_10_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 4679(line=249, offs=1) -- 4964(line=265, offs=4) */ ATSstaticdec() ats_void_type auxd2c_cla_11 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; __ats_lab_auxd2c_cla_11: tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name (arg0) ; /* tmp53 = */ atspre_fprint_string (env0, ATSstrcst("| ")) ; /* tmp54 = */ atspre_fprint_string (env0, tmp52) ; /* tmp55 = */ atspre_fprint_string (env0, ATSstrcst(" _ => ")) ; /* tmp56 = */ atspre_fprint_string (env0, env2) ; /* tmp57 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp58 = */ atspre_fprint_string (env0, tmp52) ; /* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp60 = */ atspre_fprint_string (env0, ATSstrcst("(out, arg0)")) ; /* tmp51 = */ atspre_fprint_newline (env0) ; return /* (tmp51) */ ; } /* end of [auxd2c_cla_11] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxd2c_cla_11_closure_type ; ats_void_type auxd2c_cla_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxd2c_cla_11 (((auxd2c_cla_11_closure_type*)cloptr)->closure_env_0, ((auxd2c_cla_11_closure_type*)cloptr)->closure_env_1, ((auxd2c_cla_11_closure_type*)cloptr)->closure_env_2, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxd2c_cla_11_closure_init (auxd2c_cla_11_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxd2c_cla_11_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxd2c_cla_11_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxd2c_cla_11_closure_type *p_clo = ATS_MALLOC(sizeof(auxd2c_cla_11_closure_type)) ; auxd2c_cla_11_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 4995(line=268, offs=1) -- 5164(line=277, offs=2) */ ATSstaticdec() ats_void_type auxd2cs_cla_12 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; // ATSlocal_void (tmp64) ; __ats_lab_auxd2cs_cla_12: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp63 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; /* tmp64 = */ auxd2c_cla_11 (env0, env1, env2, tmp62) ; arg0 = tmp63 ; goto __ats_lab_auxd2cs_cla_12 ; // tail call break ; } while (0) ; return /* (tmp61) */ ; } /* end of [auxd2cs_cla_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } auxd2cs_cla_12_closure_type ; ats_void_type auxd2cs_cla_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxd2cs_cla_12 (((auxd2cs_cla_12_closure_type*)cloptr)->closure_env_0, ((auxd2cs_cla_12_closure_type*)cloptr)->closure_env_1, ((auxd2cs_cla_12_closure_type*)cloptr)->closure_env_2, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxd2cs_cla_12_closure_init (auxd2cs_cla_12_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxd2cs_cla_12_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxd2cs_cla_12_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { auxd2cs_cla_12_closure_type *p_clo = ATS_MALLOC(sizeof(auxd2cs_cla_12_closure_type)) ; auxd2cs_cla_12_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 5172(line=280, offs=1) -- 5454(line=298, offs=2) */ ATSstaticdec() ats_void_type auxsep_13 (ats_ptr_type env0, ats_ptr_type env1) { /* local vardec */ // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; __ats_lab_auxsep_13: /* tmp66 = */ atspre_fprint_string (env0, ATSstrcst("//\nextern\nfun{}\n")) ; /* tmp67 = */ atspre_fprint_string (env0, env1) ; /* tmp68 = */ atspre_fprint_string (env0, ATSstrcst("$sep: (FILEref) -> void")) ; /* tmp69 = */ atspre_fprint_newline (env0) ; /* tmp70 = */ atspre_fprint_string (env0, ATSstrcst("implement{}\n")) ; /* tmp71 = */ atspre_fprint_string (env0, env1) ; /* tmp72 = */ atspre_fprint_string (env0, ATSstrcst("$sep(out) = fprint(out, \",\")")) ; /* tmp65 = */ atspre_fprint_newline (env0) ; return /* (tmp65) */ ; } /* end of [auxsep_13] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxsep_13_closure_type ; ats_void_type auxsep_13_clofun (ats_clo_ptr_type cloptr) { auxsep_13 (((auxsep_13_closure_type*)cloptr)->closure_env_0, ((auxsep_13_closure_type*)cloptr)->closure_env_1) ; return ; } /* end of function */ ATSinline() ats_void_type auxsep_13_closure_init (auxsep_13_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxsep_13_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxsep_13_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxsep_13_closure_type *p_clo = ATS_MALLOC(sizeof(auxsep_13_closure_type)) ; auxsep_13_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 5484(line=301, offs=1) -- 5792(line=319, offs=2) */ ATSstaticdec() ats_void_type auxcarg_14 (ats_ptr_type env0, ats_ptr_type env1) { /* local vardec */ // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; __ats_lab_auxcarg_14: /* tmp74 = */ atspre_fprint_string (env0, ATSstrcst("//\nextern\nfun{a:t0p}\n")) ; /* tmp75 = */ atspre_fprint_string (env0, env1) ; /* tmp76 = */ atspre_fprint_string (env0, ATSstrcst("$carg: (FILEref, INV(a)) -> void")) ; /* tmp77 = */ atspre_fprint_newline (env0) ; /* tmp78 = */ atspre_fprint_string (env0, ATSstrcst("implement{a}\n")) ; /* tmp79 = */ atspre_fprint_string (env0, env1) ; /* tmp80 = */ atspre_fprint_string (env0, ATSstrcst("$carg(out, arg) = fprint_val(out, arg)")) ; /* tmp73 = */ atspre_fprint_newline (env0) ; return /* (tmp73) */ ; } /* end of [auxcarg_14] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxcarg_14_closure_type ; ats_void_type auxcarg_14_clofun (ats_clo_ptr_type cloptr) { auxcarg_14 (((auxcarg_14_closure_type*)cloptr)->closure_env_0, ((auxcarg_14_closure_type*)cloptr)->closure_env_1) ; return ; } /* end of function */ ATSinline() ats_void_type auxcarg_14_closure_init (auxcarg_14_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcarg_14_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxcarg_14_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxcarg_14_closure_type *p_clo = ATS_MALLOC(sizeof(auxcarg_14_closure_type)) ; auxcarg_14_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 5823(line=322, offs=1) -- 6108(line=340, offs=2) */ ATSstaticdec() ats_void_type auxlpar_15 (ats_ptr_type env0, ats_ptr_type env1) { /* local vardec */ // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; __ats_lab_auxlpar_15: /* tmp82 = */ atspre_fprint_string (env0, ATSstrcst("//\nextern\nfun{}\n")) ; /* tmp83 = */ atspre_fprint_string (env0, env1) ; /* tmp84 = */ atspre_fprint_string (env0, ATSstrcst("$lpar: (FILEref) -> void")) ; /* tmp85 = */ atspre_fprint_newline (env0) ; /* tmp86 = */ atspre_fprint_string (env0, ATSstrcst("implement{}\n")) ; /* tmp87 = */ atspre_fprint_string (env0, env1) ; /* tmp88 = */ atspre_fprint_string (env0, ATSstrcst("$lpar(out) = fprint(out, \"(\")")) ; /* tmp81 = */ atspre_fprint_newline (env0) ; return /* (tmp81) */ ; } /* end of [auxlpar_15] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxlpar_15_closure_type ; ats_void_type auxlpar_15_clofun (ats_clo_ptr_type cloptr) { auxlpar_15 (((auxlpar_15_closure_type*)cloptr)->closure_env_0, ((auxlpar_15_closure_type*)cloptr)->closure_env_1) ; return ; } /* end of function */ ATSinline() ats_void_type auxlpar_15_closure_init (auxlpar_15_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlpar_15_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxlpar_15_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxlpar_15_closure_type *p_clo = ATS_MALLOC(sizeof(auxlpar_15_closure_type)) ; auxlpar_15_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 6136(line=342, offs=1) -- 6421(line=360, offs=2) */ ATSstaticdec() ats_void_type auxrpar_16 (ats_ptr_type env0, ats_ptr_type env1) { /* local vardec */ // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; __ats_lab_auxrpar_16: /* tmp90 = */ atspre_fprint_string (env0, ATSstrcst("//\nextern\nfun{}\n")) ; /* tmp91 = */ atspre_fprint_string (env0, env1) ; /* tmp92 = */ atspre_fprint_string (env0, ATSstrcst("$rpar: (FILEref) -> void")) ; /* tmp93 = */ atspre_fprint_newline (env0) ; /* tmp94 = */ atspre_fprint_string (env0, ATSstrcst("implement{}\n")) ; /* tmp95 = */ atspre_fprint_string (env0, env1) ; /* tmp96 = */ atspre_fprint_string (env0, ATSstrcst("$rpar(out) = fprint(out, \")\")")) ; /* tmp89 = */ atspre_fprint_newline (env0) ; return /* (tmp89) */ ; } /* end of [auxrpar_16] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxrpar_16_closure_type ; ats_void_type auxrpar_16_clofun (ats_clo_ptr_type cloptr) { auxrpar_16 (((auxrpar_16_closure_type*)cloptr)->closure_env_0, ((auxrpar_16_closure_type*)cloptr)->closure_env_1) ; return ; } /* end of function */ ATSinline() ats_void_type auxrpar_16_closure_init (auxrpar_16_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxrpar_16_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxrpar_16_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxrpar_16_closure_type *p_clo = ATS_MALLOC(sizeof(auxrpar_16_closure_type)) ; auxrpar_16_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 3898(line=199, offs=1) -- 7294(line=414, offs=4) */ ATSstaticdec() ats_void_type aux_datype_d2cf_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; __ats_lab_aux_datype_d2cf_4: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name (arg3) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (arg2) ; if (tmp97 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 6453(line=363, offs=1) -- 6490(line=364, offs=25)") ; } tmp98 = ats_caselptrlab_mac(anairiats_sum_1, tmp97, atslab_0) ; /* tmp99 = */ atspre_fprint_string (arg0, ATSstrcst("(* ****** ****** *)")) ; /* tmp100 = */ atspre_fprint_string (arg0, ATSstrcst("\n//\n")) ; /* tmp101 = */ auxd2cs_dec_10 (arg0, arg3, tmp34, tmp98) ; /* tmp102 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp103 = */ atspre_fprint_string (arg0, ATSstrcst("(* ****** ****** *)")) ; /* tmp104 = */ atspre_fprint_string (arg0, ATSstrcst("\n//\n")) ; /* tmp105 = */ atspre_fprint_string (arg0, ATSstrcst("implement")) ; /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp (arg0, arg3) ; /* tmp107 = */ atspre_fprint_newline (arg0) ; /* tmp108 = */ atspre_fprint_string (arg0, tmp34) ; /* tmp109 = */ atspre_fprint_string (arg0, ATSstrcst("\n ")) ; /* tmp110 = */ atspre_fprint_string (arg0, ATSstrcst("(out, arg0) =")) ; /* tmp111 = */ atspre_fprint_newline (arg0) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst("(\n")) ; /* tmp113 = */ atspre_fprint_string (arg0, ATSstrcst("case+ arg0 of")) ; /* tmp114 = */ atspre_fprint_newline (arg0) ; /* tmp115 = */ auxd2cs_cla_12 (arg0, arg3, tmp34, tmp98) ; /* tmp116 = */ atspre_fprint_string (arg0, ATSstrcst(")\n")) ; /* tmp117 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst("(* ****** ****** *)")) ; /* tmp119 = */ atspre_fprint_newline (arg0) ; /* tmp120 = */ auxsep_13 (arg0, tmp34) ; /* tmp121 = */ auxlpar_15 (arg0, tmp34) ; /* tmp122 = */ auxrpar_16 (arg0, tmp34) ; /* tmp123 = */ auxcarg_14 (arg0, tmp34) ; /* tmp124 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp125 = */ atspre_fprint_string (arg0, ATSstrcst("(* ****** ****** *)")) ; /* tmp126 = */ atspre_fprint_newline (arg0) ; /* tmp127 = */ aux_datype_d2cf_conlst_6 (arg0, arg1, arg2, arg3, tmp98) ; /* tmp128 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp129 = */ atspre_fprint_string (arg0, ATSstrcst("(* ****** ****** *)")) ; /* tmp33 = */ atspre_fprint_newline (arg0) ; return /* (tmp33) */ ; } /* end of [aux_datype_d2cf_4] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 7590(line=435, offs=1) -- 7927(line=453, offs=2) */ ATSstaticdec() ats_void_type auxcon1_17 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { /* local vardec */ // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; __ats_lab_auxcon1_17: /* tmp136 = */ atspre_fprint_string (env0, ATSstrcst("extern\nfun")) ; /* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec (env0, env1) ; /* tmp138 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp139 = */ atspre_fprint_string (env0, env2) ; /* tmp140 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp141 = */ atspre_fprint_string (env0, env3) ; /* tmp142 = */ atspre_fprint_string (env0, ATSstrcst("$con")) ; /* tmp143 = */ atspre_fprint_string (env0, ATSstrcst(": $d2ctype(")) ; /* tmp144 = */ atspre_fprint_string (env0, env2) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp146 = */ atspre_fprint_string (env0, ATSstrcst(")")) ; /* tmp135 = */ atspre_fprint_newline (env0) ; return /* (tmp135) */ ; } /* end of [auxcon1_17] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxcon1_17_closure_type ; ats_void_type auxcon1_17_clofun (ats_clo_ptr_type cloptr) { auxcon1_17 (((auxcon1_17_closure_type*)cloptr)->closure_env_0, ((auxcon1_17_closure_type*)cloptr)->closure_env_1, ((auxcon1_17_closure_type*)cloptr)->closure_env_2, ((auxcon1_17_closure_type*)cloptr)->closure_env_3) ; return ; } /* end of function */ ATSinline() ats_void_type auxcon1_17_closure_init (auxcon1_17_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcon1_17_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxcon1_17_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxcon1_17_closure_type *p_clo = ATS_MALLOC(sizeof(auxcon1_17_closure_type)) ; auxcon1_17_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 7935(line=456, offs=1) -- 8274(line=474, offs=2) */ ATSstaticdec() ats_void_type auxlpar1_18 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { /* local vardec */ // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; __ats_lab_auxlpar1_18: /* tmp148 = */ atspre_fprint_string (env0, ATSstrcst("extern\nfun")) ; /* tmp149 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec (env0, env1) ; /* tmp150 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp151 = */ atspre_fprint_string (env0, env2) ; /* tmp152 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp153 = */ atspre_fprint_string (env0, env3) ; /* tmp154 = */ atspre_fprint_string (env0, ATSstrcst("$lpar")) ; /* tmp155 = */ atspre_fprint_string (env0, ATSstrcst(": $d2ctype(")) ; /* tmp156 = */ atspre_fprint_string (env0, env2) ; /* tmp157 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp158 = */ atspre_fprint_string (env0, ATSstrcst(")")) ; /* tmp147 = */ atspre_fprint_newline (env0) ; return /* (tmp147) */ ; } /* end of [auxlpar1_18] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxlpar1_18_closure_type ; ats_void_type auxlpar1_18_clofun (ats_clo_ptr_type cloptr) { auxlpar1_18 (((auxlpar1_18_closure_type*)cloptr)->closure_env_0, ((auxlpar1_18_closure_type*)cloptr)->closure_env_1, ((auxlpar1_18_closure_type*)cloptr)->closure_env_2, ((auxlpar1_18_closure_type*)cloptr)->closure_env_3) ; return ; } /* end of function */ ATSinline() ats_void_type auxlpar1_18_closure_init (auxlpar1_18_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlpar1_18_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxlpar1_18_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxlpar1_18_closure_type *p_clo = ATS_MALLOC(sizeof(auxlpar1_18_closure_type)) ; auxlpar1_18_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 8282(line=477, offs=1) -- 8621(line=495, offs=2) */ ATSstaticdec() ats_void_type auxrpar1_19 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { /* local vardec */ // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; // ATSlocal_void (tmp170) ; __ats_lab_auxrpar1_19: /* tmp160 = */ atspre_fprint_string (env0, ATSstrcst("extern\nfun")) ; /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec (env0, env1) ; /* tmp162 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp163 = */ atspre_fprint_string (env0, env2) ; /* tmp164 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp165 = */ atspre_fprint_string (env0, env3) ; /* tmp166 = */ atspre_fprint_string (env0, ATSstrcst("$rpar")) ; /* tmp167 = */ atspre_fprint_string (env0, ATSstrcst(": $d2ctype(")) ; /* tmp168 = */ atspre_fprint_string (env0, env2) ; /* tmp169 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp170 = */ atspre_fprint_string (env0, ATSstrcst(")")) ; /* tmp159 = */ atspre_fprint_newline (env0) ; return /* (tmp159) */ ; } /* end of [auxrpar1_19] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxrpar1_19_closure_type ; ats_void_type auxrpar1_19_clofun (ats_clo_ptr_type cloptr) { auxrpar1_19 (((auxrpar1_19_closure_type*)cloptr)->closure_env_0, ((auxrpar1_19_closure_type*)cloptr)->closure_env_1, ((auxrpar1_19_closure_type*)cloptr)->closure_env_2, ((auxrpar1_19_closure_type*)cloptr)->closure_env_3) ; return ; } /* end of function */ ATSinline() ats_void_type auxrpar1_19_closure_init (auxrpar1_19_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxrpar1_19_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxrpar1_19_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxrpar1_19_closure_type *p_clo = ATS_MALLOC(sizeof(auxrpar1_19_closure_type)) ; auxrpar1_19_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 8629(line=498, offs=1) -- 8988(line=520, offs=2) */ ATSstaticdec() ats_void_type auxsep1_n_20 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; // ATSlocal_void (tmp173) ; // ATSlocal_void (tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; // ATSlocal_void (tmp179) ; // ATSlocal_void (tmp180) ; // ATSlocal_void (tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; __ats_lab_auxsep1_n_20: /* tmp172 = */ atspre_fprint_string (env0, ATSstrcst("extern\nfun")) ; /* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec (env0, env1) ; /* tmp174 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp175 = */ atspre_fprint_string (env0, env2) ; /* tmp176 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp177 = */ atspre_fprint_string (env0, env3) ; /* tmp178 = */ atspre_fprint_string (env0, ATSstrcst("$sep")) ; /* tmp179 = */ atspre_fprint_int (env0, arg0) ; /* tmp180 = */ atspre_fprint_string (env0, ATSstrcst(": $d2ctype(")) ; /* tmp181 = */ atspre_fprint_string (env0, env2) ; /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp183 = */ atspre_fprint_string (env0, ATSstrcst(")")) ; /* tmp171 = */ atspre_fprint_newline (env0) ; return /* (tmp171) */ ; } /* end of [auxsep1_n_20] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxsep1_n_20_closure_type ; ats_void_type auxsep1_n_20_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { auxsep1_n_20 (((auxsep1_n_20_closure_type*)cloptr)->closure_env_0, ((auxsep1_n_20_closure_type*)cloptr)->closure_env_1, ((auxsep1_n_20_closure_type*)cloptr)->closure_env_2, ((auxsep1_n_20_closure_type*)cloptr)->closure_env_3, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxsep1_n_20_closure_init (auxsep1_n_20_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxsep1_n_20_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxsep1_n_20_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxsep1_n_20_closure_type *p_clo = ATS_MALLOC(sizeof(auxsep1_n_20_closure_type)) ; auxsep1_n_20_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 8996(line=523, offs=1) -- 9336(line=541, offs=2) */ ATSstaticdec() ats_void_type auxarg1_n_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; // ATSlocal_void (tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; __ats_lab_auxarg1_n_21: /* tmp185 = */ atspre_fprint_string (env0, ATSstrcst("extern\nfun")) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstdec (env0, env1) ; /* tmp187 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp188 = */ atspre_fprint_string (env0, env2) ; /* tmp189 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp190 = */ atspre_fprint_string (env0, env3) ; /* tmp191 = */ atspre_fprint_string (env0, ATSstrcst("$arg")) ; /* tmp192 = */ atspre_fprint_int (env0, arg0) ; /* tmp193 = */ atspre_fprint_string (env0, ATSstrcst(": $d2ctype(")) ; /* tmp194 = */ atspre_fprint_string (env0, env2) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp196 = */ atspre_fprint_string (env0, ATSstrcst(")")) ; /* tmp184 = */ atspre_fprint_newline (env0) ; return /* (tmp184) */ ; } /* end of [auxarg1_n_21] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxarg1_n_21_closure_type ; ats_void_type auxarg1_n_21_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { auxarg1_n_21 (((auxarg1_n_21_closure_type*)cloptr)->closure_env_0, ((auxarg1_n_21_closure_type*)cloptr)->closure_env_1, ((auxarg1_n_21_closure_type*)cloptr)->closure_env_2, ((auxarg1_n_21_closure_type*)cloptr)->closure_env_3, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxarg1_n_21_closure_init (auxarg1_n_21_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxarg1_n_21_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxarg1_n_21_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxarg1_n_21_closure_type *p_clo = ATS_MALLOC(sizeof(auxarg1_n_21_closure_type)) ; auxarg1_n_21_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 9344(line=544, offs=1) -- 9564(line=557, offs=2) */ ATSstaticdec() ats_void_type auxcon2_22 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { /* local vardec */ // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; // ATSlocal_void (tmp204) ; __ats_lab_auxcon2_22: /* tmp198 = */ atspre_fprint_string (env0, ATSstrcst("val () = ")) ; /* tmp199 = */ atspre_fprint_string (env0, env2) ; /* tmp200 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp201 = */ atspre_fprint_string (env0, env3) ; /* tmp202 = */ atspre_fprint_string (env0, ATSstrcst("$con")) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp204 = */ atspre_fprint_string (env0, ATSstrcst("(out, arg0)")) ; /* tmp197 = */ atspre_fprint_newline (env0) ; return /* (tmp197) */ ; } /* end of [auxcon2_22] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxcon2_22_closure_type ; ats_void_type auxcon2_22_clofun (ats_clo_ptr_type cloptr) { auxcon2_22 (((auxcon2_22_closure_type*)cloptr)->closure_env_0, ((auxcon2_22_closure_type*)cloptr)->closure_env_1, ((auxcon2_22_closure_type*)cloptr)->closure_env_2, ((auxcon2_22_closure_type*)cloptr)->closure_env_3) ; return ; } /* end of function */ ATSinline() ats_void_type auxcon2_22_closure_init (auxcon2_22_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcon2_22_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxcon2_22_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxcon2_22_closure_type *p_clo = ATS_MALLOC(sizeof(auxcon2_22_closure_type)) ; auxcon2_22_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 9569(line=559, offs=1) -- 9796(line=574, offs=2) */ ATSstaticdec() ats_void_type auxlpar2_23 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { /* local vardec */ // ATSlocal_void (tmp205) ; // ATSlocal_void (tmp206) ; // ATSlocal_void (tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; __ats_lab_auxlpar2_23: /* tmp206 = */ atspre_fprint_string (env0, ATSstrcst("val () = ")) ; /* tmp207 = */ atspre_fprint_string (env0, env2) ; /* tmp208 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp209 = */ atspre_fprint_string (env0, env3) ; /* tmp210 = */ atspre_fprint_string (env0, ATSstrcst("$lpar")) ; /* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp212 = */ atspre_fprint_string (env0, ATSstrcst("(out, arg0)")) ; /* tmp205 = */ atspre_fprint_newline (env0) ; return /* (tmp205) */ ; } /* end of [auxlpar2_23] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxlpar2_23_closure_type ; ats_void_type auxlpar2_23_clofun (ats_clo_ptr_type cloptr) { auxlpar2_23 (((auxlpar2_23_closure_type*)cloptr)->closure_env_0, ((auxlpar2_23_closure_type*)cloptr)->closure_env_1, ((auxlpar2_23_closure_type*)cloptr)->closure_env_2, ((auxlpar2_23_closure_type*)cloptr)->closure_env_3) ; return ; } /* end of function */ ATSinline() ats_void_type auxlpar2_23_closure_init (auxlpar2_23_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlpar2_23_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxlpar2_23_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxlpar2_23_closure_type *p_clo = ATS_MALLOC(sizeof(auxlpar2_23_closure_type)) ; auxlpar2_23_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 9804(line=577, offs=1) -- 10031(line=592, offs=2) */ ATSstaticdec() ats_void_type auxrpar2_24 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { /* local vardec */ // ATSlocal_void (tmp213) ; // ATSlocal_void (tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; __ats_lab_auxrpar2_24: /* tmp214 = */ atspre_fprint_string (env0, ATSstrcst("val () = ")) ; /* tmp215 = */ atspre_fprint_string (env0, env2) ; /* tmp216 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp217 = */ atspre_fprint_string (env0, env3) ; /* tmp218 = */ atspre_fprint_string (env0, ATSstrcst("$rpar")) ; /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp220 = */ atspre_fprint_string (env0, ATSstrcst("(out, arg0)")) ; /* tmp213 = */ atspre_fprint_newline (env0) ; return /* (tmp213) */ ; } /* end of [auxrpar2_24] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxrpar2_24_closure_type ; ats_void_type auxrpar2_24_clofun (ats_clo_ptr_type cloptr) { auxrpar2_24 (((auxrpar2_24_closure_type*)cloptr)->closure_env_0, ((auxrpar2_24_closure_type*)cloptr)->closure_env_1, ((auxrpar2_24_closure_type*)cloptr)->closure_env_2, ((auxrpar2_24_closure_type*)cloptr)->closure_env_3) ; return ; } /* end of function */ ATSinline() ats_void_type auxrpar2_24_closure_init (auxrpar2_24_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxrpar2_24_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxrpar2_24_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxrpar2_24_closure_type *p_clo = ATS_MALLOC(sizeof(auxrpar2_24_closure_type)) ; auxrpar2_24_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 10039(line=595, offs=1) -- 10267(line=610, offs=2) */ ATSstaticdec() ats_void_type auxsep2_n_25 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; // ATSlocal_void (tmp224) ; // ATSlocal_void (tmp225) ; // ATSlocal_void (tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp229) ; __ats_lab_auxsep2_n_25: /* tmp222 = */ atspre_fprint_string (env0, ATSstrcst("val () = ")) ; /* tmp223 = */ atspre_fprint_string (env0, env2) ; /* tmp224 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp225 = */ atspre_fprint_string (env0, env3) ; /* tmp226 = */ atspre_fprint_string (env0, ATSstrcst("$sep")) ; /* tmp227 = */ atspre_fprint_int (env0, arg0) ; /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp229 = */ atspre_fprint_string (env0, ATSstrcst("(out, arg0)")) ; /* tmp221 = */ atspre_fprint_newline (env0) ; return /* (tmp221) */ ; } /* end of [auxsep2_n_25] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxsep2_n_25_closure_type ; ats_void_type auxsep2_n_25_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { auxsep2_n_25 (((auxsep2_n_25_closure_type*)cloptr)->closure_env_0, ((auxsep2_n_25_closure_type*)cloptr)->closure_env_1, ((auxsep2_n_25_closure_type*)cloptr)->closure_env_2, ((auxsep2_n_25_closure_type*)cloptr)->closure_env_3, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxsep2_n_25_closure_init (auxsep2_n_25_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxsep2_n_25_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxsep2_n_25_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxsep2_n_25_closure_type *p_clo = ATS_MALLOC(sizeof(auxsep2_n_25_closure_type)) ; auxsep2_n_25_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 10272(line=612, offs=1) -- 10500(line=627, offs=2) */ ATSstaticdec() ats_void_type auxarg2_n_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; __ats_lab_auxarg2_n_26: /* tmp231 = */ atspre_fprint_string (env0, ATSstrcst("val () = ")) ; /* tmp232 = */ atspre_fprint_string (env0, env2) ; /* tmp233 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp234 = */ atspre_fprint_string (env0, env3) ; /* tmp235 = */ atspre_fprint_string (env0, ATSstrcst("$arg")) ; /* tmp236 = */ atspre_fprint_int (env0, arg0) ; /* tmp237 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstapp (env0, env1) ; /* tmp238 = */ atspre_fprint_string (env0, ATSstrcst("(out, arg0)")) ; /* tmp230 = */ atspre_fprint_newline (env0) ; return /* (tmp230) */ ; } /* end of [auxarg2_n_26] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxarg2_n_26_closure_type ; ats_void_type auxarg2_n_26_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { auxarg2_n_26 (((auxarg2_n_26_closure_type*)cloptr)->closure_env_0, ((auxarg2_n_26_closure_type*)cloptr)->closure_env_1, ((auxarg2_n_26_closure_type*)cloptr)->closure_env_2, ((auxarg2_n_26_closure_type*)cloptr)->closure_env_3, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxarg2_n_26_closure_init (auxarg2_n_26_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxarg2_n_26_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxarg2_n_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxarg2_n_26_closure_type *p_clo = ATS_MALLOC(sizeof(auxarg2_n_26_closure_type)) ; auxarg2_n_26_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 10508(line=630, offs=1) -- 10745(line=649, offs=2) */ ATSstaticdec() ats_void_type auxbody2_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp239) ; ATSlocal (ats_bool_type, tmp240) ; // ATSlocal_void (tmp241) ; ATSlocal (ats_bool_type, tmp242) ; // ATSlocal_void (tmp243) ; ATSlocal (ats_int_type, tmp244) ; ATSlocal (ats_int_type, tmp245) ; __ats_lab_auxbody2_27: tmp240 = atspre_lt_int_int (arg1, env4) ; if (tmp240) { tmp242 = atspre_gt_int_int (arg1, arg0) ; if (tmp242) { /* tmp241 = */ auxsep2_n_25 (env0, env1, env2, env3, arg1) ; } else { /* empty */ } /* end of [if] */ tmp244 = atspre_add_int_int (arg1, 1) ; /* tmp243 = */ auxarg2_n_26 (env0, env1, env2, env3, tmp244) ; tmp245 = atspre_add_int_int (arg1, 1) ; arg0 = arg0 ; arg1 = tmp245 ; goto __ats_lab_auxbody2_27 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp239) */ ; } /* end of [auxbody2_27] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; ats_int_type closure_env_4 ; } auxbody2_27_closure_type ; ats_void_type auxbody2_27_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_int_type arg1) { auxbody2_27 (((auxbody2_27_closure_type*)cloptr)->closure_env_0, ((auxbody2_27_closure_type*)cloptr)->closure_env_1, ((auxbody2_27_closure_type*)cloptr)->closure_env_2, ((auxbody2_27_closure_type*)cloptr)->closure_env_3, ((auxbody2_27_closure_type*)cloptr)->closure_env_4, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxbody2_27_closure_init (auxbody2_27_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { p_clo->closure_fun = (ats_fun_ptr_type)&auxbody2_27_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; p_clo->closure_env_4 = env4 ; return ; } /* end of function */ ats_clo_ptr_type auxbody2_27_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { auxbody2_27_closure_type *p_clo = ATS_MALLOC(sizeof(auxbody2_27_closure_type)) ; auxbody2_27_closure_init (p_clo, env0, env1, env2, env3, env4) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 10777(line=652, offs=1) -- 11053(line=670, offs=2) */ ATSstaticdec() ats_void_type auxcon3_28 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { /* local vardec */ // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; // ATSlocal_void (tmp256) ; __ats_lab_auxcon3_28: /* tmp247 = */ atspre_fprint_string (env0, ATSstrcst("implement")) ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp (env0, env1) ; /* tmp249 = */ atspre_fprint_newline (env0) ; /* tmp250 = */ atspre_fprint_string (env0, env2) ; /* tmp251 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp252 = */ atspre_fprint_string (env0, env3) ; /* tmp253 = */ atspre_fprint_string (env0, ATSstrcst("$con(out, _) = ")) ; /* tmp254 = */ atspre_fprint_string (env0, ATSstrcst("fprint(out, \"")) ; /* tmp255 = */ atspre_fprint_string (env0, env3) ; /* tmp256 = */ atspre_fprint_string (env0, ATSstrcst("\")")) ; /* tmp246 = */ atspre_fprint_newline (env0) ; return /* (tmp246) */ ; } /* end of [auxcon3_28] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxcon3_28_closure_type ; ats_void_type auxcon3_28_clofun (ats_clo_ptr_type cloptr) { auxcon3_28 (((auxcon3_28_closure_type*)cloptr)->closure_env_0, ((auxcon3_28_closure_type*)cloptr)->closure_env_1, ((auxcon3_28_closure_type*)cloptr)->closure_env_2, ((auxcon3_28_closure_type*)cloptr)->closure_env_3) ; return ; } /* end of function */ ATSinline() ats_void_type auxcon3_28_closure_init (auxcon3_28_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxcon3_28_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxcon3_28_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxcon3_28_closure_type *p_clo = ATS_MALLOC(sizeof(auxcon3_28_closure_type)) ; auxcon3_28_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 11084(line=673, offs=1) -- 11325(line=688, offs=2) */ ATSstaticdec() ats_void_type auxlpar3_29 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { /* local vardec */ // ATSlocal_void (tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; // ATSlocal_void (tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; // ATSlocal_void (tmp265) ; // ATSlocal_void (tmp266) ; __ats_lab_auxlpar3_29: /* tmp258 = */ atspre_fprint_string (env0, ATSstrcst("implement")) ; /* tmp259 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp (env0, env1) ; /* tmp260 = */ atspre_fprint_newline (env0) ; /* tmp261 = */ atspre_fprint_string (env0, env2) ; /* tmp262 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp263 = */ atspre_fprint_string (env0, env3) ; /* tmp264 = */ atspre_fprint_string (env0, ATSstrcst("$lpar(out, _) = ")) ; /* tmp265 = */ atspre_fprint_string (env0, env2) ; /* tmp266 = */ atspre_fprint_string (env0, ATSstrcst("$lpar(out)")) ; /* tmp257 = */ atspre_fprint_newline (env0) ; return /* (tmp257) */ ; } /* end of [auxlpar3_29] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxlpar3_29_closure_type ; ats_void_type auxlpar3_29_clofun (ats_clo_ptr_type cloptr) { auxlpar3_29 (((auxlpar3_29_closure_type*)cloptr)->closure_env_0, ((auxlpar3_29_closure_type*)cloptr)->closure_env_1, ((auxlpar3_29_closure_type*)cloptr)->closure_env_2, ((auxlpar3_29_closure_type*)cloptr)->closure_env_3) ; return ; } /* end of function */ ATSinline() ats_void_type auxlpar3_29_closure_init (auxlpar3_29_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlpar3_29_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxlpar3_29_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxlpar3_29_closure_type *p_clo = ATS_MALLOC(sizeof(auxlpar3_29_closure_type)) ; auxlpar3_29_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 11357(line=691, offs=1) -- 11598(line=706, offs=2) */ ATSstaticdec() ats_void_type auxrpar3_30 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { /* local vardec */ // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp272) ; // ATSlocal_void (tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; __ats_lab_auxrpar3_30: /* tmp268 = */ atspre_fprint_string (env0, ATSstrcst("implement")) ; /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp (env0, env1) ; /* tmp270 = */ atspre_fprint_newline (env0) ; /* tmp271 = */ atspre_fprint_string (env0, env2) ; /* tmp272 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp273 = */ atspre_fprint_string (env0, env3) ; /* tmp274 = */ atspre_fprint_string (env0, ATSstrcst("$rpar(out, _) = ")) ; /* tmp275 = */ atspre_fprint_string (env0, env2) ; /* tmp276 = */ atspre_fprint_string (env0, ATSstrcst("$rpar(out)")) ; /* tmp267 = */ atspre_fprint_newline (env0) ; return /* (tmp267) */ ; } /* end of [auxrpar3_30] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxrpar3_30_closure_type ; ats_void_type auxrpar3_30_clofun (ats_clo_ptr_type cloptr) { auxrpar3_30 (((auxrpar3_30_closure_type*)cloptr)->closure_env_0, ((auxrpar3_30_closure_type*)cloptr)->closure_env_1, ((auxrpar3_30_closure_type*)cloptr)->closure_env_2, ((auxrpar3_30_closure_type*)cloptr)->closure_env_3) ; return ; } /* end of function */ ATSinline() ats_void_type auxrpar3_30_closure_init (auxrpar3_30_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxrpar3_30_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxrpar3_30_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxrpar3_30_closure_type *p_clo = ATS_MALLOC(sizeof(auxrpar3_30_closure_type)) ; auxrpar3_30_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 11630(line=709, offs=1) -- 11877(line=724, offs=2) */ ATSstaticdec() ats_void_type auxsep3_n_31 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; // ATSlocal_void (tmp279) ; // ATSlocal_void (tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; // ATSlocal_void (tmp285) ; // ATSlocal_void (tmp286) ; // ATSlocal_void (tmp287) ; // ATSlocal_void (tmp288) ; __ats_lab_auxsep3_n_31: /* tmp278 = */ atspre_fprint_string (env0, ATSstrcst("implement")) ; /* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp (env0, env1) ; /* tmp280 = */ atspre_fprint_newline (env0) ; /* tmp281 = */ atspre_fprint_string (env0, env2) ; /* tmp282 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp283 = */ atspre_fprint_string (env0, env3) ; /* tmp284 = */ atspre_fprint_string (env0, ATSstrcst("$sep")) ; /* tmp285 = */ atspre_fprint_int (env0, arg0) ; /* tmp286 = */ atspre_fprint_string (env0, ATSstrcst("(out, _) = ")) ; /* tmp287 = */ atspre_fprint_string (env0, env2) ; /* tmp288 = */ atspre_fprint_string (env0, ATSstrcst("$sep<>(out)")) ; /* tmp277 = */ atspre_fprint_newline (env0) ; return /* (tmp277) */ ; } /* end of [auxsep3_n_31] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxsep3_n_31_closure_type ; ats_void_type auxsep3_n_31_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { auxsep3_n_31 (((auxsep3_n_31_closure_type*)cloptr)->closure_env_0, ((auxsep3_n_31_closure_type*)cloptr)->closure_env_1, ((auxsep3_n_31_closure_type*)cloptr)->closure_env_2, ((auxsep3_n_31_closure_type*)cloptr)->closure_env_3, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxsep3_n_31_closure_init (auxsep3_n_31_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxsep3_n_31_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxsep3_n_31_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxsep3_n_31_closure_type *p_clo = ATS_MALLOC(sizeof(auxsep3_n_31_closure_type)) ; auxsep3_n_31_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 11962(line=733, offs=1) -- 12266(line=752, offs=2) */ ATSstaticdec() ats_void_type aux_33 (ats_ptr_type env0, ats_int_type env1, ats_int_type env2, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp290) ; ATSlocal (ats_bool_type, tmp291) ; // ATSlocal_void (tmp292) ; ATSlocal (ats_bool_type, tmp293) ; // ATSlocal_void (tmp294) ; ATSlocal (ats_bool_type, tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; ATSlocal (ats_bool_type, tmp298) ; ATSlocal (ats_int_type, tmp299) ; __ats_lab_aux_33: tmp291 = atspre_lte_int_int (arg0, env1) ; if (tmp291) { tmp293 = atspre_gt_int_int (arg0, 1) ; if (tmp293) { /* tmp292 = */ atspre_fprint_string (env0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ tmp295 = atspre_eq_int_int (arg0, env2) ; if (tmp295) { /* tmp296 = */ atspre_fprint_string (env0, ATSstrcst("arg")) ; /* tmp294 = */ atspre_fprint_int (env0, env2) ; } else { /* empty */ } /* end of [if] */ tmp298 = atspre_neq_int_int (arg0, env2) ; if (tmp298) { /* tmp297 = */ atspre_fprint_string (env0, ATSstrcst("_")) ; } else { /* empty */ } /* end of [if] */ tmp299 = atspre_add_int_int (arg0, 1) ; arg0 = tmp299 ; goto __ats_lab_aux_33 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp290) */ ; } /* end of [aux_33] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_int_type closure_env_1 ; ats_int_type closure_env_2 ; } aux_33_closure_type ; ats_void_type aux_33_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { aux_33 (((aux_33_closure_type*)cloptr)->closure_env_0, ((aux_33_closure_type*)cloptr)->closure_env_1, ((aux_33_closure_type*)cloptr)->closure_env_2, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type aux_33_closure_init (aux_33_closure_type *p_clo, ats_ptr_type env0, ats_int_type env1, ats_int_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_33_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_33_closure_make (ats_ptr_type env0, ats_int_type env1, ats_int_type env2) { aux_33_closure_type *p_clo = ATS_MALLOC(sizeof(aux_33_closure_type)) ; aux_33_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 11910(line=727, offs=1) -- 12329(line=756, offs=4) */ ATSstaticdec() ats_void_type auxpat3_n_32 (ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp289) ; // ATSlocal_void (tmp300) ; // ATSlocal_void (tmp301) ; // ATSlocal_void (tmp302) ; __ats_lab_auxpat3_n_32: /* tmp300 = */ atspre_fprint_string (env0, env1) ; /* tmp301 = */ atspre_fprint_string (env0, ATSstrcst("(")) ; /* tmp302 = */ aux_33 (env0, env2, arg0, 1) ; /* tmp289 = */ atspre_fprint_string (env0, ATSstrcst(")")) ; return /* (tmp289) */ ; } /* end of [auxpat3_n_32] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_int_type closure_env_2 ; } auxpat3_n_32_closure_type ; ats_void_type auxpat3_n_32_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { auxpat3_n_32 (((auxpat3_n_32_closure_type*)cloptr)->closure_env_0, ((auxpat3_n_32_closure_type*)cloptr)->closure_env_1, ((auxpat3_n_32_closure_type*)cloptr)->closure_env_2, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxpat3_n_32_closure_init (auxpat3_n_32_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&auxpat3_n_32_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type auxpat3_n_32_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_int_type env2) { auxpat3_n_32_closure_type *p_clo = ATS_MALLOC(sizeof(auxpat3_n_32_closure_type)) ; auxpat3_n_32_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 12359(line=759, offs=1) -- 12732(line=783, offs=2) */ ATSstaticdec() ats_void_type auxarg3_n_34 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp303) ; // ATSlocal_void (tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; // ATSlocal_void (tmp307) ; // ATSlocal_void (tmp308) ; // ATSlocal_void (tmp309) ; // ATSlocal_void (tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; // ATSlocal_void (tmp313) ; // ATSlocal_void (tmp314) ; // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; // ATSlocal_void (tmp317) ; // ATSlocal_void (tmp318) ; // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; __ats_lab_auxarg3_n_34: /* tmp304 = */ atspre_fprint_string (env0, ATSstrcst("implement")) ; /* tmp305 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp (env0, env1) ; /* tmp306 = */ atspre_fprint_newline (env0) ; /* tmp307 = */ atspre_fprint_string (env0, env2) ; /* tmp308 = */ atspre_fprint_string (env0, ATSstrcst("$")) ; /* tmp309 = */ atspre_fprint_string (env0, env3) ; /* tmp310 = */ atspre_fprint_string (env0, ATSstrcst("$arg")) ; /* tmp311 = */ atspre_fprint_int (env0, arg0) ; /* tmp312 = */ atspre_fprint_string (env0, ATSstrcst("(out, arg0) =")) ; /* tmp313 = */ atspre_fprint_newline (env0) ; /* tmp314 = */ atspre_fprint_string (env0, ATSstrcst(" let val-")) ; /* tmp315 = */ auxpat3_n_32 (env0, env3, env4, arg0) ; /* tmp316 = */ atspre_fprint_string (env0, ATSstrcst(" = arg0 in ")) ; /* tmp317 = */ atspre_fprint_string (env0, env2) ; /* tmp318 = */ atspre_fprint_string (env0, ATSstrcst("$carg(out, arg")) ; /* tmp319 = */ atspre_fprint_int (env0, arg0) ; /* tmp320 = */ atspre_fprint_string (env0, ATSstrcst(") end")) ; /* tmp303 = */ atspre_fprint_newline (env0) ; return /* (tmp303) */ ; } /* end of [auxarg3_n_34] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; ats_int_type closure_env_4 ; } auxarg3_n_34_closure_type ; ats_void_type auxarg3_n_34_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { auxarg3_n_34 (((auxarg3_n_34_closure_type*)cloptr)->closure_env_0, ((auxarg3_n_34_closure_type*)cloptr)->closure_env_1, ((auxarg3_n_34_closure_type*)cloptr)->closure_env_2, ((auxarg3_n_34_closure_type*)cloptr)->closure_env_3, ((auxarg3_n_34_closure_type*)cloptr)->closure_env_4, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxarg3_n_34_closure_init (auxarg3_n_34_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { p_clo->closure_fun = (ats_fun_ptr_type)&auxarg3_n_34_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; p_clo->closure_env_4 = env4 ; return ; } /* end of function */ ats_clo_ptr_type auxarg3_n_34_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { auxarg3_n_34_closure_type *p_clo = ATS_MALLOC(sizeof(auxarg3_n_34_closure_type)) ; auxarg3_n_34_closure_init (p_clo, env0, env1, env2, env3, env4) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 12883(line=793, offs=7) -- 12955(line=793, offs=79) */ ATSstaticdec() ats_void_type loop_35 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp325) ; ATSlocal (ats_bool_type, tmp326) ; // ATSlocal_void (tmp327) ; ATSlocal (ats_int_type, tmp328) ; __ats_lab_loop_35: tmp326 = atspre_lt_int_int (arg0, env4) ; if (tmp326) { /* tmp327 = */ auxsep1_n_20 (env0, env1, env2, env3, arg0) ; tmp328 = atspre_add_int_int (arg0, 1) ; arg0 = tmp328 ; goto __ats_lab_loop_35 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp325) */ ; } /* end of [loop_35] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; ats_int_type closure_env_4 ; } loop_35_closure_type ; ats_void_type loop_35_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { loop_35 (((loop_35_closure_type*)cloptr)->closure_env_0, ((loop_35_closure_type*)cloptr)->closure_env_1, ((loop_35_closure_type*)cloptr)->closure_env_2, ((loop_35_closure_type*)cloptr)->closure_env_3, ((loop_35_closure_type*)cloptr)->closure_env_4, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type loop_35_closure_init (loop_35_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_35_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; p_clo->closure_env_4 = env4 ; return ; } /* end of function */ ats_clo_ptr_type loop_35_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { loop_35_closure_type *p_clo = ATS_MALLOC(sizeof(loop_35_closure_type)) ; loop_35_closure_init (p_clo, env0, env1, env2, env3, env4) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 12989(line=797, offs=7) -- 13062(line=797, offs=80) */ ATSstaticdec() ats_void_type loop_36 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp330) ; ATSlocal (ats_bool_type, tmp331) ; // ATSlocal_void (tmp332) ; ATSlocal (ats_int_type, tmp333) ; __ats_lab_loop_36: tmp331 = atspre_lte_int_int (arg0, env4) ; if (tmp331) { /* tmp332 = */ auxarg1_n_21 (env0, env1, env2, env3, arg0) ; tmp333 = atspre_add_int_int (arg0, 1) ; arg0 = tmp333 ; goto __ats_lab_loop_36 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp330) */ ; } /* end of [loop_36] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; ats_int_type closure_env_4 ; } loop_36_closure_type ; ats_void_type loop_36_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { loop_36 (((loop_36_closure_type*)cloptr)->closure_env_0, ((loop_36_closure_type*)cloptr)->closure_env_1, ((loop_36_closure_type*)cloptr)->closure_env_2, ((loop_36_closure_type*)cloptr)->closure_env_3, ((loop_36_closure_type*)cloptr)->closure_env_4, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type loop_36_closure_init (loop_36_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_36_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; p_clo->closure_env_4 = env4 ; return ; } /* end of function */ ats_clo_ptr_type loop_36_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { loop_36_closure_type *p_clo = ATS_MALLOC(sizeof(loop_36_closure_type)) ; loop_36_closure_init (p_clo, env0, env1, env2, env3, env4) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 13515(line=824, offs=7) -- 13587(line=824, offs=79) */ ATSstaticdec() ats_void_type loop_37 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp355) ; ATSlocal (ats_bool_type, tmp356) ; // ATSlocal_void (tmp357) ; ATSlocal (ats_int_type, tmp358) ; __ats_lab_loop_37: tmp356 = atspre_lt_int_int (arg0, env4) ; if (tmp356) { /* tmp357 = */ auxsep3_n_31 (env0, env1, env2, env3, arg0) ; tmp358 = atspre_add_int_int (arg0, 1) ; arg0 = tmp358 ; goto __ats_lab_loop_37 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp355) */ ; } /* end of [loop_37] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; ats_int_type closure_env_4 ; } loop_37_closure_type ; ats_void_type loop_37_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { loop_37 (((loop_37_closure_type*)cloptr)->closure_env_0, ((loop_37_closure_type*)cloptr)->closure_env_1, ((loop_37_closure_type*)cloptr)->closure_env_2, ((loop_37_closure_type*)cloptr)->closure_env_3, ((loop_37_closure_type*)cloptr)->closure_env_4, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type loop_37_closure_init (loop_37_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_37_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; p_clo->closure_env_4 = env4 ; return ; } /* end of function */ ats_clo_ptr_type loop_37_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { loop_37_closure_type *p_clo = ATS_MALLOC(sizeof(loop_37_closure_type)) ; loop_37_closure_init (p_clo, env0, env1, env2, env3, env4) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 13621(line=828, offs=7) -- 13694(line=828, offs=80) */ ATSstaticdec() ats_void_type loop_38 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4, ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp360) ; ATSlocal (ats_bool_type, tmp361) ; // ATSlocal_void (tmp362) ; ATSlocal (ats_int_type, tmp363) ; __ats_lab_loop_38: tmp361 = atspre_lte_int_int (arg0, env4) ; if (tmp361) { /* tmp362 = */ auxarg3_n_34 (env0, env1, env2, env3, env4, arg0) ; tmp363 = atspre_add_int_int (arg0, 1) ; arg0 = tmp363 ; goto __ats_lab_loop_38 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp360) */ ; } /* end of [loop_38] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; ats_int_type closure_env_4 ; } loop_38_closure_type ; ats_void_type loop_38_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0) { loop_38 (((loop_38_closure_type*)cloptr)->closure_env_0, ((loop_38_closure_type*)cloptr)->closure_env_1, ((loop_38_closure_type*)cloptr)->closure_env_2, ((loop_38_closure_type*)cloptr)->closure_env_3, ((loop_38_closure_type*)cloptr)->closure_env_4, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type loop_38_closure_init (loop_38_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_38_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; p_clo->closure_env_4 = env4 ; return ; } /* end of function */ ats_clo_ptr_type loop_38_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_int_type env4) { loop_38_closure_type *p_clo = ATS_MALLOC(sizeof(loop_38_closure_type)) ; loop_38_closure_init (p_clo, env0, env1, env2, env3, env4) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 7328(line=417, offs=1) -- 13719(line=833, offs=4) */ ATSstaticdec() ats_void_type aux_datype_d2cf_con_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp329) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; // ATSlocal_void (tmp336) ; // ATSlocal_void (tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; // ATSlocal_void (tmp340) ; // ATSlocal_void (tmp341) ; // ATSlocal_void (tmp342) ; // ATSlocal_void (tmp343) ; // ATSlocal_void (tmp344) ; // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; // ATSlocal_void (tmp347) ; // ATSlocal_void (tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; // ATSlocal_void (tmp353) ; // ATSlocal_void (tmp354) ; // ATSlocal_void (tmp359) ; __ats_lab_aux_datype_d2cf_con_5: tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_name (arg3) ; tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg3) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_name (arg4) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (arg4) ; /* tmp321 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp322 = */ auxcon1_17 (arg0, arg3, tmp131, tmp133) ; /* tmp323 = */ auxlpar1_18 (arg0, arg3, tmp131, tmp133) ; /* tmp324 = */ auxrpar1_19 (arg0, arg3, tmp131, tmp133) ; /* tmp329 = */ loop_35 (arg0, arg3, tmp131, tmp133, tmp134, 1) ; /* tmp334 = */ loop_36 (arg0, arg3, tmp131, tmp133, tmp134, 1) ; /* tmp335 = */ atspre_fprint_string (arg0, ATSstrcst("//\n")) ; /* tmp336 = */ atspre_fprint_string (arg0, ATSstrcst("implement")) ; /* tmp337 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_tmpcstimp (arg0, arg3) ; /* tmp338 = */ atspre_fprint_newline (arg0) ; /* tmp339 = */ atspre_fprint_string (arg0, tmp131) ; /* tmp340 = */ atspre_fprint_string (arg0, ATSstrcst("$")) ; /* tmp341 = */ atspre_fprint_string (arg0, tmp133) ; /* tmp342 = */ atspre_fprint_string (arg0, ATSstrcst("(out, arg0) = ")) ; /* tmp343 = */ atspre_fprint_newline (arg0) ; /* tmp344 = */ atspre_fprint_string (arg0, ATSstrcst("{\n//")) ; /* tmp345 = */ atspre_fprint_newline (arg0) ; /* tmp346 = */ auxcon2_22 (arg0, arg3, tmp131, tmp133) ; /* tmp347 = */ auxlpar2_23 (arg0, arg3, tmp131, tmp133) ; /* tmp348 = */ auxbody2_27 (arg0, arg3, tmp131, tmp133, tmp134, 0, 0) ; /* tmp349 = */ auxrpar2_24 (arg0, arg3, tmp131, tmp133) ; /* tmp350 = */ atspre_fprint_string (arg0, ATSstrcst("//\n}")) ; /* tmp351 = */ atspre_fprint_newline (arg0) ; /* tmp352 = */ auxcon3_28 (arg0, arg3, tmp131, tmp133) ; /* tmp353 = */ auxlpar3_29 (arg0, arg3, tmp131, tmp133) ; /* tmp354 = */ auxrpar3_30 (arg0, arg3, tmp131, tmp133) ; /* tmp359 = */ loop_37 (arg0, arg3, tmp131, tmp133, tmp134, 1) ; /* tmp130 = */ loop_38 (arg0, arg3, tmp131, tmp133, tmp134, 1) ; return /* (tmp130) */ ; } /* end of [aux_datype_d2cf_con_5] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 13757(line=836, offs=1) -- 14051(line=849, offs=2) */ ATSstaticdec() ats_void_type aux_datype_d2cf_conlst_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; // ATSlocal_void (tmp367) ; __ats_lab_aux_datype_d2cf_conlst_6: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: tmp365 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_0) ; tmp366 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_1) ; /* tmp367 = */ aux_datype_d2cf_con_5 (arg0, arg1, arg2, arg3, tmp365) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp366 ; goto __ats_lab_aux_datype_d2cf_conlst_6 ; // tail call break ; } while (0) ; return /* (tmp364) */ ; } /* end of [aux_datype_d2cf_conlst_6] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_fprint.dats: 14141(line=855, offs=3) -- 14530(line=877, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_fprint (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_fprint: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp368 = */ auxerr_nil_0 (arg0, arg1) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp369 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp370 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_datype (tmp369) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (tmp371 != (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp368 = */ auxerr_s2cst_1 (arg0, arg1) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (tmp371 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp372 = ats_caselptrlab_mac(anairiats_sum_1, tmp371, atslab_0) ; ATS_FREE(tmp371) ; /* tmp368 = */ aux_datype_3 (arg0, arg1, tmp372, tmp370) ; break ; } while (0) ; break ; } while (0) ; return /* (tmp368) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_fprint] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_fprint_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_codegen2_fprint_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_jsonize_synent2_dats.c0000644000175000017500000065452213431250607023706 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_16 ; typedef struct { ats_ptr_type atslab_d2sym_loc ; ats_ptr_type atslab_d2sym_qua ; ats_ptr_type atslab_d2sym_sym ; ats_ptr_type atslab_d2sym_pitmlst ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_19 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_21 ; typedef struct { ats_ptr_type atslab_l0ab_loc ; ats_ptr_type atslab_l0ab_lab ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_23 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_24 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_25 ; typedef struct { ats_ptr_type atslab_d2lab_loc ; ats_ptr_type atslab_d2lab_node ; ats_ptr_type atslab_d2lab_overld ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_gm2at_loc ; ats_ptr_type atslab_gm2at_exp ; ats_ptr_type atslab_gm2at_pat ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_c2lau_loc ; ats_ptr_type atslab_c2lau_pat ; ats_ptr_type atslab_c2lau_gua ; ats_int_type atslab_c2lau_seq ; ats_int_type atslab_c2lau_neg ; ats_ptr_type atslab_c2lau_body ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_29 ; typedef struct { ats_ptr_type atslab_i0de_loc ; ats_ptr_type atslab_i0de_sym ; } anairiats_rec_30 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_31 ; typedef struct { ats_ptr_type atslab_i2mpdec_loc ; ats_ptr_type atslab_i2mpdec_locid ; ats_ptr_type atslab_i2mpdec_cst ; ats_ptr_type atslab_i2mpdec_imparg ; ats_ptr_type atslab_i2mpdec_tmparg ; ats_ptr_type atslab_i2mpdec_tmpgua ; ats_ptr_type atslab_i2mpdec_def ; } anairiats_rec_32 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_33 ; typedef struct { anairiats_rec_33 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_34 ; typedef struct { ats_ptr_type atslab_f2undec_loc ; ats_ptr_type atslab_f2undec_var ; ats_ptr_type atslab_f2undec_def ; ats_ptr_type atslab_f2undec_ann ; } anairiats_rec_35 ; typedef struct { ats_ptr_type atslab_v2aldec_loc ; ats_ptr_type atslab_v2aldec_pat ; ats_ptr_type atslab_v2aldec_def ; ats_ptr_type atslab_v2aldec_ann ; } anairiats_rec_36 ; typedef struct { ats_ptr_type atslab_v2ardec_loc ; ats_int_type atslab_v2ardec_knd ; ats_ptr_type atslab_v2ardec_svar ; ats_ptr_type atslab_v2ardec_dvar ; ats_ptr_type atslab_v2ardec_pfat ; ats_ptr_type atslab_v2ardec_type ; ats_ptr_type atslab_v2ardec_init ; ats_ptr_type atslab_v2ardec_dvaropt ; } anairiats_rec_37 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_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_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_ext_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_mac_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_sta_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlist_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONlablist_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__JSONoption_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASpre_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASdef_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTtup_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTVar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTerr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt1_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKlincon_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Terrpat_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextfcall_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextmcall_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elet_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhere_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Exchng_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eerrexp_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacsts_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacons_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextype_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextvar_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextcode_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdatdecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cexndecs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdcstdecs_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cimpdec_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cfundecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvardecs_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaload_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isprint) (ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_double) (ats_ptr_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_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_intinf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_bool) (ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_filename) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_pair) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval4) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval6) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg4) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonvalist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_labjsonvalist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funclo) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_caskind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funkind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_valkind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_dcstkind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbolopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_filename) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_label) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sconlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_get_s2rt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_extdef) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2eclist_mapgen_all) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst_long) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cstlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var_long) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var_long) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2varlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con_long) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2conlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_tyreckind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2expopt) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_labs2explst) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_wths2explst) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2eff) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2zexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2explst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2expopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst_long) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cstlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var_long) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2itm) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2ecl) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s2rtbas) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i0nt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c0har) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f0loat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s0tring) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_pckind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2at) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2expopt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2explst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparglst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lab) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lablst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2lau) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2laulst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2at) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_dcstextdef) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i2mpdec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undeclst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldeclst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardeclst) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type jsonize_list_fun_02745_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_27 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_29 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_32 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_34 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_51 (ats_ptr_type arg0) ; static ats_ptr_type jsonize_option_fun_02746_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_58 (ats_ptr_type arg0) ; static ats_ptr_type auxmain_66 (ats_ptr_type arg0) ; static ats_ptr_type auxmain_73 (ats_ptr_type arg0) ; static ats_void_type loop_84 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 2459(line=111, offs=3) -- 2706(line=121, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s2rtbas (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s2rtbas: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp1) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp2) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym (tmp3) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp4) ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s2rtbas] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 2782(line=127, offs=3) -- 3450(line=161, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s2rtbas (tmp6) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2RTbas"), tmp7) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp9 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtlst (tmp8) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt (tmp9) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S2RTfun"), tmp10, tmp11) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtlst (tmp12) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2RTtup"), tmp13) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_get_s2rt (tmp14) ; arg0 = tmp15 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (((ats_sum_ptr_type)arg0)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("S2RTerr")) ; break ; } while (0) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab_loop_5: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp22 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp23 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp21, arg3) ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp24, atslab_0, tmp23) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp24 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp25 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp22 ; arg1 = arg1 ; arg2 = tmp25 ; arg3 = arg3 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp26 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp26 ; break ; } while (0) ; return /* (tmp20) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp27 ; */ /* tmp28 = */ loop_5 (arg0, arg1, (&tmp27), arg2) ; tmp19 = tmp27 ; return (tmp19) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp18 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp18) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 3528(line=167, offs=3) -- 3644(line=174, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtlst: tmp17 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt) ; tmp16 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp16)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp16, atslab_0, ats_castfn_mac(ats_ptr_type, tmp17)) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtlst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 3721(line=180, offs=3) -- 3834(line=187, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_int_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst: tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp (arg0) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp31) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("s2cst_stamp"), tmp30) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 3895(line=191, offs=3) -- 4732(line=240, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst_long (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst_long: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg0) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp34) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt (tmp36) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp (arg0) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp38) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_extdef (arg0) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp39 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none () ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp39 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_6, tmp39, atslab_0) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp41) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some (tmp42) ; break ; } while (0) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls (arg0) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2explst (tmp44) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (arg0) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp45 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none () ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp45 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_6, tmp45, atslab_0) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2conlst (tmp47) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some (tmp48) ; break ; } while (0) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval6 (ATSstrcst("s2cst_sym"), tmp33, ATSstrcst("s2cst_srt"), tmp35, ATSstrcst("s2cst_stamp"), tmp37, ATSstrcst("s2cst_extdef"), tmp40, ATSstrcst("s2cst_supcls"), tmp43, ATSstrcst("s2cst_dconlst"), tmp46) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst_long] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 11075(line=553, offs=17) -- 11240(line=565, offs=4) */ ATSstaticdec() ats_ptr_type jsonize_list_fun_02745_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab_jsonize_list_fun_02745_ats_ptr_type: tmp51 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, arg1) ; tmp50 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp50)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp50, atslab_0, ats_castfn_mac(ats_ptr_type, tmp51)) ; return (tmp50) ; } /* end of [jsonize_list_fun_02745_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 4815(line=246, offs=3) -- 4872(line=248, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cstlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cstlst: tmp49 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cstlst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 4962(line=255, offs=3) -- 5281(line=275, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtdat_long (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_int_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtdat_long: tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sym (arg0) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp54) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_stamp (arg0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp56) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdat_get_sconlst (arg0) ; tmp57 = jsonize_list_fun_02745_ats_ptr_type (tmp58, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst_long) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3 (ATSstrcst("s2rtdat_sym"), tmp53, ATSstrcst("s2rtdat_stamp"), tmp55, ATSstrcst("s2rtdat_sconlst"), tmp57) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtdat_long] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 5365(line=281, offs=3) -- 5480(line=288, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_int_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var: tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (arg0) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp61) ; tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("s2var_stamp"), tmp60) ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 5541(line=292, offs=3) -- 5794(line=305, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var_long (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var_long: tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg0) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp64) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt (tmp66) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (arg0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp68) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3 (ATSstrcst("s2var_sym"), tmp63, ATSstrcst("s2var_srt"), tmp65, ATSstrcst("s2var_stamp"), tmp67) ; return (tmp62) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var_long] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 5879(line=311, offs=3) -- 5996(line=318, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2varlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2varlst: tmp70 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var) ; tmp69 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp69)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp69, atslab_0, ats_castfn_mac(ats_ptr_type, tmp70)) ; return (tmp69) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2varlst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 6074(line=324, offs=3) -- 6266(line=333, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp (arg0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp73) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (arg0) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2zexp (tmp75) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("s2Var_stamp"), tmp72, ATSstrcst("s2Var_szexp"), tmp74) ; return (tmp71) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 6323(line=336, offs=20) -- 6349(line=336, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var_long (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var_long: tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var (arg0) ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var_long] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 6401(line=342, offs=3) -- 6516(line=349, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_int_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con: tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_stamp (arg0) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp79) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("d2con_stamp"), tmp78) ; return (tmp77) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 6577(line=353, offs=3) -- 6844(line=371, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con_long (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_int_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con_long: tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_sym (arg0) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp82) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type (arg0) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp (tmp84) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_stamp (arg0) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp86) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3 (ATSstrcst("d2con_sym"), tmp81, ATSstrcst("d2con_type"), tmp83, ATSstrcst("d2con_stamp"), tmp85) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con_long] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 6929(line=377, offs=3) -- 6986(line=379, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2conlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2conlst: tmp87 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con) ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2conlst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 7073(line=386, offs=3) -- 7462(line=400, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_tyreckind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_int_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_tyreckind: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("TYRECKINDbox")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("TYRECKINDbox_lin")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("TYRECKINDflt0")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp89 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp89) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("TYRECKINDflt1"), tmp90) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (((ats_sum_ptr_type)arg0)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp91) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("TYRECKINDflt_ext"), tmp92) ; break ; } while (0) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_tyreckind] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 7545(line=406, offs=3) -- 7585(line=406, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (0, arg0) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 7613(line=409, offs=3) -- 7653(line=409, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp: tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (1, arg0) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 7711(line=415, offs=3) -- 7756(line=415, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2explst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2explst: tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (0, arg0) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 7787(line=418, offs=3) -- 7832(line=418, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2explst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2explst: tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (1, arg0) ; return (tmp96) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 7890(line=424, offs=3) -- 7933(line=424, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2expopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2expopt: tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2expopt (0, arg0) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2expopt] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 7964(line=427, offs=3) -- 8007(line=427, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2expopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2expopt: tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2expopt (1, arg0) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2expopt] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 8085(line=435, offs=5) -- 12025(line=594, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_27 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_int_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_int_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_int_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_int_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab_auxmain_27: tmp102 = atspre_eq_int_int (arg0, 0) ; if (tmp102) { tmp101 = arg1 ; } else { tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg1) ; } /* end of [if] */ tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp101), atslab_s2exp_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp103)->tag != 0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_7, tmp103, atslab_0) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp104) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Eint"), tmp105) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp103)->tag != 1) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_2, tmp103, atslab_0) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_intinf (tmp106) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Eintinf"), tmp107) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp103)->tag != 4) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_2, tmp103, atslab_0) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst (tmp108) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Ecst"), tmp109) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp103)->tag != 2) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_2, tmp103, atslab_0) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp110) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Efloat"), tmp111) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp103)->tag != 5) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp112) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Eextype"), tmp113) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp103)->tag != 6) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp114) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Eextkind"), tmp115) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp103)->tag != 7) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_2, tmp103, atslab_0) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var (tmp116) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Evar"), tmp117) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp103)->tag != 8) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_2, tmp103, atslab_0) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var (tmp118) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2EVar"), tmp119) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp103)->tag != 12) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; tmp121 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_1) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp120) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp121) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S2Eat"), tmp122, tmp123) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp103)->tag != 13) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_2, tmp103, atslab_0) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp124) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Esizeof"), tmp125) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp103)->tag != 15) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_1) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp126) ; tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp127) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S2Eeqeq"), tmp128, tmp129) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp103)->tag != 17) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_1) ; tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp130) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (arg0, tmp131) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S2Eapp"), tmp132, tmp133) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp103)->tag != 19) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_9, tmp103, atslab_3) ; tmp135 = ats_caselptrlab_mac(anairiats_sum_9, tmp103, atslab_4) ; tmp136 = ats_caselptrlab_mac(anairiats_sum_9, tmp103, atslab_5) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp134) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (arg0, tmp135) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp136) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("S2Efun"), tmp137, tmp138, tmp139) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp103)->tag != 21) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; tmp141 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_1) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (arg0, tmp140) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (arg0, tmp141) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S2Emetdec"), tmp142, tmp143) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp103)->tag != 22) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_3, tmp103, atslab_0) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_3, tmp103, atslab_1) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp144) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp145) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S2Etop"), tmp146, tmp147) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp103)->tag != 23) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_2, tmp103, atslab_0) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp148) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Ewithout"), tmp149) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp103)->tag != 24) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp150 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; tmp151 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_1) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp150) ; tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (arg0, tmp151) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S2Etyarr"), tmp152, tmp153) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp103)->tag != 25) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_10, tmp103, atslab_0) ; tmp155 = ats_caselptrlab_mac(anairiats_sum_10, tmp103, atslab_1) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_10, tmp103, atslab_2) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_tyreckind (tmp154) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp155) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_labs2explst (arg0, tmp156) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("S2Etyrec"), tmp157, tmp158, tmp159) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp103)->tag != 26) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_2, tmp103, atslab_0) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp160) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Einvar"), tmp161) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp103)->tag != 27) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp162 = ats_caselptrlab_mac(anairiats_sum_11, tmp103, atslab_0) ; tmp163 = ats_caselptrlab_mac(anairiats_sum_11, tmp103, atslab_1) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_11, tmp103, atslab_2) ; tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2varlst (tmp162) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (arg0, tmp163) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp164) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("S2Eexi"), tmp165, tmp166, tmp167) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp103)->tag != 28) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_11, tmp103, atslab_0) ; tmp169 = ats_caselptrlab_mac(anairiats_sum_11, tmp103, atslab_1) ; tmp170 = ats_caselptrlab_mac(anairiats_sum_11, tmp103, atslab_2) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2varlst (tmp168) ; tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (arg0, tmp169) ; tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp170) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("S2Euni"), tmp171, tmp172, tmp173) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp103)->tag != 29) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_3, tmp103, atslab_0) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_3, tmp103, atslab_1) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp174) ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp175) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S2Erefarg"), tmp176, tmp177) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp103)->tag != 30) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_2, tmp103, atslab_0) ; tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp178) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2Evararg"), tmp179) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp103)->tag != 31) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_1) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp180) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_wths2explst (arg0, tmp181) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S2Ewthtype"), tmp182, tmp183) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp103)->tag != 32) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("S2Eerrexp")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("S2Eignored")) ; break ; } while (0) ; return (tmp100) ; } /* end of [auxmain_27] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 8059(line=433, offs=3) -- 12205(line=603, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp: tmp184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_s2exp_srt) ; tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rt (tmp184) ; tmp186 = auxmain_27 (arg0, arg1) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("s2exp_srt"), tmp185, ATSstrcst("s2exp_node"), tmp186) ; return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 12309(line=611, offs=5) -- 12611(line=626, offs=37) */ ATSstaticdec() ats_ptr_type auxlst_29 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; __ats_lab_auxlst_29: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp189 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp189) ; tmp192 = auxlst_29 (arg0, tmp190) ; tmp188 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp188, atslab_0, tmp191) ; ats_selptrset_mac(anairiats_sum_5, tmp188, atslab_1, tmp192) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp188 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp188) ; } /* end of [auxlst_29] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 12283(line=609, offs=3) -- 12654(line=630, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst: tmp193 = auxlst_29 (arg0, arg1) ; tmp187 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp187)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp187, atslab_0, tmp193) ; return (tmp187) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 12735(line=636, offs=3) -- 12874(line=643, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2expopt (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2expopt: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp195 = (ats_sum_ptr_type)0 ; tmp194 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp194)->tag = 10 ; ats_selptrset_mac(anairiats_sum_2, tmp194, atslab_0, tmp195) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp196 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp196) ; tmp197 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp197, atslab_0, tmp198) ; tmp194 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp194)->tag = 10 ; ats_selptrset_mac(anairiats_sum_2, tmp194, atslab_0, tmp197) ; break ; } while (0) ; return (tmp194) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2expopt] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 12985(line=651, offs=5) -- 13536(line=673, offs=36) */ ATSstaticdec() ats_ptr_type auxlst_32 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; __ats_lab_auxlst_32: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_49_1: tmp201 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp202 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; // tmp203 = ats_caselptrlab_mac(anairiats_sum_12, tmp201, atslab_0) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_12, tmp201, atslab_1) ; tmp205 = ats_caselptrlab_mac(anairiats_sum_12, tmp201, atslab_2) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_label (tmp203) ; do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (tmp204 != (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none () ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: // if (tmp204 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_51_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_6, tmp204, atslab_0) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp208) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some (tmp209) ; break ; } while (0) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp205) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("SL0ABELED"), tmp206, tmp207, tmp210) ; tmp212 = auxlst_32 (arg0, tmp202) ; tmp200 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp200, atslab_0, tmp211) ; ats_selptrset_mac(anairiats_sum_5, tmp200, atslab_1, tmp212) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp200 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp200) ; } /* end of [auxlst_32] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 12958(line=649, offs=3) -- 13580(line=677, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_labs2explst (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp213) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_labs2explst: tmp213 = auxlst_32 (arg0, arg1) ; tmp199 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp199)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp199, atslab_0, tmp213) ; return (tmp199) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_labs2explst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 13720(line=689, offs=1) -- 14476(line=718, offs=6) */ ATSstaticdec() ats_ptr_type auxlst_34 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_int_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_int_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; __ats_lab_auxlst_34: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("WTHS2EXPLSTnil")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp217 = auxlst_34 (arg0, tmp216) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("WTHS2EXPLSTcons_none"), tmp217) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp219 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_1) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_2) ; tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp218) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp219) ; tmp223 = auxlst_34 (arg0, tmp220) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("WTHS2EXPLSTcons_invar"), tmp221, tmp222, tmp223) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (((ats_sum_ptr_type)arg1)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_1) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_2) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp224) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2exp (arg0, tmp225) ; tmp229 = auxlst_34 (arg0, tmp226) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("WTHS2EXPLSTcons_trans"), tmp227, tmp228, tmp229) ; break ; } while (0) ; return (tmp215) ; } /* end of [auxlst_34] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 13665(line=683, offs=1) -- 14515(line=720, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_wths2explst (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp214) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_wths2explst: tmp214 = auxlst_34 (arg0, arg1) ; return (tmp214) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_wths2explst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 14597(line=725, offs=15) -- 14627(line=725, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2eff (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp230) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2eff: tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (arg0) ; return (tmp230) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2eff] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 14678(line=731, offs=3) -- 14936(line=745, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2zexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2zexp: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)arg0)->tag != 11) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("S2ZEbot")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp232 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var (tmp232) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S2ZEvar"), tmp233) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: __ats_lab_59_1: tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("S2ZEignored")) ; break ; } while (0) ; return (tmp231) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2zexp] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 16559(line=838, offs=3) -- 16657(line=845, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i0nt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i0nt: tmp235 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp235)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 16578(line=840, offs=5) -- 16624(line=841, offs=36)") ; } tmp236 = ats_caselptrlab_mac(anairiats_sum_15, tmp235, atslab_1) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp236) ; return (tmp234) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 16710(line=849, offs=3) -- 16801(line=855, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c0har (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_char_type, tmp239) ; ATSlocal (ats_int_type, tmp240) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c0har: tmp238 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp238)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 16729(line=851, offs=5) -- 16760(line=851, offs=36)") ; } tmp239 = ats_caselptrlab_mac(anairiats_sum_16, tmp238, atslab_0) ; tmp240 = atspre_int_of_char (tmp239) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp240) ; return (tmp237) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c0har] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 16859(line=859, offs=3) -- 16959(line=866, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f0loat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f0loat: tmp242 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp242)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 16878(line=861, offs=5) -- 16926(line=862, offs=36)") ; } tmp243 = ats_caselptrlab_mac(anairiats_sum_15, tmp242, atslab_1) ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp243) ; return (tmp241) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 17016(line=870, offs=3) -- 17103(line=876, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s0tring (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s0tring: tmp245 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp245)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 17035(line=872, offs=5) -- 17070(line=872, offs=40)") ; } tmp246 = ats_caselptrlab_mac(anairiats_sum_2, tmp245, atslab_0) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp246) ; return (tmp244) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 17248(line=887, offs=3) -- 17723(line=906, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_dcstextdef (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_int_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_dcstextdef: do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp248 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp248) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("DCSTEXTDEFnone"), tmp249) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp250 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp250) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("DCSTEXTDEFsome_ext"), tmp251) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp252 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp252) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("DCSTEXTDEFsome_mac"), tmp253) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: // if (((ats_sum_ptr_type)arg0)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_63_1: tmp254 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp254) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("DCSTEXTDEFsome_sta"), tmp255) ; break ; } while (0) ; return (tmp247) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_dcstextdef] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 17805(line=912, offs=3) -- 17925(line=921, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_int_type, tmp258) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst: tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp (arg0) ; tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp258) ; tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("d2cst_stamp"), tmp257) ; return (tmp256) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 18061(line=929, offs=3) -- 18420(line=953, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst_long (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_int_type, tmp267) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst_long: tmp261 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_sym (arg0) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp261) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg0) ; tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp (tmp263) ; tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_extdef (arg0) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_dcstextdef (tmp265) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_stamp (arg0) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp267) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval4 (ATSstrcst("d2cst_sym"), tmp260, ATSstrcst("d2cst_type"), tmp262, ATSstrcst("d2cst_extdef"), tmp264, ATSstrcst("d2cst_stamp"), tmp266) ; return (tmp259) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst_long] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 18503(line=959, offs=3) -- 18560(line=961, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cstlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cstlst: tmp268 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst) ; return (tmp268) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cstlst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 18643(line=968, offs=3) -- 18760(line=975, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_int_type, tmp271) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var: tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg0) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp271) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("d2var_stamp"), tmp270) ; return (tmp269) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 18840(line=981, offs=3) -- 19032(line=995, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var_long (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_int_type, tmp276) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var_long: tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg0) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp274) ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg0) ; tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_stamp (tmp276) ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("d2var_sym"), tmp273, ATSstrcst("d2var_stamp"), tmp275) ; return (tmp272) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var_long] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 19112(line=1001, offs=3) -- 19658(line=1031, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2itm (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2itm: do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp278 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst (tmp278) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2ITMcst"), tmp279) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp280 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp280) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2ITMvar"), tmp281) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp282 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp283 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2conlst (tmp282) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2ITMcon"), tmp283) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: __ats_lab_67_1: tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("D2ITMignored")) ; break ; } while (0) ; return (tmp277) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2itm] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 19733(line=1037, offs=3) -- 19837(line=1044, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2sym: tmp286 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_d2sym_sym) ; tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp286) ; tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("d2sym_sym"), tmp285) ; return (tmp284) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2sym] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 20388(line=1068, offs=16) -- 20590(line=1074, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_pckind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_pckind: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("PCKcon")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("PCKlincon")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("PCKfree")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (((ats_sum_ptr_type)arg0)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (ATSstrcst("PCKunfold")) ; break ; } while (0) ; return (tmp287) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_pckind] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 20690(line=1083, offs=5) -- 22780(line=1170, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_51 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_int_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_int_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_bool_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_char_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_int_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_int_type, tmp329) ; ATSlocal (ats_int_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; __ats_lab_auxmain_51: tmp290 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_p2at_node) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp290)->tag != 0) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("P2Tany")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp290)->tag != 1) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp291 = ats_caselptrlab_mac(anairiats_sum_2, tmp290, atslab_0) ; tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp291) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Tvar"), tmp292) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp290)->tag != 2) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp293 = ats_caselptrlab_mac(anairiats_sum_19, tmp290, atslab_0) ; tmp294 = ats_caselptrlab_mac(anairiats_sum_19, tmp290, atslab_1) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_19, tmp290, atslab_2) ; tmp296 = ats_caselptrlab_mac(anairiats_sum_19, tmp290, atslab_3) ; tmp297 = ats_caselptrlab_mac(anairiats_sum_19, tmp290, atslab_4) ; tmp298 = ats_caselptrlab_mac(anairiats_sum_19, tmp290, atslab_5) ; tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_pckind (tmp293) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con (tmp294) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp295) ; tmp302 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp296) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp297) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atlst (tmp298) ; tmp311 = (ats_sum_ptr_type)0 ; tmp310 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp310, atslab_0, tmp304) ; ats_selptrset_mac(anairiats_sum_5, tmp310, atslab_1, tmp311) ; tmp309 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp309, atslab_0, tmp303) ; ats_selptrset_mac(anairiats_sum_5, tmp309, atslab_1, tmp310) ; tmp308 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp308, atslab_0, tmp302) ; ats_selptrset_mac(anairiats_sum_5, tmp308, atslab_1, tmp309) ; tmp307 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp307, atslab_0, tmp301) ; ats_selptrset_mac(anairiats_sum_5, tmp307, atslab_1, tmp308) ; tmp306 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp306, atslab_0, tmp300) ; ats_selptrset_mac(anairiats_sum_5, tmp306, atslab_1, tmp307) ; tmp305 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp305, atslab_0, tmp299) ; ats_selptrset_mac(anairiats_sum_5, tmp305, atslab_1, tmp306) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst (ATSstrcst("P2Tcon"), tmp305) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp290)->tag != 3) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp312 = ats_caselptrlab_mac(anairiats_sum_7, tmp290, atslab_0) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp312) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Tint"), tmp313) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp290)->tag != 4) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_2, tmp290, atslab_0) ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp314) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Tintrep"), tmp315) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp290)->tag != 5) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp316 = ats_caselptrlab_mac(anairiats_sum_20, tmp290, atslab_0) ; tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_bool (tmp316) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Tbool"), tmp317) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp290)->tag != 6) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp318 = ats_caselptrlab_mac(anairiats_sum_16, tmp290, atslab_0) ; tmp320 = atspre_int_of_char (tmp318) ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp320) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Tchar"), tmp319) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp290)->tag != 7) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp321 = ats_caselptrlab_mac(anairiats_sum_2, tmp290, atslab_0) ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp321) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Tfloat"), tmp322) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp290)->tag != 8) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp323 = ats_caselptrlab_mac(anairiats_sum_2, tmp290, atslab_0) ; tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp323) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Tstring"), tmp324) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp290)->tag != 9) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp325 = ats_caselptrlab_mac(anairiats_sum_2, tmp290, atslab_0) ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i0nt (tmp325) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Ti0nt"), tmp326) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp290)->tag != 10) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp327 = ats_caselptrlab_mac(anairiats_sum_2, tmp290, atslab_0) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f0loat (tmp327) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Tf0loat"), tmp328) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp290)->tag != 11) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("P2Tempty")) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp290)->tag != 13) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp329 = ats_caselptrlab_mac(anairiats_sum_21, tmp290, atslab_0) ; tmp330 = ats_caselptrlab_mac(anairiats_sum_21, tmp290, atslab_1) ; tmp331 = ats_caselptrlab_mac(anairiats_sum_21, tmp290, atslab_2) ; tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp329) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp330) ; tmp334 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2atlst (tmp331) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("P2Trec"), tmp332, tmp333, tmp334) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp290)->tag != 14) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp335 = ats_caselptrlab_mac(anairiats_sum_4, tmp290, atslab_0) ; tmp336 = ats_caselptrlab_mac(anairiats_sum_4, tmp290, atslab_1) ; tmp337 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp335) ; tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at (tmp336) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("P2Trefas"), tmp337, tmp338) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp290)->tag != 16) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_2, tmp290, atslab_0) ; tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp339) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("P2Tvbox"), tmp340) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp290)->tag != 17) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp341 = ats_caselptrlab_mac(anairiats_sum_4, tmp290, atslab_0) ; tmp342 = ats_caselptrlab_mac(anairiats_sum_4, tmp290, atslab_1) ; tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at (tmp341) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp (tmp342) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("P2Tann"), tmp343, tmp344) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp290)->tag != 19) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("P2Terrpat")) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: __ats_lab_89_1: tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("P2Tignored")) ; break ; } while (0) ; return (tmp289) ; } /* end of [auxmain_51] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 20670(line=1081, offs=3) -- 22950(line=1178, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at: tmp345 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_p2at_loc) ; tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp345) ; tmp347 = auxmain_51 (arg0) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("p2at_loc"), tmp346, ATSstrcst("p2at_node"), tmp347) ; return (tmp288) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 23026(line=1184, offs=3) -- 23081(line=1186, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp348) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atlst: tmp348 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at) ; return (tmp348) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atlst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 11331(line=571, offs=19) -- 11485(line=583, offs=4) */ ATSstaticdec() ats_ptr_type jsonize_option_fun_02746_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; __ats_lab_jsonize_option_fun_02746_ats_ptr_type: do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none () ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: tmp351 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp352 = ((ats_ptr_type(*)(ats_ptr_type))arg1) (tmp351) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some (tmp352) ; break ; } while (0) ; return (tmp350) ; } /* end of [jsonize_option_fun_02746_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 23141(line=1191, offs=3) -- 23202(line=1193, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp349) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atopt: tmp349 = jsonize_option_fun_02746_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at) ; return (tmp349) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atopt] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 23281(line=1199, offs=17) -- 23691(line=1218, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2at (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2at: do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp354 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp355 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp357 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp354), atslab_l0ab_lab) ; tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_label (tmp357) ; tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at (tmp355) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_pair (tmp356, tmp358) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("LABP2ATnorm"), tmp359) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp360 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp360) ; tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing (tmp361) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("LABP2ATomit"), tmp362) ; break ; } while (0) ; return (tmp353) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2at] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 23773(line=1224, offs=3) -- 23836(line=1226, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2atlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp363) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2atlst: tmp363 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2at) ; return (tmp363) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labp2atlst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 23936(line=1234, offs=5) -- 30103(line=1482, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_58 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_int_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_int_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_int_type, tmp437) ; ATSlocal (ats_int_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_int_type, tmp443) ; ATSlocal (ats_int_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; ATSlocal (ats_int_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; // ATSlocal_void (tmp497) ; // ATSlocal_void (tmp498) ; // ATSlocal_void (tmp499) ; __ats_lab_auxmain_58: tmp366 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp366)->tag != 0) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp367 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst (tmp367) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Ecst"), tmp368) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp366)->tag != 1) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp369 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp369) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Evar"), tmp370) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp366)->tag != 2) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp371 = ats_caselptrlab_mac(anairiats_sum_7, tmp366, atslab_0) ; tmp372 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp371) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Eint"), tmp372) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp366)->tag != 3) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp373 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp373) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Eintrep"), tmp374) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp366)->tag != 8) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp375 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i0nt (tmp375) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Ei0nt"), tmp376) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp366)->tag != 9) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp377 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp378 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c0har (tmp377) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Ec0har"), tmp378) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp366)->tag != 10) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp379 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp380 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f0loat (tmp379) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Ef0loat"), tmp380) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp366)->tag != 11) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp381 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp382 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_s0tring (tmp381) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Es0tring"), tmp382) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp366)->tag != 22) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp383 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp384 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2sym (tmp383) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Esym"), tmp384) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp366)->tag != 14) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("D2Eempty")) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp366)->tag != 18) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp385 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp386 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp (tmp385) ; tmp388 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp386) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Eextval"), tmp387, tmp388) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp366)->tag != 19) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp389 = ats_caselptrlab_mac(anairiats_sum_11, tmp366, atslab_0) ; tmp390 = ats_caselptrlab_mac(anairiats_sum_11, tmp366, atslab_1) ; tmp391 = ats_caselptrlab_mac(anairiats_sum_11, tmp366, atslab_2) ; tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp (tmp389) ; tmp393 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp390) ; tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst (tmp391) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("D2Eextfcall"), tmp392, tmp393, tmp394) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp366)->tag != 20) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp395 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_0) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_1) ; tmp397 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_2) ; tmp398 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_3) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp (tmp395) ; tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp396) ; tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp397) ; tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst (tmp398) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg4 (ATSstrcst("D2Eextmcall"), tmp399, tmp400, tmp401, tmp402) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp366)->tag != 26) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp403 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp404 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist (tmp403) ; tmp406 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp404) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Elet"), tmp405, tmp406) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp366)->tag != 27) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp407 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp408 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist (tmp408) ; tmp410 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp407) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Ewhere"), tmp410, tmp409) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp366)->tag != 28) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp411 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp412 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp413 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp411) ; tmp414 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparglst (tmp412) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Eapplst"), tmp413, tmp414) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp366)->tag != 29) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp415 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_0) ; tmp416 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_1) ; tmp417 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_2) ; tmp418 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_3) ; tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp415) ; tmp420 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp416) ; tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp417) ; tmp422 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2expopt (tmp418) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg4 (ATSstrcst("D2Eifhead"), tmp419, tmp420, tmp421, tmp422) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp366)->tag != 32) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp423 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_0) ; tmp424 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_1) ; tmp425 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_2) ; tmp426 = ats_caselptrlab_mac(anairiats_sum_24, tmp366, atslab_3) ; tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_caskind (tmp423) ; tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp424) ; tmp429 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst (tmp425) ; tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2laulst (tmp426) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg4 (ATSstrcst("D2Ecasehead"), tmp427, tmp428, tmp429, tmp430) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp366)->tag != 34) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp431 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp432 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp431) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Esing"), tmp432) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp366)->tag != 35) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp433 = ats_caselptrlab_mac(anairiats_sum_3, tmp366, atslab_0) ; tmp434 = ats_caselptrlab_mac(anairiats_sum_3, tmp366, atslab_1) ; tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp433) ; tmp436 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst (tmp434) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Elist"), tmp435, tmp436) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp366)->tag != 37) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp437 = ats_caselptrlab_mac(anairiats_sum_21, tmp366, atslab_0) ; tmp438 = ats_caselptrlab_mac(anairiats_sum_21, tmp366, atslab_1) ; tmp439 = ats_caselptrlab_mac(anairiats_sum_21, tmp366, atslab_2) ; tmp440 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp437) ; tmp441 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp438) ; tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst (tmp439) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("D2Etup"), tmp440, tmp441, tmp442) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp366)->tag != 38) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp443 = ats_caselptrlab_mac(anairiats_sum_21, tmp366, atslab_0) ; tmp444 = ats_caselptrlab_mac(anairiats_sum_21, tmp366, atslab_1) ; tmp445 = ats_caselptrlab_mac(anairiats_sum_21, tmp366, atslab_2) ; tmp446 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp443) ; tmp447 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp444) ; tmp448 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2explst (tmp445) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("D2Erec"), tmp446, tmp447, tmp448) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp366)->tag != 39) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_2, tmp366, atslab_0) ; tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst (tmp449) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Eseq"), tmp450) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp366)->tag != 40) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp451 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp452 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp453 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp451) ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lablst (tmp452) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Eselab"), tmp453, tmp454) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp366)->tag != 43) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp455 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp456 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp457 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2sym (tmp455) ; tmp458 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp456) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Ederef"), tmp457, tmp458) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp366)->tag != 44) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp459 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp460 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp461 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp459) ; tmp462 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp460) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Eassgn"), tmp461, tmp462) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp366)->tag != 45) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp463 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp464 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp463) ; tmp466 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp464) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Exchng"), tmp465, tmp466) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp366)->tag != 56) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp467 = ats_caselptrlab_mac(anairiats_sum_25, tmp366, atslab_0) ; tmp468 = ats_caselptrlab_mac(anairiats_sum_25, tmp366, atslab_1) ; tmp469 = ats_caselptrlab_mac(anairiats_sum_25, tmp366, atslab_2) ; tmp470 = ats_caselptrlab_mac(anairiats_sum_25, tmp366, atslab_3) ; tmp471 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp467) ; tmp472 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp468) ; tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atlst (tmp469) ; tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp470) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg4 (ATSstrcst("D2Elam_dyn"), tmp471, tmp472, tmp473, tmp474) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp366)->tag != 59) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp475 = ats_caselptrlab_mac(anairiats_sum_11, tmp366, atslab_1) ; tmp476 = ats_caselptrlab_mac(anairiats_sum_11, tmp366, atslab_2) ; tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2explst (tmp475) ; tmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp476) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Elam_met"), tmp477, tmp478) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp366)->tag != 58) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp479 = ats_caselptrlab_mac(anairiats_sum_11, tmp366, atslab_0) ; tmp480 = ats_caselptrlab_mac(anairiats_sum_11, tmp366, atslab_1) ; tmp481 = ats_caselptrlab_mac(anairiats_sum_11, tmp366, atslab_2) ; tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2varlst (tmp479) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2explst (tmp480) ; tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp481) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("D2Elam_sta"), tmp482, tmp483, tmp484) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp366)->tag != 67) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp485 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp486 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp487 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp485) ; tmp488 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp (tmp486) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Eann_type"), tmp487, tmp488) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp366)->tag != 68) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp489 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp490 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp491 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp489) ; tmp492 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2eff (tmp490) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Eann_seff"), tmp491, tmp492) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp366)->tag != 69) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp493 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_0) ; tmp494 = ats_caselptrlab_mac(anairiats_sum_4, tmp366, atslab_1) ; tmp495 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp493) ; tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funclo (tmp494) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Eann_funclo"), tmp495, tmp496) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp366)->tag != 75) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("D2Eerrexp")) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: __ats_lab_128_1: /* tmp497 = */ atspre_prerr_string (ATSstrcst("warning(ATS): [jsonize_d2exp]: ignored: ")) ; /* tmp498 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp (arg0) ; /* tmp499 = */ atspre_prerr_newline () ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("D2Eignored")) ; break ; } while (0) ; return (tmp365) ; } /* end of [auxmain_58] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 23916(line=1232, offs=15) -- 30276(line=1490, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp: tmp500 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_d2exp_loc) ; tmp501 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp500) ; tmp502 = auxmain_58 (arg0) ; tmp364 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("d2exp_loc"), tmp501, ATSstrcst("d2exp_node"), tmp502) ; return (tmp364) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 30356(line=1496, offs=3) -- 30413(line=1498, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp503) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst: tmp503 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp) ; return (tmp503) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 30494(line=1504, offs=18) -- 30611(line=1511, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2expopt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2expopt: do { /* branch: __ats_lab_129 */ __ats_lab_129_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp504 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none () ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_130_1: tmp505 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp506 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp505) ; tmp504 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some (tmp506) ; break ; } while (0) ; return (tmp504) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2expopt] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 30692(line=1517, offs=3) -- 30863(line=1523, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2exp: // tmp508 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp509 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp511 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp508), atslab_l0ab_lab) ; tmp510 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_label (tmp511) ; tmp512 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp509) ; tmp507 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("DL0ABELED"), tmp510, tmp512) ; return (tmp507) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2exp] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 30947(line=1529, offs=3) -- 31012(line=1531, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2explst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp513) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2explst: tmp513 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2exp) ; return (tmp513) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_labd2explst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 31098(line=1538, offs=3) -- 31601(line=1560, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparg (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_int_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_ptr_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparg: do { /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp516 = (ats_sum_ptr_type)0 ; tmp515 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp515)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp515, atslab_0, tmp516) ; tmp514 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("D2EXPARGsta"), tmp515) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_132_1: tmp517 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ; tmp518 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_1) ; tmp519 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_2) ; tmp520 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp517) ; tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp518) ; tmp522 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst (tmp519) ; tmp527 = (ats_sum_ptr_type)0 ; tmp526 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp526, atslab_0, tmp522) ; ats_selptrset_mac(anairiats_sum_5, tmp526, atslab_1, tmp527) ; tmp525 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp525, atslab_0, tmp521) ; ats_selptrset_mac(anairiats_sum_5, tmp525, atslab_1, tmp526) ; tmp524 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp524, atslab_0, tmp520) ; ats_selptrset_mac(anairiats_sum_5, tmp524, atslab_1, tmp525) ; tmp523 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp523)->tag = 8 ; ats_selptrset_mac(anairiats_sum_2, tmp523, atslab_0, tmp524) ; tmp514 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("D2EXPARGdyn"), tmp523) ; break ; } while (0) ; return (tmp514) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparg] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 31687(line=1566, offs=3) -- 31750(line=1568, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparglst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp528) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparglst: tmp528 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparg) ; return (tmp528) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exparglst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 31853(line=1577, offs=5) -- 32226(line=1596, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_66 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; __ats_lab_auxmain_66: tmp531 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_d2lab_node) ; do { /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp531)->tag != 0) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp532 = ats_caselptrlab_mac(anairiats_sum_2, tmp531, atslab_0) ; tmp533 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_label (tmp532) ; tmp534 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing (tmp533) ; tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("D2LABlab"), tmp534) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: // if (((ats_sum_ptr_type)tmp531)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_134_1: tmp535 = ats_caselptrlab_mac(anairiats_sum_2, tmp531, atslab_0) ; tmp536 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2explst (tmp535) ; tmp537 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing (tmp536) ; tmp530 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1 (ATSstrcst("D2LABind"), tmp537) ; break ; } while (0) ; return (tmp530) ; } /* end of [auxmain_66] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 31833(line=1575, offs=3) -- 32399(line=1604, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lab (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lab: tmp538 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_d2lab_loc) ; tmp539 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp538) ; tmp540 = auxmain_66 (arg0) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("d2lab_loc"), tmp539, ATSstrcst("d2lab_node"), tmp540) ; return (tmp529) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lab] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 32477(line=1610, offs=3) -- 32534(line=1612, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lablst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp541) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lablst: tmp541 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lab) ; return (tmp541) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2lablst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 32614(line=1619, offs=3) -- 32843(line=1632, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2at (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2at: tmp544 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_gm2at_loc) ; tmp543 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp544) ; tmp546 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_gm2at_exp) ; tmp545 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp546) ; tmp548 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_gm2at_pat) ; tmp547 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atopt (tmp548) ; tmp542 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3 (ATSstrcst("gm2at_loc"), tmp543, ATSstrcst("gm2at_exp"), tmp545, ATSstrcst("gm2at_pat"), tmp547) ; return (tmp542) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2at] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 32900(line=1636, offs=3) -- 32959(line=1638, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2atlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp549) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2atlst: tmp549 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2at) ; return (tmp549) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2atlst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 33039(line=1645, offs=3) -- 33484(line=1666, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2lau (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_int_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_int_type, tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2lau: tmp552 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_c2lau_loc) ; tmp551 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp552) ; tmp554 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_c2lau_pat) ; tmp553 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2atlst (tmp554) ; tmp556 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_c2lau_gua) ; tmp555 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_gm2atlst (tmp556) ; tmp558 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_c2lau_seq) ; tmp557 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp558) ; tmp560 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_c2lau_neg) ; tmp559 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp560) ; tmp562 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_c2lau_body) ; tmp561 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp562) ; tmp550 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval6 (ATSstrcst("c2lau_loc"), tmp551, ATSstrcst("c2lau_pat"), tmp553, ATSstrcst("c2lau_gua"), tmp555, ATSstrcst("c2lau_seq"), tmp557, ATSstrcst("c2lau_neg"), tmp559, ATSstrcst("c2lau_body"), tmp561) ; return (tmp550) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2lau] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 33562(line=1672, offs=3) -- 33619(line=1674, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2laulst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp563) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2laulst: tmp563 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2lau) ; return (tmp563) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_c2laulst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 33779(line=1690, offs=1) -- 37335(line=1842, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_73 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_int_type, tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_int_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_ptr_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; ATSlocal (ats_int_type, tmp590) ; ATSlocal (ats_int_type, tmp591) ; ATSlocal (ats_ptr_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; ATSlocal (ats_ptr_type, tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; ATSlocal (ats_int_type, tmp596) ; ATSlocal (ats_ptr_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_int_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; ATSlocal (ats_ptr_type, tmp604) ; ATSlocal (ats_ptr_type, tmp605) ; ATSlocal (ats_ptr_type, tmp606) ; ATSlocal (ats_ptr_type, tmp607) ; ATSlocal (ats_int_type, tmp608) ; ATSlocal (ats_ptr_type, tmp609) ; ATSlocal (ats_ptr_type, tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; ATSlocal (ats_ptr_type, tmp613) ; ATSlocal (ats_ptr_type, tmp614) ; ATSlocal (ats_ptr_type, tmp615) ; ATSlocal (ats_ptr_type, tmp616) ; ATSlocal (ats_ptr_type, tmp617) ; ATSlocal (ats_ptr_type, tmp618) ; ATSlocal (ats_ptr_type, tmp619) ; ATSlocal (ats_ptr_type, tmp620) ; ATSlocal (ats_ptr_type, tmp621) ; ATSlocal (ats_ptr_type, tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_int_type, tmp624) ; ATSlocal (ats_ptr_type, tmp625) ; ATSlocal (ats_ptr_type, tmp626) ; ATSlocal (ats_ptr_type, tmp627) ; ATSlocal (ats_ptr_type, tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp630) ; ATSlocal (ats_ptr_type, tmp631) ; ATSlocal (ats_ptr_type, tmp632) ; ATSlocal (ats_ptr_type, tmp633) ; ATSlocal (ats_ptr_type, tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; __ats_lab_auxmain_73: tmp566 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, arg0), atslab_d2ecl_node) ; do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp566)->tag != 0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("D2Cnone")) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp566)->tag != 1) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp567 = ats_caselptrlab_mac(anairiats_sum_2, tmp566, atslab_0) ; tmp568 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist (tmp567) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Clist"), tmp568) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp566)->tag != 4) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp569 = ats_caselptrlab_mac(anairiats_sum_10, tmp566, atslab_0) ; tmp570 = ats_caselptrlab_mac(anairiats_sum_10, tmp566, atslab_1) ; tmp571 = ats_caselptrlab_mac(anairiats_sum_10, tmp566, atslab_2) ; tmp573 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, tmp569), atslab_i0de_sym) ; tmp572 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol (tmp573) ; tmp574 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp570) ; tmp575 = jsonize_option_fun_02746_ats_ptr_type (tmp571, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2itm) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("D2Coverload"), tmp572, tmp574, tmp575) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp566)->tag != 7) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp576 = ats_caselptrlab_mac(anairiats_sum_2, tmp566, atslab_0) ; tmp577 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cstlst (tmp576) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Cstacsts"), tmp577) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp566)->tag != 8) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp578 = ats_caselptrlab_mac(anairiats_sum_3, tmp566, atslab_0) ; tmp579 = ats_caselptrlab_mac(anairiats_sum_3, tmp566, atslab_1) ; tmp580 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp578) ; tmp581 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cstlst (tmp579) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Cstacsts"), tmp580, tmp581) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)tmp566)->tag != 11) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp582 = ats_caselptrlab_mac(anairiats_sum_4, tmp566, atslab_0) ; tmp583 = ats_caselptrlab_mac(anairiats_sum_4, tmp566, atslab_1) ; tmp584 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp582) ; tmp585 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2exp (tmp583) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Cextype"), tmp584, tmp585) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp566)->tag != 12) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp586 = ats_caselptrlab_mac(anairiats_sum_4, tmp566, atslab_0) ; tmp587 = ats_caselptrlab_mac(anairiats_sum_4, tmp566, atslab_1) ; tmp588 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp586) ; tmp589 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp587) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Cextvar"), tmp588, tmp589) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp566)->tag != 13) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp590 = ats_caselptrlab_mac(anairiats_sum_21, tmp566, atslab_0) ; tmp591 = ats_caselptrlab_mac(anairiats_sum_21, tmp566, atslab_1) ; tmp592 = ats_caselptrlab_mac(anairiats_sum_21, tmp566, atslab_2) ; tmp593 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp590) ; tmp594 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp591) ; tmp595 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string (tmp592) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("D2Cextcode"), tmp593, tmp594, tmp595) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp566)->tag != 14) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp596 = ats_caselptrlab_mac(anairiats_sum_3, tmp566, atslab_0) ; tmp597 = ats_caselptrlab_mac(anairiats_sum_3, tmp566, atslab_1) ; tmp598 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp596) ; tmp599 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cstlst (tmp597) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Cdatdecs"), tmp598, tmp599) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp566)->tag != 15) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp600 = ats_caselptrlab_mac(anairiats_sum_2, tmp566, atslab_0) ; tmp601 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2conlst (tmp600) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Cexndecs"), tmp601) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp566)->tag != 16) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp602 = ats_caselptrlab_mac(anairiats_sum_13, tmp566, atslab_0) ; tmp603 = ats_caselptrlab_mac(anairiats_sum_13, tmp566, atslab_1) ; tmp604 = ats_caselptrlab_mac(anairiats_sum_13, tmp566, atslab_2) ; tmp605 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp602) ; tmp606 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_dcstkind (tmp603) ; tmp607 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cstlst (tmp604) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("D2Cdcstdecs"), tmp605, tmp606, tmp607) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp566)->tag != 17) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp608 = ats_caselptrlab_mac(anairiats_sum_3, tmp566, atslab_0) ; tmp609 = ats_caselptrlab_mac(anairiats_sum_3, tmp566, atslab_1) ; tmp610 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp608) ; tmp611 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i2mpdec (tmp609) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Cimpdec"), tmp610, tmp611) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp566)->tag != 18) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp612 = ats_caselptrlab_mac(anairiats_sum_11, tmp566, atslab_0) ; tmp613 = ats_caselptrlab_mac(anairiats_sum_11, tmp566, atslab_1) ; tmp614 = ats_caselptrlab_mac(anairiats_sum_11, tmp566, atslab_2) ; tmp615 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_funkind (tmp612) ; tmp616 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp613) ; tmp617 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undeclst (tmp614) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("D2Cfundecs"), tmp615, tmp616, tmp617) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp566)->tag != 19) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp618 = ats_caselptrlab_mac(anairiats_sum_4, tmp566, atslab_0) ; tmp619 = ats_caselptrlab_mac(anairiats_sum_4, tmp566, atslab_1) ; tmp620 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_valkind (tmp618) ; tmp621 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldeclst (tmp619) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Cvaldecs"), tmp620, tmp621) ; break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)tmp566)->tag != 21) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp622 = ats_caselptrlab_mac(anairiats_sum_2, tmp566, atslab_0) ; tmp623 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardeclst (tmp622) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("D2Cvardecs"), tmp623) ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp566)->tag != 23) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp624 = ats_caselptrlab_mac(anairiats_sum_3, tmp566, atslab_0) ; tmp625 = ats_caselptrlab_mac(anairiats_sum_3, tmp566, atslab_1) ; tmp626 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp624) ; tmp627 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist (tmp625) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Cinclude"), tmp626, tmp627) ; break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)tmp566)->tag != 24) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp628 = ats_caselptrlab_mac(anairiats_sum_31, tmp566, atslab_0) ; tmp629 = ats_caselptrlab_mac(anairiats_sum_31, tmp566, atslab_1) ; tmp630 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbolopt (tmp628) ; tmp631 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_filename (tmp629) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Cstaload"), tmp630, tmp631) ; break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)tmp566)->tag != 27) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp632 = ats_caselptrlab_mac(anairiats_sum_4, tmp566, atslab_0) ; tmp633 = ats_caselptrlab_mac(anairiats_sum_4, tmp566, atslab_1) ; tmp634 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist (tmp632) ; tmp635 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist (tmp633) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("D2Clocal"), tmp634, tmp635) ; break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: __ats_lab_153_1: tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("D2Cignored")) ; break ; } while (0) ; return (tmp565) ; } /* end of [auxmain_73] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 33699(line=1681, offs=3) -- 37514(line=1853, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2ecl (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp636) ; ATSlocal (ats_ptr_type, tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2ecl: tmp636 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, arg0), atslab_d2ecl_loc) ; tmp637 = auxmain_73 (arg0) ; tmp638 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp636) ; tmp564 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("d2ecl_loc"), tmp638, ATSstrcst("d2ecl_node"), tmp637) ; return (tmp564) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2ecl] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 37594(line=1859, offs=3) -- 37649(line=1861, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp639) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist: tmp639 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2ecl) ; return (tmp639) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 37704(line=1868, offs=3) -- 38353(line=1895, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i2mpdec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp640) ; ATSlocal (ats_ptr_type, tmp641) ; ATSlocal (ats_ptr_type, tmp642) ; ATSlocal (ats_ptr_type, tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; ATSlocal (ats_ptr_type, tmp646) ; ATSlocal (ats_ptr_type, tmp647) ; ATSlocal (ats_ptr_type, tmp648) ; ATSlocal (ats_ptr_type, tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; ATSlocal (ats_ptr_type, tmp651) ; ATSlocal (ats_ptr_type, tmp652) ; ATSlocal (ats_ptr_type, tmp653) ; ATSlocal (ats_ptr_type, tmp654) ; ATSlocal (ats_ptr_type, tmp655) ; ATSlocal (anairiats_rec_33, tmp656) ; ATSlocal (ats_ptr_type, tmp657) ; ATSlocal (anairiats_rec_33, tmp658) ; ATSlocal (ats_ptr_type, tmp659) ; ATSlocal (anairiats_rec_33, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; ATSlocal (anairiats_rec_33, tmp662) ; ATSlocal (ats_ptr_type, tmp663) ; ATSlocal (anairiats_rec_33, tmp664) ; ATSlocal (ats_ptr_type, tmp665) ; ATSlocal (anairiats_rec_33, tmp666) ; ATSlocal (ats_ptr_type, tmp667) ; ATSlocal (anairiats_rec_33, tmp668) ; ATSlocal (ats_ptr_type, tmp669) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i2mpdec: tmp642 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg0), atslab_i2mpdec_loc) ; tmp641 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp642) ; tmp644 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg0), atslab_i2mpdec_locid) ; tmp643 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp644) ; tmp646 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg0), atslab_i2mpdec_cst) ; tmp645 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst (tmp646) ; tmp648 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg0), atslab_i2mpdec_imparg) ; tmp647 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp648) ; tmp650 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg0), atslab_i2mpdec_tmparg) ; tmp649 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp650) ; tmp652 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg0), atslab_i2mpdec_tmpgua) ; tmp651 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp652) ; tmp654 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg0), atslab_i2mpdec_def) ; tmp653 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp654) ; tmp656.atslab_0 = ATSstrcst("i2mpdec_loc") ; tmp656.atslab_1 = tmp641 ; tmp658.atslab_0 = ATSstrcst("i2mpdec_locid") ; tmp658.atslab_1 = tmp643 ; tmp660.atslab_0 = ATSstrcst("i2mpdec_cst") ; tmp660.atslab_1 = tmp645 ; tmp662.atslab_0 = ATSstrcst("i2mpdec_imparg") ; tmp662.atslab_1 = tmp647 ; tmp664.atslab_0 = ATSstrcst("i2mpdec_tmparg") ; tmp664.atslab_1 = tmp649 ; tmp666.atslab_0 = ATSstrcst("i2mpdec_tmpgua") ; tmp666.atslab_1 = tmp651 ; tmp668.atslab_0 = ATSstrcst("i2mpdec_def") ; tmp668.atslab_1 = tmp653 ; tmp669 = (ats_sum_ptr_type)0 ; tmp667 = ATS_MALLOC(sizeof(anairiats_sum_34)) ; ats_selptrset_mac(anairiats_sum_34, tmp667, atslab_0, tmp668) ; ats_selptrset_mac(anairiats_sum_34, tmp667, atslab_1, tmp669) ; tmp665 = ATS_MALLOC(sizeof(anairiats_sum_34)) ; ats_selptrset_mac(anairiats_sum_34, tmp665, atslab_0, tmp666) ; ats_selptrset_mac(anairiats_sum_34, tmp665, atslab_1, tmp667) ; tmp663 = ATS_MALLOC(sizeof(anairiats_sum_34)) ; ats_selptrset_mac(anairiats_sum_34, tmp663, atslab_0, tmp664) ; ats_selptrset_mac(anairiats_sum_34, tmp663, atslab_1, tmp665) ; tmp661 = ATS_MALLOC(sizeof(anairiats_sum_34)) ; ats_selptrset_mac(anairiats_sum_34, tmp661, atslab_0, tmp662) ; ats_selptrset_mac(anairiats_sum_34, tmp661, atslab_1, tmp663) ; tmp659 = ATS_MALLOC(sizeof(anairiats_sum_34)) ; ats_selptrset_mac(anairiats_sum_34, tmp659, atslab_0, tmp660) ; ats_selptrset_mac(anairiats_sum_34, tmp659, atslab_1, tmp661) ; tmp657 = ATS_MALLOC(sizeof(anairiats_sum_34)) ; ats_selptrset_mac(anairiats_sum_34, tmp657, atslab_0, tmp658) ; ats_selptrset_mac(anairiats_sum_34, tmp657, atslab_1, tmp659) ; tmp655 = ATS_MALLOC(sizeof(anairiats_sum_34)) ; ats_selptrset_mac(anairiats_sum_34, tmp655, atslab_0, tmp656) ; ats_selptrset_mac(anairiats_sum_34, tmp655, atslab_1, tmp657) ; tmp640 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp640)->tag = 9 ; ats_selptrset_mac(anairiats_sum_2, tmp640, atslab_0, tmp655) ; return (tmp640) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_i2mpdec] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 38424(line=1901, offs=3) -- 38757(line=1916, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp670) ; ATSlocal (ats_ptr_type, tmp671) ; ATSlocal (ats_ptr_type, tmp672) ; ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; ATSlocal (ats_ptr_type, tmp675) ; ATSlocal (ats_ptr_type, tmp676) ; ATSlocal (ats_ptr_type, tmp677) ; ATSlocal (ats_ptr_type, tmp678) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undec: tmp672 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_f2undec_loc) ; tmp671 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp672) ; tmp674 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_f2undec_var) ; tmp673 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp674) ; tmp676 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_f2undec_def) ; tmp675 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp676) ; tmp678 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_f2undec_ann) ; tmp677 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2expopt (tmp678) ; tmp670 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval4 (ATSstrcst("f2undec_loc"), tmp671, ATSstrcst("f2undec_var"), tmp673, ATSstrcst("f2undec_def"), tmp675, ATSstrcst("f2undec_ann"), tmp677) ; return (tmp670) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undec] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 38836(line=1922, offs=3) -- 38897(line=1924, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undeclst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp679) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undeclst: tmp679 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undec) ; return (tmp679) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_f2undeclst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 38981(line=1931, offs=3) -- 39311(line=1946, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp680) ; ATSlocal (ats_ptr_type, tmp681) ; ATSlocal (ats_ptr_type, tmp682) ; ATSlocal (ats_ptr_type, tmp683) ; ATSlocal (ats_ptr_type, tmp684) ; ATSlocal (ats_ptr_type, tmp685) ; ATSlocal (ats_ptr_type, tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_ptr_type, tmp688) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldec: tmp682 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_v2aldec_loc) ; tmp681 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp682) ; tmp684 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_v2aldec_pat) ; tmp683 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_p2at (tmp684) ; tmp686 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_v2aldec_def) ; tmp685 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2exp (tmp686) ; tmp688 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_v2aldec_ann) ; tmp687 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp688) ; tmp680 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval4 (ATSstrcst("v2aldec_loc"), tmp681, ATSstrcst("v2aldec_pat"), tmp683, ATSstrcst("v2aldec_def"), tmp685, ATSstrcst("v2aldec_ann"), tmp687) ; return (tmp680) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldec] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 39369(line=1950, offs=3) -- 39430(line=1952, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldeclst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp689) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldeclst: tmp689 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldec) ; return (tmp689) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2aldeclst] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 39514(line=1959, offs=3) -- 39985(line=1980, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; ATSlocal (ats_ptr_type, tmp692) ; ATSlocal (ats_ptr_type, tmp693) ; ATSlocal (ats_int_type, tmp694) ; ATSlocal (ats_ptr_type, tmp695) ; ATSlocal (ats_ptr_type, tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; ATSlocal (ats_ptr_type, tmp698) ; ATSlocal (ats_ptr_type, tmp699) ; ATSlocal (ats_ptr_type, tmp700) ; ATSlocal (ats_ptr_type, tmp701) ; ATSlocal (ats_ptr_type, tmp702) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardec: tmp692 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg0), atslab_v2ardec_loc) ; tmp691 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp692) ; tmp694 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg0), atslab_v2ardec_knd) ; tmp693 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp694) ; tmp696 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg0), atslab_v2ardec_svar) ; tmp695 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var (tmp696) ; tmp698 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg0), atslab_v2ardec_dvar) ; tmp697 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp698) ; tmp700 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg0), atslab_v2ardec_init) ; tmp699 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_d2expopt (tmp700) ; tmp702 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg0), atslab_v2ardec_type) ; tmp701 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize0_s2expopt (tmp702) ; tmp690 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval6 (ATSstrcst("v2ardec_loc"), tmp691, ATSstrcst("v2ardec_knd"), tmp693, ATSstrcst("v2ardec_svar"), tmp695, ATSstrcst("v2ardec_dvar"), tmp697, ATSstrcst("v2ardec_init"), tmp699, ATSstrcst("v2ardec_type"), tmp701) ; return (tmp690) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardec] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 40046(line=1984, offs=3) -- 40107(line=1986, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardeclst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp703) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardeclst: tmp703 = jsonize_list_fun_02745_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardec) ; return (tmp703) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__jsonize_v2ardeclst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_84 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp721) ; ATSlocal (ats_ptr_type, tmp722) ; __ats_lab_loop_84: do { /* branch: __ats_lab_154 */ __ats_lab_154_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp722 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp722 ; goto __ats_lab_loop_84 ; // tail call break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_155_1: break ; } while (0) ; return /* (tmp721) */ ; } /* end of [loop_84] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp720) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp720 = */ loop_84 (arg0) ; return /* (tmp720) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_jsonize_synent2.dats: 40196(line=1993, offs=3) -- 42281(line=2082, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__d2eclist_jsonize_out (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp704) ; ATSlocal (anairiats_rec_1, tmp705) ; ATSlocal (ats_ptr_type, tmp706) ; ATSlocal (ats_ptr_type, tmp707) ; ATSlocal (ats_ptr_type, tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; ATSlocal (ats_ptr_type, tmp711) ; ATSlocal (ats_ptr_type, tmp712) ; ATSlocal (ats_ptr_type, tmp713) ; ATSlocal (ats_ptr_type, tmp714) ; ATSlocal (ats_ptr_type, tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; ATSlocal (ats_ptr_type, tmp717) ; ATSlocal (ats_ptr_type, tmp718) ; // ATSlocal_void (tmp719) ; ATSlocal (ats_ptr_type, tmp723) ; // ATSlocal_void (tmp724) ; ATSlocal (ats_ptr_type, tmp725) ; // ATSlocal_void (tmp726) ; ATSlocal (ats_ptr_type, tmp727) ; // ATSlocal_void (tmp728) ; ATSlocal (ats_ptr_type, tmp729) ; // ATSlocal_void (tmp730) ; ATSlocal (ats_ptr_type, tmp731) ; // ATSlocal_void (tmp732) ; ATSlocal (ats_ptr_type, tmp733) ; // ATSlocal_void (tmp734) ; // ATSlocal_void (tmp735) ; // ATSlocal_void (tmp736) ; // ATSlocal_void (tmp737) ; // ATSlocal_void (tmp738) ; // ATSlocal_void (tmp739) ; // ATSlocal_void (tmp740) ; // ATSlocal_void (tmp741) ; // ATSlocal_void (tmp742) ; // ATSlocal_void (tmp743) ; // ATSlocal_void (tmp744) ; // ATSlocal_void (tmp745) ; // ATSlocal_void (tmp746) ; // ATSlocal_void (tmp747) ; // ATSlocal_void (tmp748) ; // ATSlocal_void (tmp749) ; // ATSlocal_void (tmp750) ; // ATSlocal_void (tmp751) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__d2eclist_jsonize_out: tmp705 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2eclist_mapgen_all (arg1) ; tmp706 = ats_select_mac(tmp705, atslab_0) ; tmp707 = ats_select_mac(tmp705, atslab_1) ; tmp708 = ats_select_mac(tmp705, atslab_2) ; tmp709 = ats_select_mac(tmp705, atslab_3) ; tmp710 = ats_select_mac(tmp705, atslab_4) ; tmp711 = ats_select_mac(tmp705, atslab_5) ; tmp712 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free (tmp706) ; tmp713 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free (tmp707) ; tmp714 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_listize_free (tmp708) ; tmp715 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_listize_free (tmp709) ; tmp716 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_listize_free (tmp710) ; tmp717 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize_free (tmp711) ; tmp718 = jsonize_list_fun_02745_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp712), &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst_long) ; /* tmp719 = */ list_vt_free_01499_ats_ptr_type (tmp712) ; tmp723 = jsonize_list_fun_02745_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp713), &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var_long) ; /* tmp724 = */ list_vt_free_01499_ats_ptr_type (tmp713) ; tmp725 = jsonize_list_fun_02745_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp714), &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var_long) ; /* tmp726 = */ list_vt_free_01499_ats_ptr_type (tmp714) ; tmp727 = jsonize_list_fun_02745_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp715), &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2con_long) ; /* tmp728 = */ list_vt_free_01499_ats_ptr_type (tmp715) ; tmp729 = jsonize_list_fun_02745_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp716), &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2cst_long) ; /* tmp730 = */ list_vt_free_01499_ats_ptr_type (tmp716) ; tmp731 = jsonize_list_fun_02745_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp717), &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var_long) ; /* tmp732 = */ list_vt_free_01499_ats_ptr_type (tmp717) ; tmp733 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2eclist (arg1) ; /* tmp734 = */ atspre_fprint_string (arg0, ATSstrcst("{\n\"s2cstmap\":\n")) ; /* tmp735 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp718) ; /* tmp736 = */ atspre_fprint_newline (arg0) ; /* tmp737 = */ atspre_fprint_string (arg0, ATSstrcst(",\n\"s2varmap\":\n")) ; /* tmp738 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp723) ; /* tmp739 = */ atspre_fprint_newline (arg0) ; /* tmp740 = */ atspre_fprint_string (arg0, ATSstrcst(",\n\"d2conmap\":\n")) ; /* tmp741 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp727) ; /* tmp742 = */ atspre_fprint_newline (arg0) ; /* tmp743 = */ atspre_fprint_string (arg0, ATSstrcst(",\n\"d2cstmap\":\n")) ; /* tmp744 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp729) ; /* tmp745 = */ atspre_fprint_newline (arg0) ; /* tmp746 = */ atspre_fprint_string (arg0, ATSstrcst(",\n\"d2varmap\":\n")) ; /* tmp747 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp731) ; /* tmp748 = */ atspre_fprint_newline (arg0) ; /* tmp749 = */ atspre_fprint_string (arg0, ATSstrcst(",\n\"d2eclist\":\n")) ; /* tmp750 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp733) ; /* tmp751 = */ atspre_fprint_string (arg0, ATSstrcst("\n}")) ; /* tmp704 = */ atspre_fprint_newline (arg0) ; return /* (tmp704) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__d2eclist_jsonize_out] */ /* 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_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_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_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_jsonize_synent2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_symbol_dats.c0000644000175000017500000021264013431250607022037 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* external codes at top */ typedef ats_ptr_type string ; typedef ats_ptr_type symbol ; /* type definitions */ typedef struct { string atslab_0 ; symbol atslab_1 ; } anairiats_rec_0 ; 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_1 ; typedef struct { ats_ptr_type atslab_name ; ats_uint_type atslab_stamp ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_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_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_bool_type, atspre_neq_uint_uint) (ats_uint_type, ats_uint_type) ; ATSextern_fun(ats_int_type, atspre_compare_uint_uint) (ats_uint_type, ats_uint_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_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_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_compare_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ulint_type, atspre_string_hash_33) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_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_bool_type, atspre_ptr_is_null) (ats_ptr_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_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_symbol_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats____assert1_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats____assert2_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__sasp__symbol_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_NEG) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MUL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DIV) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERSAND) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERBANG) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERQMARK) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQ) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQCOLON) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTEQ) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTEQ) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQEQ) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTGT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANGEQ) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTLT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTGT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTLT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LAND) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LOR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LRBRACKETS) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARK) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARKBANG) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TILDE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VBOX) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LAMAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LLAMAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_INT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BOOL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADDR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_REAL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FLOAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_STRING) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CLS) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EFF) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TKIND) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VTYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VT0YPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TRUE_BOOL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FALSE_BOOL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DEFINED) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDEFINED) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TUPZ) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STDIN__) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STRING__) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSHOME) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSCONTRIB) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSHOMELOCS) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSRELOCROOT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_PACKNAME) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADFLAG) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADNAME) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_MAINATSFLAG) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_EXTERN_PREFIX) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_STATIC_PREFIX) ; /* internal function declarations */ static ats_void_type keyitem_nullify_01807_anairiats_rec_0 (ats_ref_type arg0) ; static ats_bool_type keyitem_isnot_null_01808_anairiats_rec_0 (ats_ref_type arg0) ; static ats_ulint_type hash_key_01802_string (string arg0, ats_clo_ref_type arg1) ; static ats_bool_type equal_key_key_01803_string (string arg0, string arg1, ats_clo_ref_type arg2) ; static ats_ptr_type atslib_hashtbl_make_hint__linprb_string_2csymbol (ats_clo_ref_type arg0, ats_clo_ref_type arg1, ats_size_type arg2) ; static ats_ptr_type hashtbl_ptr_split_044_string_2csymbol (ats_ptr_type arg0, ats_size_type arg1) ; static ats_void_type loop_9 (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_9_closure_make (string env0, ats_clo_ref_type env1) ; static ats_void_type loop_9_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_052_string_2csymbol (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_0101_string_2csymbol (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_0122_string_2csymbol (ats_ptr_type arg0, ats_size_type arg1) ; static ats_bool_type hashtbl_insert_01814_string_2csymbol (ats_ptr_type arg0, string arg1, symbol arg2, ats_ref_type arg3) ; static ats_void_type symbol_insert_5 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type hashtbl_search_01813_string_2csymbol (ats_ptr_type arg0, string arg1, ats_ref_type arg2) ; static ats_ptr_type symbol_search_12 (ats_ptr_type arg0) ; static ats_uint_type stamp_getinc_16 () ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp7) ; ATSstatic (ats_uint_type, statmp95) ; // ATSstatic_void (statmp96) ; // ATSstatic_void (statmp97) ; ATSstatic (ats_ptr_type, statmp107) ; // ATSstatic_void (statmp108) ; ATSstatic (ats_bool_type, statmp109) ; ATSstatic (ats_uint_type, statmp110) ; ATSstatic (ats_ptr_type, statmp111) ; ATSstatic (ats_ptr_type, statmp112) ; ATSstatic (ats_ptr_type, statmp113) ; ATSstatic (ats_ptr_type, statmp114) ; ATSstatic (ats_ptr_type, statmp115) ; ATSstatic (ats_ptr_type, statmp116) ; ATSstatic (ats_ptr_type, statmp117) ; ATSstatic (ats_ptr_type, statmp118) ; ATSstatic (ats_ptr_type, statmp119) ; ATSstatic (ats_ptr_type, statmp120) ; ATSstatic (ats_ptr_type, statmp121) ; ATSstatic (ats_ptr_type, statmp122) ; ATSstatic (ats_ptr_type, statmp123) ; ATSstatic (ats_ptr_type, statmp124) ; ATSstatic (ats_ptr_type, statmp125) ; ATSstatic (ats_ptr_type, statmp126) ; ATSstatic (ats_ptr_type, statmp127) ; ATSstatic (ats_ptr_type, statmp128) ; ATSstatic (ats_ptr_type, statmp129) ; ATSstatic (ats_ptr_type, statmp130) ; ATSstatic (ats_ptr_type, statmp131) ; ATSstatic (ats_ptr_type, statmp132) ; ATSstatic (ats_ptr_type, statmp133) ; ATSstatic (ats_ptr_type, statmp134) ; ATSstatic (ats_ptr_type, statmp135) ; ATSstatic (ats_ptr_type, statmp136) ; ATSstatic (ats_ptr_type, statmp137) ; ATSstatic (ats_ptr_type, statmp138) ; ATSstatic (ats_ptr_type, statmp139) ; ATSstatic (ats_ptr_type, statmp140) ; ATSstatic (ats_ptr_type, statmp141) ; ATSstatic (ats_ptr_type, statmp142) ; ATSstatic (ats_ptr_type, statmp143) ; ATSstatic (ats_ptr_type, statmp144) ; ATSstatic (ats_ptr_type, statmp145) ; ATSstatic (ats_ptr_type, statmp146) ; ATSstatic (ats_ptr_type, statmp147) ; ATSstatic (ats_ptr_type, statmp148) ; ATSstatic (ats_ptr_type, statmp149) ; ATSstatic (ats_ptr_type, statmp150) ; ATSstatic (ats_ptr_type, statmp151) ; ATSstatic (ats_ptr_type, statmp152) ; ATSstatic (ats_ptr_type, statmp153) ; ATSstatic (ats_ptr_type, statmp154) ; ATSstatic (ats_ptr_type, statmp155) ; ATSstatic (ats_ptr_type, statmp156) ; ATSstatic (ats_ptr_type, statmp157) ; ATSstatic (ats_ptr_type, statmp158) ; ATSstatic (ats_ptr_type, statmp159) ; ATSstatic (ats_ptr_type, statmp160) ; ATSstatic (ats_ptr_type, statmp161) ; ATSstatic (ats_ptr_type, statmp162) ; ATSstatic (ats_ptr_type, statmp163) ; ATSstatic (ats_ptr_type, statmp164) ; ATSstatic (ats_ptr_type, statmp165) ; ATSstatic (ats_ptr_type, statmp166) ; ATSstatic (ats_ptr_type, statmp167) ; ATSstatic (ats_ptr_type, statmp168) ; ATSstatic (ats_ptr_type, statmp169) ; ATSstatic (ats_ptr_type, statmp170) ; ATSstatic (ats_ptr_type, statmp171) ; ATSstatic (ats_ptr_type, statmp172) ; ATSstatic (ats_ptr_type, statmp173) ; ATSstatic (ats_ptr_type, statmp174) ; ATSstatic (ats_ptr_type, statmp175) ; ATSstatic (ats_ptr_type, statmp176) ; ATSstatic (ats_ptr_type, statmp177) ; ATSstatic (ats_ptr_type, statmp178) ; ATSstatic (ats_ptr_type, statmp179) ; ATSstatic (ats_ptr_type, statmp180) ; ATSstatic (ats_ptr_type, statmp181) ; ATSstatic (ats_ptr_type, statmp182) ; ATSstatic (ats_ptr_type, statmp183) ; ATSstatic (ats_ptr_type, statmp184) ; ATSstatic (ats_ptr_type, statmp185) ; ATSstatic (ats_ptr_type, statmp186) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 2302(line=89, offs=3) -- 2465(line=94, offs=2) */ ATSstaticdec() ats_void_type keyitem_nullify_01807_anairiats_rec_0 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_keyitem_nullify_01807_anairiats_rec_0: ats_select_mac(ats_ptrget_mac(anairiats_rec_0, arg0), atslab_0) = ats_castfn_mac(string, atspre_null_ptr) ; return /* (tmp0) */ ; } /* end of [keyitem_nullify_01807_anairiats_rec_0] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 2539(line=98, offs=3) -- 2807(line=105, offs=2) */ ATSstaticdec() ats_bool_type keyitem_isnot_null_01808_anairiats_rec_0 (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; ATSlocal (ats_bool_type, tmp2) ; ATSlocal (string, tmp3) ; __ats_lab_keyitem_isnot_null_01808_anairiats_rec_0: tmp3 = ats_select_mac(ats_ptrget_mac(anairiats_rec_0, arg0), atslab_0) ; tmp2 = atspre_pneq (ats_castfn_mac(ats_ptr_type, tmp3), atspre_null_ptr) ; tmp1 = ats_castfn_mac(ats_bool_type, tmp2) ; return (tmp1) ; } /* end of [keyitem_isnot_null_01808_anairiats_rec_0] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 2869(line=108, offs=15) -- 2902(line=108, offs=48) */ ATSstaticdec() ats_ulint_type hash_key_01802_string (string arg0, ats_clo_ref_type arg1) { /* local vardec */ ATSlocal (ats_ulint_type, tmp4) ; __ats_lab_hash_key_01802_string: tmp4 = atspre_string_hash_33 (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp4) ; } /* end of [hash_key_01802_string] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 2936(line=111, offs=3) -- 2986(line=111, offs=53) */ ATSstaticdec() ats_bool_type equal_key_key_01803_string (string arg0, string arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; __ats_lab_equal_key_key_01803_string: tmp6 = atspre_compare_string_string (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; tmp5 = atspre_ieq (tmp6, 0) ; return (tmp5) ; } /* end of [equal_key_key_01803_string] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_2csymbol (ats_clo_ref_type arg0, ats_clo_ref_type arg1, ats_size_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_atslib_hashtbl_make_hint__linprb_string_2csymbol: tmp8 = atslib_hashtbl_make_hint_tsz__linprb (arg0, arg1, arg2, sizeof(anairiats_rec_0)) ; return (tmp8) ; } /* end of [atslib_hashtbl_make_hint__linprb_string_2csymbol] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_044_string_2csymbol (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_size_type, tmp25) ; ATSlocal (ats_size_type, tmp26) ; __ats_lab_hashtbl_ptr_split_044_string_2csymbol: tmp25 = atspre_mul2_size1_size1 (arg1, sizeof(anairiats_rec_0)) ; tmp26 = ats_selsin_mac(tmp25, atslab_1) ; tmp24 = atspre_padd_size (arg0, tmp26) ; return (tmp24) ; } /* end of [hashtbl_ptr_split_044_string_2csymbol] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_9 (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 (tmp28) ; ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_bool_type, tmp30) ; ATSlocal (string, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_size_type, tmp34) ; __ats_lab_loop_9: tmp29 = atspre_gt_size1_int1 (arg1, 0) ; if (tmp29) { tmp30 = keyitem_isnot_null_01808_anairiats_rec_0 (arg0) ; if (tmp30) { tmp31 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_0) ; tmp32 = equal_key_key_01803_string (env0, tmp31, env1) ; if (tmp32) { ats_ptrget_mac(ats_ptr_type, arg2) = arg0 ; ats_ptrget_mac(ats_bool_type, arg3) = ats_true_bool ; } else { tmp33 = atspre_padd_size (arg0, sizeof(anairiats_rec_0)) ; tmp34 = atspre_sub_size1_int1 (arg1, 1) ; arg0 = tmp33 ; arg1 = tmp34 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_9 ; // tail call } /* end of [if] */ } else { ats_ptrget_mac(ats_ptr_type, arg2) = arg0 ; } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp28) */ ; } /* end of [loop_9] */ typedef struct { ats_fun_ptr_type closure_fun ; string closure_env_0 ; ats_clo_ref_type closure_env_1 ; } loop_9_closure_type ; ats_void_type loop_9_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1, ats_ref_type arg2, ats_ref_type arg3) { loop_9 (((loop_9_closure_type*)cloptr)->closure_env_0, ((loop_9_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2, arg3) ; return ; } /* end of function */ ATSinline() ats_void_type loop_9_closure_init (loop_9_closure_type *p_clo, string env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_9_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type loop_9_closure_make (string env0, ats_clo_ref_type env1) { loop_9_closure_type *p_clo = ATS_MALLOC(sizeof(loop_9_closure_type)) ; loop_9_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_052_string_2csymbol (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, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_size_type, tmp37) ; // ATSlocal_void (tmp38) ; ATSlocal (ats_bool_type, tmp39) ; __ats_lab_hashtbl_ptr_probe_ofs_052_string_2csymbol: tmp23 = hashtbl_ptr_split_044_string_2csymbol (arg0, arg4) ; tmp27 = ats_selsin_mac(tmp23, atslab_2) ; /* ats_ptr_type tmp35 ; */ tmp35 = atspre_null_ptr ; ats_ptrget_mac(ats_bool_type, arg5) = ats_false_bool ; tmp37 = atspre_sub_size1_size1 (arg3, arg4) ; /* tmp36 = */ loop_9 (arg1, arg2, tmp27, tmp37, (&tmp35), arg5) ; tmp39 = atspre_peq (tmp35, atspre_null_ptr) ; if (tmp39) { /* tmp38 = */ loop_9 (arg1, arg2, arg0, arg4, (&tmp35), arg5) ; } else { /* empty */ } /* end of [if] */ tmp22 = tmp35 ; return (tmp22) ; } /* end of [hashtbl_ptr_probe_ofs_052_string_2csymbol] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_0101_string_2csymbol (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 (tmp58) ; ATSlocal (ats_bool_type, tmp59) ; ATSlocal (ats_bool_type, tmp60) ; ATSlocal (string, tmp62) ; ATSlocal (symbol, tmp63) ; ATSlocal (ats_ulint_type, tmp64) ; ATSlocal (ats_size_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_size_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab_hashtbl_ptr_relocate_0101_string_2csymbol: tmp59 = atspre_gt_size1_int1 (arg0, 0) ; if (tmp59) { tmp60 = keyitem_isnot_null_01808_anairiats_rec_0 (arg2) ; if (tmp60) { tmp62 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_0) ; tmp63 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_1) ; tmp64 = hash_key_01802_string (tmp62, arg4) ; tmp65 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp64), arg1) ; /* ats_bool_type tmp66 ; */ tmp67 = hashtbl_ptr_probe_ofs_052_string_2csymbol (arg3, tmp62, arg5, arg1, tmp65, (&tmp66)) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp67), atslab_0) = tmp62 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp67), atslab_1) = tmp63 ; } else { /* empty */ } /* end of [if] */ tmp68 = atspre_sub_size1_int1 (arg0, 1) ; tmp69 = atspre_padd_size (arg2, sizeof(anairiats_rec_0)) ; arg0 = tmp68 ; arg1 = arg1 ; arg2 = tmp69 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_hashtbl_ptr_relocate_0101_string_2csymbol ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp58) */ ; } /* end of [hashtbl_ptr_relocate_0101_string_2csymbol] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_0122_string_2csymbol (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_size_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_clo_ref_type, tmp72) ; ATSlocal (ats_clo_ref_type, tmp73) ; // ATSlocal_void (tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; __ats_lab_hashtbl_resize_0122_string_2csymbol: tmp54 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp55 = atslib_hashtbl_ptr_make__linprb (arg1, sizeof(anairiats_rec_0)) ; tmp56 = ats_selsin_mac(tmp55, atslab_2) ; tmp70 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp54), atslab_sz) ; tmp71 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp54), atslab_pbeg) ; tmp72 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp54), atslab_hash) ; tmp73 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp54), atslab_eqfn) ; /* tmp57 = */ hashtbl_ptr_relocate_0101_string_2csymbol (tmp70, arg1, tmp71, tmp56, tmp72, tmp73) ; tmp75 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp54), atslab_pbeg) ; /* tmp74 = */ atslib_hashtbl_ptr_free__linprb (tmp75) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp54), atslab_sz) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp54), atslab_pbeg) = tmp56 ; return /* (tmp53) */ ; } /* end of [hashtbl_resize_0122_string_2csymbol] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_01814_string_2csymbol (ats_ptr_type arg0, string arg1, symbol arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ulint_type, tmp15) ; ATSlocal (ats_clo_ref_type, tmp16) ; ATSlocal (ats_size_type, tmp17) ; ATSlocal (ats_size_type, tmp18) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_int_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_clo_ref_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (symbol, tmp44) ; ATSlocal (ats_size_type, tmp45) ; ATSlocal (ats_size_type, tmp46) ; ATSlocal (ats_bool_type, tmp47) ; ATSlocal (ats_double_type, tmp48) ; ATSlocal (ats_double_type, tmp49) ; ATSlocal (ats_double_type, tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_bool_type, tmp52) ; ATSlocal (ats_size_type, tmp76) ; __ats_lab_hashtbl_insert_01814_string_2csymbol: tmp14 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp16 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_hash) ; tmp15 = hash_key_01802_string (arg1, tmp16) ; tmp17 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_sz) ; tmp18 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp15), tmp17) ; /* ats_bool_type tmp19 ; */ /* ats_int_type tmp20 ; */ tmp20 = 0 ; tmp40 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_pbeg) ; tmp41 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_eqfn) ; tmp21 = hashtbl_ptr_probe_ofs_052_string_2csymbol (tmp40, arg1, tmp41, tmp17, tmp18, (&tmp19)) ; tmp42 = ats_castfn_mac(ats_bool_type, tmp19) ; if (tmp42) { tmp44 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp21), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp21), atslab_1) = arg2 ; ats_ptrget_mac(symbol, arg3) = tmp44 ; } else { tmp45 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_tot) ; tmp46 = atspre_add_size_int (tmp45, 1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_tot) = tmp46 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp21), atslab_0) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp21), atslab_1) = arg2 ; tmp49 = atspre_double_of_size (tmp45) ; tmp48 = atspre_mul_int_double (2, tmp49) ; tmp50 = atspre_double_of_size (tmp17) ; tmp47 = atspre_gte_double_double (tmp48, tmp50) ; if (tmp47) { tmp20 = 1 ; } else { /* empty */ } /* end of [if] */ } /* end of [if] */ tmp52 = atspre_gt_int_int (tmp20, 0) ; if (tmp52) { tmp76 = atspre_add_size1_size1 (tmp17, tmp17) ; /* tmp51 = */ hashtbl_resize_0122_string_2csymbol (arg0, tmp76) ; } else { /* empty */ } /* end of [if] */ tmp13 = tmp42 ; return (tmp13) ; } /* end of [hashtbl_insert_01814_string_2csymbol] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 3305(line=123, offs=5) -- 3664(line=135, offs=2) */ ATSstaticdec() ats_void_type symbol_insert_5 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (symbol, tmp11) ; ATSlocal (ats_bool_type, tmp12) ; __ats_lab_symbol_insert_5: tmp10 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, statmp7)), atslab_1) ; /* symbol tmp11 ; */ tmp12 = hashtbl_insert_01814_string_2csymbol (tmp10, ats_castfn_mac(string, arg0), ats_castfn_mac(symbol, arg1), (&tmp11)) ; return /* (tmp9) */ ; } /* end of [symbol_insert_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_01813_string_2csymbol (ats_ptr_type arg0, string arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ulint_type, tmp83) ; ATSlocal (ats_clo_ref_type, tmp84) ; ATSlocal (ats_size_type, tmp85) ; ATSlocal (ats_size_type, tmp86) ; ATSlocal (ats_bool_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_clo_ref_type, tmp90) ; ATSlocal (ats_size_type, tmp91) ; ATSlocal (symbol, tmp92) ; __ats_lab_hashtbl_search_01813_string_2csymbol: tmp82 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp84 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp82), atslab_hash) ; tmp83 = hash_key_01802_string (arg1, tmp84) ; tmp86 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp82), atslab_sz) ; tmp85 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp83), tmp86) ; /* ats_bool_type tmp87 ; */ tmp89 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp82), atslab_pbeg) ; tmp90 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp82), atslab_eqfn) ; tmp91 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp82), atslab_sz) ; tmp88 = hashtbl_ptr_probe_ofs_052_string_2csymbol (tmp89, arg1, tmp90, tmp91, tmp85, (&tmp87)) ; if (tmp87) { tmp92 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp88), atslab_1) ; ats_ptrget_mac(symbol, arg2) = tmp92 ; tmp81 = ats_true_bool ; } else { tmp81 = ats_false_bool ; } /* end of [if] */ return (tmp81) ; } /* end of [hashtbl_search_01813_string_2csymbol] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 3696(line=137, offs=5) -- 4055(line=149, offs=4) */ ATSstaticdec() ats_ptr_type symbol_search_12 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (symbol, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; __ats_lab_symbol_search_12: tmp78 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, statmp7)), atslab_1) ; /* symbol tmp79 ; */ tmp80 = hashtbl_search_01813_string_2csymbol (tmp78, ats_castfn_mac(string, arg0), (&tmp79)) ; if (tmp80) { tmp77 = ats_castfn_mac(ats_ptr_type, tmp79) ; } else { tmp77 = ats_castfn_mac(ats_ptr_type, atspre_null_ptr) ; } /* end of [if] */ return (tmp77) ; } /* end of [symbol_search_12] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 4253(line=163, offs=17) -- 4265(line=163, offs=29) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name: tmp93 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_name) ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 4293(line=165, offs=18) -- 4306(line=165, offs=31) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_uint_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_stamp: tmp94 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_stamp) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 4496(line=175, offs=5) -- 4637(line=180, offs=2) */ ATSstaticdec() ats_uint_type stamp_getinc_16 () { /* local vardec */ ATSlocal (ats_uint_type, tmp98) ; ATSlocal (ats_uint_type, tmp99) ; ATSlocal (ats_uint_type, tmp100) ; __ats_lab_stamp_getinc_16: tmp99 = statmp95 ; tmp100 = atspre_add_uint_uint (tmp99, 1u) ; statmp95 = tmp100 ; tmp98 = tmp99 ; return (tmp98) ; } /* end of [stamp_getinc_16] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 4718(line=186, offs=3) -- 5280(line=210, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_uint_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; // ATSlocal_void (tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string: tmp102 = symbol_search_12 (arg0) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp103 = atspre_ptr_is_null (tmp102) ; if (!tmp103) { goto __ats_lab_1_1 ; } tmp104 = stamp_getinc_16 () ; tmp105 = ATS_MALLOC(sizeof(anairiats_rec_2)) ; ats_selptrset_mac(anairiats_rec_2, tmp105, atslab_name, arg0) ; ats_selptrset_mac(anairiats_rec_2, tmp105, atslab_stamp, tmp104) ; /* tmp106 = */ symbol_insert_5 (arg0, tmp105) ; tmp101 = tmp105 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp101 = tmp102 ; break ; } while (0) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 10311(line=396, offs=18) -- 10341(line=396, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp187) ; ATSlocal (ats_uint_type, tmp188) ; ATSlocal (ats_uint_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol: tmp188 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_stamp) ; tmp189 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_stamp) ; tmp187 = atspre_eq_uint_uint (tmp188, tmp189) ; return (tmp187) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 10370(line=398, offs=19) -- 10401(line=398, offs=50) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__neq_symbol_symbol (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp190) ; ATSlocal (ats_uint_type, tmp191) ; ATSlocal (ats_uint_type, tmp192) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__neq_symbol_symbol: tmp191 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_stamp) ; tmp192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_stamp) ; tmp190 = atspre_neq_uint_uint (tmp191, tmp192) ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__neq_symbol_symbol] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 10456(line=403, offs=23) -- 10495(line=403, offs=62) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp193) ; ATSlocal (ats_uint_type, tmp194) ; ATSlocal (ats_uint_type, tmp195) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol: tmp194 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_stamp) ; tmp195 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_stamp) ; tmp193 = atspre_compare_uint_uint (tmp194, tmp195) ; return (tmp193) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 10541(line=408, offs=14) -- 10576(line=408, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__print_symbol (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp196) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__print_symbol: /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (stdout, arg0) ; return /* (tmp196) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__print_symbol] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 10600(line=410, offs=14) -- 10635(line=410, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp197) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol: /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (stderr, arg0) ; return /* (tmp197) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 10686(line=416, offs=3) -- 10724(line=416, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol: tmp199 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_name) ; /* tmp198 = */ atspre_fprint_string (arg0, tmp199) ; return /* (tmp198) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol] */ /* // /tmp/ATS-Postiats/src/pats_symbol.dats: 10757(line=420, offs=3) -- 11004(line=432, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbolopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbolopt: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp201 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; /* tmp202 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp201) ; /* tmp200 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: /* tmp200 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; } while (0) ; return /* (tmp200) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbolopt] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_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) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2extern_2esats__minus_addback_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_symbol_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats____assert1_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2edats____assert2_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp95, sizeof(ats_uint_type)) ; ATS_GC_MARKROOT(&statmp107, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp109, sizeof(ats_bool_type)) ; ATS_GC_MARKROOT(&statmp110, sizeof(ats_uint_type)) ; ATS_GC_MARKROOT(&statmp111, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp112, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp113, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp114, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp115, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp116, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp117, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp118, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp119, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp120, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp121, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp122, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp123, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp124, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp125, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp126, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp127, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp128, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp129, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp130, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp131, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp132, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp133, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp134, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp135, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp136, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp137, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp138, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp139, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp140, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp141, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp142, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp143, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp144, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp145, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp146, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp147, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp148, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp149, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp150, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp151, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp152, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp153, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp154, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp155, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp156, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp157, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp158, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp159, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp160, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp161, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp162, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp163, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp164, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp165, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp166, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp167, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp168, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp169, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp170, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp171, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp172, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp173, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp174, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp175, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp176, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp177, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp178, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp179, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp180, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp181, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp182, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp183, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp184, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp185, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp186, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp7 = atslib_hashtbl_make_hint__linprb_string_2csymbol (ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), 1024) ; /* ats_uint_type statmp95 ; */ statmp95 = 0u ; /* statmp96 = */ atspre_vbox_make_view_ptr ((&statmp95)) ; /* statmp97 = ats_selsin_mac(statmp96, atslab_1) */ ; statmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("")) ; statmp110 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, statmp107), atslab_stamp) ; statmp109 = atspre_eq_uint_uint (statmp110, 0u) ; statmp111 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_symbol.dats: 5503(line=223, offs=12) -- 5526(line=223, offs=35)", ATSstrcst("\n")) ; /* statmp108 = */ atspre_assert_errmsg (statmp109, statmp111) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty = statmp107 ; statmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("~")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_NEG, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_NEG = statmp112 ; statmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("+")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD = statmp113 ; statmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("-")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB = statmp114 ; statmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("*")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MUL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MUL = statmp115 ; statmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("/")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DIV, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DIV = statmp116 ; statmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("&")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERSAND, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERSAND = statmp117 ; statmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("&!")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERBANG, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERBANG = statmp118 ; statmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("&?")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERQMARK, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AMPERQMARK = statmp119 ; statmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("@")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_AT = statmp120 ; statmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("\\")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH = statmp121 ; statmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("!")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANG = statmp122 ; statmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst(":=")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQ, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQ = statmp123 ; statmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst(":=:")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQCOLON, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_COLONEQCOLON = statmp124 ; statmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst(">")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT = statmp125 ; statmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst(">=")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTEQ, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTEQ = statmp126 ; statmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("<")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT = statmp127 ; statmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("<=")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTEQ, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTEQ = statmp128 ; statmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("=")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ = statmp129 ; statmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("==")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQEQ, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQEQ = statmp130 ; statmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("<>")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTGT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTGT = statmp131 ; statmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("!=")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANGEQ, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANGEQ = statmp132 ; statmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("><")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTLT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTLT = statmp133 ; statmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst(">>")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTGT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTGT = statmp134 ; statmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("<<")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTLT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTLT = statmp135 ; statmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("&&")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LAND, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LAND = statmp136 ; statmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("||")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LOR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LOR = statmp137 ; statmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("[]")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LRBRACKETS, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LRBRACKETS = statmp138 ; statmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("->")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT = statmp139 ; statmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("?")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARK, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARK = statmp140 ; statmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("?!")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARKBANG, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_QMARKBANG = statmp141 ; statmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("~")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TILDE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TILDE = statmp142 ; statmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("_")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE = statmp143 ; statmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("vbox")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VBOX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VBOX = statmp144 ; statmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("lam@")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LAMAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LAMAT = statmp145 ; statmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("llam@")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LLAMAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LLAMAT = statmp146 ; statmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("int")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_INT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_INT = statmp147 ; statmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BOOL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BOOL = statmp148 ; statmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADDR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADDR = statmp149 ; statmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("real")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_REAL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_REAL = statmp150 ; statmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("float")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FLOAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FLOAT = statmp151 ; statmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("string")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_STRING, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_STRING = statmp152 ; statmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("cls")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CLS, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CLS = statmp153 ; statmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("eff")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EFF, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EFF = statmp154 ; statmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("tkind")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TKIND, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TKIND = statmp155 ; statmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("prop")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PROP = statmp156 ; statmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPE = statmp157 ; statmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("t@ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_T0YPE = statmp158 ; statmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("view")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEW = statmp159 ; statmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("vtype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VTYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VTYPE = statmp160 ; statmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("vt0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VT0YPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VT0YPE = statmp161 ; statmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("viewtype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWTYPE = statmp162 ; statmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("viewt0ype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_VIEWT0YPE = statmp163 ; statmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("types")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES = statmp164 ; statmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("true_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TRUE_BOOL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TRUE_BOOL = statmp165 ; statmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("false_bool")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FALSE_BOOL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_FALSE_BOOL = statmp166 ; statmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("defined")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DEFINED, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_DEFINED = statmp167 ; statmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("undefined")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDEFINED, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDEFINED = statmp168 ; statmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("car")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR = statmp169 ; statmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("cdr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR = statmp170 ; statmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("isnil")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL = statmp171 ; statmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("iscons")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS = statmp172 ; statmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("islist")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST = statmp173 ; statmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("tupz")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TUPZ, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TUPZ = statmp174 ; statmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("__STDIN__")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STDIN__, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STDIN__ = statmp175 ; statmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("__STRING__")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STRING__, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol__STRING__ = statmp176 ; statmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("PATSHOME")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSHOME, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSHOME = statmp177 ; statmp178 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("PATSCONTRIB")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSCONTRIB, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSCONTRIB = statmp178 ; statmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("PATSHOMELOCS")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSHOMELOCS, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSHOMELOCS = statmp179 ; statmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("PATSRELOCROOT")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSRELOCROOT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_PATSRELOCROOT = statmp180 ; statmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("ATS_PACKNAME")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_PACKNAME, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_PACKNAME = statmp181 ; statmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("ATS_DYNLOADFLAG")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADFLAG, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADFLAG = statmp182 ; statmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("ATS_DYNLOADNAME")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADNAME, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADNAME = statmp183 ; statmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("ATS_MAINATSFLAG")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_MAINATSFLAG, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_MAINATSFLAG = statmp184 ; statmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("ATS_EXTERN_PREFIX")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_EXTERN_PREFIX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_EXTERN_PREFIX = statmp185 ; statmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("ATS_STATIC_PREFIX")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_STATIC_PREFIX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_STATIC_PREFIX = statmp186 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_symbol_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_tokbuf_dats.c0000644000175000017500000013034613431250607022026 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_lexbuf.cats" #include "pats_location.cats" #include "libats/ngc/CATS/deque_arr.cats" #include "libats/ngc/CATS/deque_arr.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_1 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EOF_178) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_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_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_filp) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_getc) (ats_ref_type, ats_clo_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_string) (ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_uninitize) (ats_ref_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_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, 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_2esats__lexing_next_token_ncmnt) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_getinc_token) (ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_trans_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_trans_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_trans_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_trans_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_untrans_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__sasp__tokbuf_vt0ype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type array_ptr_alloc_01563_ats_ptr_type (ats_size_type arg0) ; static ats_void_type deque_initialize_02071_ats_ptr_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) ; static ats_void_type deque_clear_beg_02086_ats_ptr_type (ats_ref_type arg0, ats_size_type arg1) ; static ats_ptr_type deque_get_elt_at_02076_ats_ptr_type (ats_ref_type arg0, ats_size_type arg1) ; static ats_ptr_type DEQUEptrnxt_02098_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type deque_insert_end_02079_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type deque_update_capacity_02091_ats_ptr_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) ; static ats_ptr_type DEQUEptrprv_02096_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type deque_insert_beg_02078_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 23852(line=868, offs=17) -- 23896(line=868, offs=61) */ ATSstaticdec() ats_ptr_type array_ptr_alloc_01563_ats_ptr_type (ats_size_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_array_ptr_alloc_01563_ats_ptr_type: tmp2 = atspre_array_ptr_alloc_tsz (arg0, sizeof(ats_ptr_type)) ; return (tmp2) ; } /* end of [array_ptr_alloc_01563_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02071_ats_ptr_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp5) ; __ats_lab_deque_initialize_02071_ats_ptr_type: /* tmp5 = */ atslib_ngc_deque_arr_deque_initialize_tsz (arg0, arg1, arg2, sizeof(ats_ptr_type)) ; return /* (tmp5) */ ; } /* end of [deque_initialize_02071_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 2454(line=103, offs=3) -- 2806(line=125, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_filp (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp3) ; // ATSlocal_void (tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_filp: tmp1 = array_ptr_alloc_01563_ats_ptr_type (1024) ; tmp3 = ats_selsin_mac(tmp1, atslab_2) ; /* tmp4 = */ deque_initialize_02071_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), 1024, tmp3) ; ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) = 0u ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_filp (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), lexbuf), arg1) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_filp] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 2893(line=131, offs=3) -- 3233(line=153, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_getc (ats_ref_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; // ATSlocal_void (tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_getc: tmp7 = array_ptr_alloc_01563_ats_ptr_type (1024) ; tmp8 = ats_selsin_mac(tmp7, atslab_2) ; /* tmp9 = */ deque_initialize_02071_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), 1024, tmp8) ; ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) = 0u ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_getc (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), lexbuf), arg1) ; return /* (tmp6) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_getc] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 3322(line=159, offs=3) -- 3662(line=181, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_string (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_string: tmp11 = array_ptr_alloc_01563_ats_ptr_type (1024) ; tmp12 = ats_selsin_mac(tmp11, atslab_2) ; /* tmp13 = */ deque_initialize_02071_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), 1024, tmp12) ; ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) = 0u ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_initize_string (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), lexbuf), arg1) ; return /* (tmp10) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_string] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 3753(line=187, offs=3) -- 4063(line=208, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_lexbuf (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; // ATSlocal_void (tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_lexbuf: tmp15 = array_ptr_alloc_01563_ats_ptr_type (1024) ; tmp16 = ats_selsin_mac(tmp15, atslab_2) ; /* tmp17 = */ deque_initialize_02071_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), 1024, tmp16) ; ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) = 0u ; ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), lexbuf) = ats_ptrget_mac(pats_lexbuf_struct, arg1) ; return /* (tmp14) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_initize_lexbuf] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 4149(line=214, offs=3) -- 4424(line=227, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_uninitize (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_uninitize: tmp19 = atslib_ngc_deque_arr_deque_uninitialize (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf)) ; tmp20 = ats_selsin_mac(tmp19, atslab_2) ; /* tmp21 = */ atspre_array_ptr_free (tmp20) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_uninitize (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), lexbuf)) ; return /* (tmp18) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_uninitize] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 4502(line=232, offs=17) -- 4518(line=232, offs=33) */ ATSglobaldec() ats_uint_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_uint_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok: tmp23 = ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 4545(line=234, offs=17) -- 4569(line=234, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok (ats_ref_type arg0, ats_uint_type arg1) { /* local vardec */ // ATSlocal_void (tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok: ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) = arg1 ; return /* (tmp24) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_set_ntok] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 4616(line=239, offs=15) -- 4649(line=239, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp25) ; ATSlocal (ats_uint_type, tmp26) ; ATSlocal (ats_uint_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1: tmp27 = ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) ; tmp26 = atspre_add_uint_uint (tmp27, 1u) ; ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) = tmp26 ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 4679(line=241, offs=20) -- 4714(line=241, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby_count (ats_ref_type arg0, ats_uint_type arg1) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_uint_type, tmp29) ; ATSlocal (ats_uint_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby_count: tmp30 = ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) ; tmp29 = atspre_add_uint_uint (tmp30, arg1) ; ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) = tmp29 ; return /* (tmp28) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby_count] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 10929(line=427, offs=15) -- 11658(line=451, offs=2) */ ATSstaticdec() ats_void_type deque_clear_beg_02086_ats_ptr_type (ats_ref_type arg0, ats_size_type arg1) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_size_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_size_type, tmp40) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptrdiff_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_size_type, tmp47) ; __ats_lab_deque_clear_beg_02086_ats_ptr_type: tmp36 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp37 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_rgt) ; tmp38 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_beg) ; /* ats_ptr_type tmp39 ; */ tmp40 = atspre_mul_size1_size1 (arg1, sizeof(ats_ptr_type)) ; tmp39 = atspre_padd_size (tmp38, tmp40) ; tmp42 = atspre_pgte (tmp39, tmp37) ; if (tmp42) { tmp44 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ; tmp45 = atspre_pdiff (tmp39, tmp37) ; tmp43 = atspre_padd_size (tmp44, ats_castfn_mac(ats_size_type, tmp45)) ; tmp39 = tmp43 ; } else { /* empty */ } /* end of [if] */ tmp46 = ats_castfn_mac(ats_ptr_type, tmp39) ; tmp47 = atspre_sub_size1_size1 (tmp36, arg1) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) = tmp47 ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_beg) = tmp46 ; return /* (tmp35) */ ; } /* end of [deque_clear_beg_02086_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 4760(line=246, offs=14) -- 5182(line=266, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_reset (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp31) ; ATSlocal (ats_uint_type, tmp32) ; ATSlocal (ats_size_type, tmp33) ; ATSlocal (ats_bool_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_reset: tmp32 = ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) ; ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) = 0u ; tmp33 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf)) ; tmp34 = atspre_lt_size1_size1 (ats_castfn_mac(ats_size_type, tmp32), tmp33) ; if (tmp34) { /* tmp31 = */ deque_clear_beg_02086_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), ats_castfn_mac(ats_size_type, tmp32)) ; } else { /* tmp31 = */ ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf)) ; } /* end of [if] */ return /* (tmp31) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_reset] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 7245(line=285, offs=3) -- 7378(line=291, offs=2) */ ATSstaticdec() ats_ptr_type deque_get_elt_at_02076_ats_ptr_type (ats_ref_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab_deque_get_elt_at_02076_ats_ptr_type: tmp53 = atslib_ngc_deque_arr_deque_takeout_tsz (arg0, arg1, sizeof(ats_ptr_type)) ; tmp54 = ats_selsin_mac(tmp53, atslab_2) ; tmp52 = ats_ptrget_mac(ats_ptr_type, tmp54) ; return (tmp52) ; } /* end of [deque_get_elt_at_02076_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02098_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_bool_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab_DEQUEptrnxt_02098_ats_ptr_type: /* ats_ptr_type tmp63 ; */ tmp63 = atspre_padd_size (arg1, sizeof(ats_ptr_type)) ; tmp66 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_rgt) ; tmp65 = atspre_pgte (tmp63, tmp66) ; if (tmp65) { tmp67 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ; tmp63 = tmp67 ; } else { /* empty */ } /* end of [if] */ tmp62 = tmp63 ; return (tmp62) ; } /* end of [DEQUEptrnxt_02098_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02079_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_size_type, tmp69) ; ATSlocal (ats_size_type, tmp70) ; __ats_lab_deque_insert_end_02079_ats_ptr_type: tmp60 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) ; tmp61 = DEQUEptrnxt_02098_ats_ptr_type (arg0, tmp60) ; tmp68 = ats_selsin_mac(tmp61, atslab_1) ; ats_ptrget_mac(ats_ptr_type, tmp60) = arg1 ; tmp70 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp69 = atspre_add_size1_int1 (tmp70, 1) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) = tmp69 ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) = tmp68 ; return /* (tmp59) */ ; } /* end of [deque_insert_end_02079_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02091_ats_ptr_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; __ats_lab_deque_update_capacity_02091_ats_ptr_type: tmp75 = atslib_ngc_deque_arr_deque_update_capacity_tsz (arg0, arg1, arg2, sizeof(ats_ptr_type)) ; return (tmp75) ; } /* end of [deque_update_capacity_02091_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 5259(line=272, offs=3) -- 6083(line=310, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_uint_type, tmp49) ; ATSlocal (ats_size_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_size_type, tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_size_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp76) ; // ATSlocal_void (tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token: tmp49 = ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) ; tmp50 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf)) ; tmp51 = atspre_lt_size1_size1 (ats_castfn_mac(ats_size_type, tmp49), tmp50) ; if (tmp51) { tmp48 = deque_get_elt_at_02076_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), ats_castfn_mac(ats_size_type, tmp49)) ; } else { tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token_ncmnt (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), lexbuf)) ; tmp56 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf)) ; tmp58 = atspre_gt_size1_size1 (tmp56, tmp50) ; if (tmp58) { /* tmp57 = */ deque_insert_end_02079_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), tmp55) ; } else { tmp71 = atspre_add_size1_size1 (tmp56, tmp56) ; tmp72 = array_ptr_alloc_01563_ats_ptr_type (tmp71) ; tmp73 = ats_selsin_mac(tmp72, atslab_2) ; tmp74 = deque_update_capacity_02091_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), tmp71, tmp73) ; tmp76 = ats_selsin_mac(tmp74, atslab_2) ; /* tmp77 = */ atspre_array_ptr_free (tmp76) ; /* tmp57 = */ deque_insert_end_02079_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), tmp55) ; } /* end of [if] */ tmp48 = tmp55 ; } /* end of [if] */ return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 6167(line=316, offs=3) -- 6268(line=320, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_getinc_token (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_uint_type, tmp80) ; ATSlocal (ats_uint_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_getinc_token: tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; tmp81 = ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) ; tmp80 = atspre_add_uint_uint (tmp81, 1u) ; ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), ntok) = tmp80 ; tmp78 = tmp79 ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_getinc_token] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 6357(line=326, offs=3) -- 6548(line=333, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_discard_all (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_discard_all: /* loop initialization */ /* empty */ ats_loop_beg_mac(__ats_lab_0) /* empty */ if (!ats_true_bool) break ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_getinc_token (arg0) ; tmp85 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp83), atslab_token_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp85)->tag != 178) { goto __ats_lab_3_0 ; } __ats_lab_2_1: goto __ats_lab_1 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: goto __ats_lab_0 ; break ; } while (0) ; ats_loop_end_mac(__ats_lab_0, __ats_lab_1) return /* (tmp82) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_discard_all] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 3559(line=132, offs=29) -- 3846(line=142, offs=4) */ ATSstaticdec() ats_ptr_type DEQUEptrprv_02096_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_bool_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab_DEQUEptrprv_02096_ats_ptr_type: /* ats_ptr_type tmp94 ; */ tmp94 = arg1 ; tmp97 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ; tmp96 = atspre_plte (tmp94, tmp97) ; if (tmp96) { tmp98 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_rgt) ; tmp94 = tmp98 ; } else { /* empty */ } /* end of [if] */ /* ats_ptr_type tmp99 ; */ tmp99 = atspre_psub_size (tmp94, sizeof(ats_ptr_type)) ; tmp93 = tmp99 ; return (tmp93) ; } /* end of [DEQUEptrprv_02096_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 8011(line=317, offs=18) -- 8338(line=328, offs=2) */ ATSstaticdec() ats_void_type deque_insert_beg_02078_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_size_type, tmp101) ; ATSlocal (ats_size_type, tmp102) ; __ats_lab_deque_insert_beg_02078_ats_ptr_type: tmp91 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_beg) ; tmp92 = DEQUEptrprv_02096_ats_ptr_type (arg0, tmp91) ; tmp100 = ats_selsin_mac(tmp92, atslab_1) ; ats_ptrget_mac(ats_ptr_type, tmp100) = arg1 ; tmp102 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ; tmp101 = atspre_add_size1_int1 (tmp102, 1) ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) = tmp101 ; ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_beg) = tmp100 ; return /* (tmp90) */ ; } /* end of [deque_insert_beg_02078_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_tokbuf.dats: 6633(line=339, offs=3) -- 7219(line=366, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_unget_token (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp86) ; ATSlocal (ats_size_type, tmp87) ; ATSlocal (ats_size_type, tmp88) ; ATSlocal (ats_bool_type, tmp89) ; ATSlocal (ats_size_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; // ATSlocal_void (tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_unget_token: tmp87 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf)) ; tmp88 = ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf)) ; tmp89 = atspre_gt_size1_size1 (tmp88, tmp87) ; if (tmp89) { /* tmp86 = */ deque_insert_beg_02078_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), arg1) ; } else { tmp103 = atspre_add_size1_size1 (tmp88, tmp88) ; tmp104 = array_ptr_alloc_01563_ats_ptr_type (tmp103) ; tmp105 = ats_selsin_mac(tmp104, atslab_2) ; tmp106 = deque_update_capacity_02091_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), tmp103, tmp105) ; tmp107 = ats_selsin_mac(tmp106, atslab_2) ; /* tmp108 = */ atspre_array_ptr_free (tmp107) ; /* tmp86 = */ deque_insert_beg_02078_ats_ptr_type (&ats_select_mac(ats_ptrget_mac(pats_tokbuf_struct, arg0), tbuf), arg1) ; } /* end of [if] */ return /* (tmp86) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_unget_token] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_trans_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_trans_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_trans_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_trans_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2edats__tokbuf0_untrans_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_tokbuf_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_print_dats.c0000644000175000017500000057565113431250607023065 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_primdec_loc ; ats_ptr_type atslab_primdec_node ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_s2aspdec_loc ; ats_ptr_type atslab_s2aspdec_cst ; ats_ptr_type atslab_s2aspdec_def ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_hiimpdec_loc ; ats_int_type atslab_hiimpdec_knd ; ats_ptr_type atslab_hiimpdec_cst ; ats_ptr_type atslab_hiimpdec_imparg ; ats_ptr_type atslab_hiimpdec_tmparg ; ats_ptr_type atslab_hiimpdec_def ; ats_ptr_type atslab_hiimpdec_funlab ; ats_ptr_type atslab_hiimpdec_instrlst ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_hifundec_loc ; ats_ptr_type atslab_hifundec_var ; ats_ptr_type atslab_hifundec_imparg ; ats_ptr_type atslab_hifundec_def ; ats_ptr_type atslab_hifundec_hidecl ; ats_ptr_type atslab_hifundec_funlab ; } anairiats_rec_8 ; typedef struct { ats_ptr_type atslab_hivaldec_loc ; ats_ptr_type atslab_hivaldec_pat ; ats_ptr_type atslab_hivaldec_def ; } anairiats_rec_9 ; typedef struct { ats_ptr_type atslab_hivardec_loc ; ats_int_type atslab_hivardec_knd ; ats_ptr_type atslab_hivardec_dvar_ptr ; ats_ptr_type atslab_hivardec_dvar_view ; ats_ptr_type atslab_hivardec_type ; ats_ptr_type atslab_hivardec_init ; } anairiats_rec_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_primval_loc ; ats_ptr_type atslab_primval_type ; ats_ptr_type atslab_primval_node ; } anairiats_rec_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_18 ; typedef struct { int tag ; ats_double_type atslab_0 ; } anairiats_sum_19 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_20 ; typedef struct { ats_ptr_type atslab_primlab_loc ; ats_ptr_type atslab_primlab_node ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_22 ; typedef struct { anairiats_rec_22 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_23 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_24 ; typedef struct { ats_ptr_type atslab_instr_loc ; ats_ptr_type atslab_instr_node ; } anairiats_rec_25 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_26 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_27 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_28 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_29 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_30 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_hidynexp_2esats__HIDstaload_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdynload_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBcons_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBnil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPCSTMATsome2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPVARMATsome2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyfil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyloc_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMCSTSPmyfun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__LABPRIMVAL_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMLind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpref_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVarg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargref_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargenv_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargtmpref_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcst_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVenv_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVint_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVintrep_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVbool_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVchar_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfloat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVstring_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVi0nt_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVf0loat_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcstsp_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtyrep_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVsizeof_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtop_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVempty_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVextval_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcastfn_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselcon_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect2_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselptr_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrof_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVptrofsel_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVvararg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVrefarg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVfunlab_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcfunlab_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVd2vfunlab_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVlamfix_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcst_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvar_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltcstmat_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpltvarmat_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVerror_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDsaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDextvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdatdecs_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDexndecs_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDfundecs_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_rec_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvardecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDinclude_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaload_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaloadloc_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdynload_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlocal_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKbool_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKchar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKfloat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKi0nt_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKf0loat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplab_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTtmplabmov_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTcaseof_fail_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTfunarg_fail_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTraise_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfunlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmplab_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScomment_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_val_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_val_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arg_val_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall2_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextfcall_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextmcall_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScond_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfreecon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloopexn_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScaseof_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpop_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpush_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_con_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_boxrec_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_fltrec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpatck_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ptrofsel_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_ptrofs_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSxstore_ptrofs_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSraise_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_delay_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_lazyeval_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStrywith_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_nil_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_nil_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_cons_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_phead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_ptail_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arrpsz_ptr_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_asz_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_ptr_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrinc_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrdec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSclosure_initize_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmpdec_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextvar_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSdcstdef_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStempenver_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIFUNDEC2_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__HIIMPDEC2_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isprint) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_double) (ats_ptr_type, ats_double_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_valkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hifundec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hiimpdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat_kind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat_kind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primcstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdeclst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlablst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_labprimvalist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpmovlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instrlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__fprint_labprimval) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type __ats_fun_6 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type __ats_fun_7 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type __ats_fun_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type __ats_fun_9 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type fpr_25 (ats_ptr_type arg0, anairiats_rec_22 arg1) ; static ats_void_type aux_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_27_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_anairiats_rec_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type fpr_45 (ats_ptr_type arg0, anairiats_rec_22 arg1) ; static ats_void_type loop_47 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_anairiats_rec_22 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 2136(line=87, offs=3) -- 2627(line=110, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primcstsp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primcstsp: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("$myfilename(")) ; /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp1) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("$mylocation(")) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp4) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("$myfunction(")) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp7) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primcstsp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 2707(line=116, offs=3) -- 2747(line=116, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_primdec (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_primdec: /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdec (stdout, arg0) ; return /* (tmp10) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_primdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 2774(line=119, offs=3) -- 2814(line=119, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primdec (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primdec: /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdec (stderr, arg0) ; return /* (tmp11) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primdec] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; ATSlocal (ats_bool_type, tmp45) ; // ATSlocal_void (tmp46) ; ATSlocal (ats_int_type, tmp47) ; __ats_lab_aux_5: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp45 = atspre_gt_int_int (arg1, 0) ; if (tmp45) { /* tmp44 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp46 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp42) ; tmp47 = atspre_add_int_int (arg1, 1) ; arg0 = tmp43 ; arg1 = tmp47 ; goto __ats_lab_aux_5 ; // tail call break ; } while (0) ; return /* (tmp41) */ ; } /* end of [aux_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_5_closure_type ; ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_5 (((aux_5_closure_type*)cloptr)->closure_env_0, ((aux_5_closure_type*)cloptr)->closure_env_1, ((aux_5_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_5_closure_init (aux_5_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ; aux_5_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp40) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp40 = */ aux_5 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp40) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 4434(line=194, offs=23) -- 4488(line=194, offs=77) */ ATSstaticdec() ats_void_type __ats_fun_6 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab___ats_fun_6: tmp58 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_hifundec_var) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp58) ; return /* (tmp57) */ ; } /* end of [__ats_fun_6] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 4755(line=206, offs=23) -- 4809(line=206, offs=77) */ ATSstaticdec() ats_void_type __ats_fun_7 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab___ats_fun_7: tmp66 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg1), atslab_hivaldec_pat) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat (arg0, tmp66) ; return /* (tmp65) */ ; } /* end of [__ats_fun_7] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 5081(line=217, offs=23) -- 5135(line=217, offs=77) */ ATSstaticdec() ats_void_type __ats_fun_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab___ats_fun_8: tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg1), atslab_hivaldec_pat) ; /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hipat (arg0, tmp74) ; return /* (tmp73) */ ; } /* end of [__ats_fun_8] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 5334(line=227, offs=23) -- 5393(line=227, offs=82) */ ATSstaticdec() ats_void_type __ats_fun_9 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab___ats_fun_9: tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_hivardec_dvar_ptr) ; /* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp79) ; return /* (tmp78) */ ; } /* end of [__ats_fun_9] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 2866(line=125, offs=3) -- 6818(line=287, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdec: tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_primdec_node) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp13)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst("PMDnone()")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp13)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_1, tmp13, atslab_0) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("PMDlist(\n")) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdeclst (arg0, tmp14) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp13)->tag != 2) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_1, tmp13, atslab_0) ; /* tmp18 = */ atspre_fprint_string (arg0, ATSstrcst("PMDsaspdec(")) ; tmp20 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp17), atslab_s2aspdec_cst) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (arg0, tmp20) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp13)->tag != 3) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_4, tmp13, atslab_0) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst("PMDextvar(")) ; /* tmp23 = */ atspre_fprint_string (arg0, tmp21) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp13)->tag != 4) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_1, tmp13, atslab_0) ; /* tmp25 = */ atspre_fprint_string (arg0, ATSstrcst("PMDdatdecs(")) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (arg0, tmp24) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp13)->tag != 5) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_1, tmp13, atslab_0) ; /* tmp28 = */ atspre_fprint_string (arg0, ATSstrcst("PMDexndecs(")) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2conlst (arg0, tmp27) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp13)->tag != 10) { goto __ats_lab_12_0 ; } __ats_lab_9_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_1, tmp13, atslab_0) ; tmp31 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp30), atslab_hiimpdec_cst) ; tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp30), atslab_hiimpdec_imparg) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp30), atslab_hiimpdec_tmparg) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst("PMDimpdec(")) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp31) ; /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst("; imparg=")) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp32) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst("; tmparg=")) ; /* tmp39 = */ fprintlst_01887_ats_ptr_type (arg0, tmp33, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp13)->tag != 6) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_7, tmp13, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_7, tmp13, atslab_1) ; tmp50 = ats_caselptrlab_mac(anairiats_sum_7, tmp13, atslab_2) ; /* tmp51 = */ atspre_fprint_string (arg0, ATSstrcst("PMDfundecs(")) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_funkind (arg0, tmp48) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2qualst (arg0, tmp49) ; /* tmp55 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp56 = */ fprintlst_01887_ats_ptr_type (arg0, tmp50, ATSstrcst(", "), &__ats_fun_6) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp13)->tag != 7) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_7, tmp13, atslab_0) ; tmp60 = ats_caselptrlab_mac(anairiats_sum_7, tmp13, atslab_1) ; /* tmp61 = */ atspre_fprint_string (arg0, ATSstrcst("PMDvaldecs(")) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_valkind (arg0, tmp59) ; /* tmp63 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp64 = */ fprintlst_01887_ats_ptr_type (arg0, tmp60, ATSstrcst(", "), &__ats_fun_7) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp13)->tag != 8) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_7, tmp13, atslab_0) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_7, tmp13, atslab_1) ; /* tmp69 = */ atspre_fprint_string (arg0, ATSstrcst("PMDvaldecs_rec(")) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__fprint_valkind (arg0, tmp67) ; /* tmp71 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp72 = */ fprintlst_01887_ats_ptr_type (arg0, tmp68, ATSstrcst(", "), &__ats_fun_8) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp13)->tag != 9) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_4, tmp13, atslab_0) ; /* tmp76 = */ atspre_fprint_string (arg0, ATSstrcst("PMDvardecs(")) ; /* tmp77 = */ fprintlst_01887_ats_ptr_type (arg0, tmp75, ATSstrcst(", "), &__ats_fun_9) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp13)->tag != 11) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_11, tmp13, atslab_0) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_11, tmp13, atslab_1) ; /* tmp82 = */ atspre_fprint_string (arg0, ATSstrcst("PMDinclude(")) ; /* tmp83 = */ atspre_fprint_int (arg0, tmp80) ; /* tmp84 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp85 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdeclst (arg0, tmp81) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp13)->tag != 12) { goto __ats_lab_22_0 ; } __ats_lab_17_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_1, tmp13, atslab_0) ; tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp86), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp87)->tag != 16) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_print.dats: 5699(line=243, offs=9) -- 5756(line=244, offs=47)") ; } tmp88 = ats_caselptrlab_mac(anairiats_sum_13, tmp87, atslab_0) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_13, tmp87, atslab_1) ; /* tmp90 = */ atspre_fprint_string (arg0, ATSstrcst("PMDstaload(")) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (tmp88 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_14, tmp88, atslab_0) ; /* tmp91 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp92) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (tmp88 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: break ; } while (0) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp88 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp93 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp88 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: break ; } while (0) ; /* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp89) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp13)->tag != 13) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_7, tmp13, atslab_0) ; tmp96 = ats_caselptrlab_mac(anairiats_sum_7, tmp13, atslab_1) ; /* tmp97 = */ atspre_fprint_string (arg0, ATSstrcst("PMDstaloadloc(")) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp95) ; /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp96) ; /* tmp100 = */ atspre_fprint_string (arg0, ATSstrcst(" = (*primdeclist*)")) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp13)->tag != 14) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp101 = ats_caselptrlab_mac(anairiats_sum_1, tmp13, atslab_0) ; tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp101), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp102)->tag != 18) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_print.dats: 6474(line=272, offs=9) -- 6508(line=272, offs=43)") ; } tmp103 = ats_caselptrlab_mac(anairiats_sum_1, tmp102, atslab_0) ; /* tmp104 = */ atspre_fprint_string (arg0, ATSstrcst("PMDdynload(")) ; /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp103) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (((ats_sum_ptr_type)tmp13)->tag != 15) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: /* tmp106 = */ atspre_fprint_string (arg0, ATSstrcst("PMDlocal(")) ; /* tmp107 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 6898(line=293, offs=3) -- 7026(line=299, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdeclst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdeclst: /* tmp109 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdec) ; /* tmp108 = */ atspre_fprint_newline (arg0) ; return /* (tmp108) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdeclst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 7107(line=305, offs=3) -- 7147(line=305, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_primval (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_primval: /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (stdout, arg0) ; return /* (tmp110) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_primval] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 7174(line=308, offs=3) -- 7214(line=308, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primval (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp111) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primval: /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (stderr, arg0) ; return /* (tmp111) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primval] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 7264(line=313, offs=16) -- 14492(line=648, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; ATSlocal (ats_int_type, tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_int_type, tmp123) ; // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp125) ; ATSlocal (ats_int_type, tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; ATSlocal (ats_int_type, tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; ATSlocal (ats_int_type, tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_bool_type, tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; ATSlocal (ats_char_type, tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_double_type, tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; // ATSlocal_void (tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; // ATSlocal_void (tmp204) ; // ATSlocal_void (tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; // ATSlocal_void (tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; // ATSlocal_void (tmp223) ; // ATSlocal_void (tmp224) ; // ATSlocal_void (tmp225) ; // ATSlocal_void (tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp229) ; ATSlocal (ats_int_type, tmp230) ; ATSlocal (ats_int_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; ATSlocal (ats_int_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; // ATSlocal_void (tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; // ATSlocal_void (tmp269) ; // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; // ATSlocal_void (tmp285) ; // ATSlocal_void (tmp286) ; // ATSlocal_void (tmp287) ; // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; // ATSlocal_void (tmp292) ; // ATSlocal_void (tmp293) ; // ATSlocal_void (tmp294) ; // ATSlocal_void (tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; // ATSlocal_void (tmp298) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval: tmp113 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_primval_node) ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp113)->tag != 0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp115 = */ atspre_fprint_string (arg0, ATSstrcst("PMVtmp(")) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp114) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp113)->tag != 1) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp118 = */ atspre_fprint_string (arg0, ATSstrcst("PMVtmpref(")) ; /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp117) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp113)->tag != 2) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_16, tmp113, atslab_0) ; /* tmp121 = */ atspre_fprint_string (arg0, ATSstrcst("PMVarg(")) ; /* tmp122 = */ atspre_fprint_int (arg0, tmp120) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp113)->tag != 3) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_16, tmp113, atslab_0) ; /* tmp124 = */ atspre_fprint_string (arg0, ATSstrcst("PMVargref(")) ; /* tmp125 = */ atspre_fprint_int (arg0, tmp123) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp113)->tag != 5) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_16, tmp113, atslab_0) ; /* tmp127 = */ atspre_fprint_string (arg0, ATSstrcst("PMVargtmpref(")) ; /* tmp128 = */ atspre_fprint_int (arg0, tmp126) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp113)->tag != 4) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_16, tmp113, atslab_0) ; /* tmp130 = */ atspre_fprint_string (arg0, ATSstrcst("PMVargenv(")) ; /* tmp131 = */ atspre_fprint_int (arg0, tmp129) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp113)->tag != 6) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp133 = */ atspre_fprint_string (arg0, ATSstrcst("PMVcst(")) ; /* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp132) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp113)->tag != 7) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp136 = */ atspre_fprint_string (arg0, ATSstrcst("PMVenv(")) ; /* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp135) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp113)->tag != 8) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_16, tmp113, atslab_0) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("PMVint(")) ; /* tmp140 = */ atspre_fprint_int (arg0, tmp138) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp113)->tag != 9) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp142 = */ atspre_fprint_string (arg0, ATSstrcst("PMVintrep(")) ; /* tmp143 = */ atspre_fprint_string (arg0, tmp141) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp113)->tag != 10) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_17, tmp113, atslab_0) ; /* tmp145 = */ atspre_fprint_string (arg0, ATSstrcst("PMVbool(")) ; /* tmp146 = */ atspre_fprint_bool (arg0, tmp144) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp113)->tag != 11) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_18, tmp113, atslab_0) ; /* tmp148 = */ atspre_fprint_string (arg0, ATSstrcst("PMVchar(")) ; tmp150 = atspre_char_isprint (tmp147) ; if (tmp150) { /* tmp149 = */ atspre_fprint_char (arg0, tmp147) ; } else { /* tmp149 = */ atspre_fprintf_exn (arg0, ATSstrcst("int(%i)"), ats_castfn_mac(ats_int_type, tmp147)) ; } /* end of [if] */ /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp113)->tag != 12) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp151 = ats_caselptrlab_mac(anairiats_sum_19, tmp113, atslab_0) ; /* tmp152 = */ atspre_fprint_string (arg0, ATSstrcst("PMVfloat(")) ; /* tmp153 = */ atspre_fprint_double (arg0, tmp151) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp113)->tag != 13) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp155 = */ atspre_fprint_string (arg0, ATSstrcst("PMVstring(")) ; /* tmp156 = */ atspre_fprint_string (arg0, tmp154) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp113)->tag != 14) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp157 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("PMVi0nt(")) ; /* tmp159 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp157) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp113)->tag != 15) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp161 = */ atspre_fprint_string (arg0, ATSstrcst("PMVf0loat(")) ; /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp160) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp113)->tag != 16) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primcstsp (arg0, tmp163) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp113)->tag != 17) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp165 = */ atspre_fprint_string (arg0, ATSstrcst("PMVtyrep(")) ; /* tmp166 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp164) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp113)->tag != 18) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp167 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp168 = */ atspre_fprint_string (arg0, ATSstrcst("PMVsizeof(")) ; /* tmp169 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp167) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp113)->tag != 19) { goto __ats_lab_45_0 ; } __ats_lab_44_1: /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst("PMVtop()")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp113)->tag != 20) { goto __ats_lab_46_0 ; } __ats_lab_45_1: /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst("PMVempty()")) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp113)->tag != 21) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp171 = */ atspre_fprint_string (arg0, ATSstrcst("PMVextval(")) ; /* tmp172 = */ atspre_fprint_string (arg0, tmp170) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp113)->tag != 22) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_0) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_1) ; /* tmp175 = */ atspre_fprint_string (arg0, ATSstrcst("PMVcastfn(")) ; /* tmp176 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp173) ; /* tmp177 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp178 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp174) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp113)->tag != 23) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_0) ; tmp180 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_1) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_2) ; /* tmp182 = */ atspre_fprint_string (arg0, ATSstrcst("PMVselcon(")) ; /* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp179) ; /* tmp184 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp180) ; /* tmp186 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp187 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp181) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp113)->tag != 24) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp188 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_0) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_1) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_2) ; /* tmp191 = */ atspre_fprint_string (arg0, ATSstrcst("PMVselect(")) ; /* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp188) ; /* tmp193 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp194 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp189) ; /* tmp195 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlab (arg0, tmp190) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp113)->tag != 25) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_0) ; tmp198 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_1) ; tmp199 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_2) ; /* tmp200 = */ atspre_fprint_string (arg0, ATSstrcst("PMVselect2(")) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp197) ; /* tmp202 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp198) ; /* tmp204 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlablst (arg0, tmp199) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp113)->tag != 26) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_0) ; tmp207 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_1) ; tmp208 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_2) ; /* tmp209 = */ atspre_fprint_string (arg0, ATSstrcst("PMVselptr(")) ; /* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp206) ; /* tmp211 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp207) ; /* tmp213 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp214 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlablst (arg0, tmp208) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp113)->tag != 27) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp215 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp216 = */ atspre_fprint_string (arg0, ATSstrcst("PMVptrof(")) ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp215) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp113)->tag != 28) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_0) ; tmp219 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_1) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_2) ; /* tmp221 = */ atspre_fprint_string (arg0, ATSstrcst("PMVptrofsel(")) ; /* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp218) ; /* tmp223 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp224 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp219) ; /* tmp225 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp226 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlablst (arg0, tmp220) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp113)->tag != 29) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp228 = */ atspre_fprint_string (arg0, ATSstrcst("PMVvararg(")) ; /* tmp229 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist (arg0, tmp227) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp113)->tag != 30) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_20, tmp113, atslab_0) ; tmp231 = ats_caselptrlab_mac(anairiats_sum_20, tmp113, atslab_1) ; tmp232 = ats_caselptrlab_mac(anairiats_sum_20, tmp113, atslab_2) ; /* tmp233 = */ atspre_fprint_string (arg0, ATSstrcst("PMVrefarg(")) ; /* tmp234 = */ atspre_fprint_int (arg0, tmp230) ; /* tmp235 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp236 = */ atspre_fprint_int (arg0, tmp231) ; /* tmp237 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp232) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp113)->tag != 31) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp239 = ats_caselptrlab_mac(anairiats_sum_1, tmp113, atslab_0) ; /* tmp240 = */ atspre_fprint_string (arg0, ATSstrcst("PMVfunlab(")) ; /* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp239) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp113)->tag != 32) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_11, tmp113, atslab_0) ; tmp243 = ats_caselptrlab_mac(anairiats_sum_11, tmp113, atslab_1) ; /* tmp244 = */ atspre_fprint_string (arg0, ATSstrcst("PMVcfunlab(")) ; /* tmp245 = */ atspre_fprint_string (arg0, ATSstrcst("knd=")) ; /* tmp246 = */ atspre_fprint_int (arg0, tmp242) ; /* tmp247 = */ atspre_fprint_string (arg0, ATSstrcst("; flab=")) ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp243) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp113)->tag != 33) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_0) ; tmp250 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_1) ; /* tmp251 = */ atspre_fprint_string (arg0, ATSstrcst("PMVd2vfunlab(")) ; /* tmp252 = */ atspre_fprint_string (arg0, ATSstrcst("d2v=")) ; /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp249) ; /* tmp254 = */ atspre_fprint_string (arg0, ATSstrcst(", flab=")) ; /* tmp255 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp250) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp113)->tag != 34) { goto __ats_lab_62_0 ; } __ats_lab_59_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_0) ; tmp257 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_1) ; /* tmp258 = */ atspre_fprint_string (arg0, ATSstrcst("PMVlamfix(")) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (tmp256 != (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: /* tmp259 = */ atspre_fprint_string (arg0, ATSstrcst("knd=lam")) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (tmp256 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: tmp260 = ats_caselptrlab_mac(anairiats_sum_14, tmp256, atslab_0) ; /* tmp261 = */ atspre_fprint_string (arg0, ATSstrcst("knd=fix(")) ; /* tmp262 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp260) ; /* tmp259 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; /* tmp263 = */ atspre_fprint_string (arg0, ATSstrcst("; fun=")) ; /* tmp264 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp257) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp113)->tag != 35) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp265 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_0) ; tmp266 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_1) ; /* tmp267 = */ atspre_fprint_string (arg0, ATSstrcst("PMVtmpltcst(")) ; /* tmp268 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp265) ; /* tmp269 = */ atspre_fprint_string (arg0, ATSstrcst("<")) ; /* tmp270 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst (arg0, tmp266) ; /* tmp271 = */ atspre_fprint_string (arg0, ATSstrcst(">")) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp113)->tag != 36) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp272 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_0) ; tmp273 = ats_caselptrlab_mac(anairiats_sum_4, tmp113, atslab_1) ; /* tmp274 = */ atspre_fprint_string (arg0, ATSstrcst("PMVtmpltvar(")) ; /* tmp275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp272) ; /* tmp276 = */ atspre_fprint_string (arg0, ATSstrcst("<")) ; /* tmp277 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst (arg0, tmp273) ; /* tmp278 = */ atspre_fprint_string (arg0, ATSstrcst(">")) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp113)->tag != 37) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp279 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_0) ; tmp280 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_1) ; tmp281 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_2) ; /* tmp282 = */ atspre_fprint_string (arg0, ATSstrcst("PMVtmpltcstmat[")) ; /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat_kind (arg0, tmp281) ; /* tmp284 = */ atspre_fprint_string (arg0, ATSstrcst("](")) ; /* tmp285 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp279) ; /* tmp286 = */ atspre_fprint_string (arg0, ATSstrcst("<")) ; /* tmp287 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst (arg0, tmp280) ; /* tmp288 = */ atspre_fprint_string (arg0, ATSstrcst(">")) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp113)->tag != 38) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp289 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_0) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_1) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_7, tmp113, atslab_2) ; /* tmp292 = */ atspre_fprint_string (arg0, ATSstrcst("PMVtmpltvarmat[")) ; /* tmp293 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat_kind (arg0, tmp291) ; /* tmp294 = */ atspre_fprint_string (arg0, ATSstrcst("](")) ; /* tmp295 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp289) ; /* tmp296 = */ atspre_fprint_string (arg0, ATSstrcst("<")) ; /* tmp297 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst (arg0, tmp290) ; /* tmp298 = */ atspre_fprint_string (arg0, ATSstrcst(">")) ; /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (((ats_sum_ptr_type)tmp113)->tag != 39) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: /* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst("PMVerror()")) ; break ; } while (0) ; return /* (tmp112) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 14572(line=654, offs=3) -- 14631(line=655, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp299) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist: /* tmp299 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval) ; return /* (tmp299) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 14712(line=662, offs=3) -- 14752(line=662, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_primlab (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp300) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_primlab: /* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlab (stdout, arg0) ; return /* (tmp300) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_primlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 14779(line=665, offs=3) -- 14819(line=665, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primlab (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp301) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primlab: /* tmp301 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlab (stderr, arg0) ; return /* (tmp301) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_primlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 14871(line=671, offs=3) -- 15210(line=690, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; // ATSlocal_void (tmp308) ; // ATSlocal_void (tmp309) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlab: tmp303 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg1), atslab_primlab_node) ; do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp303)->tag != 0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_1, tmp303, atslab_0) ; /* tmp305 = */ atspre_fprint_string (arg0, ATSstrcst("PMLlab(")) ; /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp304) ; /* tmp302 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (((ats_sum_ptr_type)tmp303)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp307 = ats_caselptrlab_mac(anairiats_sum_1, tmp303, atslab_0) ; /* tmp308 = */ atspre_fprint_string (arg0, ATSstrcst("PMLind(")) ; /* tmp309 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist (arg0, tmp307) ; /* tmp302 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp302) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 15269(line=694, offs=3) -- 15328(line=695, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlablst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp310) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlablst: /* tmp310 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlab) ; return /* (tmp310) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlablst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 15467(line=704, offs=3) -- 15598(line=707, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__fprint_labprimval (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; // ATSlocal_void (tmp314) ; // ATSlocal_void (tmp315) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__fprint_labprimval: tmp312 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp313 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp312) ; /* tmp315 = */ atspre_fprint_string (arg0, ATSstrcst("=")) ; /* tmp311 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp313) ; return /* (tmp311) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__fprint_labprimval] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 15663(line=711, offs=3) -- 15725(line=712, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_labprimvalist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp316) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_labprimvalist: /* tmp316 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__fprint_labprimval) ; return /* (tmp316) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_labprimvalist] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 15806(line=719, offs=3) -- 16854(line=770, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; ATSlocal (ats_int_type, tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; ATSlocal (ats_bool_type, tmp324) ; // ATSlocal_void (tmp325) ; // ATSlocal_void (tmp326) ; ATSlocal (ats_char_type, tmp327) ; // ATSlocal_void (tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_double_type, tmp330) ; // ATSlocal_void (tmp331) ; // ATSlocal_void (tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; // ATSlocal_void (tmp337) ; // ATSlocal_void (tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; // ATSlocal_void (tmp340) ; // ATSlocal_void (tmp341) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp318 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp319 = */ atspre_fprint_string (arg0, ATSstrcst("PATCKcon(")) ; /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp318) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp321 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; /* tmp322 = */ atspre_fprint_string (arg0, ATSstrcst("PATCKint(")) ; /* tmp323 = */ atspre_fprint_int (arg0, tmp321) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp324 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_0) ; /* tmp325 = */ atspre_fprint_string (arg0, ATSstrcst("PATCKbool(")) ; /* tmp326 = */ atspre_fprint_bool (arg0, tmp324) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp327 = ats_caselptrlab_mac(anairiats_sum_18, arg1, atslab_0) ; /* tmp328 = */ atspre_fprint_string (arg0, ATSstrcst("PATCKchar(")) ; /* tmp329 = */ atspre_fprint_char (arg0, tmp327) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp330 = ats_caselptrlab_mac(anairiats_sum_19, arg1, atslab_0) ; /* tmp331 = */ atspre_fprint_string (arg0, ATSstrcst("PATCKfloat(")) ; /* tmp332 = */ atspre_fprint_double (arg0, tmp330) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp333 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp334 = */ atspre_fprint_string (arg0, ATSstrcst("PATCKstring(")) ; /* tmp335 = */ atspre_fprint_string (arg0, tmp333) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp336 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp337 = */ atspre_fprint_string (arg0, ATSstrcst("PATCKi0nt(")) ; /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp336) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (((ats_sum_ptr_type)arg1)->tag != 7) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp340 = */ atspre_fprint_string (arg0, ATSstrcst("PATCKf0loat(")) ; /* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp339) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp317) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 16896(line=773, offs=13) -- 16930(line=773, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_patck (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp342) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_patck: /* tmp342 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck (stdout, arg0) ; return /* (tmp342) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_patck] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 16953(line=775, offs=13) -- 16987(line=775, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_patck (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp343) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_patck: /* tmp343 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck (stderr, arg0) ; return /* (tmp343) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_patck] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 17060(line=782, offs=5) -- 17218(line=790, offs=2) */ ATSstaticdec() ats_void_type fpr_25 (ats_ptr_type arg0, anairiats_rec_22 arg1) { /* local vardec */ // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; // ATSlocal_void (tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; __ats_lab_fpr_25: tmp347 = ats_select_mac(arg1, atslab_1) ; /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp347) ; /* tmp348 = */ atspre_fprint_string (arg0, ATSstrcst("<-")) ; tmp349 = ats_select_mac(arg1, atslab_0) ; /* tmp345 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmprimval (arg0, tmp349) ; return /* (tmp345) */ ; } /* end of [fpr_25] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp351) ; ATSlocal (anairiats_rec_22, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; // ATSlocal_void (tmp354) ; ATSlocal (ats_bool_type, tmp355) ; // ATSlocal_void (tmp356) ; ATSlocal (ats_int_type, tmp357) ; __ats_lab_aux_27: do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp352 = ats_caselptrlab_mac(anairiats_sum_23, arg0, atslab_0) ; tmp353 = ats_caselptrlab_mac(anairiats_sum_23, arg0, atslab_1) ; tmp355 = atspre_gt_int_int (arg1, 0) ; if (tmp355) { /* tmp354 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp356 = */ ((ats_void_type(*)(ats_ptr_type, anairiats_rec_22))env2) (env0, tmp352) ; tmp357 = atspre_add_int_int (arg1, 1) ; arg0 = tmp353 ; arg1 = tmp357 ; goto __ats_lab_aux_27 ; // tail call break ; } while (0) ; return /* (tmp351) */ ; } /* end of [aux_27] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_27_closure_type ; ats_void_type aux_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_27 (((aux_27_closure_type*)cloptr)->closure_env_0, ((aux_27_closure_type*)cloptr)->closure_env_1, ((aux_27_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_27_closure_init (aux_27_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_27_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_27_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_27_closure_type *p_clo = ATS_MALLOC(sizeof(aux_27_closure_type)) ; aux_27_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_anairiats_rec_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp350) ; __ats_lab_fprintlst_01887_anairiats_rec_22: /* tmp350 = */ aux_27 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp350) */ ; } /* end of [fprintlst_01887_anairiats_rec_22] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 17037(line=780, offs=18) -- 17265(line=794, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpmovlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp344) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpmovlst: /* tmp344 = */ fprintlst_01887_anairiats_rec_22 (arg0, arg1, ATSstrcst(", "), &fpr_25) ; return /* (tmp344) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpmovlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 17345(line=800, offs=3) -- 18442(line=858, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; // ATSlocal_void (tmp360) ; // ATSlocal_void (tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_int_type, tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; // ATSlocal_void (tmp366) ; // ATSlocal_void (tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; // ATSlocal_void (tmp370) ; // ATSlocal_void (tmp371) ; // ATSlocal_void (tmp372) ; // ATSlocal_void (tmp373) ; // ATSlocal_void (tmp374) ; // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; // ATSlocal_void (tmp378) ; // ATSlocal_void (tmp379) ; // ATSlocal_void (tmp380) ; // ATSlocal_void (tmp381) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst("PTCKNTnone()")) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp359 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp360 = */ atspre_fprint_string (arg0, ATSstrcst("PTCKNTtmplab(")) ; /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (arg0, tmp359) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp362 = ats_caselptrlab_mac(anairiats_sum_24, arg1, atslab_0) ; tmp363 = ats_caselptrlab_mac(anairiats_sum_24, arg1, atslab_1) ; /* tmp364 = */ atspre_fprint_string (arg0, ATSstrcst("PTCKNTtmplabint(")) ; /* tmp365 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (arg0, tmp362) ; /* tmp366 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp367 = */ atspre_fprint_int (arg0, tmp363) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp368 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp369 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp370 = */ atspre_fprint_string (arg0, ATSstrcst("PTCKNTtmplabmov(")) ; /* tmp371 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (arg0, tmp368) ; /* tmp372 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpmovlst (arg0, tmp369) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_84_0 ; } __ats_lab_83_1: /* tmp374 = */ atspre_fprint_string (arg0, ATSstrcst("PTCKNTcaseof_fail(")) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp375 = */ atspre_fprint_string (arg0, ATSstrcst("PTCKNTfunarg_fail(")) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (((ats_sum_ptr_type)arg1)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp376 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp377 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp378 = */ atspre_fprint_string (arg0, ATSstrcst("PTCKNTraise(")) ; /* tmp379 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp376) ; /* tmp380 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp377) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp358) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 18490(line=861, offs=16) -- 18527(line=861, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_patckont (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp382) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_patckont: /* tmp382 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont (stdout, arg0) ; return /* (tmp382) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_patckont] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 18553(line=863, offs=16) -- 18590(line=863, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_patckont (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp383) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_patckont: /* tmp383 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont (stderr, arg0) ; return /* (tmp383) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_patckont] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 18638(line=869, offs=3) -- 29551(line=1308, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; // ATSlocal_void (tmp387) ; // ATSlocal_void (tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; // ATSlocal_void (tmp390) ; // ATSlocal_void (tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; // ATSlocal_void (tmp393) ; // ATSlocal_void (tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; // ATSlocal_void (tmp397) ; // ATSlocal_void (tmp398) ; // ATSlocal_void (tmp399) ; // ATSlocal_void (tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; // ATSlocal_void (tmp403) ; // ATSlocal_void (tmp404) ; // ATSlocal_void (tmp405) ; // ATSlocal_void (tmp406) ; ATSlocal (ats_int_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; // ATSlocal_void (tmp409) ; // ATSlocal_void (tmp410) ; // ATSlocal_void (tmp411) ; // ATSlocal_void (tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; // ATSlocal_void (tmp417) ; // ATSlocal_void (tmp418) ; // ATSlocal_void (tmp419) ; // ATSlocal_void (tmp420) ; // ATSlocal_void (tmp421) ; // ATSlocal_void (tmp422) ; // ATSlocal_void (tmp423) ; // ATSlocal_void (tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_int_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; // ATSlocal_void (tmp430) ; // ATSlocal_void (tmp431) ; // ATSlocal_void (tmp432) ; // ATSlocal_void (tmp433) ; // ATSlocal_void (tmp434) ; // ATSlocal_void (tmp435) ; // ATSlocal_void (tmp436) ; // ATSlocal_void (tmp437) ; // ATSlocal_void (tmp438) ; // ATSlocal_void (tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; // ATSlocal_void (tmp443) ; // ATSlocal_void (tmp444) ; // ATSlocal_void (tmp445) ; // ATSlocal_void (tmp446) ; // ATSlocal_void (tmp447) ; // ATSlocal_void (tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; // ATSlocal_void (tmp453) ; // ATSlocal_void (tmp454) ; // ATSlocal_void (tmp455) ; // ATSlocal_void (tmp456) ; // ATSlocal_void (tmp457) ; // ATSlocal_void (tmp458) ; // ATSlocal_void (tmp459) ; // ATSlocal_void (tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; // ATSlocal_void (tmp464) ; // ATSlocal_void (tmp465) ; // ATSlocal_void (tmp466) ; // ATSlocal_void (tmp467) ; // ATSlocal_void (tmp468) ; // ATSlocal_void (tmp469) ; // ATSlocal_void (tmp470) ; // ATSlocal_void (tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; // ATSlocal_void (tmp473) ; // ATSlocal_void (tmp474) ; ATSlocal (ats_int_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; // ATSlocal_void (tmp477) ; // ATSlocal_void (tmp478) ; // ATSlocal_void (tmp479) ; // ATSlocal_void (tmp480) ; // ATSlocal_void (tmp481) ; // ATSlocal_void (tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; // ATSlocal_void (tmp484) ; // ATSlocal_void (tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; // ATSlocal_void (tmp490) ; // ATSlocal_void (tmp491) ; // ATSlocal_void (tmp492) ; // ATSlocal_void (tmp493) ; // ATSlocal_void (tmp494) ; // ATSlocal_void (tmp495) ; // ATSlocal_void (tmp496) ; // ATSlocal_void (tmp497) ; // ATSlocal_void (tmp498) ; // ATSlocal_void (tmp499) ; // ATSlocal_void (tmp500) ; // ATSlocal_void (tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; // ATSlocal_void (tmp504) ; // ATSlocal_void (tmp505) ; // ATSlocal_void (tmp506) ; // ATSlocal_void (tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; // ATSlocal_void (tmp512) ; // ATSlocal_void (tmp513) ; // ATSlocal_void (tmp514) ; // ATSlocal_void (tmp515) ; // ATSlocal_void (tmp516) ; // ATSlocal_void (tmp517) ; // ATSlocal_void (tmp518) ; // ATSlocal_void (tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; // ATSlocal_void (tmp524) ; // ATSlocal_void (tmp525) ; // ATSlocal_void (tmp526) ; // ATSlocal_void (tmp527) ; // ATSlocal_void (tmp528) ; // ATSlocal_void (tmp529) ; // ATSlocal_void (tmp530) ; // ATSlocal_void (tmp531) ; // ATSlocal_void (tmp532) ; // ATSlocal_void (tmp533) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; // ATSlocal_void (tmp536) ; // ATSlocal_void (tmp537) ; // ATSlocal_void (tmp538) ; // ATSlocal_void (tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_int_type, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; // ATSlocal_void (tmp544) ; // ATSlocal_void (tmp545) ; // ATSlocal_void (tmp546) ; // ATSlocal_void (tmp547) ; // ATSlocal_void (tmp548) ; // ATSlocal_void (tmp549) ; // ATSlocal_void (tmp550) ; // ATSlocal_void (tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_int_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; // ATSlocal_void (tmp556) ; // ATSlocal_void (tmp557) ; // ATSlocal_void (tmp558) ; // ATSlocal_void (tmp559) ; // ATSlocal_void (tmp560) ; // ATSlocal_void (tmp561) ; // ATSlocal_void (tmp562) ; // ATSlocal_void (tmp563) ; // ATSlocal_void (tmp564) ; // ATSlocal_void (tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; // ATSlocal_void (tmp567) ; // ATSlocal_void (tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; // ATSlocal_void (tmp570) ; // ATSlocal_void (tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; // ATSlocal_void (tmp574) ; // ATSlocal_void (tmp575) ; // ATSlocal_void (tmp576) ; // ATSlocal_void (tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; // ATSlocal_void (tmp581) ; // ATSlocal_void (tmp582) ; // ATSlocal_void (tmp583) ; // ATSlocal_void (tmp584) ; // ATSlocal_void (tmp585) ; // ATSlocal_void (tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; ATSlocal (ats_ptr_type, tmp589) ; // ATSlocal_void (tmp590) ; // ATSlocal_void (tmp591) ; // ATSlocal_void (tmp592) ; // ATSlocal_void (tmp593) ; // ATSlocal_void (tmp594) ; // ATSlocal_void (tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; ATSlocal (ats_int_type, tmp597) ; // ATSlocal_void (tmp598) ; // ATSlocal_void (tmp599) ; // ATSlocal_void (tmp600) ; // ATSlocal_void (tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; ATSlocal (ats_ptr_type, tmp603) ; ATSlocal (ats_int_type, tmp604) ; // ATSlocal_void (tmp605) ; // ATSlocal_void (tmp606) ; // ATSlocal_void (tmp607) ; // ATSlocal_void (tmp608) ; // ATSlocal_void (tmp609) ; // ATSlocal_void (tmp610) ; ATSlocal (ats_ptr_type, tmp611) ; ATSlocal (ats_ptr_type, tmp612) ; // ATSlocal_void (tmp613) ; // ATSlocal_void (tmp614) ; // ATSlocal_void (tmp615) ; // ATSlocal_void (tmp616) ; ATSlocal (ats_ptr_type, tmp617) ; ATSlocal (ats_ptr_type, tmp618) ; // ATSlocal_void (tmp619) ; // ATSlocal_void (tmp620) ; // ATSlocal_void (tmp621) ; // ATSlocal_void (tmp622) ; ATSlocal (ats_ptr_type, tmp623) ; ATSlocal (ats_ptr_type, tmp624) ; // ATSlocal_void (tmp625) ; // ATSlocal_void (tmp626) ; // ATSlocal_void (tmp627) ; // ATSlocal_void (tmp628) ; ATSlocal (ats_ptr_type, tmp629) ; ATSlocal (ats_ptr_type, tmp630) ; // ATSlocal_void (tmp631) ; // ATSlocal_void (tmp632) ; // ATSlocal_void (tmp633) ; // ATSlocal_void (tmp634) ; ATSlocal (ats_ptr_type, tmp635) ; // ATSlocal_void (tmp636) ; // ATSlocal_void (tmp637) ; ATSlocal (ats_ptr_type, tmp638) ; ATSlocal (ats_ptr_type, tmp639) ; // ATSlocal_void (tmp640) ; // ATSlocal_void (tmp641) ; // ATSlocal_void (tmp642) ; // ATSlocal_void (tmp643) ; ATSlocal (ats_ptr_type, tmp644) ; ATSlocal (ats_ptr_type, tmp645) ; // ATSlocal_void (tmp646) ; // ATSlocal_void (tmp647) ; // ATSlocal_void (tmp648) ; // ATSlocal_void (tmp649) ; ATSlocal (ats_ptr_type, tmp650) ; // ATSlocal_void (tmp651) ; // ATSlocal_void (tmp652) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr: tmp385 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg1), atslab_instr_node) ; do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp385)->tag != 0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp386 = ats_caselptrlab_mac(anairiats_sum_1, tmp385, atslab_0) ; /* tmp387 = */ atspre_fprint_string (arg0, ATSstrcst("INSfunlab(")) ; /* tmp388 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp386) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp385)->tag != 1) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp389 = ats_caselptrlab_mac(anairiats_sum_1, tmp385, atslab_0) ; /* tmp390 = */ atspre_fprint_string (arg0, ATSstrcst("INStmplab(")) ; /* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (arg0, tmp389) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp385)->tag != 2) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp392 = ats_caselptrlab_mac(anairiats_sum_1, tmp385, atslab_0) ; /* tmp393 = */ atspre_fprint_string (arg0, ATSstrcst("INScomment(")) ; /* tmp394 = */ atspre_fprint_string (arg0, tmp392) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp385)->tag != 3) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp395 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_1) ; /* tmp397 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_val(")) ; /* tmp398 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp395) ; /* tmp399 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp400 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp396) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp385)->tag != 4) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp401 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp402 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_1) ; /* tmp403 = */ atspre_fprint_string (arg0, ATSstrcst("INSpmove_val(")) ; /* tmp404 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp401) ; /* tmp405 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp406 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp402) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp385)->tag != 5) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp407 = ats_caselptrlab_mac(anairiats_sum_11, tmp385, atslab_0) ; tmp408 = ats_caselptrlab_mac(anairiats_sum_11, tmp385, atslab_1) ; /* tmp409 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_arg_val(")) ; /* tmp410 = */ atspre_fprintf_exn (arg0, ATSstrcst("arg(%i)"), tmp407) ; /* tmp411 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp412 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp408) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp385)->tag != 6) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp413 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_0) ; tmp414 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_1) ; tmp415 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_2) ; tmp416 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_3) ; /* tmp417 = */ atspre_fprint_string (arg0, ATSstrcst("INSfcall(")) ; /* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp413) ; /* tmp419 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp420 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp414) ; /* tmp421 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp422 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp415) ; /* tmp423 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp424 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist (arg0, tmp416) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst("))")) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp385)->tag != 7) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp425 = ats_caselptrlab_mac(anairiats_sum_27, tmp385, atslab_0) ; tmp426 = ats_caselptrlab_mac(anairiats_sum_27, tmp385, atslab_1) ; tmp427 = ats_caselptrlab_mac(anairiats_sum_27, tmp385, atslab_2) ; tmp428 = ats_caselptrlab_mac(anairiats_sum_27, tmp385, atslab_3) ; tmp429 = ats_caselptrlab_mac(anairiats_sum_27, tmp385, atslab_4) ; /* tmp430 = */ atspre_fprint_string (arg0, ATSstrcst("INSfcall2(")) ; /* tmp431 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp425) ; /* tmp432 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp433 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp426) ; /* tmp434 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp435 = */ atspre_fprint_int (arg0, tmp427) ; /* tmp436 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp437 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp428) ; /* tmp438 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp439 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist (arg0, tmp429) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst("))")) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp385)->tag != 8) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp440 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_0) ; tmp441 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_1) ; tmp442 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_2) ; /* tmp443 = */ atspre_fprint_string (arg0, ATSstrcst("INSextfcall(")) ; /* tmp444 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp440) ; /* tmp445 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp446 = */ atspre_fprint_string (arg0, tmp441) ; /* tmp447 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp448 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist (arg0, tmp442) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst("))")) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp385)->tag != 9) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_0) ; tmp450 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_1) ; tmp451 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_2) ; tmp452 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_3) ; /* tmp453 = */ atspre_fprint_string (arg0, ATSstrcst("INSextmcall(")) ; /* tmp454 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp449) ; /* tmp455 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp456 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp450) ; /* tmp457 = */ atspre_fprint_string (arg0, ATSstrcst(".")) ; /* tmp458 = */ atspre_fprint_string (arg0, tmp451) ; /* tmp459 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp460 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primvalist (arg0, tmp452) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst("))")) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp385)->tag != 10) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp461 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_0) ; tmp462 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_1) ; tmp463 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_2) ; /* tmp464 = */ atspre_fprint_string (arg0, ATSstrcst("INScond(\n")) ; /* tmp465 = */ atspre_fprint_string (arg0, ATSstrcst("**COND**\n")) ; /* tmp466 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp461) ; /* tmp467 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ; /* tmp468 = */ atspre_fprint_string (arg0, ATSstrcst("**THEN**\n")) ; /* tmp469 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instrlst (arg0, tmp462) ; /* tmp470 = */ atspre_fprint_string (arg0, ATSstrcst("**ELSE**\n")) ; /* tmp471 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instrlst (arg0, tmp463) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp385)->tag != 11) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp472 = ats_caselptrlab_mac(anairiats_sum_1, tmp385, atslab_0) ; /* tmp473 = */ atspre_fprint_string (arg0, ATSstrcst("INSfreecon(")) ; /* tmp474 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp472) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp385)->tag != 12) { goto __ats_lab_99_0 ; } __ats_lab_98_1: /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst("INSloop(...)")) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp385)->tag != 13) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp475 = ats_caselptrlab_mac(anairiats_sum_11, tmp385, atslab_0) ; tmp476 = ats_caselptrlab_mac(anairiats_sum_11, tmp385, atslab_1) ; /* tmp477 = */ atspre_fprint_string (arg0, ATSstrcst("INSloopexn(")) ; /* tmp478 = */ atspre_fprint_int (arg0, tmp475) ; /* tmp479 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp480 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmplab (arg0, tmp476) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp385)->tag != 14) { goto __ats_lab_101_0 ; } __ats_lab_100_1: /* tmp481 = */ atspre_fprint_string (arg0, ATSstrcst("INScaseof(")) ; /* tmp482 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp385)->tag != 15) { goto __ats_lab_102_0 ; } __ats_lab_101_1: /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst("INSletpop()")) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp385)->tag != 16) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp483 = ats_caselptrlab_mac(anairiats_sum_1, tmp385, atslab_0) ; /* tmp484 = */ atspre_fprint_string (arg0, ATSstrcst("INSletpush(\n")) ; /* tmp485 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primdeclst (arg0, tmp483) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp385)->tag != 17) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp486 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_0) ; tmp487 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_1) ; tmp488 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_2) ; tmp489 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_3) ; /* tmp490 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_con(")) ; /* tmp491 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp486) ; /* tmp492 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp493 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp487) ; /* tmp494 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp495 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp488) ; /* tmp496 = */ atspre_fprint_string (arg0, ATSstrcst(";")) ; /* tmp497 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_labprimvalist (arg0, tmp489) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst("))")) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp385)->tag != 19) { goto __ats_lab_105_0 ; } __ats_lab_104_1: /* tmp498 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_boxrec(")) ; /* tmp499 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp385)->tag != 20) { goto __ats_lab_106_0 ; } __ats_lab_105_1: /* tmp500 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_fltrec(")) ; /* tmp501 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp385)->tag != 21) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp502 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_1) ; tmp503 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_2) ; /* tmp504 = */ atspre_fprint_string (arg0, ATSstrcst("INSpatck(")) ; /* tmp505 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patck (arg0, tmp502) ; /* tmp506 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp507 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_patckont (arg0, tmp503) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp385)->tag != 22) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp508 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_0) ; tmp509 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_1) ; tmp510 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_2) ; tmp511 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_3) ; /* tmp512 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_ptrofsel(")) ; /* tmp513 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp508) ; /* tmp514 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp515 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp509) ; /* tmp516 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp517 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp510) ; /* tmp518 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp519 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlablst (arg0, tmp511) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp385)->tag != 23) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp520 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_0) ; tmp521 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_1) ; tmp522 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_2) ; tmp523 = ats_caselptrlab_mac(anairiats_sum_26, tmp385, atslab_3) ; /* tmp524 = */ atspre_fprint_string (arg0, ATSstrcst("INSstore_ptrofs(")) ; /* tmp525 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp520) ; /* tmp526 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp527 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp521) ; /* tmp528 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; /* tmp529 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp530 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primlablst (arg0, tmp522) ; /* tmp531 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp532 = */ atspre_fprint_string (arg0, ATSstrcst(" := ")) ; /* tmp533 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp523) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp385)->tag != 24) { goto __ats_lab_110_0 ; } __ats_lab_109_1: /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst("INSxstore_ptrofs(...)")) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp385)->tag != 25) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp534 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp535 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_1) ; /* tmp536 = */ atspre_fprint_string (arg0, ATSstrcst("INSraise(")) ; /* tmp537 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp534) ; /* tmp538 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp539 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp535) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp385)->tag != 26) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp540 = ats_caselptrlab_mac(anairiats_sum_28, tmp385, atslab_0) ; tmp541 = ats_caselptrlab_mac(anairiats_sum_28, tmp385, atslab_1) ; tmp542 = ats_caselptrlab_mac(anairiats_sum_28, tmp385, atslab_2) ; tmp543 = ats_caselptrlab_mac(anairiats_sum_28, tmp385, atslab_3) ; /* tmp544 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_delay(")) ; /* tmp545 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp540) ; /* tmp546 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp547 = */ atspre_fprint_int (arg0, tmp541) ; /* tmp548 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp549 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp542) ; /* tmp550 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp551 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp543) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp385)->tag != 27) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp552 = ats_caselptrlab_mac(anairiats_sum_28, tmp385, atslab_0) ; tmp553 = ats_caselptrlab_mac(anairiats_sum_28, tmp385, atslab_1) ; tmp554 = ats_caselptrlab_mac(anairiats_sum_28, tmp385, atslab_2) ; tmp555 = ats_caselptrlab_mac(anairiats_sum_28, tmp385, atslab_3) ; /* tmp556 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_lazyeval(")) ; /* tmp557 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp552) ; /* tmp558 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp559 = */ atspre_fprint_int (arg0, tmp553) ; /* tmp560 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp561 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp554) ; /* tmp562 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp563 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp555) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp385)->tag != 28) { goto __ats_lab_114_0 ; } __ats_lab_113_1: /* tmp564 = */ atspre_fprint_string (arg0, ATSstrcst("INStrywith(")) ; /* tmp565 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp385)->tag != 29) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp566 = ats_caselptrlab_mac(anairiats_sum_1, tmp385, atslab_0) ; /* tmp567 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_list_nil(")) ; /* tmp568 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp566) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp385)->tag != 30) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp569 = ats_caselptrlab_mac(anairiats_sum_1, tmp385, atslab_0) ; /* tmp570 = */ atspre_fprint_string (arg0, ATSstrcst("INSpmove_list_nil(")) ; /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp569) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp385)->tag != 31) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp572 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp573 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_1) ; /* tmp574 = */ atspre_fprint_string (arg0, ATSstrcst("INSpmove_list_cons(")) ; /* tmp575 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp572) ; /* tmp576 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp577 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp573) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)tmp385)->tag != 32) { goto __ats_lab_118_0 ; } __ats_lab_117_1: tmp578 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_0) ; tmp579 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_1) ; tmp580 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_2) ; /* tmp581 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_list_phead(")) ; /* tmp582 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp578) ; /* tmp583 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp584 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp579) ; /* tmp585 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp586 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp580) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp385)->tag != 33) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp587 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_0) ; tmp588 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_1) ; tmp589 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_2) ; /* tmp590 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_list_ptail(")) ; /* tmp591 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp587) ; /* tmp592 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp593 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp588) ; /* tmp594 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp595 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp589) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)tmp385)->tag != 35) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp596 = ats_caselptrlab_mac(anairiats_sum_24, tmp385, atslab_0) ; tmp597 = ats_caselptrlab_mac(anairiats_sum_24, tmp385, atslab_1) ; /* tmp598 = */ atspre_fprint_string (arg0, ATSstrcst("INSstore_arrpsz_asz(")) ; /* tmp599 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp596) ; /* tmp600 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp601 = */ atspre_fprint_int (arg0, tmp597) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)tmp385)->tag != 36) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp602 = ats_caselptrlab_mac(anairiats_sum_29, tmp385, atslab_0) ; tmp603 = ats_caselptrlab_mac(anairiats_sum_29, tmp385, atslab_1) ; tmp604 = ats_caselptrlab_mac(anairiats_sum_29, tmp385, atslab_2) ; /* tmp605 = */ atspre_fprint_string (arg0, ATSstrcst("INSstore_arrpsz_ptr(")) ; /* tmp606 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp602) ; /* tmp607 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp608 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp603) ; /* tmp609 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp610 = */ atspre_fprint_int (arg0, tmp604) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp385)->tag != 34) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp611 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp612 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_1) ; /* tmp613 = */ atspre_fprint_string (arg0, ATSstrcst("INSmove_arrpsz_ptr(")) ; /* tmp614 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp611) ; /* tmp615 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp616 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp612) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp385)->tag != 37) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp617 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp618 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_1) ; /* tmp619 = */ atspre_fprint_string (arg0, ATSstrcst("INSupdate_ptrinc(")) ; /* tmp620 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp617) ; /* tmp621 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp622 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp618) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp385)->tag != 38) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp623 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp624 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_1) ; /* tmp625 = */ atspre_fprint_string (arg0, ATSstrcst("INSupdate_ptrdec(")) ; /* tmp626 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp623) ; /* tmp627 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp628 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp624) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp385)->tag != 39) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp629 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_0) ; tmp630 = ats_caselptrlab_mac(anairiats_sum_7, tmp385, atslab_2) ; /* tmp631 = */ atspre_fprint_string (arg0, ATSstrcst("INSclosure_initize(")) ; /* tmp632 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp629) ; /* tmp633 = */ atspre_fprint_string (arg0, ATSstrcst(" <- ")) ; /* tmp634 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp630) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp385)->tag != 40) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp635 = ats_caselptrlab_mac(anairiats_sum_1, tmp385, atslab_0) ; /* tmp636 = */ atspre_fprint_string (arg0, ATSstrcst("INStmpdec(")) ; /* tmp637 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvar (arg0, tmp635) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: if (((ats_sum_ptr_type)tmp385)->tag != 41) { goto __ats_lab_127_0 ; } __ats_lab_126_1: tmp638 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp639 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_1) ; /* tmp640 = */ atspre_fprint_string (arg0, ATSstrcst("INSextvar(")) ; /* tmp641 = */ atspre_fprint_string (arg0, tmp638) ; /* tmp642 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp643 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp639) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp385)->tag != 42) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp644 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_0) ; tmp645 = ats_caselptrlab_mac(anairiats_sum_4, tmp385, atslab_1) ; /* tmp646 = */ atspre_fprint_string (arg0, ATSstrcst("INSdcstdef(")) ; /* tmp647 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp644) ; /* tmp648 = */ atspre_fprint_string (arg0, ATSstrcst(" = ")) ; /* tmp649 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp645) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)tmp385)->tag != 43) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp650 = ats_caselptrlab_mac(anairiats_sum_1, tmp385, atslab_0) ; /* tmp651 = */ atspre_fprint_string (arg0, ATSstrcst("INStempenver(")) ; /* tmp652 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst (arg0, tmp650) ; /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: __ats_lab_129_1: /* tmp384 = */ atspre_fprint_string (arg0, ATSstrcst("INS...(...)")) ; break ; } while (0) ; return /* (tmp384) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 29621(line=1313, offs=13) -- 29659(line=1313, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_instr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp653) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_instr: /* tmp653 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr (stdout, arg0) ; return /* (tmp653) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_instr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 29682(line=1315, offs=13) -- 29720(line=1315, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_instr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp654) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_instr: /* tmp654 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr (stderr, arg0) ; return /* (tmp654) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_instr] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 29771(line=1321, offs=3) -- 29893(line=1327, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instrlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp655) ; // ATSlocal_void (tmp656) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instrlst: /* tmp656 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instr) ; /* tmp655 = */ atspre_fprint_newline (arg0) ; return /* (tmp655) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_instrlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 29993(line=1335, offs=5) -- 30398(line=1357, offs=4) */ ATSstaticdec() ats_void_type loop_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp658) ; ATSlocal (ats_ptr_type, tmp659) ; ATSlocal (ats_ptr_type, tmp660) ; ATSlocal (ats_ptr_type, tmp661) ; // ATSlocal_void (tmp662) ; ATSlocal (ats_bool_type, tmp663) ; // ATSlocal_void (tmp664) ; // ATSlocal_void (tmp665) ; // ATSlocal_void (tmp666) ; ATSlocal (ats_int_type, tmp667) ; __ats_lab_loop_36: do { /* branch: __ats_lab_130 */ __ats_lab_130_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp659 = ats_caselptrlab_mac(anairiats_sum_30, arg1, atslab_0) ; tmp660 = ats_caselptrlab_mac(anairiats_sum_30, arg1, atslab_1) ; tmp661 = ats_caselptrlab_mac(anairiats_sum_30, arg1, atslab_2) ; tmp663 = atspre_gt_int_int (arg2, 0) ; if (tmp663) { /* tmp662 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; } else { /* empty */ } /* end of [if] */ /* tmp664 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp659) ; /* tmp665 = */ atspre_fprint_string (arg0, ATSstrcst(" -> ")) ; /* tmp666 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp660) ; tmp667 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp661 ; arg2 = tmp667 ; goto __ats_lab_loop_36 ; // tail call break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_131_1: break ; } while (0) ; return /* (tmp658) */ ; } /* end of [loop_36] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 29970(line=1333, offs=3) -- 30445(line=1361, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp657) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub: /* tmp657 = */ loop_36 (arg0, arg1, 0) ; return /* (tmp657) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 30502(line=1365, offs=3) -- 30751(line=1380, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsubopt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp668) ; ATSlocal (ats_ptr_type, tmp669) ; // ATSlocal_void (tmp670) ; // ATSlocal_void (tmp671) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsubopt: do { /* branch: __ats_lab_132 */ __ats_lab_132_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp669 = ats_caselptrlab_mac(anairiats_sum_14, arg1, atslab_0) ; /* tmp670 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ; /* tmp671 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub (arg0, tmp669) ; /* tmp668 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (arg1 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_print.dats: 30576(line=1372, offs=1) -- 30744(line=1378, offs=28)") ; } __ats_lab_133_1: /* tmp668 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ; break ; } while (0) ; return /* (tmp668) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsubopt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 30832(line=1386, offs=3) -- 31096(line=1401, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hifundec2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp672) ; ATSlocal (ats_ptr_type, tmp673) ; ATSlocal (ats_ptr_type, tmp674) ; // ATSlocal_void (tmp675) ; // ATSlocal_void (tmp676) ; // ATSlocal_void (tmp677) ; // ATSlocal_void (tmp678) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hifundec2: tmp673 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp674 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; /* tmp675 = */ atspre_fprint_string (arg0, ATSstrcst("HIFUNDEC2(")) ; /* tmp676 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hifundec (arg0, tmp673) ; /* tmp677 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp678 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub (arg0, tmp674) ; /* tmp672 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp672) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hifundec2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 31177(line=1407, offs=3) -- 31448(line=1422, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hiimpdec2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp679) ; ATSlocal (ats_ptr_type, tmp680) ; ATSlocal (ats_ptr_type, tmp681) ; // ATSlocal_void (tmp682) ; // ATSlocal_void (tmp683) ; // ATSlocal_void (tmp684) ; // ATSlocal_void (tmp685) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hiimpdec2: tmp680 = ats_caselptrlab_mac(anairiats_sum_30, arg1, atslab_0) ; tmp681 = ats_caselptrlab_mac(anairiats_sum_30, arg1, atslab_1) ; /* tmp682 = */ atspre_fprint_string (arg0, ATSstrcst("HIIMPDEC2(")) ; /* tmp683 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__fprint_hiimpdec (arg0, tmp680) ; /* tmp684 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp685 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub (arg0, tmp681) ; /* tmp679 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; return /* (tmp679) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hiimpdec2] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 31529(line=1428, offs=3) -- 32407(line=1461, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp686) ; ATSlocal (ats_ptr_type, tmp687) ; ATSlocal (ats_ptr_type, tmp688) ; // ATSlocal_void (tmp689) ; // ATSlocal_void (tmp690) ; ATSlocal (ats_ptr_type, tmp691) ; // ATSlocal_void (tmp692) ; // ATSlocal_void (tmp693) ; ATSlocal (ats_ptr_type, tmp694) ; // ATSlocal_void (tmp695) ; // ATSlocal_void (tmp696) ; ATSlocal (ats_ptr_type, tmp697) ; // ATSlocal_void (tmp698) ; // ATSlocal_void (tmp699) ; ATSlocal (ats_ptr_type, tmp700) ; ATSlocal (ats_ptr_type, tmp701) ; // ATSlocal_void (tmp702) ; // ATSlocal_void (tmp703) ; // ATSlocal_void (tmp704) ; // ATSlocal_void (tmp705) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat: do { /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_135_0 ; } __ats_lab_134_1: /* tmp686 = */ atspre_fprint_string (arg0, ATSstrcst("TMPCSTMATnone()")) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp687 = ats_caselptrlab_mac(anairiats_sum_29, arg1, atslab_0) ; tmp688 = ats_caselptrlab_mac(anairiats_sum_29, arg1, atslab_1) ; /* tmp689 = */ atspre_fprint_string (arg0, ATSstrcst("TMPCSTMATsome(")) ; tmp691 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp687), atslab_hiimpdec_cst) ; /* tmp690 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp691) ; /* tmp692 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; tmp694 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp687), atslab_hiimpdec_imparg) ; /* tmp693 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp694) ; /* tmp695 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; tmp697 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp687), atslab_hiimpdec_tmparg) ; /* tmp696 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst (arg0, tmp697) ; /* tmp698 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp699 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub (arg0, tmp688) ; /* tmp686 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: tmp700 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ; tmp701 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_2) ; /* tmp702 = */ atspre_fprint_string (arg0, ATSstrcst("TMPCSTMATsome2(")) ; /* tmp703 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp701) ; /* tmp704 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp705 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst (arg0, tmp700) ; /* tmp686 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp686) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 32470(line=1464, offs=23) -- 32646(line=1474, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat_kind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp706) ; ATSlocal (ats_int_type, tmp707) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat_kind: do { /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp707 = 0 ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp707 = 1 ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_139_1: tmp707 = 2 ; break ; } while (0) ; /* tmp706 = */ atspre_fprint_int (arg0, tmp707) ; return /* (tmp706) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpcstmat_kind] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 32732(line=1480, offs=3) -- 33527(line=1511, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp708) ; ATSlocal (ats_ptr_type, tmp709) ; ATSlocal (ats_ptr_type, tmp710) ; // ATSlocal_void (tmp711) ; // ATSlocal_void (tmp712) ; ATSlocal (ats_ptr_type, tmp713) ; // ATSlocal_void (tmp714) ; // ATSlocal_void (tmp715) ; ATSlocal (ats_ptr_type, tmp716) ; // ATSlocal_void (tmp717) ; // ATSlocal_void (tmp718) ; ATSlocal (ats_ptr_type, tmp719) ; ATSlocal (ats_ptr_type, tmp720) ; // ATSlocal_void (tmp721) ; // ATSlocal_void (tmp722) ; // ATSlocal_void (tmp723) ; // ATSlocal_void (tmp724) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat: do { /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_141_0 ; } __ats_lab_140_1: /* tmp708 = */ atspre_fprint_string (arg0, ATSstrcst("TMPVARMATnone()")) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp709 = ats_caselptrlab_mac(anairiats_sum_29, arg1, atslab_0) ; tmp710 = ats_caselptrlab_mac(anairiats_sum_29, arg1, atslab_1) ; /* tmp711 = */ atspre_fprint_string (arg0, ATSstrcst("TMPVARMATsome(")) ; tmp713 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp709), atslab_hifundec_var) ; /* tmp712 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp713) ; /* tmp714 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; tmp716 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp709), atslab_hifundec_imparg) ; /* tmp715 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp716) ; /* tmp717 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp718 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpsub (arg0, tmp710) ; /* tmp708 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_142_1: tmp719 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ; tmp720 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_2) ; /* tmp721 = */ atspre_fprint_string (arg0, ATSstrcst("TMPVARMATsome2(")) ; /* tmp722 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp720) ; /* tmp723 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp724 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explstlst (arg0, tmp719) ; /* tmp708 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp708) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 33590(line=1514, offs=23) -- 33766(line=1524, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat_kind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp725) ; ATSlocal (ats_int_type, tmp726) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat_kind: do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_144_0 ; } __ats_lab_143_1: tmp726 = 0 ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_145_0 ; } __ats_lab_144_1: tmp726 = 1 ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_145_1: tmp726 = 2 ; break ; } while (0) ; /* tmp725 = */ atspre_fprint_int (arg0, tmp726) ; return /* (tmp725) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_tmpvarmat_kind] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 33875(line=1531, offs=5) -- 34015(line=1537, offs=2) */ ATSstaticdec() ats_void_type fpr_45 (ats_ptr_type arg0, anairiats_rec_22 arg1) { /* local vardec */ // ATSlocal_void (tmp728) ; // ATSlocal_void (tmp729) ; ATSlocal (ats_ptr_type, tmp730) ; // ATSlocal_void (tmp731) ; ATSlocal (ats_ptr_type, tmp732) ; __ats_lab_fpr_45: tmp730 = ats_select_mac(arg1, atslab_0) ; /* tmp729 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp730) ; /* tmp731 = */ atspre_fprint_string (arg0, ATSstrcst("->")) ; tmp732 = ats_select_mac(arg1, atslab_1) ; /* tmp728 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_primval (arg0, tmp732) ; return /* (tmp728) */ ; } /* end of [fpr_45] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_47 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp736) ; ATSlocal (ats_ptr_type, tmp737) ; __ats_lab_loop_47: do { /* branch: __ats_lab_146 */ __ats_lab_146_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp737 = ats_caselptrlab_mac(anairiats_sum_23, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp737 ; goto __ats_lab_loop_47 ; // tail call break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_147_1: break ; } while (0) ; return /* (tmp736) */ ; } /* end of [loop_47] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_anairiats_rec_22 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp735) ; __ats_lab_list_vt_free_01499_anairiats_rec_22: /* tmp735 = */ loop_47 (arg0) ; return /* (tmp735) */ ; } /* end of [list_vt_free_01499_anairiats_rec_22] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_print.dats: 33849(line=1529, offs=17) -- 34184(line=1545, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_vbindmap (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp727) ; ATSlocal (ats_ptr_type, tmp733) ; // ATSlocal_void (tmp734) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_vbindmap: tmp733 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize (arg1) ; /* tmp734 = */ fprintlst_01887_anairiats_rec_22 (arg0, ats_castfn_mac(ats_ptr_type, tmp733), ATSstrcst("; "), &fpr_45) ; /* tmp727 = */ list_vt_free_01499_anairiats_rec_22 (tmp733) ; return /* (tmp727) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_vbindmap] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lintprgm_myint.cats0000644000175000017500000000317313431250607023302 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Time: March, 2012 // /* ****** ****** */ #ifndef PATS_LINTPRGM_MYINT_CATS #define PATS_LINTPRGM_MYINT_CATS typedef ats_int_type intknd ; // -> int typedef ats_ptr_type gmpknd ; // -> intinf in libats/SATS/intinf.sats #endif // end of [PATS_LINTPRGM_MYINT_CATS] /* ****** ****** */ /* end of [pats_lintprgm_myint.cats] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp2_util_dats.c0000644000175000017500000020006213431250607023153 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_p1at_loc ; ats_ptr_type atslab_p1at_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_d1exp_loc ; ats_ptr_type atslab_d1exp_node ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_d2lab_loc ; ats_ptr_type atslab_d2lab_node ; ats_ptr_type atslab_d2lab_overld ; } anairiats_rec_14 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; 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_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlist_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_dyn_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_met_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_ana_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_syn_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eviewat_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrsub_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eexist_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efix_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALderef_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_mut_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALarrsub_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALviewat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALnone_5) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_artylst) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type auxlst_1 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_bool_type aux_3 (ats_ptr_type arg0) ; static ats_bool_type aux_5 (ats_ptr_type arg0) ; static ats_bool_type auxlst_6 (ats_ptr_type arg0) ; static ats_bool_type auxlablst_7 (ats_ptr_type arg0) ; static ats_int_type loop_10 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_bool_type __ats_fun_11 (ats_int_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_11_closure_make (ats_int_type env0) ; static ats_bool_type __ats_fun_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type app_13 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_filter_funenv_01338_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_filter_vclo_01340_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type d2exp_d2var_lvalize_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type p1at_arity_18 (ats_ptr_type arg0) ; static ats_bool_type loop1_20 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type loop2_21 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ; static ats_bool_type loop1_20_0loop2_21 (ats_int_type arg0, ...) ; static ats_bool_type aritest_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_25 (ats_ptr_type arg0) ; static ats_ptr_type aux2_26 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type revapp_31 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 1999(line=82, offs=1) -- 2376(line=98, offs=8) */ ATSstaticdec() ats_ptr_type auxlst_1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; __ats_lab_auxlst_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp2), atslab_p2at_loc) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg1) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__l0ab_make_label (tmp4, tmp5) ; tmp7 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp7)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp7, atslab_0, tmp6) ; ats_selptrset_mac(anairiats_sum_3, tmp7, atslab_1, tmp2) ; tmp9 = atspre_add_int_int (arg1, 1) ; tmp8 = auxlst_1 (tmp3, tmp9) ; tmp1 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp1, atslab_0, tmp7) ; ats_selptrset_mac(anairiats_sum_1, tmp1, atslab_1, tmp8) ; break ; } while (0) ; return (tmp1) ; } /* end of [auxlst_1] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 1979(line=79, offs=3) -- 2445(line=103, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_tupize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_tupize: tmp0 = auxlst_1 (arg0, 0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_tupize] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 2540(line=112, offs=1) -- 2941(line=139, offs=4) */ ATSstaticdec() ats_bool_type aux_3 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab_aux_3: tmp12 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp12)->tag != 56) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp11 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp12)->tag != 58) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_2) ; arg0 = tmp13 ; goto __ats_lab_aux_3 ; // tail call break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp12)->tag != 59) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_2) ; arg0 = tmp14 ; goto __ats_lab_aux_3 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp12)->tag != 60) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_6, tmp12, atslab_2) ; arg0 = tmp15 ; goto __ats_lab_aux_3 ; // tail call break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp12)->tag != 34) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_7, tmp12, atslab_0) ; arg0 = tmp16 ; goto __ats_lab_aux_3 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp12)->tag != 67) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_3, tmp12, atslab_0) ; arg0 = tmp17 ; goto __ats_lab_aux_3 ; // tail call break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp12)->tag != 68) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_3, tmp12, atslab_0) ; arg0 = tmp18 ; goto __ats_lab_aux_3 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp12)->tag != 69) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_3, tmp12, atslab_0) ; arg0 = tmp19 ; goto __ats_lab_aux_3 ; // tail call break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp11 = ats_false_bool ; break ; } while (0) ; return (tmp11) ; } /* end of [aux_3] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 2520(line=109, offs=3) -- 2979(line=143, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_lam (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_lam: tmp10 = aux_3 (arg0) ; return (tmp10) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_lam] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 3078(line=152, offs=1) -- 3832(line=200, offs=4) */ ATSstaticdec() ats_bool_type aux_5 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_aux_5: tmp22 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp22)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_7, tmp22, atslab_0) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp23) ; if (tmp24) { tmp21 = ats_false_bool ; } else { tmp21 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp22)->tag != 56) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp22)->tag != 58) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp22)->tag != 59) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp22)->tag != 60) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp22)->tag != 2) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp22)->tag != 4) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp22)->tag != 5) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp22)->tag != 7) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp22)->tag != 8) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp22)->tag != 9) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp22)->tag != 11) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp22)->tag != 12) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp21 = ats_true_bool ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp22)->tag != 34) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_7, tmp22, atslab_0) ; arg0 = tmp25 ; goto __ats_lab_aux_5 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp22)->tag != 37) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_8, tmp22, atslab_2) ; tmp21 = auxlst_6 (tmp26) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp22)->tag != 38) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_8, tmp22, atslab_2) ; tmp21 = auxlablst_7 (tmp27) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp22)->tag != 55) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_3, tmp22, atslab_1) ; arg0 = tmp28 ; goto __ats_lab_aux_5 ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: __ats_lab_28_1: tmp21 = ats_false_bool ; break ; } while (0) ; return (tmp21) ; } /* end of [aux_5] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 3856(line=203, offs=1) -- 4026(line=213, offs=2) */ ATSstaticdec() ats_bool_type auxlst_6 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; __ats_lab_auxlst_6: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp29 = ats_true_bool ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp31 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp32 = aux_5 (tmp30) ; if (tmp32) { arg0 = tmp31 ; goto __ats_lab_auxlst_6 ; // tail call } else { tmp29 = ats_false_bool ; } /* end of [if] */ break ; } while (0) ; return (tmp29) ; } /* end of [auxlst_6] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 4034(line=216, offs=1) -- 4311(line=234, offs=2) */ ATSstaticdec() ats_bool_type auxlablst_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_bool_type, tmp37) ; __ats_lab_auxlablst_7: do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp33 = ats_true_bool ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp35 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp36 = ats_caselptrlab_mac(anairiats_sum_1, tmp34, atslab_1) ; tmp37 = aux_5 (tmp36) ; if (tmp37) { arg0 = tmp35 ; goto __ats_lab_auxlablst_7 ; // tail call } else { tmp33 = ats_false_bool ; } /* end of [if] */ break ; } while (0) ; return (tmp33) ; } /* end of [auxlablst_7] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 3058(line=149, offs=3) -- 4333(line=238, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_varlamcst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_varlamcst: tmp20 = aux_5 (arg0) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_is_varlamcst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_10 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_int_type, tmp43) ; __ats_lab_loop_10: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp43 = atspre_isucc (arg1) ; arg0 = tmp42 ; arg1 = tmp43 ; goto __ats_lab_loop_10 ; // tail call break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp41 = arg1 ; break ; } while (0) ; return (tmp41) ; } /* end of [loop_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp40) ; __ats_lab_list_length_01410_ats_ptr_type: tmp40 = loop_10 (arg0, 0) ; return (tmp40) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 4515(line=256, offs=1) -- 4596(line=258, offs=48) */ ATSstaticdec() ats_bool_type __ats_fun_11 (ats_int_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_int_type, tmp47) ; __ats_lab___ats_fun_11: tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full (arg0) ; tmp46 = atspre_eq_int_int (tmp47, env0) ; return (tmp46) ; } /* end of [__ats_fun_11] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; } __ats_fun_11_closure_type ; ats_bool_type __ats_fun_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_11 (((__ats_fun_11_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_11_closure_init (__ats_fun_11_closure_type *p_clo, ats_int_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_11_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 21113(line=764, offs=6) -- 21259(line=768, offs=6) */ ATSstaticdec() ats_bool_type app_13 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp51) ; __ats_lab_app_13: tmp51 = ((ats_bool_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp51) ; } /* end of [app_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19833(line=716, offs=7) -- 20397(line=733, offs=40) */ ATSstaticdec() ats_void_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_bool_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_loop_15: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp56 = ((ats_bool_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp54, arg3) ; if (tmp56) { tmp57 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp57, atslab_0, tmp54) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp57 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp58 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp55 ; arg1 = arg1 ; arg2 = tmp58 ; arg3 = arg3 ; goto __ats_lab_loop_15 ; // tail call } else { arg0 = tmp55 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_15 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp59 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp59 ; break ; } while (0) ; return /* (tmp53) */ ; } /* end of [loop_15] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19800(line=714, offs=24) -- 20566(line=744, offs=4) */ ATSstaticdec() ats_ptr_type list_filter_funenv_01338_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp60) ; // ATSlocal_void (tmp61) ; __ats_lab_list_filter_funenv_01338_ats_ptr_type: /* ats_ptr_type tmp60 ; */ /* tmp61 = */ loop_15 (arg0, arg1, (&tmp60), arg2) ; tmp52 = tmp60 ; return (tmp52) ; } /* end of [list_filter_funenv_01338_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 20978(line=760, offs=19) -- 21434(line=775, offs=4) */ ATSstaticdec() ats_ptr_type list_filter_vclo_01340_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; __ats_lab_list_filter_vclo_01340_ats_ptr_type: tmp50 = list_filter_funenv_01338_ats_ptr_type (arg0, &app_13, arg1) ; return (tmp50) ; } /* end of [list_filter_vclo_01340_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 4418(line=244, offs=3) -- 4850(line=273, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2con_select_arity (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_int_type, tmp39) ; ATSlocal (ats_bool_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (__ats_fun_11_closure_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2con_select_arity: tmp39 = list_length_01410_ats_ptr_type (arg0) ; tmp44 = atspre_igte (tmp39, 2) ; if (tmp44) { /* ats_ptr_type tmp45 ; */ tmp45 = &(tmp48) ; __ats_fun_11_closure_init (tmp45, arg1) ; // closure initialization tmp49 = list_filter_vclo_01340_ats_ptr_type (arg0, tmp45) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (ats_castfn_mac(ats_ptr_type, tmp49) == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp38 = ats_castfn_mac(ats_ptr_type, tmp49) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (ats_castfn_mac(ats_ptr_type, tmp49) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp38 = arg0 ; break ; } while (0) ; } else { tmp38 = arg0 ; } /* end of [if] */ return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2con_select_arity] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 4915(line=280, offs=1) -- 5174(line=291, offs=2) */ ATSstaticdec() ats_ptr_type d2exp_d2var_lvalize_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_bool_type, tmp63) ; ATSlocal (ats_bool_type, tmp64) ; __ats_lab_d2exp_d2var_lvalize_16: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (arg1) ; if (!tmp63) { goto __ats_lab_40_1 ; } tmp62 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp62)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp62, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp62, atslab_1, arg2) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (arg1) ; if (!tmp64) { goto __ats_lab_41_1 ; } tmp62 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp62)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp62, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_3, tmp62, atslab_1, arg2) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: tmp62 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp62)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp62, atslab_0, arg0) ; break ; } while (0) ; return (tmp62) ; } /* end of [d2exp_d2var_lvalize_16] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 5253(line=297, offs=3) -- 6053(line=340, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize: tmp66 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp66)->tag != 1) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_0) ; tmp68 = (ats_sum_ptr_type)0 ; tmp65 = d2exp_d2var_lvalize_16 (arg0, tmp67, tmp68) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp66)->tag != 43) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_3, tmp66, atslab_1) ; tmp70 = (ats_sum_ptr_type)0 ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp65)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp65, atslab_0, tmp69) ; ats_selptrset_mac(anairiats_sum_3, tmp65, atslab_1, tmp70) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp66)->tag != 40) { goto __ats_lab_48_0 ; } __ats_lab_44_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_3, tmp66, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_3, tmp66, atslab_1) ; tmp73 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp71), atslab_d2exp_node) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp73)->tag != 1) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_7, tmp73, atslab_0) ; tmp65 = d2exp_d2var_lvalize_16 (arg0, tmp74, tmp72) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp73)->tag != 43) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_3, tmp73, atslab_1) ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp65)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp65, atslab_0, tmp75) ; ats_selptrset_mac(anairiats_sum_3, tmp65, atslab_1, tmp72) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: __ats_lab_47_1: tmp65 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp65)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp65, atslab_0, arg0) ; break ; } while (0) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp66)->tag != 42) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_0) ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp65)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp65, atslab_0, tmp76) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp66)->tag != 46) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_9, tmp66, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_9, tmp66, atslab_1) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_9, tmp66, atslab_2) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_9, tmp66, atslab_3) ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp65)->tag = 3 ; ats_selptrset_mac(anairiats_sum_9, tmp65, atslab_0, tmp77) ; ats_selptrset_mac(anairiats_sum_9, tmp65, atslab_1, tmp78) ; ats_selptrset_mac(anairiats_sum_9, tmp65, atslab_2, tmp79) ; ats_selptrset_mac(anairiats_sum_9, tmp65, atslab_3, tmp80) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp66)->tag != 34) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_0) ; arg0 = tmp81 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize ; // tail call break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: tmp65 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp65)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp65, atslab_0, arg0) ; break ; } while (0) ; return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 6162(line=350, offs=4) -- 6277(line=355, offs=2) */ ATSstaticdec() ats_int_type p1at_arity_18 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab_p1at_arity_18: tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_p1at_node) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp83)->tag != 14) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_11, tmp83, atslab_1) ; tmp82 = list_length_01410_ats_ptr_type (tmp84) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: __ats_lab_53_1: tmp82 = 1 ; break ; } while (0) ; return (tmp82) ; } /* end of [p1at_arity_18] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 6361(line=359, offs=7) -- 6498(line=365, offs=46) */ ATSstaticdec() ats_bool_type loop1_20 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp104) ; tmp104 = loop1_20_0loop2_21 (0, arg0, arg1) ; return (tmp104) ; } /* end of [loop1_20] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 6525(line=367, offs=7) -- 6932(line=380, offs=32) */ ATSstaticdec() ats_bool_type loop2_21 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp105) ; tmp105 = loop1_20_0loop2_21 (1, arg0, arg1, arg2) ; return (tmp105) ; } /* end of [loop2_21] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 6361(line=359, offs=7) -- 6932(line=380, offs=32) */ ATSstaticdec() ats_bool_type loop1_20_0loop2_21 (ats_int_type arg0, ...) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_int_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_bool_type, tmp103) ; va_list funarg ; switch (arg0) { case 0: va_start(funarg, arg0) ; tmp86 = va_arg(funarg, ats_ptr_type) ; tmp87 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_loop1_20 ; case 1: va_start(funarg, arg0) ; tmp88 = va_arg(funarg, ats_ptr_type) ; tmp89 = va_arg(funarg, ats_int_type) ; tmp90 = va_arg(funarg, ats_ptr_type) ; va_end(funarg) ; goto __ats_lab_loop2_21 ; default: exit(1) ; /* deadcode */ } /* end of switch */ ATSlocal (va_list, arg1) ; va_start(arg1, arg0) ; __ats_lab_loop1_20: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (tmp87 != (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp91 = ats_true_bool ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (tmp87 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_12, tmp87, atslab_0) ; tmp93 = ats_caselptrlab_mac(anairiats_sum_12, tmp87, atslab_1) ; tmp88 = tmp86 ; tmp89 = tmp92 ; tmp90 = tmp93 ; goto __ats_lab_loop2_21 ; // tail call break ; } while (0) ; return tmp91 ; __ats_lab_loop2_21: tmp95 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp88), atslab_d1exp_node) ; do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp95)->tag != 54) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_6, tmp95, atslab_1) ; tmp97 = ats_caselptrlab_mac(anairiats_sum_6, tmp95, atslab_2) ; tmp99 = p1at_arity_18 (tmp96) ; tmp98 = atspre_eq_int_int (tmp89, tmp99) ; if (tmp98) { tmp86 = tmp97 ; tmp87 = tmp90 ; goto __ats_lab_loop1_20 ; // tail call } else { tmp94 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp95)->tag != 56) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_5, tmp95, atslab_2) ; tmp88 = tmp100 ; tmp89 = tmp89 ; tmp90 = tmp90 ; goto __ats_lab_loop2_21 ; // tail call break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp95)->tag != 57) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp101 = ats_caselptrlab_mac(anairiats_sum_5, tmp95, atslab_2) ; tmp88 = tmp101 ; tmp89 = tmp89 ; tmp90 = tmp90 ; goto __ats_lab_loop2_21 ; // tail call break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp95)->tag != 58) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_5, tmp95, atslab_2) ; tmp88 = tmp102 ; tmp89 = tmp89 ; tmp90 = tmp90 ; goto __ats_lab_loop2_21 ; // tail call break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: tmp94 = ats_false_bool ; break ; } while (0) ; return tmp94 ; return (tmp103) ; } /* end of [loop1_20_0loop2_21] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 6308(line=357, offs=4) -- 6977(line=384, offs=4) */ ATSstaticdec() ats_bool_type aritest_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp85) ; __ats_lab_aritest_19: tmp85 = loop1_20 (arg0, arg1) ; return (tmp85) ; } /* end of [aritest_19] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 7049(line=390, offs=3) -- 7125(line=392, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_match_def (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_match_def: tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_artylst (arg0) ; tmp106 = aritest_19 (arg1, tmp107) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_match_def] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 7251(line=402, offs=5) -- 7386(line=408, offs=2) */ ATSstaticdec() ats_ptr_type aux_25 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; __ats_lab_aux_25: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp109 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp111 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp109 = aux2_26 (tmp110, tmp111) ; break ; } while (0) ; return (tmp109) ; } /* end of [aux_25] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 7413(line=410, offs=5) -- 7559(line=418, offs=2) */ ATSstaticdec() ats_ptr_type aux2_26 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab_aux2_26: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_d2lab_overld) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: tmp113 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp114 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; arg0 = tmp113 ; arg1 = tmp114 ; goto __ats_lab_aux2_26 ; // tail call break ; } while (0) ; return (tmp112) ; } /* end of [aux2_26] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 7231(line=400, offs=3) -- 7671(line=425, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld: tmp115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp115)->tag != 40) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_3, tmp115, atslab_1) ; tmp108 = aux_25 (tmp116) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: __ats_lab_66_1: tmp108 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp108) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_31 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab_revapp_31: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp132 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp133 = ats_ptrget_mac(ats_ptr_type, tmp132) ; ats_ptrget_mac(ats_ptr_type, tmp132) = arg1 ; tmp134 = arg0 ; arg0 = tmp133 ; arg1 = tmp134 ; goto __ats_lab_revapp_31 ; // tail call break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: tmp131 = arg1 ; break ; } while (0) ; return (tmp131) ; } /* end of [revapp_31] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp130) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp130 = revapp_31 (arg0, arg1) ; return (tmp130) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp135 = (ats_sum_ptr_type)0 ; tmp129 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp135) ; return (tmp129) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 7868(line=438, offs=5) -- 8319(line=460, offs=2) */ ATSstaticdec() ats_ptr_type aux_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; __ats_lab_aux_28: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_67_1: tmp125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_d2exp_loc) ; tmp126 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_d2lab_loc) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp125, tmp126) ; tmp127 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp127, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_1, tmp127, atslab_1, arg4) ; tmp128 = list_vt_reverse_01506_ats_ptr_type (tmp127) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab (tmp124, arg0, ats_castfn_mac(ats_ptr_type, tmp128)) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp137 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp138, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_1, tmp138, atslab_1, arg4) ; arg0 = arg0 ; arg1 = arg2 ; arg2 = tmp136 ; arg3 = tmp137 ; arg4 = tmp138 ; goto __ats_lab_aux_28 ; // tail call break ; } while (0) ; return (tmp123) ; } /* end of [aux_28] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 7763(line=431, offs=3) -- 8478(line=471, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld_root (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld_root: tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp118)->tag != 40) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 7783(line=433, offs=5) -- 7823(line=434, offs=32)") ; } tmp119 = ats_caselptrlab_mac(anairiats_sum_3, tmp118, atslab_0) ; tmp120 = ats_caselptrlab_mac(anairiats_sum_3, tmp118, atslab_1) ; if (tmp120 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp2_util.dats: 7831(line=436, offs=5) -- 7860(line=436, offs=34)") ; } tmp121 = ats_caselptrlab_mac(anairiats_sum_1, tmp120, atslab_0) ; tmp122 = ats_caselptrlab_mac(anairiats_sum_1, tmp120, atslab_1) ; do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (tmp122 != (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp117 = tmp119 ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (tmp122 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_1, tmp122, atslab_0) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_1, tmp122, atslab_1) ; tmp141 = (ats_sum_ptr_type)0 ; tmp117 = aux_28 (tmp119, tmp121, tmp139, tmp140, tmp141) ; break ; } while (0) ; return (tmp117) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_get_seloverld_root] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_util_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp2_util_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_xchng_dats.c0000644000175000017500000022606013431250607023134 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_8 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Exchng_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALderef_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALvar_mut_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LVALviewat_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_wrt_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_nonlval_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_nonderef_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_pfobj_search_none_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_xchng_check_LHS_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_xchng_check_RHS_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_check) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_wrt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) ; static ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxmain_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ref_type arg5) ; static ats_void_type auxerr_nonderef_5 (ats_ptr_type arg0) ; static ats_void_type auxerr1_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type aux1_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type aux2_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type aux3_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxerr_pfobj_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_ptr_type aux1_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type aux2_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type aux3_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type auxerr_wrt_if_19 (ats_ptr_type arg0) ; static ats_void_type auxerr_lproof_20 (ats_ptr_type arg0) ; static ats_void_type auxerr_nonlval_21 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 1614(line=48, offs=28) -- 1644(line=48, offs=58) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_xchng")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; __ats_lab_prerr_error3_loc_02051_: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp3 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp3) */ ; } /* end of [prerr_error3_loc_02051_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 2105(line=81, offs=5) -- 2490(line=93, offs=4) */ ATSstaticdec() ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_auxerr_pfobj_1: /* tmp2 = */ prerr_error3_loc_02051_ (arg1) ; /* tmp5 = */ atspre_prerr_string (ATSstrcst(": exchange cannot be performed")) ; /* tmp6 = */ atspre_prerr_string (ATSstrcst(": the proof search for view located at [")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ; /* tmp8 = */ atspre_prerr_string (ATSstrcst("] failed to turn up a result.")) ; /* tmp9 = */ atspre_prerr_newline () ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp10)->tag = 54 ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp10, atslab_1, arg2) ; /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp10) ; return /* (tmp1) */ ; } /* end of [auxerr_pfobj_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 2521(line=96, offs=1) -- 3895(line=146, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; ATSlocal (anairiats_rec_1, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_int_type, tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_bool_type, tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab_auxmain_3: // tmp12 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; tmp14 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_2) ; ATS_FREE(arg2) ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp14 ; /* ats_ptr_type tmp15 ; */ tmp15 = (ats_sum_ptr_type)0 ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context (arg1, tmp14, arg3, (&tmp15)) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg4) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp15 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_4, tmp15, atslab_0) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (tmp12) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (tmp18, tmp17) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl (tmp13, tmp20) ; tmp23 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp23, atslab_0, tmp21) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp12, tmp23) ; tmp11 = tmp16 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp15 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: /* ats_int_type tmp24 ; */ tmp24 = 0 ; /* ats_int_type tmp25 ; */ tmp25 = 0 ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg1, tmp14, arg3, (&tmp24), (&tmp25)) ; tmp27 = ats_select_mac(tmp26, atslab_0) ; tmp28 = ats_select_mac(tmp26, atslab_1) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp27) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg1, tmp28) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve (arg1, arg4, tmp29) ; tmp33 = atspre_gt_int_int (tmp31, 0) ; if (tmp33) { /* tmp34 = */ prerr_error3_loc_02051_ (arg1) ; /* tmp35 = */ atspre_prerr_string (ATSstrcst(": the LHS of exchange cannot be given its RHS type.")) ; /* tmp36 = */ atspre_prerr_newline () ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp38 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp38)->tag = 63 ; ats_selptrset_mac(anairiats_sum_5, tmp38, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp38, atslab_1, tmp17) ; ats_selptrset_mac(anairiats_sum_5, tmp38, atslab_2, tmp27) ; /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp38) ; } else { /* empty */ } /* end of [if] */ tmp11 = tmp27 ; break ; } while (0) ; return (tmp11) ; } /* end of [auxmain_3] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 3970(line=151, offs=20) -- 4372(line=168, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_check (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_check: tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview (arg2) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp40 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_4, tmp40, atslab_0) ; ATS_FREE(tmp40) ; tmp39 = auxmain_3 (arg0, arg1, tmp41, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp40 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; ats_ptrget_mac(ats_ptr_type, arg5) = tmp42 ; /* tmp43 = */ auxerr_pfobj_1 (arg0, arg1, arg2) ; tmp39 = tmp42 ; break ; } while (0) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_check] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 5141(line=212, offs=1) -- 5378(line=224, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonderef_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_auxerr_nonderef_5: tmp45 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d3exp_loc) ; /* tmp46 = */ prerr_error3_loc_02051_ (tmp45) ; /* tmp47 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression cannot be dereferenced.")) ; /* tmp48 = */ atspre_prerr_newline () ; tmp49 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp49)->tag = 53 ; ats_selptrset_mac(anairiats_sum_7, tmp49, atslab_0, arg0) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp49) ; return /* (tmp44) */ ; } /* end of [auxerr_nonderef_5] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 5412(line=227, offs=1) -- 5871(line=246, offs=4) */ ATSstaticdec() ats_void_type auxerr1_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab_auxerr1_6: /* tmp51 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp52 = */ atspre_prerr_string (ATSstrcst(": the RHS of exchange cannot be given its LHS type.")) ; /* tmp53 = */ atspre_prerr_newline () ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg3) ; tmp57 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp57)->tag = 62 ; ats_selptrset_mac(anairiats_sum_5, tmp57, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp57, atslab_1, tmp55) ; ats_selptrset_mac(anairiats_sum_5, tmp57, atslab_2, tmp56) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp57) ; return /* (tmp50) */ ; } /* end of [auxerr1_6] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 6389(line=271, offs=5) -- 7185(line=310, offs=4) */ ATSstaticdec() ats_ptr_type aux1_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_int_type, tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_bool_type, tmp66) ; __ats_lab_aux1_7: tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (arg2) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp59 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_4, tmp59, atslab_0) ; ATS_FREE(tmp59) ; /* ats_ptr_type tmp61 ; */ tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_check (arg0, arg1, tmp60, arg4, arg5, (&tmp61)) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp62) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve (arg0, tmp63, arg5) ; tmp66 = atspre_gt_int_int (tmp64, 0) ; if (tmp66) { /* tmp65 = */ auxerr1_6 (arg0, arg1, arg5, tmp63) ; } else { /* empty */ } /* end of [if] */ tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ptr (arg1, tmp62, arg3, tmp61, arg4) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp59 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp58 = aux2_8 (arg0, arg1, arg2, arg3, arg4, arg5) ; break ; } while (0) ; return (tmp58) ; } /* end of [aux1_7] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 7208(line=312, offs=5) -- 8182(line=356, offs=4) */ ATSstaticdec() ats_ptr_type aux2_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_int_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (anairiats_rec_1, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; ATSlocal (ats_int_type, tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_bool_type, tmp79) ; ATSlocal (ats_int_type, tmp80) ; __ats_lab_aux2_8: tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type (arg2) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp68 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_4, tmp68, atslab_0) ; ATS_FREE(tmp68) ; /* ats_int_type tmp70 ; */ tmp70 = 0 ; /* ats_int_type tmp71 ; */ tmp71 = 0 ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg1, tmp69, arg4, (&tmp70), (&tmp71)) ; tmp73 = ats_select_mac(tmp72, atslab_0) ; tmp74 = ats_select_mac(tmp72, atslab_1) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp73) ; /* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg1, tmp74) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve (arg1, arg5, tmp75) ; tmp79 = atspre_gt_int_int (tmp77, 0) ; if (tmp79) { /* tmp78 = */ auxerr1_6 (arg0, arg1, arg5, tmp75) ; } else { /* empty */ } /* end of [if] */ tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref (arg0) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_ref (arg1, tmp73, arg3, tmp69, arg4) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp68 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp67 = aux3_9 (arg0, arg1, arg2, arg3, arg4, arg5) ; break ; } while (0) ; return (tmp67) ; } /* end of [aux2_8] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 8205(line=358, offs=5) -- 8409(line=367, offs=4) */ ATSstaticdec() ats_ptr_type aux3_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; __ats_lab_aux3_9: /* tmp82 = */ auxerr_nonderef_5 (arg3) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (arg0) ; return (tmp81) ; } /* end of [aux3_9] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 8485(line=373, offs=1) -- 8741(line=383, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; // ATSlocal_void (tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng_deref: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg2) ; /* tmp85 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp84) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg3) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp84) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp87) ; tmp83 = aux1_7 (arg0, arg1, tmp88, tmp84, tmp86, arg4) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng_deref] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 8807(line=387, offs=3) -- 9949(line=437, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; // ATSlocal_void (tmp102) ; ATSlocal (ats_bool_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng: tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg1), atslab_d2exp_loc) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize (arg1) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp91)->tag != 2) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_2, tmp91, atslab_0) ; tmp93 = ats_caselptrlab_mac(anairiats_sum_2, tmp91, atslab_1) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (tmp93) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp92) ; if (tmp95 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 8999(line=398, offs=9) -- 9032(line=398, offs=42)") ; } tmp96 = ats_caselptrlab_mac(anairiats_sum_4, tmp95, atslab_0) ; /* ats_ptr_type tmp97 ; */ tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_check (arg0, tmp90, tmp96, tmp94, arg2, (&tmp97)) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp98) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp99) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve (arg0, tmp99, arg2) ; tmp103 = atspre_gt_int_int (tmp101, 0) ; if (tmp103) { /* tmp102 = */ auxerr1_6 (arg0, tmp90, arg2, tmp99) ; } else { /* empty */ } /* end of [if] */ tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_var (tmp90, tmp100, tmp92, tmp97, tmp94) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp91)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_2, tmp91, atslab_0) ; tmp105 = ats_caselptrlab_mac(anairiats_sum_2, tmp91, atslab_1) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng_deref (arg0, tmp90, tmp104, tmp105, arg2) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: /* tmp106 = */ prerr_error3_loc_02051_ (tmp90) ; /* tmp107 = */ atspre_prerr_string (ATSstrcst(": a left-value is required but a non-left-value is given.")) ; /* tmp108 = */ atspre_prerr_newline () ; tmp110 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp110)->tag = 51 ; ats_selptrset_mac(anairiats_sum_7, tmp110, atslab_0, arg1) ; /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp110) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (tmp90) ; break ; } while (0) ; return (tmp89) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 10035(line=446, offs=1) -- 10407(line=458, offs=4) */ ATSstaticdec() ats_void_type auxerr_pfobj_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab_auxerr_pfobj_12: /* tmp112 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp113 = */ atspre_prerr_string (ATSstrcst(": exchange cannot be performed")) ; /* tmp114 = */ atspre_prerr_string (ATSstrcst(": the proof search for view located at [")) ; /* tmp115 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp116 = */ atspre_prerr_string (ATSstrcst("] failed to turn up a result.")) ; /* tmp117 = */ atspre_prerr_newline () ; tmp118 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp118)->tag = 54 ; ats_selptrset_mac(anairiats_sum_2, tmp118, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp118, atslab_1, arg1) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp118) ; return /* (tmp111) */ ; } /* end of [auxerr_pfobj_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 10438(line=461, offs=1) -- 10920(line=479, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_int_type, tmp121) ; ATSlocal (ats_int_type, tmp122) ; ATSlocal (anairiats_rec_1, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; // ATSlocal_void (tmp127) ; __ats_lab_auxmain_13: // tmp120 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_2) ; ATS_FREE(arg1) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp120 ; /* ats_int_type tmp121 ; */ tmp121 = 0 ; /* ats_int_type tmp122 ; */ tmp122 = 0 ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg0, tmp120, arg2, (&tmp121), (&tmp122)) ; tmp124 = ats_select_mac(tmp123, atslab_0) ; tmp125 = ats_select_mac(tmp123, atslab_1) ; tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp124) ; /* tmp127 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp125) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng (arg0, arg3, tmp126) ; return (tmp119) ; } /* end of [auxmain_13] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 10995(line=484, offs=20) -- 11351(line=498, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; // ATSlocal_void (tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_deref: tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview (arg1) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (tmp129 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_4, tmp129, atslab_0) ; ATS_FREE(tmp129) ; tmp128 = auxmain_13 (arg0, tmp130, arg2, arg3, arg4) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (tmp129 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp131 ; /* tmp132 = */ auxerr_pfobj_12 (arg0, arg1) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg3) ; break ; } while (0) ; return (tmp128) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_deref] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 11439(line=506, offs=5) -- 11891(line=528, offs=4) */ ATSstaticdec() ats_ptr_type aux1_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; __ats_lab_aux1_15: tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (arg1) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp134 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_4, tmp134, atslab_0) ; ATS_FREE(tmp134) ; /* ats_ptr_type tmp136 ; */ tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_deref (arg0, tmp135, arg3, arg4, (&tmp136)) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ptr (arg0, arg2, tmp136, arg3, tmp137) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp134 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp133 = aux2_16 (arg0, arg1, arg2, arg3, arg4) ; break ; } while (0) ; return (tmp133) ; } /* end of [aux1_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 11914(line=530, offs=5) -- 12643(line=557, offs=4) */ ATSstaticdec() ats_ptr_type aux2_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_int_type, tmp142) ; ATSlocal (anairiats_rec_1, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; // ATSlocal_void (tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab_aux2_16: tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ref_vt0ype_type (arg1) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (tmp139 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_4, tmp139, atslab_0) ; ATS_FREE(tmp139) ; /* ats_int_type tmp141 ; */ tmp141 = 0 ; /* ats_int_type tmp142 ; */ tmp142 = 0 ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg0, tmp140, arg3, (&tmp141), (&tmp142)) ; tmp144 = ats_select_mac(tmp143, atslab_0) ; tmp145 = ats_select_mac(tmp143, atslab_1) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp144) ; /* tmp147 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp145) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_xchng (arg0, arg4, tmp146) ; tmp150 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg4), atslab_d2exp_loc) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ref (tmp150) ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_ref (arg0, arg2, tmp140, arg3, tmp148) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (tmp139 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp138 = aux3_17 (arg0, arg1, arg2, arg3, arg4) ; break ; } while (0) ; return (tmp138) ; } /* end of [aux2_16] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 12666(line=559, offs=5) -- 12805(line=569, offs=4) */ ATSstaticdec() ats_ptr_type aux3_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; __ats_lab_aux3_17: tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (arg0) ; return (tmp151) ; } /* end of [aux3_17] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 12883(line=575, offs=3) -- 13320(line=590, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng_deref: tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg1) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp153) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg2) ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp153) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf_cast (tmp156) ; tmp152 = aux1_15 (arg0, tmp157, tmp153, tmp155, arg3) ; return (tmp152) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng_deref] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 13411(line=598, offs=4) -- 13593(line=605, offs=4) */ ATSstaticdec() ats_void_type auxerr_wrt_if_19 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp158) ; ATSlocal (ats_int_type, tmp159) ; ATSlocal (ats_bool_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab_auxerr_wrt_if_19: tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_wrt (arg0) ; tmp160 = atspre_gt_int_int (tmp159, 0) ; if (tmp160) { tmp161 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp161)->tag = 32 ; ats_selptrset_mac(anairiats_sum_7, tmp161, atslab_0, arg0) ; /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp161) ; } else { /* empty */ } /* end of [if] */ return /* (tmp158) */ ; } /* end of [auxerr_wrt_if_19] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 13622(line=607, offs=5) -- 13847(line=614, offs=4) */ ATSstaticdec() ats_void_type auxerr_lproof_20 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; __ats_lab_auxerr_lproof_20: tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_d2exp_loc) ; /* tmp163 = */ prerr_error3_loc_02051_ (tmp164) ; /* tmp165 = */ atspre_prerr_string (ATSstrcst(": a non-proof left-value is expected.")) ; /* tmp166 = */ atspre_prerr_newline () ; tmp167 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp167)->tag = 51 ; ats_selptrset_mac(anairiats_sum_7, tmp167, atslab_0, arg0) ; /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp167) ; return /* (tmp162) */ ; } /* end of [auxerr_lproof_20] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 13879(line=616, offs=5) -- 14125(line=623, offs=4) */ ATSstaticdec() ats_void_type auxerr_nonlval_21 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab_auxerr_nonlval_21: tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_d2exp_loc) ; /* tmp169 = */ prerr_error3_loc_02051_ (tmp170) ; /* tmp171 = */ atspre_prerr_string (ATSstrcst(": a left-value is required but a non-left-value is given.")) ; /* tmp172 = */ atspre_prerr_newline () ; tmp173 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp173)->tag = 51 ; ats_selptrset_mac(anairiats_sum_7, tmp173, atslab_0, arg0) ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp173) ; return /* (tmp168) */ ; } /* end of [auxerr_nonlval_21] */ /* // /tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 14292(line=633, offs=3) -- 15272(line=670, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; // ATSlocal_void (tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; // ATSlocal_void (tmp193) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng: tmp175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_d2exp_loc) ; tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp176)->tag != 45) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 14339(line=635, offs=7) -- 14380(line=635, offs=48)") ; } tmp177 = ats_caselptrlab_mac(anairiats_sum_2, tmp176, atslab_0) ; tmp178 = ats_caselptrlab_mac(anairiats_sum_2, tmp176, atslab_1) ; tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lvalize (tmp177) ; do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp179)->tag != 2) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_2, tmp179, atslab_0) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_2, tmp179, atslab_1) ; tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (tmp181) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp180) ; if (tmp183 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_xchng.dats: 14527(line=644, offs=9) -- 14560(line=644, offs=42)") ; } tmp184 = ats_caselptrlab_mac(anairiats_sum_4, tmp183, atslab_0) ; /* ats_ptr_type tmp185 ; */ tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_xchng_deref (tmp175, tmp184, tmp182, tmp178, (&tmp185)) ; /* tmp187 = */ auxerr_wrt_if_19 (tmp175) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_xchng_var (tmp175, tmp180, tmp185, tmp182, tmp186) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp179)->tag != 0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp188 = ats_caselptrlab_mac(anairiats_sum_2, tmp179, atslab_0) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_2, tmp179, atslab_1) ; /* tmp190 = */ auxerr_wrt_if_19 (tmp175) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng_deref (tmp175, tmp188, tmp189, tmp178) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp179)->tag != 1) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp191 = */ auxerr_lproof_20 (tmp177) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (tmp175) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp179)->tag != 4) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp192 = */ auxerr_lproof_20 (tmp177) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (tmp175) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: /* tmp193 = */ auxerr_nonlval_21 (tmp177) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp_void (tmp175) ; break ; } while (0) ; return (tmp174) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_xchng] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_xchng_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_xchng_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_global_dats.c0000644000175000017500000007614513431250607022002 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp7) ; ATSstatic (ats_ptr_type, statmp10) ; ATSstatic (ats_ptr_type, statmp16) ; ATSstatic (ats_ptr_type, statmp19) ; ATSstatic (ats_ptr_type, statmp23) ; ATSstatic (ats_ptr_type, statmp26) ; ATSstatic (ats_ptr_type, statmp30) ; ATSstatic (ats_ptr_type, statmp31) ; ATSstatic (ats_ptr_type, statmp36) ; ATSstatic (ats_ptr_type, statmp39) ; ATSstatic (ats_ptr_type, statmp42) ; ATSstatic (ats_ptr_type, statmp45) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp2 ; */ tmp2 = arg0 ; tmp1 = atspre_ref_make_elt_tsz ((&tmp2), sizeof(ats_ptr_type)) ; return (tmp1) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 1781(line=63, offs=17) -- 1799(line=63, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get: tmp3 = ats_ptrget_mac(ats_ptr_type, statmp0) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 1827(line=65, offs=18) -- 1855(line=65, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set: ats_ptrget_mac(ats_ptr_type, statmp0) = arg0 ; return /* (tmp4) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 1914(line=71, offs=3) -- 1952(line=71, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_name (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_name: /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set (ats_castfn_mac(ats_ptr_type, arg0)) ; return /* (tmp5) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_name] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 2018(line=75, offs=3) -- 2059(line=75, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_none () { /* local vardec */ // ATSlocal_void (tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_none: /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set (atspre_stropt_none) ; return /* (tmp6) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_set_none] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_int_type, tmp9) ; __ats_lab_ref_01088_ats_int_type: /* ats_int_type tmp9 ; */ tmp9 = arg0 ; tmp8 = atspre_ref_make_elt_tsz ((&tmp9), sizeof(ats_int_type)) ; return (tmp8) ; } /* end of [ref_01088_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 2249(line=88, offs=17) -- 2267(line=88, offs=35) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get () { /* local vardec */ ATSlocal (ats_int_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get: tmp11 = ats_ptrget_mac(ats_int_type, statmp7) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 2294(line=90, offs=17) -- 2324(line=90, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set: ats_ptrget_mac(ats_int_type, statmp7) = arg0 ; return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 2359(line=93, offs=22) -- 2455(line=96, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get_decl () { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get_decl: tmp14 = ats_ptrget_mac(ats_ptr_type, statmp10) ; ats_ptrget_mac(ats_ptr_type, statmp10) = atspre_null_ptr ; tmp13 = tmp14 ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get_decl] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 2524(line=99, offs=22) -- 2557(line=99, offs=55) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set_decl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set_decl: ats_ptrget_mac(ats_ptr_type, statmp10) = arg0 ; return /* (tmp15) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set_decl] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 2967(line=127, offs=20) -- 2988(line=127, offs=41) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_get () { /* local vardec */ ATSlocal (ats_int_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_get: tmp17 = ats_ptrget_mac(ats_int_type, statmp16) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 3018(line=129, offs=20) -- 3051(line=129, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set: ats_ptrget_mac(ats_int_type, statmp16) = arg0 ; return /* (tmp18) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 3212(line=145, offs=3) -- 3233(line=145, offs=24) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_get: tmp20 = ats_ptrget_mac(ats_ptr_type, statmp19) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 3271(line=148, offs=3) -- 3307(line=148, offs=39) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_set_none () { /* local vardec */ // ATSlocal_void (tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_set_none: ats_ptrget_mac(ats_ptr_type, statmp19) = atspre_stropt_none ; return /* (tmp21) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_set_none] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 3353(line=151, offs=3) -- 3398(line=151, offs=48) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_set_name (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_set_name: ats_ptrget_mac(ats_ptr_type, statmp19) = ats_castfn_mac(ats_ptr_type, arg0) ; return /* (tmp22) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_set_name] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 3540(line=164, offs=20) -- 3561(line=164, offs=41) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_get () { /* local vardec */ ATSlocal (ats_int_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_get: tmp24 = ats_ptrget_mac(ats_int_type, statmp23) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 3591(line=166, offs=20) -- 3624(line=166, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_set (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_set: ats_ptrget_mac(ats_int_type, statmp23) = arg0 ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_set] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 3791(line=182, offs=3) -- 3814(line=182, offs=26) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_get: tmp27 = ats_ptrget_mac(ats_ptr_type, statmp26) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 3854(line=185, offs=3) -- 3892(line=185, offs=41) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_set_none () { /* local vardec */ // ATSlocal_void (tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_set_none: ats_ptrget_mac(ats_ptr_type, statmp26) = atspre_stropt_none ; return /* (tmp28) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_set_none] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 3932(line=188, offs=3) -- 3973(line=188, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_set_name (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_set_name: ats_ptrget_mac(ats_ptr_type, statmp26) = ats_castfn_mac(ats_ptr_type, arg0) ; return /* (tmp29) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_set_name] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 4178(line=207, offs=3) -- 4199(line=207, offs=24) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_get: tmp32 = ats_ptrget_mac(ats_ptr_type, statmp30) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 4237(line=211, offs=3) -- 4328(line=215, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_ppush (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_ppush: tmp34 = ats_ptrget_mac(ats_ptr_type, statmp30) ; tmp35 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp35, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp35, atslab_1, tmp34) ; ats_ptrget_mac(ats_ptr_type, statmp30) = tmp35 ; return /* (tmp33) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_IATS_dirlst_ppush] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 4969(line=258, offs=25) -- 4983(line=258, offs=39) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_get () { /* local vardec */ ATSlocal (ats_int_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_get: tmp37 = ats_ptrget_mac(ats_int_type, statmp36) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 5018(line=260, offs=25) -- 5044(line=260, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_set (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_set: ats_ptrget_mac(ats_int_type, statmp36) = arg0 ; return /* (tmp38) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_set] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 5187(line=273, offs=25) -- 5201(line=273, offs=39) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_get () { /* local vardec */ ATSlocal (ats_int_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_get: tmp40 = ats_ptrget_mac(ats_int_type, statmp39) ; return (tmp40) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 5236(line=275, offs=25) -- 5262(line=275, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_set (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp41) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_set: ats_ptrget_mac(ats_int_type, statmp39) = arg0 ; return /* (tmp41) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgline_set] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 5391(line=288, offs=26) -- 5406(line=288, offs=41) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get () { /* local vardec */ ATSlocal (ats_int_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get: tmp43 = ats_ptrget_mac(ats_int_type, statmp42) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 5442(line=290, offs=26) -- 5469(line=290, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set: ats_ptrget_mac(ats_int_type, statmp42) = arg0 ; return /* (tmp44) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 5648(line=304, offs=32) -- 5669(line=304, offs=53) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPENV_maxtmprecdepth_get () { /* local vardec */ ATSlocal (ats_int_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPENV_maxtmprecdepth_get: tmp46 = ats_ptrget_mac(ats_int_type, statmp45) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPENV_maxtmprecdepth_get] */ /* // /tmp/ATS-Postiats/src/pats_global.dats: 5711(line=306, offs=32) -- 5742(line=306, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPENV_maxtmprecdepth_set (ats_int_type arg0) { /* local vardec */ // ATSlocal_void (tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPENV_maxtmprecdepth_set: ats_ptrget_mac(ats_int_type, statmp45) = arg0 ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPENV_maxtmprecdepth_set] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp10, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp16, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp19, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp23, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp26, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp30, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp31, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp36, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp39, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp42, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp45, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp0 = ref_01088_ats_ptr_type (atspre_stropt_none) ; statmp7 = ref_01088_ats_int_type (0) ; statmp10 = ref_01088_ats_ptr_type (atspre_null_ptr) ; statmp16 = ref_01088_ats_int_type (0) ; statmp19 = ref_01088_ats_ptr_type (atspre_stropt_none) ; statmp23 = ref_01088_ats_int_type (0) ; statmp26 = ref_01088_ats_ptr_type (atspre_stropt_none) ; statmp31 = (ats_sum_ptr_type)0 ; statmp30 = ref_01088_ats_ptr_type (statmp31) ; statmp36 = ref_01088_ats_int_type (0) ; statmp39 = ref_01088_ats_int_type (0) ; statmp42 = ref_01088_ats_int_type (1) ; statmp45 = ref_01088_ats_int_type (100) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_global_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_constraint3_jsonize_dats.c0000644000175000017500000022741013431250607024543 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_c3nstroptref_loc ; ats_ptr_type atslab_c3nstroptref_ref ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_h3ypo_loc ; ats_ptr_type atslab_h3ypo_node ; } anairiats_rec_8 ; typedef struct { ats_ptr_type atslab_c3nstr_loc ; ats_ptr_type atslab_c3nstr_kind ; ats_ptr_type atslab_c3nstr_node ; } anairiats_rec_9 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_10 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_jsonize_2esats__JSONlist_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASpre_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASdef_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTtup_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTVar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTerr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKcase_exhaustiveness_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isnat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isdec_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_fin_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_lvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_vbox_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKloop_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPObind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOeqeq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRitmlst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRsolverify_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsvar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMhypo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsVar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_ref_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMdisj_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsolassert_6) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isprint) (ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_double) (ats_ptr_type, ats_double_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_string) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_filename) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_sing) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonvalist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_labjsonvalist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_caskind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_symbol) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst_long) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtdat_long) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var_long) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_mapgen_scst_svar) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__jsonize_c3nstr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstrkind) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itm) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlstlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_h3ypo) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstropt) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type jsonize_list_fun_02213_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_9 (ats_ptr_type arg0) ; static ats_ptr_type auxmain_11 (ats_ptr_type arg0) ; static ats_ptr_type jsonize_option_fun_02214_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2rt_14 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2rtlst_15 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2rtbas_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2cst_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2cstlst_18 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2var_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2varlst_20 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type c3nstr_get_s2rtdatlst_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_24 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 2225(line=94, offs=20) -- 3785(line=154, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstrkind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstrkind: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("C3TKmain")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp2 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_caskind (tmp1) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_ignored (tmp2) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("C3TKcase_exhaustiveness"), tmp3, tmp4) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("C3TKtermet_isnat")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("C3TKtermet_isdec")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp6 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp7 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp5) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp6) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp7) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("C3TKsome_fin"), tmp8, tmp9, tmp10) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp12 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp11) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp12) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp13) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("C3TKsome_lvar"), tmp14, tmp15, tmp16) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp18 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp19 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp17) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp18) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp19) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg3 (ATSstrcst("C3TKsome_vbox"), tmp20, tmp21, tmp22) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("C3TKlstate")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_d2var (tmp23) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("C3TKlstate_var"), tmp24) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_int (tmp25) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("C3TKloop"), tmp26) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (((ats_sum_ptr_type)arg0)->tag != 10) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg0 (ATSstrcst("C3TKsolverify")) ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstrkind] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 4175(line=174, offs=3) -- 5126(line=212, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itm (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itm: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var (tmp28) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S3ITMsvar"), tmp29) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_h3ypo (tmp30) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S3ITMhypo"), tmp31) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2Var (tmp32) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S3ITMsVar"), tmp33) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__jsonize_c3nstr (tmp34) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S3ITMcnstr"), tmp35) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp36), atslab_c3nstroptref_loc) ; tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp36), atslab_c3nstroptref_ref) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp37) ; tmp41 = ats_ptrget_mac(ats_ptr_type, tmp38) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstropt (tmp41) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("S3ITMcnstr_ref"), tmp39, tmp40) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlstlst (tmp42) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S3ITMdisj"), tmp43) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)arg0)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp44) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("S3ITMsolassert"), tmp45) ; break ; } while (0) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itm] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab_loop_6: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp53 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp54 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp52, arg3) ; tmp55 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ats_selptrset_mac(anairiats_sum_7, tmp55, atslab_0, tmp54) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp55 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp56 = &ats_caselptrlab_mac(anairiats_sum_7, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp53 ; arg1 = arg1 ; arg2 = tmp56 ; arg3 = arg3 ; goto __ats_lab_loop_6 ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp57 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp57 ; break ; } while (0) ; return /* (tmp51) */ ; } /* end of [loop_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp58) ; // ATSlocal_void (tmp59) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp58 ; */ /* tmp59 = */ loop_6 (arg0, arg1, (&tmp58), arg2) ; tmp50 = tmp58 ; return (tmp50) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp49 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp49) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 11075(line=553, offs=17) -- 11240(line=565, offs=4) */ ATSstaticdec() ats_ptr_type jsonize_list_fun_02213_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab_jsonize_list_fun_02213_ats_ptr_type: tmp48 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, arg1) ; tmp47 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp47)->tag = 8 ; ats_selptrset_mac(anairiats_sum_4, tmp47, atslab_0, ats_castfn_mac(ats_ptr_type, tmp48)) ; return (tmp47) ; } /* end of [jsonize_list_fun_02213_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 5206(line=218, offs=3) -- 5259(line=218, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlst: tmp46 = jsonize_list_fun_02213_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itm) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlst] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 5292(line=221, offs=3) -- 5353(line=221, offs=64) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlstlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlstlst: tmp60 = jsonize_list_fun_02213_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlst) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlstlst] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 5424(line=229, offs=5) -- 6280(line=267, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab_auxmain_9: tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_h3ypo_node) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp63)->tag != 0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp64) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("H3YPOprop"), tmp65) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp63)->tag != 1) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_2, tmp63, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_2, tmp63, atslab_1) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var (tmp66) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp67) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("H3YPObind"), tmp68, tmp69) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (((ats_sum_ptr_type)tmp63)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_2, tmp63, atslab_0) ; tmp71 = ats_caselptrlab_mac(anairiats_sum_2, tmp63, atslab_1) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp70) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp71) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg2 (ATSstrcst("H3YPOeqeq"), tmp72, tmp73) ; break ; } while (0) ; return (tmp62) ; } /* end of [auxmain_9] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 5404(line=227, offs=3) -- 6453(line=275, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_h3ypo (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_h3ypo: tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_h3ypo_loc) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp74) ; tmp76 = auxmain_9 (arg0) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval2 (ATSstrcst("h3ypo_loc"), tmp75, ATSstrcst("h3ypo_node"), tmp76) ; return (tmp61) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_h3ypo] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 6549(line=283, offs=5) -- 6979(line=302, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_11 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; __ats_lab_auxmain_11: tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_c3nstr_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp79)->tag != 0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_4, tmp79, atslab_0) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp80) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("C3NSTRprop"), tmp81) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp79)->tag != 1) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_4, tmp79, atslab_0) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_s3itmlst (tmp82) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("C3NSTRitmlst"), tmp83) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (((ats_sum_ptr_type)tmp79)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_4, tmp79, atslab_0) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize1_s2exp (tmp84) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_conarg1 (ATSstrcst("C3NSTRsolverify"), tmp85) ; break ; } while (0) ; return (tmp78) ; } /* end of [auxmain_11] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 6529(line=281, offs=3) -- 7261(line=318, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__jsonize_c3nstr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__jsonize_c3nstr: tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_c3nstr_loc) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonize_location (tmp86) ; tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_c3nstr_kind) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstrkind (tmp89) ; tmp90 = auxmain_11 (arg0) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_labval3 (ATSstrcst("c3nstr_loc"), tmp87, ATSstrcst("c3nstr_kind"), tmp88, ATSstrcst("c3nstr_node"), tmp90) ; return (tmp77) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__jsonize_c3nstr] */ /* // /tmp/ATS-Postiats/src/pats_jsonize.dats: 11331(line=571, offs=19) -- 11485(line=583, offs=4) */ ATSstaticdec() ats_ptr_type jsonize_option_fun_02214_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab_jsonize_option_fun_02214_ats_ptr_type: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_none () ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp94 = ((ats_ptr_type(*)(ats_ptr_type))arg1) (tmp93) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__jsonval_some (tmp94) ; break ; } while (0) ; return (tmp92) ; } /* end of [jsonize_option_fun_02214_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 7341(line=324, offs=3) -- 7396(line=324, offs=58) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstropt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstropt: tmp91 = jsonize_option_fun_02214_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__jsonize_c3nstr) ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__jsonize_c3nstropt] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 7492(line=334, offs=1) -- 7792(line=347, offs=2) */ ATSstaticdec() ats_ptr_type aux_s2rt_14 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab_aux_s2rt_14: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp95 = aux_s2rtbas_16 (tmp96, arg1) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp98 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp99 = aux_s2rtlst_15 (tmp97, arg1) ; arg0 = tmp98 ; arg1 = tmp99 ; goto __ats_lab_aux_s2rt_14 ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp95 = aux_s2rtlst_15 (tmp100, arg1) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp95 = arg1 ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (((ats_sum_ptr_type)arg0)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp95 = arg1 ; break ; } while (0) ; return (tmp95) ; } /* end of [aux_s2rt_14] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 7800(line=350, offs=1) -- 8008(line=360, offs=2) */ ATSstaticdec() ats_ptr_type aux_s2rtlst_15 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab_aux_s2rtlst_15: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp101 = arg1 ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp104 = aux_s2rt_14 (tmp102, arg1) ; arg0 = tmp103 ; arg1 = tmp104 ; goto __ats_lab_aux_s2rtlst_15 ; // tail call break ; } while (0) ; return (tmp101) ; } /* end of [aux_s2rtlst_15] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 8016(line=363, offs=1) -- 8179(line=372, offs=2) */ ATSstaticdec() ats_ptr_type aux_s2rtbas_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab_aux_s2rtbas_16: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp105 = arg1 ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp105 = arg1 ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_add (arg1, tmp106) ; break ; } while (0) ; return (tmp105) ; } /* end of [aux_s2rtbas_16] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 8187(line=375, offs=1) -- 8275(line=381, offs=2) */ ATSstaticdec() ats_ptr_type aux_s2cst_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; __ats_lab_aux_s2cst_17: tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ; tmp107 = aux_s2rt_14 (tmp108, arg1) ; return (tmp107) ; } /* end of [aux_s2cst_17] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 8280(line=383, offs=1) -- 8467(line=393, offs=2) */ ATSstaticdec() ats_ptr_type aux_s2cstlst_18 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab_aux_s2cstlst_18: 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: tmp109 = arg1 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp110 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp111 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp112 = aux_s2cst_17 (tmp110, arg1) ; arg0 = tmp111 ; arg1 = tmp112 ; goto __ats_lab_aux_s2cstlst_18 ; // tail call break ; } while (0) ; return (tmp109) ; } /* end of [aux_s2cstlst_18] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 8475(line=396, offs=1) -- 8563(line=402, offs=2) */ ATSstaticdec() ats_ptr_type aux_s2var_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab_aux_s2var_19: tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ; tmp113 = aux_s2rt_14 (tmp114, arg1) ; return (tmp113) ; } /* end of [aux_s2var_19] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 8568(line=404, offs=1) -- 8755(line=414, offs=2) */ ATSstaticdec() ats_ptr_type aux_s2varlst_20 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab_aux_s2varlst_20: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp115 = arg1 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp117 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp118 = aux_s2var_19 (tmp116, arg1) ; arg0 = tmp117 ; arg1 = tmp118 ; goto __ats_lab_aux_s2varlst_20 ; // tail call break ; } while (0) ; return (tmp115) ; } /* end of [aux_s2varlst_20] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 8785(line=419, offs=1) -- 9002(line=428, offs=4) */ ATSstaticdec() ats_ptr_type c3nstr_get_s2rtdatlst_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_c3nstr_get_s2rtdatlst_21: tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_nil () ; tmp121 = aux_s2cstlst_18 (arg0, tmp120) ; tmp122 = aux_s2varlst_20 (arg1, tmp121) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtdatset_listize (tmp122) ; return (tmp119) ; } /* end of [c3nstr_get_s2rtdatlst_21] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_24 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; __ats_lab_loop_24: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp136 ; goto __ats_lab_loop_24 ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: break ; } while (0) ; return /* (tmp135) */ ; } /* end of [loop_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp134) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp134 = */ loop_24 (arg0) ; return /* (tmp134) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_jsonize.dats: 9108(line=436, offs=3) -- 10393(line=495, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_export (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp123) ; ATSlocal (anairiats_rec_1, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; // ATSlocal_void (tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_export: tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_mapgen_scst_svar (arg1) ; tmp125 = ats_select_mac(tmp124, atslab_0) ; tmp126 = ats_select_mac(tmp124, atslab_1) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free (tmp125) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free (tmp126) ; tmp129 = jsonize_list_fun_02213_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp127), &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2cst_long) ; tmp130 = jsonize_list_fun_02213_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp128), &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2var_long) ; tmp131 = c3nstr_get_s2rtdatlst_21 (ats_castfn_mac(ats_ptr_type, tmp127), ats_castfn_mac(ats_ptr_type, tmp128)) ; tmp132 = jsonize_list_fun_02213_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp131), &_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__jsonize_s2rtdat_long) ; /* tmp133 = */ list_vt_free_01499_ats_ptr_type (tmp127) ; /* tmp137 = */ list_vt_free_01499_ats_ptr_type (tmp128) ; /* tmp138 = */ list_vt_free_01499_ats_ptr_type (tmp131) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__jsonize_c3nstr (arg1) ; /* tmp140 = */ atspre_fprint_string (arg0, ATSstrcst("{\n\"s2cstmap\":\n")) ; /* tmp141 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp129) ; /* tmp142 = */ atspre_fprint_newline (arg0) ; /* tmp143 = */ atspre_fprint_string (arg0, ATSstrcst(",\n\"s2varmap\":\n")) ; /* tmp144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp130) ; /* tmp145 = */ atspre_fprint_newline (arg0) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst(",\n\"s2rtdatmap\":\n")) ; /* tmp147 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp132) ; /* tmp148 = */ atspre_fprint_newline (arg0) ; /* tmp149 = */ atspre_fprint_string (arg0, ATSstrcst(",\n\"c3nstrbody\":\n")) ; /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__fprint_jsonval (arg0, tmp139) ; /* tmp151 = */ atspre_fprint_string (arg0, ATSstrcst("\n}")) ; /* tmp123 = */ atspre_fprint_newline (arg0) ; return /* (tmp123) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_export] */ /* 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_jsonize_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_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_jsonize_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_jsonize_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_constraint3_jsonize_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_caseof_dats.c0000644000175000017500000006012013431250607023145 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcase_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTcaseof_fail_4) ; /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_caseof) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiclaulst_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__hidexplst_ccompv) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_caseof.dats: 1787(line=60, offs=3) -- 2138(line=81, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__hidexplst_ccompv (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__hidexplst_ccompv: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp0 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg2, atslab_0) ; tmp2 = ats_caselptrlab_mac(anairiats_sum_0, arg2, atslab_1) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv (arg0, arg1, tmp1) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__hidexplst_ccompv (arg0, arg1, tmp2) ; tmp0 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp0, atslab_0, tmp3) ; ats_selptrset_mac(anairiats_sum_0, tmp0, atslab_1, tmp4) ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__hidexplst_ccompv] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_caseof.dats: 2224(line=87, offs=3) -- 2840(line=118, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_case (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_case: tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hidexp_loc) ; tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp7)->tag != 28) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_caseof.dats: 2292(line=91, offs=5) -- 2339(line=92, offs=40)") ; } tmp8 = ats_caselptrlab_mac(anairiats_sum_2, tmp7, atslab_0) ; tmp9 = ats_caselptrlab_mac(anairiats_sum_2, tmp7, atslab_1) ; tmp10 = ats_caselptrlab_mac(anairiats_sum_2, tmp7, atslab_2) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__hidexplst_ccompv (arg0, arg1, tmp9) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp8)->tag != 1) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp12 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp8)->tag != 2) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp12 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp12)->tag = 4 ; ats_selptrset_mac(anairiats_sum_3, tmp12, atslab_0, tmp6) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (((ats_sum_ptr_type)tmp8)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: tmp12 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp12)->tag = 4 ; ats_selptrset_mac(anairiats_sum_3, tmp12, atslab_0, tmp6) ; break ; } while (0) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiclaulst_ccomp (arg0, tmp13, tmp11, tmp10, arg2, tmp12) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_caseof (tmp6, tmp14) ; /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp15) ; return /* (tmp5) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_case] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_caseof_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_caseof_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_util_dats.c0000644000175000017500000021332713431250607022673 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_primval_loc ; ats_ptr_type atslab_primval_type ; ats_ptr_type atslab_primval_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_instr_loc ; ats_ptr_type atslab_instr_node ; } anairiats_rec_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; ats_ptr_type atslab_6 ; ats_ptr_type atslab_7 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_16 ; typedef struct { ats_ptr_type atslab_ibranch_loc ; ats_ptr_type atslab_ibranch_inslst ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_primdec_loc ; ats_ptr_type atslab_primdec_node ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_19 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBcons_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__TMPSUBnil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtmpref_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVargref_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVtop_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVcastfn_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselcon_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselect2_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVselptr_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMVlamfix_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDsaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDextvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdatdecs_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDexndecs_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDfundecs_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvaldecs_rec_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDvardecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDinclude_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaload_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDstaloadloc_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDdynload_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PMDlocal_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfunlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmplab_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScomment_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_val_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_val_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arg_val_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfcall2_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextfcall_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextmcall_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScond_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSfreecon_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSloopexn_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INScaseof_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpop_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSletpush_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_con_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ref_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_boxrec_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_fltrec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpatck_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_ptrofsel_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_ptrofs_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSxstore_ptrofs_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSraise_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_delay_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_lazyeval_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStrywith_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_nil_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_nil_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSpmove_list_cons_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_phead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_list_ptail_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSmove_arrpsz_ptr_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_asz_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSstore_arrpsz_ptr_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrinc_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSupdate_ptrdec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSclosure_initize_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStmpdec_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSextvar_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INSdcstdef_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__INStempenver_43) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_nshared) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cfunlab) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_d2vfunlab) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_instrlstopt) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_9 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_11 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_12 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxibr_13 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxibrlst_14 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxpmd_15 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxpmdlst_16 (ats_ref_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 1786(line=64, offs=16) -- 1832(line=65, offs=39) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_is_void (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_is_void: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_get_type (arg0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void (tmp1) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_is_void] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 1912(line=72, offs=3) -- 1952(line=72, offs=43) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_void (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_void: tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_primval_type) ; tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void (tmp3) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_void] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 2029(line=78, offs=16) -- 2097(line=79, offs=59) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_top (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_top: tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_primval_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp5)->tag != 19) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp4 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp4 = ats_false_bool ; break ; } while (0) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_top] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 2312(line=90, offs=3) -- 2713(line=110, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_nshared (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_nshared: tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_primval_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp7)->tag != 1) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp7)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp7)->tag != 23) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp7)->tag != 24) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp7)->tag != 25) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp7)->tag != 26) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp7)->tag != 34) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp6 = ats_true_bool ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp7)->tag != 22) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_2, tmp7, atslab_1) ; arg0 = tmp8 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_nshared ; // tail call break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp6 = ats_false_bool ; break ; } while (0) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_nshared] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 2799(line=116, offs=3) -- 3021(line=127, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type (arg1) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo (arg1) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (tmp11 != (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab (arg0, tmp10, arg1) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (tmp11 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_3, tmp11, atslab_0) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cfunlab (arg0, tmp10, tmp12, arg1) ; break ; } while (0) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 3109(line=133, offs=3) -- 3333(line=144, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make2_funlab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_int_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make2_funlab: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type (arg2) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funclo (arg2) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp15 != (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_funlab (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp15 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_3, tmp15, atslab_0) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_cfunlab (arg0, arg1, tmp16, arg2) ; break ; } while (0) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make2_funlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 3424(line=150, offs=3) -- 3520(line=152, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_type (arg2) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_d2vfunlab (arg0, tmp18, arg1, arg2) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 3604(line=157, offs=17) -- 3662(line=158, offs=50) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__patckont_is_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__patckont_is_none: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp19 = ats_true_bool ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp19 = ats_false_bool ; break ; } while (0) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__patckont_is_none] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 3758(line=166, offs=5) -- 3983(line=177, offs=4) */ ATSstaticdec() ats_void_type loop_9 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; // ATSlocal_void (tmp25) ; __ats_lab_loop_9: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp24 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_2) ; /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp22, tmp23) ; arg0 = arg0 ; arg1 = tmp24 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: break ; } while (0) ; return /* (tmp21) */ ; } /* end of [loop_9] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 3738(line=164, offs=15) -- 4085(line=185, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub2stasub (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp26) ; // ATSlocal_void (tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub2stasub: /* ats_ptr_type tmp26 ; */ tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; /* tmp27 = */ loop_9 ((&tmp26), arg0) ; tmp20 = tmp26 ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub2stasub] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 4160(line=191, offs=3) -- 4310(line=197, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub_append (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub_append: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp30 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp31 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub_append (tmp31, arg1) ; tmp28 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp28, atslab_0, tmp29) ; ats_selptrset_mac(anairiats_sum_4, tmp28, atslab_1, tmp30) ; ats_selptrset_mac(anairiats_sum_4, tmp28, atslab_2, tmp32) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp28 = arg1 ; break ; } while (0) ; return (tmp28) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpsub_append] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 5290(line=253, offs=5) -- 7843(line=379, offs=4) */ ATSstaticdec() ats_void_type aux_11 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; // ATSlocal_void (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab_aux_11: tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_instr_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp34)->tag != 0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp34)->tag != 1) { goto __ats_lab_23_0 ; } __ats_lab_22_1: break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp34)->tag != 2) { goto __ats_lab_24_0 ; } __ats_lab_23_1: break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp34)->tag != 3) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_2, tmp34, atslab_0) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp35) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp36 ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp34)->tag != 4) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_2, tmp34, atslab_0) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp37) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp38 ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp34)->tag != 5) { goto __ats_lab_27_0 ; } __ats_lab_26_1: break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp34)->tag != 6) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_6, tmp34, atslab_0) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp39) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp40 ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp34)->tag != 7) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_7, tmp34, atslab_0) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp41) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp42 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp34)->tag != 8) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_0) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp43) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp44 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp34)->tag != 9) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_6, tmp34, atslab_0) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp45) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp46 ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp34)->tag != 10) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_1) ; tmp48 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_2) ; /* tmp49 = */ auxlst_12 (arg0, tmp47) ; /* tmp50 = */ auxlst_12 (arg0, tmp48) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp34)->tag != 11) { goto __ats_lab_33_0 ; } __ats_lab_32_1: break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp34)->tag != 12) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_9, tmp34, atslab_3) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_9, tmp34, atslab_5) ; tmp53 = ats_caselptrlab_mac(anairiats_sum_9, tmp34, atslab_6) ; tmp54 = ats_caselptrlab_mac(anairiats_sum_9, tmp34, atslab_7) ; /* tmp55 = */ auxlst_12 (arg0, tmp51) ; /* tmp56 = */ auxlst_12 (arg0, tmp52) ; /* tmp57 = */ auxlst_12 (arg0, tmp53) ; /* tmp58 = */ auxlst_12 (arg0, tmp54) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp34)->tag != 13) { goto __ats_lab_35_0 ; } __ats_lab_34_1: break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp34)->tag != 14) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_11, tmp34, atslab_0) ; /* tmp33 = */ auxibrlst_14 (arg0, tmp59) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp34)->tag != 15) { goto __ats_lab_37_0 ; } __ats_lab_36_1: break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp34)->tag != 16) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_11, tmp34, atslab_0) ; /* tmp33 = */ auxpmdlst_16 (arg0, tmp60) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp34)->tag != 17) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_6, tmp34, atslab_0) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp61) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp62 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp34)->tag != 18) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_2, tmp34, atslab_0) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp63) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp64 ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp34)->tag != 19) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_0) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp65) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp66 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp34)->tag != 20) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_0) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp67) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp68 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp34)->tag != 21) { goto __ats_lab_43_0 ; } __ats_lab_42_1: break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp34)->tag != 22) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_6, tmp34, atslab_0) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp69) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp70 ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp34)->tag != 23) { goto __ats_lab_45_0 ; } __ats_lab_44_1: break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp34)->tag != 24) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_12, tmp34, atslab_0) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp71) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp72 ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp34)->tag != 26) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_13, tmp34, atslab_0) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp73) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp74 ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp34)->tag != 27) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_13, tmp34, atslab_0) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp75) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp76 ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp34)->tag != 25) { goto __ats_lab_49_0 ; } __ats_lab_48_1: break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp34)->tag != 28) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_1) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_2) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp77) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp80 ; /* tmp81 = */ auxlst_12 (arg0, tmp78) ; /* tmp33 = */ auxibrlst_14 (arg0, tmp79) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp34)->tag != 29) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_11, tmp34, atslab_0) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp82) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp83 ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp34)->tag != 30) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_11, tmp34, atslab_0) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp84) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp85 ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp34)->tag != 31) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_2, tmp34, atslab_0) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp86) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp87 ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp34)->tag != 32) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_0) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp88) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp89 ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp34)->tag != 33) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_8, tmp34, atslab_0) ; tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp90) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp91 ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp34)->tag != 34) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_2, tmp34, atslab_0) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp92) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp93 ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp34)->tag != 35) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_14, tmp34, atslab_0) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp94) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp95 ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp34)->tag != 36) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_15, tmp34, atslab_0) ; tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp96) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp97 ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp34)->tag != 37) { goto __ats_lab_59_0 ; } __ats_lab_58_1: break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp34)->tag != 38) { goto __ats_lab_60_0 ; } __ats_lab_59_1: break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp34)->tag != 39) { goto __ats_lab_61_0 ; } __ats_lab_60_1: break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp34)->tag != 40) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_11, tmp34, atslab_0) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_add (ats_ptrget_mac(ats_ptr_type, arg0), tmp98) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp99 ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp34)->tag != 41) { goto __ats_lab_63_0 ; } __ats_lab_62_1: break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp34)->tag != 42) { goto __ats_lab_64_0 ; } __ats_lab_63_1: break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: // if (((ats_sum_ptr_type)tmp34)->tag != 43) { ats_deadcode_failure_handle () ; } __ats_lab_64_1: break ; } while (0) ; return /* (tmp33) */ ; } /* end of [aux_11] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 7865(line=381, offs=5) -- 8073(line=394, offs=4) */ ATSstaticdec() ats_void_type auxlst_12 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; // ATSlocal_void (tmp103) ; __ats_lab_auxlst_12: do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp101 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp102 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; /* tmp103 = */ aux_11 (arg0, tmp101) ; arg0 = arg0 ; arg1 = tmp102 ; goto __ats_lab_auxlst_12 ; // tail call break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: break ; } while (0) ; return /* (tmp100) */ ; } /* end of [auxlst_12] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 8098(line=396, offs=5) -- 8198(line=402, offs=4) */ ATSstaticdec() ats_void_type auxibr_13 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab_auxibr_13: tmp105 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg1), atslab_ibranch_inslst) ; /* tmp104 = */ auxlst_12 (arg0, tmp105) ; return /* (tmp104) */ ; } /* end of [auxibr_13] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 8223(line=404, offs=5) -- 8463(line=417, offs=4) */ ATSstaticdec() ats_void_type auxibrlst_14 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; // ATSlocal_void (tmp109) ; __ats_lab_auxibrlst_14: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; /* tmp109 = */ auxibr_13 (arg0, tmp107) ; arg0 = arg0 ; arg1 = tmp108 ; goto __ats_lab_auxibrlst_14 ; // tail call break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: break ; } while (0) ; return /* (tmp106) */ ; } /* end of [auxibrlst_14] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 8491(line=419, offs=5) -- 9795(line=477, offs=4) */ ATSstaticdec() ats_void_type auxpmd_15 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; // ATSlocal_void (tmp124) ; __ats_lab_auxpmd_15: tmp111 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_primdec_node) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp111)->tag != 0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp111)->tag != 1) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_11, tmp111, atslab_0) ; /* tmp110 = */ auxpmdlst_16 (arg0, tmp112) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp111)->tag != 2) { goto __ats_lab_72_0 ; } __ats_lab_71_1: break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp111)->tag != 3) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp113 = ats_caselptrlab_mac(anairiats_sum_2, tmp111, atslab_1) ; /* tmp110 = */ auxlst_12 (arg0, ats_castfn_mac(ats_ptr_type, tmp113)) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp111)->tag != 4) { goto __ats_lab_74_0 ; } __ats_lab_73_1: break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp111)->tag != 5) { goto __ats_lab_75_0 ; } __ats_lab_74_1: break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp111)->tag != 10) { goto __ats_lab_78_0 ; } __ats_lab_75_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_11, tmp111, atslab_0) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_instrlstopt (tmp114) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (tmp115 != (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_76_1: break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (tmp115 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_19, tmp115, atslab_0) ; /* tmp110 = */ auxlst_12 (arg0, tmp116) ; break ; } while (0) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp111)->tag != 6) { goto __ats_lab_79_0 ; } __ats_lab_78_1: break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp111)->tag != 7) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_8, tmp111, atslab_2) ; /* tmp110 = */ auxlst_12 (arg0, ats_castfn_mac(ats_ptr_type, tmp117)) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp111)->tag != 8) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_8, tmp111, atslab_2) ; /* tmp110 = */ auxlst_12 (arg0, ats_castfn_mac(ats_ptr_type, tmp118)) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp111)->tag != 9) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_2, tmp111, atslab_1) ; /* tmp110 = */ auxlst_12 (arg0, ats_castfn_mac(ats_ptr_type, tmp119)) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp111)->tag != 11) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp120 = ats_caselptrlab_mac(anairiats_sum_10, tmp111, atslab_1) ; /* tmp110 = */ auxpmdlst_16 (arg0, tmp120) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp111)->tag != 12) { goto __ats_lab_84_0 ; } __ats_lab_83_1: break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp111)->tag != 13) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_8, tmp111, atslab_2) ; /* tmp110 = */ auxpmdlst_16 (arg0, tmp121) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp111)->tag != 14) { goto __ats_lab_86_0 ; } __ats_lab_85_1: break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (((ats_sum_ptr_type)tmp111)->tag != 15) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: tmp122 = ats_caselptrlab_mac(anairiats_sum_2, tmp111, atslab_0) ; tmp123 = ats_caselptrlab_mac(anairiats_sum_2, tmp111, atslab_1) ; /* tmp124 = */ auxpmdlst_16 (arg0, tmp122) ; /* tmp110 = */ auxpmdlst_16 (arg0, tmp123) ; break ; } while (0) ; return /* (tmp110) */ ; } /* end of [auxpmd_15] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 9820(line=479, offs=5) -- 10051(line=491, offs=4) */ ATSstaticdec() ats_void_type auxpmdlst_16 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; // ATSlocal_void (tmp128) ; __ats_lab_auxpmdlst_16: do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ; /* tmp128 = */ auxpmd_15 (arg0, tmp126) ; arg0 = arg0 ; arg1 = tmp127 ; goto __ats_lab_auxpmdlst_16 ; // tail call break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_88_1: break ; } while (0) ; return /* (tmp125) */ ; } /* end of [auxpmdlst_16] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 10134(line=497, offs=3) -- 10236(line=505, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrlst_get_tmpvarset (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; // ATSlocal_void (tmp131) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrlst_get_tmpvarset: /* ats_ptr_type tmp130 ; */ tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_nil () ; /* tmp131 = */ auxlst_12 ((&tmp130), arg0) ; tmp129 = tmp130 ; return (tmp129) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrlst_get_tmpvarset] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_util.dats: 10310(line=509, offs=3) -- 10415(line=517, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdeclst_get_tmpvarset (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; // ATSlocal_void (tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdeclst_get_tmpvarset: /* ats_ptr_type tmp133 ; */ tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvarset_vt_nil () ; /* tmp134 = */ auxpmdlst_16 ((&tmp133), arg0) ; tmp132 = tmp133 ; return (tmp132) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdeclst_get_tmpvarset] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_util_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_util_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_e0xp_dats.c0000644000175000017500000011325613431250607023134 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* include some .h files */ #ifndef _ATS_HEADER_NONE #include "ats_config.h" #include "ats_basics.h" #include "ats_types.h" #include "ats_exception.h" #include "ats_memory.h" #endif /* _ATS_HEADER_NONE */ /* include some .cats files */ #ifndef _ATS_PRELUDE_NONE #include "prelude/CATS/basics.cats" #include "prelude/CATS/bool.cats" #include "prelude/CATS/char.cats" #include "prelude/CATS/byte.cats" #include "prelude/CATS/float.cats" #include "prelude/CATS/integer.cats" #include "prelude/CATS/integer_ptr.cats" #include "prelude/CATS/integer_fixed.cats" #include "prelude/CATS/sizetype.cats" #include "prelude/CATS/pointer.cats" #include "prelude/CATS/reference.cats" #include "prelude/CATS/string.cats" #include "prelude/CATS/lazy.cats" #include "prelude/CATS/lazy_vt.cats" #include "prelude/CATS/printf.cats" #include "prelude/CATS/list.cats" #include "prelude/CATS/option.cats" #include "prelude/CATS/array.cats" #include "prelude/CATS/matrix.cats" #endif /* _ATS_PRELUDE_NONE */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IF_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_alp_143) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_INT_150) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CHAR_151) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FLOAT_152) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STRING_154) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LPAREN_157) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_PERCENTLPAREN_172) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atme0xp_61) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0nt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_c0har) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_f0loat) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_s0tring) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0de) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_list) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_eval) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_make_stringid) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__datsdef_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null) (ats_ref_type, ats_uint_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA) (ats_ref_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun) (ats_ref_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de) (ats_ref_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp) (ats_ref_type, ats_int_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type p_e0xpseq_vt_0 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type p_atme0xp_2 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type loop_5 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_atme0xp_tok_3 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p_e0xp0_6 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type p_datsval_10 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 1760(line=61, offs=1) -- 1879(line=68, offs=2) */ ATSstaticdec() ats_ptr_type p_e0xpseq_vt_0 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab_p_e0xpseq_vt_0: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp) ; return (tmp0) ; } /* end of [p_e0xpseq_vt_0] */ /* // /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 1945(line=74, offs=3) -- 1992(line=74, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xpseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xpseq: tmp2 = p_e0xpseq_vt_0 (arg0, arg1, arg2) ; tmp1 = ats_castfn_mac(ats_ptr_type, tmp2) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xpseq] */ /* // /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 2196(line=91, offs=1) -- 2318(line=97, offs=2) */ ATSstaticdec() ats_ptr_type p_atme0xp_2 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_p_atme0xp_2: tmp4 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atme0xp_61) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_atme0xp_tok_3, tmp4) ; return (tmp3) ; } /* end of [p_atme0xp_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab_loop_5: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp22 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: break ; } while (0) ; return /* (tmp21) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp20) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp20 = */ loop_5 (arg0) ; return /* (tmp20) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 2342(line=100, offs=1) -- 3658(line=163, offs=4) */ ATSstaticdec() ats_ptr_type p_atme0xp_tok_3 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_bool_type, tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; __ats_lab_p_atme0xp_tok_3: tmp6 = ats_ptrget_mac(ats_int_type, arg2) ; /* ats_ptr_type tmp7 ; */ tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ; tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de, (&tmp7)) ; if (!tmp10) { goto __ats_lab_1_0 ; } tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0de (ats_castfn_mac(ats_ptr_type, tmp7)) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp9)->tag != 150) { goto __ats_lab_2_0 ; } __ats_lab_1_1: /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0nt (arg3) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp9)->tag != 151) { goto __ats_lab_3_0 ; } __ats_lab_2_1: /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_c0har (arg3) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp9)->tag != 152) { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_f0loat (arg3) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp9)->tag != 154) { goto __ats_lab_5_0 ; } __ats_lab_4_1: /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_s0tring (arg3) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp9)->tag != 157) { goto __ats_lab_8_0 ; } __ats_lab_5_1: /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp16 = p_e0xpseq_vt_0 (arg0, 0, arg2) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ; tmp18 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp6) ; if (tmp18) { tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_list (arg3, ats_castfn_mac(ats_ptr_type, tmp16), tmp17) ; } else { /* tmp19 = */ list_vt_free_01499_ats_ptr_type (tmp16) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp9)->tag != 172) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (arg0, 0, arg2) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp6) ; tmp26 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp6) ; if (tmp26) { tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_eval (arg3, tmp24, tmp25) ; } else { tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; } /* end of [if] */ break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp27 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp27 ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp5) ; } /* end of [p_atme0xp_tok_3] */ /* // /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 3812(line=177, offs=1) -- 4025(line=186, offs=2) */ ATSstaticdec() ats_ptr_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_loop_7: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp29 = arg0 ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp31 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app (arg0, tmp30) ; arg0 = tmp32 ; arg1 = tmp31 ; goto __ats_lab_loop_7 ; // tail call break ; } while (0) ; return (tmp29) ; } /* end of [loop_7] */ /* // /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 3745(line=172, offs=1) -- 4198(line=196, offs=4) */ ATSstaticdec() ats_ptr_type p_e0xp0_6 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_p_e0xp0_6: tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun (arg0, arg1, arg2, &p_atme0xp_2) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (tmp33 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (tmp33 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_2, tmp33, atslab_0) ; tmp35 = ats_caselptrlab_mac(anairiats_sum_2, tmp33, atslab_1) ; ATS_FREE(tmp33) ; tmp28 = loop_7 (tmp34, tmp35) ; break ; } while (0) ; return (tmp28) ; } /* end of [p_e0xp0_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2556(line=86, offs=16) -- 2611(line=87, offs=49) */ ATSstaticdec() ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp53) ; __ats_lab_option_vt_free_01544_ats_ptr_type: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: ATS_FREE(arg0) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: break ; } while (0) ; return /* (tmp53) */ ; } /* end of [option_vt_free_01544_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 4325(line=205, offs=7) -- 5350(line=249, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_int_type, tmp37) ; ATSlocal (ats_uint_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_bool_type, tmp45) ; // ATSlocal_void (tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_bool_type, tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_int_type, tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp: tmp37 = ats_ptrget_mac(ats_int_type, arg2) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp40 ; */ tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp39), atslab_token_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_e0xp0_6, (&tmp40)) ; if (!tmp42) { goto __ats_lab_15_0 ; } tmp43 = ats_castfn_mac(ats_ptr_type, tmp40) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (arg0, 0, arg2) ; tmp45 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp37) ; if (tmp45) { tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app (tmp43, tmp44) ; } else { ats_ptrget_mac(ats_int_type, arg2) = tmp37 ; tmp36 = tmp43 ; } /* end of [if] */ break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp41)->tag != 53) { goto __ats_lab_18_0 ; } __ats_lab_15_1: /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp47 = p_e0xp0_6 (arg0, arg1, arg2) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN, tmp37) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp, tmp37) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp) ; tmp51 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp37) ; if (tmp51) { tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_if (tmp39, tmp47, tmp49, ats_castfn_mac(ats_ptr_type, tmp50)) ; } else { /* tmp52 = */ option_vt_free_01544_ats_ptr_type (tmp50) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp38) ; } /* end of [if] */ break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp54 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp54 ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ; break ; } while (0) ; return (tmp36) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp] */ /* // /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 5490(line=259, offs=1) -- 6217(line=300, offs=4) */ ATSstaticdec() ats_ptr_type p_datsval_10 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_uint_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; // ATSlocal_void (tmp66) ; __ats_lab_p_datsval_10: tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ; /* ats_ptr_type tmp58 ; */ tmp59 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp57), atslab_token_loc) ; tmp60 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp57), atslab_token_node) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp60)->tag != 150) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0nt (tmp57) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp60)->tag != 151) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_c0har (tmp57) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp60)->tag != 152) { goto __ats_lab_22_0 ; } __ats_lab_21_1: /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_f0loat (tmp57) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp60)->tag != 154) { goto __ats_lab_23_0 ; } __ats_lab_22_1: /* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_s0tring (tmp57) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp60)->tag != 143) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_3, tmp60, atslab_0) ; /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_make_stringid (tmp59, tmp65) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_make_stringid (tmp59, ATSstrcst("")) ; break ; } while (0) ; return (tmp55) ; } /* end of [p_datsval_10] */ /* // /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 6362(line=311, offs=3) -- 6769(line=335, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_datsdef (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_int_type, tmp68) ; ATSlocal (ats_uint_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_bool_type, tmp72) ; ATSlocal (ats_bool_type, tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_datsdef: tmp68 = ats_ptrget_mac(ats_int_type, arg2) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de (arg0, arg1, arg2) ; tmp72 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp68) ; if (tmp72) { tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ, &p_datsval_10) ; } else { tmp71 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp73 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp68) ; if (tmp73) { tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__datsdef_make (tmp70, ats_castfn_mac(ats_ptr_type, tmp71)) ; } else { /* tmp74 = */ option_vt_free_01544_ats_ptr_type (tmp71) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp69) ; } /* end of [if] */ return (tmp67) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_datsdef] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_e0xp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_counter_dats.c0000644000175000017500000006103013431250607022204 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 */ /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_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_int_type, atspre_compare_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__sasp__counter_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__sasp__count_t0ype = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) ; static ats_ptr_type ref_make_elt_01089_ats_int_type (ats_int_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 1613(line=50, offs=25) -- 1620(line=50, offs=32) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__count_get_int (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__count_get_int: tmp0 = arg0 ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__count_get_int] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 1668(line=55, offs=16) -- 1698(line=55, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lt_count_count (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lt_count_count: tmp1 = atspre_lt_int_int (arg0, arg1) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lt_count_count] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 1725(line=57, offs=17) -- 1756(line=57, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lte_count_count (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lte_count_count: tmp2 = atspre_lte_int_int (arg0, arg1) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__lte_count_count] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 1783(line=60, offs=16) -- 1813(line=60, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__gt_count_count (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__gt_count_count: tmp3 = atspre_gt_int_int (arg0, arg1) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__gt_count_count] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 1840(line=62, offs=17) -- 1871(line=62, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__gte_count_count (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__gte_count_count: tmp4 = atspre_gte_int_int (arg0, arg1) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__gte_count_count] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 1898(line=65, offs=16) -- 1928(line=65, offs=46) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__eq_count_count (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__eq_count_count: tmp5 = atspre_eq_int_int (arg0, arg1) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__eq_count_count] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 1955(line=67, offs=17) -- 1986(line=67, offs=48) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__neq_count_count (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__neq_count_count: tmp6 = atspre_neq_int_int (arg0, arg1) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__neq_count_count] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2018(line=70, offs=21) -- 2053(line=70, offs=56) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__compare_count_count (ats_int_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__compare_count_count: tmp7 = atspre_compare_int_int (arg0, arg1) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__compare_count_count] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2099(line=75, offs=14) -- 2129(line=75, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__fprint_count (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__fprint_count: /* tmp8 = */ atspre_fprint_int (arg0, arg1) ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__fprint_count] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2177(line=80, offs=16) -- 2253(line=82, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_count (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_count: tmp10 = atspre_tostringf (ATSstrcst("%i"), arg0) ; tmp9 = ats_castfn_mac(ats_ptr_type, tmp10) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_count] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2314(line=85, offs=23) -- 2401(line=87, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_count (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_count: tmp12 = atspre_tostringf (ATSstrcst("%s%i"), arg0, arg1) ; tmp11 = ats_castfn_mac(ats_ptr_type, tmp12) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_count] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_int_type, tmp16) ; __ats_lab_ref_01088_ats_int_type: /* ats_int_type tmp16 ; */ tmp16 = arg0 ; tmp15 = atspre_ref_make_elt_tsz ((&tmp16), sizeof(ats_int_type)) ; return (tmp15) ; } /* end of [ref_01088_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42) */ ATSstaticdec() ats_ptr_type ref_make_elt_01089_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; __ats_lab_ref_make_elt_01089_ats_int_type: tmp14 = ref_01088_ats_int_type (arg0) ; return (tmp14) ; } /* end of [ref_make_elt_01089_ats_int_type] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2483(line=92, offs=14) -- 2510(line=92, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make: tmp13 = ref_make_elt_01089_ats_int_type (0) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2537(line=95, offs=13) -- 2564(line=95, offs=40) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_inc (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_inc: tmp19 = ats_ptrget_mac(ats_int_type, arg0) ; tmp18 = atspre_add_int_int (tmp19, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp18 ; return /* (tmp17) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_inc] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2587(line=96, offs=23) -- 2601(line=96, offs=37) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_get (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_get: tmp20 = ats_ptrget_mac(ats_int_type, arg0) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_get] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2624(line=97, offs=23) -- 2650(line=97, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_set (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_set: ats_ptrget_mac(ats_int_type, arg0) = arg1 ; return /* (tmp21) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_set] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2675(line=98, offs=25) -- 2694(line=98, offs=44) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_reset (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_reset: ats_ptrget_mac(ats_int_type, arg0) = 0 ; return /* (tmp22) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_reset] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2725(line=102, offs=3) -- 2787(line=104, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc: tmp24 = ats_ptrget_mac(ats_int_type, arg0) ; tmp25 = atspre_add_int_int (tmp24, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp25 ; tmp23 = tmp24 ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc] */ /* // /tmp/ATS-Postiats/src/pats_counter.dats: 2845(line=108, offs=3) -- 2909(line=110, offs=2) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_incget (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_incget: tmp28 = ats_ptrget_mac(ats_int_type, arg0) ; tmp27 = atspre_add_int_int (tmp28, 1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp27 ; tmp26 = tmp27 ; return (tmp26) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_incget] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_counter_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_instrseq_dats.c0000644000175000017500000011306213431250607023561 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 "libats/CATS/linqueue_lst.cats" #include "libats/CATS/linqueue_lst.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { atslib_linqueue_lst_QUEUE atslab_0 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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_ccomp_instrseq_2edats__INSTRSEQ_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool1) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_is_empty) (ats_ref_type) ; ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_initialize) (ats_ref_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_comment) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_freecon) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmpdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_dcstdef) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst_vt) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg_v_extend_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_decode0_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_encode0_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_decode1_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_encode1_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__instrseq_vtype = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__INSTRSEQ_0) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ptr_alloc_01070_anairiats_rec_2 () ; static ats_void_type queue_insert_01882_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type queue_uninitialize_01881_ats_ptr_type (ats_ref_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 1910(line=68, offs=3) -- 2074(line=75, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil: tmp1 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; // tmp2 = &ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp3 = */ ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__queue_initialize (tmp2) ; tmp0 = tmp1 ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_2 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; __ats_lab_ptr_alloc_01070_anairiats_rec_2: tmp8 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_2)) ; return (tmp8) ; } /* end of [ptr_alloc_01070_anairiats_rec_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_lst.dats: 7426(line=296, offs=14) -- 8184(line=319, offs=4) */ ATSstaticdec() ats_void_type queue_insert_01882_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab_queue_insert_01882_ats_ptr_type: tmp7 = ptr_alloc_01070_anairiats_rec_2 () ; tmp9 = ats_selsin_mac(tmp7, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp9), atslab_0) = arg1 ; tmp10 = ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr1) ; tmp11 = atspre_pgt (tmp10, atspre_null_ptr) ; if (tmp11) { tmp12 = ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp12), atslab_1) = tmp9 ; ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr2) = tmp9 ; } else { ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr1) = tmp9 ; ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr2) = tmp9 ; } /* end of [if] */ return /* (tmp6) */ ; } /* end of [queue_insert_01882_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 2152(line=81, offs=3) -- 2301(line=89, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: // __ats_lab_0_1: tmp5 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; /* tmp4 = */ queue_insert_01882_ats_ptr_type (tmp5, arg1) ; break ; } while (0) ; return /* (tmp4) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 2382(line=95, offs=3) -- 2496(line=101, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_comment (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_comment: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_comment (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, arg1) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg0, tmp14) ; return /* (tmp13) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_comment] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 2584(line=107, offs=3) -- 2647(line=108, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec: tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_tmpdec (arg1, arg2) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg0, tmp16) ; return /* (tmp15) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 2734(line=115, offs=3) -- 2807(line=116, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_extvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_extvar: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_extvar (arg1, arg2, arg3) ; /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg0, tmp18) ; return /* (tmp17) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_extvar] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 2895(line=123, offs=3) -- 2969(line=124, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_dcstdef (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_dcstdef: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_dcstdef (arg1, arg2, arg3) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg0, tmp20) ; return /* (tmp19) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_dcstdef] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 3053(line=131, offs=3) -- 3236(line=141, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst: do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg0, tmp22) ; arg0 = arg0 ; arg1 = tmp23 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst ; // tail call break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: break ; } while (0) ; return /* (tmp21) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 3318(line=147, offs=3) -- 3512(line=157, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst_vt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst_vt: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp27 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; ATS_FREE(arg1) ; /* tmp28 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg0, tmp26) ; arg0 = arg0 ; arg1 = tmp27 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst_vt ; // tail call break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: break ; } while (0) ; return /* (tmp25) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_addlst_vt] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 3577(line=163, offs=5) -- 3893(line=182, offs=4) */ ATSstaticdec() ats_void_type auxlst_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; __ats_lab_auxlst_10: do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp31 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; ATS_FREE(arg2) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_freecon (arg1, tmp30) ; /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg0, tmp32) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp31 ; goto __ats_lab_auxlst_10 ; // tail call break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: break ; } while (0) ; return /* (tmp29) */ ; } /* end of [auxlst_10] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 3975(line=188, offs=3) -- 4019(line=188, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_freeconlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_freeconlst: /* tmp34 = */ auxlst_10 (arg0, arg1, arg2) ; return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_freeconlst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_lst.dats: 6763(line=271, offs=20) -- 7323(line=289, offs=4) */ ATSstaticdec() ats_ptr_type queue_uninitialize_01881_ats_ptr_type (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; __ats_lab_queue_uninitialize_01881_ats_ptr_type: tmp39 = ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr1) ; tmp40 = atspre_pgt (tmp39, atspre_null_ptr) ; if (tmp40) { tmp41 = ats_select_mac(ats_ptrget_mac(atslib_linqueue_lst_QUEUE, arg0), ptr2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp41), atslab_1) = atspre_null_ptr ; tmp38 = ats_castfn_mac(ats_ptr_type, tmp39) ; } else { tmp38 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp38) ; } /* end of [queue_uninitialize_01881_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_instrseq.dats: 4131(line=197, offs=3) -- 4270(line=203, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free: // tmp36 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp37 = queue_uninitialize_01881_ats_ptr_type (tmp36) ; ATS_FREE(arg0) ; tmp35 = ats_castfn_mac(ats_ptr_type, tmp37) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_lst_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__INSTRSEQ_0.tag = 0 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_instrseq_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg_v_extend_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_decode0_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_encode0_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_decode1_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats__slseg1_v_encode1_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_lst_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_instrseq_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_trywith_dats.c0000644000175000017500000006226013431250607023426 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtrywith_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTraise_6) ; /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set) (ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_exnconptr) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_trywith) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiclaulst_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_trywith.dats: 1782(line=64, offs=3) -- 2828(line=112, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_trywith (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_int_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_int_type, tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_trywith: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hidexp_loc) ; tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp3)->tag != 54) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_trywith.dats: 1877(line=68, offs=5) -- 1930(line=69, offs=43)") ; } tmp4 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_1) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp1, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_exnconptr) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp1, tmp6) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp10 = ats_selsin_mac(tmp9, atslab_1) */ ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get () ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set (0) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, tmp8, arg2, tmp4) ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_set (tmp11) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp8) ; tmp17 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp17)->tag = 6 ; ats_selptrset_mac(anairiats_sum_2, tmp17, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_2, tmp17, atslab_1, tmp7) ; tmp20 = (ats_sum_ptr_type)0 ; tmp19 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp19, atslab_0, tmp7) ; ats_selptrset_mac(anairiats_sum_3, tmp19, atslab_1, tmp20) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiclaulst_ccomp (arg0, tmp2, tmp19, tmp5, arg2, tmp17) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_trywith (tmp1, tmp6, tmp16, tmp18) ; /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp21) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret_trywith] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_trywith_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_trywith_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_caseof_dats.c0000644000175000017500000030253213431250607023264 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_gm2at_loc ; ats_ptr_type atslab_gm2at_exp ; ats_ptr_type atslab_gm2at_pat ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_c2lau_loc ; ats_ptr_type atslab_c2lau_pat ; ats_ptr_type atslab_c2lau_gua ; ats_int_type atslab_c2lau_seq ; ats_int_type atslab_c2lau_neg ; ats_ptr_type atslab_c2lau_body ; } anairiats_rec_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_sc2lau_loc ; ats_ptr_type atslab_sc2lau_pat ; ats_ptr_type atslab_sc2lau_body ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_sp2at_loc ; ats_ptr_type atslab_sp2at_exp ; ats_ptr_type atslab_sp2at_node ; } anairiats_rec_11 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_basics_2esats__CK_case_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Escasehead_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_c2lau_trdn_arity_84) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_c2laulst0_trdn_noclause_85) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_c2laulst2_trdn_redundant_86) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_neq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_t0ype_exi) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cstlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_any) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_comp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_inter_test) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_diff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_case) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_scase) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__gm3at_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__c3lau_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__sc3lau_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__guard_trdn) (ats_ptr_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__c2laulst_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lvalist_set_pat_type_left) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sp2at) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlstlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_let) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_let) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2lau_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn_rest) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_ptr_type gm2at_trup_1 (ats_ptr_type arg0) ; static ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type gm2atlst_trup_2 (ats_ptr_type arg0) ; static ats_void_type prerr_warning3_loc_02094_ (ats_ptr_type arg0) ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_void_type c2laulst0_trdn_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) ; static ats_ptr_type c2laulst1_trdn_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ; static ats_void_type auxerr_15 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type auxerr_15_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_void_type auxerr_15_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxred_14 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_clo_ptr_type auxred_14_closure_make (ats_ptr_type env0) ; static ats_void_type auxred_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_20 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_17 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_17_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_17_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type loop_23 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_25 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_21 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_21_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_21_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type revapp_28 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type auxmain_16 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_clo_ptr_type auxmain_16_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4) ; static ats_ptr_type auxmain_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ; static ats_ptr_type auxscl_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_bool_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type auxsclist_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_bool_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 1673(line=54, offs=18) -- 1704(line=54, offs=49) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_caseof")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 2195(line=85, offs=1) -- 2727(line=109, offs=4) */ ATSstaticdec() ats_ptr_type gm2at_trup_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; __ats_lab_gm2at_trup_1: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_gm2at_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_gm2at_exp) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp3) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp4) ; tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_gm2at_pat) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp6 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_2, tmp6, atslab_0) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp8, tmp5) ; tmp7 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp7, atslab_0, tmp9) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__guard_trdn (tmp2, ats_true_bool, tmp5) ; tmp7 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__gm3at_make (tmp2, tmp4, tmp7) ; return (tmp1) ; } /* end of [gm2at_trup_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab_loop_5: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp17 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp18 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp16, arg3) ; tmp19 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp19, atslab_0, tmp18) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp19 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp20 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp17 ; arg1 = arg1 ; arg2 = tmp20 ; arg3 = arg3 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp21 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp21 ; break ; } while (0) ; return /* (tmp15) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp22 ; */ /* tmp23 = */ loop_5 (arg0, arg1, (&tmp22), arg2) ; tmp14 = tmp22 ; return (tmp14) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp13 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp13) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 2756(line=112, offs=1) -- 2875(line=118, offs=4) */ ATSstaticdec() ats_ptr_type gm2atlst_trup_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab_gm2atlst_trup_2: tmp12 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &gm2at_trup_1) ; tmp11 = ats_castfn_mac(ats_ptr_type, tmp12) ; return (tmp11) ; } /* end of [gm2atlst_trup_2] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 3185(line=138, offs=12) -- 4964(line=206, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2lau_trdn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; ATSlocal (ats_int_type, tmp29) ; ATSlocal (ats_int_type, tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_bool_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_int_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_bool_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2lau_trdn: tmp25 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_c2lau_loc) ; tmp26 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_c2lau_pat) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp28 = ats_selsin_mac(tmp27, atslab_1) */ ; tmp29 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_c2lau_seq) ; tmp30 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_c2lau_neg) ; tmp32 = atspre_gt_int_int (tmp29, 0) ; if (tmp32) { tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy (arg6) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlstlst (tmp25, tmp33, arg4) ; } else { /* empty */ } /* end of [if] */ /* ats_int_type tmp34 ; */ tmp34 = 0 ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn (tmp25, tmp26, arg4, (&tmp34)) ; tmp37 = atspre_neq_int_int (tmp34, 0) ; if (tmp37) { tmp38 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp38)->tag = 84 ; ats_selptrset_mac(anairiats_sum_5, tmp38, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp38, atslab_1, arg4) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp38) ; } else { /* empty */ } /* end of [if] */ /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_let () ; /* tmp40 = ats_selsin_mac(tmp39, atslab_1) */ ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst (tmp35) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_let () ; /* tmp43 = ats_selsin_mac(tmp42, atslab_1) */ ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst (tmp35) ; tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_c2lau_gua) ; tmp45 = gm2atlst_trup_2 (tmp46) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lvalist_set_pat_type_left (arg3, tmp35) ; tmp49 = atspre_gt_int_int (tmp30, 0) ; if (tmp49) { tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bottom_t0ype_exi () ; } else { tmp48 = arg5 ; } /* end of [if] */ tmp51 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg1), atslab_c2lau_body) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp51, tmp48) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check (tmp25) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free (arg6) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop () ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop () ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (arg2) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp25) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__c3lau_make (tmp25, tmp35, tmp45, tmp29, tmp30, tmp50) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2lau_trdn] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2997(line=122, offs=20) -- 3058(line=125, offs=2) */ ATSstaticdec() ats_void_type prerr_warning3_loc_02094_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; __ats_lab_prerr_warning3_loc_02094_: /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp60 = */ atspre_prerr_string (ATSstrcst(": warning(3)")) ; return /* (tmp60) */ ; } /* end of [prerr_warning3_loc_02094_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; __ats_lab_prerr_error3_loc_02089_: /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp66 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp66) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 5014(line=211, offs=1) -- 5754(line=238, offs=4) */ ATSstaticdec() ats_void_type c2laulst0_trdn_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_int_type, tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab_c2laulst0_trdn_7: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: /* tmp59 = */ prerr_warning3_loc_02094_ (arg0) ; /* tmp62 = */ atspre_prerr_string (ATSstrcst(": a case-expression is expected to have at least one match clause.")) ; /* tmp63 = */ atspre_prerr_newline () ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn (arg0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp65 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp68 = */ atspre_prerr_string (ATSstrcst(": a case+-expression is required to have at least one match clause.")) ; /* tmp69 = */ atspre_prerr_newline () ; tmp70 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp70)->tag = 85 ; ats_selptrset_mac(anairiats_sum_6, tmp70, atslab_0, arg0) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp70) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: break ; } while (0) ; return /* (tmp58) */ ; } /* end of [c2laulst0_trdn_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 1961(line=59, offs=16) -- 2054(line=60, offs=87) */ ATSstaticdec() ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp83) ; __ats_lab_list_vt_is_nil_01494_: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp83 = ats_true_bool ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: tmp83 = ats_false_bool ; break ; } while (0) ; return (tmp83) ; } /* end of [list_vt_is_nil_01494_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 5808(line=243, offs=1) -- 7292(line=307, offs=4) */ ATSstaticdec() ats_ptr_type c2laulst1_trdn_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_bool_type, tmp81) ; ATSlocal (ats_bool_type, tmp82) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_bool_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; ATSlocal (ats_bool_type, tmp91) ; ATSlocal (ats_int_type, tmp92) ; __ats_lab_c2laulst1_trdn_10: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_comp (arg3) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_comp (arg3) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp72 = (ats_sum_ptr_type)0 ; break ; } while (0) ; /* ats_ptr_type tmp73 ; */ tmp73 = tmp72 ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; /* ats_ptr_type tmp75 ; */ tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize (tmp74) ; tmp77 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_c2lau_loc) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp77) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_any (arg3) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2lau_trdn (arg1, arg3, tmp76, arg4, arg5, arg6, tmp78) ; /* tmp80 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (tmp75, tmp76) ; tmp82 = list_vt_is_nil_01494_ (tmp73) ; if (tmp82) { tmp81 = ats_true_bool ; } else { tmp81 = ats_false_bool ; } /* end of [if] */ tmp85 = atspre_neg_bool (tmp81) ; if (tmp85) { tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy (tmp73) ; /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false (arg0, arg1, tmp86, arg5) ; } else { /* empty */ } /* end of [if] */ /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free (tmp73) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process (tmp75, arg2) ; /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize (tmp75) ; tmp91 = atspre_neg_bool (tmp81) ; if (tmp91) { tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn (arg0, arg1) ; } else { /* empty */ } /* end of [if] */ tmp71 = tmp79 ; return (tmp71) ; } /* end of [c2laulst1_trdn_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 7909(line=345, offs=1) -- 9489(line=406, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_bool_type, tmp104) ; ATSlocal (ats_bool_type, tmp105) ; // ATSlocal_void (tmp106) ; ATSlocal (ats_bool_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_bool_type, tmp113) ; ATSlocal (ats_int_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_comp (arg3) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_comp (arg3) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp94 = (ats_sum_ptr_type)0 ; break ; } while (0) ; /* ats_ptr_type tmp95 ; */ tmp95 = tmp94 ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; /* ats_ptr_type tmp97 ; */ tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize (tmp96) ; tmp98 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg3), atslab_c2lau_loc) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp98) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_any (arg3) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2lau_trdn (arg1, arg3, tmp99, arg5, arg6, arg7, tmp100) ; /* tmp102 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (tmp97, tmp99) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn_rest (arg0, arg1, arg2, tmp101, tmp96, tmp97, arg4, arg5, arg6, arg7, (&tmp95)) ; tmp105 = list_vt_is_nil_01494_ (tmp95) ; if (tmp105) { tmp104 = ats_true_bool ; } else { tmp104 = ats_false_bool ; } /* end of [if] */ tmp107 = atspre_neg_bool (tmp104) ; if (tmp107) { tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy (tmp95) ; /* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false (arg0, arg1, tmp108, arg6) ; } else { /* empty */ } /* end of [if] */ /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free (tmp95) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process (tmp97, arg2) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize (tmp97) ; tmp113 = atspre_neg_bool (tmp104) ; if (tmp113) { tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn (arg0, arg1) ; } else { /* empty */ } /* end of [if] */ tmp93 = tmp103 ; return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 9868(line=432, offs=1) -- 10248(line=445, offs=4) */ ATSstaticdec() ats_void_type auxerr_15 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp117) ; ATSlocal (ats_bool_type, tmp118) ; // ATSlocal_void (tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_auxerr_15: tmp118 = list_vt_is_nil_01494_ (arg0) ; if (tmp118) { tmp120 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, env1), atslab_c2lau_loc) ; /* tmp119 = */ prerr_error3_loc_02089_ (tmp120) ; /* tmp121 = */ atspre_prerr_string (ATSstrcst(": this pattern match clause is redundant.")) ; /* tmp122 = */ atspre_prerr_newline () ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp123)->tag = 86 ; ats_selptrset_mac(anairiats_sum_5, tmp123, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_5, tmp123, atslab_1, env1) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp123) ; } else { /* empty */ } /* end of [if] */ return /* (tmp117) */ ; } /* end of [auxerr_15] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxerr_15_closure_type ; ats_void_type auxerr_15_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxerr_15 (((auxerr_15_closure_type*)cloptr)->closure_env_0, ((auxerr_15_closure_type*)cloptr)->closure_env_1, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxerr_15_closure_init (auxerr_15_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxerr_15_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxerr_15_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxerr_15_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_15_closure_type)) ; auxerr_15_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 9763(line=426, offs=1) -- 10404(line=454, offs=4) */ ATSstaticdec() ats_void_type auxred_14 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp116) ; __ats_lab_auxred_14: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp116 = */ auxerr_15 (env0, arg1, arg2) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp116 = */ auxerr_15 (env0, arg1, arg2) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: break ; } while (0) ; return /* (tmp116) */ ; } /* end of [auxred_14] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxred_14_closure_type ; ats_void_type auxred_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { auxred_14 (((auxred_14_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; return ; } /* end of function */ ATSinline() ats_void_type auxred_14_closure_init (auxred_14_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxred_14_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxred_14_closure_make (ats_ptr_type env0) { auxred_14_closure_type *p_clo = ATS_MALLOC(sizeof(auxred_14_closure_type)) ; auxred_14_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_20 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab_loop_20: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp141 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp142 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp142, atslab_0, tmp140) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp142 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp143 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp141 ; arg1 = tmp143 ; goto __ats_lab_loop_20 ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp144 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp144 ; break ; } while (0) ; return /* (tmp139) */ ; } /* end of [loop_20] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp145) ; // ATSlocal_void (tmp146) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp145 ; */ /* tmp146 = */ loop_20 (arg0, (&tmp145)) ; tmp138 = tmp145 ; return (tmp138) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4725(line=167, offs=18) -- 4776(line=168, offs=44) */ ATSstaticdec() ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; __ats_lab_list_vt_copy_01498_ats_ptr_type: tmp137 = list_copy_01322_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp137) ; } /* end of [list_vt_copy_01498_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 10977(line=478, offs=11) -- 11708(line=499, offs=64) */ ATSstaticdec() ats_ptr_type aux_17 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_bool_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp147) ; __ats_lab_aux_17: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_19_1: tmp130 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp131 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp133 = ats_ptrget_mac(ats_ptr_type, tmp131) ; tmp132 = aux_17 (env0, tmp133) ; tmp135 = ats_ptrget_mac(ats_ptr_type, tmp130) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_inter_test (ats_castfn_mac(ats_ptr_type, tmp135), env0) ; if (tmp134) { tmp147 = ats_ptrget_mac(ats_ptr_type, tmp130) ; tmp136 = list_vt_copy_01498_ats_ptr_type (tmp147) ; tmp129 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_0, tmp136) ; ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_1, tmp132) ; } else { tmp129 = tmp132 ; } /* end of [if] */ break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp129 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp129) ; } /* end of [aux_17] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_17_closure_type ; ats_ptr_type aux_17_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_17 (((aux_17_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_17_closure_init (aux_17_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_17_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_17_closure_make (ats_ptr_type env0) { aux_17_closure_type *p_clo = ATS_MALLOC(sizeof(aux_17_closure_type)) ; aux_17_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_23 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; __ats_lab_loop_23: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp164 ; goto __ats_lab_loop_23 ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: break ; } while (0) ; return /* (tmp163) */ ; } /* end of [loop_23] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp162) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp162 = */ loop_23 (arg0) ; return /* (tmp162) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_25 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; __ats_lab_loop_25: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp168 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp168 ; arg1 = arg1 ; goto __ats_lab_loop_25 ; // tail call break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp167) */ ; } /* end of [loop_25] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; // ATSlocal_void (tmp169) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp166 ; */ tmp166 = arg0 ; /* tmp169 = */ loop_25 ((&tmp166), arg1) ; tmp165 = tmp166 ; return (tmp165) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 12411(line=523, offs=15) -- 12868(line=534, offs=48) */ ATSstaticdec() ats_ptr_type aux_21 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; ATSlocal (ats_ptr_type, tmp170) ; __ats_lab_aux_21: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_24_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp159 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_diff (ats_castfn_mac(ats_ptr_type, tmp158), env0) ; /* tmp161 = */ list_vt_free_01499_ats_ptr_type (tmp158) ; tmp170 = aux_21 (env0, tmp159) ; tmp157 = list_vt_append_01504_ats_ptr_type (tmp160, tmp170) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp157 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp157) ; } /* end of [aux_21] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_21_closure_type ; ats_ptr_type aux_21_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_21 (((aux_21_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_21_closure_init (aux_21_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_21_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_21_closure_make (ats_ptr_type env0) { aux_21_closure_type *p_clo = ATS_MALLOC(sizeof(aux_21_closure_type)) ; aux_21_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_28 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab_revapp_28: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp177 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp178 = ats_ptrget_mac(ats_ptr_type, tmp177) ; ats_ptrget_mac(ats_ptr_type, tmp177) = arg1 ; tmp179 = arg0 ; arg0 = tmp178 ; arg1 = tmp179 ; goto __ats_lab_revapp_28 ; // tail call break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp176 = arg1 ; break ; } while (0) ; return (tmp176) ; } /* end of [revapp_28] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp175) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp175 = revapp_28 (arg0, arg1) ; return (tmp175) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp180) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp180 = (ats_sum_ptr_type)0 ; tmp174 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp180) ; return (tmp174) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 10431(line=457, offs=1) -- 13426(line=554, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_16 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; __ats_lab_auxmain_16: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_18_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp125), atslab_c2lau_pat) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cstlst (tmp128) ; tmp148 = aux_17 (tmp127, ats_ptrget_mac(ats_ptr_type, arg4)) ; /* tmp149 = */ auxred_14 (env0, env1, tmp125, tmp148) ; /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (arg1) ; tmp152 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp125), atslab_c2lau_loc) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp152) ; tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2lau_trdn (env1, tmp125, tmp151, env2, env3, env4, tmp148) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (arg2, tmp151) ; tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp125), atslab_c2lau_gua) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (tmp155 != (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_23_1: tmp171 = aux_21 (tmp127, ats_ptrget_mac(ats_ptr_type, arg4)) ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp171 ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (tmp155 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: break ; } while (0) ; tmp172 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp172, atslab_0, tmp153) ; ats_selptrset_mac(anairiats_sum_3, tmp172, atslab_1, arg3) ; arg0 = tmp126 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp172 ; arg4 = arg4 ; goto __ats_lab_auxmain_16 ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp173 = list_vt_reverse_01506_ats_ptr_type (arg3) ; tmp124 = ats_castfn_mac(ats_ptr_type, tmp173) ; break ; } while (0) ; return (tmp124) ; } /* end of [auxmain_16] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; ats_ptr_type closure_env_4 ; } auxmain_16_closure_type ; ats_ptr_type auxmain_16_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) { return auxmain_16 (((auxmain_16_closure_type*)cloptr)->closure_env_0, ((auxmain_16_closure_type*)cloptr)->closure_env_1, ((auxmain_16_closure_type*)cloptr)->closure_env_2, ((auxmain_16_closure_type*)cloptr)->closure_env_3, ((auxmain_16_closure_type*)cloptr)->closure_env_4, arg0, arg1, arg2, arg3, arg4) ; } /* end of function */ ATSinline() ats_void_type auxmain_16_closure_init (auxmain_16_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4) { p_clo->closure_fun = (ats_fun_ptr_type)&auxmain_16_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; p_clo->closure_env_4 = env4 ; return ; } /* end of function */ ats_clo_ptr_type auxmain_16_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type env4) { auxmain_16_closure_type *p_clo = ATS_MALLOC(sizeof(auxmain_16_closure_type)) ; auxmain_16_closure_init (p_clo, env0, env1, env2, env3, env4) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 9578(line=412, offs=7) -- 13713(line=565, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn_rest (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7, ats_ptr_type arg8, ats_ptr_type arg9, ats_ref_type arg10) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn_rest: tmp182 = (ats_sum_ptr_type)0 ; tmp181 = auxmain_16 (arg0, arg1, arg7, arg8, arg9, arg6, arg4, arg5, tmp182, arg10) ; tmp115 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp115, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_3, tmp115, atslab_1, tmp181) ; return (tmp115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn_rest] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 13795(line=571, offs=1) -- 14401(line=595, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__c2laulst_trdn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp183) ; // ATSlocal_void (tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__c2laulst_trdn: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: /* tmp184 = */ c2laulst0_trdn_7 (arg0, arg1, arg5, arg6) ; tmp183 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp185 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; tmp186 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_1) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (tmp186 != (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp187 = c2laulst1_trdn_10 (arg0, arg1, arg2, tmp185, arg4, arg5, arg6) ; tmp188 = (ats_sum_ptr_type)0 ; tmp183 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp183, atslab_0, tmp187) ; ats_selptrset_mac(anairiats_sum_3, tmp183, atslab_1, tmp188) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (tmp186 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__c2laulst2_trdn (arg0, arg1, arg2, tmp185, tmp186, arg4, arg5, arg6) ; break ; } while (0) ; break ; } while (0) ; return (tmp183) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__c2laulst_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 14482(line=601, offs=3) -- 15240(line=630, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_casehead (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; // ATSlocal_void (tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_casehead: tmp190 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d2exp_loc) ; tmp191 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp191)->tag != 32) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 14616(line=608, offs=5) -- 14674(line=608, offs=63)") ; } tmp192 = ats_caselptrlab_mac(anairiats_sum_8, tmp191, atslab_0) ; tmp193 = ats_caselptrlab_mac(anairiats_sum_8, tmp191, atslab_1) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_8, tmp191, atslab_2) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_8, tmp191, atslab_3) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup (tmp194) ; /* tmp198 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add (tmp197) ; tmp199 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp197, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__c2laulst_trdn (tmp190, tmp192, tmp193, tmp195, tmp197, ats_castfn_mac(ats_ptr_type, tmp199), tmp196) ; /* tmp201 = */ list_vt_free_01499_ats_ptr_type (tmp199) ; /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (tmp190, tmp193) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_case (tmp190, tmp196, tmp192, tmp197, tmp200) ; return (tmp189) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_casehead] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 15652(line=651, offs=5) -- 16402(line=675, offs=4) */ ATSstaticdec() ats_ptr_type auxscl_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_bool_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; // ATSlocal_void (tmp214) ; ATSlocal (ats_bool_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; // ATSlocal_void (tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; __ats_lab_auxscl_32: tmp213 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_sc2lau_loc) ; tmp215 = atspre_neg_bool (arg3) ; if (tmp215) { /* tmp214 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (arg4) ; } else { /* empty */ } /* end of [if] */ tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp213) ; tmp217 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_sc2lau_pat) ; tmp218 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_sc2lau_body) ; /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp220 = ats_selsin_mac(tmp219, atslab_1) */ ; /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sp2at (tmp217) ; tmp223 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp217), atslab_sp2at_loc) ; tmp224 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp217), atslab_sp2at_exp) ; /* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (tmp223, arg1, tmp224) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp218, arg2) ; /* tmp226 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (tmp216) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp213) ; /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (arg5, tmp216) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__sc3lau_make (tmp213, tmp217, tmp225) ; return (tmp212) ; } /* end of [auxscl_32] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 16429(line=677, offs=5) -- 16942(line=697, offs=31) */ ATSstaticdec() ats_ptr_type auxsclist_33 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_bool_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; __ats_lab_auxsclist_33: 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: tmp230 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp231 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp232 = auxscl_32 (tmp230, arg1, arg2, arg3, arg4, arg5) ; tmp233 = auxsclist_33 (tmp231, arg1, arg2, ats_false_bool, arg4, arg5) ; tmp229 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp229, atslab_0, tmp232) ; ats_selptrset_mac(anairiats_sum_3, tmp229, atslab_1, tmp233) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp229 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp229) ; } /* end of [auxsclist_33] */ /* // /tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 15331(line=636, offs=3) -- 17259(line=710, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_scasehead (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_scasehead: tmp204 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d2exp_loc) ; tmp205 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp205)->tag != 33) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_caseof.dats: 15469(line=644, offs=5) -- 15524(line=644, offs=60)") ; } tmp206 = ats_caselptrlab_mac(anairiats_sum_9, tmp205, atslab_0) ; tmp207 = ats_caselptrlab_mac(anairiats_sum_9, tmp205, atslab_1) ; tmp208 = ats_caselptrlab_mac(anairiats_sum_9, tmp205, atslab_2) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; /* ats_ptr_type tmp211 ; */ tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize (tmp210) ; tmp234 = auxsclist_33 (tmp208, tmp207, tmp209, ats_true_bool, tmp210, tmp211) ; /* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process (tmp211, tmp206) ; /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize (tmp211) ; /* tmp237 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (tmp204, tmp206) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_scase (tmp204, tmp209, tmp207, tmp234) ; return (tmp203) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_scasehead] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_caseof_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_caseof_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_dynexp_dn_dats.c0000644000175000017500000046172213431250607024023 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } 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_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_i2fcl_loc ; ats_ptr_type atslab_i2fcl_test ; ats_ptr_type atslab_i2fcl_body ; } anairiats_rec_13 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_17 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elet_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhere_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esifhead_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifcasehd_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Escasehead_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eraise_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eeffmask_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eshowtype_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eexist_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Edelay_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eldelay_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etrywith_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_exn_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_tup_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_rec_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_lam_dyn_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trdn_ifcasehd_82) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_exception_vtype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_t0ype_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_vt0ype_vtype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup_flt) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_delay) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_bool) (ats_ptr_type, ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_top) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_let) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tup) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_rec) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_seq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sif) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ifcase) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_raise) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_effmask) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_dyn) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_trywith) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3fcl_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_app_short) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve) (ats_ptr_type, ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve) (ats_ptr_type, ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err) (ats_ptr_type, ats_int_type, ats_int_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__boxity_equal_solve_err) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn_arg) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__funarg_patck_exhaust) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_dn) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifhead) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_sifhead) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifcasehd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__c2laulst_trdn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_casehead) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_scasehead) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_letwhere) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_sexparg) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_lam) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_effmask) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_lam) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_let) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_try) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__funarg_d2vfin_check) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_wthtype_instantiate) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check_llam) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_lam) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_lam) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_try) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_top) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_tup) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_rec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_seq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_raise) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_effmask) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_exist) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_dyn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_sta_nil) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_delay) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_ldelay) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_trywith) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_ptr_type d2exp_funclopt_of_d2exp_1 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type d2exp_s2effopt_of_d2exp_2 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_7 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_7_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type app_9 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type f_conjtest_conj_19 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_conjtest_test_20 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst1_check_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxerrlen_25 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type auxtup_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type auxrec_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type aux_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 1671(line=52, offs=28) -- 1705(line=52, offs=62) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_dynexp_dn")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 2381(line=95, offs=1) -- 2703(line=113, offs=4) */ ATSstaticdec() ats_ptr_type d2exp_funclopt_of_d2exp_1 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_d2exp_funclopt_of_d2exp_1: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp2)->tag != 69) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_0) ; tmp4 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_1) ; tmp5 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp5, atslab_0, tmp4) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp5 ; tmp1 = tmp3 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp6 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp6 ; tmp1 = arg0 ; break ; } while (0) ; return (tmp1) ; } /* end of [d2exp_funclopt_of_d2exp_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 2789(line=120, offs=1) -- 3084(line=133, offs=8) */ ATSstaticdec() ats_ptr_type d2exp_s2effopt_of_d2exp_2 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab_d2exp_s2effopt_of_d2exp_2: tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp8)->tag != 68) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_3, tmp8, atslab_0) ; tmp10 = ats_caselptrlab_mac(anairiats_sum_3, tmp8, atslab_1) ; tmp11 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp11, atslab_0, tmp10) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp11 ; tmp7 = tmp9 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp12 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp12 ; tmp7 = arg0 ; break ; } while (0) ; return (tmp7) ; } /* end of [d2exp_s2effopt_of_d2exp_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4) */ ATSstaticdec() ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp37) ; __ats_lab_list_is_nil_01294_: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp37 = ats_false_bool ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp37 = ats_true_bool ; break ; } while (0) ; return (tmp37) ; } /* end of [list_is_nil_01294_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 4092(line=198, offs=3) -- 7081(line=330, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_bool_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp14) ; tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp16)->tag != 12) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_top (arg0, tmp14) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp16)->tag != 26) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_3, tmp16, atslab_0) ; tmp18 = ats_caselptrlab_mac(anairiats_sum_3, tmp16, atslab_1) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_letwhere (arg0, tmp14, tmp17, tmp18) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp16)->tag != 27) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_3, tmp16, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_3, tmp16, atslab_1) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_letwhere (arg0, tmp14, tmp20, tmp19) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp16)->tag != 28) { goto __ats_lab_10_0 ; } __ats_lab_7_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_3, tmp16, atslab_0) ; tmp22 = ats_caselptrlab_mac(anairiats_sum_3, tmp16, atslab_1) ; tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp24 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp21), atslab_d2exp_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp24)->tag != 70) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_5, tmp24, atslab_0) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_app_short (tmp23, tmp25, tmp22) ; arg0 = tmp26 ; arg1 = tmp15 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest (arg0, tmp14) ; break ; } while (0) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp16)->tag != 29) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifhead (arg0, tmp14) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp16)->tag != 30) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_sifhead (arg0, tmp14) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp16)->tag != 31) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifcasehd (arg0, tmp14) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp16)->tag != 32) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_casehead (arg0, tmp14) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp16)->tag != 33) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_scasehead (arg0, tmp14) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp16)->tag != 34) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_5, tmp16, atslab_0) ; arg0 = tmp27 ; arg1 = tmp15 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn ; // tail call break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp16)->tag != 35) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_6, tmp16, atslab_0) ; tmp29 = ats_caselptrlab_mac(anairiats_sum_6, tmp16, atslab_1) ; tmp30 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup_flt (tmp30, tmp28, tmp29) ; arg0 = tmp31 ; arg1 = tmp15 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn ; // tail call break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp16)->tag != 37) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_tup (arg0, tmp14) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp16)->tag != 38) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_rec (arg0, tmp14) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp16)->tag != 39) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_seq (arg0, tmp14) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp16)->tag != 49) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_raise (arg0, tmp14) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp16)->tag != 50) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_effmask (arg0, tmp14) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp16)->tag != 53) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_5, tmp16, atslab_0) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp32, tmp15) ; /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_dn (tmp33) ; tmp13 = tmp33 ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp16)->tag != 55) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_exist (arg0, tmp14) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp16)->tag != 56) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_dyn (arg0, tmp14) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp16)->tag != 58) { goto __ats_lab_28_0 ; } __ats_lab_25_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_7, tmp16, atslab_0) ; tmp36 = list_is_nil_01294_ (tmp35) ; if (!tmp36) { goto __ats_lab_31_1 ; } tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_sta_nil (arg0, tmp14) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp16)->tag != 61) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_delay (arg0, tmp14) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp16)->tag != 62) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_ldelay (arg0, tmp14) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp16)->tag != 66) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_trywith (arg0, tmp14) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest (arg0, tmp14) ; break ; } while (0) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 7155(line=336, offs=3) -- 7857(line=381, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest: tmp39 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg0) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype (tmp40) ; if (tmp42) { /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp41) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_wthtype_instantiate (tmp39, tmp40) ; } else { tmp43 = tmp40 ; } /* end of [if] */ if (tmp42) { /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__funarg_d2vfin_check (tmp39) ; } else { /* empty */ } /* end of [if] */ tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp41, tmp43) ; return (tmp38) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 7971(line=388, offs=16) -- 8043(line=389, offs=68) */ ATSstaticdec() ats_ptr_type __ats_fun_7 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; __ats_lab___ats_fun_7: tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (arg0, env0) ; return (tmp48) ; } /* end of [__ats_fun_7] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_7_closure_type ; ats_ptr_type __ats_fun_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_7 (((__ats_fun_7_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_7_closure_init (__ats_fun_7_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_7_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53639(line=1919, offs=6) -- 53788(line=1925, offs=6) */ ATSstaticdec() ats_ptr_type app_9 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; __ats_lab_app_9: tmp52 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp52) ; } /* end of [app_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; __ats_lab_loop_11: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp57 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp55, arg3) ; tmp58 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp58, atslab_0, tmp57) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp58 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp59 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp56 ; arg1 = arg1 ; arg2 = tmp59 ; arg3 = arg3 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp60 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp60 ; break ; } while (0) ; return /* (tmp54) */ ; } /* end of [loop_11] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp61 ; */ /* tmp62 = */ loop_11 (arg0, arg1, (&tmp61), arg2) ; tmp53 = tmp61 ; return (tmp53) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53503(line=1915, offs=23) -- 53963(line=1932, offs=4) */ ATSstaticdec() ats_ptr_type list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp51) ; __ats_lab_list_map_vclo_01414_ats_ptr_type_ats_ptr_type: tmp51 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_9, arg1) ; return (tmp51) ; } /* end of [list_map_vclo_01414_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 7938(line=387, offs=3) -- 8208(line=396, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trdn_elt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (__ats_fun_7_closure_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trdn_elt: /* ats_ptr_type tmp47 ; */ tmp47 = &(tmp49) ; __ats_fun_7_closure_init (tmp47, arg1) ; // closure initialization tmp50 = list_map_vclo_01414_ats_ptr_type_ats_ptr_type (arg0, tmp47) ; tmp46 = ats_castfn_mac(ats_ptr_type, tmp50) ; return (tmp46) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trdn_elt] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 8270(line=400, offs=3) -- 8473(line=420, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2expopt_trdn_elt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2expopt_trdn_elt: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp63 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp64, arg1) ; tmp63 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp63, atslab_0, tmp65) ; break ; } while (0) ; return (tmp63) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2expopt_trdn_elt] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; __ats_lab_prerr_error3_loc_02089_: /* tmp121 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp120 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp120) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 8557(line=426, offs=3) -- 12894(line=567, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_dyn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_int_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_bool_type, tmp83) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_int_type, tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_bool_type, tmp88) ; // ATSlocal_void (tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; ATSlocal (ats_int_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; ATSlocal (ats_bool_type, tmp99) ; // ATSlocal_void (tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; ATSlocal (ats_bool_type, tmp109) ; // ATSlocal_void (tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_bool_type, tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; ATSlocal (ats_bool_type, tmp124) ; // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_bool_type, tmp127) ; // ATSlocal_void (tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_bool_type, tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_dyn: tmp67 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp68), atslab_s2exp_node) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp69)->tag != 19) { goto __ats_lab_41_0 ; } __ats_lab_36_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp71 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_2) ; tmp73 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_3) ; tmp74 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_4) ; tmp75 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_5) ; tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp76)->tag != 56) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 8864(line=442, offs=9) -- 8929(line=443, offs=55)") ; } tmp77 = ats_caselptrlab_mac(anairiats_sum_11, tmp76, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_11, tmp76, atslab_1) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_11, tmp76, atslab_2) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_11, tmp76, atslab_3) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve (tmp67, tmp78, tmp73) ; tmp83 = atspre_neq_int_int (tmp81, 0) ; if (tmp83) { /* tmp84 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp85 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp85)->tag = 36 ; ats_selptrset_mac(anairiats_sum_3, tmp85, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp85, atslab_1, tmp68) ; /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp85) ; } else { /* empty */ } /* end of [if] */ tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__linearity_equal_solve (tmp67, tmp77, tmp71) ; tmp88 = atspre_neq_int_int (tmp86, 0) ; if (tmp88) { /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp90 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp90)->tag = 36 ; ats_selptrset_mac(anairiats_sum_3, tmp90, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp90, atslab_1, tmp68) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp90) ; } else { /* empty */ } /* end of [if] */ /* tmp91 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp92 = ats_selsin_mac(tmp91, atslab_1) */ ; /* ats_int_type tmp93 ; */ tmp93 = 0 ; /* ats_ptr_type tmp94 ; */ tmp95 = d2exp_funclopt_of_d2exp_1 (tmp80, (&tmp94)) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (tmp94 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (tmp94 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_4, tmp94, atslab_0) ; ATS_FREE(tmp94) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__funclo_equal_solve_err (tmp67, tmp97, tmp70, (&tmp93)) ; break ; } while (0) ; tmp99 = atspre_neq_int_int (tmp93, 0) ; if (tmp99) { /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp101 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp101)->tag = 36 ; ats_selptrset_mac(anairiats_sum_3, tmp101, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp101, atslab_1, tmp68) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp101) ; } else { /* empty */ } /* end of [if] */ /* ats_int_type tmp102 ; */ tmp102 = 0 ; /* ats_ptr_type tmp103 ; */ tmp104 = d2exp_s2effopt_of_d2exp_2 (tmp95, (&tmp103)) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (tmp103 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; ATS_FREE(tmp103) ; /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2eff_subeq_solve_err (tmp67, tmp106, tmp72, (&tmp102)) ; tmp105 = tmp106 ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (tmp103 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp105 = tmp72 ; break ; } while (0) ; tmp109 = atspre_neq_int_int (tmp102, 0) ; if (tmp109) { /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp111 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp111)->tag = 36 ; ats_selptrset_mac(anairiats_sum_3, tmp111, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp111, atslab_1, tmp68) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp111) ; } else { /* empty */ } /* end of [if] */ /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_lam (tmp105) ; /* tmp113 = ats_selsin_mac(tmp112, atslab_1) */ ; /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__funarg_patck_exhaust (tmp67, tmp79, tmp74) ; /* ats_int_type tmp115 ; */ tmp115 = 0 ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_trdn_arg (tmp67, tmp78, tmp79, tmp74, (&tmp115)) ; tmp118 = atspre_neq_int_int (tmp115, 0) ; if (tmp118) { /* tmp119 = */ prerr_error3_loc_02089_ (tmp67) ; /* tmp122 = */ atspre_prerr_string (ATSstrcst(": dynamic arity mismatch")) ; tmp124 = atspre_lt_int_int (tmp115, 0) ; if (tmp124) { /* tmp125 = */ atspre_prerr_string (ATSstrcst(": more arguments are expected.")) ; /* tmp123 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp127 = atspre_gt_int_int (tmp115, 0) ; if (tmp127) { /* tmp128 = */ atspre_prerr_string (ATSstrcst(": fewer arguments are expected.")) ; /* tmp126 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp129 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp129)->tag = 36 ; ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_1, tmp68) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp129) ; } else { /* empty */ } /* end of [if] */ /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_lam (tmp71) ; /* tmp131 = ats_selsin_mac(tmp130, atslab_1) */ ; /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3atlst (tmp116) ; /* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_lam (tmp71) ; /* tmp134 = ats_selsin_mac(tmp133, atslab_1) */ ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3atlst (tmp116) ; /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_lam (tmp116) ; /* tmp137 = ats_selsin_mac(tmp136, atslab_1) */ ; tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp104, tmp75) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check (tmp67) ; tmp141 = atspre_gt_int_int (tmp77, 0) ; if (tmp141) { /* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check_llam (tmp67) ; } else { /* empty */ } /* end of [if] */ /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop () ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop () ; /* tmp144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop () ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop () ; /* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp67) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_dyn (tmp67, tmp68, tmp77, tmp78, tmp116, tmp138) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp69)->tag != 28) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_1) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_2) ; /* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp151 = ats_selsin_mac(tmp150, atslab_1) */ ; /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp147) ; /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (tmp67, tmp148) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (arg0, tmp149) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp67) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_sta (tmp67, tmp68, tmp147, tmp148, tmp154) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp69)->tag != 29) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_6, tmp69, atslab_1) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp156) ; arg0 = arg0 ; arg1 = tmp157 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_dyn ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg0) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp158, tmp68) ; break ; } while (0) ; return (tmp66) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_dyn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 12983(line=573, offs=3) -- 13653(line=599, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_sta_nil (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; // ATSlocal_void (tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_sta_nil: tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp162 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp161), atslab_s2exp_node) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp162)->tag != 28) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp163 = ats_caselptrlab_mac(anairiats_sum_7, tmp162, atslab_0) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_7, tmp162, atslab_1) ; tmp165 = ats_caselptrlab_mac(anairiats_sum_7, tmp162, atslab_2) ; /* tmp166 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp167 = ats_selsin_mac(tmp166, atslab_1) */ ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp163) ; /* tmp169 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (tmp160, tmp164) ; tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (arg0, tmp165) ; /* tmp171 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp160) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_lam_sta (tmp160, tmp161, tmp163, tmp164, tmp170) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: tmp172 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp172)->tag != 58) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 13458(line=591, offs=9) -- 13520(line=592, offs=52)") ; } tmp173 = ats_caselptrlab_mac(anairiats_sum_7, tmp172, atslab_1) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_7, tmp172, atslab_2) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst (tmp160, tmp173) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp174, tmp161) ; break ; } while (0) ; return (tmp159) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_lam_sta_nil] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2556(line=86, offs=16) -- 2611(line=87, offs=49) */ ATSstaticdec() ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp218) ; __ats_lab_option_vt_free_01544_ats_ptr_type: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: ATS_FREE(arg0) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: break ; } while (0) ; return /* (tmp218) */ ; } /* end of [option_vt_free_01544_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 13741(line=605, offs=3) -- 16090(line=690, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifhead (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; // ATSlocal_void (tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; // ATSlocal_void (tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; // ATSlocal_void (tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; // ATSlocal_void (tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifhead: tmp177 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp178 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp178)->tag != 29) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 13912(line=611, offs=5) -- 13981(line=612, offs=60)") ; } tmp179 = ats_caselptrlab_mac(anairiats_sum_12, tmp178, atslab_0) ; tmp180 = ats_caselptrlab_mac(anairiats_sum_12, tmp178, atslab_1) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_12, tmp178, atslab_2) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_12, tmp178, atslab_3) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype () ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp180) ; /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp184) ; tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp184) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp184, tmp183) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp186) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype (tmp188) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; /* ats_ptr_type tmp192 ; */ tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize (tmp191) ; tmp193 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp181), atslab_d2exp_loc) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp193) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp196 = ats_selsin_mac(tmp195, atslab_1) */ ; tmp198 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp180), atslab_d2exp_loc) ; /* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt (tmp198, ats_castfn_mac(ats_ptr_type, tmp189)) ; tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp181, tmp190) ; /* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (tmp194) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp193) ; /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (tmp192, tmp194) ; /* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (tmp191) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (tmp182 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp205 = ats_caselptrlab_mac(anairiats_sum_4, tmp182, atslab_0) ; tmp204 = tmp205 ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (tmp182 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (tmp193) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (tmp206) ; break ; } while (0) ; tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp204), atslab_d2exp_loc) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp207) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp210 = ats_selsin_mac(tmp209, atslab_1) */ ; tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp180), atslab_d2exp_loc) ; /* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg (tmp212, ats_castfn_mac(ats_ptr_type, tmp189)) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp204, tmp190) ; /* tmp214 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (tmp208) ; /* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp207) ; /* tmp216 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (tmp192, tmp208) ; /* tmp217 = */ option_vt_free_01544_ats_ptr_type (tmp189) ; /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process (tmp192, tmp179) ; /* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize (tmp192) ; /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (tmp177, tmp179) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_if (tmp177, tmp190, tmp187, tmp199, tmp213) ; return (tmp176) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifhead] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 16174(line=696, offs=3) -- 17660(line=751, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_sifhead (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; // ATSlocal_void (tmp252) ; // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_sifhead: tmp223 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp224 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp224)->tag != 30) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 16229(line=699, offs=5) -- 16298(line=700, offs=59)") ; } tmp225 = ats_caselptrlab_mac(anairiats_sum_12, tmp224, atslab_0) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_12, tmp224, atslab_1) ; tmp227 = ats_caselptrlab_mac(anairiats_sum_12, tmp224, atslab_2) ; tmp228 = ats_caselptrlab_mac(anairiats_sum_12, tmp224, atslab_3) ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; /* ats_ptr_type tmp231 ; */ tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize (tmp230) ; tmp232 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp227), atslab_d2exp_loc) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp232) ; /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp235 = ats_selsin_mac(tmp234, atslab_1) */ ; /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (tmp223, tmp226) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp227, tmp229) ; /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (tmp233) ; /* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp232) ; /* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (tmp231, tmp233) ; /* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (tmp230) ; tmp242 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp227), atslab_d2exp_loc) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp242) ; /* tmp244 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp245 = ats_selsin_mac(tmp244, atslab_1) */ ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg (tmp226) ; /* tmp246 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (tmp223, tmp247) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp228, tmp229) ; /* tmp249 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (tmp243) ; /* tmp250 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp242) ; /* tmp251 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (tmp231, tmp243) ; /* tmp252 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process (tmp231, tmp225) ; /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize (tmp231) ; /* tmp254 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (tmp223, tmp225) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sif (tmp223, tmp229, tmp226, tmp237, tmp248) ; return (tmp222) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_sifhead] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 17729(line=758, offs=1) -- 18241(line=781, offs=2) */ ATSstaticdec() ats_ptr_type f_conjtest_conj_19 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; __ats_lab_f_conjtest_conj_19: do { /* branch: __ats_lab_50 */ __ats_lab_50_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; } __ats_lab_50_1: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp255 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; ATS_FREE(arg1) ; tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg (tmp256) ; tmp255 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp255, atslab_0, tmp257) ; break ; } while (0) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_53_1: tmp258 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; ATS_FREE(arg0) ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp255 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp255, atslab_0, tmp258) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: tmp259 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; ATS_FREE(arg1) ; tmp261 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg (tmp259) ; tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul (tmp258, tmp261) ; tmp255 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp255, atslab_0, tmp260) ; break ; } while (0) ; break ; } while (0) ; return (tmp255) ; } /* end of [f_conjtest_conj_19] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 18280(line=784, offs=1) -- 18925(line=808, offs=2) */ ATSstaticdec() ats_ptr_type f_conjtest_test_20 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; __ats_lab_f_conjtest_test_20: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_56_1: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp262 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp263 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp262 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp262, atslab_0, tmp263) ; break ; } while (0) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_1: tmp264 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp262 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp262, atslab_0, tmp264) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: tmp265 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bmul (tmp264, tmp265) ; tmp262 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp262, atslab_0, tmp266) ; break ; } while (0) ; break ; } while (0) ; return (tmp262) ; } /* end of [f_conjtest_test_20] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 18964(line=811, offs=1) -- 20838(line=891, offs=4) */ ATSstaticdec() ats_ptr_type auxlst1_check_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; // ATSlocal_void (tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; // ATSlocal_void (tmp287) ; // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; // ATSlocal_void (tmp290) ; // ATSlocal_void (tmp291) ; // ATSlocal_void (tmp292) ; // ATSlocal_void (tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; // ATSlocal_void (tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; __ats_lab_auxlst1_check_21: tmp268 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i2fcl_loc) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (tmp268) ; tmp270 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i2fcl_test) ; tmp271 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i2fcl_body) ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype () ; tmp274 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp270), atslab_d2exp_node) ; do { /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp274)->tag != 12) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp275 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp270), atslab_d2exp_loc) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_bool (tmp275, tmp272, ats_true_bool) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp270) ; break ; } while (0) ; /* tmp276 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp273) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp273) ; tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp273, tmp272) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp277) ; tmp280 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype (tmp279) ; tmp281 = f_conjtest_test_20 (arg3, tmp280) ; /* tmp282 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp283 = ats_selsin_mac(tmp282, atslab_1) */ ; tmp285 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp270), atslab_d2exp_loc) ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt (tmp285, ats_castfn_mac(ats_ptr_type, tmp281)) ; tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp271, arg2) ; /* tmp287 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (tmp269) ; /* tmp288 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp268) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3fcl_make (tmp268, tmp278, tmp286) ; /* tmp290 = */ option_vt_free_01544_ats_ptr_type (tmp281) ; /* tmp291 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (arg5, tmp269) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: /* tmp292 = */ option_vt_free_01544_ats_ptr_type (arg3) ; /* tmp293 = */ option_vt_free_01544_ats_ptr_type (tmp280) ; tmp294 = (ats_sum_ptr_type)0 ; tmp267 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp267, atslab_0, tmp289) ; ats_selptrset_mac(anairiats_sum_8, tmp267, atslab_1, tmp294) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_65_1: tmp295 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp296 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp297 = f_conjtest_conj_19 (arg3, tmp280) ; /* tmp298 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (arg4) ; tmp299 = auxlst1_check_21 (tmp295, tmp296, arg2, tmp297, arg4, arg5) ; tmp267 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp267, atslab_0, tmp289) ; ats_selptrset_mac(anairiats_sum_8, tmp267, atslab_1, tmp299) ; break ; } while (0) ; return (tmp267) ; } /* end of [auxlst1_check_21] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 20922(line=897, offs=3) -- 22097(line=975, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifcasehd (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_int_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; // ATSlocal_void (tmp313) ; // ATSlocal_void (tmp314) ; // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; ATSlocal (ats_bool_type, tmp317) ; // ATSlocal_void (tmp318) ; // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifcasehd: tmp301 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp302 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp302)->tag != 31) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 21141(line=916, offs=1) -- 21191(line=917, offs=39)") ; } tmp303 = ats_caselptrlab_mac(anairiats_sum_14, tmp302, atslab_0) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_14, tmp302, atslab_1) ; tmp305 = ats_caselptrlab_mac(anairiats_sum_14, tmp302, atslab_2) ; tmp306 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp307 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; /* ats_ptr_type tmp308 ; */ tmp308 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize (tmp307) ; do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (tmp305 != (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp309 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (tmp305 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp310 = ats_caselptrlab_mac(anairiats_sum_8, tmp305, atslab_0) ; tmp311 = ats_caselptrlab_mac(anairiats_sum_8, tmp305, atslab_1) ; tmp312 = (ats_sum_ptr_type)0 ; tmp309 = auxlst1_check_21 (tmp310, tmp311, tmp306, tmp312, tmp307, tmp308) ; break ; } while (0) ; /* tmp313 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process (tmp308, tmp304) ; /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize (tmp308) ; /* tmp315 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (tmp301, tmp304) ; tmp317 = atspre_eq_int_int (tmp303, 0) ; if (tmp317) { /* tmp318 = */ prerr_error3_loc_02089_ (tmp301) ; /* tmp319 = */ atspre_prerr_string (ATSstrcst(": else-clause is missing in the ifcase-expression")) ; /* tmp320 = */ atspre_prerr_newline () ; tmp321 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp321)->tag = 82 ; ats_selptrset_mac(anairiats_sum_5, tmp321, atslab_0, arg0) ; /* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp321) ; } else { /* empty */ } /* end of [if] */ tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_ifcase (tmp301, tmp306, tmp303, tmp309) ; return (tmp300) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_ifcasehd] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 22211(line=983, offs=3) -- 22961(line=1016, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_letwhere (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; // ATSlocal_void (tmp325) ; // ATSlocal_void (tmp326) ; // ATSlocal_void (tmp327) ; // ATSlocal_void (tmp328) ; // ATSlocal_void (tmp329) ; // ATSlocal_void (tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; // ATSlocal_void (tmp333) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; // ATSlocal_void (tmp336) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_letwhere: tmp323 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; /* tmp325 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push () ; /* tmp326 = ats_selsin_mac(tmp325, atslab_1) */ ; /* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ; /* tmp328 = ats_selsin_mac(tmp327, atslab_1) */ ; /* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_let () ; /* tmp330 = ats_selsin_mac(tmp329, atslab_1) */ ; tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (arg2) ; tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (arg3, tmp324) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_check (tmp323) ; /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop () ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind () ; /* tmp336 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop () ; tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_let (tmp323, tmp331, tmp332) ; return (tmp322) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_letwhere] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 23043(line=1022, offs=3) -- 23151(line=1027, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_top (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_top: tmp338 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp337 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_top (tmp338, tmp339) ; return (tmp337) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_top] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 23212(line=1034, offs=1) -- 23460(line=1047, offs=2) */ ATSstaticdec() ats_void_type auxerrlen_25 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp340) ; // ATSlocal_void (tmp341) ; // ATSlocal_void (tmp342) ; ATSlocal (ats_bool_type, tmp343) ; // ATSlocal_void (tmp344) ; ATSlocal (ats_bool_type, tmp345) ; // ATSlocal_void (tmp346) ; __ats_lab_auxerrlen_25: /* tmp341 = */ prerr_error3_loc_02089_ (arg0) ; tmp343 = atspre_lt_int_int (arg1, 0) ; if (tmp343) { /* tmp344 = */ atspre_prerr_string (ATSstrcst(": more record fields than expected.")) ; /* tmp342 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ tmp345 = atspre_gt_int_int (arg1, 0) ; if (tmp345) { /* tmp346 = */ atspre_prerr_string (ATSstrcst(": fewer record fields than expected.")) ; /* tmp340 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ return /* (tmp340) */ ; } /* end of [auxerrlen_25] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 23509(line=1052, offs=1) -- 24339(line=1091, offs=4) */ ATSstaticdec() ats_ptr_type auxtup_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_int_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_int_type, tmp356) ; __ats_lab_auxtup_26: do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_68_1: tmp348 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp349 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp350 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp350 ; tmp347 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp351 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp352 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; // tmp353 = ats_caselptrlab_mac(anairiats_sum_15, tmp351, atslab_2) ; tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp348, tmp353) ; tmp355 = auxtup_26 (tmp349, tmp352, arg2) ; tmp347 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp347, atslab_0, tmp354) ; ats_selptrset_mac(anairiats_sum_8, tmp347, atslab_1, tmp355) ; break ; } while (0) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp347 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_73_1: tmp356 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp356 ; tmp347 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp347) ; } /* end of [auxtup_26] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 24364(line=1094, offs=1) -- 25358(line=1139, offs=4) */ ATSstaticdec() ats_ptr_type auxrec_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_int_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_int_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; __ats_lab_auxrec_27: do { /* branch: __ats_lab_74 */ __ats_lab_74_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; } __ats_lab_74_1: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp357 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp358 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp358 ; tmp357 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_77_1: tmp359 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp360 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp361 = ats_caselptrlab_mac(anairiats_sum_8, tmp359, atslab_0) ; tmp362 = ats_caselptrlab_mac(anairiats_sum_8, tmp359, atslab_1) ; do { /* branch: __ats_lab_78 */ __ats_lab_78_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp363 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp363 ; tmp357 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_79_1: tmp364 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp365 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; // tmp366 = ats_caselptrlab_mac(anairiats_sum_15, tmp364, atslab_2) ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp362, tmp366) ; tmp368 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp368, atslab_0, tmp361) ; ats_selptrset_mac(anairiats_sum_8, tmp368, atslab_1, tmp367) ; tmp369 = auxrec_27 (tmp360, tmp365, arg2) ; tmp357 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp357, atslab_0, tmp368) ; ats_selptrset_mac(anairiats_sum_8, tmp357, atslab_1, tmp369) ; break ; } while (0) ; break ; } while (0) ; return (tmp357) ; } /* end of [auxrec_27] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 25428(line=1145, offs=3) -- 26389(line=1186, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_tup (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_int_type, tmp373) ; ATSlocal (ats_int_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_int_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_int_type, tmp381) ; // ATSlocal_void (tmp382) ; // ATSlocal_void (tmp383) ; // ATSlocal_void (tmp384) ; ATSlocal (ats_bool_type, tmp385) ; // ATSlocal_void (tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_int_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; // ATSlocal_void (tmp390) ; ATSlocal (ats_bool_type, tmp391) ; // ATSlocal_void (tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_tup: tmp371 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp372)->tag != 37) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 25480(line=1148, offs=5) -- 25521(line=1148, offs=46)") ; } tmp373 = ats_caselptrlab_mac(anairiats_sum_16, tmp372, atslab_0) ; tmp374 = ats_caselptrlab_mac(anairiats_sum_16, tmp372, atslab_1) ; tmp375 = ats_caselptrlab_mac(anairiats_sum_16, tmp372, atslab_2) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp377 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp376), atslab_s2exp_node) ; do { /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp377)->tag != 25) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp378 = ats_caselptrlab_mac(anairiats_sum_17, tmp377, atslab_0) ; tmp379 = ats_caselptrlab_mac(anairiats_sum_17, tmp377, atslab_1) ; tmp380 = ats_caselptrlab_mac(anairiats_sum_17, tmp377, atslab_2) ; /* ats_int_type tmp381 ; */ tmp381 = 0 ; /* tmp382 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__boxity_equal_solve_err (tmp371, tmp373, tmp378, (&tmp381)) ; /* tmp383 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err (tmp371, tmp374, tmp379, (&tmp381)) ; tmp385 = atspre_neq_int_int (tmp381, 0) ; if (tmp385) { /* tmp386 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp387 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp387)->tag = 33 ; ats_selptrset_mac(anairiats_sum_3, tmp387, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp387, atslab_1, tmp376) ; /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp387) ; } else { /* empty */ } /* end of [if] */ /* ats_int_type tmp388 ; */ tmp388 = 0 ; tmp389 = auxtup_26 (tmp375, tmp380, (&tmp388)) ; tmp391 = atspre_neq_int_int (tmp388, 0) ; if (tmp391) { /* tmp392 = */ auxerrlen_25 (tmp371, tmp388) ; tmp393 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp393)->tag = 33 ; ats_selptrset_mac(anairiats_sum_3, tmp393, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp393, atslab_1, tmp376) ; /* tmp390 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp393) ; } else { /* empty */ } /* end of [if] */ tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_tup (tmp371, tmp376, tmp373, tmp374, tmp389) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: __ats_lab_81_1: tmp370 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest (arg0, arg1) ; break ; } while (0) ; return (tmp370) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_tup] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 26445(line=1190, offs=3) -- 27417(line=1232, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_rec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_int_type, tmp397) ; ATSlocal (ats_int_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_int_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_int_type, tmp405) ; // ATSlocal_void (tmp406) ; // ATSlocal_void (tmp407) ; // ATSlocal_void (tmp408) ; ATSlocal (ats_bool_type, tmp409) ; // ATSlocal_void (tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_int_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; // ATSlocal_void (tmp414) ; ATSlocal (ats_bool_type, tmp415) ; // ATSlocal_void (tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_rec: tmp395 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp396 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp396)->tag != 38) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 26497(line=1193, offs=5) -- 26539(line=1193, offs=47)") ; } tmp397 = ats_caselptrlab_mac(anairiats_sum_16, tmp396, atslab_0) ; tmp398 = ats_caselptrlab_mac(anairiats_sum_16, tmp396, atslab_1) ; tmp399 = ats_caselptrlab_mac(anairiats_sum_16, tmp396, atslab_2) ; tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp401 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp400), atslab_s2exp_node) ; do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp401)->tag != 25) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp402 = ats_caselptrlab_mac(anairiats_sum_17, tmp401, atslab_0) ; tmp403 = ats_caselptrlab_mac(anairiats_sum_17, tmp401, atslab_1) ; tmp404 = ats_caselptrlab_mac(anairiats_sum_17, tmp401, atslab_2) ; /* ats_int_type tmp405 ; */ tmp405 = 0 ; /* tmp406 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__boxity_equal_solve_err (tmp395, tmp397, tmp402, (&tmp405)) ; /* tmp407 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__pfarity_equal_solve_err (tmp395, tmp398, tmp403, (&tmp405)) ; tmp409 = atspre_neq_int_int (tmp405, 0) ; if (tmp409) { /* tmp410 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp411 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp411)->tag = 34 ; ats_selptrset_mac(anairiats_sum_3, tmp411, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp411, atslab_1, tmp400) ; /* tmp408 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp411) ; } else { /* empty */ } /* end of [if] */ /* ats_int_type tmp412 ; */ tmp412 = 0 ; tmp413 = auxrec_27 (tmp399, tmp404, (&tmp412)) ; tmp415 = atspre_neq_int_int (tmp412, 0) ; if (tmp415) { /* tmp416 = */ auxerrlen_25 (tmp395, tmp412) ; tmp417 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp417)->tag = 34 ; ats_selptrset_mac(anairiats_sum_3, tmp417, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_3, tmp417, atslab_1, tmp400) ; /* tmp414 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp417) ; } else { /* empty */ } /* end of [if] */ tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_rec (tmp395, tmp400, tmp397, tmp398, tmp413) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: __ats_lab_83_1: tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest (arg0, arg1) ; break ; } while (0) ; return (tmp394) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_rec] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 27636(line=1246, offs=5) -- 28048(line=1264, offs=2) */ ATSstaticdec() ats_ptr_type aux_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; __ats_lab_aux_31: do { /* branch: __ats_lab_84 */ __ats_lab_84_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp424 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp425 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (arg0, arg2) ; tmp427 = aux_31 (tmp424, tmp425, arg2, arg3) ; tmp423 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp423, atslab_0, tmp426) ; ats_selptrset_mac(anairiats_sum_8, tmp423, atslab_1, tmp427) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (arg0, arg3) ; tmp429 = (ats_sum_ptr_type)0 ; tmp423 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp423, atslab_0, tmp428) ; ats_selptrset_mac(anairiats_sum_8, tmp423, atslab_1, tmp429) ; break ; } while (0) ; return (tmp423) ; } /* end of [aux_31] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 27517(line=1240, offs=3) -- 28478(line=1286, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_seq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_seq: tmp419 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp420 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp420)->tag != 39) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 27569(line=1243, offs=5) -- 27600(line=1243, offs=36)") ; } tmp421 = ats_caselptrlab_mac(anairiats_sum_5, tmp420, atslab_0) ; tmp422 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (tmp421 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp431 = ats_caselptrlab_mac(anairiats_sum_8, tmp421, atslab_0) ; tmp432 = ats_caselptrlab_mac(anairiats_sum_8, tmp421, atslab_1) ; /* ats_ptr_type tmp433 ; */ tmp434 = aux_31 (tmp431, tmp432, tmp430, tmp422) ; tmp418 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_seq (tmp419, tmp422, tmp434) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: // if (tmp421 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_87_1: tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_empty (tmp419, tmp430) ; tmp418 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp435, tmp422) ; break ; } while (0) ; return (tmp418) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_seq] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 28557(line=1292, offs=3) -- 28980(line=1315, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_raise (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_int_type, tmp440) ; // ATSlocal_void (tmp441) ; ATSlocal (ats_bool_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_raise: tmp437 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp438 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp438)->tag != 49) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 28613(line=1297, offs=1) -- 28651(line=1298, offs=30)") ; } tmp439 = ats_caselptrlab_mac(anairiats_sum_5, tmp438, atslab_0) ; tmp440 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_exn (tmp437) ; tmp442 = atspre_gt_int_int (tmp440, 0) ; if (tmp442) { tmp443 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp443)->tag = 31 ; ats_selptrset_mac(anairiats_sum_5, tmp443, atslab_0, tmp437) ; /* tmp441 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp443) ; } else { /* empty */ } /* end of [if] */ tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp445 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_exception_vtype () ; tmp446 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp439, tmp445) ; tmp436 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_raise (tmp437, tmp444, tmp446) ; return (tmp436) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_raise] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 29063(line=1321, offs=3) -- 29380(line=1341, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_effmask (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; // ATSlocal_void (tmp452) ; // ATSlocal_void (tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; // ATSlocal_void (tmp456) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_effmask: tmp448 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp449 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp449)->tag != 50) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 29119(line=1326, offs=1) -- 29162(line=1327, offs=33)") ; } tmp450 = ats_caselptrlab_mac(anairiats_sum_3, tmp449, atslab_0) ; tmp451 = ats_caselptrlab_mac(anairiats_sum_3, tmp449, atslab_1) ; /* tmp452 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_effmask (tmp450) ; /* tmp453 = ats_selsin_mac(tmp452, atslab_1) */ ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp455 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp451, tmp454) ; /* tmp456 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop () ; tmp447 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_effmask (tmp448, tmp450, tmp455) ; return (tmp447) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_effmask] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 29463(line=1347, offs=3) -- 30439(line=1380, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_exist (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_int_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (anairiats_rec_1, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (anairiats_rec_1, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; // ATSlocal_void (tmp475) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_exist: tmp458 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp459 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp459)->tag != 55) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 29516(line=1349, offs=7) -- 29558(line=1350, offs=34)") ; } tmp460 = ats_caselptrlab_mac(anairiats_sum_3, tmp459, atslab_0) ; tmp461 = ats_caselptrlab_mac(anairiats_sum_3, tmp459, atslab_1) ; tmp462 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; /* ats_int_type tmp463 ; */ tmp463 = 0 ; /* ats_ptr_type tmp464 ; */ tmp466 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp462), atslab_s2exp_node) ; do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp466)->tag != 31) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp467 = ats_caselptrlab_mac(anairiats_sum_3, tmp466, atslab_0) ; tmp468 = ats_caselptrlab_mac(anairiats_sum_3, tmp466, atslab_1) ; tmp469 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_sexparg (tmp467, tmp460, (&tmp463)) ; tmp470 = ats_select_mac(tmp469, atslab_0) ; tmp471 = ats_select_mac(tmp469, atslab_1) ; tmp464 = tmp471 ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype (tmp470, tmp468) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: __ats_lab_89_1: tmp472 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_sexparg (tmp462, tmp460, (&tmp463)) ; tmp473 = ats_select_mac(tmp472, atslab_0) ; tmp474 = ats_select_mac(tmp472, atslab_1) ; tmp464 = tmp474 ; tmp465 = tmp473 ; break ; } while (0) ; /* tmp475 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (tmp458, tmp464) ; tmp457 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp461, tmp465) ; return (tmp457) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_exist] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 30520(line=1386, offs=3) -- 31005(line=1414, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_delay (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_delay: tmp477 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp478 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp478)->tag != 61) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 30575(line=1390, offs=5) -- 30606(line=1390, offs=36)") ; } tmp479 = ats_caselptrlab_mac(anairiats_sum_5, tmp478, atslab_0) ; tmp480 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp481 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_t0ype_type (arg1) ; do { /* branch: __ats_lab_90 */ __ats_lab_90_0: if (tmp481 != (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest (arg0, arg1) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: // if (tmp481 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_91_1: tmp482 = ats_caselptrlab_mac(anairiats_sum_4, tmp481, atslab_0) ; ATS_FREE(tmp481) ; tmp483 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp479), atslab_d2exp_loc) ; tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (tmp483, tmp479, tmp482) ; tmp485 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_delay (tmp477, tmp484) ; tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp485) ; break ; } while (0) ; return (tmp476) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_delay] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 31087(line=1420, offs=3) -- 31588(line=1447, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_ldelay (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_ldelay: tmp487 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp488 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp488)->tag != 62) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 31142(line=1424, offs=5) -- 31182(line=1424, offs=45)") ; } tmp489 = ats_caselptrlab_mac(anairiats_sum_3, tmp488, atslab_0) ; tmp490 = ats_caselptrlab_mac(anairiats_sum_3, tmp488, atslab_1) ; tmp491 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp492 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_lazy_vt0ype_vtype (arg1) ; do { /* branch: __ats_lab_92 */ __ats_lab_92_0: if (tmp492 != (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp486 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn_rest (arg0, arg1) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: // if (tmp492 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_93_1: tmp493 = ats_caselptrlab_mac(anairiats_sum_4, tmp492, atslab_0) ; ATS_FREE(tmp492) ; tmp495 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp489), atslab_d2exp_loc) ; tmp494 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (tmp495, tmp489, tmp493) ; tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay (tmp487, tmp494, tmp490) ; tmp486 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp496) ; break ; } while (0) ; return (tmp486) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_ldelay] */ /* // /tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 31672(line=1453, offs=3) -- 32298(line=1477, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_trywith (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; // ATSlocal_void (tmp503) ; // ATSlocal_void (tmp504) ; // ATSlocal_void (tmp505) ; // ATSlocal_void (tmp506) ; ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; // ATSlocal_void (tmp516) ; // ATSlocal_void (tmp517) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_trywith: tmp498 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_loc) ; tmp499 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp499)->tag != 66) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_dynexp_dn.dats: 31724(line=1456, offs=5) -- 31772(line=1457, offs=38)") ; } tmp500 = ats_caselptrlab_mac(anairiats_sum_7, tmp499, atslab_0) ; tmp501 = ats_caselptrlab_mac(anairiats_sum_7, tmp499, atslab_1) ; tmp502 = ats_caselptrlab_mac(anairiats_sum_7, tmp499, atslab_2) ; /* tmp503 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_push_try () ; /* tmp504 = ats_selsin_mac(tmp503, atslab_1) */ ; /* tmp505 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_push_try () ; /* tmp506 = ats_selsin_mac(tmp505, atslab_1) */ ; tmp507 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp508 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp501, tmp507) ; tmp509 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_exception_vtype () ; tmp511 = (ats_sum_ptr_type)0 ; tmp510 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp510, atslab_0, tmp508) ; ats_selptrset_mac(anairiats_sum_8, tmp510, atslab_1, tmp511) ; tmp513 = (ats_sum_ptr_type)0 ; tmp512 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp512, atslab_0, tmp509) ; ats_selptrset_mac(anairiats_sum_8, tmp512, atslab_1, tmp513) ; tmp515 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; tmp514 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__c2laulst_trdn (tmp498, tmp515, tmp500, tmp502, tmp510, tmp512, tmp507) ; /* tmp516 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_pop () ; /* tmp517 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_pop () ; tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_trywith (tmp498, tmp508, tmp514) ; return (tmp497) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__d2exp_trdn_trywith] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_dynexp_dn_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_dynexp_dn_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_jsonize_synent2_sats.c0000644000175000017500000000566613431250607023724 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_synent2_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_jsonize_synent2_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_lvalres_dats.c0000644000175000017500000024466113431250607023504 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_11 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_14 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_var_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ptr_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_pfobj_search_none_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_fun_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_funarg_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_refval_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_linpatcon_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_funclo_topized_76) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2addr_exch_type_oldnew_78) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lval_exch_type_linold_79) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_exch_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_d3exp_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_refarg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context_check) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_exch_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_type_err) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_pat_type_left) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_arg_set_type) (ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxerr_linold_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type d2var_refval_check_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) ; static ats_void_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_12 (ats_ptr_type arg0) ; static ats_bool_type s2exp_fun_is_freeptr_14 (ats_ptr_type arg0) ; static ats_void_type auxerr_15 (ats_ptr_type arg0) ; static ats_ptr_type auxres_16 (ats_ptr_type arg0) ; static ats_ptr_type auxlst1_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type auxlst2_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 1767(line=58, offs=18) -- 1799(line=58, offs=50) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_lvalres")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; __ats_lab_prerr_error3_loc_02089_: /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp3 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp3) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 2291(line=93, offs=1) -- 2699(line=106, offs=4) */ ATSstaticdec() ats_void_type auxerr_pfobj_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab_auxerr_pfobj_1: /* tmp2 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp5 = */ atspre_prerr_string (ATSstrcst(": type-restoration cannot be performed")) ; /* tmp6 = */ atspre_prerr_newline () ; /* tmp7 = */ atspre_prerr_string (ATSstrcst(": the proof search for view located at [")) ; /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg1) ; /* tmp9 = */ atspre_prerr_string (ATSstrcst("] failed to turn up a result.")) ; /* tmp10 = */ atspre_prerr_newline () ; tmp11 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp11)->tag = 54 ; ats_selptrset_mac(anairiats_sum_2, tmp11, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp11, atslab_1, arg1) ; /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp11) ; return /* (tmp1) */ ; } /* end of [auxerr_pfobj_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 2730(line=108, offs=5) -- 3862(line=154, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (anairiats_rec_1, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_bool_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab_auxmain_3: // tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp14 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp15 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_2) ; ATS_FREE(arg1) ; /* ats_ptr_type tmp16 ; */ tmp16 = (ats_sum_ptr_type)0 ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context_check (arg0, tmp15, arg2, (&tmp16)) ; tmp18 = ats_select_mac(tmp17, atslab_0) ; tmp20 = ats_select_mac(tmp17, atslab_1) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp20) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp16 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_4, tmp16, atslab_0) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (tmp21, arg3) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl (tmp14, tmp22) ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp25, atslab_0, tmp23) ; /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp13, tmp25) ; tmp12 = tmp18 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp16 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (arg0, arg3, tmp18) ; tmp28 = atspre_gt_int_int (tmp26, 0) ; if (tmp28) { /* tmp29 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp30 = */ atspre_prerr_string (ATSstrcst(": mismatch of bef/aft types of call-by-reference: ")) ; /* tmp31 = */ atspre_prerr_newline () ; /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp33 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp33)->tag = 78 ; ats_selptrset_mac(anairiats_sum_5, tmp33, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp33, atslab_1, tmp15) ; ats_selptrset_mac(anairiats_sum_5, tmp33, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp33, atslab_3, arg3) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp33) ; } else { /* empty */ } /* end of [if] */ tmp12 = tmp18 ; break ; } while (0) ; return (tmp12) ; } /* end of [auxmain_3] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 3935(line=160, offs=1) -- 4205(line=173, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_exch_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; // ATSlocal_void (tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_exch_type: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview (arg1) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp35 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_4, tmp35, atslab_0) ; ATS_FREE(tmp35) ; tmp34 = auxmain_3 (arg0, tmp36, arg2, arg3) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp35 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: /* tmp37 = */ auxerr_pfobj_1 (arg0, arg1) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; return (tmp34) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_exch_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 4291(line=182, offs=1) -- 4656(line=193, offs=4) */ ATSstaticdec() ats_void_type auxerr_linold_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; __ats_lab_auxerr_linold_5: /* tmp39 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp40 = */ atspre_prerr_string (ATSstrcst(": a linear component of the following type is abandoned: ")) ; /* tmp41 = */ atspre_prerr_string (ATSstrcst("[")) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg3) ; /* tmp43 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp44 = */ atspre_prerr_newline () ; tmp45 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp45)->tag = 79 ; ats_selptrset_mac(anairiats_sum_6, tmp45, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp45, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_6, tmp45, atslab_2, arg2) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp45) ; return /* (tmp38) */ ; } /* end of [auxerr_linold_5] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 4688(line=196, offs=1) -- 5084(line=208, offs=6) */ ATSstaticdec() ats_void_type d2var_refval_check_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp46) ; ATSlocal (ats_bool_type, tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab_d2var_refval_check_6: tmp47 = atspre_gt_int_int (arg2, 0) ; if (tmp47) { /* tmp48 = */ prerr_error3_loc_02089_ (arg0) ; /* tmp49 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp51 = */ atspre_prerr_string (ATSstrcst("] is required to be mutable in order to support call-by-reference.")) ; /* tmp52 = */ atspre_prerr_newline () ; tmp53 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp53)->tag = 74 ; ats_selptrset_mac(anairiats_sum_2, tmp53, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp53, atslab_1, arg1) ; /* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp53) ; } else { /* empty */ } /* end of [if] */ return /* (tmp46) */ ; } /* end of [d2var_refval_check_6] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02085_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; // ATSlocal_void (tmp95) ; __ats_lab_prerr_interror_loc_02085_: /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp94 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp95 = */ prerr_FILENAME_02083_ () ; /* tmp92 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp92) */ ; } /* end of [prerr_interror_loc_02085_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 5186(line=215, offs=1) -- 8790(line=348, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_type_err (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_bool_type, tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_bool_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_bool_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; // ATSlocal_void (tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_bool_type, tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_type_err: tmp55 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_d3exp_loc) ; tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_d3exp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp56)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_8, tmp56, atslab_0) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp57) ; if (!tmp58) { goto __ats_lab_5_1 ; } tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp57) ; if (tmp59 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 5498(line=236, offs=9) -- 5531(line=236, offs=42)") ; } tmp60 = ats_caselptrlab_mac(anairiats_sum_4, tmp59, atslab_0) ; tmp61 = (ats_sum_ptr_type)0 ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_exch_type (tmp55, tmp60, tmp61, arg2) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp56)->tag != 1) { goto __ats_lab_8_0 ; } __ats_lab_5_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_8, tmp56, atslab_0) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (tmp63) ; if (!tmp64) { goto __ats_lab_18_1 ; } /* tmp65 = */ d2var_refval_check_6 (tmp55, tmp63, arg0) ; tmp67 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp67, atslab_0, arg2) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_exch_type (tmp63, tmp67) ; /* tmp68 = */ patsopt_d3exp_set_type (arg1, arg2) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp66 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_4, tmp66, atslab_0) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp69) ; if (tmp70) { tmp71 = (ats_sum_ptr_type)0 ; /* tmp54 = */ auxerr_linold_5 (tmp55, arg1, tmp71, tmp69) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp66 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: break ; } while (0) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp56)->tag != 41) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_6, tmp56, atslab_0) ; tmp73 = ats_caselptrlab_mac(anairiats_sum_6, tmp56, atslab_2) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp72) ; if (!tmp74) { goto __ats_lab_9_1 ; } tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp72) ; if (tmp75 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 6439(line=271, offs=9) -- 6472(line=271, offs=42)") ; } tmp76 = ats_caselptrlab_mac(anairiats_sum_4, tmp75, atslab_0) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_exch_type (tmp55, tmp76, tmp73, arg2) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp56)->tag != 41) { goto __ats_lab_12_0 ; } __ats_lab_9_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_6, tmp56, atslab_0) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_6, tmp56, atslab_2) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (tmp78) ; if (!tmp80) { goto __ats_lab_18_1 ; } /* tmp81 = */ d2var_refval_check_6 (tmp55, tmp78, arg0) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (tmp55, tmp78) ; /* ats_ptr_type tmp83 ; */ tmp83 = (ats_sum_ptr_type)0 ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context (tmp55, tmp82, tmp79, (&tmp83)) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp84) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp85) ; if (tmp86) { /* tmp87 = */ auxerr_linold_5 (tmp55, arg1, tmp79, tmp85) ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (tmp83 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_4, tmp83, atslab_0) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (tmp88, arg2) ; tmp90 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp90, atslab_0, tmp89) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp78, tmp90) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (tmp83 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: /* tmp91 = */ prerr_interror_loc_02085_ (tmp55) ; /* tmp96 = */ atspre_prerr_string (ATSstrcst(": type-restoration for the left-value failed.")) ; /* tmp97 = */ atspre_prerr_newline () ; tmp98 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 7438(line=301, offs=18) -- 7454(line=301, offs=34)", ATSstrcst("\n")) ; /* tmp54 = */ atspre_assert_errmsg (ats_false_bool, tmp98) ; break ; } while (0) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp56)->tag != 42) { goto __ats_lab_15_0 ; } __ats_lab_12_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_6, tmp56, atslab_0) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_6, tmp56, atslab_2) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp99) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp101) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (tmp102) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp103 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_4, tmp103, atslab_0) ; ATS_FREE(tmp103) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_exch_type (tmp55, tmp104, tmp100, arg2) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp103 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: break ; } while (0) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp56)->tag != 39) { goto __ats_lab_18_0 ; } __ats_lab_15_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_2, tmp56, atslab_0) ; tmp107 = ats_caselptrlab_mac(anairiats_sum_2, tmp56, atslab_1) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp106) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp108) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_ptr_addr_type (tmp109) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (tmp110 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_4, tmp110, atslab_0) ; ATS_FREE(tmp110) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_set_viewat (tmp55, tmp111, tmp107, arg2) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (tmp110 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: break ; } while (0) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp112 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp112 ; break ; } while (0) ; return /* (tmp54) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_type_err] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 8905(line=356, offs=3) -- 9453(line=378, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_pat_type_left (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_int_type, tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_bool_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_pat_type_left: tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type_left (arg1) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp114 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_4, tmp114, atslab_0) ; /* ats_int_type tmp116 ; */ tmp116 = 0 ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_type_err (0, arg0, tmp115, (&tmp116)) ; tmp118 = atspre_gt_int_int (tmp116, 0) ; if (tmp118) { tmp119 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d3exp_loc) ; /* tmp120 = */ prerr_error3_loc_02089_ (tmp119) ; /* tmp121 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression should be a left-value but it is not.")) ; /* tmp122 = */ atspre_prerr_newline () ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp123)->tag = 75 ; ats_selptrset_mac(anairiats_sum_2, tmp123, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp123, atslab_1, tmp115) ; /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp123) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (tmp114 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: break ; } while (0) ; return /* (tmp113) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_pat_type_left] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 9524(line=384, offs=5) -- 9892(line=404, offs=4) */ ATSstaticdec() ats_void_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; // ATSlocal_void (tmp129) ; __ats_lab_loop_10: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_21_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp128 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_pat_type_left (tmp125, tmp127) ; arg0 = tmp126 ; arg1 = tmp128 ; goto __ats_lab_loop_10 ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: break ; } while (0) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: break ; } while (0) ; return /* (tmp124) */ ; } /* end of [loop_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 9973(line=409, offs=29) -- 10005(line=409, offs=61) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lvalist_set_pat_type_left (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lvalist_set_pat_type_left: /* tmp130 = */ loop_10 (arg0, arg1) ; return /* (tmp130) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lvalist_set_pat_type_left] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 10064(line=418, offs=1) -- 10388(line=437, offs=4) */ ATSstaticdec() ats_void_type auxerr_12 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; __ats_lab_auxerr_12: tmp132 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d3exp_loc) ; /* tmp133 = */ prerr_error3_loc_02089_ (tmp132) ; /* tmp134 = */ atspre_prerr_string (ATSstrcst(": the function argument needs to be a left-value.")) ; /* tmp135 = */ atspre_prerr_newline () ; tmp136 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp136)->tag = 73 ; ats_selptrset_mac(anairiats_sum_8, tmp136, atslab_0, arg0) ; /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp136) ; return /* (tmp131) */ ; } /* end of [auxerr_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 10462(line=443, offs=3) -- 11301(line=474, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_arg_set_type (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp137) ; ATSlocal (ats_int_type, tmp138) ; ATSlocal (ats_int_type, tmp139) ; // ATSlocal_void (tmp140) ; // ATSlocal_void (tmp141) ; ATSlocal (ats_bool_type, tmp142) ; ATSlocal (ats_bool_type, tmp143) ; ATSlocal (ats_bool_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_arg_set_type: /* ats_int_type tmp138 ; */ tmp138 = 0 ; /* ats_int_type tmp139 ; */ tmp139 = 0 ; /* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_type_err (arg0, arg1, arg2, (&tmp138)) ; tmp142 = atspre_gt_int_int (tmp138, 0) ; if (tmp142) { do { /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp143 = atspre_gt_int_int (arg0, 0) ; if (!tmp143) { goto __ats_lab_26_1 ; } /* tmp141 = */ auxerr_12 (arg1) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: __ats_lab_26_1: tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin (arg2) ; if (!tmp144) { goto __ats_lab_27_1 ; } break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: /* tmp141 = */ auxerr_12 (arg1) ; break ; } while (0) ; } else { /* empty */ } /* end of [if] */ tmp137 = tmp139 ; return (tmp137) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_arg_set_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 11386(line=481, offs=1) -- 11774(line=500, offs=4) */ ATSstaticdec() ats_bool_type s2exp_fun_is_freeptr_14 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_int_type, tmp148) ; ATSlocal (ats_int_type, tmp149) ; ATSlocal (ats_bool_type, tmp150) ; ATSlocal (ats_bool_type, tmp151) ; __ats_lab_s2exp_fun_is_freeptr_14: tmp146 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp146)->tag != 19) { goto __ats_lab_31_0 ; } __ats_lab_28_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_11, tmp146, atslab_0) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_11, tmp146, atslab_1) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (tmp147 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_12, tmp147, atslab_0) ; tmp150 = atspre_gt_int_int (tmp149, 0) ; if (tmp150) { tmp151 = atspre_lte_int_int (tmp148, 0) ; if (tmp151) { tmp145 = ats_true_bool ; } else { tmp145 = ats_false_bool ; } /* end of [if] */ } else { tmp145 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp145 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: tmp145 = ats_false_bool ; break ; } while (0) ; return (tmp145) ; } /* end of [s2exp_fun_is_freeptr_14] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 11841(line=507, offs=1) -- 12090(line=517, offs=4) */ ATSstaticdec() ats_void_type auxerr_15 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; __ats_lab_auxerr_15: tmp153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d3exp_loc) ; /* tmp154 = */ prerr_error3_loc_02089_ (tmp153) ; /* tmp155 = */ atspre_prerr_string (ATSstrcst(": the function itself needs to be a left-value.")) ; /* tmp156 = */ atspre_prerr_newline () ; tmp157 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp157)->tag = 72 ; ats_selptrset_mac(anairiats_sum_8, tmp157, atslab_0, arg0) ; /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp157) ; return /* (tmp152) */ ; } /* end of [auxerr_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 12110(line=520, offs=1) -- 13420(line=578, offs=4) */ ATSstaticdec() ats_ptr_type auxres_16 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_int_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_int_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_bool_type, tmp170) ; ATSlocal (ats_bool_type, tmp171) ; // ATSlocal_void (tmp172) ; // ATSlocal_void (tmp173) ; // ATSlocal_void (tmp174) ; // ATSlocal_void (tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_int_type, tmp177) ; ATSlocal (ats_int_type, tmp178) ; ATSlocal (ats_bool_type, tmp179) ; ATSlocal (ats_int_type, tmp180) ; ATSlocal (ats_int_type, tmp181) ; // ATSlocal_void (tmp182) ; // ATSlocal_void (tmp183) ; ATSlocal (ats_bool_type, tmp184) ; ATSlocal (ats_bool_type, tmp185) ; ATSlocal (ats_bool_type, tmp186) ; __ats_lab_auxres_16: tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d3exp_loc) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg0) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp160) ; tmp162 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp161), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp162)->tag != 19) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 12250(line=529, offs=5) -- 12320(line=532, offs=21)") ; } tmp163 = ats_caselptrlab_mac(anairiats_sum_11, tmp162, atslab_0) ; tmp164 = ats_caselptrlab_mac(anairiats_sum_11, tmp162, atslab_1) ; tmp165 = ats_caselptrlab_mac(anairiats_sum_11, tmp162, atslab_2) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_11, tmp162, atslab_3) ; tmp167 = ats_caselptrlab_mac(anairiats_sum_11, tmp162, atslab_4) ; tmp168 = ats_caselptrlab_mac(anairiats_sum_11, tmp162, atslab_5) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp170 = atspre_eq_int_int (tmp164, 0) ; if (!tmp170) { goto __ats_lab_33_1 ; } tmp169 = tmp161 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: __ats_lab_33_1: tmp171 = atspre_eq_int_int (tmp164, 1) ; if (!tmp171) { goto __ats_lab_34_1 ; } tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype, tmp163, -1, tmp165, tmp166, tmp167, tmp168) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: /* tmp172 = */ prerr_error3_loc_02089_ (tmp159) ; /* tmp173 = */ atspre_prerr_string (ATSstrcst(": a linear function cannot be applied repeatedly.")) ; /* tmp174 = */ atspre_prerr_newline () ; tmp176 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp176)->tag = 76 ; ats_selptrset_mac(anairiats_sum_8, tmp176, atslab_0, arg0) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp176) ; tmp169 = tmp161 ; break ; } while (0) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (tmp163 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp178 = ats_caselptrlab_mac(anairiats_sum_12, tmp163, atslab_0) ; tmp179 = atspre_eq_int_int (tmp178, 0) ; if (tmp179) { tmp177 = 1 ; } else { tmp177 = 0 ; } /* end of [if] */ break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (tmp163 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp177 = 0 ; break ; } while (0) ; /* ats_int_type tmp180 ; */ tmp180 = 0 ; /* ats_int_type tmp181 ; */ tmp181 = 0 ; /* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_type_err (tmp177, arg0, tmp169, (&tmp180)) ; tmp184 = atspre_gt_int_int (tmp180, 0) ; if (tmp184) { do { /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp185 = atspre_gt_int_int (tmp177, 0) ; if (!tmp185) { goto __ats_lab_38_1 ; } /* tmp183 = */ auxerr_15 (arg0) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp186 = s2exp_fun_is_freeptr_14 (tmp169) ; if (!tmp186) { goto __ats_lab_39_1 ; } tmp181 = 1 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: break ; } while (0) ; } else { /* empty */ } /* end of [if] */ tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_refarg (tmp159, tmp169, tmp177, tmp181, arg0) ; return (tmp158) ; } /* end of [auxres_16] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 13547(line=586, offs=3) -- 13761(line=599, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_fun_restore (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_int_type, tmp188) ; ATSlocal (ats_bool_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_fun_restore: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp188 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ; tmp189 = atspre_gte_int_int (tmp188, 0) ; if (tmp189) { tmp187 = auxres_16 (arg1) ; } else { tmp187 = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp187 = arg1 ; break ; } while (0) ; return (tmp187) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_fun_restore] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 13848(line=608, offs=1) -- 14032(line=616, offs=53) */ ATSstaticdec() ats_ptr_type auxlst1_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; __ats_lab_auxlst1_18: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp190 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 13936(line=614, offs=3) -- 14032(line=616, offs=53)") ; } __ats_lab_43_1: tmp190 = auxlst2_19 (arg0, arg1, arg2) ; break ; } while (0) ; return (tmp190) ; } /* end of [auxlst1_18] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 14058(line=620, offs=1) -- 15770(line=678, offs=4) */ ATSstaticdec() ats_ptr_type auxlst2_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_int_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_int_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_int_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_int_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; __ats_lab_auxlst2_19: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp191 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp192 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_2) ; if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 14283(line=635, offs=9) -- 14311(line=635, offs=37)") ; } tmp193 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 14320(line=636, offs=9) -- 14360(line=636, offs=49)") ; } tmp195 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp193), atslab_d3exp_loc) ; tmp198 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp195), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp198)->tag != 29) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 14397(line=638, offs=9) -- 14444(line=638, offs=56)") ; } tmp199 = ats_caselptrlab_mac(anairiats_sum_14, tmp198, atslab_0) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_14, tmp198, atslab_1) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_arg_set_type (tmp199, tmp193, tmp200) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_refarg (tmp197, tmp200, tmp199, tmp201, tmp193) ; tmp203 = auxlst1_18 (tmp194, tmp196, tmp192) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_0, tmp202) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_1, tmp203) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp204 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_0) ; tmp205 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_1) ; tmp206 = ats_caselptrlab_mac(anairiats_sum_13, arg2, atslab_2) ; if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 14788(line=649, offs=9) -- 14816(line=649, offs=37)") ; } tmp207 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp208 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 14825(line=650, offs=9) -- 14865(line=650, offs=49)") ; } tmp209 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp210 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp207), atslab_d3exp_loc) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp205) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp210, tmp211) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_arg_set_type (tmp204, tmp207, tmp212) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_refarg (tmp210, tmp212, tmp204, tmp213, tmp207) ; tmp215 = auxlst1_18 (tmp208, tmp209, tmp206) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_0, tmp214) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_1, tmp215) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_0) ; if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 15567(line=671, offs=9) -- 15595(line=671, offs=37)") ; } tmp217 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp218 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 15604(line=672, offs=9) -- 15644(line=672, offs=49)") ; } tmp219 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp220 = auxlst1_18 (tmp218, tmp219, tmp216) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_0, tmp217) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_1, tmp220) ; break ; } while (0) ; return (tmp191) ; } /* end of [auxlst2_19] */ /* // /tmp/ATS-Postiats/src/pats_trans3_lvalres.dats: 15864(line=684, offs=3) -- 15917(line=684, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_arg_restore (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_arg_restore: tmp221 = auxlst1_18 (arg0, arg1, arg2) ; return (tmp221) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_arg_restore] */ /* 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_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_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_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_lvalres_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_lvalres_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_print_dats.c0000644000175000017500000014600113431250607024025 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_c3nstr_loc ; ats_ptr_type atslab_c3nstr_kind ; ats_ptr_type atslab_c3nstr_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_h3ypo_loc ; ats_ptr_type atslab_h3ypo_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_c3nstroptref_loc ; ats_ptr_type atslab_c3nstroptref_ref ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKcase_exhaustiveness_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isnat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isdec_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_fin_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_lvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_vbox_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKloop_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPObind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOeqeq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRprop_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRitmlst_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRsolverify_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsvar_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMhypo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsVar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_ref_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMdisj_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsolassert_6) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstrkind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_h3ypo) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itm) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlstlst) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_10 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_10_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_10_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 1632(line=49, offs=3) -- 2446(line=85, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstr: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_c3nstr_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst("C3NSTRprop(")) ; tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_c3nstr_kind) ; /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstrkind (arg0, tmp5) ; /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp2) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp9 = */ atspre_fprint_string (arg0, ATSstrcst("C3NSTRitmlst(")) ; tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_c3nstr_kind) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstrkind (arg0, tmp11) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst (arg0, tmp8) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (((ats_sum_ptr_type)tmp1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp15 = */ atspre_fprint_string (arg0, ATSstrcst("C3NSTRsolverify(")) ; /* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp14) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 2497(line=88, offs=14) -- 2532(line=88, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__print_c3nstr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__print_c3nstr: /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstr (stdout, arg0) ; return /* (tmp17) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__print_c3nstr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 2556(line=90, offs=14) -- 2591(line=90, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_c3nstr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_c3nstr: /* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstr (stderr, arg0) ; return /* (tmp18) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_c3nstr] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 2644(line=96, offs=3) -- 3384(line=134, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstrkind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_int_type, tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstrkind: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKmain()")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_5_0 ; } __ats_lab_4_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKcase_exhaustiveness(...)")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKtermet_isnat()")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKtermet_isdec()")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_8_0 ; } __ats_lab_7_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKsome_fin()")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKsome_lvar()")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_10_0 ; } __ats_lab_9_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKsome_vbox()")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_11_0 ; } __ats_lab_10_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKlstate()")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp21 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKlstate(")) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp20) ; /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp24 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKloop(")) ; /* tmp25 = */ atspre_fprint_int (arg0, tmp23) ; /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)arg1)->tag != 10) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("C3TKsolverify()")) ; break ; } while (0) ; return /* (tmp19) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstrkind] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 3462(line=140, offs=3) -- 4133(line=169, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_h3ypo (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_h3ypo: tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_h3ypo_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp27)->tag != 0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_1, tmp27, atslab_0) ; /* tmp29 = */ atspre_fprint_string (arg0, ATSstrcst("H2YPOprop(")) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp28) ; /* tmp26 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp27)->tag != 1) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_4, tmp27, atslab_0) ; tmp32 = ats_caselptrlab_mac(anairiats_sum_4, tmp27, atslab_1) ; /* tmp33 = */ atspre_fprint_string (arg0, ATSstrcst("H2YPObind(")) ; /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp31) ; /* tmp35 = */ atspre_fprint_string (arg0, ATSstrcst(" -> ")) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp32) ; /* tmp26 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (((ats_sum_ptr_type)tmp27)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_4, tmp27, atslab_0) ; tmp38 = ats_caselptrlab_mac(anairiats_sum_4, tmp27, atslab_1) ; /* tmp39 = */ atspre_fprint_string (arg0, ATSstrcst("H2YPOeqeq(")) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp37) ; /* tmp41 = */ atspre_fprint_string (arg0, ATSstrcst(" == ")) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp38) ; /* tmp26 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp26) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_h3ypo] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 4182(line=172, offs=13) -- 4216(line=172, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__print_h3ypo (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__print_h3ypo: /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_h3ypo (stdout, arg0) ; return /* (tmp43) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__print_h3ypo] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 4239(line=174, offs=13) -- 4273(line=174, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_h3ypo (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_h3ypo: /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_h3ypo (stderr, arg0) ; return /* (tmp44) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_h3ypo] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 4321(line=180, offs=3) -- 5825(line=241, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itm (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itm: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp47 = */ atspre_fprint_string (arg0, ATSstrcst("S3ITMsvar(")) ; /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp46) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp50 = */ atspre_fprint_string (arg0, ATSstrcst("S3ITMhypo(")) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_h3ypo (arg0, tmp49) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_22_0 ; } __ats_lab_19_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("S3ITMsVar(")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (arg0, tmp52) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link (tmp52) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (tmp55 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_5, tmp55, atslab_0) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("->")) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp57) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (tmp55 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: break ; } while (0) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst("S3ITMcnstr(")) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstr (arg0, tmp59) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_26_0 ; } __ats_lab_23_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp62), atslab_c3nstroptref_ref) ; /* tmp64 = */ atspre_fprint_string (arg0, ATSstrcst("S3ITMcnstr_ref(")) ; tmp66 = ats_ptrget_mac(ats_ptr_type, tmp63) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (tmp66 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_5, tmp66, atslab_0) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_c3nstr (arg0, tmp67) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (tmp66 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: break ; } while (0) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp69 = */ atspre_fprint_string (arg0, ATSstrcst("S3ITMdisj(")) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlstlst (arg0, tmp68) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (((ats_sum_ptr_type)arg1)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp72 = */ atspre_fprint_string (arg0, ATSstrcst("S3ITMsolassert(")) ; /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp71) ; /* tmp45 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itm] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_10 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; ATSlocal (ats_bool_type, tmp80) ; // ATSlocal_void (tmp81) ; ATSlocal (ats_int_type, tmp82) ; __ats_lab_aux_10: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp80 = atspre_gt_int_int (arg1, 0) ; if (tmp80) { /* tmp79 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp81 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp77) ; tmp82 = atspre_add_int_int (arg1, 1) ; arg0 = tmp78 ; arg1 = tmp82 ; goto __ats_lab_aux_10 ; // tail call break ; } while (0) ; return /* (tmp76) */ ; } /* end of [aux_10] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_10_closure_type ; ats_void_type aux_10_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_10 (((aux_10_closure_type*)cloptr)->closure_env_0, ((aux_10_closure_type*)cloptr)->closure_env_1, ((aux_10_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_10_closure_init (aux_10_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_10_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_10_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_10_closure_type *p_clo = ATS_MALLOC(sizeof(aux_10_closure_type)) ; aux_10_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp75) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp75 = */ aux_10 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp75) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 5901(line=247, offs=3) -- 5956(line=247, offs=58) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst: /* tmp74 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itm) ; return /* (tmp74) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst] */ /* // /tmp/ATS-Postiats/src/pats_trans3_env_print.dats: 6017(line=252, offs=3) -- 6077(line=252, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlstlst: /* tmp83 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst("; "), &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst) ; return /* (tmp83) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlstlst] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_syntax_sats.c0000644000175000017500000011422013431250607022072 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_s0taq_loc ; ats_ptr_type atslab_s0taq_node ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d0ynq_loc ; ats_ptr_type atslab_d0ynq_node ; } anairiats_rec_1 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDif_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifdef_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifndef_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKencode_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfil_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyloc_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfun_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGint_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGcst_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGvar_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGprf_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGlin_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGfun_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGclo_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQsymdot_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQsymdot_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQsymdot_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECint_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_adj_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYinf_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpre_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpos_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTerror_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprerr_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprint_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTassert_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPide_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPint_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPchar_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfloat_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstring_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstringid_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPapp_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfun_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPeval_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPlist_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPif_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DATSDEF_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SL0ABELED_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTide_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTqid_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTapp_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTlist_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTtype_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SP0Tcstr_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAprop_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAvars_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsrt_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsub_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eide_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Esqid_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eopid_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eint_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Echar_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Efloat_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Estring_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextype_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextkind_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eapp_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elam_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eimp_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist2_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyarr_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etytup_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_ext_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Euni_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eexi_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eann_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Ed2ctype_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__WITHT0YPEsome_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__WITHT0YPEnone_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0CSTARGsta_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0CSTARGdyn_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGall_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGseq_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGall_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGseq_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__M0ACARGdyn_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__M0ACARGsta_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFsome_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_ext_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_mac_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_sta_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATnorm_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATomit_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tide_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tdqid_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Topid_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tint_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tchar_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfloat_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tstring_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tapp_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlist_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlst_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Ttup_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trec_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfree_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tunfold_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Texist_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tsvararg_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trefas_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tann_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Terr_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__I0MPARG_sarglst_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__I0MPARG_svararglst_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGdyn_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGsta1_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGsta2_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGmet3_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eide_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edqid_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eopid_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eidext_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eint_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Echar_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efloat_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Estring_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eempty_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecstsp_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etyrep_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eliteral_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextval_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextfcall_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextmcall_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efoldat_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efreeat_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etmpid_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elet_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edeclseq_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhere_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eapp_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elist_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifhead_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esifhead_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifcasehd_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecasehead_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Escasehead_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elst_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etup_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Erec_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eseq_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrsub_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrpsz_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrinit_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eptrof_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eviewat_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_lab_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_ind_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eraise_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_40) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_arg_41) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evararg_42) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evcopyenv_43) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eshowtype_44) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etempenver_45) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esexparg_46) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eexist_47) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eann_48) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elam_49) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efix_50) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edelay_51) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efor_52) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhile_53) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eloopexn_54) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etrywith_55) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Emacsyn_56) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolassert_57) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolverify_58) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Cone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ctwo_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ccons_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDfname_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDnspace_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDdeclist_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfixity_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cnonfix_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymintr_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymelim_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Coverload_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpdef_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpundef_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpact_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cpragma_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ccodegen_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatsrts_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csrtdefs_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacsts_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacons_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ctkindef_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csexpdefs_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csaspdec_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Creassume_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cexndecs_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatdecs_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cclassdec_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextvar_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextcode_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdcstdecs_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cimpdec_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cmacdefs_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfundecs_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvaldecs_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvardecs_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cinclude_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaload_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadnm_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadloc_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Crequire_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdynload_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Clocal_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cguadecl_38) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDif_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifdef_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SRPIFKINDifndef_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKencode_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfil_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyloc_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__CSTSPmyfun_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGint_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGcst_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGvar_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGprf_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGlin_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGfun_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0FFTAGclo_6.tag = 6 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTQsymdot_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQsymdot_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQsymdot_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECint_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_adj_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYinf_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpre_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpos_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTerror_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprerr_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprint_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTassert_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPide_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPint_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPchar_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfloat_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstring_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstringid_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPapp_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfun_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPeval_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPlist_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPif_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DATSDEF_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SL0ABELED_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTide_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTqid_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTapp_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTlist_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0RTtype_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SP0Tcstr_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAprop_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0QUAvars_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsrt_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TEsub_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eide_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Esqid_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eopid_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eint_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Echar_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Efloat_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Estring_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextype_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eextkind_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eapp_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elam_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eimp_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Elist2_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyarr_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etytup_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Etyrec_ext_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Euni_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eexi_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Eann_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0Ed2ctype_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__WITHT0YPEsome_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__WITHT0YPEnone_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0CSTARGsta_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0CSTARGdyn_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGall_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0VARARGseq_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGone_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGall_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0EXPARGseq_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__M0ACARGdyn_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__M0ACARGsta_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFsome_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_ext_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_mac_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DCSTEXTDEFsome_sta_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATnorm_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__LABP0ATomit_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tide_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tdqid_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Topid_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tint_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tchar_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfloat_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tstring_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tapp_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlist_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tlst_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Ttup_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trec_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tfree_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tunfold_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Texist_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tsvararg_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Trefas_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Tann_17.tag = 17 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0Terr_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__I0MPARG_sarglst_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__I0MPARG_svararglst_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGdyn_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGsta1_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGsta2_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGmet3_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eide_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edqid_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eopid_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eidext_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eint_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Echar_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efloat_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Estring_7.tag = 7 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eempty_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecstsp_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etyrep_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eliteral_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextval_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextfcall_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextmcall_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efoldat_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efreeat_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etmpid_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elet_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edeclseq_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhere_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eapp_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elist_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifhead_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esifhead_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifcasehd_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecasehead_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Escasehead_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elst_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etup_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Erec_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eseq_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrsub_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrpsz_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrinit_34.tag = 34 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eptrof_35.tag = 35 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eviewat_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_lab_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_ind_38.tag = 38 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eraise_39.tag = 39 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_40.tag = 40 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_arg_41.tag = 41 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evararg_42.tag = 42 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evcopyenv_43.tag = 43 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eshowtype_44.tag = 44 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etempenver_45.tag = 45 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esexparg_46.tag = 46 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eexist_47.tag = 47 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eann_48.tag = 48 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elam_49.tag = 49 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efix_50.tag = 50 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edelay_51.tag = 51 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efor_52.tag = 52 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhile_53.tag = 53 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eloopexn_54.tag = 54 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etrywith_55.tag = 55 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Emacsyn_56.tag = 56 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolassert_57.tag = 57 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolverify_58.tag = 58 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Cone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ctwo_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ccons_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDfname_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDnspace_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__STLDdeclist_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfixity_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cnonfix_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymintr_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymelim_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Coverload_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpdef_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpundef_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpact_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cpragma_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ccodegen_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatsrts_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csrtdefs_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacsts_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacons_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ctkindef_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csexpdefs_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csaspdec_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Creassume_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cexndecs_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatdecs_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cclassdec_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextvar_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextcode_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdcstdecs_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cimpdec_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cmacdefs_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfundecs_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvaldecs_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvardecs_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cinclude_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaload_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadnm_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadloc_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Crequire_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdynload_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Clocal_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cguadecl_38.tag = 38 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_syntax_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp2_dats.c0000644000175000017500000057012513431250607022130 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d2sym_loc ; ats_ptr_type atslab_d2sym_qua ; ats_ptr_type atslab_d2sym_sym ; ats_ptr_type atslab_d2sym_pitmlst ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_8 ; typedef struct { anairiats_rec_8 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_14 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_15 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_18 ; typedef struct { ats_ptr_type atslab_i2fcl_loc ; ats_ptr_type atslab_i2fcl_test ; ats_ptr_type atslab_i2fcl_body ; } anairiats_rec_19 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_21 ; typedef struct { ats_ptr_type atslab_d2lab_loc ; ats_ptr_type atslab_d2lab_node ; ats_ptr_type atslab_d2lab_overld ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_i2nvarg_var ; ats_ptr_type atslab_i2nvarg_type ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_24 ; typedef struct { ats_ptr_type atslab_i2nvresstate_svs ; ats_ptr_type atslab_i2nvresstate_gua ; ats_ptr_type atslab_i2nvresstate_arg ; ats_ptr_type atslab_i2nvresstate_met ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_loopi2nv_loc ; ats_ptr_type atslab_loopi2nv_svs ; ats_ptr_type atslab_loopi2nv_gua ; ats_ptr_type atslab_loopi2nv_arg ; ats_ptr_type atslab_loopi2nv_met ; ats_ptr_type atslab_loopi2nv_res ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_gm2at_loc ; ats_ptr_type atslab_gm2at_exp ; ats_ptr_type atslab_gm2at_pat ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_c2lau_loc ; ats_ptr_type atslab_c2lau_pat ; ats_ptr_type atslab_c2lau_gua ; ats_int_type atslab_c2lau_seq ; ats_int_type atslab_c2lau_neg ; ats_ptr_type atslab_c2lau_body ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_sc2lau_loc ; ats_ptr_type atslab_sc2lau_pat ; ats_ptr_type atslab_sc2lau_body ; } anairiats_rec_29 ; typedef struct { ats_ptr_type atslab_i2mpdec_loc ; ats_ptr_type atslab_i2mpdec_locid ; ats_ptr_type atslab_i2mpdec_cst ; ats_ptr_type atslab_i2mpdec_imparg ; ats_ptr_type atslab_i2mpdec_tmparg ; ats_ptr_type atslab_i2mpdec_tmpgua ; ats_ptr_type atslab_i2mpdec_def ; } anairiats_rec_30 ; typedef struct { ats_ptr_type atslab_f2undec_loc ; ats_ptr_type atslab_f2undec_var ; ats_ptr_type atslab_f2undec_def ; ats_ptr_type atslab_f2undec_ann ; } anairiats_rec_31 ; typedef struct { ats_ptr_type atslab_v2aldec_loc ; ats_ptr_type atslab_v2aldec_pat ; ats_ptr_type atslab_v2aldec_def ; ats_ptr_type atslab_v2aldec_ann ; } anairiats_rec_32 ; typedef struct { ats_ptr_type atslab_v2ardec_loc ; ats_int_type atslab_v2ardec_knd ; ats_ptr_type atslab_v2ardec_svar ; ats_ptr_type atslab_v2ardec_dvar ; ats_ptr_type atslab_v2ardec_pfat ; ats_ptr_type atslab_v2ardec_type ; ats_ptr_type atslab_v2ardec_init ; ats_ptr_type atslab_v2ardec_dvaropt ; } anairiats_rec_33 ; typedef struct { ats_ptr_type atslab_prv2ardec_loc ; ats_ptr_type atslab_prv2ardec_dvar ; ats_ptr_type atslab_prv2ardec_type ; ats_ptr_type atslab_prv2ardec_init ; } anairiats_rec_34 ; typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_35 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_36 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_37 ; /* external typedefs */ typedef anairiats_rec_14 *d2exp_t ; typedef anairiats_rec_3 *p2at_t ; /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKlincon_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKfree_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__PCKunfold_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlst_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Terrpat_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop2_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecstsp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etyrep_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eliteral_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextfcall_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextmcall_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Econ_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efoldat_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efreeat_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etmpid_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elet_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhere_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esifhead_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifcasehd_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Escasehead_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elst_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eptrof_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eviewat_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Exchng_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrsub_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrpsz_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrinit_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eraise_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eeffmask_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evararg_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evcopyenv_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eshowtype_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etempenver_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eexist_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elaminit_dyn_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efix_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Edelay_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eldelay_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efor_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhile_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eloopexn_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etrywith_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacsyn_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacfun_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolassert_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolverify_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eerrexp_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymintr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymelim_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cpragma_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ccodegen_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacsts_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacons_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csaspdec_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Creassume_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextype_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextvar_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextcode_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdatdecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cexndecs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdcstdecs_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cimpdec_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cfundecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_rec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvardecs_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cprvardecs_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaload_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaloadloc_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdynload_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cerrdec_28) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_sing) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_union) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2vsym_d2vsym) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_dyn) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_nil) ; /* internal function declarations */ static ats_ptr_type p2at_svs_add_svar_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type p2at_svs_add_svarlst_2 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_7 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_9 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_24 (ats_ptr_type arg0, anairiats_rec_8 arg1) ; static ats_ptr_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_anairiats_rec_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_anairiats_rec_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_30 (ats_ptr_type arg0) ; static ats_void_type loop_32 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_71 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type i2fcl_is_else_76 (ats_ptr_type arg0) ; static ats_bool_type loop_78 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_bool_type i2fclist_is_else_77 (ats_ptr_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp2) ; ATSstatic (ats_ptr_type, statmp329) ; ATSstatic (ats_ptr_type, statmp330) ; ATSstatic (ats_ptr_type, statmp331) ; ATSstatic (ats_ptr_type, statmp332) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 1986(line=79, offs=12) -- 2086(line=85, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2sym_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2sym_make: tmp0 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_d2sym_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_d2sym_qua, arg1) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_d2sym_sym, arg2) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_d2sym_pitmlst, arg3) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2sym_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 2355(line=100, offs=5) -- 2482(line=106, offs=4) */ ATSstaticdec() ats_ptr_type p2at_svs_add_svar_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_p2at_svs_add_svar_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym) ; return (tmp3) ; } /* end of [p2at_svs_add_svar_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25316(line=913, offs=7) -- 25599(line=923, offs=20) */ ATSstaticdec() ats_ptr_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_0) ; tmp9 = ats_caselptrlab_mac(anairiats_sum_2, arg2, atslab_1) ; tmp10 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg0) (arg1, tmp8, arg3) ; arg0 = arg0 ; arg1 = tmp10 ; arg2 = tmp9 ; arg3 = arg3 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp7 = arg1 ; break ; } while (0) ; return (tmp7) ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25281(line=912, offs=20) -- 25655(line=927, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type: tmp6 = loop_5 (arg0, arg1, arg2, arg3) ; return (tmp6) ; } /* end of [list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25737(line=930, offs=28) -- 26032(line=939, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; __ats_lab_list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type: tmp5 = list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), arg1, arg2, atspre_null_ptr) ; return (tmp5) ; } /* end of [list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 2518(line=108, offs=5) -- 2693(line=115, offs=4) */ ATSstaticdec() ats_ptr_type p2at_svs_add_svarlst_2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_p2at_svs_add_svarlst_2: tmp4 = list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (&p2at_svs_add_svar_1, arg0, arg1) ; return (tmp4) ; } /* end of [p2at_svs_add_svarlst_2] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 2875(line=123, offs=5) -- 2936(line=123, offs=66) */ ATSstaticdec() ats_ptr_type __ats_fun_7 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab___ats_fun_7: tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p2at_svs) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_union (arg0, tmp13, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym) ; return (tmp12) ; } /* end of [__ats_fun_7] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 2756(line=118, offs=19) -- 2991(line=125, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union: tmp11 = list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (&__ats_fun_7, statmp1, arg0) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 3170(line=133, offs=5) -- 3231(line=133, offs=66) */ ATSstaticdec() ats_ptr_type __ats_fun_9 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab___ats_fun_9: tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p2at_dvs) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_union (arg0, tmp16, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2vsym_d2vsym) ; return (tmp15) ; } /* end of [__ats_fun_9] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 3051(line=128, offs=19) -- 3286(line=135, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union: tmp14 = list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (&__ats_fun_9, statmp2, arg0) ; return (tmp14) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 3368(line=141, offs=3) -- 3574(line=147, offs=20) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_pckind_pckind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_pckind_pckind: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_6_1 ; } __ats_lab_2_2: tmp17 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_4_0 ; } __ats_lab_3_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_6_1 ; } __ats_lab_3_2: tmp17 = ats_true_bool ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_5_0 ; } __ats_lab_4_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_6_1 ; } __ats_lab_4_2: tmp17 = ats_true_bool ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_6_0 ; } __ats_lab_5_1: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_6_1 ; } __ats_lab_5_2: tmp17 = ats_true_bool ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: __ats_lab_6_2: tmp17 = ats_false_bool ; break ; } while (0) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_pckind_pckind] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 3653(line=154, offs=1) -- 3783(line=161, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node: tmp19 = (ats_sum_ptr_type)0 ; tmp18 = ATS_MALLOC(sizeof(anairiats_rec_3)) ; ats_selptrset_mac(anairiats_rec_3, tmp18, atslab_p2at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_3, tmp18, atslab_p2at_svs, arg1) ; ats_selptrset_mac(anairiats_rec_3, tmp18, atslab_p2at_dvs, arg2) ; ats_selptrset_mac(anairiats_rec_3, tmp18, atslab_p2at_type, tmp19) ; ats_selptrset_mac(anairiats_rec_3, tmp18, atslab_p2at_node, arg3) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 3831(line=164, offs=10) -- 3900(line=165, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any: tmp21 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp21) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 3944(line=170, offs=3) -- 4057(line=173, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_var: tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_sing (arg1) ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp24)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_0, arg1) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, tmp23, tmp24) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 4120(line=178, offs=10) -- 4193(line=179, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_int: tmp26 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp26)->tag = 3 ; ats_selptrset_mac(anairiats_sum_5, tmp26, atslab_0, arg1) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp26) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_int] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 4238(line=183, offs=13) -- 4318(line=184, offs=68) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_intrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_intrep: tmp28 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp28)->tag = 4 ; ats_selptrset_mac(anairiats_sum_4, tmp28, atslab_0, arg1) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp28) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_intrep] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 4361(line=188, offs=11) -- 4435(line=189, offs=64) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_bool (ats_ptr_type arg0, ats_bool_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_bool: tmp30 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp30)->tag = 5 ; ats_selptrset_mac(anairiats_sum_6, tmp30, atslab_0, arg1) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp30) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_bool] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 4479(line=193, offs=11) -- 4553(line=194, offs=64) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_char (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_char: tmp32 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp32)->tag = 6 ; ats_selptrset_mac(anairiats_sum_7, tmp32, atslab_0, arg1) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp32) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_char] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 4598(line=198, offs=12) -- 4677(line=199, offs=67) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_float (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_float: tmp34 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp34)->tag = 7 ; ats_selptrset_mac(anairiats_sum_4, tmp34, atslab_0, arg1) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp34) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_float] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 4724(line=203, offs=13) -- 4804(line=204, offs=68) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_string: tmp36 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp36)->tag = 8 ; ats_selptrset_mac(anairiats_sum_4, tmp36, atslab_0, arg1) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp36) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_string] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 4871(line=210, offs=11) -- 4945(line=211, offs=64) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_i0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_i0nt: tmp38 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp38)->tag = 9 ; ats_selptrset_mac(anairiats_sum_4, tmp38, atslab_0, arg1) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp38) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 4991(line=215, offs=13) -- 5067(line=216, offs=66) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_f0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_f0loat: tmp40 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp40)->tag = 10 ; ats_selptrset_mac(anairiats_sum_4, tmp40, atslab_0, arg1) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp40) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 5135(line=222, offs=12) -- 5206(line=223, offs=64) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_empty (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_empty: tmp42 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp42) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_empty] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 5395(line=235, offs=8) -- 5493(line=238, offs=46) */ ATSstaticdec() ats_ptr_type f_24 (ats_ptr_type arg0, anairiats_rec_8 arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; __ats_lab_f_24: tmp46 = ats_select_mac(arg1, atslab_s2qua_svs) ; tmp45 = p2at_svs_add_svarlst_2 (arg0, tmp46) ; return (tmp45) ; } /* end of [f_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25316(line=913, offs=7) -- 25599(line=923, offs=20) */ ATSstaticdec() ats_ptr_type loop_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (anairiats_rec_8, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab_loop_27: do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ; tmp53 = ((ats_ptr_type(*)(ats_ptr_type, anairiats_rec_8, ats_ptr_type))arg0) (arg1, tmp51, arg3) ; arg0 = arg0 ; arg1 = tmp53 ; arg2 = tmp52 ; arg3 = arg3 ; goto __ats_lab_loop_27 ; // tail call break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp50 = arg1 ; break ; } while (0) ; return (tmp50) ; } /* end of [loop_27] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25281(line=912, offs=20) -- 25655(line=927, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_anairiats_rec_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_list_fold_left_funenv_01350_ats_ptr_type_anairiats_rec_8: tmp49 = loop_27 (arg0, arg1, arg2, arg3) ; return (tmp49) ; } /* end of [list_fold_left_funenv_01350_ats_ptr_type_anairiats_rec_8] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25737(line=930, offs=28) -- 26032(line=939, offs=4) */ ATSstaticdec() ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_anairiats_rec_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; __ats_lab_list_fold_left_fun_01351_ats_ptr_type_anairiats_rec_8: tmp48 = list_fold_left_funenv_01350_ats_ptr_type_anairiats_rec_8 (ats_castfn_mac(ats_ptr_type, arg0), arg1, arg2, atspre_null_ptr) ; return (tmp48) ; } /* end of [list_fold_left_fun_01351_ats_ptr_type_anairiats_rec_8] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 5271(line=229, offs=10) -- 5729(line=247, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_con: tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union (arg6) ; tmp47 = list_fold_left_fun_01351_ats_ptr_type_anairiats_rec_8 (&f_24, tmp44, arg3) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union (arg6) ; tmp55 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp55)->tag = 2 ; ats_selptrset_mac(anairiats_sum_10, tmp55, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_10, tmp55, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_10, tmp55, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_10, tmp55, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_10, tmp55, atslab_4, arg5) ; ats_selptrset_mac(anairiats_sum_10, tmp55, atslab_5, arg6) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, tmp47, tmp54, tmp55) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_con] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 5795(line=253, offs=3) -- 5952(line=258, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_list (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_list: tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union (arg2) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union (arg2) ; tmp59 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp59)->tag = 18 ; ats_selptrset_mac(anairiats_sum_11, tmp59, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp59, atslab_1, arg2) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, tmp57, tmp58, tmp59) ; return (tmp56) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_list] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 6088(line=266, offs=9) -- 6365(line=273, offs=38) */ ATSstaticdec() ats_ptr_type aux_30 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; __ats_lab_aux_30: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_9_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp63 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp62)->tag != 1) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_12, tmp62, atslab_1) ; tmp65 = aux_30 (tmp63) ; tmp61 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp61, atslab_0, tmp64) ; ats_selptrset_mac(anairiats_sum_2, tmp61, atslab_1, tmp65) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (((ats_sum_ptr_type)tmp62)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: arg0 = tmp63 ; goto __ats_lab_aux_30 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp61 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp61) ; } /* end of [aux_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_32 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab_loop_32: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp72 ; goto __ats_lab_loop_32 ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: break ; } while (0) ; return /* (tmp71) */ ; } /* end of [loop_32] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp70) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp70 = */ loop_32 (arg0) ; return /* (tmp70) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 6018(line=264, offs=3) -- 6614(line=281, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_rec (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_rec: tmp66 = aux_30 (arg3) ; tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union (ats_castfn_mac(ats_ptr_type, tmp66)) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union (ats_castfn_mac(ats_ptr_type, tmp66)) ; /* tmp69 = */ list_vt_free_01499_ats_ptr_type (tmp66) ; tmp73 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp73)->tag = 13 ; ats_selptrset_mac(anairiats_sum_13, tmp73, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_13, tmp73, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp73, atslab_2, arg3) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, tmp67, tmp68, tmp73) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_rec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 6679(line=286, offs=10) -- 6835(line=291, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_lst (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_lst: tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_svs_union (arg2) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2atlst_dvs_union (arg2) ; tmp77 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp77)->tag = 12 ; ats_selptrset_mac(anairiats_sum_11, tmp77, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp77, atslab_1, arg2) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, tmp75, tmp76, tmp77) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_lst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 6900(line=296, offs=12) -- 7102(line=303, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_refas (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_refas: tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p2at_svs) ; tmp81 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p2at_dvs) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert (tmp81, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2vsym_d2vsym) ; tmp82 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp82)->tag = 14 ; ats_selptrset_mac(anairiats_sum_12, tmp82, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp82, atslab_1, arg2) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, tmp79, tmp80, tmp82) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_refas] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 7171(line=309, offs=3) -- 7356(line=316, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_exist (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_exist: tmp85 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p2at_svs) ; tmp84 = p2at_svs_add_svarlst_2 (tmp85, arg1) ; tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_p2at_dvs) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp87)->tag = 15 ; ats_selptrset_mac(anairiats_sum_12, tmp87, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp87, atslab_1, arg2) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, tmp84, tmp86, tmp87) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_exist] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 7421(line=322, offs=1) -- 7514(line=326, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann: tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p2at_svs) ; tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg1), atslab_p2at_dvs) ; tmp91 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp91)->tag = 17 ; ats_selptrset_mac(anairiats_sum_12, tmp91, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp91, atslab_1, arg2) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, tmp89, tmp90, tmp91) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 7578(line=331, offs=11) -- 7692(line=334, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_vbox (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_vbox: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_sing (arg1) ; tmp94 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp94)->tag = 16 ; ats_selptrset_mac(anairiats_sum_4, tmp94, atslab_0, arg1) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, tmp93, tmp94) ; return (tmp92) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_vbox] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 7759(line=339, offs=13) -- 7831(line=340, offs=65) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat: tmp96 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Terrpat_19) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_make_node (arg0, statmp1, statmp2, tmp96) ; return (tmp95) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_errpat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 7957(line=350, offs=17) -- 8030(line=352, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node: tmp98 = (ats_sum_ptr_type)0 ; tmp97 = ATS_MALLOC(sizeof(anairiats_rec_14)) ; ats_selptrset_mac(anairiats_rec_14, tmp97, atslab_d2exp_loc, arg0) ; ats_selptrset_mac(anairiats_rec_14, tmp97, atslab_d2exp_node, arg1) ; ats_selptrset_mac(anairiats_rec_14, tmp97, atslab_d2exp_type, tmp98) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8101(line=357, offs=11) -- 8149(line=357, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cst: tmp100 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp100)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp100, atslab_0, arg1) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp100) ; return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8171(line=360, offs=11) -- 8219(line=360, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_var: tmp102 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp102)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp102, atslab_0, arg1) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp102) ; return (tmp101) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8262(line=365, offs=11) -- 8306(line=365, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_int: tmp104 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp104)->tag = 2 ; ats_selptrset_mac(anairiats_sum_5, tmp104, atslab_0, arg1) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp104) ; return (tmp103) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_int] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8330(line=367, offs=14) -- 8381(line=367, offs=65) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_intrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_intrep: tmp106 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp106)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp106, atslab_0, arg1) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp106) ; return (tmp105) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_intrep] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8403(line=369, offs=12) -- 8448(line=369, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_bool (ats_ptr_type arg0, ats_bool_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_bool: tmp108 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp108)->tag = 4 ; ats_selptrset_mac(anairiats_sum_6, tmp108, atslab_0, arg1) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp108) ; return (tmp107) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_bool] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8470(line=371, offs=12) -- 8515(line=371, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_char (ats_ptr_type arg0, ats_char_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_char: tmp110 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp110)->tag = 5 ; ats_selptrset_mac(anairiats_sum_7, tmp110, atslab_0, arg1) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp110) ; return (tmp109) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_char] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8538(line=373, offs=13) -- 8588(line=373, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_float (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_float: tmp112 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp112)->tag = 6 ; ats_selptrset_mac(anairiats_sum_4, tmp112, atslab_0, arg1) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp112) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_float] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8612(line=375, offs=14) -- 8659(line=375, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_string (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_string: tmp114 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp114)->tag = 7 ; ats_selptrset_mac(anairiats_sum_4, tmp114, atslab_0, arg1) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp114) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_string] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8682(line=378, offs=12) -- 8727(line=378, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_i0nt (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_i0nt: tmp116 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp116)->tag = 8 ; ats_selptrset_mac(anairiats_sum_4, tmp116, atslab_0, arg1) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp116) ; return (tmp115) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_i0nt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8750(line=380, offs=13) -- 8796(line=380, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_c0har (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_c0har: tmp118 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp118)->tag = 9 ; ats_selptrset_mac(anairiats_sum_4, tmp118, atslab_0, arg1) ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp118) ; return (tmp117) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_c0har] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8820(line=382, offs=14) -- 8867(line=382, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_f0loat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_f0loat: tmp120 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp120)->tag = 10 ; ats_selptrset_mac(anairiats_sum_4, tmp120, atslab_0, arg1) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp120) ; return (tmp119) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_f0loat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8892(line=384, offs=15) -- 8940(line=384, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_s0tring (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_s0tring: tmp122 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp122)->tag = 11 ; ats_selptrset_mac(anairiats_sum_4, tmp122, atslab_0, arg1) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp122) ; return (tmp121) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_s0tring] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 8983(line=389, offs=11) -- 9024(line=390, offs=34) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top: tmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop_12) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp124) ; return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 9046(line=392, offs=12) -- 9096(line=393, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top2: tmp126 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp126)->tag = 13 ; ats_selptrset_mac(anairiats_sum_4, tmp126, atslab_0, arg1) ; tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp126) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_top2] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 9122(line=396, offs=13) -- 9165(line=397, offs=36) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty: tmp128 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp128) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 9214(line=403, offs=3) -- 9264(line=404, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cstsp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cstsp: tmp130 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp130)->tag = 15 ; ats_selptrset_mac(anairiats_sum_4, tmp130, atslab_0, arg1) ; tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp130) ; return (tmp129) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_cstsp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 9335(line=411, offs=3) -- 9385(line=412, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tyrep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tyrep: tmp132 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp132)->tag = 16 ; ats_selptrset_mac(anairiats_sum_4, tmp132, atslab_0, arg1) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp132) ; return (tmp131) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tyrep] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 9458(line=419, offs=3) -- 9510(line=420, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_literal (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_literal: tmp134 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp134)->tag = 17 ; ats_selptrset_mac(anairiats_sum_4, tmp134, atslab_0, arg1) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp134) ; return (tmp133) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_literal] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 9584(line=427, offs=3) -- 9649(line=428, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extval (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extval: tmp136 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp136)->tag = 18 ; ats_selptrset_mac(anairiats_sum_12, tmp136, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp136, atslab_1, arg2) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp136) ; return (tmp135) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extval] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 9703(line=433, offs=3) -- 9782(line=434, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extfcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extfcall: tmp138 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp138)->tag = 19 ; ats_selptrset_mac(anairiats_sum_15, tmp138, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_15, tmp138, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp138, atslab_2, arg3) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp138) ; return (tmp137) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extfcall] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 9838(line=439, offs=3) -- 9929(line=440, offs=61) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extmcall (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extmcall: tmp140 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp140)->tag = 20 ; ats_selptrset_mac(anairiats_sum_16, tmp140, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_16, tmp140, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp140, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp140, atslab_3, arg4) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp140) ; return (tmp139) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extmcall] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 10001(line=447, offs=3) -- 10117(line=448, offs=71) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_con: tmp142 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp142)->tag = 21 ; ats_selptrset_mac(anairiats_sum_17, tmp142, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_17, tmp142, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_17, tmp142, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_17, tmp142, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_17, tmp142, atslab_4, arg5) ; ats_selptrset_mac(anairiats_sum_17, tmp142, atslab_5, arg6) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp142) ; return (tmp141) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_con] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 10161(line=452, offs=11) -- 10209(line=452, offs=59) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sym (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sym: tmp144 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp144)->tag = 22 ; ats_selptrset_mac(anairiats_sum_4, tmp144, atslab_0, arg1) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp144) ; return (tmp143) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sym] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 10257(line=458, offs=3) -- 10320(line=458, offs=66) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_foldat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_foldat: tmp146 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp146)->tag = 23 ; ats_selptrset_mac(anairiats_sum_12, tmp146, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp146, atslab_1, arg2) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp146) ; return (tmp145) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_foldat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 10371(line=462, offs=3) -- 10434(line=462, offs=66) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_freeat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_freeat: tmp148 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp148)->tag = 24 ; ats_selptrset_mac(anairiats_sum_12, tmp148, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp148, atslab_1, arg2) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp148) ; return (tmp147) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_freeat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 10504(line=468, offs=13) -- 10576(line=469, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tmpid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tmpid: tmp150 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp150)->tag = 25 ; ats_selptrset_mac(anairiats_sum_12, tmp150, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp150, atslab_1, arg2) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp150) ; return (tmp149) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tmpid] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 10643(line=475, offs=11) -- 10707(line=476, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_let (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_let: tmp152 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp152)->tag = 26 ; ats_selptrset_mac(anairiats_sum_12, tmp152, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp152, atslab_1, arg2) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp152) ; return (tmp151) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_let] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 10753(line=480, offs=13) -- 10819(line=481, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_where (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_where: tmp154 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp154)->tag = 27 ; ats_selptrset_mac(anairiats_sum_12, tmp154, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp154, atslab_1, arg2) ; tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp154) ; return (tmp153) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_where] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 10889(line=487, offs=14) -- 10972(line=489, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst: tmp156 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp156)->tag = 28 ; ats_selptrset_mac(anairiats_sum_12, tmp156, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp156, atslab_1, arg2) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp156) ; return (tmp155) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19194(line=690, offs=7) -- 19604(line=704, offs=6) */ ATSstaticdec() ats_void_type loop_71 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab_loop_71: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp167 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp168 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp169 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp169, atslab_0, tmp167) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp169 ; if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19444(line=699, offs=13) -- 19470(line=699, offs=39)") ; } tmp170 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp168 ; arg1 = arg1 ; arg2 = tmp170 ; goto __ats_lab_loop_71 ; // tail call break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp172 = (ats_sum_ptr_type)0 ; tmp171 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp171, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp171, atslab_1, tmp172) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp171 ; break ; } while (0) ; return /* (tmp166) */ ; } /* end of [loop_71] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19136(line=688, offs=13) -- 19698(line=708, offs=4) */ ATSstaticdec() ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; // ATSlocal_void (tmp173) ; __ats_lab_list_extend_01337_ats_ptr_type: /* ats_ptr_type tmp165 ; */ /* tmp173 = */ loop_71 (arg0, arg1, (&tmp165)) ; tmp164 = tmp165 ; return (tmp164) ; } /* end of [list_extend_01337_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 10998(line=492, offs=15) -- 11644(line=521, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_15_1: tmp158 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp158)->tag = 0 ; ats_selptrset_mac(anairiats_sum_12, tmp158, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_12, tmp158, atslab_1, arg3) ; tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_d2exp_node) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp160)->tag != 28) { goto __ats_lab_19_0 ; } __ats_lab_16_1: tmp161 = ats_caselptrlab_mac(anairiats_sum_12, tmp160, atslab_0) ; tmp162 = ats_caselptrlab_mac(anairiats_sum_12, tmp160, atslab_1) ; tmp163 = list_extend_01337_ats_ptr_type (tmp162, tmp158) ; tmp159 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp159)->tag = 28 ; ats_selptrset_mac(anairiats_sum_12, tmp159, atslab_0, tmp161) ; ats_selptrset_mac(anairiats_sum_12, tmp159, atslab_1, ats_castfn_mac(ats_ptr_type, tmp163)) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: __ats_lab_19_1: tmp175 = (ats_sum_ptr_type)0 ; tmp174 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp174, atslab_0, tmp158) ; ats_selptrset_mac(anairiats_sum_2, tmp174, atslab_1, tmp175) ; tmp159 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp159)->tag = 28 ; ats_selptrset_mac(anairiats_sum_12, tmp159, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp159, atslab_1, tmp174) ; break ; } while (0) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp157 = arg1 ; break ; } while (0) ; return (tmp157) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 11699(line=524, offs=15) -- 12233(line=546, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_dyn: tmp177 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp177)->tag = 1 ; ats_selptrset_mac(anairiats_sum_18, tmp177, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp177, atslab_1, arg3) ; ats_selptrset_mac(anairiats_sum_18, tmp177, atslab_2, arg4) ; tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_d2exp_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp179)->tag != 28) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_12, tmp179, atslab_0) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_12, tmp179, atslab_1) ; tmp182 = list_extend_01337_ats_ptr_type (tmp181, tmp177) ; tmp178 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp178)->tag = 28 ; ats_selptrset_mac(anairiats_sum_12, tmp178, atslab_0, tmp180) ; ats_selptrset_mac(anairiats_sum_12, tmp178, atslab_1, ats_castfn_mac(ats_ptr_type, tmp182)) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp184 = (ats_sum_ptr_type)0 ; tmp183 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp183, atslab_0, tmp177) ; ats_selptrset_mac(anairiats_sum_2, tmp183, atslab_1, tmp184) ; tmp178 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp178)->tag = 28 ; ats_selptrset_mac(anairiats_sum_12, tmp178, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp178, atslab_1, tmp183) ; break ; } while (0) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp178) ; return (tmp176) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 12289(line=549, offs=19) -- 12585(line=560, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta_dyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_bool_type, tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta_dyn: tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta (arg1, arg2, arg1, arg3) ; tmp187 = atspre_gte_int_int (arg5, -1) ; if (tmp187) { tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_dyn (arg0, tmp186, arg5, arg4, arg6) ; } else { tmp185 = tmp186 ; } /* end of [if] */ return (tmp185) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_app_sta_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 12661(line=565, offs=14) -- 12764(line=569, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifhead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifhead: tmp189 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp189)->tag = 29 ; ats_selptrset_mac(anairiats_sum_16, tmp189, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_16, tmp189, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp189, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp189, atslab_3, arg4) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp189) ; return (tmp188) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifhead] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 12815(line=572, offs=15) -- 12919(line=576, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sifhead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sifhead: tmp191 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp191)->tag = 30 ; ats_selptrset_mac(anairiats_sum_16, tmp191, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_16, tmp191, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp191, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp191, atslab_3, arg4) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp191) ; return (tmp190) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sifhead] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 12979(line=583, offs=1) -- 13125(line=593, offs=4) */ ATSstaticdec() ats_bool_type i2fcl_is_else_76 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; __ats_lab_i2fcl_is_else_76: tmp193 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_i2fcl_test) ; tmp194 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp193), atslab_d2exp_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp194)->tag != 12) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp192 = ats_true_bool ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: tmp192 = ats_false_bool ; break ; } while (0) ; return (tmp192) ; } /* end of [i2fcl_is_else_76] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 13213(line=600, offs=1) -- 13340(line=606, offs=36) */ ATSstaticdec() ats_bool_type loop_78 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab_loop_78: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp196 = i2fcl_is_else_76 (arg0) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp198 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; arg0 = tmp197 ; arg1 = tmp198 ; goto __ats_lab_loop_78 ; // tail call break ; } while (0) ; return (tmp196) ; } /* end of [loop_78] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 13157(line=596, offs=1) -- 13426(line=614, offs=4) */ ATSstaticdec() ats_bool_type i2fclist_is_else_77 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp195) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; __ats_lab_i2fclist_is_else_77: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp195 = ats_true_bool ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp195 = loop_78 (tmp199, tmp200) ; break ; } while (0) ; return (tmp195) ; } /* end of [i2fclist_is_else_77] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 13504(line=620, offs=1) -- 13744(line=640, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifcasehd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_bool_type, tmp202) ; ATSlocal (ats_int_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifcasehd: tmp202 = i2fclist_is_else_77 (arg2) ; if (tmp202) { tmp203 = 1 ; } else { tmp203 = 0 ; } /* end of [if] */ tmp204 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp204)->tag = 31 ; ats_selptrset_mac(anairiats_sum_18, tmp204, atslab_0, tmp203) ; ats_selptrset_mac(anairiats_sum_18, tmp204, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp204, atslab_2, arg2) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp204) ; return (tmp201) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifcasehd] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 13844(line=648, offs=1) -- 13940(line=654, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_casehead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_casehead: tmp206 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp206)->tag = 32 ; ats_selptrset_mac(anairiats_sum_16, tmp206, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_16, tmp206, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp206, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp206, atslab_3, arg4) ; tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp206) ; return (tmp205) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_casehead] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 13999(line=658, offs=3) -- 14080(line=661, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_scasehead (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_scasehead: tmp208 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp208)->tag = 33 ; ats_selptrset_mac(anairiats_sum_15, tmp208, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_15, tmp208, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp208, atslab_2, arg3) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp208) ; return (tmp207) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_scasehead] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 14129(line=667, offs=11) -- 14179(line=668, offs=38) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sing (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sing: tmp210 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp210)->tag = 34 ; ats_selptrset_mac(anairiats_sum_4, tmp210, atslab_0, arg1) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp210) ; return (tmp209) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sing] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 14203(line=671, offs=11) -- 14264(line=672, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_list (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_list: tmp212 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp212)->tag = 35 ; ats_selptrset_mac(anairiats_sum_11, tmp212, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp212, atslab_1, arg2) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp212) ; return (tmp211) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_list] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 14311(line=678, offs=3) -- 14382(line=679, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lst (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lst: tmp214 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp214)->tag = 36 ; ats_selptrset_mac(anairiats_sum_18, tmp214, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp214, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp214, atslab_2, arg3) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp214) ; return (tmp213) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 14449(line=686, offs=1) -- 14527(line=691, offs=33) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup: tmp216 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp216)->tag = 37 ; ats_selptrset_mac(anairiats_sum_13, tmp216, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_13, tmp216, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp216, atslab_2, arg3) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp216) ; return (tmp215) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 14559(line=696, offs=3) -- 14630(line=699, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup_flt (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp217) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup_flt: tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup (arg0, 0, arg1, arg2) ; return (tmp217) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup_flt] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 14679(line=706, offs=1) -- 14757(line=710, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_rec (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_rec: tmp219 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp219)->tag = 38 ; ats_selptrset_mac(anairiats_sum_13, tmp219, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_13, tmp219, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp219, atslab_2, arg3) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp219) ; return (tmp218) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_rec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 14803(line=716, offs=10) -- 14853(line=717, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq: tmp221 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp221)->tag = 39 ; ats_selptrset_mac(anairiats_sum_4, tmp221, atslab_0, arg1) ; tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp221) ; return (tmp220) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 14897(line=721, offs=11) -- 15086(line=732, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq2: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (arg0) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp223 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp224 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (tmp224 != (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp222 = tmp223 ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (tmp224 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq (arg0, arg1) ; break ; } while (0) ; break ; } while (0) ; return (tmp222) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq2] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 15183(line=739, offs=3) -- 15245(line=740, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_deref (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_deref: tmp226 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp226)->tag = 43 ; ats_selptrset_mac(anairiats_sum_12, tmp226, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp226, atslab_1, arg2) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp226) ; return (tmp225) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_deref] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 15295(line=744, offs=13) -- 15367(line=746, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_assgn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_assgn: tmp228 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp228)->tag = 44 ; ats_selptrset_mac(anairiats_sum_12, tmp228, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp228, atslab_1, arg2) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp228) ; return (tmp227) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_assgn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 15417(line=750, offs=13) -- 15489(line=752, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_xchng (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_xchng: tmp230 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp230)->tag = 45 ; ats_selptrset_mac(anairiats_sum_12, tmp230, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp230, atslab_1, arg2) ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp230) ; return (tmp229) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_xchng] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 15563(line=759, offs=1) -- 15658(line=764, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrsub (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrsub: tmp232 = ATS_MALLOC(sizeof(anairiats_sum_16)) ; ((ats_sum_ptr_type)tmp232)->tag = 46 ; ats_selptrset_mac(anairiats_sum_16, tmp232, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_16, tmp232, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_16, tmp232, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_16, tmp232, atslab_3, arg4) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp232) ; return (tmp231) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrsub] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 15687(line=769, offs=1) -- 15780(line=774, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrpsz (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrpsz: tmp234 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp234)->tag = 47 ; ats_selptrset_mac(anairiats_sum_12, tmp234, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp234, atslab_1, arg2) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp234) ; return (tmp233) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrpsz] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 15810(line=778, offs=15) -- 15900(line=783, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrinit (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrinit: tmp236 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp236)->tag = 48 ; ats_selptrset_mac(anairiats_sum_15, tmp236, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_15, tmp236, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp236, atslab_2, arg3) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp236) ; return (tmp235) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrinit] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 15950(line=789, offs=12) -- 16002(line=790, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ptrof (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ptrof: tmp238 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp238)->tag = 41 ; ats_selptrset_mac(anairiats_sum_4, tmp238, atslab_0, arg1) ; tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp238) ; return (tmp237) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ptrof] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 16028(line=793, offs=13) -- 16081(line=794, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_viewat (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_viewat: tmp240 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp240)->tag = 42 ; ats_selptrset_mac(anairiats_sum_4, tmp240, atslab_0, arg1) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp240) ; return (tmp239) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_viewat] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 16130(line=800, offs=3) -- 16193(line=801, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab: tmp242 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp242)->tag = 40 ; ats_selptrset_mac(anairiats_sum_12, tmp242, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp242, atslab_1, arg2) ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp242) ; return (tmp241) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 16245(line=806, offs=3) -- 16292(line=806, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_dot (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_dot: tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab (arg0, arg1, arg2) ; return (tmp243) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_dot] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 16346(line=811, offs=3) -- 16498(line=816, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_ptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_ptr: tmp245 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg2), atslab_d2exp_loc) ; tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_deref (tmp245, arg1, arg2) ; tmp248 = (ats_sum_ptr_type)0 ; tmp247 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp247, atslab_0, arg3) ; ats_selptrset_mac(anairiats_sum_2, tmp247, atslab_1, tmp248) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab (arg0, tmp246, tmp247) ; return (tmp244) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sel_ptr] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 16573(line=822, offs=3) -- 16624(line=823, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_raise (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_raise: tmp250 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp250)->tag = 49 ; ats_selptrset_mac(anairiats_sum_4, tmp250, atslab_0, arg1) ; tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp250) ; return (tmp249) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_raise] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 16654(line=827, offs=3) -- 16719(line=828, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_effmask (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_effmask: tmp252 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp252)->tag = 50 ; ats_selptrset_mac(anairiats_sum_12, tmp252, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp252, atslab_1, arg2) ; tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp252) ; return (tmp251) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_effmask] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 16797(line=835, offs=3) -- 16850(line=836, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vararg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vararg: tmp254 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp254)->tag = 51 ; ats_selptrset_mac(anairiats_sum_4, tmp254, atslab_0, arg1) ; tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp254) ; return (tmp253) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vararg] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 16902(line=842, offs=3) -- 16965(line=843, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vcopyenv (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vcopyenv: tmp256 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp256)->tag = 52 ; ats_selptrset_mac(anairiats_sum_11, tmp256, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp256, atslab_1, arg2) ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp256) ; return (tmp255) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vcopyenv] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 17044(line=850, offs=3) -- 17097(line=851, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_showtype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_showtype: tmp258 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp258)->tag = 53 ; ats_selptrset_mac(anairiats_sum_4, tmp258, atslab_0, arg1) ; tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp258) ; return (tmp257) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_showtype] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 17152(line=857, offs=3) -- 17208(line=858, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tempenver (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tempenver: tmp260 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp260)->tag = 54 ; ats_selptrset_mac(anairiats_sum_4, tmp260, atslab_0, arg1) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp260) ; return (tmp259) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tempenver] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 17257(line=864, offs=3) -- 17317(line=865, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_exist (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_exist: tmp262 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp262)->tag = 55 ; ats_selptrset_mac(anairiats_sum_12, tmp262, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp262, atslab_1, arg2) ; tmp261 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp262) ; return (tmp261) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_exist] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 17390(line=872, offs=1) -- 17481(line=875, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn: tmp264 = ATS_MALLOC(sizeof(anairiats_sum_20)) ; ((ats_sum_ptr_type)tmp264)->tag = 56 ; ats_selptrset_mac(anairiats_sum_20, tmp264, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_20, tmp264, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_20, tmp264, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_20, tmp264, atslab_3, arg4) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp264) ; return (tmp263) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 17513(line=879, offs=1) -- 17608(line=882, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_laminit_dyn (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_laminit_dyn: tmp266 = ATS_MALLOC(sizeof(anairiats_sum_20)) ; ((ats_sum_ptr_type)tmp266)->tag = 57 ; ats_selptrset_mac(anairiats_sum_20, tmp266, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_20, tmp266, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_20, tmp266, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_20, tmp266, atslab_3, arg4) ; tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp266) ; return (tmp265) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_laminit_dyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 17638(line=886, offs=3) -- 17716(line=887, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta: tmp268 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp268)->tag = 58 ; ats_selptrset_mac(anairiats_sum_15, tmp268, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_15, tmp268, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp268, atslab_2, arg3) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp268) ; return (tmp267) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 17772(line=892, offs=3) -- 17846(line=893, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met: tmp270 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp270)->tag = 59 ; ats_selptrset_mac(anairiats_sum_15, tmp270, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_15, tmp270, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp270, atslab_2, arg3) ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp270) ; return (tmp269) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp274 ; */ tmp274 = arg0 ; tmp273 = atspre_ref_make_elt_tsz ((&tmp274), sizeof(ats_ptr_type)) ; return (tmp273) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 17906(line=898, offs=3) -- 18014(line=905, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met_new (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp275) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met_new: tmp275 = (ats_sum_ptr_type)0 ; tmp272 = ref_01088_ats_ptr_type (tmp275) ; tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met (arg0, tmp272, arg1, arg2) ; return (tmp271) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_met_new] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 18068(line=908, offs=11) -- 18161(line=911, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_fix (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_fix: tmp277 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp277)->tag = 60 ; ats_selptrset_mac(anairiats_sum_18, tmp277, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp277, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp277, atslab_2, arg3) ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp277) ; return (tmp276) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_fix] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 18210(line=917, offs=3) -- 18261(line=918, offs=39) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_delay (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_delay: tmp279 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp279)->tag = 61 ; ats_selptrset_mac(anairiats_sum_4, tmp279, atslab_0, arg1) ; tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp279) ; return (tmp278) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_delay] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 18312(line=923, offs=3) -- 18381(line=924, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay: tmp281 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp281)->tag = 62 ; ats_selptrset_mac(anairiats_sum_12, tmp281, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp281, atslab_1, arg2) ; tmp280 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp281) ; return (tmp280) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 18438(line=929, offs=3) -- 18487(line=929, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay_none (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay_none: tmp283 = (ats_sum_ptr_type)0 ; tmp282 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay (arg0, arg1, tmp283) ; return (tmp282) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay_none] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 18560(line=936, offs=1) -- 18664(line=939, offs=63) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_for (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_for: tmp285 = ATS_MALLOC(sizeof(anairiats_sum_21)) ; ((ats_sum_ptr_type)tmp285)->tag = 63 ; ats_selptrset_mac(anairiats_sum_21, tmp285, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_21, tmp285, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_21, tmp285, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_21, tmp285, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_21, tmp285, atslab_4, arg5) ; tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp285) ; return (tmp284) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_for] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 18710(line=944, offs=1) -- 18791(line=947, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_while (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_while: tmp287 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp287)->tag = 64 ; ats_selptrset_mac(anairiats_sum_15, tmp287, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_15, tmp287, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp287, atslab_2, arg3) ; tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp287) ; return (tmp286) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_while] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 18843(line=952, offs=3) -- 18893(line=952, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_loopexn (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_loopexn: tmp289 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp289)->tag = 65 ; ats_selptrset_mac(anairiats_sum_5, tmp289, atslab_0, arg1) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp289) ; return (tmp288) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_loopexn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 18966(line=958, offs=15) -- 19045(line=960, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_trywith (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_trywith: tmp291 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp291)->tag = 66 ; ats_selptrset_mac(anairiats_sum_15, tmp291, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_15, tmp291, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp291, atslab_2, arg3) ; tmp290 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp291) ; return (tmp290) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_trywith] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 19095(line=966, offs=3) -- 19159(line=967, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type: tmp293 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp293)->tag = 67 ; ats_selptrset_mac(anairiats_sum_12, tmp293, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp293, atslab_1, arg2) ; tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp293) ; return (tmp292) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 19215(line=972, offs=3) -- 19281(line=973, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff: tmp295 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp295)->tag = 68 ; ats_selptrset_mac(anairiats_sum_12, tmp295, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp295, atslab_1, arg2) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp295) ; return (tmp294) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 19339(line=978, offs=3) -- 19403(line=979, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo: tmp297 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp297)->tag = 69 ; ats_selptrset_mac(anairiats_sum_12, tmp297, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp297, atslab_1, arg2) ; tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp297) ; return (tmp296) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 19477(line=986, offs=3) -- 19526(line=987, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_mac (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_mac: tmp299 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp299)->tag = 70 ; ats_selptrset_mac(anairiats_sum_4, tmp299, atslab_0, arg1) ; tmp298 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp299) ; return (tmp298) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_mac] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 19575(line=992, offs=3) -- 19637(line=993, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macsyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macsyn: tmp301 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp301)->tag = 71 ; ats_selptrset_mac(anairiats_sum_12, tmp301, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp301, atslab_1, arg2) ; tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp301) ; return (tmp300) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macsyn] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 19689(line=998, offs=3) -- 19755(line=999, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macfun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macfun: tmp303 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp303)->tag = 72 ; ats_selptrset_mac(anairiats_sum_12, tmp303, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp303, atslab_1, arg2) ; tmp302 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp303) ; return (tmp302) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_macfun] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 19833(line=1006, offs=3) -- 19895(line=1007, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solassert (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solassert: tmp305 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp305)->tag = 73 ; ats_selptrset_mac(anairiats_sum_4, tmp305, atslab_0, arg1) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp305) ; return (tmp304) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solassert] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 19924(line=1010, offs=3) -- 19988(line=1011, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solverify (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solverify: tmp307 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp307)->tag = 74 ; ats_selptrset_mac(anairiats_sum_4, tmp307, atslab_0, arg1) ; tmp306 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp307) ; return (tmp306) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_solverify] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 20037(line=1016, offs=13) -- 20089(line=1017, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp: tmp309 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eerrexp_75) ; tmp308 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp309) ; return (tmp308) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 20138(line=1022, offs=15) -- 20171(line=1022, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__labd2exp_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp310) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__labd2exp_make: tmp310 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp310, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp310, atslab_1, arg1) ; return (tmp310) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__labd2exp_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 20214(line=1028, offs=1) -- 20306(line=1034, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_lab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_lab: tmp312 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp312)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp312, atslab_0, arg1) ; tmp311 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp311, atslab_d2lab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp311, atslab_d2lab_node, tmp312) ; ats_selptrset_mac(anairiats_rec_22, tmp311, atslab_d2lab_overld, arg2) ; return (tmp311) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_lab] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 20352(line=1038, offs=3) -- 20445(line=1042, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_ind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_ind: tmp314 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp314)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp314, atslab_0, arg1) ; tmp315 = (ats_sum_ptr_type)0 ; tmp313 = ATS_MALLOC(sizeof(anairiats_rec_22)) ; ats_selptrset_mac(anairiats_rec_22, tmp313, atslab_d2lab_loc, arg0) ; ats_selptrset_mac(anairiats_rec_22, tmp313, atslab_d2lab_node, tmp314) ; ats_selptrset_mac(anairiats_rec_22, tmp313, atslab_d2lab_overld, tmp315) ; return (tmp313) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_ind] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 20515(line=1048, offs=3) -- 20570(line=1051, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp316) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_make: tmp316 = ATS_MALLOC(sizeof(anairiats_rec_23)) ; ats_selptrset_mac(anairiats_rec_23, tmp316, atslab_i2nvarg_var, arg0) ; ats_selptrset_mac(anairiats_rec_23, tmp316, atslab_i2nvarg_type, arg1) ; return (tmp316) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 20649(line=1057, offs=3) -- 20782(line=1063, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var: tmp318 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_i2nvarg_var) ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (tmp318) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (tmp319 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp320 = ats_caselptrlab_mac(anairiats_sum_24, tmp319, atslab_0) ; tmp317 = tmp320 ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (tmp319 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp317 = tmp318 ; break ; } while (0) ; return (tmp317) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 20841(line=1067, offs=3) -- 21281(line=1092, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_bool_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type: tmp322 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_i2nvarg_type) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (tmp322 != (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp321 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (tmp322 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp323 = ats_caselptrlab_mac(anairiats_sum_24, tmp322, atslab_0) ; tmp324 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg0), atslab_i2nvarg_var) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp324) ; if (tmp325) { tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp324) ; if (tmp326 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp2.dats: 21065(line=1082, offs=9) -- 21106(line=1083, offs=30)") ; } tmp327 = ats_caselptrlab_mac(anairiats_sum_24, tmp326, atslab_0) ; tmp328 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp323, tmp327) ; tmp321 = ATS_MALLOC(sizeof(anairiats_sum_24)) ; ats_selptrset_mac(anairiats_sum_24, tmp321, atslab_0, tmp328) ; } else { tmp321 = tmp322 ; } /* end of [if] */ break ; } while (0) ; return (tmp321) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 21498(line=1104, offs=3) -- 21624(line=1110, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make: tmp334 = (ats_sum_ptr_type)0 ; tmp333 = ATS_MALLOC(sizeof(anairiats_rec_25)) ; ats_selptrset_mac(anairiats_rec_25, tmp333, atslab_i2nvresstate_svs, arg0) ; ats_selptrset_mac(anairiats_rec_25, tmp333, atslab_i2nvresstate_gua, arg1) ; ats_selptrset_mac(anairiats_rec_25, tmp333, atslab_i2nvresstate_arg, arg2) ; ats_selptrset_mac(anairiats_rec_25, tmp333, atslab_i2nvresstate_met, tmp334) ; return (tmp333) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 21689(line=1114, offs=2) -- 21812(line=1120, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make_met (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp335) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make_met: tmp335 = ATS_MALLOC(sizeof(anairiats_rec_25)) ; ats_selptrset_mac(anairiats_rec_25, tmp335, atslab_i2nvresstate_svs, arg0) ; ats_selptrset_mac(anairiats_rec_25, tmp335, atslab_i2nvresstate_gua, arg1) ; ats_selptrset_mac(anairiats_rec_25, tmp335, atslab_i2nvresstate_arg, arg2) ; ats_selptrset_mac(anairiats_rec_25, tmp335, atslab_i2nvresstate_met, arg3) ; return (tmp335) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make_met] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 21889(line=1125, offs=15) -- 22050(line=1134, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__loopi2nv_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp336) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__loopi2nv_make: tmp336 = ATS_MALLOC(sizeof(anairiats_rec_26)) ; ats_selptrset_mac(anairiats_rec_26, tmp336, atslab_loopi2nv_loc, arg0) ; ats_selptrset_mac(anairiats_rec_26, tmp336, atslab_loopi2nv_svs, arg1) ; ats_selptrset_mac(anairiats_rec_26, tmp336, atslab_loopi2nv_gua, arg2) ; ats_selptrset_mac(anairiats_rec_26, tmp336, atslab_loopi2nv_arg, arg4) ; ats_selptrset_mac(anairiats_rec_26, tmp336, atslab_loopi2nv_met, arg3) ; ats_selptrset_mac(anairiats_rec_26, tmp336, atslab_loopi2nv_res, arg5) ; return (tmp336) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__loopi2nv_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 22122(line=1140, offs=3) -- 22200(line=1143, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2fcl_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp337) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2fcl_make: tmp337 = ATS_MALLOC(sizeof(anairiats_rec_19)) ; ats_selptrset_mac(anairiats_rec_19, tmp337, atslab_i2fcl_loc, arg0) ; ats_selptrset_mac(anairiats_rec_19, tmp337, atslab_i2fcl_test, arg1) ; ats_selptrset_mac(anairiats_rec_19, tmp337, atslab_i2fcl_body, arg2) ; return (tmp337) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2fcl_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 22272(line=1149, offs=3) -- 22349(line=1151, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__gm2at_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp338) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__gm2at_make: tmp338 = ATS_MALLOC(sizeof(anairiats_rec_27)) ; ats_selptrset_mac(anairiats_rec_27, tmp338, atslab_gm2at_loc, arg0) ; ats_selptrset_mac(anairiats_rec_27, tmp338, atslab_gm2at_exp, arg1) ; ats_selptrset_mac(anairiats_rec_27, tmp338, atslab_gm2at_pat, arg2) ; return (tmp338) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__gm2at_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 22395(line=1154, offs=12) -- 22539(line=1163, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__c2lau_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_int_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp339) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__c2lau_make: tmp339 = ATS_MALLOC(sizeof(anairiats_rec_28)) ; ats_selptrset_mac(anairiats_rec_28, tmp339, atslab_c2lau_loc, arg0) ; ats_selptrset_mac(anairiats_rec_28, tmp339, atslab_c2lau_pat, arg1) ; ats_selptrset_mac(anairiats_rec_28, tmp339, atslab_c2lau_gua, arg2) ; ats_selptrset_mac(anairiats_rec_28, tmp339, atslab_c2lau_seq, arg3) ; ats_selptrset_mac(anairiats_rec_28, tmp339, atslab_c2lau_neg, arg4) ; ats_selptrset_mac(anairiats_rec_28, tmp339, atslab_c2lau_body, arg5) ; return (tmp339) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__c2lau_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 22586(line=1166, offs=13) -- 22663(line=1168, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sc2lau_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp340) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sc2lau_make: tmp340 = ATS_MALLOC(sizeof(anairiats_rec_29)) ; ats_selptrset_mac(anairiats_rec_29, tmp340, atslab_sc2lau_loc, arg0) ; ats_selptrset_mac(anairiats_rec_29, tmp340, atslab_sc2lau_pat, arg1) ; ats_selptrset_mac(anairiats_rec_29, tmp340, atslab_sc2lau_body, arg2) ; return (tmp340) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sc2lau_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 22787(line=1177, offs=14) -- 22991(line=1187, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2mpdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) { /* local vardec */ ATSlocal (ats_ptr_type, tmp341) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2mpdec_make: tmp341 = ATS_MALLOC(sizeof(anairiats_rec_30)) ; ats_selptrset_mac(anairiats_rec_30, tmp341, atslab_i2mpdec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_30, tmp341, atslab_i2mpdec_locid, arg1) ; ats_selptrset_mac(anairiats_rec_30, tmp341, atslab_i2mpdec_cst, arg2) ; ats_selptrset_mac(anairiats_rec_30, tmp341, atslab_i2mpdec_imparg, arg3) ; ats_selptrset_mac(anairiats_rec_30, tmp341, atslab_i2mpdec_tmparg, arg4) ; ats_selptrset_mac(anairiats_rec_30, tmp341, atslab_i2mpdec_tmpgua, arg5) ; ats_selptrset_mac(anairiats_rec_30, tmp341, atslab_i2mpdec_def, arg6) ; return (tmp341) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2mpdec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 23062(line=1192, offs=14) -- 23169(line=1199, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__f2undec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp342) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__f2undec_make: tmp342 = ATS_MALLOC(sizeof(anairiats_rec_31)) ; ats_selptrset_mac(anairiats_rec_31, tmp342, atslab_f2undec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_31, tmp342, atslab_f2undec_var, arg1) ; ats_selptrset_mac(anairiats_rec_31, tmp342, atslab_f2undec_def, arg2) ; ats_selptrset_mac(anairiats_rec_31, tmp342, atslab_f2undec_ann, arg3) ; return (tmp342) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__f2undec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 23240(line=1204, offs=14) -- 23347(line=1211, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2aldec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp343) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2aldec_make: tmp343 = ATS_MALLOC(sizeof(anairiats_rec_32)) ; ats_selptrset_mac(anairiats_rec_32, tmp343, atslab_v2aldec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_32, tmp343, atslab_v2aldec_pat, arg1) ; ats_selptrset_mac(anairiats_rec_32, tmp343, atslab_v2aldec_def, arg2) ; ats_selptrset_mac(anairiats_rec_32, tmp343, atslab_v2aldec_ann, arg3) ; return (tmp343) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2aldec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 23418(line=1217, offs=1) -- 23793(line=1229, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2ardec_make (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp344) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2ardec_make: tmp344 = ATS_MALLOC(sizeof(anairiats_rec_33)) ; ats_selptrset_mac(anairiats_rec_33, tmp344, atslab_v2ardec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_33, tmp344, atslab_v2ardec_knd, arg1) ; ats_selptrset_mac(anairiats_rec_33, tmp344, atslab_v2ardec_svar, arg2) ; ats_selptrset_mac(anairiats_rec_33, tmp344, atslab_v2ardec_dvar, arg3) ; ats_selptrset_mac(anairiats_rec_33, tmp344, atslab_v2ardec_pfat, arg4) ; ats_selptrset_mac(anairiats_rec_33, tmp344, atslab_v2ardec_type, arg5) ; ats_selptrset_mac(anairiats_rec_33, tmp344, atslab_v2ardec_init, arg6) ; ats_selptrset_mac(anairiats_rec_33, tmp344, atslab_v2ardec_dvaropt, arg7) ; return (tmp344) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2ardec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 23845(line=1232, offs=16) -- 23971(line=1239, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prv2ardec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp345) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prv2ardec_make: tmp345 = ATS_MALLOC(sizeof(anairiats_rec_34)) ; ats_selptrset_mac(anairiats_rec_34, tmp345, atslab_prv2ardec_loc, arg0) ; ats_selptrset_mac(anairiats_rec_34, tmp345, atslab_prv2ardec_dvar, arg1) ; ats_selptrset_mac(anairiats_rec_34, tmp345, atslab_prv2ardec_type, arg2) ; ats_selptrset_mac(anairiats_rec_34, tmp345, atslab_prv2ardec_init, arg3) ; return (tmp345) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prv2ardec_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 24143(line=1251, offs=3) -- 24196(line=1253, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp346) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node: tmp346 = ATS_MALLOC(sizeof(anairiats_rec_35)) ; ats_selptrset_mac(anairiats_rec_35, tmp346, atslab_d2ecl_loc, arg0) ; ats_selptrset_mac(anairiats_rec_35, tmp346, atslab_d2ecl_node, arg1) ; return (tmp346) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 24243(line=1258, offs=11) -- 24285(line=1259, offs=35) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none: tmp348 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0) ; tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp348) ; return (tmp347) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 24309(line=1262, offs=11) -- 24357(line=1263, offs=37) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_list (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_list: tmp350 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp350)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp350, atslab_0, arg1) ; tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp350) ; return (tmp349) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_list] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 24408(line=1269, offs=3) -- 24462(line=1270, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symintr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symintr: tmp352 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp352)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp352, atslab_0, arg1) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp352) ; return (tmp351) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symintr] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 24515(line=1274, offs=3) -- 24569(line=1275, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symelim (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symelim: tmp354 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp354)->tag = 3 ; ats_selptrset_mac(anairiats_sum_4, tmp354, atslab_0, arg1) ; tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp354) ; return (tmp353) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_symelim] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 24643(line=1282, offs=1) -- 24718(line=1284, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_overload (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_overload: tmp356 = ATS_MALLOC(sizeof(anairiats_sum_36)) ; ((ats_sum_ptr_type)tmp356)->tag = 4 ; ats_selptrset_mac(anairiats_sum_36, tmp356, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_36, tmp356, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_36, tmp356, atslab_2, arg3) ; tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp356) ; return (tmp355) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_overload] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 24795(line=1291, offs=3) -- 24850(line=1292, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_pragma (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_pragma: tmp358 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp358)->tag = 5 ; ats_selptrset_mac(anairiats_sum_4, tmp358, atslab_0, arg1) ; tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp358) ; return (tmp357) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_pragma] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 24880(line=1296, offs=3) -- 24940(line=1297, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_codegen (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_codegen: tmp360 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp360)->tag = 6 ; ats_selptrset_mac(anairiats_sum_11, tmp360, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp360, atslab_1, arg2) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp360) ; return (tmp359) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_codegen] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 24993(line=1303, offs=3) -- 25049(line=1304, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacsts (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacsts: tmp362 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp362)->tag = 7 ; ats_selptrset_mac(anairiats_sum_4, tmp362, atslab_0, arg1) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp362) ; return (tmp361) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacsts] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 25076(line=1307, offs=3) -- 25142(line=1308, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacons (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacons: tmp364 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp364)->tag = 8 ; ats_selptrset_mac(anairiats_sum_11, tmp364, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp364, atslab_1, arg2) ; tmp363 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp364) ; return (tmp363) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_stacons] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 25326(line=1323, offs=3) -- 25374(line=1323, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_saspdec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_saspdec: tmp366 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp366)->tag = 9 ; ats_selptrset_mac(anairiats_sum_4, tmp366, atslab_0, arg1) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp366) ; return (tmp365) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_saspdec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 25405(line=1327, offs=3) -- 25456(line=1327, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_reassume (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_reassume: tmp368 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp368)->tag = 10 ; ats_selptrset_mac(anairiats_sum_4, tmp368, atslab_0, arg1) ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp368) ; return (tmp367) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_reassume] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 25506(line=1332, offs=14) -- 25571(line=1333, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extype (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extype: tmp370 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp370)->tag = 11 ; ats_selptrset_mac(anairiats_sum_12, tmp370, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp370, atslab_1, arg2) ; tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp370) ; return (tmp369) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extype] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 25595(line=1335, offs=14) -- 25660(line=1336, offs=47) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extvar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extvar: tmp372 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp372)->tag = 12 ; ats_selptrset_mac(anairiats_sum_12, tmp372, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp372, atslab_1, arg2) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp372) ; return (tmp371) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extvar] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 25685(line=1338, offs=15) -- 25761(line=1339, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extcode (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extcode: tmp374 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ((ats_sum_ptr_type)tmp374)->tag = 13 ; ats_selptrset_mac(anairiats_sum_13, tmp374, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_13, tmp374, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_13, tmp374, atslab_2, arg3) ; tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp374) ; return (tmp373) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_extcode] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 25812(line=1344, offs=15) -- 25867(line=1345, offs=42) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_exndecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_exndecs: tmp376 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp376)->tag = 15 ; ats_selptrset_mac(anairiats_sum_4, tmp376, atslab_0, arg1) ; tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp376) ; return (tmp375) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_exndecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 25895(line=1348, offs=15) -- 25961(line=1349, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_datdecs (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_datdecs: tmp378 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp378)->tag = 14 ; ats_selptrset_mac(anairiats_sum_11, tmp378, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp378, atslab_1, arg2) ; tmp377 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp378) ; return (tmp377) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_datdecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 26015(line=1355, offs=3) -- 26092(line=1356, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dcstdecs (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dcstdecs: tmp380 = ATS_MALLOC(sizeof(anairiats_sum_18)) ; ((ats_sum_ptr_type)tmp380)->tag = 16 ; ats_selptrset_mac(anairiats_sum_18, tmp380, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_18, tmp380, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_18, tmp380, atslab_2, arg3) ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp380) ; return (tmp379) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dcstdecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 26143(line=1361, offs=15) -- 26225(line=1362, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_fundecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_fundecs: tmp382 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp382)->tag = 18 ; ats_selptrset_mac(anairiats_sum_15, tmp382, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_15, tmp382, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp382, atslab_2, arg3) ; tmp381 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp382) ; return (tmp381) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_fundecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 26274(line=1367, offs=15) -- 26340(line=1368, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs: tmp384 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp384)->tag = 19 ; ats_selptrset_mac(anairiats_sum_12, tmp384, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp384, atslab_1, arg2) ; tmp383 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp384) ; return (tmp383) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 26370(line=1371, offs=19) -- 26440(line=1372, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs_rec: tmp386 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp386)->tag = 20 ; ats_selptrset_mac(anairiats_sum_12, tmp386, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp386, atslab_1, arg2) ; tmp385 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp386) ; return (tmp385) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs_rec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 26487(line=1377, offs=15) -- 26543(line=1378, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_vardecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_vardecs: tmp388 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp388)->tag = 21 ; ats_selptrset_mac(anairiats_sum_4, tmp388, atslab_0, arg1) ; tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp388) ; return (tmp387) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_vardecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 26571(line=1381, offs=17) -- 26629(line=1382, offs=45) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_prvardecs (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_prvardecs: tmp390 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp390)->tag = 22 ; ats_selptrset_mac(anairiats_sum_4, tmp390, atslab_0, arg1) ; tmp389 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp390) ; return (tmp389) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_prvardecs] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 26675(line=1387, offs=14) -- 26738(line=1388, offs=46) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_impdec (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_impdec: tmp392 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp392)->tag = 17 ; ats_selptrset_mac(anairiats_sum_11, tmp392, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp392, atslab_1, arg2) ; tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp392) ; return (tmp391) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_impdec] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 26785(line=1393, offs=15) -- 26851(line=1394, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_include (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_include: tmp394 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp394)->tag = 23 ; ats_selptrset_mac(anairiats_sum_11, tmp394, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp394, atslab_1, arg2) ; tmp393 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp394) ; return (tmp393) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_include] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 26898(line=1399, offs=15) -- 27012(line=1402, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staload (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_int_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staload: tmp396 = ATS_MALLOC(sizeof(anairiats_sum_37)) ; ((ats_sum_ptr_type)tmp396)->tag = 24 ; ats_selptrset_mac(anairiats_sum_37, tmp396, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_37, tmp396, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_37, tmp396, atslab_2, arg3) ; ats_selptrset_mac(anairiats_sum_37, tmp396, atslab_3, arg4) ; ats_selptrset_mac(anairiats_sum_37, tmp396, atslab_4, arg5) ; tmp395 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp396) ; return (tmp395) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staload] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 27066(line=1406, offs=18) -- 27155(line=1408, offs=62) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staloadloc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staloadloc: tmp398 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp398)->tag = 25 ; ats_selptrset_mac(anairiats_sum_15, tmp398, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_15, tmp398, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_15, tmp398, atslab_2, arg3) ; tmp397 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp398) ; return (tmp397) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_staloadloc] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 27202(line=1413, offs=15) -- 27254(line=1413, offs=67) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dynload (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dynload: tmp400 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp400)->tag = 26 ; ats_selptrset_mac(anairiats_sum_4, tmp400, atslab_0, arg1) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp400) ; return (tmp399) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_dynload] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 27301(line=1418, offs=3) -- 27365(line=1418, offs=67) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_local (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_local: tmp402 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp402)->tag = 27 ; ats_selptrset_mac(anairiats_sum_12, tmp402, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_12, tmp402, atslab_1, arg2) ; tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp402) ; return (tmp401) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_local] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2.dats: 27435(line=1423, offs=24) -- 27478(line=1423, offs=67) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_errdec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_errdec: tmp404 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cerrdec_28) ; tmp403 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__d2ecl_make_node (arg0, tmp404) ; return (tmp403) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_errdec] */ /* 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_location_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_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_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_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp2, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp329, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp330, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp331, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp332, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil () ; statmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil () ; statmp330 = (ats_sum_ptr_type)0 ; statmp331 = (ats_sum_ptr_type)0 ; statmp332 = (ats_sum_ptr_type)0 ; statmp329 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make (statmp330, statmp331, statmp332) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_nil, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_nil = statmp329 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ ats_void_type patsopt_p2at_set_type ( ats_ptr_type p2t, ats_ptr_type opt ) { ((p2at_t)p2t)->atslab_p2at_type = opt ; return ; } // end of [patsopt_p2at_set_type] ats_void_type patsopt_d2exp_set_type ( ats_ptr_type d2e, ats_ptr_type opt ) { ((d2exp_t)d2e)->atslab_d2exp_type = opt ; return ; } // end of [patsopt_d2exp_set_type] /* ****** ****** */ /* end of [pats_dynexp2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_env_sats.c0000644000175000017500000003213213431250607022627 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_1 ; typedef struct { ats_bool_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_2 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKcase_exhaustiveness_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isnat_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isdec_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_fin_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_lvar_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_vbox_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKloop_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOprop_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPObind_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOeqeq_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRprop_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRitmlst_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRsolverify_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsvar_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMhypo_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsVar_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_ref_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMdisj_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsolassert_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPlam_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop0_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop1_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_jsonize_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKcase_exhaustiveness_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isnat_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isdec_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_fin_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_lvar_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_vbox_6.tag = 6 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKloop_9.tag = 9 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOprop_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPObind_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOeqeq_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRprop_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRitmlst_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRsolverify_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsvar_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMhypo_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsVar_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_ref_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMdisj_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsolassert_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPlam_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop0_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop1_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0.tag = 0 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_env_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lexing_sats.c0000644000175000017500000010060713431250607022036 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONE_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AT_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BAR_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BANG_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BQUOTE_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BACKSLASH_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLON_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLONLT_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOLLAR_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOT_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOTDOT_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTINT_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQ_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGT_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLT_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLTGT_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGT_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGTGT_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGTGT_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_HASH_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LT_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GT_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTLT_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLT_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTDOT_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLTGTDOT_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSGT_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLT_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLTGT_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TILDE_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ABSTYPE_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ASSUME_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REASSUME_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AS_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AND_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BEGIN_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CASE_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CLASSDEC_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATASORT_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATATYPE_40) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DO_41) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ELSE_42) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_END_43) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXCEPTION_44) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTERN_45) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTYPE_46) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTVAR_47) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIX_48) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIXITY_49) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOR_50) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FORSTAR_51) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FUN_52) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IF_53) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IFCASE_54) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPLEMENT_55) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPORT_56) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IN_57) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LAM_58) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LET_59) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LOCAL_60) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MACDEF_61) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONFIX_62) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OF_63) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OP_64) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REC_65) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SIF_66) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SCASE_67) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STACST_68) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STADEF_69) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STATIC_70) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SORTDEF_71) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMELIM_72) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMINTR_73) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMLOAD_74) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_THEN_75) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TKINDEF_76) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TRY_77) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPE_78) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPEDEF_79) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAL_80) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAR_81) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHEN_82) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHERE_83) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILE_84) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILESTAR_85) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITH_86) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITHTYPE_87) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ADDRAT_88) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOLDAT_89) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FREEAT_90) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VIEWAT_91) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRDELAY_92) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRARRPSZ_93) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTYREP_94) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRD2CTYPE_95) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_96) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_ARG_97) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTERN_98) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_99) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTKIND_100) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_STRUCT_101) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTVAL_102) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTFCALL_103) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTMCALL_104) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLITERAL_105) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFILENAME_106) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYLOCATION_107) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFUNCTION_108) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLST_109) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRREC_110) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTUP_111) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRBREAK_112) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRCONTINUE_113) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRRAISE_114) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVARARG_115) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVCOPYENV_116) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSHOWTYPE_117) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTEMPENVER_118) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLASSERT_119) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLVERIFY_120) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIF_121) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFDEF_122) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFNDEF_123) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPTHEN_124) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIF_125) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFDEF_126) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFNDEF_127) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELSE_128) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPENDIF_129) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPERROR_130) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRERR_131) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRINT_132) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPASSERT_133) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPUNDEF_134) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDEFINE_135) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPINCLUDE_136) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPSTALOAD_137) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDYNLOAD_138) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPREQUIRE_139) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRAGMA_140) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN2_141) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN3_142) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_alp_143) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_sym_144) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_arr_145) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_tmp_146) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_dlr_147) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_srp_148) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_ext_149) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_INT_150) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CHAR_151) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FLOAT_152) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CDATA_153) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STRING_154) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMA_155) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SEMICOLON_156) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LPAREN_157) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RPAREN_158) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACKET_159) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACKET_160) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACE_161) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACE_162) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLPAREN_163) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELPAREN_164) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLBRACKET_165) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACKET_166) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_HASHLBRACKET_167) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLBRACE_168) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACE_169) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BQUOTELPAREN_170) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMALPAREN_171) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_PERCENTLPAREN_172) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTCODE_173) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_line_174) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_rest_175) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_block_176) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ERR_177) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EOF_178) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_oct_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_hex_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_unclose_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_QUOTE_dangling_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_unclose_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_oct_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_hex_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_COMMENT_block_unclose_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_EXTCODE_unclose_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_DIGIT_oct_89_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_IDIGITS_empty_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FEXPONENT_empty_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FEXPONENT_missing_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FINTFRAC_missing_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_UNSUPPORTED_char_14) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_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__T_NONE_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AT_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BAR_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BANG_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BQUOTE_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BACKSLASH_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLON_6.tag = 6 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLONLT_7.tag = 7 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOLLAR_8.tag = 8 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9.tag = 9 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOT_10.tag = 10 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOTDOT_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTINT_12.tag = 12 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQ_13.tag = 13 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGT_14.tag = 14 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLT_15.tag = 15 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLTGT_16.tag = 16 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGT_17.tag = 17 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGTGT_18.tag = 18 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGTGT_19.tag = 19 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_HASH_20.tag = 20 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LT_21.tag = 21 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GT_22.tag = 22 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTLT_23.tag = 23 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLT_24.tag = 24 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTDOT_25.tag = 25 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLTGTDOT_26.tag = 26 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSGT_27.tag = 27 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLT_28.tag = 28 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLTGT_29.tag = 29 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TILDE_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ABSTYPE_31.tag = 31 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ASSUME_32.tag = 32 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REASSUME_33.tag = 33 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AS_34.tag = 34 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AND_35.tag = 35 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BEGIN_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CASE_37.tag = 37 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CLASSDEC_38.tag = 38 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATASORT_39.tag = 39 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATATYPE_40.tag = 40 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DO_41.tag = 41 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ELSE_42.tag = 42 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_END_43.tag = 43 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXCEPTION_44.tag = 44 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTERN_45.tag = 45 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTYPE_46.tag = 46 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTVAR_47.tag = 47 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIX_48.tag = 48 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIXITY_49.tag = 49 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOR_50.tag = 50 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FORSTAR_51.tag = 51 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FUN_52.tag = 52 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IF_53.tag = 53 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IFCASE_54.tag = 54 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPLEMENT_55.tag = 55 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPORT_56.tag = 56 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IN_57.tag = 57 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LAM_58.tag = 58 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LET_59.tag = 59 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LOCAL_60.tag = 60 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MACDEF_61.tag = 61 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONFIX_62.tag = 62 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OF_63.tag = 63 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OP_64.tag = 64 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REC_65.tag = 65 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SIF_66.tag = 66 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SCASE_67.tag = 67 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STACST_68.tag = 68 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STADEF_69.tag = 69 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STATIC_70.tag = 70 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SORTDEF_71.tag = 71 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMELIM_72.tag = 72 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMINTR_73.tag = 73 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMLOAD_74.tag = 74 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_THEN_75.tag = 75 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TKINDEF_76.tag = 76 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TRY_77.tag = 77 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPE_78.tag = 78 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPEDEF_79.tag = 79 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAL_80.tag = 80 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAR_81.tag = 81 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHEN_82.tag = 82 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHERE_83.tag = 83 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILE_84.tag = 84 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILESTAR_85.tag = 85 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITH_86.tag = 86 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITHTYPE_87.tag = 87 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ADDRAT_88.tag = 88 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOLDAT_89.tag = 89 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FREEAT_90.tag = 90 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VIEWAT_91.tag = 91 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRDELAY_92.tag = 92 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRARRPSZ_93.tag = 93 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTYREP_94.tag = 94 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRD2CTYPE_95.tag = 95 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_96.tag = 96 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_ARG_97.tag = 97 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTERN_98.tag = 98 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_99.tag = 99 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTKIND_100.tag = 100 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_STRUCT_101.tag = 101 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTVAL_102.tag = 102 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTFCALL_103.tag = 103 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTMCALL_104.tag = 104 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLITERAL_105.tag = 105 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFILENAME_106.tag = 106 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYLOCATION_107.tag = 107 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFUNCTION_108.tag = 108 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLST_109.tag = 109 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRREC_110.tag = 110 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTUP_111.tag = 111 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRBREAK_112.tag = 112 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRCONTINUE_113.tag = 113 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRRAISE_114.tag = 114 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVARARG_115.tag = 115 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVCOPYENV_116.tag = 116 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSHOWTYPE_117.tag = 117 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTEMPENVER_118.tag = 118 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLASSERT_119.tag = 119 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLVERIFY_120.tag = 120 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIF_121.tag = 121 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFDEF_122.tag = 122 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFNDEF_123.tag = 123 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPTHEN_124.tag = 124 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIF_125.tag = 125 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFDEF_126.tag = 126 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFNDEF_127.tag = 127 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELSE_128.tag = 128 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPENDIF_129.tag = 129 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPERROR_130.tag = 130 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRERR_131.tag = 131 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRINT_132.tag = 132 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPASSERT_133.tag = 133 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPUNDEF_134.tag = 134 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDEFINE_135.tag = 135 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPINCLUDE_136.tag = 136 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPSTALOAD_137.tag = 137 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDYNLOAD_138.tag = 138 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPREQUIRE_139.tag = 139 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRAGMA_140.tag = 140 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN2_141.tag = 141 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN3_142.tag = 142 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_alp_143.tag = 143 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_sym_144.tag = 144 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_arr_145.tag = 145 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_tmp_146.tag = 146 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_dlr_147.tag = 147 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_srp_148.tag = 148 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_ext_149.tag = 149 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_INT_150.tag = 150 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CHAR_151.tag = 151 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FLOAT_152.tag = 152 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CDATA_153.tag = 153 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STRING_154.tag = 154 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMA_155.tag = 155 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SEMICOLON_156.tag = 156 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LPAREN_157.tag = 157 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RPAREN_158.tag = 158 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACKET_159.tag = 159 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACKET_160.tag = 160 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACE_161.tag = 161 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACE_162.tag = 162 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLPAREN_163.tag = 163 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELPAREN_164.tag = 164 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLBRACKET_165.tag = 165 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACKET_166.tag = 166 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_HASHLBRACKET_167.tag = 167 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLBRACE_168.tag = 168 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACE_169.tag = 169 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BQUOTELPAREN_170.tag = 170 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMALPAREN_171.tag = 171 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_PERCENTLPAREN_172.tag = 172 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTCODE_173.tag = 173 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_line_174.tag = 174 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_rest_175.tag = 175 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_block_176.tag = 176 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ERR_177.tag = 177 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EOF_178.tag = 178 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_oct_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_hex_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_unclose_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_QUOTE_dangling_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_unclose_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_oct_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_hex_6.tag = 6 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_COMMENT_block_unclose_7.tag = 7 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_EXTCODE_unclose_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_DIGIT_oct_89_9.tag = 9 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_IDIGITS_empty_10.tag = 10 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FEXPONENT_empty_11.tag = 11 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FEXPONENT_missing_12.tag = 12 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FINTFRAC_missing_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_UNSUPPORTED_char_14.tag = 14 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lexing_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_reader_dats.c0000644000175000017500000010472313431250607021776 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_reader.cats" #include "libc/CATS/stdio.cats" #include "libc/sys/CATS/types.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_char_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* 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) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_cloptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_int_of_char) (ats_char_type) ; ATSextern_fun(ats_int_type, atspre_int_of_uchar) (ats_uchar_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_free) (ats_ptr_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_char_type, atspre_string_get_char_at) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atslib_fclose_exn) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__reader0_encode_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__reader0_decode_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__sasp__reader_vt0ype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__sasp__reader0 = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type __ats_fun_2 (ats_ptr_type env0) ; static ats_clo_ptr_type __ats_fun_2_closure_make (ats_ptr_type env0) ; static ats_int_type __ats_fun_2_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type __ats_fun_3 (ats_ptr_type env0) ; static ats_clo_ptr_type __ats_fun_3_closure_make (ats_ptr_type env0) ; static ats_void_type __ats_fun_3_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type reader0_initize_filp_1 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type __ats_fun_5 () ; static ats_clo_ptr_type __ats_fun_5_closure_make () ; static ats_void_type __ats_fun_5_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type reader0_initize_getc_4 (ats_ref_type arg0, ats_clo_ptr_type arg1) ; static ats_int_type __ats_fun_7 (ats_ptr_type env0, ats_ptr_type env1) ; static ats_clo_ptr_type __ats_fun_7_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_int_type __ats_fun_7_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type __ats_fun_8 (ats_ptr_type env0) ; static ats_clo_ptr_type __ats_fun_8_closure_make (ats_ptr_type env0) ; static ats_void_type __ats_fun_8_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type reader0_initize_string_6 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_int_type __ats_fun_10 (ats_ptr_type env0) ; static ats_clo_ptr_type __ats_fun_10_closure_make (ats_ptr_type env0) ; static ats_int_type __ats_fun_10_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type loop_13 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_char_type (ats_ptr_type arg0) ; static ats_void_type __ats_fun_11 (ats_ptr_type env0) ; static ats_clo_ptr_type __ats_fun_11_closure_make (ats_ptr_type env0) ; static ats_void_type __ats_fun_11_clofun (ats_clo_ptr_type cloptr) ; static ats_void_type reader0_initize_charlst_vt_9 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type reader0_uninitize_14 (ats_ref_type arg0) ; static ats_ptr_type ptr_alloc_01070_ats_size_type () ; static ats_ptr_type ptr_alloc_01070_ats_ptr_type () ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 1998(line=74, offs=3) -- 2034(line=74, offs=39) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_get_char (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp0) ; ATSlocal (ats_clo_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_get_char: tmp1 = ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), getchar) ; tmp0 = ((ats_int_type(*)(ats_clo_ptr_type))(ats_closure_fun(tmp1))) (tmp1) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_get_char] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 2262(line=92, offs=11) -- 2330(line=93, offs=65) */ ATSstaticdec() ats_int_type __ats_fun_2 (ats_ptr_type env0) { /* local vardec */ ATSlocal (ats_int_type, tmp3) ; __ats_lab___ats_fun_2: tmp3 = atslib_fgetc_err (env0) ; return (tmp3) ; } /* end of [__ats_fun_2] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_2_closure_type ; ats_int_type __ats_fun_2_clofun (ats_clo_ptr_type cloptr) { return __ats_fun_2 (((__ats_fun_2_closure_type*)cloptr)->closure_env_0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_2_closure_init (__ats_fun_2_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_2_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_2_closure_make (ats_ptr_type env0) { __ats_fun_2_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_2_closure_type)) ; __ats_fun_2_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 2368(line=97, offs=11) -- 2436(line=98, offs=65) */ ATSstaticdec() ats_void_type __ats_fun_3 (ats_ptr_type env0) { /* local vardec */ // ATSlocal_void (tmp5) ; __ats_lab___ats_fun_3: /* tmp5 = */ atslib_fclose_exn (env0) ; return /* (tmp5) */ ; } /* end of [__ats_fun_3] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_3_closure_type ; ats_void_type __ats_fun_3_clofun (ats_clo_ptr_type cloptr) { __ats_fun_3 (((__ats_fun_3_closure_type*)cloptr)->closure_env_0) ; return ; } /* end of function */ ATSinline() ats_void_type __ats_fun_3_closure_init (__ats_fun_3_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_3_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_3_closure_make (ats_ptr_type env0) { __ats_fun_3_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_3_closure_type)) ; __ats_fun_3_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 2063(line=79, offs=1) -- 2553(line=105, offs=2) */ ATSstaticdec() ats_void_type reader0_initize_filp_1 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_reader0_initize_filp_1: tmp4 = __ats_fun_2_closure_make (arg1) ; tmp6 = __ats_fun_3_closure_make (arg1) ; ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), getchar) = tmp4 ; ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), freeres) = tmp6 ; return /* (tmp2) */ ; } /* end of [reader0_initize_filp_1] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 2914(line=120, offs=17) -- 3003(line=122, offs=63) */ ATSstaticdec() ats_void_type __ats_fun_5 () { /* local vardec */ // ATSlocal_void (tmp8) ; __ats_lab___ats_fun_5: return /* (tmp8) */ ; } /* end of [__ats_fun_5] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_5_closure_type ; ats_void_type __ats_fun_5_clofun (ats_clo_ptr_type cloptr) { __ats_fun_5 () ; return ; } /* end of function */ ATSinline() ats_void_type __ats_fun_5_closure_init (__ats_fun_5_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_5_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_5_closure_make () { __ats_fun_5_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_5_closure_type)) ; __ats_fun_5_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 2616(line=110, offs=1) -- 3102(line=126, offs=2) */ ATSstaticdec() ats_void_type reader0_initize_getc_4 (ats_ref_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab_reader0_initize_getc_4: tmp9 = __ats_fun_5_closure_make () ; ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), getchar) = ats_castfn_mac(ats_clo_ptr_type, arg1) ; ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), freeres) = tmp9 ; return /* (tmp7) */ ; } /* end of [reader0_initize_getc_4] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 3434(line=142, offs=17) -- 3821(line=157, offs=6) */ ATSstaticdec() ats_int_type __ats_fun_7 (ats_ptr_type env0, ats_ptr_type env1) { /* local vardec */ ATSlocal (ats_int_type, tmp11) ; ATSlocal (ats_size_type, tmp12) ; ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_char_type, tmp14) ; ATSlocal (ats_size_type, tmp15) ; __ats_lab___ats_fun_7: tmp12 = ats_ptrget_mac(ats_size_type, env1) ; tmp13 = atspre_string_isnot_atend (env0, tmp12) ; if (tmp13) { tmp14 = atspre_string_get_char_at (env0, tmp12) ; tmp15 = atspre_add_size1_int1 (tmp12, 1) ; ats_ptrget_mac(ats_size_type, env1) = tmp15 ; tmp11 = atspre_int_of_char (tmp14) ; } else { tmp11 = -1 ; } /* end of [if] */ return (tmp11) ; } /* end of [__ats_fun_7] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } __ats_fun_7_closure_type ; ats_int_type __ats_fun_7_clofun (ats_clo_ptr_type cloptr) { return __ats_fun_7 (((__ats_fun_7_closure_type*)cloptr)->closure_env_0, ((__ats_fun_7_closure_type*)cloptr)->closure_env_1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_7_closure_init (__ats_fun_7_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_7_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_7_closure_make (ats_ptr_type env0, ats_ptr_type env1) { __ats_fun_7_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_7_closure_type)) ; __ats_fun_7_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 3857(line=159, offs=17) -- 3926(line=160, offs=66) */ ATSstaticdec() ats_void_type __ats_fun_8 (ats_ptr_type env0) { /* local vardec */ // ATSlocal_void (tmp17) ; __ats_lab___ats_fun_8: /* tmp17 = */ atspre_ptr_free (env0) ; return /* (tmp17) */ ; } /* end of [__ats_fun_8] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_8_closure_type ; ats_void_type __ats_fun_8_clofun (ats_clo_ptr_type cloptr) { __ats_fun_8 (((__ats_fun_8_closure_type*)cloptr)->closure_env_0) ; return ; } /* end of function */ ATSinline() ats_void_type __ats_fun_8_closure_init (__ats_fun_8_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_8_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_8_closure_make (ats_ptr_type env0) { __ats_fun_8_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_8_closure_type)) ; __ats_fun_8_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 3162(line=131, offs=1) -- 4052(line=166, offs=2) */ ATSstaticdec() ats_void_type reader0_initize_string_6 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_reader0_initize_string_6: tmp16 = __ats_fun_7_closure_make (arg1, arg2) ; tmp18 = __ats_fun_8_closure_make (arg2) ; ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), getchar) = tmp16 ; ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), freeres) = tmp18 ; return /* (tmp10) */ ; } /* end of [reader0_initize_string_6] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 4417(line=189, offs=5) -- 4864(line=206, offs=6) */ ATSstaticdec() ats_int_type __ats_fun_10 (ats_ptr_type env0) { /* local vardec */ ATSlocal (ats_int_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_char_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab___ats_fun_10: tmp21 = ats_ptrget_mac(ats_ptr_type, env0) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp21 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_1, tmp21, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_1, tmp21, atslab_1) ; ATS_FREE(tmp21) ; ats_ptrget_mac(ats_ptr_type, env0) = tmp23 ; tmp20 = atspre_int_of_uchar (ats_castfn_mac(ats_uchar_type, tmp22)) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp21 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp20 = -1 ; break ; } while (0) ; return (tmp20) ; } /* end of [__ats_fun_10] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_10_closure_type ; ats_int_type __ats_fun_10_clofun (ats_clo_ptr_type cloptr) { return __ats_fun_10 (((__ats_fun_10_closure_type*)cloptr)->closure_env_0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_10_closure_init (__ats_fun_10_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_10_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_10_closure_make (ats_ptr_type env0) { __ats_fun_10_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_10_closure_type)) ; __ats_fun_10_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_13 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; __ats_lab_loop_13: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp29 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp28) */ ; } /* end of [loop_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_char_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp27) ; __ats_lab_list_vt_free_01499_ats_char_type: /* tmp27 = */ loop_13 (arg0) ; return /* (tmp27) */ ; } /* end of [list_vt_free_01499_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 4920(line=209, offs=5) -- 5074(line=216, offs=6) */ ATSstaticdec() ats_void_type __ats_fun_11 (ats_ptr_type env0) { /* local vardec */ // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab___ats_fun_11: tmp30 = ats_ptrget_mac(ats_ptr_type, env0) ; /* tmp26 = */ list_vt_free_01499_ats_char_type (tmp30) ; /* tmp25 = */ atspre_ptr_free (env0) ; return /* (tmp25) */ ; } /* end of [__ats_fun_11] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_11_closure_type ; ats_void_type __ats_fun_11_clofun (ats_clo_ptr_type cloptr) { __ats_fun_11 (((__ats_fun_11_closure_type*)cloptr)->closure_env_0) ; return ; } /* end of function */ ATSinline() ats_void_type __ats_fun_11_closure_init (__ats_fun_11_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_11_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_11_closure_make (ats_ptr_type env0) { __ats_fun_11_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_11_closure_type)) ; __ats_fun_11_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 4182(line=177, offs=1) -- 5198(line=221, offs=2) */ ATSstaticdec() ats_void_type reader0_initize_charlst_vt_9 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab_reader0_initize_charlst_vt_9: tmp24 = __ats_fun_10_closure_make (arg1) ; tmp31 = __ats_fun_11_closure_make (arg1) ; ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), getchar) = tmp24 ; ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), freeres) = tmp31 ; return /* (tmp19) */ ; } /* end of [reader0_initize_charlst_vt_9] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 5287(line=228, offs=1) -- 5620(line=240, offs=2) */ ATSstaticdec() ats_void_type reader0_uninitize_14 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_clo_ptr_type, tmp34) ; // ATSlocal_void (tmp35) ; ATSlocal (ats_clo_ptr_type, tmp36) ; ATSlocal (ats_clo_ptr_type, tmp37) ; __ats_lab_reader0_uninitize_14: tmp34 = ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), freeres) ; /* tmp33 = */ ((ats_void_type(*)(ats_clo_ptr_type))(ats_closure_fun(tmp34))) (tmp34) ; tmp36 = ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), getchar) ; /* tmp35 = */ atspre_cloptr_free (tmp36) ; tmp37 = ats_select_mac(ats_ptrget_mac(pats_reader_struct, arg0), freeres) ; /* tmp32 = */ atspre_cloptr_free (tmp37) ; return /* (tmp32) */ ; } /* end of [reader0_uninitize_14] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 5915(line=261, offs=1) -- 6056(line=271, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_filp (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_filp: /* tmp38 = */ reader0_initize_filp_1 (arg0, arg1) ; return /* (tmp38) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_filp] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 6143(line=277, offs=3) -- 6254(line=284, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_getc (ats_ref_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_getc: /* tmp39 = */ reader0_initize_getc_4 (arg0, arg1) ; return /* (tmp39) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_getc] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_ats_size_type () { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; __ats_lab_ptr_alloc_01070_ats_size_type: tmp42 = atspre_ptr_alloc_tsz (sizeof(ats_size_type)) ; return (tmp42) ; } /* end of [ptr_alloc_01070_ats_size_type] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 6343(line=290, offs=3) -- 6576(line=302, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_string (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_size_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_string: tmp41 = ptr_alloc_01070_ats_size_type () ; tmp43 = ats_selsin_mac(tmp41, atslab_2) ; tmp44 = atspre_size1_of_int1 (0) ; ats_ptrget_mac(ats_size_type, tmp43) = tmp44 ; /* tmp40 = */ reader0_initize_string_6 (arg0, ats_castfn_mac(ats_ptr_type, arg1), tmp43) ; return /* (tmp40) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_string] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_ats_ptr_type () { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; __ats_lab_ptr_alloc_01070_ats_ptr_type: tmp47 = atspre_ptr_alloc_tsz (sizeof(ats_ptr_type)) ; return (tmp47) ; } /* end of [ptr_alloc_01070_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 6674(line=308, offs=3) -- 6879(line=323, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_charlst_vt (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_charlst_vt: tmp46 = ptr_alloc_01070_ats_ptr_type () ; tmp48 = ats_selsin_mac(tmp46, atslab_2) ; ats_ptrget_mac(ats_ptr_type, tmp48) = arg1 ; /* tmp45 = */ reader0_initize_charlst_vt_9 (arg0, tmp48) ; return /* (tmp45) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_initize_charlst_vt] */ /* // /tmp/ATS-Postiats/src/pats_reader.dats: 6972(line=329, offs=3) -- 7068(line=335, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_uninitize (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_uninitize: /* tmp49 = */ reader0_uninitize_14 (arg0) ; return /* (tmp49) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__reader_uninitize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_reader_2esats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2stdio_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__reader0_encode_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_reader_2edats__reader0_decode_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_reader_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_sats.c0000644000175000017500000002762213431250607021766 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_1 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1rt_tr_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s2var_check_tmplev_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_effvar_tr_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trup_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trup_app_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trdn_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trdn_impred_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s2exp_trdn_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_S1Ed2ctype_tr_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1arg_trdn_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1marg_trdn_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sp1at_trdn_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_sort_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_sort_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_repeat_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_missing_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_q1marg_tr_dec_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1rtext_tr_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1expdef_tr_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1aspdec_tr_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1aspdec_tr_arg_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1aspdec_tr_res_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_re1assume_tr_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1atcon_tr_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1atdec_tr_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_macdef_check_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_macvar_check_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_p1at_tr_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1exp_tr_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1exp_tr_ann_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_i1nvarg_tr_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_c1lau_tr_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_f1undec_tr_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1cstdec_tr_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_prv1ardec_tr_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_nontop_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_tmparg_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_overload_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_overload_def_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_staloadnm_40) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1rt_tr_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s2var_check_tmplev_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_effvar_tr_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trup_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trup_app_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trdn_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trdn_impred_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s2exp_trdn_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_S1Ed2ctype_tr_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1arg_trdn_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1marg_trdn_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sp1at_trdn_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_sort_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_sort_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_repeat_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sc2laulst_coverck_missing_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_q1marg_tr_dec_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1rtext_tr_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1expdef_tr_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1aspdec_tr_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1aspdec_tr_arg_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1aspdec_tr_res_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_re1assume_tr_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1atcon_tr_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1atdec_tr_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_macdef_check_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_macvar_check_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_p1at_tr_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1exp_tr_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1exp_tr_ann_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_i1nvarg_tr_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_c1lau_tr_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_f1undec_tr_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1cstdec_tr_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_prv1ardec_tr_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_nontop_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_tmparg_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_overload_38.tag = 38 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_overload_def_39.tag = 39 ; // _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_staloadnm_40.tag = 40 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_looping_dats.c0000644000175000017500000006031313431250607023360 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloop_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEloopexn_53) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loop) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loopexn) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopfini) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopcont) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_loopexnenv) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_loopexnenv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_looping.dats: 1578(line=50, offs=3) -- 3006(line=112, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loop (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; // ATSlocal_void (tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loop: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_hidexp_loc) ; tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_hidexp_type) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp3)->tag != 52) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_looping.dats: 1664(line=54, offs=5) -- 1715(line=54, offs=56)") ; } tmp4 = ats_caselptrlab_mac(anairiats_sum_1, tmp3, atslab_0) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_1, tmp3, atslab_1) ; tmp6 = ats_caselptrlab_mac(anairiats_sum_1, tmp3, atslab_2) ; tmp7 = ats_caselptrlab_mac(anairiats_sum_1, tmp3, atslab_3) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp4 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_2, tmp4, atslab_0) ; /* ats_ptr_type tmp10 ; */ tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, tmp10, tmp9) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp10) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (tmp4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp8 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp1) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp1) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (tmp6 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmplab_make (tmp1) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp14 = tmp12 ; break ; } while (0) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_loopexnenv (arg0, tmp12, tmp13, tmp14) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, tmp16, tmp5) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp16) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp6 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_2, tmp6, atslab_0) ; /* ats_ptr_type tmp21 ; */ tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, tmp21, tmp20) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp21) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp19 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, tmp23, tmp7) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp23) ; /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_loopexnenv (arg0) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loop (tmp1, tmp12, tmp13, tmp14, tmp8, tmp17, tmp18, tmp19, tmp25) ; /* tmp28 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp27) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp1, tmp2) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loop] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_looping.dats: 3092(line=118, offs=3) -- 3483(line=138, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loopexn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_int_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_bool_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; // ATSlocal_void (tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loopexn: tmp30 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_hidexp_loc) ; tmp31 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_hidexp_type) ; tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg2), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp32)->tag != 53) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_looping.dats: 3178(line=122, offs=5) -- 3214(line=122, offs=41)") ; } tmp33 = ats_caselptrlab_mac(anairiats_sum_3, tmp32, atslab_0) ; tmp35 = atspre_eq_int_int (tmp33, 0) ; if (tmp35) { tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopfini (arg0) ; } else { tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_loopcont (arg0) ; } /* end of [if] */ tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_loopexn (tmp30, tmp33, tmp34) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp36) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_empty (tmp30, tmp31) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_loopexn] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_looping_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_looping_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_histaexp_funlab_dats.c0000644000175000017500000003607413431250607023713 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* external dynamic constructor declarations */ /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_histaexp_funlab.dats: 1829(line=65, offs=3) -- 1930(line=69, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_funlab (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_funlab: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_name (ats_castfn_mac(ats_ptr_type, arg1)) ; /* tmp0 = */ atspre_fprint_string (arg0, tmp1) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_funlab] */ /* // /tmp/ATS-Postiats/src/pats_histaexp_funlab.dats: 1981(line=72, offs=14) -- 2018(line=72, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__print_funlab (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__print_funlab: /* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_funlab (stdout, arg0) ; return /* (tmp2) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__print_funlab] */ /* // /tmp/ATS-Postiats/src/pats_histaexp_funlab.dats: 2042(line=74, offs=14) -- 2079(line=74, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_funlab (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_funlab: /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_funlab (stderr, arg0) ; return /* (tmp3) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__prerr_funlab] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_funlab_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_histaexp_funlab_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_lexing_token_dats.c0000644000175000017500000044624113431250607023226 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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" /* external codes at top */ typedef ats_ptr_type string ; typedef ats_ptr_type tnode ; /* type definitions */ typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_2 ; typedef struct { string atslab_0 ; tnode atslab_1 ; } anairiats_rec_3 ; 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_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infix_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixl_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_prefix_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_postfix_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fnx_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfn_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfun_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_praxi_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_castfn_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_prval_3) ; 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_AT_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BAR_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BANG_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BQUOTE_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLON_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOLLAR_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOT_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOTDOT_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQ_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGT_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLT_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLTGT_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGT_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGTGT_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGTGT_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_HASH_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LT_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GT_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTLT_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLT_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTDOT_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLTGTDOT_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSGT_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLT_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLTGT_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TILDE_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ABSTYPE_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ASSUME_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REASSUME_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AS_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AND_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BEGIN_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CASE_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CLASSDEC_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATASORT_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATATYPE_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DO_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ELSE_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_END_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXCEPTION_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTERN_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTYPE_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTVAR_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIX_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FIXITY_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOR_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FORSTAR_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FUN_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IF_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IFCASE_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPLEMENT_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPORT_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IN_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LAM_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LET_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LOCAL_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MACDEF_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONFIX_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OF_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OP_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REC_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SIF_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SCASE_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STACST_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STADEF_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STATIC_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SORTDEF_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMELIM_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMINTR_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMLOAD_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_THEN_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TKINDEF_76) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TRY_77) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPE_78) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TYPEDEF_79) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAL_80) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAR_81) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHEN_82) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHERE_83) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILE_84) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILESTAR_85) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITH_86) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITHTYPE_87) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ADDRAT_88) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOLDAT_89) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FREEAT_90) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VIEWAT_91) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRDELAY_92) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRARRPSZ_93) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTYREP_94) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRD2CTYPE_95) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_96) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_ARG_97) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTERN_98) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_99) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTKIND_100) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_STRUCT_101) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTVAL_102) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTFCALL_103) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTMCALL_104) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLITERAL_105) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFILENAME_106) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYLOCATION_107) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFUNCTION_108) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLST_109) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRREC_110) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTUP_111) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRBREAK_112) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRCONTINUE_113) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRRAISE_114) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVARARG_115) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVCOPYENV_116) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSHOWTYPE_117) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTEMPENVER_118) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLASSERT_119) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLVERIFY_120) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIF_121) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFDEF_122) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFNDEF_123) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPTHEN_124) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIF_125) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFDEF_126) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFNDEF_127) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELSE_128) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPENDIF_129) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPERROR_130) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRERR_131) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRINT_132) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPASSERT_133) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPUNDEF_134) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDEFINE_135) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPINCLUDE_136) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPSTALOAD_137) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDYNLOAD_138) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPREQUIRE_139) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRAGMA_140) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN2_141) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN3_142) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_alp_143) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_INT_150) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_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) ; /* external dynamic constant declarations */ 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_bool_type, atspre_gt_int_int) (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_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_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_compare_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ulint_type, atspre_string_hash_33) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSTYPE) ; 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__ABSPROP) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEW) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWTYPE) ; 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__DATATYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAPROP) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVIEW) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVTYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FN) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FNX) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FUN) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFN) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFUN) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRAXI) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASTFN) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLMNT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLEMENT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRIMPLMNT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIX) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PREFIX) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__POSTFIX) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACDEF) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACRODEF) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPEDEF) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROPDEF) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWDEF) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPEDEF) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAR) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHTYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHPROP) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEW) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEWTYPE) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRDELAY) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLDELAY) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_NTM) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_EXN) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_REF) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_WRT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_ALL) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_T) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_VT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_T) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_VT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_T) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_VT) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_V) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_VT) ; 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) ; /* 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_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_token_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats____assert1_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats____assert2_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DOT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__QMARK) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PERCENT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSTYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABST0YPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSPROP) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEW) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWTYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATATYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAPROP) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVIEW) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVTYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIX) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIXAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FN) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FNX) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FUN) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFN) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFUN) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRAXI) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASTFN) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLMNT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLEMENT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRIMPLMNT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIX) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PREFIX) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__POSTFIX) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAM) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAMAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAM) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAMAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACDEF) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACRODEF) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TKINDEF) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TFLT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TBOX) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTBOX) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTFLT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROPDEF) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWDEF) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPEDEF) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPEDEF) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_pos) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_neg) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FORSTAR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILESTAR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHTYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHPROP) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEW) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEWTYPE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDR) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDRAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLD) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLDAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREE) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREEAT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRDELAY) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLDELAY) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_NTM) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_EXN) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_REF) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_WRT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_ALL) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_T) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_VT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_T) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_VT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_T) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_VT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_V) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_VT) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INTZERO) ; /* internal function declarations */ static ats_void_type keyitem_nullify_02069_anairiats_rec_3 (ats_ref_type arg0) ; static ats_bool_type keyitem_isnot_null_02070_anairiats_rec_3 (ats_ref_type arg0) ; static ats_ulint_type hash_key_02064_string (string arg0, ats_clo_ref_type arg1) ; static ats_bool_type equal_key_key_02065_string (string arg0, string arg1, ats_clo_ref_type arg2) ; static ats_ptr_type atslib_hashtbl_make_hint__linprb_string_2ctnode (ats_clo_ref_type arg0, ats_clo_ref_type arg1, ats_size_type arg2) ; static ats_ptr_type hashtbl_ptr_split_049_string_2ctnode (ats_ptr_type arg0, ats_size_type arg1) ; static ats_void_type loop_10 (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_10_closure_make (string env0, ats_clo_ref_type env1) ; static ats_void_type loop_10_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_057_string_2ctnode (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_0106_string_2ctnode (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_0127_string_2ctnode (ats_ptr_type arg0, ats_size_type arg1) ; static ats_bool_type hashtbl_insert_02076_string_2ctnode (ats_ptr_type arg0, string arg1, tnode arg2, ats_ref_type arg3) ; static ats_void_type insert_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type hashtbl_search_02075_string_2ctnode (ats_ptr_type arg0, string arg1, ats_ref_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp2) ; ATSstatic (ats_ptr_type, statmp3) ; ATSstatic (ats_ptr_type, statmp4) ; ATSstatic (ats_ptr_type, statmp5) ; ATSstatic (ats_ptr_type, statmp6) ; ATSstatic (ats_ptr_type, statmp7) ; ATSstatic (ats_ptr_type, statmp8) ; ATSstatic (ats_ptr_type, statmp9) ; ATSstatic (ats_ptr_type, statmp10) ; ATSstatic (ats_ptr_type, statmp11) ; ATSstatic (ats_ptr_type, statmp12) ; ATSstatic (ats_ptr_type, statmp13) ; ATSstatic (ats_ptr_type, statmp14) ; ATSstatic (ats_ptr_type, statmp15) ; ATSstatic (ats_ptr_type, statmp16) ; ATSstatic (ats_ptr_type, statmp17) ; ATSstatic (ats_ptr_type, statmp18) ; ATSstatic (ats_ptr_type, statmp19) ; ATSstatic (ats_ptr_type, statmp20) ; ATSstatic (ats_ptr_type, statmp21) ; ATSstatic (ats_ptr_type, statmp22) ; ATSstatic (ats_ptr_type, statmp23) ; ATSstatic (ats_ptr_type, statmp24) ; ATSstatic (ats_ptr_type, statmp25) ; ATSstatic (ats_ptr_type, statmp26) ; ATSstatic (ats_ptr_type, statmp27) ; ATSstatic (ats_ptr_type, statmp28) ; ATSstatic (ats_ptr_type, statmp29) ; ATSstatic (ats_ptr_type, statmp30) ; ATSstatic (ats_ptr_type, statmp31) ; ATSstatic (ats_ptr_type, statmp32) ; ATSstatic (ats_ptr_type, statmp33) ; ATSstatic (ats_ptr_type, statmp34) ; ATSstatic (ats_ptr_type, statmp35) ; ATSstatic (ats_ptr_type, statmp36) ; ATSstatic (ats_ptr_type, statmp37) ; ATSstatic (ats_ptr_type, statmp38) ; ATSstatic (ats_ptr_type, statmp39) ; ATSstatic (ats_ptr_type, statmp40) ; ATSstatic (ats_ptr_type, statmp41) ; ATSstatic (ats_ptr_type, statmp42) ; ATSstatic (ats_ptr_type, statmp43) ; ATSstatic (ats_ptr_type, statmp44) ; ATSstatic (ats_ptr_type, statmp45) ; ATSstatic (ats_ptr_type, statmp46) ; ATSstatic (ats_ptr_type, statmp47) ; ATSstatic (ats_ptr_type, statmp48) ; ATSstatic (ats_ptr_type, statmp49) ; ATSstatic (ats_ptr_type, statmp50) ; ATSstatic (ats_ptr_type, statmp51) ; ATSstatic (ats_ptr_type, statmp52) ; ATSstatic (ats_ptr_type, statmp53) ; ATSstatic (ats_ptr_type, statmp54) ; ATSstatic (ats_ptr_type, statmp55) ; ATSstatic (ats_ptr_type, statmp56) ; ATSstatic (ats_ptr_type, statmp57) ; ATSstatic (ats_ptr_type, statmp58) ; ATSstatic (ats_ptr_type, statmp59) ; ATSstatic (ats_ptr_type, statmp60) ; ATSstatic (ats_ptr_type, statmp61) ; ATSstatic (ats_ptr_type, statmp62) ; ATSstatic (ats_ptr_type, statmp63) ; ATSstatic (ats_ptr_type, statmp64) ; ATSstatic (ats_ptr_type, statmp65) ; ATSstatic (ats_ptr_type, statmp66) ; ATSstatic (ats_ptr_type, statmp67) ; ATSstatic (ats_ptr_type, statmp68) ; ATSstatic (ats_ptr_type, statmp69) ; ATSstatic (ats_ptr_type, statmp70) ; ATSstatic (ats_ptr_type, statmp71) ; ATSstatic (ats_ptr_type, statmp72) ; ATSstatic (ats_ptr_type, statmp73) ; ATSstatic (ats_ptr_type, statmp74) ; ATSstatic (ats_ptr_type, statmp75) ; ATSstatic (ats_ptr_type, statmp76) ; ATSstatic (ats_ptr_type, statmp77) ; ATSstatic (ats_ptr_type, statmp78) ; ATSstatic (ats_ptr_type, statmp79) ; ATSstatic (ats_ptr_type, statmp80) ; ATSstatic (ats_ptr_type, statmp81) ; ATSstatic (ats_ptr_type, statmp82) ; ATSstatic (ats_ptr_type, statmp83) ; ATSstatic (ats_ptr_type, statmp84) ; ATSstatic (ats_ptr_type, statmp85) ; ATSstatic (ats_ptr_type, statmp86) ; ATSstatic (ats_ptr_type, statmp87) ; ATSstatic (ats_ptr_type, statmp88) ; ATSstatic (ats_ptr_type, statmp89) ; ATSstatic (ats_ptr_type, statmp90) ; ATSstatic (ats_ptr_type, statmp91) ; ATSstatic (ats_ptr_type, statmp92) ; ATSstatic (ats_ptr_type, statmp93) ; ATSstatic (ats_ptr_type, statmp94) ; ATSstatic (ats_ptr_type, statmp95) ; ATSstatic (ats_ptr_type, statmp96) ; ATSstatic (ats_ptr_type, statmp97) ; ATSstatic (ats_ptr_type, statmp98) ; ATSstatic (ats_ptr_type, statmp99) ; ATSstatic (ats_ptr_type, statmp100) ; ATSstatic (ats_ptr_type, statmp101) ; ATSstatic (ats_ptr_type, statmp102) ; ATSstatic (ats_ptr_type, statmp103) ; ATSstatic (ats_ptr_type, statmp104) ; ATSstatic (ats_ptr_type, statmp105) ; ATSstatic (ats_ptr_type, statmp106) ; ATSstatic (ats_ptr_type, statmp107) ; ATSstatic (ats_ptr_type, statmp108) ; ATSstatic (ats_ptr_type, statmp109) ; ATSstatic (ats_ptr_type, statmp110) ; ATSstatic (ats_ptr_type, statmp111) ; ATSstatic (ats_ptr_type, statmp112) ; ATSstatic (ats_ptr_type, statmp113) ; ATSstatic (ats_ptr_type, statmp114) ; ATSstatic (ats_ptr_type, statmp115) ; ATSstatic (ats_ptr_type, statmp116) ; ATSstatic (ats_ptr_type, statmp117) ; ATSstatic (ats_ptr_type, statmp118) ; ATSstatic (ats_ptr_type, statmp119) ; ATSstatic (ats_ptr_type, statmp120) ; ATSstatic (ats_ptr_type, statmp121) ; ATSstatic (ats_ptr_type, statmp122) ; ATSstatic (ats_ptr_type, statmp123) ; ATSstatic (ats_ptr_type, statmp124) ; ATSstatic (ats_ptr_type, statmp125) ; ATSstatic (ats_ptr_type, statmp126) ; ATSstatic (ats_ptr_type, statmp135) ; // ATSstatic_void (statmp204) ; ATSstatic (ats_ptr_type, statmp205) ; // ATSstatic_void (statmp206) ; ATSstatic (ats_ptr_type, statmp207) ; // ATSstatic_void (statmp208) ; ATSstatic (ats_ptr_type, statmp209) ; // ATSstatic_void (statmp210) ; ATSstatic (ats_ptr_type, statmp211) ; // ATSstatic_void (statmp212) ; ATSstatic (ats_ptr_type, statmp213) ; // ATSstatic_void (statmp214) ; ATSstatic (ats_ptr_type, statmp215) ; // ATSstatic_void (statmp216) ; ATSstatic (ats_ptr_type, statmp217) ; // ATSstatic_void (statmp218) ; ATSstatic (ats_ptr_type, statmp219) ; // ATSstatic_void (statmp220) ; ATSstatic (ats_ptr_type, statmp221) ; // ATSstatic_void (statmp222) ; ATSstatic (ats_ptr_type, statmp223) ; // ATSstatic_void (statmp224) ; ATSstatic (ats_ptr_type, statmp225) ; // ATSstatic_void (statmp226) ; ATSstatic (ats_ptr_type, statmp227) ; // ATSstatic_void (statmp228) ; ATSstatic (ats_ptr_type, statmp229) ; // ATSstatic_void (statmp230) ; ATSstatic (ats_ptr_type, statmp231) ; // ATSstatic_void (statmp232) ; ATSstatic (ats_ptr_type, statmp233) ; // ATSstatic_void (statmp234) ; ATSstatic (ats_ptr_type, statmp235) ; // ATSstatic_void (statmp236) ; ATSstatic (ats_ptr_type, statmp237) ; // ATSstatic_void (statmp238) ; ATSstatic (ats_ptr_type, statmp239) ; // ATSstatic_void (statmp240) ; ATSstatic (ats_ptr_type, statmp241) ; // ATSstatic_void (statmp242) ; ATSstatic (ats_ptr_type, statmp243) ; // ATSstatic_void (statmp244) ; ATSstatic (ats_ptr_type, statmp245) ; // ATSstatic_void (statmp246) ; ATSstatic (ats_ptr_type, statmp247) ; // ATSstatic_void (statmp248) ; ATSstatic (ats_ptr_type, statmp249) ; // ATSstatic_void (statmp250) ; ATSstatic (ats_ptr_type, statmp251) ; // ATSstatic_void (statmp252) ; ATSstatic (ats_ptr_type, statmp253) ; // ATSstatic_void (statmp254) ; ATSstatic (ats_ptr_type, statmp255) ; // ATSstatic_void (statmp256) ; ATSstatic (ats_ptr_type, statmp257) ; // ATSstatic_void (statmp258) ; // ATSstatic_void (statmp259) ; // ATSstatic_void (statmp260) ; // ATSstatic_void (statmp261) ; // ATSstatic_void (statmp262) ; // ATSstatic_void (statmp263) ; // ATSstatic_void (statmp264) ; // ATSstatic_void (statmp265) ; // ATSstatic_void (statmp266) ; // ATSstatic_void (statmp267) ; // ATSstatic_void (statmp268) ; // ATSstatic_void (statmp269) ; // ATSstatic_void (statmp270) ; // ATSstatic_void (statmp271) ; // ATSstatic_void (statmp272) ; ATSstatic (ats_ptr_type, statmp273) ; // ATSstatic_void (statmp274) ; ATSstatic (ats_ptr_type, statmp275) ; // ATSstatic_void (statmp276) ; ATSstatic (ats_ptr_type, statmp277) ; // ATSstatic_void (statmp278) ; ATSstatic (ats_ptr_type, statmp279) ; // ATSstatic_void (statmp280) ; ATSstatic (ats_ptr_type, statmp281) ; // ATSstatic_void (statmp282) ; ATSstatic (ats_ptr_type, statmp283) ; // ATSstatic_void (statmp284) ; ATSstatic (ats_ptr_type, statmp285) ; // ATSstatic_void (statmp286) ; ATSstatic (ats_ptr_type, statmp287) ; // ATSstatic_void (statmp288) ; ATSstatic (ats_ptr_type, statmp289) ; // ATSstatic_void (statmp290) ; // ATSstatic_void (statmp291) ; // ATSstatic_void (statmp292) ; // ATSstatic_void (statmp293) ; // ATSstatic_void (statmp294) ; // ATSstatic_void (statmp295) ; ATSstatic (ats_ptr_type, statmp296) ; // ATSstatic_void (statmp297) ; ATSstatic (ats_ptr_type, statmp298) ; // ATSstatic_void (statmp299) ; ATSstatic (ats_ptr_type, statmp300) ; // ATSstatic_void (statmp301) ; ATSstatic (ats_ptr_type, statmp302) ; // ATSstatic_void (statmp303) ; ATSstatic (ats_ptr_type, statmp304) ; // ATSstatic_void (statmp305) ; ATSstatic (ats_ptr_type, statmp306) ; // ATSstatic_void (statmp307) ; // ATSstatic_void (statmp308) ; // ATSstatic_void (statmp309) ; // ATSstatic_void (statmp310) ; // ATSstatic_void (statmp311) ; // ATSstatic_void (statmp312) ; // ATSstatic_void (statmp313) ; // ATSstatic_void (statmp314) ; ATSstatic (ats_ptr_type, statmp315) ; // ATSstatic_void (statmp316) ; ATSstatic (ats_ptr_type, statmp317) ; // ATSstatic_void (statmp318) ; ATSstatic (ats_ptr_type, statmp319) ; // ATSstatic_void (statmp320) ; ATSstatic (ats_ptr_type, statmp321) ; // ATSstatic_void (statmp322) ; ATSstatic (ats_ptr_type, statmp323) ; // ATSstatic_void (statmp324) ; // ATSstatic_void (statmp325) ; // ATSstatic_void (statmp326) ; // ATSstatic_void (statmp327) ; // ATSstatic_void (statmp328) ; // ATSstatic_void (statmp329) ; // ATSstatic_void (statmp330) ; // ATSstatic_void (statmp331) ; // ATSstatic_void (statmp332) ; // ATSstatic_void (statmp333) ; ATSstatic (ats_ptr_type, statmp334) ; // ATSstatic_void (statmp335) ; ATSstatic (ats_ptr_type, statmp336) ; // ATSstatic_void (statmp337) ; ATSstatic (ats_ptr_type, statmp338) ; // ATSstatic_void (statmp339) ; // ATSstatic_void (statmp340) ; // ATSstatic_void (statmp341) ; ATSstatic (ats_ptr_type, statmp342) ; // ATSstatic_void (statmp343) ; ATSstatic (ats_ptr_type, statmp344) ; // ATSstatic_void (statmp345) ; ATSstatic (ats_ptr_type, statmp346) ; // ATSstatic_void (statmp347) ; ATSstatic (ats_ptr_type, statmp348) ; // ATSstatic_void (statmp349) ; ATSstatic (ats_ptr_type, statmp350) ; // ATSstatic_void (statmp351) ; ATSstatic (ats_ptr_type, statmp352) ; // ATSstatic_void (statmp353) ; ATSstatic (ats_ptr_type, statmp354) ; // ATSstatic_void (statmp355) ; ATSstatic (ats_ptr_type, statmp356) ; // ATSstatic_void (statmp357) ; ATSstatic (ats_ptr_type, statmp358) ; // ATSstatic_void (statmp359) ; ATSstatic (ats_ptr_type, statmp360) ; // ATSstatic_void (statmp361) ; ATSstatic (ats_ptr_type, statmp362) ; // ATSstatic_void (statmp363) ; ATSstatic (ats_ptr_type, statmp364) ; // ATSstatic_void (statmp365) ; ATSstatic (ats_ptr_type, statmp366) ; // ATSstatic_void (statmp367) ; ATSstatic (ats_ptr_type, statmp368) ; // ATSstatic_void (statmp369) ; ATSstatic (ats_ptr_type, statmp370) ; // ATSstatic_void (statmp371) ; ATSstatic (ats_ptr_type, statmp372) ; // ATSstatic_void (statmp373) ; ATSstatic (ats_ptr_type, statmp374) ; // ATSstatic_void (statmp375) ; ATSstatic (ats_ptr_type, statmp376) ; // ATSstatic_void (statmp377) ; ATSstatic (ats_ptr_type, statmp378) ; // ATSstatic_void (statmp379) ; // ATSstatic_void (statmp380) ; // ATSstatic_void (statmp381) ; // ATSstatic_void (statmp382) ; // ATSstatic_void (statmp383) ; // ATSstatic_void (statmp384) ; // ATSstatic_void (statmp385) ; // ATSstatic_void (statmp386) ; // ATSstatic_void (statmp387) ; ATSstatic (ats_ptr_type, statmp388) ; // ATSstatic_void (statmp389) ; ATSstatic (ats_ptr_type, statmp390) ; // ATSstatic_void (statmp391) ; ATSstatic (ats_ptr_type, statmp392) ; // ATSstatic_void (statmp393) ; // ATSstatic_void (statmp394) ; // ATSstatic_void (statmp395) ; // ATSstatic_void (statmp396) ; // ATSstatic_void (statmp397) ; // ATSstatic_void (statmp398) ; // ATSstatic_void (statmp399) ; // ATSstatic_void (statmp400) ; ATSstatic (ats_ptr_type, statmp401) ; // ATSstatic_void (statmp402) ; ATSstatic (ats_ptr_type, statmp403) ; // ATSstatic_void (statmp404) ; ATSstatic (ats_ptr_type, statmp405) ; // ATSstatic_void (statmp406) ; ATSstatic (ats_ptr_type, statmp407) ; // ATSstatic_void (statmp408) ; // ATSstatic_void (statmp409) ; // ATSstatic_void (statmp410) ; // ATSstatic_void (statmp411) ; // ATSstatic_void (statmp412) ; // ATSstatic_void (statmp413) ; // ATSstatic_void (statmp414) ; ATSstatic (ats_ptr_type, statmp415) ; // ATSstatic_void (statmp416) ; ATSstatic (ats_ptr_type, statmp417) ; // ATSstatic_void (statmp418) ; ATSstatic (ats_ptr_type, statmp419) ; // ATSstatic_void (statmp420) ; ATSstatic (ats_ptr_type, statmp421) ; // ATSstatic_void (statmp422) ; ATSstatic (ats_ptr_type, statmp423) ; // ATSstatic_void (statmp424) ; ATSstatic (ats_ptr_type, statmp425) ; // ATSstatic_void (statmp426) ; ATSstatic (ats_ptr_type, statmp427) ; // ATSstatic_void (statmp428) ; ATSstatic (ats_ptr_type, statmp429) ; // ATSstatic_void (statmp430) ; ATSstatic (ats_ptr_type, statmp431) ; // ATSstatic_void (statmp432) ; ATSstatic (ats_ptr_type, statmp433) ; // ATSstatic_void (statmp434) ; ATSstatic (ats_ptr_type, statmp435) ; // ATSstatic_void (statmp436) ; // ATSstatic_void (statmp437) ; // ATSstatic_void (statmp438) ; // ATSstatic_void (statmp439) ; // ATSstatic_void (statmp440) ; // ATSstatic_void (statmp441) ; // ATSstatic_void (statmp442) ; // ATSstatic_void (statmp443) ; // ATSstatic_void (statmp444) ; // ATSstatic_void (statmp445) ; // ATSstatic_void (statmp446) ; // ATSstatic_void (statmp447) ; // ATSstatic_void (statmp448) ; // ATSstatic_void (statmp449) ; // ATSstatic_void (statmp450) ; // ATSstatic_void (statmp451) ; // ATSstatic_void (statmp452) ; // ATSstatic_void (statmp453) ; // ATSstatic_void (statmp454) ; ATSstatic (ats_ptr_type, statmp455) ; // ATSstatic_void (statmp456) ; ATSstatic (ats_ptr_type, statmp457) ; // ATSstatic_void (statmp458) ; ATSstatic (ats_ptr_type, statmp459) ; // ATSstatic_void (statmp460) ; ATSstatic (ats_ptr_type, statmp461) ; // ATSstatic_void (statmp462) ; // ATSstatic_void (statmp463) ; // ATSstatic_void (statmp464) ; ATSstatic (ats_ptr_type, statmp465) ; // ATSstatic_void (statmp466) ; ATSstatic (ats_ptr_type, statmp467) ; // ATSstatic_void (statmp468) ; ATSstatic (ats_ptr_type, statmp469) ; // ATSstatic_void (statmp470) ; ATSstatic (ats_ptr_type, statmp471) ; // ATSstatic_void (statmp472) ; ATSstatic (ats_ptr_type, statmp473) ; // ATSstatic_void (statmp474) ; ATSstatic (ats_ptr_type, statmp475) ; // ATSstatic_void (statmp476) ; ATSstatic (ats_ptr_type, statmp477) ; // ATSstatic_void (statmp478) ; ATSstatic (ats_ptr_type, statmp479) ; // ATSstatic_void (statmp480) ; ATSstatic (ats_ptr_type, statmp481) ; // ATSstatic_void (statmp482) ; ATSstatic (ats_ptr_type, statmp483) ; // ATSstatic_void (statmp484) ; ATSstatic (ats_ptr_type, statmp485) ; // ATSstatic_void (statmp486) ; ATSstatic (ats_ptr_type, statmp487) ; // ATSstatic_void (statmp488) ; ATSstatic (ats_ptr_type, statmp489) ; // ATSstatic_void (statmp490) ; ATSstatic (ats_ptr_type, statmp491) ; // ATSstatic_void (statmp492) ; ATSstatic (ats_ptr_type, statmp493) ; // ATSstatic_void (statmp494) ; ATSstatic (ats_ptr_type, statmp495) ; // ATSstatic_void (statmp496) ; ATSstatic (ats_ptr_type, statmp497) ; // ATSstatic_void (statmp498) ; ATSstatic (ats_ptr_type, statmp499) ; // ATSstatic_void (statmp500) ; ATSstatic (ats_ptr_type, statmp501) ; // ATSstatic_void (statmp502) ; ATSstatic (ats_ptr_type, statmp503) ; // ATSstatic_void (statmp504) ; ATSstatic (ats_ptr_type, statmp505) ; // ATSstatic_void (statmp506) ; ATSstatic (ats_ptr_type, statmp507) ; // ATSstatic_void (statmp508) ; ATSstatic (ats_ptr_type, statmp509) ; // ATSstatic_void (statmp510) ; ATSstatic (ats_ptr_type, statmp511) ; // ATSstatic_void (statmp512) ; ATSstatic (ats_ptr_type, statmp513) ; // ATSstatic_void (statmp514) ; ATSstatic (ats_ptr_type, statmp515) ; // ATSstatic_void (statmp516) ; ATSstatic (ats_ptr_type, statmp517) ; // ATSstatic_void (statmp518) ; ATSstatic (ats_ptr_type, statmp519) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_lexing_token.dats: 7161(line=291, offs=3) -- 7304(line=295, offs=36) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_is_comment (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_is_comment: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg0)->tag != 174) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp127 = ats_true_bool ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg0)->tag != 175) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp127 = ats_true_bool ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg0)->tag != 176) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp127 = ats_true_bool ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp127 = ats_false_bool ; break ; } while (0) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_is_comment] */ /* // /tmp/ATS-Postiats/src/pats_lexing_token.dats: 8124(line=333, offs=3) -- 8323(line=345, offs=2) */ ATSstaticdec() ats_void_type keyitem_nullify_02069_anairiats_rec_3 (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp128) ; __ats_lab_keyitem_nullify_02069_anairiats_rec_3: ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_0) = ats_castfn_mac(string, atspre_null_ptr) ; return /* (tmp128) */ ; } /* end of [keyitem_nullify_02069_anairiats_rec_3] */ /* // /tmp/ATS-Postiats/src/pats_lexing_token.dats: 8397(line=349, offs=3) -- 8692(line=366, offs=2) */ ATSstaticdec() ats_bool_type keyitem_isnot_null_02070_anairiats_rec_3 (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp129) ; ATSlocal (ats_bool_type, tmp130) ; ATSlocal (string, tmp131) ; __ats_lab_keyitem_isnot_null_02070_anairiats_rec_3: tmp131 = ats_select_mac(ats_ptrget_mac(anairiats_rec_3, arg0), atslab_0) ; tmp130 = atspre_pneq (ats_castfn_mac(ats_ptr_type, tmp131), atspre_null_ptr) ; tmp129 = ats_castfn_mac(ats_bool_type, tmp130) ; return (tmp129) ; } /* end of [keyitem_isnot_null_02070_anairiats_rec_3] */ /* // /tmp/ATS-Postiats/src/pats_lexing_token.dats: 8835(line=373, offs=3) -- 8868(line=373, offs=36) */ ATSstaticdec() ats_ulint_type hash_key_02064_string (string arg0, ats_clo_ref_type arg1) { /* local vardec */ ATSlocal (ats_ulint_type, tmp132) ; __ats_lab_hash_key_02064_string: tmp132 = atspre_string_hash_33 (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp132) ; } /* end of [hash_key_02064_string] */ /* // /tmp/ATS-Postiats/src/pats_lexing_token.dats: 8905(line=377, offs=3) -- 8954(line=377, offs=52) */ ATSstaticdec() ats_bool_type equal_key_key_02065_string (string arg0, string arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; __ats_lab_equal_key_key_02065_string: tmp134 = atspre_compare_string_string (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; tmp133 = atspre_ieq (tmp134, 0) ; return (tmp133) ; } /* end of [equal_key_key_02065_string] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_2ctnode (ats_clo_ref_type arg0, ats_clo_ref_type arg1, ats_size_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp136) ; __ats_lab_atslib_hashtbl_make_hint__linprb_string_2ctnode: tmp136 = atslib_hashtbl_make_hint_tsz__linprb (arg0, arg1, arg2, sizeof(anairiats_rec_3)) ; return (tmp136) ; } /* end of [atslib_hashtbl_make_hint__linprb_string_2ctnode] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_049_string_2ctnode (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_size_type, tmp152) ; ATSlocal (ats_size_type, tmp153) ; __ats_lab_hashtbl_ptr_split_049_string_2ctnode: tmp152 = atspre_mul2_size1_size1 (arg1, sizeof(anairiats_rec_3)) ; tmp153 = ats_selsin_mac(tmp152, atslab_1) ; tmp151 = atspre_padd_size (arg0, tmp153) ; return (tmp151) ; } /* end of [hashtbl_ptr_split_049_string_2ctnode] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_10 (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 (tmp155) ; ATSlocal (ats_bool_type, tmp156) ; ATSlocal (ats_bool_type, tmp157) ; ATSlocal (string, tmp158) ; ATSlocal (ats_bool_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_size_type, tmp161) ; __ats_lab_loop_10: tmp156 = atspre_gt_size1_int1 (arg1, 0) ; if (tmp156) { tmp157 = keyitem_isnot_null_02070_anairiats_rec_3 (arg0) ; if (tmp157) { tmp158 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_0) ; tmp159 = equal_key_key_02065_string (env0, tmp158, env1) ; if (tmp159) { ats_ptrget_mac(ats_ptr_type, arg2) = arg0 ; ats_ptrget_mac(ats_bool_type, arg3) = ats_true_bool ; } else { tmp160 = atspre_padd_size (arg0, sizeof(anairiats_rec_3)) ; tmp161 = atspre_sub_size1_int1 (arg1, 1) ; arg0 = tmp160 ; arg1 = tmp161 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_loop_10 ; // tail call } /* end of [if] */ } else { ats_ptrget_mac(ats_ptr_type, arg2) = arg0 ; } /* end of [if] */ } else { /* empty */ } /* end of [if] */ return /* (tmp155) */ ; } /* end of [loop_10] */ typedef struct { ats_fun_ptr_type closure_fun ; string closure_env_0 ; ats_clo_ref_type closure_env_1 ; } loop_10_closure_type ; ats_void_type loop_10_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1, ats_ref_type arg2, ats_ref_type arg3) { loop_10 (((loop_10_closure_type*)cloptr)->closure_env_0, ((loop_10_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2, arg3) ; return ; } /* end of function */ ATSinline() ats_void_type loop_10_closure_init (loop_10_closure_type *p_clo, string env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&loop_10_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type loop_10_closure_make (string env0, ats_clo_ref_type env1) { loop_10_closure_type *p_clo = ATS_MALLOC(sizeof(loop_10_closure_type)) ; loop_10_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_057_string_2ctnode (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, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp162) ; // ATSlocal_void (tmp163) ; ATSlocal (ats_size_type, tmp164) ; // ATSlocal_void (tmp165) ; ATSlocal (ats_bool_type, tmp166) ; __ats_lab_hashtbl_ptr_probe_ofs_057_string_2ctnode: tmp150 = hashtbl_ptr_split_049_string_2ctnode (arg0, arg4) ; tmp154 = ats_selsin_mac(tmp150, atslab_2) ; /* ats_ptr_type tmp162 ; */ tmp162 = atspre_null_ptr ; ats_ptrget_mac(ats_bool_type, arg5) = ats_false_bool ; tmp164 = atspre_sub_size1_size1 (arg3, arg4) ; /* tmp163 = */ loop_10 (arg1, arg2, tmp154, tmp164, (&tmp162), arg5) ; tmp166 = atspre_peq (tmp162, atspre_null_ptr) ; if (tmp166) { /* tmp165 = */ loop_10 (arg1, arg2, arg0, arg4, (&tmp162), arg5) ; } else { /* empty */ } /* end of [if] */ tmp149 = tmp162 ; return (tmp149) ; } /* end of [hashtbl_ptr_probe_ofs_057_string_2ctnode] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_0106_string_2ctnode (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 (tmp185) ; ATSlocal (ats_bool_type, tmp186) ; ATSlocal (ats_bool_type, tmp187) ; ATSlocal (string, tmp189) ; ATSlocal (tnode, tmp190) ; ATSlocal (ats_ulint_type, tmp191) ; ATSlocal (ats_size_type, tmp192) ; ATSlocal (ats_bool_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_size_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; __ats_lab_hashtbl_ptr_relocate_0106_string_2ctnode: tmp186 = atspre_gt_size1_int1 (arg0, 0) ; if (tmp186) { tmp187 = keyitem_isnot_null_02070_anairiats_rec_3 (arg2) ; if (tmp187) { tmp189 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_0) ; tmp190 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_1) ; tmp191 = hash_key_02064_string (tmp189, arg4) ; tmp192 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp191), arg1) ; /* ats_bool_type tmp193 ; */ tmp194 = hashtbl_ptr_probe_ofs_057_string_2ctnode (arg3, tmp189, arg5, arg1, tmp192, (&tmp193)) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp194), atslab_0) = tmp189 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp194), atslab_1) = tmp190 ; } else { /* empty */ } /* end of [if] */ tmp195 = atspre_sub_size1_int1 (arg0, 1) ; tmp196 = atspre_padd_size (arg2, sizeof(anairiats_rec_3)) ; arg0 = tmp195 ; arg1 = arg1 ; arg2 = tmp196 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = arg5 ; goto __ats_lab_hashtbl_ptr_relocate_0106_string_2ctnode ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp185) */ ; } /* end of [hashtbl_ptr_relocate_0106_string_2ctnode] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_0127_string_2ctnode (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; // ATSlocal_void (tmp184) ; ATSlocal (ats_size_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_clo_ref_type, tmp199) ; ATSlocal (ats_clo_ref_type, tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; __ats_lab_hashtbl_resize_0127_string_2ctnode: tmp181 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp182 = atslib_hashtbl_ptr_make__linprb (arg1, sizeof(anairiats_rec_3)) ; tmp183 = ats_selsin_mac(tmp182, atslab_2) ; tmp197 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp181), atslab_sz) ; tmp198 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp181), atslab_pbeg) ; tmp199 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp181), atslab_hash) ; tmp200 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp181), atslab_eqfn) ; /* tmp184 = */ hashtbl_ptr_relocate_0106_string_2ctnode (tmp197, arg1, tmp198, tmp183, tmp199, tmp200) ; tmp202 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp181), atslab_pbeg) ; /* tmp201 = */ atslib_hashtbl_ptr_free__linprb (tmp202) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp181), atslab_sz) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp181), atslab_pbeg) = tmp183 ; return /* (tmp180) */ ; } /* end of [hashtbl_resize_0127_string_2ctnode] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02076_string_2ctnode (ats_ptr_type arg0, string arg1, tnode arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_bool_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ulint_type, tmp142) ; ATSlocal (ats_clo_ref_type, tmp143) ; ATSlocal (ats_size_type, tmp144) ; ATSlocal (ats_size_type, tmp145) ; ATSlocal (ats_bool_type, tmp146) ; ATSlocal (ats_int_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_clo_ref_type, tmp168) ; ATSlocal (ats_bool_type, tmp169) ; ATSlocal (tnode, tmp171) ; ATSlocal (ats_size_type, tmp172) ; ATSlocal (ats_size_type, tmp173) ; ATSlocal (ats_bool_type, tmp174) ; ATSlocal (ats_double_type, tmp175) ; ATSlocal (ats_double_type, tmp176) ; ATSlocal (ats_double_type, tmp177) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_bool_type, tmp179) ; ATSlocal (ats_size_type, tmp203) ; __ats_lab_hashtbl_insert_02076_string_2ctnode: tmp141 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp143 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp141), atslab_hash) ; tmp142 = hash_key_02064_string (arg1, tmp143) ; tmp144 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp141), atslab_sz) ; tmp145 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp142), tmp144) ; /* ats_bool_type tmp146 ; */ /* ats_int_type tmp147 ; */ tmp147 = 0 ; tmp167 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp141), atslab_pbeg) ; tmp168 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp141), atslab_eqfn) ; tmp148 = hashtbl_ptr_probe_ofs_057_string_2ctnode (tmp167, arg1, tmp168, tmp144, tmp145, (&tmp146)) ; tmp169 = ats_castfn_mac(ats_bool_type, tmp146) ; if (tmp169) { tmp171 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp148), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp148), atslab_1) = arg2 ; ats_ptrget_mac(tnode, arg3) = tmp171 ; } else { tmp172 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp141), atslab_tot) ; tmp173 = atspre_add_size_int (tmp172, 1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp141), atslab_tot) = tmp173 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp148), atslab_0) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp148), atslab_1) = arg2 ; tmp176 = atspre_double_of_size (tmp172) ; tmp175 = atspre_mul_int_double (2, tmp176) ; tmp177 = atspre_double_of_size (tmp144) ; tmp174 = atspre_gte_double_double (tmp175, tmp177) ; if (tmp174) { tmp147 = 1 ; } else { /* empty */ } /* end of [if] */ } /* end of [if] */ tmp179 = atspre_gt_int_int (tmp147, 0) ; if (tmp179) { tmp203 = atspre_add_size1_size1 (tmp144, tmp144) ; /* tmp178 = */ hashtbl_resize_0127_string_2ctnode (arg0, tmp203) ; } else { /* empty */ } /* end of [if] */ tmp140 = tmp169 ; return (tmp140) ; } /* end of [hashtbl_insert_02076_string_2ctnode] */ /* // /tmp/ATS-Postiats/src/pats_lexing_token.dats: 9040(line=382, offs=5) -- 9269(line=390, offs=2) */ ATSstaticdec() ats_void_type insert_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp137) ; ATSlocal (tnode, tmp138) ; ATSlocal (ats_bool_type, tmp139) ; __ats_lab_insert_6: /* tnode tmp138 ; */ tmp139 = hashtbl_insert_02076_string_2ctnode (arg0, ats_castfn_mac(string, arg1), ats_castfn_mac(tnode, arg2), (&tmp138)) ; return /* (tmp137) */ ; } /* end of [insert_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_02075_string_2ctnode (ats_ptr_type arg0, string arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ulint_type, tmp526) ; ATSlocal (ats_clo_ref_type, tmp527) ; ATSlocal (ats_size_type, tmp528) ; ATSlocal (ats_size_type, tmp529) ; ATSlocal (ats_bool_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_clo_ref_type, tmp533) ; ATSlocal (ats_size_type, tmp534) ; ATSlocal (tnode, tmp535) ; __ats_lab_hashtbl_search_02075_string_2ctnode: tmp525 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp527 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp525), atslab_hash) ; tmp526 = hash_key_02064_string (arg1, tmp527) ; tmp529 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp525), atslab_sz) ; tmp528 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp526), tmp529) ; /* ats_bool_type tmp530 ; */ tmp532 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp525), atslab_pbeg) ; tmp533 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp525), atslab_eqfn) ; tmp534 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp525), atslab_sz) ; tmp531 = hashtbl_ptr_probe_ofs_057_string_2ctnode (tmp532, arg1, tmp533, tmp534, tmp528, (&tmp530)) ; if (tmp530) { tmp535 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_3, tmp531), atslab_1) ; ats_ptrget_mac(tnode, arg2) = tmp535 ; tmp524 = ats_true_bool ; } else { tmp524 = ats_false_bool ; } /* end of [if] */ return (tmp524) ; } /* end of [hashtbl_search_02075_string_2ctnode] */ /* // /tmp/ATS-Postiats/src/pats_lexing_token.dats: 17406(line=719, offs=14) -- 17780(line=740, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (tnode, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; ATSlocal (ats_bool_type, tmp523) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search: /* tnode tmp521 ; */ tmp522 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, statmp135)), atslab_1) ; tmp523 = hashtbl_search_02075_string_2ctnode (tmp522, ats_castfn_mac(string, arg0), (&tmp521)) ; if (tmp523) { tmp520 = ats_castfn_mac(ats_ptr_type, tmp521) ; } else { tmp520 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONE_0) ; } /* end of [if] */ return (tmp520) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_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 () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2extern_2esats__minus_addback_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_token_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats____assert1_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_token_2edats____assert2_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp2, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp3, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp5, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp6, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp8, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp9, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp10, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp11, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp12, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp13, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp14, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp15, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp16, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp17, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp18, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp19, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp20, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp21, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp22, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp23, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp24, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp25, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp26, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp27, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp28, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp29, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp30, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp31, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp32, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp33, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp34, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp35, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp36, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp37, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp38, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp39, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp40, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp41, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp42, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp43, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp44, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp45, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp46, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp47, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp48, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp49, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp50, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp51, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp52, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp53, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp54, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp55, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp56, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp57, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp58, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp59, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp60, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp61, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp62, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp63, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp64, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp65, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp66, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp67, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp68, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp69, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp70, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp71, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp72, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp73, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp74, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp75, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp76, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp77, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp78, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp79, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp80, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp81, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp82, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp83, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp84, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp85, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp86, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp87, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp88, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp89, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp90, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp91, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp92, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp93, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp94, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp95, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp96, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp97, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp98, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp99, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp100, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp101, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp102, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp103, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp104, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp105, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp106, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp107, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp108, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp109, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp110, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp111, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp112, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp113, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp114, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp115, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp116, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp117, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp118, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp119, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp120, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp121, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp122, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp123, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp124, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp125, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp126, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp135, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp205, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp207, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp209, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp211, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp213, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp215, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp217, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp219, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp221, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp223, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp225, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp227, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp229, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp231, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp233, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp235, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp237, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp239, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp241, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp243, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp245, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp247, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp249, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp251, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp253, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp255, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp257, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp273, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp275, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp277, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp279, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp281, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp283, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp285, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp287, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp289, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp296, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp298, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp300, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp302, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp304, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp306, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp315, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp317, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp319, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp321, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp323, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp334, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp336, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp338, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp342, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp344, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp346, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp348, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp350, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp352, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp354, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp356, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp358, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp360, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp362, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp364, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp366, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp368, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp370, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp372, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp374, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp376, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp378, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp388, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp390, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp392, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp401, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp403, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp405, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp407, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp415, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp417, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp419, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp421, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp423, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp425, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp427, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp429, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp431, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp433, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp435, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp455, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp457, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp459, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp461, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp465, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp467, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp469, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp471, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp473, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp475, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp477, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp479, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp481, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp483, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp485, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp487, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp489, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp491, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp493, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp495, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp497, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp499, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp501, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp503, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp505, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp507, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp509, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp511, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp513, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp515, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp517, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp519, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp0 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DOT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DOT = statmp0 ; statmp1 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp1)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp1, atslab_0, ATSstrcst("?")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__QMARK, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__QMARK = statmp1 ; statmp2 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp2)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp2, atslab_0, ATSstrcst("%")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PERCENT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PERCENT = statmp2 ; statmp3 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp3)->tag = 31 ; ats_selptrset_mac(anairiats_sum_1, statmp3, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSTYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSTYPE = statmp3 ; statmp4 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp4)->tag = 31 ; ats_selptrset_mac(anairiats_sum_1, statmp4, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABST0YPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABST0YPE = statmp4 ; statmp5 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp5)->tag = 31 ; ats_selptrset_mac(anairiats_sum_1, statmp5, atslab_0, 5) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSPROP, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSPROP = statmp5 ; statmp6 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp6)->tag = 31 ; ats_selptrset_mac(anairiats_sum_1, statmp6, atslab_0, 7) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEW, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEW = statmp6 ; statmp7 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp7)->tag = 31 ; ats_selptrset_mac(anairiats_sum_1, statmp7, atslab_0, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWTYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWTYPE = statmp7 ; statmp8 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp8)->tag = 31 ; ats_selptrset_mac(anairiats_sum_1, statmp8, atslab_0, 3) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE = statmp8 ; statmp10 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ; statmp9 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp9)->tag = 37 ; ats_selptrset_mac(anairiats_sum_0, statmp9, atslab_0, statmp10) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE = statmp9 ; statmp12 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ; statmp11 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp11)->tag = 37 ; ats_selptrset_mac(anairiats_sum_0, statmp11, atslab_0, statmp12) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_pos = statmp11 ; statmp14 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ; statmp13 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp13)->tag = 37 ; ats_selptrset_mac(anairiats_sum_0, statmp13, atslab_0, statmp14) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_neg = statmp13 ; statmp15 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp15)->tag = 40 ; ats_selptrset_mac(anairiats_sum_1, statmp15, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATATYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATATYPE = statmp15 ; statmp16 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp16)->tag = 40 ; ats_selptrset_mac(anairiats_sum_1, statmp16, atslab_0, 5) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAPROP, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAPROP = statmp16 ; statmp17 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp17)->tag = 40 ; ats_selptrset_mac(anairiats_sum_1, statmp17, atslab_0, 7) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVIEW, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVIEW = statmp17 ; statmp18 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp18)->tag = 40 ; ats_selptrset_mac(anairiats_sum_1, statmp18, atslab_0, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVTYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVTYPE = statmp18 ; statmp19 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp19)->tag = 48 ; ats_selptrset_mac(anairiats_sum_1, statmp19, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIX = statmp19 ; statmp20 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp20)->tag = 48 ; ats_selptrset_mac(anairiats_sum_1, statmp20, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIXAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIXAT = statmp20 ; statmp22 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fn_0) ; statmp21 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp21)->tag = 52 ; ats_selptrset_mac(anairiats_sum_0, statmp21, atslab_0, statmp22) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FN, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FN = statmp21 ; statmp24 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fnx_1) ; statmp23 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp23)->tag = 52 ; ats_selptrset_mac(anairiats_sum_0, statmp23, atslab_0, statmp24) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FNX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FNX = statmp23 ; statmp26 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fun_2) ; statmp25 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp25)->tag = 52 ; ats_selptrset_mac(anairiats_sum_0, statmp25, atslab_0, statmp26) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FUN, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FUN = statmp25 ; statmp28 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfn_3) ; statmp27 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp27)->tag = 52 ; ats_selptrset_mac(anairiats_sum_0, statmp27, atslab_0, statmp28) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFN, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFN = statmp27 ; statmp30 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfun_4) ; statmp29 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp29)->tag = 52 ; ats_selptrset_mac(anairiats_sum_0, statmp29, atslab_0, statmp30) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFUN, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFUN = statmp29 ; statmp32 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_praxi_5) ; statmp31 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp31)->tag = 52 ; ats_selptrset_mac(anairiats_sum_0, statmp31, atslab_0, statmp32) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRAXI, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRAXI = statmp31 ; statmp34 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_castfn_6) ; statmp33 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp33)->tag = 52 ; ats_selptrset_mac(anairiats_sum_0, statmp33, atslab_0, statmp34) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASTFN, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASTFN = statmp33 ; statmp35 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp35)->tag = 55 ; ats_selptrset_mac(anairiats_sum_1, statmp35, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLMNT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLMNT = statmp35 ; statmp36 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp36)->tag = 55 ; ats_selptrset_mac(anairiats_sum_1, statmp36, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLEMENT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLEMENT = statmp36 ; statmp37 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp37)->tag = 55 ; ats_selptrset_mac(anairiats_sum_1, statmp37, atslab_0, -1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRIMPLMNT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRIMPLMNT = statmp37 ; statmp39 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infix_0) ; statmp38 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp38)->tag = 49 ; ats_selptrset_mac(anairiats_sum_0, statmp38, atslab_0, statmp39) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIX = statmp38 ; statmp41 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixl_1) ; statmp40 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp40)->tag = 49 ; ats_selptrset_mac(anairiats_sum_0, statmp40, atslab_0, statmp41) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXL = statmp40 ; statmp43 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_infixr_2) ; statmp42 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp42)->tag = 49 ; ats_selptrset_mac(anairiats_sum_0, statmp42, atslab_0, statmp43) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXR = statmp42 ; statmp45 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_prefix_3) ; statmp44 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp44)->tag = 49 ; ats_selptrset_mac(anairiats_sum_0, statmp44, atslab_0, statmp45) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PREFIX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PREFIX = statmp44 ; statmp47 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FXK_postfix_4) ; statmp46 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp46)->tag = 49 ; ats_selptrset_mac(anairiats_sum_0, statmp46, atslab_0, statmp47) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__POSTFIX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__POSTFIX = statmp46 ; statmp48 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp48)->tag = 58 ; ats_selptrset_mac(anairiats_sum_1, statmp48, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAM, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAM = statmp48 ; statmp49 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp49)->tag = 58 ; ats_selptrset_mac(anairiats_sum_1, statmp49, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAMAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAMAT = statmp49 ; statmp50 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp50)->tag = 58 ; ats_selptrset_mac(anairiats_sum_1, statmp50, atslab_0, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAM, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAM = statmp50 ; statmp51 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp51)->tag = 58 ; ats_selptrset_mac(anairiats_sum_1, statmp51, atslab_0, 3) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAMAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAMAT = statmp51 ; statmp52 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp52)->tag = 61 ; ats_selptrset_mac(anairiats_sum_1, statmp52, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACDEF, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACDEF = statmp52 ; statmp53 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp53)->tag = 61 ; ats_selptrset_mac(anairiats_sum_1, statmp53, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACRODEF, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACRODEF = statmp53 ; statmp54 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TKINDEF_76) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TKINDEF, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TKINDEF = statmp54 ; statmp55 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp55)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp55, atslab_0, ATSstrcst("prop")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP = statmp55 ; statmp56 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp56)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp56, atslab_0, ATSstrcst("view")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW = statmp56 ; statmp57 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp57)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp57, atslab_0, ATSstrcst("type")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE = statmp57 ; statmp58 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp58)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp58, atslab_0, ATSstrcst("tflt")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TFLT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TFLT = statmp58 ; statmp59 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp59)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp59, atslab_0, ATSstrcst("tbox")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TBOX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TBOX = statmp59 ; statmp60 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp60)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp60, atslab_0, ATSstrcst("vtype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTYPE = statmp60 ; statmp61 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp61)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp61, atslab_0, ATSstrcst("vtbox")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTBOX, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTBOX = statmp61 ; statmp62 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp62)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp62, atslab_0, ATSstrcst("vtflt")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTFLT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTFLT = statmp62 ; statmp63 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp63)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp63, atslab_0, ATSstrcst("viewtype")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE = statmp63 ; statmp64 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp64)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp64, atslab_0, 8) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_pos = statmp64 ; statmp65 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp65)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp65, atslab_0, 24) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_neg = statmp65 ; statmp66 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp66)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp66, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE = statmp66 ; statmp67 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp67)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp67, atslab_0, 9) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_pos = statmp67 ; statmp68 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp68)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp68, atslab_0, 25) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_neg = statmp68 ; statmp69 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp69)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp69, atslab_0, 13) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_pos = statmp69 ; statmp70 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp70)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp70, atslab_0, 29) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_neg = statmp70 ; statmp71 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VIEWAT_91) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWAT = statmp71 ; statmp72 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp72)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp72, atslab_0, 15) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_pos = statmp72 ; statmp73 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp73)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp73, atslab_0, 31) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_neg = statmp73 ; statmp74 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp74)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp74, atslab_0, 10) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_pos = statmp74 ; statmp75 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp75)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp75, atslab_0, 26) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_neg = statmp75 ; statmp76 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp76)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp76, atslab_0, 3) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE = statmp76 ; statmp77 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp77)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp77, atslab_0, 11) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_pos = statmp77 ; statmp78 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp78)->tag = 78 ; ats_selptrset_mac(anairiats_sum_1, statmp78, atslab_0, 27) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_neg = statmp78 ; statmp79 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp79)->tag = 79 ; ats_selptrset_mac(anairiats_sum_1, statmp79, atslab_0, 5) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROPDEF, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROPDEF = statmp79 ; statmp80 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp80)->tag = 79 ; ats_selptrset_mac(anairiats_sum_1, statmp80, atslab_0, 7) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWDEF, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWDEF = statmp80 ; statmp81 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp81)->tag = 79 ; ats_selptrset_mac(anairiats_sum_1, statmp81, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPEDEF, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPEDEF = statmp81 ; statmp82 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp82)->tag = 79 ; ats_selptrset_mac(anairiats_sum_1, statmp82, atslab_0, 3) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPEDEF, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPEDEF = statmp82 ; statmp84 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_0) ; statmp83 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp83)->tag = 80 ; ats_selptrset_mac(anairiats_sum_0, statmp83, atslab_0, statmp84) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL = statmp83 ; statmp86 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_pos_1) ; statmp85 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp85)->tag = 80 ; ats_selptrset_mac(anairiats_sum_0, statmp85, atslab_0, statmp86) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_pos, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_pos = statmp85 ; statmp88 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_neg_2) ; statmp87 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp87)->tag = 80 ; ats_selptrset_mac(anairiats_sum_0, statmp87, atslab_0, statmp88) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_neg, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_neg = statmp87 ; statmp90 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_prval_3) ; statmp89 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp89)->tag = 80 ; ats_selptrset_mac(anairiats_sum_0, statmp89, atslab_0, statmp90) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAL = statmp89 ; statmp91 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp91)->tag = 81 ; ats_selptrset_mac(anairiats_sum_1, statmp91, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAR = statmp91 ; statmp92 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp92)->tag = 81 ; ats_selptrset_mac(anairiats_sum_1, statmp92, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAR = statmp92 ; statmp93 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOR_50) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOR = statmp93 ; statmp94 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FORSTAR_51) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FORSTAR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FORSTAR = statmp94 ; statmp95 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILE_84) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILE = statmp95 ; statmp96 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHILESTAR_85) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILESTAR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILESTAR = statmp96 ; statmp97 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp97)->tag = 87 ; ats_selptrset_mac(anairiats_sum_1, statmp97, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHTYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHTYPE = statmp97 ; statmp98 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp98)->tag = 87 ; ats_selptrset_mac(anairiats_sum_1, statmp98, atslab_0, 5) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHPROP, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHPROP = statmp98 ; statmp99 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp99)->tag = 87 ; ats_selptrset_mac(anairiats_sum_1, statmp99, atslab_0, 7) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEW, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEW = statmp99 ; statmp100 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp100)->tag = 87 ; ats_selptrset_mac(anairiats_sum_1, statmp100, atslab_0, 3) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEWTYPE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEWTYPE = statmp100 ; statmp101 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp101)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp101, atslab_0, ATSstrcst("addr")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDR, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDR = statmp101 ; statmp102 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ADDRAT_88) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDRAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDRAT = statmp102 ; statmp103 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp103)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp103, atslab_0, ATSstrcst("fold")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLD, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLD = statmp103 ; statmp104 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FOLDAT_89) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLDAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLDAT = statmp104 ; statmp105 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp105)->tag = 143 ; ats_selptrset_mac(anairiats_sum_0, statmp105, atslab_0, ATSstrcst("free")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREE, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREE = statmp105 ; statmp106 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FREEAT_90) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREEAT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREEAT = statmp106 ; statmp107 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp107)->tag = 92 ; ats_selptrset_mac(anairiats_sum_1, statmp107, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRDELAY, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRDELAY = statmp107 ; statmp108 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp108)->tag = 92 ; ats_selptrset_mac(anairiats_sum_1, statmp108, atslab_0, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLDELAY, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLDELAY = statmp108 ; statmp109 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREFFMASK_96) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK = statmp109 ; statmp110 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp110)->tag = 97 ; ats_selptrset_mac(anairiats_sum_1, statmp110, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_NTM, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_NTM = statmp110 ; statmp111 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp111)->tag = 97 ; ats_selptrset_mac(anairiats_sum_1, statmp111, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_EXN, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_EXN = statmp111 ; statmp112 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp112)->tag = 97 ; ats_selptrset_mac(anairiats_sum_1, statmp112, atslab_0, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_REF, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_REF = statmp112 ; statmp113 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp113)->tag = 97 ; ats_selptrset_mac(anairiats_sum_1, statmp113, atslab_0, 3) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_WRT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_WRT = statmp113 ; statmp114 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp114)->tag = 97 ; ats_selptrset_mac(anairiats_sum_1, statmp114, atslab_0, 4) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_ALL, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_ALL = statmp114 ; statmp115 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp115)->tag = 109 ; ats_selptrset_mac(anairiats_sum_1, statmp115, atslab_0, -1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST = statmp115 ; statmp116 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp116)->tag = 109 ; ats_selptrset_mac(anairiats_sum_1, statmp116, atslab_0, 0) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_T, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_T = statmp116 ; statmp117 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp117)->tag = 109 ; ats_selptrset_mac(anairiats_sum_1, statmp117, atslab_0, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_VT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_VT = statmp117 ; statmp118 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp118)->tag = 110 ; ats_selptrset_mac(anairiats_sum_1, statmp118, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC = statmp118 ; statmp119 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp119)->tag = 110 ; ats_selptrset_mac(anairiats_sum_1, statmp119, atslab_0, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_T, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_T = statmp119 ; statmp120 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp120)->tag = 110 ; ats_selptrset_mac(anairiats_sum_1, statmp120, atslab_0, 3) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_VT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_VT = statmp120 ; statmp121 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp121)->tag = 111 ; ats_selptrset_mac(anairiats_sum_1, statmp121, atslab_0, 1) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP = statmp121 ; statmp122 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp122)->tag = 111 ; ats_selptrset_mac(anairiats_sum_1, statmp122, atslab_0, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_T, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_T = statmp122 ; statmp123 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp123)->tag = 111 ; ats_selptrset_mac(anairiats_sum_1, statmp123, atslab_0, 3) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_VT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_VT = statmp123 ; statmp124 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp124)->tag = 116 ; ats_selptrset_mac(anairiats_sum_1, statmp124, atslab_0, 7) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_V, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_V = statmp124 ; statmp125 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)statmp125)->tag = 116 ; ats_selptrset_mac(anairiats_sum_1, statmp125, atslab_0, 2) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_VT, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_VT = statmp125 ; statmp126 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)statmp126)->tag = 150 ; ats_selptrset_mac(anairiats_sum_2, statmp126, atslab_0, 10) ; ats_selptrset_mac(anairiats_sum_2, statmp126, atslab_1, ATSstrcst("0")) ; ats_selptrset_mac(anairiats_sum_2, statmp126, atslab_2, 0u) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INTZERO, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INTZERO = statmp126 ; statmp135 = atslib_hashtbl_make_hint__linprb_string_2ctnode (ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), 193) ; statmp205 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AT_1) ; /* statmp204 = */ insert_6 (statmp135, ATSstrcst("@"), statmp205) ; statmp207 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BANG_3) ; /* statmp206 = */ insert_6 (statmp135, ATSstrcst("!"), statmp207) ; statmp209 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BAR_2) ; /* statmp208 = */ insert_6 (statmp135, ATSstrcst("|"), statmp209) ; statmp211 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BQUOTE_4) ; /* statmp210 = */ insert_6 (statmp135, ATSstrcst("`"), statmp211) ; statmp213 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLON_6) ; /* statmp212 = */ insert_6 (statmp135, ATSstrcst(":"), statmp213) ; statmp215 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOLLAR_8) ; /* statmp214 = */ insert_6 (statmp135, ATSstrcst("$"), statmp215) ; statmp217 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOT_9) ; /* statmp216 = */ insert_6 (statmp135, ATSstrcst("."), statmp217) ; statmp219 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQ_13) ; /* statmp218 = */ insert_6 (statmp135, ATSstrcst("="), statmp219) ; statmp221 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_HASH_20) ; /* statmp220 = */ insert_6 (statmp135, ATSstrcst("#"), statmp221) ; statmp223 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TILDE_30) ; /* statmp222 = */ insert_6 (statmp135, ATSstrcst("~"), statmp223) ; statmp225 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOT_10) ; /* statmp224 = */ insert_6 (statmp135, ATSstrcst(".."), statmp225) ; statmp227 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTDOTDOT_11) ; /* statmp226 = */ insert_6 (statmp135, ATSstrcst("..."), statmp227) ; statmp229 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGT_14) ; /* statmp228 = */ insert_6 (statmp135, ATSstrcst("=>"), statmp229) ; statmp231 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLT_15) ; /* statmp230 = */ insert_6 (statmp135, ATSstrcst("=<"), statmp231) ; statmp233 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQLTGT_16) ; /* statmp232 = */ insert_6 (statmp135, ATSstrcst("=<>"), statmp233) ; statmp235 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGT_17) ; /* statmp234 = */ insert_6 (statmp135, ATSstrcst("=/=>"), statmp235) ; statmp237 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQGTGT_18) ; /* statmp236 = */ insert_6 (statmp135, ATSstrcst("=>>"), statmp237) ; statmp239 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EQSLASHEQGTGT_19) ; /* statmp238 = */ insert_6 (statmp135, ATSstrcst("=/=>>"), statmp239) ; statmp241 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LT_21) ; /* statmp240 = */ insert_6 (statmp135, ATSstrcst("<"), statmp241) ; statmp243 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GT_22) ; /* statmp242 = */ insert_6 (statmp135, ATSstrcst(">"), statmp243) ; statmp245 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTLT_23) ; /* statmp244 = */ insert_6 (statmp135, ATSstrcst("><"), statmp245) ; statmp247 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLT_24) ; /* statmp246 = */ insert_6 (statmp135, ATSstrcst(".<"), statmp247) ; statmp249 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_GTDOT_25) ; /* statmp248 = */ insert_6 (statmp135, ATSstrcst(">."), statmp249) ; statmp251 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTLTGTDOT_26) ; /* statmp250 = */ insert_6 (statmp135, ATSstrcst(".<>."), statmp251) ; statmp253 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSGT_27) ; /* statmp252 = */ insert_6 (statmp135, ATSstrcst("->"), statmp253) ; statmp255 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLT_28) ; /* statmp254 = */ insert_6 (statmp135, ATSstrcst("-<"), statmp255) ; statmp257 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_MINUSLTGT_29) ; /* statmp256 = */ insert_6 (statmp135, ATSstrcst("-<>"), statmp257) ; /* statmp258 = */ insert_6 (statmp135, ATSstrcst("absprop"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSPROP) ; /* statmp259 = */ insert_6 (statmp135, ATSstrcst("absview"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEW) ; /* statmp260 = */ insert_6 (statmp135, ATSstrcst("abstype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSTYPE) ; /* statmp261 = */ insert_6 (statmp135, ATSstrcst("abst0ype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABST0YPE) ; /* statmp262 = */ insert_6 (statmp135, ATSstrcst("absvtype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWTYPE) ; /* statmp263 = */ insert_6 (statmp135, ATSstrcst("absviewtype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWTYPE) ; /* statmp264 = */ insert_6 (statmp135, ATSstrcst("absvt0ype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE) ; /* statmp265 = */ insert_6 (statmp135, ATSstrcst("absviewt0ype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE) ; /* statmp266 = */ insert_6 (statmp135, ATSstrcst("abstbox"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSTYPE) ; /* statmp267 = */ insert_6 (statmp135, ATSstrcst("abstflt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABST0YPE) ; /* statmp268 = */ insert_6 (statmp135, ATSstrcst("abstflat"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABST0YPE) ; /* statmp269 = */ insert_6 (statmp135, ATSstrcst("absvtbox"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWTYPE) ; /* statmp270 = */ insert_6 (statmp135, ATSstrcst("absvtflt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE) ; /* statmp271 = */ insert_6 (statmp135, ATSstrcst("absvtflat"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE) ; statmp273 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ASSUME_32) ; /* statmp272 = */ insert_6 (statmp135, ATSstrcst("assume"), statmp273) ; statmp275 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REASSUME_33) ; /* statmp274 = */ insert_6 (statmp135, ATSstrcst("reassume"), statmp275) ; statmp277 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ASSUME_32) ; /* statmp276 = */ insert_6 (statmp135, ATSstrcst("absimpl"), statmp277) ; statmp279 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REASSUME_33) ; /* statmp278 = */ insert_6 (statmp135, ATSstrcst("absreimpl"), statmp279) ; statmp281 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AS_34) ; /* statmp280 = */ insert_6 (statmp135, ATSstrcst("as"), statmp281) ; statmp283 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_AND_35) ; /* statmp282 = */ insert_6 (statmp135, ATSstrcst("and"), statmp283) ; statmp285 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BEGIN_36) ; /* statmp284 = */ insert_6 (statmp135, ATSstrcst("begin"), statmp285) ; statmp287 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CLASSDEC_38) ; /* statmp286 = */ insert_6 (statmp135, ATSstrcst("classdec"), statmp287) ; statmp289 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DATASORT_39) ; /* statmp288 = */ insert_6 (statmp135, ATSstrcst("datasort"), statmp289) ; /* statmp290 = */ insert_6 (statmp135, ATSstrcst("datatype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATATYPE) ; /* statmp291 = */ insert_6 (statmp135, ATSstrcst("dataprop"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAPROP) ; /* statmp292 = */ insert_6 (statmp135, ATSstrcst("dataview"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVIEW) ; /* statmp293 = */ insert_6 (statmp135, ATSstrcst("datavtype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVTYPE) ; /* statmp294 = */ insert_6 (statmp135, ATSstrcst("dataviewtype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DATAVTYPE) ; statmp296 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DO_41) ; /* statmp295 = */ insert_6 (statmp135, ATSstrcst("do"), statmp296) ; statmp298 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_END_43) ; /* statmp297 = */ insert_6 (statmp135, ATSstrcst("end"), statmp298) ; statmp300 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTERN_45) ; /* statmp299 = */ insert_6 (statmp135, ATSstrcst("extern"), statmp300) ; statmp302 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTYPE_46) ; /* statmp301 = */ insert_6 (statmp135, ATSstrcst("extype"), statmp302) ; statmp304 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXTVAR_47) ; /* statmp303 = */ insert_6 (statmp135, ATSstrcst("extvar"), statmp304) ; statmp306 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EXCEPTION_44) ; /* statmp305 = */ insert_6 (statmp135, ATSstrcst("exception"), statmp306) ; /* statmp307 = */ insert_6 (statmp135, ATSstrcst("fn"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FN) ; /* statmp308 = */ insert_6 (statmp135, ATSstrcst("fnx"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FNX) ; /* statmp309 = */ insert_6 (statmp135, ATSstrcst("fun"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FUN) ; /* statmp310 = */ insert_6 (statmp135, ATSstrcst("prfn"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFN) ; /* statmp311 = */ insert_6 (statmp135, ATSstrcst("prfun"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRFUN) ; /* statmp312 = */ insert_6 (statmp135, ATSstrcst("praxi"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRAXI) ; /* statmp313 = */ insert_6 (statmp135, ATSstrcst("castfn"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASTFN) ; statmp315 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IF_53) ; /* statmp314 = */ insert_6 (statmp135, ATSstrcst("if"), statmp315) ; statmp317 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_THEN_75) ; /* statmp316 = */ insert_6 (statmp135, ATSstrcst("then"), statmp317) ; statmp319 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ELSE_42) ; /* statmp318 = */ insert_6 (statmp135, ATSstrcst("else"), statmp319) ; statmp321 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IFCASE_54) ; /* statmp320 = */ insert_6 (statmp135, ATSstrcst("ifcase"), statmp321) ; statmp323 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IN_57) ; /* statmp322 = */ insert_6 (statmp135, ATSstrcst("in"), statmp323) ; /* statmp324 = */ insert_6 (statmp135, ATSstrcst("infix"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIX) ; /* statmp325 = */ insert_6 (statmp135, ATSstrcst("infixl"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXL) ; /* statmp326 = */ insert_6 (statmp135, ATSstrcst("infixr"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INFIXR) ; /* statmp327 = */ insert_6 (statmp135, ATSstrcst("prefix"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PREFIX) ; /* statmp328 = */ insert_6 (statmp135, ATSstrcst("postfix"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__POSTFIX) ; /* statmp329 = */ insert_6 (statmp135, ATSstrcst("implmnt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLMNT) ; /* statmp330 = */ insert_6 (statmp135, ATSstrcst("implement"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__IMPLEMENT) ; /* statmp331 = */ insert_6 (statmp135, ATSstrcst("primplmnt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRIMPLMNT) ; /* statmp332 = */ insert_6 (statmp135, ATSstrcst("primplement"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRIMPLMNT) ; statmp334 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IMPORT_56) ; /* statmp333 = */ insert_6 (statmp135, ATSstrcst("import"), statmp334) ; statmp336 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LET_59) ; /* statmp335 = */ insert_6 (statmp135, ATSstrcst("let"), statmp336) ; statmp338 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LOCAL_60) ; /* statmp337 = */ insert_6 (statmp135, ATSstrcst("local"), statmp338) ; /* statmp339 = */ insert_6 (statmp135, ATSstrcst("macdef"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACDEF) ; /* statmp340 = */ insert_6 (statmp135, ATSstrcst("macrodef"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__MACRODEF) ; statmp342 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONFIX_62) ; /* statmp341 = */ insert_6 (statmp135, ATSstrcst("nonfix"), statmp342) ; statmp344 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMELIM_72) ; /* statmp343 = */ insert_6 (statmp135, ATSstrcst("symelim"), statmp344) ; statmp346 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMINTR_73) ; /* statmp345 = */ insert_6 (statmp135, ATSstrcst("symintr"), statmp346) ; statmp348 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMLOAD_74) ; /* statmp347 = */ insert_6 (statmp135, ATSstrcst("symload"), statmp348) ; statmp350 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMLOAD_74) ; /* statmp349 = */ insert_6 (statmp135, ATSstrcst("overload"), statmp350) ; statmp352 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SYMLOAD_74) ; /* statmp351 = */ insert_6 (statmp135, ATSstrcst("#symload"), statmp352) ; statmp354 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OF_63) ; /* statmp353 = */ insert_6 (statmp135, ATSstrcst("of"), statmp354) ; statmp356 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_OP_64) ; /* statmp355 = */ insert_6 (statmp135, ATSstrcst("op"), statmp356) ; statmp358 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_REC_65) ; /* statmp357 = */ insert_6 (statmp135, ATSstrcst("rec"), statmp358) ; statmp360 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SIF_66) ; /* statmp359 = */ insert_6 (statmp135, ATSstrcst("sif"), statmp360) ; statmp362 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SCASE_67) ; /* statmp361 = */ insert_6 (statmp135, ATSstrcst("scase"), statmp362) ; statmp364 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SORTDEF_71) ; /* statmp363 = */ insert_6 (statmp135, ATSstrcst("sortdef"), statmp364) ; statmp366 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STACST_68) ; /* statmp365 = */ insert_6 (statmp135, ATSstrcst("sta"), statmp366) ; statmp368 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STACST_68) ; /* statmp367 = */ insert_6 (statmp135, ATSstrcst("stacst"), statmp368) ; statmp370 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STADEF_69) ; /* statmp369 = */ insert_6 (statmp135, ATSstrcst("stadef"), statmp370) ; statmp372 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STATIC_70) ; /* statmp371 = */ insert_6 (statmp135, ATSstrcst("static"), statmp372) ; statmp374 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STADEF_69) ; /* statmp373 = */ insert_6 (statmp135, ATSstrcst("sexpdef"), statmp374) ; statmp376 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TRY_77) ; /* statmp375 = */ insert_6 (statmp135, ATSstrcst("try"), statmp376) ; statmp378 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_TKINDEF_76) ; /* statmp377 = */ insert_6 (statmp135, ATSstrcst("tkindef"), statmp378) ; /* statmp379 = */ insert_6 (statmp135, ATSstrcst("typedef"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPEDEF) ; /* statmp380 = */ insert_6 (statmp135, ATSstrcst("propdef"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROPDEF) ; /* statmp381 = */ insert_6 (statmp135, ATSstrcst("viewdef"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWDEF) ; /* statmp382 = */ insert_6 (statmp135, ATSstrcst("vtypedef"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPEDEF) ; /* statmp383 = */ insert_6 (statmp135, ATSstrcst("viewtypedef"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPEDEF) ; /* statmp384 = */ insert_6 (statmp135, ATSstrcst("prval"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAL) ; /* statmp385 = */ insert_6 (statmp135, ATSstrcst("var"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAR) ; /* statmp386 = */ insert_6 (statmp135, ATSstrcst("prvar"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PRVAR) ; statmp388 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHEN_82) ; /* statmp387 = */ insert_6 (statmp135, ATSstrcst("when"), statmp388) ; statmp390 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WHERE_83) ; /* statmp389 = */ insert_6 (statmp135, ATSstrcst("where"), statmp390) ; statmp392 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_WITH_86) ; /* statmp391 = */ insert_6 (statmp135, ATSstrcst("with"), statmp392) ; /* statmp393 = */ insert_6 (statmp135, ATSstrcst("withtype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHTYPE) ; /* statmp394 = */ insert_6 (statmp135, ATSstrcst("withprop"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHPROP) ; /* statmp395 = */ insert_6 (statmp135, ATSstrcst("withview"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEW) ; /* statmp396 = */ insert_6 (statmp135, ATSstrcst("withvtype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEWTYPE) ; /* statmp397 = */ insert_6 (statmp135, ATSstrcst("withviewtype"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WITHVIEWTYPE) ; /* statmp398 = */ insert_6 (statmp135, ATSstrcst("$delay"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRDELAY) ; /* statmp399 = */ insert_6 (statmp135, ATSstrcst("$ldelay"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLDELAY) ; statmp401 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRARRPSZ_93) ; /* statmp400 = */ insert_6 (statmp135, ATSstrcst("$arrpsz"), statmp401) ; statmp403 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRARRPSZ_93) ; /* statmp402 = */ insert_6 (statmp135, ATSstrcst("$arrptrsize"), statmp403) ; statmp405 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTYREP_94) ; /* statmp404 = */ insert_6 (statmp135, ATSstrcst("$tyrep"), statmp405) ; statmp407 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRD2CTYPE_95) ; /* statmp406 = */ insert_6 (statmp135, ATSstrcst("$d2ctype"), statmp407) ; /* statmp408 = */ insert_6 (statmp135, ATSstrcst("$effmask"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK) ; /* statmp409 = */ insert_6 (statmp135, ATSstrcst("$effmask_ntm"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_NTM) ; /* statmp410 = */ insert_6 (statmp135, ATSstrcst("$effmask_exn"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_EXN) ; /* statmp411 = */ insert_6 (statmp135, ATSstrcst("$effmask_ref"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_REF) ; /* statmp412 = */ insert_6 (statmp135, ATSstrcst("$effmask_wrt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_WRT) ; /* statmp413 = */ insert_6 (statmp135, ATSstrcst("$effmask_all"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLREFFMASK_ALL) ; statmp415 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTERN_98) ; /* statmp414 = */ insert_6 (statmp135, ATSstrcst("$extern"), statmp415) ; statmp417 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTKIND_100) ; /* statmp416 = */ insert_6 (statmp135, ATSstrcst("$extkind"), statmp417) ; statmp419 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_99) ; /* statmp418 = */ insert_6 (statmp135, ATSstrcst("$extype"), statmp419) ; statmp421 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTYPE_STRUCT_101) ; /* statmp420 = */ insert_6 (statmp135, ATSstrcst("$extype_struct"), statmp421) ; statmp423 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTVAL_102) ; /* statmp422 = */ insert_6 (statmp135, ATSstrcst("$extval"), statmp423) ; statmp425 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTFCALL_103) ; /* statmp424 = */ insert_6 (statmp135, ATSstrcst("$extfcall"), statmp425) ; statmp427 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLREXTMCALL_104) ; /* statmp426 = */ insert_6 (statmp135, ATSstrcst("$extmcall"), statmp427) ; statmp429 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRLITERAL_105) ; /* statmp428 = */ insert_6 (statmp135, ATSstrcst("$literal"), statmp429) ; statmp431 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFILENAME_106) ; /* statmp430 = */ insert_6 (statmp135, ATSstrcst("$myfilename"), statmp431) ; statmp433 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYLOCATION_107) ; /* statmp432 = */ insert_6 (statmp135, ATSstrcst("$mylocation"), statmp433) ; statmp435 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRMYFUNCTION_108) ; /* statmp434 = */ insert_6 (statmp135, ATSstrcst("$myfunction"), statmp435) ; /* statmp436 = */ insert_6 (statmp135, ATSstrcst("$lst"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST) ; /* statmp437 = */ insert_6 (statmp135, ATSstrcst("$lst_t"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_T) ; /* statmp438 = */ insert_6 (statmp135, ATSstrcst("$lst_vt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_VT) ; /* statmp439 = */ insert_6 (statmp135, ATSstrcst("$list"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST) ; /* statmp440 = */ insert_6 (statmp135, ATSstrcst("$list_t"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_T) ; /* statmp441 = */ insert_6 (statmp135, ATSstrcst("$list_vt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRLST_VT) ; /* statmp442 = */ insert_6 (statmp135, ATSstrcst("$rec"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC) ; /* statmp443 = */ insert_6 (statmp135, ATSstrcst("$rec_t"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_T) ; /* statmp444 = */ insert_6 (statmp135, ATSstrcst("$rec_vt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_VT) ; /* statmp445 = */ insert_6 (statmp135, ATSstrcst("$record"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC) ; /* statmp446 = */ insert_6 (statmp135, ATSstrcst("$record_t"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_T) ; /* statmp447 = */ insert_6 (statmp135, ATSstrcst("$record_vt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRREC_VT) ; /* statmp448 = */ insert_6 (statmp135, ATSstrcst("$tup"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP) ; /* statmp449 = */ insert_6 (statmp135, ATSstrcst("$tup_t"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_T) ; /* statmp450 = */ insert_6 (statmp135, ATSstrcst("$tup_vt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_VT) ; /* statmp451 = */ insert_6 (statmp135, ATSstrcst("$tuple"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP) ; /* statmp452 = */ insert_6 (statmp135, ATSstrcst("$tuple_t"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_T) ; /* statmp453 = */ insert_6 (statmp135, ATSstrcst("$tuple_vt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRTUP_VT) ; statmp455 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRBREAK_112) ; /* statmp454 = */ insert_6 (statmp135, ATSstrcst("$break"), statmp455) ; statmp457 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRCONTINUE_113) ; /* statmp456 = */ insert_6 (statmp135, ATSstrcst("$continue"), statmp457) ; statmp459 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRRAISE_114) ; /* statmp458 = */ insert_6 (statmp135, ATSstrcst("$raise"), statmp459) ; statmp461 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRVARARG_115) ; /* statmp460 = */ insert_6 (statmp135, ATSstrcst("$vararg"), statmp461) ; /* statmp462 = */ insert_6 (statmp135, ATSstrcst("$vcopyenv_v"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_V) ; /* statmp463 = */ insert_6 (statmp135, ATSstrcst("$vcopyenv_vt"), _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DLRVCOPYENV_VT) ; statmp465 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSHOWTYPE_117) ; /* statmp464 = */ insert_6 (statmp135, ATSstrcst("$showtype"), statmp465) ; statmp467 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRTEMPENVER_118) ; /* statmp466 = */ insert_6 (statmp135, ATSstrcst("$tempenver"), statmp467) ; statmp469 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLASSERT_119) ; /* statmp468 = */ insert_6 (statmp135, ATSstrcst("$solver_assert"), statmp469) ; statmp471 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DLRSOLVERIFY_120) ; /* statmp470 = */ insert_6 (statmp135, ATSstrcst("$solver_verify"), statmp471) ; statmp473 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIF_121) ; /* statmp472 = */ insert_6 (statmp135, ATSstrcst("#if"), statmp473) ; statmp475 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFDEF_122) ; /* statmp474 = */ insert_6 (statmp135, ATSstrcst("#ifdef"), statmp475) ; statmp477 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPIFNDEF_123) ; /* statmp476 = */ insert_6 (statmp135, ATSstrcst("#ifndef"), statmp477) ; statmp479 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPTHEN_124) ; /* statmp478 = */ insert_6 (statmp135, ATSstrcst("#then"), statmp479) ; statmp481 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIF_125) ; /* statmp480 = */ insert_6 (statmp135, ATSstrcst("#elif"), statmp481) ; statmp483 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFDEF_126) ; /* statmp482 = */ insert_6 (statmp135, ATSstrcst("#elifdef"), statmp483) ; statmp485 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELIFNDEF_127) ; /* statmp484 = */ insert_6 (statmp135, ATSstrcst("#elifndef"), statmp485) ; statmp487 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPELSE_128) ; /* statmp486 = */ insert_6 (statmp135, ATSstrcst("#else"), statmp487) ; statmp489 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPENDIF_129) ; /* statmp488 = */ insert_6 (statmp135, ATSstrcst("#endif"), statmp489) ; statmp491 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPERROR_130) ; /* statmp490 = */ insert_6 (statmp135, ATSstrcst("#error"), statmp491) ; statmp493 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRERR_131) ; /* statmp492 = */ insert_6 (statmp135, ATSstrcst("#prerr"), statmp493) ; statmp495 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRINT_132) ; /* statmp494 = */ insert_6 (statmp135, ATSstrcst("#print"), statmp495) ; statmp497 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPASSERT_133) ; /* statmp496 = */ insert_6 (statmp135, ATSstrcst("#assert"), statmp497) ; statmp499 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPUNDEF_134) ; /* statmp498 = */ insert_6 (statmp135, ATSstrcst("#undef"), statmp499) ; statmp501 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDEFINE_135) ; /* statmp500 = */ insert_6 (statmp135, ATSstrcst("#define"), statmp501) ; statmp503 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPINCLUDE_136) ; /* statmp502 = */ insert_6 (statmp135, ATSstrcst("#include"), statmp503) ; statmp505 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPSTALOAD_137) ; /* statmp504 = */ insert_6 (statmp135, ATSstrcst("staload"), statmp505) ; statmp507 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPSTALOAD_137) ; /* statmp506 = */ insert_6 (statmp135, ATSstrcst("#staload"), statmp507) ; statmp509 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDYNLOAD_138) ; /* statmp508 = */ insert_6 (statmp135, ATSstrcst("dynload"), statmp509) ; statmp511 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPDYNLOAD_138) ; /* statmp510 = */ insert_6 (statmp135, ATSstrcst("#dynload"), statmp511) ; statmp513 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPREQUIRE_139) ; /* statmp512 = */ insert_6 (statmp135, ATSstrcst("#require"), statmp513) ; statmp515 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPPRAGMA_140) ; /* statmp514 = */ insert_6 (statmp135, ATSstrcst("#pragma"), statmp515) ; statmp517 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN2_141) ; /* statmp516 = */ insert_6 (statmp135, ATSstrcst("#codegen2"), statmp517) ; statmp519 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SRPCODEGEN3_142) ; /* statmp518 = */ insert_6 (statmp135, ATSstrcst("#codegen3"), statmp519) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_lexing_token_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dmacro2_dats.c0000644000175000017500000013565613431250607022074 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_6 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vbool_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vchar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vfloat_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vstring_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vunit_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vscode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vdcode_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVsadd_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVdadd_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVmark_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVnil_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXsadd_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXdadd_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__prerr_m2val) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_evalctx) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__sasp__evalctx_viewtype = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__sasp__alphenv_viewtype = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVsadd_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVdadd_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVmark_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVnil_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXnil_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXsadd_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXdadd_2) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true) ; ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false) ; /* internal function declarations */ static ats_void_type prerr_FILENAME_01883_ () ; static ats_void_type prerr_errmac_loc_01888_ (ats_ptr_type arg0) ; static ats_ptr_type loop_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type loop_12 (ats_ptr_type arg0) ; static ats_ptr_type s2exp_make_m2val_22 (ats_ptr_type arg0) ; static ats_void_type aux_24 (ats_ptr_type arg0, ats_ref_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp2) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 1690(line=52, offs=18) -- 1715(line=52, offs=43) */ ATSstaticdec() ats_void_type prerr_FILENAME_01883_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_01883_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_dmacro2")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_01883_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2222(line=82, offs=17) -- 2282(line=85, offs=2) */ ATSstaticdec() ats_void_type prerr_errmac_loc_01888_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; __ats_lab_prerr_errmac_loc_01888_: /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp9 = */ atspre_prerr_string (ATSstrcst(": error(mac)")) ; return /* (tmp9) */ ; } /* end of [prerr_errmac_loc_01888_] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 2117(line=79, offs=3) -- 2575(line=94, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_char_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_int (arg0, tmp4) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_char (arg0, tmp5) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_float (arg0, tmp6) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_string (arg0, tmp7) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (arg0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: /* tmp8 = */ prerr_errmac_loc_01888_ (arg0) ; /* tmp11 = */ atspre_prerr_string (ATSstrcst(": a value representing code (AST) cannot be lifted.")) ; /* tmp12 = */ atspre_prerr_newline () ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (arg0) ; break ; } while (0) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 2966(line=114, offs=13) -- 2984(line=114, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil: tmp13 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVnil_3) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 3009(line=117, offs=14) -- 3216(line=128, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; ATS_FREE(arg0) ; arg0 = tmp15 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; ATS_FREE(arg0) ; arg0 = tmp16 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free ; // tail call break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; ATS_FREE(arg0) ; arg0 = tmp17 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (((ats_sum_ptr_type)arg0)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: break ; } while (0) ; return /* (tmp14) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 3268(line=132, offs=3) -- 3341(line=135, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_sadd (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_sadd: tmp19 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp19)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp19, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp19, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp19, atslab_2, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp19 ; return /* (tmp18) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_sadd] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 3393(line=139, offs=3) -- 3466(line=142, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dadd (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dadd: tmp21 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp21)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp21, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp21, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp21, atslab_2, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp21 ; return /* (tmp20) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dadd] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 3564(line=150, offs=5) -- 4205(line=176, offs=4) */ ATSstaticdec() ats_ptr_type loop_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_bool_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; __ats_lab_loop_8: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp25 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp26 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (arg1, tmp24) ; if (tmp27) { tmp23 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp23, atslab_0, tmp25) ; } else { tmp28 = ats_ptrget_mac(ats_ptr_type, tmp26) ; arg0 = tmp28 ; arg1 = arg1 ; goto __ats_lab_loop_8 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp29 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp30 = ats_ptrget_mac(ats_ptr_type, tmp29) ; arg0 = tmp30 ; arg1 = arg1 ; goto __ats_lab_loop_8 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp31 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp32 = ats_ptrget_mac(ats_ptr_type, tmp31) ; arg0 = tmp32 ; arg1 = arg1 ; goto __ats_lab_loop_8 ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (((ats_sum_ptr_type)arg0)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp23 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp23) ; } /* end of [loop_8] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 3540(line=148, offs=3) -- 4250(line=180, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_sfind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_sfind: tmp22 = loop_8 (arg0, arg1) ; return (tmp22) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_sfind] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 4349(line=188, offs=5) -- 4990(line=214, offs=4) */ ATSstaticdec() ats_ptr_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_bool_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab_loop_10: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp35 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp36 = ats_ptrget_mac(ats_ptr_type, tmp35) ; arg0 = tmp36 ; arg1 = arg1 ; goto __ats_lab_loop_10 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp38 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp39 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (arg1, tmp37) ; if (tmp40) { tmp34 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp34, atslab_0, tmp38) ; } else { tmp41 = ats_ptrget_mac(ats_ptr_type, tmp39) ; arg0 = tmp41 ; arg1 = arg1 ; goto __ats_lab_loop_10 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp42 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp43 = ats_ptrget_mac(ats_ptr_type, tmp42) ; arg0 = tmp43 ; arg1 = arg1 ; goto __ats_lab_loop_10 ; // tail call break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (((ats_sum_ptr_type)arg0)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp34 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp34) ; } /* end of [loop_10] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 4325(line=186, offs=3) -- 5035(line=218, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dfind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dfind: tmp33 = loop_10 (arg0, arg1) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dfind] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 5125(line=225, offs=5) -- 5349(line=235, offs=4) */ ATSstaticdec() ats_ptr_type loop_12 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab_loop_12: do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; ATS_FREE(arg0) ; arg0 = tmp46 ; goto __ats_lab_loop_12 ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; ATS_FREE(arg0) ; arg0 = tmp47 ; goto __ats_lab_loop_12 ; // tail call break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; ATS_FREE(arg0) ; tmp45 = tmp48 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (((ats_sum_ptr_type)arg0)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp45 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVnil_3) ; break ; } while (0) ; return (tmp45) ; } /* end of [loop_12] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 5106(line=223, offs=13) -- 5396(line=239, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_pop (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_pop: tmp49 = loop_12 (ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp49 ; return /* (tmp44) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_pop] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 5445(line=242, offs=14) -- 5476(line=242, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_push (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_push: tmp51 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp51)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp51, atslab_0, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp51 ; return /* (tmp50) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_push] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 5760(line=262, offs=13) -- 5778(line=262, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil: tmp52 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXnil_0) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 5806(line=266, offs=2) -- 6580(line=298, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_evalctx (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_evalctx: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp56 = &ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_2) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp54) ; /* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst(" - ")) ; /* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val (arg0, tmp55) ; /* tmp60 = */ atspre_fprint_newline (arg0) ; tmp61 = ats_ptrget_mac(ats_ptr_type, tmp56) ; arg0 = arg0 ; arg1 = tmp61 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_evalctx ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp63 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp64 = &ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_2) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp62) ; /* tmp66 = */ atspre_fprint_string (arg0, ATSstrcst(" - ")) ; /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_m2val (arg0, tmp63) ; /* tmp68 = */ atspre_fprint_newline (arg0) ; tmp69 = ats_ptrget_mac(ats_ptr_type, tmp64) ; arg0 = arg0 ; arg1 = tmp69 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_evalctx ; // tail call break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (((ats_sum_ptr_type)arg1)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: break ; } while (0) ; return /* (tmp53) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_evalctx] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 6635(line=302, offs=3) -- 6675(line=302, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__print_evalctx (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__print_evalctx: /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_evalctx (stdout, arg0) ; return /* (tmp70) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__print_evalctx] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 6728(line=306, offs=3) -- 6768(line=306, offs=43) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__prerr_evalctx (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__prerr_evalctx: /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__fprint_evalctx (stderr, arg0) ; return /* (tmp71) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__prerr_evalctx] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 6842(line=313, offs=3) -- 6887(line=313, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_sadd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_sadd: tmp72 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp72)->tag = 1 ; ats_selptrset_mac(anairiats_sum_4, tmp72, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp72, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp72, atslab_2, arg0) ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_sadd] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 6939(line=318, offs=3) -- 6984(line=318, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd: tmp73 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp73)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp73, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp73, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp73, atslab_2, arg0) ; return (tmp73) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 7037(line=323, offs=3) -- 7637(line=354, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_bool_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp75 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp76 = ats_ptrget_mac(ats_ptr_type, tmp75) ; arg0 = tmp76 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind ; // tail call break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp79 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (arg1, tmp77) ; if (tmp80) { tmp74 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp74, atslab_0, tmp78) ; } else { tmp81 = ats_ptrget_mac(ats_ptr_type, tmp79) ; arg0 = tmp81 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp74 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 7688(line=357, offs=14) -- 7839(line=361, offs=25) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; ATS_FREE(arg0) ; arg0 = tmp83 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp84 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; ATS_FREE(arg0) ; arg0 = tmp84 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: break ; } while (0) ; return /* (tmp82) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 7895(line=367, offs=1) -- 8029(line=373, offs=2) */ ATSstaticdec() ats_ptr_type s2exp_make_m2val_22 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab_s2exp_make_m2val_22: do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp85 = tmp86 ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: __ats_lab_32_1: tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; break ; } while (0) ; return (tmp85) ; } /* end of [s2exp_make_m2val_22] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 8116(line=379, offs=5) -- 8560(line=400, offs=4) */ ATSstaticdec() ats_void_type aux_24 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab_aux_24: do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp89 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp90 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp91 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp93 = ats_ptrget_mac(ats_ptr_type, tmp91) ; /* tmp92 = */ aux_24 (tmp93, arg1) ; tmp94 = s2exp_make_m2val_22 (tmp90) ; /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg1, tmp89, tmp94) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp95 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_2) ; tmp96 = ats_ptrget_mac(ats_ptr_type, tmp95) ; arg0 = tmp96 ; arg1 = arg1 ; goto __ats_lab_aux_24 ; // tail call break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: break ; } while (0) ; return /* (tmp88) */ ; } /* end of [aux_24] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 8097(line=377, offs=3) -- 8648(line=407, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__stasub_make_evalctx (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__stasub_make_evalctx: /* ats_ptr_type tmp97 ; */ tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; /* tmp98 = */ aux_24 (arg0, (&tmp97)) ; tmp87 = tmp97 ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__stasub_make_evalctx] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 8780(line=417, offs=3) -- 9012(line=426, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_xstage (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_xstage: tmp100 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d2exp_loc) ; /* ats_ptr_type tmp101 ; */ tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () ; /* ats_ptr_type tmp102 ; */ tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil () ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (tmp100, tmp101, (&tmp102), arg0) ; /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free (tmp102) ; /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (tmp101) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp (tmp100, tmp103) ; return (tmp99) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_xstage] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 9074(line=429, offs=20) -- 9628(line=451, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_decode (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_decode: tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_d2exp_loc) ; /* ats_ptr_type tmp108 ; */ tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () ; /* ats_ptr_type tmp109 ; */ tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil () ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (tmp107, tmp108, (&tmp109), arg0) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free (tmp109) ; /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (tmp108) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp110)->tag != 7) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp113 = ats_caselptrlab_mac(anairiats_sum_3, tmp110, atslab_0) ; tmp106 = tmp113 ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: /* tmp114 = */ prerr_errmac_loc_01888_ (tmp107) ; /* tmp115 = */ atspre_prerr_string (ATSstrcst(": the macro expansion should yield code (AST)")) ; /* tmp116 = */ atspre_prerr_string (ATSstrcst(", but the following value is obtained instead: ")) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__prerr_m2val (tmp110) ; /* tmp118 = */ atspre_prerr_newline () ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (tmp107) ; break ; } while (0) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_decode] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2.dats: 9716(line=457, offs=3) -- 9926(line=465, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_app_short (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; // ATSlocal_void (tmp124) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_app_short: /* ats_ptr_type tmp120 ; */ tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () ; /* ats_ptr_type tmp121 ; */ tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil () ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short (arg0, arg1, tmp120, (&tmp121), arg2) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free (tmp121) ; /* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (tmp120) ; tmp119 = tmp122 ; return (tmp119) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__dmacro_eval_app_short] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVsadd_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVdadd_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVmark_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__ALPHENVnil_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXnil_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXsadd_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__EVALCTXdadd_2.tag = 2 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp2, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp1 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp1)->tag = 1 ; ats_selptrset_mac(anairiats_sum_0, statmp1, atslab_0, ats_true_bool) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true = statmp1 ; statmp2 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ((ats_sum_ptr_type)statmp2)->tag = 1 ; ats_selptrset_mac(anairiats_sum_0, statmp2, atslab_0, ats_false_bool) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false = statmp2 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dmacro2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_stamp_sats.c0000644000175000017500000000241613431250607021673 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_stamp_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_location_sats.c0000644000175000017500000000225413431250607022357 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ #include "pats_location.cats" /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_location_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_parsing_error_dats.c0000644000175000017500000017626113431250607023416 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_parerr_loc ; ats_ptr_type atslab_parerr_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; /* 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_parsing_2esats__PE_AS_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_AND_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_END_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IN_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_OF_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IF_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SIF_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_CASE_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SCASE_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_IFCASE_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_THEN_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_ELSE_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_REC_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHEN_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WITH_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_FOR_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_WHILE_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_TRY_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BAR_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COLON_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_COMMA_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SEMICOLON_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LPAREN_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RPAREN_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACKET_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACKET_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_LBRACE_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_RBRACE_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_BANG_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_DOT_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQ_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EQGT_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GT_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTDOT_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_GTLT_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPTHEN_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_SRPENDIF_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_EOF_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0nt_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_c0har_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_f0loat_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0tring_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0dext_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0de_dlr_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtid_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_si0de_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_di0de_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_pi0de_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_stai0de_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0taq_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ynq_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_dqi0de_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_arrqi0de_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_tmpqi0de_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_impqi0de_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_l0ab_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0rec_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_funarrow_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_colonwith_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_e0xp_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atme0xp_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rt_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0rt_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0marg_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_a0msrt_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0exp_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atms0exp_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labs0exp_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0rtext_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_s0qua_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_q0marg_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmp0at_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labp0at_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_p0at_as_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_i0fcl_76) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_gm0at_77) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guap0at_78) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_c0lau_79) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_sc0lau_80) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp_81) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp0_82) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0exp1_83) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atmd0exp_84) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_labd0exp_85) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_86) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_sta_87) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_d0ecl_dyn_88) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_guad0ecl_89) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_staloadarg_90) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_fname_unclosed_91) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_DISCARD_92) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_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_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_bool_type, atspre_gt_lint_lint) (ats_lint_type, ats_lint_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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_lint_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_bchar) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_parerr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__the_parerrlst_get) (ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_5 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type revapp_10 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type synent_needed_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type keyword_needed_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type parenth_needed_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type fname_unclosed_16 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type token_discarded_17 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_lint_type arg3, ats_lint_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp1) ; ATSstatic (ats_ptr_type, statmp4) ; ATSstatic (ats_ptr_type, statmp7) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 1717(line=57, offs=13) -- 1772(line=59, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make: tmp0 = ATS_MALLOC(sizeof(anairiats_rec_1)) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_parerr_loc, arg0) ; ats_selptrset_mac(anairiats_rec_1, tmp0, atslab_parerr_node, arg1) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_int_type (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; __ats_lab_ref_01088_ats_int_type: /* ats_int_type tmp3 ; */ tmp3 = arg0 ; tmp2 = atspre_ref_make_elt_tsz ((&tmp3), sizeof(ats_int_type)) ; return (tmp2) ; } /* end of [ref_01088_ats_int_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp6 ; */ tmp6 = arg0 ; tmp5 = atspre_ref_make_elt_tsz ((&tmp6), sizeof(ats_ptr_type)) ; return (tmp5) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp13 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: break ; } while (0) ; return /* (tmp12) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp11) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp11 = */ loop_5 (arg0) ; return /* (tmp11) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 2334(line=91, offs=3) -- 2543(line=98, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_clear () { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_clear: ats_ptrget_mac(ats_int_type, statmp1) = 0 ; tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp4), atslab_1) ; tmp14 = ats_ptrget_mac(ats_ptr_type, tmp9) ; /* tmp10 = */ list_vt_free_01499_ats_ptr_type (tmp14) ; tmp15 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp9) = tmp15 ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_clear] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 2610(line=102, offs=3) -- 2916(line=113, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_int_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add: tmp17 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp1), atslab_1) ; tmp18 = ats_ptrget_mac(ats_int_type, tmp17) ; tmp19 = atspre_add_int_int (tmp18, 1) ; ats_ptrget_mac(ats_int_type, tmp17) = tmp19 ; tmp20 = atspre_lt_int_int (tmp18, 100) ; if (tmp20) { tmp21 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp4), atslab_1) ; tmp23 = ats_ptrget_mac(ats_ptr_type, tmp21) ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp22, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_2, tmp22, atslab_1, tmp23) ; ats_ptrget_mac(ats_ptr_type, tmp21) = tmp22 ; } else { /* empty */ } /* end of [if] */ return /* (tmp16) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_10 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_revapp_10: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp32 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; tmp33 = ats_ptrget_mac(ats_ptr_type, tmp32) ; ats_ptrget_mac(ats_ptr_type, tmp32) = arg1 ; tmp34 = arg0 ; arg0 = tmp33 ; arg1 = tmp34 ; goto __ats_lab_revapp_10 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp31 = arg1 ; break ; } while (0) ; return (tmp31) ; } /* end of [revapp_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; __ats_lab_list_vt_reverse_append_01507_ats_ptr_type: tmp30 = revapp_10 (arg0, arg1) ; return (tmp30) ; } /* end of [list_vt_reverse_append_01507_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_list_vt_reverse_01506_ats_ptr_type: tmp35 = (ats_sum_ptr_type)0 ; tmp29 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp35) ; return (tmp29) ; } /* end of [list_vt_reverse_01506_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 2981(line=117, offs=3) -- 3188(line=124, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__the_parerrlst_get (ats_ref_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__the_parerrlst_get: tmp25 = ats_ptrget_mac(ats_int_type, statmp1) ; ats_ptrget_mac(ats_int_type, arg0) = tmp25 ; ats_ptrget_mac(ats_int_type, statmp1) = 0 ; tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp4), atslab_1) ; tmp27 = ats_ptrget_mac(ats_ptr_type, tmp26) ; tmp28 = list_vt_reverse_01506_ats_ptr_type (tmp27) ; tmp36 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp26) = tmp36 ; tmp24 = tmp28 ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__the_parerrlst_get] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 3303(line=132, offs=3) -- 3408(line=138, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp37) ; ATSlocal (ats_bool_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt: tmp38 = atspre_eq_int_int (arg0, 0) ; if (tmp38) { tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make (arg1, arg2) ; /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add (tmp39) ; } else { /* empty */ } /* end of [if] */ return /* (tmp37) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifnbt] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 3506(line=144, offs=3) -- 3664(line=151, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifunclosed (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifunclosed: tmp41 = atspre_string_contains (arg1, '\n') ; if (tmp41) { tmp43 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_fname_unclosed_91) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parerr_make (arg0, tmp43) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add (tmp42) ; } else { /* empty */ } /* end of [if] */ return /* (tmp40) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__the_parerrlst_add_ifunclosed] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 3732(line=156, offs=1) -- 3976(line=167, offs=2) */ ATSstaticdec() ats_void_type synent_needed_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; __ats_lab_synent_needed_13: tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_parerr_loc) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp46) ; /* tmp47 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): the syntactic entity [%s] is needed."), arg2) ; /* tmp44 = */ atspre_fprint_newline (arg0) ; return /* (tmp44) */ ; } /* end of [synent_needed_13] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 4032(line=172, offs=1) -- 4266(line=180, offs=2) */ ATSstaticdec() ats_void_type keyword_needed_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; __ats_lab_keyword_needed_14: tmp50 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_parerr_loc) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp50) ; /* tmp51 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): the keyword [%s] is needed."), arg2) ; /* tmp48 = */ atspre_fprint_newline (arg0) ; return /* (tmp48) */ ; } /* end of [keyword_needed_14] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 4323(line=185, offs=1) -- 4557(line=193, offs=2) */ ATSstaticdec() ats_void_type parenth_needed_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; // ATSlocal_void (tmp55) ; __ats_lab_parenth_needed_15: tmp54 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_parerr_loc) ; /* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp54) ; /* tmp55 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): the keyword '%s' is needed."), arg2) ; /* tmp52 = */ atspre_fprint_newline (arg0) ; return /* (tmp52) */ ; } /* end of [parenth_needed_15] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 4614(line=198, offs=1) -- 4827(line=205, offs=2) */ ATSstaticdec() ats_void_type fname_unclosed_16 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; // ATSlocal_void (tmp59) ; __ats_lab_fname_unclosed_16: tmp58 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_parerr_loc) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp58) ; /* tmp59 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): the filename is unclosed.")) ; /* tmp56 = */ atspre_fprint_newline (arg0) ; return /* (tmp56) */ ; } /* end of [fname_unclosed_16] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 4884(line=210, offs=1) -- 5096(line=217, offs=2) */ ATSstaticdec() ats_void_type token_discarded_17 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; // ATSlocal_void (tmp63) ; __ats_lab_token_discarded_17: tmp62 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_parerr_loc) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp62) ; /* tmp63 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): the token is discarded.")) ; /* tmp60 = */ atspre_fprint_newline (arg0) ; return /* (tmp60) */ ; } /* end of [token_discarded_17] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 5495(line=241, offs=3) -- 9822(line=408, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_parerr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_parerr: tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_parerr_loc) ; tmp66 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_parerr_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp66)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("as")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp66)->tag != 1) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("and")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp66)->tag != 2) { goto __ats_lab_7_0 ; } __ats_lab_6_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("end")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp66)->tag != 4) { goto __ats_lab_8_0 ; } __ats_lab_7_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("of")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp66)->tag != 3) { goto __ats_lab_9_0 ; } __ats_lab_8_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("in")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp66)->tag != 5) { goto __ats_lab_10_0 ; } __ats_lab_9_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("if")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp66)->tag != 6) { goto __ats_lab_11_0 ; } __ats_lab_10_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("sif")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp66)->tag != 7) { goto __ats_lab_12_0 ; } __ats_lab_11_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("case")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp66)->tag != 8) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("scase")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp66)->tag != 9) { goto __ats_lab_14_0 ; } __ats_lab_13_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("ifcase")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp66)->tag != 10) { goto __ats_lab_15_0 ; } __ats_lab_14_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("then")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp66)->tag != 11) { goto __ats_lab_16_0 ; } __ats_lab_15_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("else")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp66)->tag != 12) { goto __ats_lab_17_0 ; } __ats_lab_16_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("rec")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp66)->tag != 13) { goto __ats_lab_18_0 ; } __ats_lab_17_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("when")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp66)->tag != 14) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("with")) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp66)->tag != 17) { goto __ats_lab_20_0 ; } __ats_lab_19_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("try")) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp66)->tag != 15) { goto __ats_lab_21_0 ; } __ats_lab_20_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("for")) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp66)->tag != 16) { goto __ats_lab_22_0 ; } __ats_lab_21_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("while")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp66)->tag != 18) { goto __ats_lab_23_0 ; } __ats_lab_22_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("|")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp66)->tag != 19) { goto __ats_lab_24_0 ; } __ats_lab_23_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst(":")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp66)->tag != 20) { goto __ats_lab_25_0 ; } __ats_lab_24_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst(",")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp66)->tag != 21) { goto __ats_lab_26_0 ; } __ats_lab_25_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst(";")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp66)->tag != 28) { goto __ats_lab_27_0 ; } __ats_lab_26_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("!")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp66)->tag != 29) { goto __ats_lab_28_0 ; } __ats_lab_27_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst(",")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp66)->tag != 30) { goto __ats_lab_29_0 ; } __ats_lab_28_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("=")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp66)->tag != 31) { goto __ats_lab_30_0 ; } __ats_lab_29_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("=>")) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp66)->tag != 32) { goto __ats_lab_31_0 ; } __ats_lab_30_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst(">")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp66)->tag != 33) { goto __ats_lab_32_0 ; } __ats_lab_31_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst(">.")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp66)->tag != 34) { goto __ats_lab_33_0 ; } __ats_lab_32_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("><")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp66)->tag != 35) { goto __ats_lab_34_0 ; } __ats_lab_33_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("#then")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp66)->tag != 36) { goto __ats_lab_35_0 ; } __ats_lab_34_1: /* tmp64 = */ keyword_needed_14 (arg0, arg1, ATSstrcst("#endif")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp66)->tag != 22) { goto __ats_lab_36_0 ; } __ats_lab_35_1: /* tmp64 = */ parenth_needed_15 (arg0, arg1, ATSstrcst("(")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp66)->tag != 23) { goto __ats_lab_37_0 ; } __ats_lab_36_1: /* tmp64 = */ parenth_needed_15 (arg0, arg1, ATSstrcst(")")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp66)->tag != 24) { goto __ats_lab_38_0 ; } __ats_lab_37_1: /* tmp64 = */ parenth_needed_15 (arg0, arg1, ATSstrcst("[")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp66)->tag != 25) { goto __ats_lab_39_0 ; } __ats_lab_38_1: /* tmp64 = */ parenth_needed_15 (arg0, arg1, ATSstrcst("]")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp66)->tag != 26) { goto __ats_lab_40_0 ; } __ats_lab_39_1: /* tmp64 = */ parenth_needed_15 (arg0, arg1, ATSstrcst("{")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp66)->tag != 27) { goto __ats_lab_41_0 ; } __ats_lab_40_1: /* tmp64 = */ parenth_needed_15 (arg0, arg1, ATSstrcst("}")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp66)->tag != 37) { goto __ats_lab_42_0 ; } __ats_lab_41_1: /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp65) ; /* tmp68 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): [EOF] is needed")) ; /* tmp64 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp66)->tag != 38) { goto __ats_lab_43_0 ; } __ats_lab_42_1: /* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp65) ; /* tmp70 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): [i0nt] is needed")) ; /* tmp64 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp66)->tag != 39) { goto __ats_lab_44_0 ; } __ats_lab_43_1: /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp65) ; /* tmp72 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): [c0har] is needed")) ; /* tmp64 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp66)->tag != 40) { goto __ats_lab_45_0 ; } __ats_lab_44_1: /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp65) ; /* tmp74 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): [f0loat] is needed")) ; /* tmp64 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp66)->tag != 41) { goto __ats_lab_46_0 ; } __ats_lab_45_1: /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp65) ; /* tmp76 = */ atspre_fprintf_exn (arg0, ATSstrcst(": error(parsing): [s0tring] is needed")) ; /* tmp64 = */ atspre_fprint_newline (arg0) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp66)->tag != 42) { goto __ats_lab_47_0 ; } __ats_lab_46_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("i0de")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp66)->tag != 43) { goto __ats_lab_48_0 ; } __ats_lab_47_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("i0dext")) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp66)->tag != 44) { goto __ats_lab_49_0 ; } __ats_lab_48_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("i0de_dlr")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp66)->tag != 56) { goto __ats_lab_50_0 ; } __ats_lab_49_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("l0ab")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp66)->tag != 57) { goto __ats_lab_51_0 ; } __ats_lab_50_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("p0rec")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp66)->tag != 58) { goto __ats_lab_52_0 ; } __ats_lab_51_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("funarrow")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp66)->tag != 59) { goto __ats_lab_53_0 ; } __ats_lab_52_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("colonwith")) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp66)->tag != 60) { goto __ats_lab_54_0 ; } __ats_lab_53_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("e0xp")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp66)->tag != 61) { goto __ats_lab_55_0 ; } __ats_lab_54_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("atme0xp")) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp66)->tag != 62) { goto __ats_lab_56_0 ; } __ats_lab_55_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("s0rt")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp66)->tag != 45) { goto __ats_lab_57_0 ; } __ats_lab_56_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("s0rtid")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp66)->tag != 63) { goto __ats_lab_58_0 ; } __ats_lab_57_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("atms0rt")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp66)->tag != 64) { goto __ats_lab_59_0 ; } __ats_lab_58_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("s0marg")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp66)->tag != 65) { goto __ats_lab_60_0 ; } __ats_lab_59_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("a0msrt")) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp66)->tag != 66) { goto __ats_lab_61_0 ; } __ats_lab_60_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("s0exp")) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp66)->tag != 46) { goto __ats_lab_62_0 ; } __ats_lab_61_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("si0de")) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp66)->tag != 50) { goto __ats_lab_63_0 ; } __ats_lab_62_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("s0taq")) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp66)->tag != 67) { goto __ats_lab_64_0 ; } __ats_lab_63_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("atms0exp")) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp66)->tag != 68) { goto __ats_lab_65_0 ; } __ats_lab_64_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("labs0exp")) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp66)->tag != 69) { goto __ats_lab_66_0 ; } __ats_lab_65_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("s0rtext")) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp66)->tag != 70) { goto __ats_lab_67_0 ; } __ats_lab_66_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("s0qua")) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp66)->tag != 71) { goto __ats_lab_68_0 ; } __ats_lab_67_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("q0marg")) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp66)->tag != 72) { goto __ats_lab_69_0 ; } __ats_lab_68_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("p0at")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp66)->tag != 48) { goto __ats_lab_70_0 ; } __ats_lab_69_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("pi0de")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp66)->tag != 73) { goto __ats_lab_71_0 ; } __ats_lab_70_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("atmp0at")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp66)->tag != 74) { goto __ats_lab_72_0 ; } __ats_lab_71_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("labp0at")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp66)->tag != 75) { goto __ats_lab_73_0 ; } __ats_lab_72_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("p0at_as")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp66)->tag != 76) { goto __ats_lab_74_0 ; } __ats_lab_73_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("i0fcl")) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp66)->tag != 77) { goto __ats_lab_75_0 ; } __ats_lab_74_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("gm0at")) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp66)->tag != 78) { goto __ats_lab_76_0 ; } __ats_lab_75_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("guap0at")) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp66)->tag != 79) { goto __ats_lab_77_0 ; } __ats_lab_76_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("c0lau")) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp66)->tag != 80) { goto __ats_lab_78_0 ; } __ats_lab_77_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("sc0lau")) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp66)->tag != 47) { goto __ats_lab_79_0 ; } __ats_lab_78_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("di0de")) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp66)->tag != 51) { goto __ats_lab_80_0 ; } __ats_lab_79_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("d0ynq")) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp66)->tag != 52) { goto __ats_lab_81_0 ; } __ats_lab_80_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("dqi0de")) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp66)->tag != 53) { goto __ats_lab_82_0 ; } __ats_lab_81_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("arrqi0de")) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp66)->tag != 54) { goto __ats_lab_83_0 ; } __ats_lab_82_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("tmpqi0de")) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp66)->tag != 55) { goto __ats_lab_84_0 ; } __ats_lab_83_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("impqi0de")) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp66)->tag != 81) { goto __ats_lab_85_0 ; } __ats_lab_84_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("d0exp")) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp66)->tag != 82) { goto __ats_lab_86_0 ; } __ats_lab_85_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("d0exp0")) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp66)->tag != 83) { goto __ats_lab_87_0 ; } __ats_lab_86_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("d0exp1")) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp66)->tag != 84) { goto __ats_lab_88_0 ; } __ats_lab_87_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("atmd0exp")) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp66)->tag != 85) { goto __ats_lab_89_0 ; } __ats_lab_88_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("labd0exp")) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp66)->tag != 86) { goto __ats_lab_90_0 ; } __ats_lab_89_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("d0ecl")) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp66)->tag != 49) { goto __ats_lab_91_0 ; } __ats_lab_90_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("stai0de")) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp66)->tag != 87) { goto __ats_lab_92_0 ; } __ats_lab_91_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("d0ecl_sta")) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp66)->tag != 88) { goto __ats_lab_93_0 ; } __ats_lab_92_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("d0ecl_dyn")) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp66)->tag != 89) { goto __ats_lab_94_0 ; } __ats_lab_93_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("guad0ecl")) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp66)->tag != 90) { goto __ats_lab_95_0 ; } __ats_lab_94_1: /* tmp64 = */ synent_needed_13 (arg0, arg1, ATSstrcst("staloadarg")) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp66)->tag != 91) { goto __ats_lab_96_0 ; } __ats_lab_95_1: /* tmp64 = */ fname_unclosed_16 (arg0, arg1) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: // if (((ats_sum_ptr_type)tmp66)->tag != 92) { ats_deadcode_failure_handle () ; } __ats_lab_96_1: /* tmp64 = */ token_discarded_17 (arg0, arg1) ; break ; } while (0) ; return /* (tmp64) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_parerr] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 9975(line=419, offs=5) -- 10710(line=448, offs=4) */ ATSstaticdec() ats_int_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_lint_type arg3, ats_lint_type arg4) { /* local vardec */ ATSlocal (ats_int_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_lint_type, tmp84) ; ATSlocal (ats_bool_type, tmp85) ; // ATSlocal_void (tmp86) ; ATSlocal (ats_int_type, tmp87) ; ATSlocal (ats_bool_type, tmp88) ; // ATSlocal_void (tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; __ats_lab_loop_20: do { /* branch: __ats_lab_97 */ __ats_lab_97_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_101_0 ; } __ats_lab_97_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp82 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp81), atslab_parerr_loc) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_get_bchar (tmp83) ; do { /* branch: __ats_lab_98 */ __ats_lab_98_0: __ats_lab_98_1: tmp85 = atspre_gt_lint_lint (tmp84, arg3) ; if (!tmp85) { goto __ats_lab_99_1 ; } /* tmp86 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_parerr (arg0, tmp81) ; tmp87 = atspre_sub_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp82 ; arg2 = tmp87 ; arg3 = tmp84 ; arg4 = tmp84 ; goto __ats_lab_loop_20 ; // tail call break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: __ats_lab_99_1: tmp88 = atspre_lte_lint_lint (tmp84, arg4) ; if (!tmp88) { goto __ats_lab_100_1 ; } /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_parerr (arg0, tmp81) ; tmp90 = atspre_sub_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp82 ; arg2 = tmp90 ; arg3 = arg3 ; arg4 = tmp84 ; goto __ats_lab_loop_20 ; // tail call break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: __ats_lab_100_1: tmp91 = atspre_sub_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp82 ; arg2 = tmp91 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_loop_20 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_101_1: tmp80 = arg2 ; break ; } while (0) ; return (tmp80) ; } /* end of [loop_20] */ /* // /tmp/ATS-Postiats/src/pats_parsing_error.dats: 9904(line=414, offs=3) -- 11143(line=467, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_the_parerrlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_int_type, tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_bool_type, tmp94) ; // ATSlocal_void (tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_the_parerrlst: /* ats_int_type tmp78 ; */ tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__the_parerrlst_get ((&tmp78)) ; do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (tmp79 == (ats_sum_ptr_type)0) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp92 = loop_20 (arg0, tmp79, tmp78, -1l, -1l) ; tmp94 = atspre_gt_int_int (tmp92, 0) ; if (tmp94) { /* tmp95 = */ atspre_fprint_string (arg0, ATSstrcst("There are possibly some additional errors.")) ; /* tmp93 = */ atspre_fprint_newline (arg0) ; } else { /* empty */ } /* end of [if] */ tmp77 = 1 ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: // if (tmp79 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_103_1: tmp77 = 0 ; break ; } while (0) ; return (tmp77) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__fprint_the_parerrlst] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_error_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp1 = ref_01088_ats_int_type (0) ; statmp7 = (ats_sum_ptr_type)0 ; statmp4 = ref_01088_ats_ptr_type (statmp7) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_parsing_error_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_util_sats.c0000644000175000017500000000456513431250607023201 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_0 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_rec_1 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_util_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans2_sort_dats.c0000644000175000017500000013466013431250607023017 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_s1rt_loc ; ats_ptr_type atslab_s1rt_node ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_a1srt_loc ; ats_ptr_type atslab_a1srt_sym ; ats_ptr_type atslab_a1srt_srt ; } anairiats_rec_8 ; typedef struct { ats_ptr_type atslab_a1msrt_loc ; ats_ptr_type atslab_a1msrt_arg ; } anairiats_rec_9 ; typedef struct { anairiats_rec_1 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTapp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTqid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTtype_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTerr_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTtup_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsrt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1rt_tr_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_is_arrow) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtlst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_srt) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_symsrt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_qid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02085_ () ; static ats_void_type prerr_interror_loc_02087_ (ats_ptr_type arg0) ; static ats_void_type prerr_error2_loc_02089_ (ats_ptr_type arg0) ; static ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 1660(line=51, offs=28) -- 1694(line=51, offs=62) */ ATSstaticdec() ats_void_type prerr_FILENAME_02085_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02085_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans2_sort.dats")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02085_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02087_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; __ats_lab_prerr_interror_loc_02087_: /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp18 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp19 = */ prerr_FILENAME_02085_ () ; /* tmp16 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp16) */ ; } /* end of [prerr_interror_loc_02087_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2105(line=76, offs=17) -- 2163(line=79, offs=2) */ ATSstaticdec() ats_void_type prerr_error2_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; __ats_lab_prerr_error2_loc_02089_: /* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp23 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ; return /* (tmp23) */ ; } /* end of [prerr_error2_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 2351(line=91, offs=13) -- 3308(line=125, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_bool_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_app: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s1rt_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_s1rt_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_is_arrow (arg1) ; if (!tmp4) { goto __ats_lab_5_1 ; } do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } tmp5 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ; if (tmp5 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } tmp6 = ats_caselptrlab_mac(anairiats_sum_3, tmp5, atslab_1) ; if (tmp6 != (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_1_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp8 = ats_caselptrlab_mac(anairiats_sum_3, tmp5, atslab_0) ; tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp7), atslab_s1rt_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp10)->tag != 1) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_0) ; tmp9 = tmp11 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp12 = (ats_sum_ptr_type)0 ; tmp9 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp9, atslab_0, tmp7) ; ats_selptrset_mac(anairiats_sum_3, tmp9, atslab_1, tmp12) ; break ; } while (0) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtlst_tr (tmp9) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp8) ; tmp1 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp1)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp1, atslab_0, tmp13) ; ats_selptrset_mac(anairiats_sum_5, tmp1, atslab_1, tmp14) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: /* tmp15 = */ prerr_interror_loc_02087_ (tmp2) ; /* tmp20 = */ atspre_prerr_string (ATSstrcst(": s1rt_tr_app: [->] is not an infix operator!")) ; /* tmp21 = */ atspre_prerr_newline () ; /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp25 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s1rt_loc) ; /* tmp22 = */ prerr_error2_loc_02089_ (tmp25) ; /* tmp26 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_sort.dats"), ATSstrcst("s1rt_tr_app")) ; /* tmp27 = */ atspre_prerr_string (ATSstrcst(": sort application is not supported.")) ; /* tmp28 = */ atspre_prerr_newline () ; tmp30 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp30)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp30, atslab_0, arg0) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp30) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_app] */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 3379(line=131, offs=3) -- 4352(line=164, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_qid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_qid: tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s1rt_loc) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua (arg1, arg2) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp33 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_6_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_6, tmp33, atslab_0) ; ATS_FREE(tmp33) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp34)->tag != 0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp35 = ats_caselptrlab_mac(anairiats_sum_4, tmp34, atslab_0) ; tmp31 = tmp35 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: /* tmp36 = */ prerr_error2_loc_02089_ (tmp32) ; /* tmp37 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_sort.dats"), ATSstrcst("s1rt_tr_qid")) ; /* tmp38 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp40 = */ atspre_prerr_string (ATSstrcst("] is expected to refer to a sort (instead of a subset sort).")) ; /* tmp41 = */ atspre_prerr_newline () ; tmp43 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp43)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp43, atslab_0, arg0) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp43) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; break ; } while (0) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (tmp33 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: /* tmp44 = */ prerr_error2_loc_02089_ (tmp32) ; /* tmp45 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_sort.dats"), ATSstrcst("s1rt_tr_qid")) ; /* tmp46 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ; /* tmp48 = */ atspre_prerr_string (ATSstrcst("] does not refer to any recognized sort.")) ; /* tmp49 = */ atspre_prerr_newline () ; tmp51 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp51)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp51, atslab_0, arg0) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp51) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; break ; } while (0) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_qid] */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 4417(line=169, offs=9) -- 4825(line=188, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_int_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr: tmp53 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s1rt_loc) ; tmp54 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s1rt_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp54)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_5, tmp54, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_5, tmp54, atslab_1) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_app (arg0, tmp55, tmp56) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp54)->tag != 3) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_7, tmp54, atslab_0) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred (tmp57) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp54)->tag != 2) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_5, tmp54, atslab_0) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_5, tmp54, atslab_1) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_qid (arg0, tmp58, tmp59) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp54)->tag != 1) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_4, tmp54, atslab_0) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtlst_tr (tmp60) ; tmp52 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp52)->tag = 2 ; ats_selptrset_mac(anairiats_sum_4, tmp52, atslab_0, tmp61) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (((ats_sum_ptr_type)tmp54)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ; break ; } while (0) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab_loop_9: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp69 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp67, arg3) ; tmp70 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp70, atslab_0, tmp69) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp70 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp71 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp68 ; arg1 = arg1 ; arg2 = tmp71 ; arg3 = arg3 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: tmp72 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp72 ; break ; } while (0) ; return /* (tmp66) */ ; } /* end of [loop_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp73 ; */ /* tmp74 = */ loop_9 (arg0, arg1, (&tmp73), arg2) ; tmp65 = tmp73 ; return (tmp65) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp64) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp64 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp64) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 4890(line=194, offs=12) -- 4928(line=194, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtlst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtlst_tr: tmp63 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr) ; tmp62 = ats_castfn_mac(ats_ptr_type, tmp63) ; return (tmp62) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtlst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 4952(line=197, offs=12) -- 5025(line=198, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtopt_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtopt_tr: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp76) ; tmp75 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp75, atslab_0, tmp77) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp75 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp75) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtopt_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 5096(line=204, offs=14) -- 5122(line=204, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_srt: tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_a1srt_srt) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp79) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_srt] */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 5148(line=206, offs=15) -- 5200(line=206, offs=67) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_srt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_srt: tmp82 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_a1msrt_arg) ; tmp81 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp82, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_srt) ; tmp80 = ats_castfn_mac(ats_ptr_type, tmp81) ; return (tmp80) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_srt] */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 5250(line=211, offs=17) -- 5429(line=218, offs=4) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_symsrt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_symsrt: tmp85 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_a1srt_sym) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp85 != (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_empty ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (tmp85 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_6, tmp85, atslab_0) ; tmp84 = tmp86 ; break ; } while (0) ; tmp88 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_a1srt_srt) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp88) ; tmp83.atslab_0 = tmp84 ; tmp83.atslab_1 = tmp87 ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_symsrt] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (anairiats_rec_1, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab_loop_17: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp95 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp96 = ((anairiats_rec_1(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp94, arg3) ; tmp97 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp97, atslab_0, tmp96) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp97 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp98 = &ats_caselptrlab_mac(anairiats_sum_10, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp95 ; arg1 = arg1 ; arg2 = tmp98 ; arg3 = arg3 ; goto __ats_lab_loop_17 ; // tail call break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp99 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp99 ; break ; } while (0) ; return /* (tmp93) */ ; } /* end of [loop_17] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp100) ; // ATSlocal_void (tmp101) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_anairiats_rec_1: /* ats_ptr_type tmp100 ; */ /* tmp101 = */ loop_17 (arg0, arg1, (&tmp100), arg2) ; tmp92 = tmp100 ; return (tmp92) ; } /* end of [list_map_funenv_01412_ats_ptr_type_anairiats_rec_1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; __ats_lab_list_map_fun_01413_ats_ptr_type_anairiats_rec_1: tmp91 = list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp91) ; } /* end of [list_map_fun_01413_ats_ptr_type_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_trans2_sort.dats: 5485(line=220, offs=18) -- 5540(line=220, offs=73) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_symsrt (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_symsrt: tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_a1msrt_arg) ; tmp90 = list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (tmp102, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1srt_tr_symsrt) ; tmp89 = ats_castfn_mac(ats_ptr_type, tmp90) ; return (tmp89) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__a1msrt_tr_symsrt] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans2_sort_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_fldfrat_dats.c0000644000175000017500000014640313431250607023451 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_10 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efoldat_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efreeat_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2exp_trup_wrt_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_foldat_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_freeat_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__PFOBJ_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_leftmost) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_lin2) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_foldat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_freeat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_err) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_type_err) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_wrt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) ; static ats_int_type auxck_free_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_ptr_type auxfind_3 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_4 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_fldfrat.dats: 1622(line=51, offs=3) -- 1662(line=51, offs=43) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_fldfrat")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; __ats_lab_prerr_error3_loc_02051_: /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp9 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp9) */ ; } /* end of [prerr_error3_loc_02051_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_fldfrat.dats: 2088(line=80, offs=1) -- 2820(line=116, offs=4) */ ATSstaticdec() ats_int_type auxck_free_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_int_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_int_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; __ats_lab_auxck_free_1: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = arg2 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* ats_int_type tmp4 ; */ tmp4 = arg2 ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_lin2 (tmp2) ; if (tmp5) { tmp7 = atspre_add_int_int (tmp4, 1) ; tmp4 = tmp7 ; /* tmp8 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp11 = */ atspre_prerr_string (ATSstrcst(": [free@] operation cannot be performed")) ; /* tmp12 = */ atspre_prerr_string (ATSstrcst(": a linear component of the type [")) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp2) ; /* tmp14 = */ atspre_prerr_string (ATSstrcst("] may be abandoned.")) ; /* tmp6 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = tmp3 ; arg2 = tmp4 ; goto __ats_lab_auxck_free_1 ; // tail call break ; } while (0) ; return (tmp1) ; } /* end of [auxck_free_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_fldfrat.dats: 2849(line=119, offs=1) -- 3877(line=164, offs=4) */ ATSstaticdec() ats_ptr_type auxfind_3 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; __ats_lab_auxfind_3: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp15 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp17 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__pfobj_search_atview (tmp16) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp18 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_3, tmp18, atslab_0) ; ATS_FREE(tmp18) ; // tmp21 = ats_caselptrlab_mac(anairiats_sum_4, tmp20, atslab_0) ; tmp22 = ats_caselptrlab_mac(anairiats_sum_4, tmp20, atslab_2) ; ATS_FREE(tmp20) ; tmp24 = (ats_sum_ptr_type)0 ; /* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp21, tmp24) ; tmp19 = tmp22 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp18 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; break ; } while (0) ; tmp25 = auxfind_3 (arg0, tmp17) ; tmp15 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp15, atslab_0, tmp19) ; ats_selptrset_mac(anairiats_sum_2, tmp15, atslab_1, tmp25) ; break ; } while (0) ; return (tmp15) ; } /* end of [auxfind_3] */ /* // /tmp/ATS-Postiats/src/pats_trans3_fldfrat.dats: 3903(line=167, offs=1) -- 6599(line=263, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_4 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_int_type, tmp36) ; ATSlocal (anairiats_rec_1, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (anairiats_rec_1, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; // ATSlocal_void (tmp49) ; ATSlocal (ats_bool_type, tmp50) ; ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_bool_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_bool_type, tmp55) ; ATSlocal (ats_int_type, tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_bool_type, tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_int_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_bool_type, tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; // ATSlocal_void (tmp75) ; // ATSlocal_void (tmp76) ; ATSlocal (ats_bool_type, tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_bool_type, tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; __ats_lab_auxmain_4: tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg3), atslab_d2exp_loc) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg3) ; /* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp28) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp28) ; tmp31 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp30), atslab_s2exp_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp31)->tag != 11) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_7, tmp31, atslab_0) ; tmp33 = ats_caselptrlab_mac(anairiats_sum_7, tmp31, atslab_2) ; tmp34 = auxfind_3 (arg0, tmp33) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type (tmp32) ; /* ats_int_type tmp36 ; */ tmp36 = 0 ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst (tmp35, arg2, (&tmp36)) ; tmp38 = ats_select_mac(tmp37, atslab_0) ; tmp39 = ats_select_mac(tmp37, atslab_1) ; /* tmp40 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp39) ; tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_leftmost (tmp27) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all (tmp38, tmp41, (&tmp36)) ; tmp43 = ats_select_mac(tmp42, atslab_0) ; tmp44 = ats_select_mac(tmp42, atslab_1) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp44) ; tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp43), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp46)->tag != 19) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_fldfrat.dats: 4701(line=196, offs=9) -- 4781(line=198, offs=28)") ; } tmp47 = ats_caselptrlab_mac(anairiats_sum_8, tmp46, atslab_4) ; tmp48 = ats_caselptrlab_mac(anairiats_sum_8, tmp46, atslab_5) ; tmp50 = atspre_eq_int_int (arg1, 0) ; if (tmp50) { tmp51 = auxck_free_1 (arg0, tmp34, 0) ; tmp52 = atspre_gt_int_int (tmp51, 0) ; if (tmp52) { tmp53 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp53)->tag = 40 ; ats_selptrset_mac(anairiats_sum_9, tmp53, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp53, atslab_1, tmp28) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp53) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp55 = atspre_gt_int_int (arg1, 0) ; if (tmp55) { /* ats_int_type tmp56 ; */ tmp56 = 0 ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2explst_tyleq_solve_err (arg0, tmp34, tmp47, (&tmp56)) ; tmp58 = atspre_gt_int_int (tmp56, 0) ; if (tmp58) { /* tmp59 = */ prerr_error3_loc_02051_ (tmp27) ; /* tmp60 = */ atspre_prerr_string (ATSstrcst(": [fold@] operation cannot be formed")) ; /* tmp61 = */ atspre_prerr_string (ATSstrcst(": some argument types are mismatched.")) ; /* tmp62 = */ atspre_prerr_newline () ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp64 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp64)->tag = 39 ; ats_selptrset_mac(anairiats_sum_9, tmp64, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp64, atslab_1, tmp28) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp64) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp66 = atspre_gt_int_int (arg1, 0) ; if (tmp66) { /* ats_int_type tmp67 ; */ tmp67 = 0 ; /* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_type_err (0, tmp28, tmp48, (&tmp67)) ; tmp69 = atspre_gt_int_int (tmp67, 0) ; if (tmp69) { /* tmp70 = */ prerr_error3_loc_02051_ (tmp27) ; /* tmp71 = */ atspre_prerr_string (ATSstrcst(": [fold@] operation cannot be formed")) ; /* tmp72 = */ atspre_prerr_string (ATSstrcst(": the type of the dynamic expression cannot be changed.")) ; /* tmp73 = */ atspre_prerr_newline () ; tmp74 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp74)->tag = 39 ; ats_selptrset_mac(anairiats_sum_9, tmp74, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_9, tmp74, atslab_1, tmp28) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp74) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp26 = tmp28 ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: /* tmp75 = */ prerr_error3_loc_02051_ (tmp27) ; tmp77 = atspre_eq_int_int (arg1, 0) ; if (tmp77) { /* tmp76 = */ atspre_prerr_string (ATSstrcst(": [free@] operation cannot be performed")) ; } else { /* empty */ } /* end of [if] */ tmp79 = atspre_gt_int_int (arg1, 0) ; if (tmp79) { /* tmp78 = */ atspre_prerr_string (ATSstrcst(": [fold@] operation cannot be performed")) ; } else { /* empty */ } /* end of [if] */ /* tmp80 = */ atspre_prerr_string (ATSstrcst(": unfolded datatype constructor is expected.")) ; /* tmp81 = */ atspre_prerr_newline () ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_errexp (arg0) ; break ; } while (0) ; return (tmp26) ; } /* end of [auxmain_4] */ /* // /tmp/ATS-Postiats/src/pats_trans3_fldfrat.dats: 6675(line=269, offs=3) -- 6845(line=279, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_foldat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_foldat: tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp84 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp84)->tag != 23) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_fldfrat.dats: 6721(line=273, offs=5) -- 6759(line=273, offs=43)") ; } tmp85 = ats_caselptrlab_mac(anairiats_sum_9, tmp84, atslab_0) ; tmp86 = ats_caselptrlab_mac(anairiats_sum_9, tmp84, atslab_1) ; tmp87 = auxmain_4 (tmp83, 1, tmp85, tmp86) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_foldat (tmp83, tmp87) ; return (tmp82) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_foldat] */ /* // /tmp/ATS-Postiats/src/pats_trans3_fldfrat.dats: 6907(line=283, offs=3) -- 7229(line=301, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_freeat (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_int_type, tmp93) ; // ATSlocal_void (tmp94) ; ATSlocal (ats_bool_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_freeat: tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_loc) ; tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp90)->tag != 24) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_fldfrat.dats: 6953(line=286, offs=5) -- 6991(line=286, offs=43)") ; } tmp91 = ats_caselptrlab_mac(anairiats_sum_9, tmp90, atslab_0) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_9, tmp90, atslab_1) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_wrt (tmp89) ; tmp95 = atspre_gt_int_int (tmp93, 0) ; if (tmp95) { tmp96 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp96)->tag = 32 ; ats_selptrset_mac(anairiats_sum_10, tmp96, atslab_0, tmp89) ; /* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp96) ; } else { /* empty */ } /* end of [if] */ tmp97 = auxmain_4 (tmp89, 0, tmp91, tmp92) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_freeat (tmp89, tmp97) ; return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_freeat] */ /* 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_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_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_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_fldfrat_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_fldfrat_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dmacro2_eval1_dats.c0000644000175000017500000043336213431250607023157 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_s2exparg_loc ; ats_ptr_type atslab_s2exparg_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_t2mpmarg_loc ; ats_ptr_type atslab_t2mpmarg_arg ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_i2nvarg_var ; ats_ptr_type atslab_i2nvarg_type ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_i2nvresstate_svs ; ats_ptr_type atslab_i2nvresstate_gua ; ats_ptr_type atslab_i2nvresstate_arg ; ats_ptr_type atslab_i2nvresstate_met ; } anairiats_rec_7 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_8 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_d2lab_loc ; ats_ptr_type atslab_d2lab_node ; ats_ptr_type atslab_d2lab_overld ; } anairiats_rec_16 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_17 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_18 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_19 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_21 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_22 ; typedef struct { ats_ptr_type atslab_gm2at_loc ; ats_ptr_type atslab_gm2at_exp ; ats_ptr_type atslab_gm2at_pat ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_c2lau_loc ; ats_ptr_type atslab_c2lau_pat ; ats_ptr_type atslab_c2lau_gua ; ats_int_type atslab_c2lau_seq ; ats_int_type atslab_c2lau_neg ; ats_ptr_type atslab_c2lau_body ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_v2aldec_loc ; ats_ptr_type atslab_v2aldec_pat ; ats_ptr_type atslab_v2aldec_def ; ats_ptr_type atslab_v2aldec_ann ; } anairiats_rec_26 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlst_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecstsp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextfcall_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextmcall_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Econ_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etmpid_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elet_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhere_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esifhead_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elst_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eptrof_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eviewat_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Exchng_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrsub_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrpsz_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrinit_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eraise_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evararg_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evcopyenv_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eshowtype_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eexist_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Edelay_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eldelay_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacsyn_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_rec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vdcode_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval1_d2exp_96) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_kind) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_intrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_float) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_lst) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_rec) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2at) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extval) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extfcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extmcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tmpid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_let) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_where) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifhead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sifhead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_casehead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sing) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_list) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lst) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_rec) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_assgn) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_xchng) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrsub) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrpsz) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrinit) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ptrof) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_viewat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_raise) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vararg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vcopyenv) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_showtype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_exist) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_delay) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make_met) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__gm2at_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__c2lau_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2aldec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_errdec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dadd) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dfind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_pop) (ats_ref_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_push) (ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__stasub_make_evalctx) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__d2var_rename) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2explst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2expopt) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparg) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparglst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarg) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarglst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2var) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarg) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarglst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvresstate) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atlst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atopt) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2at) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2atlst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2expopt) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2explst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2lablst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparg) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparglst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_applst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_macsyn) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2at) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2atlst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2lau) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2laulst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2ecl) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2eclist) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst_rec) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_void_type prerr_errmac_loc_02050_ (ats_ptr_type arg0) ; static ats_void_type auxerr_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type loop_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst1_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxlst2_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type auxlst1_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxlst2_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 1559(line=46, offs=18) -- 1590(line=46, offs=49) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_dmacro2_eval1")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 2035(line=76, offs=13) -- 2052(line=76, offs=30) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__d2var_rename (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__d2var_rename: tmp1 = arg1 ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__d2var_rename] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 3852(line=144, offs=1) -- 4079(line=157, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp5 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type))arg4) (arg0, arg1, arg2, tmp3) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, tmp4, arg4) ; tmp2 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp2, atslab_0, tmp5) ; ats_selptrset_mac(anairiats_sum_1, tmp2, atslab_1, tmp6) ; break ; } while (0) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 4177(line=164, offs=1) -- 4430(line=185, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__stasub_make_evalctx (arg1) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp8, arg3) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp8) ; tmp7 = tmp9 ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 4507(line=191, offs=3) -- 4583(line=192, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2explst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2explst: tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2explst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 4637(line=197, offs=1) -- 4756(line=202, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2expopt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2expopt: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp12 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_0) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp (arg0, arg1, arg2, tmp13) ; tmp12 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp12, atslab_0, tmp14) ; break ; } while (0) ; return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2expopt] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 4833(line=209, offs=1) -- 5113(line=225, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparg: tmp16 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg3), atslab_s2exparg_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp16)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one (arg0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp16)->tag != 1) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all (arg0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (((ats_sum_ptr_type)tmp16)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp17 = ats_caselptrlab_mac(anairiats_sum_4, tmp16, atslab_0) ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2explst (arg0, arg1, arg2, tmp17) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq (arg0, tmp18) ; break ; } while (0) ; return (tmp15) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparg] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 5172(line=229, offs=3) -- 5250(line=230, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparglst: tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparg) ; return (tmp19) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparglst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 5328(line=237, offs=1) -- 5464(line=246, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarg: tmp22 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg3), atslab_t2mpmarg_arg) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2explst (arg0, arg1, arg2, tmp22) ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make (arg0, tmp21) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarg] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 5523(line=250, offs=3) -- 5603(line=251, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarglst: tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarg) ; return (tmp23) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarglst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 5680(line=258, offs=3) -- 5812(line=263, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2var (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2var: tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dfind (ats_ptrget_mac(ats_ptr_type, arg2), arg3) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (tmp25 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_2, tmp25, atslab_0) ; ATS_FREE(tmp25) ; tmp24 = tmp26 ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (tmp25 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp24 = arg3 ; break ; } while (0) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2var] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 5883(line=269, offs=1) -- 6068(line=280, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarg: tmp29 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg3), atslab_i2nvarg_var) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2var (arg0, arg1, arg2, tmp29) ; tmp31 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg3), atslab_i2nvarg_type) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2expopt (arg0, arg1, arg2, tmp31) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_make (tmp28, tmp30) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarg] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 6125(line=284, offs=3) -- 6202(line=285, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarglst: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarg) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarglst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 6264(line=290, offs=3) -- 6509(line=297, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvresstate (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvresstate: tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_i2nvresstate_svs) ; tmp35 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_i2nvresstate_gua) ; tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_i2nvresstate_arg) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvarglst (arg0, arg1, arg2, tmp37) ; tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg3), atslab_i2nvresstate_met) ; tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvresstate_make_met (tmp34, tmp35, tmp36, tmp38) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvresstate] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 6585(line=303, offs=1) -- 8256(line=396, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_int_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_bool_type, tmp53) ; ATSlocal (ats_char_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_int_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_int_type, tmp62) ; ATSlocal (ats_int_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at: tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg3), atslab_p2at_node) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp40)->tag != 0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_any (arg0) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp40)->tag != 1) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_4, tmp40, atslab_0) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__d2var_rename (arg0, tmp41) ; /* tmp43 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_dadd (arg2, tmp41, tmp42) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_var (arg0, tmp42) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp40)->tag != 2) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_9, tmp40, atslab_0) ; tmp45 = ats_caselptrlab_mac(anairiats_sum_9, tmp40, atslab_1) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_9, tmp40, atslab_2) ; tmp47 = ats_caselptrlab_mac(anairiats_sum_9, tmp40, atslab_3) ; tmp48 = ats_caselptrlab_mac(anairiats_sum_9, tmp40, atslab_4) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_9, tmp40, atslab_5) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atlst (arg0, arg1, arg2, tmp49) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_con (arg0, tmp44, tmp45, tmp46, tmp47, tmp48, tmp50) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp40)->tag != 3) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_10, tmp40, atslab_0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_int (arg0, tmp51) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp40)->tag != 4) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_4, tmp40, atslab_0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_intrep (arg0, tmp52) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp40)->tag != 5) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_11, tmp40, atslab_0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_bool (arg0, tmp53) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp40)->tag != 6) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_12, tmp40, atslab_0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_char (arg0, tmp54) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp40)->tag != 7) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_4, tmp40, atslab_0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_float (arg0, tmp55) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp40)->tag != 8) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp56 = ats_caselptrlab_mac(anairiats_sum_4, tmp40, atslab_0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_string (arg0, tmp56) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp40)->tag != 9) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp57 = ats_caselptrlab_mac(anairiats_sum_4, tmp40, atslab_0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_i0nt (arg0, tmp57) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp40)->tag != 10) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_4, tmp40, atslab_0) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_f0loat (arg0, tmp58) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp40)->tag != 11) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_empty (arg0) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp40)->tag != 12) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_13, tmp40, atslab_0) ; tmp60 = ats_caselptrlab_mac(anairiats_sum_13, tmp40, atslab_1) ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atlst (arg0, arg1, arg2, tmp60) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_lst (arg0, tmp59, tmp61) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp40)->tag != 13) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_14, tmp40, atslab_0) ; tmp63 = ats_caselptrlab_mac(anairiats_sum_14, tmp40, atslab_1) ; tmp64 = ats_caselptrlab_mac(anairiats_sum_14, tmp40, atslab_2) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2atlst (arg0, arg1, arg2, tmp64) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_rec (arg0, tmp62, tmp63, tmp65) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp40)->tag != 17) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_15, tmp40, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_15, tmp40, atslab_1) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at (arg0, arg1, arg2, tmp66) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp (arg0, arg1, arg2, tmp67) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann (arg0, tmp68, tmp69) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: /* tmp70 = */ atspre_print_string (ATSstrcst("eval1_p2at: not implemented yet: p2t0 = ")) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_p2at (arg3) ; /* tmp72 = */ atspre_print_newline () ; tmp73 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 8074(line=388, offs=5) -- 8083(line=388, offs=14)", ATSstrcst("\n")) ; /* tmp39 = */ ats_exit_errmsg (1, tmp73) ; break ; } while (0) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 8328(line=402, offs=3) -- 8402(line=403, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp74) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atlst: tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at) ; return (tmp74) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atlst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 8456(line=408, offs=3) -- 8594(line=413, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atopt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atopt: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_0) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at (arg0, arg1, arg2, tmp76) ; tmp75 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp75, atslab_0, tmp77) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp75 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp75) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atopt] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 8669(line=419, offs=3) -- 8898(line=430, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2at (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2at: do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)arg3)->tag != 1) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_15, arg3, atslab_0) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_15, arg3, atslab_1) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at (arg0, arg1, arg2, tmp80) ; tmp78 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp78)->tag = 1 ; ats_selptrset_mac(anairiats_sum_15, tmp78, atslab_0, tmp79) ; ats_selptrset_mac(anairiats_sum_15, tmp78, atslab_1, tmp81) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (((ats_sum_ptr_type)arg3)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp78 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp78)->tag = 0 ; ats_selptrset_mac(anairiats_sum_4, tmp78, atslab_0, arg0) ; break ; } while (0) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2at] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 8955(line=434, offs=3) -- 9035(line=435, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2atlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2atlst: tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2at) ; return (tmp82) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labp2atlst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 9114(line=442, offs=3) -- 9190(line=443, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst: tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp) ; return (tmp83) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 9246(line=448, offs=3) -- 9368(line=451, offs=23) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2expopt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2expopt: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_2, arg3, atslab_0) ; tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp85) ; tmp84 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ats_selptrset_mac(anairiats_sum_2, tmp84, atslab_0, tmp86) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp84 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2expopt] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 9445(line=457, offs=16) -- 9577(line=463, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2exp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2exp: tmp88 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp89) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp87, atslab_0, tmp88) ; ats_selptrset_mac(anairiats_sum_1, tmp87, atslab_1, tmp90) ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2exp] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 9636(line=467, offs=3) -- 9717(line=468, offs=56) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2explst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp91) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2explst: tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2exp) ; return (tmp91) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2explst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 9797(line=475, offs=3) -- 10221(line=493, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2lablst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2lablst: do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_31_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp94 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp96 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp93), atslab_d2lab_node) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp96)->tag != 0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp95 = tmp93 ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (((ats_sum_ptr_type)tmp96)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_4, tmp96, atslab_0) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp97) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2lab_ind (arg0, tmp98) ; break ; } while (0) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2lablst (arg0, arg1, arg2, tmp94) ; tmp92 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp92, atslab_0, tmp95) ; ats_selptrset_mac(anairiats_sum_1, tmp92, atslab_1, tmp99) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp92 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp92) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2lablst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 10300(line=499, offs=3) -- 10581(line=512, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparg: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg3)->tag != 0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp101 = ats_caselptrlab_mac(anairiats_sum_15, arg3, atslab_1) ; tmp100 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp100)->tag = 0 ; ats_selptrset_mac(anairiats_sum_15, tmp100, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp100, atslab_1, tmp101) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (((ats_sum_ptr_type)arg3)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp102 = ats_caselptrlab_mac(anairiats_sum_17, arg3, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_17, arg3, atslab_2) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp103) ; tmp100 = ATS_MALLOC(sizeof(anairiats_sum_17)) ; ((ats_sum_ptr_type)tmp100)->tag = 1 ; ats_selptrset_mac(anairiats_sum_17, tmp100, atslab_0, tmp102) ; ats_selptrset_mac(anairiats_sum_17, tmp100, atslab_1, arg0) ; ats_selptrset_mac(anairiats_sum_17, tmp100, atslab_2, tmp104) ; break ; } while (0) ; return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparg] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 10640(line=516, offs=3) -- 10719(line=517, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparglst: tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparg) ; return (tmp105) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparglst] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2222(line=82, offs=17) -- 2282(line=85, offs=2) */ ATSstaticdec() ats_void_type prerr_errmac_loc_02050_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp113) ; // ATSlocal_void (tmp114) ; __ats_lab_prerr_errmac_loc_02050_: /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp113 = */ atspre_prerr_string (ATSstrcst(": error(mac)")) ; return /* (tmp113) */ ; } /* end of [prerr_errmac_loc_02050_] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 10914(line=531, offs=5) -- 11329(line=543, offs=4) */ ATSstaticdec() ats_void_type auxerr_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_auxerr_27: /* tmp112 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp115 = */ atspre_prerr_string (ATSstrcst(": the dynamic symbol [")) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (arg2) ; /* tmp117 = */ atspre_prerr_string (ATSstrcst("] at (")) ; tmp119 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_d2exp_loc) ; /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp119) ; /* tmp120 = */ atspre_prerr_string (ATSstrcst(") refers to a macrodef (to be called inside ,(...)).")) ; /* tmp121 = */ atspre_prerr_newline () ; tmp122 = ATS_MALLOC(sizeof(anairiats_sum_15)) ; ((ats_sum_ptr_type)tmp122)->tag = 96 ; ats_selptrset_mac(anairiats_sum_15, tmp122, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_15, tmp122, atslab_1, arg1) ; /* tmp111 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp122) ; return /* (tmp111) */ ; } /* end of [auxerr_27] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4) */ ATSstaticdec() ats_void_type loop_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab_loop_30: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp137 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp138 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp138, atslab_0, tmp136) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp138 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp139 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp137 ; arg1 = arg1 ; arg2 = tmp139 ; goto __ats_lab_loop_30 ; // tail call break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp135) */ ; } /* end of [loop_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4) */ ATSstaticdec() ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; // ATSlocal_void (tmp140) ; __ats_lab_list_append_01312_ats_ptr_type: /* ats_ptr_type tmp134 ; */ /* tmp140 = */ loop_30 (arg0, arg1, (&tmp134)) ; tmp133 = tmp134 ; return (tmp133) ; } /* end of [list_append_01312_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 10801(line=523, offs=20) -- 11975(line=571, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_applst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_int_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_applst: tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg3), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp107)->tag != 28) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 10841(line=527, offs=5) -- 10882(line=528, offs=32)") ; } tmp108 = ats_caselptrlab_mac(anairiats_sum_15, tmp107, atslab_0) ; tmp109 = ats_caselptrlab_mac(anairiats_sum_15, tmp107, atslab_1) ; tmp110 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp108), atslab_d2exp_loc) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp108) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exparglst (arg0, arg1, arg2, tmp109) ; tmp125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp123), atslab_d2exp_node) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp125)->tag != 70) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_4, tmp125, atslab_0) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_kind (tmp126) ; tmp128 = atspre_eq_int_int (tmp127, 0) ; if (tmp128) { tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short (arg0, tmp126, arg1, arg2, tmp124) ; } else { /* tmp129 = */ auxerr_27 (arg0, arg3, tmp126) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (arg0) ; } /* end of [if] */ break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp125)->tag != 28) { goto __ats_lab_41_0 ; } __ats_lab_38_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_15, tmp125, atslab_0) ; tmp131 = ats_caselptrlab_mac(anairiats_sum_15, tmp125, atslab_1) ; tmp132 = list_append_01312_ats_ptr_type (tmp131, tmp124) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst (arg0, tmp130, tmp132) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: __ats_lab_41_1: tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst (arg0, tmp123, tmp124) ; break ; } while (0) ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_applst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 12058(line=576, offs=20) -- 13210(line=617, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_macsyn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_macsyn: tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg3), atslab_d2exp_node) ; if (((ats_sum_ptr_type)tmp142)->tag != 71) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 12097(line=579, offs=7) -- 12135(line=579, offs=45)") ; } tmp143 = ats_caselptrlab_mac(anairiats_sum_15, tmp142, atslab_0) ; tmp144 = ats_caselptrlab_mac(anairiats_sum_15, tmp142, atslab_1) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp143)->tag != 1) { goto __ats_lab_45_0 ; } __ats_lab_42_1: tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp144) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp145)->tag != 7) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_4, tmp145, atslab_0) ; tmp141 = tmp146 ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: /* tmp147 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp148 = */ atspre_prerr_string (ATSstrcst(": the expansion of the dynamic expression at (")) ; tmp150 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp144), atslab_d2exp_loc) ; /* tmp149 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp150) ; /* tmp151 = */ atspre_prerr_string (ATSstrcst(") is expected to return code (AST) but it does not.")) ; /* tmp152 = */ atspre_prerr_newline () ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (arg0) ; break ; } while (0) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp143)->tag != 2) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp144) ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp (arg0, tmp153) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: /* tmp154 = */ prerr_errmac_loc_02050_ (arg0) ; /* tmp155 = */ atspre_prerr_string (ATSstrcst(": macro syntax is used incorrectly: ")) ; /* tmp156 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp (arg3) ; /* tmp157 = */ atspre_prerr_newline () ; tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (arg0) ; break ; } while (0) ; return (tmp141) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_macsyn] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 13288(line=623, offs=3) -- 20114(line=879, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_int_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; // ATSlocal_void (tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_int_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_int_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_int_type, tmp235) ; ATSlocal (ats_int_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_int_type, tmp239) ; ATSlocal (ats_int_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_int_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_int_type, tmp292) ; ATSlocal (ats_int_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp: tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg3), atslab_d2exp_node) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp159)->tag != 1) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2var (arg0, arg1, arg2, tmp160) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_var (arg0, tmp161) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp159)->tag != 0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp159)->tag != 2) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp159)->tag != 3) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp159)->tag != 5) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp159)->tag != 7) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp159)->tag != 6) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp159)->tag != 8) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp159)->tag != 9) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp159)->tag != 11) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp159)->tag != 10) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp159)->tag != 15) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp159)->tag != 12) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp159)->tag != 14) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp159)->tag != 18) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp162 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp163 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp (arg0, arg1, arg2, tmp162) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extval (arg0, tmp164, tmp163) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp159)->tag != 19) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_19, tmp159, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_19, tmp159, atslab_1) ; tmp167 = ats_caselptrlab_mac(anairiats_sum_19, tmp159, atslab_2) ; tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp (arg0, arg1, arg2, tmp165) ; tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp167) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extfcall (arg0, tmp168, tmp166, tmp169) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp159)->tag != 20) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_1) ; tmp172 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_2) ; tmp173 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_3) ; tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp (arg0, arg1, arg2, tmp170) ; tmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp171) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp173) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_extmcall (arg0, tmp174, tmp175, tmp172, tmp176) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp159)->tag != 21) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_0) ; tmp178 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_1) ; tmp179 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_2) ; tmp180 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_3) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_4) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_21, tmp159, atslab_5) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparglst (arg0, arg1, arg2, tmp179) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp182) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_con (arg0, tmp177, tmp178, tmp183, tmp180, tmp181, tmp184) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp159)->tag != 22) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp159)->tag != 25) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp185 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp186 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp185), atslab_d2exp_node) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp187) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_t2mpmarglst (arg0, arg1, arg2, tmp186) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tmpid (arg0, tmp188, tmp189) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp159)->tag != 26) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp190 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp191 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; /* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_push (arg2) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2eclist (arg0, arg1, arg2, tmp190) ; tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp191) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_pop (arg2) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_let (arg0, tmp193, tmp194) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp159)->tag != 27) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp196 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp197 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; /* tmp198 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_push (arg2) ; tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2eclist (arg0, arg1, arg2, tmp197) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp196) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_pop (arg2) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_where (arg0, tmp200, tmp199) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp159)->tag != 28) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_applst (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp159)->tag != 29) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_0) ; tmp203 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_1) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_2) ; tmp205 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_3) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvresstate (arg0, arg1, arg2, tmp202) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp203) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp204) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2expopt (arg0, arg1, arg2, tmp205) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ifhead (arg0, tmp206, tmp207, tmp208, tmp209) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp159)->tag != 30) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_0) ; tmp211 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_1) ; tmp212 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_2) ; tmp213 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_3) ; tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvresstate (arg0, arg1, arg2, tmp210) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp (arg0, arg1, arg2, tmp211) ; tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp212) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp213) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sifhead (arg0, tmp214, tmp215, tmp216, tmp217) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp159)->tag != 32) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_0) ; tmp219 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_1) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_2) ; tmp221 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_3) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_i2nvresstate (arg0, arg1, arg2, tmp219) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp220) ; tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2laulst (arg0, arg1, arg2, tmp221) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_casehead (arg0, tmp218, tmp222, tmp223, tmp224) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp159)->tag != 34) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp225 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp225) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_sing (arg0, tmp226) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp159)->tag != 35) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_13, tmp159, atslab_0) ; tmp228 = ats_caselptrlab_mac(anairiats_sum_13, tmp159, atslab_1) ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp228) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_list (arg0, tmp227, tmp229) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp159)->tag != 36) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_0) ; tmp231 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_1) ; tmp232 = ats_caselptrlab_mac(anairiats_sum_17, tmp159, atslab_2) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2expopt (arg0, arg1, arg2, tmp231) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp232) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lst (arg0, tmp230, tmp233, tmp234) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp159)->tag != 37) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_14, tmp159, atslab_0) ; tmp236 = ats_caselptrlab_mac(anairiats_sum_14, tmp159, atslab_1) ; tmp237 = ats_caselptrlab_mac(anairiats_sum_14, tmp159, atslab_2) ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp237) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_tup (arg0, tmp235, tmp236, tmp238) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp159)->tag != 38) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp239 = ats_caselptrlab_mac(anairiats_sum_14, tmp159, atslab_0) ; tmp240 = ats_caselptrlab_mac(anairiats_sum_14, tmp159, atslab_1) ; tmp241 = ats_caselptrlab_mac(anairiats_sum_14, tmp159, atslab_2) ; tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_labd2explst (arg0, arg1, arg2, tmp241) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_rec (arg0, tmp239, tmp240, tmp242) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp159)->tag != 39) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp243 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp243) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_seq (arg0, tmp244) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp159)->tag != 40) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp245 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp246 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp245) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2lablst (arg0, arg1, arg2, tmp246) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_selab (arg0, tmp247, tmp248) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp159)->tag != 41) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp249) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ptrof (arg0, tmp250) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp159)->tag != 42) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp251 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp251) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_viewat (arg0, tmp252) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp159)->tag != 43) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp253 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp254 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp254) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_deref (arg0, tmp253, tmp255) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp159)->tag != 44) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp257 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp256) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp257) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_assgn (arg0, tmp258, tmp259) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp159)->tag != 45) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp260 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp260) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp261) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_xchng (arg0, tmp262, tmp263) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp159)->tag != 46) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp264 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_0) ; tmp265 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_1) ; tmp266 = ats_caselptrlab_mac(anairiats_sum_20, tmp159, atslab_3) ; tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp265) ; tmp268 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp266) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrsub (arg0, tmp264, tmp267, arg0, tmp268) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp159)->tag != 48) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp269 = ats_caselptrlab_mac(anairiats_sum_19, tmp159, atslab_0) ; tmp270 = ats_caselptrlab_mac(anairiats_sum_19, tmp159, atslab_1) ; tmp271 = ats_caselptrlab_mac(anairiats_sum_19, tmp159, atslab_2) ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp (arg0, arg1, arg2, tmp269) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2expopt (arg0, arg1, arg2, tmp270) ; tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp271) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrinit (arg0, tmp272, tmp273, tmp274) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp159)->tag != 47) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp275 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp276 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2expopt (arg0, arg1, arg2, tmp275) ; tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp276) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_arrpsz (arg0, tmp277, tmp278) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp159)->tag != 49) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp279 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp280 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp279) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_raise (arg0, tmp280) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp159)->tag != 51) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp281 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp282 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2explst (arg0, arg1, arg2, tmp281) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vararg (arg0, tmp282) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp159)->tag != 52) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp283 = ats_caselptrlab_mac(anairiats_sum_13, tmp159, atslab_0) ; tmp284 = ats_caselptrlab_mac(anairiats_sum_13, tmp159, atslab_1) ; tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp284) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_vcopyenv (arg0, tmp283, tmp285) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp159)->tag != 53) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp286 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp286) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_showtype (arg0, tmp287) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp159)->tag != 55) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp288 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp289 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp290 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exparg (arg0, arg1, arg2, tmp288) ; tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp289) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_exist (arg0, tmp290, tmp291) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp159)->tag != 56) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp292 = ats_caselptrlab_mac(anairiats_sum_22, tmp159, atslab_0) ; tmp293 = ats_caselptrlab_mac(anairiats_sum_22, tmp159, atslab_1) ; tmp294 = ats_caselptrlab_mac(anairiats_sum_22, tmp159, atslab_2) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_22, tmp159, atslab_3) ; tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atlst (arg0, arg1, arg2, tmp294) ; tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp295) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn (arg0, tmp292, tmp293, tmp296, tmp297) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp159)->tag != 61) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp298 = ats_caselptrlab_mac(anairiats_sum_4, tmp159, atslab_0) ; tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp298) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_delay (arg0, tmp299) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp159)->tag != 62) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp300 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp301 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp302 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp300) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2expopt (arg0, arg1, arg2, tmp301) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ldelay (arg0, tmp302, tmp303) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp159)->tag != 70) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_make_node (arg0, tmp159) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp159)->tag != 71) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2exp_macsyn (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp159)->tag != 67) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp305 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp306 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp304) ; tmp307 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2exp (arg0, arg1, arg2, tmp305) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (arg0, tmp306, tmp307) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp159)->tag != 68) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp309 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp308) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff (arg0, tmp310, tmp309) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp159)->tag != 69) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp311 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_0) ; tmp312 = ats_caselptrlab_mac(anairiats_sum_15, tmp159, atslab_1) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp311) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo (arg0, tmp313, tmp312) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: __ats_lab_101_1: tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_errexp (arg0) ; break ; } while (0) ; return (tmp158) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 20185(line=885, offs=3) -- 20368(line=892, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2at (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2at: tmp316 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg3), atslab_gm2at_exp) ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp316) ; tmp318 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg3), atslab_gm2at_pat) ; tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atopt (arg0, arg1, arg2, tmp318) ; tmp314 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__gm2at_make (arg0, tmp315, tmp317) ; return (tmp314) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2at] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 20421(line=896, offs=3) -- 20499(line=897, offs=53) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2atlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp319) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2atlst: tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2at) ; return (tmp319) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2atlst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 20573(line=904, offs=3) -- 20862(line=912, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2lau (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_int_type, tmp327) ; ATSlocal (ats_int_type, tmp328) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2lau: tmp322 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg3), atslab_c2lau_pat) ; tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2atlst (arg0, arg1, arg2, tmp322) ; tmp324 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg3), atslab_c2lau_gua) ; tmp323 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_gm2atlst (arg0, arg1, arg2, tmp324) ; tmp326 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg3), atslab_c2lau_body) ; tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp326) ; tmp327 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg3), atslab_c2lau_seq) ; tmp328 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, arg3), atslab_c2lau_neg) ; tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__c2lau_make (arg0, tmp321, tmp323, tmp327, tmp328, tmp325) ; return (tmp320) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2lau] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 20915(line=916, offs=3) -- 20991(line=917, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2laulst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp329) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2laulst: tmp329 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2lau) ; return (tmp329) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_c2laulst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 21197(line=928, offs=13) -- 21824(line=958, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2ecl (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2ecl: tmp331 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg3), atslab_d2ecl_node) ; do { /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp331)->tag != 0) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_none (arg0) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp331)->tag != 1) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp332 = ats_caselptrlab_mac(anairiats_sum_4, tmp331, atslab_0) ; tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2eclist (arg0, arg1, arg2, tmp332) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_list (arg0, tmp333) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp331)->tag != 19) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp334 = ats_caselptrlab_mac(anairiats_sum_15, tmp331, atslab_0) ; tmp335 = ats_caselptrlab_mac(anairiats_sum_15, tmp331, atslab_1) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst (arg0, arg1, arg2, tmp335) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs (arg0, tmp334, tmp336) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp331)->tag != 20) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_15, tmp331, atslab_0) ; tmp338 = ats_caselptrlab_mac(anairiats_sum_15, tmp331, atslab_1) ; tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst_rec (arg0, arg1, arg2, tmp338) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_valdecs_rec (arg0, tmp337, tmp339) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: __ats_lab_106_1: tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2ecl_errdec (arg0) ; break ; } while (0) ; return (tmp330) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2ecl] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 21898(line=964, offs=3) -- 21974(line=965, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2eclist (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp340) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2eclist: tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_listmap (arg0, arg1, arg2, arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2ecl) ; return (tmp340) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_d2eclist] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 22091(line=976, offs=5) -- 22455(line=992, offs=2) */ ATSstaticdec() ats_ptr_type auxlst1_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; __ats_lab_auxlst1_40: do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp343 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp344 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp346 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp343), atslab_v2aldec_def) ; tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp346) ; tmp347 = auxlst1_40 (arg0, arg1, arg2, tmp344) ; tmp342 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp342, atslab_0, tmp345) ; ats_selptrset_mac(anairiats_sum_1, tmp342, atslab_1, tmp347) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp342 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp342) ; } /* end of [auxlst1_40] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 22525(line=995, offs=5) -- 23058(line=1016, offs=4) */ ATSstaticdec() ats_ptr_type auxlst2_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; __ats_lab_auxlst2_41: do { /* branch: __ats_lab_109 */ __ats_lab_109_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp350 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp351 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp353 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp350), atslab_v2aldec_pat) ; tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at (arg0, arg1, arg2, tmp353) ; if (arg4 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 22768(line=1007, offs=9) -- 22796(line=1007, offs=37)") ; } tmp354 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_0) ; tmp355 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_1) ; tmp357 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp350), atslab_v2aldec_ann) ; tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2expopt (arg0, arg1, arg2, tmp357) ; tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2aldec_make (arg0, tmp352, tmp354, tmp356) ; tmp359 = auxlst2_41 (arg0, arg1, arg2, tmp351, tmp355) ; tmp349 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp349, atslab_0, tmp358) ; ats_selptrset_mac(anairiats_sum_1, tmp349, atslab_1, tmp359) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_110_1: tmp349 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp349) ; } /* end of [auxlst2_41] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 22051(line=972, offs=1) -- 23127(line=1020, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp348) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst: tmp348 = auxlst1_40 (arg0, arg1, arg2, arg3) ; tmp341 = auxlst2_41 (arg0, arg1, arg2, arg3, tmp348) ; return (tmp341) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 23250(line=1029, offs=5) -- 23603(line=1042, offs=2) */ ATSstaticdec() ats_ptr_type auxlst1_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; __ats_lab_auxlst1_43: do { /* branch: __ats_lab_111 */ __ats_lab_111_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp362 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp363 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp365 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp362), atslab_v2aldec_pat) ; tmp364 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_p2at (arg0, arg1, arg2, tmp365) ; tmp366 = auxlst1_43 (arg0, arg1, arg2, tmp363) ; tmp361 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp361, atslab_0, tmp364) ; ats_selptrset_mac(anairiats_sum_1, tmp361, atslab_1, tmp366) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_112_1: tmp361 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp361) ; } /* end of [auxlst1_43] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 23673(line=1045, offs=5) -- 24179(line=1061, offs=2) */ ATSstaticdec() ats_ptr_type auxlst2_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; __ats_lab_auxlst2_44: do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp369 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp370 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp369), atslab_v2aldec_def) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp372) ; if (arg4 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 23905(line=1053, offs=11) -- 23933(line=1053, offs=39)") ; } tmp373 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_0) ; tmp374 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_1) ; tmp376 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp369), atslab_v2aldec_ann) ; tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_s2expopt (arg0, arg1, arg2, tmp376) ; tmp377 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__v2aldec_make (arg0, tmp373, tmp371, tmp375) ; tmp378 = auxlst2_44 (arg0, arg1, arg2, tmp370, tmp374) ; tmp368 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp368, atslab_0, tmp377) ; ats_selptrset_mac(anairiats_sum_1, tmp368, atslab_1, tmp378) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_114_1: tmp368 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp368) ; } /* end of [auxlst2_44] */ /* // /tmp/ATS-Postiats/src/pats_dmacro2_eval1.dats: 23210(line=1025, offs=22) -- 24248(line=1065, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp367) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst_rec: tmp367 = auxlst1_43 (arg0, arg1, arg2, arg3) ; tmp360 = auxlst2_44 (arg0, arg1, arg2, arg3, tmp367) ; return (tmp360) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__eval1_v2aldeclst_rec] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval1_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dmacro2_eval1_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_selab_dats.c0000644000175000017500000035403113431250607023113 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_d2lab_loc ; ats_ptr_type atslab_d2lab_node ; ats_ptr_type atslab_d2lab_overld ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_d3lab_loc ; ats_ptr_type atslab_d3lab_node ; ats_ptr_type atslab_d3lab_overld ; ats_ptr_type atslab_d3lab_overld_app ; } anairiats_rec_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_12 ; typedef struct { anairiats_rec_1 atslab_0 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_14 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_dyn_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_selab_tyrec_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_selab_labnot_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_selab_tyarr_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_arrind_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_arrdim_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_selab_linrest_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3lab_overld_app_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_selab_context_64) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_box) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_make_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2ctxt_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_igtez) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1uint_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_var) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_selab) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_lab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_nonmut) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lab_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_deref) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opn1exi_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_lin) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_mut) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d3exp_trup_selab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) ; static ats_void_type auxerr_7 (ats_ptr_type arg0) ; static ats_ptr_type arrbndck_6 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_int_type loop_12 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_15 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxcheck_13 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type arrbndlst_check_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type lincheck_16 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type labfind_lincheck_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ; static ats_ptr_type auxlab_sexp_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) ; static ats_ptr_type auxlab_shnf_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) ; static anairiats_rec_1 auxind_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static anairiats_rec_1 auxsel_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ; static anairiats_rec_1 auxselist_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ; static ats_ptr_type labfind_context_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ; static ats_ptr_type auxlab_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ; static anairiats_rec_1 auxind_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_bool_type arg4) ; static anairiats_rec_1 auxsel_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_bool_type arg3) ; static ats_void_type option_vt_free_01544_anairiats_rec_1 (ats_ptr_type arg0) ; static anairiats_rec_1 auxselist_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_bool_type arg3) ; static ats_void_type loop_32 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type auxerr_linrest_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_bool_type loop_40 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_take_exn_01442_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type auxfinize_38 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 1622(line=49, offs=18) -- 1652(line=49, offs=48) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_selab")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 2228(line=84, offs=12) -- 2492(line=98, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lab_trup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lab_trup: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2lab_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2lab_overld) ; tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d2lab_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp4)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_3, tmp4, atslab_0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_lab (tmp2, tmp5, tmp3) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (((ats_sum_ptr_type)tmp4)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_3, tmp4, atslab_0) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_trup (tmp6) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3lab_ind (tmp2, tmp7) ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lab_trup] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_loop_5: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp14 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp15 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp13, arg3) ; tmp16 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp16, atslab_0, tmp15) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp16 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp17 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp14 ; arg1 = arg1 ; arg2 = tmp17 ; arg3 = arg3 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp18 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp18 ; break ; } while (0) ; return /* (tmp12) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp19 ; */ /* tmp20 = */ loop_5 (arg0, arg1, (&tmp19), arg2) ; tmp11 = tmp19 ; return (tmp11) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp10 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp10) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 2543(line=101, offs=15) -- 2617(line=103, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup: tmp9 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lab_trup) ; tmp8 = ats_castfn_mac(ats_ptr_type, tmp9) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; __ats_lab_prerr_error3_loc_02051_: /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp26 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp26) */ ; } /* end of [prerr_error3_loc_02051_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 2751(line=116, offs=1) -- 3134(line=128, offs=4) */ ATSstaticdec() ats_void_type auxerr_7 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; // ATSlocal_void (tmp25) ; // ATSlocal_void (tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; __ats_lab_auxerr_7: tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_d3exp_loc) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg0) ; /* tmp25 = */ prerr_error3_loc_02051_ (tmp23) ; /* tmp28 = */ atspre_prerr_string (ATSstrcst(": the type of the array index is not ")) ; /* tmp29 = */ atspre_prerr_string (ATSstrcst("a generic (signed or unsigned) integer type: [")) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp24) ; /* tmp31 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp32 = */ atspre_prerr_newline () ; tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 46 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, arg0) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp33) ; return /* (tmp22) */ ; } /* end of [auxerr_7] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 2679(line=110, offs=1) -- 3839(line=158, offs=4) */ ATSstaticdec() ats_ptr_type arrbndck_6 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; __ats_lab_arrbndck_6: /* tmp34 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (arg0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg0) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp35) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype (tmp36) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (tmp37 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_6, tmp37, atslab_0) ; ATS_FREE(tmp37) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_igtez (tmp38) ; tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlt (tmp38, arg1) ; tmp42 = (ats_sum_ptr_type)0 ; tmp41 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp41, atslab_0, tmp40) ; ats_selptrset_mac(anairiats_sum_4, tmp41, atslab_1, tmp42) ; tmp21 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp21, atslab_0, tmp39) ; ats_selptrset_mac(anairiats_sum_4, tmp21, atslab_1, tmp41) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (tmp37 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1uint_index_t0ype (tmp36) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp43 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp44 = ats_caselptrlab_mac(anairiats_sum_6, tmp43, atslab_0) ; ATS_FREE(tmp43) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intlt (tmp44, arg1) ; tmp46 = (ats_sum_ptr_type)0 ; tmp21 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp21, atslab_0, tmp45) ; ats_selptrset_mac(anairiats_sum_4, tmp21, atslab_1, tmp46) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (tmp43 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: /* tmp47 = */ auxerr_7 (arg0) ; tmp21 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; } while (0) ; return (tmp21) ; } /* end of [arrbndck_6] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 3981(line=169, offs=1) -- 4380(line=181, offs=4) */ ATSstaticdec() ats_void_type auxerr_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; ATSlocal (ats_bool_type, tmp53) ; // ATSlocal_void (tmp54) ; ATSlocal (ats_bool_type, tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab_auxerr_10: /* tmp50 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp51 = */ atspre_prerr_string (ATSstrcst(": the label is expected to contain ")) ; tmp53 = atspre_lt_int_int (arg3, 0) ; if (tmp53) { /* tmp52 = */ atspre_prerr_string (ATSstrcst("more array indexes.")) ; } else { /* empty */ } /* end of [if] */ tmp55 = atspre_gt_int_int (arg3, 0) ; if (tmp55) { /* tmp54 = */ atspre_prerr_string (ATSstrcst("fewer array indexes.")) ; } else { /* empty */ } /* end of [if] */ /* tmp56 = */ atspre_prerr_newline () ; tmp57 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp57)->tag = 47 ; ats_selptrset_mac(anairiats_sum_7, tmp57, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp57, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp57, atslab_2, arg1) ; /* tmp49 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp57) ; return /* (tmp49) */ ; } /* end of [auxerr_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_12 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_int_type, tmp62) ; __ats_lab_loop_12: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp62 = atspre_isucc (arg1) ; arg0 = tmp61 ; arg1 = tmp62 ; goto __ats_lab_loop_12 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp60 = arg1 ; break ; } while (0) ; return (tmp60) ; } /* end of [loop_12] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp59) ; __ats_lab_list_length_01410_ats_ptr_type: tmp59 = loop_12 (arg0, 0) ; return (tmp59) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_15 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab_loop_15: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp74 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp74 ; arg1 = arg1 ; goto __ats_lab_loop_15 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp73) */ ; } /* end of [loop_15] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; // ATSlocal_void (tmp75) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp72 ; */ tmp72 = arg0 ; /* tmp75 = */ loop_15 ((&tmp72), arg1) ; tmp71 = tmp72 ; return (tmp71) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 4467(line=187, offs=1) -- 4830(line=202, offs=2) */ ATSstaticdec() ats_ptr_type auxcheck_13 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab_auxcheck_13: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_10_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp66 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_selab.dats: 4597(line=194, offs=11) -- 4633(line=195, offs=27)") ; } tmp67 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp69 = arrbndck_6 (tmp65, tmp67) ; tmp70 = auxcheck_13 (tmp66, tmp68) ; tmp64 = list_vt_append_01504_ats_ptr_type (tmp69, tmp70) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp64 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp64) ; } /* end of [auxcheck_13] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 3890(line=163, offs=1) -- 5105(line=218, offs=4) */ ATSstaticdec() ats_ptr_type arrbndlst_check_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_int_type, tmp58) ; ATSlocal (ats_int_type, tmp63) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_bool_type, tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_bool_type, tmp79) ; // ATSlocal_void (tmp80) ; __ats_lab_arrbndlst_check_9: tmp58 = list_length_01410_ats_ptr_type (arg1) ; tmp63 = list_length_01410_ats_ptr_type (arg2) ; tmp76 = atspre_isub (tmp58, tmp63) ; tmp77 = atspre_ilt (tmp76, 0) ; if (tmp77) { /* tmp78 = */ auxerr_10 (arg0, arg1, arg2, tmp76) ; tmp48 = (ats_sum_ptr_type)0 ; } else { tmp79 = atspre_igt (tmp76, 0) ; if (tmp79) { /* tmp80 = */ auxerr_10 (arg0, arg1, arg2, tmp76) ; tmp48 = (ats_sum_ptr_type)0 ; } else { tmp48 = auxcheck_13 (arg1, arg2) ; } /* end of [if] */ } /* end of [if] */ return (tmp48) ; } /* end of [arrbndlst_check_9] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 5190(line=227, offs=1) -- 5610(line=251, offs=4) */ ATSstaticdec() ats_void_type lincheck_16 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp81) ; ATSlocal (ats_bool_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_bool_type, tmp87) ; ATSlocal (ats_int_type, tmp88) ; __ats_lab_lincheck_16: tmp82 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg1), 0) ; if (tmp82) { do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp83 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp84 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; // tmp85 = ats_caselptrlab_mac(anairiats_sum_8, tmp83, atslab_2) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp85) ; if (tmp87) { tmp88 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp88 ; } else { /* empty */ } /* end of [if] */ arg0 = tmp84 ; arg1 = arg1 ; goto __ats_lab_lincheck_16 ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_15_1: break ; } while (0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp81) */ ; } /* end of [lincheck_16] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 5637(line=254, offs=1) -- 6359(line=285, offs=4) */ ATSstaticdec() ats_ptr_type labfind_lincheck_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_bool_type, tmp94) ; // ATSlocal_void (tmp95) ; ATSlocal (ats_bool_type, tmp97) ; ATSlocal (ats_bool_type, tmp98) ; ATSlocal (ats_int_type, tmp99) ; ATSlocal (ats_int_type, tmp100) ; __ats_lab_labfind_lincheck_17: do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_8, tmp90, atslab_0) ; tmp93 = ats_caselptrlab_mac(anairiats_sum_8, tmp90, atslab_2) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (arg0, tmp92) ; if (tmp94) { /* tmp95 = */ lincheck_16 (tmp91, arg2) ; tmp89 = tmp93 ; } else { tmp97 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ; if (tmp97) { tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp93) ; if (tmp98) { tmp99 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp99 ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = tmp91 ; arg2 = arg2 ; arg3 = arg3 ; goto __ats_lab_labfind_lincheck_17 ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp100 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp100 ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; return (tmp89) ; } /* end of [labfind_lincheck_17] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 6394(line=288, offs=1) -- 6598(line=298, offs=4) */ ATSstaticdec() ats_ptr_type auxlab_sexp_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; __ats_lab_auxlab_sexp_18: tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp101 = auxlab_shnf_19 (arg0, tmp102, arg2, arg3, arg4, arg5) ; return (tmp101) ; } /* end of [auxlab_sexp_18] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 6625(line=301, offs=1) -- 9212(line=399, offs=4) */ ATSstaticdec() ats_ptr_type auxlab_shnf_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_int_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_bool_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; // ATSlocal_void (tmp113) ; ATSlocal (ats_bool_type, tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; // ATSlocal_void (tmp120) ; // ATSlocal_void (tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; // ATSlocal_void (tmp127) ; // ATSlocal_void (tmp128) ; // ATSlocal_void (tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; __ats_lab_auxlab_shnf_19: tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp105 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp104), atslab_s2exp_node) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp105)->tag != 25) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_10, tmp105, atslab_0) ; tmp107 = ats_caselptrlab_mac(anairiats_sum_10, tmp105, atslab_2) ; /* ats_int_type tmp108 ; */ tmp108 = 0 ; tmp109 = labfind_lincheck_17 (arg3, tmp107, arg4, (&tmp108)) ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_box (tmp106) ; if (tmp111) { tmp112 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg5), 1) ; ats_ptrget_mac(ats_int_type, arg5) = tmp112 ; } else { /* empty */ } /* end of [if] */ tmp114 = atspre_gt_int_int (tmp108, 0) ; if (tmp114) { /* tmp115 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp116 = */ atspre_prerr_string (ATSstrcst(": the record-type [")) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp104) ; /* tmp118 = */ atspre_prerr_string (ATSstrcst("] is expected to contain the label [")) ; /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label (arg3) ; /* tmp120 = */ atspre_prerr_string (ATSstrcst("] but it does not.")) ; /* tmp121 = */ atspre_prerr_newline () ; tmp122 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp122)->tag = 44 ; ats_selptrset_mac(anairiats_sum_7, tmp122, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp122, atslab_1, tmp104) ; ats_selptrset_mac(anairiats_sum_7, tmp122, atslab_2, arg3) ; /* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp122) ; } else { /* empty */ } /* end of [if] */ tmp103 = tmp109 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp105)->tag != 27) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp104) ; tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opn1exi_and_add (arg0, tmp123) ; tmp103 = auxlab_sexp_18 (arg0, tmp124, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: __ats_lab_20_1: tmp125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg2), atslab_d3lab_overld) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (tmp125 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp126 = ats_caselptrlab_mac(anairiats_sum_6, tmp125, atslab_0) ; /* tmp127 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp128 = */ atspre_prerr_string (ATSstrcst(": overloaded dot-symbol: [")) ; /* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2sym (tmp126) ; /* tmp130 = */ atspre_prerr_string (ATSstrcst("] should be applied.")) ; /* tmp131 = */ atspre_prerr_newline () ; tmp133 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp133)->tag = 50 ; ats_selptrset_mac(anairiats_sum_12, tmp133, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp133, atslab_1, arg2) ; /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp133) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp125 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: /* tmp134 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp135 = */ atspre_prerr_string (ATSstrcst(": [")) ; /* tmp136 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label (arg3) ; /* tmp137 = */ atspre_prerr_string (ATSstrcst("] cannot be found")) ; /* tmp138 = */ atspre_prerr_string (ATSstrcst(": the type [")) ; /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp104) ; /* tmp140 = */ atspre_prerr_string (ATSstrcst("] is expected to be a tyrec(record).")) ; /* tmp141 = */ atspre_prerr_newline () ; tmp143 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp143)->tag = 43 ; ats_selptrset_mac(anairiats_sum_12, tmp143, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp143, atslab_1, tmp104) ; /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp143) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; break ; } while (0) ; return (tmp103) ; } /* end of [auxlab_shnf_19] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 9242(line=402, offs=1) -- 10209(line=448, offs=4) */ ATSstaticdec() anairiats_rec_1 auxind_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; __ats_lab_auxind_20: tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp145) ; tmp147 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp146), atslab_s2exp_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp147)->tag != 24) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_12, tmp147, atslab_0) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_12, tmp147, atslab_1) ; tmp150 = arrbndlst_check_9 (arg0, arg2, tmp149) ; tmp144.atslab_0 = tmp148 ; tmp144.atslab_1 = tmp150 ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp147)->tag != 27) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp146) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opn1exi_and_add (arg0, tmp151) ; arg0 = arg0 ; arg1 = tmp152 ; arg2 = arg2 ; goto __ats_lab_auxind_20 ; // tail call break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: /* tmp153 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp154 = */ atspre_prerr_string (ATSstrcst(": the type [")) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp146) ; /* tmp156 = */ atspre_prerr_string (ATSstrcst("] is expected to be a tyarr (array-type).")) ; /* tmp157 = */ atspre_prerr_newline () ; tmp159 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp159)->tag = 45 ; ats_selptrset_mac(anairiats_sum_12, tmp159, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp159, atslab_1, tmp146) ; /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp159) ; tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; tmp161 = (ats_sum_ptr_type)0 ; tmp144.atslab_0 = tmp160 ; tmp144.atslab_1 = tmp161 ; break ; } while (0) ; return (tmp144) ; } /* end of [auxind_20] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 10234(line=451, offs=1) -- 10761(line=478, offs=4) */ ATSstaticdec() anairiats_rec_1 auxsel_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (anairiats_rec_1, tmp170) ; ATSlocal (ats_bool_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_int_type, tmp174) ; __ats_lab_auxsel_21: tmp163 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d3lab_loc) ; tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d3lab_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp164)->tag != 0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_3, tmp164, atslab_0) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ; tmp167 = auxlab_shnf_19 (tmp163, tmp166, arg1, tmp165, arg2, arg3) ; tmp168 = (ats_sum_ptr_type)0 ; tmp162.atslab_0 = tmp167 ; tmp162.atslab_1 = tmp168 ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (((ats_sum_ptr_type)tmp164)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_3, tmp164, atslab_0) ; tmp170 = auxind_20 (tmp163, arg0, tmp169) ; tmp173 = ats_select_mac(tmp170, atslab_0) ; tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp173) ; if (tmp172) { tmp174 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp174 ; } else { /* empty */ } /* end of [if] */ tmp162 = tmp170 ; break ; } while (0) ; return (tmp162) ; } /* end of [auxsel_21] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 10786(line=481, offs=1) -- 11196(line=498, offs=4) */ ATSstaticdec() anairiats_rec_1 auxselist_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (anairiats_rec_1, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (anairiats_rec_1, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; __ats_lab_auxselist_22: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp176 = (ats_sum_ptr_type)0 ; tmp175.atslab_0 = arg0 ; tmp175.atslab_1 = tmp176 ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp177 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp178 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp179 = auxsel_21 (arg0, tmp177, arg2, arg3) ; tmp180 = ats_select_mac(tmp179, atslab_0) ; tmp181 = ats_select_mac(tmp179, atslab_1) ; tmp182 = auxselist_22 (tmp180, tmp178, arg2, arg3) ; tmp183 = ats_select_mac(tmp182, atslab_0) ; tmp184 = ats_select_mac(tmp182, atslab_1) ; tmp185 = list_vt_append_01504_ats_ptr_type (tmp181, tmp184) ; tmp175.atslab_0 = tmp183 ; tmp175.atslab_1 = tmp185 ; break ; } while (0) ; return (tmp175) ; } /* end of [auxselist_22] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 11288(line=504, offs=1) -- 11371(line=507, offs=42) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp186) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing: tmp186 = auxselist_22 (arg1, arg2, arg3, arg4) ; return (tmp186) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 11474(line=517, offs=1) -- 12518(line=557, offs=4) */ ATSstaticdec() ats_ptr_type labfind_context_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_bool_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (anairiats_rec_1, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_int_type, tmp206) ; __ats_lab_labfind_context_24: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_30_1: tmp188 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp190 = ats_caselptrlab_mac(anairiats_sum_8, tmp188, atslab_0) ; tmp191 = ats_caselptrlab_mac(anairiats_sum_8, tmp188, atslab_1) ; tmp192 = ats_caselptrlab_mac(anairiats_sum_8, tmp188, atslab_2) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__eq_label_label (arg0, tmp190) ; if (tmp193) { tmp194 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp192), atslab_s2exp_srt) ; tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_make_srt (tmp194) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole (tmp195) ; tmp197 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp197, atslab_0, tmp190) ; ats_selptrset_mac(anairiats_sum_8, tmp197, atslab_1, tmp191) ; ats_selptrset_mac(anairiats_sum_8, tmp197, atslab_2, tmp196) ; tmp198 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp198, atslab_0, tmp197) ; ats_selptrset_mac(anairiats_sum_4, tmp198, atslab_1, tmp189) ; if (ats_ptrget_mac(ats_ptr_type, arg2) != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_selab.dats: 11933(line=536, offs=11) -- 11953(line=536, offs=31)") ; } tmp200.atslab_0 = tmp198 ; tmp200.atslab_1 = tmp195 ; tmp199 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp199, atslab_0, tmp200) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp199 ; tmp187 = tmp192 ; } else { tmp201 = labfind_context_24 (arg0, tmp189, arg2, arg3) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp203 = &ats_caselptrlab_mac(anairiats_sum_13, ats_ptrget_mac(ats_ptr_type, arg2), atslab_0) ; tmp205 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp203), atslab_0) ; tmp204 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp204, atslab_0, tmp188) ; ats_selptrset_mac(anairiats_sum_4, tmp204, atslab_1, tmp205) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp203), atslab_0) = tmp204 ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (ats_ptrget_mac(ats_ptr_type, arg2) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: break ; } while (0) ; tmp187 = tmp201 ; } /* end of [if] */ break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp206 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ; ats_ptrget_mac(ats_int_type, arg3) = tmp206 ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; return (tmp187) ; } /* end of [labfind_context_24] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 12605(line=563, offs=1) -- 14095(line=620, offs=4) */ ATSstaticdec() ats_ptr_type auxlab_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_int_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_int_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (anairiats_rec_1, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (anairiats_rec_1, tmp223) ; // ATSlocal_void (tmp224) ; ATSlocal (ats_bool_type, tmp225) ; // ATSlocal_void (tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp229) ; // ATSlocal_void (tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; __ats_lab_auxlab_25: tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp209 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp208), atslab_s2exp_node) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp209)->tag != 25) { goto __ats_lab_37_0 ; } __ats_lab_34_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_10, tmp209, atslab_0) ; tmp211 = ats_caselptrlab_mac(anairiats_sum_10, tmp209, atslab_1) ; tmp212 = ats_caselptrlab_mac(anairiats_sum_10, tmp209, atslab_2) ; /* ats_ptr_type tmp213 ; */ tmp213 = (ats_sum_ptr_type)0 ; /* ats_int_type tmp214 ; */ tmp214 = 0 ; tmp215 = labfind_context_24 (arg2, tmp212, (&tmp213), (&tmp214)) ; do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (tmp213 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } tmp217 = ats_caselptrlab_mac(anairiats_sum_13, tmp213, atslab_0) ; __ats_lab_35_1: tmp218 = ats_select_mac(tmp217, atslab_0) ; tmp219 = ats_select_mac(tmp217, atslab_1) ; ATS_FREE(tmp213) ; tmp220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp208), atslab_s2exp_srt) ; tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp220, tmp210, tmp211, tmp218) ; if (ats_ptrget_mac(ats_ptr_type, arg3) != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_selab.dats: 13176(line=588, offs=15) -- 13196(line=588, offs=35)") ; } tmp223.atslab_0 = tmp221 ; tmp223.atslab_1 = tmp219 ; tmp222 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp222, atslab_0, tmp223) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp222 ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (tmp213 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: break ; } while (0) ; tmp225 = atspre_gt_int_int (tmp214, 0) ; if (tmp225) { /* tmp226 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp227 = */ atspre_prerr_string (ATSstrcst(": the record-type [")) ; /* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp208) ; /* tmp229 = */ atspre_prerr_string (ATSstrcst("] is expected to contain the label [")) ; /* tmp230 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__prerr_label (arg2) ; /* tmp231 = */ atspre_prerr_string (ATSstrcst("] but it does not.")) ; /* tmp232 = */ atspre_prerr_newline () ; tmp233 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp233)->tag = 44 ; ats_selptrset_mac(anairiats_sum_7, tmp233, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp233, atslab_1, tmp208) ; ats_selptrset_mac(anairiats_sum_7, tmp233, atslab_2, arg2) ; /* tmp224 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp233) ; } else { /* empty */ } /* end of [if] */ tmp207 = tmp215 ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: /* tmp234 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp235 = */ atspre_prerr_string (ATSstrcst(": the type [")) ; /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp208) ; /* tmp237 = */ atspre_prerr_string (ATSstrcst("] is expected to be a tyrec(record).")) ; /* tmp238 = */ atspre_prerr_newline () ; tmp240 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ((ats_sum_ptr_type)tmp240)->tag = 43 ; ats_selptrset_mac(anairiats_sum_12, tmp240, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_12, tmp240, atslab_1, tmp208) ; /* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp240) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; } while (0) ; return (tmp207) ; } /* end of [auxlab_25] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 14120(line=623, offs=1) -- 14720(line=653, offs=4) */ ATSstaticdec() anairiats_rec_1 auxind_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_bool_type arg4) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; __ats_lab_auxind_26: tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp243 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp242), atslab_s2exp_node) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp243)->tag != 24) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp244 = ats_caselptrlab_mac(anairiats_sum_12, tmp243, atslab_0) ; tmp245 = ats_caselptrlab_mac(anairiats_sum_12, tmp243, atslab_1) ; if (arg4) { tmp246 = arrbndlst_check_9 (arg0, arg2, tmp245) ; } else { tmp246 = (ats_sum_ptr_type)0 ; } /* end of [if] */ tmp241.atslab_0 = tmp244 ; tmp241.atslab_1 = tmp246 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: __ats_lab_39_1: tmp247 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; tmp248 = (ats_sum_ptr_type)0 ; tmp241.atslab_0 = tmp247 ; tmp241.atslab_1 = tmp248 ; break ; } while (0) ; return (tmp241) ; } /* end of [auxind_26] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 14745(line=656, offs=1) -- 15193(line=678, offs=4) */ ATSstaticdec() anairiats_rec_1 auxsel_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_bool_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab_auxsel_27: tmp250 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d3lab_loc) ; tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ; tmp252 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg1), atslab_d3lab_node) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp252)->tag != 0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp253 = ats_caselptrlab_mac(anairiats_sum_3, tmp252, atslab_0) ; tmp254 = auxlab_25 (tmp250, tmp251, tmp253, arg2) ; tmp255 = (ats_sum_ptr_type)0 ; tmp249.atslab_0 = tmp254 ; tmp249.atslab_1 = tmp255 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (((ats_sum_ptr_type)tmp252)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp256 = ats_caselptrlab_mac(anairiats_sum_3, tmp252, atslab_0) ; tmp249 = auxind_26 (tmp250, tmp251, tmp256, arg2, arg3) ; break ; } while (0) ; return (tmp249) ; } /* end of [auxsel_27] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2556(line=86, offs=16) -- 2611(line=87, offs=49) */ ATSstaticdec() ats_void_type option_vt_free_01544_anairiats_rec_1 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp282) ; __ats_lab_option_vt_free_01544_anairiats_rec_1: do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_48_1: ATS_FREE(arg0) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: break ; } while (0) ; return /* (tmp282) */ ; } /* end of [option_vt_free_01544_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 15218(line=681, offs=1) -- 16915(line=744, offs=4) */ ATSstaticdec() anairiats_rec_1 auxselist_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_bool_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (anairiats_rec_1, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (anairiats_rec_1, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (anairiats_rec_1, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (anairiats_rec_1, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; // ATSlocal_void (tmp281) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (anairiats_rec_1, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; __ats_lab_auxselist_28: do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } tmp258 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; if (tmp258 != (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp259 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp257 = auxsel_27 (arg0, tmp259, arg2, arg3) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_43_1: tmp260 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp262 = auxsel_27 (arg0, tmp260, arg2, arg3) ; tmp263 = ats_select_mac(tmp262, atslab_0) ; tmp264 = ats_select_mac(tmp262, atslab_1) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; } tmp265 = ats_caselptrlab_mac(anairiats_sum_13, ats_ptrget_mac(ats_ptr_type, arg2), atslab_0) ; __ats_lab_44_1: tmp266 = ats_select_mac(tmp265, atslab_0) ; tmp267 = ats_select_mac(tmp265, atslab_1) ; ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg2)) ; tmp268 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp268 ; tmp269 = auxselist_28 (tmp263, tmp261, arg2, arg3) ; tmp270 = ats_select_mac(tmp269, atslab_0) ; tmp272 = ats_select_mac(tmp269, atslab_1) ; tmp271 = list_vt_append_01504_ats_ptr_type (tmp264, tmp272) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp273 = &ats_caselptrlab_mac(anairiats_sum_13, ats_ptrget_mac(ats_ptr_type, arg2), atslab_0) ; tmp275 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp273), atslab_0) ; tmp274 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl (tmp266, tmp275) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp273), atslab_0) = tmp274 ; tmp257.atslab_0 = tmp270 ; tmp257.atslab_1 = tmp271 ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (ats_ptrget_mac(ats_ptr_type, arg2) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp257.atslab_0 = tmp270 ; tmp257.atslab_1 = tmp271 ; break ; } while (0) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: // if (ats_ptrget_mac(ats_ptr_type, arg2) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_47_1: tmp276 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp276 ; tmp277 = auxselist_28 (tmp263, tmp261, arg2, arg3) ; tmp278 = ats_select_mac(tmp277, atslab_0) ; tmp280 = ats_select_mac(tmp277, atslab_1) ; tmp279 = list_vt_append_01504_ats_ptr_type (tmp264, tmp280) ; /* tmp281 = */ option_vt_free_01544_anairiats_rec_1 (ats_ptrget_mac(ats_ptr_type, arg2)) ; tmp283 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp283 ; tmp257.atslab_0 = tmp278 ; tmp257.atslab_1 = tmp279 ; break ; } while (0) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp284 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_s2exp_srt) ; tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_make_srt (tmp284) ; tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole (tmp285) ; if (ats_ptrget_mac(ats_ptr_type, arg2) != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_selab.dats: 16777(line=738, offs=9) -- 16797(line=738, offs=29)") ; } tmp288.atslab_0 = tmp286 ; tmp288.atslab_1 = tmp285 ; tmp287 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp287, atslab_0, tmp288) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp287 ; tmp289 = (ats_sum_ptr_type)0 ; tmp257.atslab_0 = arg0 ; tmp257.atslab_1 = tmp289 ; break ; } while (0) ; return (tmp257) ; } /* end of [auxselist_28] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_32 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; __ats_lab_loop_32: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp296 ; goto __ats_lab_loop_32 ; // tail call break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: break ; } while (0) ; return /* (tmp295) */ ; } /* end of [loop_32] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp294) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp294 = */ loop_32 (arg0) ; return /* (tmp294) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 17001(line=750, offs=3) -- 17422(line=777, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (anairiats_rec_1, tmp292) ; // ATSlocal_void (tmp293) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (anairiats_rec_1, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context: /* ats_ptr_type tmp291 ; */ tmp291 = (ats_sum_ptr_type)0 ; tmp292 = auxselist_28 (arg1, arg2, (&tmp291), ats_false_bool) ; tmp297 = ats_select_mac(tmp292, atslab_1) ; /* tmp293 = */ list_vt_free_01499_ats_ptr_type (tmp297) ; do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (tmp291 != (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (tmp291 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp299 = ats_caselptrlab_mac(anairiats_sum_13, tmp291, atslab_0) ; __ats_lab_54_1: tmp300 = ats_select_mac(tmp299, atslab_0) ; tmp301 = ats_select_mac(tmp299, atslab_1) ; ATS_FREE(tmp291) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2ctxt_make (tmp300, tmp301) ; tmp302 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp302, atslab_0, tmp303) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp302 ; break ; } while (0) ; tmp290 = ats_select_mac(tmp292, atslab_0) ; return (tmp290) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 17506(line=781, offs=3) -- 17847(line=799, offs=4) */ ATSglobaldec() anairiats_rec_1 _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context_check (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) { /* local vardec */ ATSlocal (anairiats_rec_1, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (anairiats_rec_1, tmp306) ; ATSlocal (anairiats_rec_1, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context_check: /* ats_ptr_type tmp305 ; */ tmp305 = (ats_sum_ptr_type)0 ; tmp306 = auxselist_28 (arg1, arg2, (&tmp305), ats_true_bool) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (tmp305 != (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (tmp305 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp308 = ats_caselptrlab_mac(anairiats_sum_13, tmp305, atslab_0) ; __ats_lab_56_1: tmp309 = ats_select_mac(tmp308, atslab_0) ; tmp310 = ats_select_mac(tmp308, atslab_1) ; ATS_FREE(tmp305) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2ctxt_make (tmp309, tmp310) ; tmp311 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp311, atslab_0, tmp312) ; ats_ptrget_mac(ats_ptr_type, arg3) = tmp311 ; break ; } while (0) ; tmp304 = tmp306 ; return (tmp304) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context_check] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 18539(line=842, offs=1) -- 20411(line=934, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_lin (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_int_type, tmp316) ; ATSlocal (ats_int_type, tmp317) ; ATSlocal (anairiats_rec_1, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; // ATSlocal_void (tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_bool_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_bool_type, tmp327) ; // ATSlocal_void (tmp328) ; ATSlocal (ats_bool_type, tmp329) ; // ATSlocal_void (tmp330) ; // ATSlocal_void (tmp331) ; // ATSlocal_void (tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; // ATSlocal_void (tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_lin: tmp314 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2var_get_type_some (arg1, arg2) ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg3) ; /* ats_int_type tmp316 ; */ tmp316 = 0 ; /* ats_int_type tmp317 ; */ tmp317 = 0 ; tmp318 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg0, tmp314, tmp315, (&tmp316), (&tmp317)) ; tmp320 = ats_select_mac(tmp318, atslab_0) ; tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp320) ; tmp322 = ats_select_mac(tmp318, atslab_1) ; /* tmp321 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp322) ; tmp323 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp319) ; if (tmp323) { tmp324 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp314), atslab_s2exp_srt) ; /* ats_ptr_type tmp325 ; */ tmp325 = (ats_sum_ptr_type)0 ; tmp326 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_context (arg0, tmp314, tmp315, (&tmp325)) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (tmp325 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp327 = ats_true_bool ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: // if (tmp325 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_58_1: tmp327 = ats_false_bool ; break ; } while (0) ; tmp329 = atspre_neg_bool (tmp327) ; if (tmp329) { /* tmp330 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp331 = */ atspre_prerr_string (ATSstrcst(": the linear component cannot be taken out.")) ; /* tmp332 = */ atspre_prerr_newline () ; tmp333 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp333)->tag = 64 ; ats_selptrset_mac(anairiats_sum_7, tmp333, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp333, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_7, tmp333, atslab_2, tmp315) ; /* tmp328 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp333) ; } else { /* empty */ } /* end of [if] */ /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (arg2) ; tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize (1, tmp326) ; do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (tmp325 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_6, tmp325, atslab_0) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (tmp337, tmp335) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (tmp325 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: tmp336 = tmp314 ; break ; } while (0) ; tmp339 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp339, atslab_0, tmp336) ; /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg2, tmp339) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_var (arg0, tmp326, arg2, tmp314, tmp315) ; } else { tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_var (arg0, tmp319, arg2, tmp314, tmp315) ; } /* end of [if] */ return (tmp313) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_lin] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 20571(line=945, offs=3) -- 21090(line=982, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_mut (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_mut: tmp341 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (arg2) ; if (tmp341 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_selab.dats: 20608(line=948, offs=1) -- 20641(line=949, offs=29)") ; } tmp342 = ats_caselptrlab_mac(anairiats_sum_6, tmp341, atslab_0) ; tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg3) ; /* ats_ptr_type tmp344 ; */ tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2addr_deref (arg0, tmp342, tmp343, (&tmp344)) ; tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_sel_var (arg0, tmp345, arg2, tmp344, tmp343) ; return (tmp340) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_mut] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 21175(line=988, offs=3) -- 21512(line=1000, offs=6) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_bool_type, tmp347) ; ATSlocal (ats_bool_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: __ats_lab_61_1: tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (arg2) ; if (!tmp347) { goto __ats_lab_62_1 ; } tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_lin (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (arg2) ; if (!tmp348) { goto __ats_lab_63_1 ; } tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab_mut (arg0, arg1, arg2, arg3) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: __ats_lab_63_1: tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_var_nonmut (arg1, arg2) ; tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg3) ; tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d3exp_trup_selab (arg0, tmp349, tmp350) ; break ; } while (0) ; return (tmp346) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 21600(line=1009, offs=1) -- 21885(line=1026, offs=4) */ ATSstaticdec() ats_void_type auxerr_linrest_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; // ATSlocal_void (tmp353) ; // ATSlocal_void (tmp354) ; ATSlocal (ats_ptr_type, tmp355) ; __ats_lab_auxerr_linrest_37: /* tmp352 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp353 = */ atspre_prerr_string (ATSstrcst(": a linear component is abandoned by field selection.")) ; /* tmp354 = */ atspre_prerr_newline () ; tmp355 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp355)->tag = 48 ; ats_selptrset_mac(anairiats_sum_7, tmp355, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_7, tmp355, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_7, tmp355, atslab_2, arg2) ; /* tmp351 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp355) ; return /* (tmp351) */ ; } /* end of [auxerr_linrest_37] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 65219(line=2357, offs=5) -- 65793(line=2372, offs=6) */ ATSstaticdec() ats_bool_type loop_40 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp364) ; ATSlocal (ats_bool_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_int_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; __ats_lab_loop_40: tmp365 = atspre_igt (arg1, 0) ; if (tmp365) { do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp366 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp367 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp368 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp368, atslab_0, tmp366) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp368 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp369 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; tmp370 = atspre_isub (arg1, 1) ; arg0 = tmp367 ; arg1 = tmp370 ; arg2 = tmp369 ; goto __ats_lab_loop_40 ; // tail call break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp371 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp371 ; tmp364 = ats_true_bool ; break ; } while (0) ; } else { tmp372 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp372 ; tmp364 = ats_false_bool ; } /* end of [if] */ return (tmp364) ; } /* end of [loop_40] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 65198(line=2355, offs=10) -- 66125(line=2386, offs=4) */ ATSstaticdec() ats_ptr_type list_take_exn_01442_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_bool_type, tmp374) ; // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; __ats_lab_list_take_exn_01442_ats_ptr_type: /* ats_ptr_type tmp373 ; */ tmp374 = loop_40 (arg0, arg1, (&tmp373)) ; if (tmp374) { /* tmp375 = */ list_vt_free_01499_ats_ptr_type (tmp373) ; tmp376 = ListSubscriptException_make () ; /* tmp363 = */ ats_raise_exn (tmp376) ; } else { tmp363 = tmp373 ; } /* end of [if] */ return (tmp363) ; } /* end of [list_take_exn_01442_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 21918(line=1029, offs=1) -- 22944(line=1062, offs=4) */ ATSstaticdec() ats_ptr_type auxfinize_38 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_int_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_int_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_int_type, tmp380) ; ATSlocal (ats_ptr_type, tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; __ats_lab_auxfinize_38: do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_69_0 ; } __ats_lab_64_1: tmp357 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ; tmp358 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ; tmp359 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp357), atslab_d3lab_overld_app) ; do { /* branch: __ats_lab_65 */ __ats_lab_65_0: if (tmp359 != (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp360 = atspre_iadd (arg5, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp358 ; arg5 = tmp360 ; goto __ats_lab_auxfinize_38 ; // tail call break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (tmp359 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp361 = ats_caselptrlab_mac(anairiats_sum_6, tmp359, atslab_0) ; tmp362 = list_take_exn_01442_ats_ptr_type (arg3, arg5) ; tmp377 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp361) ; tmp378 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, tmp361), atslab_d3exp_node) ; if (((ats_sum_ptr_type)tmp378)->tag != 26) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_selab.dats: 22412(line=1049, offs=13) -- 22467(line=1049, offs=68)") ; } tmp379 = ats_caselptrlab_mac(anairiats_sum_10, tmp378, atslab_0) ; tmp380 = ats_caselptrlab_mac(anairiats_sum_10, tmp378, atslab_1) ; tmp381 = ats_caselptrlab_mac(anairiats_sum_10, tmp378, atslab_2) ; if (tmp381 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_selab.dats: 22480(line=1050, offs=13) -- 22520(line=1050, offs=53)") ; } tmp382 = ats_caselptrlab_mac(anairiats_sum_4, tmp381, atslab_0) ; tmp383 = ats_caselptrlab_mac(anairiats_sum_4, tmp381, atslab_1) ; tmp384 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp382) ; tmp385 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_selab (arg0, tmp384, arg2, ats_castfn_mac(ats_ptr_type, tmp362)) ; tmp386 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp386, atslab_0, tmp385) ; ats_selptrset_mac(anairiats_sum_4, tmp386, atslab_1, tmp383) ; tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_app_dyn (arg0, tmp377, tmp379, tmp380, tmp386) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp387 ; arg3 = tmp358 ; arg4 = tmp358 ; arg5 = 0 ; goto __ats_lab_auxfinize_38 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: // if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_69_1: tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_selab (arg0, arg1, arg2, arg3) ; break ; } while (0) ; return (tmp356) ; } /* end of [auxfinize_38] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 23021(line=1068, offs=3) -- 23756(line=1096, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d3exp_trup_selab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_int_type, tmp390) ; ATSlocal (ats_int_type, tmp391) ; ATSlocal (anairiats_rec_1, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; // ATSlocal_void (tmp396) ; // ATSlocal_void (tmp397) ; ATSlocal (ats_bool_type, tmp398) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d3exp_trup_selab: do { /* branch: __ats_lab_70 */ __ats_lab_70_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp389 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg1) ; /* ats_int_type tmp390 ; */ tmp390 = 0 ; /* ats_int_type tmp391 ; */ tmp391 = 0 ; tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__s2exp_get_dlablst_linrest_sharing (arg0, tmp389, arg2, (&tmp390), (&tmp391)) ; tmp393 = ats_select_mac(tmp392, atslab_0) ; tmp394 = ats_select_mac(tmp392, atslab_1) ; tmp395 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp393) ; /* tmp396 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp394) ; tmp398 = atspre_gt_int_int (tmp390, 0) ; if (tmp398) { /* tmp397 = */ auxerr_linrest_37 (arg0, arg1, arg2) ; } else { /* empty */ } /* end of [if] */ // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp388 = auxfinize_38 (arg0, tmp395, arg1, arg2, arg2, 0) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp388 = arg1 ; break ; } while (0) ; return (tmp388) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d3exp_trup_selab] */ /* // /tmp/ATS-Postiats/src/pats_trans3_selab.dats: 23863(line=1104, offs=3) -- 24430(line=1134, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_selab (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_selab: tmp400 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_d2exp_node) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp400)->tag != 1) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp401 = ats_caselptrlab_mac(anairiats_sum_3, tmp400, atslab_0) ; tmp402 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_d2exp_loc) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d2var_trup_selab (arg0, tmp402, tmp401, arg2) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp400)->tag != 43) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp403 = ats_caselptrlab_mac(anairiats_sum_12, tmp400, atslab_0) ; tmp404 = ats_caselptrlab_mac(anairiats_sum_12, tmp400, atslab_1) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_deref (arg0, tmp403, tmp404, arg2) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: __ats_lab_74_1: tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg1) ; tmp406 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2lablst_trup (arg2) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__d3exp_trup_selab (arg0, tmp405, tmp406) ; break ; } while (0) ; return (tmp399) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_selab] */ /* 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_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_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_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_selab_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_selab_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_intinf_dats.c0000644000175000017500000021611613431250607022023 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:29m ** */ /* 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 "libc/CATS/gmp.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; 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) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_is_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_is_atend) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, atslib_mpz_init_set_str_exn) (ats_ref_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, atslib_mpz_neg1) (ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_add2_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_sub2_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_mpz_mul2_mpz) (ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_void_type, atslib_fprint_mpz) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs) (ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_intinf_initialize) () ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__sasp__intinfset_type = 0 ; int _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__sasp__intinf_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_int_type cmp_26 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type cmp_26_closure_make () ; static ats_int_type cmp_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type funset_make_sing_01936_ats_ptr_type (ats_ptr_type arg0) ; static ats_int_type compare_elt_elt_01934_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_bool_type aux_31 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_31_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_bool_type aux_31_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_bool_type funset_is_member_01939_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_ptr_type ins_35 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type ins_35_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ; static ats_ptr_type ins_35_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ; static ats_bool_type funset_insert_01941_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ; static ats_void_type loop_39 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type funset_listize_01952_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type aux_42 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_42_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type loop_44 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ // ATSstatic_void (statmp150) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 1771(line=61, offs=17) -- 1952(line=67, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int (ats_int_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int: tmp1 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp2 = ats_selsin_mac(tmp1, atslab_2) ; /* tmp3 = */ atslib_mpz_init_set_int (tmp2, arg0) ; tmp0 = atspre_ref_make_view_ptr (tmp2) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 2009(line=70, offs=18) -- 2224(line=77, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_size (ats_size_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_size: tmp5 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp6 = ats_selsin_mac(tmp5, atslab_2) ; /* tmp7 = */ atslib_mpz_init_set_ulint (tmp6, ats_castfn_mac(ats_ulint_type, arg0)) ; tmp4 = atspre_ref_make_view_ptr (tmp6) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_size] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 2336(line=84, offs=20) -- 2870(line=108, offs=4) */ ATSglobaldec() ats_ptr_type patsopt_intinf_make_string (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_bool_type, tmp9) ; ATSlocal (ats_char_type, tmp10) ; ATSlocal (ats_bool_type, tmp11) ; ATSlocal (ats_bool_type, tmp12) ; ATSlocal (ats_char_type, tmp13) ; ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_bool_type, tmp15) ; __ats_lab_patsopt_intinf_make_string: tmp9 = atspre_string_is_atend (ats_castfn_mac(ats_ptr_type, arg0), 0) ; if (tmp9) { tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int (0) ; } else { tmp10 = atspre_string_get_char_at__intsz (ats_castfn_mac(ats_ptr_type, arg0), 0) ; tmp11 = atspre_eq_char_char (tmp10, '0') ; if (tmp11) { tmp12 = atspre_string_is_atend (ats_castfn_mac(ats_ptr_type, arg0), 1) ; if (tmp12) { tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int (0) ; } else { tmp13 = atspre_string_get_char_at__intsz (ats_castfn_mac(ats_ptr_type, arg0), 1) ; tmp15 = atspre_neq_char_char (tmp13, 'x') ; if (tmp15) { tmp14 = atspre_neq_char_char (tmp13, 'X') ; } else { tmp14 = ats_false_bool ; } /* end of [if] */ if (tmp14) { tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs (8, ats_castfn_mac(ats_ptr_type, arg0), 1) ; } else { tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs (16, ats_castfn_mac(ats_ptr_type, arg0), 2) ; } /* end of [if] */ } /* end of [if] */ } else { tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs (10, ats_castfn_mac(ats_ptr_type, arg0), 0) ; } /* end of [if] */ } /* end of [if] */ return (tmp8) ; } /* end of [patsopt_intinf_make_string] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 2964(line=114, offs=3) -- 3511(line=139, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs: tmp17 = atspre_padd_int (ats_castfn_mac(ats_ptr_type, arg1), arg2) ; tmp19 = atspre_string_is_empty (ats_castfn_mac(ats_ptr_type, tmp17)) ; if (tmp19) { tmp18 = ATSstrcst("0") ; } else { tmp18 = ats_castfn_mac(ats_ptr_type, tmp17) ; } /* end of [if] */ tmp20 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp21 = ats_selsin_mac(tmp20, atslab_2) ; /* tmp22 = */ atslib_mpz_init_set_str_exn (tmp21, tmp18, arg0) ; tmp16 = atspre_ref_make_view_ptr (tmp21) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_base_string_ofs] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 3598(line=144, offs=15) -- 3705(line=148, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf: tmp24 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; /* tmp23 = */ atslib_fprint_mpz (arg0, tmp24) ; return /* (tmp23) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 3779(line=153, offs=16) -- 3877(line=158, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int: tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp25 = atslib_mpz_get_int (tmp26) ; return (tmp25) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 3953(line=163, offs=15) -- 3997(line=164, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__lt_intinf_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp27) ; ATSlocal (ats_int_type, tmp28) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__lt_intinf_int: tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (arg0, arg1) ; tmp27 = atspre_lt_int_int (tmp28, 0) ; return (tmp27) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__lt_intinf_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 4050(line=168, offs=16) -- 4095(line=169, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__lte_intinf_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_int_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__lte_intinf_int: tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (arg0, arg1) ; tmp29 = atspre_lte_int_int (tmp30, 0) ; return (tmp29) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__lte_intinf_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 4148(line=173, offs=15) -- 4192(line=174, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__gt_intinf_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_int_type, tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__gt_intinf_int: tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (arg0, arg1) ; tmp31 = atspre_gt_int_int (tmp32, 0) ; return (tmp31) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__gt_intinf_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 4245(line=178, offs=16) -- 4290(line=179, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__gte_intinf_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_int_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__gte_intinf_int: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (arg0, arg1) ; tmp33 = atspre_gte_int_int (tmp34, 0) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__gte_intinf_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 4364(line=185, offs=15) -- 4408(line=186, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp35) ; ATSlocal (ats_int_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (arg0, arg1) ; tmp35 = atspre_eq_int_int (tmp36, 0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 4460(line=190, offs=15) -- 4504(line=191, offs=34) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_int_intinf (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp37) ; ATSlocal (ats_int_type, tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_int_intinf: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (arg1, arg0) ; tmp37 = atspre_eq_int_int (tmp38, 0) ; return (tmp37) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_int_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 4559(line=195, offs=18) -- 4606(line=196, offs=37) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp39) ; ATSlocal (ats_int_type, tmp40) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf: tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_intinf (arg0, arg1) ; tmp39 = atspre_eq_int_int (tmp40, 0) ; return (tmp39) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 4683(line=202, offs=16) -- 4728(line=203, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_intinf_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_intinf_int: tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (arg0, arg1) ; tmp41 = atspre_neq_int_int (tmp42, 0) ; return (tmp41) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_intinf_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 4782(line=207, offs=16) -- 4827(line=208, offs=35) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_int_intinf (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp43) ; ATSlocal (ats_int_type, tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_int_intinf: tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (arg1, arg0) ; tmp43 = atspre_neq_int_int (tmp44, 0) ; return (tmp43) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_int_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 4884(line=212, offs=19) -- 4932(line=213, offs=38) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_intinf_intinf (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp45) ; ATSlocal (ats_int_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_intinf_intinf: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_intinf (arg0, arg1) ; tmp45 = atspre_neq_int_int (tmp46, 0) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neq_intinf_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 5016(line=220, offs=3) -- 5123(line=224, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int: tmp48 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp47 = atslib_mpz_cmp_int (tmp48, arg1) ; return (tmp47) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 5190(line=228, offs=3) -- 5378(line=236, offs=9) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_intinf (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_intinf: tmp50 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp51 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; tmp49 = atslib_mpz_cmp_mpz (tmp50, tmp51) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 5459(line=242, offs=3) -- 5754(line=250, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neg_intinf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neg_intinf: tmp53 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp54 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp55 = ats_selsin_mac(tmp54, atslab_2) ; /* tmp56 = */ atslib_mpz_init_set_mpz (tmp55, tmp53) ; /* tmp57 = */ atslib_mpz_neg1 (tmp55) ; tmp52 = atspre_ref_make_view_ptr (tmp55) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__neg_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 5827(line=256, offs=3) -- 6137(line=265, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_int: tmp59 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp60 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp61 = ats_selsin_mac(tmp60, atslab_2) ; /* tmp62 = */ atslib_mpz_init_set_mpz (tmp61, tmp59) ; /* tmp63 = */ atslib_mpz_add2_int (tmp61, arg1) ; tmp58 = atspre_ref_make_view_ptr (tmp61) ; return (tmp58) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 6192(line=268, offs=16) -- 6226(line=268, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_int_intinf (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_int_intinf: tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_int (arg1, arg0) ; return (tmp64) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_int_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 6258(line=272, offs=3) -- 6643(line=284, offs=9) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_intinf (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_intinf: tmp66 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp67 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; tmp68 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp69 = ats_selsin_mac(tmp68, atslab_2) ; /* tmp70 = */ atslib_mpz_init_set_mpz (tmp69, tmp66) ; /* tmp71 = */ atslib_mpz_add2_mpz (tmp69, tmp67) ; tmp65 = atspre_ref_make_view_ptr (tmp69) ; return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__add_intinf_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 6727(line=290, offs=3) -- 7112(line=302, offs=9) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__sub_intinf_intinf (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__sub_intinf_intinf: tmp73 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp74 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; tmp75 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp76 = ats_selsin_mac(tmp75, atslab_2) ; /* tmp77 = */ atslib_mpz_init_set_mpz (tmp76, tmp73) ; /* tmp78 = */ atslib_mpz_sub2_mpz (tmp76, tmp74) ; tmp72 = atspre_ref_make_view_ptr (tmp76) ; return (tmp72) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__sub_intinf_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 7193(line=308, offs=3) -- 7503(line=317, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_int (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_int: tmp80 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp81 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp82 = ats_selsin_mac(tmp81, atslab_2) ; /* tmp83 = */ atslib_mpz_init_set_mpz (tmp82, tmp80) ; /* tmp84 = */ atslib_mpz_mul2_int (tmp82, arg1) ; tmp79 = atspre_ref_make_view_ptr (tmp82) ; return (tmp79) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_int] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 7558(line=320, offs=16) -- 7592(line=320, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_int_intinf (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_int_intinf: tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_int (arg1, arg0) ; return (tmp85) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_int_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 7624(line=324, offs=3) -- 8009(line=336, offs=9) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_intinf (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_intinf: tmp87 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp88 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; tmp89 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ; tmp90 = ats_selsin_mac(tmp89, atslab_2) ; /* tmp91 = */ atslib_mpz_init_set_mpz (tmp90, tmp87) ; /* tmp92 = */ atslib_mpz_mul2_mpz (tmp90, tmp88) ; tmp86 = atspre_ref_make_view_ptr (tmp90) ; return (tmp86) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__mul_intinf_intinf] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 8174(line=347, offs=4) -- 8255(line=350, offs=33) */ ATSstaticdec() ats_int_type cmp_26 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp93) ; __ats_lab_cmp_26: tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_intinf (arg0, arg1) ; return (tmp93) ; } /* end of [cmp_26] */ typedef struct { ats_fun_ptr_type closure_fun ; } cmp_26_closure_type ; ats_int_type cmp_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return cmp_26 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type cmp_26_closure_init (cmp_26_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&cmp_26_clofun ; return ; } /* end of function */ ats_clo_ptr_type cmp_26_closure_make () { cmp_26_closure_type *p_clo = ATS_MALLOC(sizeof(cmp_26_closure_type)) ; cmp_26_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 2248(line=76, offs=18) -- 2277(line=76, offs=47) */ ATSstaticdec() ats_ptr_type funset_make_sing_01936_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab_funset_make_sing_01936_ats_ptr_type: tmp96 = (ats_sum_ptr_type)0 ; tmp95 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp95, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp95, atslab_1, tmp96) ; return (tmp95) ; } /* end of [funset_make_sing_01936_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 8344(line=357, offs=16) -- 8369(line=357, offs=41) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_sing (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_sing: tmp94 = funset_make_sing_01936_ats_ptr_type (arg0) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_sing] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 1887(line=58, offs=32) -- 1915(line=58, offs=60) */ ATSstaticdec() ats_int_type compare_elt_elt_01934_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_int_type, tmp103) ; __ats_lab_compare_elt_elt_01934_ats_ptr_type: tmp103 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ; return (tmp103) ; } /* end of [compare_elt_elt_01934_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 3671(line=138, offs=7) -- 3950(line=144, offs=27) */ ATSstaticdec() ats_bool_type aux_31 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_bool_type, tmp104) ; ATSlocal (ats_bool_type, tmp105) ; __ats_lab_aux_31: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp102 = compare_elt_elt_01934_ats_ptr_type (env0, tmp100, env1) ; tmp104 = atspre_gt_int_int (tmp102, 0) ; if (tmp104) { tmp99 = ats_false_bool ; } else { tmp105 = atspre_lt_int_int (tmp102, 0) ; if (tmp105) { arg0 = tmp101 ; goto __ats_lab_aux_31 ; // tail call } else { tmp99 = ats_true_bool ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp99 = ats_false_bool ; break ; } while (0) ; return (tmp99) ; } /* end of [aux_31] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } aux_31_closure_type ; ats_bool_type aux_31_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_31 (((aux_31_closure_type*)cloptr)->closure_env_0, ((aux_31_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_31_closure_init (aux_31_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_31_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_31_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { aux_31_closure_type *p_clo = ATS_MALLOC(sizeof(aux_31_closure_type)) ; aux_31_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 3645(line=137, offs=3) -- 3986(line=148, offs=4) */ ATSstaticdec() ats_bool_type funset_is_member_01939_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp98) ; __ats_lab_funset_is_member_01939_ats_ptr_type: tmp98 = aux_31 (arg1, arg2, arg0) ; return (tmp98) ; } /* end of [funset_is_member_01939_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 8404(line=361, offs=3) -- 8443(line=361, offs=42) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_is_member (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_is_member: tmp97 = funset_is_member_01939_ats_ptr_type (arg0, arg1, cmp_26_closure_make ()) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_is_member] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 4180(line=158, offs=7) -- 4779(line=176, offs=10) */ ATSstaticdec() ats_ptr_type ins_35 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; ATSlocal (ats_bool_type, tmp114) ; ATSlocal (ats_int_type, tmp115) ; ATSlocal (ats_bool_type, tmp116) ; ATSlocal (ats_int_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_bool_type, tmp119) ; ATSlocal (ats_int_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_ins_35: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp112 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp113 = compare_elt_elt_01934_ats_ptr_type (env0, tmp111, env1) ; tmp114 = atspre_gt_int_int (tmp113, 0) ; if (tmp114) { tmp115 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp115 ; tmp110 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp110, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_1, tmp110, atslab_1, arg0) ; } else { tmp116 = atspre_lt_int_int (tmp113, 0) ; if (tmp116) { tmp117 = ats_ptrget_mac(ats_int_type, arg1) ; tmp118 = ins_35 (env0, env1, tmp112, arg1) ; tmp119 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp117) ; if (tmp119) { tmp110 = arg0 ; } else { tmp110 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp110, atslab_0, tmp111) ; ats_selptrset_mac(anairiats_sum_1, tmp110, atslab_1, tmp118) ; } /* end of [if] */ } else { tmp110 = arg0 ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp120 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ; ats_ptrget_mac(ats_int_type, arg1) = tmp120 ; tmp121 = (ats_sum_ptr_type)0 ; tmp110 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp110, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_1, tmp110, atslab_1, tmp121) ; break ; } while (0) ; return (tmp110) ; } /* end of [ins_35] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_clo_ref_type closure_env_1 ; } ins_35_closure_type ; ats_ptr_type ins_35_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) { return ins_35 (((ins_35_closure_type*)cloptr)->closure_env_0, ((ins_35_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type ins_35_closure_init (ins_35_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&ins_35_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type ins_35_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) { ins_35_closure_type *p_clo = ATS_MALLOC(sizeof(ins_35_closure_type)) ; ins_35_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 4154(line=157, offs=3) -- 4907(line=182, offs=4) */ ATSstaticdec() ats_bool_type funset_insert_01941_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp109) ; ATSlocal (ats_int_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_bool_type, tmp124) ; __ats_lab_funset_insert_01941_ats_ptr_type: /* ats_int_type tmp122 ; */ tmp122 = 0 ; tmp123 = ins_35 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp122)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp123 ; tmp124 = atspre_eq_int_int (tmp122, 0) ; if (tmp124) { tmp109 = ats_true_bool ; } else { tmp109 = ats_false_bool ; } /* end of [if] */ return (tmp109) ; } /* end of [funset_insert_01941_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 8487(line=366, offs=3) -- 8569(line=370, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_add (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_bool_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_add: /* ats_ptr_type tmp107 ; */ tmp107 = arg0 ; tmp108 = funset_insert_01941_ats_ptr_type ((&tmp107), arg1, cmp_26_closure_make ()) ; tmp106 = tmp107 ; return (tmp106) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_39 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; __ats_lab_loop_39: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp130 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp131 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp131, atslab_0, tmp129) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp131 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp132 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp130 ; arg1 = tmp132 ; goto __ats_lab_loop_39 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp133 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp133 ; break ; } while (0) ; return /* (tmp128) */ ; } /* end of [loop_39] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp134) ; // ATSlocal_void (tmp135) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp134 ; */ /* tmp135 = */ loop_39 (arg0, (&tmp134)) ; tmp127 = tmp134 ; return (tmp127) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_listord.dats: 10918(line=433, offs=16) -- 10941(line=433, offs=39) */ ATSstaticdec() ats_ptr_type funset_listize_01952_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp126) ; __ats_lab_funset_listize_01952_ats_ptr_type: tmp126 = list_copy_01322_ats_ptr_type (arg0) ; return (tmp126) ; } /* end of [funset_listize_01952_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 8618(line=373, offs=19) -- 8643(line=373, offs=44) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize: tmp125 = funset_listize_01952_ats_ptr_type (arg0) ; return (tmp125) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_42 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_bool_type, tmp144) ; // ATSlocal_void (tmp145) ; ATSlocal (ats_int_type, tmp146) ; __ats_lab_aux_42: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp144 = atspre_gt_int_int (arg1, 0) ; if (tmp144) { /* tmp143 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp145 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp141) ; tmp146 = atspre_add_int_int (arg1, 1) ; arg0 = tmp142 ; arg1 = tmp146 ; goto __ats_lab_aux_42 ; // tail call break ; } while (0) ; return /* (tmp140) */ ; } /* end of [aux_42] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_42_closure_type ; ats_void_type aux_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_42 (((aux_42_closure_type*)cloptr)->closure_env_0, ((aux_42_closure_type*)cloptr)->closure_env_1, ((aux_42_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_42_closure_init (aux_42_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_42_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_42_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_42_closure_type *p_clo = ATS_MALLOC(sizeof(aux_42_closure_type)) ; aux_42_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp139) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp139 = */ aux_42 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp139) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_44 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; __ats_lab_loop_44: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp149 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: break ; } while (0) ; return /* (tmp148) */ ; } /* end of [loop_44] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp147) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp147 = */ loop_44 (arg0) ; return /* (tmp147) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_intinf_gmp.hats: 8719(line=381, offs=3) -- 8883(line=386, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinfset (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; // ATSlocal_void (tmp138) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinfset: tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize (arg1) ; /* tmp138 = */ fprintlst_01887_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, tmp137), ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) ; /* tmp136 = */ list_vt_free_01499_ats_ptr_type (tmp137) ; return /* (tmp136) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinfset] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_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_utils_2edats__staload () ; ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2SATS_2funset_listord_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2funset_listord_2edats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ /* statmp150 = */ patsopt_intinf_initialize () ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ // // This is necessary to prevent memory leak // static void* patsopt_intinf_malloc (size_t sz) { return ATS_MALLOC (sz) ; } // end of [patsopt_intinf_malloc] static void patsopt_intinf_free (void* ptr, size_t sz) { ATS_FREE (ptr) ; return ; } // end of [patsopt_intinf_free] static void* patsopt_intinf_realloc ( void* ptr, size_t sz_old, size_t sz_new ) { return ATS_REALLOC (ptr, sz_new) ; } // end of [patsopt_intinf_realloc] ats_void_type patsopt_intinf_initialize (/*argumentless*/) { mp_set_memory_functions ( &patsopt_intinf_malloc, &patsopt_intinf_realloc, &patsopt_intinf_free ) ; // end of [mp_set_memory_functions] return ; } // end of [patsopt_intinf_initialize] /* ****** ****** */ /* end of [pats_intinf_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_sats.c0000644000175000017500000004440413431250607022140 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_0 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASpre_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASdef_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTtup_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTVar_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTerr_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMvar_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMcst_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMe1xp_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatcontyp_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatconptr_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMfilenv_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt1_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsrt_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsub_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEerr_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABlab_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABind_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SKLABELED_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEany_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEcst_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEvar_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEextype_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEextkind_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEfun_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEapp_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEtyarr_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEtyrec_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SZLABELED_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEprf_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEptr_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEcst_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEvar_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEVar_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextype_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextkind_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEapp_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyarr_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyrec_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEclo_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGall_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGseq_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASpre_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASdef_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTtup_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTVar_3.tag = 3 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTerr_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMvar_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMcst_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMe1xp_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatcontyp_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatconptr_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMfilenv_5.tag = 5 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt1_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4.tag = 4 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsrt_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsub_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEerr_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABlab_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2LABind_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31.tag = 31 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SKLABELED_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEany_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEcst_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEvar_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEextype_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEextkind_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEfun_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEapp_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEtyarr_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2KEtyrec_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SZLABELED_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEprf_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEptr_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEcst_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEvar_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEVar_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextype_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextkind_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEapp_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyarr_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyrec_9.tag = 9 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEclo_10.tag = 10 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEbot_11.tag = 11 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGone_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGall_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGseq_2.tag = 2 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2.tag = 2 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_decl_dats.c0000644000175000017500000050036013431250607022730 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* include some .h files */ #ifndef _ATS_HEADER_NONE #include "ats_config.h" #include "ats_basics.h" #include "ats_types.h" #include "ats_exception.h" #include "ats_memory.h" #endif /* _ATS_HEADER_NONE */ /* include some .cats files */ #ifndef _ATS_PRELUDE_NONE #include "prelude/CATS/basics.cats" #include "prelude/CATS/bool.cats" #include "prelude/CATS/char.cats" #include "prelude/CATS/byte.cats" #include "prelude/CATS/float.cats" #include "prelude/CATS/integer.cats" #include "prelude/CATS/integer_ptr.cats" #include "prelude/CATS/integer_fixed.cats" #include "prelude/CATS/sizetype.cats" #include "prelude/CATS/pointer.cats" #include "prelude/CATS/reference.cats" #include "prelude/CATS/string.cats" #include "prelude/CATS/lazy.cats" #include "prelude/CATS/lazy_vt.cats" #include "prelude/CATS/printf.cats" #include "prelude/CATS/list.cats" #include "prelude/CATS/option.cats" #include "prelude/CATS/array.cats" #include "prelude/CATS/matrix.cats" #endif /* _ATS_PRELUDE_NONE */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_tokbuf.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ // static ats_bool_type patsopt_string_suffix_is_dats (ats_ptr_type s0) { char *s = strrchr (s0, '.') ; if (!s) return ats_false_bool ; if (strcmp (s, ".dats") != 0) return ats_false_bool ; return ats_true_bool ; } // end of [patsopt_string_suffix_is_dats] // /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_i0de_loc ; ats_ptr_type atslab_i0de_sym ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_s0tacst_loc ; ats_ptr_type atslab_s0tacst_sym ; ats_ptr_type atslab_s0tacst_arg ; ats_ptr_type atslab_s0tacst_res ; ats_ptr_type atslab_s0tacst_extopt ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_s0tacon_loc ; ats_ptr_type atslab_s0tacon_sym ; ats_ptr_type atslab_s0tacon_arg ; ats_ptr_type atslab_s0tacon_def ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_s0rtdef_loc ; ats_ptr_type atslab_s0rtdef_sym ; ats_ptr_type atslab_s0rtdef_def ; } anairiats_rec_12 ; typedef struct { ats_ptr_type atslab_t0kindef_loc ; ats_ptr_type atslab_t0kindef_sym ; ats_ptr_type atslab_t0kindef_loc_id ; ats_ptr_type atslab_t0kindef_def ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_s0expdef_loc ; ats_ptr_type atslab_s0expdef_sym ; ats_ptr_type atslab_s0expdef_loc_id ; ats_ptr_type atslab_s0expdef_arg ; ats_ptr_type atslab_s0expdef_res ; ats_ptr_type atslab_s0expdef_def ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_s0aspdec_loc ; ats_ptr_type atslab_s0aspdec_qid ; ats_ptr_type atslab_s0aspdec_arg ; ats_ptr_type atslab_s0aspdec_res ; ats_ptr_type atslab_s0aspdec_def ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_d0atdec_loc ; ats_ptr_type atslab_d0atdec_loc_hd ; ats_ptr_type atslab_d0atdec_fil ; ats_ptr_type atslab_d0atdec_sym ; ats_ptr_type atslab_d0atdec_arg ; ats_ptr_type atslab_d0atdec_con ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_e0xndec_loc ; ats_ptr_type atslab_e0xndec_fil ; ats_ptr_type atslab_e0xndec_sym ; ats_ptr_type atslab_e0xndec_qua ; ats_ptr_type atslab_e0xndec_arg ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_s1exp_loc ; ats_ptr_type atslab_s1exp_node ; } anairiats_rec_18 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_19 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_m0acdef_loc ; ats_ptr_type atslab_m0acdef_sym ; ats_ptr_type atslab_m0acdef_arg ; ats_ptr_type atslab_m0acdef_def ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_v0aldec_loc ; ats_ptr_type atslab_v0aldec_pat ; ats_ptr_type atslab_v0aldec_def ; ats_ptr_type atslab_v0aldec_ann ; } anairiats_rec_22 ; typedef struct { ats_ptr_type atslab_f0undec_loc ; ats_ptr_type atslab_f0undec_sym ; ats_ptr_type atslab_f0undec_sym_loc ; ats_ptr_type atslab_f0undec_arg ; ats_ptr_type atslab_f0undec_eff ; ats_ptr_type atslab_f0undec_res ; ats_ptr_type atslab_f0undec_def ; ats_ptr_type atslab_f0undec_ann ; } anairiats_rec_23 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_v0ardec_loc ; ats_int_type atslab_v0ardec_knd ; ats_ptr_type atslab_v0ardec_sym ; ats_ptr_type atslab_v0ardec_sym_loc ; ats_ptr_type atslab_v0ardec_pfat ; ats_ptr_type atslab_v0ardec_type ; ats_ptr_type atslab_v0ardec_init ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_i0mpdec_loc ; ats_ptr_type atslab_i0mpdec_qid ; ats_ptr_type atslab_i0mpdec_arg ; ats_ptr_type atslab_i0mpdec_res ; ats_ptr_type atslab_i0mpdec_def ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_impqi0de_loc ; ats_ptr_type atslab_impqi0de_qua ; ats_ptr_type atslab_impqi0de_sym ; ats_ptr_type atslab_impqi0de_arg ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_d0ecl_loc ; ats_ptr_type atslab_d0ecl_node ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_29 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_30 ; typedef struct { anairiats_rec_30 atslab_0 ; } anairiats_sum_31 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_32 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_33 ; typedef struct { ats_ptr_type atslab_guad0ecl_loc ; ats_ptr_type atslab_guad0ecl_node ; } anairiats_rec_34 ; typedef struct { ats_ptr_type atslab_e0xp_loc ; ats_ptr_type atslab_e0xp_node ; } anairiats_rec_35 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_36 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_37 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_38 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_39 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_bool_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_40 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_41 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fnx_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_fun_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfn_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_prfun_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_praxi_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FK_castfn_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_neg_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_prval_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKval_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKpraxi_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprfun_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprval_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKcastfn_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FUN_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_VAL_80) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__P0RECi0de_adj_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYinf_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpre_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0XTYpos_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTerror_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprerr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTprint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPACTassert_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Cone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ctwo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__GD0Ccons_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfixity_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cnonfix_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymintr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csymelim_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpdef_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpundef_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ce0xpact_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cpragma_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ccodegen_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatsrts_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csrtdefs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacsts_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstacons_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ctkindef_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csexpdefs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Csaspdec_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Creassume_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cexndecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdatdecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cclassdec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextype_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextvar_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cextcode_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdcstdecs_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cimpdec_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cmacdefs_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cfundecs_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvaldecs_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cvardecs_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cinclude_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaload_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadnm_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cstaloadloc_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Crequire_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cdynload_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Clocal_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Cguadecl_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPint_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPintrep_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elist_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_prec_tr_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_i0nclude_tr_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_s0taload_tr_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_d0ynload_tr_10) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_int_of_llint) (ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_none) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_llint_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string) (ats_ptr_type) ; ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set_decl) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_set_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_set) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_set_name) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_get) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_PACKNAME) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADFLAG) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADNAME) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_MAINATSFLAG) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_STATIC_PREFIX) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_partname) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__prerr_filename_full) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push_check) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_the_filenamelst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_relative) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_proof) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_proof) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prec_make_int) (ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_inc) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_dec) (ats_int_type, ats_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_non) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_inf) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pre) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pos) (ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_get_prec) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel2) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_undef) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtdef_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacst_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacon_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1kindef_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1expdef_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1aspdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xndec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__m1acdef_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1aldec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__f1undec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1ardec_make) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1mpdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_packname) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symintr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symelim) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_overload) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpdef) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpundef) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_pragma) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_codegen) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datsrts) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_srtdefs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacsts) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacons) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_tkindef) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_sexpdefs) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_saspdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_reassume) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_exndecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datdecs) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_classdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dcstdecs) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype2) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extcode) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_macdefs) (ats_ptr_type, ats_int_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_impdec) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_fundecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_valdecs) (ats_ptr_type, ats_ptr_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_vardecs) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_include) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staload) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadnm) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dynload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_local) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_finalize) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__scstextdef_tr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_assert) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_prerr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_print) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_error) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtopt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrtlst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtext_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__witht0ype_tr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_fixity_tr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_nonfix_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atsrtdec_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtdef_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacon_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0kindef_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expdef_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0aspdec_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__i0mparg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0mpmarg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atcon_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atdec_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xndec_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__m0acarglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0cstdeclst_tr) (ats_bool_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0expopt_tr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__termet_check) (ats_ptr_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr_lams_dyn) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_localjoin) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_save) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_restore) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_search) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_insert) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize_if) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__i0nclude_tr) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, patsopt_string_suffix_is_dats) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__s0taload_tr) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr_if) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__d0ynload_tr) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02939_ () ; static ats_int_type prec_make_err_1 () ; static ats_void_type prerr_error1_loc_02942_ (ats_ptr_type arg0) ; static ats_void_type prec_tr_errmsg_fxty_2 (ats_ptr_type arg0) ; static ats_void_type prec_tr_errmsg_adj_4 (ats_ptr_type arg0) ; static ats_int_type precfnd_6 (ats_ptr_type arg0) ; static ats_int_type p0rec_tr_5 (ats_ptr_type arg0) ; static ats_ptr_type f0xty_tr_7 (ats_ptr_type arg0) ; static ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_11 (ats_ptr_type arg0) ; static ats_void_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type token_get_dcstkind_23 (ats_ptr_type arg0) ; static ats_ptr_type m0acdef_tr_24 (ats_ptr_type arg0) ; static ats_ptr_type v0aldec_tr_25 (ats_ptr_type arg0) ; static ats_ptr_type f0undec_tr_26 (ats_bool_type arg0, ats_bool_type arg1, ats_ptr_type arg2) ; static ats_ptr_type f0undeclst_tr_27 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type v0ardec_tr_28 (ats_ptr_type arg0) ; static ats_ptr_type i0mpdec_tr_29 (ats_ptr_type arg0) ; static ats_void_type the_ATSRELOC_set_decl_30 (ats_ptr_type arg0) ; static ats_void_type the_ATSRELOC_set_decl_if_31 (ats_ptr_type arg0) ; static ats_ptr_type ats_filename_get_33 () ; static ats_void_type prerr_warning1_loc_02948_ (ats_ptr_type arg0) ; static ats_ptr_type ats_packname_get_34 () ; static ats_ptr_type ats_packname_get2_36 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxload_37 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type loop_43 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type guad0ecl_tr_42 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_int_type intrep2int_47 (ats_ptr_type arg0) ; static ats_void_type aux_dynloadflag_48 () ; static ats_void_type aux_dynloadname_49 () ; static ats_void_type aux_mainatsflag_50 () ; static ats_void_type aux_static_prefix_51 () ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 2552(line=96, offs=28) -- 2581(line=96, offs=57) */ ATSstaticdec() ats_void_type prerr_FILENAME_02939_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02939_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans1_decl")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02939_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 3013(line=125, offs=1) -- 3058(line=126, offs=32) */ ATSstaticdec() ats_int_type prec_make_err_1 () { /* local vardec */ ATSlocal (ats_int_type, tmp1) ; __ats_lab_prec_make_err_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prec_make_int (0) ; return (tmp1) ; } /* end of [prec_make_err_1] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1988(line=70, offs=17) -- 2046(line=73, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_02942_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; __ats_lab_prerr_error1_loc_02942_: /* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp4 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp4) */ ; } /* end of [prerr_error1_loc_02942_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 3063(line=129, offs=1) -- 3303(line=137, offs=4) */ ATSstaticdec() ats_void_type prec_tr_errmsg_fxty_2 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab_prec_tr_errmsg_fxty_2: tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i0de_loc) ; /* tmp3 = */ prerr_error1_loc_02942_ (tmp6) ; /* tmp7 = */ atspre_prerr_string (ATSstrcst(": the operator [")) ; tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i0de_sym) ; /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp9) ; /* tmp10 = */ atspre_prerr_string (ATSstrcst("] is given no fixity")) ; /* tmp11 = */ atspre_prerr_newline () ; tmp12 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp12)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp12, atslab_0, arg0) ; /* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp12) ; return /* (tmp2) */ ; } /* end of [prec_tr_errmsg_fxty_2] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 3340(line=140, offs=1) -- 3586(line=148, offs=4) */ ATSstaticdec() ats_void_type prec_tr_errmsg_adj_4 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab_prec_tr_errmsg_adj_4: tmp15 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i0de_loc) ; /* tmp14 = */ prerr_error1_loc_02942_ (tmp15) ; /* tmp16 = */ atspre_prerr_string (ATSstrcst(": the operator for adjusting precedence can only be [+] or [-].")) ; /* tmp17 = */ atspre_prerr_newline () ; tmp18 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp18)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp18, atslab_0, arg0) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp18) ; return /* (tmp13) */ ; } /* end of [prec_tr_errmsg_adj_4] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 3668(line=155, offs=3) -- 4365(line=178, offs=6) */ ATSstaticdec() ats_int_type precfnd_6 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; __ats_lab_precfnd_6: tmp22 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i0de_sym) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find (tmp22) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp21 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_4, tmp21, atslab_0) ; ATS_FREE(tmp21) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_get_prec (tmp23) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (tmp24 == (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_5, tmp24, atslab_0) ; ATS_FREE(tmp24) ; tmp20 = tmp25 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (tmp24 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: /* tmp26 = */ prec_tr_errmsg_fxty_2 (arg0) ; tmp20 = prec_make_err_1 () ; break ; } while (0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp21 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: /* tmp27 = */ prec_tr_errmsg_fxty_2 (arg0) ; tmp20 = prec_make_err_1 () ; break ; } while (0) ; return (tmp20) ; } /* end of [precfnd_6] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 3622(line=151, offs=1) -- 5004(line=204, offs=4) */ ATSstaticdec() ats_int_type p0rec_tr_5 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp19) ; ATSlocal (ats_int_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_int_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_bool_type, tmp34) ; ATSlocal (ats_int_type, tmp35) ; ATSlocal (ats_bool_type, tmp36) ; ATSlocal (ats_int_type, tmp37) ; // ATSlocal_void (tmp38) ; __ats_lab_p0rec_tr_5: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__prec_make_int (tmp28) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp19 = precfnd_6 (tmp29) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp31 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ; tmp32 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_2) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp31), atslab_i0de_sym) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp33, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD) ; if (!tmp34) { goto __ats_lab_8_1 ; } tmp35 = precfnd_6 (tmp30) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_inc (tmp35, tmp32) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp33, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB) ; if (!tmp36) { goto __ats_lab_9_1 ; } tmp37 = precfnd_6 (tmp30) ; tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__precedence_dec (tmp37, tmp32) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: __ats_lab_9_1: /* tmp38 = */ prec_tr_errmsg_adj_4 (tmp31) ; tmp19 = prec_make_err_1 () ; break ; } while (0) ; break ; } while (0) ; return (tmp19) ; } /* end of [p0rec_tr_5] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 5030(line=206, offs=4) -- 5305(line=215, offs=2) */ ATSstaticdec() ats_ptr_type f0xty_tr_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_int_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_int_type, tmp46) ; __ats_lab_f0xty_tr_7: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp41 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp42 = p0rec_tr_5 (tmp40) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_inf (tmp42, tmp41) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp43 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp44 = p0rec_tr_5 (tmp43) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pre (tmp44) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp46 = p0rec_tr_5 (tmp45) ; tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_pos (tmp46) ; break ; } while (0) ; return (tmp39) ; } /* end of [f0xty_tr_7] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 5407(line=222, offs=5) -- 6091(line=249, offs=22) */ ATSstaticdec() ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab_loop_9: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp49 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp50 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp52 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp49), atslab_i0de_sym) ; /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_add (tmp52, arg0) ; arg0 = arg0 ; arg1 = tmp50 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: break ; } while (0) ; return /* (tmp48) */ ; } /* end of [loop_9] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 5381(line=220, offs=17) -- 6144(line=253, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_fixity_tr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_fixity_tr: tmp53 = f0xty_tr_7 (arg0) ; /* tmp47 = */ loop_9 (tmp53, arg1) ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_fixity_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 6218(line=257, offs=7) -- 6402(line=261, offs=24) */ ATSstaticdec() ats_void_type loop_11 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_loop_11: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp56 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp59 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp56), atslab_i0de_sym) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_add (tmp59, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxty_non) ; arg0 = tmp57 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: break ; } while (0) ; return /* (tmp55) */ ; } /* end of [loop_11] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 6200(line=256, offs=17) -- 6462(line=265, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_nonfix_tr (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp54) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_nonfix_tr: /* tmp54 = */ loop_11 (arg0) ; return /* (tmp54) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_nonfix_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 6559(line=273, offs=3) -- 6906(line=287, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacst_tr: tmp61 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s0tacst_loc) ; tmp62 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s0tacst_sym) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s0tacst_arg) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrtlst_tr (tmp65) ; tmp67 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s0tacst_res) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rt_tr (tmp67) ; tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s0tacst_extopt) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__scstextdef_tr (arg0, tmp62, tmp69) ; tmp70 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s0tacst_sym) ; tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacst_make (tmp61, tmp63, tmp70, tmp64, tmp66, tmp68) ; return (tmp60) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 6973(line=292, offs=12) -- 7182(line=298, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacon_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacon_tr: tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_s0tacon_arg) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrtlst_tr (tmp74) ; tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_s0tacon_def) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr (tmp76) ; tmp77 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_s0tacon_loc) ; tmp78 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_s0tacon_sym) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1tacon_make (tmp77, tmp72, tmp78, tmp73, tmp75) ; return (tmp71) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacon_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 7457(line=317, offs=12) -- 7681(line=326, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtdef_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtdef_tr: tmp81 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_s0rtdef_def) ; tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtext_tr (tmp81) ; tmp82 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_s0rtdef_loc) ; tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_s0rtdef_sym) ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rtdef_make (tmp82, tmp83, tmp80) ; return (tmp79) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtdef_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 7749(line=331, offs=13) -- 7928(line=338, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0kindef_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0kindef_tr: tmp85 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_t0kindef_loc) ; tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_t0kindef_sym) ; tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_t0kindef_loc_id) ; tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_t0kindef_def) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp89) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__t1kindef_make (tmp85, tmp86, tmp87, tmp88) ; return (tmp84) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0kindef_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 7997(line=343, offs=13) -- 8374(line=357, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expdef_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expdef_tr: tmp91 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0expdef_loc) ; tmp92 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0expdef_sym) ; tmp93 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0expdef_loc_id) ; tmp95 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0expdef_arg) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marglst_tr (tmp95) ; tmp97 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0expdef_res) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtopt_tr (tmp97) ; tmp99 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_s0expdef_def) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp99) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1expdef_make (tmp91, tmp92, tmp93, tmp94, tmp96, tmp98) ; return (tmp90) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expdef_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 8443(line=362, offs=13) -- 8663(line=370, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0aspdec_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0aspdec_tr: tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s0aspdec_arg) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0marglst_tr (tmp102) ; tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s0aspdec_res) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtopt_tr (tmp104) ; tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s0aspdec_def) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp106) ; tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s0aspdec_loc) ; tmp108 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_s0aspdec_qid) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1aspdec_make (tmp107, tmp108, tmp101, tmp103, tmp105) ; return (tmp100) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0aspdec_tr] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_loop_21: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp117 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp118 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp116, arg3) ; tmp119 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp119, atslab_0, tmp118) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp119 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp120 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp117 ; arg1 = arg1 ; arg2 = tmp120 ; arg3 = arg3 ; goto __ats_lab_loop_21 ; // tail call break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: tmp121 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp121 ; break ; } while (0) ; return /* (tmp115) */ ; } /* end of [loop_21] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp122 ; */ /* tmp123 = */ loop_21 (arg0, arg1, (&tmp122), arg2) ; tmp114 = tmp122 ; return (tmp114) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp113 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp113) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 8731(line=375, offs=12) -- 8951(line=382, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atdec_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atdec_tr: tmp111 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_d0atdec_arg) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__a0msrtlst_tr (tmp111) ; tmp124 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_d0atdec_con) ; tmp112 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp124, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atcon_tr) ; tmp125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_d0atdec_loc) ; tmp126 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_d0atdec_fil) ; tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_d0atdec_sym) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__d1atdec_make (tmp125, tmp126, tmp127, tmp110, ats_castfn_mac(ats_ptr_type, tmp112)) ; return (tmp109) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atdec_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 9018(line=387, offs=12) -- 9530(line=404, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xndec_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_int_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_int_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xndec_tr: tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_e0xndec_qua) ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marglst_tr (tmp129) ; /* ats_int_type tmp131 ; */ tmp131 = -1 ; tmp133 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_e0xndec_arg) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (tmp133 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_19_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_4, tmp133, atslab_0) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp134) ; tmp136 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp135), atslab_s1exp_node) ; do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp136)->tag != 13) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_19, tmp136, atslab_0) ; tmp138 = ats_caselptrlab_mac(anairiats_sum_19, tmp136, atslab_1) ; tmp131 = tmp137 ; tmp132 = tmp138 ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: __ats_lab_21_1: tmp139 = (ats_sum_ptr_type)0 ; tmp132 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp132, atslab_0, tmp135) ; ats_selptrset_mac(anairiats_sum_9, tmp132, atslab_1, tmp139) ; break ; } while (0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp133 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp132 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp140 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_e0xndec_loc) ; tmp141 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_e0xndec_fil) ; tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_e0xndec_sym) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xndec_make (tmp140, tmp141, tmp142, tmp130, tmp131, tmp132) ; return (tmp128) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xndec_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 9580(line=409, offs=1) -- 10200(line=444, offs=4) */ ATSstaticdec() ats_ptr_type token_get_dcstkind_23 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; // ATSlocal_void (tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab_token_get_dcstkind_23: tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_token_node) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp144)->tag != 52) { goto __ats_lab_31_0 ; } __ats_lab_23_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp145)->tag != 0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp145)->tag != 2) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp145)->tag != 1) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp145)->tag != 3) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprfun_3) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp145)->tag != 4) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprfun_3) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp145)->tag != 5) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKpraxi_2) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (((ats_sum_ptr_type)tmp145)->tag != 6) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKcastfn_5) ; break ; } while (0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp144)->tag != 80) { goto __ats_lab_36_0 ; } __ats_lab_31_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp146)->tag != 0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKval_1) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp146)->tag != 3) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKprval_4) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp146)->tag != 1) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKval_1) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (((ats_sum_ptr_type)tmp146)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKval_1) ; break ; } while (0) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp148 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans1_decl.dats: 10143(line=441, offs=14) -- 10159(line=441, offs=30)", ATSstrcst("\n")) ; /* tmp147 = */ atspre_assert_errmsg (ats_false_bool, tmp148) ; tmp143 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__DCKfun_0) ; break ; } while (0) ; return (tmp143) ; } /* end of [token_get_dcstkind_23] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 10257(line=448, offs=4) -- 10471(line=456, offs=4) */ ATSstaticdec() ats_ptr_type m0acdef_tr_24 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; __ats_lab_m0acdef_tr_24: tmp150 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_m0acdef_loc) ; tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_m0acdef_sym) ; tmp153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_m0acdef_arg) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__m0acarglst_tr (tmp153) ; tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_m0acdef_def) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp155) ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__m1acdef_make (tmp150, tmp151, tmp152, tmp154) ; return (tmp149) ; } /* end of [m0acdef_tr_24] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 10520(line=460, offs=4) -- 10828(line=472, offs=4) */ ATSstaticdec() ats_ptr_type v0aldec_tr_25 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; __ats_lab_v0aldec_tr_25: tmp158 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_v0aldec_pat) ; tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp158) ; tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_v0aldec_def) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp160) ; tmp162 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_v0aldec_ann) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__witht0ype_tr (tmp162) ; tmp163 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_v0aldec_loc) ; tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1aldec_make (tmp163, tmp157, tmp159, tmp161) ; return (tmp156) ; } /* end of [v0aldec_tr_25] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 10877(line=476, offs=4) -- 11877(line=523, offs=4) */ ATSstaticdec() ats_ptr_type f0undec_tr_26 (ats_bool_type arg0, ats_bool_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (anairiats_rec_24, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (anairiats_rec_1, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_int_type, tmp171) ; ATSlocal (ats_int_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; // ATSlocal_void (tmp185) ; ATSlocal (ats_bool_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; __ats_lab_f0undec_tr_26: tmp165 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg2), atslab_f0undec_loc) ; tmp166 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg2), atslab_f0undec_eff) ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (tmp166 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_4, tmp166, atslab_0) ; tmp169 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr (tmp168) ; tmp170 = ats_select_mac(tmp169, atslab_0) ; tmp171 = ats_select_mac(tmp169, atslab_1) ; tmp172 = ats_select_mac(tmp169, atslab_2) ; tmp173 = ats_select_mac(tmp169, atslab_3) ; tmp174 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp174, atslab_0, tmp173) ; tmp167.atslab_0 = tmp170 ; tmp167.atslab_1 = tmp174 ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (tmp166 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: if (arg0) { tmp175 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ; } else { tmp175 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ; } /* end of [if] */ tmp176 = (ats_sum_ptr_type)0 ; tmp177 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp177, atslab_0, tmp175) ; tmp167.atslab_0 = tmp176 ; tmp167.atslab_1 = tmp177 ; break ; } while (0) ; tmp178 = ats_select_mac(tmp167, atslab_0) ; tmp179 = ats_select_mac(tmp167, atslab_1) ; tmp181 = (ats_sum_ptr_type)0 ; tmp182 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg2), atslab_f0undec_arg) ; tmp183 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg2), atslab_f0undec_res) ; tmp184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg2), atslab_f0undec_def) ; tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr_lams_dyn (-1, tmp181, tmp178, 0, tmp182, tmp183, tmp179, tmp184) ; if (arg1) { tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric (tmp180) ; /* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__termet_check (tmp165, tmp186, tmp179) ; } else { /* empty */ } /* end of [if] */ tmp188 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg2), atslab_f0undec_ann) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__witht0ype_tr (tmp188) ; tmp189 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg2), atslab_f0undec_sym) ; tmp190 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, arg2), atslab_f0undec_sym_loc) ; tmp164 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__f1undec_make (tmp165, tmp189, tmp190, tmp180, tmp187) ; return (tmp164) ; } /* end of [f0undec_tr_26] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 11927(line=528, offs=1) -- 12212(line=542, offs=4) */ ATSstaticdec() ats_ptr_type f0undeclst_tr_27 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_bool_type, tmp192) ; ATSlocal (ats_bool_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; __ats_lab_f0undeclst_tr_27: tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_proof (arg0) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive (arg0) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp191 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp196 = f0undec_tr_26 (tmp192, tmp193, tmp194) ; tmp197 = f0undeclst_tr_27 (arg0, tmp195) ; tmp191 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_0, tmp196) ; ats_selptrset_mac(anairiats_sum_9, tmp191, atslab_1, tmp197) ; break ; } while (0) ; return (tmp191) ; } /* end of [f0undeclst_tr_27] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 12264(line=547, offs=1) -- 12609(line=563, offs=4) */ ATSstaticdec() ats_ptr_type v0ardec_tr_28 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_int_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; __ats_lab_v0ardec_tr_28: tmp199 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_v0ardec_loc) ; tmp200 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_v0ardec_knd) ; tmp201 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_v0ardec_pfat) ; tmp203 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_v0ardec_type) ; tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr (tmp203) ; tmp205 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_v0ardec_init) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0expopt_tr (tmp205) ; tmp206 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_v0ardec_sym) ; tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, arg0), atslab_v0ardec_sym_loc) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__v1ardec_make (tmp199, tmp200, tmp206, tmp207, tmp201, tmp202, tmp204) ; return (tmp198) ; } /* end of [v0ardec_tr_28] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 12658(line=568, offs=1) -- 13100(line=585, offs=4) */ ATSstaticdec() ats_ptr_type i0mpdec_tr_29 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; __ats_lab_i0mpdec_tr_29: tmp209 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_i0mpdec_loc) ; tmp210 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_i0mpdec_qid) ; tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, tmp210), atslab_impqi0de_arg) ; tmp211 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp212, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0mpmarg_tr) ; tmp214 = (ats_sum_ptr_type)0 ; tmp215 = (ats_sum_ptr_type)0 ; tmp216 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_i0mpdec_arg) ; tmp217 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_i0mpdec_res) ; tmp218 = (ats_sum_ptr_type)0 ; tmp219 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_i0mpdec_def) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr_lams_dyn (-1, tmp214, tmp215, 0, tmp216, tmp217, tmp218, tmp219) ; tmp220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, arg0), atslab_i0mpdec_loc) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1mpdec_make (tmp220, tmp210, ats_castfn_mac(ats_ptr_type, tmp211), tmp213) ; return (tmp208) ; } /* end of [i0mpdec_tr_29] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 13152(line=590, offs=1) -- 13248(line=592, offs=51) */ ATSstaticdec() ats_void_type the_ATSRELOC_set_decl_30 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp221) ; __ats_lab_the_ATSRELOC_set_decl_30: /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_set_decl (ats_castfn_mac(ats_ptr_type, arg0)) ; return /* (tmp221) */ ; } /* end of [the_ATSRELOC_set_decl_30] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 13256(line=595, offs=1) -- 13417(line=602, offs=2) */ ATSstaticdec() ats_void_type the_ATSRELOC_set_decl_if_31 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp222) ; ATSlocal (ats_int_type, tmp223) ; ATSlocal (ats_bool_type, tmp224) ; __ats_lab_the_ATSRELOC_set_decl_if_31: tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get () ; tmp224 = atspre_gt_int_int (tmp223, 0) ; if (tmp224) { /* tmp222 = */ the_ATSRELOC_set_decl_30 (arg0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp222) */ ; } /* end of [the_ATSRELOC_set_decl_if_31] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 13596(line=616, offs=1) -- 15304(line=699, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__i0nclude_tr (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_int_type, tmp232) ; // ATSlocal_void (tmp233) ; ATSlocal (ats_bool_type, tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_bool_type, tmp242) ; ATSlocal (ats_bool_type, tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; // ATSlocal_void (tmp253) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__i0nclude_tr: tmp226 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d0ecl_loc) ; /* tmp227 = */ the_ATSRELOC_set_decl_if_31 (arg0) ; /* ats_ptr_type tmp228 ; */ tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_relative (arg2, (&tmp228)) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (tmp229 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp231 = ats_caselptrlab_mac(anairiats_sum_4, tmp229, atslab_0) ; ATS_FREE(tmp229) ; tmp230 = tmp231 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (tmp229 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get () ; tmp234 = atspre_eq_int_int (tmp232, 0) ; if (tmp234) { /* tmp235 = */ prerr_error1_loc_02942_ (tmp226) ; /* tmp236 = */ atspre_prerr_string (ATSstrcst(": the file [")) ; /* tmp237 = */ atspre_prerr_string (tmp228) ; /* tmp238 = */ atspre_prerr_string (ATSstrcst("] is not available for inclusion.")) ; /* tmp239 = */ atspre_prerr_newline () ; tmp240 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp240)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp240, atslab_0, arg0) ; /* tmp233 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp240) ; } else { /* empty */ } /* end of [if] */ tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; break ; } while (0) ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel2 (arg1, tmp230) ; tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push_check (tmp230) ; tmp243 = ats_selsin_mac(tmp242, atslab_1) ; if (tmp243) { /* tmp245 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp226) ; /* tmp246 = */ atspre_prerr_string (ATSstrcst(": error(0)")) ; /* tmp247 = */ atspre_prerr_string (ATSstrcst(": including the file [")) ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__prerr_filename_full (tmp230) ; /* tmp249 = */ atspre_prerr_string (ATSstrcst("] generates the following looping trace:\n")) ; /* tmp250 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_the_filenamelst (stderr) ; tmp252 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp252)->tag = 8 ; ats_selptrset_mac(anairiats_sum_3, tmp252, atslab_0, arg0) ; /* tmp251 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp252) ; /* tmp244 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; } else { /* empty */ } /* end of [if] */ /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp241) ; return (tmp225) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__i0nclude_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 15355(line=704, offs=1) -- 15526(line=712, offs=4) */ ATSstaticdec() ats_ptr_type ats_filename_get_33 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; __ats_lab_ats_filename_get_33: tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_current () ; tmp256 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_fullname (tmp255) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp256) ; return (tmp254) ; } /* end of [ats_filename_get_33] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2747(line=110, offs=20) -- 2808(line=113, offs=2) */ ATSstaticdec() ats_void_type prerr_warning1_loc_02948_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; __ats_lab_prerr_warning1_loc_02948_: /* tmp264 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp263 = */ atspre_prerr_string (ATSstrcst(": warning(1)")) ; return /* (tmp263) */ ; } /* end of [prerr_warning1_loc_02948_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 15582(line=717, offs=1) -- 16054(line=737, offs=4) */ ATSstaticdec() ats_ptr_type ats_packname_get_34 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; // ATSlocal_void (tmp262) ; ATSlocal (ats_ptr_type, tmp265) ; // ATSlocal_void (tmp266) ; // ATSlocal_void (tmp267) ; __ats_lab_ats_packname_get_34: tmp258 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_PACKNAME) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (tmp258 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_43_1: tmp259 = ats_caselptrlab_mac(anairiats_sum_4, tmp258, atslab_0) ; ATS_FREE(tmp258) ; tmp260 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp259), atslab_e1xp_node) ; do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp260)->tag != 5) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp261 = ats_caselptrlab_mac(anairiats_sum_3, tmp260, atslab_0) ; tmp257 = ats_castfn_mac(ats_ptr_type, tmp261) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: __ats_lab_45_1: tmp265 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp259), atslab_e1xp_loc) ; /* tmp262 = */ prerr_warning1_loc_02948_ (tmp265) ; /* tmp266 = */ atspre_prerr_string (ATSstrcst(": a string definition is required for [ATS_PACKNAME].")) ; /* tmp267 = */ atspre_prerr_newline () ; tmp257 = atspre_stropt_none ; break ; } while (0) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (tmp258 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp257 = atspre_stropt_none ; break ; } while (0) ; return (tmp257) ; } /* end of [ats_packname_get_34] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 16110(line=742, offs=1) -- 16921(line=777, offs=4) */ ATSstaticdec() ats_ptr_type ats_packname_get2_36 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_bool_type, tmp270) ; ATSlocal (ats_bool_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; __ats_lab_ats_packname_get2_36: tmp269 = ats_packname_get_34 () ; tmp270 = atspre_stropt_is_some (tmp269) ; if (tmp270) { tmp268 = tmp269 ; } else { tmp271 = atspre_stropt_is_some (arg0) ; if (tmp271) { tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (arg1) ; tmp273 = atspre_tostringf (ATSstrcst("%s%s"), ats_castfn_mac(ats_ptr_type, arg0), tmp272) ; tmp268 = ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp273)) ; } else { tmp274 = ats_filename_get_33 () ; tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (arg1) ; tmp276 = atspre_tostringf (ATSstrcst("%s%s"), tmp274, tmp275) ; tmp268 = ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp276)) ; } /* end of [if] */ } /* end of [if] */ return (tmp268) ; } /* end of [ats_packname_get2_36] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 17610(line=815, offs=5) -- 18725(line=874, offs=4) */ ATSstaticdec() ats_ptr_type auxload_37 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_bool_type, tmp279) ; ATSlocal (ats_int_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; // ATSlocal_void (tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; // ATSlocal_void (tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; // ATSlocal_void (tmp291) ; // ATSlocal_void (tmp292) ; __ats_lab_auxload_37: tmp278 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_get_partname (arg0) ; tmp279 = patsopt_string_suffix_is_dats (tmp278) ; if (tmp279) { tmp280 = 1 ; } else { tmp280 = 0 ; } /* end of [if] */ tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__parse_from_filename_toplevel2 (tmp280, arg0) ; /* tmp282 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_save () ; /* tmp283 = ats_selsin_mac(tmp282, atslab_1) */ ; /* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (arg0) ; /* tmp285 = ats_selsin_mac(tmp284, atslab_1) */ ; tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp281) ; /* tmp287 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; tmp288 = ats_packname_get_34 () ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_packname (tmp288) ; tmp290 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp290, atslab_0, tmp289) ; ats_selptrset_mac(anairiats_sum_9, tmp290, atslab_1, tmp286) ; /* tmp291 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_restore () ; /* tmp292 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_insert (arg0, ats_ptrget_mac(ats_int_type, arg1), tmp290) ; tmp277 = tmp290 ; return (tmp277) ; } /* end of [auxload_37] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 18793(line=880, offs=1) -- 20712(line=978, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__s0taload_tr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; // ATSlocal_void (tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_int_type, tmp300) ; // ATSlocal_void (tmp301) ; ATSlocal (ats_bool_type, tmp302) ; // ATSlocal_void (tmp303) ; // ATSlocal_void (tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; // ATSlocal_void (tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_bool_type, tmp309) ; ATSlocal (ats_bool_type, tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; // ATSlocal_void (tmp313) ; // ATSlocal_void (tmp314) ; // ATSlocal_void (tmp315) ; // ATSlocal_void (tmp316) ; // ATSlocal_void (tmp317) ; // ATSlocal_void (tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; // ATSlocal_void (tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (anairiats_rec_30, tmp322) ; ATSlocal (ats_int_type, tmp323) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__s0taload_tr: tmp294 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d0ecl_loc) ; ats_ptrget_mac(ats_int_type, arg3) = 0 ; /* tmp295 = */ the_ATSRELOC_set_decl_if_31 (arg0) ; /* ats_ptr_type tmp296 ; */ tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_relative (arg2, (&tmp296)) ; do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (tmp297 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp299 = ats_caselptrlab_mac(anairiats_sum_4, tmp297, atslab_0) ; ATS_FREE(tmp297) ; tmp298 = tmp299 ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (tmp297 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get () ; tmp302 = atspre_eq_int_int (tmp300, 0) ; if (tmp302) { /* tmp303 = */ prerr_error1_loc_02942_ (tmp294) ; /* tmp304 = */ atspre_prerr_string (ATSstrcst(": the file [")) ; /* tmp305 = */ atspre_prerr_string (tmp296) ; /* tmp306 = */ atspre_prerr_string (ATSstrcst("] is not available for staloading.")) ; /* tmp307 = */ atspre_prerr_newline () ; tmp308 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp308)->tag = 9 ; ats_selptrset_mac(anairiats_sum_3, tmp308, atslab_0, arg0) ; /* tmp301 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp308) ; } else { /* empty */ } /* end of [if] */ tmp298 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; break ; } while (0) ; tmp309 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push_check (tmp298) ; tmp310 = ats_selsin_mac(tmp309, atslab_1) ; if (tmp310) { /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp294) ; /* tmp313 = */ atspre_prerr_string (ATSstrcst(": error(0)")) ; /* tmp314 = */ atspre_prerr_string (ATSstrcst(": staloading the file [")) ; /* tmp315 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__prerr_filename_full (tmp298) ; /* tmp316 = */ atspre_prerr_string (ATSstrcst("] generates the following looping trace:\n")) ; /* tmp317 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_the_filenamelst (stderr) ; tmp319 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp319)->tag = 9 ; ats_selptrset_mac(anairiats_sum_3, tmp319, atslab_0, arg0) ; /* tmp318 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp319) ; /* tmp311 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; } else { /* empty */ } /* end of [if] */ /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; ats_ptrget_mac(ats_ptr_type, arg4) = tmp298 ; tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload_file_search (tmp298) ; do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (tmp321 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp322 = ats_caselptrlab_mac(anairiats_sum_31, tmp321, atslab_0) ; ATS_FREE(tmp321) ; tmp323 = ats_select_mac(tmp322, atslab_0) ; ats_ptrget_mac(ats_int_type, arg3) = tmp323 ; tmp293 = ats_select_mac(tmp322, atslab_1) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (tmp321 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp293 = auxload_37 (tmp298, arg3) ; break ; } while (0) ; return (tmp293) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__s0taload_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 20989(line=995, offs=3) -- 21140(line=1004, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_int_type, tmp325) ; ATSlocal (ats_bool_type, tmp326) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr: tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get () ; tmp326 = atspre_gt_int_int (tmp325, 0) ; if (tmp326) { tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr_if (arg0, arg1) ; } else { tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; } /* end of [if] */ return (tmp324) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 21193(line=1008, offs=3) -- 21764(line=1048, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr_if (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_int_type, tmp332) ; // ATSlocal_void (tmp333) ; ATSlocal (ats_bool_type, tmp334) ; // ATSlocal_void (tmp335) ; // ATSlocal_void (tmp336) ; // ATSlocal_void (tmp337) ; // ATSlocal_void (tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr_if: tmp328 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d0ecl_loc) ; /* tmp329 = */ the_ATSRELOC_set_decl_30 (arg0) ; /* ats_ptr_type tmp330 ; */ tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_relative (arg1, (&tmp330)) ; tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DEBUGATS_dbgflag_get () ; tmp334 = atspre_gt_int_int (tmp332, 0) ; if (tmp334) { /* tmp335 = */ prerr_error1_loc_02942_ (tmp328) ; /* tmp336 = */ atspre_prerr_string (ATSstrcst(": the file [")) ; /* tmp337 = */ atspre_prerr_string (tmp330) ; /* tmp338 = */ atspre_prerr_string (ATSstrcst("] is required.")) ; /* tmp333 = */ atspre_prerr_newline () ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (tmp331 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_4, tmp331, atslab_0) ; ATS_FREE(tmp331) ; tmp327 = tmp339 ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (tmp331 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp327 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; break ; } while (0) ; return (tmp327) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr_if] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 21927(line=1059, offs=3) -- 22792(line=1107, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__d0ynload_tr (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; // ATSlocal_void (tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_int_type, tmp346) ; // ATSlocal_void (tmp347) ; ATSlocal (ats_bool_type, tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; // ATSlocal_void (tmp351) ; // ATSlocal_void (tmp352) ; // ATSlocal_void (tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__d0ynload_tr: tmp341 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d0ecl_loc) ; /* tmp342 = */ the_ATSRELOC_set_decl_if_31 (arg0) ; /* ats_ptr_type tmp343 ; */ tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filenameopt_make_relative (arg1, (&tmp343)) ; do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (tmp344 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp345 = ats_caselptrlab_mac(anairiats_sum_4, tmp344, atslab_0) ; ATS_FREE(tmp344) ; tmp340 = tmp345 ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (tmp344 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get () ; tmp348 = atspre_eq_int_int (tmp346, 0) ; if (tmp348) { /* tmp349 = */ prerr_error1_loc_02942_ (tmp341) ; /* tmp350 = */ atspre_prerr_string (ATSstrcst(": the file [")) ; /* tmp351 = */ atspre_prerr_string (tmp343) ; /* tmp352 = */ atspre_prerr_string (ATSstrcst("] is not available for dynloading")) ; /* tmp353 = */ atspre_prerr_newline () ; tmp354 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp354)->tag = 10 ; ats_selptrset_mac(anairiats_sum_3, tmp354, atslab_0, arg0) ; /* tmp347 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp354) ; } else { /* empty */ } /* end of [if] */ tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy ; break ; } while (0) ; return (tmp340) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__d0ynload_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 22913(line=1116, offs=7) -- 23727(line=1141, offs=10) */ ATSstaticdec() ats_ptr_type loop_43 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_bool_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_bool_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_bool_type, tmp374) ; __ats_lab_loop_43: do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp357 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp358 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp360 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp357) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize_if (arg0, tmp360) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true (tmp359) ; if (tmp361) { tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp358) ; } else { tmp356 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp362 = ats_caselptrlab_mac(anairiats_sum_32, arg1, atslab_0) ; tmp363 = ats_caselptrlab_mac(anairiats_sum_32, arg1, atslab_1) ; tmp364 = ats_caselptrlab_mac(anairiats_sum_32, arg1, atslab_2) ; tmp366 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp362) ; tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize_if (arg0, tmp366) ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true (tmp365) ; if (tmp367) { tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp363) ; } else { tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp364) ; } /* end of [if] */ break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp368 = ats_caselptrlab_mac(anairiats_sum_33, arg1, atslab_0) ; tmp369 = ats_caselptrlab_mac(anairiats_sum_33, arg1, atslab_1) ; tmp370 = ats_caselptrlab_mac(anairiats_sum_33, arg1, atslab_2) ; tmp371 = ats_caselptrlab_mac(anairiats_sum_33, arg1, atslab_3) ; tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp368) ; tmp372 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize_if (arg0, tmp373) ; tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__v1al_is_true (tmp372) ; if (tmp374) { tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp369) ; } else { arg0 = tmp370 ; arg1 = tmp371 ; goto __ats_lab_loop_43 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp356) ; } /* end of [loop_43] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 22843(line=1112, offs=1) -- 23805(line=1145, offs=4) */ ATSstaticdec() ats_ptr_type guad0ecl_tr_42 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp355) ; ATSlocal (ats_ptr_type, tmp375) ; __ats_lab_guad0ecl_tr_42: tmp375 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg1), atslab_guad0ecl_node) ; tmp355 = loop_43 (arg0, tmp375) ; return (tmp355) ; } /* end of [guad0ecl_tr_42] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 23871(line=1150, offs=10) -- 32062(line=1494, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp380) ; // ATSlocal_void (tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; // ATSlocal_void (tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_int_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; // ATSlocal_void (tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; // ATSlocal_void (tmp396) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; // ATSlocal_void (tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_int_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_int_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_int_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_int_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_int_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_int_type, tmp446) ; ATSlocal (ats_int_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_int_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_bool_type, tmp454) ; ATSlocal (ats_bool_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_int_type, tmp458) ; ATSlocal (ats_bool_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_ptr_type, tmp467) ; ATSlocal (ats_bool_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_int_type, tmp471) ; ATSlocal (ats_ptr_type, tmp472) ; ATSlocal (ats_ptr_type, tmp473) ; ATSlocal (ats_int_type, tmp474) ; ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_int_type, tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; // ATSlocal_void (tmp482) ; // ATSlocal_void (tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; // ATSlocal_void (tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_int_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; // ATSlocal_void (tmp491) ; // ATSlocal_void (tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; // ATSlocal_void (tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; // ATSlocal_void (tmp501) ; // ATSlocal_void (tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; // ATSlocal_void (tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; // ATSlocal_void (tmp512) ; // ATSlocal_void (tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; // ATSlocal_void (tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; // ATSlocal_void (tmp518) ; // ATSlocal_void (tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; // ATSlocal_void (tmp521) ; // ATSlocal_void (tmp522) ; ATSlocal (ats_ptr_type, tmp523) ; // ATSlocal_void (tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_ptr_type, tmp528) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_tr: tmp377 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d0ecl_loc) ; tmp378 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d0ecl_node) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp378)->tag != 0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp379 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_0) ; tmp380 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_fixity_tr (tmp379, tmp380) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_none (tmp377) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp378)->tag != 1) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; /* tmp383 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_nonfix_tr (tmp382) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_none (tmp377) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp378)->tag != 2) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp384 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symintr (tmp377, tmp384) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp378)->tag != 3) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp385 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_symelim (tmp377, tmp385) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp378)->tag != 4) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp386 = ats_caselptrlab_mac(anairiats_sum_7, tmp378, atslab_0) ; tmp387 = ats_caselptrlab_mac(anairiats_sum_7, tmp378, atslab_1) ; tmp388 = ats_caselptrlab_mac(anairiats_sum_7, tmp378, atslab_2) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_overload (tmp377, tmp386, tmp387, tmp388) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp378)->tag != 5) { goto __ats_lab_66_0 ; } __ats_lab_63_1: tmp389 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_0) ; tmp390 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (tmp390 == (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp392 = ats_caselptrlab_mac(anairiats_sum_4, tmp390, atslab_0) ; tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp392) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: // if (tmp390 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_65_1: tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none (tmp377) ; break ; } while (0) ; /* tmp393 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_add (tmp389, tmp391) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpdef (tmp377, tmp389, tmp391) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp378)->tag != 6) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp394 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp395 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_undef (tmp377) ; /* tmp396 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_add (tmp394, tmp395) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_e1xpundef (tmp377, tmp394, tmp395) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp378)->tag != 7) { goto __ats_lab_72_0 ; } __ats_lab_67_1: tmp397 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_0) ; tmp398 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp398) ; tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize (tmp399) ; do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp397)->tag != 0) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp402 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, tmp398), atslab_e0xp_loc) ; /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_error (tmp402, tmp400) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp397)->tag != 1) { goto __ats_lab_70_0 ; } __ats_lab_69_1: /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_prerr (tmp400) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp397)->tag != 2) { goto __ats_lab_71_0 ; } __ats_lab_70_1: /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_print (tmp400) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: // if (((ats_sum_ptr_type)tmp397)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_71_1: tmp403 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, tmp398), atslab_e0xp_loc) ; /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_assert (tmp403, tmp400) ; break ; } while (0) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_none (tmp377) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp378)->tag != 8) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp404 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr (tmp404) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_pragma (tmp377, tmp405) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp378)->tag != 9) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp406 = ats_caselptrlab_mac(anairiats_sum_19, tmp378, atslab_0) ; tmp407 = ats_caselptrlab_mac(anairiats_sum_19, tmp378, atslab_1) ; tmp408 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr (tmp407) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_codegen (tmp377, tmp406, tmp408) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp378)->tag != 10) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp409 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp410 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp409, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atsrtdec_tr) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datsrts (tmp377, ats_castfn_mac(ats_ptr_type, tmp410)) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp378)->tag != 11) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp411 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp412 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp411, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0rtdef_tr) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_srtdefs (tmp377, ats_castfn_mac(ats_ptr_type, tmp412)) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp378)->tag != 12) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp413 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp414 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp413, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacst_tr) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacsts (tmp377, ats_castfn_mac(ats_ptr_type, tmp414)) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp378)->tag != 13) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp415 = ats_caselptrlab_mac(anairiats_sum_19, tmp378, atslab_0) ; tmp416 = ats_caselptrlab_mac(anairiats_sum_19, tmp378, atslab_1) ; tmp417 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp416, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0tacon_tr) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_stacons (tmp377, tmp415, ats_castfn_mac(ats_ptr_type, tmp417)) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp378)->tag != 14) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp418 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0kindef_tr (tmp418) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_tkindef (tmp377, tmp419) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp378)->tag != 15) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp420 = ats_caselptrlab_mac(anairiats_sum_19, tmp378, atslab_0) ; tmp421 = ats_caselptrlab_mac(anairiats_sum_19, tmp378, atslab_1) ; tmp422 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp421, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expdef_tr) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_sexpdefs (tmp377, tmp420, ats_castfn_mac(ats_ptr_type, tmp422)) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp378)->tag != 16) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp423 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0aspdec_tr (tmp423) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_saspdec (tmp377, tmp424) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp378)->tag != 17) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp425 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_reassume (tmp377, tmp425) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp378)->tag != 18) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp426 = ats_caselptrlab_mac(anairiats_sum_3, tmp378, atslab_0) ; tmp427 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp426, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xndec_tr) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_exndecs (tmp377, ats_castfn_mac(ats_ptr_type, tmp427)) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp378)->tag != 19) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp428 = ats_caselptrlab_mac(anairiats_sum_36, tmp378, atslab_0) ; tmp429 = ats_caselptrlab_mac(anairiats_sum_36, tmp378, atslab_1) ; tmp430 = ats_caselptrlab_mac(anairiats_sum_36, tmp378, atslab_2) ; tmp431 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp429, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0atdec_tr) ; tmp432 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp430, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expdef_tr) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_datdecs (tmp377, tmp428, ats_castfn_mac(ats_ptr_type, tmp431), ats_castfn_mac(ats_ptr_type, tmp432)) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp378)->tag != 20) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp433 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_0) ; tmp434 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr (tmp434) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_classdec (tmp377, tmp433, tmp435) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp378)->tag != 21) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp436 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_0) ; tmp437 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp437) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype (tmp377, tmp436, tmp438) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp378)->tag != 22) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp439 = ats_caselptrlab_mac(anairiats_sum_36, tmp378, atslab_0) ; tmp440 = ats_caselptrlab_mac(anairiats_sum_36, tmp378, atslab_1) ; tmp441 = ats_caselptrlab_mac(anairiats_sum_36, tmp378, atslab_2) ; tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp441) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extype2 (tmp377, tmp439, tmp440, tmp442) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp378)->tag != 23) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp443 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_0) ; tmp444 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; tmp445 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp444) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extvar (tmp377, tmp443, tmp445) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp378)->tag != 24) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp446 = ats_caselptrlab_mac(anairiats_sum_37, tmp378, atslab_0) ; tmp447 = ats_caselptrlab_mac(anairiats_sum_37, tmp378, atslab_1) ; tmp448 = ats_caselptrlab_mac(anairiats_sum_37, tmp378, atslab_2) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_extcode (tmp377, tmp446, tmp447, tmp448) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp378)->tag != 25) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp449 = ats_caselptrlab_mac(anairiats_sum_38, tmp378, atslab_0) ; tmp450 = ats_caselptrlab_mac(anairiats_sum_38, tmp378, atslab_1) ; tmp451 = ats_caselptrlab_mac(anairiats_sum_38, tmp378, atslab_2) ; tmp452 = ats_caselptrlab_mac(anairiats_sum_38, tmp378, atslab_3) ; tmp453 = token_get_dcstkind_23 (tmp450) ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun (tmp453) ; tmp455 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_proof (tmp453) ; tmp456 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marglst_tr (tmp451) ; tmp457 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0cstdeclst_tr (tmp454, tmp455, tmp452) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dcstdecs (tmp377, tmp449, tmp453, tmp456, tmp457) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp378)->tag != 27) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp458 = ats_caselptrlab_mac(anairiats_sum_39, tmp378, atslab_0) ; tmp459 = ats_caselptrlab_mac(anairiats_sum_39, tmp378, atslab_1) ; tmp460 = ats_caselptrlab_mac(anairiats_sum_39, tmp378, atslab_2) ; tmp461 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp460, &m0acdef_tr_24) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_macdefs (tmp377, tmp458, tmp459, ats_castfn_mac(ats_ptr_type, tmp461)) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp378)->tag != 28) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp462 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_0) ; tmp463 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_1) ; tmp464 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_2) ; tmp465 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__q0marglst_tr (tmp463) ; tmp466 = f0undeclst_tr_27 (tmp462, tmp464) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_fundecs (tmp377, tmp462, tmp465, tmp466) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp378)->tag != 29) { goto __ats_lab_93_0 ; } __ats_lab_92_1: tmp467 = ats_caselptrlab_mac(anairiats_sum_40, tmp378, atslab_0) ; tmp468 = ats_caselptrlab_mac(anairiats_sum_40, tmp378, atslab_1) ; tmp469 = ats_caselptrlab_mac(anairiats_sum_40, tmp378, atslab_2) ; tmp470 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp469, &v0aldec_tr_25) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_valdecs (tmp377, tmp467, tmp468, ats_castfn_mac(ats_ptr_type, tmp470)) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp378)->tag != 30) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp471 = ats_caselptrlab_mac(anairiats_sum_19, tmp378, atslab_0) ; tmp472 = ats_caselptrlab_mac(anairiats_sum_19, tmp378, atslab_1) ; tmp473 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp472, &v0ardec_tr_28) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_vardecs (tmp377, tmp471, ats_castfn_mac(ats_ptr_type, tmp473)) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp378)->tag != 26) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp474 = ats_caselptrlab_mac(anairiats_sum_36, tmp378, atslab_0) ; tmp475 = ats_caselptrlab_mac(anairiats_sum_36, tmp378, atslab_1) ; tmp476 = ats_caselptrlab_mac(anairiats_sum_36, tmp378, atslab_2) ; tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__i0mparg_tr (tmp475) ; tmp478 = i0mpdec_tr_29 (tmp476) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_impdec (tmp377, tmp474, tmp477, tmp478) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp378)->tag != 31) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp479 = ats_caselptrlab_mac(anairiats_sum_41, tmp378, atslab_0) ; tmp480 = ats_caselptrlab_mac(anairiats_sum_41, tmp378, atslab_1) ; tmp481 = ats_caselptrlab_mac(anairiats_sum_41, tmp378, atslab_2) ; /* tmp482 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (tmp479) ; /* tmp483 = ats_selsin_mac(tmp482, atslab_1) */ ; tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__i0nclude_tr (arg0, tmp480, tmp481) ; /* tmp485 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_include (tmp377, tmp480, tmp484) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp378)->tag != 32) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp486 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_0) ; tmp487 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_1) ; tmp488 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_2) ; /* ats_int_type tmp489 ; */ /* ats_ptr_type tmp490 ; */ /* tmp491 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (tmp486) ; /* tmp492 = ats_selsin_mac(tmp491, atslab_1) */ ; tmp493 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__s0taload_tr (arg0, tmp487, tmp488, (&tmp489), (&tmp490)) ; /* tmp494 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staload (tmp377, tmp487, tmp490, tmp489, tmp493) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp378)->tag != 33) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp495 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_1) ; tmp496 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_2) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadnm (tmp377, tmp495, tmp496) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp378)->tag != 34) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp497 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_0) ; tmp498 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_1) ; tmp499 = ats_caselptrlab_mac(anairiats_sum_32, tmp378, atslab_2) ; tmp500 = ats_packname_get_34 () ; /* tmp501 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_save () ; /* tmp502 = ats_selsin_mac(tmp501, atslab_1) */ ; tmp503 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp499) ; tmp504 = ats_packname_get2_36 (tmp500, tmp498) ; tmp505 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_packname (tmp504) ; tmp506 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp506, atslab_0, tmp505) ; ats_selptrset_mac(anairiats_sum_9, tmp506, atslab_1, tmp503) ; /* tmp507 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_restore () ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_staloadloc (tmp377, tmp497, tmp498, tmp506) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp378)->tag != 35) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp508 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; tmp509 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__r0equire_tr (arg0, tmp508) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_none (tmp377) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp378)->tag != 36) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp510 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_0) ; tmp511 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; /* tmp512 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_push (tmp510) ; /* tmp513 = ats_selsin_mac(tmp512, atslab_1) */ ; tmp514 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__d0ynload_tr (arg0, tmp511) ; /* tmp515 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_pop () ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_dynload (tmp377, tmp514) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp378)->tag != 37) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp516 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_0) ; tmp517 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; /* tmp518 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push () ; /* tmp519 = ats_selsin_mac(tmp518, atslab_1) */ ; tmp520 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp516) ; /* tmp521 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push () ; /* tmp522 = ats_selsin_mac(tmp521, atslab_1) */ ; tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp517) ; /* tmp524 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_localjoin () ; tmp525 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d0ecl_loc) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_local (tmp525, tmp520, tmp523) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: // if (((ats_sum_ptr_type)tmp378)->tag != 38) { ats_deadcode_failure_handle () ; } __ats_lab_102_1: tmp526 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_0) ; tmp527 = ats_caselptrlab_mac(anairiats_sum_8, tmp378, atslab_1) ; tmp528 = guad0ecl_tr_42 (tmp526, tmp527) ; tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_list (tmp377, tmp528) ; break ; } while (0) ; return (tmp376) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 32107(line=1497, offs=13) -- 32164(line=1498, offs=49) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp530) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr: tmp530 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0ecl_tr) ; tmp529 = ats_castfn_mac(ats_ptr_type, tmp530) ; return (tmp529) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 32242(line=1505, offs=3) -- 32686(line=1533, offs=2) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; ATSlocal (ats_bool_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; // ATSlocal_void (tmp537) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck: tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (arg0) ; tmp533 = ats_packname_get_34 () ; tmp534 = atspre_stropt_is_none (tmp533) ; if (tmp534) { tmp535 = tmp532 ; } else { tmp536 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1ecl_packname (tmp533) ; tmp535 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp535, atslab_0, tmp536) ; ats_selptrset_mac(anairiats_sum_9, tmp535, atslab_1, tmp532) ; } /* end of [if] */ /* tmp537 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_finalize () ; tmp531 = tmp535 ; return (tmp531) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr_errck] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 32750(line=1540, offs=1) -- 32851(line=1546, offs=4) */ ATSstaticdec() ats_int_type intrep2int_47 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp538) ; ATSlocal (ats_llint_type, tmp539) ; __ats_lab_intrep2int_47: tmp539 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string (arg0) ; tmp538 = atspre_int_of_llint (tmp539) ; return (tmp538) ; } /* end of [intrep2int_47] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 32880(line=1549, offs=1) -- 33526(line=1575, offs=4) */ ATSstaticdec() ats_void_type aux_dynloadflag_48 () { /* local vardec */ // ATSlocal_void (tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_int_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_int_type, tmp546) ; // ATSlocal_void (tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; // ATSlocal_void (tmp549) ; // ATSlocal_void (tmp550) ; __ats_lab_aux_dynloadflag_48: tmp541 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADFLAG) ; do { /* branch: __ats_lab_103 */ __ats_lab_103_0: if (tmp541 == (ats_sum_ptr_type)0) { goto __ats_lab_107_0 ; } __ats_lab_103_1: tmp542 = ats_caselptrlab_mac(anairiats_sum_4, tmp541, atslab_0) ; ATS_FREE(tmp541) ; tmp543 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp542), atslab_e1xp_node) ; do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp543)->tag != 1) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp544 = ats_caselptrlab_mac(anairiats_sum_6, tmp543, atslab_0) ; /* tmp540 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set (tmp544) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp543)->tag != 2) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp545 = ats_caselptrlab_mac(anairiats_sum_3, tmp543, atslab_0) ; tmp546 = intrep2int_47 (tmp545) ; /* tmp540 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADFLAG_set (tmp546) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: __ats_lab_106_1: tmp548 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp542), atslab_e1xp_loc) ; /* tmp547 = */ prerr_error1_loc_02942_ (tmp548) ; /* tmp549 = */ atspre_prerr_string (ATSstrcst(": non-integer definition for [ATS_DYNLOADFLAG].")) ; /* tmp550 = */ atspre_prerr_newline () ; /* tmp540 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; break ; } while (0) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: // if (tmp541 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_107_1: break ; } while (0) ; return /* (tmp540) */ ; } /* end of [aux_dynloadflag_48] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 33560(line=1578, offs=1) -- 34155(line=1607, offs=4) */ ATSstaticdec() ats_void_type aux_dynloadname_49 () { /* local vardec */ // ATSlocal_void (tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; // ATSlocal_void (tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; // ATSlocal_void (tmp558) ; // ATSlocal_void (tmp559) ; __ats_lab_aux_dynloadname_49: tmp552 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_DYNLOADNAME) ; do { /* branch: __ats_lab_108 */ __ats_lab_108_0: if (tmp552 == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_108_1: tmp553 = ats_caselptrlab_mac(anairiats_sum_4, tmp552, atslab_0) ; ATS_FREE(tmp552) ; tmp554 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp553), atslab_e1xp_node) ; do { /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp554)->tag != 5) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp555 = ats_caselptrlab_mac(anairiats_sum_3, tmp554, atslab_0) ; /* tmp551 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_DYNLOADNAME_set_name (tmp555) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: __ats_lab_110_1: tmp557 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp553), atslab_e1xp_loc) ; /* tmp556 = */ prerr_error1_loc_02942_ (tmp557) ; /* tmp558 = */ atspre_prerr_string (ATSstrcst(": non-string definition for [ATS_DYNLOADNAME].")) ; /* tmp559 = */ atspre_prerr_newline () ; /* tmp551 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; break ; } while (0) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (tmp552 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: break ; } while (0) ; return /* (tmp551) */ ; } /* end of [aux_dynloadname_49] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 34189(line=1610, offs=1) -- 34862(line=1642, offs=4) */ ATSstaticdec() ats_void_type aux_mainatsflag_50 () { /* local vardec */ // ATSlocal_void (tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_int_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_int_type, tmp566) ; // ATSlocal_void (tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; // ATSlocal_void (tmp569) ; // ATSlocal_void (tmp570) ; __ats_lab_aux_mainatsflag_50: tmp561 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_MAINATSFLAG) ; do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (tmp561 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; } __ats_lab_112_1: tmp562 = ats_caselptrlab_mac(anairiats_sum_4, tmp561, atslab_0) ; ATS_FREE(tmp561) ; tmp563 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp562), atslab_e1xp_node) ; do { /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp563)->tag != 1) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp564 = ats_caselptrlab_mac(anairiats_sum_6, tmp563, atslab_0) ; /* tmp560 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_set (tmp564) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp563)->tag != 2) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp565 = ats_caselptrlab_mac(anairiats_sum_3, tmp563, atslab_0) ; tmp566 = intrep2int_47 (tmp565) ; /* tmp560 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_MAINATSFLAG_set (tmp566) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: __ats_lab_115_1: tmp568 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp562), atslab_e1xp_loc) ; /* tmp567 = */ prerr_error1_loc_02942_ (tmp568) ; /* tmp569 = */ atspre_prerr_string (ATSstrcst(": non-integer definition for [ATS_MAINATSFLAG].")) ; /* tmp570 = */ atspre_prerr_newline () ; /* tmp560 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; break ; } while (0) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: // if (tmp561 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_116_1: break ; } while (0) ; return /* (tmp560) */ ; } /* end of [aux_mainatsflag_50] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 34896(line=1645, offs=1) -- 35512(line=1673, offs=4) */ ATSstaticdec() ats_void_type aux_static_prefix_51 () { /* local vardec */ // ATSlocal_void (tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; // ATSlocal_void (tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; // ATSlocal_void (tmp578) ; // ATSlocal_void (tmp579) ; __ats_lab_aux_static_prefix_51: tmp572 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ATS_STATIC_PREFIX) ; do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (tmp572 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; } __ats_lab_117_1: tmp573 = ats_caselptrlab_mac(anairiats_sum_4, tmp572, atslab_0) ; ATS_FREE(tmp572) ; tmp574 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp573), atslab_e1xp_node) ; do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp574)->tag != 5) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp575 = ats_caselptrlab_mac(anairiats_sum_3, tmp574, atslab_0) ; /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_STATIC_PREFIX_set_name (tmp575) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: __ats_lab_119_1: tmp577 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, tmp573), atslab_e1xp_loc) ; /* tmp576 = */ prerr_error1_loc_02942_ (tmp577) ; /* tmp578 = */ atspre_prerr_string (ATSstrcst(": non-string definition for [ATS_STATIC_PREFIX].")) ; /* tmp579 = */ atspre_prerr_newline () ; /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ; break ; } while (0) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: // if (tmp572 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_120_1: break ; } while (0) ; return /* (tmp571) */ ; } /* end of [aux_static_prefix_51] */ /* // /tmp/ATS-Postiats/src/pats_trans1_decl.dats: 35593(line=1678, offs=16) -- 35775(line=1688, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__trans1_finalize () { /* local vardec */ // ATSlocal_void (tmp580) ; // ATSlocal_void (tmp581) ; // ATSlocal_void (tmp582) ; // ATSlocal_void (tmp583) ; // ATSlocal_void (tmp584) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__trans1_finalize: /* tmp581 = */ aux_dynloadflag_48 () ; /* tmp582 = */ aux_dynloadname_49 () ; /* tmp583 = */ aux_mainatsflag_50 () ; /* tmp584 = */ aux_static_prefix_51 () ; /* tmp580 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__the_filenamelst_ppop () ; return /* (tmp580) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__trans1_finalize] */ /* 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_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_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_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_decl_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ ats_bool_type patsopt_extnam_ismac ( ats_ptr_type ext, ats_ptr_type ext_new ) { int sgn ; char* p ; int len ; // sgn = strncmp((char*)ext, "mac#", 4) ; // if (sgn == 0) { p = strchr ((char*)ext, '#') ; len = strlen (p) ; *(char**)ext_new = (char*)atspre_string_make_substring(p, 1, len-1) ; return ats_true_bool ; } // end of [if] return ats_false_bool ; } // end of [patsopt_extnam_ismac] ats_bool_type patsopt_extnam_issta ( ats_ptr_type ext, ats_ptr_type ext_new ) { int sgn ; char* p ; int len ; sgn = strncmp((char*)ext, "sta#", 4) ; if (sgn == 0) { p = strchr ((char*)ext, '#') ; len = strlen (p) ; *(char**)ext_new = (char*)atspre_string_make_substring(p, 1, len-1) ; return ats_true_bool ; } // end of [if] return ats_false_bool ; } // end of [patsopt_extnam_issta] ats_bool_type patsopt_extnam_isext ( ats_ptr_type ext, ats_ptr_type ext_new ) { int sgn ; char* p ; int len ; sgn = strncmp((char*)ext, "ext#", 4) ; if (sgn == 0) { p = strchr ((char*)ext, '#') ; len = strlen (p) ; *(char**)ext_new = (char*)atspre_string_make_substring(p, 1, len-1) ; return ats_true_bool ; } // end of [if] return ats_false_bool ; } // end of [patsopt_extnam_isext] /* ****** ****** */ /* end of [pats_trans1_decl_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_constraint3_init_dats.c0000644000175000017500000016235313431250607024031 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_gte_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_int_type, atspre_compare_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int) (ats_ptr_type, ats_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_bool_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_bool_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_bool_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_bool_bool) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_div_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndiv_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idiv_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_abs_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_absrel_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgn_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgnrel_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_max_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_min_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_maxrel_int_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_minrel_int_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndivrel_int_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idivrel_int_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifint_bool_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifintrel_bool_int_int_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_of_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_addr_of_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_addr_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_addr_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_addr_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_addr_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_addr_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_addr_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_addr_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_int) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_addr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_cls_cls) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lterel_cls_cls) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ineg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bvar) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool) (ats_bool_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_beq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_badd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bmul) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilte) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igte) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp) (ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make) (ats_ref_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type f_identity_0 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_neg_bool_1 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_add_bool_bool_2 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_mul_bool_bool_3 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_eq_bool_bool_4 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_neq_bool_bool_5 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_neg_int_6 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_add_int_int_7 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_sub_int_int_8 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_mul_int_int_9 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_ndiv_int_int_10 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_idiv_int_int_11 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_lt_int_int_12 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_lte_int_int_13 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_gt_int_int_14 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_gte_int_int_15 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_eq_int_int_16 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_neq_int_int_17 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_abs_int_18 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_sgn_int_19 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_max_int_int_20 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_min_int_int_21 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_ifint_bool_int_int_22 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_lte_cls_cls_23 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type ins_25 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 1727(line=61, offs=1) -- 1857(line=67, offs=4) */ ATSstaticdec() ats_ptr_type f_identity_0 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_f_identity_0: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 1796(line=64, offs=7) -- 1825(line=64, offs=36)") ; } tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp1) ; return (tmp0) ; } /* end of [f_identity_0] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 1925(line=72, offs=1) -- 2084(line=79, offs=4) */ ATSstaticdec() ats_ptr_type f_neg_bool_1 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_f_neg_bool_1: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 1994(line=75, offs=7) -- 2022(line=75, offs=35)") ; } tmp3 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp3) ; tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg (tmp4) ; return (tmp2) ; } /* end of [f_neg_bool_1] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2115(line=82, offs=1) -- 2364(line=91, offs=4) */ ATSstaticdec() ats_ptr_type f_add_bool_bool_2 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_f_add_bool_bool_2: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2190(line=85, offs=7) -- 2219(line=85, offs=36)") ; } tmp6 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp7 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp7 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2226(line=86, offs=7) -- 2255(line=86, offs=36)") ; } tmp8 = ats_caselptrlab_mac(anairiats_sum_0, tmp7, atslab_0) ; tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp6) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp8) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_badd (tmp9, tmp10) ; return (tmp5) ; } /* end of [f_add_bool_bool_2] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2400(line=94, offs=1) -- 2649(line=103, offs=4) */ ATSstaticdec() ats_ptr_type f_mul_bool_bool_3 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab_f_mul_bool_bool_3: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2475(line=97, offs=7) -- 2504(line=97, offs=36)") ; } tmp12 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp13 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2511(line=98, offs=7) -- 2540(line=98, offs=36)") ; } tmp14 = ats_caselptrlab_mac(anairiats_sum_0, tmp13, atslab_0) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp12) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp14) ; tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bmul (tmp15, tmp16) ; return (tmp11) ; } /* end of [f_mul_bool_bool_3] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2685(line=106, offs=1) -- 2932(line=115, offs=4) */ ATSstaticdec() ats_ptr_type f_eq_bool_bool_4 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; __ats_lab_f_eq_bool_bool_4: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2759(line=109, offs=7) -- 2788(line=109, offs=36)") ; } tmp18 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp19 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp19 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2795(line=110, offs=7) -- 2824(line=110, offs=36)") ; } tmp20 = ats_caselptrlab_mac(anairiats_sum_0, tmp19, atslab_0) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp18) ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp20) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_beq (tmp21, tmp22) ; return (tmp17) ; } /* end of [f_eq_bool_bool_4] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2967(line=118, offs=1) -- 3216(line=127, offs=4) */ ATSstaticdec() ats_ptr_type f_neq_bool_bool_5 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab_f_neq_bool_bool_5: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3042(line=121, offs=7) -- 3071(line=121, offs=36)") ; } tmp24 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp25 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp25 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3078(line=122, offs=7) -- 3107(line=122, offs=36)") ; } tmp26 = ats_caselptrlab_mac(anairiats_sum_0, tmp25, atslab_0) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp24) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp26) ; tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneq (tmp27, tmp28) ; return (tmp23) ; } /* end of [f_neq_bool_bool_5] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3291(line=132, offs=1) -- 3454(line=139, offs=4) */ ATSstaticdec() ats_ptr_type f_neg_int_6 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab_f_neg_int_6: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3360(line=135, offs=7) -- 3389(line=135, offs=36)") ; } tmp30 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp30) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg (tmp31) ; return (tmp29) ; } /* end of [f_neg_int_6] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3484(line=142, offs=1) -- 3731(line=151, offs=4) */ ATSstaticdec() ats_ptr_type f_add_int_int_7 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab_f_add_int_int_7: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3557(line=145, offs=7) -- 3586(line=145, offs=36)") ; } tmp33 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp34 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp34 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3593(line=146, offs=7) -- 3622(line=146, offs=36)") ; } tmp35 = ats_caselptrlab_mac(anairiats_sum_0, tmp34, atslab_0) ; tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp33) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp35) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd (tmp36, tmp37) ; return (tmp32) ; } /* end of [f_add_int_int_7] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3765(line=154, offs=1) -- 4012(line=163, offs=4) */ ATSstaticdec() ats_ptr_type f_sub_int_int_8 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab_f_sub_int_int_8: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3838(line=157, offs=7) -- 3867(line=157, offs=36)") ; } tmp39 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp40 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp40 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3874(line=158, offs=7) -- 3903(line=158, offs=36)") ; } tmp41 = ats_caselptrlab_mac(anairiats_sum_0, tmp40, atslab_0) ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp39) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp41) ; tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub (tmp42, tmp43) ; return (tmp38) ; } /* end of [f_sub_int_int_8] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4046(line=166, offs=1) -- 4293(line=175, offs=4) */ ATSstaticdec() ats_ptr_type f_mul_int_int_9 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; __ats_lab_f_mul_int_int_9: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4119(line=169, offs=7) -- 4148(line=169, offs=36)") ; } tmp45 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp46 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4155(line=170, offs=7) -- 4184(line=170, offs=36)") ; } tmp47 = ats_caselptrlab_mac(anairiats_sum_0, tmp46, atslab_0) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp45) ; tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp47) ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul (tmp48, tmp49) ; return (tmp44) ; } /* end of [f_mul_int_int_9] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4327(line=178, offs=1) -- 4537(line=186, offs=4) */ ATSstaticdec() ats_ptr_type f_ndiv_int_int_10 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; __ats_lab_f_ndiv_int_int_10: tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndivrel_int_int_int) ; tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp51, arg1) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp52) ; return (tmp50) ; } /* end of [f_ndiv_int_int_10] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4569(line=188, offs=1) -- 5440(line=219, offs=4) */ ATSstaticdec() ats_ptr_type f_idiv_int_int_11 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_int_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_int_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_bool_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_bool_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_bool_type, tmp70) ; __ats_lab_f_idiv_int_int_11: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4661(line=193, offs=7) -- 4690(line=193, offs=36)") ; } tmp54 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp55 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp55 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4697(line=194, offs=7) -- 4726(line=194, offs=36)") ; } tmp56 = ats_caselptrlab_mac(anairiats_sum_0, tmp55, atslab_0) ; tmp58 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp56), atslab_s2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp58)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_2, tmp58, atslab_0) ; tmp57 = atspre_compare_int_int (tmp59, 0) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp58)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_3, tmp58, atslab_0) ; tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (tmp60, 0) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp57 = 0 ; break ; } while (0) ; tmp62 = atspre_neq_int_int (tmp57, 0) ; if (tmp62) { tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndivrel_int_int_int) ; } else { tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idivrel_int_int_int) ; } /* end of [if] */ tmp64 = atspre_gte_int_int (tmp57, 0) ; if (tmp64) { tmp63 = arg1 ; } else { tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ineg (tmp56) ; tmp67 = (ats_sum_ptr_type)0 ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp65, atslab_0, tmp66) ; ats_selptrset_mac(anairiats_sum_0, tmp65, atslab_1, tmp67) ; tmp63 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp63, atslab_0, tmp54) ; ats_selptrset_mac(anairiats_sum_0, tmp63, atslab_1, tmp65) ; } /* end of [if] */ tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp61, tmp63) ; tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp68) ; tmp70 = atspre_gte_int_int (tmp57, 0) ; if (tmp70) { tmp53 = tmp69 ; } else { tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg (tmp69) ; } /* end of [if] */ return (tmp53) ; } /* end of [f_idiv_int_int_11] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5475(line=222, offs=1) -- 5720(line=231, offs=4) */ ATSstaticdec() ats_ptr_type f_lt_int_int_12 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; __ats_lab_f_lt_int_int_12: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5547(line=225, offs=7) -- 5576(line=225, offs=36)") ; } tmp72 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp73 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp73 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5583(line=226, offs=7) -- 5612(line=226, offs=36)") ; } tmp74 = ats_caselptrlab_mac(anairiats_sum_0, tmp73, atslab_0) ; tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp72) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp74) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilt (tmp75, tmp76) ; return (tmp71) ; } /* end of [f_lt_int_int_12] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5753(line=234, offs=1) -- 6000(line=243, offs=4) */ ATSstaticdec() ats_ptr_type f_lte_int_int_13 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; __ats_lab_f_lte_int_int_13: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5826(line=237, offs=7) -- 5855(line=237, offs=36)") ; } tmp78 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp79 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5862(line=238, offs=7) -- 5891(line=238, offs=36)") ; } tmp80 = ats_caselptrlab_mac(anairiats_sum_0, tmp79, atslab_0) ; tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp78) ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp80) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilte (tmp81, tmp82) ; return (tmp77) ; } /* end of [f_lte_int_int_13] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6034(line=246, offs=1) -- 6279(line=255, offs=4) */ ATSstaticdec() ats_ptr_type f_gt_int_int_14 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; __ats_lab_f_gt_int_int_14: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6106(line=249, offs=7) -- 6135(line=249, offs=36)") ; } tmp84 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp85 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp85 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6142(line=250, offs=7) -- 6171(line=250, offs=36)") ; } tmp86 = ats_caselptrlab_mac(anairiats_sum_0, tmp85, atslab_0) ; tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp84) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp86) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igt (tmp87, tmp88) ; return (tmp83) ; } /* end of [f_gt_int_int_14] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6312(line=258, offs=1) -- 6559(line=267, offs=4) */ ATSstaticdec() ats_ptr_type f_gte_int_int_15 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; __ats_lab_f_gte_int_int_15: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6385(line=261, offs=7) -- 6414(line=261, offs=36)") ; } tmp90 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp91 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6421(line=262, offs=7) -- 6450(line=262, offs=36)") ; } tmp92 = ats_caselptrlab_mac(anairiats_sum_0, tmp91, atslab_0) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp90) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp92) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igte (tmp93, tmp94) ; return (tmp89) ; } /* end of [f_gte_int_int_15] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6593(line=270, offs=1) -- 6838(line=279, offs=4) */ ATSstaticdec() ats_ptr_type f_eq_int_int_16 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; __ats_lab_f_eq_int_int_16: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6665(line=273, offs=7) -- 6694(line=273, offs=36)") ; } tmp96 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp97 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp97 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6701(line=274, offs=7) -- 6730(line=274, offs=36)") ; } tmp98 = ats_caselptrlab_mac(anairiats_sum_0, tmp97, atslab_0) ; tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp96) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp98) ; tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq (tmp99, tmp100) ; return (tmp95) ; } /* end of [f_eq_int_int_16] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6871(line=282, offs=1) -- 7118(line=291, offs=4) */ ATSstaticdec() ats_ptr_type f_neq_int_int_17 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; __ats_lab_f_neq_int_int_17: if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6944(line=285, offs=7) -- 6973(line=285, offs=36)") ; } tmp102 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp103 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp103 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6980(line=286, offs=7) -- 7009(line=286, offs=36)") ; } tmp104 = ats_caselptrlab_mac(anairiats_sum_0, tmp103, atslab_0) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp102) ; tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp104) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineq (tmp105, tmp106) ; return (tmp101) ; } /* end of [f_neq_int_int_17] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 7152(line=293, offs=5) -- 7352(line=300, offs=4) */ ATSstaticdec() ats_ptr_type f_abs_int_18 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab_f_abs_int_18: tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_absrel_int_int) ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp108, arg1) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp109) ; return (tmp107) ; } /* end of [f_abs_int_18] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 7382(line=302, offs=5) -- 7582(line=309, offs=4) */ ATSstaticdec() ats_ptr_type f_sgn_int_19 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; __ats_lab_f_sgn_int_19: tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgnrel_int_int) ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp111, arg1) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp112) ; return (tmp110) ; } /* end of [f_sgn_int_19] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 7612(line=312, offs=1) -- 7820(line=319, offs=4) */ ATSstaticdec() ats_ptr_type f_max_int_int_20 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; __ats_lab_f_max_int_int_20: tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_maxrel_int_int_int) ; tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp114, arg1) ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp115) ; return (tmp113) ; } /* end of [f_max_int_int_20] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 7854(line=322, offs=1) -- 8062(line=329, offs=4) */ ATSstaticdec() ats_ptr_type f_min_int_int_21 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab_f_min_int_int_21: tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_minrel_int_int_int) ; tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp117, arg1) ; tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp118) ; return (tmp116) ; } /* end of [f_min_int_int_21] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 8096(line=332, offs=1) -- 8318(line=340, offs=4) */ ATSstaticdec() ats_ptr_type f_ifint_bool_int_int_22 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; __ats_lab_f_ifint_bool_int_int_22: tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifintrel_bool_int_int_int) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp120, arg1) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp121) ; return (tmp119) ; } /* end of [f_ifint_bool_int_int_22] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 8771(line=362, offs=1) -- 9559(line=401, offs=4) */ ATSstaticdec() ats_ptr_type f_lte_cls_cls_23 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_bool_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_f_lte_cls_cls_23: tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_cls_cls) ; if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 8955(line=373, offs=5) -- 8986(line=373, offs=36)") ; } tmp124 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; if (tmp125 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 8991(line=374, offs=5) -- 9022(line=374, offs=36)") ; } tmp126 = ats_caselptrlab_mac(anairiats_sum_0, tmp125, atslab_0) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp124) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp126) ; tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp127), atslab_s2exp_node) ; tmp130 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp128), atslab_s2exp_node) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp129)->tag != 4) { goto __ats_lab_4_0 ; } __ats_lab_3_1: if (((ats_sum_ptr_type)tmp130)->tag != 4) { goto __ats_lab_4_1 ; } __ats_lab_3_2: tmp131 = ats_caselptrlab_mac(anairiats_sum_3, tmp129, atslab_0) ; tmp132 = ats_caselptrlab_mac(anairiats_sum_3, tmp130, atslab_0) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls (tmp131, tmp132) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool (tmp133) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: __ats_lab_4_2: tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lterel_cls_cls) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool, tmp134, arg1) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bvar (tmp135) ; break ; } while (0) ; return (tmp122) ; } /* end of [f_lte_cls_cls_23] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 9766(line=414, offs=5) -- 10012(line=423, offs=4) */ ATSstaticdec() ats_void_type ins_25 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; __ats_lab_ins_25: tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (arg1) ; tmp139 = ats_castfn_mac(ats_ptr_type, ats_ptrget_mac(ats_ptr_type, arg0)) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add (tmp139, tmp138, arg2) ; ats_ptrget_mac(ats_ptr_type, arg0) = ats_castfn_mac(ats_ptr_type, tmp140) ; return /* (tmp137) */ ; } /* end of [ins_25] */ /* // /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 9692(line=410, offs=28) -- 12162(line=482, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize_map (ats_ref_type arg0) { /* local vardec */ // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; // ATSlocal_void (tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; // ATSlocal_void (tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; // ATSlocal_void (tmp165) ; // ATSlocal_void (tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; // ATSlocal_void (tmp170) ; // ATSlocal_void (tmp171) ; // ATSlocal_void (tmp172) ; // ATSlocal_void (tmp173) ; // ATSlocal_void (tmp174) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize_map: /* tmp141 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_bool, &f_neg_bool_1) ; /* tmp142 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_bool_bool, &f_add_bool_bool_2) ; /* tmp143 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_bool_bool, &f_mul_bool_bool_3) ; /* tmp144 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_bool_bool, &f_eq_bool_bool_4) ; /* tmp145 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_bool_bool, &f_neq_bool_bool_5) ; /* tmp146 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_int, &f_neg_int_6) ; /* tmp147 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_int_int, &f_add_int_int_7) ; /* tmp148 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_int_int, &f_sub_int_int_8) ; /* tmp149 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_int_int, &f_mul_int_int_9) ; /* tmp150 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_div_int_int, &f_idiv_int_int_11) ; /* tmp151 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndiv_int_int, &f_ndiv_int_int_10) ; /* tmp152 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idiv_int_int, &f_idiv_int_int_11) ; /* tmp153 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_int_int, &f_lt_int_int_12) ; /* tmp154 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_int_int, &f_lte_int_int_13) ; /* tmp155 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_int_int, &f_gt_int_int_14) ; /* tmp156 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_int_int, &f_gte_int_int_15) ; /* tmp157 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_int_int, &f_eq_int_int_16) ; /* tmp158 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_int_int, &f_neq_int_int_17) ; /* tmp159 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_abs_int, &f_abs_int_18) ; /* tmp160 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgn_int, &f_sgn_int_19) ; /* tmp161 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_max_int_int, &f_max_int_int_20) ; /* tmp162 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_min_int_int, &f_min_int_int_21) ; /* tmp163 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifint_bool_int_int, &f_ifint_bool_int_int_22) ; /* tmp164 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_of_addr, &f_identity_0) ; /* tmp165 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_addr_of_int, &f_identity_0) ; /* tmp166 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_addr_int, &f_add_int_int_7) ; /* tmp167 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_int, &f_sub_int_int_8) ; /* tmp168 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_addr, &f_sub_int_int_8) ; /* tmp169 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_addr_addr, &f_lt_int_int_12) ; /* tmp170 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_addr_addr, &f_lte_int_int_13) ; /* tmp171 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_addr_addr, &f_gt_int_int_14) ; /* tmp172 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_addr_addr, &f_gte_int_int_15) ; /* tmp173 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_addr_addr, &f_eq_int_int_16) ; /* tmp174 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_addr_addr, &f_neq_int_int_17) ; /* tmp136 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_cls_cls, &f_lte_cls_cls_23) ; return /* (tmp136) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize_map] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_constraint3_init_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_util_dats.c0000644000175000017500000025022013431250607022775 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_10 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_l0ab_loc ; ats_ptr_type atslab_l0ab_lab ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_d3lab_loc ; ats_ptr_type atslab_d3lab_node ; ats_ptr_type atslab_d3lab_overld ; ats_ptr_type atslab_d3lab_overld_app ; } anairiats_rec_15 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_16 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecstsp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elst_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrpsz_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elaminit_dyn_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efix_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eerrexp_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d3exp_trdn_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__D23Ed2exp_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__D23Ed3exp_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; 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_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tytup) (ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec) (ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc) (ats_ptr_type, ats_bool_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_arrpsz_vt0ype_int_vt0ype) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_t0ype_int_type) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_vt0ype_int_vtype) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_d3exp_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_funclo_of_d2exp) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_s2eff_of_d2exp) (ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__labd2explst_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lablst_is_overld) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23explst_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_trdn_arg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__cstsp_syn_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__d2exp_syn_type_arg_body) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02083_ () ; static ats_void_type fshowtype_d3exp_1 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_int_type loop_9 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_17 (ats_ptr_type arg0) ; static ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) ; static ats_ptr_type aux_21 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type f_26 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 1608(line=48, offs=18) -- 1637(line=48, offs=47) */ ATSstaticdec() ats_void_type prerr_FILENAME_02083_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02083_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_util")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02083_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 2242(line=92, offs=1) -- 2795(line=125, offs=4) */ ATSstaticdec() ats_void_type fshowtype_d3exp_1 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_bool_type, tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; __ats_lab_fshowtype_d3exp_1: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_d3exp_loc) ; tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg1) ; tmp5 = atspre_gt_int_int (arg0, 0) ; if (tmp5) { /* tmp4 = */ atspre_fprint_string (stdout, ATSstrcst("**SHOWTYPE[UP]**")) ; } else { /* tmp4 = */ atspre_fprint_string (stdout, ATSstrcst("**SHOWTYPE[DN]**")) ; } /* end of [if] */ /* tmp6 = */ atspre_fprint_string (stdout, ATSstrcst("(")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (stdout, tmp2) ; /* tmp8 = */ atspre_fprint_string (stdout, ATSstrcst(")")) ; /* tmp9 = */ atspre_fprint_string (stdout, ATSstrcst(": ")) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (stdout, tmp3) ; /* tmp11 = */ atspre_fprint_string (stdout, ATSstrcst(": ")) ; tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp3), atslab_s2exp_srt) ; /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2rt (stdout, tmp13) ; /* tmp1 = */ atspre_fprint_newline (stdout) ; return /* (tmp1) */ ; } /* end of [fshowtype_d3exp_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 2876(line=130, offs=20) -- 2908(line=130, offs=52) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_up (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_up: /* tmp14 = */ fshowtype_d3exp_1 (1, arg0) ; return /* (tmp14) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_up] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 2938(line=132, offs=20) -- 2971(line=132, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_dn (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp15) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_dn: /* tmp15 = */ fshowtype_d3exp_1 (-1, arg0) ; return /* (tmp15) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__fshowtype_d3exp_dn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 3051(line=140, offs=3) -- 3207(line=145, offs=14) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_funclo_of_d2exp (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_funclo_of_d2exp: tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp17)->tag != 69) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_4, tmp17, atslab_0) ; tmp19 = ats_caselptrlab_mac(anairiats_sum_4, tmp17, atslab_1) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp19 ; tmp16 = tmp18 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp16 = arg0 ; break ; } while (0) ; return (tmp16) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_funclo_of_d2exp] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 3297(line=152, offs=3) -- 3674(line=166, offs=8) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_s2eff_of_d2exp (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_s2eff_of_d2exp: tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp21)->tag != 56) { goto __ats_lab_3_0 ; } __ats_lab_2_1: ats_ptrget_mac(ats_ptr_type, arg1) = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ; tmp20 = arg0 ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp21)->tag != 57) { goto __ats_lab_4_0 ; } __ats_lab_3_1: ats_ptrget_mac(ats_ptr_type, arg1) = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ; tmp20 = arg0 ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp21)->tag != 58) { goto __ats_lab_5_0 ; } __ats_lab_4_1: ats_ptrget_mac(ats_ptr_type, arg1) = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ; tmp20 = arg0 ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp21)->tag != 68) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_4, tmp21, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_4, tmp21, atslab_1) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp23 ; tmp20 = tmp22 ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: ats_ptrget_mac(ats_ptr_type, arg1) = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ; tmp20 = arg0 ; break ; } while (0) ; return (tmp20) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_s2eff_of_d2exp] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 3954(line=182, offs=1) -- 4454(line=196, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__d2exp_syn_type_arg_body (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_bool_type, tmp29) ; ATSlocal (ats_bool_type, tmp30) ; ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__d2exp_syn_type_arg_body: /* ats_ptr_type tmp25 ; */ tmp25 = arg1 ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2atlst_syn_type (arg4) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type (arg5) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_funclo_of_d2exp (arg5, (&tmp25)) ; tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (tmp27) ; tmp31 = atspre_gt_int_int (arg2, 0) ; if (tmp31) { tmp30 = ats_true_bool ; } else { tmp30 = ats_false_bool ; } /* end of [if] */ /* ats_ptr_type tmp32 ; */ tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_s2eff_of_d2exp (tmp28, (&tmp32)) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc (arg0, tmp29, tmp30, tmp25) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (tmp34, tmp25, arg2, tmp32, arg3, tmp26, tmp27) ; return (tmp24) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__d2exp_syn_type_arg_body] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6) */ ATSstaticdec() ats_int_type loop_9 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_int_type, tmp53) ; __ats_lab_loop_9: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp52 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp53 = atspre_isucc (arg1) ; arg0 = tmp52 ; arg1 = tmp53 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp51 = arg1 ; break ; } while (0) ; return (tmp51) ; } /* end of [loop_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4) */ ATSstaticdec() ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp50) ; __ats_lab_list_length_01410_ats_ptr_type: tmp50 = loop_9 (arg0, 0) ; return (tmp50) ; } /* end of [list_length_01410_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51232(line=1817, offs=5) -- 51354(line=1819, offs=58) */ ATSstaticdec() ats_ptr_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; __ats_lab_loop_11: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; arg0 = tmp67 ; arg1 = tmp68 ; goto __ats_lab_loop_11 ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp66 = arg0 ; break ; } while (0) ; return (tmp66) ; } /* end of [loop_11] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51194(line=1813, offs=11) -- 51390(line=1823, offs=2) */ ATSstaticdec() ats_ptr_type list_last_01407_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab_list_last_01407_ats_ptr_type: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp69 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp70 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp65 = loop_11 (tmp69, tmp70) ; return (tmp65) ; } /* end of [list_last_01407_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 4542(line=202, offs=3) -- 7547(line=320, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_bool_type, tmp48) ; ATSlocal (ats_int_type, tmp49) ; ATSlocal (ats_bool_type, tmp54) ; ATSlocal (ats_int_type, tmp55) ; ATSlocal (ats_int_type, tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_int_type, tmp59) ; ATSlocal (ats_int_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_int_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_int_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; ATSlocal (ats_int_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type: tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_d2exp_loc) ; tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp37)->tag != 2) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_int_t0ype () ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp37)->tag != 4) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype () ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp37)->tag != 5) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_t0ype () ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp37)->tag != 7) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type () ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp37)->tag != 6) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_double_t0ype () ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp37)->tag != 8) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_5, tmp37, atslab_0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__i0nt_syn_type (tmp38) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp37)->tag != 9) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_char_t0ype () ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp37)->tag != 11) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_string_type () ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp37)->tag != 10) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_5, tmp37, atslab_0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__f0loat_syn_type (tmp39) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp37)->tag != 15) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_5, tmp37, atslab_0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__cstsp_syn_type (arg0, tmp40) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp37)->tag != 14) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp37)->tag != 18) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_4, tmp37, atslab_0) ; tmp35 = tmp41 ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp37)->tag != 44) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp37)->tag != 36) { goto __ats_lab_25_0 ; } __ats_lab_20_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_6, tmp37, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_6, tmp37, atslab_1) ; tmp44 = ats_caselptrlab_mac(anairiats_sum_6, tmp37, atslab_2) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (tmp43 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_7, tmp43, atslab_0) ; tmp45 = tmp46 ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (tmp43 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp48 = atspre_eq_int_int (tmp42, 0) ; if (tmp48) { tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ; } else { tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ; } /* end of [if] */ tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp36, tmp47) ; break ; } while (0) ; tmp49 = list_length_01410_ats_ptr_type (tmp44) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin (tmp45) ; if (tmp54) { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_t0ype_int_type (tmp45, tmp49) ; } else { tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_list_vt0ype_int_vtype (tmp45, tmp49) ; } /* end of [if] */ break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp37)->tag != 37) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_9, tmp37, atslab_0) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_9, tmp37, atslab_1) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_9, tmp37, atslab_2) ; tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_syn_type (tmp57) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tytup (tmp55, tmp56, tmp58) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp37)->tag != 38) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_9, tmp37, atslab_0) ; tmp60 = ats_caselptrlab_mac(anairiats_sum_9, tmp37, atslab_1) ; tmp61 = ats_caselptrlab_mac(anairiats_sum_9, tmp37, atslab_2) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__labd2explst_syn_type (tmp61) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec (tmp59, tmp60, tmp62) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp37)->tag != 39) { goto __ats_lab_32_0 ; } __ats_lab_27_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_5, tmp37, atslab_0) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (tmp63 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_28_1: tmp64 = list_last_01407_ats_ptr_type (tmp63) ; arg0 = tmp64 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (tmp63 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; break ; } while (0) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp37)->tag != 47) { goto __ats_lab_35_0 ; } __ats_lab_32_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_4, tmp37, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_4, tmp37, atslab_1) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (tmp71 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_7, tmp71, atslab_0) ; tmp73 = tmp74 ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (tmp71 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp36, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; break ; } while (0) ; tmp75 = list_length_01410_ats_ptr_type (tmp72) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_arrpsz_vt0ype_int_vt0ype (tmp73, tmp75) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp37)->tag != 56) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_10, tmp37, atslab_0) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_10, tmp37, atslab_1) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_10, tmp37, atslab_2) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_10, tmp37, atslab_3) ; tmp80 = (ats_sum_ptr_type)0 ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__d2exp_syn_type_arg_body (tmp36, tmp80, tmp76, tmp77, tmp78, tmp79) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp37)->tag != 57) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_10, tmp37, atslab_0) ; tmp82 = ats_caselptrlab_mac(anairiats_sum_10, tmp37, atslab_1) ; tmp83 = ats_caselptrlab_mac(anairiats_sum_10, tmp37, atslab_2) ; tmp84 = ats_caselptrlab_mac(anairiats_sum_10, tmp37, atslab_3) ; tmp85 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp85, atslab_0, 0) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__d2exp_syn_type_arg_body (tmp36, tmp85, tmp81, tmp82, tmp83, tmp84) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp37)->tag != 58) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_12, tmp37, atslab_0) ; tmp87 = ats_caselptrlab_mac(anairiats_sum_12, tmp37, atslab_1) ; tmp88 = ats_caselptrlab_mac(anairiats_sum_12, tmp37, atslab_2) ; tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type (tmp88) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (tmp86, tmp87, tmp89) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp37)->tag != 59) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_12, tmp37, atslab_1) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_12, tmp37, atslab_2) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type (tmp91) ; tmp93 = (ats_sum_ptr_type)0 ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun (tmp93, tmp90, tmp92) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp37)->tag != 60) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_6, tmp37, atslab_2) ; arg0 = tmp94 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type ; // tail call break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp37)->tag != 67) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_4, tmp37, atslab_1) ; tmp35 = tmp95 ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp37)->tag != 68) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_4, tmp37, atslab_0) ; arg0 = tmp96 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type ; // tail call break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp37)->tag != 69) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_4, tmp37, atslab_0) ; arg0 = tmp97 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type ; // tail call break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp37)->tag != 75) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: __ats_lab_44_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp36, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ; break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; __ats_lab_loop_15: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp104 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp105 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp103, arg3) ; tmp106 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp106, atslab_0, tmp105) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp106 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp107 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp104 ; arg1 = arg1 ; arg2 = tmp107 ; arg3 = arg3 ; goto __ats_lab_loop_15 ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp108 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp108 ; break ; } while (0) ; return /* (tmp102) */ ; } /* end of [loop_15] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp109 ; */ /* tmp110 = */ loop_15 (arg0, arg1, (&tmp109), arg2) ; tmp101 = tmp109 ; return (tmp101) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp100) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp100 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp100) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 7606(line=324, offs=3) -- 7651(line=324, offs=48) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_syn_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_syn_type: tmp99 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type) ; tmp98 = ats_castfn_mac(ats_ptr_type, tmp99) ; return (tmp98) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2explst_syn_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 7731(line=329, offs=6) -- 7880(line=335, offs=6) */ ATSstaticdec() ats_ptr_type f_17 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; __ats_lab_f_17: tmp113 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp114 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp113), atslab_l0ab_lab) ; tmp116 = (ats_sum_ptr_type)0 ; tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type (tmp114) ; tmp112 = ATS_MALLOC(sizeof(anairiats_sum_13)) ; ats_selptrset_mac(anairiats_sum_13, tmp112, atslab_0, tmp115) ; ats_selptrset_mac(anairiats_sum_13, tmp112, atslab_1, tmp116) ; ats_selptrset_mac(anairiats_sum_13, tmp112, atslab_2, tmp117) ; return (tmp112) ; } /* end of [f_17] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 7715(line=328, offs=22) -- 7930(line=338, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__labd2explst_syn_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp118) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__labd2explst_syn_type: tmp118 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &f_17) ; tmp111 = ats_castfn_mac(ats_ptr_type, tmp118) ; return (tmp111) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__labd2explst_syn_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 8007(line=343, offs=13) -- 8078(line=346, offs=50) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_free: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: ATS_FREE(arg0) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: ATS_FREE(arg0) ; break ; } while (0) ; return /* (tmp119) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_free] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 8137(line=351, offs=16) -- 8250(line=355, offs=66) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23explst_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; // ATSlocal_void (tmp123) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23explst_free: do { /* branch: __ats_lab_49 */ __ats_lab_49_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; } __ats_lab_49_1: break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_50_1: tmp121 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp122 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp123 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23exp_free (tmp121) ; arg0 = tmp122 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23explst_free ; // tail call break ; } while (0) ; return /* (tmp120) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d23explst_free] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 8339(line=363, offs=3) -- 8514(line=371, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lablst_is_overld (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lablst_is_overld: do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp124 = ats_false_bool ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_52_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp125), atslab_d3lab_overld) ; do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (tmp127 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp124 = ats_true_bool ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (tmp127 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: arg0 = tmp126 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lablst_is_overld ; // tail call break ; } while (0) ; break ; } while (0) ; return (tmp124) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lablst_is_overld] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02089_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; __ats_lab_prerr_error3_loc_02089_: /* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp138 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp138) */ ; } /* end of [prerr_error3_loc_02089_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 8614(line=380, offs=1) -- 9648(line=439, offs=2) */ ATSstaticdec() ats_ptr_type aux_21 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_int_type, tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_bool_type, tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp140) ; // ATSlocal_void (tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; // ATSlocal_void (tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; __ats_lab_aux_21: tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3exp_loc) ; tmp130 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d3exp_type) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp130) ; tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp131) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2hnf_tyleq_solve (tmp129, tmp131, arg1) ; tmp136 = atspre_neq_int_int (tmp134, 0) ; if (tmp136) { /* tmp137 = */ prerr_error3_loc_02089_ (tmp129) ; /* tmp140 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_util.dats"), ATSstrcst("d3exp_trdn")) ; /* tmp141 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression cannot be assigned the type [")) ; /* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (tmp133) ; /* tmp143 = */ atspre_prerr_string (ATSstrcst("].")) ; /* tmp144 = */ atspre_prerr_newline () ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp146 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp146)->tag = 22 ; ats_selptrset_mac(anairiats_sum_4, tmp146, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp146, atslab_1, tmp133) ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp146) ; } else { /* empty */ } /* end of [if] */ tmp148 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp132), atslab_s2exp_node) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp148)->tag != 8) { goto __ats_lab_56_0 ; } __ats_lab_55_1: /* tmp147 = */ patsopt_d3exp_set_type (arg0, tmp133) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: break ; } while (0) ; tmp128 = arg0 ; return (tmp128) ; } /* end of [aux_21] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 9716(line=445, offs=3) -- 9883(line=456, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn: tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ; tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp151)->tag != 29) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_16, tmp151, atslab_1) ; arg0 = arg0 ; arg1 = tmp152 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn ; // tail call break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: __ats_lab_58_1: tmp149 = aux_21 (arg0, tmp150) ; break ; } while (0) ; return (tmp149) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 9985(line=464, offs=3) -- 10328(line=475, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_trdn_arg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_trdn_arg: do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_59_1: tmp154 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp155 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; do { /* branch: __ats_lab_60 */ __ats_lab_60_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ; tmp158 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp154, tmp156) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_trdn_arg (tmp155, tmp157) ; tmp153 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ats_selptrset_mac(anairiats_sum_8, tmp153, atslab_0, tmp158) ; ats_selptrset_mac(anairiats_sum_8, tmp153, atslab_1, tmp159) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_61_1: tmp153 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp153 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp153) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_trdn_arg] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 10426(line=483, offs=5) -- 10511(line=485, offs=4) */ ATSstaticdec() ats_ptr_type f_26 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp161) ; // ATSlocal_void (tmp162) ; __ats_lab_f_26: /* tmp162 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (arg0) ; tmp161 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (arg0) ; return (tmp161) ; } /* end of [f_26] */ /* // /tmp/ATS-Postiats/src/pats_trans3_util.dats: 10408(line=481, offs=18) -- 10576(line=489, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_get_ind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp163) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_get_ind: tmp163 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &f_26) ; tmp160 = ats_castfn_mac(ats_ptr_type, tmp163) ; return (tmp160) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3explst_get_ind] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_util_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_util_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp1_sats.c0000644000175000017500000006052313431250607022142 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_i1nvresstate_qua ; ats_ptr_type atslab_i1nvresstate_arg ; } anairiats_rec_0 ; /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATomit_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATnorm_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany2_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tide_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tdqid_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tint_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tintrep_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tchar_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfloat_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tstring_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ti0nt_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tf0loat_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tempty_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_sta_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_dyn_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlist_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ttup_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trec_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlst_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfree_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tunfold_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trefas_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Texist_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tsvararg_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tann_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Terrpat_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABlab_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABind_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eide_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edqid_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eidextapp_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eint_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eintrep_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ebool_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Echar_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efloat_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Estring_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ei0nt_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ec0har_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ef0loat_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Es0tring_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etop_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eempty_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecstsp_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etyrep_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eliteral_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextval_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextfcall_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextmcall_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efoldat_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efreeat_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etmpid_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elet_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhere_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edecseq_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_dyn_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_sta_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esing_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elist_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifhead_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esifhead_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifcasehd_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecasehead_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Escasehead_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elst_36) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etup_37) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Erec_38) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eseq_39) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrsub_40) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrinit_41) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrpsz_42) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eptrof_43) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eviewat_44) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eselab_45) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eraise_46) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eeffmask_47) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evararg_48) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evcopyenv_49) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eshowtype_50) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etempenver_51) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esexparg_52) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eexist_53) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_dyn_54) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elaminit_dyn_55) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_met_56) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_ana_57) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_syn_58) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efix_59) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edelay_60) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efor_61) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhile_62) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eloopexn_63) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etrywith_64) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_type_65) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_effc_66) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_funclo_67) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacsyn_68) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacfun_69) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolassert_70) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolverify_71) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eerrexp_72) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cnone_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clist_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpackname_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymintr_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymelim_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Coverload_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpdef_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpundef_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpragma_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ccodegen_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatsrts_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csrtdefs_11) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacsts_12) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacons_13) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ctkindef_14) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csexpdefs_15) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csaspdec_16) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Creassume_17) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cexndecs_18) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatdecs_19) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cclassdec_20) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_21) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_22) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextvar_23) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextcode_24) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdcstdecs_25) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cmacdefs_26) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cimpdec_27) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cfundecs_28) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvaldecs_29) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvardecs_30) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cinclude_31) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaload_32) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadnm_33) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadloc_34) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdynload_35) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clocal_36) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATomit_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__LABP1ATnorm_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tany2_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tide_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tdqid_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tint_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tintrep_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tchar_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfloat_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tstring_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ti0nt_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tf0loat_10.tag = 10 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tempty_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_sta_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tapp_dyn_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlist_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Ttup_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trec_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tlst_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tfree_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tunfold_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Trefas_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Texist_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tsvararg_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Tann_23.tag = 23 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__P1Terrpat_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABlab_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1LABind_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eide_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edqid_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eidextapp_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eint_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eintrep_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ebool_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Echar_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efloat_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Estring_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ei0nt_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ec0har_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ef0loat_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Es0tring_12.tag = 12 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etop_13.tag = 13 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eempty_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecstsp_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etyrep_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eliteral_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextval_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextfcall_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eextmcall_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efoldat_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efreeat_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etmpid_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elet_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhere_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edecseq_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_dyn_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_sta_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esing_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elist_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifhead_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esifhead_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eifcasehd_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ecasehead_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Escasehead_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elst_36.tag = 36 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etup_37.tag = 37 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Erec_38.tag = 38 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eseq_39.tag = 39 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrsub_40.tag = 40 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrinit_41.tag = 41 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Earrpsz_42.tag = 42 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eptrof_43.tag = 43 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eviewat_44.tag = 44 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eselab_45.tag = 45 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eraise_46.tag = 46 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eeffmask_47.tag = 47 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evararg_48.tag = 48 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Evcopyenv_49.tag = 49 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eshowtype_50.tag = 50 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etempenver_51.tag = 51 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esexparg_52.tag = 52 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eexist_53.tag = 53 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_dyn_54.tag = 54 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elaminit_dyn_55.tag = 55 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_met_56.tag = 56 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_ana_57.tag = 57 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_syn_58.tag = 58 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efix_59.tag = 59 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Edelay_60.tag = 60 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Efor_61.tag = 61 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ewhile_62.tag = 62 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eloopexn_63.tag = 63 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Etrywith_64.tag = 64 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_type_65.tag = 65 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_effc_66.tag = 66 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_funclo_67.tag = 67 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacsyn_68.tag = 68 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Emacfun_69.tag = 69 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolassert_70.tag = 70 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esolverify_71.tag = 71 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eerrexp_72.tag = 72 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cnone_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clist_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpackname_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymintr_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csymelim_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Coverload_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpdef_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ce1xpundef_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cpragma_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ccodegen_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatsrts_10.tag = 10 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csrtdefs_11.tag = 11 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacsts_12.tag = 12 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstacons_13.tag = 13 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Ctkindef_14.tag = 14 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csexpdefs_15.tag = 15 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Csaspdec_16.tag = 16 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Creassume_17.tag = 17 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cexndecs_18.tag = 18 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdatdecs_19.tag = 19 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cclassdec_20.tag = 20 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_21.tag = 21 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextype_22.tag = 22 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextvar_23.tag = 23 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cextcode_24.tag = 24 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdcstdecs_25.tag = 25 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cmacdefs_26.tag = 26 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cimpdec_27.tag = 27 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cfundecs_28.tag = 28 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvaldecs_29.tag = 29 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cvardecs_30.tag = 30 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cinclude_31.tag = 31 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaload_32.tag = 32 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadnm_33.tag = 33 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cstaloadloc_34.tag = 34 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cdynload_35.tag = 35 ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Clocal_36.tag = 36 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp1_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_hitype_dats.c0000644000175000017500000060514013431250607023216 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "libats/CATS/hashtable_chain.cats" #include "libats/CATS/hashtable_chain.cats" /* external codes at top */ typedef ats_ptr_type hitype ; /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_8 ; typedef struct { anairiats_rec_8 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; 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_10 ; typedef struct { hitype atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_12 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_13 ; typedef struct { ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_15 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt1_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HITNAM_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyabs_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEapp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSErefarg_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyarr_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrec_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrecsin_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtysum_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyvar_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyclo_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEvararg_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2exp_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2zexp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HTLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITnmd_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITapp_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyarr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyrec_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtysum_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyexn_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyvar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyclo_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITvararg_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITrefarg_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITundef_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITerror_11) ; ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__CHAINcons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__CHAINnil_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_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_div_double_double) (ats_double_type, ats_double_type) ; ATSextern_fun(ats_bool_type, atspre_lte_double_double) (ats_double_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_add_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_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_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_ulint_type, atspre_add_ulint_ulint) (ats_ulint_type, ats_ulint_type) ; ATSextern_fun(ats_ulint_type, atspre_lsl_ulint_int1) (ats_ulint_type, ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_div_size1_int1) (ats_size_type, ats_int_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_gte_size1_int1) (ats_size_type, ats_int_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__neq_stamp_stamp) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_prefix_stamp) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__hitype_stamp_make) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_int) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__neq_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_tagless) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitypelst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_error) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tybox) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_undef) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_is_tyvarhd) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tyvar_test) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__eq_hitype_hitype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2exp_typize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2zexp_typize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitypelst_sep) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ulint_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_hash) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemaplst_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_search) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_insert) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_size) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_make) (ats_clo_ref_type, ats_clo_ref_type) ; ATSextern_fun(ats_ptr_type, atslib_hashtbl_make_hint__chain) (ats_clo_ref_type, ats_clo_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_hashtbl_free__chain) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atslib_hashtbl_ptr_make__chain) (ats_size_type) ; ATSextern_fun(ats_void_type, atslib_hashtbl_ptr_free__chain) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitype_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyrec) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tysum) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyexn) () ; /* 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_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__hashtbl_v_split_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__hashtbl_v_unsplit_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__hitype_type = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HTLABELED_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITnmd_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITapp_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyarr_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyrec_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtysum_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyexn_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyvar_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyclo_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITvararg_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITrefarg_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITundef_10) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITerror_11) ; /* exn constructor declarations */ ATSglobal(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01889_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_bool_type aux_8 (ats_ptr_type arg0) ; static ats_bool_type auxlablst_9 (ats_ptr_type arg0) ; static ats_void_type aux_11 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlablst_13 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxint_14 (ats_ref_type arg0, ats_int_type arg1) ; static ats_char_type ptr0_get_01759_ats_char_type (ats_ptr_type arg0) ; static ats_char_type ptrget_01763_ats_char_type (ats_ptr_type arg0) ; static ats_void_type auxstr_15 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxsym_18 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type aux_19 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_20 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlab_21 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlablst_22 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ulint_type hash_key_05258_hitype (hitype arg0, ats_clo_ref_type arg1) ; static ats_bool_type equal_key_key_05259_hitype (hitype arg0, hitype arg1, ats_clo_ref_type arg2) ; static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type revapp_30 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_append_01507_anairiats_rec_8 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_reverse_01506_anairiats_rec_8 (ats_ptr_type arg0) ; static ats_ptr_type hashtbl_ptr_split_04107_hitype_2cats_ptr_type (ats_ptr_type arg0, ats_size_type arg1) ; static ats_ptr_type chain_search_04044_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_clo_ref_type arg2) ; static ats_ptr_type hashtbl_ptr_search_ofs_04115_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_clo_ref_type arg2, ats_size_type arg3) ; static ats_ptr_type hashtbl_search_ref_05265_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1) ; static ats_bool_type hashtbl_search_05264_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_ref_type arg2) ; static ats_void_type chain_insert_04053_hitype_2cats_ptr_type (ats_ref_type arg0, hitype arg1, ats_ptr_type arg2) ; static ats_void_type hashtbl_ptr_insert_ofs_04143_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_ptr_type arg2, ats_size_type arg3) ; static ats_void_type hashtbl_ptr_insert_chain_04170_hitype_2cats_ptr_type (ats_size_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) ; static ats_void_type hashtbl_ptr_relocate_04188_hitype_2cats_ptr_type (ats_size_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_clo_ref_type arg4) ; static ats_void_type hashtbl_resize_04199_hitype_2cats_ptr_type (ats_ptr_type arg0, ats_size_type arg1) ; static ats_void_type hashtbl_resize_double_04208_hitype_2cats_ptr_type (ats_ptr_type arg0) ; static ats_void_type hashtbl_insert_05266_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_ptr_type arg2) ; static ats_void_type aux_50 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_53 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type loop_56 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_ptr_type auxlst_62 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlstlst_app_63 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_65 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_s2cst_66 (ats_ptr_type arg0) ; static ats_ptr_type aux_tyarr_67 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_tyrec_68 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_tyrec2_69 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_tysum_70 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_tyexn_71 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlst_72 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxlablst_73 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_void_type auxfld_75 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxfldlst_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type auxkey_77 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_79 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp227) ; ATSstatic (ats_ptr_type, statmp228) ; ATSstatic (ats_ptr_type, statmp231) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 2990(line=128, offs=14) -- 3029(line=128, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_hitype (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_hitype: /* tmp0 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype (stdout, arg0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__print_hitype] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 3053(line=130, offs=14) -- 3092(line=130, offs=53) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_hitype (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_hitype: /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype (stderr, arg0) ; return /* (tmp1) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__prerr_hitype] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 3141(line=136, offs=3) -- 4925(line=229, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; // ATSlocal_void (tmp4) ; // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; // ATSlocal_void (tmp23) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; // ATSlocal_void (tmp26) ; // ATSlocal_void (tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; // ATSlocal_void (tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_int_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; // ATSlocal_void (tmp41) ; // ATSlocal_void (tmp42) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst("HITnmd(")) ; /* tmp5 = */ atspre_fprint_string (arg0, tmp3) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp7 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst("HITapp(")) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype (arg0, tmp6) ; /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitypelst (arg0, tmp7) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp14 = */ atspre_fprint_string (arg0, ATSstrcst("HITtyarr(")) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype (arg0, tmp12) ; /* tmp16 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ; /* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2explst (arg0, tmp13) ; /* tmp18 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("HITtyrec(")) ; /* tmp20 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: /* tmp21 = */ atspre_fprint_string (arg0, ATSstrcst("HITtysum(")) ; /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: /* tmp23 = */ atspre_fprint_string (arg0, ATSstrcst("HITtyexn(")) ; /* tmp24 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp26 = */ atspre_fprint_string (arg0, ATSstrcst("HITtyvar(")) ; /* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (arg0, tmp25) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp29 = */ atspre_fprint_string (arg0, ATSstrcst("HITtyclo(")) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_funlab (arg0, tmp28) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp31 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp32 = */ atspre_fprint_string (arg0, ATSstrcst("HITvararg(")) ; /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype (arg0, tmp31) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp35 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp36 = */ atspre_fprint_string (arg0, ATSstrcst("HITrefarg(")) ; /* tmp37 = */ atspre_fprint_int (arg0, tmp34) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype (arg0, tmp35) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp41 = */ atspre_fprint_string (arg0, ATSstrcst("HITundef(")) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp40) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: // if (((ats_sum_ptr_type)arg1)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_11_1: /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("HITerror()")) ; break ; } while (0) ; return /* (tmp2) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; ATSlocal (ats_bool_type, tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_int_type, tmp51) ; __ats_lab_aux_5: do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: tmp46 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp47 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp49 = atspre_gt_int_int (arg1, 0) ; if (tmp49) { /* tmp48 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp50 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp46) ; tmp51 = atspre_add_int_int (arg1, 1) ; arg0 = tmp47 ; arg1 = tmp51 ; goto __ats_lab_aux_5 ; // tail call break ; } while (0) ; return /* (tmp45) */ ; } /* end of [aux_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_5_closure_type ; ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_5 (((aux_5_closure_type*)cloptr)->closure_env_0, ((aux_5_closure_type*)cloptr)->closure_env_1, ((aux_5_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_5_closure_init (aux_5_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ; aux_5_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01889_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp44) ; __ats_lab_fprintlst_01889_ats_ptr_type: /* tmp44 = */ aux_5 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp44) */ ; } /* end of [fprintlst_01889_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 4982(line=233, offs=3) -- 5042(line=233, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitypelst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp43) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitypelst: /* tmp43 = */ fprintlst_01889_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitype) ; return /* (tmp43) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_hitypelst] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 5429(line=260, offs=3) -- 5813(line=283, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_is_tyvarhd (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_bool_type, tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_is_tyvarhd: do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp53 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; arg0 = tmp53 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_is_tyvarhd ; // tail call break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp54 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp54) ; tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun (tmp55) ; if (tmp56) { tmp52 = 1 ; } else { tmp52 = -1 ; } /* end of [if] */ break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp52 = 0 ; break ; } while (0) ; return (tmp52) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_is_tyvarhd] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 6004(line=299, offs=1) -- 6394(line=320, offs=2) */ ATSstaticdec() ats_bool_type aux_8 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_bool_type, tmp65) ; __ats_lab_aux_8: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp59 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; arg0 = tmp59 ; goto __ats_lab_aux_8 ; // tail call break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp60 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp58 = auxlablst_9 (tmp60) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp58 = auxlablst_9 (tmp61) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp58 = auxlablst_9 (tmp62) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp63) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun (tmp64) ; if (tmp65) { tmp58 = ats_false_bool ; } else { tmp58 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: __ats_lab_22_1: tmp58 = ats_false_bool ; break ; } while (0) ; return (tmp58) ; } /* end of [aux_8] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 6419(line=323, offs=1) -- 6647(line=336, offs=2) */ ATSstaticdec() ats_bool_type auxlablst_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_bool_type, tmp70) ; __ats_lab_auxlablst_9: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp66 = ats_false_bool ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp68 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; // tmp69 = ats_caselptrlab_mac(anairiats_sum_5, tmp67, atslab_2) ; tmp70 = aux_8 (tmp69) ; if (tmp70) { tmp66 = ats_true_bool ; } else { arg0 = tmp68 ; goto __ats_lab_auxlablst_9 ; // tail call } /* end of [if] */ break ; } while (0) ; return (tmp66) ; } /* end of [auxlablst_9] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 5970(line=295, offs=3) -- 6677(line=338, offs=2) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tyvar_test (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tyvar_test: tmp57 = aux_8 (arg0) ; return (tmp57) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tyvar_test] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 7210(line=376, offs=1) -- 9417(line=494, offs=4) */ ATSstaticdec() ats_void_type aux_11 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_bool_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; // ATSlocal_void (tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_int_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_int_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_bool_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_bool_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_bool_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_int_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_int_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_bool_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_int_type, tmp118) ; ATSlocal (ats_int_type, tmp119) ; ATSlocal (ats_bool_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; __ats_lab_aux_11: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_28_0 ; } __ats_lab_25_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp75 = atspre_neq_string_string (tmp73, tmp74) ; if (tmp75) { tmp76 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp76) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp77 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp77) ; break ; } while (0) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_31_0 ; } __ats_lab_28_1: tmp78 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp79 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp82 = */ aux_11 (tmp78, tmp80) ; /* tmp72 = */ auxlst_12 (tmp79, tmp81) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: __ats_lab_30_1: tmp83 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp83) ; break ; } while (0) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp84 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp84) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_35_0 ; } __ats_lab_32_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp72 = */ auxlablst_13 (tmp85, tmp86) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: __ats_lab_34_1: tmp87 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp87) ; break ; } while (0) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_38_0 ; } __ats_lab_35_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp90 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp91 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp92 = atspre_eq_int_int (tmp88, tmp90) ; if (tmp92) { /* tmp72 = */ auxlablst_13 (tmp89, tmp91) ; } else { tmp93 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp93) ; } /* end of [if] */ break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: __ats_lab_37_1: tmp94 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp94) ; break ; } while (0) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_41_0 ; } __ats_lab_38_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp96 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp72 = */ auxlablst_13 (tmp95, tmp96) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: __ats_lab_40_1: tmp97 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp97) ; break ; } while (0) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_44_0 ; } __ats_lab_41_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2var_s2var (tmp98, tmp99) ; if (tmp100) { tmp101 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp101) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: __ats_lab_43_1: tmp102 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp102) ; break ; } while (0) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_47_0 ; } __ats_lab_44_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp104 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp105 = atspre_pneq (ats_castfn_mac(ats_ptr_type, tmp103), ats_castfn_mac(ats_ptr_type, tmp104)) ; if (tmp105) { tmp106 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp106) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: __ats_lab_46_1: tmp107 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp107) ; break ; } while (0) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_50_0 ; } __ats_lab_47_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; do { /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; arg0 = tmp108 ; arg1 = tmp109 ; goto __ats_lab_aux_11 ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: __ats_lab_49_1: tmp110 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp110) ; break ; } while (0) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_53_0 ; } __ats_lab_50_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp112 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; do { /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp113 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp114 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp115 = atspre_eq_int_int (tmp111, tmp113) ; if (tmp115) { arg0 = tmp112 ; arg1 = tmp114 ; goto __ats_lab_aux_11 ; // tail call } else { tmp116 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp116) ; } /* end of [if] */ break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp117 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp117) ; break ; } while (0) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_56_0 ; } __ats_lab_53_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__neq_stamp_stamp (tmp118, tmp119) ; if (tmp120) { tmp121 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp121) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: __ats_lab_55_1: tmp122 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp122) ; break ; } while (0) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: // if (((ats_sum_ptr_type)arg0)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_56_1: tmp123 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp72 = */ ats_raise_exn (tmp123) ; break ; } while (0) ; return /* (tmp72) */ ; } /* end of [aux_11] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 9439(line=497, offs=1) -- 9769(line=517, offs=4) */ ATSstaticdec() ats_void_type auxlst_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; // ATSlocal_void (tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab_auxlst_12: do { /* branch: __ats_lab_57 */ __ats_lab_57_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; } __ats_lab_57_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_59_1 ; } __ats_lab_57_2: break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_60_1 ; } __ats_lab_58_2: tmp125 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp127 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp128 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp129 = */ aux_11 (tmp125, tmp127) ; arg0 = tmp126 ; arg1 = tmp128 ; goto __ats_lab_auxlst_12 ; // tail call break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_59_2: tmp130 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp124 = */ ats_raise_exn (tmp130) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_1: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_60_2: tmp131 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp124 = */ ats_raise_exn (tmp131) ; break ; } while (0) ; return /* (tmp124) */ ; } /* end of [auxlst_12] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 9794(line=520, offs=1) -- 10536(line=556, offs=4) */ ATSstaticdec() ats_void_type auxlablst_13 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_bool_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; // ATSlocal_void (tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_bool_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; // ATSlocal_void (tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; __ats_lab_auxlablst_13: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_66_1 ; } __ats_lab_61_2: break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_62_1: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_67_1 ; } __ats_lab_62_2: tmp133 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp134 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp135 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp136 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp137 = ats_caselptrlab_mac(anairiats_sum_5, tmp133, atslab_0) ; tmp138 = ats_caselptrlab_mac(anairiats_sum_5, tmp133, atslab_1) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_5, tmp133, atslab_2) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_5, tmp135, atslab_0) ; tmp141 = ats_caselptrlab_mac(anairiats_sum_5, tmp135, atslab_1) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_5, tmp135, atslab_2) ; tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__neq_label_label (tmp137, tmp140) ; if (tmp144) { tmp145 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp143 = */ ats_raise_exn (tmp145) ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (tmp138 != (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; } __ats_lab_63_1: if (tmp141 != (ats_sum_ptr_type)0) { goto __ats_lab_65_1 ; } __ats_lab_63_2: break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (tmp138 == (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: if (tmp141 == (ats_sum_ptr_type)0) { goto __ats_lab_65_1 ; } __ats_lab_64_2: tmp147 = ats_caselptrlab_mac(anairiats_sum_6, tmp138, atslab_0) ; tmp148 = ats_caselptrlab_mac(anairiats_sum_6, tmp141, atslab_0) ; tmp149 = atspre_neq_string_string (tmp147, tmp148) ; if (tmp149) { tmp150 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp146 = */ ats_raise_exn (tmp150) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: __ats_lab_65_1: __ats_lab_65_2: tmp151 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp146 = */ ats_raise_exn (tmp151) ; break ; } while (0) ; /* tmp152 = */ aux_11 (tmp139, tmp142) ; arg0 = tmp134 ; arg1 = tmp136 ; goto __ats_lab_auxlablst_13 ; // tail call break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_2: tmp153 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp132 = */ ats_raise_exn (tmp153) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_2: tmp154 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) ; /* tmp132 = */ ats_raise_exn (tmp154) ; break ; } while (0) ; return /* (tmp132) */ ; } /* end of [auxlablst_13] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 7151(line=370, offs=3) -- 10681(line=568, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__eq_hitype_hitype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp71) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__eq_hitype_hitype: ATS_TRYWITH_TRY(tmp156) /* tmp155 = */ aux_11 (arg0, arg1) ; tmp71 = ats_true_bool ; ATS_TRYWITH_WITH(tmp156) do { /* branch: __ats_lab_68 */ __ats_lab_68_0: if (tmp156 != &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn) { ats_raise_exn (tmp156) ; } __ats_lab_68_1: tmp71 = ats_false_bool ; break ; } while (0) ; ATS_TRYWITH_END() ; return (tmp71) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__eq_hitype_hitype] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 10812(line=581, offs=1) -- 10959(line=587, offs=4) */ ATSstaticdec() ats_void_type auxint_14 (ats_ref_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp157) ; ATSlocal (ats_ulint_type, tmp158) ; ATSlocal (ats_ulint_type, tmp159) ; ATSlocal (ats_ulint_type, tmp160) ; __ats_lab_auxint_14: tmp160 = atspre_lsl_ulint_int1 (ats_ptrget_mac(ats_ulint_type, arg0), 8) ; tmp159 = atspre_add_ulint_ulint (tmp160, ats_ptrget_mac(ats_ulint_type, arg0)) ; tmp158 = atspre_add_ulint_ulint (tmp159, ats_castfn_mac(ats_ulint_type, arg1)) ; ats_ptrget_mac(ats_ulint_type, arg0) = tmp158 ; return /* (tmp157) */ ; } /* end of [auxint_14] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_char_type ptr0_get_01759_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp165) ; __ats_lab_ptr0_get_01759_ats_char_type: tmp165 = ats_ptrget_mac(ats_char_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp165) ; } /* end of [ptr0_get_01759_ats_char_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41) */ ATSstaticdec() ats_char_type ptrget_01763_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp164) ; __ats_lab_ptrget_01763_ats_char_type: tmp164 = ptr0_get_01759_ats_char_type (arg0) ; return (tmp164) ; } /* end of [ptrget_01763_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 10984(line=590, offs=1) -- 11327(line=608, offs=4) */ ATSstaticdec() ats_void_type auxstr_15 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp161) ; ATSlocal (ats_bool_type, tmp162) ; ATSlocal (ats_char_type, tmp163) ; ATSlocal (ats_ulint_type, tmp166) ; ATSlocal (ats_ulint_type, tmp167) ; ATSlocal (ats_ulint_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; __ats_lab_auxstr_15: tmp162 = atspre_string_isnot_empty (arg1) ; if (tmp162) { tmp163 = ptrget_01763_ats_char_type (ats_castfn_mac(ats_ptr_type, arg1)) ; tmp168 = atspre_lsl_ulint_int1 (ats_ptrget_mac(ats_ulint_type, arg0), 5) ; tmp167 = atspre_add_ulint_ulint (tmp168, ats_ptrget_mac(ats_ulint_type, arg0)) ; tmp166 = atspre_add_ulint_ulint (tmp167, ats_castfn_mac(ats_ulint_type, tmp163)) ; ats_ptrget_mac(ats_ulint_type, arg0) = tmp166 ; tmp169 = atspre_padd_int (ats_castfn_mac(ats_ptr_type, arg1), 1) ; tmp170 = ats_castfn_mac(ats_ptr_type, tmp169) ; arg0 = arg0 ; arg1 = tmp170 ; goto __ats_lab_auxstr_15 ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp161) */ ; } /* end of [auxstr_15] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 11352(line=611, offs=1) -- 11443(line=614, offs=44) */ ATSstaticdec() ats_void_type auxsym_18 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab_auxsym_18: tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (arg1) ; /* tmp171 = */ auxstr_15 (arg0, tmp172) ; return /* (tmp171) */ ; } /* end of [auxsym_18] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 11468(line=617, offs=5) -- 13299(line=706, offs=4) */ ATSstaticdec() ats_void_type aux_19 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; // ATSlocal_void (tmp182) ; ATSlocal (ats_int_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_int_type, tmp191) ; ATSlocal (ats_int_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; // ATSlocal_void (tmp194) ; ATSlocal (ats_int_type, tmp195) ; ATSlocal (ats_int_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; // ATSlocal_void (tmp198) ; ATSlocal (ats_int_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_bool_type, tmp202) ; ATSlocal (ats_int_type, tmp203) ; ATSlocal (ats_int_type, tmp204) ; __ats_lab_aux_19: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp173 = */ auxstr_15 (arg0, tmp174) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp175 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp176 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp177 = */ aux_19 (arg0, tmp175) ; /* tmp178 = */ auxlst_20 (arg0, tmp176) ; /* tmp173 = */ auxstr_15 (arg0, ATSstrcst("postiats_app")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp179 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp180 = */ aux_19 (arg0, tmp179) ; /* tmp173 = */ auxstr_15 (arg0, ATSstrcst("postiats_tyarr")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp181 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp182 = */ auxlablst_22 (arg0, tmp181) ; /* tmp173 = */ auxstr_15 (arg0, ATSstrcst("postiats_tyrec")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp183 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp184 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp185 = */ auxint_14 (arg0, tmp183) ; /* tmp186 = */ auxlablst_22 (arg0, tmp184) ; /* tmp173 = */ auxstr_15 (arg0, ATSstrcst("postiats_tysum")) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp188 = */ auxlablst_22 (arg0, tmp187) ; /* tmp173 = */ auxstr_15 (arg0, ATSstrcst("postiats_tyexn")) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp189 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp190 = */ auxstr_15 (arg0, ATSstrcst("postiats_tyvar")) ; tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (tmp189) ; tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int (tmp191) ; /* tmp173 = */ auxint_14 (arg0, tmp192) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp193 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp194 = */ auxstr_15 (arg0, ATSstrcst("postiats_tyclo")) ; tmp195 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_stamp (tmp193) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int (tmp195) ; /* tmp173 = */ auxint_14 (arg0, tmp196) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp198 = */ aux_19 (arg0, tmp197) ; /* tmp173 = */ auxstr_15 (arg0, ATSstrcst("postiats_vararg")) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp200 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp201 = */ aux_19 (arg0, tmp200) ; tmp202 = atspre_eq_int_int (tmp199, 0) ; if (tmp202) { /* tmp173 = */ auxstr_15 (arg0, ATSstrcst("postiats_refarg0")) ; } else { /* tmp173 = */ auxstr_15 (arg0, ATSstrcst("postiats_refarg1")) ; } /* end of [if] */ break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp203 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__stamp_get_int (tmp203) ; /* tmp173 = */ auxint_14 (arg0, tmp204) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (((ats_sum_ptr_type)arg1)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: /* tmp173 = */ auxstr_15 (arg0, ATSstrcst("postiats_error")) ; break ; } while (0) ; return /* (tmp173) */ ; } /* end of [aux_19] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 13321(line=709, offs=1) -- 13544(line=722, offs=4) */ ATSstaticdec() ats_void_type auxlst_20 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; // ATSlocal_void (tmp208) ; __ats_lab_auxlst_20: do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp207 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp208 = */ aux_19 (arg0, tmp206) ; arg0 = arg0 ; arg1 = tmp207 ; goto __ats_lab_auxlst_20 ; // tail call break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: break ; } while (0) ; return /* (tmp205) */ ; } /* end of [auxlst_20] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 13569(line=724, offs=5) -- 13974(line=743, offs=4) */ ATSstaticdec() ats_void_type auxlab_21 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; // ATSlocal_void (tmp213) ; ATSlocal (ats_int_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; // ATSlocal_void (tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; __ats_lab_auxlab_21: // tmp210 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp211 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_2) ; tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_int (tmp210) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (tmp212 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_7, tmp212, atslab_0) ; ATS_FREE(tmp212) ; /* tmp213 = */ auxint_14 (arg0, tmp214) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: // if (tmp212 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_84_1: break ; } while (0) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_get_sym (tmp210) ; do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (tmp215 == (ats_sum_ptr_type)0) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp217 = ats_caselptrlab_mac(anairiats_sum_6, tmp215, atslab_0) ; ATS_FREE(tmp215) ; /* tmp216 = */ auxsym_18 (arg0, tmp217) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (tmp215 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: break ; } while (0) ; /* tmp209 = */ aux_19 (arg0, tmp211) ; return /* (tmp209) */ ; } /* end of [auxlab_21] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 13999(line=746, offs=1) -- 14234(line=758, offs=4) */ ATSstaticdec() ats_void_type auxlablst_22 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; // ATSlocal_void (tmp221) ; __ats_lab_auxlablst_22: do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp219 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp220 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; /* tmp221 = */ auxlab_21 (arg0, tmp219) ; arg0 = arg0 ; arg1 = tmp220 ; goto __ats_lab_auxlablst_22 ; // tail call break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_88_1: break ; } while (0) ; return /* (tmp218) */ ; } /* end of [auxlablst_22] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 14304(line=763, offs=13) -- 14413(line=769, offs=4) */ ATSglobaldec() ats_ulint_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_hash (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ulint_type, tmp222) ; ATSlocal (ats_ulint_type, tmp223) ; // ATSlocal_void (tmp224) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_hash: /* ats_ulint_type tmp223 ; */ tmp223 = 618034ul ; /* tmp224 = */ aux_19 ((&tmp223), arg0) ; tmp222 = tmp223 ; return (tmp222) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_hash] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 15351(line=830, offs=3) -- 15425(line=834, offs=4) */ ATSstaticdec() ats_ulint_type hash_key_05258_hitype (hitype arg0, ats_clo_ref_type arg1) { /* local vardec */ ATSlocal (ats_ulint_type, tmp225) ; __ats_lab_hash_key_05258_hitype: tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_hash (ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp225) ; } /* end of [hash_key_05258_hitype] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 15481(line=837, offs=3) -- 15598(line=841, offs=4) */ ATSstaticdec() ats_bool_type equal_key_key_05259_hitype (hitype arg0, hitype arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp226) ; __ats_lab_equal_key_key_05259_hitype: tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__eq_hitype_hitype (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ; return (tmp226) ; } /* end of [equal_key_key_05259_hitype] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp230 ; */ tmp230 = arg0 ; tmp229 = atspre_ref_make_elt_tsz ((&tmp230), sizeof(ats_ptr_type)) ; return (tmp229) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28) */ ATSstaticdec() ats_ptr_type revapp_30 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; __ats_lab_revapp_30: do { /* branch: __ats_lab_89 */ __ats_lab_89_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp239 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp240 = ats_ptrget_mac(ats_ptr_type, tmp239) ; ats_ptrget_mac(ats_ptr_type, tmp239) = arg1 ; tmp241 = arg0 ; arg0 = tmp240 ; arg1 = tmp241 ; goto __ats_lab_revapp_30 ; // tail call break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_90_1: tmp238 = arg1 ; break ; } while (0) ; return (tmp238) ; } /* end of [revapp_30] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_reverse_append_01507_anairiats_rec_8 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp237) ; __ats_lab_list_vt_reverse_append_01507_anairiats_rec_8: tmp237 = revapp_30 (arg0, arg1) ; return (tmp237) ; } /* end of [list_vt_reverse_append_01507_anairiats_rec_8] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46) */ ATSstaticdec() ats_ptr_type list_vt_reverse_01506_anairiats_rec_8 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp242) ; __ats_lab_list_vt_reverse_01506_anairiats_rec_8: tmp242 = (ats_sum_ptr_type)0 ; tmp236 = list_vt_reverse_append_01507_anairiats_rec_8 (arg0, tmp242) ; return (tmp236) ; } /* end of [list_vt_reverse_01506_anairiats_rec_8] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 16155(line=869, offs=3) -- 16315(line=880, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemaplst_get () { /* local vardec */ ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemaplst_get: tmp233 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp228), atslab_1) ; tmp234 = ats_ptrget_mac(ats_ptr_type, tmp233) ; tmp235 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp233) = tmp235 ; tmp232 = list_vt_reverse_01506_anairiats_rec_8 (tmp234) ; return (tmp232) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemaplst_get] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 9953(line=352, offs=51) -- 10390(line=364, offs=4) */ ATSstaticdec() ats_ptr_type hashtbl_ptr_split_04107_hitype_2cats_ptr_type (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_size_type, tmp258) ; ATSlocal (ats_size_type, tmp259) ; __ats_lab_hashtbl_ptr_split_04107_hitype_2cats_ptr_type: tmp258 = atspre_mul2_size1_size1 (arg1, sizeof(ats_ptr_type)) ; tmp259 = ats_selsin_mac(tmp258, atslab_1) ; tmp257 = atspre_padd_size (arg0, tmp259) ; return (tmp257) ; } /* end of [hashtbl_ptr_split_04107_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 3031(line=107, offs=17) -- 3411(line=122, offs=37) */ ATSstaticdec() ats_ptr_type chain_search_04044_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_clo_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (hitype, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_bool_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; __ats_lab_chain_search_04044_hitype_2cats_ptr_type: do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp262 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ; tmp263 = &ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; tmp264 = &ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_2) ; tmp265 = equal_key_key_05259_hitype (arg1, tmp262, arg2) ; if (tmp265) { tmp261 = tmp263 ; } else { tmp266 = ats_ptrget_mac(ats_ptr_type, tmp264) ; arg0 = tmp266 ; arg1 = arg1 ; arg2 = arg2 ; goto __ats_lab_chain_search_04044_hitype_2cats_ptr_type ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: tmp261 = atspre_null_ptr ; break ; } while (0) ; return (tmp261) ; } /* end of [chain_search_04044_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 10701(line=380, offs=22) -- 11153(line=392, offs=4) */ ATSstaticdec() ats_ptr_type hashtbl_ptr_search_ofs_04115_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_clo_ref_type arg2, ats_size_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp267) ; __ats_lab_hashtbl_ptr_search_ofs_04115_hitype_2cats_ptr_type: tmp256 = hashtbl_ptr_split_04107_hitype_2cats_ptr_type (arg0, arg3) ; tmp260 = ats_selsin_mac(tmp256, atslab_2) ; tmp267 = ats_ptrget_mac(ats_ptr_type, tmp260) ; tmp255 = chain_search_04044_hitype_2cats_ptr_type (tmp267, arg1, arg2) ; return (tmp255) ; } /* end of [hashtbl_ptr_search_ofs_04115_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 11228(line=395, offs=20) -- 11563(line=405, offs=4) */ ATSstaticdec() ats_ptr_type hashtbl_search_ref_05265_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ulint_type, tmp251) ; ATSlocal (ats_clo_ref_type, tmp252) ; ATSlocal (ats_size_type, tmp253) ; ATSlocal (ats_size_type, tmp254) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_clo_ref_type, tmp269) ; __ats_lab_hashtbl_search_ref_05265_hitype_2cats_ptr_type: tmp250 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp252 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp250), atslab_hash) ; tmp251 = hash_key_05258_hitype (arg1, tmp252) ; tmp254 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp250), atslab_sz) ; tmp253 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp251), tmp254) ; tmp268 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp250), atslab_pbeg) ; tmp269 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp250), atslab_eqfn) ; tmp249 = hashtbl_ptr_search_ofs_04115_hitype_2cats_ptr_type (tmp268, arg1, tmp269, tmp253) ; return (tmp249) ; } /* end of [hashtbl_search_ref_05265_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 11630(line=408, offs=16) -- 12049(line=423, offs=4) */ ATSstaticdec() ats_bool_type hashtbl_search_05264_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_bool_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_bool_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; __ats_lab_hashtbl_search_05264_hitype_2cats_ptr_type: tmp248 = hashtbl_search_ref_05265_hitype_2cats_ptr_type (arg0, arg1) ; tmp270 = atspre_pgt (tmp248, atspre_null_ptr) ; if (tmp270) { tmp271 = ats_ptrget_mac(ats_ptr_type, tmp248) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp271 ; tmp247 = ats_true_bool ; } else { tmp247 = ats_false_bool ; } /* end of [if] */ return (tmp247) ; } /* end of [hashtbl_search_05264_hitype_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 16404(line=886, offs=3) -- 16771(line=907, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_search (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_bool_type, tmp246) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_search: tmp244 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, statmp227)), atslab_1) ; /* ats_ptr_type tmp245 ; */ tmp246 = hashtbl_search_05264_hitype_2cats_ptr_type (tmp244, ats_castfn_mac(hitype, arg0), (&tmp245)) ; if (tmp246) { tmp243 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp243, atslab_0, tmp245) ; } else { tmp243 = (ats_sum_ptr_type)0 ; } /* end of [if] */ return (tmp243) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_search] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 3501(line=128, offs=22) -- 3611(line=131, offs=31) */ ATSstaticdec() ats_void_type chain_insert_04053_hitype_2cats_ptr_type (ats_ref_type arg0, hitype arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; __ats_lab_chain_insert_04053_hitype_2cats_ptr_type: tmp293 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp293, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_11, tmp293, atslab_1, arg2) ; ats_selptrset_mac(anairiats_sum_11, tmp293, atslab_2, ats_ptrget_mac(ats_ptr_type, arg0)) ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp293 ; return /* (tmp292) */ ; } /* end of [chain_insert_04053_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 12194(line=430, offs=22) -- 12651(line=443, offs=4) */ ATSstaticdec() ats_void_type hashtbl_ptr_insert_ofs_04143_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_ptr_type arg2, ats_size_type arg3) { /* local vardec */ // ATSlocal_void (tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; __ats_lab_hashtbl_ptr_insert_ofs_04143_hitype_2cats_ptr_type: tmp290 = hashtbl_ptr_split_04107_hitype_2cats_ptr_type (arg0, arg3) ; tmp291 = ats_selsin_mac(tmp290, atslab_2) ; /* tmp289 = */ chain_insert_04053_hitype_2cats_ptr_type (tmp291, arg1, arg2) ; return /* (tmp289) */ ; } /* end of [hashtbl_ptr_insert_ofs_04143_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 13487(line=471, offs=28) -- 14334(line=495, offs=4) */ ATSstaticdec() ats_void_type hashtbl_ptr_insert_chain_04170_hitype_2cats_ptr_type (ats_size_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp309) ; ATSlocal (hitype, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; // ATSlocal_void (tmp313) ; ATSlocal (ats_ulint_type, tmp314) ; ATSlocal (ats_size_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; __ats_lab_hashtbl_ptr_insert_chain_04170_hitype_2cats_ptr_type: do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp310 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_0) ; tmp311 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp312 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_2) ; ATS_FREE(arg2) ; /* tmp313 = */ hashtbl_ptr_insert_chain_04170_hitype_2cats_ptr_type (arg0, arg1, tmp312, arg3) ; tmp314 = hash_key_05258_hitype (tmp310, arg3) ; tmp315 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp314), arg0) ; tmp316 = hashtbl_ptr_split_04107_hitype_2cats_ptr_type (arg1, tmp315) ; tmp317 = ats_selsin_mac(tmp316, atslab_2) ; /* tmp309 = */ chain_insert_04053_hitype_2cats_ptr_type (tmp317, tmp310, tmp311) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: break ; } while (0) ; return /* (tmp309) */ ; } /* end of [hashtbl_ptr_insert_chain_04170_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 14518(line=503, offs=11) -- 15357(line=526, offs=4) */ ATSstaticdec() ats_void_type hashtbl_ptr_relocate_04188_hitype_2cats_ptr_type (ats_size_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_clo_ref_type arg4) { /* local vardec */ // ATSlocal_void (tmp304) ; ATSlocal (ats_bool_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; // ATSlocal_void (tmp308) ; ATSlocal (ats_size_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; __ats_lab_hashtbl_ptr_relocate_04188_hitype_2cats_ptr_type: tmp305 = atspre_gt_size1_int1 (arg0, 0) ; if (tmp305) { tmp306 = ats_ptrget_mac(ats_ptr_type, arg2) ; tmp307 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp307 ; /* tmp308 = */ hashtbl_ptr_insert_chain_04170_hitype_2cats_ptr_type (arg1, arg3, tmp306, arg4) ; tmp318 = atspre_sub_size1_int1 (arg0, 1) ; tmp319 = atspre_padd_size (arg2, sizeof(ats_ptr_type)) ; arg0 = tmp318 ; arg1 = arg1 ; arg2 = tmp319 ; arg3 = arg3 ; arg4 = arg4 ; goto __ats_lab_hashtbl_ptr_relocate_04188_hitype_2cats_ptr_type ; // tail call } else { /* empty */ } /* end of [if] */ return /* (tmp304) */ ; } /* end of [hashtbl_ptr_relocate_04188_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 15470(line=531, offs=37) -- 16007(line=545, offs=2) */ ATSstaticdec() ats_void_type hashtbl_resize_04199_hitype_2cats_ptr_type (ats_ptr_type arg0, ats_size_type arg1) { /* local vardec */ // ATSlocal_void (tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; // ATSlocal_void (tmp303) ; ATSlocal (ats_size_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_clo_ref_type, tmp322) ; // ATSlocal_void (tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; __ats_lab_hashtbl_resize_04199_hitype_2cats_ptr_type: tmp300 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp301 = atslib_hashtbl_ptr_make__chain (arg1) ; tmp302 = ats_selsin_mac(tmp301, atslab_2) ; tmp320 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp300), atslab_sz) ; tmp321 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp300), atslab_pbeg) ; tmp322 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp300), atslab_hash) ; /* tmp303 = */ hashtbl_ptr_relocate_04188_hitype_2cats_ptr_type (tmp320, arg1, tmp321, tmp302, tmp322) ; tmp324 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp300), atslab_pbeg) ; /* tmp323 = */ atslib_hashtbl_ptr_free__chain (tmp324) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp300), atslab_sz) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp300), atslab_pbeg) = tmp302 ; return /* (tmp299) */ ; } /* end of [hashtbl_resize_04199_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 16396(line=562, offs=11) -- 16599(line=569, offs=4) */ ATSstaticdec() ats_void_type hashtbl_resize_double_04208_hitype_2cats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp296) ; ATSlocal (ats_size_type, tmp297) ; ATSlocal (ats_bool_type, tmp298) ; ATSlocal (ats_size_type, tmp325) ; __ats_lab_hashtbl_resize_double_04208_hitype_2cats_ptr_type: tmp297 = ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_size (arg0) ; tmp298 = atspre_gt_size1_int1 (ats_castfn_mac(ats_size_type, tmp297), 0) ; if (tmp298) { tmp325 = atspre_add_size1_size1 (ats_castfn_mac(ats_size_type, tmp297), ats_castfn_mac(ats_size_type, tmp297)) ; /* tmp296 = */ hashtbl_resize_04199_hitype_2cats_ptr_type (arg0, tmp325) ; } else { /* empty */ } /* end of [if] */ return /* (tmp296) */ ; } /* end of [hashtbl_resize_double_04208_hitype_2cats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_chain.dats: 17030(line=589, offs=3) -- 17572(line=602, offs=2) */ ATSstaticdec() ats_void_type hashtbl_insert_05266_hitype_2cats_ptr_type (ats_ptr_type arg0, hitype arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp275) ; ATSlocal (ats_double_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_size_type, tmp278) ; ATSlocal (ats_size_type, tmp279) ; ATSlocal (ats_double_type, tmp280) ; ATSlocal (ats_double_type, tmp281) ; ATSlocal (ats_double_type, tmp282) ; ATSlocal (ats_size_type, tmp283) ; ATSlocal (ats_ulint_type, tmp284) ; ATSlocal (ats_clo_ref_type, tmp285) ; ATSlocal (ats_size_type, tmp286) ; ATSlocal (ats_size_type, tmp287) ; // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_bool_type, tmp295) ; __ats_lab_hashtbl_insert_05266_hitype_2cats_ptr_type: /* ats_double_type tmp276 ; */ tmp276 = 0.0 ; tmp277 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ; tmp279 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp277), atslab_tot) ; tmp278 = atspre_add_size1_int1 (tmp279, 1) ; tmp281 = atspre_double_of_size (tmp278) ; tmp283 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp277), atslab_sz) ; tmp282 = atspre_double_of_size (tmp283) ; tmp280 = atspre_div_double_double (tmp281, tmp282) ; tmp276 = tmp280 ; tmp285 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp277), atslab_hash) ; tmp284 = hash_key_05258_hitype (arg1, tmp285) ; tmp287 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp277), atslab_sz) ; tmp286 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp284), tmp287) ; tmp294 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp277), atslab_pbeg) ; /* tmp288 = */ hashtbl_ptr_insert_ofs_04143_hitype_2cats_ptr_type (tmp294, arg1, arg2, tmp286) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_10, tmp277), atslab_tot) = tmp278 ; tmp295 = atspre_gte_double_double (tmp276, 5.0) ; if (tmp295) { /* tmp275 = */ hashtbl_resize_double_04208_hitype_2cats_ptr_type (arg0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp275) */ ; } /* end of [hashtbl_insert_05266_hitype_2cats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 16860(line=913, offs=3) -- 17206(line=932, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_insert (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; // ATSlocal_void (tmp274) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (anairiats_rec_8, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_insert: tmp273 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, statmp227)), atslab_1) ; /* tmp274 = */ hashtbl_insert_05266_hitype_2cats_ptr_type (tmp273, ats_castfn_mac(hitype, arg0), arg1) ; tmp326 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp228), atslab_1) ; tmp328.atslab_0 = arg0 ; tmp328.atslab_1 = arg1 ; tmp329 = ats_ptrget_mac(ats_ptr_type, tmp326) ; tmp327 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp327, atslab_0, tmp328) ; ats_selptrset_mac(anairiats_sum_9, tmp327, atslab_1, tmp329) ; ats_ptrget_mac(ats_ptr_type, tmp326) = tmp327 ; return /* (tmp272) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_insert] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 17309(line=939, offs=13) -- 17334(line=940, offs=21) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_error () { /* local vardec */ ATSlocal (ats_ptr_type, tmp330) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_error: tmp330 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITerror_11) ; return (tmp330) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_error] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 17360(line=943, offs=13) -- 17387(line=943, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tybox () { /* local vardec */ ATSlocal (ats_ptr_type, tmp331) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tybox: tmp331 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp331)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp331, atslab_0, ATSstrcst("atstype_boxed")) ; return (tmp331) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tybox] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 17414(line=946, offs=13) -- 17485(line=948, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_undef (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_int_type, tmp333) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_undef: tmp333 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__hitype_stamp_make () ; tmp332 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp332)->tag = 10 ; ats_selptrset_mac(anairiats_sum_3, tmp332, atslab_0, tmp333) ; ats_selptrset_mac(anairiats_sum_3, tmp332, atslab_1, arg0) ; return (tmp332) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_undef] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 17620(line=959, offs=3) -- 17740(line=964, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_s2var (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_s2var: tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg1) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp335) ; /* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_ident (arg0, tmp336) ; return /* (tmp334) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_s2var] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 17927(line=979, offs=5) -- 18395(line=1007, offs=4) */ ATSstaticdec() ats_void_type aux_50 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; // ATSlocal_void (tmp341) ; // ATSlocal_void (tmp342) ; // ATSlocal_void (tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; __ats_lab_aux_50: do { /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp339 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp340 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ; /* tmp341 = */ aux_50 (arg0, tmp339) ; /* tmp342 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(")) ; /* tmp343 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitypelst_sep (arg0, tmp340, ATSstrcst(", ")) ; /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp344 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_s2var (arg0, tmp344) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: __ats_lab_97_1: /* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, arg1) ; break ; } while (0) ; return /* (tmp338) */ ; } /* end of [aux_50] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 17902(line=977, offs=3) -- 18675(line=1024, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitype_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp337) ; ATSlocal (ats_int_type, tmp345) ; // ATSlocal_void (tmp346) ; ATSlocal (ats_bool_type, tmp347) ; // ATSlocal_void (tmp348) ; ATSlocal (ats_bool_type, tmp349) ; // ATSlocal_void (tmp350) ; ATSlocal (ats_bool_type, tmp351) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitype_app: tmp345 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_is_tyvarhd (arg1) ; tmp347 = atspre_gt_int_int (tmp345, 0) ; if (tmp347) { /* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstybox_type(")) ; } else { /* empty */ } /* end of [if] */ tmp349 = atspre_lt_int_int (tmp345, 0) ; if (tmp349) { /* tmp348 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstyvar_type(")) ; } else { /* empty */ } /* end of [if] */ /* tmp350 = */ aux_50 (arg0, arg1) ; tmp351 = atspre_neq_int_int (tmp345, 0) ; if (tmp351) { /* tmp337 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; } else { /* empty */ } /* end of [if] */ return /* (tmp337) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitype_app] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 18752(line=1030, offs=3) -- 20587(line=1117, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; // ATSlocal_void (tmp355) ; // ATSlocal_void (tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; // ATSlocal_void (tmp358) ; // ATSlocal_void (tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; // ATSlocal_void (tmp361) ; // ATSlocal_void (tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; ATSlocal (ats_int_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; // ATSlocal_void (tmp368) ; ATSlocal (ats_bool_type, tmp369) ; // ATSlocal_void (tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; // ATSlocal_void (tmp372) ; // ATSlocal_void (tmp373) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype: do { /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp353 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp353) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_100_0 ; } __ats_lab_99_1: /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitype_app (arg0, arg1) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp354 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp355 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstyarr_type(")) ; /* tmp356 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp354) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_102_0 ; } __ats_lab_101_1: /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstyrec_type(*ERROR*)")) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_103_0 ; } __ats_lab_102_1: /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstysum_type(*ERROR*)")) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_104_0 ; } __ats_lab_103_1: /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstyexn_type(*ERROR*)")) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp357 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp358 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstyclo_type(")) ; /* tmp359 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_funlab (arg0, tmp357) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_106_0 ; } __ats_lab_105_1: tmp360 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp361 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstyvar_type(")) ; /* tmp362 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_s2var (arg0, tmp360) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp363 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp364 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atsvararg_type(")) ; /* tmp365 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp363) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp366 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp367 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; tmp369 = atspre_eq_int_int (tmp366, 0) ; if (tmp369) { /* tmp368 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atsrefarg0_type(")) ; } else { /* tmp368 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atsrefarg1_type(")) ; } /* end of [if] */ /* tmp370 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp367) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_RPAREN (arg0) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_109_0 ; } __ats_lab_108_1: tmp371 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp372 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("postiats_undef(")) ; /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp371) ; /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (((ats_sum_ptr_type)arg1)->tag != 11) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: /* tmp352 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("postiats_error()")) ; break ; } while (0) ; return /* (tmp352) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 20674(line=1124, offs=1) -- 20977(line=1141, offs=4) */ ATSstaticdec() ats_void_type auxlst_53 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; // ATSlocal_void (tmp378) ; ATSlocal (ats_bool_type, tmp379) ; // ATSlocal_void (tmp380) ; ATSlocal (ats_int_type, tmp381) ; __ats_lab_auxlst_53: do { /* branch: __ats_lab_110 */ __ats_lab_110_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; } __ats_lab_110_1: tmp376 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp377 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp379 = atspre_gt_int_int (arg3, 0) ; if (tmp379) { /* tmp378 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, arg2) ; } else { /* empty */ } /* end of [if] */ /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp376) ; tmp381 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp377 ; arg2 = arg2 ; arg3 = tmp381 ; goto __ats_lab_auxlst_53 ; // tail call break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_111_1: break ; } while (0) ; return /* (tmp375) */ ; } /* end of [auxlst_53] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 20644(line=1121, offs=3) -- 21035(line=1145, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitypelst_sep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp374) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitypelst_sep: /* tmp374 = */ auxlst_53 (arg0, arg1, arg2, 0) ; return /* (tmp374) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__emit_hitypelst_sep] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 21113(line=1151, offs=3) -- 21483(line=1175, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; // ATSlocal_void (tmp384) ; // ATSlocal_void (tmp385) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp: tmp383 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (1, arg1) ; do { /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp383)->tag != 10) { goto __ats_lab_113_0 ; } __ats_lab_112_1: /* tmp384 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("HITundef(")) ; /* tmp385 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, arg1) ; /* tmp382 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: __ats_lab_113_1: /* tmp382 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp383) ; break ; } while (0) ; return /* (tmp382) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 21591(line=1184, offs=1) -- 22048(line=1217, offs=4) */ ATSstaticdec() ats_void_type loop_56 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; // ATSlocal_void (tmp390) ; ATSlocal (ats_bool_type, tmp391) ; // ATSlocal_void (tmp392) ; ATSlocal (ats_int_type, tmp393) ; __ats_lab_loop_56: do { /* branch: __ats_lab_114 */ __ats_lab_114_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_115_0 ; } __ats_lab_114_1: break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_115_1: tmp388 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp389 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp391 = atspre_gt_int_int (arg3, 0) ; if (tmp391) { /* tmp390 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, arg2) ; } else { /* empty */ } /* end of [if] */ /* tmp392 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp (arg0, tmp388) ; tmp393 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp389 ; arg2 = arg2 ; arg3 = tmp393 ; goto __ats_lab_loop_56 ; // tail call break ; } while (0) ; return /* (tmp387) */ ; } /* end of [loop_56] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 21561(line=1181, offs=3) -- 22102(line=1221, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexplst_sep (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp386) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexplst_sep: /* tmp386 = */ loop_56 (arg0, arg1, arg2, 0) ; return /* (tmp386) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexplst_sep] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 22184(line=1227, offs=3) -- 22550(line=1248, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp_sel (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; // ATSlocal_void (tmp396) ; // ATSlocal_void (tmp397) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp_sel: tmp395 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (0, arg1) ; do { /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp395)->tag != 10) { goto __ats_lab_117_0 ; } __ats_lab_116_1: /* tmp396 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("HITundef(")) ; /* tmp397 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, arg1) ; /* tmp394 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: __ats_lab_117_1: /* tmp394 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp395) ; break ; } while (0) ; return /* (tmp394) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hisexp_sel] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 22667(line=1256, offs=18) -- 22799(line=1261, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyrec () { /* local vardec */ ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_int_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyrec: tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__hitype_stamp_make () ; tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_prefix_stamp (ATSstrcst("postiats_tyrec_"), tmp399) ; tmp398 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp398)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp398, atslab_0, tmp400) ; return (tmp398) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyrec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 22896(line=1267, offs=18) -- 23028(line=1272, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tysum () { /* local vardec */ ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_int_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tysum: tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__hitype_stamp_make () ; tmp403 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_prefix_stamp (ATSstrcst("postiats_tysum_"), tmp402) ; tmp401 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp401)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp401, atslab_0, tmp403) ; return (tmp401) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tysum] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 23125(line=1277, offs=18) -- 23257(line=1282, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyexn () { /* local vardec */ ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_int_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyexn: tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__hitype_stamp_make () ; tmp406 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__tostring_prefix_stamp (ATSstrcst("postiats_tyexn_"), tmp405) ; tmp404 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp404)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp404, atslab_0, tmp406) ; return (tmp404) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyexn] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 23422(line=1297, offs=1) -- 23646(line=1309, offs=2) */ ATSstaticdec() ats_ptr_type auxlst_62 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; __ats_lab_auxlst_62: do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp408 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_119_1: tmp409 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp410 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp411 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2exp_typize (arg0, tmp409) ; tmp412 = auxlst_62 (arg0, tmp410) ; tmp408 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp408, atslab_0, tmp411) ; ats_selptrset_mac(anairiats_sum_4, tmp408, atslab_1, tmp412) ; break ; } while (0) ; return (tmp408) ; } /* end of [auxlst_62] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 23654(line=1312, offs=1) -- 23941(line=1325, offs=2) */ ATSstaticdec() ats_ptr_type auxlstlst_app_63 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; __ats_lab_auxlstlst_app_63: do { /* branch: __ats_lab_120 */ __ats_lab_120_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_121_0 ; } __ats_lab_120_1: tmp413 = arg1 ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_121_1: tmp414 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ; tmp415 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ; tmp416 = auxlst_62 (arg0, tmp414) ; tmp417 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp417)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp417, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_2, tmp417, atslab_1, tmp416) ; arg0 = arg0 ; arg1 = tmp417 ; arg2 = tmp415 ; goto __ats_lab_auxlstlst_app_63 ; // tail call break ; } while (0) ; return (tmp413) ; } /* end of [auxlstlst_app_63] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 23334(line=1288, offs=3) -- 24513(line=1357, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2exp_typize (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2exp_typize: tmp418 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp418)->tag != 5) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp419 = ats_caselptrlab_mac(anairiats_sum_2, tmp418, atslab_0) ; tmp420 = ats_caselptrlab_mac(anairiats_sum_2, tmp418, atslab_1) ; tmp421 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp421)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp421, atslab_0, tmp419) ; tmp407 = auxlstlst_app_63 (arg0, tmp421, tmp420) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp418)->tag != 6) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp422 = ats_caselptrlab_mac(anairiats_sum_2, tmp418, atslab_0) ; tmp407 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp407)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp407, atslab_0, tmp422) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp418)->tag != 8) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp423 = ats_caselptrlab_mac(anairiats_sum_1, tmp418, atslab_0) ; tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (tmp423) ; tmp407 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2zexp_typize (arg0, tmp424) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp418)->tag != 12) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp407 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_error () ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: __ats_lab_126_1: tmp425 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, arg1) ; tmp407 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (arg0, tmp425) ; break ; } while (0) ; return (tmp407) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2exp_typize] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 24587(line=1363, offs=3) -- 24924(line=1383, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2zexp_typize (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2zexp_typize: do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp427 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp426 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp426)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp426, atslab_0, tmp427) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_129_0 ; } __ats_lab_128_1: tmp428 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; tmp426 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp426)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp426, atslab_0, tmp428) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: __ats_lab_129_1: tmp429 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, arg1) ; tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (arg0, tmp429) ; break ; } while (0) ; return (tmp426) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2zexp_typize] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 24984(line=1390, offs=1) -- 26714(line=1476, offs=4) */ ATSstaticdec() ats_ptr_type aux_65 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_int_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_bool_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_bool_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_int_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; __ats_lab_aux_65: tmp431 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_hisexp_name) ; tmp432 = ats_caselptrlab_mac(anairiats_sum_14, tmp431, atslab_1) ; tmp433 = ats_caselptrlab_mac(anairiats_sum_14, tmp431, atslab_2) ; tmp434 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_hisexp_node) ; do { /* branch: __ats_lab_130 */ __ats_lab_130_0: __ats_lab_130_1: tmp435 = atspre_gt_int_int (tmp432, 0) ; if (!tmp435) { goto __ats_lab_131_0 ; } tmp430 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp430)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp430, atslab_0, tmp433) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: if (((ats_sum_ptr_type)tmp434)->tag != 0) { goto __ats_lab_132_0 ; } __ats_lab_131_1: tmp436 = ats_caselptrlab_mac(anairiats_sum_1, tmp434, atslab_0) ; tmp430 = aux_s2cst_66 (tmp436) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp434)->tag != 3) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp437 = ats_caselptrlab_mac(anairiats_sum_2, tmp434, atslab_0) ; tmp438 = ats_caselptrlab_mac(anairiats_sum_2, tmp434, atslab_1) ; tmp439 = aux_65 (arg0, tmp437) ; tmp440 = auxlst_72 (arg0, tmp438) ; tmp430 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp430)->tag = 1 ; ats_selptrset_mac(anairiats_sum_2, tmp430, atslab_0, tmp439) ; ats_selptrset_mac(anairiats_sum_2, tmp430, atslab_1, tmp440) ; break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp434)->tag != 2) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp441 = ats_caselptrlab_mac(anairiats_sum_1, tmp434, atslab_0) ; tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp441) ; tmp430 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp430)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp430, atslab_0, tmp442) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp434)->tag != 7) { goto __ats_lab_135_0 ; } __ats_lab_134_1: tmp430 = aux_tyarr_67 (arg0, arg1) ; break ; /* branch: __ats_lab_135 */ __ats_lab_135_0: if (((ats_sum_ptr_type)tmp434)->tag != 8) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp430 = aux_tyrec_68 (arg0, arg1) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: if (((ats_sum_ptr_type)tmp434)->tag != 9) { goto __ats_lab_137_0 ; } __ats_lab_136_1: tmp443 = ats_caselptrlab_mac(anairiats_sum_1, tmp434, atslab_0) ; // tmp444 = ats_caselptrlab_mac(anairiats_sum_5, tmp443, atslab_2) ; arg0 = arg0 ; arg1 = tmp444 ; goto __ats_lab_aux_65 ; // tail call break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp434)->tag != 10) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp445 = ats_caselptrlab_mac(anairiats_sum_2, tmp434, atslab_0) ; tmp446 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_con (tmp445) ; if (tmp446) { tmp430 = aux_tysum_70 (arg0, arg1) ; } else { tmp430 = aux_tyexn_71 (arg0, arg1) ; } /* end of [if] */ break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp434)->tag != 12) { goto __ats_lab_139_0 ; } __ats_lab_138_1: tmp447 = ats_caselptrlab_mac(anairiats_sum_1, tmp434, atslab_0) ; tmp430 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp430)->tag = 7 ; ats_selptrset_mac(anairiats_sum_1, tmp430, atslab_0, ats_castfn_mac(ats_ptr_type, tmp447)) ; break ; /* branch: __ats_lab_139 */ __ats_lab_139_0: if (((ats_sum_ptr_type)tmp434)->tag != 13) { goto __ats_lab_140_0 ; } __ats_lab_139_1: tmp448 = ats_caselptrlab_mac(anairiats_sum_1, tmp434, atslab_0) ; tmp449 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2exp_typize (arg0, tmp448) ; tmp430 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp430)->tag = 8 ; ats_selptrset_mac(anairiats_sum_1, tmp430, atslab_0, tmp449) ; break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: if (((ats_sum_ptr_type)tmp434)->tag != 6) { goto __ats_lab_141_0 ; } __ats_lab_140_1: tmp450 = ats_caselptrlab_mac(anairiats_sum_3, tmp434, atslab_0) ; tmp451 = ats_caselptrlab_mac(anairiats_sum_3, tmp434, atslab_1) ; tmp452 = aux_65 (arg0, tmp451) ; tmp430 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp430)->tag = 9 ; ats_selptrset_mac(anairiats_sum_3, tmp430, atslab_0, tmp450) ; ats_selptrset_mac(anairiats_sum_3, tmp430, atslab_1, tmp452) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp434)->tag != 14) { goto __ats_lab_144_0 ; } __ats_lab_141_1: tmp453 = ats_caselptrlab_mac(anairiats_sum_1, tmp434, atslab_0) ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2exp_typize (arg0, tmp453) ; do { /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp454)->tag != 11) { goto __ats_lab_143_0 ; } __ats_lab_142_1: tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_undef (arg1) ; break ; /* branch: __ats_lab_143 */ __ats_lab_143_0: __ats_lab_143_1: tmp430 = tmp454 ; break ; } while (0) ; break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: if (((ats_sum_ptr_type)tmp434)->tag != 15) { goto __ats_lab_147_0 ; } __ats_lab_144_1: tmp455 = ats_caselptrlab_mac(anairiats_sum_1, tmp434, atslab_0) ; tmp456 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__s2zexp_typize (arg0, tmp455) ; do { /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp456)->tag != 11) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_undef (arg1) ; break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: __ats_lab_146_1: tmp430 = tmp456 ; break ; } while (0) ; break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp434)->tag != 11) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp457 = ats_caselptrlab_mac(anairiats_sum_1, tmp434, atslab_0) ; tmp430 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp430)->tag = 6 ; ats_selptrset_mac(anairiats_sum_1, tmp430, atslab_0, tmp457) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: __ats_lab_148_1: tmp430 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_undef (arg1) ; break ; } while (0) ; return (tmp430) ; } /* end of [aux_65] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 26736(line=1479, offs=1) -- 27027(line=1495, offs=4) */ ATSstaticdec() ats_ptr_type aux_s2cst_66 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_bool_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; __ats_lab_aux_s2cst_66: do { /* branch: __ats_lab_149 */ __ats_lab_149_0: __ats_lab_149_1: tmp459 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype (arg0) ; if (!tmp459) { goto __ats_lab_150_1 ; } tmp458 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tybox () ; break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: __ats_lab_150_1: tmp460 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg0) ; tmp461 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp460) ; tmp458 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp458)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp458, atslab_0, tmp461) ; break ; } while (0) ; return (tmp458) ; } /* end of [aux_s2cst_66] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 27055(line=1498, offs=1) -- 27233(line=1509, offs=4) */ ATSstaticdec() ats_ptr_type aux_tyarr_67 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; __ats_lab_aux_tyarr_67: tmp463 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_hisexp_node) ; if (((ats_sum_ptr_type)tmp463)->tag != 7) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 27117(line=1503, offs=5) -- 27161(line=1504, offs=36)") ; } tmp464 = ats_caselptrlab_mac(anairiats_sum_2, tmp463, atslab_0) ; tmp465 = ats_caselptrlab_mac(anairiats_sum_2, tmp463, atslab_1) ; tmp467 = atspre_add_int_int (arg0, 1) ; tmp466 = aux_65 (tmp467, tmp464) ; tmp462 = ATS_MALLOC(sizeof(anairiats_sum_2)) ; ((ats_sum_ptr_type)tmp462)->tag = 2 ; ats_selptrset_mac(anairiats_sum_2, tmp462, atslab_0, tmp466) ; ats_selptrset_mac(anairiats_sum_2, tmp462, atslab_1, tmp465) ; return (tmp462) ; } /* end of [aux_tyarr_67] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 27261(line=1512, offs=1) -- 27767(line=1539, offs=4) */ ATSstaticdec() ats_ptr_type aux_tyrec_68 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (ats_ptr_type, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_bool_type, tmp472) ; ATSlocal (ats_bool_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; __ats_lab_aux_tyrec_68: tmp469 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_hisexp_node) ; if (((ats_sum_ptr_type)tmp469)->tag != 8) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 27323(line=1517, offs=5) -- 27363(line=1518, offs=32)") ; } tmp470 = ats_caselptrlab_mac(anairiats_sum_2, tmp469, atslab_0) ; tmp471 = ats_caselptrlab_mac(anairiats_sum_2, tmp469, atslab_1) ; do { /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)tmp470)->tag != 0) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp472 = atspre_gt_int_int (arg0, 0) ; if (tmp472) { tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tybox () ; } else { tmp468 = aux_tyrec2_69 (arg0, tmp471) ; } /* end of [if] */ break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)tmp470)->tag != 1) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp473 = atspre_gt_int_int (arg0, 0) ; if (tmp473) { tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tybox () ; } else { tmp468 = aux_tyrec2_69 (arg0, tmp471) ; } /* end of [if] */ break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp470)->tag != 2) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp468 = aux_tyrec2_69 (arg0, tmp471) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)tmp470)->tag != 3) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp468 = aux_tyrec2_69 (arg0, tmp471) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: // if (((ats_sum_ptr_type)tmp470)->tag != 4) { ats_deadcode_failure_handle () ; } __ats_lab_155_1: tmp474 = ats_caselptrlab_mac(anairiats_sum_1, tmp470, atslab_0) ; tmp468 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp468)->tag = 0 ; ats_selptrset_mac(anairiats_sum_1, tmp468, atslab_0, tmp474) ; break ; } while (0) ; return (tmp468) ; } /* end of [aux_tyrec_68] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 27795(line=1542, offs=1) -- 28138(line=1564, offs=4) */ ATSstaticdec() ats_ptr_type aux_tyrec2_69 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp475) ; ATSlocal (ats_ptr_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; // ATSlocal_void (tmp480) ; ATSlocal (ats_ptr_type, tmp481) ; __ats_lab_aux_tyrec2_69: tmp476 = auxlablst_73 (arg0, arg1) ; tmp477 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp477)->tag = 3 ; ats_selptrset_mac(anairiats_sum_1, tmp477, atslab_0, tmp476) ; tmp478 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_search (tmp477) ; do { /* branch: __ats_lab_156 */ __ats_lab_156_0: if (tmp478 != (ats_sum_ptr_type)0) { goto __ats_lab_157_0 ; } __ats_lab_156_1: tmp479 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyrec () ; /* tmp480 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_insert (tmp477, tmp479) ; tmp475 = tmp479 ; break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: // if (tmp478 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_157_1: tmp481 = ats_caselptrlab_mac(anairiats_sum_6, tmp478, atslab_0) ; ATS_FREE(tmp478) ; tmp475 = tmp481 ; break ; } while (0) ; return (tmp475) ; } /* end of [aux_tyrec2_69] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 28167(line=1567, offs=1) -- 28796(line=1602, offs=4) */ ATSstaticdec() ats_ptr_type aux_tysum_70 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_ptr_type, tmp485) ; ATSlocal (ats_bool_type, tmp486) ; ATSlocal (ats_bool_type, tmp487) ; ATSlocal (ats_int_type, tmp488) ; ATSlocal (ats_bool_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (ats_ptr_type, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (ats_ptr_type, tmp493) ; // ATSlocal_void (tmp494) ; ATSlocal (ats_ptr_type, tmp495) ; __ats_lab_aux_tysum_70: tmp483 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_hisexp_node) ; if (((ats_sum_ptr_type)tmp483)->tag != 10) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 28230(line=1573, offs=1) -- 28270(line=1574, offs=32)") ; } tmp484 = ats_caselptrlab_mac(anairiats_sum_2, tmp483, atslab_0) ; tmp485 = ats_caselptrlab_mac(anairiats_sum_2, tmp483, atslab_1) ; tmp487 = atspre_gt_int_int (arg0, 0) ; if (tmp487) { tmp486 = ats_true_bool ; } else { tmp486 = ats_false_bool ; } /* end of [if] */ if (tmp486) { tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tybox () ; } else { tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_is_tagless (tmp484) ; if (tmp489) { tmp488 = 0 ; } else { tmp488 = 1 ; } /* end of [if] */ tmp490 = auxlablst_73 (arg0, tmp485) ; tmp491 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp491)->tag = 4 ; ats_selptrset_mac(anairiats_sum_3, tmp491, atslab_0, tmp488) ; ats_selptrset_mac(anairiats_sum_3, tmp491, atslab_1, tmp490) ; tmp492 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_search (tmp491) ; do { /* branch: __ats_lab_158 */ __ats_lab_158_0: if (tmp492 != (ats_sum_ptr_type)0) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp493 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tysum () ; /* tmp494 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_insert (tmp491, tmp493) ; tmp482 = tmp493 ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: // if (tmp492 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_159_1: tmp495 = ats_caselptrlab_mac(anairiats_sum_6, tmp492, atslab_0) ; ATS_FREE(tmp492) ; tmp482 = tmp495 ; break ; } while (0) ; } /* end of [if] */ return (tmp482) ; } /* end of [aux_tysum_70] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 28824(line=1605, offs=1) -- 29364(line=1637, offs=4) */ ATSstaticdec() ats_ptr_type aux_tyexn_71 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_bool_type, tmp499) ; ATSlocal (ats_bool_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_ptr_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; // ATSlocal_void (tmp505) ; ATSlocal (ats_ptr_type, tmp506) ; __ats_lab_aux_tyexn_71: tmp497 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_hisexp_node) ; if (((ats_sum_ptr_type)tmp497)->tag != 10) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 28887(line=1611, offs=1) -- 28927(line=1612, offs=32)") ; } tmp498 = ats_caselptrlab_mac(anairiats_sum_2, tmp497, atslab_1) ; tmp500 = atspre_gt_int_int (arg0, 0) ; if (tmp500) { tmp499 = ats_true_bool ; } else { tmp499 = ats_false_bool ; } /* end of [if] */ if (tmp499) { tmp496 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tybox () ; } else { tmp501 = auxlablst_73 (arg0, tmp498) ; tmp502 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ((ats_sum_ptr_type)tmp502)->tag = 5 ; ats_selptrset_mac(anairiats_sum_1, tmp502, atslab_0, tmp501) ; tmp503 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_search (tmp502) ; do { /* branch: __ats_lab_160 */ __ats_lab_160_0: if (tmp503 != (ats_sum_ptr_type)0) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp504 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_gen_tyexn () ; /* tmp505 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemap_insert (tmp502, tmp504) ; tmp496 = tmp504 ; break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: // if (tmp503 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_161_1: tmp506 = ats_caselptrlab_mac(anairiats_sum_6, tmp503, atslab_0) ; ATS_FREE(tmp503) ; tmp496 = tmp506 ; break ; } while (0) ; } /* end of [if] */ return (tmp496) ; } /* end of [aux_tyexn_71] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 29392(line=1640, offs=1) -- 29658(line=1658, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_72 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp507) ; ATSlocal (ats_ptr_type, tmp508) ; ATSlocal (ats_ptr_type, tmp509) ; ATSlocal (ats_ptr_type, tmp510) ; ATSlocal (ats_int_type, tmp511) ; ATSlocal (ats_ptr_type, tmp512) ; __ats_lab_auxlst_72: do { /* branch: __ats_lab_162 */ __ats_lab_162_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp508 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp509 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp511 = atspre_add_int_int (arg0, 1) ; tmp510 = aux_65 (tmp511, tmp508) ; tmp512 = auxlst_72 (arg0, tmp509) ; tmp507 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp507, atslab_0, tmp510) ; ats_selptrset_mac(anairiats_sum_4, tmp507, atslab_1, tmp512) ; break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_163_1: tmp507 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp507) ; } /* end of [auxlst_72] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 29683(line=1661, offs=1) -- 30071(line=1684, offs=4) */ ATSstaticdec() ats_ptr_type auxlablst_73 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_ptr_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_int_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; __ats_lab_auxlablst_73: do { /* branch: __ats_lab_164 */ __ats_lab_164_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp514 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp515 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; // tmp516 = ats_caselptrlab_mac(anairiats_sum_5, tmp514, atslab_0) ; tmp517 = ats_caselptrlab_mac(anairiats_sum_5, tmp514, atslab_1) ; tmp518 = ats_caselptrlab_mac(anairiats_sum_5, tmp514, atslab_2) ; tmp520 = atspre_add_int_int (arg0, 1) ; tmp519 = aux_65 (tmp520, tmp518) ; tmp521 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp521, atslab_0, tmp516) ; ats_selptrset_mac(anairiats_sum_5, tmp521, atslab_1, tmp517) ; ats_selptrset_mac(anairiats_sum_5, tmp521, atslab_2, tmp519) ; tmp522 = auxlablst_73 (arg0, tmp515) ; tmp513 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp513, atslab_0, tmp521) ; ats_selptrset_mac(anairiats_sum_4, tmp513, atslab_1, tmp522) ; break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_165_1: tmp513 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp513) ; } /* end of [auxlablst_73] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 30143(line=1689, offs=15) -- 30168(line=1689, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp523) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize: tmp523 = aux_65 (arg0, arg1) ; return (tmp523) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 30225(line=1698, offs=1) -- 31116(line=1754, offs=4) */ ATSstaticdec() ats_void_type auxfld_75 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; ATSlocal (ats_bool_type, tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; // ATSlocal_void (tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; // ATSlocal_void (tmp533) ; // ATSlocal_void (tmp534) ; // ATSlocal_void (tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; __ats_lab_auxfld_75: // tmp525 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp526 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp527 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_2) ; /* ats_bool_type tmp528 ; */ tmp528 = ats_false_bool ; /* ats_ptr_type tmp529 ; */ tmp529 = (ats_sum_ptr_type)0 ; do { /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)tmp527)->tag != 2) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp531 = ats_caselptrlab_mac(anairiats_sum_2, tmp527, atslab_0) ; tmp532 = ats_caselptrlab_mac(anairiats_sum_2, tmp527, atslab_1) ; tmp528 = ats_true_bool ; tmp529 = tmp532 ; /* tmp530 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp531) ; break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: __ats_lab_167_1: /* tmp530 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp527) ; break ; } while (0) ; /* tmp533 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ")) ; if (tmp528) { /* tmp534 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstyarr_field(")) ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_168 */ __ats_lab_168_0: if (tmp526 == (ats_sum_ptr_type)0) { goto __ats_lab_169_0 ; } __ats_lab_168_1: tmp536 = ats_caselptrlab_mac(anairiats_sum_6, tmp526, atslab_0) ; /* tmp535 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, tmp536) ; break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: // if (tmp526 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_169_1: /* tmp535 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_labelext (arg0, 0, tmp525) ; break ; } while (0) ; if (tmp528) { /* tmp524 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(") ;")) ; } else { /* tmp524 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ;")) ; } /* end of [if] */ return /* (tmp524) */ ; } /* end of [auxfld_75] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 31141(line=1757, offs=1) -- 31513(line=1778, offs=4) */ ATSstaticdec() ats_void_type auxfldlst_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; // ATSlocal_void (tmp540) ; ATSlocal (ats_bool_type, tmp541) ; // ATSlocal_void (tmp542) ; ATSlocal (ats_int_type, tmp543) ; __ats_lab_auxfldlst_76: do { /* branch: __ats_lab_170 */ __ats_lab_170_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp538 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp539 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; // tmp541 = atspre_gt_int_int (arg2, 0) ; if (tmp541) { /* tmp540 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_newline (arg0) ; } else { /* empty */ } /* end of [if] */ /* tmp542 = */ auxfld_75 (arg0, tmp538) ; tmp543 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp539 ; arg2 = tmp543 ; goto __ats_lab_auxfldlst_76 ; // tail call break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_171_1: break ; } while (0) ; return /* (tmp537) */ ; } /* end of [auxfldlst_76] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 31541(line=1781, offs=1) -- 32613(line=1823, offs=4) */ ATSstaticdec() ats_void_type auxkey_77 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; // ATSlocal_void (tmp546) ; // ATSlocal_void (tmp547) ; ATSlocal (ats_int_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; // ATSlocal_void (tmp550) ; // ATSlocal_void (tmp551) ; ATSlocal (ats_bool_type, tmp552) ; // ATSlocal_void (tmp553) ; // ATSlocal_void (tmp554) ; // ATSlocal_void (tmp555) ; ATSlocal (ats_bool_type, tmp556) ; // ATSlocal_void (tmp557) ; // ATSlocal_void (tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; // ATSlocal_void (tmp560) ; // ATSlocal_void (tmp561) ; // ATSlocal_void (tmp562) ; // ATSlocal_void (tmp563) ; __ats_lab_auxkey_77: do { /* branch: __ats_lab_172 */ __ats_lab_172_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_173_0 ; } __ats_lab_172_1: tmp545 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp546 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstruct {")) ; /* tmp547 = */ auxfldlst_76 (arg0, tmp545, 1) ; /* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n}")) ; break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_174_0 ; } __ats_lab_173_1: tmp548 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ; tmp549 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ; /* tmp550 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstruct {\n")) ; tmp552 = atspre_gt_int_int (tmp548, 0) ; if (tmp552) { /* tmp551 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("// ")) ; } else { /* empty */ } /* end of [if] */ /* tmp553 = */ atspre_fprintf_exn (arg0, ATSstrcst("#if(%i)\n"), tmp548) ; /* tmp554 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("int contag ;\n")) ; tmp556 = atspre_gt_int_int (tmp548, 0) ; if (tmp556) { /* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("// ")) ; } else { /* empty */ } /* end of [if] */ /* tmp557 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif")) ; /* tmp558 = */ auxfldlst_76 (arg0, tmp549, 1) ; /* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n}")) ; break ; /* branch: __ats_lab_174 */ __ats_lab_174_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_175_0 ; } __ats_lab_174_1: tmp559 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; /* tmp560 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("ATSstruct {\n")) ; /* tmp561 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstype_int exntag ;\n")) ; /* tmp562 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("atstype_string exnmsg ;")) ; /* tmp563 = */ auxfldlst_76 (arg0, tmp559, 1) ; /* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("\n}")) ; break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: __ats_lab_175_1: /* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("(**ERROR**)")) ; break ; } while (0) ; return /* (tmp544) */ ; } /* end of [auxkey_77] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 32747(line=1835, offs=1) -- 33371(line=1871, offs=4) */ ATSstaticdec() ats_void_type auxlst_79 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp565) ; ATSlocal (anairiats_rec_8, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_bool_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; // ATSlocal_void (tmp570) ; // ATSlocal_void (tmp571) ; // ATSlocal_void (tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; // ATSlocal_void (tmp574) ; // ATSlocal_void (tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; // ATSlocal_void (tmp577) ; // ATSlocal_void (tmp578) ; __ats_lab_auxlst_79: do { /* branch: __ats_lab_176 */ __ats_lab_176_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_177_0 ; } __ats_lab_176_1: tmp566 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp567 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp569 = ats_select_mac(tmp566, atslab_1) ; tmp568 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__hitype_tyvar_test (tmp569) ; if (tmp568) { /* tmp570 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#if(0)\n")) ; } else { /* empty */ } /* end of [if] */ /* tmp571 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("typedef\n")) ; tmp573 = ats_select_mac(tmp566, atslab_0) ; /* tmp572 = */ auxkey_77 (arg0, tmp573) ; /* tmp574 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ")) ; tmp576 = ats_select_mac(tmp566, atslab_1) ; /* tmp575 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_hitype (arg0, tmp576) ; /* tmp577 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst(" ;\n")) ; if (tmp568) { /* tmp578 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("#endif\n")) ; } else { /* empty */ } /* end of [if] */ arg0 = arg0 ; arg1 = tmp567 ; goto __ats_lab_auxlst_79 ; // tail call break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_177_1: break ; } while (0) ; return /* (tmp565) */ ; } /* end of [auxlst_79] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_hitype.dats: 32690(line=1829, offs=3) -- 33727(line=1883, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_typedeflst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp564) ; // ATSlocal_void (tmp579) ; // ATSlocal_void (tmp580) ; // ATSlocal_void (tmp581) ; // ATSlocal_void (tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; // ATSlocal_void (tmp584) ; // ATSlocal_void (tmp585) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_typedeflst: /* tmp579 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp580 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("typedefs-for-tyrecs-and-tysums(beg)\n")) ; /* tmp581 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; tmp583 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__the_hitypemaplst_get () ; /* tmp582 = */ auxlst_79 (arg0, tmp583) ; /* tmp584 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("/*\n")) ; /* tmp585 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("typedefs-for-tyrecs-and-tysums(end)\n")) ; /* tmp564 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_text (arg0, ATSstrcst("*/\n")) ; return /* (tmp564) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__emit_the_typedeflst] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; // extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; // ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__staload () ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HTLABELED_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITnmd_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITapp_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyarr_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyrec_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtysum_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyexn_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyvar_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITtyclo_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITvararg_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITrefarg_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITundef_10.tag = 10 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__HITerror_11.tag = 11 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn.tag = ats_exception_con_tag_new () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn.name = "_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__EQUALexn" ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hitype_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_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__hashtbl_v_split_prfck () ; ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_chain_2edats__hashtbl_v_unsplit_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp227, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp228, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp231, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp227 = ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_chain_2esats__hashtbl_make (ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr)) ; statmp231 = (ats_sum_ptr_type)0 ; statmp228 = ref_01088_ats_ptr_type (statmp231) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_hitype_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_filename_reloc_dats.c0000644000175000017500000005425513431250607023504 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isalnum) (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_bool_type, atspre_lt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__dirpath_append) (ats_ptr_type, ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get_decl) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_char_type, patsopt_filename_theDirSep_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert2) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl0) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl1) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl0) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl1) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_eval) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_char_type ptr0_get_01703_ats_char_type (ats_ptr_type arg0) ; static ats_bool_type isalnum__6 (ats_char_type arg0) ; static ats_int_type auxtrav_7 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type auxeval0_8 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_ptr_type auxeval1_9 (ats_ptr_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 2562(line=116, offs=3) -- 2705(line=123, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl0 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl0: tmp1 = atspre_sub_int_int (arg1, 2) ; tmp0 = atspre_string_make_substring (arg0, ats_castfn_mac(ats_size_type, 1), ats_castfn_mac(ats_size_type, tmp1)) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl0] */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 2869(line=133, offs=3) -- 2917(line=133, offs=51) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp2) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl1: tmp2 = atspre_string_copy (ATSstrcst("$PATSRELOCROOT")) ; return (tmp2) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl1] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2) */ ATSstaticdec() ats_char_type ptr0_get_01703_ats_char_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_char_type, tmp5) ; __ats_lab_ptr0_get_01703_ats_char_type: tmp5 = ats_ptrget_mac(ats_char_type, ats_castfn_mac(ats_ptr_type, arg0)) ; return (tmp5) ; } /* end of [ptr0_get_01703_ats_char_type] */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 3049(line=143, offs=3) -- 4004(line=180, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl0 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_char_type, tmp4) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl0: tmp6 = atspre_padd_int (ats_castfn_mac(ats_ptr_type, arg0), 1) ; tmp4 = ptr0_get_01703_ats_char_type (tmp6) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: __ats_lab_0_1: tmp7 = atspre_eq_char_char (tmp4, '$') ; if (!tmp7) { goto __ats_lab_5_1 ; } tmp8 = atspre_sub_int_int (arg1, 3) ; tmp9 = atspre_string_make_substring (arg0, ats_castfn_mac(ats_size_type, 2), ats_castfn_mac(ats_size_type, tmp8)) ; tmp10 = atspre_tostringf (ATSstrcst("%s_sourceloc"), ats_castfn_mac(ats_ptr_type, tmp9)) ; /* tmp11 = */ atspre_strptr_free (tmp9) ; tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ats_castfn_mac(ats_ptr_type, tmp10)) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (tmp12) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (tmp13 != (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl0 (arg0, arg1) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (tmp13 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_0, tmp13, atslab_0) ; ATS_FREE(tmp13) ; tmp15 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_e1xp_node) ; do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp15)->tag != 5) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_2, tmp15, atslab_0) ; tmp3 = atspre_string_copy (tmp16) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl0 (arg0, arg1) ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl0 (arg0, arg1) ; break ; } while (0) ; return (tmp3) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl0] */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 4167(line=190, offs=3) -- 5158(line=227, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl1 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_char_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl1: tmp19 = atspre_padd_int (ats_castfn_mac(ats_ptr_type, arg0), 1) ; tmp18 = ptr0_get_01703_ats_char_type (tmp19) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: __ats_lab_6_1: tmp20 = atspre_eq_char_char (tmp18, '$') ; if (!tmp20) { goto __ats_lab_11_1 ; } tmp21 = atspre_sub_int_int (arg1, 3) ; tmp22 = atspre_string_make_substring (arg0, ats_castfn_mac(ats_size_type, 2), ats_castfn_mac(ats_size_type, tmp21)) ; tmp23 = atspre_tostringf (ATSstrcst("%s_targetloc"), ats_castfn_mac(ats_ptr_type, tmp22)) ; /* tmp24 = */ atspre_strptr_free (tmp22) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ats_castfn_mac(ats_ptr_type, tmp23)) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (tmp25) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (tmp26 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl1 (arg0, arg1) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: // if (tmp26 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_8_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_0, tmp26, atslab_0) ; ATS_FREE(tmp26) ; tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp27), atslab_e1xp_node) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp28)->tag != 5) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_2, tmp28, atslab_0) ; tmp17 = atspre_string_copy (tmp29) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl1 (arg0, arg1) ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get_gurl1 (arg0, arg1) ; break ; } while (0) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl1] */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 5344(line=242, offs=5) -- 5416(line=243, offs=46) */ ATSstaticdec() ats_bool_type isalnum__6 (ats_char_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; __ats_lab_isalnum__6: tmp32 = atspre_char_isalnum (arg0) ; if (tmp32) { tmp31 = ats_true_bool ; } else { tmp31 = atspre_eq_char_char (arg0, '_') ; } /* end of [if] */ return (tmp31) ; } /* end of [isalnum__6] */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 5424(line=246, offs=1) -- 5596(line=260, offs=4) */ ATSstaticdec() ats_int_type auxtrav_7 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp33) ; ATSlocal (ats_char_type, tmp34) ; ATSlocal (ats_bool_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_int_type, tmp37) ; __ats_lab_auxtrav_7: tmp34 = ptr0_get_01703_ats_char_type (arg0) ; tmp35 = isalnum__6 (tmp34) ; if (tmp35) { tmp36 = atspre_padd_int (arg0, 1) ; tmp37 = atspre_add_int_int (arg1, 1) ; arg0 = tmp36 ; arg1 = tmp37 ; goto __ats_lab_auxtrav_7 ; // tail call } else { tmp33 = arg1 ; } /* end of [if] */ return (tmp33) ; } /* end of [auxtrav_7] */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 5627(line=263, offs=1) -- 5748(line=270, offs=2) */ ATSstaticdec() ats_ptr_type auxeval0_8 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_bool_type, tmp39) ; __ats_lab_auxeval0_8: tmp39 = atspre_lt_int_int (arg1, 100) ; if (tmp39) { tmp38 = auxeval1_9 (arg0, arg1) ; } else { tmp38 = arg0 ; } /* end of [if] */ return (tmp38) ; } /* end of [auxeval0_8] */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 5780(line=273, offs=1) -- 7325(line=341, offs=4) */ ATSstaticdec() ats_ptr_type auxeval1_9 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_char_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_int_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_int_type, tmp53) ; __ats_lab_auxeval1_9: tmp41 = ptr0_get_01703_ats_char_type (ats_castfn_mac(ats_ptr_type, arg0)) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp42 = atspre_eq_char_char (tmp41, '$') ; if (!tmp42) { goto __ats_lab_17_1 ; } tmp43 = atspre_padd_int (ats_castfn_mac(ats_ptr_type, arg0), 1) ; tmp44 = auxtrav_7 (tmp43, 0) ; tmp45 = atspre_string_make_substring (arg0, ats_castfn_mac(ats_size_type, 1), ats_castfn_mac(ats_size_type, tmp44)) ; tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ats_castfn_mac(ats_ptr_type, tmp45)) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_e1xpenv_find (tmp46) ; do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (tmp47 != (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp40 = arg0 ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (tmp47 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_0, tmp47, atslab_0) ; ATS_FREE(tmp47) ; tmp49 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp48), atslab_e1xp_node) ; do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp49)->tag != 5) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_2, tmp49, atslab_0) ; tmp51 = atspre_padd_int (tmp43, tmp44) ; tmp52 = atspre_tostringf (ATSstrcst("%s%s"), tmp50, ats_castfn_mac(ats_ptr_type, tmp51)) ; tmp53 = atspre_add_int_int (arg1, 1) ; tmp40 = auxeval0_8 (ats_castfn_mac(ats_ptr_type, tmp52), tmp53) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp40 = arg0 ; break ; } while (0) ; break ; } while (0) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp40 = arg0 ; break ; } while (0) ; return (tmp40) ; } /* end of [auxeval1_9] */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 5301(line=238, offs=3) -- 7387(line=345, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_eval (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_eval: tmp30 = auxeval0_8 (arg0, 0) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_eval] */ /* // /tmp/ATS-Postiats/src/pats_filename_reloc.dats: 7521(line=355, offs=3) -- 9063(line=443, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__pkgsrcname_relocatize (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_bool_type, tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_bool_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_char_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_bool_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__pkgsrcname_relocatize: tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_ATSRELOC_get_decl () ; tmp56 = atspre_lt_int_int (arg1, 0) ; if (tmp56) { tmp58 = atspre_pgt (tmp55, atspre_null_ptr) ; if (tmp58) { /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert (ats_castfn_mac(ats_ptr_type, tmp55), arg0) ; } else { /* empty */ } /* end of [if] */ tmp54 = arg0 ; } else { tmp59 = atspre_padd_int (ats_castfn_mac(ats_ptr_type, arg0), arg1) ; tmp60 = patsopt_filename_theDirSep_get () ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl1 (arg0, arg1) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__dirpath_append (ats_castfn_mac(ats_ptr_type, tmp61), ats_castfn_mac(ats_ptr_type, tmp59), tmp60) ; /* tmp63 = */ atspre_strptr_free (tmp61) ; tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_eval (ats_castfn_mac(ats_ptr_type, tmp62)) ; tmp66 = atspre_pgt (tmp55, atspre_null_ptr) ; if (tmp66) { tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_get2_gurl0 (arg0, arg1) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__dirpath_append (ats_castfn_mac(ats_ptr_type, tmp67), ats_castfn_mac(ats_ptr_type, tmp59), tmp60) ; /* tmp69 = */ atspre_strptr_free (tmp67) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__pkgsrcname_eval (ats_castfn_mac(ats_ptr_type, tmp68)) ; /* tmp65 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_atsreloc_insert2 (ats_castfn_mac(ats_ptr_type, tmp55), tmp70, tmp64) ; } else { /* empty */ } /* end of [if] */ tmp54 = tmp64 ; } /* end of [if] */ return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__pkgsrcname_relocatize] */ /* static load function */ // extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__staload_flag = 1 ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_reloc_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_filename_reloc_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_error_dats.c0000644000175000017500000005175713431250607023165 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; /* 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_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, 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) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type the_trans1errlst_get_1 () ; static ats_int_type loop_5 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_7 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp0) ; ATSstatic (ats_ptr_type, statmp3) ; /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4) */ ATSstaticdec() ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_ref_01088_ats_ptr_type: /* ats_ptr_type tmp2 ; */ tmp2 = arg0 ; tmp1 = atspre_ref_make_elt_tsz ((&tmp2), sizeof(ats_ptr_type)) ; return (tmp1) ; } /* end of [ref_01088_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_error.dats: 1706(line=60, offs=1) -- 1886(line=69, offs=4) */ ATSstaticdec() ats_ptr_type the_trans1errlst_get_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_the_trans1errlst_get_1: tmp5 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp6 = ats_ptrget_mac(ats_ptr_type, tmp5) ; tmp7 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, tmp5) = tmp7 ; tmp4 = tmp6 ; return (tmp4) ; } /* end of [the_trans1errlst_get_1] */ /* // /tmp/ATS-Postiats/src/pats_trans1_error.dats: 1976(line=75, offs=3) -- 2090(line=78, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add: tmp9 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp0), atslab_1) ; tmp11 = ats_ptrget_mac(ats_ptr_type, tmp9) ; tmp10 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_1, tmp10, atslab_1, tmp11) ; ats_ptrget_mac(ats_ptr_type, tmp9) = tmp10 ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_5 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_int_type, tmp19) ; __ats_lab_loop_5: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp17 = &ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp18 = ats_ptrget_mac(ats_ptr_type, tmp17) ; tmp19 = atspre_iadd (arg1, 1) ; arg0 = tmp18 ; arg1 = tmp19 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp16 = arg1 ; break ; } while (0) ; return (tmp16) ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp15) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp15 = loop_5 (arg0, 0) ; return (tmp15) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_7 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab_loop_7: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp23 ; goto __ats_lab_loop_7 ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: break ; } while (0) ; return /* (tmp22) */ ; } /* end of [loop_7] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp21) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp21 = */ loop_7 (arg0) ; return /* (tmp21) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_error.dats: 2164(line=81, offs=27) -- 2604(line=102, offs=2) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_finalize () { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_int_type, tmp14) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_finalize: tmp13 = the_trans1errlst_get_1 () ; tmp14 = list_vt_length_01501_ats_ptr_type (tmp13) ; /* tmp20 = */ list_vt_free_01499_ats_ptr_type (tmp13) ; tmp25 = atspre_igt (tmp14, 0) ; if (tmp25) { /* tmp24 = */ atspre_fprintf_exn (stderr, ATSstrcst("patsopt(TRANS1): there are [%i] errors in total.\n"), tmp14) ; } else { /* empty */ } /* end of [if] */ tmp26 = atspre_igt (tmp14, 0) ; if (tmp26) { tmp27 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__PATSOPT_TRANS1_EXN) ; /* tmp12 = */ ats_raise_exn (tmp27) ; } else { /* empty */ } /* end of [if] */ return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_finalize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_error_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ; ATS_GC_MARKROOT(&statmp3, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp3 = (ats_sum_ptr_type)0 ; statmp0 = ref_01088_ats_ptr_type (statmp3) ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_error_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_errmsg_sats.c0000644000175000017500000000224113431250607022042 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_errmsg_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_codegen2_dats.c0000644000175000017500000004501013431250607022213 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_0 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ccodegen_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcon_test_e1xp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcontag_test_e1xp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__fprint_test_e1xp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__absrec_test_e1xp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcon) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcontag) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_fprint) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_absrec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type auxerr_nil_0 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_cons_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_4 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_4_closure_make (ats_ptr_type env0) ; static ats_void_type aux_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type auxlst_5 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_5_closure_make (ats_ptr_type env0) ; static ats_void_type auxlst_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_codegen2.dats: 1748(line=63, offs=1) -- 1966(line=74, offs=2) */ ATSstaticdec() ats_void_type auxerr_nil_0 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; // ATSlocal_void (tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; __ats_lab_auxerr_nil_0: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ; /* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp1) ; /* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): #codegen2()\n")) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("*)\n")) ; return /* (tmp0) */ ; } /* end of [auxerr_nil_0] */ /* // /tmp/ATS-Postiats/src/pats_codegen2.dats: 1998(line=77, offs=1) -- 2239(line=89, offs=2) */ ATSstaticdec() ats_void_type auxerr_cons_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; __ats_lab_auxerr_cons_1: tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ; /* tmp7 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp6) ; /* tmp9 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): #codegen2(")) ; /* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, arg2) ; /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst(", ...)\n")) ; /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("*)\n")) ; return /* (tmp5) */ ; } /* end of [auxerr_cons_1] */ /* // /tmp/ATS-Postiats/src/pats_codegen2.dats: 2319(line=95, offs=3) -- 3118(line=142, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_bool_type, tmp17) ; ATSlocal (ats_bool_type, tmp18) ; ATSlocal (ats_bool_type, tmp19) ; ATSlocal (ats_bool_type, tmp20) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process: tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_node) ; if (((ats_sum_ptr_type)tmp13)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_codegen2.dats: 2576(line=110, offs=5) -- 2613(line=110, offs=42)") ; } tmp14 = ats_caselptrlab_mac(anairiats_sum_1, tmp13, atslab_1) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp14 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_0_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_2, tmp14, atslab_0) ; tmp16 = ats_caselptrlab_mac(anairiats_sum_2, tmp14, atslab_1) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcon_test_e1xp (tmp15) ; if (!tmp17) { goto __ats_lab_2_1 ; } /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcon (arg0, arg1, tmp16) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcontag_test_e1xp (tmp15) ; if (!tmp18) { goto __ats_lab_3_1 ; } /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcontag (arg0, arg1, tmp16) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__fprint_test_e1xp (tmp15) ; if (!tmp19) { goto __ats_lab_4_1 ; } /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_fprint (arg0, arg1, tmp16) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: __ats_lab_4_1: tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__absrec_test_e1xp (tmp15) ; if (!tmp20) { goto __ats_lab_5_1 ; } /* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_absrec (arg0, arg1, tmp16) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: __ats_lab_5_1: /* tmp12 = */ auxerr_cons_1 (arg0, arg1, tmp15) ; break ; } while (0) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (tmp14 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: /* tmp12 = */ auxerr_nil_0 (arg0, arg1) ; break ; } while (0) ; return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process] */ /* // /tmp/ATS-Postiats/src/pats_codegen2.dats: 3305(line=158, offs=1) -- 3634(line=179, offs=2) */ ATSstaticdec() ats_void_type aux_4 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_bool_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab_aux_4: tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2ecl_node) ; do { /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp23)->tag != 6) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_1, tmp23, atslab_0) ; tmp25 = atspre_lte_int_int (tmp24, 2) ; if (tmp25) { /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process (env0, arg0) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp23)->tag != 1) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_3, tmp23, atslab_0) ; /* tmp22 = */ auxlst_5 (env0, tmp26) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp23)->tag != 27) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_4, tmp23, atslab_1) ; /* tmp22 = */ auxlst_5 (env0, tmp27) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: break ; } while (0) ; return /* (tmp22) */ ; } /* end of [aux_4] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_4_closure_type ; ats_void_type aux_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { aux_4 (((aux_4_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type aux_4_closure_init (aux_4_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_4_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_4_closure_make (ats_ptr_type env0) { aux_4_closure_type *p_clo = ATS_MALLOC(sizeof(aux_4_closure_type)) ; aux_4_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2.dats: 3642(line=182, offs=1) -- 3781(line=192, offs=2) */ ATSstaticdec() ats_void_type auxlst_5 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; __ats_lab_auxlst_5: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ; tmp30 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ; /* tmp31 = */ aux_4 (env0, tmp29) ; arg0 = tmp30 ; goto __ats_lab_auxlst_5 ; // tail call break ; } while (0) ; return /* (tmp28) */ ; } /* end of [auxlst_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } auxlst_5_closure_type ; ats_void_type auxlst_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxlst_5 (((auxlst_5_closure_type*)cloptr)->closure_env_0, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxlst_5_closure_init (auxlst_5_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_5_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_5_closure_make (ats_ptr_type env0) { auxlst_5_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_5_closure_type)) ; auxlst_5_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2.dats: 3226(line=150, offs=3) -- 3829(line=196, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp21) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out: /* tmp21 = */ auxlst_5 (arg0, arg1) ; return /* (tmp21) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_codegen2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_staexp2_ctxt_dats.c0000644000175000017500000003641113431250607023162 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__S2CTXT_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_add_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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_linearize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__s2exp_hrepl_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__labs2explst_hrepl_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2ctxt_type = 0 ; /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__S2CTXT_0) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_staexp2_ctxt.dats: 1613(line=48, offs=13) -- 1643(line=48, offs=43) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2ctxt_make (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2ctxt_make: tmp0 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp0, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_0, tmp0, atslab_1, arg1) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2ctxt_make] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_ctxt.dats: 1929(line=65, offs=1) -- 2727(line=101, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__s2exp_hrepl_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_int_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_int_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_bool_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_int_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_bool_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__s2exp_hrepl_flag: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp2)->tag != 9) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ; ats_ptrget_mac(ats_int_type, arg2) = tmp3 ; tmp1 = arg1 ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp2)->tag != 12) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_2, tmp2, atslab_0) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_2, tmp2, atslab_1) ; tmp6 = ats_ptrget_mac(ats_int_type, arg2) ; tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__s2exp_hrepl_flag (tmp4, arg1, arg2) ; tmp8 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp6) ; if (tmp8) { tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp7, tmp5) ; } else { tmp1 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp2)->tag != 25) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp9 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_0) ; tmp10 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_1) ; tmp11 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_2) ; tmp12 = ats_ptrget_mac(ats_int_type, arg2) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__labs2explst_hrepl_flag (tmp11, arg1, arg2) ; tmp14 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp12) ; if (tmp14) { tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (arg1) ; if (tmp16) { tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_srt) ; tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_linearize (tmp17) ; } else { tmp15 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_srt) ; } /* end of [if] */ tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp15, tmp9, tmp10, tmp13) ; } else { tmp1 = arg0 ; } /* end of [if] */ break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: tmp1 = arg0 ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__s2exp_hrepl_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_ctxt.dats: 2793(line=105, offs=3) -- 3333(line=126, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__labs2explst_hrepl_flag (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_bool_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_bool_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__labs2explst_hrepl_flag: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ; tmp21 = ats_ptrget_mac(ats_int_type, arg2) ; tmp22 = ats_caselptrlab_mac(anairiats_sum_4, tmp19, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_4, tmp19, atslab_1) ; tmp24 = ats_caselptrlab_mac(anairiats_sum_4, tmp19, atslab_2) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__s2exp_hrepl_flag (tmp24, arg1, arg2) ; tmp26 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp21) ; if (tmp26) { tmp27 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp27, atslab_0, tmp22) ; ats_selptrset_mac(anairiats_sum_4, tmp27, atslab_1, tmp23) ; ats_selptrset_mac(anairiats_sum_4, tmp27, atslab_2, tmp25) ; tmp18 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp18, atslab_0, tmp27) ; ats_selptrset_mac(anairiats_sum_0, tmp18, atslab_1, tmp20) ; } else { tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__labs2explst_hrepl_flag (tmp20, arg1, arg2) ; tmp29 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp21) ; if (tmp29) { tmp18 = ATS_MALLOC(sizeof(anairiats_sum_0)) ; ats_selptrset_mac(anairiats_sum_0, tmp18, atslab_0, tmp19) ; ats_selptrset_mac(anairiats_sum_0, tmp18, atslab_1, tmp28) ; } else { tmp18 = arg0 ; } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp18 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp18) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__labs2explst_hrepl_flag] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_ctxt.dats: 3415(line=132, offs=3) -- 3496(line=136, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_int_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl: /* ats_int_type tmp31 ; */ tmp31 = 0 ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__s2exp_hrepl_flag (arg0, arg1, (&tmp31)) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hrepl] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_ctxt.dats: 3568(line=142, offs=3) -- 3705(line=148, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_int_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl: /* ats_int_type tmp33 ; */ tmp33 = 0 ; // tmp34 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__s2exp_hrepl_flag (tmp34, arg1, (&tmp33)) ; return (tmp32) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_ctxt.dats: 3760(line=152, offs=3) -- 3869(line=156, offs=23) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxtopt_hrepl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxtopt_hrepl: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxt_hrepl (tmp36, arg1) ; tmp35 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp35, atslab_0, tmp37) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp35 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2ctxtopt_hrepl] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__S2CTXT_0.tag = 0 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_ctxt_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_staexp2_ctxt_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp2_dmac_dats.c0000644000175000017500000012755413431250607023120 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_d2mac_loc ; ats_ptr_type atslab_d2mac_sym ; ats_int_type atslab_d2mac_kind ; ats_ptr_type atslab_d2mac_arglst ; ats_ptr_type atslab_d2mac_def ; ats_int_type atslab_d2mac_stamp ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGdyn_1) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2mac_stamp_make) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_m2acarg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2mac) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2mac_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_void_type aux_12 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_12_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp3 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp3) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 2222(line=82, offs=12) -- 2640(line=101, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_int_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_make: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2mac_stamp_make () ; tmp2 = ptr_alloc_01070_anairiats_rec_1 () ; tmp4 = ats_selsin_mac(tmp2, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2mac_loc) = arg0 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2mac_sym) = arg1 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2mac_kind) = arg2 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2mac_arglst) = arg3 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2mac_def) = arg4 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2mac_stamp) = tmp1 ; tmp0 = atspre_ref_make_view_ptr (tmp4) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_make] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 2689(line=104, offs=15) -- 2765(line=106, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_loc (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_loc: tmp6 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp5 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_d2mac_loc) ; return (tmp5) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_loc] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 2817(line=109, offs=15) -- 2893(line=111, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_sym (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_sym: tmp8 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp7 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp8), atslab_d2mac_sym) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_sym] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 2946(line=114, offs=16) -- 3023(line=116, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_kind (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_kind: tmp10 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp9 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp10), atslab_d2mac_kind) ; return (tmp9) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_kind] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 3079(line=119, offs=18) -- 3158(line=121, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst: tmp12 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp11 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_d2mac_arglst) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 3213(line=124, offs=15) -- 3289(line=126, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_def (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_def: tmp14 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp13 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_d2mac_def) ; return (tmp13) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_def] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 3340(line=128, offs=15) -- 3428(line=130, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_set_def (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_set_def: tmp16 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp16), atslab_d2mac_def) = arg1 ; return /* (tmp15) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_set_def] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 3482(line=133, offs=17) -- 3560(line=135, offs=4) */ ATSglobaldec() ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_stamp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_stamp: tmp18 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp17 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_d2mac_stamp) ; return (tmp17) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_stamp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 3660(line=143, offs=3) -- 3977(line=155, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_m2acarg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; // ATSlocal_void (tmp24) ; // ATSlocal_void (tmp25) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_m2acarg: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp21 = */ atspre_fprint_string (arg0, ATSstrcst("M2ACARGsta(")) ; /* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp20) ; /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ; /* tmp24 = */ atspre_fprint_string (arg0, ATSstrcst("M2ACARGdyn(")) ; /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst (arg0, tmp23) ; /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp19) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_m2acarg] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_12 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_bool_type, tmp32) ; // ATSlocal_void (tmp33) ; ATSlocal (ats_int_type, tmp34) ; __ats_lab_aux_12: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; tmp30 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ; tmp32 = atspre_gt_int_int (arg1, 0) ; if (tmp32) { /* tmp31 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp33 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp29) ; tmp34 = atspre_add_int_int (arg1, 1) ; arg0 = tmp30 ; arg1 = tmp34 ; goto __ats_lab_aux_12 ; // tail call break ; } while (0) ; return /* (tmp28) */ ; } /* end of [aux_12] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_12_closure_type ; ats_void_type aux_12_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_12 (((aux_12_closure_type*)cloptr)->closure_env_0, ((aux_12_closure_type*)cloptr)->closure_env_1, ((aux_12_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_12_closure_init (aux_12_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_12_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_12_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_12_closure_type *p_clo = ATS_MALLOC(sizeof(aux_12_closure_type)) ; aux_12_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp27) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp27 = */ aux_12 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp27) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 4036(line=159, offs=3) -- 4093(line=159, offs=60) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_m2acarglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp26) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_m2acarglst: /* tmp26 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_m2acarg) ; return /* (tmp26) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_m2acarglst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 4169(line=165, offs=14) -- 4225(line=166, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2mac (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2mac: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_sym (arg1) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp36) ; return /* (tmp35) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2mac] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 4274(line=169, offs=23) -- 4308(line=169, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2mac (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp37) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2mac: /* tmp37 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2mac (stdout, arg0) ; return /* (tmp37) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2mac] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_dmac.dats: 4331(line=170, offs=23) -- 4365(line=170, offs=57) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp38) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac: /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2mac (stderr, arg0) ; return /* (tmp38) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dmac_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp2_dmac_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp2_mapgen_dats.c0000644000175000017500000045204613431250607023460 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_rec_12 ; typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_14 ; typedef struct { ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_d2exp_loc ; ats_ptr_type atslab_d2exp_node ; ats_ptr_type atslab_d2exp_type ; } anairiats_rec_16 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_17 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_18 ; typedef struct { ats_ptr_type atslab_s2exparg_loc ; ats_ptr_type atslab_s2exparg_node ; } anairiats_rec_19 ; typedef struct { ats_ptr_type atslab_t2mpmarg_loc ; ats_ptr_type atslab_t2mpmarg_arg ; } anairiats_rec_20 ; typedef struct { ats_ptr_type atslab_i2fcl_loc ; ats_ptr_type atslab_i2fcl_test ; ats_ptr_type atslab_i2fcl_body ; } anairiats_rec_21 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_22 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_23 ; typedef struct { ats_ptr_type atslab_s2qua_svs ; ats_ptr_type atslab_s2qua_sps ; } anairiats_rec_24 ; typedef struct { anairiats_rec_24 atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_25 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_26 ; typedef struct { ats_ptr_type atslab_c2lau_loc ; ats_ptr_type atslab_c2lau_pat ; ats_ptr_type atslab_c2lau_gua ; ats_int_type atslab_c2lau_seq ; ats_int_type atslab_c2lau_neg ; ats_ptr_type atslab_c2lau_body ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_gm2at_loc ; ats_ptr_type atslab_gm2at_exp ; ats_ptr_type atslab_gm2at_pat ; } anairiats_rec_28 ; typedef struct { ats_ptr_type atslab_sp2at_loc ; ats_ptr_type atslab_sp2at_exp ; ats_ptr_type atslab_sp2at_node ; } anairiats_rec_29 ; typedef struct { ats_ptr_type atslab_sc2lau_loc ; ats_ptr_type atslab_sc2lau_pat ; ats_ptr_type atslab_sc2lau_body ; } anairiats_rec_30 ; typedef struct { ats_ptr_type atslab_d2lab_loc ; ats_ptr_type atslab_d2lab_node ; ats_ptr_type atslab_d2lab_overld ; } anairiats_rec_31 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_32 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_33 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_34 ; typedef struct { ats_ptr_type atslab_i2mpdec_loc ; ats_ptr_type atslab_i2mpdec_locid ; ats_ptr_type atslab_i2mpdec_cst ; ats_ptr_type atslab_i2mpdec_imparg ; ats_ptr_type atslab_i2mpdec_tmparg ; ats_ptr_type atslab_i2mpdec_tmpgua ; ats_ptr_type atslab_i2mpdec_def ; } anairiats_rec_35 ; typedef struct { ats_ptr_type atslab_f2undec_loc ; ats_ptr_type atslab_f2undec_var ; ats_ptr_type atslab_f2undec_def ; ats_ptr_type atslab_f2undec_ann ; } anairiats_rec_36 ; typedef struct { ats_ptr_type atslab_v2aldec_loc ; ats_ptr_type atslab_v2aldec_pat ; ats_ptr_type atslab_v2aldec_def ; ats_ptr_type atslab_v2aldec_ann ; } anairiats_rec_37 ; typedef struct { ats_ptr_type atslab_v2ardec_loc ; ats_int_type atslab_v2ardec_knd ; ats_ptr_type atslab_v2ardec_svar ; ats_ptr_type atslab_v2ardec_dvar ; ats_ptr_type atslab_v2ardec_pfat ; ats_ptr_type atslab_v2ardec_type ; ats_ptr_type atslab_v2ardec_init ; ats_ptr_type atslab_v2ardec_dvaropt ; } anairiats_rec_38 ; typedef struct { ats_ptr_type atslab_prv2ardec_loc ; ats_ptr_type atslab_prv2ardec_dvar ; ats_ptr_type atslab_prv2ardec_type ; ats_ptr_type atslab_prv2ardec_init ; } anairiats_rec_39 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2PITM_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMe1xp_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMsymdef_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacdef_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMmacvar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlst_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Terrpat_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABlab_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2LABind_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etop2_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecstsp_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etyrep_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eliteral_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextval_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextfcall_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eextmcall_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Econ_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efoldat_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efreeat_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etmpid_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elet_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhere_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esifhead_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifcasehd_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ecasehead_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Escasehead_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elist_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elst_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etup_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Erec_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eseq_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eselab_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eptrof_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eviewat_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ederef_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eassgn_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Exchng_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrsub_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrpsz_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Earrinit_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eraise_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eeffmask_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evararg_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evcopyenv_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eshowtype_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etempenver_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eexist_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elaminit_dyn_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efix_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Edelay_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eldelay_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efor_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ewhile_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eloopexn_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Etrywith_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_type_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_seff_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eann_funclo_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacsyn_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacfun_72) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolassert_73) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esolverify_74) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eerrexp_75) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymintr_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymelim_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Coverload_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacsts_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacons_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextype_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextvar_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextcode_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdatdecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cexndecs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdcstdecs_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cimpdec_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cfundecs_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_rec_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvardecs_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cprvardecs_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaload_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaloadloc_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdynload_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cerrdec_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__MYENV_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2cst_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2var_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2Var_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2cst_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2sym_app) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__MYENV_0) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type s2explst_app_03984_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2explstlst_app_03985_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2varlst_app_03981_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type labs2explst_app_03986_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type wths2explst_app_03987_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2exp_app_03983_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2conlst_app_03982_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2pitm_app_04000_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2pitmlst_app_04001_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2itm_app_03997_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2itmopt_app_03999_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2cstlst_app_03980_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2explst_app_04014_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2exparg_app_04005_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2exparglst_app_04006_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type t2mpmarg_app_04007_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type t2mpmarglst_app_04008_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2exparg_app_04019_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2exparglst_app_04020_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2expopt_app_04016_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type i2fcl_app_04021_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type i2fclist_app_04022_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2qualst_app_03989_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type labp2atlst_app_04011_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type p2at_app_04009_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type p2atlst_app_04010_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type p2atopt_app_04012_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type gm2at_app_04023_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type gm2atlst_app_04024_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type c2lau_app_04025_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type c2laulst_app_04026_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type sp2at_app_04004_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type sc2lau_app_04027_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type sc2laulst_app_04028_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type s2expopt_app_03988_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type labd2explst_app_04015_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2lab_app_04017_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2lablst_app_04018_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2varlst_app_03995_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2exp_app_04013_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_dcon_51 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxlst_scst_52 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2atdecs_app_04002_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2cstlst_app_03994_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2cstdecs_app_04003_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type i2mpdec_app_04031_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type f2undec_app_04032_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type f2undeclst_app_04033_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type v2aldec_app_04034_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type v2aldeclst_app_04035_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2varopt_app_03996_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type v2ardec_app_04036_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type v2ardeclst_app_04037_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prv2ardec_app_04038_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prv2ardeclst_app_04039_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2ecl_app_04029_ (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type d2eclist_app_04030_ (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_mapgen.dats: 2203(line=91, offs=3) -- 2463(line=103, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2cst_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2cst_app: // tmp1 = &ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, arg1), atslab_0) ; tmp3 = ats_ptrget_mac(ats_ptr_type, tmp1) ; tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add (tmp3, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp1) = tmp2 ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2cst_app] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_mapgen.dats: 2509(line=107, offs=3) -- 2769(line=119, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2var_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2var_app: // tmp5 = &ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ; tmp7 = ats_ptrget_mac(ats_ptr_type, tmp5) ; tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add (tmp7, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp5) = tmp6 ; return /* (tmp4) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2var_app] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_mapgen.dats: 2815(line=123, offs=3) -- 3075(line=135, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2Var_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2Var_app: // tmp9 = &ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, arg1), atslab_2) ; tmp11 = ats_ptrget_mac(ats_ptr_type, tmp9) ; tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add (tmp11, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp9) = tmp10 ; return /* (tmp8) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2Var_app] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_mapgen.dats: 3121(line=139, offs=3) -- 3455(line=156, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app: tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (arg0) ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2cst_app (tmp13, arg1) ; // tmp15 = &ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, arg1), atslab_3) ; tmp17 = ats_ptrget_mac(ats_ptr_type, tmp15) ; tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_add (tmp17, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp15) = tmp16 ; return /* (tmp12) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 5646(line=269, offs=3) -- 5692(line=269, offs=49) */ ATSstaticdec() ats_void_type s2explst_app_03984_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp26) ; __ats_lab_s2explst_app_03984_: /* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &s2exp_app_03983_) ; return /* (tmp26) */ ; } /* end of [s2explst_app_03984_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 5734(line=274, offs=3) -- 5785(line=274, offs=54) */ ATSstaticdec() ats_void_type s2explstlst_app_03985_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp25) ; __ats_lab_s2explstlst_app_03985_: /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &s2explst_app_03984_) ; return /* (tmp25) */ ; } /* end of [s2explstlst_app_03985_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 1953(line=72, offs=3) -- 1999(line=72, offs=49) */ ATSstaticdec() ats_void_type s2varlst_app_03981_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp54) ; __ats_lab_s2varlst_app_03981_: /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2var_app) ; return /* (tmp54) */ ; } /* end of [s2varlst_app_03981_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 5848(line=281, offs=3) -- 6070(line=294, offs=4) */ ATSstaticdec() ats_void_type labs2explst_app_03986_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab_labs2explst_app_03986_: do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp71 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp72 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; // tmp73 = ats_caselptrlab_mac(anairiats_sum_10, tmp71, atslab_2) ; /* tmp74 = */ s2exp_app_03983_ (tmp73, arg1) ; arg0 = tmp72 ; arg1 = arg1 ; goto __ats_lab_labs2explst_app_03986_ ; // tail call break ; } while (0) ; return /* (tmp70) */ ; } /* end of [labs2explst_app_03986_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 6159(line=301, offs=3) -- 6480(line=316, offs=4) */ ATSstaticdec() ats_void_type wths2explst_app_03987_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; // ATSlocal_void (tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; __ats_lab_wths2explst_app_03987_: do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp92 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; tmp93 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_2) ; /* tmp94 = */ s2exp_app_03983_ (tmp92, arg1) ; arg0 = tmp93 ; arg1 = arg1 ; goto __ats_lab_wths2explst_app_03987_ ; // tail call break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; tmp96 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_2) ; /* tmp97 = */ s2exp_app_03983_ (tmp95, arg1) ; arg0 = tmp96 ; arg1 = arg1 ; goto __ats_lab_wths2explst_app_03987_ ; // tail call break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp98 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; arg0 = tmp98 ; arg1 = arg1 ; goto __ats_lab_wths2explst_app_03987_ ; // tail call break ; } while (0) ; return /* (tmp91) */ ; } /* end of [wths2explst_app_03987_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 2830(line=132, offs=3) -- 5564(line=262, offs=4) */ ATSstaticdec() ats_void_type s2exp_app_03983_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; // ATSlocal_void (tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; // ATSlocal_void (tmp36) ; // ATSlocal_void (tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; // ATSlocal_void (tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; // ATSlocal_void (tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; // ATSlocal_void (tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; // ATSlocal_void (tmp84) ; // ATSlocal_void (tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; // ATSlocal_void (tmp90) ; __ats_lab_s2exp_app_03983_: tmp22 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp22)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp22)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp22)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp22)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp22)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_3, tmp22, atslab_0) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2cst_app (tmp23, arg1) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp22)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp21 = */ s2explstlst_app_03985_ (tmp24, arg1) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp22)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp21 = */ s2explstlst_app_03985_ (tmp27, arg1) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp22)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_3, tmp22, atslab_0) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2var_app (tmp28, arg1) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp22)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_3, tmp22, atslab_0) ; /* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2Var_app (tmp29, arg1) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp22)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp22)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp30 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_0) ; tmp31 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app (tmp30, arg1) ; /* tmp21 = */ s2explst_app_03984_ (tmp31, arg1) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp22)->tag != 11) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp33 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_0) ; tmp34 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_1) ; tmp35 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_2) ; /* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app (tmp33, arg1) ; /* tmp37 = */ s2exp_app_03983_ (tmp34, arg1) ; /* tmp21 = */ s2explst_app_03984_ (tmp35, arg1) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp22)->tag != 12) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp38 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_0) ; tmp39 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp40 = */ s2exp_app_03983_ (tmp38, arg1) ; arg0 = tmp39 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp22)->tag != 13) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp41 = ats_caselptrlab_mac(anairiats_sum_3, tmp22, atslab_0) ; arg0 = tmp41 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp22)->tag != 14) { goto __ats_lab_15_0 ; } __ats_lab_14_1: break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp22)->tag != 15) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp44 = */ s2exp_app_03983_ (tmp42, arg1) ; arg0 = tmp43 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp22)->tag != 16) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp45 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_0) ; tmp46 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_1) ; /* tmp47 = */ s2exp_app_03983_ (tmp45, arg1) ; arg0 = tmp46 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp22)->tag != 17) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp50 = */ s2exp_app_03983_ (tmp48, arg1) ; /* tmp21 = */ s2explst_app_03984_ (tmp49, arg1) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp22)->tag != 18) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp53 = */ s2varlst_app_03981_ (tmp51, arg1) ; arg0 = tmp52 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp22)->tag != 19) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp55 = ats_caselptrlab_mac(anairiats_sum_6, tmp22, atslab_4) ; tmp56 = ats_caselptrlab_mac(anairiats_sum_6, tmp22, atslab_5) ; /* tmp57 = */ s2explst_app_03984_ (tmp55, arg1) ; arg0 = tmp56 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp22)->tag != 20) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_1) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_2) ; /* tmp60 = */ s2explst_app_03984_ (tmp58, arg1) ; arg0 = tmp59 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp22)->tag != 21) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp61 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_0) ; tmp62 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp63 = */ s2explst_app_03984_ (tmp61, arg1) ; /* tmp21 = */ s2explst_app_03984_ (tmp62, arg1) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp22)->tag != 22) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_7, tmp22, atslab_1) ; arg0 = tmp64 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp22)->tag != 23) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp65 = ats_caselptrlab_mac(anairiats_sum_3, tmp22, atslab_0) ; arg0 = tmp65 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp22)->tag != 24) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp66 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_0) ; tmp67 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp68 = */ s2exp_app_03983_ (tmp66, arg1) ; /* tmp21 = */ s2explst_app_03984_ (tmp67, arg1) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp22)->tag != 25) { goto __ats_lab_28_0 ; } __ats_lab_25_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_8, tmp22, atslab_2) ; /* tmp21 = */ labs2explst_app_03986_ (tmp69, arg1) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp22)->tag != 26) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_3, tmp22, atslab_0) ; arg0 = tmp75 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp22)->tag != 27) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_0) ; tmp77 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_1) ; tmp78 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_2) ; /* tmp79 = */ s2varlst_app_03981_ (tmp76, arg1) ; /* tmp80 = */ s2explst_app_03984_ (tmp77, arg1) ; arg0 = tmp78 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp22)->tag != 28) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp81 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_0) ; tmp82 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_1) ; tmp83 = ats_caselptrlab_mac(anairiats_sum_5, tmp22, atslab_2) ; /* tmp84 = */ s2varlst_app_03981_ (tmp81, arg1) ; /* tmp85 = */ s2explst_app_03984_ (tmp82, arg1) ; arg0 = tmp83 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp22)->tag != 29) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_7, tmp22, atslab_1) ; arg0 = tmp86 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp22)->tag != 30) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp87 = ats_caselptrlab_mac(anairiats_sum_3, tmp22, atslab_0) ; arg0 = tmp87 ; arg1 = arg1 ; goto __ats_lab_s2exp_app_03983_ ; // tail call break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp22)->tag != 31) { goto __ats_lab_38_0 ; } __ats_lab_33_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_0) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_4, tmp22, atslab_1) ; /* tmp90 = */ s2exp_app_03983_ (tmp88, arg1) ; /* tmp21 = */ wths2explst_app_03987_ (tmp89, arg1) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (((ats_sum_ptr_type)tmp22)->tag != 32) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: break ; } while (0) ; return /* (tmp21) */ ; } /* end of [s2exp_app_03983_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_mapgen.dats: 3501(line=160, offs=3) -- 3843(line=180, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2cst_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2cst_app: tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg0) ; /* tmp20 = */ s2exp_app_03983_ (tmp19, arg1) ; // tmp99 = &ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, arg1), atslab_4) ; tmp101 = ats_ptrget_mac(ats_ptr_type, tmp99) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_add (tmp101, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp99) = tmp100 ; return /* (tmp18) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2cst_app] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_mapgen.dats: 3889(line=184, offs=3) -- 4157(line=199, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app: // tmp103 = &ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, arg1), atslab_5) ; tmp105 = ats_ptrget_mac(ats_ptr_type, tmp103) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add (tmp105, arg0) ; ats_ptrget_mac(ats_ptr_type, tmp103) = tmp104 ; return /* (tmp102) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_mapgen.dats: 4201(line=201, offs=21) -- 4216(line=201, offs=36) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2sym_app (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2sym_app: return /* (tmp106) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2sym_app] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 2061(line=79, offs=3) -- 2107(line=79, offs=49) */ ATSstaticdec() ats_void_type d2conlst_app_03982_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp130) ; __ats_lab_d2conlst_app_03982_: /* tmp130 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app) ; return /* (tmp130) */ ; } /* end of [d2conlst_app_03982_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 3333(line=156, offs=3) -- 3413(line=160, offs=4) */ ATSstaticdec() ats_void_type d2pitm_app_04000_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab_d2pitm_app_04000_: // tmp134 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ; /* tmp133 = */ d2itm_app_03997_ (tmp134, arg1) ; return /* (tmp133) */ ; } /* end of [d2pitm_app_04000_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 3497(line=167, offs=3) -- 3544(line=167, offs=50) */ ATSstaticdec() ats_void_type d2pitmlst_app_04001_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp132) ; __ats_lab_d2pitmlst_app_04001_: /* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &d2pitm_app_04000_) ; return /* (tmp132) */ ; } /* end of [d2pitmlst_app_04001_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 2660(line=119, offs=3) -- 2981(line=131, offs=4) */ ATSstaticdec() ats_void_type d2itm_app_03997_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp135) ; __ats_lab_d2itm_app_03997_: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2cst_app (tmp127, arg1) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp128 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp128, arg1) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp129 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp126 = */ d2conlst_app_03982_ (tmp129, arg1) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_51_0 ; } __ats_lab_50_1: break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp131 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; /* tmp126 = */ d2pitmlst_app_04001_ (tmp131, arg1) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_53_0 ; } __ats_lab_52_1: break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 2683(line=122, offs=1) -- 2974(line=129, offs=44)") ; } __ats_lab_53_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp135, arg1) ; break ; } while (0) ; return /* (tmp126) */ ; } /* end of [d2itm_app_03997_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 3171(line=145, offs=3) -- 3247(line=148, offs=49) */ ATSstaticdec() ats_void_type d2itmopt_app_03999_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; __ats_lab_d2itmopt_app_03999_: do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_46_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_0) ; /* tmp124 = */ d2itm_app_03997_ (tmp125, arg1) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: break ; } while (0) ; return /* (tmp124) */ ; } /* end of [d2itmopt_app_03999_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 1845(line=65, offs=3) -- 1891(line=65, offs=49) */ ATSstaticdec() ats_void_type s2cstlst_app_03980_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp137) ; __ats_lab_s2cstlst_app_03980_: /* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2cst_app) ; return /* (tmp137) */ ; } /* end of [s2cstlst_app_03980_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 15850(line=839, offs=3) -- 16011(line=849, offs=4) */ ATSstaticdec() ats_void_type d2explst_app_04014_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; // ATSlocal_void (tmp154) ; __ats_lab_d2explst_app_04014_: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp153 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; /* tmp154 = */ d2exp_app_04013_ (tmp152, arg1) ; arg0 = tmp153 ; arg1 = arg1 ; goto __ats_lab_d2explst_app_04014_ ; // tail call break ; } while (0) ; return /* (tmp151) */ ; } /* end of [d2explst_app_04014_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 7392(line=433, offs=3) -- 7545(line=442, offs=4) */ ATSstaticdec() ats_void_type s2exparg_app_04005_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; __ats_lab_s2exparg_app_04005_: tmp167 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_s2exparg_node) ; do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp167)->tag != 0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp167)->tag != 1) { goto __ats_lab_85_0 ; } __ats_lab_84_1: break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (((ats_sum_ptr_type)tmp167)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp168 = ats_caselptrlab_mac(anairiats_sum_3, tmp167, atslab_0) ; /* tmp166 = */ s2explst_app_03984_ (tmp168, arg1) ; break ; } while (0) ; return /* (tmp166) */ ; } /* end of [s2exparg_app_04005_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 7635(line=449, offs=3) -- 7686(line=450, offs=40) */ ATSstaticdec() ats_void_type s2exparglst_app_04006_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp165) ; __ats_lab_s2exparglst_app_04006_: /* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &s2exparg_app_04005_) ; return /* (tmp165) */ ; } /* end of [s2exparglst_app_04006_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 7748(line=457, offs=3) -- 7801(line=458, offs=40) */ ATSstaticdec() ats_void_type t2mpmarg_app_04007_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab_t2mpmarg_app_04007_: tmp181 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_t2mpmarg_arg) ; /* tmp180 = */ s2explst_app_03984_ (tmp181, arg1) ; return /* (tmp180) */ ; } /* end of [t2mpmarg_app_04007_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 7843(line=463, offs=3) -- 7894(line=464, offs=40) */ ATSstaticdec() ats_void_type t2mpmarglst_app_04008_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp179) ; __ats_lab_t2mpmarglst_app_04008_: /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &t2mpmarg_app_04007_) ; return /* (tmp179) */ ; } /* end of [t2mpmarglst_app_04008_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 16863(line=906, offs=3) -- 17023(line=913, offs=4) */ ATSstaticdec() ats_void_type d2exparg_app_04019_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; __ats_lab_d2exparg_app_04019_: do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp193 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; /* tmp192 = */ s2exparglst_app_04006_ (tmp193, arg1) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: // if (((ats_sum_ptr_type)arg0)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_94_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_2) ; /* tmp192 = */ d2explst_app_04014_ (tmp194, arg1) ; break ; } while (0) ; return /* (tmp192) */ ; } /* end of [d2exparg_app_04019_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 17111(line=920, offs=3) -- 17159(line=920, offs=51) */ ATSstaticdec() ats_void_type d2exparglst_app_04020_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp191) ; __ats_lab_d2exparglst_app_04020_: /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &d2exparg_app_04019_) ; return /* (tmp191) */ ; } /* end of [d2exparglst_app_04020_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 16390(line=873, offs=3) -- 16466(line=876, offs=49) */ ATSstaticdec() ats_void_type d2expopt_app_04016_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; __ats_lab_d2expopt_app_04016_: do { /* branch: __ats_lab_96 */ __ats_lab_96_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp201 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_0) ; /* tmp200 = */ d2exp_app_04013_ (tmp201, arg1) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_97_1: break ; } while (0) ; return /* (tmp200) */ ; } /* end of [d2expopt_app_04016_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 17218(line=927, offs=3) -- 17323(line=931, offs=2) */ ATSstaticdec() ats_void_type i2fcl_app_04021_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; __ats_lab_i2fcl_app_04021_: tmp211 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_i2fcl_test) ; /* tmp210 = */ d2exp_app_04013_ (tmp211, arg1) ; tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_i2fcl_body) ; /* tmp209 = */ d2exp_app_04013_ (tmp212, arg1) ; return /* (tmp209) */ ; } /* end of [i2fcl_app_04021_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 17387(line=936, offs=3) -- 17433(line=936, offs=49) */ ATSstaticdec() ats_void_type i2fclist_app_04022_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp208) ; __ats_lab_i2fclist_app_04022_: /* tmp208 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &i2fcl_app_04021_) ; return /* (tmp208) */ ; } /* end of [i2fclist_app_04022_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 6736(line=335, offs=3) -- 6963(line=346, offs=4) */ ATSstaticdec() ats_void_type s2qualst_app_03989_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp229) ; ATSlocal (anairiats_rec_24, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; // ATSlocal_void (tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; // ATSlocal_void (tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; __ats_lab_s2qualst_app_03989_: do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_105_0 ; } __ats_lab_104_1: break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_105_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_25, arg0, atslab_0) ; tmp231 = ats_caselptrlab_mac(anairiats_sum_25, arg0, atslab_1) ; tmp233 = ats_select_mac(tmp230, atslab_s2qua_svs) ; /* tmp232 = */ s2varlst_app_03981_ (tmp233, arg1) ; tmp235 = ats_select_mac(tmp230, atslab_s2qua_sps) ; /* tmp234 = */ s2explst_app_03984_ (tmp235, arg1) ; arg0 = tmp231 ; arg1 = arg1 ; goto __ats_lab_s2qualst_app_03989_ ; // tail call break ; } while (0) ; return /* (tmp229) */ ; } /* end of [s2qualst_app_03989_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 9207(line=544, offs=3) -- 9526(line=561, offs=4) */ ATSstaticdec() ats_void_type labp2atlst_app_04011_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; // ATSlocal_void (tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; __ats_lab_labp2atlst_app_04011_: do { /* branch: __ats_lab_117 */ __ats_lab_117_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; } __ats_lab_117_1: tmp240 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp241 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; do { /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp240)->tag != 1) { goto __ats_lab_119_0 ; } __ats_lab_118_1: tmp243 = ats_caselptrlab_mac(anairiats_sum_4, tmp240, atslab_1) ; /* tmp242 = */ p2at_app_04009_ (tmp243, arg1) ; break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: // if (((ats_sum_ptr_type)tmp240)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_119_1: break ; } while (0) ; arg0 = tmp241 ; arg1 = arg1 ; goto __ats_lab_labp2atlst_app_04011_ ; // tail call break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_120_1: break ; } while (0) ; return /* (tmp239) */ ; } /* end of [labp2atlst_app_04011_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 7950(line=471, offs=3) -- 9020(line=530, offs=4) */ ATSstaticdec() ats_void_type p2at_app_04009_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; // ATSlocal_void (tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; // ATSlocal_void (tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; // ATSlocal_void (tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; __ats_lab_p2at_app_04009_: tmp221 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_p2at_node) ; do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp221)->tag != 0) { goto __ats_lab_102_0 ; } __ats_lab_101_1: break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp221)->tag != 1) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp222 = ats_caselptrlab_mac(anairiats_sum_3, tmp221, atslab_0) ; /* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp222, arg1) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp221)->tag != 2) { goto __ats_lab_106_0 ; } __ats_lab_103_1: tmp223 = ats_caselptrlab_mac(anairiats_sum_23, tmp221, atslab_1) ; tmp224 = ats_caselptrlab_mac(anairiats_sum_23, tmp221, atslab_2) ; tmp225 = ats_caselptrlab_mac(anairiats_sum_23, tmp221, atslab_3) ; tmp226 = ats_caselptrlab_mac(anairiats_sum_23, tmp221, atslab_5) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app (tmp223, arg1) ; /* tmp228 = */ s2qualst_app_03989_ (tmp224, arg1) ; /* tmp236 = */ s2exp_app_03983_ (tmp225, arg1) ; /* tmp220 = */ p2atlst_app_04010_ (tmp226, arg1) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp221)->tag != 3) { goto __ats_lab_107_0 ; } __ats_lab_106_1: break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp221)->tag != 4) { goto __ats_lab_108_0 ; } __ats_lab_107_1: break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp221)->tag != 5) { goto __ats_lab_109_0 ; } __ats_lab_108_1: break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp221)->tag != 6) { goto __ats_lab_110_0 ; } __ats_lab_109_1: break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp221)->tag != 7) { goto __ats_lab_111_0 ; } __ats_lab_110_1: break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp221)->tag != 8) { goto __ats_lab_112_0 ; } __ats_lab_111_1: break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp221)->tag != 9) { goto __ats_lab_113_0 ; } __ats_lab_112_1: break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp221)->tag != 10) { goto __ats_lab_114_0 ; } __ats_lab_113_1: break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp221)->tag != 11) { goto __ats_lab_115_0 ; } __ats_lab_114_1: break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp221)->tag != 12) { goto __ats_lab_116_0 ; } __ats_lab_115_1: tmp237 = ats_caselptrlab_mac(anairiats_sum_7, tmp221, atslab_1) ; /* tmp220 = */ p2atlst_app_04010_ (tmp237, arg1) ; break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)tmp221)->tag != 13) { goto __ats_lab_121_0 ; } __ats_lab_116_1: tmp238 = ats_caselptrlab_mac(anairiats_sum_26, tmp221, atslab_2) ; /* tmp220 = */ labp2atlst_app_04011_ (tmp238, arg1) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp221)->tag != 14) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp244 = ats_caselptrlab_mac(anairiats_sum_4, tmp221, atslab_0) ; tmp245 = ats_caselptrlab_mac(anairiats_sum_4, tmp221, atslab_1) ; /* tmp246 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp244, arg1) ; arg0 = tmp245 ; arg1 = arg1 ; goto __ats_lab_p2at_app_04009_ ; // tail call break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp221)->tag != 15) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp247 = ats_caselptrlab_mac(anairiats_sum_4, tmp221, atslab_0) ; tmp248 = ats_caselptrlab_mac(anairiats_sum_4, tmp221, atslab_1) ; /* tmp249 = */ s2varlst_app_03981_ (tmp247, arg1) ; arg0 = tmp248 ; arg1 = arg1 ; goto __ats_lab_p2at_app_04009_ ; // tail call break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp221)->tag != 16) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp250 = ats_caselptrlab_mac(anairiats_sum_3, tmp221, atslab_0) ; /* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp250, arg1) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: if (((ats_sum_ptr_type)tmp221)->tag != 17) { goto __ats_lab_125_0 ; } __ats_lab_124_1: tmp251 = ats_caselptrlab_mac(anairiats_sum_4, tmp221, atslab_0) ; tmp252 = ats_caselptrlab_mac(anairiats_sum_4, tmp221, atslab_1) ; /* tmp253 = */ p2at_app_04009_ (tmp251, arg1) ; /* tmp220 = */ s2exp_app_03983_ (tmp252, arg1) ; break ; /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp221)->tag != 18) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp254 = ats_caselptrlab_mac(anairiats_sum_7, tmp221, atslab_1) ; /* tmp220 = */ p2atlst_app_04010_ (tmp254, arg1) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: // if (((ats_sum_ptr_type)tmp221)->tag != 19) { ats_deadcode_failure_handle () ; } __ats_lab_126_1: break ; } while (0) ; return /* (tmp220) */ ; } /* end of [p2at_app_04009_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 9100(line=537, offs=3) -- 9145(line=537, offs=48) */ ATSstaticdec() ats_void_type p2atlst_app_04010_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp219) ; __ats_lab_p2atlst_app_04010_: /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &p2at_app_04009_) ; return /* (tmp219) */ ; } /* end of [p2atlst_app_04010_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 9610(line=568, offs=3) -- 9685(line=571, offs=48) */ ATSstaticdec() ats_void_type p2atopt_app_04012_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; __ats_lab_p2atopt_app_04012_: do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp262 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_0) ; /* tmp261 = */ p2at_app_04009_ (tmp262, arg1) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: break ; } while (0) ; return /* (tmp261) */ ; } /* end of [p2atopt_app_04012_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 17492(line=943, offs=3) -- 17594(line=947, offs=2) */ ATSstaticdec() ats_void_type gm2at_app_04023_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp263) ; __ats_lab_gm2at_app_04023_: tmp260 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_gm2at_exp) ; /* tmp259 = */ d2exp_app_04013_ (tmp260, arg1) ; tmp263 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_gm2at_pat) ; /* tmp258 = */ p2atopt_app_04012_ (tmp263, arg1) ; return /* (tmp258) */ ; } /* end of [gm2at_app_04023_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 17654(line=952, offs=3) -- 17699(line=952, offs=48) */ ATSstaticdec() ats_void_type gm2atlst_app_04024_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp257) ; __ats_lab_gm2atlst_app_04024_: /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &gm2at_app_04023_) ; return /* (tmp257) */ ; } /* end of [gm2atlst_app_04024_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 17758(line=959, offs=3) -- 17906(line=964, offs=2) */ ATSstaticdec() ats_void_type c2lau_app_04025_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp218) ; ATSlocal (ats_ptr_type, tmp255) ; // ATSlocal_void (tmp256) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; __ats_lab_c2lau_app_04025_: tmp255 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_c2lau_pat) ; /* tmp218 = */ p2atlst_app_04010_ (tmp255, arg1) ; tmp264 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_c2lau_gua) ; /* tmp256 = */ gm2atlst_app_04024_ (tmp264, arg1) ; tmp265 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, arg0), atslab_c2lau_body) ; /* tmp217 = */ d2exp_app_04013_ (tmp265, arg1) ; return /* (tmp217) */ ; } /* end of [c2lau_app_04025_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 17970(line=969, offs=3) -- 18016(line=969, offs=49) */ ATSstaticdec() ats_void_type c2laulst_app_04026_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp216) ; __ats_lab_c2laulst_app_04026_: /* tmp216 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &c2lau_app_04025_) ; return /* (tmp216) */ ; } /* end of [c2laulst_app_04026_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 7117(line=414, offs=3) -- 7310(line=426, offs=4) */ ATSstaticdec() ats_void_type sp2at_app_04004_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; // ATSlocal_void (tmp276) ; __ats_lab_sp2at_app_04004_: tmp273 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_29, arg0), atslab_sp2at_node) ; do { /* branch: __ats_lab_130 */ __ats_lab_130_0: if (tmp273 == (ats_sum_ptr_type)0) { goto __ats_lab_131_0 ; } __ats_lab_130_1: tmp274 = ats_caselptrlab_mac(anairiats_sum_9, tmp273, atslab_0) ; tmp275 = ats_caselptrlab_mac(anairiats_sum_9, tmp273, atslab_1) ; /* tmp276 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2cst_app (tmp274, arg1) ; /* tmp272 = */ s2varlst_app_03981_ (tmp275, arg1) ; break ; /* branch: __ats_lab_131 */ __ats_lab_131_0: // if (tmp273 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_131_1: break ; } while (0) ; return /* (tmp272) */ ; } /* end of [sp2at_app_04004_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 18076(line=976, offs=3) -- 18182(line=980, offs=2) */ ATSstaticdec() ats_void_type sc2lau_app_04027_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp270) ; // ATSlocal_void (tmp271) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; __ats_lab_sc2lau_app_04027_: tmp277 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg0), atslab_sc2lau_pat) ; /* tmp271 = */ sp2at_app_04004_ (tmp277, arg1) ; tmp278 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, arg0), atslab_sc2lau_body) ; /* tmp270 = */ d2exp_app_04013_ (tmp278, arg1) ; return /* (tmp270) */ ; } /* end of [sc2lau_app_04027_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 18248(line=985, offs=3) -- 18295(line=985, offs=50) */ ATSstaticdec() ats_void_type sc2laulst_app_04028_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp269) ; __ats_lab_sc2laulst_app_04028_: /* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &sc2lau_app_04027_) ; return /* (tmp269) */ ; } /* end of [sc2laulst_app_04028_] */ /* // /tmp/ATS-Postiats/src/pats_staexp2_appenv.hats: 6564(line=322, offs=14) -- 6647(line=326, offs=53) */ ATSstaticdec() ats_void_type s2expopt_app_03988_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; __ats_lab_s2expopt_app_03988_: do { /* branch: __ats_lab_135 */ __ats_lab_135_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; } __ats_lab_135_1: tmp285 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_0) ; /* tmp284 = */ s2exp_app_03983_ (tmp285, arg1) ; break ; /* branch: __ats_lab_136 */ __ats_lab_136_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_136_1: break ; } while (0) ; return /* (tmp284) */ ; } /* end of [s2expopt_app_03988_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 16100(line=856, offs=3) -- 16275(line=864, offs=6) */ ATSstaticdec() ats_void_type labd2explst_app_04015_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; // ATSlocal_void (tmp292) ; __ats_lab_labd2explst_app_04015_: do { /* branch: __ats_lab_139 */ __ats_lab_139_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; } __ats_lab_139_1: break ; /* branch: __ats_lab_140 */ __ats_lab_140_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_140_1: tmp289 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; // tmp291 = ats_caselptrlab_mac(anairiats_sum_9, tmp289, atslab_1) ; /* tmp292 = */ d2exp_app_04013_ (tmp291, arg1) ; arg0 = tmp290 ; arg1 = arg1 ; goto __ats_lab_labd2explst_app_04015_ ; // tail call break ; } while (0) ; return /* (tmp288) */ ; } /* end of [labd2explst_app_04015_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 16551(line=884, offs=3) -- 16675(line=892, offs=4) */ ATSstaticdec() ats_void_type d2lab_app_04017_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; __ats_lab_d2lab_app_04017_: tmp299 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_d2lab_node) ; do { /* branch: __ats_lab_143 */ __ats_lab_143_0: if (((ats_sum_ptr_type)tmp299)->tag != 0) { goto __ats_lab_144_0 ; } __ats_lab_143_1: break ; /* branch: __ats_lab_144 */ __ats_lab_144_0: // if (((ats_sum_ptr_type)tmp299)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_144_1: tmp300 = ats_caselptrlab_mac(anairiats_sum_3, tmp299, atslab_0) ; /* tmp298 = */ d2explst_app_04014_ (tmp300, arg1) ; break ; } while (0) ; return /* (tmp298) */ ; } /* end of [d2lab_app_04017_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 16757(line=899, offs=3) -- 16803(line=899, offs=49) */ ATSstaticdec() ats_void_type d2lablst_app_04018_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp297) ; __ats_lab_d2lablst_app_04018_: /* tmp297 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &d2lab_app_04017_) ; return /* (tmp297) */ ; } /* end of [d2lablst_app_04018_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 2387(line=101, offs=3) -- 2433(line=101, offs=49) */ ATSstaticdec() ats_void_type d2varlst_app_03995_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp336) ; __ats_lab_d2varlst_app_03995_: /* tmp336 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app) ; return /* (tmp336) */ ; } /* end of [d2varlst_app_03995_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 9769(line=579, offs=3) -- 15770(line=832, offs=4) */ ATSstaticdec() ats_void_type d2exp_app_04013_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; // ATSlocal_void (tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; // ATSlocal_void (tmp178) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; // ATSlocal_void (tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; // ATSlocal_void (tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; // ATSlocal_void (tmp190) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_ptr_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; // ATSlocal_void (tmp205) ; // ATSlocal_void (tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; // ATSlocal_void (tmp268) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; // ATSlocal_void (tmp296) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; // ATSlocal_void (tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; // ATSlocal_void (tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; // ATSlocal_void (tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; // ATSlocal_void (tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; // ATSlocal_void (tmp320) ; // ATSlocal_void (tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; // ATSlocal_void (tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; // ATSlocal_void (tmp328) ; // ATSlocal_void (tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; // ATSlocal_void (tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; // ATSlocal_void (tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; // ATSlocal_void (tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; // ATSlocal_void (tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; // ATSlocal_void (tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; // ATSlocal_void (tmp355) ; // ATSlocal_void (tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; // ATSlocal_void (tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; ATSlocal (ats_ptr_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; // ATSlocal_void (tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; // ATSlocal_void (tmp368) ; // ATSlocal_void (tmp369) ; // ATSlocal_void (tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; // ATSlocal_void (tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; // ATSlocal_void (tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; __ats_lab_d2exp_app_04013_: tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_d2exp_node) ; do { /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp142)->tag != 0) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp143 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; /* tmp141 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2cst_app (tmp143, arg1) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp142)->tag != 1) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; /* tmp141 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp144, arg1) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp142)->tag != 2) { goto __ats_lab_62_0 ; } __ats_lab_61_1: break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp142)->tag != 3) { goto __ats_lab_63_0 ; } __ats_lab_62_1: break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp142)->tag != 4) { goto __ats_lab_64_0 ; } __ats_lab_63_1: break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp142)->tag != 5) { goto __ats_lab_65_0 ; } __ats_lab_64_1: break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp142)->tag != 6) { goto __ats_lab_66_0 ; } __ats_lab_65_1: break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp142)->tag != 7) { goto __ats_lab_67_0 ; } __ats_lab_66_1: break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp142)->tag != 8) { goto __ats_lab_68_0 ; } __ats_lab_67_1: break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp142)->tag != 9) { goto __ats_lab_69_0 ; } __ats_lab_68_1: break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp142)->tag != 10) { goto __ats_lab_70_0 ; } __ats_lab_69_1: break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp142)->tag != 11) { goto __ats_lab_71_0 ; } __ats_lab_70_1: break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp142)->tag != 12) { goto __ats_lab_72_0 ; } __ats_lab_71_1: break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp142)->tag != 13) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp145 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; /* tmp141 = */ s2exp_app_03983_ (tmp145, arg1) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp142)->tag != 14) { goto __ats_lab_74_0 ; } __ats_lab_73_1: break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp142)->tag != 15) { goto __ats_lab_75_0 ; } __ats_lab_74_1: break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp142)->tag != 16) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; /* tmp141 = */ s2exp_app_03983_ (tmp146, arg1) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp142)->tag != 17) { goto __ats_lab_77_0 ; } __ats_lab_76_1: break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp142)->tag != 18) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp147 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; /* tmp141 = */ s2exp_app_03983_ (tmp147, arg1) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp142)->tag != 19) { goto __ats_lab_81_0 ; } __ats_lab_78_1: tmp148 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_0) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_2) ; /* tmp150 = */ s2exp_app_03983_ (tmp148, arg1) ; /* tmp141 = */ d2explst_app_04014_ (tmp149, arg1) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp142)->tag != 20) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_0) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_1) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_3) ; /* tmp158 = */ s2exp_app_03983_ (tmp155, arg1) ; /* tmp159 = */ d2exp_app_04013_ (tmp156, arg1) ; /* tmp141 = */ d2explst_app_04014_ (tmp157, arg1) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp142)->tag != 21) { goto __ats_lab_86_0 ; } __ats_lab_82_1: tmp160 = ats_caselptrlab_mac(anairiats_sum_18, tmp142, atslab_0) ; tmp161 = ats_caselptrlab_mac(anairiats_sum_18, tmp142, atslab_2) ; tmp162 = ats_caselptrlab_mac(anairiats_sum_18, tmp142, atslab_5) ; /* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app (tmp160, arg1) ; /* tmp164 = */ s2exparglst_app_04006_ (tmp161, arg1) ; /* tmp141 = */ d2explst_app_04014_ (tmp162, arg1) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp142)->tag != 22) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp169 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; /* tmp141 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2sym_app (tmp169, arg1) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp142)->tag != 23) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp170 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp171 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp172 = */ s2exparglst_app_04006_ (tmp170, arg1) ; arg0 = tmp171 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp142)->tag != 24) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp173 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp174 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp175 = */ s2exparglst_app_04006_ (tmp173, arg1) ; arg0 = tmp174 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp142)->tag != 25) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp176 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp177 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp178 = */ d2exp_app_04013_ (tmp176, arg1) ; /* tmp141 = */ t2mpmarglst_app_04008_ (tmp177, arg1) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp142)->tag != 26) { goto __ats_lab_91_0 ; } __ats_lab_90_1: tmp182 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp183 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp184 = */ d2eclist_app_04030_ (tmp182, arg1) ; arg0 = tmp183 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp142)->tag != 27) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp185 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp186 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp187 = */ d2eclist_app_04030_ (tmp186, arg1) ; arg0 = tmp185 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)tmp142)->tag != 28) { goto __ats_lab_95_0 ; } __ats_lab_92_1: tmp188 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp189 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp190 = */ d2exp_app_04013_ (tmp188, arg1) ; /* tmp141 = */ d2exparglst_app_04020_ (tmp189, arg1) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp142)->tag != 29) { goto __ats_lab_98_0 ; } __ats_lab_95_1: tmp195 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_1) ; tmp196 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_2) ; tmp197 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_3) ; /* tmp198 = */ d2exp_app_04013_ (tmp195, arg1) ; /* tmp199 = */ d2exp_app_04013_ (tmp196, arg1) ; /* tmp141 = */ d2expopt_app_04016_ (tmp197, arg1) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp142)->tag != 30) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_1) ; tmp203 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_2) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_3) ; /* tmp205 = */ s2exp_app_03983_ (tmp202, arg1) ; /* tmp206 = */ d2exp_app_04013_ (tmp203, arg1) ; arg0 = tmp204 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp142)->tag != 31) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp207 = ats_caselptrlab_mac(anairiats_sum_11, tmp142, atslab_2) ; /* tmp141 = */ i2fclist_app_04022_ (tmp207, arg1) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp142)->tag != 32) { goto __ats_lab_129_0 ; } __ats_lab_100_1: tmp213 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_2) ; tmp214 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_3) ; /* tmp215 = */ d2explst_app_04014_ (tmp213, arg1) ; /* tmp141 = */ c2laulst_app_04026_ (tmp214, arg1) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: if (((ats_sum_ptr_type)tmp142)->tag != 33) { goto __ats_lab_132_0 ; } __ats_lab_129_1: tmp266 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_1) ; tmp267 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_2) ; /* tmp268 = */ s2exp_app_03983_ (tmp266, arg1) ; /* tmp141 = */ sc2laulst_app_04028_ (tmp267, arg1) ; break ; /* branch: __ats_lab_132 */ __ats_lab_132_0: if (((ats_sum_ptr_type)tmp142)->tag != 34) { goto __ats_lab_133_0 ; } __ats_lab_132_1: tmp279 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; arg0 = tmp279 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_133 */ __ats_lab_133_0: if (((ats_sum_ptr_type)tmp142)->tag != 35) { goto __ats_lab_134_0 ; } __ats_lab_133_1: tmp280 = ats_caselptrlab_mac(anairiats_sum_7, tmp142, atslab_1) ; /* tmp141 = */ d2explst_app_04014_ (tmp280, arg1) ; break ; /* branch: __ats_lab_134 */ __ats_lab_134_0: if (((ats_sum_ptr_type)tmp142)->tag != 36) { goto __ats_lab_137_0 ; } __ats_lab_134_1: tmp281 = ats_caselptrlab_mac(anairiats_sum_11, tmp142, atslab_1) ; tmp282 = ats_caselptrlab_mac(anairiats_sum_11, tmp142, atslab_2) ; /* tmp283 = */ s2expopt_app_03988_ (tmp281, arg1) ; /* tmp141 = */ d2explst_app_04014_ (tmp282, arg1) ; break ; /* branch: __ats_lab_137 */ __ats_lab_137_0: if (((ats_sum_ptr_type)tmp142)->tag != 37) { goto __ats_lab_138_0 ; } __ats_lab_137_1: tmp286 = ats_caselptrlab_mac(anairiats_sum_26, tmp142, atslab_2) ; /* tmp141 = */ d2explst_app_04014_ (tmp286, arg1) ; break ; /* branch: __ats_lab_138 */ __ats_lab_138_0: if (((ats_sum_ptr_type)tmp142)->tag != 38) { goto __ats_lab_141_0 ; } __ats_lab_138_1: tmp287 = ats_caselptrlab_mac(anairiats_sum_26, tmp142, atslab_2) ; /* tmp141 = */ labd2explst_app_04015_ (tmp287, arg1) ; break ; /* branch: __ats_lab_141 */ __ats_lab_141_0: if (((ats_sum_ptr_type)tmp142)->tag != 39) { goto __ats_lab_142_0 ; } __ats_lab_141_1: tmp293 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; /* tmp141 = */ d2explst_app_04014_ (tmp293, arg1) ; break ; /* branch: __ats_lab_142 */ __ats_lab_142_0: if (((ats_sum_ptr_type)tmp142)->tag != 40) { goto __ats_lab_145_0 ; } __ats_lab_142_1: tmp294 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp295 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp296 = */ d2exp_app_04013_ (tmp294, arg1) ; /* tmp141 = */ d2lablst_app_04018_ (tmp295, arg1) ; break ; /* branch: __ats_lab_145 */ __ats_lab_145_0: if (((ats_sum_ptr_type)tmp142)->tag != 41) { goto __ats_lab_146_0 ; } __ats_lab_145_1: tmp301 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; arg0 = tmp301 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_146 */ __ats_lab_146_0: if (((ats_sum_ptr_type)tmp142)->tag != 42) { goto __ats_lab_147_0 ; } __ats_lab_146_1: tmp302 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; arg0 = tmp302 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_147 */ __ats_lab_147_0: if (((ats_sum_ptr_type)tmp142)->tag != 67) { goto __ats_lab_148_0 ; } __ats_lab_147_1: tmp303 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp304 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp305 = */ d2exp_app_04013_ (tmp303, arg1) ; /* tmp141 = */ s2exp_app_03983_ (tmp304, arg1) ; break ; /* branch: __ats_lab_148 */ __ats_lab_148_0: if (((ats_sum_ptr_type)tmp142)->tag != 68) { goto __ats_lab_149_0 ; } __ats_lab_148_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; arg0 = tmp306 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_149 */ __ats_lab_149_0: if (((ats_sum_ptr_type)tmp142)->tag != 69) { goto __ats_lab_150_0 ; } __ats_lab_149_1: tmp307 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; arg0 = tmp307 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_150 */ __ats_lab_150_0: if (((ats_sum_ptr_type)tmp142)->tag != 43) { goto __ats_lab_151_0 ; } __ats_lab_150_1: tmp308 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp309 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp310 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2sym_app (tmp308, arg1) ; arg0 = tmp309 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_151 */ __ats_lab_151_0: if (((ats_sum_ptr_type)tmp142)->tag != 44) { goto __ats_lab_152_0 ; } __ats_lab_151_1: tmp311 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp312 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp313 = */ d2exp_app_04013_ (tmp311, arg1) ; arg0 = tmp312 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_152 */ __ats_lab_152_0: if (((ats_sum_ptr_type)tmp142)->tag != 45) { goto __ats_lab_153_0 ; } __ats_lab_152_1: tmp314 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp315 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp316 = */ d2exp_app_04013_ (tmp314, arg1) ; arg0 = tmp315 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_153 */ __ats_lab_153_0: if (((ats_sum_ptr_type)tmp142)->tag != 46) { goto __ats_lab_154_0 ; } __ats_lab_153_1: tmp317 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_0) ; tmp318 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_1) ; tmp319 = ats_caselptrlab_mac(anairiats_sum_17, tmp142, atslab_3) ; /* tmp320 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2sym_app (tmp317, arg1) ; /* tmp321 = */ d2exp_app_04013_ (tmp318, arg1) ; /* tmp141 = */ d2explst_app_04014_ (tmp319, arg1) ; break ; /* branch: __ats_lab_154 */ __ats_lab_154_0: if (((ats_sum_ptr_type)tmp142)->tag != 47) { goto __ats_lab_155_0 ; } __ats_lab_154_1: tmp322 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp323 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp324 = */ s2expopt_app_03988_ (tmp322, arg1) ; /* tmp141 = */ d2explst_app_04014_ (tmp323, arg1) ; break ; /* branch: __ats_lab_155 */ __ats_lab_155_0: if (((ats_sum_ptr_type)tmp142)->tag != 48) { goto __ats_lab_156_0 ; } __ats_lab_155_1: tmp325 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_0) ; tmp326 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_1) ; tmp327 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_2) ; /* tmp328 = */ s2exp_app_03983_ (tmp325, arg1) ; /* tmp329 = */ d2expopt_app_04016_ (tmp326, arg1) ; /* tmp141 = */ d2explst_app_04014_ (tmp327, arg1) ; break ; /* branch: __ats_lab_156 */ __ats_lab_156_0: if (((ats_sum_ptr_type)tmp142)->tag != 49) { goto __ats_lab_157_0 ; } __ats_lab_156_1: tmp330 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; arg0 = tmp330 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_157 */ __ats_lab_157_0: if (((ats_sum_ptr_type)tmp142)->tag != 50) { goto __ats_lab_158_0 ; } __ats_lab_157_1: tmp331 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; arg0 = tmp331 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_158 */ __ats_lab_158_0: if (((ats_sum_ptr_type)tmp142)->tag != 51) { goto __ats_lab_159_0 ; } __ats_lab_158_1: tmp332 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; /* tmp141 = */ d2explst_app_04014_ (tmp332, arg1) ; break ; /* branch: __ats_lab_159 */ __ats_lab_159_0: if (((ats_sum_ptr_type)tmp142)->tag != 52) { goto __ats_lab_160_0 ; } __ats_lab_159_1: tmp333 = ats_caselptrlab_mac(anairiats_sum_7, tmp142, atslab_1) ; arg0 = tmp333 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_160 */ __ats_lab_160_0: if (((ats_sum_ptr_type)tmp142)->tag != 53) { goto __ats_lab_161_0 ; } __ats_lab_160_1: tmp334 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; arg0 = tmp334 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_161 */ __ats_lab_161_0: if (((ats_sum_ptr_type)tmp142)->tag != 54) { goto __ats_lab_162_0 ; } __ats_lab_161_1: tmp335 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; /* tmp141 = */ d2varlst_app_03995_ (tmp335, arg1) ; break ; /* branch: __ats_lab_162 */ __ats_lab_162_0: if (((ats_sum_ptr_type)tmp142)->tag != 55) { goto __ats_lab_163_0 ; } __ats_lab_162_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp338 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp339 = */ s2exparg_app_04005_ (tmp337, arg1) ; arg0 = tmp338 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_163 */ __ats_lab_163_0: if (((ats_sum_ptr_type)tmp142)->tag != 56) { goto __ats_lab_164_0 ; } __ats_lab_163_1: tmp340 = ats_caselptrlab_mac(anairiats_sum_32, tmp142, atslab_2) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_32, tmp142, atslab_3) ; /* tmp342 = */ p2atlst_app_04010_ (tmp340, arg1) ; arg0 = tmp341 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_164 */ __ats_lab_164_0: if (((ats_sum_ptr_type)tmp142)->tag != 57) { goto __ats_lab_165_0 ; } __ats_lab_164_1: tmp343 = ats_caselptrlab_mac(anairiats_sum_32, tmp142, atslab_2) ; tmp344 = ats_caselptrlab_mac(anairiats_sum_32, tmp142, atslab_3) ; /* tmp345 = */ p2atlst_app_04010_ (tmp343, arg1) ; arg0 = tmp344 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_165 */ __ats_lab_165_0: if (((ats_sum_ptr_type)tmp142)->tag != 59) { goto __ats_lab_166_0 ; } __ats_lab_165_1: tmp346 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_0) ; tmp347 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_1) ; tmp348 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_2) ; tmp350 = ats_ptrget_mac(ats_ptr_type, tmp346) ; /* tmp349 = */ d2varlst_app_03995_ (tmp350, arg1) ; /* tmp351 = */ s2explst_app_03984_ (tmp347, arg1) ; arg0 = tmp348 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_166 */ __ats_lab_166_0: if (((ats_sum_ptr_type)tmp142)->tag != 58) { goto __ats_lab_167_0 ; } __ats_lab_166_1: tmp352 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_0) ; tmp353 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_1) ; tmp354 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_2) ; /* tmp355 = */ s2varlst_app_03981_ (tmp352, arg1) ; /* tmp356 = */ s2explst_app_03984_ (tmp353, arg1) ; arg0 = tmp354 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_167 */ __ats_lab_167_0: if (((ats_sum_ptr_type)tmp142)->tag != 60) { goto __ats_lab_168_0 ; } __ats_lab_167_1: tmp357 = ats_caselptrlab_mac(anairiats_sum_11, tmp142, atslab_1) ; tmp358 = ats_caselptrlab_mac(anairiats_sum_11, tmp142, atslab_2) ; /* tmp359 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp357, arg1) ; arg0 = tmp358 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_168 */ __ats_lab_168_0: if (((ats_sum_ptr_type)tmp142)->tag != 61) { goto __ats_lab_169_0 ; } __ats_lab_168_1: tmp360 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; arg0 = tmp360 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_169 */ __ats_lab_169_0: if (((ats_sum_ptr_type)tmp142)->tag != 62) { goto __ats_lab_170_0 ; } __ats_lab_169_1: tmp361 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_0) ; tmp362 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp363 = */ d2exp_app_04013_ (tmp361, arg1) ; /* tmp141 = */ d2expopt_app_04016_ (tmp362, arg1) ; break ; /* branch: __ats_lab_170 */ __ats_lab_170_0: if (((ats_sum_ptr_type)tmp142)->tag != 63) { goto __ats_lab_171_0 ; } __ats_lab_170_1: tmp364 = ats_caselptrlab_mac(anairiats_sum_33, tmp142, atslab_1) ; tmp365 = ats_caselptrlab_mac(anairiats_sum_33, tmp142, atslab_2) ; tmp366 = ats_caselptrlab_mac(anairiats_sum_33, tmp142, atslab_3) ; tmp367 = ats_caselptrlab_mac(anairiats_sum_33, tmp142, atslab_4) ; /* tmp368 = */ d2exp_app_04013_ (tmp364, arg1) ; /* tmp369 = */ d2exp_app_04013_ (tmp365, arg1) ; /* tmp370 = */ d2exp_app_04013_ (tmp366, arg1) ; arg0 = tmp367 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_171 */ __ats_lab_171_0: if (((ats_sum_ptr_type)tmp142)->tag != 64) { goto __ats_lab_172_0 ; } __ats_lab_171_1: tmp371 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_1) ; tmp372 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_2) ; /* tmp373 = */ d2exp_app_04013_ (tmp371, arg1) ; arg0 = tmp372 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_172 */ __ats_lab_172_0: if (((ats_sum_ptr_type)tmp142)->tag != 65) { goto __ats_lab_173_0 ; } __ats_lab_172_1: break ; /* branch: __ats_lab_173 */ __ats_lab_173_0: if (((ats_sum_ptr_type)tmp142)->tag != 66) { goto __ats_lab_174_0 ; } __ats_lab_173_1: tmp374 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_1) ; tmp375 = ats_caselptrlab_mac(anairiats_sum_5, tmp142, atslab_2) ; /* tmp376 = */ d2exp_app_04013_ (tmp374, arg1) ; /* tmp141 = */ c2laulst_app_04026_ (tmp375, arg1) ; break ; /* branch: __ats_lab_174 */ __ats_lab_174_0: if (((ats_sum_ptr_type)tmp142)->tag != 74) { goto __ats_lab_175_0 ; } __ats_lab_174_1: break ; /* branch: __ats_lab_175 */ __ats_lab_175_0: if (((ats_sum_ptr_type)tmp142)->tag != 73) { goto __ats_lab_176_0 ; } __ats_lab_175_1: tmp377 = ats_caselptrlab_mac(anairiats_sum_3, tmp142, atslab_0) ; arg0 = tmp377 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_176 */ __ats_lab_176_0: if (((ats_sum_ptr_type)tmp142)->tag != 70) { goto __ats_lab_177_0 ; } __ats_lab_176_1: break ; /* branch: __ats_lab_177 */ __ats_lab_177_0: if (((ats_sum_ptr_type)tmp142)->tag != 71) { goto __ats_lab_178_0 ; } __ats_lab_177_1: tmp378 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; arg0 = tmp378 ; arg1 = arg1 ; goto __ats_lab_d2exp_app_04013_ ; // tail call break ; /* branch: __ats_lab_178 */ __ats_lab_178_0: if (((ats_sum_ptr_type)tmp142)->tag != 72) { goto __ats_lab_179_0 ; } __ats_lab_178_1: tmp379 = ats_caselptrlab_mac(anairiats_sum_4, tmp142, atslab_1) ; /* tmp141 = */ d2explst_app_04014_ (tmp379, arg1) ; break ; /* branch: __ats_lab_179 */ __ats_lab_179_0: // if (((ats_sum_ptr_type)tmp142)->tag != 75) { ats_deadcode_failure_handle () ; } __ats_lab_179_1: break ; } while (0) ; return /* (tmp141) */ ; } /* end of [d2exp_app_04013_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 3629(line=177, offs=1) -- 3922(line=192, offs=2) */ ATSstaticdec() ats_void_type auxlst_dcon_51 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; // ATSlocal_void (tmp385) ; ATSlocal (ats_ptr_type, tmp386) ; // ATSlocal_void (tmp387) ; __ats_lab_auxlst_dcon_51: do { /* branch: __ats_lab_182 */ __ats_lab_182_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_183_0 ; } __ats_lab_182_1: break ; /* branch: __ats_lab_183 */ __ats_lab_183_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_183_1: tmp383 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp384 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; /* tmp385 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2con_app (tmp383, arg1) ; tmp386 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_type (tmp383) ; /* tmp387 = */ s2exp_app_03983_ (tmp386, arg1) ; arg0 = tmp384 ; arg1 = arg1 ; goto __ats_lab_auxlst_dcon_51 ; // tail call break ; } while (0) ; return /* (tmp382) */ ; } /* end of [auxlst_dcon_51] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 3957(line=195, offs=1) -- 4324(line=214, offs=2) */ ATSstaticdec() ats_void_type auxlst_scst_52 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; // ATSlocal_void (tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; __ats_lab_auxlst_scst_52: do { /* branch: __ats_lab_184 */ __ats_lab_184_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_185_0 ; } __ats_lab_184_1: break ; /* branch: __ats_lab_185 */ __ats_lab_185_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_185_1: tmp389 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp390 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (tmp389) ; do { /* branch: __ats_lab_186 */ __ats_lab_186_0: if (tmp391 != (ats_sum_ptr_type)0) { goto __ats_lab_187_0 ; } __ats_lab_186_1: break ; /* branch: __ats_lab_187 */ __ats_lab_187_0: // if (tmp391 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_187_1: tmp393 = ats_caselptrlab_mac(anairiats_sum_14, tmp391, atslab_0) ; /* tmp392 = */ auxlst_dcon_51 (tmp393, arg1) ; break ; } while (0) ; arg0 = tmp390 ; arg1 = arg1 ; goto __ats_lab_auxlst_scst_52 ; // tail call break ; } while (0) ; return /* (tmp388) */ ; } /* end of [auxlst_scst_52] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 3604(line=174, offs=3) -- 4424(line=220, offs=4) */ ATSstaticdec() ats_void_type d2atdecs_app_04002_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp381) ; // ATSlocal_void (tmp394) ; __ats_lab_d2atdecs_app_04002_: /* tmp394 = */ s2cstlst_app_03980_ (arg0, arg1) ; /* tmp381 = */ auxlst_scst_52 (arg0, arg1) ; return /* (tmp381) */ ; } /* end of [d2atdecs_app_04002_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 2279(line=94, offs=3) -- 2325(line=94, offs=49) */ ATSstaticdec() ats_void_type d2cstlst_app_03994_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp398) ; __ats_lab_d2cstlst_app_03994_: /* tmp398 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2cst_app) ; return /* (tmp398) */ ; } /* end of [d2cstlst_app_03994_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 4508(line=227, offs=3) -- 4895(line=252, offs=4) */ ATSstaticdec() ats_void_type d2cstdecs_app_04003_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp397) ; __ats_lab_d2cstdecs_app_04003_: /* tmp397 = */ d2cstlst_app_03994_ (arg0, arg1) ; return /* (tmp397) */ ; } /* end of [d2cstdecs_app_04003_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 20109(line=1081, offs=3) -- 20383(line=1090, offs=2) */ ATSstaticdec() ats_void_type i2mpdec_app_04031_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp400) ; // ATSlocal_void (tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; // ATSlocal_void (tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; // ATSlocal_void (tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; // ATSlocal_void (tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; __ats_lab_i2mpdec_app_04031_: tmp402 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_i2mpdec_cst) ; /* tmp401 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2cst_app (tmp402, arg1) ; tmp404 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_i2mpdec_imparg) ; /* tmp403 = */ s2varlst_app_03981_ (tmp404, arg1) ; tmp406 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_i2mpdec_tmparg) ; /* tmp405 = */ s2explstlst_app_03985_ (tmp406, arg1) ; tmp408 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_i2mpdec_tmpgua) ; /* tmp407 = */ s2explstlst_app_03985_ (tmp408, arg1) ; tmp409 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_i2mpdec_def) ; /* tmp400 = */ d2exp_app_04013_ (tmp409, arg1) ; return /* (tmp400) */ ; } /* end of [i2mpdec_app_04031_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 20466(line=1097, offs=3) -- 20617(line=1104, offs=2) */ ATSstaticdec() ats_void_type f2undec_app_04032_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp414) ; // ATSlocal_void (tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; // ATSlocal_void (tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; __ats_lab_f2undec_app_04032_: tmp416 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_f2undec_var) ; /* tmp415 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp416, arg1) ; tmp418 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_f2undec_def) ; /* tmp417 = */ d2exp_app_04013_ (tmp418, arg1) ; tmp419 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_f2undec_ann) ; /* tmp414 = */ s2expopt_app_03988_ (tmp419, arg1) ; return /* (tmp414) */ ; } /* end of [f2undec_app_04032_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 20685(line=1109, offs=3) -- 20733(line=1109, offs=51) */ ATSstaticdec() ats_void_type f2undeclst_app_04033_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp413) ; __ats_lab_f2undeclst_app_04033_: /* tmp413 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &f2undec_app_04032_) ; return /* (tmp413) */ ; } /* end of [f2undeclst_app_04033_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 20794(line=1116, offs=3) -- 20944(line=1123, offs=2) */ ATSstaticdec() ats_void_type v2aldec_app_04034_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp422) ; // ATSlocal_void (tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; // ATSlocal_void (tmp425) ; ATSlocal (ats_ptr_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; __ats_lab_v2aldec_app_04034_: tmp424 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg0), atslab_v2aldec_pat) ; /* tmp423 = */ p2at_app_04009_ (tmp424, arg1) ; tmp426 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg0), atslab_v2aldec_def) ; /* tmp425 = */ d2exp_app_04013_ (tmp426, arg1) ; tmp427 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_37, arg0), atslab_v2aldec_ann) ; /* tmp422 = */ s2expopt_app_03988_ (tmp427, arg1) ; return /* (tmp422) */ ; } /* end of [v2aldec_app_04034_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 21012(line=1128, offs=3) -- 21060(line=1128, offs=51) */ ATSstaticdec() ats_void_type v2aldeclst_app_04035_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp421) ; __ats_lab_v2aldeclst_app_04035_: /* tmp421 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &v2aldec_app_04034_) ; return /* (tmp421) */ ; } /* end of [v2aldeclst_app_04035_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 2493(line=108, offs=3) -- 2573(line=111, offs=53) */ ATSstaticdec() ats_void_type d2varopt_app_03996_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; __ats_lab_d2varopt_app_03996_: do { /* branch: __ats_lab_195 */ __ats_lab_195_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_196_0 ; } __ats_lab_195_1: tmp438 = ats_caselptrlab_mac(anairiats_sum_14, arg0, atslab_0) ; /* tmp437 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp438, arg1) ; break ; /* branch: __ats_lab_196 */ __ats_lab_196_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_196_1: break ; } while (0) ; return /* (tmp437) */ ; } /* end of [d2varopt_app_03996_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 21121(line=1135, offs=3) -- 21416(line=1145, offs=2) */ ATSstaticdec() ats_void_type v2ardec_app_04036_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp431) ; // ATSlocal_void (tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; // ATSlocal_void (tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; // ATSlocal_void (tmp436) ; ATSlocal (ats_ptr_type, tmp439) ; // ATSlocal_void (tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; // ATSlocal_void (tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; __ats_lab_v2ardec_app_04036_: tmp433 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v2ardec_svar) ; /* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__s2var_app (tmp433, arg1) ; tmp435 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v2ardec_dvar) ; /* tmp434 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp435, arg1) ; tmp439 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v2ardec_pfat) ; /* tmp436 = */ d2varopt_app_03996_ (tmp439, arg1) ; tmp441 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v2ardec_type) ; /* tmp440 = */ s2expopt_app_03988_ (tmp441, arg1) ; tmp443 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v2ardec_init) ; /* tmp442 = */ d2expopt_app_04016_ (tmp443, arg1) ; tmp444 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_38, arg0), atslab_v2ardec_dvaropt) ; /* tmp431 = */ d2varopt_app_03996_ (tmp444, arg1) ; return /* (tmp431) */ ; } /* end of [v2ardec_app_04036_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 21484(line=1150, offs=3) -- 21532(line=1150, offs=51) */ ATSstaticdec() ats_void_type v2ardeclst_app_04037_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp430) ; __ats_lab_v2ardeclst_app_04037_: /* tmp430 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &v2ardec_app_04036_) ; return /* (tmp430) */ ; } /* end of [v2ardeclst_app_04037_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 21595(line=1157, offs=3) -- 21762(line=1164, offs=2) */ ATSstaticdec() ats_void_type prv2ardec_app_04038_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp447) ; // ATSlocal_void (tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; // ATSlocal_void (tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; ATSlocal (ats_ptr_type, tmp452) ; __ats_lab_prv2ardec_app_04038_: tmp449 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_prv2ardec_dvar) ; /* tmp448 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__d2var_app (tmp449, arg1) ; tmp451 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_prv2ardec_type) ; /* tmp450 = */ s2expopt_app_03988_ (tmp451, arg1) ; tmp452 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_39, arg0), atslab_prv2ardec_init) ; /* tmp447 = */ d2expopt_app_04016_ (tmp452, arg1) ; return /* (tmp447) */ ; } /* end of [prv2ardec_app_04038_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 21834(line=1169, offs=3) -- 21884(line=1169, offs=53) */ ATSstaticdec() ats_void_type prv2ardeclst_app_04039_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp446) ; __ats_lab_prv2ardeclst_app_04039_: /* tmp446 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (arg0, arg1, &prv2ardec_app_04038_) ; return /* (tmp446) */ ; } /* end of [prv2ardeclst_app_04039_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 18352(line=992, offs=3) -- 19771(line=1053, offs=4) */ ATSstaticdec() ats_void_type d2ecl_app_04029_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; // ATSlocal_void (tmp412) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; // ATSlocal_void (tmp455) ; __ats_lab_d2ecl_app_04029_: tmp121 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_d2ecl_node) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp121)->tag != 0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp121)->tag != 1) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp122 = ats_caselptrlab_mac(anairiats_sum_3, tmp121, atslab_0) ; /* tmp120 = */ d2eclist_app_04030_ (tmp122, arg1) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp121)->tag != 2) { goto __ats_lab_44_0 ; } __ats_lab_43_1: break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp121)->tag != 3) { goto __ats_lab_45_0 ; } __ats_lab_44_1: break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp121)->tag != 4) { goto __ats_lab_55_0 ; } __ats_lab_45_1: tmp123 = ats_caselptrlab_mac(anairiats_sum_8, tmp121, atslab_2) ; /* tmp120 = */ d2itmopt_app_03999_ (tmp123, arg1) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp121)->tag != 7) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_3, tmp121, atslab_0) ; /* tmp120 = */ s2cstlst_app_03980_ (tmp136, arg1) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp121)->tag != 8) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_7, tmp121, atslab_1) ; /* tmp120 = */ s2cstlst_app_03980_ (tmp138, arg1) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp121)->tag != 11) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_4, tmp121, atslab_1) ; /* tmp120 = */ s2exp_app_03983_ (tmp139, arg1) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp121)->tag != 12) { goto __ats_lab_180_0 ; } __ats_lab_58_1: tmp140 = ats_caselptrlab_mac(anairiats_sum_4, tmp121, atslab_1) ; /* tmp120 = */ d2exp_app_04013_ (tmp140, arg1) ; break ; /* branch: __ats_lab_180 */ __ats_lab_180_0: if (((ats_sum_ptr_type)tmp121)->tag != 13) { goto __ats_lab_181_0 ; } __ats_lab_180_1: break ; /* branch: __ats_lab_181 */ __ats_lab_181_0: if (((ats_sum_ptr_type)tmp121)->tag != 14) { goto __ats_lab_188_0 ; } __ats_lab_181_1: tmp380 = ats_caselptrlab_mac(anairiats_sum_7, tmp121, atslab_1) ; /* tmp120 = */ d2atdecs_app_04002_ (tmp380, arg1) ; break ; /* branch: __ats_lab_188 */ __ats_lab_188_0: if (((ats_sum_ptr_type)tmp121)->tag != 15) { goto __ats_lab_189_0 ; } __ats_lab_188_1: tmp395 = ats_caselptrlab_mac(anairiats_sum_3, tmp121, atslab_0) ; /* tmp120 = */ d2conlst_app_03982_ (tmp395, arg1) ; break ; /* branch: __ats_lab_189 */ __ats_lab_189_0: if (((ats_sum_ptr_type)tmp121)->tag != 16) { goto __ats_lab_190_0 ; } __ats_lab_189_1: tmp396 = ats_caselptrlab_mac(anairiats_sum_11, tmp121, atslab_2) ; /* tmp120 = */ d2cstdecs_app_04003_ (tmp396, arg1) ; break ; /* branch: __ats_lab_190 */ __ats_lab_190_0: if (((ats_sum_ptr_type)tmp121)->tag != 17) { goto __ats_lab_191_0 ; } __ats_lab_190_1: tmp399 = ats_caselptrlab_mac(anairiats_sum_7, tmp121, atslab_1) ; /* tmp120 = */ i2mpdec_app_04031_ (tmp399, arg1) ; break ; /* branch: __ats_lab_191 */ __ats_lab_191_0: if (((ats_sum_ptr_type)tmp121)->tag != 18) { goto __ats_lab_192_0 ; } __ats_lab_191_1: tmp410 = ats_caselptrlab_mac(anairiats_sum_5, tmp121, atslab_1) ; tmp411 = ats_caselptrlab_mac(anairiats_sum_5, tmp121, atslab_2) ; /* tmp412 = */ s2qualst_app_03989_ (tmp410, arg1) ; /* tmp120 = */ f2undeclst_app_04033_ (tmp411, arg1) ; break ; /* branch: __ats_lab_192 */ __ats_lab_192_0: if (((ats_sum_ptr_type)tmp121)->tag != 19) { goto __ats_lab_193_0 ; } __ats_lab_192_1: tmp420 = ats_caselptrlab_mac(anairiats_sum_4, tmp121, atslab_1) ; /* tmp120 = */ v2aldeclst_app_04035_ (tmp420, arg1) ; break ; /* branch: __ats_lab_193 */ __ats_lab_193_0: if (((ats_sum_ptr_type)tmp121)->tag != 20) { goto __ats_lab_194_0 ; } __ats_lab_193_1: tmp428 = ats_caselptrlab_mac(anairiats_sum_4, tmp121, atslab_1) ; /* tmp120 = */ v2aldeclst_app_04035_ (tmp428, arg1) ; break ; /* branch: __ats_lab_194 */ __ats_lab_194_0: if (((ats_sum_ptr_type)tmp121)->tag != 21) { goto __ats_lab_197_0 ; } __ats_lab_194_1: tmp429 = ats_caselptrlab_mac(anairiats_sum_3, tmp121, atslab_0) ; /* tmp120 = */ v2ardeclst_app_04037_ (tmp429, arg1) ; break ; /* branch: __ats_lab_197 */ __ats_lab_197_0: if (((ats_sum_ptr_type)tmp121)->tag != 22) { goto __ats_lab_198_0 ; } __ats_lab_197_1: tmp445 = ats_caselptrlab_mac(anairiats_sum_3, tmp121, atslab_0) ; /* tmp120 = */ prv2ardeclst_app_04039_ (tmp445, arg1) ; break ; /* branch: __ats_lab_198 */ __ats_lab_198_0: if (((ats_sum_ptr_type)tmp121)->tag != 23) { goto __ats_lab_199_0 ; } __ats_lab_198_1: break ; /* branch: __ats_lab_199 */ __ats_lab_199_0: if (((ats_sum_ptr_type)tmp121)->tag != 24) { goto __ats_lab_200_0 ; } __ats_lab_199_1: break ; /* branch: __ats_lab_200 */ __ats_lab_200_0: if (((ats_sum_ptr_type)tmp121)->tag != 25) { goto __ats_lab_201_0 ; } __ats_lab_200_1: break ; /* branch: __ats_lab_201 */ __ats_lab_201_0: if (((ats_sum_ptr_type)tmp121)->tag != 26) { goto __ats_lab_202_0 ; } __ats_lab_201_1: break ; /* branch: __ats_lab_202 */ __ats_lab_202_0: if (((ats_sum_ptr_type)tmp121)->tag != 27) { goto __ats_lab_203_0 ; } __ats_lab_202_1: tmp453 = ats_caselptrlab_mac(anairiats_sum_4, tmp121, atslab_0) ; tmp454 = ats_caselptrlab_mac(anairiats_sum_4, tmp121, atslab_1) ; /* tmp455 = */ d2eclist_app_04030_ (tmp453, arg1) ; /* tmp120 = */ d2eclist_app_04030_ (tmp454, arg1) ; break ; /* branch: __ats_lab_203 */ __ats_lab_203_0: if (((ats_sum_ptr_type)tmp121)->tag != 28) { goto __ats_lab_204_0 ; } __ats_lab_203_1: break ; /* branch: __ats_lab_204 */ __ats_lab_204_0: __ats_lab_204_1: break ; } while (0) ; return /* (tmp120) */ ; } /* end of [d2ecl_app_04029_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_appenv.hats: 19863(line=1064, offs=3) -- 20024(line=1074, offs=4) */ ATSstaticdec() ats_void_type d2eclist_app_04030_ (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; // ATSlocal_void (tmp119) ; __ats_lab_d2eclist_app_04030_: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; /* tmp119 = */ d2ecl_app_04029_ (tmp117, arg1) ; arg0 = tmp118 ; arg1 = arg1 ; goto __ats_lab_d2eclist_app_04030_ ; // tail call break ; } while (0) ; return /* (tmp116) */ ; } /* end of [d2eclist_app_04030_] */ /* // /tmp/ATS-Postiats/src/pats_dynexp2_mapgen.dats: 4271(line=207, offs=3) -- 4767(line=235, offs=4) */ ATSglobaldec() anairiats_rec_12 _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2eclist_mapgen_all (ats_ptr_type arg0) { /* local vardec */ ATSlocal (anairiats_rec_12, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; // ATSlocal_void (tmp115) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2eclist_mapgen_all: tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_nil () ; tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil () ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil () ; tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2conset_vt_nil () ; tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cstset_vt_nil () ; tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil () ; tmp114 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp114, atslab_0, tmp108) ; ats_selptrset_mac(anairiats_sum_1, tmp114, atslab_1, tmp109) ; ats_selptrset_mac(anairiats_sum_1, tmp114, atslab_2, tmp110) ; ats_selptrset_mac(anairiats_sum_1, tmp114, atslab_3, tmp111) ; ats_selptrset_mac(anairiats_sum_1, tmp114, atslab_4, tmp112) ; ats_selptrset_mac(anairiats_sum_1, tmp114, atslab_5, tmp113) ; /* tmp115 = */ d2eclist_app_04030_ (arg0, ats_castfn_mac(ats_ptr_type, tmp114)) ; // tmp456 = ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp114)), atslab_0) ; tmp457 = ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp114)), atslab_1) ; tmp458 = ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp114)), atslab_2) ; tmp459 = ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp114)), atslab_3) ; tmp460 = ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp114)), atslab_4) ; tmp461 = ats_caselptrlab_mac(anairiats_sum_1, ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp114)), atslab_5) ; ATS_FREE(ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp114))) ; tmp107.atslab_0 = tmp456 ; tmp107.atslab_1 = tmp457 ; tmp107.atslab_2 = tmp458 ; tmp107.atslab_3 = tmp459 ; tmp107.atslab_4 = tmp460 ; tmp107.atslab_5 = tmp461 ; return (tmp107) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2eclist_mapgen_all] */ /* 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_jsonize_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_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_jsonize_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__MYENV_0.tag = 0 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_mapgen_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp2_mapgen_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_ccomp_decl_dats.c0000644000175000017500000040165113431250607022624 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_hidecl_loc ; ats_ptr_type atslab_hidecl_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_hiimpdec_loc ; ats_int_type atslab_hiimpdec_knd ; ats_ptr_type atslab_hiimpdec_cst ; ats_ptr_type atslab_hiimpdec_imparg ; ats_ptr_type atslab_hiimpdec_tmparg ; ats_ptr_type atslab_hiimpdec_def ; ats_ptr_type atslab_hiimpdec_funlab ; ats_ptr_type atslab_hiimpdec_instrlst ; } anairiats_rec_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_9 ; typedef struct { ats_ptr_type atslab_hifundec_loc ; ats_ptr_type atslab_hifundec_var ; ats_ptr_type atslab_hifundec_imparg ; ats_ptr_type atslab_hifundec_def ; ats_ptr_type atslab_hifundec_hidecl ; ats_ptr_type atslab_hifundec_funlab ; } anairiats_rec_10 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_hidexp_loc ; ats_ptr_type atslab_hidexp_type ; ats_ptr_type atslab_hidexp_node ; } anairiats_rec_12 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_13 ; typedef struct { ats_ptr_type atslab_hivaldec_loc ; ats_ptr_type atslab_hivaldec_pat ; ats_ptr_type atslab_hivaldec_def ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_hipat_loc ; ats_ptr_type atslab_hipat_type ; ats_ptr_type atslab_hipat_node ; ats_ptr_type atslab_hipat_asvar ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_hivardec_loc ; ats_int_type atslab_hivardec_knd ; ats_ptr_type atslab_hivardec_dvar_ptr ; ats_ptr_type atslab_hivardec_dvar_view ; ats_ptr_type atslab_hivardec_type ; ats_ptr_type atslab_hivardec_init ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_17 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_pos_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpcst_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElam_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfix_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDsaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDreassume_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextcode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDexndecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdatdecs_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdcstdecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDfundecs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_rec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvardecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDinclude_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaload_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaloadloc_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdynload_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlocal_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTcaseof_fail_4) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_print_newline) () ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool1) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_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_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_funclo) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_add) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ref) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dvar_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_tmpcst_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret) (ats_ptr_type) ; ATSextern_fun(ats_void_type, patsopt_funent_set_fnxlablst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_list) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_saspdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_datdecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_exndecs) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_fundecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_vardecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_impdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_include) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staloadloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_dynload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_local) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_dcstdef) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_set_funlabopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_funlabopt) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_funlabopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_instrlstopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_make) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmplevel) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmplevel) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv_fnx) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_localjoin) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_staload) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hisaspdec_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hireassume_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextvar_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextype_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextcode_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__ccomp_instrlst_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02085_ () ; static ats_void_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) ; static ats_ptr_type auxinit_12 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) ; static ats_void_type prerr_errccomp_loc_02093_ (ats_ptr_type arg0) ; static ats_void_type auxmain_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) ; static ats_void_type loop_18 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type aux_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type auxlst_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type auxinit_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_void_type auxmain_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type aux_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_void_type auxlst_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ; static ats_ptr_type auxlam_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type auxlam2_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type auxfix_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_ptr_type auxmain_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 1729(line=56, offs=17) -- 1757(line=56, offs=45) */ ATSstaticdec() ats_void_type prerr_FILENAME_02085_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02085_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_ccomp_decl")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02085_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 3668(line=171, offs=3) -- 7516(line=343, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_int_type, tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_int_type, tmp13) ; // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_int_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_int_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_int_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_int_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; // ATSlocal_void (tmp35) ; // ATSlocal_void (tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; // ATSlocal_void (tmp42) ; // ATSlocal_void (tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; // ATSlocal_void (tmp48) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ; tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp3)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp2) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp3)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_3, tmp3, atslab_0) ; tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp4) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_list (tmp2, tmp5) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp3)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hisaspdec_ccomp (arg0, arg1) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp3)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hireassume_ccomp (arg0, arg1) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp3)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextype_ccomp (arg0, arg1) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp3)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextvar_ccomp (arg0, arg1) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp3)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextcode_ccomp (arg0, arg1) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp3)->tag != 8) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp (arg0, arg1) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp3)->tag != 7) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp (arg0, arg1) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp3)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp2) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp3)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp6 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_1) ; tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp6), atslab_hiimpdec_cst) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp (arg0, tmp8, tmp6, 0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_impdec (tmp2, tmp6) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp3)->tag != 11) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_0) ; tmp11 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_1) ; tmp12 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_2) ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; /* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp (arg0, tmp13, tmp10, tmp11, tmp12) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_fundecs (tmp2, tmp10, tmp11, tmp12) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp3)->tag != 12) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_0) ; tmp16 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_1) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp (arg0, tmp17, tmp15, tmp16) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs (tmp2, tmp15, tmp16, tmp18) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp3)->tag != 13) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_0) ; tmp20 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_1) ; tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec (arg0, tmp21, tmp19, tmp20) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs_rec (tmp2, tmp19, tmp20, tmp22) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp3)->tag != 14) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_3, tmp3, atslab_0) ; tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp (arg0, tmp24, tmp23) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_vardecs (tmp2, tmp23, tmp25) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp3)->tag != 15) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_0) ; tmp27 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_1) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp27) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_include (tmp2, tmp26, tmp28) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp3)->tag != 16) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_3) ; /* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_add (arg1) ; /* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_staload (arg0, tmp29) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staload (tmp2, arg1) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp3)->tag != 17) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp32 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_0) ; tmp33 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_1) ; tmp34 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_2) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp36 = ats_selsin_mac(tmp35, atslab_1) */ ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp34) ; /* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staloadloc (tmp2, tmp32, tmp33, tmp37) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp3)->tag != 18) { goto __ats_lab_19_0 ; } __ats_lab_18_1: /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_add (arg1) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_dynload (tmp2, arg1) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: // if (((ats_sum_ptr_type)tmp3)->tag != 19) { ats_deadcode_failure_handle () ; } __ats_lab_19_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_0) ; tmp41 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_1) ; /* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp43 = ats_selsin_mac(tmp42, atslab_1) */ ; tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp40) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ; /* tmp46 = ats_selsin_mac(tmp45, atslab_1) */ ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp41) ; /* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_localjoin (arg0) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_local (tmp2, tmp44, tmp47) ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 7617(line=351, offs=5) -- 8130(line=375, offs=4) */ ATSstaticdec() ats_void_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; __ats_lab_loop_3: do { /* branch: __ats_lab_20 */ __ats_lab_20_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp (arg0, tmp51) ; tmp54 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp54, atslab_0, tmp53) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp54 ; if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 7875(line=365, offs=9) -- 7908(line=365, offs=42)") ; } tmp55 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = arg0 ; arg1 = tmp52 ; arg2 = tmp55 ; goto __ats_lab_loop_3 ; // tail call break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_21_1: tmp56 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp56 ; break ; } while (0) ; return /* (tmp50) */ ; } /* end of [loop_3] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 7592(line=349, offs=3) -- 8245(line=384, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp57) ; // ATSlocal_void (tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp: /* ats_ptr_type tmp57 ; */ /* tmp58 = */ loop_3 (arg0, arg1, (&tmp57)) ; tmp49 = ats_castfn_mac(ats_ptr_type, tmp57) ; return (tmp49) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8325(line=390, offs=3) -- 8452(line=398, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp0 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; // ATSlocal_void (tmp62) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp0: tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_make () ; tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (tmp60, arg0) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_free (tmp60) ; tmp59 = tmp61 ; return (tmp59) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp0] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8532(line=404, offs=3) -- 8702(line=413, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hisaspdec_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; // ATSlocal_void (tmp67) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hisaspdec_ccomp: tmp64 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ; tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp65)->tag != 2) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8584(line=407, offs=5) -- 8618(line=407, offs=39)") ; } tmp66 = ats_caselptrlab_mac(anairiats_sum_3, tmp65, atslab_0) ; /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_add (arg1) ; tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_saspdec (tmp64, tmp66) ; return (tmp63) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hisaspdec_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8784(line=419, offs=3) -- 8828(line=420, offs=31) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hireassume_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hireassume_ccomp: tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ; tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp69) ; return (tmp68) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hireassume_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8881(line=426, offs=3) -- 9093(line=435, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextype_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; // ATSlocal_void (tmp75) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextype_ccomp: tmp71 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ; tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp72)->tag != 4) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8933(line=429, offs=5) -- 8977(line=429, offs=49)") ; } tmp73 = ats_caselptrlab_mac(anairiats_sum_4, tmp72, atslab_1) ; tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (0, tmp73) ; /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_add (arg1) ; tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp71) ; return (tmp70) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextype_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9170(line=441, offs=3) -- 9614(line=461, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextvar_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; // ATSlocal_void (tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextvar_ccomp: tmp77 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ; tmp78 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp78)->tag != 5) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9222(line=444, offs=5) -- 9266(line=444, offs=49)") ; } tmp79 = ats_caselptrlab_mac(anairiats_sum_4, tmp78, atslab_0) ; tmp80 = ats_caselptrlab_mac(anairiats_sum_4, tmp78, atslab_1) ; /* ats_ptr_type tmp81 ; */ tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, tmp81, tmp80) ; /* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_extvar (tmp81, tmp77, tmp79, tmp82) ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp81) ; tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_extvar (tmp77, tmp79, tmp84) ; return (tmp76) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextvar_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9692(line=467, offs=3) -- 9806(line=474, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextcode_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; // ATSlocal_void (tmp87) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextcode_ccomp: tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ; /* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_add (arg1) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp86) ; return (tmp85) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextcode_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9885(line=480, offs=3) -- 10112(line=493, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_int_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_bool_type, tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp: tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ; tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp90)->tag != 8) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9937(line=483, offs=5) -- 9978(line=483, offs=46)") ; } tmp91 = ats_caselptrlab_mac(anairiats_sum_5, tmp90, atslab_0) ; tmp92 = ats_caselptrlab_mac(anairiats_sum_5, tmp90, atslab_1) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind (tmp91) ; if (tmp93) { tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp89) ; } else { tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_datdecs (tmp89, tmp92) ; } /* end of [if] */ return (tmp88) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 10191(line=499, offs=3) -- 10357(line=508, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp: tmp95 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ; tmp96 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ; if (((ats_sum_ptr_type)tmp96)->tag != 7) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 10243(line=502, offs=5) -- 10279(line=502, offs=41)") ; } tmp97 = ats_caselptrlab_mac(anairiats_sum_3, tmp96, atslab_0) ; /* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_add (arg1) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_exndecs (tmp95, tmp97) ; return (tmp94) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50559(line=1787, offs=18) -- 50622(line=1789, offs=4) */ ATSstaticdec() ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp117) ; __ats_lab_list_is_cons_01295_: do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp117 = ats_true_bool ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp117 = ats_false_bool ; break ; } while (0) ; return (tmp117) ; } /* end of [list_is_cons_01295_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 10419(line=515, offs=1) -- 12038(line=588, offs=4) */ ATSstaticdec() ats_ptr_type auxinit_12 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; // ATSlocal_void (tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; // ATSlocal_void (tmp109) ; ATSlocal (ats_bool_type, tmp110) ; ATSlocal (ats_int_type, tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_bool_type, tmp113) ; // ATSlocal_void (tmp114) ; ATSlocal (ats_bool_type, tmp115) ; ATSlocal (ats_bool_type, tmp116) ; // ATSlocal_void (tmp118) ; // ATSlocal_void (tmp119) ; ATSlocal (ats_int_type, tmp120) ; ATSlocal (ats_bool_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_auxinit_12: do { /* branch: __ats_lab_22 */ __ats_lab_22_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp99 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp101 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp100), atslab_hifundec_loc) ; tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp100), atslab_hifundec_var) ; /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp103, arg1) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp (tmp103) ; if (tmp105 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 10904(line=542, offs=9) -- 10938(line=542, offs=43)") ; } tmp106 = ats_caselptrlab_mac(anairiats_sum_11, tmp105, atslab_0) ; tmp107 = (ats_sum_ptr_type)0 ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dvar_type (tmp103, tmp106, tmp107) ; tmp110 = atspre_lte_int_int (arg4, 1) ; if (tmp110) { /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp108) ; } else { /* empty */ } /* end of [if] */ tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ; tmp113 = atspre_eq_int_int (tmp111, 0) ; if (tmp113) { tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (tmp102, tmp108) ; } else { tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab (tmp102, tmp103, tmp108) ; } /* end of [if] */ /* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp103, tmp112) ; tmp116 = atspre_gt_int_int (tmp111, 0) ; if (tmp116) { tmp115 = ats_true_bool ; } else { tmp115 = list_is_cons_01295_ (arg2) ; } /* end of [if] */ if (tmp115) { /* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd (tmp108, 1) ; } else { /* empty */ } /* end of [if] */ do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: /* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec (arg0, tmp100) ; break ; } while (0) ; tmp121 = atspre_gte_int_int (arg4, 1) ; if (tmp121) { tmp120 = atspre_add_int_int (arg4, 1) ; } else { tmp120 = arg4 ; } /* end of [if] */ tmp122 = auxinit_12 (arg0, arg1, arg2, tmp101, tmp120) ; tmp99 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp99, atslab_0, tmp108) ; ats_selptrset_mac(anairiats_sum_9, tmp99, atslab_1, tmp122) ; break ; } while (0) ; return (tmp99) ; } /* end of [auxinit_12] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2599(line=102, offs=20) -- 2662(line=105, offs=2) */ ATSstaticdec() ats_void_type prerr_errccomp_loc_02093_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; __ats_lab_prerr_errccomp_loc_02093_: /* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp133 = */ atspre_prerr_string (ATSstrcst(": error(ccomp)")) ; return /* (tmp133) */ ; } /* end of [prerr_errccomp_loc_02093_] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 12085(line=593, offs=1) -- 14143(line=686, offs=4) */ ATSstaticdec() ats_void_type auxmain_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) { /* local vardec */ // ATSlocal_void (tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; // ATSlocal_void (tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp135) ; // ATSlocal_void (tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; // ATSlocal_void (tmp143) ; ATSlocal (ats_bool_type, tmp144) ; ATSlocal (ats_bool_type, tmp145) ; // ATSlocal_void (tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; // ATSlocal_void (tmp152) ; // ATSlocal_void (tmp153) ; ATSlocal (ats_bool_type, tmp154) ; // ATSlocal_void (tmp155) ; ATSlocal (ats_bool_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; // ATSlocal_void (tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_int_type, tmp162) ; ATSlocal (ats_bool_type, tmp163) ; __ats_lab_auxmain_14: do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp124 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; tmp125 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ; tmp126 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp124), atslab_hifundec_loc) ; tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp124), atslab_hifundec_var) ; tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp124), atslab_hifundec_imparg) ; tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp124), atslab_hifundec_def) ; tmp131 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp129), atslab_hidexp_node) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp131)->tag != 47) { goto __ats_lab_31_0 ; } __ats_lab_30_1: break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: __ats_lab_31_1: /* tmp132 = */ prerr_errccomp_loc_02093_ (tmp126) ; /* tmp135 = */ atspre_prerr_string (ATSstrcst(": non-lambda function definition is not supported.")) ; /* tmp136 = */ atspre_prerr_newline () ; tmp137 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 12912(line=629, offs=26) -- 12921(line=629, offs=35)", ATSstrcst("\n")) ; /* tmp130 = */ ats_exit_errmsg (1, tmp137) ; break ; } while (0) ; tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp129), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp138)->tag != 47) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 12973(line=633, offs=5) -- 13041(line=636, offs=28)") ; } tmp139 = ats_caselptrlab_mac(anairiats_sum_13, tmp138, atslab_1) ; tmp140 = ats_caselptrlab_mac(anairiats_sum_13, tmp138, atslab_2) ; // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp141 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; tmp144 = atspre_eq_int_int (arg4, 0) ; if (tmp144) { /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv (arg0, tmp141) ; } else { /* empty */ } /* end of [if] */ tmp145 = list_is_cons_01295_ (arg1) ; if (tmp145) { /* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmplevel (arg0) ; } else { /* empty */ } /* end of [if] */ tmp147 = (ats_sum_ptr_type)0 ; tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab (tmp126, tmp141) ; tmp150 = (ats_sum_ptr_type)0 ; tmp148 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp148, atslab_0, tmp149) ; ats_selptrset_mac(anairiats_sum_9, tmp148, atslab_1, tmp150) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body (arg0, tmp141, tmp128, tmp147, tmp148, tmp126, tmp139, tmp140) ; if (tmp145) { /* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmplevel (arg0) ; } else { /* empty */ } /* end of [if] */ tmp154 = atspre_eq_int_int (arg4, 0) ; if (tmp154) { /* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (arg0) ; } else { /* empty */ } /* end of [if] */ tmp156 = atspre_gt_int_int (arg4, 0) ; if (tmp156) { tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret (tmp151) ; /* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal (tmp157) ; } else { /* empty */ } /* end of [if] */ tmp159 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp159, atslab_0, tmp141) ; /* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_set_funlabopt (tmp124, tmp159) ; tmp161 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp161, atslab_0, tmp151) ; /* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (tmp141, tmp161) ; tmp163 = atspre_gte_int_int (arg4, 1) ; if (tmp163) { tmp162 = atspre_add_int_int (arg4, 1) ; } else { tmp162 = arg4 ; } /* end of [if] */ arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp125 ; arg3 = tmp142 ; arg4 = tmp162 ; goto __ats_lab_auxmain_14 ; // tail call break ; } while (0) ; return /* (tmp123) */ ; } /* end of [auxmain_14] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_18 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; __ats_lab_loop_18: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ; tmp176 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp176, atslab_0, tmp174) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp176 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp177 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp175 ; arg1 = tmp177 ; goto __ats_lab_loop_18 ; // tail call break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp178 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp178 ; break ; } while (0) ; return /* (tmp173) */ ; } /* end of [loop_18] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp179) ; // ATSlocal_void (tmp180) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp179 ; */ /* tmp180 = */ loop_18 (arg0, (&tmp179)) ; tmp172 = tmp179 ; return (tmp172) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 14217(line=692, offs=1) -- 14936(line=730, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp164) ; ATSlocal (ats_int_type, tmp165) ; ATSlocal (ats_bool_type, tmp166) ; ATSlocal (ats_bool_type, tmp167) ; ATSlocal (ats_int_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; // ATSlocal_void (tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; // ATSlocal_void (tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; ATSlocal (ats_ptr_type, tmp184) ; // ATSlocal_void (tmp185) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp: tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get () ; tmp167 = atspre_gt_int_int (tmp165, 0) ; if (tmp167) { tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec (arg2) ; } else { tmp166 = ats_false_bool ; } /* end of [if] */ if (tmp166) { tmp168 = 1 ; } else { tmp168 = 0 ; } /* end of [if] */ tmp169 = auxinit_12 (arg0, arg1, arg3, arg4, tmp168) ; if (tmp166) { tmp171 = list_copy_01322_ats_ptr_type (tmp169) ; /* tmp170 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv_fnx (arg0, tmp171) ; } else { /* empty */ } /* end of [if] */ /* tmp181 = */ auxmain_14 (arg0, arg3, arg4, tmp169, tmp168) ; if (tmp166) { if (tmp169 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 14740(line=721, offs=7) -- 14766(line=721, offs=33)") ; } tmp182 = ats_caselptrlab_mac(anairiats_sum_9, tmp169, atslab_0) ; tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp182) ; if (tmp183 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 14773(line=722, offs=7) -- 14810(line=722, offs=44)") ; } tmp184 = ats_caselptrlab_mac(anairiats_sum_11, tmp183, atslab_0) ; /* tmp185 = */ patsopt_funent_set_fnxlablst (tmp184, tmp169) ; /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (arg0) ; } else { /* empty */ } /* end of [if] */ return /* (tmp164) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 15023(line=738, offs=5) -- 15650(line=766, offs=4) */ ATSstaticdec() ats_void_type aux_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; ATSlocal (ats_ptr_type, tmp191) ; // ATSlocal_void (tmp192) ; __ats_lab_aux_19: tmp187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg4), atslab_hivaldec_loc) ; tmp188 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg4), atslab_hivaldec_def) ; tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv (arg0, arg1, tmp188) ; tmp190 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg4), atslab_hivaldec_pat) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)arg3)->tag != 1) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp191 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: __ats_lab_35_1: tmp191 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp191)->tag = 4 ; ats_selptrset_mac(anairiats_sum_3, tmp191, atslab_0, tmp187) ; break ; } while (0) ; /* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (arg0, arg1, tmp191, tmp190, tmp189) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp (arg0, arg1, arg2, tmp190, tmp189) ; return /* (tmp186) */ ; } /* end of [aux_19] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 15672(line=768, offs=5) -- 16031(line=788, offs=4) */ ATSstaticdec() ats_void_type auxlst_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; // ATSlocal_void (tmp196) ; __ats_lab_auxlst_20: do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp194 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ; /* tmp196 = */ aux_19 (arg0, arg1, arg2, arg3, tmp194) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp195 ; goto __ats_lab_auxlst_20 ; // tail call break ; } while (0) ; return /* (tmp193) */ ; } /* end of [auxlst_20] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 16104(line=794, offs=1) -- 16272(line=806, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; // ATSlocal_void (tmp199) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp: /* ats_ptr_type tmp198 ; */ tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; /* tmp199 = */ auxlst_20 (arg0, tmp198, arg1, arg2, arg3) ; tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp198) ; return (tmp197) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 16359(line=815, offs=1) -- 16972(line=844, offs=4) */ ATSstaticdec() ats_ptr_type auxinit_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; // ATSlocal_void (tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; // ATSlocal_void (tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; __ats_lab_auxinit_22: do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp200 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp201 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp202 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; tmp203 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp201), atslab_hivaldec_pat) ; tmp204 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp203), atslab_hipat_loc) ; tmp205 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp203), atslab_hipat_type) ; tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp204, tmp205) ; /* tmp207 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec (arg1, tmp204, tmp206) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp (tmp204, tmp205, tmp206) ; /* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp (arg0, arg1, arg2, tmp203, tmp208) ; tmp210 = auxinit_22 (arg0, arg1, arg2, tmp202) ; tmp200 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp200, atslab_0, tmp206) ; ats_selptrset_mac(anairiats_sum_9, tmp200, atslab_1, tmp210) ; break ; } while (0) ; return (tmp200) ; } /* end of [auxinit_22] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 16998(line=847, offs=1) -- 17495(line=873, offs=4) */ ATSstaticdec() ats_void_type auxmain_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; // ATSlocal_void (tmp217) ; __ats_lab_auxmain_23: do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_41_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; tmp213 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ; tmp214 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp212), atslab_hivaldec_def) ; // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp215 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp216 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; ATS_FREE(arg3) ; /* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, arg1, tmp215, tmp214) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp213 ; arg3 = tmp216 ; goto __ats_lab_auxmain_23 ; // tail call break ; } while (0) ; return /* (tmp211) */ ; } /* end of [auxmain_23] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 17575(line=879, offs=3) -- 17788(line=891, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; // ATSlocal_void (tmp221) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec: /* ats_ptr_type tmp219 ; */ tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; tmp220 = auxinit_22 (arg0, tmp219, arg1, arg3) ; /* tmp221 = */ auxmain_23 (arg0, tmp219, arg3, tmp220) ; tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp219) ; return (tmp218) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 17879(line=899, offs=5) -- 18713(line=934, offs=4) */ ATSstaticdec() ats_void_type aux_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; // ATSlocal_void (tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; __ats_lab_aux_25: tmp223 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg3), atslab_hivardec_loc) ; tmp224 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg3), atslab_hivardec_dvar_ptr) ; tmp225 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg3), atslab_hivardec_dvar_view) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (tmp224) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp224, arg2) ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (tmp225) ; if (tmp228 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 18154(line=913, offs=5) -- 18197(line=913, offs=48)") ; } tmp229 = ats_caselptrlab_mac(anairiats_sum_11, tmp228, atslab_0) ; tmp230 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, tmp229), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp230)->tag != 12) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 18202(line=914, offs=5) -- 18238(line=914, offs=41)") ; } tmp231 = ats_caselptrlab_mac(anairiats_sum_4, tmp230, atslab_0) ; tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp226, tmp231) ; tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ref (tmp226, tmp232) ; /* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec (arg1, tmp226, tmp233) ; tmp236 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg3), atslab_hivardec_init) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (tmp236 != (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (tmp236 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: tmp237 = ats_caselptrlab_mac(anairiats_sum_11, tmp236, atslab_0) ; /* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, arg1, tmp233, tmp237) ; break ; } while (0) ; tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref (tmp223, tmp232, tmp233) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp223, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, tmp238) ; /* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp224, tmp239) ; return /* (tmp222) */ ; } /* end of [aux_25] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 18735(line=936, offs=5) -- 19031(line=953, offs=4) */ ATSstaticdec() ats_void_type auxlst_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; // ATSlocal_void (tmp243) ; __ats_lab_auxlst_26: do { /* branch: __ats_lab_44 */ __ats_lab_44_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; } __ats_lab_44_1: tmp241 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ; tmp242 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ; /* tmp243 = */ aux_25 (arg0, arg1, arg2, tmp241) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp242 ; goto __ats_lab_auxlst_26 ; // tail call break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_45_1: break ; } while (0) ; return /* (tmp240) */ ; } /* end of [auxlst_26] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 19106(line=959, offs=3) -- 19251(line=967, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; // ATSlocal_void (tmp246) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp: /* ats_ptr_type tmp245 ; */ tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; /* tmp246 = */ auxlst_26 (arg0, tmp245, arg1, arg2) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp245) ; return (tmp244) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 19338(line=975, offs=5) -- 19697(line=992, offs=4) */ ATSstaticdec() ats_ptr_type auxlam_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; // ATSlocal_void (tmp251) ; __ats_lab_auxlam_28: tmp248 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_type) ; tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo (arg2) ; tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type (arg2, tmp248, tmp249) ; /* tmp251 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp250) ; tmp247 = auxlam2_29 (arg0, arg1, tmp250, arg3, arg4, arg5) ; return (tmp247) ; } /* end of [auxlam_28] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 19726(line=994, offs=5) -- 20632(line=1038, offs=2) */ ATSstaticdec() ats_ptr_type auxlam2_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp252) ; // ATSlocal_void (tmp253) ; ATSlocal (ats_int_type, tmp254) ; // ATSlocal_void (tmp255) ; ATSlocal (ats_bool_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; // ATSlocal_void (tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; // ATSlocal_void (tmp268) ; __ats_lab_auxlam2_29: /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv (arg0, arg2) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ; tmp256 = atspre_gt_int_int (tmp254, 0) ; if (tmp256) { /* tmp255 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd (arg2, 1) ; } else { /* empty */ } /* end of [if] */ tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (arg1, arg2) ; tmp258 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_loc) ; tmp259 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp259)->tag != 47) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 20136(line=1016, offs=5) -- 20189(line=1016, offs=58)") ; } tmp260 = ats_caselptrlab_mac(anairiats_sum_13, tmp259, atslab_1) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_13, tmp259, atslab_2) ; tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab (arg1, arg2) ; tmp264 = (ats_sum_ptr_type)0 ; tmp263 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp263, atslab_0, tmp262) ; ats_selptrset_mac(anairiats_sum_9, tmp263, atslab_1, tmp264) ; tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body (arg0, arg2, arg3, arg4, tmp263, tmp258, tmp260, tmp261) ; tmp267 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp267, atslab_0, tmp265) ; /* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (arg2, tmp267) ; /* tmp268 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (arg0) ; tmp252 = arg2 ; return (tmp252) ; } /* end of [auxlam2_29] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 20682(line=1042, offs=5) -- 21329(line=1083, offs=4) */ ATSstaticdec() ats_ptr_type auxfix_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; ATSlocal (ats_ptr_type, tmp274) ; ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; // ATSlocal_void (tmp277) ; // ATSlocal_void (tmp278) ; __ats_lab_auxfix_30: tmp270 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_node) ; if (((ats_sum_ptr_type)tmp270)->tag != 48) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 20823(line=1053, offs=1) -- 20877(line=1056, offs=24)") ; } tmp271 = ats_caselptrlab_mac(anairiats_sum_13, tmp270, atslab_1) ; tmp272 = ats_caselptrlab_mac(anairiats_sum_13, tmp270, atslab_2) ; tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo (arg2) ; tmp274 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp272), atslab_hidexp_type) ; tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type (arg2, tmp274, tmp273) ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (arg1, tmp275) ; /* tmp277 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp275) ; /* tmp278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp271, tmp276) ; tmp269 = auxlam2_29 (arg0, arg1, tmp275, arg3, arg4, tmp272) ; return (tmp269) ; } /* end of [auxfix_30] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 21375(line=1087, offs=5) -- 22510(line=1145, offs=4) */ ATSstaticdec() ats_ptr_type auxmain_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp282) ; // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; // ATSlocal_void (tmp290) ; // ATSlocal_void (tmp291) ; // ATSlocal_void (tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; __ats_lab_auxmain_31: tmp280 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_type) ; tmp281 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_node) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp281)->tag != 0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp282 = ats_caselptrlab_mac(anairiats_sum_3, tmp281, atslab_0) ; /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_add (tmp282) ; tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo (tmp282) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type (tmp282, tmp280, tmp284) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp281)->tag != 1) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp285 = ats_caselptrlab_mac(anairiats_sum_3, tmp281, atslab_0) ; tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_funclo (tmp285) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dvar_type (tmp285, tmp280, tmp286) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp281)->tag != 20) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp287 = ats_caselptrlab_mac(anairiats_sum_4, tmp281, atslab_0) ; tmp288 = ats_caselptrlab_mac(anairiats_sum_4, tmp281, atslab_1) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo (tmp287) ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_tmpcst_type (tmp287, tmp288, tmp280, tmp289) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp281)->tag != 47) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp279 = auxlam_28 (arg0, arg1, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp281)->tag != 48) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp279 = auxfix_30 (arg0, arg1, arg2, arg3, arg4, arg5) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: /* tmp290 = */ atspre_print_string (ATSstrcst("hiimpdec_ccomp: auxmain: hde_def = ")) ; /* tmp291 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidexp (arg5) ; /* tmp292 = */ atspre_print_newline () ; tmp293 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 22414(line=1142, offs=5) -- 22423(line=1142, offs=14)", ATSstrcst("\n")) ; /* tmp279 = */ ats_exit_errmsg (1, tmp293) ; break ; } while (0) ; return (tmp279) ; } /* end of [auxmain_31] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 22584(line=1151, offs=1) -- 24208(line=1229, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_bool_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_bool_type, tmp302) ; // ATSlocal_void (tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; ATSlocal (ats_bool_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; // ATSlocal_void (tmp309) ; ATSlocal (ats_bool_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; // ATSlocal_void (tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp: tmp295 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_cst) ; tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind (tmp295) ; do { /* branch: __ats_lab_52 */ __ats_lab_52_0: __ats_lab_52_1: tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun (tmp296) ; if (!tmp297) { goto __ats_lab_53_1 ; } tmp298 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_loc) ; tmp299 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_imparg) ; tmp300 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_tmparg) ; tmp301 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_def) ; tmp302 = list_is_cons_01295_ (tmp300) ; if (tmp302) { /* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmplevel (arg0) ; } else { /* empty */ } /* end of [if] */ tmp304 = auxmain_31 (arg0, tmp298, tmp295, tmp299, tmp300, tmp301) ; if (tmp302) { /* tmp305 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmplevel (arg0) ; } else { /* empty */ } /* end of [if] */ tmp307 = atspre_eq_int_int (arg3, 0) ; if (tmp307) { if (tmp302) { /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec (arg0, arg2) ; } else { /* empty */ } /* end of [if] */ } else { /* empty */ } /* end of [if] */ tmp308 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp308, atslab_0, tmp304) ; /* tmp309 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_funlabopt (arg2, tmp308) ; tmp310 = atspre_neg_bool1 (tmp302) ; if (tmp310) { /* tmp294 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_funlab (tmp295, ats_castfn_mac(ats_ptr_type, tmp308)) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: __ats_lab_53_1: /* ats_ptr_type tmp311 ; */ tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ; tmp313 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_def) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, tmp311, tmp313) ; tmp315 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_loc) ; /* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_dcstdef (tmp311, tmp315, tmp295, tmp312) ; tmp316 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp311) ; tmp317 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp317, atslab_0, tmp316) ; /* tmp294 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_instrlstopt (arg2, tmp317) ; break ; } while (0) ; return /* (tmp294) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp] */ /* // /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 24311(line=1237, offs=3) -- 24482(line=1248, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp_if (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ // ATSlocal_void (tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp_if: tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_funlabopt (arg2) ; do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (tmp319 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_54_1: break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (tmp319 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: /* tmp318 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp (arg0, arg1, arg2, arg3) ; break ; } while (0) ; return /* (tmp318) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp_if] */ /* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_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_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; // ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_ccomp_decl_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans1_dynexp_dats.c0000644000175000017500000052563713431250607023346 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_d1exp_loc ; ats_ptr_type atslab_d1exp_node ; } anairiats_rec_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_d0exp_loc ; ats_ptr_type atslab_d0exp_node ; } anairiats_rec_7 ; typedef struct { ats_ptr_type atslab_f0arg_loc ; ats_ptr_type atslab_f0arg_node ; } anairiats_rec_8 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_9 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_s0exp_loc ; ats_ptr_type atslab_s0exp_node ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_i0nvarg_loc ; ats_ptr_type atslab_i0nvarg_sym ; ats_ptr_type atslab_i0nvarg_typ ; } anairiats_rec_12 ; typedef struct { ats_ptr_type atslab_i0nvresstate_loc ; ats_ptr_type atslab_i0nvresstate_qua ; ats_ptr_type atslab_i0nvresstate_arg ; } anairiats_rec_13 ; typedef struct { ats_ptr_type atslab_loopi0nv_qua ; ats_ptr_type atslab_loopi0nv_met ; ats_ptr_type atslab_loopi0nv_arg ; ats_ptr_type atslab_loopi0nv_res ; } anairiats_rec_14 ; typedef struct { ats_ptr_type atslab_i0fcl_loc ; ats_ptr_type atslab_i0fcl_test ; ats_ptr_type atslab_i0fcl_body ; } anairiats_rec_15 ; typedef struct { ats_ptr_type atslab_gm0at_loc ; ats_ptr_type atslab_gm0at_exp ; ats_ptr_type atslab_gm0at_pat ; } anairiats_rec_16 ; typedef struct { ats_ptr_type atslab_c0lau_loc ; ats_ptr_type atslab_c0lau_pat ; ats_int_type atslab_c0lau_seq ; ats_int_type atslab_c0lau_neg ; ats_ptr_type atslab_c0lau_body ; } anairiats_rec_17 ; typedef struct { ats_ptr_type atslab_guap0at_loc ; ats_ptr_type atslab_guap0at_pat ; ats_ptr_type atslab_guap0at_gua ; } anairiats_rec_18 ; typedef struct { ats_ptr_type atslab_sc0lau_loc ; ats_ptr_type atslab_sc0lau_pat ; ats_ptr_type atslab_sc0lau_body ; } anairiats_rec_19 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_20 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_21 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_22 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_clo_ref_type atslab_1 ; } anairiats_sum_23 ; typedef struct { ats_ptr_type atslab_ifhead_tok ; ats_ptr_type atslab_ifhead_inv ; } anairiats_rec_24 ; typedef struct { ats_ptr_type atslab_sifhead_tok ; ats_ptr_type atslab_sifhead_inv ; } anairiats_rec_25 ; typedef struct { ats_ptr_type atslab_casehead_tok ; ats_ptr_type atslab_casehead_inv ; } anairiats_rec_26 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_27 ; typedef struct { ats_ptr_type atslab_scasehead_tok ; ats_ptr_type atslab_scasehead_inv ; } anairiats_rec_28 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_29 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_30 ; typedef struct { ats_ptr_type atslab_dqi0de_loc ; ats_ptr_type atslab_dqi0de_qua ; ats_ptr_type atslab_dqi0de_sym ; } anairiats_rec_31 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_sum_32 ; typedef struct { ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_rec_33 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_34 ; typedef struct { ats_ptr_type atslab_tryhead_tok ; ats_ptr_type atslab_tryhead_inv ; } anairiats_rec_35 ; typedef struct { ats_ptr_type atslab_itp_init ; ats_ptr_type atslab_itp_test ; ats_ptr_type atslab_itp_post ; } anairiats_rec_36 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMatm_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMopr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpre_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXOPRpos_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CASE_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__DL0ABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGdyn_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGsta1_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGsta2_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__F0ARGmet3_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edqid_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eopid_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eidext_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eint_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eempty_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecstsp_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etyrep_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eliteral_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextval_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextfcall_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eextmcall_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efoldat_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efreeat_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etmpid_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elet_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edeclseq_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhere_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eapp_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elist_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifhead_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esifhead_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eifcasehd_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ecasehead_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Escasehead_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elst_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etup_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Erec_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eseq_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrsub_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrpsz_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Earrinit_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eptrof_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eviewat_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_lab_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esel_ind_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eraise_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eeffmask_arg_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evararg_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Evcopyenv_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eshowtype_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etempenver_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esexparg_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eexist_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eann_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Elam_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efix_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Edelay_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Efor_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Ewhile_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Eloopexn_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Etrywith_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Emacsyn_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolassert_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0Esolverify_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eidextapp_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eapp_sta_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elist_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Esexparg_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_d0exp_tr_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_termet_check_7) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ptrof_prec_dyn) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__foldat_prec_dyn) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__freeat_prec_dyn) ; ATSextern_val(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__viewat_prec_dyn) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app) (ats_ptr_type, ats_clo_ref_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_isbox) (ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_islin) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain_ntm) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvarg_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_nil) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ide) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idext) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idextapp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_c0har) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_s0tring) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_top) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_empty) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_cstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tyrep) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_literal) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extval) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extfcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extmcall) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_foldat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_freeat) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tmpid) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_let) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_where) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_list) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifhead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sifhead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifcasehd) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_casehead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_scasehead) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lst) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tup) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_rec) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrsub) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrpsz) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrinit) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sexparg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_exist) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_selab) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ptrof) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_viewat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_raise) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask_arg) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vararg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vcopyenv) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_showtype) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tempenver) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_dyn) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_laminit_dyn) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_met) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_ana) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_syn) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_fix) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_delay) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_trywith) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_for) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_while) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_loopexn) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_effc) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo_opt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macsyn) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solassert) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solverify) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labd1exp_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_lab) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_ind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1fcl_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__gm1at_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__c1lau_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__sc1lau_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add) (ats_ptr_type) ; ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__sp0at_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0mpmarg_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exparg_tr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0expopt_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labd0exp_tr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__termet_check) (ats_ptr_type, ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr_lams_dyn) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d1exp_syndef_resolve) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__d1exp_app_proc) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02085_ () ; static ats_void_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type appf_4 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type appf_4_closure_make () ; static ats_ptr_type appf_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type d1expitm_app_5 (ats_ptr_type arg0) ; static ats_ptr_type d1exp_get_loc_6 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_8_closure_make () ; static ats_ptr_type __ats_fun_8_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type d1exp_make_opr_7 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type __ats_fun_10 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_clo_ptr_type __ats_fun_11_closure_make () ; static ats_ptr_type __ats_fun_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_ptr_type d1expitm_backslash_9 (ats_ptr_type arg0) ; static ats_ptr_type d1expitm_underscore_12 (ats_ptr_type arg0) ; static ats_void_type prerr_interror_loc_02087_ (ats_ptr_type arg0) ; static ats_ptr_type s0expdarg_tr_13 (ats_ptr_type arg0) ; static ats_void_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type s0expdarglst_tr_15 (ats_ptr_type arg0) ; static ats_ptr_type aux_20 (ats_ptr_type env0, ats_int_type env1, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_clo_ptr_type aux_20_closure_make (ats_ptr_type env0, ats_int_type env1) ; static ats_ptr_type aux_20_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_void_type prerr_error1_loc_02088_ (ats_ptr_type arg0) ; static ats_ptr_type i0nvarg_tr_23 (ats_ptr_type arg0) ; static ats_ptr_type i0nvarglst_tr_24 (ats_ptr_type arg0) ; static ats_ptr_type i0nvresstate_tr_25 (ats_ptr_type arg0) ; static ats_ptr_type loopi0nv_tr_26 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type i0fcl_tr_27 (ats_ptr_type arg0) ; static ats_ptr_type i0fclist_tr_28 (ats_ptr_type arg0) ; static ats_ptr_type gm0at_tr_29 (ats_ptr_type arg0) ; static ats_ptr_type gm0atlst_tr_30 (ats_ptr_type arg0) ; static ats_ptr_type c0lau_tr_31 (ats_ptr_type arg0) ; static ats_ptr_type c0laulst_tr_32 (ats_ptr_type arg0) ; static ats_ptr_type sc0lau_tr_33 (ats_ptr_type arg0) ; static ats_ptr_type sc0laulst_tr_34 (ats_ptr_type arg0) ; static ats_ptr_type d0exp_tr_errmsg_opr_35 (ats_ptr_type arg0) ; static ats_ptr_type f_39 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type f_39_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type f_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_40 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type f_40_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type f_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type loop_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ; static ats_ptr_type list_append2_vt_01314_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_42 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_concat_01321_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_46 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type f_47 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type f_47_closure_make (ats_ptr_type env0) ; static ats_ptr_type f_47_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_48 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type f_48_closure_make (ats_ptr_type env0) ; static ats_ptr_type f_48_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_49 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type f_49_closure_make (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2) ; static ats_ptr_type f_49_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type f_50 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2, ats_ptr_type arg0) ; static ats_clo_ptr_type f_50_closure_make (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2) ; static ats_ptr_type f_50_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_item_37 (ats_ptr_type arg0) ; static ats_ptr_type loop_51 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_itemlst_38 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 2009(line=67, offs=28) -- 2040(line=67, offs=59) */ ATSstaticdec() ats_void_type prerr_FILENAME_02085_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02085_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans1_dynexp")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02085_] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19194(line=690, offs=7) -- 19604(line=704, offs=6) */ ATSstaticdec() ats_void_type loop_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; __ats_lab_loop_3: do { /* branch: __ats_lab_5 */ __ats_lab_5_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp19 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp20 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp20, atslab_0, tmp18) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp20 ; if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19444(line=699, offs=13) -- 19470(line=699, offs=39)") ; } tmp21 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp19 ; arg1 = arg1 ; arg2 = tmp21 ; goto __ats_lab_loop_3 ; // tail call break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_6_1: tmp23 = (ats_sum_ptr_type)0 ; tmp22 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp22, atslab_0, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp22, atslab_1, tmp23) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp22 ; break ; } while (0) ; return /* (tmp17) */ ; } /* end of [loop_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 19136(line=688, offs=13) -- 19698(line=708, offs=4) */ ATSstaticdec() ats_ptr_type list_extend_01337_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; // ATSlocal_void (tmp24) ; __ats_lab_list_extend_01337_ats_ptr_type: /* ats_ptr_type tmp16 ; */ /* tmp24 = */ loop_3 (arg0, arg1, (&tmp16)) ; tmp15 = tmp16 ; return (tmp15) ; } /* end of [list_extend_01337_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 2724(line=111, offs=1) -- 4067(line=167, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__d1exp_app_proc (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; ATSlocal (ats_int_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__d1exp_app_proc: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_d1exp_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp2)->tag != 2) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_0) ; tmp4 = ats_caselptrlab_mac(anairiats_sum_3, tmp2, atslab_1) ; tmp5 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp5, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp5, atslab_1, tmp4) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idextapp (arg0, tmp3, tmp5) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: __ats_lab_1_1: tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_d1exp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp6)->tag != 30) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp7 = ats_caselptrlab_mac(anairiats_sum_5, tmp6, atslab_0) ; tmp8 = ats_caselptrlab_mac(anairiats_sum_5, tmp6, atslab_1) ; tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_d1exp_loc) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (arg0, arg1, tmp9, tmp7, tmp8) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp6)->tag != 52) { goto __ats_lab_8_0 ; } __ats_lab_3_1: tmp10 = ats_caselptrlab_mac(anairiats_sum_6, tmp6, atslab_0) ; tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_d1exp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp11)->tag != 28) { goto __ats_lab_7_0 ; } __ats_lab_4_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_3, tmp11, atslab_0) ; tmp13 = ats_caselptrlab_mac(anairiats_sum_3, tmp11, atslab_1) ; tmp14 = list_extend_01337_ats_ptr_type (tmp13, tmp10) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_sta (arg0, tmp12, ats_castfn_mac(ats_ptr_type, tmp14)) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: tmp26 = (ats_sum_ptr_type)0 ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp25, atslab_0, tmp10) ; ats_selptrset_mac(anairiats_sum_4, tmp25, atslab_1, tmp26) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_sta (arg0, arg1, tmp25) ; break ; } while (0) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_d1exp_loc) ; tmp29 = (ats_sum_ptr_type)0 ; tmp28 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp28, atslab_0, arg2) ; ats_selptrset_mac(anairiats_sum_4, tmp28, atslab_1, tmp29) ; tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (arg0, arg1, tmp27, -1, tmp28) ; break ; } while (0) ; break ; } while (0) ; return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__d1exp_app_proc] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 4127(line=173, offs=4) -- 4409(line=186, offs=4) */ ATSstaticdec() ats_ptr_type appf_4 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_appf_4: tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d1exp_loc) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_d1exp_loc) ; tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp32, tmp33) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__d1exp_app_proc (tmp31, arg0, arg1) ; tmp30 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp30)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp30, atslab_0, tmp34) ; return (tmp30) ; } /* end of [appf_4] */ typedef struct { ats_fun_ptr_type closure_fun ; } appf_4_closure_type ; ats_ptr_type appf_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { return appf_4 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type appf_4_closure_init (appf_4_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&appf_4_clofun ; return ; } /* end of function */ ats_clo_ptr_type appf_4_closure_make () { appf_4_closure_type *p_clo = ATS_MALLOC(sizeof(appf_4_closure_type)) ; appf_4_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 4455(line=190, offs=4) -- 4519(line=191, offs=52) */ ATSstaticdec() ats_ptr_type d1expitm_app_5 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; __ats_lab_d1expitm_app_5: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app (arg0, appf_4_closure_make ()) ; return (tmp35) ; } /* end of [d1expitm_app_5] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 4572(line=196, offs=4) -- 4620(line=196, offs=52) */ ATSstaticdec() ats_ptr_type d1exp_get_loc_6 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; __ats_lab_d1exp_get_loc_6: tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d1exp_loc) ; return (tmp36) ; } /* end of [d1exp_get_loc_6] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 4724(line=205, offs=3) -- 4799(line=205, offs=78) */ ATSstaticdec() ats_ptr_type __ats_fun_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp38) ; __ats_lab___ats_fun_8: tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (arg0, arg1, arg2, -1, arg3) ; return (tmp38) ; } /* end of [__ats_fun_8] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_8_closure_type ; ats_ptr_type __ats_fun_8_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_8 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_8_closure_init (__ats_fun_8_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_8_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_8_closure_make () { __ats_fun_8_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_8_closure_type)) ; __ats_fun_8_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 4625(line=199, offs=1) -- 4837(line=208, offs=4) */ ATSstaticdec() ats_ptr_type d1exp_make_opr_7 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; __ats_lab_d1exp_make_opr_7: tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make (&d1exp_get_loc_6, __ats_fun_8_closure_make (), arg0, arg1) ; return (tmp37) ; } /* end of [d1exp_make_opr_7] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 4964(line=216, offs=3) -- 4984(line=216, offs=23) */ ATSstaticdec() ats_ptr_type __ats_fun_10 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp40) ; __ats_lab___ats_fun_10: tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d1exp_loc) ; return (tmp40) ; } /* end of [__ats_fun_10] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 4987(line=217, offs=3) -- 5062(line=217, offs=78) */ ATSstaticdec() ats_ptr_type __ats_fun_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp41) ; __ats_lab___ats_fun_11: tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_app_dyn (arg0, arg1, arg2, -1, arg3) ; return (tmp41) ; } /* end of [__ats_fun_11] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_11_closure_type ; ats_ptr_type __ats_fun_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { return __ats_fun_11 (arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_11_closure_init (__ats_fun_11_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_11_clofun ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_11_closure_make () { __ats_fun_11_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_11_closure_type)) ; __ats_fun_11_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 4869(line=211, offs=1) -- 5111(line=220, offs=4) */ ATSstaticdec() ats_ptr_type d1expitm_backslash_9 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp39) ; __ats_lab_d1expitm_backslash_9: tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash (&__ats_fun_10, __ats_fun_11_closure_make (), arg0) ; return (tmp39) ; } /* end of [d1expitm_backslash_9] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 5147(line=222, offs=4) -- 5223(line=223, offs=57) */ ATSstaticdec() ats_ptr_type d1expitm_underscore_12 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; __ats_lab_d1expitm_underscore_12: tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_top (arg0) ; tmp42 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp42)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp42, atslab_0, tmp43) ; return (tmp42) ; } /* end of [d1expitm_underscore_12] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02087_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp50) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; __ats_lab_prerr_interror_loc_02087_: /* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp52 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp53 = */ prerr_FILENAME_02085_ () ; /* tmp50 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp50) */ ; } /* end of [prerr_interror_loc_02087_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 5282(line=229, offs=1) -- 5621(line=246, offs=4) */ ATSstaticdec() ats_ptr_type s0expdarg_tr_13 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp44) ; ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; __ats_lab_s0expdarg_tr_13: tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (arg0) ; tmp46 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp45), atslab_d1exp_node) ; do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp46)->tag != 52) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp47 = ats_caselptrlab_mac(anairiats_sum_6, tmp46, atslab_0) ; tmp44 = tmp47 ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: __ats_lab_10_1: tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d0exp_loc) ; /* tmp49 = */ prerr_interror_loc_02087_ (tmp48) ; /* tmp54 = */ atspre_prerr_string (ATSstrcst(": s0expdarg_tr: d1e = ")) ; /* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__prerr_d1exp (tmp45) ; /* tmp56 = */ atspre_prerr_newline () ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; break ; } while (0) ; return (tmp44) ; } /* end of [s0expdarg_tr_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; ATSlocal (ats_ptr_type, tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; __ats_lab_loop_18: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp63 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp64 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp62, arg3) ; tmp65 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp65, atslab_0, tmp64) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp65 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp66 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp63 ; arg1 = arg1 ; arg2 = tmp66 ; arg3 = arg3 ; goto __ats_lab_loop_18 ; // tail call break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_12_1: tmp67 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp67 ; break ; } while (0) ; return /* (tmp61) */ ; } /* end of [loop_18] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp60) ; ATSlocal (ats_ptr_type, tmp68) ; // ATSlocal_void (tmp69) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp68 ; */ /* tmp69 = */ loop_18 (arg0, arg1, (&tmp68), arg2) ; tmp60 = tmp68 ; return (tmp60) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp59) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp59 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp59) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 5651(line=248, offs=4) -- 5735(line=249, offs=69) */ ATSstaticdec() ats_ptr_type s0expdarglst_tr_15 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; __ats_lab_s0expdarglst_tr_15: tmp58 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &s0expdarg_tr_13) ; tmp57 = ats_castfn_mac(ats_ptr_type, tmp58) ; return (tmp57) ; } /* end of [s0expdarglst_tr_15] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 6055(line=270, offs=5) -- 7782(line=339, offs=4) */ ATSstaticdec() ats_ptr_type aux_20 (ats_ptr_type env0, ats_int_type env1, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_int_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_ptr_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_bool_type, tmp83) ; ATSlocal (ats_ptr_type, tmp84) ; ATSlocal (ats_int_type, tmp85) ; ATSlocal (ats_bool_type, tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_ptr_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; __ats_lab_aux_20: do { /* branch: __ats_lab_13 */ __ats_lab_13_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; } __ats_lab_13_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp73 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp72), atslab_f0arg_loc) ; tmp75 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp72), atslab_f0arg_node) ; do { /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp75)->tag != 0) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp76 = atspre_add_int_int (arg3, 1) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp76 = arg3 ; break ; } while (0) ; tmp77 = aux_20 (env0, env1, arg0, tmp73, arg2, tmp76) ; tmp78 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp77), atslab_d1exp_loc) ; do { /* branch: __ats_lab_16 */ __ats_lab_16_0: if (env0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp80 = ats_caselptrlab_mac(anairiats_sum_9, env0, atslab_0) ; tmp79 = tmp80 ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: // if (env0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_17_1: tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp74, tmp78) ; break ; } while (0) ; tmp81 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp72), atslab_f0arg_node) ; do { /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp81)->tag != 0) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_6, tmp81, atslab_0) ; tmp83 = atspre_eq_int_int (arg3, 0) ; if (!tmp83) { goto __ats_lab_19_1 ; } tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp82) ; tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_isbox (arg0) ; tmp86 = atspre_gt_int_int (tmp85, 0) ; if (tmp86) { tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_dyn (tmp79, env1, tmp84, tmp77) ; } else { tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_laminit_dyn (tmp79, env1, tmp84, tmp77) ; } /* end of [if] */ break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp81)->tag != 0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp87 = ats_caselptrlab_mac(anairiats_sum_6, tmp81, atslab_0) ; tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp87) ; tmp89 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ats_selptrset_mac(anairiats_sum_10, tmp89, atslab_0, -1) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo_opt (tmp78, tmp77, tmp89) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_dyn (tmp79, env1, tmp88, tmp90) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp81)->tag != 1) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_6, tmp81, atslab_0) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr (tmp91) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_syn (tmp79, tmp74, tmp92, tmp77) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp81)->tag != 2) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp93 = ats_caselptrlab_mac(anairiats_sum_6, tmp81, atslab_0) ; tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0vararg_tr (tmp93) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_sta_ana (tmp79, tmp74, tmp94, tmp77) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (((ats_sum_ptr_type)tmp81)->tag != 3) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_6, tmp81, atslab_0) ; tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (tmp95) ; tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lam_met (tmp79, tmp74, tmp96, tmp77) ; break ; } while (0) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_23_1: tmp71 = arg2 ; break ; } while (0) ; return (tmp71) ; } /* end of [aux_20] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_int_type closure_env_1 ; } aux_20_closure_type ; ats_ptr_type aux_20_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) { return aux_20 (((aux_20_closure_type*)cloptr)->closure_env_0, ((aux_20_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2, arg3) ; } /* end of function */ ATSinline() ats_void_type aux_20_closure_init (aux_20_closure_type *p_clo, ats_ptr_type env0, ats_int_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_20_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type aux_20_closure_make (ats_ptr_type env0, ats_int_type env1) { aux_20_closure_type *p_clo = ATS_MALLOC(sizeof(aux_20_closure_type)) ; aux_20_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 5980(line=266, offs=1) -- 8533(line=373, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr_lams_dyn (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) { /* local vardec */ ATSlocal (ats_ptr_type, tmp70) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_ptr_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr_lams_dyn: tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (arg7) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_9, arg5, atslab_0) ; tmp101 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp99), atslab_s0exp_loc) ; tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp97), atslab_d1exp_loc) ; tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp101, tmp102) ; tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp99) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_type (tmp100, tmp97, tmp103) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: tmp98 = tmp97 ; break ; } while (0) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp105 = ats_caselptrlab_mac(anairiats_sum_9, arg6, atslab_0) ; tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp98), atslab_d1exp_loc) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_effc (tmp106, tmp98, tmp105) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: // if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_27_1: tmp104 = tmp98 ; break ; } while (0) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp108 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; tmp109 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp104), atslab_d1exp_loc) ; tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_funclo (tmp109, tmp104, tmp108) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp107 = tmp104 ; break ; } while (0) ; tmp70 = aux_20 (arg1, arg3, arg0, arg4, tmp107, 0) ; return (tmp70) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr_lams_dyn] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1988(line=70, offs=17) -- 2046(line=73, offs=2) */ ATSstaticdec() ats_void_type prerr_error1_loc_02088_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; __ats_lab_prerr_error1_loc_02088_: /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp115 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ; return /* (tmp115) */ ; } /* end of [prerr_error1_loc_02088_] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 8609(line=379, offs=1) -- 9083(line=398, offs=26) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__termet_check (ats_ptr_type arg0, ats_bool_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_bool_type, tmp112) ; ATSlocal (ats_bool_type, tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp117) ; // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__termet_check: do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp111 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ; if (arg1) { tmp112 = ats_true_bool ; } else { tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__effcst_contain_ntm (tmp111) ; } /* end of [if] */ tmp113 = atspre_neg_bool (tmp112) ; if (tmp113) { /* tmp114 = */ prerr_error1_loc_02088_ (arg0) ; /* tmp117 = */ atspre_prerr_string (ATSstrcst(": a termination metric is missing")) ; /* tmp118 = */ atspre_prerr_newline () ; tmp119 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp119)->tag = 7 ; ats_selptrset_mac(anairiats_sum_6, tmp119, atslab_0, arg0) ; /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp119) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: break ; } while (0) ; return /* (tmp110) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__termet_check] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 9159(line=404, offs=4) -- 9305(line=409, offs=4) */ ATSstaticdec() ats_ptr_type i0nvarg_tr_23 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; __ats_lab_i0nvarg_tr_23: tmp122 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i0nvarg_typ) ; tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr (tmp122) ; tmp123 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i0nvarg_loc) ; tmp124 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i0nvarg_sym) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvarg_make (tmp123, tmp124, tmp121) ; return (tmp120) ; } /* end of [i0nvarg_tr_23] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 9334(line=411, offs=5) -- 9415(line=412, offs=68) */ ATSstaticdec() ats_ptr_type i0nvarglst_tr_24 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; __ats_lab_i0nvarglst_tr_24: tmp126 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &i0nvarg_tr_23) ; tmp125 = ats_castfn_mac(ats_ptr_type, tmp126) ; return (tmp125) ; } /* end of [i0nvarglst_tr_24] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 9420(line=414, offs=4) -- 9706(line=423, offs=4) */ ATSstaticdec() ats_ptr_type i0nvresstate_tr_25 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_ptr_type, tmp132) ; __ats_lab_i0nvresstate_tr_25: tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i0nvresstate_qua) ; do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp129 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_9, tmp129, atslab_0) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr (tmp130) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (tmp129 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp128 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp132 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_i0nvresstate_arg) ; tmp131 = i0nvarglst_tr_24 (tmp132) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1nvresstate_make (tmp128, tmp131) ; return (tmp127) ; } /* end of [i0nvresstate_tr_25] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 9760(line=427, offs=4) -- 10207(line=442, offs=4) */ ATSstaticdec() ats_ptr_type loopi0nv_tr_26 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; __ats_lab_loopi0nv_tr_26: tmp135 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_loopi0nv_qua) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (tmp135 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_9, tmp135, atslab_0) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0qualst_tr (tmp136) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: // if (tmp135 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_35_1: tmp134 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_loopi0nv_met) ; do { /* branch: __ats_lab_36 */ __ats_lab_36_0: if (tmp138 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp139 = ats_caselptrlab_mac(anairiats_sum_9, tmp138, atslab_0) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0explst_tr (tmp139) ; tmp137 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp137, atslab_0, tmp140) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: // if (tmp138 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_37_1: tmp137 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp142 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_loopi0nv_arg) ; tmp141 = i0nvarglst_tr_24 (tmp142) ; tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_loopi0nv_res) ; tmp143 = i0nvresstate_tr_25 (tmp144) ; tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_make (arg0, tmp134, tmp137, tmp141, tmp143) ; return (tmp133) ; } /* end of [loopi0nv_tr_26] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 10257(line=446, offs=4) -- 10426(line=454, offs=4) */ ATSstaticdec() ats_ptr_type i0fcl_tr_27 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab_i0fcl_tr_27: tmp147 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_i0fcl_test) ; tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp147) ; tmp149 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_i0fcl_body) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp149) ; tmp150 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg0), atslab_i0fcl_loc) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__i1fcl_make (tmp150, tmp146, tmp148) ; return (tmp145) ; } /* end of [i0fcl_tr_27] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 10448(line=456, offs=4) -- 10547(line=458, offs=56) */ ATSstaticdec() ats_ptr_type i0fclist_tr_28 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; __ats_lab_i0fclist_tr_28: tmp152 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &i0fcl_tr_27) ; tmp151 = ats_castfn_mac(ats_ptr_type, tmp152) ; return (tmp151) ; } /* end of [i0fclist_tr_28] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 10597(line=463, offs=4) -- 10845(line=472, offs=4) */ ATSstaticdec() ats_ptr_type gm0at_tr_29 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; __ats_lab_gm0at_tr_29: tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_gm0at_exp) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp155) ; tmp157 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_gm0at_pat) ; do { /* branch: __ats_lab_38 */ __ats_lab_38_0: if (tmp157 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp158 = ats_caselptrlab_mac(anairiats_sum_9, tmp157, atslab_0) ; tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp158) ; tmp156 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp156, atslab_0, tmp159) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: // if (tmp157 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_39_1: tmp156 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg0), atslab_gm0at_loc) ; tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__gm1at_make (tmp160, tmp154, tmp156) ; return (tmp153) ; } /* end of [gm0at_tr_29] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 10871(line=474, offs=4) -- 10970(line=476, offs=56) */ ATSstaticdec() ats_ptr_type gm0atlst_tr_30 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; __ats_lab_gm0atlst_tr_30: tmp162 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &gm0at_tr_29) ; tmp161 = ats_castfn_mac(ats_ptr_type, tmp162) ; return (tmp161) ; } /* end of [gm0atlst_tr_30] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 11020(line=481, offs=4) -- 11329(line=501, offs=4) */ ATSstaticdec() ats_ptr_type c0lau_tr_31 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_int_type, tmp172) ; ATSlocal (ats_int_type, tmp173) ; __ats_lab_c0lau_tr_31: tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_c0lau_loc) ; tmp165 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_c0lau_pat) ; tmp167 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp165), atslab_guap0at_pat) ; tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__p0at_tr (tmp167) ; tmp169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp165), atslab_guap0at_gua) ; tmp168 = gm0atlst_tr_30 (tmp169) ; tmp171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_c0lau_body) ; tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp171) ; tmp172 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_c0lau_seq) ; tmp173 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, arg0), atslab_c0lau_neg) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__c1lau_make (tmp164, tmp166, tmp168, tmp172, tmp173, tmp170) ; return (tmp163) ; } /* end of [c0lau_tr_31] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 11355(line=503, offs=4) -- 11452(line=505, offs=55) */ ATSstaticdec() ats_ptr_type c0laulst_tr_32 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; __ats_lab_c0laulst_tr_32: tmp175 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &c0lau_tr_31) ; tmp174 = ats_castfn_mac(ats_ptr_type, tmp175) ; return (tmp174) ; } /* end of [c0laulst_tr_32] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 11481(line=508, offs=4) -- 11653(line=514, offs=4) */ ATSstaticdec() ats_ptr_type sc0lau_tr_33 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab_sc0lau_tr_33: tmp178 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_sc0lau_pat) ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__sp0at_tr (tmp178) ; tmp180 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_sc0lau_body) ; tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp180) ; tmp181 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_sc0lau_loc) ; tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__sc1lau_make (tmp181, tmp177, tmp179) ; return (tmp176) ; } /* end of [sc0lau_tr_33] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 11680(line=516, offs=4) -- 11784(line=518, offs=58) */ ATSstaticdec() ats_ptr_type sc0laulst_tr_34 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; __ats_lab_sc0laulst_tr_34: tmp183 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &sc0lau_tr_33) ; tmp182 = ats_castfn_mac(ats_ptr_type, tmp183) ; return (tmp182) ; } /* end of [sc0laulst_tr_34] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 11842(line=525, offs=4) -- 12095(line=533, offs=4) */ ATSstaticdec() ats_ptr_type d0exp_tr_errmsg_opr_35 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; __ats_lab_d0exp_tr_errmsg_opr_35: tmp185 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d0exp_loc) ; /* tmp186 = */ prerr_error1_loc_02088_ (tmp185) ; /* tmp187 = */ atspre_prerr_string (ATSstrcst(": the operator needs to be applied.")) ; /* tmp188 = */ atspre_prerr_newline () ; tmp190 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp190)->tag = 5 ; ats_selptrset_mac(anairiats_sum_6, tmp190, atslab_0, arg0) ; /* tmp189 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp190) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_errexp (tmp185) ; return (tmp184) ; } /* end of [d0exp_tr_errmsg_opr_35] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 14294(line=631, offs=8) -- 14445(line=637, offs=8) */ ATSstaticdec() ats_ptr_type f_39 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; __ats_lab_f_39: tmp251 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d1exp_loc) ; tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp251) ; tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_foldat (tmp250, env1, arg0) ; tmp249 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp249)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp249, atslab_0, tmp252) ; return (tmp249) ; } /* end of [f_39] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } f_39_closure_type ; ats_ptr_type f_39_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_39 (((f_39_closure_type*)cloptr)->closure_env_0, ((f_39_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type f_39_closure_init (f_39_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&f_39_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type f_39_closure_make (ats_ptr_type env0, ats_ptr_type env1) { f_39_closure_type *p_clo = ATS_MALLOC(sizeof(f_39_closure_type)) ; f_39_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 14618(line=644, offs=8) -- 14769(line=650, offs=8) */ ATSstaticdec() ats_ptr_type f_40 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_ptr_type, tmp259) ; __ats_lab_f_40: tmp258 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d1exp_loc) ; tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp258) ; tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_freeat (tmp257, env1, arg0) ; tmp256 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp256)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp256, atslab_0, tmp259) ; return (tmp256) ; } /* end of [f_40] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } f_40_closure_type ; ats_ptr_type f_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_40 (((f_40_closure_type*)cloptr)->closure_env_0, ((f_40_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type f_40_closure_init (f_40_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&f_40_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type f_40_closure_make (ats_ptr_type env0, ats_ptr_type env1) { f_40_closure_type *p_clo = ATS_MALLOC(sizeof(f_40_closure_type)) ; f_40_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 8880(line=328, offs=5) -- 9252(line=342, offs=4) */ ATSstaticdec() ats_void_type loop_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp381) ; ATSlocal (ats_ptr_type, tmp382) ; ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; __ats_lab_loop_44: do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp382 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp383 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp384 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp384, atslab_0, tmp382) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp384 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp385 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp383 ; arg1 = arg1 ; arg2 = tmp385 ; goto __ats_lab_loop_44 ; // tail call break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_84_1: ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ; break ; } while (0) ; return /* (tmp381) */ ; } /* end of [loop_44] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 8858(line=326, offs=17) -- 9436(line=351, offs=4) */ ATSstaticdec() ats_ptr_type list_append2_vt_01314_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp380) ; ATSlocal (ats_ptr_type, tmp386) ; // ATSlocal_void (tmp387) ; __ats_lab_list_append2_vt_01314_ats_ptr_type: /* ats_ptr_type tmp386 ; */ /* tmp387 = */ loop_44 (arg0, arg1, (&tmp386)) ; tmp380 = tmp386 ; return (tmp380) ; } /* end of [list_append2_vt_01314_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12290(line=449, offs=7) -- 12492(line=454, offs=51) */ ATSstaticdec() ats_ptr_type aux_42 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_ptr_type, tmp379) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; __ats_lab_aux_42: do { /* branch: __ats_lab_82 */ __ats_lab_82_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; } __ats_lab_82_1: tmp378 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp379 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_1) ; tmp388 = aux_42 (tmp378, tmp379) ; tmp377 = list_append2_vt_01314_ats_ptr_type (arg0, tmp388) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_85_1: tmp389 = (ats_sum_ptr_type)0 ; tmp377 = list_append2_vt_01314_ats_ptr_type (arg0, tmp389) ; break ; } while (0) ; return (tmp377) ; } /* end of [aux_42] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12272(line=448, offs=13) -- 12586(line=458, offs=4) */ ATSstaticdec() ats_ptr_type list_concat_01321_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; __ats_lab_list_concat_01321_ats_ptr_type: do { /* branch: __ats_lab_86 */ __ats_lab_86_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp390 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp391 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp376 = aux_42 (tmp390, tmp391) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_87_1: tmp376 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp376) ; } /* end of [list_concat_01321_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_46 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; __ats_lab_loop_46: do { /* branch: __ats_lab_88 */ __ats_lab_88_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; } __ats_lab_88_1: tmp396 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp396 ; goto __ats_lab_loop_46 ; // tail call break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_89_1: break ; } while (0) ; return /* (tmp395) */ ; } /* end of [loop_46] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp394) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp394 = */ loop_46 (arg0) ; return /* (tmp394) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 20875(line=892, offs=8) -- 20996(line=894, offs=8) */ ATSstaticdec() ats_ptr_type f_47 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp443) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp446) ; __ats_lab_f_47: tmp445 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d1exp_loc) ; tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp445) ; tmp446 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ptrof (tmp444, arg0) ; tmp443 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp443)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_0, tmp446) ; return (tmp443) ; } /* end of [f_47] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } f_47_closure_type ; ats_ptr_type f_47_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_47 (((f_47_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type f_47_closure_init (f_47_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&f_47_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type f_47_closure_make (ats_ptr_type env0) { f_47_closure_type *p_clo = ATS_MALLOC(sizeof(f_47_closure_type)) ; f_47_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 21125(line=899, offs=8) -- 21248(line=901, offs=8) */ ATSstaticdec() ats_ptr_type f_48 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; __ats_lab_f_48: tmp450 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d1exp_loc) ; tmp449 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (env0, tmp450) ; tmp451 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_viewat (tmp449, arg0) ; tmp448 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp448)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp448, atslab_0, tmp451) ; return (tmp448) ; } /* end of [f_48] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } f_48_closure_type ; ats_ptr_type f_48_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_48 (((f_48_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type f_48_closure_init (f_48_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&f_48_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type f_48_closure_make (ats_ptr_type env0) { f_48_closure_type *p_clo = ATS_MALLOC(sizeof(f_48_closure_type)) ; f_48_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 23404(line=986, offs=8) -- 23552(line=990, offs=56) */ ATSstaticdec() ats_ptr_type f_49 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp519) ; ATSlocal (ats_ptr_type, tmp520) ; ATSlocal (ats_ptr_type, tmp521) ; ATSlocal (ats_ptr_type, tmp522) ; __ats_lab_f_49: tmp521 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d1exp_loc) ; tmp520 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp521, env0) ; tmp522 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_selab (tmp520, env1, arg0, env2) ; tmp519 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp519)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp519, atslab_0, tmp522) ; return (tmp519) ; } /* end of [f_49] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_int_type closure_env_1 ; ats_ptr_type closure_env_2 ; } f_49_closure_type ; ats_ptr_type f_49_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_49 (((f_49_closure_type*)cloptr)->closure_env_0, ((f_49_closure_type*)cloptr)->closure_env_1, ((f_49_closure_type*)cloptr)->closure_env_2, arg0) ; } /* end of function */ ATSinline() ats_void_type f_49_closure_init (f_49_closure_type *p_clo, ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&f_49_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type f_49_closure_make (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2) { f_49_closure_type *p_clo = ATS_MALLOC(sizeof(f_49_closure_type)) ; f_49_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 23940(line=1008, offs=8) -- 24088(line=1012, offs=56) */ ATSstaticdec() ats_ptr_type f_50 (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp530) ; ATSlocal (ats_ptr_type, tmp531) ; ATSlocal (ats_ptr_type, tmp532) ; ATSlocal (ats_ptr_type, tmp533) ; __ats_lab_f_50: tmp532 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_d1exp_loc) ; tmp531 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp532, env0) ; tmp533 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_selab (tmp531, env1, arg0, env2) ; tmp530 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp530)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp530, atslab_0, tmp533) ; return (tmp530) ; } /* end of [f_50] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_int_type closure_env_1 ; ats_ptr_type closure_env_2 ; } f_50_closure_type ; ats_ptr_type f_50_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return f_50 (((f_50_closure_type*)cloptr)->closure_env_0, ((f_50_closure_type*)cloptr)->closure_env_1, ((f_50_closure_type*)cloptr)->closure_env_2, arg0) ; } /* end of function */ ATSinline() ats_void_type f_50_closure_init (f_50_closure_type *p_clo, ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&f_50_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type f_50_closure_make (ats_ptr_type env0, ats_int_type env1, ats_ptr_type env2) { f_50_closure_type *p_clo = ATS_MALLOC(sizeof(f_50_closure_type)) ; f_50_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 12216(line=543, offs=1) -- 25930(line=1085, offs=4) */ ATSstaticdec() ats_ptr_type aux_item_37 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; ATSlocal (ats_bool_type, tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; ATSlocal (ats_bool_type, tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_ptr_type, tmp201) ; ATSlocal (ats_ptr_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; ATSlocal (ats_ptr_type, tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_ptr_type, tmp231) ; ATSlocal (ats_ptr_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_int_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_ptr_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; // ATSlocal_void (tmp267) ; // ATSlocal_void (tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; // ATSlocal_void (tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; ATSlocal (ats_ptr_type, tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; // ATSlocal_void (tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; // ATSlocal_void (tmp286) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_int_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; ATSlocal (ats_ptr_type, tmp305) ; ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp333) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; ATSlocal (ats_ptr_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_int_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_ptr_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; ATSlocal (ats_ptr_type, tmp352) ; ATSlocal (ats_ptr_type, tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; ATSlocal (ats_int_type, tmp355) ; ATSlocal (ats_int_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_ptr_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_int_type, tmp360) ; ATSlocal (ats_int_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; ATSlocal (ats_ptr_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_ptr_type, tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp392) ; // ATSlocal_void (tmp393) ; ATSlocal (ats_ptr_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_ptr_type, tmp399) ; ATSlocal (ats_ptr_type, tmp400) ; ATSlocal (ats_ptr_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_ptr_type, tmp403) ; ATSlocal (ats_ptr_type, tmp404) ; ATSlocal (ats_ptr_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_ptr_type, tmp408) ; ATSlocal (ats_ptr_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_ptr_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_ptr_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (anairiats_rec_1, tmp419) ; ATSlocal (ats_ptr_type, tmp420) ; ATSlocal (ats_int_type, tmp421) ; ATSlocal (ats_int_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_int_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; ATSlocal (ats_ptr_type, tmp430) ; ATSlocal (ats_ptr_type, tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_int_type, tmp433) ; ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; ATSlocal (ats_ptr_type, tmp454) ; ATSlocal (ats_ptr_type, tmp455) ; ATSlocal (ats_ptr_type, tmp456) ; ATSlocal (ats_ptr_type, tmp457) ; ATSlocal (ats_ptr_type, tmp458) ; ATSlocal (ats_ptr_type, tmp459) ; ATSlocal (ats_ptr_type, tmp460) ; ATSlocal (ats_ptr_type, tmp461) ; ATSlocal (ats_int_type, tmp462) ; ATSlocal (ats_ptr_type, tmp463) ; ATSlocal (ats_ptr_type, tmp464) ; ATSlocal (ats_ptr_type, tmp465) ; ATSlocal (ats_ptr_type, tmp466) ; ATSlocal (ats_int_type, tmp467) ; ATSlocal (anairiats_rec_33, tmp468) ; ATSlocal (ats_ptr_type, tmp469) ; ATSlocal (anairiats_rec_1, tmp470) ; ATSlocal (ats_ptr_type, tmp471) ; ATSlocal (ats_int_type, tmp472) ; ATSlocal (ats_int_type, tmp473) ; ATSlocal (ats_ptr_type, tmp474) ; ATSlocal (ats_int_type, tmp475) ; ATSlocal (ats_bool_type, tmp476) ; ATSlocal (ats_ptr_type, tmp477) ; ATSlocal (ats_ptr_type, tmp478) ; ATSlocal (ats_ptr_type, tmp479) ; ATSlocal (ats_ptr_type, tmp480) ; ATSlocal (ats_int_type, tmp481) ; ATSlocal (ats_ptr_type, tmp482) ; ATSlocal (ats_ptr_type, tmp483) ; ATSlocal (ats_ptr_type, tmp484) ; ATSlocal (ats_int_type, tmp485) ; ATSlocal (ats_ptr_type, tmp486) ; ATSlocal (ats_ptr_type, tmp487) ; ATSlocal (ats_ptr_type, tmp488) ; ATSlocal (ats_ptr_type, tmp489) ; ATSlocal (ats_ptr_type, tmp490) ; ATSlocal (anairiats_rec_33, tmp491) ; ATSlocal (ats_ptr_type, tmp492) ; ATSlocal (anairiats_rec_1, tmp493) ; ATSlocal (ats_ptr_type, tmp494) ; ATSlocal (ats_int_type, tmp495) ; ATSlocal (ats_int_type, tmp496) ; ATSlocal (ats_ptr_type, tmp497) ; ATSlocal (ats_ptr_type, tmp498) ; ATSlocal (ats_ptr_type, tmp499) ; ATSlocal (ats_ptr_type, tmp500) ; ATSlocal (ats_ptr_type, tmp501) ; ATSlocal (ats_int_type, tmp502) ; ATSlocal (ats_ptr_type, tmp503) ; ATSlocal (ats_ptr_type, tmp504) ; ATSlocal (ats_ptr_type, tmp505) ; ATSlocal (ats_bool_type, tmp506) ; // ATSlocal_void (tmp507) ; ATSlocal (ats_int_type, tmp508) ; ATSlocal (ats_int_type, tmp509) ; ATSlocal (ats_bool_type, tmp510) ; ATSlocal (ats_ptr_type, tmp511) ; ATSlocal (ats_int_type, tmp512) ; ATSlocal (ats_ptr_type, tmp513) ; ATSlocal (ats_ptr_type, tmp514) ; ATSlocal (ats_ptr_type, tmp515) ; ATSlocal (ats_int_type, tmp516) ; ATSlocal (ats_ptr_type, tmp517) ; ATSlocal (ats_ptr_type, tmp518) ; ATSlocal (ats_ptr_type, tmp523) ; ATSlocal (ats_int_type, tmp524) ; ATSlocal (ats_ptr_type, tmp525) ; ATSlocal (ats_ptr_type, tmp526) ; ATSlocal (ats_ptr_type, tmp527) ; // ATSlocal_void (tmp528) ; ATSlocal (ats_ptr_type, tmp529) ; ATSlocal (ats_ptr_type, tmp534) ; ATSlocal (ats_ptr_type, tmp535) ; ATSlocal (ats_ptr_type, tmp536) ; ATSlocal (ats_ptr_type, tmp537) ; ATSlocal (ats_ptr_type, tmp538) ; ATSlocal (ats_ptr_type, tmp539) ; ATSlocal (ats_ptr_type, tmp540) ; ATSlocal (ats_ptr_type, tmp541) ; ATSlocal (ats_ptr_type, tmp542) ; ATSlocal (ats_ptr_type, tmp543) ; ATSlocal (ats_ptr_type, tmp544) ; ATSlocal (ats_ptr_type, tmp545) ; ATSlocal (ats_ptr_type, tmp546) ; ATSlocal (ats_ptr_type, tmp547) ; ATSlocal (ats_ptr_type, tmp548) ; ATSlocal (ats_ptr_type, tmp549) ; ATSlocal (ats_ptr_type, tmp550) ; ATSlocal (ats_ptr_type, tmp551) ; ATSlocal (ats_ptr_type, tmp552) ; ATSlocal (ats_ptr_type, tmp553) ; ATSlocal (ats_ptr_type, tmp554) ; ATSlocal (ats_ptr_type, tmp555) ; ATSlocal (ats_ptr_type, tmp556) ; ATSlocal (ats_ptr_type, tmp557) ; ATSlocal (ats_ptr_type, tmp558) ; ATSlocal (ats_ptr_type, tmp559) ; ATSlocal (ats_ptr_type, tmp560) ; ATSlocal (ats_ptr_type, tmp561) ; ATSlocal (ats_ptr_type, tmp562) ; ATSlocal (ats_ptr_type, tmp563) ; ATSlocal (ats_ptr_type, tmp564) ; ATSlocal (ats_ptr_type, tmp565) ; ATSlocal (ats_ptr_type, tmp566) ; ATSlocal (ats_ptr_type, tmp567) ; ATSlocal (ats_ptr_type, tmp568) ; ATSlocal (ats_ptr_type, tmp569) ; ATSlocal (ats_ptr_type, tmp570) ; ATSlocal (ats_ptr_type, tmp571) ; ATSlocal (ats_ptr_type, tmp572) ; ATSlocal (ats_ptr_type, tmp573) ; ATSlocal (ats_ptr_type, tmp574) ; ATSlocal (ats_ptr_type, tmp575) ; ATSlocal (ats_ptr_type, tmp576) ; ATSlocal (ats_ptr_type, tmp577) ; ATSlocal (ats_ptr_type, tmp578) ; ATSlocal (ats_ptr_type, tmp579) ; ATSlocal (ats_ptr_type, tmp580) ; __ats_lab_aux_item_37: tmp193 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d0exp_loc) ; tmp194 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d0exp_node) ; do { /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp194)->tag != 0) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp195 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp195, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ; if (!tmp196) { goto __ats_lab_41_1 ; } tmp192 = d1expitm_backslash_9 (tmp193) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp194)->tag != 0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp197 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp197, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ; if (!tmp198) { goto __ats_lab_42_1 ; } tmp192 = d1expitm_underscore_12 (tmp193) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp194)->tag != 0) { goto __ats_lab_45_0 ; } __ats_lab_42_1: tmp199 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ide (tmp193, tmp199) ; tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find (tmp199) ; do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (tmp201 != (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp200) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (tmp201 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_9, tmp201, atslab_0) ; ATS_FREE(tmp201) ; tmp192 = d1exp_make_opr_7 (tmp200, tmp202) ; break ; } while (0) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp194)->tag != 2) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp203 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ide (tmp193, tmp203) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp204) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp194)->tag != 1) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp205 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp206 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid (tmp193, tmp205, tmp206) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp207) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp194)->tag != 3) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp208 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_idext (tmp193, tmp208) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp209) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp194)->tag != 4) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp210 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp211 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_i0nt (tmp193, tmp210) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp211) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp194)->tag != 5) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp212 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_c0har (tmp193, tmp212) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp213) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp194)->tag != 6) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp215 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_f0loat (tmp193, tmp214) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp215) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp194)->tag != 7) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp216 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_s0tring (tmp193, tmp216) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp217) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp194)->tag != 8) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_empty (tmp193) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp218) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp194)->tag != 9) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp219 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp220 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_cstsp (tmp193, tmp219) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp220) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp194)->tag != 10) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp221 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp221) ; tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tyrep (tmp193, tmp223) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp222) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp194)->tag != 11) { goto __ats_lab_56_0 ; } __ats_lab_55_1: tmp224 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp224) ; tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_literal (tmp193, tmp226) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp225) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp194)->tag != 12) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp227 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp228 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp227) ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extval (tmp193, tmp230, tmp228) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp229) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp194)->tag != 13) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp231 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_0) ; tmp232 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_1) ; tmp233 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_2) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp231) ; tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (tmp233) ; tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extfcall (tmp193, tmp234, tmp232, tmp235) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp236) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp194)->tag != 14) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp237 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_0) ; tmp238 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_1) ; tmp239 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_2) ; tmp240 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_3) ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp237) ; tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp238) ; tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (tmp240) ; tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_extmcall (tmp193, tmp241, tmp242, tmp239, tmp243) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp244) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp194)->tag != 54) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp245 = ats_caselptrlab_mac(anairiats_sum_22, tmp194, atslab_0) ; tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_loopexn (tmp193, tmp245) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp246) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp194)->tag != 15) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp247 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp248 = s0expdarglst_tr_15 (tmp247) ; tmp253 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ((ats_sum_ptr_type)tmp253)->tag = 1 ; ats_selptrset_mac(anairiats_sum_23, tmp253, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__foldat_prec_dyn) ; ats_selptrset_mac(anairiats_sum_23, tmp253, atslab_1, f_39_closure_make (tmp193, tmp248)) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp192)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_0, tmp193) ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_1, tmp253) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp194)->tag != 16) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp254 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp255 = s0expdarglst_tr_15 (tmp254) ; tmp260 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ((ats_sum_ptr_type)tmp260)->tag = 1 ; ats_selptrset_mac(anairiats_sum_23, tmp260, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__freeat_prec_dyn) ; ats_selptrset_mac(anairiats_sum_23, tmp260, atslab_1, f_40_closure_make (tmp193, tmp255)) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp192)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_0, tmp193) ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_1, tmp260) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp194)->tag != 17) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp261 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp262 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; tmp263 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp262, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__t0mpmarg_tr) ; tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tmpid (tmp193, tmp261, ats_castfn_mac(ats_ptr_type, tmp263)) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp264) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp194)->tag != 18) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp265 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp266 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; /* tmp267 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push () ; /* tmp268 = ats_selsin_mac(tmp267, atslab_1) */ ; tmp269 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp265) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp266) ; /* tmp271 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop () ; tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_let (tmp193, tmp269, tmp270) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp272) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp194)->tag != 19) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp273 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; /* tmp274 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push () ; /* tmp275 = ats_selsin_mac(tmp274, atslab_1) */ ; tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp273) ; tmp277 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_empty (tmp193) ; /* tmp278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop () ; tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_let (tmp193, tmp276, tmp277) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp279) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp194)->tag != 20) { goto __ats_lab_66_0 ; } __ats_lab_65_1: tmp280 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp281 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; /* tmp282 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_push () ; /* tmp283 = ats_selsin_mac(tmp282, atslab_1) */ ; tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0eclist_tr (tmp281) ; tmp285 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp280) ; /* tmp286 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_trans1_env_pop () ; tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_where (tmp193, tmp285, tmp284) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp287) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp194)->tag != 21) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp288 = aux_itemlst_38 (arg0) ; tmp290 = d1expitm_app_5 (tmp193) ; tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve (tmp193, &d1exp_get_loc_6, tmp290, tmp288) ; tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d1exp_syndef_resolve (tmp193, tmp289) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp291) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp194)->tag != 22) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp292 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_0) ; tmp293 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_1) ; tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (tmp293) ; tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_list (tmp193, tmp292, tmp294) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp295) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp194)->tag != 23) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp296 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_0) ; tmp297 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_1) ; tmp298 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_2) ; tmp299 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_3) ; tmp301 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, tmp296), atslab_ifhead_inv) ; tmp300 = i0nvresstate_tr_25 (tmp301) ; tmp302 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp297) ; tmp303 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp298) ; tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0expopt_tr (tmp299) ; tmp305 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifhead (tmp193, tmp300, tmp302, tmp303, tmp304) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp305) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp194)->tag != 24) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp306 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_0) ; tmp307 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_1) ; tmp308 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_2) ; tmp309 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_3) ; tmp310 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_25, tmp306), atslab_sifhead_inv) ; tmp311 = i0nvresstate_tr_25 (tmp310) ; tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp307) ; tmp313 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp308) ; tmp314 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp309) ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sifhead (tmp193, tmp311, tmp312, tmp313, tmp314) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp315) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp194)->tag != 25) { goto __ats_lab_71_0 ; } __ats_lab_70_1: tmp316 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp317 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; tmp318 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_24, tmp316), atslab_ifhead_inv) ; tmp319 = i0nvresstate_tr_25 (tmp318) ; tmp320 = i0fclist_tr_28 (tmp317) ; tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ifcasehd (tmp193, tmp319, tmp320) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp321) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp194)->tag != 26) { goto __ats_lab_74_0 ; } __ats_lab_71_1: tmp322 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_0) ; tmp323 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_1) ; tmp324 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_2) ; tmp325 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp322), atslab_casehead_tok) ; tmp326 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_27, tmp325), atslab_token_node) ; if (((ats_sum_ptr_type)tmp326)->tag != 37) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 17532(line=772, offs=9) -- 17560(line=772, offs=37)") ; } tmp327 = ats_caselptrlab_mac(anairiats_sum_6, tmp326, atslab_0) ; tmp328 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_26, tmp322), atslab_casehead_inv) ; tmp329 = i0nvresstate_tr_25 (tmp328) ; tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp323) ; tmp332 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp330), atslab_d1exp_node) ; do { /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp332)->tag != 30) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp333 = ats_caselptrlab_mac(anairiats_sum_5, tmp332, atslab_1) ; tmp331 = tmp333 ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: __ats_lab_73_1: tmp334 = (ats_sum_ptr_type)0 ; tmp331 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp331, atslab_0, tmp330) ; ats_selptrset_mac(anairiats_sum_4, tmp331, atslab_1, tmp334) ; break ; } while (0) ; tmp335 = c0laulst_tr_32 (tmp324) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_casehead (tmp193, tmp327, tmp329, tmp331, tmp335) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp336) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp194)->tag != 27) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp337 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_0) ; tmp338 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_1) ; tmp339 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_2) ; tmp340 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, tmp337), atslab_scasehead_inv) ; tmp341 = i0nvresstate_tr_25 (tmp340) ; tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp338) ; tmp343 = sc0laulst_tr_34 (tmp339) ; tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_scasehead (tmp193, tmp341, tmp342, tmp343) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp344) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp194)->tag != 28) { goto __ats_lab_78_0 ; } __ats_lab_75_1: tmp345 = ats_caselptrlab_mac(anairiats_sum_29, tmp194, atslab_0) ; tmp346 = ats_caselptrlab_mac(anairiats_sum_29, tmp194, atslab_1) ; tmp347 = ats_caselptrlab_mac(anairiats_sum_29, tmp194, atslab_2) ; tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr (tmp346) ; tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp347) ; tmp351 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp349), atslab_d1exp_node) ; do { /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp351)->tag != 30) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp352 = ats_caselptrlab_mac(anairiats_sum_5, tmp351, atslab_1) ; tmp350 = tmp352 ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: __ats_lab_77_1: tmp353 = (ats_sum_ptr_type)0 ; tmp350 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp350, atslab_0, tmp349) ; ats_selptrset_mac(anairiats_sum_4, tmp350, atslab_1, tmp353) ; break ; } while (0) ; tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_lst (tmp193, tmp345, tmp348, tmp350) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp354) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp194)->tag != 29) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp355 = ats_caselptrlab_mac(anairiats_sum_30, tmp194, atslab_0) ; tmp356 = ats_caselptrlab_mac(anairiats_sum_30, tmp194, atslab_1) ; tmp357 = ats_caselptrlab_mac(anairiats_sum_30, tmp194, atslab_2) ; tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (tmp357) ; tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tup (tmp193, tmp355, tmp356, tmp358) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp359) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp194)->tag != 30) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp360 = ats_caselptrlab_mac(anairiats_sum_30, tmp194, atslab_0) ; tmp361 = ats_caselptrlab_mac(anairiats_sum_30, tmp194, atslab_1) ; tmp362 = ats_caselptrlab_mac(anairiats_sum_30, tmp194, atslab_2) ; tmp363 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp362, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labd0exp_tr) ; tmp364 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_rec (tmp193, tmp360, tmp361, ats_castfn_mac(ats_ptr_type, tmp363)) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp364) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp194)->tag != 31) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp365 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp367 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (tmp365) ; tmp366 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_seq (tmp193, tmp367) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp366) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp194)->tag != 32) { goto __ats_lab_90_0 ; } __ats_lab_81_1: tmp368 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_0) ; tmp369 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_1) ; tmp370 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_2) ; tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, tmp368), atslab_dqi0de_loc) ; tmp373 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, tmp368), atslab_dqi0de_qua) ; tmp374 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, tmp368), atslab_dqi0de_sym) ; tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_dqid (tmp372, tmp373, tmp374) ; tmp375 = list_concat_01321_ats_ptr_type (tmp370) ; tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (ats_castfn_mac(ats_ptr_type, tmp375)) ; /* tmp393 = */ list_vt_free_01499_ats_ptr_type (tmp375) ; tmp397 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrsub (tmp193, tmp371, tmp369, tmp392) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp397) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp194)->tag != 33) { goto __ats_lab_93_0 ; } __ats_lab_90_1: tmp398 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp399 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0expopt_tr (tmp398) ; tmp401 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp399) ; tmp403 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp401), atslab_d1exp_node) ; do { /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp403)->tag != 30) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp404 = ats_caselptrlab_mac(anairiats_sum_5, tmp403, atslab_1) ; tmp402 = tmp404 ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: __ats_lab_92_1: tmp405 = (ats_sum_ptr_type)0 ; tmp402 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp402, atslab_0, tmp401) ; ats_selptrset_mac(anairiats_sum_4, tmp402, atslab_1, tmp405) ; break ; } while (0) ; tmp406 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrpsz (tmp193, tmp400, tmp402) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp406) ; break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp194)->tag != 34) { goto __ats_lab_94_0 ; } __ats_lab_93_1: tmp407 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_0) ; tmp408 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_1) ; tmp409 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_2) ; tmp410 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp407) ; tmp411 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0expopt_tr (tmp408) ; tmp412 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (tmp409) ; tmp413 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_arrinit (tmp193, tmp410, tmp411, tmp412) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp413) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp194)->tag != 39) { goto __ats_lab_95_0 ; } __ats_lab_94_1: tmp414 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp414) ; tmp415 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_raise (tmp193, tmp416) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp415) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp194)->tag != 40) { goto __ats_lab_96_0 ; } __ats_lab_95_1: tmp417 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp418 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr (tmp417) ; tmp420 = ats_select_mac(tmp419, atslab_0) ; tmp421 = ats_select_mac(tmp419, atslab_1) ; tmp422 = ats_select_mac(tmp419, atslab_2) ; tmp423 = ats_select_mac(tmp419, atslab_3) ; tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp418) ; tmp425 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask (tmp193, tmp423, tmp424) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp425) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp194)->tag != 41) { goto __ats_lab_97_0 ; } __ats_lab_96_1: tmp426 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_0) ; tmp427 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_1) ; tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp427) ; tmp429 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_effmask_arg (tmp193, tmp426, tmp428) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp429) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp194)->tag != 42) { goto __ats_lab_98_0 ; } __ats_lab_97_1: tmp430 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp432 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (tmp430) ; tmp431 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vararg (tmp193, tmp432) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp431) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp194)->tag != 43) { goto __ats_lab_99_0 ; } __ats_lab_98_1: tmp433 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_0) ; tmp434 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_1) ; tmp436 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp434) ; tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_vcopyenv (tmp193, tmp433, tmp436) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp435) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp194)->tag != 44) { goto __ats_lab_100_0 ; } __ats_lab_99_1: tmp437 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp439 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp437) ; tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_showtype (tmp193, tmp439) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp438) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp194)->tag != 45) { goto __ats_lab_101_0 ; } __ats_lab_100_1: tmp440 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp442 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp440) ; tmp441 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_tempenver (tmp193, tmp442) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp441) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp194)->tag != 35) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp447 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ((ats_sum_ptr_type)tmp447)->tag = 1 ; ats_selptrset_mac(anairiats_sum_23, tmp447, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__ptrof_prec_dyn) ; ats_selptrset_mac(anairiats_sum_23, tmp447, atslab_1, f_47_closure_make (tmp193)) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp192)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_0, tmp193) ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_1, tmp447) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp194)->tag != 36) { goto __ats_lab_103_0 ; } __ats_lab_102_1: tmp452 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ((ats_sum_ptr_type)tmp452)->tag = 1 ; ats_selptrset_mac(anairiats_sum_23, tmp452, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__viewat_prec_dyn) ; ats_selptrset_mac(anairiats_sum_23, tmp452, atslab_1, f_48_closure_make (tmp193)) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp192)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_0, tmp193) ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_1, tmp452) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp194)->tag != 46) { goto __ats_lab_104_0 ; } __ats_lab_103_1: tmp453 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp455 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exparg_tr (tmp193, tmp453) ; tmp454 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_sexparg (tmp193, tmp455) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp454) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp194)->tag != 47) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp456 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_0) ; tmp457 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_1) ; tmp458 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_2) ; tmp459 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exparg_tr (tmp456, tmp457) ; tmp460 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp458) ; tmp461 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_exist (tmp193, tmp459, tmp460) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp461) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp194)->tag != 49) { goto __ats_lab_108_0 ; } __ats_lab_105_1: tmp462 = ats_caselptrlab_mac(anairiats_sum_32, tmp194, atslab_0) ; tmp463 = ats_caselptrlab_mac(anairiats_sum_32, tmp194, atslab_1) ; tmp464 = ats_caselptrlab_mac(anairiats_sum_32, tmp194, atslab_2) ; tmp465 = ats_caselptrlab_mac(anairiats_sum_32, tmp194, atslab_3) ; tmp466 = ats_caselptrlab_mac(anairiats_sum_32, tmp194, atslab_4) ; tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_islin (tmp462) ; do { /* branch: __ats_lab_106 */ __ats_lab_106_0: if (tmp465 == (ats_sum_ptr_type)0) { goto __ats_lab_107_0 ; } __ats_lab_106_1: tmp469 = ats_caselptrlab_mac(anairiats_sum_9, tmp465, atslab_0) ; tmp470 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr (tmp469) ; tmp471 = ats_select_mac(tmp470, atslab_0) ; tmp472 = ats_select_mac(tmp470, atslab_1) ; tmp473 = ats_select_mac(tmp470, atslab_2) ; tmp474 = ats_select_mac(tmp470, atslab_3) ; tmp476 = atspre_gt_int_int (tmp467, 0) ; if (tmp476) { tmp475 = 1 ; } else { tmp475 = tmp472 ; } /* end of [if] */ tmp477 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp477, atslab_0, tmp474) ; tmp468.atslab_0 = tmp471 ; tmp468.atslab_1 = tmp475 ; tmp468.atslab_2 = tmp477 ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: // if (tmp465 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_107_1: tmp478 = (ats_sum_ptr_type)0 ; tmp479 = (ats_sum_ptr_type)0 ; tmp468.atslab_0 = tmp478 ; tmp468.atslab_1 = tmp467 ; tmp468.atslab_2 = tmp479 ; break ; } while (0) ; tmp480 = ats_select_mac(tmp468, atslab_0) ; tmp481 = ats_select_mac(tmp468, atslab_1) ; tmp482 = ats_select_mac(tmp468, atslab_2) ; tmp484 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp484, atslab_0, tmp193) ; tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr_lams_dyn (tmp462, tmp484, tmp480, tmp481, tmp463, tmp464, tmp482, tmp466) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp483) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp194)->tag != 50) { goto __ats_lab_111_0 ; } __ats_lab_108_1: tmp485 = ats_caselptrlab_mac(anairiats_sum_34, tmp194, atslab_0) ; tmp486 = ats_caselptrlab_mac(anairiats_sum_34, tmp194, atslab_1) ; tmp487 = ats_caselptrlab_mac(anairiats_sum_34, tmp194, atslab_2) ; tmp488 = ats_caselptrlab_mac(anairiats_sum_34, tmp194, atslab_3) ; tmp489 = ats_caselptrlab_mac(anairiats_sum_34, tmp194, atslab_4) ; tmp490 = ats_caselptrlab_mac(anairiats_sum_34, tmp194, atslab_5) ; do { /* branch: __ats_lab_109 */ __ats_lab_109_0: if (tmp489 == (ats_sum_ptr_type)0) { goto __ats_lab_110_0 ; } __ats_lab_109_1: tmp492 = ats_caselptrlab_mac(anairiats_sum_9, tmp489, atslab_0) ; tmp493 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0fftaglst_tr (tmp492) ; tmp494 = ats_select_mac(tmp493, atslab_0) ; tmp495 = ats_select_mac(tmp493, atslab_1) ; tmp496 = ats_select_mac(tmp493, atslab_2) ; tmp497 = ats_select_mac(tmp493, atslab_3) ; tmp498 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp498, atslab_0, tmp497) ; tmp491.atslab_0 = tmp494 ; tmp491.atslab_1 = tmp495 ; tmp491.atslab_2 = tmp498 ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: // if (tmp489 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_110_1: tmp499 = (ats_sum_ptr_type)0 ; tmp500 = (ats_sum_ptr_type)0 ; tmp491.atslab_0 = tmp499 ; tmp491.atslab_1 = 0 ; tmp491.atslab_2 = tmp500 ; break ; } while (0) ; tmp501 = ats_select_mac(tmp491, atslab_0) ; tmp502 = ats_select_mac(tmp491, atslab_1) ; tmp503 = ats_select_mac(tmp491, atslab_2) ; tmp505 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp505, atslab_0, tmp193) ; tmp504 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr_lams_dyn (tmp485, tmp505, tmp501, tmp502, tmp487, tmp488, tmp503, tmp490) ; tmp506 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_is_metric (tmp504) ; /* tmp507 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__termet_check (tmp193, tmp506, tmp503) ; tmp508 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__lamkind_isbox (tmp485) ; tmp510 = atspre_gt_int_int (tmp508, 0) ; if (tmp510) { tmp509 = 1 ; } else { tmp509 = 0 ; } /* end of [if] */ tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_fix (tmp193, tmp509, tmp486, tmp504) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp511) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp194)->tag != 51) { goto __ats_lab_112_0 ; } __ats_lab_111_1: tmp512 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_0) ; tmp513 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_1) ; tmp514 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp513) ; tmp515 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_delay (tmp193, tmp512, tmp514) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp515) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp194)->tag != 37) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp516 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_0) ; tmp517 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_1) ; tmp518 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_lab (tmp193, tmp517) ; tmp523 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ((ats_sum_ptr_type)tmp523)->tag = 2 ; ats_selptrset_mac(anairiats_sum_23, tmp523, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec) ; ats_selptrset_mac(anairiats_sum_23, tmp523, atslab_1, f_49_closure_make (tmp193, tmp516, tmp518)) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp192)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_0, tmp193) ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_1, tmp523) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)tmp194)->tag != 38) { goto __ats_lab_114_0 ; } __ats_lab_113_1: tmp524 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_0) ; tmp525 = ats_caselptrlab_mac(anairiats_sum_5, tmp194, atslab_1) ; tmp526 = list_concat_01321_ats_ptr_type (tmp525) ; tmp527 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (ats_castfn_mac(ats_ptr_type, tmp526)) ; /* tmp528 = */ list_vt_free_01499_ats_ptr_type (tmp526) ; tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1lab_ind (tmp193, tmp527) ; tmp534 = ATS_MALLOC(sizeof(anairiats_sum_23)) ; ((ats_sum_ptr_type)tmp534)->tag = 2 ; ats_selptrset_mac(anairiats_sum_23, tmp534, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__select_prec) ; ats_selptrset_mac(anairiats_sum_23, tmp534, atslab_1, f_50_closure_make (tmp193, tmp524, tmp529)) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp192)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_0, tmp193) ; ats_selptrset_mac(anairiats_sum_3, tmp192, atslab_1, tmp534) ; break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)tmp194)->tag != 55) { goto __ats_lab_115_0 ; } __ats_lab_114_1: tmp535 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_0) ; tmp536 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_1) ; tmp537 = ats_caselptrlab_mac(anairiats_sum_20, tmp194, atslab_2) ; tmp539 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, tmp535), atslab_tryhead_inv) ; tmp538 = i0nvresstate_tr_25 (tmp539) ; tmp540 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp536) ; tmp541 = c0laulst_tr_32 (tmp537) ; tmp542 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_trywith (tmp193, tmp538, tmp540, tmp541) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp542) ; break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)tmp194)->tag != 52) { goto __ats_lab_118_0 ; } __ats_lab_115_1: tmp543 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_0) ; tmp544 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_1) ; tmp545 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_2) ; tmp546 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_3) ; do { /* branch: __ats_lab_116 */ __ats_lab_116_0: if (tmp543 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; } __ats_lab_116_1: tmp548 = ats_caselptrlab_mac(anairiats_sum_9, tmp543, atslab_0) ; tmp547 = loopi0nv_tr_26 (tmp544, tmp548) ; break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: // if (tmp543 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_117_1: tmp547 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_nil (tmp544) ; break ; } while (0) ; tmp550 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, tmp545), atslab_itp_init) ; tmp549 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp550) ; tmp552 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, tmp545), atslab_itp_test) ; tmp551 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp552) ; tmp554 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, tmp545), atslab_itp_post) ; tmp553 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp554) ; tmp555 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp546) ; tmp556 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_for (tmp193, tmp547, tmp549, tmp551, tmp553, tmp555) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp556) ; break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)tmp194)->tag != 53) { goto __ats_lab_121_0 ; } __ats_lab_118_1: tmp557 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_0) ; tmp558 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_1) ; tmp559 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_2) ; tmp560 = ats_caselptrlab_mac(anairiats_sum_21, tmp194, atslab_3) ; do { /* branch: __ats_lab_119 */ __ats_lab_119_0: if (tmp557 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; } __ats_lab_119_1: tmp562 = ats_caselptrlab_mac(anairiats_sum_9, tmp557, atslab_0) ; tmp561 = loopi0nv_tr_26 (tmp558, tmp562) ; break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: // if (tmp557 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_120_1: tmp561 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__loopi1nv_nil (tmp558) ; break ; } while (0) ; tmp563 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp559) ; tmp564 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp560) ; tmp565 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_while (tmp193, tmp561, tmp563, tmp564) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp565) ; break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)tmp194)->tag != 48) { goto __ats_lab_122_0 ; } __ats_lab_121_1: tmp566 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp567 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; tmp568 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp566) ; tmp569 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp567) ; tmp570 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_ann_type (tmp193, tmp568, tmp569) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp570) ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: if (((ats_sum_ptr_type)tmp194)->tag != 56) { goto __ats_lab_123_0 ; } __ats_lab_122_1: tmp571 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_0) ; tmp572 = ats_caselptrlab_mac(anairiats_sum_3, tmp194, atslab_1) ; tmp574 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp572) ; tmp573 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_macsyn (tmp193, tmp571, tmp574) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp573) ; break ; /* branch: __ats_lab_123 */ __ats_lab_123_0: if (((ats_sum_ptr_type)tmp194)->tag != 57) { goto __ats_lab_124_0 ; } __ats_lab_123_1: tmp575 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp577 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp575) ; tmp576 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solassert (tmp193, tmp577) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp576) ; break ; /* branch: __ats_lab_124 */ __ats_lab_124_0: // if (((ats_sum_ptr_type)tmp194)->tag != 58) { ats_deadcode_failure_handle () ; } __ats_lab_124_1: tmp578 = ats_caselptrlab_mac(anairiats_sum_6, tmp194, atslab_0) ; tmp580 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__s0exp_tr (tmp578) ; tmp579 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__d1exp_solverify (tmp193, tmp580) ; tmp192 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp192)->tag = 0 ; ats_selptrset_mac(anairiats_sum_6, tmp192, atslab_0, tmp579) ; break ; } while (0) ; return (tmp192) ; } /* end of [aux_item_37] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 26015(line=1089, offs=7) -- 26248(line=1094, offs=32) */ ATSstaticdec() ats_ptr_type loop_51 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp582) ; ATSlocal (ats_ptr_type, tmp583) ; ATSlocal (ats_ptr_type, tmp584) ; ATSlocal (ats_ptr_type, tmp585) ; ATSlocal (ats_ptr_type, tmp586) ; ATSlocal (ats_ptr_type, tmp587) ; ATSlocal (ats_ptr_type, tmp588) ; __ats_lab_loop_51: tmp583 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_d0exp_node) ; do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (((ats_sum_ptr_type)tmp583)->tag != 21) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp584 = ats_caselptrlab_mac(anairiats_sum_3, tmp583, atslab_0) ; tmp585 = ats_caselptrlab_mac(anairiats_sum_3, tmp583, atslab_1) ; tmp587 = aux_item_37 (tmp585) ; tmp586 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp586, atslab_0, tmp587) ; ats_selptrset_mac(anairiats_sum_4, tmp586, atslab_1, arg1) ; arg0 = tmp584 ; arg1 = tmp586 ; goto __ats_lab_loop_51 ; // tail call break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: __ats_lab_126_1: tmp588 = aux_item_37 (arg0) ; tmp582 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ats_selptrset_mac(anairiats_sum_4, tmp582, atslab_0, tmp588) ; ats_selptrset_mac(anairiats_sum_4, tmp582, atslab_1, arg1) ; break ; } while (0) ; return (tmp582) ; } /* end of [loop_51] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 25962(line=1087, offs=5) -- 26301(line=1098, offs=4) */ ATSstaticdec() ats_ptr_type aux_itemlst_38 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp581) ; ATSlocal (ats_ptr_type, tmp589) ; __ats_lab_aux_itemlst_38: tmp589 = (ats_sum_ptr_type)0 ; tmp581 = loop_51 (arg0, tmp589) ; return (tmp581) ; } /* end of [aux_itemlst_38] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 12172(line=538, offs=10) -- 26663(line=1118, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp191) ; ATSlocal (ats_ptr_type, tmp590) ; ATSlocal (ats_ptr_type, tmp591) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr: tmp590 = aux_item_37 (arg0) ; do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (((ats_sum_ptr_type)tmp590)->tag != 0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp591 = ats_caselptrlab_mac(anairiats_sum_6, tmp590, atslab_0) ; tmp191 = tmp591 ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (((ats_sum_ptr_type)tmp590)->tag != 1) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: tmp191 = d0exp_tr_errmsg_opr_35 (arg0) ; break ; } while (0) ; return (tmp191) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 26752(line=1125, offs=13) -- 26789(line=1125, offs=50) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp592) ; ATSlocal (ats_ptr_type, tmp593) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr: tmp593 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr) ; tmp592 = ats_castfn_mac(ats_ptr_type, tmp593) ; return (tmp592) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0explst_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 26837(line=1131, offs=3) -- 26917(line=1134, offs=55) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0expopt_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp594) ; ATSlocal (ats_ptr_type, tmp595) ; ATSlocal (ats_ptr_type, tmp596) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0expopt_tr: do { /* branch: __ats_lab_129 */ __ats_lab_129_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_130_0 ; } __ats_lab_129_1: tmp595 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp596 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp595) ; tmp594 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ats_selptrset_mac(anairiats_sum_9, tmp594, atslab_0, tmp596) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_130_1: tmp594 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp594) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0expopt_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 26994(line=1141, offs=13) -- 27077(line=1143, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labd0exp_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp597) ; ATSlocal (ats_ptr_type, tmp598) ; ATSlocal (ats_ptr_type, tmp599) ; ATSlocal (ats_ptr_type, tmp600) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labd0exp_tr: // tmp598 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ; tmp599 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ; tmp600 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (tmp599) ; tmp597 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__labd1exp_make (tmp598, tmp600) ; return (tmp597) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__labd0exp_tr] */ /* // /tmp/ATS-Postiats/src/pats_trans1_dynexp.dats: 27152(line=1149, offs=3) -- 27217(line=1151, offs=54) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__S0Ed2ctype_tr (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp601) ; ATSlocal (ats_ptr_type, tmp602) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__S0Ed2ctype_tr: tmp602 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__d0exp_tr (ats_castfn_mac(ats_ptr_type, arg0)) ; tmp601 = ats_castfn_mac(ats_ptr_type, tmp602) ; return (tmp601) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__S0Ed2ctype_tr] */ /* 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_error_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_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_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans1_dynexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans1_dynexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dynexp3_print_dats.c0000644000175000017500000032073313431250607023343 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_p3at_loc ; ats_ptr_type atslab_p3at_node ; ats_ptr_type atslab_p3at_type ; ats_ptr_type atslab_p3at_dvaropt ; ats_ptr_type atslab_p3at_type_left ; } anairiats_rec_0 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_11 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_int_type atslab_2 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_d3ecl_loc ; ats_ptr_type atslab_d3ecl_node ; } anairiats_rec_16 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trec_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tlst_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__P3Terrpat_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecst_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eint_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eintrep_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ebool_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Echar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efloat_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Estring_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ei0nt_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ef0loat_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecstsp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etyrep_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eliteral_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etop_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eempty_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextval_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextfcall_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eextmcall_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Econ_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpcst_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etmpvar_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efoldat_21) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efreeat_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eitem_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elet_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_sta_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eapp_dyn_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eif_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esif_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Ecase_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Escase_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eifcase_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elst_32) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etup_33) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erec_34) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eseq_35) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eselab_36) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofvar_37) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eptrofsel_38) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_39) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Erefarg_40) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_var_41) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ptr_42) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esel_ref_43) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_var_44) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ptr_45) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eassgn_ref_46) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_var_47) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ptr_48) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Exchng_ref_49) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eviewat_assgn_50) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrpsz_51) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Earrinit_52) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eraise_53) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eeffmask_54) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evararg_55) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Evcopyenv_56) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etempenver_57) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eann_type_58) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_dyn_59) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elaminit_dyn_60) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_sta_61) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elam_met_62) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Efix_63) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Edelay_64) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eldelay_65) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Elazyeval_66) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloop_67) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eloopexn_68) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Etrywith_69) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Esolverify_70) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Eerrexp_71) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cnone_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clist_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Csaspdec_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Creassume_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextype_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextvar_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cextcode_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cexndecs_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdatdecs_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdcstdecs_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cimpdec_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cfundecs_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvaldecs_rec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cvardecs_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cprvardecs_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cinclude_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaload_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cstaloadloc_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Cdynload_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__D3Clocal_20) ; /* external dynamic constant declarations */ ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3atlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3ecl) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 2029(line=67, offs=3) -- 4389(line=165, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; // ATSlocal_void (tmp3) ; // ATSlocal_void (tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; // ATSlocal_void (tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_int_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; // ATSlocal_void (tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_int_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_bool_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_char_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_int_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; // ATSlocal_void (tmp33) ; // ATSlocal_void (tmp34) ; // ATSlocal_void (tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; // ATSlocal_void (tmp38) ; // ATSlocal_void (tmp39) ; // ATSlocal_void (tmp40) ; // ATSlocal_void (tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; // ATSlocal_void (tmp45) ; // ATSlocal_void (tmp46) ; // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at: tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_p3at_node) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (((ats_sum_ptr_type)tmp1)->tag != 0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst("P3Tany(")) ; /* tmp4 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp2) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp1)->tag != 1) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp5 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst("P3Tvar(")) ; /* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp5) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp1)->tag != 2) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp8 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; tmp9 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_1) ; tmp10 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_2) ; tmp11 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_3) ; /* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst("P3Tcon(")) ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_pckind (arg0, tmp8) ; /* tmp14 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp9) ; /* tmp16 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp17 = */ atspre_fprint_int (arg0, tmp10) ; /* tmp18 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3atlst (arg0, tmp11) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: if (((ats_sum_ptr_type)tmp1)->tag != 3) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_3, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("P3Tint(%i)"), tmp20) ; break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp1)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("P3Tintrep(%s)"), tmp21) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp1)->tag != 5) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_4, tmp1, atslab_0) ; if (tmp22) { tmp23 = ATSstrcst("true") ; } else { tmp23 = ATSstrcst("false") ; } /* end of [if] */ /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("P3Tbool(%s)"), tmp23) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp1)->tag != 6) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_5, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("P3Tchar(%c)"), tmp24) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp1)->tag != 7) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("P3Tfloat(%s)"), tmp25) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp1)->tag != 8) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp26 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp0 = */ atspre_fprintf_exn (arg0, ATSstrcst("P3Tstring(%s)"), tmp26) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp1)->tag != 9) { goto __ats_lab_10_0 ; } __ats_lab_9_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("P3Ti0nt(...)")) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp1)->tag != 10) { goto __ats_lab_11_0 ; } __ats_lab_10_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("P3Tf0loat(...)")) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp1)->tag != 11) { goto __ats_lab_12_0 ; } __ats_lab_11_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("P3Tempty()")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp1)->tag != 12) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("P3Trec(...)")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp1)->tag != 13) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_0) ; tmp28 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_1) ; tmp29 = ats_caselptrlab_mac(anairiats_sum_6, tmp1, atslab_2) ; /* tmp30 = */ atspre_fprint_string (arg0, ATSstrcst("P3Tlst(")) ; /* tmp31 = */ atspre_fprint_int (arg0, tmp27) ; /* tmp32 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp33 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp28) ; /* tmp34 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3atlst (arg0, tmp29) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp1)->tag != 14) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp36 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_0) ; tmp37 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_1) ; /* tmp38 = */ atspre_fprint_string (arg0, ATSstrcst("P3Trefas(")) ; /* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp36) ; /* tmp40 = */ atspre_fprint_string (arg0, ATSstrcst(" -> ")) ; /* tmp41 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at (arg0, tmp37) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp1)->tag != 15) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp42 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_0) ; tmp43 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_1) ; /* tmp44 = */ atspre_fprint_string (arg0, ATSstrcst("P3Texist(")) ; /* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp42) ; /* tmp46 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at (arg0, tmp43) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp1)->tag != 16) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp48 = ats_caselptrlab_mac(anairiats_sum_1, tmp1, atslab_0) ; /* tmp49 = */ atspre_fprint_string (arg0, ATSstrcst("P3Tvbox(")) ; /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp48) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp1)->tag != 17) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_0) ; tmp52 = ats_caselptrlab_mac(anairiats_sum_7, tmp1, atslab_1) ; /* tmp53 = */ atspre_fprint_string (arg0, ATSstrcst("P3Tann(")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at (arg0, tmp51) ; /* tmp55 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp52) ; /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (((ats_sum_ptr_type)tmp1)->tag != 18) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: /* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("P3Terr()")) ; break ; } while (0) ; return /* (tmp0) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 4436(line=168, offs=12) -- 4473(line=168, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_p3at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp57) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_p3at: /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at (stdout, arg0) ; return /* (tmp57) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_p3at] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 4495(line=170, offs=12) -- 4532(line=170, offs=49) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_p3at (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp58) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_p3at: /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at (stderr, arg0) ; return /* (tmp58) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_p3at] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; // ATSlocal_void (tmp64) ; ATSlocal (ats_bool_type, tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_int_type, tmp67) ; __ats_lab_aux_5: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp62 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp63 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ; tmp65 = atspre_gt_int_int (arg1, 0) ; if (tmp65) { /* tmp64 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp66 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp62) ; tmp67 = atspre_add_int_int (arg1, 1) ; arg0 = tmp63 ; arg1 = tmp67 ; goto __ats_lab_aux_5 ; // tail call break ; } while (0) ; return /* (tmp61) */ ; } /* end of [aux_5] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_5_closure_type ; ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_5 (((aux_5_closure_type*)cloptr)->closure_env_0, ((aux_5_closure_type*)cloptr)->closure_env_1, ((aux_5_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_5_closure_init (aux_5_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_5_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ; aux_5_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01696_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp60) ; __ats_lab_fprintlst_01696_ats_ptr_type: /* tmp60 = */ aux_5 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp60) */ ; } /* end of [fprintlst_01696_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 4580(line=175, offs=16) -- 4636(line=176, offs=45) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3atlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp59) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3atlst: /* tmp59 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3at) ; return /* (tmp59) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3atlst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 4711(line=183, offs=3) -- 16096(line=670, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_ptr_type, tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; // ATSlocal_void (tmp74) ; // ATSlocal_void (tmp75) ; ATSlocal (ats_int_type, tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; ATSlocal (ats_bool_type, tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_char_type, tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; ATSlocal (ats_ptr_type, tmp94) ; // ATSlocal_void (tmp95) ; // ATSlocal_void (tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; ATSlocal (ats_ptr_type, tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; // ATSlocal_void (tmp114) ; // ATSlocal_void (tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; // ATSlocal_void (tmp121) ; // ATSlocal_void (tmp122) ; // ATSlocal_void (tmp123) ; // ATSlocal_void (tmp124) ; // ATSlocal_void (tmp125) ; // ATSlocal_void (tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_int_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; // ATSlocal_void (tmp134) ; // ATSlocal_void (tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; // ATSlocal_void (tmp147) ; // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; // ATSlocal_void (tmp150) ; // ATSlocal_void (tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; // ATSlocal_void (tmp153) ; // ATSlocal_void (tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_int_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; // ATSlocal_void (tmp158) ; // ATSlocal_void (tmp159) ; // ATSlocal_void (tmp160) ; // ATSlocal_void (tmp161) ; // ATSlocal_void (tmp162) ; // ATSlocal_void (tmp163) ; // ATSlocal_void (tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; // ATSlocal_void (tmp167) ; // ATSlocal_void (tmp168) ; // ATSlocal_void (tmp169) ; // ATSlocal_void (tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; // ATSlocal_void (tmp174) ; // ATSlocal_void (tmp175) ; // ATSlocal_void (tmp176) ; // ATSlocal_void (tmp177) ; // ATSlocal_void (tmp178) ; // ATSlocal_void (tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; // ATSlocal_void (tmp184) ; // ATSlocal_void (tmp185) ; // ATSlocal_void (tmp186) ; // ATSlocal_void (tmp187) ; // ATSlocal_void (tmp188) ; // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_int_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; ATSlocal (ats_ptr_type, tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; // ATSlocal_void (tmp198) ; // ATSlocal_void (tmp199) ; // ATSlocal_void (tmp200) ; // ATSlocal_void (tmp201) ; ATSlocal (ats_int_type, tmp202) ; ATSlocal (ats_int_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; // ATSlocal_void (tmp205) ; // ATSlocal_void (tmp206) ; // ATSlocal_void (tmp207) ; // ATSlocal_void (tmp208) ; // ATSlocal_void (tmp209) ; // ATSlocal_void (tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; // ATSlocal_void (tmp212) ; // ATSlocal_void (tmp213) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp215) ; // ATSlocal_void (tmp216) ; // ATSlocal_void (tmp217) ; // ATSlocal_void (tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; // ATSlocal_void (tmp220) ; // ATSlocal_void (tmp221) ; ATSlocal (ats_ptr_type, tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; // ATSlocal_void (tmp224) ; // ATSlocal_void (tmp225) ; // ATSlocal_void (tmp226) ; // ATSlocal_void (tmp227) ; // ATSlocal_void (tmp228) ; // ATSlocal_void (tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; ATSlocal (ats_int_type, tmp235) ; ATSlocal (ats_int_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; // ATSlocal_void (tmp241) ; // ATSlocal_void (tmp242) ; // ATSlocal_void (tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; // ATSlocal_void (tmp246) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; // ATSlocal_void (tmp249) ; // ATSlocal_void (tmp250) ; // ATSlocal_void (tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; // ATSlocal_void (tmp256) ; // ATSlocal_void (tmp257) ; // ATSlocal_void (tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; // ATSlocal_void (tmp262) ; // ATSlocal_void (tmp263) ; // ATSlocal_void (tmp264) ; // ATSlocal_void (tmp265) ; // ATSlocal_void (tmp266) ; // ATSlocal_void (tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_int_type, tmp270) ; // ATSlocal_void (tmp271) ; // ATSlocal_void (tmp272) ; // ATSlocal_void (tmp273) ; // ATSlocal_void (tmp274) ; // ATSlocal_void (tmp275) ; // ATSlocal_void (tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; // ATSlocal_void (tmp280) ; // ATSlocal_void (tmp281) ; // ATSlocal_void (tmp282) ; // ATSlocal_void (tmp283) ; // ATSlocal_void (tmp284) ; // ATSlocal_void (tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; // ATSlocal_void (tmp287) ; // ATSlocal_void (tmp288) ; ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; // ATSlocal_void (tmp291) ; // ATSlocal_void (tmp292) ; // ATSlocal_void (tmp293) ; // ATSlocal_void (tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; // ATSlocal_void (tmp296) ; // ATSlocal_void (tmp297) ; ATSlocal (ats_int_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; // ATSlocal_void (tmp300) ; // ATSlocal_void (tmp301) ; // ATSlocal_void (tmp302) ; // ATSlocal_void (tmp303) ; ATSlocal (ats_ptr_type, tmp304) ; // ATSlocal_void (tmp305) ; // ATSlocal_void (tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; // ATSlocal_void (tmp309) ; // ATSlocal_void (tmp310) ; // ATSlocal_void (tmp311) ; // ATSlocal_void (tmp312) ; ATSlocal (ats_int_type, tmp313) ; ATSlocal (ats_int_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp316) ; // ATSlocal_void (tmp317) ; // ATSlocal_void (tmp318) ; // ATSlocal_void (tmp319) ; // ATSlocal_void (tmp320) ; // ATSlocal_void (tmp321) ; // ATSlocal_void (tmp322) ; // ATSlocal_void (tmp323) ; // ATSlocal_void (tmp324) ; // ATSlocal_void (tmp325) ; // ATSlocal_void (tmp326) ; ATSlocal (ats_ptr_type, tmp327) ; ATSlocal (ats_ptr_type, tmp328) ; ATSlocal (ats_ptr_type, tmp329) ; // ATSlocal_void (tmp330) ; // ATSlocal_void (tmp331) ; // ATSlocal_void (tmp332) ; // ATSlocal_void (tmp333) ; // ATSlocal_void (tmp334) ; // ATSlocal_void (tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; ATSlocal (ats_ptr_type, tmp337) ; // ATSlocal_void (tmp338) ; // ATSlocal_void (tmp339) ; // ATSlocal_void (tmp340) ; // ATSlocal_void (tmp341) ; ATSlocal (ats_int_type, tmp342) ; ATSlocal (ats_ptr_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; // ATSlocal_void (tmp345) ; // ATSlocal_void (tmp346) ; // ATSlocal_void (tmp347) ; // ATSlocal_void (tmp348) ; // ATSlocal_void (tmp349) ; // ATSlocal_void (tmp350) ; ATSlocal (ats_ptr_type, tmp351) ; // ATSlocal_void (tmp352) ; // ATSlocal_void (tmp353) ; ATSlocal (ats_ptr_type, tmp354) ; // ATSlocal_void (tmp355) ; // ATSlocal_void (tmp356) ; // ATSlocal_void (tmp357) ; // ATSlocal_void (tmp358) ; ATSlocal (ats_int_type, tmp359) ; ATSlocal (ats_ptr_type, tmp360) ; // ATSlocal_void (tmp361) ; // ATSlocal_void (tmp362) ; // ATSlocal_void (tmp363) ; // ATSlocal_void (tmp364) ; // ATSlocal_void (tmp365) ; // ATSlocal_void (tmp366) ; ATSlocal (ats_int_type, tmp367) ; // ATSlocal_void (tmp368) ; // ATSlocal_void (tmp369) ; ATSlocal (ats_ptr_type, tmp370) ; // ATSlocal_void (tmp371) ; // ATSlocal_void (tmp372) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp: tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg1), atslab_d3exp_node) ; do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp69)->tag != 0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp70 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp71 = */ atspre_fprint_string (arg0, ATSstrcst("D3Ecst(")) ; /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp70) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp69)->tag != 1) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp74 = */ atspre_fprint_string (arg0, ATSstrcst("D3Evar(")) ; /* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp73) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)tmp69)->tag != 2) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_3, tmp69, atslab_0) ; /* tmp77 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eint(")) ; /* tmp78 = */ atspre_fprint_int (arg0, tmp76) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp69)->tag != 3) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp79 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp80 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eintrep(")) ; /* tmp81 = */ atspre_fprint_string (arg0, tmp79) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: if (((ats_sum_ptr_type)tmp69)->tag != 4) { goto __ats_lab_26_0 ; } __ats_lab_25_1: tmp82 = ats_caselptrlab_mac(anairiats_sum_4, tmp69, atslab_0) ; /* tmp83 = */ atspre_fprint_string (arg0, ATSstrcst("D3Ebool(")) ; /* tmp84 = */ atspre_fprint_bool (arg0, tmp82) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp69)->tag != 5) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_5, tmp69, atslab_0) ; /* tmp86 = */ atspre_fprint_string (arg0, ATSstrcst("D3Echar(")) ; /* tmp87 = */ atspre_fprint_char (arg0, tmp85) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp69)->tag != 6) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp89 = */ atspre_fprint_string (arg0, ATSstrcst("D3Efloat(")) ; /* tmp90 = */ atspre_fprint_string (arg0, tmp88) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp69)->tag != 7) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp92 = */ atspre_fprint_string (arg0, ATSstrcst("D3Estring(")) ; /* tmp93 = */ atspre_fprint_string (arg0, tmp91) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp69)->tag != 8) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp94 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp95 = */ atspre_fprint_string (arg0, ATSstrcst("D3Ei0nt(")) ; /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_i0nt (arg0, tmp94) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp69)->tag != 9) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp97 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp98 = */ atspre_fprint_string (arg0, ATSstrcst("D3Ef0loat(")) ; /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_f0loat (arg0, tmp97) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp69)->tag != 10) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp100 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp101 = */ atspre_fprint_string (arg0, ATSstrcst("D3Ecstsp(")) ; /* tmp102 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__fprint_cstsp (arg0, tmp100) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp69)->tag != 11) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp104 = */ atspre_fprint_string (arg0, ATSstrcst("D3Etyrep(")) ; /* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp103) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp69)->tag != 12) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp106 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp107 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eliteral(")) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp106) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp69)->tag != 13) { goto __ats_lab_35_0 ; } __ats_lab_34_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Etop()")) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp69)->tag != 14) { goto __ats_lab_36_0 ; } __ats_lab_35_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eempty()")) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp69)->tag != 15) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp109 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp110 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eextval(")) ; /* tmp111 = */ atspre_fprint_string (arg0, tmp109) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp69)->tag != 16) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp112 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; tmp113 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_1) ; /* tmp114 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eextfcall(")) ; /* tmp115 = */ atspre_fprint_string (arg0, tmp112) ; /* tmp116 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp113) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp69)->tag != 17) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp118 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp119 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; tmp120 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_2) ; /* tmp121 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eextmcall(")) ; /* tmp122 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp118) ; /* tmp123 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp124 = */ atspre_fprint_string (arg0, tmp119) ; /* tmp125 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp120) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp69)->tag != 18) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp127 = ats_caselptrlab_mac(anairiats_sum_11, tmp69, atslab_0) ; tmp128 = ats_caselptrlab_mac(anairiats_sum_11, tmp69, atslab_1) ; tmp129 = ats_caselptrlab_mac(anairiats_sum_11, tmp69, atslab_2) ; /* tmp130 = */ atspre_fprint_string (arg0, ATSstrcst("D3Econ(")) ; /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp127) ; /* tmp132 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp133 = */ atspre_fprint_int (arg0, tmp128) ; /* tmp134 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp129) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp69)->tag != 19) { goto __ats_lab_41_0 ; } __ats_lab_40_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; /* tmp137 = */ atspre_fprint_string (arg0, ATSstrcst("D3Etmpcst(")) ; /* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2cst (arg0, tmp136) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp140 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_41 */ __ats_lab_41_0: if (((ats_sum_ptr_type)tmp69)->tag != 20) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; /* tmp142 = */ atspre_fprint_string (arg0, ATSstrcst("D3Etmpvar(")) ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp141) ; /* tmp144 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp145 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: if (((ats_sum_ptr_type)tmp69)->tag != 21) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp146 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp147 = */ atspre_fprint_string (arg0, ATSstrcst("D3Efoldat(")) ; /* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp146) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: if (((ats_sum_ptr_type)tmp69)->tag != 22) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp150 = */ atspre_fprint_string (arg0, ATSstrcst("D3Efreeat(")) ; /* tmp151 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp149) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: if (((ats_sum_ptr_type)tmp69)->tag != 24) { goto __ats_lab_45_0 ; } __ats_lab_44_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Elet(...)")) ; break ; /* branch: __ats_lab_45 */ __ats_lab_45_0: if (((ats_sum_ptr_type)tmp69)->tag != 25) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp152 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp153 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eapp_sta(")) ; /* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp152) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp69)->tag != 26) { goto __ats_lab_47_0 ; } __ats_lab_46_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_11, tmp69, atslab_0) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_11, tmp69, atslab_1) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_11, tmp69, atslab_2) ; /* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eapp_dyn(")) ; /* tmp159 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp155) ; /* tmp161 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp162 = */ atspre_fprint_int (arg0, tmp156) ; /* tmp163 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp157) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp69)->tag != 23) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_1) ; /* tmp167 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eitem(")) ; /* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2itm (arg0, tmp165) ; /* tmp169 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp170 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_t2mpmarglst (arg0, tmp166) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp69)->tag != 27) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp171 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp172 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; tmp173 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_2) ; /* tmp174 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eif(")) ; /* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp171) ; /* tmp176 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp172) ; /* tmp178 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp173) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp69)->tag != 28) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp180 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp181 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_2) ; /* tmp183 = */ atspre_fprint_string (arg0, ATSstrcst("D3Esif(")) ; /* tmp184 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp180) ; /* tmp185 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp181) ; /* tmp187 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp182) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp69)->tag != 29) { goto __ats_lab_51_0 ; } __ats_lab_50_1: /* tmp189 = */ atspre_fprint_string (arg0, ATSstrcst("D3Ecase(")) ; /* tmp190 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)tmp69)->tag != 30) { goto __ats_lab_52_0 ; } __ats_lab_51_1: /* tmp191 = */ atspre_fprint_string (arg0, ATSstrcst("D3Escase(")) ; /* tmp192 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)tmp69)->tag != 31) { goto __ats_lab_53_0 ; } __ats_lab_52_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eifcase(...)")) ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: if (((ats_sum_ptr_type)tmp69)->tag != 32) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp193 = ats_caselptrlab_mac(anairiats_sum_6, tmp69, atslab_0) ; tmp194 = ats_caselptrlab_mac(anairiats_sum_6, tmp69, atslab_1) ; tmp195 = ats_caselptrlab_mac(anairiats_sum_6, tmp69, atslab_2) ; /* tmp196 = */ atspre_fprint_string (arg0, ATSstrcst("D3Elst(")) ; /* tmp197 = */ atspre_fprint_int (arg0, tmp193) ; /* tmp198 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp199 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp194) ; /* tmp200 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp195) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: if (((ats_sum_ptr_type)tmp69)->tag != 33) { goto __ats_lab_55_0 ; } __ats_lab_54_1: tmp202 = ats_caselptrlab_mac(anairiats_sum_12, tmp69, atslab_0) ; tmp203 = ats_caselptrlab_mac(anairiats_sum_12, tmp69, atslab_1) ; tmp204 = ats_caselptrlab_mac(anairiats_sum_12, tmp69, atslab_2) ; /* tmp205 = */ atspre_fprint_string (arg0, ATSstrcst("D3Etup(")) ; /* tmp206 = */ atspre_fprint_int (arg0, tmp202) ; /* tmp207 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp208 = */ atspre_fprint_int (arg0, tmp203) ; /* tmp209 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp204) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp69)->tag != 34) { goto __ats_lab_56_0 ; } __ats_lab_55_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Erec(...)")) ; break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)tmp69)->tag != 35) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp211 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp212 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eseq(")) ; /* tmp213 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp211) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)tmp69)->tag != 36) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp214 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; /* tmp215 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eselab(")) ; /* tmp216 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp214) ; /* tmp217 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp218 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp69)->tag != 37) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp219 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp220 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eptrofvar(")) ; /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp219) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp69)->tag != 38) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp222 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp223 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; /* tmp224 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eptrofsel(")) ; /* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp222) ; /* tmp226 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp223) ; /* tmp228 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp229 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)tmp69)->tag != 39) { goto __ats_lab_61_0 ; } __ats_lab_60_1: tmp230 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; /* tmp231 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eviewat(")) ; /* tmp232 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp230) ; /* tmp233 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp234 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_61 */ __ats_lab_61_0: if (((ats_sum_ptr_type)tmp69)->tag != 40) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp235 = ats_caselptrlab_mac(anairiats_sum_12, tmp69, atslab_0) ; tmp236 = ats_caselptrlab_mac(anairiats_sum_12, tmp69, atslab_1) ; tmp237 = ats_caselptrlab_mac(anairiats_sum_12, tmp69, atslab_2) ; /* tmp238 = */ atspre_fprint_string (arg0, ATSstrcst("D3Erefarg(")) ; /* tmp239 = */ atspre_fprint_int (arg0, tmp235) ; /* tmp240 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp241 = */ atspre_fprint_int (arg0, tmp236) ; /* tmp242 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp243 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp237) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: if (((ats_sum_ptr_type)tmp69)->tag != 41) { goto __ats_lab_63_0 ; } __ats_lab_62_1: tmp244 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp245 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; /* tmp246 = */ atspre_fprint_string (arg0, ATSstrcst("D3Esel_var(")) ; /* tmp247 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp244) ; /* tmp248 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp249 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp245) ; /* tmp250 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp251 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)tmp69)->tag != 42) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp252 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp253 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; /* tmp254 = */ atspre_fprint_string (arg0, ATSstrcst("D3Esel_ptr(")) ; /* tmp255 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp252) ; /* tmp256 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp257 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp253) ; /* tmp258 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp259 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp69)->tag != 43) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp260 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp261 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; /* tmp262 = */ atspre_fprint_string (arg0, ATSstrcst("D3Esel_ref(")) ; /* tmp263 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp260) ; /* tmp264 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp265 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp261) ; /* tmp266 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp267 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)tmp69)->tag != 44) { goto __ats_lab_66_0 ; } __ats_lab_65_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eassgn_var(...)")) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: if (((ats_sum_ptr_type)tmp69)->tag != 45) { goto __ats_lab_67_0 ; } __ats_lab_66_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eassgn_ptr(...)")) ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: if (((ats_sum_ptr_type)tmp69)->tag != 46) { goto __ats_lab_68_0 ; } __ats_lab_67_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eassgn_ref(...)")) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)tmp69)->tag != 47) { goto __ats_lab_69_0 ; } __ats_lab_68_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Exchng_var(...)")) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)tmp69)->tag != 48) { goto __ats_lab_70_0 ; } __ats_lab_69_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Exchng_ptr(...)")) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: if (((ats_sum_ptr_type)tmp69)->tag != 49) { goto __ats_lab_71_0 ; } __ats_lab_70_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Exchng_ref(...)")) ; break ; /* branch: __ats_lab_71 */ __ats_lab_71_0: if (((ats_sum_ptr_type)tmp69)->tag != 50) { goto __ats_lab_72_0 ; } __ats_lab_71_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eviewat_assgn(...)")) ; break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: if (((ats_sum_ptr_type)tmp69)->tag != 51) { goto __ats_lab_73_0 ; } __ats_lab_72_1: tmp268 = ats_caselptrlab_mac(anairiats_sum_13, tmp69, atslab_0) ; tmp269 = ats_caselptrlab_mac(anairiats_sum_13, tmp69, atslab_1) ; tmp270 = ats_caselptrlab_mac(anairiats_sum_13, tmp69, atslab_2) ; /* tmp271 = */ atspre_fprint_string (arg0, ATSstrcst("D3Earrpsz(")) ; /* tmp272 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp268) ; /* tmp273 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp274 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp269) ; /* tmp275 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp276 = */ atspre_fprint_int (arg0, tmp270) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_73 */ __ats_lab_73_0: if (((ats_sum_ptr_type)tmp69)->tag != 52) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp277 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp278 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; tmp279 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_2) ; /* tmp280 = */ atspre_fprint_string (arg0, ATSstrcst("D3Earrinit(")) ; /* tmp281 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp277) ; /* tmp282 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp278) ; /* tmp284 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp285 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp279) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: if (((ats_sum_ptr_type)tmp69)->tag != 53) { goto __ats_lab_75_0 ; } __ats_lab_74_1: tmp286 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp287 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eraise(")) ; /* tmp288 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp286) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_75 */ __ats_lab_75_0: if (((ats_sum_ptr_type)tmp69)->tag != 54) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp289 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; tmp290 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_1) ; /* tmp291 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eraise(")) ; /* tmp292 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2eff (arg0, tmp289) ; /* tmp293 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp294 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp290) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: if (((ats_sum_ptr_type)tmp69)->tag != 55) { goto __ats_lab_77_0 ; } __ats_lab_76_1: tmp295 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp296 = */ atspre_fprint_string (arg0, ATSstrcst("D3Evararg(")) ; /* tmp297 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (arg0, tmp295) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_77 */ __ats_lab_77_0: if (((ats_sum_ptr_type)tmp69)->tag != 56) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp298 = ats_caselptrlab_mac(anairiats_sum_14, tmp69, atslab_0) ; tmp299 = ats_caselptrlab_mac(anairiats_sum_14, tmp69, atslab_1) ; /* tmp300 = */ atspre_fprint_string (arg0, ATSstrcst("D3Evcopyenv(")) ; /* tmp301 = */ atspre_fprint_int (arg0, tmp298) ; /* tmp302 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; /* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp299) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: if (((ats_sum_ptr_type)tmp69)->tag != 57) { goto __ats_lab_79_0 ; } __ats_lab_78_1: tmp304 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp305 = */ atspre_fprint_string (arg0, ATSstrcst("D3Etempenver(")) ; /* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst (arg0, tmp304) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_79 */ __ats_lab_79_0: if (((ats_sum_ptr_type)tmp69)->tag != 58) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp307 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; tmp308 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_1) ; /* tmp309 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eann_type(")) ; /* tmp310 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp307) ; /* tmp311 = */ atspre_fprint_string (arg0, ATSstrcst(" : ")) ; /* tmp312 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp308) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: if (((ats_sum_ptr_type)tmp69)->tag != 59) { goto __ats_lab_81_0 ; } __ats_lab_80_1: tmp313 = ats_caselptrlab_mac(anairiats_sum_15, tmp69, atslab_0) ; tmp314 = ats_caselptrlab_mac(anairiats_sum_15, tmp69, atslab_1) ; tmp315 = ats_caselptrlab_mac(anairiats_sum_15, tmp69, atslab_2) ; tmp316 = ats_caselptrlab_mac(anairiats_sum_15, tmp69, atslab_3) ; /* tmp317 = */ atspre_fprint_string (arg0, ATSstrcst("D3Elam_dyn(")) ; /* tmp318 = */ atspre_fprint_string (arg0, ATSstrcst("lin=")) ; /* tmp319 = */ atspre_fprint_int (arg0, tmp313) ; /* tmp320 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp321 = */ atspre_fprint_string (arg0, ATSstrcst("npf=")) ; /* tmp322 = */ atspre_fprint_int (arg0, tmp314) ; /* tmp323 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_p3atlst (arg0, tmp315) ; /* tmp325 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp316) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_81 */ __ats_lab_81_0: if (((ats_sum_ptr_type)tmp69)->tag != 60) { goto __ats_lab_82_0 ; } __ats_lab_81_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Elaminit_dyn(...)")) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: if (((ats_sum_ptr_type)tmp69)->tag != 61) { goto __ats_lab_83_0 ; } __ats_lab_82_1: tmp327 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_0) ; tmp328 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_1) ; tmp329 = ats_caselptrlab_mac(anairiats_sum_10, tmp69, atslab_2) ; /* tmp330 = */ atspre_fprint_string (arg0, ATSstrcst("D3Elam_sta(")) ; /* tmp331 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, tmp327) ; /* tmp332 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp328) ; /* tmp334 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp329) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_83 */ __ats_lab_83_0: if (((ats_sum_ptr_type)tmp69)->tag != 62) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp336 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; tmp337 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_1) ; /* tmp338 = */ atspre_fprint_string (arg0, ATSstrcst("D3Elam_met(")) ; /* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2explst (arg0, tmp336) ; /* tmp340 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp337) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: if (((ats_sum_ptr_type)tmp69)->tag != 63) { goto __ats_lab_85_0 ; } __ats_lab_84_1: tmp342 = ats_caselptrlab_mac(anairiats_sum_6, tmp69, atslab_0) ; tmp343 = ats_caselptrlab_mac(anairiats_sum_6, tmp69, atslab_1) ; tmp344 = ats_caselptrlab_mac(anairiats_sum_6, tmp69, atslab_2) ; /* tmp345 = */ atspre_fprint_string (arg0, ATSstrcst("D3Efix(")) ; /* tmp346 = */ atspre_fprint_int (arg0, tmp342) ; /* tmp347 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp348 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp343) ; /* tmp349 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp344) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_85 */ __ats_lab_85_0: if (((ats_sum_ptr_type)tmp69)->tag != 64) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp351 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp352 = */ atspre_fprint_string (arg0, ATSstrcst("D3Edelay(")) ; /* tmp353 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp351) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: if (((ats_sum_ptr_type)tmp69)->tag != 65) { goto __ats_lab_87_0 ; } __ats_lab_86_1: tmp354 = ats_caselptrlab_mac(anairiats_sum_7, tmp69, atslab_0) ; /* tmp355 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eldelay(")) ; /* tmp356 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp354) ; /* tmp357 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp358 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)tmp69)->tag != 66) { goto __ats_lab_88_0 ; } __ats_lab_87_1: tmp359 = ats_caselptrlab_mac(anairiats_sum_14, tmp69, atslab_0) ; tmp360 = ats_caselptrlab_mac(anairiats_sum_14, tmp69, atslab_1) ; /* tmp361 = */ atspre_fprint_string (arg0, ATSstrcst("D3Elazyeval(")) ; /* tmp362 = */ atspre_fprint_int (arg0, tmp359) ; /* tmp363 = */ atspre_fprint_string (arg0, ATSstrcst("; ")) ; /* tmp364 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (arg0, tmp360) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: if (((ats_sum_ptr_type)tmp69)->tag != 67) { goto __ats_lab_89_0 ; } __ats_lab_88_1: /* tmp365 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eloop(")) ; /* tmp366 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)tmp69)->tag != 68) { goto __ats_lab_90_0 ; } __ats_lab_89_1: tmp367 = ats_caselptrlab_mac(anairiats_sum_3, tmp69, atslab_0) ; /* tmp68 = */ atspre_fprintf_exn (arg0, ATSstrcst("D3Eloopexn(%i)"), tmp367) ; break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)tmp69)->tag != 69) { goto __ats_lab_91_0 ; } __ats_lab_90_1: /* tmp368 = */ atspre_fprint_string (arg0, ATSstrcst("D3Etrywith(")) ; /* tmp369 = */ atspre_fprint_string (arg0, ATSstrcst("...")) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)tmp69)->tag != 70) { goto __ats_lab_92_0 ; } __ats_lab_91_1: tmp370 = ats_caselptrlab_mac(anairiats_sum_1, tmp69, atslab_0) ; /* tmp371 = */ atspre_fprint_string (arg0, ATSstrcst("D3Esolverify(")) ; /* tmp372 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp370) ; /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: // if (((ats_sum_ptr_type)tmp69)->tag != 71) { ats_deadcode_failure_handle () ; } __ats_lab_92_1: /* tmp68 = */ atspre_fprint_string (arg0, ATSstrcst("D3Eerrexp()")) ; break ; } while (0) ; return /* (tmp68) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 16166(line=675, offs=13) -- 16200(line=675, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_d3exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp373) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_d3exp: /* tmp373 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (stdout, arg0) ; return /* (tmp373) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_d3exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 16223(line=677, offs=13) -- 16257(line=677, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_d3exp (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp374) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_d3exp: /* tmp374 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp (stderr, arg0) ; return /* (tmp374) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_d3exp] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 16306(line=682, offs=17) -- 16363(line=683, offs=46) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp375) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst: /* tmp375 = */ fprintlst_01696_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3exp) ; return /* (tmp375) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3explst] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 16439(line=690, offs=3) -- 17598(line=738, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3ecl (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; // ATSlocal_void (tmp379) ; // ATSlocal_void (tmp380) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3ecl: tmp377 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg1), atslab_d3ecl_node) ; do { /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)tmp377)->tag != 0) { goto __ats_lab_94_0 ; } __ats_lab_93_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cnone()")) ; break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)tmp377)->tag != 1) { goto __ats_lab_95_0 ; } __ats_lab_94_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Clist(...)")) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)tmp377)->tag != 2) { goto __ats_lab_96_0 ; } __ats_lab_95_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Csaspdec(...)")) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)tmp377)->tag != 3) { goto __ats_lab_97_0 ; } __ats_lab_96_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Creassume(...)")) ; break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)tmp377)->tag != 4) { goto __ats_lab_98_0 ; } __ats_lab_97_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cextype(...)")) ; break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)tmp377)->tag != 5) { goto __ats_lab_99_0 ; } __ats_lab_98_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cextvar(...)")) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: if (((ats_sum_ptr_type)tmp377)->tag != 6) { goto __ats_lab_100_0 ; } __ats_lab_99_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cextcode(...)")) ; break ; /* branch: __ats_lab_100 */ __ats_lab_100_0: if (((ats_sum_ptr_type)tmp377)->tag != 8) { goto __ats_lab_101_0 ; } __ats_lab_100_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cdatdecs(...)")) ; break ; /* branch: __ats_lab_101 */ __ats_lab_101_0: if (((ats_sum_ptr_type)tmp377)->tag != 7) { goto __ats_lab_102_0 ; } __ats_lab_101_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cexndecs(...)")) ; break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: if (((ats_sum_ptr_type)tmp377)->tag != 9) { goto __ats_lab_103_0 ; } __ats_lab_102_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cdcstdecs(...)")) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: if (((ats_sum_ptr_type)tmp377)->tag != 10) { goto __ats_lab_104_0 ; } __ats_lab_103_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cimpdec(...)")) ; break ; /* branch: __ats_lab_104 */ __ats_lab_104_0: if (((ats_sum_ptr_type)tmp377)->tag != 11) { goto __ats_lab_105_0 ; } __ats_lab_104_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cfundecs(...)")) ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: if (((ats_sum_ptr_type)tmp377)->tag != 12) { goto __ats_lab_106_0 ; } __ats_lab_105_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cvaldecs(...)")) ; break ; /* branch: __ats_lab_106 */ __ats_lab_106_0: if (((ats_sum_ptr_type)tmp377)->tag != 13) { goto __ats_lab_107_0 ; } __ats_lab_106_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cvaldecs(...)")) ; break ; /* branch: __ats_lab_107 */ __ats_lab_107_0: if (((ats_sum_ptr_type)tmp377)->tag != 14) { goto __ats_lab_108_0 ; } __ats_lab_107_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cvardecs(...)")) ; break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: if (((ats_sum_ptr_type)tmp377)->tag != 15) { goto __ats_lab_109_0 ; } __ats_lab_108_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cprvardecs(...)")) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: if (((ats_sum_ptr_type)tmp377)->tag != 16) { goto __ats_lab_110_0 ; } __ats_lab_109_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cinclude(...)")) ; break ; /* branch: __ats_lab_110 */ __ats_lab_110_0: if (((ats_sum_ptr_type)tmp377)->tag != 17) { goto __ats_lab_111_0 ; } __ats_lab_110_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cstaload(...)")) ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)tmp377)->tag != 18) { goto __ats_lab_112_0 ; } __ats_lab_111_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cstaloadloc(...)")) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)tmp377)->tag != 19) { goto __ats_lab_113_0 ; } __ats_lab_112_1: tmp378 = ats_caselptrlab_mac(anairiats_sum_1, tmp377, atslab_0) ; /* tmp379 = */ atspre_fprint_string (arg0, ATSstrcst("D3Cdynload(")) ; /* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__fprint_filename_full (arg0, tmp378) ; /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: // if (((ats_sum_ptr_type)tmp377)->tag != 20) { ats_deadcode_failure_handle () ; } __ats_lab_113_1: /* tmp376 = */ atspre_fprint_string (arg0, ATSstrcst("D3Clocal(...)")) ; break ; } while (0) ; return /* (tmp376) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3ecl] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 17668(line=743, offs=13) -- 17702(line=743, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_d3ecl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp381) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_d3ecl: /* tmp381 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3ecl (stdout, arg0) ; return /* (tmp381) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__print_d3ecl] */ /* // /tmp/ATS-Postiats/src/pats_dynexp3_print.dats: 17725(line=745, offs=13) -- 17759(line=745, offs=47) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_d3ecl (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp382) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_d3ecl: /* tmp382 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__fprint_d3ecl (stderr, arg0) ; return /* (tmp382) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prerr_d3ecl] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_print_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dynexp3_print_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_effect_sats.c0000644000175000017500000000217613431250607022006 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_effect_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_trans3_looping_dats.c0000644000175000017500000027325313431250607023502 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { ats_ptr_type atslab_lstbefitm_var ; ats_int_type atslab_lstbefitm_linval ; ats_ptr_type atslab_lstbefitm_type ; } anairiats_rec_2 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_6 ; typedef struct { ats_ptr_type atslab_loopi2nv_loc ; ats_ptr_type atslab_loopi2nv_svs ; ats_ptr_type atslab_loopi2nv_gua ; ats_ptr_type atslab_loopi2nv_arg ; ats_ptr_type atslab_loopi2nv_met ; ats_ptr_type atslab_loopi2nv_res ; } anairiats_rec_7 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_8 ; typedef struct { ats_ptr_type atslab_i2nvresstate_svs ; ats_ptr_type atslab_i2nvresstate_gua ; ats_ptr_type atslab_i2nvresstate_arg ; ats_ptr_type atslab_i2nvresstate_met ; } anairiats_rec_9 ; typedef struct { ats_ptr_type atslab_d3exp_loc ; ats_ptr_type atslab_d3exp_type ; ats_ptr_type atslab_d3exp_node ; } anairiats_rec_10 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; } anairiats_sum_11 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_loopexn_88) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some_89) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some2_91) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKloop_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPlam_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop0_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop1_2) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype) () ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loop) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loopexn) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2explst_check_termet) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ntm) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_top) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop0) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop1) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02045_ () ; static ats_void_type d2var_reset_type_1 (ats_ptr_type arg0) ; static ats_void_type lstbefitmlst_opnset_and_add_2 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_5 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type aux_6 (ats_ptr_type arg0) ; static ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) ; static ats_void_type auxerr_none_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_some_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxerr_some2_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxVarCK_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxMetCK_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxitm_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxitmlst_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxEnter_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxitm1_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxitm2_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type auxitm3_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxitmlst_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ; static ats_void_type auxBreak_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxitm1_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_void_type auxitm2_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type auxitmlst_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; static ats_ptr_type auxContinue_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type auxerr_31 (ats_ptr_type arg0, ats_int_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 1622(line=50, offs=18) -- 1654(line=50, offs=50) */ ATSstaticdec() ats_void_type prerr_FILENAME_02045_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02045_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_looping")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02045_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 2066(line=76, offs=5) -- 2153(line=78, offs=48) */ ATSstaticdec() ats_void_type d2var_reset_type_1 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_d2var_reset_type_1: tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (arg0) ; /* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg0, tmp2) ; return /* (tmp1) */ ; } /* end of [d2var_reset_type_1] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 2209(line=84, offs=1) -- 2483(line=96, offs=4) */ ATSstaticdec() ats_void_type lstbefitmlst_opnset_and_add_2 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_ptr_type, tmp7) ; __ats_lab_lstbefitmlst_opnset_and_add_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp4), atslab_lstbefitm_var) ; /* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add (arg0, tmp7) ; arg0 = arg0 ; arg1 = tmp5 ; goto __ats_lab_lstbefitmlst_opnset_and_add_2 ; // tail call break ; } while (0) ; return /* (tmp3) */ ; } /* end of [lstbefitmlst_opnset_and_add_2] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73) */ ATSstaticdec() ats_void_type loop_5 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; __ats_lab_loop_5: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp24 ; goto __ats_lab_loop_5 ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: break ; } while (0) ; return /* (tmp23) */ ; } /* end of [loop_5] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp22) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp22 = */ loop_5 (arg0) ; return /* (tmp22) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 3700(line=158, offs=1) -- 4387(line=188, offs=4) */ ATSstaticdec() ats_ptr_type aux_6 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_bool_type, tmp32) ; ATSlocal (ats_bool_type, tmp33) ; ATSlocal (ats_int_type, tmp34) ; __ats_lab_aux_6: tmp26 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_lstbefitm_var) ; tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_lstbefitm_type) ; tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp26) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (tmp27 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: if (tmp28 == (ats_sum_ptr_type)0) { goto __ats_lab_8_1 ; } __ats_lab_6_2: tmp30 = ats_caselptrlab_mac(anairiats_sum_3, tmp27, atslab_0) ; tmp31 = ats_caselptrlab_mac(anairiats_sum_3, tmp28, atslab_0) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq (tmp30, tmp31) ; tmp33 = atspre_neg_bool (tmp32) ; if (tmp33) { /* tmp29 = */ d2var_reset_type_1 (tmp26) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (tmp27 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; } __ats_lab_7_1: if (tmp28 != (ats_sum_ptr_type)0) { goto __ats_lab_8_1 ; } __ats_lab_7_2: break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: __ats_lab_8_1: __ats_lab_8_2: /* tmp29 = */ d2var_reset_type_1 (tmp26) ; break ; } while (0) ; tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (tmp26) ; tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make (tmp26, tmp34) ; return (tmp25) ; } /* end of [aux_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab_loop_9: do { /* branch: __ats_lab_9 */ __ats_lab_9_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ; tmp40 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ; tmp41 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp39, arg3) ; tmp42 = ATS_MALLOC(sizeof(anairiats_sum_1)) ; ats_selptrset_mac(anairiats_sum_1, tmp42, atslab_0, tmp41) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp42 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp43 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp40 ; arg1 = arg1 ; arg2 = tmp43 ; arg3 = arg3 ; goto __ats_lab_loop_9 ; // tail call break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_10_1: tmp44 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp44 ; break ; } while (0) ; return /* (tmp38) */ ; } /* end of [loop_9] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp45) ; // ATSlocal_void (tmp46) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp45 ; */ /* tmp46 = */ loop_9 (arg0, arg1, (&tmp45), arg2) ; tmp37 = tmp45 ; return (tmp37) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp36 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp36) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 3107(line=130, offs=1) -- 4482(line=194, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; // ATSlocal_void (tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; // ATSlocal_void (tmp21) ; ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun: /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp10 = ats_selsin_mac(tmp9, atslab_1) */ ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop0 () ; /* tmp12 = ats_selsin_mac(tmp11, atslab_1) */ ; tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg2) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg4) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp16 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp16, tmp17) ; tmp15 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp15, atslab_0, tmp18) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp15 = (ats_sum_ptr_type)0 ; break ; } while (0) ; /* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop () ; tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () ; /* tmp21 = */ list_vt_free_01499_ats_ptr_type (tmp20) ; tmp35 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg1, &aux_6) ; tmp8 = ats_castfn_mac(ats_ptr_type, tmp35) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2) */ ATSstaticdec() ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp49) ; // ATSlocal_void (tmp50) ; __ats_lab_prerr_error3_loc_02051_: /* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp49 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ; return /* (tmp49) */ ; } /* end of [prerr_error3_loc_02051_] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 4553(line=201, offs=1) -- 4945(line=218, offs=4) */ ATSstaticdec() ats_void_type auxerr_none_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp47) ; // ATSlocal_void (tmp48) ; // ATSlocal_void (tmp51) ; // ATSlocal_void (tmp52) ; // ATSlocal_void (tmp53) ; // ATSlocal_void (tmp54) ; // ATSlocal_void (tmp55) ; // ATSlocal_void (tmp56) ; ATSlocal (ats_ptr_type, tmp57) ; __ats_lab_auxerr_none_10: /* tmp48 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp51 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ; /* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp53 = */ atspre_prerr_string (ATSstrcst("] is retained with the type [")) ; /* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ; /* tmp55 = */ atspre_prerr_string (ATSstrcst("but it should be consumed instead.")) ; /* tmp56 = */ atspre_prerr_newline () ; tmp57 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp57)->tag = 89 ; ats_selptrset_mac(anairiats_sum_4, tmp57, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp57, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp57, atslab_2, arg2) ; /* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp57) ; return /* (tmp47) */ ; } /* end of [auxerr_none_10] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 4975(line=221, offs=1) -- 5372(line=238, offs=4) */ ATSstaticdec() ats_void_type auxerr_some_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; // ATSlocal_void (tmp65) ; ATSlocal (ats_ptr_type, tmp66) ; __ats_lab_auxerr_some_12: /* tmp59 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp60 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp62 = */ atspre_prerr_string (ATSstrcst("] is consumed but it should be retained with the type [")) ; /* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ; /* tmp64 = */ atspre_prerr_string (ATSstrcst("] instead.")) ; /* tmp65 = */ atspre_prerr_newline () ; tmp66 = ATS_MALLOC(sizeof(anairiats_sum_4)) ; ((ats_sum_ptr_type)tmp66)->tag = 89 ; ats_selptrset_mac(anairiats_sum_4, tmp66, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_4, tmp66, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_4, tmp66, atslab_2, arg2) ; /* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp66) ; return /* (tmp58) */ ; } /* end of [auxerr_some_12] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 5402(line=241, offs=1) -- 5789(line=257, offs=4) */ ATSstaticdec() ats_void_type auxerr_some2_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp67) ; // ATSlocal_void (tmp68) ; // ATSlocal_void (tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; __ats_lab_auxerr_some2_13: /* tmp68 = */ prerr_error3_loc_02051_ (arg0) ; /* tmp69 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ; /* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ; /* tmp71 = */ atspre_prerr_string (ATSstrcst("] is retained but with a type that fails to merge.")) ; /* tmp72 = */ atspre_prerr_newline () ; /* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; tmp74 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp74)->tag = 91 ; ats_selptrset_mac(anairiats_sum_5, tmp74, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_5, tmp74, atslab_1, arg1) ; ats_selptrset_mac(anairiats_sum_5, tmp74, atslab_2, arg2) ; ats_selptrset_mac(anairiats_sum_5, tmp74, atslab_3, arg3) ; /* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp74) ; return /* (tmp67) */ ; } /* end of [auxerr_some2_13] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 5841(line=262, offs=1) -- 6980(line=314, offs=4) */ ATSstaticdec() ats_void_type auxVarCK_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; ATSlocal (ats_int_type, tmp78) ; ATSlocal (ats_bool_type, tmp79) ; ATSlocal (ats_bool_type, tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; ATSlocal (ats_int_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; // ATSlocal_void (tmp86) ; ATSlocal (ats_bool_type, tmp87) ; // ATSlocal_void (tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; __ats_lab_auxVarCK_14: do { /* branch: __ats_lab_11 */ __ats_lab_11_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; } __ats_lab_11_1: tmp76 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; do { /* branch: __ats_lab_12 */ __ats_lab_12_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp77 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; /* ats_int_type tmp78 ; */ tmp78 = 0 ; tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq (tmp76, tmp77) ; tmp81 = atspre_neg_bool (tmp79) ; if (tmp81) { /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp83 = ats_selsin_mac(tmp82, atslab_1) */ ; tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (arg0, tmp76, tmp77) ; tmp85 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ((ats_sum_ptr_type)tmp85)->tag = 8 ; ats_selptrset_mac(anairiats_sum_6, tmp85, atslab_0, arg1) ; /* tmp86 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp85) ; tmp78 = tmp84 ; } else { /* empty */ } /* end of [if] */ tmp87 = atspre_gt_int_int (tmp78, 0) ; if (tmp87) { /* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ; /* tmp75 = */ auxerr_some2_13 (arg0, arg1, tmp76, tmp77) ; } else { /* empty */ } /* end of [if] */ break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_13_1: /* tmp75 = */ auxerr_none_10 (arg0, arg1, tmp76) ; break ; } while (0) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_14_1: do { /* branch: __ats_lab_15 */ __ats_lab_15_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp89 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; /* tmp75 = */ auxerr_some_12 (arg0, arg1, tmp89) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_16_1: break ; } while (0) ; break ; } while (0) ; return /* (tmp75) */ ; } /* end of [auxVarCK_14] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 7028(line=319, offs=1) -- 7331(line=333, offs=4) */ ATSstaticdec() ats_void_type auxMetCK_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; ATSlocal (ats_ptr_type, tmp93) ; __ats_lab_auxMetCK_15: do { /* branch: __ats_lab_17 */ __ats_lab_17_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp91 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (arg1, tmp91) ; tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec (arg0, tmp92, tmp91) ; /* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp93) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_18_1: break ; } while (0) ; return /* (tmp90) */ ; } /* end of [auxMetCK_15] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 7510(line=349, offs=1) -- 8252(line=382, offs=4) */ ATSstaticdec() ats_void_type auxitm_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp95) ; ATSlocal (ats_ptr_type, tmp96) ; ATSlocal (ats_ptr_type, tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_ptr_type, tmp101) ; ATSlocal (ats_bool_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_ptr_type, tmp105) ; __ats_lab_auxitm_17: tmp96 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_var) ; do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp97 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_type) ; tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp96) ; /* tmp95 = */ auxVarCK_14 (arg0, tmp96, tmp97, tmp98) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp99 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; tmp100 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp99) ; tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp96, tmp101) ; if (tmp102) { tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_type) ; tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp99) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst (arg1, tmp104) ; /* tmp95 = */ auxVarCK_14 (arg0, tmp96, tmp103, tmp105) ; } else { arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp100 ; arg3 = arg3 ; goto __ats_lab_auxitm_17 ; // tail call } /* end of [if] */ break ; } while (0) ; return /* (tmp95) */ ; } /* end of [auxitm_17] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 8282(line=385, offs=1) -- 8576(line=402, offs=4) */ ATSstaticdec() ats_void_type auxitmlst_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; // ATSlocal_void (tmp109) ; __ats_lab_auxitmlst_18: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp107 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp108 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; /* tmp109 = */ auxitm_17 (arg0, arg1, arg2, tmp107) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp108 ; goto __ats_lab_auxitmlst_18 ; // tail call break ; } while (0) ; return /* (tmp106) */ ; } /* end of [auxitmlst_18] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 7379(line=338, offs=1) -- 9064(line=428, offs=4) */ ATSstaticdec() ats_void_type auxEnter_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; // ATSlocal_void (tmp116) ; // ATSlocal_void (tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; // ATSlocal_void (tmp120) ; __ats_lab_auxEnter_16: tmp111 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_svs) ; tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (arg0, tmp111) ; /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp113 = ats_selsin_mac(tmp112, atslab_1) */ ; tmp115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_gua) ; tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp110, tmp115) ; /* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp114) ; tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ; /* tmp117 = */ auxitmlst_18 (arg0, tmp110, tmp118, arg2) ; tmp119 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp119)->tag = 9 ; ats_selptrset_mac(anairiats_sum_8, tmp119, atslab_0, -1) ; /* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp119) ; /* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp110) ; return /* (tmp94) */ ; } /* end of [auxEnter_16] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 9243(line=444, offs=1) -- 9996(line=478, offs=4) */ ATSstaticdec() ats_void_type auxitm1_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp122) ; ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_bool_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; __ats_lab_auxitm1_20: tmp123 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg5), atslab_lstbefitm_var) ; do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp124 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ; /* tmp122 = */ auxitm2_21 (arg0, arg2, tmp124, arg5) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_24_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_0) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_1) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp125) ; tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp123, tmp127) ; if (tmp128) { tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg5), atslab_lstbefitm_type) ; tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp125) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst (arg3, tmp130) ; /* tmp122 = */ auxVarCK_14 (arg0, tmp123, tmp129, tmp131) ; } else { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp126 ; arg5 = arg5 ; goto __ats_lab_auxitm1_20 ; // tail call } /* end of [if] */ break ; } while (0) ; return /* (tmp122) */ ; } /* end of [auxitm1_20] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 10024(line=481, offs=1) -- 10679(line=512, offs=4) */ ATSstaticdec() ats_void_type auxitm2_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_bool_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab_auxitm2_21: tmp133 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_var) ; do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: /* tmp132 = */ auxitm3_22 (arg0, arg1, arg3) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ; tmp135 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ; tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp134) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp133, tmp136) ; if (tmp137) { tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_type) ; tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp134) ; /* tmp132 = */ auxVarCK_14 (arg0, tmp133, tmp138, tmp139) ; } else { arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp135 ; arg3 = arg3 ; goto __ats_lab_auxitm2_21 ; // tail call } /* end of [if] */ break ; } while (0) ; return /* (tmp132) */ ; } /* end of [auxitm2_21] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 10707(line=515, offs=1) -- 11256(line=542, offs=4) */ ATSstaticdec() ats_void_type auxitm3_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_bool_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; __ats_lab_auxitm3_22: tmp141 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_lstbefitm_var) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; } __ats_lab_27_1: break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_28_1: tmp142 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp143 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp142), atslab_lstbefitm_var) ; tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp141, tmp144) ; if (tmp145) { tmp146 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_lstbefitm_type) ; tmp147 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp142), atslab_lstbefitm_type) ; /* tmp140 = */ auxVarCK_14 (arg0, tmp141, tmp146, tmp147) ; } else { arg0 = arg0 ; arg1 = tmp143 ; arg2 = arg2 ; goto __ats_lab_auxitm3_22 ; // tail call } /* end of [if] */ break ; } while (0) ; return /* (tmp140) */ ; } /* end of [auxitm3_22] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 11284(line=545, offs=1) -- 11644(line=564, offs=4) */ ATSstaticdec() ats_void_type auxitmlst_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; // ATSlocal_void (tmp151) ; __ats_lab_auxitmlst_23: do { /* branch: __ats_lab_29 */ __ats_lab_29_0: if (arg5 != (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; } __ats_lab_29_1: break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: // if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_30_1: tmp149 = ats_caselptrlab_mac(anairiats_sum_1, arg5, atslab_0) ; tmp150 = ats_caselptrlab_mac(anairiats_sum_1, arg5, atslab_1) ; /* tmp151 = */ auxitm1_20 (arg0, arg1, arg2, arg3, arg4, tmp149) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = arg4 ; arg5 = tmp150 ; goto __ats_lab_auxitmlst_23 ; // tail call break ; } while (0) ; return /* (tmp148) */ ; } /* end of [auxitmlst_23] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 9112(line=433, offs=1) -- 12117(line=588, offs=4) */ ATSstaticdec() ats_void_type auxBreak_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp121) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; // ATSlocal_void (tmp156) ; // ATSlocal_void (tmp157) ; // ATSlocal_void (tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; // ATSlocal_void (tmp161) ; __ats_lab_auxBreak_19: tmp152 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_res) ; tmp153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp152), atslab_i2nvresstate_svs) ; tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (arg0, tmp153) ; tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; /* tmp156 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp157 = ats_selsin_mac(tmp156, atslab_1) */ ; tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp152), atslab_i2nvresstate_arg) ; /* tmp158 = */ auxitmlst_23 (arg0, arg1, arg2, tmp154, tmp159, tmp155) ; tmp160 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp160)->tag = 9 ; ats_selptrset_mac(anairiats_sum_8, tmp160, atslab_0, 0) ; /* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp160) ; /* tmp121 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp154) ; return /* (tmp121) */ ; } /* end of [auxBreak_19] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 12323(line=605, offs=1) -- 13026(line=636, offs=4) */ ATSstaticdec() ats_void_type auxitm1_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_bool_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; ATSlocal (ats_ptr_type, tmp170) ; ATSlocal (ats_ptr_type, tmp171) ; __ats_lab_auxitm1_25: tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg4), atslab_lstbefitm_var) ; do { /* branch: __ats_lab_31 */ __ats_lab_31_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; } __ats_lab_31_1: /* tmp163 = */ auxitm2_26 (arg0, arg1, arg4) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_32_1: tmp165 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ; tmp166 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ; tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp165) ; tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp164, tmp167) ; if (tmp168) { tmp169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg4), atslab_lstbefitm_type) ; tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp165) ; tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst (arg2, tmp170) ; /* tmp163 = */ auxVarCK_14 (arg0, tmp164, tmp169, tmp171) ; } else { arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp166 ; arg4 = arg4 ; goto __ats_lab_auxitm1_25 ; // tail call } /* end of [if] */ break ; } while (0) ; return /* (tmp163) */ ; } /* end of [auxitm1_25] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 13054(line=639, offs=1) -- 13603(line=666, offs=4) */ ATSstaticdec() ats_void_type auxitm2_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_bool_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; __ats_lab_auxitm2_26: tmp173 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_lstbefitm_var) ; do { /* branch: __ats_lab_33 */ __ats_lab_33_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; } __ats_lab_33_1: break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_34_1: tmp174 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ; tmp175 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ; tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp174), atslab_lstbefitm_var) ; tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp173, tmp176) ; if (tmp177) { tmp178 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_lstbefitm_type) ; tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp174), atslab_lstbefitm_type) ; /* tmp172 = */ auxVarCK_14 (arg0, tmp173, tmp178, tmp179) ; } else { arg0 = arg0 ; arg1 = tmp175 ; arg2 = arg2 ; goto __ats_lab_auxitm2_26 ; // tail call } /* end of [if] */ break ; } while (0) ; return /* (tmp172) */ ; } /* end of [auxitm2_26] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 13631(line=669, offs=1) -- 13962(line=687, offs=4) */ ATSstaticdec() ats_void_type auxitmlst_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; __ats_lab_auxitmlst_27: do { /* branch: __ats_lab_35 */ __ats_lab_35_0: if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; } __ats_lab_35_1: break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_36_1: tmp181 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_0) ; tmp182 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_1) ; /* tmp183 = */ auxitm1_25 (arg0, arg1, arg2, arg3, tmp181) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = arg3 ; arg4 = tmp182 ; goto __ats_lab_auxitmlst_27 ; // tail call break ; } while (0) ; return /* (tmp180) */ ; } /* end of [auxitmlst_27] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 12165(line=593, offs=1) -- 14739(line=729, offs=4) */ ATSstaticdec() ats_ptr_type auxContinue_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; ATSlocal (ats_ptr_type, tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; ATSlocal (ats_ptr_type, tmp193) ; ATSlocal (ats_ptr_type, tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; ATSlocal (ats_ptr_type, tmp197) ; // ATSlocal_void (tmp198) ; ATSlocal (ats_ptr_type, tmp199) ; ATSlocal (ats_ptr_type, tmp200) ; // ATSlocal_void (tmp201) ; // ATSlocal_void (tmp202) ; __ats_lab_auxContinue_24: tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp186 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp186, tmp184) ; tmp185 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp185, atslab_0, tmp187) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp185 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp189 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_svs) ; tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (arg0, tmp189) ; tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; /* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp192 = ats_selsin_mac(tmp191, atslab_1) */ ; tmp194 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_gua) ; tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp188, tmp194) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp193) ; tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_met) ; /* tmp196 = */ auxMetCK_15 (arg0, tmp188, tmp197) ; tmp199 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ; /* tmp198 = */ auxitmlst_27 (arg0, arg2, tmp188, tmp199, tmp190) ; tmp200 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp200)->tag = 9 ; ats_selptrset_mac(anairiats_sum_8, tmp200, atslab_0, 1) ; /* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp200) ; /* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp188) ; tmp162 = tmp185 ; return (tmp162) ; } /* end of [auxContinue_24] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2556(line=86, offs=16) -- 2611(line=87, offs=49) */ ATSstaticdec() ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp246) ; __ats_lab_option_vt_free_01544_ats_ptr_type: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: ATS_FREE(arg0) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: break ; } while (0) ; return /* (tmp246) */ ; } /* end of [option_vt_free_01544_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 14815(line=735, offs=1) -- 17176(line=820, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loop (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) { /* local vardec */ ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_ptr_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; // ATSlocal_void (tmp210) ; ATSlocal (ats_ptr_type, tmp211) ; // ATSlocal_void (tmp212) ; ATSlocal (ats_ptr_type, tmp213) ; // ATSlocal_void (tmp214) ; ATSlocal (ats_ptr_type, tmp215) ; ATSlocal (ats_ptr_type, tmp216) ; ATSlocal (ats_int_type, tmp217) ; ATSlocal (ats_ptr_type, tmp218) ; // ATSlocal_void (tmp219) ; ATSlocal (ats_ptr_type, tmp220) ; // ATSlocal_void (tmp221) ; // ATSlocal_void (tmp222) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_ptr_type, tmp224) ; // ATSlocal_void (tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; // ATSlocal_void (tmp231) ; // ATSlocal_void (tmp232) ; // ATSlocal_void (tmp233) ; // ATSlocal_void (tmp234) ; // ATSlocal_void (tmp235) ; // ATSlocal_void (tmp236) ; // ATSlocal_void (tmp237) ; // ATSlocal_void (tmp238) ; // ATSlocal_void (tmp239) ; // ATSlocal_void (tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; // ATSlocal_void (tmp242) ; ATSlocal (ats_ptr_type, tmp243) ; // ATSlocal_void (tmp244) ; // ATSlocal_void (tmp245) ; // ATSlocal_void (tmp247) ; // ATSlocal_void (tmp248) ; ATSlocal (ats_ptr_type, tmp249) ; // ATSlocal_void (tmp250) ; ATSlocal (ats_ptr_type, tmp251) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loop: tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ; tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp206, tmp204) ; tmp205 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ats_selptrset_mac(anairiats_sum_3, tmp205, atslab_0, tmp207) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp205 = (ats_sum_ptr_type)0 ; break ; } while (0) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ; tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun (arg0, tmp208, arg3, arg4, arg5) ; /* tmp210 = */ auxEnter_16 (arg0, arg1, tmp208) ; tmp211 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_loc) ; tmp213 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_svs) ; /* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp213) ; tmp215 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_gua) ; /* tmp214 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (tmp211, tmp215) ; tmp216 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_met) ; do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (tmp216 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp218 = ats_caselptrlab_mac(anairiats_sum_3, tmp216, atslab_0) ; /* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2explst_check_termet (arg0, tmp218) ; tmp217 = 0 ; break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (tmp216 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ntm (arg0) ; break ; } while (0) ; tmp220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ; /* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update (tmp211, tmp220) ; /* tmp222 = */ lstbefitmlst_opnset_and_add_2 (tmp211, tmp209) ; tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg3) ; tmp224 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp223), atslab_d3exp_loc) ; /* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp223) ; tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp223) ; tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype () ; tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp223, tmp227) ; tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp226) ; tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype (tmp229) ; /* tmp231 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp232 = ats_selsin_mac(tmp231, atslab_1) */ ; /* tmp233 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg (tmp224, ats_castfn_mac(ats_ptr_type, tmp230)) ; /* tmp234 = */ auxBreak_19 (arg0, arg1, tmp209) ; /* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (arg0) ; /* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ; /* tmp237 = ats_selsin_mac(tmp236, atslab_1) */ ; /* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt (tmp224, ats_castfn_mac(ats_ptr_type, tmp230)) ; /* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop1 (arg1, tmp209, arg4) ; /* tmp240 = ats_selsin_mac(tmp239, atslab_1) */ ; tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (arg5, tmp204) ; /* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop () ; tmp243 = auxContinue_24 (arg0, arg1, tmp209, arg4) ; /* tmp244 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (arg0) ; /* tmp245 = */ option_vt_free_01544_ats_ptr_type (tmp230) ; /* tmp247 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (tmp209) ; tmp249 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ; /* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update (tmp211, tmp249) ; tmp251 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_res) ; /* tmp250 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (tmp211, tmp251) ; tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loop (arg0, tmp205, tmp228, tmp243, tmp241) ; return (tmp203) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loop] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 17283(line=829, offs=1) -- 17627(line=841, offs=4) */ ATSstaticdec() ats_void_type auxerr_31 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp253) ; // ATSlocal_void (tmp254) ; // ATSlocal_void (tmp255) ; ATSlocal (ats_bool_type, tmp256) ; // ATSlocal_void (tmp257) ; ATSlocal (ats_bool_type, tmp258) ; // ATSlocal_void (tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; __ats_lab_auxerr_31: /* tmp254 = */ prerr_error3_loc_02051_ (arg0) ; tmp256 = atspre_eq_int_int (arg1, 0) ; if (tmp256) { /* tmp255 = */ atspre_prerr_string (ATSstrcst(": [break] is only allowed inside a for/while-loop")) ; } else { /* empty */ } /* end of [if] */ tmp258 = atspre_gt_int_int (arg1, 0) ; if (tmp258) { /* tmp257 = */ atspre_prerr_string (ATSstrcst(": [continue] is only allowed inside a for/while-loop")) ; } else { /* empty */ } /* end of [if] */ /* tmp259 = */ atspre_prerr_newline () ; tmp260 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ((ats_sum_ptr_type)tmp260)->tag = 88 ; ats_selptrset_mac(anairiats_sum_11, tmp260, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_11, tmp260, atslab_1, arg1) ; /* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp260) ; return /* (tmp253) */ ; } /* end of [auxerr_31] */ /* // /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 17258(line=826, offs=3) -- 18226(line=866, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loopexn (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_ptr_type, tmp261) ; // ATSlocal_void (tmp262) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_bool_type, tmp267) ; ATSlocal (ats_ptr_type, tmp268) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loopexn: tmp261 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_top () ; do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (tmp261 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; } __ats_lab_45_1: tmp263 = ats_caselptrlab_mac(anairiats_sum_3, tmp261, atslab_0) ; ATS_FREE(tmp261) ; do { /* branch: __ats_lab_46 */ __ats_lab_46_0: if (((ats_sum_ptr_type)tmp263)->tag != 0) { goto __ats_lab_47_0 ; } __ats_lab_46_1: /* tmp262 = */ auxerr_31 (arg0, arg1) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp263)->tag != 1) { goto __ats_lab_48_0 ; } __ats_lab_47_1: break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: // if (((ats_sum_ptr_type)tmp263)->tag != 2) { ats_deadcode_failure_handle () ; } __ats_lab_48_1: tmp264 = ats_caselptrlab_mac(anairiats_sum_4, tmp263, atslab_0) ; tmp265 = ats_caselptrlab_mac(anairiats_sum_4, tmp263, atslab_1) ; tmp266 = ats_caselptrlab_mac(anairiats_sum_4, tmp263, atslab_2) ; tmp267 = atspre_eq_int_int (arg1, 0) ; if (tmp267) { /* tmp262 = */ auxBreak_19 (arg0, tmp264, tmp265) ; } else { tmp268 = auxContinue_24 (arg0, tmp264, tmp265, tmp266) ; } /* end of [if] */ break ; } while (0) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: // if (tmp261 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_49_1: /* tmp262 = */ auxerr_31 (arg0, arg1) ; break ; } while (0) ; tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loopexn (arg0, arg1) ; return (tmp252) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loopexn] */ /* 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_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_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_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_trans3_looping_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_patcst2_dats.c0000644000175000017500000050710113431250607022111 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_token_loc ; ats_ptr_type atslab_token_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; ats_uint_type atslab_2 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_rec_3 ; typedef struct { anairiats_rec_3 atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_bool_type atslab_0 ; } anairiats_sum_8 ; typedef struct { int tag ; ats_char_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_l0ab_loc ; ats_ptr_type atslab_l0ab_lab ; } anairiats_rec_11 ; typedef struct { ats_ptr_type atslab_p2at_loc ; ats_ptr_type atslab_p2at_svs ; ats_ptr_type atslab_p2at_dvs ; ats_ptr_type atslab_p2at_type ; ats_ptr_type atslab_p2at_node ; } anairiats_rec_12 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; ats_ptr_type atslab_3 ; ats_int_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_13 ; typedef struct { int tag ; ats_int_type atslab_0 ; } anairiats_sum_14 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_15 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_16 ; typedef struct { ats_char_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_17 ; typedef struct { ats_ptr_type atslab_c2lau_loc ; ats_ptr_type atslab_c2lau_pat ; ats_ptr_type atslab_c2lau_gua ; ats_int_type atslab_c2lau_seq ; ats_int_type atslab_c2lau_neg ; ats_ptr_type atslab_c2lau_body ; } anairiats_rec_18 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_INT_150) ; 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_dynexp2_2esats__LABP2ATomit_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__LABP2ATnorm_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvar_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tcon_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tintrep_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tfloat_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tstring_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Ti0nt_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tf0loat_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tempty_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlst_12) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trec_13) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Trefas_14) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Texist_15) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tvbox_16) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tann_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__LABP2ATCST_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcon_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCempty_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCint_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCintc_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCbool_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCchar_6) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcharc_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCfloat_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCstring_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCrec_10) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_eq_bool_bool) (ats_bool_type, ats_bool_type) ; ATSextern_fun(ats_void_type, atspre_fprint_bool) (ats_ptr_type, ats_bool_type) ; ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_gt_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_neq_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ; ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ; ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ; ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, 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_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_uint_type, atspre_add_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_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_llint_type, atspre_llint_of_int) (ats_int_type) ; ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ; ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, 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_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_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, ats_malloc_gc) (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_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_ptr_type, atspre_string_copy) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ; ATSextern_val(ats_ptr_type, atspre_stropt_none) ; ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprintf_exn) (ats_ptr_type, ats_ptr_type, ...) ; ATSextern_fun(ats_ptr_type, atspre_tostringf) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_sing) (ats_char_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_is_member) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_add) (ats_ptr_type, ats_char_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_charset) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_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_intinf_2esats__intinf_make_int) (ats_int_type) ; ATSextern_fun(ats_ptr_type, patsopt_intinf_make_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_sing) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_is_member) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_add) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinfset) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind) (ats_int_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_p2at) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__i0nt2intinf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_lst) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_labp2atcstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlstlst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cstlst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_comp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_comp) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_inter_test) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_inter_test) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_inter_test) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_diff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_diff) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_make_substring) (ats_ptr_type, ats_size_type, ats_size_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type prerr_FILENAME_02608_ () ; static ats_ptr_type auxlst_3 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ; static ats_clo_ptr_type auxlst_3_closure_make (ats_ptr_type env0, ats_ptr_type env1) ; static ats_ptr_type auxlst_3_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type loop_6 (ats_ptr_type arg0) ; static ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ; static ats_void_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_13 (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_11 (ats_ptr_type arg0) ; static ats_void_type aux_19 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ; static ats_clo_ptr_type aux_19_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ; static ats_void_type aux_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ; static ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type fprint_labp2atcst_24 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type p2at2cstlst_vt_33 (ats_ptr_type arg0) ; static ats_ptr_type labp2at2cstlst_vt_35 (ats_ptr_type arg0) ; static ats_int_type __ats_fun_37 (ats_ref_type arg0, ats_ref_type arg1) ; static ats_clo_ptr_type __ats_fun_37_closure_make () ; static ats_int_type __ats_fun_37_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1) ; static ats_void_type split_39 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ; static ats_void_type merge_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ; static ats_int_type loop_42 (ats_ptr_type arg0, ats_int_type arg1) ; static ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ; static ats_ptr_type list_vt_mergesort_01524_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ; static ats_void_type prerr_interror_loc_02610_ (ats_ptr_type arg0) ; static ats_ptr_type auxanys_45 (ats_int_type arg0, ats_ptr_type arg1) ; static ats_ptr_type app_49 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ; static ats_ptr_type __ats_fun_50 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_50_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_50_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_void_type loop_52 (ats_ref_type arg0, ats_ptr_type arg1) ; static ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type auxmain_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type p2atcst_comp_con_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type aux_54 (ats_ptr_type arg0) ; static ats_ptr_type aux_55 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_56 (ats_int_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_56_closure_make (ats_int_type env0) ; static ats_ptr_type __ats_fun_56_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxanys_58 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux_59 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_59_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_59_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_60 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_60_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_60_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_62 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_62_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_62_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type labp2atcst_comp_61 (ats_ptr_type arg0) ; static ats_ptr_type aux_64 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type aux_64_closure_make (ats_ptr_type env0) ; static ats_ptr_type aux_64_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux_65 (ats_ptr_type arg0) ; static ats_clo_ptr_type aux_65_closure_make () ; static ats_ptr_type aux_65_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_67 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_69 (ats_ptr_type arg0) ; static ats_ptr_type __ats_fun_74 (ats_ptr_type env0, ats_ptr_type arg0) ; static ats_clo_ptr_type __ats_fun_74_closure_make (ats_ptr_type env0) ; static ats_ptr_type __ats_fun_74_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type aux1_76 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type aux2_77 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 2634(line=86, offs=28) -- 2659(line=86, offs=53) */ ATSstaticdec() ats_void_type prerr_FILENAME_02608_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02608_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_p2atcst")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02608_] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 2974(line=109, offs=13) -- 3598(line=136, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__i0nt2intinf (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_uint_type, tmp4) ; ATSlocal (ats_bool_type, tmp5) ; ATSlocal (ats_size_type, tmp6) ; ATSlocal (ats_size_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; // ATSlocal_void (tmp10) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__i0nt2intinf: tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_token_node) ; if (((ats_sum_ptr_type)tmp2)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_patcst2.dats: 2993(line=111, offs=5) -- 3028(line=111, offs=40)") ; } tmp3 = ats_caselptrlab_mac(anairiats_sum_2, tmp2, atslab_1) ; tmp4 = ats_caselptrlab_mac(anairiats_sum_2, tmp2, atslab_2) ; tmp5 = atspre_gt_uint_uint (tmp4, 0u) ; if (tmp5) { tmp6 = atspre_string_length (tmp3) ; tmp7 = atspre_sub_size_size (tmp6, ats_castfn_mac(ats_size_type, tmp4)) ; tmp8 = atspre_string_make_substring (tmp3, 0, ats_castfn_mac(ats_size_type, tmp7)) ; tmp9 = patsopt_intinf_make_string (ats_castfn_mac(ats_ptr_type, tmp8)) ; /* tmp10 = */ atspre_strptr_free (tmp8) ; tmp1 = tmp9 ; } else { tmp1 = patsopt_intinf_make_string (tmp3) ; } /* end of [if] */ return (tmp1) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__i0nt2intinf] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 4078(line=164, offs=1) -- 4264(line=174, offs=2) */ ATSstaticdec() ats_ptr_type auxlst_3 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; __ats_lab_auxlst_3: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: tmp21 = (ats_sum_ptr_type)0 ; tmp20 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp20)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp20, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_5, tmp20, atslab_1, tmp21) ; break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp23 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp26 = auxlst_3 (env0, env1, tmp23) ; tmp27 = (ats_sum_ptr_type)0 ; tmp25 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp25, atslab_0, tmp26) ; ats_selptrset_mac(anairiats_sum_6, tmp25, atslab_1, tmp27) ; tmp24 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp24, atslab_0, tmp22) ; ats_selptrset_mac(anairiats_sum_6, tmp24, atslab_1, tmp25) ; tmp20 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp20)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp20, atslab_0, env1) ; ats_selptrset_mac(anairiats_sum_5, tmp20, atslab_1, tmp24) ; break ; } while (0) ; return (tmp20) ; } /* end of [auxlst_3] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; } auxlst_3_closure_type ; ats_ptr_type auxlst_3_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return auxlst_3 (((auxlst_3_closure_type*)cloptr)->closure_env_0, ((auxlst_3_closure_type*)cloptr)->closure_env_1, arg0) ; } /* end of function */ ATSinline() ats_void_type auxlst_3_closure_init (auxlst_3_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) { p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_3_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; return ; } /* end of function */ ats_clo_ptr_type auxlst_3_closure_make (ats_ptr_type env0, ats_ptr_type env1) { auxlst_3_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_3_closure_type)) ; auxlst_3_closure_init (p_clo, env0, env1) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 3669(line=142, offs=3) -- 4310(line=178, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_lst (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_bool_type, tmp12) ; ATSlocal (ats_bool_type, tmp13) ; ATSlocal (ats_bool_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (anairiats_rec_3, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_lst: tmp13 = atspre_gte_int_int (arg0, 0) ; if (tmp13) { tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_linkind (arg0) ; tmp12 = atspre_neg_bool (tmp14) ; } else { tmp12 = ats_true_bool ; } /* end of [if] */ if (tmp12) { tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_t0ype_int_type) ; } else { tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_list_vt0ype_int_vtype) ; } /* end of [if] */ tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst (tmp15) ; if (tmp16 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_patcst2.dats: 4000(line=160, offs=5) -- 4031(line=160, offs=36)") ; } tmp17 = ats_caselptrlab_mac(anairiats_sum_4, tmp16, atslab_0) ; tmp18 = ats_select_mac(tmp17, atslab_0) ; tmp19 = ats_select_mac(tmp17, atslab_1) ; tmp11 = auxlst_3 (tmp18, tmp19, arg1) ; return (tmp11) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_lst] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-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_6 (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab_loop_6: do { /* branch: __ats_lab_3 */ __ats_lab_3_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; } __ats_lab_3_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; arg0 = tmp34 ; goto __ats_lab_loop_6 ; // tail call break ; /* branch: __ats_lab_4 */ __ats_lab_4_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_4_1: break ; } while (0) ; return /* (tmp33) */ ; } /* end of [loop_6] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4) */ ATSstaticdec() ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp32) ; __ats_lab_list_vt_free_01499_ats_ptr_type: /* tmp32 = */ loop_6 (arg0) ; return /* (tmp32) */ ; } /* end of [list_vt_free_01499_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 4389(line=183, offs=23) -- 4571(line=189, offs=26) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; // ATSlocal_void (tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free: do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_2_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp30 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; /* tmp31 = */ list_vt_free_01499_ats_ptr_type (tmp29) ; arg0 = tmp30 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free ; // tail call break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: break ; } while (0) ; return /* (tmp28) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_ptr_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; ATSlocal (ats_ptr_type, tmp44) ; __ats_lab_loop_10: do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp40 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp41 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp39, arg3) ; tmp42 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp42, atslab_0, tmp41) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp42 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp43 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp40 ; arg1 = arg1 ; arg2 = tmp43 ; arg3 = arg3 ; goto __ats_lab_loop_10 ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_7_1: tmp44 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp44 ; break ; } while (0) ; return /* (tmp38) */ ; } /* end of [loop_10] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp45) ; // ATSlocal_void (tmp46) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp45 ; */ /* tmp46 = */ loop_10 (arg0, arg1, (&tmp45), arg2) ; tmp37 = tmp45 ; return (tmp37) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp36) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp36 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp36) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43) */ ATSstaticdec() ats_void_type loop_13 (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ // ATSlocal_void (tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; __ats_lab_loop_13: do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp51 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp52 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp52, atslab_0, tmp50) ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp52 ; // if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp53 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ; arg0 = tmp51 ; arg1 = tmp53 ; goto __ats_lab_loop_13 ; // tail call break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_9_1: tmp54 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg1) = tmp54 ; break ; } while (0) ; return /* (tmp49) */ ; } /* end of [loop_13] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2) */ ATSstaticdec() ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; __ats_lab_list_copy_01322_ats_ptr_type: /* ats_ptr_type tmp55 ; */ /* tmp56 = */ loop_13 (arg0, (&tmp55)) ; tmp48 = tmp55 ; return (tmp48) ; } /* end of [list_copy_01322_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 4733(line=196, offs=41) -- 4761(line=196, offs=69) */ ATSstaticdec() ats_ptr_type __ats_fun_11 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp47) ; __ats_lab___ats_fun_11: tmp47 = list_copy_01322_ats_ptr_type (arg0) ; return (tmp47) ; } /* end of [__ats_fun_11] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 4641(line=193, offs=23) -- 4762(line=196, offs=70) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy: tmp35 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), &__ats_fun_11) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 4850(line=203, offs=3) -- 6044(line=260, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; ATSlocal (ats_ptr_type, tmp63) ; ATSlocal (ats_ptr_type, tmp64) ; // ATSlocal_void (tmp65) ; // ATSlocal_void (tmp66) ; ATSlocal (ats_bool_type, tmp67) ; ATSlocal (ats_char_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_int_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; ATSlocal (ats_bool_type, tmp77) ; // ATSlocal_void (tmp78) ; ATSlocal (ats_bool_type, tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst: do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_11_0 ; } __ats_lab_10_1: /* tmp57 = */ atspre_fprint_char (arg0, '_') ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp58 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_d2con (arg0, tmp58) ; /* tmp61 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst (arg0, tmp59) ; /* tmp57 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_13_0 ; } __ats_lab_12_1: /* tmp57 = */ atspre_fprint_string (arg0, ATSstrcst("P2TCempty()")) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; /* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinf (arg0, tmp63) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp64 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; /* tmp65 = */ atspre_fprint_string (arg0, ATSstrcst("[^")) ; /* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__fprint_intinfset (arg0, tmp64) ; /* tmp57 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp67 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; /* tmp57 = */ atspre_fprint_bool (arg0, tmp67) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp68 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; /* tmp57 = */ atspre_fprint_char (arg0, tmp68) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp69 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; /* tmp70 = */ atspre_fprint_string (arg0, ATSstrcst("[^")) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_charset (arg0, tmp69) ; /* tmp57 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp72 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; /* tmp57 = */ atspre_fprint_string (arg0, tmp72) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp73 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; /* tmp57 = */ atspre_fprintf_exn (arg0, ATSstrcst("\"%s\""), tmp73) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: // if (((ats_sum_ptr_type)arg1)->tag != 10) { ats_deadcode_failure_handle () ; } __ats_lab_20_1: tmp74 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ; tmp75 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; tmp77 = atspre_eq_int_int (tmp74, 0) ; if (tmp77) { /* tmp76 = */ atspre_fprint_char (arg0, '@') ; } else { /* empty */ } /* end of [if] */ tmp79 = atspre_gt_int_int (tmp74, 0) ; if (tmp79) { /* tmp78 = */ atspre_fprint_char (arg0, '\'') ; } else { /* empty */ } /* end of [if] */ /* tmp80 = */ atspre_fprint_string (arg0, ATSstrcst("{")) ; /* tmp81 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_labp2atcstlst (arg0, tmp75) ; /* tmp57 = */ atspre_fprint_string (arg0, ATSstrcst("}")) ; break ; } while (0) ; return /* (tmp57) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 6099(line=263, offs=15) -- 6135(line=263, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp82) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcst: /* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst (stdout, arg0) ; return /* (tmp82) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 6160(line=265, offs=15) -- 6196(line=265, offs=51) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp83) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcst: /* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst (stderr, arg0) ; return /* (tmp83) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcst] */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11805(line=643, offs=1) -- 12085(line=657, offs=2) */ ATSstaticdec() ats_void_type aux_19 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ // ATSlocal_void (tmp86) ; ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; // ATSlocal_void (tmp89) ; ATSlocal (ats_bool_type, tmp90) ; // ATSlocal_void (tmp91) ; ATSlocal (ats_int_type, tmp92) ; __ats_lab_aux_19: do { /* branch: __ats_lab_21 */ __ats_lab_21_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; } __ats_lab_21_1: break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_22_1: tmp87 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp88 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp90 = atspre_gt_int_int (arg1, 0) ; if (tmp90) { /* tmp89 = */ atspre_fprint_string (env0, env1) ; } else { /* empty */ } /* end of [if] */ /* tmp91 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp87) ; tmp92 = atspre_add_int_int (arg1, 1) ; arg0 = tmp88 ; arg1 = tmp92 ; goto __ats_lab_aux_19 ; // tail call break ; } while (0) ; return /* (tmp86) */ ; } /* end of [aux_19] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; } aux_19_closure_type ; ats_void_type aux_19_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) { aux_19 (((aux_19_closure_type*)cloptr)->closure_env_0, ((aux_19_closure_type*)cloptr)->closure_env_1, ((aux_19_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type aux_19_closure_init (aux_19_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_19_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; return ; } /* end of function */ ats_clo_ptr_type aux_19_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) { aux_19_closure_type *p_clo = ATS_MALLOC(sizeof(aux_19_closure_type)) ; aux_19_closure_init (p_clo, env0, env1, env2) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_utils.dats: 11765(line=638, offs=11) -- 12128(line=661, offs=4) */ ATSstaticdec() ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp85) ; __ats_lab_fprintlst_01887_ats_ptr_type: /* tmp85 = */ aux_19 (arg0, arg2, arg3, arg1, 0) ; return /* (tmp85) */ ; } /* end of [fprintlst_01887_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 6251(line=271, offs=3) -- 6308(line=271, offs=60) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp84) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst: /* tmp84 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst) ; return /* (tmp84) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 6388(line=277, offs=18) -- 6429(line=277, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp93) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlst: /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst (stdout, arg0) ; return /* (tmp93) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 6457(line=279, offs=18) -- 6498(line=279, offs=59) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp94) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlst: /* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst (stderr, arg0) ; return /* (tmp94) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 6530(line=282, offs=21) -- 6600(line=283, offs=64) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlst_vt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp95) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlst_vt: /* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst (stdout, ats_castfn_mac(ats_ptr_type, arg0)) ; return /* (tmp95) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlst_vt] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 6663(line=286, offs=21) -- 6733(line=287, offs=64) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlst_vt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlst_vt: /* tmp96 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst (stderr, ats_castfn_mac(ats_ptr_type, arg0)) ; return /* (tmp96) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlst_vt] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 6792(line=292, offs=5) -- 6990(line=300, offs=4) */ ATSstaticdec() ats_void_type fprint_labp2atcst_24 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp97) ; ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_ptr_type, tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; __ats_lab_fprint_labp2atcst_24: tmp98 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp99 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; /* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (arg0, tmp98) ; /* tmp101 = */ atspre_fprint_string (arg0, ATSstrcst("= ")) ; /* tmp97 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst (arg0, tmp99) ; return /* (tmp97) */ ; } /* end of [fprint_labp2atcst_24] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 7055(line=304, offs=3) -- 7115(line=304, offs=63) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_labp2atcstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp102) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_labp2atcstlst: /* tmp102 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &fprint_labp2atcst_24) ; return /* (tmp102) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_labp2atcstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 7180(line=308, offs=21) -- 7224(line=308, offs=65) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_labp2atcstlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp103) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_labp2atcstlst: /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_labp2atcstlst (stdout, arg0) ; return /* (tmp103) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_labp2atcstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 7255(line=310, offs=21) -- 7299(line=310, offs=65) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_labp2atcstlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp104) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_labp2atcstlst: /* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_labp2atcstlst (stderr, arg0) ; return /* (tmp104) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_labp2atcstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 7355(line=316, offs=3) -- 7462(line=320, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlstlst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlstlst: /* tmp106 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst("\n"), &_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlst) ; /* tmp105 = */ atspre_fprint_newline (arg0) ; return /* (tmp105) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 7524(line=323, offs=21) -- 7570(line=323, offs=67) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlstlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp107) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlstlst: /* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlstlst (stdout, arg0) ; return /* (tmp107) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 7601(line=325, offs=21) -- 7647(line=325, offs=67) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlstlst (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp108) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlstlst: /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlstlst (stderr, arg0) ; return /* (tmp108) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 7682(line=328, offs=24) -- 7760(line=329, offs=71) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlstlst_vt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp109) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlstlst_vt: /* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlstlst (stdout, ats_castfn_mac(ats_ptr_type, arg0)) ; return /* (tmp109) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__print_p2atcstlstlst_vt] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 7829(line=332, offs=24) -- 7907(line=333, offs=71) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlstlst_vt (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp110) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlstlst_vt: /* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcstlstlst (stderr, ats_castfn_mac(ats_ptr_type, arg0)) ; return /* (tmp110) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__prerr_p2atcstlstlst_vt] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 7969(line=339, offs=1) -- 8051(line=341, offs=50) */ ATSstaticdec() ats_ptr_type p2at2cstlst_vt_33 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp111) ; __ats_lab_p2at2cstlst_vt_33: tmp111 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst) ; return (tmp111) ; } /* end of [p2at2cstlst_vt_33] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 8102(line=344, offs=23) -- 8136(line=344, offs=57) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cstlst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp112) ; ATSlocal (ats_ptr_type, tmp113) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cstlst: tmp113 = p2at2cstlst_vt_33 (arg0) ; tmp112 = ats_castfn_mac(ats_ptr_type, tmp113) ; return (tmp112) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cstlst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 8165(line=348, offs=5) -- 8622(line=362, offs=34) */ ATSstaticdec() ats_ptr_type labp2at2cstlst_vt_35 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab_labp2at2cstlst_vt_35: do { /* branch: __ats_lab_23 */ __ats_lab_23_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_23_1: tmp115 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp116 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp115)->tag != 1) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp117 = ats_caselptrlab_mac(anairiats_sum_5, tmp115, atslab_0) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_5, tmp115, atslab_1) ; tmp119 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp117), atslab_l0ab_lab) ; tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst (tmp118) ; tmp121 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp121, atslab_0, tmp119) ; ats_selptrset_mac(anairiats_sum_6, tmp121, atslab_1, tmp120) ; tmp122 = labp2at2cstlst_vt_35 (tmp116) ; tmp114 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp114, atslab_0, tmp121) ; ats_selptrset_mac(anairiats_sum_6, tmp114, atslab_1, tmp122) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: // if (((ats_sum_ptr_type)tmp115)->tag != 0) { ats_deadcode_failure_handle () ; } __ats_lab_25_1: arg0 = tmp116 ; goto __ats_lab_labp2at2cstlst_vt_35 ; // tail call break ; } while (0) ; break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp114 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp114) ; } /* end of [labp2at2cstlst_vt_35] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 9625(line=411, offs=5) -- 9823(line=419, offs=8) */ ATSstaticdec() ats_int_type __ats_fun_37 (ats_ref_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp147) ; ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; __ats_lab___ats_fun_37: tmp148 = ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ; tmp149 = ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg1), atslab_0) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (tmp148, tmp149) ; return (tmp147) ; } /* end of [__ats_fun_37] */ typedef struct { ats_fun_ptr_type closure_fun ; } __ats_fun_37_closure_type ; ats_int_type __ats_fun_37_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ref_type arg1) { return __ats_fun_37 (arg0, arg1) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_37_closure_init (__ats_fun_37_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_37_clofun ; return ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 16240(line=604, offs=5) -- 16603(line=618, offs=6) */ ATSstaticdec() ats_void_type split_39 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) { /* local vardec */ // ATSlocal_void (tmp154) ; ATSlocal (ats_bool_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_int_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; __ats_lab_split_39: tmp155 = atspre_igt (arg1, 0) ; if (tmp155) { // if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp156 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; tmp157 = atspre_isub (arg1, 1) ; arg0 = tmp156 ; arg1 = tmp157 ; arg2 = arg2 ; goto __ats_lab_split_39 ; // tail call } else { ats_ptrget_mac(ats_ptr_type, arg2) = ats_ptrget_mac(ats_ptr_type, arg0) ; tmp158 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg0) = tmp158 ; } /* end of [if] */ return /* (tmp154) */ ; } /* end of [split_39] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 16641(line=620, offs=5) -- 17444(line=646, offs=36) */ ATSstaticdec() ats_void_type merge_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) { /* local vardec */ // ATSlocal_void (tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_int_type, tmp164) ; ATSlocal (ats_bool_type, tmp165) ; // ATSlocal_void (tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; // ATSlocal_void (tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; __ats_lab_merge_40: do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_41_1: tmp160 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp161 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_42 */ __ats_lab_42_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; } __ats_lab_42_1: tmp162 = &ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp163 = &ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp164 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ref_type, ats_ref_type))(ats_closure_fun(arg2))) (arg2, tmp160, tmp162) ; tmp165 = atspre_lte_int_int (tmp164, 0) ; if (tmp165) { tmp167 = ats_ptrget_mac(ats_ptr_type, tmp161) ; /* tmp166 = */ merge_40 (tmp167, arg1, arg2, tmp161) ; ats_ptrget_mac(ats_ptr_type, arg3) = arg0 ; } else { tmp169 = ats_ptrget_mac(ats_ptr_type, tmp163) ; /* tmp168 = */ merge_40 (arg0, tmp169, arg2, tmp163) ; ats_ptrget_mac(ats_ptr_type, arg3) = arg1 ; } /* end of [if] */ break ; /* branch: __ats_lab_43 */ __ats_lab_43_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_43_1: ats_ptrget_mac(ats_ptr_type, arg3) = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: ats_ptrget_mac(ats_ptr_type, arg3) = arg1 ; break ; } while (0) ; return /* (tmp159) */ ; } /* end of [merge_40] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6) */ ATSstaticdec() ats_int_type loop_42 (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_int_type, tmp172) ; ATSlocal (ats_ptr_type, tmp173) ; ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_int_type, tmp175) ; __ats_lab_loop_42: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp173 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp174 = ats_ptrget_mac(ats_ptr_type, tmp173) ; tmp175 = atspre_iadd (arg1, 1) ; arg0 = tmp174 ; arg1 = tmp175 ; goto __ats_lab_loop_42 ; // tail call break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp172 = arg1 ; break ; } while (0) ; return (tmp172) ; } /* end of [loop_42] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4) */ ATSstaticdec() ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_int_type, tmp171) ; __ats_lab_list_vt_length_01501_ats_ptr_type: tmp171 = loop_42 (arg0, 0) ; return (tmp171) ; } /* end of [list_vt_length_01501_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 16217(line=602, offs=7) -- 17831(line=665, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_mergesort_01524_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_int_type, tmp170) ; ATSlocal (ats_bool_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; // ATSlocal_void (tmp179) ; ATSlocal (ats_int_type, tmp180) ; ATSlocal (ats_int_type, tmp181) ; ATSlocal (ats_ptr_type, tmp182) ; ATSlocal (ats_ptr_type, tmp183) ; // ATSlocal_void (tmp184) ; __ats_lab_list_vt_mergesort_01524_ats_ptr_type: tmp170 = list_vt_length_01501_ats_ptr_type (arg0) ; tmp176 = atspre_igte (tmp170, 2) ; if (tmp176) { // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp177 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; /* ats_ptr_type tmp178 ; */ tmp181 = atspre_isub (tmp170, 1) ; tmp180 = atspre_idiv (tmp181, 2) ; /* tmp179 = */ split_39 (tmp177, tmp180, (&tmp178)) ; tmp182 = list_vt_mergesort_01524_ats_ptr_type (arg0, arg1) ; tmp183 = list_vt_mergesort_01524_ats_ptr_type (tmp178, arg1) ; /* tmp184 = */ merge_40 (tmp182, tmp183, arg1, (&tmp178)) ; tmp153 = tmp178 ; } else { tmp153 = arg0 ; } /* end of [if] */ return (tmp153) ; } /* end of [list_vt_mergesort_01524_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_loc_02610_ (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp189) ; // ATSlocal_void (tmp190) ; // ATSlocal_void (tmp191) ; // ATSlocal_void (tmp192) ; __ats_lab_prerr_interror_loc_02610_: /* tmp190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ; /* tmp191 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ; /* tmp192 = */ prerr_FILENAME_02608_ () ; /* tmp189 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp189) */ ; } /* end of [prerr_interror_loc_02610_] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 8694(line=368, offs=10) -- 10425(line=441, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_int_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_ptr_type, tmp131) ; ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_char_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_int_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_int_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (__ats_fun_37_closure_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; // ATSlocal_void (tmp188) ; ATSlocal (ats_ptr_type, tmp193) ; // ATSlocal_void (tmp194) ; // ATSlocal_void (tmp195) ; // ATSlocal_void (tmp196) ; // ATSlocal_void (tmp197) ; ATSlocal (ats_ptr_type, tmp198) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst: tmp124 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_p2at_node) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp124)->tag != 1) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp123 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp124)->tag != 0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp123 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: if (((ats_sum_ptr_type)tmp124)->tag != 2) { goto __ats_lab_30_0 ; } __ats_lab_29_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_13, tmp124, atslab_1) ; tmp126 = ats_caselptrlab_mac(anairiats_sum_13, tmp124, atslab_5) ; tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cstlst (tmp126) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp123)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp123, atslab_0, tmp125) ; ats_selptrset_mac(anairiats_sum_5, tmp123, atslab_1, tmp127) ; break ; /* branch: __ats_lab_30 */ __ats_lab_30_0: if (((ats_sum_ptr_type)tmp124)->tag != 11) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp123 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCempty_2) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: if (((ats_sum_ptr_type)tmp124)->tag != 3) { goto __ats_lab_32_0 ; } __ats_lab_31_1: tmp128 = ats_caselptrlab_mac(anairiats_sum_14, tmp124, atslab_0) ; tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_make_int (tmp128) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp123)->tag = 3 ; ats_selptrset_mac(anairiats_sum_7, tmp123, atslab_0, tmp129) ; break ; /* branch: __ats_lab_32 */ __ats_lab_32_0: if (((ats_sum_ptr_type)tmp124)->tag != 4) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp130 = ats_caselptrlab_mac(anairiats_sum_7, tmp124, atslab_0) ; tmp131 = patsopt_intinf_make_string (tmp130) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp123)->tag = 3 ; ats_selptrset_mac(anairiats_sum_7, tmp123, atslab_0, tmp131) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: if (((ats_sum_ptr_type)tmp124)->tag != 5) { goto __ats_lab_34_0 ; } __ats_lab_33_1: tmp132 = ats_caselptrlab_mac(anairiats_sum_8, tmp124, atslab_0) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp123)->tag = 5 ; ats_selptrset_mac(anairiats_sum_8, tmp123, atslab_0, tmp132) ; break ; /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp124)->tag != 6) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp133 = ats_caselptrlab_mac(anairiats_sum_9, tmp124, atslab_0) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp123)->tag = 6 ; ats_selptrset_mac(anairiats_sum_9, tmp123, atslab_0, tmp133) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp124)->tag != 7) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp134 = ats_caselptrlab_mac(anairiats_sum_7, tmp124, atslab_0) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp123)->tag = 8 ; ats_selptrset_mac(anairiats_sum_7, tmp123, atslab_0, tmp134) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: if (((ats_sum_ptr_type)tmp124)->tag != 8) { goto __ats_lab_37_0 ; } __ats_lab_36_1: tmp135 = ats_caselptrlab_mac(anairiats_sum_7, tmp124, atslab_0) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp123)->tag = 9 ; ats_selptrset_mac(anairiats_sum_7, tmp123, atslab_0, tmp135) ; break ; /* branch: __ats_lab_37 */ __ats_lab_37_0: if (((ats_sum_ptr_type)tmp124)->tag != 9) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_7, tmp124, atslab_0) ; tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__i0nt2intinf (tmp136) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp123)->tag = 3 ; ats_selptrset_mac(anairiats_sum_7, tmp123, atslab_0, tmp137) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: if (((ats_sum_ptr_type)tmp124)->tag != 10) { goto __ats_lab_39_0 ; } __ats_lab_38_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_7, tmp124, atslab_0) ; tmp139 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp138), atslab_token_node) ; if (((ats_sum_ptr_type)tmp139)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_patcst2.dats: 9395(line=400, offs=9) -- 9435(line=400, offs=49)") ; } tmp140 = ats_caselptrlab_mac(anairiats_sum_2, tmp139, atslab_1) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp123)->tag = 8 ; ats_selptrset_mac(anairiats_sum_7, tmp123, atslab_0, tmp140) ; break ; /* branch: __ats_lab_39 */ __ats_lab_39_0: if (((ats_sum_ptr_type)tmp124)->tag != 12) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp141 = ats_caselptrlab_mac(anairiats_sum_10, tmp124, atslab_0) ; tmp142 = ats_caselptrlab_mac(anairiats_sum_10, tmp124, atslab_1) ; tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cstlst (tmp142) ; tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_lst (tmp141, tmp143) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: if (((ats_sum_ptr_type)tmp124)->tag != 13) { goto __ats_lab_47_0 ; } __ats_lab_40_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_15, tmp124, atslab_0) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_15, tmp124, atslab_2) ; /* ats_ptr_type tmp146 ; */ tmp146 = &(tmp150) ; __ats_fun_37_closure_init (tmp146) ; // closure initialization tmp151 = labp2at2cstlst_vt_35 (tmp145) ; tmp152 = list_vt_mergesort_01524_ats_ptr_type (tmp151, tmp146) ; tmp123 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp123)->tag = 10 ; ats_selptrset_mac(anairiats_sum_10, tmp123, atslab_0, tmp144) ; ats_selptrset_mac(anairiats_sum_10, tmp123, atslab_1, ats_castfn_mac(ats_ptr_type, tmp152)) ; break ; /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)tmp124)->tag != 14) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp185 = ats_caselptrlab_mac(anairiats_sum_5, tmp124, atslab_1) ; arg0 = tmp185 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst ; // tail call break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)tmp124)->tag != 15) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp186 = ats_caselptrlab_mac(anairiats_sum_5, tmp124, atslab_1) ; arg0 = tmp186 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst ; // tail call break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)tmp124)->tag != 16) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp123 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)tmp124)->tag != 17) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp187 = ats_caselptrlab_mac(anairiats_sum_5, tmp124, atslab_0) ; arg0 = tmp187 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst ; // tail call break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: __ats_lab_51_1: tmp193 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_p2at_loc) ; /* tmp188 = */ prerr_interror_loc_02610_ (tmp193) ; /* tmp194 = */ atspre_prerr_string (ATSstrcst(": p2at2cst: p2t0 = ")) ; /* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_p2at (arg0) ; /* tmp196 = */ atspre_prerr_newline () ; tmp198 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_patcst2.dats: 10358(line=438, offs=26) -- 10373(line=438, offs=41)", ATSstrcst("\n")) ; /* tmp197 = */ atspre_assert_errmsg (ats_false_bool, tmp198) ; tmp123 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; break ; } while (0) ; return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 10574(line=452, offs=5) -- 10704(line=456, offs=56) */ ATSstaticdec() ats_ptr_type auxanys_45 (ats_int_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp200) ; ATSlocal (ats_bool_type, tmp201) ; ATSlocal (ats_int_type, tmp202) ; ATSlocal (ats_ptr_type, tmp203) ; ATSlocal (ats_ptr_type, tmp204) ; __ats_lab_auxanys_45: tmp201 = atspre_gt_int_int (arg0, 0) ; if (tmp201) { tmp202 = atspre_sub_int_int (arg0, 1) ; tmp204 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; tmp203 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp203, atslab_0, tmp204) ; ats_selptrset_mac(anairiats_sum_6, tmp203, atslab_1, arg1) ; arg0 = tmp202 ; arg1 = tmp203 ; goto __ats_lab_auxanys_45 ; // tail call } else { tmp200 = arg1 ; } /* end of [if] */ return (tmp200) ; } /* end of [auxanys_45] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54647(line=1953, offs=6) -- 54699(line=1953, offs=58) */ ATSstaticdec() ats_ptr_type app_49 (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp213) ; __ats_lab_app_49: tmp213 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ; return (tmp213) ; } /* end of [app_49] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54575(line=1951, offs=23) -- 54763(line=1956, offs=4) */ ATSstaticdec() ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp212) ; __ats_lab_list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type: tmp212 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_49, arg1) ; return (tmp212) ; } /* end of [list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54041(line=1936, offs=19) -- 54491(line=1948, offs=2) */ ATSstaticdec() ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp211) ; __ats_lab_list_map_cloptr_01415_ats_ptr_type_ats_ptr_type: tmp211 = list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (arg0, arg1) ; return (tmp211) ; } /* end of [list_map_cloptr_01415_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 11191(line=471, offs=50) -- 11218(line=471, offs=77) */ ATSstaticdec() ats_ptr_type __ats_fun_50 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp215) ; __ats_lab___ats_fun_50: tmp215 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp215)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp215, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_5, tmp215, atslab_1, arg0) ; return (tmp215) ; } /* end of [__ats_fun_50] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_50_closure_type ; ats_ptr_type __ats_fun_50_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_50 (((__ats_fun_50_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_50_closure_init (__ats_fun_50_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_50_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_50_closure_make (ats_ptr_type env0) { __ats_fun_50_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_50_closure_type)) ; __ats_fun_50_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4) */ ATSstaticdec() ats_void_type loop_52 (ats_ref_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp220) ; ATSlocal (ats_ptr_type, tmp221) ; __ats_lab_loop_52: do { /* branch: __ats_lab_53 */ __ats_lab_53_0: if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; } __ats_lab_53_1: tmp221 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ; arg0 = tmp221 ; arg1 = arg1 ; goto __ats_lab_loop_52 ; // tail call break ; /* branch: __ats_lab_54 */ __ats_lab_54_0: // if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_54_1: ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ; break ; } while (0) ; return /* (tmp220) */ ; } /* end of [loop_52] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4) */ ATSstaticdec() ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp218) ; ATSlocal (ats_ptr_type, tmp219) ; // ATSlocal_void (tmp222) ; __ats_lab_list_vt_append_01504_ats_ptr_type: /* ats_ptr_type tmp219 ; */ tmp219 = arg0 ; /* tmp222 = */ loop_52 ((&tmp219), arg1) ; tmp218 = tmp219 ; return (tmp218) ; } /* end of [list_vt_append_01504_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 10732(line=459, offs=5) -- 11714(line=487, offs=34) */ ATSstaticdec() ats_ptr_type auxmain_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp205) ; ATSlocal (ats_ptr_type, tmp206) ; ATSlocal (ats_ptr_type, tmp207) ; ATSlocal (ats_bool_type, tmp208) ; ATSlocal (ats_ptr_type, tmp209) ; ATSlocal (ats_ptr_type, tmp210) ; ATSlocal (ats_ptr_type, tmp214) ; // ATSlocal_void (tmp216) ; ATSlocal (ats_ptr_type, tmp217) ; ATSlocal (ats_ptr_type, tmp223) ; ATSlocal (ats_int_type, tmp224) ; ATSlocal (ats_ptr_type, tmp225) ; ATSlocal (ats_ptr_type, tmp226) ; ATSlocal (ats_ptr_type, tmp227) ; __ats_lab_auxmain_46: do { /* branch: __ats_lab_52 */ __ats_lab_52_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; } __ats_lab_52_1: tmp206 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp207 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (arg0, tmp206) ; if (tmp208) { tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (arg2) ; /* ats_ptr_type tmp214 ; */ tmp214 = __ats_fun_50_closure_make (tmp206) ; tmp210 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp209)), tmp214) ; ATS_FREE(tmp214) ; /* tmp216 = */ list_vt_free_01499_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp209)) ; tmp217 = auxmain_46 (arg0, tmp207, arg2) ; tmp205 = list_vt_append_01504_ats_ptr_type (tmp210, tmp217) ; } else { tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full (tmp206) ; tmp225 = (ats_sum_ptr_type)0 ; tmp223 = auxanys_45 (tmp224, tmp225) ; tmp226 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp226)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp226, atslab_0, tmp206) ; ats_selptrset_mac(anairiats_sum_5, tmp226, atslab_1, ats_castfn_mac(ats_ptr_type, tmp223)) ; tmp227 = auxmain_46 (arg0, tmp207, arg2) ; tmp205 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp205, atslab_0, tmp226) ; ats_selptrset_mac(anairiats_sum_6, tmp205, atslab_1, tmp227) ; } /* end of [if] */ break ; /* branch: __ats_lab_55 */ __ats_lab_55_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_55_1: tmp205 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp205) ; } /* end of [auxmain_46] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 10476(line=446, offs=1) -- 11769(line=491, offs=4) */ ATSstaticdec() ats_ptr_type p2atcst_comp_con_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp199) ; __ats_lab_p2atcst_comp_con_44: tmp199 = auxmain_46 (arg0, arg1, arg2) ; return (tmp199) ; } /* end of [p2atcst_comp_con_44] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 12468(line=522, offs=9) -- 12666(line=530, offs=6) */ ATSstaticdec() ats_ptr_type aux_54 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp243) ; ATSlocal (ats_ptr_type, tmp244) ; ATSlocal (ats_ptr_type, tmp245) ; ATSlocal (ats_ptr_type, tmp246) ; ATSlocal (ats_ptr_type, tmp247) ; __ats_lab_aux_54: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp243 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_62_1: tmp244 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp245 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp246 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp246)->tag = 3 ; ats_selptrset_mac(anairiats_sum_7, tmp246, atslab_0, tmp244) ; tmp247 = aux_54 (tmp245) ; tmp243 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp243, atslab_0, tmp246) ; ats_selptrset_mac(anairiats_sum_6, tmp243, atslab_1, tmp247) ; break ; } while (0) ; return (tmp243) ; } /* end of [aux_54] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 12948(line=541, offs=9) -- 13145(line=549, offs=6) */ ATSstaticdec() ats_ptr_type aux_55 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp258) ; ATSlocal (ats_char_type, tmp259) ; ATSlocal (ats_ptr_type, tmp260) ; ATSlocal (ats_ptr_type, tmp261) ; ATSlocal (ats_ptr_type, tmp262) ; __ats_lab_aux_55: do { /* branch: __ats_lab_66 */ __ats_lab_66_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; } __ats_lab_66_1: tmp258 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_67 */ __ats_lab_67_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_67_1: tmp259 = ats_caselptrlab_mac(anairiats_sum_17, arg0, atslab_0) ; tmp260 = ats_caselptrlab_mac(anairiats_sum_17, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp261 = ATS_MALLOC(sizeof(anairiats_sum_9)) ; ((ats_sum_ptr_type)tmp261)->tag = 6 ; ats_selptrset_mac(anairiats_sum_9, tmp261, atslab_0, tmp259) ; tmp262 = aux_55 (tmp260) ; tmp258 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp258, atslab_0, tmp261) ; ats_selptrset_mac(anairiats_sum_6, tmp258, atslab_1, tmp262) ; break ; } while (0) ; return (tmp258) ; } /* end of [aux_55] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 13804(line=573, offs=49) -- 13831(line=573, offs=76) */ ATSstaticdec() ats_ptr_type __ats_fun_56 (ats_int_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp273) ; __ats_lab___ats_fun_56: tmp273 = ATS_MALLOC(sizeof(anairiats_sum_10)) ; ((ats_sum_ptr_type)tmp273)->tag = 10 ; ats_selptrset_mac(anairiats_sum_10, tmp273, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_10, tmp273, atslab_1, arg0) ; return (tmp273) ; } /* end of [__ats_fun_56] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_int_type closure_env_0 ; } __ats_fun_56_closure_type ; ats_ptr_type __ats_fun_56_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_56 (((__ats_fun_56_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_56_closure_init (__ats_fun_56_closure_type *p_clo, ats_int_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_56_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_56_closure_make (ats_int_type env0) { __ats_fun_56_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_56_closure_type)) ; __ats_fun_56_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 11846(line=497, offs=3) -- 14020(line=583, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_comp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp228) ; ATSlocal (ats_ptr_type, tmp229) ; ATSlocal (ats_ptr_type, tmp230) ; ATSlocal (ats_int_type, tmp231) ; ATSlocal (ats_bool_type, tmp232) ; ATSlocal (ats_ptr_type, tmp233) ; ATSlocal (ats_ptr_type, tmp234) ; ATSlocal (ats_ptr_type, tmp235) ; ATSlocal (ats_ptr_type, tmp236) ; ATSlocal (ats_ptr_type, tmp237) ; ATSlocal (ats_ptr_type, tmp238) ; ATSlocal (ats_ptr_type, tmp239) ; ATSlocal (ats_ptr_type, tmp240) ; ATSlocal (ats_ptr_type, tmp241) ; ATSlocal (ats_ptr_type, tmp242) ; ATSlocal (ats_ptr_type, tmp248) ; ATSlocal (ats_bool_type, tmp249) ; ATSlocal (ats_ptr_type, tmp250) ; ATSlocal (ats_bool_type, tmp251) ; ATSlocal (ats_ptr_type, tmp252) ; ATSlocal (ats_char_type, tmp253) ; ATSlocal (ats_ptr_type, tmp254) ; ATSlocal (ats_ptr_type, tmp255) ; ATSlocal (ats_ptr_type, tmp256) ; ATSlocal (ats_ptr_type, tmp257) ; ATSlocal (ats_ptr_type, tmp263) ; ATSlocal (ats_ptr_type, tmp264) ; ATSlocal (ats_ptr_type, tmp265) ; ATSlocal (ats_ptr_type, tmp266) ; ATSlocal (ats_ptr_type, tmp267) ; ATSlocal (ats_int_type, tmp268) ; ATSlocal (ats_ptr_type, tmp269) ; ATSlocal (ats_ptr_type, tmp270) ; ATSlocal (ats_ptr_type, tmp271) ; ATSlocal (ats_ptr_type, tmp272) ; // ATSlocal_void (tmp274) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_comp: do { /* branch: __ats_lab_56 */ __ats_lab_56_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_57_0 ; } __ats_lab_56_1: tmp228 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_58_0 ; } __ats_lab_57_1: tmp229 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp230 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_tag (tmp229) ; tmp232 = atspre_gte_int_int (tmp231, 0) ; if (tmp232) { tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_scst (tmp229) ; tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (tmp233) ; if (tmp234 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_patcst2.dats: 12060(line=508, offs=11) -- 12098(line=508, offs=49)") ; } tmp235 = ats_caselptrlab_mac(anairiats_sum_16, tmp234, atslab_0) ; tmp228 = p2atcst_comp_con_44 (tmp229, tmp235, tmp230) ; } else { tmp236 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; tmp237 = (ats_sum_ptr_type)0 ; tmp228 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_0, tmp236) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_1, tmp237) ; } /* end of [if] */ break ; /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp228 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp238 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_sing (tmp238) ; tmp240 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp240)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp240, atslab_0, tmp239) ; tmp241 = (ats_sum_ptr_type)0 ; tmp228 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_0, tmp240) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_1, tmp241) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_63_0 ; } __ats_lab_60_1: tmp242 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize (tmp242) ; tmp228 = aux_54 (tmp248) ; break ; /* branch: __ats_lab_63 */ __ats_lab_63_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_64_0 ; } __ats_lab_63_1: tmp249 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp251 = atspre_neg_bool (tmp249) ; tmp250 = ATS_MALLOC(sizeof(anairiats_sum_8)) ; ((ats_sum_ptr_type)tmp250)->tag = 5 ; ats_selptrset_mac(anairiats_sum_8, tmp250, atslab_0, tmp251) ; tmp252 = (ats_sum_ptr_type)0 ; tmp228 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_0, tmp250) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_1, tmp252) ; break ; /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_65_0 ; } __ats_lab_64_1: tmp253 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_sing (tmp253) ; tmp255 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp255)->tag = 7 ; ats_selptrset_mac(anairiats_sum_7, tmp255, atslab_0, tmp254) ; tmp256 = (ats_sum_ptr_type)0 ; tmp228 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_0, tmp255) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_1, tmp256) ; break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_68_0 ; } __ats_lab_65_1: tmp257 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize (tmp257) ; tmp228 = aux_55 (tmp263) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: if (((ats_sum_ptr_type)arg0)->tag != 8) { goto __ats_lab_69_0 ; } __ats_lab_68_1: tmp264 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; tmp265 = (ats_sum_ptr_type)0 ; tmp228 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_0, tmp264) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_1, tmp265) ; break ; /* branch: __ats_lab_69 */ __ats_lab_69_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp266 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; tmp267 = (ats_sum_ptr_type)0 ; tmp228 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_0, tmp266) ; ats_selptrset_mac(anairiats_sum_6, tmp228, atslab_1, tmp267) ; break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (((ats_sum_ptr_type)arg0)->tag != 10) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp268 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_0) ; tmp269 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp270 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_comp (tmp269) ; /* ats_ptr_type tmp272 ; */ tmp272 = __ats_fun_56_closure_make (tmp268) ; tmp271 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp270)), tmp272) ; ATS_FREE(tmp272) ; /* tmp274 = */ list_vt_free_01499_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp270)) ; tmp228 = tmp271 ; break ; } while (0) ; return (tmp228) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_comp] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 14118(line=591, offs=5) -- 14294(line=597, offs=23) */ ATSstaticdec() ats_ptr_type auxanys_58 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp276) ; ATSlocal (ats_ptr_type, tmp277) ; ATSlocal (ats_ptr_type, tmp278) ; ATSlocal (ats_ptr_type, tmp279) ; __ats_lab_auxanys_58: do { /* branch: __ats_lab_71 */ __ats_lab_71_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; } __ats_lab_71_1: tmp277 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp279 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; tmp278 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp278, atslab_0, tmp279) ; ats_selptrset_mac(anairiats_sum_6, tmp278, atslab_1, arg1) ; arg0 = tmp277 ; arg1 = tmp278 ; goto __ats_lab_auxanys_58 ; // tail call break ; /* branch: __ats_lab_72 */ __ats_lab_72_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_72_1: tmp276 = arg1 ; break ; } while (0) ; return (tmp276) ; } /* end of [auxanys_58] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 14442(line=608, offs=11) -- 14830(line=622, offs=8) */ ATSstaticdec() ats_ptr_type aux_59 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp282) ; ATSlocal (ats_ptr_type, tmp283) ; ATSlocal (ats_ptr_type, tmp284) ; ATSlocal (ats_ptr_type, tmp285) ; ATSlocal (ats_ptr_type, tmp286) ; __ats_lab_aux_59: do { /* branch: __ats_lab_75 */ __ats_lab_75_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; } __ats_lab_75_1: tmp283 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp284 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp285 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp285, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp285, atslab_1, tmp283) ; tmp286 = aux_59 (env0, tmp284) ; tmp282 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp282, atslab_0, tmp285) ; ats_selptrset_mac(anairiats_sum_6, tmp282, atslab_1, tmp286) ; break ; /* branch: __ats_lab_76 */ __ats_lab_76_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_76_1: tmp282 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp282) ; } /* end of [aux_59] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_59_closure_type ; ats_ptr_type aux_59_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_59 (((aux_59_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_59_closure_init (aux_59_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_59_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_59_closure_make (ats_ptr_type env0) { aux_59_closure_type *p_clo = ATS_MALLOC(sizeof(aux_59_closure_type)) ; aux_59_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 14950(line=628, offs=11) -- 15337(line=640, offs=44) */ ATSstaticdec() ats_ptr_type aux_60 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp289) ; ATSlocal (ats_ptr_type, tmp290) ; ATSlocal (ats_ptr_type, tmp291) ; ATSlocal (ats_ptr_type, tmp292) ; ATSlocal (ats_ptr_type, tmp293) ; ATSlocal (ats_ptr_type, tmp294) ; ATSlocal (ats_ptr_type, tmp295) ; __ats_lab_aux_60: do { /* branch: __ats_lab_77 */ __ats_lab_77_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; } __ats_lab_77_1: tmp290 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp291 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp294 = (ats_sum_ptr_type)0 ; tmp293 = auxanys_58 (env0, tmp294) ; tmp292 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp292, atslab_0, tmp290) ; ats_selptrset_mac(anairiats_sum_6, tmp292, atslab_1, tmp293) ; tmp295 = aux_60 (env0, tmp291) ; tmp289 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp289, atslab_0, tmp292) ; ats_selptrset_mac(anairiats_sum_6, tmp289, atslab_1, tmp295) ; break ; /* branch: __ats_lab_78 */ __ats_lab_78_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_78_1: tmp289 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp289) ; } /* end of [aux_60] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_60_closure_type ; ats_ptr_type aux_60_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_60 (((aux_60_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_60_closure_init (aux_60_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_60_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_60_closure_make (ats_ptr_type env0) { aux_60_closure_type *p_clo = ATS_MALLOC(sizeof(aux_60_closure_type)) ; aux_60_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 14096(line=589, offs=3) -- 15498(line=650, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp275) ; ATSlocal (ats_ptr_type, tmp280) ; ATSlocal (ats_ptr_type, tmp281) ; ATSlocal (ats_ptr_type, tmp287) ; ATSlocal (ats_ptr_type, tmp288) ; ATSlocal (ats_ptr_type, tmp296) ; ATSlocal (ats_ptr_type, tmp297) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp: do { /* branch: __ats_lab_73 */ __ats_lab_73_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; } __ats_lab_73_1: tmp275 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_74 */ __ats_lab_74_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_74_1: tmp280 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp281 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (tmp281) ; tmp287 = aux_59 (tmp280, tmp288) ; tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_comp (tmp280) ; tmp296 = aux_60 (tmp281, tmp297) ; tmp275 = list_vt_append_01504_ats_ptr_type (tmp287, tmp296) ; break ; } while (0) ; return (tmp275) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 15756(line=662, offs=41) -- 15784(line=662, offs=69) */ ATSstaticdec() ats_ptr_type __ats_fun_62 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp304) ; __ats_lab___ats_fun_62: tmp304 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp304, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp304, atslab_1, arg0) ; return (tmp304) ; } /* end of [__ats_fun_62] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_62_closure_type ; ats_ptr_type __ats_fun_62_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_62 (((__ats_fun_62_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_62_closure_init (__ats_fun_62_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_62_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_62_closure_make (ats_ptr_type env0) { __ats_fun_62_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_62_closure_type)) ; __ats_fun_62_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 15553(line=655, offs=1) -- 15831(line=666, offs=4) */ ATSstaticdec() ats_ptr_type labp2atcst_comp_61 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp298) ; ATSlocal (ats_ptr_type, tmp299) ; ATSlocal (ats_ptr_type, tmp300) ; ATSlocal (ats_ptr_type, tmp301) ; ATSlocal (ats_ptr_type, tmp302) ; ATSlocal (ats_ptr_type, tmp303) ; // ATSlocal_void (tmp305) ; __ats_lab_labp2atcst_comp_61: tmp299 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp300 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_comp (tmp300) ; /* ats_ptr_type tmp303 ; */ tmp303 = __ats_fun_62_closure_make (tmp299) ; tmp302 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp301), tmp303) ; ATS_FREE(tmp303) ; /* tmp305 = */ list_vt_free_01499_ats_ptr_type (tmp301) ; tmp298 = tmp302 ; return (tmp298) ; } /* end of [labp2atcst_comp_61] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 16057(line=681, offs=11) -- 16358(line=688, offs=44) */ ATSstaticdec() ats_ptr_type aux_64 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp309) ; ATSlocal (ats_ptr_type, tmp310) ; ATSlocal (ats_ptr_type, tmp311) ; ATSlocal (ats_ptr_type, tmp312) ; ATSlocal (ats_ptr_type, tmp313) ; __ats_lab_aux_64: do { /* branch: __ats_lab_81 */ __ats_lab_81_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; } __ats_lab_81_1: tmp310 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp311 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp312 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp312, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_6, tmp312, atslab_1, tmp310) ; tmp313 = aux_64 (env0, tmp311) ; tmp309 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp309, atslab_0, tmp312) ; ats_selptrset_mac(anairiats_sum_6, tmp309, atslab_1, tmp313) ; break ; /* branch: __ats_lab_82 */ __ats_lab_82_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_82_1: tmp309 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp309) ; } /* end of [aux_64] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } aux_64_closure_type ; ats_ptr_type aux_64_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_64 (((aux_64_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type aux_64_closure_init (aux_64_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_64_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type aux_64_closure_make (ats_ptr_type env0) { aux_64_closure_type *p_clo = ATS_MALLOC(sizeof(aux_64_closure_type)) ; aux_64_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 16482(line=694, offs=11) -- 16768(line=701, offs=44) */ ATSstaticdec() ats_ptr_type aux_65 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp316) ; ATSlocal (ats_ptr_type, tmp317) ; ATSlocal (ats_ptr_type, tmp318) ; ATSlocal (ats_ptr_type, tmp319) ; ATSlocal (ats_ptr_type, tmp320) ; ATSlocal (ats_ptr_type, tmp321) ; __ats_lab_aux_65: do { /* branch: __ats_lab_83 */ __ats_lab_83_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; } __ats_lab_83_1: tmp317 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp318 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp320 = (ats_sum_ptr_type)0 ; tmp319 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp319, atslab_0, tmp317) ; ats_selptrset_mac(anairiats_sum_6, tmp319, atslab_1, tmp320) ; tmp321 = aux_65 (tmp318) ; tmp316 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp316, atslab_0, tmp319) ; ats_selptrset_mac(anairiats_sum_6, tmp316, atslab_1, tmp321) ; break ; /* branch: __ats_lab_84 */ __ats_lab_84_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_84_1: tmp316 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp316) ; } /* end of [aux_65] */ typedef struct { ats_fun_ptr_type closure_fun ; } aux_65_closure_type ; ats_ptr_type aux_65_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return aux_65 (arg0) ; } /* end of function */ ATSinline() ats_void_type aux_65_closure_init (aux_65_closure_type *p_clo) { p_clo->closure_fun = (ats_fun_ptr_type)&aux_65_clofun ; return ; } /* end of function */ ats_clo_ptr_type aux_65_closure_make () { aux_65_closure_type *p_clo = ATS_MALLOC(sizeof(aux_65_closure_type)) ; aux_65_closure_init (p_clo) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 15914(line=672, offs=3) -- 16930(line=710, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_comp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp306) ; ATSlocal (ats_ptr_type, tmp307) ; ATSlocal (ats_ptr_type, tmp308) ; ATSlocal (ats_ptr_type, tmp314) ; ATSlocal (ats_ptr_type, tmp315) ; ATSlocal (ats_ptr_type, tmp322) ; ATSlocal (ats_ptr_type, tmp323) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_comp: do { /* branch: __ats_lab_79 */ __ats_lab_79_0: if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; } __ats_lab_79_1: tmp306 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_80 */ __ats_lab_80_0: // if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_80_1: tmp307 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp308 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_comp (tmp308) ; tmp314 = aux_64 (tmp307, tmp315) ; tmp323 = labp2atcst_comp_61 (tmp307) ; tmp322 = aux_65 (tmp323) ; tmp306 = list_vt_append_01504_ats_ptr_type (tmp314, tmp322) ; break ; } while (0) ; return (tmp306) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_comp] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 17055(line=721, offs=3) -- 17112(line=721, offs=60) */ ATSstaticdec() ats_ptr_type __ats_fun_67 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp327) ; __ats_lab___ats_fun_67: tmp327 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; return (tmp327) ; } /* end of [__ats_fun_67] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 17007(line=716, offs=3) -- 17117(line=722, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_any (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp324) ; ATSlocal (ats_ptr_type, tmp325) ; ATSlocal (ats_ptr_type, tmp326) ; ATSlocal (ats_ptr_type, tmp328) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_any: tmp325 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_c2lau_pat) ; tmp326 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp325, &__ats_fun_67) ; tmp328 = (ats_sum_ptr_type)0 ; tmp324 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp324, atslab_0, tmp326) ; ats_selptrset_mac(anairiats_sum_6, tmp324, atslab_1, tmp328) ; return (tmp324) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_any] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 17489(line=746, offs=36) -- 17510(line=746, offs=57) */ ATSstaticdec() ats_ptr_type __ats_fun_69 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp333) ; __ats_lab___ats_fun_69: tmp333 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; return (tmp333) ; } /* end of [__ats_fun_69] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 17193(line=728, offs=3) -- 17786(line=757, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_comp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp329) ; ATSlocal (ats_ptr_type, tmp330) ; ATSlocal (ats_ptr_type, tmp331) ; ATSlocal (ats_ptr_type, tmp332) ; ATSlocal (ats_ptr_type, tmp334) ; ATSlocal (ats_ptr_type, tmp335) ; ATSlocal (ats_ptr_type, tmp336) ; // ATSlocal_void (tmp337) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_comp: tmp330 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_c2lau_pat) ; tmp331 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg0), atslab_c2lau_gua) ; do { /* branch: __ats_lab_85 */ __ats_lab_85_0: if (tmp331 == (ats_sum_ptr_type)0) { goto __ats_lab_86_0 ; } __ats_lab_85_1: tmp332 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp330, &__ats_fun_69) ; tmp334 = (ats_sum_ptr_type)0 ; tmp329 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp329, atslab_0, tmp332) ; ats_selptrset_mac(anairiats_sum_6, tmp329, atslab_1, tmp334) ; break ; /* branch: __ats_lab_86 */ __ats_lab_86_0: // if (tmp331 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_86_1: tmp335 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp330, &_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst) ; tmp336 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (ats_castfn_mac(ats_ptr_type, tmp335)) ; /* tmp337 = */ list_vt_free_01499_ats_ptr_type (tmp335) ; tmp329 = tmp336 ; break ; } while (0) ; return (tmp329) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__c2lau_pat_comp] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 17873(line=763, offs=3) -- 18878(line=799, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_inter_test (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp338) ; ATSlocal (ats_ptr_type, tmp339) ; ATSlocal (ats_ptr_type, tmp340) ; ATSlocal (ats_ptr_type, tmp341) ; ATSlocal (ats_ptr_type, tmp342) ; ATSlocal (ats_bool_type, tmp343) ; ATSlocal (ats_ptr_type, tmp344) ; ATSlocal (ats_ptr_type, tmp345) ; ATSlocal (ats_ptr_type, tmp346) ; ATSlocal (ats_ptr_type, tmp347) ; ATSlocal (ats_bool_type, tmp348) ; ATSlocal (ats_ptr_type, tmp349) ; ATSlocal (ats_ptr_type, tmp350) ; ATSlocal (ats_bool_type, tmp351) ; ATSlocal (ats_bool_type, tmp352) ; ATSlocal (ats_bool_type, tmp353) ; ATSlocal (ats_char_type, tmp354) ; ATSlocal (ats_char_type, tmp355) ; ATSlocal (ats_char_type, tmp356) ; ATSlocal (ats_ptr_type, tmp357) ; ATSlocal (ats_bool_type, tmp358) ; ATSlocal (ats_ptr_type, tmp359) ; ATSlocal (ats_char_type, tmp360) ; ATSlocal (ats_bool_type, tmp361) ; ATSlocal (ats_ptr_type, tmp362) ; ATSlocal (ats_ptr_type, tmp363) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_inter_test: do { /* branch: __ats_lab_87 */ __ats_lab_87_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_88_0 ; } __ats_lab_87_1: __ats_lab_87_2: tmp338 = ats_true_bool ; break ; /* branch: __ats_lab_88 */ __ats_lab_88_0: __ats_lab_88_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_89_0 ; } __ats_lab_88_2: tmp338 = ats_true_bool ; break ; /* branch: __ats_lab_89 */ __ats_lab_89_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_90_0 ; } __ats_lab_89_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_99_1 ; } __ats_lab_89_2: tmp339 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp340 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp341 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp342 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp339, tmp341) ; if (tmp343) { tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_inter_test (tmp340, tmp342) ; } else { tmp338 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_90 */ __ats_lab_90_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_91_0 ; } __ats_lab_90_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_99_1 ; } __ats_lab_90_2: tmp338 = ats_true_bool ; break ; /* branch: __ats_lab_91 */ __ats_lab_91_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_92_0 ; } __ats_lab_91_1: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_92_1 ; } __ats_lab_91_2: tmp344 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp345 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf (tmp344, tmp345) ; break ; /* branch: __ats_lab_92 */ __ats_lab_92_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_93_0 ; } __ats_lab_92_1: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_99_1 ; } __ats_lab_92_2: tmp346 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp347 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_is_member (tmp347, tmp346) ; if (tmp348) { tmp338 = ats_false_bool ; } else { tmp338 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_93 */ __ats_lab_93_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_94_0 ; } __ats_lab_93_1: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_99_1 ; } __ats_lab_93_2: tmp349 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp350 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_is_member (tmp349, tmp350) ; if (tmp351) { tmp338 = ats_false_bool ; } else { tmp338 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_94 */ __ats_lab_94_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_95_0 ; } __ats_lab_94_1: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_99_1 ; } __ats_lab_94_2: tmp352 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp353 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp338 = atspre_eq_bool_bool (tmp352, tmp353) ; break ; /* branch: __ats_lab_95 */ __ats_lab_95_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_96_0 ; } __ats_lab_95_1: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_96_1 ; } __ats_lab_95_2: tmp354 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp355 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp338 = atspre_eq_char_char (tmp354, tmp355) ; break ; /* branch: __ats_lab_96 */ __ats_lab_96_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_97_0 ; } __ats_lab_96_1: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_99_1 ; } __ats_lab_96_2: tmp356 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp357 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_is_member (tmp357, tmp356) ; if (tmp358) { tmp338 = ats_false_bool ; } else { tmp338 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_97 */ __ats_lab_97_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_98_0 ; } __ats_lab_97_1: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_99_1 ; } __ats_lab_97_2: tmp359 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp360 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_is_member (tmp359, tmp360) ; if (tmp361) { tmp338 = ats_false_bool ; } else { tmp338 = ats_true_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_98 */ __ats_lab_98_0: if (((ats_sum_ptr_type)arg0)->tag != 10) { goto __ats_lab_99_0 ; } __ats_lab_98_1: if (((ats_sum_ptr_type)arg1)->tag != 10) { goto __ats_lab_99_1 ; } __ats_lab_98_2: tmp362 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ; tmp363 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ; tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_inter_test (tmp362, tmp363) ; break ; /* branch: __ats_lab_99 */ __ats_lab_99_0: __ats_lab_99_1: __ats_lab_99_2: tmp338 = ats_true_bool ; break ; } while (0) ; return (tmp338) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_inter_test] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 18948(line=803, offs=3) -- 19327(line=819, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_inter_test (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp364) ; ATSlocal (ats_ptr_type, tmp365) ; ATSlocal (ats_ptr_type, tmp366) ; ATSlocal (ats_ptr_type, tmp367) ; ATSlocal (ats_ptr_type, tmp368) ; ATSlocal (ats_bool_type, tmp369) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_inter_test: do { /* branch: __ats_lab_100 */ __ats_lab_100_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_103_0 ; } __ats_lab_100_1: tmp365 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp366 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_101 */ __ats_lab_101_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_102_0 ; } __ats_lab_101_1: tmp367 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp368 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp369 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_inter_test (tmp365, tmp367) ; if (tmp369) { arg0 = tmp366 ; arg1 = tmp368 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_inter_test ; // tail call } else { tmp364 = ats_false_bool ; } /* end of [if] */ break ; /* branch: __ats_lab_102 */ __ats_lab_102_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_102_1: tmp364 = ats_false_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_103 */ __ats_lab_103_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_103_1: do { /* branch: __ats_lab_104 */ __ats_lab_104_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_105_0 ; } __ats_lab_104_1: tmp364 = ats_false_bool ; break ; /* branch: __ats_lab_105 */ __ats_lab_105_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_105_1: tmp364 = ats_true_bool ; break ; } while (0) ; break ; } while (0) ; return (tmp364) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_inter_test] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 19400(line=823, offs=3) -- 20064(line=848, offs=4) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_inter_test (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp370) ; ATSlocal (ats_ptr_type, tmp371) ; ATSlocal (ats_ptr_type, tmp372) ; ATSlocal (ats_ptr_type, tmp373) ; ATSlocal (ats_ptr_type, tmp374) ; ATSlocal (ats_ptr_type, tmp375) ; ATSlocal (ats_ptr_type, tmp376) ; ATSlocal (ats_ptr_type, tmp377) ; ATSlocal (ats_ptr_type, tmp378) ; ATSlocal (ats_int_type, tmp379) ; ATSlocal (ats_bool_type, tmp380) ; ATSlocal (ats_bool_type, tmp381) ; ATSlocal (ats_bool_type, tmp382) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_inter_test: do { /* branch: __ats_lab_106 */ __ats_lab_106_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; } __ats_lab_106_1: tmp371 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp372 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_107 */ __ats_lab_107_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; } __ats_lab_107_1: tmp373 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp374 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp375 = ats_caselptrlab_mac(anairiats_sum_6, tmp371, atslab_0) ; tmp376 = ats_caselptrlab_mac(anairiats_sum_6, tmp371, atslab_1) ; tmp377 = ats_caselptrlab_mac(anairiats_sum_6, tmp373, atslab_0) ; tmp378 = ats_caselptrlab_mac(anairiats_sum_6, tmp373, atslab_1) ; tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (tmp375, tmp377) ; tmp380 = atspre_ilt (tmp379, 0) ; if (tmp380) { arg0 = tmp372 ; arg1 = arg1 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_inter_test ; // tail call } else { tmp381 = atspre_igt (tmp379, 0) ; if (tmp381) { arg0 = arg0 ; arg1 = tmp374 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_inter_test ; // tail call } else { tmp382 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_inter_test (tmp376, tmp378) ; if (tmp382) { arg0 = tmp372 ; arg1 = tmp374 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_inter_test ; // tail call } else { tmp370 = ats_false_bool ; } /* end of [if] */ } /* end of [if] */ } /* end of [if] */ break ; /* branch: __ats_lab_108 */ __ats_lab_108_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_108_1: tmp370 = ats_true_bool ; break ; } while (0) ; break ; /* branch: __ats_lab_109 */ __ats_lab_109_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_109_1: tmp370 = ats_true_bool ; break ; } while (0) ; return (tmp370) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__labp2atcstlst_inter_test] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 21872(line=901, offs=48) -- 21902(line=901, offs=78) */ ATSstaticdec() ats_ptr_type __ats_fun_74 (ats_ptr_type env0, ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp430) ; __ats_lab___ats_fun_74: tmp430 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ((ats_sum_ptr_type)tmp430)->tag = 1 ; ats_selptrset_mac(anairiats_sum_5, tmp430, atslab_0, env0) ; ats_selptrset_mac(anairiats_sum_5, tmp430, atslab_1, arg0) ; return (tmp430) ; } /* end of [__ats_fun_74] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; } __ats_fun_74_closure_type ; ats_ptr_type __ats_fun_74_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { return __ats_fun_74 (((__ats_fun_74_closure_type*)cloptr)->closure_env_0, arg0) ; } /* end of function */ ATSinline() ats_void_type __ats_fun_74_closure_init (__ats_fun_74_closure_type *p_clo, ats_ptr_type env0) { p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_74_clofun ; p_clo->closure_env_0 = env0 ; return ; } /* end of function */ ats_clo_ptr_type __ats_fun_74_closure_make (ats_ptr_type env0) { __ats_fun_74_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_74_closure_type)) ; __ats_fun_74_closure_init (p_clo, env0) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 20149(line=854, offs=3) -- 22138(line=912, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_diff (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp383) ; ATSlocal (ats_ptr_type, tmp384) ; ATSlocal (ats_ptr_type, tmp385) ; ATSlocal (ats_bool_type, tmp386) ; ATSlocal (ats_ptr_type, tmp387) ; ATSlocal (ats_ptr_type, tmp388) ; ATSlocal (ats_ptr_type, tmp389) ; ATSlocal (ats_bool_type, tmp390) ; ATSlocal (ats_ptr_type, tmp391) ; ATSlocal (ats_ptr_type, tmp392) ; ATSlocal (ats_ptr_type, tmp393) ; ATSlocal (ats_ptr_type, tmp394) ; ATSlocal (ats_ptr_type, tmp395) ; ATSlocal (ats_ptr_type, tmp396) ; ATSlocal (ats_bool_type, tmp397) ; ATSlocal (ats_ptr_type, tmp398) ; ATSlocal (ats_bool_type, tmp399) ; ATSlocal (ats_bool_type, tmp400) ; ATSlocal (ats_bool_type, tmp401) ; ATSlocal (ats_ptr_type, tmp402) ; ATSlocal (ats_char_type, tmp403) ; ATSlocal (ats_char_type, tmp404) ; ATSlocal (ats_bool_type, tmp405) ; ATSlocal (ats_ptr_type, tmp406) ; ATSlocal (ats_ptr_type, tmp407) ; ATSlocal (ats_char_type, tmp408) ; ATSlocal (ats_bool_type, tmp409) ; ATSlocal (ats_ptr_type, tmp410) ; ATSlocal (ats_ptr_type, tmp411) ; ATSlocal (ats_ptr_type, tmp412) ; ATSlocal (ats_ptr_type, tmp413) ; ATSlocal (ats_char_type, tmp414) ; ATSlocal (ats_ptr_type, tmp415) ; ATSlocal (ats_bool_type, tmp416) ; ATSlocal (ats_ptr_type, tmp417) ; ATSlocal (ats_ptr_type, tmp418) ; ATSlocal (ats_ptr_type, tmp419) ; ATSlocal (ats_bool_type, tmp420) ; ATSlocal (ats_ptr_type, tmp421) ; ATSlocal (ats_ptr_type, tmp422) ; ATSlocal (ats_ptr_type, tmp423) ; ATSlocal (ats_ptr_type, tmp424) ; ATSlocal (ats_ptr_type, tmp425) ; ATSlocal (ats_bool_type, tmp426) ; ATSlocal (ats_ptr_type, tmp427) ; ATSlocal (ats_ptr_type, tmp428) ; ATSlocal (ats_ptr_type, tmp429) ; // ATSlocal_void (tmp431) ; ATSlocal (ats_ptr_type, tmp432) ; ATSlocal (ats_ptr_type, tmp433) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_diff: do { /* branch: __ats_lab_110 */ __ats_lab_110_0: __ats_lab_110_1: if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_111_0 ; } __ats_lab_110_2: tmp383 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_111 */ __ats_lab_111_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_112_0 ; } __ats_lab_111_1: __ats_lab_111_2: tmp383 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_comp (arg1) ; break ; /* branch: __ats_lab_112 */ __ats_lab_112_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_113_0 ; } __ats_lab_112_1: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_114_1 ; } __ats_lab_112_2: tmp384 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp385 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp386 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__eq_intinf_intinf (tmp384, tmp385) ; if (tmp386) { tmp383 = (ats_sum_ptr_type)0 ; } else { tmp387 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp387) ; } /* end of [if] */ break ; /* branch: __ats_lab_113 */ __ats_lab_113_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_114_0 ; } __ats_lab_113_1: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_122_1 ; } __ats_lab_113_2: tmp388 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp389 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp390 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_is_member (tmp388, tmp389) ; if (tmp390) { tmp391 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp391) ; } else { tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_add (tmp388, tmp389) ; tmp393 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp393)->tag = 4 ; ats_selptrset_mac(anairiats_sum_7, tmp393, atslab_0, tmp392) ; tmp394 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, tmp393) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp394) ; } /* end of [if] */ break ; /* branch: __ats_lab_114 */ __ats_lab_114_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_115_0 ; } __ats_lab_114_1: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_122_1 ; } __ats_lab_114_2: tmp395 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp396 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp397 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_is_member (tmp396, tmp395) ; if (tmp397) { tmp398 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp398) ; } else { tmp383 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_115 */ __ats_lab_115_0: if (((ats_sum_ptr_type)arg0)->tag != 5) { goto __ats_lab_116_0 ; } __ats_lab_115_1: if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_122_1 ; } __ats_lab_115_2: tmp399 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ; tmp400 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ; tmp401 = atspre_eq_bool_bool (tmp399, tmp400) ; if (tmp401) { tmp383 = (ats_sum_ptr_type)0 ; } else { tmp402 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp402) ; } /* end of [if] */ break ; /* branch: __ats_lab_116 */ __ats_lab_116_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_117_0 ; } __ats_lab_116_1: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_118_1 ; } __ats_lab_116_2: tmp403 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp404 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp405 = atspre_eq_char_char (tmp403, tmp404) ; if (tmp405) { tmp383 = (ats_sum_ptr_type)0 ; } else { tmp406 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp406) ; } /* end of [if] */ break ; /* branch: __ats_lab_117 */ __ats_lab_117_0: if (((ats_sum_ptr_type)arg0)->tag != 7) { goto __ats_lab_118_0 ; } __ats_lab_117_1: if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_122_1 ; } __ats_lab_117_2: tmp407 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp408 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ; tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_is_member (tmp407, tmp408) ; if (tmp409) { tmp410 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp410) ; } else { tmp411 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_add (tmp407, tmp408) ; tmp412 = ATS_MALLOC(sizeof(anairiats_sum_7)) ; ((ats_sum_ptr_type)tmp412)->tag = 7 ; ats_selptrset_mac(anairiats_sum_7, tmp412, atslab_0, tmp411) ; tmp413 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, tmp412) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp413) ; } /* end of [if] */ break ; /* branch: __ats_lab_118 */ __ats_lab_118_0: if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_119_0 ; } __ats_lab_118_1: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_122_1 ; } __ats_lab_118_2: tmp414 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ; tmp415 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_is_member (tmp415, tmp414) ; if (tmp416) { tmp417 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp417) ; } else { tmp383 = (ats_sum_ptr_type)0 ; } /* end of [if] */ break ; /* branch: __ats_lab_119 */ __ats_lab_119_0: if (((ats_sum_ptr_type)arg0)->tag != 9) { goto __ats_lab_120_0 ; } __ats_lab_119_1: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_122_1 ; } __ats_lab_119_2: tmp418 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ; tmp419 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ; tmp420 = atspre_eq_string_string (tmp418, tmp419) ; if (tmp420) { tmp383 = (ats_sum_ptr_type)0 ; } else { tmp421 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp421) ; } /* end of [if] */ break ; /* branch: __ats_lab_120 */ __ats_lab_120_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_121_0 ; } __ats_lab_120_1: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_122_1 ; } __ats_lab_120_2: tmp422 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ; tmp423 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ; tmp424 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp425 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_d2con_d2con (tmp422, tmp424) ; if (tmp426) { tmp427 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_diff (tmp423, tmp425) ; /* ats_ptr_type tmp429 ; */ tmp429 = __ats_fun_74_closure_make (tmp422) ; tmp428 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, tmp427)), tmp429) ; ATS_FREE(tmp429) ; /* tmp431 = */ list_vt_free_01499_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp427)) ; tmp383 = tmp428 ; } else { tmp432 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp432) ; } /* end of [if] */ break ; /* branch: __ats_lab_121 */ __ats_lab_121_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_122_0 ; } __ats_lab_121_1: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_122_1 ; } __ats_lab_121_2: tmp383 = (ats_sum_ptr_type)0 ; break ; /* branch: __ats_lab_122 */ __ats_lab_122_0: __ats_lab_122_1: __ats_lab_122_2: tmp433 = (ats_sum_ptr_type)0 ; tmp383 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp383, atslab_1, tmp433) ; break ; } while (0) ; return (tmp383) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_diff] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 22333(line=925, offs=11) -- 22613(line=932, offs=44) */ ATSstaticdec() ats_ptr_type aux1_76 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp439) ; ATSlocal (ats_ptr_type, tmp440) ; ATSlocal (ats_ptr_type, tmp441) ; ATSlocal (ats_ptr_type, tmp442) ; ATSlocal (ats_ptr_type, tmp443) ; __ats_lab_aux1_76: do { /* branch: __ats_lab_125 */ __ats_lab_125_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_126_0 ; } __ats_lab_125_1: tmp440 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp441 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; ATS_FREE(arg1) ; tmp442 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp442, atslab_0, arg0) ; ats_selptrset_mac(anairiats_sum_6, tmp442, atslab_1, tmp440) ; tmp443 = aux1_76 (arg0, tmp441) ; tmp439 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp439, atslab_0, tmp442) ; ats_selptrset_mac(anairiats_sum_6, tmp439, atslab_1, tmp443) ; break ; /* branch: __ats_lab_126 */ __ats_lab_126_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_126_1: tmp439 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp439) ; } /* end of [aux1_76] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 22778(line=939, offs=11) -- 23106(line=947, offs=44) */ ATSstaticdec() ats_ptr_type aux2_77 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp446) ; ATSlocal (ats_ptr_type, tmp447) ; ATSlocal (ats_ptr_type, tmp448) ; ATSlocal (ats_ptr_type, tmp449) ; ATSlocal (ats_ptr_type, tmp450) ; ATSlocal (ats_ptr_type, tmp451) ; __ats_lab_aux2_77: do { /* branch: __ats_lab_127 */ __ats_lab_127_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_128_0 ; } __ats_lab_127_1: tmp447 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp448 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; ATS_FREE(arg0) ; tmp449 = list_copy_01322_ats_ptr_type (arg1) ; tmp450 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp450, atslab_0, tmp447) ; ats_selptrset_mac(anairiats_sum_6, tmp450, atslab_1, tmp449) ; tmp451 = aux2_77 (tmp448, arg1) ; tmp446 = ATS_MALLOC(sizeof(anairiats_sum_6)) ; ats_selptrset_mac(anairiats_sum_6, tmp446, atslab_0, tmp450) ; ats_selptrset_mac(anairiats_sum_6, tmp446, atslab_1, tmp451) ; break ; /* branch: __ats_lab_128 */ __ats_lab_128_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_128_1: tmp446 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp446) ; } /* end of [aux2_77] */ /* // /tmp/ATS-Postiats/src/pats_patcst2.dats: 22214(line=918, offs=3) -- 23378(line=957, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_diff (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp434) ; ATSlocal (ats_ptr_type, tmp435) ; ATSlocal (ats_ptr_type, tmp436) ; ATSlocal (ats_ptr_type, tmp437) ; ATSlocal (ats_ptr_type, tmp438) ; ATSlocal (ats_ptr_type, tmp444) ; ATSlocal (ats_ptr_type, tmp445) ; ATSlocal (ats_ptr_type, tmp452) ; ATSlocal (ats_ptr_type, tmp453) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_diff: do { /* branch: __ats_lab_123 */ __ats_lab_123_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_130_0 ; } __ats_lab_123_1: tmp435 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ; tmp436 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ; do { /* branch: __ats_lab_124 */ __ats_lab_124_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; } __ats_lab_124_1: tmp437 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ; tmp438 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ; tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_diff (tmp436, tmp438) ; tmp445 = aux1_76 (tmp435, tmp444) ; tmp453 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcst_diff (tmp435, tmp437) ; tmp452 = aux2_77 (tmp453, tmp436) ; tmp434 = list_vt_append_01504_ats_ptr_type (tmp445, tmp452) ; break ; /* branch: __ats_lab_129 */ __ats_lab_129_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_129_1: tmp434 = (ats_sum_ptr_type)0 ; break ; } while (0) ; break ; /* branch: __ats_lab_130 */ __ats_lab_130_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_130_1: tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (arg1) ; break ; } while (0) ; return (tmp434) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_diff] */ /* 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_utils_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_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_utils_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; 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_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 () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_patcst2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_patcst2_sats.c0000644000175000017500000001272213431250607022130 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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 */ /* prologues from statically loaded files */ #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ /* external typedefs */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__LABP2ATCST_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcon_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCempty_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCint_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCintc_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCbool_5) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCchar_6) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcharc_7) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCfloat_8) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCstring_9) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCrec_10) ; /* exn constructor declarations */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_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_intinf_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__LABP2ATCST_0.tag = 0 ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcon_1.tag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCempty_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCint_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCintc_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCbool_5.tag = 5 ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCchar_6.tag = 6 ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcharc_7.tag = 7 ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCfloat_8.tag = 8 ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCstring_9.tag = 9 ; // _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCrec_10.tag = 10 ; return ; } /* staload function */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_patcst2_sats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_typerase_staexp_dats.c0000644000175000017500000026535213431250607023762 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_hisexp_name ; ats_ptr_type atslab_hisexp_node ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_3 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_4 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_5 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_6 ; typedef struct { int tag ; ats_int_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; ats_int_type atslab_3 ; ats_ptr_type atslab_4 ; ats_ptr_type atslab_5 ; } anairiats_sum_8 ; typedef struct { ats_int_type atslab_0 ; } anairiats_sum_9 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_10 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_11 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_12 ; typedef struct { ats_ptr_type atslab_t2mpmarg_loc ; ats_ptr_type atslab_t2mpmarg_arg ; } anairiats_rec_13 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; 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_basics_2esats__FUNCLOfun_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SZLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEprf_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEptr_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEcst_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEvar_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEVar_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEapp_7) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEtyrec_9) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_sub_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_eq_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ; ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ; ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int) (ats_int_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_npf) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ; ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_addlst) (ats_ref_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_mhnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_funptr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_clotyp) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datcontyp) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cst) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg) (ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyvar) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_tyer) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_mhnfize) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2cst_tyer) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2hnf_tyer) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app2) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_apphnf) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_appcst) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer_arglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_fun) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datconptr) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datcontyp) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyarr) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyrec) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer_labize) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_tyer) (ats_ptr_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_npf_tyer) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_appcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexplst_tyer_arglst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_tyrec) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2zexplst_tyer) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type auxlst_17 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) ; static ats_ptr_type aux_27 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type loop_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ; static ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 4278(line=182, offs=3) -- 4555(line=198, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2cst_tyer (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2cst_tyer: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (arg2) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp2 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (tmp2 == (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp3 = ats_caselptrlab_mac(anairiats_sum_2, tmp2, atslab_0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp3) ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: // if (tmp2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_2_1: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cst (arg2) ; break ; } while (0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cst (arg2) ; break ; } while (0) ; return (tmp0) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2cst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 4622(line=204, offs=1) -- 4719(line=210, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer: tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg2) ; tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2hnf_tyer (arg0, arg1, tmp5) ; return (tmp4) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 4793(line=216, offs=3) -- 4842(line=216, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp6) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep: tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, 1, arg1) ; return (tmp6) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_deep] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 4903(line=221, offs=3) -- 4952(line=221, offs=52) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow: tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, 0, arg1) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 5029(line=228, offs=3) -- 6509(line=292, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2hnf_tyer (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp10) ; ATSlocal (ats_ptr_type, tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; ATSlocal (ats_ptr_type, tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; ATSlocal (ats_ptr_type, tmp19) ; ATSlocal (ats_ptr_type, tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_ptr_type, tmp24) ; ATSlocal (ats_int_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2hnf_tyer: tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ; tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp9), atslab_s2exp_node) ; do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (((ats_sum_ptr_type)tmp10)->tag != 4) { goto __ats_lab_5_0 ; } __ats_lab_4_1: tmp11 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_0) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2cst_tyer (arg0, arg1, tmp11) ; break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: if (((ats_sum_ptr_type)tmp10)->tag != 7) { goto __ats_lab_6_0 ; } __ats_lab_5_1: tmp12 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_0) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyvar (tmp12) ; break ; /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp10)->tag != 8) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp13 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_0) ; tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (tmp13) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer (arg0, tmp14) ; break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: if (((ats_sum_ptr_type)tmp10)->tag != 11) { goto __ats_lab_8_0 ; } __ats_lab_7_1: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datconptr (arg0, arg1, tmp9) ; break ; /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp10)->tag != 10) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datcontyp (arg0, arg1, tmp9) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp10)->tag != 17) { goto __ats_lab_10_0 ; } __ats_lab_9_1: tmp15 = ats_caselptrlab_mac(anairiats_sum_5, tmp10, atslab_0) ; tmp16 = ats_caselptrlab_mac(anairiats_sum_5, tmp10, atslab_1) ; tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp9), atslab_s2exp_srt) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app (arg0, arg1, tmp17, tmp15, tmp16) ; break ; /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp10)->tag != 18) { goto __ats_lab_11_0 ; } __ats_lab_10_1: tmp18 = ats_caselptrlab_mac(anairiats_sum_5, tmp10, atslab_1) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp18) ; break ; /* branch: __ats_lab_11 */ __ats_lab_11_0: if (((ats_sum_ptr_type)tmp10)->tag != 19) { goto __ats_lab_12_0 ; } __ats_lab_11_1: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_fun (arg0, arg1, tmp9) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: if (((ats_sum_ptr_type)tmp10)->tag != 20) { goto __ats_lab_13_0 ; } __ats_lab_12_1: tmp19 = ats_caselptrlab_mac(anairiats_sum_6, tmp10, atslab_2) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp19) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: if (((ats_sum_ptr_type)tmp10)->tag != 22) { goto __ats_lab_14_0 ; } __ats_lab_13_1: tmp20 = ats_caselptrlab_mac(anairiats_sum_7, tmp10, atslab_1) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp20) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: if (((ats_sum_ptr_type)tmp10)->tag != 23) { goto __ats_lab_15_0 ; } __ats_lab_14_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_0) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp21) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: if (((ats_sum_ptr_type)tmp10)->tag != 24) { goto __ats_lab_16_0 ; } __ats_lab_15_1: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyarr (arg0, arg1, tmp9) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: if (((ats_sum_ptr_type)tmp10)->tag != 25) { goto __ats_lab_17_0 ; } __ats_lab_16_1: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyrec (arg0, arg1, tmp9) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: if (((ats_sum_ptr_type)tmp10)->tag != 26) { goto __ats_lab_18_0 ; } __ats_lab_17_1: tmp22 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_0) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp22) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: if (((ats_sum_ptr_type)tmp10)->tag != 27) { goto __ats_lab_19_0 ; } __ats_lab_18_1: tmp23 = ats_caselptrlab_mac(anairiats_sum_6, tmp10, atslab_2) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp23) ; break ; /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)tmp10)->tag != 28) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp24 = ats_caselptrlab_mac(anairiats_sum_6, tmp10, atslab_2) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp24) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)tmp10)->tag != 29) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp25 = ats_caselptrlab_mac(anairiats_sum_7, tmp10, atslab_0) ; tmp26 = ats_caselptrlab_mac(anairiats_sum_7, tmp10, atslab_1) ; tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (arg0, tmp26) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg (tmp25, tmp27) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)tmp10)->tag != 30) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_0) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg (tmp28) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)tmp10)->tag != 31) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp29 = ats_caselptrlab_mac(anairiats_sum_5, tmp10, atslab_0) ; tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp29) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: __ats_lab_23_1: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp (tmp9) ; break ; } while (0) ; return (tmp8) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2hnf_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 6580(line=298, offs=1) -- 6915(line=314, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app: tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg3) ; tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp31) ; tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp32), atslab_s2exp_node) ; do { /* branch: __ats_lab_24 */ __ats_lab_24_0: if (((ats_sum_ptr_type)tmp33)->tag != 4) { goto __ats_lab_25_0 ; } __ats_lab_24_1: tmp34 = ats_caselptrlab_mac(anairiats_sum_4, tmp33, atslab_0) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_appcst (arg0, arg1, arg2, tmp34, arg4) ; break ; /* branch: __ats_lab_25 */ __ats_lab_25_0: __ats_lab_25_1: tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_apphnf (arg0, arg1, arg2, tmp31, arg4) ; break ; } while (0) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 6970(line=317, offs=17) -- 7671(line=349, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app2 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_int_type, tmp42) ; ATSlocal (ats_ptr_type, tmp43) ; // ATSlocal_void (tmp44) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app2: tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg3) ; tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp36) ; tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp37), atslab_s2exp_node) ; do { /* branch: __ats_lab_26 */ __ats_lab_26_0: if (((ats_sum_ptr_type)tmp38)->tag != 18) { goto __ats_lab_27_0 ; } __ats_lab_26_1: tmp39 = ats_caselptrlab_mac(anairiats_sum_5, tmp38, atslab_0) ; tmp40 = ats_caselptrlab_mac(anairiats_sum_5, tmp38, atslab_1) ; /* ats_ptr_type tmp41 ; */ tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ; tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_addlst ((&tmp41), tmp39, arg4) ; tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp41, tmp40) ; /* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp41) ; tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp43) ; break ; /* branch: __ats_lab_27 */ __ats_lab_27_0: __ats_lab_27_1: tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_apphnf (arg0, arg1, arg2, tmp36, arg4) ; break ; } while (0) ; return (tmp35) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app2] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 7750(line=355, offs=1) -- 7941(line=362, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_apphnf (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_ptr_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_apphnf: tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2hnf_tyer (arg0, arg1, arg3) ; tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer_arglst (arg0, arg4) ; tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app (tmp46, tmp47) ; return (tmp45) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_apphnf] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 8022(line=368, offs=1) -- 8527(line=393, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_appcst (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; ATSlocal (ats_ptr_type, tmp51) ; ATSlocal (ats_ptr_type, tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_appcst: tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (arg3) ; do { /* branch: __ats_lab_28 */ __ats_lab_28_0: if (tmp49 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srt (arg2) ; break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: // if (tmp49 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_29_1: tmp50 = ats_caselptrlab_mac(anairiats_sum_2, tmp49, atslab_0) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (tmp50 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: tmp51 = ats_caselptrlab_mac(anairiats_sum_2, tmp50, atslab_0) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_app2 (arg0, arg1, arg2, tmp51, arg4) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (tmp50 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2cst_tyer (arg0, arg1, arg3) ; tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer_arglst (arg0, arg4) ; tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app (tmp52, tmp53) ; break ; } while (0) ; break ; } while (0) ; return (tmp48) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_appcst] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 8607(line=399, offs=3) -- 9213(line=439, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_fun (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; ATSlocal (ats_ptr_type, tmp56) ; ATSlocal (ats_int_type, tmp57) ; ATSlocal (ats_ptr_type, tmp58) ; ATSlocal (ats_ptr_type, tmp59) ; ATSlocal (ats_bool_type, tmp60) ; ATSlocal (ats_ptr_type, tmp61) ; ATSlocal (ats_ptr_type, tmp62) ; ATSlocal (ats_int_type, tmp63) ; ATSlocal (ats_bool_type, tmp64) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_fun: tmp55 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp55)->tag != 19) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 8757(line=411, offs=1) -- 8825(line=414, offs=20)") ; } tmp56 = ats_caselptrlab_mac(anairiats_sum_8, tmp55, atslab_0) ; tmp57 = ats_caselptrlab_mac(anairiats_sum_8, tmp55, atslab_3) ; tmp58 = ats_caselptrlab_mac(anairiats_sum_8, tmp55, atslab_4) ; tmp59 = ats_caselptrlab_mac(anairiats_sum_8, tmp55, atslab_5) ; tmp60 = atspre_gt_int_int (arg1, 0) ; if (tmp60) { tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer (arg0, tmp57, tmp58) ; tmp62 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (arg0, tmp59) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun (tmp56, tmp61, tmp62) ; } else { do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (tmp56 != (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_funptr ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (tmp56 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp63 = ats_caselptrlab_mac(anairiats_sum_9, tmp56, atslab_0) ; tmp64 = atspre_eq_int_int (tmp63, 0) ; if (tmp64) { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_clotyp ; } else { tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr ; } /* end of [if] */ break ; } while (0) ; } /* end of [if] */ return (tmp54) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_fun] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 9298(line=445, offs=3) -- 9335(line=445, offs=40) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datconptr (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp65) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datconptr: tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr ; return (tmp65) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datconptr] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 9393(line=451, offs=3) -- 9652(line=465, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datcontyp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp66) ; ATSlocal (ats_ptr_type, tmp67) ; ATSlocal (ats_ptr_type, tmp68) ; ATSlocal (ats_ptr_type, tmp69) ; ATSlocal (ats_bool_type, tmp70) ; ATSlocal (ats_int_type, tmp71) ; ATSlocal (ats_ptr_type, tmp72) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datcontyp: tmp67 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp67)->tag != 10) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 9425(line=453, offs=5) -- 9469(line=454, offs=32)") ; } tmp68 = ats_caselptrlab_mac(anairiats_sum_5, tmp67, atslab_0) ; tmp69 = ats_caselptrlab_mac(anairiats_sum_5, tmp67, atslab_1) ; tmp70 = atspre_gt_int_int (arg1, 0) ; if (tmp70) { tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_npf (tmp68) ; tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer_labize (arg0, tmp71, tmp69) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum (tmp68, tmp72) ; } else { tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datcontyp ; } /* end of [if] */ return (tmp66) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_datcontyp] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 9737(line=471, offs=3) -- 9899(line=479, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyarr (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp73) ; ATSlocal (ats_ptr_type, tmp74) ; ATSlocal (ats_ptr_type, tmp75) ; ATSlocal (ats_ptr_type, tmp76) ; ATSlocal (ats_ptr_type, tmp77) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyarr: tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp74)->tag != 24) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 9769(line=473, offs=5) -- 9812(line=474, offs=35)") ; } tmp75 = ats_caselptrlab_mac(anairiats_sum_5, tmp74, atslab_0) ; tmp76 = ats_caselptrlab_mac(anairiats_sum_5, tmp74, atslab_1) ; tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp75) ; tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr (tmp77, tmp76) ; return (tmp73) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyarr] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 9980(line=485, offs=3) -- 10551(line=514, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyrec (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp78) ; ATSlocal (ats_ptr_type, tmp79) ; ATSlocal (ats_ptr_type, tmp80) ; ATSlocal (ats_int_type, tmp81) ; ATSlocal (ats_ptr_type, tmp82) ; ATSlocal (ats_ptr_type, tmp83) ; ATSlocal (ats_bool_type, tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; ATSlocal (ats_ptr_type, tmp86) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyrec: tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg2), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp79)->tag != 25) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 10012(line=487, offs=5) -- 10058(line=488, offs=38)") ; } tmp80 = ats_caselptrlab_mac(anairiats_sum_10, tmp79, atslab_0) ; tmp81 = ats_caselptrlab_mac(anairiats_sum_10, tmp79, atslab_1) ; tmp82 = ats_caselptrlab_mac(anairiats_sum_10, tmp79, atslab_2) ; tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_npf_tyer (arg0, arg1, tmp81, tmp82) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp80)->tag != 0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp84 = atspre_gt_int_int (arg1, 0) ; if (tmp84) { tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (tmp80, tmp83) ; } else { tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox ; } /* end of [if] */ break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp80)->tag != 4) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (tmp80, tmp83) ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (tmp83 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } tmp85 = ats_caselptrlab_mac(anairiats_sum_11, tmp83, atslab_1) ; if (tmp85 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: tmp86 = ats_caselptrlab_mac(anairiats_sum_11, tmp83, atslab_0) ; tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin (tmp86) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: __ats_lab_38_1: tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (tmp80, tmp83) ; break ; } while (0) ; break ; } while (0) ; return (tmp78) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2exp_tyer_tyrec] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 10629(line=520, offs=3) -- 11049(line=541, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp87) ; ATSlocal (ats_ptr_type, tmp88) ; ATSlocal (ats_ptr_type, tmp89) ; ATSlocal (ats_bool_type, tmp90) ; ATSlocal (ats_ptr_type, tmp91) ; ATSlocal (ats_ptr_type, tmp92) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer: do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: tmp88 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; tmp89 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_1) ; tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (tmp88) ; if (tmp90) { arg0 = arg0 ; arg1 = tmp89 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer ; // tail call } else { tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (arg0, tmp88) ; tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer (arg0, tmp89) ; tmp87 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp87, atslab_0, tmp91) ; ats_selptrset_mac(anairiats_sum_11, tmp87, atslab_1, tmp92) ; } /* end of [if] */ break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp87 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp87) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 11128(line=547, offs=3) -- 11313(line=558, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp93) ; ATSlocal (ats_bool_type, tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; ATSlocal (ats_int_type, tmp96) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer: tmp94 = atspre_gt_int_int (arg1, 0) ; if (tmp94) { if (arg2 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 11184(line=551, offs=7) -- 11210(line=551, offs=33)") ; } tmp95 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp96 = atspre_sub_int_int (arg1, 1) ; arg0 = arg0 ; arg1 = tmp96 ; arg2 = tmp95 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer ; // tail call } else { tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer (arg0, arg2) ; } /* end of [if] */ return (tmp93) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 11434(line=566, offs=5) -- 12148(line=600, offs=4) */ ATSstaticdec() ats_ptr_type auxlst_17 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp98) ; ATSlocal (ats_bool_type, tmp99) ; ATSlocal (ats_ptr_type, tmp100) ; ATSlocal (ats_int_type, tmp101) ; ATSlocal (ats_int_type, tmp102) ; ATSlocal (ats_ptr_type, tmp103) ; ATSlocal (ats_ptr_type, tmp104) ; ATSlocal (ats_bool_type, tmp105) ; ATSlocal (ats_int_type, tmp106) ; ATSlocal (ats_ptr_type, tmp107) ; ATSlocal (ats_ptr_type, tmp108) ; ATSlocal (ats_ptr_type, tmp109) ; ATSlocal (ats_ptr_type, tmp110) ; ATSlocal (ats_ptr_type, tmp111) ; ATSlocal (ats_int_type, tmp112) ; __ats_lab_auxlst_17: tmp99 = atspre_gt_int_int (arg1, 0) ; if (tmp99) { if (arg2 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 11550(line=573, offs=7) -- 11576(line=573, offs=33)") ; } tmp100 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp101 = atspre_sub_int_int (arg1, 1) ; tmp102 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = tmp101 ; arg2 = tmp100 ; arg3 = tmp102 ; goto __ats_lab_auxlst_17 ; // tail call } else { do { /* branch: __ats_lab_41 */ __ats_lab_41_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; } __ats_lab_41_1: tmp103 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_0) ; tmp104 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (tmp103) ; if (tmp105) { tmp106 = atspre_add_int_int (arg3, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp104 ; arg3 = tmp106 ; goto __ats_lab_auxlst_17 ; // tail call } else { tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg3) ; tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (arg0, tmp103) ; tmp110 = (ats_sum_ptr_type)0 ; tmp109 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp109, atslab_0, tmp107) ; ats_selptrset_mac(anairiats_sum_12, tmp109, atslab_1, tmp110) ; ats_selptrset_mac(anairiats_sum_12, tmp109, atslab_2, tmp108) ; tmp112 = atspre_add_int_int (arg3, 1) ; tmp111 = auxlst_17 (arg0, arg1, tmp104, tmp112) ; tmp98 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp98, atslab_0, tmp109) ; ats_selptrset_mac(anairiats_sum_11, tmp98, atslab_1, tmp111) ; } /* end of [if] */ break ; /* branch: __ats_lab_42 */ __ats_lab_42_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_42_1: tmp98 = (ats_sum_ptr_type)0 ; break ; } while (0) ; } /* end of [if] */ return (tmp98) ; } /* end of [auxlst_17] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 11403(line=564, offs=3) -- 12207(line=604, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer_labize (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp97) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer_labize: tmp97 = auxlst_17 (arg0, arg1, arg2, 0) ; return (tmp97) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_npf_tyer_labize] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 12296(line=610, offs=3) -- 12805(line=633, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_tyer (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; ATSlocal (ats_ptr_type, tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; ATSlocal (ats_ptr_type, tmp117) ; ATSlocal (ats_ptr_type, tmp118) ; ATSlocal (ats_bool_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; ATSlocal (ats_ptr_type, tmp121) ; ATSlocal (ats_ptr_type, tmp122) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_tyer: do { /* branch: __ats_lab_43 */ __ats_lab_43_0: if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; } __ats_lab_43_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_0) ; tmp115 = ats_caselptrlab_mac(anairiats_sum_11, arg2, atslab_1) ; tmp116 = ats_caselptrlab_mac(anairiats_sum_12, tmp114, atslab_0) ; tmp117 = ats_caselptrlab_mac(anairiats_sum_12, tmp114, atslab_1) ; tmp118 = ats_caselptrlab_mac(anairiats_sum_12, tmp114, atslab_2) ; tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (tmp118) ; if (tmp119) { arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp115 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_tyer ; // tail call } else { tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer (arg0, arg1, tmp118) ; tmp121 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp121, atslab_0, tmp116) ; ats_selptrset_mac(anairiats_sum_12, tmp121, atslab_1, tmp117) ; ats_selptrset_mac(anairiats_sum_12, tmp121, atslab_2, tmp120) ; tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_tyer (arg0, arg1, tmp115) ; tmp113 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp113, atslab_0, tmp121) ; ats_selptrset_mac(anairiats_sum_11, tmp113, atslab_1, tmp122) ; } /* end of [if] */ break ; /* branch: __ats_lab_44 */ __ats_lab_44_0: // if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_44_1: tmp113 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp113) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 12890(line=639, offs=3) -- 13104(line=650, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_npf_tyer (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_bool_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; ATSlocal (ats_int_type, tmp126) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_npf_tyer: tmp124 = atspre_gt_int_int (arg2, 0) ; if (tmp124) { if (arg3 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 12953(line=643, offs=7) -- 12981(line=643, offs=35)") ; } tmp125 = ats_caselptrlab_mac(anairiats_sum_11, arg3, atslab_1) ; tmp126 = atspre_sub_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = tmp126 ; arg3 = tmp125 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_npf_tyer ; // tail call } else { tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_tyer (arg0, arg1, arg3) ; } /* end of [if] */ return (tmp123) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2explst_npf_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 13193(line=656, offs=3) -- 13718(line=679, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer_arglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp127) ; ATSlocal (ats_ptr_type, tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; ATSlocal (ats_ptr_type, tmp130) ; ATSlocal (ats_bool_type, tmp131) ; ATSlocal (ats_bool_type, tmp132) ; ATSlocal (ats_ptr_type, tmp133) ; ATSlocal (ats_ptr_type, tmp134) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer_arglst: do { /* branch: __ats_lab_45 */ __ats_lab_45_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; } __ats_lab_45_1: tmp128 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; tmp129 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_1) ; tmp130 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp128), atslab_s2exp_srt) ; tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm (tmp130) ; if (tmp131) { tmp132 = ats_true_bool ; } else { tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind (tmp130) ; } /* end of [if] */ if (tmp132) { tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (arg0, tmp128) ; tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer_arglst (arg0, tmp129) ; tmp127 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp127, atslab_0, tmp133) ; ats_selptrset_mac(anairiats_sum_11, tmp127, atslab_1, tmp134) ; } else { arg0 = arg0 ; arg1 = tmp129 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer_arglst ; // tail call } /* end of [if] */ break ; /* branch: __ats_lab_46 */ __ats_lab_46_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_46_1: tmp127 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp127) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2explst_tyer_arglst] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 13798(line=685, offs=3) -- 14326(line=716, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp135) ; ATSlocal (ats_ptr_type, tmp136) ; ATSlocal (ats_ptr_type, tmp137) ; ATSlocal (ats_ptr_type, tmp138) ; ATSlocal (ats_ptr_type, tmp139) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer: do { /* branch: __ats_lab_47 */ __ats_lab_47_0: if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_48_0 ; } __ats_lab_47_1: tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox ; break ; /* branch: __ats_lab_48 */ __ats_lab_48_0: if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_49_0 ; } __ats_lab_48_1: tmp136 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2cst_tyer (arg0, 0, tmp136) ; break ; /* branch: __ats_lab_49 */ __ats_lab_49_0: if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_50_0 ; } __ats_lab_49_1: tmp137 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyvar (tmp137) ; break ; /* branch: __ats_lab_50 */ __ats_lab_50_0: if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_51_0 ; } __ats_lab_50_1: tmp138 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp139 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_app (arg0, tmp138, tmp139) ; break ; /* branch: __ats_lab_51 */ __ats_lab_51_0: if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_52_0 ; } __ats_lab_51_1: tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_tyrec (arg0, arg1) ; break ; /* branch: __ats_lab_52 */ __ats_lab_52_0: if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_53_0 ; } __ats_lab_52_1: tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined ; break ; /* branch: __ats_lab_53 */ __ats_lab_53_0: __ats_lab_53_1: tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp (arg1) ; break ; } while (0) ; return (tmp135) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 14399(line=722, offs=1) -- 14572(line=733, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; ATSlocal (ats_ptr_type, tmp142) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_app: tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer (arg0, arg1) ; tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexplst_tyer_arglst (arg0, arg2) ; tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app (tmp141, tmp142) ; return (tmp140) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_app] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 14656(line=739, offs=3) -- 15050(line=757, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexplst_tyer_arglst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp143) ; ATSlocal (ats_ptr_type, tmp144) ; ATSlocal (ats_ptr_type, tmp145) ; ATSlocal (ats_ptr_type, tmp146) ; ATSlocal (ats_ptr_type, tmp147) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexplst_tyer_arglst: do { /* branch: __ats_lab_54 */ __ats_lab_54_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; } __ats_lab_54_1: tmp144 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; tmp145 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_1) ; do { /* branch: __ats_lab_55 */ __ats_lab_55_0: if (((ats_sum_ptr_type)tmp144)->tag != 0) { goto __ats_lab_56_0 ; } __ats_lab_55_1: arg0 = arg0 ; arg1 = tmp145 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexplst_tyer_arglst ; // tail call break ; /* branch: __ats_lab_56 */ __ats_lab_56_0: __ats_lab_56_1: tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer (arg0, tmp144) ; tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexplst_tyer_arglst (arg0, tmp145) ; tmp143 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp143, atslab_0, tmp146) ; ats_selptrset_mac(anairiats_sum_11, tmp143, atslab_1, tmp147) ; break ; } while (0) ; break ; /* branch: __ats_lab_57 */ __ats_lab_57_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_57_1: tmp143 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp143) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexplst_tyer_arglst] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 15137(line=763, offs=3) -- 15578(line=785, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_tyrec (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; ATSlocal (ats_ptr_type, tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_tyrec: if (((ats_sum_ptr_type)arg1)->tag != 9) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 15164(line=765, offs=5) -- 15197(line=766, offs=24)") ; } tmp149 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ; tmp150 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ; tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2zexplst_tyer (arg0, tmp150) ; do { /* branch: __ats_lab_58 */ __ats_lab_58_0: if (((ats_sum_ptr_type)tmp149)->tag != 0) { goto __ats_lab_59_0 ; } __ats_lab_58_1: tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox ; break ; /* branch: __ats_lab_59 */ __ats_lab_59_0: if (((ats_sum_ptr_type)tmp149)->tag != 4) { goto __ats_lab_60_0 ; } __ats_lab_59_1: tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (tmp149, tmp151) ; break ; /* branch: __ats_lab_60 */ __ats_lab_60_0: __ats_lab_60_1: do { /* branch: __ats_lab_61 */ __ats_lab_61_0: if (tmp151 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } tmp152 = ats_caselptrlab_mac(anairiats_sum_11, tmp151, atslab_1) ; if (tmp152 != (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; } __ats_lab_61_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_11, tmp151, atslab_0) ; tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin (tmp153) ; break ; /* branch: __ats_lab_62 */ __ats_lab_62_0: __ats_lab_62_1: tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (tmp149, tmp151) ; break ; } while (0) ; break ; } while (0) ; return (tmp148) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__s2zexp_tyer_tyrec] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 15660(line=791, offs=3) -- 16177(line=812, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2zexplst_tyer (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; ATSlocal (ats_ptr_type, tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2zexplst_tyer: do { /* branch: __ats_lab_63 */ __ats_lab_63_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; } __ats_lab_63_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; tmp156 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_1) ; tmp157 = ats_caselptrlab_mac(anairiats_sum_11, tmp155, atslab_0) ; tmp158 = ats_caselptrlab_mac(anairiats_sum_11, tmp155, atslab_1) ; do { /* branch: __ats_lab_64 */ __ats_lab_64_0: if (((ats_sum_ptr_type)tmp158)->tag != 0) { goto __ats_lab_65_0 ; } __ats_lab_64_1: arg0 = arg0 ; arg1 = tmp156 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2zexplst_tyer ; // tail call break ; /* branch: __ats_lab_65 */ __ats_lab_65_0: __ats_lab_65_1: tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2zexp_tyer (arg0, tmp158) ; tmp161 = (ats_sum_ptr_type)0 ; tmp160 = ATS_MALLOC(sizeof(anairiats_sum_12)) ; ats_selptrset_mac(anairiats_sum_12, tmp160, atslab_0, tmp157) ; ats_selptrset_mac(anairiats_sum_12, tmp160, atslab_1, tmp161) ; ats_selptrset_mac(anairiats_sum_12, tmp160, atslab_2, tmp159) ; tmp162 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2zexplst_tyer (arg0, tmp156) ; tmp154 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp154, atslab_0, tmp160) ; ats_selptrset_mac(anairiats_sum_11, tmp154, atslab_1, tmp162) ; break ; } while (0) ; break ; /* branch: __ats_lab_66 */ __ats_lab_66_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_66_1: tmp154 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp154) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__labs2zexplst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 16306(line=821, offs=5) -- 16575(line=837, offs=4) */ ATSstaticdec() ats_ptr_type aux_27 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp165) ; ATSlocal (ats_ptr_type, tmp166) ; ATSlocal (ats_ptr_type, tmp167) ; ATSlocal (ats_ptr_type, tmp168) ; ATSlocal (ats_ptr_type, tmp169) ; __ats_lab_aux_27: do { /* branch: __ats_lab_67 */ __ats_lab_67_0: if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; } __ats_lab_67_1: tmp166 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ; tmp167 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_1) ; tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (arg0, tmp166) ; tmp169 = aux_27 (arg0, tmp167) ; tmp165 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp165, atslab_0, tmp168) ; ats_selptrset_mac(anairiats_sum_11, tmp165, atslab_1, tmp169) ; break ; /* branch: __ats_lab_68 */ __ats_lab_68_0: // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_68_1: tmp165 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp165) ; } /* end of [aux_27] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 16254(line=817, offs=15) -- 16633(line=841, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; ATSlocal (ats_ptr_type, tmp170) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_tyer: tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_t2mpmarg_loc) ; tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_t2mpmarg_arg) ; tmp163 = aux_27 (tmp164, tmp170) ; return (tmp163) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_tyer] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4) */ ATSstaticdec() ats_void_type loop_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp175) ; ATSlocal (ats_ptr_type, tmp176) ; ATSlocal (ats_ptr_type, tmp177) ; ATSlocal (ats_ptr_type, tmp178) ; ATSlocal (ats_ptr_type, tmp179) ; ATSlocal (ats_ptr_type, tmp180) ; ATSlocal (ats_ptr_type, tmp181) ; __ats_lab_loop_31: do { /* branch: __ats_lab_69 */ __ats_lab_69_0: if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; } __ats_lab_69_1: tmp176 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ; tmp177 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ; tmp178 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp176, arg3) ; tmp179 = ATS_MALLOC(sizeof(anairiats_sum_11)) ; ats_selptrset_mac(anairiats_sum_11, tmp179, atslab_0, tmp178) ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp179 ; // if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } tmp180 = &ats_caselptrlab_mac(anairiats_sum_11, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ; arg0 = tmp177 ; arg1 = arg1 ; arg2 = tmp180 ; arg3 = arg3 ; goto __ats_lab_loop_31 ; // tail call break ; /* branch: __ats_lab_70 */ __ats_lab_70_0: // if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_70_1: tmp181 = (ats_sum_ptr_type)0 ; ats_ptrget_mac(ats_ptr_type, arg2) = tmp181 ; break ; } while (0) ; return /* (tmp175) */ ; } /* end of [loop_31] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4) */ ATSstaticdec() ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ ATSlocal (ats_ptr_type, tmp174) ; ATSlocal (ats_ptr_type, tmp182) ; // ATSlocal_void (tmp183) ; __ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type: /* ats_ptr_type tmp182 ; */ /* tmp183 = */ loop_31 (arg0, arg1, (&tmp182), arg2) ; tmp174 = tmp182 ; return (tmp174) ; } /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2) */ ATSstaticdec() ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp173) ; __ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type: tmp173 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ; return (tmp173) ; } /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 16688(line=844, offs=18) -- 16784(line=848, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarglst_tyer (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp171) ; ATSlocal (ats_ptr_type, tmp172) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarglst_tyer: tmp172 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_tyer) ; tmp171 = ats_castfn_mac(ats_ptr_type, tmp172) ; return (tmp171) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarglst_tyer] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 16865(line=854, offs=3) -- 17010(line=860, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_mhnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp184) ; ATSlocal (ats_ptr_type, tmp185) ; ATSlocal (ats_ptr_type, tmp186) ; ATSlocal (ats_ptr_type, tmp187) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_mhnfize: tmp185 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_t2mpmarg_loc) ; tmp186 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_t2mpmarg_arg) ; tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_mhnfize (tmp186) ; tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make (tmp185, tmp187) ; return (tmp184) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_mhnfize] */ /* // /tmp/ATS-Postiats/src/pats_typerase_staexp.dats: 17073(line=864, offs=3) -- 17176(line=870, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarglst_mhnfize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp188) ; ATSlocal (ats_ptr_type, tmp189) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarglst_mhnfize: tmp189 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarg_mhnfize) ; tmp188 = ats_castfn_mac(ats_ptr_type, tmp189) ; return (tmp188) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__t2mpmarglst_mhnfize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_typerase_staexp_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_typerase_staexp_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_dyncst2_dats.c0000644000175000017500000007143313431250607022123 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_3 ; ats_ptr_type atslab_4 ; } anairiats_rec_0 ; typedef struct { ats_ptr_type atslab_sym ; ats_ptr_type atslab_cst ; } anairiats_rec_1 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_newline) () ; ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ; ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ; ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ; ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ; ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_prerr_string) (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_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_make) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_get_cst) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_equ_cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__the_sizeof_vt0ype_size) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_find) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_ptr_is_null) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_ptr_isnot_null) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ int _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__sasp__d2cstref_type = 0 ; /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__the_sizeof_vt0ype_size) ; /* internal function declarations */ static ats_void_type prerr_FILENAME_02047_ () ; static ats_ptr_type d2cstref_get_sym_1 (ats_ptr_type arg0) ; static ats_ptr_type d2cstref_get_cstnul_2 (ats_ptr_type arg0) ; static ats_void_type d2cstref_set_cstnul_3 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ; static ats_void_type prerr_interror_02048_ () ; static ats_ptr_type auxerr_7 (ats_ptr_type arg0) ; /* partial value template declarations */ /* static temporary variable declarations */ ATSstatic (ats_ptr_type, statmp32) ; /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 1715(line=53, offs=28) -- 1740(line=53, offs=53) */ ATSstaticdec() ats_void_type prerr_FILENAME_02047_ () { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_prerr_FILENAME_02047_: /* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_stacst2")) ; return /* (tmp0) */ ; } /* end of [prerr_FILENAME_02047_] */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 2609(line=99, offs=5) -- 2712(line=102, offs=4) */ ATSstaticdec() ats_ptr_type d2cstref_get_sym_1 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; __ats_lab_d2cstref_get_sym_1: tmp2 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp1 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp2), atslab_sym) ; return (tmp1) ; } /* end of [d2cstref_get_sym_1] */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 2768(line=106, offs=5) -- 2876(line=109, offs=4) */ ATSstaticdec() ats_ptr_type d2cstref_get_cstnul_2 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; __ats_lab_d2cstref_get_cstnul_2: tmp4 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; tmp3 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_cst) ; return (tmp3) ; } /* end of [d2cstref_get_cstnul_2] */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 2913(line=110, offs=5) -- 3039(line=113, offs=4) */ ATSstaticdec() ats_void_type d2cstref_set_cstnul_3 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp5) ; ATSlocal (ats_ptr_type, tmp6) ; __ats_lab_d2cstref_set_cstnul_3: tmp6 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_cst) = arg1 ; return /* (tmp5) */ ; } /* end of [d2cstref_set_cstnul_3] */ /* // /nix/store/mj3yn2jircwiraqbw7vhn06i6g7a3l94-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57) */ ATSstaticdec() ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () { /* local vardec */ ATSlocal (ats_ptr_type, tmp10) ; __ats_lab_ptr_alloc_01070_anairiats_rec_1: tmp10 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ; return (tmp10) ; } /* end of [ptr_alloc_01070_anairiats_rec_1] */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 3118(line=118, offs=15) -- 3356(line=125, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_make (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; ATSlocal (ats_ptr_type, tmp9) ; ATSlocal (ats_ptr_type, tmp11) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_make: tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (arg0) ; tmp9 = ptr_alloc_01070_anairiats_rec_1 () ; tmp11 = ats_selsin_mac(tmp9, atslab_2) ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp11), atslab_sym) = tmp8 ; ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp11), atslab_cst) = ats_castfn_mac(ats_ptr_type, atspre_null_ptr) ; tmp7 = atspre_ref_make_view_ptr (tmp11) ; return (tmp7) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_make] */ /* // /tmp/ATS-Postiats/src/pats_errmsg.dats: 1637(line=52, offs=15) -- 1735(line=57, offs=2) */ ATSstaticdec() ats_void_type prerr_interror_02048_ () { /* local vardec */ // ATSlocal_void (tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; __ats_lab_prerr_interror_02048_: /* tmp16 = */ atspre_prerr_string (ATSstrcst("INTERROR(")) ; /* tmp17 = */ prerr_FILENAME_02047_ () ; /* tmp15 = */ atspre_prerr_string (ATSstrcst(")")) ; return /* (tmp15) */ ; } /* end of [prerr_interror_02048_] */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 3472(line=134, offs=4) -- 3708(line=141, offs=4) */ ATSstaticdec() ats_ptr_type auxerr_7 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp13) ; // ATSlocal_void (tmp14) ; // ATSlocal_void (tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab_auxerr_7: /* tmp14 = */ prerr_interror_02048_ () ; /* tmp18 = */ atspre_prerr_string (ATSstrcst(": d2cstref_get_cst")) ; /* tmp19 = */ atspre_prerr_string (ATSstrcst(": the pervasive dynamic constant [")) ; /* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg0) ; /* tmp21 = */ atspre_prerr_string (ATSstrcst("] is not available.")) ; /* tmp22 = */ atspre_prerr_newline () ; /* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ; return (tmp13) ; } /* end of [auxerr_7] */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 3456(line=132, offs=18) -- 4234(line=170, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_get_cst (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp12) ; ATSlocal (ats_ptr_type, tmp23) ; ATSlocal (ats_bool_type, tmp24) ; ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; // ATSlocal_void (tmp29) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_get_cst: tmp23 = d2cstref_get_cstnul_2 (arg0) ; tmp24 = atspre_ptr_is_null (tmp23) ; if (tmp24) { tmp25 = d2cstref_get_sym_1 (arg0) ; tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_pervasive_find (tmp25) ; do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (tmp26 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; } __ats_lab_0_1: tmp27 = ats_caselptrlab_mac(anairiats_sum_2, tmp26, atslab_0) ; ATS_FREE(tmp26) ; do { /* branch: __ats_lab_1 */ __ats_lab_1_0: if (((ats_sum_ptr_type)tmp27)->tag != 0) { goto __ats_lab_2_0 ; } __ats_lab_1_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_3, tmp27, atslab_0) ; /* tmp29 = */ d2cstref_set_cstnul_3 (arg0, ats_castfn_mac(ats_ptr_type, tmp28)) ; tmp12 = tmp28 ; break ; /* branch: __ats_lab_2 */ __ats_lab_2_0: __ats_lab_2_1: tmp12 = auxerr_7 (tmp25) ; break ; } while (0) ; break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: // if (tmp26 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_3_1: tmp12 = auxerr_7 (tmp25) ; break ; } while (0) ; } else { tmp12 = ats_castfn_mac(ats_ptr_type, tmp23) ; } /* end of [if] */ return (tmp12) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_get_cst] */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 4313(line=175, offs=18) -- 4368(line=176, offs=45) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_equ_cst (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_bool_type, tmp30) ; ATSlocal (ats_ptr_type, tmp31) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_equ_cst: tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_get_cst (arg0) ; tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2cst_d2cst (tmp31, arg1) ; return (tmp30) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_equ_cst] */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 4528(line=187, offs=17) -- 4584(line=188, offs=49) */ ATSglobaldec() ats_bool_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cst_is_sizeof (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_bool_type, tmp33) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cst_is_sizeof: tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__the_sizeof_vt0ype_size, arg0) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cst_is_sizeof] */ /* // /tmp/ATS-Postiats/src/pats_dyncst2.dats: 4664(line=193, offs=30) -- 4671(line=193, offs=37) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__dyncst2_initialize () { /* local vardec */ // ATSlocal_void (tmp34) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__dyncst2_initialize: return /* (tmp34) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__dyncst2_initialize] */ /* static load function */ // extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__staload_flag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2edats__staload () ; #ifdef _ATS_PROOFCHECK ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ; ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ; #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ ATS_GC_MARKROOT(&statmp32, sizeof(ats_ptr_type)) ; /* marking external values for GC */ /* code for dynamic loading */ statmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__d2cstref_make (ATSstrcst("sizeof")) ; ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__the_sizeof_vt0ype_size, sizeof(ats_ptr_type)) ; _2tmp_2ATS_2dPostiats_2src_2pats_dyncst2_2esats__the_sizeof_vt0ype_size = statmp32 ; return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_dyncst2_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/CBOOT/pats_codegen2_absrec_dats.c0000644000175000017500000014060213431250607023535 0ustar brandonbrandon/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2019-2-14: 11h:30m ** */ /* 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_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_location.cats" #include "pats_lexbuf.cats" #include "pats_location.cats" #include "pats_location.cats" /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_0 ; typedef struct { ats_ptr_type atslab_s2exp_srt ; ats_ptr_type atslab_s2exp_node ; } anairiats_rec_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_3 ; typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_4 ; typedef struct { ats_ptr_type atslab_0 ; } anairiats_sum_5 ; typedef struct { ats_ptr_type atslab_d2ecl_loc ; ats_ptr_type atslab_d2ecl_node ; } anairiats_rec_6 ; typedef struct { ats_ptr_type atslab_e1xp_loc ; ats_ptr_type atslab_e1xp_node ; } anairiats_rec_7 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_int_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_8 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ; ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPide_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPstring_5) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDget_0) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDset_1) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDgetset_2) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDexch_3) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDgetref_4) ; ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDunknown_5) ; /* external dynamic constant declarations */ ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ; ATSextern_fun(ats_int_type, atspre_add_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_eq_string_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin_fun) (ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_tydef) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2rt) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2var) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2exp) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_uni) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_arg) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrecfld_of_s2exp) (ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfld) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfldlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_s2cst_get_tyrec) (ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* assuming abstract types */ /* sum constructor declarations */ ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDget_0) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDset_1) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDgetset_2) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDexch_3) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDgetref_4) ; ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDunknown_5) ; /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_ptr_type s2cst_get_name_0 (ats_ptr_type arg0) ; static ats_void_type aux_s2varlst_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type aux_s2varlst_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type auxdecl_8 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_clo_ptr_type auxdecl_8_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxdecl_8_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxproc_7 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type arg0) ; static ats_clo_ptr_type auxproc_7_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) ; static ats_void_type auxproc_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ; static ats_ptr_type auxget_11 (ats_ptr_type arg0) ; static ats_void_type auxerr_nil_12 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_s2cst_13 (ats_ptr_type arg0, ats_ptr_type arg1) ; static ats_void_type auxerr_s2cst_tyrec_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ; static ats_void_type aux_tydef_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ; static ats_void_type aux_tydef_tyrec_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 1861(line=70, offs=1) -- 1947(line=74, offs=2) */ ATSstaticdec() ats_ptr_type s2cst_get_name_0 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp0) ; ATSlocal (ats_ptr_type, tmp1) ; __ats_lab_s2cst_get_name_0: tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg0) ; tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp1) ; return (tmp0) ; } /* end of [s2cst_get_name_0] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 2155(line=90, offs=1) -- 2616(line=115, offs=2) */ ATSstaticdec() ats_void_type aux_s2varlst_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; ATSlocal (ats_ptr_type, tmp5) ; // ATSlocal_void (tmp6) ; ATSlocal (ats_bool_type, tmp7) ; ATSlocal (ats_ptr_type, tmp8) ; // ATSlocal_void (tmp9) ; // ATSlocal_void (tmp10) ; // ATSlocal_void (tmp11) ; ATSlocal (ats_int_type, tmp12) ; __ats_lab_aux_s2varlst_2: do { /* branch: __ats_lab_0 */ __ats_lab_0_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } __ats_lab_0_1: break ; /* branch: __ats_lab_1 */ __ats_lab_1_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_1_1: tmp4 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp5 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; tmp7 = atspre_gt_int_int (arg2, 0) ; if (tmp7) { /* tmp6 = */ atspre_fprint_string (arg0, ATSstrcst(";")) ; } else { /* empty */ } /* end of [if] */ tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp4) ; /* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2var (arg0, tmp4) ; /* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst(":")) ; /* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2rt (arg0, tmp8) ; tmp12 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp5 ; arg2 = tmp12 ; goto __ats_lab_aux_s2varlst_2 ; // tail call break ; } while (0) ; return /* (tmp3) */ ; } /* end of [aux_s2varlst_2] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 2130(line=87, offs=3) -- 2940(line=134, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_uni (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp2) ; ATSlocal (ats_ptr_type, tmp13) ; ATSlocal (ats_ptr_type, tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; // ATSlocal_void (tmp16) ; // ATSlocal_void (tmp17) ; // ATSlocal_void (tmp18) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_uni: tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_2 */ __ats_lab_2_0: if (((ats_sum_ptr_type)tmp13)->tag != 18) { goto __ats_lab_3_0 ; } __ats_lab_2_1: tmp14 = ats_caselptrlab_mac(anairiats_sum_2, tmp13, atslab_0) ; tmp15 = ats_caselptrlab_mac(anairiats_sum_2, tmp13, atslab_1) ; /* tmp16 = */ atspre_fprint_string (arg0, ATSstrcst("{")) ; /* tmp17 = */ aux_s2varlst_2 (arg0, tmp14, 0) ; /* tmp18 = */ atspre_fprint_string (arg0, ATSstrcst("}")) ; arg0 = arg0 ; arg1 = tmp15 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_uni ; // tail call break ; /* branch: __ats_lab_3 */ __ats_lab_3_0: __ats_lab_3_1: break ; } while (0) ; return /* (tmp2) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_uni] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 3154(line=150, offs=1) -- 3520(line=173, offs=2) */ ATSstaticdec() ats_void_type aux_s2varlst_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp20) ; ATSlocal (ats_ptr_type, tmp21) ; ATSlocal (ats_ptr_type, tmp22) ; // ATSlocal_void (tmp23) ; ATSlocal (ats_bool_type, tmp24) ; // ATSlocal_void (tmp25) ; ATSlocal (ats_int_type, tmp26) ; __ats_lab_aux_s2varlst_4: do { /* branch: __ats_lab_4 */ __ats_lab_4_0: if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; } __ats_lab_4_1: break ; /* branch: __ats_lab_5 */ __ats_lab_5_0: // if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_5_1: tmp21 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ; tmp22 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ; tmp24 = atspre_gt_int_int (arg2, 0) ; if (tmp24) { /* tmp23 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ /* tmp25 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2var (arg0, tmp21) ; tmp26 = atspre_add_int_int (arg2, 1) ; arg0 = arg0 ; arg1 = tmp22 ; arg2 = tmp26 ; goto __ats_lab_aux_s2varlst_4 ; // tail call break ; } while (0) ; return /* (tmp20) */ ; } /* end of [aux_s2varlst_4] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 3129(line=147, offs=3) -- 3844(line=192, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_arg (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp19) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; ATSlocal (ats_ptr_type, tmp29) ; // ATSlocal_void (tmp30) ; // ATSlocal_void (tmp31) ; // ATSlocal_void (tmp32) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_arg: tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_s2exp_node) ; do { /* branch: __ats_lab_6 */ __ats_lab_6_0: if (((ats_sum_ptr_type)tmp27)->tag != 18) { goto __ats_lab_7_0 ; } __ats_lab_6_1: tmp28 = ats_caselptrlab_mac(anairiats_sum_2, tmp27, atslab_0) ; tmp29 = ats_caselptrlab_mac(anairiats_sum_2, tmp27, atslab_1) ; /* tmp30 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ; /* tmp31 = */ aux_s2varlst_4 (arg0, tmp28, 0) ; /* tmp32 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; arg0 = arg0 ; arg1 = tmp29 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_arg ; // tail call break ; /* branch: __ats_lab_7 */ __ats_lab_7_0: __ats_lab_7_1: break ; } while (0) ; return /* (tmp19) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_arg] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 4289(line=223, offs=3) -- 5604(line=292, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrecfld_of_s2exp (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_ptr_type, tmp38) ; ATSlocal (ats_ptr_type, tmp39) ; ATSlocal (ats_ptr_type, tmp40) ; ATSlocal (ats_ptr_type, tmp41) ; ATSlocal (ats_bool_type, tmp42) ; ATSlocal (ats_bool_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; ATSlocal (ats_bool_type, tmp45) ; ATSlocal (ats_bool_type, tmp46) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrecfld_of_s2exp: tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_8 */ __ats_lab_8_0: if (((ats_sum_ptr_type)tmp34)->tag != 17) { goto __ats_lab_9_0 ; } tmp35 = ats_caselptrlab_mac(anairiats_sum_2, tmp34, atslab_1) ; if (tmp35 != (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; } __ats_lab_8_1: tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 5 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, arg0) ; break ; /* branch: __ats_lab_9 */ __ats_lab_9_0: if (((ats_sum_ptr_type)tmp34)->tag != 17) { goto __ats_lab_18_0 ; } tmp36 = ats_caselptrlab_mac(anairiats_sum_2, tmp34, atslab_1) ; if (tmp36 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; } __ats_lab_9_1: tmp37 = ats_caselptrlab_mac(anairiats_sum_2, tmp34, atslab_0) ; tmp38 = ats_caselptrlab_mac(anairiats_sum_0, tmp36, atslab_0) ; tmp39 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp37), atslab_s2exp_node) ; do { /* branch: __ats_lab_10 */ __ats_lab_10_0: if (((ats_sum_ptr_type)tmp39)->tag != 4) { goto __ats_lab_17_0 ; } __ats_lab_10_1: tmp40 = ats_caselptrlab_mac(anairiats_sum_3, tmp39, atslab_0) ; tmp41 = s2cst_get_name_0 (tmp40) ; do { /* branch: __ats_lab_11 */ __ats_lab_11_0: __ats_lab_11_1: tmp42 = atspre_eq_string_string (tmp41, ATSstrcst("get")) ; if (!tmp42) { goto __ats_lab_12_1 ; } tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 0 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, tmp38) ; break ; /* branch: __ats_lab_12 */ __ats_lab_12_0: __ats_lab_12_1: tmp43 = atspre_eq_string_string (tmp41, ATSstrcst("set")) ; if (!tmp43) { goto __ats_lab_13_1 ; } tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 1 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, tmp38) ; break ; /* branch: __ats_lab_13 */ __ats_lab_13_0: __ats_lab_13_1: tmp44 = atspre_eq_string_string (tmp41, ATSstrcst("getset")) ; if (!tmp44) { goto __ats_lab_14_1 ; } tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 2 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, tmp38) ; break ; /* branch: __ats_lab_14 */ __ats_lab_14_0: __ats_lab_14_1: tmp45 = atspre_eq_string_string (tmp41, ATSstrcst("exch")) ; if (!tmp45) { goto __ats_lab_15_1 ; } tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 3 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, tmp38) ; break ; /* branch: __ats_lab_15 */ __ats_lab_15_0: __ats_lab_15_1: tmp46 = atspre_eq_string_string (tmp41, ATSstrcst("getref")) ; if (!tmp46) { goto __ats_lab_16_1 ; } tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 4 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, tmp38) ; break ; /* branch: __ats_lab_16 */ __ats_lab_16_0: __ats_lab_16_1: tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 5 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, arg0) ; break ; } while (0) ; break ; /* branch: __ats_lab_17 */ __ats_lab_17_0: __ats_lab_17_1: tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 5 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, arg0) ; break ; } while (0) ; break ; /* branch: __ats_lab_18 */ __ats_lab_18_0: __ats_lab_18_1: tmp33 = ATS_MALLOC(sizeof(anairiats_sum_3)) ; ((ats_sum_ptr_type)tmp33)->tag = 5 ; ats_selptrset_mac(anairiats_sum_3, tmp33, atslab_0, arg0) ; break ; } while (0) ; return (tmp33) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrecfld_of_s2exp] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 6001(line=323, offs=1) -- 6833(line=382, offs=2) */ ATSstaticdec() ats_void_type auxdecl_8 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp52) ; ATSlocal (ats_ptr_type, tmp53) ; ATSlocal (ats_ptr_type, tmp54) ; ATSlocal (ats_ptr_type, tmp55) ; // ATSlocal_void (tmp56) ; // ATSlocal_void (tmp57) ; // ATSlocal_void (tmp58) ; // ATSlocal_void (tmp59) ; // ATSlocal_void (tmp60) ; // ATSlocal_void (tmp61) ; // ATSlocal_void (tmp62) ; // ATSlocal_void (tmp63) ; // ATSlocal_void (tmp64) ; ATSlocal (ats_bool_type, tmp65) ; ATSlocal (ats_bool_type, tmp66) ; // ATSlocal_void (tmp67) ; ATSlocal (ats_bool_type, tmp68) ; ATSlocal (ats_bool_type, tmp69) ; // ATSlocal_void (tmp70) ; // ATSlocal_void (tmp71) ; // ATSlocal_void (tmp72) ; // ATSlocal_void (tmp73) ; // ATSlocal_void (tmp74) ; __ats_lab_auxdecl_8: tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (env1) ; tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def (env1) ; if (tmp54 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 6098(line=332, offs=1) -- 6131(line=332, offs=34)") ; } tmp55 = ats_caselptrlab_mac(anairiats_sum_5, tmp54, atslab_0) ; /* tmp56 = */ atspre_fprint_string (env0, ATSstrcst("extern\nfun{}\n")) ; /* tmp57 = */ atspre_fprint_string (env0, env2) ; /* tmp58 = */ atspre_fprint_string (env0, arg0) ; /* tmp59 = */ atspre_fprint_string (env0, ATSstrcst("_")) ; /* tmp60 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, env3) ; /* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_uni (env0, tmp55) ; /* tmp62 = */ atspre_fprint_string (env0, ATSstrcst(" : absrec_")) ; /* tmp63 = */ atspre_fprint_string (env0, arg0) ; /* tmp64 = */ atspre_fprint_string (env0, ATSstrcst("_fun_")) ; tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin_fun (tmp53) ; tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun (tmp53) ; if (tmp66) { tmp68 = atspre_neg_bool (tmp65) ; if (tmp68) { /* tmp67 = */ atspre_fprint_string (env0, ATSstrcst("type")) ; } else { /* tmp67 = */ atspre_fprint_string (env0, ATSstrcst("vtype")) ; } /* end of [if] */ } else { tmp69 = atspre_neg_bool (tmp65) ; if (tmp69) { /* tmp67 = */ atspre_fprint_string (env0, ATSstrcst("t0ype")) ; } else { /* tmp67 = */ atspre_fprint_string (env0, ATSstrcst("vt0ype")) ; } /* end of [if] */ } /* end of [if] */ /* tmp70 = */ atspre_fprint_string (env0, ATSstrcst("(")) ; /* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (env0, env1) ; /* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tydef_arg (env0, tmp55) ; /* tmp73 = */ atspre_fprint_string (env0, ATSstrcst(", ")) ; /* tmp74 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_emit_s2exp (env0, arg1) ; /* tmp52 = */ atspre_fprint_string (env0, ATSstrcst(")\n")) ; return /* (tmp52) */ ; } /* end of [auxdecl_8] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxdecl_8_closure_type ; ats_void_type auxdecl_8_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) { auxdecl_8 (((auxdecl_8_closure_type*)cloptr)->closure_env_0, ((auxdecl_8_closure_type*)cloptr)->closure_env_1, ((auxdecl_8_closure_type*)cloptr)->closure_env_2, ((auxdecl_8_closure_type*)cloptr)->closure_env_3, arg0, arg1) ; return ; } /* end of function */ ATSinline() ats_void_type auxdecl_8_closure_init (auxdecl_8_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxdecl_8_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxdecl_8_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxdecl_8_closure_type *p_clo = ATS_MALLOC(sizeof(auxdecl_8_closure_type)) ; auxdecl_8_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 5943(line=317, offs=1) -- 7851(line=431, offs=4) */ ATSstaticdec() ats_void_type auxproc_7 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3, ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp51) ; ATSlocal (ats_ptr_type, tmp75) ; // ATSlocal_void (tmp76) ; // ATSlocal_void (tmp77) ; // ATSlocal_void (tmp78) ; // ATSlocal_void (tmp79) ; // ATSlocal_void (tmp80) ; // ATSlocal_void (tmp81) ; // ATSlocal_void (tmp82) ; // ATSlocal_void (tmp83) ; // ATSlocal_void (tmp84) ; ATSlocal (ats_ptr_type, tmp85) ; // ATSlocal_void (tmp86) ; // ATSlocal_void (tmp87) ; // ATSlocal_void (tmp88) ; // ATSlocal_void (tmp89) ; // ATSlocal_void (tmp90) ; // ATSlocal_void (tmp91) ; // ATSlocal_void (tmp92) ; // ATSlocal_void (tmp93) ; // ATSlocal_void (tmp94) ; ATSlocal (ats_ptr_type, tmp95) ; // ATSlocal_void (tmp96) ; // ATSlocal_void (tmp97) ; // ATSlocal_void (tmp98) ; // ATSlocal_void (tmp99) ; // ATSlocal_void (tmp100) ; // ATSlocal_void (tmp101) ; // ATSlocal_void (tmp102) ; // ATSlocal_void (tmp103) ; // ATSlocal_void (tmp104) ; // ATSlocal_void (tmp105) ; // ATSlocal_void (tmp106) ; // ATSlocal_void (tmp107) ; // ATSlocal_void (tmp108) ; // ATSlocal_void (tmp109) ; // ATSlocal_void (tmp110) ; // ATSlocal_void (tmp111) ; // ATSlocal_void (tmp112) ; // ATSlocal_void (tmp113) ; ATSlocal (ats_ptr_type, tmp114) ; // ATSlocal_void (tmp115) ; ATSlocal (ats_ptr_type, tmp116) ; // ATSlocal_void (tmp117) ; __ats_lab_auxproc_7: do { /* branch: __ats_lab_19 */ __ats_lab_19_0: if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_20_0 ; } __ats_lab_19_1: tmp75 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp76 = */ auxdecl_8 (env0, env1, env2, env3, ATSstrcst("get"), tmp75) ; /* tmp77 = */ atspre_fprint_string (env0, ATSstrcst("overload ")) ; /* tmp78 = */ atspre_fprint_string (env0, ATSstrcst(".")) ; /* tmp79 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, env3) ; /* tmp80 = */ atspre_fprint_string (env0, ATSstrcst(" with ")) ; /* tmp81 = */ atspre_fprint_string (env0, env2) ; /* tmp82 = */ atspre_fprint_string (env0, ATSstrcst("get_")) ; /* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, env3) ; /* tmp84 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp51 = */ atspre_fprint_newline (env0) ; break ; /* branch: __ats_lab_20 */ __ats_lab_20_0: if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_21_0 ; } __ats_lab_20_1: tmp85 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp86 = */ auxdecl_8 (env0, env1, env2, env3, ATSstrcst("set"), tmp85) ; /* tmp87 = */ atspre_fprint_string (env0, ATSstrcst("overload ")) ; /* tmp88 = */ atspre_fprint_string (env0, ATSstrcst(".")) ; /* tmp89 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, env3) ; /* tmp90 = */ atspre_fprint_string (env0, ATSstrcst(" with ")) ; /* tmp91 = */ atspre_fprint_string (env0, env2) ; /* tmp92 = */ atspre_fprint_string (env0, ATSstrcst("set_")) ; /* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, env3) ; /* tmp94 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp51 = */ atspre_fprint_newline (env0) ; break ; /* branch: __ats_lab_21 */ __ats_lab_21_0: if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_22_0 ; } __ats_lab_21_1: tmp95 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp96 = */ auxdecl_8 (env0, env1, env2, env3, ATSstrcst("get"), tmp95) ; /* tmp97 = */ atspre_fprint_string (env0, ATSstrcst("overload ")) ; /* tmp98 = */ atspre_fprint_string (env0, ATSstrcst(".")) ; /* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, env3) ; /* tmp100 = */ atspre_fprint_string (env0, ATSstrcst(" with ")) ; /* tmp101 = */ atspre_fprint_string (env0, env2) ; /* tmp102 = */ atspre_fprint_string (env0, ATSstrcst("get_")) ; /* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, env3) ; /* tmp104 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp105 = */ auxdecl_8 (env0, env1, env2, env3, ATSstrcst("set"), tmp95) ; /* tmp106 = */ atspre_fprint_string (env0, ATSstrcst("overload ")) ; /* tmp107 = */ atspre_fprint_string (env0, ATSstrcst(".")) ; /* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, env3) ; /* tmp109 = */ atspre_fprint_string (env0, ATSstrcst(" with ")) ; /* tmp110 = */ atspre_fprint_string (env0, env2) ; /* tmp111 = */ atspre_fprint_string (env0, ATSstrcst("set_")) ; /* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__fprint_label (env0, env3) ; /* tmp113 = */ atspre_fprint_string (env0, ATSstrcst("\n")) ; /* tmp51 = */ atspre_fprint_newline (env0) ; break ; /* branch: __ats_lab_22 */ __ats_lab_22_0: if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_23_0 ; } __ats_lab_22_1: tmp114 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp115 = */ auxdecl_8 (env0, env1, env2, env3, ATSstrcst("exec"), tmp114) ; /* tmp51 = */ atspre_fprint_newline (env0) ; break ; /* branch: __ats_lab_23 */ __ats_lab_23_0: if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_24_0 ; } __ats_lab_23_1: tmp116 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ; /* tmp117 = */ auxdecl_8 (env0, env1, env2, env3, ATSstrcst("getref"), tmp116) ; /* tmp51 = */ atspre_fprint_newline (env0) ; break ; /* branch: __ats_lab_24 */ __ats_lab_24_0: __ats_lab_24_1: break ; } while (0) ; return /* (tmp51) */ ; } /* end of [auxproc_7] */ typedef struct { ats_fun_ptr_type closure_fun ; ats_ptr_type closure_env_0 ; ats_ptr_type closure_env_1 ; ats_ptr_type closure_env_2 ; ats_ptr_type closure_env_3 ; } auxproc_7_closure_type ; ats_void_type auxproc_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) { auxproc_7 (((auxproc_7_closure_type*)cloptr)->closure_env_0, ((auxproc_7_closure_type*)cloptr)->closure_env_1, ((auxproc_7_closure_type*)cloptr)->closure_env_2, ((auxproc_7_closure_type*)cloptr)->closure_env_3, arg0) ; return ; } /* end of function */ ATSinline() ats_void_type auxproc_7_closure_init (auxproc_7_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { p_clo->closure_fun = (ats_fun_ptr_type)&auxproc_7_clofun ; p_clo->closure_env_0 = env0 ; p_clo->closure_env_1 = env1 ; p_clo->closure_env_2 = env2 ; p_clo->closure_env_3 = env3 ; return ; } /* end of function */ ats_clo_ptr_type auxproc_7_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type env3) { auxproc_7_closure_type *p_clo = ATS_MALLOC(sizeof(auxproc_7_closure_type)) ; auxproc_7_closure_init (p_clo, env0, env1, env2, env3) ; return (ats_clo_ptr_type)p_clo ; } /* end of function */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 5828(line=305, offs=1) -- 7902(line=437, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfld (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_ptr_type, tmp50) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfld: tmp48 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ; tmp49 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_2) ; tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrecfld_of_s2exp (tmp49) ; /* tmp47 = */ auxproc_7 (arg0, arg1, arg2, tmp48, tmp50) ; return /* (tmp47) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfld] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 8144(line=450, offs=1) -- 8364(line=460, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfldlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp118) ; ATSlocal (ats_ptr_type, tmp119) ; ATSlocal (ats_ptr_type, tmp120) ; // ATSlocal_void (tmp121) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfldlst: do { /* branch: __ats_lab_25 */ __ats_lab_25_0: if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; } __ats_lab_25_1: break ; /* branch: __ats_lab_26 */ __ats_lab_26_0: // if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_26_1: tmp119 = ats_caselptrlab_mac(anairiats_sum_0, arg3, atslab_0) ; tmp120 = ats_caselptrlab_mac(anairiats_sum_0, arg3, atslab_1) ; /* tmp121 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfld (arg0, arg1, arg2, tmp119) ; arg0 = arg0 ; arg1 = arg1 ; arg2 = arg2 ; arg3 = tmp120 ; goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfldlst ; // tail call break ; } while (0) ; return /* (tmp118) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfldlst] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 8584(line=478, offs=1) -- 8926(line=502, offs=4) */ ATSstaticdec() ats_ptr_type auxget_11 (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp123) ; ATSlocal (ats_ptr_type, tmp124) ; ATSlocal (ats_ptr_type, tmp125) ; __ats_lab_auxget_11: tmp124 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_s2exp_node) ; do { /* branch: __ats_lab_27 */ __ats_lab_27_0: if (((ats_sum_ptr_type)tmp124)->tag != 25) { goto __ats_lab_28_0 ; } __ats_lab_27_1: tmp123 = ATS_MALLOC(sizeof(anairiats_sum_5)) ; ats_selptrset_mac(anairiats_sum_5, tmp123, atslab_0, arg0) ; break ; /* branch: __ats_lab_28 */ __ats_lab_28_0: if (((ats_sum_ptr_type)tmp124)->tag != 18) { goto __ats_lab_29_0 ; } __ats_lab_28_1: tmp125 = ats_caselptrlab_mac(anairiats_sum_2, tmp124, atslab_1) ; arg0 = tmp125 ; goto __ats_lab_auxget_11 ; // tail call break ; /* branch: __ats_lab_29 */ __ats_lab_29_0: __ats_lab_29_1: tmp123 = (ats_sum_ptr_type)0 ; break ; } while (0) ; return (tmp123) ; } /* end of [auxget_11] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 8564(line=475, offs=3) -- 9010(line=508, offs=4) */ ATSglobaldec() ats_ptr_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_s2cst_get_tyrec (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp122) ; ATSlocal (ats_ptr_type, tmp126) ; ATSlocal (ats_ptr_type, tmp127) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_s2cst_get_tyrec: tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def (arg0) ; if (tmp126 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 8953(line=504, offs=5) -- 8985(line=504, offs=37)") ; } tmp127 = ats_caselptrlab_mac(anairiats_sum_5, tmp126, atslab_0) ; tmp122 = auxget_11 (tmp127) ; return (tmp122) ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_s2cst_get_tyrec] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 9079(line=515, offs=1) -- 9351(line=532, offs=2) */ ATSstaticdec() ats_void_type auxerr_nil_12 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp128) ; ATSlocal (ats_ptr_type, tmp129) ; // ATSlocal_void (tmp130) ; // ATSlocal_void (tmp131) ; // ATSlocal_void (tmp132) ; // ATSlocal_void (tmp133) ; __ats_lab_auxerr_nil_12: tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_d2ecl_loc) ; /* tmp130 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp129) ; /* tmp132 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): absrec: no spec on typedef is given\n")) ; /* tmp133 = */ atspre_fprint_string (arg0, ATSstrcst("*)")) ; /* tmp128 = */ atspre_fprint_newline (arg0) ; return /* (tmp128) */ ; } /* end of [auxerr_nil_12] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 9383(line=535, offs=1) -- 9657(line=552, offs=2) */ ATSstaticdec() ats_void_type auxerr_s2cst_13 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp134) ; ATSlocal (ats_ptr_type, tmp135) ; // ATSlocal_void (tmp136) ; // ATSlocal_void (tmp137) ; // ATSlocal_void (tmp138) ; // ATSlocal_void (tmp139) ; __ats_lab_auxerr_s2cst_13: tmp135 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_d2ecl_loc) ; /* tmp136 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp135) ; /* tmp138 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): absrec: no typedef of the given spec\n")) ; /* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("*)")) ; /* tmp134 = */ atspre_fprint_newline (arg0) ; return /* (tmp134) */ ; } /* end of [auxerr_s2cst_13] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 9691(line=555, offs=1) -- 9993(line=572, offs=2) */ ATSstaticdec() ats_void_type auxerr_s2cst_tyrec_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp140) ; ATSlocal (ats_ptr_type, tmp141) ; // ATSlocal_void (tmp142) ; // ATSlocal_void (tmp143) ; // ATSlocal_void (tmp144) ; // ATSlocal_void (tmp145) ; // ATSlocal_void (tmp146) ; // ATSlocal_void (tmp147) ; __ats_lab_auxerr_s2cst_tyrec_14: tmp141 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_d2ecl_loc) ; /* tmp142 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ; /* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp141) ; /* tmp144 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): absrec: [")) ; /* tmp145 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (arg0, arg2) ; /* tmp146 = */ atspre_fprint_string (arg0, ATSstrcst("] does not refer to a record\n")) ; /* tmp147 = */ atspre_fprint_string (arg0, ATSstrcst("*)")) ; /* tmp140 = */ atspre_fprint_newline (arg0) ; return /* (tmp140) */ ; } /* end of [auxerr_s2cst_tyrec_14] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 10033(line=575, offs=1) -- 10409(line=602, offs=4) */ ATSstaticdec() ats_void_type aux_tydef_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) { /* local vardec */ // ATSlocal_void (tmp148) ; ATSlocal (ats_ptr_type, tmp149) ; ATSlocal (ats_ptr_type, tmp150) ; __ats_lab_aux_tydef_15: tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_s2cst_get_tyrec (arg2) ; do { /* branch: __ats_lab_30 */ __ats_lab_30_0: if (tmp149 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; } __ats_lab_30_1: /* tmp148 = */ auxerr_s2cst_tyrec_14 (arg0, arg1, arg2) ; break ; /* branch: __ats_lab_31 */ __ats_lab_31_0: // if (tmp149 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_31_1: tmp150 = ats_caselptrlab_mac(anairiats_sum_5, tmp149, atslab_0) ; ATS_FREE(tmp149) ; /* tmp148 = */ aux_tydef_tyrec_16 (arg0, arg1, arg2, tmp150, arg3) ; break ; } while (0) ; return /* (tmp148) */ ; } /* end of [aux_tydef_15] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 10440(line=605, offs=1) -- 11120(line=649, offs=4) */ ATSstaticdec() ats_void_type aux_tydef_tyrec_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) { /* local vardec */ // ATSlocal_void (tmp151) ; ATSlocal (ats_ptr_type, tmp152) ; ATSlocal (ats_ptr_type, tmp153) ; ATSlocal (ats_ptr_type, tmp154) ; ATSlocal (ats_ptr_type, tmp155) ; ATSlocal (ats_ptr_type, tmp156) ; ATSlocal (ats_ptr_type, tmp157) ; ATSlocal (ats_ptr_type, tmp158) ; ATSlocal (ats_ptr_type, tmp159) ; __ats_lab_aux_tydef_tyrec_16: do { /* branch: __ats_lab_32 */ __ats_lab_32_0: if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; } __ats_lab_32_1: tmp152 = s2cst_get_name_0 (arg2) ; break ; /* branch: __ats_lab_33 */ __ats_lab_33_0: // if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_33_1: tmp153 = ats_caselptrlab_mac(anairiats_sum_0, arg4, atslab_0) ; tmp154 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, tmp153), atslab_e1xp_node) ; do { /* branch: __ats_lab_34 */ __ats_lab_34_0: if (((ats_sum_ptr_type)tmp154)->tag != 0) { goto __ats_lab_35_0 ; } __ats_lab_34_1: tmp155 = ats_caselptrlab_mac(anairiats_sum_3, tmp154, atslab_0) ; tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp155) ; break ; /* branch: __ats_lab_35 */ __ats_lab_35_0: if (((ats_sum_ptr_type)tmp154)->tag != 5) { goto __ats_lab_36_0 ; } __ats_lab_35_1: tmp156 = ats_caselptrlab_mac(anairiats_sum_3, tmp154, atslab_0) ; tmp152 = tmp156 ; break ; /* branch: __ats_lab_36 */ __ats_lab_36_0: __ats_lab_36_1: tmp157 = s2cst_get_name_0 (arg2) ; tmp152 = atspre_string_append (tmp157, ATSstrcst("_")) ; break ; } while (0) ; break ; } while (0) ; tmp158 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_s2exp_node) ; if (((ats_sum_ptr_type)tmp158)->tag != 25) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 11014(line=644, offs=1) -- 11061(line=645, offs=39)") ; } tmp159 = ats_caselptrlab_mac(anairiats_sum_8, tmp158, atslab_2) ; /* tmp151 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__absrec_emit_tyrecfldlst (arg0, arg2, tmp152, tmp159) ; return /* (tmp151) */ ; } /* end of [aux_tydef_tyrec_16] */ /* // /tmp/ATS-Postiats/src/pats_codegen2_absrec.dats: 11200(line=655, offs=3) -- 11588(line=677, offs=4) */ ATSglobaldec() ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_absrec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) { /* local vardec */ // ATSlocal_void (tmp160) ; ATSlocal (ats_ptr_type, tmp161) ; ATSlocal (ats_ptr_type, tmp162) ; ATSlocal (ats_ptr_type, tmp163) ; ATSlocal (ats_ptr_type, tmp164) ; __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_absrec: do { /* branch: __ats_lab_37 */ __ats_lab_37_0: if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; } __ats_lab_37_1: /* tmp160 = */ auxerr_nil_12 (arg0, arg1) ; break ; /* branch: __ats_lab_38 */ __ats_lab_38_0: // if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_38_1: tmp161 = ats_caselptrlab_mac(anairiats_sum_0, arg2, atslab_0) ; tmp162 = ats_caselptrlab_mac(anairiats_sum_0, arg2, atslab_1) ; tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_get_tydef (tmp161) ; do { /* branch: __ats_lab_39 */ __ats_lab_39_0: if (tmp163 != (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; } __ats_lab_39_1: /* tmp160 = */ auxerr_s2cst_13 (arg0, arg1) ; break ; /* branch: __ats_lab_40 */ __ats_lab_40_0: // if (tmp163 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } __ats_lab_40_1: tmp164 = ats_caselptrlab_mac(anairiats_sum_5, tmp163, atslab_0) ; ATS_FREE(tmp163) ; /* tmp160 = */ aux_tydef_15 (arg0, arg1, tmp164, tmp162) ; break ; } while (0) ; break ; } while (0) ; return /* (tmp160) */ ; } /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_absrec] */ /* static load function */ extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_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_symbol_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ; extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload (void) ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__staload () { static int _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__staload_flag = 0 ; if (_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__staload_flag) return ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__staload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload () ; // _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDget_0.tag = 0 ; // _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDset_1.tag = 1 ; // _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDgetset_2.tag = 2 ; // _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDexch_3.tag = 3 ; // _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDgetref_4.tag = 4 ; // _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__ABSRECFLDunknown_5.tag = 5 ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__dynload_flag ; ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__dynload () { _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__dynload_flag = 1 ; _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_absrec_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [pats_codegen2_absrec_dats.c] */ ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp2_dvar.dats0000644000175000017500000004151113431250607021764 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp overload compare with $STMP.compare_stamp_stamp staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol typedef symbolopt = $SYM.symbolopt (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) // // HX: this is for handling type recursion // abstype d2varopt2 // = d2varopt extern castfn d2varopt2_encode (x: d2varopt):<> d2varopt2 extern castfn d2varopt2_decode (x: d2varopt2):<> d2varopt // (* ****** ****** *) typedef d2var_struct = @{ d2var_sym= symbol // name , d2var_loc= location // first location , d2var_level= int // toplevel: 0 , d2var_linval= int // nonlinear (-1) and linear (>=0) , d2var_isfix= bool // is fix-variable? , d2var_isprf= bool // is proof? , d2var_decarg= s2qualst // nil/cons -> function/template , d2var_addr= s2expopt // , d2var_view= d2varopt2 // , d2var_finknd= d2vfin // the status at the end of scope , d2var_type= s2expopt // the (current) type of a variable , d2var_hisexp= hisexpopt // the type erasure of [d2var_type] , d2var_mastype= s2expopt // the master type of a variable , d2var_utimes= int // , d2var_stamp= stamp // uniqueness stamp } (* end of [d2var_struct] *) (* ****** ****** *) local assume d2var_type = ref (d2var_struct) in (* in of [local] *) implement d2var_make (loc, id) = let // val stamp = $STMP.d2var_stamp_make () // val (pfgc, pfat | p) = ptr_alloc () prval ((*freed*)) = free_gc_elim {d2var_struct?} (pfgc) // val () = p->d2var_sym := id val () = p->d2var_loc := loc val () = p->d2var_level := ~1 val () = p->d2var_linval := ~1; val () = p->d2var_isfix := false val () = p->d2var_isprf := false val () = p->d2var_decarg := list_nil () val () = p->d2var_addr := None () val () = p->d2var_view := d2varopt2_encode (None(*d2v*)) val () = p->d2var_finknd := D2VFINnone () val () = p->d2var_type := None () val () = p->d2var_hisexp := None () val () = p->d2var_mastype := None () val () = p->d2var_utimes := 0 val () = p->d2var_stamp := stamp // in // ref_make_view_ptr (pfat | p) // end // end of [d2var_make] (* ****** ****** *) implement d2var_make_any (loc) = d2var_make (loc, $SYM.symbol_UNDERSCORE) // end of [d2var_make_any] (* ****** ****** *) implement d2var_get_sym (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_sym end // end of [d2var_get_sym] implement d2var_get_loc (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_loc end // end of [d2var_get_loc] implement d2var_get_level (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_level end // end of [d2var_get_level] implement d2var_set_level (d2v, lev) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_level := lev end // end of [d2var_set_level] implement d2var_get_linval (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_linval end // end of [d2var_get_linval] implement d2var_set_linval (d2v, lin) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_linval := lin end // end of [d2var_set_linval] implement d2var_get_isfix (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_isfix end // end of [d2var_get_isfix] implement d2var_set_isfix (d2v, isfix) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_isfix := isfix end // end of [d2var_set_isfix] implement d2var_get_isprf (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_isprf end // end of [d2var_get_isprf] implement d2var_set_isprf (d2v, isprf) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_isprf := isprf end // end of [d2var_set_isprf] implement d2var_get_decarg (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_decarg end // end of [d2var_get_decarg] implement d2var_set_decarg (d2v, decarg) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_decarg := decarg end // end of [d2var_set_decarg] implement d2var_get_addr (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_addr end // end of [d2var_get_addr] implement d2var_set_addr (d2v, s2fopt) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_addr := s2fopt end // end of [d2var_set_addr] implement d2var_get_view (d2v) = $effmask_ref let val ( vbox pf | p ) = ref_get_view_ptr (d2v) in d2varopt2_decode (p->d2var_view) end // end of [d2var_get_view] implement d2var_set_view (d2v, opt) = let val ( vbox pf | p ) = ref_get_view_ptr (d2v) in p->d2var_view := d2varopt2_encode (opt) end // end of [d2var_set_view] implement d2var_get_finknd (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_finknd end // end of [d2var_get_finknd] implement d2var_set_finknd (d2v, knd) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_finknd := knd end // end of [d2var_set_finknd] (* ****** ****** *) implement d2var_get_type (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_type end // end of [d2var_get_type] implement d2var_set_type (d2v, opt) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_type := opt end // end of [d2var_set_type] (* ****** ****** *) implement d2var_get_mastype (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_mastype end // end of [d2var_get_mastype] implement d2var_set_mastype (d2v, opt) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_mastype := opt end // end of [d2var_set_mastype] (* ****** ****** *) implement d2var_get_hisexp (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_hisexp end // end of [d2var_get_hisexp] implement d2var_set_hisexp (d2v, opt) = let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_hisexp := opt end // end of [d2var_set_hisexp] (* ****** ****** *) implement d2var_get_utimes (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_utimes end // end of [d2var_get_utimes] implement d2var_set_utimes (d2v, nused) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_utimes := nused end // end of [d2var_set_utimes] implement d2var_get_stamp (d2v) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2v) in p->d2var_stamp end // end of [d2var_get_stamp] end // end of [local] (* ****** ****** *) implement d2var_inc_linval (d2v) = let val lin = d2var_get_linval (d2v) in d2var_set_linval (d2v, lin+1) end // end of [d2var_inc_linval] implement d2var_inc_utimes (d2v) = let val nused = d2var_get_utimes (d2v) in d2var_set_utimes (d2v, nused+1) end // end of [d2var_inc_utimes] (* ****** ****** *) implement d2var_is_linear (d2v) = (d2var_get_linval d2v >= 0) implement d2var_is_mutabl (d2v) = case+ d2var_get_view d2v of Some _ => true | None () => false // end of [d2var_is_mutabl] (* ****** ****** *) implement eq_d2var_d2var (x1, x2) = (compare_d2var_d2var (x1, x2) = 0) implement neq_d2var_d2var (x1, x2) = (compare_d2var_d2var (x1, x2) != 0) (* ****** ****** *) implement compare_d2var_d2var (x1, x2) = $effmask_all (compare (d2var_get_stamp (x1), d2var_get_stamp (x2))) // end of [compare_d2var_d2var] implement compare_d2vsym_d2vsym (x1, x2) = $effmask_all ( $SYM.compare_symbol_symbol (d2var_get_sym (x1), d2var_get_sym (x2)) ) // end of [compare_d2vsym_d2vsym] (* ****** ****** *) implement d2var_exch_type (d2v, _new) = _old where { val _old = d2var_get_type (d2v) // end of [val] val () = d2var_set_type (d2v, _new) } // end of [d2var_exch_type] (* ****** ****** *) implement d2var_ptr_viewat_make (ptr, opt) = d2vw where { val loc = d2var_get_loc (ptr) and sym = d2var_get_sym (ptr) val d2vw = ( case+ opt of | Some d2vw => d2vw | None () => let val nam = $SYM.symbol_get_name (sym) val sym1 = $SYM.symbol_make_string (nam + "$view") in d2var_make (loc, sym1) end // end of [None] ) : d2var // end of [val] // val () = d2var_set_linval (d2vw, 0) val () = d2var_set_addr (d2vw, d2var_get_addr ptr) // } // end of [d2var_ptr_viewat_make] implement d2var_ptr_viewat_make_none (d2v_ptr) = d2var_ptr_viewat_make (d2v_ptr, None) // end of [d2var_ptr_viewat_make_none] (* ****** ****** *) implement print_d2var (d2v) = fprint_d2var (stdout_ref, d2v) implement prerr_d2var (d2v) = fprint_d2var (stderr_ref, d2v) implement fprint_d2var (out, d2v) = { // val () = $SYM.fprint_symbol (out, d2var_get_sym d2v) // val () = fprint_string (out, "$") val () = $STMP.fprint_stamp (out, d2var_get_stamp d2v) // val () = fprint_string (out, "(") val () = fprint_int (out, d2var_get_level d2v) val () = fprint_string (out, ")") // } (* end of [fprint_d2var] *) implement fprint_d2varlst (out, d2vs) = $UT.fprintlst (out, d2vs, ", ", fprint_d2var) // end of [fprint_d2varlst] (* ****** ****** *) implement print_d2vfin (x) = fprint_d2vfin (stdout_ref, x) implement prerr_d2vfin (x) = fprint_d2vfin (stderr_ref, x) implement fprint_d2vfin (out, d2vfin) = let // macdef prstr (str) = fprint_string (out, ,(str)) // in // case+ d2vfin of | D2VFINnone () => prstr "D2VFINnone()" | D2VFINsome (s2e) => { val () = prstr "D2VFINsome(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } | D2VFINsome_lvar (s2e) => { val () = prstr "D2VFINsome_lvar(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } | D2VFINsome_vbox (s2e) => { val () = prstr "D2VFINsome_vbox(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } | D2VFINdone (d2vfin) => { val () = prstr "D2VFINdone(" val () = fprint_d2vfin (out, d2vfin) val () = prstr ")" } (* end of [D2FINdone] *) // end // end of [fprint_d2vfin] (* ****** ****** *) local staload FS = "libats/SATS/funset_avltree.sats" staload _ = "libats/DATS/funset_avltree.dats" staload LS = "libats/SATS/linset_avltree.sats" staload _ = "libats/DATS/linset_avltree.dats" val cmp = lam ( d2v1: d2var, d2v2: d2var ) : int = compare_d2var_d2var (d2v1, d2v2) // end of [val] assume d2varset_type = $FS.set (d2var) assume d2varset_vtype = $LS.set (d2var) in (* in of [local] *) implement d2varset_nil () = $FS.funset_make_nil () implement d2varset_ismem (xs, x) = $FS.funset_is_member (xs, x, cmp) // end of [d2varset_ismem] implement d2varset_add (xs, x) = xs where { var xs = xs val _(*replaced*) = $FS.funset_insert (xs, x, cmp) } // end of [d2varset_add] implement d2varset_listize (xs) = $FS.funset_listize (xs) (* ****** ****** *) implement d2varset_vt_nil () = $LS.linset_make_nil () implement d2varset_vt_free (xs) = $LS.linset_free (xs) implement d2varset_vt_ismem (xs, x) = $LS.linset_is_member (xs, x, cmp) // end of [d2varset_vt_ismem] implement d2varset_vt_add (xs, x) = xs where { var xs = xs val _(*replaced*) = $LS.linset_insert (xs, x, cmp) } // end of [d2varset_vt_add] implement d2varset_vt_listize (xs) = $LS.linset_listize (xs) implement d2varset_vt_listize_free (xs) = $LS.linset_listize_free (xs) end // end of [local] (* ****** ****** *) implement fprint_d2varset (out, d2vset) = { // val xs = d2varset_listize (d2vset) val () = $UT.fprintlst (out, $UN.linlst2lst(xs), ", ", fprint_d2var) val () = list_vt_free (xs) // } // end of [fprint_d2varset] (* ****** ****** *) local staload FM = "libats/SATS/funmap_avltree.sats" staload _ = "libats/DATS/funmap_avltree.dats" staload LM = "libats/SATS/linmap_avltree.sats" staload _ = "libats/DATS/linmap_avltree.dats" val cmp = lam ( d2v1: d2var, d2v2: d2var ) : int = compare_d2var_d2var (d2v1, d2v2) // end of [val] assume d2varmap_type (a:type) = $FM.map (d2var, a) assume d2varmap_vtype (a:type) = $LM.map (d2var, a) assume d2varmaplst_vtype (a:type) = $LM.map (d2var, List_vt(a)) in (* in of [local] *) implement d2varmap_nil () = $FM.funmap_make_nil () implement d2varmap_search {a} (map, d2v) = $FM.funmap_search_opt (map, d2v, cmp) // end of [d2varmap_search] implement d2varmap_insert {a} (map, d2v, x) = $FM.funmap_insert (map, d2v, x, cmp) // end of [d2varmap_insert] implement d2varmap_listize {a} (map) = $FM.funmap_listize (map) // end of [d2varmap_listize] (* ****** ****** *) implement d2varmap_vt_nil () = $LM.linmap_make_nil () implement d2varmap_vt_free (map) = $LM.linmap_free (map) implement d2varmap_vt_search {a} (map, d2v) = $LM.linmap_search_opt (map, d2v, cmp) // end of [d2varmap_vt_search] implement d2varmap_vt_insert {a} (map, d2v, x) = let var res: a? // uninitialized val ans = $LM.linmap_insert (map, d2v, x, cmp, res) prval () = opt_clear (res) in ans end // end of [d2varmap_vt_insert] implement d2varmap_vt_remove {a} (map, d2v) = $LM.linmap_remove (map, d2v, cmp) // end of [d2varmap_vt_remove] implement d2varmap_vt_listize {a} (map) = $LM.linmap_listize (map) // end of [d2varmap_vt_listize] (* ****** ****** *) implement d2varmaplst_vt_nil () = $LM.linmap_make_nil () implement d2varmaplst_vt_free {a} (map) = let // typedef key = d2var vtypedef itm = List_vt (a) // fn f ( pfv: !unit_v | k: key, x: &itm >> itm?, env: !ptr ) :<> void = list_vt_free (x) // val env = null prval pfv = unit_v () val ((*void*)) = $effmask_all($LM.linmap_clear_funenv {unit_v}{ptr} (pfv | map, f, env)) prval unit_v () = pfv // in $LM.linmap_free (map) end // end of [d2varmaplst_vt_free] implement d2varmaplst_vt_search {a} (map, d2v) = let // typedef key = d2var vtypedef itm = List_vt (a) // val p = $LM.linmap_search_ref (map, d2v, cmp) // in // if (p > null) then let val xs = $UN.ptrget (p) in case+ xs of list_cons (x, _) => Some_vt (x) | _ => None_vt () // end of [case] end // end of [then] else None_vt((*void*)) // end of [if] // end // end of [d2varmaplst_vt_search] implement d2varmaplst_vt_insert {a} (map, d2v, x0) = let // typedef key = d2var vtypedef itm = List_vt (a) // val p = $LM.linmap_search_ref (map, d2v, cmp) // in // if (p > null) then let val xs = $UN.ptrget (p) val () = $UN.ptrset (p, list_vt_cons{a}(x0, xs)) in true end // end of [then] else let var res: itm val _(*false*) = $LM.linmap_insert (map, d2v, list_vt_sing(x0), cmp, res) val () = $UN.castvwtp0{void}(res) in false end // end of [else] // end of [if] // end // end of [d2varmaplst_vt_search] implement d2varmaplst_vt_remove {a} (map, d2v) = let // typedef key = d2var vtypedef itm = List_vt (a) // val p = $LM.linmap_search_ref (map, d2v, cmp) // in // if (p > null) then let val xs = $UN.ptrget (p) in case+ xs of | ~list_vt_cons (_, xs) => let val () = ( case+ xs of | list_vt_cons _ => let prval () = fold@(xs) in $UN.ptrset (p, xs) end // end of [list_vt_cons] | ~list_vt_nil () => let var res: itm val _(*true*) = $LM.linmap_takeout (map, d2v, cmp, res) // end of [val] in $UN.castvwtp0{void}(res) end // end of [list_vt_nil] ) : void // end of [val] in true end // end of [list_vt_cons] | ~list_vt_nil ((*void*)) => false end // end of [then] else false // end of [else] // end of [if] end // end of [d2varmaplst_vt_remove] end // end of [local] (* ****** ****** *) (* end of [pats_dynexp2_dvar.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_taggen.sats0000644000175000017500000000343113431250607020642 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2013 // (* ****** ****** *) staload SYN = "./pats_syntax.sats" typedef d0eclist = $SYN.d0eclist (* ****** ****** *) abstype tagent_type typedef tagent = tagent_type (* ****** ****** *) vtypedef tagentlst_vt = List_vt (tagent) (* ****** ****** *) fun taggen_proc (d0cs: d0eclist): tagentlst_vt (* ****** ****** *) // fun fprint_entlst (out: FILEref, given: string, xs: tagentlst_vt): void // (* ****** ****** *) (* end of [pats_taggen.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_global.sats0000644000175000017500000000655013431250607020642 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: August, 2012 // (* ****** ****** *) // (* // // HX-2017-05-26: // This is likely to be a // very poor design!!! fun patsopt_global_initset(): void *) // (* ****** ****** *) fun the_PACKNAME_get(): Stropt fun the_PACKNAME_set(opt: Stropt): void fun the_PACKNAME_set_none(): void fun the_PACKNAME_set_name(ns: string): void (* ****** ****** *) fun the_ATSRELOC_get(): int fun the_ATSRELOC_set(flag: int): void fun the_ATSRELOC_get_decl(): ptr fun the_ATSRELOC_set_decl(d0c: ptr): void (* ****** ****** *) (* // // HX-2014-06-06: // [STALOADFLAG] is no longer in use // fun the_STALOADFLAG_get (): int fun the_STALOADFLAG_set (flag: int): void *) (* ****** ****** *) fun the_DYNLOADFLAG_get(): int fun the_DYNLOADFLAG_set(flag: int): void (* ****** ****** *) fun the_DYNLOADNAME_get(): stropt fun the_DYNLOADNAME_set_none((*void*)): void fun the_DYNLOADNAME_set_name(name: string): void (* ****** ****** *) fun the_MAINATSFLAG_get(): int fun the_MAINATSFLAG_set(flag: int): void (* ****** ****** *) fun the_STATIC_PREFIX_get(): stropt fun the_STATIC_PREFIX_set_none((*void*)): void fun the_STATIC_PREFIX_set_name(name: string): void (* ****** ****** *) // fun the_IATS_dirlst_get (): List (string) // // HX: ppush: permanent push // fun the_IATS_dirlst_ppush(dir: string): void // (* // HX: ppushb: permanent push from back fun the_IATS_dirlst_ppushb (dir: string): void *) // (* ****** ****** *) (* // // HX-2017-02-02: // --assume-check=0 fun the_ASSUME_check_get(): int fun the_ASSUME_check_set(flag: int): void // *) (* ****** ****** *) // fun the_DEBUGATS_dbgflag_get(): int fun the_DEBUGATS_dbgflag_set(flag: int): void // fun the_DEBUGATS_dbgline_get(): int fun the_DEBUGATS_dbgline_set(flag: int): void // (* ****** ****** *) // // HX-2015-04-26: // for managing tail-call optimization // fun the_CCOMPATS_tlcalopt_get(): int fun the_CCOMPATS_tlcalopt_set(flag: int): void // (* ****** ****** *) fun the_CCOMPENV_maxtmprecdepth_get(): int fun the_CCOMPENV_maxtmprecdepth_set(mtd: int): void (* ****** ****** *) (* end of [pats_global.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_stamp.sats0000644000175000017500000000635513431250607020531 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload "./pats_basics.sats" staload "./pats_counter.sats" (* ****** ****** *) // abst@ype stamp_t0ype = count // typedef stamp = stamp_t0ype typedef stampopt = Option (stamp) // (* ****** ****** *) fun stamp_get_int (x: stamp):<> int (* ****** ****** *) fun lt_stamp_stamp (x1: stamp, x2: stamp):<> bool overload < with lt_stamp_stamp fun lte_stamp_stamp (x1: stamp, x2: stamp):<> bool overload <= with lte_stamp_stamp fun eq_stamp_stamp (x1: stamp, x2: stamp):<> bool overload = with eq_stamp_stamp fun neq_stamp_stamp (x1: stamp, x2: stamp):<> bool overload <> with neq_stamp_stamp fun compare_stamp_stamp (x1: stamp, x2: stamp):<> Sgn overload compare with compare_stamp_stamp (* ****** ****** *) fun tostring_stamp (x: stamp): string fun tostring_prefix_stamp (prfx: string, x: stamp): string (* ****** ****** *) fun fprint_stamp : fprint_type (stamp) (* ****** ****** *) fun // HX: datasort s2rtdat_stamp_make (): stamp // fun s2cst_stamp_make (): stamp // fun s2var_stamp_make (): stamp fun s2Var_stamp_make (): stamp // (* ****** ****** *) fun s2hole_stamp_make (): stamp (* ****** ****** *) // fun d2con_stamp_make (): stamp // fun d2cst_stamp_make (): stamp // fun d2mac_stamp_make (): stamp // fun d2var_stamp_make (): stamp // (* ****** ****** *) fun hitype_stamp_make (): stamp (* ****** ****** *) fun tmplab_stamp_make (): stamp fun tmpvar_stamp_make (): stamp (* ****** ****** *) fun funlab_stamp_make (): stamp (* ****** ****** *) // absviewtype stampset_viewtype viewtypedef stampset_vt = stampset_viewtype // fun stampset_vt_nil ():<> stampset_vt fun stampset_vt_is_nil (xs: !stampset_vt):<> bool fun stampset_vt_isnot_nil (xs: !stampset_vt):<> bool fun stampset_vt_is_member (xs: !stampset_vt, x: stamp):<> bool fun stampset_vt_add (xs: stampset_vt, x: stamp):<> stampset_vt fun stampset_vt_free (xs: stampset_vt):<> void // (* ****** ****** *) (* end of [pats_stamp.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_funlab.dats0000644000175000017500000003250113431250607022006 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_ccomp_funlab" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp (* ****** ****** *) staload GLOB = "./pats_global.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans2_env.sats" (* ****** ****** *) staload "./pats_histaexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) typedef funlab_struct = @{ funlab_name= string // , funlab_level= int // top/inner level // , funlab_funclo= funclo (* funclo option *) // , funlab_type= hisexp (* function type *) // , funlab_tmpknd= int (* 0/1 : template use/def *) // , funlab_d2copt= d2cstopt (* global *) , funlab_d2vopt= d2varopt (* local/static *) // , funlab_ncopy= int , funlab_origin= Option (ptr) , funlab_suffix= int // , funlab_tmparg= t2mpmarglst (* tmplt use *) // , funlab_funent= funentopt // function entry // , funlab_stamp= stamp (* stamp for unicity *) } (* end of [funlab_struct] *) (* ****** ****** *) local assume ccomp_funlab_type = ref (funlab_struct) in (* in of [local] *) implement funlab_make ( name, level, hse, fcopt, qopt, sopt, t2mas, stamp ) = let // val ( pfgc, pfat | p ) = ptr_alloc () // prval () = free_gc_elim {funlab_struct?} (pfgc) // val fc = ( case+ fcopt of | ~Some_vt (fc) => fc | ~None_vt () => ( case+ hse.hisexp_node of | HSEfun (fc, _, _) => fc | _ => FUNCLOfun () ) // end of [None_vt] ) : funclo // end of [val] // val () = p->funlab_name := name val () = p->funlab_level := level // val () = p->funlab_type := hse val () = p->funlab_funclo := fc // val () = p->funlab_tmpknd := ~1 val () = p->funlab_d2copt := qopt // global val () = p->funlab_d2vopt := sopt // static // val () = p->funlab_ncopy := 0 // val () = p->funlab_origin := None () val () = p->funlab_suffix := 0 // val () = p->funlab_tmparg := t2mas // val () = p->funlab_funent := None(*funent*) // val () = p->funlab_stamp := stamp // in ref_make_view_ptr (pfat | p) end // end of [funlab_make] (* ****** ****** *) implement funlab_get_name (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_name end // end of [funlab_get_name] implement funlab_get_level (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_level end // end of [funlab_get_level] implement funlab_get_type (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_type end // end of [funlab_get_type] implement funlab_get_funclo (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_funclo end // end of [funlab_get_funclo] implement funlab_get_tmpknd (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_tmpknd end // end of [funlab_get_tmpknd] implement funlab_set_tmpknd (flab, knd) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_tmpknd := knd end // end of [funlab_set_tmpknd] implement funlab_get_d2copt (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_d2copt end // end of [funlab_get_d2copt] implement funlab_get_d2vopt (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_d2vopt end // end of [funlab_get_d2vopt] implement funlab_get_ncopy (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_ncopy end // end of [funlab_get_ncopy] implement funlab_set_ncopy (flab, cnt) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_ncopy := cnt end // end of [funlab_set_ncopy] implement funlab_get_origin (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in $UN.cast{funlabopt}(p->funlab_origin) // end of [val] end // end of [funlab_get_origin] implement funlab_set_origin (flab, opt) = let val opt = $UN.cast{Option(ptr)}(opt) val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_origin := opt end // end of [funlab_set_origin] implement funlab_get_suffix (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_suffix end // end of [funlab_get_suffix] implement funlab_set_suffix (flab, sfx) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_suffix := sfx end // end of [funlab_set_suffix] implement funlab_get_tmparg (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_tmparg end // end of [funlab_get_tmparg] implement funlab_get_funent (flab) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_funent end // end of [funlab_get_funent] implement funlab_set_funent (flab, opt) = let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_funent := opt end // end of [funlab_set_funent] implement funlab_get_stamp (flab) = $effmask_ref ( let val (vbox pf | p) = ref_get_view_ptr (flab) in p->funlab_stamp end // end of [funlab_get_stamp] ) (* end of [funlab_get_stamp] *) end // end of [local] (* ****** ****** *) implement funlab_get_type_arg (flab) = let val hse = funlab_get_type (flab) in // case+ hse.hisexp_node of | HSEfun ( _(*fc*), _arg, _(*res*) ) => _arg | _ => let val () = prerr_interror () val () = ( prerrln! (": funlab_get_type_arg: hse = ", hse) ) // end of [val] val () = assertloc (false) in exit (1) // HX: this is deadcode end (* end of [_] *) // end // end of [funlab_get_type_arg] implement funlab_get_type_res (flab) = let val hse = funlab_get_type (flab) in // case+ hse.hisexp_node of | HSEfun ( _(*fc*), _(*arg*), _res ) => _res | _ => let val () = prerr_interror () val () = ( prerrln! (": funlab_get_type_arg: hse = ", hse) ) // end of [val] val () = assertloc (false) in exit (1) // HX: this is deadcode end (* end of [_] *) // end // end of [funlab_get_type_res] (* ****** ****** *) implement funlab_incget_ncopy (flab) = cnt1 where { val cnt = funlab_get_ncopy (flab) val cnt1 = cnt + 1 val () = funlab_set_ncopy (flab, cnt1) } // end of [funlab_incget_ncopy] (* ****** ****** *) implement funlab_make_type (hse) = let val lvl0 = the_d2varlev_get () val fcopt = None_vt() // HX: by [hse] val stamp = $STMP.funlab_stamp_make () val flname = let val opt = $GLOB.the_STATIC_PREFIX_get () in if stropt_is_none(opt) then "__patsfun_" else $UN.castvwtp0{string}(stropt_unsome(opt)+"patsfun_") end // end of [val] val flname2 = $STMP.tostring_prefix_stamp (flname, stamp) in // funlab_make ( flname2, lvl0, hse, fcopt, None(*qopt*), None(*sopt*), list_nil(*t2mas*), stamp ) // end // end of [funlab_make_type] (* ****** ****** *) local fun d2cst_get_gname (d2c: d2cst): string = let val extdef = d2cst_get_extdef (d2c) in case+ extdef of // | $SYN.DCSTEXTDEFnone (knd) => let val sym = d2cst_get_sym (d2c) in $SYM.symbol_get_name (sym) end // end of [DCSTEXTDEFnone] // | $SYN.DCSTEXTDEFsome_ext (name) => name | $SYN.DCSTEXTDEFsome_mac (name) => name | $SYN.DCSTEXTDEFsome_sta (name) => name // end // end of [d2cst_get_gname] fun flname_make ( d2c: d2cst, stamp: stamp ) : string = let val d2c2 = d2cst_get_gname (d2c) val stamp2 = $STMP.tostring_stamp (stamp) val flname = sprintf ("%s$%s", @(d2c2, stamp2)) in string_of_strptr (flname) end // end of [flname_make] in (* in of [local] *) implement funlab_make_dcst_type (d2c, hse, fcopt) = let val lvl0 = the_d2varlev_get () val qopt = Some (d2c) val t2mas = list_nil () val stamp = $STMP.funlab_stamp_make () val flname = flname_make (d2c, stamp) in // funlab_make ( flname, lvl0, hse, fcopt, qopt, None (*sopt*), t2mas, stamp ) // end // end of [funlab_make_dcst_type] implement funlab_make_tmpcst_type ( d2c, t2mas, hse, fcopt ) = let val lvl0 = the_d2varlev_get () val qopt = Some (d2c) val stamp = $STMP.funlab_stamp_make () val flname = flname_make (d2c, stamp) in // funlab_make ( flname, lvl0, hse, fcopt, qopt, None (*sopt*), t2mas, stamp ) (* end of [funlab_make] *) // end // end of [funlab_make_tmpcst_type] end // end of [local] (* ****** ****** *) local fun flname_make ( d2v: d2var, stamp: stamp ) : string = let // val opt = $GLOB.the_STATIC_PREFIX_get () val isnone = stropt_is_none (opt) // val d2v2 = $SYM.symbol_get_name (d2var_get_sym (d2v)) // end of [val] val stamp2 = $STMP.tostring_stamp (stamp) in // if isnone then string_of_strptr (sprintf ("%s_%s", @(d2v2, stamp2))) else let val prfx = stropt_unsome(opt) in string_of_strptr (sprintf ("%s%s_%s", @(prfx, d2v2, stamp2))) end // end of [else] // end // end of [flname_make] in (* in of [local] *) implement funlab_make_dvar_type (d2v, hse, fcopt) = let val lvl0 = the_d2varlev_get () val sopt = Some (d2v) val t2mas = list_nil () val stamp = $STMP.funlab_stamp_make () val flname = flname_make (d2v, stamp) in // funlab_make ( flname, lvl0, hse, fcopt, None(*qopt*), sopt, t2mas, stamp ) (* end of [funlab] *) // end // end of [funlab_make_dvar_type] (* // // HX-2014-11-01: // where is this needed? // implement funlab_make_tmpvar_type ( d2v, t2mas, hse, fcopt ) = let val lvl0 = the_d2varlev_get () val sopt = Some (d2v) val stamp = $STMP.funlab_stamp_make () val flname = flname_make (d2v, stamp) in // funlab_make ( flname, lvl0, hse, fcopt, None(*qopt*), sopt, t2mas, stamp ) (* end of [funlab_make] *) // end // end of [funlab_make_tmpvar_type] *) end // end of [local] (* ****** ****** *) implement fprint_funlab (out, flab) = let val name = funlab_get_name (flab) val () = fprint_string (out, name) val sfx = funlab_get_suffix (flab) val () = fprintf (out, "$%i", @(sfx)) val flev = funlab_get_level (flab) val () = fprintf (out, "(level=%i)", @(flev)) in // nothing end // end of [fprint_funlab] implement print_funlab (flab) = fprint_funlab (stdout_ref, flab) implement prerr_funlab (flab) = fprint_funlab (stderr_ref, flab) (* ****** ****** *) implement fprint_funlablst (out, fls) = let // val () = $UT.fprintlst (out, fls, ", ", fprint_funlab) // in // nothing end // end of [fprint_funlablst] (* ****** ****** *) implement fprint_funlablstopt (out, opt) = let in // case+ opt of | Some (fls) => fprint! (out, "Some(", fls, ")") // end of [Some] | None ((*void*)) => fprint! (out, "None()") // end // end of [fprint_funlablstopt] (* ****** ****** *) local staload LS = "libats/SATS/linset_listord.sats" staload _(*anon*) = "libats/DATS/linset_listord.dats" assume funlabset_vtype = $LS.set (funlab) val cmp = lam (x: funlab, y: funlab) = $STMP.compare_stamp_stamp (funlab_get_stamp (x), funlab_get_stamp (y)) // end of [val] in (* in of [local] *) implement funlabset_vt_nil () = $LS.linset_make_nil () implement funlabset_vt_free (fls) = $LS.linset_free (fls) implement funlabset_vt_ismem (fls, fl) = $LS.linset_is_member (fls, fl, cmp) // end of [funlabset_vt_ismem] implement funlabset_vt_add (fls, fl) = fls where { var fls = fls val _(*exists*) = $LS.linset_insert (fls, fl, cmp) } // end of [funlabset_vt_add] implement funlabset_vt_listize (fls) = $LS.linset_listize (fls) implement funlabset_vt_listize_free (fls) = $LS.linset_listize_free (fls) end // end of [local] implement funlablst2set (fls) = let // fun loop ( fls: funlablst, res: funlabset_vt ) : funlabset_vt = let in // case+ fls of | list_cons (fl, fls) => let val res = funlabset_vt_add (res, fl) in loop (fls, res) end (* end of [list_cons] *) | list_nil () => res // end (* end of [loop] *) // in loop (fls, funlabset_vt_nil ()) end // end of [funlablst2set] (* ****** ****** *) implement fprint_funlabset_vt (out, fls) = let val fls = funlabset_vt_listize (fls) val ((*void*)) = fprint_funlablst (out, $UN.linlst2lst(fls)) val ((*void*)) = list_vt_free (fls) in // nothing end // end of [fprint_funlabset_vt] (* ****** ****** *) (* end of [pats_ccomp_funlab.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp3.sats0000644000175000017500000006616513431250607021004 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" typedef loc_t = $LOC.location typedef location = $LOC.location (* ****** ****** *) staload INT = "./pats_intinf.sats" typedef intinf = $INT.intinf (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_dynexp2.sats" typedef d2cst = d2cst_type // abstract typedef d2var = d2var_type // abstract (* ****** ****** *) datatype p3at_node = // | P3Tany of d2var // wildcard | P3Tvar of (d2var) // mutability from the context // | P3Tcon of (pckind, d2con, int(*npf*), p3atlst(*arg*)) // P3Tcon // | P3Tint of (int) | P3Tintrep of string(*rep*) | P3Tbool of (bool) | P3Tchar of (char) | P3Tfloat of (string) | P3Tstring of (string) // | P3Ti0nt of i0nt | P3Tf0loat of f0loat // | P3Tempty (* empty pattern *) // | P3Trec of (int(*knd*), int(*npf*), pckind, labp3atlst) // P3Trec // | P3Tlst of (int(*lin*), s2exp(*elt*), p3atlst) // pattern list // | P3Trefas of (d2var, p3at) // referenced pattern // | P3Texist of (s2varlst, p3at) // existential opening // | P3Tvbox of (d2var) // vbox pattern // | P3Tann of (p3at, s2exp) // ascribed pattern // | P3Terrpat of ((*void*)) // indication of error // end of [p3at_node] and labp3at = LABP3AT of (label, p3at) where p3at = '{ p3at_loc= location , p3at_node= p3at_node , p3at_type= s2exp // HX: it may still be a s2Var , p3at_dvaropt= d2varopt // for presevation purpose , p3at_type_left= s2expopt // for presevation purpose } // end of [p3at] and p3atlst = List (p3at) and p3atopt = Option (p3at) and labp3atlst = List (labp3at) (* ****** ****** *) fun print_p3at (x: p3at): void overload print with print_p3at fun prerr_p3at (x: p3at): void overload prerr with prerr_p3at fun fprint_p3at : fprint_type (p3at) overload fprint with fprint_p3at fun fprint_p3atlst : fprint_type (p3atlst) overload fprint with fprint_p3atlst (* ****** ****** *) fun p3at_make_node ( loc: location , s2e: s2exp, node: p3at_node ) : p3at // end of [p3at_make_node] (* ****** ****** *) fun p3at_any ( loc: location, s2e: s2exp, d2v: d2var ) : p3at // end of [p3at_any] fun p3at_var ( loc: location, s2e: s2exp, d2v: d2var ) : p3at // end of [p3at_var] fun p3at_con ( loc: location , s2e: s2exp, pck: pckind, d2c: d2con, npf: int, arg: p3atlst ) : p3at // end of [p3at_con] fun p3at_int ( loc: location, s2f: s2exp, i: int ) : p3at // end of [p3at_int] fun p3at_intrep ( loc: location, s2f: s2exp, rep: string ) : p3at // end of [p3at_intrep] fun p3at_bool ( loc: location, s2f: s2exp, b: bool ) : p3at // end of [p3at_bool] fun p3at_char ( loc: location, s2f: s2exp, c: char ) : p3at // end of [p3at_char] fun p3at_float ( loc: location, s2f: s2exp, rep: string ) : p3at // end of [p3at_float] fun p3at_string ( loc: location, s2f: s2exp, str: string ) : p3at // end of [p3at_string] // fun p3at_i0nt ( loc: location, s2f: s2exp, x: i0nt ) : p3at // end of [p3at_i0nt] fun p3at_f0loat ( loc: location, s2f: s2exp, x: f0loat ) : p3at // end of [p3at_f0loat] // fun p3at_empty (loc: location, s2f: s2exp): p3at fun p3at_rec ( loc: location , s2f: s2exp , knd: int, npf: int, pck: pckind, lp3ts: labp3atlst ) : p3at // end of [p3at_rec] // fun p3at_lst ( loc: location , s2f: s2exp, lin: int, s2e_elt: s2exp, p3ts: p3atlst ) : p3at // end of [p3at_lst] fun p3at_refas ( loc: location, s2f: s2exp, d2v: d2var, p3t: p3at ) : p3at // end of [p3at_refas] fun p3at_exist ( loc: location, s2f: s2exp, s2vs: s2varlst, p3t: p3at ) : p3at // end of [p3at_exist] fun p3at_vbox (loc: location, s2f: s2exp, d2v: d2var): p3at // end of [p3at_vbox] fun p3at_ann ( loc: location, s2f: s2exp, p3t: p3at, ann: s2exp ) : p3at // end of [p3at_ann] fun p3at_errpat (loc: location, s2f: s2exp): p3at (* ****** ****** *) fun p3at_get_type (p3t: p3at): s2exp fun p3at_set_type (p3t: p3at, s2f: s2exp): void = "patsopt_p3at_set_type" // end of [p3at_set_type] fun p3at_get_dvaropt (p3t: p3at): d2varopt fun p3at_set_dvaropt (p3t: p3at, opt: d2varopt): void = "patsopt_p3at_set_dvaropt" // end of [p3at_set_dvaropt] fun p3at_get_type_left (p3t: p3at): s2expopt fun p3at_set_type_left (p3t: p3at, opt: s2expopt): void = "patsopt_p3at_set_type_left" // end of [p3at_set_type_left] (* ****** ****** *) // fun p3at_is_prf (p3t: p3at): bool // fun p3at_is_full (p3t: p3at): bool // (* ****** ****** *) fun p3at_is_lincon (p3t: p3at): bool fun p3at_is_unfold (p3t: p3at): bool (* ****** ****** *) datatype d3ecl_node = // | D3Cnone of () | D3Clist of d3eclist // // HX: needed for compiling abstract types // | D3Csaspdec of (s2aspdec) // | D3Creassume of (s2cst) // abstype // | D3Cextype of (string(*name*), s2exp(*def*)) | D3Cextvar of (string(*name*), d3exp(*def*)) | D3Cextcode of (int(*knd*), int(*pos*), string(*code*)) // | D3Cexndecs of (d2conlst) // HX: exception decls | D3Cdatdecs of (int(*knd*), s2cstlst) // HX: DT decls // | D3Cdcstdecs of (int(*0/1:sta/ext*), dcstkind, d2cstlst) // | D3Cimpdec of ( int(*knd*), i3mpdec // knd=0/1 : implement/primplmnt ) // end of [D3Cimpdec] // | D3Cfundecs of (funkind, s2qualst(*decarg*), f3undeclst) // | D3Cvaldecs of (valkind, v3aldeclst) | D3Cvaldecs_rec of (valkind, v3aldeclst) // | D3Cvardecs of (v3ardeclst) // local variable declarations // end of [D3Cvardecs] | D3Cprvardecs of (prv3ardeclst) // local proof variable declarations // end of [D3Cprvardecs] // | D3Cinclude of (int(*knd*), d3eclist) (* file inclusion *) // | D3Cstaload of ( symbolopt, filename, int(*flag*), filenv, int(*loaded*) ) (* end of [D3Cstaload] *) // | D3Cstaloadloc of (filename(*pfil*), symbol(*nspace*), filenv) // | D3Cdynload of (filename) // | D3Clocal of (d3eclist(*head*), d3eclist(*body*)) // end of [d3ecl_node] and d3exp_node = // | D3Ecst of (d2cst) // dynamic constants | D3Evar of (d2var) // dynamic variables // | D3Eint of (int) | D3Eintrep of (string(*rep*)) | D3Ebool of (bool) | D3Echar of (char) | D3Efloat of string(*rep*) | D3Estring of string(*val*) // | D3Ei0nt of i0nt | D3Ef0loat of f0loat // | D3Ecstsp of ($SYN.cstsp) // | D3Etyrep of (s2exp) // $tyrep(...) // | D3Eliteral of (d3exp) // $literal: int, float, string // | D3Etop of () // unspecified value | D3Eempty of () // the void-value of void-type // | D3Eextval of (string(*name*)) | D3Eextfcall of (string(*fun*), d3explst(*arg*)) | D3Eextmcall of (d3exp(*obj*), string(*mtd*), d3explst(*arg*)) // | D3Econ of (d2con, int(*npf*), d3explst(*arg*)) // | D3Etmpcst of (d2cst, t2mpmarglst) | D3Etmpvar of (d2var, t2mpmarglst) // | D3Efoldat of (d3exp) | D3Efreeat of (d3exp) // | D3Eitem of (d2itm, t2mpmarglst) // temporary use // end of [D3Eitem] // | D3Elet of (d3eclist, d3exp) // | D3Eapp_sta of d3exp // static application | D3Eapp_dyn of (d3exp, int(*npf*), d3explst) // | D3Eif of ( d3exp(*cond*), d3exp(*then*), d3exp(*else*) ) // end of [D3Eif] | D3Esif of ( s2exp(*cond*), d3exp(*then*), d3exp(*else*) ) // end of [D3Esif] // | D3Ecase of ( caskind, d3explst(*values*), c3laulst(*clauses*) ) (* end of [D3Ecase] *) | D3Escase of ( s2exp(*static-value*), sc3laulst(*static-clauses*) ) (* end of [D3Escase] *) // | D3Eifcase of (int(*else*), i3fclist) // | D3Elst of (* list expression *) (int(*lin*), s2exp(*elt*), d3explst) | D3Etup of (* tuple expression *) (int(*tupknd*), int(*npf*), d3explst) | D3Erec of (* record expression *) (int(*recknd*), int(*npf*), labd3explst) | D3Eseq of (d3explst) // sequencing // | D3Eselab of (d3exp, d3lablst) // record/tuple field selection // | D3Eptrofvar of (d2var) // taking the address of | D3Eptrofsel of (d3exp, s2exp(*root*), d3lablst) // taking the address of // | D3Eviewat of (d3exp, d3lablst) // taking the atview of // it is to be erased // | D3Erefarg of // refval=1/0: call-by-ref/val argument // freeknd=1/0: to be freed or not after call (int(*refval*), int(*freeknd*), d3exp) // end of [D3Erefarg] // | D3Esel_var of (d2var, s2exp(*root*), d3lablst) // call-by-val/ref | D3Esel_ptr of (d3exp, s2exp(*root*), d3lablst) // pointed record/tuple field selection | D3Esel_ref of (d3exp, s2exp(*root*), d3lablst) // referenced record/tuple field selection // | D3Eassgn_var of (d2var(*left*), s2exp(*root*), d3lablst, d3exp(*right*)) | D3Eassgn_ptr of (d3exp(*left*), s2exp(*root*), d3lablst, d3exp(*right*)) | D3Eassgn_ref of (d3exp(*left*), s2exp(*root*), d3lablst, d3exp(*right*)) // | D3Exchng_var of (d2var(*left*), s2exp(*root*), d3lablst, d3exp(*right*)) | D3Exchng_ptr of (d3exp(*left*), s2exp(*root*), d3lablst, d3exp(*right*)) | D3Exchng_ref of (d3exp(*left*), s2exp(*root*), d3lablst, d3exp(*right*)) // | D3Eviewat_assgn of (d3exp, d3lablst, d3exp) // returing the atview of // it is to be erased // | D3Earrpsz of (s2exp(*elt*), d3explst, int(*size*)) | D3Earrinit of // For instance, @[int](1,2,3) (s2exp(*elt*), d3exp(*asz*), d3explst(*elt*)) // | D3Eraise of (d3exp) // HX: raised exception // | D3Eeffmask of (s2eff, d3exp) // $effmask(s2eff, d3exp) // | D3Evararg of (d3explst) // $vararg: variadicity // | D3Evcopyenv of (int(*knd*), d2var) // $vcopyenv_v/vcopyenv_vt // | D3Etempenver of (d2varlst) // $tempenver for environvars // | D3Eann_type of (d3exp, s2exp) // HX: annotated with type // | D3Elam_dyn of // dynamic abstraction (int(*lin*), int(*npf*), p3atlst, d3exp) | D3Elaminit_dyn of // dynamic flat funtion closure (int(*lin*), int(*npf*), p3atlst, d3exp) | D3Elam_sta of // static abstraction (s2varlst(*s2vs*), s2explst(*s2ps*), d3exp) | D3Elam_met of (s2explst(*met*), d3exp) // term. metric // | D3Efix of ( int(*knd: 0/1: flat/boxed*), d2var(*fixvar*), d3exp(*def*) ) // end of [D3Efix] // | D3Edelay of d3exp(*eval*) // delayed evaluation | D3Eldelay of (d3exp(*eval*), d3exp(*free*)) // delayed evaluation // end of [D3Eldelay] // | D3Elazyeval of (int(*lin*), d3exp) // lazy-value evaluation // | D3Eloop of (* for/while-loops *) ( d3expopt(*init*), d3exp(*test*), d3expopt(*post*), d3exp(*body*) ) | D3Eloopexn of int(*knd*) (* knd=0/1: break/continue *) // | D3Etrywith of (d3exp(*try-exp*), c3laulst(*with-clauses*)) // | D3Esolverify of (s2exp) // HX: $solver_verify // | D3Eerrexp of ((*void*)) // HX: indication of error // end of [d3exp_node] // end of [datatype] and d3lab_node = | D3LABlab of (label) | D3LABind of (d3explst) // end of [d3lab_node] where d3ecl = '{ d3ecl_loc= location, d3ecl_node= d3ecl_node } // end of [d3ecl] and d3eclist = List (d3ecl) and d3eclistopt = Option (d3eclist) and d3exp = '{ d3exp_loc= location , d3exp_type= s2exp // HX: it may still be s2Var!!! , d3exp_node= d3exp_node } (* end of [d3exp] *) and d3explst = List (d3exp) and d3expopt = Option (d3exp) and labd3exp = dl0abeled (d3exp) and labd3explst = List (labd3exp) (* ****** ****** *) and d3lab = '{ d3lab_loc= location , d3lab_node= d3lab_node , d3lab_overld= d2symopt , d3lab_overld_app= d3expopt } (* end of [d3lab] *) and d3lablst = List (d3lab) (* ****** ****** *) and i3fcl = '{ // i3fcl_loc= location , i3fcl_test= d3exp, i3fcl_body= d3exp // } (* end of [i3fcl] *) and i3fclist = List(i3fcl) (* ****** ****** *) and gm3at = '{ gm3at_loc= location , gm3at_exp= d3exp , gm3at_pat= p3atopt } (* end of [gm3at] *) and gm3atlst = List (gm3at) and c3lau (n:int) = '{ c3lau_loc= location , c3lau_pat= list (p3at, n) , c3lau_gua= gm3atlst // clause guard , c3lau_seq= int // sequentiality , c3lau_neg= int // negativativity , c3lau_body= d3exp // expression body } (* end of [c3lau] *) and c3lau = [n:nat] c3lau (n) and c3laulst (n:int) = List (c3lau (n)) and c3laulst = [n:nat] c3laulst (n) and c3laulst_vt (n:int) = List_vt (c3lau (n)) and sc3lau = '{ sc3lau_loc= location , sc3lau_pat= sp2at , sc3lau_body= d3exp } (* end of [sc3lau] *) and sc3laulst = List (sc3lau) (* ****** ****** *) and i3mpdec = '{ i3mpdec_loc= location , i3mpdec_cst= d2cst , i3mpdec_imparg= s2varlst , i3mpdec_tmparg= s2explstlst , i3mpdec_def= d3exp } (* end of [i3mpdec] *) (* ****** ****** *) and f3undec = '{ f3undec_loc= location , f3undec_var= d2var , f3undec_def= d3exp } (* end of [f3undec] *) and f3undeclst = List f3undec (* ****** ****** *) and v3aldec = '{ v3aldec_loc= location , v3aldec_pat= p3at , v3aldec_def= d3exp } (* end of [v3aldec] *) and v3aldeclst = List (v3aldec) (* ****** ****** *) and v3ardec = '{ v3ardec_loc= location , v3ardec_knd= int // knd=0/1:var/ptr , v3ardec_dvar_var= d2var , v3ardec_dvar_view= d2var , v3ardec_type= s2exp // type annotation , v3ardec_init= d3expopt // value for initialization , v3ardec_dvaropt= d2varopt // address of variable } (* end of [v3ardec] *) and v3ardeclst = List (v3ardec) (* ****** ****** *) and prv3ardec = '{ prv3ardec_loc= location , prv3ardec_dvar= d2var, prv3ardec_type= s2exp, prv3ardec_init= d3exp } (* end of [prv3ardec] *) and prv3ardeclst = List (prv3ardec) (* ****** ****** *) // fun d3exp_get_type (d3e: d3exp): s2exp // fun d3exp_set_type (d3e: d3exp, s2f: s2exp): void = "ext#patsopt_d3exp_set_type" // end of [d3exp_set_type] // (* ****** ****** *) // fun d3explst_get_type (d3es: d3explst): s2explst fun d3explst_get_labtype (d3es: d3explst): labs2explst // (* ****** ****** *) fun d3exp_is_prf (d3e: d3exp): bool fun d3exp_isnot_prf (d3e: d3exp): bool (* ****** ****** *) // fun print_d3exp(d3e: d3exp): void fun prerr_d3exp(d3e: d3exp): void fun fprint_d3exp : fprint_type (d3exp) fun fprint_d3explst : fprint_type (d3explst) // overload print with print_d3exp overload prerr with prerr_d3exp overload fprint with fprint_d3exp // (* ****** ****** *) fun d3exp_var (loc: location, s2f: s2exp, d2v: d2var): d3exp // end of [d3exp_var] (* ****** ****** *) fun d3exp_int (loc: location, s2f: s2exp, i: int) : d3exp // end of [d3exp_int] fun d3exp_intrep (loc: location, s2f: s2exp, rep: string) : d3exp // end of [d3exp_intrep] fun d3exp_bool (loc: location, s2f: s2exp, b: bool): d3exp // end of [d3exp_bool] fun d3exp_char (loc: location, s2f: s2exp, c: char): d3exp // end of [d3exp_char] fun d3exp_string (loc: location, s2f: s2exp, str: string): d3exp // end of [d3exp_string] fun d3exp_float (loc: location, s2f: s2exp, rep: string): d3exp // end of [d3exp_float] (* ****** ****** *) fun d3exp_i0nt ( loc: location, s2f: s2exp, x: i0nt ) : d3exp // end of [d3exp_i0nt] fun d3exp_f0loat (loc: location, s2f: s2exp, x: f0loat): d3exp // end of [d3exp_float] (* ****** ****** *) fun d3exp_top (loc: location, s2f: s2exp): d3exp fun d3exp_empty (loc: location, s2f: s2exp): d3exp (* ****** ****** *) fun d3exp_cstsp (loc: location, s2f: s2exp, x: $SYN.cstsp): d3exp // end of [d3exp_cstsp] (* ****** ****** *) // fun d3exp_tyrep (loc: location, s2f: s2exp, s2e_rep: s2exp): d3exp // end of [d3exp_tyrep] // fun d3exp_literal (loc: location, s2f: s2exp, d3e_lit: d3exp): d3exp // end of [d3exp_literal] // (* ****** ****** *) // fun d3exp_extval (loc: location, s2f: s2exp, name: string): d3exp // fun d3exp_extfcall ( loc: location, s2f: s2exp, _fun: string, _arg: d3explst ) : d3exp // end of [d3exp_extfcall] // fun d3exp_extmcall ( loc: location, s2f: s2exp, _obj: d3exp, _mtd: string, _arg: d3explst ) : d3exp // end of [d3exp_extmcall] // (* ****** ****** *) fun d3exp_cst (loc: location, s2f: s2exp, d2c: d2cst): d3exp // end of [d3exp_cst] fun d3exp_con ( loc: location , s2f_res: s2exp, d2c: d2con, npf: int, d3es: d3explst ) : d3exp // end of [d3exp_con] (* ****** ****** *) fun d3exp_foldat (loc: location, d3e: d3exp): d3exp fun d3exp_freeat (loc: location, d3e: d3exp): d3exp (* ****** ****** *) fun d3exp_tmpcst ( loc: location, s2f: s2exp, d2c: d2cst, t2mas: t2mpmarglst ) : d3exp // end of [d3exp_tmpcst] fun d3exp_tmpvar ( loc: location, s2f: s2exp, d2v: d2var, t2mas: t2mpmarglst ) : d3exp // end of [d3exp_tmpvar] (* ****** ****** *) fun d3exp_item ( loc: location, s2f: s2exp, d2i: d2itm, t2mas: t2mpmarglst ) : d3exp // end of [d3exp_item] (* ****** ****** *) fun d3exp_let (loc: location, d3cs: d3eclist, d3e: d3exp): d3exp // end of [d3exp_let] (* ****** ****** *) fun d3exp_app_sta (loc: location, s2f: s2exp, d3e: d3exp): d3exp // end of [d3exp_app_sta] fun d3exp_app_unista (loc: location, s2f: s2exp, d3e: d3exp): d3exp // end of [d3exp_app_unista] fun d3exp_app_dyn ( loc: location , s2f: s2exp, _fun: d3exp, npf: int, _arg: d3explst ) : d3exp // end of [d3exp_app_dyn] (* ****** ****** *) fun d3exp_lst ( loc: location , s2f0: s2exp, lin: int, s2f_elt: s2exp, d3es: d3explst ) : d3exp // end of [d3exp_lst] fun d3exp_tup ( loc: location , s2f0: s2exp, tupknd: int, npf: int, d3es: d3explst ) : d3exp // end of [d3exp_tup] fun d3exp_rec ( loc: location , s2f0: s2exp, recknd: int, npf: int, ld3es: labd3explst ) : d3exp // end of [d3exp_rec] fun d3exp_seq (loc: location, s2f: s2exp, d3es: d3explst): d3exp // end of [d3exp_seq] (* ****** ****** *) // fun d3exp_if ( loc: location , s2e_if: s2exp , _cond: d3exp, _then: d3exp, _else: d3exp ) : d3exp // end of [d3exp_if] // fun d3exp_sif ( loc: location , s2e_sif: s2exp , _cond: s2exp, _then: d3exp, _else: d3exp ) : d3exp // end of [d3exp_sif] // (* ****** ****** *) fun d3exp_ifcase ( loc: location , s2e_if: s2exp, knd: int, ifcls: i3fclist ) : d3exp // end of [d3exp_ifcase] (* ****** ****** *) // fun d3exp_case ( loc: location , s2e_case: s2exp , knd: caskind, d3es: d3explst, c3ls: c3laulst ) : d3exp // end of [d3exp_case] // fun d3exp_scase ( loc: location , s2e_scase: s2exp, s2e_val: s2exp, sc3ls: sc3laulst ) : d3exp // end of [d3exp_scase] // (* ****** ****** *) fun d3exp_sel_var ( loc: loc_t , s2e: s2exp, d2v: d2var, s2rt: s2exp, d3ls: d3lablst ) : d3exp // end of [d3exp_sel_var] fun d3exp_sel_ptr ( loc: loc_t , s2e: s2exp, d3e: d3exp, s2rt: s2exp, d3ls: d3lablst ) : d3exp // end of [d3exp_sel_ptr] fun d3exp_sel_ref ( loc: loc_t , s2e: s2exp, d3e: d3exp, s2rt: s2exp, d3ls: d3lablst ) : d3exp // end of [d3exp_sel_ref] (* ****** ****** *) fun d3exp_assgn_var ( loc: loc_t , d2v_l: d2var, s2rt: s2exp, d3ls: d3lablst, d3e_r: d3exp ) : d3exp // end of [d3exp_assgn_var] fun d3exp_assgn_ptr ( loc: loc_t , d3e_l: d3exp, s2rt: s2exp, d3ls: d3lablst, d3e_r: d3exp ) : d3exp // end of [d3exp_assgn_ptr] fun d3exp_assgn_ref ( loc: loc_t , d3e_l: d3exp, s2rt: s2exp, d3ls: d3lablst, d3e_r: d3exp ) : d3exp // end of [d3exp_assgn_ref] (* ****** ****** *) fun d3exp_xchng_var ( loc: loc_t , d2v_l: d2var, s2rt: s2exp, d3ls: d3lablst, d3e_r: d3exp ) : d3exp // end of [d3exp_xchng_var] fun d3exp_xchng_ptr ( loc: loc_t , d3e_l: d3exp, s2rt: s2exp, d3ls: d3lablst, d3e_r: d3exp ) : d3exp // end of [d3exp_xchng_ptr] fun d3exp_xchng_ref ( loc: loc_t , d3e_l: d3exp, s2rt: s2exp, d3ls: d3lablst, d3e_r: d3exp ) : d3exp // end of [d3exp_xchng_ref] (* ****** ****** *) fun d3exp_refarg ( loc: loc_t, s2e: s2exp, refval: int, freeknd: int, d3e: d3exp ) : d3exp // end of [d3exp_refarg] (* ****** ****** *) fun d3exp_arrpsz ( loc: loc_t , s2e_arrpsz: s2exp, elt: s2exp, d3es_elt: d3explst, asz: int ) : d3exp // end of [d3exp_arrpsz] fun d3exp_arrinit ( loc: loc_t , s2e_arr: s2exp, elt: s2exp, d3e_asz: d3exp, d3es_elt: d3explst ) : d3exp // end of [d3exp_arrinit] (* ****** ****** *) fun d3exp_selab (loc: loc_t, s2f: s2exp, d3e: d3exp, d3ls: d3lablst): d3exp // end of [d3exp_selab] (* ****** ****** *) // fun d3exp_ptrofvar(loc: loc_t, s2f: s2exp, d2v: d2var): d3exp // fun d3exp_ptrofsel ( loc: loc_t, s2f: s2exp, d3e: d3exp, s2rt: s2exp, d3ls: d3lablst ) : d3exp // end of [d3exp_ptrofsel] // (* ****** ****** *) fun d3exp_viewat ( loc: loc_t, s2at: s2exp, d3e: d3exp, d3ls: d3lablst ) : d3exp // end of [d3exp_viewat] fun d3exp_viewat_assgn ( loc: loc_t, d3e_l: d3exp, d3ls: d3lablst, d3e_r: d3exp ) : d3exp // end of [d3exp_viewat_assgn] (* ****** ****** *) fun d3exp_raise (loc: location, s2f: s2exp, d3e: d3exp): d3exp // end of [d3exp_raise] (* ****** ****** *) fun d3exp_effmask (loc: location, s2fe: s2eff, d3e: d3exp): d3exp // end of [d3exp_effmask] (* ****** ****** *) fun d3exp_vararg ( loc: location, s2f: s2exp, d3es: d3explst ) : d3exp // end of [d3exp_vararg] (* ****** ****** *) // fun d3exp_vcopyenv ( loc: location, s2f: s2exp, knd: int, d2v: d2var ) : d3exp // end of [d3exp_vcopyenv] // (* ****** ****** *) // fun d3exp_tempenver (loc: location, s2f: s2exp, d2vs: d2varlst): d3exp // (* ****** ****** *) fun d3exp_lam_dyn ( loc: location, typ: s2exp , lin: int, npf: int, arg: p3atlst, body: d3exp ) : d3exp // end of [d3exp_lam_dyn] fun d3exp_laminit_dyn ( loc: location, typ: s2exp , lin: int, npf: int, arg: p3atlst, body: d3exp ) : d3exp // end of [d3exp_laminit_dyn] (* ****** ****** *) fun d3exp_lam_sta ( loc: location, typ: s2exp , s2vs: s2varlst, s2ps: s2explst, body: d3exp ) : d3exp // end of [d3exp_lam_sta] fun d3exp_lam_met (loc: location, met: s2explst, body: d3exp): d3exp // end of [d3exp_lam_met] (* ****** ****** *) fun d3exp_fix ( loc: location , s2e_def: s2exp, knd: int, f: d2var, d3e_def: d3exp ) : d3exp // end of [d3exp_fix] (* ****** ****** *) // fun d3exp_delay (loc: location, s2e: s2exp, _eval: d3exp): d3exp fun d3exp_ldelay ( loc: location, s2e: s2exp, _eval: d3exp, _free: d3exp ) : d3exp // end of [d3exp_ldelay] // fun d3exp_lazyeval ( loc: location, s2e_res: s2exp, lin: int, delayed: d3exp ) : d3exp // end of [d3exp_lazyeval] // (* ****** ****** *) fun d3exp_loop ( loc: location , init: d3expopt, test: d3exp, post: d3expopt, body: d3exp ) : d3exp // end of [d3exp_loop] fun d3exp_loopexn (loc: location, knd: int): d3exp (* ****** ****** *) fun d3exp_trywith ( loc: location, d3e: d3exp, c3ls: c3laulst ) : d3exp // end of [d3exp_trywith] (* ****** ****** *) fun d3exp_ann_type (loc: location, d3e: d3exp, s2f: s2exp): d3exp // end of [d3exp_ann_type] (* ****** ****** *) // fun d3exp_solverify (loc: location, s2f: s2exp): d3exp // (* ****** ****** *) fun d3exp_errexp (loc: location): d3exp fun d3exp_errexp_void (loc: location): d3exp (* ****** ****** *) // fun d3lab_lab (loc: location, lab: label, opt: d2symopt): d3lab // fun d3lab_ind (loc: location, ind: d3explst): d3lab // (* ****** ****** *) fun d3lab_set_overld_app (d3l: d3lab, opt: d3expopt): void = "patsopt_d3lab_set_overld_app" // end of [d3lab_set_overld_app] (* ****** ****** *) fun i3fcl_make ( loc: location, test: d3exp, body: d3exp ) : i3fcl // end of [i3fcl_make] (* ****** ****** *) fun gm3at_make ( loc: location, d3e: d3exp, opt: p3atopt ) : gm3at // end of [gm3at_make] fun c3lau_make{n:nat} ( loc: location , p3ts: list (p3at, n) , gua: gm3atlst, seq: int, neg: int, body: d3exp ): c3lau (n) // end of [c3lau_make] fun sc3lau_make ( loc: location, sp2t: sp2at, d3e: d3exp ) : sc3lau // end of [sc3lau_make] (* ****** ****** *) fun i3mpdec_make ( loc: location, d2c: d2cst , imparg: s2varlst, tmparg: s2explstlst, def: d3exp ) : i3mpdec // end of [i3mpdec_make] (* ****** ****** *) fun f3undec_make ( loc: location, d2v: d2var, def: d3exp ) : f3undec // end of [f3undec_make] fun v3aldec_make ( loc: location, p3t: p3at, def: d3exp ) : v3aldec // end of [v3aldec_make] (* ****** ****** *) fun v3ardec_make ( loc: location , knd: int (*0/1:var/ptr*) , d2v: d2var, d2vw: d2var , type: s2exp, init: d3expopt, d2vopt: d2varopt ) : v3ardec // end of [v3ardec_make] fun prv3ardec_make ( loc: location, d2v: d2var, s2e0: s2exp, ini: d3exp ) : prv3ardec // end of [prv3ardec_make] (* ****** ****** *) fun d3ecl_make_node (loc: location, node: d3ecl_node): d3ecl // end of [d3ecl_make_node] (* ****** ****** *) fun print_d3ecl (d3c: d3ecl): void overload print with print_d3ecl fun prerr_d3ecl (d3c: d3ecl): void overload prerr with prerr_d3ecl fun fprint_d3ecl : fprint_type (d3ecl) (* ****** ****** *) fun d3ecl_none (loc: location): d3ecl fun d3ecl_list (loc: location, xs: d3eclist): d3ecl (* ****** ****** *) // fun d3ecl_saspdec(loc: location, d2c: s2aspdec): d3ecl fun d3ecl_reassume(loc: location, s2c_abs: s2cst): d3ecl // (* ****** ****** *) fun d3ecl_extype (loc: location, name: string, s2e_def: s2exp): d3ecl // end of [d3ecl_extype] fun d3ecl_extvar (loc: location, name: string, d3e_def: d3exp): d3ecl // end of [d3ecl_extvar] fun d3ecl_extcode (loc: location, knd: int, pos: int, code: string): d3ecl // end of [d3ecl_extcode] (* ****** ****** *) fun d3ecl_datdecs (loc: location, knd: int, s2cs: s2cstlst): d3ecl // end of [d3ecl_datdecs] (* ****** ****** *) fun d3ecl_exndecs (loc: location, d2cs: d2conlst): d3ecl (* ****** ****** *) fun d3ecl_dcstdecs ( loc: location, knd: int, dck: dcstkind, d2cs: d2cstlst ) : d3ecl // end of [d3ecl_dcstdecs] (* ****** ****** *) fun d3ecl_impdec (loc: location, knd: int, d3c: i3mpdec) : d3ecl // end of [d3ecl_impdec] (* ****** ****** *) fun d3ecl_fundecs ( loc: location, knd: funkind, decarg: s2qualst, f3ds: f3undeclst ) : d3ecl // end of [d3ecl_fundecs] fun d3ecl_valdecs ( loc: location, knd: valkind, v3ds: v3aldeclst ) : d3ecl // end of [d3ecl_valdecs] fun d3ecl_valdecs_rec ( loc: location, knd: valkind, v3ds: v3aldeclst ) : d3ecl // end of [d3ecl_valdecs_rec] fun d3ecl_vardecs (loc: location, v3ds: v3ardeclst): d3ecl fun d3ecl_prvardecs (loc: location, v3ds: prv3ardeclst): d3ecl (* ****** ****** *) fun d3ecl_include (loc: location, stadyn: int, d3cs: d3eclist): d3ecl // end of [d3ecl_include] (* ****** ****** *) fun d3ecl_staload ( loc: location , idopt: symbolopt , cfil: filename, loadflag: int, fenv: filenv, loaded: int ) : d3ecl // end of [d2ecl_staload] fun d3ecl_staloadloc (loc: location, pfil: filename, nspace: symbol, fenv: filenv): d3ecl // end of [d3ecl_staloadloc] (* ****** ****** *) fun d3ecl_dynload (loc: location, cfil: filename): d3ecl (* ****** ****** *) fun d3ecl_local (loc: location, head: d3eclist, body: d3eclist): d3ecl // end of [d3ecl_local] (* ****** ****** *) (* end of [pats_dynexp3.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_tokbuf.cats0000644000175000017500000000354213431250607020652 0ustar brandonbrandon/* ******************************************************************* */ /* */ /* Applied Type System */ /* */ /* ******************************************************************* */ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (gmhwxi@gmail.com) // Start Time: March, 2011 // /* ****** ****** */ #ifndef POSTIATS_SRC_PATS_TOKBUF_CATS #define POSTIATS_SRC_PATS_TOKBUF_CATS /* ****** ****** */ #include "libats/CATS/linqueue_arr.cats" /* ****** ****** */ #include "pats_lexbuf.cats" /* ****** ****** */ typedef struct { // atslib_linqueue_arr_QUEUE tbuf ; // ats_uint_type ntok ; // the current token number // pats_lexbuf_struct lexbuf ; // for lexing // } pats_tokbuf_struct ; /* ****** ****** */ #endif // end of [POSTIATS_SRC_PATS_TOKBUF_CATS] /* ****** ****** */ /* end of [pats_tokbuf.cats] */ ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_util3.dats0000644000175000017500000004200013431250607022057 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) local fun aux_s2exp ( s2e0: s2exp, fvs: &s2varset_vt ) : void = let in // case+ s2e0.s2exp_node of // case+ // | S2Eint _ => () | S2Eintinf _ => () // | S2Efloat _ => () | S2Estring _ => () // | S2Ecst _ => () // | S2Eextype (_(*name*), s2ess) => aux_s2explstlst (s2ess, fvs) | S2Eextkind (_(*name*), s2ess) => aux_s2explstlst (s2ess, fvs) // | S2Evar s2v => { val () = fvs := s2varset_vt_add (fvs, s2v) } (* end of [S2Evar] *) // | S2EVar s2V => aux_s2Var (s2V, fvs) // | S2Ehole _ => () // | S2Edatcontyp (d2c, arg) => aux_s2explst (arg, fvs) | S2Edatconptr (d2c, rt, arg) => ( aux_s2exp (rt, fvs); aux_s2explst (arg, fvs) ) (* end of [S2Edatconptr] *) // | S2Eat(s2e1, s2e2) => ( aux_s2exp (s2e1, fvs); aux_s2exp (s2e2, fvs) ) (* end of [s2Eat] *) // | S2Eeff(s2fe) => aux_s2eff (s2fe, fvs) // | S2Esizeof(s2e) => aux_s2exp (s2e, fvs) // | S2Eeqeq(s2e1, s2e2) => ( aux_s2exp (s2e1, fvs); aux_s2exp (s2e2, fvs) ) (* end of [S2Eeqeq] *) // | S2Eproj (s2ae, s2te, s2ls) => { val () = aux_s2exp (s2ae, fvs) val () = aux_s2exp (s2te, fvs) val () = aux_s2lablst (s2ls, fvs) } (* end of [S2Eproj] *) // | S2Eapp(s2e, s2es_arg) => { val () = aux_s2exp (s2e, fvs) val () = aux_s2explst (s2es_arg, fvs) } (* end of [S2Eapp] *) // | S2Elam(s2vs, s2e_body) => let var fvs1 = s2varset_vt_nil () val () = aux_s2exp (s2e_body, fvs1) val () = fvs1 := s2varset_vt_delist (fvs1, s2vs) in fvs := s2varset_vt_union (fvs, fvs1) end // end of [S2Elam] // | S2Efun ( fc, lin, s2fe , npf, s2es_arg, s2e_res ) => { val () = aux_s2eff (s2fe, fvs) val () = ( aux_s2explst (s2es_arg, fvs); aux_s2exp (s2e_res, fvs) ) (* end of [val] *) } (* end of [S2Efun] *) // | S2Emetfun (opt, s2es, s2e) => ( aux_s2explst (s2es, fvs); aux_s2exp (s2e, fvs) ) (* end of [S2Emetfun] *) // | S2Emetdec (s2es1, s2es2) => ( aux_s2explst (s2es1, fvs); aux_s2explst (s2es2, fvs) ) (* end of [S2Emetdec] *) // | S2Etop(knd, s2e) => aux_s2exp (s2e, fvs) // | S2Ewithout(s2e_elt) => aux_s2exp (s2e_elt, fvs) // taken-out // | S2Etyarr (s2e_elt, s2es_dim) => ( aux_s2exp (s2e_elt, fvs); aux_s2explst (s2es_dim, fvs) ) (* end of [S2Etyarr] *) // | S2Etyrec(knd, npf, ls2es) => aux_labs2explst (ls2es, fvs) // | S2Einvar (s2e) => aux_s2exp (s2e, fvs) // | S2Erefarg (_, s2e) => aux_s2exp (s2e, fvs) // | S2Eexi(s2vs, s2ps, s2e) => aux_s2exp_exiuni (s2vs, s2ps, s2e, fvs) | S2Euni(s2vs, s2ps, s2e) => aux_s2exp_exiuni (s2vs, s2ps, s2e, fvs) // | S2Evararg s2e => aux_s2exp (s2e, fvs) // | S2Ewthtype (s2e, ws2es) => ( aux_s2exp (s2e, fvs); aux_wths2explst (ws2es, fvs) ) (* end of [S2Ewthtype] *) // | S2Eerrexp((*void*)) => () // end // end of [aux_s2exp] and aux_s2explst ( s2es0: s2explst, fvs: &s2varset_vt ) : void = case+ s2es0 of | list_cons (s2e, s2es) => ( aux_s2exp (s2e, fvs); aux_s2explst (s2es, fvs) ) // end of [list_cons] | list_nil () => () // end of [aux_s2explst] and aux_s2explstlst ( s2ess0: s2explstlst, fvs: &s2varset_vt ) : void = case+ s2ess0 of | list_cons (s2es, s2ess) => ( aux_s2explst (s2es, fvs); aux_s2explstlst (s2ess, fvs) ) // end of [list_cons] | list_nil () => () // end of [aux_s2explstlst] and aux_labs2explst ( ls2es0: labs2explst, fvs: &s2varset_vt ) : void = case+ ls2es0 of | list_cons (ls2e, ls2es) => let val SLABELED (_, _, s2e) = ls2e val () = aux_s2exp (s2e, fvs) in aux_labs2explst (ls2es, fvs) end // end of [list_cons] | list_nil () => () // end of [aux_labs2explst] and aux_wths2explst ( ws2es0: wths2explst, fvs: &s2varset_vt ) : void = ( case+ ws2es0 of | WTHS2EXPLSTnil () => () | WTHS2EXPLSTcons_invar (_, s2e, ws2es) => ( aux_s2exp (s2e, fvs); aux_wths2explst (ws2es, fvs) ) // end of [WTHS2EXPLSTcons_invar] | WTHS2EXPLSTcons_trans (_, s2e, ws2es) => ( aux_s2exp (s2e, fvs); aux_wths2explst (ws2es, fvs) ) // end of [WTHS2EXPLSTcons_trans] | WTHS2EXPLSTcons_none (ws2es) => aux_wths2explst (ws2es, fvs) ) // end of [aux_wths2explst] and aux_s2Var ( s2V: s2Var, fvs: &s2varset_vt ) : void = let val opt = s2Var_get_link(s2V) in case+ opt of | Some s2e => aux_s2exp (s2e, fvs) | None () => let val s2t = s2Var_get_srt(s2V) in s2Var_set_link(s2V, Some(s2exp_errexp(s2t))) end // end of [None] end // end of [aux_s2Var] and aux_s2exp_exiuni ( s2vs: s2varlst , s2ps: s2explst , s2e_body: s2exp , fvs: &s2varset_vt ) : void = let var fvs1 = s2varset_vt_nil () val () = aux_s2explst (s2ps, fvs1) val () = aux_s2exp (s2e_body, fvs1) val () = fvs1 := s2varset_vt_delist (fvs1, s2vs) in fvs := s2varset_vt_union (fvs, fvs1) end // end of [aux_s2exp_exiuni] and aux_s2lab ( s2l: s2lab, fvs: &s2varset_vt ) : void = case+ s2l of | S2LABlab _ => () | S2LABind (ind) => aux_s2explst (ind, fvs) // end of [aux_s2lab] and aux_s2lablst ( s2ls: s2lablst, fvs: &s2varset_vt ) : void = case+ s2ls of | list_cons (s2l, s2ls) => ( aux_s2lab (s2l, fvs); aux_s2lablst (s2ls, fvs) ) // end of [list_cons] | list_nil () => () // end of [aux_s2lablst] and aux_s2eff ( s2fe: s2eff, fvs: &s2varset_vt ) : void = case+ s2fe of | S2EFFset _ => () | S2EFFexp (s2e) => aux_s2exp (s2e, fvs) | S2EFFadd (s2fe1, s2fe2) => let val () = aux_s2eff (s2fe1, fvs) in aux_s2eff (s2fe2, fvs) end // end of [S2EFFadd] // end of [aux_s2eff] in (* in of [local] *) implement s2exp_freevars (s2e0) = fvs where { var fvs = s2varset_vt_nil () val () = aux_s2exp (s2e0, fvs) } // end of [s2exp_freevars] end // end of [local] (* ****** ****** *) local fun loop ( xs: s2Varlst, s2Vs2: s2Varset ) : bool = ( case+ xs of | list_cons (x, xs) => let val ismem = s2Varset_ismem (s2Vs2, x) in if ismem then true else loop (xs, s2Vs2) end | list_nil () => false ) // end of [loop] in (* in of [loop] *) fun s2Var_occurcheck_s2cst (s2V0: s2Var, s2c: s2cst): bool = let // val s2Vs2 = s2cst_get_sVarset (s2c) // val ismem = s2Varset_ismem (s2Vs2, s2V0) // in // if ismem then true else loop (s2Var_get_sVarlst (s2V0), s2Vs2) // end // end of [s2Var_occurcheck_s2cst] fun s2Var_occurcheck_s2var (s2V0: s2Var, s2v: s2var): bool = let (* val () = println! ("s2Var_occurcheck_s2cst: s2v = ", s2v) *) val s2Vs2 = s2var_get_sVarset (s2v) (* val () = println! ("s2Var_occurcheck_s2cst: s2Vs2 = ", s2Vs2) *) val ismem = s2Varset_ismem (s2Vs2, s2V0) // in // if ismem then true else loop (s2Var_get_sVarlst (s2V0), s2Vs2) // end // end of [s2Var_occurcheck_s2var] end // end of [local] (* ****** ****** *) local typedef aux2_type(a:type) = (s2Var, a, &int, &s2cstlst, &s2varlst, &s2Varlst) -> void // end of [typedef] extern fun aux2_s2cst : aux2_type (s2cst) extern fun aux2_s2var : aux2_type (s2var) extern fun aux2_s2Var : aux2_type (s2Var) extern fun aux2_s2exp : aux2_type (s2exp) extern fun aux2_s2explst : aux2_type (s2explst) extern fun aux2_s2explstlst : aux2_type (s2explstlst) extern fun aux2_s2eff : aux2_type (s2eff) extern fun aux2_s2lab : aux2_type (s2lab) extern fun aux2_s2lablst : aux2_type (s2lablst) extern fun aux2_labs2exp : aux2_type (labs2exp) extern fun aux2_labs2explst : aux2_type (labs2explst) extern fun aux2_wths2explst : aux2_type (wths2explst) (* ****** ****** *) fun auxlst {a:type} ( s2V0: s2Var , xs: List(a) , ans: &int, s2cs: &s2cstlst, s2vs: &s2varlst, s2Vs: &s2Varlst , fwork: aux2_type (a) ) : void = let // (* val = println! ("auxlst: s2V0 = ", s2V0) *) // in // case+ xs of | list_cons (x, xs) => let val () = fwork (s2V0, x, ans, s2cs, s2vs, s2Vs) // end of [val] in auxlst (s2V0, xs, ans, s2cs, s2vs, s2Vs, fwork) end // end of [list_cons] | list_nil () => () // end // end of [auxlst] (* ****** ****** *) implement aux2_s2cst ( s2V0, s2c, ans, s2cs, s2vs, s2Vs ) = let val found = s2Var_occurcheck_s2cst (s2V0, s2c) // end of [val] in if found then let val () = ans := ans + 1 in s2cs := list_cons (s2c, s2cs) end else () // end of [if] end // end of [aux2_s2cst] implement aux2_s2var ( s2V0, s2v, ans, s2cs, s2vs, s2Vs ) = let val found = s2Var_occurcheck_s2var (s2V0, s2v) in if found then let val () = ans := ans + 1 in s2vs := list_cons (s2v, s2vs) end else () // end of [if] end // end of [aux2_s2var] implement aux2_s2Var ( s2V0, s2V, ans, s2cs, s2vs, s2Vs ) = let val opt = s2Var_get_link (s2V) in // case+ opt of | Some (s2e) => aux2_s2exp (s2V0, s2e, ans, s2cs, s2vs, s2Vs) | None () => let val iseq = eq_s2Var_s2Var (s2V0, s2V) in if iseq then (ans := ans + 1) else s2Vs := list_cons (s2V, s2Vs) end // end of [None] // end // end of [aux2_s2Var] (* ****** ****** *) implement aux2_s2exp ( s2V0, s2e, ans, s2cs, s2vs, s2Vs ) = let // macdef f_s2cst (x) = aux2_s2cst (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) macdef f_s2var (x) = aux2_s2var (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) macdef f_s2Var (x) = aux2_s2Var (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) macdef f_s2exp (x) = aux2_s2exp (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) macdef f_s2explst (x) = aux2_s2explst (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) macdef f_s2explstlst (x) = aux2_s2explstlst (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) macdef f_s2eff (x) = aux2_s2eff (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) macdef f_s2lablst (x) = aux2_s2lablst (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) macdef f_labs2explst (x) = aux2_labs2explst (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) macdef f_wths2explst (x) = aux2_wths2explst (s2V0, ,(x), ans, s2cs, s2vs, s2Vs) // (* val () = println! ("aux2_s2exp: s2V0 = ", s2V0) val () = println! ("aux2_s2exp: s2e = ", s2e) val () = println! ("aux2_s2exp: ans = ", ans) val () = println! ("aux2_s2exp: s2cs = ", s2cs) val () = println! ("aux2_s2exp: s2vs = ", s2vs) val () = println! ("aux2_s2exp: s2Vs = ", s2Vs) *) // in (* in of [let] *) // case+ s2e.s2exp_node of // | S2Eint _ => () | S2Eintinf _ => () // | S2Efloat _ => () | S2Estring _ => () // | S2Ecst s2c => f_s2cst (s2c) // | S2Eextype (_(*name*), s2ess) => f_s2explstlst (s2ess) | S2Eextkind (_(*name*), s2ess) => f_s2explstlst (s2ess) // | S2Evar s2v => f_s2var (s2v) | S2EVar s2V => f_s2Var (s2V) // | S2Ehole _ => () // | S2Edatcontyp (d2c, s2es_arg) => f_s2explst (s2es_arg) | S2Edatconptr ( d2c, s2e_rt, s2es_arg ) => { val () = f_s2exp (s2e_rt) val () = f_s2explst (s2es_arg) } // end of [S2Edatconptr] // | S2Eat (s2e1, s2e2) => (f_s2exp (s2e1); f_s2exp (s2e2)) // | S2Esizeof (s2e) => f_s2exp (s2e) // | S2Eeff (s2fe) => f_s2eff (s2fe) | S2Eeqeq (s2e1, s2e2) => (f_s2exp (s2e1); f_s2exp (s2e2)) | S2Eproj ( s2ae, s2te, s2ls ) => (f_s2exp (s2ae); f_s2exp (s2te); f_s2lablst (s2ls)) // | S2Eapp ( s2e_fun, s2es_arg ) => { val () = f_s2exp (s2e_fun) val () = f_s2explst (s2es_arg) } // end of [S2Eapp] // | S2Elam (s2vs, s2e) => f_s2exp (s2e) // | S2Efun ( fc, lin, s2fe, npf, s2es_arg, s2e_res ) => ( f_s2eff(s2fe); f_s2explst(s2es_arg); f_s2exp(s2e_res) ) (* end of [S2Efun] *) | S2Emetfun (opt, s2es, s2e) => (f_s2explst (s2es); f_s2exp (s2e)) // end of [S2Emetfun] // | S2Emetdec (s2es1, s2es2) => (f_s2explst(s2es1); f_s2explst(s2es2)) // end of [S2Emetdec] // | S2Etop(_(*knd*), s2e) => f_s2exp (s2e) | S2Ewithout(s2e) => f_s2exp (s2e) // taken out by [view@] // | S2Etyarr ( s2e_elt, s2es_dim ) => (f_s2exp (s2e_elt); f_s2explst (s2es_dim)) | S2Etyrec(knd, npf, ls2es) => f_labs2explst (ls2es) // | S2Einvar(s2e) => f_s2exp (s2e) // | S2Erefarg(_, s2e) => f_s2exp (s2e) // | S2Eexi(s2vs, s2ps, s2e) => (f_s2explst(s2ps); f_s2exp(s2e)) | S2Euni(s2vs, s2ps, s2e) => (f_s2explst(s2ps); f_s2exp(s2e)) // | S2Evararg s2e => f_s2exp (s2e) // | S2Ewthtype(s2e, ws2es) => (f_s2exp(s2e); f_wths2explst(ws2es)) // | S2Eerrexp((*void*)) => ((*void*)) // end // end of [aux2_s2exp] implement aux2_s2explst (s2V0, xs, ans, s2cs, s2vs, s2Vs) = auxlst (s2V0, xs, ans, s2cs, s2vs, s2Vs, aux2_s2exp) // end of [aux2_s2explst] implement aux2_s2explstlst (s2V0, xss, ans, s2cs, s2vs, s2Vs) = auxlst (s2V0, xss, ans, s2cs, s2vs, s2Vs, aux2_s2explst) // end of [aux2_s2explstlst] (* ****** ****** *) implement aux2_s2eff (s2V0, s2fe, ans, s2cs, s2vs, s2Vs) = let (* val () = println! ("aux2_s2eff: s2V0 = ", s2V0) *) in // case+ s2fe of | S2EFFset _ => () | S2EFFexp (s2e) => aux2_s2exp (s2V0, s2e, ans, s2cs, s2vs, s2Vs) | S2EFFadd (s2fe1, s2fe2) => let val () = aux2_s2eff (s2V0, s2fe1, ans, s2cs, s2vs, s2Vs) // end of [val] val () = aux2_s2eff (s2V0, s2fe2, ans, s2cs, s2vs, s2Vs) // end of [val] in // nothing end // end of [S2EFFadd] // end // end of [aux2_s2eff] (* ****** ****** *) implement aux2_s2lab ( s2V0, s2l, ans, s2cs, s2vs, s2Vs ) = let in // case+ s2l of | S2LABlab _ => () | S2LABind (ind) => aux2_s2explst (s2V0, ind, ans, s2cs, s2vs, s2Vs) // end of [S2LABind] // end // end of [aux2_s2lab] implement aux2_s2lablst (s2V0, s2ls, ans, s2cs, s2vs, s2Vs) = auxlst (s2V0, s2ls, ans, s2cs, s2vs, s2Vs, aux2_s2lab) // end of [aux2_s2lablst] (* ****** ****** *) implement aux2_labs2exp ( s2V0, ls2e, ans, s2cs, s2vs, s2Vs ) = let val SLABELED (l, name, s2e) = ls2e in aux2_s2exp (s2V0, s2e, ans, s2cs, s2vs, s2Vs) end // end of [aux2_labs2exp] implement aux2_labs2explst (s2V0, xs, ans, s2cs, s2vs, s2Vs) = auxlst (s2V0, xs, ans, s2cs, s2vs, s2Vs, aux2_labs2exp) // end of [aux2_labs2explst] (* ****** ****** *) implement aux2_wths2explst ( s2V0, ws2es, ans, s2cs, s2vs, s2Vs ) = let // (* val () = println! ("aux2_wths2explst: s2V0 = ", s2V0) val () = println! ("aux2_wths2explst: ws2es = ", ws2es) *) // in // case+ ws2es of | WTHS2EXPLSTnil () => () | WTHS2EXPLSTcons_invar (_, s2e, ws2es) => let val () = aux2_s2exp (s2V0, s2e, ans, s2cs, s2vs, s2Vs) // end of [val] in aux2_wths2explst (s2V0, ws2es, ans, s2cs, s2vs, s2Vs) end | WTHS2EXPLSTcons_trans (_, s2e, ws2es) => let val () = aux2_s2exp (s2V0, s2e, ans, s2cs, s2vs, s2Vs) // end of [val] in aux2_wths2explst (s2V0, ws2es, ans, s2cs, s2vs, s2Vs) end | WTHS2EXPLSTcons_none (ws2es) => aux2_wths2explst (s2V0, ws2es, ans, s2cs, s2vs, s2Vs) // end // end of [aux2_wths2explst] in (* in of [local] *) implement s2Var_occurcheck_s2exp (s2V0, s2e) = let // var ans: int = 0 // recording violations var s2cs: s2cstlst = list_nil () // collecting violating s2cs var s2vs: s2varlst = list_nil () // collecting violating s2vs var s2Vs: s2Varlst = list_nil () // collecting unsolved s2Vs in s2e // val () = aux2_s2exp (s2V0, s2e, ans, s2cs, s2vs, s2Vs) // in @(ans, s2cs, s2vs, s2Vs) end // end of [s2Var_occurcheck_s2exp] end // end of [local] (* ****** ****** *) local fun ismem ( s2vs: s2varlst, s2v0: s2var ) : bool = let in case+ s2vs of | list_cons (s2v, s2vs) => if s2v = s2v0 then true else ismem (s2vs, s2v0) // end of [list_cons] | list_nil () => false end // end of [ismem] in (* in of [local] *) implement s2exp_isbot (s2e0) = let in // case+ s2e0.s2exp_node of // case+ // | S2Euni ( s2vs, s2ps, s2e2 ) => let val isnil = list_is_nil (s2ps) in if isnil then ( case+ s2e2.s2exp_node of | S2Evar (s2v) => ismem (s2vs, s2v) | _ => false ) else false // end of [if] end // end of [S2Euni] // | _ (* non-S2Euni *) => false // end // end of [s2exp_isbot] end // end of [local] implement s2exp_fun_isbot (s2e) = let in // case+ s2e.s2exp_node of // case+ // | S2Efun ( _, _, _, _, _, s2e_res ) => s2exp_isbot (s2e_res) // | S2Euni (_, _, s2e) => s2exp_fun_isbot (s2e) | S2Emetfun (_, _, s2e) => s2exp_fun_isbot (s2e) // | _ (* rest-of-S2E *) => false // end // end of [s2exp_fun_isbot] (* ****** ****** *) (* end of [pats_staexp2_util3.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_typerase_error.dats0000644000175000017500000000527213431250607022430 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: September, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_typerase.sats" (* ****** ****** *) viewtypedef trans4errlst_vt = List_vt (trans4err) (* ****** ****** *) local // val the_trans4errlst = ref (list_vt_nil) // fun the_trans4errlst_get (): trans4errlst_vt = let val (vbox pf | p) = ref_get_view_ptr (the_trans4errlst) val xs = !p val () = !p := list_vt_nil () in xs end // end of [the_trans4errlst_get] // in (* in of [local] *) implement the_trans4errlst_add (x) = () where { val (vbox pf | p) = ref_get_view_ptr (the_trans4errlst) val () = !p := list_vt_cons (x, !p) } // end of [the_trans4errlst_add] implement the_trans4errlst_finalize ((*argumentless*)) = { val xs = the_trans4errlst_get () // end of [val] val nxs = list_vt_length (xs) val ((*freed*)) = list_vt_free (xs) // (* val () = if nxs > 0 then { val () = fprintf ( stderr_ref , "patsopt(TYPERASE): there are [%i] errors in total.\n", @(nxs) ) (* end of [fprintf] *) } (* end of [if] *) // end of [val] // *) val () = if nxs > 0 then $raise($ERR.PATSOPT_TRANS4_EXN()) // end of [if] } (* end of [the_trans4errlst_finalize] *) end // end of [local] (* ****** ****** *) (* end of [pats_typerase_error.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp1.dats0000644000175000017500000006517613431250607020764 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_dynexp1" (* ****** ****** *) staload "./pats_syntax.sats" staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" (* ****** ****** *) #include "./pats_basics.hats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) implement p1at_make (loc, node) = '{ p1at_loc= loc, p1at_node= node } implement p1at_any (loc) = '{ p1at_loc= loc, p1at_node= P1Tany () } implement p1at_any2 (loc) = '{ p1at_loc= loc, p1at_node= P1Tany2 () } (* ****** ****** *) implement p1at_ide (loc, id) = '{ p1at_loc= loc, p1at_node= P1Tide (id) } implement p1at_dqid (loc, dq, id) = '{ p1at_loc= loc, p1at_node= P1Tdqid (dq, id) } (* ****** ****** *) implement p1at_int (loc, i) = '{ p1at_loc= loc, p1at_node= P1Tint (i) } implement p1at_intrep (loc, rep) = '{ p1at_loc= loc, p1at_node= P1Tintrep (rep) } implement p1at_char (loc, c) = '{ p1at_loc= loc, p1at_node= P1Tchar (c: char) } implement p1at_float (loc, rep) = '{ p1at_loc= loc, p1at_node= P1Tfloat (rep) } implement p1at_string (loc, str) = '{ p1at_loc= loc, p1at_node= P1Tstring (str) } (* ****** ****** *) implement p1at_i0nt (loc, x) = '{ p1at_loc= loc, p1at_node= P1Ti0nt (x) } // end of [p1at_i0nt] implement p1at_c0har (loc, x) = let val-$LEX.T_CHAR (c) = x.token_node in p1at_char (loc, c) end // end of [p1at_c0har] implement p1at_f0loat (loc, x) = '{ p1at_loc= loc, p1at_node= P1Tf0loat (x) } // end of [p1at_f0loat] implement p1at_s0tring (loc, x) = let val-$LEX.T_STRING (str) = x.token_node in p1at_string (loc, str) end // end of [p1at_s0tring] (* ****** ****** *) implement p1at_empty (loc) = '{ p1at_loc= loc, p1at_node= P1Tempty () } implement p1at_app_dyn ( loc, _fun, loc_arg, npf, _arg ) = '{ p1at_loc= loc , p1at_node= P1Tapp_dyn (_fun, loc_arg, npf, _arg) } // end of [p1at_app_dyn] implement p1at_app_sta (loc, _fun, _arg) = '{ p1at_loc= loc, p1at_node= P1Tapp_sta (_fun, _arg) } // end of [p1at_app_sta] (* ****** ****** *) (* implement p1at_list ( loc, npf, p1ts ) = let in // if npf >= 0 then p1at_make (loc, P1Tlist (npf, p1ts)) else (case+ p1ts of | list_cons (p1t, list_nil ()) => p1t | _ => p1at_make (loc, P1Tlist (npf, p1ts)) ) // end of [if] // end // end of [p1at_list] *) implement p1at_list (loc, npf, p1ts) = let // fun aux_ifany (p1t: p1at): p1at = let in // case+ p1t.p1at_node of | P1Tany () => p1at_any2 (p1t.p1at_loc) | _ => p1t end // end of [aux_ifany] // in // if npf >= 0 then p1at_make (loc, P1Tlist (npf, p1ts)) else (case+ p1ts of | list_cons ( p1t, list_nil () ) => ( case+ p1t.p1at_node of | P1Tlist (npf, d1es) => let val knd = TYTUPKIND_flt in p1at_tup (loc, knd, npf, p1ts) end // end of [P1Tlist] | _ => aux_ifany (p1t) ) // end of [list_cons] | _ => p1at_make (loc, P1Tlist (npf, p1ts)) ) // end of [if] // end // end of [p1at_list] (* ****** ****** *) implement p1at_tup (loc, knd, npf, p1ts) = '{ p1at_loc= loc, p1at_node= P1Ttup (knd, npf, p1ts) } implement p1at_rec (loc, knd, npf, lp1ts) = '{ p1at_loc= loc, p1at_node= P1Trec (knd, npf, lp1ts) } implement p1at_lst (loc, lin, p1ts) = '{ p1at_loc= loc, p1at_node= P1Tlst (lin, p1ts) } implement p1at_free (loc, p1t) = '{ p1at_loc= loc, p1at_node= P1Tfree (p1t) } implement p1at_unfold (loc, p1t) = '{ p1at_loc= loc, p1at_node= P1Tunfold (p1t) } implement p1at_refas (loc, id, locid, p1t) = '{ p1at_loc= loc, p1at_node= P1Trefas (id, locid, p1t) } implement p1at_exist (loc, arg, p1t) = '{ p1at_loc= loc, p1at_node= P1Texist (arg, p1t) } implement p1at_svararg (loc, arg) = '{ p1at_loc= loc, p1at_node= P1Tsvararg (arg) } implement p1at_ann (loc, p1t, ann) = p1at_make (loc, P1Tann (p1t, ann)) // end of [p1at_ann] implement p1at_errpat (loc) = p1at_make (loc, P1Terrpat ()) (* ****** ****** *) implement labp1at_norm (loc, l, p1t) = '{ labp1at_loc= loc, labp1at_node= LABP1ATnorm (l, p1t) } implement labp1at_omit (loc) = '{ labp1at_loc= loc, labp1at_node= LABP1ATomit () } (* ****** ****** *) implement p1at_make_e1xp (loc0, e0) = let // fun aux ( e0: e1xp ) : p1at = let (* // val () = println! ("p1at_make_e1xp: aux: e0 = ", e0)) // *) in // case+ e0.e1xp_node of // | E1XPide(id) => p1at_ide (loc0, id) // | E1XPint(int) => p1at_int (loc0, int) | E1XPintrep(rep) => p1at_intrep (loc0, rep) // | E1XPchar(chr) => p1at_char (loc0, chr) // | E1XPfloat(rep) => p1at_float (loc0, rep) | E1XPstring(str) => p1at_string (loc0, str) // | E1XPapp( e1, loc_arg, es2 ) => let val p1t1 = aux (e1) val p1ts2 = auxlst (es2) in p1at_app_dyn (loc0, p1t1, loc0, ~1(*npf*), p1ts2) // p1at_app_dyn end (* end of [E1XPapp] *) // | E1XPlist (es) => p1at_list (loc0, ~1(*npf*), auxlst (es)) // end of [E1XPlist] | E1XPv1al (v1) => p1at_make_v1al (loc0, v1) | E1XPnone ((*void*)) => p1at_empty (loc0) | _ (*rest*) => let val () = prerr_error1_loc (loc0) val () = prerr (": the expression [") val () = prerr_e1xp (e0) val () = prerrln! ("] cannot be translated into a legal pattern.") in p1at_errpat (loc0) end // end of [rest] // end // end of [aux] and auxlst ( es: e1xplst ) : p1atlst = case+ es of | list_cons (e, es) => list_cons (aux e, auxlst es) | list_nil () => list_nil () // end of [auxlst] in aux (e0) end // end of [p1at_make_e1xp] (* ****** ****** *) implement p1at_make_v1al (loc0, v0) = let in // case+ v0 of | V1ALint (i) => p1at_int (loc0, i) | V1ALchar (c) => p1at_char (loc0, c) | V1ALstring (str) => p1at_string (loc0, str) | _(*unsupported*) => p1at_errpat (loc0) // end // end of [p1at_make_v1al] (* ****** ****** *) implement e1xp_make_p1at (loc0, p1t0) = let // fun aux ( p1t0: p1at ) : e1xp = case+ p1t0.p1at_node of | P1Tide (id) => e1xp_ide (loc0, id) | P1Tint (int) => e1xp_int (loc0, int) | P1Tintrep (rep) => e1xp_intrep (loc0, rep) | P1Tchar (char) => e1xp_char (loc0, char) | P1Tapp_dyn (p1t_fun, _(*loc*), npf, p1ts_arg) => let val e_fun = aux (p1t_fun); val es_arg = auxlst (p1ts_arg) in e1xp_app (loc0, e_fun, loc0, es_arg) end | P1Tlist (_(*npf*), s1es) => e1xp_list (loc0, auxlst s1es) | _ => e1xp_err (loc0) (* end of [aux] *) // and auxlst ( p1ts0: p1atlst ) : e1xplst = case+ p1ts0 of | list_cons (p1t, p1ts) => list_cons (aux p1t, auxlst p1ts) | list_nil () => list_nil () (* end of [auxlst] *) // in aux (p1t0) end // end of [e1xp_make_p1at] (* ****** ****** *) implement i1nvarg_make ( loc, id, os1e ) = '{ i1nvarg_loc= loc, i1nvarg_sym= id, i1nvarg_type= os1e } // end of [i1nvarg_make] implement i1nvresstate_make (s1qs, arg) = '{ i1nvresstate_qua= s1qs, i1nvresstate_arg= arg } implement i1nvresstate_nil = i1nvresstate_make (list_nil (), list_nil ()) // end of [i1nvresstate_nil] (* ****** ****** *) implement loopi1nv_make ( loc, qua, met, arg, res ) = '{ loopi1nv_loc= loc , loopi1nv_qua= qua , loopi1nv_met= met , loopi1nv_arg= arg , loopi1nv_res= res } // end of [loopi1nv_make] implement loopi1nv_nil (loc) = let val qua = list_nil () val met = None () val arg = list_nil () in // loopi1nv_make (loc, qua, met, arg, i1nvresstate_nil) // end // end of [loopi1nv_nil] (* ****** ****** *) implement i1fcl_make (loc, test, body) = '{ i1fcl_loc= loc, i1fcl_test= test, i1fcl_body= body } (* end of [i1fcl_make] *) (* ****** ****** *) implement gm1at_make (loc, d1e, op1t) = '{ gm1at_loc= loc, gm1at_exp= d1e, gm1at_pat= op1t } // end of [gm1at_make] implement c1lau_make ( loc, p1ts, gua, seq, neg, body ) = '{ c1lau_loc= loc , c1lau_pat= p1ts , c1lau_gua= gua , c1lau_seq= seq , c1lau_neg= neg , c1lau_body= body } // end of [c1lau_make] implement sc1lau_make (loc, sp1t, body) = '{ sc1lau_loc= loc, sc1lau_pat= sp1t, sc1lau_body= body } (* ****** ****** *) // // HX: dynamic expressions // (* ****** ****** *) implement d1exp_make (loc, node) = '{ d1exp_loc= loc, d1exp_node= node } // end of [d1exp_make] (* ****** ****** *) implement d1exp_ide (loc, id) = d1exp_make (loc, D1Eide (id)) implement d1exp_opid (loc, id) = d1exp_ide (loc, id) implement d1exp_dqid (loc, dq, id) = d1exp_make (loc, D1Edqid (dq, id)) // end of [d1exp_dqid] (* ****** ****** *) implement d1exp_idext (loc, id) = d1exp_idextapp (loc, id, list_nil) implement d1exp_idextapp (loc, id, arg) = d1exp_make (loc, D1Eidextapp (id, arg)) // end of [d1exp_idexpapp] (* ****** ****** *) implement d1exp_int (loc, i) = d1exp_make (loc, D1Eint (i:int)) implement d1exp_intrep (loc, rep) = d1exp_make (loc, D1Eintrep (rep)) implement d1exp_char (loc, c) = d1exp_make (loc, D1Echar (c:char)) implement d1exp_float (loc, rep) = d1exp_make (loc, D1Efloat rep) implement d1exp_string (loc, str) = d1exp_make (loc, D1Estring (str)) (* ****** ****** *) implement d1exp_i0nt (loc, x) = d1exp_make (loc, D1Ei0nt (x)) implement d1exp_c0har (loc, x) = d1exp_make (loc, D1Ec0har (x)) implement d1exp_f0loat (loc, x) = d1exp_make (loc, D1Ef0loat (x)) implement d1exp_s0tring (loc, x) = d1exp_make (loc, D1Es0tring (x)) (* ****** ****** *) // implement d1exp_cstsp (loc, x) = d1exp_make(loc, D1Ecstsp(x)) // (* ****** ****** *) // implement d1exp_tyrep (loc, s1e) = d1exp_make(loc, D1Etyrep(s1e)) // (* ****** ****** *) // implement d1exp_literal (loc, lit) = d1exp_make(loc, D1Eliteral(lit)) // (* ****** ****** *) // implement d1exp_top(loc) = d1exp_make (loc, D1Etop ()) // implement d1exp_empty(loc) = d1exp_make (loc, D1Eempty ()) // (* ****** ****** *) // implement d1exp_extval (loc, _type, name) = d1exp_make (loc, D1Eextval (_type, name)) // implement d1exp_extfcall (loc, _type, _fun, _arg) = d1exp_make (loc, D1Eextfcall (_type, _fun, _arg)) // implement d1exp_extmcall (loc, _type, _obj, _mtd, _arg) = d1exp_make (loc, D1Eextmcall (_type, _obj, _mtd, _arg)) // (* ****** ****** *) implement d1exp_foldat (loc, s1as, d1e) = d1exp_make (loc, D1Efoldat (s1as, d1e)) implement d1exp_freeat (loc, s1as, d1e) = d1exp_make (loc, D1Efreeat (s1as, d1e)) (* ****** ****** *) implement d1exp_tmpid (loc, qid, tmparg) = d1exp_make (loc, D1Etmpid (qid, tmparg)) // end of [d1exp_tmpid] (* ****** ****** *) // implement d1exp_let (loc, d1cs, body) = d1exp_make (loc, D1Elet(d1cs, body)) // implement d1exp_where (loc, body, d1cs) = d1exp_make (loc, D1Ewhere(body, d1cs)) // (* ****** ****** *) implement d1exp_app_sta (loc, d1e, s1as) = d1exp_make (loc, D1Eapp_sta(d1e, s1as)) // end of [d1exp_app_sta] implement d1exp_app_dyn (loc, d1e, loc_arg, npf, d1es) = d1exp_make (loc, D1Eapp_dyn(d1e, loc_arg, npf, d1es)) // end of [d1exp_app_dyn] (* ****** ****** *) // implement d1exp_sing (loc, d1e) = ( case+ d1e.d1exp_node of | D1Eide _ => d1e | _(*non-D1Eide*) => d1exp_make (loc, D1Esing(d1e)) ) (* end of [d1exp_sing] *) // (* ****** ****** *) implement d1exp_list (loc, npf, d1es) = let in // if npf >= 0 then ( d1exp_make (loc, D1Elist (npf, d1es)) ) else ( case+ d1es of | list_cons ( d1e, list_nil () ) => ( case+ d1e.d1exp_node of | D1Elist (npf, d1es) => let val knd = TYTUPKIND_flt in d1exp_tup(loc, knd, npf, d1es) end // end of [D1Elist] | _(*non-list*) => d1exp_sing(loc, d1e) ) (* end of [list_sing] *) | _ (*non-list-sing*) => d1exp_make (loc, D1Elist(npf, d1es)) ) (* end of [if] *) // end // end of [d1exp_list] (* ****** ****** *) implement d1exp_ifhead (loc, inv, _cond, _then, _else) = d1exp_make (loc, D1Eifhead (inv, _cond, _then, _else)) // end of [d1exp_ifhead] implement d1exp_sifhead (loc, inv, _cond, _then, _else) = d1exp_make (loc, D1Esifhead (inv, _cond, _then, _else)) // end of [d1exp_sifhead] (* ****** ****** *) implement d1exp_ifcasehd (loc, inv, ifcls) = d1exp_make (loc, D1Eifcasehd (inv, ifcls)) // end of [d1exp_ifcasehd] (* ****** ****** *) implement d1exp_casehead (loc, knd, inv, d1es, c1las) = d1exp_make (loc, D1Ecasehead (knd, inv, d1es, c1las)) // end of [d1exp_casehead] implement d1exp_scasehead (loc, inv, s1e, c1las) = d1exp_make (loc, D1Escasehead (inv, s1e, c1las)) // end of [d1exp_scasehead] (* ****** ****** *) implement d1exp_lst (loc, knd, elt, d1es) = d1exp_make (loc, D1Elst (knd, elt, d1es)) implement d1exp_tup (loc, knd, npf, d1es) = d1exp_make (loc, D1Etup (knd, npf, d1es)) implement d1exp_rec (loc, knd, npf, ld1es) = d1exp_make (loc, D1Erec (knd, npf, ld1es)) implement d1exp_seq (loc, d1es) = d1exp_make (loc, D1Eseq (d1es)) (* ****** ****** *) implement d1exp_arrsub (loc, arr, loc_ind, ind) = d1exp_make (loc, D1Earrsub (arr, loc_ind, ind)) // end of [d1exp_arrsub] implement d1exp_arrpsz (loc, elt, ini) = d1exp_make (loc, D1Earrpsz (elt, ini)) // end of [d1exp_arrpsz] implement d1exp_arrinit (loc, elt, asz, ini) = d1exp_make (loc, D1Earrinit (elt, asz, ini)) // end of [d1exp_arrinit] (* ****** ****** *) implement d1exp_selab (loc, knd, d1e, d1l) = ( d1exp_make (loc, D1Eselab (knd, d1e, d1l)) ) // end of [d1exp_selab] (* ****** ****** *) // implement d1exp_ptrof (loc, d1e) = d1exp_make (loc, D1Eptrof (d1e)) implement d1exp_viewat (loc, d1e) = d1exp_make (loc, D1Eviewat (d1e)) // (* ****** ****** *) // implement d1exp_raise (loc, d1e) = d1exp_make (loc, D1Eraise (d1e)) // (* ****** ****** *) // implement d1exp_effmask (loc, efc, d1e) = let // val node = D1Eeffmask (efc, d1e) // in d1exp_make (loc, node) end (* end of [d1exp_effmask] *) // implement d1exp_effmask_arg (loc, knd, d1e) = let // val efc = ( case+ knd of | 0 => effcst_ntm | 1 => effcst_exn | 2 => effcst_ref | 3 => effcst_wrt | _ => effcst_all ) : effcst // end of [val] // in d1exp_effmask (loc, efc, d1e) end // end of [d1exp_effmask_arg] // (* ****** ****** *) // implement d1exp_vararg (loc, d1es) = d1exp_make(loc, D1Evararg(d1es)) // (* ****** ****** *) // implement d1exp_vcopyenv (loc, knd, d1e) = d1exp_make(loc, D1Evcopyenv(knd, d1e)) // (* ****** ****** *) // implement d1exp_showtype (loc, d1e) = d1exp_make(loc, D1Eshowtype(d1e)) // (* ****** ****** *) // implement d1exp_tempenver (loc, d1e) = d1exp_make(loc, D1Etempenver(d1e)) // (* ****** ****** *) implement d1exp_sexparg (loc, s1a) = d1exp_make(loc, D1Esexparg(s1a)) // end of [d1exp_sexparg] implement d1exp_exist (loc, s1a, d1e) = d1exp_make(loc, D1Eexist(s1a, d1e)) // end of [d1exp_exist] (* ****** ****** *) // implement d1exp_lam_dyn (loc, lin, p1t, d1e) = d1exp_make (loc, D1Elam_dyn(lin, p1t, d1e)) // implement d1exp_laminit_dyn (loc, lin, p1t, d1e) = d1exp_make (loc, D1Elaminit_dyn(lin, p1t, d1e)) // implement d1exp_lam_met (loc, loc_arg, s1es, d1e) = d1exp_make (loc, D1Elam_met(loc_arg, s1es, d1e)) // implement d1exp_lam_sta_ana (loc, loc_arg, s1v, d1e) = d1exp_make (loc, D1Elam_sta_ana(loc_arg, s1v, d1e)) // implement d1exp_lam_sta_syn (loc, loc_arg, s1qs, d1e) = d1exp_make (loc, D1Elam_sta_syn(loc_arg, s1qs, d1e)) // (* ****** ****** *) // implement d1exp_fix (loc, knd, id, d1e) = d1exp_make(loc, D1Efix(knd, id, d1e)) // (* ****** ****** *) // implement d1exp_delay (loc, knd, d1e_body) = d1exp_make (loc, D1Edelay(knd, d1e_body)) // (* ****** ****** *) implement d1exp_for ( loc, inv , ini, test, post, body ) = ( // d1exp_make (loc, D1Efor(inv, ini, test, post, body)) // ) (* end of [d1exp_for] *) implement d1exp_while ( loc, inv, test, body ) = d1exp_make (loc, D1Ewhile (inv, test, body)) // end of [d1exp_while] implement d1exp_loopexn (loc, knd) = d1exp_make (loc, D1Eloopexn (knd)) // end of [d1exp_loopexn] (* ****** ****** *) implement d1exp_trywith (loc, inv, d1e, c1las) = d1exp_make (loc, D1Etrywith (inv, d1e, c1las)) // end of [d1exp_trywith] (* ****** ****** *) // implement d1exp_ann_type (loc, d1e, s1e) = d1exp_make (loc, D1Eann_type (d1e, s1e)) // end of [d1exp_ann_type] // implement d1exp_ann_effc (loc, d1e, efc) = d1exp_make (loc, D1Eann_effc (d1e, efc)) // implement d1exp_ann_funclo (loc, d1e, fc0) = d1exp_make (loc, D1Eann_funclo (d1e, fc0)) // implement d1exp_ann_funclo_opt (loc, d1e, fc0) = ( // case+ d1e.d1exp_node of // case+ | D1Eann_funclo _ => d1e | _ (*non-D1Eann_funclo*) => d1exp_ann_funclo (loc, d1e, fc0) // ) (* end of [d1exp_ann_funclo_opt] *) // (* ****** ****** *) // implement d1exp_macsyn (loc, knd, d1e) = d1exp_make (loc, D1Emacsyn(knd, d1e)) // implement d1exp_macfun (loc, name, d1es) = d1exp_make (loc, D1Emacfun(name, d1es)) // (* ****** ****** *) // implement d1exp_solassert (loc, d1e) = d1exp_make(loc, D1Esolassert(d1e)) // implement d1exp_solverify (loc, s1e) = d1exp_make(loc, D1Esolverify(s1e)) // (* ****** ****** *) implement d1exp_errexp (loc) = d1exp_make (loc, D1Eerrexp()) (* ****** ****** *) implement labd1exp_make (l, d1e) = DL0ABELED (l, d1e) (* ****** ****** *) implement d1exp_is_metric (d1e) = let in // case+ d1e.d1exp_node of | D1Elam_met _ => true | D1Elam_dyn (_, _, d1e) => d1exp_is_metric (d1e) | D1Elam_sta_ana (_, _, d1e) => d1exp_is_metric (d1e) | D1Elam_sta_syn (_, _, d1e) => d1exp_is_metric (d1e) | _ (*non-D1Elam_...*) => false // end // end of [d1exp_is_metric] (* ****** ****** *) implement d1exp_make_e1xp (loc0, e0) = let // fun aux ( e0: e1xp ) : d1exp = let (* val () = begin print "d1exp_make_e1xp: aux: e0 = "; print_e1xp (e0); print_newline () end // end of [val] *) in // case+ e0.e1xp_node of // | E1XPide(id) => d1exp_ide (loc0, id) // | E1XPint(int) => d1exp_int (loc0, int) | E1XPintrep(rep) => d1exp_intrep (loc0, rep) // | E1XPchar(chr) => d1exp_char (loc0, chr) // | E1XPfloat(rep) => d1exp_float (loc0, rep) // | E1XPstring(str) => d1exp_string (loc0, str) // | E1XPapp ( e1, loc_arg, es2 ) => let val d1e1 = aux (e1) val d1es2 = auxlst (es2) in d1exp_app_dyn (loc0, d1e1, loc0, ~1(*npf*), d1es2) // d1exp_app_dyn end // end of [E1XPapp] // | E1XPlist(es) => let val d1es = auxlst(es) in d1exp_list(loc0, ~1(*npf*), d1es) end // end of [E1XPlist] // | E1XPv1al(v1) => d1exp_make_v1al (loc0, v1) // | E1XPnone((*void*)) => d1exp_empty (loc0) // HX: ? // | _ (*rest-of-e1xp*) => let val () = prerr_error1_loc(loc0) val () = prerr ": the expression [" val () = prerr_e1xp (e0) val () = prerrln! "] cannot be translated into a legal dynamic expression." in d1exp_errexp (loc0) end // end of [rest-of-e1xp] // end // end of [aux] and auxlst ( es: e1xplst ) : d1explst = case+ es of | list_cons (e, es) => list_cons (aux e, auxlst es) | list_nil () => list_nil () // end of [auxlst] in aux (e0) end // end of [d1exp_make_e1xp] (* ****** ****** *) implement d1exp_make_v1al (loc0, v0) = let in // case+ v0 of | V1ALint (i) => d1exp_int (loc0, i) | V1ALchar (c) => d1exp_char (loc0, c) | V1ALstring (str) => d1exp_string (loc0, str) | _(*unsupported*) => d1exp_errexp (loc0) // end // end of [d1exp_make_v1al] (* ****** ****** *) implement e1xp_make_d1exp (loc0, d1e0) = let // fun aux ( d1e0: d1exp ) : e1xp = case+ d1e0.d1exp_node of | D1Eide (id) => e1xp_ide (loc0, id) // | D1Eint (i) => e1xp_int (loc0, i) | D1Echar (c) => e1xp_char (loc0, c:char) | D1Estring (str) => e1xp_string (loc0, str) | D1Efloat (rep) => e1xp_float (loc0, rep) // | D1Ei0nt (tok) => e1xp_i0nt (loc0, tok) | D1Ec0har (tok) => e1xp_c0har (loc0, tok) | D1Es0tring (tok) => e1xp_s0tring (loc0, tok) | D1Ef0loat (tok) => e1xp_f0loat (loc0, tok) // | D1Eapp_dyn (d1e_fun, _(*loc*), npf, d1es_arg) => let val e_fun = aux (d1e_fun); val es_arg = auxlst (d1es_arg) in e1xp_app (loc0, e_fun, loc0, es_arg) end | D1Esing (d1e) => aux (d1e) | D1Elist (_(*npf*), d1es) => e1xp_list (loc0, auxlst(d1es)) | _ (*rest-of-d1exp*) => e1xp_err (loc0) (* end of [aux] *) // and auxlst ( d1es0: d1explst ) : e1xplst = case+ d1es0 of | list_cons (d1e, d1es) => list_cons (aux d1e, auxlst d1es) | list_nil () => list_nil () (* end of [auxlst] *) // in aux (d1e0) end // end of [e1xp_make_d1exp] (* ****** ****** *) implement d1lab_lab (loc, lab) = '{ d1lab_loc= loc, d1lab_node= D1LABlab lab } implement d1lab_ind (loc, ind) = '{ d1lab_loc= loc, d1lab_node= D1LABind ind } (* ****** ****** *) // // HX: declarations // (* ****** ****** *) implement m1acdef_make (loc, id, arg, def) = '{ m1acdef_loc= loc , m1acdef_sym= id, m1acdef_arg= arg, m1acdef_def= def } // end of [m1acdef_make] (* ****** ****** *) implement i1mpdec_make ( loc, qid, tmparg, def ) = '{ i1mpdec_loc= loc , i1mpdec_qid= qid , i1mpdec_tmparg= tmparg , i1mpdec_def= def } // end of [i1mpdec_make] (* ****** ****** *) implement f1undec_make (loc, id, loc_id, d1e, ann) = '{ f1undec_loc= loc , f1undec_sym= id , f1undec_sym_loc= loc_id , f1undec_def= d1e , f1undec_ann= ann } // end of [f1undec_make] implement v1aldec_make (loc, p1t, d1e, ann) = '{ v1aldec_loc= loc , v1aldec_pat= p1t , v1aldec_def= d1e , v1aldec_ann= ann } // end of [v1aldec_make] implement v1ardec_make ( loc, knd, id, loc_id, pfat, s1eopt, init ) = '{ v1ardec_loc= loc , v1ardec_knd= knd // knd=0/1:var/ptr , v1ardec_sym= id , v1ardec_sym_loc= loc_id , v1ardec_pfat= pfat // i0deopt , v1ardec_type= s1eopt // type annotation , v1ardec_init= init // value for initialization } (* end of [v1ardec_make] *) (* ****** ****** *) // extern fun d1ecl_make_node ( loc: location, node: d1ecl_node ) : d1ecl // end-of-function implement d1ecl_make_node (loc, node) = '{ d1ecl_loc= loc, d1ecl_node= node } // (* ****** ****** *) // implement d1ecl_none (loc) = d1ecl_make_node(loc, D1Cnone()) // implement d1ecl_list (loc, ds) = d1ecl_make_node(loc, D1Clist(ds)) // (* ****** ****** *) implement d1ecl_packname(opt) = d1ecl_make_node ($LOC.location_dummy, D1Cpackname(opt)) // end of [d1ecl_packname] (* ****** ****** *) // implement d1ecl_symintr(loc, ids) = d1ecl_make_node(loc, D1Csymintr(ids)) // implement d1ecl_symelim(loc, ids) = d1ecl_make_node(loc, D1Csymelim (ids)) // implement d1ecl_overload(loc, id, qid, pval) = d1ecl_make_node(loc, D1Coverload (id, qid, pval)) // (* ****** ****** *) // implement d1ecl_e1xpdef(loc, id, def) = d1ecl_make_node(loc, D1Ce1xpdef (id, def)) implement d1ecl_e1xpundef(loc, id, def) = d1ecl_make_node(loc, D1Ce1xpundef (id, def)) // (* ****** ****** *) // implement d1ecl_pragma(loc, e1xps) = d1ecl_make_node(loc, D1Cpragma (e1xps)) // implement d1ecl_codegen(loc, knd, xs) = d1ecl_make_node(loc, D1Ccodegen (knd, xs)) // (* ****** ****** *) // implement d1ecl_datsrts (loc, xs) = d1ecl_make_node(loc, D1Cdatsrts(xs)) // implement d1ecl_srtdefs (loc, xs) = d1ecl_make_node(loc, D1Csrtdefs(xs)) // (* ****** ****** *) // implement d1ecl_stacsts (loc, xs) = d1ecl_make_node(loc, D1Cstacsts(xs)) implement d1ecl_stacons (loc, knd, xs) = d1ecl_make_node(loc, D1Cstacons(knd, xs)) // (* ****** ****** *) (* // // HX-2012-05-23: removed // implement d1ecl_stavars (loc, xs) = d1ecl_make_node (loc, D1Cstavars (xs)) *) (* ****** ****** *) // implement d1ecl_tkindef(loc, x) = d1ecl_make_node (loc, D1Ctkindef (x)) // (* ****** ****** *) // implement d1ecl_sexpdefs(loc, knd, xs) = d1ecl_make_node(loc, D1Csexpdefs (knd, xs)) // (* ****** ****** *) // implement d1ecl_saspdec(loc, x) = d1ecl_make_node(loc, D1Csaspdec(x)) // // implement d1ecl_reassume(loc, x) = d1ecl_make_node(loc, D1Creassume(x)) // (* ****** ****** *) // implement d1ecl_exndecs(loc, d1cs) = d1ecl_make_node(loc, D1Cexndecs(d1cs)) // end of [d1ecl_exndecs] // implement d1ecl_datdecs (loc, knd, _datdec, _sexpdef) = d1ecl_make_node(loc, D1Cdatdecs(knd, _datdec, _sexpdef)) // end of [d1ecl_datdec] // (* ****** ****** *) // implement d1ecl_classdec (loc, id, sup) = d1ecl_make_node(loc, D1Cclassdec(id, sup)) // (* ****** ****** *) implement d1ecl_extype (loc, name, def) = d1ecl_make_node (loc, D1Cextype (name, def)) implement d1ecl_extype2 (loc, knd, name, def) = d1ecl_make_node (loc, D1Cextype (knd, name, def)) (* ****** ****** *) // implement d1ecl_extvar (loc, name, def) = d1ecl_make_node (loc, D1Cextvar (name, def)) // implement d1ecl_extcode (loc, knd, pos, code) = d1ecl_make_node (loc, D1Cextcode (knd, pos, code)) // (* ****** ****** *) implement d1ecl_dcstdecs (loc, knd, dck, qarg, ds) = d1ecl_make_node (loc, D1Cdcstdecs (knd, dck, qarg, ds)) (* ****** ****** *) implement d1ecl_macdefs (loc, knd, isrec, ds) = d1ecl_make_node (loc, D1Cmacdefs (knd, isrec, ds)) (* ****** ****** *) implement d1ecl_impdec (loc, knd, imparg, d1c) = d1ecl_make_node (loc, D1Cimpdec (knd, imparg, d1c)) (* ****** ****** *) implement d1ecl_valdecs (loc, knd, isrec, ds) = d1ecl_make_node (loc, D1Cvaldecs (knd, isrec, ds)) implement d1ecl_fundecs (loc, knd, qarg, ds) = d1ecl_make_node (loc, D1Cfundecs (knd, qarg, ds)) implement d1ecl_vardecs (loc, knd, ds) = d1ecl_make_node (loc, D1Cvardecs (knd, ds)) // end of [d1ecl_vardecs] (* ****** ****** *) implement d1ecl_include (loc, knd, ds) = d1ecl_make_node (loc, D1Cinclude (knd, ds)) // end of [d1ecl_include] (* ****** ****** *) implement d1ecl_staload ( loc, idopt, fil, ldflag, d1cs ) = d1ecl_make_node (loc, D1Cstaload (idopt, fil, ldflag, d1cs)) // end of [d1ecl_staload] implement d1ecl_staloadnm ( loc, alias, nspace ) = d1ecl_make_node (loc, D1Cstaloadnm (alias, nspace)) implement d1ecl_staloadloc ( loc, pfil, nspace, d1cs ) = d1ecl_make_node (loc, D1Cstaloadloc (pfil, nspace, d1cs)) (* ****** ****** *) // implement d1ecl_dynload (loc, fil) = d1ecl_make_node (loc, D1Cdynload (fil)) // (* ****** ****** *) // implement d1ecl_local ( loc, ds_head, ds_body ) = d1ecl_make_node (loc, D1Clocal (ds_head, ds_body)) // (* ****** ****** *) (* end of [pats_dynexp1.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env_svar.dats0000644000175000017500000001140613431250607022474 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) staload "./pats_trans3_env.sats" (* ****** ****** *) local assume s2varbindmap_push_v = unit_v val the_s2varbindmap = ref_make_elt (s2varbindmap_make_nil ()) // end of [val] viewtypedef s2varlstlst_vt = List_vt (s2varlst_vt) val the_s2varlst = ref_make_elt (list_vt_nil) val the_s2varlstlst = ref_make_elt (list_vt_nil) fun auxrmv ( map: &s2varbindmap, s2vs: s2varlst_vt ) : void = case+ s2vs of | ~list_vt_cons (s2v, s2vs) => let val () = s2varbindmap_remove (map, s2v) in auxrmv (map, s2vs) end // end of [list_vt_cons] | ~list_vt_nil () => () // end of [auxrmv] in // in of [local] implement the_s2varbindmap_pop (pf | (*nothing*)) = let // prval unit_v () = pf val s2vs = let val (vbox pf | pp) = ref_get_view_ptr (the_s2varlstlst) in case+ !pp of | ~list_vt_cons (xs, xss) => let val () = !pp := xss in xs end | list_vt_nil () => let prval () = fold@ (!pp) in list_vt_nil end end : s2varlst_vt val s2vs = xs where { val (vbox pf | p) = ref_get_view_ptr (the_s2varlst) val xs = !p val () = !p := s2vs } // end of [val] val () = let val (vbox pf | p) = ref_get_view_ptr (the_s2varbindmap) in $effmask_ref (auxrmv (!p, s2vs)) end // end of [val] // in // nothing end // end of [the_s2varbindmap_pop] implement the_s2varbindmap_push () = let val s2vs = s2vs where { val (vbox pf | p) = ref_get_view_ptr (the_s2varlst) val s2vs = !p val () = !p := list_vt_nil () } // end of [val] val (vbox pf | pp) = ref_get_view_ptr (the_s2varlstlst) val () = !pp := list_vt_cons (s2vs, !pp) in (unit_v () | ()) end // end of [the_s2varbindmap_push] implement fprint_the_s2varbindmap (out) = let fun aux ( out: FILEref, kis: List_vt @(s2var, s2exp) ) : void = case+ kis of | ~list_vt_cons (ki, kis) => let val () = fprint_s2var (out, ki.0) val () = fprint_string (out, " -> ") val () = fprint_s2exp (out, ki.1) val () = fprint_newline (out) in aux (out, kis) end // end of [list_vt_cons] | ~list_vt_nil () => () // end of [aux] val kis = let val (vbox pf | p) = ref_get_view_ptr (the_s2varbindmap) in $effmask_ref (s2varbindmap_listize (!p)) end // end of [val] in aux (out, kis) end // end of [fprint_the_s2varbindmap] implement the_s2varbindmap_search (s2v) = let val (vbox pf | p) = ref_get_view_ptr (the_s2varbindmap) in $effmask_ref (s2varbindmap_search (!p, s2v)) end // end of [the_s2varbindmap_search] implement the_s2varbindmap_insert (s2v, s2f) = let // val () = let val (vbox pf | p) = ref_get_view_ptr (the_s2varlst) in !p := list_vt_cons (s2v, !p) end // end of [val] // val () = let val (vbox pf | p) = ref_get_view_ptr (the_s2varbindmap) in $effmask_ref (s2varbindmap_insert (!p, s2v, s2f)) end // end of [val] // in (* nothing *) end // end of [the_s2varbindmap_insert] implement the_s2varbindmap_freetop () = let // val s2vs = xs where { val (vbox pf | p) = ref_get_view_ptr (the_s2varlst) val xs = !p val () = !p := list_vt_nil () } // end of [val] // val () = let val (vbox pf | p) = ref_get_view_ptr (the_s2varbindmap) in $effmask_ref (auxrmv (!p, s2vs)) end // end of [val] // in (*nothing*) end // end of [the_s2varbinmap_freetop] end // end of [local] (* ****** ****** *) (* end of [pats_trans3_env_svar.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_base.dats0000644000175000017500000002522513431250607022020 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_symbol.sats" staload "./pats_label.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_lexing.sats" // for tokens staload "./pats_tokbuf.sats" // for tokenizing (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) implement p_i0nt (buf, bt, err) = let val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_INT _ => let val () = incby1 () in tok end | _ (*non-INT*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_i0nt) in synent_null () end // end of [_] // end // end of [p_i0nt] (* ****** ****** *) implement p_s0tring (buf, bt, err) = let val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_STRING _ => let val () = incby1 () in tok end | _ (*non-STRING*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_s0tring) in synent_null () end // end of [_] // end // end of [p_s0tring] (* ****** ****** *) (* i0de : IDENTIFIER_alp | IDENTIFIER_sym | EQ | GT | LT | AMPERSAND | BACKSLASH | BANG | TILDE | MINUSGT | MINUSLTGT | GTLT ; /* i0de */ *) implement p_i0de (buf, bt, err) = let val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of // | T_IDENT_alp (x) => let val () = incby1 () in i0de_make_string (loc, x) end | T_IDENT_sym (x) => let val () = incby1 () in i0de_make_string (loc, x) end // | T_EQ () => let val () = incby1 () in i0de_make_string (loc, "=") end | T_GT () => let val () = incby1 () in i0de_make_string (loc, ">") end | T_LT () => let val () = incby1 () in i0de_make_string (loc, "<") end // | T_AT () => let val () = incby1 () in i0de_make_string (loc, "@") end | T_BACKSLASH () => let val () = incby1 () in i0de_make_string (loc, "\\") end | T_BANG () => let val () = incby1 () in i0de_make_string (loc, "!") end | T_TILDE () => let val () = incby1 () in i0de_make_string (loc, "~") end // | T_MINUSGT () => let val () = incby1 () in i0de_make_string (loc, "->") end | T_MINUSLTGT () => let val () = incby1 () in i0de_make_string (loc, "-<>") end // | T_GTLT () => let val () = incby1 () in i0de_make_string (loc, "><") end // | _ => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_i0de) in synent_null () end // end of [_] // end // end of [p_i0de] (* ****** ****** *) (* i0deseq1 := {i0de}+ *) implement p_i0deseq1 (buf, bt, err) = let val xs = pstar1_fun (buf, bt, err, p_i0de) in list_of_list_vt (xs) end // end of [p_i0deseq1] (* ****** ****** *) implement p_i0dext (buf, bt, err) = let val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_IDENT_ext (x) => let val () = incby1 () in i0de_make_string (loc, x) end | _ (*non-IDENT-ext*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_i0dext) in synent_null () end // end of [_] // end // end of [p_i0dext] (* ****** ****** *) implement p_i0de_dlr (buf, bt, err) = let val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_IDENT_dlr (x) => let val () = incby1 () in i0de_make_string (loc, x) end | _ (*non-IDENT-dlr*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_i0de_dlr) in synent_null () end // end of [_] // end // end of [p_i0de_dlr] (* ****** ****** *) (* l0ab := | i0de | i0nt /* | LPAREN l0ab RPAREN // HX: this is removed for now */ *) implement p_l0ab (buf, bt, err) = let var ent: synent? val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | _ when ptest_fun ( buf, p_i0de, ent ) => l0ab_make_i0de (synent_decode {i0de} (ent)) | T_INT _ => let val () = incby1 () in l0ab_make_i0nt (tok) end // end of [T_INT] // | _ => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_l0ab) in synent_null () end // end // end of [p_l0ab] (* ****** ****** *) (* p0rec : /*(empty)*/ | LITERAL_int | LPAREN i0de RPAREN | LPAREN i0de IDENTIFIER_sym LITERAL_int RPAREN ; /* p0rec */ *) fun p_p0rec_tok ( buf: &tokbuf, bt: int, err: &int, tok: token ) : p0rec = let var ent: synent? val err0 = err macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of // | T_INT _ => let val () = incby1 () in p0rec_i0nt (tok) end // | T_LPAREN () => let val bt = 0 val () = incby1 () val ent2 = p_i0de (buf, bt, err) in if err = err0 then let val tok2 = tokbuf_get_token (buf) in case+ tok2.token_node of | _ when ptest_fun (buf, p_i0de, ent) => let val ent3 = synent_decode {i0de} (ent) val ent4 = p_i0nt (buf, bt, err) val ent5 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then p0rec_i0de_adj (ent2, ent3, ent4) else synent_null () // end of [if] end | _ => let val ent3 = p_RPAREN (buf, bt, err) in if err = err0 then p0rec_i0de (ent2) else synent_null () end end else synent_null () // end of [if] end (* T_LPAREN *) // | _ (*rest-of-token*) => p0rec_emp () // end // end of [p_p0rec_tok] implement p_p0rec (buf, bt, err) = ptokwrap_fun (buf, bt, err, p_p0rec_tok, PE_p0rec) // end of [p_p0rec] (* ****** ****** *) fun p_effi0de ( buf: &tokbuf, bt: int, err: &int ) : i0de = let val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_IDENT_alp name => let val () = incby1 () in i0de_make_string (loc, name) end | _ (*non-IDENT-alp*) => let val () = err := err + 1 in synent_null () end // end // end of [p_effi0de] (* e0fftag ::= | FUN | BANG effi0de | TILDE effi0de | effi0de | LITERAL_int *) implement p_e0fftag (buf, bt, err) = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of // | T_FUN _ => let val () = incby1 () in e0fftag_var_fun (tok) end // | T_BANG () => let val bt = 0 val () = incby1 () val ent2 = p_effi0de (buf, bt, err) in if err = err0 then e0fftag_cst (0, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // | T_TILDE () => let val bt = 0 val () = incby1 () val ent2 = p_effi0de (buf, bt, err) in if err = err0 then e0fftag_cst (0, ent2) else tokbuf_set_ntok_null (buf, n0) // end of [if] end // | T_INT _ => let val () = incby1 () in e0fftag_i0nt (tok) end // | _ when ptest_fun ( buf, p_effi0de, ent ) => e0fftag_i0de (synent_decode {i0de} (ent)) | _ (*rest-of-token*) => let val () = err := err + 1 in synent_null () end // end // end of [p_e0fftag] implement p_e0fftaglst (buf, bt, err) = l2l ( pstar_fun0_COMMA {e0fftag} (buf, bt, p_e0fftag) ) // end of [p_e0fftaglst] (* ****** ****** *) (* colonwith | COLON | COLONLTGT | COLONLT e0fftagseq GT *) implement p_colonwith (buf, bt, err) = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val loc = tok.token_loc // (* val () = println! ("p_colonwith: bt = ", bt) val () = println! ("p_colonwith: tok = ", tok) *) // macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_COLON () => let val () = incby1 () in None () end | T_COLONLT () => let val bt = 0 val () = incby1 () val ent2 = p_e0fftaglst (buf, bt, err) val ent3 = p_GT (buf, bt, err) // err = err0 in if err = err0 then Some (ent2) else tokbuf_set_ntok_null (buf, n0) (* end of [if] *) end | _ (*rest-of-token*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_colonwith) in synent_null () end (* end of [_] *) // end // end of [p_colonwith] (* ****** ****** *) implement p_dcstkind (buf, bt, err) = let val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_FUN _ => let val () = incby1 () in tok end | T_VAL _ => let val () = incby1 () in tok end | _ (*rest-of-token*) => let val () = err := err + 1 in synent_null () end // end // end of [p_dcstkind] (* ****** ****** *) #define s2s string1_of_string (* ****** ****** *) implement p_extnamopt (buf, bt, err) = let val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) in // case+ tok.token_node of | T_EQ () => let val bt = 0 val () = tokbuf_incby1 (buf) val ent2 = p_s0tring (buf, bt, err) in if synent_is_null (ent2) then let val () = tokbuf_set_ntok (buf, n0) in None () end else Some (ent2) // end of [if] end | _ (*non-EQ*) => None () // end // end of [p_extnamopt] (* ****** ****** *) (* end of [pats_parsing_base.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_symmap.sats0000644000175000017500000000430513431250607020704 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol (* ****** ****** *) absvtype symmap_vtype (itm:type) stadef symmap = symmap_vtype (* ****** ****** *) fun symmap_make_nil {itm:type} ():<> symmap (itm) fun symmap_free {itm:type} (map: symmap (itm)):<> void (* ****** ****** *) fun symmap_search {itm:type} (map: !symmap itm, k: symbol):<> Option_vt (itm) // end of [symmap_search] fun symmap_insert {itm:type} ( map: &symmap (itm), key: symbol, itm: itm ) :<> void // end of [symmap_insert] (* ****** ****** *) fun symmap_joinwth {itm:type}(m1: &symmap itm, m2: !symmap itm):<> void // end of [symmap_joinwth] (* ****** ****** *) fun fprint_symmap {itm:type} ( out: FILEref, map: !symmap itm, f: (FILEref, itm) -> void ) : void // end of [fprint_symmap] (* ****** ****** *) (* end of [pats_symmap.sats] *) ATS2-Postiats-gmp-0.3.13/./src/.keeper0000644000175000017500000000000013431250607016713 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./src/pats_parsing_sort.dats0000644000175000017500000002345013431250607022073 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_lexing.sats" staload "./pats_tokbuf.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) #define l2l list_of_list_vt #define t2t option_of_option_vt macdef list_sing (x) = list_cons (,(x), list_nil) (* ****** ****** *) (* s0rtid | IDENTIFIER_alp | IDENTIFIER_sym | BACKSLASH // for instant infixing | MINUSGT // for forming functional sorts /* | MINUSLTGT // HX: what is this for? */ *) implement p_s0rtid (buf, bt, err) = let val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) (* val () = println! ("p_s0rtid: bt = ", bt) val () = println! ("p_s0rtid: err = ", err) val () = println! ("p_s0rtid: tok = ", tok) *) in // case+ tok.token_node of // | T_IDENT_alp (x) => let val () = incby1 () in i0de_make_string (loc, x) end | T_IDENT_sym (x) => let val () = incby1 () in i0de_make_string (loc, x) end // | T_BACKSLASH () => let val () = incby1 () in i0de_make_string (loc, "\\") end | T_MINUSGT () => let val () = incby1 () in i0de_make_string (loc, "->") end // | _ => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_s0rtid) in synent_null () end // end of [_] // end // end of [p_s0rtid] (* s0rtq ::= i0de_dlr DOT *) implement p_s0rtq (buf, bt, err) = let val err0 = err val+~SYNENT2 (ent1, ent2) = pseq2_fun {i0de,token} (buf, bt, err, p_i0de_dlr, p_DOT) // end of [val] in if err = err0 then s0rtq_symdot (ent1, ent2) else synent_null () // end of [if] end // end of [p_s0rtq] (* ****** ****** *) fun p_s0rtseq_vt ( buf: &tokbuf , bt: int , err: &int ) : List_vt (s0rt) = pstar_fun0_COMMA {s0rt} (buf, bt, p_s0rt) // end of [p_s0rtseq_vt] (* ****** ****** *) (* atms0rt | s0rtid | T_TYPE // prop/view/type/viewtype/t0ype/viewt0ype | LPAREN s0rtseq RPAREN | s0rtq s0rtid /* | ATLPAREN s0rtseq RPAREN // for tuple sorts */ *) fun p_atms0rt_tok ( buf: &tokbuf, bt: int, err: &int, tok: token ) : s0rt = let (* val () = println! ("p_atms0rt: bt = ", bt) val () = println! ("p_atms0rt: err = ", err) val () = println! ("p_atms0rt: tok = ", tok) *) val err0 = err var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | _ when ptest_fun (buf, p_s0rtid, ent) => s0rt_i0de (synent_decode {i0de} (ent)) // | T_TYPE _ => let val () = incby1 () in s0rt_type (tok) end (* end of [T_TYPE] *) // | _ when ptest_fun (buf, p_s0rtq, ent) => let val bt = 0 val ent1 = synent_decode {s0rtq} (ent) val ent2 = p_s0rtid (buf, bt, err) // err = err0 in if err = err0 then s0rt_qid (ent1, ent2) else synent_null () // end of [if] end // | T_LPAREN () => let val bt = 0 val () = incby1 () val ent2 = p_s0rtseq_vt (buf, bt, err) val ent3 = p_RPAREN (buf, bt, err) // err = err0 in if ( err = err0 ) then ( s0rt_list (tok, l2l(ent2), ent3) ) else let val () = list_vt_free (ent2) in synent_null () end // end of [if] end (* end of [T_LPAREN] *) // | _ => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [p_atms0rt_tok] fun p_atms0rt ( buf: &tokbuf, bt: int, err: &int ) : s0rt = ptokwrap_fun (buf, bt, err, p_atms0rt_tok, PE_atms0rt) // end of [p_atms0rt] (* ****** ****** *) (* s0rt ::= {atms0rt}+ *) implement p_s0rt (buf, bt, err) = let val xs = pstar1_fun (buf, bt, err, p_atms0rt) fun loop ( x0: s0rt, xs1: List_vt (s0rt) ) : s0rt = case+ xs1 of | ~list_vt_cons (x1, xs1) => let val x0 = s0rt_app (x0, x1) in loop (x0, xs1) end // end of [list_vt_cons] | ~list_vt_nil () => x0 // end of [loop] in // case+ xs of | ~list_vt_cons (x, xs) => loop (x, xs) | ~list_vt_nil () => synent_null () // HX: [err] changed // end // end of [p_s0rt] (* ****** ****** *) implement p_ofs0rtopt (buf, bt, err) = t2t (ptokentopt_fun (buf, is_OF, p_s0rt)) // end of [p_ofs0rtopt] implement p_colons0rtopt (buf, bt, err) = t2t (ptokentopt_fun (buf, is_COLON, p_s0rt)) // end of [p_colons0rtopt] (* ****** ****** *) (* s0arg ::= si0de [COLON s0rt] *) implement p_s0arg (buf, bt, err) = let // val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val ent1 = p_si0de (buf, bt, err) // in // if err = err0 then let val bt = 0 val ent2 = p_colons0rtopt (buf, bt, err) in s0arg_make (ent1, ent2) // end of [val] end // end of [then] else let (* val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_s0arg) *) in tokbuf_set_ntok_null (buf, n0) end // end of [else] // end // end of [p_s0arg] (* ****** ****** *) (* s0marg ::= si0de | LPAREN s0argseq RPAREN *) fun p_s0marg_tok ( buf: &tokbuf , bt: int, err: &int , tok: token ) : s0marg = let val err0 = err var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | _ when ptest_fun ( buf, p_si0de, ent ) => let val ent = synent_decode {i0de} (ent) val x = s0arg_make (ent, None ()) in s0marg_make_one (x) end | T_LPAREN () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA {s0arg} (buf, bt, p_s0arg) val ent3 = p_RPAREN (buf, bt, err) // err = err0 in if err = err0 then s0marg_make_many (tok, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in synent_null () end (* end of [if] *) end | _ => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [p_s0marg_tok] implement p_s0marg (buf, bt, err) = ptokwrap_fun (buf, bt, err, p_s0marg_tok, PE_s0marg) // end of [p_s0marg] (* ****** ****** *) (* a0srt ::= s0rtpol | si0de COLON s0rtpol *) implement p_a0srt (buf, bt, err) = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val () = tokbuf_incby1 (buf) val tok2 = tokbuf_get_token (buf) val () = tokbuf_set_ntok (buf, n0) in // case+ tok2.token_node of | T_COLON () => let val ent1 = p_si0de (buf, bt, err) val bt = 0 val ent2 = pif_fun (buf, bt, err, p_COLON, err0) val ent3 = pif_fun (buf, bt, err, p_s0rt, err0) in if err = err0 then a0srt_make_some (ent1, ent3) else let (* val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_a0srt) // end of [val] *) in tokbuf_set_ntok_null (buf, n0) end (* end of [if] *) end | _ => let val ent1 = p_s0rt (buf, bt, err) in if ( err = err0 ) then ( a0srt_make_none (ent1) ) else let (* val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_a0srt) // end of [val] *) in tokbuf_set_ntok_null (buf, n0) end (* end of [if] *) end // end // end of [p_a0srt] (* ****** ****** *) implement p_a0msrt (buf, bt, err) = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_LPAREN () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA {a0srt} (buf, bt, p_a0srt) val ent3 = p_RPAREN (buf, bt, err) // err = err0 in if err = err0 then a0msrt_make (tok, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, n0) end (* end of [if] *) end | _ => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [p_a0msrt] (* ****** ****** *) (* d0atsrtcon ::= s0ide [OF s0ort] *) fun p_d0atsrtcon ( buf: &tokbuf, bt: int, err: &int ) : d0atsrtcon = let val err0 = err val n0 = tokbuf_get_ntok (buf) val tok = tokbuf_get_token (buf) val ent1 = p_si0de (buf, bt, err) in // if err = err0 then let val bt = 0 val ent2 = p_ofs0rtopt (buf, bt, err) in d0atsrtcon_make (ent1, ent2) end // end of [then] else let (* // val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_d0atsrtcon) // *) in tokbuf_set_ntok_null (buf, n0) end // end of [else] // end // end of [p_d0atsrtcon] (* ****** ****** *) implement p_d0atsrtconseq (buf, bt, err) = let val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_BAR () => let val () = incby1 () val xs = pstar_fun0_BAR (buf, bt, p_d0atsrtcon) in l2l(xs) end // end of [T_BAR] | _ => let val xs = pstar_fun0_BAR (buf, bt, p_d0atsrtcon) in l2l(xs) end // end of [_] // end // end of [p_d0atsrtconseq] (* ****** ****** *) (* end of [pats_parsing_sort.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_taggen.dats0000644000175000017500000002730713431250607020633 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2013 // (* ****** ****** *) // staload _(*anon*) = "prelude/DATS/list.dats" staload _(*anon*) = "prelude/DATS/list_vt.dats" // (* ****** ****** *) staload "./pats_symbol.sats" staload "./pats_location.sats" (* ****** ****** *) staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_taggen.sats" (* ****** ****** *) fun tagentlst_add ( res: &tagentlst_vt, ent: tagent ) : void = let in res := list_vt_cons{tagent}(ent, res) end // end of [tagentlst_add] (* ****** ****** *) typedef tagent = '{ tagent_sym= symbol , tagent_loc= location } // end of [tagent] (* ****** ****** *) // fun TAGENT ( sym: symbol, loc: location ) : tagent = '{ tagent_sym= sym, tagent_loc= loc } (* end of [TAGENT] *) // (* ****** ****** *) assume tagent_type = tagent (* ****** ****** *) typedef taggen_ftype (a: type) = (a, &tagentlst_vt) -> void // end of [depgen_type] (* ****** ****** *) extern fun taggen_d0ecl : taggen_ftype (d0ecl) extern fun taggen_d0eclist : taggen_ftype (d0eclist) (* ****** ****** *) extern fun taggen_guad0ecl : taggen_ftype (guad0ecl) (* ****** ****** *) // extern fun taggen_s0expdeflst : taggen_ftype (s0expdeflst) // extern fun taggen_e0xndeclst : taggen_ftype (e0xndeclst) extern fun taggen_d0atdeclst : taggen_ftype (d0atdeclst) // extern fun taggen_d0cstdeclst : taggen_ftype (d0cstdeclst) // extern fun taggen_m0acdeflst : taggen_ftype (m0acdeflst) // extern fun taggen_f0undeclst : taggen_ftype (f0undeclst) extern fun taggen_v0aldeclst : taggen_ftype (v0aldeclst) extern fun taggen_v0ardeclst : taggen_ftype (v0ardeclst) // (* ****** ****** *) fun tagentlst_add_symloc ( res: &tagentlst_vt , sym: symbol, loc: location ) : void = tagentlst_add (res, TAGENT (sym, loc)) // end of [tagentlst_add_symloc] (* ****** ****** *) fun tagentlst_add_i0de ( res: &tagentlst_vt, id: i0de ) : void = ( tagentlst_add_symloc (res, id.i0de_sym, id.i0de_loc) ) (* end of [tagentlst_add_i0de] *) (* ****** ****** *) fun tagentlst_add_i0delst ( res: &tagentlst_vt, ids: i0delst ) : void = ( case+ ids of | list_cons (id, ids) => let val () = tagentlst_add_i0de (res, id) // end of [val] in tagentlst_add_i0delst (res, ids) end // end of [list_cons] | list_nil ((*void*)) => () ) (* end of [tagentlst_add_i0delst] *) (* ****** ****** *) fun tagentlst_add_p0at ( res: &tagentlst_vt, p0t0: p0at ) : void = let // val loc0 = p0t0.p0at_loc // in // case+ p0t0.p0at_node of // | P0Tide (sym) => tagentlst_add_symloc (res, sym, loc0) | P0Tdqid (d0q, sym) => tagentlst_add_symloc (res, sym, loc0) | P0Topid (sym) => tagentlst_add_symloc (res, sym, loc0) // | P0Tann (p0t, _) => tagentlst_add_p0at (res, p0t) // | _ => ((*void*)) // HX-2013-11-17: ignored // end // end of [tagentlst_add_symloc] (* ****** ****** *) implement taggen_d0ecl (d0c0, res) = let // val loc0 = d0c0.d0ecl_loc // in // case+ d0c0.d0ecl_node of // | D0Cfixity _ => () | D0Cnonfix _ => () // | D0Csymintr (ids) => tagentlst_add_i0delst (res, ids) | D0Csymelim (ids) => tagentlst_add_i0delst (res, ids) | D0Coverload (id, _, _) => tagentlst_add_i0de (res, id) // | D0Ce0xpdef (sym, _) => tagentlst_add_symloc (res, sym, loc0) | D0Ce0xpundef (sym) => tagentlst_add_symloc (res, sym, loc0) // | D0Ctkindef (tkd) => let val sym = tkd.t0kindef_sym val loc = tkd.t0kindef_loc_id in tagentlst_add_symloc (res, sym, loc) end // end of [D0Ctkindef] | D0Csexpdefs (_, sdfs) => taggen_s0expdeflst (sdfs, res) | D0Csaspdec (sasp) => let val qid = sasp.s0aspdec_qid in tagentlst_add_symloc (res, qid.sqi0de_sym, qid.sqi0de_loc) end // end of [D0Csaspdec] // | D0Cexndecs (d0cs) => taggen_e0xndeclst (d0cs, res) | D0Cdatdecs (_, d0cs, sdfs) => { val () = taggen_d0atdeclst (d0cs, res) val () = taggen_s0expdeflst (sdfs, res) } (* end of [D0Cdatdecs] *) // | D0Cdcstdecs (_, _, _, d0cs) => taggen_d0cstdeclst (d0cs, res) // | D0Cimpdec (_, _, impdec) => let val qid = impdec.i0mpdec_qid in tagentlst_add_symloc (res, qid.impqi0de_sym, qid.impqi0de_loc) end // end of [D0Cimpdec] // | D0Cmacdefs (_, _, mds) => taggen_m0acdeflst (mds, res) // | D0Cfundecs (_, _, fds) => taggen_f0undeclst (fds, res) | D0Cvaldecs (_, _, vds) => taggen_v0aldeclst (vds, res) | D0Cvardecs (_(*knd*), vds) => taggen_v0ardeclst (vds, res) // | D0Cinclude _ => () // | D0Cstaload (pfil, idopt, fname) => () | D0Cstaloadnm (pfil, idopt, nspace) => () // | D0Cstaloadloc (pfil, idsym, d0cs) => taggen_d0eclist (d0cs, res) // | D0Cdynload _ => () // | D0Clocal (d0cs_head, d0cs_body) => { val () = taggen_d0eclist (d0cs_head, res) val () = taggen_d0eclist (d0cs_head, res) } (* end of [D0Clocal] *) // | D0Cguadecl (knd, gd0c) => taggen_guad0ecl (gd0c, res) // | _ (*rest*) => ( tagentlst_add (res, TAGENT (symbol_empty, loc0)) ) (* end of [_] *) // end // end of [taggen_d0ecl] (* ****** ****** *) implement taggen_d0eclist (d0cs, res) = let in // case+ d0cs of | list_cons (d0c, d0cs) => let val () = taggen_d0ecl (d0c, res) // end of [val] in taggen_d0eclist (d0cs, res) end // end of [list_cons] | list_nil () => () // end // end of [taggen_d0eclist] (* ****** ****** *) local fun taggen_guad0ecl_node ( gd0cn: guad0ecl_node, res: &tagentlst_vt ) : void = let in // case+ gd0cn of // | GD0Cone (_, d0cs) => { val () = taggen_d0eclist (d0cs, res) } | GD0Ctwo (_, d0cs1, d0cs2) => { val () = taggen_d0eclist (d0cs1, res) val () = taggen_d0eclist (d0cs2, res) } | GD0Ccons (_, d0cs, knd, gd0cn) => { val () = taggen_guad0ecl_node (gd0cn, res) } // end (* end of [taggen_guad0ecl_node] *) in (* in of [local] *) implement taggen_guad0ecl (gd0c, res) = taggen_guad0ecl_node (gd0c.guad0ecl_node, res) // end of [taggen_guad0ecl] end // end of [local] (* ****** ****** *) implement taggen_s0expdeflst (sdfs, res) = let in // case+ sdfs of | list_cons (sdf, sdfs) => let val sym = sdf.s0expdef_sym val loc = sdf.s0expdef_loc_id val () = tagentlst_add_symloc (res, sym, loc) // end of [val] in taggen_s0expdeflst (sdfs, res) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [taggen_s0expdeflst] (* ****** ****** *) implement taggen_e0xndeclst (d0cs, res) = let in // case+ d0cs of | list_cons (d0c, d0cs) => let val sym = d0c.e0xndec_sym val loc = d0c.e0xndec_loc val () = tagentlst_add_symloc (res, sym, loc) // end of [val] in taggen_e0xndeclst (d0cs, res) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [taggen_e0xndeclst] (* ****** ****** *) implement taggen_d0atdeclst (d0cs, res) = let in // case+ d0cs of | list_cons (d0c, d0cs) => let val sym = d0c.d0atdec_sym val loc = d0c.d0atdec_loc val () = tagentlst_add_symloc (res, sym, loc) // end of [val] in taggen_d0atdeclst (d0cs, res) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [taggen_d0atdeclst] (* ****** ****** *) implement taggen_d0cstdeclst (d0cs, res) = let in // case+ d0cs of | list_cons (d0c, d0cs) => let val sym = d0c.d0cstdec_sym val loc = d0c.d0cstdec_loc val () = tagentlst_add_symloc (res, sym, loc) // end of [val] in taggen_d0cstdeclst (d0cs, res) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [taggen_d0cstdeclst] (* ****** ****** *) implement taggen_m0acdeflst (mds, res) = let in // case+ mds of | list_cons (md, mds) => let val sym = md.m0acdef_sym val loc = md.m0acdef_loc val () = tagentlst_add_symloc (res, sym, loc) in taggen_m0acdeflst (mds, res) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [taggen_m0acdeflst] (* ****** ****** *) implement taggen_f0undeclst (fds, res) = let in // case+ fds of | list_cons (fd, fds) => let val sym = fd.f0undec_sym val loc = fd.f0undec_sym_loc val () = tagentlst_add_symloc (res, sym, loc) in taggen_f0undeclst (fds, res) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [taggen_f0undeclst] (* ****** ****** *) implement taggen_v0aldeclst (vds, res) = let in // case+ vds of | list_cons (vd, vds) => let val p0t = vd.v0aldec_pat val () = tagentlst_add_p0at (res, p0t) in taggen_v0aldeclst (vds, res) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [taggen_v0aldeclst] (* ****** ****** *) implement taggen_v0ardeclst (vds, res) = let in // case+ vds of | list_cons (vd, vds) => let val sym = vd.v0ardec_sym val loc = vd.v0ardec_sym_loc val () = tagentlst_add_symloc (res, sym, loc) in taggen_v0ardeclst (vds, res) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [taggen_v0ardeclst] (* ****** ****** *) implement taggen_proc (d0cs) = let // var res: tagentlst_vt = list_vt_nil() // val ((*void*)) = taggen_d0eclist (d0cs, res) // in list_vt_reverse (res) end // end of [taggen_proc] (* ****** ****** *) implement fprint_entlst (out, given, xs) = let // fun fprint_name ( out: FILEref, sym: symbol ) : void = { val () = fprint_char (out, '"') val () = fprint_symbol (out, sym) val () = fprint_char (out, '"') } // fun fprint_ent ( out: FILEref, ent: tagent ) : void = let // val loc = ent.tagent_loc // val () = fprint_string (out, "{\n") // val () = fprint (out, "\"name\": ") val () = fprint_name (out, ent.tagent_sym) val () = fprint (out, ", \"nline\": ") val () = fprint_int (out, location_beg_nrow(loc)+1) val () = fprint (out, ", \"nchar\": ") val () = fprint_lint (out, location_beg_ntot(loc)+1L) // val () = fprint_string (out, "\n}\n") // in end // end of [fprint_ent] // fun auxlst ( out: FILEref , i: int, xs: tagentlst_vt ) : void = let in // case+ xs of | ~list_vt_cons (x, xs) => let val () = if i > 0 then fprint_string (out, ",\n") // end of [if] val () = fprint_ent (out, x) in auxlst (out, i+1, xs) end // end of [list_vt_cons] | ~list_vt_nil ((*void*)) => () // end // end of [auxlst] // val () = fprint_string (out, "{\n") val () = fprint_string (out, "\"tagfile\": ") val () = fprint_string (out, "\"") val () = fprint_string (out, given) val () = fprint_string (out, "\"") val () = fprint_string (out, ",\n") val () = fprint_string (out, "\"tagentarr\": [\n") val () = auxlst (out, 0(*i*), xs) val () = fprint_string (out, "]\n") val () = fprint_string (out, "}\n") // in // nothing end // end of [fprint_entlst] (* ****** ****** *) (* end of [pats_taggen.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_typerase.sats0000644000175000017500000000706513431250607021240 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) staload LOC = "./pats_location.sats" typedef location = $LOC.location (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) // // HX-2012-09: // the list of possible errors that may occur // during the level-4 translation // datatype trans4err = // | T4E_p3at_tyer_isprf of (p3at) // [p3at] is partial // | T4E_d3exp_tyer_isprf of (d3exp) // [d3exp] should be erased // (* | T4E_d3exp_tyer_isnotval of (d3exp) // HX: it is only a warning! *) // end of [trans4err] // (* ****** ****** *) fun the_trans4errlst_add (x: trans4err): void fun the_trans4errlst_finalize (): void // cleanup all the errors (* ****** ****** *) // // HX-2012-09: // [s2exp_tyer] is essentially for // measuring the size of a given type // fun s2exp_tyer // flag=0/1:shallow/deep (loc: location, flag: int, s2e0: s2exp): hisexp // fun s2exp_tyer_deep(loc: location, s2e0: s2exp): hisexp fun s2exp_tyer_shallow(loc: location, s2e0: s2exp): hisexp // (* ****** ****** *) fun s2zexp_tyer (loc: location, s2ze: s2zexp): hisexp (* ****** ****** *) fun t2mpmarg_tyer (t2ma: t2mpmarg): hisexplst fun t2mpmarglst_tyer (t2mas: t2mpmarglst): hisexplstlst (* ****** ****** *) fun t2mpmarg_mhnfize (t2ma: t2mpmarg): t2mpmarg fun t2mpmarglst_mhnfize (t2mas: t2mpmarglst): t2mpmarglst (* ****** ****** *) fun d2var_tyer (d2v: d2var): d2var fun d2cst_tyer (d2c: d2cst): d2cst (* ****** ****** *) fun p3at_tyer (p3t: p3at): hipat fun p3atlst_tyer (p3ts: p3atlst): hipatlst fun p3atlst_tyer2 (d3es: d3explst, p3ts: p3atlst): hipatlst (* ****** ****** *) fun d3exp_tyer (d3e: d3exp): hidexp fun d3explst_tyer (d3es: d3explst): hidexplst fun d3expopt_tyer (opt: d3expopt): hidexpopt (* ****** ****** *) fun d3lab_tyer (d3l: d3lab): hilab fun d3lablst_tyer (d3ls: d3lablst): hilablst (* ****** ****** *) fun decarg2imparg (s2qs: s2qualst): s2varlst (* ****** ****** *) fun d3ecl_tyer (d3c: d3ecl): hidecl fun d3eclist_tyer (d3cs: d3eclist): hideclist (* ****** ****** *) fun d3eclist_tyer_errck (d3cs: d3eclist): hideclist (* ****** ****** *) (* end of [pats_typerase.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dyncst2.dats0000644000175000017500000001116613431250607020750 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: January, 2013 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) // staload SYM = "./pats_symbol.sats" // overload prerr with $SYM.prerr_symbol // (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_stacst2" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dyncst2.sats" (* ****** ****** *) staload "./pats_trans2_env.sats" (* ****** ****** *) abstype d2cstnul (l:addr) typedef d2cstnul = [l:agez] d2cstnul (l) extern castfn d2cstnul_none (x: ptr null):<> d2cstnul (null) extern castfn d2cstnul_some (x: d2cst):<> [l:agz] d2cstnul (l) extern castfn d2cstnul_unsome {l:agz} (x: d2cstnul l):<> d2cst extern fun d2cstnul_is_null {l:addr} (x: d2cstnul (l)): bool (l==null) = "atspre_ptr_is_null" // end of [d2cstnul_is_null] extern fun d2cstnul_isnot_null {l:addr} (x: d2cstnul (l)): bool (l > null) = "atspre_ptr_isnot_null" // end of [d2cstnul_isnot_null] (* ****** ****** *) local typedef symd2cst_struct = @{ sym= symbol, cst= d2cstnul } // end of [symd2cst_struct] assume d2cstref_type = ref (symd2cst_struct) in (* in of [local] *) fun d2cstref_get_sym (r: d2cstref): symbol = let val (vbox pf | p) = ref_get_view_ptr (r) in p->sym end // end of [d2cstref_get_sym] (* ****** ****** *) fun d2cstref_get_cstnul (r: d2cstref): d2cstnul = let val (vbox pf | p) = ref_get_view_ptr (r) in p->cst end // end of [d2cstref_get_cstnul] fun d2cstref_set_cstnul (r: d2cstref, d2c: d2cstnul): void = let val (vbox pf | p) = ref_get_view_ptr (r) in p->cst := d2c end // end of [d2cstref_set_cstnul] (* ****** ****** *) implement d2cstref_make (name) = let val id = $SYM.symbol_make_string (name) val (pfgc, pfat | p) = ptr_alloc () prval () = free_gc_elim (pfgc) val () = (p->sym := id; p->cst := d2cstnul_none (null)) in ref_make_view_ptr (pfat | p) end // end of [d2cstref_make] end // end of [local] (* ****** ****** *) implement d2cstref_get_cst (r) = let // fn auxerr (id: symbol): d2cst = let val () = prerr_interror () val () = prerr ": d2cstref_get_cst" val () = prerrln! (": the pervasive dynamic constant [", id, "] is not available.") in $ERR.abort_interr{d2cst}((*reachable*)) end (* end of [auxerr] *) // val d2c = d2cstref_get_cstnul (r) val isnul = d2cstnul_is_null (d2c) // in // if isnul then let val id = d2cstref_get_sym (r) val ans = the_d2expenv_pervasive_find (id) in // case+ ans of | ~Some_vt (s2i) => ( case+ s2i of | D2ITMcst (d2c) => let val () = d2cstref_set_cstnul (r, d2cstnul_some (d2c)) in d2c end // end of [D2ITMcst] | _ => auxerr (id) ) // end of [Some_vt] | ~None_vt ((*void*)) => auxerr (id) // end // end of [then] else d2cstnul_unsome (d2c) // end // end of [d2cstref_get_cst] (* ****** ****** *) implement d2cstref_equ_cst (r, d2c) = eq_d2cst_d2cst (d2cstref_get_cst (r), d2c) // end of [d2cstref_equ_cst] (* ****** ****** *) implement the_sizeof_vt0ype_size = d2cstref_make ("sizeof") (* ****** ****** *) implement d2cst_is_sizeof (d2c) = d2cstref_equ_cst (the_sizeof_vt0ype_size, d2c) // end of [d2cst_is_sizeof] (* ****** ****** *) implement dyncst2_initialize () = () (* ****** ****** *) (* end of [pats_dyncst2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_hidynexp.sats0000644000175000017500000006415713431250607021241 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload SYN = "./pats_syntax.sats" typedef cstsp = $SYN.cstsp // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_histaexp.sats" (* ****** ****** *) // fun d2cst_get2_hisexp (d2c: d2cst): hisexpopt fun d2cst_set2_hisexp (d2c: d2cst, opt: hisexpopt): void // fun d2cst_get2_type_arg (d2c: d2cst): hisexplst fun d2cst_get2_type_res (d2c: d2cst): hisexp // (* ****** ****** *) // fun d2var_get2_hisexp (d2v: d2var): hisexpopt fun d2var_set2_hisexp (d2v: d2var, opt: hisexpopt): void // (* ****** ****** *) fun d2cst_get2_funclo (d2c: d2cst): fcopt_vt fun d2var_get2_funclo (d2v: d2var): fcopt_vt (* ****** ****** *) datatype hipat_node = | HIPany of (d2var) // wildcard | HIPvar of (d2var) // mutability from the context // | HIPint of int | HIPintrep of string // | HIPbool of bool | HIPchar of char | HIPstring of string | HIPfloat of string // | HIPi0nt of $SYN.i0nt | HIPf0loat of $SYN.f0loat // | HIPempty of () // empty pattern // | HIPcon of (* con-pattern *) ( pckind , d2con, hisexp(*tysum*), labhipatlst(*arg*) ) (* HIPcon *) | HIPcon_any of (pckind, d2con) // HX: unused arg // (* | HIPlst of (hisexp(*element*), hipatlst) *) | HIPrec of (* rec-pattern *) ( int(*knd*), pckind, labhipatlst, hisexp(*tyrec*) ) (* HIPrec *) // | HIPrefas of (d2var, hipat) // referenced pattern // | HIPann of (hipat, hisexp(*ann*)) // | HIPerr of ((*placeholder-for-error*)) // HX: error indication // end of [hipat_node] and labhipat = LABHIPAT of (label, hipat) where hipat = '{ hipat_loc= loc_t , hipat_type= hisexp , hipat_node= hipat_node // HX: a variable for storing the value , hipat_asvar= d2varopt // that matches the pattern } // end of [hipat] and hipatlst = List (hipat) and hipatopt = Option (hipat) and labhipatlst = List (labhipat) (* ****** ****** *) fun print_hipat (hip: hipat): void fun prerr_hipat (hip: hipat): void overload print with print_hipat overload prerr with prerr_hipat fun fprint_hipat : fprint_type (hipat) overload fprint with fprint_hipat fun fprint_hipatlst : fprint_type (hipatlst) overload fprint with fprint_hipatlst fun fprint_labhipatlst : fprint_type (labhipatlst) overload fprint with fprint_labhipatlst (* ****** ****** *) fun hipat_get_type (hip: hipat): hisexp fun labhipatlst_get_type (lhips: labhipatlst): labhisexplst fun hipat_set_asvar (hip: hipat, opt: d2varopt): void = "patsopt_hipat_set_asvar" // end of [hipat_set_asvar] (* ****** ****** *) fun labhipatlst_is_unused (lhips: labhipatlst): bool (* ****** ****** *) fun hipat_make_node (loc: loc_t, hse: hisexp, node: hipat_node): hipat (* ****** ****** *) fun hipat_any (loc: loc_t, hse: hisexp, d2v: d2var): hipat fun hipat_var (loc: loc_t, hse: hisexp, d2v: d2var): hipat (* ****** ****** *) fun hipat_con ( loc: loc_t , hse: hisexp, pck: pckind , d2c: d2con, hse_sum: hisexp, lhips: labhipatlst ) : hipat // end of [hipat_con] fun hipat_con_any ( loc: loc_t, hse: hisexp, pck: pckind, d2c: d2con ) : hipat // end of [hipat_con_any] (* ****** ****** *) fun hipat_int (loc: loc_t, hse: hisexp, i: int): hipat fun hipat_intrep (loc: loc_t, hse: hisexp, rep: string): hipat (* ****** ****** *) fun hipat_bool (loc: loc_t, hse: hisexp, b: bool): hipat fun hipat_char (loc: loc_t, hse: hisexp, c: char): hipat fun hipat_float (loc: loc_t, hse: hisexp, rep: string): hipat fun hipat_string (loc: loc_t, hse: hisexp, str: string): hipat (* ****** ****** *) fun hipat_i0nt (loc: loc_t, hse: hisexp, tok: i0nt): hipat fun hipat_f0loat (loc: loc_t, hse: hisexp, tok: f0loat): hipat (* ****** ****** *) fun hipat_empty (loc: loc_t, hse: hisexp): hipat (* ****** ****** *) fun hipat_lst ( loc: loc_t , lin: int, hse_lst: hisexp, hse_elt: hisexp, hips: hipatlst ) : hipat // end of [hipat_lst] (* ****** ****** *) fun hipat_rec ( loc: loc_t , hse: hisexp , knd: int, pck: pckind, lhips: labhipatlst, hse_rec: hisexp ) : hipat // end of [hipat_rec] fun hipat_rec2 ( loc: loc_t , hse: hisexp , knd: int, pck: pckind, lhips: labhipatlst, hse_rec: hisexp ) : hipat // end of [hipat_rec2] (* ****** ****** *) fun hipat_refas ( loc: loc_t, hse: hisexp, d2v: d2var, hip: hipat ) : hipat // end of [hipat_refas] (* ****** ****** *) fun hipat_ann (loc: loc_t, hse: hisexp, hip: hipat, ann: hisexp): hipat // end of [hipat_ann] (* ****** ****** *) fun hipat_is_wild (hip: hipat): bool fun hipatlst_is_wild (hips: hipatlst): bool fun labhipatlst_is_wild (lhips: labhipatlst): bool (* ****** ****** *) // fun hipat_subtest (hip1: hipat, hip2: hipat): bool fun hipatlst_subtest (hips1: hipatlst, hips2: hipatlst): bool fun labhipatlst_subtest (lhips1: labhipatlst, lhips2: labhipatlst): bool // (* ****** ****** *) abstype hidynexp_funlab_type // placeholder for [funlab] abstype hidynexp_hidecl_type // placeholder for [hidecl] abstype hidynexp_instrlst_type // placeholder for [instrlst] (* ****** ****** *) datatype hidecl_node = | HIDnone of () | HIDlist of hideclist // | HIDsaspdec of (s2aspdec) | HIDreassume of (s2cst)(*abstype*) // | HIDextype of (string(*name*), hisexp) | HIDextvar of (string(*name*), hidexp) | HIDextcode of (int(*knd*), int(*pos*), string(*code*)) // end of [HIDextcode] // | HIDexndecs of (d2conlst) // exception decls | HIDdatdecs of (int(*knd*), s2cstlst) // DT decls // | HIDdcstdecs of (dcstkind, d2cstlst) // | HIDimpdec of (int(*knd*), hiimpdec) // | HIDfundecs of (funkind, s2qualst(*decarg*), hifundeclst) // end of [HIDfundecs] // | HIDvaldecs of (valkind, hivaldeclst) | HIDvaldecs_rec of (valkind, hivaldeclst) // | HIDvardecs of (hivardeclst) // variable declarations // | HIDinclude of (int(*sta/dyn*), hideclist) // | HIDstaload of ( symbolopt , filename, int(*ldflag*), filenv, int(*loaded*) ) (* end of [HIDstaload] *) | HIDstaloadloc of (filename(*pfil*), symbol(*nspace*), hideclist) // end of [HIDstaloadloc] // | HIDdynload of (filename) // | HIDlocal of (hideclist (*head*), hideclist (*body*)) // end of [hidecl_node] and hidexp_node = // | HDEcst of (d2cst) // dynamic constants | HDEvar of (d2var) // dynamic variables // | HDEint of int // integer constants | HDEintrep of string // integer constants | HDEbool of bool // boolean constants | HDEchar of char // constant characters | HDEfloat of string // constant floats | HDEstring of string // constant strings // | HDEi0nt of i0nt // integer constants | HDEf0loat of f0loat // floating point constants // | HDEcstsp of (cstsp) // special constants // | HDEtyrep of (hisexp) // supporting C++ templates // | HDEtop of () // for uninitialized | HDEempty of () // for the void value | HDEignore of (hidexp) // ignoring the value of hidexp // | HDEcastfn of (d2cst, hidexp(*arg*)) // castfn application // | HDEextval of (string(*name*)) // externally named values // | HDEextfcall of (string(*fun*), hidexplst(*arg*)) // for fun-calls // end of [HDEextfcall] | HDEextmcall of (hidexp(*obj*), string(*mtd*), hidexplst) // for method-calls // end of [HDEextmcall] // | HDEcon of (d2con, hisexp, labhidexplst(*arg*)) // constructors // | HDEtmpcst of (d2cst, t2mpmarglst) | HDEtmpvar of (d2var, t2mpmarglst) // | HDEfoldat of () // constructor-folding | HDEfreeat of (hidexp) // constructor-freeing // | HDElet of (hideclist, hidexp) // | HDEapp of (hidexp, hisexp(*fun*), hidexplst) // dynamic apps // | HDEif of ( hidexp(*cond*), hidexp(*then*), hidexp(*else*) ) // end of [HDEif] // | HDEsif of (s2exp(*cond*), hidexp(*then*), hidexp(*else*)) (* end of [HDEsif] *) // | HDEcase of ( caskind, hidexplst(*values*), hiclaulst(*clauses*) ) // end of [HDEcase] // | HDElst of (* list expression *) (int(*lin*), hisexp(*elt*), hidexplst) | HDErec of (int(*knd*), labhidexplst, hisexp(*tyrec*)) // end of [HDErec] | HDEseq of (hidexplst) // sequencing // // HX: record field selection; array subscripting // | HDEselab of (hidexp, hisexp(*flt*), hilablst) // | HDEptrofvar of (d2var) // taking address of a variable | HDEptrofsel of (hidexp, hisexp(*root*), hilablst) // taking the address of ... // end of [HDEptrofsel] // | HDErefarg of (int(*refval*), int(*freeknd*), hidexp) // | HDEselvar of (d2var, hisexp(*root*), hilablst) // var-path-selction | HDEselptr of (hidexp, hisexp(*root*), hilablst) // ptr-path_selection // | HDEassgn_var of (d2var(*left*), hisexp(*root*), hilablst, hidexp(*right*)) | HDEassgn_ptr of (hidexp(*left*), hisexp(*root*), hilablst, hidexp(*right*)) // | HDExchng_var of (d2var(*left*), hisexp(*root*), hilablst, hidexp(*right*)) | HDExchng_ptr of (hidexp(*left*), hisexp(*root*), hilablst, hidexp(*right*)) // | HDEarrpsz of (* arrsize construction *) (hisexp(*elt*), hidexplst(*elt*), int(*asz*)) | HDEarrinit of (* array initialization *) (hisexp(*elt*), hidexp(*asz*), hidexplst(*elt*), int(*asz*)) // | HDEraise of (hidexp(*exn*)) // | HDEvararg of (hidexplst(*arg*)) // $vararg for variadicity // (* | HDEvcopyenv of (d2var) // HX: HDEvar *) | HDEtempenver of (d2varlst) // for environvars // | HDElam of (int(*knd=0/1:flat/boxed*), hipatlst, hidexp) // HX: lam_dyn // | HDEfix of (int(*knd=0/1:flat/boxed*), d2var(*fixvar*), hidexp) // fixed-point // | HDEdelay of hidexp(*eval*) // delayed evaluation | HDEldelay of (hidexp(*eval*), hidexp(*free*)) // delayed evaluation | HDElazyeval of (int(*lin*), hidexp) // lazy-value evaluation // | HDEloop of (* for/while-loops *) ( hidexpopt(*init*), hidexp(*test*), hidexpopt(*post*), hidexp(*body*) ) | HDEloopexn of (int(*knd*)) (* knd=0/1: break/continue *) // | HDEtrywith of (hidexp(*try-exp*), hiclaulst(*with-clauses*)) // | HDEerrexp of ((*void*)) // HX: indication of error // end of [hidexp_node] and labhidexp = LABHIDEXP of (label, hidexp) and hilab_node = | HILlab of (label) // field selection | HILind of (hidexplst(*index*)) // arrsub // end of [hilab_node] where hidecl = '{ hidecl_loc= loc_t, hidecl_node= hidecl_node } (* end of [hidecl] *) and hideclist = List (hidecl) and hideclopt = Option (hidecl) and hideclistopt = Option (hideclist) and hidexp = '{ hidexp_loc= loc_t , hidexp_type= hisexp, hidexp_node= hidexp_node } (* end of [hidexp] *) and hidexplst = List (hidexp) and hidexpopt = Option (hidexp) and labhidexplst = List (labhidexp) (* ****** ****** *) and hilab = '{ hilab_loc= loc_t, hilab_node= hilab_node } (* end of [hilab] *) and hilablst = List (hilab) (* ****** ****** *) and higmat = '{ higmat_loc= loc_t , higmat_exp= hidexp , higmat_pat= hipatopt } (* end of [higmat] *) and higmatlst = List (higmat) (* ****** ****** *) and hiclau = '{ hiclau_loc= loc_t , hiclau_pat= hipatlst (* pattern *) , hiclau_gua= higmatlst (* clause guard *) , hiclau_seq= int // sequentiality , hiclau_neg= int // negativativity , hiclau_body= hidexp (* clause body *) } (* end of [hiclau] *) and hiclaulst = List (hiclau) (* ****** ****** *) and hifundec = '{ hifundec_loc= loc_t , hifundec_var= d2var , hifundec_imparg= s2varlst , hifundec_def= hidexp , hifundec_hidecl= Option (hidynexp_hidecl_type) , hifundec_funlab= Option (hidynexp_funlab_type) } (* end of [hifundec] *) and hifundeclst = List (hifundec) (* ****** ****** *) and hivaldec = '{ hivaldec_loc= loc_t , hivaldec_pat= hipat , hivaldec_def= hidexp } (* end of [hivaldec] *) and hivaldeclst = List (hivaldec) (* ****** ****** *) and hivardec = '{ hivardec_loc= loc_t , hivardec_knd= int , hivardec_dvar_ptr= d2var , hivardec_dvar_view= d2var , hivardec_type= hisexp , hivardec_init= hidexpopt } (* end of [hivardec] *) and hivardeclst = List (hivardec) (* ****** ****** *) and hiimpdec = '{ hiimpdec_loc= loc_t , hiimpdec_knd= int // 0/1 , hiimpdec_cst= d2cst , hiimpdec_imparg= s2varlst , hiimpdec_tmparg= s2explstlst , hiimpdec_def= hidexp // , hiimpdec_funlab= Option (hidynexp_funlab_type) , hiimpdec_instrlst= Option (hidynexp_instrlst_type) // } (* end of [hiimpdec] *) and hiimpdeclst = List (hiimpdec) (* ****** ****** *) // fun print_hidexp (x: hidexp): void fun prerr_hidexp (x: hidexp): void fun fprint_hidexp : fprint_type (hidexp) // overload print with print_hidexp overload prerr with prerr_hidexp overload fprint with fprint_hidexp // (* ****** ****** *) fun fprint_hidexplst : fprint_type (hidexplst) fun fprint_hidexpopt : fprint_type (hidexpopt) fun fprint_labhidexplst : fprint_type (labhidexplst) (* ****** ****** *) fun fprint_hilab : fprint_type (hilab) fun fprint_hilablst : fprint_type (hilablst) (* ****** ****** *) // fun print_hidecl (x: hidecl): void overload print with print_hidecl // fun prerr_hidecl (x: hidecl): void overload prerr with prerr_hidecl // fun fprint_hidecl : fprint_type (hidecl) fun fprint_hideclist : fprint_type (hideclist) // (* ****** ****** *) fun fprint_hifundec : fprint_type (hifundec) fun fprint_hivaldec : fprint_type (hivaldec) fun fprint_hivardec : fprint_type (hivardec) fun fprint_hiimpdec : fprint_type (hiimpdec) (* ****** ****** *) fun hidexp_get_type (hde: hidexp): hisexp fun hidexplst_get_type (hdes: hidexplst): hisexplst fun labhidexplst_get_type (lhdes: labhidexplst): labhisexplst (* ****** ****** *) // fun hidexp_is_empty (hde: hidexp): bool fun hidexplst_isall_empty (hdes: hidexplst): bool fun hidexplst_isexi_empty (hdes: hidexplst): bool // (* ****** ****** *) fun hidexp_is_value (hde: hidexp): bool fun hidexp_is_lvalue (hde: hidexp): bool (* ****** ****** *) fun hidexp_make_node (loc: loc_t, hse: hisexp, node: hidexp_node): hidexp // end of [hidexp_make_node] (* ****** ****** *) fun hidexp_var (loc: loc_t, hse: hisexp, d2v: d2var): hidexp // end of [hidexp_var] fun hidexp_cst (loc: loc_t, hse: hisexp, d2c: d2cst): hidexp // end of [hidexp_cst] (* ****** ****** *) fun hidexp_int (loc: loc_t, hse: hisexp, i: int): hidexp fun hidexp_intrep (loc: loc_t, hse: hisexp, rep: string): hidexp fun hidexp_bool (loc: loc_t, hse: hisexp, b: bool): hidexp fun hidexp_char (loc: loc_t, hse: hisexp, c: char): hidexp fun hidexp_float (loc: loc_t, hse: hisexp, rep: string): hidexp fun hidexp_string (loc: loc_t, hse: hisexp, str: string): hidexp (* ****** ****** *) fun hidexp_i0nt (loc: loc_t, hse: hisexp, tok: i0nt): hidexp fun hidexp_f0loat (loc: loc_t, hse: hisexp, tok: f0loat): hidexp (* ****** ****** *) fun hidexp_cstsp (loc: loc_t, hse: hisexp, x: cstsp): hidexp // end of [hidexp_cstsp] (* ****** ****** *) fun hidexp_tyrep (loc: loc_t, hse: hisexp, x: hisexp): hidexp // end of [hidexp_tyrep] (* ****** ****** *) fun hidexp_top (loc: loc_t, hse: hisexp): hidexp fun hidexp_empty (loc: loc_t, hse: hisexp): hidexp fun hidexp_ignore (loc: loc_t, hse: hisexp, hde: hidexp): hidexp (* ****** ****** *) fun hidexp_castfn ( loc: loc_t, hse: hisexp, d2c: d2cst, arg: hidexp ) : hidexp // end of [hidexp_castfn] (* ****** ****** *) fun hidexp_extval ( loc: loc_t, hse: hisexp, name: string ) : hidexp // end of [hidexp_extval] fun hidexp_extfcall ( loc: loc_t , hse: hisexp, _fun: string, _arg: hidexplst ) : hidexp // end of [hidexp_extfcall] fun hidexp_extmcall ( loc: loc_t , hse: hisexp, _obj: hidexp, _mtd: string, _arg: hidexplst ) : hidexp // end of [hidexp_extmcall] (* ****** ****** *) fun hidexp_con ( loc: loc_t, hse: hisexp , d2c: d2con, hse_sum: hisexp, lhdes: labhidexplst ) : hidexp // end of [hidexp_con] (* ****** ****** *) fun hidexp_tmpcst ( loc: loc_t, hse: hisexp, d2c: d2cst, t2mas: t2mpmarglst ) : hidexp // end of [hidexp_tmpcst] fun hidexp_tmpvar ( loc: loc_t, hse: hisexp, d2v: d2var, t2mas: t2mpmarglst ) : hidexp // end of [hidexp_tmpvar] (* ****** ****** *) fun hidexp_foldat (loc: loc_t, hse: hisexp): hidexp fun hidexp_freeat (loc: loc_t, hse: hisexp, hde: hidexp): hidexp (* ****** ****** *) fun hidexp_let (loc: loc_t, hse: hisexp, hids: hideclist, hde: hidexp): hidexp // end of [hidexp_let] fun hidexp_let_simplify (loc: loc_t, hse: hisexp, hids: hideclist, hde: hidexp): hidexp // end of [hidexp_let_simplify] (* ****** ****** *) fun hidexp_app ( loc: loc_t , hse: hisexp, hse_fun: hisexp, _fun: hidexp, _arg: hidexplst ) : hidexp // end of [hidexp_app] fun hidexp_app2 ( loc: loc_t , hse: hisexp, hse_fun: hisexp, _fun: hidexp, _arg: hidexplst ) : hidexp // end of [hidexp_app2] (* ****** ****** *) fun hidexp_if ( loc: loc_t , hse: hisexp, _cond: hidexp, _then: hidexp, _else: hidexp ) : hidexp // end of [hidexp_if] fun hidexp_sif ( loc: loc_t , hse: hisexp, _cond: s2exp, _then: hidexp, _else: hidexp ) : hidexp // end of [hidexp_sif] (* ****** ****** *) fun hidexp_case ( loc: loc_t , hse: hisexp, knd: caskind, hdes: hidexplst, hcls: hiclaulst ) : hidexp // end of [hidexp_case] (* ****** ****** *) fun hidexp_lst ( loc: loc_t , hse: hisexp, lin: int, hse_elt: hisexp, hdes: hidexplst ) : hidexp // end of [hidexp_lst] (* ****** ****** *) fun hidexp_rec ( loc: loc_t , hse: hisexp, knd: int, lhses: labhidexplst, hse_rec: hisexp ) : hidexp // end of [hidexp_rec] fun hidexp_rec2 ( loc: loc_t , hse: hisexp, knd: int, lhses: labhidexplst, hse_rec: hisexp ) : hidexp // end of [hidexp_rec2] (* ****** ****** *) // fun hidexp_seq (loc: loc_t, hse: hisexp, hdes: hidexplst): hidexp // end of [hidexp_seq] fun hidexp_seq_simplify (loc: loc_t, hse: hisexp, hdes: hidexplst): hidexp // end of [hidexp_seq_simply] // (* ****** ****** *) fun hidexp_selab ( loc: loc_t , hse: hisexp, hde: hidexp, hse_flt: hisexp, hils: hilablst ) : hidexp // end of [hidexp_selab] (* ****** ****** *) fun hidexp_ptrofvar (loc: loc_t, hse: hisexp, d2v: d2var): hidexp fun hidexp_ptrofsel ( loc: loc_t , hse: hisexp, hde: hidexp, hse_rt: hisexp, hils: hilablst ) : hidexp // end of [hidexp_ptrofsel] (* ****** ****** *) fun hidexp_refarg ( loc: loc_t , hse: hisexp, refval: int, freeknd: int, hde: hidexp ) : hidexp // end of [hidexp_refarg] (* ****** ****** *) fun hidexp_selvar ( loc: loc_t , hse: hisexp, d2v: d2var, hse_rt: hisexp, hils: hilablst ) : hidexp // end of [hidexp_selvar] fun hidexp_selptr ( loc: loc_t , hse: hisexp, hde: hidexp, hse_rt: hisexp, hils: hilablst ) : hidexp // end of [hidexp_selptr] (* ****** ****** *) fun hidexp_assgn_var ( loc: loc_t , hse: hisexp , d2v_l: d2var, hse_rt: hisexp, hils: hilablst, hde_r: hidexp ) : hidexp // end of [hidexp_assgn_var] fun hidexp_assgn_ptr ( loc: loc_t , hse: hisexp , hde_l: hidexp, hse_rt: hisexp, hils: hilablst, hde_r: hidexp ) : hidexp // end of [hidexp_assgn_ptr] (* ****** ****** *) fun hidexp_xchng_var ( loc: loc_t , hse: hisexp , d2v_l: d2var, hse_rt: hisexp, hils: hilablst, hde_r: hidexp ) : hidexp // end of [hidexp_xchng_var] fun hidexp_xchng_ptr ( loc: loc_t , hse: hisexp , hde_l: hidexp, hse_rt: hisexp, hils: hilablst, hde_r: hidexp ) : hidexp // end of [hidexp_xchng_ptr] (* ****** ****** *) fun hidexp_arrpsz ( loc: loc_t , hse: hisexp , hse_elt: hisexp, hdes_elt: hidexplst, asz: int ) : hidexp // end of [hidexp_arrpsz] fun hidexp_arrinit ( loc: loc_t , hse: hisexp , hse_elt: hisexp , hde_asz: hidexp, hdes_elt: hidexplst, asz: int ) : hidexp // end of [hidexp_arrinit] (* ****** ****** *) // fun hidexp_raise ( loc: loc_t , hse: hisexp, hde_exn: hidexp): hidexp // end of [hidexp_raise] // (* ****** ****** *) // fun hidexp_vararg ( loc: loc_t , hse: hisexp, hdes: hidexplst): hidexp // (* ****** ****** *) // fun hidexp_vcopyenv (loc: loc_t, hse: hisexp, d2v: d2var): hidexp // (* ****** ****** *) // fun hidexp_tempenver (loc: loc_t, hse: hisexp, d2vs: d2varlst): hidexp // (* ****** ****** *) fun hidexp_lam ( loc: loc_t, hse: hisexp, knd: int, hips: hipatlst, hde: hidexp ) : hidexp // end of [hidexp_lam] (* ****** ****** *) fun hidexp_fix ( loc: loc_t, hse: hisexp, knd: int, f_d2v: d2var, hde_def: hidexp ) : hidexp // end of [hidexp_fix] (* ****** ****** *) // fun hidexp_delay (loc: loc_t, hse: hisexp, hde: hidexp): hidexp fun hidexp_ldelay (loc: loc_t, hse: hisexp, _eval: hidexp, _free: hidexp): hidexp // fun hidexp_lazyeval (loc: loc_t, hse: hisexp, lin: int, hde: hidexp): hidexp // (* ****** ****** *) fun hidexp_loop ( loc: loc_t, hse: hisexp , init: hidexpopt, test: hidexp, post: hidexpopt, body: hidexp ) : hidexp // end of [hidexp_loop] fun hidexp_loopexn (loc: loc_t, hse: hisexp, knd: int): hidexp // end of [hidexp_loopexn] (* ****** ****** *) fun hidexp_trywith ( loc: loc_t, hse: hisexp, _try: hidexp, _with: hiclaulst ) : hidexp // end of [hidexp_trywith] (* ****** ****** *) fun hidexp_errexp (loc: loc_t, hse: hisexp): hidexp (* ****** ****** *) (* fun un_hidexp_int (hde_int: hidexp): Option_vt (int) *) (* ****** ****** *) fun hilab_lab (loc: loc_t, lab: label): hilab fun hilab_ind (loc: loc_t, ind: hidexplst): hilab (* ****** ****** *) fun higmat_make (loc: loc_t, hde: hidexp, opt: hipatopt): higmat fun hiclau_make ( loc: loc_t , hips: hipatlst, gua: higmatlst, seq: int, neg: int, body: hidexp ) : hiclau // end of [hiclau_make] (* ****** ****** *) fun hifundec_make ( loc: loc_t, d2v: d2var, imparg: s2varlst, def: hidexp ) : hifundec // end of [hifundec_make] fun hifundec_get_hideclopt (hfd: hifundec): hideclopt fun hifundec_getref_hideclopt (hfd: hifundec): Ptr1 = "patsopt_hifundec_getref_hideclopt" fun hifundec_getref_funlabopt (hfd: hifundec): Ptr1 = "patsopt_hifundec_getref_funlabopt" fun hifundeclst_set_hideclopt (hfds: hifundeclst, opt: hideclopt): void (* ****** ****** *) fun hivaldec_make (loc: loc_t, pat: hipat, def: hidexp): hivaldec // end of [hivaldec_make] fun hivardec_make ( loc: loc_t, knd: int , d2v: d2var, d2vw: d2var, type: hisexp, init: hidexpopt ) : hivardec // end of [hivardec_make] (* ****** ****** *) fun hiimpdec_make ( loc: loc_t, knd: int , d2c: d2cst, imparg: s2varlst, tmparg: s2explstlst, def: hidexp ) : hiimpdec // end of [hiimpdec_make] fun hiimpdec_getref_funlabopt (imp: hiimpdec): Ptr1 = "patsopt_hiimpdec_getref_funlabopt" // end of [hiimpdec_getref_funlabopt] fun hiimpdec_getref_instrlstopt (imp: hiimpdec): Ptr1 = "patsopt_hiimpdec_getref_instrlstopt" // end of [hiimpdec_getref_instrlstopt] (* ****** ****** *) fun hidecl_make_node (loc: loc_t, node: hidecl_node): hidecl // end of [hidecl_make_node] (* ****** ****** *) fun hidecl_is_empty (hid: hidecl): bool (* ****** ****** *) fun hidecl_none (loc: loc_t): hidecl fun hidecl_list (loc: loc_t, hids: hideclist): hidecl (* ****** ****** *) // fun hidecl_saspdec (loc: loc_t, d2c: s2aspdec): hidecl fun hidecl_reassume (loc: loc_t, s2c_abs: s2cst): hidecl // (* ****** ****** *) // fun hidecl_extype (loc: loc_t, name: string, hse_def: hisexp): hidecl fun hidecl_extvar (loc: loc_t, name: string, hde_def: hidexp): hidecl // (* ****** ****** *) fun hidecl_extcode (loc: loc_t, knd: int, pos: int, code: string): hidecl // end of [hidecl_extcode] (* ****** ****** *) fun hidecl_exndecs (loc: loc_t, d2cs: d2conlst) : hidecl fun hidecl_datdecs (loc: loc_t, knd: int, s2cs: s2cstlst) : hidecl // end of [hidecl_datdecs] (* ****** ****** *) fun hidecl_dcstdecs ( loc: loc_t, dck: dcstkind, d2cs: d2cstlst ) : hidecl // end of [hidecl_dcstdecs] fun hidecl_impdec (loc: loc_t, knd: int, himp: hiimpdec): hidecl // end of [hidecl_impdec] fun hidecl_fundecs ( loc: loc_t, knd: funkind, decarg: s2qualst, hfds: hifundeclst ) : hidecl // end of [hidecl_fundecs] fun hidecl_valdecs (loc: loc_t, knd: valkind, hvds: hivaldeclst): hidecl // end of [hidecl_valdecs] fun hidecl_valdecs_rec (loc: loc_t, knd: valkind, hvds: hivaldeclst): hidecl // end of [hidecl_valdecs_rec] fun hidecl_vardecs (loc: loc_t, hvds: hivardeclst): hidecl (* ****** ****** *) fun hidecl_include (loc: loc_t, stadyn: int, hids: hideclist): hidecl // end of [hidecl_include] (* ****** ****** *) fun hidecl_staload ( loc: loc_t , idopt: symbolopt , fname: filename, flag: int, fenv: filenv, loaded: int ) : hidecl // end of [hidecl_staload] fun hidecl_staloadloc ( loc: loc_t, pfil: filename, nspace: symbol, hids: hideclist ) : hidecl // end of [hidecl_staloadloc] (* ****** ****** *) fun hidecl_dynload (loc: loc_t, cfil: filename): hidecl (* ****** ****** *) fun hidecl_local (loc: loc_t, head: hideclist, body: hideclist): hidecl // end of [hidecl_local] (* ****** ****** *) // typedef tmpcstimpmap = d2cstmap (hiimpdeclst) typedef tmpcstimpmapopt = Option (tmpcstimpmap) // fun tmpcstimpmap_find (map: tmpcstimpmap, d2c: d2cst): hiimpdeclst // fun tmpcstimpmap_insert (map: &tmpcstimpmap, imp: hiimpdec): void // fun filenv_get_tmpcstimpmapopt (fenv: filenv): tmpcstimpmapopt // (* ****** ****** *) // typedef tmpvardecmap = d2varmap (hifundec) typedef tmpvardecmapopt = Option (tmpvardecmap) // fun tmpvardecmap_find (map: tmpvardecmap, d2v: d2var): Option_vt (hifundec) // fun tmpvardecmap_insert (map: &tmpvardecmap, hfd: hifundec): void fun tmpvardecmap_inserts (map: &tmpvardecmap, hfds: hifundeclst): void // fun filenv_get_tmpvardecmapopt (fenv: filenv): tmpvardecmapopt // (* ****** ****** *) (* end of [pats_hidynexp.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_error.dats0000644000175000017500000000524513431250607022006 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_trans3.sats" (* ****** ****** *) // vtypedef trans3errlst_vt = List_vt (trans3err) // (* ****** ****** *) local val the_trans3errlst = ref (list_vt_nil) fun the_trans3errlst_get ( // argumentless ) : trans3errlst_vt = let val (vbox pf | p) = ref_get_view_ptr (the_trans3errlst) val xs = !p val () = !p := list_vt_nil () in xs end // end of [the_trans3errlst_get] in (* in-of-local *) implement the_trans3errlst_add (x) = () where { val (vbox pf | p) = ref_get_view_ptr (the_trans3errlst) val () = !p := list_vt_cons (x, !p) } // end of [the_trans3errlst_add] implement the_trans3errlst_finalize () = { val xs = the_trans3errlst_get () // end of [val] val nxs = list_vt_length (xs) val ((*freed*)) = list_vt_free (xs) // (* val () = if nxs > 0 then { val () = fprintf ( stderr_ref , "patsopt(TRANS3): there are [%i] errors in total.\n", @(nxs) ) (* end of [fprintf] *) } (* end of [if] *) // end of [val] // *) val () = if nxs > 0 then $raise($ERR.PATSOPT_TRANS3_EXN()) // end of [if] } (* end of [the_trans3errlst_finalize] *) end // end of [local] (* ****** ****** *) (* end of [pats_trans3_error.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_util.dats0000644000175000017500000002444513431250607021524 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "pats_basics.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_histaexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) implement tmpvar_is_void (tmp) = hisexp_is_void (tmpvar_get_type (tmp)) // end of [tmpvar_is_void] (* ****** ****** *) implement primval_is_void (pmv) = hisexp_is_void (pmv.primval_type) // end of [primval_is_void] (* ****** ****** *) implement primval_is_top (pmv) = ( case+ pmv.primval_node of PMVtop () => true | _ => false ) // end of [primval_is_top] (* ****** ****** *) // // HX-2013-02: // [pmv] should not be assgined to a variable: // it is either a left-value, a field-section, or a lamfix-value // implement primval_is_nshared (pmv) = let in // case+ pmv.primval_node of | PMVtmpref _ => true // left-value | PMVargref _ => true // left-value // | PMVselcon _ => true // field-selection | PMVselect _ => true // field-selection | PMVselect2 _ => true // field-selection // | PMVselptr _ => true // left-value // | PMVlamfix _ => true // lamfix-value // | PMVcastfn (d2c, pmv) => primval_is_nshared (pmv) // | _ => false // end // end of [primval_is_nshared] (* ****** ****** *) implement primval_make_funlab (loc, fl) = let // val hse = funlab_get_type (fl) val funclo = funlab_get_funclo (fl) // in // case+ funclo of | FUNCLOfun () => primval_funlab (loc, hse, fl) | FUNCLOclo (knd) => primval_cfunlab (loc, hse, knd, fl) // end // end of [primval_make_funlab] (* ****** ****** *) implement primval_make2_funlab (loc, hse0, fl) = let // val hse = funlab_get_type(fl) val funclo = funlab_get_funclo(fl) // in // case+ funclo of | FUNCLOfun() => primval_funlab(loc, hse0, fl) | FUNCLOclo(knd) => primval_cfunlab(loc, hse0, knd, fl) // end // end of [primval_make2_funlab] (* ****** ****** *) implement primval_make_d2vfunlab (loc, d2v, fl) = let val hse = funlab_get_type(fl) in primval_d2vfunlab(loc, hse, d2v, fl) end // end of [primval_make_d2vfunlab] (* ****** ****** *) implement patckont_is_none(fail) = case+ fail of PTCKNTnone() => true | _ => false // end of [patckont_is_none] (* ****** ****** *) implement tmpsub2stasub (tsub) = let // fun loop (sub: &stasub, tsub: tmpsub): void = let in // case+ tsub of | TMPSUBcons (s2v, s2e, tsub) => let val () = stasub_add (sub, s2v, s2e) in loop (sub, tsub) end // end of [TMPSUBcons] | TMPSUBnil () => () // end // end of [loop] // var sub : stasub = stasub_make_nil () val () = loop (sub, tsub) // in sub end // end of [tmpsub2stasub] (* ****** ****** *) implement tmpsub_append (xs1, xs2) = let in case+ xs1 of | TMPSUBcons (s2v, s2f, xs1) => TMPSUBcons (s2v, s2f, tmpsub_append (xs1, xs2)) | TMPSUBnil () => xs2 end // end of [tmpsub_append] (* ****** ****** *) #if(0) extern fun tailcalck ( env: !ccompenv , tmpret: tmpvar, pmv: primval, ntl0: &int? >> int ) : funlabopt_vt // end of [tailcalck] implement tailcalck (env, tmpret, pmv, ntl0) = let // val () = ntl0 := ~1 val isret = tmpvar_isret (tmpret) // in // if isret then ( case+ pmv.primval_node of (* case+ *) | PMVcst (d2c) => let val () = ntl0 := 0 in ccompenv_find_tailcalenv_cst (env, d2c) end // end of [PMVcst] | PMVfunlab (fl) => let val ntl = ccompenv_find_tailcalenv (env, fl) val () = ntl0 := ntl in if ntl >= 0 then Some_vt (fl) else None_vt () end // end of [PMVfunlab] | PMVcfunlab (knd, fl) => let val ntl = ccompenv_find_tailcalenv (env, fl) val () = ntl0 := ntl in if ntl >= 0 then Some_vt (fl) else None_vt () end // end of [PMVcfunlab] | _ => None_vt () ) else None_vt () // end of [if] // end // end of [tailcalck] #endif // #if(0) (* ****** ****** *) local fun aux ( res: &tmpvarset_vt, x: instr ) : void = let // macdef tmpadd (tmp) = (res := tmpvarset_vt_add (res, ,(tmp))) // in // case+ x.instr_node of // | INSfunlab _ => () | INStmplab _ => () // | INScomment _ => () // | INSmove_val (tmp, _) => tmpadd (tmp) | INSpmove_val (tmp, _) => tmpadd (tmp) // | INSmove_arg_val _ => () // | INSfcall (tmp, _, _, _) => tmpadd (tmp) | INSfcall2 (tmp, _, _, _, _) => tmpadd (tmp) // | INSextfcall (tmp, _fun, _arg) => tmpadd (tmp) | INSextmcall (tmp, _obj, _mtd, _arg) => tmpadd (tmp) // | INScond ( _, _then, _else ) => () where { val ((*void*)) = auxlst(res, _then) and ((*void*)) = auxlst(res, _else) } // end of [INScond] // | INSfreecon _ => () // | INSloop ( _, _, _ , _init, _, _test, _post, _body ) => () where { val ((*void*)) = auxlst(res, _init) and ((*void*)) = auxlst(res, _test) and ((*void*)) = auxlst(res, _post) and ((*void*)) = auxlst(res, _body) } // end of [INSloop] // | INSloopexn(knd, tlab) => () // HX: knd=0/1: break/continue // | INScaseof (ibrs) => auxibrlst (res, ibrs) // | INSletpop() => () | INSletpush(pmds) => auxpmdlst(res, pmds) // | INSmove_con (tmp, _, _, _) => tmpadd(tmp) // INSmove_con // | INSmove_ref(tmp, _) => tmpadd (tmp) // | INSmove_boxrec(tmp, _, _) => tmpadd(tmp) | INSmove_fltrec(tmp, _, _) => tmpadd(tmp) // | INSpatck _ => () // | INSmove_ptrofsel(tmp, _, _, _) => tmpadd(tmp) // (* | INSload_ptrofs (tmp, _, _, _) => tmpadd (tmp) *) | INSstore_ptrofs _ => () | INSxstore_ptrofs (tmp, _, _, _, _) => tmpadd (tmp) // | INSmove_delay (tmp, _, _, _) => tmpadd (tmp) | INSmove_lazyeval (tmp, _, _, _) => tmpadd (tmp) // | INSraise _ => () | INStrywith (tmp, _try, _with) => ( tmpadd (tmp); auxlst (res, _try); auxibrlst (res, _with) ) // | INSmove_list_nil (tmp) => tmpadd (tmp) | INSpmove_list_nil (tmp) => tmpadd (tmp) | INSpmove_list_cons (tmp, _) => tmpadd (tmp) // | INSmove_list_phead (tmp_hd, tmp_tl, _) => tmpadd (tmp_hd) | INSmove_list_ptail (tmp1_tl, tmp2_tl, _) => tmpadd (tmp1_tl) // | INSmove_arrpsz_ptr (tmp, _) => tmpadd (tmp) // | INSstore_arrpsz_asz (tmp, _) => tmpadd (tmp) | INSstore_arrpsz_ptr (tmp, _, _) => tmpadd (tmp) // | INSupdate_ptrinc (tmp(*ptr*), _(*type*)) => () | INSupdate_ptrdec (tmp(*ptr*), _(*type*)) => () // | INSclosure_initize _ => () // | INStmpdec(tmp) => tmpadd(tmp) // | INSextvar(d2c, pmv) => ((*void*)) | INSdcstdef(d2c, pmv) => ((*void*)) // | INStempenver(_(*d2vs*)) => ((*void*)) // end // end of [aux] and auxlst ( res: &tmpvarset_vt, xs: instrlst ) : void = let in // case+ xs of | list_cons (x, xs) => let val () = aux (res, x) in auxlst (res, xs) end // end of [list_cons] | list_nil () => () // end // end of [auxlst] and auxibr ( res: &tmpvarset_vt, ibr: ibranch ) : void = let in auxlst (res, ibr.ibranch_inslst) end // end of [auxibr] and auxibrlst ( res: &tmpvarset_vt, ibrs: ibranchlst ) : void = let in // case+ ibrs of | list_cons (ibr, ibrs) => let val () = auxibr (res, ibr) in auxibrlst (res, ibrs) end // end of [list_cons] | list_nil () => ((*empty*)) // end // end of [auxibrlst] and auxpmd ( res: &tmpvarset_vt, pmd: primdec ) : void = let in // case+ pmd.primdec_node of | PMDnone () => () // | PMDlist (pmds) => auxpmdlst (res, pmds) // | PMDsaspdec _ => () // | PMDextvar (name, inss) => let val inss = $UN.cast{instrlst}(inss) in auxlst (res, inss) end // end of [PMDextvar] // | PMDdatdecs _ => ((*void*)) | PMDexndecs _ => ((*void*)) // | PMDimpdec (impdec) => let val opt = hiimpdec_get_instrlstopt (impdec) in case+ opt of | None () => () | Some (inss) => auxlst (res, inss) end // end of [PMDimpdec] // | PMDfundecs _ => ((*void*)) // | PMDvaldecs (_, _, inss) => let val inss = $UN.cast{instrlst}(inss) in auxlst (res, inss) end // end of [PMDvaldecs] | PMDvaldecs_rec (_, _, inss) => let val inss = $UN.cast{instrlst}(inss) in auxlst (res, inss) end // end of [PMDvaldecs_rec] // | PMDvardecs (_, inss) => let val inss = $UN.cast{instrlst}(inss) in auxlst (res, inss) end // end of [PMDvardecs] // | PMDinclude (knd, pmds) => auxpmdlst (res, pmds) // | PMDstaload _ => () // | PMDstaloadloc (pfil, nspace, pmds) => auxpmdlst (res, pmds) // | PMDdynload _ => () // | PMDlocal ( pmds_head, pmds_body ) => { val () = auxpmdlst (res, pmds_head) val () = auxpmdlst (res, pmds_body) } // end of [PMDlocal] // end // end of [auxpmd] and auxpmdlst ( res: &tmpvarset_vt, pmds: primdeclst ) : void = let in // case+ pmds of | list_cons (pmd, pmds) => let val () = auxpmd (res, pmd) in auxpmdlst (res, pmds) end // end of [list_cons] | list_nil () => () // end // end of [auxpmdlst] in (* in of [local] *) implement instrlst_get_tmpvarset (xs) = let // var res : tmpvarset_vt = tmpvarset_vt_nil () val () = auxlst (res, xs) // in res end // end of [instrlst_get_tmpvarset] implement primdeclst_get_tmpvarset (xs) = let // var res : tmpvarset_vt = tmpvarset_vt_nil () val () = auxpmdlst (res, xs) // in res end // end of [primdeclst_get_tmpvarset] end // end of [local] (* ****** ****** *) (* end of [pats_ccomp_util.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp1_print.dats0000644000175000017500000004645013431250607022167 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: April, 2011 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" // (* ****** ****** *) staload EFF = "./pats_effect.sats" (* ****** ****** *) staload "./pats_syntax.sats" staload "./pats_staexp1.sats" (* ****** ****** *) // macdef fprint_symbol = $SYM.fprint_symbol // (* ****** ****** *) // implement fprint_v1al (out, v0) = let // macdef prstr(str) = fprint_string(out, ,(str)) // in // case+ v0 of | V1ALint(x) => { val () = prstr "V1ALint(" val () = fprint_int (out, x) val () = prstr ")" } | V1ALchar(x) => { val () = prstr "V1ALchar(" val () = fprint_char (out, x) val () = prstr ")" } | V1ALstring(x) => { val () = prstr "V1ALstring(" val () = fprint_string (out, x) val () = prstr ")" } | V1ALfloat(x) => { val () = prstr "V1ALdouble(" val () = fprint_double (out, x) val () = prstr ")" } | V1ALerr((*void*)) => prstr "V1ALerr()" // end // end of [fprint_v1al] // implement print_v1al(x) = fprint_v1al(stdout_ref, x) implement prerr_v1al(x) = fprint_v1al(stderr_ref, x) // (* ****** ****** *) implement fprint_e1xp (out, e0) = let // macdef prstr(str) = fprint_string (out, ,(str)) // in // case+ e0.e1xp_node of // case+ // | E1XPide (id) => fprint_symbol (out, id) // end of [E1XPide] // | E1XPint (int) => { val () = prstr "E1XPint(" val () = fprint_int (out, int) val () = prstr ")" } // end of [E1XPint] | E1XPintrep (rep) => { val () = prstr "E1XPintrep(" val () = fprint_string (out, rep) val () = prstr ")" } // end of [E1XPi0nt] | E1XPchar (c: char) => begin prstr "E1XPchar("; fprint_char (out, c); prstr ")" end // end of [E1XPchar] | E1XPfloat (f: string) => begin prstr "E1XPfloat("; fprint_string (out, f); prstr ")" end // end of [E1XPfloat] // | E1XPv1al (v) => begin prstr "E1XPv1al("; fprint_v1al (out, v); prstr ")" end // end of [E1XPv1al] // | E1XPnone () => begin fprint_string (out, "E1XPnone()") end // end of [E1XPnone] | E1XPundef () => begin fprint_string (out, "E1XPundef()") end // end of [E1XPundef] | E1XPstring (str) => { val () = prstr "E1XPstring(" val () = fprint_string (out, str) val () = prstr ")" } // end of [E1XPstring] // | E1XPapp ( e_fun, _(*loc*), es_arg ) => { val () = prstr "E1XPapp(" val () = fprint_e1xp (out, e_fun) val () = prstr "; " val () = fprint_e1xplst (out, es_arg) val () = prstr ")" } (* end of [E1XPapp] *) | E1XPfun (arg, body) => { val () = prstr "E1XPfun(" val () = $UT.fprintlst (out, arg, ", ", fprint_symbol) val () = prstr "; " val () = fprint_e1xp (out, body) val () = prstr ")" } (* end of [E1XPfun] *) // | E1XPif ( _cond, _then, _else ) => { val () = prstr "E1XPif(" val () = fprint_e1xp (out, _cond) val () = prstr "; " val () = fprint_e1xp (out, _then) val () = prstr "; " val () = fprint_e1xp (out, _else) val () = prstr ")" } (* end of [E1XPif] *) // | E1XPeval e => begin prstr "E1XPeval("; fprint_e1xp (out, e); prstr ")" end // end of [E1XPlist] | E1XPlist es => begin prstr "E1XPlist("; fprint_e1xplst (out, es); prstr ")" end // end of [E1XPlist] // | E1XPerr () => prstr "E1XPerr()" // end // end of [fprint_e1xp] (* ****** ****** *) // implement print_e1xp (x) = fprint_e1xp (stdout_ref, x) implement prerr_e1xp (x) = fprint_e1xp (stderr_ref, x) // (* ****** ****** *) implement fprint_e1xplst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_e1xp) // end of [fprint_e1xplst] implement print_e1xplst (xs) = fprint_e1xplst (stdout_ref, xs) implement prerr_e1xplst (xs) = fprint_e1xplst (stderr_ref, xs) (* ****** ****** *) implement fprint_effcst (out, efc) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ efc of | EFFCSTall () => prstr "all" | EFFCSTnil () => prstr "nil" | EFFCSTset (efs, efvs) => { val () = prstr "set(" val () = $EFF.fprint_effset (out, efs) val () = prstr "; " val () = $UT.fprintlst (out, efvs, ", ", fprint_i0de) val () = prstr ")" } // end of [EFFCSTset] // end // end of [fprint_effcst] (* ****** ****** *) implement fprint_s1rt (out, s1t0) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ s1t0.s1rt_node of | S1RTapp (s1t, s1ts) => { val () = prstr "S1RTapp(" val () = fprint_s1rt (out, s1t) val () = prstr "; " val () = fprint_s1rtlst (out, s1ts) val () = prstr ")" } // end of [S1RTapp] | S1RTlist s1ts => begin prstr "S1RTlist("; fprint_s1rtlst (out, s1ts); prstr ")" end // end of [S1RTlist] | S1RTqid (q, id) => { val () = prstr "S1RTqid(" val () = fprint_s0rtq (out, q) val () = fprint_symbol (out, id) val () = prstr ")" } // end of [S1RTqid] (* | S1RTtup s1ts => begin prstr "S1RTtup("; fprint_s1rtlst (out, s1ts); prstr ")" end // end of [S1RTtup] *) | S1RTtype (knd) => begin prstr "S1RTtype("; fprint_int (out, knd); prstr ")" end // end of [S1RTtype] // | S1RTerr () => prstr "S1RTerr()" // HX: indicating an error // end // end of [fprint_s1rt] implement print_s1rt (x) = fprint_s1rt (stdout_ref, x) implement prerr_s1rt (x) = fprint_s1rt (stderr_ref, x) (* ****** ****** *) implement fprint_s1rtlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s1rt) // end of [fprint_s1rtlst] implement print_s1rtlst (xs) = fprint_s1rtlst (stdout_ref, xs) implement prerr_s1rtlst (xs) = fprint_s1rtlst (stderr_ref, xs) (* ****** ****** *) implement fprint_s1rtopt (out, x) = $UT.fprintopt (out, x, fprint_s1rt) (* ****** ****** *) implement fprint_s1rtlstlst (out, xss) = $UT.fprintlst (out, xss, "; ", fprint_s1rtlst) // end of [fprint_s1rtlstlst] (* ****** ****** *) implement fprint_d1atsrtcon (out, x) = { val () = fprint_symbol (out, x.d1atsrtcon_sym) val () = fprint_string (out, "(") val () = fprint_s1rtlst (out, x.d1atsrtcon_arg) val () = fprint_string (out, ")") } implement fprint_d1atsrtdec (out, x) = { val () = fprint_symbol (out, x.d1atsrtdec_sym) val () = fprint_string (out, "(\n") val () = $UT.fprintlst (out, x.d1atsrtdec_con, "\n", fprint_d1atsrtcon) val () = fprint_string (out, "\n)") } (* ****** ****** *) implement fprint_s1arg (out, x) = { val () = fprint_symbol (out, x.s1arg_sym) val () = (case+ x.s1arg_srt of | Some s1t => ( fprint_string (out, ": "); fprint_s1rt (out, s1t) ) // end of [Some] | None () => () ) : void // end of [val] } // end of [fprint_s1arg] implement fprint_s1arglst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s1arg) // end of [fprint_s1arglst] implement fprint_s1marg (out, x) = fprint_s1arglst (out, x.s1marg_arg) (* ****** ****** *) implement fprint_a1srt (out, x) = { val () = (case+ x.a1srt_sym of | Some sym => ( fprint_symbol (out, sym); fprint_string (out, ": ") ) // end of [Some] | None () => () ) : void // end of [val] val () = fprint_s1rt (out, x.a1srt_srt) } // end of [fprint_a1srt] implement fprint_a1srtlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_a1srt) // end of [fprint_a1srtlst] (* ****** ****** *) implement fprint_a1msrt (out, x) = { val () = fprint_string (out, "(") val () = fprint_a1srtlst (out, x.a1msrt_arg) val () = fprint_string (out, ")") } implement fprint_a1msrtlst (out, xs) = $UT.fprintlst (out, xs, " ", fprint_a1msrt) // end of [fprint_a1msrtlst] (* ****** ****** *) implement fprint_s1exp (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ x.s1exp_node of // | S1Eint (int) => { val () = prstr "S1Eint(" val () = fprint_int (out, int) val () = prstr ")" } | S1Eintrep (rep) => { val () = prstr "S1Eintrep(" val () = fprint_string (out, rep) val () = prstr ")" } // | S1Echar (char) => { val () = prstr "S1Echar(" val () = fprint_char (out, char) val () = prstr ")" } // | S1Efloat (rep) => { val () = prstr "S1Efloat(" val () = fprint_string (out, rep) val () = prstr ")" } | S1Estring (str) => { val () = prstr "S1Estring(" val () = fprint_string (out, str) val () = prstr ")" } // | S1Eextype (name, arg) => { val () = prstr "S1Eextype(" val () = fprint_string (out, name) val () = prstr "; " val () = $UT.fprintlst (out, arg, "; ", fprint_s1explst) val () = prstr ")" } | S1Eextkind (name, arg) => { val () = prstr "S1Eextkind(" val () = fprint_string (out, name) val () = prstr "; " val () = $UT.fprintlst (out, arg, "; ", fprint_s1explst) val () = prstr ")" } // | S1Eide (id) => { val () = prstr "S1Eide(" val () = fprint_symbol (out, id) val () = prstr ")" } | S1Esqid (sq, id) => { val () = prstr "S1Esqid(" val () = fprint_s0taq (out, sq) val () = fprint_symbol (out, id) val () = prstr ")" } // | S1Eapp ( s1e, _(*loc_arg*), s1es ) => { val () = prstr "S1Eapp(" val () = fprint_s1exp (out, s1e) val () = prstr "; " val () = fprint_s1explst (out, s1es) val () = prstr ")" } | S1Elam ( arg, res, body ) => { val () = prstr "S1Elam(" val () = fprint_s1marg (out, arg) val () = prstr "; " val () = fprint_s1rtopt (out, res) val () = prstr "; " val () = fprint_s1exp (out, body) val () = prstr ")" } | S1Eimp _ => { val () = prstr "S1Eimp(" val () = fprint_string (out, "...") val () = prstr ")" } // | S1Elist (npf, s1es) => { val () = prstr "S1Elist(" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_s1explst (out, s1es) val () = prstr ")" } // | S1Etop (knd, s1e) => { val () = prstr "S1Etop(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_s1exp (out, s1e) val () = prstr ")" } // | S1Einvar (knd, s1e) => { val () = prstr "S1Einvar(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_s1exp (out, s1e) val () = prstr ")" } | S1Etrans (s1e1, s1e2) => { val () = prstr "S1Etrans(" val () = fprint_s1exp (out, s1e1) val () = prstr " >> " val () = fprint_s1exp (out, s1e2) val () = prstr ")" } // | S1Etyarr (elt, dim) => { val () = prstr "S1Etyarr(" val () = fprint_s1exp (out, elt) val () = prstr "; " val () = fprint_s1explst (out, dim) val () = prstr ")" } | S1Etytup (knd, npf, s1es) => { val () = prstr "S1Etytup(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_s1explst (out, s1es) val () = prstr ")" } | S1Etyrec (knd, npf, ls1es) => { val () = prstr "S1Etyrec(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_labs1explst (out, ls1es) val () = prstr ")" } | S1Etyrec_ext (name, npf, ls1es) => { val () = prstr "S1Etyrec_ext(" val () = fprint_string (out, name) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_labs1explst (out, ls1es) val () = prstr ")" } // | S1Eexi (knd, qua, body) => { val () = prstr "S1Eexi(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_s1qualst (out, qua) val () = prstr "; " val () = fprint_s1exp (out, body) val () = prstr ")" } | S1Euni (qua, body) => { val () = prstr "S1Euni(" val () = fprint_s1qualst (out, qua) val () = prstr "; " val () = fprint_s1exp (out, body) val () = prstr ")" } // | S1Eann (s1e, s1t) => { val () = prstr "S1Eann(" val () = fprint_s1exp (out, s1e) val () = prstr " : " val () = fprint_s1rt (out, s1t) val () = prstr ")" } // | S1Ed2ctype (d2ctp) => prstr "S1Ed2ctype(...)" // | S1Eerr () => prstr "S1Eerr()" // (* | _ => prstr "S1E...(...)" *) // end // end of [fprint_s1exp] implement print_s1exp (x) = fprint_s1exp (stdout_ref, x) implement prerr_s1exp (x) = fprint_s1exp (stderr_ref, x) implement fprint_s1explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s1exp) // end of [fprint_s1explst] implement fprint_s1expopt (out, opt) = $UT.fprintopt (out, opt, fprint_s1exp) // end of [fprint_s1expopt] (* ****** ****** *) implement fprint_labs1exp (out, x) = () where { val+SL0ABELED (l, name, s1e) = x val () = fprint_l0ab (out, l) val () = fprint_string (out, "= ") val () = fprint_s1exp (out, s1e) } // end of [fprint_labs1exp] implement fprint_labs1explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_labs1exp) // end of [fprint_labs1explst] (* ****** ****** *) implement fprint_s1rtext (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ x.s1rtext_node of | S1TEsrt (s1t) => { val () = prstr "S1TEsrt(" val () = fprint_s1rt (out, s1t) val () = prstr ")" } | S1TEsub (sym, s1te, s1ps) => { val () = prstr "S1TEsub(" val () = fprint_symbol (out, sym) val () = prstr "; " val () = fprint_s1rtext (out, s1te) val () = prstr " | " val () = fprint_s1explst (out, s1ps) val () = prstr ")" } // end // end of [fprint_s1rtext] (* ****** ****** *) implement fprint_s1qua (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in case+ x.s1qua_node of | S1Qprop (s1p) => { val () = prstr "S1Qprop(" val () = fprint_s1exp (out, s1p) val () = prstr ")" } | S1Qvars (ids, s1te) => { val () = prstr "S1Qvars(" val () = $UT.fprintlst (out, ids, ", ", fprint_i0de) val () = prstr " : " val () = fprint_s1rtext (out, s1te) val () = prstr ")" } end // end of [fprint_s1qua] implement fprint_s1qualst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s1qua) // end of [fprint_s1qualst] (* ****** ****** *) implement fprint_s1vararg (out, x) = case+ x of | S1VARARGone (_) => fprint_string (out, "{..}") | S1VARARGall (_) => fprint_string (out, "{...}") | S1VARARGseq (loc, s1as) => { val () = fprint_string (out, "{") val () = fprint_s1arglst (out, s1as) val () = fprint_string (out, "}") } (* end of [S1VARARGseq] *) // end of [fprint_s1vararg] implement print_s1vararg (x) = fprint_s1vararg (stdout_ref, x) implement prerr_s1vararg (x) = fprint_s1vararg (stderr_ref, x) (* ****** ****** *) implement fprint_s1exparg (out, x) = case+ x.s1exparg_node of | S1EXPARGone () => fprint_string (out, "{..}") | S1EXPARGall () => fprint_string (out, "{...}") | S1EXPARGseq (s1es) => { val () = fprint_string (out, "{") val () = fprint_s1explst (out, s1es) val () = fprint_string (out, "}") } (* end of [S1EXPARGseq] *) // end of [s1exparg_node] implement fprint_s1exparglst (out, xs) = $UT.fprintlst (out, xs, "", fprint_s1exparg) // end of [fprint_s1exparglst] (* ****** ****** *) implement fprint_s1rtdef (out, x) = { val () = fprint_symbol (out, x.s1rtdef_sym) val () = fprint_string (out, " = ") val () = fprint_s1rtext (out, x.s1rtdef_def) } // end of [fprint_s1rtdef] (* ****** ****** *) implement fprint_s1tacst (out, x) = { val () = fprint_symbol (out, x.s1tacst_sym) val () = fprint_string (out, "(") val () = fprint_a1msrtlst (out, x.s1tacst_arg) val () = fprint_string (out, ") : ") val () = fprint_s1rt (out, x.s1tacst_res) } // end of [fprint_s1tacst] (* ****** ****** *) implement fprint_s1tacon (out, x) = { val () = fprint_symbol (out, x.s1tacon_sym) val () = fprint_string (out, "(") val () = fprint_a1msrtlst (out, x.s1tacon_arg) val () = fprint_string (out, ") = ") val () = fprint_s1expopt (out, x.s1tacon_def) } // end of [fprint_s1tacon] (* ****** ****** *) (* implement fprint_s1tavar (out, x) = { val () = fprint_symbol (out, x.s1tavar_sym) val () = fprint_string (out, " : ") val () = fprint_s1rt (out, x.s1tavar_srt) } // end of [fprint_s1tavar] *) (* ****** ****** *) implement fprint_s1expdef (out, x) = { macdef prstr (s) = fprint_string (out, ,(s)) val () = fprint_symbol (out, x.s1expdef_sym) val () = prstr "(" val () = $UT.fprintlst (out, x.s1expdef_arg, "; ", fprint_s1marg) val () = prstr ")" val () = (case+ x.s1expdef_res of | Some s1t => (prstr ": "; fprint_s1rt (out, s1t)) | None () => () ) : void // end of [val] val () = prstr " = " val () = fprint_s1exp (out, x.s1expdef_def) } // end of [fprint_s1expdef] (* ****** ****** *) implement fprint_s1aspdec (out, x) = { macdef prstr (s) = fprint_string (out, ,(s)) val () = fprint_sqi0de (out, x.s1aspdec_qid) val () = prstr "(" val () = $UT.fprintlst (out, x.s1aspdec_arg, "; ", fprint_s1marg) val () = prstr ")" val () = (case+ x.s1aspdec_res of | Some s1t => (prstr ": "; fprint_s1rt (out, s1t)) | None () => () ) : void // end of [val] val () = prstr " = " val () = fprint_s1exp (out, x.s1aspdec_def) } // end of [fprint_s1expdef] (* ****** ****** *) implement fprint_q1marg (out, x) = { val () = fprint_string (out, "{") val () = fprint_s1qualst (out, x.q1marg_arg) val () = fprint_string (out, "}") } // end of [fprint_q1marg] implement fprint_q1marglst (out, xs) = $UT.fprintlst (out, xs, "", fprint_q1marg) // end of [fprint_q1marglst] (* ****** ****** *) implement fprint_i1mparg (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in case+ x of | I1MPARG_sarglst (s1as) => { val () = prstr "(" val () = fprint_s1arglst (out, s1as) val () = prstr ")" } (* end of [I1MPARG_sarglst] *) | I1MPARG_svararglst (s1vs) => { val () = $UT.fprintlst (out, s1vs, "", fprint_s1vararg) } (* end of [I1MPARG_svararglst] *) end // end of [fprint_i1mparg] (* ****** ****** *) implement fprint_e1xndec (out, x) = { val () = fprint_symbol (out, x.e1xndec_sym) val () = fprint_string (out, " : ") val () = $UT.fprintlst (out, x.e1xndec_qua, " ", fprint_q1marg) val () = fprint_string (out, "(") val () = fprint_int (out, x.e1xndec_npf) val () = fprint_string (out, "; ") val () = fprint_s1explst (out, x.e1xndec_arg) val () = fprint_string (out, ")") } // end of [fprint_e1xndec] (* ****** ****** *) implement fprint_d1cstdec (out, x) = { val () = fprint_symbol (out, x.d1cstdec_sym) val () = fprint_string (out, " : ") val () = fprint_s1exp (out, x.d1cstdec_type) } // end of [d1cstdec] (* ****** ****** *) (* end of [pats_staexp1_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_basics.sats0000644000175000017500000001237313431250607020646 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) typedef fprint_type(a:t@ype) = (FILEref, a) -> void typedef fprint_vtype(a:viewt@ype) = (FILEref, !a) -> void (* ****** ****** *) val VIEWT0YPE_knd : int // = VIEWT0YPE_int (* ****** ****** *) fun test_fltkind (knd: int): bool // is flat? fun test_boxkind (knd: int): bool // is boxed? fun test_linkind (knd: int): bool // is linear? fun test_prfkind (knd: int): bool // is proof? fun test_prgmkind (knd: int): bool // is program? fun test_polkind (knd: int): int // 0/1/-1 (* ****** ****** *) fun impkind_linearize (knd: int): int fun impkind_neutralize (knd: int): int (* ****** ****** *) fun lte_impkind_impkind (k1: int, k1: int): bool (* ****** ****** *) datatype fxtykind = | FXK_infix | FXK_infixl | FXK_infixr | FXK_prefix | FXK_postfix // end of [fxtykind] (* ****** ****** *) datatype caskind = | CK_case // case | CK_case_pos // case+ | CK_case_neg // case- // end of [caskind] fun fprint_caskind : fprint_type (caskind) (* ****** ****** *) datatype funkind = // | FK_fn // nonrec fun | FK_fnx // tailrec fun | FK_fun // recursive fun // | FK_prfn // nonrec proof fun | FK_prfun // recursive proof fun // | FK_praxi // proof axiom // | FK_castfn // casting fun // end of [funkind] fun funkind_is_proof (x: funkind): bool fun funkind_is_recursive (x: funkind): bool fun funkind_is_mutailrec (x: funkind): bool fun fprint_funkind : fprint_type (funkind) datatype valkind = | VK_val // val | VK_val_pos // val+ | VK_val_neg // val- (* | VK_mcval // mcval: for model-checking *) | VK_prval // prval: for theorem-proving // end of [valkind] (* ****** ****** *) fun valkind_is_model (vk: valkind):<> bool fun valkind_is_proof (vk: valkind):<> bool fun fprint_valkind : fprint_type (valkind) fun valkind2caskind (knd: valkind): caskind (* ****** ****** *) datatype dcstkind = | DCKfun of () | DCKval of () | DCKpraxi of () | DCKprfun of () | DCKprval of () | DCKcastfn of () // end of [dcstkind] fun dcstkind_is_fun (dck: dcstkind):<> bool fun dcstkind_is_val (dck: dcstkind):<> bool fun dcstkind_is_praxi (dck: dcstkind):<> bool fun dcstkind_is_prfun (dck: dcstkind):<> bool fun dcstkind_is_prval (dck: dcstkind):<> bool fun dcstkind_is_proof (dck: dcstkind):<> bool fun dcstkind_is_castfn (dck: dcstkind):<> bool fun fprint_dcstkind : fprint_type (dcstkind) (* ****** ****** *) // #define CLOPTR ( 1) #define CLOREF (~1) // datatype funclo = // // function or closure // | FUNCLOfun (* function *) | FUNCLOclo of int (*knd*) // closure: knd=1/0/~1: ptr/clo/ref // (* ****** ****** *) // typedef fcopt = Option (funclo) vtypedef fcopt_vt = Option_vt (funclo) // (* ****** ****** *) macdef FUNCLOcloptr = FUNCLOclo (CLOPTR) macdef FUNCLOcloref = FUNCLOclo (CLOREF) (* ****** ****** *) fun funclo_is_clo (fc: funclo): bool fun funclo_is_ptr (fc: funclo): bool fun funclo_is_cloptr (fc: funclo): bool fun print_funclo (x: funclo): void fun prerr_funclo (x: funclo): void fun fprint_funclo : fprint_type (funclo) fun eq_funclo_funclo (fc1: funclo, fc2: funclo): bool overload = with eq_funclo_funclo fun neq_funclo_funclo (fc1: funclo, fc2: funclo): bool overload != with neq_funclo_funclo (* ****** ****** *) // // HX: implemented in pats_basics.dats // fun debug_flag_get ((*void*)): int = "patsopt_debug_flag_get" fun debug_flag_set (flag: int): void = "patsopt_debug_flag_set" // fun prerrf_ifdebug {ts:types} ( fmt: printf_c ts, arg: ts ) : void = "patsopt_prerrf_ifdebug" // macdef filprerr_ifdebug (x) = prerrf_ifdebug (": [%s]: %s", @(#FILENAME, ,(x))) // (* ****** ****** *) // #define PATS_MAJOR_VERSION 0 #define PATS_MINOR_VERSION 3 #define PATS_MICRO_VERSION 13 // // HX-2011-04-27: this is supported in Postiats: // macdef PATS_fVER(MAJOR, MINOR, MICRO) = (1000 * (1000 * ,(MAJOR) + ,(MINOR)) + ,(MICRO)) // macdef PATS_VERSION() = PATS_fVER(PATS_MAJOR_VERSION, PATS_MINOR_VERSION, PATS_MICRO_VERSION) // (* ****** ****** *) (* end of [pats_basics.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_patcst2.dats0000644000175000017500000005565013431250607020750 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" // vtypedef charlst_vt = $UT.charlst_vt // macdef charset_add = $UT.charset_add macdef charset_sing = $UT.charset_sing macdef charset_is_member = $UT.charset_is_member macdef charset_listize = $UT.charset_listize // macdef fprint_charset = $UT.fprint_charset // (* ****** ****** *) // staload INTINF = "./pats_intinf.sats" // vtypedef intinflst_vt = $INTINF.intinflst_vt // overload = with $INTINF.eq_intinf_intinf // macdef intinf_make_int = $INTINF.intinf_make_int macdef intinf_make_string = $INTINF.intinf_make_string // macdef intinfset_add = $INTINF.intinfset_add macdef intinfset_sing = $INTINF.intinfset_sing macdef intinfset_is_member = $INTINF.intinfset_is_member macdef intinfset_listize = $INTINF.intinfset_listize // macdef fprint_intinf = $INTINF.fprint_intinf macdef fprint_intinfset = $INTINF.fprint_intinfset // (* ****** ****** *) staload "./pats_basics.sats" staload "./pats_lexing.sats" // for T_* (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_p2atcst" (* ****** ****** *) staload LAB = "./pats_label.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_stacst2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_patcst2.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) implement i0nt2intinf (tok) = let // val-T_INT(_, rep, sfx) = tok.token_node // in // if sfx > 0u then let val n = string_length (rep) val sfx = $UN.cast2size(sfx) val ln = $UN.cast{size_t}(n - sfx) val rep2 = __make (rep, 0, ln) where { extern fun __make: (string,size_t,size_t)->Strptr1 = "atspre_string_make_substring" // end of [fun] } // end of [where] // end of [val] val intinf = $INTINF.intinf_make_string ($UN.castvwtp1{string}(rep2)) val ((*freed*)) = strptr_free (rep2) in intinf end // end of [then] else $INTINF.intinf_make_string (rep) // end of [if] // end // end of [i0nt2intinf] (* ****** ****** *) implement p2atcst_lst (lin, xs) = let // (* val () = println! ("p2atcst_lst: lin = ", lin) *) // val isnonlin = ( if lin >= 0 then not(test_linkind(lin)) else true ) : bool // end of [val] // val s2c = ( if isnonlin then s2cstref_get_cst (the_list_t0ype_int_type) else s2cstref_get_cst (the_list_vt0ype_int_vtype) ) : s2cst // end of [val] // val-Some xx = s2cst_get_islst (s2c) val d2c_nil = xx.0 and d2c_cons = xx.1 // fun auxlst ( xs: p2atcstlst ) : p2atcst = ( case+ xs of | list_nil () => P2TCcon (d2c_nil, list_nil()) | list_cons (x, xs) => P2TCcon(d2c_cons, list_pair(x, auxlst(xs))) ) (* end of [auxlst] *) // in auxlst (xs) end // end of [p2atcst_lst] (* ****** ****** *) implement p2atcstlstlst_vt_free (xss) = ( case+ xss of | ~list_vt_cons (xs, xss) => let val () = list_vt_free (xs) in p2atcstlstlst_vt_free (xss) end // end of [list_vt_cons] | ~list_vt_nil () => () ) // end of [p2atcstlstlst_vt_free] implement p2atcstlstlst_vt_copy (xss) = ( list_map_fun ($UN.castvwtp1{p2atcstlstlst}(xss), lam (xs) =<0> list_copy (xs)) ) // end of [p2atcstlstlst_vt_copy] (* ****** ****** *) // implement fprint_p2atcst (out, p2tc) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ p2tc of // | P2TCany () => fprint_char (out, '_') // | P2TCcon (d2c, p2tcs) => { val () = fprint_d2con (out, d2c); val () = prstr "(" val () = fprint_p2atcstlst (out, p2tcs) val () = prstr ")" } // end of [P2TCcon] // | P2TCempty () => prstr "P2TCempty()" // | P2TCint (int) => { val () = fprint_intinf (out, int) } | P2TCintc (ints) => { val () = prstr "[^" val () = fprint_intinfset (out, ints) val () = prstr "]" } // end of [P2TCintc] // | P2TCbool (b) => { val () = fprint_bool (out, b) } | P2TCchar (c) => { val () = fprint_char (out, c) } | P2TCcharc (cs) => { val () = prstr "[^" val () = fprint_charset (out, cs) val () = prstr "]" } | P2TCfloat (rep) => { val () = fprint_string (out, rep) } | P2TCstring (x) => { val () = fprintf (out, "\"%s\"", @(x)) } // | P2TCrec (knd, lp2tcs) => { val () = if knd = 0 then fprint_char (out, '@') val () = if knd > 0 then fprint_char (out, '\'') val () = prstr "{" val () = fprint_labp2atcstlst (out, lp2tcs) val () = prstr "}" } // end of [P2TCrec] // end // end of [fprint_p2atcst] // implement print_p2atcst (x) = fprint_p2atcst (stdout_ref, x) implement prerr_p2atcst (x) = fprint_p2atcst (stderr_ref, x) // (* ****** ****** *) implement fprint_p2atcstlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_p2atcst) // end of [fprint_p2atcstlst] (* ****** ****** *) implement print_p2atcstlst (xs) = fprint_p2atcstlst (stdout_ref, xs) implement prerr_p2atcstlst (xs) = fprint_p2atcstlst (stderr_ref, xs) implement print_p2atcstlst_vt (xs) = fprint_p2atcstlst (stdout_ref, $UN.castvwtp1{p2atcstlst}(xs)) // end of [print_p2atcstlst_vt] implement prerr_p2atcstlst_vt (xs) = fprint_p2atcstlst (stderr_ref, $UN.castvwtp1{p2atcstlst}(xs)) // end of [prerr_p2atcstlst_vt] (* ****** ****** *) fun fprint_labp2atcst ( out: FILEref, lp2tc: labp2atcst ) : void = let val LABP2ATCST (l, p2tc) = lp2tc in $LAB.fprint_label (out, l); fprint_string (out, "= "); fprint_p2atcst (out, p2tc) end // end of [fprint_lab;2atcst] implement fprint_labp2atcstlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_labp2atcst) // end of [fprint_labp2atcstlst] implement print_labp2atcstlst (xs) = fprint_labp2atcstlst (stdout_ref, xs) implement prerr_labp2atcstlst (xs) = fprint_labp2atcstlst (stderr_ref, xs) (* ****** ****** *) implement fprint_p2atcstlstlst (out, xss) = let val () = $UT.fprintlst (out, xss, "\n", fprint_p2atcstlst) in fprint_newline (out) end // end of [fprint_p2atcstlst] implement print_p2atcstlstlst (xss) = fprint_p2atcstlstlst (stdout_ref, xss) implement prerr_p2atcstlstlst (xss) = fprint_p2atcstlstlst (stderr_ref, xss) implement print_p2atcstlstlst_vt (xss) = fprint_p2atcstlstlst (stdout_ref, $UN.castvwtp1{p2atcstlstlst}(xss)) // end of [print_p2atcstlstlst_vt] implement prerr_p2atcstlstlst_vt (xss) = fprint_p2atcstlstlst (stderr_ref, $UN.castvwtp1{p2atcstlstlst}(xss)) // end of [prerr_p2atcstlstlst_vt] (* ****** ****** *) fun p2at2cstlst_vt ( p2ts: p2atlst ) : p2atcstlst_vt = list_map_fun (p2ts, p2at2cst) // end of [p2at2cstlst_vt] implement p2at2cstlst (p2ts) = l2l (p2at2cstlst_vt (p2ts)) (* ****** ****** *) fun labp2at2cstlst_vt (lp2ts: labp2atlst): labp2atcstlst_vt = case+ lp2ts of | list_cons (lp2t, lp2ts) => ( case+ lp2t of | LABP2ATnorm (l0, p2t) => let val l = l0.l0ab_lab and p2tc = p2at2cst (p2t) in list_vt_cons (LABP2ATCST (l, p2tc), labp2at2cstlst_vt lp2ts) end // end of [LABP2ATnorm] | LABP2ATomit (loc) => labp2at2cstlst_vt (lp2ts) ) // end of [list_cons] | list_nil () => list_vt_nil () // end of [labp2at2cstlst_vt] (* ****** ****** *) implement p2at2cst (p2t0) = let // in // case+ p2t0.p2at_node of // | P2Tvar _ => P2TCany () | P2Tany () => P2TCany () // | P2Tcon (_, d2c, _, _, _, p2ts) => P2TCcon (d2c, p2at2cstlst (p2ts)) // end of [P2Tcon] // | P2Tempty () => P2TCempty () // | P2Tint (i) => let val i = intinf_make_int (i) in P2TCint (i) end // end of [P2Tint] | P2Tintrep (rep) => let val i = intinf_make_string (rep) in P2TCint (i) end // end of [P2Tint] // | P2Tbool (b) => P2TCbool (b) | P2Tchar (c) => P2TCchar (c) | P2Tfloat (rep) => P2TCfloat (rep) | P2Tstring (str) => P2TCstring (str) // | P2Ti0nt (tok) => let val i0 = i0nt2intinf (tok) in P2TCint (i0) end // end of [P2Ti0nt] | P2Tf0loat (tok) => let val-T_FLOAT(base, rep, sfx) = tok.token_node in P2TCfloat (rep) end // end of [P2Tf0loat] // | P2Tlst (lin, p2ts) => p2atcst_lst (lin, p2at2cstlst (p2ts)) // | P2Trec ( recknd, npf, lp2ts ) => let var !p_clo = @lam ( lx1: &labp2atcst , lx2: &labp2atcst ) : int =<0> let val LABP2ATCST (l1, _) = lx1 and LABP2ATCST (l2, _) = lx2 in $LAB.compare_label_label (l1, l2) end // end of [var] val lp2tcs = labp2at2cstlst_vt (lp2ts) val lp2tcs = list_vt_mergesort (lp2tcs, !p_clo) in P2TCrec (recknd, (l2l)lp2tcs) end // end of [P2Trec] // | P2Trefas (_(*d2v*), p2t) => p2at2cst (p2t) // | P2Texist (_(*s2vs*), p2t) => p2at2cst (p2t) // | P2Tvbox _ => P2TCany () // HX: only [vbox(d2v)] is allowed // | P2Tann (p2t, _) => p2at2cst (p2t) // | _ (* P2T-rest *) => let val () = prerr_interror_loc (p2t0.p2at_loc) val () = prerrln! (": p2at2cst: p2t0 = ", p2t0) in let val ((*exit*)) = assertloc(false) in P2TCany() end end // end of [P2T-rest] // end (* end of [p2at2cst] *) (* ****** ****** *) fun p2atcst_comp_con ( d2c0: d2con , d2cs: d2conlst, arg: p2atcstlst ) : p2atcstlst_vt = let // fun auxanys ( n: int, res: p2atcstlst_vt ) : p2atcstlst_vt = if n > 0 then auxanys (n-1, list_vt_cons (P2TCany, res)) else res (* end of [if] *) // fun auxmain ( d2c0, d2cs: d2conlst, arg: p2atcstlst ) : p2atcstlst_vt = case+ d2cs of | list_cons (d2c, d2cs) => ( if d2c0 = d2c then let val carglst = p2atcstlst_comp (arg) val carglst = __cast (carglst) where { extern castfn __cast (xss: p2atcstlstlst_vt): List_vt (p2atcstlst) } // end of [val] // HX: this is a safe cast val res1 = list_map_cloptr ( $UN.castvwtp1{p2atcstlstlst}(carglst), lam x =<0> P2TCcon (d2c, x) ) // end of [val] val () = list_vt_free (carglst) val res2 = auxmain (d2c0, d2cs, arg) in list_vt_append (res1, res2) end else let val anys = auxanys (d2con_get_arity_full d2c, list_vt_nil ()) // end of [val] val p2tc = P2TCcon (d2c, (l2l)anys) val res = auxmain (d2c0, d2cs, arg) in list_vt_cons (p2tc, res) end // end of [if] ) // end of [list_cons] | list_nil () => list_vt_nil () // end of [auxmain] in auxmain (d2c0, d2cs, arg) end // end of [p2atcst_comp_con] (* ****** ****** *) implement p2atcst_comp (p2tc0) = let in // case+ p2tc0 of | P2TCany () => list_vt_nil () // | P2TCcon (d2c0, p2tcs) => let val tag = d2con_get_tag (d2c0) in if tag >= 0 then let val s2c0 = d2con_get_scst (d2c0) val-Some (d2cs) = s2cst_get_dconlst (s2c0) in p2atcst_comp_con (d2c0, d2cs, p2tcs) end else // HX: [d2c0] associated with an extensible sum list_vt_sing (P2TCany ()) // end of [if] end // end of [P2TCcon] // | P2TCempty () => list_vt_nil () // | P2TCint (x) => let val xs = intinfset_sing (x) in list_vt_sing (P2TCintc (xs)) end // end of [P2TCint] | P2TCintc (xs) => let fun aux ( xs: intinflst_vt ) : p2atcstlst_vt = ( case+ xs of | ~list_vt_nil () => list_vt_nil () | ~list_vt_cons (x, xs) => list_vt_cons (P2TCint (x), aux (xs)) ) (* end of [aux] *) in aux (intinfset_listize (xs)) end // end of [P2TCintc] // | P2TCbool (b) => list_vt_sing (P2TCbool (~b)) // | P2TCchar (c) => let val cs = charset_sing (c) in list_vt_sing (P2TCcharc (cs)) end // end of [P2TCchar] | P2TCcharc (cs) => let fun aux ( cs: charlst_vt ) : p2atcstlst_vt = ( case+ cs of | ~list_vt_nil () => list_vt_nil () | ~list_vt_cons (x, cs) => list_vt_cons (P2TCchar (x), aux (cs)) ) (* end of [aux] *) in aux (charset_listize (cs)) end // end of [P2TCcharc] // (* | P2TCchar _ => list_vt_sing (P2TCany ()) // conservative estimate *) // | P2TCfloat _ => list_vt_sing (P2TCany ()) // conservative estimate | P2TCstring _ => list_vt_sing (P2TCany ()) // conservative estimate // | P2TCrec (knd, arg) => res where { val carglst = labp2atcstlst_comp (arg) val carglst = __cast (carglst) where { extern castfn __cast (xss: labp2atcstlstlst_vt): List_vt (labp2atcstlst) } // end of [val] // HX: this is a safe cast val res = list_map_cloptr ( $UN.castvwtp1{labp2atcstlstlst}(carglst), lam x =<0> P2TCrec (knd, x) ) (* end of [val] *) val () = list_vt_free (carglst) } (* end of [P2TCrec] *) // (* | _ (*exhausted*) => let val () = assertloc (false) in exit (1) end // end of [_] *) end // end of [p2atcst_comp] (* ****** ****** *) implement p2atcstlst_comp (p2tcs0) = let // fun auxanys ( xs: p2atcstlst, res: p2atcstlst_vt ) : p2atcstlst_vt = case+ xs of | list_cons (x, xs) => auxanys (xs, list_vt_cons (P2TCany, res)) | list_nil () => res // end of [auxanys] in // case+ p2tcs0 of // | list_nil () => list_vt_nil () // | list_cons (p2tc1, p2tcs1) => let // val res1 = let fun aux ( xss: p2atcstlstlst_vt ) : p2atcstlstlst_vt = ( case+ xss of | ~list_vt_cons (xs, xss) => let val ys = list_vt_cons (p2tc1, xs) // end of [val] in list_vt_cons (ys, aux (xss)) end // end of [list_vt_cons] | ~list_vt_nil () => list_vt_nil () ) (* end of [aux] *) in aux (p2atcstlst_comp (p2tcs1)) end // end of [val] // val res2 = let fun aux ( xs: p2atcstlst_vt ) : p2atcstlstlst_vt = case+ xs of | ~list_vt_cons (x, xs) => let val ys = list_vt_cons (x, auxanys (p2tcs1, list_vt_nil)) // end of [val] in list_vt_cons (ys, aux (xs)) end // end of [list_vt_cons] | ~list_vt_nil () => list_vt_nil () // end of [aux] in aux (p2atcst_comp (p2tc1)) end // end of [val] // in list_vt_append (res1, res2) end // end of [list_cons] // end // end of [p2atcstlst_comp] (* ****** ****** *) fun labp2atcst_comp ( lp2tc: labp2atcst ) : labp2atcstlst_vt = let val LABP2ATCST (l, p2tc) = lp2tc val cp2tcs = p2atcst_comp (p2tc) val res = list_map_cloptr ($UN.castvwtp1{p2atcstlst}(cp2tcs), lam x =<0> LABP2ATCST (l, x)) val () = list_vt_free (cp2tcs) in res end // end of [labp2atcst_comp] (* ****** ****** *) implement labp2atcstlst_comp (lp2tcs0) = let in // case+ lp2tcs0 of // | list_nil () => list_vt_nil () // | list_cons (lp2tc1, lp2tcs1) => let val res1 = let fun aux ( xss: labp2atcstlstlst_vt ) : labp2atcstlstlst_vt = case+ xss of | ~list_vt_cons (xs, xss) => let val ys = list_vt_cons (lp2tc1, xs) in list_vt_cons (ys, aux xss) end // end of [list_vt_cons] | ~list_vt_nil () => list_vt_nil () // end of [aux] in aux (labp2atcstlst_comp (lp2tcs1)) end // end of [val] val res2 = let fun aux ( xs: labp2atcstlst_vt ) : labp2atcstlstlst_vt = case+ xs of | ~list_vt_cons (x, xs) => let val ys = list_vt_sing (x) in list_vt_cons (ys, aux (xs)) end // end of [list_vt_cons] | ~list_vt_nil () => list_vt_nil () // end of [aux] in aux (labp2atcst_comp (lp2tc1)) end // end of [val] in list_vt_append (res1, res2) end // end of [list_cons] // end // end of [labp2atcst_comp] (* ****** ****** *) implement c2lau_pat_any (c2l) = let // val p2ts = c2l.c2lau_pat // in list_vt_sing(list_map_fun(p2ts, lam(_) = P2TCany())) end // end of [c2lau_pat_any] (* ****** ****** *) implement c2lau_pat_comp (c2l) = let // val p2ts = c2l.c2lau_pat (* val () = fprintln! ( stdout_ref, "c2lau_pat_comp: c2l.c2lau_pat = ", p2ts ) (* end of [val] *) *) // in // case+ c2l.c2lau_gua of | list_cons _ => let (* // // HX: conservative estimate: [c2l] cannot be chosen // *) val anys = list_map_fun (p2ts, lam _ =<0> P2TCany ()) in list_vt_sing (anys) end // end of [list_cons] | list_nil () => let val p2tcs = list_map_fun (p2ts, p2at2cst) val cp2tcss = p2atcstlst_comp ($UN.castvwtp1{p2atcstlst}(p2tcs)) val () = list_vt_free (p2tcs) in cp2tcss end // end of [list_nil] end // end of [c2lau_pat_complement] (* ****** ****** *) implement p2atcst_inter_test (p2tc1, p2tc2) = let in // case+ ( p2tc1, p2tc2 ) of | (P2TCany (), _) => true | (_, P2TCany ()) => true | (P2TCcon (d2c1, p2tcs1), P2TCcon (d2c2, p2tcs2)) => ( if d2c1 = d2c2 then p2atcstlst_inter_test (p2tcs1, p2tcs2) else false // end of [if] ) // end of [P2TCcon, P2TCcon] | (P2TCempty (), P2TCempty ()) => true // | (P2TCint i1, P2TCint i2) => (i1 = i2) | (P2TCint x, P2TCintc xs) => if intinfset_is_member (xs, x) then false else true | (P2TCintc xs, P2TCint x) => if intinfset_is_member (xs, x) then false else true // | (P2TCbool b1, P2TCbool b2) => (b1 = b2) // | (P2TCchar c1, P2TCchar c2) => (c1 = c2) | (P2TCchar x, P2TCcharc xs) => if charset_is_member (xs, x) then false else true | (P2TCcharc xs, P2TCchar x) => if charset_is_member (xs, x) then false else true // | (P2TCrec (_, lp2atcs1), P2TCrec (_, lp2atcs2)) => labp2atcstlst_inter_test (lp2atcs1, lp2atcs2) // end of [P2TCrec, P2TCrec] | (_, _) => true (* HX: being conservative *) // end (* end of [p2atcst_inter_test] *) implement p2atcstlst_inter_test (xs1, xs2) = let in // case+ xs1 of | list_cons (x1, xs1) => ( case+ xs2 of | list_cons (x2, xs2) => if p2atcst_inter_test (x1, x2) then p2atcstlst_inter_test (xs1, xs2) else false // end of [if] | list_nil () => false ) // end of [list_cons] | list_nil () => ( case+ xs2 of list_cons _ => false | list_nil () => true ) // end of [list_nil] // end // end of [p2atcstlst_inter_test] implement labp2atcstlst_inter_test (lxs10, lxs20) = let in // case+ lxs10 of | list_cons (lx1, lxs1) => ( case+ lxs20 of | list_cons (lx2, lxs2) => let val LABP2ATCST (l1, x1) = lx1 val LABP2ATCST (l2, x2) = lx2 val sgn = $LAB.compare_label_label (l1, l2) in if sgn < 0 then labp2atcstlst_inter_test (lxs1, lxs20) else if sgn > 0 then labp2atcstlst_inter_test (lxs10, lxs2) else ( if p2atcst_inter_test (x1, x2) then labp2atcstlst_inter_test (lxs1, lxs2) else false // end of [if] ) // end of [if] end // end of [list_cons] | list_nil () => true ) // end of [list_cons] | list_nil () => true // end // end of [labp2atcstlst_inter_test] (* ****** ****** *) implement p2atcst_diff (p2tc1, p2tc2) = let in // case+ (p2tc1, p2tc2) of | (_, P2TCany ()) => list_vt_nil () | (P2TCany (), _) => p2atcst_comp (p2tc2) // | (P2TCint i1, P2TCint i2) => if i1 = i2 then list_vt_nil else list_vt_sing (p2tc1) // end of [P2TCint, P2TCint] | (P2TCintc xs, P2TCint x) => ( if intinfset_is_member (xs, x) then list_vt_sing (p2tc1) else let val xs = intinfset_add (xs, x) in list_vt_sing (P2TCintc (xs)) end // end of [if] ) // end of [P2TCintc, P2TCint] | (P2TCint x, P2TCintc xs) => if intinfset_is_member (xs, x) then list_vt_sing (p2tc1) else list_vt_nil // | (P2TCbool b1, P2TCbool b2) => if b1 = b2 then list_vt_nil else list_vt_sing (p2tc1) // end of [P2TCbool, P2TCbool] // | (P2TCchar c1, P2TCchar c2) => begin if c1 = c2 then list_vt_nil else list_vt_sing (p2tc1) end // end of [P2TCchar, P2TCchar] | (P2TCcharc xs, P2TCchar x) => ( if charset_is_member (xs, x) then list_vt_sing (p2tc1) else let val xs = charset_add (xs, x) in list_vt_sing (P2TCcharc (xs)) end // end of [if] ) // end of [P2TCcharc, P2TCchar] | (P2TCchar x, P2TCcharc xs) => if charset_is_member (xs, x) then list_vt_sing (p2tc1) else list_vt_nil // | (P2TCstring s1, P2TCstring s2) => if s1 = s2 then list_vt_nil else list_vt_sing (p2tc1) // end of [P2TCstring, P2TCstring] // | (P2TCcon (d2c1, p2tcs1), P2TCcon (d2c2, p2tcs2)) => ( if d2c1 = d2c2 then let val p2tcss = p2atcstlst_diff (p2tcs1, p2tcs2) val p2tcss = __cast (p2tcss) where { extern castfn __cast (xs: p2atcstlstlst_vt): List_vt (p2atcstlst) } // end of [val] // HX: this is a safe cast val res = list_map_cloptr ($UN.castvwtp1{p2atcstlstlst}(p2tcss), lam xs =<0> P2TCcon (d2c1, xs)) val () = list_vt_free (p2tcss) in res end else list_vt_sing (p2tc1) // end of [if] ) // end of [P2TCcon, P2TCcon] | (P2TCempty (), P2TCempty ()) => list_vt_nil () | (_, _) => list_vt_sing (p2tc1) // end // end of [p2atcst_diff] (* ****** ****** *) implement p2atcstlst_diff (xs1, xs2) = let in // case+ xs1 of | list_cons (x1, xs1) => ( case+ xs2 of | list_cons (x2, xs2) => let fun aux1 ( x1: p2atcst, xss: p2atcstlstlst_vt ) : p2atcstlstlst_vt = case+ xss of | ~list_vt_cons (xs, xss) => list_vt_cons (list_vt_cons (x1, xs), aux1 (x1, xss)) // end of [list_vt_cons] | ~list_vt_nil () => list_vt_nil () // end of [aux1] val p2tcss_res1 = let val xss = p2atcstlst_diff (xs1, xs2) in aux1 (x1, xss) end // end of [val] fun aux2 ( xs: p2atcstlst_vt, xs1: p2atcstlst ) : p2atcstlstlst_vt = case+ xs of | ~list_vt_cons (x, xs) => let val xs1_ = list_copy (xs1) in list_vt_cons (list_vt_cons (x, xs1_), aux2 (xs, xs1)) end // end of [list_vt_cons] | ~list_vt_nil () => list_vt_nil () // end of [aux2] val p2tcss_res2 = aux2 (p2atcst_diff (x1, x2), xs1) in list_vt_append (p2tcss_res1, p2tcss_res2) end // end of [list_cons] | list_nil () => list_vt_nil () ) // end of [list_cons] | list_nil () => p2atcstlst_comp (xs2) // end (* end of [p2atcstlst_diff] *) (* ****** ****** *) (* end of [pats_patcst2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_hitype.dats0000644000175000017500000010206213431250607022041 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: January, 2013 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp overload = with $STMP.eq_stamp_stamp overload != with $STMP.neq_stamp_stamp (* ****** ****** *) staload LAB = "./pats_label.sats" typedef label = $LAB.label overload = with $LAB.eq_label_label overload != with $LAB.neq_label_label (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_histaexp.sats" (* ****** ****** *) staload TYER = "./pats_typerase.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) datatype hitype = // | HITnmd of (string) // | HITapp of (hitype, hitypelst) // | HITtyarr of (hitype, s2explst) // | HITtyrec of (labhitypelst) | HITtysum of (int(*tagged*), labhitypelst) | HITtyexn of (labhitypelst) // | HITtyvar of (s2var) (* for substitution *) // | HITtyclo of (funlab) // | HITvararg of (hitype) // | HITrefarg of (int(*knd*), hitype) // | HITundef of (stamp, hisexp) // | HITerror of ((*indication-of-error*)) // end of [hitype] and labhitype = | HTLABELED of (label, Option(string), hitype) // end of [labhitype] where hitypelst = List (hitype) and labhitypelst = List (labhitype) (* ****** ****** *) assume hitype_type = hitype (* ****** ****** *) implement print_hitype (hit) = fprint_hitype (stdout_ref, hit) implement prerr_hitype (hit) = fprint_hitype (stderr_ref, hit) (* ****** ****** *) implement fprint_hitype (out, hit) = let // macdef prstr(x) = fprint_string (out, ,(x)) // in // case+ hit of // | HITnmd (name) => { val () = prstr "HITnmd(" val () = fprint_string (out, name) val () = prstr ")" } // | HITapp ( hit_fun, hits_arg ) => { val () = prstr "HITapp(" val () = fprint_hitype (out, hit_fun) val () = prstr "; " val () = fprint_hitypelst (out, hits_arg) val () = prstr ")" } // | HITtyarr (hit, s2es) => { val () = prstr "HITtyarr(" val () = fprint_hitype (out, hit) val () = prstr "[" val () = fpprint_s2explst (out, s2es) val () = prstr "]" val () = prstr ")" } // | HITtyrec (lhits) => { val () = prstr "HITtyrec(" val () = fprint_string (out, "...") val () = prstr ")" } | HITtysum (tag, lhits) => { val () = prstr "HITtysum(" val () = fprint_string (out, "...") val () = prstr ")" } | HITtyexn (lhits) => { val () = prstr "HITtyexn(" val () = fprint_string (out, "...") val () = prstr ")" } // | HITtyvar(s2v) => { val () = prstr "HITtyvar(" val () = fprint_s2var (out, s2v) val () = prstr ")" } // | HITtyclo(flab) => { val () = prstr "HITtyclo(" val () = fprint_funlab (out, flab) val () = prstr ")" } // | HITvararg(hit) => { val () = prstr "HITvararg(" val () = fprint_hitype (out, hit) val ((*closing*)) = prstr ")" } // | HITrefarg (knd(*ref/val*), hit) => { val () = prstr "HITrefarg(" val () = fprint_int (out, knd) val () = prstr ", " val () = fprint_hitype (out, hit) val () = prstr ")" } // | HITundef (stamp, hse) => { val () = prstr "HITundef(" val () = fprint_hisexp (out, hse) val () = prstr ")" } // | HITerror () => prstr "HITerror()" // end // end of [fprint_hitype] implement fprint_hitypelst (out, hits) = $UT.fprintlst (out, hits, ", ", fprint_hitype) // end of [fprint_hitypelst] (* ****** ****** *) // extern fun hitype_error ((*void*)): hitype extern fun hitype_tybox ((*void*)): hitype // extern fun hitype_undef (hse: hisexp): hitype // (* ****** ****** *) // // HX: 0:non-tyvar // HX: 1:tyvar-boxed // HX: ~1:tyvar-unboxed // extern fun hitype_is_tyvarhd (hit0: hitype): int // (* ****** ****** *) implement hitype_is_tyvarhd (hit0) = let in // case+ hit0 of // | HITapp ( hit_fun, _(*arg*) ) => hitype_is_tyvarhd(hit_fun) // end of [HITapp] // | HITtyvar(s2v) => let val s2t = s2var_get_srt(s2v) val isbox = s2rt_is_boxed_fun(s2t) in if isbox then 1(*boxed*) else ~1(*unboxed*) // end of [if] end // end of [HITtyvar] // | _(*rest-of-hitype*) => (0)(*non-tyvar*) // end (* end of [hitype_is_tyvarhd] *) (* ****** ****** *) extern fun hitype_tyvar_test(hit0: hitype): bool (* ****** ****** *) implement hitype_tyvar_test (hit0) = aux(hit0) where { // fun aux ( hit0: hitype ) : bool = ( // case+ hit0 of // | HITapp(hit, _) => aux(hit) // | HITtyrec (lhits) => auxlablst(lhits) | HITtysum (_, lhits) => auxlablst(lhits) | HITtyexn (lhits) => auxlablst(lhits) // | HITtyvar (s2v) => let val s2t = s2var_get_srt(s2v) in if s2rt_is_boxed_fun(s2t) then false else true end // end of [HITtyvar] // | _(*rest-of-hitype*) => false // ) (* end of [aux] *) and auxlablst ( lxs: labhitypelst ) : bool = ( // case+ lxs of | list_nil() => false | list_cons(lx, lxs) => let val+HTLABELED(_, _, hit) = lx in if aux(hit) then true else auxlablst(lxs) end // end of [list_cons] // ) (* end of [auxlablst] *) // } (* end of [hitype_tyvar_test] *) (* ****** ****** *) // extern fun eq_hitype_hitype(x1: hitype, x2: hitype): bool // (* ****** ****** *) extern fun s2exp_typize (flag: int, s2e: s2exp): hitype extern fun s2zexp_typize (flag: int, s2ze: s2zexp): hitype (* ****** ****** *) // extern fun emit_hitypelst_sep (out: FILEref, hits: hitypelst, sep: string): void // (* ****** ****** *) local // exception EQUALexn of () // in (* in-of-local *) implement eq_hitype_hitype (x1, x2) = let // macdef abort() = $raise(EQUALexn) // fun aux ( x1: hitype, x2: hitype ) : void = let // (* // val () = println! ("eq_hitype_hitype: aux: x1 = ", x1) val () = println! ("eq_hitype_hitype: aux: x2 = ", x2) // *) // in // case+ x1 of // | HITnmd (name1) => ( case+ x2 of | HITnmd(name2) => if (name1 != name2) then abort() | _(*non-HITnmd*) => abort() ) // end of [HITnmd] // | HITapp (x11, xs12) => ( case+ x2 of | HITapp(x21, xs22) => ( aux(x11, x21); auxlst(xs12, xs22) ) | _(*non-HITapp*) => abort() ) // end of [HITapp] // | HITtyarr _ => abort() // | HITtyrec (lxs1) => ( case+ x2 of | HITtyrec(lxs2) => auxlablst(lxs1, lxs2) | _(*non-HITtyrec*) => abort() ) // end of [HITtyrec] // | HITtysum (tgd1, lxs1) => ( case+ x2 of | HITtysum (tgd2, lxs2) => ( if tgd1 = tgd2 then auxlablst(lxs1, lxs2) else abort() // end of [if] ) // end of [HITtysum] | _(*non-HITtysum*) => abort() ) // end of [HITtysum] // | HITtyexn (lxs1) => ( case+ x2 of | HITtyexn(lxs2) => auxlablst(lxs1, lxs2) | _(*non-HITtyexn*) => abort() ) // end of [HITtyexn] // | HITtyvar (s2v1) => ( case+ x2 of | HITtyvar(s2v2) => if s2v1 != s2v2 then abort() else () | _(*non-HITtyvar*) => abort() ) // end of [HITtyvar] // | HITtyclo (flab1) => ( case+ x2 of | HITtyclo(flab2) => let val p1 = $UN.cast{ptr}(flab1) val p2 = $UN.cast{ptr}(flab2) in if p1 != p2 then abort() else () end // end of [HITtyclo] | _(*non-HITtyclo*) => abort() ) // end of [HITtyclo] // | HITvararg (hit1) => ( case+ x2 of | HITvararg (hit2) => aux(hit1, hit2) // HITvararg | _(*non-HITvararg*) => abort() ) // end of [HITvararg] // | HITrefarg (knd1, hit1) => ( case+ x2 of | HITrefarg(knd2, hit2) => ( if knd1 = knd2 then aux(hit1, hit2) else abort() // end of [if] ) // end of [HITrefarg] | _(*non-HITrefarg*) => abort() ) // end of [HITrefarg] // | HITundef (stamp1, _) => ( case+ x2 of | HITundef(stamp2, _) => if (stamp1 != stamp2) then abort() else () | _(*non-HITundef*) => abort () ) // end of [HITundef] // | HITerror((*void*)) => abort() // end // end of [aux] and auxlst ( xs1: hitypelst, xs2: hitypelst ) : void = let in // case+ (xs1, xs2) of // | (list_nil(), list_nil()) => () // | (list_cons(x1, xs1), list_cons(x2, xs2)) => ( aux (x1, x2); auxlst (xs1, xs2) ) // end of [cons, cons] // | (list_nil(), list_cons _) => abort () | (list_cons _, list_nil()) => abort () // end // end of [auxlst] and auxlablst ( lxs1: labhitypelst, lxs2: labhitypelst ) : void = let in // case+ (lxs1, lxs2) of // | (list_nil(), list_nil()) => () // | (list_cons(lx1, lxs1), list_cons(lx2, lxs2)) => let val HTLABELED(l1, opt1, x1) = lx1 val HTLABELED(l2, opt2, x2) = lx2 val () = if (l1 != l2) then abort () // end of [val] val () = ( case+ (opt1, opt2) of | (None(), None()) => () | (Some(nm1), Some(nm2)) => ( if nm1 != nm2 then abort () ) | (_, _) => abort () ) : void // end of [val] in aux (x1, x2); auxlablst (lxs1, lxs2) end // end of [cons, cons] // | (list_nil(), list_cons _) => abort () | (list_cons _, list_nil()) => abort () // end // end of [auxlablst] // in // try let val () = aux (x1, x2) in true // endval end with | ~EQUALexn () => false // end of [try] // end // end of [eq_hitype_hitype] end // end of [local] (* ****** ****** *) extern fun hitype_hash (hit: hitype): ulint local fun auxint ( hval: &ulint, int: int ) : void = let val int = $UN.cast2ulint (int) in hval := (hval << 8) + hval + int // hval = 65*hval + int end // end of [auxint] fun auxstr ( hval: &ulint, str: string ) : void = let // val isnot = string_isnot_empty (str) // in // if isnot then let val p = $UN.cast2Ptr1 (str) val c = $UN.ptrget (p) val c = $UN.cast2ulint (c) val () = hval := (hval << 5) + hval + c val str = $UN.cast{string} (p+1) in auxstr (hval, str) end else () // end of [if] // end // end of [auxstr] fun auxsym ( hval: &ulint, sym: symbol ) : void = auxstr (hval, $SYM.symbol_get_name (sym)) // end of [auxsym] fun aux ( hval: &ulint, hit0: hitype ) : void = let in // case+ hit0 of // | HITnmd (name) => auxstr(hval, name) // end of [HITnmd] // | HITapp (_fun, _arg) => let val () = aux(hval, _fun) val () = auxlst(hval, _arg) in auxstr( hval, "postiats_app" ) end // end of [HITapp] // | HITtyarr (hit_elt, _) => let val () = aux(hval, hit_elt) in auxstr( hval, "postiats_tyarr" ) end // end of [HITtyarr] // | HITtyrec (lhits) => let val () = auxlablst(hval, lhits) in auxstr( hval, "postiats_tyrec" ) end // end of [HITtyrec] | HITtysum (tgd, lhits) => let val () = auxint(hval, tgd) val () = auxlablst(hval, lhits) in auxstr( hval, "postiats_tysum" ) end // end of [HITtysum] | HITtyexn (lhits) => let val () = auxlablst(hval, lhits) in auxstr( hval, "postiats_tyexn" ) end // end of [HITtyexn] // | HITtyvar(s2v) => let val () = auxstr(hval, "postiats_tyvar") // end of [val] val stamp = s2var_get_stamp(s2v) in auxint(hval, $STMP.stamp_get_int(stamp)) end // end of [HITtyvar] // | HITtyclo(flab) => let val () = auxstr(hval, "postiats_tyclo") // end of [val] val stamp = funlab_get_stamp(flab) in auxint(hval, $STMP.stamp_get_int(stamp)) end // end of [HITtyclo] // | HITvararg(hit) => { val () = aux(hval, hit) val () = auxstr(hval, "postiats_vararg") // end of [val] } (* end of [HITvararg] *) // | HITrefarg (knd, hit) => let val () = aux(hval, hit) in if knd = 0 then auxstr(hval, "postiats_refarg0") else auxstr(hval, "postiats_refarg1") // end of [if] end // end of [HITrefarg] // | HITundef (stamp, hse) => auxint(hval, $STMP.stamp_get_int(stamp)) // end of [HITundef] // | HITerror() => auxstr(hval, "postiats_error") // end // end of [aux] and auxlst ( hval: &ulint, hits: hitypelst ) : void = let in // case+ hits of | list_cons (hit, hits) => { val () = aux (hval, hit) val () = auxlst (hval, hits) } // end of [list_cons] | list_nil () => () // end // end of [auxlst] and auxlab ( hval: &ulint, lhit: labhitype ) : void = let // val+HTLABELED (l, opt, hit) = lhit val opt = $LAB.label_get_int (l) val () = ( case+ opt of | ~Some_vt (x) => auxint (hval, x) | ~None_vt () => () ) : void // end of [val] val opt = $LAB.label_get_sym (l) val () = ( case+ opt of | ~Some_vt (x) => auxsym (hval, x) | ~None_vt () => () ) : void // end of [val] // in aux (hval, hit) end // end of [auxlab] and auxlablst ( hval: &ulint, lhits: labhitypelst ) : void = let in // case+ lhits of | list_cons (lhit, lhits) => let val () = auxlab (hval, lhit) in auxlablst (hval, lhits) end // end of [list_cons] | list_nil () => () // end // end of [auxlablst] in (* in of [local] *) implement hitype_hash (hit) = let var hval : ulint = 618034ul // HX: randomly chosen val () = aux (hval, hit) in hval end // end of [hitype_hash] end // end of [local] (* ****** ****** *) // extern fun the_hitypemaplst_get (): List_vt @(hitype, hitype) // extern fun the_hitypemap_search (hit: hitype): Option_vt (hitype) extern fun the_hitypemap_insert (hit: hitype, hit2: hitype): void // (* ****** ****** *) local (* ****** ****** *) // // HX-2013-01: // Using hashtable in ATS is really difficult! // (* ****** ****** *) %{^ typedef ats_ptr_type hitype ; %} // end of [%{^] (* ****** ****** *) // abstype hitype_t = $extype"hitype" // extern castfn hitype_encode (x: hitype):<> hitype_t extern castfn hitype_decode (x: hitype_t):<> hitype // overload encode with hitype_encode overload decode with hitype_decode // (* ****** ****** *) typedef key = hitype_t typedef itm = hitype(*unnamed*) (* ****** ****** *) // staload H = "libats/SATS/hashtable_chain.sats" staload _(*anon*) = "libats/DATS/hashtable_chain.dats" // implement $H.hash_key (k, fhash) = let val k = decode(k) in $effmask_all(hitype_hash(k)) end // end of [hask_key] implement $H.equal_key_key (k1, k2, keqfn) = let val k1 = decode (k1) and k2 = decode (k2) in $effmask_all (eq_hitype_hitype (k1, k2)) end // end of [equal_key_key] // val the_hitypemap = let typedef fhash = $H.hash (key) val fhash = $UN.cast{fhash}(null) typedef keqfn = $H.eqfn (key) val keqfn = $UN.cast{keqfn}(null) in $H.hashtbl_make {key,itm} (fhash, keqfn) end // end of [val] // val the_hitypemap = $H.HASHTBLref_make_ptr {key,itm} (the_hitypemap) // (* ****** ****** *) // vtypedef keyitmlst = List_vt @(hitype, hitype) val the_hitypemaplst = ref (list_vt_nil) // (* ****** ****** *) in (* in of [local] *) (* ****** ****** *) implement the_hitypemaplst_get ((*void*)) = let // val (vbox(pf)|p) = ref_get_view_ptr(the_hitypemaplst) // val kis = !p val ((*void*)) = !p := list_vt_nil() // in list_vt_reverse (kis) end // end of [the_hitypemaplst_get] (* ****** ****** *) implement the_hitypemap_search (hit) = let // val ( fpf | ptbl ) = $H.HASHTBLref_takeout_ptr(the_hitypemap) var res: itm? val hit = encode (hit) val ans = $H.hashtbl_search (ptbl, hit, res) prval () = fpf (ptbl) // in // if ans then let prval() = opt_unsome{itm}(res) in Some_vt(res) end // end of [then] else let prval() = opt_unnone{itm}(res) in None_vt(*error*) end // end of [else] // end // end of [the_hitypemap_search] (* ****** ****** *) implement the_hitypemap_insert (hit, hit2) = let // val ( fpf | ptbl ) = $H.HASHTBLref_takeout_ptr (the_hitypemap) val hit1 = encode (hit) val () = $H.hashtbl_insert (ptbl, hit1, hit2) prval () = fpf (ptbl) // val ( vbox pf | plst ) = ref_get_view_ptr (the_hitypemaplst) val () = ( !plst := list_vt_cons ( @(hit, hit2), !plst ) ) (* end of [val] *) // in // nothing end // end of [the_hitypemap_insert] end // end of [local] (* ****** ****** *) // implement hitype_error() = HITerror((*void*)) // implement hitype_tybox() = HITnmd("atstype_boxed") // implement hitype_undef(hse) = let val s = $STMP.hitype_stamp_make() in HITundef(s, hse) end // end of [hitype_undef] // (* ****** ****** *) // extern fun emit_s2var (out: FILEref, s2v: s2var): void // implement emit_s2var (out, s2v) = let val sym = s2var_get_sym (s2v) val name = $SYM.symbol_get_name (sym) in emit_ident (out, name) end // end of [emit_s2var] // (* ****** ****** *) // extern fun emit_hitype_app ( out: FILEref, hit0: hitype ) : void // end-of-fun // implement emit_hitype_app (out, hit0) = let // fun aux ( out: FILEref, hit0: hitype ) : void = let // (* val () = println! ("emit_hitype_app: aux: hit0 = ", hit0) *) // in // case+ hit0 of // | HITapp (hit_fun, hits_arg) => { val () = aux (out, hit_fun) val () = emit_text (out, "(") val () = emit_hitypelst_sep (out, hits_arg, ", ") val () = emit_text (out, ")") } (* end of [HITapp] *) // | HITtyvar (s2v) => emit_s2var (out, s2v) // | _(*rest-of-hitype*) => emit_hitype (out, hit0) // end // end of [aux] // val knd = hitype_is_tyvarhd (hit0) // val () = if knd > 0 then emit_text (out, "atstybox_type(") val () = if knd < 0 then emit_text (out, "atstyvar_type(") // val () = aux (out, hit0) // val () = if knd != 0 then emit_text (out, ")") // in // nothing end // end of [emit_hitype_app] // (* ****** ****** *) implement emit_hitype (out, hit0) = let // (* val () = println! ("emit_hitype: hit0 = ", hit0) *) // in // case+ hit0 of // | HITnmd (name) => emit_text (out, name) // end of [HITnmd] // | HITapp _ => emit_hitype_app (out, hit0) // | HITtyarr (hit, _) => { val () = emit_text (out, "atstyarr_type(") // end of [val] val ((*void*)) = emit_hitype (out, hit) val ((*void*)) = emit_text (out, ")") } (* end of [HITtyarr] *) // | HITtyrec _ => emit_text (out, "atstyrec_type(*ERROR*)") | HITtysum _ => emit_text (out, "atstysum_type(*ERROR*)") | HITtyexn _ => emit_text (out, "atstyexn_type(*ERROR*)") // | HITtyclo (flab) => { val () = emit_text (out, "atstyclo_type(") val ((*void*)) = emit_funlab (out, flab) val ((*void*)) = emit_text (out, ")") } // | HITtyvar (s2v) => { // val () = emit_text (out, "atstyvar_type(") // end of [val] // val () = emit_s2var (out, s2v) val ((*closing*)) = emit_RPAREN (out) // } (* end of [HITtyvar] *) // | HITvararg (hit) => { // val () = emit_text(out, "atsvararg_type(") // end of [val] // val () = emit_hitype (out, hit) // val ((*closing*)) = emit_RPAREN (out) // } (* end of [HITvararg] *) // | HITrefarg (knd, hit) => let val () = ( if knd = 0 then emit_text (out, "atsrefarg0_type(") else emit_text (out, "atsrefarg1_type(") // end of [if] ) : void // end of [val] val () = emit_hitype (out, hit) val ((*closing*)) = emit_RPAREN (out) in // nothing end // end of [HITrefarg] // | HITundef (_, hse) => let val () = emit_text (out, "postiats_undef(") val ((*void*)) = fprint_hisexp (out, hse) val ((*void*)) = emit_text (out, ")") in // nothing end // end of [HITundef] // | HITerror () => emit_text (out, "postiats_error()") // end // end of [emit_hitype] implement emit_hitypelst_sep (out, hits, sep) = let // fun auxlst ( out: FILEref , xs: hitypelst, sep: string, i: int ) : void = let in // case+ xs of | list_cons (x, xs) => let val () = if i > 0 then emit_text (out, sep) val () = emit_hitype (out, x) in auxlst (out, xs, sep, i+1) end // end of [list_cons] | list_nil () => () // end // end of [auxlst] // in auxlst (out, hits, sep, 0) end // end of [emit_hitypelst_sep] (* ****** ****** *) implement emit_hisexp (out, hse) = let // (* val () = println! ("emit_hisexp: hse = ", hse) *) // val hit = hisexp_typize (1, hse) // (* val () = println! ("emit_hisexp: hit = ", hit) *) // in // case+ hit of | HITundef _ => ( emit_text (out, "HITundef("); fprint_hisexp (out, hse); emit_text (out, ")") ) (* end of [HITundef] *) | _ (*non-undef*) => emit_hitype (out, hit) // end // end of [emit_hisexp] (* ****** ****** *) implement emit_hisexplst_sep (out, hses, sep) = let // fun loop ( out: FILEref , hses: hisexplst, sep: string, i: int ) : void = let // (* // val () = println! ( "emit_hisexplst_sep: loop: i = ", i ) (* println! *) // *) // in // case+ hses of | list_nil ((*void*)) => () // list_nil | list_cons (hse, hses) => let val () = if i > 0 then emit_text (out, sep) // end of [if] val () = emit_hisexp (out, hse) in loop (out, hses, sep, i+1) end // end of [list_cons] // end // end of [loop] // in loop (out, hses, sep, 0) end // end of [emit_hisexplst_sep] (* ****** ****** *) implement emit_hisexp_sel (out, hse) = let // val hit = hisexp_typize (0, hse) // (* val () = println! ("emit_hisexp_sel: hse = ", hse) val () = println! ("emit_hisexp_sel: hit = ", hit) *) // in // case+ hit of | HITundef _ => ( emit_text (out, "HITundef("); fprint_hisexp (out, hse); emit_text (out, ")") ) // end of [HITundef] | _ (*non-undef*) => emit_hitype (out, hit) // end // end of [emit_hisexp_sel] (* ****** ****** *) extern fun hitype_gen_tyrec (): hitype implement hitype_gen_tyrec () = let val n = $STMP.hitype_stamp_make () val name = $STMP.tostring_prefix_stamp ("postiats_tyrec_", n) in HITnmd (name) end // end of [hitype_gen_tyrec] extern fun hitype_gen_tysum (): hitype implement hitype_gen_tysum () = let val n = $STMP.hitype_stamp_make () val name = $STMP.tostring_prefix_stamp ("postiats_tysum_", n) in HITnmd (name) end // end of [hitype_gen_tysum] extern fun hitype_gen_tyexn (): hitype implement hitype_gen_tyexn () = let val n = $STMP.hitype_stamp_make () val name = $STMP.tostring_prefix_stamp ("postiats_tyexn_", n) in HITnmd (name) end // end of [hitype_gen_tyexn] (* ****** ****** *) implement s2exp_typize (flag, s2e0) = let // (* val () = println! ("s2exp_typize: s2e0 = ", s2e0) *) // fun auxlst ( flag: int, s2es: s2explst ) : hitypelst = ( case+ s2es of | list_nil() => list_nil((*void*)) | list_cons(s2e, s2es) => list_cons (s2exp_typize(flag, s2e), auxlst(flag, s2es)) // list_cons ) // fun auxlstlst_app ( flag: int , hit0: hitype, s2ess: s2explstlst ) : hitype = ( case+ s2ess of | list_nil() => hit0 | list_cons(s2es, s2ess) => let val hits_arg = auxlst(flag, s2es) in auxlstlst_app(flag, HITapp(hit0, hits_arg), s2ess) end // end of [list_cons] ) // in // case+ s2e0.s2exp_node of (* case+ *) // | S2Eextype (name, s2ess) => let val hit0 = HITnmd(name) in auxlstlst_app(flag, hit0, s2ess) end // end of [S2Eextype] // | S2Eextkind (name, s2ess) => HITnmd(name) // end of [S2Eextkind] // | S2EVar(s2V) => ( s2zexp_typize(flag, s2Var_get_szexp(s2V)) ) (* end of [S2EVar] *) // | S2Eat(s2e, s2l) => hitype_error() // HX: view is not type // | _ (*rest*) => hisexp_typize(flag, hse0) where { val hse0 = $TYER.s2exp_tyer_shallow($LOC.location_dummy, s2e0) } (* end of [_] *) // end // end of [s2exp_typize] (* ****** ****** *) implement s2zexp_typize (flag, s2ze0) = let // (* val () = println! ("s2zexp_typize: s2ze0 = ", s2ze0) *) // in // case+ s2ze0 of // | S2ZEextype (name, _) => HITnmd (name) | S2ZEextkind (name, _) => HITnmd (name) | _ (*rest*) => let val hse0 = $TYER.s2zexp_tyer ($LOC.location_dummy, s2ze0) in hisexp_typize (flag, hse0) end // end of [_] // end // end of [s2zexp_typize] (* ****** ****** *) local fun aux ( flag: int, hse0: hisexp ) : hitype = let // (* val () = println! ("aux: hse0 = ", hse0) *) // val HITNAM(knd, fin, name) = hse0.hisexp_name // (* val () = println! ("aux: fin = ", fin) val () = println! ("aux: name = ", name) *) // in // case+ hse0.hisexp_node of (* case+ *) // | _ when (fin > 0) => HITnmd (name) // end of [fin > 0] // | HSEcst (s2c) => aux_s2cst (s2c) // | HSEapp (_fun, _arg) => HITapp (aux(flag, _fun), auxlst(flag, _arg)) // end of [HSEapp] // | HSEtyabs (sym) => let val name = $SYM.symbol_get_name (sym) in HITnmd (name) // end of [val] end // end of [HSEtyabs] // | HSEtyarr _ => aux_tyarr (flag, hse0) // | HSEtyrec _ => aux_tyrec (flag, hse0) // | HSEtyrecsin (lhse) => let val+HSLABELED(lab, opt, hse) = lhse in aux (flag, hse) end // end of [HSEtyrecsin] // | HSEtysum (d2c, _) => ( if d2con_is_con (d2c) then aux_tysum (flag, hse0) else aux_tyexn (flag, hse0) // end of [if] ) // end of [HSEtysum] // | HSEtyclo (flab) => HITtyclo($UN.cast{funlab}(flab)) // end of [HSEtyclo] // | HSEvararg (s2e) => let val hit = s2exp_typize(flag, s2e) in HITvararg(hit) end // end of [HSEvararg] // | HSErefarg (knd, hse) => let val hit = aux(flag, hse) in HITrefarg(knd, hit) end // end of [HSErefarg] // | HSEs2exp(s2e) => let val hit = s2exp_typize(flag, s2e) in case+ hit of HITerror() => hitype_undef(hse0) | _ => (hit) end // end of [HSEs2exp] // | HSEs2zexp (s2ze) => let val hit = s2zexp_typize(flag, s2ze) in case+ hit of HITerror() => hitype_undef(hse0) | _ => (hit) end // end of [HSEs2zexp] // | HSEtyvar (s2v) => HITtyvar (s2v) // | _(*undefined-type*) => hitype_undef (hse0) // end // end of [aux] and aux_s2cst (s2c: s2cst): hitype = let in // case+ 0 of | _ when s2cst_is_datype(s2c) => hitype_tybox() // end of [datatype] | _ => let val sym = s2cst_get_sym(s2c) val name = $SYM.symbol_get_name (sym) in HITnmd(name) // end of [val] end // end of [_] // end // end of [aux_s2cst] and aux_tyarr ( flag: int, hse0: hisexp ) : hitype = let // val-HSEtyarr (hse_elt, dim) = hse0.hisexp_node val hit_elt = aux (flag+1, hse_elt) // in HITtyarr (hit_elt, dim) end // end of [aux_tyarr] and aux_tyrec ( flag: int, hse0: hisexp ) : hitype = let // val-HSEtyrec (knd, lxs) = hse0.hisexp_node in // case+ knd of // | TYRECKINDbox() => if flag > 0 then hitype_tybox() else aux_tyrec2 (flag, lxs) // end of [if] | TYRECKINDbox_lin() => if flag > 0 then hitype_tybox () else aux_tyrec2 (flag, lxs) // end of [if] // | TYRECKINDflt0() => aux_tyrec2(flag, lxs) | TYRECKINDflt1(stamp) => aux_tyrec2(flag, lxs) // | TYRECKINDflt_ext (name) => HITnmd (name) // end // end of [aux_tyrec] and aux_tyrec2 ( flag: int, lxs: labhisexplst ) : hitype = let // val lys = auxlablst(flag, lxs) // val hit = HITtyrec(lys) val opt = the_hitypemap_search(hit) // in // case+ opt of | ~None_vt() => let val hit2 = hitype_gen_tyrec() in the_hitypemap_insert(hit, hit2); hit2 end // end of [None_vt] // | ~Some_vt(hit2) => hit2 // end // end of [aux_tyrec2] and aux_tysum ( flag: int, hse0: hisexp ) : hitype = let // val- HSEtysum (d2c, lxs) = hse0.hisexp_node // val isbox = (if flag > 0 then true else false): bool // in // if isbox then hitype_tybox () else let val tgd = ( if d2con_is_tagless (d2c) then 0 else 1 ) : int // end of [val] val lys = auxlablst (flag, lxs) val hit0 = HITtysum (tgd, lys) val opt = the_hitypemap_search (hit0) in case+ opt of | ~None_vt () => let val hit1 = hitype_gen_tysum () val () = the_hitypemap_insert (hit0, hit1) in hit1 end // end of [None_vt] | ~Some_vt (hit0) => hit0 end // end of [else] // end // end of [aux_tysum] and aux_tyexn ( flag: int, hse0: hisexp ) : hitype = let // val- HSEtysum (d2c, lxs) = hse0.hisexp_node // val isbox = (if flag > 0 then true else false): bool // in // if isbox then hitype_tybox () else let val lys = auxlablst (flag, lxs) val hit0 = HITtyexn (lys) val opt = the_hitypemap_search (hit0) in case+ opt of | ~None_vt () => let val hit1 = hitype_gen_tyexn () val () = the_hitypemap_insert (hit0, hit1) in hit1 end // end of [None_vt] | ~Some_vt (hit0) => hit0 end // end of [else] // end // end of [aux_tyexn] and auxlst ( flag: int, xs: hisexplst ) : hitypelst = let in // case+ xs of // | list_cons (x, xs) => let val y = aux (flag+1, x) val ys = auxlst (flag, xs) in list_cons (y, ys) end // end of [list_cons] // | list_nil((*void*)) => list_nil() // end // end of [auxlst] and auxlablst ( flag: int, lxs: labhisexplst ) : labhitypelst = let in // case+ lxs of // | list_cons (lx, lxs) => let val+ HSLABELED (l, opt, x) = lx // end of [val] val y = aux (flag+1, x) val ly = HTLABELED (l, opt, y) val lys = auxlablst (flag, lxs) in list_cons (ly, lys) end // end of [list_cons] // | list_nil((*void*)) => list_nil () // end // end of [auxlablst] in (* in of [local] *) implement hisexp_typize (flag, x) = aux (flag, x) end // end of [local] (* ****** ****** *) local fun auxfld ( out: FILEref , lhit: labhitype ) : void = let // val+ HTLABELED (lab, opt, hit) = lhit // var isa: bool = false var dim: s2explst = list_nil () // (* val () = println! ("auxfld: hit = ", hit) *) // val () = ( // case+ hit of | HITtyarr ( hit_elt, s2es ) => { val () = isa := true val () = dim := s2es val () = emit_hitype (out, hit_elt) } (* end of [HITtyarr] *) | _ (*non-tyarr*) => emit_hitype (out, hit) // ) : void // end of [val] // val () = emit_text (out, " ") // val () = if isa then emit_text (out, "atstyarr_field(") // end of [if] // val () = ( case+ opt of | Some (name) => emit_text (out, name) | None ((*void*)) => emit_labelext (out, 0(*extknd*), lab) // end of [None] ) : void // end of [val] // val () = ( // if isa then emit_text (out, ") ;") else emit_text (out, " ;") // ) : void // end of [val] // in // nothing end // end of [auxfld] fun auxfldlst ( out: FILEref , lhits: labhitypelst, i: int ) : void = let in // case+ lhits of | list_cons (lhit, lhits) => let val+HTLABELED (lab, opt, hit) = lhit val () = if i > 0 then emit_newline (out) // end of [val] val () = auxfld (out, lhit) in auxfldlst (out, lhits, i+1) end // end of [list_cons] | list_nil () => () // end // end of [auxfldlst] fun auxkey ( out: FILEref, hit: hitype ) : void = let in // case+ hit of | HITtyrec(lhits) => { val () = emit_text (out, "ATSstruct {") val () = auxfldlst (out, lhits, 1) val ((*closing*)) = emit_text (out, "\n}") } (* end of [HITtyrec] *) // | HITtysum(tgd, lhits) => { val () = emit_text (out, "ATSstruct {\n") val () = if tgd > 0 then emit_text (out, "// ") val () = fprintf (out, "#if(%i)\n", @(tgd)) val () = emit_text (out, "int contag ;\n") val () = if tgd > 0 then emit_text (out, "// ") val () = emit_text (out, "#endif") val () = auxfldlst (out, lhits, 1) val ((*closing*)) = emit_text (out, "\n}") } (* end of [HITtysum] *) // | HITtyexn(lhits) => { val () = emit_text (out, "ATSstruct {\n") val () = emit_text (out, "atstype_int exntag ;\n") val () = emit_text (out, "atstype_string exnmsg ;") val () = auxfldlst (out, lhits, 1) val ((*closing*)) = emit_text (out, "\n}") } (* end of [HITtyexn] *) // | _ (*non-struct*) => emit_text (out, "(**ERROR**)") // end // end of [auxkey] in (* in of [local] *) implement emit_the_typedeflst (out) = let // typedef keyitm = @(hitype, hitype) // fun auxlst ( out: FILEref , kis: List_vt (keyitm) ) : void = let in // case+ kis of | ~list_vt_cons (ki, kis) => let // val tyvar = hitype_tyvar_test(ki.1) // val () = if tyvar then emit_text(out, "#if(0)\n") // end of [if] // val () = emit_text(out, "typedef\n") val () = auxkey (out, ki.0) val () = emit_text (out, " ") val () = emit_hitype (out, ki.1) val () = emit_text (out, " ;\n") // val () = if tyvar then emit_text(out, "#endif\n") // end of [if] // in auxlst (out, kis) end // end of [list_vt_cons] | ~list_vt_nil((*void*)) => () // end // end of [auxlst] // val () = emit_text (out, "/*\n") val () = emit_text (out, "typedefs-for-tyrecs-and-tysums(beg)\n") val () = emit_text (out, "*/\n") val () = auxlst (out, the_hitypemaplst_get ()) val () = emit_text (out, "/*\n") val () = emit_text (out, "typedefs-for-tyrecs-and-tysums(end)\n") val () = emit_text (out, "*/\n") // in // nothing end // end of [emit_the_typedeflst] end // end of [local] (* ****** ****** *) (* end of [pats_ccomp_hitype.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_label.dats0000644000175000017500000000762013431250607020441 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload SYM = "./pats_symbol.sats" overload compare with $SYM.compare_symbol_symbol (* ****** ****** *) staload "./pats_label.sats" (* ****** ****** *) datatype label = LABint of int | LABsym of symbol assume label_type = label (* ****** ****** *) implement label_make_int (int) = LABint (int) implement label_make_sym (sym) = LABsym (sym) (* ****** ****** *) implement label_make_string (str) = let val sym = $SYM.symbol_make_string (str) in LABsym (sym) end // end of [label_make_string] (* ****** ****** *) implement label_is_int (l) = case+ l of LABint _ => true | LABsym _ => false // end of [label_is_int] implement label_get_int (l) = case+ l of LABint (x) => Some_vt (x) | _ => None_vt () // end of [label_get_int] (* ****** ****** *) implement label_is_sym (l) = case+ l of LABint _ => false | LABsym _ => true // end of [label_is_sym] implement label_get_sym (l) = case+ l of LABsym (x) => Some_vt (x) | _ => None_vt () // end of [label_get_sym] (* ****** ****** *) implement label_dotize (l) = let // val dotname = ( // case+ l of | LABint (int) => string_of_strptr (sprintf (".%i", @(int))) // end of [LABint] | LABsym (sym) => string_of_strptr (sprintf (".%s", @($SYM.symbol_get_name (sym)))) // end of [LABsym] // ) : string // end of [val] // in $SYM.symbol_make_string (dotname) end // end of [label_dotize] (* ****** ****** *) implement eq_label_label (l1, l2) = compare_label_label (l1, l2) = 0 // end of [eq_label_label] implement neq_label_label (l1, l2) = compare_label_label (l1, l2) != 0 // end of [neq_label_label] (* ****** ****** *) implement compare_label_label (l1, l2) = let (* val () = println! ("compare_label_label: l1 = ", l1) val () = println! ("compare_label_label: l2 = ", l2) *) in // case+ (l1, l2) of // case+ // | (LABint i1, LABint i2) => compare(i1, i2) | (LABsym s1, LABsym s2) => compare(s1, s2) // | (LABint _, LABsym _) => ~1 // | (LABsym _, LABint _) => 1 // end // end of [compare_label_label] (* ****** ****** *) implement tostring_label (l) = let in // case+ l of | LABint(int) => string_of_strptr(tostrptr_int(int)) // end of [LABint] | LABsym(sym) => $SYM.symbol_get_name(sym) // end // end of [tostring_label] (* ****** ****** *) // implement print_label(x) = fprint_label(stdout_ref, x) implement prerr_label(x) = fprint_label(stderr_ref, x) // implement fprint_label (out, x) = ( case+ x of | LABint(int) => fprint_int(out, int) | LABsym(sym) => $SYM.fprint_symbol(out, sym) ) (* end of [fprint_label] *) // (* ****** ****** *) (* end of [pats_label.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2.sats0000644000175000017500000011705113431250607020767 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload INT = "./pats_intinf.sats" typedef intinf = $INT.intinf staload CNTR = "./pats_counter.sats" typedef count = $CNTR.count staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp typedef stampopt = $STMP.stampopt staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol (* ****** ****** *) staload LAB = "./pats_label.sats" typedef label = $LAB.label staload LOC = "./pats_location.sats" typedef location = $LOC.location staload FIL = "./pats_filename.sats" typedef filename = $FIL.filename (* ****** ****** *) // staload SYN = "./pats_syntax.sats" // typedef c0har = $SYN.c0har typedef f0loat = $SYN.f0loat typedef s0tring = $SYN.s0tring // typedef scstextdef = $SYN.scstextdef // typedef sl0abeled (a:type) = $SYN.sl0abeled (a) // (* ****** ****** *) staload EFF = "./pats_effect.sats" typedef effset = $EFF.effset (* ****** ****** *) // staload "./pats_staexp1.sats" // (* ****** ****** *) // // HX: assumed in [pats_staexp2_scst.dats] // abstype s2cst_type typedef s2cst = s2cst_type typedef s2cstlst = List (s2cst) typedef s2cstopt = Option (s2cst) // vtypedef s2cstlst_vt = List_vt (s2cst) // abstype s2cstset_type typedef s2cstset = s2cstset_type absvtype s2cstset_vtype vtypedef s2cstset_vt = s2cstset_vtype // abstype s2cstmap_type_type (a:type) typedef s2cstmap(a:type) = s2cstmap_type_type(a) // (* ****** ****** *) // // HX: assumed in [pats_staexp2_svar.dats] // abstype s2var_type typedef s2var = s2var_type typedef s2varlst = List (s2var) vtypedef s2varlst_vt = List_vt (s2var) typedef s2varopt = Option (s2var) vtypedef s2varopt_vt = Option_vt (s2var) typedef s2varlstlst = List (s2varlst) // abstype s2varset_type typedef s2varset = s2varset_type absvtype s2varset_vtype vtypedef s2varset_vt = s2varset_vtype // abstype s2varmset_type typedef s2varmset = s2varmset_type // absvtype s2varbindmap_vtype vtypedef s2varbindmap = s2varbindmap_vtype // (* ****** ****** *) // // HX: assumed in [pats_staexp2_sVar.dats] // abstype s2Var_type typedef s2Var = s2Var_type typedef s2Varlst = List (s2Var) typedef s2Varopt = Option (s2Var) // vtypedef s2Varlst_vt = List_vt (s2Var) // abstype s2Varset_type typedef s2Varset = s2Varset_type // absvtype s2Varset_vtype vtypedef s2Varset_vt = s2Varset_vtype // abstype s2VarBound_type typedef s2VarBound = s2VarBound_type typedef s2VarBoundlst = List (s2VarBound) // (* ****** ****** *) abstype s2hole_type typedef s2hole = s2hole_type abstype s2ctxt_type typedef s2ctxt = s2ctxt_type typedef s2ctxtopt = Option (s2ctxt) typedef s2ctxtopt_vt = Option (s2ctxt) (* ****** ****** *) // // HX: assumed in [pats_staexp2_dcon.dats] // abstype d2con_type typedef d2con = d2con_type typedef d2conlst = List (d2con) vtypedef d2conlst_vt = List_vt (d2con) // abstype d2conset_type typedef d2conset = d2conset_type // absvtype d2conset_vtype vtypedef d2conset_vt = d2conset_vtype // (* ****** ****** *) // abstype s2rtdat_type typedef s2rtdat = s2rtdat_type // (* ****** ****** *) // fun s2rtdat_make (id: symbol): s2rtdat // fun s2rtdat_get_sym (s2td: s2rtdat): symbol fun s2rtdat_get_stamp (s2td: s2rtdat): stamp // fun s2rtdat_get_sconlst (s2td: s2rtdat): s2cstlst fun s2rtdat_set_sconlst (s2td: s2rtdat, s2cs: s2cstlst): void // fun eq_s2rtdat_s2rtdat (s2td1: s2rtdat, s2td2: s2rtdat):<> bool fun compare_s2rtdat_s2rtdat (s2td1: s2rtdat, s2td2: s2rtdat):<> int // overload = with eq_s2rtdat_s2rtdat overload compare with compare_s2rtdat_s2rtdat // fun print_s2rtdat : (s2rtdat) -> void and prerr_s2rtdat : (s2rtdat) -> void fun fprint_s2rtdat : fprint_type (s2rtdat) // (* ****** ****** *) // abstype s2rtdatset_type typedef s2rtdatset = s2rtdatset_type // fun s2rtdatset_nil (): s2rtdatset fun s2rtdatset_add (xs: s2rtdatset, x: s2rtdat): s2rtdatset fun s2rtdatset_listize (xs: s2rtdatset): List_vt(s2rtdat) // (* ****** ****** *) datatype s2rtbas = | S2RTBASpre of (symbol) // predicative: int, bool, ... | S2RTBASimp of (int(*knd*), symbol) // impredicative sorts | S2RTBASdef of (s2rtdat) // user-defined datasorts // end of [s2rtbas] fun fprint_s2rtbas : fprint_type (s2rtbas) (* ****** ****** *) // abstype s2rtVar // ref (s2rt) // fun eq_s2rtVar_s2rtVar (x1: s2rtVar, x2: s2rtVar): bool fun compare_s2rtVar_s2rtVar (s2tV1: s2rtVar, s2tV2: s2rtVar): Sgn // overload = with eq_s2rtVar_s2rtVar overload compare with compare_s2rtVar_s2rtVar // fun s2rtVar_make (loc: location): s2rtVar // (* ****** ****** *) datatype s2rt = | S2RTbas of s2rtbas (* base sort *) | S2RTfun of (s2rtlst, s2rt) // function sort | S2RTtup of s2rtlst (* tuple sort *) | S2RTVar of s2rtVar // HX: unification variable | S2RTerr of ((*void*)) // HX: error indication // end of [s2rt] where s2rtlst = List (s2rt) and s2rtopt = Option (s2rt) and s2rtlstlst = List (s2rtlst) and s2rtlstopt = Option (s2rtlst) (* ****** ****** *) fun print_s2rt (x: s2rt): void overload print with print_s2rt fun prerr_s2rt (x: s2rt): void overload prerr with prerr_s2rt fun fprint_s2rt : fprint_type (s2rt) overload fprint with fprint_s2rt fun print_s2rtlst (xs: s2rtlst): void overload print with print_s2rtlst fun prerr_s2rtlst (xs: s2rtlst): void overload prerr with prerr_s2rtlst fun fprint_s2rtlst : fprint_type (s2rtlst) (* ****** ****** *) // // HX: // pre-defined predicative sorts // val s2rt_int : s2rt // integers val s2rt_addr : s2rt // addresses val s2rt_bool : s2rt // booleans // (* val s2rt_char : s2rt // = s2rt_int *) // val s2rt_real : s2rt // real numbers // val s2rt_float : s2rt // floating-point val s2rt_string : s2rt // string constants // val s2rt_cls : s2rt (* nominal classes *) // val s2rt_eff : s2rt (* sets of effects *) // val s2rt_tkind : s2rt // for template arguments // // HX: // pre-defined // impredicative sorts // val s2rt_prop : s2rt val s2rt_prop_pos : s2rt val s2rt_prop_neg : s2rt // val s2rt_type : s2rt val s2rt_type_pos : s2rt val s2rt_type_neg : s2rt // val s2rt_t0ype : s2rt val s2rt_t0ype_pos : s2rt val s2rt_t0ype_neg : s2rt // val s2rt_view : s2rt val s2rt_view_pos : s2rt val s2rt_view_neg : s2rt // val s2rt_vtype : s2rt val s2rt_vtype_pos : s2rt val s2rt_vtype_neg : s2rt // val s2rt_vt0ype : s2rt val s2rt_vt0ype_pos : s2rt val s2rt_vt0ype_neg : s2rt // val s2rt_types : s2rt (* val s2rt_types_pos : s2rt val s2rt_types_neg : s2rt *) // (* ****** ****** *) // fun s2rt_impred (knd: int): s2rt // selecting impredicative sorts // fun s2rt_fun (_arg: s2rtlst, _res: s2rt): s2rt // forming function sorts fun s2rt_tup (s2ts: s2rtlst): s2rt (* HX: tuple sorts are not yet supported *) // fun s2rt_err (): s2rt // HX: a placeholder indicating error // fun s2rt_is_int (x: s2rt): bool fun s2rt_is_addr (x: s2rt): bool fun s2rt_is_bool (x: s2rt): bool // (* fun s2rt_is_char (x: s2rt): bool *) // fun s2rt_is_float (x: s2rt): bool fun s2rt_is_string (x: s2rt): bool // fun s2rt_is_dat (x: s2rt): bool // fun s2rt_is_fun (x: s2rt): bool fun s2rt_is_prf (x: s2rt): bool // is proof? // fun s2rt_is_lin (x: s2rt): bool fun s2rt_is_nonlin (x: s2rt): bool // fun s2rt_is_flat (x: s2rt): bool // is flat? fun s2rt_is_boxed (x: s2rt): bool // is boxed? // fun s2rt_is_tkind (x: s2rt): bool // is tkind? // fun s2rt_is_prgm (x: s2rt): bool // is program? fun s2rt_is_impred (x: s2rt): bool // is impredicative? // fun s2rt_is_lin_fun (x: s2rt): bool // is (... ->) linear? fun s2rt_is_flat_fun (x: s2rt): bool // is (... ->) flat? fun s2rt_is_boxed_fun (x: s2rt): bool // is (... ->) boxed? fun s2rt_is_tkind_fun (x: s2rt): bool // is (... ->) tkind? // fun s2rt_is_prgm_fun (x: s2rt): bool // is (... ->) program? fun s2rt_is_impred_fun (x: s2rt): bool // is (... ->) impred? // (* ****** ****** *) fun s2rt_get_pol (x: s2rt): int // neg/neu/pos: -1/0/1 (* ****** ****** *) // fun s2rtVar_get_s2rt (s2tV: s2rtVar): s2rt fun s2rtVar_set_s2rt (s2tV: s2rtVar, s2t: s2rt): void // fun s2rtVar_occurcheck (s2tV: s2rtVar, s2t: s2rt): bool // fun s2rt_delink (s2t: s2rt): s2rt // HX: shallow removal fun s2rt_delink_all (s2t: s2rt): s2rt // HX: perform deep removal // fun s2rt_ltmat0 (s2t1: s2rt, s2t2: s2rt): bool // HX: dry-run fun s2rt_ltmat1 (s2t1: s2rt, s2t2: s2rt): bool // HX: real-run // (* ****** ****** *) // // HX-2011-05-02: // [filenv] contains the following // [s2rtenv], [s2expenv] and [d2expenv] // abstype filenv_type typedef filenv = filenv_type fun filenv_get_name (x: filenv): filename (* ****** ****** *) // // static items // datatype s2itm = // | S2ITMvar of s2var // | S2ITMcst of s2cstlst // | S2ITMe1xp of e1xp // | S2ITMdatcontyp of d2con | S2ITMdatconptr of d2con // | S2ITMfilenv of filenv // end of [s2itm] typedef s2itmlst = List s2itm vtypedef s2itmopt_vt = Option_vt (s2itm) fun print_s2itm (x: s2itm): void overload print with print_s2itm fun prerr_s2itm (x: s2itm): void overload prerr with prerr_s2itm fun fprint_s2itm : fprint_type (s2itm) (* ****** ****** *) datatype tyreckind = | TYRECKINDbox (* boxed *) | TYRECKINDbox_lin (* boxed *) | TYRECKINDflt0 (* flat *) | TYRECKINDflt1 of stamp (* flat *) | TYRECKINDflt_ext of string (* flat *) // end of [tyreckind] fun tyreckind_is_box (knd: tyreckind): bool fun tyreckind_is_boxlin (knd: tyreckind): bool fun tyreckind_is_boxed (knd: tyreckind): bool fun tyreckind_is_flted (knd: tyreckind): bool fun tyreckind_is_fltext (knd: tyreckind): bool fun tyreckind_is_nameless (knd: tyreckind): bool fun print_tyreckind (x: tyreckind): void fun prerr_tyreckind (x: tyreckind): void fun fprint_tyreckind: fprint_type (tyreckind) fun eq_tyreckind_tyreckind (knd1: tyreckind, knd2: tyreckind): bool overload = with eq_tyreckind_tyreckind fun neq_tyreckind_tyreckind (knd1: tyreckind, knd2: tyreckind): bool overload != with eq_tyreckind_tyreckind (* ****** ****** *) (* ** HX: s2hnf for s2exp in head normal form (HNF) *) abstype s2hnf_type typedef s2hnf = s2hnf_type typedef s2hnflst = List (s2hnf) fun print_s2hnf (x: s2hnf): void overload print with print_s2hnf fun prerr_s2hnf (x: s2hnf): void overload prerr with prerr_s2hnf fun fprint_s2hnf : fprint_type (s2hnf) (* ****** ****** *) datatype s2exp_node = // | S2Eint of int // integer | S2Eintinf of intinf // integer of flex precision // (* | S2Echar of char // chars have been removed for now *) // | S2Efloat of string // static floating-points | S2Estring of string // static string constants // | S2Ecst of s2cst // constant // | S2Eextype of (string(*name*), s2explstlst) // external type | S2Eextkind of (string(*name*), s2explstlst) // external tkind // | S2Evar of s2var // universal variable | S2EVar of s2Var // existential variable | S2Ehole of s2hole // it used to form contexts // | S2Edatcontyp of (* unfolded datatype *) (d2con, s2explst) (* constructor and types of arguments *) | S2Edatconptr of (* unfolded datatype *) (d2con, s2exp, s2explst) (* constructor and addrs of arguments *) // | S2Eat of (s2exp, s2exp) // for at-views // end of [S2Eat] // | S2Esizeof of (s2exp) // for sizes of types // | S2Eeff of (s2eff) // effects | S2Eeqeq of (s2exp, s2exp) // generic static equality // | S2Eproj of (s2exp(*addr*), s2exp(*type*), s2lablst) // projection // | S2Eapp of (s2exp, s2explst) // static application | S2Elam of (s2varlst, s2exp) // static abstraction // | S2Efun of ( // function type funclo , int(*lin*), s2eff, int(*npf*), s2explst(*arg*), s2exp(*res*) ) (* end of S2Efun *) // | S2Emetfun of (stampopt, s2explst, s2exp) // metricked function | S2Emetdec of (s2explst(*met*), s2explst(*metbound*)) // strictly decreasing // end of [S2Emetdec] // | S2Etop of (int(*knd*), s2exp) // knd: 0/1: topization/typization // end of [S2Etop] // | S2Ewithout of (s2exp) // for a component taken out by the [view@] operation // | S2Etyarr of (s2exp (*element*), s2explst (*dimension*)) | S2Etyrec of (tyreckind, int(*npf*), labs2explst) // tuple and record // // HX: note that [S2Einvar] is *not* related to [S1Einvar]; | S2Einvar of (s2exp) // it is a special type for handling type unification // | S2Eexi of ( // exist. quantified type s2varlst(*vars*), s2explst(*props*), s2exp(*body*) ) (* end of [S2Eexi] *) | S2Euni of ( // universally quantified type s2varlst(*vars*), s2explst(*props*), s2exp(*body*) ) (* end of [S2Euni] *) // // HX: reference argument type // related to [S1Einvar] | S2Erefarg of (int(*0/1:val/ref*), s2exp) (* !/&: call-by-val/ref *) // | S2Evararg of (s2exp) // variadic argument type // | S2Ewthtype of (s2exp, wths2explst) // the result part of a fun type // | S2Eerrexp of ((*void*)) // HX: placeholder for indicating error or something else // // end of [s2exp_node] and s2lab = | S2LABlab of (label) | S2LABind of (s2explst) // end of [s2lab] and s2eff = | S2EFFset of effset | S2EFFexp of (s2exp) | S2EFFadd of (s2eff, s2eff) // end of [s2eff] and s2rtext = (* extended sort *) | S2TEsrt of s2rt | S2TEsub of (s2var, s2rt, s2explst) | S2TEerr of ((*void*)) // end of [s2rtext] and labs2exp = SLABELED of (label, Option(string), s2exp) and wths2explst = | WTHS2EXPLSTnil of () | WTHS2EXPLSTcons_none of wths2explst | WTHS2EXPLSTcons_invar of (int(*refval*), s2exp, wths2explst) | WTHS2EXPLSTcons_trans of (int(*refval*), s2exp, wths2explst) // end of [wths2explst] where s2exp = '{ s2exp_srt= s2rt, s2exp_node= s2exp_node } // end of [s2exp] and s2explst = List (s2exp) and s2expopt = Option (s2exp) and s2explstlst = List (s2explst) and s2explstopt = Option (s2explst) and s2lablst = List (s2lab) and labs2explst = List (labs2exp) vtypedef s2explst_vt = List_vt (s2exp) vtypedef s2expopt_vt = Option_vt (s2exp) (* ****** ****** *) typedef locs2exp = (location, s2exp) typedef locs2explst = List (locs2exp) vtypedef s2rtextopt_vt = Option_vt (s2rtext) (* ****** ****** *) typedef syms2rt = (symbol, s2rt) typedef syms2rtlst = List (syms2rt) (* ****** ****** *) // // HX: there is no [s2qua] // typedef s2qua = @{ s2qua_svs= s2varlst, s2qua_sps= s2explst } // end of [s2qua] typedef s2qualst = List (s2qua) vtypedef s2qualst_vt = List_vt (s2qua) // fun s2qua_make (s2vs: s2varlst, s2ps: s2explst): s2qua // fun fprint_s2qua : fprint_type (s2qua) // fun print_s2qualst (xs: s2qualst): void fun prerr_s2qualst (xs: s2qualst): void fun fprint_s2qualst : fprint_type (s2qualst) // (* ****** ****** *) // fun s2cst_make ( id: symbol , loc: location , fil: filename , s2t: s2rt // the sort , isabs: Option(s2expopt) , iscon: bool , isrec: bool , isasp: s2expopt , islst: Option@(d2con(*nil*), d2con(*cons*)) , argsrtss: List(syms2rtlst) // HX: containing info on arg variances , s2cstdef: s2expopt ) : s2cst // end of [s2cst_make] // fun s2cst_make_dat ( id: symbol , loc: location , s2ts_arg: s2rtlstlst, s2t_res: s2rt , argsrtss: List(syms2rtlst) // HX: containing info on arg variances ) : s2cst // end of [s2cst_make_dat] // (* ****** ****** *) fun s2cst_get_sym (x: s2cst): symbol fun s2cst_get_name (x: s2cst): string fun s2cst_get_loc (x: s2cst): location fun s2cst_get_fil (x: s2cst): filename fun s2cst_get_srt (x: s2cst): s2rt fun s2cst_get_def (x: s2cst): s2expopt fun s2cst_set_def (x: s2cst, def: s2expopt): void fun s2cst_get_pack (x: s2cst): Stropt fun s2cst_get_isabs (x: s2cst): Option(s2expopt) (* // // HX-2017-02-01: // This one is for internal use! // fun s2cst_set_isabs (x: s2cst, opt: s2expopt): void // *) fun s2cst_get_iscon (x: s2cst): bool fun s2cst_get_isrec (x: s2cst): bool fun s2cst_get_isasp (x: s2cst): s2expopt fun s2cst_set_isasp (x: s2cst, opt: s2expopt): void fun s2cst_get_iscpy (x: s2cst): s2cstopt fun s2cst_set_iscpy (x: s2cst, opt: s2cstopt): void fun s2cst_get_islst (x: s2cst): Option @(d2con, d2con) fun s2cst_set_islst (x: s2cst, lst: Option @(d2con, d2con)): void fun s2cst_get_arylst (x: s2cst): List int // arity list fun s2cst_get_argsrtss (x: s2cst): List (syms2rtlst) // arg variances fun s2cst_get_dconlst (x: s2cst): Option d2conlst fun s2cst_set_dconlst (x: s2cst, lst: Option d2conlst): void fun s2cst_get_sup (x: s2cst): s2cstlst fun s2cst_add_sup (x: s2cst, sup: s2cst): void fun s2cst_get_supcls (x: s2cst): s2explst fun s2cst_add_supcls (x: s2cst, sup: s2exp): void fun s2cst_get_sVarset (x: s2cst): s2Varset fun s2cst_set_sVarset (x: s2cst, _: s2Varset): void fun s2cst_get_dstag (x: s2cst): int fun s2cst_set_dstag (x: s2cst, tag: int): void fun s2cst_get_stamp (x: s2cst): stamp (* ****** ****** *) // fun s2cst_get_extdef(x: s2cst): scstextdef fun s2cst_set_extdef(x: s2cst, xdef: scstextdef): void // (* ****** ****** *) fun lt_s2cst_s2cst (x1: s2cst, x2: s2cst):<> bool overload < with lt_s2cst_s2cst fun lte_s2cst_s2cst (x1: s2cst, x2: s2cst):<> bool overload <= with lte_s2cst_s2cst fun eq_s2cst_s2cst (x1: s2cst, x2: s2cst):<> bool overload = with eq_s2cst_s2cst fun neq_s2cst_s2cst (x1: s2cst, x2: s2cst):<> bool overload != with neq_s2cst_s2cst fun compare_s2cst_s2cst (x1: s2cst, x2: s2cst):<> Sgn overload compare with compare_s2cst_s2cst (* ****** ****** *) // fun s2cst_is_def(x: s2cst): bool // fun s2cst_is_abstr (x: s2cst): bool fun s2cst_is_tkind (x: s2cst): bool // fun s2cst_is_tydef (s2c: s2cst): bool fun s2cst_is_datype (s2c: s2cst): bool // fun s2cst_is_tagless (x: s2cst): bool fun s2cst_is_listlike (x: s2cst): bool fun s2cst_is_singular (x: s2cst): bool fun s2cst_is_binarian (x: s2cst): bool // fun s2cst_is_linear (x: s2cst): bool fun s2cst_is_nonlinear (x: s2cst): bool // (* ****** ****** *) fun s2cst_subeq (s2c1: s2cst, s2c2: s2cst): bool fun s2cst_lte_cls_cls (s2c1: s2cst, s2c2: s2cst): bool (* ****** ****** *) fun print_s2cst (x: s2cst): void fun prerr_s2cst (x: s2cst): void overload print with print_s2cst overload prerr with prerr_s2cst fun fprint_s2cst : fprint_type (s2cst) overload fprint with fprint_s2cst fun print_s2cstlst (xs: s2cstlst): void fun prerr_s2cstlst (xs: s2cstlst): void overload print with print_s2cstlst overload prerr with prerr_s2cstlst fun fprint_s2cstlst : fprint_type (s2cstlst) overload fprint with fprint_s2cstlst (* ****** ****** *) // fun s2cstset_nil (): s2cstset fun s2cstset_add (xs: s2cstset, x: s2cst): s2cstset fun s2cstset_ismem (xs: s2cstset, x: s2cst):<> bool fun s2cstset_listize (xs: s2cstset): s2cstlst_vt // fun s2cstset_vt_nil (): s2cstset_vt fun s2cstset_vt_add (xs: s2cstset_vt, x: s2cst): s2cstset_vt fun s2cstset_vt_ismem (xs: !s2cstset_vt, x: s2cst):<> bool fun s2cstset_vt_listize_free (xs: s2cstset_vt): s2cstlst_vt // (* ****** ****** *) // fun s2cstmap_nil{a:type} (): s2cstmap (a) fun s2cstmap_add{a:type} (map: s2cstmap (a), key: s2cst, itm: a):<> s2cstmap (a) fun s2cstmap_find{a:type} (map: s2cstmap (a), key: s2cst):<> Option_vt (a) // (* ****** ****** *) fun s2var_make_srt (s2t: s2rt): s2var fun s2var_make_id_srt (id: symbol, s2t: s2rt): s2var fun s2var_dup (s2v: s2var): s2var // HX: s2var-duplication (* ****** ****** *) fun s2var_get_sym (s2v: s2var):<> symbol fun s2var_get_srt (s2v: s2var):<> s2rt fun s2var_get_tmplev (s2v: s2var): int fun s2var_set_tmplev (s2v: s2var, lev: int): void fun s2var_get_sVarset (s2v: s2var): s2Varset fun s2var_set_sVarset (s2v: s2var, s2Vs: s2Varset): void fun s2varlst_set_sVarset (s2vs: s2varlst, s2Vs: s2Varset): void fun s2var_get_stamp (s2v: s2var):<> stamp fun lt_s2var_s2var (x1: s2var, x2: s2var):<> bool overload < with lt_s2var_s2var fun lte_s2var_s2var (x1: s2var, x2: s2var):<> bool overload <= with lte_s2var_s2var fun eq_s2var_s2var (x1: s2var, x2: s2var):<> bool overload = with eq_s2var_s2var fun neq_s2var_s2var (x1: s2var, x2: s2var):<> bool overload != with neq_s2var_s2var fun compare_s2var_s2var (x1: s2var, x2: s2var):<> Sgn overload compare with compare_s2var_s2var fun compare_s2vsym_s2vsym (x1: s2var, x2: s2var):<> Sgn (* ****** ****** *) fun print_s2var (x: s2var): void fun prerr_s2var (x: s2var): void overload print with print_s2var overload prerr with prerr_s2var fun fprint_s2var : fprint_type (s2var) overload fprint with fprint_s2var (* ****** ****** *) fun print_s2varlst (xs: s2varlst): void fun prerr_s2varlst (xs: s2varlst): void overload print with print_s2varlst overload prerr with prerr_s2varlst fun fprint_s2varlst : fprint_type (s2varlst) overload fprint with fprint_s2varlst (* ****** ****** *) fun s2var_is_bool (s2v: s2var): bool // is boolean? // end of [s2var_is_bool] (* fun s2var_is_boxed (s2v: s2var): bool fun s2var_is_unboxed (s2v: s2var): bool *) (* ****** ****** *) fun s2varset_nil (): s2varset fun s2varset_add (xs: s2varset, x: s2var): s2varset fun s2varset_del (xs: s2varset, x: s2var): s2varset fun s2varset_union (xs: s2varset, ys: s2varset): s2varset fun s2varset_listize (xs: s2varset): s2varlst_vt (* ****** ****** *) // fun s2varset_vt_nil (): s2varset_vt fun s2varset_vt_add (xs: s2varset_vt, x: s2var): s2varset_vt fun s2varset_vt_del (xs: s2varset_vt, x: s2var): s2varset_vt fun s2varset_vt_delist (xs1: s2varset_vt, xs2: s2varlst): s2varset_vt fun s2varset_vt_union (xs: s2varset_vt, ys: s2varset_vt): s2varset_vt // fun s2varset_vt_free (xs: s2varset_vt): void fun s2varset_vt_listize_free (xs: s2varset_vt): s2varlst_vt // (* ****** ****** *) fun s2varmset_nil (): s2varmset fun s2varmset_sing (x: s2var): s2varmset fun s2varmset_pair (x1: s2var, x2: s2var): s2varmset // fun s2varmset_gte (xs: s2varmset, ys: s2varmset): bool // fun s2varmset_is_equal (xs: s2varmset, ys: s2varmset): bool // fun s2varmset_add (xs: s2varmset, x: s2var): s2varmset fun s2varmset_del (xs: s2varmset, x: s2var): s2varmset fun s2varmset_union (xs: s2varmset, ys: s2varmset): s2varmset // fun s2varmset_listize (xs: s2varmset): s2varlst_vt // fun fprint_s2varmset : fprint_type (s2varmset) // (* ****** ****** *) fun s2varbindmap_make_nil (): s2varbindmap fun s2varbindmap_search (map: !s2varbindmap, s2v: s2var): Option_vt (s2exp) fun s2varbindmap_insert (map: &s2varbindmap, s2v: s2var, s2f: s2hnf): void fun s2varbindmap_remove (map: &s2varbindmap, s2v: s2var): void fun s2varbindmap_listize (map: !s2varbindmap): List_vt @(s2var, s2exp) (* ****** ****** *) // // HX: [s2Var] is assumed in [pats_staexp2_sVar.dats] // fun s2Var_make_srt (loc: location, s2t: s2rt): s2Var fun s2Var_make_var (loc: location, s2v: s2var): s2Var (* ****** ****** *) fun s2Var_get_cnt (s2V: s2Var):<> count fun s2Var_get_srt (s2V: s2Var):<> s2rt fun s2Var_get_link (s2V: s2Var): s2expopt fun s2Var_set_link (s2V: s2Var, link: s2expopt): void // // HX: this is for occurchecks // fun s2Var_get_sVarlst (s2V: s2Var): s2Varlst fun s2Var_add_sVarlst (s2V: s2Var, s2V2: s2Var): void fun s2Varlst_add_sVarlst (s2Vs: s2Varlst, s2V2: s2Var): void // fun s2Var_get_lbs (s2V: s2Var): s2VarBoundlst fun s2Var_set_lbs (s2V: s2Var, lbs: s2VarBoundlst): void // fun s2Var_get_ubs (s2V: s2Var): s2VarBoundlst fun s2Var_set_ubs (s2V: s2Var, ubs: s2VarBoundlst): void // fun s2Var_get_stamp (s2V: s2Var):<> stamp (* ****** ****** *) // fun s2VarBound_make (loc: location, s2f: s2exp): s2VarBound fun s2VarBound_get_loc (x: s2VarBound): location fun s2VarBound_get_val (x: s2VarBound): s2exp // (* ****** ****** *) // fun s2Var_lb_insert (loc: location, s2V: s2Var, s2e: s2exp): void fun s2Var_ub_insert (loc: location, s2V: s2Var, s2e: s2exp): void // (* ****** ****** *) fun lt_s2Var_s2Var (x1: s2Var, x2: s2Var):<> bool overload < with lt_s2Var_s2Var fun lte_s2Var_s2Var (x1: s2Var, x2: s2Var):<> bool overload <= with lte_s2Var_s2Var fun eq_s2Var_s2Var (x1: s2Var, x2: s2Var):<> bool overload = with eq_s2Var_s2Var fun neq_s2Var_s2Var (x1: s2Var, x2: s2Var):<> bool overload != with neq_s2Var_s2Var fun compare_s2Var_s2Var (x1: s2Var, x2: s2Var):<> Sgn overload compare with compare_s2Var_s2Var (* ****** ****** *) fun print_s2Var (x: s2Var): void overload print with print_s2Var fun prerr_s2Var (x: s2Var): void overload prerr with prerr_s2Var fun fprint_s2Var : fprint_type (s2Var) fun print_s2Varlst (xs: s2Varlst): void overload print with print_s2Varlst fun prerr_s2Varlst (xs: s2Varlst): void overload prerr with prerr_s2Varlst fun fprint_s2Varlst : fprint_type (s2Varlst) (* ****** ****** *) // fun s2Varset_nil (): s2Varset fun s2Varset_add (xs: s2Varset, x: s2Var): s2Varset fun s2Varset_ismem (xs: s2Varset, x: s2Var): bool fun s2Varset_listize (xs: s2Varset): List_vt (s2Var) // fun s2Varset_vt_nil (): s2Varset_vt fun s2Varset_vt_add (xs: s2Varset_vt, x: s2Var): s2Varset_vt fun s2Varset_vt_ismem (xs: !s2Varset_vt, x: s2Var):<> bool fun s2Varset_vt_free (xs: s2Varset_vt): void fun s2Varset_vt_listize_free (xs: s2Varset_vt): List_vt (s2Var) // (* ****** ****** *) // fun print_s2Varset (xs: s2Varset): void fun prerr_s2Varset (xs: s2Varset): void fun fprint_s2Varset : fprint_type (s2Varset) // overload print with print_s2Varset overload prerr with prerr_s2Varset // (* ****** ****** *) fun s2hole_make_srt (s2t: s2rt): s2hole fun s2hole_get_srt (s2h: s2hole):<> s2rt fun s2hole_get_stamp (s2h: s2hole):<> stamp fun fprint_s2hole (out: FILEref, x: s2hole): void (* ****** ****** *) fun s2ctxt_make (s2e: s2exp, s2h: s2hole): s2ctxt (* ****** ****** *) // // HX: [d2con] is assumed in [pats_staexp2_dcon.dats] // fun d2con_make ( loc: location // location , fil: filename // filename , id: symbol // the name , s2c: s2cst // the type constructor , vwtp: int , qua: s2qualst , npf: int // pfarity , arg: s2explst // arguments , ind: s2explstopt // indexes ) : d2con // end of [d2con_make] (* ****** ****** *) fun d2con_make_list_nil (): d2con fun d2con_make_list_cons (): d2con (* ****** ****** *) // // HX: implemented in [pats_staexp2_dcon.dats] // fun print_d2con (x: d2con): void overload print with print_d2con fun prerr_d2con (x: d2con): void overload prerr with prerr_d2con fun fprint_d2con : fprint_type (d2con) fun print_d2conlst (xs: d2conlst): void overload print with print_d2conlst fun prerr_d2conlst (xs: d2conlst): void overload prerr with prerr_d2conlst fun fprint_d2conlst : fprint_type (d2conlst) (* ****** ****** *) fun d2con_get_sym (x: d2con):<> symbol fun d2con_get_name (x: d2con):<> string fun d2con_get_loc (x: d2con):<> location fun d2con_get_fil (x: d2con):<> filename fun d2con_get_scst (x: d2con):<> s2cst fun d2con_get_npf (x: d2con):<> int fun d2con_get_vwtp (x: d2con):<> int fun d2con_get_qua (x: d2con):<> s2qualst fun d2con_get_arg (x: d2con):<> s2explst fun d2con_get_arity_full (x: d2con):<> int fun d2con_get_arity_real (x: d2con):<> int fun d2con_get_ind (x: d2con):<> s2explstopt fun d2con_get_type (x: d2con):<> s2exp fun d2con_get_tag (x: d2con): int fun d2con_set_tag (x: d2con, tag: int): void fun d2con_get_pack (x: d2con):<> Stropt fun d2con_get_stamp (x: d2con):<> stamp (* ****** ****** *) fun eq_d2con_d2con (x1: d2con, x2: d2con):<> bool overload = with eq_d2con_d2con fun neq_d2con_d2con (x1: d2con, x2: d2con):<> bool overload != with neq_d2con_d2con fun compare_d2con_d2con (x1: d2con, x2: d2con):<> Sgn overload compare with compare_d2con_d2con (* ****** ****** *) // fun d2con_is_con (d2c: d2con): bool // data constructor fun d2con_is_exn (d2c: d2con): bool // exceptn constructor // fun d2con_is_nullary (d2c: d2con): bool // nullary constructor fun d2con_is_tagless (d2c: d2con): bool // tagless constructor // fun d2con_is_listnil (d2c: d2con): bool // like listnil fun d2con_is_listcons (d2c: d2con): bool // like listcons fun d2con_is_listlike (d2c: d2con): bool // like listnil/listcons // fun d2con_is_singular (d2c: d2con): bool // singular constructor fun d2con_is_binarian (d2c: d2con): bool // binarian constructor // fun d2con_is_linear (d2c: d2con): bool // linear constructor fun d2con_is_nonlinear (d2c: d2con): bool // nonlinear constructor // (* ****** ****** *) fun d2conset_nil ():<> d2conset fun d2conset_add (xs: d2conset, x: d2con):<> d2conset fun d2conset_ismem (xs: d2conset, x: d2con):<> bool (* ****** ****** *) fun d2conset_vt_nil ():<> d2conset_vt fun d2conset_vt_add (xs: d2conset_vt, x: d2con):<> d2conset_vt fun d2conset_vt_listize_free (xs: d2conset_vt):<> d2conlst_vt (* ****** ****** *) // // HX: static expressions // fun s2exp_int (i: int): s2exp fun s2exp_intinf (i: intinf): s2exp fun s2exp_int_char (c: char): s2exp fun s2exp_int_uchar (c: uchar): s2exp (* fun s2exp_bool (b: bool): s2exp // HX: in stacst.sats fun s2exp_char (c: char): s2exp // HX: merged into S2Eint *) // fun s2exp_float (rep: string): s2exp // HX: for exporting fun s2exp_string (str: string): s2exp // HX: for exporting // fun s2exp_cst (x: s2cst): s2exp // HX: static constant fun s2exp_var (x: s2var): s2exp // HX: static variable fun s2exp_Var (x: s2Var): s2exp // HX: static existential variable fun s2exp_hole (x: s2hole): s2exp // HX: static context hole (* ****** ****** *) (* ** HX: please be cautious! *) fun s2exp_var_srt (s2t: s2rt, s2v: s2var): s2exp (* ****** ****** *) // fun s2exp_extype_srt (s2t: s2rt, name: string, arg: s2explstlst): s2exp // end of [s2exp_extype_srt] fun s2exp_extkind_srt (s2t: s2rt, name: string, arg: s2explstlst): s2exp // end of [s2exp_extkind_srt] (* ****** ****** *) // fun s2exp_at (s2e1: s2exp, s2e2: s2exp): s2exp // end of [s2exp_at] // (* ****** ****** *) // fun s2exp_sizeof (s2e_type: s2exp): s2exp // (* ****** ****** *) fun s2exp_eff (s2fe: s2eff): s2exp fun s2exp_eqeq (s2e1: s2exp, s2e2: s2exp): s2exp fun s2exp_proj (s2ae: s2exp, s2te: s2exp, s2ls: s2lablst): s2exp (* ****** ****** *) fun s2exp_app_srt (s2t: s2rt, _fun: s2exp, _arg: s2explst): s2exp // end of [s2exp_app_srt] fun s2exp_lam (s2vs: s2varlst, s2e: s2exp): s2exp fun s2exp_lam_srt (s2t: s2rt, s2vs: s2varlst, s2e: s2exp): s2exp fun s2exp_lamlst (s2vss: s2varlstlst, s2e: s2exp): s2exp fun s2exp_fun_srt ( s2t: s2rt , fc: funclo , lin: int , s2fe: s2eff , npf: int , s2es_arg: s2explst , s2e_res: s2exp ) : s2exp // end of [s2exp_fun_srt] fun s2exp_metfun (opt: stampopt, met: s2explst, s2e: s2exp): s2exp // end of [s2exp_metfun] (* ****** ****** *) fun s2exp_metdec (s2es1: s2explst, s2es2: s2explst): s2exp (* ****** ****** *) fun s2exp_cstapp (s2c: s2cst, s2es: s2explst): s2exp fun s2exp_confun (npf: int, s2es: s2explst, s2e: s2exp): s2exp (* ****** ****** *) fun s2exp_datcontyp (d2c: d2con, arg: s2explst): s2exp fun s2exp_datconptr (d2c: d2con, rt: s2exp, arg: s2explst): s2exp (* ****** ****** *) fun s2exp_top (knd: int, s2e: s2exp): s2exp fun s2exp_top_srt (s2t: s2rt, knd: int, s2e: s2exp): s2exp (* ****** ****** *) fun s2exp_without (s2e: s2exp): s2exp (* ****** ****** *) fun s2exp_tyarr (s2e_elt: s2exp, s2es_int: s2explst): s2exp // end of [s2exp_tyarr] fun s2exp_tyarr_srt (s2t: s2rt, s2e_elt: s2exp, s2es_int: s2explst): s2exp // end of [s2exp_tyarr_srt] fun s2exp_tytup ( knd: int, npf: int, s2es: s2explst ) : s2exp // end of [s2exp_tytup] fun s2exp_tyrec ( knd: int, npf: int, ls2es: labs2explst ) : s2exp // end of [s2exp_tyrec] fun s2exp_tyrec_srt ( s2t: s2rt, knd: tyreckind, npf: int, ls2es: labs2explst ) : s2exp // end of [s2exp_tyrec_srt] (* ****** ****** *) fun s2exp_invar(s2e: s2exp): s2exp (* ****** ****** *) fun s2exp_refarg (refval: int, s2e: s2exp): s2exp // end of [s2exp_refarg] (* ****** ****** *) fun s2exp_vararg(s2e: s2exp): s2exp (* ****** ****** *) fun s2exp_exi (s2vs: s2varlst, s2ps: s2explst, s2f: s2exp): s2exp fun s2exp_uni (s2vs: s2varlst, s2ps: s2explst, s2f: s2exp): s2exp fun s2exp_exiuni // knd=0/1: exi/uni (knd: int, s2vs: s2varlst, s2ps: s2explst, s2f: s2exp): s2exp // end of [s2exp_exiuni] fun uns2exp_exiuni ( knd: int, s2f: s2exp // knd=0/1:exi/uni , s2vs: &s2varlst? >> s2varlst , s2ps: &s2explst? >> s2explst , scope: &s2exp? >> s2exp ) : bool // succ/fail: true/false (* ****** ****** *) fun s2exp_unis (s2qs: s2qualst, s2f: s2exp): s2exp (* ****** ****** *) fun s2exp_wthtype (_res: s2exp, _with: wths2explst): s2exp (* ****** ****** *) fun s2exp_errexp (s2t: s2rt): s2exp // HX: error indication fun s2exp_s2rt_err (): s2exp // HX: s2exp_err (s2rt_err ()) fun s2exp_t0ype_err (): s2exp // HX: s2exp_err (s2rt_t0ype) (* ****** ****** *) fun s2exp_refeq (s2e1: s2exp, s2e2: s2exp):<> bool (* ****** ****** *) // fun print_s2exp (x: s2exp): void fun prerr_s2exp (x: s2exp): void fun fprint_s2exp : fprint_type (s2exp) // overload print with print_s2exp overload prerr with prerr_s2exp overload fprint with fprint_s2exp // (* ****** ****** *) // fun print_s2explst (xs: s2explst): void fun prerr_s2explst (xs: s2explst): void fun fprint_s2explst : fprint_type (s2explst) // overload print with print_s2explst overload prerr with prerr_s2explst overload fprint with fprint_s2explst // (* ****** ****** *) // fun print_s2expopt (opt: s2expopt): void fun prerr_s2expopt (opt: s2expopt): void fun fprint_s2expopt : fprint_type (s2expopt) // overload print with print_s2expopt overload prerr with prerr_s2expopt overload fprint with fprint_s2expopt // (* ****** ****** *) // fun fprint_labs2explst : fprint_type (labs2explst) fun fprint_wths2explst : fprint_type (wths2explst) // overload fprint with fprint_labs2explst overload fprint with fprint_wths2explst // (* ****** ****** *) fun fprint_s2explstlst : fprint_type (s2explstlst) fun fprint_s2explstopt : fprint_type (s2explstopt) (* ****** ****** *) fun print_s2lab (s2l: s2lab): void fun prerr_s2lab (s2l: s2lab): void fun fprint_s2lab : fprint_type (s2lab) fun fprint_s2lablst : fprint_type (s2lablst) (* ****** ****** *) val s2eff_nil: s2eff val s2eff_all: s2eff fun s2eff_effset (efs: effset):<> s2eff fun s2eff_var (s2v: s2var): s2eff fun s2eff_exp (s2e: s2exp): s2eff fun s2eff_add (s2fe1: s2eff, s2fe2: s2eff): s2eff (* ****** ****** *) // fun print_s2eff (s2fe: s2eff): void fun prerr_s2eff (s2fe: s2eff): void fun fprint_s2eff : fprint_type (s2eff) // overload print with print_s2eff overload prerr with prerr_s2eff overload fprint with fprint_s2eff // (* ****** ****** *) fun fprint_s2rtext : fprint_type (s2rtext) (* ****** ****** *) // // HX: for reporting error messages // fun pprint_s2exp (s2e: s2exp): void and pprerr_s2exp (s2e: s2exp): void fun fpprint_s2exp : fprint_type (s2exp) fun pprint_s2explst (s2es: s2explst): void and pprerr_s2explst (s2es: s2explst): void fun fpprint_s2explst : fprint_type (s2explst) fun fpprint_s2explstlst : fprint_type (s2explstlst) fun fpprint_labs2explst : fprint_type (labs2explst) fun fpprint_wths2explst : fprint_type (wths2explst) // (* ****** ****** *) fun s2exp_is_prf (x: s2exp): bool fun s2exp_is_nonprf (x: s2exp): bool fun s2exp_is_lin (x: s2exp): bool fun s2exp_is_nonlin (x: s2exp): bool fun s2exp_is_boxed (x: s2exp): bool fun s2exp_is_prgm (x: s2exp): bool fun s2exp_is_impred (x: s2exp): bool (* ****** ****** *) fun s2exp_is_FUNCLOfun (x: s2exp): bool (* ****** ****** *) datatype sp2at_node = | SP2Tcon of (s2cst, s2varlst) | SP2Terr of () // HX: a placeholder for indicating an error // end of [sp2at_node] typedef sp2at = '{ sp2at_loc= location , sp2at_exp= s2exp, sp2at_node= sp2at_node } // end of [sp2at] fun sp2at_con (loc: location, s2c: s2cst, s2vs: s2varlst): sp2at // end of [sp2at_con] fun sp2at_err (loc: location): sp2at fun fprint_sp2at : fprint_type (sp2at) (* ****** ****** *) datatype s2kexp = | S2KEany of () | S2KEcst of s2cst | S2KEvar of s2var | S2KEextype of (string(*name*), s2kexplstlst) | S2KEextkind of (string(*name*), s2kexplstlst) | S2KEfun of (s2kexplst(*arg*), s2kexp(*res*)) | S2KEapp of (s2kexp, s2kexplst) | S2KEtyarr of (s2kexp) | S2KEtyrec of (tyreckind, labs2kexplst) // end of [s2kexp] and labs2kexp = SKLABELED of (label, s2kexp) where s2kexplst = List (s2kexp) and s2kexplstlst = List (s2kexplst) and labs2kexplst = List (labs2kexp) (* ****** ****** *) fun print_s2kexp (x: s2kexp): void fun prerr_s2kexp (x: s2kexp): void fun fprint_s2kexp : fprint_type (s2kexp) overload print with print_s2kexp overload prerr with prerr_s2kexp overload fprint with fprint_s2kexp (* ****** ****** *) fun fprint_s2kexplst : fprint_type (s2kexplst) fun fprint_labs2kexp : fprint_type (labs2kexp) (* ****** ****** *) fun s2kexp_make_s2exp (s2e: s2exp): s2kexp (* ****** ****** *) datatype s2zexp = // | S2ZEprf of () (* proof size *) | S2ZEptr of () (* pointer size *) // | S2ZEcst of s2cst | S2ZEvar of s2var | S2ZEVar of s2Var // | S2ZEextype of (string (*name*), s2zexplstlst) | S2ZEextkind of (string (*name*), s2zexplstlst) // | S2ZEapp of (s2zexp, s2zexplst) | S2ZEtyarr of // array size (s2zexp (*element*), s2explst (*dimension*)) | S2ZEtyrec of (tyreckind, labs2zexplst) // | S2ZEclo of () // HX: for flat closures // | S2ZEbot of () // HX: no available info // end of [s2zexp] and labs2zexp = SZLABELED of (label, s2zexp) where s2zexplst = List (s2zexp) and s2zexplstlst = List (s2zexplst) and labs2zexplst = List (labs2zexp) (* ****** ****** *) // fun print_s2zexp (s2ze: s2zexp): void fun prerr_s2zexp (s2ze: s2zexp): void fun fprint_s2zexp : fprint_type (s2zexp) // overload print with print_s2zexp overload prerr with prerr_s2zexp overload fprint with fprint_s2zexp // (* ****** ****** *) fun s2Var_get_szexp (s2V: s2Var): s2zexp fun s2Var_set_szexp (s2V: s2Var, s2ze: s2zexp): void fun s2zexp_is_bot (s2ze: s2zexp): bool fun s2zexp_make_s2exp (s2e: s2exp): s2zexp (* ****** ****** *) datatype s2vararg = | S2VARARGone (* {..} *) | S2VARARGall (* {...} *) | S2VARARGseq of s2varlst // end of [s2vararg] typedef s2vararglst = List (s2vararg) fun fprint_s2vararg : fprint_type (s2vararg) (* ****** ****** *) datatype s2exparg_node = | S2EXPARGone (* {..} *) | S2EXPARGall (* {...} *) | S2EXPARGseq of s2explst // end of [s2exparg_node] typedef s2exparg = '{ s2exparg_loc= location, s2exparg_node= s2exparg_node } (* end of [s2exparg] *) typedef s2exparglst = List (s2exparg) (* ****** ****** *) fun fprint_s2exparg : fprint_type (s2exparg) fun fprint_s2exparglst : fprint_type (s2exparglst) (* ****** ****** *) fun s2exparg_one (loc: location): s2exparg fun s2exparg_all (loc: location): s2exparg fun s2exparg_seq (loc: location, s2fs: s2explst): s2exparg (* ****** ****** *) typedef t2mpmarg = '{ t2mpmarg_loc= location, t2mpmarg_arg= s2explst } (* end of [t2mpmarg] *) typedef t2mpmarglst = List (t2mpmarg) vtypedef t2mpmarglst_vt = List_vt (t2mpmarg) fun t2mpmarg_make (loc: location, arg: s2explst): t2mpmarg (* ****** ****** *) fun fpprint_t2mpmarg : fprint_type (t2mpmarg) fun fpprint_t2mpmarglst : fprint_type (t2mpmarglst) (* ****** ****** *) typedef s2tavar = '{ s2tavar_loc= location, s2tavar_var= s2var } // end of [s2tavar] typedef s2tavarlst = List s2tavar fun s2tavar_make (loc: location, s2v: s2var): s2tavar // end of [s2tavar_make] (* ****** ****** *) typedef s2aspdec = '{ s2aspdec_loc= location , s2aspdec_cst= s2cst , s2aspdec_def= s2exp } (* end of [s2aspdec] *) fun s2aspdec_make ( loc: location, s2c: s2cst, def: s2exp ) : s2aspdec // end of [s2aspdec_make] (* ****** ****** *) // absvtype appenv_type = ptr vtypedef appenv = appenv_type // typedef synent_app (a:type) = (a, !appenv) -> void // fun synentlst_app{a:type} (xs: List(a), env: !appenv, app: synent_app(a)): void // (* ****** ****** *) (* end of [pats_staexp2.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_template.dats0000644000175000017500000006250213431250607022356 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload LAB = "./pats_label.sats" // overload = with $LAB.eq_label_label // (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" // staload "./pats_staexp2_util.sats" // (* ****** ****** *) // staload "./pats_trans2_env.sats" // (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) // datavtype impenv = | IMPENVnil of () | IMPENVcons of (s2var, s2hnf, impenv) // (* IMPENVcons *) // end of [impenv] // (* ****** ****** *) // extern fun print_impenv(env: !impenv): void extern fun fprint_impenv: fprint_vtype(impenv) // overload print with print_impenv overload fprint with fprint_impenv // (* ****** ****** *) // extern fun impenv_find (env: !impenv, s2v: s2var): s2hnf // extern fun impenv_update (env: !impenv, s2v: s2var, s2f: s2hnf): bool(*updated*) // end of [impenv_update] // (* ****** ****** *) // implement print_impenv (env) = fprint_impenv(stdout_ref, env) // implement fprint_impenv (out, env) = let // fun loop ( out: FILEref, env: !impenv, i: int ) : void = let in // case+ env of | IMPENVnil ( // argless ) => let prval () = fold@(env) in (*nothing*) end // end of [IMPENVnil] | IMPENVcons ( s2v, s2f, !p_env ) => let val () = if i > 0 then fprint_string (out, "; ") // end of [if] val () = fprint_s2var (out, s2v) val () = fprint_string (out, " -> ") val () = fprint_s2hnf (out, s2f) val () = loop (out, !p_env, i+1) prval ((*folded*)) = fold@ (env) in // nothing end // end of [IMPENVcons] // end // end of [loop] // in loop (out, env, 0) end // end of [fprint_impenv] // (* ****** ****** *) implement impenv_find (env, s2v) = let (* // val () = println! ("impenv_find: s2v = ", s2v) // *) in // case+ env of | IMPENVnil ((*void*)) => let val s2t = s2var_get_srt(s2v) prval ((*folded*)) = fold@ (env) in s2exp2hnf_cast(s2exp_errexp(s2t)) end // end of [IMPENVnil] | IMPENVcons ( s2v1, s2f, !p_env ) => ( if s2v = s2v1 then let prval () = fold@ (env) in s2f end else let val s2f = impenv_find (!p_env, s2v) // end of [val] prval () = fold@ (env) in s2f end // end of [if] ) // end of [IMPENVcons] // end // end of [impenv_find] (* ****** ****** *) implement impenv_update (env, s2v, s2f) = let // (* val () = println! ("impenv_update: s2v = ", s2v) val () = println! ("impenv_update: s2f = ", s2f) val () = println! ("impenv_update: env = ", env) *) // fun aux ( env: !impenv ) : bool = // case+ env of | IMPENVnil ( // argless ) => false where { prval () = fold@(env) } // end of [IMPENVnil] | IMPENVcons ( s2v1, !p_s2f, !p_env ) => ( if ( s2v = s2v1 ) then let val () = (!p_s2f := s2f) // end of [val] prval () = fold@ (env) in true end else let val ans = aux(!p_env) prval () = fold@(env) in ans end // end of [if] ) (* end of [IMPENVcons] *) // val s2e = s2hnf2exp(s2f) // val s2t = s2e.s2exp_srt val s2v_s2t = s2var_get_srt(s2v) // (* val () = println! ("impenv_update: s2t = ", s2t) val () = println! ("impenv_update: s2v_s2t = ", s2v_s2t) *) // in // if s2rt_ltmat1(s2t, s2v_s2t) then aux(env) else false // end // end of [impenv_update] (* ****** ****** *) // extern fun s2hnf_is_err (s2f: s2hnf): bool // implement s2hnf_is_err (s2f) = let // val s2e = s2hnf2exp(s2f) // in // case+ s2e.s2exp_node of (* case+ *) | S2Eerrexp() => true | _(*non-S2Eerrexp*) => false // end // end of [s2hnf_is_err] // (* ****** ****** *) // extern fun impenv_make_nil ((*void*)): impenv // extern fun impenv_make_svarlst (s2vs: s2varlst): impenv // (* ****** ****** *) // implement impenv_make_nil () = IMPENVnil() // implement impenv_make_svarlst (s2vs) = let in // case+ s2vs of | list_nil ((*void*)) => IMPENVnil() // end of [list_nil] | list_cons (s2v, s2vs) => let val s2t = s2var_get_srt (s2v) // end of [val] val s2e = s2exp_errexp(s2t) val s2f = s2exp2hnf_cast(s2e) val env = impenv_make_svarlst(s2vs) in IMPENVcons(s2v, s2f, env) end // end of [list_cons] // end // end of [impenv_make_svarlst] // (* ****** ****** *) // extern fun impenv_free (env: impenv): void // implement impenv_free(env) = let // (* val () = println! ("impenv_free") *) // in // case+ env of | ~IMPENVnil() => () | ~IMPENVcons(_, _, env) => impenv_free(env) // end // end of [impenv_free] // (* ****** ****** *) // extern fun impenv2tmpsub (env: impenv): tmpsub // implement impenv2tmpsub (env) = let // fun aux ( env: impenv, tsub: tmpsub ) : tmpsub = let in // case+ env of | ~IMPENVnil ((*void*)) => tsub | ~IMPENVcons (s2v, s2f, env) => let val s2e = s2hnf2exp (s2f) in TMPSUBcons(s2v, s2e, aux (env, tsub)) end // end of [IMPENVcons] // end // end of [aux] // in aux (env, TMPSUBnil(*void*)) end // end of [impenv2tmpsub] // (* ****** ****** *) local (* ****** ****** *) fun auxenv ( env: !s2varlst_vt, s2vs: s2varlst ) : s2varlst_vt = let // val env2 = list_vt_copy(env) // in list_reverse_append2_vt(s2vs, env2) end // end of [auxenv] (* ****** ****** *) fun auxfvar ( env: !s2varlst_vt, s2v0: s2var ) : bool = ( case+ env of | list_vt_nil ((*void*)) => ( fold@env; true ) (* list_vt_nil *) | list_vt_cons ( s2v, !p_env1 ) => ( if (s2v = s2v0) then ( fold@env;false ) else ans where { val ans = auxfvar(!p_env1, s2v0) // end of [val] prval ((*void*)) = fold@env } (* end of [else] *) ) (* end of [list_vt_cons] *) ) (* end of [auxfvar] *) (* ****** ****** *) fun auxmat ( env: !impenv , s2e0_pat: s2exp, s2e0_arg: s2exp ) : bool = ismatch where { // val env_pat = list_vt_nil() and env_arg = list_vt_nil() // val ismatch = auxmat_env ( env , env_pat, env_arg , s2e0_pat, s2e0_arg ) (* end of [val] *) // val ((*void*)) = list_vt_free(env_pat) val ((*void*)) = list_vt_free(env_arg) // } (* end of [auxmat] *) and auxmatlst ( env: !impenv , s2es_pat: s2explst, s2es_arg: s2explst ) : bool = ismatch where { // val env_pat = list_vt_nil() and env_arg = list_vt_nil() // val ismatch = auxmatlst_env ( env , env_pat, env_arg , s2es_pat, s2es_arg ) (* end of [val] *) // val ((*void*)) = list_vt_free(env_pat) val ((*void*)) = list_vt_free(env_arg) // } (* end of [auxmatlst] *) (* ****** ****** *) and auxmat_env ( env: !impenv , env_pat: !s2varlst_vt , env_arg: !s2varlst_vt , s2e0_pat: s2exp, s2e0_arg: s2exp ) : bool = let // val s2f0_pat = s2exp2hnf(s2e0_pat) val s2f0_arg = s2exp2hnf(s2e0_arg) val s2e0_pat = s2hnf2exp(s2f0_pat) val s2e0_arg = s2hnf2exp(s2f0_arg) val s2en_pat = s2e0_pat.s2exp_node val s2en_arg = s2e0_arg.s2exp_node // (* val () = println! ( "auxmat_env: s2e0_pat(aft) = ", s2e0_pat ) val () = println! ( "auxmat_env: s2e0_arg(aft) = ", s2e0_arg ) *) // in // case+ s2en_pat of // | S2Evar(s2v) => let (* val ((*void*)) = ( println! ("auxmat_env: S2Evar: s2v = ", s2v) ) (* end of [val] *) *) val ans = auxfvar(env_pat, s2v) // end of [val] (* val ((*void*)) = ( println! ("auxmat_env: S2Evar: ans = ", ans) ) (* end of [val] *) *) in case+ ans of | true => let val s2f = impenv_find(env, s2v) // end of [val] val iserr = s2hnf_is_err(s2f) (* val ((*void*)) = ( print! ("auxmat_env: S2Evar: "); println! ("impenv_find: s2f = ", s2f) ) val ((*void*)) = ( print! ("auxmat_env: S2Evar: "); println! ("impenv_find: iserr = ", iserr) ) *) in if iserr then let val upret = impenv_update (env, s2v, s2f0_arg) // end of [val] in if upret then true else let (* // HX-2017-10-29: // [s2v] is not template *) val s2f = s2f0_pat in s2hnf_syneq2(s2f, s2f0_arg) end // end of [if] end (* end of [then] *) // HX-2017-10-29: already in use else s2hnf_syneq2(s2f, s2f0_arg) end (* [true] *) | false => s2hnf_syneq_env (env_pat, env_arg, s2f0_pat, s2f0_arg) // s2hnf_syneq_env (* end of [false] *) end // end of [S2Evar] // | S2Ecst(s2c) => let (* val () = println! ("auxmat_env: s2c = ", s2c) *) in case+ s2en_arg of | S2Ecst(s2c_arg) => if s2c = s2c_arg then true else false // end of [S2Ecst] | _ (* non-S2Ecst *) => false end // end of [S2Ecst] // | S2Eapp ( s2e_pat, s2es_pat ) => let in case+ s2en_arg of | S2Eapp ( s2e_arg, s2es_arg ) => let val ismatch = auxmat_env (env, env_pat, env_arg, s2e_pat, s2e_arg) // end of [val] in if ismatch then auxmatlst_env (env, env_pat, env_arg, s2es_pat, s2es_arg) // end of [then] else false // end of [if] end // end of [S2Eapp] | _ (* non-S2Eapp *) => false end // end of [S2Eapp] // | S2Etyrec ( knd, npf, ls2es_pat ) => let in case+ s2en_arg of | S2Etyrec ( knd2, npf2, ls2es_arg ) => ( if knd = knd2 then auxlabmatlst_env (env, env_pat, env_arg, ls2es_pat, ls2es_arg) // end of [then] else false // end of [if] ) // end of [S2Etyrec] | _ (* non-S2Etyrec *) => false end // end of [S2Etyrec] // | S2Eexi ( s2vs_pat, s2ps_pat, s2e_pat ) => let in case+ s2en_arg of | S2Eexi ( s2vs_arg, s2ps_arg, s2e_arg ) => ismatch where { val env_pat = auxenv(env_pat, s2vs_pat) val env_arg = auxenv(env_arg, s2vs_arg) val syneq = s2explst_syneq_env ( env_pat, env_arg, s2ps_pat, s2ps_arg ) (* end of [val] *) val ismatch = ( if syneq then auxmat_env (env, env_pat, env_arg, s2e_pat, s2e_arg) // end of [then] else false ) : bool // end of [val] val () = list_vt_free(env_pat) and () = list_vt_free(env_arg) } (* [S2Eexi] *) | _ (* non-S2Eexi *) => false end // end of [S2Eexi] // | _ when s2hnf_syneq_env (env_pat, env_arg, s2f0_pat, s2f0_arg) => true // end of [when] // | _ (* rest-of-s2exp *) => false // end // end of [auxmat_env] and auxmatlst_env ( env: !impenv , env_pat: !s2varlst_vt , env_arg: !s2varlst_vt , s2es_pat: s2explst, s2es_arg: s2explst ) : bool = let // (* val () = println! ( "auxmatlst_env: s2es_pat = ", s2es_pat ) (* println! *) val () = println! ( "auxmatlst_env: s2es_arg = ", s2es_arg ) (* println! *) *) // in // case+ s2es_pat of | list_nil ((*void*)) => true // list_nil | list_cons ( s2e_pat, s2es_pat ) => ( case+ s2es_arg of | list_cons ( s2e_arg, s2es_arg ) => let val ismatch = auxmat_env (env, env_pat, env_arg, s2e_pat, s2e_arg) in if ismatch then ( auxmatlst_env (env, env_pat, env_arg, s2es_pat, s2es_arg) ) else false end // end of [list_cons] | list_nil () => true // HX: deadcode ) // end of [list_cons] // end // end of [auxmatlst] and auxlabmatlst_env ( env: !impenv , env_pat: !s2varlst_vt, env_arg: !s2varlst_vt , ls2es_pat: labs2explst, ls2es_arg: labs2explst ) : bool = let (* val out = stdout_ref val () = fprintln! (out, "auxlabmatlst_env: ls2es_pat = ", ls2es_pat) val () = fprintln! (out, "auxlabmatlst_env: ls2es_arg = ", ls2es_arg) *) in // case+ ls2es_pat of | list_cons _ => ( case+ ls2es_arg of | list_cons _ => let val+list_cons (lx1, ls2es_pat) = ls2es_pat val+list_cons (lx2, ls2es_arg) = ls2es_arg val+SLABELED (l1, _, x1) = lx1 and SLABELED (l2, _, x2) = lx2 val ismatch = ( if l1 = l2 then ( auxmat_env (env, env_pat, env_arg, x1, x2) ) else false ) : bool // end of [val] in if ismatch then auxlabmatlst_env (env, env_pat, env_arg, ls2es_pat, ls2es_arg) // end of [then] else false end // end of [list_cons] | list_nil ((*void*)) => false ) (* [list_cons] *) | list_nil () => (case+ ls2es_arg of list_cons _ => false | list_nil() => true) (* end of [list_nil] *) // end // end of [auxlabmatlst_env] (* ****** ****** *) fun auxmatlstlst ( env: !impenv , s2ess: s2explstlst, t2mas: t2mpmarglst ) : bool = let in // case+ s2ess of | list_cons (s2es, s2ess) => ( case+ t2mas of | list_cons (t2ma, t2mas) => let val ans = auxmatlst (env, s2es, t2ma.t2mpmarg_arg) // end of [val] in if ans then auxmatlstlst (env, s2ess, t2mas) else false end // end of [list_cons] | list_nil ((*void*)) => true // HX: deadcode ) // end of [list_cons] | list_nil () => true // end // end of [auxmatlstlst] (* ****** ****** *) fun auxbndlstlst ( s2vs: s2varlst, t2mas: t2mpmarglst ) : tmpsub = let in // case+ t2mas of | list_cons (t2ma, t2mas) => auxbndlstlst2 (s2vs, t2ma.t2mpmarg_arg, t2mas) | list_nil () => TMPSUBnil () // end // end of [auxbndlstlst] and auxbndlstlst2 ( s2vs: s2varlst, s2es: s2explst, t2mas: t2mpmarglst ) : tmpsub = let in // case+ s2es of | list_cons (s2e, s2es) => let val s2e = s2exp_hnfize (s2e) val-list_cons (s2v, s2vs) = s2vs val tsub = auxbndlstlst2 (s2vs, s2es, t2mas) in TMPSUBcons (s2v, s2e, tsub) end // end of [list_cons] | list_nil () => auxbndlstlst (s2vs, t2mas) // end // end of [auxbndlstlst2] in (* in of [local] *) (* ****** ****** *) implement funlab_tmparg_match (fl0, t2mas) = let // val env = impenv_make_nil () val xs0 = funlab_get_tmparg (fl0) val s2ess = list_map_fun (xs0, lam x =<1> x.t2mpmarg_arg) val ans = auxmatlstlst (env, $UN.linlst2lst(s2ess), t2mas) val ((*env*)) = impenv_free (env) val ((*freed*)) = list_vt_free (s2ess) // in ans end // end of [funlab_tmparg_match] (* ****** ****** *) implement hiimpdec_tmpcst_match (imp, d2c0, t2mas, knd) = let // val d2c1 = imp.hiimpdec_cst // (* val () = println! ("hiimpdec_tmpcst_match: d2c0 = ", d2c0) val () = println! ("hiimpdec_tmpcst_match: d2c1 = ", d2c1) *) // in // if d2c0=d2c1 then let // val env = impenv_make_svarlst(imp.hiimpdec_imparg) val ans = auxmatlstlst(env, imp.hiimpdec_tmparg, t2mas) // in // if (ans) then let val tsub = impenv2tmpsub (env) // end of [val] in TMPCSTMATsome(imp, tsub, knd) end // end of [then] else let val () = impenv_free(env) in TMPCSTMATnone() end // end of [else] // end // end of [then] else TMPCSTMATnone() // else // end of [if] // end // end of [hiimpdec_tmpcst_match] (* ****** ****** *) implement hiimpdec2_tmpcst_match (imp2, d2c0, t2mas, knd) = let // val HIIMPDEC2 (imp, tsub0, tmparg) = imp2 val d2c1 = imp.hiimpdec_cst val imparg = imp.hiimpdec_imparg // (* val () = println! ("hiimpdec_tmpcst_match2: d2c0 = ", d2c0) val () = println! ("hiimpdec_tmpcst_match2: d2c1 = ", d2c1) *) // in // if d2c0=d2c1 then let val env = impenv_make_svarlst (imparg) // end of [val] val ans = auxmatlstlst (env, tmparg, t2mas) // end of [val] in // if (ans) then let val tsub1 = impenv2tmpsub(env) val tsub01 = tmpsub_append(tsub0, tsub1) // end of [val] in TMPCSTMATsome(imp, tsub01, knd) end // end of [then] else let val () = impenv_free(env) in TMPCSTMATnone() end // end of [else] // end // end of [then] else TMPCSTMATnone() // else // end // end of [hiimpdec2_tmpcst_match] (* ****** ****** *) implement hiimpdeclst_tmpcst_match (imps, d2c0, t2mas, knd) = let // (* val () = println! ("hiimpdeclst_tmpcst_match: d2c0 = ", d2c0) *) // in // case+ imps of | list_nil () => TMPCSTMATnone() // list_nil | list_cons ( imp, imps ) => let val opt = hiimpdec_tmpcst_match(imp, d2c0, t2mas, knd) // end of [val] in case+ opt of // | TMPCSTMATsome _ => opt | TMPCSTMATsome2 _ => opt // | TMPCSTMATnone _ => hiimpdeclst_tmpcst_match(imps, d2c0, t2mas, knd) // end of [TMPCSTMATnone] // end // end of [list_cons] // end // end of [hiimpdeclst_tmpcst_match] (* ****** ****** *) implement tmpcstmat_tmpcst_match (mat, d2c0, t2mas) = let // var ans: bool = false // val-TMPCSTMATsome2(d2c, s2ess, flab) = mat // val () = ( if d2c=d2c0 then let val env = IMPENVnil() // val () = ans := auxmatlstlst(env, s2ess, t2mas) // val ((*freed*)) = impenv_free(env) // in // nothing end // end of [then] else () // end of [else] // ) : void // end of [val] // in // if ans then mat else TMPCSTMATnone() // end // end of [tmpcstmat_tmpcst_match] (* ****** ****** *) implement hifundec2tmpvarmat (hfd, t2mas) = let // val s2vs = hfd.hifundec_imparg val tsub = auxbndlstlst (s2vs, t2mas) // in TMPVARMATsome (hfd, tsub, 0(*local*)) end // end of [hifundec2tmpvarmat] implement hifundecopt2tmpvarmat (hfdopt, t2mas) = let (* // val () = println! ("hifundecopt2tmpvarmat") // *) in // case hfdopt of | ~None_vt() => TMPVARMATnone() | ~Some_vt(hfd) => hifundec2tmpvarmat(hfd, t2mas) // end // end of [hifundecopt2tmpvarmat] (* ****** ****** *) implement hifundec_tmpvar_match (hfd, d2v0, t2mas) = let // val d2v = hfd.hifundec_var // in // if d2v=d2v0 then hifundec2tmpvarmat(hfd, t2mas) else TMPVARMATnone() // end // end of [hifundec_tmpvar_match] (* ****** ****** *) implement hifundec2_tmpvar_match (hfd2, d2v0, t2mas) = let // val HIFUNDEC2 (hfd, tsub0) = hfd2 // val d2v = hfd.hifundec_var // in // if d2v=d2v0 then let // val s2vs = hfd.hifundec_imparg val tsub1 = auxbndlstlst(s2vs, t2mas) val tsub01 = tmpsub_append(tsub0, tsub1) // in TMPVARMATsome(hfd, tsub01, 0(*local*)) end // end of [then] else TMPVARMATnone() // end of [else] // end // end of [hifundec2_tmpvar_match] (* ****** ****** *) implement tmpvarmat_tmpvar_match (mat, d2v0, t2mas) = let // var ans: bool = false // val-TMPVARMATsome2(d2v, s2ess, flab) = mat // val () = ( // if d2v=d2v0 then let val env = IMPENVnil() // val () = ans := auxmatlstlst(env, s2ess, t2mas) // val ((*freed*)) = impenv_free(env) // in // nothing end // end of [if] // ) (* end of [val] *) // in // if ans then mat else TMPVARMATnone() // end // end of [tmpvarmat_tmpvar_match] end // end of [local] (* ****** ****** *) // extern fun ccomp_funlab_tmpsubst ( env: !ccompenv , loc0: loc_t, hse0: hisexp, fl: funlab, tsub: tmpsub ) : primval // end of [ccomp_funlab_tmpsubst] // extern fun ccomp_funlab_tmpsubst_none ( env: !ccompenv , loc0: loc_t, hse0: hisexp, fl: funlab, tsub: tmpsub ) : primval // end of [ccomp_funlab_tmpsubst_none] // extern fun ccomp_funlab_tmpsubst_some ( env: !ccompenv , loc0: loc_t, hse0: hisexp, fl: funlab, tsub: tmpsub, fent: funent ) : primval // end of [ccomp_funlab_tmpsubst_some] // (* ****** ****** *) implement ccomp_funlab_tmpsubst (env, loc0, hse0, flab, tsub) = let // val opt = funlab_get_funent(flab) // in // case+ opt of | None () => ccomp_funlab_tmpsubst_none(env, loc0, hse0, flab, tsub) // end of [None] | Some (fent) => ccomp_funlab_tmpsubst_some(env, loc0, hse0, flab, tsub, fent) // end of [None] // end // end of [ccomp_funlab_tmpsubst] (* ****** ****** *) implement ccomp_funlab_tmpsubst_none (env, loc0, hse0, flab, tsub) = let // val t2mas = funlab_get_tmparg (flab) // in // case+ t2mas of | list_nil _ => primval_make2_funlab (loc0, hse0, flab) // end of [list_nil] | list_cons _ => let val-Some(d2c) = funlab_get_d2copt(flab) val t2mas = t2mpmarglst_tsubst(loc0, tsub, t2mas) val tmpmat = ccompenv_tmpcst_match(env, d2c, t2mas) in ccomp_tmpcstmat(env, loc0, hse0, d2c, t2mas, tmpmat) end (* end of [list_cons] *) // end // end of [ccomp_funlab_tmpsubst_none] (* ****** ****** *) implement ccomp_funlab_tmpsubst_some (env, loc0, hse0, flab, tsub, fent) = let // (* val out = stdout_ref // val () = fprintln! ( out, "ccomp_funlab_tmpsubst_some: tsub = ", tsub ) // end of [val] *) // val sub = tmpsub2stasub(tsub) val sfx = funlab_incget_ncopy(flab) // val flab2 = funlab_subst (sub, flab) // val () = funlab_set_suffix (flab2, sfx) val () = the_funlablst_add (flab2) // val () = ccompenv_add_flabsetenv (env, flab2) // val (pfpush|()) = ccompenv_push (env) // val () = ccompenv_add_tmpsub (env, tsub) val () = ccompenv_inc_tmprecdepth (env) // val fent2 = funent_subst(env, sub, flab2, fent, sfx) // val () = ccompenv_dec_tmprecdepth (env) // val ((*popped*)) = ccompenv_pop (pfpush | env) // val () = funent_set_tmpsub (fent2, Some (tsub)) // val () = funlab_set_funent (flab2, Some (fent2)) // val () = stasub_free (sub) // in primval_make2_funlab (loc0, hse0, flab2) end // end of [ccomp_funlab_tmpsubst_some] (* ****** ****** *) extern fun ccomp_tmpcstmat_some ( env: !ccompenv, loc0: location , hse0: hisexp, d2c: d2cst, t2mas: t2mpmarglst, mat: tmpcstmat ) : primval // end of [ccomp_tmpcstmat_some] (* ****** ****** *) implement ccomp_tmpcstmat (env, loc0, hse0, d2c, t2mas, mat) = let // (* val () = ( print("ccomp_tmpcstmat: d2c = "); fprint_d2cst(stdout_ref, d2c); print_newline(); print("ccomp_tmpcstmat: mat = "); fprint_tmpcstmat(stdout_ref, mat); print_newline(); print("ccomp_tmpcstmat: t2mas = "); fpprint_t2mpmarglst(stdout_ref, t2mas); print_newline(); ) // end of [val] *) // in // case+ mat of | TMPCSTMATsome _ => ccomp_tmpcstmat_some (env, loc0, hse0, d2c, t2mas, mat) // end of [TMPCSTMATsome] | TMPCSTMATsome2 (d2c, s2ess, flab) => primval_make2_funlab(loc0, hse0, flab) | TMPCSTMATnone() => primval_tmpltcstmat(loc0, hse0, d2c, t2mas, mat) // end of [TMPCSTMATnone] // end // end of [ccomp_tmpcstmat] implement ccomp_tmpcstmat_some (env, loc0, hse0, d2c, t2mas, mat) = let // val- TMPCSTMATsome (imp, tsub, knd) = mat // val lvl0 = the_d2varlev_save() // val () = hiimpdec_ccomp_if (env, 0(*level*), imp, knd) // val () = the_d2varlev_restore(lvl0) // val-Some(flab) = hiimpdec_get_funlabopt(imp) // in ccomp_funlab_tmpsubst(env, loc0, hse0, flab, tsub) end // end of [ccomp_tmpcstmat_some] (* ****** ****** *) extern fun ccomp_tmpvarmat_some ( env: !ccompenv , loc0: location , hse0: hisexp, d2v: d2var, t2mas: t2mpmarglst, mat: tmpvarmat ) : primval // end of [ccomp_tmpvarmat_some] (* ****** ****** *) implement ccomp_tmpvarmat (env, loc0, hse0, d2v, t2mas, mat) = let // (* val () = ( print ("ccomp_tmpvarmat: d2v = "); fprint_d2var(stdout_ref, d2v); print_newline (); print ("ccomp_tmpvarmat: mat = "); fprint_tmpvarmat (stdout_ref, mat); print_newline (); print ("ccomp_tmpvarmat: t2mas = "); fpprint_t2mpmarglst (stdout_ref, t2mas); print_newline (); ) // end of [val] *) // in // case+ mat of | TMPVARMATsome _ => ( ccomp_tmpvarmat_some (env, loc0, hse0, d2v, t2mas, mat) // end of [ccomp_tmpvarmat_some] ) // end of [TMPVARMATsome] | TMPVARMATsome2 (d2c, s2ess, flab) => primval_make2_funlab (loc0, hse0, flab) // end of [TMPVARMATsome2] | TMPVARMATnone() => primval_tmpltvarmat (loc0, hse0, d2v, t2mas, mat) // end of [TMPVARMATnone] // end // end of [ccomp_tmpvarmat] implement ccomp_tmpvarmat_some (env, loc0, hse0, d2v, t2mas, mat) = let // val- TMPVARMATsome (hfd, tsub, _(*knd*)) = mat // val opt = hifundec_get_funlabopt(hfd) // val ((*void*)) = ( // case+ opt of | None _ => let val-Some (hdc0) = hifundec_get_hideclopt(hfd) // end of [val] val-HIDfundecs (knd, decarg, hfds) = hdc0.hidecl_node // end of [val] in hifundeclst_ccomp(env, 0(*lvl0*), knd, decarg, hfds) end // end of [None] | Some _ => ((*void*)) // ) (* end of [val] *) // val-Some(flab) = hifundec_get_funlabopt(hfd) // in ccomp_funlab_tmpsubst(env, loc0, hse0, flab, tsub) end // end of [ccomp_tmpvarmat_some] (* ****** ****** *) (* end of [pats_ccomp_template.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp2_dcst.dats0000644000175000017500000002425313431250607021771 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload GLOB = "./pats_global.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp overload compare with $STMP.compare_stamp_stamp (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol typedef symbolopt = $SYM.symbolopt overload fprint with $SYM.fprint_symbol (* ****** ****** *) staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) typedef d2cst_struct = @{ d2cst_sym= symbol // , d2cst_loc= location // , d2cst_fil= filename // , d2cst_kind= dcstkind // , d2cst_decarg= s2qualst // template arg // , d2cst_artylst= List(int) // arity // , d2cst_type= s2exp // HX: assigned type // , d2cst_hisexp= hisexpopt // type erasure , d2cst_funlab= funlabopt // function label // (* , d2cst_skexp= s2kexp // skeleton of the assigned type *) , d2cst_def= d2expopt // definition // , d2cst_pack= Stropt // for ATS_PACKNAME // , d2cst_stamp= stamp // stamp for unicity // , d2cst_extdef= dcstextdef // external dcst definition // } (* end of [d2cst_struct] *) (* ****** ****** *) local assume d2cst_type = ref (d2cst_struct) in (* in of [local] *) implement d2cst_make ( id, loc, fil , dck, decarg, artylst, typ, extdef ) = let // (* val out = stdout_ref val () = fprintln! (out, "d2cst_make: id = ", id) *) // val pack = $GLOB.the_PACKNAME_get () // val stamp = $STMP.d2cst_stamp_make () // val (pfgc, pfat | p) = ptr_alloc () prval ((*freed*)) = free_gc_elim {d2cst_struct?} (pfgc) // val () = p->d2cst_sym := id val () = p->d2cst_loc := loc val () = p->d2cst_fil := fil val () = p->d2cst_kind := dck val () = p->d2cst_decarg := decarg val () = p->d2cst_artylst := artylst val () = p->d2cst_type := typ // val () = p->d2cst_hisexp := None(*void*) val () = p->d2cst_funlab := None(*void*) // (* val () = p->d2cst_skexp := s2kexp_make_s2exp (typ) *) val () = p->d2cst_def := None val () = p->d2cst_pack := pack val () = p->d2cst_stamp := stamp // val () = p->d2cst_extdef := extdef // in (* in of [let] *) // ref_make_view_ptr (pfat | p) // end // end of [d2cst_make] implement d2cst_get_sym (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_sym end // end of [d2cst_get_sym] (* ****** ****** *) implement d2cst_get_loc (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_loc end // end of [d2cst_get_loc] (* ****** ****** *) implement d2cst_get_fil (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_fil end // end of [d2cst_get_fil] (* ****** ****** *) implement d2cst_get_kind (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_kind end // end of [d2cst_get_kind] (* ****** ****** *) implement d2cst_get_decarg (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_decarg end // end of [d2cst_get_decarg] (* ****** ****** *) implement d2cst_get_artylst (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_artylst end // end of [d2cst_get_artylst] (* ****** ****** *) implement d2cst_get_type (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_type end // end of [d2cst_get_type] (* ****** ****** *) implement d2cst_get_hisexp (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_hisexp end // end of [d2cst_get_hisexp] implement d2cst_set_hisexp (d2c, opt) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_hisexp := opt end // end of [d2cst_set_hisexp] (* ****** ****** *) implement d2cst_get_funlab (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_funlab end // end of [d2cst_get_funlab] implement d2cst_set_funlab (d2c, opt) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_funlab := opt end // end of [d2cst_set_funlab] (* ****** ****** *) implement d2cst_get_def (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_def end // end of [d2cst_get_def] implement d2cst_set_def (d2c, def) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_def := def end // end of [d2cst_set_def] (* ****** ****** *) implement d2cst_get_pack (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_pack end // end of [d2cst_get_pack] (* ****** ****** *) implement d2cst_get_extdef (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_extdef end // end of [d2cst_get_extdef] (* ****** ****** *) implement d2cst_get_stamp (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2cst_stamp end // end of [d2cst_get_stamp] end // end of [local] (* ****** ****** *) implement d2cst_get_name (d2c) = $SYM.symbol_get_name (d2cst_get_sym (d2c)) // end of [d2cst_get_name] (* ****** ****** *) implement print_d2cst (x) = fprint_d2cst (stdout_ref, x) implement prerr_d2cst (x) = fprint_d2cst (stderr_ref, x) implement fprint_d2cst (out, x) = $SYM.fprint_symbol (out, d2cst_get_sym (x)) implement fprint_d2cstlst (out, xs) = let // fun loop ( out: FILEref , xs: d2cstlst, sep: string, i: int ) : void = let in case+ xs of | list_cons (x, xs) => let val () = if i > 0 then fprint_string (out, sep) val () = fprint_d2cst (out, x) in loop (out, xs, sep, i+1) end // end of [list_cons] | list_nil () => () // end // end of [loop] // val sep = ", " // in loop (out, xs, sep, 0) end // end of [fprint_d2cstlst] (* ****** ****** *) implement d2cst_is_prf (d2c) = let val s2e = d2cst_get_type (d2c) in s2exp_is_prf (s2e) end // end of [d2cst_is_prf] implement d2cst_is_nonprf (d2c) = let val s2e = d2cst_get_type (d2c) in s2exp_is_nonprf (s2e) end // end of [d2cst_is_nonprf] (* ****** ****** *) implement d2cst_is_mac (d2c) = $SYN.dcstextdef_is_mac (d2cst_get_extdef (d2c)) // end of [d2cst_is_mac] (* ****** ****** *) implement d2cst_is_static (d2c) = let val extdef = d2cst_get_extdef (d2c) in case+ extdef of | $SYN.DCSTEXTDEFnone(0) => true | $SYN.DCSTEXTDEFsome_sta _ => true | _ => false end // end of [d2cst_is_static] (* ****** ****** *) implement d2cst_is_fundec (d2c) = dcstkind_is_fun(d2cst_get_kind(d2c)) // end of [d2cst_is_fundec] implement d2cst_is_valdec (d2c) = dcstkind_is_val(d2cst_get_kind(d2c)) // end of [d2cst_is_valdec] implement d2cst_is_castfn (d2c) = dcstkind_is_castfn(d2cst_get_kind(d2c)) // end of [d2cst_is_castfn] (* ****** ****** *) // implement d2cst_is_tmpcst (d2c) = list_is_cons(d2cst_get_decarg(d2c)) // (* ****** ****** *) implement d2cst_is_mainats (d2c) = $SYN.dcstextdef_is_mainats (d2cst_get_extdef (d2c)) // end of [d2cst_is_mainats] (* ****** ****** *) implement lt_d2cst_d2cst (x1, x2) = (compare (x1, x2) < 0) // end of [lt_d2cst_d2cst] implement lte_d2cst_d2cst (x1, x2) = (compare (x1, x2) <= 0) // end of [lte_d2cst_d2cst] implement eq_d2cst_d2cst (x1, x2) = (compare (x1, x2) = 0) // end of [eq_d2cst_d2cst] implement neq_d2cst_d2cst (x1, x2) = (compare (x1, x2) != 0) // end of [neq_d2cst_d2cst] implement compare_d2cst_d2cst (x1, x2) = $effmask_all (compare (d2cst_get_stamp (x1), d2cst_get_stamp (x2))) // end of [compare_d2cst_d2cst] (* ****** ****** *) local // staload FS = "libats/SATS/funset_avltree.sats" staload _ = "libats/DATS/funset_avltree.dats" staload LS = "libats/SATS/linset_avltree.sats" staload _ = "libats/DATS/linset_avltree.dats" // val cmp = lam ( d2c1: d2cst, d2c2: d2cst ) : int = compare_d2cst_d2cst (d2c1, d2c2) // end of [val] // assume d2cstset_type = $FS.set (d2cst) assume d2cstset_vtype = $LS.set (d2cst) // in (* in of [local] *) implement d2cstset_nil () = $FS.funset_make_nil () implement d2cstset_ismem (xs, x) = $FS.funset_is_member (xs, x, cmp) // end of [d2cstset_ismem] implement d2cstset_add (xs, x) = xs where { var xs = xs val _(*replaced*) = $FS.funset_insert (xs, x, cmp) } // end of [d2cstset_add] (* ****** ****** *) implement d2cstset_vt_nil () = $LS.linset_make_nil () implement d2cstset_vt_add (xs, x) = xs where { var xs = xs val _(*rplced*) = $LS.linset_insert (xs, x, cmp) } // end of [d2cstset_vt_add] implement d2cstset_vt_listize_free (xs) = $LS.linset_listize_free (xs) end // end of [local] (* ****** ****** *) local staload FM = "libats/SATS/funmap_avltree.sats" staload _ = "libats/DATS/funmap_avltree.dats" val cmp = lam ( d2c1: d2cst, d2c2: d2cst ) : int = compare_d2cst_d2cst (d2c1, d2c2) // end of [val] assume d2cstmap_type (a:type) = $FM.map (d2cst, a) in (* in of [local] *) implement d2cstmap_nil () = $FM.funmap_make_nil () implement d2cstmap_search {a} (map, d2c) = $FM.funmap_search_opt (map, d2c, cmp) // end of [d2cstmap_search] implement d2cstmap_insert {a} (map, d2c, x) = $FM.funmap_insert (map, d2c, x, cmp) // end of [d2cstmap_insert] end // end of [local] (* ****** ****** *) (* end of [pats_dynexp2_dcst.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2_error.dats0000644000175000017500000000522013431250607021776 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_trans2.sats" (* ****** ****** *) // vtypedef trans2errlst_vt = List_vt (trans2err) // (* ****** ****** *) local val the_trans2errlst = ref (list_vt_nil) fun the_trans2errlst_get ( // argumentless ) : trans2errlst_vt = let val (vbox pf | p) = ref_get_view_ptr (the_trans2errlst) val xs = !p val () = !p := list_vt_nil () in xs end // end of [the_trans2errlst_get] in (* in-of-local *) implement the_trans2errlst_add (x) = { val (vbox pf | p) = ref_get_view_ptr (the_trans2errlst) val () = !p := list_vt_cons (x, !p) } (* end of [the_trans2errlst_add] *) implement the_trans2errlst_finalize () = { val xs = the_trans2errlst_get () val nxs = list_vt_length (xs) val ((*freed*)) = list_vt_free (xs) // (* val () = if nxs > 0 then { val () = fprintf ( stderr_ref , "patsopt(TRANS2): there are [%i] errors in total.\n", @(nxs) ) (* end of [fprintf] *) } (* end of [if] *) // end of [val] // *) val () = if nxs > 0 then $raise($ERR.PATSOPT_TRANS2_EXN()) // end of [if] // } (* end of [the_trans2errlst_finalize] *) end // end of [local] (* ****** ****** *) (* end of [pats_trans2_error.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2_env.dats0000644000175000017500000010242313431250607021440 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload FIL = "./pats_filename.sats" typedef filename = $FIL.filename (* ****** ****** *) staload SYM = "./pats_symbol.sats" staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans2_env" (* ****** ****** *) staload "./pats_symmap.sats" staload "./pats_symenv.sats" staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" staload "./pats_namespace.sats" (* ****** ****** *) staload "./pats_trans2.sats" staload "./pats_trans2_env.sats" (* ****** ****** *) local vtypedef filenv_struct = @{ name= filename , sort= s2temap , sexp= s2itmmap , dexp= d2itmmap , decl2= d2eclist , decl3= Option (dynexp2_d3eclist_type) (* , hidecl= Option (dynexp2_hideclist_type) *) , tcimap= Option (dynexp2_tmpcstimpmap_type) , tvdmap= Option (dynexp2_tmpvardecmap_type) } // end of [filenv_struct] assume filenv_type = ref (filenv_struct) in (* in of [local] *) implement filenv_make ( fil, s2tm, s2im, d2im, d2cs ) = let // val ( pfgc, pfat | p ) = ptr_alloc () prval () = free_gc_elim {filenv_struct?} (pfgc) // val () = p->name := fil val () = p->sort := s2tm val () = p->sexp := s2im val () = p->dexp := d2im val () = p->decl2 := d2cs val () = p->decl3 := None () (* val () = p->hidecl := None () *) val () = p->tcimap := None () val () = p->tvdmap := None () in // ref_make_view_ptr (pfat | p) // end // end of [filenv_make] implement filenv_get_name (fenv) = let val (vbox pf | p) = ref_get_view_ptr (fenv) in p->name end // end of [filenv_get_name] implement filenv_get_s2temap (fenv) = let val (vbox pf | p) = ref_get_view_ptr (fenv) prval (pf1, fpf1) = __assert (view@ (p->sort)) where { extern prfun __assert {a:vt@ype} {l:addr} (pf: !a @ l): (a @ l, minus (filenv, a @ l)) } // end of [prval] in (pf1, fpf1 | &p->sort) end // end of [filenv_get_s2temap] implement filenv_get_s2itmmap (fenv) = let val (vbox pf | p) = ref_get_view_ptr (fenv) prval (pf1, fpf1) = __assert (view@ (p->sexp)) where { extern prfun __assert {a:vt@ype} {l:addr} (pf: !a @ l): (a @ l, minus (filenv, a @ l)) } // end of [prval] in (pf1, fpf1 | &p->sexp) end // end of [filenv_get_s2itmmap] implement filenv_get_d2itmmap (fenv) = let val (vbox pf | p) = ref_get_view_ptr (fenv) prval (pf1, fpf1) = __assert (view@ (p->dexp)) where { extern prfun __assert {a:vt@ype} {l:addr} (pf: !a @ l): (a @ l, minus (filenv, a @ l)) } // end of [prval] in (pf1, fpf1 | &p->dexp) end // end of [filenv_get_d2itmmap] implement filenv_get_d2eclist (fenv) = let val (vbox pf | p) = ref_get_view_ptr (fenv) in p->decl2 end // end of [filenv_get_d2eclist] (* ****** ****** *) implement filenv_getref_d3eclistopt (fenv) = let val (vbox pf | p) = ref_get_view_ptr (fenv) in $UN.cast2Ptr1(&(p->decl3)) end // end of [filenv_getref_d3eclist] (* ****** ****** *) implement filenv_getref_tmpcstimpmap (fenv) = let val (vbox pf | p) = ref_get_view_ptr (fenv) in $UN.cast2Ptr1(&(p->tcimap)) end // end of [filenv_getref_tmpcstimpmap] implement filenv_getref_tmpvardecmap (fenv) = let val (vbox pf | p) = ref_get_view_ptr (fenv) in $UN.cast2Ptr1(&(p->tvdmap)) end // end of [filenv_getref_tmpvardecmap] end // end of [local] (* ****** ****** *) local // assume s2rtenv_push_v = unit_v // vtypedef s2rtenv = symenv (s2rtext) // val [l0:addr] (pf | p0) = symenv_make_nil () val (pf0 | ()) = vbox_make_view_ptr {s2rtenv} (pf | p0) // (* ****** ****** *) fun the_s2rtenv_find_namespace .<>. (id: symbol): s2rtextopt_vt = let fn fopr ( fenv: filenv ) : s2rtextopt_vt = let val (pf, fpf | p) = filenv_get_s2temap (fenv) val ans = symmap_search (!p, id) prval () = minus_addback (fpf, pf | fenv) in ans end // end of [fopr] in the_namespace_search(fopr) end // end of [the_s2rtenv_find_namespace] (* ****** ****** *) in (* in of [local] *) (* ****** ****** *) implement the_s2rtenv_add (id, s2te) = let prval vbox pf = pf0 in symenv_insert (!p0, id, s2te) end // end of [the_s2rtenv_add] (* ****** ****** *) implement the_s2rtenv_find (id) = let val ans = let prval vbox pf = pf0 in symenv_search (!p0, id) end // end of [val] in // case+ ans of | Some_vt _ => (fold@ ans; ans) | ~None_vt () => let val ans = the_s2rtenv_find_namespace(id) in case+ ans of | Some_vt _ => (fold@ ans; ans) | ~None_vt () => let prval vbox pf = pf0 in symenv_pervasive_search (!p0, id) end // end of [None_vt] end // end of [None_vt] // end // end of [the_s2rtenv_find] (* ****** ****** *) implement the_s2rtenv_top_clear () = () where { prval vbox pf = pf0 val () = symenv_top_clear (!p0) } // end of [the_s2rtenv_top_clear] (* ****** ****** *) implement the_s2rtenv_pop ( pfenv | (*none*) ) = let prval unit_v () = pfenv prval vbox pf = pf0 in symenv_pop (!p0) end // end of [the_s2rtenv_pop] implement the_s2rtenv_pop_free (pfenv | (*none*)) = { prval unit_v () = pfenv prval vbox pf = pf0 val () = symenv_pop_free (!p0) } // end of [the_s2rtenv_pop_free] implement the_s2rtenv_push_nil () = (pfenv | ()) where { prval vbox pf = pf0 val () = symenv_push_nil (!p0) prval pfenv = unit_v () } // end of [the_s2rtenv_push_nil] (* ****** ****** *) fun the_s2rtenv_localjoin ( pfenv1: s2rtenv_push_v , pfenv2: s2rtenv_push_v | (*none*) ) = () where { prval unit_v () = pfenv1 prval unit_v () = pfenv2 prval vbox pf = pf0 val () = symenv_localjoin (!p0) } // end of [the_s2rtenv_localjoin] (* ****** ****** *) viewdef s2rtenv_save_v = unit_v fun the_s2rtenv_save () = let prval pfsave = unit_v () prval vbox pf = pf0 val () = symenv_savecur (!p0) in (pfsave | ()) end // end of [the_s2rtenv_save] fun the_s2rtenv_restore ( pfsave: s2rtenv_save_v | (*none*) ) : s2temap = let prval vbox pf = pf0 prval unit_v () = pfsave in symenv_restore (!p0) end // end of [the_s2rtenv_restore] (* ****** ****** *) implement the_s2rtenv_pervasive_joinwth0 (map) = let prval vbox pf = pf0 in symenv_pervasive_joinwth0 (!p0, map) end // end of [the_s2rtenv_pervasive_joinwth0] implement the_s2rtenv_pervasive_joinwth1 (map) = let prval vbox pf = pf0 in symenv_pervasive_joinwth1 (!p0, map) end // end of [the_s2rtenv_pervasive_joinwth1] (* ****** ****** *) end // end of [local] (* ****** ****** *) implement the_s2rtenv_find_qua (q, id) = let (* val () = print "the_s2rtenv_find_qua: qid = " val () = ($SYN.print_s0rtq (q); $SYM.print_symbol (id)) val () = print_newline ((*void*)) *) in // case+ q.s0rtq_node of | $SYN.S0RTQnone _ => the_s2rtenv_find (id) | $SYN.S0RTQsymdot (sym) => let val ans = the_s2expenv_find (sym) in case+ ans of | ~Some_vt (s2i) => ( case+ s2i of | S2ITMfilenv (fenv) => let val ( pf, fpf | p_map ) = filenv_get_s2temap (fenv) val ans = symmap_search (!p_map, id) prval () = minus_addback (fpf, pf | fenv) in ans end // en dof [S2ITMfil] | _ => let val loc = q.s0rtq_loc val () = prerr_error2_loc (loc) val () = prerr ": the qualifier [" val () = $SYM.prerr_symbol (sym) val () = prerr "] should refer to a filename but it does not." val () = prerr_newline () in None_vt () end ) // end of [Some_vt] | ~None_vt () => let val loc = q.s0rtq_loc val () = prerr_error2_loc (loc) val () = prerr ": the qualifier [" val () = $SYM.prerr_symbol (sym) val () = prerr "] is unrecognized." val () = prerr_newline () in None_vt () end // end of [case] end // end of [S2RTsymdot] // end // end of [the_s2rtenv_find_qua] (* ****** ****** *) local // assume s2expenv_push_v = unit_v // vtypedef s2expenv = symenv (s2itm) // val [l0:addr] (pf | p0) = symenv_make_nil () val (pf0 | ()) = vbox_make_view_ptr {s2expenv} (pf | p0) // (* ****** ****** *) fun the_s2expenv_find_namespace .<>. (id: symbol): s2itmopt_vt = let fn fopr ( fenv: filenv ) : s2itmopt_vt = let val (pf, fpf | p) = filenv_get_s2itmmap (fenv) val ans = symmap_search (!p, id) prval () = minus_addback (fpf, pf | fenv) in ans end // end of [fopr] in the_namespace_search(fopr) end // end of [the_s2expenv_find_namespace] (* ****** ****** *) in (* in of [local] *) (* ****** ****** *) implement the_s2expenv_add (id, s2i) = let prval vbox pf = pf0 in symenv_insert (!p0, id, s2i) end // end of [the_s2expenv_add] (* ****** ****** *) implement the_s2expenv_find (id) = let val ans = let prval vbox pf = pf0 in symenv_search (!p0, id) end // end of [val] in // case+ ans of | Some_vt _ => (fold@ ans; ans) | ~None_vt () => let val ans = the_s2expenv_find_namespace(id) in case+ ans of | Some_vt _ => (fold@ ans; ans) | ~None_vt () => let prval vbox pf = pf0 in symenv_pervasive_search (!p0, id) end // end of [None_vt] end // end of [None_vt] // end // end of [the_s2expenv_find] (* ****** ****** *) implement the_s2expenv_pervasive_find (id) = let prval vbox pf = pf0 in symenv_pervasive_search (!p0, id) end // end of [the_s2expenv_pervasive_find] (* ****** ****** *) implement the_s2expenv_top_clear () = () where { prval vbox pf = pf0 val () = symenv_top_clear (!p0) } // end of [the_s2expenv_top_clear] (* ****** ****** *) implement the_s2expenv_pop ( pfenv | (*none*) ) = let prval unit_v () = pfenv prval vbox pf = pf0 in symenv_pop (!p0) end // end of [the_s2expenv_pop] implement the_s2expenv_pop_free (pfenv | (*none*)) = () where { prval unit_v () = pfenv prval vbox pf = pf0 val () = symenv_pop_free (!p0) } // end of [the_s2expenv_pop_free] implement the_s2expenv_push_nil () = (pfenv | ()) where { prval vbox pf = pf0 val () = symenv_push_nil (!p0) prval pfenv = unit_v () } // end of [the_s2expenv_push_nil] (* ****** ****** *) fun the_s2expenv_localjoin ( pfenv1: s2expenv_push_v , pfenv2: s2expenv_push_v | (*none*) ) = () where { prval unit_v () = pfenv1 prval unit_v () = pfenv2 prval vbox pf = pf0 val () = symenv_localjoin (!p0) } // end of [the_s2expenv_localjoin] (* ****** ****** *) viewdef s2expenv_save_v = unit_v fun the_s2expenv_save () = let prval pfsave = unit_v () prval vbox pf = pf0 val () = symenv_savecur (!p0) in (pfsave | ()) end // end of [the_s2expenv_save] fun the_s2expenv_restore ( pfsave: s2expenv_save_v | (*none*) ) : s2itmmap = let prval vbox pf = pf0 prval unit_v () = pfsave in symenv_restore (!p0) end // end of [the_s2expenv_restore] (* ****** ****** *) implement the_s2expenv_pervasive_joinwth0 (map) = let prval vbox pf = pf0 in symenv_pervasive_joinwth0 (!p0, map) end // end of [the_s2expenv_pervasive_joinwth0] implement the_s2expenv_pervasive_joinwth1 (map) = let prval vbox pf = pf0 in symenv_pervasive_joinwth1 (!p0, map) end // end of [the_s2expenv_pervasive_joinwth1] end // end of [local] (* ****** ****** *) implement the_s2expenv_find_qua (q, id) = let (* // val () = print "the_s2expenv_find_qua: qid = " val () = ($SYN.print_s0taq (q); $SYM.print_symbol (id)) val () = print_newline ((*void*)) // *) in // case+ q.s0taq_node of // | $SYN.S0TAQnone _ => the_s2expenv_find (id) // | $SYN.S0TAQsymdot (sym) => let val ans = the_s2expenv_find (sym) in case+ ans of | ~Some_vt (s2i) => ( case+ s2i of | S2ITMfilenv (fenv) => let val ( pf, fpf | p_map ) = filenv_get_s2itmmap (fenv) val ans = symmap_search (!p_map, id) prval () = minus_addback (fpf, pf | fenv) in ans end // en dof [S2ITMfil] | _ => let val loc = q.s0taq_loc val () = prerr_error2_loc (loc) val () = prerr ": the qualifier [" val () = $SYM.prerr_symbol (sym) val () = prerr "] should refer to a filename but it does not." val () = prerr_newline ((*void*)) in None_vt () end ) // end of [Some_vt] | ~None_vt () => let val loc = q.s0taq_loc val () = prerr_error2_loc (loc) val () = prerr ": the qualifier [" val () = $SYM.prerr_symbol (sym) val () = prerr "] is unrecognized." val () = prerr_newline ((*void*)) in None_vt () end end // end of [S2RTsymdot] // (* // // HX-2017-01-24: // removed as it is never in use // | $SYN.S0TAQsymcolon _ => None_vt((*void*)) *) // end // end of [the_s2expenv_find_qua] (* ****** ****** *) implement the_s2expenv_add_scst (s2c) = let (* val () = ( println! ("s2expenv_add_scst: s2c = ", s2c); println! ("s2expenv_add_scst: s2t = ", s2cst_get_srt(s2c)); ) (* end of [val] *) *) val id = s2cst_get_sym s2c // val s2cs = ( case+ the_s2expenv_find (id) of | ~Some_vt s2i => begin case+ s2i of | S2ITMcst s2cs => s2cs | _ => list_nil () end // end of [Some_vt] | ~None_vt () => list_nil () ) : s2cstlst // end of [val] // val s2i = S2ITMcst (list_cons (s2c, s2cs)) // in the_s2expenv_add (id, s2i) end // end of [the_s2expenv_add_scst] implement the_s2expenv_add_svar (s2v) = let val id = s2var_get_sym (s2v) in the_s2expenv_add (id, S2ITMvar s2v) end // end of [the_s2expenv_add_svar] implement the_s2expenv_add_svarlst (s2vs) = list_app_fun (s2vs, the_s2expenv_add_svar) // end of [the_s2expenv_add_svarlst] implement the_s2expenv_add_sp2at (sp2t) = ( case+ sp2t.sp2at_node of | SP2Tcon (s2c, s2vs) => the_s2expenv_add_svarlst (s2vs) | SP2Terr () => () // HX: a placeholder for indicating an error ) // end of [the_s2expenv_add_sp2at] implement the_s2expenv_add_datconptr (d2c) = let val sym = d2con_get_sym d2c val name = $SYM.symbol_get_name (sym) val id = $SYM.symbol_make_string (name + "_unfold") val () = the_s2expenv_add (id, S2ITMdatconptr (d2c)) in // empty end // end of [the_s2expenv_add_datconptr] implement the_s2expenv_add_datcontyp (d2c) = let val sym = d2con_get_sym d2c val name = $SYM.symbol_get_name (sym) val id = $SYM.symbol_make_string (name + "_pstruct") val () = the_s2expenv_add (id, S2ITMdatcontyp (d2c)) in // empty end // end of [the_s2expenv_add_datcontyp] (* ****** ****** *) local val the_maclev = ref_make_elt (1) // HX: the initial level is 1 // end of [val] in (* in of [local] *) implement the_maclev_get () = !the_maclev implement the_maclev_inc (loc) = let val lev = !the_maclev val () = if lev > 0 then { val () = prerr_error2_loc (loc) val () = prerr ": the syntax `(...) is used incorrectly at this location."; val () = prerr_newline () } // end of [if] // end of [val] in !the_maclev := lev + 1 end // end of [the_maclev_inc] implement the_maclev_dec (loc) = let val lev = !the_maclev val () = if lev = 0 then { val () = prerr_error2_loc (loc) val () = prerr ": the syntax ,(...) or %(...) is used incorrectly at this location."; val () = prerr_newline () } // end of [if] // end of [val] in !the_maclev := lev - 1 end // end of [the_maclev_dec] end // end of [local] (* ****** ****** *) local val the_macdeflev = ref_make_elt (0) // end of [val] in (* in of [local] *) implement the_macdeflev_get () = !the_macdeflev implement the_macdeflev_inc () = !the_macdeflev := !the_macdeflev + 1 // end of [macdeflev_inc] implement the_macdeflev_dec () = !the_macdeflev := !the_macdeflev - 1 // end of [macdeflev_dec] end // end of [local] (* ****** ****** *) local val the_tmplev = ref_make_elt (0) // end of [val] in (* in of [local] *) implement the_tmplev_get () = !the_tmplev implement the_tmplev_inc () = !the_tmplev := !the_tmplev + 1 // end of [tmplev_inc] implement the_tmplev_dec () = !the_tmplev := !the_tmplev - 1 // end of [tmplev_dec] end // end of [local] (* ****** ****** *) (* ** HX-2012-06-07: ** this function is currently not used ** in the implementation of ATS2 *) #if (0) #then implement s2var_check_tmplev (loc, s2v) = let val lev = s2var_get_tmplev (s2v) in case+ 0 of | _ when lev > 0 => let val tmplev = the_tmplev_get () in if lev < tmplev then let val () = prerr_error2_loc (loc) val () = prerr ": the static variable [" val () = prerr_s2var (s2v) val () = prerr "] is out of scope." val () = prerr_newline () in the_trans2errlst_add (T2E_s2var_check_tmplev (s2v)) end // end of [if] end // end of [_ when lev > 0]] | _ => () // HX: [s2v] is not a template variable end // end of [s2var_tmplev_check] #endif // PATS_UNUSED_CODE (* ****** ****** *) implement s2qualstlst_set_tmplev (s2qs, tmplev) = () where { fun aux ( pf: !unit_v | s2q: s2qua ) : void = list_app_cloptr (s2q.s2qua_svs, lam s2v =<1> s2var_set_tmplev (s2v, tmplev)) // end of [aux] prval pfu = unit_v () val () = list_app_vcloptr {unit_v} (pfu | s2qs, aux) prval unit_v () = pfu } // end of [s2qualstlst_set_tmplev] (* ****** ****** *) local // val the_d2varlev = ref (0) // assume the_d2varlev_inc_v = unit_v // in (* in of [local] *) implement the_d2varlev_get () = !the_d2varlev implement the_d2varlev_inc ((*void*)) = let prval pfinc = unit_v () val n = !the_d2varlev val () = !the_d2varlev := n + 1 in (pfinc | ()) end // end of [the_d2varlev_inc] implement the_d2varlev_dec (pfinc | (*none*)) = let prval unit_v () = pfinc val n = !the_d2varlev val () = !the_d2varlev := n - 1 in // nothing end // end of [the_d2varlev_dec] implement the_d2varlev_save () = let val n = !the_d2varlev in !the_d2varlev := 0; n end (* end of [the_d2varlev_save] *) implement the_d2varlev_restore (lvl0) = !the_d2varlev := lvl0 end // end of [local] (* ****** ****** *) local // assume d2expenv_push_v = unit_v // vtypedef d2expenv = symenv (d2itm) // val [l0:addr] (pf | p0) = symenv_make_nil () val (pf0 | ()) = vbox_make_view_ptr {d2expenv} (pf | p0) // (* ****** ****** *) fun the_d2expenv_find_namespace .<>. ( id: symbol ) : d2itmopt_vt = let // (* fn export ( opt : d2itmopt_vt ) : d2itmopt_vt = ( case+ opt of | None_vt() => (fold@(opt); opt) | Some_vt(d2i) => ( case+ d2i of | D2ITMvar _ => (free@{d2itm}(opt); None_vt()) | _(*non-D2ITMvar*) => (fold@(opt); opt) ) ) *) // fn fopr ( fenv: filenv ) : d2itmopt_vt = let val (pf0 ,fpf | p0) = filenv_get_d2itmmap(fenv) val d2iopt = symmap_search(!p0, id) prval ((*void*)) = minus_addback(fpf, pf0 | fenv) in (* case+ d2iopt of | ~None_vt() => None_vt() | ~Some_vt(d2i) => ( case+ d2i of // HX-2019-02-11: // d2var is not exported | D2ITMvar _ => None_vt() | _ => Some_vt(d2i) ) *) case+ d2iopt of | None_vt() => (fold@(d2iopt); d2iopt) | Some_vt(d2i) => ( case+ d2i of | D2ITMvar _ => (free@{d2itm}(d2iopt); None_vt()) | _(*non-D2ITMvar*) => (fold@(d2iopt); d2iopt) ) // end-of-case end // end of [fopr] in the_namespace_search(fopr) end // end of [the_d2expenv_find_namespace] in (* in of [local] *) implement the_d2expenv_add (id, d2i) = let prval vbox pf = pf0 in symenv_insert (!p0, id, d2i) end // end of [the_d2expenv_add] (* ****** ****** *) implement the_d2expenv_find (id) = let val ans = let prval vbox pf = pf0 in symenv_search (!p0, id) end // end of [val] in // case+ ans of | Some_vt _ => (fold@ ans; ans) | ~None_vt () => let val ans = the_d2expenv_find_namespace(id) in case+ ans of | Some_vt _ => (fold@ ans; ans) | ~None_vt () => let prval vbox pf = pf0 in symenv_pervasive_search (!p0, id) end // end of [None_vt] end // end of [None_vt] // end // end of [the_d2expenv_find] (* ****** ****** *) implement the_d2expenv_current_find (id) = let prval vbox pf = pf0 in symenv_search (!p0, id) end // end of [the_d2expenv_current_find] implement the_d2expenv_pervasive_find (id) = let prval vbox pf = pf0 in symenv_pervasive_search (!p0, id) end // end of [the_d2expenv_pervasive_find] (* ****** ****** *) implement the_d2expenv_top_clear () = () where { prval vbox pf = pf0 val () = symenv_top_clear (!p0) } // end of [the_d2expenv_top_clear] (* ****** ****** *) implement the_d2expenv_pop ( pfenv | (*none*) ) = let prval unit_v () = pfenv prval vbox pf = pf0 in symenv_pop (!p0) end // end of [the_d2expenv_pop] implement the_d2expenv_pop_free (pfenv | (*none*)) = () where { prval unit_v () = pfenv prval vbox pf = pf0 val () = symenv_pop_free (!p0) } // end of [the_d2expenv_pop_free] implement the_d2expenv_push_nil () = (pfenv | ()) where { prval vbox pf = pf0 val () = symenv_push_nil (!p0) prval pfenv = unit_v () } // end of [the_d2expenv_push_nil] (* ****** ****** *) fun the_d2expenv_localjoin ( pfenv1: d2expenv_push_v , pfenv2: d2expenv_push_v | (*none*) ) = () where { prval unit_v () = pfenv1 prval unit_v () = pfenv2 prval vbox pf = pf0 val () = symenv_localjoin (!p0) } // end of [the_d2expenv_localjoin] (* ****** ****** *) viewdef d2expenv_save_v = unit_v fun the_d2expenv_save () = let prval pfsave = unit_v () prval vbox pf = pf0 val () = symenv_savecur (!p0) in (pfsave | ()) end // end of [the_d2expenv_save] fun the_d2expenv_restore ( pfsave: d2expenv_save_v | (*none*) ) : d2itmmap = let prval vbox pf = pf0 prval unit_v () = pfsave in symenv_restore (!p0) end // end of [the_d2expenv_restore] (* ****** ****** *) implement the_d2expenv_pervasive_joinwth0 (map) = let prval vbox pf = pf0 in symenv_pervasive_joinwth0 (!p0, map) end // end of [the_d2expenv_pervasive_joinwth0] implement the_d2expenv_pervasive_joinwth1 (map) = let prval vbox pf = pf0 in symenv_pervasive_joinwth1 (!p0, map) end // end of [the_d2expenv_pervasive_joinwth1] end // end of [local] (* ****** ****** *) implement the_d2expenv_find_qua (q, id) = let (* val () = print ( "the_d2expenv_find_qua: qid = " ) (* val *) val () = ($SYN.print_s0taq(q); $SYM.print_symbol(id)) val () = print_newline ((*void*)) *) in // case+ q.d0ynq_node of // case+ | $SYN.D0YNQnone _ => the_d2expenv_find(id) // end of [D0YNQnone] | $SYN.D0YNQsymdot(sym) => let val ans = the_s2expenv_find(sym) // end of [val] in case+ ans of | ~Some_vt(s2i) => ( case+ s2i of | S2ITMfilenv ( fenv ) => ans where { val ( pf, fpf | p_map ) = filenv_get_d2itmmap(fenv) val ans = symmap_search(!p_map, id) prval () = minus_addback(fpf, pf | fenv) } (* end of [S2ITMfil] *) | _ (*rest-of-s2itm*) => let val () = prerr_error2_loc(q.d0ynq_loc) // end of [val] val () = prerr ": the qualifier [" val () = $SYM.prerr_symbol(sym) val () = prerr "] should refer to a filename but it does not." val () = prerr_newline((*void*)) in None_vt ((*void*)) end ) // end of [Some_vt] | ~None_vt((*void*)) => let val () = prerr_error2_loc(q.d0ynq_loc) // end of [val] val () = prerr ": the qualifier [" val () = $SYM.prerr_symbol(sym) val () = prerr "] is unrecognized." val () = prerr_newline((*void*)) in None_vt ((*void*)) end // end of [None_vt] end // end of [S2RTsymdot] (* // // HX-2017-01-24: // removed due to no use // | $SYN.D0YNQsymcolon _ => None_vt((*void*)) | $SYN.D0YNQsymdotcolon _ => None_vt((*void*)) *) // end // end of [the_s2expenv_find_qua] (* ****** ****** *) implement the_d2expenv_add_dcon (d2c) = let // val id = d2con_get_sym d2c val d2cs = ( case+ the_d2expenv_find (id) of | ~Some_vt d2i => ( case+ d2i of D2ITMcon d2cs => d2cs | _ => list_nil () ) // end of [Some_vt] | ~None_vt ((*void*)) => list_nil () ) : d2conlst // end of [val] val d2i = D2ITMcon (list_cons (d2c, d2cs)) // in the_d2expenv_add (id, d2i) end // end of [the_d2expenv_add_dcon] (* ****** ****** *) implement the_d2expenv_add_dcst (d2c) = let val id = d2cst_get_sym (d2c) in the_d2expenv_add (id, D2ITMcst d2c) end // end of [the_d2expenv_add_dcst] (* ****** ****** *) implement the_d2expenv_add_dmacdef (d2m) = let val id = d2mac_get_sym (d2m) in the_d2expenv_add (id, D2ITMmacdef d2m) end // end of [the_d2expenv_add_dmacdef] implement the_d2expenv_add_dmacvar (d2v) = let val id = d2var_get_sym (d2v) in the_d2expenv_add (id, D2ITMmacvar d2v) end // end of [the_d2expenv_add_dmacvar] implement the_d2expenv_add_dmacvarlst (d2vs) = list_app_fun (d2vs, the_d2expenv_add_dmacvar) // end of [the_d2expenv_add_dmacvarlst] (* ****** ****** *) implement the_d2expenv_add_dvar (d2v) = let val id = d2var_get_sym (d2v) in the_d2expenv_add (id, D2ITMvar d2v) end // end of [the_d2expenv_add_dvar] implement the_d2expenv_add_dvarlst (d2vs) = list_app_fun (d2vs, the_d2expenv_add_dvar) // end of [the_d2expenv_add_dvarlst] implement the_d2expenv_add_dvaropt (opt) = ( case+ opt of Some (d2v) => the_d2expenv_add_dvar (d2v) | None () => () ) // end of [the_d2expenv_add_dvaropt] (* ****** ****** *) implement the_d2expenv_add_fundeclst (knd, f2ds) = let // fun auxlst ( f2ds: f2undeclst ) : void = ( case+ f2ds of | list_cons (f2d, f2ds) => let val () = the_d2expenv_add_dvar (f2d.f2undec_var) in auxlst (f2ds) end // end of [list_cons] | list_nil ((*none*)) => () ) (* end of [auxlist] *) // in // case+ f2ds of | list_cons (f2d, f2ds) => let val () = the_d2expenv_add_dvar (f2d.f2undec_var) in if not(funkind_is_mutailrec(knd)) then auxlst (f2ds) end // end of [list_cons] | list_nil ((*none*)) => () // end // end of [the_d2expenv_add_fundeclst] (* ****** ****** *) local val the_staload_level = ref (0) assume staload_level_push_v = unit_v in (* in of [local] *) implement the_staload_level_get () = !the_staload_level implement the_staload_level_push () = (pf | ()) where { prval pf = unit_v () val n = !the_staload_level val () = !the_staload_level := n+1 } // end of [the_staload_level_push] implement the_staload_level_pop (pf | (*none*)) = let prval unit_v () = pf val n = !the_staload_level val () = !the_staload_level := n-1 in // nothing end // end of [the_staload_level_pop] end // end of [local] (* ****** ****** *) local val the_filenvmap = ref (symmap_make_nil ()) // end of [the_filenvmap] in (* in of [local] *) implement the_filenvmap_add (fid, fenv) = let val (vbox pf | p) = ref_get_view_ptr (the_filenvmap) in symmap_insert (!p, fid, fenv) end // end of [the_filenvmap_add] implement the_filenvmap_find (fid) = let val (vbox pf | p) = ref_get_view_ptr (the_filenvmap) in symmap_search (!p, fid) end // end of [the_filenvmap_find] end // end of [local] (* ****** ****** *) local assume trans2_env_push_v = @( s2rtenv_push_v, s2expenv_push_v, d2expenv_push_v ) (* end of [trans2_env_push_v] *) in (* in of [local] *) implement the_trans2_env_pop (pfenv | (*none*)) = { val () = the_namespace_pop () val () = the_s2rtenv_pop_free (pfenv.0 | (*none*)) val () = the_s2expenv_pop_free (pfenv.1 | (*none*)) val () = the_d2expenv_pop_free (pfenv.2 | (*none*)) } // end of [the_trans2_env_pop] implement the_trans2_env_push () = let val () = the_namespace_push () val (pf0 | ()) = the_s2rtenv_push_nil () val (pf1 | ()) = the_s2expenv_push_nil () val (pf2 | ()) = the_d2expenv_push_nil () in ((pf0, pf1, pf2) | ()) end // end of [the_trans2_env_push] implement the_trans2_env_localjoin (pf1, pf2 | (*none*)) = { val () = the_namespace_localjoin () val () = the_s2rtenv_localjoin (pf1.0, pf2.0 | (*none*)) val () = the_s2expenv_localjoin (pf1.1, pf2.1 | (*none*)) val () = the_d2expenv_localjoin (pf1.2, pf2.2 | (*none*)) } // end of [trans2_env_localjoin] implement the_trans2_env_pervasive_joinwth1 (pfenv | fil, d2cs) = { val m0 = the_s2rtenv_pop (pfenv.0 | (*none*)) val () = the_s2rtenv_pervasive_joinwth1 (m0) val m1 = the_s2expenv_pop (pfenv.1 | (*none*)) val () = the_s2expenv_pervasive_joinwth1 (m1) val m2 = the_d2expenv_pop (pfenv.2 | (*none*)) val () = the_d2expenv_pervasive_joinwth1 (m2) // val fsym = $FIL.filename_get_fullname (fil) val fenv = filenv_make (fil, m0, m1, m2, d2cs) val ((*void*)) = the_filenvmap_add (fsym, fenv) // } // end of [the_trans2_env_pervasive_joinwth1] end // end of [local] (* ****** ****** *) local assume trans2_env_save_v = @( s2rtenv_save_v, s2expenv_save_v, d2expenv_save_v ) // end of [trans2_env_save_v] in (* in of [local] *) implement the_trans2_env_save () = let val () = the_namespace_save () val (pf0 | ()) = the_s2rtenv_save () val (pf1 | ()) = the_s2expenv_save () val (pf2 | ()) = the_d2expenv_save () prval pfsave = (pf0, pf1, pf2) in (pfsave | ()) end // end of [the_trans1_env_save] implement the_trans2_env_restore (pfsave | (*none*)) = let val () = the_namespace_restore () val m0 = the_s2rtenv_restore (pfsave.0 | (*none*)) val m1 = the_s2expenv_restore (pfsave.1 | (*none*)) val m2 = the_d2expenv_restore (pfsave.2 | (*none*)) in (m0, m1, m2) end // end of [the_trans2_env_restore] end // end of [local] (* ****** ****** *) local fun the_s2rtenv_initialize ( // argless ) : void = { // val (pfenv | ()) = the_s2rtenv_push_nil () // // HX: pre-defined predicative sorts // val () = the_s2rtenv_add ($SYM.symbol_INT, S2TEsrt s2rt_int) val () = the_s2rtenv_add ($SYM.symbol_ADDR, S2TEsrt s2rt_addr) val () = the_s2rtenv_add ($SYM.symbol_BOOL, S2TEsrt s2rt_bool) // (* val () = the_s2rtenv_add ($SYM.symbol_CHAR, S2TEsrt s2rt_char) *) // val () = the_s2rtenv_add ($SYM.symbol_REAL, S2TEsrt s2rt_real) // val () = the_s2rtenv_add ($SYM.symbol_FLOAT, S2TEsrt s2rt_float) val () = the_s2rtenv_add ($SYM.symbol_STRING, S2TEsrt s2rt_string) // val () = the_s2rtenv_add ($SYM.symbol_CLS, S2TEsrt s2rt_cls) // classes // val () = the_s2rtenv_add ($SYM.symbol_EFF, S2TEsrt s2rt_eff) // effects // val () = the_s2rtenv_add ($SYM.symbol_TKIND, S2TEsrt s2rt_tkind) // // HX: pre-defined impredicative sorts // val () = the_s2rtenv_add ($SYM.symbol_PROP, S2TEsrt s2rt_prop) // val () = the_s2rtenv_add ($SYM.symbol_VIEW, S2TEsrt s2rt_view) // val () = the_s2rtenv_add ($SYM.symbol_TYPE, S2TEsrt s2rt_type) val () = the_s2rtenv_add ($SYM.symbol_T0YPE, S2TEsrt s2rt_t0ype) // val () = the_s2rtenv_add ($SYM.symbol_TYPES, S2TEsrt s2rt_types) // val () = the_s2rtenv_add ($SYM.symbol_VTYPE, S2TEsrt s2rt_vtype) val () = the_s2rtenv_add ($SYM.symbol_VT0YPE, S2TEsrt s2rt_vt0ype) // val () = the_s2rtenv_add ($SYM.symbol_VIEWTYPE, S2TEsrt s2rt_vtype) val () = the_s2rtenv_add ($SYM.symbol_VIEWT0YPE, S2TEsrt s2rt_vt0ype) // val map = the_s2rtenv_pop (pfenv | (*none*)) val ((*void*)) = the_s2rtenv_pervasive_joinwth0 (map) // } (* end of [trans2_env_initialize] *) fun the_s2rtenv_reinitialize(): void = the_s2rtenv_top_clear () (* ****** ****** *) // fun the_s2expenv_initialize (): void = () fun the_s2expenv_reinitialize(): void = the_s2expenv_top_clear() // (* ****** ****** *) // fun the_d2expenv_initialize (): void = { (* // HX-2013-02: // in prelude/basics_pre.sats: symintr [] // val (pfenv | ()) = the_d2expenv_push_nil () // val () = let val sym = $SYM.symbol_LRBRACKETS in the_d2expenv_add (sym, D2ITMsymdef (sym, list_nil)) end // end of [val] // val map = the_d2expenv_pop (pfenv | (*none*)) // val () = the_d2expenv_pervasive_joinwth0 (map) // *) // } (* end of [the_d2expenv_initialize] *) // fun the_d2expenv_reinitialize(): void = the_d2expenv_top_clear() // (* ****** ****** *) val the_trans2_env_flag = ref (0) (* ****** ****** *) in (* in of [local] *) implement the_trans2_env_initialize ( // argumentless ) = let // val n = !the_trans2_env_flag val () = !the_trans2_env_flag := n+1 // in // if n = 0 then { val () = the_s2rtenv_initialize () val () = the_s2expenv_initialize () val () = the_d2expenv_initialize () } else { val () = the_s2rtenv_reinitialize () val () = the_s2expenv_reinitialize () val () = the_d2expenv_reinitialize () } (* end of [if] *) // end // end of [the_trans2_env_initialize] end // end of [local] (* ****** ****** *) (* end of [pats_trans2_env.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_decl.dats0000644000175000017500000011051213431250607021554 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload UT = "./pats_utils.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" staload GLOB = "./pats_global.sats" (* ****** ****** *) // staload SYM = "./pats_symbol.sats" // overload = with $SYM.eq_symbol_symbol // overload print with $SYM.print_symbol overload prerr with $SYM.prerr_symbol overload fprint with $SYM.fprint_symbol // macdef ADD = $SYM.symbol_ADD macdef SUB = $SYM.symbol_SUB // macdef ATS_PACKNAME = $SYM.symbol_ATS_PACKNAME // (* macdef ATS_STALOADFLAG = $SYM.symbol_ATS_STALOADFLAG *) macdef ATS_DYNLOADFLAG = $SYM.symbol_ATS_DYNLOADFLAG macdef ATS_DYNLOADNAME = $SYM.symbol_ATS_DYNLOADNAME // macdef ATS_STATIC_PREFIX = $SYM.symbol_ATS_STATIC_PREFIX // macdef ATS_MAINATSFLAG = $SYM.symbol_ATS_MAINATSFLAG // (* ****** ****** *) staload FIL = "./pats_filename.sats" (* ****** ****** *) staload PAR = "./pats_parsing.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans1_decl" (* ****** ****** *) staload "./pats_lexing.sats" staload "./pats_fixity.sats" staload "./pats_syntax.sats" staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" (* ****** ****** *) staload "./pats_trans1.sats" staload "./pats_trans1_env.sats" staload "./pats_e1xpval.sats" (* ****** ****** *) #define nil list_nil #define cons list_cons #define :: list_cons #define l2l list_of_list_vt (* ****** ****** *) local fn prec_make_err ((*void*)) = prec_make_int(0) fn prec_tr_errmsg_fxty (opr: i0de): void = let val () = prerr_error1_loc(opr.i0de_loc) val () = prerrln! (": the operator [", opr.i0de_sym, "] is given no fixity") val () = the_trans1errlst_add (T1E_prec_tr (opr)) in // nothing end // end of [prec_tr_errmsg_fxty] fn prec_tr_errmsg_adj (opr: i0de): void = let val () = prerr_error1_loc(opr.i0de_loc) val () = prerrln! ": the operator for adjusting precedence can only be [+] or [-]." val () = the_trans1errlst_add (T1E_prec_tr (opr)) in // nothing end // end of [prec_tr_errmsg_adj] fn p0rec_tr (p0: p0rec): prec = let // fun precfnd .<>. (id: i0de): prec = let val fxtyopt = the_fxtyenv_find id.i0de_sym in case+ fxtyopt of | ~Some_vt fxty => let (* val () = begin print "p0rec_tr: Some: id = "; $Sym.print_symbol_code id.i0de_sym; print_newline () end // end of [val] *) val precopt = fxty_get_prec (fxty) in case+ precopt of | ~Some_vt prec => prec | ~None_vt () => let val () = prec_tr_errmsg_fxty (id) in prec_make_err () end (* end of [None_vt] *) end // end of [Some_vt] | ~None_vt () => let val () = prec_tr_errmsg_fxty (id) in prec_make_err () end (* end of [None_vt] *) end // end of [precfnd] // (* val () = print ("p0rec_tr: p0 = ") val () = fprint_p0rec (stdout_ref, p0) val () = print_newline () *) // in case+ p0 of | P0RECint int => prec_make_int(int) // end of [P0RECint] | P0RECi0de id => precfnd id | P0RECi0de_adj (id, opr, int) => let val sym = opr.i0de_sym in case+ opr of | _ when sym = ADD => precedence_inc(precfnd id, int) | _ when sym = SUB => precedence_dec(precfnd id, int) | _ => let val () = prec_tr_errmsg_adj(opr) in prec_make_err() end (* end of [_] *) end // end of [P0RECi0de_adj] end // end of [p0rec_tr] fn f0xty_tr (f0xty: f0xty): fxty = ( case+ f0xty of | F0XTYinf (p0, a) => let val p1 = p0rec_tr p0 in fxty_inf (p1, a) end // F0XTYinf | F0XTYpre p0 => let val p1 = p0rec_tr p0 in fxty_pre p1 end | F0XTYpos p0 => let val p1 = p0rec_tr p0 in fxty_pos p1 end ) (* end of [f0xty_tr] *) in (* in of [local] *) implement d0ecl_fixity_tr (f0xty, ids) = let // fun loop ( fxty: fxty, ids: i0delst ) : void = case+ ids of | list_cons (id, ids) => let (* val sym = id.i0de_sym val stamp = $SYM.symbol_get_stamp (sym) val () = ( println! ("d0ecl_fixity_tr: loop: id = ", sym); println! ("d0ecl_fixity_tr: loop: id = ", stamp) ) // end of [val] *) (* val () = ( print "the_fxtyenv_add(bef): \n"; fprint_the_fxtyenv (stdout_ref) ) // end of [val] *) val () = the_fxtyenv_add (id.i0de_sym, fxty) (* val () = begin print "the_fxtyenv_add(aft): \n"; fprint_the_fxtyenv (stdout_ref) end // end of [val] *) in loop (fxty, ids) end | list_nil () => () // end of [loop] in loop (f0xty_tr f0xty, ids) end // end of [d0ecl_fixity_tr] implement d0ecl_nonfix_tr (ids) = let fun loop (ids: i0delst): void = case+ ids of | list_cons (id, ids) => begin the_fxtyenv_add (id.i0de_sym, fxty_non); loop ids end // end of [cons] | list_nil () => () // end of [list_nil] // end of [loop] in loop (ids) end // end of [d0ecl_nonfix_tr] end // end of [local] (* ****** ****** *) implement s0tacst_tr (d0c) = let val loc = d0c.s0tacst_loc val sym = d0c.s0tacst_sym val fil = $FIL.filename_get_current() val arg = a0msrtlst_tr(d0c.s0tacst_arg) val res: s1rt = s0rt_tr(d0c.s0tacst_res) val extdef = scstextdef_tr(d0c, sym, d0c.s0tacst_extopt) // end of [val] in // s1tacst_make (loc, fil, d0c.s0tacst_sym, arg, res, extdef) // end // end of [s0tacst_tr] (* ****** ****** *) implement s0tacon_tr (d) = let val fil = $FIL.filename_get_current () val arg = a0msrtlst_tr (d.s0tacon_arg) val def: s1expopt = s0expopt_tr (d.s0tacon_def) in s1tacon_make (d.s0tacon_loc, fil, d.s0tacon_sym, arg, def) end // end of [s0tacon_tr] (* ****** ****** *) (* // // HX-2012-05-23: removed // implement s0tavar_tr (d) = let val srt = s0rt_tr (d.s0tavar_srt) in s1tavar_make (d.s0tavar_loc, d.s0tavar_sym, srt) end // end of [s0tavar_tr] *) (* ****** ****** *) implement s0rtdef_tr (d) = let val s1te = s0rtext_tr d.s0rtdef_def (* val () = print "s0rtdef_tr: s1te = " val () = fprint_s1rtext (stdout_ref, s1te) val () = print_newline () *) in s1rtdef_make (d.s0rtdef_loc, d.s0rtdef_sym, s1te) end // end of [s0rtdef_tr] (* ****** ****** *) implement t0kindef_tr (d) = let val loc = d.t0kindef_loc val id = d.t0kindef_sym val loc_id = d.t0kindef_loc_id val def = s0exp_tr (d.t0kindef_def) in t1kindef_make (loc, id, loc_id, def) end // end of [t0kindef_tr] (* ****** ****** *) implement s0expdef_tr (d) = let val loc = d.s0expdef_loc val id = d.s0expdef_sym val loc_id = d.s0expdef_loc_id val arg = s0marglst_tr (d.s0expdef_arg) val res = s0rtopt_tr (d.s0expdef_res) val def = s0exp_tr (d.s0expdef_def) (* val () = begin print "s0expdef_tr: def = "; print def; print_newline () end // end of [val] *) in s1expdef_make (loc, id, loc_id, arg, res, def) end // end of [s0expdef_tr] (* ****** ****** *) implement s0aspdec_tr (d) = let val arg = s0marglst_tr (d.s0aspdec_arg) // end of [val] val res = s0rtopt_tr (d.s0aspdec_res) val def = s0exp_tr d.s0aspdec_def in s1aspdec_make (d.s0aspdec_loc, d.s0aspdec_qid, arg, res, def) end // end of [s0aspdec_tr] (* ****** ****** *) implement d0atdec_tr (d) = let val arg = a0msrtlst_tr (d.d0atdec_arg) val con = l2l (list_map_fun (d.d0atdec_con, d0atcon_tr)) in d1atdec_make ( d.d0atdec_loc, d.d0atdec_fil, d.d0atdec_sym, arg, con ) // end of [d1atdec_make] end // end of [d0atdec_tr] (* ****** ****** *) implement e0xndec_tr (d) = let val qua = d.e0xndec_qua val qua = q0marglst_tr (qua) var npf0: int = ~1 // HX: default val arg = (case+ d.e0xndec_arg of | Some s0e => let val s1e = s0exp_tr s0e in case+ s1e.s1exp_node of | S1Elist (npf, s1es) => (npf0 := npf; s1es) | _ => cons (s1e, nil ()) end // end of [Some] | None () => nil () ) : s1explst // end of [val] in e1xndec_make ( d.e0xndec_loc, d.e0xndec_fil, d.e0xndec_sym, qua, npf0, arg ) // end of [e1xndec_make] end // end of [e0xndec_tr] (* ****** ****** *) fun token_get_dcstkind (tok: token): dcstkind = let in // case+ tok.token_node of | T_FUN (fk) => ( case+ fk of // | FK_fn () => DCKfun () | FK_fun () => DCKfun () | FK_fnx () => DCKfun () // | FK_prfn () => DCKprfun () | FK_prfun () => DCKprfun () | FK_praxi () => DCKpraxi () // | FK_castfn () => DCKcastfn () // ) // end of [T_FUN] | T_VAL (vk) => ( case+ vk of // | VK_val () => DCKval () // | VK_prval () => DCKprval () // | VK_val_pos () => DCKval () | VK_val_neg () => DCKval () // ) // end of [T_VAL] | _ => let val () = assertloc (false) in DCKfun () end // end of [_] // end // end of [token_get_dcstkind] (* ****** ****** *) fn m0acdef_tr (d: m0acdef): m1acdef = let val loc = d.m0acdef_loc val sym = d.m0acdef_sym val arg = m0acarglst_tr (d.m0acdef_arg) val def = d0exp_tr (d.m0acdef_def) in m1acdef_make (loc, sym, arg, def) end // end of [m0acdef_tr] (* ****** ****** *) fn v0aldec_tr (d: v0aldec): v1aldec = let val p1t = p0at_tr d.v0aldec_pat val d1e = d0exp_tr d.v0aldec_def (* val () = begin print "v0aldec_tr: d1e = "; print d1e; print_newline () end // end of [val] *) val ann = witht0ype_tr (d.v0aldec_ann) in v1aldec_make (d.v0aldec_loc, p1t, d1e, ann) end // end of [v0aldec_tr] (* ****** ****** *) fn f0undec_tr ( isprf: bool, isrec: bool, d: f0undec ) : f1undec = let // val loc = d.f0undec_loc // val effopt = d.f0undec_eff val ( fcopt, efcopt ) = ( case+ effopt of | Some eff => ( fcopt, Some efc ) where { val (fcopt, lin, prf, efc) = e0fftaglst_tr (eff) } (* end of [where] *) // end of [Some] | None ((*void*)) => ( None(*fcopt*), Some efc ) where { val efc = ( if isprf then EFFCSTnil () else EFFCSTall () ) : effcst // end of [val] } (* end of [where] *) // end of [None] ) : @(fcopt, effcstopt) // val d1e_def = d0exp_tr_lams_dyn ( LAMKINDifix , None (*locopt*) , fcopt, 0 (*lin*) , d.f0undec_arg, d.f0undec_res, efcopt , d.f0undec_def ) (* end of [d0exp_lams_dyn_tr] *) // end of [val] // val () = if isrec then termet_check (loc, d1exp_is_metric d1e_def, efcopt) // end of [if] // end of [val] // val ann = witht0ype_tr (d.f0undec_ann) // in f1undec_make (loc, d.f0undec_sym, d.f0undec_sym_loc, d1e_def, ann) end // end of [f0undec_tr] (* ****** ****** *) fun f0undeclst_tr ( fk: funkind, ds: f0undeclst ) : f1undeclst = let val isprf = funkind_is_proof fk and isrec = funkind_is_recursive fk in // case+ ds of | nil () => nil () | cons (d, ds) => ( f0undec_tr (isprf, isrec, d) :: f0undeclst_tr (fk, ds) ) (* end of [cons] *) // end // end of [f0undeclst_tr] (* ****** ****** *) fn v0ardec_tr ( d: v0ardec ) : v1ardec = let val loc = d.v0ardec_loc val knd = d.v0ardec_knd val pfat = d.v0ardec_pfat // i0deopt val s1eopt = s0expopt_tr (d.v0ardec_type) val d1eopt = d0expopt_tr d.v0ardec_init in // v1ardec_make ( loc, knd, d.v0ardec_sym, d.v0ardec_sym_loc, pfat, s1eopt, d1eopt ) (* end of [v1ardec_make] *) // end // end of [v0ardec_tr] (* ****** ****** *) fn i0mpdec_tr ( d: i0mpdec ) : i1mpdec = let val loc = d.i0mpdec_loc val qid = d.i0mpdec_qid val tmparg = l2l (list_map_fun (qid.impqi0de_arg, t0mpmarg_tr)) val def = d0exp_tr_lams_dyn ( LAMKINDifix , None(*locopt*), None(*fcopt*), 0(*lin*) , d.i0mpdec_arg, d.i0mpdec_res, None(*efcopt*) , d.i0mpdec_def ) // end of [d0exp_lams_dyn_tr] // end of [val] in i1mpdec_make (d.i0mpdec_loc, qid, tmparg, def) end // end of [i0mpdec_tr] (* ****** ****** *) // fun the_ATSRELOC_set_decl (d0c0: d0ecl): void = $GLOB.the_ATSRELOC_set_decl($UN.cast{ptr}(d0c0)) // fun the_ATSRELOC_set_decl_if (d0c0: d0ecl): void = () where { // val srcloc = $GLOB.the_ATSRELOC_get() val () = if srcloc > 0 then the_ATSRELOC_set_decl(d0c0) // } (* end of [the_ATSRELOC_set_decl_if] *) // (* ****** ****** *) extern fun i0nclude_tr ( d0c0: d0ecl , stadyn: int, given: string ) : d1eclist // endfun implement i0nclude_tr ( d0c0, stadyn, given ) = d1cs where { // val loc0 = d0c0.d0ecl_loc // val ((*void*)) = the_ATSRELOC_set_decl_if(d0c0) // var given2: string (* uninitized *) // val opt = $FIL.filenameopt_make_relative(given, given2) // val fil = ( case+ opt of | ~Some_vt (fil) => fil | ~None_vt ((*void*)) => let val srcloc = $GLOB.the_ATSRELOC_get () val () = if ( srcloc = 0 ) then { // val () = prerr_error1_loc (loc0) // (* val () = prerrln! (": the file [", given, "] is not available for inclusion.") *) val () = prerrln! (": the file [", given2, "] is not available for inclusion.") // val () = the_trans1errlst_add(T1E_i0nclude_tr(d0c0)) // (* val () = $ERR.abort{void}((*reachable*)) // HX: it is meaningful to continue *) } (* end of [if] *) // end of [val] in $FIL.filename_dummy end // end of [None_vt] ) : filename // end of [val] // val d0cs = $PAR.parse_from_filename_toplevel2 (stadyn, fil) // val (pfpush | isexi) = $FIL.the_filenamelst_push_check(fil) val () = if isexi then let val () = $LOC.prerr_location(loc0) // end of [val] val () = prerr (": error(0)") val () = prerr (": including the file ["); val () = $FIL.prerr_filename_full (fil) val () = prerr ("] generates the following looping trace:\n") val () = $FIL.fprint_the_filenamelst (stderr_ref) val () = the_trans1errlst_add (T1E_i0nclude_tr (d0c0)) in $ERR.abort{void}((*reachable*)) end // end of [if] // end of [val] val () = $FIL.the_filenamelst_pop(pfpush | (*none*)) // (* val () = println! ("Including [", fil, "] starts.") *) val d1cs = d0eclist_tr (d0cs) (* val () = println! ("Including [", fil, "] finishes.") *) // } // end of [i0nclude_tr] (* ****** ****** *) fun ats_filename_get ((*void*)): string = let // val fil = $FIL.filename_get_current () val fname = $FIL.filename_get_fullname (fil) // in $SYM.symbol_get_name (fname) end // end of [ats_filename_get] (* ****** ****** *) fun ats_packname_get ((*void*)): Stropt = let // val opt = the_e1xpenv_find (ATS_PACKNAME) // in // case+ opt of | ~Some_vt (exp) => ( case+ exp.e1xp_node of | E1XPstring (ns) => stropt_some (ns) | _ => let val () = prerr_warning1_loc (exp.e1xp_loc) val () = prerrln! ": a string definition is required for [ATS_PACKNAME]." in stropt_none (*void*) end // end of [_] ) // end of [Some_vt] | ~None_vt ((*void*)) => stropt_none (*void*) // end // end of [ats_packname_get] (* ****** ****** *) fun ats_packname_get2 ( opt: Stropt, nspace: symbol ) : Stropt = let // val opt2 = ats_packname_get () val issome = stropt_is_some (opt2) // in // if issome then opt2 else let val issome = stropt_is_some (opt) in if issome then let val name = stropt_unsome (opt) val nspace = $SYM.symbol_get_name (nspace) val name = sprintf ("%s%s", @(name, nspace)) val name = string_of_strptr (name) in stropt_some (name) end // end of [then] else let val name = ats_filename_get () val nspace = $SYM.symbol_get_name (nspace) val name = sprintf ("%s%s", @(name, nspace)) val name = string_of_strptr (name) in stropt_some (name) end // end of [else] // end of [if] end // end of [else] // end // end of [ats_packname_get2] (* ****** ****** *) %{^ // static ats_bool_type patsopt_string_suffix_is_dats (ats_ptr_type s0) { char *s = strrchr (s0, '.') ; if (!s) return ats_false_bool ; if (strcmp (s, ".dats") != 0) return ats_false_bool ; return ats_true_bool ; } // end of [patsopt_string_suffix_is_dats] // %} // end of [%{^] extern fun string_suffix_is_dats (s: string): bool = "patsopt_string_suffix_is_dats" // end of [string_suffix_is_dats] (* ****** ****** *) extern fun s0taload_tr ( d0c0: d0ecl , idopt: symbolopt, given: string , ldflag: &int? >> int , filref: &filename? >> filename ) : d1eclist // end of [s0taload_tr] (* ****** ****** *) local fun auxload ( fil: filename, ldflag: &int >> int ) : d1eclist = let // val pname = $FIL.filename_get_partname(fil) // val isdats = string_suffix_is_dats(pname) // val flag = ( if isdats then 1(*dyn*) else 0(*sta*) ) : int // end of [val] // val d0cs = $PAR.parse_from_filename_toplevel2 (flag, fil) // val (pfsave | ()) = the_trans1_env_save() // val (pfpush | ()) = $FIL.the_filenamelst_push(fil) // val d1cs = d0eclist_tr(d0cs) // HX: it is done in [fil] // val ((*void*)) = $FIL.the_filenamelst_pop(pfpush | (*none*)) // val pack = ats_packname_get() // val d1c_pack = d1ecl_packname(pack) // val d1cs = list_cons{d1ecl}(d1c_pack, d1cs) // (* // // HX-2014-06-06: // ATS_STALOADFLAG is no longer in use // val ans = the_e1xpenv_find (ATS_STALOADFLAG) val () = ( case+ ans of | ~Some_vt e1xp => let val v1al = e1xp_valize (e1xp) in if v1al_is_false v1al then ldflag := 0 end // end of [Some_vt] | ~None_vt () => () // the default value ) : void // end of [val] *) // val () = the_trans1_env_restore(pfsave | (*none*)) // val ((*void*)) = staload_file_insert(fil, ldflag, d1cs) // in d1cs end // end of [auxload] in (* in of [local] *) implement s0taload_tr ( d0c0, idopt, given, ldflag, filref ) = let // val loc0 = d0c0.d0ecl_loc // // HX-2014-06-06: // [ldflag] is no longer in use for val () = (ldflag := 0) // ATS_STALOADFLAG // val ((*void*)) = the_ATSRELOC_set_decl_if(d0c0) // var given2: string (* uninitized *) // val opt = $FIL.filenameopt_make_relative(given, given2) // val fil = ( case+ opt of | ~Some_vt(fil) => fil | ~None_vt((*void*)) => let // val srcloc = $GLOB.the_ATSRELOC_get() // val () = if (srcloc = 0) then { // val () = prerr_error1_loc(loc0) // (* val () = prerrln! (": the file [", given, "] is not available for staloading.") *) val () = prerrln! (": the file [", given2, "] is not available for staloading.") // val () = the_trans1errlst_add(T1E_s0taload_tr(d0c0)) // (* val () = $ERR.abort{void}((*reachable*)) // HX: it is meaningful to continue *) } (* end of [if] *) // end of [val] in $FIL.filename_dummy end // end of [None_vt] ) : filename // end of [val] // val (pfpush | isexi) = $FIL.the_filenamelst_push_check(fil) // val ((*void*)) = if isexi then { val () = $LOC.prerr_location (loc0) val () = prerr (": error(0)") val () = prerr (": staloading the file ["); val () = $FIL.prerr_filename_full (fil) val () = prerr ("] generates the following looping trace:\n") val () = $FIL.fprint_the_filenamelst (stderr_ref) val () = the_trans1errlst_add (T1E_s0taload_tr (d0c0)) val () = $ERR.abort{void}((*reachable*)) } (* end of [if] *) // end of [val] // val ((*void*)) = $FIL.the_filenamelst_pop(pfpush | (*none*)) // val () = filref := fil // val opt = staload_file_search(fil) // in // case+ opt of | ~Some_vt ( flagd1cs ) => flagd1cs.1 where { val () = ldflag := flagd1cs.0 (* val () = println! ("The file [", fil, " is already loaded.") *) } (* end of [Some_vt] *) | ~None_vt() => auxload (fil, ldflag) // end // end of [s0taload_tr] end // end of [local] (* ****** ****** *) extern fun r0equire_tr (d0c0: d0ecl, given: string): filename // end of [r0equire_tr] extern fun r0equire_tr_if (d0c0: d0ecl, given: string): filename // end of [r0equire_tr_if] implement r0equire_tr (d0c0, given) = let // val srcloc = $GLOB.the_ATSRELOC_get () // in // if srcloc > 0 then r0equire_tr_if(d0c0, given) else $FIL.filename_dummy // end // end of [r0equire_tr] implement r0equire_tr_if (d0c0, given) = let // val loc0 = d0c0.d0ecl_loc // val ((*void*)) = the_ATSRELOC_set_decl(d0c0) // var given2: string (* uninitized *) // val filopt = $FIL.filenameopt_make_relative(given, given2) // val dbgflag = $GLOB.the_DEBUGATS_dbgflag_get((*void*)) val ((*void*)) = ( // // HX: generating debugging information // if (dbgflag > 0) then ( prerr_error1_loc(loc0); prerrln! (": the file [", given2, "] is required.") ) (* end of [if] *) // ) (* end of [val] *) // in // case+ filopt of | ~Some_vt(fil) => fil | ~None_vt((*void*)) => $FIL.filename_dummy(*void*) // end // end of [r0equire_tr_if] (* ****** ****** *) extern fun d0ynload_tr (d0c0: d0ecl, given: string): filename // end of [d0ynload_tr] implement d0ynload_tr (d0c0, given) = let // val loc0 = d0c0.d0ecl_loc // val ((*void*)) = the_ATSRELOC_set_decl_if(d0c0) // var given2: string (* uninitized *) // val opt = $FIL.filenameopt_make_relative(given, given2) // in // case+ opt of | ~Some_vt (fil) => fil | ~None_vt ((*void*)) => let // val srcloc = $GLOB.the_ATSRELOC_get () // val () = if srcloc = 0 then { // val () = prerr_error1_loc (loc0) // (* val () = prerrln! (": the file [", given, "] is not available for dynloading") *) val () = prerrln! (": the file [", given2, "] is not available for dynloading") // val () = the_trans1errlst_add(T1E_d0ynload_tr(d0c0)) // (* val () = $ERR.abort{void}((*reachable*)) // HX: it is meaningful to continue *) } (* end of [if] *) // end of [val] in $FIL.filename_dummy end // end of [None_vt] // end // end of [d0ynload_tr] (* ****** ****** *) fun guad0ecl_tr ( knd: srpifkind, gd: guad0ecl ) : d1eclist = let fun loop ( knd: srpifkind, gdn: guad0ecl_node ) : d1eclist = case+ gdn of | GD0Cone (e0xp, d0cs) => let val v1al = e1xp_valize_if (knd, e0xp_tr e0xp) in if v1al_is_true (v1al) then d0eclist_tr d0cs else list_nil () end // end of [GD0Cone] | GD0Ctwo ( e0xp, d0cs_then, d0cs_else ) => let val v1al = e1xp_valize_if (knd, e0xp_tr e0xp) in if v1al_is_true v1al then d0eclist_tr d0cs_then else d0eclist_tr d0cs_else // end of [if] end // end of [GD0Ctwo] | GD0Ccons ( e0xp, d0cs_then, knd_elif, gdn_else ) => let val v1al = e1xp_valize_if (knd, e0xp_tr e0xp) in if v1al_is_true v1al then d0eclist_tr d0cs_then else loop (knd_elif, gdn_else) // end of [if] end // end of [GD0Ccons] // end of [loop] in loop (knd, gd.guad0ecl_node) end // end of [guad0ecl_tr] (* ****** ****** *) implement d0ecl_tr (d0c0) = let // val loc0 = d0c0.d0ecl_loc (* val () = ( print "d0ecl_tr: loc0 = "; $LOC.print_location (loc0); print_newline () ) (* end of [val] *) *) in // case+ d0c0.d0ecl_node of // | D0Cfixity (f0xty, ids) => ( d0ecl_fixity_tr (f0xty, ids); d1ecl_none (loc0) ) // end of [D0Cfixity] | D0Cnonfix (ids) => let val () = d0ecl_nonfix_tr (ids) in d1ecl_none (loc0) end // end of [D0Cnonfix] // | D0Csymintr (ids) => d1ecl_symintr (loc0, ids) | D0Csymelim (ids) => d1ecl_symelim (loc0, ids) // | D0Coverload (id, qid, pval) => d1ecl_overload (loc0, id, qid, pval) // end of [D0Coverload] // | D0Ce0xpdef (id, def) => let val def = ( case+ def of | Some e0xp => e0xp_tr e0xp | None () => e1xp_none (loc0) ) : e1xp // end of [val] val () = the_e1xpenv_add (id, def) in // // HX-2011-04-27: [def] should not be normalized d1ecl_e1xpdef (loc0, id, def) // as dynamic-binding is assumed. end // end of [D0Ce0xpdef] | D0Ce0xpundef (id) => let val def = e1xp_undef (loc0) val ((*void*)) = the_e1xpenv_add (id, def) in d1ecl_e1xpundef (loc0, id, def) end // end of [D0Ce0xpundef] // | D0Ce0xpact (knd, e0xp) => let val e1xp = e0xp_tr (e0xp) (* val () = println! ("d0ecl_tr: D0Ce0xpact: e1xp = ", e1xp) // end of [val] *) val v1al = e1xp_valize (e1xp) val () = ( case+ knd of | E0XPACTerror() => do_e0xpact_error(e0xp.e0xp_loc, v1al) // end of [E0XPACTerror] | E0XPACTprerr() => do_e0xpact_prerr(v1al) | E0XPACTprint() => do_e0xpact_print(v1al) | E0XPACTassert() => do_e0xpact_assert (e0xp.e0xp_loc, v1al) // end of [E0XPACTassert] ) : void // end of [val] in d1ecl_none (loc0) end // end of [D0Ce0xpact] // | D0Cpragma (e0xps) => let val e1xps = e0xplst_tr(e0xps) in d1ecl_pragma(loc0, e1xps) end // end of [D0Cpragma] | D0Ccodegen (knd, e0xps) => let val e1xps = e0xplst_tr(e0xps) in d1ecl_codegen(loc0, knd, e1xps) end // end of [D0Ccodegen] // | D0Cdatsrts (d0cs) => let val d1cs = list_map_fun (d0cs, d0atsrtdec_tr) // end of [val] in d1ecl_datsrts (loc0, l2l(d1cs)) end // end of [D0Cdatsrts] | D0Csrtdefs (d0cs) => let val d1cs = list_map_fun(d0cs, s0rtdef_tr) in d1ecl_srtdefs (loc0, l2l(d1cs)) end // end of [D0Csrtdefs] // | D0Cstacsts (d0cs) => let val d1cs = list_map_fun(d0cs, s0tacst_tr) in d1ecl_stacsts (loc0, l2l(d1cs)) end // end of [D0Cstacsts] | D0Cstacons (knd, d0cs) => let val d1cs = list_map_fun(d0cs, s0tacon_tr) in d1ecl_stacons (loc0, knd, l2l(d1cs)) end // end of [D0Cstacons] (* | D0Cstavars (d0cs) => let val d1cs = list_map_fun(d0cs, s0tavar_tr) in d1ecl_stavars (loc0, l2l(d1cs)) end // end of [D0Cstavars] *) // | D0Ctkindef (d0c) => d1ecl_tkindef (loc0, t0kindef_tr d0c) | D0Csexpdefs (knd, d0cs) => let val d1cs = list_map_fun(d0cs, s0expdef_tr) in d1ecl_sexpdefs (loc0, knd, l2l(d1cs)) end // end of [D0Csexpdefs] // | D0Csaspdec(d0c) => d1ecl_saspdec(loc0, s0aspdec_tr (d0c)) // end of [D0Csaspdec] // | D0Creassume(qid) => d1ecl_reassume(loc0, qid) // | D0Cexndecs(d0cs) => let val d1cs = list_map_fun(d0cs, e0xndec_tr) in d1ecl_exndecs(loc0, l2l(d1cs)) end // end of [D0Cexndecs] | D0Cdatdecs(knd, d0cs1, d0cs2) => let val d1cs1 = list_map_fun(d0cs1, d0atdec_tr) val d1cs2 = list_map_fun(d0cs2, s0expdef_tr) in d1ecl_datdecs(loc0, knd, l2l(d1cs1), l2l(d1cs2)) end // end of [D0Cdatdecs] // | D0Cclassdec (id, sup) => let val sup = s0expopt_tr (sup) in d1ecl_classdec (loc0, id, sup) end // end of [D0Cclassdec] // | D0Cextype (name, def) => let val def = s0exp_tr (def) in d1ecl_extype (loc0, name, def) end // end of [D0Cextype] | D0Cextype (knd, name, def) => let val def = s0exp_tr (def) in d1ecl_extype2 (loc0, knd, name, def) end // end of [D0Cextype] | D0Cextvar (name, def) => let val def = d0exp_tr (def) in d1ecl_extvar (loc0, name, def) end // end of [D0Cextvar] | D0Cextcode (knd, pos, code) => d1ecl_extcode (loc0, knd, pos, code) // | D0Cdcstdecs ( knd, tok, qarg, d0cs // knd: 0/1: static/dynamic ) => let // val dck = token_get_dcstkind(tok) // end of [val] // val isfun = dcstkind_is_fun(dck) and isprf = dcstkind_is_proof(dck) // val qarg = q0marglst_tr(qarg) val d1cs = d0cstdeclst_tr(isfun, isprf, d0cs) in d1ecl_dcstdecs(loc0, knd, dck, qarg, d1cs) end // end of [D0Cdcstdecs] // | D0Cmacdefs (knd, isrec, d0cs) => let // knd: 0/1 => short/long val d1cs = list_map_fun (d0cs, m0acdef_tr) in d1ecl_macdefs (loc0, knd, isrec, l2l(d1cs)) end // end of [D0Cmacdefs] // | D0Cfundecs (knd, qarg, d0cs) => let val qarg = q0marglst_tr (qarg) val d1cs = f0undeclst_tr (knd, d0cs) in d1ecl_fundecs (loc0, knd, qarg, d1cs) end // end of [D0Cfundecs] | D0Cvaldecs (knd, isrec, d0cs) => let val d1cs = list_map_fun (d0cs, v0aldec_tr) in d1ecl_valdecs (loc0, knd, isrec, l2l(d1cs)) end // end of [D0Cvaldecs] | D0Cvardecs (knd, d0cs) => let val d1cs = list_map_fun (d0cs, v0ardec_tr) in d1ecl_vardecs (loc0, knd, l2l(d1cs)) end // end of [D0Cvardecs] // | D0Cimpdec (knd, i0mparg, d0c) => let val i1mparg = i0mparg_tr (i0mparg) in d1ecl_impdec (loc0, knd, i1mparg, i0mpdec_tr d0c) end (* end of [D0Cimpdec] *) // | D0Cinclude (pfil, stadyn, given) => let // val (pfpush | ()) = $FIL.the_filenamelst_push(pfil) // val d1cs = i0nclude_tr(d0c0, stadyn, given) // val ((*void*)) = $FIL.the_filenamelst_pop(pfpush | (*none*)) // end of [val] // in d1ecl_include(loc0, stadyn, d1cs) end // end of [D0Cinclude] // | D0Cstaload ( pfil, idopt, given ) => let // var ldflag: int // unitialized var fil: filename // unitialized // val (pfpush | ()) = $FIL.the_filenamelst_push(pfil) // val d1cs = s0taload_tr(d0c0, idopt, given, ldflag, fil) // val ((*void*)) = $FIL.the_filenamelst_pop(pfpush | (*none*)) // end of [val] // in d1ecl_staload(loc0, idopt, fil, ldflag, d1cs) end // end of [D0Cstaload] // | D0Cstaloadnm (pfil, name, nspace) => d1ecl_staloadnm(loc0, name(*=alias*), nspace) // end of [D0Cstaloadnm] // | D0Cstaloadloc ( pfil, nspace, d0cs ) => let // val opt = ats_packname_get() // val (pfsave | ()) = the_trans1_env_save((*void*)) // val d1cs = d0eclist_tr(d0cs) // HX: done in [pfil] // val pack = ats_packname_get2(opt, nspace) // end of [val] // // HX: [d1c_pack]: treated as a special decl // val d1c_pack = d1ecl_packname(pack) val d1cs_new = list_cons(d1c_pack, d1cs) // val ((*void*)) = the_trans1_env_restore(pfsave | (*none*)) // end of [val] in d1ecl_staloadloc(loc0, pfil, nspace, d1cs_new) end // end of [D0Cstaloadloc] // | D0Crequire (pfil, given) => let val cfil = r0equire_tr(d0c0, given) in d1ecl_none(loc0) // end of [val] end // end of [D0Crequire] // | D0Cdynload (pfil, given) => d1ecl_dynload(loc0, cfil) where { // val (pfpush | ()) = $FIL.the_filenamelst_push(pfil) // val cfil = d0ynload_tr (d0c0, given) // val ((*void*)) = $FIL.the_filenamelst_pop(pfpush | (*none*)) // end of [val] // } (* end of [D0Cdynload] *) // | D0Clocal ( d0cs_head, d0cs_body ) => let val (pfenv1 | ()) = the_trans1_env_push () val d1cs_head = d0eclist_tr (d0cs_head) val (pfenv2 | ()) = the_trans1_env_push ((*none*)) val d1cs_body = d0eclist_tr (d0cs_body) val () = the_trans1_env_localjoin (pfenv1, pfenv2 | (*none*)) in d1ecl_local (d0c0.d0ecl_loc, d1cs_head, d1cs_body) end // end of [D0Clocal] // | D0Cguadecl (knd, gd0c) => let val d1cs = guad0ecl_tr (knd, gd0c) in d1ecl_list (loc0, d1cs) end (* end of [D0Cguadecl] *) // (* | _ => let val () = $LOC.prerr_location (loc0) val () = fprintln! (stderr_ref, ": Not yet implemented: d0ecl_tr: d0c0 = ", d0c0) in d1ecl_none (loc0) end // end of [_] *) // end // end of [d0ecl_tr] implement d0eclist_tr (d0cs) = list_of_list_vt (list_map_fun (d0cs, d0ecl_tr)) // end of [d0eclist_tr] (* ****** ****** *) implement d0eclist_tr_errck (d0cs) = d1cs where { // val d1cs = d0eclist_tr (d0cs) // val opt = ats_packname_get () val isnone = stropt_is_none (opt) // val d1cs = ( // // HX-2013-06: // for [PACKNAME] to be set externally // if isnone then d1cs else let val d1c_pack = d1ecl_packname (opt) // end of [val] in list_cons (d1c_pack, d1cs) end // end of [else] // end of [if] ) : d1eclist // end of [val] // val () = the_trans1errlst_finalize() // } // end of [d0eclist_tr_errck] (* ****** ****** *) local fun intrep2int (rep: string): int = let // val x = $UT.llint_make_string(rep) in int_of_llint(x) // end // end of [intrep2int] fun aux_dynloadflag(): void = let val opt = the_e1xpenv_find( ATS_DYNLOADFLAG ) in // case+ opt of | ~Some_vt(e) => ( case+ e.e1xp_node of | E1XPint(x) => $GLOB.the_DYNLOADFLAG_set(x) | E1XPintrep(rep) => $GLOB.the_DYNLOADFLAG_set(intrep2int(rep)) | _ (*rest-of-e1xp*) => let val () = prerr_error1_loc(e.e1xp_loc) val () = prerrln! (": non-integer definition for [ATS_DYNLOADFLAG].") in $ERR.abort{void}((*reachable*)) // HX: is it meaningful to continue? end // end of [_] ) (* end of [Some_vt] *) // // HX: [ATS_DYNLOADFLAG] is set to 1 by default // | ~None_vt((*void*)) => () // end // end of [aux_dynloadflag] fun aux_dynloadname ( ) : void = let // val opt = the_e1xpenv_find(ATS_DYNLOADNAME) // in // case+ opt of | ~Some_vt(e) => ( case+ e.e1xp_node of | E1XPstring(x) => $GLOB.the_DYNLOADNAME_set_name(x) | _ (*non-E1XPstring*) => let val () = prerr_error1_loc( e.e1xp_loc ) val () = prerrln!(": non-string definition for [ATS_DYNLOADNAME].") in $ERR.abort{void}((*reachable*)) // HX: is it meaningful to continue? end // end of [_] ) (* end of [Some_vt] *) // // HX: the [ATS_DYNLOADNAME] is set to stropt_none // | ~None_vt((*void*)) => () // end // end of [aux_dynloadname] fun aux_mainatsflag ( // argless ) : void = let // val opt = the_e1xpenv_find(ATS_MAINATSFLAG) // in // case+ opt of | ~Some_vt(e) => ( case+ e.e1xp_node of | E1XPint(x) => $GLOB.the_MAINATSFLAG_set (x) | E1XPintrep(rep) => $GLOB.the_MAINATSFLAG_set (intrep2int(rep)) | _ (* rest-of-e1xp *)=> let val () = prerr_error1_loc(e.e1xp_loc) val () = prerrln! (": non-integer definition for [ATS_MAINATSFLAG].") in $ERR.abort{void}((*reachable*)) // HX: is it meaningful to continue? end // end of [_] ) (* end of [Some_vt] *) // // HX: the [ATS_MAINATSFLAG] is set to 0 by default // | ~None_vt ((*void*)) => () // end // end of [aux_mainatsflag] fun aux_static_prefix ( // argless ) : void = let val opt = the_e1xpenv_find(ATS_STATIC_PREFIX) in // case+ opt of | ~Some_vt(e) => ( case+ e.e1xp_node of | E1XPstring(x) => $GLOB.the_STATIC_PREFIX_set_name(x) | _ (* non-E1XPstring *) => let val () = prerr_error1_loc( e.e1xp_loc ) val () = prerrln!(": non-string definition for [ATS_STATIC_PREFIX].") in $ERR.abort{void}((*reachable*)) // HX: is it meaningful to continue? end // end of [_] ) (* end of [Some_vt] *) // // HX: the [ATS_STATIC_PREFIX] is set to stropt_none // | ~None_vt((*void*)) => () // end // end of [aux_static_prefix] in (* in of [local] *) implement trans1_finalize() = { // val () = aux_dynloadflag() val () = aux_dynloadname() val () = aux_mainatsflag() val () = aux_static_prefix() // val () = $FIL.the_filenamelst_ppop((*void*)) // } (* end of [trans1_finalize] *) end // end of [local] (* ****** ****** *) %{$ ats_bool_type patsopt_extnam_ismac ( ats_ptr_type ext, ats_ptr_type ext_new ) { int sgn ; char* p ; int len ; // sgn = strncmp((char*)ext, "mac#", 4) ; // if (sgn == 0) { p = strchr ((char*)ext, '#') ; len = strlen (p) ; *(char**)ext_new = (char*)atspre_string_make_substring(p, 1, len-1) ; return ats_true_bool ; } // end of [if] return ats_false_bool ; } // end of [patsopt_extnam_ismac] ats_bool_type patsopt_extnam_issta ( ats_ptr_type ext, ats_ptr_type ext_new ) { int sgn ; char* p ; int len ; sgn = strncmp((char*)ext, "sta#", 4) ; if (sgn == 0) { p = strchr ((char*)ext, '#') ; len = strlen (p) ; *(char**)ext_new = (char*)atspre_string_make_substring(p, 1, len-1) ; return ats_true_bool ; } // end of [if] return ats_false_bool ; } // end of [patsopt_extnam_issta] ats_bool_type patsopt_extnam_isext ( ats_ptr_type ext, ats_ptr_type ext_new ) { int sgn ; char* p ; int len ; sgn = strncmp((char*)ext, "ext#", 4) ; if (sgn == 0) { p = strchr ((char*)ext, '#') ; len = strlen (p) ; *(char**)ext_new = (char*)atspre_string_make_substring(p, 1, len-1) ; return ats_true_bool ; } // end of [if] return ats_false_bool ; } // end of [patsopt_extnam_isext] %} // end of [%{$] (* ****** ****** *) (* end of [pats_trans1_decl.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_histaexp_print.dats0000644000175000017500000001232213431250607022416 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LAB = "./pats_label.sats" staload SYM = "./pats_symbol.sats" (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) staload "./pats_histaexp.sats" (* ****** ****** *) extern fun fprint_labhisexp : fprint_type (labhisexp) (* ****** ****** *) implement fprint_hisexp (out, hse) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ hse.hisexp_node of // | HSEfun ( fc, _arg, _res ) => { val () = prstr "HSEfun(" val () = fprint_funclo(out, fc) val () = prstr "; " val () = fprint_hisexplst(out, _arg) val () = prstr "; " val () = fprint_hisexp(out, _res) val () = prstr ")" } // end of [HSEfun] // | HSEcst (s2c) => { val () = prstr "HSEcst(" val () = fprint_s2cst (out, s2c) val () = prstr ")" } | HSEapp (_fun, _arg) => { val () = prstr "HSEapp(" val () = fprint_hisexp (out, _fun) val () = prstr "; " val () = fprint_hisexplst (out, _arg) val () = prstr ")" } // end of [HSEapp] // | HSEextype (name, hsess) => { val () = prstr "HSEextype(" val () = $UT.fprintlst (out, hsess, "; ", fprint_hisexplst) val () = prstr ")" } // end of [HSEextype] // | HSErefarg (refval, hse) => { val () = prstr "HSErefarg(" val () = fprint_int (out, refval) val () = prstr "; " val () = fprint_hisexp (out, hse) val () = prstr ")" } // end of [HSErefarg] // | HSEtyabs (sym) => { val () = prstr "HSEtyabs(" val () = $SYM.fprint_symbol (out, sym) val () = prstr ")" } // end of [HSEtyabs] | HSEtybox () => { val () = prstr "HSEtybox()" } // end of [HSEtybox] // | HSEtyarr (hse, dim) => { val () = prstr "HSEtyarr(" val () = fprint_hisexp (out, hse) val () = prstr "; " val () = fpprint_s2explst (out, dim) val () = prstr ")" } // end of [HSEtyarr] // | HSEtyrec (recknd, lhses) => { val () = prstr "HSEtyrec(" val () = fprint_tyreckind (out, recknd) val () = prstr "; " val () = $UT.fprintlst (out, lhses, ", ", fprint_labhisexp) val () = prstr ")" } // end of [HSEtyrec] | HSEtyrecsin (hse) => { val () = prstr "HSEtyrecsin(" val () = fprint_labhisexp (out, hse) val () = prstr ")" } // | HSEtysum (d2c, lhses) => { val () = prstr "HSEtysum(" val () = fprint_d2con (out, d2c) val () = prstr "; " val () = $UT.fprintlst (out, lhses, ", ", fprint_labhisexp) val () = prstr ")" } // end of [HSEtysum] // | HSEtyvar (s2v) => { val () = prstr "HSEtyvar(" val () = fprint_s2var (out, s2v) val () = prstr ")" } // | HSEtyclo (flab) => { val () = prstr "HSEtyclo(" val () = fprint_funlab (out, flab) val () = prstr ")" } // end of [HSEtyclo] // | HSEvararg (s2e) => { val () = prstr "HSEvararg(" val () = fpprint_s2exp (out, s2e) val () = prstr ")" } // | HSEs2exp (s2e) => { val () = prstr "HSEs2exp(" val () = fpprint_s2exp (out, s2e) val () = prstr ")" } // | HSEs2zexp (s2ze) => { val () = prstr "HSEs2zexp(" val () = fprint_s2zexp (out, s2ze) val () = prstr ")" } // (* | _ => { val () = prstr "HSE...(...)" } *) // end // end of [fprint_hisexp] (* ****** ****** *) implement print_hisexp (pmv) = fprint_hisexp (stdout_ref, pmv) implement prerr_hisexp (pmv) = fprint_hisexp (stderr_ref, pmv) (* ****** ****** *) implement fprint_labhisexp (out, lx) = let val HSLABELED (l, _, x) = lx val () = $LAB.fprint_label (out, l) val () = fprint_string (out, "=") val () = fprint_hisexp (out, x) in // nothing end // end of [fprint_labhisexp] (* ****** ****** *) implement fprint_hisexplst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_hisexp) // end of [fprint_hisexplst] (* ****** ****** *) (* end of [pats_histaexp_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_symbol.sats0000644000175000017500000001260513431250607020705 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) abstype symbol_type // boxed typedef symbol = symbol_type typedef symbolist = List (symbol) typedef symbolopt = Option (symbol) (* ****** ****** *) val symbol_empty : symbol (* ****** ****** *) // val symbol_NEG : symbol // ~ // val symbol_ADD : symbol // + val symbol_SUB : symbol // - val symbol_MUL : symbol // * val symbol_DIV : symbol // / // val symbol_AMPERSAND : symbol // & // read-only val symbol_AMPERBANG : symbol // &! // read-write val symbol_AMPERQMARK : symbol // &? // write-only // val symbol_AT : symbol // @ val symbol_BACKSLASH : symbol // \ val symbol_BANG : symbol // ! val symbol_COLONEQ : symbol // := // assign val symbol_COLONEQCOLON : symbol // :=: // exhange // val symbol_GT : symbol // > val symbol_GTEQ : symbol // >= val symbol_LT : symbol // < val symbol_LTEQ : symbol // <= // val symbol_EQ : symbol // = val symbol_EQEQ : symbol // == val symbol_LTGT : symbol // <> val symbol_BANGEQ : symbol // != // val symbol_GTLT : symbol // >< // val symbol_GTGT : symbol // >> val symbol_LTLT : symbol // << // val symbol_LAND : symbol // && val symbol_LOR : symbol // || val symbol_LRBRACKETS : symbol // [] val symbol_MINUSGT : symbol // -> val symbol_QMARK : symbol // ? val symbol_QMARKBANG : symbol // ?! val symbol_TILDE : symbol // ~ val symbol_UNDERSCORE : symbol // _ // val symbol_VBOX : symbol // for vbox pattern // val symbol_LAMAT : symbol // lam@ val symbol_LLAMAT : symbol // llam@ (* // // YD-2018-07-07: // 'ref@' is removed since 2015-12-10 // val symbol_REFAT : symbol // ref@ *) // (* ****** ****** *) // // HX: for pre-defined predicative sorts // val symbol_INT : symbol val symbol_BOOL : symbol val symbol_ADDR : symbol // (* val symbol_CHAR : symbol *) // val symbol_REAL : symbol // val symbol_FLOAT : symbol val symbol_STRING : symbol // val symbol_CLS : symbol // for nominal classes // val symbol_EFF : symbol // for sets of effects // val symbol_TKIND : symbol // HX-2012-05-23: for template args // // HX: for pre-defined impredicative sorts // val symbol_PROP : symbol val symbol_TYPE : symbol val symbol_T0YPE : symbol val symbol_VIEW : symbol val symbol_VTYPE : symbol val symbol_VT0YPE : symbol val symbol_VIEWTYPE : symbol val symbol_VIEWT0YPE : symbol // val symbol_TYPES : symbol // (* ****** ****** *) val symbol_TRUE_BOOL : symbol and symbol_FALSE_BOOL : symbol (* ****** ****** *) val symbol_DEFINED : symbol // defined val symbol_UNDEFINED : symbol // undefined (* ****** ****** *) val symbol_TUPZ : symbol // TUPSIZE // for syndef (* ****** ****** *) val symbol_CAR : symbol // car val symbol_CDR : symbol // mfcdr val symbol_ISLIST : symbol // islist val symbol_ISCONS : symbol // iscons val symbol_ISNIL : symbol // islist (* ****** ****** *) // val symbol__STDIN__ : symbol val symbol__STRING__ : symbol // (* ****** ****** *) // val symbol_PATSHOME : symbol // val symbol_PATSCONTRIB : symbol // val symbol_PATSHOMELOCS : symbol // val symbol_PATSRELOCROOT : symbol // (* ****** ****** *) // val symbol_ATS_PACKNAME : symbol // (* // // HX-2014-06-06: // this one is no longer in use // val symbol_ATS_STALOADFLAG : symbol *) val symbol_ATS_DYNLOADFLAG : symbol // val symbol_ATS_DYNLOADNAME : symbol // val symbol_ATS_MAINATSFLAG : symbol // val symbol_ATS_EXTERN_PREFIX : symbol val symbol_ATS_STATIC_PREFIX : symbol // (* ****** ****** *) // fun eq_symbol_symbol (x1: symbol, x2: symbol):<> bool fun neq_symbol_symbol (x1: symbol, x2: symbol):<> bool fun compare_symbol_symbol (x1: symbol, x2: symbol):<> Sgn // overload = with eq_symbol_symbol overload != with eq_symbol_symbol overload compare with compare_symbol_symbol // (* ****** ****** *) // fun print_symbol (x: symbol): void fun prerr_symbol (x: symbol): void // overload print with print_symbol overload prerr with prerr_symbol // fun fprint_symbol (out: FILEref, x: symbol): void fun fprint_symbolopt (out: FILEref, opt: symbolopt): void // (* ****** ****** *) fun symbol_get_name (x: symbol):<> string fun symbol_get_stamp (x: symbol):<> uint (* ****** ****** *) fun symbol_make_string (name: string): symbol (* ****** ****** *) (* end of [pats_symbol.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_hipat.dats0000644000175000017500000004701613431250607021653 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload UT = "./pats_utils.sats" // (* ****** ****** *) // staload LAB = "./pats_label.sats" staload LOC = "./pats_location.sats" // overload print with $LOC.print_location // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) fun hipat_getset_asvar (hip: hipat): d2var = let in // case+ hip.hipat_asvar of | Some (d2v) => (d2v) | None () => let val loc = hip.hipat_loc val d2v = d2var_make_any (loc) val () = hipat_set_asvar (hip, Some (d2v)) in d2v end // end of [None] // end // end of [hipat_getset_asvar] (* ****** ****** *) extern fun hipatck_ccomp_rec ( env: !ccompenv, res: !instrseq , fail: patckont, hip0: hipat, pmv0: primval ) : void // end of [hipatck_ccomp_rec] local fun aux ( env: !ccompenv , res: !instrseq , fail: patckont , lab: label, hip: hipat , pmv0: primval, hse_rec: hisexp ) : void = let // in // case+ hip.hipat_node of (* case+ *) | HIPany _ => () | HIPvar _ => () | HIPann (hip, ann) => aux (env, res, fail, lab, hip, pmv0, hse_rec) // end of [HIPann] // | hipnode => let val loc = hip.hipat_loc val hse = hipat_get_type (hip) val pml = primlab_lab (loc, lab) val tmp = tmpvar_make (loc, hse) val ins = instr_move_select (loc, tmp, hse, pmv0, hse_rec, pml) val pmv = primval_make_tmp (loc, tmp) // val d2v_as = hipat_getset_asvar (hip) val () = ccompenv_add_vbindmapenvall (env, d2v_as, pmv) // val () = instrseq_add (res, ins) // in hipatck_ccomp (env, res, fail, hip, pmv) end // end of [_] // end // end of [aux] fun auxlst ( env: !ccompenv , res: !instrseq , fail: patckont , lhips: labhipatlst , pmv0: primval, hse_rec: hisexp ) : void = let in // case+ lhips of | list_cons (lhip, lhips) => let val+LABHIPAT (lab, hip) = lhip val () = aux (env, res, fail, lab, hip, pmv0, hse_rec) // end of [val] in auxlst (env, res, fail, lhips, pmv0, hse_rec) end // end of [list_cons] | list_nil () => () // end // end of [auxlst] in (* in of [local] *) implement hipatck_ccomp_rec ( env, res, fail, hip0, pmv0 ) = let // val-HIPrec (knd, pck, lhips, hse_rec) = hip0.hipat_node // in auxlst(env, res, fail, lhips, pmv0, hse_rec) end // end of [hipatck_ccomp_rec] end // end of [local] (* ****** ****** *) // extern fun hipatck_ccomp_con ( env: !ccompenv, res: !instrseq , fail: patckont, loc0: location, d2c: d2con, pmv0: primval ) : void // end of [hipatck_ccomp_con] // implement hipatck_ccomp_con ( env, res, fail, loc0, d2c, pmv0 ) = let // (* val () = println! ("hipatck_ccomp_con: d2c = ", d2c) *) // val ins = instr_patck(loc0, pmv0, PATCKcon(d2c), fail) // in instrseq_add(res, ins) end // end of [hipatck_ccomp_con] // (* ****** ****** *) extern fun hipatck_ccomp_sum ( env: !ccompenv, res: !instrseq , fail: patckont, hip0: hipat, pmv0: primval ) : void // end of [hipatck_ccomp_sum] local fun aux ( env: !ccompenv , res: !instrseq , fail: patckont , narg: int , lab: label, hip: hipat , pmv0: primval, hse_sum: hisexp ) : void = let // val loc = hip.hipat_node // in // case+ hip.hipat_node of (* case+ *) | HIPany _ => () | HIPvar _ => () | HIPann(hip, ann) => aux (env, res, fail, narg, lab, hip, pmv0, hse_sum) // end of [HIPann] | hipnode => let val loc = hip.hipat_loc val hse = hipat_get_type (hip) val tmp = tmpvar_make (loc, hse) val ins = instr_move_selcon (loc, tmp, hse, pmv0, hse_sum, lab) val pmv = primval_make_tmp (loc, tmp) var use: int = 0 // val hip = ( case+ hipnode of | HIPrefas (d2v, hip) => hip where { val isnot = not(d2var_is_mutabl(d2v)) val ((*void*)) = ( if isnot then let val () = use := use + 1 in ccompenv_add_vbindmapenvall(env, d2v, pmv) end else let val pmv = primval_selcon(loc, hse, pmv0, hse_sum, lab) val pmv_ref = primval_ptrof(loc, hisexp_typtr, pmv) in ccompenv_add_vbindmapenvall(env, d2v, pmv_ref) end // end of [if] ) : void // end of [val] } (* end of [HIPrefas] *) | _ => hip ) : hipat // end of [val] // val () = ( case+ hip.hipat_node of | HIPany _ => () | HIPvar _ => () | HIPrefas _ => () | _ => { val () = use := use + 1 val d2v_as = hipat_getset_asvar (hip) val () = ccompenv_add_vbindmapenvall (env, d2v_as, pmv) } (* end of [_] *) ) : void // end of [val] // val () = if use >= 1 then instrseq_add (res, ins) // in hipatck_ccomp (env, res, fail, hip, pmv) end // end of [_] // end // end of [aux] fun auxlst ( env: !ccompenv , res: !instrseq , fail: patckont , narg: int, lhips: labhipatlst , pmv0: primval, hse_sum: hisexp ) : void = let in case+ lhips of | list_cons (lhip, lhips) => let val+LABHIPAT(lab, hip) = lhip val () = aux(env, res, fail, narg, lab, hip, pmv0, hse_sum) // end of [val] in auxlst(env, res, fail, narg+1, lhips, pmv0, hse_sum) end // end of [list_cons] | list_nil((*void*)) => () end // end of [auxlst] in (* in of [local] *) implement hipatck_ccomp_sum ( env, res, fail, hip0, pmv0 ) = let // val loc0 = hip0.hipat_loc // (* val () = ( println! ("hipatck_ccomp_sum: loc0 = ", loc0); println! ("hipatck_ccomp_sum: hip0 = ", hip0); ) // end of [val] *) // val-HIPcon (pck, d2c, hse_sum, lhips) = hip0.hipat_node val () = hipatck_ccomp_con(env, res, fail, loc0, d2c, pmv0) // in auxlst(env, res, fail, 0(*narg*), lhips, pmv0, hse_sum) end // end of [hipatck_ccomp_sum] end // end of [local] (* ****** ****** *) implement hipatck_ccomp ( env, res, fail, hip0, pmv0 ) = let // val loc0 = hip0.hipat_loc // (* val () = ( println! ("hipatck_ccomp: loc0 = ", loc0); println! ("hipatck_ccomp: hip0 = ", hip0); println! ("hipatck_ccomp: pmv0 = ", pmv0); ) // end of [val] *) // in // case+ hip0.hipat_node of (* case+ *) // | HIPany _ => () | HIPvar _ => () // | HIPcon _ => hipatck_ccomp_sum(env, res, fail, hip0, pmv0) // | HIPcon_any(pck, d2c) => hipatck_ccomp_con(env, res, fail, loc0, d2c, pmv0) // | HIPint(i) => instrseq_add(res, ins) where { val ins = instr_patck (loc0, pmv0, PATCKint (i), fail) // end of [val] } (* end of [HIPint] *) | HIPintrep(rep) => instrseq_add(res, ins) where { val i = $UN.cast{int}($UT.llint_make_string(rep)) val ins = instr_patck(loc0, pmv0, PATCKint (i), fail) } (* end of [HIPintrep] *) // | HIPbool(b) => instrseq_add(res, ins) where { val ins = instr_patck(loc0, pmv0, PATCKbool(b), fail) // end of [val] } (* end of [HIPbool] *) | HIPchar(c) => instrseq_add(res, ins) where { val ins = instr_patck(loc0, pmv0, PATCKchar(c), fail) } (* end of [HIPchar] *) | HIPstring(str) => instrseq_add(res, ins) where { val ins = instr_patck (loc0, pmv0, PATCKstring(str), fail) // end of [val] } (* end of [HIPstring] *) // | HIPi0nt(tok) => instrseq_add (res, ins) where { val ins = instr_patck (loc0, pmv0, PATCKi0nt (tok), fail) // end of [val] } (* end of [HIPi0nt] *) | HIPf0loat(tok) => instrseq_add(res, ins) where { val ins = instr_patck (loc0, pmv0, PATCKf0loat (tok), fail) // end of [val] } (* end of [HIPf0loat] *) // | HIPempty() => () // | HIPrec(_, _, _, _) => { val () = hipatck_ccomp_rec (env, res, fail, hip0, pmv0) // hipatck_ccomp_rec } (* end of [HIPrec] *) // | HIPrefas(d2v, hip) => hipatck_ccomp(env, res, fail, hip, pmv0) // end of [HIPrefas] // | HIPann(hip, ann) => hipatck_ccomp(env, res, fail, hip, pmv0) // end of [HIPann] // | _ (*rest-of-HIP*) => exitloc( 1 ) where { val () = println! ("hipatck_ccomp: loc0 = ", loc0) val () = println! ("hipatck_ccomp: hip0 = ", hip0) } (* end o [rest-of-HIP] *) // end // end of [hipatck_ccomp] (* ****** ****** *) extern fun himatch_ccomp_rec ( env: !ccompenv, res: !instrseq , lvl0: int, hip0: hipat, pmv0: primval // HX: [pmv] matches [hip] ) : void // end of [himatch_ccomp] local fun auxvar ( env: !ccompenv , res: !instrseq , lvl0: int , lab: label, hip: hipat , pmv0: primval, hse_rec: hisexp ) : void = let val loc = hip.hipat_loc val-HIPvar (d2v) = hip.hipat_node val () = d2var_set_level (d2v, lvl0) val utimes = d2var_get_utimes (d2v) in // case+ 0 of | _ when utimes = 0 => () // HX: [d2v] is unused (* | _ when d2var_is_mutabl (d2v) => let val hse = hipat_get_type (hip) val pml = primlab_lab (loc, lab) val pmv = primval_select (loc, hse, pmv0, hse_rec, pml) val pmv_ref = primval_ptrof (loc, hisexp_typtr, pmv) val () = ccompenv_add_vbindmapenvall (env, d2v, pmv_ref) in // nothing end // end of [_] *) | _ => let val hse = hipat_get_type (hip) val tmp = tmpvar_make(loc, hse) val pml = primlab_lab(loc, lab) val ins = instr_move_select(loc, tmp, hse, pmv0, hse_rec, pml) val pmv = primval_make_tmp(loc, tmp) val ((*void*)) = ccompenv_add_vbindmapenvall(env, d2v, pmv) in instrseq_add (res, ins) end // end of [_] // end // end of [auxvar] fun auxpat ( env: !ccompenv , res: !instrseq , lvl0: int , lab: label, hip: hipat , pmv0: primval, hse_rec: hisexp ) : void = let in // case+ hip.hipat_node of (* case+ *) // | HIPany _ => () // | HIPvar(d2v) => auxvar(env, res, lvl0, lab, hip, pmv0, hse_rec) // | HIPrefas(d2v, hip) => auxpat(env, res, lvl0, lab, hip, pmv0, hse_rec) // end of [HIPrefas] | HIPann(hip, ann) => auxpat(env, res, lvl0, lab, hip, pmv0, hse_rec) // end of [HIPann] | _ (* rest-of-hipat *) => let val loc = hip.hipat_loc val-Some(d2v) = hip.hipat_asvar val-~Some_vt(pmv) = ccompenv_find_vbindmapenv (env, d2v) in himatch_ccomp(env, res, lvl0, hip, pmv) end // end of [_] end // end of [auxpat] fun auxpatlst ( env: !ccompenv , res: !instrseq , lvl0: int , lhips: labhipatlst , pmv0: primval, hse_rec: hisexp ) : void = let in // case+ lhips of | list_nil ((*void*)) => () // list_nil | list_cons (lhip, lhips) => let // val+LABHIPAT(lab, hip) = lhip // val () = auxpat(env, res, lvl0, lab, hip, pmv0, hse_rec) // in auxpatlst(env, res, lvl0, lhips, pmv0, hse_rec) end // end of [list_cons] // end // end of [auxpatlst] in (* in of [local] *) implement himatch_ccomp_rec ( env, res, lvl0, hip0, pmv0 ) = let // val-HIPrec (knd, pck, lhips, hse_rec) = hip0.hipat_node // in auxpatlst(env, res, lvl0, lhips, pmv0, hse_rec) end // end of [himatch_ccomp_rec] end // end of [local] (* ****** ****** *) extern fun himatch_ccomp_sum ( env: !ccompenv, res: !instrseq , lvl0: int, hip0: hipat, pmv0: primval // HX: [pmv] matches [hip] ) : void // end of [himatch_ccomp_sum] local fun auxvar ( env: !ccompenv , res: !instrseq , lvl0: int , narg: int , lab: label, hip: hipat , pmv0: primval, hse_sum: hisexp ) : void = let val loc = hip.hipat_loc val-HIPvar (d2v) = hip.hipat_node val () = d2var_set_level (d2v, lvl0) val utimes = d2var_get_utimes (d2v) in // case+ 0 of | _ when utimes = 0 => () // HX: [d2v] is unused | _ when d2var_is_mutabl (d2v) => let val hse = hipat_get_type (hip) // val pmv = primval_selcon (loc, hse, pmv0, hse_sum, lab) val pmv_ref = primval_ptrof (loc, hisexp_typtr, pmv) // val () = ccompenv_add_vbindmapenvall (env, d2v, pmv_ref) // in // nothing end // end of [_] | _ => let val hse = hipat_get_type (hip) val tmp = tmpvar_make (loc, hse) val ins = instr_move_selcon (loc, tmp, hse, pmv0, hse_sum, lab) val pmv = primval_make_tmp (loc, tmp) val () = ccompenv_add_vbindmapenvall (env, d2v, pmv) in instrseq_add (res, ins) end // end of [_] // end // end of [auxvar] fun auxpat ( env: !ccompenv , res: !instrseq , lvl0: int , narg: int , lab: label, hip: hipat , pmv0: primval, hse_sum: hisexp ) : void = let in // case+ hip.hipat_node of (* case+ *) | HIPany _ => () | HIPvar(d2v) => auxvar(env, res, lvl0, narg, lab, hip, pmv0, hse_sum) | HIPrefas(_, hip) => auxpat(env, res, lvl0, narg, lab, hip, pmv0, hse_sum) | HIPann(hip, ann) => auxpat(env, res, lvl0, narg, lab, hip, pmv0, hse_sum) | _ => let val-Some(d2v) = hip.hipat_asvar val-~Some_vt(pmv) = ccompenv_find_vbindmapenv(env, d2v) in himatch_ccomp (env, res, lvl0, hip, pmv) end // end of [_] // end // end of [auxpat] fun auxpatlst ( env: !ccompenv , res: !instrseq , lvl0: int , narg: int , lhips: labhipatlst , pmv0: primval, hse_sum: hisexp ) : void = let in // case+ lhips of | list_nil ((*void*)) => () | list_cons (lhip, lhips) => let val LABHIPAT (lab, hip) = lhip val () = auxpat (env, res, lvl0, narg, lab, hip, pmv0, hse_sum) // end of [val] in auxpatlst (env, res, lvl0, narg+1, lhips, pmv0, hse_sum) end // end of [list_cons] // end // end of [auxpat] in (* in of [local] *) implement himatch_ccomp_sum ( env, res, lvl0, hip0, pmv0 ) = let (* val () = println! ("himatch_ccomp_sum: hip0 = ", hip0) *) val-HIPcon (pck, d2c, hse_sum, lhips) = hip0.hipat_node // in auxpatlst(env, res, lvl0, 0(*narg*), lhips, pmv0, hse_sum) end // end of [himatch_ccomp_sum] end // end of [local] (* ****** ****** *) local fun auxvar ( env: !ccompenv , res: !instrseq , lvl0: int, d2v: d2var, pmv0: primval ) : void = let // val n = d2var_get_utimes (d2v) val () = d2var_set_level (d2v, lvl0) (* val () = ( println! ("himatch_ccomp: auxvar: n = ", n); println! ("himatch_ccomp: auxvar: d2v = ", d2v); ) // end of [val] *) // in // if n > 0 then let val ismov = ( case+ pmv0.primval_node of | _ when d2var_is_mutabl (d2v) => false | _ => primval_is_nshared (pmv0) ) : bool // end of [val] in if ismov then let val loc_d2v = d2var_get_loc (d2v) val hse_pmv = pmv0.primval_type val tmp = tmpvar_make (loc_d2v, hse_pmv) val ( ) = instrseq_add (res, instr_move_val (loc_d2v, tmp, pmv0)) val pmv1 = primval_make_tmp (loc_d2v, tmp) in ccompenv_add_vbindmapenvall (env, d2v, pmv1) end else ( ccompenv_add_vbindmapenvall (env, d2v, pmv0) ) // end of [if] end else ( // HX: [d2v] is unused! ) // end of [if] // end // end of [auxvar] in (* in of [local] *) implement himatch_ccomp ( env, res, lvl0, hip0, pmv0 ) = let // val loc0 = hip0.hipat_loc // (* val () = ( println! ("ccomp_match: lvl0 = ", lvl0); println! ("ccomp_match: hip0 = ", hip0); println! ("ccomp_match: pmv0 = ", pmv0); ) // end [val] *) // in // case+ hip0.hipat_node of (* case+ *) | HIPany _ => () // | HIPvar(d2v) => auxvar(env, res, lvl0, d2v, pmv0) // | HIPint _ => () | HIPintrep _ => () // | HIPbool _ => () | HIPchar _ => () | HIPstring _ => () // | HIPi0nt _ => () | HIPf0loat _ => () // | HIPempty() => () // | HIPcon ( pck, d2c, _, _ ) => let val () = ccompenv_add_freeconenv_if (env, pmv0, pck, d2c) // end of [val] in himatch_ccomp_sum(env, res, lvl0, hip0, pmv0) end // end of [HIPcon] // | HIPcon_any (pck, d2c) => () where { val () = ccompenv_add_freeconenv_if(env, pmv0, pck, d2c) // end of [val] } // end of [HIPcon_any] // | HIPrec (_, pck, _, _) => himatch_ccomp_rec (env, res, lvl0, hip0, pmv0) where { val () = ccompenv_add_freetupenv_if(env, pmv0, pck) // end of [val] } // end of [HIPrec] // | HIPrefas(d2v, hip) => { val () = himatch_ccomp(env, res, lvl0, hip, pmv0) } // end of [HIPrefas] // | HIPann(hip, _(*ann*)) => { val () = himatch_ccomp(env, res, lvl0, hip, pmv0) } // end of [HIPann] // | _ (*rest-of-hipat*) => exitloc(1) where { val () = println! ("himatch_ccomp: hip0 = ", hip0) } (* end of [_] *) // end (* end of [himatch_ccomp] *) end // end of [local] (* ****** ****** *) implement himatch2_ccomp ( env, res, lvl0, hip0, pmv0 ) = let // val () = ccompenv_inc_freeconenv (env) val () = himatch_ccomp (env, res, lvl0, hip0, pmv0) val pmvs = ccompenv_getdec_freeconenv (env) // in instrseq_add_freeconlst (res, hip0.hipat_loc, pmvs) end // end of [himatch2_ccomp] (* ****** ****** *) extern fun primval_make_funarg (loc: location, hse: hisexp, narg: int): primval // end of [primval_make_funarg] implement primval_make_funarg (loc, hse0, narg) = let in // case+ hse0.hisexp_node of // | HSErefarg (refval, hse) => ( if refval = 0 then primval_arg(loc, hse0, narg) else primval_argref(loc, hse0, narg) // end of [if] ) // end of [HSErefarg] // | HSEvararg _ => primval_argtmpref(loc, hse0, narg) // | _ (*rest-of-hidexp*) => primval_arg(loc, hse0, narg) // end // end of [primval_make_funarg] (* ****** ****** *) implement hifunarg_ccomp ( env, res, fl, lvl0, loc_fun, hips ) = let // fun auxpatck {n:nat} .. ( env: !ccompenv , res: !instrseq , narg: int , hips: list(hipat, n) , fail: patckont ) : list_vt(primval, n) = let (* val () = println! ("hifunarg_ccomp") *) in // case+ hips of // | list_nil () => list_vt_nil() // end of [list_nil] // | list_cons (hip, hips) => let // val loc = hip.hipat_loc val hse = hip.hipat_type // (* val () = ( println!("hifunarg_ccomp: auxpatck: hip = ", hip); println!("hifunarg_ccomp: auxpatck: hse = ", hse); ) (* end of [val] *) *) // val pmv = primval_make_funarg(loc, hse, narg) val ((*void*)) = hipatck_ccomp(env, res, fail, hip, pmv) // val pmvs = auxpatck(env, res, narg+1, hips, fail) // in list_vt_cons(pmv, pmvs) end // end of [list_cons] // end // end of [auxpatck] // fun auxmatch {n:nat} .. ( env: !ccompenv , res: !instrseq , lvl0: int , hips: list (hipat, n) , pmvs: list_vt (primval, n) ) : void = let in // case+ pmvs of | ~list_vt_cons (pmv, pmvs) => let val+list_cons(hip, hips) = hips val () = himatch_ccomp(env, res, lvl0, hip, pmv) in auxmatch(env, res, lvl0, hips, pmvs) end // end of [list_vt_cons] | ~list_vt_nil((*nond*)) => () // end // end of [auxmatch] // val fail = PTCKNTfunarg_fail (loc_fun, fl) val pmvs = auxpatck (env, res, 0, hips, fail) // in auxmatch (env, res, lvl0, hips, pmvs) end // end of [hifunarg_ccomp] (* ****** ****** *) (* end of [pats_ccomp_hipat.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_toplevel.dats0000644000175000017500000001205513431250607022735 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload "./pats_lexing.sats" staload "./pats_tokbuf.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) fun pskip_tokbuf ( buf: &tokbuf ) : token = let // val tok = tokbuf_get_token(buf) // (* // val () = println! ("pskip_tokbuf: tok = ", tok) // *) in // case+ tok.token_node of // | T_EOF () => tok // | T_SORTDEF () => tok | T_DATASORT () => tok // | T_ASSUME () => tok // | T_STACST () => tok | T_STADEF () => tok // | T_ABSTYPE _ => tok | T_TYPEDEF _ => tok | T_DATATYPE _ => tok | T_EXCEPTION () => tok // | T_FUN _ => tok | T_VAL _ => tok | T_VAR _ => tok // | T_IMPLEMENT _ => tok // | T_FIXITY _ => tok | T_NONFIX () => tok | T_SYMINTR () => tok | T_SYMELIM () => tok // | T_LOCAL () => tok // | T_STATIC () => tok | T_EXTERN () => tok // | T_SRPERROR () => tok | T_SRPPRERR () => tok | T_SRPPRINT () => tok // | T_SRPASSERT () => tok // | T_SRPUNDEF () => tok | T_SRPDEFINE () => tok // | T_SRPIF () => tok | T_SRPIFDEF () => tok | T_SRPIFNDEF () => tok // | T_SRPINCLUDE () => tok // | T_SRPSTALOAD () => tok | T_SRPDYNLOAD () => tok // | T_SRPREQUIRE () => tok // | _ => let val () = tokbuf_incby1 (buf) in pskip_tokbuf (buf) end (* end of [_] *) // end // end of [pskip_tokbuf] fun pskip1_tokbuf_reset (buf: &tokbuf): token = let // val tok = tokbuf_get_token (buf) // val () = ( case+ tok.token_node of // | T_EOF ((*void*)) => () // | tnode when tnode_is_comment (tnode) => () // | _ => { val loc = tok.token_loc val err = parerr_make (loc, PE_DISCARD) val ((*void*)) = the_parerrlst_add (err) } // end of [_] ) : void // end of [val] // val () = tokbuf_incby1 (buf) // val tok = pskip_tokbuf (buf) // val ((*void*)) = tokbuf_reset (buf) // in tok end // end of [pskip1_tokbuf_reset] (* ****** ****** *) fun p_toplevel_fun ( buf: &tokbuf , nerr: &int? >> int, f: parser (d0ecl) ) : d0eclist = let fun loop ( buf: &tokbuf , res: &d0eclist_vt? >> d0eclist_vt , nerr: &int >> int, f: parser (d0ecl) ) : void = let val nerr0 = nerr val d0ecl = f (buf, 1(*bt*), nerr) in case+ 0 of | _ when nerr > nerr0 => let val tok0 = tokbuf_get_token (buf) // val () = ( case+ tok0.token_node of | T_EOF () => (nerr := nerr0) | _ (*non-EOF*) => () ) : void // end of [val] // val tok1 = pskip1_tokbuf_reset (buf) // in case+ tok1.token_node of | T_EOF () => (res := list_vt_nil()) | _ => loop (buf, res, nerr, f) end // end of [_ when ...] | _ (*noerror*) => let // val () = tokbuf_reset (buf) // val () = let val xs = // HX: for skipping semicolons pstar_fun{token}(buf, 1(*bt*), p_SEMICOLON) in list_vt_free (xs) // end of [val] end // end of [val] // val () = res := list_vt_cons{d0ecl}{0}(d0ecl, ?) // end of [val] val+list_vt_cons (_, !p_res1) = res val () = loop (buf, !p_res1, nerr, f) prval ((*void*)) = fold@ (res) // HX: no-op // in // nothing end // end of [_] end (* end of [loop] *) val () = nerr := 0 var res: d0eclist_vt val () = loop (buf, res, nerr, f) // val _(*EOF*) = p_EOF (buf, 0(*bt*), nerr) // HX: no more tokens // in list_of_list_vt(res) end // end of [p_toplevel_fun] (* ****** ****** *) implement p_toplevel_sta (buf, nerr) = p_toplevel_fun (buf, nerr, p_d0ecl_sta) implement p_toplevel_dyn (buf, nerr) = p_toplevel_fun (buf, nerr, p_d0ecl_dyn) (* ****** ****** *) (* end of [pats_parsing_toplevel.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_dcon.dats0000644000175000017500000002510213431250607021746 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload GLOB = "./pats_global.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp overload compare with $STMP.compare_stamp_stamp (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) typedef d2con_struct = @{ d2con_sym= symbol // the name , d2con_loc= location // location , d2con_fil= filename // filename , d2con_scst= s2cst // datatype , d2con_npf= int // pfarity , d2con_vwtp= int // viewtype constructor , d2con_qua= s2qualst // quantifiers , d2con_arg= s2explst // views or viewtypes , d2con_arity_full= int // full arity , d2con_arity_real= int // real arity after erasure , d2con_ind= s2explstopt // indexes , d2con_type= s2exp // type for dynamic constructor , d2con_tag= int // tag for dynamic constructor , d2con_pack= Stropt // for ATS_PACKNAME , d2con_stamp= stamp // uniqueness } (* end of [d2con_struct] *) (* ****** ****** *) local assume d2con_type = ref (d2con_struct) in (* in of [local] *) (* ****** ****** *) implement d2con_make ( loc, fil , id, s2c, vwtp, qua, npf, arg, ind ) = let (* val out = stdout_ref val () = fprintln! (out, "d2con_make: id = ", id) *) // val arity_real = let fun aux1 ( i: int, s2es: s2explst ) : s2explst = case+ s2es of | list_cons (_, s2es1) => if i > 0 then aux1 (i-1, s2es1) else s2es | list_nil () => list_nil () // end of [aux1] fun aux2 ( i: int, s2es: s2explst ) : int = case+ s2es of | list_cons (s2e, s2es1) => if s2rt_is_prf (s2e.s2exp_srt) then aux2 (i, s2es1) else aux2 (i+1, s2es1) // end of [list_cons] | list_nil () => i // end of [list_nil] // end of [aux2] in aux2 (0, aux1 (npf, arg)) end // end of [val] // val arity_full = list_length (arg) // val d2c_type = let // fun aux ( s2f: s2exp, s2qs: s2qualst ) : s2exp = ( case+ s2qs of | list_nil () => (s2f) | list_cons (s2q, s2qs) => let val s2f = aux (s2f, s2qs) val s2f_uni = s2exp_uni (s2q.s2qua_svs, s2q.s2qua_sps, s2f) // end of [val] in s2f_uni end // end of [list_cons] ) (* end of [aux] *) // val s2e_res = ( case+ ind of | Some s2es => s2exp_cstapp (s2c, s2es) | _ => s2exp_cst (s2c) ) : s2exp // end of [val] val s2e_res = s2exp_confun (npf, arg, s2e_res) // in aux (s2e_res, qua) end : s2exp // end of [val] // val pack = $GLOB.the_PACKNAME_get () // val stamp = $STMP.d2con_stamp_make () // val (pfgc, pfat | p) = ptr_alloc () prval ((*freed*)) = free_gc_elim {d2con_struct?} (pfgc) // val () = p->d2con_sym := id val () = p->d2con_loc := loc val () = p->d2con_fil := fil val () = p->d2con_scst := s2c val () = p->d2con_npf := npf val () = p->d2con_vwtp := vwtp val () = p->d2con_qua := qua val () = p->d2con_arg := arg val () = p->d2con_arity_full := arity_full val () = p->d2con_arity_real := arity_real val () = p->d2con_ind := ind val () = p->d2con_type := d2c_type val () = p->d2con_tag := ~1 val () = p->d2con_pack := pack val () = p->d2con_stamp := stamp // in // ref_make_view_ptr (pfat | p) // end // end of [d2con_make] (* ****** ****** *) implement d2con_get_sym (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_sym end // end of [d2con_get_sym] implement d2con_get_loc (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_loc end // end of [d2con_get_loc] implement d2con_get_fil (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_fil end // end of [d2con_get_fil] implement d2con_get_scst (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_scst end // end of [d2con_get_scst] implement d2con_get_npf (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_npf end // end of [d2con_get_npf] implement d2con_get_vwtp (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_vwtp end // end of [d2con_get_vwtp] (* ****** ****** *) implement d2con_get_qua (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_qua end // end of [d2con_get_qua] implement d2con_get_arg (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_arg end // end of [d2con_get_arg] implement d2con_get_arity_full (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_arity_full end // end of [d2con_get_arity_full] implement d2con_get_arity_real (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_arity_real end // end of [d2con_get_arity_real] implement d2con_get_ind (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_ind end // end of [d2con_get_ind] implement d2con_get_type (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_type end // end of [d2con_get_type] (* ****** ****** *) implement d2con_get_tag (d2c) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_tag end // end of [d2con_get_tag] implement d2con_set_tag (d2c, tag) = let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_tag := tag end // end of [d2con_set_tag] (* ****** ****** *) implement d2con_get_pack (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_pack end // end of [d2con_get_pack] implement d2con_get_stamp (d2c) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (d2c) in p->d2con_stamp end // end of [d2con_get_stamp] (* ****** ****** *) end // end of [local] (* ****** ****** *) implement d2con_get_name (d2c) = $SYM.symbol_get_name (d2con_get_sym (d2c)) // end of [d2cin_get_name] (* ****** ****** *) implement d2con_is_nullary (d2c) = d2con_get_arity_real (d2c) = 0 // end of [d2con_is_nullay] implement d2con_is_tagless (d2c) = s2cst_is_tagless (d2con_get_scst (d2c)) // end of [d2con_is_tagless] (* ****** ****** *) implement d2con_is_listnil (d2c) = let // val s2c = d2con_get_scst (d2c) val opt = s2cst_get_islst (s2c) // in case opt of | Some (x) => if d2c = x.0 then true else false | None ( ) => false end // end of [d2con_is_listnil] implement d2con_is_listcons (d2c) = let // val s2c = d2con_get_scst (d2c) val opt = s2cst_get_islst (s2c) // in case opt of | Some (x) => if d2c = x.1 then true else false | None ( ) => false end // end of [d2con_is_listcons] implement d2con_is_listlike (d2c) = s2cst_is_listlike (d2con_get_scst (d2c)) // end of [d2con_is_listlike] (* ****** ****** *) implement d2con_is_singular (d2c) = s2cst_is_singular (d2con_get_scst (d2c)) // end of [d2con_is_singular] (* ****** ****** *) implement d2con_is_binarian (d2c) = s2cst_is_binarian (d2con_get_scst (d2c)) // end of [d2con_is_binarian] (* ****** ****** *) // implement d2con_is_linear (d2c) = s2cst_is_linear(d2con_get_scst(d2c)) implement d2con_is_nonlinear (d2c) = s2cst_is_nonlinear(d2con_get_scst(d2c)) // (* ****** ****** *) implement eq_d2con_d2con (x1, x2) = (compare (x1, x2) = 0) // end of [eq_d2con_d2con] implement neq_d2con_d2con (x1, x2) = (compare (x1, x2) != 0) // end of [neq_d2con_d2con] implement compare_d2con_d2con (x1, x2) = (compare (d2con_get_stamp (x1), d2con_get_stamp (x2))) // end of [compare_d2con_d2con] (* ****** ****** *) #define D2CON_TAG_EXN ~1 implement d2con_is_con (d2c) = ( if d2con_get_tag (d2c) >= 0 then true else false ) // end of [d2con_is_con] implement d2con_is_exn (d2c) = let val tag = d2con_get_tag (d2c) in tag = D2CON_TAG_EXN end // end of [d2con_is_exn] (* ****** ****** *) implement fprint_d2con (out, x) = let val sym = d2con_get_sym (x) in $SYM.fprint_symbol (out, sym) end // end of [fprint_d2con] implement print_d2con (x) = fprint_d2con (stdout_ref, x) implement prerr_d2con (x) = fprint_d2con (stderr_ref, x) (* ****** ****** *) implement fprint_d2conlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_d2con) // end of [fprint_d2conlst] implement print_d2conlst (xs) = fprint_d2conlst (stdout_ref, xs) implement prerr_d2conlst (xs) = fprint_d2conlst (stderr_ref, xs) (* ****** ****** *) local // staload FS = "libats/SATS/funset_avltree.sats" staload _ = "libats/DATS/funset_avltree.dats" staload LS = "libats/SATS/linset_avltree.sats" staload _ = "libats/DATS/linset_avltree.dats" // val cmp = lam ( d2c1: d2con, d2c2: d2con ) : int = compare_d2con_d2con (d2c1, d2c2) // end of [val] // assume d2conset_type = $FS.set (d2con) assume d2conset_vtype = $LS.set (d2con) // in (* in of [local] *) implement d2conset_nil () = $FS.funset_make_nil () implement d2conset_ismem (xs, x) = $FS.funset_is_member (xs, x, cmp) // end of [d2conset_ismem] implement d2conset_add (xs, x) = xs where { var xs = xs val _(*rplced*) = $FS.funset_insert (xs, x, cmp) } // end of [d2conset_add] (* ****** ****** *) implement d2conset_vt_nil () = $LS.linset_make_nil () implement d2conset_vt_add (xs, x) = xs where { var xs = xs val _(*rplced*) = $LS.linset_insert (xs, x, cmp) } // end of [d2conset_vt_add] implement d2conset_vt_listize_free (xs) = $LS.linset_listize_free (xs) end // end of [local] (* ****** ****** *) (* end of [pats_staexp2_dcon.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_fixity_prec.dats0000644000175000017500000000665413431250607021715 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload "./pats_fixity.sats" (* ****** ****** *) implement fprint_assoc (out, x) = case+ x of | ASSOCnon () => fprint_string (out, "ASSOCnon") | ASSOClft () => fprint_string (out, "ASSOClft") | ASSOCrgt () => fprint_string (out, "ASSOCrgt") // end of [fprint_assoc] (* ****** ****** *) assume prec_t0ype: t@ype = int (* ****** ****** *) #define PRECMIN ~1000000 // this is low enough #define PRECMAX 1000000 // this is high enough implement neginf_prec = PRECMIN implement posinf_prec = PRECMAX (* ****** ****** *) implement app_prec = 70 (* ****** ****** *) implement select_prec = 80 (* .label is a postfix operator *) (* ****** ****** *) implement backslash_prec = app_prec + 1 implement infixtemp_prec = 0 (* for temporary infix status *) (* ****** ****** *) implement exi_prec_sta = 0 implement uni_prec_sta = 0 (* ****** ****** *) implement delay_prec_dyn = 0 (* for $delay and $ldelay *) (* ****** ****** *) implement exist_prec_dyn = 0 (* for dynamic patterns *) (* ****** ****** *) implement ptrof_prec_dyn = select_prec - 1 implement addrat_prec_dyn = ptrof_prec_dyn // aliasing // // HX: supporting [fold@ !p], [free@ !p] and [view@ !p] // implement foldat_prec_dyn = app_prec - 1 implement freeat_prec_dyn = app_prec - 1 implement viewat_prec_dyn = app_prec - 1 (* ****** ****** *) (* ** HX: [invar_prec_sta] must be greater than [trans_prec_sta] *) implement invar_prec_sta = 1 (* ****** ****** *) // implement qmark_prec_sta = app_prec - 1 implement qmarkbang_prec_sta = app_prec - 1 // implement trans_prec_sta = 0 (* lowest *) // implement deref_prec_dyn = 100 (* highest *) // (* ****** ****** *) implement int_of_prec (p) = p implement prec_make_int (i) = case+ 0 of | _ when i <= PRECMIN => PRECMIN | _ when i >= PRECMAX => PRECMAX | _ => i // end of [prec_make_int] (* ****** ****** *) implement precedence_inc (p, i) = prec_make_int (p + i) implement precedence_dec (p, i) = prec_make_int (p - i) (* ****** ****** *) implement compare_prec_prec (p1, p2) = compare_int_int (p1, p2) (* ****** ****** *) (* end of [pats_fixity_prec.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_histaexp.dats0000644000175000017500000004145513431250607021213 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload S2C = "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_histaexp.sats" (* ****** ****** *) // #define ATSTYPE_BOXED "atstype_boxed" #define ATSTYPE_UNBOXED "atstype_unboxed" #define ATSTYPE_UNDEFINED "atstype_undefined" // (* ****** ****** *) // val HITNAM_BOXED = HITNAM(1(*ptr*), 1(*fin*), ATSTYPE_BOXED) // val HITNAM_UNBOXED = HITNAM(0(*non*), 1(*fin*), ATSTYPE_UNBOXED) // val HITNAM_UNDEFINED = HITNAM(0(*non*), 1(*fin*), ATSTYPE_UNDEFINED) // (* ****** ****** *) // val HITNAM_FUNPTR = HITNAM(1(*ptr*), 1(*fin*), "atstype_funptr") val HITNAM_CLOPTR = HITNAM(1(*ptr*), 1(*fin*), "atstype_cloptr") val HITNAM_CLOTYP = HITNAM(0(*non*), 1(*fin*), "atstype_clotyp") // val HITNAM_ARRPTR = HITNAM(1(*ptr*), 1(*fin*), "atstype_arrptr") // val HITNAM_DATCONPTR = HITNAM(1(*ptr*), 1(*fin*), "atstype_datconptr") val HITNAM_DATCONTYP = HITNAM(1(*ptr*), 1(*fin*), "atstype_datcontyp") // val HITNAM_EXNCONPTR = HITNAM(1(*ptr*), 1(*fin*), "atstype_exnconptr") // (* ****** ****** *) // #define POSTIATS_TYABS "postiats_tyabs" #define POSTIATS_TYPTR "postiats_typtr" // val HITNAM_TYABS = HITNAM(0(*non*), 0(*fin*), POSTIATS_TYABS) val HITNAM_TYPTR = HITNAM(1(*ptr*), 1(*fin*), POSTIATS_TYPTR) // val HITNAM_TYAPP = HITNAM(0(*non*), 0(*tmp*), "postiats_tyapp") val HITNAM_TYCLO = HITNAM(0(*non*), 0(*tmp*), "postiats_tyclo") // val HITNAM_TYARR = HITNAM(0(*non*), 0(*tmp*), "postiats_tyarr") val HITNAM_TYREC = HITNAM(0(*non*), 0(*tmp*), "postiats_tyrec") val HITNAM_TYRECSIN = HITNAM(0(*non*), 0(*tmp*), "postiats_tyrecsin") val HITNAM_TYSUM = HITNAM(0(*non*), 0(*tmp*), "postiats_tysum") // val HITNAM_TYVAR = HITNAM(0(*non*), 0(*tmp*), "postiats_tyvar") val HITNAM_TYVARET = HITNAM(0(*non*), 0(*tmp*), "postiats_tyvaret") // val HITNAM_VARARG = HITNAM(0(*non*), 0(*tmp*), "postiats_vararg") // val HITNAM_S2EXP = HITNAM(0(*non*), 0(*tmp*), "postiats_s2exp") val HITNAM_S2ZEXP = HITNAM(0(*non*), 0(*tmp*), "postiats_s2zexp") // (* ****** ****** *) implement hisexp_get_boxknd (hse0) = let in // case+ hse0.hisexp_node of // | HSEtyrec(knd, _) => if tyreckind_is_boxed(knd) then 1 else 0 // | HSEtysum(d2c, _) => 0 // HX: it is not [1]! // | _ (*non-rec-sum*) => (~1) // HX: meaningless // end // end of [hisexp_get_boxknd] implement hisexp_get_extknd (hse0) = let in // case+ hse0.hisexp_node of // | HSEtyrec (knd, _) => if tyreckind_is_fltext(knd) then 1 else 0 // | _(*non-HSEtyrec*) => ~1 // HX: meaningless // end // end of [hisexp_get_extknd] (* ****** ****** *) implement hisexp_is_boxed(hse0) = let // val+HITNAM(knd, _, _) = hse0.hisexp_name in knd > 0 // end // end of [hisexp_is_boxed] (* ****** ****** *) local // fun s2cst_is_void (s2c: s2cst): bool = $S2C.s2cstref_equ_cst ($S2C.the_atsvoid_t0ype, s2c) // fun s2exp_is_void (s2e0: s2exp): bool = ( case+ s2e0.s2exp_node of (* | S2EVar(s2V) => let val s2ze = s2Var_get_szexp(s2V) in case+ s2ze of | S2ZEcst(s2c) => s2cst_is_void(s2c) | _ => false end // end of [S2EVar] *) | _(*non-S2EVar*) => $S2C.s2cstref_equ_exp ($S2C.the_atsvoid_t0ype, s2e0) // end of [non-S2EVar] ) // in (* in-of-local *) implement hisexp_is_void (hse0) = let in // case+ hse0.hisexp_node of // case+ // | HSEcst(s2c) => s2cst_is_void(s2c) // | HSEtyrecsin (lhse) => let val HSLABELED (_, _, hse) = lhse in hisexp_is_void(hse) end // end of [HSEtyrecsin] // | HSEs2exp(s2e) => s2exp_is_void(s2e) // | _ (*rest-of-hisexp*) => false // end // end of [hisexp_is_void] end // end of [local] (* ****** ****** *) implement hisexp_fun_is_void (hse_fun) = let in // case+ hse_fun.hisexp_node of // | HSEfun ( fc, _(*arg*), hse_res ) => hisexp_is_void(hse_res) | _ (*non-HSEfun*) => false // end // end of [hisexp_fun_is_void] (* ****** ****** *) implement hisexp_is_noret (hse0) = let in // case+ hse0.hisexp_node of // | HSEcst(s2c) => $S2C.s2cstref_equ_cst($S2C.the_atsvoid_t0ype, s2c) // end of [HSEcst] | HSEtyvar (s2v) => true // | HSEtyrecsin(lhse) => let val HSLABELED (_, _, hse) = lhse in hisexp_is_noret(hse) end // end of [HSEtyrecsin] // | _(*rest-of-hisexp*) => false // end // end of [hisexp_is_noret] implement hisexp_fun_is_noret (hse_fun) = let in // case+ hse_fun.hisexp_node of | HSEfun ( fc, _(*arg*), hse_res ) => hisexp_is_noret (hse_res) | _(*non-HSEfun*) => false // end // end of [hisexp_fun_is_void] (* ****** ****** *) implement hisexp_is_tyarr (hse0) = let in case+ hse0.hisexp_node of HSEtyarr _ => true | _ => false end // end of [hisexp_is_tyarr] implement hisexp_is_tyrecsin (hse0) = let in case+ hse0.hisexp_node of HSEtyrecsin _ => true | _ => false end // end of [hisexp_is_tyrecsin] (* ****** ****** *) implement labhisexp_get_elt (lhse) = let val HSLABELED (lab, opt, hse) = lhse in hse end // end of [labhisexp_get_elt] (* ****** ****** *) implement hisexp_tybox = '{ hisexp_name= HITNAM_BOXED, hisexp_node= HSEtybox () } (* end of [hisexp_tybox] *) implement hisexp_typtr = let in '{ hisexp_name= HITNAM_TYPTR, hisexp_node= HSEtybox () } end // end of [hisexp_typtr] (* ****** ****** *) local // val ATSTYCLO_TOP = $SYM.symbol_make_string ("atstyclo_top") // in (* in-of-local *) implement hisexp_clotyp = '{ hisexp_name= HITNAM_TYCLO , hisexp_node= HSEtyabs (ATSTYCLO_TOP) } (* [hisexp_clotyp] *) end (* end of [local] *) (* ****** ****** *) implement hisexp_funptr = '{ hisexp_name= HITNAM_FUNPTR, hisexp_node= HSEtybox () } implement hisexp_cloptr = '{ hisexp_name= HITNAM_CLOPTR, hisexp_node= HSEtybox () } implement hisexp_arrptr = '{ hisexp_name= HITNAM_ARRPTR, hisexp_node= HSEtybox () } (* end of [hisexp_arrptr] *) (* ****** ****** *) implement hisexp_datconptr = '{ hisexp_name= HITNAM_DATCONPTR, hisexp_node= HSEtybox () } (* end of [hisexp_datconptr] *) implement hisexp_datcontyp = '{ hisexp_name= HITNAM_DATCONTYP, hisexp_node= HSEtybox () } (* end of [hisexp_datcontyp] *) (* ****** ****** *) implement hisexp_exnconptr = '{ hisexp_name= HITNAM_EXNCONPTR, hisexp_node= HSEtybox () } (* end of [hisexp_exnconptr] *) (* ****** ****** *) // implement hisexp_undefined = let // val sym = $SYM.symbol_make_string(ATSTYPE_UNDEFINED) // in '{ hisexp_name= HITNAM_UNDEFINED, hisexp_node= HSEtyabs (sym) } end // end of [hisexp_undefined] // (* ****** ****** *) implement hisexp_int_t0ype () = let // val s2c = $S2C.s2cstref_get_cst ($S2C.the_atstype_int) // in '{ hisexp_name= HITNAM_TYABS, hisexp_node= HSEcst (s2c) } end // end of [hisexp_int_t0ype] (* ****** ****** *) implement hisexp_bool_t0ype () = let // val s2c = $S2C.s2cstref_get_cst ($S2C.the_atstype_bool) // in '{ hisexp_name= HITNAM_TYABS, hisexp_node= HSEcst (s2c) } end // end of [hisexp_bool_t0ype] (* ****** ****** *) implement hisexp_size_t0ype () = let // val s2c = $S2C.s2cstref_get_cst ($S2C.the_atstype_size) // in '{ hisexp_name= HITNAM_TYABS, hisexp_node= HSEcst (s2c) } end // end of [hisexp_size_t0ype] (* implement hisexp_size_t0ype () = let // val s2c1 = $S2C.s2cstref_get_cst ($S2C.the_atstkind_t0ype) val hse1 = hisexp_cst (s2c1) val s2c2 = $S2C.s2cstref_get_cst ($S2C.the_size_kind) val hse2 = hisexp_cst (s2c2) // in hisexp_app (hse1, list_sing(hse2)) end (* end of [hisexp_size_t0ype] *) *) (* ****** ****** *) implement hisexp_void_t0ype () = let // val s2c = $S2C.s2cstref_get_cst ($S2C.the_atsvoid_t0ype) // in '{ hisexp_name= HITNAM_TYABS, hisexp_node= HSEcst (s2c) } end // end of [hisexp_void_t0ype] (* ****** ****** *) fun hisexp_make_node ( hit: hitnam, node: hisexp_node ) : hisexp = '{ hisexp_name= hit, hisexp_node= node } (* end of [hisexp_make_node] *) (* ****** ****** *) // implement hisexp_tyabs(sym) = hisexp_make_node(HITNAM_TYABS, HSEtyabs(sym)) // (* ****** ****** *) implement hisexp_make_srt (s2t) = let // val isbox = s2rt_is_boxed_fun (s2t) // in // if isbox then hisexp_tybox else let val sym = $SYM.symbol_make_string(ATSTYPE_UNBOXED) // in hisexp_tyabs (sym) end // end of [else] // end // end of [hisexp_make_srt] implement hisexp_make_srtsym (s2t, sym) = let // val isbox = s2rt_is_boxed_fun (s2t) // in if isbox then hisexp_tybox else hisexp_tyabs (sym) // end of [if] end // end of [hisexp_make_srtsym] (* ****** ****** *) // implement hisexp_cst (s2c) = hisexp_make_node (HITNAM_TYABS, HSEcst (s2c)) // (* ****** ****** *) implement hisexp_fun ( funclo, arg, res ) = let // val node = HSEfun(funclo, arg, res) // in // case+ funclo of | FUNCLOfun() => hisexp_make_node(HITNAM_FUNPTR, node) | FUNCLOclo(knd) => if knd = 0 then hisexp_make_node(HITNAM_CLOTYP, node) else hisexp_make_node(HITNAM_CLOPTR, node) // end of [if] // end // end of [hisexp_fun] (* ****** ****** *) implement hisexp_app (_fun, _arg) = hisexp_make_node (HITNAM_TYAPP, HSEapp (_fun, _arg)) // end of [hisexp_app] (* ****** ****** *) implement hisexp_extype (name, s2ess) = let val hit = HITNAM(0(*non*), 1(*fin*), name) in hisexp_make_node (hit, HSEextype (name, s2ess)) end // end of [hisexp_extype] (* ****** ****** *) implement hisexp_refarg (knd, arg) = let // val hitnam = HITNAM (knd, 0(*fin*), "postiats_refarg") // in '{ hisexp_name= hitnam, hisexp_node= HSErefarg (knd, arg) } end // end of [hisexp_refarg] (* ****** ****** *) implement hisexp_tyarr (hse, dim) = hisexp_make_node (HITNAM_TYARR, HSEtyarr (hse, dim)) // end of [hisexp_tyarr] (* ****** ****** *) implement hisexp_tyrec (knd, lhses) = hisexp_make_node (HITNAM_TYREC, HSEtyrec (knd, lhses)) // end of [hisexp_tyrec] implement hisexp_tyrecsin (lhse) = hisexp_make_node (HITNAM_TYRECSIN, HSEtyrecsin (lhse)) // end of [hisexp_tyrecsin] implement hisexp_tyrec2 (knd, lhses) = let val isflt = tyreckind_is_flted (knd) in // if isflt then let val issin = list_is_sing (lhses) in // if issin then let val+ list_cons (lhse, _) = lhses in hisexp_tyrecsin (lhse) end else let in hisexp_tyrec (knd, lhses) end // end of [if] // end else hisexp_tyrec (knd, lhses) // end of [if] // end // end of [hisexp_tyrec2] (* ****** ****** *) implement hisexp_tysum (d2c, lhses) = hisexp_make_node (HITNAM_TYSUM, HSEtysum (d2c, lhses)) // end of [hisexp_tysum] (* ****** ****** *) implement hisexp_tyvar (s2v) = let val s2t = s2var_get_srt (s2v) val isbox = s2rt_is_boxed (s2t) val hit = ( if isbox then HITNAM_BOXED else HITNAM_TYVAR ) : hitnam // end of [val] in hisexp_make_node (hit, HSEtyvar (s2v)) end // end of [hisexp_tyvar] (* ****** ****** *) implement hisexp_tyclo (flab) = hisexp_make_node (HITNAM_TYCLO, HSEtyclo (flab)) // end of [hisexp_tyclo] (* ****** ****** *) implement hisexp_vararg (s2e) = '{ hisexp_name= HITNAM_VARARG, hisexp_node= HSEvararg (s2e) } // end of [hisexp_vararg] (* ****** ****** *) implement hisexp_s2exp (s2e) = hisexp_make_node (HITNAM_S2EXP, HSEs2exp (s2e)) // end of [hisexp_s2exp] implement hisexp_s2zexp (s2ze) = hisexp_make_node (HITNAM_S2ZEXP, HSEs2zexp (s2ze)) // end of [hisexp_s2zexp] (* ****** ****** *) local fun aux ( sub: !stasub, hse0: hisexp, flag: &int ) : hisexp = let in // case+ hse0.hisexp_node of // of [case] // | HSEcst _ => hse0 // | HSEtyabs _ => hse0 | HSEtybox _ => hse0 // | HSEapp ( hse_fun, hses_arg ) => let val f0 = flag val hse_fun = aux (sub, hse_fun, flag) val hses_arg = auxlst (sub, hses_arg, flag) in if flag > f0 then hisexp_app (hse_fun, hses_arg) else hse0 // end of [if] end // end of [HSEapp] // | HSEextype (name, hsess) => let val f0 = flag val hsess = auxlstlst (sub, hsess, flag) in if flag > f0 then hisexp_extype (name, hsess) else hse0 // end of [if] end // end of [HSEextype] // | HSEfun ( fc, hses_arg, hse_res ) => let val f0 = flag val hse_res = aux (sub, hse_res, flag) val hses_arg = auxlst (sub, hses_arg, flag) in if flag > f0 then hisexp_fun (fc, hses_arg, hse_res) else hse0 // end of [if] end // end of [HSEfun] // | HSErefarg (knd, hse) => let val f0 = flag val hse = aux (sub, hse, flag) in if flag > f0 then hisexp_refarg (knd, hse) else hse0 // end of [if] end // end of [HSErefarg] // | HSEtyarr (hse_elt, s2es) => let val f0 = flag val s2es = s2explst_subst_flag (sub, s2es, flag) val hse_elt = aux (sub, hse_elt, flag) in if flag > f0 then hisexp_tyarr (hse_elt, s2es) else hse0 // end of [if] end // end of [HSEtyarr] | HSEtyrec (knd, lhses) => let val f0 = flag val lhses = auxlablst (sub, lhses, flag) in if flag > f0 then hisexp_tyrec (knd, lhses) else hse0 end // end of [HSEtyrec] | HSEtyrecsin (lhse) => let val f0 = flag val lhse = auxlab (sub, lhse, flag) in if flag > f0 then hisexp_tyrecsin (lhse) else hse0 end // end of [HSEtyrecsin] | HSEtysum (d2c, lhses) => let val f0 = flag val lhses = auxlablst (sub, lhses, flag) in if flag > f0 then hisexp_tysum (d2c, lhses) else hse0 end // end of [HSEtysum] // | HSEtyvar (s2v) => let val ans = stasub_find (sub, s2v) in case+ ans of | ~Some_vt (s2e) => let val () = flag := flag + 1 in hisexp_s2exp (s2e) end // end of [Some_vt] | ~None_vt () => hse0 end // end of [HSEtyvar] // | HSEtyclo (flab) => hse0 // | HSEvararg (s2e) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > f0 then hisexp_vararg (s2e) else hse0 end // end of [HSEvararg] // | HSEs2exp (s2e) => let val f0 = flag val s2e = s2exp_subst_flag (sub, s2e, flag) in if flag > f0 then hisexp_s2exp (s2e) else hse0 end // end of [HSEs2exp] // | HSEs2zexp (s2ze) => let val f0 = flag val s2ze = s2zexp_subst_flag (sub, s2ze, flag) in if flag > f0 then hisexp_s2zexp (s2ze) else hse0 end // end of [HSEs2zexp] // (* | _ (*rest-of-hisexp*) => hse0 *) // end // end of [aux] and auxlab ( sub: !stasub, lhse0: labhisexp, flag: &int ) : labhisexp = let val f0 = flag val+HSLABELED (lab, opt, hse) = lhse0 val hse = aux (sub, hse, flag) in if flag > f0 then HSLABELED (lab, opt, hse) else lhse0 end // end of [auxlab] and auxlst ( sub: !stasub, hses0: hisexplst, flag: &int ) : hisexplst = let in // case+ hses0 of | list_cons (hse, hses) => let val f0 = flag val hse = aux (sub, hse, flag) val hses = auxlst (sub, hses, flag) in if flag > f0 then list_cons (hse, hses) else hses0 end // end of [list_cons] | list_nil () => list_nil () // end // end of [auxlst] and auxlablst ( sub: !stasub, lhses0: labhisexplst, flag: &int ) : labhisexplst = let in // case+ lhses0 of | list_cons (lhse, lhses) => let val f0 = flag val lhse = auxlab (sub, lhse, flag) val lhses = auxlablst (sub, lhses, flag) in if flag > f0 then list_cons (lhse, lhses) else lhses0 end // end of [list_cons] | list_nil () => list_nil () // end // end of [auxlablst] and auxlstlst ( sub: !stasub, hsess0: hisexplstlst, flag: &int ) : hisexplstlst = let in // case+ hsess0 of | list_cons (hses, hsess) => let val f0 = flag val hses = auxlst (sub, hses, flag) val hsess = auxlstlst (sub, hsess, flag) in if flag > f0 then list_cons (hses, hsess) else hsess0 end // end of [list_cons] | list_nil () => list_nil () // end // end of [auxlstlst] in // in of [local] implement hisexp_subst (sub, hse0) = let var flag: int = 0 in aux (sub, hse0, flag) end // end of [hisexp_subst] end // end of [local] (* ****** ****** *) (* end of [pats_histaexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_caseof.dats0000644000175000017500000000556613431250607022012 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: January, 2013 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_trans2_env.sats" (* ****** ****** *) staload "./pats_ccomp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) extern fun hidexplst_ccompv (env: !ccompenv, res: !instrseq, hdes: hidexplst): primvalist // end of [hidexplst_ccompv] (* ****** ****** *) implement hidexplst_ccompv (env, res, hdes) = let // (* val () = println! ("hidexplst_ccompv") *) // in // case+ hdes of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (hde, hdes) => let val pmv = hidexp_ccompv(env, res, hde) val pmvs = hidexplst_ccompv(env, res, hdes) in list_cons(pmv, pmvs) end // end of [list_cons] // end // end of [hidexplst_ccompv] (* ****** ****** *) implement hidexp_ccomp_ret_case (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc // val-HDEcase (knd, hdes, hicls) = hde0.hidexp_node // // HX: [pmvs] should not contain lvalues // val pmvs = hidexplst_ccompv(env, res, hdes) // val fail = ( case+ knd of | CK_case_pos() => PTCKNTnone() | CK_case_neg() => PTCKNTcaseof_fail(loc0) | CK_case((*none*)) => PTCKNTcaseof_fail(loc0) ) : patckont // end of [val] // val lvl0 = the_d2varlev_get((*void*)) // val ibranchlst = hiclaulst_ccomp(env, lvl0, pmvs, hicls, tmpret, fail) // val ins = instr_caseof(loc0, ibranchlst) // val ((*void*)) = instrseq_add (res, ins) // in // nothing end // end of [hidexp_ccomp_ret_case] (* ****** ****** *) (* end of [pats_ccomp_caseof.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_effect.dats0000644000175000017500000001775213431250607022115 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans1_staexp" (* ****** ****** *) staload "./pats_effect.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_staexp1.sats" (* ****** ****** *) staload "./pats_trans1.sats" (* ****** ****** *) fn name_is_nil (name: string): bool = if name = "0" then true else name = "nil" fn name_is_all (name: string): bool = if name = "1" then true else name = "all" fn name_is_ntm (name: string): bool = if name = "ntm" then true else name = "nonterm" fn name_is_exn (name: string): bool = if name = "exn" then true else name = "exception" fn name_is_ref (name:string): bool = if name = "ref" then true else name = "reference" fn name_is_wrt (name: string): bool = if name = "wrt" then true else name = "write" fn name_is_exnref (name: string): bool = name = "exnref" fn name_is_exnwrt (name: string): bool = name = "exnwrt" fn name_is_exnrefwrt (name: string): bool = name = "exnrefwrt" fn name_is_refwrt (name: string): bool = name = "refwrt" (* // HX: !laz = 1,~ref *) fn name_is_lazy (name: string): bool = name = "laz" (* ****** ****** *) val effvars_nil: effvarlst = list_nil () (* ****** ****** *) local fun loop_err ( tag: e0fftag, name: string ) : void = () where { // val () = prerr_error1_loc (tag.e0fftag_loc) val () = prerrln! (": unrecognized effect constant: [", name, "]") // val () = $ERR.abort_interr ((*reachable*)) // } (* end of [loop_err] *) fun loop ( fcopt: &fcopt , lin: &int, prf: &int , efs: &effset, evs: &effvarlst , tags: e0fftaglst ) : void = let in // case+ tags of | list_cons (tag, tags) => let val () = case+ tag.e0fftag_node of // | E0FFTAGvar ev => evs := list_cons (ev, evs) // | E0FFTAGint (int) => { val () = evs := effvars_nil val () = if int = 0 then efs := effset_nil val () = if int = 1 then efs := effset_all } // end of [E0FFTAGint] // | E0FFTAGcst (isneg, name) when name_is_all name => { val () = evs := effvars_nil val () = if isneg > 0 then efs := effset_nil else efs := effset_all } // end of [E0FFTAGcst when ...] | E0FFTAGcst (isneg, name) when name_is_nil name => { val () = evs := effvars_nil val () = if isneg > 0 then efs := effset_all else efs := effset_nil } // end of [E0FFTAGcst when ...] | E0FFTAGcst (isneg, name) when name_is_lazy name => { val () = evs := effvars_nil val () = if isneg > 0 then efs := effset_add (effset_nil, effect_ref) // HX: nonsensical val () = if isneg = 0 then efs := effset_del (effset_all, effect_ref) // HX: !laz = 1,~ref } // end of [E0FFTAGcst when ...] // | E0FFTAGcst (isneg, name) => ( case+ 0 of | _ when name_is_ntm name => { val () = if isneg > 0 then efs := effset_del (efs, effect_ntm) val () = if isneg = 0 then efs := effset_add (efs, effect_ntm) } // end of [_ when ...] | _ when name_is_exn name => { val () = if isneg > 0 then efs := effset_del (efs, effect_exn) val () = if isneg = 0 then efs := effset_add (efs, effect_exn) } // end of [_ when ...] | _ when name_is_ref name => { val () = if isneg > 0 then efs := effset_del (efs, effect_ref) val () = if isneg = 0 then efs := effset_add (efs, effect_ref) } // end of [_ when ...] | _ when name_is_wrt name => { val () = if isneg > 0 then efs := effset_del (efs, effect_wrt) val () = if isneg = 0 then efs := effset_add (efs, effect_wrt) } // end of [_ when ...] // | _ when name_is_exnref name => { val () = if isneg > 0 then efs := effset_del (effset_del (efs, effect_exn), effect_ref) val () = if isneg = 0 then efs := effset_add (effset_add (efs, effect_exn), effect_ref) } // end of [_ when ...] | _ when name_is_exnwrt name => { val () = if isneg > 0 then efs := effset_del (effset_del (efs, effect_exn), effect_wrt) val () = if isneg = 0 then efs := effset_add (effset_add (efs, effect_exn), effect_wrt) } // end of [_ when ...] | _ when name_is_exnrefwrt name => { val () = if isneg > 0 then efs := effset_del (effset_del (effset_del (efs, effect_exn), effect_ref), effect_wrt) val () = if isneg = 0 then efs := effset_add (effset_add (effset_add (efs, effect_exn), effect_ref), effect_wrt) } // end of [_ when ...] // | _ when name_is_refwrt name => { val () = if isneg > 0 then efs := effset_del (effset_del (efs, effect_ref), effect_wrt) val () = if isneg = 0 then efs := effset_add (effset_add (efs, effect_ref), effect_wrt) } // end of [_ when ...] // | _ => loop_err (tag, name) ) // end of [E0FFTAGcst] // | E0FFTAGprf () => prf := 1 // | E0FFTAGlin (i(*nil/all*)) => let val () = lin := 1 // linearity in if i > 0 then (efs := effset_all; evs := effvars_nil) end // end of [E0FFTAGlin] // | E0FFTAGfun (uln, i(*nil/all*)) => let val () = if (uln >= 0) then lin := uln val () = fcopt := Some (FUNCLOfun ()) in if i > 0 then (efs := effset_all; evs := effvars_nil) end // end of [E0FFTAGfun] // | E0FFTAGclo (uln, knd, i) => let // knd : 1/~1:ptr/ref; i : nil/all val () = if (uln >= 0) then lin := uln val () = fcopt := Some (FUNCLOclo (knd)) in if i > 0 then (efs := effset_all; evs := effvars_nil) end // end of [E0FFTAGclo] // in loop (fcopt, lin, prf, efs, evs, tags) end // end of [let] // end of [list_cons] // | list_nil () => () // end of [list_nil] // end // end of [loop] in (* in of [local] *) implement e0fftaglst_tr (tags) = let // var fcopt: fcopt = None() var lin: int = 0 and prf: int = 0 var efs: effset = effset_nil and evs: effvarlst = effvars_nil val () = loop (fcopt, lin, prf, efs, evs, tags) val efc = ( case+ 0 of // | _ when (efs = effset_all) => EFFCSTall () // | _ when (efs = effset_nil) => ( case+ evs of list_nil () => EFFCSTnil () | _ => EFFCSTset (efs, evs) ) // | _ => EFFCSTset (efs, evs) // ) : effcst // end of [val] // in @(fcopt, lin, prf, efc) end // end of [e0fftaglst_tr] end // end of [local] (* ****** ****** *) (* end of [pats_trans1_effect.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_counter.dats0000644000175000017500000000566113431250607021044 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_counter.sats" (* ****** ****** *) assume count_t0ype = int assume counter_type = ref (count) (* ****** ****** *) implement count_get_int (x) = x (* ****** ****** *) implement lt_count_count (x1, x2) = lt_int_int (x1, x2) implement lte_count_count (x1, x2) = lte_int_int (x1, x2) implement gt_count_count (x1, x2) = gt_int_int (x1, x2) implement gte_count_count (x1, x2) = gte_int_int (x1, x2) implement eq_count_count (x1, x2) = eq_int_int (x1, x2) implement neq_count_count (x1, x2) = neq_int_int (x1, x2) implement compare_count_count (x1, x2) = compare_int_int (x1, x2) (* ****** ****** *) implement fprint_count (out, x) = fprint_int (out, x) (* ****** ****** *) implement tostring_count (cnt) = let val str = sprintf ("%i", @(cnt)) in string_of_strptr (str) end // end of [tostring_count] implement tostring_prefix_count (pre, cnt) = let val str = sprintf ("%s%i", @(pre,cnt)) in string_of_strptr (str) end // end of [tostring_prefix_count] (* ****** ****** *) // implement counter_make () = ref_make_elt (0) // implement counter_inc (cntr) = !cntr := !cntr + 1 implement counter_get (cntr) = !cntr implement counter_set (cntr, cnt) = !cntr := cnt implement counter_reset (cntr) = !cntr := 0 // implement counter_getinc (cntr) = n where { val n = !cntr ; val () = !cntr := n + 1 } // end of [counter_getinc] // implement counter_incget (cntr) = n1 where { val n1 = !cntr + 1; val () = !cntr := n1 } // end of [counter_incget] // (* ****** ****** *) (* end of [pats_counter.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_syntax_print.dats0000644000175000017500000011012313431250607022115 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_fixity.sats" staload "./pats_label.sats" staload "./pats_symbol.sats" (* ****** ****** *) staload "./pats_lexing.sats" staload "./pats_syntax.sats" (* ****** ****** *) implement fprint_macsynkind (out, x) = let // macdef prstr (str) = fprint_string (out, ,(str)) // in case+ x of | MSKencode () => prstr "MSKencode" | MSKdecode () => prstr "MSKdecode" | MSKxstage () => prstr "MSKxstage" // CSP: cross-stage persistence end // end of [fprint_macsynkind] implement print_macsynkind (x) = fprint_macsynkind (stdout_ref, x) implement prerr_macsynkind (x) = fprint_macsynkind (stderr_ref, x) (* ****** ****** *) implement fprint_cstsp (out, x) = ( case+ x of | CSTSPmyfil () => fprint_string (out, "$myfilename") | CSTSPmyloc () => fprint_string (out, "$mylocation") | CSTSPmyfun () => fprint_string (out, "$myfunction") (* | CSTSPmylinecnt () => fprint_string (out, "$mylinecount") | CSTSPmycharcnt () => fprint_string (out, "$mycharcount") *) ) // end of [fprint_cstsp] (* ****** ****** *) implement fprint_i0nt (out, x) = let // val-T_INT (_, rep, _) = x.token_node in fprint_string (out, rep) // end // end of [fprint_i0nt] implement fprint_c0har (out, x) = let val-T_CHAR (chr) = x.token_node in fprint_char (out, chr) end // end of [fprint_c0har] implement fprint_f0loat (out, x) = let // val-T_FLOAT (base, rep, sfx) = x.token_node in fprint_string (out, rep) // end // end of [fprint_f0loat] implement fprint_s0tring (out, x) = let val-T_STRING (str) = x.token_node in fprint_string (out, str) end // end of [fprint_c0har] (* ****** ****** *) implement fprint_i0de (out, x) = fprint_symbol (out, x.i0de_sym) // end of [fprint_i0de] implement print_i0de (x) = fprint_i0de (stdout_ref, x) implement prerr_i0de (x) = fprint_i0de (stderr_ref, x) (* ****** ****** *) implement fprint_s0rtq (out, x) = case+ x.s0rtq_node of | S0RTQnone () => () | S0RTQsymdot (sym) => { val () = fprint_symbol (out, sym) val () = fprint_string (out, ".") } // end of [fprint_s0rtq] implement print_s0rtq (x) = fprint_s0rtq (stdout_ref, x) implement prerr_s0rtq (x) = fprint_s0rtq (stderr_ref, x) (* ****** ****** *) implement fprint_s0taq (out, x) = case+ x.s0taq_node of | S0TAQnone () => () | S0TAQsymdot (sym) => { val () = fprint_symbol (out, sym) val () = fprint_string (out, ".") } (* // // HX-2017-01-24: // it is never in use // | S0TAQsymcolon(sym) => { val () = fprint_symbol (out, sym) val () = fprint_string (out, ":") } *) // end of [fprint_s0taq] implement print_s0taq (x) = fprint_s0taq (stdout_ref, x) implement prerr_s0taq (x) = fprint_s0taq (stderr_ref, x) implement fprint_sqi0de (out, x) = { val () = fprint_s0taq (out, x.sqi0de_qua) val () = fprint_symbol (out, x.sqi0de_sym) } // end of [fprint_sqi0de] (* ****** ****** *) implement fprint_d0ynq (out, x) = ( case+ x.d0ynq_node of // case+ | D0YNQnone() => () | D0YNQsymdot(sym) => { val () = fprint_symbol(out, sym) val () = fprint_string(out, ".") } (* // // HX-2017-01-24: // removed due to no use // | D0YNQsymcolon (sym) => { val () = fprint_symbol (out, sym) val () = fprint_string (out, ":") } | D0YNQsymdotcolon (sym1, sym2) => { val () = fprint_symbol (out, sym1) val () = fprint_symbol (out, sym2) val () = fprint_string (out, ":") } *) ) (* end of [fprint_d0ynq] *) // implement print_d0ynq(x) = fprint_d0ynq(stdout_ref, x) implement prerr_d0ynq(x) = fprint_d0ynq(stderr_ref, x) // (* ****** ****** *) // implement fprint_dqi0de(out, x) = { val () = fprint_d0ynq(out, x.dqi0de_qua) val () = fprint_symbol(out, x.dqi0de_sym) } // end of [fprint_dqi0de] // implement print_dqi0de(x) = fprint_dqi0de(stdout_ref, x) implement prerr_dqi0de(x) = fprint_dqi0de(stderr_ref, x) // (* ****** ****** *) implement fprint_p0rec (out, p0rec) = let // macdef prstr(x) = fprint_string(out, ,(x)) // in // case+ p0rec of | P0RECint(i0) => prstr "P0RECint(...)" | P0RECi0de(id) => prstr "P0RECi0de(...)" | P0RECi0de_adj _ => prstr "P0RECi0de_adj(...)" // end // end of [fprint_p0rec] (* ****** ****** *) implement fprint_f0xty (out, x) = let // macdef prstr(x) = fprint_string (out, ,(x)) // in case+ x of | F0XTYinf _ => prstr "F0XTYinf(...)" | F0XTYpre _ => prstr "F0XTYpre(...)" | F0XTYpos _ => prstr "F0XTYpos(...)" end // end of [fprint_f0xty] (* ****** ****** *) implement fprint_e0xpactkind (out, x) = ( // case+ x of | E0XPACTassert ((*void*)) => fprint_string (out, "E0XPACTassert") // | E0XPACTerror () => fprint_string (out, "E0XPACTerror") | E0XPACTprerr () => fprint_string (out, "E0XPACTprint") | E0XPACTprint () => fprint_string (out, "E0XPACTprint") // ) (* end of [fprint_e0xpactkind] *) (* ****** ****** *) implement fprint_e0xp (out, x0) = let macdef prstr (str) = fprint_string (out, ,(str)) in case+ x0.e0xp_node of | E0XPide (x) => { val () = prstr "E0XPide(" val () = fprint_symbol (out, x) val () = prstr ")" } | E0XPchar (x) => { val () = prstr "E0XPchar(" val () = fprint_c0har (out, x) val () = prstr ")" } | E0XPint (x) => { val () = prstr "E0XPint(" val () = fprint_i0nt (out, x) val () = prstr ")" } | E0XPfloat (x) => { val () = prstr "E0XPfloat(" val () = fprint_f0loat (out, x) val () = prstr ")" } | E0XPstring (x) => { val () = prstr "E0XPstring(" val () = fprint_s0tring (out, x) val () = prstr ")" } | E0XPstringid (x) => { val () = prstr "E0XPstringid(" val () = fprint_string (out, x) val () = prstr ")" } | E0XPapp (x1, x2) => { val () = prstr "E0XPapp(" val () = fprint_e0xp (out, x1) val () = prstr "; " val () = fprint_e0xp (out, x2) val () = prstr ")" } | E0XPfun (arg, body) => { val () = prstr "E0XPfun(" val () = $UT.fprintlst (out, arg, ", ", fprint_symbol) val () = prstr "; " val () = fprint_e0xp (out, body) val () = prstr ")" } | E0XPeval (x) => { val () = prstr "E0XPeval(" val () = fprint_e0xp (out, x) val () = prstr ")" } | E0XPlist (xs) => { val () = prstr "E0XPlist(" val () = fprint_e0xplst (out, xs) val () = prstr ")" } | E0XPif (_cond, _then, _else) => { val () = prstr "E0XPif(" val () = fprint_e0xp (out, _cond) val () = prstr "; " val () = fprint_e0xp (out, _then) val () = prstr "; " val () = $UT.fprintopt (out, _else, fprint_e0xp) val () = prstr ")" } end // end of [fprint_e0xp] implement fprint_e0xplst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_e0xp) // end of [fprint_e0xplst] (* ****** ****** *) implement fprint_l0ab (out, x) = fprint_label (out, x.l0ab_lab) // end of [fprint_l0ab] (* ****** ****** *) implement fprint_s0rt (out, x) = let macdef prstr (str) = fprint_string (out, ,(str)) in case+ x.s0rt_node of | S0RTapp (s0t1, s0t2) => { val () = prstr "S0RTapp(" val () = fprint_s0rt (out, s0t1) val () = prstr "; " val () = fprint_s0rt (out, s0t2) val () = prstr ")" } | S0RTide (id) => { val () = prstr "S0RTide(" val () = fprint_symbol (out, id) val () = prstr ")" } | S0RTqid (q, id) => { val () = prstr "S0RTqid(" val () = fprint_s0rtq (out, q) val () = fprint_symbol (out, id) val () = prstr ")" } | S0RTlist (xs) => { val () = prstr "S0RTlist(" val () = $UT.fprintlst (out, xs, ", ", fprint_s0rt) val () = prstr ")" } | S0RTtype (knd) => { val () = prstr "S0RTtype(" val () = fprint_int (out, knd) val () = prstr ")" } end // end of [fprint_s0rt] (* ****** ****** *) fun fprint_d0atsrtcon (out: FILEref, x: d0atsrtcon) = { val () = fprint_symbol (out, x.d0atsrtcon_sym) val () = ( case+ x.d0atsrtcon_arg of | Some s0t => { val () = fprint_string (out, " of ") val () = fprint_s0rt (out, s0t) } // end of [Some] | None () => { val () = fprint_string (out, " of ()") } // end of [None] ) : void // end of [val] } // end of [fprint_d0atsrtcon] implement fprint_d0atsrtdec (out, x) = { val () = fprint_symbol (out, x.d0atsrtdec_sym) val () = fprint_string (out, " = ") val () = $UT.fprintlst (out, x.d0atsrtdec_con, " | ", fprint_d0atsrtcon) } // end of [fprint_d0atsrtdec] (* ****** ****** *) fun fprint_a0srt ( out: FILEref, x: a0srt ) : void = () where { val () = (case+ x.a0srt_sym of | Some sym => ( fprint_symbol (out, sym); fprint_string (out, ": ") ) // end of [Some] | None () => () ) : void // end of [val] val () = fprint_s0rt (out, x.a0srt_srt) } // end of [fprint_a0srt] fun fprint_a0msrt ( out: FILEref, x: a0msrt ) : void = () where { val () = fprint_string (out, "(") val () = $UT.fprintlst (out, x.a0msrt_arg, ", ", fprint_a0srt) val () = fprint_string (out, ")") } // end of [fprint_a0msrt] (* ****** ****** *) implement fprint_s0rtext (out, x) = let macdef prstr (str) = fprint_string (out, ,(str)) in // case+ x.s0rtext_node of | S0TEsrt s0t => { val () = prstr "S0TEsrt(" val () = fprint_s0rt (out, s0t) val () = prstr ")" } // end of [S0TEsrt] | S0TEsub (id, s0te, s0e, s0es) => { val () = prstr "S0TEsub(" val () = fprint_i0de (out, id) val () = prstr ": " val () = fprint_s0rtext (out, s0te) val () = prstr "; " val () = fprint_s0exp (out, s0e) val () = (case+ s0es of | list_cons _ => ( prstr "; "; $UT.fprintlst (out, s0es, "; ", fprint_s0exp) ) | list_nil () => () ) // end of [val] val () = prstr ")" } (* end of [S0TEsub] *) // end // end of [fprint_s0rtext] (* ****** ****** *) implement fprint_s0qua (out, x) = let macdef prstr (str) = fprint_string (out, ,(str)) in // case+ x.s0qua_node of | S0QUAprop (s0e) => { val () = prstr "S0QUAprop(" val () = fprint_s0exp (out, s0e) val () = prstr ")" } | S0QUAvars (id, ids, s0te) => { val () = prstr "S0QUAvar(" val () = fprint_i0de (out, id) val () = ( case+ ids of | list_cons _ => ( prstr ", "; $UT.fprintlst (out, ids, ", ", fprint_i0de) ) | list_nil () => () ) // end of [val] val () = prstr ": " val () = fprint_s0rtext (out, s0te) val () = prstr ")" } (* end of [S0QUAvars] *) // end // end of [fprint_s0qua] implement fprint_s0qualst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s0qua) // end of [fprint_s0qualst] (* ****** ****** *) implement fprint_s0exp (out, x) = let macdef prstr (str) = fprint_string (out, ,(str)) in // case+ x.s0exp_node of // | S0Eide (id) => { val () = prstr "S0Eide(" val () = fprint_symbol (out, id) val () = prstr ")" } // | S0Esqid (sq, id) => { val () = prstr "S0Esqid(" val () = fprint_s0taq (out, sq) val () = fprint_symbol (out, id) val () = prstr ")" } // | S0Eopid (id) => { val () = prstr "S0Eopid(" val () = fprint_symbol (out, id) val () = prstr ")" } // | S0Eint (x) => { val () = prstr "S0Ei0nt(" val () = fprint_i0nt (out, x) val () = prstr ")" } | S0Echar (x) => { val () = prstr "S0Echar(" val () = fprint_c0har (out, x) val () = prstr ")" } | S0Efloat (x) => { val () = prstr "S0Efloat(" val () = fprint_f0loat (out, x) val () = prstr ")" } | S0Estring (x) => { val () = prstr "S0Estring(" val () = fprint_s0tring (out, x) val () = prstr ")" } // | S0Eextype (name, s0es) => { val () = prstr "S0Eextype(" val () = fprint_string (out, name) val () = prstr "; " val () = fprint_s0explst (out, s0es) val () = prstr ")" } | S0Eextkind (name, s0es) => { val () = prstr "S0Eextkind(" val () = fprint_string (out, name) val () = prstr "; " val () = fprint_s0explst (out, s0es) val () = prstr ")" } // | S0Eapp (s0e1, s0e2) => { val () = prstr "S0Eapp(" val () = fprint_s0exp (out, s0e1) val () = prstr "; " val () = fprint_s0exp (out, s0e2) val () = prstr ")" } | S0Eimp _ => { val () = prstr "S0Eimp(" val () = fprint_string (out, "...") val () = prstr ")" } | S0Elam (_, s0topt, s0e) => { val () = prstr "S0Elam(" val () = $UT.fprintopt (out, s0topt, fprint_s0rt) val () = prstr "; " val () = fprint_s0exp (out, s0e) val () = prstr ")" } | S0Elist (s0es) => { val () = prstr "S0Elist(" val () = fprint_s0explst (out, s0es) val () = prstr ")" } | S0Elist2 (s0es1, s0es2) => { val () = prstr "S0Elist2(" val () = fprint_s0explst (out, s0es1) val () = prstr " | " val () = fprint_s0explst (out, s0es2) val () = prstr ")" } | S0Etyarr (elt, dim) => { val () = prstr "S0Etyarr(" val () = fprint_s0exp (out, elt) val () = prstr "; " val () = fprint_s0explst (out, dim) val () = prstr ")" } | S0Etytup (knd, npf, s0es) => { val () = prstr "S0Etytup(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_s0explst (out, s0es) val () = prstr ")" } | S0Etyrec (knd, npf, xs) => { val () = prstr "S0Etyrec(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = $UT.fprintlst (out, xs, ", ", fprint_labs0exp) // end of [val] val () = prstr ")" } | S0Etyrec_ext (name, npf, xs) => { val () = prstr "S0Etyrec_ext(" val () = fprint_string (out, name) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = $UT.fprintlst (out, xs, ", ", fprint_labs0exp) // end of [val] val () = prstr ")" } // | S0Euni s0qs => { val () = prstr "S0Euni(" val () = $UT.fprintlst (out, s0qs, ", ", fprint_s0qua) val () = prstr ")" } | S0Eexi (knd, s0qs) => { val () = prstr "S0Eexi(" val () = fprint_int (out, knd) val () = prstr "; " val () = $UT.fprintlst (out, s0qs, ", ", fprint_s0qua) val () = prstr ")" } // | S0Eann (s0e1, s0t2) => { val () = prstr "S0Eann(" val () = fprint_s0exp (out, s0e1) // end of [val] val () = prstr "; " val () = fprint_s0rt (out, s0t2) val ((*closing*)) = prstr ")" } // | S0Ed2ctype (d2ctp) => prstr "S0Ed2ctype(...)" // (* // | _ => prstr "S0E(...)" *) end // end of [fprint_s0exp] (* ****** ****** *) implement fprint_s0explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s0exp) // end of [fprint_s0explst] implement fprint_s0expopt (out, opt) = $UT.fprintopt (out, opt, fprint_s0exp) // end of [fprint_s0expopt] (* ****** ****** *) implement fprint_s0exparg (out, s0a) = let macdef prstr (str) = fprint_string (out, ,(str)) in case+ s0a of | S0EXPARGone _ => prstr "{..}" | S0EXPARGall _ => prstr "{...}" | S0EXPARGseq (s0es) => { val () = prstr "{" val () = fprint_s0explst (out, s0es) val () = prstr "}" } (* end of [S0EXPARGseq] *) end // end of [fprint_s0exparg] (* ****** ****** *) implement fprint_labs0exp (out, x) = () where { val+SL0ABELED (l, name, s0e) = x val () = fprint_l0ab (out, l) val () = fprint_string (out, "= ") val () = fprint_s0exp (out, s0e) } // end of [fprint_labs0exp] (* ****** ****** *) implement fprint_q0marg (out, x) = { val () = fprint_string (out, "{") val () = fprint_s0qualst (out, x.q0marg_arg) val () = fprint_string (out, "}") } // end of [fprint_q0marg] implement fprint_q0marglst (out, xs) = $UT.fprintlst (out, xs, "", fprint_q0marg) // end of [fprint_q0marglst] (* ****** ****** *) implement fprint_p0at (out, x) = let macdef prstr (str) = fprint_string (out, ,(str)) in // case+ x.p0at_node of // | P0Tide (sym) => { val () = prstr "P0Tide(" val () = fprint_symbol (out, sym) val () = prstr ")" } | P0Topid (sym) => { val () = prstr "P0Topid(" val () = fprint_symbol (out, sym) val () = prstr ")" } | P0Tdqid (dq, sym) => { val () = prstr "P0Tdqid(" val () = fprint_d0ynq (out, dq) val () = fprint_symbol (out, sym) val () = prstr ")" } // | P0Tint (x) => { val () = prstr "P0Tint(" val () = fprint_i0nt (out, x) val () = prstr ")" } | P0Tchar (x) => { val () = prstr "P0Tchar(" val () = fprint_c0har (out, x) val () = prstr ")" } | P0Tfloat (x) => { val () = prstr "P0Tfloat(" val () = fprint_f0loat (out, x) val () = prstr ")" } | P0Tstring (x) => { val () = prstr "P0Tstring(" val () = fprint_s0tring (out, x) val () = prstr ")" } // | P0Tapp (p0t1, p0t2) => { val () = prstr "P0Tapp(" val () = fprint_p0at (out, p0t1) val () = prstr "; " // val () = fprint_p0at (out, p0t2) val () = prstr ")" } | P0Tlist (npf, p0ts) => { val () = prstr "P0Tlist(" val () = fprint_int (out, npf) val () = prstr "; " val () = $UT.fprintlst (out, p0ts, ", ", fprint_p0at) val () = prstr ")" } // | P0Tlst (lin, p0ts) => { val () = prstr "P0Tlst(" val () = fprint_int (out, lin) val () = prstr "; " val () = $UT.fprintlst (out, p0ts, ", ", fprint_p0at) val () = prstr ")" } | P0Trec (knd, npf, lp0ts) => { val () = prstr "P0Trec(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = $UT.fprintlst (out, lp0ts, ", ", fprint_labp0at) val () = prstr ")" } | P0Ttup (knd, npf, p0ts) => { val () = prstr "P0Ttup(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = $UT.fprintlst (out, p0ts, ", ", fprint_p0at) val () = prstr ")" } // | P0Tfree (p0t) => { val () = prstr "P0Tfree(" val () = fprint_p0at (out, p0t) val () = prstr ")" } | P0Tunfold (p0t) => { val () = prstr "P0Tunfold(" val () = fprint_p0at (out, p0t) val () = prstr ")" } // | P0Texist (s0as) => { val () = prstr "P0Texist(" val () = fprint_string (out, "...") val () = prstr ")" } | P0Tsvararg (s0vs) => { val () = prstr "P0Tsvararg(" val () = fprint_string (out, "...") val () = prstr ")" } // | P0Trefas (id, loc_id, p0t_as) => { val () = prstr "P0Trefas(" val () = fprint_symbol (out, id) val () = prstr ", " val () = fprint_p0at (out, p0t_as) val () = prstr ")" } // | P0Tann (p0t, s0e) => { val () = prstr "P0Tann(" val () = fprint_p0at (out, p0t) val () = prstr ": " val () = fprint_s0exp (out, s0e) val () = prstr ")" } // | P0Terr () => prstr "P0Terr()" // end // end of [fprint_p0at] (* ****** ****** *) implement fprint_labp0at (out, x) = case+ x.labp0at_node of | LABP0ATnorm (l, p0t) => { val () = fprint_l0ab (out, l) val () = fprint_string (out, "= ") val () = fprint_p0at (out, p0t) } // end of [LABP0ATnorm] | LABP0ATomit () => fprint_string (out, "...") // end of [fprint_labp0at] (* ****** ****** *) implement fprint_d0exp (out, x) = let macdef prstr (str) = fprint_string (out, ,(str)) in // case+ x.d0exp_node of // | D0Eide (sym) => { val () = prstr "D0Eide(" val () = fprint_symbol (out, sym) val () = prstr ")" } | D0Eopid (sym) => { val () = prstr "D0Eopid(" val () = fprint_symbol (out, sym) val () = prstr ")" } | D0Edqid (dq, sym) => { val () = prstr "D0Edqid(" val () = fprint_d0ynq (out, dq) val () = prstr ", " val () = fprint_symbol (out, sym) val () = prstr ")" } // | D0Eidext (sym) => { val () = prstr "D0Eidext(" val () = fprint_symbol (out, sym) val () = prstr ")" } // | D0Eint (x) => { val () = prstr "D0Eint(" val () = fprint_i0nt (out, x) val () = prstr ")" } | D0Echar (x) => { val () = prstr "D0Echar(" val () = fprint_c0har (out, x) val () = prstr ")" } | D0Efloat (x) => { val () = prstr "D0Efloat(" val () = fprint_f0loat (out, x) val () = prstr ")" } | D0Estring (x) => { val () = prstr "D0Estring(" val () = fprint_s0tring (out, x) val () = prstr ")" } // (* | D0Etop () => prstr "D0Etop()" *) | D0Eempty () => prstr "D0Eempty()" // | D0Ecstsp (x) => { val () = prstr "D0Ecstsp(" val () = fprint_cstsp (out, x) val () = prstr ")" } // | D0Etyrep (x) => { val () = prstr "D0Etyrep(" val () = fprint_s0exp (out, x) val () = prstr ")" } // | D0Eliteral (x) => { val () = prstr "D0Eliteral(" val () = fprint_d0exp (out, x) val () = prstr ")" } // | D0Elet _ => prstr "D0Elet(...)" | D0Ewhere _ => prstr "D0Ewhere(...)" | D0Edeclseq _ => prstr "D0Edeclseq(...)" // | D0Eapp ( _fun, _arg ) => { val () = prstr "D0Eapp(" val () = fprint_d0exp (out, _fun) val () = prstr "; " val () = fprint_d0exp (out, _arg) val () = prstr ")" } // | D0Elist ( npf, d0es ) => { val () = prstr "D0Elist(" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d0explst (out, d0es) val () = prstr ")" } // | D0Eifhead ( hd, _test, _then, _else ) => { val () = prstr "D0Eifhead(" val () = fprint_d0exp (out, _test) val () = prstr "; " val () = fprint_d0exp (out, _then) val () = prstr "; " val () = fprint_d0expopt (out, _else) val () = prstr ")" } | D0Esifhead ( hd, _test, _then, _else ) => { val () = prstr "D0Esifhead(" val () = fprint_s0exp (out, _test) val () = prstr "; " val () = fprint_d0exp (out, _then) val () = prstr "; " val () = fprint_d0exp (out, _else) val () = prstr ")" } (* end of [D0Esifhead] *) // | D0Eifcasehd _ => { val () = prstr "D0Eifcasehd(" val () = prstr "..." val () = prstr ")" } // | D0Ecasehead _ => { val () = prstr "D0Ecasehead(" val () = prstr "..." val () = prstr ")" } | D0Escasehead _ => { val () = prstr "D0Escasehead(" val () = prstr "..." val () = prstr ")" } // | D0Elst(lin, elt, d0e) => { val () = prstr "D0Elst(" val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_s0expopt (out, elt) val () = prstr "; " val () = fprint_d0exp (out, d0e) val () = prstr ")" } | D0Etup(knd, npf, d0es) => { val () = prstr "D0Etup(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d0explst (out, d0es) val () = prstr ")" } | D0Erec(knd, npf, ld0es) => { val () = prstr "D0Erec(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = $UT.fprintlst (out, ld0es, ", ", fprint_labd0exp) // end of [val] val () = prstr ")" } | D0Eseq (d0es) => { val () = prstr "D0Eseq(" val () = $UT.fprintlst (out, d0es, "; ", fprint_d0exp) val () = prstr ")" } // | D0Earrsub _ => { val () = prstr "D0Earrsub(" val () = fprint_string (out, "...") val () = prstr ")" } | D0Earrpsz _ => { val () = prstr "D0Earrpsz(" val () = fprint_string (out, "...") val () = prstr ")" } | D0Earrinit _ => { val () = prstr "D0Earrinit(" val () = fprint_string (out, "...") val () = prstr ")" } // | D0Eptrof () => prstr "D0Eptrof()" | D0Eviewat () => prstr "D0Eviewat()" // | D0Esel_lab (knd, lab) => { val () = prstr "D0Esel_lab(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_label (out, lab) val () = prstr ")" } | D0Esel_ind (knd, ind) => { val () = prstr "D0Esel_int(" val () = fprint_int (out, knd) val () = prstr "; " val () = prstr "..." val () = prstr ")" } // | D0Eraise (d0e) => { val () = prstr "D0Eraise(" val () = fprint_d0exp (out, d0e) val () = prstr ")" } // | D0Eeffmask _ => { val () = prstr "D0Eeffmask(...)" } | D0Eeffmask_arg _ => { val () = prstr "D0Eeffmask_arg(...)" } // | D0Evararg(d0es) => { val () = prstr "D0Evararg(" val () = fprint_d0explst (out, d0es) val ((*closing*)) = prstr ")" } // | D0Evcopyenv (knd, d0e) => { val () = prstr "D0Evcopyenv(" val () = fprint_int (out, knd) val () = prstr ", " val () = fprint_d0exp (out, d0e) val () = prstr ")" } // | D0Eshowtype(d0e) => { val () = prstr "D0Eshowtype(" val () = fprint_d0exp (out, d0e) val () = prstr ")" } // | D0Etempenver(d0e) => { val () = prstr "D0Etempenver(" val () = fprint_d0exp (out, d0e) val () = prstr ")" } // | D0Esexparg (s0a) => { val () = prstr "D0Esexparg(" val () = fprint_s0exparg (out, s0a) val () = prstr ")" } // | D0Eann (d0e, s0e) => { val () = prstr "D0Eann(" val () = fprint_d0exp (out, d0e) val () = prstr ": " val () = fprint_s0exp (out, s0e) val () = prstr ")" } // | D0Elam _ => { val () = prstr "D0Elam(" val () = prstr "..." val () = prstr ")" } | D0Efix _ => { val () = prstr "D0Efix(" val () = prstr "..." val () = prstr ")" } // | D0Edelay (knd, d0e) => { val () = prstr "D0Edelay(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_d0exp (out, d0e) val () = prstr ")" } // | D0Efor _ => { val () = prstr "D0Efor(" val () = prstr "..." val () = prstr ")" } | D0Ewhile _ => { val () = prstr "D0Ewhile(" val () = prstr "..." val () = prstr ")" } | D0Eloopexn (knd) => { val () = prstr "D0Eloopexn(" val () = fprint_int (out, knd) val () = prstr ")" } // | D0Etrywith _ => { val () = prstr "D0Etrywith(" val () = prstr "..." val () = prstr ")" } // | D0Esolassert(d0e) => { val () = prstr "D0Esolassert(" val () = fprint_d0exp (out, d0e) val () = prstr ")" } // | D0Esolverify(s0e) => { val () = prstr "D0Esolverify(" val () = fprint_s0exp (out, s0e) val () = prstr ")" } // | _ (* rest-of-D0E *) => prstr "D0E(...)" // end // end of [fprint_d0exp] (* ****** ****** *) implement fprint_d0explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_d0exp) // end of [fprint_d0explst] implement fprint_d0expopt (out, opt) = $UT.fprintopt (out, opt, fprint_d0exp) // end of [fprint_d0expopt] (* ****** ****** *) implement fprint_labd0exp (out, x) = () where { val+DL0ABELED (l, d0e) = x val () = fprint_l0ab (out, l) val () = fprint_string (out, "= ") val () = fprint_d0exp (out, d0e) } // end of [fprint_labd0exp] (* ****** ****** *) fun fprint_s0tacon ( out: FILEref, x: s0tacon ) : void = () where { val () = fprint_symbol (out, x.s0tacon_sym) val () = fprint_string (out, "(") val () = $UT.fprintlst (out, x.s0tacon_arg, " ", fprint_a0msrt) val () = fprint_string (out, ")") val () = fprint_string (out, " = ") val () = $UT.fprintopt (out, x.s0tacon_def, fprint_s0exp) } // end of [fprint_s0tacon] (* ****** ****** *) fun fprint_s0tacst ( out: FILEref, x: s0tacst ) : void = () where { val () = fprint_symbol (out, x.s0tacst_sym) val () = fprint_string (out, "(") val () = $UT.fprintlst (out, x.s0tacst_arg, " ", fprint_a0msrt) val () = fprint_string (out, "):") val () = fprint_s0rt (out, x.s0tacst_res) } // end of [fprint_s0tacst] (* ****** ****** *) (* // // HX-2012-05-23: removed // fun fprint_s0tavar ( out: FILEref, x: s0tavar ) : void = () where { val () = fprint_symbol (out, x.s0tavar_sym) val () = fprint_string (out, "(") val () = fprint_s0rt (out, x.s0tavar_srt) val () = fprint_string (out, ")") } // end of [fprint_s0tavar] *) (* ****** ****** *) implement fprint_d0ecl (out, x) = let // macdef prstr (str) = fprint_string (out, ,(str)) // in // case+ x.d0ecl_node of // case+ // | D0Cfixity (fxty, ids) => { val () = prstr "D0Cfixity(" val () = fprint_f0xty (out, fxty) val () = prstr "; " val () = $UT.fprintlst (out, ids, ", ", fprint_i0de) val () = prstr ")" } | D0Cnonfix(ids) => { val () = prstr "D0Cnonfix(" val () = $UT.fprintlst (out, ids, ", ", fprint_i0de) val () = prstr ")" } // | D0Csymintr(ids) => { val () = prstr "D0Csymintr(" val () = $UT.fprintlst (out, ids, ", ", fprint_i0de) val () = prstr ")" } | D0Csymelim(ids) => { val () = prstr "D0Csymelim(" val () = $UT.fprintlst (out, ids, ", ", fprint_i0de) val () = prstr ")" } | D0Coverload (id, qid, pval) => { val () = prstr "D0Coverload(" // end of [val] val () = fprint_i0de (out, id) val () = prstr "; " val () = fprint_dqi0de (out, qid) val () = prstr "; " val () = fprint_int (out, pval) val ((*closing*)) = prstr ")" } // end of [D0Coverload] // | D0Ce0xpdef(id, def) => { val () = prstr "D0Ce0xpdef(" // end of [val] val () = fprint_symbol (out, id) val () = prstr ", " val () = $UT.fprintopt (out, def, fprint_e0xp) val ((*closing*)) = prstr ")" } | D0Ce0xpundef(idsym) => { val () = prstr "D0Ce0xpundef(" // end of [val] val () = fprint_symbol (out, idsym) val ((*closing*)) = prstr ")" } // | D0Ce0xpact(knd, act) => { val () = prstr "D0Ce0xpact(" val () = fprint_e0xpactkind (out, knd) val () = prstr "; " val () = fprint_e0xp (out, act) val ((*closing*)) = prstr ")" } // | D0Cpragma(xs) => { val () = prstr "D0Cpragma(" val () = $UT.fprintlst (out, xs, ", ", fprint_e0xp) val ((*closing*)) = prstr ")" } (* end of [D0Cpragma] *) // | D0Ccodegen(knd, xs) => { val () = prstr "D0Ccodegen(" val () = fprint_int (out, knd) val () = prstr "; " val () = $UT.fprintlst (out, xs, ", ", fprint_e0xp) val ((*closing*)) = prstr ")" } (* end of [D0Ccodegen] *) // | D0Cdatsrts(xs) => { val () = prstr "D0Cdatsrts(\n" val () = $UT.fprintlst (out, xs, "\n", fprint_d0atsrtdec) // end of [val] val ((*closing*)) = prstr "\n)" } | D0Csrtdefs(xs) => { val () = prstr "D0Csrtdefs(...)" } | D0Cstacsts(xs) => { val () = prstr "D0Cstacsts(\n" val () = $UT.fprintlst (out, xs, "\n", fprint_s0tacst) val ((*closing*)) = prstr "\n)" } | D0Cstacons (knd, xs) => { val () = prstr "D0Cstacons(" val () = fprint_int (out, knd) val () = prstr ";\n" val () = $UT.fprintlst (out, xs, "\n", fprint_s0tacon) val ((*closing*)) = prstr "\n)" } (* | D0Cstavars(xs) => { val () = prstr "D0Cstavars(\n" val () = $UT.fprintlst (out, xs, "\n", fprint_s0tavar) val ((*closing*)) = prstr "\n)" } *) | D0Ctkindef(x) => { val () = prstr "D0Ctkindef(...)" // end of [val] } | D0Csexpdefs (knd, xs) => { val () = prstr "D0Csexpdefs(" // end of [val] val () = fprint! (out, knd, "; ", "...") // end of [val] val ((*closing*)) = prstr ")" } // | D0Csaspdec(x) => { val () = prstr "D0Csaspdec(...)" } | D0Creassume(x) => { val () = prstr "D0Creassume(...)" } // | D0Cexndecs(xs) => { val () = prstr "D0Cexndecs(...)" } | D0Cdatdecs (knd, decs, defs) => { val () = prstr "D0Cdatdecs(" val () = fprint! (out, knd, "; ", "...") val ((*closing*)) = prstr ")" } (* end of [D0Cdatdecs] *) // | D0Cdcstdecs _ => { val () = prstr "D0Cdcstdecs(...)" } // end of [D0Cdcstdecs] | D0Cmacdefs _ => { val ((*void*)) = prstr "D0Cmacdefs(...)" } (* end of [D0Cmacdefs] *) // | D0Cclassdec (id, sup) => { val () = prstr "D0Cclassdec(" val () = fprint_i0de (out, id) val () = prstr "; " val () = fprint_s0expopt (out, sup) val ((*closing*)) = prstr ")" } | D0Cextype (name, s0e_def) => { val () = prstr "D0Cextype(" val () = fprint_string (out, name) val () = prstr " = " val () = fprint_s0exp (out, s0e_def) val ((*closing*)) = prstr ")" } | D0Cextype ( knd, name, s0e_def ) => { val () = prstr "D0Cextype(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_string (out, name) val () = prstr "; " val () = fprint_s0exp (out, s0e_def) val ((*closing*)) = prstr ")" } | D0Cextvar (name, d0e) => { val () = prstr "D0Cextvar(" val () = fprint_string (out, name) val () = prstr " = " val () = fprint_d0exp (out, d0e) val ((*closing*)) = prstr ")" } | D0Cextcode ( knd, pos, code ) => { val () = prstr "D0Cextcode(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, pos) val () = prstr "\n" val () = prstr "..." val ((*closing*)) = prstr "\n)" } // | D0Cimpdec _ => { val () = prstr "D0Cimpdec(...)" } // | D0Cvaldecs _ => { val () = prstr "D0Cvaldecs(...)" } | D0Cfundecs _ => { val () = prstr "D0Cfundecs(...)" } | D0Cvardecs _ => { val () = prstr "D0Cvardecs(...)" } // | D0Cinclude ( pfil, knd, name ) => { val () = prstr "D0Cinclude(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_string (out, name) val ((*closing*)) = prstr ")" } // | D0Cstaload ( pfil, idopt, name ) => { val () = prstr "D0Cstaload(" val () = fprint_symbolopt (out, idopt) val () = prstr "; " val () = fprint_string (out, name) val ((*closing*)) = prstr ")" } | D0Cstaloadnm ( pfil, idopt, name ) => { val () = prstr "D0Cstaloadnm(" val () = fprint_symbolopt (out, idopt) val () = prstr "; " val () = fprint_symbol (out, name) val ((*closing*)) = prstr ")" } | D0Cstaloadloc ( pfil, idsym, d0cs ) => { val () = prstr "D0Cstaloadloc(" val () = fprint_symbol (out, idsym) val () = prstr "; " val () = fprint_string (out, "(*d0eclist*)") val ((*closing*)) = prstr ")" } // | D0Crequire (pfil, name) => { val () = prstr "D0Crequire(" val () = fprint_string (out, name) val ((*closing*)) = prstr ")" } // | D0Cdynload (pfil, name) => { val () = prstr "D0Cdynload(" val () = fprint_string (out, name) val ((*closing*)) = prstr ")" } // | D0Clocal ( ds_head, ds_body ) => { val () = prstr "D0Clocal(\n" val () = fprint_d0eclist (out, ds_head) val () = prstr "\n(*in*)\n" val () = fprint_d0eclist (out, ds_body) val ((*closing*)) = prstr "\n)" } // | D0Cguadecl _ => { val ((*void*)) = prstr "D0Cguadecl(...)" } // end of [case] end // end of [fprint_d0ecl] (* ****** ****** *) implement fprint_d0eclist (out, xs) = () where { val () = $UT.fprintlst (out, xs, "\n", fprint_d0ecl) val () = fprint_newline (out) } (* end of [fprint_d0eclst] *) (* ****** ****** *) (* implement fprint_staloadarg (out, arg) = let // macdef prstr (str) = fprint_string (out, ,(str)) // in // case+ arg of | STLDfname (loc, name) => { val () = prstr "STLDfname(" val () = fprint_string (out, name) val () = prstr ")" } (* end of [STLDfname] *) | STLDnspace (loc, name) => { val () = prstr "STLDnspace(" val () = fprint_string (out, name) val () = prstr ")" } (* end of [STLDnspace] *) (* | STLDdeclist (loc, d0cs) => { val ((*void*)) = prstr "STLDdeclist(...)" } (* end of [STLDdeclist] *) *) // end // end of [fprint_staloadarg] *) (* ****** ****** *) (* end of [pats_syntax_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_symbol.dats0000644000175000017500000002552413431250607020672 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_symbol.sats" (* ****** ****** *) local // %{^ typedef ats_ptr_type string ; typedef ats_ptr_type symbol ; %} (* end of [%{^] *) // staload "libats/SATS/hashtable_linprb.sats" staload _(*anon*) = "libats/DATS/hashtable_linprb.dats" // #define HASHTBLSZ 1024 // symintr encode decode // abstype string_t = $extype"string" // extern castfn string_encode (x: string):<> string_t extern castfn string_decode (x: string_t):<> string overload encode with string_encode overload decode with string_decode // abstype symbol_t = $extype"symbol" // extern castfn symbol_encode (x: symbol):<> symbol_t extern castfn symbol_decode (x: symbol_t):<> symbol overload encode with symbol_encode overload decode with symbol_decode // typedef key = string_t typedef itm = symbol_t typedef keyitm = (key, itm) // implement keyitem_nullify (x) = () where { extern prfun __assert (x: &keyitm? >> keyitm): void prval () = __assert (x) val () = x.0 := $UN.cast{key} (null) prval () = Opt_some (x) } (* end of [keyitem_nullify] *) // implement keyitem_isnot_null (x) = b where { extern prfun __assert1 (x: &Opt(keyitm) >> keyitm): void prval () = __assert1 (x) val b = $UN.cast{ptr} (x.0) <> null val [b:bool] b = bool1_of_bool (b) extern prfun __assert2 (x: &keyitm >> opt (keyitm, b)): void prval () = __assert2 (x) } (* end of [keyitem_isnot_null] *) // implement hash_key (x, _) = string_hash_33 (decode(x)) implement equal_key_key (x1, x2, _) = compare (decode(x1), decode(x2)) = 0 // end of [equal_key_key] val hash0 = $UN.cast{hash(key)} (null) val eqfn0 = $UN.cast{eqfn(key)} (null) val [l:addr] ptbl = hashtbl_make_hint (hash0, eqfn0, HASHTBLSZ) // val rtbl = HASHTBLref_make_ptr {key,itm} (ptbl) // in // in of [local] // val symbol_null = $UN.cast{symbol} (null) // HX: a hack! // fun symbol_insert ( k: string, i: symbol ) : void = () where { val k = encode (k); val i = encode (i) val (fptbl | ptbl) = HASHTBLref_takeout_ptr (rtbl) var res: symbol_t val _keyisused = hashtbl_insert (ptbl, k, i, res) prval () = fptbl (ptbl) prval () = opt_clear (res) (* val () = assertloc (not(_keyisused)) // HX: no replacement *) } // end of [symbol_insert] fun symbol_search (k: string): symbol = let val (fptbl | ptbl) = HASHTBLref_takeout_ptr (rtbl) var res: itm? val b = hashtbl_search (ptbl, encode(k), res) prval () = fptbl (ptbl) in if b then let prval () = opt_unsome {itm} (res) in decode (res) end else let prval () = opt_unnone {itm} (res) in symbol_null end // end of [if] end // end of [symbol_search] end // end of [local] (* ****** ****** *) assume symbol_type = '{ name= string, stamp= uint } // end of [symbol_type] (* ****** ****** *) implement symbol_get_name (x) = x.name implement symbol_get_stamp (x) = x.stamp (* ****** ****** *) local // var the_symbol_stamp: uint = 0u val (pf_the_symbol_stamp | ()) = vbox_make_view_ptr {uint} (view@ the_symbol_stamp | &the_symbol_stamp) // end of [val] fun stamp_getinc (): uint = n where { prval vbox(pf) = pf_the_symbol_stamp val n = the_symbol_stamp val () = the_symbol_stamp := n + 1u } // end of [stamp_getinc] // in // in of [local] implement symbol_make_string (name) = let // extern fun symbol_is_null (x: symbol):<> bool = "atspre_ptr_is_null" // val x = symbol_search (name) in // case+ 0 of | _ when symbol_is_null (x) => let val stamp = stamp_getinc () val x = '{ name= name, stamp= stamp } // end of [val] (* val () = println! ("symbol_make_string: name = ", name) val () = println! ("symbol_make_string: stamp = ", stamp) *) val () = symbol_insert (name, x) in x // newly created symbol end // end of [_ when ...] | _ => x // HX: symbol of the given name is found // end // [symbol_make_string] end // end of [local] (* ****** ****** *) implement symbol_empty = x where { val x = symbol_make_string "" // // HX-2011-03-20: // make sure that this is the first created symbol // val () = assertloc (x.stamp = 0u) } // end of [symbol_empty] (* ****** ****** *) // implement symbol_NEG = symbol_make_string "~" // implement symbol_ADD = symbol_make_string "+" implement symbol_SUB = symbol_make_string "-" implement symbol_MUL = symbol_make_string "*" implement symbol_DIV = symbol_make_string "/" // implement symbol_AMPERSAND = symbol_make_string "&" implement symbol_AMPERBANG = symbol_make_string "&!" implement symbol_AMPERQMARK = symbol_make_string "&?" // implement symbol_AT = symbol_make_string "@" implement symbol_BACKSLASH = symbol_make_string "\\" implement symbol_BANG = symbol_make_string "!" // implement symbol_COLONEQ = symbol_make_string ":=" implement symbol_COLONEQCOLON = symbol_make_string ":=:" // implement symbol_GT = symbol_make_string ">" implement symbol_GTEQ = symbol_make_string ">=" implement symbol_LT = symbol_make_string "<" implement symbol_LTEQ = symbol_make_string "<=" // implement symbol_EQ = symbol_make_string "=" implement symbol_EQEQ = symbol_make_string "==" implement symbol_LTGT = symbol_make_string "<>" implement symbol_BANGEQ = symbol_make_string "!=" // implement symbol_GTLT = symbol_make_string "><" // implement symbol_GTGT = symbol_make_string ">>" implement symbol_LTLT = symbol_make_string "<<" // implement symbol_LAND = symbol_make_string "&&" implement symbol_LOR = symbol_make_string "||" // implement symbol_LRBRACKETS = symbol_make_string "[]" // implement symbol_MINUSGT = symbol_make_string "->" // implement symbol_QMARK = symbol_make_string "?" implement symbol_QMARKBANG = symbol_make_string "?!" // implement symbol_TILDE = symbol_make_string "~" implement symbol_UNDERSCORE = symbol_make_string "_" // implement symbol_VBOX = symbol_make_string "vbox" // implement symbol_LAMAT = symbol_make_string "lam@" implement symbol_LLAMAT = symbol_make_string "llam@" (* // // YD-2018-07-07: // 'ref@' is removed since 2015-12-10 // implement symbol_REFAT = symbol_make_string "ref@" *) // (* ****** ****** *) // implement symbol_INT = symbol_make_string "int" implement symbol_BOOL = symbol_make_string "bool" implement symbol_ADDR = symbol_make_string "addr" // (* implement symbol_CHAR = symbol_make_string "char" *) // implement symbol_REAL = symbol_make_string "real" // implement symbol_FLOAT = symbol_make_string "float" implement symbol_STRING = symbol_make_string "string" // implement symbol_CLS = symbol_make_string "cls" // nominal classes // implement symbol_EFF = symbol_make_string "eff" // sets of effects // implement symbol_TKIND = symbol_make_string "tkind" // template args // implement symbol_PROP = symbol_make_string "prop" implement symbol_TYPE = symbol_make_string "type" implement symbol_T0YPE = symbol_make_string "t@ype" implement symbol_VIEW = symbol_make_string "view" implement symbol_VTYPE = symbol_make_string "vtype" implement symbol_VT0YPE = symbol_make_string "vt0ype" implement symbol_VIEWTYPE = symbol_make_string "viewtype" implement symbol_VIEWT0YPE = symbol_make_string "viewt0ype" // implement symbol_TYPES = symbol_make_string "types" // (* ****** ****** *) implement symbol_TRUE_BOOL = symbol_make_string "true_bool" implement symbol_FALSE_BOOL = symbol_make_string "false_bool" (* ****** ****** *) implement symbol_DEFINED = symbol_make_string "defined" implement symbol_UNDEFINED = symbol_make_string "undefined" (* ****** ****** *) implement symbol_CAR = symbol_make_string "car" implement symbol_CDR = symbol_make_string "cdr" implement symbol_ISNIL = symbol_make_string "isnil" implement symbol_ISCONS = symbol_make_string "iscons" implement symbol_ISLIST = symbol_make_string "islist" implement symbol_TUPZ = symbol_make_string "tupz" (* ****** ****** *) // implement symbol__STDIN__ = symbol_make_string "__STDIN__" implement symbol__STRING__ = symbol_make_string "__STRING__" // (* ****** ****** *) // implement symbol_PATSHOME = symbol_make_string "PATSHOME" // implement symbol_PATSCONTRIB = symbol_make_string "PATSCONTRIB" // implement symbol_PATSHOMELOCS = symbol_make_string "PATSHOMELOCS" // implement symbol_PATSRELOCROOT = symbol_make_string "PATSRELOCROOT" // (* ****** ****** *) // implement symbol_ATS_PACKNAME = symbol_make_string "ATS_PACKNAME" // (* // HX-2014-06-06: this one is no longer in use: implement symbol_ATS_STALOADFLAG = symbol_make_string "ATS_STALOADFLAG" *) implement symbol_ATS_DYNLOADFLAG = symbol_make_string "ATS_DYNLOADFLAG" // (* ****** ****** *) implement symbol_ATS_DYNLOADNAME = symbol_make_string "ATS_DYNLOADNAME" (* ****** ****** *) implement symbol_ATS_MAINATSFLAG = symbol_make_string "ATS_MAINATSFLAG" (* ****** ****** *) implement symbol_ATS_EXTERN_PREFIX = symbol_make_string "ATS_EXTERN_PREFIX" implement symbol_ATS_STATIC_PREFIX = symbol_make_string "ATS_STATIC_PREFIX" (* ****** ****** *) implement eq_symbol_symbol (x1, x2) = x1.stamp = x2.stamp implement neq_symbol_symbol (x1, x2) = x1.stamp != x2.stamp (* ****** ****** *) implement compare_symbol_symbol (x1, x2) = compare (x1.stamp, x2.stamp) (* ****** ****** *) implement print_symbol (x) = fprint_symbol (stdout_ref, x) implement prerr_symbol (x) = fprint_symbol (stderr_ref, x) (* ****** ****** *) // implement fprint_symbol (out, x) = fprint_string (out, x.name) // implement fprint_symbolopt (out, opt) = let in // case+ opt of | Some (x) => { val () = fprint_string (out, "Some(") val () = fprint_symbol (out, x) val () = fprint_string (out, ")") } (* end of [Some] *) | None () => fprint_string (out, "None()") // end (* end of [fprint_symbolopt] *) // (* ****** ****** *) (* end of [pats_symbol.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_print.dats0000644000175000017500000010273713431250607021704 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _ (*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LAB = "./pats_label.sats" staload LOC = "./pats_location.sats" staload FIL = "./pats_filename.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) implement fprint_primcstsp (out, x) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x of | PMCSTSPmyfil (fil) => { val () = prstr ("$myfilename(") val () = $FIL.fprint_filename_full (out, fil) val () = prstr ")" } | PMCSTSPmyloc (loc) => { val () = prstr ("$mylocation(") val () = $LOC.fprint_location (out, loc) val () = prstr ")" } | PMCSTSPmyfun (flab) => { val () = prstr ("$myfunction(") val () = fprint_funlab (out, flab) val () = prstr ")" } // end // end of [fprint_primcstsp] (* ****** ****** *) // implement print_primdec (pmd) = fprint_primdec (stdout_ref, pmd) implement prerr_primdec (pmd) = fprint_primdec (stderr_ref, pmd) // (* ****** ****** *) implement fprint_primdec (out, x) = let // val sep = ", " macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x.primdec_node of // | PMDnone () => prstr "PMDnone()" // | PMDlist (pmds) => { val () = prstr "PMDlist(\n" val () = fprint_primdeclst (out, pmds) val ((*closing*)) = prstr ")" } // | PMDsaspdec (d2c) => { val () = prstr "PMDsaspdec(" val () = fprint_s2cst (out, d2c.s2aspdec_cst) val ((*closing*)) = prstr ")" } // | PMDextvar (name, inss) => { val () = prstr "PMDextvar(" val () = fprint (out, name) val ((*closing*)) = prstr ")" } // end of [PMVextvar] // | PMDdatdecs (s2cs) => { val () = prstr "PMDdatdecs(" val () = fprint_s2cstlst (out, s2cs) val ((*closing*)) = prstr ")" } | PMDexndecs (d2cs) => { val () = prstr "PMDexndecs(" val () = fprint_d2conlst (out, d2cs) val ((*closing*)) = prstr ")" } // | PMDimpdec (imp) => { val d2c = imp.hiimpdec_cst val imparg = imp.hiimpdec_imparg val tmparg = imp.hiimpdec_tmparg val () = prstr "PMDimpdec(" val () = fprint_d2cst (out, d2c) val () = prstr "; imparg=" val () = fprint_s2varlst (out, imparg) val () = prstr "; tmparg=" val () = $UT.fprintlst (out, tmparg, "; ", fprint_s2explst) val ((*closing*)) = prstr ")" } // | PMDfundecs ( knd, decarg, hfds ) => { val () = prstr "PMDfundecs(" val () = fprint_funkind (out, knd) val () = prstr "; " val () = fprint_s2qualst (out, decarg) val () = prstr "; " val () = $UT.fprintlst ( out, hfds, sep, lam (out, hfd) => fprint_d2var (out, hfd.hifundec_var) ) // end of [val] val ((*closing*)) = prstr ")" } // | PMDvaldecs (knd, hvds, inss) => { val () = prstr "PMDvaldecs(" val () = fprint_valkind (out, knd) val () = prstr "; " val () = $UT.fprintlst ( out, hvds, sep, lam (out, hvd) => fprint_hipat (out, hvd.hivaldec_pat) ) // end of [val] val ((*closing*)) = prstr ")" } | PMDvaldecs_rec (knd, hvds, inss) => { val () = prstr "PMDvaldecs_rec(" val () = fprint_valkind (out, knd) val () = prstr "; " val () = $UT.fprintlst ( out, hvds, sep, lam (out, hvd) => fprint_hipat (out, hvd.hivaldec_pat) ) // end of [val] val ((*closing*)) = prstr ")" } // | PMDvardecs (hvds, inss) => { val () = prstr "PMDvardecs(" val () = $UT.fprintlst ( out, hvds, sep, lam (out, hvd) => fprint_d2var (out, hvd.hivardec_dvar_ptr) ) // end of [val] val ((*closing*)) = prstr ")" } // | PMDinclude (knd, pmds) => { val () = prstr "PMDinclude(" val () = fprint_int (out, knd) val () = prstr "\n" val () = fprint_primdeclst (out, pmds) val ((*closing*)) = prstr ")" } // | PMDstaload (hid) => { val-HIDstaload (idopt, cfil, _, _, _) = hid.hidecl_node val () = prstr "PMDstaload(" val () = ( case+ idopt of | Some (id) => $SYM.fprint_symbol (out, id) | None ((*void*)) => () ) : void // end of [val] val () = ( case+ idopt of Some (id) => prstr " = " | None () => () ) : void // end of [val] val () = $FIL.fprint_filename_full (out, cfil) val ((*closing*)) = prstr ")" } // | PMDstaloadloc (pfil, nspace, pmds) => { val () = prstr "PMDstaloadloc(" val () = $FIL.fprint_filename_full (out, pfil) val () = $SYM.fprint_symbol (out, nspace) val () = prstr " = (*primdeclist*)" val ((*closing*)) = prstr ")" } (* end of [PMDstaloadloc] *) // | PMDdynload (hid) => { val-HIDdynload (fil) = hid.hidecl_node val () = prstr "PMDdynload(" val () = $FIL.fprint_filename_full (out, fil) val ((*closing*)) = prstr ")" } // | PMDlocal ( pmds_head, pmds_body ) => { val () = prstr "PMDlocal(" val () = fprint_string (out, "...") val ((*closing*)) = prstr ")" } // end of [PMDlocal] // end // end of [fprint_primdec] (* ****** ****** *) implement fprint_primdeclst (out, pmds) = let val () = $UT.fprintlst (out, pmds, "\n", fprint_primdec) // end of [val] in fprint_newline (out) end // end of [fprint_primdeclst] (* ****** ****** *) // implement print_primval (pmv) = fprint_primval (stdout_ref, pmv) implement prerr_primval (pmv) = fprint_primval (stderr_ref, pmv) // (* ****** ****** *) implement fprint_primval (out, x) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x.primval_node of // | PMVtmp(tmp) => { val () = prstr "PMVtmp(" val () = fprint_tmpvar(out, tmp) val () = prstr ")" } | PMVtmpref(tmp) => { val () = prstr "PMVtmpref(" val () = fprint_tmpvar(out, tmp) val () = prstr ")" } // | PMVarg(n) => { val () = prstr "PMVarg(" val () = fprint_int(out, n) val () = prstr ")" } | PMVargref(n) => { val () = prstr "PMVargref(" val () = fprint_int(out, n) val () = prstr ")" } | PMVargtmpref(n) => { val () = prstr "PMVargtmpref(" val () = fprint_int(out, n) val () = prstr ")" } | PMVargenv(nenv) => { val () = prstr "PMVargenv(" val () = fprint_int(out, nenv) val () = prstr ")" } // | PMVcst(d2c) => { val () = prstr "PMVcst(" val () = fprint_d2cst(out, d2c) val () = prstr ")" } | PMVenv(d2v) => { val () = prstr "PMVenv(" val () = fprint_d2var(out, d2v) val () = prstr ")" } // | PMVint(i) => { val () = prstr "PMVint(" val () = fprint_int(out, i) val () = prstr ")" } | PMVintrep(rep) => { val () = prstr "PMVintrep(" val () = fprint_string(out, rep) val () = prstr ")" } // | PMVbool(b) => { val () = prstr "PMVbool(" val () = fprint_bool(out, b) val () = prstr ")" } | PMVchar(c) => { val i = $UN.cast2int(c) val () = prstr "PMVchar(" val () = ( if char_isprint(c) then fprint_char(out, c) else fprintf (out, "int(%i)", @(i)) // end of [if] ) : void // end of [val] val () = prstr ")" } | PMVfloat(f) => { val () = prstr "PMVfloat(" val () = fprint_double(out, f) val () = prstr ")" } | PMVstring(str) => { val () = prstr "PMVstring(" val () = fprint_string(out, str) val () = prstr ")" } // | PMVi0nt(tok) => { val () = prstr "PMVi0nt(" val () = $SYN.fprint_i0nt(out, tok) val ((*closing*)) = prstr ")" } | PMVf0loat(tok) => { val () = prstr "PMVf0loat(" val () = $SYN.fprint_f0loat(out, tok) val ((*closing*)) = prstr ")" } // | PMVcstsp(cst) => { val () = fprint_primcstsp(out, cst) } (* end of [PMVcstsp] *) // | PMVtyrep(hse) => { val () = prstr "PMVtyrep(" val () = fprint_hisexp(out, hse) val () = prstr ")" } // | PMVsizeof(hse) => { val () = prstr "PMVsizeof(" val () = fprint_hisexp(out, hse) val () = prstr ")" } // | PMVtop() => prstr "PMVtop()" | PMVempty() => prstr "PMVempty()" // | PMVextval (name) => { val () = prstr "PMVextval(" val () = fprint_string (out, name) val ((*closing*)) = prstr ")" } // | PMVcastfn (d2c, arg) => { val () = prstr "PMVcastfn(" val () = fprint_d2cst (out, d2c) val () = prstr ", " val () = fprint_primval (out, arg) val () = prstr ")" } // | PMVselcon ( pmv, hse_sum, lab ) => { val () = prstr "PMVselcon(" val () = fprint_primval (out, pmv) val () = prstr "; " val () = fprint_hisexp (out, hse_sum) val () = prstr "; " val () = $LAB.fprint_label (out, lab) // HX: argument label val () = prstr ")" } // end of [PMVselcon] // | PMVselect ( pmv, hse_sel, pml ) => { val () = prstr "PMVselect(" val () = fprint_primval (out, pmv) val () = prstr "; " val () = fprint_hisexp (out, hse_sel) val () = prstr "; " val () = fprint_primlab (out, pml) val () = prstr ")" } // end of [PMVselect] | PMVselect2 ( pmv, hse_sel, pmls ) => { val () = prstr "PMVselect2(" val () = fprint_primval (out, pmv) val () = prstr "; " val () = fprint_hisexp (out, hse_sel) val () = prstr "; " val () = fprint_primlablst (out, pmls) val () = prstr ")" } // end of [PMVselect2] // | PMVselptr ( pmv, hse_sel, pmls ) => { val () = prstr "PMVselptr(" val () = fprint_primval (out, pmv) val () = prstr "; " val () = fprint_hisexp (out, hse_sel) val () = prstr "; " val () = fprint_primlablst (out, pmls) val () = prstr ")" } // end of [PMVselptr] // | PMVptrof(pmv) => { val () = prstr "PMVptrof(" val () = fprint_primval (out, pmv) val () = prstr ")" } // | PMVptrofsel ( pmv, hse_rt, pmls ) => { val () = prstr "PMVptrofsel(" val () = fprint_primval(out, pmv) val () = prstr "; " val () = fprint_hisexp(out, hse_rt) val () = prstr "; " val () = fprint_primlablst(out, pmls) val () = prstr ")" } (* PMVptrofsel *) // | PMVvararg(pmvs) => { val () = prstr "PMVvararg(" val () = fprint_primvalist(out, pmvs) val ((*closing*)) = prstr ")" } // | PMVrefarg (knd, freeknd, pmv) => { val () = prstr "PMVrefarg(" val () = fprint_int(out, knd) val () = prstr "; " val () = fprint_int(out, freeknd) val () = prstr "; " val () = fprint_primval(out, pmv) val ((*closing*)) = prstr ")" } (* end of [PMVrefarg] *) // | PMVfunlab(flab) => { val () = prstr "PMVfunlab(" val () = fprint_funlab(out, flab) val ((*closing*)) = prstr ")" } | PMVcfunlab(knd, flab) => { val () = prstr "PMVcfunlab(" val () = prstr "knd=" val () = fprint_int(out, knd) val () = prstr "; flab=" val () = fprint_funlab(out, flab) val ((*closing*)) = prstr ")" } // | PMVd2vfunlab(d2v, flab) => { val () = prstr "PMVd2vfunlab(" val () = prstr "d2v=" val () = fprint_d2var(out, d2v) val () = prstr ", flab=" val () = fprint_funlab(out, flab) val ((*closing*)) = prstr ")" } // | PMVlamfix (knd(*lam/fix*), pmv) => { // val () = prstr "PMVlamfix(" // val () = ( case+ knd of | None() => fprint! (out, "knd=lam") | Some(d2v) => fprint! (out, "knd=fix(", d2v, ")") ) : void // end of [val] // val () = fprint! (out, "; fun=", pmv, ")") // } (* end of [PMVlamfix] *) // | PMVtmpltcst (d2c, t2mas) => { val () = prstr "PMVtmpltcst(" val () = fprint_d2cst (out, d2c) val () = prstr "<" val () = fpprint_t2mpmarglst (out, t2mas) val () = prstr ">" val ((*closing*)) = prstr ")" } | PMVtmpltvar (d2v, t2mas) => { val () = prstr "PMVtmpltvar(" val () = fprint_d2var (out, d2v) val () = prstr "<" val () = fpprint_t2mpmarglst (out, t2mas) val () = prstr ">" val ((*closing*)) = prstr ")" } // | PMVtmpltcstmat (d2c, t2mas, mat) => { val () = prstr "PMVtmpltcstmat[" val () = fprint_tmpcstmat_kind (out, mat) val () = prstr "](" val () = fprint_d2cst (out, d2c) val () = prstr "<" val () = fpprint_t2mpmarglst (out, t2mas) val () = prstr ">" val ((*closing*)) = prstr ")" } | PMVtmpltvarmat (d2c, t2mas, mat) => { val () = prstr "PMVtmpltvarmat[" val () = fprint_tmpvarmat_kind (out, mat) val () = prstr "](" val () = fprint_d2var (out, d2c) val () = prstr "<" val () = fpprint_t2mpmarglst (out, t2mas) val () = prstr ">" val ((*closing*)) = prstr ")" } // (* | PMVtempenver(d2vs) => { val () = prstr "PMVtempenver(" val () = fprint_d2varlst(out, d2vs) val () = prstr ")" } *) // | PMVerror((*error*)) => prstr "PMVerror()" // end // end of [fprint_primval] (* ****** ****** *) implement fprint_primvalist (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_primval) // end of [fprint_primvalist] (* ****** ****** *) // implement print_primlab (pmv) = fprint_primlab (stdout_ref, pmv) implement prerr_primlab (pmv) = fprint_primlab (stderr_ref, pmv) // (* ****** ****** *) implement fprint_primlab (out, x) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x.primlab_node of // | PMLlab (l) => { val () = prstr "PMLlab(" val () = $LAB.fprint_label (out, l) val () = prstr ")" } | PMLind (pmvs) => { val () = prstr "PMLind(" val () = fprint_primvalist (out, pmvs) val () = prstr ")" } // end // end of [fprint_primlab] implement fprint_primlablst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_primlab) // end of [fprint_primlablst] (* ****** ****** *) extern fun fprint_labprimval : fprint_type (labprimval) implement fprint_labprimval (out, lx) = let val LABPRIMVAL (l, x) = lx in $LAB.fprint_label (out, l); fprint_string (out, "="); fprint_primval (out, x) end // end of [fprint_labprimval] implement fprint_labprimvalist (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_labprimval) // end of [fprint_labprimvalist] (* ****** ****** *) implement fprint_patck (out, x) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x of // | PATCKcon (d2c) => { val () = prstr "PATCKcon(" val () = fprint_d2con (out, d2c) val () = prstr ")" } // | PATCKint (i) => { val () = prstr "PATCKint(" val () = fprint_int (out, i) val () = prstr ")" } | PATCKbool (b) => { val () = prstr "PATCKbool(" val () = fprint_bool (out, b) val () = prstr ")" } | PATCKchar (c) => { val () = prstr "PATCKchar(" val () = fprint_char (out, c) val () = prstr ")" } | PATCKfloat (f) => { val () = prstr "PATCKfloat(" val () = fprint_double (out, f) val () = prstr ")" } | PATCKstring (str) => { val () = prstr "PATCKstring(" val () = fprint_string (out, str) val () = prstr ")" } // | PATCKi0nt (tok) => { val () = prstr "PATCKi0nt(" val () = $SYN.fprint_i0nt (out, tok) val () = prstr ")" } | PATCKf0loat (tok) => { val () = prstr "PATCKf0loat(" val () = $SYN.fprint_f0loat (out, tok) val () = prstr ")" } // end // end of [patck] implement print_patck (x) = fprint_patck (stdout_ref, x) implement prerr_patck (x) = fprint_patck (stderr_ref, x) (* ****** ****** *) implement fprint_tmpmovlst (out, xs) = let // fun fpr ( out: FILEref, x: tmpmov ) : void = { val () = fprint_tmpvar (out, x.1) val () = fprint_string (out, "<-") val () = fprint_tmprimval (out, x.0) } // in $UT.fprintlst (out, xs, ", ", fpr) end // end of [fprint_tmpmovlst] (* ****** ****** *) implement fprint_patckont (out, x) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x of // | PTCKNTnone ( ) => prstr "PTCKNTnone()" // | PTCKNTtmplab (tl) => { val () = prstr "PTCKNTtmplab(" val () = fprint_tmplab (out, tl) val () = prstr ")" } // | PTCKNTtmplabint (tl, int) => { val ( ) = prstr "PTCKNTtmplabint(" val () = fprint_tmplab (out, tl) val () = prstr ", " val () = fprint_int (out, int) val () = prstr ")" } // | PTCKNTtmplabmov (tl, tmvlst) => { val ( ) = prstr "PTCKNTtmplabmov(" val () = fprint_tmplab (out, tl) val () = prstr "; " val () = fprint_tmpmovlst (out, tmvlst) val () = prstr ")" } // | PTCKNTcaseof_fail (loc) => { val () = prstr "PTCKNTcaseof_fail(" val () = prstr ")" } // | PTCKNTfunarg_fail (loc, fl) => { val () = prstr "PTCKNTfunarg_fail(" val () = prstr ")" } // | PTCKNTraise (tmp, pmv) => { val () = prstr "PTCKNTraise(" val () = fprint_tmpvar (out, tmp) val () = prstr ", " val () = fprint_primval (out, pmv) val () = prstr ")" } end // end of [patckont] implement print_patckont (x) = fprint_patckont (stdout_ref, x) implement prerr_patckont (x) = fprint_patckont (stderr_ref, x) (* ****** ****** *) implement fprint_instr (out, x) = let // macdef prstr (str) = fprint_string (out, ,(str)) // in // case+ x.instr_node of // | INSfunlab (fl) => { val () = prstr "INSfunlab(" val () = fprint_funlab (out, fl) val ((*closing*)) = prstr ")" } // | INStmplab (tl) => { val () = prstr "INStmplab(" val () = fprint_tmplab (out, tl) val ((*closing*)) = prstr ")" } // | INScomment (str) => { val () = prstr "INScomment(" val () = fprint_string (out, str) val ((*closing*)) = prstr ")" } // | INSmove_val (tmp, pmv) => { val () = prstr "INSmove_val(" val () = fprint_tmpvar (out, tmp) val () = prstr " <- " val () = fprint_primval (out, pmv) val ((*closing*)) = prstr ")" } | INSpmove_val (tmp, pmv) => { val () = prstr "INSpmove_val(" val () = fprint_tmpvar (out, tmp) val () = prstr " <- " val () = fprint_primval (out, pmv) val ((*closing*)) = prstr ")" } // | INSmove_arg_val (i, pmv) => { val () = prstr "INSmove_arg_val(" val () = fprintf (out, "arg(%i)", @(i)) val () = prstr " <- " val () = fprint_primval (out, pmv) val ((*closing*)) = prstr ")" } // | INSfcall ( tmpret , hde_fun, hse_fun, hdes_arg ) => { val () = prstr "INSfcall(" val () = fprint_tmpvar (out, tmpret) val () = prstr " <- " val () = fprint_primval (out, hde_fun) val () = prstr "(" val () = fprint_hisexp (out, hse_fun) val () = prstr "; " val () = fprint_primvalist (out, hdes_arg) val ((*closing*)) = prstr "))" } // end of [INSfcall] | INSfcall2 ( tmpret , flab, ntl, hse_fun, hdes_arg ) => { val () = prstr "INSfcall2(" val () = fprint_tmpvar (out, tmpret) val () = prstr " <- " val () = fprint_funlab (out, flab) val () = prstr "(" val () = fprint_int (out, ntl) val () = prstr "; " val () = fprint_hisexp (out, hse_fun) val () = prstr "; " val () = fprint_primvalist (out, hdes_arg) val ((*closing*)) = prstr "))" } // end of [INSfcall2] // | INSextfcall ( tmpret, _fun, _arg ) => { val () = prstr "INSextfcall(" val () = fprint_tmpvar (out, tmpret) val () = prstr " <- " val () = fprint_string (out, _fun) val () = prstr "(" val () = fprint_primvalist (out, _arg) val ((*closing*)) = prstr "))" } // end of [INSextfcall] | INSextmcall ( tmpret, _obj, _mtd, _arg ) => { val () = prstr "INSextmcall(" val () = fprint_tmpvar (out, tmpret) val () = prstr " <- " val () = ( fprint_primval (out, _obj); prstr "."; fprint_string (out, _mtd) ) (* end of [val] *) val () = prstr "(" val () = fprint_primvalist (out, _arg) val ((*closing*)) = prstr "))" } // end of [INSextmcall] // | INScond ( pmv_cond, inss_then, inss_else ) => { val () = prstr "INScond(\n" val () = prstr "**COND**\n" val () = fprint_primval (out, pmv_cond) val () = prstr "\n" val () = prstr "**THEN**\n" val () = fprint_instrlst (out, inss_then) val () = prstr "**ELSE**\n" val () = fprint_instrlst (out, inss_else) val ((*closing*)) = prstr ")" } // | INSfreecon (pmv) => { val () = prstr "INSfreecon(" val () = fprint_primval (out, pmv) val () = prstr ")" } // | INSloop _ => { val () = prstr "INSloop(...)" } | INSloopexn (knd, tlab) => { val () = prstr "INSloopexn(" val () = fprint_int (out, knd) val () = prstr ", " val () = fprint_tmplab (out, tlab) val ((*closing*)) = prstr ")" } // | INScaseof _ => { val () = prstr "INScaseof(" val () = fprint_string (out, "...") val ((*closing*)) = prstr ")" } // | INSletpop () => { val () = prstr "INSletpop()" } | INSletpush (pmds) => { val () = prstr "INSletpush(\n" val () = fprint_primdeclst (out, pmds) val ((*closing*)) = prstr ")" } // | INSmove_con ( tmpret, d2c, hse_sum, lpmvs ) => { val () = prstr "INSmove_con(" val () = fprint_tmpvar (out, tmpret) val () = prstr " <- " val () = fprint_d2con (out, d2c) val () = prstr "(" val () = fprint_hisexp (out, hse_sum) val () = prstr ";" val () = fprint_labprimvalist (out, lpmvs) val ((*closing*)) = prstr "))" } // | INSmove_boxrec _ => { val () = prstr "INSmove_boxrec(" val () = prstr "..." val ((*closing*)) = prstr ")" } | INSmove_fltrec _ => { val () = prstr "INSmove_fltrec(" val () = prstr "..." val ((*closing*)) = prstr ")" } // | INSpatck (pmv, pck, pcknt) => { val () = prstr "INSpatck(" val () = fprint_patck (out, pck) val () = prstr "; " val () = fprint_patckont (out, pcknt) val () = prstr ")" } // | INSmove_ptrofsel ( tmp, pmv, hse_sel, pmls ) => { val () = prstr "INSmove_ptrofsel(" val () = fprint_tmpvar (out, tmp) val () = prstr " <- " val () = fprint_primval (out, pmv) val () = prstr "; " val () = fprint_hisexp (out, hse_sel) val () = prstr "; " val () = fprint_primlablst (out, pmls) val ((*closing*)) = prstr ")" } // end of [INSmove_ptrofsel] // (* | INSload_ptrofs (tmp, pmv, hse_sel, ofs) => { val () = prstr "INSload_ptrofs(" val () = fprint_tmpvar (out, tmp) val () = prstr " <- " val () = fprint_primval (out, pmv) val () = prstr "(" val () = fprint_hisexp (out, hse_sel) val () = prstr ")" val () = prstr "[" val () = fprint_primlablst (out, ofs) val () = prstr "]" val () = prstr ")" } *) // | INSstore_ptrofs (pmv_l, hse_rt, ofs, pmv_r) => { val () = prstr "INSstore_ptrofs(" val () = fprint_primval (out, pmv_l) val () = prstr "(" val () = fprint_hisexp (out, hse_rt) val () = prstr ")" val () = prstr "[" val () = fprint_primlablst (out, ofs) val () = prstr "]" val () = prstr " := " val () = fprint_primval (out, pmv_r) val ((*closing*)) = prstr ")" } // | INSxstore_ptrofs _ => prstr "INSxstore_ptrofs(...)" // | INSraise (tmp, pmv_exn) => { val () = prstr "INSraise(" val () = fprint_tmpvar (out, tmp) val () = prstr "; " val () = fprint_primval (out, pmv_exn) val ((*closing*)) = prstr ")" } (* end of [INSraise] *) // | INSmove_delay ( tmp, lin, hse, pmv_thk ) => { val () = prstr "INSmove_delay(" val () = fprint_tmpvar (out, tmp) val () = prstr "; " val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_hisexp (out, hse) val () = prstr "; " val () = fprint_primval (out, pmv_thk) val ((*closing*)) = prstr ")" } (* end of [INSmove_delay] *) | INSmove_lazyeval ( tmp, lin, hse, pmv_lazy ) => { val () = prstr "INSmove_lazyeval(" val () = fprint_tmpvar (out, tmp) val () = prstr "; " val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_hisexp (out, hse) val () = prstr "; " val () = fprint_primval (out, pmv_lazy) val ((*closing*)) = prstr ")" } (* end of [INSmove_lazyeval] *) // | INStrywith ( tmp_exn, inss_try, ibrs_with ) => { val () = prstr "INStrywith(" val () = fprint_string (out, "...") val ((*closing*)) = prstr ")" } (* end of [INStrywith] *) // | INSmove_list_nil (tmp) => { val () = prstr "INSmove_list_nil(" val () = fprint_tmpvar (out, tmp) val ((*closing*)) = prstr ")" } | INSpmove_list_nil (tmp) => { val () = prstr "INSpmove_list_nil(" val () = fprint_tmpvar (out, tmp) val ((*closing*)) = prstr ")" } | INSpmove_list_cons (tmp, hse_elt) => { val () = prstr "INSpmove_list_cons(" val () = fprint_tmpvar (out, tmp) val () = prstr ", " val () = fprint_hisexp (out, hse_elt) val ((*closing*)) = prstr ")" } // | INSmove_list_phead (tmphd, tmptl, hse_elt) => { val () = prstr "INSmove_list_phead(" val () = fprint_tmpvar (out, tmphd) val () = prstr "; " val () = fprint_tmpvar (out, tmptl) val () = prstr "; " val () = fprint_hisexp (out, hse_elt) val ((*closing*)) = prstr ")" } (* end of [INSmove_list_phead] *) | INSmove_list_ptail (tmptl1, tmptl2, hse_elt) => { val () = prstr "INSmove_list_ptail(" val () = fprint_tmpvar (out, tmptl1) val () = prstr "; " val () = fprint_tmpvar (out, tmptl2) val () = prstr "; " val () = fprint_hisexp (out, hse_elt) val ((*closing*)) = prstr ")" } (* end of [INSmove_list_ptail] *) // | INSstore_arrpsz_asz (tmp, asz) => { val () = prstr "INSstore_arrpsz_asz(" val () = fprint_tmpvar (out, tmp) val () = prstr "; " val () = fprint_int (out, asz) val ((*closing*)) = prstr ")" } (* end of [INSstore_arrpsz_asz] *) | INSstore_arrpsz_ptr (tmp, hse_elt, asz) => { val () = prstr "INSstore_arrpsz_ptr(" val () = fprint_tmpvar (out, tmp) val () = prstr "; " val () = fprint_hisexp (out, hse_elt) val () = prstr "; " val () = fprint_int (out, asz) val ((*closing*)) = prstr ")" } (* end of [INSstore_arrpsz_ptr] *) // | INSmove_arrpsz_ptr (tmp1, tmp2) => { val () = prstr "INSmove_arrpsz_ptr(" val () = fprint_tmpvar (out, tmp1) val () = prstr "; " val () = fprint_tmpvar (out, tmp2) val ((*closing*)) = prstr ")" } (* end of [INSmove_arrpsz_ptr] *) // | INSupdate_ptrinc (tmp, hse_elt) => { val () = prstr "INSupdate_ptrinc(" val () = fprint_tmpvar (out, tmp) val () = prstr "; " val () = fprint_hisexp (out, hse_elt) val ((*closing*)) = prstr ")" } (* end of [INSupdate_ptrinc] *) | INSupdate_ptrdec (tmp, hse_elt) => { val () = prstr "INSupdate_ptrdec(" val () = fprint_tmpvar (out, tmp) val () = prstr "; " val () = fprint_hisexp (out, hse_elt) val ((*closing*)) = prstr ")" } (* end of [INSupdate_ptrdec] *) // | INSclosure_initize (tmp, knd, flab) => { val () = prstr "INSclosure_initize(" val () = fprint_tmpvar(out, tmp) val () = prstr " <- " val () = fprint_funlab (out, flab) val ((*closing*)) = prstr ")" } (* end of [INSclosure_initize] *) // | INStmpdec (tmp) => { val () = prstr "INStmpdec(" val () = fprint_tmpvar (out, tmp) val ((*closing*)) = prstr ")" } (* end of [INStmpdec] *) // | INSextvar (name, pmv) => { val () = prstr "INSextvar(" val () = fprint (out, name) val () = prstr " = " val () = fprint_primval (out, pmv) val ((*closing*)) = prstr ")" } (* end of [INSextvar] *) // | INSdcstdef (d2c, pmv) => { val () = prstr "INSdcstdef(" val () = fprint_d2cst (out, d2c) val () = prstr " = " val () = fprint_primval (out, pmv) val ((*closing*)) = prstr ")" } (* end of [INSdcstdef] *) // | INStempenver(d2vs) => { val () = prstr "INStempenver(" val () = fprint_d2varlst(out, d2vs) val ((*closing*)) = prstr ")" } // | _ (*rest-of-instr*) => prstr "INS...(...)" // end // end of [fprint_instr] (* ****** ****** *) implement print_instr (ins) = fprint_instr (stdout_ref, ins) implement prerr_instr (ins) = fprint_instr (stderr_ref, ins) (* ****** ****** *) implement fprint_instrlst (out, xs) = let val () = $UT.fprintlst (out, xs, "\n", fprint_instr) // end of [val] in fprint_newline (out) end // end of [fprint_instrlst] (* ****** ****** *) implement fprint_tmpsub (out, xs) = let // fun loop ( out: FILEref, xs: tmpsub, i: int ) : void = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ xs of | TMPSUBcons (s2v, s2e, xs) => let val () = if i > 0 then prstr "; " // end of [val] val () = fprint_s2var (out, s2v) val () = prstr " -> " val () = fprint_s2exp (out, s2e) in loop (out, xs, i+1) end // end of [tmpsub_cons] | TMPSUBnil () => () // end // end of [loop] // in loop (out, xs, 0) end // end of [fprint_tmpsub] implement fprint_tmpsubopt (out, opt) = let // macdef prstr (x) = fprint_string (out, ,(x)) // in // case opt of | Some (tsub) => { val () = prstr "Some(" val () = fprint_tmpsub (out, tsub) val () = prstr ")" } // end of [Some] | None () => prstr "None()" // end // end of [fprint_tmpsubopt] (* ****** ****** *) implement fprint_hifundec2 (out, hfd2) = let // val HIFUNDEC2 (hfd, tsub) = hfd2 // val () = fprint_string (out, "HIFUNDEC2(") val () = fprint_hifundec (out, hfd) val () = fprint_string (out, "; ") val () = fprint_tmpsub (out, tsub) val () = fprint_string (out, ")") // in // nothing end // end of [fprint_hifundec2] (* ****** ****** *) implement fprint_hiimpdec2 (out, imp2) = let // val HIIMPDEC2 (imp, tsub, s2ess) = imp2 // val () = fprint_string (out, "HIIMPDEC2(") val () = fprint_hiimpdec (out, imp) val () = fprint_string (out, "; ") val () = fprint_tmpsub (out, tsub) val () = fprint_string (out, ")") // in // nothing end // end of [fprint_hiimpdec2] (* ****** ****** *) implement fprint_tmpcstmat (out, opt) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ opt of | TMPCSTMATnone ((*void*)) => prstr "TMPCSTMATnone()" // end of [TMPCSTMATnone] | TMPCSTMATsome (imp, tmpsub, knd) => let val () = prstr "TMPCSTMATsome(" val () = fprint_d2cst (out, imp.hiimpdec_cst) val () = prstr "; " val () = fprint_s2varlst (out, imp.hiimpdec_imparg) val () = prstr "; " val () = fprint_s2explstlst (out, imp.hiimpdec_tmparg) val () = prstr "; " val () = fprint_tmpsub (out, tmpsub) val () = prstr ")" in // nothing end // end of [TMPCSTMATsome] | TMPCSTMATsome2 (d2c, s2ess, flab) => let val () = prstr "TMPCSTMATsome2(" val () = fprint_funlab (out, flab) val () = prstr "; " val () = fprint_s2explstlst (out, s2ess) val () = prstr ")" in // nothing end // end of [TMPCSTMATsome2] // end // end of [fprint_tmpcstmat] implement fprint_tmpcstmat_kind (out, opt) = let // val knd = ( case+ opt of | TMPCSTMATnone _ => 0 | TMPCSTMATsome _ => 1 | TMPCSTMATsome2 _ => 2 ) : int // end of [val] // in fprint_int (out, knd) end // end of [fprint_tmpcstmat_kind] (* ****** ****** *) implement fprint_tmpvarmat (out, opt) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ opt of | TMPVARMATnone ((*void*)) => prstr "TMPVARMATnone()" // end of [TMPVARMATnone] | TMPVARMATsome (hfd, tmpsub, knd) => let val () = prstr "TMPVARMATsome(" val () = fprint_d2var (out, hfd.hifundec_var) val () = prstr "; " val () = fprint_s2varlst (out, hfd.hifundec_imparg) val () = prstr "; " val () = fprint_tmpsub (out, tmpsub) val () = prstr ")" in // nothing end // end of [TMPVARMATsome] | TMPVARMATsome2 (d2v, s2ess, flab) => let val () = prstr "TMPVARMATsome2(" val () = fprint_funlab (out, flab) val () = prstr "; " val () = fprint_s2explstlst (out, s2ess) val () = prstr ")" in // nothing end // end of [TMPVARMATsome2] // end // end of [fprint_tmpvarmat] implement fprint_tmpvarmat_kind (out, opt) = let // val knd = ( case+ opt of | TMPVARMATnone _ => 0 | TMPVARMATsome _ => 1 | TMPVARMATsome2 _ => 2 ) : int // end of [val] // in fprint_int (out, knd) end // end of [fprint_tmpvarmat_kind] (* ****** ****** *) implement fprint_vbindmap (out, vbmap) = let // fun fpr ( out: FILEref, vb: @(d2var, primval) ) : void = ( fprint_d2var (out, vb.0); fprint_string (out, "->"); fprint_primval (out, vb.1) ) (* end of [fpr] *) // val vbs = d2varmap_listize (vbmap) val () = $UT.fprintlst (out, $UN.linlst2lst(vbs), "; ", fpr) val () = list_vt_free (vbs) // in // nothing end // end of [fprint_vbindlst] (* ****** ****** *) (* end of [pats_ccomp_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_intinf.sats0000644000175000017500000001025713431250607020670 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) abstype intinf_type typedef intinf = intinf_type (* ****** ****** *) fun intinf_make_int (i: int): intinf fun intinf_make_size (sz: size_t): intinf (* ****** ****** *) (* // // HX: [rep] is unsigned! // 0 -> base 8; 0x -> base 16; _ => base 10 // *) fun intinf_make_string (rep: string): intinf = "ext#patsopt_intinf_make_string" // end of [intinf_make_string] (* ****** ****** *) fun intinf_make_base_string_ofs {n:int} {i:nat | i <= n} ( base: intBtwe(2,36), rep: string n, ofs: int i ) : intinf // end of [intinf_make_base_string_ofs] (* ****** ****** *) fun fprint_intinf (out: FILEref, x: intinf): void (* ****** ****** *) // // HX: this is unsafe because of potential overflow // fun intinf_get_int (n: intinf):<> int (* ****** ****** *) fun lt_intinf_int (x1: intinf, x2: int):<> bool overload < with lt_intinf_int fun lte_intinf_int (x1: intinf, x2: int):<> bool overload <= with lte_intinf_int fun gt_intinf_int (x1: intinf, x2: int):<> bool overload > with gt_intinf_int fun gte_intinf_int (x1: intinf, x2: int):<> bool overload >= with gte_intinf_int fun eq_intinf_int (x1: intinf, x2: int):<> bool fun eq_int_intinf (x1: int, x2: intinf):<> bool fun eq_intinf_intinf (x1: intinf, x2: intinf):<> bool overload = with eq_intinf_int overload = with eq_int_intinf overload = with eq_intinf_intinf fun neq_intinf_int (x1: intinf, x2: int):<> bool fun neq_int_intinf (x1: int, x2: intinf):<> bool fun neq_intinf_intinf (x1: intinf, x2: intinf):<> bool overload != with neq_intinf_int overload != with neq_int_intinf overload != with neq_intinf_intinf fun compare_intinf_int (x1: intinf, x2: int):<> int fun compare_intinf_intinf (x1: intinf, x2: intinf):<> int (* ****** ****** *) // fun neg_intinf (x: intinf):<> intinf // fun add_intinf_int (x1: intinf, x2: int):<> intinf fun add_int_intinf (x1: int, x2: intinf):<> intinf fun add_intinf_intinf (x1: intinf, x2: intinf):<> intinf // fun sub_intinf_intinf (x1: intinf, x2: intinf):<> intinf // fun mul_intinf_int (x1: intinf, x2: int):<> intinf fun mul_int_intinf (x1: int, x2: intinf):<> intinf fun mul_intinf_intinf (x1: intinf, x2: intinf):<> intinf // overload ~ with neg_intinf overload + with add_intinf_int overload + with add_int_intinf overload + with add_intinf_intinf overload - with sub_intinf_intinf overload * with mul_intinf_int overload * with mul_int_intinf overload * with mul_intinf_intinf // (* ****** ****** *) // abstype intinfset_type typedef intinfset = intinfset_type // typedef intinflst = List (intinf) vtypedef intinflst_vt = List_vt (intinf) // fun intinfset_sing (x: intinf): intinfset fun intinfset_is_member (xs: intinfset, x: intinf): bool fun intinfset_add (xs: intinfset, x: intinf): intinfset // fun intinfset_listize (xs: intinfset): intinflst_vt // fun fprint_intinfset (out: FILEref, xs: intinfset): void // (* ****** ****** *) (* end of [pats_intinf.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_error.sats0000644000175000017500000000571213431250607022200 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) datatype staerr = // | STAERR_label_equal of (location, label, label) | STAERR_stamp_equal of (location, stamp, stamp) // | STAERR_funclo_equal of (location, funclo, funclo) | STAERR_clokind_equal of (location, int(*knd*), int(*knd*)) | STAERR_linearity_equal of (location, int(*lin*), int(*lin*)) | STAERR_pfarity_equal of (location, int(*npf*), int(*npf*)) // | STAERR_s2eff_subeq of (location, s2eff, s2eff) // | STAERR_boxity_equal of (location, int(*knd*), tyreckind) | STAERR_tyreckind_equal of (location, tyreckind, tyreckind) // | STAERR_refval_equal of (location, int(*knd*), int(*knd*)) // | STAERR_s2zexp_merge of (location, s2zexp, s2zexp) // | STAERR_s2exp_equal of (location, s2exp, s2exp) | STAERR_s2exp_tyleq of (location, s2exp, s2exp) // | STAERR_s2Var_s2exp_solve of (location, s2Var, s2exp) // | STAERR_s2explst_length of (location, int(*-1/1*)) | STAERR_labs2explst_length of (location, int(*-1/1*)) // | STAERR_wths2explst_shape of (location, wths2explst, wths2explst) // | STAERR_s2exp_linearity of (location, s2exp) // // end of [datatype] viewtypedef staerrlst_vt = List_vt (staerr) (* ****** ****** *) // fun the_staerrlst_clear (): void // fun the_staerrlst_add (x: staerr): void // // HX-2011-10-22: // [n] stores the total number of errors, some of // which may not be recorded // fun the_staerrlst_get (n: &int? >> int): staerrlst_vt // (* ****** ****** *) fun prerr_the_staerrlst (): void (* ****** ****** *) (* end of [pats_staexp2_error.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_solve.dats0000644000175000017500000012421613431250607022161 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload LAB = "./pats_label.sats" staload STMP = "./pats_stamp.sats" // overload compare with $LAB.compare_label_label overload compare with $STMP.compare_stamp_stamp // (* ****** ****** *) staload EFF = "./pats_effect.sats" // macdef effset_isnil = $EFF.effset_isnil macdef effset_isall = $EFF.effset_isall macdef effset_subset = $EFF.effset_subset // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_trans3_env.sats" (* ****** ****** *) staload "./pats_staexp2_solve.sats" (* ****** ****** *) implement label_equal_solve_err (loc0, l1, l2, err) = ( // if compare(l1, l2) = 0 then () else let val () = err := err + 1 val () = the_staerrlst_add (STAERR_label_equal(loc0, l1, l2)) // end of [val] in // nothing end // end of [if] // ) (* end of [label_equal_solve_err] *) implement stamp_equal_solve_err (loc0, s1, s2, err) = ( if compare(s1, s2) = 0 then () else let val () = err := err + 1 val () = the_staerrlst_add (STAERR_stamp_equal(loc0, s1, s2)) // end of [val] in // nothing end // end of [if] ) (* end of [stamp_equal_solve_err] *) (* ****** ****** *) implement funclo_equal_solve ( loc0, fc1, fc2 ) = err where { // var err: int = 0 val ((*void*)) = funclo_equal_solve_err (loc0, fc1, fc2, err) // } // end of [funclo_equal_solve] implement funclo_equal_solve_err ( loc0, fc1, fc2, err ) = ( // if (fc1 = fc2) then () else let val () = (err := err + 1) val () = the_staerrlst_add (STAERR_funclo_equal(loc0, fc1, fc2)) // end of [val] in // nothing end // end of [if] // ) (* end of [funclo_equal_solve_err] *) (* ****** ****** *) implement clokind_equal_solve_err ( loc0, knd1, knd2, err ) = ( if (knd1 = knd2) then ((*void*)) else let val () = (err := err + 1) val () = the_staerrlst_add (STAERR_clokind_equal(loc0, knd1, knd2)) // end of [val] in // nothing end // end of [if] ) (* end of [clokind_equal_solve_err] *) (* ****** ****** *) implement linearity_equal_solve ( loc0, lin1, lin2 ) = err where { // var err: int = 0 // val () = linearity_equal_solve_err (loc0, lin1, lin2, err) // } (* end of [linearity_equal_solve] *) implement linearity_equal_solve_err (loc0, lin1, lin2, err) = ( // if (lin1 = lin2) then () else let val () = (err := err + 1) val () = the_staerrlst_add (STAERR_linearity_equal(loc0, lin1, lin2)) // end of [val] in // nothing end // end of [if] // ) (* end of [linearity_equal_solve_err] *) (* ****** ****** *) implement pfarity_equal_solve ( loc0, npf1, npf2 ) = err where { // var err: int = 0 // val () = pfarity_equal_solve_err (loc0, npf1, npf2, err) // } (* end of [pfarity_equal_solve] *) implement pfarity_equal_solve_err (loc0, npf1, npf2, err) = ( // if (npf1 = npf2) then () else let val () = (err := err + 1) val () = the_staerrlst_add (STAERR_pfarity_equal(loc0, npf1, npf2)) // end of [val] in // nothing end // end of [if] // ) (* end of [pfarity_equal_solve_err] *) (* ****** ****** *) implement boxity_equal_solve_err (loc0, knd1, knd2, err) = let // val i = ( if tyreckind_is_boxed(knd2) then 1-knd1 else knd1 ) : int // end of [val] // in if (i = 0) then () else let val () = (err := err + 1) val () = the_staerrlst_add (STAERR_boxity_equal (loc0, knd1, knd2)) // end of [val] in // nothing end // end of [if] end // end of [boxity_equal_solve_err] implement tyreckind_equal_solve_err (loc0, knd1, knd2, err) = ( // if (knd1 = knd2) then () else let val () = (err := err + 1) val () = the_staerrlst_add (STAERR_tyreckind_equal(loc0, knd1, knd2)) // end of [val] in // nothing end // end of [else] // ) (* end of [tyreckind_equal_solve_err] *) (* ****** ****** *) implement refval_equal_solve_err (loc0, knd1, knd2, err) = ( // if (knd1 = knd2) then () else let val () = (err := err + 1) val () = the_staerrlst_add (STAERR_refval_equal(loc0, knd1, knd2)) // end of [val] in // nothing end // end of [else] // ) (* end of [refval_equal_solve_err] *) (* ****** ****** *) // extern fun s2Var_merge_szexp_err ( loc0: location , s2V1: s2Var, s2ze2: s2zexp, err: &int ) : void // end of [s2Var_merge_szexp_err] // implement s2Var_merge_szexp_err (loc0, s2V1, s2ze2, err) = let // val s2ze1 = s2Var_get_szexp (s2V1) val s2ze12 = s2zexp_merge (s2ze1, s2ze2) // val ((*void*)) = if s2zexp_is_bot(s2ze12) then () where { val () = (err := err + 1) val () = the_staerrlst_add(STAERR_s2zexp_merge(loc0, s2ze1, s2ze2)) // end of [val] } (* end of [then] *) // in s2Var_set_szexp(s2V1, s2ze12) end // end of [s2Var_merge_szexp_err] (* ****** ****** *) // extern fun s2Var_s2exp_srtck_err ( loc0: location, s2V1: s2Var, s2e2: s2exp, err: &int ) : void // end of [s2Var_s2exp_srtck_err] // implement s2Var_s2exp_srtck_err (loc0, s2V1, s2e2, err) = let // val s2t1 = s2Var_get_srt (s2V1) val s2t2 = s2e2.s2exp_srt val ltmat = s2rt_ltmat1 (s2t2, s2t1) // HX: real-run val () = if ~(ltmat) then { val () = (err := err + 1) val () = the_staerrlst_add(STAERR_s2Var_s2exp_solve(loc0, s2V1, s2e2)) // } (* end of [if] *) // end of [val] // in // nothing end // end of [s2Var_s2exp_srtck_err] (* ****** ****** *) extern fun s2hnf_tyleq_solve_lbs_err ( loc: location , lbs: s2VarBoundlst, s2f: s2hnf, err: &int ) : void // end of [s2hnf_tyleq_solve_lbs_err] extern fun s2hnf_tyleq_solve_ubs_err ( loc: location , s2f: s2hnf, ubs: s2VarBoundlst, err: &int ) : void // end of [s2hnf_tyleq_solve_ubs_err] (* ****** ****** *) // extern fun s2hnf_equal_solve_lVar_err ( loc0: location , s2f1: s2hnf, s2f2: s2hnf, s2V1: s2Var, err: &int ) : void // end of [s2hnf_equal_solve_lVar_err] extern fun s2hnf_equal_solve_lVar_err_nck ( loc0: location , s2f1: s2hnf, s2f2: s2hnf, s2V1: s2Var, err: &int ) : void // end of [s2hnf_equal_solve_lVar_err_nck] // (* ****** ****** *) implement s2hnf_equal_solve_lVar_err ( loc0, s2f1, s2f2, s2V1, err ) = let // (* val () = ( println! ("s2hnf_equal_solve_lVar_err: s2f1 = ", s2f1); println! ("s2hnf_equal_solve_lVar_err: s2f2 = ", s2f2); ) (* end of [val] *) *) // val s2e1 = s2hnf2exp (s2f1) val s2e2 = s2hnf2exp (s2f2) // val (ans, s2cs, s2vs, s2Vs) = s2Var_occurcheck_s2exp(s2V1, s2e2) // in // if ans = 0 then let val () = s2Varlst_add_sVarlst(s2Vs, s2V1) in s2hnf_equal_solve_lVar_err_nck(loc0, s2f1, s2f2, s2V1, err) end else let // ans > 0 (* val () = ( println! ("s2exp_equal_solve_lVar_err: s2f1 = ", s2f1); println! ("s2exp_equal_solve_lVar_err: s2f2 = ", s2f2); println! ("s2exp_equal_solve_lVar_err: s2cs = ", s2cs); println! ("s2exp_equal_solve_lVar_err: s2vs = ", s2vs); ) // end of [val] *) in trans3_env_add_eqeq (loc0, s2e1, s2e2) end // end of [if] // end // end of [s2hnf_equal_solve_lVar_err] implement s2hnf_equal_solve_lVar_err_nck ( loc0, s2f1, s2f2, s2V1, err ) = let // val s2e2 = s2hnf2exp (s2f2) val () = s2Var_s2exp_srtck_err(loc0, s2V1, s2e2, err) // val isimp = s2exp_is_impred(s2e2) // val () = if isimp then { // val s2ze2 = s2zexp_make_s2exp (s2e2) // val () = s2Var_merge_szexp_err(loc0, s2V1, s2ze2, err) // } // end of [if] // end of [val] // val () = s2Var_set_link(s2V1, Some s2e2) // val () = if isimp then { // val () = let val lbs = s2Var_get_lbs (s2V1) in s2hnf_tyleq_solve_lbs_err(loc0, lbs, s2f2, err) end // end of [val] val () = let val ubs = s2Var_get_ubs (s2V1) in s2hnf_tyleq_solve_ubs_err(loc0, s2f2, ubs, err) end // end of [val] // } // end of [if] // end of [val] // in // nothing end // end of [s2hnf_equal_solve_lVar_err_nck] (* ****** ****** *) extern fun s2hnf_equal_solve_rVar_err ( loc0: location , s2f1: s2hnf, s2f2: s2hnf, s2V2: s2Var, err: &int ) : void // end of [s2hnf_equal_solve_rVar_err] extern fun s2hnf_equal_solve_rVar_err_nck ( loc0: location , s2f1: s2hnf, s2f2: s2hnf, s2V2: s2Var, err: &int ) : void // end of [s2hnf_equal_solve_rVar_err_nck] (* ****** ****** *) implement s2hnf_equal_solve_rVar_err (loc0, s2f1, s2f2, s2V2, err) = let // val s2e1 = s2hnf2exp(s2f1) and s2e2 = s2hnf2exp(s2f2) // (* val () = ( println! ("s2hnf_equal_solve_rVar_err: s2e1 = ", s2e1); println! ("s2hnf_equal_solve_rVar_err: s2t1 = ", s2e1.s2exp_srt); println! ("s2hnf_equal_solve_rVar_err: s2e2 = ", s2e2); println! ("s2hnf_equal_solve_rVar_err: s2t2 = ", s2e2.s2exp_srt); ) (* end of [val] *) *) // val (ans, s2cs, s2vs, s2Vs) = s2Var_occurcheck_s2exp(s2V2, s2e1) // in // if (ans = 0) then let val () = s2Varlst_add_sVarlst(s2Vs, s2V2) in s2hnf_equal_solve_rVar_err_nck(loc0, s2f1, s2f2, s2V2, err) end else let // ans > 0 (* val () = ( println! ("s2exp_equal_solve_rVar_err: s2f1 = ", s2f1); println! ("s2exp_equal_solve_rVar_err: s2f2 = ", s2f2); println! ("s2exp_equal_solve_rVar_err: s2cs = ", s2cs); println! ("s2exp_equal_solve_rVar_err: s2vs = ", s2vs); ) // end of [val] *) in trans3_env_add_eqeq (loc0, s2e1, s2e2) end // end of [if] // end // end of [s2hnf_equal_solve_rVar_err] implement s2hnf_equal_solve_rVar_err_nck (loc0, s2f1, s2f2, s2V2, err) = let // val s2e1 = s2hnf2exp(s2f1) val () = s2Var_s2exp_srtck_err(loc0, s2V2, s2e1, err) // val isimp = s2exp_is_impred(s2e1) // val () = if isimp then { val s2ze1 = s2zexp_make_s2exp (s2e1) val ((*void*)) = s2Var_merge_szexp_err(loc0, s2V2, s2ze1, err) } // end of [if] // end of [val] // val () = s2Var_set_link(s2V2, Some s2e1) // val () = if isimp then { // val () = let val lbs = s2Var_get_lbs(s2V2) in s2hnf_tyleq_solve_lbs_err(loc0, lbs, s2f1, err) end // end of [val] val () = let val ubs = s2Var_get_ubs (s2V2) in s2hnf_tyleq_solve_ubs_err(loc0, s2f1, ubs, err) end // end of [val] // } // end of [if] // end of [val] // in // nothing end // end of [s2hnf_equal_solve_rVar_err_nck] (* ****** ****** *) implement s2eff_subeq_solve ( loc0, s2fe1, s2fe2 ) = err where { // var err: int = 0 val ((*void*)) = s2eff_subeq_solve_err(loc0, s2fe1, s2fe2, err) // } // end of [s2eff_subeq_solve] implement s2eff_subeq_solve_err (loc0, s2fe1, s2fe2, err) = let // val s2fe1 = s2eff_hnfize (s2fe1) val s2fe2 = s2eff_hnfize (s2fe2) // in // case+ (s2fe1, s2fe2) of | (S2EFFset (efs1), _) when effset_isnil efs1 => () | (_, S2EFFset (efs2)) when effset_isall efs2 => () | (S2EFFset (efs1), S2EFFset (efs2)) when effset_subset (efs1, efs2) => () | (S2EFFexp (s2e1), S2EFFexp (s2e2)) when s2exp_syneq (s2e1, s2e2) => () | (_, S2EFFexp (s2e2)) => ( case+ s2e2.s2exp_node of | S2EVar s2V2 => let val s2e1 = s2exp_eff (s2fe1) val s2f1 = s2exp2hnf_cast (s2e1) val s2f2 = s2exp2hnf_cast (s2e2) in s2hnf_equal_solve_rVar_err (loc0, s2f1, s2f2, s2V2, err) // end of [s2hnf_equal_solve_rVar_err] end // end of [S2EVar] | _ => let val () = err := err + 1 in the_staerrlst_add (STAERR_s2eff_subeq(loc0, s2fe1, s2fe2)) // the_staerrlst_add end // end of [_] ) // end of [S2EFFexp] | (_, _) => let val () = err := err + 1 in the_staerrlst_add(STAERR_s2eff_subeq(loc0, s2fe1, s2fe2)) end // end of [_] // end // end of [s2eff_subeq_solve_err] (* ****** ****** *) implement s2hnf_equal_solve ( loc0, s2f10, s2f20 ) = err where { // var err: int = 0 // val ((*void*)) = s2hnf_equal_solve_err(loc0, s2f10, s2f20, err) // } (* end of [s2hnf_equal_solve] *) implement s2exp_equal_solve ( loc0, s2e10, s2e20 ) = err where { // var err: int = 0 // val ((*void*)) = s2exp_equal_solve_err(loc0, s2e10, s2e20, err) // } (* end of [s2exp_equal_solve] *) (* ****** ****** *) fun s2hnf_equal_solve_abscon_err ( loc0: location , s2f1: s2hnf, s2f2: s2hnf, err: &int ) : void = let // val s2e1 = s2hnf2exp (s2f1) and s2e2 = s2hnf2exp (s2f2) // fun aux_solve ( // // nontailrec // loc0: location, s2e1: s2exp, s2e2: s2exp, err: &int ) : void = let in // case+ ( s2e1.s2exp_node , s2e2.s2exp_node ) of (* case+ *) | ( S2Eapp(s2e11, s2es12) , S2Eapp(s2e21, s2es22) ) => let val () = aux_solve(loc0, s2e11, s2e21, err) val () = s2explst_equal_solve_err(loc0, s2es12, s2es22, err) in // nothing end // end of [S2Eapp, S2Eapp] | (_(*non-S2Eapp*), _(*non-S2Eapp*)) => () // end // end of [aux_solve] // fun aux_check ( // // tailrec // s2e1: s2exp, s2e2: s2exp ) : bool = let in // case+ ( s2e1.s2exp_node , s2e2.s2exp_node ) of | (S2Ecst s2c1, S2Ecst s2c2) => eq_s2cst_s2cst(s2c1, s2c2) | (S2Eapp (s2e1, _), S2Eapp (s2e2, _)) => aux_check(s2e1, s2e2) | (_(*non-S2Ecstapp*), _(*non-S2Ecstapp*)) => false // end // end of [aux_check] // val absconeq = aux_check(s2e1, s2e2) // in // if absconeq then aux_solve(loc0, s2e1, s2e2, err) else (err := err + 1) // end // end of [s2hnf_equal_solve_abscon_err] (* ****** ****** *) implement s2hnf_equal_solve_err ( loc0, s2f10, s2f20, err ) = let // val err0 = err val s2e10 = s2hnf2exp (s2f10) and s2e20 = s2hnf2exp (s2f20) val s2en10 = s2e10.s2exp_node and s2en20 = s2e20.s2exp_node (* val () = ( println! ("s2hnf_equal_solve_err: err0 = ", err0); print ("s2hnf_equal_solve_err: s2e10 = "); pprint_s2exp (s2e10); print_newline (); print ("s2hnf_equal_solve_err: s2e20 = "); pprint_s2exp (s2e20); print_newline (); ) // end of [val] *) val () = case+ (s2en10, s2en20) of // | (S2Einvar s2e11, _) => let val s2f11 = s2exp2hnf(s2e11) in s2hnf_equal_solve_err(loc0, s2f11, s2f20, err) end // end of [S2Einvar, _] | (_, S2Einvar s2e21) => let val s2f21 = s2exp2hnf(s2e21) in s2hnf_equal_solve_err(loc0, s2f10, s2f21, err) end // end of [_, S2Einvar] // | (S2EVar s2V1, _) => ( case+ s2en20 of | S2EVar s2V2 when s2V1 = s2V2 => () | _ (* non-S2EVar *) => s2hnf_equal_solve_lVar_err(loc0, s2f10, s2f20, s2V1, err) ) // end of [S2EVar, _] | (_, S2EVar s2V2) => ( s2hnf_equal_solve_rVar_err(loc0, s2f10, s2f20, s2V2, err) ) // end of [_, S2EVar] // | (S2Ecst s2c1, s2en20) => ( case+ s2en20 of | S2Ecst s2c2 => if (s2c1 != s2c2) then (err := err + 1) // end of [S2Ecst] | _ (*non-S2Ecst*) => begin trans3_env_add_eqeq (loc0, s2e10, s2e20) end // end of [_] ) // end of [S2Ecst, _] // | (S2Etop(knd1, s2e1), _) => ( case+ s2en20 of | S2Etop(knd2, s2e2) => ( if (knd1 >= knd2) then () where { val () = s2exp_equal_solve_err(loc0, s2e1, s2e2, err) // end of [val] } (* end of [then] *) else (err := err + 1) // end of [else] ) // end of [S2Etop] | _ (*non-S2Etop*) => (err := err + 1) ) // | (S2Eat(s2e11, s2e12), _) => ( case+ s2en20 of | S2Eat(s2e21, s2e22) => let val () = s2exp_equal_solve_err(loc0, s2e11, s2e21, err) val () = s2exp_equal_solve_err(loc0, s2e12, s2e22, err) in // nothing end // end of [S2Eat] | _ (*non-S2Eat*) => (err := err + 1) ) // | (S2Etyarr(s2e11, s2es12), _) => ( case+ s2en20 of | S2Etyarr (s2e21, s2es22) => let val () = s2exp_equal_solve_err(loc0, s2e11, s2e21, err) val () = s2explst_equal_solve_err(loc0, s2es12, s2es22, err) in // nothing end // end of [S2Etyarr] | _ => (err := err + 1) ) | (S2Etyrec (knd1, npf1, ls2es1), _) => ( case+ s2en20 of | S2Etyrec (knd2, npf2, ls2es2) => let val () = tyreckind_equal_solve_err(loc0, knd1, knd2, err) val () = pfarity_equal_solve_err(loc0, npf1, npf2, err) // end of [val] val isless = tyreckind_is_nameless(knd1) in if isless then labs2explst_equal_solve_err(loc0, ls2es1, ls2es2, err) // end of [if] end // end of [S2Etyrec] | _ (*non-S2Etyrec*) => (err := err + 1) ) (* end of [S2Etyrec, _] *) // | (S2Evararg(s2e1), _) => ( case+ s2en20 of | S2Evararg(s2e2) => () where { val () = s2exp_equal_solve_err(loc0, s2e1, s2e2, err) } | _(*non-S2Evararg*) => (err := err + 1) ) (* end of [S2Evararg, _] *) // | (S2Ewthtype(s2e1, ws2es1), _) => ( case+ s2en20 of | S2Ewthtype (s2e2, ws2es2) => let val () = s2exp_equal_solve_err (loc0, s2e1, s2e2, err) // end of [val] in wths2explst_equal_solve_err (loc0, ws2es1, ws2es2, err) end // end of [S2Ewth] | _ => (err := err + 1) ) (* end of [S2Ewth, _] *) // | (_, _) when ( s2hnf_is_abscon s2f10 && s2hnf_is_abscon s2f20 ) => s2hnf_equal_solve_abscon_err (loc0, s2f10, s2f20, err) // end of [abscon, abscon] // | (_, _) when s2hnf_syneq2 (s2f10, s2f20) => () // | (_, _) => trans3_env_add_eqeq (loc0, s2e10, s2e20) // (* | (_, _) => (err := err + 1) *) // end of [val] // val () = if (err > err0) then the_staerrlst_add (STAERR_s2exp_equal(loc0, s2e10, s2e20)) // end of [if] // end of [val] in // nothing end // end of [s2hnf_equal_solve_err] implement s2exp_equal_solve_err ( loc0, s2e10, s2e20, err ) = let // val s2f10 = s2exp2hnf (s2e10) and s2f20 = s2exp2hnf (s2e20) // in s2hnf_equal_solve_err(loc0, s2f10, s2f20, err) end // end of [s2exp_equal_solve_err] (* ****** ****** *) implement s2explst_equal_solve_err ( loc0, s2es1, s2es2, err ) = let // fun loop ( loc0: location , s2es1: s2explst, s2es2: s2explst , err: &int ) : int = ( case+ s2es1 of | list_nil() => ( case+ s2es2 of | list_nil() => 0 | list_cons _ => ~1 ) (* list_nil *) | list_cons(s2e1, s2es1) => ( case+ s2es2 of | list_nil() => 1 | list_cons(s2e2, s2es2) => loop(loc0, s2es1, s2es2, err) where { val () = s2exp_equal_solve_err(loc0, s2e1, s2e2, err) } (* list_cons *) ) (* end of [list_cons] *) ) (* end of [loop] *) // val sgn = loop ( loc0, s2es1, s2es2, err ) (* end of [val] *) val () = if (sgn != 0) then { val () = (err := err + 1) val () = the_staerrlst_add(STAERR_s2explst_length(loc0, sgn)) // end of [val] } (* end of [val] *) in // nothing end // end of [s2explst_equal_solve_err] (* ****** ****** *) implement labs2explst_equal_solve_err ( loc0, ls2es1, ls2es2, err ) = let // fun loop ( loc0: location , ls2es1: labs2explst, ls2es2: labs2explst , err: &int ) : int = case+ ls2es1 of | list_nil () => ( case+ ls2es2 of | list_nil () => 0 | list_cons _ => ~1 ) // end of [list_nil] | list_cons(ls2e1, ls2es1) => ( case+ ls2es2 of | list_nil((*void*)) => 1 | list_cons(ls2e2, ls2es2) => loop(loc0, ls2es1, ls2es2, err) where { val SLABELED(l1, _, s2e1) = ls2e1 val SLABELED(l2, _, s2e2) = ls2e2 val () = label_equal_solve_err(loc0, l1, l2, err) val () = s2exp_equal_solve_err(loc0, s2e1, s2e2, err) } (* list_cons *) ) // end of [list_cons] // end of [loop] // val sgn = loop ( loc0, ls2es1, ls2es2, err ) (* end of [val] *) val () = if (sgn != 0) then { val () = (err := err + 1) val () = the_staerrlst_add(STAERR_labs2explst_length (loc0, sgn)) } // end of [if] // end of [val] in // nothing end // end of [labs2explst_equal_solve_err] (* ****** ****** *) implement wths2explst_equal_solve_err ( loc0, xs1, xs2, err ) = let // fun loop ( loc0: location , xs1: wths2explst, xs2: wths2explst , err: &int ) : int = let in // case (xs1, xs2) of | (WTHS2EXPLSTcons_invar (k1, x1, xs1), WTHS2EXPLSTcons_invar (k2, x2, xs2)) => let val () = refval_equal_solve_err (loc0, k1, k2, err) val () = s2exp_equal_solve_err (loc0, x1, x2, err) in loop (loc0, xs1, xs2, err) end | (WTHS2EXPLSTcons_trans (k1, x1, xs1), WTHS2EXPLSTcons_trans (k2, x2, xs2)) => let val () = refval_equal_solve_err (loc0, k1, k2, err) val () = s2exp_equal_solve_err (loc0, x1, x2, err) in loop (loc0, xs1, xs2, err) end | (WTHS2EXPLSTcons_none (xs1), WTHS2EXPLSTcons_none (xs2)) => let in loop (loc0, xs1, xs2, err) end | (WTHS2EXPLSTnil (), WTHS2EXPLSTnil ()) => 0 | (_, _) => let val () = err := err + 1 in 1 // shape mismatch end // end of [_, _] // end // end of [loop] // val mis = loop(loc0, xs1, xs2, err) // val () = if mis > 0 then the_staerrlst_add(STAERR_wths2explst_shape(loc0, xs1, xs2)) // end of [val] in // nothing end // end of [wths2explst_equal_solve_err] (* ****** ****** *) // extern fun s2hnf_tyleq_solve_lVar_err ( loc0: location , s2f1: s2hnf, s2f2: s2hnf, s2V1: s2Var, err: &int ) : void // end of [s2hnf_tyleq_solve_lVar_err] // implement s2hnf_tyleq_solve_lVar_err ( loc0, s2f1, s2f2, s2V1, err ) = let // (* val () = println! ("s2hnf_tyleq_solve_lVar_err: s2f1 = ", s2f1) val () = println! ("s2hnf_tyleq_solve_lVar_err: s2f2 = ", s2f2) *) // val s2e2 = s2hnf2exp(s2f2) val () = s2Var_s2exp_srtck_err(loc0, s2V1, s2e2, err) // val () = let val s2ze2 = s2zexp_make_s2exp(s2e2) in s2Var_merge_szexp_err(loc0, s2V1, s2ze2, err) end // end of [val] // val () = let val lbs = s2Var_get_lbs(s2V1) in s2hnf_tyleq_solve_lbs_err(loc0, lbs, s2f2, err) end // end of [val] // (* val () = let val ub = s2VarBound_make(loc0, s2e2) in s2Var_set_ubs(s2V1, list_cons(ub, s2Var_get_ubs(s2V1))) end // end of [val] *) // val () = s2Var_ub_insert(loc0, s2V1, s2e2) // in // nothing end // end of [s2hnf_tyleq_solve_lVar_err] (* ****** ****** *) // extern fun s2hnf_tyleq_solve_rVar_err ( loc0: location , s2f1: s2hnf, s2f2: s2hnf, s2V2: s2Var, err: &int ) : void // end of [s2hnf_tyleq_solve_rVar_err] // implement s2hnf_tyleq_solve_rVar_err ( loc0, s2f1, s2f2, s2V2, err ) = let // val s2e1 = s2hnf2exp(s2f1) val () = s2Var_s2exp_srtck_err(loc0, s2V2, s2e1, err) // val () = let val s2ze1 = s2zexp_make_s2exp(s2e1) in s2Var_merge_szexp_err(loc0, s2V2, s2ze1, err) end // end of [val] // val () = let val ubs = s2Var_get_ubs(s2V2) in s2hnf_tyleq_solve_ubs_err(loc0, s2f1, ubs, err) end // end of [val] // (* val () = let val lb = s2VarBound_make(loc0, s2e1) in s2Var_set_lbs(s2V2, list_cons(lb, s2Var_get_lbs(s2V2))) end // end of [val] *) // val () = s2Var_lb_insert(loc0, s2V2, s2e1) // in // nothing end // end of [s2hnf_tyleq_solve_rVar_err] (* ****** ****** *) implement s2hnf_tyleq_solve ( loc0, s2f10, s2f20 ) = err where { // var err: int = 0 // val ((*void*)) = s2hnf_tyleq_solve_err(loc0, s2f10, s2f20, err) // } // end of [s2hnf_tyleq_solve] implement s2exp_tyleq_solve ( loc0, s2e10, s2e20 ) = err where { // var err: int = 0 // val ((*void*)) = s2exp_tyleq_solve_err(loc0, s2e10, s2e20, err) // } (* end of [s2exp_tyleq_solve] *) (* ****** ****** *) implement s2hnf_tyleq_solve_err ( loc0, s2f10, s2f20, err ) = let // val err0 = err // val s2e10 = s2hnf2exp(s2f10) and s2e20 = s2hnf2exp(s2f20) // val s2en10 = s2e10.s2exp_node and s2en20 = s2e20.s2exp_node // (* val () = ( // println! ("s2hnf_tyleq_solve_err: err0 = ", err0); // print("s2hnf_tyleq_solve_err: s2e10 = "); pprint_s2exp(s2e10); print_newline(); print("s2hnf_tyleq_solve_err: s2e20 = "); pprint_s2exp(s2e20); print_newline(); // ) // end of [val] *) // val () = ( case+ ( s2en10, s2en20 ) of (* case+ *) // | (S2Einvar s2e11, _) => let val s2f11 = s2exp2hnf(s2e11) in s2hnf_tyleq_solve_err(loc0, s2f11, s2f20, err) end // end of [S2Einvar, _] | (_, S2Einvar s2e21) => let val s2f21 = s2exp2hnf(s2e21) val s2e21 = s2hnf2exp(s2f21) in case+ s2e21.s2exp_node of (* case+ *) | S2EVar s2V2 => s2hnf_equal_solve_rVar_err (loc0, s2f10, s2f21, s2V2, err) // s2hnf_equal_solve_rVar_err | _ (*non-S2Evar*) => s2hnf_tyleq_solve_err(loc0, s2f10, s2f21, err) end // end of [_, S2Einvar] // | (_, S2EVar s2V2) => s2hnf_tyleq_solve_rVar_err(loc0, s2f10, s2f20, s2V2, err) // end of [_, S2EVar] | (S2EVar s2V1, _) => s2hnf_tyleq_solve_lVar_err(loc0, s2f10, s2f20, s2V1, err) // end of [S2EVar, _] // | (S2Etop(knd1, s2e1), _) => ( case+ s2en20 of | S2Etop(knd2, s2e2) => ( if ( knd1 < knd2 ) then (err := err + 1) else ( s2exp_tyleq_solve_err(loc0, s2e1, s2e2, err) ) (* end of [if] *) ) (* end of [S2Etop] *) | _ (* non-S2Etop *) => (err := err + 1) ) (* end of [S2Etop, _] *) // | (_, S2Etop(knd2, s2e2)) => ( case+ 0 of | _ when knd2 = 0 => let // [s2e0] is topized in if s2exp_is_nonlin(s2e10) then ( if s2exp_tszeq(s2e10, s2e20) then () else (err := err + 1) ) else (err := err + 1) // end of [else] end // end of [knd2 = 0] | _ (* when knd2 > 0 *) => (err := err + 1) ) (* end of [_, S2Etop] *) // | (S2Euni _, _) => let // val (pfpush | ()) = trans3_env_push() // // this order is mandatary! val s2e2 = s2hnf_absuni_and_add(loc0, s2f20) val (s2e1, s2ps) = s2exp_uni_instantiate_all(s2e10, loc0, err) // end of [val] // val () = trans3_env_add_proplst_vt(loc0, s2ps) // val () = s2exp_tyleq_solve_err(loc0, s2e1, s2e2, err) // in trans3_env_pop_and_add_main(pfpush | loc0) end // end of [S2Euni, _] // | (_, S2Eexi _) => let // val (pfpush | ()) = trans3_env_push() // // this order is mandatary! val s2e1 = s2hnf_opnexi_and_add(loc0, s2f10) val (s2e2, s2ps) = s2exp_exi_instantiate_all(s2e20, loc0, err) // end of [val] // val () = trans3_env_add_proplst_vt(loc0, s2ps) // val () = s2exp_tyleq_solve_err(loc0, s2e1, s2e2, err) // in trans3_env_pop_and_add_main(pfpush | loc0) end // end of [_, S2Eexi] // | (_, S2Euni _) => let // val (pfpush | ()) = trans3_env_push() // val s2e2 = s2hnf_absuni_and_add(loc0, s2f20) val () = s2exp_tyleq_solve_err(loc0, s2e10, s2e2, err) in trans3_env_pop_and_add_main(pfpush | loc0) end // end of [_, S2Euni] | (S2Eexi _, _) => let // val (pfpush | ()) = trans3_env_push() // val s2e1 = s2hnf_opnexi_and_add(loc0, s2f10) val () = s2exp_tyleq_solve_err(loc0, s2e1, s2e20, err) in trans3_env_pop_and_add_main(pfpush | loc0) end // end of [S2Eexi, _] // | (S2Ecst s2c1, _) => ( case+ s2en20 of | S2Ecst s2c2 => let val subeq = s2cst_subeq(s2c1, s2c2) in if ~subeq then (err := err + 1) end // end of [S2Ecst] | _ => (err := err + 1) ) // end of [S2Ecst, _] // | (S2Eapp (s2e1_fun, s2es1_arg), _) => ( case+ s2en20 of | S2Ecst s2c2 => ( case+ ( s2e1_fun.s2exp_node ) of // [case] | S2Ecst s2c1 => let val subeq = s2cst_subeq(s2c1, s2c2) in if ~(subeq) then (err := err + 1) end // end of [S2Ecst] | _ (* non-S2Ecst *) => (err := err + 1) ) // end of [S2Ecst] | S2Eapp(s2e2_fun, s2es2_arg) => ( case+ ( s2e1_fun.s2exp_node , s2e2_fun.s2exp_node ) of (* case+ *) | ( S2Ecst s2c1 , S2Ecst s2c2 ) => let val subeq = s2cst_subeq(s2c1, s2c2) (* val () = println! ("s2hnf_tyleq_solve_err: S2Eapp: s2c1 = ", s2c1) val () = println! ("s2hnf_tyleq_solve_err: S2Eapp: s2c2 = ", s2c2) val () = println! ("s2hnf_tyleq_solve_err: S2Eapp: subeq = ", subeq) *) in if (subeq) then let val- list_cons(argsrts, _) = s2cst_get_argsrtss(s2c1) in s2explst_tyleq_solve_argsrtlst_err (loc0, argsrts, s2es1_arg, s2es2_arg, err) // s2explst_tyleq_solve_argsrtlst_err end // end of [then] else (err := err + 1) // end of [else] end // end of [S2Ecst, S2Ecst] | (_(*non-S2Ecst*), _(*non-S2Ecst*)) => let // HX: sound but incomplete! val () = s2exp_equal_solve_err(loc0, s2e1_fun, s2e2_fun, err) val nerr = s2explst_equal_solve_err(loc0, s2es1_arg, s2es2_arg, err) in // nothing end // end of [_, _] ) // end of [S2Eapp] | _ (* non-S2Ecstapp *) => (err := err + 1) ) (* end of [S2Eapp, _] *) | (S2Efun(fc1, lin1, s2fe1, npf1, s2es1_arg, s2e1_res), _) => ( case+ s2en20 of | S2Efun(fc2, lin2, s2fe2, npf2, s2es2_arg, s2e2_res) => let // val () = funclo_equal_solve_err(loc0, fc1, fc2, err) val () = pfarity_equal_solve_err(loc0, npf1, npf2, err) val () = linearity_equal_solve_err(loc0, lin1, lin2, err) // val () = s2eff_subeq_solve_err(loc0, s2fe1, s2fe2, err) val () = s2exp_tyleq_solve_err(loc0, s2e1_res, s2e2_res, err) val () = s2explst_tyleq_solve_err(loc0, s2es2_arg, s2es1_arg, err) // contravariant! // in // nothing end (* end of [S2Efun] *) | _ (* non-S2Efun *) => (err := err + 1) ) // end of [S2Efun, _] // | (S2Eat(s2e11, s2e12), _) => ( case+ s2en20 of | S2Eat(s2e21, s2e22) => let val () = s2exp_tyleq_solve_err(loc0, s2e11, s2e21, err) val () = s2exp_equal_solve_err(loc0, s2e12, s2e22, err) in // nothing end // end of [S2Eat] | _ (* non-S2Eat *) => (err := err + 1) ) // | (S2Etyarr(s2e11, s2es12), _) => ( case+ s2en20 of | S2Etyarr(s2e21, s2es22) => let val () = s2exp_tyleq_solve_err(loc0, s2e11, s2e21, err) val () = s2explst_equal_solve_err(loc0, s2es12, s2es22, err) in // nothing end // end of [S2Etyarr] | _ (* non-S2Etyarr*) => (err := err + 1) ) | (S2Etyrec (knd1, npf1, ls2es1), _ ) => ( case+ s2en20 of | S2Etyrec(knd2, npf2, ls2es2) => let val () = tyreckind_equal_solve_err(loc0, knd1, knd2, err) // end of [val] val () = pfarity_equal_solve_err(loc0, npf1, npf2, err) in labs2explst_tyleq_solve_err(loc0, ls2es1, ls2es2, err) end // end of [S2Etyrec] | _ (* non-S2Etyrec *) => (err := err + 1) ) (* end of [S2Etyrec, _] *) // | (S2Edatconptr (d2c1, s2e1, s2es1), _) => ( case+ s2en20 of | S2Edatconptr (d2c2, s2e2, s2es2) => ( if d2c1 = d2c2 then let val () = s2exp_equal_solve_err(loc0, s2e1, s2e2, err) // end of [val] in s2explst_equal_solve_err(loc0, s2es1, s2es2, err) end else (err := err + 1) ) // end of [S2Edatconptr] | _ (* non-S2Edatconptr *) => (err := err + 1) ) (* end of [S2Edatconptr, _] *) // | (S2Erefarg(knd1, s2e1), _) => ( case+ s2en20 of | S2Erefarg(knd2, s2e2) => let val () = refval_equal_solve_err (loc0, knd1, knd2, err) // end of [val] in s2exp_tyleq_solve_err(loc0, s2e1, s2e2, err) end // end of [S2Erefarg] | _ (* non-S2Erefarg *) => (err := err + 1) ) // | (S2Evararg(s2e1), _) => ( case+ s2en20 of | S2Evararg(s2e2) => () where { val () = s2exp_tyleq_solve_err(loc0, s2e1, s2e2, err) } | _(* non-S2Evararg *) => (err := err + 1) ) (* end of [S2Evararg, _] *) // | (S2Ewthtype(s2e1, ws2es1), _) => ( case+ s2en20 of | S2Ewthtype(s2e2, ws2es2) => let val () = s2exp_tyleq_solve_err(loc0, s2e1, s2e2, err) // end of [val] in wths2explst_tyleq_solve_err(loc0, ws2es1, ws2es2, err) end // end of [S2Ewth] | _ (* non-S2Ewthtype *) => (err := err + 1) ) (* end of [S2Ewth, _] *) // | (S2Ewithout(s2e1), _) => ( case+ s2en20 of | S2Ewithout(s2e2) => if ~s2exp_tszeq(s2e1, s2e2) then (err := err + 1) // end of [S2Ewithout] | _ (* non-S2Ewithout *) => (err := err + 1) ) // | (_, _) when s2hnf_syneq2(s2f10, s2f20) => ((*sound-but...*)) // | (_(*rest-of-s2exp*), _(*rest-of-s2exp*)) => (err := err + 1) // ) (* end of [case] *) // end of [val] // val () = if (err > err0) then () where { // val () = the_staerrlst_add (STAERR_s2exp_tyleq(loc0, s2e10, s2e20)) // } (* end of [if] *) // in // nothing end // end of [s2hnf_tyleq_solve_err] implement s2exp_tyleq_solve_err ( loc0, s2e10, s2e20, err ) = let val err0 = err val s2f10 = s2exp2hnf(s2e10) and s2f20 = s2exp2hnf(s2e20) in s2hnf_tyleq_solve_err(loc0, s2f10, s2f20, err) end // end of [s2exp_tyleq_solve_err] (* ****** ****** *) implement s2explst_tyleq_solve_err ( loc0, s2es1, s2es2, err ) = let // fun loop ( loc0: location , s2es1: s2explst, s2es2: s2explst, err: &int ) : int = ( case+ s2es1 of | list_nil() => ( case+ s2es2 of | list_nil () => 0 | list_cons _ => ~1 ) // end of [list_nil] | list_cons(s2e1, s2es1) => ( case+ s2es2 of | list_nil () => 1 | list_cons(s2e2, s2es2) => let val () = s2exp_tyleq_solve_err(loc0, s2e1, s2e2, err) // end of [val] in loop(loc0, s2es1, s2es2, err) end (* end of [list_cons] *) ) // end of [list_cons] ) (* end of [loop] *) // val sgn = loop ( loc0, s2es1, s2es2, err ) (* end of [val] *) // val () = if (sgn != 0) then { // val () = (err := err + 1) val () = the_staerrlst_add(STAERR_s2explst_length(loc0, sgn)) // } // end of [val] in // nothing end // end of [s2explst_tyleq_solve_err] (* ****** ****** *) implement labs2explst_tyleq_solve_err ( loc0, ls2es1, ls2es2, err ) = let // fun loop ( loc0: location , ls2es1: labs2explst, ls2es2: labs2explst , err: &int ) : int = ( case+ ls2es1 of | list_nil() => ( case+ ls2es2 of | list_nil() => 0 | list_cons _ => ~1 ) // end of [list_nil] | list_cons(ls2e1, ls2es1) => ( case+ ls2es2 of | list_nil() => 1 | list_cons(ls2e2, ls2es2) => let val SLABELED(l1, _, s2e1) = ls2e1 val SLABELED(l2, _, s2e2) = ls2e2 val () = label_equal_solve_err(loc0, l1, l2, err) val () = s2exp_tyleq_solve_err(loc0, s2e1, s2e2, err) in loop(loc0, ls2es1, ls2es2, err) end // end of [list_cons] ) // end of [list_cons] ) (* end of [loop] *) // val sgn = loop ( loc0, ls2es1, ls2es2, err ) (* end of [val] *) val () = if (sgn != 0) then { val () = (err := err + 1) val () = the_staerrlst_add(STAERR_labs2explst_length(loc0, sgn)) } // end of [val] in // nothing end // end of [labs2explst_tyleq_solve_err] (* ****** ****** *) implement wths2explst_tyleq_solve_err ( loc0, xs1, xs2, err ) = let // fun loop ( loc0: location , xs1: wths2explst, xs2: wths2explst , err: &int ) : int = let in // case (xs1, xs2) of | (WTHS2EXPLSTcons_invar(k1, x1, xs1), WTHS2EXPLSTcons_invar(k2, x2, xs2)) => let val () = refval_equal_solve_err(loc0, k1, k2, err) val () = s2exp_tyleq_solve_err(loc0, x1, x2, err) in loop (loc0, xs1, xs2, err) end | (WTHS2EXPLSTcons_invar(k1, x1, xs1), WTHS2EXPLSTcons_trans(k2, x2, xs2)) => let val () = refval_equal_solve_err(loc0, k1, k2, err) val () = s2exp_tyleq_solve_err(loc0, x1, x2, err) in loop (loc0, xs1, xs2, err) end | (WTHS2EXPLSTcons_trans(k1, x1, xs1), WTHS2EXPLSTcons_trans(k2, x2, xs2)) => let val () = refval_equal_solve_err(loc0, k1, k2, err) val () = s2exp_tyleq_solve_err(loc0, x1, x2, err) in loop (loc0, xs1, xs2, err) end | (WTHS2EXPLSTcons_none(xs1), WTHS2EXPLSTcons_none(xs2)) => let in loop(loc0, xs1, xs2, err) end // | (WTHS2EXPLSTnil(), WTHS2EXPLSTnil()) => 0 // // HX: shape mismatch: // | (_(*rest-wths2exp*), _(*rest-wths2exp*)) => let val ((*void*)) = err := err + 1 in (1) end // end // end of [loop] // val mis = loop(loc0, xs1, xs2, err) // val () = if (mis > 0) then the_staerrlst_add ( STAERR_wths2explst_shape(loc0, xs1, xs2) ) (* then *) // end of [val] in // nothing end // end of [wths2explst_tyleq_solve_err] (* ****** ****** *) implement s2hnf_tyleq_solve_lbs_err (loc0, lbs, s2f, err) = let // (* macdef loop = s2hnf_tyleq_solve_lbs_err *) // (* val () = let // val lbs = list_map_fun ( lbs , lam lb =<1> s2VarBound_get_val(lb) ) (* end of [val] *) val lbs = list_of_list_vt{s2exp}(lbs) // in // println!("s2hnf_tyleq_solve_lbs_err: lbs = ", lbs) // end // end of [let] *) // in case+ lbs of | list_nil() => () | list_cons(lb, lbs) => let // val s2f_lb = s2exp2hnf(s2VarBound_get_val(lb)) // val () = s2hnf_tyleq_solve_err(loc0, s2f_lb, s2f, err) // in s2hnf_tyleq_solve_lbs_err(loc0, lbs, s2f, err) end // end of [list_cons] end // end of [s2hnf_tyleq_solve_lbs_err] implement s2hnf_tyleq_solve_ubs_err (loc0, s2f, ubs, err) = let // (* macdef loop = s2hnf_tyleq_solve_ubs_err *) // in case+ ubs of | list_nil() => () | list_cons(ub, ubs) => let // val s2f_ub = s2exp2hnf(s2VarBound_get_val(ub)) // val () = s2hnf_tyleq_solve_err(loc0, s2f, s2f_ub, err) in s2hnf_tyleq_solve_ubs_err(loc0, s2f, ubs, err) end // end of [list_cons] end // end of [s2hnf_tyleq_solve_ubs_err] (* ****** ****** *) implement s2explst_tyleq_solve_argsrtlst_err (loc0, argsrts, s2es1, s2es2, err) = let (* val () = ( println! "s2explst_tyleq_solve_argsrtlst_err: enter" ) // end of [val] *) in // case+ s2es1 of | list_nil() => () | list_cons(s2e1, s2es1) => ( case+ s2es2 of | list_nil() => () | list_cons(s2e2, s2es2) => let val-list_cons (argsrt, argsrts) = argsrts // end of [val] val pol = s2rt_get_pol(argsrt.1) val () = ( if pol = 0 then s2exp_equal_solve_err(loc0, s2e1, s2e2, err) else if pol > 0 then s2exp_tyleq_solve_err(loc0, s2e1, s2e2, err) else // pol < 0 s2exp_tyleq_solve_err(loc0, s2e2, s2e1, err) // end of [if] ) : void // end of [val] in s2explst_tyleq_solve_argsrtlst_err (loc0, argsrts, s2es1, s2es2, err) end // end of [list_cons] ) (* end of [list_cons] *) // end // end of [s2explst_tyleq_solve_argsrtlst_err] (* ****** ****** *) fun s2hnf_hypequal_solve_abscon ( loc0: location, s2f1: s2hnf, s2f2: s2hnf ) : void = let (* val () = ( println! ("s2exp_hypequal_solve_abscon: s2f1 = ", s2f1); println! ("s2exp_hypequal_solve_abscon: s2f2 = ", s2f2); ) (* end of [val] *) *) val s2e1 = s2hnf2exp(s2f1) and s2e2 = s2hnf2exp(s2f2) // fun auxsolve ( loc0: location , s2e1: s2exp, s2e2: s2exp ) : void = case+ ( s2e1.s2exp_node , s2e2.s2exp_node ) of (* case+ *) | (S2Eapp(s2e1_fun, s2es1_arg), S2Eapp(s2e2_fun, s2es2_arg)) => let val () = auxsolve(loc0, s2e1_fun, s2e2_fun) in s2explst_hypequal_solve(loc0, s2es1_arg, s2es2_arg) end | (_(*non-S2Eapp*), _(*non-S2Eapp*)) => () // end of [auxsolve] // fun auxcheck ( s2e1: s2exp, s2e2: s2exp ) : bool = ( case+ ( s2e1.s2exp_node , s2e2.s2exp_node ) of // case+ // | (S2Ecst(s2c1), S2Ecst(s2c2)) => eq_s2cst_s2cst(s2c1, s2c2) // | (S2Eapp(s2e1, _), S2Eapp(s2e2, _)) => auxcheck(s2e1, s2e2) // | (_(*non-S2Ecstapp*), _(*non-S2Ecstapp*)) => false ) in // if auxcheck(s2e1, s2e2) then ( // // C1(arg1_1)...(arg1_n) = C2(arg2_1)...(arg2_n) // auxsolve(loc0, s2e1, s2e2) ) (* end of [then] *) else ( trans3_env_hypadd_prop(loc0, s2exp_bool false) ) (* end of [else] *) // end // end of [s2exp_hypequal_solve_abscon] (* ****** ****** *) implement s2hnf_hypequal_solve (loc0, s2f1, s2f2) = let (* val () = ( println! ("s2exp_hypequal_solve: s2f1 = ", s2f1); println! ("s2exp_hypequal_solve: s2f2 = ", s2f2); ) (* end of [val] *) *) // val s2e1 = s2hnf2exp(s2f1) and s2e2 = s2hnf2exp(s2f2) // in // case+ ( s2e1.s2exp_node , s2e2.s2exp_node ) of // case+ | (_, _) when ( s2hnf_is_abscon(s2f1)&&s2hnf_is_abscon(s2f2) ) (* when *) => s2hnf_hypequal_solve_abscon(loc0, s2f1, s2f2) // end of [abscon, abscon] | (S2Ecst s2c1, S2Ecst s2c2) when s2c1 = s2c2 => () // | (S2Evar s2v1, S2Evar s2v2) => let val sgn = compare_s2var_s2var(s2v1, s2v2) in case+ sgn of | _ when sgn > 0 => trans3_env_hypadd_bind(loc0, s2v1, s2f2) | _ when sgn < 0 => trans3_env_hypadd_bind(loc0, s2v2, s2f1) | _ (* sgn = 0: s2v1 = s2v2 *) => ((*void*)) end // end of [S2Evar _, S2Evar _] // | (S2Evar s2v1, _) => let val test = s2var_occurcheck_s2exp(s2v1, s2e2) in if test then trans3_env_hypadd_eqeq(loc0, s2f1, s2f2) else trans3_env_hypadd_bind(loc0, s2v1, s2f2) // end of [if] end // end of [(S2Evar, _)] | (_, S2Evar s2v2) => let val test = s2var_occurcheck_s2exp(s2v2, s2e1) in if test then trans3_env_hypadd_eqeq(loc0, s2f1, s2f2) else trans3_env_hypadd_bind(loc0, s2v2, s2f1) // end of [if] end // end of [(_, S2Evar)] // | (S2Efun(_, _, _, _, s2es11, s2e12), S2Efun(_, _, _, _, s2es21, s2e22)) => let val () = s2exp_hypequal_solve(loc0, s2e12, s2e22) // end of [val] in s2explst_hypequal_solve(loc0, s2es21, s2es11) end // end of [S2Efun _, S2Efun _] // | (_(*rest-of-s2exp*), _(*rest-of-s2exp*)) => trans3_env_hypadd_eqeq(loc0, s2f1, s2f2) // end // end of [s2exp_hypequal_solve] (* ****** ****** *) implement s2exp_hypequal_solve (loc0, s2e10, s2e20) = let val s2f10 = s2exp2hnf(s2e10) and s2f20 = s2exp2hnf(s2e20) in s2hnf_hypequal_solve(loc0, s2f10, s2f20) end // end of [s2exp_hypequal_solve] implement s2explst_hypequal_solve (loc0, s2es1, s2es2) = let // (* val () = println! ("s2explst_hypequal_solve: s2es1 = ", s2es1) val () = println! ("s2explst_hypequal_solve: s2es2 = ", s2es2) *) // in // case+ s2es1 of | list_nil() => ( case+ s2es2 of | list_nil() => () | list_cons _ => trans3_env_hypadd_prop(loc0, s2exp_bool(false)) ) // end of [list_nil] | list_cons(s2e1, s2es1) => ( case+ s2es2 of | list_nil() => trans3_env_hypadd_prop(loc0, s2exp_bool(false)) | list_cons (s2e2, s2es2) => let val () = s2exp_hypequal_solve (loc0, s2e1, s2e2) // end of [val] in s2explst_hypequal_solve (loc0, s2es1, s2es2) end // end of [list_cons] ) (* end of [list_cons] *) // end // end of [s2explst_hypequal_solve] (* ****** ****** *) (* end of [pats_staexp2_solve.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_skexp.dats0000644000175000017500000003024313431250607022157 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: December, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload LAB = "./pats_label.sats" overload = with $LAB.eq_label_label (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) implement fprint_s2kexp (out, s2ke) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ s2ke of | S2KEany () => { val () = prstr "S2KEany()" } | S2KEcst (s2c) => { val () = prstr "S2KEcst(" val () = fprint_s2cst (out, s2c) val () = prstr ")" } | S2KEvar (s2v) => { val () = prstr "S2KEvar(" val () = fprint_s2var (out, s2v) val () = prstr ")" } // | S2KEextype (name, _arg) => { val () = prstr "S2KEextype(" val () = fprint_string (out, name) val () = prstr ")" } | S2KEextkind (name, _arg) => { val () = prstr "S2KEextkind(" val () = fprint_string (out, name) val () = prstr ")" } // | S2KEfun (_arg, _res) => { val () = prstr "S2KEfun(" val () = fprint_s2kexplst (out, _arg) val () = prstr "; " val () = fprint_s2kexp (out, _res) val () = prstr ")" } | S2KEapp (_fun, _arg) => { val () = prstr "S2KEapp(" val () = fprint_s2kexp (out, _fun) val () = prstr "; " val () = fprint_s2kexplst (out, _arg) val () = prstr ")" } | S2KEtyarr (s2ke) => { val () = prstr "S2KEtyarr(" val () = fprint_s2kexp (out, s2ke) val () = prstr ")" } | S2KEtyrec (knd, ls2kes) => { val () = prstr "S2KEtyrec(" val () = fprint_tyreckind (out, knd) val () = prstr "; " val () = $UT.fprintlst (out, ls2kes, ", ", fprint_labs2kexp) val () = prstr ")" } // (* | _ => prstr "S2KE...(...)" *) // end // end of [fprint_s2kexp] implement fprint_s2kexplst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s2kexp) // end of [fprint_s2kexplst] implement fprint_labs2kexp (out, x) = { val SKLABELED (l, s2ke) = x val () = $LAB.fprint_label (out, l) val () = fprint_string (out, "=") val () = fprint_s2kexp (out, s2ke) } // end of [fprint_labs2kexp] implement print_s2kexp (x) = fprint_s2kexp (stdout_ref, x) implement prerr_s2kexp (x) = fprint_s2kexp (stderr_ref, x) (* ****** ****** *) local // absviewtype env extern fun env_make_nil (): env extern fun env_pop (env: &env): void extern fun env_push (env: &env, s2vs: s2varlst): void extern fun env_free (env: env): void extern fun env_find (env: &env, s2v: s2var): bool // in (* in of [local] *) (* ****** ****** *) local // assume env = List_vt (s2varlst) // in (* in of [local] *) // implement env_make_nil () = list_vt_nil () // implement env_pop (env) = ( case+ env of | ~list_vt_cons (_, xss) => env := xss | _ => () ) (* end of [env_pop] *) // implement env_push (env, s2vs) = env := list_vt_cons (s2vs, env) // implement env_free (env) = list_vt_free (env) // implement env_find (env, x0) = let fun loop1 (s2vs: s2varlst): bool = case+ s2vs of | list_cons (s2v, s2vs) => if x0 = s2v then true else loop1 (s2vs) | list_nil () => false // end of [loop1] fun loop2 (s2vss: s2varlstlst): bool = case+ s2vss of | list_cons (s2vs, s2vss) => if loop1 (s2vs) then true else loop2 (s2vss) | list_nil () => false // end of [loop2] in loop2 ($UN.castvwtp1 {s2varlstlst} (env)) end // end of [env_find] // end // end of [local] (* ****** ****** *) local fun aux_s2exp ( env: &env, s2e0: s2exp ) : s2kexp = let (* val () = ( print "aux_s2exp: s2e0 = "; print_s2exp s2e0; print_newline () ) // end of [val] *) val s2f0 = s2exp_hnfize (s2e0) in // case s2f0.s2exp_node of | S2Ecst (s2c) => S2KEcst (s2c) | S2Evar (s2v) => let val isexi = env_find (env, s2v) in if isexi then S2KEany () else S2KEvar (s2v) end // | S2EVar (s2V) => S2KEany () // see s2zexp for info // | S2Eextype ( name, _arg ) => S2KEextype (name, aux_arglstlst (env, _arg)) | S2Eextkind ( name, _arg ) => S2KEextkind (name, aux_arglstlst (env, _arg)) // | S2Efun ( _(*fc*), _(*lin*), _(*s2fe*), npf, _arg, _res ) => let in S2KEfun (aux_s2explst (env, _arg), aux_s2exp (env, _res)) end // end of [S2Efun] // | S2Eapp (_fun, _arg) => let val _fun = aux_s2exp (env, _fun) val _arg = aux_arglst (env, _arg) in S2KEapp (_fun, _arg) end // end of [S2Eapp] // | S2Etyarr (_elt, _dim) => let val _elt = aux_s2exp (env, _elt) in S2KEtyarr (_elt) end // end of [S2Etyarr] | S2Etyrec (knd, npf, ls2es) => let val ls2kes = aux_labs2explst (env, ls2es) in S2KEtyrec (knd, ls2kes) end // end of [S2Etyrec] // | S2Erefarg (knd, s2e) => aux_s2exp (env, s2e) // | S2Eexi ( s2vs, _(*s2ps*), s2e ) => let val () = env_push (env, s2vs) val s2ke = aux_s2exp (env, s2e) val () = env_pop (env) in s2ke end // end of [S2Eexi] | S2Euni ( s2vs, _(*s2ps*), s2e ) => let val () = env_push (env, s2vs) val s2ke = aux_s2exp (env, s2e) val () = env_pop (env) in s2ke end // end of [S2Eexi] // | S2Ewthtype (s2e, ws2es) => aux_s2exp (env, s2e) // | _ => S2KEany () // HX: no available info // end // end of [aux_s2exp] and aux_arglst ( env: &env, s2es: s2explst ) : s2kexplst = case+ s2es of | list_cons (s2e, s2es) => let val s2t = s2e.s2exp_srt val iskeep = s2rt_is_tkind (s2t) val iskeep = if iskeep then true else s2rt_is_prgm (s2t) in if iskeep then let val s2ke = aux_s2exp (env, s2e) in list_cons (s2ke, aux_arglst (env, s2es)) end else aux_arglst (env, s2es) // HX: non-types are all discarded // end of [if] end // end of [list_cons] | list_nil () => list_nil () // end of [aux_arglst] and aux_arglstlst ( env: &env, s2ess: s2explstlst ) : s2kexplstlst = case+ s2ess of | list_cons (s2es, s2ess) => list_cons (aux_arglst (env, s2es), aux_arglstlst (env, s2ess)) // end of [list_cons] | list_nil () => list_nil () // end of [aux_arglstlst] and aux_s2explst ( env: &env, s2es: s2explst ) : s2kexplst = case+ s2es of | list_cons (s2e, s2es) => list_cons (aux_s2exp (env, s2e), aux_s2explst (env, s2es)) // end of [list_cons] | list_nil () => list_nil () // end of [aux_s2explst] and aux_labs2explst ( env: &env, ls2es: labs2explst ) : labs2kexplst = case+ ls2es of | list_cons (ls2e, ls2es) => let val SLABELED (l, _(*named*), s2e) = ls2e val s2ke = aux_s2exp (env, s2e) val ls2ke = SKLABELED (l, s2ke) val ls2kes = aux_labs2explst (env, ls2es) in list_cons (ls2ke, ls2kes) end // end of [list_cons] | list_nil () => list_nil () // end of [aux_labs2explst] in (* in of [local] *) implement s2kexp_make_s2exp (s2e0) = let (* val () = ( print "s2kexp_make_s2exp: s2e0 = "; print_s2exp s2e0; print_newline () ) // end of [val] *) var env = env_make_nil () val s2ke = aux_s2exp (env, s2e0) val () = env_free (env) (* val () = ( print "s2kexp_make_s2exp: s2ke = "; print_s2kexp s2ke; print_newline () ) // end of [val] *) in s2ke end // end of [s2kexp_make_s2exp] end // end of [local] (* ****** ****** *) end // end of [local] (* ****** ****** *) exception S2KEXPISMATexn of () extern fun s2kexp_ismat_exn (x1: s2kexp, x2: s2kexp): void // end of [s2kexp_ismat_exn] extern fun s2kexplst_ismat_exn (xs1: s2kexplst, xs2: s2kexplst): void // end of [s2kexplst_ismat_exn] extern fun s2kexplstlst_ismat_exn (xss1: s2kexplstlst, xss2: s2kexplstlst): void // end of [s2kexplstlst_ismat_exn] extern fun labs2kexplst_ismat_exn (lxs1: labs2kexplst, lxs2: labs2kexplst): void // end of [labs2kexplst_ismat_exn] (* ****** ****** *) local fn abort (): void = $raise S2KEXPISMATexn() in (* in of [local] *) implement s2kexp_ismat_exn (x1, x2) = let in // case+ (x1, x2) of | (S2KEany (), _) => () | (_, S2KEany ()) => () | (S2KEcst s2c1, S2KEcst s2c2) => if s2cst_subeq (s2c1, s2c2) then () else abort () | (S2KEvar s2v1, S2KEvar s2v2) => if s2v1 = s2v2 then () else abort () // | ( S2KEextype (name1, _arg1), S2KEextype (name2, _arg2) ) => ( if name1 = name2 then s2kexplstlst_ismat_exn (_arg1, _arg2) else abort () // end of [if] ) (* S2KEextype *) | ( S2KEextkind (name1, _arg1), S2KEextkind (name2, _arg2) ) => ( if name1 = name2 then s2kexplstlst_ismat_exn (_arg1, _arg2) else abort () // end of [if] ) (* S2KEextkind *) // | (S2KEfun (_arg1, _res1), S2KEfun (_arg2, _res2)) => let val () = s2kexplst_ismat_exn (_arg2, _arg1) // contra-variant // end of [val] in s2kexp_ismat_exn (_res1, _res2) end // end of [fun, fun] | (S2KEapp (x1, _), S2KEcst _) => s2kexp_ismat_exn (x1, x2) // | (S2KEapp (_fun1, _arg1), S2KEapp (_fun2, _arg2)) => { val () = s2kexp_ismat_exn (_fun1, _fun2) val () = s2kexplst_ismat_exn (_arg1, _arg2) } // end of [S2KEapp, S2KEapp] // | (S2KEtyarr (elt1), S2KEtyarr (elt2)) => s2kexp_ismat_exn (elt1, elt2) | (S2KEtyrec (knd1, ls2kes1), S2KEtyrec (knd2, ls2kes2)) => if knd1 = knd2 then labs2kexplst_ismat_exn (ls2kes1, ls2kes2) else abort () // end of [if] // | (_, _) => abort () // end // end of [s2kexp_ismat_exn] implement s2kexplst_ismat_exn (xs1, xs2) = let in case+ (xs1, xs2) of | (list_cons (x1, xs1), list_cons (x2, xs2)) => let val () = s2kexp_ismat_exn (x1, x2) in s2kexplst_ismat_exn (xs1, xs2) end // end of [if] | (list_nil (), list_nil ()) => () | (_, _) => abort () end // end of [s2kexplst_ismat_exn] implement s2kexplstlst_ismat_exn (xss1, xss2) = let in case+ (xss1, xss2) of | (list_cons (xs1, xss1), list_cons (xs2, xss2)) => let val () = s2kexplst_ismat_exn (xs1, xs2) in s2kexplstlst_ismat_exn (xss1, xss2) end // end of [if] | (list_nil (), list_nil ()) => () | (_, _) => abort () end // end of [s2kexplstlst_ismat_exn] implement labs2kexplst_ismat_exn (lxs1, lxs2) = let in // case+ (lxs1, lxs2) of | (list_cons (lx1, lxs1), list_cons (lx2, lxs2)) => let val SKLABELED (l1, x1) = lx1 and SKLABELED (l2, x2) = lx2 in if l1 = l2 then let val () = s2kexp_ismat_exn (x1, x2) in labs2kexplst_ismat_exn (lxs1, lxs2) end else abort () // end of [if] end // end of [cons, cons] | (list_nil (), list_nil ()) => () | (_, _) => abort () end // end of [labs2kexplst_ismat_exn] end // end of [local] (* ****** ****** *) (* ** HX: this one is declared in pats_staexp2_util.sats *) implement s2kexp_ismat (x1, x2) = try let val () = s2kexp_ismat_exn (x1, x2) in true end with ~S2KEXPISMATexn () => false // HX: indication of error! // end of [s2kexp_ismat] implement s2kexplst_ismat (xs1, xs2) = try let val () = s2kexplst_ismat_exn (xs1, xs2) in true end with ~S2KEXPISMATexn () => false // HX: indication of error! // end of [s2kexplst_ismat] (* ****** ****** *) (* end of [pats_staexp2_skexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3.sats0000644000175000017500000002033513431250607021646 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_jsonize.sats" (* ****** ****** *) // staload "./pats_staexp2.sats" // staload TRENV3 = "./pats_trans3_env.sats" typedef h3ypo = $TRENV3.h3ypo typedef c3nstr = $TRENV3.c3nstr // (* ****** ****** *) staload "./pats_lintprgm.sats" (* ****** ****** *) // // eq=1/neq=~1/gte=2/lt=~2 // typedef int2 = intBtwe (~2, 2) datatype s3exp = // | S3Evar of s2var | S3Ecst of s2cst // abstract constant // | S3Enull of () // = 0 | S3Eunit of () // = 1 | S3Ebool of bool (* boolean constant *) // | S3Ebvar of s2var // s2v == 1 | S3Ebneg of s3exp | S3Ebadd of (s3exp, s3exp) | S3Ebmul of (s3exp, s3exp) | S3Ebeq of (s3exp, s3exp) | S3Ebneq of (s3exp, s3exp) | S3Ebineq of (int2(*knd*), s3exp) // | S3Ebdom of s2var // 0 <= s2v <= 1 // | S3Eiatm of s2varmset (* mononomial term *) | S3Eicff of (intinf, s3exp) // HX: coefficient | S3Eisum of s3explst (* sum of list of icffs *) | S3Eimul of (s3exp, s3exp) // | S3Esizeof of (s2zexp) // HX: size of a type // | S3Eapp of (s3exp, s3explst) // | S3Eerr of (s2rt) // end of [s3exp] where s3explst = List (s3exp) // viewtypedef s3explst_vt = List_vt (s3exp) // (* ****** ****** *) fun s3exp_get_srt (s3e: s3exp): s2rt (* ****** ****** *) // // HX: compute the freevar set of [s3e] // fun s3exp_get_fvs (s3e: s3exp): s2varset_vt (* ****** ****** *) // fun print_s3exp (x: s3exp): void fun prerr_s3exp (x: s3exp): void fun fprint_s3exp : fprint_type (s3exp) // fun print_s3explst (xs: s3explst): void fun prerr_s3explst (xs: s3explst): void fun fprint_s3explst : fprint_type (s3explst) // overload print with print_s3exp overload prerr with prerr_s3exp overload prerr with fprint_s3exp overload print with print_s3explst overload prerr with prerr_s3explst overload prerr with fprint_s3explst // (* ****** ****** *) fun s3exp_syneq (x1: s3exp, x2: s3exp): bool fun s3explst_syneq (xs1: s3explst, xs2: s3explst): bool (* ****** ****** *) (* ** HX-2012-02-20: ** this one is used to implement S3Eisum *) fun s3exp_isgte (x1: s3exp, x2: s3exp): bool (* ****** ****** *) fun s3exp_err (s2t: s2rt): s3exp (* ****** ****** *) fun s3exp_var (s2v: s2var): s3exp fun s3exp_bvar (s2v: s2var): s3exp (* ****** ****** *) fun s3exp_cst (s2c: s2cst): s3exp (* ****** ****** *) fun s3exp_app (_fun: s3exp, _arg: s3explst): s3exp (* ****** ****** *) // val s3exp_null : s3exp val s3exp_unit : s3exp val s3exp_true: s3exp and s3exp_false: s3exp // val intinf_0 : intinf and intinf_1 : intinf and intinf_2 : intinf and intinf_neg_1 : intinf // val s3exp_0 : s3exp and s3exp_1 : s3exp and s3exp_2 : s3exp and s3exp_neg_1 : s3exp // (* ****** ****** *) fun s3exp_bool (b: bool): s3exp fun s3exp_bneg (s3e: s3exp): s3exp fun s3exp_beq (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_bneq (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_badd (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_bmul (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_ilt (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_ilte (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_igt (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_igte (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_ieq (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_ineq (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_bineq (knd: int2, s3e: s3exp): s3exp (* ****** ****** *) fun s3exp_int (i: int): s3exp fun s3exp_intinf (int: intinf): s3exp fun s3exp_icff (c: intinf, s3e: s3exp): s3exp fun s3explst_icff (c: intinf, s3es: s3explst): s3explst_vt fun s3exp_isum (s3es: s3explst): s3exp fun s3exp_ineg (s3e: s3exp): s3exp fun s3exp_isucc (s3e: s3exp): s3exp fun s3exp_ipred (s3e: s3exp): s3exp fun s3exp_iadd (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_isub (s3e1: s3exp, s3e2: s3exp): s3exp fun s3exp_imul (s3e1: s3exp, s3e2: s3exp): s3exp (* ****** ****** *) absviewtype s2vbcfenv_viewtype viewtypedef s2vbcfenv = s2vbcfenv_viewtype fun s2vbcfenv_nil (): s2vbcfenv fun s2vbcfenv_free (env: s2vbcfenv): void absview s2vbcfenv_push_v fun s2vbcfenv_pop (pf: s2vbcfenv_push_v | env: &s2vbcfenv): void fun s2vbcfenv_push (env: &s2vbcfenv): (s2vbcfenv_push_v | void) fun s2vbcfenv_find_nonlin ( env: &s2vbcfenv, s3e: s3exp ) : Option_vt (s2var) // end of [s2vbcfenv_find_nonlin] fun s2vbcfenv_find_cstapp ( env: &s2vbcfenv, s2c: s2cst, arg: s3explst ) : Option_vt (s2var) // end of [s2vbcfenv_find_cstapp] fun s2vbcfenv_extract (env: !s2vbcfenv): (s2varlst_vt, s3explst_vt) // end of [s2vbcfenv_extract] fun s2vbcfenv_add_svar (env: &s2vbcfenv, s2v: s2var): void fun s2vbcfenv_add_sbexp (env: &s2vbcfenv, s3p: s3exp): void (* // HX: for handling special static functions *) fun s2vbcfenv_add_cstapp ( env: &s2vbcfenv, s2c: s2cst, arg: s2explst, res: s2var ) : void // end of [s2vbcfenv_add_cstapp] fun s2vbcfenv_replace_cstapp ( env: &s2vbcfenv, s2t: s2rt, s2c: s2cst, arg: s2explst ) : s2var // end of [s2vbcfenv_replace_cstapp] (* // HX: for handling generic nonlinear expressions *) fun s2vbcfenv_add_nonlin (env: &s2vbcfenv, s2v: s2var, s3e: s3exp): void // end of [s2vbcfenv_add_nonlin] fun s2vbcfenv_replace_nonlin (env: &s2vbcfenv, s3e: s3exp): s2var (* ****** ****** *) // fun s3exp_make (env: &s2vbcfenv, s2e: s2exp): s3exp fun s3explst_make (env: &s2vbcfenv, s2es: s2explst): s3explst // fun s3exp_make_h3ypo (env: &s2vbcfenv, h3p: h3ypo): s3exp // // HX: these are auxiliary functions // fun s3exp_make_s2cst_s2explst ( env: &s2vbcfenv, s2c: s2cst, s2es: s2explst ) : s3exp // end of [s3exp_make_s2cst_s2explst] // (* ****** ****** *) // #define TAUTOLOGY (1) #define UNDECIDED (0) #define CONTRADICTION (~1) // fun s3explst_solve_s2exp ( loc0: location, env: &s2vbcfenv, s2p: s2exp, err: &int >> int ) : int(*status*) // end of [s3explst_solve_s2exp] (* ****** ****** *) fun s3exp_lintize (env: &s2vbcfenv, s3e: s3exp): s3exp (* ****** ****** *) absviewtype s2varindmap (n:int) fun s2varindmap_make {n:nat} (s2vs: !list_vt (s2var, n)): @(s2varindmap (n), int n) // end of [s2varindmap_make] fun s2varindmap_free {n:int} (map: s2varindmap (n)): void // end of [s2varindmap_free] // // HX: if 0 is returned, then [s2v] is not found // fun s2varindmap_find {n:nat} (map: !s2varindmap (n), s2v: s2var): natLte (n) // end of [s2varindmap_find] fun{a:t@ype} s3exp2icnstr{n:nat} ( loc: location , vim: !s2varindmap (n), n: int n, s3e: s3exp ) : icnstr (a, n+1) // end of [s3exp2icnstr] fun{a:t@ype} s3exp2myintvec{n:nat} ( vim: !s2varindmap (n), n: int n, s3e: s3exp, err: &int ) : myintvec (a, n+1) // end of [s3exp2myintvec] (* ****** ****** *) fun c3nstr_ats2_solve (c3t: c3nstr): void (* ****** ****** *) // fun c3nstr_mapgen_scst_svar (c3t: c3nstr): ( s2cstset_vt, s2varset_vt ) (* end of [c3nstr_mapgen_scst_svar] *) // fun jsonize_c3nstr (c3t: c3nstr): jsonval // fun c3nstr_export (out: FILEref, c3t: c3nstr): void // (* ****** ****** *) // abstype s2cfunmap // fun constraint3_initialize (): void fun constraint3_initialize_map (map: &s2cfunmap): void // (* ****** ****** *) (* end of [pats_constraint3.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_sort.dats0000644000175000017500000001457613431250607021651 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload ERR = "./pats_error.sats" staload LOC = "./pats_location.sats" overload + with $LOC.location_combine staload SYM = "./pats_symbol.sats" macdef BACKSLASH = $SYM.symbol_BACKSLASH overload = with $SYM.eq_symbol_symbol (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans1_sort" (* ****** ****** *) staload "./pats_fixity.sats" staload "./pats_syntax.sats" staload "./pats_staexp1.sats" (* ****** ****** *) staload "./pats_trans1.sats" staload "./pats_trans1_env.sats" (* ****** ****** *) #define l2l list_of_list_vt macdef list_sing (x) = list_cons (,(x), list_nil ()) (* ****** ****** *) // // HX: translation of sorts // typedef s1rtitm = fxitm (s1rt) typedef s1rtitmlst = List s1rtitm (* ****** ****** *) local fn appf ( _fun: s1rt, _arg: s1rt ) : s1rtitm = let val loc = _fun.s1rt_loc + _arg.s1rt_loc val xs_arg = ( case+ _arg.s1rt_node of | S1RTlist s1ts => s1ts | _ => list_sing (_arg) ) : s1rtlst // end of [val] val s1t_app = s1rt_app (loc, _fun, xs_arg) in FXITMatm (s1t_app) end // end of [appf] in // in of [local] fn s1rtitm_app (loc: location): s1rtitm = fxitm_app (loc, appf) // end of [s1rtitm_app] end // end of [local] (* ****** ****** *) fn s1rt_get_loc (x: s1rt): location = x.s1rt_loc fn s1rt_make_opr ( opr: s1rt, f: fxty ) : s1rtitm = begin fxopr_make {s1rt} ( s1rt_get_loc , lam (loc, x, _(*loc_arg*), xs) => s1rt_app (loc, x, xs) , opr, f ) // end of [oper_make] end // end of [s1rt_make_opr] fn s1rtitm_backslash (loc_opr: location) = begin fxopr_make_backslash {s1rt} ( lam x => x.s1rt_loc , lam (loc, x, _(*loc_arg*), xs) => s1rt_app (loc, x, xs) , loc_opr ) // end of [oper_make_backslash] end // end of [s1rtitm_backslash] (* ****** ****** *) local fn s0rt_tr_errmsg_opr (s0t0: s0rt): s1rt = let val loc0 = s0t0.s0rt_loc val () = prerr_error1_loc (loc0) val () = prerr ": the operator needs to be applied." val () = prerr_newline () val () = the_trans1errlst_add (T1E_s0rt_tr (s0t0)) in s1rt_err (loc0) end // end of [s0rt_tr_errmsg_opr] in // in of [local] implement s0rt_tr (s0t0) = let // fun aux_item (s0t0: s0rt): s1rtitm = let val loc0 = s0t0.s0rt_loc in case+ s0t0.s0rt_node of | S0RTapp _ => let val s1t0 = fixity_resolve ( loc0, s1rt_get_loc, s1rtitm_app (loc0), aux_itemlst (s0t0) ) // end of [val] in FXITMatm (s1t0) end // end of [S0RTapp] | S0RTide id when id = BACKSLASH => s1rtitm_backslash (loc0) | S0RTide id => begin case+ the_fxtyenv_find id of | ~Some_vt f => s1rt_make_opr (s1rt_ide (loc0, id), f) | ~None_vt () => FXITMatm (s1rt_ide (loc0, id)) end // end of [S0RTide] | S0RTlist xs => FXITMatm (s1rt_list (loc0, s0rtlst_tr xs)) | S0RTqid (q, id) => FXITMatm (s1rt_qid (loc0, q, id)) (* | S0RTtup (xs) => FXITMatm (s1rt_tup (loc0, s0rtlst_tr xs)) *) | S0RTtype knd => FXITMatm (s1rt_type (loc0, knd)) end // end of [aux_item] // and aux_itemlst (s0t0: s0rt): s1rtitmlst = let fun loop ( s0t0: s0rt, res: s1rtitmlst ) : s1rtitmlst = case+ s0t0.s0rt_node of | S0RTapp (s0t1, s0t2) => let val res = list_cons (aux_item s0t2, res) in loop (s0t1, res) end // end of [S0RTapp] | _ => list_cons (aux_item s0t0, res) // end of [_] // end of [loop] in loop (s0t0, list_nil ()) end // end of [aux_itemlst] // in // case+ aux_item s0t0 of | FXITMatm (s1t) => s1t | FXITMopr (loc, _) => s0rt_tr_errmsg_opr (s0t0) // end of [case] end // end of [s0rt_tr] end // end of [local] implement s0rtlst_tr (s0ts) = l2l (list_map_fun (s0ts, s0rt_tr)) implement s0rtopt_tr (s0topt) = case+ s0topt of Some s0t => Some (s0rt_tr s0t) | None () => None () // end of [s0rtopt_tr] (* ****** ****** *) implement a0srt_tr (x) = a1srt_make (x.a0srt_loc, x.a0srt_sym, s0rt_tr (x.a0srt_srt)) // end of [a0srt_tr] implement a0msrt_tr (x) = let val arg = l2l (list_map_fun (x.a0msrt_arg, a0srt_tr)) in a1msrt_make (x.a0msrt_loc, arg) end // end of [a0msrt_tr] implement a0msrtlst_tr (xs) = l2l (list_map_fun (xs, a0msrt_tr)) (* ****** ****** *) local fn d0atsrtcon_tr (x: d0atsrtcon): d1atsrtcon = let val loc = x.d0atsrtcon_loc and nam = x.d0atsrtcon_sym val s1ts = ( case+ x.d0atsrtcon_arg of | Some s0t => let val s1t = s0rt_tr s0t in case+ s1t.s1rt_node of | S1RTlist s1ts => s1ts | _ => list_cons (s1t, list_nil ()) end // end of [Some] | None () => list_nil () ) : s1rtlst // end of [val] in d1atsrtcon_make (loc, nam, s1ts) end // end of [d0atsrtcon_tr] fn d0atsrtconlst_tr (xs: d0atsrtconlst): d1atsrtconlst = l2l (list_map_fun (xs, d0atsrtcon_tr)) in // in of [local] implement d0atsrtdec_tr (d) = let val loc = d.d0atsrtdec_loc val name = d.d0atsrtdec_sym val conlst = d0atsrtconlst_tr (d.d0atsrtdec_con) in d1atsrtdec_make (loc, name, conlst) end // end of [d0atsrtdec_tr] end // end of [local] (* ****** ****** *) (* end of [pats_trans1_sort.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2.sats0000644000175000017500000002025513431250607020611 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload SYN = "./pats_syntax.sats" // typedef s0rtq = $SYN.s0rtq typedef sqi0de = $SYN.sqi0de // (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) // // HX-2011-05: // the list of possible errors that may occur // during the level-2 translation // datatype trans2err = // | T2E_s1rt_tr of (s1rt) | T2E_s2var_check_tmplev of (s2var) | T2E_effvar_tr of (effvar) | T2E_s1exp_trup of (s1exp) | T2E_s1exp_trup_app of (s1exp) | T2E_s1exp_trdn of (s1exp, s2rt) | T2E_s1exp_trdn_impred of (s1exp) | T2E_s2exp_trdn of (location, s2exp, s2rt) // | T2E_S1Ed2ctype_tr of S1Ed2ctype // | T2E_s1arg_trdn of (s1arg, s2rt) | T2E_s1marg_trdn of (s1marg, s2rtlst) // | T2E_sp1at_trdn of (sp1at, s2rt) | T2E_sc2laulst_coverck_sort of (location, s2rt) | T2E_sc2laulst_coverck_sort of (location, s2rt) | T2E_sc2laulst_coverck_repeat of (location, sc2lau) | T2E_sc2laulst_coverck_missing of (location, s2cst) // | T2E_q1marg_tr_dec of (q1marg) // | T2E_s1rtext_tr of (s1rtext) | T2E_s1expdef_tr of (s1expdef) // | T2E_s1aspdec_tr of (s1aspdec) | T2E_s1aspdec_tr_arg of (s1aspdec, s1marg) | T2E_s1aspdec_tr_res of (s1aspdec, s2rt, s2rt) // | T2E_re1assume_tr of (sqi0de(*s2cst*)) // | T2E_d1atcon_tr of (d1atcon) | T2E_d1atdec_tr of (d1atdec) // | T2E_macdef_check of (location, d2mac) | T2E_macvar_check of (location, d2var) // | T2E_p1at_tr of (p1at) | T2E_d1exp_tr of (d1exp) | T2E_d1exp_tr_ann of (d1exp, s2exp) | T2E_i1nvarg_tr of (i1nvarg) | T2E_c1lau_tr of (c1lau) // | T2E_f1undec_tr of (f1undec) // | T2E_d1cstdec_tr of (d1cstdec) // | T2E_prv1ardec_tr of (v1ardec) // | T2E_d1ecl_tr_impdec of (d1ecl) | T2E_d1ecl_tr_impdec_nontop of (d1ecl) | T2E_d1ecl_tr_impdec_tmparg of (d1ecl) // | T2E_d1ecl_tr_overload of (d1ecl) | T2E_d1ecl_tr_overload_def of (location) | T2E_d1ecl_tr_staloadnm of (d1ecl) // // end of [trans2err] fun the_trans2errlst_add (x: trans2err): void fun the_trans2errlst_finalize (): void // cleanup all the errors (* ****** ****** *) fun s1rt_tr (s1t: s1rt): s2rt fun s1rtlst_tr (s1ts: s1rtlst): s2rtlst fun s1rtopt_tr (s1topt: s1rtopt): s2rtopt (* ****** ****** *) fun a1srt_tr_srt (x: a1srt): s2rt fun a1msrt_tr_srt (x: a1msrt): s2rtlst fun a1srt_tr_symsrt (x: a1srt): syms2rt fun a1msrt_tr_symsrt (x: a1msrt): syms2rtlst (* ****** ****** *) fun effcst_tr (efc: effcst): s2eff (* ****** ****** *) fun s1arg_trup (s1a: s1arg): s2var fun s1arglst_trup (s1as: s1arglst): s2varlst fun s1arg_trdn (s1a: s1arg, s2t: s2rt): s2var fun s1arglst_trdn_err (s1as: s1arglst, s2ts: s2rtlst, err: &int): s2varlst // end of [s1arglst_trdn_err] fun s1marg_trdn (s1ma: s1marg, s2ts: s2rtlst): s2varlst (* ****** ****** *) fun s1vararg_tr (s1a: s1vararg): s2vararg (* ****** ****** *) fun sp1at_trdn (sp1t: sp1at, s2t: s2rt): sp2at fun sc2laulst_coverck (loc0: location, xs: sc2laulst, s2t: s2rt): void // end of [sc2laulst_coverck] (* ****** ****** *) fun s1exp_trup (s1e: s1exp): s2exp fun s1exp_trup_hnfize (s1e: s1exp): s2exp fun s1explst_trup (s1es: s1explst): s2explst fun s1explst_trup_hnfize (s1es: s1explst): s2explst fun s1expopt_trup (s1es: s1expopt): s2expopt fun s2exp_trdn ( loc: location, s2e: s2exp, s2t: s2rt ) : s2exp // end of [s2exp_trdn] fun s1exp_trdn (s1e: s1exp, s2t: s2rt): s2exp fun s1exp_trdn_int (s1e: s1exp): s2exp fun s1exp_trdn_addr (s1e: s1exp): s2exp fun s1exp_trdn_bool (s1e: s1exp): s2exp fun s1exp_trdn_t0ype (s1e: s1exp): s2exp fun s1exp_trdn_vt0ype (s1e: s1exp): s2exp fun s1exp_trdn_impred (s1e: s1exp): s2exp fun s1explst_trdn_int (s1es: s1explst): s2explst fun s1explst_trdn_addr (s1es: s1explst): s2explst fun s1explst_trdn_bool (s1es: s1explst): s2explst fun s1explst_trdn_vt0ype (s1es: s1explst): s2explst fun s1explst_trdn_impred (s1es: s1explst): s2explst fun s1explst_trdn_err (s1es: s1explst, s2ts: s2rtlst, err: &int): s2explst // end of [s1explst_trdn_err] (* ****** ****** *) fun s1exp_trup_arg (s1e: s1exp, wths1es: &wths1explst): s2exp fun s1exp_trdn_arg_impred (s1e: s1exp, wths1es: &wths1explst): s2exp fun s1exp_trdn_res_impred (s1e: s1exp, wths1es: (wths1explst)): s2exp (* ****** ****** *) fun witht1ype_tr (wty: witht1ype): s2expopt (* ****** ****** *) // fun S1Ed2ctype_tr (d2ctp: S1Ed2ctype): s2exp // HX: $d2ctype(...) // (* ****** ****** *) // // HX: arg/res type translation // fun s1exp_tr_arg_up (s1e: s1exp, w1ts: &wths1explst): s2exp fun s1exp_trdn_arg_impredicative (s1e: s1exp, w1ts: &wths1explst): s2exp fun s1exp_trdn_res_impredicative (s1e: s1exp, w1ts: wths1explst): s2exp (* ****** ****** *) fun s1rtext_tr (s1te: s1rtext): s2rtext fun s1qualst_tr (s1qs: s1qualst): s2qua (* ****** ****** *) fun q1marg_tr (q1ma: q1marg): s2qua // HX: loc is discarded (* ** HX: [q1marg_tr_dec] for (template) decarg *) fun q1marg_tr_dec (q1ma: q1marg): s2qua // HX: [s2ps] must be nil (* ****** ****** *) fun s1exparg_tr (s1a: s1exparg): s2exparg fun s1exparglst_tr (s1as: s1exparglst): s2exparglst (* ****** ****** *) fun stasub_extend_sarglst_svarlst ( sub: &stasub, s1as: s1arglst, s2vs: s2varlst, serr: &int ) : s2varlst_vt // end of [fun] (* ****** ****** *) fun s1vararg_bind_svarlst ( s1v: s1vararg, s2vs: s2varlst, serr: &int ) : (stasub, s2varlst_vt) // end of [fun] (* fun s1marg_bind_svarlst ( s1ma: s1marg, s2vs: s2varlst, sub: stasub ) : (stasub, s2varlst) // end of [s1marg_bind_svarlst] fun t1mpmarg_bind_svarlst ( t1ma: t1mpmarg, s2vs: s2varlst, sub: stasub ) : (stasub, s2explst) // end of [t1mpmarg_bind_svarlst] *) (* ****** ****** *) fun t1mpmarg_tr (t1ma: t1mpmarg): t2mpmarg fun t1mpmarglst_tr (t1mas: t1mpmarglst): t2mpmarglst (* ****** ****** *) fun d1atcon_tr ( s2c: s2cst , islin: bool , isprf: bool , s2vss0: s2varlstlst , fil: filename , d1c: d1atcon ) : d2con // end of [d1atcon_tr] (* ****** ****** *) fun p1at_tr (p1t: p1at): p2at fun p1atlst_tr (p1ts: p1atlst): p2atlst fun labp1at_tr (lp1t: labp1at): labp2at fun p1at_tr_arg (p1t: p1at, w1ts: &wths1explst): p2at fun p1atlst_tr_arg (p1ts: p1atlst, w1ts: &wths1explst): p2atlst (* ****** ****** *) // // HX: used in [pats_trans3_env] // fun d2con_instantiate (loc: location, d2c: d2con): @(s2qualst, s2exp) // end of [d2con_instantiate] (* ****** ****** *) fun d1exp_tr (d1e: d1exp): d2exp fun d1explst_tr (d1es: d1explst): d2explst fun d1expopt_tr (d1es: d1expopt): d2expopt (* ****** ****** *) fun labd1exp_tr (ld1e: labd1exp): labd2exp (* ****** ****** *) fun d1lab_tr (d1l: d1lab): d2lab fun d1lablst_tr (d1ls: d1lablst): d2lablst (* ****** ****** *) fun i1mpdec_tr (d1c: d1ecl): Option_vt (i2mpdec) (* ****** ****** *) fun d1ecl_tr (d1c: d1ecl): d2ecl fun d1eclist_tr (d1cs: d1eclist): d2eclist (* ****** ****** *) fun d1eclist_tr_errck (d1cs: d1eclist): d2eclist (* ****** ****** *) (* end of [pats_trans2.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_emit3.dats0000644000175000017500000012210113431250607021554 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Start Time: January, 2013 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_ccomp_emit2" // (* ****** ****** *) // staload ERR = "./pats_error.sats" // staload FIL = "./pats_filename.sats" staload LOC = "./pats_location.sats" // (* ****** ****** *) staload SYM = "./pats_symbol.sats" staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload S2E = "./pats_staexp2.sats" typedef d2con = $S2E.d2con typedef d2conlst = $S2E.d2conlst (* ****** ****** *) staload D2E = "./pats_dynexp2.sats" typedef d2cst = $D2E.d2cst typedef d2ecl = $D2E.d2ecl typedef d2eclist = $D2E.d2eclist overload = with $D2E.eq_d2cst_d2cst overload != with $D2E.neq_d2cst_d2cst (* ****** ****** *) staload TR2ENV = "./pats_trans2_env.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) implement emit_exndec (out, hid) = let // val loc0 = hid.hidecl_loc val- HIDexndecs(d2cs) = hid.hidecl_node // val () = emit_text(out, "/*\n") val () = emit_location(out, loc0) val () = emit_text(out, "\n*/\n") // fun auxlst ( out: FILEref, d2cs: d2conlst ) : void = let in // case+ d2cs of // | list_nil ((*void*)) => () // | list_cons (d2c, d2cs) => let // val () = emit_text (out, "ATSdynexn_dec(") val () = emit_d2con(out, d2c) val () = emit_text(out, ") ;\n") // in auxlst(out, d2cs) end // end of [list_cons] // end (* end of [auxlst] *) // in auxlst(out, d2cs) end // end of [emit_exndec] (* ****** ****** *) implement emit_saspdec (out, hid) = let // val loc0 = hid.hidecl_loc val-HIDsaspdec (d2c) = hid.hidecl_node // val () = emit_text (out, "/*\n") val () = emit_location (out, loc0) val () = emit_text (out, "\n*/\n") // val () = emit_text (out, "ATSassume(") val () = emit_s2cst (out, d2c.s2aspdec_cst) val () = emit_text (out, ") ;\n") // in // nothing end // end of [emit_saspdec] (* ****** ****** *) implement emit_extype (out, hid) = let // val loc0 = hid.hidecl_loc // val-HIDextype (name, hse_def) = hid.hidecl_node // val () = emit_text (out, "/*\n") val () = emit_location (out, loc0) val () = emit_text (out, "\n*/\n") // in // case+ hse_def.hisexp_node of // | HSEtysum _ => { // val () = emit_text (out, "typedef\n") val () = emit_hisexp_sel (out, hse_def) val () = emit_text (out, "\n") val () = emit_text (out, name) val () = emit_text (out, "_") val () = emit_text (out, " ;\n") // val () = emit_text (out, "typedef\n") val () = emit_text (out, name) val () = emit_text (out, "_ *") val () = emit_text (out, name) val () = emit_text (out, " ;\n") // } (* end of [HSEtysum] *) // | _ (*non-tysum*) => { val () = emit_text (out, "typedef\n") val () = emit_hisexp (out, hse_def) val () = emit_text (out, "\n") val () = emit_text (out, name) val () = emit_text (out, " ;\n") } (* end of [non-tysum] *) // end // end of [emit_extype] (* ****** ****** *) implement emit_extcode (out, hid) = let // val loc0 = hid.hidecl_loc val-HIDextcode (knd, pos, code) = hid.hidecl_node // val () = emit_text (out, "/*\n") val () = emit_location (out, loc0) val () = emit_text (out, "\n*/") val () = emit_text (out, "\nATSextcode_beg()") val () = emit_text (out, code) val () = emit_text (out, "ATSextcode_end()\n") // in // nothing end // end of [emit_extcode] (* ****** ****** *) local fun auxloc ( out: FILEref, loc: location ) : void = let val () = emit_text (out, "/*\n") val () = emit_location (out, loc) val () = emit_text (out, "\n*/\n") in // nothing end // end of [auxloc] fun auxsta ( out: FILEref, d2cs: d2eclist ) : void = let // (* val () = println! ("auxsta") *) // in // case+ d2cs of | list_nil ((*void*)) => () // end of [list_nil] | list_cons ( d2c, d2cs ) => auxsta(out, d2cs) where { val () = ( case+ d2c.d2ecl_node of // case+ // | $D2E.D2Cextcode (knd, pos, code) => ( (* println! ("auxsta: pos = ", pod); *) // if (pos = 0) // %{# then let val loc = d2c.d2ecl_loc in auxloc(out, loc); emit_text(out, code) end // end of [then] // end of [if] // ) (* end of [D2Cextcode] *) // | $D2E.D2Cstaload ( idopt , fil, flag, fenv, _(*loaded*) ) => let val () = auxloc(out, d2c.d2ecl_loc) val d2cs = $TR2ENV.filenv_get_d2eclist(fenv) val issta = $FIL.filename_is_sats(fil) in if issta then auxsta(out, d2cs) else ((*void*)) end // end of [D2Cstaload] // | _ (* rest-of-d2ecl *) => ((*skipped*)) // ) : void // end of [val] } (* end of [where] *) // end of [list_cons] // end // end of [auxsta] fun auxdyn ( out: FILEref, d2cs: d2eclist ) : void = let in // case+ d2cs of // | list_nil ((*void*)) => () // end of [list_nil] // | list_cons ( d2c, d2cs ) => auxdyn(out, d2cs) where { val () = ( case+ d2c.d2ecl_node of // case+ // | $D2E.D2Cextcode (knd, pos, code) => ( (* println! ("auxdyn: knd = ", knd); *) // if (pos = 0) // %{# then let val loc = d2c.d2ecl_loc in auxloc(out, loc); emit_text(out, code) end // end of [then] // end of [if] // ) (* end of [D2Cextcode] *) // | $D2E.D2Cstaload ( idopt , fil, flag, fenv, loaded ) => let val () = auxloc(out, d2c.d2ecl_loc) val d2cs = $TR2ENV.filenv_get_d2eclist(fenv) val issta = $FIL.filename_is_sats(fil) in if issta then auxsta(out, d2cs) else auxdyn(out, d2cs) // end of [if] end // end of [D2Cstaload] // | $D2E.D2Clocal ( d2cs_head, d2cs_body ) => ( auxdyn(out, d2cs_head); auxdyn(out, d2cs_body) ) // end of [D2Clocal] // | $D2E.D2Cinclude (knd, d2cs) => ( if knd = 0 then auxsta(out, d2cs) else auxdyn(out, d2cs) // end of [if] ) (* end of [D2Cinclude] *) | _ (* rest-of-d2ecl *) => ((*skipped*)) // ) : void // end of [val] // } (* end of [where] *) // end of [list_cons] // end // end of [auxdyn] in (* in of [local] *) implement emit_staload (out, hid) = let // val-HIDstaload ( idopt, fil, flag, fenv, loaded ) = hid.hidecl_node // end-of-val (* val () = println! ("emit_staload: flag = ", flag) *) val d2cs = $TR2ENV.filenv_get_d2eclist(fenv) // val issta = $FIL.filename_is_sats(fil) // in if issta then auxsta(out, d2cs) else auxdyn(out, d2cs) end // end of [emit_staload] end // end of [local] (* ****** ****** *) // extern fun emit_tmprimval(out: FILEref, tpmv: tmprimval): void extern fun emit_tmpmovlst(out: FILEref, tmvlst: tmpmovlst): void // (* ****** ****** *) implement emit_tmprimval (out, tpmv) = ( case+ tpmv of | TPMVnone (pmv) => emit_primval (out, pmv) | TPMVsome (tmp, _) => emit_tmpvar (out, tmp) ) (* end of [emit_tmprimval] *) (* ****** ****** *) implement emit_tmpmovlst (out, tmvlst) = let // fun auxlst ( out: FILEref, i: int, xs: tmpmovlst ) : void = let in // case+ xs of | list_cons (x, xs) => let val () = emit_text (out, "ATSINSmove(") val () = emit_tmpvar (out, x.1) val () = emit_text (out, ", ") val () = emit_tmprimval (out, x.0) val () = emit_text (out, ") ; ") in auxlst (out, i+1, xs) end // end of [list_cons] | list_nil((*void*)) => ((*void*)) // end // end of [auxlst] // in auxlst (out, 0(*i*), tmvlst) end (* end of [emit_tmpmovlst] *) (* ****** ****** *) // extern fun emit_patckont (out: FILEref, fail: patckont): void // implement emit_patckont (out, fail) = let in // case+ fail of // | PTCKNTtmplab (tlab) => { val () = emit_text (out, "ATSINSgoto(") val () = emit_tmplab (out, tlab) val ((*closing*)) = emit_text (out, ")") } // | PTCKNTtmplabint (tlab, int) => { val () = emit_text (out, "ATSINSgoto(") val () = emit_tmplabint (out, tlab, int) val ((*closing*)) = emit_text (out, ")") } // | PTCKNTtmplabmov (tlab, tmvlst) => { val () = emit_tmpmovlst (out, tmvlst) val () = emit_text (out, "ATSINSgoto(") val () = emit_tmplab (out, tlab) val ((*closing*)) = emit_text (out, ")") } // | PTCKNTraise (tmp, pmv_exn) => { val () = emit_text (out, "ATSINSraise_exn(") val () = ( emit_tmpvar (out, tmp); emit_text (out, ", "); emit_primval (out, pmv_exn) ) (* end of [val] *) val ((*closing*)) = emit_text (out, ")") } // | PTCKNTcaseof_fail (loc) => { val () = emit_text (out, "ATSINScaseof_fail(\"") val () = $LOC.fprint_location (out, loc) val ((*closing*)) = emit_text (out, "\")") } // | PTCKNTfunarg_fail (loc, flab) => { val () = emit_text (out, "ATSINSfunarg_fail(\"") val () = $LOC.fprint_location (out, loc) val ((*closing*)) = emit_text (out, "\")") } // | PTCKNTnone ((*void*)) => { val () = emit_text (out, "ATSINSdeadcode_fail()") } // end // (* end of [emit_patckont] *) // (* ****** ****** *) // // HX-2013-01: // // the kind of code duplication in the implementation // of [emit_instr_patck] can be readily removed by using // template system of ATS2. // // local fun auxcon ( out: FILEref , pmv: primval , d2c: d2con, fail: patckont ) : void =let // val s2c = $S2E.d2con_get_scst (d2c) // in // case+ 0 of | _ when $S2E.s2cst_is_singular (s2c) => () | _ when $S2E.s2cst_is_listlike (s2c) => let val islst = $S2E.s2cst_get_islst (s2c) val isnil = ( case+ islst of | Some xx => $S2E.eq_d2con_d2con (d2c, xx.0) | None () => false (* deadcode *) ) : bool // end of [val] val () = emit_text (out, "ATSifthen(") val () = ( if isnil then emit_text (out, "ATSCKptriscons(") else emit_text (out, "ATSCKptrisnull(") // end of [if] ) : void // end of [val] val () = emit_primval (out, pmv) val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") in // nothing end // end of [islistlike] | _ => let val isnul = $S2E.d2con_is_nullary (d2c) // end of [val] val () = emit_text (out, "ATSifnthen(") val () = ( if isnul then emit_text (out, "ATSCKpat_con0(") else emit_text (out, "ATSCKpat_con1(") // end of [if] ) : void // end of [val] val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_int (out, $S2E.d2con_get_tag (d2c)) val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") in // nothing end // end of [PATCKcon] // end // end of [auxcon] fun auxexn ( out: FILEref , pmv: primval , d2c: d2con, fail: patckont ) : void = let // val narg = $S2E.d2con_get_arity_real (d2c) // val () = emit_text (out, "ATSifnthen(") val () = ( if narg = 0 then emit_text (out, "ATSCKpat_exn0(") else emit_text (out, "ATSCKpat_exn1(") // end of [if] ) : void // end of [val] val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_d2con (out, d2c); val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") // in // nothing end // end of [auxexn] fun auxmain ( out: FILEref , pmv: primval, patck: patck, fail: patckont ) : void = let in // case+ patck of // | PATCKcon (d2c) => let val iscon = $S2E.d2con_is_con (d2c) in if iscon then auxcon (out, pmv, d2c, fail) else auxexn (out, pmv, d2c, fail) // end of [if] end // end of [PATCKcon] // | PATCKint (i) => { val () = emit_text (out, "ATSifnthen(") val () = emit_text (out, "ATSCKpat_int(") val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_ATSPMVint (out, i) val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") } (* end of [PATCKint] *) // | PATCKbool (b) => { val () = emit_text (out, "ATSifnthen(") val () = emit_text (out, "ATSCKpat_bool(") val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_ATSPMVbool (out, b) val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") } (* end of [PATCKbool] *) // | PATCKchar (c) => { val () = emit_text (out, "ATSifnthen(") val () = emit_text (out, "ATSCKpat_char(") val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_ATSPMVchar (out, c) val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") } (* end of [PATCKchar] *) // | PATCKfloat (float) => { val () = emit_text (out, "ATSifnthen(") val () = emit_text (out, "ATSCKpat_float(") val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_ATSPMVfloat (out, float) val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") } (* end of [PATCKfloat] *) // | PATCKstring (string) => { val () = emit_text (out, "ATSifnthen(") val () = emit_text (out, "ATSCKpat_string(") val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_ATSPMVstring (out, string) val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") } (* end of [PATCKstring] *) // | PATCKi0nt (tok) => { val () = emit_text (out, "ATSifnthen(") val () = emit_text (out, "ATSCKpat_int(") val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_ATSPMVi0nt (out, tok) val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") } (* end of [PATCKi0nt] *) // | PATCKf0loat (tok) => { val () = emit_text (out, "ATSifnthen(") val () = emit_text (out, "ATSCKpat_float(") val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_ATSPMVf0loat (out, tok) val () = emit_text (out, ")) { ") val () = emit_patckont (out, fail) val () = emit_text (out, " ; } ;") } (* end of [PATCKf0loat] *) // (* | _ (*unrecognized*) => let val () = prerr_interror () val () = prerrln! (": emit_instr_patck: patck = ", patck) val () = assertloc (false) in $ERR.abort ((*void*)) end // end of [let] // end of [_] *) // end (* end of [auxmain] *) in (* in of [local] *) implement emit_instr_patck (out, ins) = let // val-INSpatck (pmv, patck, fail) = ins.instr_node val isnone = patckont_is_none (fail) val () = if isnone then emit_text (out, "#if(0)\n") val () = auxmain (out, pmv, patck, fail) val () = if isnone then emit_text (out, "\n#endif") // in // nothing end // end of [emit_instr_patck] end // end of [local] (* ****** ****** *) local fun aux ( out: FILEref, ibr: ibranch ) : void = let // val inss = ibr.ibranch_inslst // val () = emit_text (out, "ATSbranch_beg()\n") val () = emit_instrlst_ln (out, inss) val () = emit_text (out, "ATSbranch_end()\n") // in // nothing end // end of [emit_branch] in (*in-of-local*) implement emit_ibranchlst (out, ibrs) = let // fun auxlst ( out: FILEref , i: int, ibrs: ibranchlst ) : void = let in // case+ ibrs of | list_cons (ibr, ibrs) => { val () = aux (out, ibr) val () = emit_newline (out) val () = auxlst (out, i+1, ibrs) } // end of [list_cons] | list_nil () => () // end // end of [auxlst] // val () = emit_text ( out, "/*\n** ibranchlst-beg\n*/\n" ) val () = auxlst (out, 0(*i*), ibrs) val () = emit_text ( out, "/*\n** ibranchlst-end\n*/\n" ) in // nothing end // end of [emit_ibranchlst] end // end of [local] (* ****** ****** *) local fun auxfun ( out: FILEref, fent: funent ) : void = let // val flab = funent_get_lab(fent) val istmp = (funlab_get_tmpknd(flab) > 0) // val qopt = funlab_get_d2copt(flab) val isqua = ( case+ qopt of Some(d2c) => true | None() => false ) : bool // end of [val] val isext = ( case+ qopt of | Some (d2c) => if $D2E.d2cst_is_static(d2c) then false else true | None _ => false ) : bool // end of [val] // val flopt = funlab_get_origin(flab) val isqua = ( case+ flopt of Some _ => false | None () => isqua ) : bool // end of [val] val isext = ( case+ flopt of Some _ => false | None () => isext ) : bool // end of [val] val issta = not (isext) // val () = if istmp then emit_text (out, "#if(0)\n") val () = if isqua then emit_text (out, "#if(0)\n") // val () = if isext then emit_text (out, "ATSextern()\n") val () = if issta then emit_text (out, "ATSstatic()\n") // val hse_res = funlab_get_type_res (flab) val hses_arg = funlab_get_type_fullarg (flab) // val ( ) = emit_hisexp (out, hse_res) val () = emit_text (out, "\n") val () = emit_funlab (out, flab) val () = emit_text (out, "(") val ( ) = emit_hisexplst_sep (out, hses_arg, ", ") val () = emit_text (out, ") ;\n") // val () = if isqua then emit_text (out, "#endif // end of [QUALIFIED]\n") // val () = if istmp then emit_text (out, "#endif // end of [TEMPLATE]\n") // in // nothing end // end of [auxfun] in (* in of [local] *) implement emit_funent_ptype (out, fent) = let // val () = auxfun (out, fent) // val () = emit_newline (out) // in // nothing end // end of [emit_funentry_ptype] end // end of [local] (* ****** ****** *) local fun aux0_arglst ( out: FILEref , hses: hisexplst, i: int ) : void = let in // case+ hses of // | list_nil () => () // | list_cons (hse, hses) => let val () = if i > 0 then emit_text (out, ", ") // end of [if] val () = emit_hisexp (out, hse) in aux0_arglst (out, hses, i+1) end // end of [list_cons] // end (* end of [aux0_arglst] *) fun aux1_arglst ( out: FILEref , hses: hisexplst, n0: int, i: int ) : void = let in // case+ hses of // | list_nil () => () // | list_cons (hse, hses) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_hisexp (out, hse); emit_text (out, " arg"); emit_int (out, i) ) : void // end of [val] in aux1_arglst (out, hses, n0, i+1) end // end of [list_cons] // end (* end of [aux1_arglst] *) fun aux2_arglst ( out: FILEref , hses: hisexplst, n0: int, i: int ) : void = let in // case+ hses of // | list_nil () => () // | list_cons (hse, hses) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "arg"); emit_int (out, i) ) : void // end of [val] in aux2_arglst (out, hses, n0, i+1) end // end of [list_cons] // end (* end of [aux2_arglst] *) fun aux0_envlst ( out: FILEref, d2es: d2envlst, i: int ) : void = let in // case+ d2es of // | list_nil () => () // | list_cons (d2e, d2es) => let val hse = d2env_get_type (d2e) val () = if i > 0 then emit_text (out, ", ") // end of [if] val () = emit_hisexp (out, hse) in aux0_envlst (out, d2es, i+1) end // end of [list_cons] // end (* end of [aux0_envlst] *) fun aux1_envlst ( out: FILEref, d2es: d2envlst, i: int ) : void = let in // case+ d2es of // | list_nil () => () // | list_cons (d2e, d2es) => let val hse = d2env_get_type (d2e) val () = ( emit_hisexp (out, hse); emit_text (out, " env"); emit_int (out, i) ) val () = emit_text (out, " ;\n") in aux1_envlst (out, d2es, i+1) end // end of [list_cons] // end (* end of [aux1_envlst] *) fun aux2_envlst ( out: FILEref , d2es: d2envlst, n0: int, i: int ) : int = let in // case+ d2es of // | list_nil () => (n0+i) // | list_cons (d2e, d2es) => let val hse = d2env_get_type (d2e) val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_hisexp (out, hse); emit_text (out, " env"); emit_int (out, i) ) : void // end of [val] in aux2_envlst (out, d2es, n0, i+1) end // end of [list_cons] // end (* end of [aux2_envlst] *) fun aux3_envlst ( out: FILEref , d2es: d2envlst, n0: int, i: int ) : int = let in // case+ d2es of // | list_nil () => (n0+i) // | list_cons (d2e, d2es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "env"); emit_int (out, i) ) : void // end of [val] in aux3_envlst (out, d2es, n0, i+1) end // end of [list_cons] // end (* end of [aux3_envlst] *) fun aux4_envlst ( out: FILEref , d2es: d2envlst, n0: int, i: int ) : int = let in // case+ d2es of // | list_nil () => (i) // | list_cons (d2e, d2es) => let val () = if n0+i > 0 then emit_text (out, ", ") val () = ( emit_text (out, "p_cenv->env"); emit_int (out, i) ) : void // end of [val] in aux4_envlst (out, d2es, n0, i+1) end // end of [list_cons] // end (* end of [aux4_envlst] *) fun aux5_envlst ( out: FILEref, d2es: d2envlst, i: int ) : void = let in // case+ d2es of | list_cons (d2e, d2es) => let val hse = d2env_get_type (d2e) val () = ( emit_text (out, "p_cenv->env"); emit_int (out, i) ) : void // end of [val] val () = ( emit_text (out, " = "); emit_text (out, "env"); emit_int (out, i) ) : void // end of [val] val () = emit_text (out, " ;\n") in aux5_envlst (out, d2es, i+1) end // end of [list_cons] | list_nil () => () // end (* end of [aux5_envlst] *) fun auxclo_type ( out: FILEref , flab: funlab, d2es: d2envlst ) : void = let // val () = emit_text (out, "typedef\n") val () = emit_text (out, "ATSstruct {\n") val () = emit_text (out, "atstype_funptr cfun ;\n") val () = aux1_envlst (out, d2es, 0) val ((*closing*)) = emit_text (out, "} ") // val () = emit_funlab (out, flab) val () = emit_text (out, "__closure_t0ype ;\n") // in // nothing end (* end of [auxclo_type] *) fun auxclo_cfun ( out: FILEref , flab: funlab, d2es: d2envlst ) : void = let // val hse_res = funlab_get_type_res (flab) val hses_arg = funlab_get_type_arg (flab) // val isvoid = hisexp_is_void (hse_res) // val () = emit_text (out, "ATSstatic()\n") val () = emit_hisexp (out, hse_res) val () = emit_text (out, "\n") val () = emit_funlab (out, flab) val () = emit_text (out, "__cfun") val () = emit_text (out, "\n(\n") val () = emit_funlab (out, flab) val () = emit_text (out, "__closure_t0ype *p_cenv") val () = aux1_arglst (out, hses_arg, 1, 0) val () = emit_text (out, "\n)\n{\n") val () = emit_text (out, "ATSFCreturn") val () = if isvoid then emit_text (out, "_void") val () = emit_text (out, "(") val () = emit_funlab (out, flab) val () = emit_text (out, "(") val n0 = aux4_envlst (out, d2es, 0, 0) val () = aux2_arglst (out, hses_arg, n0, 0) val () = emit_text (out, ")) ;\n") val () = emit_text (out, "} /* end of [cfun] */\n") // in // nothing end (* end of [auxclo_cfun] *) fun auxclo_init ( out: FILEref , flab: funlab, d2es: d2envlst ) : void = let // val () = emit_text (out, "ATSstatic()\n") val () = emit_text (out, "atstype_cloptr\n") // val () = emit_funlab (out, flab) val () = emit_text (out, "__closureinit") val () = emit_text (out, "\n(\n") // val () = emit_funlab (out, flab) val () = emit_text (out, "__closure_t0ype *p_cenv") val n0 = aux2_envlst (out, d2es, 1, 0) // val () = emit_text (out, "\n)\n{\n") val () = aux5_envlst (out, d2es, 0) val () = emit_text (out, "p_cenv->cfun = ") val () = emit_funlab (out, flab) val () = emit_text (out, "__cfun ;\n") val () = emit_text (out, "return p_cenv ;\n") val () = emit_text (out, "} /* end of [closureinit] */\n") // in // nothing end (* end of [auxclo_init] *) fun auxclo_create ( out: FILEref , flab: funlab, d2es: d2envlst ) : void = let // val () = emit_text (out, "ATSstatic()\n") val () = emit_text (out, "atstype_cloptr\n") // val () = emit_funlab (out, flab) val () = emit_text (out, "__closurerize") val () = emit_text (out, "\n(\n") // val n0 = aux2_envlst (out, d2es, 0, 0) val () = if n0 = 0 then emit_text (out, "// argumentless") // val () = emit_text (out, "\n)\n{\n") val () = emit_text (out, "return ") val () = emit_funlab (out, flab) val () = emit_text (out, "__closureinit(") val () = emit_text (out, "ATS_MALLOC(sizeof(") val () = emit_funlab (out, flab) val () = emit_text (out, "__closure_t0ype))") val n0 = aux3_envlst (out, d2es, 1, 0) val () = emit_text (out, ") ;\n") val () = emit_text (out, "} /* end of [closurerize] */\n") // in // nothing end (* end of [auxclo_create] *) fun auxall_beg ( out: FILEref , flab: funlab, d2es: d2envlst ) : void = { // val hse_res = funlab_get_type_res (flab) val hses_arg = funlab_get_type_arg (flab) // val () = emit_text ( out , "ATSclosurerize_beg" ) (* end of [val] *) // val () = emit_LPAREN (out) // val () = emit_funlab (out, flab) // val () = emit_text (out, ", ") // val () = emit_LPAREN (out) val () = aux0_envlst (out, d2es, 0) val () = emit_RPAREN (out) // val () = emit_text (out, ", ") // val () = emit_LPAREN (out) val () = aux0_arglst (out, hses_arg, 0) val () = emit_RPAREN (out) // val () = emit_text (out, ", ") // val () = emit_hisexp (out, hse_res) // val () = emit_RPAREN (out) val () = emit_newline (out) // } (* end of [auxall_end] *) fun auxall_end ( out: FILEref , flab: funlab, d2es: d2envlst ) : void = { // val () = emit_text (out, "ATSclosurerize_end()\n") // } (* end of [auxall_end] *) in (* in of [local] *) implement emit_funent_closure (out, fent) = let // val flab = funent_get_lab (fent) val d2es = funent_eval_d2envlst (fent) // val () = auxall_beg (out, flab, d2es) // val () = auxclo_type (out, flab, d2es) val () = auxclo_cfun (out, flab, d2es) val () = auxclo_init (out, flab, d2es) // val fc = funlab_get_funclo (flab) val () = if funclo_is_ptr(fc) then auxclo_create (out, flab, d2es) // end of [if] // val () = auxall_end (out, flab, d2es) // in // nothing end // end of [emit_funent_closure] end // end of [local] (* ****** ****** *) // extern fun emit_funlab_funarg (out: FILEref, flab: funlab): void // implement emit_funlab_funarg (out, flab) = let // fun auxlst ( out: FILEref, hses: hisexplst, i: int ) : void = let in // case+ hses of | list_cons (hse, hses) => let val () = emit_text (out, "ATStmpdec(") // end of [val] (* val isvoid = hisexp_is_void (hse) val ((*void*)) = if isvoid then emit_text (out, "_void") // end of [val] *) val () = ( emit_funarg (out, i); emit_text (out, ", "); emit_hisexp (out, hse) ) (* end of [val] *) val () = emit_text (out, ") ;\n") in auxlst (out, hses, i+1) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [auxlst] // val hses = funlab_get_type_arg (flab) // in auxlst (out, hses, 0(*i*)) end // end of [emit_funlab_funarg] // (* ****** ****** *) // extern fun emit_funlab_funapy (out: FILEref, flab: funlab): void // implement emit_funlab_funapy (out, flab) = let // fun auxlst ( out: FILEref, hses: hisexplst, i: int ) : void = let in // case+ hses of | list_cons (hse, hses) => let val () = emit_text(out, "ATStmpdec(") // end of [val] (* val isvoid = hisexp_is_void (hse) val ((*void*)) = if isvoid then emit_text (out, "_void") // end of [val] *) val () = ( emit_funapy(out, i); emit_text(out, ", "); emit_hisexp(out, hse) ) (* end of [val] *) val () = emit_text(out, ") ;\n") in auxlst(out, hses, i+1) end // end of [list_cons] | list_nil((*void*)) => () // end // end of [auxlst] // val hses = funlab_get_type_arg (flab) // in auxlst (out, hses, 0(*i*)) end // end of [emit_funlab_funapy] (* ****** ****** *) extern fun emit_funent_fundec (out: FILEref, fent: funent): void implement emit_funent_fundec (out, fent) = let // val flab = funent_get_lab(fent) // val tmpret = funent_get_tmpret(fent) val ntlcal = tmpvar_get_tailcal(tmpret) // val () = emit_text (out, "/* tmpvardeclst(beg) */\n") // val () = if ntlcal >= 2 then emit_funlab_funapy(out, flab) // val () = emit_tmpdeclst(out, funent_get_tmpvarlst(fent)) // val () = emit_text (out, "/* tmpvardeclst(end) */\n") // in // nothing end // end of [emit_funent_fundec] (* ****** ****** *) // extern fun emit_funent_funbody (out: FILEref, fent: funent): void // implement emit_funent_funbody (out, fent) = let // val () = emit_text (out, "ATSfunbody_beg()\n") val () = emit_instrlst_ln (out, funent_get_instrlst (fent)) val () = emit_text (out, "ATSfunbody_end()\n") // val tmpret = funent_get_tmpret (fent) // val () = let val isvoid = tmpvar_is_void (tmpret) in if ~isvoid then emit_text(out, "ATSreturn(") else emit_text(out, "ATSreturn_void(") // end of [if] end : void // end of [let] // end of [val] // val () = emit_tmpvar (out, tmpret) // val ((*closing*)) = emit_text (out, ") ;\n") // in // nothing end // end of [emit_funent_funbody] (* ****** ****** *) // extern fun emit_funent_fnxdeclst (out: FILEref, fent0: funent): void extern fun emit_funent_fnxbodylst (out: FILEref, fent0: funent): void // (* ****** ****** *) local fun auxfl ( out: FILEref , fent0: funent, fl: funlab ) : void = let // val opt = funlab_get_funent (fl) // in // case+ opt of | Some (fent) => let val () = emit_funlab_funarg (out, fl) val () = emit_funent_fundec (out, fent) in // nothing end // end of [Some] | None ((*void*)) => () // end // end of [auxfl] and auxflist ( out: FILEref , fent0: funent, fls: funlablst, i: int ) : void = let in // case+ fls of | list_cons (fl, fls) => let val () = emit_set_nfnx (i) val () = auxfl (out, fent0, fl) val () = emit_set_nfnx (0) val () = auxflist (out, fent0, fls, i+1) in // nothing end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [auxflist] in (* in of [local] *) implement emit_funent_fnxdeclst (out, fent0) = let // val fls = funent_get_fnxlablst(fent0) // val () = ( case+ fls of | list_cons _ => emit_text(out, "/*\nemit_funent_fnxdeclst:\n*/\n") | list_nil((*void*)) => ((*void*)) ) : void // end of [val] // in // case+ fls of | list_cons (fl0, fls) => auxflist (out, fent0, fls, 2(*i*)) // end of [list_cons] | list_nil((*void*)) => ((*void*)) // end // end of [emit_funent_fnxdeclst] end // end of [local] (* ****** ****** *) local fun auxfl ( out: FILEref , fent0: funent, fl: funlab ) : void = let // val opt = funlab_get_funent(fl) // in // case+ opt of | Some (fent) => emit_funent_funbody(out, fent) | None ((*void*)) => ((*void*)) // end // end of [auxfl] and auxflist ( out: FILEref , fent0: funent, fls: funlablst, i: int ) : void = let in // case+ fls of | list_cons (fl, fls) => let val () = emit_set_nfnx (i) val () = auxfl (out, fent0, fl) val () = emit_set_nfnx (0) val () = auxflist (out, fent0, fls, i+1) in // nothing end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [auxflist] in (* in of [local] *) implement emit_funent_fnxbodylst (out, fent0) = let // val fls = funent_get_fnxlablst (fent0) // val () = ( case+ fls of | list_cons _ => emit_text (out, "/*\nemit_funent_fnxbodylst:\n*/\n") | _ => ((*void*)) ) : void // end of [val] // in // case+ fls of | list_cons (fl0, fls) => auxflist (out, fent0, fls, 2(*i*)) // end of [list_cons] | list_nil ((*void*)) => () // end // end of [emit_funent_fnxbodylst] end // end of [local] (* ****** ****** *) local fun auxtmp ( out: FILEref, fent: funent ) : void = let // val imparg = funent_get_imparg (fent) val tmparg = funent_get_tmparg (fent) val tsubopt = funent_get_tmpsub (fent) // val () = emit_text (out, "/*\n") val () = emit_text (out, "imparg = ") val () = $S2E.fprint_s2varlst (out, imparg) val () = emit_text (out, "\n") val () = emit_text (out, "tmparg = ") val () = $S2E.fprint_s2explstlst (out, tmparg) val () = emit_text (out, "\n") val () = emit_text (out, "tmpsub = ") val () = fprint_tmpsubopt (out, tsubopt) val () = emit_text (out, "\n") val () = emit_text (out, "*/\n") // in // nothing end // end of [auxtmp] in (* in of [local] *) implement emit_funent_implmnt (out, fent) = let (* val () = fprintln! ( stdout_ref , "emit_funent_implmnt: fent = ", fent ) *) val loc0 = funent_get_loc (fent) val flab = funent_get_lab (fent) val d2es = funent_eval_d2envlst (fent) (* val () = fprintln! ( stdout_ref , "emit_funent_implmnt: d2es = ", d2es ) *) val () = emit_text (out, "/*\n") val () = $LOC.fprint_location (out, loc0) val () = emit_text (out, "\n*/\n") // val () = emit_text (out, "/*\n") val () = emit_text (out, "local: ") val lfls0 = funent_get_flablst (fent) val () = fprint_funlablst (out, lfls0) val () = emit_newline (out) val () = emit_text (out, "global: ") val gfls0 = funent_eval_flablst (fent) val () = fprint_funlablst (out, gfls0) val () = emit_newline (out) // val () = emit_text (out, "local: ") val ld2es = funent_eval_d2envlst (fent) val () = fprint_d2envlst (out, ld2es) val () = emit_newline (out) val () = emit_text (out, "global: ") val gd2es = funent_eval_d2envlst (fent) val () = fprint_d2envlst (out, gd2es) val () = emit_newline (out) // val () = emit_text (out, "*/\n") // val hse_res = funlab_get_type_res (flab) val hses_arg = funlab_get_type_arg (flab) // // function header // val qopt = funlab_get_d2copt (flab) val isext = ( case+ qopt of | Some (d2c) => if $D2E.d2cst_is_static (d2c) then false else true | None _ => false ) : bool // end of [val] val flopt = funlab_get_origin (flab) val isext = ( case+ flopt of Some (d2c) => false | None () => isext ) : bool // end of [val] val issta = not (isext) // val () = if isext then emit_text (out, "ATSextern()\n") val () = if issta then emit_text (out, "ATSstatic()\n") // val istmp = funent_is_tmplt (fent) val () = if istmp then auxtmp (out, fent) // val () = emit_hisexp (out, hse_res) val () = emit_text (out, "\n") val () = emit_funlab (out, flab) val () = emit_text (out, "(") val nenv = emit_funenvlst (out, d2es) val () = emit_funarglst (out, nenv, hses_arg) val () = emit_text (out, ")\n") // // tmpvardec and funbody // val () = funent_varbindmap_initize (fent) val () = funent_varbindmap_initize2 (fent) // val () = emit_text (out, "{\n") // val () = emit_funent_fundec (out, fent) val () = emit_funent_fnxdeclst (out, fent) // val () = emit_funent_funbody (out, fent) val () = emit_funent_fnxbodylst (out, fent) // val () = emit_text (out, "} /* end of [") val () = emit_funlab (out, flab) val () = emit_text (out, "] */\n") // val () = funent_varbindmap_uninitize (fent) // in // nothing end // end of [emit_funent_implmnt] end // end of [local] (* ****** ****** *) implement emit_dynload (out, hid) = let // val-HIDdynload (fil) = hid.hidecl_node // val () = emit_text (out, "ATSdynloadfcall(") val () = ( emit_filename (out, fil); emit_text (out, "__dynload") ) val () = emit_text (out, ") ;\n") // in // nothing end (* end of [emit_dynload] *) (* ****** ****** *) local // staload UN = "prelude/SATS/unsafe.sats" // fun emit_primdec (out: FILEref, pmd: primdec) : void = let in // case+ pmd.primdec_node of // | PMDnone () => () // | PMDlist (pmds) => emit_primdeclst (out, pmds) // | PMDsaspdec _ => () // | PMDextvar (name, inss) => emit_instrlst_ln (out, $UN.cast{instrlst}(inss)) // | PMDdatdecs _ => () | PMDexndecs _ => () // | PMDimpdec (imp) => let val opt = hiimpdec_get_instrlstopt (imp) in case+ opt of | Some (inss) => emit_instrlst_ln (out, inss) | None () => () end // end of [PMDimpdec] // | PMDfundecs _ => () // | PMDvaldecs (knd, hvds, inss) => emit_instrlst_ln (out, $UN.cast{instrlst}(inss)) | PMDvaldecs_rec (knd, hvds, inss) => emit_instrlst_ln (out, $UN.cast{instrlst}(inss)) // | PMDvardecs(hvds, inss) => emit_instrlst_ln (out, $UN.cast{instrlst}(inss)) // | PMDinclude (pfil, pmds) => emit_primdeclst (out, pmds) // | PMDstaload _ => () // | PMDstaloadloc (pfil, nspace, pmds) => emit_primdeclst (out, pmds) // | PMDdynload (cfil) => emit_dynload (out, cfil) // | PMDlocal ( pmds_head, pmds_body ) => { val ( ) = emit_text (out, "/* local */\n") val () = emit_primdeclst (out, pmds_head) val ( ) = emit_text (out, "/* in of [local] */\n") val () = emit_primdeclst (out, pmds_body) val ( ) = emit_text (out, "/* end of [local] */\n") // end of [val] } // end of [PMDlocal] // end // end of [emit_primdec] in (* in of [local] *) implement emit_primdeclst (out, pmds) = let in // case+ pmds of | list_cons (pmd, pmds) => let val () = emit_primdec (out, pmd) in emit_primdeclst (out, pmds) // end of [val] end // end of [list_cons] | list_nil () => () // end // end of [emit_primdeclst] end // end of [local] (* ****** ****** *) implement emit_d2con_extdec (out, d2c) = let // val isexn = $S2E.d2con_is_exn(d2c) // val () = if isexn then { // val () = emit_text (out, "ATSdynexn_extdec") // val () = emit_text(out, "(") val () = emit_d2con(out, d2c) val () = emit_text(out, ") ;\n") // } // end of [if] // end of [val] // in // nothing end // end of [emit_d2con_extdec] implement emit_d2conlst_extdec (out, d2cs) = ( list_app_cloptr (d2cs, lam d2c =<1> emit_d2con_extdec (out, d2c)) ) // end of [emit_d2conlst_extdec] (* ****** ****** *) implement emit_d2conlst_initize (out, d2cs) = let // fun aux ( out: FILEref, d2c: d2con ) : void = let // val fil = $S2E.d2con_get_fil (d2c) val name = $S2E.d2con_get_name (d2c) // val () = emit_text (out, "ATSdynexn_initize(") val () = emit_d2con (out, d2c) val () = emit_text (out, ", ") val () = emit_text (out, "\"") val () = $FIL.fprint_filename_full (out, fil) val () = emit_text (out, ":") val () = emit_text (out, name) val () = emit_text (out, "\"") val () = emit_text (out, ") ;\n") // in // nothing end (* end of [aux] *) // in // case+ d2cs of | list_cons (d2c, d2cs) => let val isexn = $S2E.d2con_is_exn (d2c) val ((*void*)) = if isexn then aux (out, d2c) in emit_d2conlst_initize (out, d2cs) end // end of [list_cons] | list_nil () => () // end // end of [emit_d2conlst_initize] (* ****** ****** *) (* // // HX-2014-03-14: should it be tried? // fun d2cst_is_lamless (d2c: d2cst): bool = let // val opt = $D2E.d2cst_get_funlab (d2c) // in // case+ opt of | None () => false | Some (flab) => let val flab = $UN.cast{funlab}(flab) val opt2 = funlab_get_d2copt (flab) in case+ opt2 of | None () => false | Some (d2c2) => if d2c != d2c2 then true else false end // end of [Some] // end // end of [d2cst_is_lamless] *) (* ****** ****** *) implement emit_d2cst_extdec (out, d2c) = let // macdef ismac = $D2E.d2cst_is_mac // macdef isfundec = $D2E.d2cst_is_fundec // macdef iscastfn = $D2E.d2cst_is_castfn // in // case+ 0 of | _ when ismac (d2c) => let val () = emit_text (out, "ATSdyncst_mac(") val () = emit_d2cst (out, d2c) val () = emit_text (out, ")\n") in // nothing end // end of [ismac] | _ when isfundec(d2c) => let val issta = $D2E.d2cst_is_static (d2c) val () = ( if issta then emit_text (out, "ATSdyncst_stafun(") else emit_text (out, "ATSdyncst_extfun(") // end of [if] ) : void // end of [val] // val () = emit_d2cst (out, d2c) val () = { val () = emit_text (out, ", (") val hses = d2cst_get2_type_arg (d2c) val () = emit_hisexplst_sep (out, hses, ", ") val () = emit_text (out, "), ") } // end of [val] // val () = let val hse = d2cst_get2_type_res (d2c) in emit_hisexp (out, hse) // end of [val] end // end of [val] // val () = emit_text (out, ") ;\n") // in // nothing end // end of [isfundec] // | _ when iscastfn(d2c) => let val () = emit_text (out, "ATSdyncst_castfn(") val () = emit_d2cst (out, d2c) val () = emit_text (out, ")\n") in // nothing end // end of [castfn] | _ (*non-fun*) => let val-Some(hse) = d2cst_get2_hisexp (d2c) val () = emit_text (out, "ATSdyncst_valdec(") val () = emit_d2cst (out, d2c) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse) val () = emit_text (out, ") ;\n") in // nothing end // end of [_] // end // end of [emit_d2cst_extdec] implement emit_d2cstlst_extdec (out, d2cs) = ( list_app_cloptr (d2cs, lam d2c =<1> emit_d2cst_extdec (out, d2c)) ) // end of [emit_d2cstlst_extdec] (* ****** ****** *) (* end of [pats_ccomp_emit3.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env_effect.dats0000644000175000017500000002556713431250607022772 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_env_effect" (* ****** ****** *) staload "./pats_effect.sats" overload print with print_effset overload prerr with prerr_effset (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) datatype effenvitm = (* effenv item *) | EFFENVITMeff of effset // disallwed effects | EFFENVITMeffmask of s2eff // allowed effects // end of [effenvitm] dataviewtype effenvitmlst = | EFILSTcons of (effenvitm, effenvitmlst) | EFILSTmark of (int(*knd*), effenvitmlst) // knd=0/1:soft/hard | EFILSTnil of () // end of [effenvitmlst] (* ****** ****** *) fun efilst_mark ( xs: effenvitmlst ) :<1,~ref> effenvitmlst = EFILSTmark (0(*soft*), xs) // end of [efilst_mark] fun efilst_unmark ( xs: effenvitmlst ) :<1,~ref> effenvitmlst = case+ xs of | ~EFILSTcons (_, xs) => efilst_unmark (xs) | ~EFILSTmark (_(*knd*), xs) => xs | ~EFILSTnil () => EFILSTnil () // end of [efilst_unmark] (* ****** ****** *) extern fun effset_diff_s2eff (efs0: effset, s2fe: s2eff): effset implement effset_diff_s2eff (efs0, s2fe) = ( case+ s2fe of | S2EFFset (efs) => effset_diff (efs0, efs) | S2EFFexp (exp) => efs0 (* conservative estimation *) | S2EFFadd (s2fe1, s2fe2) => ( effset_diff_s2eff (effset_diff_s2eff (efs0, s2fe1), s2fe2) ) // end of [S2EFFadd] ) // end of [effset_diff_s2eff] extern fun effset_union_s2eff (efs0: effset, s2fe: s2eff): effset implement effset_union_s2eff (efs0, s2fe) = ( case+ s2fe of | S2EFFset (efs) => effset_union (efs0, efs) | S2EFFexp (exp) => efs0 (* conservative estimation *) | S2EFFadd (s2fe1, s2fe2) => ( effset_union_s2eff (effset_union_s2eff (efs0, s2fe1), s2fe2) ) // end of [S2EFFadd] ) // end of [effset_union_s2eff] (* ****** ****** *) local assume effenv_push_v = unit_v val the_efis = ref (EFILSTnil ()) in (* in of [local] *) implement the_effenv_add_eff (eff) = let val (vbox pf | p) = ref_get_view_ptr (the_efis) val efs = effset_sing (eff) val efi = EFFENVITMeff (efs) in !p := EFILSTcons (efi, !p) end // end of [the_effenv_add_eff] (* ****** ****** *) implement the_effenv_pop (pf | (*none*)) = let prval () = unit_v_elim (pf) val (vbox pf | p) = ref_get_view_ptr (the_efis) in !p := efilst_unmark (!p) end // end of [the_effenv_pop] implement the_effenv_pop_if (pfopt | test) = if test then let prval Some_v (pf) = pfopt in the_effenv_pop (pf | (*void*)) end else let prval None_v () = pfopt in () end // end of [if] // end of [the_effenv_pop_if] (* ****** ****** *) implement the_effenv_push () = let val (vbox pf | p) = ref_get_view_ptr (the_efis) // end of [val] val () = !p := EFILSTmark (0(*soft*), !p) in (unit_v () | ()) end // end of [the_effenv_push] implement the_effenv_push_lam (s2fe) = let // val efi = EFFENVITMeffmask (s2fe) val (vbox pf | p) = ref_get_view_ptr (the_efis) val efis = EFILSTmark (1(*hard*), !p) val () = !p := EFILSTcons (efi, efis) // in (unit_v () | ()) end // end of [the_effenv_push_lam] (* ****** ****** *) implement the_effenv_push_set (efs) = let // val efi = EFFENVITMeff (efs) val (vbox pf | p) = ref_get_view_ptr (the_efis) val efis = EFILSTmark (0(*soft*), !p) val () = !p := EFILSTcons (efi, efis) // in (unit_v () | ()) end // end of [the_effenv_push_set] implement the_effenv_push_set_if (test, efs) = ( if test then let val (pf | ()) = the_effenv_push_set (efs) in (Some_v (pf) | ()) // end of [val] end else (None_v () | ()) ) // end of [the_effenv_push_set_if] (* ****** ****** *) implement the_effenv_push_effmask (s2fe) = let // val efi = EFFENVITMeffmask (s2fe) val (vbox pf | p) = ref_get_view_ptr (the_efis) val efis = EFILSTmark (0(*soft*), !p) val () = !p := EFILSTcons (efi, efis) // in (unit_v () | ()) end // end of [the_effenv_push_effmask] (* ****** ****** *) implement the_effenv_check_set (loc0, efs0) = let (* val () = println! ("the_effenv_check_set: efs0 = ", efs0) // end of [val] *) fun auxerr ( efs: effset ) : void = let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "the_effenv_check_set" val () = prerrln! (": some disallowed effects may be incurred: ", efs) in the_trans3errlst_add (T3E_effenv_check_set (loc0, efs0)) end (* end of [auxerr] *) // fun auxcheck ( efis: !effenvitmlst, efs0: effset(*isnotnil*) ) : int = case+ efis of | EFILSTcons (efi, !p_efis) => ( case+ efi of | EFFENVITMeff (efs) => let val efs = effset_inter (efs0, efs) // end of [val] val isnil = effset_isnil (efs) val ans = ( if isnil then auxcheck (!p_efis, efs0) else 1(*fail*) ) : int // end of [val] val () = if ans > 0 then auxerr (efs) in fold@ (efis); ans end // end of [EFFENVITEMeff] | EFFENVITMeffmask (s2fe) => let val efs0 = effset_diff_s2eff (efs0, s2fe) // conservative val isnil = effset_isnil (efs0) val ans = ( if isnil then 0(*succ*) else auxcheck (!p_efis, efs0) ) : int // end of [val] in fold@ (efis); ans end // end of [EFFENVITEMeffmask] ) // end of [EFILSTcons] | EFILSTmark (knd, !p_efis) => let val ans = ( // HX: note that [efs0] is not nil if knd > 0 then 1(*fail*) else auxcheck (!p_efis, efs0) ) : int // end of [val] val () = if knd > 0 then (if ans > 0 then auxerr (efs0)) in fold@ (efis); ans end // end of [EFILSTmark] // // HX: effects are all considered to be masked at the end // | EFILSTnil () => (fold@ (efis); 0) // end of [aux] // val isnil = effset_isnil (efs0) // in // if isnil then 0 else let val (vbox pf | p) = ref_get_view_ptr (the_efis) in $effmask_ref (auxcheck (!p, efs0)) end // end of [if] // end // end of [the_effenv_check_set] (* ****** ****** *) implement the_effenv_check_eff (loc0, eff) = ( the_effenv_check_set (loc0, effset_sing (eff)) ) // end of [the_effenv_check_eff] implement the_effenv_check_exn (loc0) = the_effenv_check_set (loc0, effset_exn) // end of [the_effenv_check_exn] implement the_effenv_check_ntm (loc0) = the_effenv_check_set (loc0, effset_ntm) // end of [the_effenv_check_ntm] implement the_effenv_check_ref (loc0) = the_effenv_check_set (loc0, effset_ref) // end of [the_effenv_check_ref] implement the_effenv_check_wrt (loc0) = the_effenv_check_set (loc0, effset_wrt) // end of [the_effenv_check_wrt] (* ****** ****** *) implement the_effenv_caskind_check_exn (loc0, casknd) = (case+ casknd of | CK_case () => the_effenv_check_exn (loc0) | CK_case_pos () => 0 // HX: a type error is to be reported | CK_case_neg () => 0 // HX: per the wish of the programmer ) // end of [the_effenv_caskind_check_exn] (* ****** ****** *) implement the_effenv_check_sexp (loc0, s2e0) = let (* val () = println! ("the_effenv_check_sexp: s2e0 = ", s2e0) // end of [val] *) fun auxerr ( s2e0: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "the_effenv_check_sexp" val () = prerrln! (": some disallowed effects may be incurred: ", s2e0) in the_trans3errlst_add (T3E_effenv_check_sexp (loc0, s2e0)) end (* end of [auxerr] *) // fun auxcheck ( efis: !effenvitmlst, mefs: effset, s2e0: s2exp ) : int = case+ efis of | EFILSTcons (efi, !p_efis) => ( case+ efi of | EFFENVITMeff efs => let val issup = effset_supset (mefs, efs) val ans = (if issup then 0 else 1): int val () = if ans > 0 then auxerr (s2e0) in fold@ (efis); ans end // end of [EFFENVITMeff] | EFFENVITMeffmask s2fe => let val isnil = s2eff_contain_exp (s2fe, s2e0) // conservative val ans = ( if isnil then 0(*succ*) else let val mefs = effset_union_s2eff (mefs, s2fe) // conservative in auxcheck (!p_efis, mefs, s2e0) end (* end of [if] *) ) : int // end of [val] in fold@ (efis); ans end // end of [EFFENVITEMeffmask] ) // end of [EFILSTcons] | EFILSTmark (knd, !p_efis) => let val ans = ( // HX: assuming [s2e0] is not nil if knd > 0 then 1(*fail*) else auxcheck (!p_efis, mefs, s2e0) ) : int // end of [val] val () = if ans > 0 then auxerr (s2e0) in fold@ (efis); ans end // end of [EFILSTmark] | EFILSTnil () => (fold@ (efis); 0(*succ*)) // end of [aux] // val (vbox pf | p) = ref_get_view_ptr (the_efis) // in $effmask_ref (auxcheck (!p, effset_nil, s2e0)) end // end of [the_effenv_check_sexp] (* ****** ****** *) implement the_effenv_check_s2eff (loc0, s2fe0) = let (* val () = println! ("the_effenv_check_s2eff: s2fe0 = ", s2fe0) // end of [val] *) val s2fe0 = s2eff_hnfize (s2fe0) // in // case+ s2fe0 of | S2EFFset (efs0) => the_effenv_check_set (loc0, efs0) | S2EFFexp (s2e) => let val s2f = s2exp2hnf (s2e) val s2e = s2hnf2exp (s2f) in the_effenv_check_sexp (loc0, s2e) end // end of [S2EFFexp] | S2EFFadd (s2fe1, s2fe2) => let val ans = the_effenv_check_s2eff (loc0, s2fe1) in if ans > 0 then 1 else the_effenv_check_s2eff (loc0, s2fe2) end // end of [S2EFFadd] // end // end of [the_effenv_check_s2eff] (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [pats_trans3_env_effect.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_looping.dats0000644000175000017500000004367313431250607022333 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_trans3_looping" // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) fun d2var_reset_type (d2v: d2var): void = d2var_set_type (d2v, d2var_get_mastype (d2v)) // end of [d2var_reset_type] (* ****** ****** *) fun lstbefitmlst_opnset_and_add (loc: loc_t, xs: lstbefitmlst): void = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = d2var_opnset_and_add (loc, x.lstbefitm_var) in lstbefitmlst_opnset_and_add (loc, xs) end // end of [list_cons] // end // end of [lstbefitmlst_opnset_and_add] (* // // HX-2012-11-24: is this necessary? // fun invarglst_opnset_and_add (loc: loc_t, xs: i2nvarglst): void = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = d2var_opnset_and_add (loc, x.i2nvarg_var) in invarglst_opnset_and_add (loc, xs) end // end of [list_cons] // end // end of [invarglst_opnset_and_add] *) (* ****** ****** *) // extern fun d2exp_trup_loop_dryrun ( loc0: loc_t , lsbis: lstbefitmlst , test: d2exp, post: d2expopt, body: d2exp ) : lstbefitmlst // end of [d2exp_trup_loop_dryrun] // implement d2exp_trup_loop_dryrun ( loc0, lsbis, test, post, body ) = let // val (pfpush | ()) = trans3_env_push () val (pfpush2 | ()) = the_lamlpenv_push_loop0 () // val test = d2exp_trup (test) val body = d2exp_trup (body) // val post = ( case+ post of | Some d2e => let val s2f = s2exp_void_t0ype () val d3e = d2exp_trdn (d2e, s2f) in Some (d3e) end // end of [Some] | None () => None () ) : d3expopt // end of [val] // val () = the_lamlpenv_pop (pfpush2 | (*void*)) // val s3itms = trans3_env_pop (pfpush | (*void*)) // HX: it is a dry-run val ((*freed*)) = list_vt_free (s3itms) // fun aux ( x: lstbefitm ) : lstbefitm = let // val d2v = x.lstbefitm_var // val opt = x.lstbefitm_type val opt2 = d2var_get_type (d2v) // val () = ( // // HX-2012-08: // the rule is simple: each dvar is reset if its type immedidately // after dry-run is different from the one at the start of dry-run // case+ (opt, opt2) of | (Some (s2e), Some (s2e2)) => let val iseq = s2exp_refeq (s2e, s2e2) in if ~(iseq) then d2var_reset_type (d2v) end // end of [Some, Some] | (None (), None ()) => () | (_, _) => d2var_reset_type (d2v) // HX: type-error later ) : void // end of [val] // val linval2 = d2var_get_linval (d2v) // in lstbefitm_make (d2v, linval2) end // end of [aux] // val lsbis2 = list_map_fun (lsbis, aux) // in list_of_list_vt (lsbis2) end // end of [d2exp_trup_loop_dryrun] // (* ****** ****** *) local fun auxerr_none ( loc: loc_t, d2v: d2var, s2e: s2exp ) : void = let // val () = prerr_error3_loc (loc) // val () = prerr ": the dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is retained with the type [" val () = prerr_s2exp (s2e) val () = prerr "but it should be consumed instead." val () = prerr_newline () // in the_trans3errlst_add (T3E_d2var_some (loc, d2v, s2e)) end // end of [auxerr_none] fun auxerr_some ( loc: loc_t, d2v: d2var, s2e0: s2exp ) : void = let // val () = prerr_error3_loc (loc) // val () = prerr ": the dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is consumed but it should be retained with the type [" val () = prerr_s2exp (s2e0) val () = prerr "] instead." val () = prerr_newline () // in the_trans3errlst_add (T3E_d2var_some (loc, d2v, s2e0)) end // end of [auxerr_some] fun auxerr_some2 ( loc: loc_t, d2v: d2var, s2e0: s2exp, s2e: s2exp ) : void = let // val () = prerr_error3_loc (loc) // val () = prerr ": the dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is retained but with a type that fails to merge." val () = prerr_newline () val () = prerr_the_staerrlst () // in the_trans3errlst_add (T3E_d2var_some2 (loc, d2v, s2e0, s2e)) end // end of [auxerr_some2] (* ****** ****** *) fun auxVarCK ( loc: loc_t , d2v: d2var , opt: s2expopt, opt2: s2expopt ) : void = let // (* val () = println! ("auxVarCK: d2v = ", d2v) *) // in // case+ opt of | Some (s2e) => ( case+ opt2 of | Some (s2e2) => let var err0: int = 0 // (* val () = println! ("auxVarCK: s2e = ", s2e) val () = println! ("auxVarCK: s2e2 = ", s2e2) *) // val iseq = s2exp_refeq (s2e, s2e2) val () = if ~(iseq) then let // val (pfpush|()) = trans3_env_push() val err = $SOL.s2exp_tyleq_solve (loc, s2e, s2e2) val ctrknd = C3TKlstate_var (d2v) val () = trans3_env_pop_and_add (pfpush | loc, ctrknd) // in err0 := err end // end of [if] // end of [val] val () = if (err0 > 0) then { val () = prerr_the_staerrlst () val () = auxerr_some2 (loc, d2v, s2e, s2e2) } // end of [if] // end of [val] in // nothing end // end of [Some] | None () => auxerr_none (loc, d2v, s2e) ) // end of [Some] | None () => ( case+ opt2 of | Some (s2e2) => auxerr_some (loc, d2v, s2e2) | None () => () ) // end of [None] // end // end of [auxVarCK] (* ****** ****** *) fun auxMetCK ( loc: loc_t , sub: !stasub, opt: s2explstopt ) : void = let in case+ opt of | Some (met0) => let val met = s2explst_subst (sub, met0) val c3t = c3nstr_termet_isdec (loc, met, met0) in trans3_env_add_cnstr (c3t) end // end of [Some] | None () => ((*void*)) end // end of [auxMetCK] (* ****** ****** *) fun auxEnter ( loc: loc_t , i2nv: loopi2nv, lsbis: lstbefitmlst ) : void = let // (* val () = println! ("auxEnter: enter") *) // fun auxitm ( loc: loc_t , sub: !stasub, args: i2nvarglst, x: lstbefitm ) : void = let val d2v = x.lstbefitm_var in // case+ args of | list_nil ((*void*)) => let val opt = x.lstbefitm_type val opt2 = d2var_get_type (d2v) in auxVarCK (loc, d2v, opt, opt2) end // end of [list_nil] | list_cons (arg, args) => let val d2v2 = i2nvarg_get_var (arg) val iseq = eq_d2var_d2var (d2v, d2v2) in if iseq then let val opt = x.lstbefitm_type val opt2 = i2nvarg_get_type (arg) val opt2 = s2expopt_subst (sub, opt2) in auxVarCK (loc, d2v, opt, opt2) end // end of [then] else auxitm (loc, sub, args, x) // else // end of [if] end // end of [list_cons] // end (* end of [auxitm] *) // fun auxitmlst ( loc: loc_t , sub: !stasub, args: i2nvarglst, xs: lstbefitmlst ) : void = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = auxitm (loc, sub, args, x) // end of [val] in auxitmlst (loc, sub, args, xs) end // end of [list_cons] // end (* end of [auxitmlst] *) // val sub = stasub_make_svarlst (loc, i2nv.loopi2nv_svs) // val (pfpush | ()) = trans3_env_push () // local val s2ps = s2explst_subst_vt(sub, i2nv.loopi2nv_gua) in val () = trans3_env_add_proplst_vt (loc, s2ps) end // end of [local] // val () = auxitmlst(loc, sub, i2nv.loopi2nv_arg, lsbis) // val ctrknd = C3TKloop(~1(*entering*)) // val ((*void*)) = trans3_env_pop_and_add (pfpush | loc, ctrknd) // val ((*freed*)) = stasub_free (sub) // in // nothing end // end of [auxEnter] (* ****** ****** *) fun auxBreak ( loc: loc_t , i2nv: loopi2nv, lsbis: lstbefitmlst ) : void = let // (* val () = println! ("auxBreak: enter") *) // fun auxitm1 ( loc: loc_t , i2nv: loopi2nv , lsbis: lstbefitmlst , sub: !stasub, args: i2nvarglst, x0: lstbefitm ) : void = let val d2v = x0.lstbefitm_var in // case+ args of | list_nil () => auxitm2 (loc, lsbis, i2nv.loopi2nv_arg, x0) // end of [list_nil] | list_cons (arg, args) => let val d2v2 = i2nvarg_get_var (arg) val iseq = eq_d2var_d2var (d2v, d2v2) in if iseq then let val opt = x0.lstbefitm_type val opt2 = i2nvarg_get_type (arg) val opt2 = s2expopt_subst (sub, opt2) in auxVarCK (loc, d2v, opt, opt2) end // end of [then] else ( auxitm1 (loc, i2nv, lsbis, sub, args, x0) ) (* end of [else] *) // end of [if] end // end of [list_cons] // end // end of [auxitm1] // and auxitm2 ( loc: loc_t , lsbis: lstbefitmlst, args: i2nvarglst, x0: lstbefitm ) : void = let val d2v = x0.lstbefitm_var in // case+ args of | list_nil ((*void*)) => auxitm3 (loc, lsbis, x0) // end of [list_nil] | list_cons (arg, args) => let val d2v2 = i2nvarg_get_var (arg) val iseq = eq_d2var_d2var (d2v, d2v2) in if iseq then let val opt = x0.lstbefitm_type val opt2 = i2nvarg_get_type (arg) in auxVarCK (loc, d2v, opt, opt2) end // end of [then] else ( auxitm2 (loc, lsbis, args, x0) ) (* end of [else] *) // end of [if] end // end of [list_cons] // end // end of [auxitm2] // and auxitm3 ( loc: loc_t , lsbis: lstbefitmlst, x0: lstbefitm ) : void = let val d2v = x0.lstbefitm_var in // case+ lsbis of | list_nil ((*void*)) => () | list_cons (lsbi, lsbis) => let val d2v2 = lsbi.lstbefitm_var val iseq = eq_d2var_d2var (d2v, d2v2) in if iseq then let val opt = x0.lstbefitm_type val opt2 = lsbi.lstbefitm_type in auxVarCK (loc, d2v, opt, opt2) end // end of [then] else auxitm3 (loc, lsbis, x0) // else // end of [if] end // end of [list_cons] // end // end of [auxitm3] // fun auxitmlst ( loc: loc_t , i2nv: loopi2nv , lsbis: lstbefitmlst , sub: !stasub, args: i2nvarglst, xs: lstbefitmlst ) : void = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = auxitm1 (loc, i2nv, lsbis, sub, args, x) // end of [val] in auxitmlst (loc, i2nv, lsbis, sub, args, xs) end // end of [list_cons] // end (* end of [auxitmlst] *) // val r2es = i2nv.loopi2nv_res val s2vs = r2es.i2nvresstate_svs // val sub = stasub_make_svarlst(loc, s2vs) // val lsbis2 = the_d2varenv_save_lstbefitmlst () // val (pfpush | ()) = trans3_env_push () // val () = auxitmlst (loc, i2nv, lsbis, sub, r2es.i2nvresstate_arg, lsbis2) // val ctrknd = C3TKloop(0(*breaking*)) // val ((*void*)) = trans3_env_pop_and_add (pfpush | loc, ctrknd) // val ((*freed*)) = stasub_free (sub) // in // nothing end // end of [auxBreak] (* ****** ****** *) fun auxContinue ( loc: loc_t , i2nv: loopi2nv, lsbis: lstbefitmlst , post: d2expopt ) : d3expopt = let // (* val () = println! ("auxContinue: enter") *) // fun auxitm1 ( loc: loc_t , lsbis: lstbefitmlst , sub: !stasub, args: i2nvarglst, x0: lstbefitm ) : void = let val d2v = x0.lstbefitm_var in // case+ args of | list_nil() => auxitm2 (loc, lsbis, x0) // end of [list_nil] | list_cons(arg, args) => let val d2v2 = i2nvarg_get_var (arg) val iseq = eq_d2var_d2var (d2v, d2v2) in if iseq then let val opt = x0.lstbefitm_type val opt2 = i2nvarg_get_type (arg) val opt2 = s2expopt_subst (sub, opt2) in auxVarCK (loc, d2v, opt, opt2) end // end of [then] else ( auxitm1 (loc, lsbis, sub, args, x0) ) (* end of [then] *) // end of [if] end // end of [list_cons] // end // end of [auxitm1] // and auxitm2 ( loc: loc_t , lsbis: lstbefitmlst, x0: lstbefitm ) : void = let val d2v = x0.lstbefitm_var in // case+ lsbis of | list_nil ((*void*)) => () | list_cons (lsbi, lsbis) => let val d2v2 = lsbi.lstbefitm_var val iseq = eq_d2var_d2var (d2v, d2v2) in if iseq then let val opt = x0.lstbefitm_type val opt2 = lsbi.lstbefitm_type in auxVarCK (loc, d2v, opt, opt2) end // end of [then] else auxitm2 (loc, lsbis, x0) // else // end of [if] end // end of [list_cons] // end // end of [auxitm2] // fun auxitmlst ( loc: loc_t , lsbis: lstbefitmlst , sub: !stasub, args: i2nvarglst, xs: lstbefitmlst ) : void = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = auxitm1 (loc, lsbis, sub, args, x) // end of [val] in auxitmlst (loc, lsbis, sub, args, xs) end // end of [list_cons] // end (* end of [auxitmlst] *) // val s2f_void = s2exp_void_t0ype () // val post = ( case+ post of | Some (d2e) => Some (d2exp_trdn (d2e, s2f_void)) | None () => None () ) : d3expopt // end of [val] // val sub = stasub_make_svarlst(loc, i2nv.loopi2nv_svs) // val lsbis2 = the_d2varenv_save_lstbefitmlst () // val (pfpush | ()) = trans3_env_push () // local val s2ps = s2explst_subst_vt(sub, i2nv.loopi2nv_gua) in val () = trans3_env_add_proplst_vt (loc, s2ps) end // end of [local] // val () = auxMetCK (loc, sub, i2nv.loopi2nv_met) val () = auxitmlst (loc, lsbis, sub, i2nv.loopi2nv_arg, lsbis2) // val ctrknd = C3TKloop(1(*continue*)) // val ((*void*)) = trans3_env_pop_and_add (pfpush | loc, ctrknd) // val ((*freed*)) = stasub_free (sub) // in post(*d3expopt*) end // end of [auxContinue] in (* in of [local] *) implement d2exp_trup_loop ( loc0, i2nv, init, test, post, body ) = let // val s2f_void = s2exp_void_t0ype () // val init = ( case+ init of | Some d2e => let val d3e = d2exp_trdn (d2e, s2f_void) in Some (d3e) // end of [val] end // end of [Some] | None () => None () ) : d3expopt // end of [val] // val lsbis0 = the_d2varenv_save_lstbefitmlst () val lsbis1 = d2exp_trup_loop_dryrun (loc0, lsbis0, test, post, body) (* val () = fprintln! (stdout_ref, "lsbis0 = ", lsbis0) val () = fprintln! (stdout_ref, "lsbis1 = ", lsbis1) *) // val () = auxEnter (loc0, i2nv, lsbis0) // val locinv = i2nv.loopi2nv_loc val () = trans3_env_add_svarlst (i2nv.loopi2nv_svs) val () = trans3_env_hypadd_proplst (locinv, i2nv.loopi2nv_gua) // val _(*err*) = let val opt = i2nv.loopi2nv_met in case+ opt of | Some (met) => let val () = s2explst_check_termet (loc0, met) in (0) end // end of [Some] | None () => the_effenv_check_ntm (loc0) // HX: raising ntm-effect // end of [None] end : int // end of [val] // val invargs = i2nv.loopi2nv_arg val () = i2nvarglst_update (locinv, invargs) val () = lstbefitmlst_opnset_and_add (locinv, lsbis1) // val test = d2exp_trup (test) val loc_test = test.d3exp_loc val () = d3exp_open_and_add (test) val s2e_test = d3exp_get_type (test) val s2e_bool = s2exp_bool_t0ype () val test = d3exp_trdn (test, s2e_bool) val s2f_test = s2exp2hnf (s2e_test) // val os2p_test = un_s2exp_bool_index_t0ype (s2f_test) // val (pfpush | ()) = trans3_env_push () val () = trans3_env_hypadd_propopt_neg (loc_test, $UN.castvwtp1 {s2expopt}{s2expopt_vt} (os2p_test)) val () = auxBreak (loc0, i2nv, lsbis1) val () = trans3_env_pop_and_add_main (pfpush | loc0) // val (pfpush | ()) = trans3_env_push () val () = trans3_env_hypadd_propopt(*true*) (loc_test, $UN.castvwtp1 {s2expopt}{s2expopt_vt} (os2p_test)) // val (pfpush2 | ()) = the_lamlpenv_push_loop1 (i2nv, lsbis1, post) val body = d2exp_trdn (body, s2f_void) val () = the_lamlpenv_pop (pfpush2 | (*void*)) // val post = auxContinue (loc0, i2nv, lsbis1, post) // val () = trans3_env_pop_and_add_main (pfpush | loc0) // val () = option_vt_free (os2p_test) // val () = lstbefitmlst_restore_type (lsbis1) val () = i2nvarglst_update (locinv, i2nv.loopi2nv_arg) val () = i2nvresstate_update (locinv, i2nv.loopi2nv_res) // in d3exp_loop (loc0, init, test, post, body) end // end of [d2exp_trup_loop] (* ****** ****** *) implement d2exp_trup_loopexn (loc0, knd) = let // fun auxerr ( loc: loc_t, knd: int ) : void = let val () = prerr_error3_loc (loc) val () = if knd = 0 then prerr ": [break] is only allowed inside a for/while-loop" val () = if knd > 0 then prerr ": [continue] is only allowed inside a for/while-loop" val () = prerr_newline () in the_trans3errlst_add (T3E_loopexn (loc, knd)) end // end of [auxerr] // val opt = the_lamlpenv_top () val () = ( case+ opt of | ~Some_vt (lamlp) => ( case+ lamlp of | LAMLPlam _ => auxerr (loc0, knd) | LAMLPloop0 _ => () // HX: skip during dryrun | LAMLPloop1 ( i2nv, lsbis, post ) => if knd = 0 then auxBreak (loc0, i2nv, lsbis) else let val _(*post*) = auxContinue (loc0, i2nv, lsbis, post) in // nothing end // end of [if] ) // end of [Some_vt] | ~None_vt () => auxerr (loc0, knd) ) : void // end of [val] // in d3exp_loopexn (loc0, knd) end // end of [d2exp_trup_loopexn] (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [pats_trans3_looping.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_looping.dats0000644000175000017500000000677113431250607022220 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2013 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) implement hidexp_ccomp_loop (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEloop (init, test, post, body) = hde0.hidexp_node // val res_init = ( case+ init of | Some (hde) => let var res = instrseq_make_nil () val _(*void*) = hidexp_ccomp (env, res, hde) in instrseq_get_free (res) end // end of [Some] | None () => list_nil () ) : instrlst // end of [val] // val tlab_init = tmplab_make (loc0) val tlab_fini = tmplab_make (loc0) val tlab_cont = ( case+ post of | Some _ => tmplab_make (loc0) | None _ => tlab_init ) : tmplab // end of [val] // val ( ) = ccompenv_inc_loopexnenv (env, tlab_init, tlab_fini, tlab_cont) // val res_test = instrseq_make_nil () val pmv_test = hidexp_ccomp (env, res_test, test) val res_test = instrseq_get_free (res_test) // val res_post = ( case+ post of | Some (hde) => let var res = instrseq_make_nil () val _(*void*) = hidexp_ccomp (env, res, hde) in instrseq_get_free (res) end // end of [Some] | None () => list_nil () ) : instrlst // end of [val] // val res_body = instrseq_make_nil () val pmv_body = hidexp_ccomp (env, res_body, body) val res_body = instrseq_get_free (res_body) // val () = ccompenv_dec_loopexnenv (env) // val ins_loop = instr_loop ( loc0, tlab_init, tlab_fini, tlab_cont , res_init, pmv_test, res_test, res_post, res_body ) // end of [instr_loop] val () = instrseq_add (res, ins_loop) // in primval_empty (loc0, hse0) end // end of [hidexp_ccomp_loop] (* ****** ****** *) implement hidexp_ccomp_loopexn (env, res, hde0) = let // val loc0 = hde0.hidexp_loc val hse0 = hde0.hidexp_type val-HDEloopexn (knd) = hde0.hidexp_node // val tlab = ( if knd = 0 then ccompenv_get_loopfini (env) else ccompenv_get_loopcont (env) // end of [if] ) : tmplab // end of [val] // val ins_lpxn = instr_loopexn (loc0, knd, tlab) // val () = instrseq_add (res, ins_lpxn) // in primval_empty (loc0, hse0) end // end of [hidexp_ccomp_loopexn] (* ****** ****** *) (* end of [pats_ccomp_looping.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lexbuf.dats0000644000175000017500000002222213431250607020642 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UT = "./pats_utils.sats" staload LOC = "./pats_location.sats" (* ****** ****** *) // staload Q = "libats/SATS/linqueue_arr.sats" // stadef QUEUE = $Q.QUEUE staload _(*anon*) = "libats/DATS/linqueue_arr.dats" staload _(*anon*) = "libats/ngc/DATS/deque_arr.dats" // (* ****** ****** *) staload R = "./pats_reader.sats" stadef reader = $R.reader (* ****** ****** *) staload "./pats_lexbuf.sats" (* ****** ****** *) // #define uc2i int_of_uchar #define i2uc uchar_of_int // #define u2i int_of_uint #define u2l lint_of_uint #define u2sz size_of_uint // #define l2u uint_of_lint #define l2sz size_of_lint // #define sz2i int_of_size #define sz2l lint_of_size // #define size1 size1_of_size // (* ****** ****** *) // vtypedef lexbuf_int_int (m: int, n:int) = $extype_struct "pats_lexbuf_struct" of { cbuf= QUEUE (uchar, m, n) // character buffer , base= lint , base_nrow=int, base_ncol= int , nspace= int , reader= reader } (* end of [lexbuf] *) // typedef lexbuf0 = lexbuf_int_int(0, 0)? // (* ****** ****** *) assume lexbuf_vt0ype = [m,n:int] lexbuf_int_int (m, n) // end of [lexbuf_vt0ype] (* ****** ****** *) #define QINISZ 1024 // initial size #define QDELTA 1024 // subsequent increment (* ****** ****** *) // macdef Q_queue_initize = $Q.queue_initialize macdef Q_queue_uninitize = $Q.queue_uninitialize{uchar} // (* ****** ****** *) implement lexbuf_initize_filp (pfmod, pffil | buf, p0) = { // extern prfun lexbuf0_trans (buf: &lexbuf? >> lexbuf0): void // prval () = lexbuf0_trans (buf) // val () = buf.base := 0L val () = buf.base_nrow := 0 val () = buf.base_ncol := 0 val () = buf.nspace := 0 // val () = Q_queue_initize (buf.cbuf, QINISZ) val () = $R.reader_initize_filp (pfmod, pffil | buf.reader, p0) // } (* end of [lexbuf_initize_filp] *) (* ****** ****** *) implement lexbuf_initize_getc (buf, getc) = { // extern prfun lexbuf0_trans (buf: &lexbuf? >> lexbuf0): void // prval () = lexbuf0_trans (buf) // val () = buf.base := 0L val () = buf.base_nrow := 0 val () = buf.base_ncol := 0 val () = buf.nspace := 0 // val () = Q_queue_initize (buf.cbuf, QINISZ) val () = $R.reader_initize_getc (buf.reader, getc) // } (* end of [lexbuf_initize_getc] *) (* ****** ****** *) implement lexbuf_initize_string (buf, inp) = { // extern prfun lexbuf0_trans (buf: &lexbuf? >> lexbuf0): void // prval () = lexbuf0_trans (buf) // val () = buf.base := 0L val () = buf.base_nrow := 0 val () = buf.base_ncol := 0 val () = buf.nspace := 0 val () = Q_queue_initize (buf.cbuf, QINISZ) val () = $R.reader_initize_string (buf.reader, inp) // } (* end of [lexbuf_initize_string] *) (* ****** ****** *) implement lexbuf_initize_charlst_vt (buf, inp) = () where { // extern prfun lexbuf0_trans (buf: &lexbuf? >> lexbuf0): void // prval () = lexbuf0_trans(buf) // val () = buf.base := 0L val () = buf.base_nrow := 0 val () = buf.base_ncol := 0 val () = buf.nspace := 0 // val () = Q_queue_initize (buf.cbuf, QINISZ) val () = $R.reader_initize_charlst_vt (buf.reader, inp) // } (* end of [lexbuf_initize_charlst_vt] *) (* ****** ****** *) implement lexbuf_uninitize (buf) = () where { // val () = Q_queue_uninitize (buf.cbuf) val () = $R.reader_uninitize (buf.reader) // extern prfun lexbuf0_untrans (buf: &lexbuf0 >> lexbuf?): void // prval ((*void*)) = lexbuf0_untrans (buf) } // end of [lexbuf_uninitize] (* ****** ****** *) implement lexbufpos_diff (buf, pos) = let val nchr = $LOC.position_get_ntot (pos) - buf.base in (l2u)nchr end // end of [lexbufpos_diff] (* ****** ****** *) implement lexbuf_get_base (buf) = buf.base (* ****** ****** *) implement lexbuf_get_position (buf, pos) = let val ntot = buf.base val nrow = buf.base_nrow val ncol = buf.base_ncol in $LOC.position_init (pos, ntot, nrow, ncol) end // end of [lexbuf_get_position] (* ****** ****** *) implement lexbuf_set_position (buf, pos) = let // prval () = $Q.lemma_queue_param (buf.cbuf) // val base = buf.base val ntot = $LOC.position_get_ntot (pos) // val () = buf.base := ntot val () = buf.base_nrow := $LOC.position_get_nrow (pos) val () = buf.base_ncol := $LOC.position_get_ncol (pos) // val nchr = ntot - base val nchr = size1(l2sz(nchr)) val nbuf = $Q.queue_size (buf.cbuf) // in // if nchr < nbuf then let val () = $Q.queue_clear (buf.cbuf, nchr) // end of [val] in // nothing end // end of [then] else let val () = $Q.queue_clear_all{uchar}(buf.cbuf) in // nothing end // end of [else] // end // end of [lexbuf_set_position] (* ****** ****** *) implement lexbuf_get_nspace (buf) = buf.nspace implement lexbuf_set_nspace (buf, n) = buf.nspace := n (* ****** ****** *) implement lexbufpos_get_location (buf, pos) = let var bpos: position val ((*void*)) = lexbuf_get_position (buf, bpos) // end of [val] in $LOC.location_make_pos_pos (bpos, pos) end // end of [lexbufpos_get_location] (* ****** ****** *) implement lexbuf_get_char (buf, nchr) = let // prval () = $Q.lemma_queue_param (buf.cbuf) // val nchr = (u2sz)nchr val nchr = (size1)nchr val n = $Q.queue_size (buf.cbuf) // in // if nchr < n then let // val c = $Q.queue_get_elt_at (buf.cbuf, nchr) // in (uc2i)c end // end of [then] else let val i = $R.reader_get_char (buf.reader) in if i >= 0 then let val c = (i2uc)i val m = $Q.queue_cap {uchar} (buf.cbuf) in if m > n then let val () = $Q.queue_insert (buf.cbuf, c) in i end else let val () = $Q.queue_update_capacity (buf.cbuf, m+QDELTA) val () = $Q.queue_insert (buf.cbuf, c) in i end // end of [if] end else i (* EOF *) // end of [if] end // end of [else] // end // end of [lexbuf_get_char] (* ****** ****** *) implement lexbufpos_get_char (buf, pos) = let val nchr = $LOC.position_get_ntot (pos) - buf.base val nchr = (l2u)nchr in lexbuf_get_char (buf, nchr) end // end of [lexbufpos_get_char] (* ****** ****** *) implement lexbuf_incby_count (buf, cnt) = let // prval () = $Q.lemma_queue_param (buf.cbuf) // val nchr = u2sz(cnt) val nchr = (size1)nchr val n = $Q.queue_size (buf.cbuf) in if nchr < n then let val () = buf.base := buf.base + (u2l)cnt val () = buf.base_ncol := buf.base_ncol + (u2i)cnt val () = $Q.queue_clear (buf.cbuf, nchr) in // nothing end else let val () = buf.base := buf.base + (sz2l)n val () = buf.base_ncol := buf.base_ncol + (sz2i)n val () = $Q.queue_clear_all {uchar} (buf.cbuf) in // nothing end (* end of [if] *) end // end of [lexbuf_incby_count] (* ****** ****** *) implement lexbuf_get_strptr0 (buf, ln) = lexbuf_get_substrptr0(buf, 0u, ln) // end of [lexbuf_get_strptr0] implement lexbuf_get_strptr1 (buf, ln) = lexbuf_get_substrptr1(buf, 0u, ln) // end of [lexbuf_get_strptr] (* ****** ****** *) implement lexbuf_get_substrptr0 (buf, st, ln) = let // prval () = $Q.lemma_queue_param (buf.cbuf) // val i = u2sz(st) val i = (size1)i val k = u2sz(ln) val [k:int] k = (size1)k val n = $Q.queue_size (buf.cbuf) // (* val () = println! ("lexbuf_get_strptr: i = ", i) val () = println! ("lexbuf_get_strptr: k = ", k) val () = println! ("lexbuf_get_strptr: n = ", n) *) // in // if i + k <= n then $UT.queue_get_strptr1 (buf.cbuf, i, k) else strptr_null () // end of [if] // end // end of [lexbuf_get_substrptr0] implement lexbuf_get_substrptr1 (buf, st, ln) = str where { val str = lexbuf_get_substrptr0 (buf, st, ln) val ((*void*)) = assertloc (strptr_isnot_null (str)) } // end of [lexbuf_get_substrptr1] (* ****** ****** *) implement lexbufpos_get_strptr0 (buf, pos) = lexbuf_get_strptr0(buf, lexbufpos_diff(buf, pos)) // end of [lexbufpos_get_strptr0] implement lexbufpos_get_strptr1 (buf, pos) = lexbuf_get_strptr1(buf, lexbufpos_diff(buf, pos)) // end of [lexbufpos_get_strptr1] (* ****** ****** *) (* end of [pats_lexbuf.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_svvar.dats0000644000175000017500000002716213431250607022174 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload CNTR = "./pats_counter.sats" staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp overload compare with $STMP.compare_stamp_stamp (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) typedef s2Var_struct = @{ s2Var_loc= location , s2Var_cnt= $CNTR.count // the count , s2Var_srt= s2rt // the sort (* , s2Var_varknd= int // derived from tyvarknd *) (* , s2Var_skexp= s2kexp // skeleton *) , s2Var_link= s2expopt // solution , s2Var_svar= s2varopt // instantiated static var , s2Var_szexp= s2zexp // unique size , s2Var_sVarlst= ptr(*s2Varlst*) // exist. vars in its solution , s2Var_lbs= s2VarBoundlst // lower bounds , s2Var_ubs= s2VarBoundlst // upper bounds , s2Var_stamp= stamp // uniqueness } // end of [s2Var_struct] (* ****** ****** *) val the_s2Var_name_counter = $CNTR.counter_make () (* ****** ****** *) local assume s2Var_type = ref (s2Var_struct) in (* in of [local] *) implement s2Var_make_srt (loc, s2t) = let // val cnt = $CNTR.counter_getinc (the_s2Var_name_counter) // val stamp = $STMP.s2Var_stamp_make ((*void*)) // val (pfgc, pfat | p) = ptr_alloc () prval ((*void*)) = free_gc_elim {s2Var_struct?} (pfgc) // val () = begin p->s2Var_loc := loc; p->s2Var_cnt := cnt; p->s2Var_srt := s2t; (* p->s2Var_varknd := 0; *) p->s2Var_link := None (); p->s2Var_svar := None (); p->s2Var_szexp := S2ZEVar ($UN.cast{s2Var}(p)); // p->s2Var_sVarlst := $UN.cast{ptr}(list_nil); // p->s2Var_lbs := list_nil (); p->s2Var_ubs := list_nil (); // p->s2Var_stamp := stamp; // end // end of [val] // in // ref_make_view_ptr {s2Var_struct} (pfat | p) // end // end of [s2Var_make_srt] implement s2Var_make_var (loc, s2v) = let // val cnt = $CNTR.counter_getinc (the_s2Var_name_counter) val stamp = $STMP.s2Var_stamp_make () val s2t = s2var_get_srt s2v val (pfgc, pfat | p) = ptr_alloc_tsz {s2Var_struct} (sizeof) prval () = free_gc_elim {s2Var_struct?} (pfgc) // val () = begin p->s2Var_loc := loc; p->s2Var_cnt := cnt; p->s2Var_srt := s2t; (* p->s2Var_varknd := 0; *) p->s2Var_link := None (); p->s2Var_svar := None (); p->s2Var_szexp := S2ZEVar ($UN.cast {s2Var}(p)); // p->s2Var_sVarlst := $UN.cast{ptr}(list_nil); // p->s2Var_lbs := list_nil (); p->s2Var_ubs := list_nil (); // p->s2Var_stamp := stamp; // end // end of [val] // in // ref_make_view_ptr {s2Var_struct} (pfat | p) // end // end of [s2Var_make_var] (* ****** ****** *) implement s2Var_get_cnt (s2V) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_cnt end // end of [s2Var_get_sym] implement s2Var_get_srt (s2V) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_srt end // end of [s2Var_get_srt] implement s2Var_get_link (s2V) = let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_link end // end of [s2Var_get_link] implement s2Var_set_link (s2V, link) = let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_link := link end // end of [s2Var_set_link] implement s2Var_get_szexp (s2V) = let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_szexp end // end of [s2Var_get_szexp] implement s2Var_set_szexp (s2V, s2ze) = let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_szexp := s2ze end // end of [s2Var_set_szexp] implement s2Var_get_sVarlst (s2V) = let val (vbox pf | p) = ref_get_view_ptr (s2V) in $UN.cast{s2Varlst}(p->s2Var_sVarlst) end // end of [s2Var_get_sVarlst] implement s2Var_add_sVarlst (s2V, s2V2) = let val (vbox pf | p) = ref_get_view_ptr (s2V) val s2Vs2 = $UN.cast{s2Varlst}(p->s2Var_sVarlst) in p->s2Var_sVarlst := $UN.cast{ptr}(list_cons(s2V2, s2Vs2)) end // end of [s2Var_add_sVarlst] implement s2Var_get_lbs (s2V) = let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_lbs end // end of [s2Var_get_lbs] implement s2Var_set_lbs (s2V, lbs) = let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_lbs := lbs end // end of [s2Var_set_lbs] implement s2Var_get_ubs (s2V) = let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_ubs end // end of [s2Var_get_ubs] implement s2Var_set_ubs (s2V, ubs) = let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_ubs := ubs end // end of [s2Var_set_ubs] implement s2Var_get_stamp (s2V) = $effmask_ref let val (vbox pf | p) = ref_get_view_ptr (s2V) in p->s2Var_stamp end // end of [s2Var_get_stamp] end // end of [local] (* ****** ****** *) implement s2Varlst_add_sVarlst (s2Vs, s2V2) = let in // case+ s2Vs of | list_nil () => () | list_cons (s2V, s2Vs) => let val () = s2Var_add_sVarlst (s2V, s2V2) // end of [val] in s2Varlst_add_sVarlst (s2Vs, s2V2) end // end of [list_cons] // end // end of [s2Varlst_add_sVarlst] (* ****** ****** *) local assume s2VarBound_type = '{ s2VarBound_loc= location, s2VarBound_val= s2exp } // end of [s2VarBound_type] in (* in of [local] *) implement s2VarBound_make (loc, s2f) = '{ s2VarBound_loc= loc, s2VarBound_val= s2f } (* end of [s2VarBound_make] *) implement s2VarBound_get_loc (x) = x.s2VarBound_loc implement s2VarBound_get_val (x) = x.s2VarBound_val end // end of [local] (* ****** ****** *) implement s2Var_lb_insert (loc, s2V, s2e) = let // fun auxins ( // argless ) : void = let val lb = s2VarBound_make(loc, s2e) in // s2Var_set_lbs (s2V, list_cons(lb, s2Var_get_lbs(s2V))) // end // end of [auxins] // in // case+ s2e.s2exp_node of (* case+ *) | S2EVar(s2V2) when (s2V = s2V2) => () | _(*non-S2EVar*) => auxins() // end // end of [s2Var_lb_insert] implement s2Var_ub_insert (loc, s2V, s2e) = let // fun auxins ( // argless ) : void = let val ub = s2VarBound_make(loc, s2e) in // s2Var_set_ubs (s2V, list_cons(ub, s2Var_get_ubs(s2V))) // end // end of [auxins] // in // case+ s2e.s2exp_node of (* case+ *) | S2EVar(s2V2) when (s2V = s2V2) => () | _(*non-S2EVar*) => auxins() // end // end of [s2Var_ub_insert] (* ****** ****** *) // implement lt_s2Var_s2Var(x1, x2) = (compare (x1, x2) < 0) implement lte_s2Var_s2Var(x1, x2) = (compare (x1, x2) <= 0) // implement eq_s2Var_s2Var(x1, x2) = (compare (x1, x2) = 0) implement neq_s2Var_s2Var(x1, x2) = (compare (x1, x2) != 0) // implement compare_s2Var_s2Var (x1, x2) = let (* val () = $effmask_all ( println! ("compare_s2var_s2var: x1 = ", x1); println! ("compare_s2var_s2var: x2 = ", x2); ) (* end of [val] *) *) in compare (s2Var_get_stamp (x1), s2Var_get_stamp (x2)) end // end of [compare_s2Var_s2Var] // (* ****** ****** *) implement fprint_s2Var (out, s2V) = let val () = $CNTR.fprint_count (out, s2Var_get_cnt s2V) (* val () = fprint_string (out, "(") val () = $STMP.fprint_stamp (out, s2Var_get_stamp s2V) val () = fprint_string (out, ")") *) in // empty end // end of [fprint_s2Var] implement print_s2Var (s2V) = fprint_s2Var (stdout_ref, s2V) implement prerr_s2Var (s2V) = fprint_s2Var (stderr_ref, s2V) (* ****** ****** *) local // %{^ typedef ats_ptr_type s2Var ; %} // end of [%{^] // staload FS = "libats/SATS/funset_avltree.sats" staload _(*anon*) = "libats/DATS/funset_avltree.dats" // staload LS = "libats/SATS/linset_avltree.sats" staload _(*anon*) = "libats/DATS/linset_avltree.dats" // abstype s2Var1 = $extype "s2Var" typedef s2Var1set = $FS.set (s2Var1) vtypedef s2Var1set_vt = $LS.set (s2Var1) // assume s2Varset_type = $FS.set (s2Var) assume s2Varset_vtype = $LS.set (s2Var) // extern castfn of_s2Var (x: s2Var):<> s2Var1 extern castfn to_s2Var (x: s2Var1):<> s2Var extern castfn of_s2Varset (xs: s2Varset):<> s2Var1set extern castfn to_s2Varset (xs: s2Var1set):<> s2Varset extern castfn of_s2Varset_vt (xs: s2Varset_vt):<> s2Var1set_vt extern castfn to_s2Varset_vt (xs: s2Var1set_vt):<> s2Varset_vt // typedef cmp(elt:t@ype) = (elt, elt) - int // val cmp = $extval (cmp(s2Var1), "0") // implement $FS.compare_elt_elt (x1, x2, cmp) = compare_s2Var_s2Var (to_s2Var(x1), to_s2Var(x2)) implement $LS.compare_elt_elt (x1, x2, cmp) = compare_s2Var_s2Var (to_s2Var(x1), to_s2Var(x2)) // in (* in of [local] *) implement s2Varset_nil () = $FS.funset_make_nil () implement s2Varset_add (xs, x) = xs where { val x = of_s2Var (x) var xs = of_s2Varset (xs) val _(*replaced*) = $FS.funset_insert (xs, x, cmp) val xs = to_s2Varset (xs) } // end of [s2Varset_add] implement s2Varset_ismem (xs, x) = found where { val x = of_s2Var (x) val xs = of_s2Varset (xs) val found = $FS.funset_is_member (xs, x, cmp) } // end of [s2Varset_is_member] implement s2Varset_listize (xs) = let val xs = of_s2Varset (xs) viewtypedef res = List_vt (s2Var) in $UN.castvwtp_trans{res}($FS.funset_listize (xs)) end // end of [s2Varset_listize] (* ****** ****** *) implement s2Varset_vt_nil () = $LS.linset_make_nil () implement s2Varset_vt_add (xs, x) = xs where { val x = of_s2Var (x) var xs = of_s2Varset_vt (xs) val _(*replaced*) = $LS.linset_insert (xs, x, cmp) val xs = to_s2Varset_vt (xs) } // end of [s2Varset_vt_add] implement s2Varset_vt_ismem (xs, x) = found where { val x = of_s2Var (x) val xs = $UN.castvwtp1{s2Var1set_vt}(xs) val found = $LS.linset_is_member (xs, x, cmp) prval () = $UN.castvwtp0{void}(xs) } // end of [s2Varset_vt_ismem] implement s2Varset_vt_free(xs) = $LS.linset_free (of_s2Varset_vt (xs)) implement s2Varset_vt_listize_free (xs) = let val xs = of_s2Varset_vt (xs) viewtypedef res = List_vt (s2Var) in $UN.castvwtp_trans{res}($LS.linset_listize_free (xs)) end // end of [s2Varset_vt_listize_free] end // end of [local] (* ****** ****** *) implement print_s2Varlst (xs) = fprint_s2Varlst (stdout_ref, xs) implement prerr_s2Varlst (xs) = fprint_s2Varlst (stderr_ref, xs) implement fprint_s2Varlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s2Var) // end of [fprint_s2Varlst] (* ****** ****** *) implement print_s2Varset (xs) = fprint_s2Varset (stdout_ref, xs) implement prerr_s2Varset (xs) = fprint_s2Varset (stderr_ref, xs) implement fprint_s2Varset (out, xs) = () where { val xs = s2Varset_listize (xs) val () = fprint_string (out, "[") val () = fprint_s2Varlst (out, $UN.linlst2lst (xs)) val () = fprint_string (out, "]") val () = list_vt_free (xs) } // end of [fprint_s2Varset] (* ****** ****** *) (* end of [pats_staexp2_svvar.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp2_mapgen.dats0000644000175000017500000001142413431250607022277 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: December, 2014 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./pats_jsonize.sats" (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) local // extern fun s2cst_app : synent_app (s2cst) and s2var_app : synent_app (s2var) and s2Var_app : synent_app (s2Var) and d2con_app : synent_app (d2con) // extern fun d2cst_app : synent_app (d2cst) and d2var_app : synent_app (d2var) and d2sym_app : synent_app (d2sym) // #include "./pats_staexp2_appenv.hats" #include "./pats_dynexp2_appenv.hats" // datavtype myenv = MYENV of ( s2cstset_vt , s2varset_vt , s2Varset_vt , d2conset_vt , d2cstset_vt , d2varset_vt ) (* end of [MYENV] *) // in // implement s2cst_app (s2c, env) = let // val env2 = $UN.castvwtp1{myenv}(env) val+MYENV (!p_s2cs, _, _, _, _, _) = env2 val ((*void*)) = !p_s2cs := s2cstset_vt_add(!p_s2cs, s2c) prval ((*void*)) = fold@ (env2) prval ((*void*)) = $UN.castvwtp0{void}(env2) // in // nothing end // end of [s2cst_app] implement s2var_app (s2v, env) = let // val env2 = $UN.castvwtp1{myenv}(env) val+MYENV (_, !p_s2vs, _, _, _, _) = env2 val ((*void*)) = !p_s2vs := s2varset_vt_add(!p_s2vs, s2v) prval ((*void*)) = fold@ (env2) prval ((*void*)) = $UN.castvwtp0{void}(env2) // in // nothing end // end of [s2var_app] implement s2Var_app (s2V, env) = let // val env2 = $UN.castvwtp1{myenv}(env) val+MYENV (_, _, !p_s2Vs, _, _, _) = env2 val ((*void*)) = !p_s2Vs := s2Varset_vt_add(!p_s2Vs, s2V) prval ((*void*)) = fold@ (env2) prval ((*void*)) = $UN.castvwtp0{void}(env2) // in // nothing end // end of [s2Var_app] implement d2con_app (d2c, env) = let // val s2c = d2con_get_scst(d2c) val ((*void*)) = s2cst_app(s2c, env) // val env2 = $UN.castvwtp1{myenv}(env) val+MYENV (_, _, _, !p_d2cs, _, _) = env2 val ((*void*)) = !p_d2cs := d2conset_vt_add(!p_d2cs, d2c) prval ((*void*)) = fold@ (env2) prval ((*void*)) = $UN.castvwtp0{void}(env2) // in // nothing end // end of [d2con_app] implement d2cst_app (d2c, env) = let // val s2e = d2cst_get_type(d2c) val ((*void*)) = s2exp_app(s2e, env) // val env2 = $UN.castvwtp1{myenv}(env) val+MYENV (_, _, _, _, !p_d2cs, _) = env2 // val ((*void*)) = !p_d2cs := d2cstset_vt_add(!p_d2cs, d2c) // prval ((*void*)) = fold@ (env2) prval ((*void*)) = $UN.castvwtp0{void}(env2) // in // nothing end // end of [d2cst_app] implement d2var_app (d2v, env) = let // val env2 = $UN.castvwtp1{myenv}(env) val+MYENV (_, _, _, _, _, !p_d2vs) = env2 // val ((*void*)) = !p_d2vs := d2varset_vt_add(!p_d2vs, d2v) // prval ((*void*)) = fold@ (env2) prval ((*void*)) = $UN.castvwtp0{void}(env2) // in // nothing end // end of [d2var_app] implement d2sym_app (d2s, env) = () (* ****** ****** *) implement d2eclist_mapgen_all (d2cls) = let // val s2cs = s2cstset_vt_nil () val s2vs = s2varset_vt_nil () val s2Vs = s2Varset_vt_nil () // val d2cons = d2conset_vt_nil () val d2csts = d2cstset_vt_nil () val d2vars = d2varset_vt_nil () // val appenv = $UN.castvwtp0{appenv}(MYENV(s2cs, s2vs, s2Vs, d2cons, d2csts, d2vars)) // val ((*void*)) = d2eclist_app (d2cls, appenv) // val+~MYENV(s2cs, s2vs, s2Vs, d2cons, d2csts, d2vars) = $UN.castvwtp0{myenv}(appenv) // in // ( s2cs , s2vs , s2Vs , d2cons , d2csts , d2vars ) // end // end of [d2eclist_mapgen_all] end // end of [local] (* ****** ****** *) (* end of [pats_dynexp2_mapgen.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_claulst.dats0000644000175000017500000011442013431250607022207 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: January, 2013 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload INTINF = "./pats_intinf.sats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> ((*void*)) = prerr "pats_ccomp_claulst" // (* ****** ****** *) // staload LAB = "./pats_label.sats" staload LOC = "./pats_location.sats" // staload SYN = "./pats_syntax.sats" // overload compare with $LAB.compare_label_label // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) staload P2TC = "./pats_patcst2.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) (* extern fun tmprimval_make_none (pmv: primval): tmprimval extern fun tmprimval_make_some (pmv: primval): tmprimval // implement tmprimval_make_none (pmv) = TPMVnone (pmv) implement tmprimval_make_some (pmv) = let val loc = pmv.primval_loc val hse = pmv.primval_type val tmp = tmpvar_make (loc, hse) in TPMVsome (tmp, pmv) end // end of [tmprimval_make_some] *) (* ****** ****** *) // extern fun tmprimval2pmv (tpmv: tmprimval): primval extern fun tmprimval2pmv2 (tpmv: tmprimval, d2v: d2var): primval // (* ****** ****** *) implement tmprimval2pmv (tpmv) = let (* val () = println! ("tmprimval2pmv") *) in // case+ tpmv of | TPMVnone (pmv) => pmv | TPMVsome (tmp, _) => let val loc = tmpvar_get_loc (tmp) in primval_make_tmp (loc, tmp) end // end of [TPMVsome] // end // end of [tmprimval2pmv] (* ****** ****** *) implement tmprimval2pmv2 (tpmv, d2v) = let // fun ptrof (pmv: primval): primval = primval_ptrof (pmv.primval_loc, hisexp_typtr, pmv) // val ismut = d2var_is_mutabl (d2v) // in // case+ tpmv of | TPMVnone (pmv) => if ismut then ptrof (pmv) else pmv | TPMVsome (tmp, pmv) => ( if ismut then ptrof (pmv) else let val loc = tmpvar_get_loc (tmp) in primval_make_tmp (loc, tmp) // end of [val] end // end of [if] ) // end of [TPMVsome] // end // end of [tmprimval2pmv2] (* ****** ****** *) implement fprint_tmprimval (out, x) = let // macdef prstr(str) = fprint_string (out, ,(str)) // in // case+ x of | TPMVnone (pmv) => { val () = prstr "TPMVnone(" val () = fprint_primval (out, pmv) val () = prstr ")" } | TPMVsome (tmp, pmv) => { val () = prstr "TPMVsome(" val () = fprint_tmpvar (out, tmp) val () = prstr "<-" val () = fprint_primval (out, pmv) val () = prstr ")" } // end // end of [fprint_tmprimval] (* ****** ****** *) extern fun tmpmovlst_add ( tmvlst: &tmpmovlst_vt , tpmv1: tmprimval, tpmv2: tmprimval ) : void // end of [tmpmovlst_add] (* ****** ****** *) implement tmpmovlst_add (tmvlst, tpmv1, tpmv2) = let // (* val out = stdout_ref // val () = fprintln! (out, "tmpmovlst_add: tpmv1 = ", tpmv1) val () = fprintln! (out, "tmpmovlst_add: tpmv2 = ", tpmv2) *) // in // case+ tpmv2 of | TPMVnone _ => () | TPMVsome (tmp2, _) => ( tmvlst := list_vt_cons ((tpmv1, tmp2), tmvlst) ) (* end of [TPMVsome] *) end // end of [tmpmovlst_add] (* ****** ****** *) datatype matoken = | MTKpat of (hipat, tmprimval) | MTKlabpat of (label, hipat, tmprimval) | MTKrparen of () // end of [matoken] typedef matokenlst = List (matoken) (* ****** ****** *) (* extern fun fprint_matoken (out: FILEref, x: matoken): void extern fun fprint_matokenlst (out: FILEref, xs: matokenlst): void *) (* ****** ****** *) typedef patckontref = ref(patckont) (* ****** ****** *) // extern fun patckontref_make ((*void*)): patckontref implement patckontref_make ((*void*)) = ref_make_elt(PTCKNTnone) // extern fun patckontref_make_loc (loc: location): patckontref implement patckontref_make_loc (loc) = ref_make_elt(PTCKNTcaseof_fail(loc)) // (* ****** ****** *) datatype patcomp = // | PTCMPany of (d2var) | PTCMPvar of (d2var, tmprimval) | PTCMPasvar of (d2var, tmprimval) // | PTCMPlablparen of (label) // | PTCMPpatlparen of ( patck, tmprimval, tmplab, pckindopt, patckontref ) (* end of [PTCMPpatlparen] *) | PTCMPreclparen of (tmprimval, tmplab) // | PTCMPrparen of () // | PTCMPpatneg of (patck, tmprimval) // | PTCMPtmplabend of (tmplab) | PTCMPtmplabgua of (tmplab, patckontref) // end of [patcomp] typedef patcomplst = List (patcomp) typedef patcomplstlst = List (patcomplst) vtypedef patcomplst_vt = List_vt (patcomp) (* ****** ****** *) // extern fun fprint_patcomp (out: FILEref, x: patcomp): void // overload fprint with fprint_patcomp // (* ****** ****** *) implement fprint_patcomp (out, x0) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x0 of // | PTCMPany (d2v) => { val () = prstr "PTCMPany(" val () = fprint_d2var (out, d2v) val () = prstr ")" } | PTCMPvar (d2v, tpmv) => { val () = prstr "PTCMPvar(" val () = fprint_d2var (out, d2v) val () = prstr ", " val () = fprint_tmprimval (out, tpmv) val () = prstr ")" } // | PTCMPasvar (d2v, tpmv) => { val () = prstr "PTCMPasvar(" val () = fprint_d2var (out, d2v) val () = prstr ", " val () = fprint_tmprimval (out, tpmv) val () = prstr ")" } // | PTCMPlablparen (lab) => { val () = prstr "PTCMPlablparen(" val () = $LAB.fprint_label (out, lab) val () = prstr ")" } // | PTCMPpatlparen (ptck, tpmv, tlab, opt, kntr) => { val () = prstr "PTCMPpatlparen(" val () = fprint_patck (out, ptck) val () = prstr ", " val () = fprint_pckindopt (out, opt) val () = prstr ", " val () = fprint_tmprimval (out, tpmv) val () = prstr ", " val () = fprint_tmplab (out, tlab) val () = prstr ", " val () = fprint_patckont (out, !kntr) val () = prstr ")" } // | PTCMPreclparen (tpmv, tlab) => { val () = prstr "PTCMPreclparen(" val () = fprint_tmprimval (out, tpmv) val () = prstr ", " val () = fprint_tmplab (out, tlab) val () = prstr ")" } // | PTCMPrparen () => { val () = prstr "PTCMPrparen()" } // | PTCMPpatneg (ptck, tpmv) => { val () = prstr "PTCMPpatckneg(" val () = fprint_patck (out, ptck) val () = prstr ", " val () = fprint_tmprimval (out, tpmv) val () = prstr ")" } // | PTCMPtmplabend (tlab) => { val () = prstr "PTCMPtmplabend(" val () = fprint_tmplab (out, tlab) val () = prstr ")" } | PTCMPtmplabgua (tlab, kntr) => { val () = prstr "PTCMPtmplabgua(" val () = fprint_tmplab (out, tlab) val () = prstr ", " val () = fprint_patckont (out, !kntr) val () = prstr ")" } // end // end of [fprint_patcomp] (* ****** ****** *) // extern fun fprint_patcomplst (out: FILEref, xs: patcomplst): void extern fun fprint_patcomplstlst (out: FILEref, xs: patcomplstlst): void // overload fprint with fprint_patcomplst overload fprint with fprint_patcomplstlst // (* ****** ****** *) implement fprint_patcomplst (out, xs) = $UT.fprintlst (out, xs, "; ", fprint_patcomp) // end of [fprint_patcomplst] implement fprint_patcomplstlst (out, xss) = $UT.fprintlst (out, xss, "\n", fprint_patcomplst) // end of [fprint_patcomplstlst] (* ****** ****** *) extern fun patcomplst_find_tmplab (xs: patcomplst): Option_vt (tmplab) // end of [patcomplst_find_tmplab] (* ****** ****** *) implement patcomplst_find_tmplab (xs) = let (* val () = fprintln! ( stdout_ref , "patcomplst_find_tmplab: xs = ", xs ) (* end of [val] *) *) in // case+ xs of // | list_nil() => None_vt() // | list_cons(x, xs) => let in case x of | PTCMPpatlparen (_, _, tl, _, _) => Some_vt (tl) // end of [PTCMPpatlparen] | PTCMPreclparen (_, tl) => Some_vt (tl) | PTCMPtmplabend (tl) => Some_vt (tl) | PTCMPtmplabgua (tl, _) => Some_vt (tl) | _ (*rest-patscomp*) => patcomplst_find_tmplab (xs) end // end of [list_cons] // end // end of [patcomplst_find_tmplab] (* ****** ****** *) // extern fun patcomplst_find_guafail (xs: patcomplst): patckont // implement patcomplst_find_guafail (xs) = let // (* val out = stdout_ref val () = fprintln! ( out, "patcomplst_find_guafail: xs = ", xs ) (* end of [val] *) *) // in // case+ xs of // | list_cons(x, xs) => let (* val () = fprintln!(out, "x = ", x) *) in case+ x of | PTCMPtmplabgua(_, kntr) => !kntr | _ (*non-PTCMPtmplabgua*) => patcomplst_find_guafail(xs) end (* end of [list_cons] *) // | list_nil((*void*)) => PTCKNTnone(*void*) // end // end of [patcomplst_find_guafail] // (* ****** ****** *) // extern fun patcomplst_unskip (xs: patcomplst, na: &int >> int): patcomplst extern fun patcomplst_unrparen (xs: patcomplst, na: &int >> int): patcomplst // (* ****** ****** *) implement patcomplst_unskip (xs, na) = let // fun auxlst ( xs: patcomplst, na: &int >> int ) : patcomplst = let in // case+ xs of | list_nil() => list_nil((*void*)) // end of [list_nil] | list_cons(x, xs) => ( case+ x of // | PTCMPany _ => xs | PTCMPvar _ => xs | PTCMPasvar _ => auxlst (xs, na) // | PTCMPlablparen _ => auxlst2 (1(*plvl*), xs, na) // | PTCMPpatlparen _ => let val () = na := na + 1 in auxlst2 (1(*plvl*), xs, na) end // end of [PTCMPconlparen] // | PTCMPreclparen _ => let val () = na := na + 1 in auxlst2 (1(*plvl*), xs, na) end // end of [reclparen] // | PTCMPrparen _ => let val () = assertloc (false) in xs end // | _ (*rest-of-patcomp*) => xs // ) (* end of [list_cons] *) // end // end of [auxlst] // and auxlst2 ( plvl: int , xs: patcomplst, na: &int >> int ) : patcomplst = let in // case+ xs of | list_nil() => list_nil((*void*)) // end of [list_nil] | list_cons(x, xs) => ( case+ x of // | PTCMPany _ => auxlst2 (plvl, xs, na) | PTCMPvar _ => auxlst2 (plvl, xs, na) | PTCMPasvar _ => auxlst2 (plvl, xs, na) // | PTCMPlablparen _ => auxlst2 (plvl+1, xs, na) // | PTCMPpatlparen _ => let val () = na := na + 1 in auxlst2 (plvl+1, xs, na) end // end of [PTCMPconlparen] | PTCMPreclparen _ => let val () = na := na + 1 in auxlst2 (plvl+1, xs, na) end // end of [PTCMPreclparen] // | PTCMPrparen () => ( if plvl = 0 then xs else auxlst2 (plvl, xs, na) ) // end of [PTCMPrparen] // | _ (* rest-of-PTCMP *) => auxlst2 (plvl, xs, na) // ) (* end of [list_cons] *) // end // end of [auxlst2] // in auxlst (xs, na) end // end of [patcomplst_unskip] (* ****** ****** *) implement patcomplst_unrparen (xs0, na) = let in // case+ xs0 of | list_nil() => list_nil((*void*)) // end of [list_nil] | list_cons(x, xs1) => ( case+ x of | PTCMPrparen _ => xs1 | _ => let val xs0 = patcomplst_unskip (xs0, na) // end of [val] in patcomplst_unrparen (xs0, na) end // end of [_] ) (* end of [list_cons] *) // end // end of [patcomplst_unrparen] (* ****** ****** *) extern fun patcomplst_subtest (xs1: patcomplst, xs2: patcomplst): patckont // end of [patcomplst_subtest] extern fun patcomplst_subtests (xs1: patcomplst, xss2: patcomplstlst): patckont // end of [patcomplst_subtests] (* ****** ****** *) // extern fun patck_isbin (ptck: patck): bool extern fun patck_ismat (ptck1: patck, ptck2: patck): bool // (* ****** ****** *) implement patck_isbin (ptck) = let in // case+ ptck of | PATCKbool _ => true | PATCKcon (d2c) => if d2con_is_con (d2c) then d2con_is_binarian (d2c) else false // end of [PATCKcon] | _ => false end // end of [patck_isbin] (* ****** ****** *) implement patck_ismat (ptck1, ptck2) = let in // case+ ptck1 of // | PATCKcon (d2c1) => ( case+ ptck2 of | PATCKcon (d2c2) => d2c1 = d2c2 | _ => false ) // | PATCKint (i1) => (case+ ptck2 of PATCKint (i2) => i1 = i2 | _ => false) | PATCKbool (b1) => (case+ ptck2 of PATCKbool (b2) => b1 = b2 | _ => false) | PATCKchar (c1) => (case+ ptck2 of PATCKchar (c2) => c1 = c2 | _ => false) | PATCKstring (str1) => (case+ ptck2 of PATCKstring (str2) => str1 = str2 | _ => false) // (* | PATCKi0nt of (i0nt) | PATCKf0loat of (f0loat) *) // | _ (*rest-of-PATCK*) => false end // end of [patck_ismat] (* ****** ****** *) local typedef patcomplst1 = List1(patcomp) fun auxlst ( xs10: patcomplst , xs20: patcomplst , tmvlst: &tmpmovlst_vt ) : Option_vt (patcomplst) = let in // case xs10 of // | list_nil() => Some_vt(xs20) // | list_cons _ => ( case+ xs20 of | list_nil _ => None_vt () | list_cons _ => auxlst2 (xs10, xs20, tmvlst) ) // end // end of [auxlst] and auxlst2 ( xs10: patcomplst1 , xs20: patcomplst1 , tmvlst: &tmpmovlst_vt ) : Option_vt (patcomplst) = let // val+list_cons (x1, xs1) = xs10 val+list_cons (x2, xs2) = xs20 // val out = stdout_ref // (* val () = fprintln! (out, "auxlst2: x1 = ", x1) val () = fprintln! (out, "auxlst2: xs1 = ", xs1) val () = fprintln! (out, "auxlst2: x2 = ", x2) val () = fprintln! (out, "auxlst2: xs2 = ", xs2) *) // in // case+ x2 of // | PTCMPany _ => let var na: int = 0 val xs1 = patcomplst_unskip (xs10, na) in auxlst (xs1, xs2, tmvlst) end // | PTCMPvar _ => let var na: int = 0 val xs1 = patcomplst_unskip (xs10, na) in auxlst (xs1, xs2, tmvlst) end // | PTCMPasvar _ => auxlst (xs10, xs2, tmvlst) // | PTCMPrparen _ => let var na: int = 0 val xs1 = patcomplst_unrparen (xs10, na) in auxlst (xs1, xs2, tmvlst) end // | _ when x1 as PTCMPany _ => Some_vt (xs20) | _ when x1 as PTCMPvar _ => Some_vt (xs20) // | _ when x1 as PTCMPasvar _ => auxlst (xs1, xs20, tmvlst) // | _ when x1 as PTCMPrparen () => Some_vt (xs20) // | PTCMPlablparen (lab2) => ( case+ x1 of | PTCMPlablparen (lab1) => let val sgn = compare (lab1, lab2) in if sgn = 0 then auxlst (xs1, xs2, tmvlst) else None_vt () end // end of [PTCMPlablparen] | _ => None_vt () ) // | PTCMPpatlparen (ptck2, tpmv2, _, _, _) => ( case+ x1 of | PTCMPpatneg (ptck1, tpmv1) => let val ismat = patck_ismat (ptck1, ptck2) val ((*void*)) = tmpmovlst_add (tmvlst, tpmv1, tpmv2) // end of [val] in if ismat then None_vt () else let val isbin = patck_isbin (ptck1) in if isbin then Some_vt (xs2) else Some_vt (xs20) end // end of [else] // end of [if] end // end of [PTCMPpatneg] | PTCMPpatlparen (ptck1, tpmv1, _, _, _) => let val ismat = patck_ismat (ptck1, ptck2) val ((*void*)) = tmpmovlst_add (tmvlst, tpmv1, tpmv2) // end of [val] in if ismat then auxlst (xs1, xs2, tmvlst) else None_vt(*void*) // end of [if] end // end of [PTCMPpatlparen] | _ (*non-PTCMPpatlparen*) => None_vt((*void*)) ) // // HX-2015-04-21: // bug-2015-04-21 due to // the following clause being missing // | PTCMPreclparen (tpmv2, _) => ( case+ x1 of | PTCMPreclparen (tpmv1, _) => let val ((*void*)) = tmpmovlst_add (tmvlst, tpmv1, tpmv2) // end of [val] in auxlst (xs1, xs2, tmvlst) end // end of [PTCMPreclparen] | _ (*non-PTCMPreclparen*) => None_vt((*void*)) ) (* end of [PTCMPreclparen] *) // | _ (* rest-of-PTCMP *) => None_vt((*void*)) // end // end of [auxlst2] fun auxmovfin ( xs2: patcomplst, tmvlst: &tmpmovlst_vt ) : void = let // (* // val out = stdout_ref val () = fprintln! (out, "auxmovfin: xs2 = ", xs2) // *) // fun ftpmv ( tpmv2: tmprimval , tmvlst: &tmpmovlst_vt ) : void = ( case+ tpmv2 of | TPMVnone (pmv) => ((*void*)) | TPMVsome (tmp, pmv) => let val tpmv1 = TPMVnone (pmv) in tmpmovlst_add (tmvlst, tpmv1, tpmv2) end // end of [TPMVsome] ) (* end of [ftpmv] *) // in // case+ xs2 of | list_nil() => () | list_cons(x2, xs2) => ( case+ x2 of | PTCMPpatlparen (ptck2, tpmv2, _, _, _) => ftpmv (tpmv2, tmvlst) // end of [PTCMPpatlparen] | PTCMPreclparen (tpmv2, _) => ftpmv (tpmv2, tmvlst) // HX: bug-2013-12-04 | _ (*rest-of-PTCMP...lparen*) => auxmovfin (xs2, tmvlst) ) (* end of [list_cons] *) // end // end of [auxmovfin] in (* in of [local] *) implement patcomplst_subtest (xs10, xs20) = let // var tmvlst : tmpmovlst_vt = list_vt_nil() // val opt = auxlst(xs10, xs20, tmvlst) // in // case+ :( tmvlst: tmpmovlst_vt? ) => opt of | ~None_vt() => let val () = list_vt_free(tmvlst) in PTCKNTnone((*void*)) end // end of [None_vt] | ~Some_vt(xs2) => let val () = auxmovfin(xs2, tmvlst) val tmvlst = list_vt_reverse(tmvlst) val tmvlst = list_of_list_vt(tmvlst) val-~Some_vt(tlab) = patcomplst_find_tmplab(xs2) in PTCKNTtmplabmov(tlab, tmvlst) end // end of [some_vt] // end // end of [patcomplst_subtest] end // end of [local] (* ****** ****** *) implement patcomplst_subtests (xs1, xss2) = let in // case+ xss2 of | list_nil () => PTCKNTnone() // end of [list_nil] | list_cons (xs2, xss2) => let val ptjmp = patcomplst_subtest(xs1, xs2) in case+ ptjmp of | PTCKNTnone() => patcomplst_subtests(xs1, xss2) | _ => ptjmp end // end of [list_cons] // end // end of [patcomplst_subtests] (* ****** ****** *) // extern fun patcomplst_jumpfill_rest (xs1: patcomplst, xss2: patcomplstlst): void // (* ****** ****** *) implement patcomplst_jumpfill_rest (xs1, xss2) = let // (* val out = stdout_ref val ((*void*)) = fprintln! (out, "patcomplst_jumpfill_rest: xs1 = ", xs1) *) // fun auxlst ( xs1: patcomplst , xss2: patcomplstlst , rxs: patcomplst_vt ) : void = let in // case+ xs1 of | list_nil() => list_vt_free (rxs) // end of [list_nil] | list_cons (x1, xs1) => let val () = ( case+ x1 of | PTCMPpatlparen ( ptck, tpmv, tlab, opt, kntr ) => let val rxs1 = list_vt_copy(rxs) val rxs1 = list_vt_cons(PTCMPpatneg(ptck, tpmv), rxs1) val pxs1 = list_vt_reverse(rxs1) val ptjmp = patcomplst_subtests($UN.linlst2lst(pxs1), xss2) val ((*freed*)) = list_vt_free(pxs1) in !kntr := ptjmp end (* end of [PTCMPpatlparen] *) | PTCMPtmplabgua(tlab, kntr) => let val rxs1 = list_vt_copy(rxs) val pxs1 = list_vt_reverse(rxs1) val ptjmp = patcomplst_subtests($UN.linlst2lst(pxs1), xss2) val ((*freed*)) = list_vt_free(pxs1) in case+ ptjmp of // HX-2016-10-11: fixing bug-2016-10-08 | PTCKNTnone() => () | _(*non-PTCKNTnone*) => !kntr := ptjmp end (* end of [PTCMPtmplabgua] *) | _ (* rest-of-PTCMP *) => ((*void*)) ) : void // end of [val] in auxlst (xs1, xss2, list_vt_cons(x1, rxs)) end // end of [list_cons] // end // end of [auxlst] // in auxlst (xs1, xss2, list_vt_nil()) end // end of [patcomplst_jumpfill_rest] (* ****** ****** *) // extern fun patcomplst_jumpfill_fail (xs: patcomplst, fail: patckont): void // (* ****** ****** *) implement patcomplst_jumpfill_fail (xs, fail) = let in // case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = ( case+ x of | PTCMPpatlparen (_, _, _, _, kntr) => ( case !kntr of PTCKNTnone () => !kntr := fail | _ => () ) (* end of [PTCMPpatlparen] *) | _ (* non-PTCMPpatlparen *) => () ) : void // end of [val] in patcomplst_jumpfill_fail (xs, fail) end // end of [list_cons] // end // end of [patcomplst_jumpfill_fail] (* ****** ****** *) // extern fun patcomplstlst_jumpfill (xss: patcomplstlst, fail: patckont): void // (* ****** ****** *) implement patcomplstlst_jumpfill (xss, fail) = let in // case+ xss of | list_nil() => () | list_cons(xs, xss) => let val () = patcomplst_jumpfill_rest (xs, xss) val () = patcomplst_jumpfill_fail (xs, fail) in patcomplstlst_jumpfill (xss, fail) end // end of [list_cons] // end // end of [patcomplstlst_jumpfill] (* ****** ****** *) // extern fun himatchlst_patcomp ( lvl0: int , hicl: hiclau, pmvs: primvalist, hips: hipatlst ) : patcomplst // end of [himatchlst_patcomp] // (* ****** ****** *) local (* ****** ****** *) fun auxtpmv_make ( hip: hipat, pmv0: primval ) : tmprimval = let val loc = hip.hipat_loc val hse = hip.hipat_type val tmp = tmpvar_make (loc, hse) in TPMVsome (tmp, pmv0) end // end of [auxtpmv_make] (* ****** ****** *) fun addrparen ( mtks: matokenlst ) : matokenlst = list_cons (MTKrparen (), mtks) (* ****** ****** *) fun addselcon ( tpmv: tmprimval , hse_sum: hisexp , lxs: labhipatlst , mtks: matokenlst ) : matokenlst = let in // case+ lxs of | list_nil() => mtks | list_cons(lx, lxs) => let val+LABHIPAT (lab, hip) = lx val loc = hip.hipat_loc val hse = hip.hipat_type val pmv = tmprimval2pmv (tpmv) val pmvsel = primval_selcon (loc, hse, pmv, hse_sum, lab) val tpmvsel = auxtpmv_make (hip, pmvsel) val mtk0 = MTKlabpat (lab, hip, tpmvsel) val mtks = addselcon (tpmv, hse_sum, lxs, mtks) in list_cons (mtk0, mtks) end // end of [list_cons] // end // end of [addselcon] fun addselect ( tpmv: tmprimval , hse_rec: hisexp , lxs: labhipatlst , mtks: matokenlst ) : matokenlst = let in // case+ lxs of | list_nil() => mtks | list_cons(lx, lxs) => let val+LABHIPAT (lab, hip) = lx val loc = hip.hipat_loc val hse = hip.hipat_type val pml = primlab_lab (loc, lab) val pmv = tmprimval2pmv (tpmv) val pmvsel = primval_select (loc, hse, pmv, hse_rec, pml) val tpmvsel = auxtpmv_make (hip, pmvsel) val mtk0 = MTKlabpat (lab, hip, tpmvsel) val mtks = addselect (tpmv, hse_rec, lxs, mtks) in list_cons (mtk0, mtks) end // end of [list_cons] // end // end of [addselect] (* ****** ****** *) fun auxcomplst ( lvl0: int, mtks: matokenlst ) : patcomplst_vt = let in // case+ mtks of | list_nil() => list_vt_nil() | list_cons (mtk, mtks) => auxcomplst_mtk (lvl0, mtk, mtks) // end of [list_cons] // end // end of [auxcomplst] and auxcomplst_mtk ( lvl0: int , mtk0: matoken, mtks: matokenlst ) : patcomplst_vt = let in // case+ mtk0 of // | MTKpat(hip, tpmv) => ( auxcomplst_pat(lvl0, tpmv, hip, mtks) ) // | MTKlabpat (lab, hip, tpmv) => ( auxcomplst_labpat(lvl0, tpmv, lab, hip, mtks) ) (* end of [MTKlabpat] *) // | MTKrparen((*void*)) => ( list_vt_cons(PTCMPrparen (), auxcomplst(lvl0, mtks)) ) (* end of [MTKrparen] *) // end // end of [auxcomplst_mtk] and auxcomplst_pat ( lvl0: int , tpmv: tmprimval , hip0: hipat , mtks: matokenlst ) : patcomplst_vt = let // val loc0 = hip0.hipat_loc // in // case+ hip0.hipat_node of (* case+ *) // | HIPany(d2v) => let val ptcmp0 = PTCMPany(d2v) val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, ptcmps) end // end of [HIPany] | HIPvar(d2v) => let val () = d2var_set_level(d2v, lvl0) val nused = d2var_get_utimes(d2v) val ptcmp0 = ( if nused > 0 then PTCMPvar(d2v, tpmv) else PTCMPany(d2v) // end of [if] ) : patcomp // end of [val] val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, ptcmps) end // end of [HIPvar] // | HIPint(i) => let val tl = tmplab_make(loc0) val kntr = patckontref_make() val ptcmp0 = PTCMPpatlparen (PATCKint(i), tpmv, tl, None(*knd*), kntr) // end of [val] val ptcmp1 = PTCMPrparen() val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, list_vt_cons(ptcmp1, ptcmps)) end // end of [HIPint] | HIPintrep(rep) => let val tl = tmplab_make(loc0) val kntr = patckontref_make() val i0 = int_of_llint(i0) where { val i0 = $UT.llint_make_string(rep) } val ptcmp0 = PTCMPpatlparen (PATCKint(i0), tpmv, tl, None(*void*), kntr) // end of [val] val ptcmp1 = PTCMPrparen() val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, list_vt_cons(ptcmp1, ptcmps)) end // end of [HIPintrep] // | HIPbool(b) => let val tl = tmplab_make(loc0) val kntr = patckontref_make() val ptcmp0 = PTCMPpatlparen (PATCKbool(b), tpmv, tl, None(*knd*), kntr) // end of [val] val ptcmp1 = PTCMPrparen() val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, list_vt_cons(ptcmp1, ptcmps)) end // end of [HIPint] // | HIPchar(c) => let val tl = tmplab_make(loc0) val kntr = patckontref_make() val ptcmp0 = PTCMPpatlparen (PATCKchar(c), tpmv, tl, None(*knd*), kntr) // end of [val] val ptcmp1 = PTCMPrparen() val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, list_vt_cons(ptcmp1, ptcmps)) end // end of [HIPint] // | HIPstring(str) => let val tl = tmplab_make(loc0) val kntr = patckontref_make() val ptcmp0 = PTCMPpatlparen (PATCKstring(str), tpmv, tl, None(*knd*), kntr) // end of [val] val ptcmp1 = PTCMPrparen() val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, list_vt_cons(ptcmp1, ptcmps)) end // end of [HIPint] // | HIPfloat(rep) => let val tl = tmplab_make(loc0) val kntr = patckontref_make() val f = $UT.double_make_string(rep) val ptcmp0 = PTCMPpatlparen (PATCKfloat(f), tpmv, tl, None(*knd*), kntr) // end of [val] val ptcmp1 = PTCMPrparen() val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, list_vt_cons(ptcmp1, ptcmps)) end // end of [HIPint] // | HIPi0nt(tok) => let val tl = tmplab_make(loc0) val kntr = patckontref_make() val i0 = $P2TC.i0nt2intinf(tok) val i0 = $INTINF.intinf_get_int(i0) val ptcmp0 = PTCMPpatlparen (PATCKint(i0), tpmv, tl, None(*void*), kntr) // end of [val] val ptcmp1 = PTCMPrparen() val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, list_vt_cons(ptcmp1, ptcmps)) end // end of [HIPi0nt] // | HIPempty() => auxcomplst (lvl0, mtks) // | HIPcon ( knd, d2c, hse_sum, lxs ) => let // val () = the_dynconlst_add(d2c) // val tl = tmplab_make(loc0) val kntr = patckontref_make() val ptcmp0 = PTCMPpatlparen (PATCKcon(d2c), tpmv, tl, Some(knd), kntr) // end of [val] val mtks = addrparen(mtks) val mtks = addselcon(tpmv, hse_sum, lxs, mtks) val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, ptcmps) end // end of [HIPcon] // | HIPcon_any (knd, d2c) => let // val () = the_dynconlst_add(d2c) // val tl = tmplab_make(loc0) val kntr = patckontref_make() val ptcmp0 = PTCMPpatlparen (PATCKcon(d2c), tpmv, tl, Some(knd), kntr) // end of [val] val ptcmp1 = PTCMPrparen() val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, list_vt_cons(ptcmp1, ptcmps)) end // end of [HIPcon_any] // | HIPrec ( knd, pck, lxs, hse_rec ) => let val tl = tmplab_make(loc0) val mtks = addrparen(mtks) val mtks = addselect(tpmv, hse_rec, lxs, mtks) val ptcmp0 = PTCMPreclparen(tpmv, tl) val ptcmps = auxcomplst(lvl0, mtks) in list_vt_cons(ptcmp0, ptcmps) end // end of [HIPrec] // | HIPrefas(d2v, hip) => let val () = d2var_set_level(d2v, lvl0) val ptcmp0 = PTCMPasvar(d2v, tpmv) val ptcmps = auxcomplst_pat(lvl0, tpmv, hip, mtks) in list_vt_cons(ptcmp0, ptcmps) end // end of [HIPrefas] // | HIPann(hip, _(*ann*)) => auxcomplst_pat(lvl0, tpmv, hip, mtks) // end of [HIPann(hip, ann)] // | _ (* rest-of-hipat *) => let val () = prerr_interror_loc(loc0) val () = prerrln! (": himatchlst_patcomp") val () = println!(": auxcomplst_pat: hip0 = ", hip0) val () = assertloc(false) in list_vt_nil(*void*) end // end of [rest-of-hipat] // end // end of [auxcomplst_pat] and auxcomplst_labpat ( lvl0: int , tpmv: tmprimval , lab0: label, hip0: hipat , mtks: matokenlst ) : patcomplst_vt = let val ptcmp0 = PTCMPlablparen(lab0) val ptcmp1 = PTCMPrparen((*void*)) val ptcmps = auxcomplst_pat(lvl0, tpmv, hip0, mtks) in list_vt_cons(ptcmp0, list_vt_cons(ptcmp1, ptcmps)) end // end of [auxcomplst_labpat] in (* in of [local] *) implement himatchlst_patcomp (lvl0, hicl, pmvs, hips) = let // fun auxloc ( hip: hipat, hips: hipatlst ) : location = let in // case+ hips of | list_cons (hip, hips) => auxloc (hip, hips) // end of [list_cons] | list_nil() => $LOC.location_rightmost (hip.hipat_loc) // end of [list_nil] // end // end of [auxloc] // fun auxlst ( pmvs: primvalist, hips: hipatlst ) : matokenlst = let in // case+ pmvs of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (pmv, pmvs) => let val tpmv = TPMVnone (pmv) val-list_cons (hip, hips) = hips val mtk0 = MTKpat (hip, tpmv) val mtks = auxlst (pmvs, hips) in list_cons (mtk0, mtks) end // end of [list_cons] // end // end of [auxlst] // in // case+ pmvs of // | list_nil ((*void*)) => list_nil() // end of [list_nil] // | list_cons (pmv, pmvs) => let val tpmv = TPMVnone(pmv) val-list_cons(hip, hips) = hips val lend = auxloc(hip, hips) val mtks = auxlst(pmvs, hips) val ptcmps = auxcomplst_pat(lvl0, tpmv, hip, mtks) val tlab = tmplab_make(lend) val isnot = list_is_nil(hicl.hiclau_gua) val ptcmpz = ( if isnot then PTCMPtmplabend(tlab) else let val loc = hicl.hiclau_loc val kntr = patckontref_make_loc(loc) in PTCMPtmplabgua(tlab, kntr) end // end of [else] // end of [if] ) : patcomp // end of [val] val ptcmps = list_vt_extend (ptcmps, ptcmpz) in list_of_list_vt (ptcmps) end // end of [list_cons] // end // end of [himatchlst_patcomp] end // end of [local] (* ****** ****** *) // extern fun hiclau_patcomp ( lvl0: int , hicl: hiclau, pmvs: primvalist ) : patcomplst // endfun // implement hiclau_patcomp (lvl0, hicl, pmvs) = let // val hips = hicl.hiclau_pat val ptcmps = himatchlst_patcomp(lvl0, hicl, pmvs, hips) // (* val out = stdout_ref val () = fprintln! (out, "hiclau_patcomp: hips =\n", hips) val () = fprintln! (out, "hiclau_patcomp: ptcmps =\n", ptcmps) *) // in ptcmps end // end of [hiclau_patcomp] // (* ****** ****** *) extern fun hiclaulst_patcomp ( lvl0: int , hicls: hiclaulst, pmvs: primvalist ) : patcomplstlst // endfun implement hiclaulst_patcomp (lvl0, hicls, pmvs) = let in // case+ hicls of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (hicl, hicls) => let val xs = hiclau_patcomp (lvl0, hicl, pmvs) val xss = hiclaulst_patcomp (lvl0, hicls, pmvs) in list_cons (xs, xss) end // end of [list_cons] // end // end of [hiclaulst_patcomp] (* ****** ****** *) extern fun patcomplst_ccomp (env: !ccompenv, xs: patcomplst): instrlst_vt // end of [patcomplst_ccomp] (* ****** ****** *) local fun addtpmv ( res: instrlst_vt, tpmv: tmprimval ) : instrlst_vt = let in // case+ tpmv of | TPMVnone _ => res | TPMVsome (tmp, pmv) => let val loc = tmpvar_get_loc (tmp) val ins = instr_move_val (loc, tmp, pmv) in list_vt_cons (ins, res) end // end of [TPMVsome] // end (* end of [addtpmv] *) fun addtlab ( res: instrlst_vt, tlab: tmplab ) : instrlst_vt = let val loc = tmplab_get_loc (tlab) val ins = instr_tmplab (loc, tlab) in list_vt_cons (ins, res) end // end of [addtlab] (* ****** ****** *) fun addfreecon ( env: !ccompenv , pmv: primval, opt: pckindopt, ptck: patck ) : void = let in // case+ opt of | Some (knd) => ( case+ ptck of | PATCKcon(d2c) => ccompenv_add_freeconenv_if(env, pmv, knd, d2c) | _(*non-PATCKcon*) => ((*nothing*)) ) (* end of [Some] *) | None ((*void*)) => () // end // end of [addfreecon] (* ****** ****** *) fun fptcmplst ( env: !ccompenv , xs0: patcomplst , res1: instrlst_vt , res2: instrlst_vt ) : instrlst_vt = let (* val () = println! ("fptcmplst") *) in // case+ xs0 of | list_nil() => let val res2 = list_vt_reverse(res2) in list_vt_reverse_append(res1, res2) end // end of [list_nil] | list_cons(x0, xs1) => ( fptcmplst2(env, x0, xs1, res1, res2) ) (* end of [list_cons] *) // end (* end of [fptcmplst] *) and fptcmplst2 ( env: !ccompenv , x0: patcomp, xs1: patcomplst , res1: instrlst_vt , res2: instrlst_vt ) : instrlst_vt = let (* val () = println! ("fptcmplst2") *) in // case+ x0 of | PTCMPany(d2v) => fptcmplst(env, xs1, res1, res2) // end of [PTCMPany] | PTCMPvar(d2v, tpmv) => let val pmv = tmprimval2pmv2(tpmv, d2v) val ((*void*)) = ccompenv_add_vbindmapenvall(env, d2v, pmv) val res2 = let val ismut = d2var_is_mutabl(d2v) in if ismut then res2 else addtpmv(res2, tpmv) end : instrlst_vt // end of [val] in fptcmplst (env, xs1, res1, res2) end // end of [PTCMPvar] | PTCMPasvar(d2v, tpmv) => let val pmv = tmprimval2pmv2(tpmv, d2v) val ((*void*)) = ccompenv_add_vbindmapenvall(env, d2v, pmv) in fptcmplst (env, xs1, res1, res2) end // end of [PTCMPasvar] // | PTCMPpatlparen ( ptck, tpmv, tlab, opt, kntr ) => let val res1 = addtpmv(res1, tpmv) val res1 = addtlab(res1, tlab) // val pmv = tmprimval2pmv(tpmv) val ((*void*)) = addfreecon(env, pmv, opt, ptck) val ins = instr_patck(pmv.primval_loc, pmv, ptck, !kntr) // val res1 = list_vt_cons(ins, res1) // in fptcmplst (env, xs1, res1, res2) end // end of [PTCMPreclparen] // | PTCMPreclparen (tpmv, tlab) => let val res1 = addtpmv(res1, tpmv) val res1 = addtlab(res1, tlab) in fptcmplst (env, xs1, res1, res2) end // end of [PTCMPreclparen] // | PTCMPtmplabend (tlab) => let val res1 = addtlab(res1, tlab) in fptcmplst (env, xs1, res1, res2) end // end of [PTCMPtmplabend] | PTCMPtmplabgua (tlab, _) => let val res1 = addtlab(res1, tlab) in fptcmplst (env, xs1, res1, res2) end // end of [PTCMPtmplabgua] // | _ (*non-PTCMP*) => fptcmplst(env, xs1, res1, res2) // end (* end of [fptcmplst2] *) in (* in of [local] *) implement patcomplst_ccomp (env, xs) = let // (* val () = println! ("patcomplst_ccomp") *) // in fptcmplst (env, xs, list_vt_nil(), list_vt_nil()) end // end of [patcomplst_ccomp] end // end of [local] (* ****** ****** *) // extern fun higmat_ccomp ( env: !ccompenv, res: !instrseq , lvl0: int, hig: higmat, fail: patckont ) : void // end of [higmat_ccomp] // extern fun higmatlst_ccomp ( env: !ccompenv, res: !instrseq , lvl0: int, higs: higmatlst, fail: patckont ) : void // end of [higmatlst_ccomp] // (* ****** ****** *) implement higmat_ccomp ( env, res, lvl0, hig, fail ) = let // val hde = hig.higmat_exp // val hip = ( // case+ hig.higmat_pat of | Some (hip) => hip | None ((*void*)) => let val hse = hisexp_bool_t0ype () in hipat_bool (hde.hidexp_loc, hse, true) end // end of [None] // ) : hipat // end of [val] // val pmv = hidexp_ccomp(env, res, hde) // val () = hipatck_ccomp(env, res, fail, hip, pmv) val () = himatch_ccomp(env, res, lvl0, hip, pmv) // in // nothing end // end of [higmat_ccomp] implement higmatlst_ccomp (env, res, lvl0, higs, fail) = let // (* val () = println! ("higmatlst_ccomp") *) // in // case+ higs of | list_nil() => () | list_cons(hig, higs) => let val () = higmat_ccomp(env, res, lvl0, hig, fail) // end of [val] in higmatlst_ccomp(env, res, lvl0, higs, fail) end (* end of [list_cons] *) // end // end of [higmatlst_ccomp] (* ****** ****** *) local fun auxcl ( env: !ccompenv , lvl0: int , hicl: hiclau , ptcmps: patcomplst , tmpret: tmpvar ) : ibranch = let // val res = instrseq_make_nil () // val (pf0 | ()) = ccompenv_push (env) val ((*void*)) = ccompenv_inc_freeconenv (env) // val inss = patcomplst_ccomp (env, ptcmps) val ((*void*)) = instrseq_addlst_vt (res, inss) // val higs = hicl.hiclau_gua (* guard-list *) // val () = ( // case+ higs of | list_nil() => () | list_cons _ => let val () = instrseq_add_comment(res, "ibranch-guard:") val fail = patcomplst_find_guafail (ptcmps) in higmatlst_ccomp(env, res, lvl0, higs, fail) end // end of [list_cons] // ) : void // end of [val] // val loc = hicl.hiclau_loc // val pmvs_freecon = ccompenv_getdec_freeconenv(env) // val () = instrseq_add_freeconlst(res, loc, pmvs_freecon) // val () = instrseq_add_comment(res, "ibranch-mbody:") // val () = hidexp_ccomp_ret(env, res, tmpret, hicl.hiclau_body) // val () = ccompenv_pop(pf0 | env) // val inss = instrseq_get_free(res) // (* val () = fprintln! (stdout_ref, "hiclaulst_ccomp: auxcl: inss =\n", inss) // end of [val] *) // in ibranch_make(hicl.hiclau_loc, inss) end (* end of [auxcl] *) fun auxclist ( env: !ccompenv , lvl0: int , hicls: hiclaulst , ptcmpss: patcomplstlst , tmpret: tmpvar ) : ibranchlst = let in // case+ hicls of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons(_, _) => let // val+list_cons(hicl, hicls) = hicls val-list_cons(ptcmps, ptcmpss) = ptcmpss // val ibranch = auxcl(env, lvl0, hicl, ptcmps, tmpret) val ibranchs = auxclist(env, lvl0, hicls, ptcmpss, tmpret) // in list_cons(ibranch, ibranchs) end // end of [list_cons] // end (* end of [auxclist] *) in (* in of [local] *) implement hiclaulst_ccomp ( env, lvl0, pmvs, hicls, tmpret, fail ) = let // val ptcmpss = hiclaulst_patcomp(lvl0, hicls, pmvs) val ((*void*)) = patcomplstlst_jumpfill(ptcmpss, fail) // (* val () = fprintln! (stdout_ref, "ptcmpss =\n", ptcmpss) *) // in auxclist(env, lvl0, hicls, ptcmpss, tmpret) end // end of [hiclaulst_ccomp] end // end of [local] (* ****** ****** *) (* end of [pats_ccomp_claulst.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_typerase_staexp.dats0000644000175000017500000004156713431250607022612 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LAB = "./pats_label.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_histaexp.sats" (* ****** ****** *) staload "./pats_typerase.sats" (* ****** ****** *) extern fun s2cst_tyer (loc: location, flag: int, s2c: s2cst): hisexp // end of [s2cst_tyer] (* ****** ****** *) extern fun s2hnf_tyer (loc: location, flag: int, s2f: s2hnf): hisexp // end of [s2hnf_tyer] (* ****** ****** *) extern fun s2exp_tyer_app ( loc: location, flag: int, s2t: s2rt, _fun: s2exp, _arg: s2explst ) : hisexp // end of [s2exp_tyer_app] extern fun s2exp_tyer_app2 ( loc: location, flag: int, s2t: s2rt, _fun: s2exp, _arg: s2explst ) : hisexp // end of [s2exp_tyer_app2] extern fun s2exp_tyer_apphnf ( loc: location, flag: int, s2t: s2rt, _fun: s2hnf, _arg: s2explst ) : hisexp // end of [s2exp_tyer_apphnf] extern fun s2exp_tyer_appcst ( loc: location, flag: int, s2t: s2rt, _fun: s2cst, _arg: s2explst ) : hisexp // end of [s2exp_tyer_appcst] (* ****** ****** *) extern fun s2explst_tyer_arglst (loc: location, s2es: s2explst): hisexplst (* ****** ****** *) extern fun s2exp_tyer_fun (loc: location, flag: int, s2e: s2exp): hisexp // end of [s2exp_tyer_fun] (* ****** ****** *) extern fun s2exp_tyer_datconptr (loc: location, flag: int, s2e: s2exp): hisexp // end of [s2exp_tyer_datconptr] extern fun s2exp_tyer_datcontyp (loc: location, flag: int, s2e: s2exp): hisexp // end of [s2exp_tyer_datcontyp] (* ****** ****** *) extern fun s2exp_tyer_tyarr (loc: location, flag: int, s2e: s2exp): hisexp // end of [s2exp_tyer_tyarr] extern fun s2exp_tyer_tyrec (loc: location, flag: int, s2e: s2exp): hisexp // end of [s2exp_tyer_tyrec] (* ****** ****** *) extern fun s2explst_tyer (loc: location, s2es: s2explst): hisexplst extern fun s2explst_npf_tyer (loc: location, npf: int, s2es: s2explst): hisexplst extern fun s2explst_npf_tyer_labize (loc: location, npf: int, s2es: s2explst): labhisexplst extern fun labs2explst_tyer (loc: location, flag: int, ls2es: labs2explst): labhisexplst // end of [labs2explst_tyer] extern fun labs2explst_npf_tyer (loc: location, flag: int, npf: int, ls2es: labs2explst): labhisexplst // end of [labs2explst_npf_tyer] (* ****** ****** *) // extern fun s2zexp_tyer_app (loc: location, _fun: s2zexp, _arg: s2zexplst): hisexp extern fun s2zexp_tyer_appcst (loc: location, s2c: s2cst, _arg: s2zexplst): hisexp extern fun s2zexplst_tyer_arglst (loc: location, s2zes: s2zexplst): hisexplst // (* ****** ****** *) extern fun s2zexp_tyer_tyrec (loc: location, s2ze: s2zexp): hisexp (* ****** ****** *) extern fun labs2zexplst_tyer (loc: location, ls2zes: labs2zexplst): labhisexplst (* ****** ****** *) implement s2cst_tyer (loc0, flag, s2c) = let // val opt = s2cst_get_isabs (s2c) // in // case+ opt of | Some (opt2) => ( case+ opt2 of | Some (s2e) => s2exp_tyer (loc0, flag, s2e) // end of [val | None () => hisexp_cst (s2c) ) // end of [Some] | None () => hisexp_cst (s2c) // end // end of [s2cst_tyer] (* ****** ****** *) implement s2exp_tyer ( loc0, flag, s2e0 ) = let val s2f0 = s2exp2hnf (s2e0) in s2hnf_tyer (loc0, flag, s2f0) end // end of [s2hnf_tyer] (* ****** ****** *) implement s2exp_tyer_deep (loc0, s2e0) = s2exp_tyer (loc0, 1(*flag*), s2e0) // end of [s2exp_tyer_deep] implement s2exp_tyer_shallow (loc0, s2e0) = s2exp_tyer (loc0, 0(*flag*), s2e0) // end of [s2exp_tyer_shallow] (* ****** ****** *) implement s2hnf_tyer (loc0, flag, s2f0) = let // val s2e0 = s2hnf2exp (s2f0) // (* val () = println! ("s2hnf_tyer: s2e0 = ", s2e0) *) // in // case+ s2e0.s2exp_node of // | S2Ecst(s2c) => s2cst_tyer(loc0, flag, s2c) // | S2Evar(s2v) => hisexp_tyvar(s2v) // | S2EVar(s2V) => // HX: use type-size s2zexp_tyer(loc0, s2Var_get_szexp(s2V)) (* end of [S2EVar] *) // | S2Edatconptr _ => s2exp_tyer_datconptr(loc0, flag, s2e0) | S2Edatcontyp _ => s2exp_tyer_datcontyp(loc0, flag, s2e0) // | S2Eapp ( s2e_fun, s2es_arg ) => let val s2t0 = s2e0.s2exp_srt in s2exp_tyer_app(loc0, flag, s2t0, s2e_fun, s2es_arg) end // end of [S2Eapp] | S2Elam(_, s2e_body) => s2exp_tyer(loc0, flag, s2e_body) // | S2Efun _ => s2exp_tyer_fun(loc0, flag, s2e0) | S2Emetfun(_, _, s2e_body) => s2exp_tyer (loc0, flag, s2e_body) // | S2Etop(_, s2e) => s2exp_tyer(loc0, flag, s2e) | S2Ewithout (s2e) => s2exp_tyer(loc0, flag, s2e) // | S2Etyarr _ => s2exp_tyer_tyarr(loc0, flag, s2e0) | S2Etyrec _ => s2exp_tyer_tyrec(loc0, flag, s2e0) // | S2Einvar (s2e) => s2exp_tyer(loc0, flag, s2e) // | S2Eexi(_, _, s2e) => s2exp_tyer(loc0, flag, s2e) | S2Euni(_, _, s2e) => s2exp_tyer(loc0, flag, s2e) // | S2Erefarg (knd, s2e) => let val hse = s2exp_tyer_shallow(loc0, s2e) in hisexp_refarg(knd, hse) end // end of [S2Erefarg] // | S2Evararg(s2e) => hisexp_vararg(s2e) // | S2Ewthtype(s2e, _(*ws2es*)) => s2exp_tyer(loc0, flag, s2e) // | _ (* rest-of-s2exp *) => hisexp_s2exp(s2e0) // end // end of [s2hnf_tyer] (* ****** ****** *) implement s2exp_tyer_app ( loc0, flag, s2t0, s2e_fun, s2es_arg ) = let val s2f_fun = s2exp2hnf (s2e_fun) val s2e_fun = s2hnf2exp (s2f_fun) in // case+ s2e_fun.s2exp_node of // case+ | S2Ecst (s2c) => s2exp_tyer_appcst (loc0, flag, s2t0, s2c, s2es_arg) | _ (*hnf*) => s2exp_tyer_apphnf (loc0, flag, s2t0, s2f_fun, s2es_arg) // end of [_] // end // end of [s2exp_tyer_app] implement s2exp_tyer_app2 ( loc0, flag, s2t0, s2e_fun, s2es_arg ) = let // val s2f_fun = s2exp2hnf (s2e_fun) val s2e_fun = s2hnf2exp (s2f_fun) // (* val () = println! ("s2exp_typer_app2: s2e_fun = ", s2e_fun) val () = println! ("s2exp_typer_app2: s2es_arg = ", s2es_arg) *) // in // case+ s2e_fun.s2exp_node of | S2Elam ( s2vs_arg, s2e_body ) => let var sub = stasub_make_nil () val err = stasub_addlst (sub, s2vs_arg, s2es_arg) // end of [val] val s2e_body = s2exp_subst (sub, s2e_body) val ((*freed*)) = stasub_free (sub) in s2exp_tyer (loc0, flag, s2e_body) end // end of [S2Elam] | _ (*hnf*) => s2exp_tyer_apphnf (loc0, flag, s2t0, s2f_fun, s2es_arg) // end of [_] // end // end of [s2exp_tyer_app2] (* ****** ****** *) implement s2exp_tyer_apphnf ( loc0, flag, s2t0, s2f_fun, s2es_arg ) = let val hse_fun = s2hnf_tyer (loc0, flag, s2f_fun) val hses_arg = s2explst_tyer_arglst (loc0, s2es_arg) in hisexp_app (hse_fun, hses_arg) end // end of [s2exp_tyer_apphnf] (* ****** ****** *) implement s2exp_tyer_appcst ( loc0, flag, s2t0, s2c, s2es_arg ) = let val opt = s2cst_get_isabs (s2c) in // case+ opt of | None () => hisexp_make_srt (s2t0) | Some (opt2) => ( case+ opt2 of | Some (_fun) => s2exp_tyer_app2 ( loc0, flag, s2t0, _fun, s2es_arg ) // end of [Some] | None () => let val hse_fun = s2cst_tyer (loc0, flag, s2c) val hses_arg = s2explst_tyer_arglst (loc0, s2es_arg) in hisexp_app (hse_fun, hses_arg) end // end of [None] ) (* end of [Some] *) // end // end of [s2exp_tyer_appcst] (* ****** ****** *) implement s2exp_tyer_fun (loc0, flag, s2e0) = let // (* val () = println! ("s2exp_tyer_fun: flag = ", flag) val () = println! ("s2exp_tyer_fun: s2e0 = ", s2e0) *) // val- S2Efun ( fc, lin, s2fe, npf, s2es_arg, s2e_res ) = s2e0.s2exp_node // in // if flag > 0 then let // val hses_arg = s2explst_npf_tyer(loc0, npf, s2es_arg) // val hse_res = s2exp_tyer_shallow(loc0, s2e_res) // in hisexp_fun (fc, hses_arg, hse_res) end // end of [then] else ( case+ fc of | FUNCLOfun() => hisexp_funptr | FUNCLOclo(knd) => if knd = 0 then hisexp_clotyp else hisexp_cloptr // end of [FUNCLOclo] ) (* end of [else] *) // end // end of [s2exp_tyer_fun] (* ****** ****** *) // implement s2exp_tyer_datconptr (loc0, flag, s2e0) = hisexp_datconptr // (* ****** ****** *) implement s2exp_tyer_datcontyp (loc0, flag, s2e0) = let // val-S2Edatcontyp (d2c, s2es) = s2e0.s2exp_node // in // if flag > 0 then let val npf = d2con_get_npf (d2c) val lhses = s2explst_npf_tyer_labize (loc0, npf, s2es) in hisexp_tysum (d2c, lhses) end else hisexp_datcontyp // end // end of [s2exp_tyer_datcontyp] (* ****** ****** *) implement s2exp_tyer_tyarr (loc0, flag, s2e0) = let // val-S2Etyarr (s2e_elt, dim) = s2e0.s2exp_node val hse_elt = s2exp_tyer (loc0, flag, s2e_elt) // in hisexp_tyarr (hse_elt, dim) end // end of [s2exp_tyer_tyarr] (* ****** ****** *) implement s2exp_tyer_tyrec (loc0, flag, s2e0) = let // val-S2Etyrec (knd, npf, ls2es) = s2e0.s2exp_node val lhses = labs2explst_npf_tyer (loc0, flag, npf, ls2es) // in // case knd of // | TYRECKINDbox () => ( if flag > 0 then hisexp_tyrec (knd, lhses) else hisexp_tybox ) // end of [TYRECKINDbox] // | TYRECKINDflt_ext _ => hisexp_tyrec (knd, lhses) // | _ (*TYRECKINDflt0/1*) => let in case+ lhses of | list_cons ( lhse, list_nil() ) => hisexp_tyrecsin (lhse) | _(*non-sing*) => hisexp_tyrec (knd, lhses) end // end of [TYRECKINDflt0/1] // end // end of [s2exp_tyer_tyrec] (* ****** ****** *) implement s2explst_tyer (loc0, s2es) = let in // case+ s2es of | list_cons (s2e, s2es) => let val isprf = s2exp_is_prf (s2e) in if isprf then s2explst_tyer (loc0, s2es) else let val hse = s2exp_tyer_shallow (loc0, s2e) // end of [val] val hses = s2explst_tyer (loc0, s2es) in list_cons (hse, hses) end // end of [if] end // end of [list_cons] | list_nil () => list_nil () // end // end of [s2explst_tyer] (* ****** ****** *) implement s2explst_npf_tyer (loc0, npf, s2es) = let in // if npf > 0 then let val-list_cons (_, s2es) = s2es in s2explst_npf_tyer (loc0, npf-1, s2es) end else s2explst_tyer (loc0, s2es) // end of [if] // end // end of [s2explst_npf_tyer] (* ****** ****** *) implement s2explst_npf_tyer_labize (loc0, npf, s2es) = let // fun auxlst ( loc0: location , npf: int, s2es: s2explst, i: int ) : labhisexplst = let in // if npf > 0 then let val-list_cons (_, s2es) = s2es in auxlst (loc0, npf-1, s2es, i+1) end else ( // HX-2013-01: npf <= 0 // case+ s2es of | list_cons (s2e, s2es) => let val isprf = s2exp_is_prf (s2e) in if isprf then auxlst (loc0, npf, s2es, i+1) else let val lab = $LAB.label_make_int (i) val hse = s2exp_tyer_shallow (loc0, s2e) val lhse = HSLABELED (lab, None, hse) val lhses = auxlst (loc0, npf, s2es, i+1) in list_cons (lhse, lhses) end // end of [if] end // end of [list_cons] | list_nil () => list_nil () // ) // end of [if] // end // end of [auxlst] // in auxlst (loc0, npf, s2es, 0) end // end of [s2explst_npf_tyer_labize] (* ****** ****** *) implement labs2explst_tyer (loc0, flag, ls2es) = let in // case+ ls2es of | list_cons (ls2e, ls2es) => let val SLABELED (l, name, s2e) = ls2e // end of [val] val isprf = s2exp_is_prf (s2e) in if isprf then labs2explst_tyer (loc0, flag, ls2es) else let val hse = s2exp_tyer (loc0, flag, s2e) val lhse = HSLABELED (l, name, hse) val lhses = labs2explst_tyer (loc0, flag, ls2es) in list_cons (lhse, lhses) end (* end of [if] *) end | list_nil () => list_nil () // end // end of [labs2explst_tyer] (* ****** ****** *) implement labs2explst_npf_tyer (loc0, flag, npf, ls2es) = let in // if npf > 0 then let val-list_cons (_, ls2es) = ls2es in labs2explst_npf_tyer (loc0, flag, npf-1, ls2es) end else labs2explst_tyer (loc0, flag, ls2es) // end of [if] // end // end of [labs2explst_npf_tyer] (* ****** ****** *) implement s2explst_tyer_arglst (loc0, s2es) = let in // case+ s2es of | list_cons (s2e, s2es) => let val s2t = s2e.s2exp_srt val keep = s2rt_is_prgm (s2t) val keep = ( if keep then true else s2rt_is_tkind (s2t) ) : bool // end of [val] in if keep then let val hse = s2exp_tyer_shallow (loc0, s2e) val hses = s2explst_tyer_arglst (loc0, s2es) in list_cons (hse, hses) end else s2explst_tyer_arglst (loc0, s2es) // end of [if] end // end of [list_cons] | list_nil () => list_nil () // end // end of [s2explst_tyer_arglst] (* ****** ****** *) implement s2zexp_tyer (loc0, s2ze0) = let // (* val () = println! ("s2zexp_tyer: s2ze0 = ", s2ze0) *) // in // case+ s2ze0 of // | S2ZEptr () => hisexp_tybox // | S2ZEcst (s2c) => s2cst_tyer (loc0, 0(*flag*), s2c) // end of [S2ZEcst] // | S2ZEvar (s2v) => hisexp_tyvar (s2v) // | S2ZEapp (s2ze1, s2zes2) => s2zexp_tyer_app (loc0, s2ze1, s2zes2) // | S2ZEtyrec _ => s2zexp_tyer_tyrec (loc0, s2ze0) // // HX-2015-01-30: // is this the right way to go? | S2ZEVar (s2V) => hisexp_undefined // | _ (*S2ZE-rest*) => hisexp_s2zexp (s2ze0) // end // end of [s2zexp_tyer] (* ****** ****** *) implement s2zexp_tyer_app ( loc0, s2ze1, s2zes2 ) = let // val hse_fun = s2zexp_tyer (loc0, s2ze1) val hses_arg = s2zexplst_tyer_arglst (loc0, s2zes2) // in hisexp_app (hse_fun, hses_arg) end // end of [s2exp_tyer_app] (* ****** ****** *) implement s2zexplst_tyer_arglst (loc0, s2zes) = let in // case+ s2zes of | list_cons (s2ze, s2zes) => ( case+ s2ze of | S2ZEprf () => s2zexplst_tyer_arglst (loc0, s2zes) | _ (*non-proof*) => let val hse = s2zexp_tyer (loc0, s2ze) val hses = s2zexplst_tyer_arglst (loc0, s2zes) in list_cons (hse, hses) end // end of [_] ) (* end of [list_cons] *) | list_nil () => list_nil () // end // end of [s2zexplst_tyer_arglst] (* ****** ****** *) implement s2zexp_tyer_tyrec (loc0, s2ze0) = let // val-S2ZEtyrec (knd, ls2zes) = s2ze0 // val lhses = labs2zexplst_tyer (loc0, ls2zes) // in // case knd of | TYRECKINDbox () => hisexp_tybox | TYRECKINDflt_ext _ => hisexp_tyrec (knd, lhses) | _ (*TYRECKINDflt0/1*) => let in case+ lhses of | list_cons ( lhse, list_nil() ) => hisexp_tyrecsin (lhse) | _(*non-sing*) => hisexp_tyrec (knd, lhses) end // end of [TYRECKINDflt0/1] // end // end of [s2exp_tyer_tyrec] (* ****** ****** *) implement labs2zexplst_tyer (loc0, ls2zes) = let in // case+ ls2zes of | list_cons (ls2ze, ls2zes) => let val SZLABELED (l, s2ze) = ls2ze in case+ s2ze of | S2ZEprf () => labs2zexplst_tyer (loc0, ls2zes) | _(*non-proof*) => let val hse = s2zexp_tyer (loc0, s2ze) val lhse = HSLABELED (l, None(*name*), hse) val lhses = labs2zexplst_tyer (loc0, ls2zes) in list_cons (lhse, lhses) end // end of [_] end (* end of [list_cons] *) | list_nil ((*void*)) => list_nil () // end // end of [labs2zexplst_tyer] (* ****** ****** *) implement t2mpmarg_tyer (t2ma) = let // val loc0 = t2ma.t2mpmarg_loc // fun aux ( loc0: location, s2es: s2explst ) : hisexplst = let in // case+ s2es of | list_cons (s2e, s2es) => let val hse = s2exp_tyer_shallow (loc0, s2e) // end of [val] in list_cons (hse, aux (loc0, s2es)) end | list_nil () => list_nil () // end // end of [aux] // in aux (loc0, t2ma.t2mpmarg_arg) end // end of [t2mpmarg_tyer] implement t2mpmarglst_tyer (t2mas) = let val h2ess = list_map_fun (t2mas, t2mpmarg_tyer) in list_of_list_vt (h2ess) end // end of [t2mpmarglst_tyer] (* ****** ****** *) implement t2mpmarg_mhnfize (t2ma) = let val loc = t2ma.t2mpmarg_loc val s2es = t2ma.t2mpmarg_arg val s2es = s2explst_mhnfize (s2es) in t2mpmarg_make (loc, s2es) end // end of [t2mpmarg_mhnfize] implement t2mpmarglst_mhnfize (t2mas) = let // val t2mas = list_map_fun (t2mas, t2mpmarg_mhnfize) // in list_of_list_vt (t2mas) end // end of [t2mpmarglst_mhnfize] (* ****** ****** *) (* end of [pats_typerase_staexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_e1xpval.sats0000644000175000017500000000532113431250607020755 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_syntax.sats" staload "./pats_staexp1.sats" (* ****** ****** *) // fun v1al_is_true (v: v1al): bool fun v1al_is_false (v: v1al): bool // fun v1al_is_err (v: v1al): bool // HX: V1ALerr or not // (* ****** ****** *) datatype valerr = | VE_valize of (e1xp) | VE_valize_defined of (e1xp) | VE_valize_undefined of (e1xp) | VE_maxlevel of (int, e1xp) | VE_opr_arglst of (e1xp, symbol) // opertor cannot handle its arguments | VE_E1XPide_unbound of (e1xp) | VE_E1XPundef of (e1xp) | VE_E1XPlist of (e1xp) // tuple value is not supported | VE_E1XPapp_fun of (e1xp) // the [fun] part is not an identifier | VE_E1XPappid_fun of (e1xp, symbol) // the [fun] part is not an function | VE_E1XPappid_opr of (e1xp, symbol) // the [fun] part is some unrecognized opr | VE_E1XPappid_arity of (e1xp, symbol) // arity mismatch | VE_E1XPfun of (e1xp) // function value is not supported | VE_E1XPerr of (e1xp) // end of [valerr] (* ****** ****** *) // fun fprint_valerr : fprint_type (valerr) // fun the_valerrlst_add (x: valerr): void fun fprint_the_valerrlst (out: FILEref): void // (* ****** ****** *) fun e1xp_valize (e: e1xp): v1al fun e1xp_valize_if (knd: srpifkind, e: e1xp): v1al (* ****** ****** *) fun e1xp_normalize (e: e1xp): e1xp (* ****** ****** *) (* end of [pats_e1xpval.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env.dats0000644000175000017500000013773613431250607021460 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) staload UT = "./pats_utils.sats" vtypedef charlst_vt = $UT.charlst_vt macdef charset_listize = $UT.charset_listize (* ****** ****** *) staload INTINF = "./pats_intinf.sats" vtypedef intinflst_vt = $INTINF.intinflst_vt macdef intinfset_listize = $INTINF.intinfset_listize (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_env" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" staload "./pats_patcst2.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload TR2 = "./pats_trans2.sats" staload TRENV2 = "./pats_trans2_env.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" (* ****** ****** *) staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) implement filenv_get_d3eclistopt (fenv) = let val p = $TRENV2.filenv_getref_d3eclistopt (fenv) in $UN.ptrget (p) end // end of [filenv_get_d3eclistopt] (* ****** ****** *) implement c3nstr_prop (loc, s2e) = '{ c3nstr_loc= loc , c3nstr_kind= C3TKmain() , c3nstr_node= C3NSTRprop(s2e) } // end of [c3nstr_prop] implement c3nstr_itmlst (loc, knd, s3is) = '{ c3nstr_loc= loc , c3nstr_kind= knd , c3nstr_node= C3NSTRitmlst (s3is) } // end of [c3nstr_itmlst] implement c3nstr_case_exhaustiveness (loc, casknd, p2tcs) = let val p2tcs = list_vt_copy (p2tcs) in '{ c3nstr_loc= loc , c3nstr_kind= C3TKcase_exhaustiveness (casknd, (l2l)p2tcs) // c3nstr_kind , c3nstr_node= C3NSTRprop(s2exp_bool(false)) } end // end of [c3nstr_case_exhaustiveness] implement c3nstr_termet_isnat (loc, s2e) = '{ c3nstr_loc= loc , c3nstr_kind= C3TKtermet_isnat , c3nstr_node= C3NSTRprop(s2exp_intgte(s2e, s2exp_int(0))) // end of [c3str_node] } // end of [c3nstr_termet_isnat] implement c3nstr_termet_isdec (loc, met, mbd) = '{ c3nstr_loc= loc , c3nstr_kind= C3TKtermet_isdec , c3nstr_node= C3NSTRprop(s2exp_metdec(met, mbd)) } // end of [c3nstr_termet_isdec] (* ****** ****** *) implement c3nstr_solverify (loc, s2e_prop) = let in '{ c3nstr_loc=loc , c3nstr_kind= C3TKsolverify() , c3nstr_node= C3NSTRsolverify(s2e_prop) } end // end of [c3nstr_solverify] (* ****** ****** *) implement c3nstroptref_make_none (loc) = let val ref = ref (None) in '{ c3nstroptref_loc= loc, c3nstroptref_ref= ref } end // end of [c3nstroptref_make_none] (* ****** ****** *) implement h3ypo_prop (loc, s2p) = '{ h3ypo_loc= loc, h3ypo_node = H3YPOprop (s2p) } // end of [h3ypo_prop] implement h3ypo_bind (loc, s2v1, s2f2) = let val s2e2 = s2hnf2exp (s2f2) in '{ h3ypo_loc= loc, h3ypo_node = H3YPObind (s2v1, s2e2) } end // end of [h3ypo_bind] implement h3ypo_eqeq (loc, s2f1, s2f2) = let val s2e1 = s2hnf2exp (s2f1) val s2e2 = s2hnf2exp (s2f2) in '{ h3ypo_loc= loc, h3ypo_node = H3YPOeqeq (s2e1, s2e2) } end // end of [h3ypo_eqeq] (* ****** ****** *) implement s2exp_Var_make_srt (loc, s2t) = let val s2V = s2Var_make_srt (loc, s2t) val () = trans3_env_add_sVar (s2V) in s2exp_Var (s2V) end // end of [s2exp_Var_make_srt] implement s2exp_Var_make_var (loc, s2v) = let (* val () = begin print "s2exp_Var_make_var: s2v = "; print_s2var s2v; print_newline () end // end of [val] *) val s2V = s2Var_make_var (loc, s2v) (* val () = begin print "s2exp_Var_make_var: s2V = "; print_s2Var s2V; print_newline () end // end of [val] *) val () = trans3_env_add_sVar (s2V) in s2exp_Var (s2V) end // end of [s2exp_Var_make_var] (* ****** ****** *) implement stasub_make_svarlst (loc, s2vs) = let (* val () = ( print "stasub_make_svarlst: s2vs = "; print_s2varlst (s2vs); print_newline () ) // end of [val] *) fun loop ( loc: location, s2vs: s2varlst, sub: &stasub ) : void = case+ s2vs of | list_cons (s2v, s2vs) => let val s2e = s2exp_Var_make_var (loc, s2v) // end of [val] val () = stasub_add (sub, s2v, s2e) in loop (loc, s2vs, sub) end // end of [list_cons] | list_nil () => () // end of [loop] // var sub = stasub_make_nil () val () = loop (loc, s2vs, sub) // in sub end // end of [stasub_make_svarlst] (* ****** ****** *) local fun stasub_s2varlst_instantiate_none ( sub: &stasub , locarg: location, s2vs: s2varlst , err: &int // HX: [err] is not used ) : void = let // macdef loop = stasub_s2varlst_instantiate_none // in // case+ s2vs of | list_cons (s2v, s2vs) => let val s2e = s2exp_Var_make_var (locarg, s2v) // end of [val] val () = stasub_add (sub, s2v, s2e) in loop (sub, locarg, s2vs, err) end // end of [list_cons] | list_nil () => () // end of [list_nil] // end // end of [stasub_s2varlst_instantiate_none] fun stasub_s2varlst_instantiate_some ( sub: &stasub , locarg: location, s2vs: s2varlst, s2es: s2explst , err: &int ) : void = let // macdef loop = stasub_s2varlst_instantiate_some // fun auxerr1 ( locarg: location, serr: int ) : void = let val () = prerr_error3_loc (locarg) val () = filprerr_ifdebug "stasub_s2varlst_instantiate_some" val () = prerr ": static arity mismatch" val () = if serr > 0 then prerr ": more arguments are expected." val () = if serr < 0 then prerr ": fewer arguments are expected." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_s2varlst_instantiate_arity (locarg, serr)) end // end of [auxerr1] fun auxerr2 ( locarg: location, s2t1: s2rt, s2t2: s2rt ) : void = let val () = prerr_error3_loc (locarg) val () = filprerr_ifdebug "stasub_s2varlst_instantiate_some" val () = prerr ": mismatch of sorts:\n" val () = prerrln! ("the needed sort is [", s2t1, "];") val () = prerrln! ("the actual sort is [", s2t2, "].") in the_trans3errlst_add (T3E_s2varlst_instantiate_srtck (locarg, s2t1, s2t2)) end // end of [auxerr2] // in // case+ s2vs of | list_cons (s2v, s2vs) => ( case+ s2es of | list_cons (s2e, s2es) => let val s2t1 = s2var_get_srt (s2v) val s2t2 = s2e.s2exp_srt val ismat = s2rt_ltmat1 (s2t2, s2t1) in if ismat then let val () = stasub_add (sub, s2v, s2e) in loop (sub, locarg, s2vs, s2es, err) end else let val () = err := err + 1 val () = auxerr2 (locarg, s2t1, s2t2) val () = stasub_add (sub, s2v, s2exp_errexp(s2t1)) in loop (sub, locarg, s2vs, s2es, err) end (* end of [if] *) end // end of [list_cons] | list_nil () => let val () = err := err + 1 val () = auxerr1 (locarg, 1) // HX: more arguments expected in // nothing end // end of [list_nil] ) // end of [list_cons] | list_nil () => ( case+ s2es of | list_cons _ => let val () = err := err + 1 val () = auxerr1 (locarg, ~1) // HX: fewer arguments expected in // nothing end // end of [list_cons] | list_nil () => () ) // end of [list_nil] end // end of [stasub_s2varlst_instantiate_some] fun stasub_s2varlst_instcollect ( sub: &stasub , locarg: location, s2vs: s2varlst, res: s2explst_vt ) : s2explst_vt = let // macdef loop = stasub_s2varlst_instcollect // in // case+ s2vs of | list_cons (s2v, s2vs) => let (* val () = ( print "stasub_addsvs: s2v = "; print_s2var s2v; print_newline () ) // end of [val] *) val s2e = s2exp_Var_make_var (locarg, s2v) // end of [val] val () = stasub_add (sub, s2v, s2e) val res = list_vt_cons (s2e, res) in loop (sub, locarg, s2vs, res) end // end of [list_cons] | list_nil () => list_vt_reverse (res) // end // end of [stasub_s2varlst_instcollect] in (* in of [local] *) implement s2exp_exiuni_instantiate_all (knd, s2e0, locarg, err) = let // HX: [err] is not used // fun loop ( sub: &stasub , s2f: s2hnf , s2ps_res: &s2explst_vt , err: &int ) : s2exp = let val s2e = s2hnf2exp (s2f) var s2vs: s2varlst and s2ps: s2explst var s2e1: s2exp // scope val ans = uns2exp_exiuni (knd, s2e, s2vs, s2ps, s2e1) in // case+ ans of | true => let // HX: [sub] should be properly extended first val () = stasub_s2varlst_instantiate_none (sub, locarg, s2vs, err) val s2ps = s2explst_subst_vt (sub, s2ps) val () = s2ps_res := list_vt_reverse_append (s2ps, s2ps_res) val s2f1 = s2exp2hnf (s2e1) in loop (sub, s2f1, s2ps_res, err) end // end of [S2Euni/S2Eexi] | false => s2exp_subst (sub, s2e) // end // end of [loop] // var sub : stasub = stasub_make_nil () // end of [var] val s2f0 = s2exp2hnf (s2e0) var s2ps_res: s2explst_vt = list_vt_nil () val s2e_res = loop (sub, s2f0, s2ps_res, err) val () = stasub_free (sub) val s2ps_res = list_vt_reverse (s2ps_res) // in (s2e_res, s2ps_res) end // end of [s2exp_exiuni_instantiate_all] implement s2exp_exi_instantiate_all (s2e0, locarg, err) = s2exp_exiuni_instantiate_all (0, s2e0, locarg, err) // end of [s2exp_exi_instantiate_all] implement s2exp_uni_instantiate_all (s2e0, locarg, err) = s2exp_exiuni_instantiate_all (1, s2e0, locarg, err) // end of [s2exp_uni_instantiate_all] implement s2exp_unimet_instantiate_all (s2e0, locarg, err) = let val (s2e, s2ps_fst) = s2exp_uni_instantiate_all(s2e0, locarg, err) val s2f = s2exp2hnf (s2e) val s2e = s2hnf2exp (s2f) in // case s2e.s2exp_node of | S2Emetfun (opt, s2es_met, s2e) => ( case+ opt of | Some stamp => let val () = s2exp_termet_instantiate (locarg, stamp, s2es_met) val (s2e, s2ps_rest) = s2exp_uni_instantiate_all (s2e, locarg, err) val s2ps_all = ( case+ s2ps_rest of | list_vt_cons _ => let prval () = fold@(s2ps_rest) in list_vt_append(s2ps_fst, s2ps_rest) end // end of [list_vt_cons] | ~list_vt_nil () => s2ps_fst ) : s2explst_vt // end of [val] in (s2e, s2ps_all) end // end of [S2Emetfun] | None () => (s2e, s2ps_fst) ) // end of [S2Emetfun] | _ => (s2e, s2ps_fst) // end // end of [s2exp_unimet_instantiate_all] (* ****** ****** *) implement s2exp_exi_instantiate_sexparg (s2e0, s2a, err) = let // val locarg = s2a.s2exparg_loc // fun auxerr ( locarg: location ) : void = let val () = prerr_error3_loc(locarg) val () = filprerr_ifdebug "s2exp_exi_instantiate_sexparg" val () = prerrln! ": the static abstraction is overly done." in the_trans3errlst_add(T3E_s2varlst_instantiate_nabs(locarg, 1)) end (* end of [auxerr] *) // in // case+ s2a.s2exparg_node of (* case+ *) // | S2EXPARGall () => s2exp_exi_instantiate_all (s2e0, locarg, err) // end of [S2EXPARGall] // | S2EXPARGone () => let val s2e0 = s2exp_hnfize (s2e0) in case+ s2e0.s2exp_node of // case+ | S2Eexi ( s2vs, s2ps, s2e1 ) => let var sub: stasub = stasub_make_nil () val () = stasub_s2varlst_instantiate_none (sub, locarg, s2vs, err) val s2e1 = s2exp_subst (sub, s2e1) val s2ps = s2explst_subst_vt (sub, s2ps) val ((*freed*)) = stasub_free (sub) in (s2e1, s2ps) end // end of [S2Eexi] | _ (*non-S2Eexi*) => let val () = err := err + 1 val () = auxerr (locarg) in (s2e0, list_vt_nil) end // end of [_] end // | S2EXPARGseq (s2es) => let val s2e0 = s2exp_hnfize (s2e0) in case+ s2e0.s2exp_node of // case+ | S2Eexi ( s2vs, s2ps, s2e1 ) => let var sub: stasub = stasub_make_nil () val () = stasub_s2varlst_instantiate_some (sub, locarg, s2vs, s2es, err) val s2e1 = s2exp_subst (sub, s2e1) val s2ps = s2explst_subst_vt (sub, s2ps) val () = stasub_free (sub) in (s2e1, s2ps) end // end of [S2Eexi] | _ (*non-S2Eexi*) => let val () = err := err + 1 val () = auxerr (locarg) in (s2e0, list_vt_nil) end (* end of [_] *) end // end of [S2EXPARGseq] // end // end of [s2exp_exi_instantiate_sexparg] (* ****** ****** *) implement s2exp_uni_instantiate_sexparglst (s2e0, s2as, err) = let // fun auxerr ( locarg: location ) : void = let val () = prerr_error3_loc (locarg) val () = filprerr_ifdebug "s2exp_uni_instantiate_sexparglst" val () = prerr ": the static application is overly done." val () = prerr_newline ((*void*)) in the_trans3errlst_add (T3E_s2varlst_instantiate_napp (locarg, 1)) end (* end of [auxerr] *) // fun loop ( sub: &stasub , s2f: s2hnf , s2ps_res: &s2explst_vt , s2as: s2exparglst , err: &int ) : s2exp = let val s2e = s2hnf2exp (s2f) in // case+ s2as of | list_cons (s2a, s2as1) => let val locarg = s2a.s2exparg_loc in case+ s2a.s2exparg_node of | S2EXPARGall () => ( case+ s2e.s2exp_node of | S2Euni (s2vs, s2ps, s2e1) => let // HX: [sub] should be properly extended first val () = stasub_s2varlst_instantiate_none (sub, locarg, s2vs, err) val s2ps = s2explst_subst_vt (sub, s2ps) val () = s2ps_res := list_vt_reverse_append (s2ps, s2ps_res) val s2f1 = s2exp2hnf (s2e1) in loop (sub, s2f1, s2ps_res, s2as, err) end | _ => loop (sub, s2f, s2ps_res, s2as1, err) ) // end of [S2EXPARGall] | S2EXPARGone () => ( case+ s2e.s2exp_node of | S2Euni (s2vs, s2ps, s2e1) => let // HX: [sub] should be properly extended first val () = stasub_s2varlst_instantiate_none (sub, locarg, s2vs, err) val s2ps = s2explst_subst_vt (sub, s2ps) val () = s2ps_res := list_vt_reverse_append (s2ps, s2ps_res) val s2f1 = s2exp2hnf (s2e1) in loop (sub, s2f1, s2ps_res, s2as1, err) end // end of [S2Euni] | _ => let val () = err := err + 1 val () = auxerr (locarg) in loop (sub, s2f, s2ps_res, s2as1, err) end (* end of [_] *) ) // end of [S2EXPARGone] | S2EXPARGseq (s2es) => ( case+ s2e.s2exp_node of | S2Euni (s2vs, s2ps, s2e1) => let // HX: [sub] should be properly extended first val () = stasub_s2varlst_instantiate_some (sub, locarg, s2vs, s2es, err) val s2ps = s2explst_subst_vt (sub, s2ps) val () = s2ps_res := list_vt_reverse_append (s2ps, s2ps_res) val s2f1 = s2exp2hnf (s2e1) in loop (sub, s2f1, s2ps_res, s2as1, err) end // end of [S2Euni] | _ => let val () = err := err + 1 val () = auxerr (locarg) in loop (sub, s2f, s2ps_res, s2as1, err) end (* end of [_] *) ) // end of [S2EXPARGseq] end // end of [list_cons] | list_nil () => let val s2e = s2hnf2exp (s2f) in s2exp_subst (sub, s2e) end // end of [list_nil] // end // end of [loop] // var sub : stasub = stasub_make_nil () // end of [var] val s2f0 = s2exp2hnf (s2e0) var s2ps_res: s2explst_vt = list_vt_nil () val s2e_res = loop (sub, s2f0, s2ps_res, s2as, err) val () = stasub_free (sub) val s2ps_res = list_vt_reverse (s2ps_res) // in (s2e_res, s2ps_res) end // end of [s2exp_uni_instantiate_sexparglst] (* ****** ****** *) implement s2exp_tmp_instantiate_rest (s2e_tmp, locarg, s2qs, nerr) = let // fun loop ( locarg: location , sub: &stasub , s2qs: s2qualst , t2mas: t2mpmarglst_vt , nerr: &int // HX: unused ) : t2mpmarglst_vt = let in case+ s2qs of | list_nil() => list_vt_reverse (t2mas) // end of [list_nil] | list_cons(s2q, s2qs) => let // val s2vs = s2q.s2qua_svs val () = assertloc(list_is_nil(s2q.s2qua_sps)) // val s2es = stasub_s2varlst_instcollect(sub, locarg, s2vs, list_vt_nil) // val t2ma = t2mpmarg_make (locarg, (l2l)s2es) val t2mas = list_vt_cons (t2ma, t2mas) // in loop (locarg, sub, s2qs, t2mas, nerr) end // end of [list_cons] end // end of [loop] // var sub : stasub = stasub_make_nil () // end of [var] // val t2mas = loop ( locarg, sub, s2qs, list_vt_nil, nerr ) (* end of [val] *) // val s2e_res = s2exp_subst (sub, s2e_tmp) // val ((*freed*)) = stasub_free (sub) // in (s2e_res, (l2l)t2mas) end // end of [s2exp_tmp_instantiate_rest] (* ****** ****** *) implement s2exp_tmp_instantiate_tmpmarglst (s2e_tmp, locarg, s2qs, t2mas, nerr) = let // fun auxerr ( locarg: location ) : void = let val () = prerr_error3_loc (locarg) val () = filprerr_ifdebug "s2exp_tmp_instantiate_tmpmarglst" val () = prerrln! ": the template instantiation is overly done." in the_trans3errlst_add(T3E_s2varlst_instantiate_napp(locarg, 1)) end (* end of [auxerr] *) // var locarg: location = locarg // fun auxsome ( sub: &stasub , locarg: &location , s2qs: s2qualst , t2mas: t2mpmarglst , nerr: &int ) : s2qualst = let in // case+ s2qs of | list_nil () => ( case+ t2mas of | list_nil() => list_nil () | list_cons(t2ma, t2mas) => let val () = nerr := nerr + 1 val () = locarg := t2ma.t2mpmarg_loc val () = auxerr (locarg) in auxsome (sub, locarg, s2qs, t2mas, nerr) end // end of [list_cons] ) (* end of [list_nil] *) | list_cons(s2q, s2qs1) => ( case+ t2mas of | list_nil() => s2qs | list_cons(t2ma, t2mas) => let // val s2vs = s2q.s2qua_svs val () = assertloc(list_is_nil(s2q.s2qua_sps)) // val s2es = t2ma.t2mpmarg_arg val () = locarg := t2ma.t2mpmarg_loc // val () = stasub_s2varlst_instantiate_some (sub, locarg, s2vs, s2es, nerr) // in auxsome (sub, locarg, s2qs1, t2mas, nerr) end // end of [list_cons] ) (* end of [list_cons] *) // end // end of [auxsome] // var sub : stasub = stasub_make_nil() // end of [var] val s2qs = auxsome ( sub, locarg, s2qs, t2mas, nerr ) (* end of [val] *) // val s2e_res = s2exp_subst (sub, s2e_tmp) // val ((*freed*)) = stasub_free (sub) // in // case+ s2qs of // | list_nil() => (s2e_res, t2mas) // | list_cons _ => let val locarg = $LOC.location_rightmost (locarg) val (s2e2_res, t2mas2) = s2exp_tmp_instantiate_rest (s2e_res, locarg, s2qs, nerr) in (s2e2_res, list_append (t2mas, t2mas2)) end // end of [list_cons] // end // end of [s2exp_tmp_instantiate_tmpmarglst] end // end of [local] (* ****** ****** *) extern fun the_s2Varset_env_push (): void extern fun the_s2Varset_env_pop (): s2Varset extern fun the_s2Varset_env_get (): s2Varset extern fun the_s2Varset_env_add (x: s2Var): void local // vtypedef s2Varsetlst_vt = List_vt(s2Varset) // val s2Varset_nil = s2Varset_nil () val the_s2Varset = ref_make_elt (s2Varset_nil) val the_s2Varsetlst = ref_make_elt (list_vt_nil ()) // in (* in of [local] *) implement the_s2Varset_env_get () = !the_s2Varset implement the_s2Varset_env_add (x) = begin !the_s2Varset := s2Varset_add (!the_s2Varset, x) end // end of [the_s2Varset_env_add] implement the_s2Varset_env_push () = let val xs = !the_s2Varset val (vbox pf | pp) = ref_get_view_ptr (the_s2Varsetlst) val () = !pp := list_vt_cons (xs, !pp) in // nothing end // end of [the_s2Varset_env_push] implement the_s2Varset_env_pop () = let val s2Vs = let val (vbox pf | pp) = ref_get_view_ptr (the_s2Varsetlst) in case+ !pp of | ~list_vt_cons (xs, xss) => let val () = !pp := xss in xs end | list_vt_nil () => let prval () = fold@ (!pp) in s2Varset_nil end end : s2Varset val xs = !the_s2Varset val () = !the_s2Varset := s2Vs in xs end // end of [the_s2Varset_env_pop] end // end of [local] (* ****** ****** *) // // HX: // it is declared in [pats_staexp2_util.sats] // implement s2exp_hnfize_flag_svar (s2e0, s2v, flag) = let // (* val () = ( print ("s2exp_hnfize_flag_svar: s2v = ", s2v) ) (* end of [val] *) *) // val ans = the_s2varbindmap_search (s2v) // in // case+ ans of | ~None_vt () => s2e0 | ~Some_vt s2e => let val () = flag := flag + 1 in s2exp_hnfize (s2e) end // end of [Some_vt] // end // end of [s2exp_hnfize_flag_svar] (* ****** ****** *) local // typedef aux1_type ( a:type ) = (s2var, a) -> bool // extern fun aux1_s2exp: aux1_type(s2exp) and aux1_s2explst: aux1_type(s2explst) and aux1_s2explstlst: aux1_type(s2explstlst) // extern fun aux1_s2var: aux1_type(s2var) // in (* in-of-local *) implement aux1_s2exp (s2v0, s2e0) = let // (* val () = println! ("aux1_s2exp: s2v0 = ", s2v0) val () = println! ("aux1_s2exp: s2e0 = ", s2e0) *) // in // case+ s2e0.s2exp_node of // case+ (* // | S2Eint _ => false | S2Eintinf _ => false // | S2Efloat _ => false | S2Estring _ => false // | S2Ecst(s2c) => false // *) | S2Evar(s2v) => if (s2v0 = s2v) then true else aux1_s2var(s2v0, s2v) // end of [if] // | S2Eapp(s2e, s2es) => if aux1_s2exp(s2v0, s2e) then true else aux1_s2explst(s2v0, s2es) // end of [if] // end of [S2Eapp] // | S2Eextype (_(*name*), s2ess) => aux1_s2explstlst (s2v0, s2ess) | S2Eextkind (_(*name*), s2ess) => aux1_s2explstlst (s2v0, s2ess) // | S2Esizeof(s2e) => aux1_s2exp(s2v0, s2e) // | S2Eeqeq(s2e1, s2e2) => if aux1_s2exp(s2v0, s2e1) then true else aux1_s2exp(s2v0, s2e2) // end of [if] // end of [S2Eeqeq] // | S2Einvar(s2e) => aux1_s2exp(s2v0, s2e) | S2Erefarg (_, s2e) => aux1_s2exp(s2v0, s2e) // | S2Elam(s2vs, s2e) => aux1_s2exp(s2v0, s2e) // | S2Efun( fc, lin, s2fe , npf, s2es_arg, s2e_res ) => if aux1_s2explst(s2v0, s2es_arg) then true else aux1_s2exp(s2v0, s2e_res) // end of [if] // end of [S2Efun] // | _ (* rest-of-S2E *) => false // end // end of [aux1_s2exp] implement aux1_s2explst (s2v0, s2es) = ( case+ s2es of | list_nil() => false | list_cons(s2e, s2es) => if aux1_s2exp(s2v0, s2e) then true else aux1_s2explst(s2v0, s2es) // end of [if] // end of [list_cons] ) implement aux1_s2explstlst (s2v0, s2ess) = ( case+ s2ess of | list_nil() => false | list_cons(s2es, s2ess) => if aux1_s2explst(s2v0, s2es) then true else aux1_s2explstlst(s2v0, s2ess) // end of [if] // end of [list_cons] ) implement aux1_s2var (s2v0, s2v) = let // val ans = the_s2varbindmap_search (s2v) // in // case+ ans of | ~None_vt() => false | ~Some_vt(s2e) => aux1_s2exp(s2v0, s2e) // end // end of [aux1_s2var] (* ****** ****** *) implement s2var_occurcheck_s2exp (s2v0, s2e0) = let // (* val () = println! ("s2var_occurcheck_s2exp: s2v0 = ", s2v0) val () = println! ("s2var_occurcheck_s2exp: s2e0 = ", s2e0) *) // in // aux1_s2exp (s2v0, s2e0) // end // end of [s2var_occurcheck_s2exp] end // end of [local] (* ****** ****** *) // extern fun the_s3itmlst_env_push(): void // extern fun the_s3itmlst_env_pop (): s3itmlst_vt extern fun the_s3itmlst_env_add (s3i: s3itm): void // (* ****** ****** *) local // vtypedef s3itmlstlst_vt = List_vt (s3itmlst_vt) // val the_s3itmlst = ref_make_elt (list_vt_nil ()) val the_s3itmlstlst = ref_make_elt (list_vt_nil ()) // in (* in of [local] *) implement the_s3itmlst_env_push ((*void*)) = let val s3is = s3is where { val (vbox pf | p) = ref_get_view_ptr (the_s3itmlst) val s3is = !p val () = !p := list_vt_nil () } // end of [val] val () = let val (vbox pf | pp) = ref_get_view_ptr (the_s3itmlstlst) in !pp := list_vt_cons (s3is, !pp) end // end of [val] in // nothing end // end of [the_s3itmlst_env_push] implement the_s3itmlst_env_pop () = let val s3is = let val (vbox pf | pp) = ref_get_view_ptr (the_s3itmlstlst) in case+ !pp of | ~list_vt_cons (xs, xss) => let val () = !pp := xss in xs end | list_vt_nil () => let prval () = fold@ (!pp) in list_vt_nil end end : s3itmlst_vt val s3is = xs where { val (vbox pf | p) = ref_get_view_ptr (the_s3itmlst) val xs = !p val () = !p := s3is } // end of [val] in list_vt_reverse (s3is) end // end of [the_s3itmlst_env_pop] implement the_s3itmlst_env_add (s3i) = let val (vbox pf | p) = ref_get_view_ptr (the_s3itmlst) in !p := list_vt_cons (s3i, !p) end // end of [the_s3itmlst_env_add] (* ****** ****** *) implement fprint_the_s3itmlst (out) = let // val s3is = let val (vbox pf | p) = ref_get_view_ptr (the_s3itmlst) in $UN.castvwtp1{s3itmlst}(!p) end // end of [val] // in fprint_s3itmlst (out, s3is) end // end of [fprint_the_s3itmlst] implement fprint_the_s3itmlstlst (out) = let // val s3iss = let val (vbox pf | pp) = ref_get_view_ptr (the_s3itmlstlst) in $UN.castvwtp1{s3itmlstlst}(!pp) end // end of [val] // in fprint_s3itmlstlst (out, s3iss) end // end of [fprint_the_s3itmlstlst] end // end of [local] (* ****** ****** *) implement trans3_env_add_svar (s2v) = () where { val s3i = S3ITMsvar (s2v) val () = the_s3itmlst_env_add (s3i) } // end of [trans3_env_add_svar] implement trans3_env_add_svarlst (s2vs) = list_app_fun (s2vs, trans3_env_add_svar) // end of [trans3_env_add_svarlst] (* ****** ****** *) implement trans3_env_add_squa (s2q) = () where { val () = trans3_env_add_svarlst (s2q.s2qua_svs) } // end of [trans3_env_add_svar] implement trans3_env_add_squalst (s2qs) = list_app_fun (s2qs, trans3_env_add_squa) // end of [trans3_env_add_squalst] (* ****** ****** *) implement trans3_env_add_sp2at (sp2t) = ( case+ sp2t.sp2at_node of | SP2Tcon (s2c, s2vs) => trans3_env_add_svarlst (s2vs) | SP2Terr () => () ) // end of [trans3_env_add_sp2at] (* ****** ****** *) implement trans3_env_add_sVar (s2V) = () where { val s3i = S3ITMsVar (s2V) // val () = the_s2Varset_env_add (s2V) // val () = the_s3itmlst_env_add (s3i) // } // end of [trans3_env_add_sVar] implement trans3_env_add_sVarlst (s2Vs) = list_app_fun (s2Vs, trans3_env_add_sVar) // end of [trans3_env_add_sVarlst] implement trans3_env_add_cnstr (c3t) = () where { val () = the_s3itmlst_env_add (S3ITMcnstr (c3t)) } // end of [trans3_env_add_cnstr] implement trans3_env_add_cnstr_ref (ref) = () where { val () = the_s3itmlst_env_add (S3ITMcnstr_ref (ref)) } // end of [trans3_env_add_cnstr_ref] (* ****** ****** *) implement trans3_env_add_prop (loc, s2p) = case+ s2p.s2exp_node of | _ => let val c3t = c3nstr_prop (loc, s2p) in trans3_env_add_cnstr (c3t) end // end of [_] // end of [trans3_env_add_prop] implement trans3_env_add_proplst (loc, s2ps) = case+ s2ps of | list_cons (s2p, s2ps) => ( trans3_env_add_prop (loc, s2p); trans3_env_add_proplst (loc, s2ps) ) // end of [list_cons] | list_nil () => () // end of [trans3_env_add_proplst] implement trans3_env_add_proplst_vt (loc, s2ps) = () where { val () = trans3_env_add_proplst (loc, $UN.castvwtp1 {s2explst} (s2ps)) val () = list_vt_free (s2ps) } // end of [trans3_env_add_proplst_vt] (* ****** ****** *) implement trans3_env_add_eqeq (loc, s2e1, s2e2) = let (* val () = ( println! ("trans3_env_add_eqeq: s2e1 = ", s2e1); println! ("trans3_env_add_eqeq: s2e2 = ", s2e2); ) // end of [val] *) val s2p = s2exp_eqeq (s2e1, s2e2) in trans3_env_add_prop (loc, s2p) end // end of [trans3_env_add_eqeq] (* ****** ****** *) // // HX: for checking pattern matching exhaustiveness // implement trans3_env_add_patcstlstlst_false (loc0, casknd, cp2tcss, s2es) = let // fun loop ( xss: p2atcstlstlst_vt ) : void = ( case+ xss of | ~list_vt_nil () => () | ~list_vt_cons (xs, xss) => let val (pfpush | ()) = trans3_env_push () val c3t = c3nstr_case_exhaustiveness (loc0, casknd, xs) // end of [val] val () = trans3_env_hypadd_patcstlst (loc0, xs, s2es) val () = trans3_env_add_cnstr (c3t) val () = trans3_env_pop_and_add_main (pfpush | loc0) in loop (xss) end // end of [list_cons] ) (* end of [aux] *) // in loop (cp2tcss) end // end of [trans3_env_add_patcstlstlst_false] (* ****** ****** *) implement trans3_env_hypadd_prop (loc, s2p) = let (* // val () = println! ("trans3_env_hypadd_prop: s2p = ", s2p) // *) // val h3p = h3ypo_prop (loc, s2p) // val s3i = S3ITMhypo (h3p) // in the_s3itmlst_env_add (s3i) end // end of [trans3_env_hypadd_prop] implement trans3_env_hypadd_proplst (loc, s2ps) = case+ s2ps of | list_nil() => () | list_cons(s2p, s2ps) => ( trans3_env_hypadd_prop (loc, s2p); trans3_env_hypadd_proplst (loc, s2ps) ) // end of [list_cons] // end of [trans3_env_hypadd_proplst] implement trans3_env_hypadd_proplst_vt (loc, s2ps) = () where { val () = trans3_env_hypadd_proplst (loc, $UN.castvwtp1 {s2explst} (s2ps)) val () = list_vt_free (s2ps) } // end of [trans3_env_hypadd_proplst_vt] (* ****** ****** *) implement trans3_env_hypadd_propopt (loc, opt) = ( case+ opt of | None () => () | Some (s2p) => trans3_env_hypadd_prop (loc, s2p) ) // end of [trans3_env_hypadd_propopt] implement trans3_env_hypadd_propopt_neg (loc, opt) = ( case+ opt of | None () => () | Some (s2p) => trans3_env_hypadd_prop (loc, s2exp_bneg (s2p)) // end of [Some] ) // end of [trans3_env_hypadd_propopt] (* ****** ****** *) implement trans3_env_hypadd_bind (loc, s2v1, s2f2) = let // // HX: [s2v1] cannot be bound at this point // (* val () = ( print "trans3_env_hypadd_bind: s2v1 = "; print_s2var s2v1; print_newline (); print "trans3_env_hypadd_bind: s2f2 = "; pprint_s2hnf s2f2; print_newline (); ) (* end of [val] *) *) // val () = the_s2varbindmap_insert (s2v1, s2f2) // val h3p = h3ypo_bind (loc, s2v1, s2f2) // val s3i = S3ITMhypo (h3p) // in the_s3itmlst_env_add (s3i) end // end of [trans3_env_hypadd_bind] implement trans3_env_hypadd_eqeq (loc, s2f1, s2f2) = let val s2e1 = s2hnf2exp (s2f1) val s2e2 = s2hnf2exp (s2f2) in // case+ ( s2e1.s2exp_node , s2e2.s2exp_node ) of // case+ (* | (S2Evar (s2v1), _) => trans3_env_hypadd_bind (loc, s2v1, s2f2) | (_, S2Evar (s2v2)) => trans3_env_hypadd_bind (loc, s2v2, s2f1) *) | (_, _) => let val h3p = h3ypo_eqeq (loc, s2f1, s2f2) // end of [val] in the_s3itmlst_env_add (S3ITMhypo (h3p)) end (* end of [_, _] *) // end // end of [trans3_env_hypadd_eqeq] (* ****** ****** *) implement trans3_env_hypadd_patcst (loc0, p2tc, s2e0) = let // val s2f0 = s2exp2hnf (s2e0) // val s2e = s2hnf_opnexi_and_add (loc0, s2f0) val s2f = s2exp2hnf (s2e) val s2e = s2hnf2exp (s2f) // (* val () = println! ("trans3_env_hypadd_patcst: p2tc = ", p2tc) *) // in // case+ p2tc of // | P2TCany () => () // | P2TCcon (d2c, p2tcs) => let in case+ s2e.s2exp_node of | S2Edatcontyp (d2c1, _) => ( if (d2c != d2c1) then trans3_env_hypadd_prop (loc0, s2exp_bool (false)) else () // end of [if] ) // end of [S2Edatcontyp] | _ (*non-datcon*) => let val @(s2qs_d2c, s2e_d2c) = $TR2.d2con_instantiate (loc0, d2c) val-S2Efun (_, _, _, _, s2es_fun_arg, s2e_fun_res) = s2e_d2c.s2exp_node (* val () = ( print "trans3_env_hypadd_patcst: s2vpss_d2c = "; print_s2qualst s2vpss_d2c; print_newline (); print "trans3_env_hypadd_patcst: s2es_fun_arg = "; print_s2explst s2es_fun_arg; print_newline (); print "trans3_env_hypadd_patcst: s2e_fun_res = "; print_s2exp s2e_fun_res; print_newline (); end (* end of [val] *) *) val () = let fun loop ( loc0: location, s2qs: s2qualst ) : void = case+ s2qs of | list_nil () => () | list_cons (s2q, s2qs) => let val () = trans3_env_add_svarlst (s2q.s2qua_svs) val () = trans3_env_hypadd_proplst (loc0, s2q.s2qua_sps) in loop (loc0, s2qs) end // end of [list_cons] // end of [loop] in loop (loc0, s2qs_d2c) end // end of [val] val () = $SOL.s2exp_hypequal_solve (loc0, s2e_fun_res, s2e) val p2tcs = list_copy (p2tcs) in trans3_env_hypadd_patcstlst (loc0, p2tcs, s2es_fun_arg) end // end of [_] // end of [case-of] end // end of [P2TCcon] // | P2TCempty _ => () // | P2TCint (i) => let val opt = un_s2exp_g1int_index_t0ype (s2f) in case+ opt of | ~None_vt () => () | ~Some_vt (s2e_arg) => $SOL.s2exp_hypequal_solve (loc0, s2e_arg, s2exp_intinf (i)) // end of [Some_vt] end // end of [P2TCint] // | P2TCintc (xs) => let val opt = un_s2exp_g1int_index_t0ype (s2f) in case+ opt of | ~None_vt () => () | ~Some_vt (s2e_arg) => let fun aux ( xs: intinflst_vt ) : void = ( case+ xs of | ~list_vt_nil () => () | ~list_vt_cons (x, xs) => let val s2p = s2exp_intneq (s2e_arg, s2exp_intinf x) // end of [val] val () = trans3_env_hypadd_prop (loc0, s2p) in aux (xs) end // end of [list_vt_cons] ) (* end of [aux] *) in let val xs = intinfset_listize (xs) in aux (xs) end end // end of [Some_vt] end // end of [P2Tintc] // | P2TCbool (b) => let val opt = un_s2exp_bool_index_t0ype (s2f) in case+ opt of | ~None_vt () => () // end of [None_vt] | ~Some_vt (s2e_arg) => $SOL.s2exp_hypequal_solve (loc0, s2e_arg, s2exp_bool (b)) // end of [Some_vt] end // end of [P2TCbool] // | P2TCchar (c) => let val opt = un_s2exp_char_index_t0ype (s2f) in case+ opt of | ~None_vt () => () | ~Some_vt (s2e_arg) => $SOL.s2exp_hypequal_solve (loc0, s2e_arg, s2exp_int_char (c)) // end of [Some_vt] end // end of [P2TCchar] // | P2TCcharc (xs) => let val opt = un_s2exp_char_index_t0ype (s2f) in case+ opt of | ~None_vt () => () | ~Some_vt (s2e_arg) => let fun aux ( xs: charlst_vt ) : void = ( case+ xs of | ~list_vt_nil () => () | ~list_vt_cons (x, xs) => let val s2p = s2exp_intneq (s2e_arg, s2exp_int_char x) // end of [val] val () = trans3_env_hypadd_prop (loc0, s2p) in aux (xs) end // end of [list_vt_cons] ) (* end of [aux] *) in let val xs = charset_listize (xs) in aux (xs) end end // end of [Some_vt] end // end of [P2Tcharc] // | P2TCfloat (rep) => () | P2TCstring (str) => () // | P2TCrec (knd, lp2tcs) => let in case+ s2e.s2exp_node of | S2Etyrec (_, _, ls2es) => let val lp2tcs = list_copy (lp2tcs) in trans3_env_hypadd_labpatcstlst (loc0, lp2tcs, ls2es) end // end of [S2Etyrec] | _ (*non-tyrec*) => ((*void*)) end // end of [P2TCrec] // (* | _ => let val () = ( println! "trans3_env_hypadd_patcst: p2tc = "; p2tc) ) (* end of [val] *) val () = assertloc (false) in exit (1) end (* end of [_] *) *) end // end of [trans3_env_hypadd_patcst] (* ****** ****** *) implement trans3_env_hypadd_patcstlst (loc0, cp2tcs, s2es_pat) = let // fun loop ( p2tcs: p2atcstlst_vt, s2es: s2explst, serr: int ) : int = let in // case+ p2tcs of | ~list_vt_nil () => ( case+ s2es of | list_cons (_, s2es) => loop (list_vt_nil, s2es, serr - 1) | list_nil () => serr // the number of errors ) (* end of [list_nil] *) | ~list_vt_cons (p2tc, p2tcs) => ( case+ s2es of | list_cons (s2e, s2es) => let val () = trans3_env_hypadd_patcst (loc0, p2tc, s2e) // end of [val] in loop (p2tcs, s2es, serr) end // end of [list_cons] | list_nil ((*void*)) => loop (p2tcs, s2es, serr + 1) ) (* end of [list_cons] *) // end // end of [loop] // val serr = loop (cp2tcs, s2es_pat, 0) // val () = if (serr != 0) then let // val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "trans3_env_hypadd_patcstlst" // val () = print! (": constructor arity mismatch") val () = if serr < 0 then println! (": more arguments are expected") val () = if serr > 0 then println! (": fewer arguments are expected") // in the_trans3errlst_add (T3E_cp2atcstlst_arity (loc0, serr)) end // end of [then] // (* val ((*void*)) = assertloc (serr = 0) *) // in (*nothing*) end // end of [trans3_env_hypadd_patcstlst] (* ****** ****** *) implement trans3_env_hypadd_labpatcstlst (loc0, lp2tcs, ls2es) = let // fn cmp ( lx1: labs2exp, lx2: labs2exp, env: !ptr ) :<0> int = let val SLABELED (l1, _, _) = lx1 and SLABELED (l2, _, _) = lx2 in $LAB.compare_label_label (l1, l2) end // end of [fun] var env: ptr = null val ls2es = list_mergesort (ls2es, cmp, env) // fun aux ( lp2tcs: List (labp2atcst), ls2es: List (labs2exp) ) : void = case+ lp2tcs of | list_cons (lp2tc, lp2tcs1) => ( case+ ls2es of | list_cons (ls2e, ls2es1) => let val LABP2ATCST (l1, p2tc) = lp2tc val SLABELED (l2, _(*name*), s2e) = ls2e val sgn = $LAB.compare_label_label (l1, l2) in if sgn < 0 then aux (lp2tcs1, ls2es) else if sgn > 0 then aux (lp2tcs, ls2es1) else let val () = trans3_env_hypadd_patcst (loc0, p2tc, s2e) in aux (lp2tcs1, ls2es1) end // end of [if] end // end of [list_cons] | list_nil () => () ) // end of [list_cons] | list_nil () => () // val () = let val lp2tcs = $UN.castvwtp1 {labp2atcstlst} (lp2tcs) val ls2es = $UN.castvwtp1 {labs2explst} (ls2es) in aux (lp2tcs, ls2es) end // end of [val] // val () = list_vt_free (lp2tcs) and () = list_vt_free (ls2es) // in // nothing end // end of [trans3_env_hypadd_labpatcstlst] (* ****** ****** *) local fun trans3_env_hypadd_disj (xss: s3itmlstlst): void = ( the_s3itmlst_env_add (S3ITMdisj (xss)) ) // end of [trans3_env_hypadd_disj] in (* in of [local] *) // // HX: enforcing sequentiality of pattern match // implement trans3_env_hypadd_patcstlstlst (loc0, cp2tcss, s2es_pat) = let // fun aux ( p2tcss: p2atcstlstlst_vt ) : s3itmlstlst = ( case+ p2tcss of | ~list_vt_nil ((*void*)) => list_nil() | ~list_vt_cons (p2tcs, p2tcss) => let (* val () = ( print "trans3_env_hypadd_patcstlstlst: aux: p2tcs = "; print_p2atcstlst_vt (p2tcs); print_newline ((*void*)); ) (* end of [val] *) *) val (pf|()) = trans3_env_push ((*none*)) val () = trans3_env_hypadd_patcstlst (loc0, p2tcs, s2es_pat) val s3is = trans3_env_pop (pf|(*none*)) in list_cons(l2l(s3is), aux (p2tcss)) end // end of [list_vt_cons] ) (* end of [aux] *) // val s3iss = aux (cp2tcss) (* val n = list_length (s3iss) val () = ( print "trans3_env_hypadd_patcstlstlst: ns3iss = "; print n; print_newline () ) (* end of [val] *) *) in trans3_env_hypadd_disj (s3iss) end // end of [trans3_env_hypadd_p2atcstlstlst] end // end of [local] (* ****** ****** *) implement trans3_env_solver_assert (loc0, s2e) = let // (* val () = println! ( "trans3_env_solver_assert: s2e = ", s2e ) (* end of [val] *) *) // in // the_s3itmlst_env_add(S3ITMsolassert(s2e)) // end // end of [trans3_env_solver_assert] (* ****** ****** *) implement trans3_env_solver_verify (loc0, s2e) = let // val c3t = c3nstr_solverify(loc0, s2e) // (* val () = println! ( "trans3_env_solver_assert: c3t = ", c3t ) (* end of [val] *) *) // in the_s3itmlst_env_add(S3ITMcnstr(c3t)) end // end of [trans3_env_solver_verify] (* ****** ****** *) local assume trans3_env_push_v = unit_v in (* in of [local] *) implement trans3_env_pop (pf | (*none*)) = let prval () = unit_v_elim (pf) val _(*s2Vs*) = the_s2Varset_env_pop () prval pf = __assert () where { extern praxi __assert (): s2varbindmap_push_v } // end of [prval] val () = the_s2varbindmap_pop (pf | (*none*)) in the_s3itmlst_env_pop () end // end of [trans3_env_pop] implement trans3_env_pop_and_add (pf | loc, knd) = let val s3is = trans3_env_pop (pf | (*none*)) val c3t = c3nstr_itmlst (loc, knd, (l2l)s3is) in trans3_env_add_cnstr (c3t) end // end of [trans3_env_pop_and_add] implement trans3_env_pop_and_add_main (pf | loc) = trans3_env_pop_and_add (pf | loc, C3TKmain()) // end of [trans3_env_pop_and_add_main] implement trans3_env_push () = let // val () = the_s2Varset_env_push () // val (pf | ()) = the_s2varbindmap_push () prval () = __assert (pf) where { extern praxi __assert (pf: s2varbindmap_push_v): void } // end of [val] // val () = the_s3itmlst_env_push () // in (unit_v () | ()) end // end of [trans3_env_push] end // end of [local] (* ****** ****** *) implement s2hnf_absuni_and_add (loc0, s2f0) = let // val s2e0 = s2hnf2exp (s2f0) // (* // val () = println! ("s2exp_absuni_and_add: before: s2e0 = ", s2e0) // *) val s2es2vss2ps = s2exp_absuni (s2e0) // (* val () = println! ("s2exp_absuni_and_add: after: s2e0 = ", s2es2vss2ps.0) // *) val s2vs = s2es2vss2ps.1 // val () = let val s2vs = $UN.castvwtp1 {s2varlst} (s2vs) // end of [val] val s2Vs = the_s2Varset_env_get () val () = s2varlst_set_sVarset (s2vs, s2Vs) val () = trans3_env_add_svarlst (s2vs) // in // nothing end // end of [val] // val ((*freed*)) = list_vt_free (s2vs) // val s2ps = s2es2vss2ps.2 val ((*added*)) = trans3_env_hypadd_proplst(loc0, $UN.castvwtp1{s2explst}(s2ps)) val ((*freed*)) = list_vt_free (s2ps) // in s2es2vss2ps.0 end // end of [s2hnf_absuni_and_add] (* ****** ****** *) implement s2hnf_opnexi_and_add (loc0, s2f0) = let // val s2e0 = s2hnf2exp (s2f0) // (* val () = println! ("s2hnf_opnexi_and_add: before: s2e0 = ", s2e0) // *) val s2es2vss2ps = s2exp_opnexi (s2e0) (* val () = println! ("s2exp_opnexi_and_add: after: s2e0 = ", s2es2vss2ps.0) // *) // val s2vs = s2es2vss2ps.1 // val () = let val s2vs = $UN.castvwtp1{s2varlst}(s2vs) // end of [val] val s2Vs = the_s2Varset_env_get () val () = s2varlst_set_sVarset (s2vs, s2Vs) val () = trans3_env_add_svarlst (s2vs) in // nothing end // end of [val] // val ((*freed*)) = list_vt_free (s2vs) // val ((*added*)) = trans3_env_hypadd_proplst_vt (loc0, s2es2vss2ps.2) // in s2es2vss2ps.0 end // end of [s2hnf_opnexi_and_add] (* ****** ****** *) implement s2hnf_opn1exi_and_add (loc0, s2f0) = let val s2e0 = s2hnf2exp (s2f0) in // case+ s2e0.s2exp_node of | S2Eexi ( s2vs, s2ps, s2e_body ) => let // var sub = stasub_make_nil () val s2vs = stasub_extend_svarlst (sub, s2vs) val s2ps = s2explst_subst_vt (sub, s2ps) // HX: returning a linear list val s2e_body = s2exp_subst (sub, s2e_body) val () = stasub_free (sub) // val () = let val s2vs = $UN.castvwtp1 {s2varlst} (s2vs) // end of [val] val s2Vs = the_s2Varset_env_get () val () = s2varlst_set_sVarset (s2vs, s2Vs) val () = trans3_env_add_svarlst (s2vs) in // nothing end // end of [val] val () = list_vt_free (s2vs) // val () = trans3_env_hypadd_proplst_vt (loc0, s2ps) // in s2e_body end // end of [S2Eexi] | _ => s2e0 // end of [_] // end // end of [s2hnf_opn1exi_and_add] (* ****** ****** *) local viewtypedef ws2elstopt = Option_vt (wths2explst) fun auxres ( s2e: s2exp ) : ws2elstopt = ( case+ s2e.s2exp_node of // case+ | S2Eexi (_, _, s2e) => auxres (s2e) // end of [S2Eexi] | S2Ewthtype (_, ws2es) => Some_vt(ws2es) // end of [S2Ewthtype] | _ (*rest-of-S2E*) => None_vt () ) (* end of [auxres] *) fun auxarg ( loc: location , s2es: s2explst, ws2es: wths2explst ) : s2explst = let in // case+ s2es of // | list_nil ((*void*)) => list_nil () | list_cons (s2e, s2es) => ( case+ ws2es of | WTHS2EXPLSTcons_invar (_, _, ws2es) => let val-S2Erefarg (knd, s2e) = s2e.s2exp_node var err: int = 0 val (s2e, s2ps) = s2exp_exi_instantiate_all (s2e, loc, err) val () = trans3_env_add_proplst_vt (loc, s2ps) val s2e = s2exp_refarg (knd, s2e) in list_cons (s2e, auxarg (loc, s2es, ws2es)) end // end of [WTHS2EXPLSTcons_invar] | WTHS2EXPLSTcons_trans (_, _, ws2es) => list_cons (s2e, auxarg (loc, s2es, ws2es)) | WTHS2EXPLSTcons_none (ws2es) => list_cons (s2e, auxarg (loc, s2es, ws2es)) | WTHS2EXPLSTnil((*void*)) => list_nil((*void*)) ) (* end of [list_cons] *) // end // end of [auxarg] in (* in of [local] *) implement s2fun_opninv_and_add (locarg, s2es_arg, s2e_res) = let val opt = auxres (s2e_res) in case+ opt of | ~Some_vt (ws2es) => auxarg (locarg, s2es_arg, ws2es) | ~None_vt () => s2es_arg end // end of [s2fun_arg_res_opninv_and_add] end // end of [local] (* ****** ****** *) implement d2var_opnset_and_add (loc, d2v) = let // val opt = d2var_get_type (d2v) // in // case+ opt of | Some (s2e) => let val s2f = s2exp2hnf (s2e) val s2e = s2hnf_opnexi_and_add (loc, s2f) in d2var_set_type (d2v, Some (s2e)) end // end of [Some] | None () => d2var_set_type (d2v, None ()) // end // end of [d2var_opnset_and_add] (* ****** ****** *) implement un_s2exp_wthtype (loc, s2e) = let // var s2e_res: s2exp = s2e var wths2es: wths2explst = WTHS2EXPLSTnil () // val iswth = s2exp_is_wthtype (s2e) // val () = if iswth then let val s2f = s2exp2hnf (s2e) val s2e = s2hnf_opnexi_and_add (loc, s2f) val-S2Ewthtype (s2e, wths2es1) = s2e.s2exp_node in s2e_res := s2e; wths2es := wths2es1 end : void // end of [val] // in (iswth, s2e_res, wths2es) end // end of [un_s2exp_wthtype] (* ****** ****** *) implement d3exp_open_and_add (d3e) = let // val s2e = d3e.d3exp_type val s2f = s2exp2hnf (s2e) // (* // val () = println! ("d3exp_open_and_add: bef: s2e = ", s2e) // *) // val s2e = s2hnf_opnexi_and_add(d3e.d3exp_loc, s2f) // (* // val () = println! ("d3exp_open_and_add: aft: s2e = ", s2e) // *) in d3exp_set_type (d3e, s2e) end // end of [d3exp_open_and_add] implement d3explst_open_and_add (d3es) = list_app_fun (d3es, d3exp_open_and_add) // end of [d3explst_open_and_add] (* ****** ****** *) implement the_trans3_env_initialize ((*void*)) = { // val () = s2cst_add_sup (s2c1, s2c0) where { val s2c0 = s2cstref_get_cst (the_bool_t0ype) val s2c1 = s2cstref_get_cst (the_bool_bool_t0ype) } // end of [val] // val () = s2cst_add_sup (s2c1, s2c0) where { val s2c0 = s2cstref_get_cst (the_char_t0ype) val s2c1 = s2cstref_get_cst (the_char_int_t0ype) } // end of [val] // val () = s2cst_add_sup (s2c1, s2c0) where { val s2c0 = s2cstref_get_cst (the_schar_t0ype) val s2c1 = s2cstref_get_cst (the_schar_int_t0ype) } // end of [val] // val () = s2cst_add_sup (s2c1, s2c0) where { val s2c0 = s2cstref_get_cst (the_uchar_t0ype) val s2c1 = s2cstref_get_cst (the_uchar_int_t0ype) } // end of [val] // val () = s2cst_add_sup (s2c1, s2c0) where { val s2c0 = s2cstref_get_cst (the_g0int_t0ype) val s2c1 = s2cstref_get_cst (the_g1int_int_t0ype) } // end of [val] // val () = s2cst_add_sup (s2c1, s2c0) where { val s2c0 = s2cstref_get_cst (the_g0uint_t0ype) val s2c1 = s2cstref_get_cst (the_g1uint_int_t0ype) } // end of [val] // val () = s2cst_add_sup (s2c1, s2c0) where { val s2c0 = s2cstref_get_cst (the_ptr_type) val s2c1 = s2cstref_get_cst (the_ptr_addr_type) } // end of [val] // val () = s2cst_add_sup (s2c1, s2c0) where { val s2c0 = s2cstref_get_cst (the_string_type) val s2c1 = s2cstref_get_cst (the_string_int_type) } // end of [val] // } // end of [the_trans3_env_initialize] (* ****** ****** *) implement the_trans3_finget_constraint ((*void*)) = let // val s3is = the_s3itmlst_env_pop () val s3is = list_of_list_vt{s3itm}(s3is) // (* val () = fprintln! ( stdout_ref , "trans3_finget_constraint: s3is = ", s3is ) (* end of [val] *) *) // in c3nstr_itmlst($LOC.location_dummy, C3TKmain(), s3is) end // end of [the_trans3_finget_constraint] (* ****** ****** *) (* end of [pats_trans3_env.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_syndef.dats0000644000175000017500000002560713431250607022147 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload LOC = "./pats_location.sats" typedef location = $LOC.location staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol // macdef symbol_CAR = $SYM.symbol_CAR macdef symbol_CDR = $SYM.symbol_CDR macdef symbol_ISNIL = $SYM.symbol_ISNIL macdef symbol_ISCONS = $SYM.symbol_ISCONS macdef symbol_ISLIST = $SYM.symbol_ISLIST // macdef symbol_TUPZ = $SYM.symbol_TUPZ overload = with $SYM.eq_symbol_symbol // staload SYN = "./pats_syntax.sats" // (* ****** ****** *) staload "./pats_dynexp1.sats" (* ****** ****** *) staload "./pats_trans1.sats" (* ****** ****** *) #define l2l list_of_list_vt macdef list_sing (x) = list_cons (,(x), list_nil) (* ****** ****** *) typedef syndef_search_all_type = (symbol) - Option_vt (fsyndef) extern fun syndef_search_all : syndef_search_all_type // end of [extern] (* ****** ****** *) local (* ****** ****** *) fun fsyndef_CAR ( loc0: location, d1es: d1explst ) : d1exp = d1exp_macfun (loc0, symbol_CAR, d1es) fun fsyndef_CDR ( loc0: location, d1es: d1explst ) : d1exp = d1exp_macfun (loc0, symbol_CDR, d1es) fun fsyndef_ISNIL ( loc0: location, d1es: d1explst ) : d1exp = d1exp_macfun (loc0, symbol_ISNIL, d1es) fun fsyndef_ISCONS ( loc0: location, d1es: d1explst ) : d1exp = d1exp_macfun (loc0, symbol_ISCONS, d1es) fun fsyndef_ISLIST ( loc0: location, d1es: d1explst ) : d1exp = d1exp_macfun (loc0, symbol_ISLIST, d1es) (* ****** ****** *) // val symbol_PRINT = $SYM.symbol_make_string "print" val symbol_PRINTLN = $SYM.symbol_make_string "println" val symbol_PRINT_NEWLINE = $SYM.symbol_make_string "print_newline" // val symbol_PRERR = $SYM.symbol_make_string "prerr" val symbol_PRERRLN = $SYM.symbol_make_string "prerrln" val symbol_PRERR_NEWLINE = $SYM.symbol_make_string "prerr_newline" // (* ****** ****** *) val symbol_FPRINT = $SYM.symbol_make_string "fprint" val symbol_FPRINTLN = $SYM.symbol_make_string "fprintln" val symbol_FPRINT_NEWLINE = $SYM.symbol_make_string "fprint_newline" (* ****** ****** *) val symbol_GPRINT = $SYM.symbol_make_string "gprint" val symbol_GPRINTLN = $SYM.symbol_make_string "gprintln" val symbol_GPRINT_NEWLINE = $SYM.symbol_make_string "gprint_newline" (* ****** ****** *) fun aux1 ( loc0: location, fid: d1exp, d1e: d1exp ) : d1exp = let in d1exp_app_dyn (loc0, fid, loc0, ~1(*npf*), list_sing (d1e)) end // end of [aux1] fun aux1lst ( loc0: location, fid: d1exp, d1es: d1explst ) : d1explst = let // val d1es = list_map_cloptr (d1es, lam d1e =<1> aux1 (loc0, fid, d1e)) // in list_of_list_vt (d1es) end // end of [aux1lst] (* ****** ****** *) fun aux2 ( loc0: location, fid: d1exp, d1e: d1exp ) : d1exp = let in case+ d1e.d1exp_node of | D1Elist (npf, d1es) => d1exp_seq (loc0, aux1lst (loc0, fid, d1es)) // end of [D1Elist] | _ (*rest-of-d1exp*) => aux1 (loc0, fid, d1e) end // end of [aux2] fun aux2lst ( loc0: location, fid: d1exp, d1es: d1explst ) : d1explst = let val d1es = list_map_cloptr (d1es, lam d1e =<1> aux2 (loc0, fid, d1e)) in list_of_list_vt (d1es) end // end of [aux2lst] (* ****** ****** *) fun aux3 ( loc0: location, fid: d1exp, d1e1: d1exp, d1e2: d1exp ) : d1exp = let in d1exp_app_dyn (loc0, fid, loc0, ~1(*npf*), list_pair (d1e1, d1e2)) end // end of [aux3] fun aux3lst ( loc0: location, fid: d1exp, d1e1: d1exp, d1es2: d1explst ) : d1explst = let val d1es = list_map_cloptr (d1es2, lam d1e2 =<1> aux3 (loc0, fid, d1e1, d1e2)) in list_of_list_vt (d1es) end // end of [aux3lst] (* ****** ****** *) fun fsyndef_TUPZ ( loc0: location, d1es: d1explst ) : d1exp = ( d1exp_list (loc0, ~1(*npf*), d1es) ) (* end of [fsyndef_TUPZ] *) (* ****** ****** *) local fun auxpr ( loc0: location , d1es: d1explst, sym: symbol ) : d1exp = let (* // val () = println! ("auxpr: d1es = ", d1es) // *) val dq = $SYN.d0ynq_none (loc0) val fid = d1exp_dqid (loc0, dq, sym) val d1e_res = aux2lst (loc0, fid, d1es) // in d1exp_seq (loc0, d1e_res) end (* end of [auxpr] *) fun auxprln ( loc0: location , d1es: d1explst, sym: symbol, sym2: symbol ) : d1exp = let (* // val () = println! ("auxprln: d1es = ", d1es) // *) val d1e1_res = auxpr (loc0, d1es, sym) // val dq = $SYN.d0ynq_none (loc0) val fid2 = d1exp_dqid (loc0, dq, sym2) val d1e2_res = d1exp_app_dyn (loc0, fid2, loc0, ~1(*npf*), list_nil) // in d1exp_seq (loc0, list_pair (d1e1_res, d1e2_res)) end (* end of [auxprln] *) (* ****** ****** *) fun auxfpr ( loc0: location , d1es: d1explst, sym: symbol ) : d1exp = let (* // val () = println! ("auxfpr: d1es = ", d1es) // *) in // case+ d1es of | list_cons (d1e1, d1es2) => let val dq = $SYN.d0ynq_none (loc0) val fid = d1exp_dqid (loc0, dq, sym) val d1es_res = aux3lst (loc0, fid, d1e1, d1es2) in d1exp_seq (loc0, d1es_res) end (* end of [list_cons] *) | list_nil () => d1exp_errexp (loc0) // end (* end of [auxfpr] *) fun auxfprln ( loc0: location , d1es: d1explst, sym: symbol, sym2: symbol ) : d1exp = let (* // val out = stdout_ref // val () = fprintln! (out, "auxfprln: d1es = ", d1es) // *) in // case+ d1es of | list_nil ((*void*)) => d1exp_errexp(loc0) // list_nil | list_cons (d1e1, d1es2) => let val dq = $SYN.d0ynq_none(loc0) val fid = d1exp_dqid(loc0, dq, sym) val d1e1_res = d1exp_seq (loc0, aux3lst(loc0, fid, d1e1, d1es2)) // d1exp_seq // end of [val] val fid2 = d1exp_dqid (loc0, dq, sym2) val d1e2_res = d1exp_app_dyn (loc0, fid2, loc0, ~1(*npf*), list_sing (d1e1)) // d1exp_app_dyn // end of [val] (* val () = fprintln! (out, "auxfprln: d1e1_res = ", d1e1_res) val () = fprintln! (out, "auxfprln: d1e2_res = ", d1e2_res) *) in d1exp_seq(loc0, list_pair(d1e1_res, d1e2_res)) end (* end of [list_cons] *) // end (* end of [auxfprln] *) in (* in of [local] *) (* ****** ****** *) // fun fsyndef_PRINT ( loc0: location, d1es: d1explst ) : d1exp = auxpr (loc0, d1es, symbol_PRINT) // fun fsyndef_PRINTLN ( loc0: location, d1es: d1explst ) : d1exp = ( auxprln (loc0, d1es, symbol_PRINT, symbol_PRINT_NEWLINE) ) (* end of [fsyndef_PRINTLN] *) // (* ****** ****** *) fun fsyndef_PRERR ( loc0: location, d1es: d1explst ) : d1exp = auxpr (loc0, d1es, symbol_PRERR) fun fsyndef_PRERRLN ( loc0: location, d1es: d1explst ) : d1exp = ( auxprln (loc0, d1es, symbol_PRERR, symbol_PRERR_NEWLINE) ) (* end of [fsyndef_PRERRLN] *) (* ****** ****** *) fun fsyndef_FPRINT ( loc0: location, d1es: d1explst ) : d1exp = let // val sym = symbol_FPRINT // in // case+ d1es of | list_nil ( // argless ) => d1exp_errexp (loc0) // | list_cons ( d1e, list_nil() ) => ( case+ d1e.d1exp_node of | D1Elist (npf, d1es) => ( auxfpr (loc0, d1es, sym) ) // end of [D1Elist] | _(*non-D1Elist*) => ( auxfpr(loc0, list_sing(d1e), sym) ) (* end of [_] *) ) (* end of [list_cons] *) // | list_cons(_, _) => auxfpr(loc0, d1es, sym) // end (* end of [fsyndef_FPRINT] *) fun fsyndef_FPRINTLN ( loc0: location, d1es: d1explst ) : d1exp = let // val sym = symbol_FPRINT val sym2 = symbol_FPRINT_NEWLINE // (* val out = stdout_ref // val () = fprintln!(out, "fsyndef_FPRINTLN: d1es = ", d1es) *) // in // case+ d1es of | list_nil ( // argless ) => d1exp_errexp(loc0) // | list_cons ( d1e, list_nil() ) => ( case+ d1e.d1exp_node of | D1Elist (npf, d1es) => ( auxfprln(loc0, d1es, sym, sym2) ) // end of [D1Elist] | _ (*non-D1Elist*) => ( auxfprln(loc0, list_sing(d1e), sym, sym2) ) (* end of [_] *) ) (* end of [list_cons] *) // | list_cons(_, _) => auxfprln(loc0, d1es, sym, sym2) // end (* end of [fsyndef_FPRINTLN] *) (* ****** ****** *) // fun fsyndef_GPRINT ( loc0: location, d1es: d1explst ) : d1exp = ( auxpr(loc0, d1es, symbol_GPRINT) ) // fun fsyndef_GPRINTLN ( loc0: location, d1es: d1explst ) : d1exp = ( auxprln(loc0, d1es, symbol_GPRINT, symbol_GPRINT_NEWLINE) ) (* end of [fsyndef_GPRINTLN] *) // (* ****** ****** *) end // end of [local] (* ****** ****** *) in (* in-of-local *) (* ****** ****** *) implement syndef_search_all (id) = let // (* val () = println! ("syndef_search_all") *) // in // case+ 0 of // | _ when id = symbol_CAR => Some_vt(fsyndef_CAR) | _ when id = symbol_CDR => Some_vt(fsyndef_CDR) // | _ when id = symbol_ISNIL => Some_vt(fsyndef_ISNIL) | _ when id = symbol_ISCONS => Some_vt(fsyndef_ISCONS) | _ when id = symbol_ISLIST => Some_vt(fsyndef_ISLIST) // | _ when id = symbol_TUPZ => Some_vt(fsyndef_TUPZ) // | _ when id = symbol_PRINT => Some_vt(fsyndef_PRINT) | _ when id = symbol_PRINTLN => Some_vt(fsyndef_PRINTLN) | _ when id = symbol_PRERR => Some_vt(fsyndef_PRERR) | _ when id = symbol_PRERRLN => Some_vt(fsyndef_PRERRLN) // | _ when id = symbol_FPRINT => Some_vt(fsyndef_FPRINT) | _ when id = symbol_FPRINTLN => Some_vt(fsyndef_FPRINTLN) // | _ when id = symbol_GPRINT => Some_vt(fsyndef_GPRINT) | _ when id = symbol_GPRINTLN => Some_vt(fsyndef_GPRINTLN) // | _ (* unsupported idext *) => None_vt((*void*)) // end // end of [syndef_search_all] end // end of [local] (* ****** ****** *) implement d1exp_syndef_resolve (loc0, d1e) = let // (* val () = println! ("d1exp_syndef_resolve") *) // in // case+ d1e.d1exp_node of // case+ // | D1Eidextapp (id, d1es) => let val opt = syndef_search_all (id) in case+ opt of | ~None_vt() => d1e | ~Some_vt(f) => let val d1es = list_reverse (d1es) in f (loc0, (l2l)d1es) end // end of [Some_vt] end // end of [D1Eidextapp] // | _ (* non-D1Eidextapp *) => d1e // end (* end of [d1exp_syndef_resolve] *) (* ****** ****** *) (* end of [pats_trans1_syndef.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2_env.sats0000644000175000017500000002024013431250607021453 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol (* ****** ****** *) staload SYMMAP = "./pats_symmap.sats" vtypedef symmap(itm:type) = $SYMMAP.symmap(itm) (* ****** ****** *) staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) // // HX: // [filenv] is introduced in [pats_staexp2.sats]; // using [minus] to indicate the need for the presence // of [filenv] (for otherwise GC may reclaim [filenv] // while the extracted ptr is still in use! // viewtypedef s2temap = symmap (s2rtext) viewtypedef s2itmmap = symmap (s2itm) viewtypedef d2itmmap = symmap (d2itm) fun filenv_make ( fil: filename , m0: s2temap, m1: s2itmmap, m2: d2itmmap, d2cs: d2eclist ) : filenv // end of [filenv_make] (* fun filenv_get_name (fenv: filenv): filename // in [pats_staexp2.sats] // end of [filenv_get_name] *) fun filenv_get_s2temap (fenv: filenv): [l:addr] (s2temap @ l, minus (filenv, s2temap @ l) | ptr l) // end of [filenv_get_s2temap] fun filenv_get_s2itmmap (fenv: filenv): [l:addr] (s2itmmap @ l, minus (filenv, s2itmmap @ l) | ptr l) // end of [filenv_get_s2itmmap] fun filenv_get_d2itmmap (fenv: filenv): [l:addr] (d2itmmap @ l, minus (filenv, d2itmmap @ l) | ptr l) // end of [filenv_get_d2itmmap] fun filenv_get_d2eclist (fenv: filenv): d2eclist (* ****** ****** *) // fun filenv_getref_d3eclistopt (fenv: filenv): Ptr1 (* fun filenv_getref_hideclistopt (fenv: filenv): Ptr1 *) (* ****** ****** *) // fun filenv_getref_tmpcstimpmap (fenv: filenv): Ptr1 fun filenv_getref_tmpvardecmap (fenv: filenv): Ptr1 // (* ****** ****** *) fun the_s2rtenv_add (id: symbol, s2te: s2rtext): void fun the_s2rtenv_find (id: symbol): s2rtextopt_vt fun the_s2rtenv_find_qua (q: $SYN.s0rtq, id: symbol): s2rtextopt_vt (* ****** ****** *) absview s2rtenv_push_v (* ****** ****** *) fun the_s2rtenv_top_clear ((*void*)): void (* ****** ****** *) // fun the_s2rtenv_pop (pf: s2rtenv_push_v | (*none*)): s2temap fun the_s2rtenv_pop_free (pf: s2rtenv_push_v | (*none*)): void fun the_s2rtenv_push_nil (): (s2rtenv_push_v | void) // (* ****** ****** *) fun the_s2rtenv_localjoin ( pf1: s2rtenv_push_v, pf2: s2rtenv_push_v | (*none*) ) : void // end of [the_s2rtenv_localjoin] fun the_s2rtenv_pervasive_joinwth0 (map: s2temap): void fun the_s2rtenv_pervasive_joinwth1 (map: !s2temap): void (* ****** ****** *) fun the_s2expenv_add (id: symbol, s2i: s2itm): void // end of [the_s2expenv_add] fun the_s2expenv_add_scst (s2c: s2cst): void fun the_s2expenv_add_svar (s2v: s2var): void fun the_s2expenv_add_svarlst (s2vs: s2varlst): void fun the_s2expenv_add_sp2at (sp2t: sp2at): void fun the_s2expenv_add_datconptr (d2c: d2con): void fun the_s2expenv_add_datcontyp (d2c: d2con): void fun the_s2expenv_find (id: symbol): s2itmopt_vt fun the_s2expenv_find_qua (q: $SYN.s0taq, id: symbol): s2itmopt_vt fun the_s2expenv_pervasive_find (id: symbol): Option_vt (s2itm) (* ****** ****** *) // absview s2expenv_push_v // (* ****** ****** *) fun the_s2expenv_top_clear ((*void*)): void (* ****** ****** *) // fun the_s2expenv_pop (pf: s2expenv_push_v | (*none*)): s2itmmap fun the_s2expenv_pop_free (pf: s2expenv_push_v | (*none*)): void fun the_s2expenv_push_nil (): (s2expenv_push_v | void) // (* ****** ****** *) fun the_s2expenv_localjoin ( pf1: s2expenv_push_v, pf2: s2expenv_push_v | (*none*) ) : void // end of [the_s2expenv_localjoin] fun the_s2expenv_pervasive_joinwth0 (map: s2itmmap): void fun the_s2expenv_pervasive_joinwth1 (map: !s2itmmap): void (* ****** ****** *) fun the_maclev_get (): int fun the_maclev_inc (loc: location): void fun the_maclev_dec (loc: location): void (* ****** ****** *) fun the_macdeflev_get (): int fun the_macdeflev_inc (): void fun the_macdeflev_dec (): void (* ****** ****** *) fun the_tmplev_get (): int fun the_tmplev_inc (): void fun the_tmplev_dec (): void fun s2var_check_tmplev (loc: location, s2v: s2var): void fun s2qualstlst_set_tmplev (s2qs: s2qualst, tmplev: int): void (* ****** ****** *) absview the_d2varlev_inc_v // fun the_d2varlev_get (): int fun the_d2varlev_inc (): (the_d2varlev_inc_v | void) fun the_d2varlev_dec (pf: the_d2varlev_inc_v | (*none*)): void // fun the_d2varlev_save (): int fun the_d2varlev_restore (lev0: int): void // (* ****** ****** *) // fun the_d2expenv_add (id: symbol, d2i: d2itm): void // fun the_d2expenv_add_dcon (d2c: d2con): void fun the_d2expenv_add_dcst (d2c: d2cst): void fun the_d2expenv_add_dmacdef (d2m: d2mac): void fun the_d2expenv_add_dmacvar (d2v: d2var): void fun the_d2expenv_add_dmacvarlst (d2vs: d2varlst): void fun the_d2expenv_add_dvar (d2v: d2var): void fun the_d2expenv_add_dvarlst (d2vs: d2varlst): void fun the_d2expenv_add_dvaropt (d2vopt: d2varopt): void // fun the_d2expenv_add_fundeclst (knd: funkind, f2ds: f2undeclst): void // (* ****** ****** *) fun the_d2expenv_find (id: symbol): d2itmopt_vt fun the_d2expenv_find_qua (q: $SYN.d0ynq, id: symbol): d2itmopt_vt fun the_d2expenv_current_find (id: symbol): Option_vt (d2itm) fun the_d2expenv_pervasive_find (id: symbol): Option_vt (d2itm) (* ****** ****** *) // absview d2expenv_push_v // (* ****** ****** *) fun the_d2expenv_top_clear ((*void*)): void (* ****** ****** *) // fun the_d2expenv_pop (pf: d2expenv_push_v | (*none*)): d2itmmap fun the_d2expenv_pop_free (pf: d2expenv_push_v | (*none*)): void fun the_d2expenv_push_nil ((*void*)): (d2expenv_push_v | void) // (* ****** ****** *) fun the_d2expenv_localjoin ( pf1: d2expenv_push_v, pf2: d2expenv_push_v | (*none*) ) : void // end of [the_d2expenv_localjoin] fun the_d2expenv_pervasive_joinwth0 (map: d2itmmap): void fun the_d2expenv_pervasive_joinwth1 (map: !d2itmmap): void (* ****** ****** *) // absview staload_level_push_v // fun the_staload_level_get (): int // fun the_staload_level_pop (pf: staload_level_push_v | (*none*)): void // fun the_staload_level_push (): (staload_level_push_v | void) // (* ****** ****** *) fun the_filenvmap_add (fid: symbol, fenv: filenv): void fun the_filenvmap_find (fid: symbol): Option_vt (filenv) (* ****** ****** *) // absview trans2_env_push_v // fun the_trans2_env_pop (pf: trans2_env_push_v | (*none*)): void // fun the_trans2_env_push (): (trans2_env_push_v | void) // fun the_trans2_env_localjoin ( pf1: trans2_env_push_v, pf2: trans2_env_push_v | (*none*) ) : void // end of [trans2_env_localjoin] // (* ****** ****** *) // absview trans2_env_save_v // fun the_trans2_env_save ((*none*)): (trans2_env_save_v | void) fun the_trans2_env_restore (pf: trans2_env_save_v | (*none*)) : (s2temap, s2itmmap, d2itmmap) // (* ****** ****** *) fun the_trans2_env_pervasive_joinwth1 (pf: trans2_env_push_v | fil: filename, d2cs: d2eclist): void // end of [the_trans2_env_pervasive_joinwth1] (* ****** ****** *) fun the_trans2_env_initialize ((*void*)): void (* ****** ****** *) (* end of [pats_trans2_env.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lexing_error.dats0000644000175000017500000001657413431250607022071 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_lexing.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" typedef location = $LOC.location overload fprint with $LOC.fprint_location (* ****** ****** *) implement lexerr_make (loc, node) = '{ lexerr_loc= loc, lexerr_node= node } // end of [lexerr_make] (* ****** ****** *) viewtypedef lexerrlst_vt = List_vt (lexerr) (* ****** ****** *) // // HX-2011-03-12: // [n] stores the total number of errors, some of // which may not be recorded // extern fun the_lexerrlst_get (n: &int? >> int): lexerrlst_vt (* ****** ****** *) local // // HX-2011-03-12: // MAXLEN is the max number of errors to be reported // #define MAXLEN 100 #assert (MAXLEN > 0) val the_length = ref (0) val the_lexerrlst = ref (list_vt_nil) in // in of [local] implement the_lexerrlst_clear () = () where { val () = !the_length := 0 val () = () where { val (vbox pf | p) = ref_get_view_ptr (the_lexerrlst) val () = list_vt_free (!p) val () = !p := list_vt_nil () } // end of [val] } // end of [the_lexerrlst_clear] implement the_lexerrlst_add (err) = () where { val n = let val (vbox pf | p) = ref_get_view_ptr (the_length) val n = !p val () = !p := n + 1 in n end // end of [val] val () = if n < MAXLEN then let val (vbox pf | p) = ref_get_view_ptr (the_lexerrlst) in !p := list_vt_cons (err, !p) end // end of [val] } // end of [the_lexerrlst_add] implement the_lexerrlst_get (n) = xs where { val () = n := !the_length val () = !the_length := 0 val (vbox pf | p) = ref_get_view_ptr (the_lexerrlst) val xs = !p val xs = list_vt_reverse (xs) val () = !p := list_vt_nil () } // end of [the_lexerrlst_get] end // end of [local] (* ****** ****** *) implement fprint_lexerr (out, x) = let val loc = x.lexerr_loc val () = fprint (out, loc) in // case+ x.lexerr_node of | LE_CHAR_oct () => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the char format (oct) is incorrect.", @()) val ((*void*)) = fprint_newline (out) } | LE_CHAR_hex () => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the char format (hex) is incorrect.", @()) val ((*void*)) = fprint_newline (out) } | LE_CHAR_unclose () => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the char consant is unclosed.", @()) val ((*void*)) = fprint_newline (out) } | LE_STRING_char_oct () => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the string-char format (oct) is incorrect.", @()) val ((*void*)) = fprint_newline (out) } | LE_STRING_char_hex () => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the string-char format (hex) is incorrect.", @()) val ((*void*)) = fprint_newline (out) } | LE_STRING_unclose () => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the string constant is unclosed.", @()) val ((*void*)) = fprint_newline (out) } | LE_COMMENT_block_unclose ( ) => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the comment block is unclosed.", @()) val ((*void*)) = fprint_newline (out) } | LE_EXTCODE_unclose () => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the external code block is unclosed.", @()) val ((*void*)) = fprint_newline (out) } | LE_DIGIT_oct_89 (c) => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": illegal digit (oct): %c", @(c)) val ((*void*)) = fprint_newline (out) } | LE_IDIGITS_empty () => () where { // YD-2018-07-10: fix hex int format. val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the integer digits is empty.", @()) val ((*void*)) = fprint_newline (out) } | LE_FEXPONENT_empty () => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the floating exponent is empty.", @()) val ((*void*)) = fprint_newline (out) } | LE_FEXPONENT_missing () => () where { // YD-2018-07-09: fix hex float format. val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the floating exponent is missing.", @()) val ((*void*)) = fprint_newline (out) } | LE_FINTFRAC_missing () => () where { // YD-2018-07-10: fix hex float format. val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": integral or fractional part is missing.", @()) val ((*void*)) = fprint_newline (out) } | LE_QUOTE_dangling () => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": the quote symbol (') is dangling.", @()) val ((*void*)) = fprint_newline (out) } | LE_UNSUPPORTED_char (c) => () where { val () = fprintf (out, ": error(lexing)", @()) val () = fprintf (out, ": unsupported char: %c", @(c)) val ((*void*)) = fprint_newline (out) } (* | _ => () where { val () = fprintf (out, ": error(lexing): unspecified", @()) val () = fprint_newline (out) } *) // end // end of [fprint_lexerr] (* ****** ****** *) implement fprint_the_lexerrlst (out) = let var n: int? val xs = the_lexerrlst_get (n) // fun loop ( out: FILEref, xs: lexerrlst_vt, n: int ) : int = case+ xs of | ~list_vt_cons (x, xs) => let val () = fprint_lexerr (out, x) in loop (out, xs, n-1) end // end of [list_vt_cons] | ~list_vt_nil () => n (* end of [loop] *) // in // case+ xs of | list_vt_cons _ => let prval () = fold@ (xs) val n = loop (out, xs, n) val () = if n > 0 then { val () = fprint_string (out, "There are possibly some additional errors.") val () = fprint_newline (out) } // end of [if] in 1 (* containing errors *) end // end of [list_vt_cons] | ~list_vt_nil () => 0 (* free of errors *) // end // end of [fprint_the_lexerrlst] (* ****** ****** *) (* end of [pats_lexing_error.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2.dats0000644000175000017500000003640313431250607020751 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload STMP = "./pats_stamp.sats" // overload = with $STMP.eq_stamp_stamp // (* ****** ****** *) // staload LEX = "./pats_lexing.sats" // (* ****** ****** *) // staload EFF = "./pats_effect.sats" // macdef effset_isnil = $EFF.effset_isnil macdef effset_isall = $EFF.effset_isall // (* ****** ****** *) staload "./pats_basics.sats" staload "./pats_staexp2.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) implement tyreckind_is_box(knd) = case+ knd of TYRECKINDbox() => true | _ => false // end of [tyreckind_is_box] implement tyreckind_is_boxlin(knd) = case+ knd of TYRECKINDbox_lin() => true | _ => false // end of [tyreckind_is_boxlin] implement tyreckind_is_boxed(knd) = ( // case+ knd of | TYRECKINDbox _ => true | TYRECKINDbox_lin _ => true | _ => false // ) (* end of [tyreckind_is_boxed] *) (* ****** ****** *) implement tyreckind_is_flted(knd) = let in case+ knd of | TYRECKINDflt0 _ => true | TYRECKINDflt1 _ => true | TYRECKINDflt_ext _ => true | _ (*non-flted*) => false end // end of [tyreckind_is_flt] implement tyreckind_is_fltext(knd) = ( case+ knd of TYRECKINDflt_ext _ => true | _ => false ) (* end of [tyreckind_is_fltext] *) (* ****** ****** *) implement tyreckind_is_nameless(knd) = ( // case+ knd of | TYRECKINDbox() => true | TYRECKINDbox_lin() => true | TYRECKINDflt0() => true | TYRECKINDflt1(stmp) => false | TYRECKINDflt_ext(name) => false // ) (* end of [tyreckind_is_nameless] *) (* ****** ****** *) implement eq_tyreckind_tyreckind (knd1, knd2) = let in // case+ (knd1, knd2) of // case+ // | (TYRECKINDbox(), TYRECKINDbox()) => true | (TYRECKINDbox_lin(), TYRECKINDbox_lin()) => true | (TYRECKINDflt0(), TYRECKINDflt0()) => true | (TYRECKINDflt1(stmp1), TYRECKINDflt1(stmp2)) => stmp1 = stmp2 | (TYRECKINDflt_ext(name1), TYRECKINDflt_ext(name2)) => name1 = name2 | (_(*rest*), _(*rest*)) => false // end // end of [eq_tyreckind_tyreckind] implement neq_tyreckind_tyreckind (knd1, knd2) = ( not(eq_tyreckind_tyreckind (knd1, knd2)) ) // end of [neq_tyreckind_tyreckind] (* ****** ****** *) implement sp2at_con (loc, s2c, s2vs) = let // val s2fs = l2l(list_map_fun(s2vs, s2exp_var)) // val s2e_pat = s2exp_cstapp(s2c, s2fs) // in '{ sp2at_loc= loc , sp2at_exp= s2e_pat , sp2at_node = SP2Tcon(s2c, s2vs) } end // end of [sp2at_con] implement sp2at_err (loc) = let val s2t_pat = s2rt_err() val s2e_pat = s2exp_errexp(s2t_pat) in '{ sp2at_loc= loc , sp2at_exp= s2e_pat, sp2at_node= SP2Terr() } end // end of [sp2at_err] (* ****** ****** *) implement s2qua_make (svs, sps) = @{ s2qua_svs= svs, s2qua_sps= sps } // end of [s2qua_make] (* ****** ****** *) // extern castfn s2exp_of_s2exp (x: s2exp): s2exp // macdef hnf = s2exp_of_s2exp // HX: for commenting // (* ****** ****** *) implement s2exp_int (i) = hnf '{ s2exp_srt= s2rt_int, s2exp_node= S2Eint (i) } // end of [s2exp_int] implement s2exp_intinf (i) = hnf '{ s2exp_srt= s2rt_int, s2exp_node= S2Eintinf (i) } // end of [s2exp_intinf] implement s2exp_int_char (c) = s2exp_int (int_of_char(c)) implement s2exp_int_uchar (c) = s2exp_int (int_of_uchar(c)) (* ****** ****** *) implement s2exp_float (rep) = hnf '{ s2exp_srt= s2rt_float, s2exp_node= S2Efloat(rep) } (* end of [s2exp_float] *) (* ****** ****** *) implement s2exp_string (str) = hnf '{ s2exp_srt= s2rt_string, s2exp_node= S2Estring(str) } (* end of [s2exp_string] *) (* ****** ****** *) implement s2exp_cst (s2c) = let val s2t = s2cst_get_srt (s2c) in hnf '{ s2exp_srt= s2t, s2exp_node= S2Ecst (s2c) } end // end of [s2exp_cst] implement s2exp_var (s2v) = let val s2t = s2var_get_srt (s2v) in hnf '{ s2exp_srt= s2t, s2exp_node= S2Evar (s2v) } end // end of [s2exp_var] (* ** HX: for implementing [p2at_trdn_exist] *) implement s2exp_var_srt (s2t, s2v) = hnf '{ s2exp_srt= s2t, s2exp_node= S2Evar (s2v) } // end of [s2exp_var_srt] implement s2exp_Var (s2V) = let val s2t = s2Var_get_srt (s2V) in '{ // HX: this is not hnf! s2exp_srt= s2t, s2exp_node= S2EVar (s2V) } end // end of [s2exp_Var] implement s2exp_hole (s2h) = let val s2t = s2hole_get_srt (s2h) in hnf '{ s2exp_srt= s2t, s2exp_node= S2Ehole (s2h) } end // end of [s2exp_hole] (* ****** ****** *) implement s2exp_extype_srt (s2t, name, s2ess) = hnf '{ s2exp_srt= s2t, s2exp_node= S2Eextype (name, s2ess) } // end of [s2exp_extype_srt] implement s2exp_extkind_srt (s2t, name, s2ess) = hnf '{ s2exp_srt= s2t, s2exp_node= S2Eextkind (name, s2ess) } // end of [s2exp_extkind_srt] (* ****** ****** *) implement s2exp_at (s2e1, s2e2) = hnf '{ s2exp_srt= s2rt_view, s2exp_node= S2Eat (s2e1, s2e2) } // end of [s2exp_at] implement s2exp_sizeof (s2e) = hnf '{ s2exp_srt= s2rt_int, s2exp_node= S2Esizeof (s2e) } // end of [s2exp_sizeof] (* ****** ****** *) implement s2exp_eff (s2fe) = hnf '{ s2exp_srt= s2rt_eff, s2exp_node= S2Eeff (s2fe) } // end of [s2exp_eff] implement s2exp_eqeq (s2e1, s2e2) = hnf '{ s2exp_srt= s2rt_bool, s2exp_node= S2Eeqeq (s2e1, s2e2) } // end of [s2exp_eqeq] implement s2exp_proj (s2rt, s2te, s2ls) = ( case+ s2ls of | list_cons _ => hnf '{ s2exp_srt= s2rt_addr, s2exp_node= S2Eproj (s2rt, s2te, s2ls) } // end of [list_cons] | list_nil () => s2rt ) // end of [s2exp_proj] (* ****** ****** *) implement s2exp_app_srt (s2t, _fun, _arg) = '{ s2exp_srt= s2t, s2exp_node= S2Eapp (_fun, _arg) } // end of [s2exp_app_srt] (* ****** ****** *) implement s2exp_lam (s2vs, s2e_body) = let val s2ts = l2l(list_map_fun(s2vs, s2var_get_srt)) val s2t_fun = s2rt_fun (s2ts, s2e_body.s2exp_srt) in s2exp_lam_srt (s2t_fun, s2vs, s2e_body) end // end of [s2exp_lam] implement s2exp_lam_srt (s2t_fun, s2vs_arg, s2e_body) = '{ s2exp_srt= s2t_fun, s2exp_node= S2Elam (s2vs_arg, s2e_body) } // end of [s2exp_lam_srt] (* ****** ****** *) implement s2exp_lamlst ( s2vss, s2e_body ) = ( case+ s2vss of | list_nil() => s2e_body | list_cons(s2vs, s2vss) => s2exp_lam (s2vs, s2exp_lamlst (s2vss, s2e_body)) // end of [list_cons] ) (* end of [s2exp_lamlst] *) (* ****** ****** *) implement s2exp_fun_srt ( s2t, fc, lin, s2fe, npf, _arg, _res ) = hnf '{ s2exp_srt= s2t, s2exp_node= S2Efun (fc, lin, s2fe, npf, _arg, _res) } // end of [s2exp_fun_srt] implement s2exp_metfun ( opt, s2es_met, s2e_body ) = let val s2t = s2e_body.s2exp_srt in hnf '{ s2exp_srt= s2t , s2exp_node= S2Emetfun (opt, s2es_met, s2e_body) } end // end of [s2exp_metfun] (* ****** ****** *) implement s2exp_metdec ( s2es1, s2es2 ) = hnf '{ s2exp_srt= s2rt_bool, s2exp_node= S2Emetdec (s2es1, s2es2) } // end of [s2exp_metdec] (* ****** ****** *) implement s2exp_cstapp (s2c_fun, s2es_arg) = let val s2t_fun = s2cst_get_srt s2c_fun val s2e_fun = s2exp_cst (s2c_fun) val-S2RTfun (s2ts_arg, s2t_res) = s2t_fun in hnf (s2exp_app_srt (s2t_res, s2e_fun, s2es_arg)) end // end of [s2exp_cstapp] implement s2exp_confun ( npf, s2es_arg, s2e_res ) = hnf '{ s2exp_srt= s2rt_type , s2exp_node= S2Efun ( FUNCLOfun (), 0(*lin*), s2eff_nil, npf, s2es_arg, s2e_res ) // end of [S2Efun] } (* end of [s2exp_confun] *) (* ****** ****** *) implement s2exp_datcontyp (d2c, arg) = let val arity_real = d2con_get_arity_real (d2c) val s2t = ( if arity_real > 0 then s2rt_vtype else s2rt_type ) : s2rt // end of [val] in hnf '{ s2exp_srt= s2t, s2exp_node= S2Edatcontyp (d2c, arg) } end // end of [s2exp_datcontyp] implement s2exp_datconptr (d2c, rt, arg) = let val arity_real = d2con_get_arity_real (d2c) val s2t = ( if arity_real > 0 then s2rt_vtype else s2rt_type ) : s2rt // end of [val] in hnf '{ s2exp_srt= s2t, s2exp_node= S2Edatconptr (d2c, rt, arg) } end // end of [s2exp_datconptr] (* ****** ****** *) implement s2exp_top (knd, s2e) = let // val s2t = s2e.s2exp_srt // val s2t_new = ( if s2rt_is_prf s2t then s2rt_prop else (if s2rt_is_boxed s2t then s2rt_type else s2rt_t0ype) // end of [if] ) : s2rt // end of [val] in s2exp_top_srt (s2t_new, knd, s2e) end // end of [s2exp_top] implement s2exp_top_srt (s2t, knd, s2e) = '{ s2exp_srt= s2t, s2exp_node= S2Etop (knd, s2e) } (* end of [s2exp_top_srt] *) implement s2exp_without (s2e) = '{ s2exp_srt= s2rt_t0ype, s2exp_node= S2Ewithout (s2e) } (* end of [s2exp_without] *) (* ****** ****** *) implement s2exp_tyarr (s2e_elt, dim) = let val s2t = ( if s2exp_is_lin(s2e_elt) then s2rt_vt0ype else s2rt_t0ype ) : s2rt // end of [val in s2exp_tyarr_srt (s2t, s2e_elt, dim) end // end of [s2exp_tyarr] implement s2exp_tyarr_srt (s2t, s2e_elt, dim) = hnf '{ s2exp_srt=s2t, s2exp_node= S2Etyarr (s2e_elt, dim) } // end of [s2exp_tyarr_srt] (* ****** ****** *) implement s2exp_tyrec_srt (s2t, knd, npf, ls2es) = hnf '{ s2exp_srt= s2t, s2exp_node= S2Etyrec (knd, npf, ls2es) } // end of [s2exp_tyrec_srt] (* ****** ****** *) implement s2exp_invar (s2e) = hnf '{ s2exp_srt= s2e.s2exp_srt, s2exp_node= S2Einvar (s2e) } // end of [s2exp_invar] (* ****** ****** *) implement s2exp_refarg (refval, s2e) = '{ s2exp_srt= s2e.s2exp_srt, s2exp_node= S2Erefarg (refval, s2e) } // end of [s2exp_refarg] implement s2exp_vararg (s2e) = hnf '{ s2exp_srt= s2rt_t0ype, s2exp_node= S2Evararg (s2e) } // end of [s2exp_vararg] (* ****** ****** *) implement s2exp_exi ( s2vs, s2ps, s2f ) = case+ (s2vs, s2ps) of | (list_nil (), list_nil ()) => s2f | (_, _) => hnf '{ s2exp_srt= s2f.s2exp_srt, s2exp_node= S2Eexi (s2vs, s2ps, s2f) } // end of [s2exp_exi] // end of [s2exp_exi] implement s2exp_uni ( s2vs, s2ps, s2f ) = case+ (s2vs, s2ps) of | (list_nil (), list_nil ()) => s2f | (_, _) => hnf '{ s2exp_srt= s2f.s2exp_srt, s2exp_node= S2Euni (s2vs, s2ps, s2f) } // end of [s2exp_uni] // end of [s2exp_uni] implement s2exp_exiuni (knd, s2vs, s2ps, s2e) = if knd = 0 then s2exp_exi (s2vs, s2ps, s2e) else s2exp_uni (s2vs, s2ps, s2e) (* end of [if] *) // end of [s2exp_exiuni] implement uns2exp_exiuni ( knd, s2f, s2vs, s2ps, scope ) = case+ s2f.s2exp_node of | S2Eexi (s2vs1, s2ps1, s2e1) when knd = 0 => (s2vs := s2vs1; s2ps := s2ps1; scope := s2e1; true) | S2Euni (s2vs1, s2ps1, s2e1) when knd = 1 => (s2vs := s2vs1; s2ps := s2ps1; scope := s2e1; true) | _ => let val () = s2vs := list_nil and () = s2ps := list_nil val () = scope := s2f // dummy value in false end // end of [_] // end of [uns2exp_exiuni] (* ****** ****** *) implement s2exp_unis (s2qs, s2f) = case+ s2qs of | list_nil () => s2f | list_cons (s2q, s2qs) => ( s2exp_uni (s2q.s2qua_svs, s2q.s2qua_sps, s2exp_unis (s2qs, s2f)) ) // end of [list_cons] // end of [s2exp_unis] (* ****** ****** *) implement s2exp_wthtype (s2e, wths2es) = '{ s2exp_srt= s2e.s2exp_srt, s2exp_node= S2Ewthtype (s2e, wths2es) } // end of [s2exp_wthtype] (* ****** ****** *) // implement s2exp_errexp(s2t) = '{ s2exp_srt= s2t, s2exp_node= S2Eerrexp() } (* end of [s2exp_err] *) // implement s2exp_s2rt_err() = s2exp_errexp(s2rt_err()) implement s2exp_t0ype_err() = s2exp_errexp(s2rt_t0ype) // (* ****** ****** *) implement s2exp_refeq (s2e1, s2e2) = ( $UN.cast2ptr(s2e1) = $UN.cast2ptr(s2e2) ) // end of [s2exp_refeq] (* ****** ****** *) implement s2exp_is_prf (s2e) = s2rt_is_prf(s2e.s2exp_srt) // end of [s2exp_is_prf] implement s2exp_is_nonprf(s2e) = not(s2exp_is_prf(s2e)) implement s2exp_is_lin (s2e) = s2rt_is_lin(s2e.s2exp_srt) // end of [s2exp_is_lin] implement s2exp_is_nonlin(s2e) = not(s2exp_is_lin(s2e)) implement s2exp_is_boxed (s2e) = s2rt_is_boxed (s2e.s2exp_srt) // end of [s2exp_is_boxed] (* ****** ****** *) implement s2exp_is_prgm (s2e) = s2rt_is_prgm (s2e.s2exp_srt) // end of [s2exp_is_prgm] implement s2exp_is_impred (s2e) = s2rt_is_impred (s2e.s2exp_srt) // end of [s2exp_is_impred] (* ****** ****** *) implement s2exp_is_FUNCLOfun (s2e0) = let // fun aux (s2e0: s2exp): bool = ( case+ s2e0.s2exp_node of | S2Efun ( fc, lin, s2fe, npf, s2es_arg, s2e_res ) => ( case+ fc of FUNCLOfun () => true | _ => false ) | S2Euni (_, _, s2e) => aux (s2e) | S2Eexi (_, _, s2e) => aux (s2e) | S2Emetfun (_, _, s2e) => aux (s2e) | _ => false ) (* end of [aux] *) // in aux (s2e0) end // end of [s2exp_is_FUNCLOfun] (* ****** ****** *) implement s2eff_nil = S2EFFset ($EFF.effset_nil) implement s2eff_all = S2EFFset ($EFF.effset_all) implement s2eff_effset (efs) = S2EFFset (efs) implement s2eff_var (s2v) = let val s2e = s2exp_var (s2v) in S2EFFexp (s2e) end // end of [s2eff_var] implement s2eff_exp (s2e) = S2EFFexp (s2e) implement s2eff_add (s2fe1, s2fe2) = ( case+ (s2fe1, s2fe2) of | (S2EFFset (efs1), _) when effset_isnil efs1 => s2fe2 | (_, S2EFFset (efs2)) when effset_isnil efs2 => s2fe1 | (S2EFFset (efs1), _) when effset_isall efs1 => s2eff_all | (_, S2EFFset (efs2)) when effset_isall efs2 => s2eff_all | (S2EFFset efs1, S2EFFset efs2) => let val efs = $EFF.effset_union (efs1, efs2) in s2eff_effset (efs) end // end of [S2EFFset, S2EFFset] | (_, _) => S2EFFadd (s2fe1, s2fe2) ) // end of [s2eff_add] (* ****** ****** *) implement s2exparg_one (loc) = '{ s2exparg_loc= loc, s2exparg_node= S2EXPARGone () } implement s2exparg_all (loc) = '{ s2exparg_loc= loc, s2exparg_node= S2EXPARGall () } implement s2exparg_seq (loc, s2fs) = '{ s2exparg_loc= loc, s2exparg_node= S2EXPARGseq (s2fs) } (* end of [s2exparg_seq] *) (* ****** ****** *) implement t2mpmarg_make (loc, s2fs) = '{ t2mpmarg_loc= loc, t2mpmarg_arg= s2fs } (* end of [t2mpmarg_make] *) (* ****** ****** *) implement s2tavar_make (loc, s2v) = '{ s2tavar_loc= loc, s2tavar_var= s2v } (* end of [s2tavar_make] *) implement s2aspdec_make (loc, s2c, def) = '{ s2aspdec_loc= loc, s2aspdec_cst= s2c, s2aspdec_def= def } (* end of [s2aspdec_make] *) (* ****** ****** *) implement synentlst_app (xs, env, app) = ( case+ xs of | list_nil () => () | list_cons (x, xs) => (app (x, env); synentlst_app (xs, env, app)) // end of [list_cons] ) (* end of [synentlst_app] *) (* ****** ****** *) (* end of [pats_staexp2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_reader.dats0000644000175000017500000001603613431250607020625 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_reader.sats" (* ****** ****** *) viewtypedef freader (v:view) = $extype_struct "pats_reader_struct" of { pfres= v , getchar= (!v | (*none*)) - int , freeres= ( v | (*none*)) - void } // end of [freader] (* ****** ****** *) absviewt@ype reader0 = reader? // for initialization (* ****** ****** *) local // staload "libc/SATS/stdio.sats" // assume reader0 = freader (unit_v)? assume reader_vt0ype = [v:view] freader (v) // in (* in of [local] *) (* ****** ****** *) // implement reader_get_char (r) = r.getchar (r.pfres | (*none*)) // (* ****** ****** *) fun reader0_initize_filp {m:fmode}{l0:addr} ( pfmod: file_mode_lte(m,r) , pffil: FILE(m) @ l0 | r: &reader0 >> reader, p0: ptr l0 ) : void = () where { // viewdef v = FILE(m) @ l0 // val getchar = lam (pffil: !v | (*none*)): int = fgetc_err (pfmod | !p0) // end of [getchar] // val freeres = lam (pffil: v | (*none*)): void = fclose_exn (pffil | p0) // prval () = r.pfres := pffil // val ((*void*)) = r.getchar := getchar val ((*void*)) = r.freeres := freeres // } (* end of [reader0_initize_filp] *) (* ****** ****** *) fun reader0_initize_getc ( r: &reader0 >> reader, getc: () - int ) : void = () where { viewdef v = unit_v val getchar = __cast (getc) where { extern castfn __cast (f: () - int): (!v | (*none*)) - int // end of [extern] } // end of [val] val freeres = lam ( pf: v | (*none*) ) : void = let prval unit_v () = pf in (*none*) end val () = r.pfres := unit_v () val () = r.getchar := getchar val () = r.freeres := freeres } // end of [reader0_initize_getc] (* ****** ****** *) fun reader0_initize_string {n:nat} {l:addr} ( pfgc: free_gc_v (size_t?, l) , pfat: sizeLte n @ l | r: &reader0 >> reader, inp: string n, p: ptr l ) : void = () where { // viewdef v = ( free_gc_v (size_t?, l), sizeLte n @ l ) // end of [viewdef] // val getchar = lam (pf: !v | (*none*)): int = let prval pf1 = pf.1 val i = !p prval () = pf.1 := pf1 val isnotend = string_isnot_atend (inp, i) in if isnotend then let val c = string_get_char_at (inp, i) prval pf1 = pf.1 val () = !p := i + 1 prval () = pf.1 := pf1 in (int_of_char)c end else ~1 (*EOF*) // end of [if] end // end of [val] // val freeres = lam (pf: v | (*none*)): void = ptr_free (pf.0, pf.1 | p) // end of [freeres] // val () = r.pfres := (pfgc, pfat) val () = r.getchar := getchar val () = r.freeres := freeres } // end of [reader0_initize_string] (* ****** ****** *) local // viewtypedef cs = List_vt (char) // in (* in of [local] *) fun reader0_initize_charlst_vt {l:addr} ( pfgc: free_gc_v (cs?, l) , pfat: cs @ l | r: &reader0 >> reader, p: ptr l ) : void = () where { // viewdef v = ( free_gc_v (cs?, l), cs @ l ) // end of [viewdef] // val getchar = lam ( pf: !v | (*none*) ) : int = let prval pf1 = pf.1 // for dereferencing [p] in case+ !p of | ~list_vt_cons (c, cs) => let val () = !p := cs; prval () = pf.1 := pf1 in int_of_uchar (uchar_of_char (c)) end // end of [list_vt_cons] | list_vt_nil () => let prval () = fold@ (!p); prval () = pf.1 := pf1 in ~1 (*EOF*) end // end of [list_vt_nil] end // end of [lam] // end of [val] // val freeres = lam ( pf: v | (*none*) ) : void = let prval (pf0, pf1) = pf val () = list_vt_free (!p) in ptr_free (pf0, pf1 | p) end // end of [freeres] // val () = r.pfres := (pfgc, pfat) val () = r.getchar := getchar val () = r.freeres := freeres } // end of [reader0_initize_charlst_vt] end // end of [local] (* ****** ****** *) fun reader0_uninitize ( r: &reader >> reader0 ) : void = () where { stavar v: view prval pf = r.pfres : v val () = r.freeres (pf | (*none*)) val () = cloptr_free (r.getchar) val () = cloptr_free (r.freeres) prval () = __assert (r) where { extern prfun __assert (r: &freader(v)? >> reader0): void } // end of [prval] } // end of [reader0_uninitize] (* ****** ****** *) end // end of [local] (* ****** ****** *) local extern prfun reader0_encode (r: &reader? >> reader0): void extern prfun reader0_decode (r: &reader0 >> reader?): void in // in of [local] (* ****** ****** *) implement reader_initize_filp ( pfmod, pffil | r, p ) = () where { // prval () = reader0_encode (r) // val ((*void*)) = reader0_initize_filp (pfmod, pffil | r, p) // } // end of [reader_initize_filp] (* ****** ****** *) implement reader_initize_getc (r, getc) = () where { // prval () = reader0_encode (r) // val ((*void*)) = reader0_initize_getc (r, getc) // } // end of [reader_initize_getc] (* ****** ****** *) implement reader_initize_string (r, inp) = () where { // val inp = string1_of_string inp val (pfgc, pfat | p) = ptr_alloc () val () = !p := size1_of_int1 (0) // prval () = reader0_encode (r) // val () = reader0_initize_string (pfgc, pfat | r, inp, p) // } (* end of preader_initize_string] *) (* ****** ****** *) implement reader_initize_charlst_vt (r, inp) = () where { val ( pfgc, pfat | p ) = ptr_alloc () // val () = !p := inp // prval () = reader0_encode (r) // val ((*void*)) = reader0_initize_charlst_vt (pfgc, pfat | r, p) // } (* end of preader_initize_charlst_vt] *) (* ****** ****** *) implement reader_uninitize (r) = () where { // val () = reader0_uninitize (r) // prval ((*void*)) = reader0_decode (r) // } (* end of [reader_uninitize] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [pats_reader.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_depgen.dats0000644000175000017500000002420013431250607020615 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: August, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload GLOB = "./pats_global.sats" staload FIL = "./pats_filename.sats" (* ****** ****** *) staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_depgen.sats" (* ****** ****** *) typedef path = string typedef pathlst = List (path) viewtypedef pathlst_vt = List_vt (path) (* ****** ****** *) // extern fun pathtry_givename (given: string): Option_vt (string) // (* ****** ****** *) implement pathtry_givename(given) = let // extern castfn p2s{l:agz}(x: !strptr l):<> string // (* val () = printf ( "pathtry_givename: given = %s\n", @(given) ) (* printf *) *) // fun loop ( ps: List(string), given: string ) : Option_vt(string) = let (* val () = printf("pathtry_givename: loop\n") *) in case+ ps of | list_nil () => None_vt() // end of [list_nil] | list_cons (p, ps) => let val pname = $FIL.filename_dirbase(p, given) (* val test = true *) val test = test_file_exists((p2s)pname) // end of [val] in if (test) then let val pname_norm = $FIL.path_normalize((p2s)pname) val ((*freed*)) = strptr_free(pname) in Some_vt(pname_norm) end // end of [then] else loop(ps, given) where { val ((*freed*)) = strptr_free(pname) } (* end of [else] *) end // end of [list_cons] end // end of [loop] // val knd = $FIL.givename_srchknd(given) // in // case+ knd of // | 0 => let // local: ./ val fil = $FIL.filename_get_current() val pname = $FIL.filename_get_partname(fil) val pname2 = $FIL.filename_merge(pname, given) val isexi = test_file_exists((p2s)pname2) in if isexi then let val pname2_norm = $FIL.path_normalize((p2s)pname2) val ((*freed*)) = strptr_free(pname2) in Some_vt(pname2_norm) end else let val ((*freed*)) = strptr_free(pname2) in None_vt() end // end of [else] end // end of [0] // | 1 => None_vt() // $PATSHOMELOCS // (* | _ (*non-local*) => None_vt(*void*) *) | _ (*non-local*) => loop($GLOB.the_IATS_dirlst_get(), given) // end // end of [pathtry_givename] (* ****** ****** *) // extern fun pathtry_staloadarg (arg: staloadarg): Option_vt(string) // implement pathtry_staloadarg(arg) = ( case+ arg of | STLDfname (loc, name) => pathtry_givename(name) // end of [STLDfname] | _(*non-STLDfname*) => None_vt((*void*)) ) (* end of [pathtry_staloadarg] *) // (* ****** ****** *) typedef depgen_ftype (a: type) = (a, &pathlst_vt) -> void // end of [depgen_ftype] (* ****** ****** *) // extern fun depgen_d0exp : depgen_ftype(d0exp) and depgen_d0explst : depgen_ftype(d0explst) and depgen_d0expopt : depgen_ftype(d0expopt) and depgen_labd0explst : depgen_ftype(labd0explst) // extern fun depgen_d0ecl : depgen_ftype(d0ecl) and depgen_d0eclist : depgen_ftype(d0eclist) and depgen_guad0ecl_node : depgen_ftype(guad0ecl_node) // (* ****** ****** *) implement depgen_d0exp (d0e0, res) = let in // case+ d0e0.d0exp_node of // | D0Eide _ => () | D0Edqid _ => () | D0Eopid _ => () // | D0Eidext _ => () // | D0Eint _ => () | D0Echar _ => () | D0Efloat _ => () | D0Estring _ => () // | D0Eempty () => () | D0Ecstsp _ => () | D0Eextval _ => () // | D0Eloopexn _ => () // | D0Efoldat(d0es) => depgen_d0explst (d0es, res) | D0Efreeat(d0es) => depgen_d0explst (d0es, res) // | D0Etmpid _ => () // | D0Elet(d0cs1, d0e2) => let val () = depgen_d0eclist (d0cs1, res) in depgen_d0exp (d0e2, res) end // end of [D0Elet] | D0Edeclseq(d0cs) => depgen_d0eclist (d0cs, res) | D0Ewhere(d0e1, d0cs2) => let val () = depgen_d0eclist (d0cs2, res) in depgen_d0exp (d0e1, res) end // end of [D0Ewhere] // | D0Eapp(d0e1, d0e2) => let val () = depgen_d0exp (d0e1, res) val () = depgen_d0exp (d0e2, res) in // nothing end // end of [D0Eapp] // | D0Elist(npf, d0es) => depgen_d0explst (d0es, res) // | D0Eifhead ( hd, _cond, _then, _else ) => let val () = depgen_d0exp (_cond, res) val () = depgen_d0exp (_then, res) val () = depgen_d0expopt (_else, res) in // nothing end // end of [D0Eifhead] | D0Esifhead ( hd, _cond, _then, _else ) => let val () = depgen_d0exp (_then, res) val () = depgen_d0exp (_else, res) in // nothing end // end of [D0Esifhead] // | D0Eseq(d0es) => depgen_d0explst(d0es, res) // | D0Elst(lin, elt, d0e) => depgen_d0exp(d0e, res) // | D0Etup(knd, npf, d0es) => depgen_d0explst(d0es, res) // | D0Erec(knd, npf, ld0es) => depgen_labd0explst(ld0es, res) // | _ (* rest-of-d0exp *) => ((*nothing*)) // end // end of [depgen_d0exp] (* ****** ****** *) implement depgen_d0explst (xs, res) = ( // case+ xs of | list_cons (x, xs) => let val () = depgen_d0exp (x, res) in depgen_d0explst (xs, res) end // end of [list_cons] | list_nil () => () // ) // end of [depgen_d0explst] implement depgen_d0expopt (opt, res) = ( // case+ opt of | Some (d0e) => depgen_d0exp (d0e, res) | None () => () // ) // end of [depgen_d0expopt] (* ****** ****** *) implement depgen_labd0explst (lxs, res) = ( // case+ lxs of | list_nil() => () | list_cons(lx, lxs) => let val DL0ABELED(l, x) = lx val () = depgen_d0exp(x, res) in depgen_labd0explst(lxs, res) end // end of [list_cons] // ) // end of [depgen_labd0explst] (* ****** ****** *) implement depgen_d0ecl (d0c0, res) = let (* val () = println! ("depgen_d0ecl") *) in // case+ d0c0.d0ecl_node of // | D0Cinclude (pfil, _, given) => let val opt = pathtry_givename(given) in case+ opt of | ~None_vt() => () | ~Some_vt(pname) => (res := list_vt_cons(pname, res)) // end of [Some_vt] end // end of [DOCinclude] // | D0Cstaload (pfil, _, given) => let val opt = pathtry_givename(given) in case+ opt of | ~None_vt() => () | ~Some_vt(pname) => (res := list_vt_cons(pname, res)) // end of [Some_vt] end // end of [D0Cstaload] // | D0Cstaloadloc (pfil, nspace, d0cs) => depgen_d0eclist (d0cs, res) // | D0Clocal (d0cs_head, d0cs_body) => { val () = depgen_d0eclist (d0cs_head, res) val () = depgen_d0eclist (d0cs_body, res) } (* end of [D0Clocal] *) // | D0Cguadecl (knd, gd0c) => depgen_guad0ecl_node (gd0c.guad0ecl_node, res) // end of [D0Cguadecl] // | _ (* rest-of-d0ecl *) => ((*void*)) // end // end of [depgen_d0ecl] (* ****** ****** *) implement depgen_d0eclist (xs, res) = ( // case+ xs of | list_nil() => () | list_cons(x, xs) => let val () = depgen_d0ecl(x, res) in depgen_d0eclist(xs, res) end // end of [list_cons] // ) // end of [depgen_d0eclist] (* ****** ****** *) implement depgen_guad0ecl_node (x, res) = let in // case+ x of | GD0Cone(gua, d0cs) => depgen_d0eclist(d0cs, res) | GD0Ctwo (gua, d0cs1, d0cs2) => let val () = depgen_d0eclist(d0cs1, res) val () = depgen_d0eclist(d0cs2, res) in // nothing end // end of [GD0Ctwo] | GD0Ccons (gua, d0cs1, knd, x2) => let val () = depgen_d0eclist(d0cs1, res) val () = depgen_guad0ecl_node(x2, res) in // nothing end // end of [GD0Ccons] // end // end of [depgen_guad0ecl_node] (* ****** ****** *) implement depgen_eval(d0cs) = list_vt_reverse(res) where { // var res: pathlst_vt = list_vt_nil() // val () = depgen_d0eclist(d0cs, res) // } (* end of [depgen_eval] *) (* ****** ****** *) implement fprint_target (out, given) = let // val [n:int] given = string1_of_string(given) // val k = string_index_of_char_from_right(given, '.') // in // case+ 0 of | _ when k >= 0 => let fun fpr {i:nat | i <= n} .. ( out: FILEref , given: string n , k: size_t(*un*), i: size_t(i) ) : void = let val not = string_isnot_atend(given, i) // end of [val] in if not then let val c = ( if i = k then '_' else given[i] ) : char // end of [val] in fprint_char(out, c); fpr(out, given, k, i+1) end // end of [if] end (* end of [fpr] *) val k = size_of_ssize(k) in fpr(out, given, k, 0); fprint_string(out, ".o") end // end of [_ when ...] | _ (*~found*) => fprint_string (out, given) // end // end of [fprint_target] (* ****** ****** *) implement fprint_entlst (out, given, ents) = let // fun loop ( out: FILEref, i: int, ents: pathlst_vt ) : void = let in // case+ ents of | ~list_vt_nil ((*void*)) => () // end of [list_vt_nil] | ~list_vt_cons (ent, ents) => let val () = ( if i > 0 then fprint_char (out, ' ') ) : void val () = fprint_string (out, ent) in loop (out, i + 1, ents) end // end of [list_vt_cons] // end // val () = fprint_target(out, given) val () = fprint_string(out, " : ") val () = loop(out, 0, ents) val () = fprint_newline(out) // in // nothing end // end of [fprint_entlst] (* ****** ****** *) (* end of [pats_depgen.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lintprgm_myint.cats0000644000175000017500000000317313431250607022434 0ustar brandonbrandon/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. */ /* ****** ****** */ // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Time: March, 2012 // /* ****** ****** */ #ifndef PATS_LINTPRGM_MYINT_CATS #define PATS_LINTPRGM_MYINT_CATS typedef ats_int_type intknd ; // -> int typedef ats_ptr_type gmpknd ; // -> intinf in libats/SATS/intinf.sats #endif // end of [PATS_LINTPRGM_MYINT_CATS] /* ****** ****** */ /* end of [pats_lintprgm_myint.cats] */ ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_error.dats0000644000175000017500000002012113431250607022150 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_staexp2_error" (* ****** ****** *) staload LOC = "./pats_location.sats" typedef location = $LOC.location macdef print_location = $LOC.print_location (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) local #define MAXLEN 100 #assert (MAXLEN > 0) val the_length = ref (0) val the_staerrlst = ref (list_vt_nil) in // in of [local] implement the_staerrlst_clear () = () where { val () = !the_length := 0 val () = () where { val (vbox pf | p) = ref_get_view_ptr (the_staerrlst) val () = list_vt_free (!p) val () = !p := list_vt_nil () } // end of [val] } // end of [the_staerrlst_clear] implement the_staerrlst_add (err) = () where { val n = let val (vbox pf | p) = ref_get_view_ptr (the_length) val n = !p val () = !p := n + 1 in n end // end of [val] val () = if n < MAXLEN then let val (vbox pf | p) = ref_get_view_ptr (the_staerrlst) in !p := list_vt_cons (err, !p) end // end of [val] } // end of [the_staerrlst_add] implement the_staerrlst_get (n) = xs where { val () = n := !the_length val () = !the_length := 0 val (vbox pf | p) = ref_get_view_ptr (the_staerrlst) val xs = !p val xs = list_vt_reverse (xs) val () = !p := list_vt_nil () } // end of [the_staerrlst_get] end // end of [local] (* ****** ****** *) local fn prerr_staerr_funclo_equal ( loc: location, fc1: funclo, fc2: funclo ) : void = begin prerr_error3_loc (loc); prerr ": function/closure mismatch:\n"; prerr "The actual funclo kind is: "; prerr_funclo fc1; prerr_newline (); prerr "The needed funclo kind is: "; prerr_funclo fc2; prerr_newline (); end // end of [prerr_staerr_funclo_equal] fn prerr_staerr_clokind_equal ( loc: location, knd1: int, knd2: int ) : void = begin prerr_error3_loc (loc); prerr ": closure mismatch:\n"; prerr "The actual closure kind is: "; prerr_int knd1; prerr_newline (); prerr "The needed closure kind is: "; prerr_int knd2; prerr_newline (); end // end of [prerr_staerr_clokind_equal] fn prerr_staerr_linearity_equal ( loc: location, lin1: int, lin2: int ) : void = let macdef prlin (lin) = prerr_string (if ,(lin) > 0 then "linear" else "nonlinear") // end of [macdef] in prerr_error3_loc (loc); prerr ": linearity mismatch:\n"; prerr "The actual linearity is: "; prlin (lin1); prerr_newline (); prerr "The needed linearity is: "; prlin (lin2); prerr_newline (); end // end of [prerr_staerr_linearity_equal] fn prerr_staerr_pfarity_equal ( loc: location, npf1: int, npf2: int ) : void = begin prerr_error3_loc (loc); prerr ": proof arity mismatch:\n"; prerr "The actual proof arity is: "; prerr_int npf1; prerr_newline (); prerr "The needed proof arity is: "; prerr_int npf2; prerr_newline (); end // end of [prerr_staerr_pfarity_equal] (* ****** ****** *) fn prerr_staerr_s2eff_subeq ( loc: location, s2fe1: s2eff, s2fe2: s2eff ) : void = begin prerr_error3_loc (loc); prerr ": maybe incurring disallowed effects:\n"; prerr "The actual effects are: "; prerr_s2eff s2fe1; prerr_newline (); prerr "The allowed effects are: "; prerr_s2eff s2fe2; prerr_newline (); end // end of [prerr_staerr_s2eff_subeq] (* ****** ****** *) fn prerr_staerr_boxity_equal ( loc: location, knd1: int, knd2: tyreckind ) : void = let // val () = prerr_error3_loc (loc) val () = prerr ": boxity mismatch" val () = prerr_newline () // in // nothing end // end of [prerr_staerr_boxity_equal] fn prerr_staerr_tyreckind_equal ( loc: location, knd1: tyreckind, knd2: tyreckind ) : void = let // val () = prerr_error3_loc (loc) val () = prerr ": tyreckind mismatch: " val () = prerr_tyreckind (knd1) val () = prerr " <> " val () = prerr_tyreckind (knd2) val () = prerr_newline () // in // nothing end // end of [prerr_staerr_boxity_equal] (* ****** ****** *) fn prerr_staerr_s2exp_equal ( loc: location, s2e1: s2exp, s2e2: s2exp ) : void = begin prerr_error3_loc (loc); prerr ": mismatch of static terms (equal):\n"; prerr "The actual term is: "; pprerr_s2exp (s2e1); prerr_newline (); prerr "The needed term is: "; pprerr_s2exp (s2e2); prerr_newline (); end // end of [prerr_staerr_s2exp_equal] fn prerr_staerr_s2exp_tyleq ( loc: location, s2e1: s2exp, s2e2: s2exp ) : void = begin prerr_error3_loc (loc); prerr ": mismatch of static terms (tyleq):\n"; prerr "The actual term is: "; pprerr_s2exp (s2e1); prerr_newline (); prerr "The needed term is: "; pprerr_s2exp (s2e2); prerr_newline (); end // end of [prerr_staerr_s2exp_tyleq] fn prerr_staerr_s2Var_s2exp_solve ( loc: location, s2V1: s2Var, s2e2: s2exp ) : void = let val s2t1 = s2Var_get_srt (s2V1) // end of [val] val s2t2 = s2e2.s2exp_srt in prerr_error3_loc (loc); prerr ": mismatch of sorts in unification:\n"; (* prerr "The sVar of variable is: "; prerr_s2Var (s2V1); prerr_newline (); *) prerr "The sort of variable is: "; prerr_s2rt (s2t1); prerr_newline (); (* prerr "The sexp of solution is: "; pprerr_s2exp (s2e2); prerr_newline (); *) prerr "The sort of solution is: "; prerr_s2rt (s2t2); prerr_newline (); end // end of [prerr_staerr_s2Var_s2exp_solve] in // in of [local] implement prerr_the_staerrlst () = let // fun loop ( xs: staerrlst_vt ) : void = let in // case+ xs of | ~list_vt_cons (x, xs) => let val () = (case+ x of // | STAERR_funclo_equal (loc, fc1, fc2) => prerr_staerr_funclo_equal (loc, fc1, fc2) | STAERR_clokind_equal (loc, knd1, knd2) => prerr_staerr_clokind_equal (loc, knd1, knd2) | STAERR_linearity_equal (loc, lin1, lin2) => prerr_staerr_linearity_equal (loc, lin1, lin2) | STAERR_pfarity_equal (loc, npf1, npf2) => prerr_staerr_pfarity_equal (loc, npf1, npf2) // | STAERR_s2eff_subeq (loc, s2fe1, s2fe2) => prerr_staerr_s2eff_subeq (loc, s2fe1, s2fe2) // | STAERR_boxity_equal (loc, knd1, knd2) => prerr_staerr_boxity_equal (loc, knd1, knd2) | STAERR_tyreckind_equal (loc, knd1, knd2) => prerr_staerr_tyreckind_equal (loc, knd1, knd2) // | STAERR_s2exp_equal (loc, s2e1, s2e2) => prerr_staerr_s2exp_equal (loc, s2e1, s2e2) | STAERR_s2exp_tyleq (loc, s2e1, s2e2) => prerr_staerr_s2exp_tyleq (loc, s2e1, s2e2) // | STAERR_s2Var_s2exp_solve (loc, s2V1, s2e2) => prerr_staerr_s2Var_s2exp_solve (loc, s2V1, s2e2) // | _ => () ) : void // end of [case] // end of [val] in loop (xs) end // end of [list_vt_cons] | ~list_vt_nil () => () // end // end of [loop] // var n: int val xs = the_staerrlst_get (n) // in loop (xs) end // end of [prerr_the_staerrlst] end // end of [local] (* ****** ****** *) (* end of [pats_staexp2_error.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans2_p1at.dats0000644000175000017500000005375013431250607021525 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans2_p1at" (* ****** ****** *) staload LAB = "./pats_label.sats" macdef label_make_int = $LAB.label_make_int staload SYM = "./pats_symbol.sats" overload = with $SYM.eq_symbol_symbol staload SYN = "./pats_syntax.sats" typedef d0ynq = $SYN.d0ynq (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_e1xpval.sats" staload "./pats_dynexp1.sats" staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans2.sats" staload "./pats_trans2_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) fun p1at_tr_ide ( p1t0: p1at, id: symbol ) : p2at = let val loc0 = p1t0.p1at_loc val ans = the_d2expenv_find (id) in // case+ ans of | ~Some_vt d2i => begin case+ d2i of | D2ITMe1xp e1xp => let val p1t = p1at_make_e1xp (loc0, e1xp) in p1at_tr (p1t) end // end of [D2ITEMe1xp] // // HX: for handling [true] and [false] patterns // | D2ITMcst d2c => let val sym = d2cst_get_sym (d2c) in case+ 0 of | _ when sym = $SYM.symbol_TRUE_BOOL => p2at_bool (loc0, true) | _ when sym = $SYM.symbol_FALSE_BOOL => p2at_bool (loc0, false) | _ => p2at_var (loc0, d2var_make (loc0, id)) // end of [val] end // end of [D2ITEMcst] // | _ => p2at_var (loc0, d2var_make (loc0, id)) end // end of [Some_vt] | ~None_vt () => p2at_var (loc0, d2var_make (loc0, id)) end // end of [p1at_tr_ide] (* ****** ****** *) extern fun p1at_tr_app_dyn ( p1t0: p1at, p1t_fun: p1at, npf: int, darg: p1atlst ) : p2at // end of [p1at_tr_app_dyn] extern fun p1at_tr_app_sta_dyn ( p1t0: p1at, p1t1: p1at , p1t_fun: p1at, sarg: s1vararglst, npf: int, darg: p1atlst ) : p2at // end of [p1at_tr_app_sta_dyn] (* ****** ****** *) fun p1atconarg_is_omit (arg: p1atlst): bool = let in // case+ arg of | list_cons ( p1t, list_nil () ) => ( case+ p1t.p1at_node of P1Tany _ => true | _ => false ) // end of [list_cons] | _ => false // end of [_] // end // end of [p1atconarg_is_omit] fun p1at_tr_con_sapp1 ( loc0: location // p1t1.p1at_loc , d2c: d2con, sub: &stasub , s2qs: s2qualst, out: &List_vt(s2qua) ) : s2exp = let in // case+ s2qs of | list_cons (s2q, s2qs) => let val s2vs = stasub_extend_svarlst (sub, s2q.s2qua_svs) // end of [val] val s2vs = (l2l)s2vs val s2ps = s2explst_subst (sub, s2q.s2qua_sps) val s2q = s2qua_make (s2vs, s2ps) val () = out := list_vt_cons (s2q, out) in p1at_tr_con_sapp1 (loc0, d2c, sub, s2qs, out) end // end of [cons] | list_nil () => let val npf = d2con_get_npf (d2c) val s2es_arg = s2explst_subst (sub, d2con_get_arg d2c) val s2c = d2con_get_scst (d2c) val indopt = d2con_get_ind (d2c) val s2f_res = ( case+ indopt of | Some s2es_ind => let val s2es_ind = s2explst_subst (sub, s2es_ind) in s2exp_cstapp (s2c, s2es_ind) end // end of [Some] | None () => s2exp_cst (s2c) // end of [None] ) : s2exp // end of [val] val () = out := list_vt_reverse (out) in s2exp_confun (npf, s2es_arg, s2f_res) end // end of [list_nil] // end // end of [p1at_tr_con_sapp1] fun p1at_tr_con_sapp2 ( p1t1: p1at , d2c: d2con, sub: &stasub, s2qs: s2qualst, s1as: s1vararglst , out: &s2qualst_vt ) : s2exp = let (* val () = ( print "p1at_tr_con_sapp2: d2c.type = "; print_s2exp (d2con_get_type d2c); print_newline () ) // end of [val] *) fn auxerr1 ( p1t1: p1at, d2c: d2con ) : void = let val () = prerr_error2_loc (p1t1.p1at_loc) val () = prerr ": the constructor [" val () = prerr_d2con (d2c) val () = prerr "] is overly applied statically." val () = prerr_newline () in the_trans2errlst_add (T2E_p1at_tr (p1t1)) end // end of [auxerr1] fn auxerr2 ( p1t1: p1at, d2c: d2con, locarg: location, serr: int ) : void = let val () = prerr_error2_loc (locarg) val () = prerr ": the static argument group is expected to contain " val () = if serr < 0 then prerr_string ("more components.") val () = if serr > 0 then prerr_string ("fewer components.") val () = prerr_newline () in the_trans2errlst_add (T2E_p1at_tr (p1t1)) end // end of [auxerr2] // in // case+ s1as of | list_cons (s1a, s1as) => ( case+ s1a of | S1VARARGone (loc) => begin case+ s2qs of | list_cons (s2q, s2qs) => let val s2vs = stasub_extend_svarlst (sub, s2q.s2qua_svs) // end of [val] val s2vs = (l2l)s2vs val s2ps = s2explst_subst (sub, s2q.s2qua_sps) val s2q = s2qua_make (s2vs, s2ps) val () = out := list_vt_cons (s2q, out) in p1at_tr_con_sapp2 (p1t1, d2c, sub, s2qs, s1as, out) end // end of [list_cons] | list_nil () => let val () = auxerr1 (p1t1, d2c) in s2exp_s2rt_err () end (* end of [list_nil] *) end // end of [S1VARARGone] | S1VARARGall (loc) => p1at_tr_con_sapp1 (p1t1.p1at_loc, d2c, sub, s2qs, out) | S1VARARGseq (loc, sarg) => begin case+ s2qs of | list_cons (s2q, s2qs) => let // var serr: int = 0 val s2vs = s2q.s2qua_svs val s2vs = stasub_extend_sarglst_svarlst (sub, sarg, s2vs, serr) val () = if serr != 0 then let val () = auxerr2 (p1t1, d2c, loc, serr) in (*nothing*) end // end of [val] // val s2vs = (l2l)s2vs val s2ps = s2explst_subst (sub, s2q.s2qua_sps) val s2q = s2qua_make (s2vs, s2ps) val () = out := list_vt_cons (s2q, out) in p1at_tr_con_sapp2 (p1t1, d2c, sub, s2qs, s1as, out) end // end of [list_cons] | list_nil () => let val () = auxerr1 (p1t1, d2c) in s2exp_s2rt_err () end (* end of [list_nil] *) end // end of [S1VARARGseq] ) // end of [list_cons] | list_nil () => p1at_tr_con_sapp1 (p1t1.p1at_loc, d2c, sub, s2qs, out) // end // end of [p1at_tr_con_sapp2] (* ****** ****** *) fun p1at_tr_con ( p1t0: p1at, p1t1: p1at , d2cs: d2conlst, sarg: s1vararglst, npf: int, darg: p1atlst ) : p2at = let // val isargomit = p1atconarg_is_omit (darg) val d2cs = ( if isargomit then d2cs else let val n = list_length (darg) in d2con_select_arity (d2cs, n) end // end of [if] ) : d2conlst // end of [val] // val-list_cons (d2c, _) = d2cs // HX: [d2cs] cannot be nil // var sub = stasub_make_nil () val s2qs = d2con_get_qua (d2c) var out: List_vt (s2qua) = list_vt_nil () val s2e = p1at_tr_con_sapp2 (p1t1, d2c, sub, s2qs, sarg, out) val () = stasub_free (sub) val out = (l2l)out // val darg = let fun nanys (loc: location, i: int): p2atlst = if i > 0 then let val p2t = p2at_any (loc) in list_cons (p2t, nanys (loc, i-1)) end else list_nil // end of [if] // end of [nanys] in if isargomit then let val-list_cons (p1t, _) = darg in nanys (p1t.p1at_loc, d2con_get_arity_full (d2c)) end else p1atlst_tr (darg) // end of [if] end : p2atlst // end of [val] // in p2at_con (p1t0.p1at_loc, PCKcon, d2c, out, s2e, npf, darg) end // end of [p1at_tr_con] (* ****** ****** *) extern fun p1at_tr_app_dyn_e1xp ( p1t0: p1at, p1t1: p1at , e0: e1xp, npf: int, p1ts_arg: p1atlst ) : p2at // end of [p1at_tr_app_dyn_e1xp] extern fun p1at_tr_app_dyn_dqid ( p1t0: p1at, p1t1: p1at , dq: d0ynq, id: symbol, npf: int, darg: p1atlst ) : p2at // end of [p1at_tr_app_dyn_dqid] (* ****** ****** *) implement p1at_tr_app_dyn_e1xp ( p1t0, p1t1, e0, npf, darg ) = let (* val () = begin print "p1at_tr_app_dyn_e1xp: p1t0 = "; print_p1at p1t0; print_newline () end // end of [val] *) in // case+ e0.e1xp_node of | E1XPfun _ => let val loc0 = p1t0.p1at_loc // prval pfu = unit_v () val es = list_map_vclo {unit_v} (pfu | darg, !p_clo) where { var !p_clo = @lam (pf: !unit_v | p1t: p1at): e1xp => e1xp_make_p1at (loc0, p1t) } // end of [val] prval unit_v () = pfu // val e1 = e1xp_app (loc0, e0, loc0, (l2l)es) (* val () = ( print "p1at_tr_app_dyn_e1xp: e1 = "; print_e1xp e1; print_newline () ) // end of [val] *) val e2 = e1xp_normalize (e1) (* val () = ( print "p1at_tr_app_dyn_e1xp: e2 = "; print_e1xp e2; print_newline () ) // end of [val] *) val p1t0_new = p1at_make_e1xp (loc0, e2) in p1at_tr (p1t0_new) end // end of [E1XPfun] | _ => let val p1t_fun = p1at_make_e1xp (p1t1.p1at_loc, e0) // end of [val] in p1at_tr_app_dyn (p1t0, p1t_fun, npf, darg) end (* end of [_] *) // end // end of [p1at_tr_app_dyn_e1xp] local fun dqid_is_vbox ( dq: d0ynq, id: symbol ) : bool = if $SYN.d0ynq_is_none (dq) then id = $SYM.symbol_VBOX else false // end of [dqid_is_vbox] fun auxerr1 ( p1t0: p1at, p1t1: p1at, dq: d0ynq, id: symbol ) : void = let val () = prerr_error2_loc (p1t1.p1at_loc) val () = filprerr_ifdebug ("p1at_tr_app_dyn_dqid") val () = prerr ": the identifier [" val () = ($SYN.prerr_d0ynq (dq); $SYM.prerr_symbol (id)) val () = prerr "] does not refer to any constructor." val () = prerr_newline () in the_trans2errlst_add (T2E_p1at_tr (p1t0)) end // end of [auxerr1] fun auxerr2 ( p1t0: p1at, p1t1: p1at, dq: d0ynq, id: symbol ) : void = let val () = prerr_error2_loc (p1t1.p1at_loc) val () = filprerr_ifdebug ("p1at_tr_app_dyn_dqid") val () = prerr ": the identifier [" val () = ($SYN.prerr_d0ynq (dq); $SYM.prerr_symbol (id)) val () = prerr "] is unrecognized." val () = prerr_newline () in the_trans2errlst_add (T2E_p1at_tr (p1t0)) end // end of [auxerr2] (* ****** ****** *) fun p2at_vbox_err ( p1t0: p1at, p2ts: p2atlst ) : p2at = let val loc0 = p1t0.p1at_loc in case+ p2ts of | list_cons ( p2t, list_nil () ) => ( case+ p2t.p2at_node of | P2Tany () => let val d2v = d2var_make_any (p2t.p2at_loc) // end of [val] in p2at_vbox (loc0, d2v) end // end of [P2Tany] | P2Tvar (d2v) => p2at_vbox (loc0, d2v) | _ => let val () = prerr_error2_loc (loc0) val () = prerr ": [vbox] should be applied to a variable." val () = prerr_newline () val () = the_trans2errlst_add (T2E_p1at_tr (p1t0)) in p2at_errpat (loc0) end // end of [_] ) // end of [list_cons] | _ => let val () = prerr_error2_loc (loc0) val () = prerr ": [vbox] should be applied to exactly one argument." val () = prerr_newline () val () = the_trans2errlst_add (T2E_p1at_tr (p1t0)) in p2at_errpat (loc0) end // end of [list_nil] end // end of [p2at_vbox_err] in (* in-of-local *) implement p1at_tr_app_dyn_dqid ( p1t0, p1t1, dq, id, npf, darg ) = let val ans = the_d2expenv_find_qua (dq, id) in // case+ ans of | ~Some_vt (d2i) => ( case+ d2i of | D2ITMe1xp (e0) => p1at_tr_app_dyn_e1xp (p1t0, p1t1, e0, npf, darg) | D2ITMcon (d2cs) => p1at_tr_con (p1t0, p1t1, d2cs, list_nil(*sarg*), npf, darg) | _ => let val () = auxerr1 (p1t0, p1t1, dq, id) in p2at_errpat (p1t0.p1at_loc) end // end of [_] ) // end of [Some_vt] | ~None_vt ((*void*)) => ( case+ 0 of | _ when dqid_is_vbox (dq, id) => let val p2ts = p1atlst_tr (darg) in p2at_vbox_err (p1t0, p2ts) end // end of [vbox] | _ => let val () = auxerr2 (p1t0, p1t1, dq, id) in p2at_errpat (p1t0.p1at_loc) // end of [val] end // end of [_] ) // end of [None_vt] // end // end of [p1at_tr_app_dyn_dqid] end // end of [local] (* ****** ****** *) implement p1at_tr_app_dyn ( p1t0, p1t_fun, npf, darg ) = let (* val () = begin print "p1at_tr_app_dyn: p1t0 = "; print_p1at p1t0; print_newline () end // end of [val] *) in // case+ p1t_fun.p1at_node of | P1Tide (id) => let val dq = $SYN.the_d0ynq_none in p1at_tr_app_dyn_dqid (p1t0, p1t_fun, dq, id, npf, darg) end | P1Tdqid (dq, id) => p1at_tr_app_dyn_dqid (p1t0, p1t_fun, dq, id, npf, darg) | _ => let val () = prerr_error2_loc (p1t_fun.p1at_loc) val () = prerr ": a (qualified) identifier is expected." val () = prerr_newline () val () = the_trans2errlst_add (T2E_p1at_tr (p1t0)) in p2at_errpat (p1t0.p1at_loc) end // end of [_] // end // end of [p1at_tr_app_dyn] (* ****** ****** *) fun p1at_tr_app_sta_dyn_itm ( p1t0: p1at, p1t1: p1at, p1t2: p1at , d2i: d2itm, sarg: s1vararglst, npf: int, darg: p1atlst ) : p2at = let (* val () = begin print "p1at_tr_app_sta_dyn_itm: p1t0 = "; print_p1at p1t0; print_newline () end // end of [val] *) in // case+ d2i of | D2ITMcon (d2cs) => p1at_tr_con (p1t0, p1t1, d2cs, sarg, npf, darg) // end of [D2ITMcon] | D2ITMe1xp (e0) => let val p1t2 = p1at_make_e1xp (p1t2.p1at_loc, e0) in p1at_tr_app_sta_dyn (p1t0, p1t1, p1t2, sarg, npf, darg) end | _ => let val () = prerr_error2_loc (p1t2.p1at_loc) val () = prerr ": the (qualified) identifier does not refer to any constructor." val () = prerr_newline () val () = the_trans2errlst_add (T2E_p1at_tr (p1t0)) in p2at_errpat (p1t0.p1at_loc) end end // end of [p1at_tr_app_sta_dyn_itm] implement p1at_tr_app_sta_dyn ( p1t0, p1t1, p1t_fun, sarg, npf, darg ) = let // fun auxerr .<>. ( p1t0: p1at, p1t1: p1at, p1t_fun: p1at, dq: d0ynq, id: symbol ) : void = let val loc = p1t_fun.p1at_loc val () = prerr_error2_loc (loc) val () = prerr ": the (qualified) identifier [" val () = ($SYN.prerr_d0ynq dq; $SYM.prerr_symbol id) val () = prerr "] is unrecognized." val () = prerr_newline () in the_trans2errlst_add (T2E_p1at_tr (p1t0)) end // end of [auxerr] // in // case+ p1t_fun.p1at_node of | P1Tide (id) => let val ans = the_d2expenv_find (id) in case+ ans of | ~Some_vt (d2i) => p1at_tr_app_sta_dyn_itm (p1t0, p1t1, p1t_fun, d2i, sarg, npf, darg) | ~None_vt () => let val dq = $SYN.the_d0ynq_none val () = auxerr (p1t0, p1t1, p1t_fun, dq, id) in p2at_errpat (p1t_fun.p1at_loc) end (* end of [None] *) end // end of [P1Tide] | P1Tdqid (dq, id) => let val ans = the_d2expenv_find_qua (dq, id) in case+ ans of | ~Some_vt (d2i) => p1at_tr_app_sta_dyn_itm (p1t0, p1t1, p1t_fun, d2i, sarg, npf, darg) | ~None_vt () => let val () = auxerr (p1t0, p1t1, p1t_fun, dq, id) in p2at_errpat (p1t_fun.p1at_loc) end // end of [None_vt] end // end of [P1Tdqid] | _ => let val () = prerr_error2_loc (p1t_fun.p1at_loc) val () = prerr ": a (qualified) identifier is expected." val () = prerr_newline () val () = the_trans2errlst_add (T2E_p1at_tr (p1t0)) in p2at_errpat (p1t0.p1at_loc) end // end of [_] // end // end of [p1at_tr_app_sta_dyn] (* ****** ****** *) fun p1at_tr_free_unfold ( pck: pckind, p1t0: p1at, p1t: p1at ) : p2at = let // val p2t = p1at_tr (p1t) // in // case+ p2t.p2at_node of // | P2Tcon ( PCKcon (), d2c, s2qs, s2e, npf, darg ) => let val loc0 = p1t0.p1at_loc in p2at_con (loc0, pck, d2c, s2qs, s2e, npf, darg) end // end of [P2Tcon] // | _ => let val loc0 = p1t0.p1at_loc val () = prerr_error2_loc (loc0) val () = filprerr_ifdebug ("p1at_tr_free_unfold") val () = prerr ": the pattern is expected to be formed with a constructor (of datavtype)." val () = prerr_newline () val () = the_trans2errlst_add (T2E_p1at_tr (p1t0)) in p2at_errpat (loc0) end // end of [_] // end // end of [p1at_tr_free_unfold] (* ****** ****** *) fun p1at_tr_tup ( p1t0: p1at , knd: int, npf: int, p1ts: p1atlst ) : p2at = let // val loc0 = p1t0.p1at_loc val p2ts = list_map_fun (p1ts, p1at_tr) val lp2ts = p2atlst_tupize ($UN.list_vt2t(p2ts)) val ((*freed*)) = list_vt_free (p2ts) // in p2at_rec (loc0, knd, npf, lp2ts) end // end of [p1at_tr_tup] (* ****** ****** *) implement p1at_tr (p1t0) = let // val loc0 = p1t0.p1at_loc // (* val () = println! ("p1at_tr: p1t0 = ", p1t0) *) // in // case+ p1t0.p1at_node of | P1Tany _ => p2at_any (loc0) | P1Tany2 _ => p2at_any (loc0) | P1Tide (id) => p1at_tr_ide (p1t0, id) | P1Tdqid (dq, id) => let val npf = ~1; val darg = list_nil () in p1at_tr_app_dyn_dqid (p1t0, p1t0, dq, id, npf, darg) end // end of [P2Tdqid] // | P1Tint (int) => p2at_int (loc0, int) | P1Tintrep (rep) => p2at_intrep (loc0, rep) | P1Tchar (c) => p2at_char (loc0, c) | P1Tstring (str) => p2at_string (loc0, str) | P1Tfloat (rep) => p2at_float (loc0, rep) // | P1Ti0nt (x) => p2at_i0nt (loc0, x) | P1Tf0loat (x) => p2at_f0loat (loc0, x) // | P1Tempty () => p2at_empty (loc0) // | P1Tapp_dyn ( p1t1, _(*loc*), npf, darg ) => ( case+ p1t1.p1at_node of | P1Tapp_sta (p1t_fun, sarg) => p1at_tr_app_sta_dyn (p1t0, p1t1, p1t_fun, sarg, npf, darg) // end of [P1Tapp_sta] | _ (*non-P1Tapp_sta*) => p1at_tr_app_dyn (p1t0, p1t1, npf, darg) ) (* end of [P1Tapp_dyn] *) | P1Tapp_sta (p1t_fun, sarg) => p1at_tr_app_sta_dyn (p1t0, p1t_fun, p1t_fun, sarg, ~1(*npf*), list_nil) // | P1Tlist (npf, p1ts) => ( case+ p1ts of | list_cons _ => p1at_tr_tup (p1t0, 0(*tupknd*), npf, p1ts) | list_nil () => p2at_empty (loc0) ) (* end of [P1Tlist] *) // | P1Ttup (knd, npf, p1ts) => p1at_tr_tup (p1t0, knd, npf, p1ts) | P1Trec ( knd, npf, lp1ts ) => let val lp2ts = list_map_fun (lp1ts, labp1at_tr) // end of [val] in p2at_rec (loc0, knd, npf, (l2l)lp2ts) end // end of [P1Trec] | P1Tlst (lin, p1ts) => p2at_lst (loc0, lin, p1atlst_tr (p1ts)) // | P1Tfree (p1t) => p1at_tr_free_unfold (PCKfree, p1t0, p1t) | P1Tunfold (p1t) => p1at_tr_free_unfold (PCKunfold, p1t0, p1t) // | P1Trefas ( id, loc_id, p1t ) => let val d2v = d2var_make (loc_id, id) in p2at_refas (loc0, d2v, p1at_tr (p1t)) end // end of [P1Trefas] // | P1Texist (s1as, p1t) => let val ( pfenv | () ) = the_s2expenv_push_nil () val s2vs = s1arglst_trup (s1as) val () = the_s2expenv_add_svarlst (s2vs) val p2t = p1at_tr (p1t) val () = the_s2expenv_pop_free (pfenv | (*none*)) in p2at_exist (loc0, s2vs, p2t) end | P1Tsvararg _ => let val () = prerr_interror_loc (loc0) val () = prerr ": p1at_tr: P1Tsvararg: this pattern should have been eliminated." val () = prerr_newline () in p2at_errpat (loc0) end // end of [P1Tavararg] // | P1Tann (p1t, ann) => let val p2t = p1at_tr (p1t) val ann = s1exp_trdn_impred (ann) val ann = s2exp_hnfize (ann) in p2at_ann (loc0, p2t, ann) end // end of [P1Tann] // | P1Terrpat () => p2at_errpat (loc0) // (* | _ => let val () = prerr_interror_loc (loc0) val () = prerrln! (": p1at_tr: not yet implemented: p1t0 = ", p1t0, "]") in $ERR.abort_interr{p2at}((*unreachable*)) end // end of [_] *) // end // end of [p1at_tr] implement p1atlst_tr (p1ts) = l2l (list_map_fun (p1ts, p1at_tr)) implement labp1at_tr (lp1t) = let in // case+ lp1t.labp1at_node of | LABP1ATnorm (l0, p1t) => let val p2t = p1at_tr (p1t) in LABP2ATnorm (l0, p2t) end // end of [LABP1ATnorm] | LABP1ATomit ((*void*)) => LABP2ATomit (lp1t.labp1at_loc) // end // end of [labp1at_tr] (* ****** ****** *) implement p1at_tr_arg (p1t0, ws1es) = let // val loc0 = p1t0.p1at_loc // in // case+ p1t0.p1at_node of // | P1Tann (p1t, ann) => let val p2t = p1at_tr (p1t) val ann = s1exp_trdn_arg_impred (ann, ws1es) // end of [ann] val ann = s2exp_hnfize (ann) in p2at_ann (loc0, p2t, ann) end // end of [P1Tann] // | P1Tlist (npf, p1ts) => let val p2ts = p1atlst_tr_arg (p1ts, ws1es) in p2at_list (loc0, npf, p2ts) end // end of [P1Tlist] // | _ (*P1T-rest*) => let val () = ws1es := WTHS1EXPLSTcons_none (ws1es) in p1at_tr (p1t0) end // end of [P1T-rest] // end // end of [p1at_tr_arg] local fun p1at_tr_arg_2 ( p1t: p1at, w1ts: &wths1explst ) : p2at = let // val p2t = p1at_tr_arg (p1t, w1ts) // in // case+ p2t.p2at_node of | P2Tlist (npf, p2ts) => let val loc0 = p2t.p2at_loc val lp2ts = p2atlst_tupize (p2ts) in p2at_rec (loc0, 0(*tupknd*), npf, lp2ts) end // end of [P2Tlist] | _ (*non-P2Tlist*) => p2t // end // end of [p1at_tr_arg_2] in (* in-of-local *) implement p1atlst_tr_arg (p1ts, ws1es) = let in // case+ p1ts of | list_cons (p1t, p1ts) => let val p2t = p1at_tr_arg_2 (p1t, ws1es) val p2ts = p1atlst_tr_arg (p1ts, ws1es) in list_cons (p2t, p2ts) end // end of [list_cons] | list_nil () => list_nil () // end // end of [p1atlst_tr_arg] end // end of [local] (* ****** ****** *) implement d2con_instantiate (loc0, d2c) = let // var sub = stasub_make_nil () val s2qs = d2con_get_qua (d2c) var out: List_vt (s2qua) = list_vt_nil () val s2e = p1at_tr_con_sapp1 (loc0, d2c, sub, s2qs, out) val () = stasub_free (sub) val out = (l2l)out // in @(out, s2e) end // end of [p1at_con_instantiate] (* ****** ****** *) (* end of [pats_trans2_p1at.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_codegen2_fprint.dats0000644000175000017500000003446413431250607022440 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: August, 2015 // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload LOC = "./pats_location.sats" // overload fprint with $LOC.fprint_location // (* ****** ****** *) staload SYM = "./pats_symbol.sats" (* ****** ****** *) // staload S1E = "./pats_staexp1.sats" // overload fprint with $S1E.fprint_e1xp // (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" // staload "./pats_trans2_env.sats" // (* ****** ****** *) staload "./pats_codegen2.sats" (* ****** ****** *) local fun auxerr_nil ( out: FILEref, d2c0: d2ecl ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): no spec on datatype is given\n" ) (* end of [val] *) // val () = fprintln! (out, "*)") // } (* end of [auxerr_nil] *) fun auxerr_s2cst ( out: FILEref, d2c0: d2ecl ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): no datatype of the given spec\n" ) (* end of [val] *) // val () = fprintln! (out, "*)") // } (* end of [auxerr_s2cst] *) fun auxerr_d2cst ( out: FILEref, d2c0: d2ecl, s2dat: s2cst ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): no fprint-function of the given spec\n" ) (* end of [val] *) // val () = fprintln! (out, "*)") // } (* end of [auxerr_d2cst] *) fun aux_datype ( out: FILEref , d2c0: d2ecl, s2dat: s2cst, xs: e1xplst ) : void = let // fun auxfun1 ( s2dat: s2cst ) : Option_vt(d2cst) = let // val sym = s2cst_get_sym(s2dat) val name = $SYM.symbol_get_name(sym) val d2cf = $UN.castvwtp0{string}(sprintf("fprint_%s_", @(name))) val d2cf = $SYM.symbol_make_string(d2cf) // in // case+ the_d2expenv_find(d2cf) of // case+ | ~None_vt() => None_vt() | ~Some_vt(d2i) => ( case+ d2i of | D2ITMcst(d2cf) => Some_vt(d2cf) | _ => None_vt() ) (* end of [Some_vt] *) // end // end of [auxfun1] // fun auxfun2 ( s2dat: s2cst, xs: e1xplst ) : Option_vt(d2cst) = ( case+ xs of | list_nil() => auxfun1(s2dat) | list_cons(x, _) => codegen2_get_d2cst(x) ) // val opt = auxfun2(s2dat, xs) val xs2 = ( case+ xs of | list_nil() => xs | list_cons(_, xs) => xs ) : e1xplst // end of [val] // // in // case+ opt of | ~None_vt() => auxerr_d2cst(out, d2c0, s2dat) // end of [None_vt] | ~Some_vt(d2cf) => aux_datype_d2cf(out, d2c0, s2dat, d2cf, xs2) // end of [Some_vt] // end (* end of [aux_datype] *) and aux_datype_d2cf ( out: FILEref , d2c0: d2ecl, s2dat: s2cst, d2cf: d2cst, xs: e1xplst ) : void = let // val linesep = "(* ****** ****** *)" // val fname = d2cst_get_name(d2cf) // fun auxd2c_dec ( d2c: d2con ) : void = let // val cname = d2con_get_name(d2c) // val () = fprint(out, "extern\nfun") val () = codegen2_emit_tmpcstdec(out, d2cf) val () = fprint(out, "\n") val () = fprint! (out, fname, "$", cname) val () = fprint! (out, ": $d2ctype(", fname) val () = codegen2_emit_tmpcstapp(out, d2cf) val ((*closing*)) = fprintln! (out, ")") // in // nothing end // end of [auxd2c_dec] // fun auxd2cs_dec ( d2cs: d2conlst ) : void = ( case+ d2cs of | list_nil() => () | list_cons(d2c, d2cs) => let val () = auxd2c_dec(d2c) in auxd2cs_dec(d2cs) end ) // fun auxd2c_cla ( d2c: d2con ) : void = let // val cname = d2con_get_name(d2c) // val () = fprint! (out, "| ", cname, " _ => ") // val () = fprint! (out, fname, "$", cname) val () = codegen2_emit_tmpcstapp(out, d2cf) val () = fprintln! (out, "(out, arg0)") // in // nothing end // end of [auxd2c_cla] // fun auxd2cs_cla ( d2cs: d2conlst ) : void = ( case+ d2cs of | list_nil() => () | list_cons(d2c, d2cs) => let val () = auxd2c_cla(d2c) in auxd2cs_cla(d2cs) end ) // fun auxsep ( // argless ): void = { // val () = fprint! ( out, "//\nextern\nfun{}\n" ) (* end of [val] *) val () = fprintln! (out, fname, "$sep: (FILEref) -> void") val () = fprint! (out, "implement{}\n") val () = fprintln! (out, fname, "$sep(out) = fprint(out, \",\")") // } (* end of [auxsep] *) // fun auxcarg ( // argless ): void = { // val () = fprint! ( out , "//\nextern\nfun{a:t0p}\n" ) (* end of [val] *) val () = fprintln! (out, fname, "$carg: (FILEref, INV(a)) -> void") val () = fprint! (out, "implement{a}\n") val () = fprintln! (out, fname, "$carg(out, arg) = fprint_val(out, arg)") // } (* end of [auxcarg] *) // fun auxlpar ( // argless ): void = { // val () = fprint! ( out, "//\nextern\nfun{}\n" ) (* end of [val] *) val () = fprintln! (out, fname, "$lpar: (FILEref) -> void") val () = fprint! (out, "implement{}\n") val () = fprintln! (out, fname, "$lpar(out) = fprint(out, \"(\")") // } (* end of [auxlpar] *) fun auxrpar ( // argless ): void = { // val () = fprint! ( out, "//\nextern\nfun{}\n" ) (* end of [val] *) val () = fprintln! (out, fname, "$rpar: (FILEref) -> void") val () = fprint! (out, "implement{}\n") val () = fprintln! (out, fname, "$rpar(out) = fprint(out, \")\")") // } (* end of [auxrpar] *) // val- Some(d2cs) = s2cst_get_dconlst(s2dat) // val () = fprint! (out, linesep, "\n//\n") // val () = auxd2cs_dec (d2cs) // val () = fprint! (out, "//\n", linesep, "\n//\n") // val () = fprint(out, "implement") val () = codegen2_emit_tmpcstimp(out, d2cf) val () = fprintln! (out) // val () = fprint! (out, fname) // val () = fprint! (out, "\n ") val () = fprintln! (out, "(out, arg0) =") // val () = fprint! (out, "(\n") val () = fprintln! (out, "case+ arg0 of") // val () = auxd2cs_cla (d2cs) // clauses // val () = fprint! (out, ")\n") val () = fprintln! (out, "//\n", linesep) // val () = auxsep () val () = auxlpar () val () = auxrpar () val () = auxcarg () // val () = fprintln! (out, "//\n", linesep) // val () = aux_datype_d2cf_conlst(out, d2c0, s2dat, d2cf, d2cs) // val () = fprintln! (out, "//\n", linesep) // in // nothing end // end of [aux_datype_d2cf] and aux_datype_d2cf_con ( out: FILEref , d2c0: d2ecl, s2dat: s2cst, d2cf: d2cst, d2cn: d2con ) : void = let // val fname = d2cst_get_name(d2cf) // val ftype = d2cst_get_type(d2cf) // val cname = d2con_get_name(d2cn) // val narg = d2con_get_arity_real(d2cn) // fun auxcon1 ( // argless ) : void = { // val () = fprint(out, "extern\nfun") val () = codegen2_emit_tmpcstdec(out, d2cf) val () = fprint(out, "\n") val () = fprint! (out, fname, "$", cname, "$con") val () = fprint! (out, ": $d2ctype(", fname) val () = codegen2_emit_tmpcstapp(out, d2cf) val ((*closing*)) = fprintln! (out, ")") // } // fun auxlpar1 ( // argless ) : void = { // val () = fprint(out, "extern\nfun") val () = codegen2_emit_tmpcstdec(out, d2cf) val () = fprint(out, "\n") val () = fprint! (out, fname, "$", cname, "$lpar") val () = fprint! (out, ": $d2ctype(", fname) val () = codegen2_emit_tmpcstapp(out, d2cf) val ((*closing*)) = fprintln! (out, ")") // } // fun auxrpar1 ( // argless ) : void = { // val () = fprint(out, "extern\nfun") val () = codegen2_emit_tmpcstdec(out, d2cf) val () = fprint(out, "\n") val () = fprint! (out, fname, "$", cname, "$rpar") val () = fprint! (out, ": $d2ctype(", fname) val () = codegen2_emit_tmpcstapp(out, d2cf) val ((*closing*)) = fprintln! (out, ")") // } // fun auxsep1_n ( n: int ) : void = { // val () = fprint(out, "extern\nfun") val () = codegen2_emit_tmpcstdec(out, d2cf) val () = fprint(out, "\n") val () = fprint! ( out, fname, "$", cname, "$sep", n ) (* fprint! *) // val () = fprint! (out, ": $d2ctype(", fname) val () = codegen2_emit_tmpcstapp(out, d2cf) val ((*closing*)) = fprintln! (out, ")") // } // fun auxarg1_n ( n: int ) : void = { // val () = fprint(out, "extern\nfun") val () = codegen2_emit_tmpcstdec(out, d2cf) val () = fprint(out, "\n") val () = fprint! (out, fname, "$", cname, "$arg", n) val () = fprint! (out, ": $d2ctype(", fname) val () = codegen2_emit_tmpcstapp(out, d2cf) val ((*closing*)) = fprintln! (out, ")") // } // fun auxcon2 ( // argless ) : void = { // val () = fprint! (out, "val () = ") val () = fprint! (out, fname, "$", cname, "$con") val () = codegen2_emit_tmpcstapp(out, d2cf) val () = fprintln! (out, "(out, arg0)") // } fun auxlpar2 ( // argless ) : void = { // val () = fprint! (out, "val () = ") val () = fprint! (out, fname, "$", cname, "$lpar") // val () = codegen2_emit_tmpcstapp(out, d2cf) val () = fprintln! (out, "(out, arg0)") // } // fun auxrpar2 ( // argless ) : void = { // val () = fprint! (out, "val () = ") val () = fprint! (out, fname, "$", cname, "$rpar") // val () = codegen2_emit_tmpcstapp(out, d2cf) val () = fprintln! (out, "(out, arg0)") // } // fun auxsep2_n ( n: int ) : void = { // val () = fprint! (out, "val () = ") val () = fprint! (out, fname, "$", cname, "$sep", n) // val () = codegen2_emit_tmpcstapp(out, d2cf) val () = fprintln! (out, "(out, arg0)") // } fun auxarg2_n ( n: int ) : void = { // val () = fprint! (out, "val () = ") val () = fprint! (out, fname, "$", cname, "$arg", n) // val () = codegen2_emit_tmpcstapp(out, d2cf) val () = fprintln! (out, "(out, arg0)") // } // fun auxbody2 ( n0: int, n: int ) : void = ( // if n < narg then let val () = if n > n0 then auxsep2_n(n) // end of [val] val () = auxarg2_n(n+1) in auxbody2(n0, n+1) end // end of [then] else () // end of [else] // ) (* end of [auxbody2] *) // fun auxcon3 ( // argless ) : void = { // val () = fprint(out, "implement") val () = codegen2_emit_tmpcstimp(out, d2cf) val () = fprintln! (out) // val () = fprint! (out, fname, "$", cname, "$con(out, _) = ") val () = fprintln! (out, "fprint(out, \"", cname, "\")") // } (* end of [auxcon3] *) // fun auxlpar3 ( // argless ) : void = { // val () = fprint(out, "implement") val () = codegen2_emit_tmpcstimp(out, d2cf) val () = fprintln! (out) val () = fprintln! (out, fname, "$", cname, "$lpar(out, _) = ", fname, "$lpar(out)") // } (* end of [auxlpar3] *) // fun auxrpar3 ( // argless ) : void = { // val () = fprint(out, "implement") val () = codegen2_emit_tmpcstimp(out, d2cf) val () = fprintln! (out) val () = fprintln! (out, fname, "$", cname, "$rpar(out, _) = ", fname, "$rpar(out)") // } (* end of [auxrpar3] *) // fun auxsep3_n ( n: int ) : void = { // val () = fprint(out, "implement") val () = codegen2_emit_tmpcstimp(out, d2cf) val () = fprintln! (out) val () = fprintln! (out, fname, "$", cname, "$sep", n, "(out, _) = ", fname, "$sep<>(out)") // } (* end of [auxsep3_n] *) // fun auxpat3_n ( n: int ) : void = let // fun aux(i: int): void = ( if (i <= narg) then let val () = if i > 1 then fprint(out, ", ") // end of [val] val () = if (i = n) then fprint!(out, "arg", n) // end of [val] val () = if (i != n) then fprint(out, "_") in aux(i+1) end // end of [then] else () // end of [else] ) // in fprint!(out, cname, "("); aux(1); fprint(out, ")") end // end of [auxpat3_n] // fun auxarg3_n ( n: int ) : void = { // val () = fprint(out, "implement") val () = codegen2_emit_tmpcstimp(out, d2cf) val () = fprintln! (out) val () = fprintln! (out, fname, "$", cname, "$arg", n, "(out, arg0) =") // val () = fprint (out, " let val-") // val () = auxpat3_n(n) // val () = fprintln! (out, " = arg0 in ", fname, "$carg(out, arg", n, ") end") // } (* end of [auxarg3_n] *) // val () = fprint(out, "//\n") // val () = auxcon1() val () = auxlpar1() val () = auxrpar1() val () = loop(1) where { fun loop(n: int): void = if n < narg then (auxsep1_n(n); loop(n+1)) } val () = loop(1) where { fun loop(n: int): void = if n <= narg then (auxarg1_n(n); loop(n+1)) } // val () = fprint(out, "//\n") // val () = fprint(out, "implement") val () = codegen2_emit_tmpcstimp(out, d2cf) val () = fprintln! (out) // val () = fprintln! (out, fname, "$", cname, "(out, arg0) = ") // val () = fprintln! (out, "{\n//") val () = auxcon2() val () = auxlpar2() val () = auxbody2(0, 0) val () = auxrpar2() val () = fprintln! (out, "//\n}") // val () = auxcon3() val () = auxlpar3() val () = auxrpar3() val () = loop(1) where { fun loop(n: int): void = if n < narg then (auxsep3_n(n); loop(n+1)) } val () = loop(1) where { fun loop(n: int): void = if n <= narg then (auxarg3_n(n); loop(n+1)) } // in // nothing end // end of [aux_datype_d2cf_con] and aux_datype_d2cf_conlst ( out: FILEref , d2c0: d2ecl, s2dat: s2cst, d2cf: d2cst, xs: d2conlst ) : void = ( case+ xs of | list_nil() => () | list_cons(x, xs) => { val () = aux_datype_d2cf_con(out, d2c0, s2dat, d2cf, x) val () = aux_datype_d2cf_conlst(out, d2c0, s2dat, d2cf, xs) } ) (* end of [aux_datype_d2cf_conlst] *) in (* in-of-local *) implement codegen2_fprint (out, d2c0, xs) = let // (* val () = println! ("codegen2_fprint: d2c0 = ", d2c0) *) // in // case+ xs of | list_nil() => auxerr_nil(out, d2c0) // end of [list_nil] | list_cons(x, xs) => let val opt = codegen2_get_datype(x) in case+ opt of | ~None_vt() => auxerr_s2cst(out, d2c0) | ~Some_vt(s2c) => aux_datype(out, d2c0, s2c, xs) end // end of [list_cons] // end // end of [codegen2_fprint] end // end of [local] (* ****** ****** *) (* end of [pats_codegen2_fprint.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing.dats0000644000175000017500000001625713431250607021033 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload STDIO = "libc/SATS/stdio.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" staload FIL = "./pats_filename.sats" staload SYM = "./pats_symbol.sats" (* ****** ****** *) staload "./pats_lexing.sats" staload "./pats_tokbuf.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) implement parse_from_string_parser (inp, f) = let var buf: tokbuf val () = tokbuf_initize_string(buf, inp) var nerr: int = 0 val res = f (buf, 0(*bt*), nerr) val _(*EOF*) = p_EOF (buf, 0, nerr) // HX: all tokens need to consumed val ((*cleared*)) = tokbuf_uninitize(buf) in if nerr = 0 then Some_vt (res) else None_vt () end // end of [parse_from_string_parser] (* ****** ****** *) implement parse_from_tokbuf_toplevel (stadyn, buf) = let // var nerr: int = 0 val ((*void*)) = the_lexerrlst_clear () val ((*void*)) = the_parerrlst_clear () // val d0cs = ( if stadyn = 0 then p_toplevel_sta (buf, nerr) else p_toplevel_dyn (buf, nerr) // end of [if] ) : d0eclist // end of [val] // val nerr1 = fprint_the_lexerrlst (stderr_ref) val nerr2 = fprint_the_parerrlst (stderr_ref) // val () = if (nerr1 + nerr2) > 0 then $ERR.abort {void} () // in d0cs end // end of [parse_from_tokbuf] (* ****** ****** *) // // HX-2015-10-04: // This one is for libatsopt // implement parse_from_string_toplevel (stadyn, inp) = d0cs where { // var buf: tokbuf val () = tokbuf_initize_string(buf, inp) val d0cs = parse_from_tokbuf_toplevel (stadyn, buf) val ((*cleared*)) = tokbuf_uninitize (buf) // } // end of [parser_from_string_toplevel] (* ****** ****** *) implement parse_from_stdin_toplevel (stadyn) = parse_from_fileref_toplevel(stadyn, stdin_ref) // end of [parse_from_stdin_toplevel] implement parse_from_fileref_toplevel (stadyn, inp) = d0cs where { // var buf: tokbuf // val () = tokbuf_initize_getc (buf, lam () = $STDIO.fgetc0_err(inp)) // val d0cs = parse_from_tokbuf_toplevel (stadyn, buf) val () = tokbuf_uninitize (buf) // } // end of [parse_from_fileref_toplevel] (* ****** ****** *) implement parse_from_filename_toplevel (stadyn, fil) = let // var buf: tokbuf prval pfmod = file_mode_lte_r_r // val fname = $FIL.filename_get_fullname(fil) // val fname = $SYM.symbol_get_name(fname) // val (pf|fp) = $STDIO.fopen_exn(fname, file_mode_r) // val ((*void*)) = tokbuf_initize_filp(pfmod, pf | buf, fp) // end of [val] // val (pf|()) = $FIL.the_filenamelst_push(fil) val () = $LOC.the_location_pragma_push() val d0cs_res = parse_from_tokbuf_toplevel(stadyn, buf) val ((*void*)) = $FIL.the_filenamelst_pop(pf|(*none*)) val () = $LOC.the_location_pragma_pop((*void*)) // val ((*void*)) = tokbuf_uninitize (buf) // in d0cs_res end // end of [parser_from_filename_toplevel] (* ****** ****** *) implement parse_from_filename_toplevel2 (stadyn, fil) = let // val isnot = $FIL.filename_isnot_dummy(fil) // in // if isnot then parse_from_filename_toplevel(stadyn, fil) else list_nil(*void*) // end // end of [parse_from_filename_toplevel2] (* ****** ****** *) implement parse_from_givename_toplevel (stadyn, given, filref) = let // val filopt = $FIL.filenameopt_make_local(given) // end of [val] in // case+ filopt of | ~Some_vt(fil) => let val () = filref := fil val d0cs = parse_from_filename_toplevel(stadyn, fil) // end of [val] val ((*void*)) = $FIL.the_filenamelst_ppush(fil) in d0cs end // end of [Some_vt] | ~None_vt((*void*)) => let // val () = filref := $FIL.filename_dummy // (* val () = the_parerrlst_add ( parerr_make($LOC.location_dummy, PE_FILENONE(given)) ) (* end of [the_parerrlst_add] *) *) // val () = prerr("patsopt: error(0)") val () = prerrln! ( ": the given file [", given, "] cannot be accessed." ) (* end of [prerrln!] *) // // HX: this is treated as a meta-level failure: // val ((*exit*)) = $raise($ERR.PATSOPT_FILENONE_EXN(given)) // in list_nil(*deadcode*) end // end of [None_vt] // end // end of [parse_from_givename_toplevel] (* ****** ****** *) implement parse_from_givename_toplevel2 (stadyn, given, filref) = let // val filopt = $FIL.filenameopt_make_local(given) // end of [val] in // case+ filopt of | ~Some_vt(fil) => let val () = filref := fil val d0cs = parse_from_filename_toplevel(stadyn, fil) // end of [val] val ((*void*)) = $FIL.the_filenamelst_ppush(fil) in d0cs end // end of [Some_vt] | ~None_vt((*void*)) => let // val () = prerr("patsopt: error(0)") val () = prerrln! ( ": the given file [", given, "] cannot be accessed." ) (* end of [prerrln!] *) // val () = filref := $FIL.filename_dummy in list_nil() end // end of [None_vt] // end // end of [parse_from_givename_toplevel2] (* ****** ****** *) implement parse_from_givenames_toplocal2 ( stadyn, givens, filref ) = let // fun auxlst ( stadyn: int , givens: List(string) , filref: &filename >> filename ) : d0eclist = ( // case+ givens of | list_nil () => list_nil() // list_nil | list_cons (given1, givens) => list_cons(d0c1, d0cs) where { // val d0cs = parse_from_givename_toplevel2 (stadyn, given1, filref) val d0c1 = d0ecl_toplocal(filref, d0cs) // end of [val] val d0cs = auxlst(stadyn, givens, filref) // end of [val] // } (* end of [list_cons] *) // ) (* end of [auxlst] *) // in // case+ givens of | list_cons (given0, givens) => list_cons(d0c0, d0cs) where { // val d0cs = parse_from_givename_toplevel2 (stadyn, given0, filref) // val d0c0 = d0ecl_list(filref, d0cs) val d0cs = auxlst(stadyn, givens, filref) // } (* end of [list_cons] *) | list_nil((*void*)) => let val () = filref := $FIL.filename_dummy in list_nil() end // end of [list_nil] // end // end of [parse_from_givenames_toplocal2] (* ****** ****** *) (* end of [pats_parsing.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp2_appenv.hats0000644000175000017500000005267413431250607022341 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: // Hongwei Xi // Authoremail: // gmhwxiATgmailDOTcom // Start Time: December, 2014 // (* ****** ****** *) // // HX-2014-12-09: // This one implements a standard [app] function over the level-2 syntax tree // Note that [app] is often referred to as [foreach] // (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" // (* ****** ****** *) // extern fun{} d2cstlst_app : synent_app (d2cstlst) // extern fun{} d2varlst_app : synent_app (d2varlst) extern fun{} d2varopt_app : synent_app (d2varopt) // (* ****** ****** *) // extern fun{} d2itm_app : synent_app (d2itm) extern fun{} d2itmlst_app : synent_app (d2itmlst) extern fun{} d2itmopt_app : synent_app (d2itmopt) // extern fun{} d2pitm_app : synent_app (d2pitm) extern fun{} d2pitmlst_app : synent_app (d2pitmlst) // (* ****** ****** *) // extern fun{} d2atdecs_app : synent_app (s2cstlst) // extern fun{} d2cstdecs_app : synent_app (d2cstlst) // (* ****** ****** *) // implement {}(*tmp*) d2cstlst_app (xs, env) = synentlst_app (xs, env, d2cst_app) // (* ****** ****** *) // implement {}(*tmp*) d2varlst_app (xs, env) = synentlst_app (xs, env, d2var_app) // (* ****** ****** *) implement {}(*tmp*) d2varopt_app (opt, env) = ( case+ opt of | Some (d2v) => d2var_app (d2v, env) | None () => () ) (* end of [d2varopt_app] *) (* ****** ****** *) implement {}(*tmp*) d2itm_app (d2i, env) = let in // case d2i of | D2ITMcst (d2c) => d2cst_app (d2c, env) | D2ITMvar (d2v) => d2var_app (d2v, env) | D2ITMcon (d2cs) => d2conlst_app (d2cs, env) | D2ITMe1xp (e1xp) => () | D2ITMsymdef (sym, d2pis) => d2pitmlst_app (d2pis, env) | D2ITMmacdef (d2m) => () | D2ITMmacvar (d2v) => d2var_app (d2v, env) // end // end of [d2itm_app] (* ****** ****** *) // implement {}(*tmp*) d2itmlst_app (xs, env) = synentlst_app (xs, env, d2itm_app) // (* ****** ****** *) implement {}(*tmp*) d2itmopt_app (opt, env) = ( case+ opt of | Some (x) => d2itm_app (x, env) | None () => () ) (* end of [d2itmopt_app] *) (* ****** ****** *) implement {}(*tmp*) d2pitm_app (d2pi, env) = let // val+D2PITM(pval, d2i) = d2pi in d2itm_app (d2i, env) // end // end of [d2pitm_app] (* ****** ****** *) // implement {}(*tmp*) d2pitmlst_app (xs, env) = synentlst_app (xs, env, d2pitm_app) // (* ****** ****** *) implement {}(*tmp*) d2atdecs_app (s2cs, env) = let // fun auxlst_dcon ( d2cs: d2conlst, env: !appenv ) : void = ( case+ d2cs of | list_nil () => () | list_cons (d2c, d2cs) => let val () = d2con_app (d2c, env) val s2e = d2con_get_type (d2c) val () = s2exp_app (s2e, env) in auxlst_dcon (d2cs, env) end // end of [list_cons] ) (* end of [auxlst_dcon] *) // fun auxlst_scst ( s2cs: s2cstlst, env: !appenv ) : void = ( case+ s2cs of | list_nil () => () | list_cons (s2c, s2cs) => let val opt = s2cst_get_dconlst(s2c) val ((*void*)) = ( case+ opt of | None () => () | Some (d2cs) => auxlst_dcon (d2cs, env) ) (* end of [val] *) in auxlst_scst (s2cs, env) end // end of [list_cons] ) (* end of [auxlst_scst] *) // val () = s2cstlst_app (s2cs, env) // in auxlst_scst (s2cs, env) end // end of [d2atdecs_app] (* ****** ****** *) implement {}(*tmp*) d2cstdecs_app (d2cs, env) = let // (* fun auxlst ( d2cs: d2cstlst, env: !appenv ) : void = ( // case+ d2cs of | list_nil ((*void*)) => () | list_cons (d2c, d2cs) => let val s2e = d2cst_get_type(d2c) in s2exp_app(s2e, env); auxlst(d2cs, env) end (* end of [list_cons] *) ) (* end of [auxlst] *) val () = auxlst(d2cs, env) *) val () = d2cstlst_app(d2cs, env) // in // nothing end // end of [d2cstdecs_app] (* ****** ****** *) extern fun{} sp2at_app : synent_app (sp2at) (* ****** ****** *) extern fun{} s2exparg_app : synent_app (s2exparg) extern fun{} s2exparglst_app : synent_app (s2exparglst) (* ****** ****** *) extern fun{} t2mpmarg_app : synent_app (t2mpmarg) extern fun{} t2mpmarglst_app : synent_app (t2mpmarglst) (* ****** ****** *) // extern fun{} p2at_app : synent_app (p2at) extern fun{} p2atlst_app : synent_app (p2atlst) extern fun{} labp2atlst_app : synent_app (labp2atlst) // extern fun{} p2atopt_app : synent_app (p2atopt) // (* ****** ****** *) // extern fun{} d2exp_app : synent_app (d2exp) extern fun{} d2explst_app : synent_app (d2explst) extern fun{} labd2explst_app : synent_app (labd2explst) // extern fun{} d2expopt_app : synent_app (d2expopt) // (* ****** ****** *) extern fun{} d2lab_app : synent_app (d2lab) extern fun{} d2lablst_app : synent_app (d2lablst) (* ****** ****** *) extern fun{} d2exparg_app : synent_app (d2exparg) extern fun{} d2exparglst_app : synent_app (d2exparglst) (* ****** ****** *) // extern fun{} i2fcl_app : synent_app (i2fcl) extern fun{} i2fclist_app : synent_app (i2fclist) // (* ****** ****** *) // extern fun{} gm2at_app : synent_app (gm2at) extern fun{} gm2atlst_app : synent_app (gm2atlst) // (* ****** ****** *) // extern fun{} c2lau_app : synent_app (c2lau) extern fun{} c2laulst_app : synent_app (c2laulst) // extern fun{} sc2lau_app : synent_app (sc2lau) extern fun{} sc2laulst_app : synent_app (sc2laulst) // (* ****** ****** *) // extern fun{} d2ecl_app : synent_app (d2ecl) extern fun{} d2eclist_app : synent_app (d2eclist) // (* ****** ****** *) extern fun{} i2mpdec_app : synent_app (i2mpdec) (* ****** ****** *) // extern fun{} f2undec_app : synent_app (f2undec) extern fun{} f2undeclst_app : synent_app (f2undeclst) // extern fun{} v2aldec_app : synent_app (v2aldec) extern fun{} v2aldeclst_app : synent_app (v2aldeclst) // (* ****** ****** *) // extern fun{} v2ardec_app : synent_app (v2ardec) extern fun{} v2ardeclst_app : synent_app (v2ardeclst) // extern fun{} prv2ardec_app : synent_app (prv2ardec) extern fun{} prv2ardeclst_app : synent_app (prv2ardeclst) // (* ****** ****** *) implement {}(*tmp*) sp2at_app (sp2t, env) = let in // case+ sp2t.sp2at_node of | SP2Tcon (s2c, s2vs) => ( s2cst_app (s2c, env); s2varlst_app (s2vs, env) ) (* end of [SP2Tcon] *) | SP2Terr ((*void*)) => () // end // end of [sp2at_app] (* ****** ****** *) implement {}(*tmp*) s2exparg_app (s2a0, env) = let in // case+ s2a0.s2exparg_node of | S2EXPARGone () => () | S2EXPARGall () => () | S2EXPARGseq (s2es) => s2explst_app (s2es, env) // end // end of [s2exparg_app] (* ****** ****** *) // implement {}(*tmp*) s2exparglst_app (xs, env) = synentlst_app (xs, env, s2exparg_app) // (* ****** ****** *) // implement {}(*tmp*) t2mpmarg_app (t2ma, env) = s2explst_app (t2ma.t2mpmarg_arg, env) // implement {}(*tmp*) t2mpmarglst_app (xs, env) = synentlst_app (xs, env, t2mpmarg_app) // (* ****** ****** *) implement {}(*tmp*) p2at_app (p2t0, env) = let in // case+ p2t0.p2at_node of // | P2Tany () => () | P2Tvar (d2v) => d2var_app (d2v, env) // | P2Tcon ( knd, d2c, s2qs , s2e_con, npf, p2ts_arg ) => let val () = d2con_app (d2c, env) val () = s2qualst_app (s2qs, env) val () = s2exp_app (s2e_con, env) in p2atlst_app (p2ts_arg, env) end // end of [P2Tcon] // | P2Tint _ => () | P2Tintrep _ => () // | P2Tbool _ => () | P2Tchar _ => () | P2Tfloat _ => () | P2Tstring _ => () // | P2Ti0nt _ => () | P2Tf0loat _ => () // | P2Tempty () => () // | P2Tlst (lin, p2ts) => p2atlst_app (p2ts, env) | P2Trec (knd, npf, lp2ts) => labp2atlst_app (lp2ts, env) // | P2Trefas (d2v, p2t) => ( d2var_app (d2v, env); p2at_app (p2t, env) ) (* end of [P2Trefas] *) // | P2Texist (s2vs, p2t) => ( s2varlst_app (s2vs, env); p2at_app (p2t, env) ) (* end of [P2Texist] *) // | P2Tvbox (d2v) => d2var_app (d2v, env) // | P2Tann (p2t, s2e) => ( p2at_app (p2t, env); s2exp_app (s2e, env) ) // | P2Tlist (npf, p2ts) => p2atlst_app (p2ts, env) // | P2Terrpat () => () // end // end of [p2at_app] (* ****** ****** *) // implement {}(*tmp*) p2atlst_app (xs, env) = synentlst_app (xs, env, p2at_app) // (* ****** ****** *) implement {}(*tmp*) labp2atlst_app (lxs, env) = let in // case+ lxs of | list_cons (lx, lxs) => let val () = ( case+ lx of | LABP2ATnorm (l, x) => p2at_app (x, env) | LABP2ATomit (loc) => () ) : void // end of [val] in labp2atlst_app (lxs, env) end // end of [list_cons] | list_nil ((*void*)) => () // end // end of [labp2atlst_app] (* ****** ****** *) implement {}(*tmp*) p2atopt_app (opt, env) = ( case+ opt of | Some (x) => p2at_app (x, env) | None () => () ) (* end of [p2atopt_app] *) (* ****** ****** *) implement {}(*tmp*) d2exp_app (d2e0, env) = let in // case+ d2e0.d2exp_node of // | D2Ecst (d2c) => d2cst_app (d2c, env) | D2Evar (d2v) => d2var_app (d2v, env) // | D2Eint _ => () | D2Eintrep _ => () | D2Ebool _ => () | D2Echar _ => () | D2Efloat _ => () | D2Estring _ => () // | D2Ei0nt _ => () | D2Ec0har _ => () | D2Ef0loat _ => () | D2Es0tring _ => () // | D2Etop () => () | D2Etop2 (s2e) => s2exp_app (s2e, env) | D2Eempty () => () // | D2Ecstsp _ => () | D2Etyrep (s2e) => s2exp_app (s2e, env) | D2Eliteral _ => () // | D2Eextval (s2e, name) => s2exp_app (s2e, env) // | D2Eextfcall (s2e_res, _fun, d2es_arg) => ( s2exp_app (s2e_res, env); d2explst_app (d2es_arg, env) ) (* end of [D2Eextfcall] *) | D2Eextmcall (s2e_res, d2e_obj, _mtd, d2es_arg) => ( s2exp_app (s2e_res, env); d2exp_app (d2e_obj, env); d2explst_app (d2es_arg, env) ) (* end of [D2Eextmcall] *) // | D2Econ ( d2c, loc1, s2as, npf, loc2, d2es_arg ) => ( d2con_app (d2c, env); s2exparglst_app (s2as, env); d2explst_app (d2es_arg, env) ) (* end of [D2Econ] *) // | D2Esym (d2s) => d2sym_app (d2s, env) // | D2Efoldat (s2as, d2e) => ( s2exparglst_app (s2as, env); d2exp_app (d2e, env) ) (* D2Efoldat *) | D2Efreeat (s2as, d2e) => ( s2exparglst_app (s2as, env); d2exp_app (d2e, env) ) (* D2Efreeat *) // | D2Etmpid (d2e_id, t2mas) => ( d2exp_app (d2e_id, env); t2mpmarglst_app (t2mas, env) ) (* end of [D2Etmpid] *) // | D2Elet (d2cs, d2e) => ( d2eclist_app (d2cs, env); d2exp_app (d2e, env) ) | D2Ewhere (d2e, d2cs) => ( d2eclist_app (d2cs, env); d2exp_app (d2e, env) ) // | D2Eapplst (d2e_fun, d2as) => ( d2exp_app (d2e_fun, env); d2exparglst_app (d2as, env) ) // | D2Eifhead (invres, _test, _then, _else) => ( d2exp_app (_test, env); d2exp_app (_then, env); d2expopt_app (_else, env); ) (* end of [D2Eifhead] *) | D2Esifhead (invres, _test, _then, _else) => ( s2exp_app (_test, env); d2exp_app (_then, env); d2exp_app (_else, env); ) (* end of [D2Esifhead] *) // | D2Eifcasehd (knd, invres, ifcls) => i2fclist_app (ifcls, env) // | D2Ecasehead (knd, invres, d2es, c2ls) => ( d2explst_app (d2es, env); c2laulst_app (c2ls, env) ) (* end of [D2Ecaseof] *) | D2Escasehead (invres, s2e, sc2ls) => let val () = s2exp_app (s2e, env) in sc2laulst_app (sc2ls, env) end // end of [D2Escasehead] // | D2Esing (d2e) => d2exp_app (d2e, env) | D2Elist (npf, d2es) => d2explst_app (d2es, env) // | D2Elst (lin, opt, d2es) => ( s2expopt_app (opt, env); d2explst_app (d2es, env) ) (* end of [D2Elst] *) | D2Etup (knd, npf, d2es) => d2explst_app (d2es, env) | D2Erec (knd, npf, ld2es) => labd2explst_app (ld2es, env) | D2Eseq (d2es) => d2explst_app (d2es, env) // | D2Eselab (d2e, d2ls) => ( d2exp_app (d2e, env); d2lablst_app (d2ls, env) ) (* end of [D2Eselab] *) // | D2Eptrof (d2lval) => d2exp_app (d2lval, env) | D2Eviewat (d2lval) => d2exp_app (d2lval, env) // | D2Eann_type (d2e, s2e_ann) => ( d2exp_app (d2e, env); s2exp_app (s2e_ann, env) ) (* end of [D2Eapp_type] *) | D2Eann_seff (d2e, s2fe) => d2exp_app (d2e, env) | D2Eann_funclo (d2e, funclo) => d2exp_app (d2e, env) // | D2Ederef (d2s, d2e) => ( d2sym_app(d2s, env); d2exp_app (d2e, env) ) | D2Eassgn (d2e_l, d2e_r) => ( d2exp_app (d2e_l, env); d2exp_app (d2e_r, env) ) (* end of [D2Eassgn] *) | D2Exchng (d2e_l, d2e_r) => ( d2exp_app (d2e_l, env); d2exp_app (d2e_r, env) ) (* end of [D2Exchng] *) // | D2Earrsub ( d2s, d2e, loc, d2es_ind ) => ( d2sym_app (d2s, env); d2exp_app (d2e, env); d2explst_app (d2es_ind, env) ) (* end of [D2Earrsub] *) | D2Earrpsz (opt, d2es_elt) => ( s2expopt_app (opt, env); d2explst_app (d2es_elt, env) ) (* end of [D2Earrpsz] *) | D2Earrinit (s2e, asz, d2es_ini) => ( s2exp_app (s2e, env); d2expopt_app (asz, env); d2explst_app (d2es_ini, env) ) (* end of [D2Earrinit] *) // | D2Eraise(d2e) => d2exp_app(d2e, env) // | D2Eeffmask(s2fe, d2e) => d2exp_app(d2e, env) // | D2Evararg(d2es) => d2explst_app(d2es, env) // | D2Evcopyenv(knd, d2e) => d2exp_app(d2e, env) // | D2Eshowtype(d2e) => d2exp_app(d2e, env) // | D2Etempenver(d2vs) => d2varlst_app(d2vs, env) // | D2Eexist(s2a, d2e) => ( s2exparg_app (s2a, env); d2exp_app (d2e, env) ) (* end of [D2Eexist] *) // | D2Elam_dyn (lin, npf, p2ts, d2e) => ( p2atlst_app (p2ts, env); d2exp_app (d2e, env) ) (* end of [D2Elam_dyn] *) | D2Elaminit_dyn (lin, npf, p2ts, d2e) => ( p2atlst_app (p2ts, env); d2exp_app (d2e, env) ) (* end of [D2Elaminit_dyn] *) | D2Elam_met (ref, s2es_met, d2e) => ( d2varlst_app (!ref, env); s2explst_app (s2es_met, env); d2exp_app (d2e, env) ) (* end of [D2Elam_met] *) | D2Elam_sta (s2vs, s2ps_gua, d2e) => ( s2varlst_app (s2vs, env); s2explst_app (s2ps_gua, env); d2exp_app (d2e, env) ) (* end of [D2Elam_sta] *) // | D2Efix (knd, d2v_fix, d2e_body) => ( d2var_app (d2v_fix, env); d2exp_app (d2e_body, env) ) (* end of [D2Efix] *) // | D2Edelay (d2e) => d2exp_app (d2e, env) | D2Eldelay (d2e1, d2eopt2) => ( d2exp_app (d2e1, env); d2expopt_app (d2eopt2, env) ) (* end of [D2Eldelay] *) // | D2Efor ( loopinv , d2e_init, d2e_test, d2e_post, d2e_body ) => { val () = d2exp_app (d2e_init, env) val () = d2exp_app (d2e_test, env) val () = d2exp_app (d2e_post, env) val () = d2exp_app (d2e_body, env) } (* end of [D2Efor] *) | D2Ewhile (loopinv, d2e_test, d2e_body) => { val () = d2exp_app (d2e_test, env) val () = d2exp_app (d2e_body, env) } (* end of [D2Ewhile] *) // | D2Eloopexn (knd) => () // | D2Etrywith (invres, d2e, c2ls) => ( d2exp_app (d2e, env); c2laulst_app (c2ls, env) ) // | D2Esolverify(s2e) => () | D2Esolassert(d2e) => d2exp_app (d2e, env) // | D2Emac (d2mac) => () | D2Emacsyn (knd, d2e) => d2exp_app (d2e, env) | D2Emacfun (name, d2es) => d2explst_app (d2es, env) // | D2Eerrexp ((*void*)) => () // end // end of [d2exp_app] (* ****** ****** *) implement {}(*tmp*) d2explst_app (xs, env) = let in // case+ xs of | list_nil () => () | list_cons (x, xs) => ( d2exp_app(x, env); d2explst_app(xs, env) ) (* end of [list_cons] *) // end (* end of [d2explst_app] *) (* ****** ****** *) implement {}(*tmp*) labd2explst_app (lxs, env) = ( // case+ lxs of | list_nil () => () | list_cons (lx, lxs) => let val+$SYN.DL0ABELED(l, x) = lx in d2exp_app (x, env); labd2explst_app (lxs, env) end // end of [list_cons] // ) (* end of [labd2exp_app] *) (* ****** ****** *) implement {}(*tmp*) d2expopt_app (opt, env) = ( case+ opt of | Some (x) => d2exp_app (x, env) | None () => () ) (* end of [d2expopt_app] *) (* ****** ****** *) implement {}(*tmp*) d2lab_app (d2l0, env) = let in // case+ d2l0.d2lab_node of | D2LABlab (lab) => () | D2LABind (d2es) => d2explst_app (d2es, env) // end // end of [d2lab_app] (* ****** ****** *) // implement {}(*tmp*) d2lablst_app (xs, env) = synentlst_app (xs, env, d2lab_app) // (* ****** ****** *) implement {}(*tmp*) d2exparg_app (d2a0, env) = let in // case+ d2a0 of | D2EXPARGsta (loc, s2as) => s2exparglst_app (s2as, env) | D2EXPARGdyn (npf, loc, d2es) => d2explst_app (d2es, env) // end // end of [d2exparg_app] (* ****** ****** *) // implement {}(*tmp*) d2exparglst_app (xs, env) = synentlst_app (xs,env, d2exparg_app) // (* ****** ****** *) // implement {}(*tmp*) i2fcl_app (ifcl, env) = { val () = d2exp_app (ifcl.i2fcl_test, env) val () = d2exp_app (ifcl.i2fcl_body, env) } (* end of [i2fcl_app] *) // implement {}(*tmp*) i2fclist_app (xs, env) = synentlst_app (xs, env, i2fcl_app) // (* ****** ****** *) // implement {}(*tmp*) gm2at_app (gua, env) = { val () = d2exp_app (gua.gm2at_exp, env) val () = p2atopt_app (gua.gm2at_pat, env) } (* end of [gm2at] *) // implement {}(*tmp*) gm2atlst_app (xs, env) = synentlst_app (xs,env, gm2at_app) // (* ****** ****** *) // implement {}(*tmp*) c2lau_app (c2l, env) = { val () = p2atlst_app (c2l.c2lau_pat, env) val () = gm2atlst_app (c2l.c2lau_gua, env) val () = d2exp_app (c2l.c2lau_body, env) } (* end of [c2lau_app] *) // implement {}(*tmp*) c2laulst_app (xs, env) = synentlst_app (xs, env, c2lau_app) // (* ****** ****** *) // implement {}(*tmp*) sc2lau_app (sc2l, env) = { val () = sp2at_app (sc2l.sc2lau_pat, env) val () = d2exp_app (sc2l.sc2lau_body, env) } (* end of [sc2lau_app] *) // implement {}(*tmp*) sc2laulst_app (xs, env) = synentlst_app (xs, env, sc2lau_app) // (* ****** ****** *) implement {}(*tmp*) d2ecl_app (d2c0, env) = let in // case+ d2c0.d2ecl_node of // | D2Cnone () => () | D2Clist (d2cs) => d2eclist_app (d2cs, env) // | D2Csymintr (ids) => () | D2Csymelim (ids) => () // | D2Coverload (id, pval, opt) => d2itmopt_app (opt, env) // | D2Cstacsts (s2cs) => s2cstlst_app (s2cs, env) | D2Cstacons (knd, s2cs) => s2cstlst_app (s2cs, env) // (* | D2Csaspdec of s2aspdec (* for static assumption *) *) // | D2Cextype(name, s2e) => s2exp_app(s2e, env) | D2Cextvar(name, d2e) => d2exp_app(d2e, env) | D2Cextcode(knd, pos, code) => ((*void*)) // | D2Cdatdecs(int, s2cs) => d2atdecs_app(s2cs, env) | D2Cexndecs( d2cs_exn ) => d2conlst_app(d2cs_exn, env) // | D2Cdcstdecs (staext, knd, d2cs) => d2cstdecs_app(d2cs, env) // end of [D2Cdcstdecs] // | D2Cimpdec (knd, impdec) => i2mpdec_app (impdec, env) // | D2Cfundecs (knd, s2qs, f2ds) => ( s2qualst_app (s2qs, env); f2undeclst_app (f2ds, env) ) (* end of [D2Cfundecs] *) // | D2Cvaldecs (knd, v2ds) => v2aldeclst_app (v2ds, env) | D2Cvaldecs_rec (knd, v2ds) => v2aldeclst_app (v2ds, env) // | D2Cvardecs (v2ds) => v2ardeclst_app (v2ds, env) | D2Cprvardecs (pv2ds) => prv2ardeclst_app (pv2ds, env) // | D2Cinclude _ => () // | D2Cstaload _ => () | D2Cstaloadloc _ => () | D2Cdynload _ => () // | D2Clocal (d2cs1, d2cs2) => ( d2eclist_app (d2cs1, env); d2eclist_app (d2cs2, env) ) (* end of [D2Clocal] *) // | D2Cerrdec ((*void*)) => () // | _ => () // end // end of [d2ecl_app] (* // // *) (* ****** ****** *) implement {}(*tmp*) d2eclist_app (xs, env) = let in // case+ xs of | list_nil () => () | list_cons (x, xs) => ( d2ecl_app(x, env); d2eclist_app(xs, env) ) (* end of [list_cons] *) // end (* end of [d2eclist_app] *) (* ****** ****** *) implement {}(*tmp*) i2mpdec_app (impdec, env) = { // val () = d2cst_app (impdec.i2mpdec_cst, env) val () = s2varlst_app (impdec.i2mpdec_imparg, env) val () = s2explstlst_app (impdec.i2mpdec_tmparg, env) val () = s2explstlst_app (impdec.i2mpdec_tmpgua, env) val () = d2exp_app (impdec.i2mpdec_def, env) // } // end of [i2mpdec_app] (* ****** ****** *) // implement {}(*tmp*) f2undec_app (f2d, env) = { // val () = d2var_app (f2d.f2undec_var, env) val () = d2exp_app (f2d.f2undec_def, env) val () = s2expopt_app (f2d.f2undec_ann, env) // } (* end of [f2undec_app] *) // implement {}(*tmp*) f2undeclst_app (xs, env) = synentlst_app (xs, env, f2undec_app) // (* ****** ****** *) // implement {}(*tmp*) v2aldec_app (v2d, env) = { // val () = p2at_app (v2d.v2aldec_pat, env) val () = d2exp_app (v2d.v2aldec_def, env) val () = s2expopt_app (v2d.v2aldec_ann, env) // } (* end of [v2aldec_app] *) // implement {}(*tmp*) v2aldeclst_app (xs, env) = synentlst_app (xs, env, v2aldec_app) // (* ****** ****** *) // implement {}(*tmp*) v2ardec_app (v2d, env) = { // val () = s2var_app (v2d.v2ardec_svar, env) val () = d2var_app (v2d.v2ardec_dvar, env) val () = d2varopt_app (v2d.v2ardec_pfat, env) val () = s2expopt_app (v2d.v2ardec_type, env) val () = d2expopt_app (v2d.v2ardec_init, env) val () = d2varopt_app (v2d.v2ardec_dvaropt, env) // } (* end of [v2ardec_app] *) // implement {}(*tmp*) v2ardeclst_app (xs, env) = synentlst_app (xs, env, v2ardec_app) // (* ****** ****** *) // implement {}(*tmp*) prv2ardec_app (pv2d, env) = { // val () = d2var_app (pv2d.prv2ardec_dvar, env) val () = s2expopt_app (pv2d.prv2ardec_type, env) val () = d2expopt_app (pv2d.prv2ardec_init, env) // } (* end of [prv2ardec_val] *) // implement {}(*tmp*) prv2ardeclst_app (xs, env) = synentlst_app (xs, env, prv2ardec_app) // (* ****** ****** *) (* end of [pats_dynexp2_appenv.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_decl.dats0000644000175000017500000005576313431250607021576 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*UNSAFE*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> ((*void*)) = prerr ("pats_trans3_decl") // (* ****** ****** *) // staload EFF = "./pats_effect.sats" // (* ****** ****** *) // staload LOC = "./pats_location.sats" overload print with $LOC.print_location // (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" // staload "./pats_patcst2.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" // (* ****** ****** *) staload TRENV2 = "./pats_trans2_env.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) extern fun i2mpdec_tr (d2c: i2mpdec): i3mpdec extern fun f2undec_tr (f2d: f2undec): d3exp extern fun f2undeclst_tr ( knd: funkind, decarg: s2qualst, f2ds: f2undeclst ) : f3undeclst // end of [f2undeclst_tr] (* ****** ****** *) extern fun v2aldec_tr (knd: valkind, v2d: v2aldec): v3aldec extern fun v2aldeclst_tr (knd: valkind, v2ds: v2aldeclst): v3aldeclst // end of [v2aldeclst_tr] extern fun v2aldeclst_rec_tr (knd: valkind, v2ds: v2aldeclst): v3aldeclst // end of [v2aldeclst_rec_tr] (* ****** ****** *) extern fun v2ardec_tr (v2d: v2ardec): v3ardec extern fun v2ardeclst_tr (v2ds: v2ardeclst): v3ardeclst extern fun prv2ardec_tr (v2d: prv2ardec): prv3ardec extern fun prv2ardeclst_tr (v2ds: prv2ardeclst): prv3ardeclst (* ****** ****** *) extern fun d2ecl_tr_staload (d2c: d2ecl): d3ecl extern fun d2ecl_tr_staloadloc (d2c: d2ecl): d3ecl extern fun d2ecl_tr_dynload (d2c: d2ecl): d3ecl (* ****** ****** *) implement d2ecl_tr(d2c0) = let // val loc0 = d2c0.d2ecl_loc // val d3c0 = ( case+ d2c0.d2ecl_node of // | D2Cnone() => d3ecl_none (loc0) // | D2Clist(d2cs) => ( d3ecl_list(loc0, d2eclist_tr(d2cs)) ) (*D2Clist*) // | D2Csymintr _ => d3ecl_none (loc0) | D2Csymelim _ => d3ecl_none (loc0) // | D2Coverload (id, _, _) => d3ecl_none (loc0) // D2Coverload // | D2Cpragma _ => d3ecl_none (loc0) | D2Ccodegen _ => d3ecl_none (loc0) // | D2Cstacsts _ => d3ecl_none (loc0) | D2Cstacons _ => d3ecl_none (loc0) // | D2Csaspdec(d2c) => let // val loc = d2c.s2aspdec_loc val s2c = d2c.s2aspdec_cst val s2e = d2c.s2aspdec_def // val s2f_def = s2exp2hnf(s2e) val s2e_def = s2hnf2exp(s2f_def) // // HX-2017-02-01: // For handling abstypes of unspecified sized // extern fun s2cst_set_isabs ( s2c: s2cst, opt: s2expopt ) : void = "patsopts2cst_set_isabs" // val s2eoptopt = s2cst_get_isabs(s2c) // val ((*void*)) = ( case+ s2eoptopt of (*case+*) | Some(s2eopt) => ( case+ s2eopt of | None() => let val s2eopt = Some(s2e_def) in s2cst_set_isabs(s2c, s2eopt) end // end of [None] | Some _(*s2exp*) => ((*void*)) ) | None((*void*)) => ((*void*)) ) : void // end of [val] // val ((*void*)) = the_s2cstbindlst_bind_and_add(loc, s2c, s2f_def) // end of [val] in d3ecl_saspdec (loc0, d2c) end // end of [D2Csaspec] // | D2Creassume(s2c) => d3ecl_reassume(loc0, s2c) where { // val s2eopt = s2cst_get_isasp(s2c) // val ((*void*)) = ( case+ s2eopt of (*case+*) | None() => () where { val () = prerr_error3_loc(loc0); val () = prerrln! ( ": the abstype type [", s2c, "] is not yet assumed." ) (* println! *) val () = the_trans3errlst_add ( T3E_reassume_tr_isnotasp(loc0, s2c) ) (* the_trans3errlst_add *) } | Some(s2e) => () where { val () = the_s2cstbindlst_add(s2c) val () = s2cst_set_def(s2c, Some(s2e)) } (* end of [Some] *) ) : void // end of [val] // } (* end of [D2Creassume] *) // | D2Cextype (name, s2e_def) => d3ecl_extype(d2c0.d2ecl_loc, name, s2e_def) | D2Cextvar (name, d2e_def) => let val d3e_def = d2exp_trup (d2e_def) in d3ecl_extvar (d2c0.d2ecl_loc, name, d3e_def) end // end of [D2Cextvar] // | D2Cextcode (knd, pos, code) => d3ecl_extcode(loc0, knd, pos, code) // | D2Cexndecs // HX: exnconst decls (d2cs) => d3ecl_exndecs(loc0, d2cs) | D2Cdatdecs // HX: datatype decls (knd, s2cs) => d3ecl_datdecs(loc0, knd, s2cs) // | D2Cdcstdecs ( knd, dck, d2cs ) => d3ecl_dcstdecs(loc0, knd, dck, d2cs) // | D2Cimpdec (knd, d2c) => let val d3c = i2mpdec_tr(d2c) in d3ecl_impdec (loc0, knd, d3c) end // end of [D2Cimpdec] // | D2Cfundecs (knd, s2qs, f2ds) => let val f3ds = f2undeclst_tr(knd, s2qs, f2ds) // end of [val] in d3ecl_fundecs (loc0, knd, s2qs, f3ds) end // end of [D2Cfundecs] // | D2Cvaldecs (knd, v2ds) => let val v3ds = v2aldeclst_tr(knd, v2ds) // end of [val] in d3ecl_valdecs (loc0, knd, v3ds) end // end of [D2Cvaldecs] | D2Cvaldecs_rec (knd, v2ds) => let val v3ds = v2aldeclst_rec_tr(knd, v2ds) // end of [val] in d3ecl_valdecs_rec (loc0, knd, v3ds) end // end of [D2Cvaldecs_rec] // | D2Cvardecs (v2ds) => let val v3ds = v2ardeclst_tr(v2ds) in d3ecl_vardecs (loc0, v3ds) // end of [val] end // end of [D2Cvardecs] | D2Cprvardecs (v2ds) => let val v3ds = prv2ardeclst_tr(v2ds) in d3ecl_prvardecs (loc0, v3ds) // end of [val] end // end of [D2Cprvardecs] // | D2Cinclude (knd, d2cs) => let val d3cs = d2eclist_tr(d2cs) in d3ecl_include (loc0, knd, d3cs) end // end of [D2Cinclude] // | D2Cstaload _ => d2ecl_tr_staload (d2c0) | D2Cstaloadloc _ => d2ecl_tr_staloadloc (d2c0) // | D2Cdynload _ => d2ecl_tr_dynload (d2c0) // | D2Clocal (d2cs_head, d2cs_body) => let val (pf1 | ()) = the_s2cstbindlst_push () val d3cs_head = d2eclist_tr (d2cs_head) val (pf2 | ()) = the_s2cstbindlst_push () val d3cs_body = d2eclist_tr (d2cs_body) val s2cs_body = the_s2cstbindlst_pop (pf2 | (*void*)) val ((*void*)) = the_s2cstbindlst_pop_and_unbind (pf1 | (*void*)) val ((*void*)) = the_s2cstbindlst_addlst (s2cs_body) in d3ecl_local (loc0, d3cs_head, d3cs_body) end // end of [D2Clocal] // | _ => let val () = println! (loc0) val () = println! ("d2ecl_tr: d2c0 = ", d2c0) val () = assertloc (false) in exit (1) end // end of [_] // ) : d3ecl // end of [val] // in // d3c0 (* the return value *) // end // end of [d2ecl_tr] (* ****** ****** *) implement d2eclist_tr (d2cs) = (l2l)d3cs where { val d3cs = list_map_fun(d2cs, d2ecl_tr) } (* end of [d2eclist_tr] *) (* ****** ****** *) implement d2eclist_tr_errck (d2cs) = d3cs where { val d3cs = d2eclist_tr(d2cs) val () = the_trans3errlst_finalize((*void*)) } // end of [d2eclist_tr_errck] (* ****** ****** *) implement i2mpdec_tr (impdec) = let // val loc0 = impdec.i2mpdec_loc val locid = impdec.i2mpdec_locid // val d2c0 = impdec.i2mpdec_cst // val imparg = impdec.i2mpdec_imparg // val tmparg = impdec.i2mpdec_tmparg val tmpgua = impdec.i2mpdec_tmpgua // (* val () = ( println! ("d2ec_tr: D2Cimpdec: impdec = ", impdec) ) (* end of [val] *) *) // val (pf0 | ()) = trans3_env_push() val ((*void*)) = trans3_env_add_svarlst(imparg) // (* val () = trans3_env_add_proplstlst (locid, tmpgua) *) // val d3e_def = d2exp_trup(impdec.i2mpdec_def) val ((*void*)) = trans3_env_pop_and_add_main(pf0 | loc0) // in i3mpdec_make(loc0, d2c0, imparg, tmparg, d3e_def) end // end of [i2mpdec_tr] (* ****** ****** *) implement f2undec_tr (d2c0) = d3e_def where { // val opt = d2c0.f2undec_ann // val d2v_loc = d2c0.f2undec_loc val d2v_fun = d2c0.f2undec_var val d2e_def = d2c0.f2undec_def val d2v_decarg = d2var_get_decarg(d2v_fun) // val (pf0 | ()) = trans3_env_push((*void*)) val ((*void*)) = trans3_env_add_squalst(d2v_decarg) // val d3e_def = ( case+ opt of | Some(s2e_ann) => let (* val () = ( print "f2undec_tr: s2e_ann = "; print_s2exp (s2e_ann); print_newline (); print "f2undec_tr: d2e_def = "; print_d2exp (d2e_def); print_newline (); ) // end of [val] *) in d2exp_trdn(d2e_def, s2e_ann) end // end of [Some] | None((*void*)) => d2exp_trup(d2e_def) ) : d3exp // end of [val] // val ((*void*)) = trans3_env_pop_and_add_main(pf0 | d2v_loc) // } (* end of [f2undec_tr] *) (* ****** ****** *) local fun d2exp_metfun_load ( d2e0: d2exp , d2vs_fun: SHARED(d2varlst) ) : void = aux (d2e0) where { fun aux ( d2e0: d2exp ) : void = case+ d2e0.d2exp_node of | D2Elam_dyn (_, _, _, d2e) => aux (d2e) // D2Elam_dyn | D2Elam_sta (_, _, d2e) => aux (d2e) | D2Elam_met (ref, _, _) => !ref := d2vs_fun | _ (* rest-of-D2Elam *) => ((*void*)) // end of [aux] } (* end of [d2exp_metfn_load] *) fun termet_sortcheck (os2ts0: &s2rtlstopt, os2ts: s2rtlstopt): bool = let fun aux ( s2ts0: s2rtlst, s2ts: s2rtlst, sgn: &int(0) >> int ) : bool = case+ s2ts0 of | list_nil ((*void*)) => ( case+ s2ts of | list_cons _ => (sgn := ~1; true) | list_nil() => true ) (* end of [list_nil] *) | list_cons (s2t0, s2ts0) => ( case+ s2ts of | list_nil ((*void*)) => (sgn := 1; true) // end of [list_nil] | list_cons (s2t, s2ts) => if s2rt_ltmat1 (s2t, s2t0) then aux (s2ts0, s2ts, sgn) else false // end of [list_cons] ) (* end of [list_cons] *) // end of [aux] in // case+ os2ts0 of | Some s2ts0 => ( case+ os2ts of | Some s2ts => let var sgn: int = 0 val test = aux (s2ts0, s2ts, sgn) val () = if test then ( if sgn < 0 then (os2ts0 := os2ts) ) // end of [val] in test end // end of [Some] | None () => true ) // end of [Some] | None () => (os2ts0 := os2ts; true) // end // end of [termet_sortcheck] in (* in of [local] *) implement f2undeclst_tr (knd, decarg, d2cs) = let // val isrec = funkind_is_recursive (knd) // fun aux_init ( d2cs: f2undeclst , d2vs_fun: SHARED(d2varlst) , os2ts0: &s2rtlstopt ) : void = let in // case+ d2cs of | list_nil ((*void*)) => () // end of [list_nil] | list_cons (d2c, d2cs) => let val d2v_fun = d2c.f2undec_var val d2e_def = d2c.f2undec_def val () = d2exp_metfun_load (d2e_def, d2vs_fun) var s2e_fun: s2exp = ( case+ d2c.f2undec_ann of | Some s2e_ann => s2e_ann | None ((*void*)) => d2exp_syn_type (d2e_def) ) (* end of [val] *) var os2ts: s2rtlstopt = None () val opt = s2exp_metfun_load (s2e_fun, d2v_fun) val () = ( case+ opt of | ~None_vt() => () | ~Some_vt(x) => (s2e_fun := x.0; os2ts := Some(x.1)) ) : void // end of [val] (* val () = ( print "f2undeclst_tr: aux_init: d2v_fun = "; print_d2var (d2v_fun); print_newline (); print "f2undeclst_tr: aux_init: s2e_fun = "; print_s2exp (s2e_fun); print_newline (); ) // end of [val] *) val () = let val test = termet_sortcheck(os2ts0, os2ts) // end of [val] val () = if ~test then let val () = prerr_error3_loc(d2c.f2undec_loc); val () = prerrln! ( ": incompatible termination metric for this function." ) (* println! *) in the_trans3errlst_add(T3E_f2undeclst_tr_termetsrtck(d2c, os2ts)) end // end of [if] // end of [val] in (*nothing*) end // end of [val] val opt = Some (s2e_fun) val () = d2var_set_type (d2v_fun, opt) val () = d2var_set_mastype (d2v_fun, opt) in aux_init (d2cs, d2vs_fun, os2ts0) end // end of [list_cons] // end // end of [aux_ini] // fn aux_fini{n:nat} ( d2cs: list(f2undec, n) , d3es: !list_vt(d3exp, n) ) : f3undeclst = let fn f ( d2c: f2undec, d3e: d3exp ) : f3undec = let val s2e_fun = d3e.d3exp_type // s2hnf val d2v_fun = d2c.f2undec_var // d2var // // HX-2012-01-22: it is unnecessary if recursive // val () = { val opt = Some(s2e_fun) val (_) = d2var_set_type (d2v_fun, opt) val (_) = d2var_set_mastype (d2v_fun, opt) } (* end of [val] *) in f3undec_make (d2c.f2undec_loc, d2v_fun, d3e) end // end of [f] val d3cs = list_map2_fun (d2cs, $UN.castvwtp1{list(d3exp, n)}(d3es), f) // end of [val] in (l2l)d3cs end // end of [aux_fini] // val () = if isrec then let typedef a = f2undec and b = d2var val d2vs_fun = l2l ( list_map_fun (d2cs, lam (d2c) =<1> d2c.f2undec_var) ) (* end of [val] *) var os2ts0: s2rtlstopt = None () val () = aux_init (d2cs, d2vs_fun, os2ts0) in // nothing end // end of [then] // end of [if] // val d3es = list_map_fun (d2cs, f2undec_tr) // end of [val] val d3cs = aux_fini (d2cs, d3es(*list_vt*)) val ((*void*)) = list_vt_free (d3es) // in d3cs end // end of [f2undeclst_tr] end // end of [local] (* ****** ****** *) implement v2aldec_tr (knd, d2c) = let // val loc0 = d2c.v2aldec_loc val p2t_val = d2c.v2aldec_pat (* val () = ( println! ("v2aldec_tr: p2t_val = ", p2t_val) ) // end of [val] *) val isprf = valkind_is_proof (knd) val [b:bool] isprf = bool1_of_bool (isprf) val (pfopt | ()) = the_effenv_push_set_if (isprf, $EFF.effset_all) // end of [val] // val d3e_def = let val d2e = d2c.v2aldec_def val opt = d2c.v2aldec_ann // [withtype] annotation in case+ opt of | Some s2e => d2exp_trdn (d2e, s2e) | None () => d2exp_trup (d2e) end : d3exp // end of [val] // val () = the_effenv_pop_if (pfopt | isprf) // val s2e_def = d3exp_get_type (d3e_def) (* val () = ( println! ("v2aldec_tr: s2e_def = ", s2e_def) ) // end of [val] *) // val casknd = valkind2caskind (knd) // val cp2tcss = ( case+ casknd of | CK_case () => p2atcstlst_comp (list_sing (p2at2cst (p2t_val))) | CK_case_pos () => p2atcstlst_comp (list_sing (p2at2cst (p2t_val))) | CK_case_neg () => list_vt_nil () ) : p2atcstlstlst_vt // end of [val] val isexhaust = ( // HX: always true for [case-] if list_vt_is_nil (cp2tcss) then true else false ) : bool // end of [val] val () = if ~isexhaust then let val s2es = list_sing (s2e_def) val cp2tcss = p2atcstlstlst_vt_copy (cp2tcss) in trans3_env_add_patcstlstlst_false (loc0, casknd, cp2tcss, s2es) end // end of [val] val () = p2atcstlstlst_vt_free (cp2tcss) val () = if ~isexhaust then let val _(*err*) = the_effenv_caskind_check_exn (loc0, casknd) in // nothing end // end of [if] // end of [val] // val p3t_val = p2at_trdn (p2t_val, s2e_def) val () = d3lval_set_pat_type_left (d3e_def, p3t_val) // val () = the_d2varenv_add_p3at (p3t_val) val () = the_pfmanenv_add_p3at (p3t_val) // in v3aldec_make (loc0, p3t_val, d3e_def) end // end of [v2aldec_tr] (* ****** ****** *) implement v2aldeclst_tr (knd, d2cs) = let val f = lam (d2c: v2aldec) = v2aldec_tr (knd, d2c) val d3cs = list_map_cloptr (d2cs, f) val () = cloptr_free (f) in (l2l)d3cs end // end of [v2aldeclst_tr] (* ****** ****** *) implement v2aldeclst_rec_tr (knd, d2cs) = let // val p3ts = let fn aux1 ( d2c: v2aldec ) : p3at = let val p2t = d2c.v2aldec_pat val s2e_pat = (case+ d2c.v2aldec_ann of | Some s2e => s2e | None () => p2at_syn_type (p2t) ) : s2exp // end of [val] val () = // checking for nonlinearity if s2exp_is_lin (s2e_pat) then let val () = prerr_error3_loc (p2t.p2at_loc) val () = prerr ": this pattern cannot be assigned a linear type." val () = prerr_newline () in the_trans3errlst_add (T3E_v2aldeclst_rec_tr_linearity (d2c, s2e_pat)) end // end of [if] in p2at_trdn (p2t, s2e_pat) end // end of [aux1] in l2l (list_map_fun (d2cs, aux1)) end // end of [val] // val d3cs = let fun aux2 ( d2c: v2aldec, p3t: p3at ) : v3aldec = let val d2e_def = d2c.v2aldec_def val s2e_pat = p3at_get_type (p3t) val d3e_def = d2exp_trdn (d2e_def, s2e_pat) in v3aldec_make (d2c.v2aldec_loc, p3t, d3e_def) end // end of [aux2] in l2l (list_map2_fun (d2cs, p3ts, aux2)) end // end of [val] // in d3cs end // end of [v2aldeclst_rec_tr] (* ****** ****** *) local fun auxInitCK ( loc0: loc_t , d2v: d2var, s2e1: s2exp, s2e2: s2exp ) : void = let val tszeq = s2exp_tszeq (s2e1, s2e2) in // if ~tszeq then let val () = prerr_error3_loc (loc0) val () = prerr ": initialization for [" val () = prerr_d2var (d2v) val () = prerr "] cannot be performed properly" val () = prerr ": mismatch of var/val type-sizes:\n" val () = (prerr "var: ["; prerr_s2exp (s2e1); prerr "]") val () = prerr_newline () val () = (prerr "val: ["; prerr_s2exp (s2e2); prerr "]") val () = prerr_newline () in the_trans3errlst_add (T3E_s2exp_assgn_tszeq (loc0, s2e1, s2e2)) end // end of [if] // end of [val] // end // end of [auxInitCK] in (* in of [local] *) implement v2ardec_tr (v2d) = let // val loc0 = v2d.v2ardec_loc val stadyn = v2d.v2ardec_knd val d2v = v2d.v2ardec_dvar val locvar = d2var_get_loc (d2v) val ann = v2d.v2ardec_type val init2 = v2d.v2ardec_init var init3 : d3expopt = None () // val s2e0 = ( case+ ann of | Some s2e_ann => ( case+ init2 of | Some (d2e) => let val d3e = d2exp_trup (d2e) val () = init3 := Some (d3e) val () = d3exp_open_and_add (d3e) val s2e = d3exp_get_type (d3e) val () = auxInitCK (loc0, d2v, s2e_ann, s2e) val () = d2var_set_type (d2v, Some s2e) in s2e_ann end // end of [Some] | None () => let val s2e = s2exp_topize_0 (s2e_ann) val () = d2var_set_type (d2v, Some (s2e)) in s2e_ann end // end of [None] ) // end of [Some] | None () => ( case+ init2 of | Some (d2e) => let val d3e = d2exp_trup (d2e) val () = init3 := Some (d3e) val () = d3exp_open_and_add (d3e) val s2e = d3exp_get_type (d3e) val () = d2var_set_type (d2v, Some (s2e)) in s2exp_topize_0 (s2e) end // end of [Some] | None () => let val s2e = s2exp_Var_make_srt (locvar, s2rt_t0ype) val () = d2var_set_type (d2v, Some (s2e)) in s2e end // end of [None] ) // end of [None] ) : s2exp // end of [val] (* val () = println! ("v2ardec_tr: s2e0 = ", s2e0) *) val d2vw = d2var_mutablize (locvar, d2v, s2e0, v2d.v2ardec_pfat) val-Some(s2l) = d2var_get_addr (d2v) // val s2e0_top = s2exp_topize_0 (s2e0) val s2at0_top = s2exp_at (s2e0_top, s2l) val ((*void*)) = d2var_set_finknd (d2vw, D2VFINsome_lvar (s2at0_top)) // val d2vopt = v2d.v2ardec_dvaropt val () = ( case+ d2vopt of | None () => () | Some (d2v2) => { val () = d2var_set_type (d2v2, d2var_get_type (d2v)) val () = d2var_set_mastype (d2v2, d2var_get_mastype (d2v)) } ) (* end of [val] *) // val d3c = v3ardec_make (loc0, stadyn, d2v, d2vw, s2e0, init3, d2vopt) // end of [val] val () = the_d2varenv_add_dvar (d2v) val () = the_pfmanenv_add_dvar (d2v) // in d3c end // end of [v2ardec_tr] end // end of [local] (* ****** ****** *) implement v2ardeclst_tr (v2ds) = let // val ( ) = list_app_fun ( v2ds , lam v2d =<1> trans3_env_add_svar (v2d.v2ardec_svar) // end of [lam] ) // end of [fcall] // end of [val] // in list_of_list_vt (list_map_fun (v2ds, v2ardec_tr)) end // end of [v2ardeclst_tr] (* ****** ****** *) implement prv2ardec_tr (v2d) = let // val loc = v2d.prv2ardec_loc val d2v = v2d.prv2ardec_dvar val loc_d2v = d2var_get_loc (d2v) val () = d2var_set_linval (d2v, 0) // val s2eopt = v2d.prv2ardec_type // val d2e = ( case+ v2d.prv2ardec_init of | Some (d2e) => d2e | None () => d2exp_empty (loc_d2v) ) : d2exp // end of [val] // val d3e = ( case+ s2eopt of | Some (s2e) => d2exp_trdn (d2e, s2e) | None () => d2exp_trup (d2e) ) : d3exp // end of [val] // val s2e = d3exp_get_type (d3e) val s2f = s2exp2hnf (s2e) val s2e = s2hnf_opnexi_and_add (loc_d2v, s2f) val () = d2var_set_type (d2v, Some (s2e)) // val () = the_d2varenv_add_dvar (d2v) val () = the_pfmanenv_add_dvar (d2v) // in prv3ardec_make (loc, d2v, s2e, d3e) end // end of [prv2ardec_tr] implement prv2ardeclst_tr (v2ds) = list_of_list_vt (list_map_fun (v2ds, prv2ardec_tr)) // end of [prv2ardeclst_tr] (* ****** ****** *) implement d2ecl_tr_staload (d2c0) = let // val loc0 = d2c0.d2ecl_loc val-D2Cstaload ( idopt, fil, loadflag, fenv, loaded ) = d2c0.d2ecl_node // end of [val] val () = let val opt = filenv_get_d3eclistopt (fenv) in case+ opt of | Some _ => () | None _ => let val d2cs = $TRENV2.filenv_get_d2eclist(fenv) // end of [val] val (pfpush|()) = the_s2cstbindlst_push() val d3cs = d2eclist_tr (d2cs) val () = the_s2cstbindlst_pop_and_unbind(pfpush|(*none*)) val p = $TRENV2.filenv_getref_d3eclistopt(fenv) val () = $UN.ptrset (p, Some(d3cs)) in // nothing end // end of [None] end // end of [val] // in d3ecl_staload(loc0, idopt, fil, loadflag, fenv, loaded) end // end of [d2ecl_tr_staload] (* ****** ****** *) implement d2ecl_tr_staloadloc (d2c0) = let // val loc0 = d2c0.d2ecl_loc // val-D2Cstaloadloc (pfil, nspace, fenv) = d2c0.d2ecl_node // val d2cs = $TRENV2.filenv_get_d2eclist(fenv) // val (pfpush|()) = the_s2cstbindlst_push() val d3cs = d2eclist_tr(d2cs) val () = the_s2cstbindlst_pop_and_unbind(pfpush|(*none*)) // val p0 = $TRENV2.filenv_getref_d3eclistopt(fenv) val () = $UN.ptrset (p0, Some(d3cs)) // in d3ecl_staloadloc(loc0, pfil, nspace, fenv) end // end of [d2ecl_tr_staloadloc] (* ****** ****** *) implement d2ecl_tr_dynload (d2c0) = let // val loc0 = d2c0.d2ecl_loc val-D2Cdynload (cfil) = d2c0.d2ecl_node // in d3ecl_dynload (loc0, cfil) end // end of [d2ecl_tr_dynload] (* ****** ****** *) (* end of [pats_trans3_decl.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3_init.dats0000644000175000017500000003002513431250607022647 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload INTINF = "./pats_intinf.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_constraint3.sats" (* ****** ****** *) local // fun f_identity ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es in s3exp_make (env, s2e1) end // end of [identity] // // HX: functions on static booleans // fun f_neg_bool ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e, s2es) = s2es val s3be = s3exp_make (env, s2e) in s3exp_bneg (s3be) end // end of [f_neg_bool] // fun f_add_bool_bool ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3be1 = s3exp_make (env, s2e1) val s3be2 = s3exp_make (env, s2e2) in s3exp_badd (s3be1, s3be2) end // end of [f_add_bool_bool] // fun f_mul_bool_bool ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3be1 = s3exp_make (env, s2e1) val s3be2 = s3exp_make (env, s2e2) in s3exp_bmul (s3be1, s3be2) end // end of [f_mul_bool_bool] // fun f_eq_bool_bool ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3be1 = s3exp_make (env, s2e1) val s3be2 = s3exp_make (env, s2e2) in s3exp_beq (s3be1, s3be2) end // end of [f_eq_bool_bool] // fun f_neq_bool_bool ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3be1 = s3exp_make (env, s2e1) val s3be2 = s3exp_make (env, s2e2) in s3exp_bneq (s3be1, s3be2) end // end of [f_neq_bool_bool] // // HX: functions on static integers // fun f_neg_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) in s3exp_ineg (s3ie1) end // end of [f_neg_int] // fun f_add_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) val s3ie2 = s3exp_make (env, s2e2) in s3exp_iadd (s3ie1, s3ie2) end // end of [f_add_int_int] // fun f_sub_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) val s3ie2 = s3exp_make (env, s2e2) in s3exp_isub (s3ie1, s3ie2) end // end of [f_sub_int_int] // fun f_mul_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) val s3ie2 = s3exp_make (env, s2e2) in s3exp_imul (s3ie1, s3ie2) end // end of [f_mul_int_int] // fun f_ndiv_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val s2c = s2cstref_get_cst (the_ndivrel_int_int_int) val s2v = s2vbcfenv_replace_cstapp (env, s2rt_int, s2c, s2es) in s3exp_var (s2v) end // end of [f_ndiv_int_int] fun f_idiv_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val s2es0 = s2es val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val sgn = ( case+ s2e2.s2exp_node of | S2Eint (i) => compare_int_int (i, 0) | S2Eintinf (i) => $INTINF.compare_intinf_int (i, 0) | _ => 0 (* HX: no integer constant *) ) : int // end of [val] val s2c = ( if sgn != 0 then s2cstref_get_cst (the_ndivrel_int_int_int) else s2cstref_get_cst (the_idivrel_int_int_int) ) : s2cst // end of [val] // // HX: note that x/y = ~(x/(~y)) if y < 0 // val s2es = ( if sgn >= 0 then s2es0 else list_pair (s2e1, s2exp_ineg (s2e2)) // end of [if] ) : s2explst // end of [val] val s2v = s2vbcfenv_replace_cstapp (env, s2rt_int, s2c, s2es) val s3e = s3exp_var (s2v) in if sgn >= 0 then s3e else s3exp_ineg (s3e) end // end of [f_idiv_int_int] // fun f_lt_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) val s3ie2 = s3exp_make (env, s2e2) in s3exp_ilt (s3ie1, s3ie2) end // end of [f_lt_int_int] // fun f_lte_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) val s3ie2 = s3exp_make (env, s2e2) in s3exp_ilte (s3ie1, s3ie2) end // end of [f_lte_int_int] // fun f_gt_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) val s3ie2 = s3exp_make (env, s2e2) in s3exp_igt (s3ie1, s3ie2) end // end of [f_gt_int_int] // fun f_gte_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) val s3ie2 = s3exp_make (env, s2e2) in s3exp_igte (s3ie1, s3ie2) end // end of [f_gte_int_int] // fun f_eq_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) val s3ie2 = s3exp_make (env, s2e2) in s3exp_ieq (s3ie1, s3ie2) end // end of [f_eq_int_int] // fun f_neq_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val-list_cons (s2e1, s2es) = s2es val-list_cons (s2e2, s2es) = s2es val s3ie1 = s3exp_make (env, s2e1) val s3ie2 = s3exp_make (env, s2e2) in s3exp_ineq (s3ie1, s3ie2) end // end of [f_neq_int_int] // fun f_abs_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val s2c = s2cstref_get_cst (the_absrel_int_int) val s2v = s2vbcfenv_replace_cstapp (env, s2rt_int, s2c, s2es) in s3exp_var (s2v) end // end of [f_abs_int] // fun f_sgn_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val s2c = s2cstref_get_cst (the_sgnrel_int_int) val s2v = s2vbcfenv_replace_cstapp (env, s2rt_int, s2c, s2es) in s3exp_var (s2v) end // end of [f_sgn_int] // fun f_max_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val s2c = s2cstref_get_cst (the_maxrel_int_int_int) val s2v = s2vbcfenv_replace_cstapp (env, s2rt_int, s2c, s2es) in s3exp_var (s2v) end // end of [f_max_int_int] // fun f_min_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val s2c = s2cstref_get_cst (the_minrel_int_int_int) val s2v = s2vbcfenv_replace_cstapp (env, s2rt_int, s2c, s2es) in s3exp_var (s2v) end // end of [f_min_int_int] // fun f_ifint_bool_int_int ( env: &s2vbcfenv, s2es: s2explst ) : s3exp = let val s2c = s2cstref_get_cst (the_ifintrel_bool_int_int_int) val s2v = s2vbcfenv_replace_cstapp (env, s2rt_int, s2c, s2es) in s3exp_var (s2v) end // end of [f_ifint_bool_int_int] // // HX: functions on static addresses // (* // fun f_add_addr_int = f_add_int_int fun f_sub_addr_int = f_sub_int_int fun f_sub_addr_addr = f_sub_int_int // fun f_lt_addr_addr = f_lt_int_int fun f_lte_addr_addr = f_lte_int_int fun f_gt_addr_addr = f_gt_int_int fun f_gte_addr_addr = f_gte_int_int fun f_eq_addr_addr = f_eq_int_int fun f_neq_addr_addr = f_neq_int_int // *) // // HX: functions on static classes // fun f_lte_cls_cls ( env: &s2vbcfenv, s2es0: s2explst ) : s3exp = let // (* val () = println! ("f_lte_cls_cls: s2es = ", s2es0) *) // val s2c = s2cstref_get_cst (the_lte_cls_cls) // val-list_cons (s2e1, s2es1) = s2es0 val-list_cons (s2e2, s2es2) = s2es1 // val s2e1 = s2exp_hnfize (s2e1) and s2e2 = s2exp_hnfize (s2e2) // in // case+ ( s2e1.s2exp_node , s2e2.s2exp_node ) of (* caseof *) | (S2Ecst (s2c1), S2Ecst (s2c2)) => ( s3exp_bool (s2cst_lte_cls_cls (s2c1, s2c2)) ) | (_, _) => let val s2c_rel = s2cstref_get_cst (the_lterel_cls_cls) val s2v_res = s2vbcfenv_replace_cstapp (env, s2rt_bool, s2c_rel, s2es0) // end of [val] (* val ((*void*)) = println! ("f_lte_cls_cls: s2v_res = ", s2v_res) *) in s3exp_bvar (s2v_res) end // end of [_, _] end // end of [f_lte_cls_cls] // (* ****** ****** *) in (* in of [local] *) (* ****** ****** *) implement constraint3_initialize_map (map) = let // typedef tfun = (&s2vbcfenv, s2explst) - s3exp // fun ins ( map: &s2cfunmap, r: s2cstref, f: tfun ) : void = let val s2c = s2cstref_get_cst (r) val map1 = $UN.cast {s2cstmap(tfun)} (map) val map2 = s2cstmap_add (map1, s2c, f) val () = map := $UN.cast {s2cfunmap} (map2) in (*nothing*) end // end of [ins] // val () = ins (map, the_neg_bool, f_neg_bool) val () = ins (map, the_add_bool_bool, f_add_bool_bool) val () = ins (map, the_mul_bool_bool, f_mul_bool_bool) val () = ins (map, the_eq_bool_bool, f_eq_bool_bool) val () = ins (map, the_neq_bool_bool, f_neq_bool_bool) // val () = ins (map, the_neg_int, f_neg_int) val () = ins (map, the_add_int_int, f_add_int_int) val () = ins (map, the_sub_int_int, f_sub_int_int) val () = ins (map, the_mul_int_int, f_mul_int_int) val () = ins (map, the_div_int_int, f_idiv_int_int) val () = ins (map, the_ndiv_int_int, f_ndiv_int_int) val () = ins (map, the_idiv_int_int, f_idiv_int_int) // val () = ins (map, the_lt_int_int, f_lt_int_int) val () = ins (map, the_lte_int_int, f_lte_int_int) val () = ins (map, the_gt_int_int, f_gt_int_int) val () = ins (map, the_gte_int_int, f_gte_int_int) val () = ins (map, the_eq_int_int, f_eq_int_int) val () = ins (map, the_neq_int_int, f_neq_int_int) // val () = ins (map, the_abs_int, f_abs_int) val () = ins (map, the_sgn_int, f_sgn_int) val () = ins (map, the_max_int_int, f_max_int_int) val () = ins (map, the_min_int_int, f_min_int_int) // val () = ins (map, the_ifint_bool_int_int, f_ifint_bool_int_int) // (* val () = ins (map, the_int_of_bool, f_int_of_bool) val () = ins (map, the_bool_of_int, f_bool_of_int) *) (* val () = ins (map, the_int_of_char, f_identity) // HX: removed val () = ins (map, the_char_of_int, f_identity) // HX: removed *) val () = ins (map, the_int_of_addr, f_identity) val () = ins (map, the_addr_of_int, f_identity) // val () = ins (map, the_add_addr_int, f_add_int_int) val () = ins (map, the_sub_addr_int, f_sub_int_int) val () = ins (map, the_sub_addr_addr, f_sub_int_int) // val () = ins (map, the_lt_addr_addr, f_lt_int_int) val () = ins (map, the_lte_addr_addr, f_lte_int_int) val () = ins (map, the_gt_addr_addr, f_gt_int_int) val () = ins (map, the_gte_addr_addr, f_gte_int_int) val () = ins (map, the_eq_addr_addr, f_eq_int_int) val () = ins (map, the_neq_addr_addr, f_neq_int_int) // val () = ins (map, the_lte_cls_cls, f_lte_cls_cls) (* val () = ins (map, the_gte_cls_cls, f_gte_cls_cls) *) // in (*nothing*) end // end of [constraint3_initialize_map] (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [pats_constraint3_init.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_decl.dats0000644000175000017500000005777213431250607021467 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" // (* ****** ****** *) // staload "./pats_basics.sats" // (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<>() = prerr "pats_ccomp_decl" // (* ****** ****** *) // staload GLOBAL = "./pats_global.sats" // (* ****** ****** *) // staload LOC = "./pats_location.sats" overload print with $LOC.print_location // (* ****** ****** *) // staload "./pats_staexp2.sats" // staload D2E = "./pats_dynexp2.sats" // typedef d2cst = $D2E.d2cst // typedef dynexp2_funlabopt = $D2E.funlabopt // overload print with $D2E.print_d2var // (* ****** ****** *) staload "./pats_trans2_env.sats" (* ****** ****** *) staload "./pats_trans3.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_typerase.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) assume ccomp_instrlst_type = instrlst (* ****** ****** *) extern fun hisaspdec_ccomp (env: !ccompenv, hid0: hidecl): primdec // end of [hidsaspdec_ccomp] extern fun hireassume_ccomp (env: !ccompenv, hid0: hidecl): primdec // end of [hidreassume_ccomp] extern fun hiextvar_ccomp (env: !ccompenv, hid0: hidecl): primdec // end of [hidextvar_ccomp] extern fun hiextype_ccomp (env: !ccompenv, hid0: hidecl): primdec // end of [hidextype_ccomp] extern fun hiextcode_ccomp (env: !ccompenv, hid0: hidecl): primdec // end of [hidextcode_ccomp] extern fun hidatdecs_ccomp (env: !ccompenv, hid0: hidecl): primdec // end of [hidatdecs_ccomp] extern fun hiexndecs_ccomp (env: !ccompenv, hid0: hidecl): primdec // end of [hiexndecs_ccomp] (* ****** ****** *) extern fun hivaldeclst_ccomp ( env: !ccompenv , lvl0: int, knd: valkind, hvds: hivaldeclst ) : instrlst // end of [hivaldeclst_ccomp] extern fun hivaldeclst_ccomp_rec ( env: !ccompenv , lvl0: int, knd: valkind, hvds: hivaldeclst ) : instrlst // end of [hivaldeclst_ccomp_rec] extern fun hivardeclst_ccomp (env: !ccompenv, lvl0: int, hvds: hivardeclst): instrlst // end of [hivardeclst_ccomp] (* ****** ****** *) implement hidecl_ccomp (env, hid0) = let // val loc0 = hid0.hidecl_loc // in // case+ hid0.hidecl_node of // | HIDnone () => primdec_none (loc0) // | HIDlist (hids) => let val pmds = hideclist_ccomp(env, hids) in primdec_list(loc0, pmds) // end of [val] end // end of [HIDlist] // | HIDsaspdec _ => hisaspdec_ccomp(env, hid0) // | HIDreassume _ => hireassume_ccomp(env, hid0) // | HIDextype _ => hiextype_ccomp (env, hid0) | HIDextvar _ => hiextvar_ccomp (env, hid0) | HIDextcode _ => hiextcode_ccomp (env, hid0) // | HIDdatdecs _ => hidatdecs_ccomp (env, hid0) | HIDexndecs _ => hiexndecs_ccomp (env, hid0) // | HIDdcstdecs (dck, d2cs) => primdec_none (loc0) // | HIDimpdec (_(*knd*), imp) => let val d2c = imp.hiimpdec_cst val lvl0 = the_d2varlev_get () val ((*void*)) = hiimpdec_ccomp (env, lvl0, imp, 0(*local*)) // end of [val] in primdec_impdec (loc0, imp) end // end of [HIDimpdec] // | HIDfundecs (knd, decarg, hfds) => let // val lvl0 = the_d2varlev_get () val ((*void*)) = hifundeclst_ccomp (env, lvl0, knd, decarg, hfds) // end of [val] // in primdec_fundecs(loc0, knd, decarg, hfds) end // end of [HIDfundecs] // | HIDvaldecs (knd, hvds) => let val lvl0 = the_d2varlev_get() val inss = hivaldeclst_ccomp(env, lvl0, knd, hvds) in primdec_valdecs(loc0, knd, hvds, inss) end // end of [HIDvaldecs] | HIDvaldecs_rec (knd, hvds) => let // val lvl0 = the_d2varlev_get() val inss = hivaldeclst_ccomp_rec(env, lvl0, knd, hvds) // in primdec_valdecs_rec (loc0, knd, hvds, inss) end // end of [HIDvaldecs_rec] // | HIDvardecs (hvds) => let // val lvl0 = the_d2varlev_get() val inss = hivardeclst_ccomp(env, lvl0, hvds) // in primdec_vardecs (loc0, hvds, inss) end // end of [HIDvardecs] // | HIDinclude (knd, hids) => let (* val () = println! ("hidecl_ccomp: HIDinclude: loc0 = ", loc0) val () = println! ("hidecl_ccomp: HIDinclude: hid0 = ", hid0) *) val pmds = hideclist_ccomp(env, hids) in primdec_include(loc0, knd, pmds) end // end of [HIDinclude] // | HIDstaload ( idopt, cfil, flag, fenv, loaded ) => let (* val () = println! ("hidecl_ccomp: HIDstaload: loc0 = ", loc0) val () = println! ("hidecl_ccomp: HIDstaload: hid0 = ", hid0) *) val () = the_staloadlst_add(hid0) val () = ccompenv_add_staload(env, fenv) in primdec_staload (loc0, hid0) end // end of [HIDstaload] // | HIDstaloadloc (pfil, nspace, hids) => let val (pf | ()) = ccompenv_push (env) val pmds = hideclist_ccomp (env, hids) val ((*void*)) = ccompenv_pop (pf | env) in primdec_staloadloc (loc0, pfil, nspace, pmds) end // end of [HIDtsaloadloc] // | HIDdynload _ => let (* val () = println! ("hidecl_ccomp: HIDdynload: loc0 = ", loc0) val () = println! ("hidecl_ccomp: HIDdynload: hid0 = ", hid0) *) val () = the_dynloadlst_add (hid0) in primdec_dynload (loc0, hid0) end // end of [HIDdynload] // | HIDlocal ( hids_head, hids_body ) => let // // HX-2015-09-15: // Note that locally defined templates can be // accessed in template instances that are outside // the local-scope, but local implements cannot. // Please find the details in [ccompenv_localjoin]. // val (pf1|()) = ccompenv_push (env) val pmds_head = hideclist_ccomp (env, hids_head) val (pf2|()) = ccompenv_push (env) val pmds_body = hideclist_ccomp (env, hids_body) val ((*void*)) = ccompenv_localjoin (pf1, pf2 | env) // in primdec_local (loc0, pmds_head, pmds_body) end // end of [HIDlocal] // (* | _ => let val () = println! ("hidecl_ccomp: loc0 = ", loc0) val () = println! ("hidecl_ccomp: hid0 = ", hid0) in exitloc (1) end // end of [_] *) // end // end of [hidecl_ccomp] (* ****** ****** *) implement hideclist_ccomp (env, hids) = let // fun loop ( env: !ccompenv , hids: hideclist , pmds: &primdeclst_vt? >> primdeclst_vt ) : void = let in // case+ hids of | list_cons (hid, hids) => let val pmd = hidecl_ccomp (env, hid) val () = pmds := list_vt_cons{..}{0}(pmd, ?) val list_vt_cons (_, !p_pmds2) = pmds val () = loop (env, hids, !p_pmds2) prval () = fold@ (pmds) in // nothing end // end of [list_cons] | list_nil () => let val () = pmds := list_vt_nil () in (*nothing*) end // end of [list_nil] // end // end of [loop] // var pmds: primdeclst_vt val () = loop (env, hids, pmds) // in // list_of_list_vt (pmds) // end // end of [hideclist_ccomp] (* ****** ****** *) implement hideclist_ccomp0 (hids) = let // val env = ccompenv_make () val pmds = hideclist_ccomp (env, hids) val () = ccompenv_free (env) // in pmds end // end of [hideclist_ccomp0] (* ****** ****** *) implement hisaspdec_ccomp (env, hid0) = let // val loc0 = hid0.hidecl_loc val-HIDsaspdec(d2c) = hid0.hidecl_node // val ((*void*)) = the_saspdeclst_add(hid0) // in primdec_saspdec(loc0, d2c) end // end of [hisaspdec_ccomp] (* ****** ****** *) // implement hireassume_ccomp (env, hid0) = primdec_none(hid0.hidecl_loc) // (* ****** ****** *) implement hiextype_ccomp (env, hid0) = let // val loc0 = hid0.hidecl_loc val-HIDextype (name, hse_def) = hid0.hidecl_node val _(*hit*) = hisexp_typize (0(*flag*), hse_def) val () = the_extypelst_add (hid0) // in primdec_none (loc0) end // end of [hiextype_ccomp] (* ****** ****** *) implement hiextvar_ccomp (env, hid0) = let // val loc0 = hid0.hidecl_loc val-HIDextvar (name, hde_def) = hid0.hidecl_node var res : instrseq = instrseq_make_nil() val pmv_def = hidexp_ccomp (env, res, hde_def) val () = instrseq_add_extvar (res, loc0, name, pmv_def) val inss = instrseq_get_free (res) // (* // HX-2014-09-09: // [name] is assumed to // have been declared externally // val () = the_extvarlst_add (hid0) *) // in primdec_extvar (loc0, name, inss) end // end of [hiextvar_ccomp] (* ****** ****** *) implement hiextcode_ccomp (env, hid0) = let // val loc0 = hid0.hidecl_loc val () = the_extcodelst_add (hid0) // in primdec_none (loc0) end // end of [hiextcode_ccomp] (* ****** ****** *) implement hidatdecs_ccomp (env, hid0) = let // val loc0 = hid0.hidecl_loc val-HIDdatdecs (knd, s2cs) = hid0.hidecl_node val isprf = test_prfkind (knd) // in // if isprf then primdec_none (loc0) else primdec_datdecs (loc0, s2cs) // end of [if] // end // end of [hidatdecs_ccomp] (* ****** ****** *) implement hiexndecs_ccomp (env, hid0) = let // val loc0 = hid0.hidecl_loc val-HIDexndecs (d2cs) = hid0.hidecl_node // val () = the_exndeclst_add (hid0) // in primdec_exndecs (loc0, d2cs) end // end of [hiexndecs_ccomp] (* ****** ****** *) local fun auxinit {n:nat} .. ( env: !ccompenv, lvl0: int , decarg: s2qualst, hfds: list (hifundec, n), i: int ) : list (funlab, n) = let in // case+ hfds of | list_nil ((*void*)) => list_nil() | list_cons (hfd, hfds) => let // val loc = hfd.hifundec_loc val d2v = hfd.hifundec_var // (* val () = println! ("auxinit: loc = ", loc) val () = println! ("auxinit: d2v = ", d2v) *) // val () = $D2E.d2var_set_level(d2v, lvl0) // end of [val] val-Some(hse) = d2var_get2_hisexp(d2v) val fcopt = None_vt() // HX: by [hse] // val flab = funlab_make_dvar_type(d2v, hse, fcopt) // end of [val] // // HX: only the first fnx-decl is added!!! // val () = ( if i <= 1 then the_funlablst_add(flab) // end of [if] ) : void // end of [val] // val tmplev = ccompenv_get_tmplevel(env) // val pmv = ( if tmplev = 0 then primval_make_funlab(loc, flab) else primval_make_d2vfunlab(loc, d2v, flab) // end of [if] ) : primval // end of [val] // val ((*void*)) = ccompenv_add_vbindmapenvall(env, d2v, pmv) // val istmp = ( if tmplev > 0 then true else list_is_cons(decarg) // end of [if] ) : bool // end of [val] val () = if istmp then funlab_set_tmpknd(flab, 1) // val () = ( case+ decarg of | list_nil _ => () | list_cons _ => ccompenv_add_fundec(env, hfd) ) : void // end of [val] // val i2 = (if i >= 1 then i + 1 else i): int val flabs = auxinit (env, lvl0, decarg, hfds, i2) in list_cons(flab, flabs) end // end of [list_cons] // end // end of [auxinit] (* ****** ****** *) fun auxmain {n:nat} .. ( env: !ccompenv, decarg: s2qualst , hfds: list(hifundec, n), flabs: list(funlab, n), i: int ) : void = let in // case+ hfds of | list_nil ((*void*)) => let val+list_nil () = flabs in (*nothing*) end // end of [list_nil] | list_cons (hfd, hfds) => let val loc = hfd.hifundec_loc val d2v = hfd.hifundec_var val imparg = hfd.hifundec_imparg val hde_def = hfd.hifundec_def // // HX-2016-08-05: // It may be a good idea to do this check earlier!!! // val () = case+ hde_def.hidexp_node of // case+ | HDElam _ => () | _(*non-HDElam*) => { val () = prerr_errccomp_loc(loc) val () = prerrln! ( ": non-lambda function definition is not supported." ) (* end of [prerrln!] *) val ((*exit*)) = exitloc(1) } (* end of [non-HDElam] *) // val- HDElam ( knd, hips_arg, hde_body ) = hde_def.hidexp_node // val+list_cons(flab, flabs) = flabs // val () = ( if i = 0 then ccompenv_inc_tailcalenv(env, flab) // end of [if] ) // end of [val] // val istmp = list_is_cons(decarg) val () = if istmp then ccompenv_inc_tmplevel(env) // end of [val] // val tmparg = list_nil(*s2ess*) // matching all? val prolog = list_sing(instr_funlab (loc, flab)) // val fent = hidexp_ccomp_funlab_arg_body ( env, flab , imparg, tmparg, prolog, loc, hips_arg, hde_body ) // end of [fcall] // end of [val] // val () = if istmp then ccompenv_dec_tmplevel(env) val () = if i = 0 then ccompenv_dec_tailcalenv(env) // val () = if i > 0 then tmpvar_inc_tailcal(funent_get_tmpret(fent)) // end of [if] // end of [val] // val () = hifundec_set_funlabopt(hfd, Some(flab)) // end of [val] val () = funlab_set_funent(flab, Some(fent)) // val i2 = (if i >= 1 then i + 1 else i): int // in auxmain(env, decarg, hfds, flabs, i2) end // end of [let] // end of [list_cons] // end // end of [auxmain] in (* in of [local] *) implement hifundeclst_ccomp ( env, lvl0, knd, decarg, hfds ) = let // val tlcalopt = $GLOBAL.the_CCOMPATS_tlcalopt_get() val isfnx = ( if tlcalopt > 0 then funkind_is_mutailrec(knd) else false ) : bool // end of [val] // val i0 = (if isfnx then 1 else 0): int // val flabs = auxinit (env, lvl0, decarg, hfds, i0) // val () = if isfnx then let val flabs = list_copy (flabs) in ccompenv_inc_tailcalenv_fnx (env, flabs) end // end of [if] // end of [val] // val () = auxmain (env, decarg, hfds, flabs, i0) // val () = if isfnx then let val-list_cons (fl0, _) = flabs val-Some(fent0) = funlab_get_funent (fl0) val () = funent_set_fnxlablst (fent0, flabs) in ccompenv_dec_tailcalenv (env) end // end of [if] // in // nothing end // end of [hifundeclst_ccomp] end // end of [local] (* ****** ****** *) local fun aux ( env: !ccompenv , res: !instrseq , lvl0: int, knd: valkind, hvd: hivaldec ) : void = let val loc = hvd.hivaldec_loc val hde_def = hvd.hivaldec_def val pmv_def = hidexp_ccompv(env, res, hde_def) // non-lvalue // (* val () = println! ( "hivaldeclst_ccomp: aux: pmv_def = ", pmv_def ) (* println! *) *) // val hip = hvd.hivaldec_pat val fail = ( case+ knd of | VK_val_pos() => PTCKNTnone() | _ => PTCKNTcaseof_fail(loc) ) : patckont // end of [val] val () = hipatck_ccomp(env, res, fail, hip, pmv_def) val () = himatch2_ccomp(env, res, lvl0, hip, pmv_def) in // nothing end // end of [aux] fun auxlst ( env: !ccompenv , res: !instrseq , lvl0: int, knd: valkind, hvds: hivaldeclst ) : void = let in // case+ hvds of | list_nil ((*void*)) => () // end of [list_nil] | list_cons (hvd, hvds) => let val () = aux (env, res, lvl0, knd, hvd) val () = auxlst (env, res, lvl0, knd, hvds) in // nothing end // end of [list_cons] // end // end of [auxlst] in (* in of [local] *) implement hivaldeclst_ccomp ( env, lvl0, knd, hvds ) = let // var res : instrseq = instrseq_make_nil((*void*)) val () = auxlst(env, res, lvl0, knd, hvds) // in instrseq_get_free(res) end // end of [hivaldeclst_ccomp] end // end of [local] (* ****** ****** *) local fun auxinit {n:nat} .. ( env: !ccompenv , res: !instrseq , lvl0: int , hvds: list (hivaldec, n) ) : list_vt (tmpvar, n) = let in // case+ hvds of | list_nil ( (*void*) ) => list_vt_nil() | list_cons (hvd, hvds) => let val hip = hvd.hivaldec_pat val loc = hip.hipat_loc val hse = hip.hipat_type val tmp = tmpvar_make(loc, hse) val () = instrseq_add_tmpdec(res, loc, tmp) val pmv = primval_tmp(loc, hse, tmp) val () = himatch2_ccomp(env, res, lvl0, hip, pmv) val tmps = auxinit(env, res, lvl0, hvds) in list_vt_cons (tmp, tmps) end // end of [list_cons] // end // end of [auxinit] fun auxmain {n:nat} .. ( env: !ccompenv , res: !instrseq , hvds: list(hivaldec, n) , tmps: list_vt(tmpvar, n) ) : void = let in // case+ hvds of | list_nil ((*void*)) => () where { val+~list_vt_nil() = tmps } (* end of [list_nil] *) | list_cons (hvd, hvds) => let val hde_def = hvd.hivaldec_def val+~list_vt_cons(tmp, tmps) = tmps val ((*void*)) = hidexp_ccomp_ret(env, res, tmp, hde_def) in auxmain(env, res, hvds, tmps) end // end of [list_cons] // end // end of [auxmain] in (* in of [local] *) implement hivaldeclst_ccomp_rec (env, lvl0, knd, hvds) = let // var res : instrseq = instrseq_make_nil((*void*)) val tmps = auxinit(env, res, lvl0, hvds) val ((*void*)) = auxmain (env, res, hvds, tmps) // in instrseq_get_free (res) end // end of [hivaldeclst_ccomp_rec] end // end of [local] (* ****** ****** *) local fun aux ( env: !ccompenv , res: !instrseq , lvl0: int, hvd: hivardec ) : void = let // val loc = hvd.hivardec_loc val d2v = hvd.hivardec_dvar_ptr val d2vw = hvd.hivardec_dvar_view val loc_d2v = $D2E.d2var_get_loc (d2v) val ((*void*)) = $D2E.d2var_set_level (d2v, lvl0) val-Some (s2at) = $D2E.d2var_get_mastype (d2vw) val-S2Eat (s2e_elt, _) = s2at.s2exp_node val hse_elt = s2exp_tyer_shallow (loc_d2v, s2e_elt) val tmp = tmpvar_make_ref (loc_d2v, hse_elt) // val () = instrseq_add_tmpdec (res, loc_d2v, tmp) // val () = ( case+ hvd.hivardec_init of | None ((*void*)) => () | Some (hde) => hidexp_ccomp_ret (env, res, tmp, hde) ) : void // end of [val] // val pmv = primval_tmpref (loc, hse_elt, tmp) val pmv_ref = primval_ptrof (loc, hisexp_typtr, pmv) val () = ccompenv_add_vbindmapenvall (env, d2v, pmv_ref) // in // nothing end // end of [aux] fun auxlst ( env: !ccompenv , res: !instrseq , lvl0: int, hvds: hivardeclst ) : void = let in // case+ hvds of | list_cons (hvd, hvds) => let val () = aux (env, res, lvl0, hvd) val () = auxlst (env, res, lvl0, hvds) in // nothing end // end of [list_cons] | list_nil () => () // end // end of [auxlst] in (* in of [local] *) implement hivardeclst_ccomp (env, lvl0, hvds) = let // var res : instrseq = instrseq_make_nil () val () = auxlst (env, res, lvl0, hvds) // in instrseq_get_free (res) end // end of [hivardeclst_ccomp] end // end of [local] (* ****** ****** *) local fun auxlam ( env: !ccompenv , loc0: location , d2c: d2cst, imparg: s2varlst, tmparg: s2explstlst , hde_fun: hidexp ) : funlab = let // val hse_fun = hde_fun.hidexp_type val fcopt = d2cst_get2_funclo (d2c) // val flab = funlab_make_dcst_type (d2c, hse_fun, fcopt) val () = the_funlablst_add (flab) // in auxlam2 (env, loc0, flab, imparg, tmparg, hde_fun) end (* end of [auxlam2] *) and auxlam2 ( env: !ccompenv , loc0: location , flab: funlab, imparg: s2varlst, tmparg: s2explstlst , hde_fun: hidexp ) : funlab = flab where { // val () = ccompenv_inc_tailcalenv (env, flab) // val tmplev = ccompenv_get_tmplevel (env) val () = ( if tmplev > 0 then funlab_set_tmpknd (flab, 1) ) (* end of [val] *) // val pmv_lam = primval_make_funlab (loc0, flab) // val loc_fun = hde_fun.hidexp_loc // val-HDElam(knd, hips_arg, hde_body) = hde_fun.hidexp_node // val fent = let val ins = instr_funlab (loc0, flab) // end of [val] val prolog = list_sing (ins) in hidexp_ccomp_funlab_arg_body (env, flab, imparg, tmparg, prolog, loc_fun, hips_arg, hde_body) // end of [hidexp_ccomp_funlab_arg_body] end // end of [val] // val () = funlab_set_funent (flab, Some(fent)) // val () = ccompenv_dec_tailcalenv (env) // (* val () = println! ("hiimpdec_ccomp: auxlam2: fent = ", fent) *) // } (* end of [auxlam2] *) (* ****** ****** *) fun auxfix ( env: !ccompenv , loc0: location , d2c0: d2cst , imparg: s2varlst , tmparg: s2explstlst , hde_fix: hidexp ) : funlab = let // val- HDEfix ( knd, f_d2v, hde_def ) = hde_fix.hidexp_node // val fcopt = d2cst_get2_funclo(d2c0) val hse_def = hde_def.hidexp_type // val flab = funlab_make_dcst_type ( d2c0, hse_def, fcopt ) (* end of [val] *) // val pmv0 = primval_make_funlab(loc0, flab) // val ((*added*)) = the_funlablst_add(flab) // // HX-2013-11-01: // this seems to be correct as [f_d2v] is a fix-var // val ((*added*)) = ccompenv_add_vbindmapenvall(env, f_d2v, pmv0) // in auxlam2(env, loc0, flab, imparg, tmparg, hde_def) end // end of [auxfix] (* ****** ****** *) fun auxmain ( env: !ccompenv , loc0: location , d2c: d2cst , imparg: s2varlst , tmparg: s2explstlst , hde_def: hidexp ) : funlab = let // val hse_def = hde_def.hidexp_type // in // case+ hde_def.hidexp_node of // case+ // | HDEcst(d2c) => let val () = the_dyncstlst_add (d2c) val fcopt = d2cst_get2_funclo (d2c) in funlab_make_dcst_type(d2c, hse_def, fcopt) end // end of [HDEcst] | HDEvar(d2v) => let val fcopt = d2var_get2_funclo(d2v) in funlab_make_dvar_type(d2v, hse_def, fcopt) end // end of [HDEvar] // | HDEtmpcst(d2c, t2mas) => let val fcopt = d2cst_get2_funclo (d2c) in funlab_make_tmpcst_type(d2c, t2mas, hse_def, fcopt) end // end of [HDEtmpcst] // | HDElam _ => ( auxlam (env, loc0, d2c, imparg, tmparg, hde_def) ) (* end of [HDElam] *) // | HDEfix _ => ( auxfix (env, loc0, d2c, imparg, tmparg, hde_def) ) (* end of [HDEfix] *) // | _(*rest-of-hidecl*) => let val () = println! ("hiimpdec_ccomp: auxmain: hde_def = ", hde_def) // end of [val] in exitloc(1) // exit with location information reported end (* end of [rest-of-hidecl] *) // end (* end of [auxmain] *) in (* in of [local] *) implement hiimpdec_ccomp ( env, lvl0, imp, knd ) = let // val d2c = imp.hiimpdec_cst val dck = $D2E.d2cst_get_kind(d2c) // (* val () = println! ("hiimpdec_ccomp: d2c = ", d2c) *) // in // case+ 0 of (* | _ when dcstkind_is_castfn dck => () *) | _ when dcstkind_is_fun(dck) => let val loc0 = imp.hiimpdec_loc val imparg = imp.hiimpdec_imparg val tmparg = imp.hiimpdec_tmparg val hde_def = imp.hiimpdec_def // (* val knd = imp.hiimpdec_knd *) val istmp = list_is_cons (tmparg) // (* val () = println! ("hiimpdec_ccomp: knd = ", knd) // end of [val] *) // val () = if istmp then ccompenv_inc_tmplevel(env) // end of [val] val flab = auxmain(env, loc0, d2c, imparg, tmparg, hde_def) // end of [val] val () = if istmp then ccompenv_dec_tmplevel(env) // end of [val] // val () = ( if knd = 0 then (if istmp then ccompenv_add_impdec(env, imp)) // end of [if] ) (* end of [val] *) // val opt = Some(flab) val ((*void*)) = hiimpdec_set_funlabopt(imp, opt) val ((*void*)) = ( if not(istmp) then $D2E.d2cst_set_funlab(d2c, $UN.cast{dynexp2_funlabopt}(opt)) // end of [if] ) (* end of [val] *) // in // nothing end // end of [if] // | _ (*non-fun*) => let var res : instrseq = instrseq_make_nil() // end of [var] val pmv = hidexp_ccomp(env, res, imp.hiimpdec_def) val () = instrseq_add_dcstdef(res, imp.hiimpdec_loc, d2c, pmv) val inss = instrseq_get_free(res) val () = hiimpdec_set_instrlstopt(imp, Some (inss)) in // nothing end // end of [non-fun] // end // end of [hiimpdec_ccomp] end // end of [local] (* ****** ****** *) implement hiimpdec_ccomp_if (env, lvl0, imp, knd) = let // val opt = hiimpdec_get_funlabopt (imp) // in // case+ opt of | Some _ => ((*void*)) | None _ => hiimpdec_ccomp(env, lvl0, imp, knd) // end // end of [hiimpdec_ccomp_if] (* ****** ****** *) (* end of [pats_ccomp_decl.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_codegen2_datype.dats0000644000175000017500000001647313431250607022424 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: August, 2015 // (* ****** ****** *) // staload LOC = "./pats_location.sats" // overload fprint with $LOC.fprint_location // (* ****** ****** *) // staload SYM = "./pats_symbol.sats" // (* ****** ****** *) // staload S1E = "./pats_staexp1.sats" // overload fprint with $S1E.fprint_e1xp // (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" // (* ****** ****** *) staload "./pats_codegen2.sats" (* ****** ****** *) local fun auxerr_nil ( out: FILEref, d2c0: d2ecl ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): no spec on datatype is given\n" ) (* end of [val] *) // val () = fprintln! (out, "*)") // } (* end of [auxerr_nil] *) fun auxerr_cons ( out: FILEref , d2c0: d2ecl, x0: e1xp ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): no datatype of the given spec\n" ) (* end of [val] *) // val () = fprintln! (out, "*)") // } (* end of [auxerr_cons] *) fun aux_datype ( out: FILEref , d2c0: d2ecl, s2dat: s2cst, xs: e1xplst ) : void = let // fun auxfun0 ( // argless ) : void = let // val sym = s2cst_get_sym(s2dat) val name = $SYM.symbol_get_name(sym) // in fprint! (out, "datcon_", name, "_") end // end of [auxfun0] // fun auxfun1 ( x0: e1xp ) : void = ( case+ x0.e1xp_node of // case+ | $S1E.E1XPide(sym) => $SYM.fprint_symbol(out, sym) // end of [E1XPide] | $S1E.E1XPstring(name) => fprint(out, name) | _(*rest-of-e1xp*) => auxfun0((*void*)) ) // fun auxcon ( d2c: d2con ) : void = let // val sym = d2con_get_sym(d2c) val name = $SYM.symbol_get_name(sym) // in fprintln! (out, "| ", name, " _ => \"", name, "\"") end // end of [auxcon] // fun auxconlst ( d2cs: d2conlst ) : void = ( case+ d2cs of | list_nil() => () | list_cons(d2c, d2cs) => let val () = auxcon(d2c) in auxconlst(d2cs) end ) // val name = s2cst_get_name(s2dat) val-Some(d2cs) = s2cst_get_dconlst(s2dat) // (* val () = println! ("codegen2_datcon: aux_datype: s2dat = ", s2dat) val () = println! ("codegen2_datcon: aux_datype: d2conlst = ", d2cs) *) // val linesep = "(* ****** ****** *)\n" // val () = fprint! (out, linesep, "//\n") val () = fprint! (out, "implement\n") val () = fprint! (out, "{}(*tmp*)\n") val () = ( case+ xs of | list_nil() => auxfun0() | list_cons(x, _) => auxfun1(x) ) val () = fprint! (out, "\n ") val () = fprint! (out, "(arg0) =\n") // val () = fprint! (out, "(\n") val () = fprint! (out, "case+ arg0 of\n") // val () = auxconlst (d2cs) // val () = fprint! (out, ")\n") val () = fprint! (out, "//\n", linesep) // in // nothing end // end of [aux_datype] in (* in-of-local *) implement codegen2_datcon (out, d2c0, xs) = let (* // val () = println! ("codegen2_datcon: d2c0 = ", d2c0) // *) in // case+ xs of | list_nil() => auxerr_nil(out, d2c0) // end of [list_nil] | list_cons(x, xs) => let val opt = codegen2_get_datype(x) in case+ opt of | ~None_vt() => auxerr_cons(out, d2c0, x) | ~Some_vt(s2dat) => aux_datype(out, d2c0, s2dat, xs) end // end of [list_cons] // end // end of [codegen2_datcon] end // end of [local] (* ****** ****** *) local fun auxerr_nil ( out: FILEref, d2c0: d2ecl ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): no spec on datatype is given\n" ) (* end of [val] *) // val () = fprint! (out, "*)\n") // } (* end of [auxerr_nil] *) fun auxerr_cons ( out: FILEref , d2c0: d2ecl, x: e1xp ) : void = { // val loc0 = d2c0.d2ecl_loc // val () = fprint! (out, "(*\n") // val () = fprint! ( out, loc0 , ": error(codegen2): no datatype of the given spec\n" ) (* end of [val] *) // val () = fprint! (out, "*)\n") // } (* end of [auxerr_cons] *) fun aux_datype ( out: FILEref , d2c0: d2ecl, s2dat: s2cst, xs: e1xplst ) : void = let // fun auxfun0 ( // argless ) : void = let // val sym = s2cst_get_sym(s2dat) val name = $SYM.symbol_get_name(sym) // in fprint! (out, "datcontag_", name, "_") end // end of [auxfun0] // fun auxfun1 ( x0: e1xp ) : void = ( case+ x0.e1xp_node of // case+ | $S1E.E1XPide(sym) => $SYM.fprint_symbol (out, sym) // end of [E1XPide] | $S1E.E1XPstring(name) => fprint (out, name) | _(*rest-of-e1xp*) => auxfun0((*void*)) ) // fun auxcon ( d2c: d2con ) : void = let // val sym = d2con_get_sym(d2c) val tag = d2con_get_tag(d2c) val name = $SYM.symbol_get_name(sym) // in fprintln! (out, "| ", name, " _ => ", tag) end // end of [auxcontag] // fun auxconlst ( d2cs: d2conlst ) : void = ( case+ d2cs of | list_nil() => () | list_cons(d2c, d2cs) => let val () = auxcon(d2c) in auxconlst(d2cs) end ) // val name = s2cst_get_name(s2dat) val-Some(d2cs) = s2cst_get_dconlst(s2dat) // (* val () = println! ("codegen2_datcontag: aux_datype: s2dat = ", s2dat) val () = println! ("codegen2_datcontag: aux_datype: d2conlst = ", d2cs) *) // val linesep = "(* ****** ****** *)\n" // val () = fprint! (out, linesep, "//\n") // val () = fprint! (out, "implement\n") val () = fprint! (out, "{}(*tmp*)\n") val () = ( case+ xs of | list_nil() => auxfun0() | list_cons(x, _) => auxfun1(x) ) val () = fprint! (out, "\n ") val () = fprint! (out, "(arg0) =\n") // val () = fprint! (out, "(\n") val () = fprint! (out, "case+ arg0 of\n") // val () = auxconlst (d2cs) // val () = fprint! (out, ")\n") val () = fprint! (out, "//\n", linesep) // in // nothing end // end of [aux_datype] in (* in-of-local *) implement codegen2_datcontag (out, d2c0, xs) = let (* // val () = println! ("codegen2_datcontag: d2c0 = ", d2c0) // *) in // case+ xs of | list_nil() => auxerr_nil(out, d2c0) // end of [list_nil] | list_cons(x, xs) => let val opt = codegen2_get_datype(x) in case+ opt of | ~None_vt() => auxerr_cons(out, d2c0, x) | ~Some_vt(s2dat) => aux_datype(out, d2c0, s2dat, xs) end // end of [list_cons] // end // end of [codegen2_datcontag] end // end of [local] (* ****** ****** *) (* end of [pats_codegen2_datype.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_assgn.dats0000644000175000017500000003644513431250607021776 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_assgn" (* ****** ****** *) staload LOC = "./pats_location.sats" stadef loc_t = $LOC.location overload + with $LOC.location_combine (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_dynexp3.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) local fun auxerr_proof ( loc0: loc_t, s2e: s2exp, d3ls: d3lablst, s2e_sel: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": a non-proof component is replaced of the type" val () = prerrln! (": [", s2e_sel, "].") in the_trans3errlst_add(T3E_s2addr_assgn_deref_proof(loc0, s2e, d3ls)) end // end of [auxerr_proof] fun auxerr_linsel ( loc0: loc_t, s2e: s2exp, d3ls: d3lablst, s2e_sel: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": a linear component is abandoned of the type" val () = prerrln! (": [", s2e_sel, "].") in the_trans3errlst_add(T3E_s2addr_assgn_deref_linsel(loc0, s2e, d3ls)) end // end of [auxerr_linsel] fun auxerr_context ( loc0: loc_t, s2e: s2exp, d3ls: d3lablst, s2e_sel: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ": the type of the selected component cannot be changed" val () = prerrln! (": [", s2e_sel, "].") in the_trans3errlst_add (T3E_s2addr_assgn_deref_context (loc0, s2e, d3ls)) end // end of [auxerr_context] in (* in of [local] *) extern fun d2var_assgn_lin0 ( loc0: loc_t, d2v: d2var, s2e_new: s2exp ) : void // end of [d2var_assgn_lin0] extern fun d2var_assgn_lin1 ( loc0: loc_t, d2v: d2var, d3ls: d3lablst, s2e_new: s2exp ) : void // end of [d2var_assgn_lin1] extern fun d2var_assgn_lin01 ( loc0: loc_t, d2v: d2var, d3ls: d3lablst, s2e_new: s2exp ) : void // end of [d2var_assgn_lin01] implement d2var_assgn_lin0 (loc0, d2v, s2e_new) = let val opt = d2var_get_type (d2v) in // case+ opt of // | None() => d2var_set_type(d2v, Some(s2e_new)) // end of [None] // | Some(s2e) => let // val islin = s2exp_is_lin(s2e) // val d3ls = list_nil() and s2e_sel = s2e // val () = if islin then auxerr_linsel(loc0, s2e, d3ls, s2e_sel) // end of [if] // in d2var_set_type(d2v, Some(s2e_new)) end // end of [Some] // end // end of [d2var_assgn_lin0] implement d2var_assgn_lin1 (loc0, d2v, d3ls, s2e_new) = let // val s2e = d2var_get_type_some(loc0, d2v) var ctxtopt: s2ctxtopt = None() val s2e_sel = s2exp_get_dlablst_context(loc0, s2e, d3ls, ctxtopt) // end of [val] // val isprf = s2exp_is_prf(s2e_sel) val () = if ~( isprf ) then auxerr_proof(loc0, s2e, d3ls, s2e_sel) // val islin = s2exp_is_lin(s2e_sel) val () = if ( islin ) then auxerr_linsel(loc0, s2e, d3ls, s2e_sel) // val isctx = ( case+ ctxtopt of Some _ => true | None _ => false ) : bool // end of [val] val () = if ~( isctx ) then auxerr_context(loc0, s2e, d3ls, s2e_sel) // val s2e = ( case+ ctxtopt of | Some(ctxt) => s2ctxt_hrepl(ctxt, s2e_new) | None() => s2e ) : s2exp // end of [val] // val () = d2var_set_type (d2v, Some(s2e)) // in // nothing end // end of [d2var_assgn_lin1] implement d2var_assgn_lin01 ( loc0, d2v, d3ls, s2e_new ) = let val () = d2var_inc_linval(d2v) in case+ d3ls of | list_nil() => d2var_assgn_lin0(loc0, d2v, s2e_new) // end of [list_nil] | list_cons _ => d2var_assgn_lin1(loc0, d2v, d3ls, s2e_new) // end of [list_cons] end // end of [d2var_assgn_lin01] end // end of [local] (* ****** ****** *) local fun auxerr_pfobj ( loc0: loc_t, s2l: s2exp ) : void = let // val () = prerr_error3_loc (loc0) // val () = prerr (": assignment cannot be performed") val () = prerrln! ( ": proof search for the view at [", s2l, "] failed." ) (* prerrln! *) in the_trans3errlst_add(T3E_pfobj_search_none(loc0, s2l)) end // end of [auxerr_pfobj] fun auxerr_sharing ( loc0: loc_t, s2e_elt: s2exp, d3ls: d3lablst ) : void = let // val () = prerr_error3_loc (loc0) // val () = prerrln! ( ": a boxed non-linear record is selected for field-update." ) (* prerrln! *) in // the_trans3errlst_add (T3E_s2addr_assgn_deref_sharing(loc0, s2e_elt, d3ls)) // end // end of [auxerr_sharing] fun auxerr_linsel ( loc0: loc_t , s2e_elt: s2exp, d3ls: d3lablst, s2e_sel: s2exp ) : void = let val () = prerr_error3_loc (loc0) val () = prerr ( ": a linear component of the following type is abandoned: " ) (* prerr *) val () = prerrln! ("[", s2e_sel, "].") in the_trans3errlst_add (T3E_s2addr_assgn_deref_linsel(loc0, s2e_elt, d3ls)) // the_trans3errlst_add end // end of [auxerr_linsel] fun auxck_tszeq ( loc0: loc_t , s2e1: s2exp, s2e2: s2exp ) : void = let // val tszeq = s2exp_tszeq(s2e1, s2e2) // in // if ~tszeq then let // val () = prerr_error3_loc (loc0) // val () = prerr ": assignment cannot be performed" val () = prerr ": mismatch of bef/aft type-sizes:\n" val () = (prerr "bef: ["; prerr_s2exp (s2e1); prerr "]") val () = prerr_newline ((*void*)) val () = (prerr "aft: ["; prerr_s2exp (s2e2); prerr "]") val () = prerr_newline ((*void*)) // in the_trans3errlst_add(T3E_s2exp_assgn_tszeq(loc0, s2e1, s2e2)) end // end of [if] // end of [val] // end // end of [auxck_tszeq] fun auxmain .<>. ( loc0: loc_t , pfobj: pfobj , d3ls: d3lablst , d3e_r: d3exp , s2rt: &s2exp? >> s2exp ) : d3exp = let val+~PFOBJ ( d2vw, s2e_ctx, s2e_elt, s2l ) = pfobj // (* val () = println! ("auxmain: s2e_ctx = ", s2e_ctx) val () = println! ("auxmain: s2e_elt = ", s2e_elt) *) // val () = s2rt := s2e_elt // var linrest: int = 0 and sharing: int = 0 // val (s2e_sel, s2ps) = s2exp_get_dlablst_linrest_sharing (loc0, s2e_elt, d3ls, linrest, sharing) // s2exp_get_dlablst_linrest_sharing val ((*void*)) = if sharing > 0 then auxerr_sharing (loc0, s2e_elt, d3ls) // end of [if] // val s2e_sel = s2exp_hnfize (s2e_sel) val ((*void*)) = trans3_env_add_proplst_vt (loc0, s2ps) // val islin = s2exp_is_lin (s2e_sel) val ((*void*)) = if islin then auxerr_linsel (loc0, s2e_elt, d3ls, s2e_sel) // end of [if] // var ctxtopt: s2ctxtopt = None () val _(*s2e_sel*) = s2exp_get_dlablst_context (loc0, s2e_elt, d3ls, ctxtopt) // end of [val] in // case+ ctxtopt of // | Some(ctxt) => d3e_r where { // val () = d3exp_open_and_add(d3e_r) val s2e_sel2 = d3exp_get_type(d3e_r) // val () = auxck_tszeq(loc0, s2e_sel, s2e_sel2) // val () = d2var_inc_linval (d2vw) // val s2e_elt = s2ctxt_hrepl(ctxt, s2e_sel2) // val s2e0 = s2exp_hrepl(s2e_ctx, s2e_elt) // val ((*void*)) = d2var_set_type (d2vw, Some(s2e0)) // } (* end of [Some] *) // | None((*void*)) => d3exp_trdn(d3e_r, s2e_sel) // HX: assignment changes no type // end // end of [auxmain] in (* in of [local] *) implement s2addr_assgn_deref ( loc0, s2l, d3ls, d3e_r, s2rt ) = let // val opt = pfobj_search_atview (s2l) // in case+ opt of | ~Some_vt (pfobj) => auxmain(loc0, pfobj, d3ls, d3e_r, s2rt) // end of [Some_vt] | ~None_vt ((*void*)) => let val () = s2rt := s2exp_t0ype_err() // end of [val] val () = auxerr_pfobj(loc0, s2l) in d3e_r end // end of [None_vt] end // end of [s2addr_assgn_deref] end // end of [local] (* ****** ****** *) local fun auxerr_nonderef (d3e: d3exp): void = let // val loc = d3e.d3exp_loc // val () = prerr_error3_loc (loc) // val () = prerrln! ( ": the dynamic expression cannot be dereferenced." ) (* prerrln! *) // in the_trans3errlst_add(T3E_d3exp_nonderef(d3e)) end // end of [auxerr_nonderef] fun auxerr_refsharing ( loc0: loc_t, d3e_l: d3exp, d3ls: d3lablst ) : void = let // val () = prerr_error3_loc (loc0) // val () = prerrln! ( ": a boxed non-linear record is selected for field-update." ) (* prerrln! *) // end of [val] // in the_trans3errlst_add(T3E_d3exp_assgn_deref_refsharing(d3e_l, d3ls)) end // end of [auxerr_refsharing] fun auxerr_reflinsel ( loc0: loc_t , d3e_l: d3exp, d3ls: d3lablst, s2e_sel: s2exp ) : void = let // val () = prerr_error3_loc (loc0) // val () = prerr ( ": a linear component of the following type is abandoned: " ) (* prerr *) // val () = prerrln! ("[", s2e_sel, "]") // in the_trans3errlst_add(T3E_d3exp_assgn_deref_reflinsel(d3e_l, d3ls)) end // end of [auxerr_reflinsel] fun aux1 ( loc0: loc_t , s2f0: s2hnf , d3e_l: d3exp , d3ls: d3lablst , d3e_r: d3exp ) : d3exp = let // val opt = un_s2exp_ptr_addr_type(s2f0) // in // case+ opt of // | ~None_vt() => aux2(loc0, s2f0, d3e_l, d3ls, d3e_r) // end of [None_vt] // | ~Some_vt(s2l) => let var s2rt: s2exp val d3e_r = s2addr_assgn_deref (loc0, s2l, d3ls, d3e_r, s2rt) // end of [val] in d3exp_assgn_ptr(loc0, d3e_l, s2rt, d3ls, d3e_r) end // end of [Some_vt] // end // end of [aux1] and aux2 ( loc0: loc_t , s2f0: s2hnf , d3e_l: d3exp , d3ls: d3lablst , d3e_r: d3exp ) : d3exp = let val opt = un_s2exp_ref_vt0ype_type (s2f0) in // case+ opt of | ~Some_vt (s2e) => let val s2rt = s2e // HX: selection root // var linrest: int = 0 and sharing: int = 0 // val (s2e_sel, s2ps) = s2exp_get_dlablst_linrest_sharing ( loc0, s2rt, d3ls, linrest, sharing ) (* s2exp_get_dlablst_linrest_sharing *) // val () = if sharing > 0 then auxerr_refsharing (loc0, d3e_l, d3ls) // end of [if] // val s2e_sel = s2exp_hnfize (s2e_sel) val () = trans3_env_add_proplst_vt (loc0, s2ps) val islin = s2exp_is_lin (s2e_sel) val () = if islin then auxerr_reflinsel (loc0, d3e_l, d3ls, s2e_sel) // end of [if] val d3e_r = d3exp_trdn (d3e_r, s2e_sel) val _(*err*) = the_effenv_check_ref (loc0) in d3exp_assgn_ref (loc0, d3e_l, s2rt, d3ls, d3e_r) end // end of [Some_vt] | ~None_vt () => aux3 (loc0, s2f0, d3e_l, d3ls, d3e_r) // end // end of [aux2] and aux3 ( loc0: loc_t , s2f0: s2hnf , d3e_l: d3exp , d3ls: d3lablst , d3e_r: d3exp ) : d3exp = let val () = auxerr_nonderef (d3e_l) in d3exp_errexp_void (loc0) end // end of [aux3] in (* in of [local] *) implement d2exp_trup_assgn_deref (loc0, d2e_l, d2ls, d2e_r) = let (* // val () = ( println! ("d2exp_trup_assgn_deref: d2e_l = ", d2e_l); println! ("d2exp_trup_assgn_deref: d2e_r = ", d2e_r); ) (* end of [val] *) // *) val d3e_l = d2exp_trup (d2e_l) val ((*void*)) = d3exp_open_and_add (d3e_l) // val d3ls = d2lablst_trup (d2ls) val s2e0 = d3exp_get_type (d3e_l) val s2f0 = s2exp2hnf_cast (s2e0) // val d3e_r = d2exp_trup (d2e_r) val ((*void*)) = d3exp_open_and_add (d3e_r) // in aux1 (loc0, s2f0, d3e_l, d3ls, d3e_r) end // end of [d2exp_trup_assgn_deref] end // end of [local] (* ****** ****** *) local fun auxerr_wrt_if (loc0: loc_t): void = let val err = the_effenv_check_wrt (loc0) in // if ( err > 0 ) then ( the_trans3errlst_add(T3E_d2exp_trup_wrt(loc0)) ) (* end of [then] *) // end // end of [auxerr_wrt] in (* in of [local] *) implement d2exp_trup_assgn (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Eassgn(d2e_l, d2e_r) = d2e0.d2exp_node val d2lv = d2exp_lvalize(d2e_l) (* val () = ( println! ("d2exp_trup_assgn: d2lv = ", d2lv) ) (* end of [val] *) *) // in // case+ d2lv of // | D2LVALvar_mut (d2v, d2ls) => let // val- Some(s2l) = d2var_get_addr(d2v) // end of [val] // val d3ls = d2lablst_trup(d2ls) // var s2rt : s2exp val d3e_r = d2exp_trup(d2e_r) val () = d3exp_open_and_add(d3e_r) val d3e_r = s2addr_assgn_deref(loc0, s2l, d3ls, d3e_r, s2rt) // end of [val] val ((*void*)) = if d3exp_isnot_prf(d3e_r) then auxerr_wrt_if(loc0) // end of [val] in d3exp_assgn_var(loc0, d2v, s2rt, d3ls, d3e_r) end // end of [D2LVALvar_mut] // | D2LVALvar_lin (d2v, d2ls) => let val loc_l = d2e_l.d2exp_loc val d3ls = d2lablst_trup (d2ls) val d3e_r = d2exp_trup (d2e_r) val () = d3exp_open_and_add (d3e_r) val s2e_r = d3exp_get_type (d3e_r) val opt = d2var_get_type (d2v) val s2rt = ( case+ opt of | Some (s2e) => s2e | None ((*void*)) => s2exp_void_t0ype() ) : s2exp // end of [val] val () = d2var_assgn_lin01(loc_l, d2v, d3ls, s2e_r) // end of [val] in d3exp_assgn_var(loc0, d2v, s2rt, d3ls, d3e_r) end // end of [D2LVALvar_lin] // | D2LVALderef (d2e_l, d2ls) => let val () = auxerr_wrt_if(loc0) in d2exp_trup_assgn_deref(loc0, d2e_l, d2ls, d2e_r) end // end of [D2LVALd2ref] // | D2LVALviewat _ => d2exp_trup_viewat_assgn (d2e0) // | D2LVALarrsub ( d2s, arr, loc_ind, ind // d2s: lrbrackets ) => let // val d2es = list_vt_cons(arr, list_extend(ind, d2e_r)) // end of [val] // val d2a0 = D2EXPARGdyn(~1(*npf*), loc0, (l2l)d2es) val d3e_sub = d2exp_trup_applst_sym(d2e0, d2s, list_sing(d2a0)) // end of [val] // in d3exp_trdn (d3e_sub, s2exp_void_t0ype((*void*))) end // [D2LVALarrsub] // | _ (*rest-of-d2lv*) => let val opt = d2exp_get_seloverld (d2e_l) in case+ opt of | Some (d2s) => let val _top = d2exp_top(loc0) val d2e0 = d2exp_get_seloverld_root (d2e_l) val d2a0 = D2EXPARGdyn (~1(*npf*), loc0, list_pair(d2e0, d2e_r)) val d3e_sel = d2exp_trup_applst_sym ((*d2e*)_top, d2s, list_sing(d2a0)) // end of [val] in d3exp_trdn (d3e_sel, s2exp_void_t0ype ()) end // end of [Some] | None ((*void*)) => let val loc_l = d2e_l.d2exp_loc val () = prerr_error3_loc (loc_l) val () = prerr ": a left-value is required but a non-left-value is given." val () = prerr_newline ((*void*)) val () = the_trans3errlst_add (T3E_d2exp_nonlval (d2e_l)) in d3exp_errexp_void (loc0) end // end of [None] end // end of [rest-of-d2lv] // end // end of [d2exp_trup_assgn] end // end of [local] (* ****** ****** *) (* end of [pats_trans3_assgn.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dmacro2.sats0000644000175000017500000001201413431250607020721 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: June, 2012 // (* ****** ****** *) // // HX: for handling macro expansion during typechecking // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" typedef location = $LOC.location staload SEXP2 = "./pats_staexp2.sats" typedef s2var = $SEXP2.s2var typedef s2exp = $SEXP2.s2exp staload SUTIL = "./pats_staexp2_util.sats" viewtypedef stasub = $SUTIL.stasub staload DEXP2 = "./pats_dynexp2.sats" typedef d2var = $DEXP2.d2var typedef p2at = $DEXP2.p2at typedef d2exp = $DEXP2.d2exp typedef d2mac = $DEXP2.d2mac typedef d2exparglst = $DEXP2.d2exparglst (* ****** ****** *) datatype m2val = // | M2Vint of int | M2Vbool of bool | M2Vchar of char | M2Vfloat of string | M2Vstring of string | M2Vunit of () // | M2Vscode of s2exp // static code | M2Vdcode of d2exp // dynamic code // | M2Vlist of m2valist // | M2Verr of () // end of [m2val] where m2valist = List (m2val) (* ****** ****** *) val m2val_true : m2val and m2val_false : m2val (* ****** ****** *) fun print_m2val (x: m2val): void overload print with print_m2val fun prerr_m2val (x: m2val): void overload prerr with prerr_m2val fun fprint_m2val : fprint_type (m2val) fun fprint_m2valist : fprint_type (m2valist) (* ****** ****** *) fun liftval2dexp (loc0: location, m2v: m2val): d2exp (* ****** ****** *) absviewtype alphenv_viewtype viewtypedef alphenv = alphenv_viewtype fun alphenv_nil ():<> alphenv fun alphenv_sadd ( env: &alphenv, s2v: s2var, s2v_new: s2var ) : void // end of [alphenv_sadd] fun alphenv_dadd ( env: &alphenv, d2v: d2var, d2v_new: d2var ) : void // end of [alphenv_dadd] fun alphenv_sfind (env: !alphenv, s2v: s2var): Option_vt (s2var) // end of [alphenv_sfind] fun alphenv_dfind (env: !alphenv, d2v: d2var): Option_vt (d2var) // end of [alphenv_dfind] fun alphenv_pop (env: &alphenv): void fun alphenv_push (env: &alphenv): void fun alphenv_free (env: alphenv): void (* ****** ****** *) absviewtype evalctx_viewtype viewtypedef evalctx = evalctx_viewtype fun evalctx_nil ():<> evalctx fun print_evalctx (ctx: !evalctx): void overload print with print_evalctx fun prerr_evalctx (ctx: !evalctx): void overload prerr with prerr_evalctx fun fprint_evalctx : fprint_vtype (evalctx) fun evalctx_sadd (ctx: evalctx, s2v: s2var, m2v: m2val): evalctx // end of [evalctx_sadd] fun evalctx_dadd (ctx: evalctx, d2v: d2var, m2v: m2val): evalctx // end of [evalctx_dadd] fun evalctx_dfind (ctx: !evalctx, d2v: d2var): Option_vt (m2val) // end of [evalctx_dfind] fun evalctx_free (ctx: evalctx): void (* ****** ****** *) fun eval0_d2exp ( loc0: location, ctx: !evalctx, env: &alphenv, d2e: d2exp ) : m2val // end of [eval0_d2exp] (* ****** ****** *) fun stasub_make_evalctx (ctx: !evalctx): stasub (* ****** ****** *) typedef eval1_type (a:type) = (location(*loc0*), !evalctx, &alphenv, a) -> a // end of [eval1_type] fun eval1_listmap {a:type}{n:int} ( loc0: location, ctx: !evalctx, env: &alphenv, xs: list(a, n), f: eval1_type (a) ) : list (a, n) // end of [eval1_listmap] fun eval1_d2exp : eval1_type (d2exp) (* ****** ****** *) fun eval0_app_mac_long ( loc0: location , d2m: d2mac, ctx: !evalctx, env: &alphenv, d2as: d2exparglst ) : m2val // end of [eval0_app_mac_long] fun eval0_app_mac_short ( loc0: location , d2m: d2mac, ctx: !evalctx, env: &alphenv, d2as: d2exparglst ) : d2exp // end of [eval0_app_mac_short] (* ****** ****** *) fun dmacro_eval_decode (d2e: d2exp): d2exp fun dmacro_eval_xstage (d2e: d2exp): d2exp (* ****** ****** *) // // HX: for expanding macros in short form // fun dmacro_eval_app_short ( loc0: location, d2m: d2mac, d2as: d2exparglst ) : d2exp // end of [dmacro_eval_app_short] (* ****** ****** *) (* end of [pats_dmacro2.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_e1xpval.dats0000644000175000017500000006756213431250607020755 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "./pats_basics.sats" // macdef isdebug () = (debug_flag_get () > 0) // (* ****** ****** *) staload UT = "./pats_utils.sats" staload ERR = "./pats_error.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" macdef prerr_location = $LOC.prerr_location staload SYM = "./pats_symbol.sats" // macdef NEG = $SYM.symbol_NEG // macdef ADD = $SYM.symbol_ADD macdef SUB = $SYM.symbol_SUB macdef MUL = $SYM.symbol_MUL macdef DIV = $SYM.symbol_DIV // macdef LT = $SYM.symbol_LT macdef LTEQ = $SYM.symbol_LTEQ macdef GT = $SYM.symbol_GT macdef GTEQ = $SYM.symbol_GTEQ // macdef EQ = $SYM.symbol_EQ macdef EQEQ = $SYM.symbol_EQEQ macdef LTGT = $SYM.symbol_LTGT macdef BANGEQ = $SYM.symbol_BANGEQ // macdef LAND = $SYM.symbol_LAND macdef LOR = $SYM.symbol_LOR // macdef LTLT = $SYM.symbol_LTLT macdef GTGT = $SYM.symbol_GTGT macdef DEFINED = $SYM.symbol_DEFINED macdef UNDEFINED = $SYM.symbol_UNDEFINED // overload = with $SYM.eq_symbol_symbol // (* ****** ****** *) staload "./pats_syntax.sats" staload "./pats_staexp1.sats" staload "./pats_trans1_env.sats" staload "./pats_e1xpval.sats" (* ****** ****** *) #define MAX_VALIZE_LEVEL 99 #define MAX_NORMAL_LEVEL 99 (* ****** ****** *) fun prerr_error1_loc (loc: location): void = ( $LOC.prerr_location loc; prerr ": error(1)" ) // end of [prerr_error1_loc] (* ****** ****** *) implement v1al_is_err (v) = ( case+ v of | V1ALerr () => true | _ => false ) (* end of [v1al_is_err] *) implement v1al_is_true (v) = let in // case+ v of | V1ALint i => i <> 0 // most common | V1ALchar c => c <> '\000' | V1ALstring s => string_isnot_empty s // 2nd most common | V1ALfloat f => f <> 0.0 | V1ALerr ((*void*)) => false // end // end of [v1al_is_true] implement v1al_is_false (v) = ~v1al_is_true(v) (* ****** ****** *) // extern fun e1xplev_valize (lev: int, e0: e1xp) : v1al // extern fun e1xp_valize_defined (e0: e1xp) : v1al extern fun e1xp_valize_undefined (e0: e1xp) : v1al // (* ****** ****** *) implement e1xp_valize (e) = res where { val res = e1xplev_valize (0(*lev*), e) val ((*void*)) = ( case+ res of | V1ALerr () => { val () = fprint_the_valerrlst (stderr_ref) val () = $ERR.abort () } (* end of [V1ALerr] *) | _ (*non-err*) => ((*void*)) ) : void // end of [val] } (* end of [e1xp_valize] *) implement e1xp_valize_if (knd, e) = case+ knd of | SRPIFKINDif () => e1xp_valize (e) | SRPIFKINDifdef () => e1xp_valize_defined (e) | SRPIFKINDifndef () => e1xp_valize_undefined (e) // end of [e1xp_valize_if] (* ****** ****** *) implement e1xp_valize_defined (e) = case+ e.e1xp_node of | E1XPide id => V1ALint (i) where { val i = (case+ the_e1xpenv_find id of | ~Some_vt e => ( case+ e.e1xp_node of E1XPundef () => 0 | _ => 1 ) // end of [Some_vt] | ~None_vt () => 0 ) : int // end of [val] } // end of [E1XPide] | _ => V1ALerr () where { val () = the_valerrlst_add (VE_valize_defined (e)) } // end of [_] // end of [e1xp_valize_defined] implement e1xp_valize_undefined (e) = case+ e.e1xp_node of | E1XPide id => V1ALint (i) where { val i = (case+ the_e1xpenv_find id of | ~Some_vt e => ( case+ e.e1xp_node of E1XPundef () => 1 | _ => 0 ) // end of [Some_vt] | ~None_vt () => 1 ) : int // end of [val] } // end of [E1XPide] | _ => V1ALerr () where { val () = the_valerrlst_add (VE_valize_undefined (e)) } // end of [_] // end of [e1xp_valize_undefined] (* ****** ****** *) absviewtype lenv_vtype (a:type) // local environment viewtypedef lenv (a:type) = lenv_vtype (a) extern fun lenvmake_nil {a:type} (): lenv (a) extern fun lenvfree {a:type} (env: lenv (a)): void extern fun lenvfind {a:type} (env: !lenv (a), x: symbol): Option_vt (a) (* ****** ****** *) viewtypedef vlenv = lenv (v1al) extern fun lenvmake_v1alist (xs: symbolist, vs: v1alist): vlenv viewtypedef elenv = lenv (e1xp) extern fun lenvmake_e1xplst (lorg: location, xs: symbolist, es: e1xplst): elenv (* ****** ****** *) local assume lenv_vtype (a:type) = List_vt @(symbol, a) in // in of [local] implement lenvmake_nil () = list_vt_nil () implement lenvfree (env) = list_vt_free (env) implement lenvfind {a} (env, x) = let typedef keyitm = (symbol, a) val env = $UN.castvwtp1 {List(keyitm)} (env) in list_assoc_fun (env, lam (x1, x2) = x1 = x2, x) end // end of [envfind] implement lenvmake_v1alist (xs, vs) = let fun aux ( xs: symbolist, vs: v1alist ) : lenv (v1al) = case+ xs of | list_cons (x, xs) => ( case+ vs of | list_cons (v, vs) => list_vt_cons ((x, v), aux (xs, vs)) | list_nil () => let val v = V1ALint(0) in list_vt_cons ((x, v), aux (xs, vs)) end // end of [list_nil] ) (* end of [list_cons] *) | list_nil () => list_vt_nil () in aux (xs, vs) end // end of [envmake_bindlst] implement lenvmake_e1xplst (lorg, xs, es) = let fun aux ( lorg: location, xs: symbolist, es: e1xplst ) : elenv = case+ xs of | list_cons (x, xs) => ( case+ es of | list_cons (e, es) => list_vt_cons ((x, e), aux (lorg, xs, es)) | list_nil () => let val e = e1xp_none (lorg) in list_vt_cons ((x, e), aux (lorg, xs, es)) end // end of [list_nil] ) (* end of [list_cons] *) | list_nil () => list_vt_nil () in aux (lorg, xs, es) end // end of [lenvmake_e1xplst] end // end of [local] (* ****** ****** *) fn e1xp_valize_int (rep: string): int = let val x = $UT.llint_make_string (rep) in int_of_llint (x) end // end of [e1xp_valize_int] (* ****** ****** *) fn e1xplevenv_valize_ide ( lev: int, env: !vlenv, e0: e1xp, x: symbol ) : v1al = let val ans = lenvfind (env, x) in // case+ ans of | ~Some_vt v => v | ~None_vt _ => ( case+ the_e1xpenv_find (x) of | ~Some_vt e => e1xplev_valize (lev+1, e) | ~None_vt _ => V1ALerr () where { val () = the_valerrlst_add (VE_E1XPide_unbound (e0)) } // end of [None_vt] ) (* end of [None_vt] *) end // end of [e1xplevenv_valize_ide] (* ****** ****** *) extern fun e1xplevenv_valize (lev: int, env: !vlenv, e0: e1xp): v1al extern fun e1xplevenv_valize_main (lev: int, env: !vlenv, e0: e1xp): v1al (* ****** ****** *) fun e1xplstlevenv_valize ( lev: int, env: !vlenv, es: e1xplst ) : List_vt (v1al) = case+ es of | list_cons (e, es) => let val v = e1xplevenv_valize (lev, env, e) val vs = e1xplstlevenv_valize (lev, env, es) in list_vt_cons (v, vs) end | list_nil () => list_vt_nil () // end of [e1xplstlevenv_valist] (* ****** ****** *) fun e1xplevenv_valize_list ( lev: int, env: !vlenv, e0: e1xp, es: e1xplst ) : v1al = case+ es of | list_cons (e, es) => ( case+ es of | list_nil () => e1xplevenv_valize (lev, env, e) | list_cons _ => V1ALerr () where { val () = the_valerrlst_add (VE_E1XPlist (e0)) } // end of [list_cons] ) (* end of [list_cons] *) | list_nil () => V1ALint (0) // end of [e1xplevenv_valist_list] (* ****** ****** *) extern fun e1xplevenv_valize_delta ( lev: int, env: !vlenv, e0: e1xp, id: symbol, es: e1xplst ) : v1al // end of [e1xplevenv_valize_delta] (* ****** ****** *) fun e1xplevenv_valize_appid ( lev: int, env: !vlenv, e0: e1xp, id: symbol, es: e1xplst ) : v1al = let val opt = the_e1xpenv_find (id) in // case+ opt of | ~Some_vt e => (case e.e1xp_node of // | E1XPide (id) => e1xplevenv_valize_appid (lev+1, env, e, id, es) // end of [E1XPide] // | E1XPfun (xs, body) => res where { val vs = e1xplstlevenv_valize (lev, env, es) // val env1 = lenvmake_v1alist (xs, $UN.castvwtp1 {v1alist} (vs)) // end of [env1] val iserr = // HX: it is only need if err = 0 holds list_exists_fun ($UN.castvwtp1 {v1alist} (vs), v1al_is_err) // end of [val] val () = list_vt_free (vs) // val res = ( if iserr then V1ALerr () else e1xplevenv_valize (lev+1, env1, body) // end of [if] ) : v1al // end of [if] // val () = lenvfree (env1) // } // end of [E1XPfun] | _ => V1ALerr () where { val () = the_valerrlst_add (VE_E1XPappid_fun (e0, id)) } // end of [_] ) (* end of [Some_vt] *) | ~None_vt () => e1xplevenv_valize_delta (lev, env, e0, id, es) // end // end of [e1xplevenv_valize_appid] (* ****** ****** *) implement e1xplev_valize (lev, e0) = res where { val env = lenvmake_nil () val res = e1xplevenv_valize (lev, env, e0) val () = lenvfree (env) } // end of [e1xplev_valize] (* ****** ****** *) implement e1xplevenv_valize (lev, env, e0) = let // #define MAXLEV MAX_VALIZE_LEVEL // (* val () = begin print "e1xplevenv_valize: e0 = "; print e0; print_newline () end // end of [val] *) // in // if lev <= MAXLEV then let val res = e1xplevenv_valize_main (lev, env, e0) val () = (case+ res of | V1ALerr () => the_valerrlst_add (VE_valize (e0)) | _ => () ) : void // end of [val] in res end else let val () = the_valerrlst_add (VE_maxlevel (lev, e0)) in V1ALerr () end // end of [if] // end // end of [e1xplevenv_valize] implement e1xplevenv_valize_main (lev, env, e0) = let val loc0 = e0.e1xp_loc in // case+ e0.e1xp_node of | E1XPide (sym) => e1xplevenv_valize_ide (lev, env, e0, sym) // | E1XPint (i) => V1ALint (i) | E1XPintrep (rep) => let val v = e1xp_valize_int (rep) in V1ALint (v) end // end of [E1XPi0nt] | E1XPchar (x) => V1ALchar (x) | E1XPstring (x) => V1ALstring (x) | E1XPfloat (x) => V1ALfloat (double_of_string x) // | E1XPv1al (v) => v // | E1XPnone () => V1ALint (0) // | E1XPundef () => let val () = the_valerrlst_add (VE_E1XPundef (e0)) in V1ALerr() // end of [val] end // end of [E1XPundef] // | E1XPapp ( e_fun, _(*loc_arg*), es_arg ) => ( case+ e_fun.e1xp_node of | E1XPide id => ( e1xplevenv_valize_appid (lev, env, e0, id, es_arg) ) // end of [E1XPide] | _ (*non-ide*) => let val () = the_valerrlst_add (VE_E1XPapp_fun(e0)) in V1ALerr() // end of [val] end (* end of [_] *) ) (* end of [E1XPapp] *) // | E1XPif (_cond, _then, _else) => let val _cond = e1xplevenv_valize (lev, env, _cond) // end of [val] in case+ _cond of | V1ALerr() => V1ALerr() | _ (*non-V1ALerr*) => let val _taken = ( if v1al_is_true (_cond) then _then else _else ) : e1xp // end of [val] in e1xplevenv_valize (lev, env, _taken) end (* end of [non-V1ALerr] *) end // | E1XPlist (es) => e1xplevenv_valize_list (lev, env, e0, es) // end of [E1XPlist] // | E1XPeval (e1) => e1xplevenv_valize (lev, env, e1) // HX: right? // | E1XPfun _ => V1ALerr () where { val () = the_valerrlst_add (VE_E1XPfun (e0)) } // | E1XPerr () => V1ALerr () where { val () = the_valerrlst_add (VE_E1XPerr (e0)) } // end // end of [e1xplevenv_valize_main] (* ****** ****** *) fn e1xplevenv_valize_neg ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) in case+ (v1) of | (V1ALint i1) => V1ALint (~i1) | (V1ALfloat f1) => V1ALfloat(~f1) | _(*non-number*) => V1ALerr () where { val () = the_valerrlst_add(VE_opr_arglst(e0, id)) } end // end of [e1xplevenv_valize_neg] (* ****** ****** *) fn e1xplevenv_valize_add ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => V1ALint (i1 + i2) | (V1ALfloat f1, V1ALfloat f2) => V1ALfloat (f1 + f2) | (V1ALstring s1, V1ALstring s2) => V1ALstring (s1 + s2) | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_add] fn e1xplevenv_valize_sub ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => V1ALint (i1 - i2) | (V1ALfloat f1, V1ALfloat f2) => V1ALfloat (f1 - f2) | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_sub] fn e1xplevenv_valize_mul ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => V1ALint (i1 * i2) | (V1ALfloat f1, V1ALfloat f2) => V1ALfloat (f1 * f2) | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_mul] fn e1xplevenv_valize_div ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => V1ALint (i1 / i2) | (V1ALfloat f1, V1ALfloat f2) => V1ALfloat (f1 / f2) | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_div] (* ****** ****** *) fn e1xplevenv_valize_lt ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALfloat f1, V1ALfloat f2) => if f1 < f2 then V1ALint 1 else V1ALint 0 | (V1ALint i1, V1ALint i2) => if i1 < i2 then V1ALint 1 else V1ALint 0 | (V1ALstring s1, V1ALstring s2) => if s1 < s2 then V1ALint 1 else V1ALint 0 | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_lt] fn e1xplevenv_valize_lteq ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALfloat f1, V1ALfloat f2) => if f1 <= f2 then V1ALint 1 else V1ALint 0 | (V1ALint i1, V1ALint i2) => if i1 <= i2 then V1ALint 1 else V1ALint 0 | (V1ALstring s1, V1ALstring s2) => if s1 <= s2 then V1ALint 1 else V1ALint 0 | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_lteq] fn e1xplevenv_valize_gt ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALfloat f1, V1ALfloat f2) => if f1 > f2 then V1ALint 1 else V1ALint 0 | (V1ALint i1, V1ALint i2) => if i1 > i2 then V1ALint 1 else V1ALint 0 | (V1ALstring s1, V1ALstring s2) => if s1 > s2 then V1ALint 1 else V1ALint 0 | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_gt] fn e1xplevenv_valize_gteq ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALfloat f1, V1ALfloat f2) => if f1 >= f2 then V1ALint 1 else V1ALint 0 | (V1ALint i1, V1ALint i2) => if i1 >= i2 then V1ALint 1 else V1ALint 0 | (V1ALstring s1, V1ALstring s2) => if s1 >= s2 then V1ALint 1 else V1ALint 0 | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_gteq] (* ****** ****** *) fun e1xplevenv_valize_eq ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => if i1 = i2 then V1ALint 1 else V1ALint 0 | (V1ALstring s1, V1ALstring s2) => if s1 = s2 then V1ALint 1 else V1ALint 0 | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_eq] fun e1xplevenv_valize_neq ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => if i1 <> i2 then V1ALint 1 else V1ALint 0 | (V1ALstring s1, V1ALstring s2) => if s1 <> s2 then V1ALint 1 else V1ALint 0 | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_neq] (* ****** ****** *) fun e1xplevenv_valize_land ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => begin if i1 = 0 then V1ALint 0 else if i2 = 0 then V1ALint 0 else V1ALint 1 end // end of [V1ALint, V1ALint] | (V1ALstring s1, V1ALstring s2) => let val s1 = string1_of_string s1 and s2 = string1_of_string s2 in if string_is_empty s1 then V1ALint (0) else if string_is_empty s1 then V1ALint (0) else V1ALint 1 end // end of [V1ALstring, V1ALstring] | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_land] fun e1xplevenv_valize_lor ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => begin if i1 <> 0 then V1ALint 1 else if i2 <> 0 then V1ALint 1 else V1ALint 0 end // end of [V1ALint, V1ALint] | (V1ALstring s1, V1ALstring s2) => let val s1 = string1_of_string s1 and s2 = string1_of_string s2 in if string_isnot_empty s1 then V1ALint (1) else if string_isnot_empty s2 then V1ALint (1) else V1ALint 0 end // end of [V1ALstring, V1ALstring] | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_lor] (* ****** ****** *) fn e1xplevenv_valize_asl ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => let val i2 = int1_of_int i2 val () = if (i2 < 0) then { val () = prerr_location (e0.e1xp_loc) // val () = if isdebug () then prerr ": e1xplevenv_valize_asl" // val () = prerr ": the second argument of [<<] is required to be a natural number." val () = prerr_newline () val () = $ERR.abort {void} () } // end of [val] val () = assert (i2 >= 0) // redundant at run-time in V1ALint (i1 << i2) end // end of [(V1ALint _, V1ALint _)] | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_asl] fn e1xplevenv_valize_asr ( lev: int, env: !vlenv , e0: e1xp, id: symbol, e1: e1xp, e2: e1xp ) : v1al = let val v1 = e1xplevenv_valize (lev, env, e1) val v2 = e1xplevenv_valize (lev, env, e2) in case+ (v1, v2) of | (V1ALint i1, V1ALint i2) => let val i2 = int1_of_int i2 val () = if (i2 < 0) then { val () = prerr_location (e0.e1xp_loc) // val () = if isdebug () then prerr ": e1xplevenv_valize_asl" // val () = prerr ": the second argument of [>>] is required to be a natural number." val () = prerr_newline () val () = $ERR.abort {void} () } // end of [val] val () = assert (i2 >= 0) // redundant at run-time in V1ALint (i1 >> i2) end // end of [(V1ALint _, V1ALint _)] | (_, _) => V1ALerr () where { val () = the_valerrlst_add (VE_opr_arglst (e0, id)) } end // end of [e1xplevenv_valize_asr] (* ****** ****** *) implement e1xplevenv_valize_delta (lev, env, e0, id, es) = let (* val () = begin print "e1xplevenv_valize_delta: id = "; $SYM.print_symbol id; print_newline () end // end of [val] *) // #define nil list_nil #define :: list_cons #define cons list_cons // macdef oprarity_err () = V1ALerr () where { val () = the_valerrlst_add (VE_E1XPappid_arity (e0, id)) } // end of [oprarity_err] // in // case+ 0 of | _ when id = DEFINED => ( case+ es of | e :: nil () => e1xp_valize_defined(e) | _ => oprarity_err () ) | _ when id = UNDEFINED => ( case+ es of | e :: nil () => e1xp_valize_undefined(e) | _ => oprarity_err () ) // | _ when id = NEG => ( case+ es of | e1 :: nil () => e1xplevenv_valize_neg(lev, env, e0, id, e1) | _ => oprarity_err () ) // | _ when id = ADD => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_add(lev, env, e0, id, e1, e2) | _ => oprarity_err () ) | _ when id = SUB => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_sub(lev, env, e0, id, e1, e2) | _ => oprarity_err () ) | _ when id = MUL => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_mul(lev, env, e0, id, e1, e2) | _ => oprarity_err () ) | _ when id = DIV => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_div(lev, env, e0, id, e1, e2) | _ => oprarity_err () ) // | _ when id = LT => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_lt (lev, env, e0, id, e1, e2) | _ => oprarity_err () ) | _ when id = LTEQ => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_lteq (lev, env, e0, id, e1, e2) | _ => oprarity_err () ) | _ when id = GT => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_gt (lev, env, e0, id, e1, e2) | _ => oprarity_err () ) | _ when id = GTEQ => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_gteq (lev, env, e0, id, e1, e2) | _ => oprarity_err () ) // | _ when (id = EQ orelse id = EQEQ) => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_eq (lev, env, e0, id, e1, e2) | _ => oprarity_err () ) | _ when (id = LTGT orelse id = BANGEQ) => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_neq (lev, env, e0, id, e1, e2) | _ => oprarity_err () ) // | _ when id = LAND => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_land (lev, env, e0, id, e1, e2) | _ => oprarity_err () ) | _ when id = LOR => ( case+ es of | e1 :: e2 :: nil () => e1xplevenv_valize_lor (lev, env, e0, id, e1, e2) | _ => oprarity_err () ) // | _ => V1ALerr () where { val () = the_valerrlst_add (VE_E1XPappid_opr (e0, id)) } // end of [_] // end // end of [e1xplevenv_valize_delta] (* ****** ****** *) extern fun e1xplev_normalize (lorg: location, lev: int, e0: e1xp): e1xp // end of [e1xplev_normalize] extern fun e1xplevenv_normalize (lorg: location, lev: int, env: !elenv, e0: e1xp): e1xp // end of [e1xplevenv_normalize] extern fun e1xplevenv_normalize_main (lorg: location, lev: int, env: !elenv, e0: e1xp): e1xp // end of [e1xplevenv_normalize_main] (* ****** ****** *) implement e1xp_normalize (e0) = e1xplev_normalize (e0.e1xp_loc, 0(*lev*), e0) // end of [e1xp_normalize] implement e1xplev_normalize (lorg, lev, e0) = res where { val env = lenvmake_nil () val res = e1xplevenv_normalize (lorg, lev, env, e0) val () = lenvfree (env) } // end of [e1xplev_normalize] (* ****** ****** *) fn e1xplevenv_normalize_ide ( lorg: location , lev: int, env: !elenv, e0: e1xp, x: symbol ) : e1xp = let val ans = lenvfind (env, x) in // case+ ans of | ~Some_vt e => e | ~None_vt _ => ( case+ the_e1xpenv_find (x) of | ~Some_vt e => e1xplev_normalize (lorg, lev+1, e) // end of [Some_vt] | ~None_vt _ => e1xp_make (lorg, e0.e1xp_node) ) // end of [None_vt] end // end of [e1xplevenv_normalize_ide] (* ****** ****** *) fun e1xplstlevenv_normalize ( lorg: location, lev: int, env: !elenv, es: e1xplst ) : e1xplst = case+ es of | list_cons (e, es) => let val e = e1xplevenv_normalize (lorg, lev, env, e) val es = e1xplstlevenv_normalize (lorg, lev, env, es) in list_cons (e, es) end | list_nil () => list_nil () // end of [e1xplstlevenv_normalize] (* ****** ****** *) (* // // HX-2011-04-29: this example works now: // #define f(n, x) if n > 0 then x * f (n, x) // *) implement e1xplevenv_normalize (lorg, lev, env, e0) = let // #define MAXLEV MAX_NORMAL_LEVEL // in if lev <= MAXLEV then e1xplevenv_normalize_main (lorg, lev, env, e0) else let val () = prerr_error1_loc (lorg) val () = prerrf (": the maximal normlization depth (%i) has been reached.", @(lev)) val () = prerr_newline () in e1xp_err (lorg) end (* end of [if] *) end // end of [e1xplevenv_normalize] implement e1xplevenv_normalize_main (lorg, lev, env, e0) = let val node = e0.e1xp_node in case+ node of | E1XPide id => e1xplevenv_normalize_ide (lorg, lev, env, e0, id) // | E1XPint _ => e1xp_make (lorg, node) | E1XPintrep _ => e1xp_make (lorg, node) | E1XPchar _ => e1xp_make (lorg, node) | E1XPstring _ => e1xp_make (lorg, node) | E1XPfloat _ => e1xp_make (lorg, node) // | E1XPv1al _ => e1xp_make (lorg, node) // | E1XPnone () => e1xp_make (lorg, node) | E1XPundef () => e1xp_make (lorg, node) // | E1XPlist es => let val es = e1xplstlevenv_normalize (lorg, lev, env, es) in e1xp_list (lorg, es) end | E1XPeval (e) => let val v = e1xp_valize ( e1xplevenv_normalize (lorg, lev, env, e) ) // end of [val] in e1xp_v1al (lorg, v) end (* end of [E1XPeval] *) // | E1XPapp ( e_fun, _(*loc_arg*), es_arg ) => let val e_fun = e1xplevenv_normalize (lorg, lev, env, e_fun) val es_arg = e1xplstlevenv_normalize (lorg, lev, env, es_arg) in case+ e_fun.e1xp_node of | E1XPfun (xs, body) => res where { val env1 = lenvmake_e1xplst (lorg, xs, es_arg) val res = e1xplevenv_normalize (lorg, lev+1, env1, body) val ((*void*)) = lenvfree (env1) } (* end of [E1XPfun] *) | _ => e1xp_app (lorg, e_fun, lorg, es_arg) end // end of [E1XPapp] | E1XPfun _ => e1xp_make (lorg, node) // | E1XPif ( _cond, _then, _else // HX: specially treated ) => let val v = e1xp_valize ( e1xplevenv_normalize (lorg, lev, env, _cond) ) // end of [val] val istt = v1al_is_true (v) in if istt then e1xplevenv_normalize (lorg, lev, env, _then) else e1xplevenv_normalize (lorg, lev, env, _else) // end of [if] end (* end of [E1XPif] *) // | E1XPerr _ => e1xp_make (lorg, node) // end // end of [e1xplevenv_normalize_main] (* ****** ****** *) (* end of [pats_e1xpval.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3_print.dats0000644000175000017500000001262413431250607023045 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload INTINF = "./pats_intinf.sats" macdef fprint_intinf = $INTINF.fprint_intinf (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) staload "./pats_constraint3.sats" (* ****** ****** *) implement fprint_s3exp (out, x) = let // macdef prstr (str) = fprint_string (out, ,(str)) // in // case+ x of // | S3Ecst (s2c) => { val () = prstr "S3Ecst(" val () = fprint! (out, s2c, ":", s2cst_get_srt (s2c)) val () = prstr ")" } // end of [S3Ecst] // | S3Evar (s2v) => { val () = prstr "S3Evar(" val () = fprint! (out, s2v, ":", s2var_get_srt (s2v)) val () = prstr ")" } // end of [S3Evar] // | S3Enull () => prstr "0" | S3Eunit () => prstr "1" | S3Ebool (b) => { val () = fprint_bool (out, b) } // end of [S3Ebool] // | S3Ebvar (s2v) => { val () = prstr "S3Ebvar(" val () = fprint_s2var (out, s2v) val () = prstr ")" } // end of [S3Ebvar] | S3Ebneg (s3e) => { val () = prstr "S3Ebneg(" val () = fprint_s3exp (out, s3e) val () = prstr ")" } // end of [S3Ebadd] | S3Ebadd (s3e1, s3e2) => { val () = prstr "S3Ebadd(" val () = fprint_s3exp (out, s3e1) val () = prstr ", " val () = fprint_s3exp (out, s3e2) val () = prstr ")" } // end of [S3Ebadd] | S3Ebmul (s3e1, s3e2) => { val () = prstr "S3Ebmul(" val () = fprint_s3exp (out, s3e1) val () = prstr ", " val () = fprint_s3exp (out, s3e2) val () = prstr ")" } // end of [S3Ebmul] | S3Ebeq (s3e1, s3e2) => { val () = prstr "S3Ebeq(" val () = fprint_s3exp (out, s3e1) val () = prstr ", " val () = fprint_s3exp (out, s3e2) val () = prstr ")" } // end of [S3Ebeq] | S3Ebneq (s3e1, s3e2) => { val () = prstr "S3Ebneq(" val () = fprint_s3exp (out, s3e1) val () = prstr ", " val () = fprint_s3exp (out, s3e2) val () = prstr ")" } // end of [S3Ebneq] | S3Ebineq (knd, s3e) => { // eq/neq: 1/~1; gte/lt : 2/~2 val () = prstr "S3Ebineq(" val () = ( case+ knd of | 1 => prstr "=" | ~1 => prstr "!=" | 2 => prstr ">=" | ~2 => prstr "<" | _ => prstr "?" ) : void // end of [val] val () = prstr ", " val () = fprint_s3exp (out, s3e) val () = prstr ")" } // end of [S3Ebineq] // | S3Ebdom (s2v) => { val () = prstr "S3Ebdom(" val () = fprint_s2var (out, s2v) val () = prstr ")" } // end of [S3Ebdom] // | S3Eiatm (s2vs) => { val () = prstr "S3Eiatm(" val () = fprint_s2varmset (out, s2vs) val () = prstr ")" } // end of [S3Eiatm] | S3Eicff (c, s3e) => { val () = prstr "S3Eicff(" val () = fprint_intinf (out, c) val () = prstr ", " val () = fprint_s3exp (out, s3e) val () = prstr ")" } // end of [S3Eicff] | S3Eisum (s3es) => { val () = prstr "S3Eisum(" val () = fprint_s3explst (out, s3es) val () = prstr ")" } // end of [S3Eiadd] | S3Eimul (s3e1, s3e2) => { val () = prstr "S3Eimul(" val () = fprint_s3exp (out, s3e1) val () = prstr ", " val () = fprint_s3exp (out, s3e2) val () = prstr ")" } // end of [S3Eimul] // | S3Esizeof (s2ze) => { val () = prstr "S3Esizeof(" val () = fprint_s2zexp (out, s2ze) val () = prstr ")" } // end of [S3Esizeof] // | S3Eapp (s3e, s3es) => { val () = prstr "S3Eapp(" val () = fprint_s3exp (out, s3e) val () = prstr "; " val () = fprint_s3explst (out, s3es) val () = prstr ")" } // end of [S3Eapp] // | S3Eerr (s2t) => { val () = prstr "S3Eerr(" val () = fprint_s2rt (out, s2t) val () = prstr ")" } // end of [S3Eerr] // end // end of [fprint_s3exp] implement print_s3exp (x) = fprint_s3exp (stdout_ref, x) implement prerr_s3exp (x) = fprint_s3exp (stderr_ref, x) (* ****** ****** *) implement fprint_s3explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s3exp) // end of [fprint_s3explst] implement print_s3explst (xs) = fprint_s3explst (stdout_ref, xs) implement prerr_s3explst (xs) = fprint_s3explst (stderr_ref, xs) (* ****** ****** *) (* end of [pats_constraint3_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_basics.hats0000644000175000017500000000567613431250607020643 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) // Start Time: March, 2011 // (* ****** ****** *) (* // // HX: // BOX = 0x1 << 0 LIN = 0x1 << 1 PRF = 0x1 << 2 POL0 = 0x1 << 3 POL1 = 0x1 << 4 // TYPE = 00000 // 0 TYPE+ = 01000 // 8 TYPE- = 11000 // 24 T0YPE = 00001 // 1 T0YPE+ = 01001 // 9 T0YPE- = 11001 // 25 PROP = 00101 // 5 PROP+ = 01101 // 13 PROP- = 11101 // 29 VIEWTYPE = 00010 // 2 VIEWTYPE+ = 01010 // 10 VIEWTYPE- = 11010 // 26 VIEWT0YPE = 00011 // 3 VIEWT0YPE+ = 01011 // 11 VIEWT0YPE- = 11011 // 27 VIEW = 00111 // 7 VIEW+ = 01111 // 15 VIEW- = 11111 // 31 *) #define FLTFLAG (0x1 << 0) #define LINFLAG (0x1 << 1) #define PRFFLAG (0x1 << 2) #define POLFLAG (0x3 << 3) // #define TYPE_int 0 // 00000 #define TYPE_pos_int 8 // 01000 #define TYPE_neg_int 24 // 11000 // #define T0YPE_int 1 // 00001 #define T0YPE_pos_int 9 // 01001 #define T0YPE_neg_int 25 // 11001 // #define TYPES_int 0 // 00000 // #define PROP_int 5 // 00101 #define PROP_pos_int 13 // 01101 #define PROP_neg_int 29 // 11101 // #define VIEW_int 7 // 00111 #define VIEW_pos_int 15 // 01111 #define VIEW_neg_int 31 // 11111 // #define VIEWTYPE_int 2 // 00010 #define VIEWTYPE_pos_int 10 // 01010 #define VIEWTYPE_neg_int 26 // 11010 // #define VIEWT0YPE_int 3 // 00011 #define VIEWT0YPE_pos_int 11 // 01011 #define VIEWT0YPE_neg_int 27 // 11011 // (* ****** ****** *) // #define TYTUPKIND_flt 0 #define TYTUPKIND_box 1 #define TYTUPKIND_box_t 2 #define TYTUPKIND_box_vt 3 // #define TYRECKIND_flt 0 #define TYRECKIND_box 1 #define TYRECKIND_box_t 2 #define TYRECKIND_box_vt 3 // (* ****** ****** *) (* end of [pats_basics.hats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_errmsg.dats0000644000175000017500000000653413431250607020664 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload "./pats_errmsg.sats" (* ****** ****** *) implement {}(*tmp*) prerr_ERROR_beg() = prerr("**ERROR(000000):beg**\n") implement {}(*tmp*) prerr_ERROR_end() = prerr("**ERROR(000000):end**\n") (* ****** ****** *) implement{} prerr_interror() = { val () = ( prerr "INTERROR("; prerr_FILENAME<> (); prerr ")" ) (* end of [val] *) } implement{} prerr_interror_loc(loc) = { val () = $LOC.prerr_location (loc) val () = ( prerr ": INTERROR("; prerr_FILENAME<> (); prerr ")" ) (* end of [val] *) } // end of [prerr_interror_loc] (* ****** ****** *) implement{} prerr_error1_loc(loc) = ( $LOC.prerr_location(loc); prerr ": error(1)" ) // end of [prerr_error1_loc] implement{} prerr_error2_loc(loc) = ( $LOC.prerr_location(loc); prerr ": error(2)" ) // end of [prerr_error2_loc] implement{} prerr_errmac_loc(loc) = ( $LOC.prerr_location(loc); prerr ": error(mac)" ) // end of [prerr_errmac_loc] implement{} prerr_error3_loc(loc) = ( $LOC.prerr_location(loc); prerr ": error(3)" ) // end of [prerr_error3_loc] implement{} prerr_error4_loc(loc) = ( $LOC.prerr_location(loc); prerr ": error(4)" ) // end of [prerr_error4_loc] (* ****** ****** *) implement{} prerr_errccomp_loc (loc) = ( $LOC.prerr_location (loc); prerr ": error(ccomp)" ) // end of [prerr_errccomp_loc] (* ****** ****** *) implement{} prerr_warning1_loc (loc) = ( $LOC.prerr_location (loc); prerr ": warning(1)" ) // end of [prerr_warning1_loc] implement{} prerr_warning2_loc (loc) = ( $LOC.prerr_location (loc); prerr ": warning(2)" ) // end of [prerr_warning2_loc] implement{} prerr_warning3_loc (loc) = ( $LOC.prerr_location (loc); prerr ": warning(3)" ) // end of [prerr_warning3_loc] implement{} prerr_warning4_loc (loc) = ( $LOC.prerr_location (loc); prerr ": warning(4)" ) // end of [prerr_warning4_loc] (* ****** ****** *) implement{} prerr_warnccomp_loc (loc) = ( $LOC.prerr_location (loc); prerr ": warning(ccomp)" ) // end of [prerr_warnccomp_loc] (* ****** ****** *) (* end of [pats_errmsg.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_intinf.dats0000644000175000017500000000331413431250607020645 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: May, 2014 // (* ****** ****** *) // #include "./pats_params.hats" // (* ****** ****** *) #if C3NSTRINTKND="intknd" #then // #include "./pats_intinf_int.hats" // #elif C3NSTRINTKND="gmpknd" #then // #include "./pats_intinf_gmp.hats" // #else // #error ("ERROR: pats_intinf: [C3NSTRINTKND] is undefined!\n") // #endif // end of [#if] (* ****** ****** *) (* end of [pats_intinf.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1.sats0000644000175000017500000001451313431250607020610 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload "./pats_basics.sats" staload "./pats_syntax.sats" staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" (* ****** ****** *) // // HX-2011-05: // the list of possible errors that may occur // during the level-1 translation // datatype trans1err = // | T1E_prec_tr of (i0de) | T1E_e0xp_tr of (e0xp) | T1E_s0rt_tr of (s0rt) | T1E_s0exp_tr of (s0exp) // | T1E_p0at_tr of (p0at) | T1E_d0exp_tr of (d0exp) // | T1E_d0cstdec_tr of (d0cstdec) | T1E_termet_check of (location) // | T1E_i0nclude_tr of (d0ecl) // file for inclusion is not available | T1E_s0taload_tr of (d0ecl) // file for staloading is not available | T1E_d0ynload_tr of (d0ecl) // file for dynloading is not available // end of [trans1err] (* ****** ****** *) // fun the_trans1errlst_add (x: trans1err): void fun the_trans1errlst_finalize((*void*)): void // cleanup all the errors // (* ****** ****** *) // fun proc_extdef ( sym: symbol, ext: string ) : string // end of [proc_extdef] // fun scstextdef_tr ( s0c: s0tacst, sym: symbol, extopt: s0tringopt ) : scstextdef // end of [scstextdef_tr] // fun dcstextdef_tr ( d0c: d0cstdec, sym: symbol, extopt: s0tringopt ) : dcstextdef // end of [dcstextdef_tr] // (* ****** ****** *) // fun do_e0xpact_assert (loc: location, v: v1al): void // fun do_e0xpact_prerr (v: v1al): void fun do_e0xpact_print (v: v1al): void // fun do_e0xpact_error (loc: location, v: v1al): void // (* ****** ****** *) fun e0xp_tr (x: e0xp): e1xp fun e0xplst_tr (x: e0xplst): e1xplst (* ****** ****** *) fun e0fftaglst_tr (tags: e0fftaglst): @(fcopt, int, int, effcst) // end of [e0fftaglst_tr] (* ****** ****** *) fun s0rt_tr (_: s0rt): s1rt fun s0rtlst_tr (_: s0rtlst): s1rtlst fun s0rtopt_tr (_: s0rtopt): s1rtopt (* ****** ****** *) fun a0srt_tr (x: a0srt): a1srt fun a0msrt_tr (x: a0msrt): a1msrt fun a0msrtlst_tr (x: a0msrtlst): a1msrtlst (* ****** ****** *) fun s0arg_tr (x: s0arg): s1arg fun s0arglst_tr (x: s0arglst): s1arglst fun s0marg_tr (xs: s0marg): s1marg fun s0marglst_tr (xss: s0marglst): s1marglst (* ****** ****** *) fun s0vararg_tr (s0v: s0vararg): s1vararg fun s0vararglst_tr (s0v: s0vararglst): s1vararglst (* ****** ****** *) fun sp0at_tr (x: sp0at): sp1at (* ****** ****** *) fun s0exp_tr (x: s0exp): s1exp fun s0explst_tr (x: s0explst): s1explst fun s0expopt_tr (x: s0expopt): s1expopt fun labs0exp_tr (x: labs0exp): labs1exp fun s0rtext_tr (x: s0rtext): s1rtext fun s0qualst_tr (xs: s0qualst): s1qualst fun s0qualstlst_tr (xs: s0qualstlst): s1qualstlst fun witht0ype_tr (x: witht0ype): witht1ype (* ****** ****** *) fun S0Ed2ctype_tr (x: S0Ed2ctype): S1Ed2ctype (* ****** ****** *) fun d0ecl_fixity_tr (dec: f0xty, ids: i0delst): void fun d0ecl_nonfix_tr (ids: i0delst): void (* ****** ****** *) fun d0atsrtdec_tr (d: d0atsrtdec): d1atsrtdec (* ****** ****** *) // fun s0rtdef_tr (x: s0rtdef): s1rtdef // fun s0tacst_tr (x: s0tacst): s1tacst fun s0tacon_tr (x: s0tacon): s1tacon // (* fun s0tavar_tr (x: s0tavar): s1tavar // HX: removed *) // (* ****** ****** *) // fun t0kindef_tr (x: t0kindef): t1kindef // fun s0expdef_tr (x: s0expdef): s1expdef fun s0aspdec_tr (x: s0aspdec): s1aspdec // (* ****** ****** *) fun q0marg_tr (x: q0marg): q1marg fun q0marglst_tr (x: q0marglst): q1marglst (* ****** ****** *) fun i0mparg_tr (x: i0mparg): i1mparg fun t0mpmarg_tr (x: t0mpmarg): t1mpmarg (* ****** ****** *) fun d0atcon_tr (d: d0atcon): d1atcon fun d0atdec_tr (d: d0atdec): d1atdec fun e0xndec_tr (d: e0xndec): e1xndec (* ****** ****** *) fun a0typ_tr (x: a0typ): s1exp fun a0typlst_tr (x: a0typlst): s1explst fun s0exparg_tr (loc: location, s0a: s0exparg): s1exparg (* ****** ****** *) fun m0acarglst_tr (m0as: m0acarglst): m1acarglst (* ****** ****** *) fun d0cstdeclst_tr (isfun: bool, isprf: bool, ds: d0cstdeclst): d1cstdeclst // end of [d0cstdeclst_tr] (* ****** ****** *) // fun p0at_tr (p0t: p0at): p1at fun p0atlst_tr (p0ts: p0atlst): p1atlst // fun labp0at_tr (lp0t: labp0at): labp1at fun labp0atlst_tr (lp0ts: labp0atlst): labp1atlst // (* ****** ****** *) fun d0exp_tr (x: d0exp): d1exp fun d0explst_tr (xs: d0explst): d1explst fun d0expopt_tr (xs: d0expopt): d1expopt fun labd0exp_tr (x: labd0exp): labd1exp (* ****** ****** *) fun termet_check (loc: location, is_met: bool, oefc: effcstopt): void // end of [termet_check] (* ****** ****** *) fun d0exp_tr_lams_dyn ( knd : int, locopt : Option(location), fcopt : fcopt, lin : int , args : f0arglst, res : s0expopt, efcopt : effcstopt, body : d0exp ) : d1exp // end of [d0exp_lams_dyn_tr] (* ****** ****** *) // // HX: for supporting syndef // (* ****** ****** *) typedef fsyndef = (location, d1explst) - d1exp fun d1exp_syndef_resolve (loc0: location, d1e: d1exp): d1exp (* ****** ****** *) fun d0ecl_tr (d0c: d0ecl): d1ecl fun d0eclist_tr (d0cs: d0eclist): d1eclist (* ****** ****** *) fun d0eclist_tr_errck (d0cs: d0eclist): d1eclist (* ****** ****** *) fun trans1_finalize ( ) : void // for setting STALOADFLAG, DYNLOADFLAG, PACKNAME, etc. (* ****** ****** *) (* end of [pats_trans1.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_syncst.dats0000644000175000017500000003136513431250607022202 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2011 // (* ****** ****** *) // // HX-2011-11-17: // for handling syntactic constants (int, bool, char, string, float) during // translation of level 3 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" (* ****** ****** *) staload INT = "./pats_intinf.sats" stadef intinf = $INT.intinf // integers of infinite precision (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_syncst" (* ****** ****** *) (* ** for T_* constructors *) staload "./pats_lexing.sats" (* ****** ****** *) // staload "./pats_staexp2.sats" staload "./pats_stacst2.sats" // staload "./pats_dynexp2.sats" // staload "./pats_dynexp3.sats" // (* ****** ****** *) staload "./pats_trans3.sats" (* ****** ****** *) #define s2s string1_of_string (* ****** ****** *) implement d2exp_trup_int (d2e0, i) = let val loc0 = d2e0.d2exp_loc val s2f = s2exp_int_int_t0ype (i) in d3exp_int (loc0, s2f, i) end // end of [d2exp_trup_int] (* ****** ****** *) implement d2exp_trup_intrep (d2e0, rep) = let val loc0 = d2e0.d2exp_loc val s2f = intrep_syn_type_ind (loc0, rep) in d3exp_intrep (loc0, s2f, rep) end // end of [d2exp_trup_int] (* ****** ****** *) implement d2exp_trup_bool (d2e0, b) = let val loc0 = d2e0.d2exp_loc val s2f = s2exp_bool_bool_t0ype (b) in d3exp_bool (loc0, s2f, b) end // end of [d2exp_trup_bool] (* ****** ****** *) implement d2exp_trup_char (d2e0, c) = let val loc0 = d2e0.d2exp_loc val i = int_of_char (c) val s2f = s2exp_char_int_t0ype (i) in d3exp_char (loc0, s2f, c) end // end of [d2exp_trup_char] (* ****** ****** *) implement d2exp_trup_string (d2e0, str) = let val loc0 = d2e0.d2exp_loc val n = string_length (str) val s2f = s2exp_string_int_type (n) in d3exp_string (loc0, s2f, str) end // end of [d2exp_trup_string] (* ****** ****** *) // // HX: implemented in [pats_utils.dats] // extern fun strcasecmp (x1: string, x2: string):<> int = "ext#patsopt_strcasecmp" // end of [strcasecmp] (* ****** ****** *) local datatype intknd = | INT | UINT | LINT | ULINT | LLINT | ULLINT | ERROR // end of [intknd] in (* in of [local] *) fun intrepsfx_syn_type ( loc0: loc_t , rep: string, sfx: uint ) : s2exp = let // var p_sfx: ptr = null val () = if sfx > 0u then let val n = string_length (rep) val ln = n - (size_of_uint)sfx val () = p_sfx := $UN.cast2ptr (rep) + ln in // nothing end // end of [val] // in // case+ sfx of | _ when sfx = 0u => s2exp_int_t0ype () | _ => let val sfx = $UN.cast {string} (p_sfx) val knd = (case+ 0 of | _ when strcasecmp (sfx, "U") = 0 => UINT // | _ when strcasecmp (sfx, "L") = 0 => LINT | _ when strcasecmp (sfx, "UL") = 0 => ULINT | _ when strcasecmp (sfx, "LU") = 0 => ULINT // | _ when strcasecmp (sfx, "LL") = 0 => LLINT | _ when strcasecmp (sfx, "ULL") = 0 => ULLINT | _ when strcasecmp (sfx, "LLU") = 0 => ULLINT // | _ => ERROR () ) : intknd // end of [val] in case+ knd of | INT () => s2exp_int_t0ype () | UINT () => s2exp_uint_t0ype () | LINT () => s2exp_lint_t0ype () | ULINT () => s2exp_ulint_t0ype () | LLINT () => s2exp_llint_t0ype () | ULLINT () => s2exp_ullint_t0ype () | _ => let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "intrepsfx_syn_type" val () = prerr ": the suffix of the integer is not supported." val () = prerr_newline ((*void*)) val () = the_trans3errlst_add (T3E_intsp (loc0, rep)) in s2exp_t0ype_err () end // end of [_] end // end of [_] end // end of [intrepsfx_syn_type] (* ****** ****** *) fun intbaserepsfx_syn_type_ind ( loc0: loc_t , base: int, rep: string, sfx: uint ) : s2exp = let var p_sfx: ptr = null // var rep1: string = rep val () = if sfx > 0u then let val n = string_length (rep) val ln = n - (size_of_uint)sfx val () = p_sfx := $UN.cast2ptr(rep) + ln val () = rep1 := __make (rep, 0, ln) where { extern fun __make ( x: string, st: size_t, ln: size_t ) : string = "atspre_string_make_substring" } // end of [val] in // nothing end // end of [val] val [n:int] rep1 = (s2s)rep1 val inf = (case+ base of | 8 => let prval () = __assert () where { extern praxi __assert (): [n >= 1] void } // end of [prval] in $INT.intinf_make_base_string_ofs (8, rep1, 1(*0*)) end // end of [8] | 16 => let prval () = __assert () where { extern praxi __assert (): [n >= 2] void } // end of [prval] in $INT.intinf_make_base_string_ofs (16, rep1, 2(*0x*)) end // end of [16] | _ => // base=10 and ofs=0 $INT.intinf_make_base_string_ofs (10, rep1, 0) // end of [_] ) : intinf // end of [val] val () = if sfx > 0u then __free (rep1) where { extern fun __free (x: string): void = "ats_free_gc" } // end of [val] // in // case+ sfx of | _ when sfx = 0u => s2exp_int_intinf_t0ype (inf) // end of [default] | _ => let val sfx = $UN.cast{string}(p_sfx) val knd = (case+ 0 of | _ when strcasecmp (sfx, "U") = 0 => UINT // | _ when strcasecmp (sfx, "L") = 0 => LINT | _ when strcasecmp (sfx, "UL") = 0 => ULINT | _ when strcasecmp (sfx, "LU") = 0 => ULINT // | _ when strcasecmp (sfx, "LL") = 0 => LLINT | _ when strcasecmp (sfx, "ULL") = 0 => ULLINT | _ when strcasecmp (sfx, "LLU") = 0 => ULLINT // | _ => ERROR () ) : intknd // end of [val] in case+ knd of | INT () => s2exp_int_intinf_t0ype (inf) | UINT () => s2exp_uint_intinf_t0ype (inf) | LINT () => s2exp_lint_intinf_t0ype (inf) | ULINT () => s2exp_ulint_intinf_t0ype (inf) | LLINT () => s2exp_llint_intinf_t0ype (inf) | ULLINT () => s2exp_ullint_intinf_t0ype (inf) | _ => let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "intbaserepsfx_syn_type_ind" val () = prerr ": the suffix of the integer is not supported." val () = prerr_newline ((*void*)) val () = the_trans3errlst_add (T3E_intsp (loc0, rep)) in s2exp_t0ype_err () end // end of [_] end // end of [_] // end of [case] // end // end of [intbaserepsfx_syn_type_ind] end // end of [local] (* ****** ****** *) implement intrep_syn_type (loc0, rep) = let val sfx = $UT.intrep_get_nsfx (rep) in intrepsfx_syn_type (loc0, rep, sfx) end // end of [intrep_syn_type] implement intrep_syn_type_ind (loc0, rep) = let val base = $UT.intrep_get_base (rep) val sfx = $UT.intrep_get_nsfx (rep) in intbaserepsfx_syn_type_ind (loc0, base, rep, sfx) end // end of [intrep_syn_type_ind] implement i0nt_syn_type (x(*i0nt*)) = let // val loc0 = x.token_loc val-T_INT (base, rep, sfx) = x.token_node // in intrepsfx_syn_type (loc0, rep, sfx) end // end of [i0nt_syn_t0ype] implement i0nt_syn_type_ind (x(*i0nt*)) = let // val loc0 = x.token_loc val-T_INT (base, rep, sfx) = x.token_node // in intbaserepsfx_syn_type_ind (loc0, base, rep, sfx) end // end of [i0nt_syn_type_ind] (* ****** ****** *) implement d2exp_trup_i0nt (d2e0, x(*i0nt*)) = let val loc0 = d2e0.d2exp_loc val s2e0 = i0nt_syn_type_ind (x) in d3exp_i0nt (loc0, s2e0, x) end // end of [d2exp_trup_i0nt] (* ****** ****** *) local datatype fltknd = | FLOAT | DOUBLE | LDOUBLE | ERROR // end of [fltknd] in (* in of [local] *) fun floatsfx_syn_type ( loc0: loc_t, rep: string, sfx: uint ) : s2exp = (case+ 0 of | _ when sfx = 0u => s2exp_double_t0ype () | _ (*sfx > 0*) => let val rep1 = (s2s)rep val n = string_length (rep1) val ln = n - (size_of_uint)sfx val p_sfx = $UN.cast2ptr (rep1) + ln val sfx = $UN.cast {string} (p_sfx) val knd = (case+ 0 of | _ when strcasecmp (sfx, "F") = 0 => FLOAT (* | _ when strcasecmp (sfx, "D") = 0 => DOUBLE *) | _ when strcasecmp (sfx, "L") = 0 => LDOUBLE | _ => ERROR () ) : fltknd // end of [val] in case+ knd of | FLOAT () => s2exp_float_t0ype () | DOUBLE () => s2exp_double_t0ype () | LDOUBLE () => s2exp_ldouble_t0ype () | _ => let val () = prerr_error3_loc (loc0) val () = filprerr_ifdebug "f0loat_syn_type" val () = prerr ": the suffix of the floating point number is not supported." val () = prerr_newline ((*void*)) val () = the_trans3errlst_add (T3E_floatsp (loc0, rep)) in s2exp_t0ype_err () end // end of [_] end // end of [_] ) // end of [floatsfx_syn_type] end // end of [local] implement float_syn_type (loc0, rep) = let val sfx = $UT.float_get_nsfx (rep) in floatsfx_syn_type (loc0, rep, sfx) end // end of [float_syn_type] implement f0loat_syn_type (x(*f0loat*)) = let val loc0 = x.token_loc val-T_FLOAT (base, rep, sfx) = x.token_node in floatsfx_syn_type (loc0, rep, sfx) end // end of [f0loat_syn_type] (* ****** ****** *) implement d2exp_trup_float (d2e0, rep) = let val loc0 = d2e0.d2exp_loc val s2f = float_syn_type (loc0, rep) in d3exp_float (loc0, s2f, rep) end // end of [d2exp_trup_float] implement d2exp_trup_f0loat (d2e0, x(*f0loat*)) = let val loc0 = d2e0.d2exp_loc val s2f = f0loat_syn_type (x) val-T_FLOAT (base, rep, sfx) = x.token_node in d3exp_f0loat (loc0, s2f, x) end // end of [d2exp_trup_f0loat] (* ****** ****** *) implement cstsp_syn_type (d2e0, csp) = let in // case+ csp of | $SYN.CSTSPmyfil () => s2exp_string_type () | $SYN.CSTSPmyloc () => s2exp_string_type () | $SYN.CSTSPmyfun () => s2exp_string_type () (* | $SYN.CSTSPmylinecnt (int) => s2exp_int_t0ype () | $SYN.CSTSPmycharcnt (int) => s2exp_lint_t0ype () *) // end // end of [cstsp_syn_type] implement d2exp_trup_cstsp (d2e0, csp) = let // val s2f = cstsp_syn_type (d2e0, csp) // in d3exp_cstsp (d2e0.d2exp_loc, s2f, csp) end // end of [d2exp_trup_cstsp] (* ****** ****** *) implement d2exp_trup_tyrep (d2e0, s2e_rep) = let // val s2f = s2exp_extype_srt ( s2rt_t0ype , "atstype_tyrep", list_nil(*s2ess*) ) (* s2exp_extype *) // in d3exp_tyrep(d2e0.d2exp_loc, s2f, s2e_rep) end // end of [d2exp_trup_tyrep] (* ****** ****** *) implement d2exp_trup_literal (d2e0, d2e_lit) = let // val loc0 = d2e0.d2exp_loc // val ((*void*)) = println! ("d2exp_trup_literal: d2e0 = ", d2e0) // in // case+ d2e_lit.d2exp_node of // case+ // | D2Efloat (rep) => let val d3e_lit = d2exp_trup_float (d2e_lit, rep) // end of [val] val s2e0 = s2exp_literal_float (rep) in d3exp_literal (loc0, s2e0, d3e_lit) end // end of [D2Efloat] | D2Ef0loat (tok) => let val- T_FLOAT (_, rep, _) = tok.token_node // end of [val] val d3e_lit = d2exp_trup_f0loat (d2e_lit, tok) // end of [val] val s2e0 = s2exp_literal_float (rep) in d3exp_literal (loc0, s2e0, d3e_lit) end // end of [D2Ef0loat] // | D2Estring (str) => let val d3e_lit = d2exp_trup_string (d2e_lit, str) // end of [val] val s2e0 = s2exp_literal_string (str) in d3exp_literal (loc0, s2e0, d3e_lit) end // end of [D2Estring] | D2Es0tring (tok) => let val- T_STRING(str) = tok.token_node val d3e_lit = d2exp_trup_string (d2e_lit, str) // end of [val] val s2e0 = s2exp_literal_string (str) in d3exp_literal (loc0, s2e0, d3e_lit) end // end of [D2Es0tring] // | _ (* rest-of-D2E *) => d3exp_errexp (loc0) // end // end of [d2exp_trup_literal] (* ****** ****** *) (* end of [pats_trans3_syncst.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_location.dats0000644000175000017500000002513413431250607021172 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload FIL = "./pats_filename.sats" typedef filename = $FIL.filename (* ****** ****** *) staload "./pats_location.sats" (* ****** ****** *) assume position_t0ype = $extype_struct "pats_position_struct" of { ntot= lint, nrow= int, ncol= int } // end of [position_t0ype] (* ****** ****** *) // implement print_position (pos) = fprint_position (stdout_ref, pos) // (* ****** ****** *) implement fprint_position (out, pos) = let // val ntot = pos.ntot val nrow = pos.nrow val ncol = pos.ncol // in // fprintf ( out, "%li(line=%i, offs=%i)", @(ntot+1L, nrow+1, ncol+1) ) (* end of [val] *) // end // end of [fprint_position] (* ****** ****** *) implement position_get_ntot (pos) = pos.ntot implement position_get_nrow (pos) = pos.nrow implement position_get_ncol (pos) = pos.ncol (* ****** ****** *) implement position_init ( pos0, ntot, nrow, ncol ) = () where { val () = pos0.ntot := ntot val () = pos0.nrow := nrow val () = pos0.ncol := ncol } (* end of [position_init] *) implement position_copy ( pos0, pos1 ) = () where { val () = pos0.ntot := pos1.ntot val () = pos0.nrow := pos1.nrow val () = pos0.ncol := pos1.ncol } (* end of [position_copy] *) (* ****** ****** *) implement position_incby_char (pos, i) = if i >= 0 then let // #define c2i int_of_char // val () = pos.ntot := pos.ntot + 1L // end of [val] val () = if i = (c2i)'\n' then let val () = pos.nrow := pos.nrow + 1 val () = pos.ncol := 0 in // nothing end else let val () = pos.ncol := pos.ncol + 1 in // nothing end // end of [if] in // nothing end // end of [position_incby_char] (* ****** ****** *) implement position_decby_count (pos, n) = () where { // #define u2i int_of_uint #define u2l lint_of_uint // val () = pos.ntot := pos.ntot - (u2l)n val () = pos.ncol := pos.ncol - (u2i)n } // end of [position_decby_count] implement position_incby_count (pos, n) = () where { // #define u2i int_of_uint #define u2l lint_of_uint // val () = pos.ntot := pos.ntot + (u2l)n val () = pos.ncol := pos.ncol + (u2i)n } // end of [position_incby_count] (* ****** ****** *) assume location_type = '{ // filename= filename // file name // , beg_ntot= lint // beginning char position , beg_nrow= int , beg_ncol= int , end_ntot= lint // finishing char position , end_nrow= int , end_ncol= int // , locpragma= locpragma // } (* end of [location_type] *) (* ****** ****** *) implement location_get_bchar (loc) = loc.beg_ntot (* ****** ****** *) implement location_beg_nrow (loc) = loc.beg_nrow (* ****** ****** *) implement location_beg_ntot (loc) = loc.beg_ntot implement location_end_ntot (loc) = loc.end_ntot (* ****** ****** *) implement location_get_filename(loc) = loc.filename (* ****** ****** *) // implement print_location (loc) = fprint_location(stdout_ref, loc) // implement prerr_location (loc) = fprint_location(stderr_ref, loc) // (* ****** ****** *) implement fprint_locrange (out, loc) = () where { // val () = fprint_lint (out, loc.beg_ntot+1L) val () = fprint_string (out, "(line=") val () = fprint_int (out, loc.beg_nrow+1) val () = fprint_string (out, ", offs=") val () = fprint_int (out, loc.beg_ncol+1) val () = fprint_string (out, ")") // val () = fprint_string (out, " -- ") // val () = fprint_lint (out, loc.end_ntot+1L) val () = fprint_string (out, "(line=") val () = fprint_int (out, loc.end_nrow+1) val () = fprint_string (out, ", offs=") val () = fprint_int (out, loc.end_ncol+1) val () = fprint_string (out, ")") // } (* end of [fprint_locrange] *) (* ****** ****** *) implement fprint_location (out, loc) = let (* val () = println! ("fprint_location") *) in // fprint_locpragma(out, loc.locpragma); $FIL.fprint_filename_full (out, loc.filename); fprint_string (out, ": "); fprint_locrange (out, loc) // end (* end of [fprint_location] *) (* ****** ****** *) implement fprint2_location (out, loc) = let (* val () = println! ("fprint2_location") *) in // fprint_locpragma(out, loc.locpragma); $FIL.fprint2_filename_full (out, loc.filename); fprint_string (out, ": "); fprint_locrange (out, loc) // end (* end of [fprint2_location] *) (* ****** ****** *) implement location_dummy = '{ filename= $FIL.filename_dummy , beg_ntot= ~1L , beg_nrow= ~1 , beg_ncol= ~1 , end_ntot= ~1L , end_nrow= ~1 , end_ncol= ~1 , locpragma= locpragma0_make() } (* end of [location_dummy] *) (* ****** ****** *) implement location_filename_origin (fil) = '{ filename= fil , beg_ntot= 0L, beg_nrow= 0, beg_ncol= 0 , end_ntot= 0L, end_nrow= 0, end_ncol= 0 , locpragma= locpragma0_make() } (* end of [location_filename_origin] *) (* ****** ****** *) implement location_make_pos_pos (pos1, pos2) = let val fil = $FIL.filename_get_current () in location_make_fil_pos_pos (fil, pos1, pos2) end // end of [location_make_pos_pos] (* ****** ****** *) implement location_make_fil_pos_pos (fil, pos1, pos2) = '{ filename= fil , beg_ntot= pos1.ntot , beg_nrow= pos1.nrow , beg_ncol= pos1.ncol , end_ntot= pos2.ntot , end_nrow= pos2.nrow , end_ncol= pos2.ncol , locpragma= the_location_pragma_get() } // end of [location_make_pos_pos] (* ****** ****** *) implement location_leftmost (loc) = '{ filename= loc.filename , beg_ntot= loc.beg_ntot , beg_nrow= loc.beg_nrow , beg_ncol= loc.beg_ncol , end_ntot= loc.beg_ntot , end_nrow= loc.beg_nrow , end_ncol= loc.beg_ncol , locpragma= loc.locpragma } // end of [location_leftmost] implement location_rightmost (loc) = '{ filename= loc.filename , beg_ntot= loc.end_ntot , beg_nrow= loc.end_nrow , beg_ncol= loc.end_ncol , end_ntot= loc.end_ntot , end_nrow= loc.end_nrow , end_ncol= loc.end_ncol , locpragma= loc.locpragma } // end of [location_rightmost] (* ****** ****** *) local fn location_is_none ( loc: location ) :<> bool = (loc.beg_ntot < 0L) fn location_combine_main ( loc1: location, loc2: location ) :<> location = let // var beg_ntot: lint var beg_nrow: int and beg_ncol: int var end_ntot: lint var end_nrow: int and end_ncol: int // val () = if loc1.beg_ntot <= loc2.beg_ntot then begin beg_nrow := loc1.beg_nrow; beg_ncol := loc1.beg_ncol; beg_ntot := loc1.beg_ntot; end // end of [then] else begin beg_nrow := loc2.beg_nrow; beg_ncol := loc2.beg_ncol; beg_ntot := loc2.beg_ntot; end // end of [else] // end of [if] // end of [val] // val () = if loc1.end_ntot >= loc2.end_ntot then begin end_nrow := loc1.end_nrow; end_ncol := loc1.end_ncol; end_ntot := loc1.end_ntot; end // end of [then] else begin end_nrow := loc2.end_nrow; end_ncol := loc2.end_ncol; end_ntot := loc2.end_ntot; end // end of [else] // end of [if] // end of [val] // in '{ filename= loc1.filename , beg_ntot= beg_ntot, beg_nrow= beg_nrow, beg_ncol= beg_ncol , end_ntot= end_ntot, end_nrow= end_nrow, end_ncol= end_ncol , locpragma= loc1.locpragma } end // end of [location_combine_main] in // in of [local] implement location_combine (loc1, loc2) = case+ 0 of | _ when location_is_none loc1 => loc2 | _ when location_is_none loc2 => loc1 | _ (*rest*) => location_combine_main (loc1, loc2) // end of [location_combine] end // end of [local] (* ****** ****** *) implement fprint_line_pragma (out, loc) = let // val line = loc.beg_nrow // val () = if line >= 0 then let val () = fprint_string (out, "#line ") val () = fprint_int (out, line+1) // counting from 1 val () = fprint_string (out, " \"") val () = $FIL.fprint_filename_full (out, loc.filename) val () = fprint_string (out, "\"\n") in // nothing end // end of [then] else let (* // // HX-2010-11-02: this is another possibility: // val () = fprint1_string (out, "#line 1 \"\"\n") *) in // nothing end // end of [else] // in // nothing end // end of [fprint_line_pragma] (* ****** ****** *) local // datatype locpragma = | LOCPRAGMA0 of () | LOCPRAGMA1 of (string(*...*)) | LOCPRAGMA2 of (string(*file*), string(*...*)) // assume locpragma_type = locpragma // typedef locpragmalst = List0(locpragma) // val the_locpragma = ref(LOCPRAGMA0()) val the_locpragmalst = ref(list_nil()) // in (* in-of-local *) // implement locpragma0_make()= LOCPRAGMA0() implement locpragma1_make(x)= LOCPRAGMA1(x) implement locpragma2_make(x1, x2)= LOCPRAGMA2(x1, x2) // implement the_location_pragma_get ((*void*)) = !the_locpragma implement the_location_pragma_set (x0) = !the_locpragma := x0 // implement the_location_pragma_pop ((*void*)) = () where { // val x0 = !the_locpragma val xs = !the_locpragmalst val-list_cons(x, xs) = xs val () = !the_locpragma := x val () = !the_locpragmalst := xs // } (* end of [the_location_pragma_pop] *) // implement the_location_pragma_push ((*void*)) = () where { // val x0 = !the_locpragma val xs = !the_locpragmalst val () = !the_locpragma := LOCPRAGMA0() val () = !the_locpragmalst := list_cons(x0, xs) // } (* end of [the_location_pragma_push] *) (* ****** ****** *) implement fprint_locpragma(out, x) = ( // case+ x of | LOCPRAGMA0() => () | LOCPRAGMA1(loc) => fprint! (out, "#locpragma(", loc, "): ") | LOCPRAGMA2(fil, loc) => fprint! (out, "#locpragma(", fil, ": ", loc, "): ") // ) (* end of [fprint_locpragma] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) (* end of [pats_location.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lexbuf.sats0000644000175000017500000000717113431250607020667 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) %{# #include "pats_lexbuf.cats" %} // end of [%{#] (* ****** ****** *) staload LOC = "./pats_location.sats" typedef position = $LOC.position typedef location = $LOC.location (* ****** ****** *) // absvt@ype lexbuf_vt0ype = $extype "pats_lexbuf_struct" // vtypedef lexbuf = lexbuf_vt0ype // (* ****** ****** *) fun lexbuf_initize_filp {m:file_mode}{l0:addr} ( pfmod: file_mode_lte(m,r) , pffil: FILE (m) @ l0 | lexbuf: &lexbuf? >> lexbuf, p0: ptr l0 ) : void // end of [lexbuf_initize_filp] (* ****** ****** *) fun lexbuf_initize_getc ( buf: &lexbuf? >> lexbuf, getc: () - int ) : void // end of [lexbuf_initize_getc] (* ****** ****** *) fun lexbuf_initize_string ( buf: &lexbuf? >> lexbuf, inp: string ) : void // end of [lexbuf_initize_string] (* ****** ****** *) fun lexbuf_initize_charlst_vt ( buf: &lexbuf? >> lexbuf, inp: List_vt (char) ) : void // end of [lexbuf_initize_charlst_vt] (* ****** ****** *) fun lexbuf_uninitize ( buf: &lexbuf >> lexbuf? ) : void // end of [lexbuf_uninitize] (* ****** ****** *) fun lexbuf_get_base (buf: &lexbuf): lint (* ****** ****** *) // fun lexbuf_get_position ( buf: &lexbuf, pos: &position? >> position ) : void // end-of-fun // fun lexbuf_set_position (buf: &lexbuf >> lexbuf, pos: &position): void // (* ****** ****** *) fun lexbuf_get_nspace (buf: &lexbuf): int fun lexbuf_set_nspace (buf: &lexbuf, n: int): void (* ****** ****** *) fun lexbufpos_diff (buf: &lexbuf, pos: &position): uint // end of [lexbufpos_diff] fun lexbufpos_get_location (buf: &lexbuf, pos: &position): location // end of [lexbufpos_get_location] (* ****** ****** *) fun lexbuf_get_char(buf: &lexbuf, nchr: uint): int fun lexbufpos_get_char(buf: &lexbuf, position: &position): int (* ****** ****** *) fun lexbuf_incby_count (buf: &lexbuf, cnt: uint): void (* ****** ****** *) // fun lexbuf_get_strptr0 (buf: &lexbuf, ln: uint): strptr0 fun lexbuf_get_strptr1 (buf: &lexbuf, ln: uint): strptr1 // fun lexbufpos_get_strptr0 (buf: &lexbuf, pos: &position): strptr0 fun lexbufpos_get_strptr1 (buf: &lexbuf, pos: &position): strptr1 // fun lexbuf_get_substrptr0 (buf: &lexbuf, st: uint, ln: uint): strptr0 fun lexbuf_get_substrptr1 (buf: &lexbuf, st: uint, ln: uint): strptr1 // (* ****** ****** *) (* end of [pats_lexbuf.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_filename.sats0000644000175000017500000001255713431250607021166 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload SYM = "./pats_symbol.sats" (* ****** ****** *) abstype filename_type typedef filename = filename_type vtypedef filenameopt_vt = Option_vt (filename) (* ****** ****** *) fun theDirSep_get (): char = "patsopt_filename_theDirSep_get" // end of [theDirSep_get] fun theParDir_get (): string // parent directory fun theCurDir_get (): string // current directory (* ****** ****** *) // // HX-2012-08: // 0/1: intepreted locally/externally // fun givename_srchknd (given: string): int // (* ****** ****** *) fun givename_get_ngurl (given: string): int (* ****** ****** *) fun filename_get_givename (fil: filename): string fun filename_get_partname (fil: filename): string fun filename_get_fullname (fil: filename): $SYM.symbol (* ****** ****** *) (* // fun print_filename: filename -> void fun prerr_filename: filename -> void fun fprint_filename : (FILEref, filename) -> void // overload print with print_filename overload prerr with prerr_filename overload fprint with fprint_filename // *) (* ****** ****** *) fun print_filename_full (fil: filename): void fun prerr_filename_full (fil: filename): void fun fprint_filename_full (out: FILEref, fil: filename): void (* ****** ****** *) fun fprint2_filename_full (out: FILEref, fil: filename): void (* ****** ****** *) fun filename_merge ( fil: string, givename: string ) : Strptr1 = "patsopt_filename_merge" fun filename_dirbase ( dir: string, givename: string ) :<> Strptr1 = "patsopt_filename_dirbase" (* ****** ****** *) fun eq_filename_filename (x1: filename, x2: filename):<> bool fun compare_filename_filename (x1: filename, x2: filename):<> Sgn overload compare with compare_filename_filename (* ****** ****** *) // val filename_dummy : filename (* DUMMY *) // val filename_stdin : filename (* STDIN *) val filename_string : filename (* STRING *) // (* ****** ****** *) fun filename_is_dummy : filename -> bool fun filename_isnot_dummy : filename -> bool (* ****** ****** *) fun filename_is_sats (fil: filename): bool fun filename_is_dats (fil: filename): bool (* ****** ****** *) // fun filename_get_current((*void*)): filename // (* ****** ****** *) // absview the_filenamelst_push_v // fun the_filenamelst_pop (pf: the_filenamelst_push_v | (*none*)): void // fun the_filenamelst_push (fil: filename): (the_filenamelst_push_v | void) // end of [the_filenamelst_push] // fun the_filenamelst_push_check (fil: filename): (the_filenamelst_push_v | bool) // end of [the_filenamelst_push_check] // fun the_filenamelst_ppop(): void fun the_filenamelst_ppush(fil: filename): void (* // HX-2017-01-31: push from the back! fun the_filenamelst_ppushb(fil: filename): void // *) fun fprint_the_filenamelst (out: FILEref): void // (* ****** ****** *) // typedef path = string typedef pathlst = List0(path) // (* ****** ****** *) // fun print_pathlst(xs: pathlst): void fun prerr_pathlst(xs: pathlst): void fun fprint_pathlst(out: FILEref, xs: pathlst): void // (* ****** ****** *) // fun path_normalize(s0: NSHARED(path)): path fun path_normalize_vt(s0: NSHARED(path)): Strptr1 // (* ****** ****** *) // absview the_pathlst_push_v // (* ****** ****** *) // fun the_pathlst_pop ( pf: the_pathlst_push_v | (*none*) ) : void // end-of-function // fun the_pathlst_push (x: path): (the_pathlst_push_v | void) // // HX: permanent push // fun the_pathlst_ppush(x: path): void // (* // HX: permanent push from the back! fun the_pathlst_ppushb(x: path): void *) // (* ****** ****** *) // fun the_prepathlst_push (x: path): void = "ext#libatsopt_the_prepathlst_push" // (* ****** ****** *) // fun filename_make (given: string, part: string, full: string): filename // (* ****** ****** *) // fun pkgsrcname_relocatize (given: string, ngurl: int): string // (* ****** ****** *) // fun filenameopt_make_local(name: string): filenameopt_vt // fun filenameopt_make_relative (given: string, given2: &string? >> string): filenameopt_vt // (* ****** ****** *) // vtypedef pathlst_vt = List0_vt(path) // fun the_PATSHOMELOCS_get_pathlst((*void*)): pathlst // (* ****** ****** *) (* end of [pats_filename.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_counter.sats0000644000175000017500000000534613431250607021063 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) abst@ype count_t0ype = int typedef count = count_t0ype abstype counter_type // ref (count_t) typedef counter = counter_type (* ****** ****** *) fun count_get_int (x: count):<> int (* ****** ****** *) fun lt_count_count (x1: count, x2: count):<> bool overload < with lt_count_count fun lte_count_count (x1: count, x2: count):<> bool overload <= with lte_count_count fun gt_count_count (x1: count, x2: count):<> bool overload > with lt_count_count fun gte_count_count (x1: count, x2: count):<> bool overload >= with lte_count_count fun eq_count_count (x1: count, x2: count):<> bool overload = with eq_count_count fun neq_count_count (x1: count, x2: count):<> bool overload <> with neq_count_count fun compare_count_count (x1: count, x2: count):<> Sgn overload compare with compare_count_count (* ****** ****** *) fun fprint_count : fprint_type (count) (* ****** ****** *) fun tostring_count (cnt: count): string fun tostring_prefix_count (pre: string, cnt: count): string (* ****** ****** *) // fun counter_make (): counter // fun counter_inc (cntr: counter): void fun counter_get (cntr: counter): count fun counter_set (cntr: counter, cnt: count): void fun counter_reset (cntr: counter): void // fun counter_getinc (cntr: counter): count fun counter_incget (cntr: counter): count // (* ****** ****** *) (* end of [pats_counter.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_fldfrat.dats0000644000175000017500000001626013431250607022276 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> ((*void*)) = prerr "pats_trans3_fldfrat" // (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" staload "./pats_dynexp2.sats" staload "./pats_dynexp3.sats" (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) local fun auxck_free ( loc0: loc_t , s2es: s2explst, nerr: int ) : int = let in // case+ s2es of // | list_nil ((*void*)) => nerr // list_nil // | list_cons (s2e, s2es) => let (* val () = ( println! ("auxck_free: s2e = ", s2e) ) // end of [val] *) var nerr: int = nerr val islin = s2exp_is_lin2 (s2e) val () = if islin then let val () = nerr := nerr + 1 val () = prerr_error3_loc (loc0) val () = prerr ": [free@] operation cannot be performed" val () = prerrln! (": a linear component of the type [", s2e, "] may be abandoned.") // end of [val] in // nothing end // end of [val] in auxck_free (loc0, s2es, nerr) end // end of [list_cons] // end // end of [auxck_free] fun auxfind ( loc0: loc_t, s2ls: s2explst ) : s2explst = let in // case+ s2ls of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (s2l, s2ls) => let (* val () = println! ("auxfind: s2l = ", s2l) // end of [val] *) val opt = pfobj_search_atview (s2l) val s2e_elt = ( case+ opt of | ~Some_vt(pfobj) => let val+~PFOBJ ( d2v, s2e_ctx, s2e_elt, _(*s2l*) ) = pfobj // end of [val] (* // // HX-2012-08-10: // s2e_ctx is assumed to be of the form []@L for some L // val s2e_out = s2exp_without (s2e_elt) val s2e = s2exp_hrepl (s2e_ctx, s2e_out) val () = d2var_set_type (d2v, Some(s2e)) *) val () = d2var_set_type(d2v, None(*void*)) in s2e_elt end // end of [Some_vt] | ~None_vt ((*void*)) => s2exp_errexp(s2rt_t0ype) ) : s2exp // end of [val] val s2es_elt = auxfind (loc0, s2ls) in list_cons (s2e_elt, s2es_elt) end // end of [list_cons] // end // end of [auxfind] fun auxmain ( loc0: loc_t , opknd: int // 0/1 free/fold , s2as: s2exparglst, d2e: d2exp ) : d3exp = let val loc = d2e.d2exp_loc val d3e = d2exp_trup (d2e) val () = d3exp_open_and_add d3e val s2e_ptr = d3exp_get_type (d3e) in // case+ s2e_ptr.s2exp_node of (* case+ *) | S2Edatconptr (d2c, _(*rt*), arg) => let val s2es_elt = auxfind (loc0, arg) val s2e_dcon = d2con_get_type (d2c) var err: int = 0 val (s2e_dcon, s2ps) = s2exp_uni_instantiate_sexparglst (s2e_dcon, s2as, err) // end of [val] val () = trans3_env_add_proplst_vt (loc0, s2ps) val locarg = $LOC.location_leftmost (loc) val (s2e_dcon, s2ps) = s2exp_uni_instantiate_all (s2e_dcon, locarg, err) // HX: [err] is not used val () = trans3_env_add_proplst_vt (loc0, s2ps) val-S2Efun ( fc, lin, s2fe, nof, s2es_arg, s2e_res ) = s2e_dcon.s2exp_node // end of [val] // val () = if opknd = 0 then let val nerr = auxck_free(loc0, s2es_elt, 0(*nerr*)) in if nerr > 0 then the_trans3errlst_add(T3E_d3exp_freeat(loc0, d3e)) // end of [if] end // end of [val] // val () = if opknd > 0 then let var err: int = 0 val () = $SOL.s2explst_tyleq_solve_err (loc0, s2es_elt, s2es_arg, err) // end of [val] in if err > 0 then let val () = prerr_error3_loc(loc) val () = prerr ": [fold@] operation cannot be formed" val () = prerrln! ": some argument types are mismatched." val () = prerr_the_staerrlst() in the_trans3errlst_add(T3E_d3exp_foldat(loc0, d3e)) end // end of [if] end // end of [val] val () = if opknd > 0 then let var err: int = 0 val ((*void*)) = d3lval_set_type_err(0(*refval*), d3e, s2e_res, err) // end of [val] in if err > 0 then let val () = prerr_error3_loc(loc) val () = prerr ": [fold@] operation cannot be formed" val () = prerrln! (": the type of the dynamic expression cannot be changed.") // end of [val] in the_trans3errlst_add(T3E_d3exp_foldat(loc0, d3e)) end (* end of [if] *) end // end of [val] in d3e end // end of [S2Edatconptr] | _ (*non-S2Edatconptr*) => let val () = prerr_error3_loc(loc) val () = if opknd = 0 then prerr ": [free@] operation cannot be performed" // end of [if] val () = if opknd > 0 then prerr ": [fold@] operation cannot be performed" // end of [if] val () = prerrln! (": unfolded datatype constructor is expected.") // end of [val] in d3exp_errexp (loc0) end // end of [non-S2Edatconptr] // end // end of [auxmain] in (* in of [local] *) implement d2exp_trup_foldat (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Efoldat(s2as, d2e) = d2e0.d2exp_node // val d3e = auxmain(loc0, 1(*opknd*), s2as, d2e) // in d3exp_foldat(loc0, d3e) end // end of [d2exp_trup_foldat] implement d2exp_trup_freeat (d2e0) = let // val loc0 = d2e0.d2exp_loc val-D2Efreeat(s2as, d2e) = d2e0.d2exp_node // val err = the_effenv_check_wrt(loc0) // val () = if (err > 0) then ( the_trans3errlst_add(T3E_d2exp_trup_wrt(loc0)) ) // end of [if] // end of [val] // val d3e = auxmain(loc0, 0(*opknd*), s2as, d2e) // in d3exp_freeat(loc0, d3e) end // end of [d2exp_trup_freeat] end // end of [local] (* ****** ****** *) (* end of [pats_trans3_fldfrat.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_stacst2.dats0000644000175000017500000010346613431250607020752 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload INTINF = "./pats_intinf.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_stacst2" (* ****** ****** *) staload "./pats_effect.sats" staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_stacst2.sats" (* ****** ****** *) staload "./pats_trans2_env.sats" (* ****** ****** *) abstype s2cstnul (l:addr) typedef s2cstnul = [l:agez] s2cstnul (l) extern castfn s2cstnul_none (x: ptr null):<> s2cstnul (null) extern castfn s2cstnul_some (x: s2cst):<> [l:agz] s2cstnul (l) extern castfn s2cstnul_unsome {l:agz} (x: s2cstnul l):<> s2cst extern fun s2cstnul_is_null {l:addr} (x: s2cstnul (l)): bool (l==null) = "atspre_ptr_is_null" // end of [s2cstnul_is_null] extern fun s2cstnul_isnot_null {l:addr} (x: s2cstnul (l)): bool (l > null) = "atspre_ptr_isnot_null" // end of [s2cstnul_isnot_null] (* ****** ****** *) local typedef syms2cst_struct = @{ sym= symbol, cst= s2cstnul } // end of [syms2cst_struct] assume s2cstref_type = ref(syms2cst_struct) in (* in of [local] *) fun s2cstref_get_sym (r: s2cstref): symbol = let val (vbox pf | p) = ref_get_view_ptr(r) in p->sym end // end of [s2cstref_get_sym] fun s2cstref_get_cstnul (r: s2cstref): s2cstnul = let val (vbox pf | p) = ref_get_view_ptr(r) in p->cst end // end of [s2cstref_get_cstnul] fun s2cstref_set_cstnul (r: s2cstref, s2c: s2cstnul): void = let val (vbox pf | p) = ref_get_view_ptr(r) in p->cst := s2c end // end of [s2cstref_set_cstnul] implement s2cstref_make(name) = let val id = $SYM.symbol_make_string(name) val (pfgc, pfat | p) = ptr_alloc() prval () = free_gc_elim (pfgc) val () = (p->sym := id; p->cst := s2cstnul_none(null)) in ref_make_view_ptr(pfat | p) end // end of [s2cstref_make] end // end of [local] (* ****** ****** *) implement s2cstref_get_cst(r) = let // fn auxerr (id: symbol): s2cst = let val () = prerr_interror () val () = prerr ": s2cstref_get_cst: " val () = prerr "the pervasive static constant [" val () = $SYM.prerr_symbol (id) val () = prerr "] is not available." val () = prerr_newline (); in $ERR.abort {s2cst} () end (* end of [auxerr] *) // val s2c = s2cstref_get_cstnul (r) val isnul = s2cstnul_is_null (s2c) // in // if isnul then let val id = s2cstref_get_sym (r) val ans = the_s2expenv_pervasive_find (id) in // case+ ans of | ~Some_vt (s2i) => ( case+ s2i of | S2ITMcst s2cs => let val-list_cons (s2c, _) = s2cs val () = s2cstref_set_cstnul (r, s2cstnul_some (s2c)) in s2c end // end of [S2ITMcst] | _ => auxerr (id) ) // end of [Some_vt] | ~None_vt () => auxerr (id) // end else s2cstnul_unsome (s2c) // end of [if] end // end of [s2cstref_get_cst] (* ****** ****** *) implement s2cstref_equ_cst (r, s2c) = ( // eq_s2cst_s2cst (s2cstref_get_cst(r), s2c) // ) (* end of [s2cstref_equ_cst] *) implement s2cstref_equ_exp (r, s2e) = ( case+ s2e.s2exp_node of (* case+ *) | S2Ecst s2c => s2cstref_equ_cst(r, s2c) | S2Eapp(s2e, _) => s2cstref_equ_exp(r, s2e) | _ (*non-S2Ecst-S2Eapp*) => false ) (* end of [s2cstref_equ_exp] *) (* ****** ****** *) implement the_true_bool = s2cstref_make ("true_bool") implement the_false_bool = s2cstref_make ("false_bool") implement the_neg_bool = s2cstref_make "neg_bool" implement the_add_bool_bool = s2cstref_make "add_bool_bool" implement the_mul_bool_bool = s2cstref_make "mul_bool_bool" implement the_eq_bool_bool = s2cstref_make "eq_bool_bool" implement the_neq_bool_bool = s2cstref_make "neq_bool_bool" (* ****** ****** *) implement the_neg_int = s2cstref_make "neg_int" implement the_add_int_int = s2cstref_make "add_int_int" implement the_sub_int_int = s2cstref_make "sub_int_int" implement the_mul_int_int = s2cstref_make "mul_int_int" implement the_div_int_int = s2cstref_make "div_int_int" implement the_ndiv_int_int = s2cstref_make "ndiv_int_int" implement the_idiv_int_int = s2cstref_make "idiv_int_int" implement the_lt_int_int = s2cstref_make "lt_int_int" implement the_lte_int_int = s2cstref_make "lte_int_int" implement the_gt_int_int = s2cstref_make "gt_int_int" implement the_gte_int_int = s2cstref_make "gte_int_int" implement the_eq_int_int = s2cstref_make "eq_int_int" implement the_neq_int_int = s2cstref_make "neq_int_int" implement the_abs_int = s2cstref_make "abs_int" implement the_absrel_int_int = s2cstref_make "absrel_int_int" implement the_sgn_int = s2cstref_make "sgn_int" implement the_sgnrel_int_int = s2cstref_make "sgnrel_int_int" implement the_max_int_int = s2cstref_make "max_int_int" implement the_min_int_int = s2cstref_make "min_int_int" implement the_maxrel_int_int_int = s2cstref_make "maxrel_int_int_int" implement the_minrel_int_int_int = s2cstref_make "minrel_int_int_int" implement the_ndivrel_int_int_int = s2cstref_make "ndivrel_int_int_int" implement the_idivrel_int_int_int = s2cstref_make "idivrel_int_int_int" (* ****** ****** *) implement the_ifint_bool_int_int = s2cstref_make "ifint_bool_int_int" implement the_ifintrel_bool_int_int_int = s2cstref_make "ifintrel_bool_int_int_int" // (* // HX-2012-06-12: removed implement the_int_of_char = s2cstref_make "int_of_char" implement the_char_of_int = s2cstref_make "char_of_int" *) // implement the_int_of_addr = s2cstref_make "int_of_addr" implement the_addr_of_int = s2cstref_make "addr_of_int" (* ****** ****** *) implement the_null_addr = s2cstref_make "null_addr" implement the_lt_addr_addr = s2cstref_make "lt_addr_addr" implement the_lte_addr_addr = s2cstref_make "lte_addr_addr" implement the_gt_addr_addr = s2cstref_make "gt_addr_addr" implement the_gte_addr_addr = s2cstref_make "gte_addr_addr" implement the_eq_addr_addr = s2cstref_make "eq_addr_addr" implement the_neq_addr_addr = s2cstref_make "neq_addr_addr" implement the_add_addr_int = s2cstref_make "add_addr_int" implement the_sub_addr_int = s2cstref_make "sub_addr_int" implement the_sub_addr_addr = s2cstref_make "sub_addr_addr" (* ****** ****** *) implement the_types_nil = s2cstref_make "types_nil" implement the_types_cons = s2cstref_make "types_cons" (* ****** ****** *) implement the_lte_cls_cls = s2cstref_make "lte_cls_cls" implement the_gte_cls_cls = s2cstref_make "gte_cls_cls" implement the_lterel_cls_cls = s2cstref_make "lterel_cls_cls" implement the_gterel_cls_cls = s2cstref_make "gterel_cls_cls" (* ****** ****** *) implement s2exp_agtz(s2l) = let val s2c = s2cstref_get_cst(the_gt_addr_addr) val _0_ = s2exp_int(0) // HX: 0 for null in s2exp_cstapp(s2c, list_pair(s2l, _0_)) end // end of [s2exp_agtz] (* ****** ****** *) implement s2exp_bneg(s2p) = let val s2c = s2cstref_get_cst(the_neg_bool) // end of [val] in s2exp_cstapp(s2c, list_sing(s2p)) end // end of [s2exp_bneg] implement s2exp_badd(s2p1, s2p2) = let val s2c = s2cstref_get_cst(the_add_bool_bool) // end of [val] in s2exp_cstapp(s2c, list_pair(s2p1, s2p2)) end // end of [s2exp_badd] implement s2exp_bmul (s2p1, s2p2) = let val s2c = s2cstref_get_cst(the_mul_bool_bool) // end of [val] in s2exp_cstapp(s2c, list_pair(s2p1, s2p2)) end // end of [s2exp_bmul] (* ****** ****** *) implement s2explst_badd(s2ps) = let // fun aux ( s2p0: s2exp, s2ps: s2explst ) : s2exp = ( case+ s2ps of | list_nil() => s2p0 | list_cons(s2p, s2ps) => s2exp_badd(s2p0, aux(s2p, s2ps)) // end of [list_cons] ) // in case+ s2ps of | list_nil() => s2exp_bool(false) | list_cons(s2p, s2ps) => aux(s2p, s2ps) end // end of [s2explst_badd] implement s2explst_bmul(s2ps) = let // fun aux ( s2p0: s2exp, s2ps: s2explst ) : s2exp = ( case+ s2ps of | list_nil() => s2p0 | list_cons(s2p, s2ps) => s2exp_bmul(s2p0, aux(s2p, s2ps)) // end of [list_cons] ) // in case+ s2ps of | list_nil() => s2exp_bool(true) | list_cons(s2p, s2ps) => aux(s2p, s2ps) end // end of [s2explst_bmul] (* ****** ****** *) implement s2exp_ineg(s2e) = let val s2c = s2cstref_get_cst(the_neg_int) in s2exp_cstapp(s2c, list_sing(s2e)) end // end of [s2exp_ineg] (* ****** ****** *) implement s2exp_intlt(s2i1, s2i2) = let val s2c = s2cstref_get_cst(the_lt_int_int) in s2exp_cstapp(s2c, list_pair(s2i1, s2i2)) end // end of [s2exp_intlt] implement s2exp_intlte(s2i1, s2i2) = let val s2c = s2cstref_get_cst(the_lte_int_int) in s2exp_cstapp(s2c, list_pair(s2i1, s2i2)) end // end of [s2exp_intlte] implement s2exp_intgt(s2i1, s2i2) = let val s2c = s2cstref_get_cst(the_gt_int_int) in s2exp_cstapp(s2c, list_pair(s2i1, s2i2)) end // end of [s2exp_intgt] implement s2exp_intgte(s2i1, s2i2) = let val s2c = s2cstref_get_cst(the_gte_int_int) in s2exp_cstapp(s2c, list_pair(s2i1, s2i2)) end // end of [s2exp_intgte] implement s2exp_intneq(s2i1, s2i2) = let val s2c = s2cstref_get_cst(the_neq_int_int) in s2exp_cstapp(s2c, list_pair(s2i1, s2i2)) end // end of [s2exp_intneq] (* ****** ****** *) // implement s2exp_igtez (s2i) = s2exp_intgte(s2i, s2exp_int(0)) // (* ****** ****** *) implement un_s2exp_intconst (s2i) = let (* val () = println! ("un_s2exp_intconst") *) in // case+ s2i.s2exp_node of // | S2Eint(x) => Some_vt(x) // | S2Eintinf(x) => Some_vt($INTINF.intinf_get_int(x)) // | _(*noninteger*) => None_vt((*void*)) // end // end of [un_s2exp_intconst] (* ****** ****** *) implement the_atstkind_type = s2cstref_make "atstkind_type" implement the_atstkind_t0ype = s2cstref_make "atstkind_t0ype" (* ****** ****** *) (* implement the_bool_kind = s2cstref_make "bool_kind" *) implement s2exp_bool(b) = let val s2cref = ( if b then the_true_bool else the_false_bool // end of [if] ) : s2cstref // end of [val] in s2exp_cst(s2cstref_get_cst(s2cref)) end // end of [s2exp_bool] implement the_bool_t0ype = s2cstref_make "bool_t0ype" implement the_bool_bool_t0ype = s2cstref_make "bool_bool_t0ype" implement s2exp_bool_t0ype() = s2exp_cst(s2cstref_get_cst(the_bool_t0ype)) // end of [s2exp_bool_t0ype] implement s2exp_bool_bool_t0ype (b) = let // val ind = s2exp_bool(b) val s2c = s2cstref_get_cst(the_bool_bool_t0ype) // in s2exp_cstapp(s2c, list_sing(ind)) end // end of [s2exp_bool_bool_t0ype] (* ****** ****** *) implement s2exp_bool_index_t0ype (ind) = let // val s2c = s2cstref_get_cst(the_bool_bool_t0ype) // in s2exp_cstapp(s2c, list_sing(ind)) end // end of [s2exp_bool_index_t0ype] implement un_s2exp_bool_index_t0ype (s2f) = let val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of (* case+ *) | S2Eapp ( s2e_fun, s2es_arg ) when s2cstref_equ_exp ( the_bool_bool_t0ype, s2e_fun ) => let val-list_cons(s2b, _) = s2es_arg in Some_vt(s2b) end // end of [S2Eapp when ...] | _ (* non-S2Eapp *) => None_vt((*void*)) // end // end of [un_s2exp_bool_index_t0ype] (* ****** ****** *) implement the_int_kind = s2cstref_make "int_kind" implement the_uint_kind = s2cstref_make "uint_kind" // implement the_lint_kind = s2cstref_make "lint_kind" implement the_ulint_kind = s2cstref_make "ulint_kind" // implement the_llint_kind = s2cstref_make "llint_kind" implement the_ullint_kind = s2cstref_make "ullint_kind" // implement the_size_kind = s2cstref_make "size_kind" implement the_ssize_kind = s2cstref_make "ssize_kind" // implement the_g0int_t0ype = s2cstref_make "g0int_t0ype" implement the_g1int_int_t0ype = s2cstref_make "g1int_int_t0ype" implement the_g0uint_t0ype = s2cstref_make "g0uint_t0ype" implement the_g1uint_int_t0ype = s2cstref_make "g1uint_int_t0ype" local fun auxg0i (knd: s2cst): s2exp = let val knd = s2exp_cst (knd) val g0i = s2cstref_get_cst (the_g0int_t0ype) in s2exp_cstapp (g0i, list_sing (knd)) end // end of [auxg0i] fun auxg0u (knd: s2cst): s2exp = let val knd = s2exp_cst (knd) val g0u = s2cstref_get_cst (the_g0uint_t0ype) in s2exp_cstapp (g0u, list_sing (knd)) end // end of [auxg0u] fun auxg1i ( knd: s2cst, ind: s2exp ) : s2exp = let val knd = s2exp_cst (knd) val g1i = s2cstref_get_cst (the_g1int_int_t0ype) in s2exp_cstapp (g1i, list_pair (knd, ind)) end // end of [auxg1i] fun auxg1u ( knd: s2cst, ind: s2exp ) : s2exp = let val knd = s2exp_cst (knd) val g1u = s2cstref_get_cst (the_g1uint_int_t0ype) in s2exp_cstapp (g1u, list_pair (knd, ind)) end // end of [auxg1u] in // in of [local] implement s2exp_int_t0ype () = auxg0i (s2cstref_get_cst (the_int_kind)) // end of [s2exp_int_t0ype] implement s2exp_uint_t0ype () = auxg0u (s2cstref_get_cst (the_uint_kind)) // end of [s2exp_uint_t0ype] implement s2exp_lint_t0ype () = auxg0u (s2cstref_get_cst (the_lint_kind)) // end of [s2exp_lint_t0ype] implement s2exp_ulint_t0ype () = auxg0u (s2cstref_get_cst (the_ulint_kind)) // end of [s2exp_ulint_t0ype] implement s2exp_llint_t0ype () = auxg0u (s2cstref_get_cst (the_llint_kind)) // end of [s2exp_llint_t0ype] implement s2exp_ullint_t0ype () = auxg0u (s2cstref_get_cst (the_ullint_kind)) // end of [s2exp_ullint_t0ype] (* ****** ****** *) implement s2exp_int_int_t0ype (i) = let val knd = s2cstref_get_cst (the_int_kind) val ind = s2exp_int (i) in auxg1i (knd, ind) end // end of [s2exp_int_int_t0ype] implement s2exp_int_intinf_t0ype (inf) = let val knd = s2cstref_get_cst (the_int_kind) val ind = s2exp_intinf (inf) in auxg1i (knd, ind) end // end of [s2exp_int_intinf_t0ype] (* ****** ****** *) implement s2exp_uint_int_t0ype (i) = let val knd = s2cstref_get_cst (the_uint_kind) val ind = s2exp_int (i) in auxg1u (knd, ind) end // end of [s2exp_uint_intinf_t0ype] implement s2exp_uint_intinf_t0ype (inf) = let val knd = s2cstref_get_cst (the_uint_kind) val ind = s2exp_intinf (inf) in auxg1u (knd, ind) end // end of [s2exp_uint_intinf_t0ype] (* ****** ****** *) implement s2exp_lint_intinf_t0ype (inf) = let val knd = s2cstref_get_cst (the_lint_kind) val ind = s2exp_intinf (inf) in auxg1i (knd, ind) end // end of [s2exp_lint_intinf_t0ype] implement s2exp_ulint_intinf_t0ype (inf) = let val knd = s2cstref_get_cst (the_ulint_kind) val ind = s2exp_intinf (inf) in auxg1u (knd, ind) end // end of [s2exp_ulint_intinf_t0ype] implement s2exp_llint_intinf_t0ype (inf) = let val knd = s2cstref_get_cst (the_llint_kind) val ind = s2exp_intinf (inf) in auxg1i (knd, ind) end // end of [s2exp_llint_intinf_t0ype] implement s2exp_ullint_intinf_t0ype (inf) = let val knd = s2cstref_get_cst (the_ullint_kind) val ind = s2exp_intinf (inf) in auxg1u (knd, ind) end // end of [s2exp_ullint_intinf_t0ype] end // end of [local] (* ****** ****** *) implement s2exp_g0int_kind_t0ype (knd) = let val g0i = s2cstref_get_cst (the_g0int_t0ype) in s2exp_cstapp (g0i, list_sing (knd)) end // end of [s2exp_g0int_kind_t0ype] implement s2exp_g1int_kind_index_t0ype (knd, ind) = let val g1i = s2cstref_get_cst (the_g1int_int_t0ype) in s2exp_cstapp (g1i, list_pair (knd, ind)) end // end of [s2exp_g1int_kind_index_t0ype] (* ****** ****** *) implement un_s2exp_g1int_index_t0ype (s2f) = let val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) when s2cstref_equ_exp ( the_g1int_int_t0ype, s2e_fun ) => let val-list_cons (s2e1_knd, s2es_arg) = s2es_arg val-list_cons (s2e2_ind, s2es_arg) = s2es_arg in Some_vt (s2e2_ind) end // end of [S2Eapp when ...] | _ => None_vt () // end // end of [un_s2exp_g1int_index_t0ype] (* ****** ****** *) implement s2exp_g0uint_kind_t0ype (knd) = let val g0u = s2cstref_get_cst (the_g0uint_t0ype) in s2exp_cstapp (g0u, list_sing (knd)) end // end of [s2exp_g0uint_kind_t0ype] implement s2exp_g1uint_kind_index_t0ype (knd, ind) = let val g1u = s2cstref_get_cst (the_g1uint_int_t0ype) in s2exp_cstapp (g1u, list_pair (knd, ind)) end // end of [s2exp_g1uint_kind_index_t0ype] (* ****** ****** *) implement un_s2exp_g1uint_index_t0ype (s2f) = let val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) when s2cstref_equ_exp ( the_g1uint_int_t0ype, s2e_fun ) => let val-list_cons (s2e1_knd, s2es_arg) = s2es_arg val-list_cons (s2e2_ind, s2es_arg) = s2es_arg in Some_vt (s2e2_ind) end // end of [S2Eapp when ...] | _ => None_vt () // end // end of [un_s2exp_g1uint_index_t0ype] (* ****** ****** *) implement un_s2exp_g1size_index_t0ype (s2f) = let val opt = un_s2exp_g1int_index_t0ype (s2f) in // case+ opt of | Some_vt _ => let prval () = fold@ (opt) in opt end // end of [Some_vt] | ~None_vt () => un_s2exp_g1uint_index_t0ype (s2f) // end of [None_vt] // end // end of [un_s2exp_g1size_index_t0ype] (* ****** ****** *) implement s2exp_int_index_t0ype (ind) = let val knd = s2cstref_get_cst (the_int_kind) in s2exp_g1int_kind_index_t0ype (s2exp_cst (knd), ind) end // end of [s2exp_int_index_t0ype] implement s2exp_uint_index_t0ype (ind) = let val knd = s2cstref_get_cst (the_int_kind) in s2exp_g1uint_kind_index_t0ype (s2exp_cst (knd), ind) end // end of [s2exp_uint_index_t0ype] (* ****** ****** *) implement the_char_t0ype = s2cstref_make "char_t0ype" implement the_char_int_t0ype = s2cstref_make "char_int_t0ype" implement s2exp_char_t0ype () = s2exp_cst (s2cstref_get_cst (the_char_t0ype)) // end of [s2exp_char_t0ype] implement s2exp_char_int_t0ype (c) = let val s2c = s2cstref_get_cst (the_char_int_t0ype) val ind = s2exp_int (c) in s2exp_cstapp (s2c, list_sing (ind)) end // end of [s2exp_char_int_t0ype] (* ****** ****** *) implement s2exp_char_index_t0ype (ind) = let val s2c = s2cstref_get_cst (the_char_int_t0ype) in s2exp_cstapp (s2c, list_sing (ind)) end // end of [s2exp_char_index_t0ype] implement un_s2exp_char_index_t0ype (s2f) = let val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) when s2cstref_equ_exp ( the_char_int_t0ype, s2e_fun ) => let val-list_cons (s2e, _) = s2es_arg in Some_vt (s2e) end // end of [S2Eapp when ...] | _ => None_vt () // end // end of [un_s2exp_char_index_t0ype] (* ****** ****** *) implement the_schar_t0ype = s2cstref_make "schar_t0ype" implement the_schar_int_t0ype = s2cstref_make "schar_int_t0ype" implement s2exp_schar_t0ype () = s2exp_cst (s2cstref_get_cst (the_schar_t0ype)) // end of [s2exp_schar_t0ype] implement s2exp_schar_int_t0ype (c) = let val s2c = s2cstref_get_cst (the_schar_int_t0ype) val ind = s2exp_int (c) in s2exp_cstapp (s2c, list_sing (ind)) end // end of [s2exp_schar_int_t0ype] implement the_uchar_t0ype = s2cstref_make "uchar_t0ype" implement the_uchar_int_t0ype = s2cstref_make "uchar_int_t0ype" implement s2exp_uchar_t0ype () = s2exp_cst (s2cstref_get_cst (the_uchar_t0ype)) // end of [s2exp_uchar_t0ype] implement s2exp_uchar_int_t0ype (c) = let val s2c = s2cstref_get_cst (the_uchar_int_t0ype) val ind = s2exp_int (c) in s2exp_cstapp (s2c, list_sing (ind)) end // end of [s2exp_uchar_int_t0ype] (* ****** ****** *) // implement the_float_kind = s2cstref_make "float_kind" implement the_double_kind = s2cstref_make "double_kind" implement the_ldouble_kind = s2cstref_make "ldouble_kind" // implement the_g0float_t0ype = s2cstref_make "g0float_t0ype" // local fun auxmain (knd: s2cst): s2exp = let val knd = s2exp_cst (knd) val g0f = s2cstref_get_cst (the_g0float_t0ype) in s2exp_cstapp (g0f, list_sing (knd)) end // end of [auxmain] in // in of [local] implement s2exp_float_t0ype () = auxmain (s2cstref_get_cst (the_float_kind)) // end of [s2exp_float_t0ype] implement s2exp_double_t0ype () = auxmain (s2cstref_get_cst (the_double_kind)) // end of [s2exp_double_t0ype] implement s2exp_ldouble_t0ype () = auxmain (s2cstref_get_cst (the_ldouble_kind)) // end of [s2exp_ldouble_t0ype] end // end of [local] (* ****** ****** *) implement the_string_type = s2cstref_make("string_type") implement the_string_int_type = s2cstref_make("string_int_type") implement s2exp_string_type () = s2exp_cst (s2cstref_get_cst (the_string_type)) // end of [s2exp_string_type] implement s2exp_string_int_type (n) = let // // HX: the cast is okay as we do not attempt // to handle string of extremely long length // val ind = s2exp_int ((int_of_size)n) val s2c = s2cstref_get_cst (the_string_int_type) in s2exp_cstapp (s2c, list_sing(ind)) end // end of [s2exp_string_type] implement s2exp_string_index_type (ind) = let val s2c = s2cstref_get_cst (the_string_int_type) in s2exp_cstapp (s2c, list_sing(ind)) end // end of [s2exp_string_index_type] (* ****** ****** *) // implement the_literal_float = s2cstref_make("literal_float") implement the_literal_string = s2cstref_make("literal_string") // implement s2exp_literal_float (rep) = let val ind = s2exp_float (rep) val s2c = s2cstref_get_cst (the_literal_float) in s2exp_cstapp (s2c, list_sing(ind)) end // end of [s2exp_literal_float] implement s2exp_literal_string (str) = let val ind = s2exp_string (str) val s2c = s2cstref_get_cst (the_literal_string) in s2exp_cstapp (s2c, list_sing(ind)) end // end of [s2exp_literal_string] // (* ****** ****** *) // implement the_ptr_type = s2cstref_make "ptr_type" // implement s2exp_ptr_type () = s2exp_cst(s2c) where { val s2c = s2cstref_get_cst(the_ptr_type) } // end of [s2exp_ptr_type] // (* ****** ****** *) // implement the_ptr_addr_type = s2cstref_make("ptr_addr_type") // implement s2exp_ptr_addr_type (s2l) = let // val s2c = s2cstref_get_cst(the_ptr_addr_type) // in s2exp_cstapp (s2c, list_sing (s2l)) end // end of [s2exp_ptr_addr_type] // implement un_s2exp_ptr_addr_type (s2f) = let val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) when s2cstref_equ_exp ( the_ptr_addr_type, s2e_fun ) => let val-list_cons (s2l, _) = s2es_arg in Some_vt (s2l) end // end of [S2Eapp when ...] | _ => None_vt () // end // end of [un_s2exp_ptr_addr_type] // (* ****** ****** *) // implement the_atsvoid_t0ype = s2cstref_make "atsvoid_t0ype" // implement s2exp_void_t0ype () = s2exp_cst (s2cstref_get_cst (the_atsvoid_t0ype)) // end of [s2exp_void_t0ype] // (* ****** ****** *) implement the_unit_prop = s2cstref_make "unit_p" implement s2exp_unit_prop () = s2exp_cst (s2cstref_get_cst (the_unit_prop)) // end of [s2exp_unit_prop] implement the_unit_view = s2cstref_make "unit_v" implement s2exp_unit_view () = s2exp_cst (s2cstref_get_cst (the_unit_view)) // end of [s2exp_unit_view] (* ****** ****** *) // implement the_exception_vtype = s2cstref_make "exception_vtype" // implement s2exp_exception_vtype ((*void*)) = s2exp_cst(s2c) where { val s2c = s2cstref_get_cst (the_exception_vtype) } (* end of [s2exp_exception_vtype] *) // (* ****** ****** *) implement the_arrpsz_vt0ype_int_vt0ype = s2cstref_make "arrpsz_vt0ype_int_vt0ype" implement s2exp_arrpsz_vt0ype_int_vt0ype (s2e, s2i) = let val ind = s2exp_int(s2i) val s2c = s2cstref_get_cst(the_arrpsz_vt0ype_int_vt0ype) in s2exp_cstapp(s2c, list_pair(s2e, ind)) end // end of [s2exp_list_vt0ype_int_vtype] (* ****** ****** *) (* implement the_list0_t0ype_type = s2cstref_make "list0_t0ype_type" implement s2exp_list0_t0ype_type (s2e) = let val s2c = s2cstref_get_cst (the_list0_t0ype_type) in s2exp_cstapp (s2c, list_sing (s2e)) end // end of [s2exp_list0_t0ype_type] *) (* ****** ****** *) implement the_list_t0ype_int_type = s2cstref_make "list_t0ype_int_type" implement s2exp_list_t0ype_int_type (s2e, s2i) = let val ind = s2exp_int (s2i) val s2c = s2cstref_get_cst (the_list_t0ype_int_type) in s2exp_cstapp(s2c, list_pair(s2e, ind)) end // end of [s2exp_list_t0ype_int_type] implement the_list_vt0ype_int_vtype = s2cstref_make "list_vt0ype_int_vtype" implement s2exp_list_vt0ype_int_vtype (s2e, s2i) = let val ind = s2exp_int (s2i) val s2c = s2cstref_get_cst (the_list_vt0ype_int_vtype) in s2exp_cstapp(s2c, list_pair(s2e, ind)) end // end of [s2exp_list_vt0ype_int_vtype] (* ****** ****** *) // implement the_vbox_view_prop = s2cstref_make "vbox_view_prop" // implement s2exp_vbox_view_prop (s2e) = let // val s2c = s2cstref_get_cst ( the_vbox_view_prop ) (* end of [val] *) // in s2exp_cstapp(s2c, list_sing(s2e)) end // end of [s2exp_vbox_view_prop] // implement un_s2exp_vbox_view_prop (s2f) = let // val s2e = s2hnf2exp (s2f) // in // case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) when s2cstref_equ_exp ( the_vbox_view_prop, s2e_fun ) => let val-list_cons (s2e, _) = s2es_arg in Some_vt (s2e) end // end of [S2Eapp when ...] | _ => None_vt () // end // end of [un_s2exp_vbox_view_prop] // (* ****** ****** *) implement the_ref_vt0ype_type = s2cstref_make "ref_vt0ype_type" implement s2exp_ref_vt0ype_type (s2e) = let // val s2c = s2cstref_get_cst ( the_ref_vt0ype_type ) (* end of [val] *) // in s2exp_cstapp(s2c, list_sing (s2e)) end // end of [s2exp_ref_vt0ype_type] implement un_s2exp_ref_vt0ype_type (s2f) = let val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) when s2cstref_equ_exp ( the_ref_vt0ype_type, s2e_fun ) => let val-list_cons (s2e, _) = s2es_arg in Some_vt (s2e) end // end of [S2Eapp when ...] | _ => None_vt () // end // end of [un_s2exp_ref_vt0ype_type] (* ****** ****** *) // implement the_lazy_t0ype_type = s2cstref_make "lazy_t0ype_type" implement s2exp_lazy_t0ype_type (s2e) = let // val s2c = s2cstref_get_cst ( the_lazy_t0ype_type ) (* end of [val] *) // in s2exp_cstapp(s2c, list_sing(s2e)) end // end of [s2exp_lazy_t0ype_type] // implement un_s2exp_lazy_t0ype_type (s2f) = let val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of | S2Eapp (s2e_fun, s2es_arg) when s2cstref_equ_exp ( the_lazy_t0ype_type, s2e_fun ) => let val-list_cons (s2e, _) = s2es_arg in Some_vt (s2e) end // end of [S2Eapp when ...] | _ => None_vt () // end // end of [un_s2exp_lazy_t0ype_type] // (* ****** ****** *) // implement the_lazy_vt0ype_vtype = s2cstref_make "lazy_vt0ype_vtype" // implement s2exp_lazy_vt0ype_vtype (s2e) = let // val s2c = s2cstref_get_cst (the_lazy_vt0ype_vtype) // in s2exp_cstapp(s2c, list_sing(s2e)) end // end of [s2exp_lazy_vt0ype_vtype] // implement un_s2exp_lazy_vt0ype_vtype (s2f) = let val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of // case+ | S2Eapp ( s2e_fun, s2es_arg ) when s2cstref_equ_exp ( the_lazy_vt0ype_vtype, s2e_fun ) => let val- list_cons (s2e, _) = s2es_arg in Some_vt (s2e) end // end of [S2Eapp when ...] | _ (* non-S2Eapp *) => None_vt((*void*)) // end // end of [un_s2exp_lazy_vt0ype_vtype] // (* ****** ****** *) // implement the_bottom_t0ype_uni = s2cstref_make "bottom_t0ype_uni" // implement s2exp_bottom_t0ype_uni() = s2exp_cst (s2cstref_get_cst(the_bottom_t0ype_uni)) // end of [s2exp_bottom_t0ype_uni] // implement the_bottom_t0ype_exi = s2cstref_make "bottom_t0ype_exi" // implement s2exp_bottom_t0ype_exi() = s2exp_cst (s2cstref_get_cst(the_bottom_t0ype_exi)) // end of [s2exp_bottom_t0ype_exi] // (* ****** ****** *) // implement the_bottom_vt0ype_uni = s2cstref_make "bottom_vt0ype_uni" // implement s2exp_bottom_vt0ype_uni() = s2exp_cst (s2cstref_get_cst(the_bottom_vt0ype_uni)) // end of [s2exp_bottom_vt0ype_uni] // implement the_bottom_vt0ype_exi = s2cstref_make "bottom_vt0ype_exi" // implement s2exp_bottom_vt0ype_exi() = s2exp_cst (s2cstref_get_cst(the_bottom_vt0ype_exi)) // end of [s2exp_bottom_vt0ype_exi] // (* ****** ****** *) implement s2exp_types_nil ((*void*)) = let // val s2c = s2cstref_get_cst(the_types_nil) // in s2exp_cst(s2c) end // end of [s2exp_types_nil] implement s2exp_types_cons (s2e1, s2e2) = let // val s2c = s2cstref_get_cst(the_types_cons) // in s2exp_cstapp(s2c, list_pair(s2e1, s2e2)) end // end of [s2exp_types_cons] (* ****** ****** *) // implement s2exp_types_list (s2es) = let // fun auxlst(s2es: s2explst): s2exp = case+ s2es of | list_nil() => s2exp_types_nil() | list_cons(s2e, s2es) => s2exp_types_cons(s2e, auxlst(s2es)) // in s2exp_vararg(auxlst(s2es)) end (* end of [s2exp_types_list] *) // (* ****** ****** *) // implement the_vcopyenv_view_view = s2cstref_make("vcopyenv_view_view") // implement s2exp_vcopyenv_v(s2e) = let // val s2c = s2cstref_get_cst(the_vcopyenv_view_view) // in s2exp_cstapp(s2c, list_sing(s2e)) end // end of [s2exp_vcopyenv_v] // (* ****** ****** *) implement the_vcopyenv_vt0ype_vt0ype = s2cstref_make "vcopyenv_vt0ype_vt0ype" implement s2exp_vcopyenv_vt (s2e) = let val s2c = s2cstref_get_cst (the_vcopyenv_vt0ype_vt0ype) in s2exp_cstapp (s2c, list_sing (s2e)) end // end of [s2exp_vcopyenv_vt] (* ****** ****** *) implement the_effnil = s2cstref_make "effnil" implement the_effall = s2cstref_make "effall" implement the_effntm = s2cstref_make "effntm" implement the_effexn = s2cstref_make "effexn" implement the_effref = s2cstref_make "effref" implement the_effwrt = s2cstref_make "effwrt" (* ****** ****** *) implement s2eff_hnfize (s2fe) = let // fun aux .<>. ( s2fe: s2eff, s2e: s2exp ) : s2eff = let val s2f = s2exp2hnf (s2e) val s2e = s2hnf2exp (s2f) in // case+ s2e.s2exp_node of // | S2Ecst (s2c) => ( case+ 0 of | _ when s2cstref_equ_cst(the_effnil, s2c) => s2eff_effset(effset_nil) | _ when s2cstref_equ_cst(the_effall, s2c) => s2eff_effset(effset_all) | _ when s2cstref_equ_cst(the_effntm, s2c) => s2eff_effset(effset_ntm) | _ when s2cstref_equ_cst(the_effexn, s2c) => s2eff_effset(effset_exn) | _ when s2cstref_equ_cst(the_effref, s2c) => s2eff_effset(effset_ref) | _ when s2cstref_equ_cst(the_effwrt, s2c) => s2eff_effset(effset_wrt) | _ => s2fe ) // end of [S2Ecst] | S2Evar (s2v) => s2fe | S2EVar (s2v) => s2fe | S2Eeff (s2fe) => s2fe | _ => let val s2e = s2exp_errexp(s2rt_eff) in s2eff_exp(s2e) end // end of [_] // end (* end of [aux] *) // in // case+ s2fe of | S2EFFset _ => s2fe | S2EFFexp(s2e) => aux (s2fe, s2e) | S2EFFadd _ => s2fe // end // end of [s2eff_make_s2exp] (* ****** ****** *) extern fun sizeof_t0ype_int_assume(): void extern fun at_vt0ype_addr_view_assume(): void extern fun invar_assume(s2cr: s2cstref, s2t: s2rt): void extern fun invar_prop_prop_assume (): void extern fun invar_view_view_assume (): void extern fun invar_t0ype_t0ype_assume (): void extern fun invar_vt0ype_vt0ype_assume (): void (* ****** ****** *) implement the_at_vt0ype_addr_view = ( // // in prelude/basics_pre.sats // s2cstref_make("at_vt0ype_addr_view") ) // end of [the_at_vt0ype_addr_view] implement at_vt0ype_addr_view_assume ( // argless ) = let // val s2c = s2cstref_get_cst (the_at_vt0ype_addr_view) // end of [val] // val s2t_def = s2cst_get_srt(s2c) val s2v1 = s2var_make_srt(s2rt_vt0ype) and s2v2 = s2var_make_srt( s2rt_addr ) // val arg1 = s2exp_var(s2v1) val arg2 = s2exp_var(s2v2) // val s2f_at = s2exp_at(arg1, arg2) val s2e_def = s2exp_lam_srt (s2t_def, '[s2v1, s2v2], s2f_at) // end of [val] in s2cst_set_def(s2c, Some(s2e_def)) end // end of [at_vt0ype_addr_view_assume] (* ****** ****** *) implement the_sizeof_t0ype_int = ( // // in prelude/basics_pre.sats // s2cstref_make("sizeof_t0ype_int") ) (* end of [the_sizeof_t0ype_int] *) implement sizeof_t0ype_int_assume ( // argless ) = let // val s2c = s2cstref_get_cst (the_sizeof_t0ype_int) // end of [val] val s2v = s2var_make_srt(s2rt_t0ype) // val arg = s2exp_var(s2v) val s2size = s2exp_sizeof(arg) // val s2t_def = s2cst_get_srt(s2c) val s2e_def = s2exp_lam_srt(s2t_def, '[s2v], s2size) in s2cst_set_def(s2c, Some s2e_def) end // end of [sizeof_t0ype_int_assume] (* ****** ****** *) // // HX: // declared in [basic_pre.sats] // implement the_invar_prop_prop = s2cstref_make "invar_prop_prop" implement the_invar_view_view = s2cstref_make "invar_view_view" implement the_invar_t0ype_t0ype = s2cstref_make "invar_t0ype_t0ype" implement the_invar_vt0ype_vt0ype = s2cstref_make "invar_vt0ype_vt0ype" // (* ****** ****** *) implement invar_assume (s2cr, s2t) = let // val s2c = s2cstref_get_cst (s2cr) val s2t_def = s2cst_get_srt (s2c) val s2v = s2var_make_srt (s2t) val arg = s2exp_var (s2v) val s2e_body = s2exp_invar (arg) val s2e_def = s2exp_lam_srt (s2t_def, '[s2v], s2e_body) // in s2cst_set_def (s2c, Some s2e_def) end // end of [invar_assume] (* ****** ****** *) // // HX-2013-09: for internal use // implement the_atstype_int = s2cstref_make "atstype_int" implement the_atstype_bool = s2cstref_make "atstype_bool" implement the_atstype_uint = s2cstref_make "atstype_uint" implement the_atstype_size = s2cstref_make "atstype_size" implement the_atstype_ssize = s2cstref_make "atstype_ssize" // (* ****** ****** *) implement stacst2_initialize() = () where { // val () = sizeof_t0ype_int_assume() // sizeof(VT) // val () = at_vt0ype_addr_view_assume() // VT @ L // val () = invar_assume(the_invar_prop_prop, s2rt_prop) val () = invar_assume(the_invar_view_view, s2rt_view) val () = invar_assume(the_invar_t0ype_t0ype, s2rt_t0ype) val () = invar_assume(the_invar_vt0ype_vt0ype, s2rt_vt0ype) // } // end of [stacst2_initialize] (* ****** ****** *) (* end of [pats_stacst2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_atspre.dats0000644000175000017500000000330013431250607020647 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: August, 2013 // (* ****** ****** *) #include "prelude/DATS/pointer.dats" #include "prelude/DATS/reference.dats" (* ****** ****** *) #include "prelude/DATS/list.dats" #include "prelude/DATS/list_vt.dats" #include "prelude/DATS/array.dats" #include "prelude/DATS/option.dats" #include "prelude/DATS/option_vt.dats" (* ****** ****** *) (* end of [pats_atspre.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lintprgm.dats0000644000175000017500000005376413431250607021230 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Time: February 2012 // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./pats_utils.sats" (* ****** ****** *) staload "./pats_lintprgm.sats" (* ****** ****** *) implement{a} lt_myint_int (x, i) = (compare_myint_int (x, i) < 0) implement{a} lte_myint_int (x, i) = (compare_myint_int (x, i) <= 0) implement{a} gt_myint_int (x, i) = (compare_myint_int (x, i) > 0) implement{a} gte_myint_int (x, i) = (compare_myint_int (x, i) >= 0) implement{a} eq_myint_int (x, i) = (compare_myint_int (x, i) = 0) implement{a} neq_myint_int (x, i) = (compare_myint_int (x, i) != 0) (* ****** ****** *) implement{a} lt_myint_myint (x1, x2) = (compare_myint_myint (x1, x2) < 0) implement{a} lte_myint_myint (x1, x2) = (compare_myint_myint (x1, x2) <= 0) implement{a} gt_myint_myint (x1, x2) = (compare_myint_myint (x1, x2) > 0) implement{a} gte_myint_myint (x1, x2) = (compare_myint_myint (x1, x2) >= 0) (* ****** ****** *) implement{a} myintvec_get_at (iv, i) = x where { val (pf | p) = myintvec_takeout (iv) val i = size1_of_int1 (i) val (pfat, fpf | p_i) = array_ptr_takeout (pf | p, i) val x = myint_copy (!p_i) prval () = pf := fpf (pfat) prval () = myintvecout_addback (pf | iv) } // end of [myintvec_get_at] (* ****** ****** *) implement{a} myintvec_compare_at (iv, i, x) = sgn where { val (pf | p) = myintvec_takeout (iv) val i = size1_of_int1 (i) val (pfat, fpf | p_i) = array_ptr_takeout (pf | p, i) val sgn = compare_myint_int (!p_i, x) prval () = pf := fpf (pfat) prval () = myintvecout_addback (pf | iv) } // end of [myintvec_compare_at] (* ****** ****** *) implement{a} myintvec_add_int (iv, i) = let vtypedef x = myint(a) val (pf | p) = myintvec_takeout {a} (iv) prval (pf1, pf2) = array_v_uncons {x} (pf) val () = !p := add_myint_int (!p, i) prval () = pf := array_v_cons {x} (pf1, pf2) prval () = myintvecout_addback (pf | iv) in // nothing end // end of [myintvec_add_int] (* ****** ****** *) implement myintvec0_free {a}{n} (xs, n) = let vtypedef vt = myint(a) val (pfgc, pf | p) = __cast (xs) where { extern castfn __cast (x: myintvec0 (a, n)) :<> [l:addr] (free_gc_v (vt?, n, l), array_v(vt?, n, l) | ptr l) } // end of [val] in array_ptr_free (pfgc, pf | p) end // end of [myintvec0_free] implement{a} myintvec_free (iv, n) = let vtypedef x = myint(a) prval () = lemma_myintvec_params (iv) val (pfarr | p) = myintvec_takeout (iv) val asz = size1_of_int1 (n) val () = array_ptr_clear_fun (!p, asz, lam (x) =<0> myint_free (x)) prval () = myintvecout0_addback {a} (pfarr | iv) in myintvec0_free (iv, n) end // end of [myintvec_free] (* ****** ****** *) implement{a} icnstr_copy (ic, n) = case+ ic of | ICvec (knd, !p_iv) => let val iv_new = myintvec_copy (!p_iv, n) in fold@ (ic); ICvec (knd, iv_new) end // end of [ICvec] | ICveclst (knd, !p_ics) => let val ics_new = icnstrlst_copy (!p_ics, n) in fold@ (ic); ICveclst (knd, ics_new) end // end of [ICveclst] | ICerr (loc, s3e) => (fold@ (ic); ICerr (loc, s3e)) // end of [icnstr_copy] implement{a} icnstrlst_copy (ics, n) = case+ ics of | list_vt_cons (!p_ic, !p_ics1) => let val ic = icnstr_copy (!p_ic, n) val ics1 = icnstrlst_copy (!p_ics1, n) prval () = fold@ (ics) in list_vt_cons (ic, ics1) end // end of [list_vt_cons] | list_vt_nil () => let prval () = fold@ (ics) in list_vt_nil () end // end of [list_vt_nil] // end of [icnstrlst_copy] (* ****** ****** *) implement{a} icnstr_negate (ic) = case+ ic of | ICvec (!p_knd, _) => ( !p_knd := ~(!p_knd); fold@ (ic); ic ) // end of [ICvec] | ICveclst (!p_knd, !p_ics) => ( !p_knd := 1-(!p_knd); !p_ics := icnstrlst_negate (!p_ics); fold@ ic; ic ) // end of [ICveclst] | ICerr _ => (fold@ (ic); ic) // end of [icnstr_negate] implement{a} icnstrlst_negate (ics) = case+ ics of | list_vt_cons (!p_ic, !p_ics) => let val () = !p_ic := icnstr_negate (!p_ic) val () = !p_ics := icnstrlst_negate (!p_ics) in fold@ (ics); ics end // end of [list_vt_cons] | list_vt_nil () => (fold@ (ics); ics) // end of [icnstrlst_negate] (* ****** ****** *) implement{a} myintveclst_free (ivs, n) = case+ ivs of | ~list_vt_cons (iv, ivs) => (myintvec_free (iv, n); myintveclst_free (ivs, n)) | ~list_vt_nil () => () // end of [myintveclst_free] (* ****** ****** *) implement{a} icnstr_free (x, n) = case+ x of | ~ICvec (knd, obj) => myintvec_free (obj, n) | ~ICveclst (knd, xs) => icnstrlst_free (xs, n) | ~ICerr (loc, s3e) => () // end of [icnstr_free] implement{a} icnstrlst_free (xs, n) = case+ xs of | ~list_vt_cons (x, xs) => (icnstr_free (x, n); icnstrlst_free (xs, n)) | ~list_vt_nil () => () // end of [icnstrlst_free] (* ****** ****** *) #define UNDECIDED 0 #define TAUTOLOGY 1 #define CONTRADICTION ~1 (* ****** ****** *) extern fun{a:t@ype} myintvec_normalize // knd=2/1:gte/eq {n:pos} (knd: int, vec: !myintvec (a, n), n: int n): Ans2(*~1/0*) // end of [myintvec_normalize] (* ****** ****** *) implement{a} myintvec_inspect {n}(knd, iv, n) = let // vtypedef vt = myint(a) // fun loop {n:nat} {l:addr} .. ( pf: !array_v (vt, n, l) | p: ptr l, n: int n ) : bool(*cffs=0*) = let in if n > 0 then let prval (pf1, pf2) = array_v_uncons {vt} (pf) in if !p = 0 then let val ans = loop (pf2 | p + sizeof, n-1) prval () = pf := array_v_cons {vt} (pf1, pf2) in ans end else let prval () = pf := array_v_cons {vt} (pf1, pf2) in false end // end of [if] end else true // end of [if] end // end of [loop] // val (pf | p) = myintvec_takeout (iv) prval (pf1, pf2) = array_v_uncons {vt} (pf) val cffsZero = loop (pf2 | p+sizeof, n-1) var ans3: Ans3 = UNDECIDED val () = ( // if cffsZero then ( case+ knd of | 2 => ( if !p >= 0 then ans3 := TAUTOLOGY else ans3 := CONTRADICTION ) // end of [gte] | ~2 => ( if !p < 0 then ans3 := TAUTOLOGY else ans3 := CONTRADICTION ) // end of [gte] | 1 => ( if !p = 0 then ans3 := TAUTOLOGY else ans3 := CONTRADICTION ) // end of [eq] | ~1 => ( if !p != 0 then ans3 := TAUTOLOGY else ans3 := CONTRADICTION ) // end of [eq] | _ => () // HX: this should not happen ) // end of [if] // ) : void // end of [val] // prval () = pf := array_v_cons {vt} (pf1, pf2) prval () = myintvecout_addback (pf | iv) // in ans3(*~1/0/1*) end // end of [myintvec_inspect] implement{a} myintvec_inspect_lt (iv, n) = myintvec_inspect (~2(*lt*), iv, n) // end of [myintvec_inspect_gte] implement{a} myintvec_inspect_gte (iv, n) = myintvec_inspect (2(*gte*), iv, n) // end of [myintvec_inspect_gte] implement{a} myintvec_inspect_eq (iv, n) = let val knd = 1(*eq*) val ans2 = myintvec_inspect (knd, iv, n) in if ans2 = 0 then myintvec_normalize (knd, iv, n) else ans2 // end of [if] end // end of [myintvec_inspect_eq] implement{a} myintvec_inspect_neq (iv, n) = myintvec_inspect (~1(*neq*), iv, n) // end of [myintvec_inspect_neq] (* ****** ****** *) implement{a} myintveclst_inspect_gte {n} (ivs, n) = let // vtypedef vt = myintvec (a,n) // in // case+ ivs of | list_vt_cons (!p_iv, !p_ivs) => let val ans3 = myintvec_inspect_gte (!p_iv, n) // end of [val] in if ans3 != 0 then let val ivs1 = !p_ivs val () = myintvec_free (!p_iv, n) val () = free@ {vt}{0} (ivs) val () = ivs := ivs1 in if ans3 > 0 then // TAUTOLOGY myintveclst_inspect_gte (ivs, n) else ~1(*CONTRADICTION*) // end of [if] end else let val ans = myintveclst_inspect_gte (!p_ivs, n) prval () = fold@ (ivs) in ans // the final answers end // end of [if] end (* end of [list_vt_cons] *) | list_vt_nil () => let prval () = fold@ (ivs) in 0(*UNDECIDED*) end // end of [list_vt_nil] // end // end of [myintveclst_inspect_gte] (* ****** ****** *) local exception Finished fun {a:t0p} myintvec_cffgcd_main {n:pos} {l:addr} ( pf: !myint(a) @ l | iv: !myintvec (a, n), n: int n, p_res: ptr l ) : void = let // macdef gcd = gcd01_myint_myint // (* // stadef v = myint(a) @ l // var !p_clo = @lam ( pf: !v | x: &myint(a) ) : void =<1> if x != 0 then ( if x != 1 then ( !p_res := gcd (!p_res, x) ) else let val () = myint_free (!p_res) val () = !p_res := myint_make_int (1) in $raise (Finished) end // end of [if] ) // end of [if] // end of [var] // val n1 = size1_of_int1(n-1) // val (pfarr | p_arr) = myintvec_takeout (iv) prval (pf1at, pf2arr) = array_v_uncons {myint(a)} (pfarr) val p2_arr = p_arr + sizeof val () = array_ptr_foreach_vclo {v} (pf | !p2_arr, !p_clo, n1) prval () = pfarr := array_v_cons {myint(a)} (pf1at, pf2arr) prval () = myintvecout_addback (pfarr | iv) *) // fun loop ( pf: !myint(a) @ l | p: ptr, i: int ) : void = ( if i < n then let val x = $UN.ptr0_get(p) extern praxi __vfree(x: myint(a)): void in // if x != 0 then ( // if x != 1 then let val () = !p_res := gcd (!p_res, x) // end of [val] prval ((*void*)) = __vfree(x) in loop (pf | p+sizeof, i+1) end // end of [then] else let val () = myint_free (!p_res) val () = !p_res := myint_make_int (1) prval ((*void*)) = __vfree(x) in // nothing end // end of [else] // ) (* end of [then] *) else let prval ((*void*)) = __vfree(x) in loop (pf | p+sizeof, i+1) end // end of [else] // end // end of [then] // ) (* end of [loop] *) // val (pfarr | p_arr) = myintvec_takeout (iv) val () = loop (pf | p_arr+sizeof, 1) prval ((*void*)) = myintvecout_addback (pfarr | iv) // in // nothing end // end of [myintvec_cffgcd_main] in (* in of [local] *) implement{a} myintvec_cffgcd {n}(iv, n) = let // var res : myint(a) = myint_make_int (0) val p_res = &res // (* // // HX-2015-01-27: // fixing a bug in (clang-3.5 -O2) // HX-2015-01-28: // this is no longer needed due to // there being no longer use of exception val ((*void*)) = ptr_as_volatile(p_res) // *) // val ivp = __cast (iv) where { extern castfn __cast (iv: !myintvec(a, n)): ptr } (* end of [val] *) // viewdef v = myint(a)@res // // HX-2012-02-25: // this is so awkward! should try* be introduced? // val () = try let val iv = __cast (ivp) where { extern castfn __cast (p: ptr): myintvec (a, n) } (* end of [val] *) prval (pf, fpf) = __assert () where { extern praxi __assert (): (v, v - void) } (* end of [prval] *) val () = myintvec_cffgcd_main (pf | iv, n, &res) prval () = fpf (pf) prval () = __free (iv) where { extern praxi __free (iv: myintvec (a, n)): void } (* end of [prval] *) in // nothing end with | ~Finished () => () // end of [try] in res end // end of [myintvec_gcd] end // end of [local] (* ****** ****** *) implement{a} myintvec_normalize {n} (knd, iv, n) = let // vtypedef vt = myint (a) // macdef sub = sub01_myint_myint macdef div = div01_myint_myint macdef ediv = ediv01_myint_myint // fun loop {n:nat} {l:addr} .. ( pf: !array_v (vt, n, l) | gcd: !vt, p: ptr l, n: int n ) :<> void = if n > 0 then let prval (pf1, pf2) = array_v_uncons {vt} (pf) // end of [prval] val () = !p := (!p \ediv gcd) val tsz = sizeof val () = loop (pf2 | gcd, p+tsz, n-1) prval () = pf := array_v_cons {vt} (pf1, pf2) in // nothing end // end of [if] // val gcd = myintvec_cffgcd (iv, n) // in // if gcd > 1 then let val (pf | p) = myintvec_takeout {a} (iv) prval (pf1, pf2) = array_v_uncons {vt} (pf) var ans2: Ans2 = 0 val () = loop (pf2 | gcd, p+sizeof, n-1) val () = ( case+ 0 of | _ when knd = 2 => ( if !p >= 0 then !p := (!p \div gcd) else let // !p < 0 val () = !p := (!p \sub gcd) val () = !p := add_myint_int (!p, 1) in !p := (!p \div gcd) end // end of [if] ) // end of [knd=2/gte] | _ when knd = 1 => let val rmd = mod11_myint_myint (!p, gcd) val () = // HX: a contradiction may be reached if rmd = 0 then (!p := (!p \ediv gcd)) else (ans2 := ~1) val () = myint_free (rmd) in (*nothing*) end // end of [knd=1/eq] | _ => let val () = assertloc (false) in ans2 := ~1 end // end of [_] ) : void // end of [val] val ((*freed*)) = myint_free (gcd) prval pf = array_v_cons {vt} (pf1, pf2) prval () = myintvecout_addback {a} (pf | iv) in ans2 end else let val ((*freed*)) = myint_free (gcd) in 0(*normal*) end // end of [if] // end // end of [myintvec_normalize] implement{a} myintvec_normalize_gte (iv, n) = () where { val _(*0*) = myintvec_normalize (2(*knd*), iv, n) } // end of [myintvec_normalize_gte] implement{a} myintveclst_normalize_gte {n} (ivs, n) = let // vtypedef vt = myintvec (a,n) // in // case+ ivs of | list_vt_cons (!p_iv, !p_ivs) => let val () = myintvec_normalize_gte (!p_iv, n) val () = myintveclst_normalize_gte (!p_ivs, n) in fold@ (ivs) end // end of [list_vt_cons] | list_vt_nil () => fold@ (ivs) // end // end of [myintveclst_normalize_gte] (* ****** ****** *) implement{a} myintvec0_make {n} (n) = let val n = size1_of_int1 (n) val (pfgc, pfarr | p) = array_ptr_alloc (n) in __cast (pfgc, pfarr | p) where { extern castfn __cast {v1,v2:view} (_:v1, _:v2 | p: ptr):<> myintvec0(a, n) } // end of [__cast] end // end of [myintvec0_make] (* ****** ****** *) implement{a} myintvec_make {n} (n) = let // vtypedef x = myint (a) // fun loop {n:nat} {l:addr} .. ( pf: !array_v (x?, n, l) >> array_v (x, n, l) | p: ptr l, n: int n ) :<> void = if n > 0 then let prval (pf1, pf2) = array_v_uncons{x?}(pf) // end of [prval] val () = !p := myint_make_int (0) val () = loop (pf2 | p+sizeof, n-1) prval () = pf := array_v_cons{x}(pf1, pf2) in // nothing end else let prval () = array_v_unnil (pf) in pf := array_v_nil {x} () end // end of [if] // end of [loop] // val iv = myintvec0_make (n) val (pf | p) = myintvec0_takeout (iv) val () = loop (pf | p, n) prval () = myintvecout_addback (pf | iv) // in iv(* initialized with zeros *) end // end of [myintvec_make] (* ****** ****** *) implement{a} myintvec_copy {n}(iv1, n) = let // vtypedef vt = myint (a) // prval () = lemma_myintvec_params (iv1) // fun loop {n:nat} {l1,l2:addr} .. ( pf1: !array_v (vt, n, l1) , pf2: !array_v (vt?, n, l2) >> array_v (vt, n, l2) | p1: ptr l1, p2: ptr l2, n: int n ) :<> void = if n > 0 then let prval (pf11, pf12) = array_v_uncons {vt} (pf1) prval (pf21, pf22) = array_v_uncons {vt?} (pf2) val () = !p2 := myint_copy (!p1) val tsz = sizeof val () = loop (pf12, pf22 | p1+tsz, p2+tsz, n-1) prval () = pf1 := array_v_cons {vt} (pf11, pf12) prval () = pf2 := array_v_cons {vt} (pf21, pf22) in // nothing end else let prval () = array_v_unnil (pf2) in pf2 := array_v_nil {vt} () end // end of [if] val iv2 = myintvec0_make (n) val (pf1 | p1) = myintvec_takeout {a} (iv1) val (pf2 | p2) = myintvec0_takeout {a} (iv2) val () = loop (pf1, pf2 | p1, p2, n) prval () = myintvecout_addback {a} (pf1 | iv1) prval () = myintvecout_addback {a} (pf2 | iv2) // in iv2 end // end of [myintvec_copy] (* ****** ****** *) implement{a} myintvec_copy_cff {n} (cff, iv1, n) = let // macdef mul = mul11_myint_myint // vtypedef vt = myint (a) // prval () = lemma_myintvec_params (iv1) // fun loop {n:nat} {l1,l2:addr} .. ( pf1: !array_v (vt, n, l1) , pf2: !array_v (vt?, n, l2) >> array_v (vt, n, l2) | cff: !vt, p1: ptr l1, p2: ptr l2, n: int n ) :<> void = if n > 0 then let prval (pf11, pf12) = array_v_uncons {vt} (pf1) prval (pf21, pf22) = array_v_uncons {vt?} (pf2) val () = !p2 := (cff \mul !p1) val tsz = sizeof val () = loop (pf12, pf22 | cff, p1+tsz, p2+tsz, n-1) prval () = pf1 := array_v_cons {vt} (pf11, pf12) prval () = pf2 := array_v_cons {vt} (pf21, pf22) in // nothing end else let prval () = array_v_unnil (pf2) in pf2 := array_v_nil {vt} () end // end of [if] val iv2 = myintvec0_make (n) val (pf1 | p1) = myintvec_takeout {a} (iv1) val (pf2 | p2) = myintvec0_takeout {a} (iv2) val () = loop (pf1, pf2 | cff, p1, p2, n) prval () = myintvecout_addback {a} (pf1 | iv1) prval () = myintvecout_addback {a} (pf2 | iv2) // in iv2 end // end of [myintvec_copy_cff] (* ****** ****** *) implement{a} myintvec_negate {n} (iv, n) = let // macdef neg = neg_myint // vtypedef vt = myint (a) // prval () = lemma_myintvec_params (iv) // fun loop {n:nat} {l:addr} .. ( pf: !array_v (vt, n, l) | p: ptr l, n: int n ) :<> void = if n > 0 then let prval (pf1, pf2) = array_v_uncons {vt} (pf) val () = !p := neg (!p) val tsz = sizeof val () = loop (pf2 | p+tsz, n-1) prval () = pf := array_v_cons {vt} (pf1, pf2) in // nothing end // end of [if] // val (pf | p) = myintvec_takeout {a} (iv) // val () = loop (pf | p, n) // prval () = myintvecout_addback {a} (pf | iv) // in // nothing end // end of [myintvec_negate] (* ****** ****** *) implement{a} myintvec_scale {n} (cff, iv, n) = let // macdef mul = mul10_myint_myint // vtypedef vt = myint (a) // prval () = lemma_myintvec_params (iv) // fun loop {n:nat} {l:addr} .. ( pf: !array_v (vt, n, l) | cff: !myint(a), p: ptr l, n: int n ) :<> void = if n > 0 then let prval (pf1, pf2) = array_v_uncons {vt} (pf) val () = !p := (cff \mul !p) val tsz = sizeof val () = loop (pf2 | cff, p+tsz, n-1) prval () = pf := array_v_cons {vt} (pf1, pf2) in // nothing end // end of [if] val (pf | p) = myintvec_takeout {a} (iv) val () = loop (pf | cff, p, n) prval () = myintvecout_addback {a} (pf | iv) // in // nothing end // end of [myintvec_negate] (* ****** ****** *) implement{a} myintvec_addby {n} (iv1, iv2, n) = let // macdef add = add01_myint_myint // vtypedef vt = myint (a) // prval () = lemma_myintvec_params (iv1) // fun loop {n:nat} {l1,l2:addr} .. ( pf1: !array_v (vt, n, l1) , pf2: !array_v (vt, n, l2) | p1: ptr l1, p2: ptr l2, n: int n ) :<> void = if n > 0 then let prval (pf11, pf12) = array_v_uncons {vt} (pf1) prval (pf21, pf22) = array_v_uncons {vt} (pf2) val () = !p1 := (!p1 \add !p2) val tsz = sizeof val () = loop (pf12, pf22 | p1+tsz, p2+tsz, n-1) prval () = pf1 := array_v_cons {vt} (pf11, pf12) prval () = pf2 := array_v_cons {vt} (pf21, pf22) in // nothing end // end of [if] val (pf1 | p1) = myintvec_takeout {a} (iv1) val (pf2 | p2) = myintvec_takeout {a} (iv2) val () = loop (pf1, pf2 | p1, p2, n) prval () = myintvecout_addback {a} (pf1 | iv1) prval () = myintvecout_addback {a} (pf2 | iv2) // in // nothing end // end of [myintvec_addby] (* ****** ****** *) implement{a} myintvec_subby {n} (iv1, iv2, n) = let // macdef sub = sub01_myint_myint // vtypedef vt = myint (a) // prval () = lemma_myintvec_params (iv1) // fun loop {n:nat} {l1,l2:addr} .. ( pf1: !array_v (vt, n, l1) , pf2: !array_v (vt, n, l2) | p1: ptr l1, p2: ptr l2, n: int n ) :<> void = if n > 0 then let prval (pf11, pf12) = array_v_uncons {vt} (pf1) prval (pf21, pf22) = array_v_uncons {vt} (pf2) val () = !p1 := (!p1 \sub !p2) val tsz = sizeof val () = loop (pf12, pf22 | p1+tsz, p2+tsz, n-1) prval () = pf1 := array_v_cons {vt} (pf11, pf12) prval () = pf2 := array_v_cons {vt} (pf21, pf22) in // nothing end // end of [if] val (pf1 | p1) = myintvec_takeout {a} (iv1) val (pf2 | p2) = myintvec_takeout {a} (iv2) val () = loop (pf1, pf2 | p1, p2, n) prval () = myintvecout_addback {a} (pf1 | iv1) prval () = myintvecout_addback {a} (pf2 | iv2) // in // nothing end // end of [myintvec_subby] (* ****** ****** *) implement{a} myintvec_addby_cff {n} (iv1, cff, iv2, n) = let // macdef add = add01_myint_myint macdef mul = mul11_myint_myint // vtypedef vt = myint (a) // prval () = lemma_myintvec_params (iv1) // fun loop {n:nat} {l1,l2:addr} .. ( pf1: !array_v (vt, n, l1) , pf2: !array_v (vt, n, l2) | p1: ptr l1, cff: !vt, p2: ptr l2, n: int n ) :<> void = if n > 0 then let prval (pf11, pf12) = array_v_uncons {vt} (pf1) prval (pf21, pf22) = array_v_uncons {vt} (pf2) val cx2 = cff \mul !p2 val () = !p1 := (!p1 \add cx2) val () = myint_free (cx2) val tsz = sizeof val () = loop (pf12, pf22 | p1+tsz, cff, p2+tsz, n-1) prval () = pf1 := array_v_cons {vt} (pf11, pf12) prval () = pf2 := array_v_cons {vt} (pf21, pf22) in // nothing end // end of [if] val (pf1 | p1) = myintvec_takeout {a} (iv1) val (pf2 | p2) = myintvec_takeout {a} (iv2) val () = loop (pf1, pf2 | p1, cff, p2, n) prval () = myintvecout_addback {a} (pf1 | iv1) prval () = myintvecout_addback {a} (pf2 | iv2) // in // nothing end // end of [myintvec_addby] (* ****** ****** *) (* end of [pats_lintprgm.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_tmpvar.dats0000644000175000017500000001764513431250607022064 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp staload LOC = "./pats_location.sats" typedef location = $LOC.location (* ****** ****** *) staload "./pats_histaexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) local typedef tmpvar = '{ tmpvar_loc= location , tmpvar_type= hisexp , tmpvar_ref= int (* 0/1 : val/ref *) , tmpvar_ret= int (* return status *) , tmpvar_topknd= int (* 0/1 : local/top(static) *) , tmpvar_origin= Option (ptr), tmpvar_suffix= int // copy indication , tmpvar_stamp= stamp (* unicity *) } // end of [tmpvar] assume tmpvar_type = tmpvar extern typedef "tmpvar_t" = tmpvar in (* in of [local] *) implement tmpvar_make (loc, hse) = let val stamp = $STMP.tmpvar_stamp_make () in '{ tmpvar_loc= loc , tmpvar_type= hse , tmpvar_ref= 0 (*value*) , tmpvar_ret= 0 (*noret*) , tmpvar_topknd= 0 (*local*) , tmpvar_origin= None (), tmpvar_suffix= 0 // HX: copy indication , tmpvar_stamp= stamp } end // end of [tmpvar_make] (* ****** ****** *) // implement tmpvar_get_loc(tmp) = tmp.tmpvar_loc // implement tmpvar_get_type(tmp) = tmp.tmpvar_type // implement tmpvar_isref(tmp) = tmp.tmpvar_ref > 0 implement tmpvar_isret(tmp) = tmp.tmpvar_ret > 0 // implement tmpvar_get_topknd(tmp) = tmp.tmpvar_topknd // implement tmpvar_get_origin(tmp) = $UN.cast{tmpvaropt}(tmp.tmpvar_origin) // end of [tmpvar_get_origin] // implement tmpvar_get_stamp (tmp) = tmp.tmpvar_stamp implement tmpvar_get_suffix(tmp) = tmp.tmpvar_suffix // (* ****** ****** *) // implement tmpvar_get_tailcal (tmp) = tmp.tmpvar_ret // (* ****** ****** *) // implement eq_tmpvar_tmpvar (tmp1, tmp2) = $STMP.eq_stamp_stamp (tmp1.tmpvar_stamp, tmp2.tmpvar_stamp) // end of [eq_tmpvar_tmpvar] // implement compare_tmpvar_tmpvar (tmp1, tmp2) = $STMP.compare_stamp_stamp (tmp1.tmpvar_stamp, tmp2.tmpvar_stamp) // end of [compare_tmpvar_tmpvar] // (* ****** ****** *) end // end of [local] (* ****** ****** *) // implement print_tmpvar (tmp) = fprint_tmpvar (stdout_ref, tmp) implement prerr_tmpvar (tmp) = fprint_tmpvar (stderr_ref, tmp) // implement fprint_tmpvar (out, tmp) = let val isref = tmpvar_isref (tmp) val isret = tmpvar_isret (tmp) val stamp = tmpvar_get_stamp (tmp) val () = fprint_string (out, "tmp") val () = if isref then fprint_string (out, "ref") val () = if isret then fprint_string (out, "ret") val () = fprint_string (out, "(") val () = $STMP.fprint_stamp (out, stamp) val () = fprint_string (out, ")") in // nothing end // end of [fprint_tmpvar] // implement fprint_tmpvaropt (out, opt) = $UT.fprintopt (out, opt, fprint_tmpvar) // (* ****** ****** *) local extern fun tmpvar_set_ref (tmp: tmpvar, knd: int): void = "patsopt_tmpvar_set_ref" // end of [tmpvar_set_ref] extern fun tmpvar_set_ret (tmp: tmpvar, ret: int): void = "patsopt_tmpvar_set_ret" // end of [tmpvar_set_ret] in (* in of [local] *) implement tmpvar_make_ref (loc, hse) = tmp where { val tmp = tmpvar_make (loc, hse) val () = tmpvar_set_ref (tmp, 1(*ref*)) } // end of [tmpvar_make_ref] implement tmpvar_make_ret (loc, hse) = tmp where { val tmp = tmpvar_make (loc, hse) val () = tmpvar_set_ret (tmp, 1(*ret*)) } // end of [tmpvar_make_ret] implement tmpvar_inc_tailcal (tmp) = ((*void*)) where { val n = tmpvar_get_tailcal (tmp) val () = tmpvar_set_ret (tmp, n+1(*ret*)) } // end of [tmpvar_inc_tailcal] end // end of [local] (* ****** ****** *) implement tmpvar_copy_err (tmp) = tmp (* ****** ****** *) local (* ****** ****** *) staload LS = "libats/SATS/linset_avltree.sats" staload _(*anon*) = "libats/DATS/linset_avltree.dats" assume tmpvarset_vtype = $LS.set (tmpvar) staload LM = "libats/SATS/linmap_avltree.sats" staload _(*anon*) = "libats/DATS/linmap_avltree.dats" assume tmpvarmap_vtype (a:vt@ype) = $LM.map (tmpvar, a) (* ****** ****** *) val cmp = lam ( tmp1: tmpvar, tmp2: tmpvar ) : int = compare_tmpvar_tmpvar (tmp1, tmp2) // end of [val] in (* in of [local] *) implement tmpvarset_vt_nil () = $LS.linset_make_nil () implement tmpvarset_vt_free (xs) = $LS.linset_free (xs) implement tmpvarset_vt_add (xs, x) = xs where { var xs = xs val _(*replaced*) = $LS.linset_insert (xs, x, cmp) } // end of [tmpvarset_vt_add] implement tmpvarset_vt_listize (xs) = $LS.linset_listize (xs) implement tmpvarset_vt_listize_free (xs) = $LS.linset_listize_free (xs) (* ****** ****** *) implement tmpvarmap_vt_nil () = $LM.linmap_make_nil () implement tmpvarmap_vt_free (map) = $LM.linmap_free (map) implement tmpvarmap_vt_search {a} (map, tmp) = $LM.linmap_search_opt (map, tmp, cmp) // end of [tmpvarmap_vt_search] implement tmpvarmap_vt_insert {a} (map, tmp, x) = let var res: a? // uninitialized val ans = $LM.linmap_insert (map, tmp, x, cmp, res) prval () = opt_clear (res) in ans end // end of [tmpvarmap_vt_insert] implement tmpvarmap_vt_remove {a} (map, tmp) = $LM.linmap_remove (map, tmp, cmp) // end of [tmpvarmap_vt_remove] end // end of [local] (* ****** ****** *) implement tmpvar_set_tyclo (tmp, flab) = () where { val hse = hisexp_tyclo (flab) val () = let extern fun tmpvar_set_type (tmp: tmpvar, hse: hisexp): void = "patsopt_tmpvar_set_type" // end of [tmpvar_set_type] in tmpvar_set_type (tmp, hse) end // end of [val] } (* end of [tmpvar_set_tyclo] *) (* ****** ****** *) %{$ ats_void_type patsopt_tmpvar_set_type ( ats_ptr_type tmp, ats_ptr_type hse ) { ((tmpvar_t)tmp)->atslab_tmpvar_type = hse ; return ; } // end of [patsopt_tmpvar_set_type] ats_void_type patsopt_tmpvar_set_ref ( ats_ptr_type tmp, ats_int_type ref ) { ((tmpvar_t)tmp)->atslab_tmpvar_ref = ref ; return ; } // end of [patsopt_tmpvar_set_ref] ats_void_type patsopt_tmpvar_set_ret ( ats_ptr_type tmp, ats_int_type ret ) { ((tmpvar_t)tmp)->atslab_tmpvar_ret = ret ; return ; } // end of [patsopt_tmpvar_set_ret] ats_void_type patsopt_tmpvar_set_topknd ( ats_ptr_type tmp, ats_int_type knd ) { ((tmpvar_t)tmp)->atslab_tmpvar_topknd = knd ; return ; } // end of [patsopt_tmpvar_set_topknd] ats_void_type patsopt_tmpvar_set_origin ( ats_ptr_type tmp, ats_ptr_type opt ) { ((tmpvar_t)tmp)->atslab_tmpvar_origin = opt ; return ; } // end of [patsopt_tmpvar_set_origin] ats_void_type patsopt_tmpvar_set_suffix ( ats_ptr_type tmp, ats_int_type sfx ) { ((tmpvar_t)tmp)->atslab_tmpvar_suffix = sfx ; return ; } // end of [patsopt_tmpvar_set_suffix] %} // end of [%{$] (* ****** ****** *) (* end of [pats_ccomp_tmpvar.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dyncst2.sats0000644000175000017500000000363113431250607020765 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: January, 2013 // (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) abstype d2cstref_type = ptr typedef d2cstref = d2cstref_type (* ****** ****** *) fun d2cstref_make(name: string): d2cstref (* ****** ****** *) fun d2cstref_get_cst(r0: d2cstref): d2cst fun d2cstref_equ_cst(r0: d2cstref, d2c: d2cst): bool (* ****** ****** *) val the_sizeof_vt0ype_size : d2cstref (* ****** ****** *) fun d2cst_is_sizeof(d2c: d2cst): bool // sizeof-template (* ****** ****** *) fun dyncst2_initialize ((*void*)): void (* ****** ****** *) (* end of [pats_stacst2.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_jsonize.dats0000644000175000017500000002646313431250607021051 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2013 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" staload _(*UN*) = "prelude/DATS/unsafe.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload INTINF = "./pats_intinf.sats" (* ****** ****** *) staload "./pats_stamp.sats" staload "./pats_symbol.sats" staload "./pats_location.sats" staload "./pats_filename.sats" (* ****** ****** *) staload "./pats_label.sats" (* ****** ****** *) staload "./pats_jsonize.sats" (* ****** ****** *) implement jsonval_int (i) = JSONint (i) implement jsonval_intinf (i) = JSONintinf (i) implement jsonval_bool (b) = JSONbool (b) implement jsonval_double (d) = JSONfloat (d) implement jsonval_string (str) = JSONstring (str) (* ****** ****** *) implement jsonval_location (loc) = JSONlocation (loc) implement jsonval_filename (fil) = JSONfilename (fil) (* ****** ****** *) // #define nil list_nil // #define :: list_cons #define cons list_cons // (* ****** ****** *) implement jsonval_sing (x) = JSONlist (list_sing(x)) implement jsonval_pair (x1, x2) = JSONlist (list_pair(x1, x2)) (* ****** ****** *) // implement jsonval_labval1 (l, x) = JSONlablist (list_cons((l, x), list_nil)) implement jsonval_labval2 (l1, x1, l2, x2) = JSONlablist (list_cons((l1, x1), list_cons((l2, x2), list_nil))) implement jsonval_labval3 ( l1, x1, l2, x2, l3, x3 ) = JSONlablist ((l1, x1) :: (l2, x2) :: (l3, x3) :: list_nil(*void*)) implement jsonval_labval4 ( l1, x1, l2, x2, l3, x3, l4, x4 ) = JSONlablist ((l1, x1) :: (l2, x2) :: (l3, x3) :: (l4, x4) :: list_nil) // implement jsonval_labval5 ( l1, x1, l2, x2, l3, x3, l4, x4, l5, x5 ) = JSONlablist ( (l1, x1) :: (l2, x2) :: (l3, x3) :: (l4, x4) :: (l5, x5) :: list_nil ) implement jsonval_labval6 ( l1, x1, l2, x2, l3, x3, l4, x4, l5, x5, l6, x6 ) = JSONlablist ( (l1, x1) :: (l2, x2) :: (l3, x3) :: (l4, x4) :: (l5, x5) :: (l6, x6) :: list_nil ) implement jsonval_labval7 ( l1, x1, l2, x2, l3, x3, l4, x4, l5, x5, l6, x6, l7, x7 ) = JSONlablist ( (l1, x1) :: (l2, x2) :: (l3, x3) :: (l4, x4) :: (l5, x5) :: (l6, x6) :: (l7, x7) :: list_nil ) implement jsonval_labval8 ( l1, x1, l2, x2, l3, x3, l4, x4, l5, x5, l6, x6, l7, x7, l8, x8 ) = JSONlablist ( (l1, x1) :: (l2, x2) :: (l3, x3) :: (l4, x4) :: (l5, x5) :: (l6, x6) :: (l7, x7) :: (l8, x8) :: list_nil ) // (* ****** ****** *) // implement jsonval_conarg0 (con) = jsonval_conarglst (con, list_nil) implement jsonval_conarg1 (con, arg1) = jsonval_conarglst (con, list_sing (arg1)) implement jsonval_conarg2 (con, arg1, arg2) = jsonval_conarglst (con, list_pair (arg1, arg2)) implement jsonval_conarg3 (con, arg1, arg2, arg3) = jsonval_conarglst (con, arg1 :: arg2 :: arg3 :: list_nil) implement jsonval_conarg4 (con, arg1, arg2, arg3, arg4) = jsonval_conarglst (con, arg1 :: arg2 :: arg3 :: arg4 :: list_nil()) // implement jsonval_conarglst (con, arglst) = jsonval_labval1 (con, JSONlist (arglst)) // end of [jsonval_conarglst] (* ****** ****** *) // implement jsonval_none () = JSONoption (None()) implement jsonval_some (x) = JSONoption (Some(x)) // (* ****** ****** *) local fun fprint_jsonval_string ( out: FILEref, str: string ) : void = let // fun auxch ( out: FILEref, c: char ) : void = let in // case+ c of | '"' => fprint_string (out, "\\\"") | '\\' => fprint_string (out, "\\\\") | '\n' => fprint_string (out, "\\n") | '\r' => fprint_string (out, "\\r") | '\t' => fprint_string (out, "\\t") | '\b' => fprint_string (out, "\\b") | '\f' => fprint_string (out, "\\f") | _ (*rest-of-char*) => ( if char_isprint(c) then fprint_char(out, c) else let val uc = uchar_of_char(c) in fprintf (out, "\\u00%.2X", @($UN.cast2uint(uc))) end // end of [else] // end of [if] ) (* end of [_] *) // end // end of [auxch] // fun loop ( out: FILEref, p: ptr ) : void = let // val c = $UN.ptr0_get (p) // in // if c != '\000' then (auxch(out, c); loop (out, p+sizeof)) else () // end // end of [loop] // in // fprint_char (out, '"'); loop (out, $UN.cast{ptr}(str)); fprint_char (out, '"'); // end // end of [fprint_jsonval_string] in (* in-of-local *) implement fprint_jsonval (out, x0) = let // macdef prstr (str) = fprint_string (out, ,(str)) // in // case+ x0 of // | JSONnul () => prstr "{}" // | JSONint (i) => fprint_int (out, i) | JSONintinf (i) => { val () = fprint_char (out, '"') val () = $INTINF.fprint_intinf (out, i) val () = fprint_char (out, '"') } // | JSONbool (b) => fprint_bool (out, b) | JSONfloat (d) => fprint_double (out, d) // | JSONstring (str) => fprint_jsonval_string (out, str) // | JSONlocation (loc) => { val () = prstr "\"" val () = fprint_location (out, loc) val () = prstr "\"" } (* end of [JSONlocation] *) | JSONfilename (fil) => { val () = prstr "\"" val () = fprint_filename_full (out, fil) val () = prstr "\"" } (* end of [JSONfilename] *) // | JSONlist (xs) => { val () = prstr "[" val () = fprint_jsonvalist (out, xs) val () = prstr "]" } | JSONlablist (lxs) => { val () = prstr "{" val () = fprint_labjsonvalist (out, lxs) val () = prstr "}" } // | JSONoption (opt) => { val () = prstr "[" val () = ( case+ opt of | Some x => fprint_jsonval (out, x) | None () => () ) : void // end of [val] val () = prstr "]" } // end // end of [fprint_jsonval] end // end of [local] (* ****** ****** *) implement fprint_jsonvalist (out, xs0) = let // fun aux ( out: FILEref , xs0: jsonvalist, i: int ) : void = let in // case+ xs0 of | list_nil () => () | list_cons (x, xs) => let val () = if i > 0 then fprint (out, ", ") // end of [if] val () = fprint_jsonval (out, x) in aux (out, xs, i+1) end // end of [list_cons] // end // end of [aux] // in aux (out, xs0, 0) end // end of [fprint_jsonvalist] (* ****** ****** *) implement fprint_labjsonvalist (out, lxs0) = let // fun aux ( out: FILEref , lxs0: labjsonvalist, i: int ) : void = let in // case+ lxs0 of | list_nil () => () | list_cons (lx, lxs) => let val () = if i > 0 then fprint (out, ", ") // end of [if] val () = fprintf (out, "\"%s\"", @(lx.0)) val () = fprint_string (out, ": ") val () = fprint_jsonval (out, lx.1) in aux (out, lxs, i+1) end // end of [list_cons] // end // end of [aux] // in aux (out, lxs0, 0) end // end of [fprint_labjsonvalist] (* ****** ****** *) local fun aux0 ( name: string ) : jsonval = let val name = jsonval_string (name) val arglst = JSONlist (list_nil()) in jsonval_labval2 ("funclo_name", name, "funclo_arglst", arglst) end // end of [aux0] fun aux1 ( name: string, arg: jsonval ) : jsonval = let val name = jsonval_string (name) val arglst = jsonval_sing (arg) in jsonval_labval2 ("funclo_name", name, "funclo_arglst", arglst) end // end of [aux1] in (* in of [local] *) implement jsonize_funclo (fc) = ( case+ fc of | FUNCLOfun () => aux0 ("FUNCLOfun") | FUNCLOclo (knd) => aux1 ("FUNCLOclo", jsonval_int (knd)) ) (* end of [jsonize_funclo] *) end // end of [local] (* ****** ****** *) implement jsonize_caskind(knd) = ( // case+ knd of | CK_case () => jsonval_string "CK_case" | CK_case_pos () => jsonval_string "CK_case_pos" | CK_case_neg () => jsonval_string "CK_case_neg" // ) (* end of [jsonize_caskind] *) (* ****** ****** *) implement jsonize_funkind(knd) = ( // case+ knd of // | FK_fn () => jsonval_string "FK_fn" | FK_fnx () => jsonval_string "FK_fnx" | FK_fun () => jsonval_string "FK_fun" // | FK_prfn () => jsonval_string "FK_prfn" | FK_prfun () => jsonval_string "FK_prfun" // | FK_praxi () => jsonval_string "FK_praxi" // | FK_castfn () => jsonval_string "FK_castfn" // ) (* end of [jsonize_funkind] *) (* ****** ****** *) implement jsonize_valkind(knd) = ( // case+ knd of | VK_val () => jsonval_string "VK_val" | VK_prval () => jsonval_string "VK_prval" | VK_val_pos () => jsonval_string "VK_val_pos" | VK_val_neg () => jsonval_string "VK_val_neg" // ) (* end of [jsonize_valkind] *) (* ****** ****** *) implement jsonize_dcstkind(knd) = ( // case+ knd of | DCKfun () => jsonval_string "DCKfun" | DCKval () => jsonval_string "DCKval" | DCKpraxi () => jsonval_string "DCKpraxi" | DCKprfun () => jsonval_string "DCKprfun" | DCKprval () => jsonval_string "DCKprval" | DCKcastfn () => jsonval_string "DCKcastfn" // ) (* end of [jsonize_dcstkind] *) (* ****** ****** *) // implement jsonize_stamp(x0) = jsonval_int(stamp_get_int(x0)) // (* ****** ****** *) // implement jsonize_symbol(sym) = jsonval_string(symbol_get_name(sym)) implement jsonize_symbolopt(opt) = ( // case+ opt of | None() => jsonval_none() | Some(x) => jsonval_some(jsonize_symbol(x)) // ) (* end of [jsonize_symbolopt] *) // (* ****** ****** *) // implement jsonize_location(loc) = jsonval_location (loc) implement jsonize_filename(fil) = jsonval_filename (fil) // (* ****** ****** *) implement jsonize_label(lab) = let // val opt = label_get_int(lab) // in // case+ opt of | ~Some_vt (x) => let val jsv = jsonval_int (x) in jsonval_labval1 ("LABint", jsv) end (* end of [Some_vt] *) | ~None_vt ((*void*)) => let val opt = label_get_sym (lab) in case+ opt of | ~Some_vt (sym) => let val jsv = jsonize_symbol (sym) in jsonval_labval1 ("LABsym", jsv) end // end of [Some_vt] | ~None_vt ((*void*)) => JSONnul ((*void*)) end (* end of [None_vt] *) // end // end of [jsonize_label] (* ****** ****** *) // implement jsonize_ignored(x0) = JSONnul((*void*)) // (* ****** ****** *) implement {a}(*tmp*) jsonize_list_fun(xs, f) = let // (* val () = println! ("jsonize_option_fun") *) // val jsvs = list_map_fun (xs, f) // val jsvs = list_of_list_vt(jsvs) in JSONlist (jsvs) // end // end of [jsonize_list_fun] (* ****** ****** *) implement {a}(*tmp*) jsonize_option_fun(opt, f) = let // (* val () = println! ("jsonize_option_fun") *) // in // case+ opt of | None() => jsonval_none() | Some(x) => jsonval_some(f(x)) // end // end of [jsonize_option_fun] (* ****** ****** *) (* end of [pats_jsonize.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_namespace.sats0000644000175000017500000000355613431250607021341 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload S2EXP = "./pats_staexp2.sats" typedef filenv = $S2EXP.filenv (* ****** ****** *) // fun the_namespace_add (x: filenv): void // fun the_namespace_search{a:type} (fsearch: !filenv - Option_vt(a)): Option_vt(a) // end of [the_namespace_search] // (* ****** ****** *) fun the_namespace_pop (): void fun the_namespace_push (): void fun the_namespace_localjoin (): void fun the_namespace_save (): void fun the_namespace_restore (): void (* ****** ****** *) (* end of [pats_namespace.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_scst.dats0000644000175000017500000004237113431250607022006 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload GLOB = "./pats_global.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" typedef stamp = $STMP.stamp overload compare with $STMP.compare_stamp_stamp (* ****** ****** *) staload FIL = "./pats_filename.sats" staload LOC = "./pats_location.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol typedef symbolopt = $SYM.symbolopt (* ****** ****** *) staload "./pats_staexp2.sats" (* ****** ****** *) abstype s2cstlst_t // = s2cstlst extern castfn s2cstlst_encode (x: s2cstlst):<> s2cstlst_t extern castfn s2cstlst_decode (x: s2cstlst_t):<> s2cstlst abstype s2cstopt_t // = s2cstopt extern castfn s2cstopt_encode (x: s2cstopt):<> s2cstopt_t extern castfn s2cstopt_decode (x: s2cstopt_t):<> s2cstopt (* ****** ****** *) typedef s2cst_struct = @{ s2cst_sym= symbol // the name , s2cst_loc= location // location , s2cst_fil= filename // filename // , s2cst_srt= s2rt // the sort // , s2cst_def= s2expopt // definition , s2cst_pack= Stropt // for ATS_PACKNAME // , s2cst_isabs= Option(s2expopt) // is abstract? , s2cst_iscon= bool // constructor? , s2cst_isrec= bool // is it recursive? , s2cst_isasp= s2expopt // is it assumed? , s2cst_iscpy= s2cstopt_t // is it a copy? // // HX: is list-like? // , s2cst_islst= Option @(d2con(*nil*), d2con(*cons*)) // , s2cst_arylst= List int // arity list // // HX: -1/0/1: contravarint/invariant/covarint // , s2cst_argsrtss= List (syms2rtlst) // // HX: the associated dynamic constructors // , s2cst_dconlst= Option (d2conlst) // , s2cst_sup= s2cstlst_t // parents if any , s2cst_supcls= s2explst // superclasses if any // , s2cst_sVarset= s2Varset // for occurrence checks // , s2cst_dstag= int // dstag >= 0 if associated a datasort // , s2cst_stamp= stamp // stamp for unicity // , s2cst_extdef= scstextdef // external scst definition // } (* end of [s2cst_struct] *) (* ****** ****** *) local // extern fun s2cst_set_isabs ( x0: s2cst, opt: s2expopt ) : void = "patsopts2cst_set_isabs" // fun s2rt_get_arylst ( s2t: s2rt ) : List0(int) = ( case+ s2t of | S2RTfun(s2ts, s2t) => let val n0 = list_length(s2ts) in list_cons(n0, s2rt_get_arylst(s2t)) end (* end of [S2RTfun] *) | _ (*non-S2RTfun*) => list_nil((*void*)) ) // end of [s2rt_get_arylst] assume s2cst_type = ref(s2cst_struct) in (* in of [local] *) implement s2cst_make ( id , loc, fil, s2t , isabs, iscon, isrec, isasp, islst , argsrtss, def ) = let // val pack = $GLOB.the_PACKNAME_get () val stamp = $STMP.s2cst_stamp_make () val (pfgc, pfat | p) = ptr_alloc () prval () = free_gc_elim {s2cst_struct?} (pfgc) // val () = p->s2cst_sym := id val () = p->s2cst_loc := loc val () = p->s2cst_fil := fil // val () = p->s2cst_srt := s2t // val () = p->s2cst_def := def val () = p->s2cst_pack := pack // val () = p->s2cst_isabs := isabs val () = p->s2cst_iscon := iscon val () = p->s2cst_isrec := isrec val () = p->s2cst_isasp := isasp val () = p->s2cst_iscpy := s2cstopt_encode(None) val () = p->s2cst_islst := islst val () = p->s2cst_arylst := s2rt_get_arylst(s2t) val () = p->s2cst_argsrtss := argsrtss val () = p->s2cst_dconlst := None () val () = p->s2cst_sup := s2cstlst_encode(list_nil) val () = p->s2cst_supcls := list_nil () val () = p->s2cst_sVarset := s2Varset_nil() val () = p->s2cst_dstag := (~1) // datasort val () = p->s2cst_stamp := stamp // unicity // val () = p->s2cst_extdef := $SYN.SCSTEXTDEFnone(*void*) // in // in of [let] // ref_make_view_ptr(pfat | p) // end // end of [s2cst_make] (* ****** ****** *) implement s2cst_get_sym(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_sym // end // end of [s2cst_get_sym] (* ****** ****** *) implement s2cst_get_loc(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_loc // end // end of [s2cst_get_loc] (* ****** ****** *) implement s2cst_get_fil(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_fil // end // end of [s2cst_get_fil] (* ****** ****** *) implement s2cst_get_srt(s2c) = let // val (vbox pf | p) = ref_get_view_ptr(s2c) in p->s2cst_srt // end // end of [s2cst_get_srt] (* ****** ****** *) implement s2cst_get_def(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_def // end // end of [s2cst_def_get] implement s2cst_set_def(s2c, opt) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_def := opt // end // end of [s2cst_def_set] (* ****** ****** *) implement s2cst_get_pack(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_pack // end // end of [s2cst_get_pack] (* ****** ****** *) implement s2cst_get_isabs(s2c) = let // val (vbox pf | p) = ref_get_view_ptr(s2c) in p->s2cst_isabs // end // end of [s2cst_get_isabs] (* ****** ****** *) // // HX-2017-02-01: // This one is for internal use! // implement s2cst_set_isabs(s2c, opt) = let // val (vbox pf | p) = ref_get_view_ptr(s2c) in p->s2cst_isabs := Some(opt) // end // end of [s2cst_set_isabs] // (* ****** ****** *) implement s2cst_get_iscon(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_iscon // end // end of [s2cst_get_iscon] (* ****** ****** *) implement s2cst_get_isrec(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_isrec // end // end of [s2cst_get_isrec] (* ****** ****** *) implement s2cst_get_isasp(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_isasp // end // end of [s2cst_get_isasp] implement s2cst_set_isasp(s2c, isasp) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_isasp := isasp // end // end of [s2cst_set_isasp] (* ****** ****** *) implement s2cst_get_argsrtss(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_argsrtss // end // end of [s2cst_get_argsrtss] (* ****** ****** *) implement s2cst_get_islst(s2c) = let // val (vbox pf | p) = ref_get_view_ptr(s2c) in p->s2cst_islst // end // end of [s2cst_get_islst] implement s2cst_set_islst(s2c, islst) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_islst := islst // end // end of [s2cst_set_islst] (* ****** ****** *) implement s2cst_get_dconlst(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_dconlst // end // end of [s2cst_get_dconlst] implement s2cst_set_dconlst(s2c, d2cs) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_dconlst := d2cs // end // end of [s2cst_set_dconlst] (* ****** ****** *) implement s2cst_get_sup(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in s2cstlst_decode(p->s2cst_sup) // end // end of [s2cst_sup_get] implement s2cst_add_sup(s2c, sup) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) // val sups = s2cstlst_decode(p->s2cst_sup) val sups = s2cstlst_encode(list_cons(sup, sups)) // in p->s2cst_sup := sups end // end of [s2cst_sup_add] (* ****** ****** *) implement s2cst_get_supcls(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_supcls // end // end of [s2cst_get_supcls] implement s2cst_add_supcls(s2c, sup) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) // in p->s2cst_supcls := list_cons(sup, p->s2cst_supcls) end // end of [s2cst_supcls_add] (* ****** ****** *) implement s2cst_get_sVarset(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_sVarset // end // end of [s2cst_get_sVarset] implement s2cst_set_sVarset(s2c, s2Vs) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_sVarset := s2Vs // end // end of [s2cst_set_sVarset] (* ****** ****** *) implement s2cst_get_dstag(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_dstag // end // end of [s2cst_get_dstag] implement s2cst_set_dstag(s2c, tag) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_dstag := tag // end (* end of [s2cst_set_dstag] *) (* ****** ****** *) implement s2cst_get_stamp(s2c) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_stamp // end // end of [s2cst_get_stamp] (* ****** ****** *) implement s2cst_get_extdef(s2c) = let val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_extdef // end of [val] end // end of [s2cst_get_extdef] implement s2cst_set_extdef(s2c, xdef) = let // val (vbox(pf)|p) = ref_get_view_ptr(s2c) in p->s2cst_extdef := xdef // end (* end of [s2cst_set_extdef] *) (* ****** ****** *) end // end of [local] (* ****** ****** *) implement s2cst_get_name(s2c) = $SYM.symbol_get_name(s2cst_get_sym(s2c)) // end of [s2cst_get_name] (* ****** ****** *) implement s2cst_make_dat ( id0, loc, s2tss_arg, s2t_res, argsrtss ) = let // fun aux ( xs: s2rtlstlst, s2t: s2rt ) : s2rt = ( case+ xs of | list_cons (x, xs) => s2rt_fun(x, aux(xs, s2t)) // list_cons | list_nil((*void*)) => s2t ) (* end of [aux] *) // val s2t_fun = aux(s2tss_arg, s2t_res) // in // s2cst_make ( id0 // name , loc // location , $FIL.filename_dummy , s2t_fun // sort , None () // isabs , true // iscon , false // isrec , None () // isasp , None () // islst , argsrtss // argsortlstlst , None () // definition ) (* end of [s2cst_make] *) // end // end of [s2cst_make_dat] (* ****** ****** *) implement lt_s2cst_s2cst (x1, x2) = (compare(x1, x2) < 0) // end of [lt_s2cst_s2cst] implement lte_s2cst_s2cst (x1, x2) = (compare(x1, x2) <= 0) // end of [lte_s2cst_s2cst] implement eq_s2cst_s2cst (x1, x2) = (compare(x1, x2) = 0) // end of [eq_s2cst_s2cst] implement neq_s2cst_s2cst (x1, x2) = (compare(x1, x2) != 0) // end of [neq_s2cst_s2cst] implement compare_s2cst_s2cst(x1, x2) = ( // $effmask_all ( compare(s2cst_get_stamp(x1), s2cst_get_stamp(x2)) ) (* $effmask_all *) // ) (* end of [compare_s2cst_s2cst] *) (* ****** ****** *) implement s2cst_is_def(x) = let val isdef = s2cst_get_def(x) in case+ isdef of Some _ => true | None _ => false end // end of [s2cst_is_defined] (* ****** ****** *) implement s2cst_is_abstr(x) = let val isabs = s2cst_get_isabs(x) in case+ isabs of Some _ => true | None _ => false end // end of [s2cst_is_abstract] (* ****** ****** *) implement s2cst_is_tkind(x) = s2rt_is_tkind_fun (s2cst_get_srt(x)) // end of [s2cst_is_tkind] (* ****** ****** *) implement s2cst_is_tydef(s2c) = ( // if s2cst_is_def(s2c) then s2rt_is_prgm_fun(s2cst_get_srt(s2c)) else false // ) (* end of [s2cst_is_tydef] *) implement s2cst_is_datype(s2c) = ( // if s2cst_is_abstr(s2c) then false else s2cst_get_iscon(s2c) // ) (* end of [s2cst_is_datype] *) (* ****** ****** *) implement s2cst_is_tagless(x) = ( case+ 0 of | _ when s2cst_is_listlike(x) => true | _ when s2cst_is_singular(x) => true | _ (*non-listlist-singular*) => false ) // end of [s2cst_is_tagless] implement s2cst_is_listlike(x) = let val opt = s2cst_get_islst(x) in case+ opt of Some _ => true | None _ => false end // end of [s2cst_is_listlike] implement s2cst_is_singular(s2c) = let val opt = s2cst_get_dconlst (s2c) in case+ opt of | Some d2cs => list_is_sing(d2cs) | None() => false end // end of [s2cst_is_singular] implement s2cst_is_binarian(s2c) = let val opt = s2cst_get_dconlst (s2c) in case+ opt of | Some d2cs => list_is_pair(d2cs) | None() => false end // end of [s2cst_is_binarian] (* ****** ****** *) // implement s2cst_is_linear(s2c) = s2rt_is_lin_fun(s2cst_get_srt(s2c)) // implement s2cst_is_nonlinear(s2c) = if s2cst_is_linear(s2c) then false else true // (* ****** ****** *) implement s2cst_subeq (s2c1, s2c2) = let (* val () = println! ("s2cst_subeq: s2c1 = ", s2c1) val () = println! ("s2cst_subeq: s2c2 = ", s2c2) *) fun aux ( s2c1: s2cst, s2c2: s2cst ) : bool = if s2c1 = s2c2 then true else auxlst (s2cst_get_sup (s2c1), s2c2) // end of [if] and auxlst ( s2cs1: s2cstlst, s2c2: s2cst ) : bool = case+ s2cs1 of | list_cons (s2c1, s2cs1) => if aux (s2c1, s2c2) then true else auxlst (s2cs1, s2c2) | list_nil ((*void*)) => false // end of [auxlst] // val res = aux (s2c1, s2c2) (* val () = println! ("s2cst_subeq: res = ", res) *) in res end // end of [s2cst_subeq] (* ****** ****** *) implement s2cst_lte_cls_cls (s2c1, s2c2) = let (* val () = println! ("s2cst_lte_cls_cls: s2c1 = ", s2c1) val () = println! ("s2cst_lte_cls_cls: s2c2 = ", s2c2) *) fun aux ( s2c1: s2cst, s2c2: s2cst ) : bool = let (* val () = println! ("s2cst_lte_cls_cls: aux: s2c1 = ", s2c1) val () = println! ("s2cst_lte_cls_cls: aux: s2c2 = ", s2c2) *) in if s2c1 = s2c2 then true else auxlst (s2cst_get_supcls (s2c1), s2c2) // end of [if] end // end of [aux] // and auxlst ( s2es1: s2explst, s2c2: s2cst ) : bool = let in case+ s2es1 of | list_cons (s2e1, s2es1) => ( case+ s2e1.s2exp_node of | S2Ecst (s2c1) => if aux (s2c1, s2c2) then true else auxlst (s2es1, s2c2) | _ (*nonconst*) => auxlst (s2es1, s2c2) ) (* end of list_cons *) | list_nil ((*void*)) => false end // end of [auxlst] // val res = aux (s2c1, s2c2) (* val () = println! ("s2cst_lte_cls_cls: res = ", res) *) in res end // end of [s2cst_lte_cls_cls] (* ****** ****** *) implement fprint_s2cst (out, x) = let val sym = s2cst_get_sym (x) in $SYM.fprint_symbol (out, sym) end // end of [fprint_s2cst] (* // // HX: this version is for debugging // implement fprint_s2cst (out, x) = let val sym = s2cst_get_sym (x) val stmp = s2cst_get_stamp (x) val fil = s2cst_get_fil (x) val () = $FIL.fprint_filename_full (out, fil) val () = fprint_string (out, "::") val () = $SYM.fprint_symbol (out, sym) val () = fprint_string (out, "(") val () = $STMP.fprint_stamp (out, stmp) val () = fprint_string (out, ")") in // nothing end // end of [fprint_s2cst] *) implement print_s2cst (x) = fprint_s2cst (stdout_ref, x) implement prerr_s2cst (x) = fprint_s2cst (stderr_ref, x) implement fprint_s2cstlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s2cst) // end of [fprint_s2cstlst] implement print_s2cstlst (xs) = fprint_s2cstlst (stdout_ref, xs) implement prerr_s2cstlst (xs) = fprint_s2cstlst (stderr_ref, xs) (* ****** ****** *) local // staload FS = "libats/SATS/funset_avltree.sats" staload LS = "libats/SATS/linset_avltree.sats" staload _(*FS*) = "libats/DATS/funset_avltree.dats" staload _(*LS*) = "libats/DATS/linset_avltree.dats" // val cmp = lam ( s2v1: s2cst, s2v2: s2cst ) : int = compare_s2cst_s2cst (s2v1, s2v2) // end of [val] // assume s2cstset_type = $FS.set (s2cst) assume s2cstset_vtype = $LS.set (s2cst) // in (* in-of-local *) implement s2cstset_nil ((*void*)) = $FS.funset_make_nil () // implement s2cstset_ismem (xs, x) = $FS.funset_is_member (xs, x, cmp) // implement s2cstset_add (xs, x) = xs where { var xs = xs val _(*rplced*) = $FS.funset_insert (xs, x, cmp) } (* end of [s2cstset_add] *) // implement s2cstset_listize (xs) = $FS.funset_listize (xs) (* ****** ****** *) implement s2cstset_vt_nil ((*void*)) = $LS.linset_make_nil () // implement s2cstset_vt_ismem (xs, x) = $LS.linset_is_member (xs, x, cmp) // implement s2cstset_vt_add (xs, x) = xs where { var xs = xs val _(*rplced*) = $LS.linset_insert (xs, x, cmp) } (* end of [s2cstset_vt_add] *) // implement s2cstset_vt_listize_free (xs) = $LS.linset_listize_free (xs) end // end of [local] (* ****** ****** *) local staload MAP = "libats/SATS/funmap_avltree.sats" staload _ = "libats/DATS/funmap_avltree.dats" assume s2cstmap_type_type (a:type) = $MAP.map (s2cst, a) // end of [s2cstmap_type_type] val cmp = lam ( s2c1: s2cst, s2c2: s2cst ) : int = compare_s2cst_s2cst (s2c1, s2c2) // end of [val] in // in of [local] implement s2cstmap_nil () = $MAP.funmap_make_nil () implement s2cstmap_add (map, s2c, itm) = map where { var map = map val _(*replaced*) = $MAP.funmap_insert (map, s2c, itm, cmp) } // end of [s2cstmap_add] implement s2cstmap_find {a} (map, s2c) = let var res: a? val found = $MAP.funmap_search (map, s2c, cmp, res) // end of [val] in if found then let prval () = opt_unsome {a} (res) in Some_vt (res) end else let prval () = opt_unnone {a} (res) in None_vt (*empty*) end (* end of [if] *) end // end of [s2cstmap_find] end // end of [local] (* ****** ****** *) (* end of [pats_staexp2_scst.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_symmap_htlinprb.hats0000644000175000017500000001150513431250607022573 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/hashtable_linprb.sats" staload _(*anon*) = "libats/DATS/hashtable_linprb.dats" (* ****** ****** *) staload "pats_symmap.sats" (* ****** ****** *) %{^ ATSinline() ats_ulint_type hashint_jenkin32 ( ats_uint_type x ) { uint32_t a = x ; a = (a+0x7ed55d16) + (a<<12); a = (a^0xc761c23c) ^ (a>>19); a = (a+0x165667b1) + (a<<5); a = (a+0xd3a2646c) ^ (a<<9); a = (a+0xfd7046c5) + (a<<3); a = (a^0xb55a4f09) ^ (a>>16); return a; } // end of [hashint_jenkin32] %} extern fun hashint_jenkin32 (x: uint):<> ulint = "mac#hashint_jenkin32" (* end of [hashint_jenkin32] *) (* ****** ****** *) // typedef key = uint typedef itm = ptr typedef keyitm = @(key, itm) assume symmap_vtype (itm:type) = HASHTBLptr1 (key, ptr) // val hash0 = $UN.cast{hash(key)} (null) val eqfn0 = $UN.cast{eqfn(key)} (null) // implement hash_key (x, _) = hashint_jenkin32 (x) implement equal_key_key (x1, x2, _) = (x1 = x2) // implement keyitem_nullify (ki) = () where { viewtypedef keyitm = (key, itm) extern prfun __assert (ki: &keyitm? >> keyitm): void prval () = __assert (ki) val () = ki.0 := 0u prval () = Opt_some (ki) } (* end of [keyitem_nullify] *) // implement keyitem_isnot_null (ki) = let prval () = __assert (ki) where { extern prfun __assert (x: &(Opt keyitm) >> keyitm):<> void } // end of [prval] val res = (ki.0 > 0u) val [b:bool] res = bool1_of_bool (res) prval () = __assert (ki) where { extern prfun __assert (x: &keyitm >> opt (keyitm, b)):<> void } // end of [prval] in res end // end of [keyitem_isnot_null] // (* ****** ****** *) #define HASHTBLSZ 97 implement symmap_make_nil () = hashtbl_make_hint (hash0, eqfn0, HASHTBLSZ) // end of [symmap_make_nil] implement symmap_free (map) = hashtbl_free (map) (* ****** ****** *) implement symmap_search {a} (map, sym) = let val k = $SYM.symbol_get_stamp (sym) var res: itm? val found = hashtbl_search (map, k, res) in if found then let prval () = opt_unsome {itm} (res) val res = $UN.cast{a} (res) in Some_vt (res) end else let prval () = opt_unnone {itm} (res) in None_vt () end (* end of [if] *) end // end of [symmap_search] implement symmap_insert {a} (map, sym, i) = { val k = $SYM.symbol_get_stamp (sym) val i: itm = $UN.cast{itm} (i) var res: itm val _exist = hashtbl_insert (map, k, i, res) prval () = opt_clear (res) } // end of [symmap_insert] (* ****** ****** *) implement symmap_joinwth {a} (map1, map2) = let // fun loop {n:nat} .. ( map: !symmap (a), kis: list_vt (keyitm, n) ) :<> void = let in // case+ kis of | list_vt_cons (!p_ki, kis1) => let var res: itm val _exist = hashtbl_insert (map, p_ki->0, p_ki->1, res) prval () = opt_clear (res) val () = free@ {keyitm} {0} (kis) in loop (map, kis1) end // end of [list_vt_cons] | ~list_vt_nil () => () // end // end of [loop] // val kis = hashtbl_listize (map2) // in loop (map1, kis) end // end of [symmap_joinwth] (* ****** ****** *) implement fprint_symmap{a} (out, map, f) = let var !p_clo = @lam ( pf: !unit_v | k: key, i: &itm ) : void = $effmask_all (fprint (out, k); fprint (out, " -> "); f (out, $UN.cast{a}(i)); fprint_newline (out)) prval pfu = unit_v () val () = hashtbl_foreach_vclo (pfu | map, !p_clo) prval unit_v () = pfu in // nothing end // end of [fprint_symmap] (* ****** ****** *) (* end of [pats_symmap_htlinprb.hats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp.dats0000644000175000017500000004754413431250607020474 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: October, 2012 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) // implement hifundec_get_funlabopt (hfd) = $UN.cast{funlabopt}(hfd.hifundec_funlab) implement hifundec_set_funlabopt (hfd, opt) = $UN.ptrset (hifundec_getref_funlabopt (hfd), opt) // (* ****** ****** *) // implement hiimpdec_get_funlabopt (imp) = $UN.cast{funlabopt}(imp.hiimpdec_funlab) implement hiimpdec_set_funlabopt (imp, opt) = $UN.ptrset (hiimpdec_getref_funlabopt (imp), opt) // (* ****** ****** *) // implement hiimpdec_get_instrlstopt (imp) = $UN.cast{instrlstopt}(imp.hiimpdec_instrlst) implement hiimpdec_set_instrlstopt (imp, opt) = $UN.ptrset (hiimpdec_getref_instrlstopt (imp), opt) // (* ****** ****** *) extern fun primdec_make_node ( loc: loc_t, node: primdec_node ) : primdec // end-of-function implement primdec_make_node (loc, node) = '{ primdec_loc= loc, primdec_node= node } // end of [primdec_make_node] (* ****** ****** *) implement primdec_none (loc) = primdec_make_node (loc, PMDnone ()) // end of [primdec_none] (* ****** ****** *) implement primdec_list (loc, pmds) = primdec_make_node (loc, PMDlist (pmds)) // end of [primdec_list] (* ****** ****** *) implement primdec_saspdec (loc, d2c) = primdec_make_node (loc, PMDsaspdec (d2c)) // end of [primdec_saspdec] (* ****** ****** *) implement primdec_extvar (loc, name, inss) = primdec_make_node (loc, PMDextvar (name, inss)) // end of [primdec_extvar] (* ****** ****** *) implement primdec_datdecs (loc, s2cs) = primdec_make_node (loc, PMDdatdecs (s2cs)) implement primdec_exndecs (loc, d2cs) = primdec_make_node (loc, PMDexndecs (d2cs)) (* ****** ****** *) implement primdec_impdec (loc, impdec) = primdec_make_node (loc, PMDimpdec (impdec)) // end of [primdec_impdec] (* ****** ****** *) implement primdec_fundecs (loc, knd, decarg, hfds) = primdec_make_node (loc, PMDfundecs (knd, decarg, hfds)) // end of [primdec_fundecs] (* ****** ****** *) implement primdec_valdecs (loc, knd, hvds, inss) = primdec_make_node (loc, PMDvaldecs (knd, hvds, inss)) implement primdec_valdecs_rec (loc, knd, hvds, inss) = primdec_make_node (loc, PMDvaldecs_rec (knd, hvds, inss)) (* ****** ****** *) // implement primdec_vardecs (loc, hvds, inss) = primdec_make_node (loc, PMDvardecs (hvds, inss)) // (* ****** ****** *) // implement primdec_include (loc, knd, pmds) = primdec_make_node (loc, PMDinclude (knd, pmds)) // (* ****** ****** *) // implement primdec_staload (loc, hid) = primdec_make_node (loc, PMDstaload (hid)) // implement primdec_staloadloc ( loc, pfil, nspace, hids ) = primdec_make_node (loc, PMDstaloadloc (pfil, nspace, hids)) // implement primdec_dynload (loc, hid) = primdec_make_node (loc, PMDdynload (hid)) // (* ****** ****** *) implement primdec_local (loc, _head, _body) = primdec_make_node (loc, PMDlocal (_head, _body)) // end of [primdec_local] (* ****** ****** *) extern fun primval_make_node (loc: loc_t, hse: hisexp, node: primval_node): primval implement primval_make_node (loc, hse, node) = '{ primval_loc= loc, primval_type= hse, primval_node= node } // end of [primval_make_node] (* ****** ****** *) implement primval_tmp (loc, hse, tmp) = primval_make_node (loc, hse, PMVtmp (tmp)) // end of [primval_tmp] implement primval_tmpref (loc, hse, tmp) = primval_make_node (loc, hse, PMVtmpref (tmp)) // end of [primval_tmpref] (* ****** ****** *) // implement primval_arg (loc, hse, narg) = primval_make_node (loc, hse, PMVarg (narg)) implement primval_argref (loc, hse, narg) = primval_make_node (loc, hse, PMVargref (narg)) implement primval_argtmpref (loc, hse, narg) = primval_make_node (loc, hse, PMVargtmpref (narg)) // implement primval_argenv (loc, hse, nenv) = primval_make_node (loc, hse, PMVargenv (nenv)) // (* ****** ****** *) implement primval_cst (loc, hse, d2c) = primval_make_node (loc, hse, PMVcst (d2c)) // end of [primval_cst] implement primval_env (loc, hse, d2v) = primval_make_node (loc, hse, PMVenv (d2v)) // end of [primval_env] (* ****** ****** *) implement primval_int (loc, hse, i) = primval_make_node (loc, hse, PMVint (i)) // end of [primval_int] implement primval_intrep (loc, hse, rep) = primval_make_node (loc, hse, PMVintrep (rep)) // end of [primval_intrep] (* ****** ****** *) implement primval_bool (loc, hse, b) = primval_make_node (loc, hse, PMVbool (b)) // end of [primval_bool] implement primval_char (loc, hse, c) = primval_make_node (loc, hse, PMVchar (c)) // end of [primval_char] implement primval_float (loc, hse, f) = primval_make_node (loc, hse, PMVfloat (f)) // end of [primval_float] implement primval_string (loc, hse, str) = primval_make_node (loc, hse, PMVstring (str)) // end of [primval_string] (* ****** ****** *) implement primval_i0nt (loc, hse, x) = primval_make_node (loc, hse, PMVi0nt (x)) // end of [primval_i0nt] implement primval_f0loat (loc, hse, x) = primval_make_node (loc, hse, PMVf0loat (x)) // end of [primval_f0loat] (* ****** ****** *) implement primval_cstsp (loc, hse, cstsp) = primval_make_node (loc, hse, PMVcstsp (cstsp)) // end of [primval_cstsp] (* ****** ****** *) implement primval_tyrep (loc, hse0, hse) = primval_make_node (loc, hse0, PMVtyrep (hse)) // end of [primval_tyrep] implement primval_sizeof (loc, hse0, hse) = primval_make_node (loc, hse0, PMVsizeof (hse)) // end of [primval_sizeof] (* ****** ****** *) implement primval_top (loc, hse) = primval_make_node (loc, hse, PMVtop ()) // end of [primval_top] implement primval_empty (loc, hse) = primval_make_node (loc, hse, PMVempty ()) // end of [primval_empty] (* ****** ****** *) implement primval_extval (loc, hse, name) = primval_make_node (loc, hse, PMVextval (name)) // end of [primval_extval] (* ****** ****** *) implement primval_castfn (loc, hse, d2c, arg) = primval_make_node (loc, hse, PMVcastfn (d2c, arg)) // end of [primval_castfn] (* ****** ****** *) implement primval_selcon (loc, hse, pmv, hse_sum, lab) = primval_make_node (loc, hse, PMVselcon (pmv, hse_sum, lab)) // end of [primval_selcon] (* ****** ****** *) implement primval_select (loc, hse, pmv, hse_rt, pml) = primval_make_node (loc, hse, PMVselect (pmv, hse_rt, pml)) // end of [primval_select] implement primval_select2 (loc, hse, pmv, hse_rt, pmls) = primval_make_node (loc, hse, PMVselect2 (pmv, hse_rt, pmls)) // end of [primval_select2] (* ****** ****** *) implement primval_selptr (loc, hse, pmv, hse_rt, pmls) = primval_make_node(loc, hse, PMVselptr (pmv, hse_rt, pmls)) // end of [primval_selptr] (* ****** ****** *) implement primval_ptrof (loc, hse, pmv) = primval_make_node(loc, hse, PMVptrof(pmv)) // end of [primval_ptrof] implement primval_ptrofsel ( loc, hse, pmv, hse_rt, pmls ) = ( primval_make_node(loc, hse, PMVptrofsel(pmv, hse_rt, pmls)) ) // end of [primval_ptrofsel] (* ****** ****** *) implement primval_vararg (loc, hse, pmvs) = primval_make_node(loc, hse, PMVvararg(pmvs)) // end of [primval_refarg] (* ****** ****** *) implement primval_refarg (loc, hse, knd, freeknd, pmv) = primval_make_node(loc, hse, PMVrefarg(knd, freeknd, pmv)) // end of [primval_refarg] (* ****** ****** *) implement primval_funlab (loc, hse, fl) = primval_make_node(loc, hse, PMVfunlab(fl)) // end of [primval_funlab] implement primval_cfunlab (loc, hse, knd, fl) = primval_make_node(loc, hse, PMVcfunlab(knd, fl)) // end of [primval_cfunlab] (* ****** ****** *) implement primval_d2vfunlab (loc, hse, d2v, fl) = primval_make_node(loc, hse, PMVd2vfunlab(d2v, fl)) // end of [primval_d2vfunlab] (* ****** ****** *) implement primval_lamfix (knd, pmv_funval) = let // val loc = pmv_funval.primval_loc val hse = pmv_funval.primval_type // in primval_make_node(loc, hse, PMVlamfix(knd, pmv_funval)) end // end of [primval_lamfix] (* ****** ****** *) implement primval_tmpltcst (loc, hse, d2c, t2mas) = primval_make_node(loc, hse, PMVtmpltcst(d2c, t2mas)) // end of [primval_tmpltcst] implement primval_tmpltvar (loc, hse, d2v, t2mas) = primval_make_node(loc, hse, PMVtmpltvar(d2v, t2mas)) // end of [primval_tmpltvar] (* ****** ****** *) // implement primval_tmpltcstmat (loc, hse, d2c, t2mas, mat) = ( primval_make_node(loc, hse, PMVtmpltcstmat(d2c, t2mas, mat)) ) // end of [primval_tmpltcstmat] // implement primval_tmpltvarmat (loc, hse, d2v, t2mas, mat) = ( primval_make_node(loc, hse, PMVtmpltvarmat(d2v, t2mas, mat)) ) // end of [primval_tmpltvarmat] // (* ****** ****** *) // (* implement primval_tempenver (loc, hse, d2vs) = primval_make_node(loc, hse, PMVtempenver(d2vs)) *) // (* ****** ****** *) implement primval_error (loc, hse) = primval_make_node (loc, hse, PMVerror((*error*))) // end of [primval_error] (* ****** ****** *) implement primval_make_sizeof (loc, s2e) = let // val hse = hisexp_size_t0ype() in primval_sizeof(loc, hse, s2e) // end // end of [primval_make_sizeof] (* ****** ****** *) implement primval_make_tmp (loc, tmp) = let val hse = tmpvar_get_type (tmp) in primval_tmp (loc, hse, tmp) end // end of [primval_make_tmp] implement primval_make_tmpref (loc, tmp) = let val hse = tmpvar_get_type (tmp) in primval_tmpref (loc, hse, tmp) end // end of [primval_make_tmpref] (* ****** ****** *) implement primval_make_ptrofsel ( loc, pmv, hse_rt, pmls ) = let val hse_ptr = hisexp_typtr val hse_undef = hisexp_undefined // HX: a place holder val pmv_sel = primval_selptr (loc, hse_undef, pmv, hse_rt, pmls) in primval_ptrof (loc, hse_ptr, pmv_sel) end // end of [primval_make_ptrofsel] (* ****** ****** *) implement ibranch_make (loc, inss) = '{ ibranch_loc= loc, ibranch_inslst= inss } // end of [ibranch_make] (* ****** ****** *) implement primlab_is_lab (pml) = case+ pml.primlab_node of | PMLlab _ => true | PMLind _ => false // end of [primlab_is_lab] implement primlab_is_ind (pml) = case+ pml.primlab_node of | PMLlab _ => false | PMLind _ => true // end of [primlab_is_ind] (* ****** ****** *) implement primlab_lab (loc, lab) = '{ primlab_loc= loc, primlab_node= PMLlab (lab) } // end of [primlab_lab] implement primlab_ind (loc, ind) = '{ primlab_loc= loc, primlab_node= PMLind (ind) } // end of [primlab_ind] (* ****** ****** *) extern fun instr_make_node ( loc: loc_t, node: instr_node ) : instr // end-of-function implement instr_make_node (loc, node) = '{ instr_loc= loc, instr_node= node } // end of [instr_make_node] (* ****** ****** *) implement instr_funlab (loc, fl) = instr_make_node (loc, INSfunlab (fl)) // end of [instr_funlab] (* ****** ****** *) implement instr_tmplab (loc, tl) = instr_make_node (loc, INStmplab (tl)) // end of [instr_tmplab] (* ****** ****** *) implement instr_comment (loc, str) = instr_make_node (loc, INScomment (str)) // end of [instr_comment] (* ****** ****** *) implement instr_move_val (loc, tmp, pmv) = instr_make_node (loc, INSmove_val (tmp, pmv)) // end of [instr_move_val] implement instr_pmove_val (loc, tmp, pmv) = instr_make_node (loc, INSpmove_val (tmp, pmv)) // end of [instr_pmove_val] (* ****** ****** *) implement instr_move_arg_val (loc, arg, pmv) = instr_make_node (loc, INSmove_arg_val (arg, pmv)) // end of [instr_move_arg_val] (* ****** ****** *) implement instr_fcall ( loc, tmpret, hde_fun, hse_fun, hdes_arg ) = instr_make_node (loc, INSfcall (tmpret, hde_fun, hse_fun, hdes_arg)) // end of [instr_fcall] implement instr_fcall2 ( loc, tmpret, flab, ntl ,hse_fun, hdes_arg ) = instr_make_node (loc, INSfcall2 (tmpret, flab, ntl, hse_fun, hdes_arg)) // end of [instr_fcall2] (* ****** ****** *) implement instr_extfcall (loc, tmpret, _fun, _arg) = instr_make_node(loc, INSextfcall (tmpret, _fun, _arg)) // end of [instr_extfcall] implement instr_extmcall (loc, tmpret, _obj, _mtd, _arg) = instr_make_node(loc, INSextmcall (tmpret, _obj, _mtd, _arg)) // end of [instr_extmcall] (* ****** ****** *) implement instr_cond (loc, _cond, _then, _else) = instr_make_node (loc, INScond (_cond, _then, _else)) // end of [instr_cond] (* ****** ****** *) implement instr_freecon (loc, pmv) = instr_make_node (loc, INSfreecon (pmv)) // end of [instr_freecon] (* ****** ****** *) implement instr_loop ( loc, tlab_init, tlab_fini, tlab_cont , inss_init, pmv_test, inss_test, inss_post, inss_body ) = let // val node = INSloop ( tlab_init, tlab_fini, tlab_cont , inss_init, pmv_test, inss_test, inss_post, inss_body ) // in instr_make_node (loc, node) end // end of [instr_loop] implement instr_loopexn ( loc, knd, tlab ) = instr_make_node (loc, INSloopexn (knd, tlab)) (* ****** ****** *) implement instr_caseof (loc, xs) = instr_make_node (loc, INScaseof (xs)) // end of [instr_caseof] (* ****** ****** *) implement instr_letpop (loc) = instr_make_node (loc, INSletpop ()) // end of [instr_letpop] implement instr_letpush (loc, pmds) = instr_make_node (loc, INSletpush (pmds)) // end of [instr_letpush] (* ****** ****** *) implement instr_move_con ( loc, tmpret, d2c, hse_sum, _arg ) = instr_make_node (loc, INSmove_con (tmpret, d2c, hse_sum, _arg)) // end of [instr_move_con] (* ****** ****** *) implement instr_move_ref (loc, tmpret, pmv) = instr_make_node (loc, INSmove_ref (tmpret, pmv)) // end of [instr_move_ref] (* ****** ****** *) implement instr_move_boxrec ( loc, tmpret, lpmvs, hse_rec ) = instr_make_node (loc, INSmove_boxrec (tmpret, lpmvs, hse_rec)) // end of [instr_move_boxrec] implement instr_move_fltrec ( loc, tmpret, lpmvs, hse_rec ) = instr_make_node (loc, INSmove_fltrec (tmpret, lpmvs, hse_rec)) // end of [instr_move_fltrec] implement instr_move_fltrec2 ( loc, tmpret, lpmvs, hse_rec ) = let in // case+ hse_rec.hisexp_node of | HSEtyrecsin (lhse) => let val-list_cons (lpmv, _) = lpmvs val+LABPRIMVAL (lab, pmv) = lpmv in instr_move_val (loc, tmpret, pmv) end // end of [HSEtyrecsin] | _ => instr_move_fltrec (loc, tmpret, lpmvs, hse_rec) // end // end of [instr_move_fltrec2] (* ****** ****** *) implement instr_patck (loc, pmv, ptck, ptcknt) = instr_make_node (loc, INSpatck (pmv, ptck, ptcknt)) // end of [instr_patck] (* ****** ****** *) implement instr_move_selcon ( loc, tmp, hse, pmv, hse_sum, lab ) = let val pmv_sel = primval_selcon (loc, hse, pmv, hse_sum, lab) in instr_move_val (loc, tmp, pmv_sel) end // end of [instr_selcon] implement instr_move_select ( loc, tmp, hse, pmv, hse_rt, pml ) = let val pmv_sel = primval_select (loc, hse, pmv, hse_rt, pml) in instr_move_val (loc, tmp, pmv_sel) end // end of [instr_select] implement instr_move_select2 ( loc, tmp, hse, pmv, hse_rt, pmls ) = let val pmv_sel = primval_select2 (loc, hse, pmv, hse_rt, pmls) in instr_move_val (loc, tmp, pmv_sel) end // end of [instr_select2] (* ****** ****** *) implement instr_move_ptrofsel ( loc, tmp, pmv, hse_rt, hils ) = let // val ins = INSmove_ptrofsel (tmp, pmv, hse_rt, hils) // in instr_make_node (loc, ins) end // end of [instr_move_ptrofsel] (* ****** ****** *) (* implement instr_load_ptrofs (loc, tmp, pmv, hse_rt, pmls) = instr_make_node (loc, INSload_ptrofs (tmp, pmv, hse_rt, pmls)) // end of [instr_load_ptrofs] *) (* ****** ****** *) implement instr_store_ptrofs ( loc, pmv_l, hse_rt, ofs, pmv_r ) = let // val ins = INSstore_ptrofs (pmv_l, hse_rt, ofs, pmv_r) // in instr_make_node (loc, ins) end // end of [instr_store_ptrofs] implement instr_xstore_ptrofs ( loc, tmp, pmv_l, hse_rt, ofs, pmv_r ) = let // val ins = INSxstore_ptrofs(tmp, pmv_l, hse_rt, ofs, pmv_r) // in instr_make_node (loc, ins) end // end of [instr_xstore_ptrofs] (* ****** ****** *) implement instr_raise (loc, tmp, pmv_exn) = instr_make_node (loc, INSraise (tmp, pmv_exn)) // end of [instr_raise] (* ****** ****** *) implement instr_move_delay (loc, tmp, lin, hse, thunk) = let in // instr_make_node (loc, INSmove_delay (tmp, lin, hse, thunk)) // instr_make_node // end // end of [instr_move_delay] implement instr_move_lazyeval (loc, tmp, lin, hse, pmv_lazy) = let in // instr_make_node (loc, INSmove_lazyeval (tmp, lin, hse, pmv_lazy)) // instr_make_node end // end of [instr_move_lazyeval] (* ****** ****** *) implement instr_trywith (loc, tmp, _try, _with) = let in instr_make_node (loc, INStrywith (tmp, _try, _with)) end // end of [instr_trywith] (* ****** ****** *) implement instr_move_list_nil (loc, tmp) = instr_make_node (loc, INSmove_list_nil (tmp)) // end of [instr_move_list_nil] implement instr_pmove_list_nil (loc, tmp) = instr_make_node (loc, INSpmove_list_nil (tmp)) // end of [instr_pmove_list_nil] implement instr_pmove_list_cons (loc, tmp, hse_elt) = instr_make_node (loc, INSpmove_list_cons (tmp, hse_elt)) // end of [instr_pmove_list_cons] (* ****** ****** *) implement instr_move_list_phead (loc, tmphd, tmptl, hse_elt) = instr_make_node (loc, INSmove_list_phead (tmphd, tmptl, hse_elt)) // end of [instr_move_list_phead] implement instr_move_list_ptail (loc, tl_new, tl_old, hse_elt) = instr_make_node (loc, INSmove_list_ptail (tl_new, tl_old, hse_elt)) // end of [instr_move_list_ptail] (* ****** ****** *) implement instr_move_arrpsz_ptr (loc, tmp, psz) = instr_make_node (loc, INSmove_arrpsz_ptr (tmp, psz)) // end of [instr_move_arrpsz_ptr] (* ****** ****** *) implement instr_store_arrpsz_asz (loc, tmp, asz) = instr_make_node (loc, INSstore_arrpsz_asz (tmp, asz)) // end of [instr_store_arrpsz_asz] implement instr_store_arrpsz_ptr (loc, tmp, hse_elt, asz) = ( instr_make_node ( loc, INSstore_arrpsz_ptr(tmp, hse_elt, asz) ) ) // end of [instr_store_arrpsz_ptr] (* ****** ****** *) implement instr_update_ptrinc (loc, tmpelt, hse_elt) = instr_make_node (loc, INSupdate_ptrinc (tmpelt, hse_elt)) // end of [instr_update_ptrinc] implement instr_update_ptrdec (loc, tmpelt, hse_elt) = instr_make_node (loc, INSupdate_ptrdec (tmpelt, hse_elt)) // end of [instr_update_ptrdec] (* ****** ****** *) // implement instr_closure_initize (loc, tmpret, knd, flab) = instr_make_node (loc, INSclosure_initize(tmpret, knd, flab)) // (* ****** ****** *) implement instr_tmpdec (loc, tmp) = instr_make_node(loc, INStmpdec(tmp)) // end of [instr_tmpdec] (* ****** ****** *) implement instr_extvar (loc, xnm, pmv) = instr_make_node(loc, INSextvar(xnm, pmv)) // end of [instr_extvar] (* ****** ****** *) implement instr_dcstdef (loc, d2c, pmv) = instr_make_node(loc, INSdcstdef(d2c, pmv)) // end of [instr_dcstdef] (* ****** ****** *) implement instr_tempenver (loc, d2vs) = instr_make_node(loc, INStempenver( d2vs )) // end of [instr_dcstdef] (* ****** ****** *) (* end of [pats_ccomp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp1.sats0000644000175000017500000005454013431250607020771 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload INTINF = "./pats_intinf.sats" typedef intinf = $INTINF.intinf // staload FIL = "./pats_filename.sats" typedef filename = $FIL.filename staload LOC = "./pats_location.sats" typedef loc_t = $LOC.location typedef location = $LOC.location // (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol typedef symbolist = $SYM.symbolist typedef symbolopt = $SYM.symbolopt (* ****** ****** *) staload "./pats_basics.sats" (* staload EFF = "./pats_effect.sats" typedef effect = $EFF.effect typedef effset = $EFF.effset *) staload "./pats_effect.sats" (* staload SYN = "./pats_syntax.sats" typedef i0de = $SYN.i0de typedef i0delst = $SYN.i0delst typedef i0nt = $SYN.i0nt typedef c0har = $SYN.c0har typedef s0rtq = $SYN.s0rtq typedef s0taq = $SYN.s0taq typedef sqi0de = $SYN.sqi0de typedef l0ab = $SYN.l0ab typedef l0abeled(a:type) = $SYN.l0abeled (a) typedef scstextdef = $SYN.scstextdef typedef dcstextdef = $SYN.dcstextdef *) staload "./pats_syntax.sats" (* ****** ****** *) datatype v1al = | V1ALint of int | V1ALchar of char | V1ALstring of string | V1ALfloat of double | V1ALerr of () // HX: indicating of an error // end of [v1al] typedef v1alist = List (v1al) val v1al_true : v1al and v1al_false : v1al fun print_v1al (x: v1al): void fun prerr_v1al (x: v1al): void fun fprint_v1al : fprint_type (v1al) (* ****** ****** *) datatype e1xp_node = // | E1XPide of symbol // | E1XPint of (int) | E1XPintrep of string(*rep*) // | E1XPchar of char | E1XPfloat of string(*rep*) | E1XPstring of string // | E1XPv1al of v1al // | E1XPnone of () // defintion is not given | E1XPundef of () // for marking un-definition // | E1XPapp of ( e1xp(*fun*), location(*arg*), e1xplst ) (* end of [E1XPapp] *) | E1XPfun of (symbolist(*arg*), e1xp(*body*)) // | E1XPif of (e1xp, e1xp, e1xp) // | E1XPeval of e1xp | E1XPlist of e1xplst // | E1XPerr of () // HX: placeholder for error indication // // end of [e1xp_node] where e1xp : type = '{ e1xp_loc= location , e1xp_node= e1xp_node } // end of [e1xp] and e1xplst: type = List (e1xp) (* ****** ****** *) // fun print_e1xp (_: e1xp): void fun prerr_e1xp (_: e1xp): void fun fprint_e1xp : fprint_type (e1xp) // overload print with print_e1xp overload prerr with prerr_e1xp overload fprint with fprint_e1xp // fun print_e1xplst (_: e1xplst): void fun prerr_e1xplst (_: e1xplst): void fun fprint_e1xplst : fprint_type (e1xplst) // overload print with print_e1xplst overload prerr with prerr_e1xplst overload fprint with fprint_e1xplst // (* ****** ****** *) // fun e1xp_make (loc: location, node: e1xp_node): e1xp // end of [e1xp_make] // (* ****** ****** *) // fun e1xp_ide (loc: location, sym: symbol): e1xp // fun e1xp_int (loc: location, i: int): e1xp fun e1xp_intrep (loc: location, rep: string): e1xp // fun e1xp_char (loc: location, c: char): e1xp fun e1xp_float (loc: location, rep: string): e1xp fun e1xp_string (loc: location, str: string): e1xp // fun e1xp_i0nt (loc: location, x: i0nt): e1xp fun e1xp_c0har (loc: location, x: c0har): e1xp fun e1xp_s0tring (loc: location, x: s0tring): e1xp fun e1xp_f0loat (loc: location, x: f0loat): e1xp // fun e1xp_v1al (loc: location, v: v1al): e1xp // fun e1xp_none (loc: location): e1xp fun e1xp_undef (loc: location): e1xp // fun e1xp_app ( loc: location , _fun: e1xp, loc_arg: location, _arg: e1xplst ) : e1xp // end of [e1xp_app] // fun e1xp_fun (loc: location, arg: symbolist, body: e1xp): e1xp // end of [e1xp_fun] // fun e1xp_if ( loc: location, _cond: e1xp, _then: e1xp, _else: e1xp ) : e1xp // end of [e1xp_if] // fun e1xp_eval (loc: location, e: e1xp): e1xp fun e1xp_list (loc: location, es: e1xplst): e1xp // fun e1xp_err (loc: location): e1xp // fun e1xp_true (loc: location): e1xp and e1xp_false (loc: location): e1xp // (* ****** ****** *) typedef effvar = i0de typedef effvarlst = List effvar datatype effcst = | EFFCSTall | EFFCSTnil | EFFCSTset of (effset, effvarlst) typedef effcstopt = Option (effcst) val effcst_nil : effcst val effcst_all : effcst val effcst_ntm : effcst val effcst_exn : effcst val effcst_ref : effcst val effcst_wrt : effcst fun effcst_contain (efc: effcst, eff: effect): bool fun effcst_contain_ntm (efc: effcst): bool fun fprint_effcst : fprint_type (effcst) (* ****** ****** *) datatype s1rt_node = | S1RTapp of (s1rt, s1rtlst) | S1RTlist of s1rtlst | S1RTqid of (s0rtq, symbol) | S1RTtype of int(*impkind*) | S1RTerr of () // end of [s1rt_node] where s1rt: type = '{ s1rt_loc= location, s1rt_node= s1rt_node } and s1rtlst: type = List s1rt and s1rtopt: type = Option s1rt and s1rtlstlst: type = List s1rtlst and s1rtlstopt: type = Option s1rtlst typedef s1rtpol = '{ s1rtpol_loc= location, s1rtpol_srt= s1rt, s1rtpol_pol= int } // end of [s1rtpol] (* ****** ****** *) fun print_s1rt (_: s1rt): void overload print with print_s1rt fun prerr_s1rt (_: s1rt): void overload prerr with prerr_s1rt fun fprint_s1rt : fprint_type (s1rt) fun print_s1rtlst (_: s1rtlst): void overload print with print_s1rtlst fun prerr_s1rtlst (_: s1rtlst): void overload prerr with prerr_s1rtlst fun fprint_s1rtlst : fprint_type (s1rtlst) fun fprint_s1rtopt : fprint_type (s1rtopt) fun fprint_s1rtlstlst : fprint_type (s1rtlstlst) (* ****** ****** *) (* ** HX: functions for constructing sorts *) fun s1rt_arrow (loc: location): s1rt // // HX: '->' is a special sort constructor // fun s1rt_is_arrow (s1t: s1rt): bool fun s1rt_app ( loc: location, _fun: s1rt, _arg: s1rtlst ) : s1rt // end of [s1rt_app] fun s1rt_fun ( loc: location, arg: s1rt, res: s1rt ) : s1rt // end of [s1rt_fun] fun s1rt_ide (loc: location, sym: symbol): s1rt fun s1rt_list (loc: location, s1ts: s1rtlst): s1rt fun s1rt_qid (loc: location, q: s0rtq, id: symbol): s1rt (* fun s1rt_tup (loc: location, s1ts: s1rtlst): s1rt *) fun s1rt_type (loc: location, knd: int): s1rt fun s1rt_err (loc: location): s1rt // HX: indicating an error (* ****** ****** *) fun s1rtpol_make (loc: location, s1t: s1rt, pol: int): s1rtpol (* ****** ****** *) typedef d1atsrtcon = '{ d1atsrtcon_loc= location , d1atsrtcon_sym= symbol , d1atsrtcon_arg= s1rtlst } // end of [d1atsrtcon] typedef d1atsrtconlst = List d1atsrtcon fun d1atsrtcon_make ( loc: location, name: symbol, arg: s1rtlst ) : d1atsrtcon // end of [d1atsrtcon_make] fun fprint_d1atsrtcon : fprint_type (d1atsrtcon) (* ****** ****** *) typedef d1atsrtdec = '{ d1atsrtdec_loc= location , d1atsrtdec_sym= symbol , d1atsrtdec_con= d1atsrtconlst } // end of [d1atsrtdec] typedef d1atsrtdeclst = List d1atsrtdec fun d1atsrtdec_make ( loc: location, name: symbol, conlst: d1atsrtconlst ) : d1atsrtdec // end of [d1atsrtdec] fun fprint_d1atsrtdec : fprint_type (d1atsrtdec) (* ****** ****** *) typedef s1arg = '{ s1arg_loc= location, s1arg_sym= symbol, s1arg_srt= s1rtopt } typedef s1arglst = List s1arg typedef s1arglstlst = List s1arglst fun s1arg_make ( loc: location, sym: symbol, srtopt: s1rtopt ) : s1arg // end of [s1arg_make] fun fprint_s1arg : fprint_type (s1arg) fun fprint_s1arglst : fprint_type (s1arglst) (* ****** ****** *) typedef s1marg = '{ s1marg_loc= location, s1marg_arg= s1arglst } typedef s1marglst = List (s1marg) fun s1marg_make (loc: location, s1as: s1arglst): s1marg fun fprint_s1marg : fprint_type (s1marg) (* ****** ****** *) typedef s1var = '{ s1var_loc= location, s1var_sym= symbol, s1var_srt= s1rt } typedef s1varlst = List s1var fun s1var_make (loc: location, sym: symbol, srt: s1rt): s1var fun fprint_s1var : fprint_type (s1var) (* ****** ****** *) typedef a1srt = '{ a1srt_loc= location , a1srt_sym= symbolopt , a1srt_srt= s1rt } // end of [a0srt] typedef a1srtlst = List (a1srt) fun a1srt_make ( loc: location, sym: symbolopt, srt: s1rt ) : a1srt // end of [a1srt_make] fun fprint_a1srt : fprint_type (a1srt) fun fprint_a1srtlst : fprint_type (a1srtlst) typedef a1msrt = '{ a1msrt_loc= location, a1msrt_arg= a1srtlst } // end of [a0msrt] typedef a1msrtlst = List (a1msrt) fun a1msrt_make (loc: location, arg: a1srtlst): a1msrt fun fprint_a1msrt : fprint_type (a1msrt) fun fprint_a1msrtlst : fprint_type (a1msrtlst) (* ****** ****** *) // datatype sp1at_node = | SP1Tcstr of (s0taq, symbol, s1arglst) // where sp1at = '{ sp1at_loc= location, sp1at_node= sp1at_node } (* end of [sp1at] *) // fun sp1at_arg (loc: location, arg: s1arg): sp1at fun sp1at_cstr (loc: location, q: s0taq, id: symbol, args: s1arglst): sp1at // end of [sp1at_cstr] // (* ****** ****** *) // // HX-2015-08: // for placeholding // abstype S1Ed2ctype_type = ptr typedef S1Ed2ctype = S1Ed2ctype_type // (* ****** ****** *) datatype s1exp_node = // | S1Eide of (symbol) // identifier | S1Esqid of (s0taq, symbol) // qualified ID // | S1Eint of int | S1Eintrep of string(*rep*) // | S1Echar of char // character constant // | S1Efloat of string // floating-points | S1Estring of string // string constants // | S1Eextype of (string(*name*), s1explstlst) // extern type | S1Eextkind of (string(*name*), s1explstlst) // extern tkind // | S1Eapp of (s1exp, loc_t(*arg*), s1explst) // application | S1Elam of (s1marg, s1rtopt, s1exp(*body*)) // lam-abstraction | S1Eimp of (funclo, int (*lin*), int (*prf*), effcstopt) // | S1Etop of (int(*knd*), s1exp) // 0/1: topization/typization // | S1Elist of (int(*npf*), s1explst) // | S1Einvar of (int(*ref/val:1/0*), s1exp) // invariant | S1Etrans of (s1exp(*bef*), s1exp(*aft*)) // transition // | S1Etyarr of (s1exp (*element*), s1explst (*dimension*)) | S1Etytup of (int(*knd*), int(*npf*), s1explst) // HX: 0/1: flat/boxed | S1Etyrec of (int(*knd*), int(*npf*), labs1explst) // HX: 0/1: flat/boxed | S1Etyrec_ext of (string(*name*), int(*npf*), labs1explst) // external record // end of [S1Etyrec_ext] // | S1Euni of (s1qualst, s1exp) // universal quantifier | S1Eexi of (int(*funres*), s1qualst, s1exp) // existential quantifier // end of [S1Eexi] // | S1Eann of (s1exp, s1rt(*ann*)) // sort-ascribed staexps // | S1Ed2ctype of (S1Ed2ctype(*d1exp*)) // $d2ctype(d2c/tmpcst) // | S1Eerr of ((*error*)) // HX: this one is for indication of errors // end of [s1exp_node] and s1rtext_node = | S1TEsrt of s1rt | S1TEsub of (symbol, s1rtext, s1explst) (* | S1TElam of (s1arglst, s1rtext) | S1TEapp of (s1rtext, s1explst) *) // end of [s1rtext_node] and s1qua_node = | S1Qprop of s1exp | S1Qvars of (i0delst, s1rtext) // end of [s1qua_node] and wths1explst = | WTHS1EXPLSTnil of () | WTHS1EXPLSTcons_some of (int(*knd*), int(*refval*), s1exp, wths1explst) | WTHS1EXPLSTcons_none of wths1explst // end of [wths1explst] where s1exp = '{ s1exp_loc= location, s1exp_node= s1exp_node } and s1explst = List (s1exp) and s1explst_vt = List_vt (s1exp) and s1expopt = Option (s1exp) and s1explstlst = List (s1explst) and s1explstopt = Option (s1explst) and labs1exp = sl0abeled (s1exp) and labs1explst = List labs1exp and s1rtext = '{ s1rtext_loc= location, s1rtext_node= s1rtext_node } and s1qua = '{ s1qua_loc= location, s1qua_node= s1qua_node } and s1qualst = List (s1qua) and s1qualstlst = List (s1qualst) (* ****** ****** *) fun s1exp_int (loc: location, i: int): s1exp fun s1exp_intrep (loc: location, rep: string): s1exp fun s1exp_i0nt (loc: location, x: i0nt): s1exp fun s1exp_char (loc: location, c: char): s1exp fun s1exp_c0har (loc: location, tok: c0har): s1exp fun s1exp_float (loc: location, rep: string): s1exp fun s1exp_f0loat (loc: location, tok: f0loat): s1exp fun s1exp_string (loc: location, str: string): s1exp fun s1exp_s0tring (loc: location, tok: s0tring): s1exp (* ****** ****** *) fun s1exp_extype ( loc: location, name: string, arg: s1explstlst ) : s1exp // end of [s1exp_extype] fun s1exp_extkind ( loc: location, name: string, arg: s1explstlst ) : s1exp // end of [s1exp_extkind] (* ****** ****** *) fun s1exp_ide (loc: location, id: symbol): s1exp fun s1exp_sqid (loc: location, sq: s0taq, id: symbol): s1exp fun s1exp_app ( loc: location, _fun: s1exp, loc_arg: location, _arg: s1explst ) : s1exp // end of [s1exp_app] fun s1exp_lam ( loc: location, arg: s1marg, res: s1rtopt, body: s1exp ) : s1exp // end of [s1exp_lam] fun s1exp_imp ( loc: location, fc: funclo, lin: int, prf: int, efc: effcstopt ) : s1exp // end of [s1exp_imp] fun s1exp_list (loc: location, xs: s1explst): s1exp fun s1exp_list2 (loc: location, xs1: s1explst_vt, xs2: s1explst_vt): s1exp fun s1exp_npf_list (loc: location, npf: int, xs: s1explst): s1exp // end of [s1exp_npf_list] fun s1exp_top (loc: location, knd: int, s1e: s1exp): s1exp fun s1exp_invar (loc: location, knd: int, s1e: s1exp): s1exp fun s1exp_trans (loc: location, s1e1: s1exp, s1e2: s1exp): s1exp fun s1exp_tyarr ( loc: location, elt: s1exp, dim: s1explst ) : s1exp // end of [s1exp_tyarr] fun s1exp_tytup ( loc: location, knd: int, npf: int, s1es: s1explst ) : s1exp // end of [s1exp_tytup] fun s1exp_tyrec ( loc: location, knd: int, npf: int, ls1es: labs1explst ) : s1exp // end of [s1exp_tyrec] fun s1exp_tyrec_ext ( loc: location, name: string, npf: int, ls1es: labs1explst ) : s1exp // end of [s1exp_tyrec_ext] fun s1exp_uni (loc: location, qua: s1qualst, body: s1exp): s1exp fun s1exp_exi (loc: location, knd: int, qua: s1qualst, body: s1exp): s1exp fun s1exp_ann (loc: location, s1e: s1exp, s1t: s1rt): s1exp fun s1exp_d2ctype (loc: location, d2ctp: S1Ed2ctype): s1exp fun s1exp_err (loc: location): s1exp // HX: indication of error (* ****** ****** *) fun print_s1exp (x: s1exp): void overload print with print_s1exp fun prerr_s1exp (x: s1exp): void overload prerr with prerr_s1exp fun fprint_s1exp : fprint_type (s1exp) fun fprint_s1explst : fprint_type (s1explst) fun fprint_s1expopt : fprint_type (s1expopt) (* ****** ****** *) fun labs1exp_make (l: l0ab, name: s0tringopt, s1e: s1exp): labs1exp // end of [labs1exp_make] fun fprint_labs1exp : fprint_type (labs1exp) fun fprint_labs1explst : fprint_type (labs1explst) (* ****** ****** *) fun s1rtext_srt (loc: location, s1t: s1rt): s1rtext fun s1rtext_sub ( loc: location, sym: symbol, s1te: s1rtext, s1ps: s1explst ) : s1rtext // end of [s1rtext_sub] fun fprint_s1rtext : fprint_type (s1rtext) (* ****** ****** *) fun s1qua_prop (loc: location, s1p: s1exp): s1qua fun s1qua_vars (loc: location, ids: i0delst, s1te: s1rtext): s1qua // end of [s1qua_vars] fun fprint_s1qua : fprint_type (s1qua) fun fprint_s1qualst : fprint_type (s1qualst) (* ****** ****** *) // fun s1exp_make_v1al (loc: location, v: v1al): s1exp fun s1exp_make_e1xp (loc: location, e: e1xp): s1exp // fun e1xp_make_s1exp (loc: location, s1e: s1exp): e1xp // (* ****** ****** *) fun wths1explst_is_none (wths1es: wths1explst): bool fun wths1explst_reverse (wths1es: wths1explst): wths1explst (* ****** ****** *) datatype s1vararg = | S1VARARGone of (location) // {..} | S1VARARGall of (location) // {...} | S1VARARGseq of (location, s1arglst) // end of [s1vararg] typedef s1vararglst = List (s1vararg) fun print_s1vararg (x: s1vararg): void fun prerr_s1vararg (x: s1vararg): void fun fprint_s1vararg : fprint_type (s1vararg) (* ****** ****** *) datatype s1exparg_node = | S1EXPARGone of () // {..} | S1EXPARGall of () // {...} | S1EXPARGseq of (s1explst) // end of [s1exparg_node] typedef s1exparg = '{ s1exparg_loc= location, s1exparg_node= s1exparg_node } typedef s1exparglst = List s1exparg typedef s1expargopt = Option s1exparg fun s1exparg_one (loc: location): s1exparg fun s1exparg_all (loc: location): s1exparg fun s1exparg_seq (loc: location, xs: s1explst): s1exparg fun fprint_s1exparg : fprint_type (s1exparg) fun fprint_s1exparglst : fprint_type (s1exparglst) overload fprint with fprint_s1exparg overload fprint with fprint_s1exparglst (* ****** ****** *) datatype m1acarg_node = | M1ACARGdyn of i0delst | M1ACARGsta of s1arglst // end of [m1acarg_node] typedef m1acarg = '{ m1acarg_loc= location, m1acarg_node= m1acarg_node } // end of [m1acarg] typedef m1acarglst = List (m1acarg) fun m1acarg_make_dyn (loc: location, darg: i0delst): m1acarg fun m1acarg_make_sta (loc: location, sarg: s1arglst): m1acarg (* ****** ****** *) datatype witht1ype = | WITHT1YPEsome of (int(*knd*), s1exp) | WITHT1YPEnone of () // end of [witht1ype] (* ****** ****** *) typedef s1rtdef = '{ s1rtdef_loc= location , s1rtdef_sym= symbol , s1rtdef_def= s1rtext } // end of [s1rtdef] typedef s1rtdeflst = List s1rtdef fun s1rtdef_make (loc: location, sym: symbol, s0te: s1rtext): s1rtdef fun fprint_s1rtdef : fprint_type (s1rtdef) (* ****** ****** *) // typedef s1tacst = '{ // // static constant declaration // s1tacst_loc= loc_t // , s1tacst_sym= symbol , s1tacst_fil= filename // , s1tacst_arg= a1msrtlst, s1tacst_res= s1rt // , s1tacst_extdef= scstextdef } (* end of [s1tacst] *) // typedef s1tacstlst = List s1tacst // fun s1tacst_make ( loc: location , fil: filename, sym: symbol , arg: a1msrtlst, res: s1rt, extdef: scstextdef ) : s1tacst // end of [s1tacst_make] // fun fprint_s1tacst : fprint_type (s1tacst) // (* ****** ****** *) typedef s1tacon = '{ // // static constructor declaration // s1tacon_loc= loc_t , s1tacon_sym= symbol , s1tacon_fil= filename , s1tacon_arg= a1msrtlst, s1tacon_def= s1expopt } // end of [s1tacon] typedef s1taconlst = List s1tacon fun s1tacon_make ( loc: location , fil: filename, sym: symbol, arg: a1msrtlst, def: s1expopt ) : s1tacon // end of [s1tacon] fun fprint_s1tacon : fprint_type (s1tacon) (* ****** ****** *) (* // // HX-2012-05-23: removed // typedef s1tavar = '{ s1tavar_loc= location , s1tavar_sym= symbol, s1tavar_srt= s1rt } // end of [s1tavar] typedef s1tavarlst = List s1tavar fun s1tavar_make (loc: location, id: symbol, srt: s1rt): s1tavar fun fprint_s1tavar : fprint_type (s1tavar) *) (* ****** ****** *) typedef t1kindef = '{ t1kindef_loc= location , t1kindef_sym= symbol , t1kindef_loc_id= location , t1kindef_def= s1exp } // end of [t1kindef] fun t1kindef_make ( loc: location, id: symbol, loc_id: location, def: s1exp ) : t1kindef // end of [t1kindef_make] (* ****** ****** *) typedef s1expdef = '{ s1expdef_loc= location , s1expdef_sym= symbol , s1expdef_loc_id = location , s1expdef_arg= s1marglst , s1expdef_res= s1rtopt , s1expdef_def= s1exp } // end of [s1expdef] typedef s1expdeflst = List s1expdef fun s1expdef_make ( loc: location , id: symbol , loc_id: location , arg: s1marglst, res: s1rtopt, def: s1exp ) : s1expdef // end of [s1expdef_make] fun fprint_s1expdef : fprint_type (s1expdef) (* ****** ****** *) typedef s1aspdec = '{ s1aspdec_loc= location , s1aspdec_qid= sqi0de , s1aspdec_arg= s1marglst , s1aspdec_res= s1rtopt , s1aspdec_def= s1exp } // end of [s1aspdec] typedef s1aspdeclst = List s1aspdec fun s1aspdec_make ( loc: location , qid: sqi0de, arg: s1marglst, res: s1rtopt, def: s1exp ) : s1aspdec // end of [s1aspdec_make] fun fprint_s1aspdec : fprint_type (s1aspdec) (* ****** ****** *) typedef q1marg = '{ q1marg_loc= location, q1marg_arg= s1qualst } // end of [q1marg] typedef q1marglst = List (q1marg) fun q1marg_make (loc: location, xs: s1qualst): q1marg fun fprint_q1marg : fprint_type (q1marg) fun fprint_q1marglst : fprint_type (q1marglst) (* ****** ****** *) datatype i1mparg = | I1MPARG_sarglst of s1arglst | I1MPARG_svararglst of s1vararglst // end of [i1mparg] fun i1mparg_sarglst (arg: s1arglst): i1mparg fun i1mparg_svararglst (arg: s1vararglst): i1mparg fun fprint_i1mparg : fprint_type (i1mparg) (* ****** ****** *) // typedef t1mpmarg = '{ t1mpmarg_loc= location, t1mpmarg_arg= s1explst } (* end of [t1mpmarg] *) // typedef t1mpmarglst = List (t1mpmarg) // fun t1mpmarg_make (loc: location, arg: s1explst): t1mpmarg // (* ****** ****** *) typedef d1atcon = '{ d1atcon_loc= location , d1atcon_sym= symbol , d1atcon_qua= q1marglst , d1atcon_npf= int , d1atcon_arg= s1explst , d1atcon_ind= s1explstopt } // end of [d1atcon] typedef d1atconlst = List d1atcon fun d1atcon_make ( loc: location , id: symbol , qua: q1marglst , npf: int, arg: s1explst , ind: s1explstopt ) : d1atcon // end of [d1atcon_make] fun fprint_d1atcon : fprint_type (d1atcon) (* ****** ****** *) typedef d1atdec = '{ d1atdec_loc= location , d1atdec_fil= filename , d1atdec_sym= symbol , d1atdec_arg= a1msrtlst , d1atdec_con= d1atconlst } // end of [d1atdec] typedef d1atdeclst = List d1atdec fun d1atdec_make ( loc: location , fil: filename , id: symbol , arg: a1msrtlst , con: d1atconlst ) : d1atdec // end of [d1atdec_make] fun fprint_d1atdec : fprint_type (d1atdec) (* ****** ****** *) typedef e1xndec = '{ e1xndec_loc= location , e1xndec_fil= filename , e1xndec_sym= symbol , e1xndec_qua= q1marglst , e1xndec_npf= int , e1xndec_arg= s1explst } // end of [e1xndec] typedef e1xndeclst = List e1xndec fun e1xndec_make ( loc: location , fil: filename , id: symbol , qua: q1marglst , npf: int, arg: s1explst ) : e1xndec // end of [e1xndec_make] fun fprint_e1xndec : fprint_type (e1xndec) (* ****** ****** *) typedef d1cstdec = '{ d1cstdec_loc= location , d1cstdec_fil= filename , d1cstdec_sym= symbol , d1cstdec_type= s1exp , d1cstdec_extdef= dcstextdef } // end of [d1cstdec] typedef d1cstdeclst = List d1cstdec fun d1cstdec_make ( loc: location , fil: filename , sym: symbol, s1e: s1exp, extdef: dcstextdef ) : d1cstdec // end of [d1cstdec_make] fun fprint_d1cstdec : fprint_type (d1cstdec) (* ****** ****** *) (* end of [pats_staexp1.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_histaexp.sats0000644000175000017500000001344113431250607021224 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) abstype hisexp_funlab_type typedef funlab = hisexp_funlab_type fun print_funlab (x: funlab): void overload print with print_funlab fun prerr_funlab (x: funlab): void overload prerr with prerr_funlab fun fprint_funlab : fprint_type (funlab) (* ****** ****** *) datatype hitnam = HITNAM of ( int(*0/1:non/ptr*), int(*0/1:final*), string ) // end of [hitnam] fun print_hitnam (x: hitnam): void overload print with print_hitnam fun prerr_hitnam (x: hitnam): void overload prerr with prerr_hitnam fun fprint_hitnam : fprint_type (hitnam) (* ****** ****** *) datatype hisexp_node = // | HSEcst of (s2cst) // | HSEtybox of () // for pointers | HSEtyabs of (symbol) // for abstypes // | HSEapp of (hisexp, hisexplst) // | HSEextype of (string(*name*), hisexplstlst) // | HSEfun of (* function type *) (funclo, hisexplst(*arg*), hisexp(*res*)) // end of [HSEfun] // | HSErefarg of (int(*refval*), hisexp) // | HSEtyarr of (hisexp, s2explst) // for arrays | HSEtyrec of (tyreckind, labhisexplst) // for records | HSEtyrecsin of (labhisexp) // for singleton flat records | HSEtysum of (d2con, labhisexplst) // for tagged unions // | HSEtyvar of s2var // for type variables // | HSEtyclo of (funlab) // for flat closure-functions // | HSEvararg of (s2exp) // for variadic funarg // | HSEs2exp of (s2exp) | HSEs2zexp of (s2zexp) // end of [hisexp_node] and labhisexp = | HSLABELED of (label, Option(string), hisexp) // end of [labhisexp] where hisexp = '{ hisexp_name= hitnam, hisexp_node= hisexp_node } // end of [hisexp] and hisexplst = List (hisexp) and hisexpopt = Option (hisexp) and hisexplstlst = List (hisexplst) and labhisexplst = List (labhisexp) (* ****** ****** *) // fun print_hisexp (x: hisexp): void fun prerr_hisexp (x: hisexp): void // overload print with print_hisexp overload prerr with prerr_hisexp // fun fprint_hisexp : fprint_type (hisexp) fun fprint_hisexplst : fprint_type (hisexplst) // overload fprint with fprint_hisexp overload fprint with fprint_hisexplst // (* ****** ****** *) // val hisexp_tybox : hisexp // val hisexp_typtr : hisexp // val hisexp_funptr : hisexp val hisexp_cloptr : hisexp // val hisexp_clotyp : hisexp // val hisexp_arrptr : hisexp // val hisexp_datconptr : hisexp val hisexp_datcontyp : hisexp // val hisexp_exnconptr : hisexp // val hisexp_undefined : hisexp // (* ****** ****** *) fun hisexp_int_t0ype () : hisexp fun hisexp_bool_t0ype () : hisexp fun hisexp_size_t0ype () : hisexp (* ****** ****** *) fun hisexp_void_t0ype () : hisexp (* ****** ****** *) fun hisexp_get_boxknd (hse: hisexp): int fun hisexp_get_extknd (hse: hisexp): int (* ****** ****** *) fun hisexp_is_boxed (hse: hisexp): bool (* ****** ****** *) fun hisexp_is_void (hse: hisexp): bool fun hisexp_fun_is_void (hse: hisexp): bool (* ****** ****** *) fun hisexp_is_noret (hse: hisexp): bool fun hisexp_fun_is_noret (hse: hisexp): bool (* ****** ****** *) fun hisexp_is_tyarr (hse: hisexp): bool fun hisexp_is_tyrecsin (hse: hisexp): bool (* ****** ****** *) fun labhisexp_get_elt (lhse: labhisexp): hisexp (* ****** ****** *) fun hisexp_tyabs (sym: symbol): hisexp (* ****** ****** *) fun hisexp_fun ( fc: funclo, arg: hisexplst, res: hisexp ) : hisexp // end of [hisexp_fun] fun hisexp_cst (s2c: s2cst): hisexp fun hisexp_app (_fun: hisexp, _arg: hisexplst): hisexp // end of [hisexp_app] (* ****** ****** *) fun hisexp_extype (name: string, arglst: hisexplstlst): hisexp fun hisexp_refarg (knd: int, hse: hisexp): hisexp fun hisexp_tyarr (elt: hisexp, dim: s2explst): hisexp fun hisexp_tyrec (knd: tyreckind, lhses: labhisexplst): hisexp fun hisexp_tyrecsin (lhse: labhisexp): hisexp // HX: singleton tyrec fun hisexp_tyrec2 (knd: tyreckind, lhses: labhisexplst): hisexp fun hisexp_tysum (d2c: d2con, lhses: labhisexplst): hisexp (* ****** ****** *) fun hisexp_tyvar (s2v: s2var): hisexp (* ****** ****** *) fun hisexp_tyclo (flab: funlab): hisexp (* ****** ****** *) fun hisexp_vararg (s2e: s2exp): hisexp // HX: variadic funarg (* ****** ****** *) fun hisexp_s2exp (s2e: s2exp): hisexp fun hisexp_s2zexp (s2ze: s2zexp): hisexp (* ****** ****** *) fun hisexp_make_srt (s2t: s2rt): hisexp fun hisexp_make_srtsym (s2t: s2rt, sym: symbol): hisexp (* ****** ****** *) fun hisexp_subst (sub: !stasub, hse: hisexp): hisexp (* ****** ****** *) (* end of [pats_histaexp.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_syntax.sats0000644000175000017500000015212313431250607020726 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) // staload LOC = "./pats_location.sats" typedef loc_t = $LOC.location typedef location = $LOC.location // staload LEX = "./pats_lexing.sats" typedef token = $LEX.token typedef tokenopt = Option (token) // staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol typedef symbolist = $SYM.symbolist typedef symbolopt = $SYM.symbolopt // (* ****** ****** *) staload LAB = "./pats_label.sats" typedef label = $LAB.label staload FIX = "./pats_fixity.sats" typedef assoc = $FIX.assoc staload FIL = "./pats_filename.sats" typedef filename = $FIL.filename (* ****** ****** *) // abstype synent // a boxed union // (* ****** ****** *) // castfn synent_encode{a:type}(x: a): synent castfn synent_decode{a:type}(x: synent): (a) // (* ****** ****** *) // fun synent_null{a:type}(): a // = null fun synent_is_null{a:type}(x: a):<> bool fun synent_isnot_null{a:type}(x: a):<> bool // (* ****** ****** *) datatype srpifkind = | SRPIFKINDif | SRPIFKINDifdef | SRPIFKINDifndef // end of [srpifkind] (* ****** ****** *) // datatype macsynkind = | MSKencode of () | MSKdecode of () // HX: cross-stage persistence: | MSKxstage of () // = decode(lift(.)) // end of [macsynkind] // fun print_macsynkind (x: macsynkind): void fun prerr_macsynkind (x: macsynkind): void fun fprint_macsynkind : fprint_type (macsynkind) // (* ****** ****** *) (* datatype lamkind = | LAMKINDlam of location | LAMKINDlamat of location | LAMKINDllam of location | LAMKINDllamat of location | LAMKINDfix of location | LAMKINDfixat of location | LAMKINDifix of (location) // HX: implicit FIX *) #define LAMKINDifix (~1) fun lamkind_isbox (knd: int): int fun lamkind_islin (knd: int): int (* ****** ****** *) datatype cstsp = // special constants | CSTSPmyfil (* the filename where $myfile appears *) | CSTSPmyloc (* the location where $mylocation appears *) | CSTSPmyfun (* the function name where $myfunction appears *) (* | CSTSPmylinecnt of (int) | CSTSPmycharcnt of (lint) *) // end of [cstsp] fun fprint_cstsp : fprint_type (cstsp) (* ****** ****** *) typedef i0nt = token typedef i0ntopt = Option (i0nt) typedef c0har = token typedef f0loat = token typedef s0tring = token typedef s0tringopt = Option (s0tring) (* ****** ****** *) fun i0nt2int (x: i0nt): int (* ****** ****** *) fun fprint_i0nt : fprint_type (i0nt) fun fprint_c0har : fprint_type (c0har) fun fprint_f0loat : fprint_type (f0loat) fun fprint_s0tring : fprint_type (s0tring) (* ****** ****** *) // typedef i0de = '{ i0de_loc= loc_t, i0de_sym= symbol } (* end of [i0de] *) // typedef i0delst = List (i0de) typedef i0deopt = Option (i0de) // fun i0de_make_sym(loc: loc_t, sym: symbol): i0de fun i0de_make_string(loc: loc_t, name: string): i0de fun i0de_make_lrbrackets (t_beg: token, t_end: token): i0de // fun print_i0de (x: i0de): void fun prerr_i0de (x: i0de): void fun fprint_i0de : fprint_type (i0de) // (* ****** ****** *) datatype e0fftag_node = | E0FFTAGint of int // [0/1] | E0FFTAGcst of (int(*neg*), string) // [0/1]: pos/neg | E0FFTAGvar of i0de | E0FFTAGprf | E0FFTAGlin of int(*non/lin*) | E0FFTAGfun of ( int(*non/lin*), int(*nil/all*) ) // E0FFTAGfun | E0FFTAGclo of ( int(*non/lin*), int(*1/~1:ptr/ref*), int(*nil/all*) ) // E0FFTAGclo // end of [e0fftag_node] typedef e0fftag = '{ e0fftag_loc= location, e0fftag_node= e0fftag_node } // end of [e0fftag] typedef e0fftaglst = List e0fftag typedef e0fftaglstopt = Option e0fftaglst fun e0fftag_i0de (_: i0de): e0fftag fun e0fftag_i0nt (_: i0nt): e0fftag fun e0fftag_cst (i: int, _: i0de): e0fftag fun e0fftag_var_fun (t_fun: token): e0fftag (* ****** ****** *) datatype s0rtq_node = | S0RTQnone | S0RTQsymdot of symbol (* fileid *) /* | S0RTQfiledot of string (* filename *) */ // end of [s0rtq_node] typedef s0rtq = '{ s0rtq_loc= location, s0rtq_node= s0rtq_node } // end of [s0rtq] fun s0rtq_none (loc: location): s0rtq fun s0rtq_symdot (ent1: i0de, tok2: token): s0rtq fun print_s0rtq (x: s0rtq): void fun prerr_s0rtq (x: s0rtq): void fun fprint_s0rtq : fprint_type (s0rtq) (* ****** ****** *) datatype s0taq_node = | S0TAQnone | S0TAQsymdot of symbol (* // HX-2017-01-24: | S0TAQsymcolon of symbol *) (* | S0TAQfildot of string (* filename *) *) // end of [s0taq_node] typedef s0taq = '{ s0taq_loc= location, s0taq_node= s0taq_node } // val the_s0taq_none : s0taq // fun s0taq_none (loc: location): s0taq fun s0taq_symdot (ent1: i0de, tok2: token): s0taq // (* // HX-2017-01-24: fun s0taq_symcolon (ent1: i0de, tok2: token): s0taq *) // fun s0taq_is_none (q: s0taq): bool fun print_s0taq (x: s0taq): void fun prerr_s0taq (x: s0taq): void fun fprint_s0taq : fprint_type (s0taq) (* ****** ****** *) typedef sqi0de = '{ sqi0de_loc= location , sqi0de_qua= s0taq, sqi0de_sym= symbol } (* end of [sqi0de] *) fun sqi0de_make_none (ent: i0de): sqi0de fun sqi0de_make_some (ent1: s0taq, ent2: i0de): sqi0de fun fprint_sqi0de : fprint_type (sqi0de) (* ****** ****** *) datatype d0ynq_node = | D0YNQnone of () | D0YNQsymdot of symbol (* // // HX-2017-01-24: // removed due to no use // | D0YNQsymcolon of symbol | D0YNQsymdotcolon of (symbol, symbol) *) (* | D0YNQfildot of string (*filename*) | D0YNQfildot_symcolon of (string (*filename*), symbol) *) // end of [d0ynq_node] (* ****** ****** *) typedef d0ynq = '{ d0ynq_loc= location, d0ynq_node= d0ynq_node } (* end of [d0ynq] *) (* ****** ****** *) // val the_d0ynq_none : d0ynq fun d0ynq_none(loc: location): d0ynq // fun d0ynq_symdot (ent1: i0de, tok2: token): d0ynq // (* // // HX-2017-01-24: // removed due to no use // fun d0ynq_symcolon (ent1: i0de, tok2: token): d0ynq fun d0ynq_symdotcolon (ent1: i0de, ent2: i0de, ent3: token): d0ynq *) // fun d0ynq_is_none (q: d0ynq): bool // (* ****** ****** *) fun print_d0ynq (x: d0ynq): void fun prerr_d0ynq (x: d0ynq): void fun fprint_d0ynq : fprint_type (d0ynq) (* ****** ****** *) typedef dqi0de = '{ dqi0de_loc= location , dqi0de_qua= d0ynq, dqi0de_sym= symbol } // end of [dqi0de] fun dqi0de_make_none (ent: i0de): dqi0de fun dqi0de_make_some (ent1: d0ynq, ent2: i0de): dqi0de fun print_dqi0de (x: dqi0de): void fun prerr_dqi0de (x: dqi0de): void fun fprint_dqi0de : fprint_type (dqi0de) (* ****** ****** *) datatype p0rec = | P0RECint of int | P0RECi0de of i0de | P0RECi0de_adj of (i0de, i0de(*opr*), int) // end of [p0rec] fun p0rec_emp (): p0rec fun p0rec_i0de (x: i0de): p0rec fun p0rec_i0de_adj (ide: i0de, opr: i0de, int: i0nt): p0rec fun p0rec_i0nt (x: i0nt): p0rec fun fprint_p0rec : fprint_type (p0rec) (* ****** ****** *) datatype f0xty = | F0XTYinf of (p0rec, assoc) // infix | F0XTYpre of p0rec // prefix | F0XTYpos of p0rec // postfix // end of [f0xty] fun fprint_f0xty : fprint_type (f0xty) (* ****** ****** *) // datatype e0xpactkind = | E0XPACTerror of () | E0XPACTprerr of () | E0XPACTprint of () | E0XPACTassert of () // fun fprint_e0xpactkind : fprint_type(e0xpactkind) // (* ****** ****** *) datatype e0xp_node = | E0XPide of symbol | E0XPint of i0nt // [i0nt] is processed later | E0XPchar of c0har | E0XPfloat of f0loat | E0XPstring of s0tring | E0XPstringid of string // | E0XPapp of (e0xp, e0xp) | E0XPfun of (symbolist, e0xp) // | E0XPeval of e0xp | E0XPlist of e0xplst // | E0XPif of (e0xp, e0xp, e0xpopt) // // end of [e0xp_node] where e0xp = '{ e0xp_loc= location, e0xp_node= e0xp_node } // end of [e0xp] and e0xplst = List (e0xp) and e0xpopt = Option (e0xp) fun e0xp_i0nt (_: i0nt): e0xp fun e0xp_c0har (_: c0har): e0xp fun e0xp_f0loat (_: f0loat): e0xp fun e0xp_s0tring (_: token): e0xp // fun e0xp_i0de (_: i0de): e0xp fun e0xp_list (_1: token, _2: e0xplst, _3: token): e0xp fun e0xp_app (_1: e0xp, _2: e0xp): e0xp fun e0xp_eval (_1: token, _2: e0xp, _3: token): e0xp // fun e0xp_if ( t_if: token, _cond: e0xp, _then: e0xp, _else: e0xpopt ) : e0xp // end of [e0xp_if] // fun e0xp_make_stringid (loc: location, id: string): e0xp // fun fprint_e0xp : fprint_type (e0xp) fun fprint_e0xplst : fprint_type (e0xplst) (* ****** ****** *) // datatype datsdef = DATSDEF of (symbol, e0xpopt) // fun datsdef_make (id: i0de, opt: e0xpopt): datsdef // (* ****** ****** *) typedef l0ab = '{ l0ab_loc= location, l0ab_lab= label } // end of [l0ab] fun l0ab_make_label (loc: location, l: label): l0ab fun l0ab_make_i0de (x: i0de): l0ab fun l0ab_make_i0nt (x: i0nt): l0ab fun fprint_l0ab : fprint_type (l0ab) (* ****** ****** *) fun i0de_make_dotlab (t_dot: token, l0: l0ab): i0de (* ****** ****** *) datatype sl0abeled (a:type) = SL0ABELED (a) of (l0ab, s0tringopt, a) // end of [sl0abeled] datatype dl0abeled (a:type) = DL0ABELED (a) of (l0ab, a) // end of [dl0abeled] (* ****** ****** *) datatype s0rt_node = | S0RTide of symbol (* sort identifier *) | S0RTqid of (s0rtq, symbol) (* qualified sort identifier *) | S0RTapp of (s0rt (*fun*), s0rt (*arg*)) // HX: unsupported | S0RTlist of s0rtlst (* for temporary use *) | S0RTtype of int (* prop/view/type/t0ype/viewtype/viewt0ype *) // end of [s0rt_node] where s0rt: type = '{ s0rt_loc= location, s0rt_node= s0rt_node } // end of [s0rt] and s0rtlst: type = List s0rt and s0rtopt: type = Option s0rt and s0rtopt_vt: viewtype = Option_vt s0rt (* sorts with polarity *) typedef s0rtpol = '{ s0rtpol_loc= location, s0rtpol_srt= s0rt, s0rtpol_pol= int } // end of [s0rtpol] fun s0rt_i0de (_: i0de): s0rt fun s0rt_qid (sq: s0rtq, id: i0de): s0rt fun s0rt_app (_1: s0rt, _2: s0rt): s0rt fun s0rt_list (t_beg: token, xs: s0rtlst, t_end: token): s0rt // end of [s0rt_list] fun s0rt_type (tok: token): s0rt // tok = T_TYPE (knd) fun fprint_s0rt : fprint_type (s0rt) (* ****** ****** *) typedef d0atsrtcon = '{ d0atsrtcon_loc= location , d0atsrtcon_sym= symbol , d0atsrtcon_arg= s0rtopt } // end of [d0atsrtcon] typedef d0atsrtconlst = List d0atsrtcon fun d0atsrtcon_make (id: i0de, arg: s0rtopt): d0atsrtcon typedef d0atsrtdec = '{ d0atsrtdec_loc= location , d0atsrtdec_sym= symbol , d0atsrtdec_con= d0atsrtconlst } // end of [d0atsrtdec] typedef d0atsrtdeclst = List d0atsrtdec fun d0atsrtdec_make (id: i0de, t_eq: token, xs: d0atsrtconlst): d0atsrtdec // end of [d0atsrtdec_make] fun fprint_d0atsrtdec : fprint_type (d0atsrtdec) (* ****** ****** *) typedef s0arg = '{ s0arg_loc= location , s0arg_sym= symbol, s0arg_srt= s0rtopt } // end of [s0arg] typedef s0arglst = List s0arg typedef s0arglstlst = List (s0arglst) fun s0arg_make (id: i0de, _: s0rtopt): s0arg typedef s0marg = '{ s0marg_loc= location, s0marg_arg= s0arglst } // end of [s0marg] typedef s0marglst = List (s0marg) viewtypedef s0marglst_vt = List_vt (s0marg) fun s0marg_make_one (x: s0arg) : s0marg fun s0marg_make_many ( t_beg: token, xs: s0arglst, t_end: token ) : s0marg // end of [s0marg_make_many] (* ****** ****** *) typedef a0srt = '{ a0srt_loc= location , a0srt_sym= symbolopt , a0srt_srt= s0rt } // end of [a0srt] typedef a0srtlst = List (a0srt) fun a0srt_make_none (_: s0rt): a0srt fun a0srt_make_some (id: i0de, _: s0rt): a0srt typedef a0msrt = '{ a0msrt_loc= location, a0msrt_arg= a0srtlst } // end of [a0msrt] typedef a0msrtlst = List (a0msrt) viewtypedef a0msrtlst_vt = List_vt (a0msrt) fun a0msrt_make ( t_beg: token, xs: a0srtlst, t_end: token ) : a0msrt // end of [a0msrt_make] (* ****** ****** *) datatype sp0at_node = | SP0Tcstr of (sqi0de, s0arglst) // end of [sp0at_node] where sp0at: type = '{ sp0at_loc= location, sp0at_node= sp0at_node } // end of [sp0at] fun sp0at_cstr (qid: sqi0de, xs: s0arglst, t_end: token): sp0at // end of [sp0at_cstr] (* ****** ****** *) // // HX-2015-08: // for placeholding // abstype S0Ed2ctype_type = ptr typedef S0Ed2ctype = S0Ed2ctype_type // (* ****** ****** *) datatype s0exp_node = // | S0Eide of symbol | S0Esqid of (s0taq, symbol) // qualified | S0Eopid of symbol // = OP i0de // | S0Eint of i0nt | S0Echar of c0har | S0Efloat of f0loat | S0Estring of s0tring // | S0Eextype of (string(*name*), s0explst(*arg*)) | S0Eextkind of (string(*name*), s0explst(*arg*)) // | S0Eapp of (s0exp, s0exp) | S0Elam of (s0marg, s0rtopt, s0exp) // | S0Eimp of e0fftaglst // decorated implication // | S0Elist of s0explst | S0Elist2 of (s0explst(*prop/view*), s0explst(*type/vtype*)) // end of [S0Elist2] // | S0Etyarr of (s0exp (*element*), s0explst (*dimension*)) // end of [S0Etyarr] | S0Etytup of (int (*knd*), int (*npf*), s0explst) | S0Etyrec of (int (*knd*), int (*npf*), labs0explst) | S0Etyrec_ext of (string(*name*), int (*npf*), labs0explst) // | S0Euni of s0qualst // universal quantifiers | S0Eexi of (int(*funres*), s0qualst) // existential quantifiers // end of [S2Eexi] // | S0Eann of (s0exp, s0rt(*ann*)) // sort-ascribed staexps // | S0Ed2ctype of (S0Ed2ctype(*d0exp*)) // $d2ctype(d2c/tmpcst) // end of [s0exp_node] and s0rtext_node = | S0TEsrt of s0rt | S0TEsub of (i0de, s0rtext, s0exp, s0explst) // end of [s0rtext_node] and s0qua_node = | S0QUAprop of s0exp (* e.g., n >= i+j *) | S0QUAvars of (i0de, i0delst, s0rtext) (* e.g., a1,a2: type *) // end of [s0qua_node] where s0exp = '{ s0exp_loc= location, s0exp_node= s0exp_node } (* end of [s0exp] *) and s0explst = List (s0exp) and s0explst_vt = List_vt (s0exp) and s0expopt = Option (s0exp) and s0expopt_vt = Option_vt (s0exp) and s0explstlst = List (s0explst) and s0explstopt = Option (s0explst) and labs0exp = sl0abeled s0exp and labs0explst = List labs0exp and s0arrdim = '{ s0arrdim_loc= location, s0arrdim_dim= s0explst } and s0rtext = '{ (* extended sorts *) s0rtext_loc= location, s0rtext_node= s0rtext_node } and s0qua = '{ s0qua_loc= location, s0qua_node= s0qua_node } and s0qualst = List (s0qua) and s0qualst_vt = List_vt (s0qua) and s0qualstlst = List (s0qualst) and s0qualstopt = Option (s0qualst) datatype witht0ype = | WITHT0YPEsome of (int(*knd*), s0exp) | WITHT0YPEnone of () // end of [witht0ype] (* ****** ****** *) fun s0arrdim_make (t_beg: token, ind: s0explst, t_end: token): s0arrdim // end of [s0arrdim_make] fun s0rtext_srt (_: s0rt): s0rtext fun s0rtext_sub ( t_beg: token, id: i0de, _: s0rtext, _fst: s0exp, _rst: s0explst, t_end: token ) : s0rtext // end of [s0rtext_sub] fun fprint_s0rtext : fprint_type (s0rtext) fun s0qua_prop (_: s0exp): s0qua fun s0qua_vars (_fst: i0de, _rst: i0delst, _: s0rtext): s0qua fun fprint_s0qua : fprint_type (s0qua) fun fprint_s0qualst : fprint_type (s0qualst) (* ****** ****** *) fun s0exp_i0de (_: i0de): s0exp fun s0exp_sqid (sq: s0taq, id: i0de): s0exp fun s0exp_opid (_1: token, _2: i0de): s0exp (* ****** ****** *) // fun s0exp_i0nt (_: i0nt): s0exp fun s0exp_c0har (_: c0har): s0exp // fun s0exp_f0loat (_: f0loat): s0exp fun s0exp_s0tring (_: s0tring): s0exp // (* ****** ****** *) fun s0exp_app (_1: s0exp, _2: s0exp): s0exp (* ****** ****** *) fun s0exp_imp ( t_beg: token, _: e0fftaglst, t_end: token ) : s0exp // end of [s0exp_imp] fun s0exp_imp_nil (tok: token): s0exp (* ****** ****** *) fun s0exp_tkname (str: token): s0exp (* ****** ****** *) fun s0exp_extype (_1: token, _2: token, xs: s0explst): s0exp fun s0exp_extkind (_1: token, _2: token, xs: s0explst): s0exp (* ****** ****** *) fun s0exp_lams ( _1: token, _2: s0marglst, _3: s0rtopt, _4: s0exp ) : s0exp // end of [s0exp_lam] (* ****** ****** *) fun s0exp_list ( t_beg: token, xs: s0explst, t_end: token ) : s0exp // end of [s0exp_list] fun s0exp_list2 ( t_beg: token, xs1: s0explst, xs2: s0explst, t_end: token ) : s0exp // end of [s0exp_list2] (* ****** ****** *) fun s0exp_tyarr (t_beg: token, elt: s0exp, ind: s0arrdim): s0exp // end of [s0exp_tyarr] (* ****** ****** *) fun s0exp_tytup ( knd: int , t_beg: token, npf: int, ent2: s0explst, t_end: token ) : s0exp // end of [s0exp_tytup] (* ****** ****** *) fun s0exp_tyrec ( knd: int , t_beg: token, npf: int, ent2: labs0explst, t_end: token ) : s0exp // end of [s0exp_tyrec] fun s0exp_tyrec_ext ( name: string , t_beg: token, npf: int, ent2: labs0explst, t_end: token ) : s0exp // end of [s0exp_tyrec_ext] (* ****** ****** *) fun s0exp_uni ( t_beg: token, xs: s0qualst, t_end: token ) : s0exp // end of [s0exp_uni] fun s0exp_exi ( funres: int, t_beg: token, xs: s0qualst, t_end: token ) : s0exp // end of [s0exp_uni] (* ****** ****** *) fun s0exp_ann (s0e: s0exp, s0t: s0rt): s0exp (* ****** ****** *) // fun s0exp_d2ctype (t_beg: token, d2ctp: S0Ed2ctype, t_end: token): s0exp // (* ****** ****** *) fun fprint_s0exp : fprint_type (s0exp) fun fprint_s0explst : fprint_type (s0explst) fun fprint_s0expopt : fprint_type (s0expopt) (* ****** ****** *) fun labs0exp_make (lab: l0ab, name: s0tringopt, s0e: s0exp): labs0exp // end of [labs0exp_make] fun fprint_labs0exp : fprint_type (labs0exp) (* ****** ****** *) typedef q0marg = '{ q0marg_loc= location, q0marg_arg= s0qualst } // end of [q0marg] typedef q0marglst = List (q0marg) fun q0marg_make (t_beg: token, xs: s0qualst, t_end: token): q0marg // end of [q0marg] fun fprint_q0marg : fprint_type (q0marg) fun fprint_q0marglst : fprint_type (q0marglst) (* ****** ****** *) // typedef a0typ = '{ a0typ_loc= location , a0typ_sym= symbolopt , a0typ_typ= s0exp } (* end of [a0typ] *) // typedef a0typlst = List (a0typ) // fun a0typ_make_none (_: s0exp): a0typ fun a0typ_make_some (id: i0de, _: s0exp): a0typ // (* ****** ****** *) datatype d0cstarg_node = | D0CSTARGsta of s0qualst | D0CSTARGdyn of (int(*npf*), a0typlst) // end of [d0cstarg_node] typedef d0cstarg = '{ d0cstarg_loc= location, d0cstarg_node= d0cstarg_node } // end of [d0cstarg] typedef d0cstarglst = List (d0cstarg) fun d0cstarg_sta ( t_beg: token, xs: s0qualst, t_end: token ) : d0cstarg // end of [d0cstarg_sta] fun d0cstarg_dyn ( npf: int, t_beg: token, xs: a0typlst, t_end: token ) : d0cstarg // end of [d0cstarg_dyn] (* ****** ****** *) datatype s0vararg = | S0VARARGone of (token) (* {..} *) | S0VARARGall of (token) (* {...} *) | S0VARARGseq of (location, s0arglst) // end of [s0vararg] typedef s0vararglst = List (s0vararg) datatype s0exparg = | S0EXPARGone of () // {..} | S0EXPARGall of () // {...} | S0EXPARGseq of (s0explst) // end of [s0exparg] typedef s0expargopt = Option (s0exparg) fun fprint_s0exparg : fprint_type (s0exparg) (* ****** ****** *) datatype m0acarg_node = | M0ACARGdyn of i0delst | M0ACARGsta of s0arglst // end of [m0acarg_node] typedef m0acarg = '{ m0acarg_loc= location, m0acarg_node= m0acarg_node } // end of [m0acarg] typedef m0acarglst = List (m0acarg) fun m0acarg_dyn (t_beg: token, xs: i0delst, t_end: token): m0acarg // end of [m0acarg_dyn] fun m0acarg_sing (x: i0de): m0acarg fun m0acarg_sta (t_beg: token, xs: s0arglst, t_end: token): m0acarg // end of [m0acarg_sta] (* ****** ****** *) typedef s0rtdef = '{ s0rtdef_loc= location , s0rtdef_sym= symbol , s0rtdef_def= s0rtext } // end of [s0rtdef] typedef s0rtdeflst = List s0rtdef fun s0rtdef_make (id: i0de, s0te: s0rtext): s0rtdef (* ****** ****** *) // datatype scstextdef = | SCSTEXTDEFnone of () | SCSTEXTDEFsome of string // end of [scstextdef] // typedef s0tacst = '{ s0tacst_loc= loc_t , s0tacst_sym= symbol , s0tacst_arg= a0msrtlst , s0tacst_res= s0rt , s0tacst_extopt= s0tringopt } (* end of [s0tacst] *) // typedef s0tacstlst = List s0tacst // fun s0tacst_make ( id: i0de , arg: a0msrtlst, srt: s0rt , ext: s0tringopt (* optional external name *) ) : s0tacst // end of [s0tacst_make] // (* ****** ****** *) // typedef s0tacon = '{ s0tacon_loc= location , s0tacon_sym= symbol , s0tacon_arg= a0msrtlst , s0tacon_def= s0expopt } // end of [s0tacon] typedef s0taconlst = List s0tacon // fun s0tacon_make (id: i0de, arg: a0msrtlst, def: s0expopt): s0tacon // end of [s0tacon_make] // (* ****** ****** *) (* // // HX-2012-05-23: removed // typedef s0tavar = '{ s0tavar_loc= location , s0tavar_sym= symbol , s0tavar_srt= s0rt } // end of [s0tavar] typedef s0tavarlst = List s0tavar fun s0tavar_make (id: i0de, srt: s0rt): s0tavar *) (* ****** ****** *) typedef t0kindef = '{ t0kindef_loc= location , t0kindef_sym= symbol , t0kindef_loc_id= location , t0kindef_def= s0exp // HX: S0Etkname } // end of [t0kindef] fun t0kindef_make (id: i0de, def: s0tring): t0kindef (* ****** ****** *) typedef s0expdef = '{ s0expdef_loc= location , s0expdef_sym= symbol , s0expdef_loc_id= location , s0expdef_arg= s0marglst , s0expdef_res= s0rtopt , s0expdef_def= s0exp } // end of [s0expdef] typedef s0expdeflst = List s0expdef fun s0expdef_make (id: i0de, arg: s0marglst, res: s0rtopt, def: s0exp): s0expdef // end of [s0expdef_make] (* ****** ****** *) typedef s0aspdec = '{ s0aspdec_loc= location , s0aspdec_qid= sqi0de , s0aspdec_arg= s0marglst , s0aspdec_res= s0rtopt , s0aspdec_def= s0exp } // end of [s0aspdec] fun s0aspdec_make ( sqid: sqi0de, arg: s0marglst, res: s0rtopt, def: s0exp ) : s0aspdec // end of [s0aspdec_make] (* ****** ****** *) typedef e0xndec = '{ e0xndec_loc= location , e0xndec_fil= filename , e0xndec_sym= symbol , e0xndec_qua= q0marglst , e0xndec_arg= s0expopt } // end of [e0xndec] typedef e0xndeclst = List e0xndec fun e0xndec_make (qua: q0marglst, id: i0de, arg: s0expopt): e0xndec // end of [e0xndec_make] (* ****** ****** *) typedef d0atcon = '{ d0atcon_loc= location , d0atcon_sym= symbol , d0atcon_qua= q0marglst , d0atcon_arg= s0expopt , d0atcon_ind= s0expopt } (* end of [d0atcon] *) typedef d0atconlst = List(d0atcon) fun d0atcon_make ( qua: q0marglst , id: i0de, ind: s0expopt, arg: s0expopt ) : d0atcon // end of [d0atcon_make] (* ****** ****** *) typedef d0atdec = '{ d0atdec_loc= location , d0atdec_loc_hd= location , d0atdec_fil= filename , d0atdec_sym= symbol , d0atdec_arg= a0msrtlst , d0atdec_con= d0atconlst } (* end of [d0atdec] *) typedef d0atdeclst = List(d0atdec) fun d0atdec_make ( id: i0de, arg: a0msrtlst, con: d0atconlst ) : d0atdec // end of [d0atdec_make] (* ****** ****** *) // datatype dcstextdef = | DCSTEXTDEFnone of (int) // 0/1 static/extern | DCSTEXTDEFsome_ext of string // extern | DCSTEXTDEFsome_mac of string // macro | DCSTEXTDEFsome_sta of string // static // end of [dcstextdef] // fun dcstextdef_sta (sym: symbol): dcstextdef // fun dcstextdef_is_ext (x: dcstextdef):<> bool fun dcstextdef_is_mac (x: dcstextdef):<> bool fun dcstextdef_is_sta (x: dcstextdef):<> bool // fun dcstextdef_is_mainats (x: dcstextdef):<> bool // (* ****** ****** *) typedef d0cstdec = '{ d0cstdec_loc= location , d0cstdec_fil= filename , d0cstdec_sym= symbol , d0cstdec_arg= d0cstarglst , d0cstdec_eff= e0fftaglstopt , d0cstdec_res= s0exp , d0cstdec_extopt= s0tringopt } // end of [d0cstdec] typedef d0cstdeclst = List d0cstdec fun d0cstdec_make ( ide: i0de , arg: d0cstarglst , eff: e0fftaglstopt , res: s0exp // return type , ext: s0tringopt (* optional external name *) ) : d0cstdec // end of [d0cstdec_make] (* ****** ****** *) datatype p0at_node = // | P0Tide of symbol | P0Tdqid of (d0ynq, symbol) | P0Topid of symbol // | P0Tint of i0nt | P0Tchar of c0har | P0Tfloat of f0loat | P0Tstring of s0tring // | P0Tapp of (p0at, p0at) // | P0Tlist of (int(*npf*), p0atlst) // | P0Tlst of (int(*lin*), p0atlst) // pattern list // // tupknd: // TYTUPKIND_flt(0)/TYTUPKIND_box(1)/TYTUPKIND_box_t(2)/TYTUPKIND_box_vt(3) // recknd: // TYRECKIND_flt(0)/TYRECKIND_box(1)/TYRECKIND_box_t(2)/TYRECKIND_box_vt(3) // | P0Ttup of (int (*tupknd*), int(*npf*), p0atlst) | P0Trec of (int (*recknd*), int(*npf*), labp0atlst) // | P0Tfree of p0at | P0Tunfold of p0at // | P0Texist of s0arglst | P0Tsvararg of s0vararg // | P0Trefas of (symbol, location, p0at(*p0t*)) // | P0Tann of (p0at, s0exp) // | P0Terr of () // indicating syntax-error // end of [p0at_node] and labp0at_node = | LABP0ATnorm of (l0ab, p0at) | LABP0ATomit of () where p0at = '{ p0at_loc= location, p0at_node= p0at_node } (* end of [p0at] *) and p0atlst = List (p0at) and p0atlst_vt = List_vt (p0at) and p0atopt = Option p0at and labp0at = '{ labp0at_loc= location, labp0at_node= labp0at_node } and labp0atlst = List (labp0at) (* ****** ****** *) fun p0at_i0de (x: i0de): p0at fun p0at_opid (_1: token, id: i0de): p0at fun p0at_dqid (dq: d0ynq, id: i0de): p0at fun p0at_i0nt (x: i0nt): p0at fun p0at_c0har (x: c0har): p0at fun p0at_f0loat (x: f0loat): p0at fun p0at_s0tring (x: s0tring): p0at fun p0at_app (x1: p0at, x2: p0at): p0at fun p0at_list (t_beg: token, npf: int, xs: p0atlst, t_end: token): p0at // end of [p0ats_list] (* ****** ****** *) fun p0at_tup ( knd: int, t_beg: token, npf: int, xs: p0atlst, t_end: token ) : p0at // end of [p0at_tup] fun p0at_rec ( knd: int, t_beg: token, npf: int, xs: labp0atlst, t_end: token ) : p0at // end of [p0at_rec] (* ****** ****** *) fun p0at_lst ( lin: int , t_beg: token, p0ts: p0atlst, t_end: token ) : p0at // end of [p0at_lst] (* // // HX-2014-07: // a list-pattern // like '[x1, x2] is no longer supported // fun p0at_lst_quote ( t_beg: token, p0ts: p0atlst, t_end: token ) : p0at // end of [p0at_lst_quote] *) (* ****** ****** *) fun p0at_exist ( t_beg: token, qua: s0arglst, t_end: token ) : p0at // end of [p0at_exist] fun p0at_svararg ( t_beg: token, x: s0vararg, t_end: token ) : p0at // end of [p0at_svararg] fun p0at_refas (id: p0at, pat: p0at): p0at fun p0at_free (tok: token, p0t: p0at): p0at fun p0at_unfold (tok: token, p0t: p0at): p0at fun p0at_ann (p0t: p0at, ann: s0exp): p0at fun p0at_err (loc: location): p0at // HX: indicating syntax-error (* ****** ****** *) fun fprint_p0at : fprint_type (p0at) (* ****** ****** *) // fun labp0at_norm (lab: l0ab, p: p0at): labp0at // fun labp0at_omit (tok: token): labp0at // fun fprint_labp0at : fprint_type (labp0at) // (* ****** ****** *) datatype i0mparg = | I0MPARG_sarglst of s0arglst | I0MPARG_svararglst of s0vararglst // end of [i0mparg] fun i0mparg_sarglst_none (): i0mparg fun i0mparg_sarglst_some ( t_beg: token, arg: s0arglst, t_end: token ) : i0mparg // end of [i0mparg_sarglst_some] fun i0mparg_svararglst (arg: s0vararglst): i0mparg (* ****** ****** *) // typedef t0mpmarg = '{ t0mpmarg_loc= location, t0mpmarg_arg= s0explst } (* end of [t0mpmarg] *) // typedef t0mpmarglst = List (t0mpmarg) // fun t0mpmarg_make (tok: token, arg: s0explst): t0mpmarg // (* ****** ****** *) // typedef impqi0de = '{ impqi0de_loc= location , impqi0de_qua= d0ynq , impqi0de_sym= symbol , impqi0de_arg= t0mpmarglst } (* end of [impqi0de] *) // fun impqi0de_make_none (qid: dqi0de): impqi0de fun impqi0de_make_some (qid: dqi0de, args: t0mpmarglst, t_gt: token): impqi0de // end of [impqi0de_make_some] // (* ****** ****** *) // datatype f0arg_node = | F0ARGdyn of p0at | F0ARGsta1 of s0qualst | F0ARGsta2 of s0vararg | F0ARGmet3 of s0explst // end of [f0arg_node] // typedef f0arg = '{ f0arg_loc= location, f0arg_node= f0arg_node } (* end of [f0arg] *) // typedef f0arglst = List (f0arg) vtypedef f0arglst_vt = List_vt (f0arg) // (* ****** ****** *) // fun f0arg_dyn (x: p0at): f0arg // fun f0arg_sta1 ( t_beg: token, qua: s0qualst, t_end: token ) : f0arg // end of [f0arg_sta1] fun f0arg_sta2 ( t_beg: token, arg: s0vararg, t_end: token ) : f0arg // end of [f0arg_sta2] // fun f0arg_met (t_beg: token, xs: s0explst, t_end: token): f0arg // end of [f0arg_met] // fun f0arg_met_nil (tok: token): f0arg // (* ****** ****** *) // typedef s0elop = '{ s0elop_loc= location , s0elop_knd= int // 0/1 : (.)/(->) } (* end of [s0elop] *) // fun s0elop_make_dot (tok: token): s0elop fun s0elop_make_minusgt (tok: token): s0elop // (* ****** ****** *) // typedef i0nvarg = '{ i0nvarg_loc= location , i0nvarg_sym= symbol , i0nvarg_typ= s0expopt } (* end of [i0nvarg] *) // typedef i0nvarglst = List i0nvarg // fun i0nvarg_make (id: i0de, opt: s0expopt): i0nvarg // (* ****** ****** *) typedef i0nvresstate = '{ i0nvresstate_loc= location , i0nvresstate_qua= s0qualstopt , i0nvresstate_arg= i0nvarglst } (* end of [i0nvresstate] *) fun i0nvresstate_make_none (loc: location): i0nvresstate fun i0nvresstate_make_some ( t_beg: token, qua: s0qualstopt, arg: i0nvarglst, t_end: token ) : i0nvresstate // end of [i0nvresstate_make_some] (* ****** ****** *) typedef loopi0nv = '{ loopi0nv_qua= s0qualstopt , loopi0nv_met= s0explstopt , loopi0nv_arg= i0nvarglst , loopi0nv_res= i0nvresstate } (* end of [loopi0nv] *) typedef loopi0nvopt = Option loopi0nv fun loopi0nv_make ( qua: s0qualstopt , met: s0explstopt , arg: i0nvarglst , res: i0nvresstate ) : loopi0nv // end of [loopi0nv_make] (* ****** ****** *) datatype d0ecl_node = // (* | D0Clist of d0eclist *) // | D0Cfixity of (f0xty, i0delst) // prefix, infix, postfix // D0Cfixity | D0Cnonfix of (i0delst) // absolving fixity status // | D0Csymintr of (i0delst) // symbols for overloading | D0Csymelim of (i0delst) // eliminating overloading symbols | D0Coverload of (i0de, dqi0de, int(*pval*)) // overloading // | D0Ce0xpdef of (symbol, e0xpopt) // HX: #define // D0Ce0xpdef | D0Ce0xpundef of (symbol) // HX: #undef // | D0Ce0xpact of (e0xpactkind, e0xp) // HX: assert, error, prerr, print, ... // D0Ce0xpact // | D0Cpragma of (e0xplst) // #pragma(CATEGORY, ...) | D0Ccodegen of (int(*level*), e0xplst) // #codegen2, #codegen3 // | D0Cdatsrts of d0atsrtdeclst (* datasorts *) | D0Csrtdefs of s0rtdeflst (* sort definition *) // | D0Cstacsts of (s0tacstlst) (* static constants *) | D0Cstacons of (int(*knd*), s0taconlst) (* abstype defintion *) (* | D0Cstavars of (s0tavarlst) (* static constants *) // HX-2012-05-23: removed // end of [D0Cstavars] *) | D0Ctkindef of t0kindef (* primitive tkind *) | D0Csexpdefs of (int(*knd*), s0expdeflst) (* staexp definition *) // end of [D0Csexpdefs] // | D0Csaspdec of s0aspdec (* static assumption *) | D0Creassume of sqi0de(*abstype*) // static re-assumption // | D0Cexndecs of (e0xndeclst) | D0Cdatdecs of (int(*knd*), d0atdeclst, s0expdeflst) // | D0Cclassdec of (i0de, s0expopt) // class declaration // D0Cclassdec // | D0Cextype of (string, s0exp) // externally named types | D0Cextype of (int(*knd*), string, s0exp) // externally named structs // | D0Cextvar of (string, d0exp) // externally named left-values // | D0Cextcode of (int(*knd*), int(*pos*), string(*code*)) // external code // | D0Cdcstdecs of (int(*0/1:sta/ext*), token, q0marglst, d0cstdeclst) // dyncst // | D0Cimpdec of (int(*knd*), i0mparg, i0mpdec) // knd=0/1: implement/primplmnt // end of [D0Cimpdec] // | D0Cmacdefs of (int(*knd*), bool(*rec*), m0acdeflst) // macro definitions // | D0Cfundecs of (funkind, q0marglst, f0undeclst) // fun declarations | D0Cvaldecs of (valkind, bool(*isrec*), v0aldeclst) // val declarations | D0Cvardecs of (int(*knd*), v0ardeclst) // variable declarations // knd=0/1:var/prvar // end of [D0Cvardec] // | D0Cinclude of (* file inclusion *) (filename(*pfil*), int(*0:sta/1:dyn*), string(*filename*)) // end of [D0Cinclude] // | D0Cstaload of (filename(*pfil*), symbolopt, string(*fname*)) // HX: "..." | D0Cstaloadnm of (filename(*pfil*), symbolopt, symbol(*nspace*)) // HX: $... | D0Cstaloadloc of (filename(*pfil*), symbol(*nspace*), d0eclist) // HX: { ... } // | D0Crequire of (filename(*pfil*), string(*path*)) // HX: for atsreloc // | D0Cdynload of (filename(*pfil*), string(*path*)) // HX: dynloading(*initization*) // | D0Clocal of (d0eclist, d0eclist) // HX: local ... in ... end | D0Cguadecl of (srpifkind, guad0ecl) // HX: guarded declarations // end of [d0ecl_node] and staloadarg = | STLDfname of (location, string) // staload "..." | STLDnspace of (location, string) // staload $... | STLDdeclist of (location, d0eclist) // staload { ... } // end of [staloadarg] and guad0ecl_node = | GD0Cone of (e0xp, d0eclist) | GD0Ctwo of (e0xp, d0eclist, d0eclist) | GD0Ccons of (e0xp, d0eclist, srpifkind, guad0ecl_node) // end of [guad0ecl_node] and d0exp_node = // | D0Eide of symbol // dynamic ids | D0Edqid of (d0ynq, symbol) // qualified dynamic ids // end of [D0Edqid] // | D0Eopid of symbol // dynamic operator ids // | D0Eidext of symbol // dynamic external ids // | D0Eint of i0nt // integers | D0Echar of c0har // characters | D0Efloat of f0loat // floats | D0Estring of s0tring // strings // | D0Eempty of () // | D0Ecstsp of cstsp // special constants // | D0Etyrep of s0exp // $tyrep(...) // | D0Eliteral of (d0exp) // $literal: int, float, string // | D0Eextval of (s0exp(*type*), string(*name*)) // external values | D0Eextfcall of (s0exp(*res*), string(*fun*), d0explst(*arg*)) // external fcalls // end of [D0Eextfcall] | D0Eextmcall of (s0exp(*res*), d0exp, string(*method*), d0explst(*arg*)) // external mcalls // end of [D0Eextmcall] // | D0Efoldat of d0explst (* folding at a given address *) | D0Efreeat of d0explst (* freeing at a given address *) // | D0Etmpid of (dqi0de, t0mpmarglst) // template id // | D0Elet of (d0eclist, d0exp) // dynamic let-expression | D0Edeclseq of d0eclist // = let [d0eclist] in (*nothing*) end | D0Ewhere of (d0exp, d0eclist) // dynamic where-expression // | D0Eapp of (d0exp, d0exp) // functional application // | D0Elist of (int(*npf*), d0explst) // | D0Eifhead of (ifhead, d0exp, d0exp, d0expopt) | D0Esifhead of (sifhead, s0exp, d0exp, d0exp(*else*)) // | D0Eifcasehd of (ifhead, i0fclist(*ifcase-claues*)) // | D0Ecasehead of (casehead, d0exp, c0laulst) | D0Escasehead of (scasehead, s0exp, sc0laulst) // | D0Elst of (int(*lin*), s0expopt, d0exp(*elts*)) // // tupknd: // TYTUPKIND_flt(0)/TYTUPKIND_box(1)/TYTUPKIND_box_t(2)/TYTUPKIND_box_vt(3) // recknd: // TYRECKIND_flt(0)/TYRECKIND_box(1)/TYRECKIND_box_t(2)/TYRECKIND_box_vt(3) // | D0Etup of (int(*tupknd*), int(*npf*), d0explst) | D0Erec of (int(*recknd*), int (*npf*), labd0explst) // | D0Eseq of d0explst // dynamic sequence-expression // | D0Earrsub of // array subscripting (dqi0de, location(*ind*), d0explstlst(*ind*)) | D0Earrpsz of (s0expopt (*elt*), d0exp (*int*)) // arraysize expr | D0Earrinit of (* array initilization *) (s0exp (*elt*), d0expopt (*asz*), d0explst (*ini*)) // | D0Eptrof of () // taking the addr of a left-value | D0Eviewat of () // taking the view at the addr of a left-value // | D0Esel_lab of (int(*knd*), label) | D0Esel_ind of (int(*knd*), d0explstlst(*ind*)) // | D0Eraise of (d0exp) // $raise | D0Eeffmask of (e0fftaglst, d0exp) | D0Eeffmask_arg of (int(*knd*), d0exp) // | D0Evararg of (d0explst) // $vararg for variadicity // | D0Evcopyenv of (int(*knd*), d0exp) // $vcopyenv_v/$vcopyenv_vt // | D0Eshowtype of (d0exp) // $showtype for static debugging // | D0Etempenver of (d0exp) // $tempenver for adding environvar // | D0Esexparg of s0exparg // static multi-argument // | D0Eexist of (location(*qua*), s0exparg, d0exp) // existential sum // | D0Eann of (d0exp, s0exp) // type-ascribed dynamic expressions // | D0Elam of (int(*knd*), f0arglst, s0expopt, e0fftaglstopt, d0exp) | D0Efix of (int(*knd*), i0de, f0arglst, s0expopt, e0fftaglstopt, d0exp) // | D0Edelay of (int(*knd*), d0exp(*body*)) // $delay and $ldelay // | D0Efor of ( loopi0nvopt, location(*inv*), initestpost, d0exp(*body*) ) // end of [D0Efor] | D0Ewhile of ( loopi0nvopt, location(*inv*), d0exp(*test*), d0exp(*body*) ) // end of [D0Ewhile] // | D0Eloopexn of int(*break/continue: 0/1*) // | D0Etrywith of (tryhead, d0exp, c0laulst) (* try-expression *) // | D0Emacsyn of (macsynkind, d0exp) // macro syntax // HX: not yet in use // | D0Esolassert of (d0exp) // $solver_assert(d0e_prf) | D0Esolverify of (s0exp) // $solver_verify(s0e_prop) // // end of [d0exp_node] // end of [datatype] (* ****** ****** *) where d0ecl = '{ d0ecl_loc= location, d0ecl_node= d0ecl_node } // end of [d0ecl] and d0eclist : type = List (d0ecl) and d0eclist_vt : viewtype = List_vt (d0ecl) and guad0ecl: type = '{ guad0ecl_loc= location, guad0ecl_node= guad0ecl_node } // end of [guad0ecl] (* ****** ****** *) and d0exp = '{ d0exp_loc= location, d0exp_node= d0exp_node } // end of [d0exp] and d0explst : type = List (d0exp) and d0explst_vt : viewtype = List_vt (d0exp) and d0explstlst : type = List (d0explst) and d0expopt : type = Option (d0exp) and d0expopt_vt : viewtype = Option_vt (d0exp) and labd0exp = dl0abeled (d0exp) and labd0explst = List (labd0exp) (* ****** ****** *) and d0arrind = '{ d0arrind_loc= location, d0arrind_ind= d0explstlst } // end of [d0arrind] (* ****** ****** *) and initestpost = '{ itp_init= d0exp, itp_test= d0exp, itp_post= d0exp } // end of [initestpost] (* ****** ****** *) and gm0at = '{ gm0at_loc= location, gm0at_exp= d0exp, gm0at_pat= p0atopt } // end of [gm0at] and gm0atlst = List (gm0at) (* ****** ****** *) and guap0at = '{ guap0at_loc= location , guap0at_pat= p0at , guap0at_gua= gm0atlst } // end of [guap0at] (* ****** ****** *) and ifhead = '{ ifhead_tok= token, ifhead_inv= i0nvresstate } // end of [ifhead] and sifhead = '{ sifhead_tok= token, sifhead_inv= i0nvresstate } // end of [sifhead] (* ****** ****** *) and casehead = '{ casehead_tok= token, casehead_inv= i0nvresstate } // end of [casehead] and scasehead = '{ scasehead_tok= token, scasehead_inv= i0nvresstate } // end of [scasehead] (* ****** ****** *) and loophead = '{ loophead_tok= token, loophead_inv= loopi0nvopt } // end of [lookhead] (* ****** ****** *) and tryhead = '{ tryhead_tok= token, tryhead_inv= i0nvresstate } // end of [tryhead] (* ****** ****** *) and i0fcl = '{ i0fcl_loc= location , i0fcl_test= d0exp , i0fcl_body= d0exp } (* end of [ifcl0] *) and i0fclist = List(i0fcl) (* ****** ****** *) and c0lau = '{ c0lau_loc= location , c0lau_pat= guap0at , c0lau_seq= int , c0lau_neg= int , c0lau_body= d0exp } // end of [c0lau] and c0laulst: type = List c0lau and sc0lau = '{ sc0lau_loc= location , sc0lau_pat= sp0at , sc0lau_body= d0exp } // end of [sc0lau] and sc0laulst: type = List sc0lau (* ****** ****** *) and m0acdef = '{ m0acdef_loc= location , m0acdef_sym= symbol , m0acdef_arg= m0acarglst , m0acdef_def= d0exp } // end of [m0acdef] and m0acdeflst = List m0acdef (* ****** ****** *) and f0undec = '{ f0undec_loc= location , f0undec_sym= symbol , f0undec_sym_loc= location , f0undec_arg= f0arglst , f0undec_eff= e0fftaglstopt , f0undec_res= s0expopt , f0undec_def= d0exp , f0undec_ann= witht0ype } // end of [f0undec] and f0undeclst = List f0undec (* ****** ****** *) and v0aldec = '{ v0aldec_loc= location , v0aldec_pat= p0at , v0aldec_def= d0exp , v0aldec_ann= witht0ype } // end of [v0aldec] and v0aldeclst: type = List v0aldec (* ****** ****** *) and v0ardec = '{ v0ardec_loc= location , v0ardec_knd= int (* knd=0/1:var/ptr *) , v0ardec_sym= symbol , v0ardec_sym_loc= location , v0ardec_pfat= i0deopt // proof of at-view , v0ardec_type= s0expopt (* type annotation *) , v0ardec_init= d0expopt // value for initialization } // end of [v0ardec] and v0ardeclst = List v0ardec (* ****** ****** *) and i0mpdec = '{ i0mpdec_loc= location , i0mpdec_qid= impqi0de , i0mpdec_arg= f0arglst , i0mpdec_res= s0expopt , i0mpdec_def= d0exp } // end of [i0mpdec] (* ****** ****** *) fun d0exp_ide (id: i0de): d0exp fun d0exp_opid (_: token, id: i0de): d0exp fun d0exp_dqid (qid: dqi0de): d0exp fun d0exp_idext (id: i0de): d0exp // external id fun d0exp_i0nt (_: i0nt): d0exp fun d0exp_c0har (_: c0har): d0exp fun d0exp_s0tring (_: s0tring): d0exp fun d0exp_f0loat (_: f0loat): d0exp fun d0exp_empty (loc: location): d0exp (* ****** ****** *) fun d0exp_MYFIL (tok: token): d0exp fun d0exp_MYLOC (tok: token): d0exp fun d0exp_MYFUN (tok: token): d0exp (* ****** ****** *) // fun d0exp_tyrep ( t_beg: token, s0e: s0exp, t_end: token ) : d0exp // end of [d0exp_tyrep] // (* ****** ****** *) // fun d0exp_literal ( t_beg: token, lit: d0exp, t_end: token ) : d0exp // end of [d0exp_literal] // (* ****** ****** *) // fun d0exp_extval ( t_beg: token , _type: s0exp, name: token , t_end: token ) : d0exp // end of [d0exp_extval] // fun d0exp_extfcall ( t_beg: token , _type: s0exp, _fun: token, _arg: d0explst , t_end: token ) : d0exp // end of [d0exp_extfcall] fun d0exp_extmcall ( t_beg: token , _type: s0exp, _obj: d0exp, _mtd: token, _arg: d0explst , t_end: token ) : d0exp // end of [d0exp_extmcall] // (* ****** ****** *) fun d0exp_label_int (t_dot: token, lab: token): d0exp fun d0exp_label_sym (t_dot: token, lab: token): d0exp (* ****** ****** *) fun d0exp_foldat (t_foldat: token, _: d0explst): d0exp fun d0exp_freeat (t_freeat: token, _: d0explst): d0exp (* ****** ****** *) fun d0exp_tmpid (qid: dqi0de, arg: t0mpmarglst, t_gt: token): d0exp (* ****** ****** *) fun d0exp_let_seq ( t_let: token , d0cs: d0eclist , t_in: token , d0e: d0explst , t_end: token ) : d0exp // end of [d0exp_let_seq] fun d0exp_declseq (t_beg: token, ds: d0eclist, t_end: token) : d0exp // end of [d0exp_declseq] fun d0exp_where (d0e: d0exp, d0cs: d0eclist, t_end: token) : d0exp // end of [d0exp_where] (* ****** ****** *) fun d0exp_app (_1: d0exp, _2: d0exp): d0exp (* ****** ****** *) fun d0exp_list ( t_beg: token, npf: int, xs: d0explst, t_end: token ) : d0exp // end of [d0exp_list] (* ****** ****** *) // fun d0exp_ifhead ( hd: ifhead, cond: d0exp, _then: d0exp, _else: d0expopt ) : d0exp // end of [d0exp_ifhead] fun d0exp_sifhead ( hd: sifhead, cond: s0exp, _then: d0exp, _else: d0exp ) : d0exp // end of [d0exp_sifhead] // (* ****** ****** *) // fun d0exp_ifcasehd (ifhd: ifhead, ifcls: i0fclist): d0exp // (* ****** ****** *) // fun d0exp_casehead (hd: casehead, d0e: d0exp, t_of: token, c0ls: c0laulst): d0exp // end of [d0exp_casehead] fun d0exp_scasehead (hd: scasehead, s0e: s0exp, t_of: token, c0ls: sc0laulst): d0exp // end of [d0exp_scasehead] // (* ****** ****** *) fun d0exp_lst ( lin: int , t_beg: token , elt: s0expopt , t_lp: token , xs: d0explst // elements , t_rp: token ) : d0exp // end of [d0exp_lst] fun d0exp_lst_quote (t_beg: token, elts: d0explst, t_end: token): d0exp // end of [d0exp_lst_quote] (* ****** ****** *) // fun d0exp_tup ( knd: int, t_beg: token, npf: int, xs: d0explst, t_end: token ) : d0exp // end of [d0exp_tup] // fun d0exp_rec ( knd: int, t_beg: token, npf: int, xs: labd0explst, t_end: token ) : d0exp // end of [d0exp_rec] // (* ****** ****** *) fun d0exp_seq (t_beg: token, xs: d0explst, t_end: token): d0exp // end of [d0exp_seq] (* ****** ****** *) fun d0exp_arrsub(qid: dqi0de, ind: d0arrind): d0exp fun d0exp_arrinit ( t_beg: token, elt: s0exp, dim: d0expopt, ini: d0explst, t_end: token ) : d0exp // end of [d0exp_arrinit] fun d0exp_arrpsz ( t_beg: token, elt: s0expopt, t_lp: token, elts: d0explst, t_rp: token ) : d0exp // end of [d0exp_arrpsz] (* ****** ****** *) fun d0exp_ptrof (t_addrat: token): d0exp // addr@ fun d0exp_viewat (t_viewat: token): d0exp // view@ (* ****** ****** *) // fun d0exp_sel_lab (sel: s0elop, lab: l0ab): d0exp fun d0exp_sel_ind (sel: s0elop, ind: d0arrind): d0exp // fun d0exp_sel_int (tok: token): d0exp // tok=T_DOTINT(...) // (* ****** ****** *) // fun d0exp_raise(tok: token, d0e: d0exp): d0exp // (* ****** ****** *) // fun d0exp_effmask (tok: token, eff: e0fftaglst, d0e: d0exp): d0exp // fun d0exp_effmask_arg (knd: int, tok: token, d0e: d0exp): d0exp // (* ****** ****** *) // fun d0exp_vararg ( t_beg: token, d0es: d0explst, t_end: token ) : d0exp // end of [d0exp_vararg] // (* ****** ****** *) // fun d0exp_vcopyenv (knd: int(*0/1*), tok: token, d0e: d0exp): d0exp // (* ****** ****** *) fun d0exp_showtype(tok: token, d0e: d0exp): d0exp (* ****** ****** *) fun d0exp_tempenver(tok: token, d0e: d0exp): d0exp (* ****** ****** *) fun d0exp_sexparg (t_beg: token, s0a: s0exparg, t_end: token): d0exp // end of [d0exp_sexparg] fun d0exp_exist ( t_beg: token, s0a: s0exparg, t_bar: token, d0e: d0exp, t_end: token ) : d0exp // end of [d0exp_exist] (* ****** ****** *) fun d0exp_ann (_1: d0exp, _2: s0exp): d0exp (* ****** ****** *) fun d0exp_lam ( knd: int , t_lam: token , arg: f0arglst , res: s0expopt , eff: e0fftaglstopt , d0e: d0exp ) : d0exp // end of [d0exp_lam] fun d0exp_fix ( knd: int , t_lam: token , fid: i0de , arg: f0arglst , res: s0expopt , eff: e0fftaglstopt , d0e: d0exp ) : d0exp // end of [d0exp_fix] (* ****** ****** *) fun d0exp_delay (knd: int, tok: token, body: d0exp): d0exp (* ****** ****** *) fun d0exp_forhead ( hd: loophead, itp: initestpost, body: d0exp ) : d0exp // end of [d0exp_forhead] fun d0exp_whilehead (hd: loophead, test: d0exp, body: d0exp): d0exp // end of [d0exp_whilehead] (* ****** ****** *) fun d0exp_loopexn (knd: int, tok: token): d0exp // knd=0/1: brk/cont // end of [d0exp_loopexn] (* ****** ****** *) fun d0exp_trywith_seq ( hd: tryhead , d0es: d0explst, t_with: token, c0ls: c0laulst ) : d0exp // end of [d0exp_trywith_seq] (* ****** ****** *) // fun d0exp_solassert (tok: token, d0e: d0exp): d0exp fun d0exp_solverify (tok: token, s0e: s0exp): d0exp // (* ****** ****** *) fun d0exp_macsyn_decode (t_beg: token, _: d0exp, t_end: token): d0exp // end of [d0exp_macsyn_decode] fun d0exp_macsyn_encode_seq (t_beg: token, _: d0explst, t_end: token): d0exp // end of [d0exp_macsyn_encode_seq] fun d0exp_macsyn_cross (t_beg: token, _: d0exp, t_end: token): d0exp // end of [d0exp_macsyn_cross] (* ****** ****** *) fun labd0exp_make (ent1: l0ab, ent2: d0exp): labd0exp (* ****** ****** *) // fun fprint_d0exp : fprint_type (d0exp) fun fprint_d0explst : fprint_type (d0explst) fun fprint_d0expopt : fprint_type (d0expopt) // overload fprint with fprint_d0exp overload fprint with fprint_d0explst // (* ****** ****** *) fun fprint_labd0exp : fprint_type (labd0exp) (* ****** ****** *) // (* ** HX: d0arrind_sing: tok is RBRACKET *) fun d0arrind_sing (d0es: d0explst, tok: token): d0arrind fun d0arrind_cons (d0es: d0explst, ind: d0arrind): d0arrind // (* ****** ****** *) fun initestpost_make ( t_beg: token , init: d0explst , t_sep: token , test: d0explst , t_sep: token , post: d0explst , t_end: token ) : initestpost // end of [initestpost_make] (* ****** ****** *) // fun gm0at_make (d0e: d0exp, pat: p0atopt): gm0at fun guap0at_make (p0t: p0at, mat: Option (gm0atlst)): guap0at // (* ****** ****** *) // fun ifhead_make (t_if: token, invopt: Option(i0nvresstate)): ifhead fun sifhead_make (t_sif: token, invopt: Option(i0nvresstate)): sifhead // (* ****** ****** *) fun casehead_make (t_case: token, invopt: Option(i0nvresstate)): casehead fun scasehead_make (t_scase: token, invopt: Option(i0nvresstate)): scasehead (* ****** ****** *) // fun loophead_make_none (t_head: token): loophead fun loophead_make_some ( t_head: token, inv: loopi0nv, t_eqgt: token ) : loophead // end of [loophead_make_some] // (* ****** ****** *) fun tryhead_make (t_try: token, invopt: Option(i0nvresstate)): tryhead // end of [tryhead_make] (* ****** ****** *) fun i0fcl_make (test: d0exp, body: d0exp): i0fcl (* ****** ****** *) fun c0lau_make ( gp0t: guap0at, seq: int, neg: int, body: d0exp ) : c0lau // end of [c0lau_make] fun sc0lau_make (sp0t: sp0at, body: d0exp): sc0lau (* ****** ****** *) fun m0acdef_make (id: i0de, arg: m0acarglst, def: d0exp): m0acdef // end of [m0acdef_make] (* ****** ****** *) fun v0aldec_make (p0t: p0at, def: d0exp, ann: witht0ype): v0aldec // end of [v0aldec_make] (* ****** ****** *) fun f0undec_make ( fid: i0de , arg: f0arglst , eff: e0fftaglstopt, res: s0expopt , def: d0exp , ann: witht0ype ) : f0undec // end of [f0undec_make] (* ****** ****** *) fun v0ardec_make ( opt: tokenopt // optional BANG , pid: i0de , pfat: i0deopt // proof of at-view , s0eopt: s0expopt // type annotation , d0eopt: d0expopt // value for initialization ) : v0ardec // end of [v0ardec_make] (* ****** ****** *) fun i0mpdec_make ( qid: impqi0de , arg: f0arglst, res: s0expopt, def: d0exp ) : i0mpdec // end of [i0mpdec_make] (* ****** ****** *) // fun d0ecl_fixity (_1: token, _2: p0rec, _3: i0delst): d0ecl // end of [d0ecl_fixity] // fun d0ecl_nonfix (_1: token, _2: i0delst): d0ecl // fun d0ecl_include (knd: int, _1: token, _2: token): d0ecl // fun d0ecl_symintr (_1: token, _2: i0delst): d0ecl fun d0ecl_symelim (_1: token, _2: i0delst): d0ecl // (* ****** ****** *) // fun d0ecl_e0xpdef ( _1: token, _2: i0de, _3: e0xpopt ) : d0ecl // HX: #define // fun d0ecl_e0xpundef (_1: token, _2: i0de): d0ecl // HX: #undef // (* ****** ****** *) // fun d0ecl_e0xpact_assert (_1: token, _2: e0xp): d0ecl // HX: #assert // fun d0ecl_e0xpact_error (_1: token, _2: e0xp): d0ecl fun d0ecl_e0xpact_prerr (_1: token, _2: e0xp): d0ecl fun d0ecl_e0xpact_print (_1: token, _2: e0xp): d0ecl // (* ****** ****** *) // fun d0ecl_pragma ( tok_beg: token , e0xplst: e0xplst , tok_end: token ) : d0ecl // end-of-fun // fun d0ecl_pragma_process(xs: e0xplst): void // (* ****** ****** *) // fun d0ecl_codegen2 (tok_beg: token, xs: e0xplst, tok_end: token): d0ecl fun d0ecl_codegen3 (tok_beg: token, xs: e0xplst, tok_end: token): d0ecl // (* ****** ****** *) // fun d0ecl_datsrts (_1: token, _2: d0atsrtdeclst): d0ecl // fun d0ecl_srtdefs (_1: token, _2: s0rtdeflst): d0ecl // fun d0ecl_stacons (knd: int, _1: token, _2: s0taconlst): d0ecl // fun d0ecl_stacsts (_1: token, _2: s0tacstlst): d0ecl // (* fun d0ecl_stavars (_1: token, _2: s0tavarlst): d0ecl *) // fun d0ecl_tkindef (_1: token, _2: t0kindef): d0ecl // fun d0ecl_sexpdefs (knd: int, _1: token, _2: s0expdeflst): d0ecl // (* ****** ****** *) // fun d0ecl_saspdec(tok: token, d0: s0aspdec): d0ecl fun d0ecl_reassume(tok: token, qid: sqi0de): d0ecl // (* ****** ****** *) // fun d0ecl_exndecs (tok: token, d0: e0xndeclst): d0ecl // (* ****** ****** *) // fun d0ecl_datdecs_none ( knd: int , tok: token, ds_dec: d0atdeclst ) : d0ecl // end-of-fun fun d0ecl_datdecs_some ( knd: int , t1: token, ds_dec: d0atdeclst , t2: token, ds_def: s0expdeflst ) : d0ecl // end of [d0ecl_datdecs_some] // (* ****** ****** *) // fun d0ecl_macdefs ( knd: int, isrec: bool, t: token, defs: m0acdeflst ) : d0ecl // end of [d0ecl_macdefs] // fun d0ecl_overload ( tok: token, id: i0de, dqid: dqi0de, opt: i0ntopt ) : d0ecl // end-of-fun // fun d0ecl_classdec(t: token, id: i0de, sup: s0expopt): d0ecl // fun d0ecl_extype (tok: token, name: s0tring, s0e: s0exp): d0ecl fun d0ecl_extype2 (tok: token, name: s0tring, s0e: s0exp): d0ecl // fun d0ecl_extvar (tok: token, name: s0tring, d0e: d0exp): d0ecl fun d0ecl_extvar2 (tok: token, name: s0tring, d0e: d0exp): d0ecl // fun d0ecl_extcode (knd: int, tok(*string*): token): d0ecl // fun d0ecl_impdec (t_implement: token, imparg: i0mparg, d: i0mpdec): d0ecl // end of [d0ecl_impdec] // (* ****** ****** *) // fun d0ecl_fundecs ( knd: funkind, tok: token, arg: q0marglst, ds: f0undeclst ) : d0ecl // end of [d0ecl_fundecs] fun d0ecl_valdecs ( knd: valkind, isrec: bool, tok: token, ds: v0aldeclst ) : d0ecl // end of [d0ecl_valdecs] fun d0ecl_vardecs(knd: int, tok: token, ds: v0ardeclst): d0ecl // (* ****** ****** *) // fun staloadarg_get_loc (arg: staloadarg): location fun staloadarg_declist (t_lbrace: token, ds: d0eclist, t_rbrace: token): staloadarg // fun d0ecl_staload_fname (tok: token, tok2: token): d0ecl fun d0ecl_staload_nspace (tok: token, tok2: token): d0ecl fun d0ecl_staload_some_arg (tok: token, ent2: i0de, arg: staloadarg): d0ecl // (* ****** ****** *) // fun d0ecl_require (tok: token, ent2: token): d0ecl // fun d0ecl_dynload (tok: token, ent2: token): d0ecl // typedef d0ecl_dcstdecs_type = (token, q0marglst, d0cstdeclst) -> d0ecl // fun d0ecl_dcstdecs : d0ecl_dcstdecs_type fun d0ecl_dcstdecs_extern : d0ecl_dcstdecs_type // HX: a static const is not exported fun d0ecl_dcstdecs_static : d0ecl_dcstdecs_type // (* ****** ****** *) // fun d0ecl_local ( t_beg: token , ds_head: d0eclist, ds_body: d0eclist , t_end: token ) : d0ecl // end of [d0ecl_local] // fun d0ecl_guadecl (knd: token, gdc: guad0ecl): d0ecl // (* ****** ****** *) // fun d0ecl_list (fil: filename, d0cs: d0eclist): d0ecl fun d0ecl_toplocal (fil: filename, d0cs: d0eclist): d0ecl // (* ****** ****** *) fun guad0ecl_one (gua: e0xp, ds_then: d0eclist, t_endif: token): guad0ecl // end of [guad0ecl_one] fun guad0ecl_two ( gua: e0xp, ds_then: d0eclist, ds_else: d0eclist, t_endif: token ) : guad0ecl // end of [guad0ecl_two] fun guad0ecl_cons ( gua: e0xp, ds: d0eclist, knd: token, rest: guad0ecl ) : guad0ecl // end of [guad0ecl_cons] (* ****** ****** *) fun fprint_d0ecl : fprint_type (d0ecl) fun fprint_d0eclist : fprint_type (d0eclist) (* ****** ****** *) (* fun fprint_guadecl : fprint_type (guad0ecl) fun fprint_staloadarg : fprint_type (staloadarg) *) (* ****** ****** *) (* end of [pats_syntax.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp2_util.dats0000644000175000017500000002057713431250607022016 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload LAB = "./pats_label.sats" // (* ****** ****** *) // staload LOC = "./pats_location.sats" // overload + with $LOC.location_combine // (* ****** ****** *) // staload SYN = "./pats_syntax.sats" // (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) implement p2atlst_tupize (p2ts) = let // fun auxlst ( p2ts: p2atlst, n: int ) : labp2atlst = case+ p2ts of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (p2t, p2ts) => let val loc = p2t.p2at_loc val l = $LAB.label_make_int(n) val l0 = $SYN.l0ab_make_label(loc, l) val lp2t = LABP2ATnorm(l0, p2t) in list_cons(lp2t, auxlst(p2ts, n+1)) end // end of [list_vt_cons] // end of [aux] // in auxlst(p2ts, 0) end // end of [p2atlst_tupize] (* ****** ****** *) implement d2exp_is_lam (d2e0) = let // fun aux ( d2e0: d2exp ) : bool = let in // case+ d2e0.d2exp_node of // case+ | D2Elam_dyn _ => true // | D2Elam_sta (_, _, d2e) => aux(d2e) // | D2Elam_met (_, _, d2e) => aux(d2e) // | D2Efix(_, _, d2e) => aux(d2e) // | D2Esing(d2e) => aux(d2e) // | D2Eann_type (d2e, _) => aux(d2e) | D2Eann_seff (d2e, _) => aux(d2e) | D2Eann_funclo (d2e, _) => aux(d2e) // | _ (*rest-of-d2exp*) => false // end // end of [aux] // in aux(d2e0) end // end of [d2exp_is_lam] (* ****** ****** *) implement d2exp_is_varlamcst (d2e0) = let // fun aux ( d2e0: d2exp ) : bool = let in // case+ d2e0.d2exp_node of // case+ // | D2Evar d2v => ( if d2var_is_mutabl(d2v) then false else true ) // end of [D2Evar] // | D2Elam_dyn _ => true // | D2Elam_sta _ => true | D2Elam_met _ => true (* // // HX: not good for typechecking // | D2Elam_sta (_, _, d2e) => aux(d2e) | D2Elam_met (_, _, d2e) => aux(d2e) *) // | D2Efix _ => true // | D2Eint _ => true | D2Ebool _ => true | D2Echar _ => true | D2Estring _ => true | D2Ei0nt _ => true | D2Ec0har _ => true | D2Es0tring _ => true // | D2Etop _ => true // | D2Esing(d2e) => aux(d2e) // | D2Etup(knd, npf, d2es) => auxlst(d2es) | D2Erec(knd, npf, ld2es) => auxlablst(ld2es) // | D2Eexist(s2as, d2e) => aux (d2e) // | _ (*rest-of-d2exp*) => false // end // end of [aux] // and auxlst ( d2es: d2explst ) : bool = ( case+ d2es of | list_nil() => true | list_cons(d2e, d2es) => if aux(d2e) then auxlst(d2es) else false // end of [list_cons] ) // and auxlablst ( ld2es: labd2explst ) : bool = ( case+ ld2es of | list_nil ((*void*)) => true // list_nil | list_cons (ld2e, ld2es) => let // val $SYN.DL0ABELED(l, d2e) = ld2e // in if aux(d2e) then auxlablst(ld2es) else false end // end of [list_cons] ) // in aux(d2e0) end // end of [d2exp_is_varlamcst] (* ****** ****** *) implement d2con_select_arity (d2cs, n) = let // val nd2cs = list_length(d2cs) // in // if nd2cs >= 2 then let // var !p_clo = @lam ( pf: !unit_v | d2c: d2con ) : bool = d2con_get_arity_full (d2c) = n // prval pfu = unit_v() // val d2cs2 = list_filter_vclo{unit_v}(pfu | d2cs, !p_clo) // prval unit_v() = pfu // val d2cs2 = (l2l)d2cs2 // in case+ d2cs2 of list_cons _ => d2cs2 | list_nil() => d2cs end // end of [then] else d2cs // end of [else] // end // end of [d2con_select_arity] (* ****** ****** *) local fun d2exp_d2var_lvalize ( d2e0: d2exp, d2v: d2var, d2ls: d2lablst ) : d2lval = ( case+ 0 of | _ when d2var_is_linear(d2v) => D2LVALvar_lin(d2v, d2ls) | _ when d2var_is_mutabl(d2v) => D2LVALvar_mut(d2v, d2ls) | _ (* rest-of-d2var *) => D2LVALnone(d2e0) ) (* end of [d2var_lvalize] *) in (* in-of-local *) implement d2exp_lvalize (d2e0) = let (* val () = ( println! ("d2exp_lvalize: d2e0 = ", d2e0) ) (* end of [val] *) *) in // case+ d2e0.d2exp_node of // case+ // | D2Evar(d2v) => d2exp_d2var_lvalize(d2e0, d2v, list_nil) // | D2Ederef (_(*!*), d2e) => D2LVALderef(d2e, list_nil) // end of [D2Ederef] // | D2Eselab ( d2e, d2ls ) => ( case+ d2e.d2exp_node of (* case+ *) | D2Evar(d2v) => d2exp_d2var_lvalize(d2e0, d2v, d2ls) // end of [D2Evar] | D2Ederef(_(*!*), d2e) => D2LVALderef(d2e, d2ls) | _ (*rest-of-d2exp*) => D2LVALnone (d2e0) ) (* end of [D2Esel] *) // | D2Eviewat (d2e) => D2LVALviewat (d2e) // | D2Earrsub ( d2s, arr, loc_ind, ind ) => D2LVALarrsub (d2s, arr, loc_ind, ind) // | D2Esing (d2e) => d2exp_lvalize (d2e) // | _ (*rest-of-d2exp*) => D2LVALnone (d2e0) // end // end of [d2exp_lvalize] end // end of [val] (* ****** ****** *) local typedef intlst = List (int) fn p1at_arity (p1t: p1at): int = ( case+ p1t.p1at_node of | P1Tlist (npf, p1ts) => list_length (p1ts) | _ => 1 ) (* end of [p1at_arity] *) fn aritest (d1e: d1exp, ns: intlst): bool = let fn* loop1 ( d1e: d1exp, ns: intlst ) : bool = case+ ns of | list_nil () => true | list_cons (n, ns) => loop2 (d1e, n, ns) // end of [loop1] and loop2 ( d1e: d1exp, n: int, ns: intlst ) : bool = case+ d1e.d1exp_node of | D1Elam_dyn (_(*lin*), p1t, d1e) => ( if n = p1at_arity (p1t) then loop1 (d1e, ns) else false ) | D1Elam_met (_, _, d1e) => loop2 (d1e, n, ns) | D1Elam_sta_ana (_, _, d1e) => loop2 (d1e, n, ns) | D1Elam_sta_syn (_, _, d1e) => loop2 (d1e, n, ns) | _ (*non-D1Elam*) => false // end of [loop2] in loop1 (d1e, ns) end // end of [aritest] in (* in-of-local *) implement d2cst_match_def (d2c, def) = let val ns = d2cst_get_artylst (d2c) in aritest (def, ns) end // end of [d2cst_match_def] end // end of [local] (* ****** ****** *) implement d2exp_get_seloverld (d2e0) = let // fun aux (d2ls: d2lablst) : d2symopt = ( case+ d2ls of | list_nil () => None((*void*)) | list_cons (d2l, d2ls) => aux2 (d2l, d2ls) ) (* end of [aux] *) // and aux2 ( d2l: d2lab, d2ls: d2lablst ) : d2symopt = ( case+ d2ls of | list_nil () => d2l.d2lab_overld | list_cons (d2l, d2ls) => aux2 (d2l, d2ls) ) (* end of [aux2] *) // in // case+ d2e0.d2exp_node of D2Eselab (d2e, d2ls) => aux (d2ls) | _ => None() // end // end of [d2exp_get_seloverld] (* ****** ****** *) implement d2exp_get_seloverld_root (d2e0) = let // val-D2Eselab (d2e, d2ls) = d2e0.d2exp_node // val-list_cons (d2l1, d2ls) = d2ls // fun aux ( d2e: d2exp , d2l1: d2lab , d2l2: d2lab , d2ls: d2lablst , res: List_vt(d2lab) ) : d2exp = ( case+ d2ls of | list_nil () => let val loc = d2e.d2exp_loc + d2l1.d2lab_loc // end of [val] val res = list_vt_cons (d2l1, res) in d2exp_selab (loc, d2e, l2l(list_vt_reverse(res))) end // end of [list_nil] | list_cons (d2l3, d2ls) => ( aux (d2e, d2l2, d2l3, d2ls, list_vt_cons (d2l1, res)) ) (* end of [list_cons] *) ) // in // case+ d2ls of | list_nil () => d2e | list_cons (d2l2, d2ls) => ( aux (d2e, d2l1, d2l2, d2ls, list_vt_nil()) ) (* end of [list_cons] *) // end // end of [d2exp_get_seloverld_root] (* ****** ****** *) (* end of [pats_dynexp2_util.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_comarg.sats0000644000175000017500000000455313431250607020653 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) datatype comarg = COMARG of (int, string) vtypedef comarglst(n:int) = list_vt(comarg, n) (* ****** ****** *) // fun print_comarg(x: comarg): void fun fprint_comarg (out: FILEref, x: comarg): void // (* ****** ****** *) // fun comarg_parse(s: string):<> comarg // fun comarglst_parse {n:nat} ( argc: int(n) , argv: &(@[string][n]) ) :<> list_vt(comarg, n) // endfun // (* ****** ****** *) // fun comarg_warning(str: string): void // (* ****** ****** *) fun is_DATS_flag(s: string): bool fun is_IATS_flag(s: string): bool (* ****** ****** *) fun DATS_extract(s: string): Stropt fun IATS_extract(s: string): Stropt (* ****** ****** *) // // HX: // For processing command-line // flag: -DATSXYZ=def or -DATS XYZ=def // fun process_DATS_def(def: string): void // // HX: // For processing command-line // inclusion path: -IATSpath or -IATS path // fun process_IATS_dir(dir: string): void // (* ****** ****** *) // fun process_PATSRELOCROOT((*void*)): void // (* ****** ****** *) (* end of [pats_comarg.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_syntax.dats0000644000175000017500000022443313431250607020713 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" overload + with $LOC.location_combine staload SYM = "./pats_symbol.sats" (* ****** ****** *) staload LAB = "./pats_label.sats" staload FIX = "./pats_fixity.sats" staload FIL = "./pats_filename.sats" (* ****** ****** *) staload "./pats_basics.sats" staload "./pats_lexing.sats" staload "./pats_parsing.sats" staload "./pats_syntax.sats" (* ****** ****** *) #define sz2i int_of_size #define l2l list_of_list_vt macdef list_sing (x) = list_cons (,(x), list_nil) (* ****** ****** *) implement lamkind_isbox (knd) = ( if knd >= 0 then (if test_boxkind (knd) then 1 else 0) else 1(*boxed*) // end of [if] ) (* end of [lamkind_isbox] *) (* ****** ****** *) implement lamkind_islin (knd) = ( if knd >= 0 then (if test_linkind (knd) then 1 else 0) else 0(*nonlin*) // end of [if] ) (* end of [lamkind_islin] *) (* ****** ****** *) // implement synent_null {a} () = $UN.cast{a} (null) // implement synent_is_null (x) = ptr_is_null ($UN.cast{ptr} (x)) implement synent_isnot_null (x) = ptr_isnot_null ($UN.cast{ptr} (x)) // (* ****** ****** *) implement i0nt2int (tok) = let // val-T_INT (_, rep, _) = tok.token_node in int_of_string (rep) // end // end of [i0nt2int] (* ****** ****** *) // implement i0de_make_sym (loc, sym) = '{ i0de_loc= loc, i0de_sym= sym } // (* ****** ****** *) implement i0de_make_string (loc, name) = let // val sym = $SYM.symbol_make_string (name) in i0de_make_sym (loc, sym) // end // end of [i0de_make_string] (* ****** ****** *) implement i0de_make_lrbrackets (t_beg, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ i0de_loc= loc, i0de_sym= $SYM.symbol_LRBRACKETS } end // end of [i0de_make_lrbrackets] (* ****** ****** *) implement e0fftag_cst (i, id) = let val name = $SYM.symbol_get_name (id.i0de_sym) in '{ e0fftag_loc= id.i0de_loc, e0fftag_node= E0FFTAGcst (i, name) } end // end of [e0fftag_cst] (* ****** ****** *) local #define CLO 0 #define CLOPTR ( 1) #define CLOREF (~1) fn name_is_prf (name: string): bool = name = "prf" // end of [name_is_prf] fn name_is_lin0 (name: string): bool = if name = "lin" then true else name = "lin0" fn name_is_lin1 (name: string): bool = name = "lin1" fn name_is_fun0 (name: string): bool = if name = "fun" then true else name = "fun0" fn name_is_fun1 (name: string): bool = name = "fun1" fn name_is_linfun0 (name: string): bool = if name = "linfun" then true else name = "linfun0" fn name_is_linfun1 (name: string): bool = name = "linfun1" fn name_is_clo0 (name: string): bool = if name = "clo" then true else name = "clo0" fn name_is_clo1 (name: string): bool = name = "clo1" fn name_is_linclo0 (name: string): bool = if name = "linclo" then true else name = "linclo0" fn name_is_linclo1 (name: string): bool = name = "linclo1" fn name_is_cloptr0 (name: string): bool = if name = "cloptr" then true else name = "cloptr0" fn name_is_cloptr1 (name: string): bool = name = "cloptr1" fn name_is_lincloptr0 (name: string): bool = if name = "lincloptr" then true else name = "lincloptr0" fn name_is_lincloptr1 (name: string): bool = name = "lincloptr1" fn name_is_cloref0 (name: string): bool = if name = "cloref" then true else name = "cloref0" fn name_is_cloref1 (name: string): bool = name = "cloref1" in (* in of [local] *) implement e0fftag_i0de (id) = let val name = $SYM.symbol_get_name (id.i0de_sym) val node = (case+ name of // | _ when name_is_prf name => E0FFTAGprf // | _ when name_is_clo0 name => E0FFTAGclo (~1(*u*), CLO, 0) | _ when name_is_clo1 name => E0FFTAGclo (~1(*u*), CLO, 1) | _ when name_is_linclo0 name => E0FFTAGclo (1(*l*), CLO, 0) | _ when name_is_linclo1 name => E0FFTAGclo (1(*l*), CLO, 1) // | _ when name_is_cloptr0 name => E0FFTAGclo (~1(*u*), CLOPTR, 0) | _ when name_is_cloptr1 name => E0FFTAGclo (~1(*u*), CLOPTR, 1) | _ when name_is_lincloptr0 name => E0FFTAGclo (1(*l*), CLOPTR, 0) | _ when name_is_lincloptr1 name => E0FFTAGclo (1(*l*), CLOPTR, 1) // | _ when name_is_cloref0 name => E0FFTAGclo (0(*n*), CLOREF, 0) | _ when name_is_cloref1 name => E0FFTAGclo (0(*n*), CLOREF, 1) // | _ when name_is_fun0 name => E0FFTAGfun (~1(*u*), 0) | _ when name_is_fun1 name => E0FFTAGfun (~1(*u*), 1) | _ when name_is_linfun0 name => E0FFTAGfun (1(*l*), 0) | _ when name_is_linfun1 name => E0FFTAGfun (1(*l*), 1) // | _ when name_is_lin0 name => E0FFTAGlin 0 | _ when name_is_lin1 name => E0FFTAGlin 1 // | _ => E0FFTAGvar id ) : e0fftag_node // end of [val] // in '{ e0fftag_loc= id.i0de_loc, e0fftag_node= node } end // end of [e0fftag_var] end // end of [local] implement e0fftag_var_fun (t) = '{ e0fftag_loc= t.token_loc , e0fftag_node= E0FFTAGfun (~1(*u*), 0) } // end of [e0fftag_var_fun] implement e0fftag_i0nt (tok) = let val int = i0nt2int (tok) in '{ e0fftag_loc= tok.token_loc, e0fftag_node= E0FFTAGint (int) } end // end of [e0fftag_int] (* ****** ****** *) // // HX: omitted precedence is assumed to equal 0 // implement p0rec_emp () = P0RECint (0) // implement p0rec_i0nt (tok) = let val pval = i0nt2int (tok) in P0RECint (pval) end // end of [p0rec_i0nt] // implement p0rec_i0de (id) = P0RECi0de (id) // implement p0rec_i0de_adj (id, opr, i0nt) = let val adj = i0nt2int (i0nt) in P0RECi0de_adj (id, opr, adj) end // end of [p0rec_i0de_adj] // (* ****** ****** *) implement e0xp_i0de (id) = '{ e0xp_loc= id.i0de_loc, e0xp_node= E0XPide id.i0de_sym } // end of [e0xp_ide] implement e0xp_i0nt (tok) = let in '{ e0xp_loc= tok.token_loc, e0xp_node= E0XPint (tok) } end // end of [e0xp_i0nt] implement e0xp_c0har (tok) = let in '{ e0xp_loc= tok.token_loc, e0xp_node= E0XPchar (tok) } end // end of [e0xp_c0har] implement e0xp_f0loat (tok) = let in '{ e0xp_loc= tok.token_loc, e0xp_node= E0XPfloat (tok) } end // end of [e0xp_f0loat] implement e0xp_s0tring (tok) = let in '{ e0xp_loc= tok.token_loc, e0xp_node= E0XPstring (tok) } end // end of [e0xp_s0tring] implement e0xp_app (e1, e2) = let val loc = e1.e0xp_loc + e2.e0xp_loc in '{ e0xp_loc= loc, e0xp_node= E0XPapp (e1, e2) } end // end of [e0xp_app] implement e0xp_eval ( t_beg, e, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ e0xp_loc= loc, e0xp_node= E0XPeval e } end // end of [e0xp_eval] implement e0xp_list ( t_beg, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ e0xp_loc= loc, e0xp_node= E0XPlist xs } end // end of [e0xp_list] implement e0xp_if ( t_if, _cond, _then, _else ) = let val loc = (case+ _else of | Some e => t_if.token_loc + e.e0xp_loc | None _ => t_if.token_loc + _then.e0xp_loc ) : location // end of [val] in '{ e0xp_loc= loc, e0xp_node= E0XPif (_cond, _then, _else) } end // end of [e0xp_if] implement e0xp_make_stringid (loc, id) = '{ e0xp_loc= loc, e0xp_node= E0XPstringid (id) } // end of [e0xp_make_stringid] (* ****** ****** *) // // HX: this is for supporting definitions like // #define fversion (x, y, z) (1000 *((1000 * x) + y) + z) // fn e0xp_fun ( loc: location, arg: symbolist, body: e0xp ) : e0xp = '{ e0xp_loc= loc, e0xp_node= E0XPfun (arg, body) } extern fun e0xp_funize (e0: e0xp, flag: &int): e0xp implement e0xp_funize (e0, flag) = let fun argtest (es: e0xplst): bool = case+ es of | list_cons (e, es) => ( case+ e.e0xp_node of E0XPide _ => argtest (es) | _ => false ) // end of [list_cons] | list_nil () => true // end of [argtest] fun applst (e: e0xp, es: List_vt (e0xp)): e0xp = case+ es of | ~list_vt_cons (e1, es1) => let val e = e0xp_app (e, e1) in applst (e, es1) end | ~list_vt_nil () => e // end of [applist] fun auxfun ( e0: e0xp, e1: e0xp, e2: e0xp, es2: List_vt (e0xp), flag: &int ) : e0xp = case+ e1.e0xp_node of | E0XPapp (e1n, e2n) => auxfun (e0, e1n, e2n, list_vt_cons (e2, es2), flag) | E0XPlist (es) when argtest (es) => let fn f (e: e0xp): symbol = let val-E0XPide x = e.e0xp_node in x end // end of [f] val xs = l2l (list_map_fun (es, f)) val () = flag := flag + 1 in e0xp_fun (e0.e0xp_loc, xs, applst (e2, es2)) end | _ => let val () = list_vt_free (es2) in e0 end in case+ e0.e0xp_node of | E0XPapp (e1, e2) => auxfun (e0, e1, e2, list_vt_nil, flag) | _ => e0 end // end of [e0xp_funize] (* ****** ****** *) implement datsdef_make (id, opt) = DATSDEF (id.i0de_sym, opt) // end of [datsdef_make] (* ****** ****** *) implement l0ab_make_label (loc, lab) = '{ l0ab_loc= loc, l0ab_lab= lab } // end of [l0ab_make_lab] implement l0ab_make_i0de (x) = let val lab = $LAB.label_make_sym (x.i0de_sym) // end of [val] in l0ab_make_label (x.i0de_loc, lab) end // end of [l0ab_make_i0de] implement l0ab_make_i0nt (x) = let val i = i0nt2int (x) val lab = $LAB.label_make_int (i) in l0ab_make_label (x.token_loc, lab) end // end of [l0ab_make_i0nt] (* ****** ****** *) implement i0de_make_dotlab (t_dot, l0) = let // val loc = t_dot.token_loc + l0.l0ab_loc val l = l0.l0ab_lab val dotsym = $LAB.label_dotize (l) // in i0de_make_sym (loc, dotsym) end // end of [i0de_make_dotlab] (* ****** ****** *) implement s0rtq_none(loc) = '{ s0rtq_loc= loc, s0rtq_node= S0RTQnone () } // end of [s0rtq_none] implement s0rtq_symdot(ent1, tok2) = let val loc = ent1.i0de_loc + tok2.token_loc in '{ s0rtq_loc= loc, s0rtq_node= S0RTQsymdot(ent1.i0de_sym) } end // end of [s0rtq_symdot] (* ****** ****** *) // implement the_s0taq_none = s0taq_none($LOC.location_dummy) // implement s0taq_none (loc) = '{ s0taq_loc= loc, s0taq_node= S0TAQnone() } // end of [s0taq_none] // implement s0taq_symdot (ent1, tok2) = let val loc = ent1.i0de_loc + tok2.token_loc in '{ s0taq_loc= loc, s0taq_node= S0TAQsymdot(ent1.i0de_sym) } end // end of [s0taq_symdot] // (* // // HX-2017-01-24: // removed as it is never in use // implement s0taq_symcolon (ent1, tok2) = let val loc = ent1.i0de_loc + tok2.token_loc in '{ s0taq_loc= loc, s0taq_node= S0TAQsymcolon (ent1.i0de_sym) } end // end of [s0taq_symcolon] *) // implement s0taq_is_none (q) = case q.s0taq_node of S0TAQnone () => true | _ => false // end of [s0taq_is_none] // (* ****** ****** *) implement sqi0de_make_none (ent) = let val loc = ent.i0de_loc val qua = s0taq_none (loc) in '{ sqi0de_loc= loc , sqi0de_qua= qua, sqi0de_sym= ent.i0de_sym } end // end of [sqi0de_make_node] implement sqi0de_make_some (ent1, ent2) = let val loc = ent1.s0taq_loc + ent2.i0de_loc in '{ sqi0de_loc= loc , sqi0de_qua= ent1, sqi0de_sym= ent2.i0de_sym } end // end of [sqi0de_make_some] (* ****** ****** *) implement the_d0ynq_none = d0ynq_none ($LOC.location_dummy) implement d0ynq_none(loc) = '{ d0ynq_loc= loc, d0ynq_node= D0YNQnone () } // end of [d0ynq_none] implement d0ynq_symdot (ent1, tok2) = let val loc = ent1.i0de_loc + tok2.token_loc in '{ d0ynq_loc= loc, d0ynq_node= D0YNQsymdot(ent1.i0de_sym) } end // end of [d0ynq_symdot] (* ****** ****** *) (* // // HX-2017-01-24: // removed due to no use // implement d0ynq_symcolon (ent1, tok2) = let val loc = ent1.i0de_loc + tok2.token_loc in '{ d0ynq_loc= loc, d0ynq_node= D0YNQsymcolon(ent1.i0de_sym) } end // end of [d0ynq_symcolon] // implement d0ynq_symdotcolon (ent1, ent2, ent3) = let val loc = ent1.i0de_loc + ent3.token_loc in '{ d0ynq_loc= loc , d0ynq_node= D0YNQsymdotcolon(ent1.i0de_sym, ent2.i0de_sym) } end // end of [d0ynq_symdotcolon] // *) (* ****** ****** *) implement d0ynq_is_none (q) = case q.d0ynq_node of D0YNQnone() => true | _ => false // end of [d0ynq_is_none] (* ****** ****** *) implement dqi0de_make_none (ent) = let val loc = ent.i0de_loc val qua = d0ynq_none (loc) in '{ dqi0de_loc= loc , dqi0de_qua= qua, dqi0de_sym= ent.i0de_sym } end // end of [dqi0de_make_node] implement dqi0de_make_some (ent1, ent2) = let val loc = ent1.d0ynq_loc + ent2.i0de_loc in '{ dqi0de_loc= loc , dqi0de_qua= ent1, dqi0de_sym= ent2.i0de_sym } end // end of [dqi0de_make_some] (* ****** ****** *) implement s0rt_i0de (id) = '{ s0rt_loc= id.i0de_loc, s0rt_node= S0RTide id.i0de_sym } // end of [s0rt_ide] implement s0rt_qid (ent1, ent2) = let val loc = ent1.s0rtq_loc + ent2.i0de_loc in '{ s0rt_loc= loc, s0rt_node= S0RTqid (ent1, ent2.i0de_sym) } end // end of [s0rt_ide] implement s0rt_app (x1, x2) = let val loc = x1.s0rt_loc + x2.s0rt_loc in '{ s0rt_loc= loc, s0rt_node= S0RTapp (x1, x2) } end // end of [s0rt_app] implement s0rt_list ( t_beg, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ s0rt_loc= loc, s0rt_node= S0RTlist (xs) } end // end of [s0rt_list] implement s0rt_type (x) = let val-T_TYPE (knd) = x.token_node in '{ s0rt_loc= x.token_loc, s0rt_node= S0RTtype (knd) } end // end of [s0rt_i0nt] (* ****** ****** *) implement d0atsrtcon_make (id, arg) = let val loc = (case+ arg of | Some s0t => id.i0de_loc + s0t.s0rt_loc | None () => id.i0de_loc ) : location // end of [val] in '{ d0atsrtcon_loc= loc , d0atsrtcon_sym= id.i0de_sym , d0atsrtcon_arg= arg } end // end of [d0atsrtcon_make] implement d0atsrtdec_make (id, tok, xs) = let fun loop ( id: i0de, x: d0atsrtcon, xs: d0atsrtconlst ) : location = case+ xs of | list_cons (x, xs) => loop (id, x, xs) | list_nil () => id.i0de_loc + x.d0atsrtcon_loc // end of [loop] val loc = ( case+ xs of | list_cons (x, xs) => loop (id, x, xs) | list_nil () => id.i0de_loc + tok.token_loc ) : location // end of [val] in '{ d0atsrtdec_loc= loc , d0atsrtdec_sym= id.i0de_sym, d0atsrtdec_con= xs } end // end of [d0atsrtdec_make] (* ****** ****** *) implement s0arg_make (x1, x2) = let val loc = (case x2 of | Some s0t => x1.i0de_loc + s0t.s0rt_loc | None () => x1.i0de_loc ) : location // end of [val] in '{ s0arg_loc= loc, s0arg_sym= x1.i0de_sym, s0arg_srt= x2 } end // end of [s0arg_make] (* ****** ****** *) implement s0marg_make_one (x) = '{ s0marg_loc= x.s0arg_loc, s0marg_arg= list_sing (x) } // end of [s0marg_make_one] implement s0marg_make_many (t_beg, xs, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ s0marg_loc= loc, s0marg_arg= xs } end // end of [s0marg_make_many] (* ****** ****** *) implement a0srt_make_none (s0t) = '{ a0srt_loc= s0t.s0rt_loc , a0srt_sym= None (), a0srt_srt= s0t } // end of [a0srt_make_none] implement a0srt_make_some (id, s0t) = let val loc = id.i0de_loc + s0t.s0rt_loc in '{ a0srt_loc= loc , a0srt_sym= Some (id.i0de_sym), a0srt_srt= s0t } end // end of [a0srt_make_some] implement a0msrt_make (t_beg, xs, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ a0msrt_loc= loc, a0msrt_arg= xs } end // end of [a0msrt_make] (* ****** ****** *) implement s0arrdim_make (t_beg, xs, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ s0arrdim_loc= loc, s0arrdim_dim = xs } end // end of [s0arrdim] implement s0rtext_srt (s0t) = '{ s0rtext_loc= s0t.s0rt_loc, s0rtext_node= S0TEsrt s0t } // end of [s0rtext_srt] implement s0rtext_sub ( t_beg, id, s0te, s0e, s0es, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ s0rtext_loc= loc, s0rtext_node= S0TEsub (id, s0te, s0e, s0es) } end // end of [s0rtext_sub] implement s0qua_prop (s0e) = '{ s0qua_loc= s0e.s0exp_loc, s0qua_node= S0QUAprop s0e } implement s0qua_vars (id, ids, s0te) = let val loc = id.i0de_loc + s0te.s0rtext_loc in '{ s0qua_loc= loc, s0qua_node= S0QUAvars (id, ids, s0te) } end // end of [s0qua_vars] (* ****** ****** *) implement q0marg_make (t_beg, xs, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ q0marg_loc= loc, q0marg_arg= xs } end // end of [q0marg] (* ****** ****** *) implement a0typ_make_none (s0e) = '{ a0typ_loc= s0e.s0exp_loc , a0typ_sym= None (), a0typ_typ= s0e } // end of [a0typ_make_none] implement a0typ_make_some (id, s0e) = let val loc = id.i0de_loc + s0e.s0exp_loc in '{ a0typ_loc= loc , a0typ_sym= Some (id.i0de_sym), a0typ_typ= s0e } end // end of [a0typ_make_some] (* ****** ****** *) implement s0exp_tkname (str) = let val loc = str.token_loc val-T_STRING (name) = str.token_node in '{ s0exp_loc= loc, s0exp_node= S0Eextkind (name, list_nil ()) } end // end of [s0exp_tkname] (* ****** ****** *) local // fun loop {n:nat} .. ( tok: token, x: s0exp, xs: list (s0exp, n) ) : location = case+ xs of | list_cons (x, xs) => loop (tok, x, xs) | list_nil () => tok.token_loc + x.s0exp_loc // end of [loop] // in (* in of [local] *) // implement s0exp_extype (tok1, tok2, xs) = let val-T_STRING (name) = tok2.token_node val loc = (case+ xs of | list_nil () => tok1.token_loc + tok2.token_loc | list_cons (x, xs) => loop (tok1, x, xs) ) : location // end of [val] in '{ s0exp_loc= loc, s0exp_node= S0Eextype (name, xs) } end // end of [s0exp_extype] // implement s0exp_extkind (tok1, tok2, xs) = let val-T_STRING (name) = tok2.token_node val loc = (case+ xs of | list_nil () => tok1.token_loc + tok2.token_loc | list_cons (x, xs) => loop (tok1, x, xs) ) : location // end of [val] in '{ s0exp_loc= loc, s0exp_node= S0Eextkind (name, xs) } end // end of [s0exp_extkind] // end // end of [local] (* ****** ****** *) implement s0exp_i0de (id) = '{ s0exp_loc= id.i0de_loc, s0exp_node= S0Eide (id.i0de_sym) } (* end of [s0exp_i0de] *) (* ****** ****** *) implement s0exp_opid (x1, x2) = let val loc = x1.token_loc + x2.i0de_loc in '{ s0exp_loc= loc , s0exp_node= S0Eopid (x2.i0de_sym) } end // end of [s0exp_opid] implement s0exp_sqid (sq, id) = let val loc = sq.s0taq_loc + id.i0de_loc in '{ s0exp_loc= loc, s0exp_node= S0Esqid (sq, id.i0de_sym) } end // end of [s0exp_sqid] (* ****** ****** *) implement s0exp_i0nt (x) = let in '{ s0exp_loc= x.token_loc, s0exp_node= S0Eint (x) } end // end of [s0exp_i0nt] implement s0exp_c0har (x) = let in '{ s0exp_loc= x.token_loc, s0exp_node= S0Echar (x) } end // end of [s0exp_c0har] (* ****** ****** *) implement s0exp_f0loat (x) = let in '{ s0exp_loc= x.token_loc, s0exp_node= S0Efloat (x) } end // end of [s0exp_f0loat] implement s0exp_s0tring (x) = let in '{ s0exp_loc= x.token_loc, s0exp_node= S0Estring (x) } end // end of [s0exp_string] (* ****** ****** *) implement s0exp_app (x1, x2) = let val loc = x1.s0exp_loc + x2.s0exp_loc in '{ s0exp_loc= loc, s0exp_node= S0Eapp (x1, x2) } end // end of [s0exp_app] (* ****** ****** *) implement s0exp_imp (t_beg, xs, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ s0exp_loc= loc, s0exp_node= S0Eimp (xs) } end // end of [s0exp_imp] implement s0exp_imp_nil (tok) = '{ s0exp_loc= tok.token_loc, s0exp_node= S0Eimp (list_nil) } // end of [s0exp_imp_nil] (* ****** ****** *) fn s0exp_lam ( loc: location , arg: s0marg, res: s0rtopt, body: s0exp ) : s0exp = '{ s0exp_loc= loc, s0exp_node = S0Elam (arg, res, body) } // end of [s0exp_lam] implement s0exp_lams ( t_beg, args, res, body ) = let val loc = t_beg.token_loc + body.s0exp_loc fun aux ( arg0: s0marg, args: s0marglst ) : s0exp = case+ args of | list_cons (arg, args) => s0exp_lam (loc, arg0, None (), aux (arg, args)) // end of [list_cons] | list_nil () => s0exp_lam (loc, arg0, res, body) // end of [val] in case+ args of | list_cons (arg, args) => aux (arg, args) | list_nil () => body end // end of [s0exp_lams] (* ****** ****** *) implement s0exp_list (t_beg, xs, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ s0exp_loc= loc, s0exp_node= S0Elist (xs) } end // end of [s0exp_list] implement s0exp_list2 (t_beg, xs1, xs2, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ s0exp_loc= loc, s0exp_node= S0Elist2 (xs1, xs2) } end // end of [s0exp_list2] (* ****** ****** *) implement s0exp_tyarr ( t_beg, elt, dim ) = let // val loc = t_beg.token_loc + dim.s0arrdim_loc // in '{ s0exp_loc= loc , s0exp_node= S0Etyarr(elt, dim.s0arrdim_dim) } end // end of [s0exp_tyarr] (* ****** ****** *) implement s0exp_tytup ( knd, t_beg, npf, xs, t_end ) = let // val loc = t_beg.token_loc + t_end.token_loc // in '{ s0exp_loc= loc, s0exp_node= S0Etytup(knd, npf, xs) } end // end of [s0exp_tytup] (* ****** ****** *) implement s0exp_tyrec ( knd, t_beg, npf, xs, t_end ) = let // val loc = t_beg.token_loc + t_end.token_loc // in '{ s0exp_loc= loc, s0exp_node= S0Etyrec(knd, npf, xs) } end // end of [s0exp_tyrec] implement s0exp_tyrec_ext ( name, t_beg, npf, xs, t_end ) = let // val loc = t_beg.token_loc + t_end.token_loc // in '{ s0exp_loc= loc, s0exp_node= S0Etyrec_ext(name, npf, xs) } end // end of [s0exp_tyrec] (* ****** ****** *) implement s0exp_uni ( t_beg, xs, t_end ) = let // val loc = t_beg.token_loc + t_end.token_loc // in '{ s0exp_loc= loc, s0exp_node= S0Euni(xs) } end // end of [s0exp_uni] implement s0exp_exi ( funres, t_beg, xs, t_end ) = let // val loc = t_beg.token_loc + t_end.token_loc // in '{ s0exp_loc= loc, s0exp_node= S0Eexi(funres, xs) } end // end of [s0exp_exi] (* ****** ****** *) implement s0exp_ann(s0e, s0t) = let // val loc = s0e.s0exp_loc + s0t.s0rt_loc // in '{ s0exp_loc= loc, s0exp_node= S0Eann(s0e, s0t) } end // end of [s0exp_ann] (* ****** ****** *) implement s0exp_d2ctype (t_beg, d2ctp, t_end) = let // val loc = t_beg.token_loc + t_end.token_loc // in '{ s0exp_loc= loc, s0exp_node= S0Ed2ctype(d2ctp) } end // end of [s0exp_d2ctype] (* ****** ****** *) implement labs0exp_make (lab, name, s0e) = SL0ABELED(lab, name, s0e) // end of [labs0exp_make] (* ****** ****** *) implement m0acarg_dyn ( t_beg, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ m0acarg_loc= loc, m0acarg_node= M0ACARGdyn (xs) } end // end of [m0acarg_dyn] implement m0acarg_sing (x) = '{ m0acarg_loc= x.i0de_loc, m0acarg_node= M0ACARGdyn (list_sing x) } // end of [m0acarg] implement m0acarg_sta ( t_beg, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ m0acarg_loc= loc, m0acarg_node= M0ACARGsta (xs) } end // end of [m0acarg_sta] (* ****** ****** *) implement d0cstarg_sta ( t_beg, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ d0cstarg_loc= loc , d0cstarg_node= D0CSTARGsta (xs) } end // end of [d0cstarg_sta] implement d0cstarg_dyn ( npf, t_beg, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ d0cstarg_loc= loc , d0cstarg_node= D0CSTARGdyn (npf, xs) } end // end of [d0cstarg_dyn] (* ****** ****** *) implement s0rtdef_make (id, def) = let (* val () = print "s0rtdef_make:\n" val () = begin print "def.loc = "; print def.s0rtext_loc; print_newline () end // end of [val] *) val loc = id.i0de_loc + def.s0rtext_loc in '{ s0rtdef_loc= loc , s0rtdef_sym= id.i0de_sym , s0rtdef_def= def } end // end of [s0rtdef_make] (* ****** ****** *) implement s0tacon_make (id, arg, def) = let val loc_id = id.i0de_loc val loc = (case+ def of | Some s0e => loc_id + s0e.s0exp_loc | None () => ( case+ list_last_opt (arg) of | ~Some_vt x => loc_id + x.a0msrt_loc | ~None_vt () => loc_id ) // end of [None] ) : location // end of [val] in '{ s0tacon_loc= loc , s0tacon_sym= id.i0de_sym , s0tacon_arg= arg , s0tacon_def= def } end // end of [s0tacon_make_some_some] (* ****** ****** *) // implement s0tacst_make ( id, arg, s0t, extopt ) = let val loc = id.i0de_loc + s0t.s0rt_loc in '{ // s0tacst_loc= loc , s0tacst_sym= id.i0de_sym , s0tacst_arg= arg , s0tacst_res= s0t // , s0tacst_extopt= extopt // } end // end of [s0tacst_make] // (* ****** ****** *) (* // // HX-2012-05-23: removed // implement s0tavar_make (id, s0t) = let val loc = id.i0de_loc + s0t.s0rt_loc in '{ s0tavar_loc= loc , s0tavar_sym= id.i0de_sym , s0tavar_srt= s0t } end // end of [s0tavar_make] *) (* ****** ****** *) implement t0kindef_make (id, def) = let val loc_id = id.i0de_loc val loc = loc_id + def.token_loc val def = s0exp_tkname (def) in '{ t0kindef_loc= loc , t0kindef_sym= id.i0de_sym , t0kindef_loc_id= loc_id , t0kindef_def= def } end // end of [t0kindef_make] (* ****** ****** *) implement s0expdef_make ( id, arg, res, def ) = let val loc_id = id.i0de_loc val loc = loc_id + def.s0exp_loc in '{ s0expdef_loc= loc , s0expdef_sym= id.i0de_sym , s0expdef_loc_id= loc_id , s0expdef_arg= arg , s0expdef_res= res , s0expdef_def= def } end // end of [s0expdef_make] (* ****** ****** *) implement s0aspdec_make ( qid, arg, res, def ) = let val loc = qid.sqi0de_loc + def.s0exp_loc in '{ s0aspdec_loc= loc , s0aspdec_qid= qid , s0aspdec_arg= arg , s0aspdec_res= res , s0aspdec_def= def } end // end of [s0aspdec_make] (* ****** ****** *) implement e0xndec_make (qua, id, arg) = let val loc_hd = (case+ qua of | list_cons (x, _) => x.q0marg_loc | list_nil () => id.i0de_loc ) : location val loc = (case+ arg of | Some s0e => loc_hd + s0e.s0exp_loc | None () => loc_hd ) : location // end of [val] val fil = $FIL.filename_get_current () in '{ e0xndec_loc= loc , e0xndec_fil= fil , e0xndec_sym= id.i0de_sym , e0xndec_qua= qua , e0xndec_arg= arg } end // end of [e0xndec_make] (* ****** ****** *) implement d0atcon_make (qua, id, ind, arg) = let // val loc_hd = ( case+ qua of | list_nil() => id.i0de_loc | list_cons(x, _) => x.q0marg_loc ) : location // val loc = ( case+ arg of | Some s0e => loc_hd + s0e.s0exp_loc | None () => ( case+ ind of | Some s0e => loc_hd + s0e.s0exp_loc | _ => loc_hd ) (* end of [None] *) ) : location // end of [val] // in '{ d0atcon_loc= loc , d0atcon_sym= id.i0de_sym , d0atcon_qua= qua , d0atcon_arg= arg , d0atcon_ind= ind } end // end of [d0atcon_make] (* ****** ****** *) implement d0atdec_make ( id, arg, con ) = let val loc_id = id.i0de_loc val loc = (case+ list_last_opt (con) of ~Some_vt (x) => loc_id + x.d0atcon_loc | ~None_vt _ => loc_id ) : location // end of [val] val loc_hd = (case+ list_last_opt (arg) of ~Some_vt (x) => loc_id + x.a0msrt_loc | ~None_vt _ => loc_id ) : location // end of [val] val fil = $FIL.filename_get_current () in '{ d0atdec_loc= loc , d0atdec_loc_hd= loc_hd , d0atdec_fil= fil , d0atdec_sym= id.i0de_sym , d0atdec_arg= arg , d0atdec_con= con } end // end of [d0atdec_make] (* ****** ****** *) implement dcstextdef_sta (sym) = DCSTEXTDEFsome_sta ($SYM.symbol_get_name (sym)) (* ****** ****** *) // implement dcstextdef_is_ext(x) = ( case+ x of DCSTEXTDEFsome_ext _ => true | _ => false ) // end of [dcstextdef_is_ext] implement dcstextdef_is_mac(x) = ( case+ x of DCSTEXTDEFsome_mac _ => true | _ => false ) // end of [dcstextdef_is_mac] implement dcstextdef_is_sta(x) = ( case+ x of DCSTEXTDEFsome_sta _ => true | _ => false ) // end of [dcstextdef_is_sta] // (* ****** ****** *) implement dcstextdef_is_mainats (x) = let // extern fun test_prefix ( string: string, prfx: string ) :<> bool = "ext#patsopt_string_test_prefix" // in // case+ x of | DCSTEXTDEFsome_ext (name) => test_prefix (name, "mainats") | _ (*non-extern*) => false // end // end of [dcstextdef_is_mainats] (* ****** ****** *) implement d0cstdec_make ( id, arg, eff, res, extopt ) = let val fil = $FIL.filename_get_current () val loc = ( case+ extopt of | Some s0 => id.i0de_loc + s0.token_loc | None () => id.i0de_loc + res.s0exp_loc ) : location // end of [val] in '{ d0cstdec_loc= loc , d0cstdec_fil= fil , d0cstdec_sym= id.i0de_sym , d0cstdec_arg= arg , d0cstdec_eff= eff , d0cstdec_res= res , d0cstdec_extopt= extopt } end // end of [d0cstdec_make] (* ****** ****** *) implement p0at_i0de (id) = '{ p0at_loc= id.i0de_loc, p0at_node= P0Tide id.i0de_sym } (* end of [p0at_i0de] *) implement p0at_dqid (ent1, ent2) = let val loc = ent1.d0ynq_loc + ent2.i0de_loc in '{ p0at_loc= loc, p0at_node= P0Tdqid (ent1, ent2.i0de_sym) } end // end of [p0at_ide] implement p0at_opid (x1, x2) = let val loc = x1.token_loc + x2.i0de_loc in '{ p0at_loc= loc, p0at_node= P0Topid (x2.i0de_sym) } end // end of [p0at_opid] (* ****** ****** *) implement p0at_i0nt (tok) = '{ p0at_loc= tok.token_loc, p0at_node= P0Tint (tok) } implement p0at_c0har (tok) = '{ p0at_loc= tok.token_loc, p0at_node= P0Tchar (tok) } implement p0at_f0loat (tok) = '{ p0at_loc= tok.token_loc, p0at_node= P0Tfloat (tok) } implement p0at_s0tring (tok) = '{ p0at_loc= tok.token_loc, p0at_node= P0Tstring (tok) } (* ****** ****** *) implement p0at_app (p0t1, p0t2) = let val loc = p0t1.p0at_loc + p0t2.p0at_loc in '{ p0at_loc= loc, p0at_node= P0Tapp (p0t1, p0t2) } end // end of [p0at_app] (* ****** ****** *) implement p0at_list (t_beg, npf, xs, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ p0at_loc= loc, p0at_node= P0Tlist (npf, xs) } end // end of [p0at_list] (* ****** ****** *) implement p0at_lst ( lin, t_beg, p0ts, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ p0at_loc= loc, p0at_node= P0Tlst (lin, p0ts) } end // end of [p0at_lst] (* // // HX-2014-07: // a list-pattern // like '[x1, x2] is no longer supported // implement p0at_lst_quote ( t_beg, p0ts, t_end ) = p0at_lst (0(*lin*), t_beg, p0ts, t_end) *) (* ****** ****** *) implement p0at_tup ( knd, t_beg, npf, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ p0at_loc= loc, p0at_node= P0Ttup (knd, npf, xs) } end // end of [p0at_tup] implement p0at_rec ( knd, t_beg, npf, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ p0at_loc= loc, p0at_node= P0Trec (knd, npf, xs) } end // end of [p0at_rec] (* ****** ****** *) implement p0at_free (t_tilde, p0t) = let val loc = t_tilde.token_loc + p0t.p0at_loc in '{ p0at_loc= loc, p0at_node= P0Tfree (p0t) } end // end of [p0at_free] implement p0at_unfold (t_tilde, p0t) = let val loc = t_tilde.token_loc + p0t.p0at_loc in '{ p0at_loc= loc, p0at_node= P0Tunfold (p0t) } end // end of [p0at_unfold] (* ****** ****** *) implement p0at_svararg (t_beg, arg, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ p0at_loc= loc, p0at_node= P0Tsvararg (arg) } end // end of [p0at_svararg] implement p0at_exist (t_beg, qua, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ p0at_loc= loc, p0at_node= P0Texist (qua) } end // end of [p0at_exist] (* ****** ****** *) implement p0at_refas (p0t1, p0t2) = let val loc1 = p0t1.p0at_loc val loc = loc1 + p0t2.p0at_loc in // case+ p0t1.p0at_node of | P0Tide (id) => '{ p0at_loc= loc , p0at_node= P0Trefas (id, loc1, p0t2) } // end of [P0Tide] | _ => let val err = parerr_make (p0t1.p0at_loc, PE_p0at_as) val () = the_parerrlst_add (err) in p0at_err (loc) end end // end of [p0at_as] (* ****** ****** *) implement p0at_ann (p0t, s0e) = let val loc = p0t.p0at_loc + s0e.s0exp_loc in '{ p0at_loc= loc, p0at_node= P0Tann (p0t, s0e) } end // end of [p0at_ann] (* ****** ****** *) implement p0at_err (loc) = '{ p0at_loc= loc, p0at_node= P0Terr () } (* ****** ****** *) implement labp0at_norm (l, p) = let val loc = l.l0ab_loc + p.p0at_loc in '{ labp0at_loc= loc, labp0at_node= LABP0ATnorm (l, p) } end // end of [labp0at_norm] implement labp0at_omit (tok) = '{ labp0at_loc= tok.token_loc, labp0at_node= LABP0ATomit () } // end of [labp0at_omit] (* ****** ****** *) implement i0mparg_sarglst_none () = I0MPARG_sarglst (list_nil) // end of [i0mparg_sarglst_none] implement i0mparg_sarglst_some (t_beg, xs, t_end) = I0MPARG_sarglst (xs) // end of [i0mparg_sarglst] implement i0mparg_svararglst (xs) = I0MPARG_svararglst (xs) (* ****** ****** *) implement t0mpmarg_make (tok, arg) = let val loc = tok.token_loc val loc = ( case+ list_last_opt (arg) of | ~Some_vt (x) => loc + x.s0exp_loc | ~None_vt () => $LOC.location_leftmost (loc) ) : location // end of [val] in '{ t0mpmarg_loc= loc, t0mpmarg_arg= arg } end // end of [t0mpmarg_make] implement impqi0de_make_none (qid) = '{ impqi0de_loc= qid.dqi0de_loc , impqi0de_qua= qid.dqi0de_qua , impqi0de_sym= qid.dqi0de_sym , impqi0de_arg= list_nil () } // end of [impqi0de_make_none] implement impqi0de_make_some (qid, args, t_gt) = let val loc_qid = qid.dqi0de_loc val loc = loc_qid + t_gt.token_loc in '{ impqi0de_loc= loc , impqi0de_qua= qid.dqi0de_qua , impqi0de_sym= qid.dqi0de_sym , impqi0de_arg= args } end // end of [impqid0de_make_some] (* ****** ****** *) implement f0arg_dyn (p0t) = '{ f0arg_loc= p0t.p0at_loc, f0arg_node= F0ARGdyn (p0t) } implement f0arg_sta1 (t_beg, qua, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ f0arg_loc= loc, f0arg_node= F0ARGsta1 (qua) } end // en dof [f0arg_sta1] implement f0arg_sta2 (t_beg, arg, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ f0arg_loc= loc, f0arg_node= F0ARGsta2 (arg) } end // en dof [f0arg_sta2] implement f0arg_met (t_beg, s0es, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ f0arg_loc= loc, f0arg_node= F0ARGmet3 (s0es) } end // end of [f0arg_met] implement f0arg_met_nil (tok) = '{ f0arg_loc= tok.token_loc, f0arg_node= F0ARGmet3 (list_nil) } (* end of [f0arg_met_nil] *) (* ****** ****** *) implement s0elop_make_dot (t) = '{ s0elop_loc= t.token_loc, s0elop_knd= 0(*knd*) } implement s0elop_make_minusgt (t) = '{ s0elop_loc= t.token_loc, s0elop_knd= 1(*knd*) } (* ****** ****** *) implement i0nvarg_make (id, opt) = let val loc = (case+ opt of | Some x => id.i0de_loc + x.s0exp_loc | None _ => id.i0de_loc ) : location // end of [val] in '{ i0nvarg_loc= loc, i0nvarg_sym= id.i0de_sym, i0nvarg_typ= opt } end // end of [i0nvarg_make] (* ****** ****** *) implement i0nvresstate_make_none (loc) = '{ i0nvresstate_loc= loc , i0nvresstate_qua= None (), i0nvresstate_arg= list_nil () } // end of [i0nvresstate_make_none] implement i0nvresstate_make_some (t_beg, qua, arg, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ i0nvresstate_loc= loc , i0nvresstate_qua= qua, i0nvresstate_arg= arg } end // end of [i0nvresstate_some] (* ****** ****** *) implement loopi0nv_make ( qua, met, arg, res ) = '{ loopi0nv_qua= qua , loopi0nv_met= met , loopi0nv_arg= arg , loopi0nv_res= res } // end of [loopi0nv_make] (* ****** ****** *) implement ifhead_make (t_if, invopt) = let val inv = ( case+ invopt of | Some inv => inv | None () => i0nvresstate_make_none (t_if.token_loc) ) : i0nvresstate // end of [val] in '{ ifhead_tok= t_if, ifhead_inv= inv } end // end of [ifhead_make] implement sifhead_make (t_sif, invopt) = let val inv = ( case+ invopt of | Some inv => inv | None () => i0nvresstate_make_none (t_sif.token_loc) ) : i0nvresstate // end of [val] in '{ sifhead_tok= t_sif, sifhead_inv= inv } end // end of [sifhead_make] (* ****** ****** *) implement casehead_make (t_case, invopt) = let val inv = ( case+ invopt of | Some inv => inv | None () => i0nvresstate_make_none (t_case.token_loc) ) : i0nvresstate // end of [val] in '{ casehead_tok= t_case, casehead_inv= inv } end // end of [casehead_make] implement scasehead_make (t_scase, invopt) = let val inv = ( case+ invopt of | Some inv => inv | None () => i0nvresstate_make_none (t_scase.token_loc) ) : i0nvresstate // end of [val] in '{ scasehead_tok= t_scase, scasehead_inv= inv } end // end of [scasehead_make] (* ****** ****** *) implement loophead_make_none (t_loop) = '{ loophead_tok= t_loop, loophead_inv= None () } // end of [loophead_make_none] implement loophead_make_some (t_loop, inv, t_eqgt) = let val loc = t_loop.token_loc + t_eqgt.token_loc in '{ loophead_tok= t_loop, loophead_inv= Some (inv) } end // end of [loophead_make_some] (* ****** ****** *) implement tryhead_make (t_try, invopt) = let val inv = ( case+ invopt of | Some (inv) => inv | None () => i0nvresstate_make_none (t_try.token_loc) ) : i0nvresstate // end of [val] in '{ tryhead_tok= t_try, tryhead_inv= inv } end // end of [tryhead_make] (* ****** ****** *) // // HX: dynamic expressions // (* ****** ****** *) implement d0exp_ide (id) = '{ d0exp_loc= id.i0de_loc, d0exp_node= D0Eide (id.i0de_sym) } // end of [d0exp_ide] implement d0exp_opid (x1, x2) = let val loc = x1.token_loc + x2.i0de_loc in '{ d0exp_loc= loc, d0exp_node= D0Eopid (x2.i0de_sym) } end // end of [d0exp_opid] implement d0exp_dqid (qid) = let val dq = qid.dqi0de_qua and sym = qid.dqi0de_sym in '{ d0exp_loc= qid.dqi0de_loc, d0exp_node= D0Edqid (dq, sym) } end // end of [d0exp_dqid] (* ****** ****** *) implement d0exp_idext (id) = '{ d0exp_loc= id.i0de_loc, d0exp_node= D0Eidext (id.i0de_sym) } // end of [d0exp_idext] (* ****** ****** *) implement d0exp_i0nt (x) = let in '{ d0exp_loc= x.token_loc, d0exp_node= D0Eint (x) } end // end of [d0exp_i0nt] implement d0exp_c0har (x) = let in '{ d0exp_loc= x.token_loc, d0exp_node= D0Echar (x) } end // end of [d0exp_c0har] implement d0exp_f0loat (x) = let in '{ d0exp_loc= x.token_loc, d0exp_node= D0Efloat (x) } end // end of [d0exp_f0loat] implement d0exp_s0tring (x) = let in '{ d0exp_loc= x.token_loc, d0exp_node= D0Estring (x) } end // end of [d0exp_s0tring] (* ****** ****** *) implement d0exp_empty (loc) = '{ d0exp_loc= loc, d0exp_node= D0Eempty () } (* ****** ****** *) implement d0exp_MYFIL (tok) = '{ d0exp_loc= tok.token_loc , d0exp_node= D0Ecstsp (CSTSPmyfil()) } implement d0exp_MYLOC (tok) = '{ d0exp_loc= tok.token_loc , d0exp_node= D0Ecstsp (CSTSPmyloc()) } implement d0exp_MYFUN (tok) = '{ d0exp_loc= tok.token_loc , d0exp_node= D0Ecstsp (CSTSPmyfun()) } (* ****** ****** *) implement d0exp_tyrep (t_beg, s0e, t_end) = let // val loc = t_beg.token_loc + t_end.token_loc // in '{ d0exp_loc= loc, d0exp_node= D0Etyrep(s0e) } end // end of [d0exp_tyrep] (* ****** ****** *) implement d0exp_literal (t_beg, lit, t_end) = let // val loc = t_beg.token_loc + t_end.token_loc // in '{ d0exp_loc= loc, d0exp_node= D0Eliteral (lit) } end // end of [d0exp_literal] (* ****** ****** *) implement d0exp_extval ( t_beg, _type, rep, t_end ) = let // val-T_STRING(rep) = rep.token_node val loc = t_beg.token_loc + t_end.token_loc // in '{ d0exp_loc= loc , d0exp_node= D0Eextval (_type, rep) } end // end of [d0exp_extval] implement d0exp_extfcall ( t_beg, _type, _fun, _arg, t_end ) = let val-T_STRING(_fun) = _fun.token_node val loc = t_beg.token_loc + t_end.token_loc in '{ d0exp_loc= loc , d0exp_node= D0Eextfcall (_type, _fun, _arg) } end // end of [d0exp_extfcall] implement d0exp_extmcall ( t_beg, _type, _obj, _mtd, _arg, t_end ) = let val-T_STRING(_mtd) = _mtd.token_node val loc = t_beg.token_loc + t_end.token_loc in '{ d0exp_loc= loc , d0exp_node= D0Eextmcall (_type, _obj, _mtd, _arg) } end // end of [d0exp_extmcall] (* ****** ****** *) implement d0exp_foldat (t_foldat, d0es) = let // val opt = list_last_opt (d0es) val loc = ( case+ opt of | ~None_vt _ => t_foldat.token_loc | ~Some_vt x => t_foldat.token_loc + x.d0exp_loc ) : location // end of [val] in '{ d0exp_loc= loc, d0exp_node= D0Efoldat d0es } end (* end of [d0exp_foldat] *) implement d0exp_freeat (t_freeat, d0es) = let // val opt = list_last_opt (d0es) // val loc = ( case+ opt of | ~None_vt _ => t_freeat.token_loc | ~Some_vt x => t_freeat.token_loc + x.d0exp_loc ) : location // end of [val] // in '{ d0exp_loc= loc, d0exp_node= D0Efreeat d0es } end (* end of [d0exp_freeat] *) (* ****** ****** *) implement d0exp_tmpid (qid, arg, t_gt) = let val loc_qid = qid.dqi0de_loc val loc = loc_qid + t_gt.token_loc in '{ d0exp_loc= loc, d0exp_node= D0Etmpid (qid, arg) } end // end of [d0exp_tmpid] (* ****** ****** *) implement d0exp_let_seq ( t_let, d0cs, t_in, d0es, t_end ) = let val loc = t_let.token_loc + t_end.token_loc val body = d0exp_seq (t_in, d0es, t_end) in '{ d0exp_loc= loc, d0exp_node= D0Elet (d0cs, body) } end // end of [d0exp_let_seq] implement d0exp_declseq (t_beg, xs, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ d0exp_loc= loc, d0exp_node= D0Edeclseq (xs) } end // end of [d0exp_declseq] (* ****** ****** *) implement d0exp_where (d0e, d0cs, t_end) = let val loc = d0e.d0exp_loc + t_end.token_loc in '{ d0exp_loc= loc, d0exp_node= D0Ewhere (d0e, d0cs) } end // end of [d0exp_where] (* ****** ****** *) implement d0exp_app (d0e1, d0e2) = let val loc = d0e1.d0exp_loc + d0e2.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Eapp (d0e1, d0e2) } end // end of [d0exp_app] (* ****** ****** *) implement d0exp_list (t_beg, npf, xs, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ d0exp_loc= loc, d0exp_node= D0Elist (npf, xs) } end // end of [d0exp_list] (* ****** ****** *) implement d0exp_ifhead ( hd, _cond, _then, _else ) = let val t_if = hd.ifhead_tok val loc = (case+ _else of | Some x => t_if.token_loc + x.d0exp_loc | None _ => t_if.token_loc + _then.d0exp_loc ) : location // end of [val] in '{ d0exp_loc= loc , d0exp_node= D0Eifhead (hd, _cond, _then, _else) } end // end of [d0exp_ifhead] implement d0exp_sifhead ( hd, _cond, _then, _else ) = let val t_sif = hd.sifhead_tok val loc = t_sif.token_loc + _else.d0exp_loc in '{ d0exp_loc= loc , d0exp_node= D0Esifhead (hd, _cond, _then, _else) } end // end of [d0exp_sifhead] (* ****** ****** *) implement d0exp_ifcasehd (ifhd, ifcls) = let val tok = ifhd.ifhead_tok // end of [val] val loc = tok.token_loc val opt = list_last_opt (ifcls) val loc = ( case+ opt of | ~Some_vt x => (loc + x.i0fcl_loc) | ~None_vt() => loc ) : location // end of [val] in '{ d0exp_loc= loc, d0exp_node= D0Eifcasehd (ifhd, ifcls) } end // end of [d0exp_ifcasehd] (* ****** ****** *) implement d0exp_casehead ( hd, d0e, t_of, c0ls ) : d0exp = let val t_case = hd.casehead_tok val loc_hd = t_case.token_loc val loc = ( case+ list_last_opt (c0ls) of | ~Some_vt x => loc_hd + x.c0lau_loc | ~None_vt _ => loc_hd + t_of.token_loc ) : location in '{ d0exp_loc= loc, d0exp_node= D0Ecasehead (hd, d0e, c0ls) } end // end of [d0exp_casehead] implement d0exp_scasehead ( hd, d0e, t_of, c0ls ) : d0exp = let val t_scase = hd.scasehead_tok val loc_hd = t_scase.token_loc val loc = ( case+ list_last_opt (c0ls) of | ~Some_vt x => loc_hd + x.sc0lau_loc | ~None_vt _ => loc_hd + t_of.token_loc ) : location in '{ d0exp_loc= loc, d0exp_node= D0Escasehead (hd, d0e, c0ls) } end // end of [d0exp_scasehead] (* ****** ****** *) implement d0exp_lam ( knd, t_lam, arg, res, eff, body ) = let val loc = t_lam.token_loc + body.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Elam (knd, arg, res, eff, body) } end // end of [d0exp_lam] implement d0exp_fix ( knd, t_fix, fid, arg, res, eff, body ) = let val loc = t_fix.token_loc + body.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Efix (knd, fid, arg, res, eff, body) } end // end of [d0exp_fix] (* ****** ****** *) implement d0exp_delay (knd, tok, body) = let val loc = tok.token_loc + body.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Edelay (knd, body) } end // end of [d0exp_delay] (* ****** ****** *) implement d0exp_lst ( lin, t_beg, elt, t_lp, d0es, t_rp ) = let val loc = t_beg.token_loc + t_rp.token_loc val d0e_elts = d0exp_list (t_lp, ~1(*npf*), d0es, t_rp) in '{ d0exp_loc= loc, d0exp_node= D0Elst (lin, elt, d0e_elts) } end // end of [d0exp_lst] implement d0exp_lst_quote (t_beg, d0es, t_end) = d0exp_lst (0(*lin*), t_beg, None(*elt*), t_beg, d0es, t_end) // end of [d0exp_lst_quote] (* ****** ****** *) implement d0exp_tup ( knd, t_beg, npf, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ d0exp_loc= loc, d0exp_node= D0Etup(knd, npf, xs) } end // end of [d0exp_tup] implement d0exp_rec ( knd, t_beg, npf, xs, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ d0exp_loc= loc, d0exp_node= D0Erec(knd, npf, xs) } end // end of [d0exp_rec] (* ****** ****** *) implement d0exp_arrsub (qid, ind) = let val loc_ind = ind.d0arrind_loc val loc = qid.dqi0de_loc + loc_ind in '{ d0exp_loc= loc , d0exp_node= D0Earrsub (qid, loc_ind, ind.d0arrind_ind) } end // end of [d0exp_arrsub] implement d0exp_arrinit ( t_beg, elt, dim, init, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc in '{ d0exp_loc= loc, d0exp_node= D0Earrinit (elt, dim, init) } end // end of [d0exp_arrinit] implement d0exp_arrpsz ( t_beg, os0e, t_lp, d0es, t_rp ) = let val loc = t_beg.token_loc + t_rp.token_loc val d0e_init = ( case+ d0es of | list_cons (d0e, list_nil ()) => d0e | _ => d0exp_list (t_lp, ~1(*npf*), d0es, t_rp) ) : d0exp // end of [val] in '{ d0exp_loc= loc, d0exp_node= D0Earrpsz (os0e, d0e_init) } end // end of [d0exp_arrpsz] (* ****** ****** *) implement d0exp_seq (t_beg, d0es, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in case+ d0es of | list_cons _ => '{ d0exp_loc= loc, d0exp_node= D0Eseq d0es } // end of [cons] | list_nil _ => d0exp_empty (loc) end // end of [d0exp_seq] (* ****** ****** *) implement d0exp_ptrof (t_addrat) = '{ d0exp_loc= t_addrat.token_loc, d0exp_node= D0Eptrof () } // end of [d0exp_ptrof] implement d0exp_viewat (t_viewat) = '{ d0exp_loc= t_viewat.token_loc, d0exp_node= D0Eviewat () } // end of [d0exp_viewat] (* ****** ****** *) implement d0exp_sel_lab (sel, lab) = let val loc = sel.s0elop_loc + lab.l0ab_loc in '{ d0exp_loc= loc, d0exp_node= D0Esel_lab (sel.s0elop_knd, lab.l0ab_lab) } end // end of [d0exp_sel_lab] implement d0exp_sel_ind (sel, ind) = let val loc = sel.s0elop_loc + ind.d0arrind_loc in '{ d0exp_loc= loc, d0exp_node= D0Esel_ind (sel.s0elop_knd, ind.d0arrind_ind) } end // end of [d0exp_sel_ind] implement d0exp_sel_int (tok) = let val knd = 0 // HX: dot selection val-T_DOTINT (int) = tok.token_node val lab = $LAB.label_make_int (int) in '{ d0exp_loc= tok.token_loc, d0exp_node= D0Esel_lab (knd, lab) } end // end of [d0exp_sel_int] (* ****** ****** *) implement d0exp_raise (tok, ent2) = let val loc = tok.token_loc + ent2.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Eraise (ent2) } end // end of [d0exp_raise] (* ****** ****** *) implement d0exp_effmask (tok, eff, body) = let val loc = tok.token_loc + body.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Eeffmask (eff, body) } end // end of [d0exp_effmask] implement d0exp_effmask_arg (knd, tok, body) = let val loc = tok.token_loc + body.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Eeffmask_arg (knd, body) } end // end of [d0exp_effmask_arg] (* ****** ****** *) implement d0exp_vararg (t_beg, d0es, t_end) = let // val loc = t_beg.token_loc + t_end.token_loc // in '{ d0exp_loc= loc, d0exp_node= D0Evararg(d0es) } end // end of [d0exp_vararg] (* ****** ****** *) implement d0exp_vcopyenv (knd, tok, ent2) = let val loc = tok.token_loc + ent2.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Evcopyenv (knd, ent2) } end // end of [d0exp_vcopyenv] (* ****** ****** *) implement d0exp_showtype (tok, ent2) = let val loc = tok.token_loc + ent2.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Eshowtype (ent2) } end // end of [d0exp_showtype] (* ****** ****** *) implement d0exp_tempenver (tok, ent2) = let val loc = tok.token_loc + ent2.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Etempenver (ent2) } end // end of [d0exp_tempenver] (* ****** ****** *) implement d0exp_sexparg (t_beg, s0a, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in '{ d0exp_loc= loc, d0exp_node= D0Esexparg s0a } end // end of [d0exp_sexparg] implement d0exp_exist ( t_beg, s0a, t_bar, d0e, t_end ) = let val loc = t_beg.token_loc + t_end.token_loc val loc_qua = t_beg.token_loc + t_bar.token_loc in '{ d0exp_loc= loc, d0exp_node= D0Eexist (loc_qua, s0a, d0e) } end // end of [d0exp_exist] (* ****** ****** *) implement d0exp_forhead ( hd, itp, body ) = let val t_loop = hd.loophead_tok val loc_inv = t_loop.token_loc val loc = loc_inv + body.d0exp_loc (* val () = begin $LOC.print_location loc; print ": d0exp_for"; print_newline () end // end of [val] *) val inv = hd.loophead_inv in '{ d0exp_loc= loc , d0exp_node= D0Efor (inv, loc_inv, itp, body) } end // end of [d0exp_forhead] (* ****** ****** *) implement d0exp_whilehead ( hd, test, body ) = let val t_loop = hd.loophead_tok val loc_inv = t_loop.token_loc val loc = loc_inv + body.d0exp_loc (* val () = begin $LOC.print_location loc; print ": d0exp_while"; print_newline () end // end of [val] *) val inv = hd.loophead_inv in '{ d0exp_loc= loc , d0exp_node= D0Ewhile (inv, loc_inv, test, body) } end // end of [d0exp_whilehead] (* ****** ****** *) implement d0exp_loopexn (knd, tok) = '{ d0exp_loc= tok.token_loc, d0exp_node= D0Eloopexn (knd) } // end of [d0exp_loopexn] (* ****** ****** *) implement d0exp_trywith_seq (hd, d0es, t_with, c0ls) = let val t_try = hd.tryhead_tok val loc = ( case+ list_last_opt (c0ls) of | ~Some_vt x => t_try.token_loc + x.c0lau_loc | ~None_vt _ => t_try.token_loc + t_with.token_loc ) : location // end of [val] val d0e = d0exp_seq (t_try, d0es, t_with) in '{ d0exp_loc= loc, d0exp_node= D0Etrywith (hd, d0e, c0ls) } end // end of [d0exp_trywith] (* ****** ****** *) implement d0exp_ann (d0e, s0e) = let val loc = d0e.d0exp_loc + s0e.s0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Eann (d0e, s0e) } end // end of [d0exp_ann] (* ****** ****** *) implement d0exp_solassert (tok, ent2) = let val loc = tok.token_loc + ent2.d0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Esolassert(ent2) } end // end of [d0exp_solassert] implement d0exp_solverify (tok, ent2) = let val loc = tok.token_loc + ent2.s0exp_loc in '{ d0exp_loc= loc, d0exp_node= D0Esolverify(ent2) } end // end of [d0exp_solverify] (* ****** ****** *) local fun d0exp_macsyn ( loc: location, knd: macsynkind, d0e: d0exp ): d0exp = '{ d0exp_loc= loc, d0exp_node= D0Emacsyn (knd, d0e) } // end of [d0exp_macsyn] in (* in of [local] *) implement d0exp_macsyn_cross (t_beg, d0e, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in d0exp_macsyn (loc, MSKxstage, d0e) end // end of [d0exp_macsyn_cross] implement d0exp_macsyn_decode (t_beg, d0e, t_end) = let val loc = t_beg.token_loc + t_end.token_loc in d0exp_macsyn (loc, MSKdecode, d0e) end // end of [d0exp_macsyn_decode] implement d0exp_macsyn_encode_seq (t_beg, d0es, t_end) = let val d0e = d0exp_seq (t_beg, d0es, t_end) in d0exp_macsyn (d0e.d0exp_loc, MSKencode, d0e) end // end of [d0exp_macsyn_encode_seq] end // end of [local] (* ****** ****** *) implement labd0exp_make (ent1, ent2) = DL0ABELED (ent1, ent2) (* ****** ****** *) implement d0arrind_sing (d0es, t_rbracket) = '{ d0arrind_loc= t_rbracket.token_loc, d0arrind_ind= list_sing (d0es) } // end of [d0arrind_sing] implement d0arrind_cons (d0es, ind) = '{ d0arrind_loc= ind.d0arrind_loc , d0arrind_ind= list_cons (d0es, ind.d0arrind_ind) } // end of [d0arrind_cons] (* ****** ****** *) implement initestpost_make ( t_beg , init, t_sep1, test, t_sep2, post , t_end ) = let val init = d0exp_seq (t_beg, init, t_sep1) val test = d0exp_seq (t_sep1, test, t_sep2) val post = d0exp_seq (t_sep2, post, t_end) in '{ itp_init= init, itp_test= test, itp_post= post } end // end of [initestpost_make] (* ****** ****** *) implement gm0at_make (d0e, p0topt) = let val loc = ( case+ p0topt of | Some x => d0e.d0exp_loc + x.p0at_loc | None _ => d0e.d0exp_loc ) : location // end of [val] in '{ gm0at_loc= loc, gm0at_exp= d0e, gm0at_pat= p0topt } end // end of [gm0at_make] implement guap0at_make (p0t, matopt) = let val xs = ( case+ matopt of Some xs => xs | None () => list_nil ) : gm0atlst val loc = p0t.p0at_loc val loc = ( case+ list_last_opt (xs) of | ~Some_vt x => loc + x.gm0at_loc | ~None_vt () => loc ) : location // end of [val] in '{ guap0at_loc= loc, guap0at_pat= p0t, guap0at_gua= xs } end // end of [guap0at_make_some] (* ****** ****** *) implement c0lau_make (gp0t, seq, neg, body) = let val loc = gp0t.guap0at_loc + body.d0exp_loc in '{ c0lau_loc= loc , c0lau_pat= gp0t , c0lau_seq= seq , c0lau_neg= neg , c0lau_body= body } end // end of [c0lau_make] (* ****** ****** *) implement sp0at_cstr (qid, xs, t_end) = let val loc = qid.sqi0de_loc + t_end.token_loc in '{ sp0at_loc= loc, sp0at_node= SP0Tcstr (qid, xs) } end // end of [s0pat_cstr] implement sc0lau_make (sp0t, d0e) = let val loc = sp0t.sp0at_loc + d0e.d0exp_loc in '{ sc0lau_loc= loc, sc0lau_pat= sp0t, sc0lau_body= d0e } end // end of [sc0lau_make] (* ****** ****** *) implement i0fcl_make (test, body) = let // val loc = test.d0exp_loc + body.d0exp_loc // in '{ i0fcl_loc= loc , i0fcl_test= test , i0fcl_body= body } end // end of [i0fcl_make] (* ****** ****** *) implement m0acdef_make (id, arg, def) = let val loc = id.i0de_loc + def.d0exp_loc in '{ m0acdef_loc= loc , m0acdef_sym= id.i0de_sym , m0acdef_arg= arg , m0acdef_def= def } end // end of [m0acdef_make] (* ****** ****** *) implement v0aldec_make (p0t, def, ann) = let val loc = (case+ ann of | WITHT0YPEnone () => p0t.p0at_loc + def.d0exp_loc | WITHT0YPEsome (knd, s0e) => p0t.p0at_loc + s0e.s0exp_loc ) : location // end of [val] in '{ v0aldec_loc= loc, v0aldec_pat= p0t, v0aldec_def= def, v0aldec_ann= ann } end // end of [v0aldec_make] (* ****** ****** *) implement f0undec_make ( fid, arg, eff, res, def, ann ) = let // val loc = ( case+ ann of | WITHT0YPEnone () => fid.i0de_loc + def.d0exp_loc | WITHT0YPEsome (knd, s0e) => fid.i0de_loc + s0e.s0exp_loc ) : location // end of [val] // in '{ f0undec_loc= loc , f0undec_sym= fid.i0de_sym , f0undec_sym_loc= fid.i0de_loc , f0undec_arg= arg , f0undec_eff= eff , f0undec_res= res , f0undec_def= def , f0undec_ann= ann } end // end of [f0undec_make] (* ****** ****** *) implement v0ardec_make ( tokopt, id, pfat, s0eopt, init ) = let // var knd: int = 0 // val loc_hd = ( case+ tokopt of | None () => id.i0de_loc | Some tok => let val () = knd := 1 in tok.token_loc end // end of [Some] ) : location // end of [val] // val loc_tl = ( case+ init of | Some d0e => d0e.d0exp_loc | None () => ( case+ pfat of | Some id2 => id2.i0de_loc | None () => ( case+ s0eopt of | Some s0e => s0e.s0exp_loc | None () => id.i0de_loc ) // end of [None] ) ) : location // end of [val] // val loc = loc_hd + loc_tl // in '{ v0ardec_loc= loc , v0ardec_knd= knd , v0ardec_sym= id.i0de_sym , v0ardec_sym_loc= id.i0de_loc , v0ardec_pfat= pfat , v0ardec_type= s0eopt // type annotation , v0ardec_init= init // value for initialization } end // end of [v0ardec_make] (* ****** ****** *) implement i0mpdec_make ( qid, arg, res, def ) = let // val loc = qid.impqi0de_loc + def.d0exp_loc // in '{ i0mpdec_loc= loc , i0mpdec_qid= qid , i0mpdec_arg= arg , i0mpdec_res= res , i0mpdec_def= def } end // end of [i0mpdec_make] (* ****** ****** *) local fun loop{n:nat} .. ( tok: token, id: i0de, ids: list (i0de, n) ) : location = case+ ids of | list_cons (id, ids) => loop (tok, id, ids) | list_nil () => tok.token_loc + id.i0de_loc // end of [loop] in (* in of [local] *) implement d0ecl_fixity (tok, prec, ids) = let // val- T_FIXITY(knd) = tok.token_node // val fxty = ( case+ knd of | FXK_infix() => F0XTYinf(prec, $FIX.ASSOCnon()) | FXK_infixl() => F0XTYinf(prec, $FIX.ASSOClft()) | FXK_infixr() => F0XTYinf(prec, $FIX.ASSOCrgt()) // | FXK_prefix() => F0XTYpre (prec) | FXK_postfix() => F0XTYpos (prec) // ) : f0xty // end of [val] // val loc = ( case+ ids of | list_cons (id, ids) => loop (tok, id, ids) | list_nil () => tok.token_loc ) : location // end of [val] // in '{ d0ecl_loc= loc, d0ecl_node= D0Cfixity (fxty, ids) } end // end of [d0ecl_infix] implement d0ecl_nonfix (tok, ids) = let val-T_NONFIX () = tok.token_node val loc = (case+ ids of | list_cons (id, ids) => loop (tok, id, ids) | list_nil () => tok.token_loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cnonfix (ids) } end // end of [d0ecl_nonfix] (* ****** ****** *) implement d0ecl_symintr (tok, ids) = let val-T_SYMINTR () = tok.token_node val loc = (case+ ids of | list_cons (id, ids) => loop (tok, id, ids) | list_nil () => tok.token_loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Csymintr (ids) } end // end of [d0ecl_symintr] implement d0ecl_symelim (tok, ids) = let val-T_SYMELIM () = tok.token_node val loc = (case+ ids of | list_cons (id, ids) => loop (tok, id, ids) | list_nil () => tok.token_loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Csymelim (ids) } end // end of [d0ecl_symelim] end // end of [local] implement d0ecl_overload (tok, id, dqid, opt) = let // val loc1 = tok.token_loc val loc2 = ( case+ opt of | Some x => x.token_loc | None () => dqid.dqi0de_loc ) : location // end of [val] val loc = loc1 + loc2 val pval = ( case+ opt of | Some x => i0nt2int (x) | None () => 0 ) : int // end of [val] // in '{ d0ecl_loc= loc, d0ecl_node= D0Coverload (id, dqid, pval) } end // end of [d0ecl_overload] (* ****** ****** *) implement d0ecl_include (knd, tok, ent2) = let // val loc = ent2.token_loc val-T_STRING (name) = ent2.token_node val () = the_parerrlst_add_ifunclosed (loc, name) val loc = tok.token_loc + loc // val pfil = $FIL.filename_get_current () // in '{ d0ecl_loc= loc, d0ecl_node= D0Cinclude (pfil, knd, name) } end // end of [d0ecl_include] (* ****** ****** *) implement d0ecl_e0xpdef (tok, ent2, ent3) = let val loc = tok.token_loc val loc = ( case+ ent3 of | Some x => loc + x.e0xp_loc | None() => loc + ent2.i0de_loc ) : location // end of [val] val def = (case+ ent3 of | Some x => let var flag: int = 0 val x = e0xp_funize (x, flag) in if flag > 0 then Some (x) else ent3 end // end of [Some] | None () => None () ) : e0xpopt // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Ce0xpdef (ent2.i0de_sym, def) } end // end of [d0ecl_e0xpdef] (* ****** ****** *) implement d0ecl_e0xpundef (tok, ent2) = let val loc = tok.token_loc + ent2.i0de_loc in '{ d0ecl_loc= loc, d0ecl_node= D0Ce0xpundef (ent2.i0de_sym) } end // end of [d0ecl_e0xpundef] (* ****** ****** *) implement d0ecl_e0xpact_assert (tok, ent2) = let // val loc = tok.token_loc + ent2.e0xp_loc // in '{ d0ecl_loc= loc , d0ecl_node= D0Ce0xpact(E0XPACTassert, ent2) } end // end of [d0ecl_e0xpact_assert] (* ****** ****** *) implement d0ecl_e0xpact_error (tok, ent2) = let // val loc = tok.token_loc + ent2.e0xp_loc // in '{ d0ecl_loc= loc , d0ecl_node= D0Ce0xpact(E0XPACTerror, ent2) } end // end of [d0ecl_e0xpact_error] (* ****** ****** *) implement d0ecl_e0xpact_prerr (tok, ent2) = let // val loc = tok.token_loc + ent2.e0xp_loc // in '{ d0ecl_loc= loc , d0ecl_node= D0Ce0xpact(E0XPACTprerr, ent2) } end // end of [d0ecl_e0xpact_prerr] (* ****** ****** *) implement d0ecl_e0xpact_print (tok, ent2) = let // val loc = tok.token_loc + ent2.e0xp_loc // in '{ d0ecl_loc= loc , d0ecl_node= D0Ce0xpact(E0XPACTprint, ent2) } end // end of [d0ecl_e0xpact_print] (* ****** ****** *) implement d0ecl_pragma ( tok1, xs, tok2 ) = let // val () = d0ecl_pragma_process(xs) // val loc = tok1.token_loc + tok2.token_loc // in '{ d0ecl_loc= loc, d0ecl_node= D0Cpragma(xs) } end // end of [d0ecl_pragma] (* ****** ****** *) local typedef locpragma = $LOC.locpragma fun e0xp_is_location (e0: e0xp): bool = let // val cat = ( case+ e0.e0xp_node of | E0XPide(id) => $SYM.symbol_get_name(id) | E0XPstring(tok) => str where { val-$LEX.T_STRING(str) = tok.token_node } | _(*rest-of-e0xp*) => "" ) : string // end of [val] // in if cat = "location" then true else false end // end of [e0xp_is_location] fun e2s(e0: e0xp): string = ( case+ e0.e0xp_node of | E0XPide(id) => $SYM.symbol_get_name(id) | E0XPstring(tok) => str where { val-$LEX.T_STRING(str) = tok.token_node } | _(*rest-of-e0xp*) => "??????" ) fun locpragma_process0 (xs: e0xplst): locpragma = ( case+ xs of | list_nil() => $LOC.locpragma0_make() | list_cons(x1, xs) => locpragma_process1 (x1, xs) ) and locpragma_process1 (x1: e0xp, xs: e0xplst): locpragma = ( case+ xs of | list_nil() => $LOC.locpragma1_make(e2s(x1)) | list_cons(x2, xs) => $LOC.locpragma2_make(e2s(x1), e2s(x2)) ) in (* in-of-local *) implement d0ecl_pragma_process (xs) = let (* val () = println! ("d0ecl_pragma_process") *) in // case+ xs of | list_nil() => () | list_cons(x, xs) => ( case+ 0 of | _ when e0xp_is_location(x) => ( $LOC.the_location_pragma_set(locpragma_process0(xs)) ) | _ => ((*nothing*)) ) (* end of [list_cons] *) // end // end of [d0ecl_pragma_process] end // end of [local] (* ****** ****** *) implement d0ecl_codegen2 ( tok1, xs, tok2 ) = let // val loc = tok1.token_loc + tok2.token_loc // in '{ d0ecl_loc= loc, d0ecl_node= D0Ccodegen(2(*knd*), xs) } end // end of [d0ecl_codegen2] implement d0ecl_codegen3 ( tok1, xs, tok2 ) = let // val loc = tok1.token_loc + tok2.token_loc // in '{ d0ecl_loc= loc, d0ecl_node= D0Ccodegen(3(*knd*), xs) } end // end of [d0ecl_codegen3] (* ****** ****** *) implement d0ecl_datsrts (tok, xs) = let // val loc = tok.token_loc val loc = (case+ list_last_opt (xs) of | ~Some_vt x => loc + x.d0atsrtdec_loc | ~None_vt _ => loc ) : location // end of [val] // in '{ d0ecl_loc= loc, d0ecl_node= D0Cdatsrts (xs) } end // end of [d0ecl_datsrts] implement d0ecl_srtdefs (tok, xs) = let val loc = tok.token_loc val loc = (case+ list_last_opt (xs) of | ~Some_vt x => loc + x.s0rtdef_loc | ~None_vt _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Csrtdefs (xs) } end // end of [d0ecl_srtdefs] implement d0ecl_stacons (knd, tok, xs) = let val loc = tok.token_loc val loc = (case+ list_last_opt (xs) of | ~Some_vt x => loc + x.s0tacon_loc | ~None_vt _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cstacons (knd, xs) } end // end of [d0ecl_stacons] implement d0ecl_stacsts (tok, xs) = let val loc = tok.token_loc val loc = (case+ list_last_opt (xs) of | ~Some_vt x => loc + x.s0tacst_loc | ~None_vt _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cstacsts (xs) } end // end of [d0ecl_stacsts] (* // // HX-2012-05-23: removed // implement d0ecl_stavars (tok, xs) = let val loc = tok.token_loc val loc = (case+ list_last_opt (xs) of | ~Some_vt x => loc + x.s0tavar_loc | ~None_vt _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cstavars (xs) } end // end of [d0ecl_stavars] *) implement d0ecl_tkindef (tok, x) = let val loc = tok.token_loc + x.t0kindef_loc in '{ d0ecl_loc= loc, d0ecl_node= D0Ctkindef (x) } end // end of [d0ecl_tkindef] implement d0ecl_sexpdefs (knd, tok, xs) = let val loc = tok.token_loc val loc = (case+ list_last_opt (xs) of | ~Some_vt x => loc + x.s0expdef_loc | ~None_vt _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Csexpdefs (knd, xs) } end // end of [d0ecl_sexpdefs] (* ****** ****** *) implement d0ecl_saspdec(tok, x) = let // val loc = tok.token_loc + x.s0aspdec_loc // in '{ d0ecl_loc= loc, d0ecl_node= D0Csaspdec(x) } end // end of [d0ecl_saspdec] implement d0ecl_reassume(tok, x) = let // val loc = tok.token_loc + x.sqi0de_loc // in '{ d0ecl_loc= loc, d0ecl_node= D0Creassume(x) } end // end of [d0ecl_reassume] (* ****** ****** *) implement d0ecl_exndecs (tok, ent2) = let val loc = tok.token_loc val loc = (case+ list_last_opt (ent2) of ~Some_vt x => loc + x.e0xndec_loc | ~None_vt () => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cexndecs (ent2) } end // end of [d0ecl_exndecs] (* ****** ****** *) implement d0ecl_datdecs_none ( knd, tok, ent2 ) = let val loc = tok.token_loc val opt = list_last_opt (ent2) val loc = ( case+ opt of | ~Some_vt x => loc + x.d0atdec_loc | ~None_vt _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc , d0ecl_node= D0Cdatdecs (knd, ent2, list_nil) } end // end of [d0ecl_datdecs_none] implement d0ecl_datdecs_some ( knd, tok, ent2, tok2, ent4 ) = let val loc = tok.token_loc val opt = list_last_opt (ent4) val loc2 = ( case+ opt of | ~Some_vt x => x.s0expdef_loc | ~None_vt _ => tok2.token_loc ) : location // end of [val] val loc = loc + loc2 in '{ d0ecl_loc= loc , d0ecl_node= D0Cdatdecs (knd, ent2, ent4) } end // end of [d0ecl_datdecs_some] (* ****** ****** *) implement d0ecl_classdec (tok, id, sup) = let val loc = tok.token_loc val loc = ( case+ sup of | Some x => loc + x.s0exp_loc | None _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cclassdec (id, sup) } end // end of [d0ecl_classdec] (* ****** ****** *) local fun auxmain ( knd: int // 0/1: static/dynamic , tok: token, ent2: q0marglst, ent3: d0cstdeclst ) : d0ecl = let // val loc = tok.token_loc val opt = list_last_opt (ent3) val loc = ( case+ opt of | ~Some_vt x => loc + x.d0cstdec_loc | ~None_vt _ => loc (*dead*) ) : location // end of [val] // in '{ d0ecl_loc= loc , d0ecl_node= D0Cdcstdecs (knd, tok, ent2, ent3) } end // end of [auxmain] in (* in of [local] *) // implement d0ecl_dcstdecs (tok, ent2, ent3) = auxmain (1(*ext*), tok, ent2, ent3) // implement d0ecl_dcstdecs_extern (tok, ent2, ent3) = auxmain (1(*ext*), tok, ent2, ent3) // implement d0ecl_dcstdecs_static // HX: static dyncst not exported (tok, ent2, ent3) = auxmain (0(*sta*), tok, ent2, ent3) // end // end of [local] (* ****** ****** *) implement d0ecl_macdefs (knd, isrec, tok, ent2) = let val loc = tok.token_loc val loc = (case+ list_last_opt (ent2) of ~Some_vt x => loc + x.m0acdef_loc | ~None_vt _ => loc (*dead*) ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cmacdefs (knd, isrec, ent2) } end // end of [d0ecl_macdefs] (* ****** ****** *) implement d0ecl_extype (tok, name, s0e) = let val-T_EXTYPE () = tok.token_node val-T_STRING (name) = name.token_node val loc = tok.token_loc + s0e.s0exp_loc in '{ d0ecl_loc= loc, d0ecl_node= D0Cextype (name, s0e) } end // end of [d0ecl_extype] implement d0ecl_extype2 (tok, name, s0e) = let val-T_TYPEDEF (knd) = tok.token_node val-T_STRING (name) = name.token_node val loc = tok.token_loc + s0e.s0exp_loc in '{ d0ecl_loc= loc, d0ecl_node= D0Cextype (knd, name, s0e) } end // end of [d0ecl_extype] (* ****** ****** *) implement d0ecl_extvar (tok, name, d0e) = let val-T_EXTVAR () = tok.token_node val-T_STRING (name) = name.token_node val loc = tok.token_loc + d0e.d0exp_loc in '{ d0ecl_loc= loc, d0ecl_node= D0Cextvar (name, d0e) } end // end of [d0ecl_extvar] implement d0ecl_extvar2 (tok, name, d0e) = let val-T_VAR _ = tok.token_node val-T_STRING (name) = name.token_node val loc = tok.token_loc + d0e.d0exp_loc in '{ d0ecl_loc= loc, d0ecl_node= D0Cextvar (name, d0e) } end // end of [d0ecl_extvar2] (* ****** ****** *) implement d0ecl_extcode (knd, tok) = let val-T_EXTCODE (pos, code) = tok.token_node in '{ d0ecl_loc= tok.token_loc, d0ecl_node= D0Cextcode (knd, pos, code) } end // end of [d0ecl_extcode] (* ****** ****** *) implement d0ecl_impdec ( tok, imparg, impdec ) = let val-T_IMPLEMENT (knd) = tok.token_node val loc = tok.token_loc + impdec.i0mpdec_loc in '{ d0ecl_loc= loc, d0ecl_node= D0Cimpdec (knd, imparg, impdec) } end // end of [d0ecl_impdec] (* ****** ****** *) implement d0ecl_fundecs ( knd, tok, qua, xs ) = let val loc = tok.token_loc val loc = (case+ list_last_opt (xs) of | ~Some_vt x => loc + x.f0undec_loc | ~None_vt _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cfundecs (knd, qua, xs) } end // end of [d0ecl_fundecs] (* ****** ****** *) implement d0ecl_valdecs ( knd, isrec, tok, xs ) = let val loc = tok.token_loc val loc = (case+ list_last_opt (xs) of | ~Some_vt x => loc + x.v0aldec_loc | ~None_vt _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cvaldecs (knd, isrec, xs) } end // end of [d0ecl_valdecs] (* ****** ****** *) implement d0ecl_vardecs (knd, tok, xs) = let val loc = tok.token_loc val loc = (case+ list_last_opt (xs) of | ~Some_vt x => loc + x.v0ardec_loc | ~None_vt _ => loc ) : location // end of [val] in '{ d0ecl_loc= loc, d0ecl_node= D0Cvardecs (knd, xs) } end // end of [d0ecl_vardecs] (* ****** ****** *) implement d0ecl_staload_fname (tok, tok2) = let // val loc = tok2.token_loc val-T_STRING (name) = tok2.token_node val () = the_parerrlst_add_ifunclosed (loc, name) val loc = tok.token_loc + loc // val pfil = $FIL.filename_get_current () // in '{ d0ecl_loc= loc , d0ecl_node= D0Cstaload (pfil, None, name) } end // end of [d0ecl_staload_fname] (* ****** ****** *) implement d0ecl_staload_nspace (tok, tok2) = let // val loc = tok2.token_loc val-T_IDENT_dlr (name) = tok2.token_node val loc = tok.token_loc + loc val pfil = $FIL.filename_get_current () val name = $SYM.symbol_make_string (name) // in '{ d0ecl_loc= loc , d0ecl_node= D0Cstaloadnm (pfil, None, name) } end // end of [d0ecl_staload_nspace] (* ****** ****** *) implement staloadarg_get_loc (arg) = let in // case+ arg of | STLDfname (loc, name) => loc | STLDnspace (loc, name) => loc | STLDdeclist (loc, d0cs) => loc // end // end of [staloadarg_get_loc] (* ****** ****** *) implement staloadarg_declist (t_lb, d0cs, t_lr) = STLDdeclist (t_lb.token_loc + t_lr.token_loc, d0cs) // end of [staloadarg_declist] (* ****** ****** *) implement d0ecl_staload_some_arg (tok, ent2, ent4) = let // val sym = ent2.i0de_sym val loc = tok.token_loc + staloadarg_get_loc (ent4) // val pfil = $FIL.filename_get_current ((*void*)) // val d0cn = ( case+ ent4 of | STLDfname (loc, name) => let val () = the_parerrlst_add_ifunclosed (loc, name) in D0Cstaload (pfil, Some(sym), name) end // end of [STLDfname] | STLDnspace (loc, name) => let val name = $SYM.symbol_make_string (name) in D0Cstaloadnm (pfil, Some(sym), name) end // end of [STLDnspace] | STLDdeclist (_, d0cs) => D0Cstaloadloc (pfil, sym, d0cs) ) : d0ecl_node // end of [val] // in '{ d0ecl_loc= loc, d0ecl_node= d0cn } end // end of [d0ecl_staload_some_arg] (* ****** ****** *) implement d0ecl_require (tok, ent2) = let // val loc = ent2.token_loc val-T_STRING (name) = ent2.token_node val () = the_parerrlst_add_ifunclosed (loc, name) val loc = tok.token_loc + loc // val pfil = $FIL.filename_get_current () // in '{ d0ecl_loc= loc, d0ecl_node= D0Crequire (pfil, name) } end // end of [d0ecl_require] (* ****** ****** *) implement d0ecl_dynload (tok, ent2) = let // val loc = ent2.token_loc val-T_STRING (name) = ent2.token_node val () = the_parerrlst_add_ifunclosed (loc, name) val loc = tok.token_loc + loc // val pfil = $FIL.filename_get_current () // in '{ d0ecl_loc= loc, d0ecl_node= D0Cdynload (pfil, name) } end // end of [d0ecl_dynload] (* ****** ****** *) implement d0ecl_local ( t_local, d0cs1, d0cs2, t_end ) = let val loc = t_local.token_loc + t_end.token_loc in '{ d0ecl_loc= loc, d0ecl_node= D0Clocal (d0cs1, d0cs2) } end // end of [d0ec_local] (* ****** ****** *) local fun loop ( d0c0: d0ecl , d0c1: d0ecl , d0cs: d0eclist ) : location = ( case+ d0cs of | list_nil() => $LOC.location_combine (d0c0.d0ecl_loc, d0c1.d0ecl_loc) // list_nil | list_cons (d0c1, d0cs) => loop(d0c0, d0c1, d0cs) // end of [list_cons] ) in (* in-of-local *) implement d0ecl_list ( fil, d0cs ) = let // val loc01 = ( case+ d0cs of | list_nil() => $LOC.location_filename_origin(fil) | list_cons (d0c0, d0cs) => loop(d0c0, d0c0, d0cs) // end of [list_cons] ) : location // end of [val] // in '{ d0ecl_loc= loc01, d0ecl_node= D0Clocal(list_nil(), d0cs) } end // end of [d0ecl_list] implement d0ecl_toplocal ( fil, d0cs ) = let // val loc01 = ( case+ d0cs of | list_nil() => $LOC.location_filename_origin(fil) | list_cons (d0c0, d0cs) => loop(d0c0, d0c0, d0cs) // end of [list_cons] ) : location // end of [val] // in '{ d0ecl_loc= loc01, d0ecl_node= D0Clocal(d0cs, list_nil()) } end // end of [d0ecl_toplocal] end // end of [local] (* ****** ****** *) fun srpifkind_of_token (tok: token): srpifkind = case+ tok.token_node of | T_SRPIF () => SRPIFKINDif () | T_SRPIFDEF () => SRPIFKINDifdef () | T_SRPIFNDEF () => SRPIFKINDifndef () | _ => let val () = assertloc (false) in SRPIFKINDif () end (* end of [_] *) // end of [srpifkind_of_token] fun srpelifkind_of_token (tok: token): srpifkind = case+ tok.token_node of | T_SRPELIF () => SRPIFKINDif () | T_SRPELIFDEF () => SRPIFKINDifdef () | T_SRPELIFNDEF () => SRPIFKINDifndef () | _ => let val () = assertloc (false) in SRPIFKINDif () end (* end of [_] *) // end of [srpelifkind_of_token] (* ****** ****** *) implement d0ecl_guadecl (knd, gd) = let val loc = knd.token_loc + gd.guad0ecl_loc val knd = srpifkind_of_token (knd) in '{ d0ecl_loc= loc, d0ecl_node= D0Cguadecl (knd, gd) } end // end of [d0ecl_guadecl] (* ****** ****** *) implement guad0ecl_one ( gua, ds_then, t_endif ) = let val loc = gua.e0xp_loc + t_endif.token_loc in '{ guad0ecl_loc= loc , guad0ecl_node= GD0Cone (gua, ds_then) } end // end of [guad0ecl_one] implement guad0ecl_two ( gua, ds_then, ds_else, t_endif ) = let val loc = gua.e0xp_loc + t_endif.token_loc in '{ guad0ecl_loc= loc , guad0ecl_node= GD0Ctwo (gua, ds_then, ds_else) } end // end of [guad0ecl_two] implement guad0ecl_cons ( gua, ds, knd, rst ) = let val loc = ( gua.e0xp_loc + rst.guad0ecl_loc ) : location // end of [val] val knd = srpelifkind_of_token (knd) in '{ guad0ecl_loc= loc , guad0ecl_node= GD0Ccons (gua, ds, knd, rst.guad0ecl_node) } end // end of [guad0ecl_cons] (* ****** ****** *) (* end of [pats_syntax.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_error.dats0000644000175000017500000000350113431250607020505 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload "./pats_error.sats" (* ****** ****** *) local // extern fun segfault ( // argless ) : int = "ext#pats_error_segfault" // in (* in-of-local *) implement abort() = let (* val _ = segfault() *) in $raise FatalErrorExn((*void*)) end // end of [abort] implement abort_interr() = let (* val _ = segfault() *) in $raise FatalErrorExn_interr((*void*)) end // end of [abort] end // end of [local] (* ****** ****** *) (* end of [pats_error.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_stacst2.sats0000644000175000017500000003132313431250607020761 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) abstype s2cstref_type // boxed typedef s2cstref = s2cstref_type (* ****** ****** *) // fun s2cstref_make(name: string): s2cstref // (* ****** ****** *) // fun s2cstref_get_cst(s2cr: s2cstref): s2cst // fun s2cstref_get_exp (s2cr: s2cstref, arg: Option_vt(s2explst)): s2exp fun s2cstref_unget_exp (s2cr: s2cstref, s2e: s2exp): Option_vt(s2explst) // fun s2cstref_equ_cst(s2cr: s2cstref, s2c: s2cst): bool fun s2cstref_equ_exp(s2cr: s2cstref, s2e: s2exp): bool // (* ****** ****** *) // val the_true_bool : s2cstref val the_false_bool : s2cstref // val the_neg_bool : s2cstref // bool -> bool val the_add_bool_bool : s2cstref // (bool, bool) -> bool val the_mul_bool_bool : s2cstref // (bool, bool) -> bool val the_eq_bool_bool : s2cstref // (bool, bool) -> bool val the_neq_bool_bool : s2cstref // (bool, bool) -> bool // val the_neg_int : s2cstref // : (int) -> int val the_add_int_int : s2cstref // : (int, int) -> int val the_sub_int_int : s2cstref // : (int, int) -> int val the_mul_int_int : s2cstref // : (int, int) -> int val the_div_int_int : s2cstref // : (int, int) -> int val the_ndiv_int_int : s2cstref // : (int, int) -> int val the_idiv_int_int : s2cstref // : (int, int) -> int // val the_lt_int_int : s2cstref // : (int, int) -> bool val the_lte_int_int : s2cstref // : (int, int) -> bool val the_gt_int_int : s2cstref // : (int, int) -> bool val the_gte_int_int : s2cstref // : (int, int) -> bool val the_eq_int_int : s2cstref // : (int, int) -> bool val the_neq_int_int : s2cstref // : (int, int) -> bool // val the_abs_int : s2cstref // (int) -> int val the_absrel_int_int : s2cstref // : (int, int) -> bool val the_sgn_int : s2cstref // (int) -> int val the_sgnrel_int_int : s2cstref // : (int, int) -> bool // val the_max_int_int : s2cstref // : (int, int) -> int val the_min_int_int : s2cstref // : (int, int) -> int val the_maxrel_int_int_int : s2cstref // : (int, int, int) -> bool val the_minrel_int_int_int : s2cstref // : (int, int, int) -> bool // val the_ndivrel_int_int_int : s2cstref // : (int, int, int) -> bool val the_idivrel_int_int_int : s2cstref // : (int, int, int) -> bool // val the_ifint_bool_int_int : s2cstref // : (bool, int, int) -> int val the_ifintrel_bool_int_int_int : s2cstref // : (bool, int, int, int) -> bool // (* val the_int_of_bool : s2cstref // : (bool) -> int val the_bool_of_int : s2cstref // : (int) -> bool *) (* // HX: char equals int8 // HX-2012-06-12: removed val the_int_of_char : s2cstref // : (char) -> int and the_char_of_int : s2cstref // : (int) -> char *) (* ** HX: addr is treated as (signed) int *) val the_int_of_addr : s2cstref // : (addr) -> int and the_addr_of_int : s2cstref // : (int) -> addr // val the_null_addr : s2cstref val the_lt_addr_addr : s2cstref // : (addr, addr) -> bool val the_lte_addr_addr : s2cstref // : (addr, addr) -> bool val the_gt_addr_addr : s2cstref // : (addr, addr) -> bool val the_gte_addr_addr : s2cstref // : (addr, addr) -> bool val the_eq_addr_addr : s2cstref // : (addr, addr) -> bool val the_neq_addr_addr : s2cstref // : (addr, addr) -> bool // val the_add_addr_int : s2cstref // (addr, int) -> addr val the_sub_addr_int : s2cstref // (addr, int) -> addr val the_sub_addr_addr : s2cstref // (addr, addr) -> int // (* ****** ****** *) val the_types_nil : s2cstref // : types val the_types_cons : s2cstref // : (vt@ype, types) -> types (* ****** ****** *) val the_lte_cls_cls : s2cstref // : (cls, cls) -> bool val the_gte_cls_cls : s2cstref // : (cls, cls) -> bool val the_lterel_cls_cls : s2cstref // : (cls, cls, bool) -> bool val the_gterel_cls_cls : s2cstref // : (cls, cls, bool) -> bool (* ****** ****** *) val the_atstkind_type : s2cstref val the_atstkind_t0ype : s2cstref (* ****** ****** *) // val the_bool_t0ype : s2cstref val the_bool_bool_t0ype : s2cstref // (* ****** ****** *) // val the_int_kind : s2cstref val the_uint_kind : s2cstref val the_lint_kind : s2cstref val the_ulint_kind : s2cstref val the_llint_kind : s2cstref val the_ullint_kind : s2cstref val the_size_kind : s2cstref val the_ssize_kind : s2cstref // val the_g0int_t0ype : s2cstref val the_g1int_int_t0ype : s2cstref val the_g0uint_t0ype : s2cstref val the_g1uint_int_t0ype : s2cstref // val the_char_t0ype : s2cstref val the_char_int_t0ype : s2cstref val the_schar_t0ype : s2cstref val the_schar_int_t0ype : s2cstref val the_uchar_t0ype : s2cstref val the_uchar_int_t0ype : s2cstref // val the_float_kind : s2cstref val the_double_kind : s2cstref val the_ldouble_kind : s2cstref val the_g0float_t0ype : s2cstref // val the_string_type : s2cstref val the_string_int_type : s2cstref // val the_literal_float : s2cstref val the_literal_string : s2cstref // val the_ptr_type : s2cstref val the_ptr_addr_type : s2cstref // val the_atsvoid_t0ype : s2cstref // val the_unit_prop : s2cstref val the_unit_view : s2cstref // val the_exception_vtype : s2cstref // val the_arrpsz_vt0ype_int_vt0ype : s2cstref // (* val the_list0_t0ype_type : s2cstref *) // val the_list_t0ype_int_type : s2cstref val the_list_vt0ype_int_vtype : s2cstref // val the_vbox_view_prop : s2cstref val the_ref_vt0ype_type : s2cstref // val the_lazy_t0ype_type : s2cstref val the_lazy_vt0ype_vtype : s2cstref // val the_sizeof_t0ype_int: s2cstref // val the_at_vt0ype_addr_view: s2cstref // val the_invar_prop_prop: s2cstref val the_invar_view_view: s2cstref val the_invar_t0ype_t0ype: s2cstref val the_invar_vt0ype_vt0ype: s2cstref // (* ****** ****** *) val the_vcopyenv_view_view : s2cstref val the_vcopyenv_vt0ype_vt0ype : s2cstref (* ****** ****** *) val the_bottom_t0ype_uni: s2cstref // = {a:t@ype} (a) val the_bottom_t0ype_exi: s2cstref // = [a:t@ype | false] (a) val the_bottom_vt0ype_uni: s2cstref // = {a:vt@ype} (a) val the_bottom_vt0ype_exi: s2cstref // = [a:vt@ype | false] (a) (* ****** ****** *) // // HX: static boolean terms // fun s2exp_bool(b: bool): s2exp // fun s2exp_bool_t0ype((*void*)): s2exp // bool0 fun s2exp_bool_bool_t0ype(b: bool): s2exp // bool1(b) // fun s2exp_bool_index_t0ype(ind: s2exp): s2exp // bool1(ind) // fun un_s2exp_bool_index_t0ype(s2f: s2hnf): Option_vt(s2exp) // (* ****** ****** *) // fun s2exp_agtz (s2a: s2exp): s2exp // fun s2exp_bneg (s2p: s2exp): s2exp // fun s2exp_badd (s2p1: s2exp, s2p2: s2exp): s2exp // fun s2exp_bmul (s2p1: s2exp, s2p2: s2exp): s2exp // fun s2explst_badd (s2ps: s2explst): s2exp fun s2explst_bmul (s2ps: s2explst): s2exp // (* ****** ****** *) // fun s2exp_ineg (s2i: s2exp): s2exp // fun s2exp_intlt (s2i1: s2exp, s2i2: s2exp): s2exp fun s2exp_intgt (s2i1: s2exp, s2i2: s2exp): s2exp fun s2exp_intlte (s2i1: s2exp, s2i2: s2exp): s2exp fun s2exp_intgte (s2i1: s2exp, s2i2: s2exp): s2exp fun s2exp_intneq (s2i1: s2exp, s2i2: s2exp): s2exp // (* ****** ****** *) fun s2exp_igtez (s2i: s2exp): s2exp // s2i >= 0 (* ****** ****** *) fun un_s2exp_intconst (s2i: s2exp): Option_vt(int) (* ****** ****** *) // fun s2exp_int_t0ype (): s2exp // int0 fun s2exp_uint_t0ype (): s2exp // uint0 fun s2exp_lint_t0ype (): s2exp // int0 fun s2exp_ulint_t0ype (): s2exp // uint0 fun s2exp_llint_t0ype (): s2exp // lint0 fun s2exp_ullint_t0ype (): s2exp // ulint0 // fun s2exp_int_int_t0ype (i: int): s2exp // int1(i) fun s2exp_int_intinf_t0ype (inf: intinf): s2exp // int1(inf) // fun s2exp_uint_int_t0ype (i: int): s2exp // uint1(i) fun s2exp_uint_intinf_t0ype (inf: intinf): s2exp // uint1(i) // fun s2exp_lint_intinf_t0ype (inf: intinf): s2exp // lint1(i) fun s2exp_ulint_intinf_t0ype (inf: intinf): s2exp // ulint1(i) fun s2exp_llint_intinf_t0ype (inf: intinf): s2exp // llint1(i) fun s2exp_ullint_intinf_t0ype (inf: intinf): s2exp // ullint1(i) // fun s2exp_g0int_kind_t0ype (knd: s2exp): s2exp fun s2exp_g1int_kind_index_t0ype (knd: s2exp, ind: s2exp): s2exp fun s2exp_g0uint_kind_t0ype (knd: s2exp): s2exp fun s2exp_g1uint_kind_index_t0ype (knd: s2exp, ind: s2exp): s2exp // fun un_s2exp_g1int_index_t0ype (s2f: s2hnf): Option_vt(s2exp) fun un_s2exp_g1uint_index_t0ype (s2f: s2hnf): Option_vt(s2exp) // fun un_s2exp_g1size_index_t0ype (s2f: s2hnf): Option_vt(s2exp) // fun s2exp_int_index_t0ype (ind: s2exp): s2exp fun s2exp_uint_index_t0ype (ind: s2exp): s2exp // (* ****** ****** *) // fun s2exp_char_t0ype (): s2exp // char0 fun s2exp_char_int_t0ype (c: int): s2exp // char1(c) fun s2exp_char_index_t0ype (ind: s2exp): s2exp // char1(ind) // fun un_s2exp_char_index_t0ype (s2f: s2hnf): Option_vt(s2exp) // fun s2exp_schar_t0ype (): s2exp // schar0 fun s2exp_schar_int_t0ype (c: int): s2exp // schar1(c) // fun s2exp_uchar_t0ype (): s2exp // schar0 fun s2exp_uchar_int_t0ype (c: int): s2exp // uchar1(c) // (* ****** ****** *) // fun s2exp_float_t0ype (): s2exp // float fun s2exp_double_t0ype (): s2exp // double fun s2exp_ldouble_t0ype (): s2exp // ldouble // (* ****** ****** *) // fun s2exp_string_type (): s2exp // string0 fun s2exp_string_int_type (n: size_t): s2exp // string1 fun s2exp_string_index_type (ind: s2exp): s2exp // string1(ind) // (* ****** ****** *) fun s2exp_literal_float (rep: string): s2exp fun s2exp_literal_string (str: string): s2exp (* ****** ****** *) fun s2exp_ptr_type(): s2exp // ptr0 fun s2exp_ptr_addr_type(s2l: s2exp): s2exp // ptr1 fun un_s2exp_ptr_addr_type(s2f: s2hnf): Option_vt(s2exp) (* ****** ****** *) fun s2exp_void_t0ype(): s2exp // void (* ****** ****** *) fun s2exp_unit_prop (): s2exp // unit_p // how about uprop? fun s2exp_unit_view (): s2exp // unit_v // how about uview? (* ****** ****** *) fun s2exp_exception_vtype (): s2exp (* ****** ****** *) // fun s2exp_arrpsz_vt0ype_int_vt0ype(s2e: s2exp, n: int): s2exp // (* ****** ****** *) // (* fun s2exp_list0_t0ype_type (s2e: s2exp): s2exp *) // fun s2exp_list_t0ype_int_type(s2e: s2exp, n: int): s2exp fun s2exp_list_vt0ype_int_vtype(s2e: s2exp, n: int): s2exp // (* ****** ****** *) // fun s2exp_vbox_view_prop(s2e: s2exp): s2exp fun un_s2exp_vbox_view_prop(s2f: s2hnf) : Option_vt(s2exp) // (* ****** ****** *) // fun s2exp_ref_vt0ype_type(s2e: s2exp): s2exp fun un_s2exp_ref_vt0ype_type(s2f: s2hnf): Option_vt(s2exp) // (* ****** ****** *) fun s2exp_lazy_t0ype_type(s2e: s2exp): s2exp fun un_s2exp_lazy_t0ype_type(s2f: s2hnf): Option_vt(s2exp) fun s2exp_lazy_vt0ype_vtype(s2e: s2exp): s2exp fun un_s2exp_lazy_vt0ype_vtype(s2f: s2hnf): Option_vt(s2exp) (* ****** ****** *) fun s2exp_bottom_t0ype_uni(): s2exp // = {a:t@ype} (a) fun s2exp_bottom_t0ype_exi(): s2exp // = [a:t@ype | false] (a) fun s2exp_bottom_vt0ype_uni(): s2exp // = {a:vt@ype} (a) fun s2exp_bottom_vt0ype_exi(): s2exp // = [a:vt@ype | false] (a) (* ****** ****** *) // // HX-2017-11-08: // fun s2exp_types_nil((*void*)): s2exp // fun s2exp_types_cons (s2e1: s2exp, s2e2: s2exp): s2exp (* fun s2exp_types_uncons (s2e0: &s2exp >> s2exp): Option_vt(s2exp) *) // fun s2exp_types_list(s2es: s2explst): s2exp // (* ****** ****** *) fun s2exp_vcopyenv_v (s2e: s2exp): s2exp fun s2exp_vcopyenv_vt (s2e: s2exp): s2exp (* ****** ****** *) // // HX-2013-09: // only for internal use! // val the_atstype_int : s2cstref val the_atstype_bool : s2cstref val the_atstype_uint : s2cstref val the_atstype_size : s2cstref val the_atstype_ssize : s2cstref // (* ****** ****** *) val the_effnil : s2cstref val the_effall : s2cstref val the_effntm : s2cstref val the_effexn : s2cstref val the_effref : s2cstref val the_effwrt : s2cstref val the_add_eff_eff : s2cstref // = add_eff_eff val the_sub_eff_eff : s2cstref // = sub_eff_eff (* ****** ****** *) fun s2eff_hnfize (s2fe: s2eff): s2eff (* ****** ****** *) fun stacst2_initialize ((*void*)): void (* ****** ****** *) (* end of [pats_stacst2.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lintprgm_solve.dats0000644000175000017500000007670313431250607022436 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Time: February 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) staload "./pats_lintprgm.sats" (* ****** ****** *) staload _(*anon*) = "./pats_lintprgm.dats" staload _(*anon*) = "./pats_lintprgm_print.dats" (* ****** ****** *) local // #include "./pats_lintprgm_myint_int.dats" // in // nothing end // end of [local] (* ****** ****** *) extern fun{a:t@ype} myintvec_combine_at {n:int} ( iv_pos: !myintvec (a, n) , iv_neg: !myintvec (a, n) , n: int n, i: intBtw (1, n) ) :<> myintvec (a, n) // end of [myintvec_combine_at] implement{a} myintvec_combine_at (iv_pos, iv_neg, n, i) = let val c_pos = iv_pos[i] // c_pos > 0 and c_neg = neg_myint (iv_neg[i]) // c_neg > 0 val iv = myintvec_copy_cff (c_pos, iv_neg, n) val () = myintvec_addby_cff (iv, c_neg, iv_pos, n) val () = myint_free (c_pos) and () = myint_free (c_neg) in iv(*NewlyCreatedVector*) end // end of [myintvec_combine_at] (* ****** ****** *) // // HX-2012-02: // ~1/0: CONTRADICTION/UNDECIDED // extern fun{a:t@ype} myintveclst_split_at {n:int} ( vecs: &myintveclst (a, n), n: int n, i: intBtw (1, n) ) : int(*~1/0*) // end of [myintveclst_split_at] implement{a} myintveclst_split_at {n} (ivs, n, i) = let // stadef iv = myintvec (a, n) stadef ivs = myintveclst (a, n) // fun auxbeg ( ivs: ivs, i: natLt n , neus: &ivs, poss: &ivs, negs: &ivs ) : void = let in // case+ ivs of // | ~list_vt_nil() => () // | list_vt_cons (!p_iv, !p_ivs1) => let val sgn = myintvec_compare_at (!p_iv, i, 0) // end of [val] val ivs1 = !p_ivs1 in if sgn > 0 then let val () = !p_ivs1 := poss val () = poss := ivs prval () = fold@ {iv} (poss) in auxbeg (ivs1, i, neus, poss, negs) end else if sgn < 0 then let val () = !p_ivs1 := negs val () = negs := ivs prval () = fold@ {iv} (negs) in auxbeg (ivs1, i, neus, poss, negs) end else let // sgn = 0 val () = !p_ivs1 := neus val () = neus := ivs prval () = fold@ {iv} (neus) in auxbeg (ivs1, i, neus, poss, negs) end // end of [if] end (* end of [list_vt_cons] *) // end // end of [auxbeg] // fun auxcomb ( // // ~1/0 means contradiction/undecided // n: int n, i: intBtw (1, n) , neus: &ivs, poss: &ivs, neg: !iv ) : int(*~1/0*) = let in // case+ poss of // | list_vt_nil () => let prval () = fold@ (poss) in 0(*UNDECIDED*) end // end of [list_vt_nil] // | list_vt_cons (!p_pos, !p_poss) => let val iv_new = myintvec_combine_at (!p_pos, neg, n, i) // end of [val] val sgn = myintvec_inspect_gte (iv_new, n) val () = ( if sgn != 0 then myintvec_free (iv_new, n) else let val () = myintvec_normalize_gte (iv_new, n) in neus := list_vt_cons (iv_new, neus) end // end of [if] ) : void // end of [val] in if (sgn >= 0) then let val ans = auxcomb (n, i, neus, !p_poss, neg) prval () = fold@ (poss) in ans end else let prval () = fold@ (poss) in ~1(*CONTRADITION*) end // end of [if] end (* end of [list_vt_cons] *) // end // end of [auxcomb] // // HX: [~1] is returned if contradiction is reached // fun auxcomblst ( n: int n, i: intBtw (1, n) , neus: &ivs, poss: &ivs, negs: ivs ) : int(*~1/0*) = let in // case+ negs of | ~list_vt_cons (neg, negs) => let val ans = auxcomb (n, i, neus, poss, neg) // end of [val] val () = myintvec_free (neg, n) in if ans >= 0 then auxcomblst (n, i, neus, poss, negs) else let val () = myintveclst_free (negs, n) in ~1(*CONTRADICTION*) end // end of [if] end (* list_vt_cons *) | ~list_vt_nil () => 0(*UNDECIDED*) // end // end of [auxcomblst] // var neus: ivs = list_vt_nil () var poss: ivs = list_vt_nil () and negs: ivs = list_vt_nil () // val () = auxbeg (ivs, i, neus, poss, negs) val ans = auxcomblst (n, i, neus, poss, negs) val () = myintveclst_free (poss, n) val () = ivs := neus // in ans(*~1/0*) end // end of [myintveclst_split_at] (* ****** ****** *) extern fun {a:t@ype} myintvec_get_index_of_absmincff {n:pos} (iv: !myintvec (a, n), n: int n): intBtw (1, n) // end of [myintvec_get_index_of_absmincff] implement {a}(*tmp*) myintvec_get_index_of_absmincff {n}(iv, n) = let // viewtypedef x = myint(a) // fun loop {k:nat | k <= n}{l:addr} .. ( pf: !array_v (x, k, l) | p: ptr l, n: int n, k: int k , isz: bool, ind: &natLt (n), cff: &x ) : void = let in if k > 0 then let prval (pf1, pf2) = array_v_uncons {x} (pf) val sgn = compare_myint_int (!p, 0) val () = ( if sgn > 0 then ( if ( isz || (!p < cff) ) then let val () = ind := n - k val () = myint_free (cff) in cff := myint_copy (!p) end else ( // nothing ) // end of [if] ) // end of [if] ) : void // end of [val] val () = ( if sgn < 0 then let val cff1 = neg1_myint (!p) in if ( isz || (cff1 < cff) ) then let val () = ind := n - k val () = myint_free (cff) in cff := cff1 end else ( myint_free (cff1) ) // end of [if] end // end of [if] ) : void // end of [val] in if sgn = 0 then let val () = loop (pf2 | p+sizeof, n, k-1, isz, ind, cff) in pf := array_v_cons {x} (pf1, pf2) end else if cff > 1 then let val () = loop (pf2 | p+sizeof, n, k-1, false, ind, cff) in pf := array_v_cons {x} (pf1, pf2) end else ( pf := array_v_cons {x} (pf1, pf2) ) // end of [if] end // end of [if] end // end of [loop] // var ind: natLt (n) = 0 var cff: myint (a) = myint_make_int (0) val (pf | p) = myintvec_takeout (iv) prval (pf1, pf2) = array_v_uncons {x} (pf) val () = loop (pf2 | p+sizeof, n, n-1, true(*isz*), ind, cff) prval () = pf := array_v_cons {x} (pf1, pf2) prval () = myintvecout_addback (pf | iv) val () = myint_free (cff) // val () = assertloc (ind > 0) // in ind end // end of [myintvec_get_index_of_absmincff] (* ****** ****** *) // absvtype indexlst(n:int) // (* extern fun fprint_indexlst {n:int}(out: FILEref, xs: !indexlst n): void // end of [fprint_indexlst] *) // extern fun indexlst_make {n:pos} ( xs: indexset (n), n: int n ) : indexlst(n) // end-of-fun // extern fun indexlst_free {n:int}(xs: indexlst n): void // extern fun indexlst_choose {n:pos}(xs: &indexlst n): natLt(n) // (* ****** ****** *) local // staload FS = "libats/SATS/funset_listord.sats" staload _(*anon*) = "libats/DATS/funset_listord.dats" // fn cmp ( x1: int, x2: int ) : int = compare_int_int (x1, x2) // assume indexset(n:int) = $FS.set(index(n)) assume indexlst(n:int) = List_vt(index (n)) // in (* in-of-local *) implement indexset_nil() = $FS.funset_make_nil () implement indexset_is_member (xs, x) = $FS.funset_is_member (xs, x, cmp) // end of [indexset_is_member] implement indexset_add (xs, x) = xs where { var xs = xs val _(*found*) = $FS.funset_insert (xs, x, cmp) } (* end of [indexset_add] *) (* ****** ****** *) implement indexlst_make {n}(iset, n) = let // vtypedef res = List_vt (index (n)) // fun loop {k:nat | k < n} .. ( k: int k, res1: res, res2: res ) : res = ( if k > 0 then let val ismem = indexset_is_member{n}(iset, k) in if ismem then loop(k-1, list_vt_cons(k, res1), res2) else loop(k-1, res1, list_vt_cons(k, res2)) // end of [if] end // end of [then] else list_vt_append(res1, res2) // ) (* end of [loop] *) in loop(n-1, list_vt_nil, list_vt_nil) end // end of [indexlst_make] implement indexlst_free(xs) = list_vt_free(xs) implement indexlst_choose(xs) = ( case+ xs of | ~list_vt_cons (x, xs1) => (xs := xs1; x) | list_vt_nil() => (fold@(xs); 0) // HX: error indication ) (* end of [indexlst_choose] *) end // end of [local] (* ****** ****** *) // extern fun {a:t@ype} myintveclst_solve {n:pos} ( iset: indexset(n), ivs: myintveclst(a, n), n: int(n) ) : Ans2(*~1/0*) // end of [myintveclst_solve] implement {a}(*tmp*) myintveclst_solve {n}(iset, ivs, n) = let (* val () = begin print "myintveclst_solve: ivs =\n"; print_myintveclst (ivs, n); print_newline (); end // end of [val] *) // viewtypedef ivs = myintveclst (a, n) // fun solve ( ivs: &ivs, ilst: &indexlst (n), n: int n ) : Ans2(*~1/0*) = let // val i = indexlst_choose (ilst) (* val () = ( print "myintveclst_solve: solve: i = "; print i; print_newline (); print "myintveclst_solve: solve: ivs =\n"; print_myintveclst (ivs, n); print_newline () ) // end of [val] *) in if i > 0 then let val ans = myintveclst_split_at (ivs, n, i) // end of [val] in if ans >= 0 then solve (ivs, ilst, n) else ~1(*solved*) end else 0(*UNDECIDED*) // end of [if] end // end of [solve] // var ivs: ivs = ivs var ilst = indexlst_make (iset, n) val ans = solve (ivs, ilst, n) (* val () = ( print "myintveclst_solve: ans = "; print ans; print_newline () ) // end of [val] *) val () = myintveclst_free (ivs, n) val () = indexlst_free (ilst) // in ans end // end of [myintveclst_solve] (* ****** ****** *) (* ** ** HX-2012-02: ** iveq refers to an equality of the form: ** A[0] + A[1]*x1 + A[2]*x2 + ... + A[n]*xn = 0 ** *) extern fun{a:t@ype} myintvec_elimeq_at {n:int} ( iv: !myintvec (a, n), iveq: !myintvec (a, n), n: int n, i: intBtw (1, n) ) : void // end of [myintvec_elimeq_at] extern fun{a:t@ype} myintveclst_elimeq_at {n:int} ( ivs: !myintveclst (a, n), iveq: !myintvec (a, n), n: int n, i: intBtw (1, n) ) : void // end of [myintveclst_elimeq_at] (* ****** ****** *) implement{a} myintvec_elimeq_at (iv, iveq, n, i) = let (* val () = ( print "myintvec_elimeq_at: i = "; print_int (i); print_newline (); print "myintvec_elimeq_at: iv = "; print_myintvec (iv, n); print_newline (); print "myintvec_elimeq_at: iveq = "; print_myintvec (iveq, n); print_newline () ) // end of [val] *) // val sgn = myintvec_compare_at (iv, i, 0) // in // if sgn != 0 then let var c = iv[i] and ceq = iveq[i] val sgn = compare_myint_int (ceq, 0) in if sgn >= 0 then let val () = c := neg_myint (c) val () = myintvec_scale (ceq, iv, n) val () = myintvec_addby_cff (iv, c, iveq, n) val () = myint_free (c) and () = myint_free (ceq) in (*nothing*) end else let val () = ceq := neg_myint (ceq) val () = myintvec_scale (ceq, iv, n) val () = myintvec_addby_cff (iv, c, iveq, n) val () = myint_free (c) and () = myint_free (ceq) in (*nothing*) end (* end of [if] *) end else () // end of [if] // end // end of [myintvec_elimeq_at] implement{a} myintveclst_elimeq_at (ivs, iveq, n, i) = ( case+ ivs of | list_vt_cons (!p_iv, !p_ivs) => let val () = myintvec_elimeq_at (!p_iv, iveq, n, i) val () = myintveclst_elimeq_at (!p_ivs, iveq, n, i) in fold@ (ivs) end // end of [list_vt_cons] | list_vt_nil () => fold@ (ivs) ) // end of [myintveclst_elimeq_at] (* ****** ****** *) // datavtype myivlst(a:t@ype, int) = | {n:int} MYIVLSTnil(a, n) of () | {n:int} MYIVLSTcons(a, n) of ( int(*stamp*), myintvec (a, n), myivlst (a, n) ) // end of [MYIVLSTcons] | {n:int} MYIVLSTmark(a, n) of myivlst (a, n) // end of [myivlst] // (* ****** ****** *) // extern fun {a:t@ype} myivlst_free {n:int} (i1vs: myivlst (a, n), n: int n): void // end of [myivlst_free] // implement {a}(*tmp*) myivlst_free (i1vs, n) = ( case+ i1vs of | ~MYIVLSTnil ((*void*)) => () | ~MYIVLSTcons (_, iv, i1vs) => let val () = myintvec_free (iv, n) in myivlst_free (i1vs, n) end // end of [MYIVLSTcons] | ~MYIVLSTmark (i1vs) => myivlst_free (i1vs, n) ) (* end of [myivlst_free] *) // (* ****** ****** *) extern fun {a:t@ype} myivlst_mark{n:int} (i1vs: myivlst (a, n)): myivlst(a, n) // end of [myivlst_mark] implement {a}(*tmp*) myivlst_mark{n}(i1vs) = MYIVLSTmark(i1vs) (* ****** ****** *) extern fun{a:t@ype} myivlst_unmark{n:int} (i1vs: myivlst(a, n), n: int n): myivlst(a, n) // end of [myivlst_unmark] implement{a} myivlst_unmark (i1vs, n) = ( // case+ i1vs of | ~MYIVLSTnil ((*void*)) => MYIVLSTnil() | ~MYIVLSTcons (_, iv, i1vs) => let val () = myintvec_free(iv, n) in myivlst_unmark(i1vs, n) end // end of [MYIVEQLSTcons] | ~MYIVLSTmark(i1vs) => (i1vs) // ) (* end of [myivlst_unmark] *) (* ****** ****** *) // (* ** HX-2012-02: ** this is a poorman's doubly-linked list ** I am somewhat fond of this design. Maybe it should ** be put into libats for general use. *) // datavtype myiveqlst ( a:t@ype, int ) = // myiveqlst | {n:int} MYIVEQLSTnil(a, n) of () | {n:int} {i:int | 0 < i; i < n} MYIVEQLSTcons(a, n) of ( int(*stamp*) , myintvec (a, n), int i(*index*) , ptr(*prev*) , myiveqlst (a, n) ) // end of [MYIVEQLSTcons] | {n:int} MYIVEQLSTmark(a, n) of (ptr(*prev*), myiveqlst (a, n)) // end of [myiveqlst] // (* ****** ****** *) // (* ** HX: for the purpose of debugging *) extern fun {a:t@ype} fprint_myiveqlst {n:int} ( out: FILEref, xs: !myiveqlst (a, n) ) : void // end of [fprint_myiveqlst] implement {a}(*tmp*) fprint_myiveqlst (out, xs) = let // macdef prstr(s) = fprint_string (out, ,(s)) // in // case+ xs of | MYIVEQLSTnil ((*void*)) => let val () = prstr "MYIVEQLSTnil()" in fold@(xs) end // end of [MYIVEQLSTnil] | MYIVEQLSTcons ( _, _, _, _, !p_xs ) => { val () = prstr "MYIVEQLSTcons(" val () = fprint_myiveqlst (out, !p_xs) val () = prstr ")" prval () = fold@ (xs) } | MYIVEQLSTmark (_, !p_xs) => { val () = prstr "MYIVEQLSTmark(" val () = fprint_myiveqlst (out, !p_xs) val () = prstr ")" prval () = fold@ (xs) } // end // end of [fprint_myiveqlst] (* ****** ****** *) extern fun {a:t@ype} myiveqlst_free {n:int} (i1vs: myiveqlst (a, n), n: int n): void // end of [myiveqlst_free] implement {a}(*tmp*) myiveqlst_free (i1vs, n) = ( // case+ i1vs of // | ~MYIVEQLSTnil() => () // | ~MYIVEQLSTcons (_, iv, _, _, i1vs) => let val () = myintvec_free(iv, n) in myiveqlst_free(i1vs, n) end // end of [MYIVEQLSTcons] // | ~MYIVEQLSTmark(_, i1vs) => myiveqlst_free(i1vs, n) // ) (* end of [myiveqlst_free] *) (* ****** ****** *) extern castfn myiveqlst2ptr {a:t@ype}{n:int} (x: !myiveqlst (a, n)): ptr // end of [myiveqlst2ptr] (* ****** ****** *) fun{a:t@ype} myiveqlst_get_prev {n:int} ( x: !myiveqlst (a, n) ) : ptr = ( // case+ x of | MYIVEQLSTnil ((*void*)) => (fold@ (x); null) | MYIVEQLSTcons (_, _, _, !p_prev, _) => let prval () = fold@ (x) in p_prev end // end of [MYIVEQLSTcons] | MYIVEQLSTmark (!p_prev, _) => (fold@ (x); p_prev) // ) (* end of [myiveqlst_get_prev] *) (* ****** ****** *) // extern fun {a:t@ype} myiveqlst_cons {n:int} ( stamp: int, i: intBtw(1, n) , i1veq: myintvec(a, n), i1veqs: myiveqlst(a, n) ) : myiveqlst (a, n) // end-of-function // implement {a}(*tmp*) myiveqlst_cons ( stamp, i, i1veq, i1veqs ) = res where { // val p_prev = myiveqlst_get_prev(i1veqs) // end of [val] val p_prev = ptr1_of_ptr(p_prev) // val res = MYIVEQLSTcons (stamp, i1veq, i, null(*prev*), i1veqs) // end of [val] // val () = if p_prev > null then $UN.ptrset (p_prev, myiveqlst2ptr(res)) // end of [if] // end of [val] // } (* end of [myiveqlst_cons] *) // (* ****** ****** *) // extern fun {a:t@ype} myiveqlst_mark {n:int} (i1veqs: myiveqlst(a, n)): myiveqlst (a, n) // implement {a}(*tmp*) myiveqlst_mark {n}(i1veqs) = res where { // val p_prev = myiveqlst_get_prev(i1veqs) val p_prev = ptr1_of_ptr(p_prev) // val res = MYIVEQLSTmark(null(*prev*), i1veqs) // val () = if p_prev > null then $UN.ptrset (p_prev, myiveqlst2ptr(res)) // end of [if] // end of [val] // } (* end of [myiveqlst_mark] *) (* ****** ****** *) // extern fun {a:t@ype} myiveqlst_unmark {n:int} (i1veqs: myiveqlst(a, n), n: int n): myiveqlst(a, n) // end of [myiveqlst_unmark] implement{a} myiveqlst_unmark (i1veqs, n) = ( // case+ i1veqs of | ~MYIVEQLSTnil ((*void*)) => MYIVEQLSTnil() | ~MYIVEQLSTcons (_, iv, _, _, i1veqs) => let val () = myintvec_free (iv, n) in myiveqlst_unmark(i1veqs, n) end // end of [MYIVEQLSTcons] | ~MYIVEQLSTmark(_, i1veqs) => i1veqs // ) (* end of [myiveqlst_unmark] *) // (* ****** ****** *) extern fun {a:t@ype} myiveqlst_get_last {n:int}(xs: !myiveqlst (a, n)): ptr // end of [myiveqlst_get_last] implement {a}(*tmp*) myiveqlst_get_last {n}(xs) = let // viewtypedef vt = myiveqlst (a, n) // fun loop (prev: ptr, xs: !vt): ptr = let val pcur = $UN.castvwtp1{ptr}{vt}(xs) in // case+ xs of | MYIVEQLSTnil ((*void*)) => (fold@ (xs); prev) // end of [MYIVEQLSTnil] | MYIVEQLSTcons (_, _, _, _, !p_xs) => let val res = loop (pcur, !p_xs) in fold@ (xs); res end // end of [MYIVEQLSTcons] | MYIVEQLSTmark(_, !p_xs) => let val res = loop (pcur, !p_xs) in fold@ (xs); res end // end of [MYIVEQLSTmark] // end // end of [loop] // in loop (null, xs) end // end of [myiveqlst_get_last] (* ****** ****** *) // extern fun {a:t@ype} myintvec_elimeqlst {n:int} ( stamp0: int , iv: !myintvec (a, n), i1veqs: !myiveqlst (a, n), n: int (n) ) : void // end of [myintvec_elimeqlst] // local // fun{a:t@ype} myintvec_elimeqlst_rev {n:int} ( stamp0: int , iv: !myintvec (a, n), i1veqs: !myiveqlst (a, n), n: int (n) ) : void = let // val prev = ( case+ i1veqs of // | MYIVEQLSTnil() => (fold@ (i1veqs); null) // | MYIVEQLSTcons ( stamp, !p_i1veq, i, prev, _ ) => prev where { (* val () = ( print "MYIVEQLSTcons: prev = "; print prev; print_newline () ) // end of [val] *) val () = if stamp0 <= stamp then myintvec_elimeq_at (iv, !p_i1veq, n, i) // end of [val] prval () = fold@ (i1veqs) } (* end of [MYIVEQLSTcons] *) | MYIVEQLSTmark (prev, _) => prev where { (* val () = ( print "MYIVEQLSTmark: prev = "; print prev; print_newline () ) // end of [val] *) prval () = fold@ (i1veqs) } (* end of [MYIVEQLSTmark] *) // ) : ptr // end of [val] // in // if (prev > null) then { val _prev = __cast (prev) where { extern castfn __cast (_: ptr):<> myiveqlst (a, n) } // end of [val] val () = myintvec_elimeqlst_rev (stamp0, iv, _prev, n) prval () = __free (_prev) where { extern praxi __free (_: myiveqlst (a, n)): void } // end of [prval] } (* end of [if] *) // end // end of [myintvec_elimeqlst_rev] in (* in-of-local *) implement{a} myintvec_elimeqlst {n} (stamp0, iv, i1veqs, n) = let val last = myiveqlst_get_last (i1veqs) in // if (last > null) then { val i1veqs = __cast (last) where { extern castfn __cast (_: ptr): myiveqlst (a, n) } // end of [val] val () = myintvec_elimeqlst_rev (stamp0, iv, i1veqs, n) prval () = __free (i1veqs) where { extern praxi __free (_: myiveqlst (a, n)): void } // end of [prval] } (* end of [if] *) // end // end of [myintvec_elimeqlst] end // end of [local] (* ****** ****** *) extern fun{a:t@ype} myivlst_elimeqlst {n:nat} ( i1vs: !myivlst (a, n), i1veqs: !myiveqlst (a, n), n: int n ) : myintveclst (a, n) // end of [myivlst_elimeqlst] implement{a} myivlst_elimeqlst {n} (i1vs, i1veqs, n) = let // viewtypedef res = myintveclst (a, n) // fun loop ( i1vs: !myivlst (a, n) , i1veqs: !myiveqlst (a, n) , n: int n , res: &(res?) >> res ) : void = let in // case+ i1vs of | MYIVLSTnil ((*void*)) => let val () = res := list_vt_nil() in fold@ (i1vs) end // end of [MYINLSTnil] | MYIVLSTcons (stamp, !p_iv, !p_i1vs) => let val iv_new = myintvec_copy (!p_iv, n) val () = myintvec_elimeqlst (stamp, iv_new, i1veqs, n) val () = res := list_vt_cons {..}{0} (iv_new, ?) val+list_vt_cons (_, !p_res) = res val () = loop (!p_i1vs, i1veqs, n, !p_res) prval () = fold@ (res) in fold@ (i1vs) end // end of [MYIVLSTcons] | MYIVLSTmark (!p_i1vs) => let val () = loop (!p_i1vs, i1veqs, n, res) in fold@ (i1vs) end // end of [MYIVLSTmark] // end // end of [loop] // var res: res // uninitized val () = loop (i1vs, i1veqs, n, res) // in res end // end of [myivlst_elimeqlst] (* ****** ****** *) local extern fun{ a:t@ype } auxmain {n:pos}{s:int} ( stamp: int , iset: indexset (n) , i1vs: &myivlst (a, n) , i1veqs: &myiveqlst (a, n) , n: int n , ics: &list_vt(icnstr (a, n), s) ) : Ans2 (*~1/0*) extern fun{ a:t@ype } auxmain_conj {n:pos}{s:int} ( stamp: int , iset: indexset (n) , i1vs: &myivlst (a, n) , i1veqs: &myiveqlst (a, n) , n: int n , ics: &list_vt (icnstr (a, n), s) , ics1: &icnstrlst (a, n) ) : Ans2 (*~1/0*) extern fun{ a:t@ype } auxmain_disj {n:pos}{s:int} ( stamp: int , iset: indexset (n) , i1vs: &myivlst (a, n) , i1veqs: &myiveqlst (a, n) , n: int n , ics: &list_vt (icnstr (a, n), s) , ics1: &icnstrlst (a, n) , rics1: icnstrlst (a, n) ) : Ans2 (*~1/0*) (* ****** ****** *) fun{ a:t@ype } auxlt {n:pos} ( stamp: int , i1vs: &myivlst (a, n) , i1veqs: &myiveqlst (a, n) , iv: myintvec (a, n) , n: int n ) : Ans3 (*~1/0/1*) = let (* val () = ( print "auxlt: stamp = "; print stamp; print_newline () ) // end of [val] *) val () = myintvec_elimeqlst (0(*stamp*), iv, i1veqs, n) val sgn = myintvec_inspect_lt (iv, n) // in // if sgn = 0 then let val () = myintvec_negate (iv, n) val () = myintvec_add_int (iv, ~1) val () = myintvec_normalize_gte (iv, n) val () = i1vs := MYIVLSTcons (stamp, iv, i1vs) in 0(*undecided*) end else let val () = myintvec_free (iv, n) in sgn end // end of [if] // end // end of [auxlt] fun{ a:t@ype } auxgte {n:pos} ( stamp: int , i1vs: &myivlst (a, n) , i1veqs: &myiveqlst (a, n) , iv: myintvec (a, n) , n: int n ) : Ans3 (*~1/0/1*) = let (* val () = ( print "auxgte: stamp = "; print stamp; print_newline () ) // end of [val] *) val () = myintvec_elimeqlst (0(*stamp*), iv, i1veqs, n) val sgn = myintvec_inspect_gte (iv, n) // in // if sgn = 0 then let val () = myintvec_normalize_gte (iv, n) val () = i1vs := MYIVLSTcons (stamp, iv, i1vs) in 0(*undecided*) end else let val () = myintvec_free (iv, n) in sgn end // end of [if] // end // end of [auxgte] fun{ a:t@ype } auxeq {n:pos} ( stamp: int , i1vs: &myivlst (a, n) , i1veqs: &myiveqlst (a, n) , iv: myintvec (a, n) , n: int n ) : Ans3 (*~1/0/1*) = let (* val () = ( print "auxeq: iv = "; print_myintvec (iv, n); print_newline () ) // end of [val] *) val () = myintvec_elimeqlst (0(*stamp*), iv, i1veqs, n) val sgn = myintvec_inspect_eq (iv, n) // in // if sgn = 0 then let val i = myintvec_get_index_of_absmincff (iv, n) val () = i1veqs := myiveqlst_cons (stamp, i, iv, i1veqs) // end of [val] in 0(*undecided*) end else let val () = myintvec_free (iv, n) in sgn(*contra/tauto*) end // end of [if] // end // end of [auxeq] fun{ a:t@ype } auxcont {n:pos}{s:int} ( stamp: int , iset: indexset (n) , i1vs: &myivlst (a, n) , i1veqs: &myiveqlst (a, n) , n: int n , ics: &list_vt(icnstr (a, n), s) , sgn: int // ~1/0/1 ) : Ans2(*~1/0*) = let (* val () = ( print "auxcont: sgn = "; print_int sgn; print_newline () ) // end of [val] *) in // case+ 0 of | _ when sgn < 0 => ~1(*solved*) | _ when sgn > 0 => auxmain (stamp, iset, i1vs, i1veqs, n, ics) | _ (*sgn = 0 *) => let var ivs = myivlst_elimeqlst (i1vs, i1veqs, n) var ans2: Ans2 = myintveclst_inspect_gte (ivs, n) val () = ( if ans2 >= 0 then let val () = myintveclst_normalize_gte (ivs, n) val () = ans2 := myintveclst_solve (iset, ivs, n) in // nothing end else let val () = myintveclst_free (ivs, n) in (*nothing*) end // end of [if] ) : void // end of [if] val () = ( if ans2 >= 0 then ( ans2 := auxmain (stamp+1, iset, i1vs, i1veqs, n, ics) ) // end of [if] ) : void // end of [val] in ans2 end // end of [let] // end of [_(sgn=0)] // end // end of [auxcont] fun{a:t@ype} auxneq {n:pos} ( stamp: int , i1vs: &myivlst (a, n) , i1veqs: &myiveqlst (a, n) , iv: myintvec (a, n) , n: int n , sgn: &int? >> int ) : icnstr (a, n) = let (* val () = ( print "auxneq: iv = "; print_myintvec (iv, n); print_newline () ) // end of [val] *) // val () = // HX: stamp = 0 myintvec_elimeqlst (0, iv, i1veqs, n) val () = sgn := myintvec_inspect_neq (iv, n) // in // if sgn = 0 then let val iv1_new = myintvec_copy (iv, n) val () = myintvec_add_int (iv1_new, ~1) val cff = myint_make_int (~1) val iv2_new = myintvec_copy_cff (cff, iv, n) val () = myint_free (cff) val () = myintvec_add_int (iv2_new, ~1) // val () = myintvec_free (iv, n) // val knd = (2(*gte*)) val () = myintvec_normalize_gte (iv1_new, n) val () = myintvec_normalize_gte (iv2_new, n) val ic1 = ICvec (knd, iv1_new) val ic2 = ICvec (knd, iv2_new) in ICveclst (1(*disj*), list_vt_pair (ic1, ic2)) end else let // // sgn=~1/1:contra/tauto // val () = myintvec_free (iv, n) val knd = (if sgn > 0 then 0(*conj*) else 1(*disj*)): nat2 // end of [val] in ICveclst (knd, list_vt_nil) end // end of [if] // end // end of [auxneq] implement{a} auxmain {n}{s} ( stamp, iset, i1vs, i1veqs, n, ics ) = let // viewtypedef ic = icnstr (a, n) (* val () = ( print "auxmain: ics = "; print_icnstrlst (ics, n); print_newline () ) // end of [val] *) in // case+ ics of | list_vt_cons (!p_ic, !p_ics) => ( // case+ !p_ic of | ICvec (knd, !p_iv) => ( case 0 of | _ when ( knd = ~2(*lt*) ) => let val iv_new = myintvec_copy (!p_iv, n) prval () = fold@ (!p_ic) val ans3 = auxlt (stamp, i1vs, i1veqs, iv_new, n) val ans2 = auxcont (stamp, iset, i1vs, i1veqs, n, !p_ics, ans3) prval () = fold@ (ics) in ans2 end // end of [knd=~2] | _ when ( knd = 2(*gte*) ) => let val iv_new = myintvec_copy (!p_iv, n) prval () = fold@ (!p_ic) val ans3 = auxgte (stamp, i1vs, i1veqs, iv_new, n) val ans2 = auxcont (stamp, iset, i1vs, i1veqs, n, !p_ics, ans3) prval () = fold@ (ics) in ans2 end // end of [knd = 2] | _ when knd = 1(*eq*) => let val iv_new = myintvec_copy (!p_iv, n) prval () = fold@ (!p_ic) val ans3 = auxeq (stamp, i1vs, i1veqs, iv_new, n) val ans2 = auxcont (stamp, iset, i1vs, i1veqs, n, !p_ics, ans3) prval () = fold@ (ics) in ans2 end // end of [knd = 1] | _ (* knd = ~1(neq) *) => let var ans3: int // uninitized val ic_new = auxneq (stamp, i1vs, i1veqs, !p_iv, n, ans3) val () = free@ {a}{0} (!p_ic) val () = !p_ic := ic_new // HX: [ic] is equivalent to [ic_new] prval () = fold@ (ics) // HX: trying again after folding // end of [prval] in if ans3 >= 0 then auxmain (stamp, iset, i1vs, i1veqs, n, ics) else ~1(*solved*) // end of [if] end // end of [knd = ~1] ) // end of [ICvec] | ICveclst (knd, !p_ics1) => ( case+ 0 of | _ when knd = 0 => let val ans2 = auxmain_conj ( stamp, iset, i1vs, i1veqs, n, !p_ics, !p_ics1 ) // end of [val] prval () = fold@ (!p_ic); prval () = fold@ (ics) in ans2 end // end of [conj] | _ (* knd = 1 *) => let val ans2 = auxmain_disj ( stamp, iset, i1vs, i1veqs, n, !p_ics, !p_ics1, list_vt_nil ) // end of [val] prval () = fold@ (!p_ic); prval () = fold@ (ics) in ans2 end // end of [disj] ) // end of [ICveclst] | ICerr (loc, s3e) => let prval () = fold@ (!p_ic); prval () = fold@ (ics) in 0(*undecided*) end // end of [ICerr] // ) (* end of [list_vt_cons] *) | list_vt_nil () => let prval () = fold@ (ics) in 0(*unsolved*) end // end of [list_vt_nil] // end // end of [auxmain] implement{a} auxmain_conj {n}{s} ( stamp, iset, i1vs, i1veqs, n, ics, ics1 ) = let // viewtypedef ic = icnstr (a, n) prval () = list_vt_length_is_nonnegative{ic} (ics) prval () = list_vt_length_is_nonnegative{ic} (ics1) // val s1 = list_vt_length (ics1) val () = ics := list_vt_append (ics1, ics) val ans2 = auxmain (stamp, iset, i1vs, i1veqs, n, ics) val () = ics1 := list_vt_split_at (ics, s1) in ans2 end // end of [auxmain_conj] implement{a} auxmain_disj {n}{s} ( stamp, iset, i1vs, i1veqs, n, ics, ics1, rics1 ) = let viewtypedef ic = icnstr (a, n) prval () = list_vt_length_is_nonnegative{ic} (ics) in // case+ ics1 of | ~list_vt_cons (ic1, ics1_next) => let // val () = ics1 := ics1_next // // HX: copying needed for backtracking val icsx = icnstrlst_copy (ics, n) val icsx = list_vt_cons (ic1, icsx) // val () = i1vs := myivlst_mark (i1vs) val () = i1veqs := myiveqlst_mark (i1veqs) var icsx = icsx // HX: for call-by-reference val ans2 = auxmain (stamp, iset, i1vs, i1veqs, n, icsx) val () = i1vs := myivlst_unmark (i1vs, n) val () = i1veqs := myiveqlst_unmark (i1veqs, n) // val+~list_vt_cons (ic1, icsx) = icsx val () = icnstrlst_free (icsx, n) // HX: [icsx] may have been modified! val rics1 = list_vt_cons (ic1, rics1) // in if ans2 >= 0 then let val () = (ics1 := list_vt_reverse_append (rics1, ics1)) in 0(*unsolved*) end else ( // solved and continue auxmain_disj (stamp, iset, i1vs, i1veqs, n, ics, ics1, rics1) ) // end of [if] end // end of [list_vt_cons] | ~list_vt_nil () => let val () = ics1 := list_vt_reverse (rics1) in ~1(*solved*) end // end of [list_vt_nil] // end // end of [auxmain_disj] in (* in-of-local *) implement{a} icnstrlst_solve {n} (iset, ics, n) = let (* // val () = ( print "icnstrlst_solve: ics =\n"; fprint_icnstrlst (stdout_ref, ics, n); print "icnstrlst_solve: n = "; print n; print_newline () ) (* end of [val] *) // *) var i1vs: myivlst (a, n) = MYIVLSTnil() var i1veqs: myiveqlst (a, n) = MYIVEQLSTnil() // val ans2 = auxmain (0(*stamp*), iset, i1vs, i1veqs, n, ics) // val () = myivlst_free (i1vs, n) val () = myiveqlst_free (i1veqs, n) // in ans2 end // end of [icnstrlst_solve] end // end of [local] (* ****** ****** *) (* local // typedef intknd = int // extern fun icnstrlst_int_solve {n:pos} (ics: &icnstrlst (intknd, n), n: int n): int in // implement icnstrlst_int_solve (ics, n) = icnstrlst_solve (ics, n) // end of [icnstrlst_int_solve] // end // end of [local] local // typedef intknd = $extype "intinf" fun icnstrlst_intinf_solve {n:pos} (ics: &icnstrlst (intknd, n), n: int n): int end // end of [local] // in // implement icnstrlst_intinf_solve (ics, n) = icnstrlst_solve (ics, n) // end of [icnstrlst_intinf_solve] // end // end of [local] *) (* ****** ****** *) (* end of [pats_lintprgm_solve.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env_print.dats0000644000175000017500000001403413431250607022655 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: January, 2012 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) implement fprint_c3nstr (out, c3t) = let // macdef prstr (x) = fprint_string (out, ,(x)) // in // case+ c3t.c3nstr_node of // case+ | C3NSTRprop (s2p) => { val () = prstr "C3NSTRprop(" val () = fprint_c3nstrkind (out, c3t.c3nstr_kind) val () = prstr "; " val () = fpprint_s2exp (out, s2p) val ((*closing*)) = prstr ")" } (* end of [C3NSTRprop] *) | C3NSTRitmlst (s3is) => { val () = prstr "C3NSTRitmlst(" val () = fprint_c3nstrkind (out, c3t.c3nstr_kind) val () = prstr "; " val () = fprint_s3itmlst (out, s3is) val ((*closing*)) = prstr ")" } (* end of [C3NSTRitmlst] *) // | C3NSTRsolverify (s2e_prop) => { val () = prstr "C3NSTRsolverify(" val () = fprint_s2exp (out, s2e_prop) val ((*closing*)) = prstr ")" } (* end of [C3NSTRsolverify] *) // end // end of [fprint_c3nstr] implement print_c3nstr (x) = fprint_c3nstr (stdout_ref, x) implement prerr_c3nstr (x) = fprint_c3nstr (stderr_ref, x) (* ****** ****** *) implement fprint_c3nstrkind (out, knd) = let // macdef prstr (x) = fprint_string (out, ,(x)) // in // case+ knd of | C3TKmain() => prstr "C3TKmain()" | C3TKcase_exhaustiveness _ => prstr "C3TKcase_exhaustiveness(...)" // | C3TKtermet_isnat() => prstr "C3TKtermet_isnat()" | C3TKtermet_isdec() => prstr "C3TKtermet_isdec()" // | C3TKsome_fin _ => prstr "C3TKsome_fin()" | C3TKsome_lvar _ => prstr "C3TKsome_lvar()" | C3TKsome_vbox _ => prstr "C3TKsome_vbox()" // | C3TKlstate() => prstr "C3TKlstate()" | C3TKlstate_var(d2v) => ( fprint! (out, "C3TKlstate(", d2v, ")") // fprint! ) (* C3TKlstate_var *) // | C3TKloop(knd) => fprint! (out, "C3TKloop(", knd, ")") // | C3TKsolverify() => prstr "C3TKsolverify()" // end // end of [fprint_c3nstrkind] (* ****** ****** *) implement fprint_h3ypo (out, h3p) = let // macdef prstr (x) = fprint_string (out, ,(x)) // in // case+ h3p.h3ypo_node of | H3YPOprop s2p => { val () = prstr "H2YPOprop(" val () = fpprint_s2exp (out, s2p) val () = prstr ")" } // end of [H3YPOprop] | H3YPObind (s2v, s2p) => { val () = prstr "H2YPObind(" val () = fprint_s2var (out, s2v) val () = prstr " -> " val () = fpprint_s2exp (out, s2p) val () = prstr ")" } // end of [H3YPObind] | H3YPOeqeq (s2e1, s2e2) => { val () = prstr "H2YPOeqeq(" val () = fpprint_s2exp (out, s2e1) val () = prstr " == " val () = fpprint_s2exp (out, s2e2) val () = prstr ")" } // end of [H3YPOeqeq] // end // end of [fprint_h3ypo] implement print_h3ypo (x) = fprint_h3ypo (stdout_ref, x) implement prerr_h3ypo (x) = fprint_h3ypo (stderr_ref, x) (* ****** ****** *) implement fprint_s3itm (out, s3i) = let // macdef prstr (x) = fprint_string (out, ,(x)) // in // case+ s3i of // | S3ITMsvar (s2v) => { val () = prstr "S3ITMsvar(" val () = fprint_s2var (out, s2v) val () = prstr ")" } // end of [S3ITMsvar] | S3ITMhypo (h3p) => { val () = prstr "S3ITMhypo(" val () = fprint_h3ypo (out, h3p) val () = prstr ")" } // end of [S3ITMhypo] | S3ITMsVar (s2V) => { val () = prstr "S3ITMsVar(" val () = fprint_s2Var (out, s2V) val opt = s2Var_get_link (s2V) val () = ( case+ opt of | Some s2e => ( prstr "->"; fpprint_s2exp (out, s2e) ) // end of [Some] | None () => () // end of [None] ) : void // end of [val] val () = prstr ")" } // end of [S3ITMsVar] // | S3ITMcnstr (c3t) => { val () = prstr "S3ITMcnstr(" val () = fprint_c3nstr (out, c3t) val () = prstr ")" } // end of [S3ITMcnstr] | S3ITMcnstr_ref (ctr) => { val ref = ctr.c3nstroptref_ref val () = prstr "S3ITMcnstr_ref(" val () = ( case+ !ref of | Some c3t => fprint_c3nstr (out, c3t) | None () => () ) : void // end of [val] val () = prstr ")" } // end of [S3ITMcnstr_ref] // | S3ITMdisj (s3iss) => { val () = prstr "S3ITMdisj(" val () = fprint_s3itmlstlst (out, s3iss) val () = prstr ")" } // | S3ITMsolassert (s2e_prop) => { val () = prstr "S3ITMsolassert(" val () = fprint_s2exp (out, s2e_prop) val ((*closing*)) = prstr ")" } (* end of [S3ITMsolassert] *) // end // end of [fprint_s3itm] (* ****** ****** *) implement fprint_s3itmlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_s3itm) // end of [fprint_s3itmlst] implement fprint_s3itmlstlst (out, xss) = $UT.fprintlst (out, xss, "; ", fprint_s3itmlst) // end of [fprint_s3itmlstlst] (* ****** ****** *) (* end of [pats_trans3_env_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_e1xpval_error.dats0000644000175000017500000001346513431250607022157 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_e1xpval.sats" (* ****** ****** *) implement fprint_valerr (out, x) = let macdef prstr (x) = fprint_string (out, ,(x)) in // case+ x of | VE_valize (e0) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the expression cannot be evaluated to a value." val () = fprint_newline (out) } | VE_valize_defined (e0) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the expression is expected to be an indentifer." val () = fprint_newline (out) } | VE_valize_undefined (e0) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the expression is expected to be an indentifer." val () = fprint_newline (out) } | VE_maxlevel (lev, e0) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = fprintf ( out, ": error(1): the maximal evaluation depth (%i) has been reached.", @(lev) ) // end of [val] val () = fprint_newline (out) } | VE_opr_arglst (e0, id) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the operator [" val () = $SYM.fprint_symbol (out, id) val () = prstr "] cannot handle its argument(s)." val () = fprint_newline (out) } | VE_E1XPide_unbound (e0) => { val loc0 = e0.e1xp_loc val-E1XPide (id) = e0.e1xp_node val () = $LOC.fprint_location (out, loc0) val () = prstr ": error(1): the identifier [" val () = $SYM.fprint_symbol (out, id) val () = prstr "] is unbound." val () = fprint_newline (out) } | VE_E1XPundef (e0) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the expression cannot be evaluated as it is un-defined." val () = fprint_newline (out) } | VE_E1XPlist (e0) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the expression cannot be evaluated as it is a tuple." val () = fprint_newline (out) } | VE_E1XPapp_fun (e0) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the applied expression is required to be an identifier." val () = fprint_newline (out) } | VE_E1XPappid_fun (e0, id) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the applied identifier [" val () = $SYM.fprint_symbol (out, id) val () = prstr "] does not refer to a function." val () = fprint_newline (out) } | VE_E1XPappid_opr (e0, id) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the applied identifier [" val () = $SYM.fprint_symbol (out, id) val () = prstr "] does not refer to a supported operator." val () = fprint_newline (out) } | VE_E1XPappid_arity (e0, id) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): arity mismatch for this function application." val () = fprint_newline (out) } | VE_E1XPfun (e0) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the expression cannot be evaluated as it is a function." val () = fprint_newline (out) } | VE_E1XPerr (e0) => { val () = $LOC.fprint_location (out, e0.e1xp_loc) val () = prstr ": error(1): the expression cannot be evaluated as it indicates an error." val () = fprint_newline (out) } // end // end of [fprint_valerr] (* ****** ****** *) viewtypedef valerrlst_vt = List_vt (valerr) extern fun the_valerrlst_get (): valerrlst_vt (* ****** ****** *) local val the_valerrlst = ref (list_vt_nil) in // in of [local] implement the_valerrlst_add (x) = () where { val (vbox pf | p) = ref_get_view_ptr (the_valerrlst) val () = !p := list_vt_cons (x, !p) } // end of [the_valerrlst_add] implement the_valerrlst_get () = xs where { val (vbox pf | p) = ref_get_view_ptr (the_valerrlst) val xs = !p val () = !p := list_vt_nil () } // end of [the_valerrlst_get] end // end of [local] (* ****** ****** *) implement fprint_the_valerrlst (out) = let val xs = the_valerrlst_get () fun loop ( out: FILEref, xs: valerrlst_vt ) : void = case+ xs of | ~list_vt_cons (x, xs) => ( fprint_valerr (out, x); loop (out, xs) ) // end of [list_vt_cons] | ~list_vt_nil () => () // end of [loop] in loop (out, xs) end // end of [fprint_the_valerrlst] (* ****** ****** *) (* end of [pats_e1xpval_error.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp2_util2.dats0000644000175000017500000012707613431250607022077 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) // staload LAB = "./pats_label.sats" overload = with $LAB.eq_label_label overload != with $LAB.neq_label_label // staload EFF = "./pats_effect.sats" overload = with $EFF.eq_effset_effset // (* ****** ****** *) // staload INTINF = "./pats_intinf.sats" // macdef eq_int_intinf = $INTINF.eq_int_intinf macdef eq_intinf_int = $INTINF.eq_intinf_int macdef eq_intinf_intinf = $INTINF.eq_intinf_intinf // (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_stacst2.sats" staload "./pats_staexp2_util.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) // extern fun s2exp_linkrem_flag ( s2e0: s2exp, flag: &int >> int ) : s2exp // s2exp_linkrem_flag // (* ****** ****** *) // implement s2exp_linkrem_flag (s2e0, flag) = let (* val () = println! ( "s2exp_linkrem_flag: s2e0 = ", s2e0 ) (* end of [val] *) *) // (* HX-2017-03-14: 1000 should be enough *) #define S2EXP_LINKREM_DEPTH 1000 // fun auxlinkrem ( s2e0: s2exp , flag: &int >> int, tick: int ) : s2exp = let // (* val () = prerrln! ("auxinkrem: tick = ", tick) *) // val () = if (tick <= 0) then () where { // val () = ( prerrln! ("Panic from [patsopt]:\n"); prerrln! ("The potential causes may be:\n"); prerrln! ("1. template arguments are not given explicitly;"); prerrln! ("2. ...(other potential causes are yet to be added!)"); ) // val () = $ERR.abort_interr{void}() // } (* end of [if] *) // in // case+ s2e0.s2exp_node of (* case+ *) | S2Ecst(s2c) => let // val isr = s2cst_get_isrec(s2c) // in if isr then s2e0 else let val opt = s2cst_get_def(s2c) // end of [val] in case+ opt of | None() => s2e0 | Some(s2e) => let val () = (flag := flag + 1) // end of [val] in auxlinkrem(s2e, flag, tick-1) end // end of [Some] end (* end of [if] *) end // end of [S2Ecst] // // HX: the link of s2V should not be updated!!! // | S2EVar(s2V) => ( case+ s2Var_get_link(s2V) of (* case+ *) | Some(s2e) => let val () = (flag := flag + 1) in auxlinkrem(s2e, flag, tick-1) // end of [val] end // end of [Some] | None((*void*)) => s2e0 ) (* end of [S2EVar] *) // | _ (* rest-of-s2exp *) => s2e0 // end of [_] // end // end of [auxlinkrem] // in // auxlinkrem(s2e0, flag, S2EXP_LINKREM_DEPTH(*1000000*)) // end (* end of [s2exp_linkrem_flag] *) // implement s2exp_linkrem(s2e0) = let var flag: int = 0 in s2exp_linkrem_flag(s2e0, flag) end // end of [s2exp_linkrem] // (* ****** ****** *) fun labs2explst_top ( knd: int, ls2es0: labs2explst ) : labs2explst = let in // case+ ls2es0 of | list_nil ((*void*)) => list_nil() // end of [list_nil] // | list_cons (ls2e, ls2es) => let // val SLABELED(l, name, s2e) = ls2e // val s2e = s2exp_top(knd, s2e) val ls2e = SLABELED(l, name, s2e) val ls2es = labs2explst_top(knd, ls2es) // in list_cons(ls2e, ls2es) end // end of [list_cons] end // end of [labs2explst_top] (* ****** ****** *) extern fun s2exp_topize_flag (knd: int, s2e: s2exp, flag: &int >> int): s2exp // end of [s2exp_topize_flag] extern fun s2exp_invar_flag(s2e: s2exp, flag: &int >> int): s2exp (* ****** ****** *) extern fun s2exp_hnfize_flag (s2e: s2exp, flag: &int >> int): s2exp extern fun s2explst_hnfize_flag (s2es: s2explst, flag: &int >> int): s2explst extern fun labs2explst_hnfize_flag (ls2es: labs2explst, flag: &int >> int): labs2explst (* ****** ****** *) extern fun s2exp_hnfize_app ( s2e0: s2exp , s2e_fun: s2exp, s2es_arg: s2explst, flag: &int >> int ) : s2exp // [s2exp_hnfize_app] (* ****** ****** *) implement s2exp_topize_flag (knd, s2e0, flag) = let // val s2t0 = s2e0.s2exp_srt // in // case+ 0 of | _ when s2rt_is_prf(s2t0) => let val () = flag := flag+1 in s2exp_unit_prop() end // end of [_ when ...] | _ (*isprf=false*) => let val isdone = ( if (knd > 0) // typization then ( if s2exp_is_lin(s2e0) then false else true ) else false // end of [else] ) : bool // end of [val] val s2e0 = s2exp_hnfize_flag(s2e0, flag) in if isdone then s2e0 // no change else let val () = flag := flag+1 in case+ s2e0.s2exp_node of (* case+ *) | S2Etop(_, s2e) => s2exp_topize_flag(knd, s2e, flag) // end of [S2Etop] | S2Etyarr (s2e_elt, dim) => let val s2e_elt = s2exp_top (knd, s2e_elt) in s2exp_tyarr_srt(s2rt_t0ype, s2e_elt, dim) end // end of [S2Etyarr] | S2Etyrec (recknd, npf, ls2es) => let val isboxed = tyreckind_is_boxed(recknd) in if isboxed then s2exp_ptr_type () else let val ls2es = labs2explst_top(knd, ls2es) in s2exp_tyrec_srt(s2rt_t0ype, recknd, npf, ls2es) end // end of [else] // end of [if] end // end of [S2Etyrec] | _ when // HX: this seems adequate s2rt_is_boxed(s2t0) => s2exp_ptr_type() | _ => s2exp_top_srt(s2rt_t0ype, knd, s2e0) end (* end of [if] *) end // end of [_] // end (* end of [s2exp_topize_flag] *) (* ****** ****** *) implement s2exp_topize (knd, s2e) = let var flag: int = 0 in s2exp_topize_flag(knd, s2e, flag) end // end of [s2exp_topize_0] implement s2exp_topize_0(s2e) = s2exp_topize(0(*knd*), s2e) implement s2exp_topize_1(s2e) = s2exp_topize(1(*knd*), s2e) (* ****** ****** *) implement s2exp_invar_flag (s2e0, flag) = let // val-S2Einvar(s2e) = s2e0.s2exp_node // in // case+ s2e.s2exp_node of (*case+*) // | S2Evar _ => s2e0 // | S2EVar _ => let val flag0 = flag val s2e = s2exp_hnfize_flag(s2e, flag) // end of [val] in if flag <= flag0 then s2e0 else s2e end // end of [S2Evar] // | _ => let val () = flag := flag + 1 in s2exp_hnfize_flag(s2e, flag) end // end of [_] // end // end of [s2exp_invar_flag] (* ****** ****** *) implement s2exp_hnfize_app ( s2e0, s2e_fun, s2es_arg, flag ) = let (* // val () = println! ("s2exp_hnfize_app: s2e0 = ", s2e0) // *) // val flag0 = flag // val s2e_fun = s2exp_hnfize_flag(s2e_fun, flag) // val s2es_arg = s2explst_hnfize_flag(s2es_arg, flag) // (* // val () = println! ("s2exp_hnfize_app: s2es_arg = ", s2es_arg) // *) in // case+ s2e_fun.s2exp_node of // case+ | S2Elam ( s2vs_arg, s2e_body ) => let #define :: list_cons fun aux ( s2vs: s2varlst , s2es: s2explst, sub: &stasub ) : void = case+ ( s2vs, s2es ) of (* case+ *) | (list_nil(), _) => () | (_, list_nil()) => () | (s2v :: s2vs, s2e :: s2es) => aux(s2vs, s2es, sub) where { val () = stasub_add(sub, s2v, s2e) } (* end of [cons, cons] *) // end of [aux] val () = flag := flag + 1 var sub = stasub_make_nil() val () = aux(s2vs_arg, s2es_arg, sub) // end of [val] val s2e0 = s2exp_subst(sub, s2e_body) // end of [val] val ((*freed*)) = stasub_free(sub) in s2exp_hnfize_flag(s2e0, flag) end // end of [S2Elam] | _ (* non-S2Elam *) => ( if flag > flag0 then s2exp_app_srt(s2e0.s2exp_srt, s2e_fun, s2es_arg) else s2e0 (* there is no change *) // end of [if] ) (* end of [non-S2Elam] *) // end // end of [s2exp_hnfize_flag_app] (* ****** ****** *) implement s2exp_hnfize_flag (s2e0, flag) = let // (* val () = ( println! ( "s2exp_hnfize_flag: s2e0(bef) = ", s2e0 ) ) // end of [val] *) // val s2t0 = s2e0.s2exp_srt val s2e0 = s2exp_linkrem_flag(s2e0, flag) // (* // val () = ( println! ( "s2exp_hnfize_flag: s2e0(aft) = ", s2e0 ) ) // end of [val] *) // in // case+ s2e0.s2exp_node of (* case+ *) // | S2Eint _ => s2e0 | S2Eintinf _ => s2e0 // | S2Efloat _ => s2e0 | S2Estring _ => s2e0 // | S2Ecst _ => s2e0 // | S2Eextype _ => s2e0 | S2Eextkind _ => s2e0 // | S2Evar (s2v) => s2exp_hnfize_flag_svar (s2e0, s2v, flag) // end of [S2Evar] // | S2EVar _ => s2e0 // | S2Ehole _ => s2e0 // | S2Edatcontyp _ => s2e0 | S2Edatconptr _ => s2e0 // | S2Eat _ => s2e0 | S2Esizeof _ => s2e0 // | S2Eeff _ => s2e0 | S2Eeqeq _ => s2e0 // | S2Eproj _ => s2e0 // | S2Eapp ( s2e_fun, s2es_arg ) => s2exp_hnfize_app(s2e0, s2e_fun, s2es_arg, flag) // end of [S2Eapp] | S2Elam ( s2vs_arg, s2e_body ) => let val flag0 = flag val s2e_body = s2exp_hnfize_flag (s2e_body, flag) in if flag > flag0 then s2exp_lam_srt(s2t0, s2vs_arg, s2e_body) else s2e0 // end of [if] end // end of [S2Elam] | S2Efun _ => s2e0 | S2Emetfun _ => s2e0 | S2Emetdec _ => s2e0 // | S2Etop(knd, s2e) => s2exp_topize_flag (knd, s2e, flag) | S2Ewithout _ => s2e0 // | S2Etyarr _ => s2e0 | S2Etyrec _ => s2e0 // | S2Einvar _ => s2exp_invar_flag (s2e0, flag) // (* | S2Eexi _=> s2e0 | S2Euni _=> s2e0 *) | S2Eexi ( s2vs, s2ps, s2e_scope ) => let val flag0 = flag val s2e_scope = s2exp_hnfize_flag(s2e_scope, flag) in if flag > flag0 then s2exp_exi(s2vs, s2ps, s2e_scope) else s2e0 end // end of [S2Eexi] | S2Euni ( s2vs, s2ps, s2e_scope ) => let val flag0 = flag val s2e_scope = s2exp_hnfize_flag(s2e_scope, flag) in if flag > flag0 then s2exp_uni(s2vs, s2ps, s2e_scope) else s2e0 end // end of [S2Euni] // | S2Erefarg _ => s2e0 // | S2Evararg _ => s2e0 // | S2Ewthtype _ => s2e0 // | S2Eerrexp((*void*)) => s2e0 // (* | _ (*rest-of-s2exp*) => let val () = ( print "s2exp_hnfize_flag: s2e0 = "; print_s2exp (s2e0); print_newline () ) // end of [val] val () = assertloc (false) in s2e0 end // end of [_] *) // end // end of [s2exp_hnfize_flag] (* ****** ****** *) implement s2explst_hnfize_flag (s2es0, flag) = let in // case+ s2es0 of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (s2e, s2es) => let // val flag0 = flag // val s2e = s2exp_hnfize_flag(s2e, flag) val s2es = s2explst_hnfize_flag(s2es, flag) // in if flag > flag0 then list_cons (s2e, s2es) else s2es0 // end of [if] end // end of [list_cons] // end // end of [s2explst_hnfize_flag] (* ****** ****** *) implement labs2explst_hnfize_flag (ls2es0, flag) = let in // case+ ls2es0 of | list_nil ((*void*)) => list_nil() // end of [list_nil] | list_cons (ls2e, ls2es) => let val flag0 = flag val SLABELED(l, name, s2e) = ls2e val s2e = s2exp_hnfize_flag(s2e, flag) val ls2es = labs2explst_hnfize_flag(ls2es, flag) in if flag > flag0 then list_cons(SLABELED(l, name, s2e), ls2es) else ls2es0 // end of [if] end // end of [list_cons] // end // end of [labs2explst_hnfize_flag] (* ****** ****** *) implement s2exp_hnfize(s2e) = let // (* val () = println! ("s2exp_hnfize: s2e = ", s2e) *) // var flag: int = 0 in s2exp_hnfize_flag(s2e, flag) end // end of [s2exp_hnfsize] implement s2explst_hnfize(s2es) = let var flag: int = 0 in s2explst_hnfize_flag(s2es, flag) end // end of [s2explst_hnfsize] implement s2expopt_hnfize (opt) = let var flag: int = 0 in // case+ opt of | None() => None() | Some(s2e) => let val s2f = s2exp_hnfize_flag(s2e, flag) // end of [val] in if flag > 0 then Some(s2f) else opt end // end of [Some] // end // end of [s2expopt_hnfsize] (* ****** ****** *) // extern fun s2exp_mhnfize_flag (x: s2exp, flag: &int >> int): s2exp extern fun s2explst_mhnfize_flag (xs: s2explst, flag: &int >> int): s2explst extern fun s2explstlst_mhnfize_flag (xss: s2explstlst, flag: &int >> int): s2explstlst // (* extern fun labs2explst_mhnfize_flag (ls2es: labs2explst, flag: &int >> int): labs2explst *) // (* ****** ****** *) implement s2exp_mhnfize_flag (s2e0, flag) = let // val s2e0 = s2exp_hnfize_flag(s2e0, flag) // in // case+ s2e0.s2exp_node of | S2EVar(s2V) => let val f0 = flag val s2ze = s2Var_get_szexp(s2V) in case+ s2ze of | S2ZEvar (s2v) => let val () = flag := f0 + 1 in s2exp_var(s2v) end // end of [S2ZEvar] | _(*non-s2var*) => s2e0 end // end of [S2EVar] | _ (*non-S2EVar*) => s2e0 // HX: should be removed eventually! // end // end of [s2exp_mhnfize_flag] (* ****** ****** *) implement s2explst_mhnfize_flag (s2es0, flag) = let in // case+ s2es0 of | list_nil () => list_nil() // list_nil | list_cons (s2e, s2es) => let val flag0 = flag val s2e = s2exp_mhnfize_flag(s2e, flag) val s2es = s2explst_mhnfize_flag(s2es, flag) in if flag > flag0 then list_cons(s2e, s2es) else s2es0 end // end of [list_cons] // end // end of [s2explst_mhnfize_flag] (* ****** ****** *) implement s2explstlst_mhnfize_flag (s2ess0, flag) = let in // case+ s2ess0 of | list_nil () => list_nil() // list_nil | list_cons (s2es, s2ess) => let val flag0 = flag val s2es = s2explst_mhnfize_flag (s2es, flag) val s2ess = s2explstlst_mhnfize_flag (s2ess, flag) in if flag > flag0 then list_cons (s2es, s2ess) else s2ess0 end // end of [list_cons] // end // end of [s2explstlst_mhnfize_flag] (* ****** ****** *) implement s2exp_mhnfize(s2e) = let var flag: int = 0 in s2exp_mhnfize_flag(s2e, flag) end // end of [s2exp_mhnfize] implement s2explst_mhnfize(s2es) = let var flag: int = 0 in s2explst_mhnfize_flag(s2es, flag) end // end of [s2explst_mhnfize] implement s2explstlst_mhnfize(s2ess) = let var flag: int = 0 in s2explstlst_mhnfize_flag(s2ess, flag) end // end of [s2explstlst_mhnfize] (* ****** ****** *) // implement s2hnf2exp(s2f) = $UN.cast{s2exp}(s2f) // implement s2exp2hnf(s2e) = let // val s2f = s2exp_hnfize(s2e) in $UN.cast{s2hnf}(s2f) // end // end of [s2exp2hnf] // implement s2exp2hnf_cast(s2e) = $UN.cast{s2hnf}(s2e) // (* ****** ****** *) // extern fun s2hnf_syneq_exn (s2f1: s2hnf, s2f2: s2hnf): void and s2exp_syneq_exn (s2e1: s2exp, s2e2: s2exp): void // extern fun s2hnflst_syneq_exn (xs1: s2hnflst, xs2: s2hnflst): void and s2explst_syneq_exn (xs1: s2explst, xs2: s2explst): void // extern fun s2explstlst_syneq_exn (xss1: s2explstlst, xss2: s2explstlst): void // end of [s2explstlst_syneq_exn] // (* ****** ****** *) // exception SYNEQexn of () // (* ****** ****** *) implement s2hnf_syneq (s2f1, s2f2) = ( try let // val () = s2hnf_syneq_exn(s2f1, s2f2) // in true end with | ~SYNEQexn((*void*)) => false ) (* end of [s2hnf_syneq] *) implement s2exp_syneq (s2e1, s2e2) = ( try let // val () = s2exp_syneq_exn(s2e1, s2e2) // in true end with | ~SYNEQexn((*void*)) => false ) (* end of [s2exp_syneq] *) (* ****** ****** *) implement s2explst_syneq (xs1, xs2) = ( try let // val () = s2explst_syneq_exn(xs1, xs2) // in true end with | ~SYNEQexn((*void*)) => false ) (* end of [s2explst_syneq] *) (* ****** ****** *) implement s2exp_syneq_exn (s2e10, s2e20) = let val s2f10 = s2exp2hnf (s2e10) and s2f20 = s2exp2hnf (s2e20) in s2hnf_syneq_exn (s2f10, s2f20) end // end of [s2exp_syneq_exn] implement s2hnflst_syneq_exn (xs1, xs2) = let in // case+ (xs1, xs2) of | (list_cons(x1, xs1), list_cons(x2, xs2)) => let val () = s2hnf_syneq_exn(x1, x2) in s2hnflst_syneq_exn(xs1, xs2) end // end of [cons, cons] | (list_nil(), list_nil()) => () | (_, _) => $raise (SYNEQexn) // end // end of [s2hnflst_syneq_exn] implement s2explst_syneq_exn (xs1, xs2) = let // (* val () = println! ("s2explst_syneq_exn") *) // in // case+ (xs1, xs2) of (*case+*) | ( list_cons(x1, xs1) , list_cons(x2, xs2) ) => let val () = s2exp_syneq_exn(x1, x2) in s2explst_syneq_exn(xs1, xs2) end // end of [cons, cons] | (list_nil(), list_nil()) => () // | (_(*s2explst*), _(*s2explst*)) => $raise (SYNEQexn) // end // end of [s2explst_syneq_exn] implement s2explstlst_syneq_exn (xss1, xss2) = let // (* val () = println! ("s2explstlst_syneq_exn") *) // in // case+ (xss1, xss2) of (*case+*) | ( list_cons(xs1, xss1) , list_cons(xs2, xss2) ) => let val () = s2explst_syneq_exn(xs1, xs2) in s2explstlst_syneq_exn(xss1, xss2) end // end of [cons, cons] | (list_nil(), list_nil()) => () // | (_(*s2explstlst*), _(*s2explstlst*)) => $raise (SYNEQexn) // end // end of [s2explstlst_syneq_exn] (* ****** ****** *) // fun s2eff_syneq ( s2fe1: s2eff, s2fe2: s2eff ) : bool = ( try let // val () = s2eff_syneq_exn (s2fe1, s2fe2) // in true end with | ~SYNEQexn((*void*)) => false ) (* end of [s2eff_syneq_exn] *) // and s2eff_syneq_exn ( s2fe1: s2eff, s2fe2: s2eff ) : void = let in // case+ (s2fe1, s2fe2) of (* case+ *) | ( S2EFFset(xs1) , S2EFFset(xs2) ) => if ~(xs1=xs2) then $raise (SYNEQexn) // end of [if] // end of [S2EFFset, S2EFFset] // | ( S2EFFexp(s2e1) , S2EFFexp(s2e2) ) => s2exp_syneq_exn(s2e1, s2e2) // | ( S2EFFadd(s2fe11, s2fe12) , S2EFFadd(s2fe21, s2fe22) ) => { val () = s2eff_syneq_exn(s2fe11, s2fe21) val () = s2eff_syneq_exn(s2fe21, s2fe22) } // end of [S2EFFadd, S2EFFadd] // | (_(*s2eff*), _(*s2eff*)) => $raise (SYNEQexn) // end // end of [s2eff_syneq_exn] // (* ****** ****** *) fun s2lab_syneq ( s2l1: s2lab, s2l2: s2lab ) : bool = ( // try let // val () = s2lab_syneq_exn(s2l1, s2l2) // in true end with ~SYNEQexn() => false // ) (* end of [s2lab_syneq] *) and s2lablst_syneq ( s2ls1: s2lablst, s2ls2: s2lablst ) : bool = ( // try let // val () = s2lablst_syneq_exn(s2ls1, s2ls2) // in true end with ~SYNEQexn() => false // ) (* end of [s2lablst_syneq] *) and s2lab_syneq_exn ( s2l1: s2lab, s2l2: s2lab ) : void = let in // case+ s2l1 of | S2LABlab l1 => ( case+ s2l2 of | S2LABlab(l2) => if ~(l1=l2) then $raise (SYNEQexn) // end of [if] // end of [S2LABlab] | S2LABind(_) => $raise (SYNEQexn) ) | S2LABind(ind1) => ( case+ s2l2 of | S2LABlab(_) => $raise (SYNEQexn) | S2LABind(ind2) => s2explst_syneq_exn(ind1, ind2) ) // end // end of [s2lab_syneq_exn] and s2lablst_syneq_exn ( s2ls1: s2lablst, s2ls2: s2lablst ) : void = let in // case+ (s2ls1, s2ls2) of (* case+ *) | ( list_cons(s2l1, s2ls1) , list_cons(s2l2, s2ls2) ) => let val () = s2lab_syneq_exn(s2l1, s2l2) // end of [val] in s2lablst_syneq_exn(s2ls1, s2ls2) end | (list_nil(), list_nil()) => () // | (_(*s2lablst*), _(*s2lablst*)) => $raise (SYNEQexn) // end // end of [s2lablst_syneq_exn] and labs2explst_syneq_exn ( ls2es1: labs2explst, ls2es2: labs2explst ) : void = let in // case+ ( ls2es1,ls2es2 ) of // case+ | ( list_cons(ls2e1, ls2es1) , list_cons(ls2e2, ls2es2) ) => let val SLABELED(l1, _(*opt*), s2e1) = ls2e1 val SLABELED(l2, _(*opt*), s2e2) = ls2e2 in if (l1 = l2) then let val () = s2exp_syneq_exn(s2e1, s2e2) in labs2explst_syneq_exn(ls2es1, ls2es2) end else $raise (SYNEQexn) end // end of [cons, cons] | (list_nil(), list_nil()) => () | (_(*ls2es1*), _(*ls2es2*)) => $raise (SYNEQexn) // end // end of [labs2explst_syneq_exn] (* ****** ****** *) implement s2hnf_syneq_exn (s2f10, s2f20) = let // val s2e10 = s2hnf2exp(s2f10) and s2e20 = s2hnf2exp(s2f20) val s2en10 = s2e10.s2exp_node and s2en20 = s2e20.s2exp_node // (* val () = println! ("s2hnf_syneq_exn: s2e10 = ", s2e10) val () = println! ("s2hnf_syneq_exn: s2e20 = ", s2e20) *) // in // case s2en10 of // | _ when $UT.eqref_type(s2e10, s2e20) => () // | S2Eint i1 => ( case+ s2en20 of | S2Eint i2 => if i1 != i2 then $raise (SYNEQexn) | S2Eintinf i2 => if ~eq_int_intinf(i1, i2) then $raise (SYNEQexn) | _ (* non-integer *) => $raise (SYNEQexn) ) (* end of [S2Eint] *) | S2Eintinf i1 => ( case+ s2en20 of | S2Eint i2 => if ~eq_intinf_int(i1, i2) then $raise (SYNEQexn) | S2Eintinf i2 => if ~eq_intinf_intinf(i1, i2) then $raise (SYNEQexn) | _ (* non-integer *) => $raise (SYNEQexn) ) (* end of [S2Eintinf] *) // | S2Ecst(s2c1) => ( case+ s2en20 of | S2Ecst(s2c2) => if s2c1 != s2c2 then $raise (SYNEQexn) | _ (* non-S2Ecst *) => $raise (SYNEQexn) ) (* end of [S2Ecst] *) // | S2Eextype (name1, s2ess1) => ( case+ s2en20 of | S2Eextype (name2, s2ess2) => ( if name1 = name2 then s2explstlst_syneq_exn(s2ess1, s2ess2) else $raise(SYNEQexn) ) // end of [S2Eextype] | _ (* non-S2Eextype *) => $raise (SYNEQexn) ) (* end of [S2Eextype] *) | S2Eextkind (name1, s2ess1) => ( case+ s2en20 of | S2Eextkind (name2, s2ess2) => ( if name1 = name2 then s2explstlst_syneq_exn(s2ess1, s2ess2) else $raise(SYNEQexn) ) // end of [S2Eextkind] | _ (* non-S2Eextkind *) => $raise (SYNEQexn) ) (* end of [S2Eextkind] *) // | S2Evar(s2v1) => ( case+ s2en20 of | S2Evar(s2v2) => if s2v1 != s2v2 then $raise (SYNEQexn) | _ (* non-S2Evar *) => $raise (SYNEQexn) ) (* end of [S2Evar] *) // | S2EVar(s2V1) => ( case+ s2en20 of | S2EVar(s2V2) => if s2V1 != s2V2 then $raise (SYNEQexn) | _ (* non-S2EVar *) => $raise (SYNEQexn) ) (* end of [S2EVar] *) // | S2Edatcontyp (d2c1, arg1) => ( case+ s2en20 of | S2Edatcontyp (d2c2, arg2) => ( if (d2c1 = d2c2) then s2explst_syneq_exn(arg1, arg2) else $raise(SYNEQexn) ) // end of [S2Edatcontyp] | _ (* non-S2Edatcontyp *) => $raise (SYNEQexn) ) (* end of [S2Edatcontyp] *) | S2Edatconptr (d2c1, rt1, _) => ( case+ s2en20 of | S2Edatconptr (d2c2, rt2, _) => ( if (d2c1 = d2c2) then s2exp_syneq_exn(rt1, rt2) else $raise (SYNEQexn) ) // end of [S2Edatconptr] | _ (* non-S2Edatconptr *) => $raise (SYNEQexn) ) (* end of [S2Edatconptr] *) // | S2Esizeof(s2e1) => ( case+ s2en20 of | S2Esizeof(s2e2) => s2exp_syneq_exn(s2e1, s2e2) | _ (*non-S2Esizeof*) => $raise (SYNEQexn) ) // (* | S2Eeff(s2fe1) => ( case+ s2en20 of | S2Eeff(s2fe2) => ( s2eff_syneq_exn(s2fe1, s2fe2) ) | _ (* non-S2Eeff *) => $raise (SYNEQexn) ) (* end of [S2Eeff] *) *) // | S2Eeqeq (s2e11, s2e12) => ( case+ s2en20 of | S2Eeqeq (s2e21, s2e22) => { val () = s2exp_syneq_exn(s2e11, s2e21) val () = s2exp_syneq_exn(s2e12, s2e22) } // end of [S2Eeqeq] | _ (* non-S2Eeqeq *) => $raise (SYNEQexn) ) (* end of[S2Eeqeq] *) // | S2Eproj (s2e1, _, s2ls1) => ( case+ s2en20 of | S2Eproj (s2e2, _, s2ls2) => { val () = s2exp_syneq_exn(s2e1, s2e2) val () = s2lablst_syneq_exn(s2ls1, s2ls2) } // end of [S2Eproj] | _ (* non-S2Eproj *) => $raise (SYNEQexn) ) (* end of[S2Eproj] *) // | S2Eapp (s2e11, s2es12) => ( case+ s2en20 of | S2Eapp (s2e21, s2es22) => { val () = s2exp_syneq_exn(s2e11, s2e21) val () = s2explst_syneq_exn(s2es12, s2es22) } // end of [S2Eapp] | _ (* non-S2Eapp *) => $raise (SYNEQexn) ) (* end of [S2Eapp] *) // | S2Efun ( fc1, lin1, s2fe1, npf1, s2es1_arg, s2e1_res ) => ( case+ s2en20 of | S2Efun ( fc2, lin2, s2fe2, npf2, s2es2_arg, s2e2_res ) => { val () = if fc1 != fc2 then $raise (SYNEQexn) val () = if lin1 != lin2 then $raise (SYNEQexn) val () = s2eff_syneq_exn (s2fe1, s2fe2) val () = if npf1 != npf2 then $raise (SYNEQexn) val () = s2explst_syneq_exn (s2es1_arg, s2es2_arg) val () = s2exp_syneq_exn (s2e1_res, s2e2_res) } // end of [S2Efun] | _ (* non-S2Efun *) => $raise (SYNEQexn) ) (* end of [S2Efun] *) // | S2Etop (knd1, s2e1) => ( case+ s2en20 of | S2Etop (knd2, s2e2) => ( if knd1 = knd2 then s2exp_syneq_exn(s2e1, s2e2) else $raise(SYNEQexn) ) // end of [S2Etop] | _ (* non-S2Etop *) => $raise (SYNEQexn) ) (* end of [S2Etop] *) // | S2Ewithout(s2e1) => ( case+ s2en20 of | S2Ewithout(s2e2) => s2exp_syneq_exn(s2e1, s2e2) | _ (* non-S2Ewithout *) => $raise (SYNEQexn) ) // end of [S2Ewithout] // | S2Etyarr (s2e1_elt, s2es1_int) => ( case+ s2en20 of | S2Etyarr (s2e2_elt, s2es2_int) => { val () = s2exp_syneq_exn(s2e1_elt, s2e2_elt) val () = s2explst_syneq_exn(s2es1_int, s2es2_int) } // end of [S2Etyarr] | _ (* non-S2Etyarr *) => $raise (SYNEQexn) ) (* end of [S2Etyarr] *) // | S2Etyrec (knd1, npf1, ls2es1) => ( case+ s2en20 of | S2Etyrec (knd2, npf2, ls2es2) => { val () = if knd1 != knd2 then $raise (SYNEQexn) val () = if npf1 != npf2 then $raise (SYNEQexn) val () = labs2explst_syneq_exn (ls2es1, ls2es2) } // end of [S2Etyrec] | _ (* non-S2Etyrec *) => $raise (SYNEQexn) ) (* end of [S2Etyrec] *) // | S2Einvar(s2e1) => ( case+ s2en20 of | S2Einvar(s2e2) => s2exp_syneq_exn(s2e1, s2e2) // end of [S2Einvar] | _ (* non-S2Einvar *) => $raise (SYNEQexn) ) (* end of [S2Einvar] *) // | S2Erefarg (knd1, s2e1) => ( case+ s2en20 of | S2Erefarg (knd2, s2e2) => ( if knd1 = knd2 then s2exp_syneq_exn(s2e1, s2e2) else $raise(SYNEQexn) ) // end of [S2Erefarg] | _ (* non-S2Erefarg *) => $raise (SYNEQexn) ) (* end of [S2Erefarg] *) // | S2Evararg(s2e1) => ( case+ s2en20 of | S2Evararg(s2e2) => s2exp_syneq_exn(s2e1, s2e2) | _ (* non-S2Evararg *) => $raise (SYNEQexn) ) (* end of [S2Evararg] *) // | _ (* rest-of-s2exp *) => $raise (SYNEQexn) // end // end of [s2hnf_syneq_exn] (* ****** ****** *) // // HX-2015-03: // s2exp_syneq2: // this version handles bound variables // (* ****** ****** *) // extern fun labs2explst_syneq_env ( env1: !s2varlst_vt , env2: !s2varlst_vt , ls2es1: labs2explst, ls2es2: labs2explst ) : bool // end of [labs2explst_syneq_env] // (* ****** ****** *) local fun aux0 ( env1: s2varlst , env2: s2varlst , s2v10: s2var, s2v20: s2var ) : bool = ( // case+ env1 of | list_nil() => aux1_0(env1, env2, s2v10, s2v20) | list_cons (s2v1, env1) => ( if s2v1 = s2v10 then aux1_t (env1, env2, s2v10, s2v20) else aux1_f (env1, env2, s2v10, s2v20) // end of [if] ) (* end of [list_cons] *) // ) (* end of [aux0] *) and aux1_0 ( env1: s2varlst , env2: s2varlst , s2v10: s2var, s2v20: s2var ) : bool = ( // case+ env2 of | list_nil() => if s2v10=s2v20 then true else false // end of [list_nil] | list_cons(s2v2, env2) => ( if s2v2 = s2v20 then false else aux1_0(env1, env2, s2v10, s2v20) // end of [if] ) (* end of [list_cons] *) // ) (* end of [aux1_0] *) and aux1_t ( env1: s2varlst , env2: s2varlst , s2v10: s2var, s2v20: s2var ) : bool = ( // case+ env2 of | list_nil() => false | list_cons(s2v2, env2) => if s2v2 = s2v20 then true else false // end of [list_cons] // ) (* end of [aux1_t] *) and aux1_f ( env1: s2varlst , env2: s2varlst , s2v10: s2var, s2v20: s2var ) : bool = ( // case+ env2 of | list_nil () => aux2_0 (env1, env2, s2v10, s2v20) | list_cons (s2v2, env2) => if s2v2 = s2v20 then false else aux0(env1, env2, s2v10, s2v20) // end of [if] // ) (* end of [aux1_f] *) and aux2_0 ( env1: s2varlst , env2: s2varlst , s2v10: s2var, s2v20: s2var ) : bool = ( // case+ env1 of | list_nil() => if s2v10=s2v20 then true else false // end of [list_nil] | list_cons (s2v1, env1) => ( if s2v1 = s2v10 then false else aux2_0(env1, env2, s2v10, s2v20) // end of [if] ) (* end of [list_cons] *) // ) (* end of [aux2_0] *) in (* in-of-local *) implement s2var_syneq_env ( env1, env2, s2v10, s2v20 ) = let // val env1 = $UN.linlst2lst(env1) and env2 = $UN.linlst2lst(env2) // in aux0 (env1, env2, s2v10, s2v20) end // end of [s2var_syneq_env] end // end of [local] (* ****** ****** *) local fun auxenv ( env: !s2varlst_vt, s2vs: s2varlst ) : s2varlst_vt = let val env2 = list_vt_copy(env) in list_reverse_append2_vt(s2vs, env2) end // end of [auxenv] in (* in-of-local *) implement s2hnf_syneq_env ( env1, env2, s2f10, s2f20 ) = let // val s2e10 = s2hnf2exp (s2f10) and s2e20 = s2hnf2exp (s2f20) val s2en10 = s2e10.s2exp_node and s2en20 = s2e20.s2exp_node // (* val () = println! ("s2hnf_syneq_env: s2e10 = ", s2e10) val () = println! ("s2hnf_syneq_env: s2e20 = ", s2e20) *) // in // case+ s2en10 of // | S2Eint(i1) => ( case+ s2en20 of | S2Eint(i2) => if i1 = i2 then true else false | S2Eintinf i2 => if eq_int_intinf(i1, i2) then true else false | _ (*non-integer*) => false ) (* end of [S2Eint] *) | S2Eintinf(i1) => ( case+ s2en20 of | S2Eint(i2) => if eq_intinf_int(i1, i2) then true else false | S2Eintinf(i2) => if eq_intinf_intinf(i1, i2) then true else false | _ (*non-integer*) => false ) (* end of [S2Eintinf] *) // | S2Ecst(s2c1) => ( case+ s2en20 of | S2Ecst(s2c2) => if s2c1 = s2c2 then true else false | _ => false ) (* end of [S2Ecst] *) // | S2Eextype (name1, s2ess1) => ( case+ s2en20 of | S2Eextype (name2, s2ess2) => ( if name1 = name2 then ( s2explstlst_syneq_env(env1, env2, s2ess1, s2ess2) ) else false ) // end of [S2Eextype] | _ (* non-S2Eextype *) => false ) (* end of [S2Eextype] *) | S2Eextkind (name1, s2ess1) => ( case+ s2en20 of | S2Eextkind (name2, s2ess2) => ( if name1 = name2 then ( s2explstlst_syneq_env(env1, env2, s2ess1, s2ess2) ) else false ) // end of [S2Eextkind] | _ (* non-S2Eextkind *) => false ) (* end of [S2Eextkind] *) // | S2Evar(s2v1) => ( case+ s2en20 of | S2Evar(s2v2) => s2var_syneq_env(env1, env2, s2v1, s2v2) | _ (* non-S2Evar *) => false ) (* end of [S2Evar] *) // | S2EVar(s2V1) => ( case+ s2en20 of | S2EVar(s2V2) => if s2V1 = s2V2 then true else false | _ => false ) (* end of [S2EVar] *) // | S2Edatcontyp (d2c1, arg1) => ( case+ s2en20 of | S2Edatcontyp (d2c2, arg2) => ( if (d2c1 = d2c2) then s2explst_syneq_env(env1, env2, arg1, arg2) else false // end of [if] ) // end of [S2Edatcontyp] | _ (* non-S2Edatcontyp *) => false ) (* end of [S2Edatcontyp] *) | S2Edatconptr (d2c1, rt1, _) => ( case+ s2en20 of | S2Edatconptr (d2c2, rt2, _) => ( if (d2c1 = d2c2) then s2exp_syneq_env(env1, env2, rt1, rt2) else false ) // end of [S2Edatconptr] | _ (* non-S2Edatconptr *) => false ) (* end of [S2Edatconptr] *) // | S2Eeqeq (s2e11, s2e12) => ( case+ s2en20 of | S2Eeqeq (s2e21, s2e22) => let val syneq = s2exp_syneq_env(env1, env2, s2e11, s2e21) // end of [val] in if syneq then s2exp_syneq_env(env1, env2, s2e12, s2e22) else false // end of [if] end // end of [S2Eeqeq] | _ (* non-S2Eeqeq *) => false ) (* end of[S2Eeqeq] *) // | S2Eproj (s2e1, _, s2ls1) => ( case+ s2en20 of | S2Eproj (s2e2, _, s2ls2) => let val syneq = s2exp_syneq_env(env1, env2, s2e1, s2e2) // end of [val] in if syneq then s2lablst_syneq(s2ls1, s2ls2) else false end // end of [S2Eproj] | _ (* non-S2Eproj *) => false ) (* end of[S2Eproj] *) // | S2Eapp (s2e11, s2es12) => ( case+ s2en20 of | S2Eapp (s2e21, s2es22) => let val syneq = s2exp_syneq_env(env1, env2, s2e11, s2e21) in if syneq then s2explst_syneq_env(env1, env2, s2es12, s2es22) else false // end of [if] end // end of [S2Eapp] | _ (* non-S2Eapp *) => false ) (* end of [S2Eapp] *) // | S2Elam (s2vs1, s2e1) => ( case+ s2en20 of | S2Elam (s2vs2, s2e2) => syneq where { val env1 = auxenv(env1, s2vs1) val env2 = auxenv(env2, s2vs2) val syneq = s2exp_syneq_env (env1, env2, s2e1, s2e2) // end of [val] val () = list_vt_free(env1) and () = list_vt_free(env2) } // end of [S2Elam] | _ (* non-S2Elam *) => false ) (* end of [S2Elam] *) // | S2Efun ( fc1, lin1, s2fe1, npf1, s2es1_arg, s2e1_res ) => ( case+ s2en20 of | S2Efun ( fc2, lin2, s2fe2, npf2, s2es2_arg, s2e2_res ) => let val syneq = (if fc1 = fc2 then true else false): bool val syneq = (if syneq then lin1 = lin2 else false): bool val syneq = (if syneq then s2eff_syneq(s2fe1, s2fe2) else false): bool val syneq = (if syneq then npf1 = npf2 else false): bool val syneq = ( if syneq then s2explst_syneq_env(env1, env2, s2es1_arg, s2es2_arg) else false ) : bool // end of [val] in if syneq then s2exp_syneq_env(env1, env2, s2e1_res, s2e2_res) else false // end of [if] end // end of [S2Efun] | _ (* non-S2Efun *) => false ) (* end of [S2Efun] *) // | S2Etop (knd1, s2e1) => ( case+ s2en20 of | S2Etop (knd2, s2e2) => ( if knd1 = knd2 then s2exp_syneq_env(env1, env2, s2e1, s2e2) else false ) // end of [S2Etop] | _ (* non-S2Etop *) => false ) (* end of [S2Etop] *) // | S2Ewithout(s2e1) => ( case+ s2en20 of | S2Ewithout (s2e2) => s2exp_syneq_env(env1, env2, s2e1, s2e2) | _ (* non-S2Ewithout *) => false ) // end of [S2Ewithout] // | S2Etyarr (s2e1_elt, s2es1_int) => ( case+ s2en20 of | S2Etyarr (s2e2_elt, s2es2_int) => let val syneq = s2exp_syneq_env(env1, env2, s2e1_elt, s2e2_elt) in if syneq then s2explst_syneq_env(env1, env2, s2es1_int, s2es2_int) else false // end of [if] end // [S2Etyarr] | _ (* non-S2Etyarr *) => false ) (* end of [S2Etyarr] *) // | S2Etyrec (knd1, npf1, ls2es1) => ( case+ s2en20 of | S2Etyrec (knd2, npf2, ls2es2) => let val syneq = (if knd1 = knd2 then true else false): bool val syneq = (if syneq then npf1 = npf2 else false): bool in if syneq then labs2explst_syneq_env (env1, env2, ls2es1, ls2es2) else false // end of [if] end // [S2Etyrec] | _ (* non-S2Etyrec *) => false ) (* end of [S2Etyrec] *) // | S2Einvar(s2e1) => ( case+ s2en20 of | S2Einvar (s2e2) => s2exp_syneq_env (env1, env2, s2e1, s2e2) | _ (* non-S2Einvar *) => false ) (* end of [S2Einvar] *) // | S2Eexi (s2vs1, s2ps1, s2e1) => ( case+ s2en20 of | S2Eexi (s2vs2, s2ps2, s2e2) => let val env1 = auxenv(env1, s2vs1) val env2 = auxenv(env2, s2vs2) val syneq = s2explst_syneq_env(env1, env2, s2ps1, s2ps2) val syneq = ( if syneq then s2exp_syneq_env(env1, env2, s2e1, s2e2) else false // end of [if] ) : bool // end of [val] val () = list_vt_free(env1) and () = list_vt_free(env2) in syneq end // end of [S2Eexi] | _ (* non-S2Eexi *) => false ) (* end of [S2Eexi] *) // | S2Euni (s2vs1, s2ps1, s2e1) => ( case+ s2en20 of | S2Euni (s2vs2, s2ps2, s2e2) => let val env1 = auxenv(env1, s2vs1) val env2 = auxenv(env2, s2vs2) val syneq = s2explst_syneq_env(env1, env2, s2ps1, s2ps2) val syneq = ( if syneq then s2exp_syneq_env(env1, env2, s2e1, s2e2) else false // end of [if] ) : bool // end of [val] val () = list_vt_free(env1) and () = list_vt_free(env2) in syneq end // end of [S2Euni] | _ (* non-S2Euni *) => false ) (* end of [S2Euni] *) // | S2Erefarg (knd1, s2e1) => ( case+ s2en20 of | S2Erefarg (knd2, s2e2) => ( if knd1 = knd2 then s2exp_syneq_env(env1, env2, s2e1, s2e2) else false ) // end of [S2Erefarg] | _ (* non-S2Erefarg *) => false ) (* end of [S2Erefarg] *) // | S2Evararg(s2e1) => ( case+ s2en20 of | S2Evararg(s2e2) => s2exp_syneq_env(env1, env2, s2e1, s2e2) | _ (* non-S2Evararg *) => false ) (* end of [S2Evararg] *) // | _ (* rest-of-s2exp *) => false // end // end of [s2hnf_syneq_env] end // end of [local] (* ****** ****** *) implement s2exp_syneq_env (env1, env2, s2e10, s2e20) = let // val s2f10 = s2exp2hnf (s2e10) and s2f20 = s2exp2hnf (s2e20) // in s2hnf_syneq_env(env1, env2, s2f10, s2f20) end // end of [s2exp_syneq_env] (* ****** ****** *) implement s2explst_syneq_env (env1, env2, s2es1, s2es2) = ( // case+ s2es1 of | list_nil() => ( case+ s2es2 of | list_nil() => true | list_cons(_, _) => false ) | list_cons (s2e1, s2es1) => ( case+ s2es2 of | list_nil ((*void*)) => false // list_nil | list_cons (s2e2, s2es2) => ( if s2exp_syneq_env(env1, env2, s2e1, s2e2) then s2explst_syneq_env(env1, env2, s2es1, s2es2) else false ) (* end of [list_cons] *) ) (* end of [list_cons] *) // ) (* end of [s2explst_syneq_env] *) (* ****** ****** *) implement s2explstlst_syneq_env (env1, env2, s2ess1, s2ess2) = ( // case+ s2ess1 of | list_nil() => ( case+ s2ess2 of | list_nil() => true | list_cons(_, _) => false ) | list_cons (s2es1, s2ess1) => ( case+ s2ess2 of | list_nil ((*void*)) => false // list_nil | list_cons (s2es2, s2ess2) => ( if s2explst_syneq_env(env1, env2, s2es1, s2es2) then s2explstlst_syneq_env(env1, env2, s2ess1, s2ess2) else false ) (* end of [list_cons] *) ) (* end of [list_cons] *) // ) (* end of [s2explstlst_syneq_env] *) (* ****** ****** *) implement labs2explst_syneq_env ( env1, env2, ls2es1, ls2es2 ) = let in // case+ ( ls2es1,ls2es2 ) of // case+ | (list_cons(ls2e1, ls2es1), list_cons(ls2e2, ls2es2)) => let val SLABELED(l1, _(*opt*), s2e1) = ls2e1 val SLABELED(l2, _(*opt*), s2e2) = ls2e2 in if (l1 = l2) then let val syneq = s2exp_syneq_env(env1, env2, s2e1, s2e2) // end of [val] in if syneq then labs2explst_syneq_env(env1, env2, ls2es1, ls2es2) else false end else false end // end of [cons, cons] | (list_nil(), list_nil()) => true | (_(*ls2es1*), _(*ls2es2*)) => false // end // end of [labs2explst_syneq_env] (* ****** ****** *) // implement s2hnf_syneq2 (s2f1, s2f2) = syneq where { val env1 = list_vt_nil() val env2 = list_vt_nil() val syneq = s2hnf_syneq_env(env1, env2, s2f1, s2f2) val () = list_vt_free(env1) and () = list_vt_free(env2) } (* end of [s2hnf_syneq2] *) // implement s2exp_syneq2 (s2e1, s2e2) = syneq where { val env1 = list_vt_nil() val env2 = list_vt_nil() val syneq = s2exp_syneq_env(env1, env2, s2e1, s2e2) // end of [val] val () = list_vt_free(env1) and () = list_vt_free(env2) } (* end of [s2exp_syneq2] *) // implement s2explst_syneq2 (s2es1, s2es2) = syneq where { val env1 = list_vt_nil() val env2 = list_vt_nil() val syneq = s2explst_syneq_env(env1, env2, s2es1, s2es2) // end of [val] val () = list_vt_free(env1) and () = list_vt_free(env2) } (* end of [s2explst_syneq2] *) // (* ****** ****** *) local fun s2exp_prenexize ( knd: int // 0/1: exi/uni , s2e0: s2exp , flag: &int >> int , s2vs_res: &s2varlst_vt , s2ps_res: &s2explst_vt ) : s2exp = let // val s2e0 = s2exp_hnfize(s2e0) // in // case+ s2e0.s2exp_node of (* case+ *) // | S2Eexi ( s2vs, s2ps, s2e_body ) => ( if knd = 0 then s2exp_prenexize_work ( knd, s2vs, s2ps, s2e_body, flag, s2vs_res, s2ps_res ) else s2e0 // end of [if] ) (* end of [S2Eexi] *) | S2Euni ( s2vs, s2ps, s2e_body ) => ( if knd > 0 then s2exp_prenexize_work ( knd, s2vs, s2ps, s2e_body, flag, s2vs_res, s2ps_res ) else s2e0 // end of [if] ) (* end of [S2Euni] *) // | S2Eat (s2e1, s2e2) => let val flag0 = flag val s2e1 = ( if knd = 0 then // exists s2exp_prenexize (knd, s2e1, flag, s2vs_res, s2ps_res) // end of [then] else s2e1 ) : s2exp // end of [val] in if flag > flag0 then s2exp_at (s2e1, s2e2) else (s2e0) end // end of [S2Eat] // (* | S2Etyrec ( recknd, npf, ls2es ) => let val flag0 = flag val ls2es = labs2explst_prenexize (knd, ls2es, s2vs_res, s2ps_res, flag) // end of [val] in if flag > flag0 then s2exp_tyrec_srt(s2e0.s2exp_srt, recknd, npf, ls2es) else s2e0 // end of [else] // end of [if] end // end of [S2Etyrec] *) | _ (*non-s2exp*) => s2e0 // end of [_] // end // end of [s2exp_prenexize] and s2exp_prenexize_work ( knd: int , s2vs: s2varlst, s2ps: s2explst, s2e_body: s2exp , flag: &int >> int , s2vs_res: &s2varlst_vt , s2ps_res: &s2explst_vt ) : s2exp = let var sub = stasub_make_nil () val s2vs = stasub_extend_svarlst (sub, s2vs) val s2ps = s2explst_subst_vt (sub, s2ps) // HX: returning a linear list val s2e_body = s2exp_subst (sub, s2e_body) val () = stasub_free (sub) val () = flag := flag + 1 val () = s2vs_res := list_vt_reverse_append (s2vs, s2vs_res) val () = s2ps_res := list_vt_reverse_append (s2ps, s2ps_res) val s2e_body = s2exp_prenexize(knd, s2e_body, flag, s2vs_res, s2ps_res) in s2e_body end // end of [s2exp_prenexize_work] and s2explst_prenexize ( knd: int , s2es0: s2explst , flag: &int >> int , s2vs_res: &s2varlst_vt , s2ps_res: &s2explst_vt ) : s2explst = let in // case+ s2es0 of | list_nil() => list_nil((*void*)) | list_cons(s2e, s2es) => let val flag0 = flag val s2e = s2exp_prenexize(knd, s2e, flag, s2vs_res, s2ps_res) // end of [val] val s2es = s2explst_prenexize(knd, s2es, flag, s2vs_res, s2ps_res) // end of [val] in if flag > flag0 then list_cons (s2e, s2es) else s2es0 end // end of [cons] // end // end of [s2explst_prenexize] and labs2explst_prenexize ( knd: int , ls2es0: labs2explst , flag: &int >> int , s2vs_res: &s2varlst_vt , s2ps_res: &s2explst_vt ) : labs2explst = let in // case+ ls2es0 of | list_nil() => list_nil((*void*)) | list_cons(ls2e, ls2es) => let val flag0 = flag val SLABELED(l, name, s2e) = ls2e val s2e = s2exp_prenexize(knd, s2e, flag, s2vs_res, s2ps_res) // end of [val] val ls2e = ( if flag > flag0 then SLABELED(l, name, s2e) else ls2e ) : labs2exp // end of [val] val ls2es = labs2explst_prenexize(knd, ls2es, flag, s2vs_res, s2ps_res) // end of [val] in if flag > flag0 then list_cons (ls2e, ls2es) else ls2es0 end // end of [list_cons] // end // end of [labs2explst_prenexize] in (* in of [local] *) implement s2exp_absuni(s2e) = let var flag : int = 0 var s2vs_res : s2varlst_vt = list_vt_nil() and s2ps_res : s2explst_vt = list_vt_nil() val s2e = s2exp_prenexize(1(*uni*), s2e, flag, s2vs_res, s2ps_res) // end of [val] // val s2vs = list_vt_reverse(s2vs_res) and s2ps = list_vt_reverse(s2ps_res) // in (s2e, s2vs, s2ps) end // end of [s2exp_absuni] implement s2exp_opnexi (s2e) = let var flag : int = 0 var s2vs_res : s2varlst_vt = list_vt_nil() and s2ps_res : s2explst_vt = list_vt_nil() val s2e = s2exp_prenexize(0(*exi*), s2e, flag, s2vs_res, s2ps_res) // end of [val] // val s2vs = list_vt_reverse(s2vs_res) and s2ps = list_vt_reverse(s2ps_res) // in (s2e, s2vs, s2ps) end // end of [s2exp_opnexi] end // end of [local] (* ****** ****** *) (* end of [pats_staexp2_util2.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_codegen2_util.dats0000644000175000017500000002577213431250607022115 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: August, 2015 // (* ****** ****** *) // staload LAB = "./pats_label.sats" overload fprint with $LAB.fprint_label // (* ****** ****** *) // staload SYM = "./pats_symbol.sats" // overload fprint with $SYM.fprint_symbol // (* ****** ****** *) // staload "./pats_staexp1.sats" // staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" // staload "./pats_trans2_env.sats" // (* ****** ****** *) staload "./pats_codegen2.sats" (* ****** ****** *) local fun aux_test ( x0: e1xp, name: string ) : bool = ( // case+ x0.e1xp_node of // case+ | E1XPide(id2) => ( name = $SYM.symbol_get_name(id2) ) (* end of [E1XPide] *) | E1XPstring(name2) => (name = name2) // | _ (*rest-of-e1xp*) => false // ) (* end of [aux_test] *) in (* in-of-local *) // implement datcon_test_e1xp(x0) = aux_test(x0, "datcon") implement datcontag_test_e1xp(x0) = aux_test(x0, "datcontag") // implement fprint_test_e1xp(x0) = aux_test(x0, "fprint") // implement absrec_test_e1xp(x0) = aux_test(x0, "absrec") // end // end of [local] (* ****** ****** *) local fun aux_find ( name: symbol ) : Option_vt(s2cst) = let // val ans = the_s2expenv_find (name) // in // case+ ans of // | ~Some_vt(s2i) => ( case+ s2i of | S2ITMcst(s2cs) => ( case+ s2cs of | list_cons(s2c, _) => Some_vt(s2c) | list_nil() => None_vt() ) | _ (*non-S2ITMcst*) => None_vt() ) (* end of [Some_vt] *) // | ~None_vt((*void*)) => None_vt() // end // end of [aux_find] in (* in-of-local *) implement codegen2_get_s2cst (x0) = let (* // val () = println! ("codegen2_get_s2cst: x0 = ", x0) // *) in // case+ x0.e1xp_node of // case+ // | E1XPide(name) => aux_find(name) // (* | E1XPstring (name) => let val name2 = $SYM.symbol_make_string(name) // end of [val] in aux_find(name2) end // end of [E1XPstring] *) // | _(*rest-of-e1xp*) => None_vt((*void*)) // end // end of [codegen2_get_s2cst] end // end of [local] (* ****** ****** *) implement codegen2_get_tydef (x0) = let // val opt = codegen2_get_s2cst(x0) // in // case+ opt of | Some_vt(s2c) => ( if s2cst_is_tydef(s2c) then (fold@{s2cst}(opt); opt) else (free@{s2cst}(opt); None_vt()) ) (* end of [Some_vt] *) // | ~None_vt((*void*)) => None_vt() // end // end of [codegen2_get_tydef] (* ****** ****** *) implement codegen2_get_datype (x0) = let // val opt = codegen2_get_s2cst(x0) // in // case+ opt of | Some_vt(s2c) => ( if s2cst_is_datype(s2c) then (fold@{s2cst}(opt); opt) else (free@{s2cst}(opt); None_vt()) ) (* end of [Some_vt] *) // | ~None_vt((*void*)) => None_vt() // end // end of [codegen2_get_datype] (* ****** ****** *) local fun aux_find ( name: symbol ) : Option_vt(d2cst) = let // val ans = the_d2expenv_find (name) // in // case+ ans of // | ~Some_vt(d2i) => ( case+ d2i of | D2ITMcst(d2c) => Some_vt(d2c) | _ (*non-D2ITMcst*) => None_vt() ) (* end of [Some_vt] *) // | ~None_vt((*void*)) => None_vt() // end // end of [aux_find] in (* in-of-local *) implement codegen2_get_d2cst (x0) = let (* // val () = println! ("codegen2_get_d2cst: x0 = ", x0) // *) in // case+ x0.e1xp_node of // case+ // | E1XPide(name) => aux_find(name) // (* | E1XPstring (name) => let val name2 = $SYM.symbol_make_string(name) // end of [val] in aux_find(name2) end // end of [E1XPstring] *) | _(*rest-of-e1xp*) => None_vt((*void*)) // end // end of [codegen2_get_d2cst] end // end of [local] (* ****** ****** *) local fun aux_s2qua ( out: FILEref , lpar: string, rpar: string, s2q: s2qua ) : void = let // fun auxlst ( s2vs: s2varlst ) : void = ( case+ s2vs of | list_nil() => () | list_cons(s2v, s2vs) => ( fprint(out, s2var_get_sym(s2v)); auxlst(s2vs) ) ) // in fprint(out, lpar); auxlst(s2q.s2qua_svs); fprint(out, rpar) end // end of [aux_s2qua] fun aux_s2qualst ( out: FILEref , lpar: string, rpar: string, s2qs: s2qualst ) : void = ( case+ s2qs of | list_nil() => () | list_cons (s2q, s2qs) => () where { val () = aux_s2qua(out, lpar, rpar, s2q) val () = aux_s2qualst(out, lpar, rpar, s2qs) } ) (* end of [aux_s2qualst] *) in (* in-of-local *) implement codegen2_emit_tmpcstapp (out, d2cf) = let // val s2qs = d2cst_get_decarg(d2cf) // in // aux_s2qualst(out, "<", ">", s2qs) // end // end of [codegen2_emit_tmpcstapp] implement codegen2_emit_tmpcstimp (out, d2cf) = let // val s2qs = d2cst_get_decarg(d2cf) // in // aux_s2qualst(out, "{", "}", s2qs) // end // end of [codegen2_emit_tmpcstimp] end // end of [local] (* ****** ****** *) implement codegen2_emit_tmpcstdec (out, d2cf) = let // fun aux ( s2q: s2qua ) : void = let // fun fprs2t ( out: FILEref, s2t: s2rt ) : void = ( // if s2rt_is_prgm(s2t) then { val () = if s2rt_is_lin(s2t) then fprint(out, "vt0p") val () = if s2rt_is_nonlin(s2t) then fprint(out, "t0p") } // ) (* end of [fprs2t] *) // fun loop ( s2vs: s2varlst ) : void = ( case+ s2vs of | list_nil() => () | list_cons (s2v, s2vs) => let val sym = s2var_get_sym(s2v) val s2t = s2var_get_srt(s2v) in fprint(out, sym); fprint(out, ":"); fprs2t(out, s2t); loop(s2vs) end // end of [list_cons] ) // val s2vs = s2q.s2qua_svs // in fprint(out, "{"); loop(s2vs); fprint(out, "}"); end // end of [aux] fun auxlst ( s2qs: s2qualst ) : void = ( case+ s2qs of | list_nil() => () | list_cons(s2q, s2qs) => (aux(s2q); auxlst(s2qs)) ) (* end of [auxlst] *) // in auxlst(d2cst_get_decarg(d2cf)) end // end of [codegen2_emit_tmpcstdec] (* ****** ****** *) implement codegen2_emit_s2rt (out, s2t0) = let // fun aux_s2rt ( s2t0: s2rt ) : void = ( case+ s2t0 of | S2RTbas (s2tb) => { val () = aux_s2rtbas(s2tb) } | S2RTfun ( s2ts_arg, s2t_res ) => () where { val () = fprint(out, "(") val () = aux_s2rtlst(s2ts_arg, 0) // end of [val] val () = fprint(out, ") ->") val () = aux_s2rt(s2t_res) } | _(*rest-of_s2rt*) => fprint(out, s2t0) ) (* end of [aux_s2rt] *) // and aux_s2rtlst ( s2ts: s2rtlst, i: int ) : void = ( case+ s2ts of | list_nil() => () | list_cons(s2t, s2ts) => { val () = if i > 0 then fprint(out, ", ") // end of [if] val () = aux_s2rt(s2t) val () = aux_s2rtlst(s2ts, i+1) } (* end of [list_cons] *) ) (* end of [aux_s2rtlst] *) // and aux_s2rtbas ( s2tb: s2rtbas ) : void = ( case+ s2tb of | S2RTBASpre (sym) => fprint(out, sym) // end of [S2RTBASpre] | S2RTBASimp (knd, sym) => fprint(out, sym) // end of [S2RTBASimp] | S2RTBASdef(s2td) => fprint(out, s2rtdat_get_sym(s2td)) // end of [S2RTBASdef] ) (* end of [aux_s2rtbas] *) // in aux_s2rt(s2t0) end // end of [codegen2_emit_s2rt] (* ****** ****** *) implement codegen2_emit_s2cst (out, s2c0) = () where { val () = fprint(out, s2cst_get_sym(s2c0)) } (* codegen2_emit_s2cst *) implement codegen2_emit_s2var (out, s2v0) = () where { val () = fprint(out, s2var_get_sym(s2v0)) } (* codegen2_emit_s2var *) (* ****** ****** *) // local fun aux_istup ( ls2es: labs2explst ) : bool = ( case+ ls2es of | list_nil() => true | list_cons (ls2e, ls2es) => let val+SLABELED(l, _, _) = ls2e in if $LAB.label_is_int(l) then aux_istup(ls2es) else false end // end of [list_cons] ) fun aux_s2exp ( out: FILEref, s2e0: s2exp ) : void = let // (* val () = println! ("aux_s2exp: s2e0 = ", s2e0) *) // in // case+ s2e0.s2exp_node of (* case+ *) // | S2Ecst(s2c) => { val () = codegen2_emit_s2cst(out, s2c) } // | S2Evar(s2v) => () where { val () = codegen2_emit_s2var(out, s2v) } // | S2Eapp(s2e_fun, s2es_arg) => { val () = aux_s2exp(out, s2e_fun) val () = fprint(out, "(") val () = aux_s2explst(out, s2es_arg, 0) val () = fprint(out, ")") } // | S2Etyrec (knd, npf, ls2es) => () where { // val istup = aux_istup(ls2es) // val tuprec = ( if istup then "$tup" else "$rec" ) : string // end of [val] // val isflted = tyreckind_is_flted(knd) val () = if isflted then fprint(out, "@") // val isboxed = tyreckind_is_boxed(knd) val () = if isboxed then ( if s2exp_is_nonlin(s2e0) then fprint!(out, tuprec, "_t") else fprint!(out, tuprec, "_vt") ) (* end of [val] *) // val () = if istup then fprint_string(out, "(") else fprint_string(out, "{") // end of [if] // val () = aux_labs2explst(out, ls2es, 0) // val () = if istup then fprint_string(out, ")") else fprint_string(out, "}") // end of [if] // } (* end of [S2Etyrec] *) // | _ (*rest-of-s2exp*) => fprint_s2exp(out, s2e0) // end (* end of [aux_s2exp] *) and aux_s2explst ( out: FILEref , s2es: s2explst, i: int ) : void = let (* val () = println! ("aux_labs2explst") *) in // case+ s2es of | list_nil() => () | list_cons(s2e, s2es) => { val () = if i > 0 then fprint(out, ", ") val () = aux_s2exp(out, s2e) val () = aux_s2explst(out, s2es, i+1) } (* end of [list_cons] *) // end // end of [aux_s2explst] and aux_labs2explst ( out: FILEref , ls2es: labs2explst, i: int ) : void = let (* val () = println! ("aux_labs2explst") *) in // case+ ls2es of | list_nil() => () | list_cons(ls2e, ls2es) => { // val () = if i > 0 then fprint(out, ", ") // val+ SLABELED(l, _(*name*), s2e) = ls2e val () = if $LAB.label_is_sym(l) then fprint!(out, l, "=") // val () = aux_s2exp(out, s2e) // val () = aux_labs2explst(out, ls2es, i+1) } (* end of [list_cons] *) // end // end of [aux_labs2explst] in (* in-of-local *) implement codegen2_emit_s2exp (out, s2e0) = let // (* val () = println! ( "codegen2_emit_s2exp: s2e0 = ", s2e0 ) (* println! *) *) // in aux_s2exp(out, s2e0) end // codegen2_emit_s2exp end // end of [local] // (* ****** ****** *) (* end of [pats_codegen2_util.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_comarg.dats0000644000175000017500000001560413431250607020633 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libc/SATS/string.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" staload GLOB = "./pats_global.sats" staload LOC = "./pats_location.sats" staload FIL = "./pats_filename.sats" staload SYM = "./pats_symbol.sats" staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload PAR = "./pats_parsing.sats" (* ****** ****** *) staload "./pats_staexp1.sats" staload TRANS1 = "./pats_trans1.sats" staload TRENV1 = "./pats_trans1_env.sats" (* ****** ****** *) staload "./pats_comarg.sats" (* ****** ****** *) %{^ // extern char* patsopt_PATSRELOCROOT_get () ; // %} // end of [%{^] (* ****** ****** *) // implement print_comarg(x) = fprint_comarg(stdout_ref, x) // implement fprint_comarg(out, x) = ( case+ x of | COMARG(i, k) => fprint!(out, "COMARG(", i, ", ", k, ")") ) // (* ****** ****** *) implement comarg_parse (str) = let // fun loop {n,i:nat|i <= n} .. ( str: string n, n: int n, i: int i ) :<> comarg = ( if i < n then ( if (str[i] <> '-') then COMARG (i, str) else loop (str, n, i+1) ) else COMARG (n, str) ) (* end of [if] *) // end of [loop] // in // if (str="-") then ( COMARG(0, str) ) else ( loop(str, len, 0) ) where { val str = string1_of_string str // val len = string_length (str) val len = int1_of_size1 (len) } // end // end of [comarg_parse] (* ****** ****** *) implement comarglst_parse {n}(argc, argv) = let // vtypedef arglst(n:int) = list_vt(comarg, n) // fun loop {i:nat | i <= n}{l:addr} .. ( pf0: arglst(0) @ l | argv: &(@[string][n]), i: int i, p: ptr l ) : (arglst (n-i) @ l | void) = ( // if i < argc then let val+~list_vt_nil () = !p val x = comarg_parse (argv.[i]) val () = !p := list_vt_cons (x, list_vt_nil ()) val+list_vt_cons (_, !lst) = !p val (pf | ()) = loop (view@ (!lst) | argv, i+1, lst) // tail-call // end of [val] in fold@(!p); (pf0 | ()) end // end of [then] else (pf0 | ()) // end of [else] // ) (* end of [loop] *) // var lst0 = list_vt_nil{comarg}() val (pf | ()) = loop (view@ lst0 | argv, 0, &lst0) prval ((*void*)) = view@ lst0 := pf // in lst0 end // end of [comarglst_parse] (* ****** ****** *) implement comarg_warning (str) = { // val () = prerr ("warning(ATS)") val () = prerr (": unrecognized command line argument [") val () = prerr (str) val () = prerr ("] is ignored.") val () = prerr_newline ((*void*)) // } (* end of [comarg_warning] *) (* ****** ****** *) implement is_DATS_flag (flag) = if strncmp (flag, "-DATS", 5) = 0 then true else false // end of [is_DATS_flag] implement is_IATS_flag (flag) = if strncmp (flag, "-IATS", 5) = 0 then true else false // end of [is_IATS_flag] (* ****** ****** *) local fun string_extract ( s: string, k: size_t ) : Stropt = let val s = string1_of_string(s) // end of [val] val k = size1_of_size(k) val n = string1_length(s) in // if n > k then let val sub = string_make_substring(s,k,n-k) val sub = string_of_strbuf(sub) in stropt_some (sub) end // end of [then] else stropt_none (*void*) // end // [string_extract] in (* in-of-local *) // implement DATS_extract (str: string) = string_extract(str, 5) // implement IATS_extract (str: string) = string_extract(str, 5) // end // end of [local] (* ****** ****** *) implement process_DATS_def (def) = let // val def = string1_of_string(def) // (* val () = println! ("process_DATS_def: def = ", def) *) // val opt = $PAR.parse_from_string_parser(def, $PAR.p_datsdef) // in // case+ opt of | ~Some_vt(def) => let val+$SYN.DATSDEF(key, opt) = def val e1xp = ( case+ opt of | Some v => $TRANS1.e0xp_tr (v) | None _ => e1xp_none ($LOC.location_dummy) ) : e1xp // end of [val] in $TRENV1.the_e1xpenv_addperv (key, e1xp) end // end of [Some_vt] | ~None_vt((*void*)) => let val () = prerr ("patsopt: error(0)") val () = prerrln! ( ": the command-line argument [", def, "] cannot be properly parsed." ) (* end of [prerrln!] *) in $ERR.abort ((*reachable*)) end // end of [None_vt] // end // end of [process_DATS_def] (* ****** ****** *) // // HX: [ppush] means permanent push // implement process_IATS_dir (dir) = let // val () = $FIL.the_pathlst_ppush(dir) val () = $GLOB.the_IATS_dirlst_ppush(dir) // (* // HX-2017-01-31: push from the back! val () = $FIL.the_pathlst_ppushb(dir) val () = $GLOB.the_IATS_dirlst_ppushb(dir) *) // in // nothing end (* end of [process_IATS_dir] *) (* ****** ****** *) local // extern fun getenv ( name: string ) : Stropt = "ext#getenv" // in (* in-of-local *) implement process_PATSRELOCROOT() = let // val opt = get() where { // extern fun get ( // argless ) : Stropt = "mac#patsopt_PATSRELOCROOT_get" // end of [extern] // } (* where *) // end of [val] val issome = stropt_is_some (opt) // val def = ( // if issome then ( stropt_unsome(opt) ) (* end of [then] *) else let // val user = getenv("USER") val issome = stropt_is_some(user) val user = ( // if issome then stropt_unsome(user) else "$USER" // ) : string // end of [val] val PATSRELOCROOT = sprintf("/tmp/.PATSRELOCROOT-%s", @(user)) // end of [val] // in string_of_strptr(PATSRELOCROOT) end // end of [else] // ) : string // end of [val] // (* val () = println! ( "process_PATSRELOCROOT: def = ", def ) (* end of [val] *) *) // val key = $SYM.symbol_PATSRELOCROOT val e1xp = e1xp_string ($LOC.location_dummy, def) // in $TRENV1.the_e1xpenv_addperv (key, e1xp) end // end of [process_PATSRELOCROOT] end // end of [local] (* ****** ****** *) (* end of [pats_comarg.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_hidynexp.dats0000644000175000017500000005604213431250607021214 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: July, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload LAB = "./pats_label.sats" typedef label = $LAB.label (* ****** ****** *) // staload S2E = "./pats_staexp2.sats" typedef s2cst = $S2E.s2cst // staload S2C = "./pats_stacst2.sats" // staload D2E = "./pats_dynexp2.sats" typedef d2cst = $D2E.d2cst // (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) implement hipat_get_type (hip) = hip.hipat_type (* ****** ****** *) implement labhipatlst_is_unused (lhips) = let // fun f ( lhip: labhipat ) : bool = let val LABHIPAT (_, hip) = lhip in case+ hip.hipat_node of HIPany _ => true | _ => false end // end of [f] // in list_forall_fun (lhips, f) end // end of [labhipatlst_is_unused] (* ****** ****** *) implement hipat_make_node ( loc, hse, node ) = '{ hipat_loc= loc , hipat_type= hse, hipat_node= node, hipat_asvar= None(*d2v*) } // end of [hipat_make_node] (* ****** ****** *) implement hipat_any (loc, hse, d2v) = hipat_make_node (loc, hse, HIPany (d2v)) // end of [hipat_any] implement hipat_var (loc, hse, d2v) = hipat_make_node (loc, hse, HIPvar (d2v)) // end of [hipat_var] (* ****** ****** *) implement hipat_con ( loc, hse, pck, d2c, hse_sum, lhips ) = hipat_make_node (loc, hse, HIPcon (pck, d2c, hse_sum, lhips)) // end of [hipat_con] implement hipat_con_any (loc, hse, pck, d2c) = hipat_make_node (loc, hse, HIPcon_any (pck, d2c)) // end of [hipat_con_any] (* ****** ****** *) implement hipat_int (loc, hse, i) = hipat_make_node (loc, hse, HIPint (i)) // end of [hipat_int] implement hipat_intrep (loc, hse, rep) = hipat_make_node (loc, hse, HIPintrep (rep)) // end of [hipat_intrep] implement hipat_bool (loc, hse, b) = hipat_make_node (loc, hse, HIPbool (b)) // end of [hipat_bool] implement hipat_char (loc, hse, c) = hipat_make_node (loc, hse, HIPchar (c)) // end of [hipat_char] implement hipat_float (loc, hse, rep) = hipat_make_node (loc, hse, HIPfloat (rep)) // end of [hipat_float] implement hipat_string (loc, hse, str) = hipat_make_node (loc, hse, HIPstring (str)) // end of [hipat_string] (* ****** ****** *) implement hipat_i0nt (loc, hse, tok) = hipat_make_node (loc, hse, HIPi0nt (tok)) // end of [hipat_i0nt] implement hipat_f0loat (loc, hse, tok) = hipat_make_node (loc, hse, HIPf0loat (tok)) // end of [hipat_f0loat] (* ****** ****** *) implement hipat_empty (loc, hse) = hipat_make_node (loc, hse, HIPempty ()) // end of [hipat_empty] (* ****** ****** *) implement hipat_lst ( loc , lin, hse_lst, hse_elt, hips ) = let // val s2c = ( if lin = 0 then $S2C.s2cstref_get_cst ($S2C.the_list_t0ype_int_type) else $S2C.s2cstref_get_cst ($S2C.the_list_vt0ype_int_vtype) ) : s2cst // val-Some(xx) = $S2E.s2cst_get_islst (s2c) // val d2c_nil = xx.0 and d2c_cons = xx.1 // val pck = ( if lin = 0 then $D2E.PCKcon else $D2E.PCKfree ) : $D2E.pckind // val l0 = $LAB.label_make_int (0) val l1 = $LAB.label_make_int (1) // val lhse0 = HSLABELED (l0, None, hse_elt) val lhse1 = HSLABELED (l1, None, hse_lst) val lhses_arg = list_pair (lhse0, lhse1) val hse_sum = hisexp_tysum (d2c_cons, lhses_arg) // fun auxlst ( hips: hipatlst ) : hipat = let in // case+ hips of // | list_cons (hip0, hips) => let val hip1 = auxlst (hips) val lhip0 = LABHIPAT (l0, hip0) val lhip1 = LABHIPAT (l1, hip1) val lhips_arg = list_pair (lhip0, lhip1) in hipat_con (loc, hse_lst, pck, d2c_cons, hse_sum, lhips_arg) end // end of [list_cons] // | list_nil () => hipat_con_any (loc, hse_lst, pck, d2c_nil) // end // end of [auxlst] // in auxlst (hips) end // end of [hipat_lst] (* ****** ****** *) implement hipat_rec ( loc, hse, knd, pck, lhips, hse_rec ) = ( hipat_make_node (loc, hse, HIPrec(knd, pck, lhips, hse_rec)) ) // end of [hipat_rec] implement hipat_rec2 ( loc0, hse0, knd, pck, lhips, hse_rec ) = let // val isflt = (if knd = 0 then true else false): bool // in // if isflt then ( case lhips of | list_cons (lx, list_nil ()) => let val+LABHIPAT(l, x) = lx in x end // end of [list_cons] | _ (*notsing*) => hipat_rec(loc0, hse0, knd, pck, lhips, hse_rec) ) (* end of [then] *) else ( hipat_rec (loc0, hse0, knd, pck, lhips, hse_rec) ) (* end of [else] *) // end // end of [hipat_rec2] (* ****** ****** *) implement hipat_refas (loc, hse, d2v, hip) = hipat_make_node (loc, hse, HIPrefas (d2v, hip)) // end of [hipat_refas] (* ****** ****** *) implement hipat_ann (loc, hse, hip, hse_ann) = hipat_make_node (loc, hse, HIPann (hip, hse_ann)) // end of [hipat_ann] (* ****** ****** *) implement hidexp_get_type (hde) = hde.hidexp_type implement hidexplst_get_type (hdes) = let val hses = list_map_fun (hdes, hidexp_get_type) in list_of_list_vt (hses) // end of [val] end // end of [hidexplst_get_type] (* ****** ****** *) implement hidexp_make_node (loc, hse, node) = '{ hidexp_loc= loc, hidexp_type= hse, hidexp_node= node } // end of [hidexp_make_node] (* ****** ****** *) implement hidexp_cst (loc, hse, d2c) = hidexp_make_node (loc, hse, HDEcst (d2c)) // end of [hidexp_cst] implement hidexp_var (loc, hse, d2v) = hidexp_make_node (loc, hse, HDEvar (d2v)) // end of [hidexp_var] (* ****** ****** *) implement hidexp_int (loc, hse, i) = hidexp_make_node (loc, hse, HDEint (i)) // end of [hidexp_int] implement hidexp_intrep (loc, hse, rep) = hidexp_make_node (loc, hse, HDEintrep (rep)) // end of [hidexp_intrep] implement hidexp_bool (loc, hse, b) = hidexp_make_node (loc, hse, HDEbool (b)) // end of [hidexp_bool] implement hidexp_char (loc, hse, c) = hidexp_make_node (loc, hse, HDEchar (c)) // end of [hidexp_char] implement hidexp_float (loc, hse, rep) = hidexp_make_node (loc, hse, HDEfloat (rep)) // end of [hidexp_float] implement hidexp_string (loc, hse, str) = hidexp_make_node (loc, hse, HDEstring (str)) // end of [hidexp_string] (* ****** ****** *) implement hidexp_i0nt (loc, hse, tok) = hidexp_make_node (loc, hse, HDEi0nt (tok)) // end of [hidexp_i0nt] implement hidexp_f0loat (loc, hse, tok) = hidexp_make_node (loc, hse, HDEf0loat(tok)) // end of [hidexp_f0loat] (* ****** ****** *) implement hidexp_cstsp (loc, hse, x) = hidexp_make_node (loc, hse, HDEcstsp(x)) // end of [hidexp_cstsp] (* ****** ****** *) implement hidexp_tyrep (loc, hse, x) = hidexp_make_node (loc, hse, HDEtyrep(x)) // end of [hidexp_cstsp] (* ****** ****** *) implement hidexp_top(loc, hse) = hidexp_make_node (loc, hse, HDEtop()) // end of [hidexp_top] implement hidexp_empty(loc, hse) = hidexp_make_node (loc, hse, HDEempty()) // end of [hidexp_empty] implement hidexp_ignore (loc, hse, hde) = hidexp_make_node (loc, hse, HDEignore(hde)) // end of [hidexp_ignore] (* ****** ****** *) implement hidexp_castfn (loc, hse, d2c, arg) = hidexp_make_node (loc, hse, HDEcastfn(d2c, arg)) // end of [hidexp_castfn] (* ****** ****** *) implement hidexp_extval (loc, hse, name) = hidexp_make_node (loc, hse, HDEextval(name)) // end of [hidexp_extval] implement hidexp_extfcall (loc, hse, _fun, _arg) = hidexp_make_node (loc, hse, HDEextfcall(_fun, _arg)) // end of [hidexp_extfcall] implement hidexp_extmcall (loc, hse, _obj, _mtd, _arg) = hidexp_make_node (loc, hse, HDEextmcall(_obj, _mtd, _arg)) // end of [hidexp_extmcall] (* ****** ****** *) // implement hidexp_con ( loc, hse, d2c, hse_sum, lhdes ) = hidexp_make_node(loc, hse, HDEcon (d2c, hse_sum, lhdes)) // (* ****** ****** *) implement hidexp_tmpcst (loc, hse, d2c, t2mas) = hidexp_make_node (loc, hse, HDEtmpcst(d2c, t2mas)) // end of [hidexp_tmpcst] implement hidexp_tmpvar (loc, hse, d2v, t2mas) = hidexp_make_node (loc, hse, HDEtmpvar(d2v, t2mas)) // end of [hidexp_tmpvar] (* ****** ****** *) implement hidexp_foldat (loc, hse) = hidexp_make_node (loc, hse, HDEfoldat()) implement hidexp_freeat (loc, hse, hde) = hidexp_make_node (loc, hse, HDEfreeat(hde)) // end of [hidexp_freeat] (* ****** ****** *) implement hidexp_let (loc, hse, hids, hde) = hidexp_make_node (loc, hse, HDElet(hids, hde)) // end of [hidexp_let] (* ****** ****** *) implement hidexp_app (loc, hse, hse_fun, _fun, _arg) = hidexp_make_node (loc, hse, HDEapp (_fun, hse_fun, _arg)) // end of [hidexp_app] implement hidexp_app2 ( loc0, hse, hse_fun, _fun, _arg ) = let // val opt = ( case+ _fun.hidexp_node of | HDEcst (d2c) => if $D2E.d2cst_is_castfn (d2c) then Some_vt (d2c) else None_vt | _ (*non-HDEcst*) => None_vt () ) : Option_vt (d2cst) // in // case+ opt of | ~Some_vt (d2c) => let val hde = ( case+ _arg of | list_cons (hse, _) => hse // list_cons | list_nil () => let val loc = _fun.hidexp_loc in hidexp_empty (loc, hisexp_void_t0ype()) end // end of [list_nil] ) : hidexp // end of [val] in hidexp_castfn (loc0, hse, d2c, hde) end // end of [Some_vt] | ~None_vt () => hidexp_app (loc0, hse, hse_fun, _fun, _arg) // end of [None_vt] // end // end of [hidexp_app2] (* ****** ****** *) implement hidexp_if (loc, hse, _cond, _then, _else) = hidexp_make_node (loc, hse, HDEif (_cond, _then, _else)) // end of [hidexp_if] implement hidexp_sif (loc, hse, _cond, _then, _else) = hidexp_make_node (loc, hse, HDEsif (_cond, _then, _else)) // end of [hidexp_sif] (* ****** ****** *) implement hidexp_case (loc, hse, knd, hdes, hcls) = hidexp_make_node (loc, hse, HDEcase (knd, hdes, hcls)) // end of [hidexp_case] (* ****** ****** *) implement hidexp_lst (loc, hse, lin, hse_elt, hdes) = hidexp_make_node (loc, hse, HDElst (lin, hse_elt, hdes)) // end of [hidexp_lst] (* ****** ****** *) implement hidexp_rec (loc, hse, knd, lhdes, hse_rec) = hidexp_make_node (loc, hse, HDErec (knd, lhdes, hse_rec)) // end of [hidexp_rec] implement hidexp_rec2 ( loc0, hse0, knd, lhdes, hse_rec ) = let // val isflt = (if knd = 0 then true else false): bool // in // if isflt then ( case+ lhdes of | list_cons ( lhde, list_nil() ) => let val+LABHIDEXP (l, hde) = lhde in hde end // end of [list_cons] | _ (*non-sing*) => hidexp_rec (loc0, hse0, knd, lhdes, hse_rec) // end of [non-sing] ) (* end of [then] *) else hidexp_rec (loc0, hse0, knd, lhdes, hse_rec) // end (* end of [hidexp_rec2] *) (* ****** ****** *) implement hidexp_seq (loc, hse, hdes) = hidexp_make_node (loc, hse, HDEseq (hdes)) // end of [hidexp_seq] (* ****** ****** *) implement hidexp_selab (loc, hse, hde, hse_flt, hils) = hidexp_make_node (loc, hse, HDEselab (hde, hse_flt, hils)) // end of [hidexp_selab] (* ****** ****** *) implement hidexp_ptrofvar (loc, hse, d2v) = hidexp_make_node (loc, hse, HDEptrofvar (d2v)) // end of [hidexp_ptrofvar] implement hidexp_ptrofsel (loc, hse, hde, s2rt, hils) = hidexp_make_node (loc, hse, HDEptrofsel (hde, s2rt, hils)) // end of [hidexp_ptrofsel] (* ****** ****** *) implement hidexp_refarg (loc, hse, refval, freeknd, hde) = hidexp_make_node (loc, hse, HDErefarg (refval, freeknd, hde)) // end of [hidexp_refarg] (* ****** ****** *) implement hidexp_selvar (loc, hse, d2v, hse_rt, hils) = hidexp_make_node (loc, hse, HDEselvar (d2v, hse_rt, hils)) // end of [hidexp_selvar] implement hidexp_selptr (loc, hse, hde, hse_rt, hils) = hidexp_make_node (loc, hse, HDEselptr (hde, hse_rt, hils)) // end of [hidexp_selptr] (* ****** ****** *) implement hidexp_assgn_var (loc, hse, d2v_l, hse_rt, hils, hde_r) = hidexp_make_node (loc, hse, HDEassgn_var (d2v_l, hse_rt, hils, hde_r)) // end of [hidexp_assgn_var] implement hidexp_assgn_ptr (loc, hse, hde_l, hse_rt, hils, hde_r) = hidexp_make_node (loc, hse, HDEassgn_ptr (hde_l, hse_rt, hils, hde_r)) // end of [hidexp_assgn_ptr] (* ****** ****** *) implement hidexp_xchng_var (loc, hse, d2v_l, hse_rt, hils, hde_r) = hidexp_make_node (loc, hse, HDExchng_var (d2v_l, hse_rt, hils, hde_r)) // end of [hidexp_xchng_var] implement hidexp_xchng_ptr (loc, hse, hde_l, hse_rt, hils, hde_r) = hidexp_make_node (loc, hse, HDExchng_ptr (hde_l, hse_rt, hils, hde_r)) // end of [hidexp_xchng_ptr] (* ****** ****** *) implement hidexp_arrpsz ( loc, hse, hse_elt, hdes_elt, asz ) = hidexp_make_node (loc, hse, HDEarrpsz (hse_elt, hdes_elt, asz)) // end of [hidexp_arrpsz] implement hidexp_arrinit ( loc, hse, hse_elt, hde_asz, hdes_elt, asz ) = hidexp_make_node (loc, hse, HDEarrinit (hse_elt, hde_asz, hdes_elt, asz)) // end of [hidexp_arrinit] (* ****** ****** *) implement hidexp_raise (loc, hse, hde_exn) = hidexp_make_node(loc, hse, HDEraise(hde_exn)) // end of [hidexp_raise] (* ****** ****** *) // implement hidexp_vararg (loc, hse, hdes_arg) = hidexp_make_node(loc, hse, HDEvararg(hdes_arg)) // (* ****** ****** *) // implement hidexp_vcopyenv (loc, hse, d2v) = hidexp_make_node(loc, hse, HDEvar(d2v)) // (* ****** ****** *) // implement hidexp_tempenver (loc, hse, d2vs) = hidexp_make_node(loc, hse, HDEtempenver(d2vs)) // (* ****** ****** *) implement hidexp_lam ( loc, hse, knd , hips_arg, hde_body ) = hidexp_make_node (loc, hse, HDElam (knd, hips_arg, hde_body)) // end of [hidexp_lam] (* ****** ****** *) implement hidexp_fix (loc, hse, knd, f_d2v, hde_def) = hidexp_make_node (loc, hse, HDEfix (knd, f_d2v, hde_def)) // end of [hidexp_fix] (* ****** ****** *) // implement hidexp_delay (loc, hse, hde) = hidexp_make_node (loc, hse, HDEdelay (hde)) // end of [hidexp_delay] implement hidexp_ldelay (loc, hse, _eval, _free) = hidexp_make_node (loc, hse, HDEldelay (_eval, _free)) // end of [hidexp_ldelay] // implement hidexp_lazyeval (loc, hse, lin, hde) = hidexp_make_node (loc, hse, HDElazyeval (lin, hde)) // end of [hidexp_lazyeval] // (* ****** ****** *) implement hidexp_loop (loc, hse, init, test, post, body) = hidexp_make_node (loc, hse, HDEloop (init, test, post, body)) // end of [hidexp_loop] implement hidexp_loopexn (loc, hse, knd) = hidexp_make_node (loc, hse, HDEloopexn (knd)) // end of [hidexp_loopexn] (* ****** ****** *) implement hidexp_trywith (loc, hse, hde, hicls) = hidexp_make_node (loc, hse, HDEtrywith (hde, hicls)) // end of [hidexp_trywith] (* ****** ****** *) implement hidexp_errexp (loc, hse) = hidexp_make_node (loc, hse, HDEerrexp ()) // end of [hidexp_errexp] (* ****** ****** *) implement hilab_lab (loc, lab) = '{ hilab_loc= loc, hilab_node = HILlab (lab) } implement hilab_ind (loc, ind) = '{ hilab_loc= loc, hilab_node = HILind (ind) } (* ****** ****** *) implement higmat_make (loc, ghde, ghip) = '{ higmat_loc= loc , higmat_exp= ghde , higmat_pat= ghip } // end of [higmat_make] implement hiclau_make (loc, hips, gua, seq, neg, body) = '{ hiclau_loc= loc , hiclau_pat= hips , hiclau_gua= gua , hiclau_seq= seq , hiclau_neg= neg , hiclau_body= body } // end of [hiclau_make] (* ****** ****** *) implement hifundec_make ( loc, d2v, s2vs, def ) = '{ hifundec_loc= loc , hifundec_var= d2v , hifundec_imparg= s2vs , hifundec_def= def , hifundec_hidecl= None () , hifundec_funlab= None () } // end of [hifundec_make] (* ****** ****** *) local staload UN = "prelude/SATS/unsafe.sats" in (* in of [local] *) implement hifundec_get_hideclopt (hfd) = $UN.cast{hideclopt}(hfd.hifundec_hidecl) // end of [hifundec_get_hideclopt] implement hifundeclst_set_hideclopt (hfds, opt) = let // fun set ( hfd: hifundec, opt: hideclopt ) : void = $UN.ptrset (hifundec_getref_hideclopt (hfd), opt) // fun auxlst ( hfds: hifundeclst, opt: hideclopt ) : void = let in // case+ hfds of | list_cons (hfd, hfds) => let val () = set (hfd, opt) in auxlst (hfds, opt) end // end of [auxlst] | list_nil () => () // end // end of [auxlst] // in auxlst (hfds, opt) end // end of [hifundeclst_set_hideclopt] end // end of [local] (* ****** ****** *) implement hivaldec_make (loc, pat, def) = '{ hivaldec_loc= loc , hivaldec_pat= pat , hivaldec_def= def } // end of [hivaldec_make] implement hivardec_make ( loc, knd , d2v, d2vw, type, init ) = '{ hivardec_loc= loc , hivardec_knd= knd , hivardec_dvar_ptr= d2v , hivardec_dvar_view= d2vw , hivardec_type= type , hivardec_init= init } // end of [hivardec_make] (* ****** ****** *) implement hiimpdec_make ( loc, knd, d2c, imparg, tmparg, def ) = '{ hiimpdec_loc= loc , hiimpdec_knd= knd , hiimpdec_cst= d2c , hiimpdec_imparg= imparg , hiimpdec_tmparg= tmparg , hiimpdec_def= def , hiimpdec_funlab= None () , hiimpdec_instrlst= None () } // end of [hiimpdec_make] (* ****** ****** *) implement hidecl_make_node (loc, node) = '{ hidecl_loc= loc, hidecl_node= node } // end of [hidecl_make_node] implement hidecl_none (loc) = hidecl_make_node (loc, HIDnone()) // end of [hidecl_none] implement hidecl_list (loc, hids) = hidecl_make_node (loc, HIDlist(hids)) // end of [hidecl_list] (* ****** ****** *) // implement hidecl_saspdec (loc, d2c) = hidecl_make_node (loc, HIDsaspdec(d2c)) // end of [hidecl_saspdec] implement hidecl_reassume (loc, s2c) = hidecl_make_node (loc, HIDreassume(s2c)) // end of [hidecl_reassume] // (* ****** ****** *) implement hidecl_extype (loc, name, hse_def) = hidecl_make_node (loc, HIDextype(name, hse_def)) // end of [hidecl_extype] implement hidecl_extvar (loc, name, hde_def) = hidecl_make_node (loc, HIDextvar(name, hde_def)) // end of [hidecl_extvar] implement hidecl_extcode (loc, knd, pos, code) = hidecl_make_node (loc, HIDextcode(knd, pos, code)) // end of [hidecl_extcode] (* ****** ****** *) implement hidecl_exndecs (loc, d2cs) = hidecl_make_node(loc, HIDexndecs(d2cs)) // end of [hidecl_exndecs] implement hidecl_datdecs (loc, knd, s2cs) = hidecl_make_node(loc, HIDdatdecs(knd, s2cs)) // end of [hidecl_datdecs] (* ****** ****** *) implement hidecl_dcstdecs (loc, dck, d2cs) = hidecl_make_node (loc, HIDdcstdecs (dck, d2cs)) // end of [hidecl_dcstdecs] (* ****** ****** *) implement hidecl_impdec (loc, knd, himp) = hidecl_make_node (loc, HIDimpdec (knd, himp)) // end of [hidecl_impdec] (* ****** ****** *) implement hidecl_fundecs (loc, knd, decarg, hfds) = hidecl_make_node (loc, HIDfundecs (knd, decarg, hfds)) // end of [hidecl_fundecs] (* ****** ****** *) implement hidecl_valdecs (loc, knd, hvds) = hidecl_make_node (loc, HIDvaldecs (knd, hvds)) // end of [hidecl_valdecs] implement hidecl_valdecs_rec (loc, knd, hvds) = hidecl_make_node (loc, HIDvaldecs_rec (knd, hvds)) // end of [hidecl_valdecs_rec] (* ****** ****** *) implement hidecl_vardecs (loc, hvds) = hidecl_make_node (loc, HIDvardecs (hvds)) // end of [hidecl_vardecs] (* ****** ****** *) implement hidecl_include (loc, knd, hids) = hidecl_make_node (loc, HIDinclude (knd, hids)) // end of [hidecl_include] (* ****** ****** *) implement hidecl_staload ( loc, idopt, fname, flag, loaded, fenv ) = hidecl_make_node (loc, HIDstaload (idopt, fname, flag, loaded, fenv)) // end of [hidecl_staload] implement hidecl_staloadloc (loc, pfil, nspace, hids) = hidecl_make_node (loc, HIDstaloadloc (pfil, nspace, hids)) // end of [hidecl_staloadloc] (* ****** ****** *) implement hidecl_dynload (loc, fil) = hidecl_make_node (loc, HIDdynload (fil)) // end of [hidecl_dynload] (* ****** ****** *) implement hidecl_local (loc, head, body) = hidecl_make_node (loc, HIDlocal (head, body)) // end of [hidecl_local] (* ****** ****** *) local staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" // staload TRENV2 = "./pats_trans2_env.sats" in (* in of [local] *) implement filenv_get_tmpcstimpmapopt (fenv) = let val p = $TRENV2.filenv_getref_tmpcstimpmap (fenv) in $UN.ptrget (p) end // end of [filenv_get_tmpcstimpmapopt] implement filenv_get_tmpvardecmapopt (fenv) = let val p = $TRENV2.filenv_getref_tmpvardecmap (fenv) in $UN.ptrget (p) end // end of [filenv_get_tmpvardecmapopt] end // end of [local] (* ****** ****** *) implement tmpcstimpmap_find (map, d2c) = let val opt = $D2E.d2cstmap_search (map, d2c) in // case+ opt of | ~Some_vt (imps) => imps | ~None_vt () => list_nil () // end // end of [tmpcstimpmap_find] implement tmpcstimpmap_insert (map, imp) = let val d2c = imp.hiimpdec_cst val imps = tmpcstimpmap_find (map, d2c) val _(*found*) = $D2E.d2cstmap_insert (map, d2c, list_cons (imp, imps)) in // nothing end // end of [tmpcstimpmap_insert] (* ****** ****** *) implement tmpvardecmap_find (map, d2v) = $D2E.d2varmap_search (map, d2v) // end of [tmpvardecmap_find] implement tmpvardecmap_insert (map, hfd) = let val d2v = hfd.hifundec_var val _(*found*) = $D2E.d2varmap_insert (map, d2v, hfd) in // nothing end // end of [tmpvardecmap_insert] implement tmpvardecmap_inserts (map, hfds) = let in // case+ hfds of | list_cons (hfd, hfds) => let val () = tmpvardecmap_insert (map, hfd) in tmpvardecmap_inserts (map, hfds) end // end of [list_cons] | list_nil () => () // end // end of [tmpvardecmap_inserts] (* ****** ****** *) extern typedef "hipat_t" = hipat extern typedef "hifundec_t" = hifundec extern typedef "hiimpdec_t" = hiimpdec %{$ ats_void_type patsopt_hipat_set_asvar ( ats_ptr_type hip, ats_ptr_type opt ) { ((hipat_t)hip)->atslab_hipat_asvar = opt ; return ; } // end of [patsopt_hipat_set_asvar] ats_ptr_type patsopt_hifundec_getref_hideclopt (ats_ptr_type fundec) { return &((hifundec_t)fundec)->atslab_hifundec_hidecl ; } // end of [patsopt_hifundec_getref_hideclopt] ats_ptr_type patsopt_hifundec_getref_funlabopt (ats_ptr_type fundec) { return &((hifundec_t)fundec)->atslab_hifundec_funlab ; } // end of [patsopt_hifundec_getref_funlabopt] ats_ptr_type patsopt_hiimpdec_getref_funlabopt (ats_ptr_type impdec) { return &((hiimpdec_t)impdec)->atslab_hiimpdec_funlab ; } // end of [patsopt_hiimpdec_getref_funlabopt] ats_ptr_type patsopt_hiimpdec_getref_instrlstopt (ats_ptr_type impdec) { return &((hiimpdec_t)impdec)->atslab_hiimpdec_instrlst ; } // end of [patsopt_hiimpdec_getref_instrlstopt] %} // end of [%{$] (* ****** ****** *) (* end of [pats_hidynexp.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_errmsg.sats0000644000175000017500000000455013431250607020677 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) staload LOC = "./pats_location.sats" typedef location = $LOC.location (* ****** ****** *) fun{} prerr_ERROR_beg(): void fun{} prerr_ERROR_end(): void (* ****** ****** *) // fun{} prerr_FILENAME (): void // specific // fun{} prerr_interror (): void // generic fun{} prerr_interror_loc (loc: location): void // generic // fun{} prerr_error1_loc (loc: location): void // generic fun{} prerr_error2_loc (loc: location): void // generic fun{} prerr_errmac_loc (loc: location): void // generic fun{} prerr_error3_loc (loc: location): void // generic fun{} prerr_error4_loc (loc: location): void // generic // fun{} prerr_errccomp_loc (loc: location): void // generic // fun{} prerr_warning1_loc (loc: location): void // generic fun{} prerr_warning2_loc (loc: location): void // generic fun{} prerr_warning3_loc (loc: location): void // generic fun{} prerr_warning4_loc (loc: location): void // generic // fun{} prerr_warnccomp_loc (loc: location): void // generic // (* ****** ****** *) (* end of [pats_errmsg.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans3_env_lstate.dats0000644000175000017500000004372713431250607023030 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans3_lstate" (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_staexp2_util.sats" staload "./pats_staexp2_error.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* overload compare with compare_d2var_d2var *) (* ****** ****** *) staload SOL = "./pats_staexp2_solve.sats" (* ****** ****** *) staload "./pats_trans3.sats" staload "./pats_trans3_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) implement lstbefitm_make (d2v, linval) = let val opt = d2var_get_type (d2v) in '{ lstbefitm_var= d2v, lstbefitm_linval= linval, lstbefitm_type= opt } end // end of [lstbefitm_make] (* ****** ****** *) implement fprint_lstbefitm (out, x) = let // macdef prstr (s) = fprint_string (out, ,(s)) // end of [macdef] val () = prstr "lstbefitm(" val () = fprint_d2var (out, x.lstbefitm_var) val () = prstr ", " val () = fprint_int (out, x.lstbefitm_linval) val () = prstr ", " val opt = x.lstbefitm_type val () = ( case+ opt of | Some (s2e) => (prstr "Some("; fprint_s2exp (out, s2e); prstr ")") | None () => prstr "None()" ) : void // end of [val] val () = prstr ")" // end of [val] // in // nothing end // end of [fprint_lstbefitm] implement fprint_lstbefitmlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_lstbefitm) // end of [fprint_lstbefitmlst] (* ****** ****** *) implement lstbefitmlst_restore_type (xs) = list_app_fun (xs, f) where { fun f (x: lstbefitm): void = d2var_set_type (x.lstbefitm_var, x.lstbefitm_type) // end of [f] } // end of [where] // end of [lstbefitmlst_restore_type] implement lstbefitmlst_restore_linval_type (xs) = list_app_fun (xs, f) where { fun f (x: lstbefitm): void = let val d2v = x.lstbefitm_var val () = d2var_set_linval (d2v, x.lstbefitm_linval) val () = d2var_set_type (d2v, x.lstbefitm_type) in // nothing end // end of [f] } // end of [where] // end of [lstbefitmlst_restore_type] (* ****** ****** *) typedef saityp = s2expopt typedef saityplst = List (saityp) viewtypedef saityplst_vt = List_vt (saityp) extern fun fprint_saityp : fprint_type (saityp) implement fprint_saityp (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) in case+ x of | Some (s2e) => (prstr "Some("; fpprint_s2exp (out, s2e); prstr ")") | None () => prstr "None()" end // end of [fprint_saityp] extern fun fprint_saityplst : fprint_type (saityplst) implement fprint_saityplst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_saityp) // end of [fprint_saityplst] extern fun fprint_saityplst_vt (out: FILEref, xs: !saityplst_vt): void implement fprint_saityplst_vt (out, xs) = fprint_saityplst (out, $UN.castvwtp1 {saityplst} (xs)) // end of [fprint_saityplst_vt] (* ****** ****** *) extern fun saityplst_check (d2v: d2var, xs: saityplst): int // 0/1: skip/merge // end of [saityplst_check] local fun auxlst ( s2e0: s2exp, xs: saityplst ) : int = ( case+ xs of | list_cons (x, xs) => ( case+ x of | Some (s2e) => let val iseq = s2exp_refeq (s2e0, s2e) in if iseq then auxlst (s2e0, xs) else 1(*merge*) end // end of [SAITYPsome] | None () => auxlst (s2e0, xs) ) // end of [list_cons] | list_nil () => 0 (*skip*) ) // end of [auxlst_check] in // in of [local] implement saityplst_check (d2v, xs) = let val-list_cons (x, xs) = xs in // case x of | Some (s2e0) => let val () = d2var_set_type (d2v, Some s2e0) in auxlst (s2e0, xs) end // end of [None] | None () => let val () = d2var_set_type (d2v, None ()) in 0(*skip*) end // end of [None] // end // end of [saityplst_check] end // end of [local] (* ****** ****** *) viewtypedef lstaftitm = @{ lstaftitm_var= d2var , lstaftitm_knd= int // 0/1/2: skip/merge/sub+merge , lstaftitm_type= s2expopt // it can be found in [lstaftitm_var] , lstaftitm_saits= saityplst_vt } // end of [lstaftitm] viewtypedef lstaftitmlst = List_vt (lstaftitm) (* ****** ****** *) extern fun fprint_lstaftitm (out: FILEref, x: &lstaftitm): void implement fprint_lstaftitm (out, x) = let macdef prstr (s) = fprint_string (out, ,(s)) val () = prstr "LSTAFTITM(\n" val () = fprint_d2var (out, x.lstaftitm_var) val () = prstr "\n" val () = fprint_int (out, x.lstaftitm_knd) val () = prstr "\n" val () = fprint_s2expopt (out, x.lstaftitm_type) val () = prstr "\n" val () = fprint_saityplst_vt (out, x.lstaftitm_saits) val () = prstr "\n)" in // nothing end // end of [fprint_lstaftitm] extern fun fprint_lstaftitmlst (out: FILEref, xs: !lstaftitmlst): void implement fprint_lstaftitmlst (out, xs) = ( case+ xs of | list_vt_cons (!p_x, !p_xs1) => let val () = fprint_lstaftitm (out, !p_x) val () = fprint_newline (out) val () = fprint_lstaftitmlst (out, !p_xs1) prval () = fold@ (xs) in // nothing end // end of [list_vt_cons] | list_vt_nil () => fold@ (xs) ) // end of [fprint_lstaftitmlst] extern fun lstaftitmlst_free (xs: lstaftitmlst): void implement lstaftitmlst_free (xs) = ( case+ xs of | ~list_vt_cons (x, xs) => let val-~list_vt_nil () = x.lstaftitm_saits in lstaftitmlst_free (xs) end // end of [list_vt_cons] | ~list_vt_nil () => () ) // end of [lstaftitmlst_free] (* ****** ****** *) extern fun lstaftitmlst_make (xs: lstbefitmlst): lstaftitmlst implement lstaftitmlst_make (xs) = let // fun loop ( xs: lstbefitmlst , res: &lstaftitmlst? >> lstaftitmlst ) : void = let in case+ xs of | list_cons (x, xs) => let val d2v = x.lstbefitm_var val () = res := list_vt_cons {lstaftitm}{0} (?, ?) // end of [val] val+list_vt_cons (!p_x, !p_res1) = res val () = p_x->lstaftitm_var := d2v val () = p_x->lstaftitm_knd := 0(*default*) val () = p_x->lstaftitm_type := None(*default*) val () = p_x->lstaftitm_saits := list_vt_nil val () = loop (xs, !p_res1) in fold@ (res) end | list_nil () => (res := list_vt_nil ()) end // end of [loop] // var res: lstaftitmlst val () = loop (xs, res) // in res end // end of [lstaftitmlst_make] (* ****** ****** *) extern fun lstaftitmlst_update (xs: !lstaftitmlst): void implement lstaftitmlst_update (xs) = ( // case+ xs of | list_vt_cons (!p_x, !p_xs1) => let val d2v = p_x->lstaftitm_var val sait = d2var_get_type (d2v) val saits = p_x->lstaftitm_saits val () = p_x->lstaftitm_saits := list_vt_cons (sait, saits) val () = lstaftitmlst_update (!p_xs1) prval () = fold@ (xs) in // nothing end // end of [list_vt_cons] | list_vt_nil () => fold@ (xs) // ) // end of [lstaftitmlst_update] (* ****** ****** *) extern fun lstaftitmlst_reverse (xs: !lstaftitmlst): void // reverse saityplst implement lstaftitmlst_reverse (xs) = ( // case+ xs of | list_vt_cons (!p_x, !p_xs1) => let val saits = p_x->lstaftitm_saits val () = p_x->lstaftitm_saits := list_vt_reverse (saits) val () = lstaftitmlst_reverse (!p_xs1) prval () = fold@ (xs) in // nothing end // end of [list_vt_cons] | list_vt_nil () => fold@ (xs) // ) // end of [lstaftitmlst_reverse] (* ****** ****** *) dataviewtype lstaftc3nstr = LSTAFTC3NSTR of (lstaftitmlst, List_vt (c3nstroptref)) (* ****** ****** *) assume lstaftc3nstr_viewtype = lstaftc3nstr (* ****** ****** *) implement fprint_lstaftc3nstr (out, x) = let // val LSTAFTC3NSTR (!p_lsais, _) = x val () = fprint_lstaftitmlst (out, !p_lsais) prval () = fold@ (x) // in // nothing end // end of [fprint_lstaftc3nstr] (* ****** ****** *) implement lstaftc3nstr_initize (lsbis) = let // val lsais = lstaftitmlst_make (lsbis) val ctrs = list_vt_nil {c3nstroptref} () // in LSTAFTC3NSTR (lsais, ctrs) end // end of [lstaftc3nstr_initize] (* ****** ****** *) implement lstaftc3nstr_update (lsaft, ctr) = let // val+LSTAFTC3NSTR (!p1_lsais, !p2_ctrs) = lsaft val () = lstaftitmlst_update (!p1_lsais) val () = !p2_ctrs := list_vt_cons (ctr, !p2_ctrs) prval () = fold@ (lsaft) // in // nothing end // end of [lstaftc3nstr_update] (* ****** ****** *) implement lstaftc3nstr_finalize (lsaft) = let // val+~LSTAFTC3NSTR (lsais, ctrs) = lsaft val () = lstaftitmlst_free (lsais) val-list_vt_nil () = ctrs // HX: [ctrs] should be nil! // in // nothing end // end of [lstaftc3nstr_finalize] (* ****** ****** *) extern fun lstaftc3nstr_check (lsaft: !lstaftc3nstr, invres: i2nvresstate): void // end of [lstaftc3nstr_check] local fun d2var_is_done (d2v: d2var): bool = let val opt = d2var_get_finknd (d2v) in case+ opt of D2VFINdone _ => true | _ => false end // end of [d2var_is_done] fun aux1 (xs: !lstaftitmlst): d2varlst_vt = ( // case+ xs of | list_vt_cons (!p_x, !p_xs1) => let val d2v = p_x->lstaftitm_var val ans = let val isdone = d2var_is_done (d2v) in if isdone then 0 else let val saits = $UN.castvwtp1{saityplst}(p_x->lstaftitm_saits) in saityplst_check (d2v, saits) end // end of [if] end : int // end of [val] val d2vs = aux1 (!p_xs1) prval () = fold@ (xs) in if ans(*merge*) > 0 then list_vt_cons (d2v, d2vs) else d2vs end // end of [list_vt_cons] | list_vt_nil () => let prval () = fold@ (xs) in list_vt_nil () end // end of [list_vt_nil] // ) // end of [aux1] fun aux2 ( d2v0: d2var, d2vs: d2varlst, k: &int ) : s2expopt = ( // case+ d2vs of | list_cons (d2v, d2vs) => let val sgn = compare (d2v0, d2v) in if sgn = 0 then let val opt = d2var_get_mastype (d2v) in (k := 1; opt) end else aux2 (d2v0, d2vs, k) // end of [if] end // end of [list_cons] | list_nil () => None () // ) // end of [aux2] fun aux3 ( d2v0: d2var , args: i2nvarglst, d2vs: d2varlst, k: &int ) : s2expopt = ( // case+ args of | list_cons (arg, args) => let val d2v = i2nvarg_get_var (arg) // end of [val] val sgn = compare (d2v0, d2v) in if sgn = 0 then let val () = k := 2 in i2nvarg_get_type (arg) end else aux3 (d2v0, args, d2vs, k) // end of [if] end // end of [list_cons] | list_nil () => aux2 (d2v0, d2vs, k) // ) // end of [aux3] fun auxlst ( xs: !lstaftitmlst, args: i2nvarglst, d2vs: d2varlst ) : void = let in // case+ xs of | list_vt_cons (!p_x, !p_xs1) => let val d2v0 = p_x->lstaftitm_var var knd: int = 0 val opt = aux3 (d2v0, args, d2vs, knd) val () = p_x->lstaftitm_knd := knd val () = p_x->lstaftitm_type := opt val () = if knd > 0 then d2var_set_type (d2v0, opt) val () = auxlst (!p_xs1, args, d2vs) in fold@ (xs) end // end of [list_vt_cons] | list_vt_nil () => fold@ (xs) // end // end of [auxlst] in (* in of [local] *) implement lstaftc3nstr_check (lsaft, invres) = let // val+LSTAFTC3NSTR (!p_lsais, _) = lsaft // val d2vs = aux1 (!p_lsais) // val () = let val args = invres.i2nvresstate_arg val d2vs = $UN.castvwtp1 {d2varlst} (d2vs) in auxlst (!p_lsais, args, d2vs) end // end of [val] // val () = list_vt_free (d2vs) // prval () = fold@ (lsaft) // in // nothing end // end of [lstaftc3nstr_check] end // end of [local] (* ****** ****** *) local fun auxerr_some ( loc: loc_t, d2v: d2var, s2e0: s2exp ) : void = let val () = prerr_error3_loc (loc) val () = prerr ": the dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is consumed but it should be retained with the type [" val () = prerr_s2exp (s2e0) val () = prerr "] instead." val () = prerr_newline () in the_trans3errlst_add (T3E_d2var_some (loc, d2v, s2e0)) end // end of [auxerr_some] fun auxerr_none ( loc: loc_t, d2v: d2var, s2e: s2exp ) : void = let val () = prerr_error3_loc (loc) val () = prerr ": the dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is retained with the type [" val () = prerr_s2exp (s2e) val () = prerr "] but it should be consumed instead." val () = prerr_newline () in the_trans3errlst_add (T3E_d2var_some (loc, d2v, s2e)) end // end of [auxerr_none] fun auxerr_some2 ( loc: loc_t, d2v: d2var, s2e0: s2exp, s2e: s2exp ) : void = let val () = prerr_error3_loc (loc) val () = prerr ": the dynamic variable [" val () = prerr_d2var (d2v) val () = prerr "] is retained but with a type that fails to merge." val () = prerr_newline () val () = prerr_the_staerrlst () in the_trans3errlst_add (T3E_d2var_some2 (loc, d2v, s2e0, s2e)) end // end of [auxerr_some2] fun auxsait ( loc: loc_t , d2v: d2var (* perform merge for [d2v] *) , knd: int // HX: 0/1/2 : skip/merge/sub+merge , sub: !stasub , sait0: s2expopt, sait: s2expopt ) : void = let in // case+ sait0 of | Some(s2e0) => ( case+ sait of | Some(s2e) => ( case+ 0 of | _ when knd >= 1 => let val s2e0 = ( if knd >= 2 then s2exp_subst (sub, s2e0) else s2e0 // end of [if] ) : s2exp // end of [val] // val (pfpush|()) = trans3_env_push() val err = $SOL.s2exp_tyleq_solve (loc, s2e, s2e0) val knd = C3TKlstate_var (d2v) val ((*void*)) = trans3_env_pop_and_add (pfpush | loc, knd) // val () = if (err > 0) then { val () = prerr_the_staerrlst () val () = auxerr_some2 (loc, d2v, s2e0, s2e) } (* end of [if] *) // end of [val] in // nothing end | _ (* knd = 0 *) => () ) // end of [Some] | None ((*void*)) => auxerr_some (loc, d2v, s2e0) ) | None((*void*)) => ( case+ sait of | Some(s2e) => auxerr_none (loc, d2v, s2e) | None() => () ) (* end of [None] *) // end // end of [auxsait] fun auxmain ( xs: !lstaftitmlst , ctr: c3nstroptref, sub: !stasub ) : void = ( case+ xs of | list_vt_cons (!p_x, !p_xs1) => let val d2v = p_x->lstaftitm_var val knd = p_x->lstaftitm_knd val sait0 = d2var_get_type (d2v) val-~list_vt_cons (sait, saits) = p_x->lstaftitm_saits val () = p_x->lstaftitm_saits := saits val ctrloc = ctr.c3nstroptref_loc val () = auxsait (ctrloc, d2v, knd, sub, sait0, sait) val () = auxmain (!p_xs1, ctr, sub) in fold@ (xs) end // end of [list_vt_cons] | list_vt_nil () => fold@ (xs) ) // end of [auxmain] fun auxmainlst ( xs: !lstaftitmlst , ctrs: List_vt (c3nstroptref), invres: i2nvresstate ) : void = let in // case+ ctrs of | ~list_vt_cons (ctr, ctrs) => let val ctrloc = ctr.c3nstroptref_loc val sub = stasub_make_svarlst (ctrloc, invres.i2nvresstate_svs) val s2ps = s2explst_subst_vt (sub, invres.i2nvresstate_gua) // val (pfpush|()) = trans3_env_push() // val () = trans3_env_add_proplst_vt (ctrloc, s2ps) val () = auxmain (xs, ctr, sub) // val s3is = trans3_env_pop (pfpush | (*none*)) val c3t0 = c3nstr_itmlst (ctrloc, C3TKlstate(), (l2l)s3is) val () = let val ref = ctr.c3nstroptref_ref in !ref := Some (c3t0) end // end of [val] // val () = stasub_free (sub) in auxmainlst (xs, ctrs, invres) end // end of [list_vt_cons] // | ~list_vt_nil((*void*)) => () // end // end of [auxmainlst] in // in of [local] implement lstaftc3nstr_process (lsaft, invres) = let // val () = lstaftc3nstr_check (lsaft, invres) // (* val () = print "lstaftc3nstr_process:\n" val () = fprint_lstaftc3nstr (stdout_ref, lsaft) *) // val LSTAFTC3NSTR (!p_lsais, !p_ctrs) = lsaft // val ctrs = !p_ctrs val () = !p_ctrs := list_vt_nil () val () = auxmainlst (!p_lsais, ctrs, invres) // prval ((*void*)) = fold@ (lsaft) // in // nothing end // end of [lstaftc3nstr_process] end // end of [local] (* ****** ****** *) implement i2nvarglst_update (loc, args) = let in // case+ args of | list_cons (arg, args) => let // val d2v = i2nvarg_get_var (arg) val opt = i2nvarg_get_type (arg) (* val () = println! ("i2nvarglst_update: d2v = ", d2v) val () = println! ("i2nvarglst_update: opt = ", opt) *) val () = d2var_inc_linval (d2v) // end of [val] // val () = d2var_set_type (d2v, opt) // in i2nvarglst_update (loc, args) end // end of [list_cons] | list_nil () => () // end // end of [i2nvarglst_update] (* ****** ****** *) implement i2nvresstate_update (loc, invres) = let // val () = trans3_env_add_svarlst (invres.i2nvresstate_svs) val () = trans3_env_hypadd_proplst (loc, invres.i2nvresstate_gua) // in // // HX-2012-08: // updating is already done during merge but this is i2nvarglst_update (loc, invres.i2nvresstate_arg) // more appropriate // end // end of [i2nvresstate_update] (* ****** ****** *) (* end of [pats_trans3_lstate.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_fixity_fxty.dats0000644000175000017500000002240013431250607021741 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload LOC ="./pats_location.sats" overload print with $LOC.print_location overload prerr with $LOC.prerr_location (* ****** ****** *) staload "./pats_fixity.sats" (* ****** ****** *) implement fprint_fxty (out, fxty) = let macdef prstr (x) = fprint_string (out, ,(x)) in case+ fxty of | FXTYnon () => begin prstr ("FXTYnon()") end // end of [FXTYnon] | FXTYinf (p, a) => begin prstr "FXTYinf("; fprint_int (out, (int_of_prec)p); prstr ")" end // end of [FXTYinf] | FXTYpre (p) => begin prstr "FXTYpre("; fprint_int (out, (int_of_prec)p); prstr ")" end // end of [FXTYpre] | FXTYpos (p) => begin prstr "FXTYpos("; fprint_int (out, (int_of_prec)p); prstr ")" end // end of [FXTYpos] end // end of [fprint_fxty] implement print_fxty (x) = fprint_fxty (stdout_ref, x) implement prerr_fxty (x) = fprint_fxty (stderr_ref, x) (* ****** ****** *) implement fxty_non = FXTYnon () implement fxty_inf (p, a) = FXTYinf (p, a) implement fxty_pre (p) = FXTYpre p implement fxty_pos (p) = FXTYpos p (* ****** ****** *) implement selptr_fxty_dyn = FXTYinf (select_prec, ASSOClft) implement deref_fxty_dyn = FXTYpre (deref_prec_dyn) (* ****** ****** *) implement fxty_get_prec (fxty) = case+ fxty of | FXTYnon () => None_vt () | FXTYinf (p, _) => Some_vt (p) | FXTYpre p => Some_vt (p) | FXTYpos p => Some_vt (p) // end of [fxty_get_prec] (* ****** ****** *) implement fxopr_associativity (x) = begin case+ x of FXOPRinf (_, a, _) => a | _ => ASSOCnon () end // end of [fxopr_associativity] implement fxopr_precedence (x) = begin case+ x of | FXOPRinf (p, _, _) => p | FXOPRpre (p, _) => p | FXOPRpos (p, _) => p end // end of [fxopr_precedence] (* ****** ****** *) local // macdef app_assoc = ASSOClft (* left association *) // in // in of [local] // implement fxitm_app (loc, f) = FXITMopr (loc, FXOPRinf (app_prec, app_assoc, f)) // end // end of [local] (* ****** ****** *) implement fxopr_make {a} ( locf, appf, opr, fxty ) = let // val loc_opr = locf opr // fn aux_inf ( opr: a, p: prec, a: assoc ) : fxitm a = let fn f (x1: a, x2: a): fxitm a = let val loc = $LOC.location_combine (locf x1, locf x2) in FXITMatm (appf (loc, opr, loc, '[x1, x2])) end // end of [f] in FXITMopr (locf (opr), FXOPRinf (p, a, f)) end // end of [aux_inf] // fn aux_pre ( opr: a, p: prec ) : fxitm a = let fn f (x: a): fxitm a = let val loc_x = locf x val loc = $LOC.location_combine (loc_opr, loc_x) in FXITMatm (appf (loc, opr, loc_x, '[x])) end // end of [f] in FXITMopr (locf (opr), FXOPRpre (p, f)) end // end of [aux_pre] // fn aux_pos ( opr: a, p: prec ) : fxitm a = let fn f (x: a): fxitm a = let val loc_x = locf x val loc = $LOC.location_combine (loc_x, loc_opr) in FXITMatm (appf (loc, opr, loc_x, '[x])) end // end of [f] in FXITMopr (locf (opr), FXOPRpos (p, f)) end // end of [aux_pos] // in // case+ fxty of | FXTYnon () => FXITMatm (opr) | FXTYinf (p, a) => aux_inf (opr, p, a) | FXTYpre p => aux_pre (opr, p) | FXTYpos p => aux_pos (opr, p) // end // end of [fxopr_make] (* ****** ****** *) implement fxopr_make_backslash {a} (locf, appf, loc) = let fn f1 (x: a): fxitm a = let val loc = $LOC.location_combine (loc, locf x) fn f2 (x1: a, x2: a): fxitm a = let val loc = $LOC.location_combine (locf x1, locf x2) in FXITMatm (appf (loc, x, loc, '[x1, x2])) end // end of [f2] in FXITMopr (loc, FXOPRinf (infixtemp_prec, ASSOCnon, f2)) end // end of [f1] in FXITMopr (loc, FXOPRpre (backslash_prec, f1)) end // end of [fxopr_make_backslahsh] (* ****** ****** *) (* ** HX-2011-04-10: ** this is some code I originally wrote in 1998 ** for implementing DML; it has been a while :) *) implement fixity_resolve {a} ( loc0, locf, app, xs ) = let // #define nil list_nil #define :: list_cons #define cons list_cons // typedef I = fxitm a typedef J = List (I) // fn erropr ( loc: location ) : a = let val () = prerr (loc) val () = prerr ": error(1)" val () = prerr ": operator fixity cannot be resolved." val () = prerr_newline () in $raise($ERR.PATSOPT_FIXITY_EXN(*void*)) end // end of [erropr] // fn errapp ( locf: a -> location, m: fxitm a ) : a = let val-FXITMatm atm = m val () = prerr (locf(atm)) val () = prerr ": error(1)" val () = prerr ": application fixity cannot be resolved." // end of [val] val () = prerr_newline((*void*)) in $raise($ERR.PATSOPT_FIXITY_EXN(*void*)) end // end of [errapp] // fn err_reduce ( loc: location, ys: J ) : a = let val () = prerr (loc) val () = prerr ": error(1)" val () = prerr ": operator fixity cannot be resolved." val () = prerr_newline((*void*)) in $raise($ERR.PATSOPT_FIXITY_EXN(*void*)) end // end of [err] // (* ** HX: [fn*] for mutual tail-recursion *) fn* process ( xs: J, ys: J ) : a = ( case+ (xs, ys) of | (nil (), FXITMatm t :: nil ()) => t | (nil (), ys) => xreduce (nil (), ys) | (x :: xs, ys) => resolve (xs, x, ys) ) (* end of [process] *) // and resolve ( xs: J, m: I, ys: J ) : a = case+ m of | FXITMatm _ => ( case+ ys of | FXITMatm _ :: _ => resolve_app (xs, m, ys) // end of [FXITMatm] | _ => process (xs, m :: ys) ) // end of [_, FXITMatm, _] | FXITMopr (loc, opr) => resolve_opr (loc, opr, xs, m, ys) (* end of [resolve] *) // and resolve_opr ( loc: location , opr: fxopr a, xs: J, m: I, ys: J ) : a = ( case+ (opr, ys) of | (FXOPRinf _, _ :: nil ()) => process (xs, m :: ys) | (FXOPRinf _, _ :: FXITMopr (_, opr1) :: _) => let val p = fxopr_precedence opr and p1 = fxopr_precedence opr1 in case+ compare(p, p1) of | 1 => process(xs, m :: ys) | ~1 => xreduce(m :: xs, ys) | _ (* 0 *) => let val assoc = fxopr_associativity opr and assoc1 = fxopr_associativity opr1 in case+ (assoc, assoc1) of | (ASSOClft (), ASSOClft ()) => xreduce(m :: xs, ys) | (ASSOCrgt (), ASSOCrgt ()) => process(xs, m :: ys) | (_, _) => erropr (loc) end // end of [_ (* 0 *)] end // end of [let] | (FXOPRpre _, _) => process (xs, m :: ys) | (FXOPRpos _, _ :: FXITMopr (_, opr1) :: _) => let val p = fxopr_precedence opr and p1 = fxopr_precedence opr1 in case+ compare (p, p1) of | 1 => xreduce (xs, m :: ys) | ~1 => xreduce (m :: xs, ys) | _ (* 0 *) => erropr (loc) end // end of [let] | (FXOPRpos _, _ :: nil ()) => xreduce (xs, m :: ys) | (_, _) => erropr (loc) ) (* end of [resolve_opr] *) // and resolve_app ( xs: J, m: I, ys: J ) : a = ( case+ ys of | _ :: FXITMopr (_, opr1) :: _ => let val p1 = fxopr_precedence opr1 val sgn = compare (app_prec, p1): Sgn in case+ sgn of | 1 => process (xs, m :: app :: ys) | ~1 => xreduce (m :: xs, ys) | _ (*0*) => let val assoc1 = fxopr_associativity opr1 in case+ assoc1 of | ASSOClft () => xreduce (m :: xs, ys) | _ => errapp (locf, m) // HX: [m] is FXITMatm end // end of [_] end // end of [_ :: ITERMopr :: _] | _ :: nil () => process (xs, m :: app :: ys) | _ => errapp (locf, m) // HX: [m] is FXITMatm ) (* end of [resolve_app] *) // and xreduce ( xs: J, ys: J ) : a = ( case+ ys of // | FXITMatm t1 :: FXITMopr (_, FXOPRinf (_, _, f)) :: FXITMatm t2 :: ys => resolve(xs, f(t2, t1), ys) // | FXITMatm t1 :: FXITMopr (_, FXOPRpre (_, f)) :: ys => resolve(xs, f(t1), ys) | FXITMopr (_, FXOPRpos (_, f)) :: FXITMatm t1 :: ys => resolve(xs, f(t1), ys) // | _ (*rest*) => err_reduce (loc0, ys) ) (* end of [reduce] *) // in // process(xs, nil((*void*))) // end // end of [fixity_resolve] (* ****** ****** *) (* end of [pats_fixity_fxty.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_p0at.dats0000644000175000017500000002023713431250607021515 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload ERR = "./pats_error.sats" staload LOC = "./pats_location.sats" overload + with $LOC.location_combine staload SYM = "./pats_symbol.sats" macdef BACKSLASH = $SYM.symbol_BACKSLASH macdef UNDERSCORE = $SYM.symbol_UNDERSCORE overload = with $SYM.eq_symbol_symbol (* ****** ****** *) staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" implement prerr_FILENAME<> () = prerr "pats_trans1_p0at" (* ****** ****** *) staload "./pats_fixity.sats" staload "./pats_syntax.sats" staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" (* ****** ****** *) staload "./pats_trans1.sats" staload "./pats_trans1_env.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) overload fprint with fprint_p0at (* ****** ****** *) macdef list_sing (x) = list_cons (,(x), list_nil ()) (* ****** ****** *) // // HX: translation of patterns // typedef p1atitm = fxitm (p1at) typedef p1atitmlst = List (p1atitm) // (* ****** ****** *) local fn appf ( _fun: p1at, _arg: p1at ) : p1atitm = let val loc_arg = _arg.p1at_loc val loc = _fun.p1at_loc + loc_arg val p1t_app = ( case+ _arg.p1at_node of | P1Tlist (npf, p1ts) => p1at_app_dyn (loc, _fun, loc_arg, npf, p1ts) // end of [P1Tlist] | P1Tsvararg s1a => begin case+ _fun.p1at_node of | P1Tapp_sta (p1t1, s1as) => let val s1as = list_extend (s1as, s1a) in p1at_app_sta (loc, p1t1, (l2l)s1as) end // end of [P1Tapp_sta] | _ => p1at_app_sta (loc, _fun, list_sing (s1a)) // end of [_] end // end of [P1Tsvararg] | _ => let val p1ts = list_sing (_arg) in p1at_app_dyn (loc, _fun, loc_arg, ~1(*npf*), p1ts) end (* end of [_] *) ) : p1at // end of [val] in FXITMatm (p1t_app) end // end of [appf] in (* in-of-local *) fn p1atitm_app (loc: location): p1atitm = fxitm_app (loc, appf) // end of [p1atitm_app] end // end of [local] fn p1at_get_loc (x: p1at): location = x.p1at_loc fn p1at_make_opr ( opr: p1at, f: fxty ) : p1atitm = begin fxopr_make {p1at} ( p1at_get_loc , lam (loc, x, loc_arg, xs) => p1at_app_dyn (loc, x, loc_arg, ~1(*npf*), xs) , opr, f ) // end of [oper_make] end // end of [p1at_make_opr] fn p1atitm_backslash (loc_opr: location) = begin fxopr_make_backslash {p1at} ( lam x => x.p1at_loc , lam (loc, x, loc_arg, xs) => p1at_app_dyn (loc, x, loc_arg, ~1(*npf*), xs) , loc_opr ) // end of [oper_make_backslash] end // end of [p1atitm_backslash] (* ****** ****** *) local fn p0at_tr_errmsg_opr (p0t0: p0at): p1at = let val loc0 = p0t0.p0at_loc val () = prerr_error1_loc (loc0) val () = prerr ": the operator needs to be applied." val () = prerr_newline () val () = the_trans1errlst_add (T1E_p0at_tr (p0t0)) in p1at_errpat (loc0) end // end of [p0at_tr_errmsg_opr] in (* in-of-local *) implement p0at_tr (p0t0) = let // #define :: list_cons // fun aux_item ( p0t0: p0at ) : p1atitm = let // val loc0 = p0t0.p0at_loc // in // case+ p0t0.p0at_node of (* case+ *) // | P0Tide(id) => ( if (id=UNDERSCORE) then FXITMatm(p1at_any(loc0)) else ( if (id=BACKSLASH) then p1atitm_backslash(loc0) else let val p1t = p1at_ide(loc0, id) val opt = the_fxtyenv_find(id) in case+ opt of | ~None_vt() => FXITMatm(p1t) | ~Some_vt(f) => p1at_make_opr(p1t, f) end // end of [else] ) ) (* end of [P0Tide] *) // | P0Tdqid (dq, id) => FXITMatm(p1at_dqid(loc0, dq, id)) // (* end of [P0Tdqid] *) // | P0Topid(id) => FXITMatm(p1at_ide(loc0, id)) // | P0Tint (x) => FXITMatm (p1at_i0nt (loc0, x)) | P0Tchar (x) => FXITMatm (p1at_c0har (loc0, x)) | P0Tfloat (x) => FXITMatm (p1at_f0loat (loc0, x)) | P0Tstring (x) => FXITMatm (p1at_s0tring (loc0, x)) // | P0Tapp _ => let val p1t_app = fixity_resolve ( loc0, p1at_get_loc, p1atitm_app(loc0), aux_itemlst p0t0 ) (* end of [val] *) in FXITMatm (p1t_app) end // end of [P0Tapp] // | P0Tlist(npf, p0ts) => let val p1ts = p0atlst_tr p0ts in FXITMatm(p1at_list(loc0, npf, p1ts)) end // end of [[P0Tlist] // | P0Tlst (lin, p0ts) => let val p1ts = p0atlst_tr(p0ts) in FXITMatm(p1at_lst(loc0, lin, p1ts)) end // end of [P1Tlst] | P0Ttup (knd, npf, p0ts) => let val p1ts = p0atlst_tr(p0ts) in FXITMatm(p1at_tup(loc0, knd, npf, p1ts)) end // end of [P1Ttup] | P0Trec (knd, npf, lp0ts) => let val lp1ts = labp0atlst_tr(lp0ts) in FXITMatm(p1at_rec(loc0, knd, npf, lp1ts)) end // end of [P0Trec] // | P0Tfree(p0t) => FXITMatm(p1at_free(loc0, p0at_tr(p0t))) | P0Tunfold(p0t) => FXITMatm(p1at_unfold(loc0, p0at_tr(p0t))) // | P0Trefas(id, loc_id, p0t) => FXITMatm(p1at_refas(loc0, id, loc_id, p0at_tr p0t)) // | P0Texist(s0as) => let val s1as = s0arglst_tr (s0as) fun fopr ( body: p1at ) : p1atitm = let val loc = loc0 + body.p1at_loc in FXITMatm(p1at_exist(loc, s1as, body)) end // end of [f] in FXITMopr(loc0, FXOPRpre(exist_prec_dyn, fopr)) end // end of [P0Texist] // | P0Tsvararg(s0a) => FXITMatm(p1at_svararg(loc0, s0vararg_tr(s0a))) // end of [P0Tsvararg] // | P0Tann(p0t, s0e) => let val p1t = p0at_tr(p0t) val s1e = s0exp_tr(s0e) in FXITMatm(p1at_ann(loc0, p1t, s1e)) end // end of [P0Tann] // | P0Terr((*erroneous*)) => let val () = prerr_interror_loc(loc0) val () = fprintln! (stderr_ref, ": p0at_tr: p0t0 = ", p0t0) in $ERR.abort_interr{p1atitm}((*reachable*)) end // end of [P0Terr] (* | _ (* rest-of-p0at *) => let val () = prerr_interror_loc(loc0) val () = fprintln ( stderr_ref, "p0at_tr: aux_item: p0t0 = ", p0t0 ) (* end of [val] *) val () = assertloc(false) in $ERR.abort_interr((*deadcode*)) end // (* end of [rest-of-p0at] *) *) end (* end of [aux_item] *) // and aux_itemlst (p0t0: p0at): p1atitmlst = let fun loop ( p0t0: p0at, res: p1atitmlst ) : p1atitmlst = case+ p0t0.p0at_node of | P0Tapp (p0t1, p0t2) => let val res = aux_item p0t2 :: res in loop (p0t1, res) end // end of [P0Tapp] | _ => list_cons (aux_item (p0t0), res) // end of [loop] in loop (p0t0, list_nil ()) end // end of [aux_itemlist] // in // case+ aux_item (p0t0) of | FXITMatm (p1t) => p1t | FXITMopr _ => p0at_tr_errmsg_opr (p0t0) // end // end of [p0at_tr] end // end of [local] implement labp0at_tr (lp0t) = let // val loc0 = lp0t.labp0at_loc // in // case+ lp0t.labp0at_node of | LABP0ATnorm (l, p0t) => labp1at_norm (loc0, l, p0at_tr (p0t)) | LABP0ATomit ((*void*)) => labp1at_omit (loc0) // end // end of [labp0at_tr] (* ****** ****** *) // implement p0atlst_tr (xs) = l2l (list_map_fun (xs, p0at_tr)) // implement labp0atlst_tr (lxs) = l2l (list_map_fun (lxs, labp0at_tr)) // (* ****** ****** *) (* end of [pats_trans1_p0at.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_trans1_env.sats0000644000175000017500000001031213431250607021451 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload FIX = "./pats_fixity.sats" typedef fxty = $FIX.fxty (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol (* ****** ****** *) staload "./pats_syntax.sats" staload "./pats_symmap.sats" staload "./pats_staexp1.sats" staload "./pats_dynexp1.sats" (* ****** ****** *) fun the_e1xpenv_add (k: symbol, x: e1xp): void fun the_e1xpenv_addperv (k: symbol, x: e1xp): void fun the_e1xpenv_find (k: symbol): Option_vt (e1xp) (* ****** ******* *) // absview e1xpenv_push_v // fun the_e1xpenv_pop (pf: e1xpenv_push_v | (*none*)): symmap (e1xp) fun the_e1xpenv_push_nil (): (e1xpenv_push_v | void) // (* ****** ******* *) fun the_EXTERN_PREFIX_get (): Stropt fun the_EXTERN_PREFIX_set (prfx: string): void fun the_EXTERN_PREFIX_set_none (): void (* ****** ******* *) fun the_fxtyenv_add (key: symbol, itm: fxty): void fun the_fxtyenv_find (key: symbol): Option_vt (fxty) absview fxtyenv_push_v fun the_fxtyenv_pop (pf: fxtyenv_push_v | (*none*)): symmap (fxty) fun the_fxtyenv_push_nil (): (fxtyenv_push_v | void) fun the_fxtyenv_pervasive_joinwth (map: symmap (fxty)): void (* ****** ******* *) fun fprint_the_fxtyenv (out: FILEref): void // mostly for debugging (* ****** ****** *) (* // // HX-2014-07: // these function are no longer in use // absview trans1_level_v // for avoiding negative levels fun the_trans1_level_get (): int fun the_trans1_level_dec (pf: trans1_level_v | (*none*)): void fun the_trans1_level_inc (): (trans1_level_v | void) *) (* ****** ****** *) absview trans1_env_push_v fun the_trans1_env_pop (pf: trans1_env_push_v | (*none*)): void fun the_trans1_env_push (): (trans1_env_push_v | void) (* ** HX: for handling *) fun the_trans1_env_localjoin ( pf1: trans1_env_push_v, pf2: trans1_env_push_v | (*none*) ) : void // end of [trans1_env_localjoin] (* ****** ******* *) absview trans1_env_save_v fun the_trans1_env_save ((*none*)): (trans1_env_save_v | void) fun the_trans1_env_restore (pf: trans1_env_save_v | (*none*)): void (* ****** ****** *) fun staload_file_search (fil: filename): Option_vt@(int(*ldflg*), d1eclist) fun staload_file_insert (fil: filename, loadflag: int, d1cs: d1eclist): void (* ****** ******* *) // datatype atsrelocitm = | ATSRELOCITM of (d0ecl, string(*given*)) | ATSRELOCITM2 of (d0ecl, string(*source*), string(*target*)) // end of [atsrelocitm] // typedef atsrelocitmlst = List (atsrelocitm) // fun fprint_atsrelocitm (out: FILEref, x: atsrelocitm): void fun fprint_atsrelocitmlst (out: FILEref, xs: atsrelocitmlst): void // (* ****** ******* *) // fun the_atsrelocitmlst_get (): atsrelocitmlst // fun the_atsreloc_insert (d0c: d0ecl, given: string): void fun the_atsreloc_insert2 (d0c: d0ecl, given_s: string, given_t: string): void // (* ****** ******* *) fun the_trans1_env_initialize (): void (* ****** ******* *) (* end of [pats_trans1_env.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_filename.dats0000644000175000017500000006743513431250607021154 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" staload _(*UN*) = "prelude/DATS/unsafe.dats" (* ****** ****** *) // staload UTL = "./pats_utils.sats" staload _(*UTL*) = "./pats_utils.dats" // symintr print_stropt overload print_stropt with $UTL.print_stropt // (* ****** ****** *) // staload LOC = "./pats_location.sats" // (* ****** ****** *) // staload SYM = "./pats_symbol.sats" // typedef symbol = $SYM.symbol overload = with $SYM.eq_symbol_symbol // (* ****** ****** *) staload "./pats_filename.sats" (* ****** ****** *) // fun ptr_succ_char (p: ptr): ptr = add_ptr_size(p, sizeof) // (* ****** ****** *) local // #include "prelude/params_system.hats" // #if SYSTEM_IS_UNIX_LIKE #then // val theDirSep: char = '/' val theCurDir: string = "./" val theParDir: string = "../" // #endif in (* in of [local] *) implement theDirSep_get () = theDirSep implement theCurDir_get () = theCurDir implement theParDir_get () = theParDir end // end of [local] (* ****** ****** *) local // staload STR = "libc/SATS/string.sats" // macdef strncmp = $STR.strncmp // in (* in of [local] *) implement givename_srchknd (given) = let // val dir = theCurDir_get() val len = string_length(dir) // in // if strncmp (given, dir, len) = 0 then 0(*loc*) else ( ( if 0 = strncmp ( given, "$PATSHOMELOCS/", 14 ) then 1 else 2(*ext*) ) (* end of [else] *) ) (* end of [else] *) // end // end of [givename_srchknd] (* ****** ****** *) // // HX-2013-09: // a gurled name looks like this: // {}prelude/SATS/string.sats // {$ATSCNTRB}/libgmp/SATS/string.sats // {http://ats-lang.org/LIBRARY}prelude/SATS/string.sats // {git@github.com:githwxi/ATS-Postiats.git}prelude/SATS/string.sats // implement givename_get_ngurl (given) = let // fun loop ( p: ptr, n: int , c0: char, c1: char ) : ptr = let // val c = $UN.ptr0_get(p) // val p1 = ptr_succ_char(p) // in // case+ 0 of | _ when c = c0 => loop(p1, n+1, c0, c1) | _ when c = c1 => if n > 1 then loop(p1, n-1, c0, c1) else p1 | _ (* !=c0,c1 *) => if c != '\000' then loop(p1, n, c0, c1) else null // end (* end of [loop] *) // val p0 = $UN.cast2ptr (given) val c0 = $UN.ptr0_get (p0) // val p1 = ( case+ 0 of (* | _ when c0 = '\(' => let val p = ptr_succ_char(p0, 1) in loop(p, 1, c0, ')') end // end of [_ when ...] *) | _ when c0 = '\{' => let val p = ptr_succ_char(p0) in loop (p, 1, c0, '}') end // end of [_ when ...] | _ (*rest-of-chars*) => null ) : ptr // end of [val] // val p0 = $UN.cast2Ptr1(p0) val p1 = $UN.cast2Ptr1(p1) // in if p1 > p0 then $UN.cast2int(pdiff(p1, p0)) else ~1 end // end of [givename_get_ngurl] end // end of [local] (* ****** ****** *) assume filename_type = '{ filename_givename= string , filename_partname= string , filename_fullname= symbol } (* end of [filename] *) (* ****** ****** *) // implement filename_get_givename (fil) = fil.filename_givename // implement filename_get_partname (fil) = fil.filename_partname // implement filename_get_fullname (fil) = fil.filename_fullname // (* ****** ****** *) (* // implement print_filename (fil) = fprint_filename (stdout_ref, fil) implement prerr_filename (fil) = fprint_filename (stderr_ref, fil) // implement fprint_filename (out, fil) = fprint_string (out, fil.filename_partname) // *) (* ****** ****** *) implement print_filename_full (fil) = fprint_filename_full(stdout_ref, fil) implement prerr_filename_full (fil) = fprint_filename_full(stderr_ref, fil) implement fprint_filename_full (out, fil) = let val fname = $SYM.symbol_get_name(fil.filename_fullname) in fprint_string(out, fname) end // end of [fprint_filename_full] (* ****** ****** *) implement fprint2_filename_full (out, fil) = let // val given = fil.filename_givename val ngurl = givename_get_ngurl(given) val fname = $SYM.symbol_get_name(fil.filename_fullname) // in // if ngurl < 0 then fprint_string(out, fname) else fprintf(out, "%s(%s)", @(fname, given)) // end of [if] // end // end of [fprint2_filename_full] (* ****** ****** *) implement eq_filename_filename (x1, x2) = x1.filename_fullname = x2.filename_fullname // end of [eq_filename_filename] (* ****** ****** *) implement compare_filename_filename (x1, x2) = let // val f1 = $SYM.symbol_get_name(x1.filename_fullname) // val f2 = $SYM.symbol_get_name(x2.filename_fullname) // in compare_string_string (f1, f2) end // end of [compare_filename_filename] (* ****** ****** *) // local // // HX: implemented in [pats_utils.dats] // extern fun string_test_suffix ( str: string, sffx: string ) : bool = "ext#patsopt_string_test_suffix" in (* in of [local] *) // implement filename_is_sats (fil) = string_test_suffix (fil.filename_partname, ".sats") // implement filename_is_dats (fil) = string_test_suffix (fil.filename_partname, ".dats") // end // end of [local] // (* ****** ****** *) // extern fun givename_is_relative (given: string): bool // implement givename_is_relative (given) = let // fun aux {n:int} {i:nat | i <= n} ( given: string(n) , i: size_t(i), dirsep: char ) : bool = let // val isnot = string_isnot_atend(given, i) // in if isnot then (given[i] != dirsep) else false // end of [if] end // end of [aux] // val given = string1_of_string (given) // val dirsep = theDirSep_get () // in aux (given, 0, dirsep) end // [givename_is_relative] // (* ****** ****** *) implement filename_dummy = '{ filename_givename= "" , filename_partname= "" , filename_fullname= $SYM.symbol_empty } // end of [filename_dummy] implement filename_stdin = '{ filename_givename= "__STDIN__" , filename_partname= "__STDIN__" , filename_fullname= $SYM.symbol__STDIN__ } // end of [filename_stdin] implement filename_string = '{ filename_givename= "__STRING__" , filename_partname= "__STRING__" , filename_fullname= $SYM.symbol__STRING__ } // end of [filename_string] (* ****** ****** *) // implement filename_is_dummy(fil) = if ( fil.filename_fullname = $SYM.symbol_empty ) then true else false // implement filename_isnot_dummy(fil) = if ( fil.filename_fullname = $SYM.symbol_empty ) then false else true // (* ****** ****** *) // implement print_pathlst(xs) = fprint_pathlst(stdout_ref, xs) implement prerr_pathlst(xs) = fprint_pathlst(stderr_ref, xs) // implement fprint_pathlst(out, xs) = $UTL.fprintlst(out, xs, ":", lam(out, x) => fprint_string(out, x)) // (* ****** ****** *) // staload UNISTD = "libc/SATS/unistd.sats" // (* ****** ****** *) implement path_normalize_vt (s0) = let // fun loop1 {n0,i0:nat | i0 <= n0} ( dirsep: char , s0: string n0, n0: size_t n0, i0: size_t i0 , dirs: &List_vt strptr1 ) : void = ( if i0 < n0 then loop2(dirsep, s0, n0, i0, i0, dirs) else () ) // and loop2 {n0,i0,i:nat | i0 < n0; i0 <= i; i <= n0} ( dirsep: char , s0: string n0, n0: size_t n0, i0: size_t i0, i: size_t i , dirs: &List_vt strptr1 ) : void = ( if (i < n0) then let (* // empty *) in // if (s0[i] <> dirsep) then ( loop2 (dirsep, s0, n0, i0, i+1, dirs) ) (* end of [then] *) else let val sbp = string_make_substring(s0, i0, i - i0 + 1) val dir = strptr_of_strbuf(sbp) // this is a no-op cast (* val () = ( print "path_normalize_vt: loop2: dir = "; print dir; print_newline () ) (* end of [val] *) *) in dirs := list_vt_cons (dir, dirs); loop1 (dirsep, s0, n0, i + 1, dirs) end // end of [else] // end // end of [then] else let val sbp = string_make_substring (s0, i0, i - i0) val dir = strptr_of_strbuf (sbp) // this is a no-op cast (* val () = ( print "path_normalize_vt: loop2: dir = "; print dir; print_newline () ) (* end of [val] *) *) in dirs := list_vt_cons (dir, dirs) end // end of [else] // ) (* end of [loop1] and [loop2] *) // extern castfn p2s{l:agz}(x: !strptr(l)):<> string // vtypedef strptrlst = List_vt (strptr1) // fun dirs_process{n:nat} ( curdir: string, pardir: string , npar: int n, dirs: strptrlst, res: strptrlst ) : strptrlst = let (* // nothing *) in case+ dirs of | ~list_vt_nil () => let fun loop{i,j:nat} ( pardir: string , npar: int(i), res: list_vt(strptr1, j) ) : list_vt (strptr1, i+j) = if npar > 0 then let val dir = string1_of_string (pardir) // end of [val] val n = string1_length(dir) val dir = string_make_substring(dir, 0, n) val dir = strptr_of_strbuf(dir) in loop(pardir, npar - 1, list_vt_cons(dir, res)) end else res // end of [if] // end of [loop] in loop(pardir, npar, res) end (* end of [list_vt_nil] *) | ~list_vt_cons (dir, dirs) => ( if (p2s)dir = curdir then let val () = strptr_free(dir) in dirs_process(curdir, pardir, npar, dirs, res) end else if (p2s)dir = pardir then let val () = strptr_free(dir) in dirs_process(curdir, pardir, npar + 1, dirs, res) end else ( if npar > 0 then let val () = strptr_free(dir) in dirs_process(curdir, pardir, npar - 1, dirs, res) end else begin dirs_process(curdir, pardir, 0, dirs, list_vt_cons(dir, res)) end (* end of [if] *) ) // end of [if] ) (* end of [list_vt_cons] *) end // end of [dirs_process] // val dirsep = theDirSep_get() val curdir = theCurDir_get() and pardir = theParDir_get() // var dirs : strptrlst = list_vt_nil() // val s0 = string1_of_string(s0) // val n0 = string_length(s0) // val () = loop1 (dirsep, s0, n0, 0, dirs) // val () = dirs := dirs_process(curdir, pardir, 0, dirs, list_vt_nil) // val path = stringlst_concat ( __cast (dirs) ) where { extern castfn __cast(x: !strptrlst): List0(string) } (* end of [where] *) // end of [val] // val ((*freed*)) = list_vt_free_fun (dirs, lam x => strptr_free(x)) // in path(*strptr*) end // end of [path_normalize_vt] implement path_normalize (s0) = string_of_strptr (path_normalize_vt (s0)) // end of [path_normalize] (* ****** ****** *) local // extern castfn p2s{l:agz} (x: !strptr(l)):<> string // in (* in of [local] *) fun partname_fullize ( pname: string ) : string = let // val isrel = givename_is_relative(pname) // in // if isrel then let val cwd = $UNISTD.getcwd0() val fname = filename_dirbase((p2s)cwd, pname) // end of [val] val _freed_ = strptr_free(cwd) val fname_nf = path_normalize((p2s)fname) val _freed_ = strptr_free(fname) in fname_nf end // end of [then] else pname // HX: [pname] is absolute // end // end of [partname_fullize] end (* end of [local] *) (* ****** ****** *) local // assume the_filenamelst_push_v = unit_v // vtypedef filenamelst = List_vt(filename) // val the_filename = ref_make_elt (filename_dummy) val the_filenamelst = ref_make_elt (list_vt_nil) // fun filename_occurs (f0: filename): bool = let // fun loop {n:nat} .. ( fs: !list_vt (filename, n), f0: filename ) :<> bool = ( // case+ fs of | list_vt_cons (f, !p_fs) => let val eqfil = eq_filename_filename(f0, f) // end of [val] in if eqfil then (fold@ fs; true) else let val ans = loop (!p_fs, f0) prval ((*folded*)) = fold@ (fs) in ans end (* end of [else] *) // end of [if] end // end of [list_vt_cons] // | list_vt_nil((*void*)) => (fold@ fs; false) // ) (* end of [loop] *) // val ( vbox pf | p ) = ref_get_view_ptr (the_filenamelst) // in loop (!p, f0) end // end of [filename_occurs] in (* in of [local] *) // implement filename_get_current((*void*)) = !the_filename // (* ****** ****** *) implement the_filenamelst_pop ( pf | (*none*) ) = let // prval unit_v() = pf // in the_filenamelst_ppop((*void*)) end // end of [the_filenamelst_pop] implement the_filenamelst_ppop ((*none*)) = let // val f0 = x0 where { // val (vbox pf | p) = ref_get_view_ptr(the_filenamelst) // val- ~list_vt_cons(x0, xs) = !p val ((*void*)) = (!p := xs) // } (* end of [val] *) // val () = !the_filename := f0 // in // nothing end // end of [the_filenamelst_ppop] (* ****** ****** *) // implement the_filenamelst_push(f0) = let // val () = the_filenamelst_ppush(f0) in (unit_v() | ()) // end // end of [the_filenamelst_push] // implement the_filenamelst_ppush(f0) = let val x0 = !the_filename val () = !the_filename := f0 val (vbox pf | p) = ref_get_view_ptr(the_filenamelst) val () = !p := list_vt_cons(x0, !p) in // nothing end // end of [the_filenamelst_ppush] // (* ****** ****** *) (* // // HX-2017-01-31: push from the back // implement the_filenamelst_ppushb(f0) = let val x0 = !the_filename val () = !the_filename := f0 val (vbox pf | p) = ref_get_view_ptr(the_filenamelst) val () = !p := list_vt_extend(!p, x0) in // nothing end // end of [the_filenamelst_ppushb] // *) (* ****** ****** *) implement the_filenamelst_push_check (f0) = let (* val () = println ( "the_filenamelst_push_check:the_filenamelst(bef)=" ) (* end of [val] *) val ((*void*)) = fprint_the_filenamelst (stdout_ref) *) // val (pf | ()) = the_filenamelst_push (f0) // (* val () = println ( "the_filenamelst_push_check:the_filenamelst(aft)=" ) (* end of [val] *) val ((*void*)) = fprint_the_filenamelst (stdout_ref) // *) val isexi = ( if filename_isnot_dummy(f0) then filename_occurs(f0) else false ) : bool // end of [val] // in (pf | isexi) end // end of [the_filenamelst_push_check] (* ****** ****** *) implement fprint_the_filenamelst (out) = let // fun loop ( out: FILEref, fs: !filenamelst ) : void = ( // case+ fs of | list_vt_cons (f, !p_fs) => let // val () = fprint_filename_full(out, f) val () = fprint_newline (out) // val () = loop (out, !p_fs) prval ((*folded*)) = fold@ (fs) // in // nothing end // end of [list_vt_cons] // | list_vt_nil((*void*)) => fold@ (fs) ) (* end of[ loop] *) // val ( vbox pf | p ) = ref_get_view_ptr (the_filenamelst) // in $effmask_ref (loop (out, !p)) end // end of [fprint_the_filenamelst] end // end of [local] (* ****** ****** *) typedef pathlst = List (path) vtypedef pathlst_vt = List_vt (path) local // assume the_pathlst_push_v = unit_v // val the_pathlst = ref_make_elt(list_vt_nil) val the_prepathlst = ref_make_elt(list_vt_nil) // in (* in of [local] *) (* ****** ****** *) fun the_pathlst_get (): pathlst_vt = xs where { // val ( vbox pf | p ) = ref_get_view_ptr(the_pathlst) // val xs = !p val () = !p := list_vt_nil() // } (* end of [the_pathlst_get] *) fun the_pathlst_set (xs: pathlst_vt): void = { // val ( vbox pf | p ) = ref_get_view_ptr(the_pathlst) // val- ~list_vt_nil() = !p val () = (!p := xs) // } (* end of [the_pathlst_set] *) (* ****** ****** *) implement the_pathlst_pop (pf | (*none*)) = { // prval unit_v() = pf // val ( vbox pf | p ) = ref_get_view_ptr(the_pathlst) // val- ~list_vt_cons(_, xs) = !p val ((*void*)) = !p := xs // } (* end of [the_pathlst_pop] *) implement the_pathlst_push(x0) = let // val () = the_pathlst_ppush(x0) in (unit_v() | ()) // end // end of [the_pathlst_push] implement the_pathlst_ppush(x0) = let // val ( vbox pf | p ) = ref_get_view_ptr(the_pathlst) // in !p := list_vt_cons(x0, !p) end // end of [the_pathlst_ppush] (* ****** ****** *) (* // // HX-2017-02-01: reverted // implement the_pathlst_ppushb(x0) = let // val ( vbox pf | p ) = ref_get_view_ptr(the_pathlst) // in !p := list_vt_extend(!p, x0) end // end of [the_pathlst_ppushb] *) (* ****** ****** *) fun the_prepathlst_get ( // argless ) : pathlst_vt = xs where { // val ( vbox pf | p ) = ref_get_view_ptr(the_prepathlst) // val xs = !p val () = !p := list_vt_nil((*void*)) // } (* end of [the_prepathlst_get] *) fun the_prepathlst_set (xs: pathlst_vt): void = { // val ( vbox pf | p ) = ref_get_view_ptr(the_prepathlst) // val-~list_vt_nil () = !p val ((*void*)) = !p := xs // } // end of [the_prepathlst_set] (* ****** ****** *) implement the_prepathlst_push(x) = let // val ( vbox pf | p ) = ref_get_view_ptr(the_prepathlst) // in !p := list_vt_cons(x, !p) end // end of [the_prepathlst_push] (* ****** ****** *) end // end of [local] (* ****** ****** *) implement filename_make ( given, pname, fname ) = let // val fname = $SYM.symbol_make_string (fname) // in '{ filename_givename= given , filename_partname= pname, filename_fullname= fname } end // end of [filename_make] (* ****** ****** *) local (* ****** ****** *) extern castfn s2s (x: string):<> String extern castfn p2s {l:agz} (x: !strptr l):<> String (* ****** ****** *) fun aux_try {n:nat} .. ( paths: list(path, n), given: string ) : Stropt = let in // case+ paths of | list_cons ( path, paths ) => aux2_try(path, paths, given) | list_nil((*void*)) => stropt_none(*void*) // end // end of [aux_try] and aux2_try {n:nat} .. ( path: path , paths: list(path, n), given: string ) : Stropt = let // val partname = filename_dirbase(path, given) // (* val () = printf("aux2_try: partname = %s\n", @(partname)) *) // val isexi = test_file_exists((p2s)partname) // in // if isexi then ( stropt_of_strptr(partname) ) else let val () = strptr_free(partname) in aux_try(paths, given) end // end of [if] // end // end of [aux2_try] (* ****** ****** *) fun aux_local ( given: string ) : Stropt = let val fil = filename_get_current() val pname = filename_get_partname(fil) (* val () = println!("aux_local: pname = ", pname) *) val pname2 = filename_merge(pname, given) val pname2_nf = path_normalize_vt((p2s)pname2) val ((*freed*)) = strptr_free(pname2) (* val () = println! ("aux_local: pname2_nf = ", pname2_nf) *) val isexi = test_file_exists((p2s)pname2_nf) in if isexi then stropt_of_strptr(pname2_nf) else let val () = strptr_free(pname2_nf) in stropt_none(*void*) end // end of [if] end // end of [aux_local] (* ****** ****** *) fun aux_try_pathlst ( given: string ) : Stropt = ans where { // val path = theCurDir_get() val paths = the_pathlst_get() // val (ans) = // // HX: // search the current directory first // ( aux2_try ( path , $UN.castvwtp1{pathlst}(paths), given ) (* aux2_try *) ) // end of [val] // // HX-2018-01-11: // calling the_pathlst_set is // needed for the_pathlst being linear // (* // val () = println! ("aux_try_pathlst: given = ", given) val () = ( print("aux_try_pathlst: ans = "); print_stropt(ans); println!() ) // *) // val ((*void*)) = the_pathlst_set(paths) // } (* end of [aux_try_pathlst] *) fun aux_try_prepathlst ( given: string ) : Stropt = ans where { // val paths = the_prepathlst_get() // val (ans) = aux_try ($UN.castvwtp1{pathlst}(paths), given) // end of [val] // (* // val () = println! ("aux_try_prepathlst: given = ", given) val () = ( print("aux_try_prepathlst: ans = "); print_stropt(ans); println!() ) // *) // val () = the_prepathlst_set(paths) // HX: linearity // } (* end of [aux_try_prepathlst] *) (* ****** ****** *) fun aux_tryloc {n:nat} .. ( paths: list(path, n), given: string ) : Stropt = let in // case+ paths of | list_cons ( path, paths ) => aux2_tryloc(path, paths, given) | list_nil((*void*)) => stropt_none(*void*) // end // end of [aux_tryloc] and aux2_tryloc {n:nat} .. ( path: path , paths: list(path, n), given: string ) : Stropt = let // val partname = filename_dirbase(path, given) // (* val () = printf("aux2_tryloc: partname = %s\n", @(partname)) *) // val stropt = aux_local((p2s)partname) // val ((*freed*)) = strptr_free(partname) // in // if ( stropt_is_some(stropt) ) then stropt(*path/given*) else aux_tryloc(paths, given) // end of [if] // end // end of [aux2_tryloc] (* ****** ****** *) fun aux_homelocs ( given: string ) : Stropt = let // (* val () = println! ( "aux_homelocs: given = ", given ) (* end of [val] *) *) // fun given_get_partname ( given : string ) : string = let // #define NUL '\0' // val sep = theDirSep_get() // fun loop ( p: ptr ) : string = let // val c = $UN.ptr0_get(p) // in // // [given] should contain '/'! // if (c = NUL) then "" else ( if c != sep then loop(ptr_succ_char(p)) else $UN.cast{string}(ptr_succ_char(p)) // end of [if] ) // end // end of [given_get_partname] // in loop($UN.cast2ptr(given)) end // end of [given_get_partname] // val homelocs = the_PATSHOMELOCS_get_pathlst() // (* val () = ( print! ( "aux_homelocs: homelocs = " ); print_pathlst(homelocs); println!() ) *) // in aux_tryloc(homelocs, given_get_partname(given)) end // end of [aux_homelocs] (* ****** ****** *) fun aux_relative ( given: string ) : Stropt = let // val given = (s2s)given val (knd) = givename_srchknd(given) // in // case+ knd of // | 0 (*local*) => ( // // given = "./ // aux_local(given) ) | 1 (* homelocs *) => ( // // given = // $PATSHOMELOCS/ // aux_homelocs(given) ) // | _ (*external*) => let (* val opt = stropt_none(*void*) *) val opt = aux_try_pathlst(given) in if stropt_is_some(opt) then opt else aux_try_prepathlst(given) end // end of [_] // end // end of [aux_relative] (* ****** ****** *) in (* in of [local] *) (* ****** ****** *) implement filenameopt_make_local (given) = let // val opt = aux_local(given) val issome = stropt_is_some(opt) // in // if issome then let val partname = stropt_unsome(opt) val fullname = partname_fullize(partname) in Some_vt(filename_make(given, partname, fullname)) end else None_vt() // end of [if] // end // end of [filenameopt_make_local] (* ****** ****** *) implement filenameopt_make_relative (given, given2_ref) = let // val ngurl = givename_get_ngurl(given) val given2 = pkgsrcname_relocatize(given, ngurl) val ((*void*)) = (given2_ref := given2) // (* val () = println! ("filenameopt_make_relative: ngurl = ", ngurl) val () = println! ("filenameopt_make_relative: given = ", given) val () = println! ("filenameopt_make_relative: given2 = ", given2) *) // val opt = ( case+ 0 of | _ when givename_is_relative ( given2 ) => aux_relative(given2) // end of [_ when ...] | _ (* given2 is absolute *) => let val isexi = test_file_exists(given2) in if isexi then stropt_some(given2) else stropt_none(*void*) end // end of [_] ) : Stropt // end of [val] // val issome = stropt_is_some(opt) // in // if issome then let // val partname = stropt_unsome(opt) val fullname = partname_fullize(partname) // in Some_vt(filename_make(given, partname, fullname)) end // end of [then] else None_vt() // end of [else] // end // end of [filenameopt_make_relative] (* ****** ****** *) end // end of [local] (* ****** ****** *) local // extern fun my_make_substring ( src: string, beg: size_t, len: size_t ) : strptr1 = "mac#atspre_string_make_substring" // fun my_make_substring_range ( src: string, beg: size_t, fin: size_t ) : string = let val len = ( if fin >= beg then (fin - beg) else 0 ) : size_t // end of [val] in string_of_strptr(my_make_substring(src, beg, len)) end // end of [my_make_substring_range] // (* ****** ****** *) // fun pathlst_test {n:int} ( xs: !list_vt(path, n), x0: path ) : bool = ( case+ xs of | list_vt_nil ((*void*)) => (fold@(xs); false) | list_vt_cons (x_hd, !p_xs_tl) => if x0 = x_hd then (fold@(xs); true) else test where { val test = pathlst_test(!p_xs_tl, x0) // end of [test] prval ((*folded*)) = fold@(xs) } ) (* end of [pathlst_test] *) // fun pathlst_insert ( xs: pathlst_vt, x0: path ) : pathlst_vt = if pathlst_test(xs, x0) then xs else list_vt_cons(x0, xs) // (* ****** ****** *) // val the_PATSHOMELOCS = ref(None()) // fun the_PATSHOMELOCS_split ( paths: string ) : pathlst = let // #define NUL '\0' #define COLON ':' // val dirsep = theDirSep_get() // fun loop2 ( p: ptr , i: size_t , res: pathlst_vt ) : pathlst_vt = let // val c = $UN.ptr0_get(p) // in // if (c = NUL) then res else ( if c = COLON then loop2(ptr_succ_char(p), i+1, res) else loop3(ptr_succ_char(p), i, i+1, res) ) // end (* end of [loop2] *) // and loop3 ( p: ptr , i: size_t , j: size_t , res: pathlst_vt ) : pathlst_vt = let // val c = $UN.ptr0_get(p) // in // if (c = NUL) then let // val path = my_make_substring_range(paths, i, j) // in pathlst_insert(res, path) end // end of [then] else ( if (c = COLON) then let // val path = my_make_substring_range(paths, i, j) // in // loop2 ( ptr_succ_char(p), j+1, pathlst_insert(res, path) ) // end // end of [then] else ( loop3(ptr_succ_char(p), i, j+1, res) ) (* end of [else] *) ) (* end of [else] *) // end (* end of [loop3] *) // in // list_of_list_vt ( list_vt_reverse(loop2($UN.cast2ptr(paths), 0, list_vt_nil())) ) (* list_of_list_vt *) // end // end of [the_PATSHOMELOCS_split] // fun the_PATSHOMELOCS_initize (): pathlst = let // val paths = get() where { extern fun get( // argless ) : Stropt = "ext#patsopt_PATSHOMELOCS_get" } (* end of [val] *) // (* val () = ( print! ( "the_PATSHOMELOCS_initize: paths = " ); print_stropt(paths); print_newline() ) *) // val issome = stropt_is_some(paths) // in // if issome then paths where { val paths = stropt_unsome(paths) val paths = the_PATSHOMELOCS_split(paths) val ((*void*)) = !the_PATSHOMELOCS := Some(paths) // end of [val] } else paths where { val paths = list_nil() val ((*void*)) = !the_PATSHOMELOCS := Some(paths) // end of [val] } end // end of [ else] // in (* in-of-local *) implement the_PATSHOMELOCS_get_pathlst () = let // val opt = !the_PATSHOMELOCS // in // case+ opt of | Some(paths) => paths | None((*void*)) => the_PATSHOMELOCS_initize() // end // end of [the_PATSHOMELOCS_get_pathlst] end // end of [local] (* ****** ****** *) %{$ ats_ptr_type patsopt_filename_merge ( ats_ptr_type ful, ats_ptr_type bas ) { char c, dirsep ; char *p0, *p1, *p ; int n, n1, n2, found = 0 ; char *fulbas ; p0 = p = (char*)ful ; dirsep = patsopt_filename_theDirSep_get () ; // while (1) { c = *p++ ; if (c == 0) break ; if (c == dirsep) { found = 1 ; p1 = p ; } } // n1 = 0 ; if (found) n1 = (p1-p0) ; n2 = strlen ((char*)bas) ; n = n1 + n2 ; fulbas = ATS_MALLOC (n+1) ; memcpy (fulbas, ful, n1) ; memcpy (fulbas + n1, bas, n2) ; fulbas[n] = '\000' ; // return fulbas ; // } // end of [patsopt_filename_merge] ats_ptr_type patsopt_filename_dirbase ( ats_ptr_type dir, ats_ptr_type bas ) { int n1, n2, n ; char dirsep, *dirbas ; // dirsep = patsopt_filename_theDirSep_get () ; // n1 = strlen ((char*)dir) ; n2 = strlen ((char*)bas) ; n = n1 + n2 ; // if (n1 > 0 && ((char*)dir)[n1-1] != dirsep) n += 1 ; dirbas = ATS_MALLOC (n + 1) ; memcpy (dirbas, dir, n1) ; if (n > n1 + n2) { dirbas[n1] = dirsep ; n1 += 1 ; } memcpy (dirbas + n1, bas, n2) ; dirbas[n] = '\000' ; // return dirbas ; } /* end of [patsopt_filename_dirbase] */ %} // end of [%{$] (* ****** ****** *) (* end of [pats_filename.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_emit.dats0000644000175000017500000016622313431250607021506 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: November, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" staload _(*anon*) = "prelude/DATS/unsafe.dats" // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload INTINF = "./pats_intinf.sats" (* ****** ****** *) staload ERR = "./pats_error.sats" (* ****** ****** *) staload STMP = "./pats_stamp.sats" staload GLOB = "./pats_global.sats" (* ****** ****** *) // staload "./pats_errmsg.sats" staload _(*anon*) = "./pats_errmsg.dats" // implement prerr_FILENAME<> () = prerr "pats_ccomp_emit" // (* ****** ****** *) staload LAB = "./pats_label.sats" overload = with $LAB.eq_label_label (* ****** ****** *) staload FIL = "./pats_filename.sats" (* ****** ****** *) staload LOC = "./pats_location.sats" (* ****** ****** *) staload SYM = "./pats_symbol.sats" staload SYN = "./pats_syntax.sats" (* ****** ****** *) staload S2E = "./pats_staexp2.sats" typedef s2cst = $S2E.s2cst typedef d2con = $S2E.d2con typedef s2exp = $S2E.s2exp typedef s2explst = $S2E.s2explst (* ****** ****** *) staload S2UT = "./pats_staexp2_util.sats" (* ****** ****** *) staload D2E = "./pats_dynexp2.sats" typedef d2cst = $D2E.d2cst typedef d2var = $D2E.d2var typedef d2varlst = $D2E.d2varlst typedef d2ecl = $D2E.d2ecl typedef d2eclist = $D2E.d2eclist (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) implement emit_text (out, txt) = fprint_string (out, txt) // end of [emit_text] (* ****** ****** *) implement emit_LPAREN (out) = emit_text (out, "(") implement emit_RPAREN (out) = emit_text (out, ")") (* ****** ****** *) implement emit_newline (out) = fprint_newline (out) (* ****** ****** *) implement emit_location (out, loc) = $LOC.fprint_location (out, loc) // end of [emit_location] (* ****** ****** *) implement emit_int (out, x) = fprint_int (out, x) implement emit_intinf (out, x) = $INTINF.fprint_intinf (out, x) implement emit_ATSPMVint (out, x) = ( emit_text (out, "ATSPMVint("); emit_int (out, x); emit_RPAREN (out) ) // end of [emit_ATSPMVint] implement emit_ATSPMVintrep (out, x) = ( emit_text (out, "ATSPMVintrep("); emit_text (out, x); emit_RPAREN (out) ) // end of [emit_ATSPMVintrep] (* ****** ****** *) implement emit_bool (out, x) = fprint_bool (out, x) implement emit_ATSPMVbool (out, x) = ( emit_text (out, "ATSPMVbool_"); emit_bool (out, x); emit_text (out, "()") ) // end of [emit_ATSPMVbool] (* ****** ****** *) implement emit_float (out, x) = fprintf (out, "%.18f", @(x)) implement emit_ATSPMVfloat (out, x) = ( emit_text (out, "ATSPMVfloat("); emit_float (out, x); emit_text (out, ")") ) // end of [emit_ATSPMVfloat] (* ****** ****** *) local fun auxch ( out: FILEref, c: char ) : void = let in // case+ c of | '\'' => emit_text (out, "\\'") | '\n' => emit_text (out, "\\n") | '\t' => emit_text (out, "\\t") | '\\' => emit_text (out, "\\\\") | _ => ( if char_isprint (c) then fprint_char (out, c) else let val uc= uchar_of_char (c) in fprintf (out, "\\%.3o", @($UN.cast2uint(uc))) end // end of [else] // end of [if] ) // end of [_] // end // end of [auxch] fun auxch2 ( out: FILEref, c: char ) : void = let in // case+ c of | '"' => emit_text (out, "\\\"") | '\n' => emit_text (out, "\\n") | '\t' => emit_text (out, "\\t") | '\\' => emit_text (out, "\\\\") | _ (*rest-of-char*) => ( if char_isprint (c) then fprint_char (out, c) else let val uc = uchar_of_char (c) in fprintf (out, "\\%.3o", @($UN.cast2uint(uc))) end // end of [else] // end of [if] ) (* end of [_] *) // end // end of [auxch2] in (* in of [local] *) implement emit_char (out, c) = auxch (out, c) implement emit_string (out, str) = let // fun auxstr ( out: FILEref, str: string ) : void = let // val isnot = string_isnot_empty (str) in // if isnot then let val p = $UN.cast2Ptr1 (str) val () = auxch2 (out, $UN.ptrget (p)) val str = $UN.cast{string}(p+1) in auxstr (out, str) end else () // end of [if] // end // end of [auxstr] // val () = auxstr (out, str) // in // nothing end // end of [emit_string] end // end of [local] (* ****** ****** *) implement emit_ATSPMVchar (out, c) = { val () = emit_text (out, "ATSPMVchar('") val () = emit_char (out, c) val () = emit_text (out, "')") } // end of [emit_ATSPMVchar] implement emit_ATSPMVstring (out, str) = { val () = emit_text (out, "ATSPMVstring(\"") val () = emit_string (out, str) val () = emit_text (out, "\")") } // end of [emit_ATSPMVstring] (* ****** ****** *) implement emit_ATSPMVi0nt (out, tok) = { // val () = emit_text (out, "ATSPMVi0nt(") // val () = $SYN.fprint_i0nt (out, tok) // val ((*closing*)) = emit_RPAREN (out) // } // end of [emit_ATSPMVi0nt] implement emit_ATSPMVf0loat (out, tok) = { // val () = emit_text (out, "ATSPMVf0loat(") // val () = $SYN.fprint_f0loat (out, tok) // val ((*closing*)) = emit_RPAREN (out) // } // end of [emit_ATSPMVf0loat] (* ****** ****** *) implement emit_stamp (out, x) = $STMP.fprint_stamp (out, x) // end of [emit_stamp] (* ****** ****** *) implement emit_symbol (out, x) = $SYM.fprint_symbol (out, x) // end of [emit_symbol] (* ****** ****** *) local staload TM = "libc/SATS/time.sats" stadef time_t = $TM.time_t // fun emit_patsver (out: FILEref): void = ( emit_int(out, PATS_MAJOR_VERSION); emit_text(out, "-"); emit_int(out, PATS_MINOR_VERSION); emit_text(out, "-"); emit_int(out, PATS_MICRO_VERSION); ) // in (*in-of-local*) implement emit_time_stamp(out) = let // var tm: time_t val () = (tm := $TM.time_get()) val (pfopt|p_tm) = $TM.localtime(tm) // val () = emit_text (out, "/*\n**\n"); val () = ( emit_text(out, "** The C code is generated by ["); emit_text(out, "ATS/Postiats-"); emit_patsver(out); emit_text(out, "]\n") ) (* end of [val] *) val () = emit_text (out, "** The starting compilation time is: ") // val () = if p_tm > null then let // prval Some_v @(pf1, fpf1) = pfopt // val tm_min = $TM.tm_get_min (!p_tm) val tm_hour = $TM.tm_get_hour (!p_tm) val tm_mday = $TM.tm_get_mday (!p_tm) val tm_mon = 1 + $TM.tm_get_mon (!p_tm) val tm_year = 1900 + $TM.tm_get_year (!p_tm) // prval ((*returned*)) = fpf1 (pf1) // in // fprintf ( out , "%i-%i-%i: %2ih:%2im\n" , @(tm_year, tm_mon, tm_mday, tm_hour, tm_min) ) (* end of [fprintf] *) // end // end of [then] else let prval None_v((*void*)) = pfopt in emit_text (out, "**TIME-IS-UNKNOWN!!!**\n") end : void // end of [if] // val () = emit_text (out, "**\n") val () = emit_text (out, "*/\n") // in emit_newline (out) end // end of [emit_time_stamp] end // end of [local] (* ****** ****** *) local fun aux ( out: FILEref, c: char ) = let in // case+ 0 of // | _ when char_isalnum (c) => fprint_char (out, c) // | _ when (c = '_') => fprint_char (out, '_') | _ when (c = '$') => fprint_string (out, "__") // | _ => { val () = fprintf (out, "_%.3o_", @($UN.cast2uint(c))) } (* end of [_] *) // end // end of [aux] in (* in of [local] *) implement emit_ident (out, name) = let val isnot = string_isnot_empty (name) in // if isnot then let val p = $UN.cast2Ptr1 (name) val c = $UN.ptrget (p) val () = aux (out, c) val name = $UN.cast{string}(p+1) in emit_ident (out, name) end // end of [if] // end // end of [emit_ident] end // end of [local] (* ****** ****** *) implement emit_label (out, lab) = () where { val () = $LAB.fprint_label (out, lab) } // end of [emit_label] implement emit_atslabel (out, lab) = () where { val () = emit_text (out, "atslab__") val () = $LAB.fprint_label (out, lab) } // end of [emit_atslabel] implement emit_labelext (out, knd, lab) = let // HX: knd = 0/1 : ats/ext in // if knd > 0 then emit_label (out, lab) else emit_atslabel (out, lab) // end of [if] // end // end of [emit_labelext] (* ****** ****** *) implement emit_filename (out, fil) = let val fsym = $FIL.filename_get_fullname(fil) // end of [val] val fname = $SYM.symbol_get_name(fsym) in emit_ident (out, fname) end // end of [emit_filename] (* ****** ****** *) implement emit_primcstsp (out, pmc) = let in // case+ pmc of | PMCSTSPmyfil (fil) => { val () = emit_text ( out, "ATSCSTSPmyfil(\"" ) // end of [val] val ( ) = $FIL.fprint_filename_full (out, fil) val () = emit_text (out, "\")") } | PMCSTSPmyloc (loc) => { val () = emit_text ( out, "ATSCSTSPmyloc(\"" ) // end of [val] val () = $LOC.fprint_location (out, loc) val () = emit_text (out, "\")") } | PMCSTSPmyfun (flab) => { val () = emit_text ( out, "ATSCSTSPmyfun(\"" ) // end of [val] val () = fprint_funlab (out, flab) val () = emit_text (out, "\")") } // end // end of [emit_primcstsp] (* ****** ****** *) implement emit_tyrep (out, hse) = let // val () = emit_text (out, "ATSPMVtyrep(") // val () = emit_hisexp (out, hse) // val ((*closing*)) = emit_RPAREN (out) // in end // end of [emit_tyrep] (* ****** ****** *) implement emit_sizeof (out, hse) = { // val () = emit_text (out, "ATSPMVsizeof(") // val () = emit_hisexp (out, hse) // val ((*closing*)) = emit_RPAREN (out) // } (* end of [emit_sizeof] *) (* ****** ****** *) local fun aux_prfx ( out: FILEref, s2c: s2cst ) : void = let // val pack = $S2E.s2cst_get_pack (s2c) // end of [val] val issome = stropt_is_some (pack) // in // if issome then let val pack = stropt_unsome (pack) in emit_ident (out, pack) end else let val fil = $S2E.s2cst_get_fil (s2c) in emit_filename (out, fil) end // end of [if] // end // end of [aux_prfx] in (* in of [local] *) implement emit_s2cst (out, s2c) = let val () = aux_prfx (out, s2c) val () = emit_text (out, "__") val name = $S2E.s2cst_get_name (s2c) val () = emit_ident (out, name) in // nothing end // end of [emit_s2cst] end // end of [local] (* ****** ****** *) local fun aux_prfx ( out: FILEref , fil: $FIL.filename, packopt: Stropt ) : void = let // val isnone = stropt_is_none (packopt) // in // if isnone then ( emit_filename (out, fil) ) else let val packname = stropt_unsome (packopt) in emit_ident (out, packname) end // end of [if] // end // end of [aux_prfx] in (* in of [local] *) implement emit_d2con (out, d2c) = { // val fil = $S2E.d2con_get_fil (d2c) val packopt = $S2E.d2con_get_pack (d2c) val () = aux_prfx (out, fil, packopt) // val name = $S2E.d2con_get_name (d2c) val () = emit_text (out, "__") val () = emit_ident (out, name) // val tag = $S2E.d2con_get_tag (d2c) val () = ( if tag >= 0 then let // HX: not exncon val () = fprintf (out, "__%i", @(tag)) in // nothing end // end of [then] // end of [if] ) (* end of [val] *) // } (* end of [emit_d2con] *) (* ****** ****** *) implement emit_d2cst (out, d2c) = let // val extdef = $D2E.d2cst_get_extdef (d2c) // in // case+ extdef of // | $SYN.DCSTEXTDEFnone (knd) => let // val fil = $D2E.d2cst_get_fil (d2c) val packopt = $D2E.d2cst_get_pack (d2c) val () = aux_prfx (out, fil, packopt) // val () = emit_text (out, "__") val name = $D2E.d2cst_get_name (d2c) val () = emit_ident (out, name) // val () = if (knd = 0) then { val () = emit_text (out, "__") val stamp = $D2E.d2cst_get_stamp (d2c) val () = emit_stamp (out, stamp) } (* end of [if] *) // in // nothing end // end of [DCSTEXTDEFnone] // | $SYN.DCSTEXTDEFsome_ext (name) => emit_ident (out, name) // | $SYN.DCSTEXTDEFsome_mac (name) => emit_ident (out, name) // | $SYN.DCSTEXTDEFsome_sta (name) => emit_ident (out, name) // end // end of [emit_d2cst] end // end of [local] (* ****** ****** *) implement emit2_d2cst (out, d2c) = emit_ident (out, $D2E.d2cst_get_name (d2c)) // end of [emit2_d2cst] (* ****** ****** *) implement emit_tmplab (out, tlab) = let // val () = emit_text (out, "__atstmplab") // in $STMP.fprint_stamp (out, tmplab_get_stamp (tlab)) end // end of [emit_tmplab] implement emit_tmplabint (out, tlab, i) = let val () = emit_tmplab (out, tlab) val () = fprintf (out, "__%i", @(i)) in // nothing end // end of [emit_tmplabint] (* ****** ****** *) local val the_nfnx = ref_make_elt (0) in (* in of [local] *) implement emit_set_nfnx (nfnx) = (!the_nfnx := nfnx) implement emit_funarg (out, narg) = let val nfnx = !the_nfnx in if nfnx <= 1 then fprintf (out, "arg%i", @(narg)) else fprintf (out, "a%irg%i", @(nfnx, narg)) // end of [val] end // end of [emit_funarg] implement emit_funapy (out, narg) = let // val nfnx = !the_nfnx // in // if nfnx <= 1 then fprintf (out, "apy%i", @(narg)) else fprintf (out, "a%ipy%i", @(nfnx, narg)) // end // end of [emit_funapy] end // end of [local] (* ****** ****** *) // fun emit_tmp ( out: FILEref ) : void = emit_text (out, "tmp") // fun emit_statmp ( out: FILEref ) : void = let // val opt = $GLOB.the_STATIC_PREFIX_get() // val ((*void*)) = if stropt_is_some(opt) then emit_text (out, stropt_unsome(opt)) // end of [if] // in emit_text (out, "statmp") end (* end of [emit_statmp] *) // (* ****** ****** *) local fun auxtmp ( out: FILEref, tmp: tmpvar ) : void = let // val knd = tmpvar_get_topknd(tmp) // val () = ( case+ 0 of | _ when knd = 0 => emit_tmp(out) // local | _ (*(static)top*) => emit_statmp(out) // toplevel ) : void // end of [val] // val isref = tmpvar_isref(tmp) val () = if isref then emit_text(out, "ref") val isret = tmpvar_isret(tmp) val () = if isret then emit_text(out, "ret") // val opt = tmpvar_get_origin(tmp) // in // case+ opt of // | Some(tmpp) => let val sfx = tmpvar_get_suffix (tmp) val stmp = tmpvar_get_stamp (tmpp) val ((*void*)) = $STMP.fprint_stamp(out, stmp) val ((*void*)) = fprintf (out, "__%i", @(sfx)) in // nothing end // end of [Some] // | None((*void*)) => let val stmp = tmpvar_get_stamp(tmp) val ((*void*)) = $STMP.fprint_stamp(out, stmp) in // nothing end // end of [None] // end // end of [auxtmp] in (* in of [local] *) implement emit_tmpvar (out, tmp) = auxtmp (out, tmp) end // end of [local] (* ****** ****** *) local fun auxmain ( out: FILEref, flab: funlab ) : void = let // val qopt = funlab_get_d2copt (flab) val tmparg = funlab_get_tmparg (flab) // val () = ( case+ qopt of | Some (d2c) => let val () = emit_d2cst (out, d2c) in // nothing end // end of [Some] | None () => let val () = emit_ident (out, funlab_get_name (flab)) in // nothing end // end of [None] ) : void // end of [val] // val tmpknd = funlab_get_tmpknd (flab) val () = if tmpknd > 0 then { // val () = emit_text (out, "__") // val stamp = funlab_get_stamp(flab) val () = $STMP.fprint_stamp(out, stamp) // } (* end of [if] *) // end of [val] // in // nothing end // end of [auxmain] in (* in of [local] *) implement emit_funlab (out, flab) = let // val opt = funlab_get_origin(flab) // val () = ( case+ opt of | Some ( flab_1 // origin ) => emit_funlab(out, flab_1) | None () => auxmain(out, flab) ) // end of [val] // val sfx = funlab_get_suffix(flab) val ((*void*)) = if sfx > 0 then fprintf(out, "__%i", @(sfx)) // in // nothing end // end of [emit_funlab] implement emit2_funlab (out, flab) = let // val qopt = funlab_get_d2copt(flab) // val name = ( case+ qopt of | Some (d2c) => $D2E.d2cst_get_name(d2c) | None ((*void*)) => funlab_get_name(flab) ) : string // end of [val] // val ((*void*)) = emit_ident(out, name) // in // nothing end // end of [emit2_funlab] end // end of [local] (* ****** ****** *) // extern fun emit_arrdim ( out: FILEref , tmp: tmpvar, s2es: s2explst ) : void // end-of-function // implement emit_arrdim (out, tmp, s2es) = let // fun aux ( out: FILEref , tmp: tmpvar, s2e: s2exp ) : void = let in // case+ s2e.s2exp_node of // | $S2E.S2Eint (n) => emit_int (out, n) // | $S2E.S2Eintinf (n) => emit_intinf (out, n) // | _(*non-fixed-int*) => let val () = prerr_errccomp_loc(tmpvar_get_loc(tmp)) val () = prerrln! (": the size of a stack-allocated array cannot be determined. ") // end of [val] in emit_text (out, "ATSERRORarrdim_unknown()") end // end of [non-fixed-int] // end // end of [aux] // fun auxlst ( out: FILEref , tmp: tmpvar, s2es: s2explst, i: int ) : void = let in // case+ s2es of | list_nil () => () | list_cons (s2e, s2es) => { val () = if i > 0 then emit_text (out, "][") // end of [if] val () = aux (out, tmp, s2e) val () = auxlst (out, tmp, s2es, i+1) } (* end of [list_cons] *) // end (* end of [auxlst] *) // in emit_text (out, "["); auxlst (out, tmp, s2es, 0); emit_text (out, "]") end // end of [emit_arrdim] (* ****** ****** *) implement emit_tmpdec (out, tmp) = let // val hse = tmpvar_get_type (tmp) val knd = tmpvar_get_topknd (tmp) val isvoid = hisexp_is_void (hse) // (* val () = println! ("emit_tmpdec: tmp = ", tmp) val () = println! ("emit_tmpdec: hse = ", hse) *) // val () = if isvoid then emit_text (out, "// ") // val () = ( if knd = 0 then emit_text (out, "ATStmpdec") // local else emit_text (out, "ATSstatmpdec") // toplevel // end of [if] ) : void // end of [val] // val () = if isvoid then emit_text (out, "_void") // val () = emit_text (out, "(") // val () = emit_tmpvar (out, tmp) // val () = ( case+ hse.hisexp_node of // | HSEtyarr ( _(*elt*), s2es ) => emit_arrdim (out, tmp, s2es) | _ (* non-tyarr *) => ((*nothing*)) ) (* end of [val] *) // val () = if not(isvoid) then { val () = emit_text (out, ", ") val () = ( case+ hse.hisexp_node of | HSEtyarr ( hse_elt, _(*dim*) ) => emit_hisexp (out, hse_elt) | _ (*non-tyarr*) => emit_hisexp (out, hse) ) (* end of [val] *) } (* end of [then] *) // val () = emit_text (out, ") ;\n") // in // nothing end // end of [emit_tmpdec] (* ****** ****** *) implement emit_tmpdeclst (out, tmps) = let in // case+ tmps of | list_cons (tmp, tmps) => let val () = emit_tmpdec (out, tmp) in emit_tmpdeclst (out, tmps) end // end of [list_cons] | list_nil () => () // end // end of [emit_tmpdeclst] (* ****** ****** *) typedef emit_primval_type = (FILEref, primval) -> void (* ****** ****** *) // extern fun emit_primval_arg : emit_primval_type extern fun emit_primval_argref : emit_primval_type extern fun emit_primval_argenv : emit_primval_type // extern fun emit_primval_tmp : emit_primval_type extern fun emit_primval_tmpref : emit_primval_type // extern fun emit_primval_env : emit_primval_type // extern fun emit_primval_d2cst : emit_primval_type // extern fun emit_primval_castfn : emit_primval_type // extern fun emit_primval_selcon : emit_primval_type extern fun emit_primval_select : emit_primval_type extern fun emit_primval_select2 : emit_primval_type // extern fun emit_primval_selptr : emit_primval_type // extern fun emit_primval_ptrof : emit_primval_type extern fun emit_primval_ptrof2 : emit_primval_type // extern fun emit_primval_ptrofsel : emit_primval_type // extern fun emit_primval_vararg : emit_primval_type extern fun emit_primval_refarg : emit_primval_type // extern fun emit_primval_funlab : emit_primval_type extern fun emit_primval_cfunlab : emit_primval_type // extern fun emit_primval_err : emit_primval_type // (* ****** ****** *) implement emit_primval (out, pmv0) = let // val loc0 = pmv0.primval_loc // in // case+ pmv0.primval_node of // | PMVtmp _ => emit_primval_tmp (out, pmv0) | PMVtmpref _ => emit_primval_tmpref (out, pmv0) | PMVarg _ => emit_primval_arg (out, pmv0) | PMVargref _ => emit_primval_argref (out, pmv0) | PMVargenv _ => emit_primval_argenv (out, pmv0) // | PMVenv _ => emit_primval_env (out, pmv0) // | PMVcst _ => emit_primval_d2cst (out, pmv0) // | PMVint (i) => emit_ATSPMVint (out, i) | PMVintrep (rep) => emit_ATSPMVintrep (out, rep) // | PMVbool (b) => emit_ATSPMVbool (out, b) | PMVchar (c) => emit_ATSPMVchar (out, c) | PMVfloat (f) => emit_ATSPMVfloat (out, f) | PMVstring (str) => emit_ATSPMVstring (out, str) // | PMVi0nt (tok) => emit_ATSPMVi0nt (out, tok) | PMVf0loat (tok) => emit_ATSPMVf0loat (out, tok) // | PMVcstsp (pmc) => emit_primcstsp (out, pmc) // | PMVtop () => fprintf (out, "ATSPMVtop()", @()) | PMVempty () => fprintf (out, "ATSPMVempty()", @()) | PMVextval (x) => fprintf (out, "ATSPMVextval(%s)", @(x)) // | PMVcastfn _ => emit_primval_castfn (out, pmv0) // | PMVtyrep (hse) => emit_tyrep (out, hse) // | PMVsizeof (hse) => emit_sizeof (out, hse) // | PMVselcon _ => emit_primval_selcon (out, pmv0) | PMVselect _ => emit_primval_select (out, pmv0) | PMVselect2 _ => emit_primval_select2 (out, pmv0) // | PMVselptr _ => emit_primval_selptr (out, pmv0) // | PMVptrof _ => emit_primval_ptrof (out, pmv0) | PMVptrofsel _ => emit_primval_ptrofsel (out, pmv0) // | PMVvararg _ => emit_primval_vararg (out, pmv0) // | PMVrefarg _ => emit_primval_refarg (out, pmv0) // | PMVfunlab _ => emit_primval_funlab (out, pmv0) | PMVcfunlab _ => emit_primval_cfunlab (out, pmv0) // | PMVlamfix(knd, pmv) => emit_primval (out, pmv) // | PMVerror ((*error*)) => emit_primval_err (out, pmv0) // | _ (*rest*) => let (* val () = prerr_interror_loc (loc0) val () = prerrln! (": emit_primval: pmv0 = ", pmv0) // end of [val] val () = assertloc (false) // code exits *) in fprint_primval (out, pmv0) end (* end of [rest] *) // end // end of [emit_primval] (* ****** ****** *) implement emit_primvalist (out, pmvs) = let // fun loop ( out: FILEref , pmvs: primvalist, i: int ) : void = let in // case+ pmvs of | list_cons (pmv, pmvs) => let val () = if i > 0 then emit_text (out, ", ") // end of [if] val () = emit_primval (out, pmv) in loop (out, pmvs, i+1) end // end of [list_cons] | list_nil((*void*)) => () // end // end of [loop] // in loop (out, pmvs, 0) end // end of [emit_primvalist] (* ****** ****** *) implement emit_primval_arg (out, pmv0) = let // val-PMVarg (n) = pmv0.primval_node // in emit_funarg (out, n) end // end of [emit_primval_arg] (* ****** ****** *) implement emit_primval_argref (out, pmv0) = let // val-PMVargref(n) = pmv0.primval_node // in emit_funarg (out, n) end // end of [emit_primval_argref] (* ****** ****** *) implement emit_primval_argenv (out, pmv0) = let // val-PMVargenv(nenv) = pmv0.primval_node // in fprintf (out, "env%i", @(nenv)) end // end of [emit_primval_argenv] (* ****** ****** *) implement emit_primval_tmp (out, pmv0) = let // val-PMVtmp (tmp) = pmv0.primval_node // in emit_tmpvar (out, tmp) end // end of [emit_primval_tmp] implement emit_primval_tmpref (out, pmv0) = let // val-PMVtmpref (tmp) = pmv0.primval_node // in emit_tmpvar (out, tmp) end // end of [emit_primval_tmpref] (* ****** ****** *) implement emit_d2env (out, d2e) = let // val d2v = d2env_get_var(d2e) // in emit_d2var_env(out, d2v) end (* end of [emit_d2env] *) implement emit_d2var_env (out, d2v) = let // val opt = the_funent_varbindmap_find(d2v) // in // case+ opt of | ~Some_vt(pmv) => emit_primval(out, pmv) | ~None_vt((*void*)) => let val () = emit_text(out, "ATSPMVenv(") val () = emit_symbol(out, $D2E.d2var_get_sym(d2v)) val ((*closing*)) = emit_RPAREN(out) in // nothing end (* end of [None_vt] *) // end // end of [emit_d2var_env] (* ****** ****** *) implement emit_d2envlst ( out, d2es, i0 ) = let // fun auxlst ( out: FILEref , d2es: d2envlst, i: int ) : int = let in // case+ d2es of | list_nil ((*void*)) => (i) | list_cons (d2e, d2es) => let val () = ( if (i > 0) then emit_text(out, ", ") // end of [if] ) // end of [val] val () = emit_d2env(out, d2e) in auxlst(out, d2es, i+1) end // end of [list_cons] // end (* end of [auxlst] *) // in auxlst(out, d2es, i0) end // end of [emit_d2envlst] (* ****** ****** *) implement emit_primval_env (out, pmv0) = let // val-PMVenv (d2v) = pmv0.primval_node // in emit_d2var_env (out, d2v) end (* end of [emit_primval_env] *) (* ****** ****** *) implement emit_primval_d2cst (out, pmv0) = let // val-PMVcst (d2c) = pmv0.primval_node // in emit_d2cst (out, d2c) end // end of [emit_primval_d2cst] (* ****** ****** *) implement emit_primval_castfn (out, pmv0) = let // val hse0 = pmv0.primval_type val-PMVcastfn (d2c, arg) = pmv0.primval_node // val () = emit_text (out, "ATSPMVcastfn(") // val () = emit2_d2cst (out, d2c) // local name // val () = emit_text (out, ", ") val () = emit_hisexp (out, hse0) val () = emit_text (out, ", ") val () = emit_primval (out, arg) // val ((*closing*)) = emit_RPAREN (out) // in // nothing end // end of [emit_primval_castfn] (* ****** ****** *) implement emit_primval_ptrof (out, pmv0) = let // val-PMVptrof (pmv) = pmv0.primval_node // in emit_primval_ptrof2 (out, pmv) end // end of [emit_primval_ptrof] implement emit_primval_ptrof2 (out, pmv) = let // fun testselptr0 (pmv: primval): bool = ( case+ pmv.primval_node of | PMVselptr (_, _, list_nil ()) => true | _ => false ) // val test = testselptr0 (pmv) // in // if test then let // val-PMVselptr (pmv_ptr, _, _) = pmv.primval_node // in emit_primval (out, pmv_ptr) end else let // val isvoid = primval_is_void (pmv) val istyarr = hisexp_is_tyarr(pmv.primval_type) // val () = emit_text (out, "ATSPMVptrof") val () = if isvoid then emit_text (out, "_void") val () = emit_LPAREN (out) val () = emit_primval (out, pmv(*lvalue*)) val () = if istyarr then emit_text (out, "[0]") val () = emit_RPAREN (out) // in // nothing end // end of [if] // end // end of [emit_primval_ptrof2] (* ****** ****** *) implement emit_primval_vararg (out, pmv0) = () where { // val- PMVvararg(pmvs) = pmv0.primval_node // // val () = if list_is_nil(pmvs) then emit_text(out, "ATSPMVvararg0(") else emit_text(out, "ATSPMVvararg1(") // val () = emit_primvalist(out, pmvs) // val ((*closing*)) = emit_RPAREN(out) } (* end of [emit_primval_vararg] *) (* ****** ****** *) implement emit_primval_refarg (out, pmv0) = let // val- PMVrefarg (knd, freeknd, pmv) = pmv0.primval_node // val () = if (knd = 0) then emit_text (out, "ATSPMVrefarg0(") // val () = if (knd > 0) then emit_text (out, "ATSPMVrefarg1(") // val () = if (knd = 0) then emit_primval (out, pmv) val () = if (knd > 0) then emit_primval_ptrof2 (out, pmv) // val ((*closing*)) = emit_RPAREN (out) // in // nothing end // end of [emit_primval_refarg] (* ****** ****** *) implement emit_primval_funlab (out, pmv0) = let // val-PMVfunlab (flab) = pmv0.primval_node // val isenv = funlab_is_envful (flab) // val () = ( if isenv then { val loc0 = pmv0.primval_loc val ((*void*)) = prerr_errccomp_loc (loc0) val ((*void*)) = prerrln! ": the function is expected to be envless but it is not." } (* end of [then] *) // end of [if] ) // val () = ( // if isenv then emit_text (out, "ATSERRORnotenvless(") // ) (* end of [val] *) // val () = emit_text (out, "ATSPMVfunlab(") // val ((*void*)) = emit_funlab (out, flab) // val ((*closing*)) = emit_RPAREN (out) // val ((*closing*)) = if isenv then emit_RPAREN (out) // in // nothing end // end of [emit_primval_funlab] (* ****** ****** *) implement emit_primval_cfunlab (out, pmv0) = let // val-PMVcfunlab (knd, flab) = pmv0.primval_node val opt = funlab_get_funent (flab) val d2es = ( case+ opt of | None () => list_nil () | Some (fent) => funent_eval_d2envlst (fent) // end of [Some] ) : d2envlst // end of [val] // val () = emit_text (out, "ATSPMVcfunlab(") // val () = emit_int (out, knd) val () = emit_text (out, ", ") val () = emit_funlab (out, flab) val () = emit_text (out, ", (") val nenv = emit_d2envlst (out, d2es, 0) val ((*closing*)) = emit_text (out, "))") // in // nothing end // end of [emit_primval_cfunlab] (* ****** ****** *) local fun auxmain ( out: FILEref , pmv: primval, hse: hisexp ) : void = let // val () = emit_text (out, "ATSderef(") // val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse) // val ((*closing*)) = emit_RPAREN (out) // in // nothing end // end of [auxmain] in (* in of [local] *) implement emit_primval_deref (out, pmv, hse) = let in // case+ pmv.primval_node of | PMVptrof (pmv) => emit_primval (out, pmv) | _(* non-ptrof *) => auxmain (out, pmv, hse) // end // end of [emit_primval_deref] end // end of [local] (* ****** ****** *) implement emit_primval_err (out, pmv) = let // val () = emit_text (out, "PMVerr(\"") val () = emit_location (out, pmv.primval_loc) val () = emit_text (out, "\")") // in // nothing end // end of [emit_primval_err] (* ****** ****** *) #if(0) // // HX-2016-01-01: // It is commented out as it is not in use // implement emit_funtype_arg_res ( out, hses_arg, hse_res ) = let // val () = emit_hisexp (out, hse_res) // val () = emit_text (out, "(*)(") val () = emit_hisexplst_sep (out, hses_arg, ", ") // val ((*closing*)) = emit_RPAREN (out) // in // nothing end // end of [emit_funtype_arg_res] #endif // #if(0) (* ****** ****** *) implement emit_primlab (out, extknd, pml) = let in // case+ pml.primlab_node of // case | PMLlab (lab) => { val () = emit_labelext (out, extknd, lab) } // end of [PMLlab] | PMLind (pmvs) => { val () = emit_text (out, "[") val () = emit_primvalist (out, pmvs) val () = emit_text (out, "]") } // end of [PMLind] // end // end of [emit_primlab] (* ****** ****** *) // extern fun emit_instr_move_con : emit_instr_type extern fun emit_instr_move_rec : emit_instr_type // (* extern fun emit_instr_load_ptrofs : emit_instr_type *) extern fun emit_instr_store_ptrofs : emit_instr_type extern fun emit_instr_xstore_ptrofs : emit_instr_type // extern fun emit_instr_raise : emit_instr_type // extern fun emit_instr_move_delay : emit_instr_type extern fun emit_instr_move_lazyeval : emit_instr_type // (* ****** ****** *) // extern fun emit_move_val ( out: FILEref, tmp: tmpvar, pmv: primval ) : void // end of [emit_move_val] // implement emit_move_val (out, tmp, pmv) = let // val isvoid = primval_is_void(pmv) // val () = emit_text(out, "ATSINSmove") // val () = ( if isvoid then emit_text(out, "_void") ) // val () = emit_text(out, "(") val () = emit_tmpvar(out, tmp) val () = emit_text(out, ", ") val () = emit_primval(out, pmv) val () = emit_text(out, ") ;") // in // nothing end // end of [emit_move_val] // (* ****** ****** *) // extern fun emit_pmove_val ( out: FILEref, tmp: tmpvar, pmv: primval ) : void // end of [emit_pmove_val] // implement emit_pmove_val (out, tmp, pmv) = let val () = emit_text (out, "ATSINSpmove(") // val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hisexp (out, pmv.primval_type) val () = emit_text (out, ", ") val () = emit_primval (out, pmv) val () = emit_text (out, ") ;") // in // nothing end // end of [emit_pmove_val] // (* ****** ****** *) // extern fun emit_move_ptralloc ( out: FILEref, tmp: tmpvar, hit: hitype ) : void // end of [emit_move_ptralloc] // implement emit_move_ptralloc (out, tmp, hit) = let // val () = emit_text ( out, "ATSINSmove_ptralloc(" ) (* emit_text *) // val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hitype (out, hit) val () = emit_text (out, ") ;") // in // nothing end // end of [emit_move_ptralloc] // (* ****** ****** *) implement emit_instr (out, ins) = let // val loc0 = ins.instr_loc // // HX: This is extremely valuable for debugging!!! // val () = ( fprint (out, "/*\n"); fprint (out, "emit_instr: loc0 = "); $LOC.fprint2_location (out, loc0); fprint (out, "\n*/\n"); ) // (* val ( ) = fprintln! (out, "/*\n", "emit_instr: ins = ", ins, "\n*/") *) // // generating #line progmas // val gline = $GLOB.the_DEBUGATS_dbgline_get() val ((*void*)) = ( // if (gline > 0) then $LOC.fprint_line_pragma(out, loc0) // end of [if] // ) : void // end of [val] // val gflag = $GLOB.the_DEBUGATS_dbgflag_get((*void*)) val ((*void*)) = ( // // HX: generating debugging information // if (gflag > 0) then ( emit_text (out, "/* "); fprint_instr(out, ins); emit_text (out, " */\n") ) (* end of [then] *) // end of [if] // ) : void // end of [val] // in // case+ ins.instr_node of // | INSfunlab(flab) => { val () = emit_text (out, "ATSINSflab(") val () = emit_text (out, "__patsflab_") val () = ( emit2_funlab (out, flab); emit_text (out, "):") ) (* end of [val] *) } (* end of [INSfunlab] *) // | INStmplab(tmplab) => { val () = emit_text (out, "ATSINSlab(") val () = ( emit_tmplab (out, tmplab); emit_text (out, "):") ) (* end of [val] *) } (* end of [INStmplab] *) // | INScomment(string) => { val () = emit_text (out, "/*\n") val () = emit_text (out, string) val () = emit_text (out, "\n*/") } (* end of [INScomment] *) // | INSmove_val (tmp, pmv) => emit_move_val(out, tmp, pmv) // end of [INSmove_val] | INSpmove_val (tmp, pmv) => emit_pmove_val(out, tmp, pmv) // end of [INSpmove_val] // | INSfcall _ => emit_instr_fcall(out, ins) | INSfcall2 _ => emit_instr_fcall2(out, ins) // | INSextfcall _ => emit_instr_extfcall (out, ins) | INSextmcall _ => emit_instr_extmcall (out, ins) // | INScond ( pmv_cond, inss_then, inss_else ) => { val () = emit_text (out, "ATSif(\n") val () = emit_primval (out, pmv_cond) val () = emit_text (out, "\n) ATSthen() {\n") val () = emit_instrlst (out, inss_then) val () = emit_text (out, "\n} ATSelse() {\n") val () = emit_instrlst (out, inss_else) val () = emit_text (out, "\n} /* ATSendif */") // end of [val] } // end of [INScond] // | INSfreecon (pmv) => let val () = emit_text (out, "ATSINSfreecon(") val () = emit_primval (out, pmv) val () = emit_text (out, ") ;") in // nothing end // end of [INSfreecon] // | INSloop ( tlab_init, tlab_fini, tlab_cont , inss_init, pmv_test, inss_test, inss_post, inss_body ) => { val () = emit_text (out, "/*\n") val () = emit_text (out, "** loop-init(beg)\n") val () = emit_text (out, "*/\n") val () = ( emit_instrlst (out, inss_init); emit_newline (out) ) val () = emit_text (out, "/*\n") val () = emit_text (out, "** loop-init(end)\n") val () = emit_text (out, "*/\n") val () = ( emit_text (out, "ATSloop_open("); emit_tmplab (out, tlab_init); emit_text (out, ", "); emit_tmplab (out, tlab_fini); emit_text (out, ", "); emit_tmplab (out, tlab_cont); emit_text (out, ")\n") ) // end of [val] // val () = ( emit_instrlst (out, inss_test); emit_newline (out) ) // val () = emit_text (out, "ATSif(") val () = emit_text (out, "ATSCKnot(") val () = emit_primval (out, pmv_test) val () = emit_text (out, ")) ATSbreak() ;") val () = emit_newline (out) // val () = ( emit_instrlst (out, inss_body); emit_newline (out) ) // val ispost = list_is_cons (inss_post) // val () = if ispost then { val () = emit_text (out, "/*\n") val () = emit_text (out, "** continue after post-update\n") val () = emit_text (out, "*/\n") val () = emit_tmplab (out, tlab_cont) val () = emit_text (out, ":\n") val () = emit_instrlst (out, inss_post) val () = emit_newline (out) } // end of [if] // end of [val] // val () = ( emit_text (out, "ATSloop_close("); emit_tmplab (out, tlab_init); emit_text (out, ", "); emit_tmplab (out, tlab_fini); emit_text (out, ", "); emit_tmplab (out, tlab_cont); emit_text (out, ") ;") ) // end of [val] // val () = emit_newline (out) } // end of [INSloop] // | INSloopexn (knd, tlab) => let val () = ( if knd = 0 then emit_text (out, "ATSbreak2(") else emit_text (out, "ATScontinue2(") // end of [if] ) : void // end of [val] val () = emit_tmplab (out, tlab) val () = emit_text (out, ") ;") in // nothing end // end of [INSloopexn] // | INScaseof (ibrs) => { val () = emit_text (out, "ATScaseof_beg()\n") val () = emit_ibranchlst (out, ibrs) val () = emit_text (out, "ATScaseof_end()\n") } (* end of [INScaseof] *) // | INStrywith ( tmp_exn, inss_try, ibrs_with ) => let // val () = emit_text (out, "ATStrywith_try(") val () = emit_tmpvar (out, tmp_exn) val ((*closing*)) = emit_text (out, ")\n") // val () = emit_instrlst_ln (out, inss_try) // val () = emit_text (out, "ATStrywith_with(") val () = emit_tmpvar (out, tmp_exn) val ((*closing*)) = emit_text (out, ")\n") // val () = emit_text (out, "ATScaseof_beg()\n") val () = emit_ibranchlst (out, ibrs_with) val () = emit_text (out, "ATScaseof_end()\n") // val () = emit_text (out, "ATStrywith_end()") in // empty end // end of [INStrywith] // | INSletpop () => let val () = emit_text (out, "/*\n") val () = fprint_instr (out, ins) val () = emit_text (out, "\n*/") in // nothing end // end of [INSletpop] | INSletpush (pmds) => let val () = emit_text (out, "/*\n") val () = emit_text (out, "letpush(beg)") val () = emit_text (out, "\n*/\n") val () = emit_primdeclst (out, pmds) val () = emit_text (out, "/*\n") val () = emit_text (out, "letpush(end)") val () = emit_text (out, "\n*/\n") in // nothing end // end of [INSletpush] // | INSmove_con _ => emit_instr_move_con (out, ins) // | INSmove_fltrec _ => emit_instr_move_rec (out, ins) | INSmove_boxrec _ => emit_instr_move_rec (out, ins) // | INSpatck (pmv, patck, fail) => emit_instr_patck (out, ins) // | INSstore_ptrofs _ => emit_instr_store_ptrofs (out, ins) | INSxstore_ptrofs _ => emit_instr_xstore_ptrofs (out, ins) // | INSraise _ => emit_instr_raise (out, ins) // | INSmove_delay _ => emit_instr_move_delay (out, ins) | INSmove_lazyeval _ => emit_instr_move_lazyeval (out, ins) // | INSmove_list_nil (tmp) => { val () = emit_text (out, "ATSINSmove_list_nil(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ") ;") } | INSpmove_list_nil (tmp) => { val () = emit_text (out, "ATSINSpmove_list_nil(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ") ;") } | INSpmove_list_cons (tmp, hse_elt) => { val () = emit_text (out, "ATSINSpmove_list_cons(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse_elt) val () = emit_text (out, ") ;") } | INSmove_list_phead (tmphd, tmptl, hse_elt) => { val () = emit_text (out, "ATSINSmove_list_phead(") val () = emit_tmpvar (out, tmphd) val () = emit_text (out, ", ") val () = emit_tmpvar (out, tmptl) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse_elt) val () = emit_text (out, ") ;") } | INSmove_list_ptail (tmptl1, tmptl2, hse_elt) => { val () = emit_text (out, "ATSINSmove_list_ptail(") val () = emit_tmpvar (out, tmptl1) val () = emit_text (out, ", ") val () = emit_tmpvar (out, tmptl2) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse_elt) val () = emit_text (out, ") ;") } // | INSmove_arrpsz_ptr (tmp, psz) => { val () = emit_text (out, "ATSINSmove_arrpsz_ptr(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_tmpvar (out, psz) val () = emit_text (out, ") ;") } // end of [INSmove_arrpsz_ptr] // | INSstore_arrpsz_asz (tmp, asz) => { val () = emit_text (out, "ATSINSstore_arrpsz_asz(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_int (out, asz) val () = emit_text (out, ") ;") } // end of [INSstore_arrpsz_asz] | INSstore_arrpsz_ptr (tmp, hse, asz) => { val () = emit_text (out, "ATSINSstore_arrpsz_ptr(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse) val () = emit_text (out, ", ") val () = emit_int (out, asz) val () = emit_text (out, ") ;") } // end of [INSstore_arrpsz_ptr] // | INSupdate_ptrinc (tmp, hse) => { val () = emit_text (out, "ATSINSupdate_ptrinc(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse) val () = emit_text (out, ") ;") } // end of [INSupdate_ptrinc] | INSupdate_ptrdec (tmp, hse) => { val () = emit_text (out, "ATSINSupdate_ptrdec(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse) val () = emit_text (out, ") ;") } // end of [INSupdate_ptrdec] // | INSclosure_initize (tmp, knd, flab) => { val-Some(fent) = funlab_get_funent (flab) val d2es = funent_eval_d2envlst (fent) val () = emit_text (out, "ATSINSclosure_initize(") // end of [val] val () = emit_funlab (out, flab) val () = emit_text (out, ", ") val () = emit_text (out, "(") val () = emit_text (out, "(") val () = emit_funlab (out, flab) val () = emit_text (out, "__closure_t0ype*)") val () = emit_text (out, "(") val () = emit_text (out, "&") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ")") val _(*nenv+1*) = emit_d2envlst (out, d2es, 1) val () = emit_text (out, ")") val () = emit_text (out, ") ;") } (* end of [INSclosure_initize] *) // | INStmpdec (tmp) => { val () = emit_text (out, "/*\n") val () = emit_text (out, "ATSINStmpdec(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ") ;") val () = emit_text (out, "\n*/") } (* end of [INStmpdec] *) // | INSextvar (id, pmv) => { val () = emit_text ( out, "ATSINSextvar_assign(" ) (* emit_text *) val () = fprintf ( out, "ATSPMVextval(%s)", @(id) ) (* fprintf *) val () = emit_text (out, ", ") val () = emit_primval (out, pmv) val () = emit_text (out, ") ;") } (* end of [INSextvar] *) // | INSdcstdef (d2c, pmv) => { val () = emit_text ( out, "ATSINSdyncst_valbind(" ) (* emit_text *) val () = emit_d2cst (out, d2c) val () = emit_text (out, ", ") val () = emit_primval (out, pmv) val () = emit_text (out, ") ;") } (* end of [INSdcstdef] *) // | INStempenver( d2vs ) => { val () = emit_text (out, "// ") val () = emit_text (out, "$tempenver(") val () = $D2E.fprint_d2varlst(out, d2vs) val ((*closing*)) = emit_RPAREN(out) } (* end of [INStempenver] *) // | _ (*unsupported-instr*) => { val () = prerr_interror_loc (loc0) val () = prerrln! (": pats_ccomp_emit: emit_instr: ins = ", ins) val ((*exit*)) = assertloc (false) } (* end of [unsupported-instr] *) end // end of [emit_instr] (* ****** ****** *) implement emit_instrlst (out, inss) = let // fun loop ( out: FILEref, inss: instrlst, sep: string, i: int ) : void = let in // case+ inss of | list_cons (ins, inss) => let val () = if i > 0 then emit_text (out, sep) // end of [if] val () = emit_instr (out, ins) in loop (out, inss, sep, i+1) end // end of [list_cons] | list_nil () => let val () = if i = 0 then emit_text (out, "/* (*nothing*) */") // end of [val] in // nothing end // end of [list_nil] // end // end of [loop] // in loop (out, inss, "\n", 0) end // end of [emit_instrlst] implement emit_instrlst_ln (out, inss) = let val () = emit_instrlst (out, inss) in emit_text (out, "\n") // end of [val] end // end of [emit_instrlst_ln] (* ****** ****** *) local fun auxcon0 ( out: FILEref, tmp: tmpvar, d2c: d2con ) : void = let // val islst = $S2E.d2con_is_listlike (d2c) // in // if islst then let val () = emit_text (out, "ATSINSmove_nil(") val () = emit_tmpvar (out, tmp) val ((*closing*)) = emit_text (out, ") ;\n") in // nothing end // end of [then] else let val tag = $S2E.d2con_get_tag (d2c) val () = emit_text (out, "ATSINSmove_con0(") val () = ( emit_tmpvar (out, tmp); emit_text (out, ", "); emit_int (out, tag) ) (* end of [val] *) val ((*closing*)) = emit_text (out, ") ;\n") in // nothing end // end of [else] // end // end of [auxcon0] (* ****** ****** *) fun auxtag ( out: FILEref, tmp: tmpvar, d2c: d2con ) : void = let // val flag = ( case+ 0 of (* | _ when $S2E.d2con_is_nullary (d2c) => 0 *) | _ when $S2E.d2con_is_listlike (d2c) => 0 | _ when $S2E.d2con_is_singular (d2c) => 0 | _ => 1 // HX: tag assignment is needed ) : int // end of [val] // val tag = $S2E.d2con_get_tag (d2c) // val () = if flag > 0 then emit_text (out, "// ") val () = fprintf (out, "#if(%i)\n", @(flag)) // val () = emit_text (out, "ATSINSstore_con1_tag(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_int (out, tag) val () = emit_text (out, ") ;\n") // val () = if flag > 0 then emit_text (out, "// ") val ((*closing*)) = emit_text (out, "#endif\n") // in // nothing end // end of [auxtag] fun auxarg ( out: FILEref , tmp: tmpvar, hit_con: hitype, lxs: labprimvalist ) : void = let in // case+ lxs of // | list_nil () => () // | list_cons (lx, lxs) => let val+LABPRIMVAL (l, x) = lx val istop = primval_is_top (x) val () = if istop then emit_text (out, "#if(0)\n") // end of [val] val () = emit_text (out, "ATSINSstore_con1_ofs(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hitype (out, hit_con) val () = emit_text (out, ", ") val () = emit_labelext (out, 0, l) val () = emit_text (out, ", ") val () = emit_primval (out, x) val () = emit_text (out, ") ;\n") val () = if istop then emit_text (out, "#endif\n") // end of [val] in auxarg (out, tmp, hit_con, lxs) end // end of [list_cons] // end // end of [auxarg] fun auxcon1 ( out: FILEref , tmp: tmpvar, d2c: d2con , hit_con: hitype, arg: labprimvalist ) : void = let // val lincon = ( if $S2E.d2con_is_linear(d2c) then 0 else 1 ) : int // end of [val] // val () = fprintf ( out, "/*\n#LINCONSTATUS==%i\n*/\n", @(lincon) ) (* end of [val] *) // val () = emit_text (out, "ATSINSmove_con1_beg()\n") // val () = emit_text (out, "ATSINSmove_con1_new(") val () = ( emit_tmpvar (out, tmp); emit_text (out, ", "); emit_hitype (out, hit_con) ) (* end of [val] *) val ((*closing*)) = emit_text (out, ") ;\n") // val () = auxtag (out, tmp, d2c) val () = auxarg (out, tmp, hit_con, arg) // val () = emit_text (out, "ATSINSmove_con1_end()") // in // nothing end // end of [auxcon1] (* ****** ****** *) fun auxexn0 ( out: FILEref, tmp: tmpvar, d2c: d2con ) : void = let // val () = emit_text (out, "ATSINSmove_exn0(") // val () = emit_tmpvar(out, tmp) // val () = emit_text(out, ", ") val () = emit_d2con(out, d2c) val () = emit_text(out, ") ;\n") // in // nothing end // end of [auxexn0] fun auxexn1 ( out: FILEref , tmp: tmpvar, d2c: d2con , hit_con: hitype, arg: labprimvalist ) : void = let // val () = emit_text (out, "ATSINSmove_exn1_beg()\n") // val () = emit_text (out, "ATSINSmove_exn1_new(") val ( ) = ( emit_tmpvar (out, tmp); emit_text (out, ", "); emit_hitype (out, hit_con) ) (* end of [val] *) // val ((*closing*)) = emit_text (out, ") ;\n") // val () = emit_text (out, "ATSINSstore_exn1_tag(") val ( ) = ( emit_tmpvar (out, tmp); emit_text (out, ", "); emit_d2con (out, d2c) ) (* end of [val] *) val ((*closing*)) = emit_text (out, ") ;\n") // val () = emit_text (out, "ATSINSstore_exn1_msg(") val () = ( emit_tmpvar (out, tmp); emit_text (out, ", "); emit_d2con (out, d2c) ) (* end of [val] *) val ((*closing*)) = emit_text (out, ") ;\n") // val () = auxarg (out, tmp, hit_con, arg) // val () = emit_text (out, "ATSINSmove_exn1_end()") // in // nothing end // end of [auxexn1] in (* in of [local] *) implement emit_instr_move_con (out, ins) = let // val- INSmove_con (tmp, d2c, hse_sum, arg) = ins.instr_node // val () = emit_newline (out) // val iscon = $S2E.d2con_is_con (d2c) val isexn = $S2E.d2con_is_exn (d2c) val isnul = $S2E.d2con_is_nullary (d2c) // in // if isnul then let val () = if iscon then auxcon0 (out, tmp, d2c) val () = if isexn then auxexn0 (out, tmp, d2c) in // nothing end else let val hit_con = hisexp_typize (0, hse_sum) val () = ( if iscon then auxcon1 (out, tmp, d2c, hit_con, arg) ) : void // end of [val] val () = ( if isexn then auxexn1 (out, tmp, d2c, hit_con, arg) ) : void // end of [val] in // nothing end // end of [if] // end // end of [emit_instr_move_con] end // end of [local] (* ****** ****** *) implement emit_instr_move_rec (out, ins) = let // fun loop ( boxknd: int , extknd: int , tmp: tmpvar , hit_rec: hitype , lxs: labprimvalist , i: int ) : void = let in // case+ lxs of // | list_cons (lx, lxs) => let val LABPRIMVAL (l, x) = lx val () = if i > 0 then emit_text (out, "\n") val () = if boxknd = 0 then emit_text (out, "ATSINSstore_fltrec_ofs(") val () = if boxknd > 0 then emit_text (out, "ATSINSstore_boxrec_ofs(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hitype (out, hit_rec) val () = emit_text (out, ", ") val () = emit_labelext (out, extknd, l) val () = emit_text (out, ", ") val () = emit_primval (out, x) val () = emit_text (out, ") ;") in loop (boxknd, extknd, tmp, hit_rec, lxs, i+1) end // end of [list_cons] // | list_nil ((*void*)) => () // end // end of [loop] // in // case- ins.instr_node of | INSmove_fltrec ( tmp, lpmvs, hse_rec ) => let // val hit = hisexp_typize (1, hse_rec) val extknd = hisexp_get_extknd (hse_rec) // val () = emit_text (out, "ATSINSmove_fltrec_beg()\n") // end of [val] // val () = loop (0(*boxknd*), extknd, tmp, hit, lpmvs, 0) // val () = emit_text (out, "\nATSINSmove_fltrec_end()") // end of [val] in // nothing end // end of [INSmove_fltrec] | INSmove_boxrec ( tmp, lpmvs, hse_rec ) => let // val hit = hisexp_typize (0, hse_rec) val extknd = hisexp_get_extknd (hse_rec) // val () = fprint (out, "/*\n#LINCONSTATUS==2\n*/\n") val () = emit_text (out, "ATSINSmove_boxrec_beg()\n") // end of [val] // val () = emit_text (out, "ATSINSmove_boxrec_new(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hitype (out, hit) val () = emit_text (out, ") ;\n") val () = loop (1(*boxknd*), extknd, tmp, hit, lpmvs, 0) // val () = emit_text (out, "\nATSINSmove_boxrec_end()") // end of [val] // in // nothing end // end of [INSmove_boxrec] // end // end of [emit_instr_move_rec] (* ****** ****** *) local fun auxsel ( out: FILEref , pmv: primval , hse_sum: hisexp , lab: label ) : void = let // val () = emit_text (out, "ATSSELcon(") // val () = emit_primval (out, pmv) val () = emit_text (out, ", ") val () = emit_hisexp_sel (out, hse_sum) val () = emit_text (out, ", ") val () = emit_labelext (out, 0(*ext*), lab) // val ((*closing*)) = emit_RPAREN (out) // in // nothing end // end of [auxsel] in (* in of [local] *) implement emit_primval_selcon (out, pmv0) = let // val-PMVselcon (pmv, hse_sum, lab) = pmv0.primval_node // in auxsel (out, pmv, hse_sum, lab) end // end of [emit_instr_selcon] end // end of [local] (* ****** ****** *) local fun auxfnd ( l0: label, lxs: labhisexplst ) : hisexp = let val-list_cons (lx, lxs) = lxs val HSLABELED (l, opt, x) = lx in if l0 = l then x else auxfnd (l0, lxs) end // end of [auxfnd] fun auxsel ( hse0: hisexp, pml: primlab ) : hisexp = let // (* val () = println! ("auxsel: hse0 = ", hse0) *) // in // case+ pml.primlab_node of // | PMLlab (lab) => ( case+ hse0.hisexp_node of | HSEtyrec (knd, lhses) => auxfnd (lab, lhses) // end of [HSEtyrec] | HSEtyrecsin (lhse) => labhisexp_get_elt (lhse) // end of [HSEtyrecsin] | HSEtysum (d2c, lhses) => auxfnd (lab, lhses) // end of [HSEtysum] | _ (*non-tuple*) => let val () = prerr_interror () val () = prerrln! (": auxsel: pml = ", pml) val () = prerr_interror () val () = prerrln! (": auxsel: hse0 = ", hse0) val ((*exit*)) = assertloc (false) in $ERR.abort_interr{hisexp}((*deadcode*)) end // end of [_] ) (* end of [PMLlab] *) // | PMLind (ind) => let val-HSEtyarr (hse_elt, s2es) = hse0.hisexp_node in hse_elt // end of [val] end // end of [PMLind] // end // end of [auxsel] fun auxselist ( hse0: hisexp, pmls: primlablst ) : List_vt @(hisexp, primlab) = let // vtypedef res = List_vt @(hisexp, primlab) fun loop ( hse0: hisexp, pmls: primlablst, res: res ) : res = ( case+ pmls of | list_nil ((*void*)) => res | list_cons (pml, pmls) => let val hse1 = auxsel (hse0, pml) val res = list_vt_cons ( @(hse0, pml), res ) in loop (hse1, pmls, res) end // end of [list_cons] ) (* end of [loop] *) // in loop (hse0, pmls, list_vt_nil ()) end // end of [auxselist] fun auxmain ( out: FILEref , knd: int , pmv: primval , hse_rt: hisexp , xys: List_vt @(hisexp, primlab) , i: int ) : void = let (* val () = fprintln! (stdout_ref, "auxmain: hse_rt = ", hse_rt) *) in // case+ xys of | ~list_vt_cons (xy, xys) => let // val hse = xy.0 val pml = xy.1 // (* val () = fprintln! (stdout_ref, "auxmain: pmv = ", pmv) val () = fprintln! (stdout_ref, "auxmain: hse = ", hse) val () = fprintln! (stdout_ref, "auxmain: pml = ", pml) *) // var hse2: hisexp = hse var pmv2: primval = pmv val () = ( case+ hse.hisexp_node of | HSEtyarr (hse_elt, _) => { val () = hse2 := hse_elt val istop = list_vt_is_nil (xys) val () = if istop then ( pmv2 := primval_ptrof (pmv.primval_loc, hisexp_typtr, pmv) ) // end of if // end of [val] } // end of [HSEtyarr] | _(*HSEtyrec*) => () // end of [_] ) : void // end of [val] // var issin: bool = false val boxknd = hisexp_get_boxknd (hse) val () = ( if boxknd <= 0 then let val () = issin := hisexp_is_tyrecsin (hse) // end of [val] in if issin then emit_text (out, "ATSSELrecsin(") else ( if boxknd >= 0 // HX: it is a rec then emit_text (out, "ATSSELfltrec(") else emit_text (out, "ATSSELarrptrind(") // end of [if] ) (* end of [else] *) // end of [if] end else emit_text (out, "ATSSELboxrec(") // end of [if] ) : void // end of [val] // val () = auxmain (out, knd, pmv2, hse_rt, xys, i+1) // val () = emit_text (out, ", ") val () = emit_hisexp_sel (out, hse2) val () = emit_text (out, ", ") val extknd = hisexp_get_extknd (hse) val () = emit_primlab (out, extknd, pml) val ((*closing*)) = emit_RPAREN (out) in // nothing end // end of [list_vt_cons] | ~list_vt_nil ((*void*)) => let in case+ knd of | 0 => emit_primval (out, pmv) | _ => emit_primval_deref (out, pmv, hse_rt) end // end of [list_vt_nil] // end // end of [auxmain] (* ****** ****** *) in (* in of [local] *) (* ****** ****** *) implement emit_primval_select (out, pmv0) = let // val-PMVselect (pmv, hse_rt, pml) = pmv0.primval_node // val xys = list_vt_sing @(hse_rt, pml) // in auxmain (out, 0(*non*), pmv, hse_rt, xys, 0) end // end of [emit_primval_select] (* ****** ****** *) implement emit_primval_select2 (out, pmv0) = let // val-PMVselect2 (pmv, hse_rt, pmls) = pmv0.primval_node // val () = let val xys = auxselist (hse_rt, pmls) in auxmain (out, 0(*non*), pmv, hse_rt, xys, 0) end // end of [let] // end of [val] // in // nothing end // end of [emit_primval_select2] (* ****** ****** *) implement emit_primval_selptr (out, pmv0) = let // val-PMVselptr (pmv, hse_rt, pmls) = pmv0.primval_node // val () = let val xys = auxselist (hse_rt, pmls) in auxmain (out, 1(*ptr*), pmv, hse_rt, xys, 0) end // end of [val] // in // nothing end // end of [emit_primval_selptr] (* ****** ****** *) implement emit_primval_ptrofsel (out, pmv0) = let // val-PMVptrofsel (pmv, hse_rt, pmls) = pmv0.primval_node // val () = emit_text (out, "ATSPMVptrof(") // val () = let val xys = auxselist (hse_rt, pmls) in auxmain (out, 1(*ptr*), pmv, hse_rt, xys, 0) end // end of [val] // val ((*closing*)) = emit_RPAREN (out) // in // nothing end // end of [emit_primval_ptrofsel] (* ****** ****** *) implement emit_instr_store_ptrofs (out, ins) = let // val-INSstore_ptrofs (pmv_l, hse_rt, pmls, pmv_r) = ins.instr_node // val () = emit_text (out, "ATSINSstore(") // val () = let val xys = auxselist (hse_rt, pmls) in auxmain (out, 1(*ptr*), pmv_l, hse_rt, xys, 0) end // end of [val] // val () = emit_text (out, ", ") val () = emit_primval (out, pmv_r) val () = emit_text (out, ") ;") // in // nothing end // end of [emit_instr_store_ptrofs] (* ****** ****** *) implement emit_instr_xstore_ptrofs (out, ins) = let // val-INSxstore_ptrofs (tmp, pmv_l, hse_rt, pmls, pmv_r) = ins.instr_node // val xys = auxselist (hse_rt, pmls) val () = emit_text (out, "ATSINSxstore(") val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = auxmain (out, 1(*non*), pmv_l, hse_rt, xys, 0) val () = emit_text (out, ", ") val () = emit_primval (out, pmv_r) val () = emit_text (out, ") ;") // in // nothing end // end of [emit_instr_xstore_ptrofs] (* ****** ****** *) end // end of [local] (* ****** ****** *) implement emit_instr_raise (out, ins) = let // val-INSraise (tmp, pmv_exn) = ins.instr_node // val () = emit_text (out, "ATSINSraise_exn(") // val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_primval (out, pmv_exn) val () = emit_text (out, ") ;") // in // nothing end // end of [emit_instr_raise] (* ****** ****** *) implement emit_instr_move_delay (out, ins) = let // val-INSmove_delay (tmp, lin, hse, thunk) = ins.instr_node // val () = if (lin = 0) then emit_text (out, "ATSINSmove_delay(") // val () = if (lin > 0) then emit_text (out, "ATSINSmove_ldelay(") // val hse = ( if hisexp_is_void(hse) then hisexp_int_t0ype() else hse ) : hisexp // end of [val] // val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse) val () = emit_text (out, ", ") val () = emit_primval (out, thunk) val () = emit_text (out, ") ;") // in // nothing end // end of [emit_instr_move_delay] (* ****** ****** *) implement emit_instr_move_lazyeval (out, ins) = let // val-INSmove_lazyeval (tmp, lin, hse, pmv_lazy) = ins.instr_node // val ( ) = if (lin = 0) then emit_text (out, "ATSINSmove_lazyeval(") val ( ) = if (lin > 0) then emit_text (out, "ATSINSmove_llazyeval(") // val () = emit_tmpvar (out, tmp) val () = emit_text (out, ", ") val () = emit_hisexp (out, hse) val () = emit_text (out, ", ") val () = emit_primval (out, pmv_lazy) val () = emit_text (out, ") ;") // in // nothing end // end of [emit_instr_move_lazyeval] (* ****** ****** *) (* end of [pats_ccomp_emit.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_parsing_decl.dats0000644000175000017500000012413213431250607022012 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: March, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_lexing.sats" staload "./pats_tokbuf.sats" staload "./pats_syntax.sats" (* ****** ****** *) staload "./pats_parsing.sats" (* ****** ****** *) #define l2l list_of_list_vt #define t2t option_of_option_vt (* ****** ****** *) (* d0atsrtdec ::= s0rtid EQ d0atsrtconseq *) fun p_d0atsrtdec ( buf: &tokbuf, bt: int, err: &int ) : d0atsrtdec = let val err0 = err typedef a1 = i0de typedef a2 = token typedef a3 = d0atsrtconlst val+~SYNENT3 (ent1, ent2, ent3) = pseq3_fun {a1,a2,a3} (buf, bt, err, p_s0rtid, p_EQ, p_d0atsrtconseq) // end of [val] in if err = err0 then d0atsrtdec_make (ent1, ent2, ent3) else synent_null ((*okay*)) // end of [if] end // end of [p_d0atsrtdec] implement p_d0atsrtdecseq (buf, bt, err) = let val xs = pstar_fun1_AND (buf, bt, err, p_d0atsrtdec) in l2l (xs) end // end of [p_d0atsrtdecseq] (* ****** ****** *) (* s0rtdef ::= s0rtid EQ s0rtext *) fun p_s0rtdef ( buf: &tokbuf, bt: int, err: &int ) : s0rtdef = let val err0 = err typedef a1 = i0de typedef a2 = token typedef a3 = s0rtext val+~SYNENT3 (ent1, ent2, ent3) = pseq3_fun {a1,a2,a3} (buf, bt, err, p_s0rtid, p_EQ, p_s0rtext) // end of [val] in if (err = err0) then s0rtdef_make (ent1, ent3) else synent_null ((*okay*)) // end of [if] end // end of [p_s0rtdef] implement p_s0rtdefseq (buf, bt, err) = let val xs = pstar_fun1_AND (buf, bt, err, p_s0rtdef) in l2l (xs) end // end of [p_s0rtdecseq] (* ****** ****** *) (* s0tacon ::= si0de a0msrtseq { EQ s0exp } *) fun p_s0tacon ( buf: &tokbuf, bt: int, err: &int ) : s0tacon = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = p_si0de(buf, bt, err) val bt = 0 val ent2 = ( if err = err0 then pstar_fun{a0msrt}(buf, bt, p_a0msrt) else list_vt_nil // end of [if] ) : a0msrtlst_vt val ent3 = pif_fun (buf, bt, err, p_eqs0expopt, err0) // in if err = err0 then s0tacon_make (ent1, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, ntok0) end (* end of [else] *) // end of [if] end // end of [p_s0tacon] implement p_s0taconseq (buf, bt, err) = let val xs = pstar_fun1_AND (buf, bt, err, p_s0tacon) in l2l (xs) end // end of [p_s0taconseq] (* ****** ****** *) (* s0tacst ::= si0de a0msrtseq COLON s0rt extnamopt *) fun p_s0tacst ( buf: &tokbuf, bt: int, err: &int ) : s0tacst = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = p_si0de (buf, bt, err) val bt = 0 val ent2 = ( if err = err0 then pstar_fun{a0msrt}(buf, bt, p_a0msrt) else list_vt_nil(*void*) // end of [if] ) : a0msrtlst_vt val ent3 = pif_fun (buf, bt, err, p_COLON, err0) // end of [val] val ent4 = pif_fun (buf, bt, err, p_s0rt, err0) val ent5 = pif_fun (buf, bt, err, p_extnamopt, err0) // in if err = err0 then s0tacst_make (ent1, (l2l)ent2, ent4, ent5) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, ntok0) end // end of [else] // end of [if] end // end of [p_s0tacst] implement p_s0tacstseq (buf, bt, err) = let val xs = pstar_fun1_AND (buf, bt, err, p_s0tacst) in l2l (xs) end // end of [p_s0tacstseq] (* ****** ****** *) (* // // HX-2012-05-23: removed // (* s0tavar ::= si0de COLON s0rt *) fun p_s0tavar ( buf: &tokbuf, bt: int, err: &int ) : s0tavar = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = p_si0de (buf, bt, err) val bt = 0 val ent2 = pif_fun (buf, bt, err, p_COLON, err0) val ent3 = pif_fun (buf, bt, err, p_s0rt, err0) // in if err = err0 then s0tavar_make (ent1, ent3) else tokbuf_set_ntok_null (buf, ntok0) // end of [if] end // end of [p_s0tavar] implement p_s0tavarseq (buf, bt, err) = let val xs = pstar_fun1_AND (buf, bt, err, p_s0tavar) in l2l (xs) end // end of [p_s0tavarseq] *) (* ****** ****** *) (* t0kindef: si0de EQ s0tring *) fun p_t0kindef ( buf: &tokbuf, bt: int, err: &int ) : t0kindef = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = p_si0de (buf, bt, err) val bt = 0 val ent2 = pif_fun (buf, bt, err, p_EQ, err0) val ent3 = pif_fun (buf, bt, err, p_s0tring, err0) // in if err = err0 then t0kindef_make (ent1, ent3) else tokbuf_set_ntok_null (buf, ntok0) // end of [if] end // end of [p_t0kindef] (* ****** ****** *) (* s0expdef | si0de s0margseq colons0rtopt EQ s0exp *) fun p_s0expdef ( buf: &tokbuf, bt: int, err: &int ) : s0expdef = let // val err0 = err val ntok0 = tokbuf_get_ntok(buf) // val ent1 = p_si0de(buf, bt, err) // val bt = 0 val ent2 = ( if err = err0 then pstar_fun(buf, bt, p_s0marg) else list_vt_nil(*void*) // end of [if] ) : s0marglst_vt // end of [val] // val ent3 = pif_fun(buf, bt, err, p_colons0rtopt, err0) // end of [val] // val ent4 = pif_fun(buf, bt, err, p_EQ, err0) val ent5 = pif_fun(buf, bt, err, p_s0exp, err0) // in if err = err0 then s0expdef_make(ent1, (l2l)ent2, ent3, ent5) else let val () = list_vt_free(ent2) in tokbuf_set_ntok_null(buf, ntok0) end // end of [else] // end of [if] end // end of [p_s0expdef] implement p_s0expdefseq (buf, bt, err) = let val xs = pstar_fun1_AND(buf, bt, err, p_s0expdef) in l2l (xs) end // end of [p_s0expdecseq] (* ****** ****** *) (* s0aspdec ::= sqi0de s0margseq colons0rtopt EQ s0exp *) fun p_s0aspdec ( buf: &tokbuf, bt: int, err: &int ) : s0aspdec = let // val err0 = err val ntok0 = tokbuf_get_ntok(buf) // val ent1 = p_sqi0de(buf, bt, err) // val bt = 0 val ent2 = ( if err = err0 then pstar_fun(buf, bt, p_s0marg) else list_vt_nil(*void*) // end of [if] ) : s0marglst_vt // val ent3 = pif_fun ( buf, bt, err, p_colons0rtopt, err0 ) (* pif_fun *) // val ent4 = pif_fun(buf, bt, err, p_EQ, err0) val ent5 = pif_fun(buf, bt, err, p_s0exp, err0) // in if err = err0 then s0aspdec_make(ent1, (l2l)ent2, ent3, ent5) else let val () = list_vt_free(ent2) in tokbuf_set_ntok_null(buf, ntok0) end // end of [else] // end of [if] end // end of [p_s0aspdec] (* ****** ****** *) // (* e0xndecseq = e0xndec { AND e0xndec } *) implement p_e0xndecseq (buf, bt, err) = list_of_list_vt(xs) where { val xs = pstar_fun1_AND(buf, bt, err, p_e0xndec) } (* end of [p_e0xndecseq] *) // (* ****** ****** *) (* d0atdec ::= si0de a0msrtseq EQ d0atconseq *) fun p_d0atdec ( buf: &tokbuf, bt: int, err: &int ) : d0atdec = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = p_si0de (buf, bt, err) val bt = 0 val ent2 = ( if err = err0 then pstar_fun {a0msrt} (buf, bt, p_a0msrt) else list_vt_nil () // end of [if] ) : a0msrtlst_vt // end of [val] val ent3 = pif_fun (buf, bt, err, p_EQ, err0) val ent4 = pif_fun (buf, bt, err, p_d0atconseq, err0) // in if err = err0 then d0atdec_make (ent1, (l2l)ent2, ent4) else let val () = err := err + 1 val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, ntok0) end // end of [else] // end of [if] end // end of [p_d0atdec] implement p_d0atdecseq (buf, bt, err) = let val xs = pstar_fun1_AND (buf, bt, err, p_d0atdec) in l2l (xs) end // end of [p_d0atdecseq] (* ****** ****** *) (* d0cstdec ::= di0de d0cstargseq colonwith s0exp extnamopt *) fun p_d0cstdec ( buf: &tokbuf, bt: int, err: &int ) : d0cstdec = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = p_di0de (buf, bt, err) val bt = 0 val ent2 = ( if err = err0 then pstar_fun (buf, bt, p_d0cstarg) else list_vt_nil(*void*) // end of [if] ) : List_vt (d0cstarg) val ent3 = pif_fun (buf, bt, err, p_colonwith, err0) val ent4 = pif_fun (buf, bt, err, p_s0exp, err0) val ent5 = pif_fun (buf, bt, err, p_extnamopt, err0) // in if err = err0 then d0cstdec_make (ent1, (l2l)ent2, ent3, ent4, ent5) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, ntok0) end // end of [else] // end of [if] end // end of [p_d0cstdec] implement p_d0cstdecseq (buf, bt, err) = ( l2l (pstar_fun1_AND (buf, bt, err, p_d0cstdec)) ) (* end of [p_d0cstdecseq] *) (* ****** ****** *) (* s0ym ::= di0de | LBRACKET RBRACKET | DOT l0ab *) extern fun p_s0ym : parser (i0de) implement p_s0ym (buf, bt, err) = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_DOT () => let val bt = 0 val () = incby1 () val ent2 = p_l0ab (buf, bt, err) in if err = err0 then i0de_make_dotlab (tok, ent2) else tokbuf_set_ntok_null (buf, ntok0) // end of [if] end // end of [T_DOT] | T_LBRACKET () => let val bt = 0 val () = incby1 () val ent2 = p_RBRACKET (buf, bt, err) in if err = err0 then i0de_make_lrbrackets (tok, ent2) else tokbuf_set_ntok_null (buf, ntok0) // end of [if] end | _ => let val ent = p_di0de (buf, bt, err) in if err = err0 then ent else synent_null ((*okay*)) end // end of [_] // end // end of [p_s0ym] (* ****** ****** *) extern fun p_s0ymseq1 : parser (i0delst) implement p_s0ymseq1 (buf, bt, err) = let val xs = pstar1_fun (buf, bt, err, p_s0ym) in list_of_list_vt (xs) end // end of [p_s0ymseq1] (* ****** ****** *) extern fun p_m0acarg : parser (m0acarg) (* m0acarg ::= | pi0de | LBRACE s0argseq RBRACE | LPAREN pi0deseq RPAREN *) implement p_m0acarg (buf, bt, err) = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val tok = tokbuf_get_token (buf) // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of | T_LBRACE () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA {s0arg} (buf, bt, p_s0arg) val ent3 = p_RBRACE (buf, bt, err) in if err = err0 then m0acarg_sta (tok, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, ntok0) end // end of [else] // end of [if] end | T_LPAREN () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA {i0de} (buf, bt, p_si0de) val ent3 = p_RPAREN (buf, bt, err) in if err = err0 then m0acarg_dyn (tok, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, ntok0) end // end of [if] // end of [if] end | _ => let val ent1 = p_pi0de (buf, bt, err) in if err = err0 then m0acarg_sing (ent1) else tokbuf_set_ntok_null (buf, ntok0) // end of [if] end // end // end of [p_m0acarg] (* ****** ****** *) (* m0acdef ::= di0de m0acargseq EQ d0exp *) implement p_m0acdef (buf, bt, err) = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = p_di0de (buf, bt, err) val bt = 0 val ent2 = ( if err = err0 then pstar_fun (buf, bt, p_m0acarg) else list_vt_nil // end of [if] ) : List_vt (m0acarg) val ent3 = pif_fun (buf, bt, err, p_EQ, err0) val ent4 = pif_fun (buf, bt, err, p_d0exp, err0) // in if err = err0 then m0acdef_make (ent1, (l2l)ent2, ent4) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, ntok0) end // end of [else] // end of [if] end // end of [p_m0acdef] (* ****** ****** *) (* stai0de ::= IDENT_alp *) // extern fun p_stai0de : parser (i0de) // implement p_stai0de (buf, bt, err) = let val tok = tokbuf_get_token (buf) val loc = tok.token_loc macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_IDENT_alp name => let val () = incby1 () val name = "$" + name // HX: each qualifier begins with '$' in i0de_make_string (loc, name) end | _ => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_stai0de) in synent_null ((*okay*)) end // end // end of [p_stai0de] (* ****** ****** *) (* staloadarg = | s0tring // "...": filename | i0de_dlr // $...: namespace | { d0eclseq_dyn } // local declarations *) fun p_staloadarg ( buf: &tokbuf, bt: int, err: &int ) : staloadarg = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val tok = tokbuf_get_token (buf) val loc = tok.token_loc // macdef incby1 () = tokbuf_incby1 (buf) // in // case+ tok.token_node of // | T_STRING (name) => let val () = incby1 () in STLDfname (loc, name) end // end of [T_STRING] // | T_IDENT_dlr (name) => let val () = incby1 () in STLDnspace (loc, name) end // end of [T_IDENT_dlr] // | T_LBRACE ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_d0eclseq_fun{d0ecl}(buf, bt, p_d0ecl_dyn) // end of [val] val ent3 = pif_fun{token}(buf, bt, err, p_RBRACE, err0) // end of [val] in if err = err0 then staloadarg_declist (tok, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, ntok0) end (* end of [else] *) // end of [if] end // end of [T_LBRACE] // | _ (*rest*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, loc, PE_staloadarg) in synent_null ((*okay*)) end // end of [let] // end of [_] // end // end of [p_staloadarg] (* ****** ****** *) (* staload ::= | s0tring | i0de_dlr | stai0de EQ staloadarg *) fun p_staload_tok ( buf: &tokbuf, bt: int, err: &int, tok: token ) : d0ecl = let val err0 = err val tok2 = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok2.token_node of | T_STRING _ => let val () = incby1 () in d0ecl_staload_fname (tok, tok2) end // end of [T_STRING] | T_IDENT_dlr _ => let val () = incby1 () in d0ecl_staload_nspace (tok, tok2) end // end of [T_IDENT_dlr] | _ (*non-STR-IDENT*) => let val ent2 = p_stai0de (buf, bt, err) val bt = 0 // HX: backtracking is cancelled val ent3 = pif_fun (buf, bt, err, p_EQ, err0) val ent4 = pif_fun (buf, bt, err, p_staloadarg, err0) in if (err = err0) then d0ecl_staload_some_arg (tok, ent2, ent4) // end of [then] else let val d0c = synent_null((*okay*)) (* val ((*void*)) = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_staload) // end of [val] *) in d0c(*staload*) end // end of [else] // end of [if] end (* end of [_] *) // end // end of [p_staload_tok] (* ****** ****** *) (* srpifkind ::= SRPIF | SRPIFDEF | SRPIFNDEF *) fun p_srpifkind ( buf: &tokbuf, bt: int, err: &int ) : token = let val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_SRPIF () => let val () = incby1 () in tok end | T_SRPIFDEF () => let val () = incby1 () in tok end | T_SRPIFNDEF () => let val () = incby1 () in tok end | _ => let val () = err := err + 1 in synent_null ((*okay*)) end (* end of [_] *) // end // end of [p_srpifkind] (* srpelifkind ::= SRPELIF | SRPELIFDEF | SRPELIFNDEF *) fun p_srpelifkind ( buf: &tokbuf, bt: int, err: &int ) : token = let val tok = tokbuf_get_token (buf) macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | T_SRPELIF () => let val () = incby1 () in tok end | T_SRPELIFDEF () => let val () = incby1 () in tok end | T_SRPELIFNDEF () => let val () = incby1 () in tok end | _ => let val () = err := err + 1 in synent_null ((*okay*)) end (* end of [_] *) // end // end of [p_srpelifkind] (* ****** ****** *) (* d0ecl | INFIX p0rec i0deseq | PREFIX p0rec i0deseq | POSTFIX p0rec i0deseq | NONFIX i0deseq | SYMINTR s0ymseq | SYMELIM s0ymseq | SRPUNDEF i0de | SRPDEFINE i0de e0xpopt | SRPERROR e0xp | SRPPRERR e0xp | SRPPRINT e0xp | SRPASSERT e0xp | DATASORT d0atsrtdecseq | STA s0tacstseq (* // // HX-2012-05-23: // removed this big hack!!! | STAVAR s0tavarseq // *) // | STALOAD staload // | STADEF s0expdefseq | TYPEDEF s0expdefseq | ASSUME s0aspdec | EXCEPTION e0xndecseq | DATAYPE d0atdec andd0atdecseq {WHERE s0expdefseq} | MACDEF {REC} m0acdefseq | CLASSDEC si0de [EQ s0exp] | SYMLOAD [] WITH dqi0de {of INTEGER} | SYMLOAD s0ym WITH dqi0de {of INTEGER} *) fun p_d0ecl_tok ( buf: &tokbuf, bt: int, err: &int, tok: token ) : d0ecl = let val err0 = err macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of // | T_FIXITY _ => let val bt = 0 val () = incby1 () val ent2 = p_p0rec (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_i0deseq1, err0) in if err = err0 then d0ecl_fixity (tok, ent2, ent3) else synent_null () // end of [if] end | T_NONFIX () => let val bt = 0 val () = incby1 () val ent2 = p_i0deseq1 (buf, bt, err) in if err = err0 then d0ecl_nonfix (tok, ent2) else synent_null () // end of [if] end // | T_SYMINTR () => let val bt = 0 val () = incby1 () val ent2 = p_s0ymseq1 (buf, bt, err) in if err = err0 then d0ecl_symintr (tok, ent2) else synent_null () // end of [if] end | T_SYMELIM () => let val bt = 0 val () = incby1 () val ent2 = p_s0ymseq1 (buf, bt, err) in if err = err0 then d0ecl_symelim (tok, ent2) else synent_null () // end of [if] end | T_SYMLOAD () => let val bt = 0 val () = incby1 () val ent1 = p_s0ym (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_WITH, err0) val ent3 = pif_fun (buf, bt, err, p_dqi0de, err0) val ent4 = ( if err = err0 then ptokentopt_fun (buf, is_OF, p_i0nt) else None_vt // end of [if] ) : Option_vt (i0nt) in if err = err0 then d0ecl_overload (tok, ent1, ent3, (t2t)ent4) else let val () = option_vt_free (ent4) in synent_null () end // end of [else] // end of [if] end (* T_SYMLOAD *) // | T_SRPUNDEF () => let val bt = 0 val () = incby1 () val ent2 = p_i0de (buf, bt, err) in if err = err0 then d0ecl_e0xpundef(tok, ent2) else synent_null() end // end of [#undef] | T_SRPDEFINE ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_i0de (buf, bt, err) val ent3 = ( if err = err0 then popt_fun{e0xp}(buf, bt, p_e0xp) else None_vt() ) : Option_vt (e0xp) // end of [val] in if err = err0 then let val ent3 = option_of_option_vt (ent3) // end of [val] in d0ecl_e0xpdef (tok, ent2, ent3) end // end of [then] else let val () = option_vt_free(ent3) in synent_null() end // end of [else] // end of [if] end // end of [#define] // | T_SRPERROR () => let val bt = 0 val () = incby1 () val ent2 = p_e0xp (buf, bt, err) in if err = err0 then d0ecl_e0xpact_error(tok, ent2) else synent_null() // end of [if] end | T_SRPPRERR () => let val bt = 0 val () = incby1 () val ent2 = p_e0xp (buf, bt, err) in if err = err0 then d0ecl_e0xpact_prerr(tok, ent2) else synent_null() // end of [if] end | T_SRPPRINT () => let val bt = 0 val () = incby1 () val ent2 = p_e0xp (buf, bt, err) in if err = err0 then d0ecl_e0xpact_print(tok, ent2) else synent_null() // end of [if] end // | T_SRPASSERT () => let val bt = 0 val () = incby1 () val ent2 = p_e0xp (buf, bt, err) in if err = err0 then d0ecl_e0xpact_assert(tok, ent2) else synent_null() // end of [if] end // | T_SRPREQUIRE () => let val bt = 0 val () = incby1 () val ent2 = p_s0tring (buf, bt, err) in if err = err0 then d0ecl_require (tok, ent2) else synent_null() // end of [if] end // end of [T_SRPREQUIRE] // | T_SRPPRAGMA ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_e0xpseq, err0) // end of [val] val ent4 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0ecl_pragma(ent2, ent3, ent4) else synent_null() // end of [if] end // end of [T_SRPCODEGEN2] // | T_SRPCODEGEN2 ((*void*)) => let val bt = 0 val () = incby1 () val ent2 = p_LPAREN (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_e0xpseq, err0) // end of [val] val ent4 = pif_fun (buf, bt, err, p_RPAREN, err0) in if err = err0 then d0ecl_codegen2(ent2, ent3, ent4) else synent_null() // end of [if] end // end of [T_SRPCODEGEN2] // | T_SORTDEF () => let val bt = 0 val () = incby1 () val ent2 = p_s0rtdefseq (buf, bt, err) in if err = err0 then d0ecl_srtdefs (tok, ent2) else synent_null () end | T_DATASORT () => let val bt = 0 val () = incby1 () val ent2 = p_d0atsrtdecseq (buf, bt, err) in if err = err0 then d0ecl_datsrts (tok, ent2) else synent_null () end // | T_STACST () => let val bt = 0 val () = incby1 () val ent2 = p_s0tacstseq (buf, bt, err) in if err = err0 then d0ecl_stacsts (tok, ent2) else synent_null () end | T_ABSTYPE (knd) => let val bt = 0 val () = incby1 () val ent2 = p_s0taconseq (buf, bt, err) in if err = err0 then d0ecl_stacons (knd, tok, ent2) else synent_null () end (* | T_STAVAR () => let val bt = 0 val () = incby1 () val ent2 = p_s0tavarseq (buf, bt, err) in if err = err0 then d0ecl_stavars (tok, ent2) else synent_null () end *) // | T_STADEF () => let val bt = 0 val () = incby1 () val ent2 = p_s0expdefseq (buf, bt, err) in if err = err0 then ( d0ecl_sexpdefs(~1(*knd*), tok, ent2) ) else synent_null() // end of [if] end | T_MACDEF (knd) => let val bt = 0 val () = incby1 () var _ent: synent? val isr = ptest_fun(buf, p_REC, _ent) val ent3 = pstar_fun1_AND{m0acdef}(buf, bt, err, p_m0acdef) in if err = err0 then d0ecl_macdefs (knd, isr, tok, (l2l)ent3) else let val () = list_vt_free (ent3) in synent_null () end (* end of [else] *) // end of [if] end // | T_ASSUME() => let val bt = 0 val () = incby1() val ent2 = p_s0aspdec(buf, bt, err) in if err = err0 then d0ecl_saspdec(tok, ent2) else synent_null() // end of [if] end // T_ASSUME // | T_REASSUME() => let val bt = 0 val () = incby1() val ent2 = p_sqi0de(buf, bt, err) in if err = err0 then d0ecl_reassume(tok, ent2) else synent_null() // end of [if] end // T_REASSUME // | T_TKINDEF() => let val bt = 0 val () = incby1() val ent2 = p_t0kindef(buf, bt, err) in if err = err0 then d0ecl_tkindef(tok, ent2) else synent_null() end // T_TKINDEF // | T_TYPEDEF(knd) => let val bt = 0 val () = incby1() val ent2 = p_s0expdefseq(buf, bt, err) // end of [val] in if err = err0 then d0ecl_sexpdefs(knd, tok, ent2) else synent_null() end // T_TYPEDEF // | T_EXCEPTION() => let val bt = 0 val () = incby1() val ent2 = p_e0xndecseq(buf, bt, err) // end of [val] in if err = err0 then d0ecl_exndecs(tok, ent2) else synent_null() // end of [if] end // T_EXCEPTION | T_DATATYPE(knd) => let val bt = 0 val () = incby1() val ent2 = p_d0atdecseq(buf, bt, err) // end of [val] val tok2 = tokbuf_get_token(buf) in case+ tok2.token_node of (* case+ *) | T_WHERE () => let val () = incby1() val ent4 = p_s0expdefseq(buf, bt, err) in d0ecl_datdecs_some(knd, tok, ent2, tok2, ent4) end // end of [T_WHERE] | _ (*non-T_WHERE*) => d0ecl_datdecs_none(knd, tok, ent2) end // T_DATATYPE // | T_CLASSDEC() => let val bt = 0 val () = incby1 () val ent1 = p_si0de(buf, bt, err) val ent3 = pif_fun(buf, bt, err, p_colons0expopt, err0) in if err = err0 then d0ecl_classdec(tok, ent1, ent3) else synent_null() // end of [if] end // T_CLASSDEC // | T_SRPSTALOAD() => let val bt = 0 val () = incby1() in p_staload_tok(buf, bt, err, tok) end // end of [T_SRPSTALOAD] // | _ (*rest-of-tokens*) => let val () = err := err + 1 in synent_null() end // end of [case] end // end of [p_d0ecl_tok] (* ****** ****** *) implement p_d0ecl (buf, bt, err) = ptokwrap_fun (buf, bt, err, p_d0ecl_tok, PE_d0ecl) // end of [p_d0ecl] (* ****** ****** *) implement p_d0eclseq_fun {a}(buf, bt, f) = let // viewtypedef res_vt = List_vt (a) // fun loop ( buf: &tokbuf , res: &res_vt? >> res_vt , err: &int ) : void = let val x = f (buf, 1(*bt*), err) in case+ 0 of | _ when err > 0 => let val () = res := list_vt_nil in // nothing end | _ => () where { val () = res := list_vt_cons {a} {0} (x, ?) // end of [val] val+list_vt_cons (_, !p_res1) = res // val semilst = pstar_fun {token} (buf, 1(*bt*), p_SEMICOLON) val () = list_vt_free (semilst) // val () = loop (buf, !p_res1, err) prval () = fold@ (res) } // end of [where] // end of [_] end // end of [loop] // var res: res_vt var err: int = 0 val () = loop (buf, res, err) // in res (* properly ordered *) end // end of [p_d0eclseq_fun] (* ****** ****** *) (* guad0ecl_fun | e0xp [SRPTHEN] d0eclseq_fun SRPENDIF | e0xp [SRPTHEN] d0eclseq_fun SRPELSE d0eclseq_fun SRPENDIF | e0xp [SRPTHEN] d0eclseq_fun srpelifkind guad0ecl_fun *) fun guad0ecl_fun ( buf: &tokbuf , bt: int, err: &int, f: parser (d0ecl) ) : guad0ecl = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // var ent: synent? // macdef incby1 () = tokbuf_incby1 (buf) // val ent1 = p_e0xp (buf, bt, err) val bt = 0 val _(*ignored*) = ptest_fun (buf, p_SRPTHEN, ent) val ent3 = ( if err = err0 then p_d0eclseq_fun (buf, bt, f) else list_vt_nil () // end of [if] ) : List_vt (d0ecl) // val tok = tokbuf_get_token (buf) // in // if ( err = err0 ) then ( // case+ tok.token_node of | T_SRPENDIF ((*void*)) => let val () = incby1 () in guad0ecl_one (ent1, (l2l)ent3, tok) end | T_SRPELSE () => let val bt = 0 val () = incby1 () val ent5 = p_d0eclseq_fun {d0ecl} (buf, bt, f) val ent6 = p_SRPENDIF (buf, bt, err) in if err = err0 then guad0ecl_two (ent1, (l2l)ent3, (l2l)ent5, ent6) else let val () = list_vt_free (ent3) val () = list_vt_free (ent5) in tokbuf_set_ntok_null (buf, ntok0) end // end of [else] // end of [if] end | _ when ptest_fun ( buf, p_srpelifkind, ent ) => let val bt = 0 val ent5 = guad0ecl_fun (buf, bt, err, f) in if err = err0 then guad0ecl_cons (ent1, (l2l)ent3, tok, ent5) else let val () = list_vt_free (ent3) in tokbuf_set_ntok_null (buf, ntok0) end // end of [else] // end of [if] end // end of [_ when ...] | _ => let val () = err := err + 1 val () = list_vt_free (ent3) val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_guad0ecl) in tokbuf_set_ntok_null (buf, ntok0) end // end of [_] // ) else let val () = list_vt_free (ent3) in tokbuf_set_ntok_null (buf, ntok0) end // end of [if] // end // end of [guad0ecl_fun] (* ****** ****** *) (* d0ecl_sta | d0ecl | dcstkind q0margseq d0cstdecseq | LITERAL_extcode | SRPINCLUDE LITERAL_string | LOCAL d0eclseq_sta IN d0eclseq_sta END | srpifkind guad0ecl_sta *) fun p_d0ecl_sta_tok ( buf: &tokbuf, bt: int, err: &int, tok: token ) : d0ecl = let val err0 = err var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | _ when ptest_fun ( buf, p_d0ecl, ent ) => synent_decode (ent) | _ when ptest_fun ( buf, p_dcstkind, ent ) => let val bt = 0 val ent1 = synent_decode {token} (ent) val ent2 = p_q0margseq (buf, bt, err) val ent3 = p_d0cstdecseq (buf, bt, err) in if err = err0 then d0ecl_dcstdecs (ent1, ent2, ent3) else synent_null () // end of [if] end // end of [_ when ...] // | T_EXTCODE _ => let val () = incby1 () in d0ecl_extcode (0(*sta*), tok) end // end of [T_EXTCODE] // | T_SRPINCLUDE () => let val bt = 0 val () = incby1 () val ent2 = p_s0tring (buf, bt, err) in if err = err0 then d0ecl_include (0(*sta*), tok, ent2) else synent_null () // end of [if] end // end of [T_SRPINCLUDE] // | _ when ptest_fun ( buf, p_srpifkind, ent ) => let val bt = 0 val ent1 = synent_decode{token}(ent) val ent2 = guad0ecl_fun (buf, bt, err, p_d0ecl_sta) in if err = err0 then d0ecl_guadecl (ent1, ent2) else synent_null () // end of [if] end // end of [_ when ...] // | T_LOCAL () => let val bt = 0 val () = incby1 () val ent2 = p_d0eclseq_fun{d0ecl}(buf, bt, p_d0ecl_sta) val ent3 = p_IN (buf, bt, err) val ent4 = ( if err = err0 then p_d0eclseq_fun (buf, bt, p_d0ecl_sta) else list_vt_nil () // end of [if] ) : d0eclist_vt // end of [val] val ent5 = pif_fun (buf, bt, err, p_END, err0) in if err = err0 then d0ecl_local (tok, (l2l)ent2, (l2l)ent4, ent5) else let val () = list_vt_free (ent2) val () = list_vt_free (ent4) in synent_null ((*okay*)) end // end of [else] // end of [if] end // end of [T_LOCAL] // | _ => let val () = err := err + 1 in synent_null () end // end of [_] // end // end of [p_d0ecl_sta_tok] implement p_d0ecl_sta (buf, bt, err) = ptokwrap_fun (buf, bt, err, p_d0ecl_sta_tok, PE_d0ecl_sta) // end of [p_d0ecl_sta] (* ****** ****** *) (* v0aldec ::= p0at EQ d0exp witht0ype *) fun p_v0aldec ( buf: &tokbuf, bt: int, err: &int ) : v0aldec = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = p_p0at (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_EQ, err0) val ent3 = pif_fun (buf, bt, err, p_d0exp, err0) val ent4 = pif_fun (buf, bt, err, p_witht0ype, err0) // in // if err = err0 then v0aldec_make (ent1, ent3, ent4) else tokbuf_set_ntok_null (buf, ntok0) // end // end of [p_v0aldec] (* ****** ****** *) (* f0undec ::= di0de f0argseq {colonwith s0exp} EQ d0exp witht0ype *) fun p_f0undec ( buf: &tokbuf, bt: int, err: &int ) : f0undec = let val err0 = err var ent: synent? in // case+ 0 of | _ when ptest_fun ( buf, p_di0de, ent ) => let val bt = 0 val ent1 = synent_decode {i0de} (ent) val ent2 = pstar_fun {f0arg} (buf, bt, p_f0arg1) val+~SYNENT2 (ent3, ent4) = pseq2_fun {e0fftaglstopt,s0exp} (buf, 1(*bt*), err, p_colonwith, p_s0exp) // end of [val] val ent3 = (if (err = err0) then ent3 else None ()): e0fftaglstopt val ent4 = (if (err = err0) then Some (ent4) else None ()): s0expopt val () = if err > err0 then (err := err0) // anntationless val+~SYNENT3 (ent5, ent6, ent7) = pseq3_fun {token,d0exp,witht0ype} (buf, bt, err, p_EQ, p_d0exp, p_witht0ype) // end of [val] in if err = err0 then f0undec_make (ent1, (l2l)ent2, ent3, ent4, ent6, ent7) else let val () = list_vt_free (ent2) in synent_null () end // end of [if] end | _ => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [p_f0undec] (* ****** ****** *) (* v0ardec ::= {BANG} pi0de {COLON s0exp} {WITH pi0de} {EQ d0exp} *) fun p_v0ardec ( buf: &tokbuf, bt: int, err: &int ) : v0ardec = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ref = popt_fun {token} (buf, bt, p_BANG) val pid = p_pi0de (buf, bt, err) val ann = pif_fun (buf, bt, err, p_colons0expopt, err0) val varwth = ( if err = err0 then ptokentopt_fun (buf, is_WITH, p_pi0de) else None_vt () // end of [if] ) : Option_vt (i0de) val def = pif_fun (buf, bt, err, p_eqd0expopt, err0) // in // if err = err0 then // succ v0ardec_make ((t2t)ref, pid, (t2t)varwth, ann, def) else let // fail val () = option_vt_free (ref) val () = option_vt_free (varwth) in tokbuf_set_ntok_null (buf, ntok0) end // end of [else] // end of [if] // end // end of [p_v0ardec] (* ****** ****** *) (* i0mpsvararg ::= LBRACE s0vararg RBRACE *) fun p_i0mpsvararg ( buf: &tokbuf, bt: int, err: &int ) : s0vararg = let val err0 = err typedef a1 = token typedef a2 = s0vararg typedef a3 = token val+ ~SYNENT3 (ent1, ent2, ent3) = pseq3_fun{a1,a2,a3} (buf, bt, err, p_LBRACE, p_s0vararg, p_RBRACE) // end of [val] in if err = err0 then ent2 else synent_null((*okay*)) end // end of [p_i0mpsvararg] (* i0mparg ::= LPAREN {s0arg}* RPAREN | {i0mpsvararg}* *) fun p_i0mparg ( buf: &tokbuf, bt: int, err: &int ) : i0mparg = let // val err0 = err val ntok0 = tokbuf_get_ntok(buf) // val tok = tokbuf_get_token(buf) // macdef incby1() = tokbuf_incby1(buf) // in // case+ tok.token_node of // case+ | T_LBRACE () => let val ent = pstar_fun{s0vararg} (buf, bt, p_i0mpsvararg) // end of [val] in i0mparg_svararglst((l2l)ent) end (* end of [_] *) | T_LPAREN () => let val bt = 0 val () = incby1 () val ent2 = pstar_fun0_COMMA{s0arg}(buf, bt, p_s0arg) val ent3 = p_RPAREN (buf, bt, err) in if err = err0 then i0mparg_sarglst_some(tok, (l2l)ent2, ent3) else let val () = list_vt_free(ent2) in tokbuf_set_ntok_null(buf, ntok0) end (* end of [else] *) // end of [if] end | _ (*rest-of-tokens*) => i0mparg_sarglst_none() // end // end of [p_i0mparg] (* ****** ****** *) // (* impqi0de ::= | dqi0de | tmpqi0de tmps0expseq_gtlt GT *) // fun p_impqi0de ( buf: &tokbuf, bt: int, err: &int ) : impqi0de = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val tok = tokbuf_get_token (buf) var ent: synent? // uninitized // in case+ 0 of | _ when ptest_fun ( buf, p_dqi0de, ent ) => let val qid = synent_decode{dqi0de}(ent) in impqi0de_make_none(qid) end // end of [dqi0de] | _ when ptest_fun ( buf, p_tmpqi0de, ent ) => let val bt = 0 val ent1 = synent_decode {dqi0de} (ent) val ent2 = pstar_fun1_sep{t0mpmarg}(buf, bt, err, p_tmps0expseq, p_GTLT_test) val ent3 = p_GT (buf, bt, err) in if err = err0 then impqi0de_make_some (ent1, (l2l)ent2, ent3) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null(buf, ntok0) end (* end of [else] *) // end of [if] end // end of [tmpqi0de] | _ (*rest-of-token*) => let val () = err := err + 1 val () = the_parerrlst_add_ifnbt (bt, tok.token_loc, PE_impqi0de) in synent_null((*void*)) end end // end of [p_impqi0de] (* ****** ****** *) // (* i0mpdec ::= | impqi0de f0arg2seq colons0expopt EQ d0exp *) // fun p_i0mpdec ( buf: &tokbuf, bt: int, err: &int ) : i0mpdec = let // val err0 = err val ntok0 = tokbuf_get_ntok (buf) // val ent1 = p_impqi0de (buf, bt, err) val bt = 0 val ent2 = ( if err = err0 then pstar_fun{f0arg}(buf, bt, p_f0arg2) else list_vt_nil(*void*) // end of [if] ) : f0arglst_vt val ent3 = pif_fun (buf, bt, err, p_colons0expopt, err0) val ent4 = pif_fun (buf, bt, err, p_EQ, err0) val ent5 = pif_fun (buf, bt, err, p_d0exp, err0) // in if err = err0 then i0mpdec_make (ent1, (l2l)ent2, ent3, ent5) else let val () = list_vt_free (ent2) in tokbuf_set_ntok_null (buf, ntok0) end (* end of [else] *) // end of [if] end // end of [p_i0mpdec] (* ****** ****** *) // (* d0ec_dyn | d0ec | valkind {REC} v0aldecseq | funkind q0margseq f0undecseq | VAR v0ardecseq // | IMPLEMENT i0mpargseq i0mpdec // | EXTERN VAR LITERAL_string EQ d0exp | EXTERN TYPEDEF s0tring EQ s0exp | EXTERN dcstkind q0margseq d0cstdecseq | LITERAL_extcode | SRPINCLUDE LITERAL_string | DYNLOAD LITERAL_string | LOCAL d0ecseq_dyn IN d0ecseq_dyn END | srpifkind guad0ec_dyn *) // fun p_d0ecl_dyn_tok ( buf: &tokbuf, bt: int, err: &int, tok: token ) : d0ecl = let val err0 = err var ent: synent? macdef incby1 () = tokbuf_incby1 (buf) in // case+ tok.token_node of | _ when ptest_fun ( buf, p_d0ecl, ent ) => synent_decode {d0ecl} (ent) | T_VAL (knd) => let val bt = 0 val () = incby1 () val isrec = p_REC_test (buf) val ent3 = pstar_fun1_AND {v0aldec} (buf, bt, err, p_v0aldec) in if err = err0 then d0ecl_valdecs (knd, isrec, tok, (l2l)ent3) else let val () = list_vt_free (ent3) in synent_null () end // end of [if] end // end of [T_VAL] | T_FUN (knd) => let val bt = 0 val () = incby1 () val ent2 = pstar_fun {q0marg} (buf, bt, p_q0marg) val ent3 = pstar_fun1_AND {f0undec} (buf, bt, err, p_f0undec) in if err = err0 then d0ecl_fundecs (knd, tok, (l2l)ent2, (l2l)ent3) else let val () = list_vt_free (ent2) val () = list_vt_free (ent3) in synent_null ((*okay*)) end (* end of [else] *) // end of [if] end // end of [T_FUN] | T_VAR (knd) => let val bt = 0 val () = incby1 () val ent2 = pstar_fun1_AND {v0ardec} (buf, bt, err, p_v0ardec) in if err = err0 then d0ecl_vardecs (knd, tok, (l2l)ent2) else let val () = list_vt_free (ent2) in synent_null ((*okay*)) end (* end of [else] *) // end of [if] end // end of [T_VAR] // | T_IMPLEMENT (knd) => let val bt = 0 val () = incby1 () val ent2 = p_i0mparg (buf, bt, err) val ent3 = pif_fun (buf, bt, err, p_i0mpdec, err0) in if err = err0 then d0ecl_impdec (tok, ent2, ent3) else synent_null () // (* end of [if] *) end // end of [T_IMPLEMENT] // | T_EXTCODE _ => let val () = incby1 () in d0ecl_extcode (1(*dyn*), tok) end // end of [T_EXTCODE] // | T_EXTERN () => let val bt = 0 val () = incby1 () val tok2 = tokbuf_get_token (buf) in case+ tok2.token_node of // | _ when ptest_fun ( buf, p_dcstkind, ent ) => let val ent1 = synent_decode {token} (ent) val ent2 = pif_fun (buf, bt, err, p_q0margseq, err0) val ent3 = pif_fun (buf, bt, err, p_d0cstdecseq, err0) in if err = err0 then d0ecl_dcstdecs_extern (ent1, ent2, ent3) else synent_null () // end of [if] end // end of [...] // | T_VAR _ => let val () = incby1 () val+~SYNENT3(ent1, ent2, ent3) = pseq3_fun{s0tring,token,d0exp} (buf, bt, err, p_s0tring, p_EQ, p_d0exp) // end of [val] in if err = err0 then d0ecl_extvar2 (tok2, ent1, ent3) else synent_null () // end of [if] end // end of [T_VAR] | T_TYPEDEF _ => let val () = incby1 () val+~SYNENT3(ent1, ent2, ent3) = pseq3_fun{s0tring,token,s0exp} (buf, bt, err, p_s0tring, p_EQ, p_s0exp) // end of [val] in if err = err0 then d0ecl_extype2 (tok2, ent1, ent3) else synent_null () // end of [if] end // end of [T_TYPEDEF] // | _ => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [T_EXTERN] // | T_EXTYPE () => let val () = incby1 () val+~SYNENT3(ent1, ent2, ent3) = pseq3_fun{s0tring,token,s0exp} (buf, bt, err, p_s0tring, p_EQ, p_s0exp) // end of [val] in if err = err0 then d0ecl_extype (tok, ent1, ent3) else synent_null () // end of [if] end // end of [T_EXTYPE] // | T_EXTVAR () => let val () = incby1 () val+~SYNENT3(ent1, ent2, ent3) = pseq3_fun{s0tring,token,d0exp} (buf, bt, err, p_s0tring, p_EQ, p_d0exp) // end of [val] in if err = err0 then d0ecl_extvar (tok, ent1, ent3) else synent_null () // end of [if] end // end of [T_EXTVAR] // | T_STATIC () => let val bt = 0 val () = incby1 () val ent1 = p_dcstkind (buf, bt, err) val ent2 = pif_fun (buf, bt, err, p_q0margseq, err0) val ent3 = pif_fun (buf, bt, err, p_d0cstdecseq, err0) in if err = err0 then d0ecl_dcstdecs_static (ent1, ent2, ent3) else synent_null () // end of [if] end (* end of [T_STATIC] *) // | T_LOCAL () => let val bt = 0 val () = incby1 () val ent2 = p_d0eclseq_fun {d0ecl} (buf, bt, p_d0ecl_dyn) val ent3 = pif_fun (buf, bt, err, p_IN, err0) val ent4 = ( if err = err0 then p_d0eclseq_fun (buf, bt, p_d0ecl_dyn) else list_vt_nil () // end of [if] ) : d0eclist_vt val ent5 = pif_fun (buf, bt, err, p_END, err0) in if err = err0 then d0ecl_local (tok, (l2l)ent2, (l2l)ent4, ent5) else let val () = list_vt_free (ent2) val () = list_vt_free (ent4) in synent_null ((*okay*)) end // end of [else] // end of [if] end // | T_SRPINCLUDE () => let val bt = 0 val () = incby1 () val ent2 = p_s0tring (buf, bt, err) in if err = err0 then d0ecl_include (1(*dyn*), tok, ent2) else synent_null () // end of [if] end // | T_SRPDYNLOAD () => let val bt = 0 val () = incby1 () val ent2 = p_s0tring (buf, bt, err) in if err = err0 then d0ecl_dynload (tok, ent2) else synent_null () end // end of [T_SRPDYNLOAD] // | _ when ptest_fun ( buf, p_srpifkind, ent ) => let val bt = 0 val ent1 = synent_decode {token} (ent) val ent2 = guad0ecl_fun (buf, bt, err, p_d0ecl_dyn) in if err = err0 then d0ecl_guadecl (ent1, ent2) else synent_null () // end of [if] end | _ (*rest*) => let val () = err := err + 1 in synent_null () end (* end of [_] *) // end // end of [p_d0ecl_dyn_tok] implement p_d0ecl_dyn (buf, bt, err) = ptokwrap_fun (buf, bt, err, p_d0ecl_dyn_tok, PE_d0ecl_dyn) // end of [p_d0ecl_dyn] (* ****** ****** *) implement p_d0eclseq_sta (buf, bt, err) = let val xs = p_d0eclseq_fun (buf, bt, p_d0ecl_sta) in (l2l)xs end // end of [p_d0eclseq_sta] implement p_d0eclseq_dyn (buf, bt, err) = let val xs = p_d0eclseq_fun (buf, bt, p_d0ecl_dyn) in (l2l)xs end // end of [p_d0eclseq_dyn] (* ****** ****** *) (* end of [pats_parsing_decl.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lintprgm_print.dats0000644000175000017500000001046513431250607022433 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Time: February 2012 // (* ****** ****** *) staload "./pats_lintprgm.sats" (* ****** ****** *) implement{a} fprint_myintvec (out, iv, n) = let // prval () = lemma_myintvec_params (iv) // end of [prval] // viewtypedef x = myint(a) val (pf | p) = myintvec_takeout (iv) var i: int = 0 viewdef v = int@i var !p_clo = @lam (pf: !v | x: &x): void => let val () = if i > 0 then fprint (out, ", ") val () = i := i + 1 in fprint_myint (out, x) end // end of [var] val n = size1_of_int1 (n) val () = array_ptr_foreach_vclo {v} (view@(i) | !p, !p_clo, n) prval () = myintvecout_addback (pf | iv) in (*nothing*) end // end of [fprint_intvec] implement{a} print_myintvec (x, n) = fprint_myintvec (stdout_ref, x, n) // end of [print_myintvec] (* ****** ****** *) implement{a} fprint_myintveclst (out, xs, n) = case+ xs of | list_vt_cons (!p_x, !p_xs) => let val () = fprint_myintvec (out, !p_x, n) val () = fprint_newline (out) val () = fprint_myintveclst (out, !p_xs, n) in fold@ (xs) end // end of [list_vt] | list_vt_nil () => fold@ (xs) // end of [fprint_myintveclst] implement{a} print_myintveclst (xs, n) = fprint_myintveclst (stdout_ref, xs, n) // end of [print_myintveclst] (* ****** ****** *) implement{a} fprint_icnstr (out, ic, n) = let macdef prstr (s) = fprint_string (out, ,(s)) in // case+ ic of | ICvec (knd, !p_ivec) => let val () = prstr "ICvec(" val () = ( case+ knd of | 1 => prstr "==" | ~1 => prstr "!=" | 2 => prstr ">=" | ~2 => prstr "<<" | _ => fprint_int (out, knd) ) : void // end of [val] val () = prstr "; " val () = fprint_myintvec (out, !p_ivec, n) val () = prstr ")" in fold@ (ic) end // end of [ICvec] | ICveclst (knd, !p_ics) => let val () = prstr "ICveclst(" val () = ( case knd of | 0 => prstr "conj" | 1 => prstr "disj" | _ => fprint_int (out, knd) ) : void // end of [val] val () = prstr ";" val () = prstr "\n" val () = fprint_icnstrlst (out, !p_ics, n) val () = prstr ")" in fold@ (ic) end // end of [ICveclst] // | ICerr _ => let val () = prstr "ICerr(" val () = fprint_string (out, "...") val () = prstr ")" in fold@ (ic) end // end of [ICerr] // end // end of [fprint_icnstr] implement{a} print_icnstr (x, n) = fprint_icnstr (stdout_ref, x, n) // end of [print_icnstr] (* ****** ****** *) implement{a} fprint_icnstrlst (out, ics, n) = ( case+ ics of | list_vt_cons (!p_ic, !p_ics) => let val () = fprint_icnstr (out, !p_ic, n) val () = fprint_newline (out) val () = fprint_icnstrlst (out, !p_ics, n) in fold@ (ics) end // end of [list_vt_cons] | list_vt_nil () => fold@ ics ) // end of [fprint_icnstrlst] implement{a} print_icnstrlst (xs, n) = fprint_icnstrlst (stdout_ref, xs, n) // end of [print_icnstrlst] (* ****** ****** *) (* end of [pats_lintprgm_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_symenv.sats0000644000175000017500000000703713431250607020724 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) staload SYM = "./pats_symbol.sats" typedef symbol = $SYM.symbol (* ****** ****** *) staload SYMMAP = "./pats_symmap.sats" vtypedef symmap (itm:type) = $SYMMAP.symmap (itm) (* ****** ****** *) absvt@ype symenv_vt0ype (itm:type) stadef symenv = symenv_vt0ype (* ****** ****** *) fun symenv_make_nil {itm:type} ( // nothing ) : [l:addr] (symenv(itm) @ l | ptr(l)) // end of [symenv_make_nil] (* ****** ****** *) fun symenv_search {itm:type} // HX: search all (env: &symenv itm, k: symbol):<> Option_vt (itm) // end of [symenv_search] fun symenv_insert {itm:type} // HX: insert first (env: &symenv itm, k: symbol, i: itm):<> void // end of [symenv_insert] (* ****** ****** *) fun symenv_pop{itm:type} (env: &symenv itm):<> symmap (itm) fun symenv_pop_free{itm:type}(env: &symenv itm):<> void fun symenv_push {itm:type} (env: &symenv itm, map: symmap (itm)):<> void fun symenv_push_nil{itm:type}(env: &symenv itm):<> void (* ****** ****** *) fun symenv_top_clear{itm:type}(env: &symenv itm):<> void (* ****** ****** *) // // HX: saving the current env // fun symenv_savecur {itm:type} (env: &symenv itm):<> void // end of [symenv_savecur] // // HX: restoring the last saved env // fun symenv_restore {itm:type} (env: &symenv itm):<> symmap (itm) // end of [symenv_restore] (* ****** ****** *) // // HX: handling: local ... in ... end // fun symenv_localjoin {itm:type} (env: &symenv itm):<> void // end of [symenv_localjoin] // (* ****** ****** *) fun symenv_pervasive_search {itm:type}(env: &symenv itm, k: symbol):<> Option_vt (itm) // end of [symenv_pervasive_search] fun symenv_pervasive_insert {itm:type} (env: &symenv itm, k: symbol, i: itm):<> void // end of [symenv_pervasive_insert] (* ****** ****** *) fun symenv_pervasive_joinwth0 {itm:type} (env: &symenv itm, map: symmap itm):<> void // end of [symenv_pervasive_joinwth0] fun symenv_pervasive_joinwth1 {itm:type} (env: &symenv itm, map: !symmap itm):<> void // end of [symenv_pervasive_joinwth1] (* ****** ****** *) fun fprint_symenv_map {itm:type} ( out: FILEref, env: &symenv itm, f: (FILEref, itm) -> void ) : void // end of [fprint_symenv_map] (* ****** ****** *) (* end of [pats_symenv.sats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_dynexp2_print.dats0000644000175000017500000007460213431250607022173 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: June, 2011 // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _(*anon*) = "./pats_utils.dats" (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) (* ** for T_* constructors *) staload "./pats_lexing.sats" (* ****** ****** *) // staload SYM = "./pats_symbol.sats" staload SYN = "./pats_syntax.sats" // macdef fprint_symbol = $SYM.fprint_symbol // macdef fprint_l0ab = $SYN.fprint_l0ab macdef fprint_i0de = $SYN.fprint_i0de macdef fprint_cstsp = $SYN.fprint_cstsp macdef fprint_d0ynq = $SYN.fprint_d0ynq macdef fprint_macsynkind = $SYN.fprint_macsynkind // (* ****** ****** *) staload "./pats_staexp1.sats" staload "./pats_staexp2.sats" staload "./pats_dynexp2.sats" (* ****** ****** *) implement fprint_d2itm (out, x0) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x0 of // | D2ITMcst d2c => begin prstr "D2ITMcst("; fprint_d2cst (out, d2c); prstr ")" end // end of [D2ITMcst] | D2ITMvar d2v => begin prstr "D2ITMvar("; fprint_d2var (out, d2v); prstr ")" end // end of [D2ITMvar] | D2ITMcon d2cs => { val () = prstr "D2ITMcon(" val () = fprint_d2conlst (out, d2cs) val () = prstr ")" } // end of [D2ITMcon] | D2ITMe1xp e1xp => begin prstr "D2ITMe1xp("; fprint_e1xp (out, e1xp); prstr ")" end // end of [D2ITMe1xp] // | D2ITMsymdef (sym, d2pis) => { val () = prstr "D2ITMsymdef(" val () = fprint_symbol (out, sym) val () = prstr "; " val () = fprint_d2pitmlst (out, d2pis) val () = prstr ")" } // end of [D2ITMsymdef] // | D2ITMmacdef d2m => begin prstr "D2ITMmacdef("; fprint_d2mac (out, d2m); prstr ")" end // end of [D2ITMmacdef] | D2ITMmacvar d2v => begin prstr "D2ITMmacvar("; fprint_d2var (out, d2v); prstr ")" end // end of [D2ITMmacvar] // // end of [case] end // end of [fprint_d2item] (* ****** ****** *) implement print_d2itm (x) = fprint_d2itm (stdout_ref, x) implement prerr_d2itm (x) = fprint_d2itm (stderr_ref, x) (* ****** ****** *) implement fprint_d2itmlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_d2itm) // end of [fprint_d2itmlst] (* ****** ****** *) implement fprint_d2pitm (out, x) = { val D2PITM (pval, d2i) = x val () = fprint_string (out, "D2PITM(") val () = fprint_int (out, pval) val () = fprint_string (out, ", ") val () = fprint_d2itm (out, d2i) val () = fprint_string (out, ")") } // end of [fprint_d2pitm] implement fprint_d2pitmlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_d2pitm) // end of [fprint_d2pitmlst] (* ****** ****** *) // implement fprint_d2sym (out, d2s) = { val () = fprint_d0ynq (out, d2s.d2sym_qua) val () = fprint_symbol (out, d2s.d2sym_sym) } (* end of [d2sym] *) // implement print_d2sym (d2s) = fprint (stdout_ref, d2s) implement prerr_d2sym (d2s) = fprint (stderr_ref, d2s) // (* ****** ****** *) // implement fprint_pckind (out, pck) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ pck of | PCKcon () => prstr "PCKcon" | PCKlincon () => prstr "PCKlincon" | PCKfree () => prstr "PCKfree" | PCKunfold () => prstr "PCKunfold" // end // end of [fprint_pckind] // implement print_pckind (x) = fprint (stdout_ref, x) implement prerr_pckind (x) = fprint (stderr_ref, x) // (* ****** ****** *) implement fprint_pckindopt (out, opt) = $UT.fprintopt (out, opt, fprint_pckind) // end of [fprint_pckindopt] (* ****** ****** *) implement fprint_p2at (out, x0) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x0.p2at_node of // | P2Tany () => { val () = prstr "P2Tany()" } | P2Tvar (d2v) => { val () = prstr "P2Tvar(" val () = fprint_d2var (out, d2v) val () = prstr ")" } | P2Tbool (x) => { val () = prstr "P2Tbool(" val () = fprint_bool (out, x) val () = prstr ")" } | P2Tint (x) => { val () = prstr "P2Tint(" val () = fprint_int (out, x) val () = prstr ")" } | P2Tintrep (rep) => { val () = prstr "P2Tintrep(" val () = fprint_string (out, rep) val () = prstr ")" } | P2Tchar (x) => { val () = prstr "P2Tchar(" val () = fprint_char (out, x) val () = prstr ")" } | P2Tfloat (x) => { val () = prstr "P2Tfloat(" val () = fprint_string (out, x) val () = prstr ")" } | P2Tstring (x) => { val () = prstr "P2Tstring(" val () = fprint_string (out, x) val () = prstr ")" } // | P2Ti0nt (x) => { val () = prstr "P2Ti0nt(" val () = $SYN.fprint_i0nt (out, x) val () = prstr ")" } | P2Tf0loat (x) => { val () = prstr "P2Tf0loat(" val () = $SYN.fprint_f0loat (out, x) val () = prstr ")" } // | P2Tempty () => { val () = prstr "P2Tempty()" } | P2Tcon ( pck, d2c, s2qs, s2f, npf, p2ts ) => { val () = prstr "P2Tcon(" val () = fprint_pckind (out, pck) val () = prstr "; " val () = fprint_d2con (out, d2c) val () = prstr "; " val () = fprint_s2qualst (out, s2qs) val () = prstr "; " val () = fprint_s2exp (out, s2f) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_p2atlst (out, p2ts) val () = prstr ")" } // | P2Tlist (npf, p2ts) => { val () = prstr "P2Tlist(" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_p2atlst (out, p2ts) val () = prstr ")" } // | P2Trec (knd, npf, lp2ts) => { val () = prstr "P2Ttup(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_labp2atlst (out, lp2ts) val () = prstr ")" } | P2Tlst (lin, p2ts) => { val () = prstr "P2Tlst(" val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_p2atlst (out, p2ts) val () = prstr ")" } // | P2Trefas (d2v, p2t) => { val () = prstr "P2Trefas(" val () = fprint_d2var (out, d2v) val () = prstr "; " val () = fprint_p2at (out, p2t) val () = prstr ")" } // | P2Texist (s2vs, p2t) => { val () = prstr "P2Texist(" val () = fprint_s2varlst (out, s2vs) val () = prstr "; " val () = fprint_p2at (out, p2t) val () = prstr ")" } // | P2Tvbox (d2v) => { val () = prstr "P2Tvbox(" val () = fprint_d2var (out, d2v) val () = prstr ")" } // | P2Tann (p2t, s2f) => { val () = prstr "P2Tann(" val () = fprint_p2at (out, p2t) val () = prstr ", " val () = fprint_s2exp (out, s2f) val () = prstr ")" } | P2Terrpat ((*void*)) => prstr "P2Terrpat()" (* | _ => prstr "P2T...(...)" *) // end // end of [fprint_p2at] (* ****** ****** *) implement print_p2at (x) = fprint_p2at (stdout_ref, x) implement prerr_p2at (x) = fprint_p2at (stderr_ref, x) (* ****** ****** *) // implement fprint_p2atlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_p2at) // end of [fprint_p2atlst] // implement print_p2atlst (xs) = fprint_p2atlst (stdout_ref, xs) implement prerr_p2atlst (xs) = fprint_p2atlst (stderr_ref, xs) // (* ****** ****** *) implement fprint_labp2at (out, lp2t) = case+ lp2t of | LABP2ATnorm (l0, p2t) => { val () = fprint_l0ab (out, l0) val () = fprint_string (out, "=") val () = fprint_p2at (out, p2t) } // end of [LABP2ATnorm] | LABP2ATomit (loc) => fprint_string (out, "...") // end of [fprint_labp2at] implement fprint_labp2atlst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_labp2at) // end of [fprint_p2atlst] (* ****** ****** *) implement fprint_d2exp (out, d2e0) = let // macdef prstr(s) = fprint_string(out, ,(s)) // in // case+ d2e0.d2exp_node of // | D2Ecst (d2c) => { val () = prstr "D2Ecst(" val () = fprint_d2cst (out, d2c) val () = prstr ")" } // end of [D2Ecst] | D2Evar (d2v) => { val () = prstr "D2Evar(" val () = fprint_d2var (out, d2v) val () = prstr ")" } // end of [D2Evar] // | D2Eint (x) => { val () = fprint! (out, "D2Eint(", x, ")") } (* end of [D2Eint] *) | D2Eintrep (rep) => { val () = fprint! (out, "D2Eintrep(", rep, ")") } (* end of [D2Eintrep] *) | D2Ebool (x) => { val () = fprint! (out, "D2Ebool(", x, ")") } (* end of [D2Ebool] *) | D2Echar (x) => { val () = fprint! (out, "D2Echar(", x, ")") } (* end of [D2Echar] *) | D2Efloat (rep) => { val () = fprint! (out, "D2Efloat(", rep, ")") } (* end of [D2Efloat] *) | D2Estring (str) => { val () = fprint! (out, "D2Estring(", str, ")") } (* end of [D2Estring] *) // | D2Ei0nt(tok) => { val- T_INT ( _(*base*), rep, _(*sfx*) ) = tok.token_node // val- val () = fprint! (out, "D2Ei0nt(", rep, ")") } (* end of [D2Ei0nt] *) | D2Ec0har(tok) => { val- T_CHAR(chr) = tok.token_node val () = fprint! (out, "D2Ec0har(", chr, ")") } (* end of [D2Ec0har] *) | D2Ef0loat (tok) => { val- T_FLOAT ( _(*base*), rep, _(*sfx*) ) = tok.token_node // val- val () = fprint! (out, "D2Ef0loat(", rep, ")") } (* end of [D2Ef0loat] *) | D2Es0tring (tok) => { val- T_STRING(str) = tok.token_node val () = fprint! (out, "D2Es0tring(", str, ")") } (* end of [D2Es0tring] *) // | D2Ecstsp (csp) => { val () = prstr "D2Ecstsp(" val () = fprint_cstsp (out, csp) val () = prstr ")" } // end of [D2Ecstsp] // | D2Etyrep (s2e) => { val () = prstr "D2Etyrep(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } // end of [D2Etyrep] // | D2Eliteral (d2e) => { val () = prstr "D2Eliteral(" val () = fprint_d2exp (out, d2e) val () = prstr ")" } // end of [D2Eliteral] // | D2Etop () => prstr "D2Etop()" | D2Etop2 (s2e) => { val () = prstr "D2Etop2(" val () = fprint_s2exp (out, s2e) val () = prstr ")" } // end of [D2Etop2] // | D2Eempty () => prstr "D2Eempty()" // | D2Eextval (s2e, name) => { val () = prstr "D2Eextval(" val () = fprint_s2exp (out, s2e) val () = prstr "; " val () = prstr "\"" val () = fprint_string (out, name) val () = prstr "\"" val ((*closing*)) = prstr ")" } // end of [D2Eextval] // | D2Eextfcall (s2e, _fun, _arg) => { val () = prstr "D2Eextfcall(" val () = fprint_s2exp (out, s2e) val () = prstr "; " val () = prstr "\"" val () = fprint_string (out, _fun) val () = prstr "\"" val () = prstr "; " val () = fprint_d2explst (out, _arg) val ((*closing*)) = prstr ")" } (* end of [D2Eextfcall] *) | D2Eextmcall (s2e, _obj, _mtd, _arg) => { val () = prstr "D2Eextmcall(" val () = fprint_s2exp (out, s2e) val () = prstr "; " val () = fprint_d2exp (out, _obj) val () = prstr "; " val () = prstr "\"" val () = fprint_string (out, _mtd) val () = prstr "\"" val () = prstr "; " val () = fprint_d2explst (out, _arg) val ((*closing*)) = prstr ")" } (* end of [D2Eextmcall] *) // | D2Eloopexn (knd) => { val () = prstr "D2Eloopexn(" val () = fprint_int (out, knd) val () = prstr ")" } // end of [D2Eloopexn] // | D2Econ ( d2c, _(*loc*), s2as, npf, _(*loc*), d2es ) => { val () = prstr "D2Econ(" val () = fprint_d2con (out, d2c) val () = prstr "; " val () = $UT.fprintlst (out, s2as, ", ", fprint_s2exparg) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d2explst (out, d2es) val () = prstr ")" } // end of [D2Econ] // | D2Esym (d2s) => { val () = fprint! (out, "D2Esym(", d2s, ")") // end of [val] } // end of [D2Esym] // | D2Efoldat (s2as, d2e) => { val () = prstr "D2Efoldat(" val () = fprint_s2exparglst (out, s2as) val () = prstr "; " val () = fprint_d2exp (out, d2e) val () = prstr ")" } // end of [D2Efoldat] | D2Efreeat (s2as, d2e) => { val () = prstr "D2Efreeat(" val () = fprint_s2exparglst (out, s2as) val () = prstr "; " val () = fprint_d2exp (out, d2e) val () = prstr ")" } // end of [D2Efreeat] // | D2Etmpid (d2e_id, t2mas) => { val () = prstr "D2Etmpid(" val () = fprint_d2exp (out, d2e_id) val () = prstr "; " val () = fpprint_t2mpmarglst (out, t2mas) val () = prstr ")" } (* end of [D2Etmpid] *) // | D2Elet (d2cs, d2e) => { val () = prstr "D2Elet(\n" val () = fprint_d2eclist (out, d2cs) // end of [val] val () = prstr "\n>>in-of-let<<\n" val () = fprint_d2exp (out, d2e) val () = prstr "\n)" } (* end of [D2Elet] *) | D2Ewhere (d2e, d2cs) => { val () = prstr "D2Ewhere(" val () = fprint_d2exp (out, d2e) val () = prstr ";\n" val () = fprint_d2eclist (out, d2cs) val () = prstr "\n)" } (* end of [D2Ewhere] *) // | D2Eapplst (d2e, d2as) => { val () = prstr "D2Eapplst(" val () = fprint_d2exp (out, d2e) val () = prstr "; " val () = fprint_d2exparglst (out, d2as) val () = prstr ")" } (* end of [D2Eapplst] *) // | D2Eifhead ( invres, _test, _then, _else ) => { // D2Eifhead val () = prstr "D2Eifhead(" val () = fprint_d2exp (out, _test) val () = prstr "; " val () = fprint_d2exp (out, _then) val () = prstr "; " val () = fprint_d2expopt (out, _else) val () = prstr ")" } (* end of [D2Eifhead] *) | D2Esifhead ( invres, _test, _then, _else ) => { // D2Esifhead val () = prstr "D2Esifhead(" val () = fprint_s2exp (out, _test) val () = prstr "; " val () = fprint_d2exp (out, _then) val () = prstr "; " val () = fprint_d2exp (out, _else) val () = prstr ")" } (* end of [D2Esifhead] *) // | D2Eifcasehd _ => { val () = prstr "D2Eifcasehd(" val () = fprint_string (out, "...") val () = prstr ")" } // | D2Ecasehead _ => { val () = prstr "D2Ecasehead(" val () = fprint_string (out, "...") val () = prstr ")" } | D2Escasehead _ => { val () = prstr "D2Escasehead(" val () = fprint_string (out, "...") val () = prstr ")" } // | D2Esing (d2e) => fprint! (out, "D2Esing(", d2e, ")") | D2Elist (npf, d2es) => fprint! (out, "D2Elist(", npf, "; ", d2es, ")") (* end of [D2Elist] *) // | D2Elst ( lin, opt, d2es ) => { val () = prstr "D2Elst(" val () = fprint_s2expopt (out, opt) val () = prstr "; " val () = fprint_d2explst (out, d2es) val () = prstr ")" } (* end of [D2Elst] *) | D2Etup ( knd, npf, d2es ) => { val () = prstr "D2Etup(knd=" val () = fprint_int (out, knd) val () = prstr "; npf=" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d2explst (out, d2es) val () = prstr ")" } (* end of [D2Etup] *) | D2Erec ( knd, npf, ld2es ) => { val () = prstr "D2Erec(knd=" val () = fprint_int (out, knd) val () = prstr "; npf=" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_labd2explst (out, ld2es) val () = prstr ")" } (* end of [D2Erec] *) // | D2Eseq(d2es) => fprint! (out, "D2Eseq(", d2es, ")") // | D2Eraise(d2e) => fprint! (out, "D2Eraise(", d2e, ")") // | D2Eeffmask(s2fe, d2e) => fprint! (out, "D2Eeffmask(", s2fe, "; ", d2e, ")") // end of [D2Eeffmask] // | D2Evararg(d2es) => fprint! (out, "D2Evararg(", d2es, ")") // | D2Evcopyenv(knd, d2e) => fprint! (out, "D2Evcopyenv(", knd, "; ", d2e, ")") // | D2Eshowtype(d2e) => fprint! (out, "D2Eshowtype(", d2e, ")") // | D2Etempenver(d2vs) => fprint! (out, "D2Etempenver(", d2vs, ")") // | D2Eselab(d2e, d2ls) => fprint! (out, "D2Eselab(", d2e, "; ", d2ls, ")") // | D2Eptrof(d2e) => fprint! (out, "D2Eptrof(", d2e, ")") // | D2Eviewat(d2e) => fprint! (out, "D2Eviewat(", d2e, ")") // | D2Ederef(_(*!*), d2e) => fprint! (out, "D2Ederef(", d2e, ")") // | D2Eassgn(d2e_l, d2e_r) => fprint! (out, "D2Eassgn(", d2e_l, " := ", d2e_r, ")") | D2Exchng(d2e_l, d2e_r) => fprint! (out, "D2Exchng(", d2e_l, " :=: ", d2e_r, ")") // | D2Earrsub _ => { val () = prstr "D2Earrsub(" val () = fprint_string (out, "...") val () = prstr ")" } | D2Earrpsz _ => { val () = prstr "D2Earrpsz(" val () = fprint_string (out, "...") val () = prstr ")" } | D2Earrinit _ => { val () = prstr "D2Earrinit(" val () = fprint_string (out, "...") val () = prstr ")" } // | D2Eexist (s2a, d2e) => { val () = prstr "D2Eexist(" val () = fprint_s2exparg (out, s2a) val () = prstr "; " val () = fprint_d2exp (out, d2e) val () = prstr ")" } (* end of [D2Eexist] *) // | D2Elam_dyn ( lin, npf, p2ts, d2e ) => { val () = prstr "D2Elam_dyn(" // end of [val] val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_p2atlst (out, p2ts) val () = prstr "; " val () = fprint_d2exp (out, d2e) val () = prstr ")" } // end of [D2Elam_dyn] | D2Elaminit_dyn ( lin, npf, p2ts, d2e ) => { val () = prstr "D2Elaminit_dyn(" // end of [val] val () = fprint_int (out, lin) val () = prstr "; " val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_p2atlst (out, p2ts) val () = prstr "; " val () = fprint_d2exp (out, d2e) val ((*closed*)) = prstr ")" } // end of [D2Elaminit_dyn] // | D2Elam_sta (s2vs, s2ps, d2e) => { val () = prstr "D2Elam_sta(" val () = fprint_s2varlst (out, s2vs) val () = prstr "; " val () = fprint_s2explst (out, s2ps) val () = prstr "; " val () = fprint_d2exp (out, d2e) val ((*closed*)) = prstr ")" } (* end of [D2Elam_sta] *) // | D2Elam_met _ => { val () = prstr "D2Elam_met(" val () = fprint_string (out, "...") val ((*closed*)) = prstr ")" } // end of [D2Elam_met] // | D2Efix _ => { val () = prstr "D2Efix(" val () = fprint_string (out, "...") val ((*closed*)) = prstr ")" } // end of [D2Efix] // | D2Edelay (d2e) => fprint! (out, "D2Edelay(", d2e, ")") // end of [D2Edelay] | D2Eldelay (_eval, _free) => { val () = prstr "D2Eldelay(" val () = fprint_d2exp (out, _eval) val () = prstr "; " val () = fprint_d2expopt (out, _free) val () = prstr ")" } // end of [D2Edelay] // | D2Efor ( i2nv , init, test, post, body ) => { val () = prstr "D2Efor(" val () = fprint_loopi2nv (out, i2nv) val () = prstr "; init=" val () = fprint_d2exp (out, init) val () = prstr "; test=" val () = fprint_d2exp (out, test) val () = prstr "; post=" val () = fprint_d2exp (out, post) val () = prstr "; body=" val () = fprint_d2exp (out, body) val () = prstr ")" } (* end of [D2Efor] *) | D2Ewhile (i2nv, test, body) => { val () = prstr "D2Ewhile(" val () = fprint_loopi2nv (out, i2nv) val () = prstr "; " val () = fprint_d2exp (out, test) val () = prstr "; " val () = fprint_d2exp (out, body) val () = prstr ")" } // end of [D2Ewhile] // | D2Etrywith _ => { val () = prstr "D2Etrywith(" val () = fprint_string (out, "...") val () = prstr ")" } // end of [D2Etrywith] // | D2Eann_type (d2e, s2f) => { val () = prstr "D2Eann_type(" val () = fprint_d2exp (out, d2e) val () = prstr " : " val () = fprint_s2exp (out, s2f) val () = prstr ")" } // end of [D2Eann_type] | D2Eann_seff (d2e, s2fe) => { val () = prstr "D2Eann_seff(" val () = fprint_d2exp (out, d2e) val () = prstr " : " val () = fprint_s2eff (out, s2fe) val () = prstr ")" } // end of [D2Eann_seff] | D2Eann_funclo (d2e, funclo) => { val () = prstr "D2Eann_funclo(" val () = fprint_d2exp (out, d2e) val () = prstr " : " val () = fprint_funclo (out, funclo) val () = prstr ")" } // end of [D2Eann_funclo] // | D2Emac (d2m) => { val () = prstr "D2Emac(" val () = fprint_d2mac (out, d2m) val () = prstr ")" } | D2Emacsyn (knd, d2e) => { val () = prstr "D2Emacsyn(" val () = fprint_macsynkind (out, knd) val () = prstr "; " val () = fprint_d2exp (out, d2e) val () = prstr ")" } // end of [D2Emacsyn] | D2Emacfun (name, d2es) => { val () = prstr "D2Emacfun(" val () = fprint_symbol (out, name) val () = prstr "; " val () = fprint_d2explst (out, d2es) val () = prstr ")" } // end of [D2Emacfun] // | D2Esolassert (d2e_prf) => { val () = prstr "D2Esolassert(" val () = fprint_d2exp(out, d2e_prf) val () = prstr ")" } | D2Esolverify (s2e_prop) => { val () = prstr "D2Esolverify(" val () = fprint_s2exp(out, s2e_prop) val () = prstr ")" } // | D2Eerrexp ((*void*)) => prstr "D2Eerr()" // (* | _ => prstr "D2E...(...)" *) // end // end of [fprint_d2exp] (* ****** ****** *) implement print_d2exp (x) = fprint_d2exp (stdout_ref, x) implement prerr_d2exp (x) = fprint_d2exp (stderr_ref, x) (* ****** ****** *) implement fprint_d2explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_d2exp) // end of [fprint_d2explst] (* ****** ****** *) implement fprint_d2expopt (out, opt) = let in case+ opt of | Some (d2e) => { val () = fprint_string (out, "Some(") // end of [val] val () = fprint_d2exp (out, d2e) val () = fprint_string (out, ")") } // end of [Some] | None () => fprint_string (out, "None()") end // end of [fprint_d2expopt] (* ****** ****** *) implement fprint_labd2exp (out, x) = { val $SYN.DL0ABELED (l0, d2e) = x val () = fprint_l0ab (out, l0) val () = fprint_string (out, "=") val () = fprint_d2exp (out, d2e) } // end of [fprint_labd2exp] implement fprint_labd2explst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_labd2exp) // end of [fprint_labs2explst] (* ****** ****** *) implement fprint_d2exparg (out, x) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x of | D2EXPARGsta (_(*loc*), s2as) => { val () = prstr "D2EXPARGsta(" val () = fprint_s2exparglst (out, s2as) val () = prstr ")" } | D2EXPARGdyn (npf, _(*loc*), d2es) => { val () = prstr "D2EXPARGdyn(" val () = fprint_int (out, npf) val () = prstr "; " val () = fprint_d2explst (out, d2es) val () = prstr ")" } // end // end of [fprint_d2exparg] implement fprint_d2exparglst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_d2exparg) // end of [fprint_d2exparglst] (* ****** ****** *) implement fprint_d2lab (out, x) = let // macdef prstr (s) = fprint_string (out, ,(s)) // in // case+ x.d2lab_node of | D2LABlab (lab) => { val () = prstr "D2LABlab(" val () = $LAB.fprint_label (out, lab) val () = prstr ")" } // end of [D2LABlab] | D2LABind (ind) => { val () = prstr "D2LABind(" val () = $UT.fprintlst (out, ind, ", ", fprint_d2exp) val () = prstr ")" } // end of [D2LABind] // end // end of [fprint_d2lab] implement fprint_d2lablst (out, xs) = $UT.fprintlst (out, xs, ", ", fprint_d2lab) // end of [fprint_d2lablst] (* ****** ****** *) // extern fun fprint_i2nvarg : fprint_type (i2nvarg) // implement fprint_i2nvarg (out, arg) = let // val d2v = arg.i2nvarg_var val opt = arg.i2nvarg_type val () = fprint_d2var (out, d2v) // in // case+ opt of | Some (s2e) => { val () = fprint_string (out, ": ") val () = fprint_s2exp (out, s2e) } // end of [Some] | None () => () // end of [None] // end // end of [fprint_i2nvarg] implement fprint_i2nvarglst (out, args) = $UT.fprintlst (out, args, ", ", fprint_i2nvarg) // end of [fprint_i2nvarglst] implement fprint_i2nvresstate (out, r2es) = let macdef prstr (s) = fprint_string (out, ,(s)) in prstr ("i2nvresstate(svs="); fprint_s2varlst (out, r2es.i2nvresstate_svs); prstr ("; gua="); fprint_s2explst (out, r2es.i2nvresstate_gua); prstr ("; met="); fprint_s2explstopt (out, r2es.i2nvresstate_met); prstr ("; state="); fprint_i2nvarglst (out, r2es.i2nvresstate_arg); prstr (")"); end // end of [fprint_i2nvresstate] implement fprint_loopi2nv (out, i2nv) = let macdef prstr (s) = fprint_string (out, ,(s)) in prstr ("loop2inv(svs="); fprint_s2varlst (out, i2nv.loopi2nv_svs); prstr ("; gua="); fprint_s2explst (out, i2nv.loopi2nv_gua); prstr ("; met="); fprint_s2explstopt (out, i2nv.loopi2nv_met); prstr ("; state="); fprint_i2nvarglst (out, i2nv.loopi2nv_arg); prstr ("; "); fprint_i2nvresstate (out, i2nv.loopi2nv_res); prstr (")"); end // end of [fprint_loopi2nv] (* ****** ****** *) // implement print_d2ecl (x) = fprint_d2ecl (stdout_ref, x) implement prerr_d2ecl (x) = fprint_d2ecl (stderr_ref, x) // implement fprint_d2ecl (out, x0) = let // macdef prstr(s) = fprint_string (out, ,(s)) // in // case+ x0.d2ecl_node of // case+ // | D2Cnone () => prstr "D2Cnone()" // | D2Clist (xs) => { val () = prstr "D2Clist(\n" val () = $UT.fprintlst (out, xs, "\n", fprint_d2ecl) val () = prstr "\n)" } // end of [D2Clist] // | D2Coverload (id, pval, opt) => { val () = prstr "D2Coverload(" val ( ) = fprint_i0de (out, id) val () = prstr "(" val () = fprint_int (out, pval) val () = prstr "); " val () = ( case+ opt of | Some d2i => fprint_d2itm (out, d2i) | None ((*void*)) => fprint_string (out, "*ERROR*") ) : void // end of [val] val () = prstr ")" } // end of [D2Coverload] // | D2Cstacsts (s2cs) => { val () = fprint! (out, "D2Cstacsts(", s2cs, ")") } (* end of [D2Cstacsts] *) | D2Cstacons (knd, s2cs) => { val () = fprint! (out, "D2Cstacons(", knd, "; ", s2cs, ")") } (* end of [D2Cstacons] *) // | D2Cextype (name, s2e) => { val () = fprint! (out, "D2Cextype(", name, " = ", s2e, ")") } (* end of [D2Cextype] *) | D2Cextvar (name, d2e) => { val () = fprint! (out, "D2Cextvar(", name, " = ", d2e, ")") } (* end of [D2Cextvar] *) // | D2Cextcode _ => prstr "D2Cextcode(...)" // | D2Cpragma(xs) => { val () = prstr "D2Cpragma(" val () = $UT.fprintlst (out, xs, ", ", fprint_e1xp) val () = prstr (")") } | D2Ccodegen (knd, xs) => { val () = prstr "D2Ccodegen(" val () = fprint_int (out, knd) val () = prstr "; " val () = $UT.fprintlst (out, xs, ", ", fprint_e1xp) val () = prstr (")") } (* end of [D2Ccodegen] *) // | D2Cdatdecs (knd, s2cs) => { val () = prstr "D2Cdatdecs(" val () = fprint_int (out, knd) val () = prstr "; " val () = $UT.fprintlst (out, s2cs, ", ", fprint_s2cst) val () = prstr ")" } // end of [D2Cdatdecs] // | D2Cdcstdecs (knd, dck, d2cs) => { val () = prstr "D2Cdcstdecs(" val () = fprint_int (out, knd) val () = prstr "; " val () = fprint_dcstkind (out, dck) val () = prstr "; " val () = $UT.fprintlst (out, d2cs, ", ", fprint_d2cst) val () = prstr ")" } // end of [D2Cdcstdecs] // | D2Cimpdec _ => { val () = prstr "D2Cimpdec(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cimpdec] // | D2Cfundecs _ => { val () = prstr "D2Cfundecs(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cfundecs] | D2Cvaldecs _ => { val () = prstr "D2Cvaldecs(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cvaldecs] | D2Cvaldecs_rec _ => { val () = prstr "D2Cvaldecs_rec(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cvaldecs_rec] | D2Cvardecs _ => { val () = prstr "D2Cvardecs(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cvardecs] | D2Cprvardecs _ => { val () = prstr "D2Cprvardecs(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cprvardecs] // | D2Cinclude (knd, d2cs) => { val () = prstr "D2Cinclude(" val () = fprint_int (out, knd) val () = prstr "\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cinclude] // | D2Cstaload _ => { val () = prstr "D2Cstaload(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cstaload] | D2Cstaloadloc _ => { val () = prstr "D2Cstaloadloc(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cstaload] // | D2Cdynload _ => { val () = prstr "D2Cdynload(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Cdynload] // | D2Clocal _ => { val () = prstr "D2Clocal(\n" val () = prstr "..." val () = prstr "\n)" } // end of [D2Clocal] // | D2Cerrdec () => prstr "D2Cerrdec()" // | _ (*rest-of-d2ecl*) => prstr "D2C...(...)" // end // end of [fprint_d2ecl] // implement fprint_d2eclist (out, d2cs) = $UT.fprintlst (out, d2cs, "\n", fprint_d2ecl) // (* ****** ****** *) implement fprint_d2lval (out, x0) = let // macdef prstr(s) = fprint_string (out, ,(s)) // in // case+ x0 of // | D2LVALderef (d2e, d2ls) => { val () = prstr "D2LVALderef(" val () = fprint_d2exp (out, d2e) val () = prstr "; " val () = fprint_d2lablst (out, d2ls) val () = prstr ")" } | D2LVALvar_lin (d2v, d2ls) => { val () = prstr "D2LVALvar_lin(" val () = fprint_d2var (out, d2v) val () = prstr "; " val () = fprint_d2lablst (out, d2ls) val () = prstr ")" } | D2LVALvar_mut (d2v, d2ls) => { val () = prstr "D2LVALvar_mul(" val () = fprint_d2var (out, d2v) val () = prstr "; " val () = fprint_d2lablst (out, d2ls) val () = prstr ")" } | D2LVALarrsub (d2s, d2e, loc, ind) => { val () = prstr "D2LVALarrsub(" val () = fprint_d2exp (out, d2e) val () = prstr "; " val () = $UT.fprintlst (out, ind, ", ", fprint_d2exp) val () = prstr ")" } | D2LVALviewat (d2e) => { val () = prstr "D2LVALviewat(" val () = fprint_d2exp (out, d2e) val () = prstr ")" } | D2LVALnone (d2e) => { val () = prstr "D2LVALnone(" val () = fprint_d2exp (out, d2e) val () = prstr ")" } // end // end of [fprint_d2lval] (* ****** ****** *) // implement print_d2lval (x) = fprint_d2lval (stdout_ref, x) implement prerr_d2lval (x) = fprint_d2lval (stderr_ref, x) // (* ****** ****** *) (* end of [pats_dynexp2_print.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_d2env.dats0000644000175000017500000001047413431250607021562 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2013 // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) staload UT = "./pats_utils.sats" staload _ (*anon*) = "./pats_utils.dats" (* ****** ****** *) staload S2E = "./pats_staexp2.sats" staload D2E = "./pats_dynexp2.sats" typedef d2var = $D2E.d2var overload print with $D2E.print_d2var (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) local datatype d2env = D2ENV of (d2var, hisexp) assume d2env_type = d2env in (* in of [local] *) implement d2env_get_var (d2e) = let val+D2ENV (d2v, _) = d2e in (d2v) end (* end of [d2env_get_var] *) implement d2env_get_type (d2e) = let val+D2ENV (_, hse) = d2e in (hse) end (* end of [d2env_get_type] *) implement d2env_make (d2v, hse) = D2ENV (d2v, hse) end // end of [local] (* ****** ****** *) implement d2var2env (d2v) = let (* val () = println! ("d2var2env: d2v = ", d2v) *) // val opt = d2var_get2_hisexp (d2v) // (* val-Some(hse) = opt val ((*void*)) = println! ("d2var2env: hse = ", hse) *) // val-Some(hse) = opt in d2env_make (d2v, hse) // end of [val] // end // end of [d2var2env] (* ****** ****** *) local staload LS = "libats/SATS/linset_avltree.sats" staload _ = "libats/DATS/linset_avltree.dats" assume d2envset_vtype = $LS.set (d2env) val cmp = lam ( d2e1: d2env, d2e2: d2env ) : int = $D2E.compare_d2var_d2var (d2env_get_var (d2e1), d2env_get_var (d2e2)) // end of [val] in (* in of [local] *) implement d2envset_vt_nil () = $LS.linset_make_nil () implement d2envset_vt_free (xs) = $LS.linset_free (xs) implement d2envset_vt_add (xs, x) = xs where { var xs = xs val _(*replaced*) = $LS.linset_insert (xs, x, cmp) } // end of [d2envset_vt_add] implement d2envset_vt_listize (xs) = $LS.linset_listize (xs) implement d2envset_vt_listize_free (xs) = $LS.linset_listize_free (xs) end // end of [local] (* ****** ****** *) implement d2envlst2set (d2es) = let // fun loop ( d2es: d2envlst, res: d2envset_vt ) : d2envset_vt = let in // case+ d2es of | list_cons (d2e, d2es) => loop (d2es, d2envset_vt_add (res, d2e)) | list_nil () => res // end (* end of [loop] *) // in loop (d2es, d2envset_vt_nil ()) end (* end of [d2envlst2set] *) (* ****** ****** *) implement fprint_d2env (out, d2e) = let // val d2v = d2env_get_var (d2e) val hse = d2env_get_type (d2e) // val () = $D2E.fprint_d2var (out, d2v) val () = ( fprint_string (out, "("); fprint_hisexp (out, hse); fprint_string (out, ")") ) // in // nothing end // end of [fprint_d2env] (* ****** ****** *) implement fprint_d2envlst (out, d2es) = let in $UT.fprintlst (out, d2es, ", ", fprint_d2env) end // end of [fprint_d2envlst] (* ****** ****** *) implement fprint_d2envlstopt (out, opt) = let in // case+ opt of | Some (d2es) => fprint! (out, "Some(", d2es, ")") // end of [Some] | None ((*void*)) => fprint! (out, "None()") // end // end of [fprint_d2envlstopt] (* ****** ****** *) (* end of [pats_ccomp_d2env.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_namespace.dats0000644000175000017500000001407313431250607021316 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: May, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload "./pats_namespace.sats" (* ****** ****** *) // vtypedef fenvlst_vt = List_vt (filenv) vtypedef fenvlstlst_vt = List_vt (fenvlst_vt) vtypedef savedlst_vt = List_vt @(fenvlst_vt, fenvlstlst_vt) // (* ****** ****** *) // fn fenvlst_vt_free ( ns: fenvlst_vt ) :<> void = list_vt_free (ns) // fun fenvlstlst_vt_free {n:nat} .. (nss: list_vt (fenvlst_vt, n)):<> void = ( case+ nss of | ~list_vt_nil ((*void*)) => () | ~list_vt_cons (ns, nss) => let val () = fenvlst_vt_free (ns) in fenvlstlst_vt_free (nss) end // end of [list_vt_cons] ) (* end of [fenvlstlst_vt_free] *) // (* ****** ****** *) local val the_fenvlst = ref (list_vt_nil) val the_fenvlstlst = ref (list_vt_nil) val the_savedlst = ref (list_vt_nil) in (* in of [local] *) implement the_namespace_add (x) = () where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlst) // end of [val] val () = !p := list_vt_cons (x, !p) } // end of [the_namespace_add] (* ****** ****** *) implement the_namespace_search {a} (f) = let // typedef fenvlst = List (filenv) typedef fenvlstlst = List (fenvlst) // fun auxlst ( f: !filenv - Option_vt a, ns: fenvlst ) : Option_vt a = ( case+ ns of | list_cons (n, ns) => ( case+ f (n) of ~None_vt () => auxlst (f, ns) | ans => ans ) // end of [list_cons] | list_nil ((*void*)) => None_vt () ) (* end of [auxlst] *) // fun auxlstlst ( f: !filenv - Option_vt a, nss: fenvlstlst ) : Option_vt a = ( case+ nss of | list_cons (ns, nss) => ( case+ auxlst (f, ns) of | ~None_vt () => auxlstlst (f, nss) | ans => ans ) // end of [list_cons] | list_nil () => None_vt () // end of [list_nil] ) (* end of [auxlstlst] *) // val r_ns = __cast (the_fenvlst) where { extern castfn __cast (r: ref (fenvlst_vt)): ref (fenvlst) } (* end of [where] *) // end of [val] // val r_nss = __cast (the_fenvlstlst) where { extern castfn __cast (r: ref (fenvlstlst_vt)): ref (fenvlstlst) } (* end of [where] *) // end of [val] // in // case+ auxlst (f, !r_ns) of | ~None_vt () => auxlstlst (f, !r_nss) | ans => ans // end // end of [the_namespace_search] (* ****** ****** *) implement the_namespace_pop () = let val ns = ns where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlstlst) val-~list_vt_cons (ns, nss) = !p val () = !p := nss } val ns0 = ns0 where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlst) val ns0 = !p val () = !p := ns } val () = fenvlst_vt_free (ns0) in // nothing end // end of [the_namespace_pop] (* ****** ****** *) implement the_namespace_push () = let // val ns = ns where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlst) val ns = !p val () = !p := list_vt_nil () } (* end of [val] *) // val () = () where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlstlst) val () = !p := list_vt_cons (ns, !p) } (* end of [val] *) // in // nothing end // end of [the_namespace_push] (* ****** ****** *) implement the_namespace_localjoin () = let // val ns2 = ns2 where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlstlst) val-~list_vt_cons (ns1, nss) = !p val () = fenvlst_vt_free (ns1) val-~list_vt_cons (ns2, nss) = nss val () = !p := nss } (* end of [val] *) // val () = () where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlst) val () = !p := list_vt_append (!p, ns2) } (* end of [val] *) // in // nothing end // end of [the_namespace_localjoin] (* ****** ****** *) implement the_namespace_save () = () where { // val x = x where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlst) val x = !p; val () = !p := list_vt_nil () } (* end of [val] *) // val xs = xs where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlstlst) val xs = !p; val () = !p := list_vt_nil () } (* end of [val] *) // val () = () where { val (vbox pf | p) = ref_get_view_ptr (the_savedlst) val () = !p := list_vt_cons ((x, xs), !p) } (* end of [val] *) // } (* end of [the_namespace_save] *) (* ****** ****** *) implement the_namespace_restore () = () where { // val x = x where { val (vbox pf | p) = ref_get_view_ptr (the_savedlst) val-~list_vt_cons (x, xs) = !p; val () = (!p := xs) } (* end of [val] *) // val () = () where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlst) val () = fenvlst_vt_free (!p); val () = (!p := x.0) } (* end of [val] *) // val () = () where { val (vbox pf | p) = ref_get_view_ptr (the_fenvlstlst) val () = fenvlstlst_vt_free (!p); val () = (!p := x.1) } (* end of [val] *) // } (* end of [the_namespace_restore] *) end // end of [local] (* ****** ****** *) (* end of [pats_namespace.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_staexp1.dats0000644000175000017500000004442413431250607020752 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: April, 2011 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload LEX = "./pats_lexing.sats" (* ****** ****** *) staload "./pats_effect.sats" staload "./pats_syntax.sats" staload "./pats_staexp1.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) fn prerr_error1_loc (loc: location): void = ( $LOC.prerr_location loc; prerr ": error(1)" ) // end of [prerr_error1_loc] (* ****** ****** *) implement e1xp_make (loc, node) = '{ e1xp_loc= loc, e1xp_node= node } // end of [e1xp_make] implement e1xp_ide (loc, id) = e1xp_make (loc, E1XPide (id: symbol)) implement e1xp_int (loc, i) = e1xp_make (loc, E1XPint (i)) implement e1xp_intrep (loc, rep) = e1xp_make (loc, E1XPintrep (rep)) // end of [e1xp_intrep] implement e1xp_char (loc, c) = e1xp_make (loc, E1XPchar (c: char)) implement e1xp_string (loc, str) = e1xp_make (loc, E1XPstring (str)) implement e1xp_float (loc, rep) = e1xp_make (loc, E1XPfloat rep) (* ****** ****** *) implement e1xp_i0nt (loc, x) = let val-$LEX.T_INT (base, rep, _(*sfx*)) = x.token_node // end of [val] in e1xp_intrep (loc, rep) end // end of [e1xp_i0nt] implement e1xp_c0har (loc, x) = let val-$LEX.T_CHAR (c) = x.token_node in e1xp_char (loc, c) end // end of [e1xp_c0har] implement e1xp_s0tring (loc, x) = let val-$LEX.T_STRING (s) = x.token_node in e1xp_string (loc, s) end // end of [e1xp_s0tring] implement e1xp_f0loat (loc, x) = let val-$LEX.T_FLOAT (_(*bas*), rep, _(*sfx*)) = x.token_node // end of [val] in e1xp_float (loc, rep) end // end of [e1xp_s0tring] (* ****** ****** *) // implement e1xp_v1al (loc, v) = e1xp_make (loc, E1XPv1al (v)) // (* ****** ****** *) implement e1xp_none (loc) = e1xp_make (loc, E1XPnone ()) implement e1xp_undef (loc) = e1xp_make (loc, E1XPundef ()) (* ****** ****** *) implement e1xp_app ( loc, e_fun, loc_arg, es_arg ) = e1xp_make (loc, E1XPapp (e_fun, loc_arg, es_arg)) implement e1xp_fun (loc, arg, body) = e1xp_make (loc, E1XPfun (arg, body)) // end of [e1xp_fun] (* ****** ****** *) // implement e1xp_if (loc, _cond, _then, _else) = e1xp_make (loc, E1XPif (_cond, _then, _else)) // (* ****** ****** *) // implement e1xp_eval (loc, e) = e1xp_make (loc, E1XPeval (e: e1xp)) // implement e1xp_list (loc, es) = e1xp_make (loc, E1XPlist (es: e1xplst)) // (* ****** ****** *) implement e1xp_err (loc) = e1xp_make (loc, E1XPerr(*void*)) (* ****** ****** *) implement e1xp_true (loc) = e1xp_int (loc, 1) implement e1xp_false (loc) = e1xp_int (loc, 0) (* ****** ****** *) implement v1al_true = V1ALint (1) implement v1al_false = V1ALint (0) (* ****** ****** *) implement effcst_nil = EFFCSTnil () implement effcst_all = EFFCSTall () implement effcst_ntm = EFFCSTset (effset_ntm, list_nil) implement effcst_exn = EFFCSTset (effset_exn, list_nil) implement effcst_ref = EFFCSTset (effset_ref, list_nil) implement effcst_wrt = EFFCSTset (effset_wrt, list_nil) implement effcst_contain (efc, eff) = case+ efc of | EFFCSTall () => true | EFFCSTnil () => false | EFFCSTset (efs, evs) => effset_ismem (efs, eff) // end of [effcst_contain] implement effcst_contain_ntm (efc) = effcst_contain (efc, effect_ntm) (* ****** ****** *) (* ** HX: functions for constructing sorts *) macdef MINUSGT = $SYM.symbol_MINUSGT overload = with $SYM.eq_symbol_symbol fn s0rtq_is_none (q: s0rtq): bool = case+ q.s0rtq_node of S0RTQnone () => true | _ => false // end of [s0rtq_is_none] (* ****** ****** *) implement s1rt_arrow (loc) = let val q = s0rtq_none (loc) in '{ s1rt_loc= loc, s1rt_node= S1RTqid (q, MINUSGT) } end // end of [s1rt_arrow] (* '->' is a special sort constructor *) implement s1rt_is_arrow (s1t) = case+ s1t.s1rt_node of | S1RTqid (q, id) => if s0rtq_is_none q then id = MINUSGT else false // end of [S1RTqid] | _ => false // end of [_] // end of [s1rt_is_arrow] (* ****** ****** *) implement s1rt_app ( loc, s1t_fun, s1ts_arg ) = '{ s1rt_loc= loc, s1rt_node= S1RTapp (s1t_fun, s1ts_arg) } // end of [s1rt_app] implement s1rt_fun (loc, s1t1, s1t2) = let val s1ts = list_cons (s1t1, list_cons (s1t2, list_nil)) in '{ s1rt_loc= loc, s1rt_node= S1RTapp (s1rt_arrow (loc), s1ts) } end // end of [s1rt_fun] implement s1rt_ide (loc, id) = let val q = s0rtq_none (loc) in '{ s1rt_loc= loc, s1rt_node= S1RTqid (q, id) } end // end of [s1rt_ide] implement s1rt_list (loc, s1ts) = case+ s1ts of | list_cons (s1t, list_nil ()) => s1t // singleton elimination | _ => '{ s1rt_loc= loc, s1rt_node= S1RTlist s1ts } // end of [_] // end of [s1rt_list] implement s1rt_qid (loc, q, id) = '{ s1rt_loc= loc, s1rt_node= S1RTqid (q, id) } // end of [s1rt_qid] (* implement s1rt_tup (loc, s1ts) = '{ s1rt_loc= loc, s1rt_node= S1RTtup s1ts } // end of [s1rt_tup] *) implement s1rt_type (loc, knd) = '{ s1rt_loc= loc, s1rt_node= S1RTtype (knd) } implement s1rt_err (loc) = '{ s1rt_loc= loc, s1rt_node= S1RTerr () } (* ****** ****** *) implement s1rtpol_make (loc, s1t, pol) = '{ s1rtpol_loc= loc, s1rtpol_srt= s1t, s1rtpol_pol= pol } // end of [s1rtpol_make] (* ****** ****** *) implement d1atsrtcon_make (loc, name, arg) = '{ d1atsrtcon_loc= loc, d1atsrtcon_sym= name, d1atsrtcon_arg= arg } // end of [d1atsrtcon_make] implement d1atsrtdec_make (loc, name, conlst) = '{ d1atsrtdec_loc= loc, d1atsrtdec_sym= name, d1atsrtdec_con= conlst } // end of [d1atsrtdec_make] (* ****** ****** *) implement s1arg_make (loc, sym, res) = '{ s1arg_loc= loc, s1arg_sym= sym, s1arg_srt= res } implement s1marg_make (loc, s1as) = '{ s1marg_loc= loc, s1marg_arg= s1as } (* ****** ****** *) implement a1srt_make (loc, sym, srt) = '{ a1srt_loc= loc, a1srt_sym= sym, a1srt_srt= srt } implement a1msrt_make (loc, arg) = '{ a1msrt_loc= loc, a1msrt_arg= arg } (* ****** ****** *) implement sp1at_cstr (loc, q, id, arg) = '{ sp1at_loc= loc, sp1at_node= SP1Tcstr (q, id, arg) } // end of [sp1at_cstr] (* ****** ****** *) implement s1exp_ide (loc, id) = '{ s1exp_loc= loc, s1exp_node= S1Eide (id) } (* end of [s1exp_ide] *) implement s1exp_sqid (loc, sq, id) = '{ s1exp_loc= loc, s1exp_node= S1Esqid (sq, id) } (* end of [s1exp_sqid] *) (* ****** ****** *) implement s1exp_int (loc, int) = '{ s1exp_loc= loc, s1exp_node= S1Eint (int) } (* end of [s1exp_int] *) implement s1exp_intrep (loc, rep) = '{ s1exp_loc= loc, s1exp_node= S1Eintrep (rep) } (* end of [s1exp_intrep] *) implement s1exp_i0nt (loc, x) = let val-$LEX.T_INT (base, rep, _(*sfx*)) = x.token_node // end of [val] in s1exp_intrep (loc, rep) end // end of [s1exp_i0nt] (* ****** ****** *) implement s1exp_char (loc, c) = '{ s1exp_loc= loc, s1exp_node= S1Echar (c) } // end of [s1exp_char] implement s1exp_c0har (loc, x) = let val-$LEX.T_CHAR (c) = x.token_node in '{ s1exp_loc= loc, s1exp_node= S1Echar (c) } end // end of [s1exp_c0har] (* ****** ****** *) implement s1exp_float (loc, x) = '{ s1exp_loc= loc, s1exp_node= S1Efloat (x) } (* end of [s1exp_float] *) implement s1exp_f0loat (loc, x) = let val-$LEX.T_FLOAT (base, rep, _(*sfx*)) = x.token_node in '{ s1exp_loc= loc, s1exp_node= S1Efloat (rep) } end // end of [s1exp_f0loat] (* ****** ****** *) implement s1exp_string (loc, x) = '{ s1exp_loc= loc, s1exp_node= S1Estring (x) } (* end of [s1exp_string] *) implement s1exp_s0tring (loc, x) = let val-$LEX.T_STRING (str) = x.token_node in '{ s1exp_loc= loc, s1exp_node= S1Estring (str) } end // end of [s1exp_s0tring] (* ****** ****** *) // implement s1exp_extype (loc, name, arg) = '{ s1exp_loc= loc, s1exp_node= S1Eextype (name, arg) } // implement s1exp_extkind (loc, name, arg) = '{ s1exp_loc= loc, s1exp_node= S1Eextkind (name, arg) } // (* ****** ****** *) implement s1exp_app ( loc, _fun, loc_arg, _arg ) = '{ s1exp_loc= loc , s1exp_node= S1Eapp (_fun, loc_arg, _arg) } // end of [s1exp_app] implement s1exp_lam ( loc, arg, res, body ) = '{ s1exp_loc= loc, s1exp_node= S1Elam (arg, res, body) } implement s1exp_imp ( loc, ft, is_lin, is_prf, efc ) = '{ s1exp_loc= loc, s1exp_node= S1Eimp (ft, is_lin, is_prf, efc) } (* ****** ****** *) implement s1exp_list (loc, s1es) = ( case+ s1es of // // HX: singleton elimination is performed // | list_cons (s1e, list_nil()) => s1e | _ (*non-sing*) => '{ s1exp_loc= loc, s1exp_node= S1Elist (~1(*npf*), s1es) } // end of [non-sing] ) (* end of [s1exp_list] *) implement s1exp_list2 (loc, s1es1, s1es2) = let val npf = list_vt_length s1es1 val s1es = list_vt_append (s1es1, s1es2) val s1es = l2l (s1es) in '{ s1exp_loc= loc, s1exp_node= S1Elist (npf, s1es) } end // end of [s1exp_list2] implement s1exp_npf_list (loc, npf, s1es) = ( // if npf >= 0 then '{ s1exp_loc= loc, s1exp_node= S1Elist (npf, s1es) } (* end of [then] *) else s1exp_list (loc, s1es) // ) // end of [s1exp_npf_list] (* ****** ****** *) implement s1exp_top (loc, knd, s1e) = '{ s1exp_loc= loc, s1exp_node= S1Etop (knd, s1e) } (* ****** ****** *) // implement s1exp_invar (loc, knd, s1e) = '{ s1exp_loc= loc, s1exp_node= S1Einvar (knd, s1e) } // implement s1exp_trans (loc, s1e1, s1e2) = '{ s1exp_loc= loc, s1exp_node= S1Etrans (s1e1, s1e2) } // (* ****** ****** *) implement s1exp_tyarr ( loc, s1e_elt, s1es_dim ) = '{ s1exp_loc= loc , s1exp_node= S1Etyarr (s1e_elt, s1es_dim) } (* end of [s1exp_tyarr] *) implement s1exp_tytup (loc, knd, npf, s1es) = '{ s1exp_loc= loc, s1exp_node= S1Etytup (knd, npf, s1es) } (* ****** ****** *) implement s1exp_tyrec ( loc, knd, npf, ls1es ) = '{ s1exp_loc= loc, s1exp_node= S1Etyrec (knd, npf, ls1es) } // end of [s1exp_tyrec] implement s1exp_tyrec_ext ( loc, name, npf, ls1es ) = '{ s1exp_loc= loc, s1exp_node= S1Etyrec_ext (name, npf, ls1es) } // end of [s1exp_tyrec_ext] (* ****** ****** *) // implement s1exp_uni ( loc, s1qs, s1e ) = '{ s1exp_loc= loc, s1exp_node= S1Euni (s1qs, s1e) } (* end of [s1exp_uni] *) // implement s1exp_exi ( loc, knd, s1qs, s1e ) = '{ s1exp_loc= loc, s1exp_node= S1Eexi (knd, s1qs, s1e) } (* end of [s1exp_exi] *) // (* ****** ****** *) implement s1exp_ann (loc, s1e, s1t) = '{ s1exp_loc= loc, s1exp_node= S1Eann (s1e, s1t) } (* ****** ****** *) implement s1exp_d2ctype (loc, d2ctp) = '{ s1exp_loc= loc, s1exp_node= S1Ed2ctype (d2ctp) } (* ****** ****** *) implement s1exp_err (loc) = '{ s1exp_loc= loc, s1exp_node= S1Eerr () } (* ****** ****** *) implement labs1exp_make (l, name, s1e) = SL0ABELED (l, name, s1e) // end of [labs1exp_make] (* ****** ****** *) implement s1rtext_srt (loc, s1t) = '{ s1rtext_loc= loc, s1rtext_node= S1TEsrt (s1t) } implement s1rtext_sub (loc, sym, s1te, s1ps) = '{ s1rtext_loc= loc, s1rtext_node= S1TEsub (sym, s1te, s1ps) } (* ****** ****** *) implement s1qua_prop (loc, s1p) = '{ s1qua_loc= loc, s1qua_node= S1Qprop (s1p) } implement s1qua_vars (loc, ids, s1te) = '{ s1qua_loc= loc, s1qua_node= S1Qvars (ids, s1te) } (* ****** ****** *) implement s1exp_make_v1al (loc0, v0) = let in // case+ v0 of // | V1ALint(i) => s1exp_int (loc0, i) // | V1ALchar(c) => s1exp_char (loc0, c) // | V1ALstring(str) => s1exp_string (loc0, str) // | _(*unsupported*) => s1exp_err (loc0) // end // end of [s1exp_make_v1al] (* ****** ****** *) implement s1exp_make_e1xp (loc0, e0) = let // fun aux ( e0: e1xp ) : s1exp = let (* val () = ( print "s1exp_make_e1xp: aux: e0 = "; print_e1xp (e0); print_newline () ) // end of [val] *) in case+ e0.e1xp_node of // | E1XPapp (e1, loc_arg, es2) => s1exp_app (loc0, aux e1, loc_arg, auxlst es2) // end of [E1XPapp] // | E1XPide(id) => s1exp_ide (loc0, id) // | E1XPint(int) => s1exp_int (loc0, int) | E1XPintrep(rep) => s1exp_intrep (loc0, rep) // | E1XPchar(chr) => s1exp_char (loc0, chr) // | E1XPfloat(rep) => s1exp_float (loc0, rep) // | E1XPstring(str) => s1exp_string (loc0, str) // | E1XPv1al(v1) => s1exp_make_v1al (loc0, v1) // | E1XPlist(es) => s1exp_list (loc0, auxlst (es)) // | _ (*rest-of-E1XP*) => s1exp_err(loc0) where { val () = prerr_error1_loc (loc0) val () = prerrln! ( ": the expression cannot be translated into a legal static expression." ) (* end of [val] *) } (* end of [rest-of-E1XP] *) end (* end of [aux] *) // and auxlst ( es0: e1xplst ) : s1explst = case+ es0 of | list_cons (e, es) => list_cons (aux e, auxlst es) | list_nil () => list_nil () (* end of [auxlst] *) // in aux (e0) end // end of [s1exp_make_e1xp] (* ****** ****** *) implement e1xp_make_s1exp (loc0, s1e0) = let // fun aux ( s1e0: s1exp ) : e1xp = case+ s1e0.s1exp_node of | S1Eide (id) => e1xp_ide (loc0, id) | S1Eint (int) => e1xp_int (loc0, int) | S1Eintrep (rep) => e1xp_intrep (loc0, rep) | S1Echar (char) => e1xp_char (loc0, char) | S1Eapp (s1e_fun, _(*loc*), s1es_arg) => let val e_fun = aux (s1e_fun); val es_arg = auxlst (s1es_arg) in e1xp_app (loc0, e_fun, loc0, es_arg) end | S1Elist (_(*npf*), s1es) => e1xp_list (loc0, auxlst s1es) | _ => e1xp_err (loc0) (* end of [aux] *) // and auxlst ( s1es0: s1explst ) : e1xplst = case+ s1es0 of | list_cons (s1e, s1es) => list_cons (aux s1e, auxlst s1es) | list_nil () => list_nil () (* end of [auxlst] *) // in aux (s1e0) end // end of [e1xp_make_s1exp] (* ****** ****** *) implement wths1explst_is_none (wths1es) = case+ wths1es of | WTHS1EXPLSTcons_some _ => false | WTHS1EXPLSTcons_none (wths1es) => wths1explst_is_none (wths1es) | WTHS1EXPLSTnil () => true // end of [wths1explst_is_none] implement wths1explst_reverse (wths1es) = let fun loop ( wths1es: wths1explst, res: wths1explst ) : wths1explst = case+ wths1es of | WTHS1EXPLSTcons_some (knd, refval, s1e, wths1es) => loop (wths1es, WTHS1EXPLSTcons_some (knd, refval, s1e, res)) | WTHS1EXPLSTcons_none (wths1es) => loop (wths1es, WTHS1EXPLSTcons_none res) | WTHS1EXPLSTnil () => res // end of [WTHS1EXPLSTnil] // end of [loop] in loop (wths1es, WTHS1EXPLSTnil ()) end // end of [wths1explst_reverse] (* ****** ****** *) implement q1marg_make (loc, arg) = '{ q1marg_loc= loc, q1marg_arg= arg } // end of [q1marg_make] (* ****** ****** *) implement i1mparg_sarglst (xs) = I1MPARG_sarglst (xs) implement i1mparg_svararglst (xs) = I1MPARG_svararglst (xs) (* ****** ****** *) implement t1mpmarg_make (loc, arg) = '{ t1mpmarg_loc= loc, t1mpmarg_arg= arg } // end of [t1mpmarg_make] (* ****** ****** *) implement s1exparg_one (loc) = '{ s1exparg_loc= loc, s1exparg_node= S1EXPARGone () } implement s1exparg_all (loc) = '{ s1exparg_loc= loc, s1exparg_node= S1EXPARGall () } implement s1exparg_seq (loc, xs) = '{ s1exparg_loc= loc, s1exparg_node= S1EXPARGseq (xs) } (* ****** ****** *) implement m1acarg_make_dyn (loc, darg) = '{ m1acarg_loc= loc, m1acarg_node= M1ACARGdyn (darg) } // end of [m1acarg_make_sta] implement m1acarg_make_sta (loc, sarg) = '{ m1acarg_loc= loc, m1acarg_node= M1ACARGsta (sarg) } // end of [m1acarg_make_sta] (* ****** ****** *) implement s1rtdef_make ( loc, sym, s1te ) = '{ s1rtdef_loc= loc , s1rtdef_sym= sym , s1rtdef_def= s1te } // end of [s1rtdef_make] (* ****** ****** *) implement s1tacst_make ( loc, fil, sym , arg, res, extdef ) = '{ s1tacst_loc= loc , s1tacst_sym= sym , s1tacst_fil= fil , s1tacst_arg= arg , s1tacst_res= res , s1tacst_extdef= extdef } // end of [s1tacst_make] implement s1tacon_make ( loc, fil, sym, arg, def ) = '{ s1tacon_loc= loc , s1tacon_sym= sym , s1tacon_fil= fil , s1tacon_arg= arg , s1tacon_def= def } // end of [s1tacon_make] (* ****** ****** *) (* // // HX-2012-05-23: removed // implement s1tavar_make ( loc, sym, srt ) = '{ s1tavar_loc= loc , s1tavar_sym= sym , s1tavar_srt= srt } // end of [s1tavar_make] *) (* ****** ****** *) implement t1kindef_make ( loc, id, loc_id, def ) = '{ t1kindef_loc= loc , t1kindef_sym= id , t1kindef_loc_id= loc_id , t1kindef_def= def } // end of [t1kindef_make] (* ****** ****** *) implement s1expdef_make ( loc, id, loc_id, arg, res, def ) = '{ s1expdef_loc= loc , s1expdef_sym= id , s1expdef_loc_id= loc_id , s1expdef_arg= arg , s1expdef_res= res , s1expdef_def= def } // end of [s1expdef_make] implement s1aspdec_make ( loc, qid, arg, res, def ) = '{ s1aspdec_loc= loc , s1aspdec_qid= qid , s1aspdec_arg= arg , s1aspdec_res= res , s1aspdec_def= def } // end of [s1aspdec_make] (* ****** ****** *) implement d1atcon_make ( loc, id, qua, npf, arg, ind ) = '{ d1atcon_loc= loc , d1atcon_sym= id , d1atcon_qua= qua , d1atcon_npf= npf , d1atcon_arg= arg , d1atcon_ind= ind } // end of [d1atcon_make] implement d1atdec_make ( loc, fil , id0, arg, con ) = '{ d1atdec_loc= loc , d1atdec_fil= fil , d1atdec_sym= id0 , d1atdec_arg= arg , d1atdec_con= con } (* end of [d1atdec_make] *) implement e1xndec_make ( loc, fil , id0, qua, npf, arg ) = '{ e1xndec_loc= loc , e1xndec_fil= fil , e1xndec_sym= id0 , e1xndec_qua= qua , e1xndec_npf= npf , e1xndec_arg= arg } (* end of [e1xndec_make] *) (* ****** ****** *) implement d1cstdec_make ( loc, fil , id0, s1e, extdef ) = '{ d1cstdec_loc= loc , d1cstdec_fil= fil , d1cstdec_sym= id0 , d1cstdec_type= s1e , d1cstdec_extdef= extdef } // end of [d1cstdec_make] (* ****** ****** *) (* end of [pats_staexp1.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_lexing.dats0000644000175000017500000017160113431250607020651 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start Time: March, 2011 // (* ****** ****** *) // // HX: The implementation of lexing is plainly ad hoc // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload UTL = "./pats_utils.sats" staload LOC = "./pats_location.sats" (* ****** ****** *) staload "./pats_lexbuf.sats" staload "./pats_lexing.sats" (* ****** ****** *) // #define u2c char_of_uchar // #define i2c char_of_int #define c2i int_of_char // #define i2uc uchar_of_int #define uc2i int_of_uchar // #define i2u uint_of_int #define u2i int_of_uint // #define l2u uint_of_lint #define sz2i int1_of_size1 // (* ****** ****** *) macdef T_INT_oct (x, sfx) = T_INT (8, ,(x), ,(sfx)) macdef T_INT_dec (x, sfx) = T_INT (10, ,(x), ,(sfx)) macdef T_INT_hex (x, sfx) = T_INT (16, ,(x), ,(sfx)) (* ****** ****** *) // // HX: some shorthand function names // macdef posincby1 (pos) = $LOC.position_incby_count (,(pos), 1u) macdef posdecby1 (pos) = $LOC.position_decby_count (,(pos), 1u) macdef posincbyc (pos, i) = $LOC.position_incby_char (,(pos), ,(i)) // (* ****** ****** *) fun xdigit_get_val (c: char): int = ( // case+ 0 of | _ when c <= '9' => c - '0' | _ when c <= 'F' => 10 + (c - 'A') // HX: 'A' = 10 | _ when c >= 'f' => 10 + (c - 'a') // HX: 'a' = 10 | _ (* illegal *) => (0) // HX: default for illegals // ) (* end of [xdigit_get_val] *) (* ****** ****** *) fun char_for_escaped (c: char): char = ( case+ c of | 'n' => '\012' (* newline *) | 't' => '\011' (* horizontal tab *) | 'a' => '\007' (* alert *) | 'b' => '\010' (* backspace *) | 'v' => '\013' (* vertical tab *) | 'f' => '\014' (* line feed *) | 'r' => '\015' (* carriage return *) | _ (*rest-of-char*) => c ) (* end of [char_for_escaped] *) (* ****** ****** *) (* // // HX-2011: // There are various "irregular" tokens in ATS, // which complicate lexing considerably; [lexsym] is // primarily introduced for handling such tokens. // *) datatype lexsym = // | LS_NONE of () // dummy // | LS_VAL of () // for val+ and val- | LS_CASE of () // for case+ and case- // | LS_ADDR of () // for addr@ // | LS_FOLD of () // for fold@ | LS_FREE of () // for free@ // | LS_FIX of () // for fix@ | LS_LAM of () // for lam@ | LS_LLAM of () // for llam@ // (* | LS_REF of () // 'ref@' is removed *) // | LS_T of () // for t@ype | LS_VT of () // for vt@ype // | LS_PROP of () // for prop+ and prop- | LS_VIEW of () // for view+ and view- and view@ // | LS_TYPE of () // for type+ and type- | LS_TBOX of () // for tbox+ and tbox- | LS_TFLT of () // for tflt+ and tflt- // | LS_TYPES of () // for types+ and types- // | LS_VTYPE of () // for vtype+ and vtype- | LS_VTBOX of () // for vtbox+ and vtbox- | LS_VTFLT of () // for vtflt+ and vtflt- // | LS_T0YPE of () // for t0ype+ and t0ype- | LS_VT0YPE of () // for vt0ype+ and vt0ype- // | LS_VIEWT of () // for viewt@ype | LS_VIEWTYPE of () // for viewtype+ and viewtype- | LS_VIEWT0YPE of () // for viewt0ype+ and viewt0ype- // | LS_ABST of () // for abst@ype | LS_ABSVT of () // for absvt@ype | LS_ABSVIEWT of () // for absviewt@ype // | LS_FOR of () // for for* | LS_WHILE of () // for while* // (* | LS_LTBANG of () // "" // not a symbol // | LS_SLASH2 of () // "//" line comment | LS_SLASHSTAR of () // "/*" block comment | LS_SLASH4 of () // "////" // rest-of-file comment // // end of [lexsym] (* ****** ****** *) local // // HX: // linear-probing based HB // seems very unwieldy to use // %{^ typedef ats_ptr_type string ; typedef ats_ptr_type lexsym ; %} // end of [%{^] staload "libats/SATS/hashtable_linprb.sats" staload _(*anon*) = "libats/DATS/hashtable_linprb.dats" // #define HASHTBLSZ 53 // symintr encode decode // abstype string_t = $extype"string" extern castfn string_encode (x: string):<> string_t extern castfn string_decode (x: string_t):<> string overload encode with string_encode overload decode with string_decode // abstype lexsym_t = $extype"lexsym" extern castfn lexsym_encode (x: lexsym):<> lexsym_t extern castfn lexsym_decode (x: lexsym_t):<> lexsym overload encode with lexsym_encode overload decode with lexsym_decode // typedef key = string_t typedef itm = lexsym_t typedef keyitm = (key, itm) // implement keyitem_nullify (x) = () where { extern prfun __assert (x: &keyitm? >> keyitm): void prval () = __assert (x) val () = x.0 := $UN.cast{key} (null) prval () = Opt_some (x) } (* end of [keyitem_nullify] *) // implement keyitem_isnot_null (x) = b where { extern prfun __assert1 (x: &Opt(keyitm) >> keyitm): void prval () = __assert1 (x) val b = $UN.cast{ptr} (x.0) <> null val [b:bool] b = bool1_of_bool (b) extern prfun __assert2 (x: &keyitm >> opt (keyitm, b)): void prval () = __assert2 (x) } (* end of [keyitem_isnot_null] *) // implement hash_key (x, _) = string_hash_33 (decode(x)) implement equal_key_key (x1, x2, _) = compare (decode(x1), decode(x2)) = 0 // end of [equal_key_key] // val hash0 = $UN.cast{hash(key)} (null) val eqfn0 = $UN.cast{eqfn(key)} (null) val [l:addr] ptbl = hashtbl_make_hint (hash0, eqfn0, HASHTBLSZ) // fun insert ( ptbl: !HASHTBLptr (key, itm, l) , k: string, i: lexsym ) : void = () where { val k = encode (k); val i = encode (i) var res: lexsym_t val _ = hashtbl_insert (ptbl, k, i, res) prval () = opt_clear (res) } // end of [insert] // val () = insert (ptbl, "val", LS_VAL) val () = insert (ptbl, "case", LS_CASE) // val () = insert (ptbl, "addr", LS_ADDR) // val () = insert (ptbl, "fold", LS_FOLD) val () = insert (ptbl, "free", LS_FREE) // val () = insert (ptbl, "lam", LS_LAM) val () = insert (ptbl, "llam", LS_LLAM) val () = insert (ptbl, "fix", LS_FIX) // (* val () = insert (ptbl, "ref", LS_REF) // 'ref@' removed *) // val () = insert (ptbl, "t", LS_T) val () = insert (ptbl, "vt", LS_VT) // val () = insert (ptbl, "prop", LS_PROP) val () = insert (ptbl, "view", LS_VIEW) // val () = insert (ptbl, "type", LS_TYPE) val () = insert (ptbl, "tbox", LS_TBOX) val () = insert (ptbl, "tflt", LS_TFLT) // val () = insert (ptbl, "types", LS_TYPES) // val () = insert (ptbl, "vtype", LS_VTYPE) val () = insert (ptbl, "vtbox", LS_VTBOX) val () = insert (ptbl, "vtflt", LS_VTFLT) // val () = insert (ptbl, "t0ype", LS_T0YPE) // = t@ype val () = insert (ptbl, "vt0ype", LS_VT0YPE) // = vt@ype // val () = insert (ptbl, "viewt", LS_VIEWT) val () = insert (ptbl, "viewtype", LS_VIEWTYPE) val () = insert (ptbl, "viewt0ype", LS_VIEWT0YPE) // = viewt@ype // val () = insert (ptbl, "abst", LS_ABST) val () = insert (ptbl, "absvt", LS_ABSVT) val () = insert (ptbl, "absviewt", LS_ABSVIEWT) // val () = insert (ptbl, "for", LS_FOR) val () = insert (ptbl, "while", LS_WHILE) // val rtbl = HASHTBLref_make_ptr {key,itm} (ptbl) // in (* in of [local] *) fun IDENT_alp_get_lexsym (x: string): lexsym = let val (fptbl | ptbl) = HASHTBLref_takeout_ptr (rtbl) var res: itm? val b = hashtbl_search (ptbl, encode(x), res) prval () = fptbl (ptbl) in // if b then let prval () = opt_unsome {itm} (res) in decode (res) end else let prval () = opt_unnone {itm} (res) in LS_NONE (*void*) end // end of [if] // end // end of [IDENT_alp_get_lexsym] end // end of [local] (* ****** ****** *) local // staload STRING = "libc/SATS/string.sats" // for [string.cats] // extern fun substrncmp (x1: string, i1: int, x2: string, i2: int): int = "mac#atslib_substrcmp" // macdef slash2_test (x, i) = (substrncmp (,(x), ,(i), "//", 0) = 0) // in (*in-of-local*) fun IDENT_sym_get_lexsym (x: string): lexsym = let // val x = string1_of_string (x) // in // if string_isnot_atend (x, 0) then let val x0 = x[0] in // case+ x0 of (* | '<' => if string_isnot_atend (x, 1) then let val x1 = x[1] in case+ x1 of | '!' => LS_LTBANG () | '$' => LS_LTDOLLAR () | _ (*rest*) => LS_NONE () end // end of [then] else LS_NONE () // end of [else] *) | '?' => if string_isnot_atend (x, 1) then let val x1 = x[1] in case+ x1 of | '>' => LS_QMARKGT () | _ => LS_NONE () end // end of [then] else LS_NONE () // end of [else] | '/' => if string_isnot_atend (x, 1) then let val x1 = x[1] in case+ x1 of | '*' => LS_SLASHSTAR () | '/' => if slash2_test (x, 2) then LS_SLASH4 () else LS_SLASH2 () | _ (*rest*) => LS_NONE () end // end of [then] else LS_NONE () // end of [else] | _ (*rest-of-char*) => LS_NONE () // end // end of [then] else LS_NONE () // end of [else] // end // end of [IDENT_sym_get_lexsym] end // end of [local] (* ****** ****** *) // fun BLANK_test (c: char): bool = char_isspace (c) // (* ****** ****** *) fun IDENTFST_test (c: char): bool = ( case+ 0 of | _ when ('a' <= c andalso c <= 'z') => true | _ when ('A' <= c andalso c <= 'Z') => true | _ when c = '_' => true | _ (*rest-of-char*) => false ) (* end of [IDENTFST_test] *) fun IDENTRST_test (c: char): bool = ( case+ 0 of | _ when ('a' <= c andalso c <= 'z') => true | _ when ('A' <= c andalso c <= 'Z') => true | _ when ('0' <= c andalso c <= '9') => true | _ when c = '_' => true | _ when c = '\'' => true | _ when c = '$' => true | _ (*rest-of-char*) => false ) (* end of [IDENTRST_test] *) (* ****** ****** *) fun SYMBOLIC_test (c: char): bool = let // val symbolic = "%&+-./:=@~`^|*!?<>#" // (* val symbolic = "%&+-./:=@~`^|*!?<>#$" *) in string_contains(symbolic, c) end // end of [SYMBOLIC_test] (* ****** ****** *) // fun xX_test (c: char): bool = if c = 'x' then true else c = 'X' // (* ****** ****** *) // (* fun OCTAL_test (c: char): bool = ( if ('0' <= c) then (c <= '7') else false // end of [if] ) *) // (* ****** ****** *) // fun DIGIT_test (c: char): bool = char_isdigit (c) fun XDIGIT_test (c: char): bool = char_isxdigit (c) // (* ****** ****** *) // fun INTSP_test (c: char): bool = string_contains ("LlUu", c) fun FLOATSP_test (c: char): bool = string_contains ("fFlL", c) // (* ****** ****** *) // fun eE_test (c: char): bool = if c = 'e' then true else c = 'E' // fun pP_test (c: char): bool = if c = 'p' then true else c = 'P' // (* ****** ****** *) // fun SIGN_test (c: char): bool = if c = '+' then true else c = '-' // (* ****** ****** *) local // #define ESCAPED "ntvbrfa\\\?\'\"()[]{}" // in(*in-of-local*) // fun ESCHAR_test (c: char): bool = string_contains (ESCAPED, c) // end // end of [local] (* ****** ****** *) (* // // HX: f('\n') must be false! // *) extern fun ftesting_opt ( buf: &lexbuf , pos: &position, f: char -> bool ) : uint // end of [ftesting_opt] implement ftesting_opt (buf, pos, f) = let val i = lexbufpos_get_char (buf, pos) in // if ( i >= 0 ) then ( if f ((i2c)i) then let val () = posincby1 (pos) in 1u end else 0u // end of [if] ) else 0u // end of [if] // end // end of [ftesting_opt] (* ****** ****** *) // // HX: f('\n') must be false! // extern fun ftesting_seq0 ( buf: &lexbuf , pos: &position, f: char -> bool ) : uint // end of [ftesting_seq0] implement ftesting_seq0 ( buf, pos, f ) = diff where { // fun loop ( buf: &lexbuf , nchr: uint, f: char -> bool ) : uint = let val i = lexbuf_get_char (buf, nchr) in // if i >= 0 then ( if f ((i2c)i) then loop (buf, succ(nchr), f) else nchr // end of [if] ) (* end of [then] *) else nchr // end of [else] // end // end of [loop] // val nchr0 = lexbufpos_diff (buf, pos) // val nchr1 = loop (buf, nchr0, f) // val diff = nchr1 - nchr0 val () = if diff > 0u then $LOC.position_incby_count (pos, diff) else () // end of [if] // } (* end of [ftesting_seq0] *) (* ****** ****** *) // // HX: f('\n') must be false! // extern fun ftesting_seq1 ( buf: &lexbuf , pos: &position, f: char -> bool ) : int // end of [ftesting_seq1] implement ftesting_seq1 (buf, pos, f) = let // val i = lexbufpos_get_char (buf, pos) // in // if ( i >= 0 ) then ( if f((i2c)i) then let val () = posincby1 (pos) val nchr = ftesting_seq0 (buf, pos, f) in (u2i)nchr + 1 end // end of [then] else (~1) // end of [else] // end of [if] ) else (~1) // end of [if] // end // end of [ftesting_seq1] (* ****** ****** *) // // HX-2011-03-07: // this one cannot be based on [ftesting_seq0] // as '\n' is considered a blank character // fun testing_blankseq0 ( buf: &lexbuf, pos: &position ) : uint = diff where { fun loop ( buf: &lexbuf, pos: &position, nchr: uint ) : uint = let val i = lexbuf_get_char (buf, nchr) in if ( i >= 0 ) then ( if BLANK_test ((i2c)i) then let val () = posincbyc (pos, i) in loop (buf, pos, succ(nchr)) end else nchr // end of [if] ) else nchr // end of [if] end // end of [loop] val nchr = lexbufpos_diff (buf, pos) val diff = loop (buf, pos, nchr) - nchr } (* end of testing_blankseq0] *) (* ****** ****** *) extern fun testing_litchar ( buf: &lexbuf, pos: &position, lit: char ) : int // end of [testing_litchar] implement testing_litchar ( buf, pos, lit ) = res where { val i = lexbufpos_get_char (buf, pos) val res = ( if i >= 0 then (if (i2c)i = lit then 1 else ~1) else ~1 ) : int // end of [val] val () = if res >= 0 then posincbyc (pos, i) } (* end of [testing_litchar] *) (* ****** ****** *) // // HX: [lit] contains no '\n'! // extern fun testing_literal ( buf: &lexbuf, pos: &position, lit: string ) : int // end of [testing_literal] implement testing_literal (buf, pos, lit) = res where { // val [n:int] lit = string1_of_string (lit) // fun loop {k:nat | k <= n} .. ( buf: &lexbuf , nchr: uint, lit: string n, k: size_t k ) : int = let val isnot = string_isnot_atend (lit, k) in // if isnot then let val i = lexbuf_get_char (buf, nchr) in // if ( i >= 0 ) then ( if ((i2c)i = lit[k]) then loop (buf, succ(nchr), lit, k+1) else ~1 // end of [if] ) else (~1) // end of [if] // end // end of [then] else (sz2i)k // end of [else] // end // end of [loop] // val nchr0 = lexbufpos_diff (buf, pos) val res = loop (buf, nchr0, lit, 0) val () = ( // if res >= 0 then $LOC.position_incby_count (pos, (i2u)res) else () // ) (* end of [val] *) // } // end of [testing_literal] (* ****** ****** *) fun testing_identrstseq0 (buf: &lexbuf, pos: &position): uint = ftesting_seq0 (buf, pos, IDENTRST_test) // end of [testing_identrstseq0] fun testing_symbolicseq0 (buf: &lexbuf, pos: &position): uint = ftesting_seq0 (buf, pos, SYMBOLIC_test) // end of [testing_symbolicseq0] (* ****** ****** *) // fun testing_octalseq0 ( buf: &lexbuf, pos: &position ) : uint = diff where { // fun f3 ( buf: &lexbuf, nchr: uint, c: char ) : bool = ( case+ 0 of | _ when ( '0' <= c && c <= '7' ) => true | _ when ( '8' <= c && c <= '9' ) => true where { // // HX: continue-with-error // var pos1: position val () = lexbuf_get_position (buf, pos1) val () = $LOC.position_incby_count (pos1, nchr) var pos2: position val () = lexbuf_get_position (buf, pos2) val () = $LOC.position_incby_count (pos2, succ(nchr)) val loc = $LOC.location_make_pos_pos (pos1, pos2) val err = lexerr_make (loc, LE_DIGIT_oct_89 (c)) val ((*void*)) = the_lexerrlst_add (err) } (* end of [8--9] *) | _ (*non-DIGIT*) => false ) // fun loop ( buf: &lexbuf, nchr: uint ) : uint = let val i = lexbuf_get_char (buf, nchr) in if i >= 0 then if f3 (buf, nchr, (i2c)i) then loop (buf, succ(nchr)) else nchr // end of [if] else nchr // end of [if] end // end of [loop] // val nchr0 = lexbufpos_diff (buf, pos) val nchr1 = loop (buf, nchr0) val diff = nchr1 - nchr0 val () = if diff > 0u then $LOC.position_incby_count (pos, diff) else () // end of [val] } (* end of [testing_octalseq0] *) // (* ****** ****** *) // fun testing_digitseq0 ( buf: &lexbuf, pos: &position ) : uint = ftesting_seq0 (buf, pos, DIGIT_test) // fun testing_xdigitseq0 ( buf: &lexbuf, pos: &position ) : uint = ftesting_seq0 (buf, pos, XDIGIT_test) // (* ****** ****** *) // fun testing_intspseq0 ( buf: &lexbuf, pos: &position ) : uint = ftesting_seq0 (buf, pos, INTSP_test) // (* ****** ****** *) // fun testing_floatspseq0 ( buf: &lexbuf, pos: &position ) : uint = ftesting_seq0 (buf, pos, FLOATSP_test) // (* ****** ****** *) fun testing_fexponent ( buf: &lexbuf, pos: &position ) : int = let val i = lexbufpos_get_char (buf, pos) in // if i >= 0 then let val c = (i2c)i in // if eE_test(c) then let val () = posincby1 (pos) // val k1 = ftesting_opt (buf, pos, SIGN_test) val k2 = testing_digitseq0 (buf, pos) // err: k2 = 0 // val () = if k2 = 0u then { val loc = lexbufpos_get_location (buf, pos) val err = lexerr_make (loc, LE_FEXPONENT_empty) val ((*void*)) = the_lexerrlst_add (err) } (* end of [if] *) // end of [val] // in u2i (k1+k2+1u) end // end of [then] else (~1) // end of [else] // end // end of [then] else (~1) // end of [else] // end // end of [testing_fexponent] (* ****** ****** *) fun testing_fexponent_bin ( buf: &lexbuf, pos: &position ) : int = let // val i = lexbufpos_get_char (buf, pos) // in // if i >= 0 then let val c = (i2c)i in // if pP_test(c) then let val () = posincby1 (pos) // val k1 = ftesting_opt (buf, pos, SIGN_test) val k2 = testing_digitseq0 (buf, pos) // err: k2 = 0 // val () = if k2 = 0u then { val loc = lexbufpos_get_location (buf, pos) val err = lexerr_make (loc, LE_FEXPONENT_empty) val ((*void*)) = the_lexerrlst_add (err) } (* end of [if] *) // end of [val] // in u2i (k1+k2+1u) end // end of [then] else (~1) // end of [else] // end // end of [then] else (~1) // end of [else] // end // end of [testing_fexponent_bin] (* ****** ****** *) fun testing_deciexp ( buf: &lexbuf, pos: &position ) : int = let // YD: if the integral part is empty, then the fractional part is not, // and the other way too. There is no need to check it. // val i = lexbufpos_get_char (buf, pos) // in // if i >= 0 then let val c = (i2c)i in // if c = '.' then let val () = posincby1 (pos) val k1 = testing_digitseq0 (buf, pos) val k2 = testing_fexponent (buf, pos) val k12 = ( if k2 >= 0 then (u2i)k1 + k2 else (u2i)k1 ) : int // end of [val] // (* val () = if (k12 = 0) then { val loc = lexbufpos_get_location (buf, pos) val err = lexerr_make (loc, LE_FEXPONENT_empty) val ((*void*)) = the_lexerrlst_add (err) } (* end of [if] *) // end of [val] *) // in k12 + 1 end // end of [then] else ~1 // end of [else] // end // end of [then] else ~1 // end of [else] // end // end of [testing_deciexp] (* ****** ****** *) fun testing_hexiexp ( buf: &lexbuf , pos: &position, int_size: uint ) : int = let // val i = lexbufpos_get_char (buf, pos) // in // if i >= 0 then let val c = (i2c)i in // if c = '.' then let val () = posincby1 (pos) // // YD: nb of digits after the dot: // val k1 = testing_xdigitseq0 (buf, pos) val k2 = testing_fexponent_bin (buf, pos) val () = if (int_size = 0u && k1 = 0u) then { // YD-2018-07-10: fix hex float format. val loc = lexbufpos_get_location (buf, pos) val err = lexerr_make (loc, LE_FINTFRAC_missing) val ((*void*)) = the_lexerrlst_add (err) } (* end of [if] *) in if k2 >= 0 then (u2i)k1 + k2 + 1 else let // YD-2018-07-09: fix hex float format. val loc = lexbufpos_get_location (buf, pos) val err = lexerr_make (loc, LE_FEXPONENT_missing) val ((*void*)) = the_lexerrlst_add (err) in (u2i)k1 + 1 end // end of [else] end // end of [then] else (~1) // end of [else] // end // end of [then] else (~1) // end of [else] // end // end of [testing_hexiexp] (* ****** ****** *) implement token_make (loc, node) = '{ token_loc= loc, token_node= node } (* end of [token_make] *) (* ****** ****** *) fun lexbufpos_token_reset ( buf: &lexbuf , pos: &position , node: token_node ) : token = let // val loc = lexbufpos_get_location (buf, pos) // val () = lexbuf_set_position (buf, pos) // in token_make (loc, node) end // end of [lexbufpos_token_reset] (* ****** ****** *) fun lexbufpos_lexerr_reset ( buf: &lexbuf , pos: &position , node: lexerr_node ) : token = let // val loc = lexbufpos_get_location (buf, pos) val ((*void*)) = the_lexerrlst_add (lexerr_make (loc, node)) val ((*void*)) = lexbuf_set_position (buf, pos) // in token_make (loc, T_ERR) end // end of [lexbufpos_lexerr_reset] (* ****** ****** *) // extern fun lexing_FLOAT_deciexp (buf: &lexbuf, pos: &position): token extern fun lexing_FLOAT_hexiexp (buf: &lexbuf, pos: &position): token // (* ****** ****** *) // extern fun lexing_INT_dec (buf: &lexbuf, pos: &position): token extern fun lexing_INT_oct (buf: &lexbuf, pos: &position, k1: uint): token extern fun lexing_INT_hex (buf: &lexbuf, pos: &position, k1: uint): token // (* ****** ****** *) // extern fun lexing_IDENT_alp (buf: &lexbuf, pos: &position, k1: uint): token extern fun lexing_IDENT2_alp {l:agz} (buf: &lexbuf, pos: &position, str: strptr l): token // extern fun lexing_IDENT_sym (buf: &lexbuf, pos: &position, k1: uint): token // extern fun lexing_IDENT_dlr (buf: &lexbuf, pos: &position, k1: uint): token extern fun lexing_IDENT_srp (buf: &lexbuf, pos: &position, k1: uint): token // (* ****** ****** *) // extern fun lexing_COMMENT_line (buf: &lexbuf, pos: &position): token extern fun lexing_COMMENT_block_c (buf: &lexbuf, pos: &position): token extern fun lexing_COMMENT_block_ml {l:pos} (buf: &lexbuf, pos: &position, xs: list_vt (position, l)): token extern fun lexing_COMMENT_rest (buf: &lexbuf, pos: &position): token // (* ****** ****** *) // extern fun lexing_EXTCODE (buf: &lexbuf, pos: &position): token extern fun lexing_EXTCODE_knd (buf: &lexbuf, pos: &position, knd: int): token // (* ****** ****** *) implement lexing_COMMENT_line (buf, pos) = let // val i = lexbufpos_get_char (buf, pos) // in // if ( i >= 0 ) then ( // case+ (i2c)i of | '\n' => ( lexbufpos_token_reset (buf, pos, T_COMMENT_line) ) (* end of [EOL] *) | _ (*non-EOL*) => let val () = posincby1 (pos) in lexing_COMMENT_line (buf, pos) end (* end of [_] *) // ) else lexbufpos_token_reset (buf, pos, T_COMMENT_line) // end // end of [lexing_COMMENT_line] (* ****** ****** *) implement lexing_COMMENT_block_c (buf, pos) = let // fun feof ( buf: &lexbuf, pos: &position ) : token = lexbufpos_lexerr_reset (buf, pos, LE_COMMENT_block_unclose) // end of [feof] // val i = lexbufpos_get_char (buf, pos) // in // if i >= 0 then ( case+ (i2c)i of | '*' when testing_literal (buf, pos, "*/") >= 0 => lexbufpos_token_reset (buf, pos, T_COMMENT_block) // end of ['*'] | _ => let val () = posincbyc (pos, i) in lexing_COMMENT_block_c (buf, pos) end // end of [_] ) else feof (buf, pos) // end of [if] // end // end of [lexing_COMMENT_block_c] (* ****** ****** *) implement lexing_COMMENT_block_ml (buf, pos, xs) = let // fun feof {l:pos} ( buf: &lexbuf , pos: &position , xs: list_vt (position, l) ) : token = let val list_vt_cons(!p_x, _) = xs val loc = $LOC.location_make_pos_pos(!p_x, pos) prval () = fold@ (xs) val () = list_vt_free (xs) val err = lexerr_make (loc, LE_COMMENT_block_unclose) val () = the_lexerrlst_add (err) val () = lexbuf_set_position (buf, pos) in token_make (loc, T_ERR) end // end of [feof] // val i = lexbufpos_get_char (buf, pos) // in // if ( i >= 0 ) then ( case+ (i2c)i of | '\(' => let var x: position val () = $LOC.position_copy (x, pos) val ans = testing_literal (buf, pos, "(*") in if ans >= 0 then lexing_COMMENT_block_ml (buf, pos, list_vt_cons (x, xs)) else let val () = posincby1 (pos) in lexing_COMMENT_block_ml (buf, pos, xs) end // end of [if] end // end of ['\('] | '*' when testing_literal (buf, pos, "*)") >= 0 => let val+~list_vt_cons (_, xs) = xs in case+ xs of | list_vt_cons _ => let prval () = fold@ (xs) in lexing_COMMENT_block_ml (buf, pos, xs) end // end of [list_vt_cons] | ~list_vt_nil () => lexbufpos_token_reset (buf, pos, T_COMMENT_block) // end of [list_vt_nil] (* end of [case] *) end // end of ['*'] | _ => let val () = posincbyc (pos, i) in lexing_COMMENT_block_ml (buf, pos, xs) end // end of [_] ) else feof (buf, pos, xs) // end of [if] // end // end of [lexing_COMMENT_block_ml] (* ****** ****** *) implement lexing_COMMENT_rest (buf, pos) = let val i = lexbufpos_get_char (buf, pos) in if i >= 0 then let val () = posincbyc (pos, i) in lexing_COMMENT_rest (buf, pos) end else ( lexbufpos_token_reset (buf, pos, T_COMMENT_rest) ) // end of [if] end // end of [lexing_COMMENT_rest] (* ****** ****** *) local // #define DYNBEG 1 #define DYNMID 10 #define DYNEND 99 // in (* in-of-local *) fun extcode_nskip (knd: int): uint = let in // case+ 0 of | _ when knd = 0 => 3u | _ when knd = DYNBEG => 3u | _ when knd < DYNMID => 4u | _ when knd = DYNMID => 2u | _ when knd < DYNEND => 4u | _ when knd = DYNEND => 3u | _ (*rest*) => 0u // HX: deadcode // end // end of [extcode_nskip] (* ****** ****** *) implement lexing_EXTCODE (buf, pos) = let // val i = lexbufpos_get_char (buf, pos) // in // if (i >= 0) then let val c = (i2c)i val knd = ( case+ c of | '#' => 0 // HX: sta | '^' => DYNBEG // HX: dyn-beg | '$' => DYNEND // HX: dyn-end | _ (*dyn*) => DYNMID // HX: dyn-mid ) : int // end of [val] // (* val () = println! ("lexing_EXTCODE: knd = ", knd) // end of [val] *) // var knd: int = knd // val () = if knd != DYNMID then posincby1(pos) // end of [val] // val () = if knd = DYNBEG then let // for ^2 val i2 = lexbufpos_get_char (buf, pos) val c2 = (i2c)i2 in if c2 = '2' then (knd := knd + 1; posincby1(pos)) end // end of [val] val () = if knd = DYNEND then let // for $2 val i2 = lexbufpos_get_char (buf, pos) val c2 = (i2c)i2 in if c2 = '2' then (knd := knd - 1; posincby1(pos)) end // end of [val] // in lexing_EXTCODE_knd (buf, pos, knd) end // end of [then] else ( lexing_EXTCODE_knd (buf, pos, DYNMID) ) (* end of [else] *) // end // end of [lexing_EXTCODE] (* ****** ****** *) implement lexing_EXTCODE_knd (buf, pos, knd) = let // val i = lexbufpos_get_char(buf, pos) // in // if (i >= 0) then let val c = (i2c)i in case+ c of | '%' when // HX: '%}' closes // external code only if it initiates a newline $LOC.position_get_ncol(pos) = 0 => let val res = testing_literal(buf, pos, "%}") in if res >= 0 then let val loc = lexbufpos_get_location(buf, pos) val nchr = extcode_nskip(knd) // HX: number of skipped // val len = lexbufpos_diff(buf, pos) - nchr - 2u // %}: 2u val str = lexbuf_get_substrptr1 (buf, nchr, len) // val ((*set*)) = lexbuf_set_position (buf, pos) // in token_make (loc, T_EXTCODE(knd, string_of_strptr(str))) end else let val () = posincby1 (pos) in lexing_EXTCODE_knd (buf, pos, knd) end // end of [if] end // end of ['%' when ...] | _ => let val () = posincbyc (pos, i) in lexing_EXTCODE_knd (buf, pos, knd) end // end of [_] end // end of [then] else ( lexbufpos_lexerr_reset (buf, pos, LE_EXTCODE_unclose) ) (* end of [else] *) // end // end of [lexing_EXTCODE_knd] end // end of [local] (* ****** ****** *) extern fun lexing_LPAREN (buf: &lexbuf, pos: &position): token implement lexing_LPAREN (buf, pos) = let // val i = lexbufpos_get_char (buf, pos) // in case+ (i2c)i of | '*' => let val () = posincby1 (pos) val poslst = list_vt_cons{position}(?, list_vt_nil) val list_vt_cons (!p_x, _) = poslst val () = lexbuf_get_position (buf, !p_x) prval () = fold@ (poslst) in lexing_COMMENT_block_ml (buf, pos, poslst) end // end of ['*'] | _ => lexbufpos_token_reset (buf, pos, T_LPAREN) end // end of [lexing_LPAREN] (* ****** ****** *) extern fun lexing_COMMA (buf: &lexbuf, pos: &position): token implement lexing_COMMA (buf, pos) = let val i = lexbufpos_get_char (buf, pos) in case+ (i2c)i of | '\(' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, T_COMMALPAREN) end // end of ['('] | _ => lexbufpos_token_reset (buf, pos, T_COMMA) end // end of [lexing_COMMA] (* ****** ****** *) extern fun lexing_AT (buf: &lexbuf, pos: &position): token implement lexing_AT (buf, pos) = let // val i = lexbufpos_get_char (buf, pos) // in // case+ (i2c)i of // | '\(' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, T_ATLPAREN) end | '\[' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, T_ATLBRACKET) end | '\{' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, T_ATLBRACE) end // | _ (*rest*) => let val k = testing_symbolicseq0 (buf, pos) // end of [val] in lexing_IDENT_sym (buf, pos, succ(k)) end // end of [_(*rest*)] // end of [case] // end // end of [lexing_AT] (* ****** ****** *) extern fun lexing_COLON (buf: &lexbuf, pos: &position): token implement lexing_COLON (buf, pos) = let // val i = lexbufpos_get_char (buf, pos) // in // case+ (i2c)i of // | '<' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, T_COLONLT) end // end of ['<'] | _ (*rest*) => let val k = testing_symbolicseq0 (buf, pos) // end of [val] in lexing_IDENT_sym (buf, pos, succ(k)) end // end of [_(*rest*)] // end // end of [lexing_COLON] (* ****** ****** *) fun FLOATDOT_test (buf: &lexbuf, c: char): bool = if lexbuf_get_nspace (buf) > 0 then DIGIT_test (c) else false // end of [testing_float_dot] (* ****** ****** *) fun string2int (x: string) = let // fun loop {n:int} {i:nat | i <= n} .. ( x: string n, i: size_t i, res: int ) :<> int = if string_isnot_atend (x, i) then let val c = x[i]; val res = 10 * res + (c - '0') in loop (x, i+1, res) end else res // end of [if] // end of [loop] // val x = string1_of_string (x) // in loop (x, 0, 0) end // end of [string2int] (* ****** ****** *) extern fun lexing_DOT (buf: &lexbuf, pos: &position): token implement lexing_DOT (buf, pos) = let val i = lexbufpos_get_char (buf, pos) val c = (i2c)i val nspace = lexbuf_get_nspace (buf) in // case+ 0 of // | _ when SYMBOLIC_test (c) => let val () = posincby1 (pos) val k0 = testing_symbolicseq0 (buf, pos) // end of [val] in lexing_IDENT_sym (buf, pos, k0+2u) end // HX: a symbolic token // | _ when FLOATDOT_test (buf, c) => let val () = posdecby1 (pos) val k0 = testing_deciexp (buf, pos) in if k0 >= 0 then lexing_FLOAT_deciexp (buf, pos) else lexbufpos_token_reset (buf, pos, T_ERR) // end of [if] end // end of [nspace > 0] // | _ when DIGIT_test (c) => let val () = posincby1 (pos) val k0 = testing_digitseq0 (buf, pos) val str = lexbuf_get_substrptr1 (buf, 1u, k0+1u) val int = string2int ($UN.castvwtp1{string}(str)) val () = strptr_free (str) in lexbufpos_token_reset (buf, pos, T_DOTINT (int)) end // end of [DOTINT] // | _ => lexbufpos_token_reset (buf, pos, DOT) // end // end of [lexing_DOT] (* ****** ****** *) extern fun lexing_PERCENT (buf: &lexbuf, pos: &position): token implement lexing_PERCENT (buf, pos) = let val i = lexbufpos_get_char (buf, pos) val c = (i2c)i in case+ c of | '\(' => let // '%(' initiates macro syntax val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, T_PERCENTLPAREN) end // end of ['\('] | '\{' when // '%{' must start at the beginning of a newline $LOC.position_get_ncol (pos) = 1 => let val () = posincby1 (pos) in lexing_EXTCODE (buf, pos) end // end of ['\{'] | _ => let val k = testing_symbolicseq0 (buf, pos) in lexing_IDENT_sym (buf, pos, succ(k)) end // end of [_] end // end of [lexing_PERCENT] (* ****** ****** *) extern fun lexing_DOLLAR (buf: &lexbuf, pos: &position): token implement lexing_DOLLAR (buf, pos) = let val i = lexbufpos_get_char (buf, pos) val c = (i2c)i in case+ c of | _ when IDENTFST_test (c) => let val () = posincby1 (pos) val k = testing_identrstseq0 (buf, pos) in lexing_IDENT_dlr (buf, pos, k+2u) end // end of [_ when ...] | _ => let val k = testing_symbolicseq0 (buf, pos) in lexing_IDENT_sym (buf, pos, succ(k)) end // end of [_] end // end of [lexing_DOLLAR] (* ****** ****** *) extern fun lexing_SHARP (buf: &lexbuf, pos: &position): token implement lexing_SHARP (buf, pos) = let // val i = lexbufpos_get_char (buf, pos) val c = (i2c)i // in case+ c of | '\[' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, T_HASHLBRACKET) end // end of ['\('] | _ when IDENTFST_test (c) => let val () = posincby1 (pos) val k = testing_identrstseq0 (buf, pos) in lexing_IDENT_srp (buf, pos, k+2u) end // end of [_ when ...] | _ => let val k = testing_symbolicseq0 (buf, pos) in lexing_IDENT_sym (buf, pos, succ(k)) end // end of [_] end // end of [lexing_SHARP] (* ****** ****** *) extern fun lexing_BQUOTE (buf: &lexbuf, pos: &position): token implement lexing_BQUOTE (buf, pos) = let val i = lexbufpos_get_char (buf, pos) val c = (i2c)i in case+ c of | '\(' => let // '`(' initiates macro syntax val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, T_BQUOTELPAREN) end // end of ['\('] | _ => let val k = testing_symbolicseq0 (buf, pos) in lexing_IDENT_sym (buf, pos, succ(k)) end // end of [_] end // end of [lexing_BQUOTE] (* ****** ****** *) // extern fun lexing_QUOTE (buf: &lexbuf, pos: &position): token // extern fun lexing_DQUOTE (buf: &lexbuf, pos: &position): token // (* ****** ****** *) local // extern fun lexing_char_oct (buf: &lexbuf, pos: &position, k: uint): token extern fun lexing_char_hex (buf: &lexbuf, pos: &position, k: uint): token extern fun lexing_char_special (buf: &lexbuf, pos: &position): token extern fun lexing_char_closing (buf: &lexbuf, pos: &position, c: char): token // in (* in of [local] *) implement lexing_char_oct (buf, pos, k) = let fun loop ( buf: &lexbuf , k: uint, nchr: uint, i: int ) : int = if k > 0u then let val d = lexbuf_get_char (buf, nchr) val i = i * 8 + ((i2c)d - '0') in loop (buf, pred(k), succ(nchr), i) end else i val i = loop (buf, k, 2u, 0) val c = (i2c)i in lexing_char_closing (buf, pos, c) end // end of [lexing_char_oct] (* ****** ****** *) implement lexing_char_hex (buf, pos, k) = let fun loop ( buf: &lexbuf , k: uint, nchr: uint, i: int ) : int = if k > 0u then let val d = lexbuf_get_char (buf, nchr) val i = i * 16 + xdigit_get_val ((i2c)d) in loop (buf, pred(k), succ(nchr), i) end else i val i = loop (buf, k, 3u, 0) val c = (i2c)i in lexing_char_closing (buf, pos, c) end // end of [lexing_char_hex] (* ****** ****** *) implement lexing_char_special (buf, pos) = let val i = lexbufpos_get_char (buf, pos) val c = (i2c)i in case+ 0 of | _ when ESCHAR_test (c) => let val () = posincby1 (pos) val c = char_for_escaped (c) in lexing_char_closing (buf, pos, c) end // end of [_ when ...] | _ when xX_test (c) => let val () = posincby1 (pos) val k = testing_xdigitseq0 (buf, pos) in if k = 0u then lexbufpos_lexerr_reset (buf, pos, LE_CHAR_hex) else lexing_char_hex (buf, pos, k) // end of [if] end // end of [_ when ...] | _ => let (* val k = testing_digitseq0 (buf, pos) *) val k = testing_octalseq0 (buf, pos) in if k = 0u then lexbufpos_lexerr_reset (buf, pos, LE_CHAR_oct) else lexing_char_oct (buf, pos, k) // end of [if] end // end of [_] // end of [case] end // end of [lexing_char_special] (* ****** ****** *) implement lexing_char_closing (buf, pos, c) = let val res = testing_litchar (buf, pos, '\'') in if res >= 0 then lexbufpos_token_reset (buf, pos, T_CHAR (c)) else lexbufpos_lexerr_reset (buf, pos, LE_CHAR_unclose) // end of [if] end // end of [lexing_char_closing] (* ****** ****** *) implement lexing_QUOTE (buf, pos) = let // val i = lexbufpos_get_char(buf, pos) // in // if i >= 0 then let val c = (i2c)i val () = posincby1(pos) in case+ c of // | '\(' => lexbufpos_token_reset(buf, pos, T_QUOTELPAREN) | '\[' => lexbufpos_token_reset(buf, pos, T_QUOTELBRACKET) | '\{' => lexbufpos_token_reset(buf, pos, T_QUOTELBRACE) // | _ when c = '\\' => lexing_char_special(buf, pos) // | _ (*rest-of-char*) => lexing_char_closing(buf, pos, c) // end // end of [then] else ( lexbufpos_lexerr_reset(buf, pos, LE_QUOTE_dangling) ) (* end of [else] *) // end // end of [lexing_QUOTE] end // end of [local] (* ****** ****** *) local // #define AGAIN 1 // (* ****** ****** *) staload "libats/SATS/linqueue_arr.sats" staload _(*anon*) = "libats/DATS/linqueue_arr.dats" staload _(*anon*) = "libats/ngc/DATS/deque_arr.dats" (* ****** ****** *) vtypedef Q(m:int, n:int) = QUEUE(uchar, m, n) (* ****** ****** *) fun lexing_string_char_oct ( buf: &lexbuf, pos: &position ) : int = let fun loop ( buf: &lexbuf , pos: &position , n: &int, i: int ) : int = if n > 0 then let val d = lexbufpos_get_char (buf, pos) val c = (i2c)d in case+ 0 of | _ when DIGIT_test (c) => let val () = posincby1 (pos) val () = n := n-1 in loop (buf, pos, n, 8*i+(c-'0')) end // end of [_ when ...] | _ => i end else i // end of [loop] var n: int = 3 // HX: \d1d2d3 val i = loop (buf, pos, n, 0) // = 8*(8*d1 + d2) + d3 // val () = if (n = 3) then { val loc = $LOC.location_make_pos_pos (pos, pos) val err = lexerr_make (loc, LE_STRING_char_oct) val () = the_lexerrlst_add (err) } // end of [if] // in i // char code end // end of [lexing_string_char_oct] (* ****** ****** *) fun lexing_string_char_hex ( buf: &lexbuf, pos: &position ) : int = let fun loop ( buf: &lexbuf , pos: &position , n: &int, i: int ) : int = if n > 0 then let val d = lexbufpos_get_char (buf, pos) val c = (i2c)d in case+ 0 of | _ when XDIGIT_test (c) => let val () = posincby1 (pos) val () = n := n-1 in loop (buf, pos, n, 16*i+xdigit_get_val (c)) end // end of [_ when ...] | _ => i end else i // end of [loop] var n: int = 2 // HX: 0xd1d2 val i = loop (buf, pos, n, 0) // 16*d1 + d2 // val () = if (n = 2) then { val loc = $LOC.location_make_pos_pos (pos, pos) val err = lexerr_make (loc, LE_STRING_char_hex) val () = the_lexerrlst_add (err) } // end of [if] // in i // char code end // end of [lexing_string_char_hex] (* ****** ****** *) fun lexing_string_char_special ( buf: &lexbuf, pos: &position, err: &int ) : int = let // val i = lexbufpos_get_char (buf, pos) // in // if i >= 0 then let val c = (i2c)i in case+ c of | '\n' => let val () = err := AGAIN val () = posincbyc (pos, i) in 0 // HX: of no use end // end of ['\n'] | _ when ESCHAR_test (c) => let val () = posincby1 (pos) in c2i(char_for_escaped(c)) end // end of [_ when ...] | _ when xX_test (c) => let val () = posincby1 (pos) in lexing_string_char_hex (buf, pos) end // end of [_ when ...] | _ => lexing_string_char_oct (buf, pos) end else 0 // end of [if] // end // end of [lexing_string_char_special] in (* in of [local] *) implement lexing_DQUOTE (buf, pos) = let // fn regerr ( // register error buf: &lexbuf, pos: &position ) : void = let val loc = lexbufpos_get_location (buf, pos) val err = lexerr_make (loc, LE_STRING_unclose) in the_lexerrlst_add (err) end // end of [regerr] // fn* loop {m,n:int | m > 0} ( buf: &lexbuf , pos: &position , q: &Q(m, n) >> Q(m, n) , m: size_t (m), n: size_t (n) ) : #[m,n:nat] size_t(n) = let val i = lexbufpos_get_char (buf, pos) prval () = lemma_queue_param (q) // m >= n >= 0 in // if i >= 0 then let val c = (i2c)i val () = posincbyc (pos, i) in case+ c of | '"' => n // string is properly closed | '\\' => let var err: int = 0 val i = lexing_string_char_special(buf, pos, err) in if err = AGAIN then loop(buf, pos, q, m, n) else loop_ins(buf, pos, q, m, n, i) // end of [if] end // end of ['\\'] | _(*rest*) => loop_ins (buf, pos, q, m, n, i) end // end of [then] else let val () = regerr(buf, pos) in queue_size{uchar}(q) end (* end of [else] *) // end // end of [loop] // and loop_ins {m,n:int | m > 0} ( buf: &lexbuf , pos: &position , q: &Q(m, n) >> Q(m, n) , m: size_t (m), n: size_t (n), i: int ) : #[m,n:nat] size_t (n) = let val c = (i2uc)i prval () = lemma_queue_param(q) // m >= n >= 0 // end of [prval] in case+ 0 of | _ when m > n => let val () = queue_insert(q, c) in loop(buf, pos, q, m, n+1) end // end of [m > n] | _ (* m <= n *) => let val m2 = m + m val () = queue_update_capacity(q, m2) // end of [val] val ((*inserted*)) = queue_insert(q, c) in loop(buf, pos, q, m2, n+1) end // end of [m <= n] end // end of [loop_ins] // var q: QUEUE0(uchar) #define m0 128 // HX: chosen randomly val () = queue_initialize (q, m0) // val n = loop (buf, pos, q, m0, 0) val str = $UTL.queue_get_strptr1 (q, 0, n) val str = string_of_strptr (str) // val () = queue_uninitialize (q) // in lexbufpos_token_reset (buf, pos, T_STRING(str)) end // end of [lexing_DQUOTE] end // end of [local] (* ****** ****** *) fun lexing_postfix ( buf: &lexbuf , pos: &position , tn: tnode, tn_post: tnode, c0: char ) : token = let val i = lexbufpos_get_char(buf, pos) in case+ 0 of | _ when c0 = (i2c)i => let val () = posincby1(pos) in lexbufpos_token_reset(buf, pos, tn_post) end | _ => lexbufpos_token_reset(buf, pos, tn) end // end of [lexing_postfix] (* ****** ****** *) fun lexing_polarity ( buf: &lexbuf, pos: &position , tn: tnode, tn_pos: tnode, tn_neg: tnode ) : token = let val i = lexbufpos_get_char (buf, pos) in case+ (i2c)i of | '+' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, tn_pos) end | '-' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, tn_neg) end | _ => lexbufpos_token_reset (buf, pos, tn) end // end of [lexing_polarity] (* ****** ****** *) // fun lexing_FOR ( buf: &lexbuf, pos: &position ) : token = lexing_postfix (buf, pos, FOR, FORSTAR, '*') // fun lexing_WHILE ( buf: &lexbuf, pos: &position ) : token = lexing_postfix (buf, pos, WHILE, WHILESTAR, '*') // (* ****** ****** *) fun lexing_CASE ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, CASE, CASE_pos, CASE_neg) // end of [lexing_CASE] fun lexing_VAL ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, VAL, VAL_pos, VAL_neg) // end of [lexing_VAL] (* ****** ****** *) fun lexing_TYPE ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, TYPE, TYPE_pos, TYPE_neg) // end of [lexing_TYPE] fun lexing_TBOX ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, TBOX, TYPE_pos, TYPE_neg) // end of [lexing_TBOX] fun lexing_TFLT ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, TFLT, T0YPE_pos, T0YPE_neg) // end of [lexing_TBOX] // fun lexing_T0YPE ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, T0YPE, T0YPE_pos, T0YPE_neg) // end of [lexing_T0YPE] // (* fun lexing_TYPES ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, TYPES, TYPES_pos, TYPES_neg) // end of [lexing_TYPES] *) // (* ****** ****** *) fun lexing_PROP ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, PROP, PROP_pos, PROP_neg) // end of [lexing_PROP] // fun lexing_VIEW ( buf: &lexbuf, pos: &position ) : token = let val i = lexbufpos_get_char (buf, pos) in case+ (i2c)i of | '@' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, VIEWAT) end | '+' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, VIEW_pos) end | '-' => let val () = posincby1 (pos) in lexbufpos_token_reset (buf, pos, VIEW_neg) end | _ => lexbufpos_token_reset (buf, pos, VIEW) end // end of [lexing_VIEW] // fun lexing_VTYPE ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, VTYPE, VIEWTYPE_pos, VIEWTYPE_neg) // end of [lexing_VTYPE] fun lexing_VTBOX ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, VTBOX, VIEWTYPE_pos, VIEWTYPE_neg) // end of [lexing_VTBOX] fun lexing_VTFLT ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, VTFLT, VIEWT0YPE_pos, VIEWT0YPE_neg) // end of [lexing_VTBOX] // fun lexing_VIEWTYPE ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, VIEWTYPE, VIEWTYPE_pos, VIEWTYPE_neg) // end of [lexing_VIEWTYPE] fun lexing_VIEWT0YPE ( buf: &lexbuf, pos: &position ) : token = lexing_polarity (buf, pos, VIEWT0YPE, VIEWT0YPE_pos, VIEWT0YPE_neg) // end of [lexing_VIEWT0YPE] (* ****** ****** *) // fun lexing_LAM ( buf: &lexbuf, pos: &position ) : token = lexing_postfix (buf, pos, LAM, LAMAT, '@') fun lexing_LLAM ( buf: &lexbuf, pos: &position ) : token = lexing_postfix (buf, pos, LLAM, LLAMAT, '@') // fun lexing_FIX ( buf: &lexbuf, pos: &position ) : token = lexing_postfix (buf, pos, FIX, FIXAT, '@') // (* ****** ****** *) (* fun lexing_REF ( buf: &lexbuf, pos: &position ) : token = lexing_postfix (buf, pos, REF, REFAT, '@') *) (* ****** ****** *) // fun lexing_ADDR ( buf: &lexbuf, pos: &position ) : token = lexing_postfix (buf, pos, ADDR, ADDRAT, '@') // fun lexing_FOLD ( buf: &lexbuf, pos: &position ) : token = lexing_postfix (buf, pos, FOLD, FOLDAT, '@') // fun lexing_FREE ( buf: &lexbuf, pos: &position ) : token = lexing_postfix (buf, pos, FREE, FREEAT, '@') // (* ****** ****** *) implement lexing_IDENT_alp (buf, pos, k) = let // val i = lexbufpos_get_char (buf, pos) // in // case+ (i2c)i of // | '<' => let val () = posincby1 (pos) val str = lexbuf_get_strptr1 (buf, k) val str = string_of_strptr (str) in lexbufpos_token_reset (buf, pos, T_IDENT_tmp (str)) end // | '\[' => let val () = posincby1 (pos) val str = lexbuf_get_strptr1 (buf, k) val str = string_of_strptr (str) in lexbufpos_token_reset (buf, pos, T_IDENT_arr (str)) end // | '!' => let val () = posincby1 (pos) val str = lexbuf_get_strptr1 (buf, k) val str = string_of_strptr (str) in lexbufpos_token_reset (buf, pos, T_IDENT_ext (str)) end // | _ (*rest*) => let val mystr = lexbuf_get_strptr1 (buf, k) // end of [val] in lexing_IDENT2_alp (buf, pos, mystr) end // end of [_] // end of [case] // end // end of [lexing_IDENT_alp] (* ****** ****** *) implement lexing_IDENT2_alp {l}(buf, pos, mystr) = let // vtypedef mystr = strptr(l) // val sym = IDENT_alp_get_lexsym($UN.castvwtp1{string}{mystr}(mystr)) // in // case+ sym of | LS_ABST () when testing_literal (buf, pos, "@ype") >= 0 => let val () = strptr_free (mystr) in lexbufpos_token_reset (buf, pos, ABST0YPE) end | LS_ABSVT () when testing_literal (buf, pos, "@ype") >= 0 => let val () = strptr_free (mystr) in lexbufpos_token_reset (buf, pos, ABSVIEWT0YPE) end | LS_ABSVIEWT () when testing_literal (buf, pos, "@ype") >= 0 => let val () = strptr_free(mystr) in lexbufpos_token_reset (buf, pos, ABSVIEWT0YPE) end // | LS_CASE () => let val () = strptr_free(mystr) in lexing_CASE (buf, pos) end // end of [LS_CASE] // | LS_T() when testing_literal(buf, pos, "@ype") >= 0 => let val () = strptr_free(mystr) in lexing_T0YPE(buf, pos) end // end of [LS_T] | LS_VT() when testing_literal(buf, pos, "@ype") >= 0 => let val () = strptr_free(mystr) in lexing_VIEWT0YPE(buf, pos) end // end of [LS_VT] // | LS_PROP() => let val () = strptr_free(mystr) in lexing_PROP(buf, pos) end // end of [LS_PROP] | LS_VIEW() => let val () = strptr_free(mystr) in lexing_VIEW(buf, pos) end// end of [LS_VIEW] // | LS_TYPE() => let val () = strptr_free(mystr) in lexing_TYPE(buf, pos) end // end of [LS_TYPE] | LS_TBOX() => let val () = strptr_free(mystr) in lexing_TBOX(buf, pos) end // end of [LS_TBOX] | LS_TFLT() => let val () = strptr_free(mystr) in lexing_TFLT(buf, pos) end // end of [LS_TFLT] // (* | LS_TYPES() => let val () = strptr_free(mystr) in lexing_TYPES (buf, pos) end // end of [LS_TYPES] *) // | LS_VTYPE() => let val () = strptr_free(mystr) in lexing_VTYPE(buf, pos) end // end of [LS_VTYPE] | LS_VTBOX() => let val () = strptr_free(mystr) in lexing_VTBOX(buf, pos) end // end of [LS_VTBOX] | LS_VTFLT() => let val () = strptr_free(mystr) in lexing_VTFLT(buf, pos) end // end of [LS_VTFLT] // | LS_T0YPE() => let val () = strptr_free(mystr) in lexing_T0YPE(buf, pos) end // end of [LS_T0YPE] | LS_VT0YPE() => let val () = strptr_free(mystr) in lexing_VIEWT0YPE(buf, pos) end // end of [LS_VT0YPE] // | LS_VIEWT() when testing_literal(buf, pos, "@ype") >= 0 => let val () = strptr_free(mystr) in lexing_VIEWT0YPE(buf, pos) end // end of [LS_VIEWT] | LS_VIEWTYPE() => let val () = strptr_free(mystr) in lexing_VIEWTYPE(buf, pos) end // end of [LS_VIEWTYPE] | LS_VIEWT0YPE() => let val () = strptr_free(mystr) in lexing_VIEWT0YPE(buf, pos) end // end of [LS_VIEWT0YPE] // | LS_VAL () => let val () = strptr_free (mystr) in lexing_VAL (buf, pos) end // end of [LS_VAL] // | LS_FOR () => let val () = strptr_free (mystr) in lexing_FOR (buf, pos) end // end of [LS_FOR] | LS_WHILE () => let val () = strptr_free (mystr) in lexing_WHILE (buf, pos) end // end of [LS_WHILE] // | LS_ADDR () => let val () = strptr_free (mystr) in lexing_ADDR (buf, pos) end | LS_FOLD () => let val () = strptr_free (mystr) in lexing_FOLD (buf, pos) end | LS_FREE () => let val () = strptr_free (mystr) in lexing_FREE (buf, pos) end // | LS_LAM () => let val () = strptr_free (mystr) in lexing_LAM (buf, pos) end | LS_LLAM () => let val () = strptr_free (mystr) in lexing_LLAM (buf, pos) end | LS_FIX () => let val () = strptr_free (mystr) in lexing_FIX (buf, pos) end // end of [LS_FIX] // (* | LS_REF () => let val () = strptr_free (mystr) in lexing_REF (buf, pos) end // end of [LS_REF] *) // | _ (*rest*) => let val tnode = tnode_search ($UN.castvwtp1{string}{mystr}(mystr)) // end of [val] in case+ tnode of | T_NONE () => let val mystr = string_of_strptr (mystr) in lexbufpos_token_reset (buf, pos, T_IDENT_alp (mystr)) end | _ (*not-NONE*) => let val () = strptr_free (mystr) in lexbufpos_token_reset (buf, pos, tnode) end // end of [_] end // end of [_] // end of [case] // end // end of [lexing_IDENT2_alp] (* ****** ****** *) implement lexing_IDENT_sym (buf, pos, k) = let // val [l:addr] mystr = lexbuf_get_strptr1 (buf, k) // vtypedef mystr = strptr(l) // val sym = IDENT_sym_get_lexsym($UN.castvwtp1{string}{mystr}(mystr)) // in // case+ sym of (* | LS_LTBANG () => let val () = posdecby1 (pos) val () = strptr_free (mystr) in lexbufpos_token_reset (buf, pos, LT) end // end of [LS_LTBANG] | LS_LTDOLLAR () => let val () = posdecby1 (pos) val () = strptr_free (mystr) in lexbufpos_token_reset (buf, pos, LT) end // end of [LS_LTDOLLOR] *) | LS_QMARKGT () => let val () = posdecby1 (pos) val () = strptr_free (mystr) in lexbufpos_token_reset (buf, pos, QMARK) end // end of [LS_QMARKGT] // | LS_SLASH2 () => let val () = strptr_free (mystr) in lexing_COMMENT_line (buf, pos) end // end of [LS_SLASH2] | LS_SLASHSTAR () => let val () = strptr_free (mystr) in lexing_COMMENT_block_c (buf, pos) end // end of [LS_SLASHSTAR] | LS_SLASH4 () => let val () = strptr_free (mystr) in lexing_COMMENT_rest (buf, pos) end // end of [LS_SLASH2] // | _ => let val tnode = tnode_search ($UN.castvwtp1{string}{mystr}(mystr)) // end of [val] in case+ tnode of | T_NONE () => let val mystr = string_of_strptr (mystr) in lexbufpos_token_reset (buf, pos, T_IDENT_sym (mystr)) end // end of [T_NONE] | _ => let val () = strptr_free (mystr) in lexbufpos_token_reset (buf, pos, tnode) end // end of [_] end // end of [_] // end // end of [lexing_IDENT_sym] (* ****** ****** *) implement lexing_IDENT_dlr (buf, pos, k) = let // val [l:addr] mystr = lexbuf_get_strptr1 (buf, k) // vtypedef mystr = strptr(l) // val tnode = tnode_search($UN.castvwtp1{string}{mystr}(mystr)) // in // case+ tnode of | T_NONE () => let val mystr = string_of_strptr (mystr) // end of [val] in lexbufpos_token_reset (buf, pos, T_IDENT_dlr (mystr)) end // end of [T_NONE] | _(*rest*) => let val () = strptr_free (mystr) in lexbufpos_token_reset (buf, pos, tnode) end // end of [_(*rest*)] end // end of [lexing_IDENT_dlr] (* ****** ****** *) implement lexing_IDENT_srp (buf, pos, k) = let // val [l:addr] mystr = lexbuf_get_strptr1 (buf, k) // vtypedef mystr = strptr(l) // val tnode = tnode_search($UN.castvwtp1{string}{mystr}(mystr)) // in // case+ tnode of // | T_NONE () => let val mystr = string_of_strptr(mystr) // end of [val] in lexbufpos_token_reset (buf, pos, T_IDENT_srp(mystr)) end // end of [T_NONE] // | _ (*rest*) => let val () = strptr_free (mystr) in lexbufpos_token_reset (buf, pos, tnode) end // end of [_(*rest*)] // end // end of [lexing_IDENT_srp] (* ****** ****** *) implement lexing_FLOAT_deciexp (buf, pos) = let val k = testing_floatspseq0 (buf, pos) val str = lexbufpos_get_strptr1 (buf, pos) val str = string_of_strptr (str) in lexbufpos_token_reset (buf, pos, T_FLOAT(10(*base*), str, k)) end // end of [lexing_FLOAT_deciexp] (* ****** ****** *) implement lexing_FLOAT_hexiexp (buf, pos) = let val k = testing_floatspseq0 (buf, pos) val str = lexbufpos_get_strptr1 (buf, pos) val str = string_of_strptr (str) in lexbufpos_token_reset (buf, pos, T_FLOAT(16(*base*), str, k)) end // end of [lexing_FLOAT_hexiexp] (* ****** ****** *) implement lexing_INT_dec (buf, pos) = let in // case+ 0 of | _ when testing_deciexp (buf, pos) >= 0 => let in lexing_FLOAT_deciexp (buf, pos) end // end of [_ when ...] | _ when testing_fexponent (buf, pos) >= 0 => let in lexing_FLOAT_deciexp (buf, pos) end // end of [_ when ...] | _ (*integer*) => let val k2 = testing_intspseq0 (buf, pos) val str = lexbufpos_get_strptr1 (buf, pos) val str = string_of_strptr (str) in lexbufpos_token_reset (buf, pos, T_INT_dec(str, k2)) end // end of [_] // end // end of [lexing_INT_dec] (* ****** ****** *) implement lexing_INT_oct (buf, pos, k1) = let // // k1: // number of digits // after the leading 0 // in // if k1 = 0u then ( lexing_INT_dec (buf, pos) ) else let // val k2 = testing_intspseq0 (buf, pos) val str = lexbufpos_get_strptr1 (buf, pos) val str = string_of_strptr (str) // in lexbufpos_token_reset (buf, pos, T_INT_oct(str, k2)) end // end of [else] // end // end of [lexing_INT_oct] (* ****** ****** *) implement lexing_INT_hex (buf, pos, k1) = let // // k1: // number of digits // after the leading 0x // in // case+ 0 of | _ when testing_hexiexp (buf, pos, k1) >= 0 => let in lexing_FLOAT_hexiexp (buf, pos) end // end of [_ when ...] | _ when testing_fexponent_bin (buf, pos) >= 0 => let val () = if k1 = 0u then { // YD-2018-07-10: fix hex float format. val loc = lexbufpos_get_location (buf, pos) val err = lexerr_make (loc, LE_FINTFRAC_missing) val () = the_lexerrlst_add (err) } in lexing_FLOAT_hexiexp (buf, pos) end // end of [_ when ...] | _ (*integer*) => let val k2 = testing_intspseq0 (buf, pos) val str = lexbufpos_get_strptr1 (buf, pos) val str = string_of_strptr (str) val () = if k1 = 0u then { // YD-2018-07-10: fix hex int format. val loc = lexbufpos_get_location (buf, pos) val err = lexerr_make (loc, LE_IDIGITS_empty) val () = the_lexerrlst_add (err) } in lexbufpos_token_reset (buf, pos, T_INT_hex(str, k2)) end // end of [_] // end // end of [lexing_INT_hex] (* ****** ****** *) extern fun lexing_ZERO (buf: &lexbuf, pos: &position): token implement lexing_ZERO (buf, pos) = let // val i = lexbufpos_get_char (buf, pos) // in // if i >= 0 then let val c = (i2c)i in case+ 0 of | _ when xX_test (c) => let val () = posincby1 (pos) val k1 = testing_xdigitseq0 (buf, pos) // end of [val] in lexing_INT_hex (buf, pos, k1) end // end of [_ when ...] | _ => let val k1 = testing_octalseq0 (buf, pos) // end of [val] in lexing_INT_oct (buf, pos, k1) end // end of [_] // end of [case] end // end of [then] else ( lexbufpos_token_reset (buf, pos, INTZERO) ) (* end of [else] *) // end // end of [lexing_ZERO] (* ****** ****** *) implement lexing_next_token (buf) = let // var pos: position val () = lexbuf_get_position (buf, pos) val k0 = testing_blankseq0 (buf, pos) val () = lexbuf_set_nspace (buf, (u2i)k0) val () = lexbuf_set_position (buf, pos) // val i0 = lexbuf_get_char (buf, 0u) // in // if i0 >= 0 then let val c0 = (i2c)i0 val () = posincbyc (pos, i0) in // case+ 0 of // | _ when c0 = '\(' => lexing_LPAREN (buf, pos) // handling "(*" | _ when (c0 = ')') => lexbufpos_token_reset (buf, pos, T_RPAREN) | _ when c0 = '\[' => lexbufpos_token_reset (buf, pos, T_LBRACKET) | _ when (c0 = ']') => lexbufpos_token_reset (buf, pos, T_RBRACKET) | _ when c0 = '\{' => lexbufpos_token_reset (buf, pos, T_LBRACE) | _ when (c0 = '}') => lexbufpos_token_reset (buf, pos, T_RBRACE) // | _ when c0 = ',' => lexing_COMMA (buf, pos) | _ when c0 = ';' => lexbufpos_token_reset (buf, pos, T_SEMICOLON) // | _ when c0 = '@' => lexing_AT (buf, pos) | _ when c0 = ':' => lexing_COLON (buf, pos) | _ when c0 = '.' => lexing_DOT (buf, pos) | _ when c0 = '$' => lexing_DOLLAR (buf, pos) | _ when c0 = '#' => lexing_SHARP (buf, pos) | _ when c0 = '%' => lexing_PERCENT (buf, pos) // | _ when c0 = '\'' => lexing_QUOTE (buf, pos) | _ when (c0 = '"') => lexing_DQUOTE (buf, pos) | _ when (c0 = '`') => lexing_BQUOTE (buf, pos) // | _ when c0 = '\\' => lexbufpos_token_reset (buf, pos, T_BACKSLASH) // | _ when IDENTFST_test (c0) => let val k = testing_identrstseq0 (buf, pos) // end of [val] in lexing_IDENT_alp (buf, pos, succ(k)) end // end of [_ when ...] | _ when SYMBOLIC_test (c0) => let val k = testing_symbolicseq0 (buf, pos) // end of [val] in lexing_IDENT_sym (buf, pos, succ(k)) end // end of [_ when ...] // | _ when (c0 = '0') => lexing_ZERO (buf, pos) // | _ when DIGIT_test (c0) => let val k1 = testing_digitseq0 (buf, pos) // end of [val] in lexing_INT_dec (buf, pos) // HX: k1+1 digits end // end of [_ when ...] // | _ (*rest-of-char*) => let // // HX: skipping the unrecognized char // val loc = lexbufpos_get_location (buf, pos) // end of [loc] val err = lexerr_make (loc, LE_UNSUPPORTED_char(c0)) // end of [val] val ((*void*)) = the_lexerrlst_add (err) val ((*void*)) = lexbuf_set_position (buf, pos) in lexing_next_token (buf) end // end of [rest-of-char] // end // end of [then] else ( lexbufpos_token_reset (buf, pos, T_EOF(*last*)) ) (* end of [else] *) // end // end of [lexing_next_token] (* ****** ****** *) implement lexing_next_token_ncmnt (buf) = let // val tok = lexing_next_token (buf) // in // case+ tok.token_node of | T_COMMENT_line _ => lexing_next_token_ncmnt (buf) // HX: skip | T_COMMENT_block _ => lexing_next_token_ncmnt (buf) // HX: skip // // HX-2011: // each rest-of-file comment is treated as EOF // | T_COMMENT_rest _ => token_make (tok.token_loc, T_EOF) // | _ (*non-COMMENT*) => tok // end // end of [lexing_next_token_ncmnt] (* ****** ****** *) (* end of [pats_lexing.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_ccomp_trywith.dats0000644000175000017500000000555313431250607022260 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: June, 2013 // (* ****** ****** *) staload "./pats_basics.sats" (* ****** ****** *) staload GLOBAL = "./pats_global.sats" (* ****** ****** *) staload "./pats_dynexp2.sats" (* ****** ****** *) staload "./pats_trans2_env.sats" (* ****** ****** *) staload "./pats_histaexp.sats" staload "./pats_hidynexp.sats" (* ****** ****** *) staload "./pats_ccomp.sats" (* ****** ****** *) implement hidexp_ccomp_ret_trywith (env, res, tmpret, hde0) = let // val loc0 = hde0.hidexp_loc val lvl0 = the_d2varlev_get() val-HDEtrywith (hde_try, hicls_with) = hde0.hidexp_node // val hse_exn = hisexp_exnconptr val tmp_exn = tmpvar_make(loc0, hse_exn) val pmv_exn = primval_make_tmp(loc0, tmp_exn) // val res_try = instrseq_make_nil() // val (pfpush | ()) = ccompenv_push(env) // // HX-2017-06-21: // Tail-call optimization is disabled val f0 = $GLOBAL.the_CCOMPATS_tlcalopt_get() val () = $GLOBAL.the_CCOMPATS_tlcalopt_set(0) // val () = hidexp_ccomp_ret(env, res_try, tmpret, hde_try) // // Tail-call optimization is restored val () = $GLOBAL.the_CCOMPATS_tlcalopt_set(f0) // val ((*popped*)) = ccompenv_pop(pfpush | env) // val inss_try = instrseq_get_free(res_try) // val fail = PTCKNTraise(tmpret, pmv_exn) // val ibrs_with = hiclaulst_ccomp ( env, lvl0, list_sing(pmv_exn), hicls_with, tmpret, fail ) (* end of [val] *) // val ins_trywith = instr_trywith(loc0, tmp_exn, inss_try, ibrs_with) // val ((*void*)) = instrseq_add(res, ins_trywith) // in // nothing end // end of [hidexp_ccomp_ret_case] (* ****** ****** *) (* end of [pats_ccomp_trywith.dats] *) ATS2-Postiats-gmp-0.3.13/./src/pats_constraint3_simplify.dats0000644000175000017500000004115313431250607023544 0ustar brandonbrandon(***********************************************************************) (* *) (* Applied Type System *) (* *) (***********************************************************************) (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: February, 2012 // (* ****** ****** *) // staload ATSPRE = "./pats_atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "./pats_intinf.sats" (* ****** ****** *) staload "./pats_staexp2.sats" staload "./pats_constraint3.sats" (* ****** ****** *) #define l2l list_of_list_vt (* ****** ****** *) implement s3exp_bneg (s3e0) = ( case+ s3e0 of | S3Ebool b => S3Ebool (not b) | S3Ebneg (s3e) => s3e | S3Ebadd (s3e1, s3e2) => S3Ebmul (S3Ebneg s3e1, S3Ebneg s3e2) | S3Ebmul (s3e1, s3e2) => S3Ebadd (S3Ebneg s3e1, S3Ebneg s3e2) | S3Ebeq (s3e1, s3e2) => S3Ebneq (s3e1, s3e2) | S3Ebneq (s3e1, s3e2) => S3Ebeq (s3e1, s3e2) | S3Ebineq (knd, s3e) => S3Ebineq (~knd, s3e) | _ => S3Ebneg (s3e0) ) // end of [s3exp_bneg] (* ****** ****** *) implement s3exp_badd (s3e1, s3e2) = let in case+ s3e1 of | S3Ebool b1 => if b1 then s3exp_true else s3e2 | _ (*non-bool*) => ( case+ s3e2 of | S3Ebool b2 => if b2 then s3exp_true else s3e1 | _(*non-bool*) => S3Ebadd (s3e1, s3e2) ) (* end of [_] *) end // end of [s3exp_badd] implement s3exp_bmul (s3e1, s3e2) = let in case+ s3e1 of | S3Ebool b1 => if b1 then s3e2 else s3exp_false | _(*non-bool*) => ( case+ s3e2 of | S3Ebool b2 => if b2 then s3e1 else s3exp_false | _ (*non-bool*) => S3Ebmul (s3e1, s3e2) ) (* end of [_] *) end // end of [s3exp_bmul] (* ****** ****** *) implement s3exp_beq (s3e1, s3e2) = ( case+ s3e1 of | S3Ebool b1 => if b1 then s3e2 else s3exp_bneg (s3e2) | _ => (case+ s3e2 of | S3Ebool b2 => if b2 then s3e1 else s3exp_bneg (s3e1) | _ => S3Ebeq (s3e1, s3e2) ) // end of [_] ) // end of [s3exp_beq] implement s3exp_bneq (s3e1, s3e2) = ( case+ s3e1 of | S3Ebool b1 => if b1 then s3exp_bneg (s3e2) else s3e2 | _ => (case+ s3e2 of | S3Ebool b2 => if b2 then s3exp_bneg (s3e1) else s3e1 | _ => S3Ebneq (s3e1, s3e2) ) // end of [_] ) // end of [s3exp_bneq] (* ****** ****** *) fun uns3exp_intinf (s3e: s3exp): Option_vt (intinf) = case+ s3e of | S3Enull () => Some_vt (intinf_0) | S3Eunit () => Some_vt (intinf_1) | S3Eicff (c, s3e) => let val opt = uns3exp_intinf (s3e) in case+ opt of | ~Some_vt (i) => Some_vt (c * i) | ~None_vt () => None_vt () end // end of [S3Eicff] | _ => None_vt () // end of [uns3exp_intinf] implement s3exp_bineq (knd, s3e) = let val opt = uns3exp_intinf (s3e) in case+ opt of | ~Some_vt (i) => (case+ 0 of | _ when knd = 2 => s3exp_bool (i >= 0) | _ when knd = ~2 => s3exp_bool (i < 0) | _ when knd = 1 => s3exp_bool (i = 0) | _ when knd = ~1 => s3exp_bool (i != 0) | _ => let val () = assertloc (false) in s3exp_false end // end of [_] ) // end of [Some_vt] | ~None_vt () => S3Ebineq (knd, s3e) end // end of [s3exp_bineq] (* ****** ****** *) implement s3exp_ilt (s3e1, s3e2) = s3exp_bineq (~2(*lt*), s3exp_isub (s3e1, s3e2)) // end of [s3exp_ilt] implement s3exp_ilte (s3e1, s3e2) = s3exp_bineq (2(*gte*), s3exp_isub (s3e2, s3e1)) // end of [s3exp_ilte] implement s3exp_igt (s3e1, s3e2) = s3exp_bineq (~2(*lt*), s3exp_isub (s3e2, s3e1)) // end of [s3exp_igt] implement s3exp_igte (s3e1, s3e2) = s3exp_bineq (2(*gte*), s3exp_isub (s3e1, s3e2)) // end of [s3exp_igte] implement s3exp_ieq (s3e1, s3e2) = s3exp_bineq (1(*eq*), s3exp_isub (s3e1, s3e2)) // end of [s3exp_ieq] implement s3exp_ineq (s3e1, s3e2) = s3exp_bineq (~1(*neq*), s3exp_isub (s3e1, s3e2)) // end of [s3exp_ineq] (* ****** ****** *) implement s3exp_int (i) = let val int = intinf_make_int (i) in s3exp_intinf (int) end // end of [s3exp_int] implement s3exp_intinf (int) = s3exp_icff (int, s3exp_1) (* ****** ****** *) implement s3exp_icff (c, x) = let (* val () = print "s3exp_icff" *) in case+ 0 of | _ when c = 1 => x | _ when c = 0 => s3exp_0 | _ => ( case+ x of | S3Enull () => s3exp_0 | S3Eicff (c1, x1) => s3exp_icff (c * c1, x1) | S3Eisum (xs) => let val cxs = s3explst_icff (c, xs) in S3Eisum ((l2l)cxs) end // end of [S3Eisum] | _ => S3Eicff (c, x) ) // end of [_] end // end of [s3exp_icff] implement s3explst_icff (c, xs) = ( list_map_cloptr (xs, lam x =<1> s3exp_icff (c, x)) ) // end of [s3explst_icff] implement s3exp_ineg (x) = s3exp_icff (intinf_neg_1, x) (* ****** ****** *) implement s3exp_isum (xs) = ( case+ xs of | list_cons (x, xs1) => ( case+ xs1 of | list_cons _ => S3Eisum (xs) | list_nil () => x ) // end of [list_cons] | list_nil () => s3exp_0 ) // end of [s3exp_isum] (* ****** ****** *) implement s3exp_isucc (s3e) = s3exp_iadd (s3e, s3exp_1) implement s3exp_ipred (s3e) = s3exp_iadd (s3e, s3exp_neg_1) (* ****** ****** *) implement s3exp_isgte (x1, x2) = let (* // HX: for supporting S3Eisum *) in // case+ x1 of // nonlinear terms go first | S3Eiatm (s2vs1) => ( case+ x2 of | S3Eiatm(s2vs2) => s2varmset_gte (s2vs1, s2vs2) // end of [S3Eiatm] | _ => true ) (* end of [S3Eiatm] *) | S3Evar(s2v1) => ( case+ x2 of | S3Eiatm _ => false | S3Evar s2v2 => compare_s2var_s2var (s2v1, s2v2) <= 0 // HX: not [>=]! // end of [S3Ecst] | _ => true ) (* end of [S3Evar] *) | S3Ecst(s2c1) => ( case+ x2 of | S3Eiatm _ => false | S3Evar s2v2 => false | S3Ecst s2c2 => compare_s2cst_s2cst (s2c1, s2c2) <= 0 // HX: not [>=]! // end of [S3Ecst] | _ => true ) (* end of [S3Evar] *) | S3Eunit((*void*)) => ( case+ x2 of | S3Eiatm _ => false | S3Evar s2v2 => false | S3Ecst s2c2 => false | S3Eunit () => true | _ => true ) (* end of [S3Eunit] *) // | _(*unrecognized*) => false // end // end of [s3exp_isgte] (* ****** ****** *) local fun uns3exp_icff (x: s3exp): s3exp = case+ x of S3Eicff (c, x) => x | _ => x // end of [uns3exp_icff] (* ** HX: x1 and x2 are the same kind of term *) fun s3exp_icff_add (x1: s3exp, x2: s3exp): s3exp = case+ (x1, x2) of | (S3Eicff (c1, y1), S3Eicff (c2, _)) => s3exp_icff (c1+c2, y1) | (S3Eicff (c1, y1), _) => s3exp_icff (c1+1, y1) | (_, S3Eicff (c2, y2)) => s3exp_icff (c2+1, y2) | (_, _) => s3exp_icff (intinf_2, x1) // end of [s3exp_icff_add] fun s3exp_isum_pair ( x1: s3exp, x2: s3exp ) : s3exp = let val y1 = uns3exp_icff (x1) and y2 = uns3exp_icff (x2) val gte12 = s3exp_isgte (y1, y2) in // if gte12 then let val gte21 = s3exp_isgte (y2, y1) in if gte21 then s3exp_icff_add (x1, x2) else S3Eisum (list_pair (x1, x2)) // end of [if] end else ( S3Eisum (list_pair (x2, x1)) ) (* end of [if] *) // end // end of [s3exp_isum_pair] fun s3exp_isum_list ( xs1: s3explst, xs2: s3explst ) : s3explst_vt = let // fun aux ( xs1: s3explst, xs2: s3explst ) : s3explst_vt = case+ xs1 of | list_cons (x1, xs11) => ( case+ xs2 of | list_cons (x2, xs21) => let val y1 = uns3exp_icff (x1) val y2 = uns3exp_icff (x2) val gte12 = s3exp_isgte (y1, y2) in if gte12 then let val gte21 = s3exp_isgte (y2, y1) in if gte21 then let val x12 = s3exp_icff_add (x1, x2) in case+ x12 of | S3Enull () => aux (xs11, xs21) | _ => list_vt_cons (x12, aux (xs11, xs21)) // end of [_] end else list_vt_cons (x1, aux (xs11, xs2)) // end of [if] end else list_vt_cons (x2, aux (xs1, xs21)) // end of [if] end // end of [list_cons] | list_nil () => list_copy (xs1) ) // end of [list_cons] | list_nil () => list_copy (xs2) // end of [aux] in aux (xs1, xs2) end // end of [s3exp_isum_list] fun s3exp_imul_list ( xs1: s3explst, xs2: s3explst ) : s3explst_vt = let in // case+ xs1 of | list_cons (x1, xs1) => let val x1xs2 = list_map_cloptr (xs2, lam x2 =<1> s3exp_imul (x1, x2)) val xs1xs2 = s3exp_imul_list (xs1, xs2) val res = s3exp_isum_list ( $UN.castvwtp1{s3explst} (x1xs2), $UN.castvwtp1{s3explst} (xs1xs2) ) // end of [val] val () = list_vt_free (x1xs2) val () = list_vt_free (xs1xs2) in res end // end of [list_cons] | list_nil () => list_vt_nil () // end // end of [s3exp_imul_list] in (* in of [local] *) implement s3exp_iadd (x1, x2) = ( case+ (x1, x2) of | (S3Enull (), _) => x2 | (_, S3Enull ()) => x1 | (S3Eisum xs1, S3Eisum xs2) => let val xs = s3exp_isum_list (xs1, xs2) in s3exp_isum ((l2l)xs) end // end of [S3Eisum, S3Eisum] | (S3Eisum xs1, _) => let val xs2 = list_vt_sing (x2) val xs = s3exp_isum_list (xs1, $UN.castvwtp1{s3explst} (xs2)) val () = list_vt_free (xs2) in s3exp_isum ((l2l)xs) end // end of [S3Eisum, _] | (_, S3Eisum xs2) => let val xs1 = list_vt_sing (x1) val xs = s3exp_isum_list ($UN.castvwtp1{s3explst} (xs1), xs2) val () = list_vt_free (xs1) in s3exp_isum ((l2l)xs) end // end of [_, S3Eisum] | (_, _) => s3exp_isum_pair (x1, x2) ) // end of [s3exp_iadd] implement s3exp_isub (x1, x2) = ( case+ (x1, x2) of | (S3Enull (), _) => s3exp_ineg (x2) | (_, S3Enull ()) => x1 | (S3Eisum xs1, S3Eisum xs2) => let val xs2 = s3explst_icff (intinf_neg_1, xs2) val xs = s3exp_isum_list (xs1, $UN.castvwtp1{s3explst} (xs2)) val () = list_vt_free (xs2) in s3exp_isum ((l2l)xs) end // end of [S3Eisum, S3Eisum] | (S3Eisum xs1, _) => let val xs2 = list_vt_sing (s3exp_ineg (x2)) val xs = s3exp_isum_list (xs1, $UN.castvwtp1{s3explst} (xs2)) val () = list_vt_free (xs2) in s3exp_isum ((l2l)xs) end // end of [S3Eisum, _] | (_, S3Eisum xs2) => let val xs1 = list_vt_sing (x1) val xs2 = s3explst_icff (intinf_neg_1, xs2) val xs = s3exp_isum_list ( $UN.castvwtp1{s3explst} (xs1), $UN.castvwtp1{s3explst} (xs2) ) // end of [val] val () = list_vt_free (xs1) val () = list_vt_free (xs2) in s3exp_isum ((l2l)xs) end // end of [_, S3Eisum] | (_, _) => s3exp_isum_pair (x1, s3exp_ineg (x2)) ) // end of [s3exp_isub] implement s3exp_imul (x1, x2) = let (* val () = ( print "s3exp_imul: x1 = "; print_s3exp (x1); print_newline (); print "s3exp_imul: x2 = "; print_s3exp (x2); print_newline (); ) // end of [val] *) in // case+ (x1, x2) of | (S3Enull (), _) => s3exp_0 | (_, S3Enull ()) => s3exp_0 | (S3Eunit (), _) => x2 | (_, S3Eunit ()) => x1 | (S3Eicff (c, x1), x2) => s3exp_icff (c, s3exp_imul (x1, x2)) | (x1, S3Eicff (c, x2)) => s3exp_icff (c, s3exp_imul (x1, x2)) // | (S3Evar (s2v1), S3Evar (s2v2)) => S3Eiatm (s2varmset_pair (s2v1, s2v2)) | (S3Eiatm (s2vs1), S3Evar (s2v2)) => S3Eiatm (s2varmset_add (s2vs1, s2v2)) | (S3Evar (s2v1), S3Eiatm (s2vs2)) => S3Eiatm (s2varmset_add (s2vs2, s2v1)) | (S3Eiatm (s2vs1), S3Eiatm (s2vs2)) => S3Eiatm (s2varmset_union (s2vs1, s2vs2)) // | (S3Eisum (xs1), S3Eisum (xs2)) => let val xs1xs2 = s3exp_imul_list (xs1, xs2) in s3exp_isum ((l2l)xs1xs2) end // end of [S3Eisum, S3Eisum] | (S3Eisum (xs1), _) => let val ys1 = list_map_cloptr (xs1, lam x1 =<1> s3exp_imul (x1, x2)) in S3Eisum ((l2l)ys1) end // end of [S3Eisum, _] | (_, S3Eisum (xs2)) => let val ys2 = list_map_cloptr (xs2, lam x2 =<1> s3exp_imul (x1, x2)) in S3Eisum ((l2l)ys2) end // end of [_, S3Eisum] // | (_, _) => S3Eimul (x1, x2) // end // end of [s3exp_imul] end // end of [local] (* ****** ****** *) extern fun s3exp_lintize_flag ( env: &s2vbcfenv, s3e: s3exp, flag: &int ) : s3exp // end of [s3exp_lintize_flag] extern fun s3explst_lintize_flag ( env: &s2vbcfenv, s3es: s3explst, flag: &int ) : s3explst // end of [s3explst_lintize_flag] (* ****** ****** *) implement s3exp_lintize (env, s3e) = let (* val () = ( print "s3exp_lintize: s3e = "; print_s3exp (s3e); print_newline () ) (* end of [val] *) *) var flag: int = 0 val s3e_res = s3exp_lintize_flag (env, s3e, flag) // in s3e_res end // end of [s3exp_lintize] (* ****** ****** *) implement s3exp_lintize_flag ( env, s3e0, flag ) = let val flag0 = flag in // case+ s3e0 of // | S3Evar _ => s3e0 | S3Ecst _ => let val () = flag := flag + 1 val s2v = s2vbcfenv_replace_nonlin (env, s3e0) in s3exp_var (s2v) end // end of [val] | S3Enull _ => s3e0 | S3Eunit _ => s3e0 | S3Ebool _ => s3e0 // | S3Ebvar _ => s3e0 | S3Ebneg (s3e) => let val s3e = s3exp_lintize_flag (env, s3e, flag) // end of [val] in if flag > flag0 then S3Ebneg (s3e) else s3e0 end // end of [S3Ebneg] | S3Ebadd (s3e1, s3e2) => let val s3e1 = s3exp_lintize_flag (env, s3e1, flag) val s3e2 = s3exp_lintize_flag (env, s3e2, flag) in if flag > flag0 then S3Ebadd (s3e1, s3e2) else s3e0 end // end of [S3Ebadd] | S3Ebmul (s3e1, s3e2) => let val s3e1 = s3exp_lintize_flag (env, s3e1, flag) val s3e2 = s3exp_lintize_flag (env, s3e2, flag) in if flag > flag0 then S3Ebmul (s3e1, s3e2) else s3e0 end // end of [S3Ebmul] | S3Ebeq (s3e1, s3e2) => let val s3e1 = s3exp_lintize_flag (env, s3e1, flag) val s3e2 = s3exp_lintize_flag (env, s3e2, flag) in if flag > flag0 then S3Ebeq (s3e1, s3e2) else s3e0 end // end of [S3Ebeq] | S3Ebneq (s3e1, s3e2) => let val s3e1 = s3exp_lintize_flag (env, s3e1, flag) val s3e2 = s3exp_lintize_flag (env, s3e2, flag) in if flag > flag0 then S3Ebneq (s3e1, s3e2) else s3e0 end // end of [S3Ebneq] | S3Ebineq (knd, s3e) => let val s3e = s3exp_lintize_flag (env, s3e, flag) in if flag > flag0 then S3Ebineq (knd, s3e) else s3e0 end // end of [S3Ebineq] // | S3Ebdom _ => s3e0 // | S3Eiatm _ => let val () = flag := flag + 1 val s2v = s2vbcfenv_replace_nonlin (env, s3e0) in s3exp_var (s2v) end // end of [val] | S3Eicff (cff, s3e) => let val s3e = s3exp_lintize_flag (env, s3e, flag) in if flag > flag0 then S3Eicff (cff, s3e) else s3e0 end // end of [S3Eicff // | S3Eisum (s3es) => let val s3es = s3explst_lintize_flag (env, s3es, flag) // end of [s3es] in if flag > flag0 then S3Eisum (s3es) else s3e0 end // end of [S3Eisum] | S3Eimul (s3e1, s3e2) => let val s3e1 = s3exp_lintize_flag (env, s3e1, flag) val s3e2 = s3exp_lintize_flag (env, s3e2, flag) val s3e0 = ( if flag > flag0 then S3Eimul (s3e1, s3e2) else s3e0 ) : s3exp // end of [val] val () = flag := flag + 1 val s2v = s2vbcfenv_replace_nonlin (env, s3e0) in s3exp_var (s2v) end // end of [S3Eimul] // | S3Esizeof _ => let val () = flag := flag + 1 val s2v = s2vbcfenv_replace_nonlin (env, s3e0) in s3exp_var (s2v) end // end of [val] // | S3Eapp (s3e1, s3es2) => let val s3e1 = s3exp_lintize_flag (env, s3e1, flag) val s3es2 = s3explst_lintize_flag (env, s3es2, flag) val s3e0 = ( if flag > flag0 then S3Eapp (s3e1, s3es2) else s3e0 ) : s3exp // end of [val] val () = flag := flag + 1 val s2v = s2vbcfenv_replace_nonlin (env, s3e0) in s3exp_var (s2v) end // end of [S3Eapp] // | S3Eerr _(*ERROR*) => s3e0 // end // end of [s3exp_lintize] (* ****** ****** *) implement s3explst_lintize_flag ( env, s3es0, flag ) = let val flag0 = flag in // case+ s3es0 of | list_cons (s3e, s3es) => let val s3e = s3exp_lintize_flag (env, s3e, flag) val s3es = s3explst_lintize_flag (env, s3es, flag) in if flag > flag0 then list_cons (s3e, s3es) else s3es0 end // end of [list_cons] | list_nil ((*void*)) => list_nil () // end // end of [s3explst_lintize_flag] (* ****** ****** *) (* end of [pats_constraint3_simplify.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/0000755000175000017500000000000013431250607015427 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/0000755000175000017500000000000013431250607016522 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/0000755000175000017500000000000013431250607017255 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/autodiff.dats0000644000175000017500000003357613431250607021751 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* ** ** Automatic Differentiation ** ** The code is essentially translated fro ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: January, 2008 ** *) (* ****** ****** *) // // HX-2012-11-26: ported to ATS/Postiats // (* ****** ****** *) // // HX-2013-06-21: compiled to run with ATS/Postiats // (* ****** ****** *) // // HX-2013-06-21: // By the current standard, the following code looks // a bit ugly. However, it does shed some light on coding // in ATS during its early development. // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload M = "libats/libc/SATS/math.sats" (* ****** ****** *) datatype dualnum = | Base of double | Bundle of (int, dualnum, dualnum) // end of [dualnum] (* ****** ****** *) typedef dualnumlst (n:int) = list (dualnum, n) typedef dualnumlst = [n:nat] dualnumlst (n) typedef dualnum1 = dualnumlst(1) and dualnum2 = dualnumlst(2) (* ****** ****** *) val _0: dualnum = Base (0.0) val _1: dualnum = Base (1.0) val _2: dualnum = Base (2.0) val __1: dualnum = Base (~1.0) (* ****** ****** *) fn epsilon (p: dualnum): int = ( case+ p of Base _ => 0 | Bundle (e, _, _) => e ) // end of [epsilon] fn primal ( e: int, p: dualnum ) : dualnum = case+ p of | Base _ => p | Bundle (e1, x, _) => if e1 < e then p else x // end of [primal] fn perturbe ( e: int, p: dualnum ) : dualnum = begin case+ p of | Base _ => _0 | Bundle (e1, _, x') => if e1 < e then _0 else x' end // end of [perturbe] (* ****** ****** *) local val EPSILON = ref_make_elt (0) in (* in of [local] *) fn derivative ( f: dualnum - dualnum, x: dualnum ) : dualnum = let val e = !EPSILON + 1 val () = !EPSILON := e val result = perturbe (e, f (Bundle (e, x, _1))) val () = !EPSILON := e - 1 in result end // end of [derivative] end // end of [local] (* ****** ****** *) fun print_dualnum (p: dualnum): void = ( case+ p of | Bundle (_, x, _) => print_dualnum x | Base (x) => $extfcall (void, "printf", "%.18g", x) ) // end of [print_dualnum] overload print with print_dualnum fn print_dualnumlst (ps: dualnumlst): void = let // fun loop ( i: int, ps: dualnumlst ) : void = ( case+ ps of | list_cons (p, ps) => ( if i > 0 then print ", "; print_dualnum p; loop (i+1, ps) ) // end of [list_cons] | list_nil ((*void*)) => () ) (* end of [loop] *) // in loop (0, ps) end // end of [print_dualnumlst] (* ****** ****** *) extern fun neg_dualnum (p: dualnum): dualnum extern fun recip_dualnum (p: dualnum): dualnum extern fun add_dualnum_dualnum (p1: dualnum, p2: dualnum): dualnum extern fun sub_dualnum_dualnum (p1: dualnum, p2: dualnum): dualnum extern fun mul_dualnum_dualnum (p1: dualnum, p2: dualnum): dualnum extern fun div_dualnum_dualnum (p1: dualnum, p2: dualnum): dualnum (* ****** ****** *) overload ~ with neg_dualnum overload + with add_dualnum_dualnum overload - with sub_dualnum_dualnum overload * with mul_dualnum_dualnum overload / with div_dualnum_dualnum (* ****** ****** *) implement neg_dualnum (p) = ( case+ p of | Bundle (e, x, x') => Bundle (e, ~x, ~x') | Base (x) => Base (~x) ) // end of [neg_dualnum] (* ****** ****** *) implement add_dualnum_dualnum (p1, p2) = let in // case+ p1 of | Bundle (e1, x1, x1') => ( case+ p2 of | Bundle (e2, x2, x2') => let val e = (if e1 <= e2 then e2 else e1): int val x = primal (e, p1) + primal (e, p2) val x' = perturbe (e, p1) + perturbe (e, p2) in Bundle (e, x, x') end | Base (x2) => Bundle (e1, x1 + p2, x1') ) // end of [Bundle] | Base x1 => ( case+ p2 of | Bundle (e2, x2, x2') => Bundle (e2, p1 + x2, x2') | Base (x2) => Base (x1 + x2) ) // end of [Base] // end // end of [add_dualnum_dualnum] (* ****** ****** *) implement sub_dualnum_dualnum (p1, p2) = let in // case+ p1 of | Bundle (e1, x1, x1') => ( case+ p2 of | Bundle (e2, x2, x2') => let val e = (if e1 <= e2 then e2 else e1): int val x = primal (e, p1) - primal (e, p2) val x' = perturbe (e, p1) - perturbe (e, p2) in Bundle (e, x, x') end | Base x2 => Bundle (e1, x1 - p2, x1') ) // end of [Bundle] | Base (x1) => ( case+ p2 of | Bundle (e2, x2, x2') => Bundle (e2, p1 - x2, ~x2') | Base x2 => Base (x1 - x2) ) // end of [Base] // end // end of [sub_dualnum_dualnum] (* ****** ****** *) implement mul_dualnum_dualnum (p1, p2) = let in // case+ p1 of | Bundle (e1, x1, x1') => ( case+ p2 of | Bundle (e2, x2, x2') => let val e = (if e1 <= e2 then e2 else e1): int val x1 = primal (e, p1) and x2 = primal (e, p2) val x = x1 * x2 val x' = x1 * perturbe (e, p2) + x2 * perturbe (e, p1) in Bundle (e, x, x') end | Base (x2) => Bundle (e1, x1 * p2, p2 * x1') ) // end of [Bundle] | Base x1 => ( case+ p2 of | Bundle (e2, x2, x2') => Bundle (e2, p1 * x2, p1 * x2') | Base x2 => Base (x1 * x2) ) // end of [Base] // end // end of [mul_dualnum_dualnum] (* ****** ****** *) implement recip_dualnum (p) = ( case+ p of | Bundle (e, x, x') => Bundle (e, recip_dualnum x, (~x') / (x * x)) | Base x => Base (1.0 / x) ) // end of [recip_dualnum_dualnum] implement div_dualnum_dualnum (p1, p2) = p1 * (recip_dualnum p2) (* ****** ****** *) extern fun sqrt_dualnum (p: dualnum): dualnum implement sqrt_dualnum (p) = let in // case+ p of | Bundle (e, x, x') => let val x_sqrt = sqrt_dualnum (x) val x'_sqrt = x' / (x_sqrt + x_sqrt) in Bundle (e, x_sqrt, x'_sqrt) end | Base (x) => Base ($M.sqrt_double (x)) // end // end of [sqrt_dualnum] (* ****** ****** *) extern fun lt_dualnum_dualnum (p1: dualnum, p2: dualnum): bool overload < with lt_dualnum_dualnum implement lt_dualnum_dualnum (p1, p2) = let in // case+ p1 of | Bundle (_, x1, _) => ( case+ p2 of Bundle (_, x2, _) => x1 < x2 | Base x2 => x1 < p2 ) | Base x1 => ( case+ p2 of Bundle (_, x2, _) => p1 < x2 | Base x2 => x1 < x2 ) // end // end of [lt_dualnum_dualnum] (* ****** ****** *) extern fun lte_dualnum_dualnum (p1: dualnum, p2: dualnum): bool overload <= with lte_dualnum_dualnum implement lte_dualnum_dualnum (p1, p2) = let in // case+ p1 of | Bundle (_, x1, _) => ( case+ p2 of Bundle (_, x2, _) => x1 <= x2 | Base x2 => x1 <= p2 ) | Base x1 => ( case+ p2 of Bundle (_, x2, _) => p1 <= x2 | Base x2 => x1 <= x2 ) // end // end of [lte_dualnum_dualnum] (* ****** ****** *) extern fun gt_dualnum_dualnum (p1: dualnum, p2: dualnum): bool overload > with gt_dualnum_dualnum implement gt_dualnum_dualnum (p1, p2) = lt_dualnum_dualnum (p2, p1) (* ****** ****** *) fn square (p: dualnum): dualnum = p * p (* ****** ****** *) fn list_tabulate{n:nat} ( f: !natLt n - dualnum, n: int n ) : dualnumlst n = let // fun loop { i:int | ~1 <= i; i < n } .. ( f: !natLt n - dualnum, i: int i, res: dualnumlst (n-i-1) ) : dualnumlst (n) = if i >= 0 then loop (f, i-1, list_cons{dualnum}(f(i), res)) else res // end of [loop] // in loop (f, n-1, list_nil ()) end // end of [list_tabulate] (* ****** ****** *) fun vplus {n:nat} .. ( us: dualnumlst n, vs: dualnumlst n ) : dualnumlst n = case+ us of | list_cons (u, us) => let val+list_cons (v, vs) = vs in list_cons{dualnum}(u + v, vplus (us, vs)) end // end of [list_cons] | list_nil () => list_nil () // end of [vplus] fun vminus {n:nat} .. ( us: dualnumlst n, vs: dualnumlst n ) : dualnumlst n = case+ us of | list_cons (u, us) => let val+list_cons (v, vs) = vs in list_cons{dualnum}(u - v, vminus (us, vs)) end // end of [list_cons] | list_nil () => list_nil () // end of [vminus] fun vscale {n:nat} (k: dualnum, xs: dualnumlst n): dualnumlst n = case+ xs of | list_cons (x, xs) => list_cons{dualnum}(k * x, vscale (k, xs)) | list_nil () => list_nil () // end of [vscale] (* ****** ****** *) fn magnitude_squared (xs: dualnumlst): dualnum = let // fun aux {n:nat} .. (xs: dualnumlst n, res: dualnum): dualnum = ( case+ xs of list_cons (x, xs) => aux (xs, res + x * x) | _ => res ) // in aux (xs, _0) end // end of [magnitude_squared] fn magnitude ( xs: dualnumlst ) : dualnum = sqrt_dualnum (magnitude_squared xs) // end of [magnitude] fn distance{n:nat} ( us: dualnumlst n, vs: dualnumlst n ): dualnum = magnitude (vminus (us, vs)) // end of [distance] (* ****** ****** *) fun list_nth_get {n:nat} .. (xs: dualnumlst n, i: natLt n): dualnum = ( if i > 0 then begin let val+list_cons (_, xs) = xs in list_nth_get (xs, i-1) end end else begin let val+list_cons (x, _) = xs in x end end (* end of [if] *) ) // end of [list_nth_get] fun list_nth_set {n:nat} .. (xs: dualnumlst n, i: natLt n, x0: dualnum): dualnumlst n = ( if i > 0 then let val+list_cons (x, xs) = xs in list_cons{dualnum}(x, list_nth_set (xs, i-1, x0)) end else begin let val+list_cons (_, xs) = xs in list_cons{dualnum}(x0, xs) end end (* end of [if] *) ) // end of [list_nth_set] (* ****** ****** *) fn gradient{n:nat} (f: dualnumlst n - dualnum, xs: dualnumlst n) : dualnumlst n = let // val fi = lam ( i: natLt n ): dualnum = derivative ( lam xi => f (list_nth_set (xs, i, xi)), list_nth_get (xs, i) ) // end of [derivative] // end of [val] // val gxs = list_tabulate (fi, list_length xs) val ( ) = cloptr_free (fi) where { extern fun cloptr_free {a:vtype} (f: a): void = "atspre_mfree_gc" } // end of [val] (* val () = ( print "gradient: xs = "; print_dualnumlst xs; print_newline (); print "gradient: gxs = "; print_dualnumlst gxs; print_newline (); ) // end of [val] *) in gxs end // end of [gradient] (* ****** ****** *) val PRECISION = Base (1e-5) fn multivariate_argmin{n:nat} ( f: dualnumlst n - dualnum, xs: dualnumlst n ) : dualnumlst n = let // macdef g (xs) = gradient (f, ,(xs)) // fun loop ( f: dualnumlst n - dualnum , xs: dualnumlst n, fxs: dualnum, gxs: dualnumlst n, eta: dualnum, i: int ) : dualnumlst n = let macdef g (xs) = gradient (f, ,(xs)) in // if magnitude gxs <= PRECISION then xs else if i = 10 then loop (f, xs, fxs, gxs, _2 * eta, 0) else let val xs' = vminus (xs, vscale (eta, gxs)) in if distance (xs, xs') <= PRECISION then xs else let val fxs' = f (xs') in if fxs' < fxs then loop (f, xs', fxs', g xs', eta, i+1) else loop (f, xs, fxs, gxs, eta / _2, 0) // end of [if] end // end of [if] end // end of [if] // end // end of [loop] // in loop (f, xs, f xs, g xs, PRECISION, 0) end // end of [multivariate_argmin] fn multivariate_argmax{n:nat} ( f: dualnumlst n - dualnum, xs: dualnumlst n ) : dualnumlst n = multivariate_argmin (lam xs => ~(f xs), xs) // end of [multivariate_argmax] (* ****** ****** *) fn multivariate_max{n:nat} (f: dualnumlst n - dualnum, xs: dualnumlst n): dualnum = f (multivariate_argmax (f, xs)) // end of [multivariate_max] (* ****** ****** *) fn saddle (): void = let // val start = $lst{dualnum} (_1, _1) // val xy1_star: dualnum2 = let fn f1 ( xy1: dualnum2 ) : dualnum = let val+list_pair (x1, y1) = xy1 val sum = x1 * x1 + y1 * y1 fn f2 ( xy2: dualnum2 ) : dualnum = let val+list_pair (x2, y2) = xy2 in sum - (x2 * x2 + y2 * y2) end // end of [f2] in multivariate_max (f2, start) end // end of [f1] in multivariate_argmin (f1, start) end // end of [xy1_star] // val+list_pair (x1_star, y1_star) = xy1_star // val xy2_star: dualnum2 = let val sum = x1_star * x1_star + y1_star * y1_star fn f3 ( xy2: dualnum2 ) : dualnum = let val+list_pair (x2, y2) = xy2 in sum - (x2 * x2 + y2 * y2) end // end of [f3] in multivariate_argmax (f3, start) end // end of [xy2_star] // val+list_pair (x2_star, y2_star) = xy2_star // in (* in of [let] *) // println! (x1_star); println! (y1_star); println! (x2_star); println! (y2_star); // end // end of [saddle] (* ****** ****** *) fn particle () = let // fn naive_euler (w: dualnum): dualnum = let // val _10 = Base 10.0 val delta_t = Base 1e-1 val charge1 = $lst{dualnum}(_10, _10 - w) val charge2 = $lst{dualnum}(_10, _0) val charges = $lst{dualnum2} (charge1, charge2) // fun p ( xs: dualnum2 ) : dualnum = let fun aux ( charges: List dualnum2, res: dualnum ) : dualnum = ( case+ charges of | list_cons (charge, charges) => aux (charges, res + recip_dualnum (distance (xs, charge))) | list_nil () => res ) // end of [aux] in aux (charges, _0) end // end of [p] // fun loop ( xs: dualnum2 , xs_dot: dualnum2 ) : dualnum = let val xs_Dot = vscale (__1, gradient (p, xs)) val xs_new = vplus (xs, vscale (delta_t, xs_dot)) in if list_nth_get (xs_new, 1) > _0 then loop (xs_new, vplus (xs_dot, vscale (delta_t, xs_Dot))) else let val delta_t_f = ~(list_nth_get (xs, 1) / list_nth_get (xs_dot, 1)) val xs_t_f = vplus (xs, vscale (delta_t_f, xs_dot)) in square (list_nth_get (xs_t_f, 0)) end // end of [if] end // end of [loop] // val xs_initial = $lst{dualnum}(_0, Base 8.0) val xs_dot_initial = $lst{dualnum}(Base 0.75, _0) // in loop (xs_initial, xs_dot_initial) end // end [naive_euler] // val w0 = _0 val ws_star = let // fn f (ws: dualnum1): dualnum = ( let val+list_sing (w) = ws in naive_euler (w) end ) // end of [f] // in multivariate_argmin (f, $lst{dualnum}(w0)) end // end of [val] val+list_sing(w_star) = ws_star in (* in of [let] *) // println! (w_star) // end // end of [particle] (* ****** ****** *) (* // // saddle: // 8.2463248261403561e-06 // 8.2463248261403561e-06 // 8.2463248261403561e-06 // 8.2463248261403561e-06 // // particle: // 0.20719187464861194 // *) (* ****** ****** *) implement main0 () = { val () = saddle () // test val () = particle () // test } // end of [main0] (* ****** ****** *) (* end of [autodiff.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/intsqrt_cps.dats0000644000175000017500000000265613431250607022514 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // HX-2016-10-17: // For answering // a question on StackOverflow // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) #include "share/atspre_staload.hats" (* ****** ****** *) (* fun intsqrt(n: int): int = if (n >= 1) then let val n4 = n / 4 val res = 2 * intsqrt(n4) + 1 in if (res * res <= n) then res else 2*intsqrt(n4) end // end of [then] else (n) *) (* ****** ****** *) // // HX: // Every allocated byte is freed. // Please try to valgrind to verify it! // (* ****** ****** *) fun square(x: int): int = x * x fun applin ( k: int - int, x: int ) : int = res where { val res = k(x) val ((*freed*)) = cloptr_free($UNSAFE.castvwtp0(k)) } (* end of [applin] *) fun intsqrt_cps ( n: int, k: int - int ) : int = if (n >= 1) then let val n4 = n / 4 in // intsqrt_cps ( n4 , llam(res) => applin(k, if square(2*res+1) <= n then 2*res+1 else 2*res) ) (* intsqrt_cps *) // end // end of [then] else applin(k, 0) // end of [else] fun intsqrt(n:int): int = intsqrt_cps(n, llam(x) => x) (* ****** ****** *) implement main0() = { val () = println! ("intsqrt(1023) = ", intsqrt(1023)) val () = println! ("intsqrt(1024) = ", intsqrt(1024)) } (* end of [main0] *) (* ****** ****** *) (* end of [intsqrt_cps.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/randerlin.dats0000644000175000017500000000244213431250607022112 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* ** ** Linear random number generator ** *) (* ****** ****** *) // // How to test: // ./randerlin // valgrind ./randerlin // // How to compile: // patscc -DATS_MEMALLOC_LIBC -o randerlin randerlin.dats // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) vtypedef randerlin = streamer_vt (ulint) (* ****** ****** *) extern fun randerlin_make (): randerlin (* ****** ****** *) implement randerlin_make () = let // fun aux ( state: ulint ) : stream_vt (ulint) = $ldelay ( // let // val state = (state * 196314165UL) + 907633515UL // in stream_vt_cons (state, aux (state)) end // ) (* end of [$ldelay] *) // end of [val] // in streamer_vt_make (aux (31435926536UL(*init*))) end // end of [randerlin_make] (* ****** ****** *) implement main0 () = { // val r0 = randerlin_make () // val () = println! ("randerlin(r0) = ", r0[]) val () = println! ("randerlin(r0) = ", r0[]) val () = println! ("randerlin(r0) = ", r0[]) // val () = ~r0 // freeing the random number generator // } (* end of [main0] *) (* ****** ****** *) (* end of [randerlin.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/fibver_trec.dats0000644000175000017500000000232513431250607022426 0ustar brandonbrandon(* ** A verfied implementation that computes the Fibonacci numbers ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: 2006 (?) // this is one of the first examples in ATS *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) staload "prelude/DATS/integer.dats" (* ****** ****** *) dataprop FIB (int, int) = | FIB0 (0, 0) | FIB1 (1, 1) | {n:nat} {r0,r1:int} FIB2 (n+2, r0+r1) of (FIB (n, r0), FIB (n+1, r1)) // end of [FIB] (* ****** ****** *) fun fibver {n:nat} (n: int n) .<>. :<> [r:int] (FIB (n, r) | int r) = let // fun loop {i:nat | i <= n} {r0,r1:int} .. ( pf0: FIB (i, r0), pf1: FIB (i+1, r1) | ni: int (n-i), r0: int r0, r1: int r1 ) :<> [r:int] (FIB (n, r) | int r) = if ni > 0 then loop {i+1} (pf1, FIB2 (pf0, pf1) | ni - 1, r1, r0 + r1) else (pf0 | r0) // end of [loop] in loop {0} (FIB0 (), FIB1 () | n, 0, 1) end // end of [fibver] (* ****** ****** *) implement main0 () = { val () = assertloc ((fibver(10)).1 = 55) val () = assertloc ((fibver(20)).1 = 6765) } // end of [main0] (* ****** ****** *) (* end of [fibver_trec.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/matrixops.dats0000644000175000017500000000106513431250607022162 0ustar brandonbrandon(* ****** ****** *) (* // // Some matrix ops // *) (* ****** ****** *) implement main((*void*)) = 0 (* ****** ****** *) extern fun{a:t0p} mul_scalar_matrix {m,n:int} ( c: a , A: &matrix (INV(a), m, n) >> _ , m: size_t m, n: size_t n ) : void // end of [mul_scalar_matrix] (* ****** ****** *) implement{a} mul_scalar_matrix (c, A, m, n) = let // implement(env) matrix_foreach$fwork (x, env) = (x := gmul_val_val (c, x)) // in matrix_foreach (A, m, n) end // end of [mul_scalar_matrix] (* ****** ****** *) (* end of [matrixops.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/queens_comb.dats0000644000175000017500000000205213431250607022431 0ustar brandonbrandon(* // // HX-2016-07-02 // A program to solve the 8-queens problem // based on lazy evaluation // *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // #include "share/HATS/atspre_staload_libats_ML.hats" // (* ****** ****** *) macdef sing = stream_vt_make_sing macdef intrange = list_make_intrange overload * with cross_stream_vt_list_vt (* ****** ****** *) // #define N 8 // implement main0((*void*)) = ((fix f(n:int):stream_vt(list0(int))=>if(n)>0then((f(n-1)*intrange(0,N)).filter()(lam(xsy)=>let val(xs,y)=xsy in $effmask_all(xs.iforall()(lam(i,x)=>((x)!=y&&abs(x-y)!=i+1)))end)).map(TYPE{list0(int)})(lam(xsy)=>let val (xs,y)=xsy in cons0(y,xs) end)else(sing(nil0)))N).foreach()(lam(xs)=>((xs).rforeach()(lam(x)=>(N.foreach()(lam(i)=>print_string(ifval(i=x," Q"," .")));println!()));println!())) // (* ****** ****** *) (* end of [queens_comb] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/hanoi.dats0000644000175000017500000000666413431250607021244 0ustar brandonbrandon(* // // Implementing the Hanoi Tower problem // // The code was first written by Hongwei Xi in the summer of 2004 // The code is ported to ATS2 by Hongwei Xi on the last day of May, 2012 // *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // abstype post_type (n:int) = ptr // for posts typedef post (n:int) = post_type (n) // (* ****** ****** *) extern fun post_make {sz:pos} (sz: int sz): post (sz) extern fun post_initize {sz:nat} (p: post (sz), sz: int sz): void (* ****** ****** *) extern fun post_get_at {sz:int} (p: post (sz), i: natLt sz): natLte (sz) overload [] with post_get_at extern fun post_set_at {sz:int} (p: post (sz), i: natLt sz, x: natLte (sz)): void overload [] with post_set_at (* ****** ****** *) fun showpiece {sz:int} ( sz: int sz, n: natLte sz ) : void = let // fun loop { i:nat | i <= 2*sz } .<2*sz-i>. ( i: int (i) ) : void = let in // if i < (sz-n) then ( print ' '; loop (i + 1) ) else if i < (sz+n-1) then ( print 'O'; loop (i + 1) ) else if i < (sz + sz) then ( print ' '; loop (i + 1) ) // end of [if] // end // end of [loop] // in loop (0) end // end of [showpiece] (* ****** ****** *) fun play {sz:pos} .<>. (sz: int sz): void = let // // val lp = post_make (sz) val mp = post_make (sz) val rp = post_make (sz) // fun showposts .<>. ( (*argumentless*) ) : void = let // fun loop {i:nat | i <= sz} ( i: int i ) : void = let in if sz > i then begin showpiece (sz, lp[i]); showpiece (sz, mp[i]); showpiece (sz, rp[i]); print_newline (); loop (i + 1) end else begin print_newline () end // end of [if] end // end of [loop] // in loop (0) end // end of [showposts] // val () = post_initize (lp, sz) // viewtypedef post = post (sz) // fun move { n,s,p,p':nat | p <= sz && p' <= sz && s + p + p' == sz + sz && n > 0 && s + n <= sz && n <= p && n <= p' } .. ( n: int n , src: post, s: int s, post: post, p: int p , post': post, p': int p' ) : void = ( if n = 1 then ( post[p-1] := src[s]; src[s] := 0; showposts () ) else ( move ( n-1, src, s, post', p', post, p ) ; // end of [move] post[p-1] := src[s+n-1]; src[s+n-1] := 0; showposts (); move ( n-1, post', p' - n + 1, post, p - 1, src, s + n ) ; // end of [move] ) (* end of [if] *) ) (* end of [move] *) // in // showposts (); move (sz, lp, 0, rp, sz, mp, sz); print ("This round of play has finished."); print_newline (); // end // end of [play] (* ****** ****** *) implement main ( argc, argv ) = let val () = play (4) in 0(*normalexit*) end // end of [main] (* ****** ****** *) local typedef T (n:int) = natLte n assume post_type (n:int) = arrayref (T(n), n) in // in of [local] implement post_make {sz} (sz) = arrayref_make_elt (g1int2uint(sz), 0) // end of [post_make] implement post_initize {sz} (p, sz) = let // fun loop { i:nat | i <= sz } .. ( i: int i ) : void = if i < sz then let val i1 = succ(i) in arrayref_set_at (p, i, i1) ; loop (i1) end // end of [if] // in loop (0) end // end of [post_initize] implement post_get_at (p, i) = arrayref_get_at (p, i) implement post_set_at (p, i, x) = arrayref_set_at (p, i, x) end // end of [local] (* ****** ****** *) (* end of [hanoi.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/mysendmailist.dats0000644000175000017500000000354113431250607023017 0ustar brandonbrandon(* ****** ****** *) // // HX-2015-03-05: // For sending a message // to a list of email addresses // (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) // %{^ typedef char *charptr; %} (* %{^ *) abstype charptr = $extype"charptr" // (* ****** ****** *) // extern fun{} theFrom_get(): charptr extern fun{} theSubject_get(): charptr extern fun{} theOtherOpt_get(): charptr extern fun{} theMessage_fname(): charptr // (* ****** ****** *) extern fun{} mysendmail (string): void implement {}(*tmp*) mysendmail(x0) = let // #define N 1024 var buf = @[char][N]() // val x0 = $UN.cast{charptr}(x0) // val err = $extfcall ( int , "snprintf", addr@buf, N , "mailx -s '%s' -r '%s' %s %s < %s" , theSubject_get(), theFrom_get(), theOtherOpt_get(), x0(*receiver*), theMessage_fname() ) (* end of [val] *) // val command = $UNSAFE.cast{string}(addr@buf) // val ((*void*)) = println! ("mysendmail: command = ", command) // // (* val err = $STDLIB.system(command) val ((*void*)) = if (err = 0) then println! ("mysendmail: message is sent!") val ((*void*)) = if (err != 0) then println! ("mysendmail: message is not sent!") // *) // in end // end of [mysendmail] (* ****** ****** *) // implement theFrom_get<>() = $UN.cast{charptr}("hwxi@bu.edu") implement theSubject_get<>() = $UN.cast{charptr}("Mysendmailist") implement theOtherOpt_get<>() = $UN.cast{charptr}("-c gmhwxi@gmail.com") implement theMessage_fname<>() = $UN.cast{charptr}("./mysendmailist.dats") // (* ****** ****** *) // val xs = $list{string} ( "hwxi@cs.bu.edu" ) val () = list_foreach_cloref (xs, lam (x) = mysendmail(x)) // (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [mysendmailist.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/monad_maybe.dats0000644000175000017500000000430013431250607022402 0ustar brandonbrandon(* ****** ****** *) // // Experimenting with maybe-monad // (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: hwxi AT cs DOT bu DOT edu ** Time: the third of July, 2013 *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) abstype monad_type (a: t@ype) = ptr typedef monad (a: t@ype) = monad_type (a) (* ****** ****** *) typedef cfun1 (a: t@ype, b: t@ype) = a - b typedef cfun2 (a1: t@ype, a2: t@ype, b: t@ype) = (a1, a2) - b (* ****** ****** *) stadef cfun = cfun1 stadef cfun = cfun2 (* ****** ****** *) extern fun{ a,b:t@ype } monad_bind (monad (a), cfun (a, monad (b))): monad (b) // end of [monad_bind] extern fun{a:t@ype} monad_return (x: a): monad (a) extern fun{a:t@ype} monad_unretn (m: monad (a)): Option (a) (* ****** ****** *) extern fun{ a,b:t@ype } monad_fmap (f: cfun (a, b), m: monad (a)): monad (b) extern fun{ a,b:t@ype } monad_lift (f: cfun (a, b), m: monad (a)): monad (b) (* ****** ****** *) implement {a,b} monad_fmap (f, m) = monad_bind (m, lam (x) => monad_return (f (x))) // end of [monad_fmap] implement {a,b} monad_lift (f, m) = monad_fmap (f, m) (* ****** ****** *) local assume monad_type (a: t@ype) = Option a in (* in of [local] *) implement{a,b} monad_bind (m, f) = ( case m of Some (x) => f (x) | None () => None () ) // end of [monad_bind] implement{a} monad_return (x) = Some{a}(x) implement{a} monad_unretn (m) = m end // end of [local] (* ****** ****** *) #define mbind monad_bind #define mretn monad_return #define mlift monad_lift #define mfmap monad_fmap #define munretn monad_unretn (* ****** ****** *) fun test_maybe ( x0: int ) : int = let // val m0 = mretn (x0) val m0 = mlift (lam x => x+3, m0) val m0 = mbind (m0, lam x => mretn (x*2)) val-Some(res) = munretn (m0) // in res (* = (x0+3)*2 *) end // end of [test_maybe] (* ****** ****** *) val () = assertloc (test_maybe(10) = (10+3)*2) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [monad_maybe.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/queens_lincomb.dats0000644000175000017500000000425613431250607023144 0ustar brandonbrandon(* // // HX-2016-07-02 // A program to solve the 8-queens problem // based on lazy evaluation // // Please note that // this is a memeory-clean implementation!!! // *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // #include "share/HATS/atspre_staload_libats_ML.hats" // (* ****** ****** *) #define N 8 (* ****** ****** *) // extern fun qsolve(n: int): stream_vt(List0_vt(int)) // (* ****** ****** *) implement qsolve(n) = let // (* val () = println! ("qsolve: n = ", n) *) // vtypedef stream0_vt = List0_vt(int) vtypedef stream1_vt = stream_vt(stream0_vt) vtypedef stream2_vt = stream_vt(stream1_vt) // fun test ( x0: int, xs: !List0_vt(int) ) : bool = let // var pred = lam@ ( i: intGte(0), x: int ) : bool = x0 != x && abs(x0-x) != i+1 // in // list0_iforall ( $UNSAFE.castvwtp1{list0(int)}(xs), $UNSAFE.cast(addr@pred) ) (* list0_iforall *) // end // end of [test] // fun extend ( x0: int , xs: List0_vt(int) ) : stream_vt(List0_vt(int)) = $ldelay ( ( if x0 < N then ( if test(x0, xs) then stream_vt_cons( cons_vt(x0, list_vt_copy(xs)), extend(x0+1, xs) ) (* stream_vt_cons *) else !(extend(x0+1, xs)) // end of [if] ) else ( list_vt_free(xs); stream_vt_nil((*void*)) ) ) : stream_vt_con(List0_vt(int)) , list_vt_free(xs) ) (* end of [extend] *) // in // if (n > 0) then ( // stream_vt_concat( stream_vt_map_fun (qsolve(n-1), lam(xs) => $effmask_all(extend(0, xs))) ) (* stream_vt_concat *) // ) (* end of [then] *) else ( $ldelay( stream_vt_cons(nil_vt(), stream_vt_make_nil()) ) (* $ldelay *) ) (* end of [else] *) // end // end of [qsolve] (* ****** ****** *) fun process_sol ( xss: stream_vt(List0_vt(int)), i: int ) : int = ( case+ !xss of | ~stream_vt_nil() => i | ~stream_vt_cons(xs, xss) => (list_vt_free(xs); process_sol(xss, i+1)) ) (* ****** ****** *) implement main0((*void*)) = { val () = println! ("|qsolve(", N, ")| = ", process_sol(qsolve(N), 0)) } (* ****** ****** *) (* end of [queens_lincomb] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/ferryman.dats0000644000175000017500000001107213431250607021756 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* ** This is a verified implementation of a solution to the famous ** ferryman puzzle: ** ** A ferryman tries to move a cabbage, a goat and a wolf across ** a river; at the start, F, C, G and W are all on one side of the ** river, and at the finish, they will be all on the other side of ** the river. A correct solution must satisfy the following rules: ** ** F and at most one additional item can ferry across the river at ** one time; C and G cannot be on the same side unless F is also on ** that side; the same also applies to G and W. *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start time: 2012-05-05 // Cinco de Mayo :) // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) absview STATE0 ( // for all states f: bool, c: bool, g: bool, w: bool ) // end of [STATE0] absview STATE1 ( // for safe states f: bool, c: bool, g: bool, w: bool ) // end of [STATE1] (* ****** ****** *) stadef safecond1 (f: bool, c: bool, g: bool) = (f == c || c != g) stadef safecond2 (f: bool, g: bool, w: bool) = (f == g || g != w) (* ****** ****** *) extern praxi stateTrans01 { f,c,g,w:bool | safecond1 (f, c, g) ; safecond2 (f, g, w) } ( pf: !STATE0 (f, c, g, w) >> STATE1 (f, c, g, w) ) : void // end of [stateTrans01] extern praxi stateTrans10 {f,c,g,w:bool} ( pf: !STATE1 (f, c, g, w) >> STATE0 (f, c, g, w) ) : void // end of [stateTrans10] (* ****** ****** *) absvtype F (f:bool) = ptr absvtype C (c:bool) = ptr absvtype G (g:bool) = ptr absvtype W (w:bool) = ptr (* ****** ****** *) extern praxi nF (f: F (true)): void extern praxi nC (f: C (true)): void extern praxi nG (f: G (true)): void extern praxi nW (f: W (true)): void (* ****** ****** *) fun F (): F (false) = $extval (F (false), "0") fun C (): C (false) = $extval (C (false), "0") fun G (): G (false) = $extval (G (false), "0") fun W (): W (false) = $extval (W (false), "0") (* ****** ****** *) extern fun move_f_ (ptr): void = "mac#move_f" implement move_f_ (_) = println! ("move_f: ferryman alone") extern fun move_fc_ (ptr, ptr): void = "mac#move_fc" implement move_fc_ (_, _) = println! ("move_fc: ferryman with cabbage") extern fun move_fg_ (ptr, ptr): void = "mac#move_fg" implement move_fg_ (_, _) = println! ("move_fg: ferryman with goat") extern fun move_fw_ (ptr, ptr): void = "mac#move_fw" implement move_fw_ (_, _) = println! ("move_fw: ferryman with wolf") (* ****** ****** *) extern fun move_f {f,c,g,w:bool} ( pf: !STATE1 (f, c, g, w) >> STATE0 (~f, c, g, w) | f: !F(f) >> F(~f) ) : void = "mac#move_f" // end of [move_f] extern fun move_fc {f,c,g,w:bool | f == c} ( pf: !STATE1 (f, c, g, w) >> STATE0 (~f, ~c, g, w) | f: !F(f) >> F(~f) , c: !C(c) >> C(~c) ) : void = "mac#move_fc" // end of [move_fc] extern fun move_fg {f,c,g,w:bool | f == g} ( pf: !STATE1 (f, c, g, w) >> STATE0 (~f, c, ~g, w) | f: !F(f) >> F(~f) , g: !G(g) >> G(~g) ) : void = "mac#move_fg" // end of [move_fg] extern fun move_fw {f,c,g,w:bool | f == w} ( pf: !STATE1 (f, c, g, w) >> STATE0 (~f, c, g, ~w) | f: !F(f) >> F(~f) , w: !W(w) >> W(~w) ) : void = "mac#move_fw" // end of [move_fw] (* ****** ****** *) extern fun solvePuzzle ( pf: !STATE0 (false, false, false, false) >> STATE0 (true, true, true, true) | f: !F (false) >> F (true) , c: !C (false) >> C (true) , g: !G (false) >> G (true) , w: !W (false) >> W (true) ) : void // end of [solvePuzzle] (* ****** ****** *) implement solvePuzzle (pf | f, c, g, w) = let prval () = stateTrans01 (pf) val () = move_fg (pf | f, g) prval () = stateTrans01 (pf) val () = move_f (pf | f) prval () = stateTrans01 (pf) val () = move_fc (pf | f, c) prval () = stateTrans01 (pf) val () = move_fg (pf | f, g) prval () = stateTrans01 (pf) val () = move_fw (pf | f, w) prval () = stateTrans01 (pf) val () = move_f (pf | f) prval () = stateTrans01 (pf) val () = move_fg (pf | f, g) in // nothing end // end of [solvePuzzle] (* ****** ****** *) implement main0 () = let // val f = F () val c = C () val g = G () val w = W () // prval ( pf, fpf ) = __assert () where { extern praxi __assert : () - (STATE0 (false, false, false, false), STATE0 (true, true, true, true) - void) // end of [extern] } (* end of [prval] *) // val () = solvePuzzle (pf | f, c, g, w) // prval () = nF (f) prval () = nC (c) prval () = nG (g) prval () = nW (w) // prval () = fpf (pf) // in // nothing end // end of [main0] (* ****** ****** *) (* end of [ferryman.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/Makefile0000644000175000017500000004031413431250607020717 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### CCOPT=gcc -std=c99 ###### ifeq ("$(PATSHOME)","") PATSHOMEQ="$(ATSHOME)" else PATSHOMEQ="$(PATSHOME)" endif ###### PATSOPT=$(PATSHOMEQ)/bin/patsopt PATSLIB=$(PATSHOMEQ)/ccomp/atslib/lib ###### all:: ###### LNS=ln -s RMF=rm -f ###### # all:: arith_overflow arith_overflow: arith_overflow.exe arith_overflow.exe: arith_overflow_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< arith_overflow_dats.c: arith_overflow.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output arith_overflow_dats.c --dynamic arith_overflow.dats clean:: ; $(RMF) arith_overflow_dats.o clean:: ; $(RMF) arith_overflow_dats.c cleanall:: ; $(RMF) arith_overflow arith_overflow.exe all:: coinflip coinflip: coinflip.exe coinflip.exe: coinflip_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< coinflip_dats.c: coinflip.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output coinflip_dats.c --dynamic coinflip.dats clean:: ; $(RMF) coinflip_dats.o clean:: ; $(RMF) coinflip_dats.c cleanall:: ; $(RMF) coinflip coinflip.exe all:: ferryman ferryman: ferryman.exe ferryman.exe: ferryman_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< ferryman_dats.c: ferryman.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output ferryman_dats.c --dynamic ferryman.dats clean:: ; $(RMF) ferryman_dats.o clean:: ; $(RMF) ferryman_dats.c cleanall:: ; $(RMF) ferryman ferryman.exe all:: fibver_loop fibver_loop: fibver_loop.exe fibver_loop.exe: fibver_loop_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< fibver_loop_dats.c: fibver_loop.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output fibver_loop_dats.c --dynamic fibver_loop.dats clean:: ; $(RMF) fibver_loop_dats.o clean:: ; $(RMF) fibver_loop_dats.c cleanall:: ; $(RMF) fibver_loop fibver_loop.exe all:: fibver_trec fibver_trec: fibver_trec.exe fibver_trec.exe: fibver_trec_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< fibver_trec_dats.c: fibver_trec.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output fibver_trec_dats.c --dynamic fibver_trec.dats clean:: ; $(RMF) fibver_trec_dats.o clean:: ; $(RMF) fibver_trec_dats.c cleanall:: ; $(RMF) fibver_trec fibver_trec.exe all:: matrixops matrixops: matrixops.exe matrixops.exe: matrixops_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< matrixops_dats.c: matrixops.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output matrixops_dats.c --dynamic matrixops.dats clean:: ; $(RMF) matrixops_dats.o clean:: ; $(RMF) matrixops_dats.c cleanall:: ; $(RMF) matrixops matrixops.exe # all:: absreimpl absreimpl: absreimpl.exe absreimpl.exe: absreimpl_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< absreimpl_dats.c: absreimpl.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output absreimpl_dats.c --dynamic absreimpl.dats clean:: ; $(RMF) absreimpl_dats.o clean:: ; $(RMF) absreimpl_dats.c cleanall:: ; $(RMF) absreimpl absreimpl.exe all:: autodiff autodiff: autodiff.exe autodiff.exe: autodiff_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_GCBDW -O2 -o $@ $< -lm -lgc autodiff_dats.c: autodiff.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output autodiff_dats.c --dynamic autodiff.dats clean:: ; $(RMF) autodiff_dats.o clean:: ; $(RMF) autodiff_dats.c cleanall:: ; $(RMF) autodiff autodiff.exe all:: fib_memo fib_memo: fib_memo.exe fib_memo.exe: fib_memo_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib fib_memo_dats.c: fib_memo.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output fib_memo_dats.c --dynamic fib_memo.dats clean:: ; $(RMF) fib_memo_dats.o clean:: ; $(RMF) fib_memo_dats.c cleanall:: ; $(RMF) fib_memo fib_memo.exe all:: fourslot fourslot: fourslot.exe fourslot.exe: fourslot_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< fourslot_dats.c: fourslot.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output fourslot_dats.c --dynamic fourslot.dats clean:: ; $(RMF) fourslot_dats.o clean:: ; $(RMF) fourslot_dats.c cleanall:: ; $(RMF) fourslot fourslot.exe all:: foreach_getline foreach_getline: foreach_getline.exe foreach_getline.exe: foreach_getline_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< foreach_getline_dats.c: foreach_getline.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output foreach_getline_dats.c --dynamic foreach_getline.dats clean:: ; $(RMF) foreach_getline_dats.o clean:: ; $(RMF) foreach_getline_dats.c cleanall:: ; $(RMF) foreach_getline foreach_getline.exe all:: hanoi hanoi: hanoi.exe hanoi.exe: hanoi_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< hanoi_dats.c: hanoi.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output hanoi_dats.c --dynamic hanoi.dats clean:: ; $(RMF) hanoi_dats.o clean:: ; $(RMF) hanoi_dats.c cleanall:: ; $(RMF) hanoi hanoi.exe all:: intsqrt_cps intsqrt_cps: intsqrt_cps.exe intsqrt_cps.exe: intsqrt_cps_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< intsqrt_cps_dats.c: intsqrt_cps.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output intsqrt_cps_dats.c --dynamic intsqrt_cps.dats clean:: ; $(RMF) intsqrt_cps_dats.o clean:: ; $(RMF) intsqrt_cps_dats.c cleanall:: ; $(RMF) intsqrt_cps intsqrt_cps.exe all:: intsqrt_prf intsqrt_prf: intsqrt_prf.exe intsqrt_prf.exe: intsqrt_prf_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< intsqrt_prf_dats.c: intsqrt_prf.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output intsqrt_prf_dats.c --dynamic intsqrt_prf.dats clean:: ; $(RMF) intsqrt_prf_dats.o clean:: ; $(RMF) intsqrt_prf_dats.c cleanall:: ; $(RMF) intsqrt_prf intsqrt_prf.exe all:: monad_list monad_list: monad_list.exe monad_list.exe: monad_list_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< monad_list_dats.c: monad_list.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output monad_list_dats.c --dynamic monad_list.dats clean:: ; $(RMF) monad_list_dats.o clean:: ; $(RMF) monad_list_dats.c cleanall:: ; $(RMF) monad_list monad_list.exe all:: monad_maybe monad_maybe: monad_maybe.exe monad_maybe.exe: monad_maybe_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< monad_maybe_dats.c: monad_maybe.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output monad_maybe_dats.c --dynamic monad_maybe.dats clean:: ; $(RMF) monad_maybe_dats.o clean:: ; $(RMF) monad_maybe_dats.c cleanall:: ; $(RMF) monad_maybe monad_maybe.exe all:: monad_state monad_state: monad_state.exe monad_state.exe: monad_state_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< monad_state_dats.c: monad_state.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output monad_state_dats.c --dynamic monad_state.dats clean:: ; $(RMF) monad_state_dats.o clean:: ; $(RMF) monad_state_dats.c cleanall:: ; $(RMF) monad_state monad_state.exe all:: morse_enum morse_enum: morse_enum.exe morse_enum.exe: morse_enum_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib morse_enum_dats.c: morse_enum.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output morse_enum_dats.c --dynamic morse_enum.dats clean:: ; $(RMF) morse_enum_dats.o clean:: ; $(RMF) morse_enum_dats.c cleanall:: ; $(RMF) morse_enum morse_enum.exe all:: memoization memoization: memoization.exe memoization.exe: memoization_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< memoization_dats.c: memoization.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output memoization_dats.c --dynamic memoization.dats clean:: ; $(RMF) memoization_dats.o clean:: ; $(RMF) memoization_dats.c cleanall:: ; $(RMF) memoization memoization.exe all:: myfixptcomb myfixptcomb: myfixptcomb.exe myfixptcomb.exe: myfixptcomb_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< myfixptcomb_dats.c: myfixptcomb.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output myfixptcomb_dats.c --dynamic myfixptcomb.dats clean:: ; $(RMF) myfixptcomb_dats.o clean:: ; $(RMF) myfixptcomb_dats.c cleanall:: ; $(RMF) myfixptcomb myfixptcomb.exe all:: mysendmailist mysendmailist: mysendmailist.exe mysendmailist.exe: mysendmailist_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< mysendmailist_dats.c: mysendmailist.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output mysendmailist_dats.c --dynamic mysendmailist.dats clean:: ; $(RMF) mysendmailist_dats.o clean:: ; $(RMF) mysendmailist_dats.c cleanall:: ; $(RMF) mysendmailist mysendmailist.exe all:: passwdgen passwdgen: passwdgen.exe passwdgen.exe: passwdgen_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< passwdgen_dats.c: passwdgen.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output passwdgen_dats.c --dynamic passwdgen.dats clean:: ; $(RMF) passwdgen_dats.o clean:: ; $(RMF) passwdgen_dats.c cleanall:: ; $(RMF) passwdgen passwdgen.exe all:: queens_lazy queens_lazy: queens_lazy.exe queens_lazy.exe: queens_lazy_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< queens_lazy_dats.c: queens_lazy.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output queens_lazy_dats.c --dynamic queens_lazy.dats clean:: ; $(RMF) queens_lazy_dats.o clean:: ; $(RMF) queens_lazy_dats.c cleanall:: ; $(RMF) queens_lazy queens_lazy.exe all:: queens_loop queens_loop: queens_loop.exe queens_loop.exe: queens_loop_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< queens_loop_dats.c: queens_loop.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output queens_loop_dats.c --dynamic queens_loop.dats clean:: ; $(RMF) queens_loop_dats.o clean:: ; $(RMF) queens_loop_dats.c cleanall:: ; $(RMF) queens_loop queens_loop.exe all:: queens_comb queens_comb: queens_comb.exe queens_comb.exe: queens_comb_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< queens_comb_dats.c: queens_comb.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output queens_comb_dats.c --dynamic queens_comb.dats clean:: ; $(RMF) queens_comb_dats.o clean:: ; $(RMF) queens_comb_dats.c cleanall:: ; $(RMF) queens_comb queens_comb.exe all:: queens_lincomb queens_lincomb: queens_lincomb.exe queens_lincomb.exe: queens_lincomb_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< queens_lincomb_dats.c: queens_lincomb.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output queens_lincomb_dats.c --dynamic queens_lincomb.dats clean:: ; $(RMF) queens_lincomb_dats.o clean:: ; $(RMF) queens_lincomb_dats.c cleanall:: ; $(RMF) queens_lincomb queens_lincomb.exe all:: randerlin randerlin: randerlin.exe randerlin.exe: randerlin_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< randerlin_dats.c: randerlin.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output randerlin_dats.c --dynamic randerlin.dats clean:: ; $(RMF) randerlin_dats.o clean:: ; $(RMF) randerlin_dats.c cleanall:: ; $(RMF) randerlin randerlin.exe all:: readdirall readdirall: readdirall.exe readdirall.exe: readdirall_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib readdirall_dats.c: readdirall.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output readdirall_dats.c --dynamic readdirall.dats clean:: ; $(RMF) readdirall_dats.o clean:: ; $(RMF) readdirall_dats.c cleanall:: ; $(RMF) readdirall readdirall.exe all:: sieve sieve: sieve.exe sieve.exe: sieve_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< sieve_dats.c: sieve.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output sieve_dats.c --dynamic sieve.dats clean:: ; $(RMF) sieve_dats.o clean:: ; $(RMF) sieve_dats.c cleanall:: ; $(RMF) sieve sieve.exe all:: sllist_mapfree sllist_mapfree: sllist_mapfree.exe sllist_mapfree.exe: sllist_mapfree_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< sllist_mapfree_dats.c: sllist_mapfree.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output sllist_mapfree_dats.c --dynamic sllist_mapfree.dats clean:: ; $(RMF) sllist_mapfree_dats.o clean:: ; $(RMF) sllist_mapfree_dats.c cleanall:: ; $(RMF) sllist_mapfree sllist_mapfree.exe all:: stdlib_bsearch stdlib_bsearch: stdlib_bsearch.exe stdlib_bsearch.exe: stdlib_bsearch_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< stdlib_bsearch_dats.c: stdlib_bsearch.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output stdlib_bsearch_dats.c --dynamic stdlib_bsearch.dats clean:: ; $(RMF) stdlib_bsearch_dats.o clean:: ; $(RMF) stdlib_bsearch_dats.c cleanall:: ; $(RMF) stdlib_bsearch stdlib_bsearch.exe all:: strmat strmat: strmat.exe strmat.exe: strmat_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< strmat_dats.c: strmat.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output strmat_dats.c --dynamic strmat.dats clean:: ; $(RMF) strmat_dats.o clean:: ; $(RMF) strmat_dats.c cleanall:: ; $(RMF) strmat strmat.exe all:: tempfunctor tempfunctor: tempfunctor.exe tempfunctor.exe: tempfunctor_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< tempfunctor_dats.c: tempfunctor.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output tempfunctor_dats.c --dynamic tempfunctor.dats clean:: ; $(RMF) tempfunctor_dats.o clean:: ; $(RMF) tempfunctor_dats.c cleanall:: ; $(RMF) tempfunctor tempfunctor.exe all:: totient totient: totient.exe totient.exe: totient_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -lm totient_dats.c: totient.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output totient_dats.c --dynamic totient.dats clean:: ; $(RMF) totient_dats.o clean:: ; $(RMF) totient_dats.c cleanall:: ; $(RMF) totient totient.exe all:: treap_man treap_man: treap_man.exe treap_man.exe: treap_man_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< treap_man_dats.c: treap_man.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output treap_man_dats.c --dynamic treap_man.dats clean:: ; $(RMF) treap_man_dats.o clean:: ; $(RMF) treap_man_dats.c cleanall:: ; $(RMF) treap_man treap_man.exe all:: wclines wclines: wclines.exe wclines.exe: wclines_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib wclines_dats.c: wclines.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output wclines_dats.c --dynamic wclines.dats clean:: ; $(RMF) wclines_dats.o clean:: ; $(RMF) wclines_dats.c cleanall:: ; $(RMF) wclines wclines.exe all:: word-chain word-chain: word-chain.exe word-chain.exe: word-chain_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib word-chain_dats.c: word-chain.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output word-chain_dats.c --dynamic word-chain.dats clean:: ; $(RMF) word-chain_dats.o clean:: ; $(RMF) word-chain_dats.c cleanall:: ; $(RMF) word-chain word-chain.exe # ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats clean:: ; $(RMF) Makefile.exe cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/memoization.dats0000644000175000017500000000357213431250607022474 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Time: the 13th of July, 2016 // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS/atspre_staload_libats_ML.hats" // (* ****** ****** *) // extern fun {a,b:t0p} memo : (a - b) -> (a - b) // (* ****** ****** *) // extern fun{} fib(n: int): int // (* ****** ****** *) // extern fun{} fib_rec(n: int): int // implement {}(*tmp*) fib_rec = fib<> // (* ****** ****** *) // implement {}(*tmp*) fib(n) = if n >= 2 then (fib_rec(n-1) + fib_rec(n-2)) % 1000000 else n // end of [if] // (* ****** ****** *) // extern val fib_memo : (int) - int // implement {}(*tmp*) fib_rec(n) = fib_memo(n) // (* ****** ****** *) local staload FM = "libats/ML/SATS/funmap.sats" staload _(*anon*) = "libats/ML/DATS/funmap.dats" staload _(*anon*) = "libats/DATS/funmap_avltree.dats" implement(key) $FM.compare_key_key(x, y) = gcompare_val_val (x, y) in implement {a,b} memo(f) = let // typedef key = a and itm = b typedef map = $FM.map(key,itm) val M = ref ($FM.funmap_nil<>()) // in // ( lam a = case+ $FM.funmap_search(!M, a) of | ~Some_vt b => b | ~None_vt _ => b where { val b = f a val-~None_vt() = let val (vbox pf | t) = ref_get_viewptr(M) in $effmask_ref($FM.funmap_insert(!t, a, b)) end } ) // end // end of [memo] end // end of [local] (* ****** ****** *) implement fib_memo = memo(lam(n) => fib(n)) (* ****** ****** *) implement main0() = { val N = 1000 val () = println! ("fib(", N, ") = ", fib(N)) } (* ****** ****** *) (* end of [memoization.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/myfixptcomb.dats0000644000175000017500000000177613431250607022506 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Implementing fixed-point operator // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // fun myfix {a:type} ( f: lazy(a) - a ) : lazy(a) = $delay(f(myfix(f))) // val fact = myfix{int-int} ( lam(ff)(x) => if x > 0 then x * !ff(x-1) else 1 ) (* ****** ****** *) typedef cfun(a:t@ype, b:t@ype) = a - b (* ****** ****** *) // fun { a:t@ype }{ b:t@ype } myfix2 ( f: cfun(a, b) -> cfun(a, b) ) : cfun(a, b) = lam x => f(myfix2(f))(x) // (* ****** ****** *) // val fact2 = myfix2 ( lam(ff)(x) => if x > 0 then x * ff(x-1) else 1 ) (* ****** ****** *) // implement main0 () = { val () = println! ("fact(10) = ", !fact(10)) val () = println! ("fact2(10) = ", fact2(10)) } // (* ****** ****** *) (* end of [myfixptcomb.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/coinflip.dats0000644000175000017500000000724413431250607021744 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // One of the early examples // It was first done in ATS/Geizella // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // Start Time: circa May, 2007 // (* ****** ****** *) // // HX: // The *awkward* style should be not be changed // so as to preserve a bit history about the development // of ATS // (* ****** ****** *) // // HX-2013-06-08: ported to ATS2 // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload TIME = "libats/libc/SATS/time.sats" staload STDLIB = "libats/libc/SATS/stdlib.sats" (* ****** ****** *) extern fun array_int_ptr_make : {n:nat} int n -<0,!wrt> [l:addr] (@[Nat][n] @ l | ptr l) = "ats_array_int_ptr_make" extern fun array_int_ptr_free : {n:nat} {l:addr} (@[Nat?][n] @ l | ptr l) -<0,!wrt> void = "ats_array_int_ptr_free" extern fun array_int_ptr_get : {n:nat} {l:addr} (! @[Nat][n] @ l | ptr l, natLt n) -<> Nat = "ats_array_int_ptr_get" extern fun array_int_ptr_set : {n:nat} {l:addr} (! @[Nat][n] @ l | ptr l, natLt n, Nat) -<0,!wrt> void = "ats_array_int_ptr_set" %{^ atstype_ptr ats_array_int_ptr_make (atstype_int n) { return calloc (n, sizeof(int)) ; } atsvoid_t0ype ats_array_int_ptr_free (atstype_ptr A) { free (A) ; return ; } atstype_int ats_array_int_ptr_get (atstype_ptr A, atstype_int i) { return ((atstype_int *)A)[i] ; } atsvoid_t0ype ats_array_int_ptr_set (atstype_ptr A, atstype_int i, atstype_int x) { ((atstype_int *)A)[i] = x ; return ; } %} // end of [%{^] (* ****** ****** *) fn heads_one (): bool = $STDLIB.drand48 () < 0.5 fn heads_many{n:nat} (n: int n): natLte n = let // fun aux {i,s:nat | i + s <= n} .. (i: int i, s: int s): natLte n = if i > 0 then (if heads_one () then aux (i-1, s+1) else aux (i-1, s)) else s // end of [if] in aux (n, 0) end // end of [heads_many] fn test_one {n:nat} {l:addr} (pf: ! @[Nat][n+1] @ l | A: ptr l, n: int n): void = let val cnt = heads_many (n) in array_int_ptr_set (pf | A, cnt, array_int_ptr_get (pf | A, cnt) + 1) end // end of [test_one] fun test_many {m,n:nat}{l:addr} .. ( pf: ! @[Nat][n+1] @ l | A: ptr l, m: int m, n: int n ) : void = let in // if m > 0 then (test_one (pf | A, n); test_many (pf | A, m-1, n)) else () // end of [if] // end // end of [test_many] #define INC 16 fn test_show_one {l:addr} (times: Nat): void = let fun aux {t,i:nat} .. (t: int t, i: int i): void = if i < t then (print '*'; aux (t, i+INC)) else print_newline () in if times > 0 then aux (times, 0) else print ".\n" end // end of [test_show_one] fun test_show_all {n,i:nat | i <= n+1} {l:addr} .. (pf: ! @[Nat][n+1] @ l | A: ptr l, n: int n, i: int i): void = if i <= n then (test_show_one (array_int_ptr_get (pf | A, i)); test_show_all (pf | A, n, i+1)) else () // end of [test_show_all] (* ****** ****** *) #define M 4096 #define N 32 staload UN = "prelude/SATS/unsafe.sats" implement main0 () = { // val time = $TIME.time () val () = $STDLIB.srand48($UN.cast{lint}(time)) val (pf | A) = array_int_ptr_make (N+1) // val clock_sta = $UN.cast{double}($TIME.clock ()) // val () = test_many (pf | A, M, N) val () = test_show_all (pf | A, N, 1) val () = array_int_ptr_free (pf | A) // val clock_fin = $UN.cast{double}($TIME.clock ()) // val time_spent = (clock_fin - clock_sta) / $UN.cast{double}($TIME.CLOCKS_PER_SEC) // end of [val] // val _ = $extfcall (int, "printf", "time spent = %.10f\n", time_spent) // } // end of [main0] (* ****** ****** *) (* end of [coinflip.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/totient.dats0000644000175000017500000000437213431250607021626 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" (* ****** ****** *) // // HX: for [intsqrt] based on [sqrt]: // #staload M = "libats/libc/SATS/math.sats" #staload _(*M*) = "libats/libc/DATS/math.dats" // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) (* // // HX-2018-01-08: // The following Haskell code is taken from // http://blog.vmchale.com/article/ats-totient // hsIsPrime :: (Integral a) => a -> Bool hsIsPrime 1 = False hsIsPrime x = all ((/=0) . (x mod)) [2..m] where m = floor (sqrt (fromIntegral x :: Float)) hsTotient :: (Integral a) => a -> a hsTotient n = (n * product [ p - 1 | p <- ps ]) div product ps where ps = filter (\k -> hsIsPrime k && n mod k == 0) [2..n] *) (* ****** ****** *) // (* // fun atsIsPrime(1) = false | atsIsPrime(x) = forall ( range(2, intsqrt(x)) ) where { implement intrange_forall$pred<>(i) = x % i > 0 } (* where *) // withtype intGt(0) -> bool // *) fun atsIsPrime(x: intGt(0)): bool = case+ x of | 1 => false | _ =>> intrange_forall(2, $M.intsqrt(x)+1) where { implement intrange_forall$pred<>(i) = x % i > 0 } (* where *) // end of [atsIsPrime] // (* ****** ****** *) (* // // HX-2018-01-08: // [atsTotient] is memory-clean: // *) fun atsTotient(n: intGt(0)): int = if atsIsPrime(n) then n-1 else let val ks = $UNSAFE.castvwtp0 {stream_vt(intGt(0))}(stream_vt_make_intrange_lr(2, n)) val ps = stream2list_vt(stream_vt_filter_cloptr(ks, lam(k) => atsIsPrime(k))) val totient = list_vt_foldleft_cloptr(ps, n, lam(r, p) => if n%p=0 then (r/p)*(p-1) else r) in list_vt_free(ps); totient end (* ****** ****** *) // #staload TIMING = "contrib/atscntrb\ /atscntrb-hx-mytesting/SATS/timing.sats" #staload _(*TIMING*) = "contrib/atscntrb\ /atscntrb-hx-mytesting/DATS/timing.dats" // (* ****** ****** *) implement main0() = () where { val _ = $TIMING.time_spent_cloref ( lam() => (println! ("totient(1000000) = ", atsTotient(1000000)); 0) ) } (* end of [ignoret] *) // end of [main] (* ****** ****** *) (* end of [totient.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/tempfunctor.dats0000644000175000017500000000312313431250607022477 0ustar brandonbrandon(* ****** ****** *) // // HX-2017-03-29: // // For template-based // implementation of functors // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) // abstype List0$name // (* ****** ****** *) // sortdef ftype = t@ype -> type // (* ****** ****** *) // absprop FUNCTOR(fnm: type, ftype) // (* ****** ****** *) // dataprop eqfun_t0ype_type (ftype, ftype) = {f:ftype} EQFUN_t0ype_type(f, f) of () // (* ****** ****** *) extern fun { fnm:type }{a,b:t@ype} functor_map {f: t@ype -> type} ( pf: FUNCTOR(fnm, f) | fopr: a - b ) : f(a) - f(b) // end-of [functor_map] (* ****** ****** *) extern praxi FUNCTOR_List0 ( // argless ) : FUNCTOR(List0$name, List0) extern praxi FUNCTOR_List0_elim {f:ftype} ( pf: FUNCTOR(List0$name, f) ) : eqfun_t0ype_type(f, List0) (* ****** ****** *) implement (a,b:t@ype) functor_map (pf | fopr) = let // prval EQFUN_t0ype_type() = FUNCTOR_List0_elim(pf) // in lam(xs) => list_vt2t(list_map_cloref(xs, fopr)) end // end of [functor_map] (* ****** ****** *) implement main0((*void*)) = { // val xs = $list{int} (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) // val ys = functor_map(FUNCTOR_List0() | lam(x) => x * x)(xs) // val () = println! ("xs = ", xs) val () = println! ("ys = ", ys) // } (* end of [main0] *) (* ****** ****** *) (* end of [tempfunctor.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/queens_lazy.dats0000644000175000017500000000540013431250607022470 0ustar brandonbrandon(* // // HX-2014-03-28: // A program to solve the 8-queens problem // based on lazy evaluation // *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // #include "share/HATS/atspre_staload_libats_ML.hats" // (* ****** ****** *) // staload UN = $UNSAFE // (* ****** ****** *) fun path_test ( xs: list0 (int), x0: int ) : bool = let // fun aux ( xs: list0 (int), df: int ) : bool = ( case+ xs of | nil0 () => true | cons0 (x, xs) => if x0 != x && abs (x0 - x) != df then aux (xs, df+1) else false // end of [cons0] ) // in aux (xs, 1(*df*)) end // end of [path_test] (* ****** ****** *) #define N 8 (* ****** ****** *) fun path_next ( xs: list0(int) ) : stream(list0(int)) = $delay ( let val n = length (xs) in // if n < N then path_next2 (xs, 0) else let val-cons0 (x, xs) = xs in path_next2 (xs, x + 1) end // end of [else] // end ) // end of [path_next] and path_next2 ( xs: list0(int), x0: int ) : stream_con(list0(int)) = ( if x0 < N then let val pass = path_test (xs, x0) in if pass then let val xs = cons0 (x0, xs) in stream_cons (xs, path_next (xs)) end // end of [then] else path_next2 (xs, x0 + 1) // end of [if] end // end of [then] else ( case+ xs of | cons0 (x, xs) => path_next2 (xs, x+1) | nil0 () => stream_nil(*void*) ) (* end of [else] *) ) (* end of [path_next2] *) (* ****** ****** *) val theSolutions = stream_filter_cloref (path_next (nil0(*void*)), lam (xs) => length (xs) >= N) // end of [theSolutions] (* ****** ****** *) fun fprint_row ( out: FILEref, i: int ) : void = let // fun aux (i: int): void = if i > 0 then (fprint (out, ". "); aux (i-1)) else () // val () = aux (i) val () = fprint (out, "Q ") val () = aux (N-1-i) // in // nothing end // end of [fprint_row] (* ****** ****** *) fun fprint_board ( out: FILEref, xs: list0(int) ) : void = let // implement fprint_val (out, x) = fprint_row (out, x) // val () = fprint_list0_sep (out, xs, "\n") val () = fprint_newline (out) // in // nothing end // end of [fprint_board] (* ****** ****** *) val () = let // fun printall ( xss: stream(list0(int)), i: int ) : void = ( case+ !xss of | stream_cons (xs, xss) => { val () = println! ("Solution #", i, ":") val () = fprint_board (stdout_ref, list0_reverse(xs)) val () = print_newline () val () = printall (xss, i+1) } | stream_nil () => () ) // in printall (theSolutions, 1) end // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [queens_lazy.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/monad_list.dats0000644000175000017500000000510213431250607022261 0ustar brandonbrandon(* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // Time: the 10th of November, 2015 // // Please see: // http://rosettacode.org/wiki/Amb // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/HATS/atspre_staload_libats_ML.hats" // (* ****** ****** *) // staload "libats/ML/SATS/monad_list.sats" staload _ = "libats/ML/DATS/monad_list.dats" // (* ****** ****** *) // datatype words = | Sing of stringGt(0) | Comb of (words, words) // (* ****** ****** *) // extern fun words_get_beg(words): char extern fun words_get_end(words): char // (* ****** ****** *) // implement words_get_beg(w0) = ( case+ w0 of | Sing(cs) => cs[0] | Comb(w1, w2) => words_get_beg(w1) ) // implement words_get_end(w0) = ( case+ w0 of | Sing(cs) => cs[pred(length(cs))] | Comb(w1, w2) => words_get_end(w2) ) // (* ****** ****** *) // fun words_comb ( w1: words, w2: words ) : list0(words) = if (words_get_end(w1)=words_get_beg(w2)) then list0_sing(Comb(w1, w2)) else list0_nil() // (* ****** ****** *) // extern fun fprint_words: fprint_type(words) // overload fprint with fprint_words // implement fprint_words(out, ws) = ( case+ ws of | Sing(w) => fprint(out, w) | Comb(w1, w2) => fprint!(out, w1, ' ', w2) ) // implement fprint_val = fprint_words // (* ****** ****** *) // typedef a = stringGt(0) and b = words // val ws1 = $list{a}("this", "that", "a") val ws1 = list_map_fun(ws1, lam(x) => Sing(x)) val ws1 = monad_list_list(list0_of_list_vt(ws1)) // val ws2 = $list{a}("frog", "elephant", "thing") val ws2 = list_map_fun(ws2, lam(x) => Sing(x)) val ws2 = monad_list_list(list0_of_list_vt(ws2)) // val ws3 = $list{a}("walked", "treaded", "grows") val ws3 = list_map_fun(ws3, lam(x) => Sing(x)) val ws3 = monad_list_list(list0_of_list_vt(ws3)) // val ws4 = $list{a}("slowly", "quickly") val ws4 = list_map_fun(ws4, lam(x) => Sing(x)) val ws4 = monad_list_list(list0_of_list_vt(ws4)) // (* ****** ****** *) // val ws12 = monad_bind2 (ws1, ws2, lam (w1, w2) => monad_list_list(words_comb(w1, w2))) val ws123 = monad_bind2 (ws12, ws3, lam (w12, w3) => monad_list_list(words_comb(w12, w3))) val ws1234 = monad_bind2 (ws123, ws4, lam (w123, w4) => monad_list_list(words_comb(w123, w4))) // (* ****** ****** *) implement main0 () = { val () = fprintln! (stdout_ref, "ws1234 = ", ws1234) } (* ****** ****** *) (* end of [monad_list.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/strmat.dats0000644000175000017500000001162613431250607021452 0ustar brandonbrandon(* // An implementation of string matching in continuation-passing style. // The code is translated by Hongwei Xi from an earlier version in DML, // which was originally adopted by him from a version by Frank Pfenning // (fp+ AT cs DOT cmu DOT edu) *) (* ****** ****** *) // // Author: Hongwei Xi (May 2007) // (* ****** ****** *) // // HX-2012-07-20: ported to ATS2 // (* ****** ****** *) // // HX-2012-06-21: compiled to run with ATS/Postiats // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) datatype regexp (int) = | Any_char(1) (* any character *) | Empty(1) (* empty string matches Empty *) | Char(1) of Char (* "c" matches Char (c) *) // every char other than "c" matches Char (c) | Char_not(1) of Char // every char in [c1, c2] matches Chars (c1, c2) | Chars(1) of (Char, Char) // every char not in [c1, c2] matches Chars (c1, c2) | Chars_not(1) of (Char, Char) // cs matches Alt(p1, p2) if cs matches either p1 or p2 | {i,j:nat} Alt(i+j+1) of (regexp i, regexp j) // cs matches Seq(p1, p2) if a prefix of cs matches p1 and the rest matches p2 | {i,j:nat} Seq(i+j+1) of (regexp i, regexp j) // cs matches Star(p) if cs matches some, possibly 0, copies of p | {i:nat} Star(i+1) of regexp i // end of [regexp] typedef Regexp = [i:nat] regexp i // Note that [acc] is verified to be terminating! sortdef two = {a:nat | a < 2} fun acc {i0,n,i:nat} {b:two | i+b <= i0} .. ( // metric for termination verification cs0: string i0, i0: int i0, p: regexp n, i: int i, b: int b, k: {i':nat; b':two | i'+b' <= i+b} (int i', int b') - Bool ) : Bool = let (* val () = (print "acc: enter"; print_newline ()) *) in // case+ p of | Any_char () => if i > 0 then k (i-1, 1) else false | Empty () => k (i, b) | Char c => ( if i > 0 then (if c = cs0[i0-i] then k (i-1, 1) else false) else false ) // end of [Char] | Char_not c => ( if i > 0 then (if c <> cs0[i0-i] then k (i-1, 1) else false) else false ) // end of [Char_not] | Chars (c1, c2) => ( if i > 0 then let val c = cs0[i0-i] in if c1 <= c then (if c <= c2 then k (i-1, 1) else false) else false end else false // end of [if] ) // end of [Chars] | Chars_not (c1, c2) => ( if i > 0 then let val c = cs0[i0-i] in if c < c1 then k (i-1, 1) else if c > c2 then k (i-1, 1) else false end else false ) // end of [Chars_not] | Alt (p1, p2) => ( if acc (cs0, i0, p1, i, b, k) then true else acc (cs0, i0, p2, i, b, k) ) // end of [Alt] | Seq (p1, p2) => ( acc (cs0, i0, p1, i, b, lam (i', b') => acc (cs0, i0, p2, i', b', k)) ) // end of [Seq] | Star p0 => ( if k (i, b) then true else ( acc (cs0, i0, p0, i, 0, lam (i', b') => if b' = 0 then false else acc (cs0, i0, p, i', 1, k) ) // end of [acc] ) // end of [if] ) // end of [Star] // end // end of [acc] extern fun accept (cs0: String, p: Regexp): Bool implement accept (cs0, p) = let val i0 = g1uint2int (string_length cs0) in acc (cs0, i0, p, i0, 0, lam (i, _) => i = 0) end // end of [accept] // // HX: some tests // val regexp_digit = Chars ('0', '9') val regexp_digits = Star (Chars ('0', '9')) val regexp_uint = Alt (Char '0', Seq (Chars ('1', '9'), regexp_digits)) val regexp_int = Alt (regexp_uint, Seq (Alt (Char '-', Char '+'), regexp_uint)) val regexp_dot_sats = Seq (Star Any_char, Seq (Char '.', Seq (Char 's', Seq (Char 'a', Seq (Char 't', Char 's'))))) val regexp_dot_dats = Seq (Star Any_char, Seq (Char '.', Seq (Char 'd', Seq (Char 'a', Seq (Char 't', Char 's'))))) implement main (argc, argv) = let val ans10 = accept ("123456789", regexp_int) val () = assertloc (ans10) val ans11 = accept ("+123456789", regexp_int) val () = assertloc (ans11) val ans12 = accept ("-123456789", regexp_int) val () = assertloc (ans12) val ans20 = accept ("abcde", regexp_int) val () = assertloc (~ans20) val ans31 = accept ("abcde.sats", regexp_dot_sats) val () = assertloc (ans31) val ans32 = accept ("abcde.sats", regexp_dot_dats) val () = assertloc (~ans32) val ans41 = accept ("abcde.dats", regexp_dot_sats) val () = assertloc (~ans41) val ans42 = accept ("abcde.dats", regexp_dot_dats) val () = assertloc (ans42) in (* print ("ans10(true) = "); print ans10; print_newline (); print ("ans11(true) = "); print ans11; print_newline (); print ("ans12(true) = "); print ans12; print_newline (); print ("ans20(false) = "); print ans20; print_newline (); print ("ans31(true) = "); print ans31; print_newline (); print ("ans32(false) = "); print ans32; print_newline (); print ("ans41(false) = "); print ans41; print_newline (); print ("ans42(true) = "); print ans42; print_newline (); *) 0(*normal*) end // end of [main] (* ****** ****** *) (* end of [strmat.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/.keeper0000644000175000017500000000000013431250607020517 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/monad_state.dats0000644000175000017500000000556513431250607022443 0ustar brandonbrandon(* ****** ****** *) // // Experimenting with state-monad // (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: hwxi AT cs DOT bu DOT edu ** Time: the third of July, 2013 *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) datatype unit = unit of () (* ****** ****** *) abstype monad_type (t@ype(*env*), t@ype(*val*)) = ptr typedef monad (t:t@ype, a: t@ype) = monad_type (t, a) (* ****** ****** *) typedef cfun1 (a: t@ype, b: t@ype) = a - b typedef cfun2 (a1: t@ype, a2: t@ype, b: t@ype) = (a1, a2) - b (* ****** ****** *) stadef cfun = cfun1 stadef cfun = cfun2 (* ****** ****** *) extern fun {t:t@ype} {a,b:t@ype} monad_bind (monad (t, a), cfun (a, monad (t, b))): monad (t, b) // end of [monad_bind] extern fun {t:t@ype} {a1,a2,b:t@ype} monad_bind2 ( monad (t, a1), monad (t, a2), cfun (a1, a2, monad (t, b)) ) : monad (t, b) // end of [monad_bind2] (* ****** ****** *) extern fun {t:t@ype} {a:t@ype} monad_return (x: a): monad (t, a) extern fun{t:t@ype} monad_get (): monad (t, t) extern fun{t:t@ype} monad_put (env: t): monad (t, unit) extern fun{t:t@ype}{a:t@ype} monad_runST (m: monad (t, a), env: t): (a, t) (* ****** ****** *) local assume monad_type (env: t@ype, a: t@ype) = env - (a, env) in (* in of [local] *) implement {t}{a,b} monad_bind (m0, f) = ( lam (env) => let val (x0, env) = m0 (env) val m1 = f (x0): t - (b, t) in m1 (env) end // end of [lam] ) implement {t}{a1,a2,b} monad_bind2 (m0, m1, f) = ( lam (env) => let val (x0, env) = m0 (env) val (x1, env) = m1 (env) val m2 = f (x0, x1): t - (b, t) in m2 (env) end // end of [lam] ) implement {t}{a} monad_return (x) = lam (env) => (x, env) implement{t} monad_get () = lam x => (x, x) implement{t} monad_put (env) = lam _ => (unit(), env) implement{t}{a} monad_runST (m, env) = m (env) end // end of [local] (* ****** ****** *) typedef t = int (* ****** ****** *) fun incr ( ) : monad (t, unit) = ( monad_bind (monad_get (), lam env => monad_put (env+1)) ) // end of [incr] (* ****** ****** *) fun addm ( mx: monad (t, int) , my: monad (t, int) ) : monad (t, int) = monad_bind2 ( mx, my, lam (x, y) => monad_bind (incr (), lam _ => monad_return (x+y)) ) // end of [addm] (* ****** ****** *) val m0 = monad_return (0) val m1 = monad_return (1) val m_1 = monad_return (~1) val m012 = (m0 \addm m1) \addm m_1 (* ****** ****** *) // val (res, env) = monad_runST (m012, 0(*env*)) // val () = println! ("res(0) = ", res) val () = println! ("env(2) = ", env) // (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [monad_state.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/sllist_mapfree.dats0000644000175000017500000000275113431250607023150 0ustar brandonbrandon(* // // HX-2013-04: // some code for use in Matt's HCSS talk in May // *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/sllist.sats" staload _ = "libats/DATS/gnode.dats" staload _ = "libats/DATS/sllist.dats" (* ****** ****** *) extern fun{ a:t0p}{b:t0p } sllist_mapfree$fwork (x: a): b extern fun{ a:t0p}{b:t0p } sllist_mapfree {n:nat} (xs: sllist (INV(a), n)): sllist (b, n) (* ****** ****** *) #define nil sllist_nil #define cons sllist_cons #define :: sllist_cons (* ****** ****** *) implement{a}{b} sllist_mapfree (xs) = ( if sllist_is_cons (xs) then let var xs = xs val x0 = sllist_uncons (xs) val y0 = sllist_mapfree$fwork (x0) in y0 :: sllist_mapfree (xs) end else let prval () = sllist_free_nil (xs) in sllist_nil () end (* end of [if] *) ) (* ****** ****** *) fun test() = let // val out = stdout_ref val xs = sllist_nil{int}() val xs = 1 :: 2 :: 3 :: 4 :: 5 :: xs val () = fprintln! (out, "xs = ", xs) // local implement sllist_mapfree$fwork (a) = a * a in val xs2 = sllist_mapfree (xs) end // val () = fprintln! (out, "xs2 = ", xs2) // val () = sllist_free (xs2) // in // nothing end // end of [test] (* ****** ****** *) implement main0 (argc, argv) = test() (* ****** ****** *) (* end of [sllist_mapfree.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/word-chain.dats0000644000175000017500000001351213431250607022167 0ustar brandonbrandon(* ****** ****** *) // // For chaining words based on // their occurrences in a given file // (* ****** ****** *) // // HX-2014-06 // (* ****** ****** *) // #include "share/atspre_staload.hats" // #include "share/HATS/atspre_staload_libats_ML.hats" // (* ****** ****** *) // staload UN = $UNSAFE // (* ****** ****** *) // staload "libats/SATS/qlist.sats" staload _ = "libats/DATS/qlist.dats" // (* ****** ****** *) // staload "libats/SATS/hashfun.sats" // (* ****** ****** *) // typedef word = string // typedef wordlst = List0 (word) typedef wordlst(n:int) = list(word, n) vtypedef wordlst_vt(n:int) = list_vt(word, n) // vtypedef wordque(n:int) = qlist(word, n) // (* ****** ****** *) extern fun wordque_insert_list {n0:int}{n:int} ( wq: !wordque(n0) >> wordque(n0+n), ws: wordlst(n) ) : void // end of [wordque_insert_list] (* ****** ****** *) implement wordque_insert_list (wq, ws) = ( case+ ws of | nil () => () | cons (w, ws) => let val () = qlist_insert (wq, w) in wordque_insert_list (wq, ws) end // end of [cons] ) (* ****** ****** *) extern fun{} word_get (): stropt implement word_get<> () = let // implement fileref_get_word$isalpha<> (letter) = not(isspace(letter)) // in // strptr2stropt (fileref_get_word (stdin_ref)) // end // end of [word_get] (* ****** ****** *) // extern fun stringlst_hash (xs: List0(string)): ulint // (* ****** ****** *) implement stringlst_hash (xs) = let // fun loop ( K: ulint, H: ulint, xs: List0(string) ) : ulint = ( case+ xs of | list_nil () => H | list_cons (x, xs) => let val H = string_hash_multiplier (K, H, x) in loop (K, H, xs) end // end of [list_cons] ) // in loop (33ul(*K*), 31415926536ul(*H0*), xs) end // end of [stringlst_hash] (* ****** ****** *) abstype wordmap_type = ptr typedef wordmap = wordmap_type (* ****** ****** *) extern fun wordmap_make_nil (): wordmap (* ****** ****** *) extern fun wordmap_find {n:int | n > 0} ( map: wordmap, ws: wordlst(n) ) : wordlst // end-of-fun (* ****** ****** *) extern fun wordmap_insert {n:int | n > 0} ( map: wordmap, ws: wordlst(n), w: word ) : wordmap // end of [wordmap_insert] (* ****** ****** *) extern fun{} fprint_wordmap ( out: FILEref, map: wordmap ) : void // end of [fprint_wordmap] // overload fprint with fprint_wordmap // (* ****** ****** *) local // typedef key = list0(word) typedef itm = list0(word) // assume wordmap_type = hashtbl (key, itm) // implement hash_key (k) = $effmask_all (stringlst_hash (g1ofg0(k))) // implement equal_key_key (k1, k2) = list_equal (g1ofg0(k1), g1ofg0(k2)) // in (* in-of-local *) implement wordmap_make_nil ( // argumentless ) = hashtbl_make_nil (i2sz(4096)) implement wordmap_find (map, ws) = let // val ws = g0ofg1_list (ws) val res = hashtbl_search_ref (map, ws) val isnot = cptr_isnot_null (res) // in // if isnot then g1ofg0($UN.cptr_get(res)) else list_nil((*void*)) // end // end of [wordmap_find] implement wordmap_insert (map, ws, w) = let // val ws = g0ofg1_list (ws) val res = hashtbl_search_ref (map, ws) val isnot = cptr_isnot_null (res) // in // if isnot then let val ws = $UN.cptr_get (res) val () = $UN.cptr_set (res, cons0 (w, ws)) in map end // end of [then] else let val () = hashtbl_insert_any (map, ws, list0_sing (w)) in map end // end of [else] // end // end of [wordmap_insert] implement {}(*tmp*) fprint_wordmap (out, map) = fprint_hashtbl (out, map) end // end of [local] (* ****** ****** *) extern fun{} wordmap_build{n:pos}(ws: wordlst(n)): wordmap (* ****** ****** *) implement {}(*tmp*) wordmap_build {n}(ws0) = let // fun loop ( map: wordmap, wq: qlist(word, n) ) : wordmap = let // val opt = word_get () val issome = stropt_is_some (opt) // in // if issome then let val w = stropt_unsome (opt) val ws = qlist_takeout_list (wq) val ws = list_vt2t (ws) val map = wordmap_insert (map, ws, w) val+list_cons (_, ws) = ws val () = wordque_insert_list (wq, ws) val () = qlist_insert (wq, w) in loop (map, wq) end // end of [then] else let val () = free (qlist_takeout_list (wq)) val () = qlist_free_nil{word} (wq) in (map) end // end of [else] // end // end of [loop] // val map = wordmap_make_nil () val wq0 = qlist_make_nil{word}() val ((*void*)) = wordque_insert_list (wq0, ws0) // in loop (map, wq0) end // end of [wordmap_build] (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" // extern fun wordlst_choose {n:pos}(ws: wordlst(n), n: int(n)): word // implement wordlst_choose {n} (ws, n) = let val x = $STDLIB.random() val i = $UN.cast{natLt(n)}(x mod $UN.cast2lint(n)) in list_get_at (ws, i) end // end of [wordlst_choose] // (* ****** ****** *) // extern fun wordmap_nchoose{n:pos} (map: wordmap, ws0: wordlst(n), N: int): void // (* ****** ****** *) implement wordmap_nchoose {n}(map, ws0, N) = let // fun loop ( ws: wordlst_vt(n), i: int ) : void = ( if (i > 0) then let typedef key = list0(word) typedef itm = list0(word) val ws_itm = wordmap_find (map, $UN.list_vt2t(ws)) val n = length (ws_itm) // val () = assertloc (n > 0) val w_chosen = wordlst_choose (ws_itm, n) val () = fprint! (stdout_ref, ' ', w_chosen) // val+~list_vt_cons (_, ws) = ws val ws = list_vt_extend (ws, w_chosen) in loop (ws, pred(i)) end // end of [then] else list_vt_free (ws) ) // in loop (list_copy (ws0), N) end // end of [wordmap_nchoose] (* ****** ****** *) implement main0 () = () where { // val ws0 = $list{word}("", "") // val map = wordmap_build (ws0) // (* local implement fprint_hashtbl$sep<> = fprint_newline implement fprint_hashtbl$mapto<> (out) = fprint (out, " => ") in (*in-of-local*) val () = fprintln! (stdout_ref, "map = ", map) end // end of [local] *) // val ws1 = $list{word}("", "") val () = fprint_list_sep (stdout_ref, ws1, " ") val () = wordmap_nchoose (map, ws1, 250) // } (* end of [main0] *) (* ****** ****** *) (* end of [word-chain.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/queens_loop.dats0000644000175000017500000000526013431250607022466 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* // // A program to solve the 8-queens problem // // This example is taken from Appel's book: // Modern Compiler Design and Implementation in ML // *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) #define N 8 #define N1 (N-1) (* ****** ****** *) implement{a} arrayref_make_elt {n} (asz, x0) = let // val (pf, pfgc | p0) = array_ptr_alloc (asz) // var i: size_t var p: ptr = p0 val () = $effmask_ntm ( // for ( i := i2sz(0); i < asz; i := succ(i) ) ( $UN.ptr0_set (p, x0); p := ptr_succ(p) ) // end of [for] // ) // end of [val] // in $UN.castvwtp0{arrayref(a,n)}((pf, pfgc | p0)) end // end of [arrayref_make_elt] (* ****** ****** *) local var NSOL: Nat = 0 in // in of [local] val NSOL = ref_make_viewptr {Nat} (view@ (NSOL) | addr@(NSOL)) end // end of [local] (* ****** ****** *) // val row = arrayref_make_elt (g1i2u(N), 0) val col = arrayref_make_elt (g1i2u(N), 0) // val diag1 = arrayref_make_elt (g1i2u(N+N1), 0) val diag2 = arrayref_make_elt (g1i2u(N+N1), 0) // (* ****** ****** *) fun fprint_board ( out: FILEref ) : void = let // var i: int? and j: int? // val ( ) = for* (i: natLte N) => ( i := 0; i < N; i := i + 1 ) let val i = i val () = for* (j: natLte N) => (j := 0; j < N; j := j + 1) let val j = j in fprint_string (out, if (col[i] = j) then " Q" else " .") end // end of [val] in fprint_string (out, "\n") end // end of [for] // val () = fprint_newline (out) // in // empty end (* end of [fprint_board] *) (* ****** ****** *) fun tryit ( out: FILEref, c: natLte N ) : void = let in // if (c = N) then let val () = !NSOL := !NSOL + 1 in fprint_board (out) end else let var r: natLte(N) // unitialized in // for ( r := 0; r < N; r := r+1 ) let val r = r in if (row[r] = 0) then ( if (diag1[r+c] = 0) then ( if (diag2[r+N1-c] = 0) then ( row[r] := 1; diag1[r+c] := 1; diag2[r+N1-c] := 1; col[c] := r; tryit (out, c+1); row[r] := 0; diag1[r+c] := 0; diag2[r+N1-c] := 0; ) (* end of [if] *) ) (* end of [if] *) ) (* end of [if] *) end // end of [for] // end // end of [if] // end // end of [tryit] (* ****** ****** *) implement main0 () = { // val out = stdout_ref val () = tryit (out, 0) val () = println! ("The total number of solutions is [", !NSOL, "]") // end of [val] } // end of [main] (* ****** ****** *) (* end of [queens_loop.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/wclines.dats0000644000175000017500000000534513431250607021605 0ustar brandonbrandon(* ****** ****** *) (* ** ** A fast approach to counting newlines ** ** Author: ** Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: April 17, 2013 ** *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN="prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/libc/SATS/stdio.sats" (* ****** ****** *) %{^ extern void *rawmemchr(const void *s, int c); #define atslib_rawmemchr rawmemchr %} extern fun rawmemchr {l:addr}{m:int} ( pf: bytes_v (l, m) | p: ptr l, c: int ) : [l2:addr | l+m > l2] ( bytes_v (l, l2-l), bytes_v (l2, l+m-l2) | ptr l2 ) = "mac#atslib_rawmemchr" // end of [rawmemchr] (* ****** ****** *) #define BUFSZ (16*1024) (* ****** ****** *) extern fun freadc // read bytes and then add [c] at the end {l:addr} ( pf: !bytes_v (l, BUFSZ) | inp: FILEref, p: ptr l, c: char ) : size_t // end of [freadc] implement freadc ( pf | inp, p, c ) = n where { val n = $extfcall (size_t, "fread", p, sizeof, BUFSZ-1, inp) val () = $UN.ptr0_set (ptr_add (p, n), c) } (* end of [freadc] *) (* ****** ****** *) extern fun wclbuf {l:addr}{n:int} ( pf: !bytes_v (l, n) | p: ptr l, pz: ptr, c: int, res: int ) : int // end of [wclbuf] implement wclbuf (pf | p, pz, c, res) = let val (pf1, pf2 | p2) = rawmemchr (pf | p, c) in // if p2 < pz then let prval (pf21, pf22) = array_v_uncons (pf2) val res = wclbuf (pf22 | ptr_succ(p2), pz, c, res + 1) prval () = pf2 := array_v_cons (pf21, pf22) prval () = pf := bytes_v_unsplit (pf1, pf2) in res end else let prval () = pf := bytes_v_unsplit (pf1, pf2) in res end // end of [if] // end (* end of [wcbuf] *) (* ****** ****** *) extern fun wclfil{l:addr} ( pf: !bytes_v (l, BUFSZ) | inp: FILEref, p: ptr l, c: int ) : int // end of [wclfil] implement wclfil{l} (pf | inp, p, c) = let // fun loop ( pf: !bytes_v (l, BUFSZ) | inp: FILEref, p: ptr l, c: int, res: int ) : int = let // val n = freadc (pf | inp, p, $UN.cast{char}(c)) // in // if n > 0 then let val pz = ptr_add (p, n) val res = wclbuf (pf | p, pz, c, res) in loop (pf | inp, p, c, res) end else res (* end of [if] *) // end // end of [loop] // in loop (pf | inp, p, c, 0(*res*)) end (* end of [wclfil] *) (* ****** ****** *) implement main0 (argc, argv) = { var inp: FILEref = stdin_ref val () = ( if argc >= 2 then inp := fopen_ref_exn (argv[1], file_mode_r) // end of [if] ) // val ( pfat, pfgc | p ) = malloc_gc (g1i2u(BUFSZ)) prval () = pfat := b0ytes2bytes_v (pfat) val res = wclfil (pfat | inp, p, $UN.cast2int('\n')) val () = mfree_gc (pfat, pfgc | p) // val () = println! ("wclines: number of lines = ", res) // val () = if argc >= 2 then fclose_exn (inp) } (* end of [main0] *) (* ****** ****** *) (* end of [wclines.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/arith_overflow.dats0000644000175000017500000000403113431250607023162 0ustar brandonbrandon(* ****** ****** *) // // HX-2013-04-03: // this example illustrates an idea for // addressing integer arithmetic overflow // (* ****** ****** *) stacst INTMIN : int and INTMAX : int stadef isintb (i:int): bool = (INTMIN <= i && i <= INTMAX) (* ****** ****** *) abst@ype intb(i: int) = int // bounded integers (* ****** ****** *) extern praxi lemma_INTMINMAX ( // argmentless ) : [INTMIN < ~0X7FFF ; INTMAX >= 0x7FFF] void (* ****** ****** *) extern castfn intb2int{i:int}(i: intb i): int(i) extern castfn int2intb{i:int | isintb(i)} (i: int(i)): intb(i) (* ****** ****** *) extern praxi lemma_intb_param{i: int}(i: intb i): [isintb(i)] void extern fun add_intb_intb {i,j:int | isintb(i+j)} (i: intb (i), j: intb (j)):<> intb (i+j) overload + with add_intb_intb extern fun sub_intb_intb {i,j:int | isintb(i-j)} (i: intb (i), j: intb (j)):<> intb (i-j) overload - with sub_intb_intb extern fun half_intb {i:nat}(i: intb (i)):<> intb (ndiv(i,2)) overload half with half_intb extern fun lt_intb_intb{i,j:int}(i: intb i, j: intb j):<> bool (i < j) overload < with lt_intb_intb (* ****** ****** *) extern fun{a:t@ype} bsearch{n:nat} ( A: &(@[a][n]), n: intb n, x0: &a, cmp: (&a, &a) -> int ) : bool // end of [bsearch] implement {a} bsearch{n} (A, n, x0, cmp) = let // #define i2b int2intb // prval () = lemma_INTMINMAX() prval () = lemma_intb_param(n) // fun loop { l,r:nat | l <= r ; r <= n} .. ( A: &(@[a][n]), x0: &a, l: intb l, r: intb r ) : bool = let in // if l < r then let val m = l + half(r - l) (* // // HX: typechecking fails // if the next line replaces the above one // as arith overflow may potentially occur // val m = (l + r) / 2 *) val m2 = intb2int (m) val sgn = cmp (x0, A.[m2]) in if sgn < 0 then loop (A, x0, l, m) else if sgn > 0 then loop (A, x0, m+i2b(1), r) else true (*found*) end else false (*~found*) // end // end of [loop] // in loop (A, x0, i2b(0), n) end // end of [bsearch] (* ****** ****** *) implement main((*void*)) = 0 (* ****** ****** *) (* end of [arith_overflow.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/intsqrt_prf.dats0000644000175000017500000000556713431250607022522 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* ** A verfied implementation of the integer sqare root function ** that is non-tail-recursive and of logarithmic time complexity ** ** Author: Hongwei Xi ** Authoremail: hwxi AT cs DOT bu DOT edu ** Time: November, 2009 *) (* ****** ****** *) // // The code is ported to ATS2 by Hongwei Xi on Friday, July 20, 2012 // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) staload _ = "prelude/DATS/integer.dats" (* ****** ****** *) propdef INTSQRT (x: int, n: int) = [x0,x1:nat | x0 <= x; x < x1] (MUL (n, n, x0), MUL (n+1, n+1, x1)) // end of [SQRT] extern prfun INTSQRT_4_lemma {x:nat} {n2:nat} (pf: INTSQRT (x/4, n2)): [n:int | 2*n2 <= n; n <= 2*n2+1] INTSQRT (x, n) // end of [INTSQRT_4_lemma] primplmnt INTSQRT_4_lemma // nonrec {x} {n2} ([x0:int,x1:int] pf) = let prval pf0 = pf.0 // MUL (n2, n2, x0) // x0 <= x/4 prval pf1 = pf.1 // MUL (n2+1, n2+1, x1) // x/4 < x1 prval pf1_alt = mul_expand_linear {1,1} {1,1} (pf0) prval () = mul_isfun (pf1, pf1_alt) stadef n_1 = n2 + n2 stadef n_2 = n_1 + 1 and n_3 = n_1 + 2 prval pf0_1 = mul_expand_linear {2,0} {2,0} (pf0) stadef x_2 = 4 * x0 + 4 * n2 + 1 prval pf0_2 = mul_expand_linear {1,1} {1,1} (pf0_1) prval pf0_3 = mul_expand_linear {1,2} {1,2} (pf0_1) in sif (x < x_2) then #[n_1 | (pf0_1, pf0_2)] else #[n_2 | (pf0_2, pf0_3)] end // end of [ISORT_4_lemma] (* ****** ****** *) extern // 10 points fun intsqrt {x:nat} (x: int x):<> [n:nat] (INTSQRT (x, n) | int n) // end of [intsqrt] implement intsqrt (x) = let // fun aux {x:nat}.. // non-tail-recursive (x: int x):<> [n:nat] (INTSQRT (x, n) | int n) = if x > 0 then let val x4 = x \ndiv 4 val [n2:int] (pf4 | n2) = aux (x4) prval [n:int] pf = INTSQRT_4_lemma {x} {n2} (pf4) val n_1 = n2 + n2 val n_2 = n_1 + 1 val (pf_mul | x1) = g1int_mul2 (n_2, n_2) in if x < x1 then let prval () = ( sif (n==2*n2) then () else let prval () = mul_isfun (pf_mul, pf.0) in (*nothing*) end // end of [sif] ) : [n==2*n2] void in (pf | n_1) end else let prval () = ( sif (n==2*n2+1) then () else let prval () = mul_isfun (pf_mul, pf.1) in (*nothing*) end // end of [sif] ) : [n==2*n2+1] void in (pf | n_2) end // end of [if] end else let prval pf0_mul = mul_make {0,0} () prval pf1_mul = mul_make {1,1} () in ((pf0_mul, pf1_mul) | 0) end // end of [if] in aux (x) end // end of [intsqrt] (* ****** ****** *) implement main0 ((*void*)) = { val () = assertloc ( (intsqrt(1023)).1 = 31 ) val () = assertloc ( (intsqrt(1024)).1 = 32 ) val () = assertloc ( (intsqrt(1025)).1 = 32 ) } // end of [main0] (* ****** ****** *) (* end of [intsqrt.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/morse_enum.dats0000644000175000017500000000362013431250607022304 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* // // This code is based on some code by // Eli Frey (eli.frey AT gmail DOT com) // // Minor modification by Hongwei Xi (gmhwxi AT gmail DOT com) // // Time: July 18-19, 2012 // *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc - -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime -L${PATSHOME}/ccomp/atslib/lib -latslib *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/ML/SATS/atspre.sats" staload _ = "libats/ML/DATS/atspre.dats" // staload "libats/ML/SATS/string.sats" staload _ = "libats/ML/DATS/string.dats" // (* ****** ****** *) staload STDIO = "libats/libc/SATS/stdio.sats" (* ****** ****** *) #define nil stream_nil #define cons stream_cons #define :: stream_cons (* ****** ****** *) fun from{n:int} ( n: intGte(n) ) : stream (intGte(n)) = $delay(n :: from{n+1}(n+1)) (* ****** ****** *) typedef sstring = stream string (* ****** ****** *) fun morse (n: Nat): sstring = let // fn add_dot (str: string):<> string = "." + str fn add_dash (str: string):<> string = "-" + str // fn go (n: Nat):<> sstring = $effmask_all ( case+ n of | 0 => $delay ("" :: $delay (nil)) | 1 => $delay ("." :: $delay (nil)) | n =>> let val add_dots = stream_map_fun( morse( n-1 ), add_dot ) val add_dashes = stream_map_fun( morse( n-2 ), add_dash ) in stream_merge_fun( add_dots, add_dashes, lam (_, _) => 0 ) end // end of [n] ) // end of [go] in stream_nth_exn (stream_map_fun(from{0}(0), go), n) end // end of [morse] (* ****** ****** *) implement main0 () = { // val xs = morse (5) val xs = stream2list (xs) val () = list_vt_foreach_fun (xs, lam (x) =<1> $STDIO.puts_exn (x)) val () = list_vt_free (xs) // } // end of [main] (* ****** ****** *) (* end of [morse_enum.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/fourslot.dats0000644000175000017500000000710413431250607022011 0ustar brandonbrandon(* ****** ****** *) // // Fourslot algorithm by Simpson // for fully asynchrous read/write // (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start time: May, 2013 // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) abst@ype bit = int extern castfn bit2int(i: bit): natLt(2) extern castfn int2bit(i: natLt(2)): bit extern fun{} not_bit (i: bit): bit overload not with not_bit implement{} not_bit (i) = int2bit (1-bit2int(i)) (* ****** ****** *) absvtype data_vtype (a:t@ype) = ptr vtypedef data (a:t0p) = data_vtype (a) extern fun{a:t0p} data_make_elt (x: a): data (a) extern fun{} data_free {a:t0p} (A: data (a)): void extern fun{a:t0p} data_read (A: !data (a), i: bit, j: bit): a extern fun{a:t0p} data_write (A: !data (a), i: bit, j: bit, x: a): void local assume data_vtype (a:t0p) = arrayptr (a, 4) in (* in of [local] *) implement{a} data_make_elt (x) = arrayptr_make_elt (i2sz(4), x) implement{} data_free (A) = arrayptr_free (A) implement{a} data_read (A, i, j) = A[2 * bit2int(i) + bit2int(j)] implement{a} data_write (A, i, j, x) = A[2 * bit2int(i) + bit2int(j)] := x end // end of [local] (* ****** ****** *) absvtype slot_vtype = ptr vtypedef slot = slot_vtype extern fun{} slot_make (): slot extern fun{} slot_free (S: slot): void extern fun{} slot_get (S: !slot, i: bit): bit extern fun{} slot_set (S: !slot, i: bit, j: bit): void local assume slot_vtype = arrayptr (bit, 2) in (* in of [local] *) implement{} slot_make () = arrayptr_make_elt (i2sz(2), int2bit(0)) // end of [slot_make] implement{} slot_free (S) = arrayptr_free (S) implement{} slot_get (S, i) = S[bit2int(i)] implement{} slot_set (S, i, j) = S[bit2int(i)] := j end // end of [local] (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // extern fun{} latest_get (): bit extern fun{} latest_set (i: bit): void extern fun{} reading_get (): bit extern fun{} reading_set (i: bit): void // (* ****** ****** *) fun{a:t0p} fourslot_read ( A: !data (a), S: !slot ) : a = let val pair = latest_get () val () = reading_set (pair) val index = slot_get (S, pair) in data_read (A, pair, index) end // end of [fourslot_read] (* ****** ****** *) fun{a:t0p} fourslot_write ( A: !data (a), S: !slot, x: a ) : void = let val pair = not (reading_get ()) val index = not (slot_get (S, pair)) val () = data_write (A, pair, index, x) val () = slot_set (S, pair, index) val () = latest_set (pair) in // nothing end // end of [fourslot_write] (* ****** ****** *) implement main0 () = { // local var latest: int = 0 in implement{} latest_get () = $UN.ptr1_get (addr@(latest)) implement{} latest_set (i) = $UN.ptr1_set (addr@(latest), i) end // end of [local] // local var reading: int = 0 in implement{} reading_get () = $UN.ptr1_get (addr@(reading)) implement{} reading_set (i) = $UN.ptr1_set (addr@(reading), i) end // end of [local] // typedef T = int // val out = stdout_ref // val A = data_make_elt (0) // val S = slot_make () // val x0 = fourslot_read (A, S) val () = fprintln! (out, "x0 = ", x0) val () = assertloc (x0 = 0) // val () = fourslot_write (A, S, 1) val () = fourslot_write (A, S, ~1) // val x1 = fourslot_read (A, S) val () = fprintln! (out, "x1 = ", x1) val () = assertloc (x1 = ~1) // val () = slot_free (S) // val () = data_free (A) // } // end of [main0] (* ****** ****** *) (* end of [fourslot.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/sieve.dats0000644000175000017500000000335013431250607021246 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* // // Implementing Erathosthene's sieve // // author: Hongwei Xi (November, 2006) // *) (* ****** ****** *) // // HX-2012-11-25: ported to ATS/Postiats (typecheck) // HX-2012-06-08: ported to ATS/Postiats (compilation) // (* ****** ****** *) (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" (* ****** ****** *) // // lazy list: // datatype llist = lcons of (intGte 2, () - llist) // #define :: lcons // (* ****** ****** *) fun filter (p: intGte 2 - bool, xs: llist): llist = let val+ x :: fxs = xs in if p (x) then x :: (lam () = filter (p, fxs ())) else filter (p, fxs ()) end // end of [filter] // infix nmod macdef nmod (x1, x2) = g1int_nmod (,(x1), ,(x2)) fun sieve ( xs: llist ) : llist = let val+ x :: fxs = xs in x :: (lam () => sieve (filter (lam (x') => (x' nmod x) != 0, fxs ()))) end // end of [sieve] // val rec primes: llist = let fun aux (i: intGte 2): llist = i :: (lam () => aux (i + 1)) in sieve (aux 2) end // end of [primes] // (* ****** ****** *) fun print_ints (N: int, xs: llist): void = ( if N > 0 then let val+ x :: fxs = xs in print x; print ", "; print_ints (N-1, fxs ()) end else (print "..."; print_newline ()) ) // end of [print_ints] (* ****** ****** *) // implement main (argc, argv) = let // val N = ( if argc >= 2 then $extfcall (int, "atoi", argv[1]) else 100 ) : int // end of [val] // val () = assertloc (N > 0) // in let val () = print_ints (N, primes) in 0(*normal*) end end // end of [main] // (* ****** ****** *) (* end of [sieve.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/fib_memo.dats0000644000175000017500000000327713431250607021720 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Computing the Fibonacci numbers // // Author: Hongwei Xi (June 2015) // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) extern fun{} fib(int): int extern fun{} fib_memo_get(int): Option_vt(int) extern fun{} fib_memo_set(n: int, res: int): int (* ****** ****** *) implement {}(*tmp*) fib(n) = if n >= 2 then let val opt = fib_memo_get(n) in case+ opt of | ~Some_vt(res) => res | ~None_vt((*void*)) => fib_memo_set(n, fib(n-2) + fib(n-1)) end else n // end of [if] (* ****** ****** *) // implement {}(*tmp*) fib_memo_get(n) = None_vt() // implement {}(*tmp*) fib_memo_set(n, res) = res // (* ****** ****** *) local // typedef key = int and itm = int // in (* in-of-local *) // #include "libats/ML/HATS/myhashtblref.hats" // end // end of [local] (* ****** ****** *) fun myfib{n:nat} (n: int(n)): int = let // val map = myhashtbl_make_nil(n+n+1) // implement fib_memo_get<> (n) = map.search(n) // implement fib_memo_set<> (n, res) = let (* val () = println! ("fib_memo_set: n = ", n) val () = println! ("fib_memo_set: res = ", res) *) val-~None_vt() = map.insert(n, res) in res end // in fib(n) end // end of [myfib] (* ****** ****** *) implement main0(argc, argv) = { // val N = 40 // val N = ( if argc >= 2 then g0string2int(argv[1]) else N ) : int // end of [val] // val N = g1ofg0(N) val () = assertloc(N >= 0) // val () = println! ("myfib(", N, ") = ", myfib(N)) } (* end of [main0] *) (* ****** ****** *) (* end of [fib_memo.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/passwdgen.dats0000644000175000017500000000530213431250607022125 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* ** ** random password generation ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: August, 2008 ** *) (* ****** ****** *) // // HX: Happy Thanksgiving! // HX: ported to Postiats on November 22, 2012 // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload STDLIB = "libats/libc/SATS/stdlib.sats" // staload RANDGEN = "contrib/atscntrb\ /atscntrb-hx-mytesting/SATS/randgen.sats" // (* ****** ****** *) implement{a} arrayref_make_elt {n} (asz, x0) = let // val (pf, pfgc | p0) = array_ptr_alloc (asz) // var i: size_t var p: ptr = p0 val () = $effmask_ntm ( // for ( i := i2sz(0); i < asz; i := succ(i) ) ( $UN.ptr0_set (p, x0); p := ptr_succ(p) ) // end of [for] // ) // end of [val] // in $UN.castvwtp0{arrayref(a,n)}((pf, pfgc | p0)) end // end of [arrayref_make_elt] (* ****** ****** *) implement(a:t0p) fprint_arrayref_sep {n} (out, A, asz, sep) = let // fun loop (i: sizeLte(n)): void = ( if i < asz then ( if i > 0 then fprint_string (out, sep); fprint_val (out, A[i]); loop (succ(i)) ) else () // end of [if] ) (* end of [loop] *) // prval () = lemma_arrayref_param (A) // in loop (i2sz(0)) end // end of [fprint_arrayref_sep] (* ****** ****** *) %{^ #include #include atsvoid_t0ype srand_with_time () { srand(time(0)) ; return ; } %} extern fun srand_with_time (): void = "ext#" (* ****** ****** *) // (* fun{} randint {n:pos} (n: int n): natLt (n) *) // implement $RANDGEN.randint<>{n}(n) = $UN.cast{natLt(n)}($STDLIB.rand() mod n) // (* ****** ****** *) implement main ( argc, argv ) = 0 where { var n: int = 8 val () = if argc >= 2 then (n := $STDLIB.atoi(argv[1])) // end of [val] // val n = g1ofg0_int(n) // prval [n:int] EQINT() = eqint_make_gint(n) // val () = assertloc(n >= 0) val () = srand_with_time((*void*)) // fun loop{i:nat | i <= n} .. ( passwd: arrayref(char, n), n: int(n), i: int(i) ) : void = if (i < n) then let val () = (passwd[i] := int2char0($RANDGEN.randint(94) + 33)) in loop (passwd, n, i+1) end else () // end of [if] // val asz = g1int2uint(n) val passwd = arrayref_make_elt(asz, '\0') val ((*void*)) = loop(passwd, n, 0) val ((*void*)) = fprint_arrayref_sep(stdout_ref, passwd, asz, "") val ((*void*)) = fprint_newline(stdout_ref) // } // end of [main] (* ****** ****** *) (* end of [passwdgen.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/stdlib_bsearch.dats0000644000175000017500000000513513431250607023106 0ustar brandonbrandon(* ** HX-2013: ** The following code is largely adapted from ** the Linux Programmer's manual for bsearch *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/libc/SATS/stdlib.sats" (* ****** ****** *) %{^ typedef struct mi { int nr; char *name; } mi_t ; mi_t months[] = { { 1, "jan" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" }, { 5, "may" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" }, { 9, "sep" }, {10, "oct" }, {11, "nov" }, {12, "dec" } } ; #define nr_of_months (sizeof(months)/sizeof(struct mi)) %} (* ****** ****** *) typedef mi = $extype_struct "mi_t" of { nr= int, name= string } // end of [typedef] (* ****** ****** *) stacst N: int val months = $extval (arrayref (mi, N), "months") val nr_of_months = $extval (int(N), "nr_of_months") val () = assertloc (nr_of_months = 12) (* ****** ****** *) fn mi_init ( mi: &mi? >> _ , nr: int, name: string ) : void = ( mi.nr := nr; mi.name := name ) fn cmpref_mi_mi (x: &mi, y: &mi):<> int = compare (x.name, y.name) // end of [cmpref_mi_mi] fun name2nr (name: string): void = let // var key: mi val () = mi_init (key, 0, name) val asz = g1int2uint(nr_of_months) val pres = let val (vbox pf | p) = arrayref_get_viewptr (months) in bsearch {mi}{N} (key, !p, asz, sizeof, cmpref_mi_mi) end // end of [val] // in // if pres > 0 then let val (pf, fpf | p) = $UN.ptr1_vtake {mi} (pres) val () = println! (pres->name, ": month #", pres->nr) prval () = fpf (pf) in // nothing end else let val () = println! (key.name, ": unknown month") in // nothing end // end of [if] // end // end of [name2nr] (* ****** ****** *) // // How to test: // ./stdlib_bsearch.exe jan feb mar apr may jun jul aug sep oct nov dec // (* ****** ****** *) implement main {n} ( argc, argv ) = 0 where { val asz = g1int2uint(nr_of_months) val () = let val (vbox pf | p) = arrayref_get_viewptr (months) in qsort {mi}{N} (!p, asz, sizeof, cmpref_mi_mi) // HX: quicksorting end // end of [val] // val ( ) = let // fun loop ( argc: int n, argv: !argv(n), i: natLte(n) ) : void = let in if argc > i then (name2nr (argv[i]); loop (argc, argv, i+1)) else () // end of [if] end // end of [loop] // in loop (argc, argv, 1) end // end of [val] // } // end of [main] (* ****** ****** *) (* end of [stdlib_bsearch.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/fibver_loop.dats0000644000175000017500000000303213431250607022436 0ustar brandonbrandon(* ** A verfied implementation that computes the Fibonacci numbers ** Note that proof construction is combined with the while-loop ** construct in this example. ** ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: September, 2012 *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) staload _(*INT*) = "prelude/DATS/integer.dats" (* ****** ****** *) dataprop FIB (int, int) = | FIB0 (0, 0) | FIB1 (1, 1) | {n:nat} {r0,r1:int} FIB2 (n+2, r0+r1) of (FIB (n, r0), FIB (n+1, r1)) // end of [FIB] (* ****** ****** *) fun fibver {n:nat} .<>. (n: int n) : [r:int] (FIB (n, r) | int r) = let var r0: int = 0 var r1: int = 1 var i : int = 0 prvar pf0 = FIB0 () prvar pf1 = FIB1 () val () = while* { i:nat;r0,r1:int | i <= n } .. ( pf0: FIB (i, r0) , pf1: FIB (i+1, r1) , i: int (i), r0: int r0, r1: int r1 ) : [r:int] (pf0 : FIB (n, r), r0: int r) => ( i < n ) { val () = i := i+1 val tmp = r0 + r1 val () = r0 := r1 val () = r1 := tmp prval pf1_ = pf1 prval pf0_ = pf0 prval pftmp = FIB2 (pf0_, pf1_) prval () = pf0 := pf1_ prval () = pf1 := pftmp } (* end of [while*] *) in (pf0 | r0) end // end of [fibver] (* ****** ****** *) implement main ( ) = 0 where { val () = assertloc ((fibver(10)).1 = 55) val () = assertloc ((fibver(20)).1 = 6765) } // end of [main] (* ****** ****** *) (* end of [fibver_loop.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/MISC/readdirall.dats0000644000175000017500000000644313431250607022244 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* // // It is a bit like [scandir] ... // *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc - -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime -L${PATSHOME}/ccomp/atslib/lib -latslib *) // (* ****** ****** *) (* ** Author: Hongwei Xi ** Authoremail: hwxi AT cs DOT bu DOT edu ** Time: May, 2013 *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/dynarray.sats" staload _ = "libats/DATS/dynarray.dats" (* ****** ****** *) staload "libats/libc/SATS/dirent.sats" staload _ = "libats/libc/DATS/dirent.dats" (* ****** ****** *) %{^ // #undef ATSextfcall #define ATSextfcall(fun, funarg) fun funarg #undef ATSPMVextval #define ATSPMVextval(name) name // %} // end of [%{^] (* ****** ****** *) extern fun{} readdirall$pred (x: !Direntp1): bool implement readdirall$pred<> (x) = true (* ****** ****** *) // extern fun{} readdirall (dirp: !DIRptr1): dynarray (Direntp1) // (* ****** ****** *) implement {}(*tmp*) readdirall(dirp) = let // implement readdirall$pred<> (x) = let val ( fpf | str ) = direntp_get_d_name (x) val ans = (str != "." && str != "..") prval () = fpf (str) in ans end // end of [readdirall] // vtypedef elt = Direntp1 vtypedef res = dynarray (elt) // fun loop ( dirp: !DIRptr1, DA: res ) : res = let val entp = readdir_r_gc (dirp) in // if direntp2ptr(entp) > 0 then let val ans = readdirall$pred (entp) val () = ( if ans then { val-~None_vt () = dynarray_insert_atend_opt (DA, entp) } else direntp_free (entp) // end of [if] ) : void (* end of [val] *) in loop (dirp, DA) end else let val () = direntp_free (entp) in DA end (* end of [if] *) // end (* end of [loop] *) // val DA = dynarray_make_nil (i2sz(1024)) // in loop (dirp, DA) end // end of [readdirall] (* ****** ****** *) implement main0 (argc, argv) = { // val dname = ( if argc >= 2 then argv[1] else "." ) : string // end of [val] // val dirp = opendir_exn (dname) // val DA = readdirall (dirp) // implement (a:vtype) dynarray_quicksort$cmp (x, y) = sgn where { val x2 = $UN.castvwtp1{Direntp1}(x) val (xfpf | xstr) = direntp_get_d_name (x2) val y2 = $UN.castvwtp1{Direntp1}(y) val (yfpf | ystr) = direntp_get_d_name (y2) prval () = $UN.cast2void(x2) prval () = $UN.cast2void(y2) val sgn = compare (xstr, ystr) prval () = xfpf (xstr) and () = yfpf (ystr) } (* end of [...] *) // val () = dynarray_quicksort (DA) // var n: size_t val A0 = dynarray_getfree_arrayptr (DA, n) // val out = stdout_ref // implement {}(*tmp*) fprint_array$sep (out) = fprint_newline (out) // implement (a:vtype) fprint_ref (out, x) = { val x2 = $UN.castvwtp1{Direntp1}(x) // end of [val] val (fpf | str) = direntp_get_d_name (x2) prval () = $UN.cast2void(x2) val ((*void*)) = fprint_strptr (out, str) prval ((*void*)) = fpf (str) } // val () = fprint_arrayptr (out, A0, n) // val () = fprint_newline (out) // implement(a:vtype) array_uninitize$clear (i, x) = direntp_free ($UN.castvwtp0(x)) val () = arrayptr_freelin (A0, n) // val () = closedir_exn (dirp) // } (* end of [main0] *) (* ****** ****** *) (* end of [readdirall.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/PCPV/0000755000175000017500000000000013431250607017272 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/PCPV/bsearch_arr.dats0000644000175000017500000000774613431250607022440 0ustar brandonbrandon(* ** A verified implementation of binary search ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: January 1, 2011 *) (* ****** ****** *) (* ** HX-2013-03-22: ported to ATS/Postiats *) (* ****** ****** *) staload "libats/SATS/ilist_prf.sats" stadef nil = ilist_nil and cons = ilist_cons (* ****** ****** *) staload "libats/SATS/gfarray.sats" (* ****** ****** *) typedef compare (a:viewt@ype) = {x1,x2:int} (&stamped_vt (a, x1), &stamped_vt (a, x2)) -> int (x1-x2) // end of [compare] (* ****** ****** *) (* // absprop LTB (x:int, xs:ilist) absprop GTEB (xs:ilist, x:int) // propdef BSEARCH (xs:ilist, x0:int, i:int) = [xsf,xsb:ilist] ( LENGTH (xsf, i), APPEND (xsf, xsb, xs), GTEB (xsf, x0), LTB (x0, xsb) ) // end of [BSEARCH] // *) absprop BSEARCH (xs:ilist, x0:int, i:int) (* ****** ****** *) extern prfun lemma_bsearch_param {xs:ilist} {x0:int} {i:int} (pf: BSEARCH (xs, x0, i)): [i>=0] void // end of [lemma_bsearch_param] (* ****** ****** *) extern prfun bsearch_nil {x0:int} (): BSEARCH (nil, x0, 0) extern prfun lemma_bsearch_left {x0:int} {xs:ilist} {xs1:ilist} {x:int | x0 < x} {xs2:ilist} {i:int} ( pf0: ISORD (xs), pf1: APPEND (xs1, cons (x, xs2), xs), pf2: BSEARCH (xs1, x0, i) ) : BSEARCH (xs, x0, i) // end of [lemma_bsearch_left] extern prfun lemma_bsearch_right {x0:int} {xs:ilist} {xs1:ilist} {x:int | x0 >= x} {xs2:ilist} {n1:int} {i:int} ( pf0: ISORD (xs), pf1: APPEND (xs1, cons (x, xs2), xs), pf2: LENGTH (xs1, n1), pf3: BSEARCH (xs2, x0, i) ) : BSEARCH (xs, x0, n1+1+i) // end of [lemma_bsearch_right] (* ****** ****** *) // extern prfun lemma1_isord_append {xs:ilist} {xs1,xs2:ilist} (pford: ISORD xs, pfapp: APPEND (xs1, xs2, xs)): ISORD (xs1) extern prfun lemma2_isord_append {xs:ilist} {xs1,xs2:ilist} (pford: ISORD xs, pfapp: APPEND (xs1, xs2, xs)): ISORD (xs2) // (* ****** ****** *) extern fun{a:t@ype} bsearch {l:addr}{xs:ilist}{x0:int}{n:nat} ( pford: ISORD (xs) , pflen: LENGTH (xs, n) , pfarr: !gfarray_v (a, l, xs) | p: ptr l, x0: &stamped_vt (a, x0), n: size_t n, cmp: compare (a) ) : [i:int] ( BSEARCH (xs, x0, i) | ptr (l+i*sizeof(a)) ) (* ****** ****** *) extern fun halfsize{n:nat} (n: size_t n):<> [n2:nat | 2*n2 <= n] size_t (n2) // end of [halfsize] (* ****** ****** *) implement{a} bsearch{l}{xs}{x0}{n} ( pford, pflen, pfarr | p, x0, n, cmp ) = let in // if n > 0 then let val [n2:int] n2 = halfsize (n) prval ( pflen_xs1, pflen_xs2 , pfapp_xs1_xs2 , pfarr_xs1, pfarr_xs2 ) = gfarray_v_split {a}{..}{..}{..}{n2} (pflen, pfarr) // prval LENGTHcons {x} {xs21} (pflen_xs21) = pflen_xs2 // prval gfarray_v_cons (pfat_x, pfarr_xs21) = pfarr_xs2 val (pfat_x | p1) = viewptr_match (pfat_x | ptr_add (p, n2)) val sgn = cmp (x0, !p1) // val res = ( if sgn < 0 then let prval pford_xs1 = lemma1_isord_append (pford, pfapp_xs1_xs2) val (pfsrch_xs1 | p_res) = bsearch (pford_xs1, pflen_xs1, pfarr_xs1 | p, x0, n2, cmp) prval pfsrch_xs = lemma_bsearch_left (pford, pfapp_xs1_xs2, pfsrch_xs1) in (pfsrch_xs | p_res) end else let prval pford_xs2 = lemma2_isord_append (pford, pfapp_xs1_xs2) prval ISORDcons (pford_xs21, _) = pford_xs2 val p21 = ptr_succ (p1) val (pfsrch_xs21 | p21_res) = bsearch (pford_xs21, pflen_xs21, pfarr_xs21 | p21, x0, pred(n)-n2, cmp) prval pfsrch_xs = lemma_bsearch_right (pford, pfapp_xs1_xs2, pflen_xs1, pfsrch_xs21) in (pfsrch_xs | p21_res) end // end of [if] ) : [i:int] (BSEARCH (xs, x0, i) | ptr (l+i*sizeof(a))) // prval pfarr_xs2 = gfarray_v_cons {a} (pfat_x, pfarr_xs21) prval (pfapp_alt, pfarr_alt) = gfarray_v_unsplit {a} (pflen_xs1, pfarr_xs1, pfarr_xs2) prval ILISTEQ () = append_isfun (pfapp_xs1_xs2, pfapp_alt) prval () = pfarr := pfarr_alt // in res end else let prval LENGTHnil () = pflen prval pfsrch = bsearch_nil {x0} () in (pfsrch | p) end // end of [if] // end // end of [bsearch] (* ****** ****** *) (* end of [bsearch_arr.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/PCPV/Makefile0000644000175000017500000000163613431250607020740 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### PATSHOMEQ="$(PATSHOME)" ###### PATSCC=$(PATSHOMEQ)/bin/patscc PATSOPT=$(PATSHOMEQ)/bin/patsopt PATSOLVE=$(PATSHOME)/bin/patsolve_z3 ###### all:: ###### all:: \ bsearch_arr bsearch_arr: \ bsearch_arr.dats ; \ $(PATSOPT) --typecheck --dynamic bsearch_arr.dats ###### all:: \ quicksort_lst quicksort_lst: \ quicksort_lst.dats ; \ $(PATSOPT) --typecheck --dynamic quicksort_lst.dats ###### insort_lst:: \ insort_lst.dats; \ $(PATSOPT) -tc --constraint-export -d $< | $(PATSOLVE) -i ###### mergesort_lst:: \ mergesort_lst.dats; \ $(PATSOPT) -tc --constraint-export -d $< | $(PATSOLVE) -i ###### LNS=ln -s RMF=rm -f ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/PCPV/.keeper0000644000175000017500000000000013431250607020534 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/PCPV/quicksort_lst.dats0000644000175000017500000001365013431250607023062 0ustar brandonbrandon(* ** A verified implementation of quicksort on lists ** Author: Hongwei Xi (hwxi AT cs DOT bu DOT edu) ** Time: December 26, 2010 *) (* ****** ****** *) (* ** HX-2013-03-22: ported to ATS/Postiats *) (* ****** ****** *) typedef cmp (a:t@ype) = cmpval_fun (a) (* ****** ****** *) (* // // HX: A standard implementation of list-quicksort // extern fun{a:t@ype} quicksort_lst{n:nat} (xs: list (a, n), cmp: cmp a) :<> list (a, n) // // extern fun{a:t@ype} list_append{m,n:nat} (xs1: list (a, m), xs2: list (a, n)):<> list (a, m+n) // fun{a:t@ype} sort{n:nat} .. ( xs: list (a, n), cmp: cmp(a) ) :<> list (a, n) = let in // case+ xs of | list_cons (x, xs) => part (x, xs, cmp, list_nil (), list_nil ()) | list_nil () => list_nil () // end // end of [sort] and part{p:nat}{q,r:nat} .. ( x0: a, xs: list (a, p), cmp: cmp(a), ys: list (a, q), zs: list (a, r) ) :<> list (a, p+q+r+1) = let in // case+ xs of | list_cons (x, xs) => ( if cmp (x, x0) <= 0 then part (x0, xs, cmp, list_cons (x, ys), zs) else part (x0, xs, cmp, ys, list_cons (x, zs)) // end of [if] ) | list_nil () => let val ys = sort (ys, cmp) and zs = sort (zs, cmp) in list_append (ys, list_cons (x0, zs)) end // end of [list_nil] // end // end of [part] *) (* ****** ****** *) staload "libats/SATS/ilist_prf.sats" stadef nil = ilist_nil and cons = ilist_cons (* ****** ****** *) staload "libats/SATS/gflist.sats" (* ****** ****** *) macdef nil () = gflist_nil () macdef cons (x, xs) = gflist_cons (,(x), ,(xs)) macdef append = gflist_append (* ****** ****** *) typedef compare (a:t@ype) = {x1,x2:int} (stamped_t (a, x1), stamped_t (a, x2)) -> int (x1-x2) typedef cmp (a:t@ype) = compare (a) (* ****** ****** *) absprop SORT (xs: ilist, ys: ilist) // [ys] is sorted version of [xs] (* ****** ****** *) extern fun{a:t@ype} quicksort_lst{xs:ilist} ( xs: gflist (a, xs), cmp: cmp a ) : [ys:ilist] ( SORT (xs, ys) | gflist (a, ys) ) // end of [quicksort_lst] (* ****** ****** *) absprop LB (x:int, xs:ilist) absprop UB (x:int, xs:ilist) absprop UNION4 (x:int, xs:ilist, ys:ilist, zs:ilist, res:ilist) (* ****** ****** *) stadef ORD = ISORD stadef PERM = PERMUTE (* ****** ****** *) extern prfun SORT2ORD {xs,ys:ilist} (pf: SORT(xs, ys)): ORD (ys) extern prfun SORT2PERM {xs,ys:ilist} (pf: SORT(xs, ys)): PERM (xs, ys) extern prfun ORDPERM2SORT {xs,ys:ilist} (pf1: ORD (ys), pf2: PERM (xs, ys)): SORT (xs, ys) // end of [ORDPERM2SORT] (* ****** ****** *) extern prfun SORT_nil (): SORT (nil, nil) extern prfun SORT_sing {x:int} (): SORT(cons(x, nil), cons(x, nil)) (* ****** ****** *) extern prfun LB_nil {x:int} (): LB (x, nil) extern prfun UB_nil {x:int} (): UB (x, nil) (* ****** ****** *) // extern prfun LB_cons{x0:int} {x:int | x0 <= x} {xs:ilist}(pf: LB (x0, xs)): LB (x0, cons (x, xs)) extern prfun UB_cons{x0:int} {x:int | x0 >= x} {xs:ilist}(pf: UB (x0, xs)): UB (x0, cons (x, xs)) // extern prfun LB_perm{x:int}{xs1,xs2:ilist} (pf1: PERM (xs1, xs2), pf2: LB (x, xs1)): LB (x, xs2) extern prfun UB_perm{x:int}{xs1,xs2:ilist} (pf1: PERM (xs1, xs2), pf2: UB (x, xs1)): UB (x, xs2) // (* ****** ****** *) // extern prfun UNION4_perm{x:int}{xs:ilist}{res:ilist} (pf: UNION4 (x, xs, nil, nil, res)): PERM (cons (x, xs), res) // extern prfun UNION4_mov1 {x0:int}{x:int}{xs:ilist}{ys,zs:ilist}{res:ilist} (pf: UNION4 (x0, xs, cons (x, ys), zs, res)): UNION4 (x0, cons (x, xs), ys, zs, res) extern prfun UNION4_mov2 {x0:int}{x:int}{xs:ilist}{ys,zs:ilist}{res:ilist} (pf: UNION4 (x0, xs, ys, cons (x, zs), res)): UNION4 (x0, cons (x, xs), ys, zs, res) // (* ****** ****** *) // extern prfun APPEND_ord {x:int} {ys,zs:ilist} {res:ilist} ( pf1: UB (x, ys), pf2: LB (x, zs) , pf3: ORD (ys), pf4: ORD (zs) , pf5: APPEND (ys, cons (x, zs), res) ) : ORD (res) // extern prfun APPEND_union4 {x:int} {ys,ys1:ilist} {zs,zs1:ilist} {res:ilist} ( pf1: PERM (ys, ys1), pf2: PERM (zs, zs1), pf3: APPEND (ys1, cons (x, zs1), res) ) : UNION4 (x, nil, ys, zs, res) // (* ****** ****** *) fun {a:t0p} sort {xs:ilist} ( xs: gflist (a, xs), cmp: cmp a ) : [ys:ilist] (SORT (xs, ys) | gflist (a, ys)) = case+ xs of | gflist_cons (x, xs) => let val (pford, pfuni | res) = part (UB_nil (), LB_nil () | x, xs, cmp, nil (), nil ()) prval pfperm = UNION4_perm (pfuni) in (ORDPERM2SORT (pford, pfperm) | res) end // end of [gflist_cons] | gflist_nil () => (SORT_nil () | nil ()) // end of [sort] and part {x0:int} {xs:ilist} {ys,zs:ilist} ( pf1: UB (x0, ys), pf2: LB (x0, zs) | x0: stamped_t (a, x0), xs: gflist (a, xs) , cmp: cmp(a), ys: gflist (a, ys), zs: gflist (a, zs) ) : [res:ilist] ( ORD (res), UNION4 (x0, xs, ys, zs, res) | gflist (a, res) ) = case+ xs of | gflist_cons (x, xs) => if cmp (x, x0) <= 0 then let prval pf1 = UB_cons (pf1) val (pford, pfuni | res) = part (pf1, pf2 | x0, xs, cmp, cons (x, ys), zs) prval pfuni = UNION4_mov1 (pfuni) in (pford, pfuni | res) end else let prval pf2 = LB_cons (pf2) val (pford, pfuni | res) = part (pf1, pf2 | x0, xs, cmp, ys, cons (x, zs)) prval pfuni = UNION4_mov2 (pfuni) in (pford, pfuni | res) end // end of [if] // end of [gflist_cons] | gflist_nil () => let val (pfsrt1 | ys) = sort (ys, cmp) val (pfsrt2 | zs) = sort (zs, cmp) val (pfapp | res) = append (ys, cons (x0, zs)) prval pford1 = SORT2ORD (pfsrt1) prval pford2 = SORT2ORD (pfsrt2) prval pfperm1 = SORT2PERM (pfsrt1) prval pfperm2 = SORT2PERM (pfsrt2) prval pf1 = UB_perm (pfperm1, pf1) prval pf2 = LB_perm (pfperm2, pf2) prval pford = APPEND_ord (pf1, pf2, pford1, pford2, pfapp) prval pfuni = APPEND_union4 (pfperm1, pfperm2, pfapp) in (pford, pfuni | res) end // end of [gflist_nil] // end of [part] (* ****** ****** *) implement{a} quicksort_lst = sort (* ****** ****** *) (* end of [quicksort_lst.dat] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/0000755000175000017500000000000013431250607017500 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_string.dats0000644000175000017500000003046313431250607024220 0ustar brandonbrandon(* ** for testing ** [libats/libc/string] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // staload UN = $UNSAFE // aliasing // (* ****** ****** *) staload UNI = "libats/libc/SATS/unistd.sats" (* ****** ****** *) staload "libats/libc/SATS/errno.sats" (* ****** ****** *) staload "libats/libc/SATS/string.sats" staload _ = "libats/libc/DATS/string.dats" (* ****** ****** *) val () = { // val str = "abcde" val str2 = "abcdef" // val () = assertloc (strcmp (str, str2) < 0) val () = assertloc (strcmp (str2, str) > 0) val () = assertloc (strncmp (str, str2, strlen (str)) = 0) // val () = assertloc (strspn (str, str) = 5) val () = assertloc (strcspn (str, str) = 0) // val _0 = i2sz(0) val () = assertloc (_0 = strnlen (str, _0)) val () = assertloc (strlen (str) = strnlen (str, i2sz(1000000))) // } // end of [val] (* ****** ****** *) val () = { // val str = "abcde" val str2 = string0_copy ("_____") val p = strcpy_unsafe (strptr2ptr(str2), str) val () = assertloc (str = $UN.strptr2string(str2)) val () = strptr_free (str2) // } // end of [val] val () = { // val str = "fghij" val str2 = string0_copy ("abcde_____") val p0 = strptr2ptr(str2) val p5 = ptr_add (p0, 5) val () = $UN.ptr0_set (p5, '\000') val p = strcat_unsafe (p0, str) val () = assertloc ("abcdefghij" = $UN.strptr2string(str2)) val () = strptr_free (str2) // } // end of [val] (* ****** ****** *) val () = { // val str = "abcde" val (pf | str2) = strdup (str) val () = assertloc (str = $UN.castvwtp1{string}(str2)) val () = strdup_free (pf | str2) // val (pf | str2) = strdupa (str) val () = assertloc (str = $UN.castvwtp1{string}(str2)) val () = strdupa_free (pf | str2) // } // end f [val] (* ****** ****** *) val () = { // val str = "abcde" val str2 = string0_copy (str) val p2 = strfry (str2) val () = assertloc (p2 = strptr2ptr(str2)) val () = println! ("strfry(", str, ") = ", str2) val () = strptr_free (str2) // } // end of [val] (* ****** ****** *) val () = { // val ENONEstr = strerror_r_gc (ENONE) val () = println! ("ENONE(", ENONE, ") = ", ENONEstr) val () = strptr_free (ENONEstr) // val E2BIGstr = strerror_r_gc (E2BIG) val () = println! ("E2BIG(", E2BIG, ") = ", E2BIGstr) val () = strptr_free (E2BIGstr) // val EACCESstr = strerror_r_gc (EACCES) val () = println! ("EACCES(", EACCES, ") = ", EACCESstr) val () = strptr_free (EACCESstr) // val EADDRINUSEstr = strerror_r_gc (EADDRINUSE) val () = println! ("EADDRINUSE(", EADDRINUSE, ") = ", EADDRINUSEstr) val () = strptr_free (EADDRINUSEstr) // val EADDRNOTAVAILstr = strerror_r_gc (EADDRNOTAVAIL) val () = println! ("EADDRNOTAVAIL(", EADDRNOTAVAIL, ") = ", EADDRNOTAVAILstr) val () = strptr_free (EADDRNOTAVAILstr) // val EAGAINstr = strerror_r_gc (EAGAIN) val () = println! ("EAGAIN(", EAGAIN, ") = ", EAGAINstr) val () = strptr_free (EAGAINstr) // val EALREADYstr = strerror_r_gc (EALREADY) val () = println! ("EALREADY(", EALREADY, ") = ", EALREADYstr) val () = strptr_free (EALREADYstr) // val EBADFstr = strerror_r_gc (EBADF) val () = println! ("EBADF(", EBADF, ") = ", EBADFstr) val () = strptr_free (EBADFstr) // val EBADMSGstr = strerror_r_gc (EBADMSG) val () = println! ("EBADMSG(", EBADMSG, ") = ", EBADMSGstr) val () = strptr_free (EBADMSGstr) // val ECANCELEDstr = strerror_r_gc (ECANCELED) val () = println! ("ECANCELED(", ECANCELED, ") = ", ECANCELEDstr) val () = strptr_free (ECANCELEDstr) // val ECHILDstr = strerror_r_gc (ECHILD) val () = println! ("ECHILD(", ECHILD, ") = ", ECHILDstr) val () = strptr_free (ECHILDstr) // val ECONNABORTEDstr = strerror_r_gc (ECONNABORTED) val () = println! ("ECONNABORTED(", ECONNABORTED, ") = ", ECONNABORTEDstr) val () = strptr_free (ECONNABORTEDstr) // val ECONNREFUSEDstr = strerror_r_gc (ECONNREFUSED) val () = println! ("ECONNREFUSED(", ECONNREFUSED, ") = ", ECONNREFUSEDstr) val () = strptr_free (ECONNREFUSEDstr) // val ECONNRESETstr = strerror_r_gc (ECONNRESET) val () = println! ("ECONNRESET(", ECONNRESET, ") = ", ECONNRESETstr) val () = strptr_free (ECONNRESETstr) // val EDEADLKstr = strerror_r_gc (EDEADLK) val () = println! ("EDEADLK(", EDEADLK, ") = ", EDEADLKstr) val () = strptr_free (EDEADLKstr) // val EDESTADDRREQstr = strerror_r_gc (EDESTADDRREQ) val () = println! ("EDESTADDRREQ(", EDESTADDRREQ, ") = ", EDESTADDRREQstr) val () = strptr_free (EDESTADDRREQstr) // val EDOMstr = strerror_r_gc (EDOM) val () = println! ("EDOM(", EDOM, ") = ", EDOMstr) val () = strptr_free (EDOMstr) // val EEXISTstr = strerror_r_gc (EEXIST) val () = println! ("EEXIST(", EEXIST, ") = ", EEXISTstr) val () = strptr_free (EEXISTstr) // val EFAULTstr = strerror_r_gc (EFAULT) val () = println! ("EFAULT(", EFAULT, ") = ", EFAULTstr) val () = strptr_free (EFAULTstr) // val EFBIGstr = strerror_r_gc (EFBIG) val () = println! ("EFBIG(", EFBIG, ") = ", EFBIGstr) val () = strptr_free (EFBIGstr) // val EHOSTUNREACHstr = strerror_r_gc (EHOSTUNREACH) val () = println! ("EHOSTUNREACH(", EHOSTUNREACH, ") = ", EHOSTUNREACHstr) val () = strptr_free (EHOSTUNREACHstr) // val EIDRMstr = strerror_r_gc (EIDRM) val () = println! ("EIDRM(", EIDRM, ") = ", EIDRMstr) val () = strptr_free (EIDRMstr) // val EILSEQstr = strerror_r_gc (EILSEQ) val () = println! ("EILSEQ(", EILSEQ, ") = ", EILSEQstr) val () = strptr_free (EILSEQstr) // val EINPROGRESSstr = strerror_r_gc (EINPROGRESS) val () = println! ("EINPROGRESS(", EINPROGRESS, ") = ", EINPROGRESSstr) val () = strptr_free (EINPROGRESSstr) // val EINTRstr = strerror_r_gc (EINTR) val () = println! ("EINTR(", EINTR, ") = ", EINTRstr) val () = strptr_free (EINTRstr) // val EINVALstr = strerror_r_gc (EINVAL) val () = println! ("EINVAL(", EINVAL, ") = ", EINVALstr) val () = strptr_free (EINVALstr) // val EIOstr = strerror_r_gc (EIO) val () = println! ("EIO(", EIO, ") = ", EIOstr) val () = strptr_free (EIOstr) // val EISCONNstr = strerror_r_gc (EISCONN) val () = println! ("EISCONN(", EISCONN, ") = ", EISCONNstr) val () = strptr_free (EISCONNstr) // val EISDIRstr = strerror_r_gc (EISDIR) val () = println! ("EISDIR(", EISDIR, ") = ", EISDIRstr) val () = strptr_free (EISDIRstr) // val ELOOPstr = strerror_r_gc (ELOOP) val () = println! ("ELOOP(", ELOOP, ") = ", ELOOPstr) val () = strptr_free (ELOOPstr) // val EMFILEstr = strerror_r_gc (EMFILE) val () = println! ("EMFILE(", EMFILE, ") = ", EMFILEstr) val () = strptr_free (EMFILEstr) // val EMLINKstr = strerror_r_gc (EMLINK) val () = println! ("EMLINK(", EMLINK, ") = ", EMLINKstr) val () = strptr_free (EMLINKstr) // val EMSGSIZEstr = strerror_r_gc (EMSGSIZE) val () = println! ("EMSGSIZE(", EMSGSIZE, ") = ", EMSGSIZEstr) val () = strptr_free (EMSGSIZEstr) // val ENAMETOOLONGstr = strerror_r_gc (ENAMETOOLONG) val () = println! ("ENAMETOOLONG(", ENAMETOOLONG, ") = ", ENAMETOOLONGstr) val () = strptr_free (ENAMETOOLONGstr) // val ENETDOWNstr = strerror_r_gc (ENETDOWN) val () = println! ("ENETDOWN(", ENETDOWN, ") = ", ENETDOWNstr) val () = strptr_free (ENETDOWNstr) // val ENETRESETstr = strerror_r_gc (ENETRESET) val () = println! ("ENETRESET(", ENETRESET, ") = ", ENETRESETstr) val () = strptr_free (ENETRESETstr) // val ENETUNREACHstr = strerror_r_gc (ENETUNREACH) val () = println! ("ENETUNREACH(", ENETUNREACH, ") = ", ENETUNREACHstr) val () = strptr_free (ENETUNREACHstr) // val ENFILEstr = strerror_r_gc (ENFILE) val () = println! ("ENFILE(", ENFILE, ") = ", ENFILEstr) val () = strptr_free (ENFILEstr) // val ENOBUFSstr = strerror_r_gc (ENOBUFS) val () = println! ("ENOBUFS(", ENOBUFS, ") = ", ENOBUFSstr) val () = strptr_free (ENOBUFSstr) // val ENODATAstr = strerror_r_gc (ENODATA) val () = println! ("ENODATA(", ENODATA, ") = ", ENODATAstr) val () = strptr_free (ENODATAstr) // val ENODEVstr = strerror_r_gc (ENODEV) val () = println! ("ENODEV(", ENODEV, ") = ", ENODEVstr) val () = strptr_free (ENODEVstr) // val ENOENTstr = strerror_r_gc (ENOENT) val () = println! ("ENOENT(", ENOENT, ") = ", ENOENTstr) val () = strptr_free (ENOENTstr) // val ENOEXECstr = strerror_r_gc (ENOEXEC) val () = println! ("ENOEXEC(", ENOEXEC, ") = ", ENOEXECstr) val () = strptr_free (ENOEXECstr) // val ENOLCKstr = strerror_r_gc (ENOLCK) val () = println! ("ENOLCK(", ENOLCK, ") = ", ENOLCKstr) val () = strptr_free (ENOLCKstr) // val ENOLINKstr = strerror_r_gc (ENOLINK) val () = println! ("ENOLINK(", ENOLINK, ") = ", ENOLINKstr) val () = strptr_free (ENOLINKstr) // val ENOMEMstr = strerror_r_gc (ENOMEM) val () = println! ("ENOMEM(", ENOMEM, ") = ", ENOMEMstr) val () = strptr_free (ENOMEMstr) // val ENOMSGstr = strerror_r_gc (ENOMSG) val () = println! ("ENOMSG(", ENOMSG, ") = ", ENOMSGstr) val () = strptr_free (ENOMSGstr) // val ENOPROTOOPTstr = strerror_r_gc (ENOPROTOOPT) val () = println! ("ENOPROTOOPT(", ENOPROTOOPT, ") = ", ENOPROTOOPTstr) val () = strptr_free (ENOPROTOOPTstr) // val ENOSPCstr = strerror_r_gc (ENOSPC) val () = println! ("ENOSPC(", ENOSPC, ") = ", ENOSPCstr) val () = strptr_free (ENOSPCstr) // val ENOSRstr = strerror_r_gc (ENOSR) val () = println! ("ENOSR(", ENOSR, ") = ", ENOSRstr) val () = strptr_free (ENOSRstr) // val ENOSTRstr = strerror_r_gc (ENOSTR) val () = println! ("ENOSTR(", ENOSTR, ") = ", ENOSTRstr) val () = strptr_free (ENOSTRstr) // val ENOSYSstr = strerror_r_gc (ENOSYS) val () = println! ("ENOSYS(", ENOSYS, ") = ", ENOSYSstr) val () = strptr_free (ENOSYSstr) // val ENOTCONNstr = strerror_r_gc (ENOTCONN) val () = println! ("ENOTCONN(", ENOTCONN, ") = ", ENOTCONNstr) val () = strptr_free (ENOTCONNstr) // val ENOTDIRstr = strerror_r_gc (ENOTDIR) val () = println! ("ENOTDIR(", ENOTDIR, ") = ", ENOTDIRstr) val () = strptr_free (ENOTDIRstr) // val ENOTEMPTYstr = strerror_r_gc (ENOTEMPTY) val () = println! ("ENOTEMPTY(", ENOTEMPTY, ") = ", ENOTEMPTYstr) val () = strptr_free (ENOTEMPTYstr) // val ENOTSOCKstr = strerror_r_gc (ENOTSOCK) val () = println! ("ENOTSOCK(", ENOTSOCK, ") = ", ENOTSOCKstr) val () = strptr_free (ENOTSOCKstr) // val ENOTSUPstr = strerror_r_gc (ENOTSUP) val () = println! ("ENOTSUP(", ENOTSUP, ") = ", ENOTSUPstr) val () = strptr_free (ENOTSUPstr) // val ENOTTYstr = strerror_r_gc (ENOTTY) val () = println! ("ENOTTY(", ENOTTY, ") = ", ENOTTYstr) val () = strptr_free (ENOTTYstr) // val ENXIOstr = strerror_r_gc (ENXIO) val () = println! ("ENXIO(", ENXIO, ") = ", ENXIOstr) val () = strptr_free (ENXIOstr) // val EOPNOTSUPPstr = strerror_r_gc (EOPNOTSUPP) val () = println! ("EOPNOTSUPP(", EOPNOTSUPP, ") = ", EOPNOTSUPPstr) val () = strptr_free (EOPNOTSUPPstr) // val EOVERFLOWstr = strerror_r_gc (EOVERFLOW) val () = println! ("EOVERFLOW(", EOVERFLOW, ") = ", EOVERFLOWstr) val () = strptr_free (EOVERFLOWstr) // val EPERMstr = strerror_r_gc (EPERM) val () = println! ("EPERM(", EPERM, ") = ", EPERMstr) val () = strptr_free (EPERMstr) // val EPIPEstr = strerror_r_gc (EPIPE) val () = println! ("EPIPE(", EPIPE, ") = ", EPIPEstr) val () = strptr_free (EPIPEstr) // val EPROTOstr = strerror_r_gc (EPROTO) val () = println! ("EPROTO(", EPROTO, ") = ", EPROTOstr) val () = strptr_free (EPROTOstr) // val EPROTONOSUPPORTstr = strerror_r_gc (EPROTONOSUPPORT) val () = println! ("EPROTONOSUPPORT(", EPROTONOSUPPORT, ") = ", EPROTONOSUPPORTstr) val () = strptr_free (EPROTONOSUPPORTstr) // val EPROTOTYPEstr = strerror_r_gc (EPROTOTYPE) val () = println! ("EPROTOTYPE(", EPROTOTYPE, ") = ", EPROTOTYPEstr) val () = strptr_free (EPROTOTYPEstr) // val ERANGEstr = strerror_r_gc (ERANGE) val () = println! ("ERANGE(", ERANGE, ") = ", ERANGEstr) val () = strptr_free (ERANGEstr) // val EROFSstr = strerror_r_gc (EROFS) val () = println! ("EROFS(", EROFS, ") = ", EROFSstr) val () = strptr_free (EROFSstr) // val ESPIPEstr = strerror_r_gc (ESPIPE) val () = println! ("ESPIPE(", ESPIPE, ") = ", ESPIPEstr) val () = strptr_free (ESPIPEstr) // val ESRCHstr = strerror_r_gc (ESRCH) val () = println! ("ESRCH(", ESRCH, ") = ", ESRCHstr) val () = strptr_free (ESRCHstr) // val ETIMEstr = strerror_r_gc (ETIME) val () = println! ("ETIME(", ETIME, ") = ", ETIMEstr) val () = strptr_free (ETIMEstr) // val ETIMEDOUTstr = strerror_r_gc (ETIMEDOUT) val () = println! ("ETIMEDOUT(", ETIMEDOUT, ") = ", ETIMEDOUTstr) val () = strptr_free (ETIMEDOUTstr) // val ETXTBSYstr = strerror_r_gc (ETXTBSY) val () = println! ("ETXTBSY(", ETXTBSY, ") = ", ETXTBSYstr) val () = strptr_free (ETXTBSYstr) // val EWOULDBLOCKstr = strerror_r_gc (EWOULDBLOCK) val () = println! ("EWOULDBLOCK(", EWOULDBLOCK, ") = ", EWOULDBLOCKstr) val () = strptr_free (EWOULDBLOCKstr) // val EXDEVstr = strerror_r_gc (EXDEV) val () = println! ("EXDEV(", EXDEV, ") = ", EXDEVstr) val () = strptr_free (EXDEVstr) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_string.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_gdbm_gdbm.dats0000644000175000017500000000314613431250607024612 0ustar brandonbrandon(* ** some testing code ** for functions declared in ** libats/libc/gdbm/gdmb.sats *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start Time: September, 2010 // (* ****** ****** *) // // Ported to ATS2 by Hongwei Xi in July, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/libc/SATS/fcntl.sats" staload "libats/libc/SATS/sys/stat.sats" staload "libats/libc/SATS/sys/types.sats" staload "libats/libc/SATS/gdbm/gdbm.sats" (* ****** ****** *) #define nullp the_null_ptr (* ****** ****** *) val () = { // val mode = S_IRUSR lor S_IWUSR val [lf:addr] dbf = gdbm_open ("gdbmtest.gdbm", 512(*blksz*), GDBM_NEWDB, mode, nullp) // val () = println! ("errstr = ", gdbm_strerror (gdbm_errno_get ())) // val () = assertloc (ptrcast (dbf) > 0) // val (fpf_k | k) = datum_make0_string ("a") val v = datum_make1_string ("A") val () = assertloc (gdbm_store (dbf, k, v, GDBM_INSERT) = 0) val () = datum_free (v) val () = assertloc (gdbm_exists (dbf, k) > 0) val v = gdbm_fetch (dbf, k) // val () = println! ("k(a) = ", $UN.cast{string}(ptrcast(k.dptr))) val () = println! ("v(A) = ", $UN.cast{string}(ptrcast(v.dptr))) // val () = datum_free (v) val err = gdbm_delete (dbf, k) val () = assertloc (err = 0) val isexi = gdbm_exists (dbf, k) val () = assertloc (isexi = 0) prval () = fpf_k (k.dptr) prval () = $UN.cast2void(k) // val () = gdbm_close (dbf) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_gdbm_gdbm.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_tostring.dats0000644000175000017500000000236613431250607023755 0ustar brandonbrandon(* ** for testing [prelude/tostring] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = assertloc("1024" = tostring_val(32*32)) (* ****** ****** *) val () = assertloc("1024" = tostring_val(32u*32u)) (* ****** ****** *) val () = assertloc("true" = tostring_val(true)) val () = assertloc("false" = tostring_val(false)) (* ****** ****** *) local implement tostrptr_list$beg<> () = "[" implement tostrptr_list$end<> () = "]" implement tostrptr_list$sep<> () = "," in (* in-of-local *) val xs = $list{int}(0,1,2,3,4,5,6,7,8,9) val () = println! ("xs = ", tostring_val(xs)) end // end of [local] (* ****** ****** *) local implement tostrptr_array$beg<> () = "[" implement tostrptr_array$end<> () = "]" implement tostrptr_array$sep<> () = ";" in (* in-of-local *) // var A0 = @[int](0,1,2,3,4,5,6,7,8,9) val rep = tostrptr_array(A0, i2sz(10)) val ((*void*)) = println! ("A0 = ", rep) val ((*freed*)) = strptr_free (rep) // end // end of [local] (* ****** ****** *) val rep = tostrptr_double(3.1416) val ((*void*)) = println! ("Pi = ", rep) val ((*freed*)) = strptr_free (rep) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_tostring.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_memory.dats0000644000175000017500000000122113431250607023401 0ustar brandonbrandon(* ** for testing [prelude/memory] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) (* fun malloc_gc {n:int} ( n: size_t (n) ) : [l:agz] ( b0ytes n @ l, mfree_gc_v (l) | ptr l ) = "mac#%" // endfun fun mfree_gc {l:addr}{n:int} ( pfat: b0ytes n @ l, pfgc: mfree_gc_v (l) | ptr l ) : void = "mac#%" // endfun *) (* ****** ****** *) val () = { // val ( pfat, pfgc | p ) = malloc_gc((i2sz)1000000) // val () = assertloc (p > 0) // val () = mfree_gc (pfat, pfgc | p) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_memory.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_fcntl.dats0000644000175000017500000000134113431250607024011 0ustar brandonbrandon(* ** for testing ** [libats/libc/fcntl] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/libc/SATS/fcntl.sats" staload "libats/libc/SATS/unistd.sats" (* ****** ****** *) val () = { // val fd = open_flags ("/tmp/foo", O_RDONLY) val ifd = fildes_get_int (fd) val () = println! ("fildes_get_int (fd) = ", ifd) // val () = ( // if ifd >= 0 then let val (pfopt | err ) = close (fd) val () = assertloc (err = 0) prval close_v_succ () = pfopt in // nothing end else let prval () = fildes_neg_elim (fd) in // nothing end // end of [if] // ) : void // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_fcntl.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_dllist.dats0000644000175000017500000000511713431250607023212 0ustar brandonbrandon(* ** for testing [libats/dllist] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: February, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/SATS/dllist.sats" // staload _ = "libats/DATS/gnode.dats" staload _ = "libats/DATS/dllist.dats" // (* ****** ****** *) #define :: dllist_cons #define cons dllist_cons #define snoc dllist_snoc (* ****** ****** *) val () = { // typedef T = int val out = stdout_ref // val xs = dllist_sing (5) val xs = cons (1, cons (2, cons (3, cons (4, xs)))) // val () = fprint_dllist (out, xs) val () = fprint_newline (out) // val xs_beg = xs val p_beg = dllist2ptr (xs_beg) // val xs_end = dllist_move_all (xs_beg) val xs2_beg = rdllist_move_all (xs_end) val p2_beg = dllist2ptr (xs2_beg) // val () = dllist_free (xs2_beg) // val () = assertloc (p_beg = p2_beg) // } // end of [val] (* ****** ****** *) val () = { // typedef T = int val out = stdout_ref // val xs = dllist_sing (1) val xs = snoc (snoc (snoc (snoc (xs, 2), 3), 4), 5) // val () = fprint_dllist (out, xs) val () = fprint_string (out, "->") val () = fprint_rdllist (out, xs) val () = fprint_newline (out) // val xs_beg = rdllist_move_all (xs) // val () = dllist_free (xs_beg) // } // end of [val] (* ****** ****** *) val () = { // typedef T = int val out = stdout_ref // val xs = dllist_sing (1) val xs = dllist_insert_next (xs, 2) val xs = dllist_move (xs) val xs = dllist_insert_next (xs, 3) val xs = dllist_move (xs) // val nr = dllist_length (xs) val nf = rdllist_length (xs) val () = assertloc (nf + nr = 3) // val xs = rdllist_move_all (xs) // val () = fprint_dllist (out, xs) val () = fprint_newline (out) // val () = dllist_free (xs) // } // end of [val] (* ****** ****** *) val () = { // typedef T = string val out = stdout_ref // val xs = dllist_sing ("A") val xs = dllist_insert_prev (xs, "B") val xs = dllist_insert_prev (xs, "C") // val nr = dllist_length (xs) val nf = rdllist_length (xs) val () = assertloc (nf + nr = 3) // val () = fprint_dllist (out, xs) val () = fprint_newline (out) // val () = dllist_free (xs) // } // end of [val] (* ****** ****** *) val () = { // typedef T = int val out = stdout_ref // val xs = dllist_nil {T} () val xs = 1 :: 2 :: 3 :: xs // val xs2 = dllist_nil {T} () val xs2 = 4 :: 5 :: 6 :: xs2 // val xs_xs2 = dllist_append (xs, xs2) // val () = fprint_dllist (out, xs_xs2) val () = fprint_newline (out) // val () = dllist_free (xs_xs2) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_dllist.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_arrayref.dats0000644000175000017500000000412213431250607023707 0ustar brandonbrandon(* ** for testing [prelude/arrayref] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) val () = { // typedef T = int // val A = (arrayref)$arrpsz{T}(0, 1, 2, 3, 4) val i = 2 val () = assertloc (A[i] = i) val () = A[i] := ~i val () = assertloc (A[i] = ~i) val () = arrayref_interchange (A, (i2sz)0, (i2sz)4) val () = assertloc (A[0] = 4 && A[4] = 0) // } // end of [val] (* ****** ****** *) val () = { // typedef T = double // val asz = i2sz(5) val A = (arrayref)$arrpsz{T}(0.0, 1.0, 2.0, 3.0, 4.0) // implement(tenv) array_iforeach$fwork (i, x, env) = let val () = if i > 0 then print ", " in print (x) end val () = assertloc (asz = arrayref_iforeach (A, asz)) val () = println! () // typedef tenv = int implement array_rforeach$fwork (x, i) = let val () = if i > 0 then print ", " in i := i+1; print (x) end var i: int = 0 val () = assertloc (asz = arrayref_rforeach_env (A, asz, i)) val () = println! () // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = char // val out = stdout_ref // val A = (arrszref)$arrpsz{T}('A', 'B', 'C', 'D', 'E') // local implement fprint_array$sep<> (out) = fprint (out, " | ") in (* in of [local] *) val () = fprintln! (out, A) end // end of [local] // val () = assertloc (A[0] = 'A') val () = assertloc (A[1] = 'B') val () = assertloc (A[2] = 'C') val () = assertloc (A[3] = 'D') val () = assertloc (A[4] = 'E') // local implement array_tabulate$fopr (i) = '0'+g0u2i(i) in (* in of [local] *) val digits = arrszref_tabulate ((i2sz)10) end // end of [local] val () = fprintln! (out, "digits = ", digits) // local implement array_tabulate$fopr (i) = let val i = g0u2i(i) in if i < 10 then '0'+i else 'a' + (i-10) end // end of [array_tabulate$fwork] in (* in of [local] *) val xdigits = arrszref_tabulate ((i2sz)16) end // end of [local] // val () = fprintln! (out, "xdigits = ", xdigits) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_arrayref.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_matrixref.dats0000644000175000017500000000067313431250607024104 0ustar brandonbrandon(* ** for testing [prelude/matrixref] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "prelude/lmacrodef.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // postfix 0 sz SZ // macdef sz (x) = i2sz ,(x) macdef SZ (x) = i2sz ,(x) // (* ****** ****** *) implement main0((*void*)) = {(*void*)} (* ****** ****** *) (* end of [prelude_matrixref.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_float.dats0000644000175000017500000000312413431250607023202 0ustar brandonbrandon(* ** for testing [prelude/float] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #define EPSILON 1E-8 (* ****** ****** *) val () = { val () = assertloc (succ(1.0) = 2.0) val () = assertloc (pred(2.0) = 1.0) val () = assertloc (1.0 + 2.0 = 3.0) val () = assertloc (2.0 - 1.0 = 1.0) val () = assertloc (3.0 * 3.0 = 9.0) val () = assertloc (abs (3. / 3.0 - 1.0) < EPSILON) val () = assertloc (abs (8. / (3 - 8.0 / 3) - 24.0) < EPSILON) val () = assertloc (abs (5. - 11. / 7.) * 7. - 24.0 < EPSILON) val () = assertloc (5.0 mod 3.0 = 2.0) val () = assertloc (10.0 mod 3.0 = 1.0) val () = assertloc (21.0 mod 3.0 = 0.0) } (* end of [val] *) (* ****** ****** *) val () = { // val () = assertloc (1.0 < 2) val () = assertloc (1.0 <= 2) val () = assertloc (~1.0 > ~2) val () = assertloc (~1.0 >= ~2) val () = assertloc (1.0 = 1) val () = assertloc (0.0 != 1) // } (* end of [val] *) (* ****** ****** *) val () = { // val () = assertloc (1.0 < 2.0) val () = assertloc (1.0 <= 2.0) val () = assertloc (~1.0 > ~2.0) val () = assertloc (~1.0 >= ~2.0) val () = assertloc (1.0 = 1.0) val () = assertloc (0.0 != 1.0) val () = assertloc (1.0 <> 0.0) // val () = assertloc (compare (1.0, 9.0) = ~1) val () = assertloc (compare (5.0, 5.0) = 0) val () = assertloc (compare (9.0, 1.0) = 1) // } (* end of [val] *) (* ****** ****** *) val () = { // val () = assertloc(3.1416 = g0string2float_double("3.1416")) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_float.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_lindeque_dllist.dats0000644000175000017500000000726113431250607025102 0ustar brandonbrandon(* ** for testing [libats/lindeque_dllist] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: May, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/dllist.sats" staload "libats/SATS/lindeque_dllist.sats" (* ****** ****** *) staload _(*anon*) = "libats/DATS/gnode.dats" staload _(*anon*) = "libats/DATS/dllist.dats" staload _(*anon*) = "libats/DATS/lindeque_dllist.dats" (* ****** ****** *) val () = { // typedef T = int // var DQ = lindeque_nil {T} () // val () = lindeque_insert_atbeg (DQ, 0) val () = lindeque_insert_atbeg (DQ, 1) val () = lindeque_insert_atbeg (DQ, 2) val () = lindeque_insert_atbeg (DQ, 3) val () = lindeque_insert_atbeg (DQ, 4) // val () = assertloc (lindeque_length (DQ) = 5) // val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) // val () = assertloc (lindeque_is_nil (DQ)) // val () = lindeque_insert_atbeg (DQ, 0) val () = lindeque_insert_atbeg (DQ, 1) val () = lindeque_insert_atbeg (DQ, 2) val () = lindeque_insert_atbeg (DQ, 3) val () = lindeque_insert_atbeg (DQ, 4) // val () = assertloc (lindeque_length (DQ) = 5) // val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) // val () = assertloc (lindeque_is_nil (DQ)) // prval () = lindeque_free_nil (DQ) // } // end of [val] (* ****** ****** *) val () = { // typedef T = int // var DQ = lindeque_nil {T} () // val () = lindeque_insert_atend (DQ, 0) val () = lindeque_insert_atend (DQ, 1) val () = lindeque_insert_atend (DQ, 2) val () = lindeque_insert_atend (DQ, 3) val () = lindeque_insert_atend (DQ, 4) // val () = assertloc (lindeque_length (DQ) = 5) // val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) val () = println! ("DQ[beg] = ", lindeque_takeout_atbeg (DQ)) // val () = assertloc (lindeque_is_nil (DQ)) // val () = lindeque_insert_atend (DQ, 0) val () = lindeque_insert_atend (DQ, 1) val () = lindeque_insert_atend (DQ, 2) val () = lindeque_insert_atend (DQ, 3) val () = lindeque_insert_atend (DQ, 4) // val () = assertloc (lindeque_length (DQ) = 5) // val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) val () = println! ("DQ[end] = ", lindeque_takeout_atend (DQ)) // val () = assertloc (lindeque_is_nil (DQ)) // prval () = lindeque_free_nil (DQ) // } // end of [val] (* ****** ****** *) val () = { // typedef T = int // var DQ = lindeque_nil {T} () // val () = lindeque_insert_atend (DQ, 0) val () = lindeque_insert_atend (DQ, 1) val () = lindeque_insert_atend (DQ, 2) val () = lindeque_insert_atend (DQ, 3) val () = lindeque_insert_atend (DQ, 4) // val xs = lindeque2dllist (DQ) // val out = stdout_ref val () = fprint_dllist (out, xs) val () = fprint_newline (out) // val () = dllist_free (xs) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_lindeque_dllist.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_linmap_skiplist.dats0000644000175000017500000000364213431250607025122 0ustar brandonbrandon(* ** for testing [libats/linma_skiplist] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: April, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/linmap_skiplist.sats" (* ****** ****** *) staload _(*anon*) = "libats/DATS/qlist.dats" staload _(*anon*) = "libats/DATS/linmap_skiplist.dats" (* ****** ****** *) val () = { val () = linmap_skiplist_initize () } (* end of [val] *) (* ****** ****** *) val () = { // typedef key = int typedef itm = string vtypedef map = map (key, itm) // var res: itm? // var map = linmap_make_nil {key,itm} () // val ans = linmap_insert (map, 0, "a1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 1) // val ans = linmap_insert (map, 1, "b1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 2) // val ans = linmap_insert (map, 1, "b2", res) prval () = opt_clear (res) val () = assertloc (ans=true) // replaced val () = assertloc (linmap_size (map) = 2) // val-~Some_vt("a1") = linmap_search_opt (map, 0) val-~Some_vt("b2") = linmap_search_opt (map, 1) // val ans = linmap_insert (map, 2, "c1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 3) // val () = list_vt_free (linmap_listize1 (map)) // val () = fprintln! (stdout_ref, "map = ", map) // val-~Some_vt("a1") = linmap_takeout_opt (map, 0) val () = assertloc (linmap_size (map) = 2) val-~Some_vt("b2") = linmap_takeout_opt (map, 1) val () = assertloc (linmap_size (map) = 1) val-~Some_vt("c1") = linmap_takeout_opt (map, 2) val () = assertloc (linmap_size (map) = 0) // val () = linmap_free (map) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_linmap_skiplist.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_arrayptr.dats0000644000175000017500000000464313431250607023750 0ustar brandonbrandon(* ** for testing [prelude/arrayptr] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) val () = { // typedef T = int // val out = stdout_ref // val A_elt = arrayptr_make_elt (i2sz(3), 0) val () = fprint (out, "A_elt = ") val () = fprint (out, A_elt, i2sz(3)) val () = fprint_newline (out) val () = arrayptr_free (A_elt) // val xs = list_nil{T}() val xs = list_cons{T}(3, xs) val xs = list_cons{T}(2, xs) val xs = list_cons{T}(1, xs) // val A_list = arrayptr_make_list (3, xs) val () = fprint (out, "A_list = ") val () = fprint (out, A_list, i2sz(3)) val () = fprint_newline (out) val () = arrayptr_free (A_list) // val A_rlist = arrayptr_make_rlist (3, xs) val () = fprint (out, "A_rlist = ") val () = fprint (out, A_rlist, i2sz(3)) val () = fprint_newline (out) val () = arrayptr_free (A_rlist) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int // val A = (arrayptr)$arrpsz{T}(0, 1, 2, 3, 4) val i = 2 val () = assertloc (A[i] = i) val () = A[i] := ~i val () = assertloc (A[i] = ~i) val () = arrayptr_interchange (A, (i2sz)0, (i2sz)4) val () = assertloc (A[0] = 4 && A[4] = 0) // val A = A // HX: a puzzling existential unpacking :) // val out = stdout_ref val () = fprint! (out, "A = ") val () = fprint_arrayptr_sep (out, A, i2sz(5), "; ") val () = fprintln! (out) // val () = arrayptr_free (A) // } // end of [val] (* ****** ****** *) val () = { // val out = stdout_ref // val l = 0 and r = 10 val A = arrayptr_make_intrange (l, r) val () = fprint (out, "A[0, 10) = ") val () = fprint_arrayptr (out, A, i2sz(r)) val () = fprint_newline (out) // val () = arrayptr_free (A) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = double // val asz = i2sz(5) val A = (arrayptr)$arrpsz{T}(0.0, 1.0, 2.0, 3.0, 4.0) // implement(tenv) array_iforeach$fwork (i, x, env) = let val () = if i > 0 then print ", " in print (x) end val () = assertloc (asz = arrayptr_iforeach (A, asz)) val () = println! () // typedef tenv = int implement array_rforeach$fwork (x, i) = let val () = if i > 0 then print ", " in i := i+1; print (x) end var i: int = 0 val () = assertloc (asz = arrayptr_rforeach_env (A, asz, i)) val () = println! () // val () = arrayptr_free (A) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_arrayptr.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_intrange.dats0000644000175000017500000000426313431250607023711 0ustar brandonbrandon(* ** for testing [prelude/intrange] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) val () = { // val out = stdout_ref // implement(env) intrange_foreach$fwork (i, env) = fprint(out, i) // val _ = intrange_foreach<> (0, 10) // val () = fprint_newline(out) // } (* end of [val] *) (* ****** ****** *) val () = { // fun fact (n:int): int = let // typedef tenv = int implement intrange_foreach$fwork (i, env) = env := (i+1) * env // var env: tenv = 1 val _ = intrange_foreach_env (0, n, env) // in env end (* end of [fact] *) // val () = assertloc (fact (10) = 1*2*3*4*5*6*7*8*9*10) // } (* ****** ****** *) val () = { // val out = stdout_ref // implement(env) intrange_rforeach$fwork (i, env) = fprint(out, i) // val _ = intrange_rforeach<> (0, 10) // val () = fprint_newline(out) // } (* end of [val] *) (* ****** ****** *) val () = { // fun fact (n:int): int = let // typedef tenv = int implement intrange_rforeach$fwork (i, env) = (env := (i+1) * env) // var env: tenv = 1 val _ = intrange_rforeach_env (0, n, env) // in env end (* end of [fact] *) // val () = assertloc(fact(10) = 10*9*8*7*6*5*4*3*2*1) // } (* end of [val] *) (* ****** ****** *) val () = { // val N = 10 // implement(tenv) intrange2_foreach$fwork (i, j, env) = ( // if j > 1 then print ' '; $extfcall(void, "printf", "%dx%d=%02d", i, j, i*j); if (j+1=N) then println! (); // ) // val () = intrange2_foreach (1, N, 1, N) // } (* end of [val] *) (* ****** ****** *) local fun sieve ( xs: stream_vt(int) ) : stream_vt(int) = $ldelay ( let val xs_con = !xs val-@stream_vt_cons(x0, xs) = xs_con val x0 = x0 val () = (xs := sieve(stream_vt_filter_cloptr(xs, lam x => x % x0 > 0))) in fold@(xs_con); xs_con end , (~xs) // it is called if the stream is freed ) (* end of [sieve] *) in (* in-of-local *) val thePrimes = sieve(streamize_intrange_l(2)) val ((*void*)) = stream_vt_fprint(thePrimes, stdout_ref, 10) val ((*void*)) = fprint_newline(stdout_ref) end // end of [local] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_reference.dats0000644000175000017500000000240513431250607024034 0ustar brandonbrandon(* ** for testing [prelude/reference] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = { // typedef T = int // val r = ref (0) val () = !r := !r + 1 val () = assertloc (!r = 1) val () = !r := 2 * !r val () = assertloc (!r = 2) // } // end of [val] (* ****** ****** *) val () = { // typedef T = int // val r1 = ref (1) val r2 = ref (2) val () = assertloc (!r1 = 1) val () = assertloc (!r2 = 2) val () = !r1 :=: !r2 val () = assertloc (!r1 = 2) val () = assertloc (!r2 = 1) } // end of [val] (* ****** ****** *) val () = { // typedef T2 = @(int, double) // val r = ref @(1, 1.0) val () = !r.0 := !r.0 + 1 val () = assertloc (!r.0 = 2) val () = !r.1 := !r.1 + 1.0 val () = assertloc (!r.1 = 2.0) // } // end of [val] (* ****** ****** *) val () = { // var x: int = 3 val r = ref (1) val () = assert (r[] = 1) val () = r[] := r[] + 1 val () = assert (r[] = 2) val () = ref_exch_elt (r, x) val () = assert (x = 2) val () = assert (r[] = 3) // } // end of [val] (* ****** ****** *) val () = { // val r = ref (1) val () = ref_app_fun (r, lam x => x := 2 * x) val () = assertloc (!r = 2) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_reference.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_linheap_binomial2.dats0000644000175000017500000000371013431250607025270 0ustar brandonbrandon(* ** for testing [libats/linheap_binomial2] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: August, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/SATS/linheap_binomial.sats" // staload _(*anon*) = "libats/DATS/gnode.dats" staload _(*anon*) = "libats/DATS/linheap_binomial2.dats" // (* ****** ****** *) val () = { // typedef elt = int vtypedef heap = heap (elt) // var hp : heap = linheap_nil{elt}() val () = linheap_insert (hp, 0) val () = linheap_insert (hp, 2) val () = linheap_insert (hp, 4) val hp1 = hp val () = assertloc (linheap_size(hp1) = 3) // var hp : heap = linheap_nil{elt}() val () = linheap_insert (hp, 1) val () = linheap_insert (hp, 3) val () = linheap_insert (hp, 5) val hp2 = hp val () = assertloc (linheap_size(hp2) = 3) // var hp : heap = linheap_merge (hp1, hp2) // val-~Some_vt(0) = linheap_getmin_opt (hp) val-~Some_vt(0) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 5) val-~Some_vt(1) = linheap_getmin_opt (hp) val-~Some_vt(1) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 4) val-~Some_vt(2) = linheap_getmin_opt (hp) val-~Some_vt(2) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 3) val-~Some_vt(3) = linheap_getmin_opt (hp) val-~Some_vt(3) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 2) val-~Some_vt(4) = linheap_getmin_opt (hp) val-~Some_vt(4) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 1) val-~Some_vt(5) = linheap_getmin_opt (hp) val-~Some_vt(5) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 0) // val-~None_vt ((*void*)) = linheap_getmin_opt (hp) val-~None_vt ((*void*)) = linheap_delmin_opt (hp) // val () = linheap_free (hp) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_linheap_binomial2.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_deqarray.dats0000644000175000017500000000475513431250607023536 0ustar brandonbrandon(* ** for testing [libats/deqarray] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: September, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/deqarray.sats" staload _(*anon*) = "libats/DATS/deqarray.dats" (* ****** ****** *) val () = { // val M = i2sz(2) // val deq = deqarray_make_cap (M) // val () = assertloc (deqarray_get_size (deq) = 0) val () = assertloc (deqarray_get_capacity (deq) = M) // val () = deqarray_insert_atbeg (deq, 0) val-(0) = deqarray_takeout_atbeg (deq) val () = assertloc (deqarray_get_size (deq) = 0) // val-~None_vt() = deqarray_insert_atbeg_opt (deq, 1) val-~None_vt() = deqarray_insert_atbeg_opt (deq, 2) // val-~Some_vt(3) = deqarray_insert_atbeg_opt (deq, 3) // val-~Some_vt(2) = deqarray_takeout_atbeg_opt (deq) val-~Some_vt(1) = deqarray_takeout_atbeg_opt (deq) val-~None_vt((*void*)) = deqarray_takeout_atbeg_opt (deq) // val () = assertloc (deqarray_get_size (deq) = 0) // val () = deqarray_free_nil (deq) // } (* end of [val] *) (* ****** ****** *) val () = { // val M = i2sz(2) // val deq = deqarray_make_cap (M) // val () = assertloc (deqarray_get_size (deq) = 0) val () = assertloc (deqarray_get_capacity (deq) = M) // val () = deqarray_insert_atend (deq, 0) val-(0) = deqarray_takeout_atend (deq) val () = assertloc (deqarray_get_size (deq) = 0) // val-~None_vt() = deqarray_insert_atend_opt (deq, 1) val-~None_vt() = deqarray_insert_atend_opt (deq, 2) // val-~Some_vt(3) = deqarray_insert_atend_opt (deq, 3) // val-~Some_vt(2) = deqarray_takeout_atend_opt (deq) val-~Some_vt(1) = deqarray_takeout_atend_opt (deq) val-~None_vt((*void*)) = deqarray_takeout_atend_opt (deq) // val () = assertloc (deqarray_get_size (deq) = 0) // val () = deqarray_free_nil (deq) // } (* end of [val] *) (* ****** ****** *) val () = { // val M = i2sz(3) // val deq = deqarray_make_cap (M) // val () = deqarray_insert_atend (deq, 0) val () = deqarray_insert_atend (deq, 1) // val-(0) = deqarray_takeout_atbeg (deq) // val () = deqarray_insert_atend (deq, 2) val () = deqarray_insert_atend (deq, 3) // val-(3) = deqarray_get_at (deq, i2sz(2)) // val-(1) = deqarray_takeout_atbeg (deq) val-(2) = deqarray_takeout_atbeg (deq) val-(3) = deqarray_takeout_atbeg (deq) // val () = assertloc (deqarray_get_size (deq) = 0) // val () = deqarray_free_nil (deq) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_deqarray.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ATS1_funmset_listord.dats0000644000175000017500000000251213431250607025724 0ustar brandonbrandon(* ** for testing ** [libats/ATS1/funmset_listord] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: January, 2014 // (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/ATS1/SATS/funmset_listord.sats" staload _(*anon*) = "libats/ATS1/DATS/funmset_listord.dats" // (* ****** ****** *) val () = { // val cmp = $UN.cast{cmp(int)}(0) // implement compare_elt_elt (x, y, cmp) = compare (x, y) // var mxs0 = funmset_make_nil{int}() val-( 0 ) = sz2i(funmset_size(mxs0)) // val () = funmset_insert (mxs0, 1, cmp) val () = funmset_insert (mxs0, 1, cmp) val () = funmset_insert (mxs0, 2, cmp) // val-( 3 ) = sz2i(funmset_size(mxs0)) // val-( 0 ) = funmset_get_ntime (mxs0, 0, cmp) val-( 2 ) = funmset_get_ntime (mxs0, 1, cmp) val-( 1 ) = funmset_get_ntime (mxs0, 2, cmp) // val xs = funmset_listize (mxs0) val () = fprintln! (stdout_ref, "xs = ", xs) val ((*void*)) = list_vt_free (xs) // val xs = funmset_mlistize (mxs0) val () = fprintln! (stdout_ref, "xs = ", xs) val ((*void*)) = list_vt_free (xs) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ATS1_funmset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_stringbuf.dats0000644000175000017500000000553213431250607023723 0ustar brandonbrandon(* ** for testing [libats/dynarray] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: May, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/stringbuf.sats" staload _(*anon*) = "libats/DATS/stringbuf.dats" (* ****** ****** *) val () = { val sbf = stringbuf_make_nil (i2sz(1)) // val ((*void*)) = assertloc (stringbuf_get_size (sbf) = 0) val ((*void*)) = assertloc (stringbuf_get_capacity (sbf) = 1) val-true = stringbuf_reset_capacity (sbf, i2sz(2)) val ((*void*)) = assertloc (stringbuf_get_capacity (sbf) = 2) // val ((*void*)) = stringbuf_free (sbf) // } (* end of [val] *) (* ****** ****** *) val () = { // val sbf = stringbuf_make_nil (i2sz(2)) // val-1 = stringbuf_insert (sbf, 'a') val-1 = stringbuf_insert (sbf, 'b') val ((*void*)) = assertloc (stringbuf_get_capacity (sbf) = 2) // val-1 = stringbuf_insert (sbf, 'c') val ((*void*)) = assertloc (stringbuf_get_capacity (sbf) = 4) // var n: size_t val str = stringbuf_getfree_strnptr (sbf, n) val ((*void*)) = assertloc (g0u2i(n) = strnptr_length (str)) // val str = strnptr2strptr (str) val ((*void*)) = println! ("str = ", str) // val ((*void*)) = strptr_free (str) // } (* end of [val] *) (* ****** ****** *) val () = { // val sbf = stringbuf_make_nil (i2sz(1)) // val _ = stringbuf_insert (sbf, true) val _ = stringbuf_insert (sbf, " + ") val _ = stringbuf_insert (sbf, false) // var n: size_t val str = stringbuf_getfree_strnptr (sbf, n) val ((*void*)) = assertloc (g0u2i(n) = strnptr_length (str)) // val str = strnptr2strptr (str) val ((*void*)) = println! ("str = ", str) // val ((*void*)) = strptr_free (str) // } (* end of [val] *) (* ****** ****** *) val () = { // val sbf = stringbuf_make_nil (i2sz(1)) // val _ = stringbuf_insert (sbf, 1234) val _ = stringbuf_insert (sbf, 56789u) val _ = stringbuf_insert (sbf, 123456789l) val _ = stringbuf_insert (sbf, 1234567890ul) // var n: size_t val str = stringbuf_getfree_strnptr (sbf, n) val ((*void*)) = assertloc (g0u2i(n) = strnptr_length (str)) // val str = strnptr2strptr (str) val ((*void*)) = println! ("str = ", str) // val ((*void*)) = strptr_free (str) // } (* end of [val] *) (* ****** ****** *) val () = { // val sbf = stringbuf_make_nil (i2sz(1)) // val digits = $list_vt{int}(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) val _(*n*) = stringbuf_insert_list (sbf, $UN.list_vt2t(digits)) val ((*void*)) = list_vt_free (digits) // var n: size_t val str = stringbuf_getfree_strnptr (sbf, n) val ((*void*)) = assertloc (g0u2i(n) = strnptr_length (str)) // val str = strnptr2strptr (str) val ((*void*)) = println! ("str = ", str) // val ((*void*)) = strptr_free (str) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_stringbuf.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_filebas.dats0000644000175000017500000000431513431250607023505 0ustar brandonbrandon(* ** For testing ** [prelude/filebas] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/libc/SATS/sys/stat.sats" staload "libats/libc/SATS/sys/types.sats" (* ****** ****** *) // fun test_file_ixusr (path: string): int = let macdef S_IXUSR = $UN.cast{uint}(S_IXUSR) in test_file_mode_fun (path, lam (mode) => (mode land S_IXUSR) != 0u) end // end of [test_file_ixusr] // (* ****** ****** *) val () = { // val name = "/home/hwxi/research/Postiats/git/doc/EXAMPLE/ATSLIB/prelude_filebas.dats" // val (fpf | ext) = filename_get_ext (name) val out = stdout_ref val () = fprintln! (out, "ext = ", ext) prval () = fpf (ext) // val (fpf | base) = filename_get_base (name) val out = stdout_ref val () = fprintln! (out, "base = ", base) prval () = fpf (base) // } // end of [val] (* ****** ****** *) val () = { // val inp = fileref_open_exn ("./prelude_filebas.dats", file_mode_r) // val ( ) = while (true) { val line = fileref_get_line_string (inp) val iseof = fileref_is_eof (inp) val () = if ~iseof then println! (line) val () = strptr_free (line) val () = if iseof then $break } // val () = fileref_close (inp) // } (* end of [val] *) (* ****** ****** *) val () = { // val inp = fileref_open_exn ("./prelude_filebas.dats", file_mode_r) // val () = while (true) { val word = fileref_get_word<> (inp) val isnot = ptrcast (word) > the_null_ptr val () = if isnot then fprintln! (stdout_ref, word) val () = strptr_free (word) val () = if isnot then $continue else $break } // } (* end of [val] *) (* ****** ****** *) val () = { // val inp = fileref_open_exn ("./prelude_filebas.dats", file_mode_r) // implement {env}(*tmp*) fileref_foreach$fwork (c, env) = fprint_char (stdout_ref, toupper(c)) // val () = fileref_foreach (inp) // val ((*void*)) = fileref_close (inp) // } (* end of [val] *) (* ****** ****** *) val () = assertloc (test_file_isdir(".") = 1) val () = assertloc (test_file_ixusr("./prelude_filebas.exe") = 1) val () = assertloc (test_file_isreg("./prelude_filebas.dats") = 1) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_filebas.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_grandom.dats0000644000175000017500000000136213431250607023526 0ustar brandonbrandon(* ** For testing ** [prelude/grandom] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // #include "share/HATS/atslib_staload_libats_libc.hats" // (* ****** ****** *) // implement grandom_int<> () = $UNSAFE.cast2int($STDLIB.random()) mod 100 // (* ****** ****** *) // implement grandom_bool<> () = int2bool($UNSAFE.cast2int($STDLIB.random()) mod 2) // (* ****** ****** *) val xs = grandom_list(10) val () = println! ("xs = ", xs) (* ****** ****** *) val xs = grandom_list(10) val () = println! ("xs = ", xs) (* ****** ****** *) val A0 = grandom_arrszref(i2sz(10)) val () = fprintln! (stdout_ref, "A0 = ", A0) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_grandom.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_qlistref.dats0000644000175000017500000000115313431250607024134 0ustar brandonbrandon(* ** for testing ** [libats/ML/qlistref] *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share\ /atspre_staload_libats_ML.hats" // (* ****** ****** *) val () = { // val q0 = qlistref_make_nil{int}() // val () = q0.insert(1) val () = q0.insert(2) // val-~Some_vt(1) = q0.takeout_opt() // val () = q0.insert(3) // val () = assertloc(length(q0) = 2) // val-~Some_vt(2) = q0.takeout_opt() val-~Some_vt(3) = q0.takeout_opt() // val () = assertloc(length(q0) = 0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_qlistref.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_linset_avltree.dats0000644000175000017500000000334013431250607024733 0ustar brandonbrandon(* ** for testing [libats/linset_avltree] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/linset_avltree.sats" staload _(*anon*) = "libats/DATS/linset_avltree.dats" (* ****** ****** *) val () = { // val out = stdout_ref // val ints = $list_vt{int}(1, 1, 1, 2, 3) // val xs = linset_make_list ($UN.list_vt2t(ints)) // val () = list_vt_free (ints) // val () = fprintln! (out, "xs = ", xs) val () = assertloc (linset_size(xs) = 3) // val () = assertloc (linset_is_member (xs, 1)) val () = assertloc (linset_is_member (xs, 2)) val () = assertloc (linset_is_member (xs, 3)) val () = assertloc (linset_isnot_member (xs, 0)) val () = assertloc (linset_isnot_member (xs, 4)) // var xs = xs val () = assertloc (~linset_insert (xs, 0)) val () = assertloc ( linset_insert (xs, 1)) val () = assertloc ( linset_remove (xs, 1)) val () = assertloc (~linset_remove (xs, 4)) val () = assertloc (~linset_insert (xs, 4)) // val () = fprintln! (out, "xs = ", xs) // val () = linset_free (xs) // } // end of [val] (* ****** ****** *) val () = { // vtypedef set = set(int) // var xs: set = linset_nil{int}() // val-false = linset_insert (xs, 0) val-false = linset_insert (xs, 1) val-false = linset_insert (xs, 2) val-false = linset_insert (xs, 3) val-false = linset_insert (xs, 4) // val-~Some_vt(0) = linset_takeoutmin_opt (xs) val-~Some_vt(4) = linset_takeoutmax_opt (xs) // val () = linset_free (xs) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_linset_avltree.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_array.dats0000644000175000017500000001443713431250607023224 0ustar brandonbrandon(* ** for testing [prelude/array] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) val () = { // typedef T = int // val A = arrayptr ($arrpsz{T}(0, 1, 2, 3, 4)) // val (pf | p0) = arrayptr_takeout_viewptr (A) val i = 2 // val () = assertloc (p0->[i] = i) // val () = p0->[i] := ~i val () = assertloc (p0->[i] = ~i) // val () = array_interchange (!p0, (i2sz)0, (i2sz)4) // val () = assertloc (p0->[0] = 4 && p0->[4] = 0) // val ((*freed*)) = let prval () = arrayptr_addback(pf | A) in arrayptr_free(A) end // end of [let] // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int // val A = arrayptr($arrpsz{T}(0,1,2,3,4)) // val (pfat|p) = arrayptr_takeout_viewptr(A) // local // implement (env)(*tmp*) array_foreach$fwork(x, env) = print(x) // in (* in of [local] *) // val _asz_ = array_foreach (!p, (i2sz)5) // val ((*void*)) = print_newline() // end (* end of [local] *) // val () = let prval () = arrayptr_addback(pfat | A) in arrayptr_free(A) end // end of [let] // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int // val A = arrayptr($arrpsz{T}(0, 1, 2, 3, 4)) // val (pfat|p) = arrayptr_takeout_viewptr (A) // val out = stdout_ref // local // implement (tenv)(*tmp*) array_iforeach$fwork (i, x, env) = let val () = if i > 0 then fprint (out, "; ") in fprint! out i ": " x end (* end of [array_iforeach$fwork] *) // in (* in of [local] *) // val _asz_ = array_iforeach (!p, (i2sz)5) val ((*void*)) = fprint_newline (out) // end (* end of [local] *) // val () = let prval () = arrayptr_addback(pfat | A) in arrayptr_free(A) end // end of [let] // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int // val A = (arrayptr)$arrpsz{T}(0, 1, 2, 3, 4) // val (pfat | p) = arrayptr_takeout_viewptr (A) // val out = stdout_ref // local // implement (tenv)(*tmp*) array_foreach2$fwork (x1, x2, env) = fprint! out "(" x1 ", " x2 ")" // in (* in of [local] *) // val _asz_ = array_foreach2 (!p, !p, (i2sz)5) // val ((*void*)) = fprint_newline (out) // end (* end of [local] *) // val () = let prval () = arrayptr_addback(pfat | A) in arrayptr_free(A) end // end of [let] // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int // val A = (arrayptr)$arrpsz{T}(0, 1, 2, 3, 4) // val (pfat | p) = arrayptr_takeout_viewptr (A) // val out = stdout_ref // local // implement(te) array_rforeach$fwork (x, env) = fprint (out, x) // in (* in of [local] *) // val _(*asz*) = array_rforeach (!p, (i2sz)5) val () = fprint_newline (out) // end (* end of [local] *) // prval () = arrayptr_addback (pfat | A) // val () = arrayptr_free (A) // } // end of [val] (* ****** ****** *) val () = { // #define N 5 // typedef T = int // val asz = g1i2u(N) val out = stdout_ref // val (pfat,pfgc|p) = array_ptr_alloc (asz) // implement array_initize$init (i, x) = x := g0u2i(i)+1 // // array: 1, 2, ..., N-1, N // val () = array_initize (!p, asz) // val () = fprint_array_sep(out, !p, asz, ",") // val () = fprint_newline(out) // local implement array_permute$randint<> (n) = pred(n) // this is not random! // // array: N, 1, 2, ..., N-1 // in val () = array_permute (!p, asz) end // end of [val] // val () = fprint_array_sep(out, !p, asz, ",") val () = fprintln! (out, "(permuted)") // val () = array_subcirculate(!p, pred(asz), i2sz(0)) // val () = fprint_array_sep(out, !p, asz, ",") val () = fprintln! (out, "(subcirced)") // val () = array_subreverse(!p, i2sz(0), asz) // val () = fprint_array_sep(out, !p, asz, ",") val () = fprintln! (out, "(subreversed)") // val () = array_ptr_free (pfat, pfgc | p) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int // #define N 5 val asz = g1i2u (N) val out = stdout_ref // val (pfat, pfgc | p) = array_ptr_alloc (asz) // implement array_initize$init (i, x) = x := g0u2i(i)+1 val () = array_initize (!p, asz) // array: 1, 2, ..., N-1, N // var key: T = 3 val ind = array_bsearch_fun (!p, asz, key, lam (x, y) => compare (x, y)) val () = assertloc (ind = 2) // val () = p->[1] := key val ind = array_bsearch_fun (!p, asz, key, lam (x, y) => compare (x, y)) val () = assertloc (ind = 1) // val () = p->[0] := key val ind = array_bsearch_fun (!p, asz, key, lam (x, y) => compare (x, y)) val () = assertloc (ind = 0) // var key: int = 0 val indp = array_bsearch_stdlib (!p, asz, key, lam (x, y) => compare (x, y)) val () = assertloc (ptr_is_null (indp)) var key: int = 5 val indp = array_bsearch_stdlib (!p, asz, key, lam (x, y) => compare (x, y)) val () = assertloc (ptr_isnot_null (indp)) // val () = array_ptr_free (pfat, pfgc | p) // } (* end of [val] *) (* ****** ****** *) val () = { // #define N 5 // typedef T = int // val asz = g1i2u(N) val out = stdout_ref // val (pfat,pfgc|p) = array_ptr_alloc(asz) // local implement array_initize$init (i, x) = x := 0 // // array: 1, 2, ..., N-1, N // in val () = array_initize (!p, asz) end // end-of-local // val () = p->[0] := 2 val () = p->[1] := 4 val () = p->[2] := 1 val () = p->[3] := 5 val () = p->[4] := 3 // val () = fprint_array_sep(out, !p, asz, ",") // val () = fprint_newline(out) // implement array_quicksort$cmp (x, y) = compare (x, y) // val () = array_quicksort (!p, asz) // val () = fprint_array_sep (out, !p, asz, ",") // val () = fprintln! out "(ascendingly sorted)" // val () = array_quicksort_stdlib (!p, asz, lam (x, y) => compare (y, x)) // val () = fprint_array_sep (out, !p, asz, ",") // val () = fprintln! out "(descendingly sorted)" // val () = array_ptr_free (pfat, pfgc | p) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int // val out = stdout_ref // val asz = (i2sz)5 // val A = (arrayptr)$arrpsz{T}(0, 1, 2, 3, 4) // val (pfat|p) = arrayptr_takeout_viewptr (A) // local implement array_map2to$fwork (x, y, z) = z := (x * y) in val () = array_map2to (!p, !p, !p, asz) end (* end of [local] *) // val () = fprint_array_sep (out, !p, asz, ",") // val () = fprint_newline (out) // val ((*freed*)) = let prval () = arrayptr_addback(pfat | A) in arrayptr_free(A) end // end of [let] // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_array.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_linset_listord.dats0000644000175000017500000000403413431250607024752 0ustar brandonbrandon(* ** for testing [libats/linset_listord] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/linset_listord.sats" staload _(*anon*) = "libats/DATS/linset_listord.dats" (* ****** ****** *) val () = { // val out = stdout_ref // val ints = $list_vt{int}(1, 1, 1, 2, 3) // val xs = linset_make_list ($UN.list_vt2t(ints)) // val () = list_vt_free (ints) // val () = fprintln! (out, "xs = ", xs) val () = assertloc (linset_size(xs) = 3) // val () = assertloc (linset_is_member (xs, 1)) val () = assertloc (linset_is_member (xs, 2)) val () = assertloc (linset_is_member (xs, 3)) val () = assertloc (linset_isnot_member (xs, 0)) val () = assertloc (linset_isnot_member (xs, 4)) // var xs = xs val () = assertloc (~linset_insert (xs, 0)) val () = assertloc ( linset_insert (xs, 1)) val () = assertloc ( linset_remove (xs, 1)) val () = assertloc (~linset_remove (xs, 4)) val () = assertloc (~linset_insert (xs, 4)) // val () = fprintln! (out, "xs = ", xs) // val () = linset_free (xs) // } // end of [val] (* ****** ****** *) val () = { // vtypedef set = set(int) // var xs: set = linset_nil{int}() // val-false = linset_insert (xs, 0) val-false = linset_insert (xs, 1) val-false = linset_insert (xs, 2) val-false = linset_insert (xs, 3) val-false = linset_insert (xs, 4) // val nx = linset_takeoutmin_ngc (xs) val p_nx = ptrcast(nx) val () = assertloc (p_nx > 0) // val () = mynode_set_elt (nx, 9) val _0_ = linset_insert_ngc (xs, nx) val () = assertloc (ptrcast(_0_) = 0) prval () = mynode_free_null (_0_) // val nx2 = linset_takeoutmax_ngc (xs) val p_nx2 = ptrcast(nx2) val () = assertloc (p_nx2 > 0) // val () = assertloc (p_nx = p_nx2) // val () = linset_free (xs) val-(9) = mynode_getfree_elt (nx2) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_linset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_dlfcn.dats0000644000175000017500000000147213431250607023776 0ustar brandonbrandon(* ** for testing ** [libats/libc/dlfcn] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/libc/SATS/dlfcn.sats" (* ****** ****** *) val () = { // val flag = RTLD_LAZY val (pfopt | p0) = dlopen (stropt_some("libm.so"), flag) val () = assertloc (p0 > 0) prval Some_v(pf) = pfopt // val ( fpf | str ) = dlerror () // prval () = fpf (str) // val PI = 3.1415926535898 val fp = dlsym(pf | p0, "cos") val ((*void*)) = assertloc (fp > 0) val cosine = $UN.cast{double->double}(fp) // val ((*void*)) = fprintln! (stdout_ref, "cosine(PI) = ", cosine(PI)) // val err = dlclose (pf | p0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_dlfcn.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_list_vt.dats0000644000175000017500000000324013431250607023560 0ustar brandonbrandon(* ** for testing [prelude/list_vt] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = { val x0 = 0 val x1 = 1 val xs = nil_vt{int}() val xs = cons_vt{int}(x0, cons_vt{int}(x1, xs)) val+~cons_vt (x, xs) = xs val () = assertloc (x = x0) val+~cons_vt (x, xs) = xs val () = assertloc (x = x1) val+~nil_vt () = xs } (* end of [val] *) (* ****** ****** *) val () = { val xs = list_make_intrange (0, 10) val xs = list_vt_cast{int}(xs) val () = fprintln! (stdout_ref, "digits = ", xs) val rxs = list_vt_reverse (xs) val () = fprintln! (stdout_ref, "digits(rev) = ", rxs) val () = list_vt_free (rxs) } (* end of [val] *) (* ****** ****** *) val () = { typedef T = int // fun nil() = $list_vt{T}() // val xs1 = $list_vt{T}(1) val xs2 = $list_vt{T}(2) val xs3 = $list_vt{T}(3) // val xss = $list_vt{List_vt(T)} (xs1, nil(), xs2, nil(), xs3) // val xs123 = list_vt_concat (xss) // xs123 = [1, 2, 3] // val () = assertloc (length (xs123) = 3) // val () = assertloc (xs123[0] = 1) val () = assertloc (xs123[1] = 2) val () = assertloc (xs123[2] = 3) // val () = list_vt_free (xs123) } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int // val out = stdout_ref // val xs = $list_vt{T}(0, 9, 2, 7, 4, 5, 6, 3, 8, 1) val ys = $list_vt{T}(0, 9, 2, 7, 4, 5, 6, 3, 8, 1) // val xys = list_vt_append (xs, ys) // implement list_vt_mergesort$cmp (x, y) = compare (x, y) // val xys = list_vt_mergesort (xys) val () = fprint_list_vt (out, xys) val () = fprint_newline (out) val () = list_vt_free (xys) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_list_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_stream_vt.dats0000644000175000017500000000330013431250607024075 0ustar brandonbrandon(* ** for testing [prelude/stream_vt] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) fun from ( n: int ) : stream_vt (int) = let // implement stream_vt_tabulate$fopr (i) = n+i // in stream_vt_tabulate ((*void*)) end // end of [from] (* ****** ****** *) val () = { // val ns = from(0) // val nns = stream_vt_map_fun (ns, lam x => x * x) // val-~Some_vt(nns) = stream_vt_drop_opt (nns, 100) val-~stream_vt_cons (nn, nns) = !nns val () = ~nns val () = assertloc (nn = 100 * 100) // } (* end of [val] *) (* ****** ****** *) val () = { // val ns1 = stream_vt_unfold (1, lam(st) => let val n = st in st := n+1; n end) val ns2 = stream_vt_unfold (2, lam(st) => let val n = st in st := n+1; n end) // val nns = stream_vt_map2_fun (ns1, ns2, lam (x1, x2) => x1 * x2) // val-~Some_vt(nns) = stream_vt_drop_opt (nns, 100) val-~stream_vt_cons (nn, nns) = !nns val () = ~nns val () = assertloc (nn = 101 * 102) // } (* end of [val] *) (* ****** ****** *) overload ! with streamer_vt_eval_exn overload .eval with streamer_vt_eval_exn overload .eval_opt with streamer_vt_eval_opt val () = { // fun int_from ( n : int ) : stream_vt(int) = $ldelay (stream_vt_cons(n, int_from(n+1))) // val xser = streamer_vt_make(int_from(0)) // val () = println! (xser[]) val () = println! (xser[]) val () = println! (xser.eval()) val () = println! (xser.eval()) val () = println! (xser.eval()) // val ((*freed*)) = streamer_vt_free(xser) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_stream_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_funset_avltree.dats0000644000175000017500000000401613431250607024742 0ustar brandonbrandon(* ** for testing [libats/funset_avltree] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: July, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/funset_avltree.sats" staload _(*anon*) = "libats/DATS/funset_avltree.dats" (* ****** ****** *) val () = { // typedef T = int val out = stdout_ref // val xs = $lst_vt{T}(0, 1, 2, 3, 4, 3, 2, 1, 0) val set = funset_make_list ($UN.list_vt2t(xs)) val () = list_vt_free (xs) // val () = assertloc (funset_size (set) = 5) // val () = assertloc (funset_is_member (set, 2)) val () = assertloc (funset_is_member (set, 3)) val () = assertloc (funset_is_member (set, 4)) val () = assertloc (funset_isnot_member (set, 5)) // val () = fprintln! (out, "set = ", set) // val xs2 = funset_listize (set) val () = fprintln! (out, "xs2 = ", xs2) val _freed = list_vt_free (xs2) // val () = assertloc (funset_equal (set, set)) val () = assertloc (funset_compare (set, set) = 0) val () = assertloc (funset_is_subset (set, set)) val () = assertloc (funset_is_supset (set, set)) // var set = set val-true = funset_remove (set, 1) val-true = funset_insert (set, 2) val-true = funset_remove (set, 3) val-true = funset_insert (set, 4) val-false = funset_remove (set, 5) val-false = funset_insert (set, 5) // val-~Some_vt(5) = funset_takeoutmax_opt (set) val-~Some_vt(4) = funset_takeoutmax_opt (set) val-~Some_vt(0) = funset_takeoutmin_opt (set) val-~Some_vt(2) = funset_takeoutmin_opt (set) // val () = assertloc (funset_is_nil (set)) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int val out = stdout_ref // val xs1 = funset_make_sing (5) val xs2 = funset_make_list ($lst{T}(0,1,2,3,4)) // val () = assertloc (funset_compare (xs1, xs2) > 0) val () = assertloc (funset_compare (xs2, xs1) < 0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_funset_avltree.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_bitvec.dats0000644000175000017500000000545713431250607023202 0ustar brandonbrandon(* ** for testing [libats/bitvec] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiDOTgmailDOTcom // Start time: December, 2014 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/bitvec.sats" staload _(*anon*) = "libats/DATS/bitvec.dats" (* ****** ****** *) implement main0 () = { // #define nbit 80 // val out = stdout_ref // val () = fprintln! (out, "[libats_bitvec] starts!") // val bvp1 = bitvecptr_make_none (nbit) val () = assertloc(bitvecptr_is_none(bvp1, nbit)) val () = fprint (out, "bvp1 = ") val () = fprint_bitvecptr (out, bvp1, nbit) val ((*newln*)) = fprint_newline (out) // val () = bitvecptr_lnot(bvp1, nbit) val () = fprint (out, "bvp1 = ") val () = fprint_bitvecptr (out, bvp1, nbit) val ((*newln*)) = fprint_newline (out) // val bvp2 = bitvecptr_make_full (nbit) val () = assertloc(bitvecptr_is_full(bvp1, nbit)) val () = fprint (out, "bvp2 = ") val () = fprint_bitvecptr (out, bvp2, nbit) val ((*newln*)) = fprint_newline (out) // val () = assertloc(bitvecptr_equal(bvp1, bvp2, nbit)) // val () = bitvecptr_lor (bvp1, bvp2, nbit) val () = fprint (out, "bvp1 = ") val () = fprint_bitvecptr (out, bvp1, nbit) val ((*newln*)) = fprint_newline (out) // val () = bitvecptr_lxor (bvp1, bvp2, nbit) val () = fprint (out, "bvp1 = ") val () = fprint_bitvecptr (out, bvp1, nbit) val ((*newln*)) = fprint_newline (out) // val () = bitvecptr_land (bvp1, bvp2, nbit) val () = fprint (out, "bvp1 = ") val () = fprint_bitvecptr (out, bvp1, nbit) val ((*newln*)) = fprint_newline (out) // local implement bitvec_tabulate$fopr<> (i) = g1int_nmod(i, 2) in(*in-of-local*) val bvp3 = bitvecptr_tabulate (nbit) end // end of [local] val () = assertloc(~bitvecptr_is_none(bvp3, nbit)) val () = assertloc(~bitvecptr_is_full(bvp3, nbit)) val () = fprint (out, "bvp3 = ") val () = fprint_bitvecptr (out, bvp3, nbit) val ((*newln*)) = fprint_newline (out) // val () = assertloc (bvp3[0] = 0) val () = assertloc (bvp3[1] = 1) val () = assertloc (bvp3[2] = 0) val () = assertloc (bvp3[3] = 1) // val () = bvp3[0] := 1 val () = bvp3[1] := 0 val () = assertloc (bvp3[0] = 1) val () = assertloc (bvp3[1] = 0) // val () = bitvecptr_flip_at (bvp3, 2) val () = bitvecptr_flip_at (bvp3, 3) val () = assertloc (bvp3[2] = 1 - 0) val () = assertloc (bvp3[3] = 1 - 1) // local implement(env) bitvec_foreach$fworkbit(b, env) = fprint(out, b) in val () = fprint (out, "bvp3 = ") val () = bitvecptr_foreach (bvp3, nbit) val () = fprint_newline (out) end // end of [local] // val ((*freed*)) = bitvecptr_free (bvp1) val ((*freed*)) = bitvecptr_free (bvp2) val ((*freed*)) = bitvecptr_free (bvp3) // val () = fprintln! (out, "[libats_bitvec] is done!") // } (* end of [main0] *) (* ****** ****** *) (* end of [libats_bitvec.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_matrixptr.dats0000644000175000017500000000222613431250607024131 0ustar brandonbrandon(* ** for testing [prelude/matrixptr] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "prelude/lmacrodef.hats" // (* ****** ****** *) // postfix 0 sz SZ // macdef sz (x) = i2sz ,(x) macdef SZ (x) = i2sz ,(x) // (* ****** ****** *) val () = { // val out = stdout_ref // val m = 2 and n = 5 val A = (arrayptr)$arrpsz{int}(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) val M = arrayptr2matrixptr (A, m, n) // implement{} fprint_matrix$sep2 (out) = fprint_string (out, "; ") // val () = fprint_matrixptr (out, M, (m)sz, (n)sz) val () = fprint_newline (out) // val () = M[0, n, 0] :=* 2 val () = M[0, n, 1] :=* 2 val () = M[0, n, 2] :=* 2 val () = M[0, n, 3] :=* 2 val () = M[0, n, 4] :=* 2 val () = M[1, n, 0] :=/ 2 val () = M[1, n, 1] :=/ 2 val () = M[1, n, 2] :=/ 2 val () = M[1, n, 3] :=/ 2 val () = M[1, n, 4] :=/ 2 // val () = fprint_matrixptr(out, M, (m)sz, (n)sz) // val () = fprint_newline (out) // val () = matrixptr_free (M) // } // end of [val] (* ****** ****** *) implement main0((*void*)) = {(*void*)} (* ****** ****** *) (* end of [prelude_matrixptr.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_list.dats0000644000175000017500000000633213431250607023054 0ustar brandonbrandon(* ** for testing [prelude/list] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = { val x0 = 0 val x1 = 1 val xs = nil{int}() val xs = cons{int}(x0, cons{int}(x1, xs)) val+cons (x, xs) = xs val () = assertloc (x = x0) val+cons (x, xs) = xs val () = assertloc (x = x1) val+nil() = xs } (* end of [val] *) (* ****** ****** *) val () = { #define N 10 // val out = stdout_ref // val xs = list_make_intrange (0, N) val xs = list_vt2t{int}(xs) // val () = assertloc (xs[5] = 5) val () = assertloc (list_nth (xs, 5) = 5) // val x0 = list_head (xs) val () = assertloc (x0 = 0) // val xs1 = list_tail (xs) // val () = assertloc (xs1[5] = 5+1) val () = assertloc (list_nth (xs1, 5) = 5+1) // } (* end of [val] *) (* ****** ****** *) val () = { #define N 10 val out = stdout_ref // val xs = list_make_intrange (0, N) val xs = list_vt2t{int}(xs) // val () = fprintln! (out, "xs = ", xs) // local implement list_map$fopr (x) = x + x in (* in of [local] *) val ys = list_map (xs) end // end of [local] val ys = list_vt2t{int}(ys) // local // implement fprint_list$sep<> (out) = fprint_string (out, "; ") // in val () = fprintln! (out, "ys = ", ys) end // end of [local] // val rys = list_vt2t{int}(list_reverse(ys)) // val () = fprintln! (out, "rys = ", rys) // val xsys = list_concat (cons{List(int)}(xs, cons{List(int)}(ys, nil))) // val xsys = list_vt2t{int}(xsys) val ((*void*)) = fprintln! (out, "xsys = ", xsys) // val xsys_sorted = list_vt2t(list_mergesort(xsys)) val ((*void*)) = fprintln! (out, "xsys_msorted = ", xsys_sorted) val xsys_sorted = list_vt2t(list_mergesort_fun(xsys, lam(x, y) => compare(x, y))) val ((*void*)) = fprintln! (out, "xsys_msorted = ", xsys_sorted) val xsys_sorted = list_vt2t(list_mergesort_cloref(xsys, lam(x, y) => compare(x, y))) val ((*void*)) = fprintln! (out, "xsys_msorted = ", xsys_sorted) // val xsys_sorted = list_vt2t(list_quicksort(xsys)) val ((*void*)) = fprintln! (out, "xsys_qsorted = ", xsys_sorted) val xsys_sorted = list_vt2t(list_quicksort_fun(xsys, lam(x, y) => compare(x, y))) val ((*void*)) = fprintln! (out, "xsys_qsorted = ", xsys_sorted) val xsys_sorted = list_vt2t(list_quicksort_cloref(xsys, lam(x, y) => compare(x, y))) val ((*void*)) = fprintln! (out, "xsys_qsorted = ", xsys_sorted) // } (* end of [val] *) (* ****** ****** *) val () = () where { // val xs = list_nil{int}() // val-true = ( try // let val _ = list_head_exn (xs) in g0ofg1(false) end (* end of [let] *) // with ~ListSubscriptExn() => true ) // val-true = ( try // let val _ = list_tail_exn (xs) in g0ofg1(false) end (* end of [let] *) // with ~ListSubscriptExn() => true ) // } (* end of [val] *) (* ****** ****** *) val () = { // val xs = $list{int}(0, 1, 2, 3, 4) val rxs = list_vt2t (list_reverse (xs)) // implement list_find$pred (x) = x mod 2 = 1 // val () = assertloc (1 = list_find_exn (xs)) val () = assertloc (3 = list_find_exn (rxs)) // } (* end of [val] *) (* ****** ****** *) val () = { // val xs = $list{int}(0, 1, 2, 3, 4) val () = assertloc(xs = list_insert_at(list_remove_at(xs, 2), 2, 2)) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_list.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_dirent.dats0000644000175000017500000000666313431250607024204 0ustar brandonbrandon(* ** for testing ** [libats/libc/dirent] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // staload UN = $UNSAFE // aliasing // (* ****** ****** *) staload "libats/libc/SATS/dirent.sats" staload _ = "libats/libc/DATS/dirent.dats" (* ****** ****** *) %{^ // #undef ATSextfcall #define ATSextfcall(fun, funarg) fun funarg #undef ATSPMVextval #define ATSPMVextval(name) name // %} // end of [%{^] (* ****** ****** *) val () = { // fun loop ( dirp: !DIRptr1 ) : void = let val (pfopt | p) = readdir (dirp) in // if p > 0 then let prval Some_v @(pf, fpf) = pfopt val str = dirent_get_d_name_gc (!p) prval () = fpf (pf) val () = if (str != "." && str != "..") then println! (str) val () = strptr_free (str) in loop (dirp) end else let prval None_v () = pfopt in (*nothing*) end // end of [if] // end // end of [loop] // val dirp = opendir_exn (".") // val () = loop (dirp) // val () = closedir_exn (dirp) // } // end of [val] (* ****** ****** *) val () = { // fun loop ( dirp: !DIRptr1 ) : void = let var ent: dirent? var res: ptr? val err = readdir_r (dirp, ent, res) in // if res > 0 then let prval () = opt_unsome (ent) in // if res > 0 then let val str = dirent_get_d_name_gc (ent) val () = if (str != "." && str != "..") then println! (str) val () = strptr_free (str) in loop (dirp) end else () // end of [if] // end else let prval () = opt_unnone (ent) in (*nothing*) end // end of [if] // end // end of [loop] // val dirp = opendir_exn (".") // val () = loop (dirp) // val ofs = telldir (dirp) val () = println! ("telldir()") val () = rewinddir (dirp) val () = println! ("rewinddir()") val () = seekdir (dirp, ofs) val () = println! ("seekdir() ") // val ( pfopt | err ) = closedir (dirp) val () = assertloc (err = 0) prval None_v () = pfopt // } // end of [val] (* ****** ****** *) val () = { // val dirp = opendir_exn (".") // val () = while (true) { val entp = readdir_r_gc (dirp) val isnot = ptr_isnot_null (direntp2ptr(entp)) val () = if isnot then { // val ( fpf | str ) = direntp_get_d_name (entp) val () = println! ("entp.d_name = ", str) prval () = fpf (str) // } (* end of [if] *) // val () = direntp_free (entp) val () = if ~isnot then $break } (* end of [val] *) // val () = closedir_exn (dirp) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef filter = (&dirent) -> int typedef compar = (&ptr(*direntp*), &ptr(*direntp*)) -> int // val dirp = "." var namelst: ptr // uninitized // val nitm = scandir (dirp, namelst, $UN.cast{filter}(0), $UN.cast{compar}(0)) // val () = assertloc (nitm >= 0) val () = println! ("scandir(...) = ", nitm) // extern fun direntp_free (x: ptr): void = "mac#atsruntime_mfree_libc" // implement array_uninitize$clear (i, x) = direntp_free (x) val asz = g0i2u (nitm) val [n:int] asz = g1ofg0_uint (asz) val () = arrayptr_freelin ($UN.castvwtp0{arrayptr(ptr, n)}(namelst), asz) // val () = println! ("[namelst] is properly freed.") // } (* end of [val] *) (* ****** ****** *) val () = { // val dirp = opendir_exn (".") // val ents = streamize_DIRptr_dirent(dirp) // val names = stream_vt_map_cloptr(ents, lam(x) => dirent_get_d_name_gc(x)) // val ((*void*)) = stream_vt_foreach_cloptr ( names , lam(x) => let val x = x in println! ("streamize: ", $UN.strptr2string(x)); strptr_free(x) end ) (* stream_vt_foreach_cloptr *) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_dirent.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_gvalue.dats0000644000175000017500000000212613431250607023567 0ustar brandonbrandon(* ** for testing [libats/ML/gvalue] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/gvalue.sats" (* ****** ****** *) // val state = gvhashtbl_make_nil(16) // (* ****** ****** *) // val () = state["test_arg1"] := GVint(1) // val () = state["test_arg2"] := GVint(2) // val-1 = GVint_uncons(state["test_arg1"]) val-2 = GVint_uncons(state["test_arg2"]) (* val-3 = GVint_uncons(state["test_arg3"]) *) // (* ****** ****** *) // val () = state["passwd_passed"] := GVbool(false) // (* ****** ****** *) val-false = GVbool_uncons(state["passwd_passed"]) (* ****** ****** *) // val-GVint(1) = state["test_arg1"] val-GVint(2) = state["test_arg2"] // val-GVbool(false) = state["passwd_passed"] // (* ****** ****** *) // val () = state["passwd_fcheck"] := GVfunclo_clo(lam(x) => let val-GVstring(x)=x in GVbool(x="AboveTopSecret") end) // (* ****** ****** *) implement main0() = ((*void*)) (* ****** ****** *) (* end of [libats_ML_gvalue.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_matrix.dats0000644000175000017500000000552013431250607023403 0ustar brandonbrandon(* ** for testing [prelude/matrix] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) postfix 0 sz SZ macdef sz (x) = i2sz ,(x) macdef SZ (x) = i2sz ,(x) (* ****** ****** *) val () = { // val m = 2 and n = 2 // implement matrix_tabulate$fopr (i, j) = 0 val (pfmat, pfgc | p) = matrix_ptr_tabulate ((m)sz, (n)sz) // val () = matrix_set_at_int (!p, 0, n, 0, 00) val () = matrix_set_at_int (!p, 0, n, 1, 01) val () = matrix_set_at_int (!p, 1, n, 0, 10) val () = matrix_set_at_int (!p, 1, n, 1, 11) // val out = stdout_ref val () = fprint (out, "!p = ") val () = fprint_matrix (out, !p, (m)sz, (n)sz) val () = fprint_newline (out) // val ((*void*)) = matrix_ptr_free (pfmat, pfgc | p) // } (* end of [val] *) (* ****** ****** *) fun acker ( i: size_t, j: size_t ) : size_t = ( if i = 0 then succ(j) else if j = 0 then acker (pred(i), 1sz) else acker (pred(i), acker (i, pred(j))) ) (* ****** ****** *) val () = { // val m = 4sz and n = 4sz // implement matrix_tabulate$fopr (i, j) = g0uint2int_size_int (acker (i, j)) // val (pfmat, pfgc | p) = matrix_ptr_tabulate (m, n) // val ( ) = fprint! (stdout_ref, "acker(", m, ",", n, ") =\n") // local // implement fprint_val (out, int) = ( ignoret ($extfcall (int, "fprintf", out, "%2.2i", int)) ) // end of [fprint_val] // in (* in of [local] *) // val ( ) = fprint_matrix (stdout_ref, !p, m, n) // end // end of [local] // val () = fprint_newline (stdout_ref) // val () = matrix_ptr_free (pfmat, pfgc | p) // } (* end of [val] *) (* ****** ****** *) val () = { // val m = 4sz and n = 4sz // local implement matrix_tabulate$fopr (i, j) = g0uint2int_size_int (i+j+i2sz(1)) in val (pfmat1, pfgc1 | p1) = matrix_ptr_tabulate (m, n) end // end of [local] // local implement matrix_tabulate$fopr (i, j) = g0uint2int_size_int (succ(i)*succ(j)) in val (pfmat2, pfgc2 | p2) = matrix_ptr_tabulate (m, n) end // end of [local] // val (pfmat3, pfgc3 | p3) = matrix_ptr_alloc (m, n) // local implement matrix_map2to$fwork (x, y, z) = z := x + y in val () = matrix_map2to (!p1, !p2, !p3, m, n) end // end of [local] // val () = fprintln! (stdout_ref, "M1 = ") val () = fprint_matrix (stdout_ref, !p1, m, n) val () = fprint_newline (stdout_ref) val () = fprintln! (stdout_ref, "M2 = ") val () = fprint_matrix (stdout_ref, !p2, m, n) val () = fprint_newline (stdout_ref) val () = fprintln! (stdout_ref, "M3 = ") val () = fprint_matrix (stdout_ref, !p3, m, n) val () = fprint_newline (stdout_ref) // val () = matrix_ptr_free (pfmat1, pfgc1 | p1) val () = matrix_ptr_free (pfmat2, pfgc2 | p2) val () = matrix_ptr_free (pfmat3, pfgc3 | p3) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_matrix.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_list0.dats0000644000175000017500000001066013431250607023341 0ustar brandonbrandon(* ** for testing [libats/ML/list0] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" (* ****** ****** *) // staload _(*anon*) = "libats/ML/DATS/list0.dats" // (* ****** ****** *) val () = { // val out = stdout_ref // val xs = list0_make_intrange (0, 10) val () = assertloc (xs[0] = 0) val () = assertloc (xs[5] = 5) val () = assertloc (xs[9] = 9) val () = assertloc (list0_head_exn(xs) = 0) val () = assertloc (list0_head_exn(list0_tail_exn(xs)) = 1) // val xs = list0_make_intrange (0, 30, 3) val () = assertloc (xs[0] = 0) val () = assertloc (xs[5] = 15) val () = assertloc (xs[9] = 27) val () = assertloc (list0_head_exn(xs) = 0) val () = assertloc (list0_head_exn(list0_tail_exn(xs)) = 3) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref val xs = (list0)$arrpsz{string}("a", "b", "c", "d", "e") val () = assertloc (xs[0] = "a") val () = assertloc (xs[1] = "b") val () = assertloc (xs[2] = "c") val () = assertloc (xs[3] = "d") val () = assertloc (xs[4] = "e") // } (* end of [val] *) (* ****** ****** *) val () = { // val xs = list0 ( $arrpsz{string}("a", "b", "c", "d", "e") ) (* list0 *) // val xsxs = list0_append (xs, xs) val ((*void*)) = assertloc (length (xsxs) = 2 * length (xs)) // } (* end of [val] *) (* ****** ****** *) val () = { // #define N 10 // val i = N / 2 val xs = list0_make_intrange (0, N) val ys = list0_insert_at_exn (list0_remove_at_exn (xs, i), i, xs[i]) // list0_insert_at_exn val iseq = list0_equal (xs, ys, lam (x, y) => x = y) val () = assertloc (iseq) // } (* end of [val] *) (* ****** ****** *) val () = { // val xs = list0_of_list($list{int}(0, 2, 4, 6, 8)) // val () = assertloc(xs.forall()(lam (x) => x mod 2 = 0)) val () = assertloc (~(xs.exists()(lam (x) => x mod 2 != 0))) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val xs = list0_make_intrange(0, 10) val () = fprintln! (out, "xs = ", xs) // val ys = list0_map (xs, lam x => x + x) val () = fprintln! (out, "ys = ", ys) // val ys_odd = list0_filter (xs, lam x => x mod 2 != 0) val () = fprintln! (out, "ys_odd = ", ys_odd) // val ys_evn = list0_mapopt ( xs, lam x => if x mod 2 = 0 then Some_vt{int}(x) else None_vt() ) (* end of [val] *) val () = fprintln! (out, "ys_evn = ", ys_evn) // val () = assertloc ( 0+1+2+3+4+5+6+7+8+9 = xs.foldleft(TYPE{int})(0, lam(res, x) => res + x)) // val () = assertloc ( 0+1+2+3+4+5+6+7+8+9 = xs.foldright(TYPE{int})(lam(x, res) => x + res, 0)) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val xs = list0_make_intrange(0, 10) val () = fprintln! (out, "imap2: xs = ", xs) val ys = list0_imap2(xs, xs, lam(i, x1, x2) => i+x1*x2) val () = fprintln! (out, "imap2: ys = ", ys) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val xs = list0_make_intrange(0, 10) // val-list0_cons(5, _) = list0_skip_while(xs, lam(x) => x < 5) val-list0_cons(5, _) = list0_skip_until(xs, lam(x) => x >= 5) // val-5 = length(list0_take_while(xs, lam(x) => x < 5)) val-5 = length(list0_take_until(xs, lam(x) => x >= 5)) // } (* end of [val] *) (* ****** ****** *) val () = { val out = stdout_ref val xs = list0_make_intrange (10, 0, ~1) val () = fprintln! (out, "xs = ", xs) val xs_sorted = list0_mergesort (xs, lam (x, y) => compare (x, y)) val () = fprintln! (out, "xs_sorted = ", xs_sorted) val xs_sorted = list0_quicksort (xs, lam (x, y) => compare (x, y)) val () = fprintln! (out, "xs_sorted = ", xs_sorted) } (* end of [val] *) (* ****** ****** *) val () = { // val xs = g0ofg1($list{int}(0,1,2)) // val () = xs.choose2_foreach()(lam(x, y) => println!(x, "/", y)) // val () = xs.xprod2_foreach(xs)(lam(x, y) => println!(x, "/", y)) val () = xs.xprod2_iforeach(xs)(lam(i, x, j, y) => println!(i, ":", x, "/", j, ":", y)) // } (* end of [val] *) (* ****** ****** *) val () = { // val xs = g0ofg1($list{int}(0,1,2,3,4)) val xsxs = g0ofg1($list{list0(int)}(xs, xs)) // val out = stdout_ref // val ((*void*)) = fprintln! (out, "xs = ", xs) // val ((*void*)) = ( fprint! (out, "xsxs = "); fprint_listlist0_sep(out, xsxs, "; ", ", "); fprintln!(out) ) (* end of [val] *) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_list0.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_hashtbl_linprb.dats0000644000175000017500000000364013431250607024711 0ustar brandonbrandon(* ** for testing ** [libats/hashtbl_linprb] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu // Start time: May, 2014 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/SATS/hashtbl_linprb.sats" // staload _(*anon*) = "libats/DATS/hashfun.dats" staload _(*anon*) = "libats/DATS/hashtbl_linprb.dats" // (* ****** ****** *) val () = { val tbl = hashtbl_make_nil(i2sz(1024)) val-~list_vt_nil () = hashtbl_listize (tbl) } // end of [val] (* ****** ****** *) val () = { // val out = stdout_ref // typedef key = string and itm = int // val tbl = hashtbl_make_nil(i2sz(1)) // fun hashtbl_insert_exn ( tbl: !hashtbl(key, itm), k: key, x: itm ) : void = { val-~None_vt () = hashtbl_insert_opt (tbl, k, x) } // val () = hashtbl_insert_exn (tbl, "a", 0) val-~Some_vt(0) = hashtbl_insert_opt (tbl, "a", 1) // val () = hashtbl_insert_exn (tbl, "b", 2) val () = hashtbl_insert_exn (tbl, "c", 3) val () = hashtbl_insert_exn (tbl, "d", 4) val () = hashtbl_insert_exn (tbl, "e", 5) val () = hashtbl_insert_exn (tbl, "f", 6) // val () = hashtbl_insert_exn (tbl, "g", 7) val-~Some_vt(7) = hashtbl_takeout_opt (tbl, "g") // val () = fprintln! (out, "tbl = ", tbl) val () = fprintln! (out, "size(tbl) = ", hashtbl_get_size (tbl)) val () = fprintln! (out, "capacity(tbl) = ", hashtbl_get_capacity (tbl)) // val-~None_vt() = hashtbl_search_opt (tbl, "?") val-~Some_vt(1) = hashtbl_search_opt (tbl, "a") val-~Some_vt(2) = hashtbl_search_opt (tbl, "b") val-~Some_vt(3) = hashtbl_search_opt (tbl, "c") // val-true = hashtbl_reset_capacity (tbl, i2sz(10)) val () = fprintln! (out, "tbl = ", tbl) val () = fprintln! (out, "size(tbl) = ", hashtbl_get_size (tbl)) // val () = list_vt_free<(key,itm)> (hashtbl_listize (tbl)) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_hashtbl_linprb.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_funmset_listord.dats0000644000175000017500000000300413431250607025131 0ustar brandonbrandon(* ** for testing [libats/funmset_listord] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: Septmember, 2015 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/funmset_listord.sats" staload _(*anon*) = "libats/DATS/funmset_listord.dats" (* ****** ****** *) val () = { // typedef T = int val out = stdout_ref // val xs = $lst_vt{T}(0, 1, 2, 3, 4, 1, 2) val mset = funmset_make_list ($UN.list_vt2t(xs)) val ((*void*)) = assertloc (funmset_size (mset) = length(xs)) val ((*freed*)) = list_vt_free (xs) // val () = assertloc (funmset_is_member (mset, 2)) val () = assertloc (funmset_is_member (mset, 3)) val () = assertloc (funmset_is_member (mset, 4)) val () = assertloc (funmset_isnot_member (mset, 5)) // val ((*void*)) = fprintln! (out, "mset = ", mset) // val mset2 = funmset_union(mset, mset) val ((*void*)) = fprintln! (out, "mset2 = ", mset2) val mset3 = funmset_intersect(mset, mset) val ((*void*)) = fprintln! (out, "mset3 = ", mset3) // var mset = mset // val n2 = funmset_get_ntime(mset, 2) val () = assert(funmset_insert(mset, 2) = n2) val () = assert(funmset_remove(mset, 2) = n2+1) // val n5 = funmset_get_ntime(mset, 5) val () = assert(funmset_insert(mset, 5) = n5) val () = assert(funmset_remove(mset, 5) = n5+1) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_funmset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_char.dats0000644000175000017500000000751613431250607023023 0ustar brandonbrandon(* ** For testing ** [prelude/char] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = { // val () = assertloc ('A' = 'A') val () = assertloc ('A' < 'B') val () = assertloc ('A' <= 'B') val () = assertloc ('Z' > 'Y') val () = assertloc ('Z' >= 'Y') val () = assertloc (compare ('A', 'B') = ~1) val () = assertloc (compare ('A', 'C') = ~2) val () = assertloc (compare ('P', 'P') = 0) val () = assertloc (compare ('Z', 'X') = 2) val () = assertloc (compare ('Z', 'Y') = 1) // } (* end of [val] *) (* ****** ****** *) val () = { val c211 = '\211' val c212 = '\212' // val uc211 = c2uc(c211) val uc212 = c2uc(c212) // val i211 = char2i(c211) val i212 = char2i(c212) val () = println! ("i211_c2i = ", i211) val () = println! ("i212_c2i = ", i212) val i211 = uchar2i(uc211) val i212 = uchar2i(uc212) val () = println! ("i211_uc2i = ", i211) val () = println! ("i212_uc2i = ", i212) val i211 = char2u2i(c211) val i212 = char2u2i(c212) val () = println! ("i211_c2u2i = ", i211) val () = println! ("i212_c2u2i = ", i212) // val ui211 = char2ui(c211) val ui212 = char2ui(c212) val () = println! ("ui211_c2ui = ", ui211) val () = println! ("ui212_c2ui = ", ui212) val ui211 = uchar2ui(uc211) val ui212 = uchar2ui(uc212) val () = println! ("ui211_uc2ui = ", ui211) val () = println! ("ui212_uc2ui = ", ui212) val ui211 = char2u2ui(c211) val ui212 = char2u2ui(c212) val () = println! ("ui211_c2u2ui = ", ui211) val () = println! ("ui212_c2u2ui = ", ui212) // } (* end of [val] *) (* ****** ****** *) val () = { // val () = assertloc (isalpha ('A')) val () = assertloc (~isalpha ('0')) // val () = assertloc (isalnum ('A')) val () = assertloc (isalnum ('0')) val () = assertloc (~isalnum ('*')) // val () = assertloc (isascii ('A')) val () = assertloc (isascii (127)) val () = assertloc (isascii ('\177')) val () = assertloc (~isascii (128)) val () = assertloc (~isascii ('\200')) // val () = assertloc (isblank (' ')) val () = assertloc (isblank ('\t')) val () = assertloc (~isblank ('\n')) // val () = assertloc (isspace (' ')) val () = assertloc (isspace ('\t')) val () = assertloc (~isspace ('t')) val () = assertloc (isspace ('\n')) val () = assertloc (~isspace ('n')) // val () = assertloc (iscntrl ('\001')) val () = assertloc (iscntrl ('\002')) // val () = assertloc (isdigit ('0')) val () = assertloc (~isdigit ('a')) val () = assertloc (~isdigit ('A')) val () = assertloc (isxdigit ('0')) val () = assertloc (isxdigit ('a')) val () = assertloc (isxdigit ('A')) val () = assertloc (~isxdigit ('g')) // val () = assertloc (isprint ('a')) val () = assertloc (isprint ('A')) val () = assertloc (isprint (' ')) val () = assertloc (~isprint ('\t')) val () = assertloc (~isprint ('\n')) val () = assertloc (~isprint ('\000')) val () = assertloc (~isprint ('\001')) // val () = assertloc (ispunct (':')) val () = assertloc (ispunct (',')) val () = assertloc (ispunct (';')) val () = assertloc (ispunct ('.')) // val () = assertloc (islower ('a')) val () = assertloc (~islower ('A')) val () = assertloc (~islower ('0')) // val () = assertloc (isupper ('A')) val () = assertloc (~isupper ('a')) val () = assertloc (~isupper ('0')) // val () = assertloc (tolower 'A' = 'a') val () = assertloc (toupper 'a' = 'A') // } // end of [val] (* ****** ****** *) val () = { // val () = assertloc ('0' + 1 = '1') val () = assertloc ('0' + 5 = '5') val () = assertloc ('0' + 9 = '9') // val () = assertloc ('1' - 1 = '0') val () = assertloc ('5' - 5 = '0') val () = assertloc ('9' - 9 = '0') // val () = assertloc ('1' - '0' = 1) val () = assertloc ('5' - '0' = 5) val () = assertloc ('9' - '0' = 9) // } (* end of [val] *) (* ****** ****** *) overload stringify with char2string (* ****** ****** *) val () = assertloc("a" = stringify('a')) val () = assertloc("\n" = stringify('\n')) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_char.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_linmap_avltree.dats0000644000175000017500000000654513431250607024727 0ustar brandonbrandon(* ** for testing [libats/linmap_avltree] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/linmap_avltree.sats" (* ****** ****** *) staload _(*anon*) = "libats/DATS/qlist.dats" staload _(*anon*) = "libats/DATS/linmap_avltree.dats" (* ****** ****** *) val () = { // typedef key = int typedef itm = string vtypedef map = map (key, itm) // var res: itm? // var map = linmap_make_nil {key,itm} () // val ans = linmap_insert (map, 0, "a1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 1) val ans = linmap_insert (map, 1, "b1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 2) val ans = linmap_insert (map, 1, "b2", res) prval () = opt_clear (res) val () = assertloc (ans=true) // replaced // val () = assertloc (linmap_size (map) = 2) // val-~Some_vt("a1") = linmap_search_opt (map, 0) val-~Some_vt("b2") = linmap_search_opt (map, 1) // val ans = linmap_insert (map, 2, "c1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 3) // val () = assertloc (~linmap_remove (map, ~1)) // val-~Some_vt("a1") = linmap_takeout_opt (map, 0) val () = assertloc (linmap_size (map) = 2) val-~Some_vt("b2") = linmap_takeout_opt (map, 1) val () = assertloc (linmap_size (map) = 1) val-~Some_vt("c1") = linmap_takeout_opt (map, 2) val () = assertloc (linmap_size (map) = 0) // val () = linmap_free (map) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef key = int typedef itm = string typedef ki = @(key, itm) vtypedef map = map (key, itm) // var map = linmap_make_nil {key,itm} () // val-~None_vt() = linmap_insert_opt (map, 0, "0") val-~None_vt() = linmap_insert_opt (map, 1, "1") val-~None_vt() = linmap_insert_opt (map, 2, "2") val-~None_vt() = linmap_insert_opt (map, 3, "3") val-~None_vt() = linmap_insert_opt (map, 4, "4") // val kis = linmap_listize (map) // local implement fprint_val (out, ki) = fprint! (out, ki.0, ":", ki.1) in(*in-of-local*) val () = fprintln! (stdout_ref, "kis = ", kis) end // end of [local] // val ((*void*)) = list_vt_free (kis) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef key = int typedef itm = string vtypedef map = map (key, itm) // var map = linmap_make_nil {key,itm} () // val-~None_vt() = linmap_insert_opt (map, 0, "?") val-~Some_vt("?") = linmap_insert_opt (map, 0, "0") val-~None_vt() = linmap_insert_opt (map, 1, "1") val-~None_vt() = linmap_insert_opt (map, 2, "2") val-~None_vt() = linmap_insert_opt (map, 3, "3") val-~None_vt() = linmap_insert_opt (map, 4, "4") // val () = assertloc (linmap_size (map) = 5) // val () = list_vt_free (linmap_listize1 (map)) // val () = fprintln! (stdout_ref, "map = ", map) // val-~Some_vt("0") = linmap_takeout_opt (map, 0) val-~Some_vt("1") = linmap_takeout_opt (map, 1) val-~Some_vt("2") = linmap_takeout_opt (map, 2) val-~Some_vt("3") = linmap_takeout_opt (map, 3) val-~Some_vt("4") = linmap_takeout_opt (map, 4) // val () = assertloc (linmap_size (map) = 0) // val () = linmap_free (map) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_linmap_avltree.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_gflist.dats0000644000175000017500000000236613431250607023212 0ustar brandonbrandon(* ** for testing [libats/gflist] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start time: June, 2015 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/SATS/gflist.sats" // staload _ = "libats/DATS/gflist.dats" staload _ = "libats/DATS/gflist_vt.dats" // (* ****** ****** *) val xs1 = $list{int}(0,2,4,6,8) val xs2 = $list{int}(1,3,5,7,9) val (pf1len | xs1) = list2gflist(xs1) val (pf2len | xs2) = list2gflist(xs2) (* ****** ****** *) // val (pf3app | xs3) = gflist_append (xs1, xs2) val () = println! ("xs3 = ", (gflist2list(xs3)).1) // (* ****** ****** *) // val (pf4rev | xs4) = gflist_reverse (xs3) // val xs4 = gflist_vt2t(xs4) val () = println! ("xs4 = ", (gflist2list(xs4)).1) // (* ****** ****** *) // staload UN = $UNSAFE // implement gflist_mergesort$cmp (x1, x2) = ( // $UN.cast ( g0int_sgn ( $UN.cast2int(x1) - $UN.cast2int(x2) ) (*g0int_sgn*) ) (* $UN.cast *) // ) (* end of [gflist_mergesort$cmp] *) // val (pf5ord | xs5) = gflist_mergesort (xs3) // val xs5 = gflist_vt2t(xs5) val () = println! ("xs5 = ", (gflist2list(xs5)).1) // (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_gllist.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/Makefile0000644000175000017500000014261313431250607021147 0ustar brandonbrandon# # # This Makefile is automatically generated # from executing the following command-line: # # make -f Makefile.gen # # ###### # CCOPT=gcc # # CCOPT=gcc -std=c99 # ###### ifeq ("$(PATSHOME)","") PATSHOMEQ="$(ATSHOME)" else PATSHOMEQ="$(PATSHOME)" endif ###### PATSOPT=$(PATSHOMEQ)/bin/patsopt PATSLIB=$(PATSHOMEQ)/ccomp/atslib/lib ###### all:: ###### LNS=ln -s RMF=rm -f ###### all:: prelude_basics prelude_basics: prelude_basics.exe prelude_basics.exe: prelude_basics_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< prelude_basics_dats.c: prelude_basics.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_basics_dats.c --dynamic prelude_basics.dats clean:: ; $(RMF) prelude_basics_dats.o clean:: ; $(RMF) prelude_basics_dats.c cleanall:: ; $(RMF) prelude_basics.exe ###### all:: prelude_integer prelude_integer: prelude_integer.exe prelude_integer.exe: prelude_integer_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_integer_dats.c: prelude_integer.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_integer_dats.c --dynamic prelude_integer.dats clean:: ; $(RMF) prelude_integer_dats.o clean:: ; $(RMF) prelude_integer_dats.c cleanall:: ; $(RMF) prelude_integer.exe ###### all:: prelude_bool prelude_bool: prelude_bool.exe prelude_bool.exe: prelude_bool_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_bool_dats.c: prelude_bool.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_bool_dats.c --dynamic prelude_bool.dats clean:: ; $(RMF) prelude_bool_dats.o clean:: ; $(RMF) prelude_bool_dats.c cleanall:: ; $(RMF) prelude_bool.exe all:: prelude_char prelude_char: prelude_char.exe prelude_char.exe: prelude_char_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_char_dats.c: prelude_char.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_char_dats.c --dynamic prelude_char.dats clean:: ; $(RMF) prelude_char_dats.o clean:: ; $(RMF) prelude_char_dats.c cleanall:: ; $(RMF) prelude_char.exe all:: prelude_float prelude_float: prelude_float.exe prelude_float.exe: prelude_float_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -lm prelude_float_dats.c: prelude_float.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_float_dats.c --dynamic prelude_float.dats clean:: ; $(RMF) prelude_float_dats.o clean:: ; $(RMF) prelude_float_dats.c cleanall:: ; $(RMF) prelude_float.exe ###### all:: prelude_string prelude_string: prelude_string.exe prelude_string.exe: prelude_string_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib prelude_string_dats.c: prelude_string.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_string_dats.c --dynamic prelude_string.dats clean:: ; $(RMF) prelude_string_dats.o clean:: ; $(RMF) prelude_string_dats.c cleanall:: ; $(RMF) prelude_string.exe ###### all:: prelude_memory prelude_memory: prelude_memory.exe prelude_memory.exe: prelude_memory_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_memory_dats.c: prelude_memory.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_memory_dats.c --dynamic prelude_memory.dats clean:: ; $(RMF) prelude_memory_dats.o clean:: ; $(RMF) prelude_memory_dats.c cleanall:: ; $(RMF) prelude_memory.exe all:: prelude_pointer prelude_pointer: prelude_pointer.exe prelude_pointer.exe: prelude_pointer_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_pointer_dats.c: prelude_pointer.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_pointer_dats.c --dynamic prelude_pointer.dats clean:: ; $(RMF) prelude_pointer_dats.o clean:: ; $(RMF) prelude_pointer_dats.c cleanall:: ; $(RMF) prelude_pointer.exe ###### all:: prelude_reference prelude_reference: prelude_reference.exe prelude_reference.exe: prelude_reference_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_reference_dats.c: prelude_reference.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_reference_dats.c --dynamic prelude_reference.dats clean:: ; $(RMF) prelude_reference_dats.o clean:: ; $(RMF) prelude_reference_dats.c cleanall:: ; $(RMF) prelude_reference.exe ###### all:: prelude_filebas prelude_filebas: prelude_filebas.exe prelude_filebas.exe: prelude_filebas_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib prelude_filebas_dats.c: prelude_filebas.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_filebas_dats.c --dynamic prelude_filebas.dats clean:: ; $(RMF) prelude_filebas_dats.o clean:: ; $(RMF) prelude_filebas_dats.c cleanall:: ; $(RMF) prelude_filebas.exe ###### all:: prelude_checkast prelude_checkast: prelude_checkast.exe prelude_checkast.exe: prelude_checkast_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< prelude_checkast_dats.c: prelude_checkast.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_checkast_dats.c --dynamic prelude_checkast.dats clean:: ; $(RMF) prelude_checkast_dats.o clean:: ; $(RMF) prelude_checkast_dats.c cleanall:: ; $(RMF) prelude_checkast.exe ###### all:: prelude_intrange prelude_intrange: prelude_intrange.exe prelude_intrange.exe: prelude_intrange_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_intrange_dats.c: prelude_intrange.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_intrange_dats.c --dynamic prelude_intrange.dats clean:: ; $(RMF) prelude_intrange_dats.o clean:: ; $(RMF) prelude_intrange_dats.c cleanall:: ; $(RMF) prelude_intrange.exe ###### all:: prelude_list prelude_list: prelude_list.exe prelude_list.exe: prelude_list_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_list_dats.c: prelude_list.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_list_dats.c --dynamic prelude_list.dats clean:: ; $(RMF) prelude_list_dats.o clean:: ; $(RMF) prelude_list_dats.c cleanall:: ; $(RMF) prelude_list.exe all:: prelude_list_vt prelude_list_vt: prelude_list_vt.exe prelude_list_vt.exe: prelude_list_vt_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_list_vt_dats.c: prelude_list_vt.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_list_vt_dats.c --dynamic prelude_list_vt.dats clean:: ; $(RMF) prelude_list_vt_dats.o clean:: ; $(RMF) prelude_list_vt_dats.c cleanall:: ; $(RMF) prelude_list_vt.exe all:: prelude_option prelude_option: prelude_option.exe prelude_option.exe: prelude_option_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_option_dats.c: prelude_option.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_option_dats.c --dynamic prelude_option.dats clean:: ; $(RMF) prelude_option_dats.o clean:: ; $(RMF) prelude_option_dats.c cleanall:: ; $(RMF) prelude_option.exe all:: prelude_option_vt prelude_option_vt: prelude_option_vt.exe prelude_option_vt.exe: prelude_option_vt_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_option_vt_dats.c: prelude_option_vt.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_option_vt_dats.c --dynamic prelude_option_vt.dats clean:: ; $(RMF) prelude_option_vt_dats.o clean:: ; $(RMF) prelude_option_vt_dats.c cleanall:: ; $(RMF) prelude_option_vt.exe all:: prelude_array prelude_array: prelude_array.exe prelude_array.exe: prelude_array_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_array_dats.c: prelude_array.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_array_dats.c --dynamic prelude_array.dats clean:: ; $(RMF) prelude_array_dats.o clean:: ; $(RMF) prelude_array_dats.c cleanall:: ; $(RMF) prelude_array.exe all:: prelude_arrayptr prelude_arrayptr: prelude_arrayptr.exe prelude_arrayptr.exe: prelude_arrayptr_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_arrayptr_dats.c: prelude_arrayptr.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_arrayptr_dats.c --dynamic prelude_arrayptr.dats clean:: ; $(RMF) prelude_arrayptr_dats.o clean:: ; $(RMF) prelude_arrayptr_dats.c cleanall:: ; $(RMF) prelude_arrayptr.exe all:: prelude_arrayref prelude_arrayref: prelude_arrayref.exe prelude_arrayref.exe: prelude_arrayref_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_arrayref_dats.c: prelude_arrayref.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_arrayref_dats.c --dynamic prelude_arrayref.dats clean:: ; $(RMF) prelude_arrayref_dats.o clean:: ; $(RMF) prelude_arrayref_dats.c cleanall:: ; $(RMF) prelude_arrayref.exe all:: prelude_matrix prelude_matrix: prelude_matrix.exe prelude_matrix.exe: prelude_matrix_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_matrix_dats.c: prelude_matrix.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_matrix_dats.c --dynamic prelude_matrix.dats clean:: ; $(RMF) prelude_matrix_dats.o clean:: ; $(RMF) prelude_matrix_dats.c cleanall:: ; $(RMF) prelude_matrix.exe all:: prelude_matrixptr prelude_matrixptr: prelude_matrixptr.exe prelude_matrixptr.exe: prelude_matrixptr_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_matrixptr_dats.c: prelude_matrixptr.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_matrixptr_dats.c --dynamic prelude_matrixptr.dats clean:: ; $(RMF) prelude_matrixptr_dats.o clean:: ; $(RMF) prelude_matrixptr_dats.c cleanall:: ; $(RMF) prelude_matrixptr.exe all:: prelude_matrixref prelude_matrixref: prelude_matrixref.exe prelude_matrixref.exe: prelude_matrixref_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_matrixref_dats.c: prelude_matrixref.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_matrixref_dats.c --dynamic prelude_matrixref.dats clean:: ; $(RMF) prelude_matrixref_dats.o clean:: ; $(RMF) prelude_matrixref_dats.c cleanall:: ; $(RMF) prelude_matrixref.exe all:: prelude_stream prelude_stream: prelude_stream.exe prelude_stream.exe: prelude_stream_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_stream_dats.c: prelude_stream.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_stream_dats.c --dynamic prelude_stream.dats clean:: ; $(RMF) prelude_stream_dats.o clean:: ; $(RMF) prelude_stream_dats.c cleanall:: ; $(RMF) prelude_stream.exe all:: prelude_stream_vt prelude_stream_vt: prelude_stream_vt.exe prelude_stream_vt.exe: prelude_stream_vt_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_stream_vt_dats.c: prelude_stream_vt.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_stream_vt_dats.c --dynamic prelude_stream_vt.dats clean:: ; $(RMF) prelude_stream_vt_dats.o clean:: ; $(RMF) prelude_stream_vt_dats.c cleanall:: ; $(RMF) prelude_stream_vt.exe ###### all:: prelude_grandom prelude_grandom: prelude_grandom.exe prelude_grandom.exe: prelude_grandom_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_grandom_dats.c: prelude_grandom.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_grandom_dats.c --dynamic prelude_grandom.dats clean:: ; $(RMF) prelude_grandom_dats.o clean:: ; $(RMF) prelude_grandom_dats.c cleanall:: ; $(RMF) prelude_grandom.exe ###### all:: prelude_gprint prelude_gprint: prelude_gprint.exe prelude_gprint.exe: prelude_gprint_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_gprint_dats.c: prelude_gprint.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_gprint_dats.c --dynamic prelude_gprint.dats clean:: ; $(RMF) prelude_gprint_dats.o clean:: ; $(RMF) prelude_gprint_dats.c cleanall:: ; $(RMF) prelude_gprint.exe all:: prelude_tostring prelude_tostring: prelude_tostring.exe prelude_tostring.exe: prelude_tostring_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< prelude_tostring_dats.c: prelude_tostring.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output prelude_tostring_dats.c --dynamic prelude_tostring.dats clean:: ; $(RMF) prelude_tostring_dats.o clean:: ; $(RMF) prelude_tostring_dats.c cleanall:: ; $(RMF) prelude_tostring.exe ###### all:: libats_qlist libats_qlist: libats_qlist.exe libats_qlist.exe: libats_qlist_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_qlist_dats.c: libats_qlist.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_qlist_dats.c --dynamic libats_qlist.dats clean:: ; $(RMF) libats_qlist_dats.o clean:: ; $(RMF) libats_qlist_dats.c cleanall:: ; $(RMF) libats_qlist.exe all:: libats_sllist libats_sllist: libats_sllist.exe libats_sllist.exe: libats_sllist_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_sllist_dats.c: libats_sllist.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_sllist_dats.c --dynamic libats_sllist.dats clean:: ; $(RMF) libats_sllist_dats.o clean:: ; $(RMF) libats_sllist_dats.c cleanall:: ; $(RMF) libats_sllist.exe all:: libats_dllist libats_dllist: libats_dllist.exe libats_dllist.exe: libats_dllist_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_dllist_dats.c: libats_dllist.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_dllist_dats.c --dynamic libats_dllist.dats clean:: ; $(RMF) libats_dllist_dats.o clean:: ; $(RMF) libats_dllist_dats.c cleanall:: ; $(RMF) libats_dllist.exe ###### all:: libats_gflist libats_gflist: libats_gflist.exe libats_gflist.exe: libats_gflist_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_gflist_dats.c: libats_gflist.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_gflist_dats.c --dynamic libats_gflist.dats clean:: ; $(RMF) libats_gflist_dats.o clean:: ; $(RMF) libats_gflist_dats.c cleanall:: ; $(RMF) libats_gflist.exe ###### all:: libats_bitvec libats_bitvec: libats_bitvec.exe libats_bitvec.exe: libats_bitvec_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_bitvec_dats.c: libats_bitvec.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_bitvec_dats.c --dynamic libats_bitvec.dats clean:: ; $(RMF) libats_bitvec_dats.o clean:: ; $(RMF) libats_bitvec_dats.c cleanall:: ; $(RMF) libats_bitvec.exe ###### all:: libats_stkarray libats_stkarray: libats_stkarray.exe libats_stkarray.exe: libats_stkarray_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_stkarray_dats.c: libats_stkarray.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_stkarray_dats.c --dynamic libats_stkarray.dats clean:: ; $(RMF) libats_stkarray_dats.o clean:: ; $(RMF) libats_stkarray_dats.c cleanall:: ; $(RMF) libats_stkarray.exe all:: libats_deqarray libats_deqarray: libats_deqarray.exe libats_deqarray.exe: libats_deqarray_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_deqarray_dats.c: libats_deqarray.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_deqarray_dats.c --dynamic libats_deqarray.dats clean:: ; $(RMF) libats_deqarray_dats.o clean:: ; $(RMF) libats_deqarray_dats.c cleanall:: ; $(RMF) libats_deqarray.exe ###### all:: libats_dynarray libats_dynarray: libats_dynarray.exe libats_dynarray.exe: libats_dynarray_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_dynarray_dats.c: libats_dynarray.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_dynarray_dats.c --dynamic libats_dynarray.dats clean:: ; $(RMF) libats_dynarray_dats.o clean:: ; $(RMF) libats_dynarray_dats.c cleanall:: ; $(RMF) libats_dynarray.exe ###### all:: libats_refcount libats_refcount: libats_refcount.exe libats_refcount.exe: libats_refcount_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_refcount_dats.c: libats_refcount.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_refcount_dats.c --dynamic libats_refcount.dats clean:: ; $(RMF) libats_refcount_dats.o clean:: ; $(RMF) libats_refcount_dats.c cleanall:: ; $(RMF) libats_refcount.exe ###### all:: libats_stringbuf libats_stringbuf: libats_stringbuf.exe libats_stringbuf.exe: libats_stringbuf_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_stringbuf_dats.c: libats_stringbuf.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_stringbuf_dats.c --dynamic libats_stringbuf.dats clean:: ; $(RMF) libats_stringbuf_dats.o clean:: ; $(RMF) libats_stringbuf_dats.c cleanall:: ; $(RMF) libats_stringbuf.exe ###### ###### all:: libats_hashtbl_chain libats_hashtbl_chain: libats_hashtbl_chain.exe libats_hashtbl_chain.exe: libats_hashtbl_chain_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_hashtbl_chain_dats.c: libats_hashtbl_chain.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_hashtbl_chain_dats.c --dynamic libats_hashtbl_chain.dats clean:: ; $(RMF) libats_hashtbl_chain_dats.o clean:: ; $(RMF) libats_hashtbl_chain_dats.c cleanall:: ; $(RMF) libats_hashtbl_chain.exe all:: libats_hashtbl_linprb libats_hashtbl_linprb: libats_hashtbl_linprb.exe libats_hashtbl_linprb.exe: libats_hashtbl_linprb_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_hashtbl_linprb_dats.c: libats_hashtbl_linprb.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_hashtbl_linprb_dats.c --dynamic libats_hashtbl_linprb.dats clean:: ; $(RMF) libats_hashtbl_linprb_dats.o clean:: ; $(RMF) libats_hashtbl_linprb_dats.c cleanall:: ; $(RMF) libats_hashtbl_linprb.exe ###### all:: libats_funmap_list libats_funmap_list: libats_funmap_list.exe libats_funmap_list.exe: libats_funmap_list_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_funmap_list_dats.c: libats_funmap_list.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_funmap_list_dats.c --dynamic libats_funmap_list.dats clean:: ; $(RMF) libats_funmap_list_dats.o clean:: ; $(RMF) libats_funmap_list_dats.c cleanall:: ; $(RMF) libats_funmap_list.exe all:: libats_funmap_avltree libats_funmap_avltree: libats_funmap_avltree.exe libats_funmap_avltree.exe: libats_funmap_avltree_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_funmap_avltree_dats.c: libats_funmap_avltree.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_funmap_avltree_dats.c --dynamic libats_funmap_avltree.dats clean:: ; $(RMF) libats_funmap_avltree_dats.o clean:: ; $(RMF) libats_funmap_avltree_dats.c cleanall:: ; $(RMF) libats_funmap_avltree.exe all:: libats_funmap_rbtree libats_funmap_rbtree: libats_funmap_rbtree.exe libats_funmap_rbtree.exe: libats_funmap_rbtree_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_funmap_rbtree_dats.c: libats_funmap_rbtree.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_funmap_rbtree_dats.c --dynamic libats_funmap_rbtree.dats clean:: ; $(RMF) libats_funmap_rbtree_dats.o clean:: ; $(RMF) libats_funmap_rbtree_dats.c cleanall:: ; $(RMF) libats_funmap_rbtree.exe ###### all:: libats_funset_listord libats_funset_listord: libats_funset_listord.exe libats_funset_listord.exe: libats_funset_listord_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_funset_listord_dats.c: libats_funset_listord.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_funset_listord_dats.c --dynamic libats_funset_listord.dats clean:: ; $(RMF) libats_funset_listord_dats.o clean:: ; $(RMF) libats_funset_listord_dats.c cleanall:: ; $(RMF) libats_funset_listord.exe all:: libats_funset_avltree libats_funset_avltree: libats_funset_avltree.exe libats_funset_avltree.exe: libats_funset_avltree_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_funset_avltree_dats.c: libats_funset_avltree.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_funset_avltree_dats.c --dynamic libats_funset_avltree.dats clean:: ; $(RMF) libats_funset_avltree_dats.o clean:: ; $(RMF) libats_funset_avltree_dats.c cleanall:: ; $(RMF) libats_funset_avltree.exe ###### all:: libats_funmset_listord libats_funmset_listord: libats_funmset_listord.exe libats_funmset_listord.exe: libats_funmset_listord_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_funmset_listord_dats.c: libats_funmset_listord.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_funmset_listord_dats.c --dynamic libats_funmset_listord.dats clean:: ; $(RMF) libats_funmset_listord_dats.o clean:: ; $(RMF) libats_funmset_listord_dats.c cleanall:: ; $(RMF) libats_funmset_listord.exe ###### all:: libats_funarray_braunt libats_funarray_braunt: libats_funarray_braunt.exe libats_funarray_braunt.exe: libats_funarray_braunt_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_funarray_braunt_dats.c: libats_funarray_braunt.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_funarray_braunt_dats.c --dynamic libats_funarray_braunt.dats clean:: ; $(RMF) libats_funarray_braunt_dats.o clean:: ; $(RMF) libats_funarray_braunt_dats.c cleanall:: ; $(RMF) libats_funarray_braunt.exe ###### all:: libats_fundeque_fngtree libats_fundeque_fngtree: libats_fundeque_fngtree.exe libats_fundeque_fngtree.exe: libats_fundeque_fngtree_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_fundeque_fngtree_dats.c: libats_fundeque_fngtree.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_fundeque_fngtree_dats.c --dynamic libats_fundeque_fngtree.dats clean:: ; $(RMF) libats_fundeque_fngtree_dats.o clean:: ; $(RMF) libats_fundeque_fngtree_dats.c cleanall:: ; $(RMF) libats_fundeque_fngtree.exe all:: libats_funralist_nested libats_funralist_nested: libats_funralist_nested.exe libats_funralist_nested.exe: libats_funralist_nested_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_funralist_nested_dats.c: libats_funralist_nested.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_funralist_nested_dats.c --dynamic libats_funralist_nested.dats clean:: ; $(RMF) libats_funralist_nested_dats.o clean:: ; $(RMF) libats_funralist_nested_dats.c cleanall:: ; $(RMF) libats_funralist_nested.exe ###### all:: libats_linmap_list libats_linmap_list: libats_linmap_list.exe libats_linmap_list.exe: libats_linmap_list_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_linmap_list_dats.c: libats_linmap_list.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_linmap_list_dats.c --dynamic libats_linmap_list.dats clean:: ; $(RMF) libats_linmap_list_dats.o clean:: ; $(RMF) libats_linmap_list_dats.c cleanall:: ; $(RMF) libats_linmap_list.exe all:: libats_linmap_avltree libats_linmap_avltree: libats_linmap_avltree.exe libats_linmap_avltree.exe: libats_linmap_avltree_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_linmap_avltree_dats.c: libats_linmap_avltree.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_linmap_avltree_dats.c --dynamic libats_linmap_avltree.dats clean:: ; $(RMF) libats_linmap_avltree_dats.o clean:: ; $(RMF) libats_linmap_avltree_dats.c cleanall:: ; $(RMF) libats_linmap_avltree.exe all:: libats_linmap_randbst libats_linmap_randbst: libats_linmap_randbst.exe libats_linmap_randbst.exe: libats_linmap_randbst_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_linmap_randbst_dats.c: libats_linmap_randbst.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_linmap_randbst_dats.c --dynamic libats_linmap_randbst.dats clean:: ; $(RMF) libats_linmap_randbst_dats.o clean:: ; $(RMF) libats_linmap_randbst_dats.c cleanall:: ; $(RMF) libats_linmap_randbst.exe all:: libats_linmap_skiplist libats_linmap_skiplist: libats_linmap_skiplist.exe libats_linmap_skiplist.exe: libats_linmap_skiplist_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_linmap_skiplist_dats.c: libats_linmap_skiplist.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_linmap_skiplist_dats.c --dynamic libats_linmap_skiplist.dats clean:: ; $(RMF) libats_linmap_skiplist_dats.o clean:: ; $(RMF) libats_linmap_skiplist_dats.c cleanall:: ; $(RMF) libats_linmap_skiplist.exe ###### all:: libats_linset_listord libats_linset_listord: libats_linset_listord.exe libats_linset_listord.exe: libats_linset_listord_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_linset_listord_dats.c: libats_linset_listord.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_linset_listord_dats.c --dynamic libats_linset_listord.dats clean:: ; $(RMF) libats_linset_listord_dats.o clean:: ; $(RMF) libats_linset_listord_dats.c cleanall:: ; $(RMF) libats_linset_listord.exe all:: libats_linset_avltree libats_linset_avltree: libats_linset_avltree.exe libats_linset_avltree.exe: libats_linset_avltree_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_linset_avltree_dats.c: libats_linset_avltree.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_linset_avltree_dats.c --dynamic libats_linset_avltree.dats clean:: ; $(RMF) libats_linset_avltree_dats.o clean:: ; $(RMF) libats_linset_avltree_dats.c cleanall:: ; $(RMF) libats_linset_avltree.exe ###### all:: libats_linheap_binomial libats_linheap_binomial: libats_linheap_binomial.exe libats_linheap_binomial.exe: libats_linheap_binomial_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_linheap_binomial_dats.c: libats_linheap_binomial.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_linheap_binomial_dats.c --dynamic libats_linheap_binomial.dats clean:: ; $(RMF) libats_linheap_binomial_dats.o clean:: ; $(RMF) libats_linheap_binomial_dats.c cleanall:: ; $(RMF) libats_linheap_binomial.exe all:: libats_linheap_binomial2 libats_linheap_binomial2: libats_linheap_binomial2.exe libats_linheap_binomial2.exe: libats_linheap_binomial2_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_linheap_binomial2_dats.c: libats_linheap_binomial2.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_linheap_binomial2_dats.c --dynamic libats_linheap_binomial2.dats clean:: ; $(RMF) libats_linheap_binomial2_dats.o clean:: ; $(RMF) libats_linheap_binomial2_dats.c cleanall:: ; $(RMF) libats_linheap_binomial2.exe ###### all:: libats_lindeque_dllist libats_lindeque_dllist: libats_lindeque_dllist.exe libats_lindeque_dllist.exe: libats_lindeque_dllist_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_lindeque_dllist_dats.c: libats_lindeque_dllist.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_lindeque_dllist_dats.c --dynamic libats_lindeque_dllist.dats clean:: ; $(RMF) libats_lindeque_dllist_dats.o clean:: ; $(RMF) libats_lindeque_dllist_dats.c cleanall:: ; $(RMF) libats_lindeque_dllist.exe ###### all:: libats_ML_list0 libats_ML_list0: libats_ML_list0.exe libats_ML_list0.exe: libats_ML_list0_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_list0_dats.c: libats_ML_list0.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_list0_dats.c --dynamic libats_ML_list0.dats clean:: ; $(RMF) libats_ML_list0_dats.o clean:: ; $(RMF) libats_ML_list0_dats.c cleanall:: ; $(RMF) libats_ML_list0.exe all:: libats_ML_array0 libats_ML_array0: libats_ML_array0.exe libats_ML_array0.exe: libats_ML_array0_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_array0_dats.c: libats_ML_array0.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_array0_dats.c --dynamic libats_ML_array0.dats clean:: ; $(RMF) libats_ML_array0_dats.o clean:: ; $(RMF) libats_ML_array0_dats.c cleanall:: ; $(RMF) libats_ML_array0.exe all:: libats_ML_matrix0 libats_ML_matrix0: libats_ML_matrix0.exe libats_ML_matrix0.exe: libats_ML_matrix0_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_matrix0_dats.c: libats_ML_matrix0.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_matrix0_dats.c --dynamic libats_ML_matrix0.dats clean:: ; $(RMF) libats_ML_matrix0_dats.o clean:: ; $(RMF) libats_ML_matrix0_dats.c cleanall:: ; $(RMF) libats_ML_matrix0.exe all:: libats_ML_string libats_ML_string: libats_ML_string.exe libats_ML_string.exe: libats_ML_string_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_string_dats.c: libats_ML_string.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_string_dats.c --dynamic libats_ML_string.dats clean:: ; $(RMF) libats_ML_string_dats.o clean:: ; $(RMF) libats_ML_string_dats.c cleanall:: ; $(RMF) libats_ML_string.exe all:: libats_ML_strarr libats_ML_strarr: libats_ML_strarr.exe libats_ML_strarr.exe: libats_ML_strarr_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_strarr_dats.c: libats_ML_strarr.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_strarr_dats.c --dynamic libats_ML_strarr.dats clean:: ; $(RMF) libats_ML_strarr_dats.o clean:: ; $(RMF) libats_ML_strarr_dats.c cleanall:: ; $(RMF) libats_ML_strarr.exe ###### all:: libats_ML_gvalue libats_ML_gvalue: libats_ML_gvalue.exe libats_ML_gvalue.exe: libats_ML_gvalue_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_gvalue_dats.c: libats_ML_gvalue.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_gvalue_dats.c --dynamic libats_ML_gvalue.dats clean:: ; $(RMF) libats_ML_gvalue_dats.o clean:: ; $(RMF) libats_ML_gvalue_dats.c cleanall:: ; $(RMF) libats_ML_gvalue.exe ###### all:: libats_ML_filebas libats_ML_filebas: libats_ML_filebas.exe libats_ML_filebas.exe: libats_ML_filebas_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_filebas_dats.c: libats_ML_filebas.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_filebas_dats.c --dynamic libats_ML_filebas.dats clean:: ; $(RMF) libats_ML_filebas_dats.o clean:: ; $(RMF) libats_ML_filebas_dats.c cleanall:: ; $(RMF) libats_ML_filebas.exe all:: libats_ML_intrange libats_ML_intrange: libats_ML_intrange.exe libats_ML_intrange.exe: libats_ML_intrange_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_intrange_dats.c: libats_ML_intrange.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_intrange_dats.c --dynamic libats_ML_intrange.dats clean:: ; $(RMF) libats_ML_intrange_dats.o clean:: ; $(RMF) libats_ML_intrange_dats.c cleanall:: ; $(RMF) libats_ML_intrange.exe ###### all:: libats_ML_funset libats_ML_funset: libats_ML_funset.exe libats_ML_funset.exe: libats_ML_funset_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_funset_dats.c: libats_ML_funset.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_funset_dats.c --dynamic libats_ML_funset.dats clean:: ; $(RMF) libats_ML_funset_dats.o clean:: ; $(RMF) libats_ML_funset_dats.c cleanall:: ; $(RMF) libats_ML_funset.exe all:: libats_ML_funmap libats_ML_funmap: libats_ML_funmap.exe libats_ML_funmap.exe: libats_ML_funmap_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_funmap_dats.c: libats_ML_funmap.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_funmap_dats.c --dynamic libats_ML_funmap.dats clean:: ; $(RMF) libats_ML_funmap_dats.o clean:: ; $(RMF) libats_ML_funmap_dats.c cleanall:: ; $(RMF) libats_ML_funmap.exe all:: libats_ML_myfunset libats_ML_myfunset: libats_ML_myfunset.exe libats_ML_myfunset.exe: libats_ML_myfunset_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_myfunset_dats.c: libats_ML_myfunset.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_myfunset_dats.c --dynamic libats_ML_myfunset.dats clean:: ; $(RMF) libats_ML_myfunset_dats.o clean:: ; $(RMF) libats_ML_myfunset_dats.c cleanall:: ; $(RMF) libats_ML_myfunset.exe all:: libats_ML_myfunmap libats_ML_myfunmap: libats_ML_myfunmap.exe libats_ML_myfunmap.exe: libats_ML_myfunmap_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_myfunmap_dats.c: libats_ML_myfunmap.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_myfunmap_dats.c --dynamic libats_ML_myfunmap.dats clean:: ; $(RMF) libats_ML_myfunmap_dats.o clean:: ; $(RMF) libats_ML_myfunmap_dats.c cleanall:: ; $(RMF) libats_ML_myfunmap.exe ###### all:: libats_ML_qlistref libats_ML_qlistref: libats_ML_qlistref.exe libats_ML_qlistref.exe: libats_ML_qlistref_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_qlistref_dats.c: libats_ML_qlistref.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_qlistref_dats.c --dynamic libats_ML_qlistref.dats clean:: ; $(RMF) libats_ML_qlistref_dats.o clean:: ; $(RMF) libats_ML_qlistref_dats.c cleanall:: ; $(RMF) libats_ML_qlistref.exe ###### all:: libats_ML_hashtblref libats_ML_hashtblref: libats_ML_hashtblref.exe libats_ML_hashtblref.exe: libats_ML_hashtblref_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_hashtblref_dats.c: libats_ML_hashtblref.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_hashtblref_dats.c --dynamic libats_ML_hashtblref.dats clean:: ; $(RMF) libats_ML_hashtblref_dats.o clean:: ; $(RMF) libats_ML_hashtblref_dats.c cleanall:: ; $(RMF) libats_ML_hashtblref.exe all:: libats_ML_myhashtblref libats_ML_myhashtblref: libats_ML_myhashtblref.exe libats_ML_myhashtblref.exe: libats_ML_myhashtblref_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_myhashtblref_dats.c: libats_ML_myhashtblref.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_myhashtblref_dats.c --dynamic libats_ML_myhashtblref.dats clean:: ; $(RMF) libats_ML_myhashtblref_dats.o clean:: ; $(RMF) libats_ML_myhashtblref_dats.c cleanall:: ; $(RMF) libats_ML_myhashtblref.exe ###### all:: libats_ML_monad_list libats_ML_monad_list: libats_ML_monad_list.exe libats_ML_monad_list.exe: libats_ML_monad_list_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_monad_list_dats.c: libats_ML_monad_list.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_monad_list_dats.c --dynamic libats_ML_monad_list.dats clean:: ; $(RMF) libats_ML_monad_list_dats.o clean:: ; $(RMF) libats_ML_monad_list_dats.c cleanall:: ; $(RMF) libats_ML_monad_list.exe all:: libats_ML_monad_maybe libats_ML_monad_maybe: libats_ML_monad_maybe.exe libats_ML_monad_maybe.exe: libats_ML_monad_maybe_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_monad_maybe_dats.c: libats_ML_monad_maybe.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_monad_maybe_dats.c --dynamic libats_ML_monad_maybe.dats clean:: ; $(RMF) libats_ML_monad_maybe_dats.o clean:: ; $(RMF) libats_ML_monad_maybe_dats.c cleanall:: ; $(RMF) libats_ML_monad_maybe.exe ###### all:: libats_ML_COMPILE_all libats_ML_COMPILE_all: libats_ML_COMPILE_all.exe libats_ML_COMPILE_all.exe: libats_ML_COMPILE_all_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ML_COMPILE_all_dats.c: libats_ML_COMPILE_all.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ML_COMPILE_all_dats.c --dynamic libats_ML_COMPILE_all.dats clean:: ; $(RMF) libats_ML_COMPILE_all_dats.o clean:: ; $(RMF) libats_ML_COMPILE_all_dats.c cleanall:: ; $(RMF) libats_ML_COMPILE_all.exe ###### all:: libats_libc_fcntl libats_libc_fcntl: libats_libc_fcntl.exe libats_libc_fcntl.exe: libats_libc_fcntl_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< libats_libc_fcntl_dats.c: libats_libc_fcntl.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_fcntl_dats.c --dynamic libats_libc_fcntl.dats clean:: ; $(RMF) libats_libc_fcntl_dats.o clean:: ; $(RMF) libats_libc_fcntl_dats.c cleanall:: ; $(RMF) libats_libc_fcntl.exe all:: libats_libc_fnmatch libats_libc_fnmatch: libats_libc_fnmatch.exe libats_libc_fnmatch.exe: libats_libc_fnmatch_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< libats_libc_fnmatch_dats.c: libats_libc_fnmatch.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_fnmatch_dats.c --dynamic libats_libc_fnmatch.dats clean:: ; $(RMF) libats_libc_fnmatch_dats.o clean:: ; $(RMF) libats_libc_fnmatch_dats.c cleanall:: ; $(RMF) libats_libc_fnmatch.exe all:: libats_libc_math libats_libc_math: libats_libc_math.exe libats_libc_math.exe: libats_libc_math_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< -lm libats_libc_math_dats.c: libats_libc_math.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_math_dats.c --dynamic libats_libc_math.dats clean:: ; $(RMF) libats_libc_math_dats.o clean:: ; $(RMF) libats_libc_math_dats.c cleanall:: ; $(RMF) libats_libc_math.exe all:: libats_libc_dlfcn libats_libc_dlfcn: libats_libc_dlfcn.exe libats_libc_dlfcn.exe: libats_libc_dlfcn_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -o $@ $< -ldl libats_libc_dlfcn_dats.c: libats_libc_dlfcn.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_dlfcn_dats.c --dynamic libats_libc_dlfcn.dats clean:: ; $(RMF) libats_libc_dlfcn_dats.o clean:: ; $(RMF) libats_libc_dlfcn_dats.c cleanall:: ; $(RMF) libats_libc_dlfcn.exe all:: libats_libc_dirent libats_libc_dirent: libats_libc_dirent.exe libats_libc_dirent.exe: libats_libc_dirent_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_libc_dirent_dats.c: libats_libc_dirent.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_dirent_dats.c --dynamic libats_libc_dirent.dats clean:: ; $(RMF) libats_libc_dirent_dats.o clean:: ; $(RMF) libats_libc_dirent_dats.c cleanall:: ; $(RMF) libats_libc_dirent.exe all:: libats_libc_malloc libats_libc_malloc: libats_libc_malloc.exe libats_libc_malloc.exe: libats_libc_malloc_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_libc_malloc_dats.c: libats_libc_malloc.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_malloc_dats.c --dynamic libats_libc_malloc.dats clean:: ; $(RMF) libats_libc_malloc_dats.o clean:: ; $(RMF) libats_libc_malloc_dats.c cleanall:: ; $(RMF) libats_libc_malloc.exe all:: libats_libc_signal libats_libc_signal: libats_libc_signal.exe libats_libc_signal.exe: libats_libc_signal_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_libc_signal_dats.c: libats_libc_signal.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_signal_dats.c --dynamic libats_libc_signal.dats clean:: ; $(RMF) libats_libc_signal_dats.o clean:: ; $(RMF) libats_libc_signal_dats.c cleanall:: ; $(RMF) libats_libc_signal.exe all:: libats_libc_stdio libats_libc_stdio: libats_libc_stdio.exe libats_libc_stdio.exe: libats_libc_stdio_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_libc_stdio_dats.c: libats_libc_stdio.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_stdio_dats.c --dynamic libats_libc_stdio.dats clean:: ; $(RMF) libats_libc_stdio_dats.o clean:: ; $(RMF) libats_libc_stdio_dats.c cleanall:: ; $(RMF) libats_libc_stdio.exe all:: libats_libc_stdlib libats_libc_stdlib: libats_libc_stdlib.exe libats_libc_stdlib.exe: libats_libc_stdlib_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_libc_stdlib_dats.c: libats_libc_stdlib.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_stdlib_dats.c --dynamic libats_libc_stdlib.dats clean:: ; $(RMF) libats_libc_stdlib_dats.o clean:: ; $(RMF) libats_libc_stdlib_dats.c cleanall:: ; $(RMF) libats_libc_stdlib.exe all:: libats_libc_string libats_libc_string: libats_libc_string.exe libats_libc_string.exe: libats_libc_string_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_libc_string_dats.c: libats_libc_string.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_string_dats.c --dynamic libats_libc_string.dats clean:: ; $(RMF) libats_libc_string_dats.o clean:: ; $(RMF) libats_libc_string_dats.c cleanall:: ; $(RMF) libats_libc_string.exe all:: libats_libc_strings libats_libc_strings: libats_libc_strings.exe libats_libc_strings.exe: libats_libc_strings_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_libc_strings_dats.c: libats_libc_strings.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_strings_dats.c --dynamic libats_libc_strings.dats clean:: ; $(RMF) libats_libc_strings_dats.o clean:: ; $(RMF) libats_libc_strings_dats.c cleanall:: ; $(RMF) libats_libc_strings.exe all:: libats_libc_time libats_libc_time: libats_libc_time.exe libats_libc_time.exe: libats_libc_time_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< libats_libc_time_dats.c: libats_libc_time.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_time_dats.c --dynamic libats_libc_time.dats clean:: ; $(RMF) libats_libc_time_dats.o clean:: ; $(RMF) libats_libc_time_dats.c cleanall:: ; $(RMF) libats_libc_time.exe all:: libats_libc_unistd libats_libc_unistd: libats_libc_unistd.exe libats_libc_unistd.exe: libats_libc_unistd_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_libc_unistd_dats.c: libats_libc_unistd.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_unistd_dats.c --dynamic libats_libc_unistd.dats clean:: ; $(RMF) libats_libc_unistd_dats.o clean:: ; $(RMF) libats_libc_unistd_dats.c cleanall:: ; $(RMF) libats_libc_unistd.exe ###### all:: libats_libc_sys_stat libats_libc_sys_stat: libats_libc_sys_stat.exe libats_libc_sys_stat.exe: libats_libc_sys_stat_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_libc_sys_stat_dats.c: libats_libc_sys_stat.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_sys_stat_dats.c --dynamic libats_libc_sys_stat.dats clean:: ; $(RMF) libats_libc_sys_stat_dats.o clean:: ; $(RMF) libats_libc_sys_stat_dats.c cleanall:: ; $(RMF) libats_libc_sys_stat.exe ###### all:: libats_libc_gdbm_gdbm libats_libc_gdbm_gdbm: libats_libc_gdbm_gdbm.exe libats_libc_gdbm_gdbm.exe: libats_libc_gdbm_gdbm_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -lgdbm libats_libc_gdbm_gdbm_dats.c: libats_libc_gdbm_gdbm.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_libc_gdbm_gdbm_dats.c --dynamic libats_libc_gdbm_gdbm.dats clean:: ; $(RMF) libats_libc_gdbm_gdbm_dats.o clean:: ; $(RMF) libats_libc_gdbm_gdbm_dats.c cleanall:: ; $(RMF) libats_libc_gdbm_gdbm.exe ###### all:: libats_ATS1_funset_listord libats_ATS1_funset_listord: libats_ATS1_funset_listord.exe libats_ATS1_funset_listord.exe: libats_ATS1_funset_listord_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ATS1_funset_listord_dats.c: libats_ATS1_funset_listord.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ATS1_funset_listord_dats.c --dynamic libats_ATS1_funset_listord.dats clean:: ; $(RMF) libats_ATS1_funset_listord_dats.o clean:: ; $(RMF) libats_ATS1_funset_listord_dats.c cleanall:: ; $(RMF) libats_ATS1_funset_listord.exe all:: libats_ATS1_funheap_braun libats_ATS1_funheap_braun: libats_ATS1_funheap_braun.exe libats_ATS1_funheap_braun.exe: libats_ATS1_funheap_braun_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ATS1_funheap_braun_dats.c: libats_ATS1_funheap_braun.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ATS1_funheap_braun_dats.c --dynamic libats_ATS1_funheap_braun.dats clean:: ; $(RMF) libats_ATS1_funheap_braun_dats.o clean:: ; $(RMF) libats_ATS1_funheap_braun_dats.c cleanall:: ; $(RMF) libats_ATS1_funheap_braun.exe all:: libats_ATS1_funheap_binomial libats_ATS1_funheap_binomial: libats_ATS1_funheap_binomial.exe libats_ATS1_funheap_binomial.exe: libats_ATS1_funheap_binomial_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ATS1_funheap_binomial_dats.c: libats_ATS1_funheap_binomial.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ATS1_funheap_binomial_dats.c --dynamic libats_ATS1_funheap_binomial.dats clean:: ; $(RMF) libats_ATS1_funheap_binomial_dats.o clean:: ; $(RMF) libats_ATS1_funheap_binomial_dats.c cleanall:: ; $(RMF) libats_ATS1_funheap_binomial.exe all:: libats_ATS1_funmset_listord libats_ATS1_funmset_listord: libats_ATS1_funmset_listord.exe libats_ATS1_funmset_listord.exe: libats_ATS1_funmset_listord_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ATS1_funmset_listord_dats.c: libats_ATS1_funmset_listord.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ATS1_funmset_listord_dats.c --dynamic libats_ATS1_funmset_listord.dats clean:: ; $(RMF) libats_ATS1_funmset_listord_dats.o clean:: ; $(RMF) libats_ATS1_funmset_listord_dats.c cleanall:: ; $(RMF) libats_ATS1_funmset_listord.exe ###### all:: libats_ATS1_linset_listord libats_ATS1_linset_listord: libats_ATS1_linset_listord.exe libats_ATS1_linset_listord.exe: libats_ATS1_linset_listord_dats.c ; $(CCOPT) -D_GNU_SOURCE -O2 -I$(PATSHOMEQ) -I$(PATSHOMEQ)/ccomp/runtime -DATS_MEMALLOC_LIBC -o $@ $< -L$(PATSLIB) -latslib libats_ATS1_linset_listord_dats.c: libats_ATS1_linset_listord.dats ; $(PATSOPT) -IATS$(PATSHOMEQ)/contrib --output libats_ATS1_linset_listord_dats.c --dynamic libats_ATS1_linset_listord.dats clean:: ; $(RMF) libats_ATS1_linset_listord_dats.o clean:: ; $(RMF) libats_ATS1_linset_listord_dats.c cleanall:: ; $(RMF) libats_ATS1_linset_listord.exe ###### clean:: ; $(RMF) *~ clean:: ; $(RMF) *_?ats.o *_?ats.c clean:: ; $(RMF) *_atxt.txt clean:: ; $(RMF) *_atxt.dats clean:: ; $(RMF) gdbmtest.gdbm clean:: ; $(RMF) Makefile.exe cleanall:: clean ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_linmap_randbst.dats0000644000175000017500000000536213431250607024716 0ustar brandonbrandon(* ** for testing [libats/linmap_randbst] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/linmap_randbst.sats" (* ****** ****** *) staload _(*anon*) = "libats/DATS/qlist.dats" staload _(*anon*) = "libats/DATS/linmap_randbst.dats" (* ****** ****** *) val ( ) = linmap_randbst_initize<> () (* ****** ****** *) val () = { // typedef key = int typedef itm = string vtypedef map = map (key, itm) // var res: itm? // var map = linmap_make_nil {key,itm} () // val ans = linmap_insert (map, 0, "a1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 1) val ans = linmap_insert (map, 1, "b1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 2) val ans = linmap_insert (map, 1, "b2", res) prval () = opt_clear (res) val () = assertloc (ans=true) // replaced // val () = assertloc (linmap_size (map) = 2) // val-~Some_vt("a1") = linmap_search_opt (map, 0) val-~Some_vt("b2") = linmap_search_opt (map, 1) // val ans = linmap_insert (map, 2, "c1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 3) // val () = assertloc (~linmap_remove (map, ~1)) // val-~Some_vt("a1") = linmap_takeout_opt (map, 0) val () = assertloc (linmap_size (map) = 2) val-~Some_vt("b2") = linmap_takeout_opt (map, 1) val () = assertloc (linmap_size (map) = 1) val-~Some_vt("c1") = linmap_takeout_opt (map, 2) val () = assertloc (linmap_size (map) = 0) // val () = linmap_free (map) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef key = int typedef itm = string vtypedef map = map (key, itm) // var map = linmap_make_nil {key,itm} () // val-~None_vt() = linmap_insert_opt (map, 0, "?") val-~Some_vt("?") = linmap_insert_opt (map, 0, "0") val-~None_vt() = linmap_insert_opt (map, 1, "1") val-~None_vt() = linmap_insert_opt (map, 2, "2") val-~None_vt() = linmap_insert_opt (map, 3, "3") val-~None_vt() = linmap_insert_opt (map, 4, "4") // val () = assertloc (linmap_size (map) = 5) // val () = list_vt_free (linmap_listize1 (map)) // val () = fprintln! (stdout_ref, "map = ", map) // val-~Some_vt("0") = linmap_takeout_opt (map, 0) val-~Some_vt("1") = linmap_takeout_opt (map, 1) val-~Some_vt("2") = linmap_takeout_opt (map, 2) val-~Some_vt("3") = linmap_takeout_opt (map, 3) val-~Some_vt("4") = linmap_takeout_opt (map, 4) // val () = assertloc (linmap_size (map) = 0) // val () = linmap_free (map) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_linmap_randbst.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_stream.dats0000644000175000017500000000204313431250607023367 0ustar brandonbrandon(* ** for testing [prelude/stream] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) fun from ( n: int ) : stream (int) = let // implement stream_vt_tabulate$fopr (i) = n+i // in stream_vt2t(stream_vt_tabulate ((*void*))) end // end of [from] (* ****** ****** *) val () = { // val ns = from (0) val nns = stream_map_fun (ns, lam x => x * x) // val () = assertloc (stream_nth_exn (nns, 100) = 10000) // val nns2 = stream_map2_fun (ns, ns, lam (x1, x2) => x1 * x2) // val () = assertloc (stream_nth_exn (nns2, 100) = 10000) // } (* end of [val] *) (* ****** ****** *) val () = { // val ns1 = from (1) val ns2 = from (2) val nns = stream_map2_fun (ns1, ns2, lam (x1, x2) => x1 * x2) // val () = fprint_stream (stdout_ref, nns, 10) val ((*void*)) = fprintln! (stdout_ref) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_stream.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_funmap_rbtree.dats0000644000175000017500000000516613431250607024554 0ustar brandonbrandon(* ** for testing [libats/funmap_rbtree] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2015 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/funmap_rbtree.sats" (* ****** ****** *) staload _(*anon*) = "libats/DATS/qlist.dats" staload _(*anon*) = "libats/DATS/funmap_rbtree.dats" (* ****** ****** *) val () = { // typedef key = int typedef itm = string typedef map = map (key, itm) // var res: itm? // var map = funmap_make_nil {key,itm} () // val ans = funmap_insert (map, 0, "a1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (funmap_size (map) = 1) // val ans = funmap_insert (map, 1, "b1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (funmap_size (map) = 2) // val ans = funmap_insert (map, 1, "b2", res) prval () = opt_clear (res) val () = assertloc (ans=true) // replaced val () = assertloc (funmap_size (map) = 2) // val-~Some_vt("a1") = funmap_search_opt (map, 0) val-~Some_vt("b2") = funmap_search_opt (map, 1) // val ans = funmap_insert (map, 2, "c1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (funmap_size (map) = 3) // val () = assertloc (~funmap_remove (map, ~1)) // val-~Some_vt("a1") = funmap_takeout_opt (map, 0) val () = assertloc (funmap_size (map) = 2) val-~Some_vt("b2") = funmap_takeout_opt (map, 1) val () = assertloc (funmap_size (map) = 1) val-~Some_vt("c1") = funmap_takeout_opt (map, 2) val () = assertloc (funmap_size (map) = 0) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef key = int typedef itm = string typedef map = map (key, itm) // var map = funmap_make_nil {key,itm} () // val-~None_vt() = funmap_insert_opt (map, 0, "?") val-~Some_vt("?") = funmap_insert_opt (map, 0, "0") val-~None_vt() = funmap_insert_opt (map, 1, "1") val-~None_vt() = funmap_insert_opt (map, 2, "2") val-~None_vt() = funmap_insert_opt (map, 3, "3") val-~None_vt() = funmap_insert_opt (map, 4, "4") // val () = assertloc (funmap_size (map) = 5) // val () = list_vt_free (funmap_listize (map)) // val () = fprintln! (stdout_ref, "map = ", map) // val-~Some_vt("0") = funmap_takeout_opt (map, 0) val-~Some_vt("1") = funmap_takeout_opt (map, 1) val-~Some_vt("2") = funmap_takeout_opt (map, 2) val-~Some_vt("3") = funmap_takeout_opt (map, 3) val-~Some_vt("4") = funmap_takeout_opt (map, 4) // val () = assertloc (funmap_size (map) = 0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_funmap_rbtree.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_stdlib.dats0000644000175000017500000000427013431250607024170 0ustar brandonbrandon(* ** for testing ** [libats/libc/stdlib] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // staload UN = $UNSAFE // aliasing // (* ****** ****** *) // staload UNI = "libats/libc/SATS/unistd.sats" // (* ****** ****** *) staload "libats/libc/SATS/stdlib.sats" staload _ = "libats/libc/DATS/stdlib.dats" (* ****** ****** *) val () = { val u = getenv_gc ("USER") val () = println! ("$USER = ", u) val () = strptr_free (u) } // end of [val] (* ****** ****** *) val () = { val seed = 31415926U val () = srand (seed) val r1 = rand () val r2 = rand () val () = srand (seed) val () = assertloc (r1 = rand ()) val () = assertloc (r2 = rand ()) var seed_r: uint = seed val r1 = rand_r (seed_r) val r2 = rand_r (seed_r) var seed_r: uint = seed val () = assertloc (r1 = rand_r (seed_r)) val () = assertloc (r2 = rand_r (seed_r)) } // end of [val] (* ****** ****** *) val () = { val seed = 31415926U val () = srandom (seed) val l1 = random () val l2 = random () val () = srandom (seed) val () = assertloc (l1 = random ()) val () = assertloc (l2 = random ()) } // end of [val] (* ****** ****** *) val () = { // val () = srand48 (27182828L) val d1 = drand48 () val d2 = drand48 () val () = srand48 (27182828L) val () = assertloc (d1 = drand48 ()) val () = assertloc (d2 = drand48 ()) // val () = srand48 (27182828L) val l1 = lrand48 () val l2 = lrand48 () val () = srand48 (27182828L) val () = assertloc (l1 = lrand48 ()) val () = assertloc (l2 = lrand48 ()) // val () = srand48 (27182828L) val m1 = mrand48 () val m2 = mrand48 () val () = srand48 (27182828L) val () = assertloc (m1 = mrand48 ()) val () = assertloc (m2 = mrand48 ()) // } // end of [val] (* ****** ****** *) val () = { // val str = "scratch-XXXXXX" val str2 = string1_copy (str) val fdes = mkstemp (str2) val () = assertloc (fdes >= 0) val () = assertloc ($UNI.close (fdes) = 0) val () = assertloc ($UNI.unlink ($UN.strnptr2string(str2)) = 0) val () = strnptr_free (str2) // } // end of [val] (* ****** ****** *) val () = { val () = assertloc (system ("ls -l > /dev/null") = 0) } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_stdlib.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_signal.dats0000644000175000017500000000241113431250607024157 0ustar brandonbrandon(* ** for testing ** [libats/libc/signal] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // staload UN = $UNSAFE // aliasing // (* ****** ****** *) staload "libats/libc/SATS/signal.sats" staload "libats/libc/SATS/unistd.sats" (* ****** ****** *) implement main0 () = () where { // (* // // HX-2014-04-07: this one does not work: // val err = signal ( SIGALRM , sighandler(lam (sgn) => println! ("SIGALRM: sgn = ", $UN.cast2int(sgn))) ) (* end of [val] *) *) // var sigact: sigaction val () = ptr_nullize (__assert () | sigact) where { extern prfun __assert (): is_nullable (sigaction) } (* end of [val] *) val ( ) = sigact.sa_handler := sighandler(lam (sgn) => println! ("SIGALRM: sgn = ", $UN.cast2int(sgn))) // val () = assertloc (sigaction_null (SIGALRM, sigact) = 0) // val (pf | _) = alarm_set (2u) // #define BUFSZ 128 var nerr: int = 0 var buf = @[byte][BUFSZ]() val inp = $UN.castvwtp0{fildes(0)}(STDIN_FILENO) val nread = read_err (inp, buf, i2sz(BUFSZ)) prval () = $UN.cast2void (inp) // val leftover = alarm_cancel (pf | (*void*)) // (* val () = println! ("nread = ", nread) *) // val () = if (nread < 0) then println! ("There is NO input available!") // } (* end of [main0] *) (* ****** ****** *) (* end of [libats_libc_signal.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_time.dats0000644000175000017500000000762113431250607023650 0ustar brandonbrandon(* ** for testing ** [libats/libc/time] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/libc/SATS/sys/types.sats" // (* ****** ****** *) staload "libats/libc/SATS/time.sats" staload _ = "libats/libc/DATS/time.dats" (* ****** ****** *) val () = { // val out = stdout_ref // var tval = time_get () val fpfstr = ctime (tval) val () = fprint_strptr (out, fpfstr.1) prval () = fpfstr.0 (fpfstr.1) // } // end of [val] (* ****** ****** *) val () = { // val out = stdout_ref // var tval: time_t val opt = time_getset (tval) val () = assertloc (opt) prval () = opt_unsome (tval) val fpfstr = ctime (tval) val () = fprint_strptr (out, fpfstr.1) prval () = fpfstr.0 (fpfstr.1) // val tstr = ctime_r_gc (tval) val () = fprint_strptr (out, tstr) val () = strptr_free (tstr) // } // end of [val] (* ****** ****** *) val () = { // val out = stdout_ref // var tval = time_get () // val (pfopt | p) = gmtime (tval) val () = assertloc (p > 0) prval Some_v @(pfat, fpf) = pfopt // val () = println! ("p->tm_sec = ", p->tm_sec) val () = println! ("p->tm_min = ", p->tm_min) val () = println! ("p->tm_hour = ", p->tm_hour) val () = println! ("p->tm_mon = ", p->tm_mon) val () = println! ("p->tm_year = ", p->tm_year) val () = println! ("p->tm_wday = ", p->tm_wday) val () = println! ("p->tm_mday = ", p->tm_mday) val () = println! ("p->tm_yday = ", p->tm_yday) val () = println! ("p->tm_isdst = ", p->tm_isdst) // prval () = fpf (pfat) // var tm_struct: tm_struct val p = gmtime_r (tval, tm_struct) val () = assertloc (p > 0) prval () = opt_unsome (tm_struct) // val () = println! ("tm_struct.sec = ", tm_struct.tm_sec) val () = println! ("tm_struct.min = ", tm_struct.tm_min) val () = println! ("tm_struct.hour = ", tm_struct.tm_hour) val () = println! ("tm_struct.mon = ", tm_struct.tm_mon) val () = println! ("tm_struct.year = ", tm_struct.tm_year) val () = println! ("tm_struct.wday = ", tm_struct.tm_wday) val () = println! ("tm_struct.mday = ", tm_struct.tm_mday) val () = println! ("tm_struct.yday = ", tm_struct.tm_yday) val () = println! ("tm_struct.isdst = ", tm_struct.tm_isdst) // } // end of [val] (* ****** ****** *) val () = { // val out = stdout_ref // var tval = time_get () // val (pfopt | p) = localtime (tval) val () = assertloc (p > 0) prval Some_v @(pfat, fpf) = pfopt // val () = println! ("p->tm_sec = ", p->tm_sec) val () = println! ("p->tm_min = ", p->tm_min) val () = println! ("p->tm_hour = ", p->tm_hour) val () = println! ("p->tm_mon = ", p->tm_mon) val () = println! ("p->tm_year = ", p->tm_year) val () = println! ("p->tm_wday = ", p->tm_wday) val () = println! ("p->tm_mday = ", p->tm_mday) val () = println! ("p->tm_yday = ", p->tm_yday) val () = println! ("p->tm_isdst = ", p->tm_isdst) // prval () = fpf (pfat) // var tm_struct: tm_struct val p = localtime_r (tval, tm_struct) val () = assertloc (p > 0) prval () = opt_unsome (tm_struct) // val () = println! ("tm_struct.sec = ", tm_struct.tm_sec) val () = println! ("tm_struct.min = ", tm_struct.tm_min) val () = println! ("tm_struct.hour = ", tm_struct.tm_hour) val () = println! ("tm_struct.mon = ", tm_struct.tm_mon) val () = println! ("tm_struct.year = ", tm_struct.tm_year) val () = println! ("tm_struct.wday = ", tm_struct.tm_wday) val () = println! ("tm_struct.mday = ", tm_struct.tm_mday) val () = println! ("tm_struct.yday = ", tm_struct.tm_yday) val () = println! ("tm_struct.isdst = ", tm_struct.tm_isdst) // } // end of [val] (* ****** ****** *) val () = { // var tval = time_get () // val (pfopt | p) = localtime (tval) val () = assertloc (p > 0) prval Some_v @(pfat, fpf) = pfopt // val tval2 = mktime (!p) // prval () = fpf (pfat) // val () = assertloc (tval = tval2) // } // end of [val] (* ****** ****** *) val () = { // val ntick = clock () // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_time.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_intrange.dats0000644000175000017500000000307013431250607024112 0ustar brandonbrandon(* ** for testing [libats/ML/filebas] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" // staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/array0.sats" staload "libats/ML/SATS/intrange.sats" // staload _ = "libats/ML/DATS/list0.dats" staload _ = "libats/ML/DATS/array0.dats" staload _ = "libats/ML/DATS/intrange.dats" // (* ****** ****** *) // val ((*void*)) = repeat(5, $delay(print"Hello!\n")) // val ((*void*)) = (5).repeat()(lam() = print"Hello!\n") // val ((*void*)) = (5).foreach()(lam(i) => print!(i, ": Hello!\n")) val ((*void*)) = (5,10).foreach()(lam(i) => print!(i, ": Hello!\n")) // (* ****** ****** *) // val ((*void*)) = println! ((10).list0_map(TYPE{int})(lam(i) => i*i)) val ((*void*)) = println! ((10).array0_map(TYPE{int})(lam(i) => i*i)) // (* ****** ****** *) val () = { // val N = 9 // val () = int2_foreach_cloref ( N, N, lam (i, j) => ( if j > 0 then print ' '; $extfcall(void, "printf", "%dx%d=%02d", i+1, j+1, (i+1)*(j+1)); if (j+1=N) then println! (); ) (* end of [lam] *) ) (* end of [int2_foreach_cloref] *) // } (* end of [val] *) (* ****** ****** *) val () = { // val N = 10 // val sum1 = ( N ).foldleft(TYPE{int})(0, lam(res, i) => res + i) // val sum2 = ( N ).foldright(TYPE{int})(lam(res, i) => res + i, 0) // val ((*void*)) = assertloc(sum1 = sum2) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_malloc.dats0000644000175000017500000000150013431250607024147 0ustar brandonbrandon(* ** for testing ** [libats/libc/malloc] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/libc/SATS/malloc.sats" staload "libats/libc/SATS/stdlib.sats" (* ****** ****** *) val () = { // val N = g1i2u (1024) val (pfopt | p) = malloc_libc (N) val ((*void*)) = assertloc (p > 0) prval malloc_libc_v_succ (pfat, pfgc) = pfopt val () = malloc_stats () // val nuse = malloc_usable_size (pfgc | p) val () = println! ("malloc_usable_size (", p ,") = ", nuse) // val () = mfree_libc (pfat, pfgc | p) // val () = println! ("malloc_trim() = ", malloc_trim ((i2sz)0)) val () = println! ("malloc_trim() = ", malloc_trim ((i2sz)0)) // val () = malloc_stats () // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_malloc.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_hashtbl_chain.dats0000644000175000017500000000352013431250607024502 0ustar brandonbrandon(* ** for testing ** [libats/hashtbl_chain] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: August, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/SATS/hashtbl_chain.sats" // staload _(*anon*) = "libats/DATS/hashfun.dats" staload _(*anon*) = "libats/DATS/linmap_list.dats" staload _(*anon*) = "libats/DATS/hashtbl_chain.dats" // (* ****** ****** *) val () = { val tbl = hashtbl_make_nil(i2sz(1024)) val-~list_vt_nil () = hashtbl_listize (tbl) } // end of [val] (* ****** ****** *) val () = { // val out = stdout_ref // typedef key = string and itm = int // val tbl = hashtbl_make_nil(i2sz(1)) // val () = hashtbl_insert_any (tbl, "a", 0) val-~Some_vt(0) = hashtbl_insert_opt (tbl, "a", 1) // val () = hashtbl_insert_any (tbl, "b", 2) val () = hashtbl_insert_any (tbl, "c", 3) val () = hashtbl_insert_any (tbl, "d", 4) val () = hashtbl_insert_any (tbl, "e", 5) val () = hashtbl_insert_any (tbl, "f", 6) // val () = hashtbl_insert_any (tbl, "g", 7) val-~Some_vt(7) = hashtbl_takeout_opt (tbl, "g") // val () = fprintln! (out, "tbl = ", tbl) val () = fprintln! (out, "size(tbl) = ", hashtbl_get_size (tbl)) val () = fprintln! (out, "capacity(tbl) = ", hashtbl_get_capacity (tbl)) // val-~None_vt() = hashtbl_search_opt (tbl, "?") val-~Some_vt(1) = hashtbl_search_opt (tbl, "a") val-~Some_vt(2) = hashtbl_search_opt (tbl, "b") val-~Some_vt(3) = hashtbl_search_opt (tbl, "c") // val-true = hashtbl_reset_capacity (tbl, i2sz(10)) val () = fprintln! (out, "tbl = ", tbl) val () = fprintln! (out, "size(tbl) = ", hashtbl_get_size (tbl)) // val () = list_vt_free<(key,itm)> (hashtbl_listize (tbl)) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_hashtbl_chain.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_linheap_binomial.dats0000644000175000017500000000370413431250607025211 0ustar brandonbrandon(* ** for testing [libats/linheap_binomial] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: July, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/SATS/linheap_binomial.sats" // staload _(*anon*) = "libats/DATS/gnode.dats" staload _(*anon*) = "libats/DATS/linheap_binomial2.dats" // (* ****** ****** *) val () = { // typedef elt = int vtypedef heap = heap (elt) // var hp : heap = linheap_nil{elt}() val () = linheap_insert (hp, 0) val () = linheap_insert (hp, 2) val () = linheap_insert (hp, 4) val hp1 = hp val () = assertloc (linheap_size(hp1) = 3) // var hp : heap = linheap_nil{elt}() val () = linheap_insert (hp, 1) val () = linheap_insert (hp, 3) val () = linheap_insert (hp, 5) val hp2 = hp val () = assertloc (linheap_size(hp2) = 3) // var hp : heap = linheap_merge (hp1, hp2) // val-~Some_vt(0) = linheap_getmin_opt (hp) val-~Some_vt(0) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 5) val-~Some_vt(1) = linheap_getmin_opt (hp) val-~Some_vt(1) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 4) val-~Some_vt(2) = linheap_getmin_opt (hp) val-~Some_vt(2) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 3) val-~Some_vt(3) = linheap_getmin_opt (hp) val-~Some_vt(3) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 2) val-~Some_vt(4) = linheap_getmin_opt (hp) val-~Some_vt(4) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 1) val-~Some_vt(5) = linheap_getmin_opt (hp) val-~Some_vt(5) = linheap_delmin_opt (hp) val ((*void*)) = assertloc (linheap_size(hp) = 0) // val-~None_vt ((*void*)) = linheap_getmin_opt (hp) val-~None_vt ((*void*)) = linheap_delmin_opt (hp) // val () = linheap_free (hp) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_linheap_binomial.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_dynarray.dats0000644000175000017500000000445513431250607023554 0ustar brandonbrandon(* ** for testing [libats/dynarray] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: May, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/dynarray.sats" staload _(*anon*) = "libats/DATS/dynarray.dats" (* ****** ****** *) postfix sz; macdef sz(x) = g1int2uint_int_size (,(x)) (* ****** ****** *) val () = { // typedef T = int // (* implement dynarray$recapacitize<> () = 0 *) // val DA = dynarray_make_nil (g1i2u(1)) // val ans0 = dynarray_insert_at_opt (DA, 0sz, 0) val-~None_vt () = ans0 val () = println! ("DA[0] = ", DA[0sz]) val () = println! ("DA->sz = ", dynarray_get_size (DA)) val () = println! ("DA->cap = ", dynarray_get_capacity (DA)) // val ans1 = dynarray_insert_at_opt (DA, 1sz, 1) val-~None_vt () = ans1 val () = println! ("DA[1] = ", DA[1sz]) val () = println! ("DA->sz = ", dynarray_get_size (DA)) val () = println! ("DA->cap = ", dynarray_get_capacity (DA)) // val ans2 = dynarray_insert_at_opt (DA, 2sz, 2) val-~None_vt () = ans2 val () = println! ("DA[2] = ", DA[2sz]) val () = println! ("DA->sz = ", dynarray_get_size (DA)) val () = println! ("DA->cap = ", dynarray_get_capacity (DA)) // val ans3 = dynarray_insert_at_opt (DA, 3sz, 3) val-~None_vt () = ans3 val () = println! ("DA[3] = ", DA[3sz]) val () = println! ("DA->sz = ", dynarray_get_size (DA)) val () = println! ("DA->cap = ", dynarray_get_capacity (DA)) // val () = dynarray_insert_at_exn (DA, 4sz, 4) val () = println! ("DA[4] = ", DA[4sz]) val () = println! ("DA->sz = ", dynarray_get_size (DA)) val () = println! ("DA->cap = ", dynarray_get_capacity (DA)) // val out = stdout_ref val () = fprint_dynarray (out, DA) val () = fprint_newline (out) // val x = dynarray_takeout_at_exn (DA, 0sz) val () = println! ("takeout(0) = ", x) val x = dynarray_takeout_atbeg_exn (DA) val () = println! ("takeout(beg) = ", x) val-~Some_vt(x) = dynarray_takeout_atend_opt (DA) val () = println! ("takeout(end) = ", x) // val _ = dynarray_removeseq_at (DA, 0sz, 2sz) val () = println! ("DA->sz = ", dynarray_get_size (DA)) // val ((*freed*)) = dynarray_free (DA) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_dynarray.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_basics.dats0000644000175000017500000000106213431250607023340 0ustar brandonbrandon(* ** for testing [prelude/float] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = { val out = stdout_ref // val () = println! 0 1 2 3 4 5 6 7 8 9 val () = println! (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) // val () = prerrln! 0 1 2 3 4 5 6 7 8 9 val () = prerrln! (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) // val () = fprintln! out 0 1 2 3 4 5 6 7 8 9 val () = fprintln! (out, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_basics.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_qlist.dats0000644000175000017500000000230213431250607023044 0ustar brandonbrandon(* ** for testing [libats/qlist] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: March, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/qlist.sats" staload _(*anon*) = "libats/DATS/qlist.dats" (* ****** ****** *) val ( ) = { // typedef T = int // val out = stdout_ref // val xs = qlist_make_nil {T} () // val x1 = 1 val () = qlist_insert (xs, x1) val x2 = 2 val () = qlist_insert (xs, x2) val x3 = 3 val () = qlist_insert (xs, x3) // val () = fprint (out, "xs = ") val () = fprint_qlist_sep (out, xs, ", ") val () = fprint_newline (out) // val () = assertloc (qlist_length (xs) = 3) // val y1 = qlist_takeout (xs) val () = assertloc (x1 = y1) val y2 = qlist_takeout (xs) val () = assertloc (x2 = y2) val y3 = qlist_takeout (xs) val () = assertloc (x3 = y3) // val () = qlist_insert (xs, x1) val () = qlist_insert (xs, x2) val y1 = qlist_takeout (xs) val () = assertloc (x1 = y1) val y2 = qlist_takeout (xs) val () = assertloc (x2 = y2) // val () = qlist_free_nil (xs) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_qlist.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_array0.dats0000644000175000017500000000535613431250607023512 0ustar brandonbrandon(* ** for testing [libats/ML/array0] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/array0.sats" (* ****** ****** *) // staload _(*anon*) = "libats/ML/DATS/array0.dats" // (* ****** ****** *) val () = { // val asz = i2sz(3) val A_elt = array0_make_elt (asz, 0) val ((*void*)) = println! ("A_elt = ", A_elt) // } (* end of [val] *) (* ****** ****** *) val () = { // val asz = (i2sz)10 // val A = array0_tabulate (asz, lam i => $UN.cast{int}(i)) // val out = stdout_ref // val () = fprintln! (out, "A = ", A) // val A2 = array0_map (A, lam (x) => 2 * x) // local implement fprint_array$sep<> (out) = fprint (out, "| ") in val () = fprintln! (out, "A2 = ", A2) end // end of [local] // val sum = array0_foldleft (A, 0, lam (res, x) => res + x) val () = fprintln! (out, "sum(45) = ", sum) // val isum = array0_ifoldleft (A, 0, lam (res, i, x) => res + $UN.cast2int(i) * x) val () = fprintln! (out, "isum(285) = ", isum) // val rsum = array0_foldright (A, lam (x, res) => x + res, 0) val () = fprintln! (out, "rsum(45) = ", rsum) // } (* end of [val] *) (* ****** ****** *) val () = { // val xs = $list{int}(3, 9, 7, 8, 6, 0, 4, 2, 1, 5) // val A0 = array0_make_list0(g0ofg1_list(xs)) // val () = println! ("A0(bef) = ", A0) // val () = array0_quicksort (A0, lam(x, y) => compare(x, y)) // val () = println! ("A0(aft) = ", A0) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val asz = (i2sz)10 // val A0 = array0_tabulate (asz, lam(i) => $UN.cast{int}(i)) // array0_tabulate // val A2 = array0_make_subarray (A0, i2sz(3), i2sz(5)) val ((*void*)) = fprintln!(out, "A2(A[3,5]) = ", A2) // val () = assertloc ( 0+1+2+3+4+5+6+7+8+9 = A0.foldleft(TYPE{int})(0, lam(res, x) => res + x)) // val () = assertloc ( 0+1+2+3+4+5+6+7+8+9 = A0.foldright(TYPE{int})(lam(x, res) => x + res, 0)) // } (* end of [val] *) (* ****** ****** *) fun array0_make_fileref ( inp: FILEref ) : array0 (char) = A0 where { val cs = fileref_get_file_charlst(inp) val A0 = array0_make_list0($UN.castvwtp1{list0(char)}(cs)) val ((*freed*)) = list_vt_free(cs) } (* end of [array0_make_fileref] *) (* ****** ****** *) val () = { val opt = fileref_open_opt ( "./libats_ML_array0.dats", file_mode_r ) val-~Some_vt(inp) = opt val A0 = array0_make_fileref(inp) val ((*closed*)) = fileref_close(inp) implement fprint_array$sep<> (out) = () val () = fprintln! (stdout_ref, "A0 =\n", A0) } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_array0.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_myhashtblref.dats0000644000175000017500000000364013431250607024776 0ustar brandonbrandon(* ** for testing ** [libats/ML/myhashtblref] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) local // typedef key = string and itm = int // in (* in-of-local *) // #include "libats/ML/HATS/myhashtblref.hats" // end // end of [local] (* ****** ****** *) #define N 1 (* ****** ****** *) // val out = stdout_ref // val mytbl = myhashtbl_make_nil(N) // (* ****** ****** *) // val ((*void*)) = fprintln! (out, "size = ", mytbl.size()) val ((*void*)) = fprintln! (out, "capacity = ", mytbl.capacity()) // (* ****** ****** *) // val-~None_vt() = mytbl.insert("a", 0) val-~Some_vt(0) = mytbl.insert("a", 0) // val-~None_vt() = mytbl.insert("b", 1) val-~Some_vt(1) = mytbl.insert("b", 1) // val-~None_vt() = mytbl.insert("c", 2) val-~Some_vt(2) = mytbl.insert("c", 2) // val-~None_vt() = mytbl.insert("d", 3) val-~Some_vt(3) = mytbl.insert("d", 3) // val-~None_vt() = mytbl.insert("e", 4) val-~Some_vt(4) = mytbl.insert("e", 4) // (* ****** ****** *) // val ((*void*)) = fprintln! (out, "size = ", mytbl.size()) val ((*void*)) = fprintln! (out, "capacity = ", mytbl.capacity()) // (* ****** ****** *) val kxs = mytbl.listize1() val ((*void*)) = fprintln! (out, "kxs = ", kxs) (* ****** ****** *) // val ((*void*)) = fprintln! (out, "mytbl = ", mytbl) // (* ****** ****** *) val-~None_vt() = mytbl.search("") val-~Some_vt(0) = mytbl.search("a") val-~Some_vt(1) = mytbl.search("b") val-~Some_vt(2) = mytbl.search("c") (* ****** ****** *) val-true = mytbl.remove("a") val-false = mytbl.remove("a") val-~Some_vt(1) = mytbl.takeout("b") val-~Some_vt(2) = mytbl.takeout("c") (* ****** ****** *) // val ((*void*)) = fprintln! (out, "mytbl = ", mytbl) // val ((*void*)) = myhashtbl_foreach_cloref(mytbl, lam (k, x) => x:=x+x) // val ((*void*)) = fprintln! (out, "mytbl = ", mytbl) // (* ****** ****** *) implement main0((*void*)) = ((*void*)) (* ****** ****** *) (* end of [libats_ML_myhashtblref.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_pointer.dats0000644000175000017500000000122713431250607023557 0ustar brandonbrandon(* ** for testing [prelude/pointer] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #define nullp the_null_ptr (* ****** ****** *) val () = { // val ( ) = assertloc (nullp = $UNSAFE.cast{ptr}(0)) val ( ) = assertloc ( ptr_add (nullp, 1) = add_ptr_bsz (nullp, sizeof) ) // end of [val] // } (* end of [val] *) (* ****** ****** *) val () = { // val ap = aptr_make_elt (10) // val-10 = aptr_get_elt(ap) val () = aptr_set_elt(ap, 2 * 10) val-20 = aptr_getfree_elt(ap) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_pointer.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_funralist_nested.dats0000644000175000017500000000153013431250607025263 0ustar brandonbrandon(* ** for testing [libats/funralist_nested] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/funralist_nested.sats" staload _(*anon*) = "libats/DATS/funralist_nested.dats" (* ****** ****** *) val () = { // typedef T = int // typedef T = int // val out = stdout_ref // val xs = $list{int}(0, 1, 2, 3, 4) val RL = funralist_make_list (xs) val () = assertloc (funralist_length (RL) = length (xs)) val () = fprintln! (out, "RL = ", RL) // val () = assertloc (2 = RL[2]) // val RL = funralist_set_at (RL, 2, ~2) val () = assertloc (2 = ~RL[2]) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_funralist_nested.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_fnmatch.dats0000644000175000017500000000076413431250607024333 0ustar brandonbrandon(* ** for testing ** [libats/libc/fnmatch] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/libc/SATS/fnmatch.sats" (* ****** ****** *) val () = { // val () = assertloc (fnmatch ("libc_*.?ats", "libc_fnmatch.dats", 0) = FNM_MATCH) val () = assertloc (fnmatch ("libc_*.sats", "libc_fnmatch.dats", 0) = FNM_NOMATCH) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_fnmatch.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/.keeper0000644000175000017500000000000013431250607020742 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_unistd.dats0000644000175000017500000000442113431250607024213 0ustar brandonbrandon(* ** for testing ** [libats/libc/unistd] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload FCNTL = "libats/libc/SATS/fcntl.sats" staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) staload "libats/libc/SATS/unistd.sats" (* ****** ****** *) val () = { val STDIN2 = dup (STDIN_FILENO) val () = println! ("STDIN2 = ", STDIN2) val () = close0_exn (STDIN2) val STDOUT2 = dup (STDOUT_FILENO) val STDERR2 = dup (STDERR_FILENO) val () = println! ("STDOUT2 = ", STDOUT2) val () = println! ("STDERR2 = ", STDERR2) // val (fpf | fildes) = $FCNTL.fildes_iget_int (STDOUT2) val fd = $FCNTL.fildes_get_int (fildes) prval () = fpf (fildes) val () = println! ("fd = ", fd) // val () = close0_exn (STDOUT2) // val (fpf | fildes) = $FCNTL.fildes_iget_int (STDOUT2) val fd = $FCNTL.fildes_get_int (fildes) prval () = fpf (fildes) val () = println! ("fd(-1) = ", fd) } (* end of [libc_unistd] *) (* ****** ****** *) val () = { // val out = stdout_ref val cwd = getcwd_gc () val () = fprint_strptr (out, cwd) val () = fprint_newline (out) val () = strptr_free (cwd) // } // end of [val] (* ****** ****** *) val () = { // val out = stdout_ref val uid = getlogin_r_gc () val () = fprintln! (out, "userid = ", uid) val () = strptr_free (uid) // } // end of [val] (* ****** ****** *) val () = { // val left = sleep (1) val () = println! ("left = ", left) val left = sleep (1U) val () = println! ("left = ", left) val err = usleep (1000000) // val () = assertloc (usleep (500000) = 0) val () = println! ("one-half second passed.") val () = assertloc (usleep (500000U) = 0) val () = println! ("one-half second passed.") // } // end of [val] (* ****** ****** *) val () = { // val err = $STDLIB.system ("touch /tmp/deadbeef") val ( ) = assertloc (err = 0) val ( ) = unlink_exn ("/tmp/deadbeef") val ( ) = symlink_exn ("Hello, world!", "/tmp/deadbeef2") val str = readlink_gc ("/tmp/deadbeef2") val ( ) = unlink_exn ("/tmp/deadbeef2") val ( ) = println! ("readlink(/tmp/deadbeef2) = ", str) val ( ) = strptr_free (str) val str = readlink_gc ("/tmp/deadbeef3") val ( ) = println! ("readlink(/tmp/deadbeef3) = ", str) val ( ) = strptr_free (str) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_unistd.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_funset_listord.dats0000644000175000017500000000243713431250607024765 0ustar brandonbrandon(* ** for testing [libats/funset_listord] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: July, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/SATS/funset_listord.sats" staload _(*anon*) = "libats/DATS/funset_listord.dats" (* ****** ****** *) val () = { // typedef T = int val out = stdout_ref // val xs = $lst_vt{T}(0, 1, 2, 3, 4, 1, 2) val set = funset_make_list ($UN.list_vt2t(xs)) val () = list_vt_free (xs) // val () = assertloc (funset_size (set) = 5) // val () = assertloc (funset_is_member (set, 2)) val () = assertloc (funset_is_member (set, 3)) val () = assertloc (funset_is_member (set, 4)) val () = assertloc (funset_isnot_member (set, 5)) // val () = fprintln! (out, "set = ", set) // var set = set val-true = funset_remove (set, 1) val-true = funset_remove (set, 3) val-false = funset_remove (set, 5) val-~Some_vt(4) = funset_takeoutmax_opt (set) val-~Some_vt(2) = funset_takeoutmax_opt (set) val-~Some_vt(0) = funset_takeoutmin_opt (set) // val () = assertloc (funset_is_nil (set)) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_funset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_string.dats0000644000175000017500000001330213431250607023402 0ustar brandonbrandon(* ** for testing [prelude/string] *) (* ****** ****** *) // #include "share/atspre_staload.hats" #staload "libats/ML/SATS/atspre.sats" #staload _ = "libats/ML/DATS/atspre.dats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) val alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (* ****** ****** *) val () = { // val () = assertloc ($UN.string_get_at(alphabet, 0) = 'A') // val () = assertloc ($UN.string_get_at(alphabet, 1) = 'B') // val () = assertloc ($UN.string_get_at(alphabet, 23) = 'X') val () = assertloc ($UN.string_get_at(alphabet, 24) = 'Y') val () = assertloc ($UN.string_get_at(alphabet, 25) = 'Z') // } (* end of [val] *) (* ****** ****** *) val () = { // val () = assertloc ("AB" < "ABC") val () = assertloc ("BC" > "ABC") val () = assertloc ("XYZ" > "XY") val () = assertloc ("XYZ" < "YZ") // } // end of [val] (* ****** ****** *) val () = { // val ab = alphabet val () = assertloc (ab[0] = 'A') val () = assertloc (ab[1] = 'B') val () = assertloc (ab[2] = 'C') val () = assertloc (ab[23] = 'X') val () = assertloc (ab[24] = 'Y') val () = assertloc (ab[25] = 'Z') val () = assertloc (compare (ab, ab) = 0) val () = assertloc (strlen (ab) = 26) val () = assertloc (string_length (ab) = 26) // } // end of [val] (* ****** ****** *) val () = { // val ab = alphabet // val () = assertloc (strchr (ab, 'a') < 0) val () = assertloc (strrchr (ab, 'a') < 0) val () = assertloc (strchr (ab, 'A') = 0) val () = assertloc (strrchr (ab, 'A') = 0) val () = assertloc (strchr (ab, 'Z') = 25) val () = assertloc (strrchr (ab, 'Z') = 25) val () = assertloc (strchr (ab, '\0') = 26) val () = assertloc (strrchr (ab, '\0') = 26) // val () = assertloc (strstr (ab, "PQR") = strchr (ab, 'P')) val () = assertloc (strspn (ab, "ABC") = 3) val () = assertloc (strcspn (ab, "XYZ") = 23) // val () = assertloc (string_index (ab, 'P') = 15) val () = assertloc (string_rindex (ab, 'P') = 15) // } // end of [val] (* ****** ****** *) val () = { // val ab = alphabet val ab2 = string0_copy (ab) val () = assertloc (ab = $UN.strptr2string (ab2)) val () = strptr_free (ab2) val abab = string0_append (ab, ab) val () = assertloc (strstr ($UN.strptr2string (abab), ab) = 0) val () = assertloc (strrchr ($UN.strptr2string (abab), 'A') = 26) val () = assertloc (strrchr ($UN.strptr2string (abab), 'B') = 27) val () = assertloc (strrchr ($UN.strptr2string (abab), 'C') = 28) val () = strptr_free (abab) // } // end of [val] (* ****** ****** *) val () = { // val ab = alphabet // implement{} string_tabulate$fopr(i) = let val c = int2char0 (char2int0('A') + g0u2i(i)) in $UN.cast{charNZ}(c) // HX: [c] cannot be NUL end // end of [string_tabulate$fwork] // val ab2 = string_tabulate(i2sz(26)) val ((*void*)) = assertloc (ab = $UN.castvwtp1{string}(ab2)) val ((*void*)) = strnptr_free (ab2) // val ab3 = string_tabulate_cloref (i2sz(26), lam(i) => $UN.cast{charNZ}('A'+sz2i(i))) // val ((*void*)) = assertloc (ab = $UN.castvwtp1{string}(ab3)) val ((*void*)) = strnptr_free (ab3) // } // end of [val] (* ****** ****** *) val () = { // val asz = i2sz(5) val A = arrayptr_make_elt (asz, "") val () = ( A[0] := "H"; A[1] := "e"; A[2] := "l"; A[3] := "l"; A[4] := "o"; ) (* end of [val] *) val str = stringarr_concat ($UN.arrayptr2ref(A), asz) val () = arrayptr_free (A) // val out = stdout_ref val () = fprintln! (out, "str = ", str) val () = strptr_free (str) // } // end of [val] (* ****** ****** *) val () = { val out = stdout_ref val cs = string_explode ("abcde") val abcde = string_make_list ($UN.list_vt2t{charNZ}(cs)) val () = list_vt_free (cs) val () = assertloc ("abcde" = $UN.strnptr2string(abcde)) val () = strnptr_free (abcde) } (* end of [val] *) (* ****** ****** *) val () = { // val ab = alphabet // val out = stdout_ref // implement{env} string_foreach$fwork (c, env) = fprint_char (out, c) val () = assertloc (string_foreach (ab) = 26) val () = fprint_newline (out) // implement{env} string_rforeach$fwork (c, env) = fprint_char (out, c) val () = assertloc (string_rforeach (ab) = 26) val () = fprint_newline (out) // } (* end of [val] *) (* ****** ****** *) // val () = assertloc (strcmp("a", "a") = 0) val () = assertloc (strcmp("b", "b") = 0) val () = assertloc (strcmp("b", "a") > 0) val () = assertloc (strcmp("a", "b") < 0) // val () = assertloc (compare("a", "a") = 0) val () = assertloc (compare("b", "b") = 0) val () = assertloc (compare("b", "a") = 1) val () = assertloc (compare("a", "b") = ~1) // (* ****** ****** *) val () = { // val () = assertloc (stropt_length (stropt_none ()) = ~1) // } // end of [val] (* ****** ****** *) val () = { // val res = $extfcall (Strptr0, "atspre_string_make_snprintf", "%i:%s", 1234567890, "abcdefghijklmnopqrstuvwxyz") // val () = println! (res) val () = strptr_free (res) // } // end of [val] (* ****** ****** *) // val () = let // val cs0 = streamize_string_char(alphabet) // in // assertloc ( stream_vt_length(cs0) = sz2i(length(alphabet)) ) (* assertloc *) // end // end of [val] // (* ****** ****** *) // val () = let // val out = stdout_ref val cs0 = streamize_string_char(alphabet) in fprint(out, "stream_vt_fprint(cs0, out, 10) = "); stream_vt_fprint(cs0, out, 10); fprint_newline(out) end // end of [let] // val () = let // val out = stdout_ref val cs0 = streamize_string_char(alphabet) // in fprint(out, "stream_vt_fprint(cs0, out, ~1) = "); stream_vt_fprint(cs0, out, ~1); fprint_newline(out) end // end of [let] // (* ****** ****** *) // val () = let // val out = stdout_ref // val cs0 = streamize_string_char(alphabet) // val cs0 = string_make_stream_vt(cs0) val ((*void*)) = assertloc(alphabet = strptr2string(cs0)) // in // nothing end // end of [let] // (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_string.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ATS1_funset_listord.dats0000644000175000017500000000143113431250607025546 0ustar brandonbrandon(* ** for testing [libats/funset_listord] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: January, 2014 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ATS1/SATS/funset_listord.sats" staload _ = "libats/ATS1/DATS/funset_listord.dats" (* ****** ****** *) val () = { // val cmp = lam (x:int, y:int): int = compare(x, y) // val xs = $list{int}(1, 2, 2, 3, 3) // val xs = funset_make_list (xs, cmp) val xs2 = funset2list (xs) val () = fprintln! (stdout_ref, "xs2 = ", xs2) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ATS1_funset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_monad_list.dats0000644000175000017500000000156213431250607024440 0ustar brandonbrandon(* ** for testing [libats/ML/monad_list] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/ML/SATS/list0.sats" staload _ = "libats/ML/DATS/list0.dats" (* ****** ****** *) staload "libats/ML/SATS/monad_list.sats" staload _ = "libats/ML/DATS/monad_list.dats" (* ****** ****** *) val () = { val m0 = monad_list_list ((list0)$arrpsz{int}(1, 2, 3)) val m1 = monad_list_list ((list0)$arrpsz{int}(10, 20, 30)) val m01_add = monad_bind2 (m0, m1, lam (x, y) => monad_return (x+y)) val m01_mul = monad_bind2 (m0, m1, lam (x, y) => monad_return (x*y)) // val () = fprintln! (stdout_ref, "m01_add = ", m01_add) val () = fprintln! (stdout_ref, "m01_mul = ", m01_mul) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_monad_list.dats] *)ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ATS1_funheap_braun.dats0000644000175000017500000000260413431250607025322 0ustar brandonbrandon(* ** for testing ** [libats/ATS1/funheap_braun] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: January, 2014 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ATS1/SATS/funheap_braun.sats" staload _(*anon*) = "libats/ATS1/DATS/funheap_braun.dats" (* ****** ****** *) val () = { // var hp0 = funheap_make_nil{int}() val-(0) = sz2i(funheap_size(hp0)) // val cmp = lam (x:int, y:int): int = compare (x, y) // val ((*void*)) = funheap_insert (hp0, 9, cmp) val ((*void*)) = funheap_insert (hp0, 5, cmp) val ((*void*)) = funheap_insert (hp0, 7, cmp) val ((*void*)) = funheap_insert (hp0, 2, cmp) val ((*void*)) = funheap_insert (hp0, 8, cmp) val ((*void*)) = funheap_insert (hp0, 1, cmp) val ((*void*)) = funheap_insert (hp0, 6, cmp) val ((*void*)) = funheap_insert (hp0, 3, cmp) val ((*void*)) = funheap_insert (hp0, 4, cmp) // val-(9) = sz2i(funheap_size(hp0)) // val-~Some_vt(1) = funheap_delmin_opt (hp0, cmp) val-~Some_vt(2) = funheap_delmin_opt (hp0, cmp) val-~Some_vt(3) = funheap_delmin_opt (hp0, cmp) val-~Some_vt(4) = funheap_delmin_opt (hp0, cmp) // val-(5) = sz2i(funheap_size(hp0)) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ATS1_funheap_braun.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_strarr.dats0000644000175000017500000000422013431250607023616 0ustar brandonbrandon(* ** for testing [libats/ML/strarr] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/strarr.sats" (* ****** ****** *) // staload _(*anon*) = "libats/ML/DATS/array0.dats" staload _(*anon*) = "libats/ML/DATS/strarr.dats" // (* ****** ****** *) val alphabet = strarr_make("ABCDEFGHIJKLMNOPQRSTUVWXYZ") (* ****** ****** *) val () = { val () = assert (strarr_get_size (alphabet) = 26) val () = assert (strarr_get_size (alphabet + alphabet) = 2 * 26) } // end of [val] (* ****** ****** *) val () = { val AB = strarr_copy (alphabet) // val () = fprintln! (stdout_ref, "AB = ", AB) // val () = assertloc (strarr_get_size (AB) = strarr_get_size (alphabet)) // val () = assertloc (AB[0] = 'A') val () = assertloc (AB[25] = 'Z') val () = assertloc ( strarr_contains (AB, 'Q')) val () = assertloc (~strarr_contains (AB, '0')) // } // end of [val] (* ****** ****** *) val () = { // val out = stdout_ref // val digits = strarr_tabulate (i2sz(10), lam i => '0' + g0u2i(i)) val () = fprintln! (out, "digits = ", digits) // val xdigits = strarr_tabulate ( i2sz(16), lam i => if i < 10 then '0' + g0u2i(i) else 'a' + (g0u2i(i)-10) ) (* end of [val] *) // val () = fprintln! (out, "xdigits = ", xdigits) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val str = strarr_get_range (alphabet, i2sz(26), i2sz(0)) // val strarr = strarr_make(str) val () = assertloc (strarr[0] = 'Z') val () = assertloc (strarr[25] = 'A') // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val () = fprint! (out, "foreach: ") val () = strarr_foreach (alphabet, lam c => fprint (out, c)) val () = fprint_newline (out) // val () = fprint! (out, "iforeach: ") val () = strarr_iforeach (alphabet, lam (i, c) => fprint! (out, "(", c, i, ")")) val () = fprint_newline (out) // val () = fprint! (out, "rforeach: ") val () = strarr_rforeach (alphabet, lam c => fprint (out, c)) val () = fprint_newline (out) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_strarr.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_funmap.dats0000644000175000017500000000230013431250607023564 0ustar brandonbrandon(* ** for testing [libats/ML/funmap] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: September, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/funmap.sats" staload _(*anon*) = "libats/ML/DATS/funmap.dats" staload _(*anon*) = "libats/DATS/funmap_avltree.dats" (* ****** ****** *) val () = { // typedef key = int typedef itm = string typedef map = map (key, itm) // var map = funmap_make_nil {key,itm} () // val-~None_vt() = funmap_insert (map, 0, "a") val-~Some_vt("a") = funmap_insert (map, 0, "a") val-~None_vt() = funmap_insert (map, 1, "b") val-~None_vt() = funmap_insert (map, 2, "c") // val () = assert (funmap_size (map) = 3) // val () = assert (funmap_remove(map, 0)) val-~None_vt() = funmap_takeout (map, 0) // val-~Some_vt("b") = funmap_takeout (map, 1) val-~Some_vt("c") = funmap_takeout (map, 2) // val () = assert (funmap_size (map) = 0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_funmap.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_COMPILE_all.dats0000644000175000017500000000441613431250607024230 0ustar brandonbrandon(* ****** ****** *) (* ** for testing ** [libats/ML/COMPILE] *) (* ****** ****** *) // // Author: Hongwei Xi // Start time: October, 2017 // Authoremail: gmhwxiATgmailDOTcom // (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share\ /atspre_staload_libats_ML.hats" // #staload UN = "prelude/SATS/unsafe.sats" // (* ****** ****** *) // #include "libats/ML/COMPILE/mylibies.hats" // (* ****** ****** *) val cs = "abcde" val CS = "ABCDE" val () = assertloc(toupper(cs) = CS) val () = assertloc(tolower(CS) = cs) (* ****** ****** *) // var m0 = funmap_nil{gvalue}() val- ~None_vt() = (m0).insert("a", GVint(0)) val- ~None_vt() = (m0).insert("b", GVint(1)) val- ~None_vt() = (m0).insert("c", GVint(2)) // val () = (m0).foreach() (lam(k, x) => println! (k, " -> ", x)) // (* ****** ****** *) // val-true = (m0).remove("a") val-true = (m0).remove("b") val-false = (m0).remove("z") // val () = (m0).foreach() (lam(k, x) => println! (k, " -> ", x)) // (* ****** ****** *) // val xs = g0ofg1 ( $list{string}("a","b","c") ) (* val *) // val xs = farray_make_list{string}(xs) // val () = ( print! ("xs =\n"); (xs).iforeach() (lam(i, x) => println!(i, " -> ", x)) ) val () = ( print! ("xs =\n"); println! ( ( xs ).ifoldleft ( TYPE{string} ) ( "" , lam(r, i, x) => r + itoa(i) + x) ) ) // val () = println! ("xs[0] = ", xs[0]) val () = println! ("xs[1] = ", xs[1]) val () = println! ("xs[2] = ", xs[2]) val () = try println! ("xs[3] = ", xs[3]) with ~FarraySubscriptExn ( // argless ) => println!("FarraySubscriptExn") // (* ****** ****** *) // val kxs = hashtbl_make_nil{gvalue}(16) // val- ~None_vt() = (kxs).insert("0", GVint(0)) val- ~None_vt() = (kxs).insert("1", GVint(1)) val- ~None_vt() = (kxs).insert("2", GVint(2)) // (* val ((*void*)) = println!("kxs = ", kxs) *) // val ((*void*)) = ( kxs ).foreach ( ) ( lam(k, x) => println! (k, " -> ", x) ) // val- ~Some_vt (GVint(0)) = (kxs).insert("0", GVint(10)) val- ~Some_vt (GVint(1)) = (kxs).insert("1", GVint(11)) val- ~Some_vt (GVint(2)) = (kxs).insert("2", GVint(12)) // val ((*void*)) = ( kxs ).foreach ( ) ( lam(k, x) => println! (k, " -> ", x) ) // val kxs = listize1(kxs) val ((*void*)) = println! ("kxs = ", kxs) // (* ****** ****** *) implement main0((*void*)) = ((*void*)) (* ****** ****** *) (* end of [libats_ML_COMPILE_all.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_funarray_braunt.dats0000644000175000017500000000250513431250607025117 0ustar brandonbrandon(* ** for testing [libats/funset_avltree] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: March, 2016 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) #staload "libats/SATS/funarray.sats" (* ****** ****** *) // #staload _(*anon*) = "libats/DATS/qlist.dats" #staload _(*anon*) = "libats/DATS/funarray_braunt.dats" // (* ****** ****** *) // var A0 = farray_nil{int}() val () = farray_insert_l(A0, 0) val () = farray_insert_r(A0, 1, 1) val () = farray_insert_r(A0, 2, 2) val () = farray_insert_r(A0, 3, 3) val () = fprintln! (stdout_ref, "A0 = ", A0) // (* ****** ****** *) // val-~None_vt() = getopt_at(A0, 4) // val-(true) = setopt_at(A0, 1, 10) val-~Some_vt(10) = getopt_at(A0, 1) val-(true) = setopt_at(A0, 2, 20) val-~Some_vt(20) = getopt_at(A0, 2) val-(true) = setopt_at(A0, 3, 30) val-~Some_vt(30) = getopt_at(A0, 3) // val () = fprintln! (stdout_ref, "A0 = ", A0) // (* ****** ****** *) // var A1 = farray_make_list (list_vt2t(list_make_intrange(0, 10))) val () = fprintln! (stdout_ref, "A1 = ", A1) // (* ****** ****** *) val () = println! ("size(A1) = ", size(A1)) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_funarray_braunt.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_hashtblref.dats0000644000175000017500000000366313431250607024435 0ustar brandonbrandon(* ** for testing ** [libats/ML/hashtblref] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) // staload "libats/ML/SATS/hashtblref.sats" // staload _(*anon*) = "libats/DATS/qlist.dats" // staload _(*anon*) = "libats/DATS/hashfun.dats" staload _(*anon*) = "libats/DATS/linmap_list.dats" staload _(*anon*) = "libats/DATS/hashtbl_chain.dats" staload _(*anon*) = "libats/ML/DATS/hashtblref.dats" // (* ****** ****** *) val () = { // val N = i2sz(1024) // typedef key = string and itm = int // val mytbl = hashtbl_make_nil(N) // val () = assertloc (hashtbl_get_capacity(mytbl)=N) // val () = assertloc (iseqz(hashtbl_get_size(mytbl))) // val-~None_vt() = hashtbl_insert (mytbl, "a", 0) val-~None_vt() = hashtbl_insert (mytbl, "b", 1) val-~None_vt() = hashtbl_insert (mytbl, "c", 2) val-~None_vt() = hashtbl_insert (mytbl, "d", 3) val-~None_vt() = hashtbl_insert (mytbl, "e", 4) val-~None_vt() = hashtbl_insert (mytbl, "f", 5) val-~None_vt() = hashtbl_insert (mytbl, "g", 6) val-~None_vt() = hashtbl_insert (mytbl, "h", 7) val-~None_vt() = hashtbl_insert (mytbl, "i", 8) val-~None_vt() = hashtbl_insert (mytbl, "j", 9) // val-~Some_vt(0) = hashtbl_search (mytbl, "a") val-true = hashtbl_remove (mytbl, "a") val-~None_vt((*void*)) = hashtbl_search (mytbl, "a") val-false = hashtbl_remove (mytbl, "a") // val-~Some_vt(1) = hashtbl_search (mytbl, "b") val-~Some_vt(2) = hashtbl_search (mytbl, "c") val-~Some_vt(3) = hashtbl_search (mytbl, "d") val-~Some_vt(4) = hashtbl_search (mytbl, "e") // val () = assertloc (hashtbl_get_size(mytbl)=i2sz(10-1)) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_hashtblref.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_bool.dats0000644000175000017500000000453013431250607023032 0ustar brandonbrandon(* ** for testing [prelude/bool] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) nonfix xor overload xor with xor_bool0_bool0 of 100 overload xor with xor_bool1_bool1 of 120 (* ****** ****** *) val () = { // val () = assertloc (true && true) val () = assertloc (not(true && false)) val () = assertloc (not(false && true)) val () = assertloc (not(false && false)) // val () = assertloc (true || true) val () = assertloc (true || false) val () = assertloc (false || true) val () = assertloc (not(false || false)) // val () = assertloc (true + true) val () = assertloc (true + false) val () = assertloc (false + true) val () = assertloc (false + false = false) // val () = assertloc (true * true) val () = assertloc (true * false = false) val () = assertloc (false * true = false) val () = assertloc (false * false = false) // val () = assertloc (xor(true, false) = true) val () = assertloc (xor(false, true) = true) val () = assertloc (xor(true, true) = false) val () = assertloc (xor(false, false) = false) // val () = assertloc (false < true) val () = assertloc (false <= true) val () = assertloc (true > false) val () = assertloc (true >= false) // val () = assertloc (true = true) val () = assertloc (true != false) val () = assertloc (false != true) val () = assertloc (false = false) // val () = assertloc (compare (true, true) = 0) val () = assertloc (compare (false, false) = 0) val () = assertloc (compare (true, false) = 1) val () = assertloc (compare (false, true) = ~1) // val () = assertloc (int2bool1 (1) = true) val () = assertloc (int2bool1 (~1) = true) val () = assertloc (int2bool1 (0) = false) // val () = assertloc (bool2int1 (true) = 1) val () = assertloc (bool2int1 (false) = 0) // } // end of [val] (* ****** ****** *) val () = { // val true0 = (true: bool) val false0 = (false: bool) // val () = assertloc (true * true0) val () = assertloc (true0 * true) val () = assertloc (true + false0) val () = assertloc (true0 + false) // } (* end of [val] *) (* ****** ****** *) val () = { val out = stdout_ref val () = fprint (out, true) val () = fprint_newline (out) val () = fprint (out, false) val () = fprint_newline (out) } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_bool.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_string.dats0000644000175000017500000000275013431250607023615 0ustar brandonbrandon(* ** for testing [libats/ML/string] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/string.sats" (* ****** ****** *) // staload _(*anon*) = "libats/ML/DATS/array0.dats" staload _(*anon*) = "libats/ML/DATS/string.dats" // (* ****** ****** *) val alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (* ****** ****** *) val () = { val () = assertloc (itoa (12345) = "12345") } (* end of [val] *) (* ****** ****** *) val () = { // val () = assertloc (length (alphabet) = 26) val () = assertloc (alphabet = string_copy (alphabet)) val () = assertloc (alphabet = string_make_substring (alphabet, (i2sz)0, (i2sz)26)) // val () = assertloc (alphabet[0] = 'A') val () = assertloc (alphabet[25] = 'Z') // } // end of [val] (* ****** ****** *) val () = { // val ds = string_tabulate ( i2sz(10) , lam i => $UN.cast{charNZ}('0'+sz2i(i)) ) (* end of [val] *) // val out = stdout_ref val () = fprintln! (out, "digits = ", ds) // val () = string_foreach (ds+ds, lam c => fprint(out, c)) // val ((*void*)) = fprint_newline (out) // } (* end of [val] *) (* ****** ****** *) val () = { // val str = "" val cs = string_explode (str) val () = assertloc (str = string_implode(cs)) // val str = "abcde" val cs = string_explode (str) val () = assertloc (str = string_implode(cs)) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_string.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_myfunset.dats0000644000175000017500000000343213431250607024157 0ustar brandonbrandon(* ** For ATS2TUTORIAL *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // (* ****** ****** *) local // typedef elt = int // staload FS = "libats/ML/SATS/funset.sats" implement $FS.compare_elt_elt(x, y) = compare(x, y) // in (* in-of-local *) #include "libats/ML/HATS/myfunset.hats" end // end of [local] (* ****** ****** *) // val myset = myfunset_nil() // (* ****** ****** *) // var myset = myset // val-false = myset.insert(0) val-(true) = myset.insert(0) val-false = myset.insert(1) val-(true) = myset.insert(1) // (* ****** ****** *) // val-true = myset.remove(0) val-false = myset.remove(0) val-true = myset.remove(1) val-false = myset.remove(1) // (* ****** ****** *) // val-false = myset.insert(0) val-(true) = myset.insert(0) val-false = myset.insert(1) val-(true) = myset.insert(1) val-false = myset.insert(2) val-(true) = myset.insert(2) // val () = fprintln! (stdout_ref, "myset = ", myset) // (* ****** ****** *) // val myset1 = myfunset_make_list $list{int}(0, 1, 1, 2, 2, 2) // val () = fprintln! (stdout_ref, "myset1 = ", myset1) val () = fprintln! (stdout_ref, "myset1.size = ", myset1.size()) // val myset2 = myfunset_make_list $list{int}(0, 1, 2, 3, 4, 5) // val () = fprintln! (stdout_ref, "myset2 = ", myset2) val () = fprintln! (stdout_ref, "myset2.size = ", myset2.size()) // (* ****** ****** *) val () = assertloc (myset = myset1) val () = assertloc (myset1.is_subset(myset2)) val () = assertloc (myset2.is_supset(myset1)) (* ****** ****** *) // val myset3 = (100).tabulate()(lam x => x%10) // val () = fprintln! (stdout_ref, "myset3 = ", myset3.size()) // val () = fprintln! (stdout_ref, "myset3 = ", myset3) // (* ****** ****** *) implement main0 () = {} (* ****** ****** *) (* end of [libats_ML_myfunset.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_filebas.dats0000644000175000017500000000423513431250607023714 0ustar brandonbrandon(* ** for testing [libats/ML/filebas] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload _ = "libats/ML/DATS/list0.dats" (* ****** ****** *) // staload "libats/ML/SATS/filebas.sats" staload _ = "libats/ML/DATS/filebas.dats" staload _ = "libats/libc/DATS/dirent.dats" staload _ = "libats/ML/DATS/filebas_dirent.dats" // (* ****** ****** *) val () = { // val-~Some_vt(filr) = fileref_open_opt ("./libats_ML_filebas.dats", file_mode_r) // fun loop ( out: FILEref, i: int ) : void = let val isnot = fileref_isnot_eof (filr) in if isnot then let val line = fileref_get_line_string (filr) val ((*void*)) = fprintln! (out, "line ", i, ":", line) in loop (out, i+1) end else fileref_close (filr) // end of [if] end // end of [loop] // val () = loop (stdout_ref, 1(*i*)) // } (* end of [val] *) (* ****** ****** *) val () = { // val-~Some_vt(filr) = fileref_open_opt ("./libats_ML_filebas.dats", file_mode_r) // fun loop ( out: FILEref, xs: list0 (string), i: int ) : void = ( case+ xs of | list0_nil () => () | list0_cons (x, xs) => ( fprintln! (out, "line(", i, ") = ", x); loop (out, xs, i+1) ) (* end of [cons0] *) ) // val lines = fileref_get_lines_stringlst (filr) // val () = loop (stdout_ref, lines, 1) // } (* end of [val] *) (* ****** ****** *) val () = { val out = stdout_ref val fnames = dirname_get_fnamelst (".") val () = fprintln! (out, "fnames(.) = ", fnames) val out = stdout_ref val fnames = dirname_get_fnamelst ("..") val () = fprintln! (out, "fnames(..) = ", fnames) } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val fnames = streamize_dirname_fname (".") // val ((*void*)) = stream_vt_fprint(fnames, out, 10) val ((*void*)) = fprint_newline(out) // val fnames = streamize_dirname_fname ("..") // val ((*void*)) = stream_vt_fprint(fnames, out, 10) val ((*void*)) = fprint_newline(out) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_filebas.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_stdio.dats0000644000175000017500000000410013431250607024021 0ustar brandonbrandon(* ** for testing ** [libats/libc/stdio] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/libc/SATS/stdio.sats" (* ****** ****** *) #define EOF ~1 (* ****** ****** *) val () = { val fp = tmpfile_exn () // prval pfr = file_mode_lte_rw_r () prval pfw = file_mode_lte_rw_w () // val ret = fileno (fp) val () = println! ("fileno (...) = ", ret) // val ret = feof (fp) val () = assertloc (ret = 0) val ret = ferror (fp) val () = assertloc (ret = 0) // val c = fgetc (pfr | fp) val () = assertloc (c = EOF) // val ret = feof (fp) val () = assertloc (ret != 0) val ret = ferror (fp) val () = assertloc (ret = 0) // val c0 = '0' val c0 = fputc (pfw | c0, fp) val () = assertloc (c0 = char2int0 '0') // val c1 = '1' val c1 = fputc (pfw | c1, fp) val () = assertloc (c1 = char2int0 '1') // val ret = fseek (fp, 0L, SEEK_SET) val () = assertloc (ret = 0) // val ret = ftell (fp) val () = assertloc (ret = 0L) // val c0 = fgetc (pfr | fp) val () = assertloc (c0 = char2int0 '0') val ret = ftell (fp) val () = assertloc (ret = 1L) // val c1 = fgetc (pfr | fp) val () = assertloc (c1 = char2int0 '1') val ret = ftell (fp) val () = assertloc (ret = 2L) // val ret = fputs (pfw | "23456789", fp) val () = assertloc (ret != 0) val ret = ftell (fp) val () = assertloc (ret = 10L) // val () = rewind (fp) val ret = ftell (fp) val () = assertloc (ret = 0L) // val () = fclose_exn (fp) // } (* end of [val] *) (* ****** ****** *) val () = { // val rfp = popen_exn ("ls", $UN.cast{pmode(r)}("r")) val wfp = popen_exn ("sort -f", $UN.cast{pmode(w)}("w")) val ( ) = while (true) { val str = fgets0_gc (2, rfp) val () = assertloc (strptr2ptr (str) > 0) val isemp = strptr_is_empty (str) val () = if ~isemp then fputs_exn ($UN.strptr2string(str), wfp) val () = strptr_free (str) val () = if isemp then $break } val status = pclose0_exn (wfp) val status = pclose0_exn (rfp) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_stdio.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_strings.dats0000644000175000017500000000144013431250607024374 0ustar brandonbrandon(* ** for testing ** [libats/libc/strings] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // staload UN = $UNSAFE // aliasing // (* ****** ****** *) staload UNI = "libats/libc/SATS/unistd.sats" (* ****** ****** *) staload "libats/libc/SATS/strings.sats" staload _ = "libats/libc/DATS/strings.dats" (* ****** ****** *) val () = { val str = "abcde" val str2 = "ABCDE" val () = assertloc (strcasecmp (str, str2) = 0) } (* end of [val] *) (* ****** ****** *) val () = { val str = "abcde" val p0 = string2ptr(str) val () = assertloc (strlen (str) = $UN.cast2size(index (str, 0) - p0)) val () = assertloc (strlen (str) = $UN.cast2size(rindex (str, 0) - p0)) } (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_strings.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_linmap_list.dats0000644000175000017500000000506313431250607024232 0ustar brandonbrandon(* ** for testing [libats/linmap_list] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/linmap_list.sats" staload _(*anon*) = "libats/DATS/linmap_list.dats" (* ****** ****** *) val () = { // typedef key = int typedef itm = string vtypedef map = map (key, itm) // var res: itm? // var map = linmap_make_nil {key,itm} () // val ans = linmap_insert (map, 0, "a1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 1) val ans = linmap_insert (map, 1, "b1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 2) val ans = linmap_insert (map, 1, "b2", res) prval () = opt_clear (res) val () = assertloc (ans=true) // replaced // val () = assertloc (linmap_size (map) = 2) // val-~Some_vt("a1") = linmap_search_opt (map, 0) val-~Some_vt("b2") = linmap_search_opt (map, 1) // val ans = linmap_insert (map, 2, "c1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (linmap_size (map) = 3) // val () = assertloc (~linmap_remove (map, ~1)) // val-~Some_vt("a1") = linmap_takeout_opt (map, 0) val () = assertloc (linmap_size (map) = 2) val-~Some_vt("b2") = linmap_takeout_opt (map, 1) val () = assertloc (linmap_size (map) = 1) val-~Some_vt("c1") = linmap_takeout_opt (map, 2) val () = assertloc (linmap_size (map) = 0) // val () = linmap_free (map) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef key = int typedef itm = string vtypedef map = map (key, itm) // var map = linmap_make_nil {key,itm} () // val-~None_vt() = linmap_insert_opt (map, 0, "0") val-~None_vt() = linmap_insert_opt (map, 1, "1") val-~None_vt() = linmap_insert_opt (map, 2, "2") val-~None_vt() = linmap_insert_opt (map, 3, "3") val-~None_vt() = linmap_insert_opt (map, 4, "4") // val () = assertloc (linmap_size (map) = 5) // val () = fprintln! (stdout_ref, "map = ", map) // val () = list_vt_free (linmap_listize1 (map)) // val-~Some_vt("0") = linmap_takeout_opt (map, 0) val-~Some_vt("1") = linmap_takeout_opt (map, 1) val-~Some_vt("2") = linmap_takeout_opt (map, 2) val-~Some_vt("3") = linmap_takeout_opt (map, 3) val-~Some_vt("4") = linmap_takeout_opt (map, 4) // val () = assertloc (linmap_size (map) = 0) // val () = linmap_free (map) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_linmap_list.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_refcount.dats0000644000175000017500000000131613431250607023541 0ustar brandonbrandon(* ** for testing [libats/refcount] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: July, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/refcount.sats" staload _ = "libats/DATS/refcount.dats" (* ****** ****** *) val () = { // typedef T = int // val rfc = refcnt_make_elt (1000) // val cnt = refcnt_get_count (rfc) val rfc2 = refcnt_incref (rfc) val-~None_vt() = refcnt_decref_opt (rfc) val-~Some_vt(x) = refcnt_decref_opt (rfc2) val () = println! ("x = ", x) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_refcount.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ATS1_linset_listord.dats0000644000175000017500000000274413431250607025550 0ustar brandonbrandon(* ** for testing [libats/linset_listord] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: January, 2014 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ATS1/SATS/linset_listord.sats" staload _ = "libats/ATS1/DATS/linset_listord.dats" (* ****** ****** *) val () = { // vtypedef set = set(int) // val cmp = lam (x:int, y:int): int = compare(x, y) // var xs1: set = linset_nil{int}() val-false = linset_insert (xs1, 0, cmp) val-false = linset_insert (xs1, 1, cmp) val-false = linset_insert (xs1, 2, cmp) // val () = assertloc (linset_is_member (xs1, 0, cmp)) val () = assertloc (linset_is_member (xs1, 1, cmp)) val () = assertloc (linset_is_member (xs1, 2, cmp)) val () = assertloc (linset_isnot_member (xs1, 3, cmp)) val () = assertloc (linset_isnot_member (xs1, 4, cmp)) // val-~Some_vt(_) = linset_chooseout_opt (xs1) // var xs2: set = linset_nil{int}() val-false = linset_insert (xs2, 2, cmp) val-false = linset_insert (xs2, 3, cmp) val-false = linset_insert (xs2, 4, cmp) // val-~Some_vt(_) = linset_chooseout_opt (xs2) // val xs12 = linset_union (xs1, xs2, cmp) val xs12 = linset_listize (xs12) val () = fprintln! (stdout_ref, "xs12 = ", xs12) val ((*void*)) = list_vt_free (xs12) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ATS1_linset_listord.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_funmap_avltree.dats0000644000175000017500000000517213431250607024730 0ustar brandonbrandon(* ** for testing [libats/funmap_avltree] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/funmap_avltree.sats" (* ****** ****** *) staload _(*anon*) = "libats/DATS/qlist.dats" staload _(*anon*) = "libats/DATS/funmap_avltree.dats" (* ****** ****** *) val () = { // typedef key = int typedef itm = string typedef map = map (key, itm) // var res: itm? // var map = funmap_make_nil {key,itm} () // val ans = funmap_insert (map, 0, "a1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (funmap_size (map) = 1) // val ans = funmap_insert (map, 1, "b1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (funmap_size (map) = 2) // val ans = funmap_insert (map, 1, "b2", res) prval () = opt_clear (res) val () = assertloc (ans=true) // replaced val () = assertloc (funmap_size (map) = 2) // val-~Some_vt("a1") = funmap_search_opt (map, 0) val-~Some_vt("b2") = funmap_search_opt (map, 1) // val ans = funmap_insert (map, 2, "c1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (funmap_size (map) = 3) // val () = assertloc (~funmap_remove (map, ~1)) // val-~Some_vt("a1") = funmap_takeout_opt (map, 0) val () = assertloc (funmap_size (map) = 2) val-~Some_vt("b2") = funmap_takeout_opt (map, 1) val () = assertloc (funmap_size (map) = 1) val-~Some_vt("c1") = funmap_takeout_opt (map, 2) val () = assertloc (funmap_size (map) = 0) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef key = int typedef itm = string typedef map = map (key, itm) // var map = funmap_make_nil {key,itm} () // val-~None_vt() = funmap_insert_opt (map, 0, "?") val-~Some_vt("?") = funmap_insert_opt (map, 0, "0") val-~None_vt() = funmap_insert_opt (map, 1, "1") val-~None_vt() = funmap_insert_opt (map, 2, "2") val-~None_vt() = funmap_insert_opt (map, 3, "3") val-~None_vt() = funmap_insert_opt (map, 4, "4") // val () = assertloc (funmap_size (map) = 5) // val () = list_vt_free (funmap_listize (map)) // val () = fprintln! (stdout_ref, "map = ", map) // val-~Some_vt("0") = funmap_takeout_opt (map, 0) val-~Some_vt("1") = funmap_takeout_opt (map, 1) val-~Some_vt("2") = funmap_takeout_opt (map, 2) val-~Some_vt("3") = funmap_takeout_opt (map, 3) val-~Some_vt("4") = funmap_takeout_opt (map, 4) // val () = assertloc (funmap_size (map) = 0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_funmap_avltree.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ATS1_funheap_binomial.dats0000644000175000017500000000262013431250607026003 0ustar brandonbrandon(* ** for testing ** [libats/ATS1/funheap_binomial] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: January, 2014 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ATS1/SATS/funheap_binomial.sats" staload _(*anon*) = "libats/ATS1/DATS/funheap_binomial.dats" (* ****** ****** *) val () = { // var hp0 = funheap_make_nil{int}() val-(0) = sz2i(funheap_size(hp0)) // val cmp = lam (x:int, y:int): int = compare (x, y) // val ((*void*)) = funheap_insert (hp0, 9, cmp) val ((*void*)) = funheap_insert (hp0, 5, cmp) val ((*void*)) = funheap_insert (hp0, 7, cmp) val ((*void*)) = funheap_insert (hp0, 2, cmp) val ((*void*)) = funheap_insert (hp0, 8, cmp) val ((*void*)) = funheap_insert (hp0, 1, cmp) val ((*void*)) = funheap_insert (hp0, 6, cmp) val ((*void*)) = funheap_insert (hp0, 3, cmp) val ((*void*)) = funheap_insert (hp0, 4, cmp) // val-(9) = sz2i(funheap_size(hp0)) // val-~Some_vt(1) = funheap_delmin_opt (hp0, cmp) val-~Some_vt(2) = funheap_delmin_opt (hp0, cmp) val-~Some_vt(3) = funheap_delmin_opt (hp0, cmp) val-~Some_vt(4) = funheap_delmin_opt (hp0, cmp) // val-(5) = sz2i(funheap_size(hp0)) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ATS1_funheap_binomial.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_myfunmap.dats0000644000175000017500000000325413431250607024143 0ustar brandonbrandon(* ** for testing ** [libats/ML/myhashtblref] *) (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // (* ****** ****** *) local // typedef key = string and itm = int // in (* in-of-local *) // #include "libats/ML/HATS/myfunmap.hats" // end // end of [local] (* ****** ****** *) // val out = stdout_ref // val mymap = myfunmap_make_nil() // (* ****** ****** *) // val ((*void*)) = fprintln! (out, "size = ", mymap.size()) // (* ****** ****** *) // var mymap = mymap // val-~None_vt() = mymap.insert("a", 0) val-~Some_vt(0) = mymap.insert("a", 0) // val-~None_vt() = mymap.insert("b", 1) val-~Some_vt(1) = mymap.insert("b", 1) // val-~None_vt() = mymap.insert("c", 2) val-~Some_vt(2) = mymap.insert("c", 2) // val-~None_vt() = mymap.insert("d", 3) val-~Some_vt(3) = mymap.insert("d", 3) // val-~None_vt() = mymap.insert("e", 4) val-~Some_vt(4) = mymap.insert("e", 4) // (* ****** ****** *) // val ((*void*)) = fprintln! (out, "size = ", mymap.size()) // (* ****** ****** *) val kxs = mymap.listize() val ((*void*)) = fprintln! (out, "kxs = ", kxs) (* ****** ****** *) // val ((*void*)) = fprintln! (out, "mymap = ", mymap) // (* ****** ****** *) val-~None_vt() = mymap.search("") val-~Some_vt(0) = mymap.search("a") val-~Some_vt(1) = mymap.search("b") val-~Some_vt(2) = mymap.search("c") (* ****** ****** *) val-true = mymap.remove("a") val-false = mymap.remove("a") val-~Some_vt(1) = mymap.takeout("b") val-~Some_vt(2) = mymap.takeout("c") (* ****** ****** *) // val ((*void*)) = fprintln! (out, "mymap = ", mymap) // (* ****** ****** *) implement main0((*void*)) = ((*void*)) (* ****** ****** *) (* end of [libats_ML_myfunmap.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_option.dats0000644000175000017500000000073513431250607023412 0ustar brandonbrandon(* ** for testing [prelude/option] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = { // val out = stdout_ref // val opt = None{int}() val+None _ = opt val () = fprintln! (out, "opt = ", opt) // val opt = Some{int}(0) val () = fprintln! (out, "opt = ", opt) val+Some x = opt val () = assertloc (x = 0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_option.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_sys_stat.dats0000644000175000017500000000172013431250607024555 0ustar brandonbrandon(* ** for testing ** [libats/libc/sys/stat] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // staload UN = $UNSAFE // aliasing // (* ****** ****** *) staload UNISTD = "libats/libc/SATS/unistd.sats" (* ****** ****** *) staload "libats/libc/SATS/stdlib.sats" staload _ = "libats/libc/DATS/stdlib.dats" (* ****** ****** *) staload "libats/libc/SATS/sys/stat.sats" staload _ = "libats/libc/DATS/sys/stat.dats" (* ****** ****** *) // val user = getenv_gc ("USER") val user = ( if strptr2ptr(user) > 0 then strptr2string(user) else (free(user); "") ) : string // end of [val] // val tmp_user = strptr2string(string0_append ("/tmp/", user)) // (* ****** ****** *) val () = { // val err = mkdirp (tmp_user, S_IRWXU) val ((*void*)) = println! ("mkdir(", tmp_user, ") = ", err) val ((*void*)) = $UNISTD.rmdir_exn (tmp_user) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_sys_stat.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_stkarray.dats0000644000175000017500000000235313431250607023556 0ustar brandonbrandon(* ** for testing [libats/stkarray] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: September, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/stkarray.sats" staload _(*anon*) = "libats/DATS/stkarray.dats" (* ****** ****** *) val () = { // val M = i2sz(2) // val stk = stkarray_make_cap (M) // val () = assertloc (stkarray_get_size (stk) = 0) val () = assertloc (stkarray_get_capacity (stk) = M) // val () = stkarray_insert (stk, 0) val-(0) = stkarray_takeout (stk) val-~None_vt() = stkarray_takeout_opt (stk) // val () = assertloc (stkarray_get_size (stk) = 0) // val-~None_vt() = stkarray_insert_opt (stk, 1) val-~None_vt() = stkarray_insert_opt (stk, 2) // val () = fprintln! (stdout_ref, "stk = ", stk) // val-~Some_vt(3) = stkarray_insert_opt (stk, 3) val () = assertloc (stkarray_get_size (stk) = 2) val-(2) = stkarray_takeout (stk) val-(1) = stkarray_takeout (stk) val-~None_vt() = stkarray_takeout_opt (stk) val () = assertloc (stkarray_get_size (stk) = 0) // val () = stkarray_free_nil (stk) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_stkarray.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_option_vt.dats0000644000175000017500000000076113431250607024122 0ustar brandonbrandon(* ** for testing [prelude/option_vt] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = { // val out = stdout_ref // val opt = None_vt{int}() val () = fprintln! (out, "opt = ", opt) val+~None_vt _ = opt // val opt = Some_vt{int}(0) val () = fprintln! (out, "opt = ", opt) val+~Some_vt x = opt val () = assertloc (x = 0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_option_vt.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_libc_math.dats0000644000175000017500000000473513431250607023646 0ustar brandonbrandon(* ** for testing ** [libats/libc/math] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/libc/SATS/math.sats" staload _ = "libats/libc/DATS/math.dats" (* ****** ****** *) macdef PI = M_PI (* ****** ****** *) val () = { // val () = assertloc (isfinite(1.0) != 0) val () = assertloc (isnormal(1.0) != 0) // val () = assertloc (isinf(1.0) = 0) val () = assertloc (isnan(1.0) = 0) // } (* end of [val] *) (* ****** ****** *) val () = { // val () = assertloc (ceil(2.72) = 3.0) val () = assertloc (ceil(~3.14) = ~3.0) // val () = assertloc (floor(2.72) = 2.0) val () = assertloc (floor(~3.14) = ~4.0) // val () = assertloc (round(2.72f) = 3.0f) val () = assertloc (round(~3.14f) = ~3.0f) // val () = assertloc (trunc(2.72L) = 2.0L) val () = assertloc (trunc(~3.14L) = ~3.0L) // } // end of [val] (* ****** ****** *) val () = { val f1 = 1.0 val f2 = 2.0 val f3 = 3.0 val () = assertloc (f1 = fmin (f1, f2)) val () = assertloc (f2 = fmax (f1, f2)) val () = assertloc (max(f1-f2, 0.0) = fdim (f1, f2)) val () = assertloc (max(f2-f1, 0.0) = fdim (f2, f1)) val () = assertloc (f1*f2+f3 = fma (f1, f2, f3)) } (* end of [val] *) (* ****** ****** *) macdef sqr(x) = let val x = ,(x) in x * x end macdef cube(x) = let val x = ,(x) in x * x * x end val () = { val () = println! "sqr(sqrt(2.0)) = " (sqr(sqrt(2.0))) val () = println! "cube(cbrt(2.0)) = " (cube(cbrt(2.0))) val () = println! "exp(log(2.0)) = " (exp(log(2.0))) val () = println! "pow(10.0, log10(2.0)) = " (pow(10.0, log10(2.0))) } (* end of [val] *) (* ****** ****** *) val () = { // val () = println! ("sin(PI/6) = ", sin(PI/6)) val () = println! ("cos(PI/3) = ", cos(PI/3)) val () = println! ("tan(PI/3) = ", tan(PI/4)) // val () = println! ("6*asin(sin(PI/6)) = ", 6*asin(sin(PI/6))) val () = println! ("3*acos(cos(PI/3)) = ", 3*acos(cos(PI/3))) val () = println! ("4*atan(tan(PI/4)) = ", 4*atan(tan(PI/4))) val () = println! ("2*atan2(1.0, 0.0) = ", 2*atan2(1.0, 0.0)) // } (* end of [val] *) (* ****** ****** *) val () = { // val () = println! ("sinh(PI/6) = ", sinh(PI/6)) val () = println! ("cosh(PI/3) = ", cosh(PI/3)) val () = println! ("tanh(PI/3) = ", tanh(PI/4)) // val () = println! ("6*asinh(sinh(PI/6)) = ", 6*asinh(sinh(PI/6))) val () = println! ("3*acosh(cosh(PI/3)) = ", 3*acosh(cosh(PI/3))) val () = println! ("4*atanh(tanh(PI/4)) = ", 4*atanh(tanh(PI/4))) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_libc_math.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_integer.dats0000644000175000017500000001001113431250607023523 0ustar brandonbrandon(* ** For testing ** [prelude/integer] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #define EPSILON 1E-8 (* ****** ****** *) val () = { // val () = assertloc (~(~(1)) = 1) val () = assertloc (neg(neg(~1)) = ~1) val () = assertloc (abs(~10) = 10) val () = assertloc (pred(succ(0)) = 0) val () = assertloc (succ(pred(1)) = 1) val () = assertloc (1 + 2 = 2 + 1) val () = assertloc ((1 + 2) + 3 = 1 + (2 + 3)) val () = assertloc (1 * 2 = 2 * 1) val () = assertloc ((1 * 2) * 3 = 1 * (2 * 3)) // val x = 10 val () = assertloc (abs(x) = max(x, 0) - min(x, 0)) val x = ~10 val () = assertloc (abs(x) = max(x, 0) - min(x, 0)) // val () = assertloc (10 % 2 = 0) val () = assertloc (10 % 3 = 1) val () = assertloc (10 mod 4 = 2) val () = assertloc ((10 \nmod 5) = 0) val () = assertloc ((10 \nmod 7) = 3) // (* macdef ngcd = g1int_ngcd val () = assertloc ((0 \ngcd 0) = 0) val () = assertloc ((15 \ngcd 27) = 3) val () = assertloc ((24 \ngcd 60) = 12) *) // } // end of [val] (* ****** ****** *) val () = { // val () = assertloc (pred(succ(0u)) = 0) val () = assertloc (succ(pred(1u)) = 1) val () = assertloc (1u + 2u = 2u + 1u) val () = assertloc ((1u + 2u) + 3u = 1 + (2 + 3)) val () = assertloc (1u * 2u = 2u * 1u) val () = assertloc ((1u * 2u) * 3u = 1 * (2 * 3)) // val () = assertloc (10u mod 2u = 0) val () = assertloc (10u mod 3u = 1) // } // end of [val] (* ****** ****** *) val () = { // val () = assertloc (1 < 2) val () = assertloc (1 <= 2) val () = assertloc (9 > 8) val () = assertloc (9 >= 8) val () = assertloc (5 = 5) val () = assertloc (not(5 != 5)) val () = assertloc (compare (1, 9) = g1int_sgn(1-9)) val () = assertloc (compare (5, 5) = g1int_sgn(5-5)) val () = assertloc (compare (9, 1) = g1int_sgn(9-1)) // } // end of [val] (* ****** ****** *) val () = { // val () = assertloc ((1 << 0) = 1) val () = assertloc ((1 >> 0) = 1) val () = assertloc ((1 << 10) = 1024) val () = assertloc ((1024 >> 10) = 1) // val () = assertloc ((1U << 0) = 1U) val () = assertloc ((1U >> 0) = 1U) val () = assertloc ((1U << 10) = 1024U) val () = assertloc ((1024U >> 10) = 1U) // val () = assertloc ((1L << 10) = 1024L) val () = assertloc ((1024L >> 10) = 1L) // val x = 0x1234U val () = assertloc ((x lor x) = x) val () = assertloc ((x lor ~x) = g0i2u(~1)) val () = assertloc ((x land x) = x) val () = assertloc ((x land ~x) = 0U) val () = assertloc ((x lxor x) = 0U) val () = assertloc ((0x0000U lor x) = x) val () = assertloc ((0xFFFFU land x) = x) // val x = 0x123456UL val () = assertloc ((x lor x) = x) val () = assertloc ((x lor ~x) = g0i2u(~1L)) val () = assertloc ((x land x) = x) val () = assertloc ((x land ~x) = 0UL) val () = assertloc ((x lxor x) = 0UL) val () = assertloc ((0x000000UL lor x) = x) val () = assertloc ((0xFFFFFFUL land x) = x) // val x = 0x12345678ULL val () = assertloc ((x lor x) = x) val () = assertloc ((x lor ~x) = g0i2u(~1LL)) val () = assertloc ((x land x) = x) val () = assertloc ((x land ~x) = 0ULL) val () = assertloc ((x lxor x) = 0ULL) val () = assertloc ((0x00000000ULL lor x) = x) val () = assertloc ((0xFFFFFFFFULL land x) = x) // } // end of [val] (* ****** ****** *) val () = { // val _1si = $UNSAFE.cast2sint(1) val _2si = $UNSAFE.cast2sint(2) #define si2i g0int2int_sint_int // val () = assertloc ($UNSAFE.cast2int(si2i(_1si) + si2i(_2si)) = 3) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val rep = g0int2string (1) val ((*void*)) = fprintln! (out, "rep(1) = ", rep) val ((*void*)) = strptr_free (rep) // val rep = g0int2string (~123456789) val ((*void*)) = fprintln! (out, "rep(-123456789) = ", rep) val ((*void*)) = strptr_free (rep) // val rep = g0int2string (987654321000000000L) val ((*void*)) = fprintln! (out, "rep(987654321000000000L) = ", rep) val ((*void*)) = strptr_free (rep) // val rep = g0int2string (987654321000000000LL) val ((*void*)) = fprintln! (out, "rep(987654321000000000LL) = ", rep) val ((*void*)) = strptr_free (rep) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_integer.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_matrix0.dats0000644000175000017500000000336113431250607023672 0ustar brandonbrandon(* ** for testing [libats/ML/matrix0] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/matrix0.sats" (* ****** ****** *) // staload _(*anon*) = "libats/ML/DATS/matrix0.dats" // (* ****** ****** *) val () = { // val nrow = i2sz(3) and ncol = i2sz(4) // val A_elt = matrix0_make_elt (nrow, ncol, 0) // val ((*void*)) = println! ("A_elt = ", A_elt) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val nrow = i2sz(3) val ncol = i2sz(4) val M_elt = matrix0_tabulate (nrow, ncol, lam (i, j) => sz2i(i+j)+1) val () = fprintln! (out, "M_elt = ", M_elt) // val () = fprintln! (out, "M_elt.nrow = ", M_elt.nrow()) val () = fprintln! (out, "M_elt.ncol = ", M_elt.ncol()) // var i: int and j: int val () = for (i := 0; i < 3; i := i+1) M_elt[i,0] := 0 val () = for (j := 0; j < 4; j := j+1) M_elt[0,j] := 0 // val () = fprintln! (out, "M_elt = ", M_elt) // val () = matrix0_iforeach (M_elt, lam (i, j, x) => x := 0) // val () = fprintln! (out, "M_elt = ", M_elt) // } (* end of [val] *) (* ****** ****** *) val () = { // val out = stdout_ref // val nrow = i2sz(4) val ncol = i2sz(4) val M_elt = matrix0_tabulate ( nrow , ncol , lam (i, j) => sz2i(i)-sz2i(j)) // val res = matrix0_foldleft (M_elt, 0, lam (res, x) => res + x) // val ((*void*)) = assertloc(res = 0) // val res = matrix0_ifoldleft ( M_elt , 0 (* initial value *) , lam (res, i, j, x) => res + sz2i(j)-sz2i(i)) // val ((*void*)) = assertloc(res = 0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_matrix0.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_funset.dats0000644000175000017500000000621713431250607023615 0ustar brandonbrandon(* ** for testing [libats/ML/funset] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: July, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/funset.sats" staload _(*anon*) = "libats/ML/DATS/funset.dats" staload _(*anon*) = "libats/DATS/funset_avltree.dats" (* ****** ****** *) val () = { // typedef T = int val out = stdout_ref // val xs = $list{T}(0, 1, 2, 3, 4, 3, 2, 1, 0) val set = funset_make_list (g0ofg1(xs)) // val () = assertloc (funset_size (set) = 5) // val () = assertloc (funset_is_member (set, 2)) val () = assertloc (funset_is_member (set, 3)) val () = assertloc (funset_is_member (set, 4)) val () = assertloc (funset_isnot_member (set, 5)) // val () = fprintln! (out, "set = ", set) // val () = assertloc (funset_equal (set, set)) val () = assertloc (funset_compare (set, set) = 0) val () = assertloc (funset_is_subset (set, set)) val () = assertloc (funset_is_supset (set, set)) // var set = set val-true = funset_remove (set, 1) val-true = funset_insert (set, 2) val-true = funset_remove (set, 3) val-true = funset_insert (set, 4) val-false = funset_remove (set, 5) val-false = funset_insert (set, 5) // } (* end of [val] *) (* ****** ****** *) val () = { // staload "libats/libc/SATS/stdlib.sats" // val N = 100000 // typedef T = int val out = stdout_ref // var xs1: set(T) = funset_nil () var xs2: set(T) = funset_nil () // local // fun loop (i: int, xs: &set(T) >> _): void = if i < N then ( ignoret(funset_insert (xs, g0f2i(N*drand48()))); loop (i+1, xs) ) else () // end of [if] // in (* in of [local] *) // val () = loop (0, xs1) val () = loop (0, xs2) // end (* end of [local] *) // val () = fprintln! (out, "|xs1| = ", funset_size (xs1)) val () = fprintln! (out, "|xs2| = ", funset_size (xs2)) // val-~Some_vt(x1_max) = funset_getmax_opt (xs1) val-~Some_vt(x2_max) = funset_getmax_opt (xs2) val () = fprintln! (out, "x1_max = ", x1_max) val () = fprintln! (out, "x2_max = ", x2_max) // val sgn = funset_compare (xs1, xs2) val () = fprintln! (out, "funset_compare (xs1, xs2) = ", sgn) val sgn = funset_compare (xs2, xs1) val () = fprintln! (out, "funset_compare (xs2, xs1) = ", sgn) // val xs12_u = funset_union (xs1, xs2) val () = fprintln! (out, "|xs12_u| = ", funset_size (xs12_u)) val xs12_i = funset_intersect (xs1, xs2) val () = fprintln! (out, "|xs12_i| = ", funset_size (xs12_i)) // val xs12_df = funset_differ (xs1, xs2) val () = fprintln! (out, "|xs12_df| = ", funset_size (xs12_df)) val xs21_df = funset_differ (xs2, xs1) val () = fprintln! (out, "|xs21_df| = ", funset_size (xs21_df)) // val-~Some_vt(x12_df_max) = funset_getmax_opt (xs12_df) val-~Some_vt(x21_df_max) = funset_getmax_opt (xs21_df) val () = fprintln! (out, "x12_df_max = ", x12_df_max) val () = fprintln! (out, "x21_df_max = ", x21_df_max) // val xs12_sdf = funset_symdiff (xs1, xs2) val () = fprintln! (out, "|xs12_sdf| = ", funset_size (xs12_sdf)) // } // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_funset.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_gprint.dats0000644000175000017500000000225113431250607023400 0ustar brandonbrandon(* ** For testing ** [prelude/gprint] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = { // // implement gprint$out<> ( // argless ) = stdout_ref // val () = gprint_int (0) val () = gprint_string (", ") val () = gprint_int (1) val () = gprint_string (", ") val () = gprint_int (2) val () = gprint_string (", ") val () = gprint_int (3) val () = gprint_newline () // } // end of [val] (* ****** ****** *) val () = { // implement gprint$out<> ( // argless ) = stderr_ref // val () = gprint_int (0) val () = gprint_string (", ") val () = gprint_int (1) val () = gprint_string (", ") val () = gprint_int (2) val () = gprint_string (", ") val () = gprint_int (3) val () = gprint_newline () // } // end of [val] (* ****** ****** *) val () = let // fun fpr ( out: FILEref, x: int ) : void = let // implement gprint$out<> () = out // in // gprint_string ("("); gprint_int (x); gprint_string (")") // end // end of [fpr] // val out = stderr_ref // in fpr(out, 0); fpr(out, 1); fpr(out, 2); fpr(out, 3); fprint_newline (out) end // end of [val] (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_gprint.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_fundeque_fngtree.dats0000644000175000017500000000206413431250607025243 0ustar brandonbrandon(* ** for testing [libats/fundeque_fngtree] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/SATS/fundeque_fngtree.sats" staload _(*anon*) = "libats/DATS/fundeque_fngtree.dats" // (* ****** ****** *) val () = { // typedef T = int // val out = stdout_ref // val Q0 = fundeque_nil{T}() val Q1 = fundeque_cons(1, Q0) val Q2 = fundeque_snoc(Q1, 2) val () = assertloc(fundeque_size(Q2) = 2) // val Q4 = fundeque_append(Q2, Q2) val () = assertloc(fundeque_size(Q4) = 4) // val Q6 = fundeque_append(Q2, Q4) val () = assertloc(fundeque_size(Q6) = 6) // val Q8 = fundeque_append(Q6, Q2) val () = assertloc(fundeque_size(Q8) = 8) // val () = assertloc(fundeque_get_atbeg(Q8) = 1) val () = assertloc(fundeque_get_atend(Q8) = 2) // val ((*void*)) = fprintln! (out, "Q8 = ", Q8) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_fundeque_fngtree.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/prelude_checkast.dats0000644000175000017500000000221613431250607023663 0ustar brandonbrandon(* ** for testing [prelude/checkast] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val () = { val x0 = (5): int val [i:int] x0 = ckastloc_gintLt(x0, 6) prval ((*void*)) = prop_verify{i <= 5}() } (* end of [val] *) (* ****** ****** *) val () = { val x0 = (5): int val [i:int] x0 = ckastloc_gintLte(x0, 5) prval ((*void*)) = prop_verify{i <= 5}() } (* end of [val] *) (* ****** ****** *) val () = { val x0 = (5): int val [i:int] x0 = ckastloc_gintGt(x0, 4) prval ((*void*)) = prop_verify{i >= 5}() } (* end of [val] *) (* ****** ****** *) val () = { val x0 = (5): int val [i:int] x0 = ckastloc_gintGte(x0, 5) prval ((*void*)) = prop_verify{i >= 5}() } (* end of [val] *) (* ****** ****** *) val () = { val x0 = (10): int val [i:int] x0 = ckastloc_gintBtw(x0, 10, 11) prval ((*void*)) = prop_verify{10 <= i && i < 11}() } (* end of [val] *) (* ****** ****** *) val () = { val x0 = (10): int val [i:int] x0 = ckastloc_gintBtwe(x0, 10, 11) prval ((*void*)) = prop_verify{10 <= i && i <= 11}() } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [prelude_checkast.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_ML_monad_maybe.dats0000644000175000017500000000366413431250607024567 0ustar brandonbrandon(* ** for testing [libats/ML/monad_maybe] *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/ML/SATS/monad_maybe.sats" staload _ = "libats/ML/DATS/monad_maybe.dats" (* ****** ****** *) val () = { // infix >>= macdef ret(x) = monad_return (,(x)) macdef >>= (x, f) = monad_bind (,(x), ,(f)) // val m0 = ret(1) >>= ( lam(x) => ret(10) >>= (lam(y) => ret(100) >>= (lam(z) => ret (x + y + z))) ) (* end of [val] *) // val () = fprintln! (stdout_ref, "m0(111) = ", m0) // } (* end of [val] *) (* ****** ****** *) val () = { // val m0 = monad_maybe_some (50) val m1 = monad_maybe_some (100) val m01_add = monad_bind2 (m0, m1, lam (x, y) => monad_return (x+y)) val m01_mul = monad_bind2 (m0, m1, lam (x, y) => monad_return (x*y)) // val () = fprintln! (stdout_ref, "m01_add = ", m01_add) val () = fprintln! (stdout_ref, "m01_mul = ", m01_mul) // } (* end of [val] *) (* ****** ****** *) // datatype expr = | Val of Int | Div of (expr, expr) // (* ****** ****** *) // macdef non() = monad_maybe_none() // macdef ret(x) = monad_return (,(x)) // infix >>= macdef >>= (x, f) = monad_bind (,(x), ,(f)) // (* ****** ****** *) fun idiv ( i1: int, i2: int ) : monad(int) = if i2 != 0 then ret(i1/i2) else non() (* ****** ****** *) fun eval(x0: expr): monad(int) = ( case+ x0 of | Val(i) => ret(i) | Div(x1, x2) => eval(x1) >>= (lam i1 => eval(x2) >>= (lam i2 => idiv(i1, i2))) ) (* end of [eval] *) (* ****** ****** *) // macdef V_(x) = Val(,(x)) // fun{} Div_(x: expr, y: expr): expr = Div(x, y) // overload / with Div_ // val ok = V_(1972) / V_(2) / V_(23) val err = V_(2) / ( V_(1) / (V_(2) / V_(3))) // val () = fprintln! (stdout_ref, "eval(ok) = ", eval(ok)) val () = fprintln! (stdout_ref, "eval(err) = ", eval(err)) // (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_ML_monad_maybe.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_funmap_list.dats0000644000175000017500000000470713431250607024244 0ustar brandonbrandon(* ** for testing [libats/funmap_list] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: June, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/SATS/funmap_list.sats" staload _(*anon*) = "libats/DATS/funmap_list.dats" (* ****** ****** *) val () = { // typedef key = int typedef itm = string typedef map = map (key, itm) // var res: itm? // var map = funmap_make_nil {key,itm} () // val ans = funmap_insert (map, 0, "a1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (funmap_size (map) = 1) // val ans = funmap_insert (map, 1, "b1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (funmap_size (map) = 2) // val ans = funmap_insert (map, 1, "b2", res) prval () = opt_clear (res) val () = assertloc (ans=true) // replaced val () = assertloc (funmap_size (map) = 2) // val-~Some_vt("a1") = funmap_search_opt (map, 0) val-~Some_vt("b2") = funmap_search_opt (map, 1) // val ans = funmap_insert (map, 2, "c1", res) prval () = opt_clear (res) val () = assertloc (not(ans)) // inserted val () = assertloc (funmap_size (map) = 3) // val () = assertloc (~funmap_remove (map, ~1)) // val-~Some_vt("a1") = funmap_takeout_opt (map, 0) val () = assertloc (funmap_size (map) = 2) val-~Some_vt("b2") = funmap_takeout_opt (map, 1) val () = assertloc (funmap_size (map) = 1) val-~Some_vt("c1") = funmap_takeout_opt (map, 2) val () = assertloc (funmap_size (map) = 0) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef key = int typedef itm = string typedef map = map (key, itm) // var map = funmap_make_nil {key,itm} () // val-~None_vt() = funmap_insert_opt (map, 0, "0") val-~None_vt() = funmap_insert_opt (map, 1, "1") val-~None_vt() = funmap_insert_opt (map, 2, "2") val-~None_vt() = funmap_insert_opt (map, 3, "3") val-~None_vt() = funmap_insert_opt (map, 4, "4") // val () = assertloc (funmap_size (map) = 5) // val () = fprintln! (stdout_ref, "map = ", map) // val-~Some_vt("0") = funmap_takeout_opt (map, 0) val-~Some_vt("1") = funmap_takeout_opt (map, 1) val-~Some_vt("2") = funmap_takeout_opt (map, 2) val-~Some_vt("3") = funmap_takeout_opt (map, 3) val-~Some_vt("4") = funmap_takeout_opt (map, 4) // val () = assertloc (funmap_size (map) = 0) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_funmap_list.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/ATSLIB/libats_sllist.dats0000644000175000017500000000476413431250607023240 0ustar brandonbrandon(* ** for testing [libats/sllist] *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxi AT cs DOT bu DOT edu // Start time: March, 2013 // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // staload "libats/SATS/sllist.sats" // staload _ = "libats/DATS/gnode.dats" staload _ = "libats/DATS/sllist.dats" // (* ****** ****** *) #define :: sllist_cons #define cons sllist_cons (* ****** ****** *) val () = { // typedef T = int // val out = stdout_ref // val xs1 = sllist_nil{T}() val xs1 = 1 :: 2 :: xs1 val xs2 = sllist_nil{T}() val xs2 = 3 :: 4 :: 5 :: xs2 // val xs = sllist_append (xs1, xs2) // val () = assertloc (1 = xs[0]) val () = assertloc (2 = xs[1]) val () = assertloc (3 = xs[2]) val () = assertloc (4 = xs[3]) val () = assertloc (5 = xs[4]) // val () = fprintln! (out, xs) val () = assertloc (length (xs) = 5) // val rxs = sllist_reverse (xs) // val () = fprintln! (out, rxs) val () = assertloc (length (rxs) = 5) // val () = sllist_free (rxs) // } // end of [val] (* ****** ****** *) val () = { // typedef T = int // val out = stdout_ref // val xs = sllist_nil{T}() val xs = 1 :: 2 :: 3 :: 4 :: 5 :: xs val () = fprintln! (out, "xs = ", xs) // implement sllist_map$fopr (x) = 2 * x - 1 val ys = sllist_map (xs) val () = fprintln! (out, "ys = ", ys) // val () = sllist_free (xs) val () = sllist_free (ys) // } (* end of [val] *) (* ****** ****** *) val () = { // typedef T = int // val out = stdout_ref // val zs = sllist_nil{T}() val zs = sllist_insert_at (zs, 0, 0) val zs = sllist_insert_at (zs, 1, 1) val zs = sllist_insert_at (zs, 2, 2) val zs = sllist_insert_at (zs, 3, 3) val zs = sllist_insert_at (zs, 4, 4) // val () = fprintln! (out, "zs = ", zs) // var zs = zs val () = assertloc (4 = sllist_takeout_at (zs, 4)) val () = assertloc (3 = sllist_takeout_at (zs, 3)) val () = assertloc (2 = sllist_takeout_at (zs, 2)) val () = assertloc (1 = sllist_takeout_at (zs, 1)) val () = assertloc (0 = sllist_takeout_at (zs, 0)) // prval () = sllist_free_nil (zs) // } // end of [val] (* ****** ****** *) val () = { // typedef T = int // val out = stdout_ref // val xs = sllist_nil{T}() val xs = sllist_snoc (xs, 0) val xs = sllist_snoc (xs, 1) val xs = sllist_snoc (xs, 2) val () = fprintln! (out, "xs = ", xs) // var xs = xs val-(2) = sllist_unsnoc (xs) val-(1) = sllist_unsnoc (xs) val-(0) = sllist_unsnoc (xs) // val () = sllist_free (xs) // } (* end of [val] *) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [libats_sllist.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/0000755000175000017500000000000013431250607017415 5ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/strprefix.dats0000644000175000017500000000370013431250607022320 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Finding the max common prefix of // two given strings // // Author: Hongwei Xi (February 22, 2013) // (* ****** ****** *) (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) (* // // HX-2014-02-16: see [prelude/string] // fun string_tail {n:int | n > 0} (str: string n): string (n-1) = $UN.cast{string(n-1)} (ptr_succ (string2ptr (str))) // end of [string_tail] *) (* ****** ****** *) extern fun strprefix {n1,n2:int} (string (n1), string (n2)): sizeLte (min(n1,n2)) // end of [strprefix] (* ****** ****** *) #define CNUL '\000' implement strprefix {n1,n2} (str1, str2) = let // fun loop {n1,n2:nat} .. ( str1: string n1, str2: string n2, i: size_t ) : size_t = let val (pf1 | c1) = string_test_at (str1, 0) in // if c1 != CNUL then let val (pf2 | c2) = string_test_at (str2, 0) in // if c2 != CNUL then ( if c1 = c2 then let prval string_index_p_neqz () = pf1 prval string_index_p_neqz () = pf2 in loop (str1.tail(), str2.tail(), succ(i)) end else (i) // end of [if] ) else (i) // end else (i) // end // end of [loop] // prval () = lemma_string_param (str1) prval () = lemma_string_param (str2) // in $UN.cast {sizeLte(min(n1,n2))} (loop (str1, str2, g1int2uint(0))) end // end of [strprefix] (* ****** ****** *) implement main0 () = { val str1 = "abcde" val str2 = "abcfgh" val ind = strprefix (str1, str2) val () = println! ("strprefix(", "\"", str1, "\"", ", ", "\"", str2, "\"", ") = ", ind) val () = assertloc (ind = 3) } // end of [main0] (* ****** ****** *) (* end of [strprefix.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/areverse.dats0000644000175000017500000000404713431250607022113 0ustar brandonbrandon(* ****** ****** *) // // Reversing the content of an array. // This is a simple and convincing example for // illustrating some benefits of dependent types. // // Author: Hongwei Xi (Spring, 2009) // Author: Hongwei Xi (May, 2012) // porting to ATS2 // (* ****** ****** *) // #include "share/atspre_define.hats" #include "share/atspre_staload.hats" // (* ****** ****** *) fun{ a:t@ype } revarr {n:nat} .<>. ( A: &array (INV(a), n), n: size_t n ) : void = let // fun loop { i,j:nat | i <= j+1; i+j==n-1 } .. ( A: &array (a, n), i: size_t i, j: size_t j ) : void = if i < j then let val () = A.[i] :=: A.[j] in loop (A, succ i, pred j) end // end of [if] // in if n > 0 then loop (A, g1i2u(0), pred (n)) end // end of [revarr] (* ****** ****** *) // #staload UN = "prelude/SATS/unsafe.sats" // #staload STDLIB = "libats/libc/SATS/stdlib.sats" // (* ****** ****** *) // #define MYTESTING_targetloc "\ $PATSHOME/contrib\ /atscntrb/atscntrb-hx-mytesting" // (* ****** ****** *) // #staload RG = "{$MYTESTING}/SATS/randgen.sats" #staload _(*RG*) = "{$MYTESTING}/DATS/randgen.dats" // (* ****** ****** *) // %{^ // #include // extern void srand48 (long int) ; // in [stdlib.h] extern double drand48 (/*void*/) ; // in [stdlib.h] // atsvoid_t0ype srand48_with_time () { srand48(time(0)) ; return ; } %} extern fun srand48_with_time (): void = "ext#" // (* ****** ****** *) typedef T = double (* ****** ****** *) implement $RG.randgen_val () = $STDLIB.drand48() (* ****** ****** *) implement main0 () = { // #define N 10 // val asz = g1i2u (N) // val () = srand48_with_time () val A = $RG.randgen_arrayptr (asz) // val () = gprint_string "A(bef) = " val () = gprint_arrayptr (A, asz) val () = gprint_newline () // val p = ptrcast (A) prval pfarr = arrayptr_takeout (A) val () = revarr (!p, asz) prval () = arrayptr_addback (pfarr | A) // val () = gprint_string "A(aft) = " val () = gprint_arrayptr (A, asz) val () = gprint_newline () // val () = arrayptr_free (A) // } (* end of [main] *) (* ****** ****** *) (* end of [areverse.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/acker3.dats0000644000175000017500000000116113431250607021441 0ustar brandonbrandon// // Implementing Ackermann's function // Author: Hongwei Xi (May 10, 2013) // (* ****** ****** *) // // HX: this one involves run-time closure creation // (* ****** ****** *) staload "prelude/DATS/integer.dats" (* ****** ****** *) fun acker (m: int) (n: int): int = let in // if m <= 0 then n+1 else ( if n <= 0 then acker (m-1) (1) else acker (m-1) (acker (m) (n-1)) // end of [if] ) // end of [if] // end // end of [acker] (* ****** ****** *) implement main0 () = let // val () = assertloc (acker(3)(3) = 61) // in // nothing end // end of [main0] (* ****** ****** *) (* end of [acker3.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/atof.dats0000644000175000017500000000406513431250607021230 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Converting a string to a double // // Author: Hongwei Xi (February 22, 2013) // (* ****** ****** *) (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) macdef double = g0int2float_int_double (* ****** ****** *) extern fun atof (str: string): double extern fun atof_frac (str: string): double (* ****** ****** *) implement atof (str) = let // typedef tenv = double // val str = g1ofg0_string (str) // var env: tenv = 0.0 implement{env} string_foreach$cont (c, env) = isdigit (c) implement string_foreach$fwork (c, env) = env := 10 * env + double(c - '0') val n = string_foreach_env (str, env) // val str2 = $UN.cast{string}(ptr_add(string2ptr(str), n)) // in env + atof_frac (str2) end // end of [atof] (* ****** ****** *) implement atof_frac (str) = let // fun loop ( p: ptr, num: double, den: double ) : double = let val c = $UN.ptr0_get (p) in // if isdigit (c) then loop (ptr_succ (p), 10 * num + double(c - '0'), 10 * den) else (num / den) // end of [if] // end // end of [loop] // val p0 = string2ptr (str) val c0 = $UN.ptr0_get (p0) // in // if c0 = '.' then loop (ptr_succ (p0), 0.0, 1.0) else 0.0 // end // end of [atof_frac] (* ****** ****** *) fn atof_usage (cmd: string): void = prerrln! ("Usage: ", cmd, " [float]") // end of [atof_usage] (* ****** ****** *) implement main0 ( argc, argv ) = { (* val () = if (argc <= 1) then atof_usage (argv[0]) // end of [val] val () = assertloc (argc >= 2) *) val rep = (if argc >= 2 then argv[1] else "3.1416"): string // end of [va val () = println! ("atof(\"", rep, "\") = ", atof(rep)) // } // end of [main0] (* ****** ****** *) (* end of [atof.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/listfuns.dats0000644000175000017500000000236313431250607022145 0ustar brandonbrandon(* ****** ****** *) // // Some common list-functions // (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxi AT gmail DOT com // Start time: June, 2013 // (* ****** ****** *) // // HX-2013-06-19: // For the first time, the ATS2 compiler (ATS/Postiats) // is able to properly handle case-expressions, generating // *highly* optimized code. Voila! // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) fun fromto (l: int, r: int): List0 (int) = ( if l < r then cons{int}(l, fromto (l+1, r)) else nil () ) // end of [fromto] (* ****** ****** *) fun{a:t0p} length (xs: List0 (INV(a))): int = ( case+ xs of | cons (_, xs) => 1 + length (xs) | nil () => 0 ) // end of [length] (* ****** ****** *) fun zip{n:int} ( xs: list (int, n) , ys: list (int, n) ) : list ((int, int), n) = let in // case+ (xs, ys) of | (cons (x, xs), cons (y, ys)) => cons{(int,int)}((x, y), zip (xs, ys)) | (nil (), nil ()) => nil () // end // end of [zip] (* ****** ****** *) implement main0 () = { // #define N 10 // val out = stdout_ref val xs = fromto (0, N) val () = assertloc (length (xs) = N) val xxs = zip (xs, xs) val () = assertloc (length (xxs) = N) // } // end of [main0] (* ****** ****** *) (* end of [listfuns.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/linenmbr.dats0000644000175000017500000000256413431250607022107 0ustar brandonbrandon(* ****** ****** *) // // Numbering input lines // // Author: Hongwei Xi (January, 2013) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload "libats/ML/SATS/filebas.sats" (* ****** ****** *) staload _ = "libats/ML/DATS/list0.dats" staload _ = "libats/ML/DATS/filebas.dats" (* ****** ****** *) (* dynload "prelude/DATS/filebas.dats" dynload "libats/ML/DATS/filebas.dats" *) (* ****** ****** *) implement main () = let // fun loop ( xs: list0 (string), n: int ) : void = let in // case+ xs of | list0_cons (x, xs) => let val x = g1ofg0 (x) val islast = list0_is_nil (xs) val hasmore = ( if islast then string_isnot_empty (x) else true // end of [if] ) : bool // end of [val] val () = if hasmore then { val () = if n > 0 then print_char ('\n') val () = print_int (n+1) val () = print_string (":\t") val () = print_string (x) } // end of [if] // end of [val] in loop (xs, n+1) end // end of [list0_cons] | list0_nil () => () // end // end of [loop] // val lines = fileref_get_lines_stringlst (stdin_ref) val () = loop (lines, 0) // in 0(*normal*) end // end of [main] (* ****** ****** *) (* end of [linenmbr.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/intrange.dats0000644000175000017500000000260413431250607022103 0ustar brandonbrandon(* ****** ****** *) // // An implementation style that is often // dubbed tail-recursion-modulo-allocation // // Author: Hongwei Xi (August 2007) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) fun intrange ( m: int, n: int ) : List0_vt(int) = let // vtypedef res = List0_vt(int) // fun loop ( m: int, n: int, res: &res? >> res ) : void = if m < n then let // val () = res := list_vt_cons{int}{0}(m, _) // end of [val] // val list_vt_cons (_, res1) = res // val () = loop (m+1, n, res1) prval ((*folded*)) = fold@ (res) in // nothing end else (res := list_vt_nil ()) // end of [if] // var res: res // in let val () = loop (m, n, res) in res end end // end of [intrange] (* ****** ****** *) // staload "libats/SATS/sllist.sats" // staload _ = "libats/DATS/gnode.dats" staload _ = "libats/DATS/sllist.dats" // (* ****** ****** *) implement main ( // argless ) = 0 where { #define M 0 #define N 10 val out = stdout_ref // typedef T = int // val xs = intrange (M, N) val xs = $UN.castvwtp0{Sllist(T)}(xs) // val ln = sllist_length (xs) val () = assertloc (ln = N-M) val () = fprint_sllist (out, xs) val () = fprint_newline (out) // val () = sllist_free (xs) // } // end of [main] (* ****** ****** *) (* end of [intrange.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/sieve_lazy.dats0000644000175000017500000000261413431250607022447 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* // Lazy-evaluation: // Erathosthene's sieve for primes *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start time: September, 2007 // (* ****** ****** *) (* ** Ported to ATS2 by HX-2013-09 *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #define :: stream_cons #define cons stream_cons #define nil stream_nil (* ****** ****** *) // fun from{n:int} (n: int n) : stream (intGte(n)) = $delay (cons{intGte(n)}(n, from (n+1))) // (* ****** ****** *) typedef N2 = intGte(2) (* ****** ****** *) fun sieve ( ns: stream N2 ) : stream (N2) = $delay ( let val-cons(n, ns) = !ns in cons{N2}(n, sieve (stream_filter_cloref (ns, lam x => g1int_nmod(x, n) > 0))) end : stream_con (N2) ) // end of [sieve] // val primes: stream (N2) = sieve (from(2)) // macdef prime_get (n) = stream_nth_exn (primes, ,(n)) // implement main0 () = begin // println! ("prime 1000 = ", prime_get (1000)) ; // = 7927 (* println! ("prime 5000 = ", prime_get (5000)) ; // = 48619 println! ("prime 10000 = ", prime_get (10000)) ; // = 104743 *) // end // end of [main0] (* ****** ****** *) (* end of [sieve_lazy.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fib2.dats0000644000175000017500000000134513431250607021117 0ustar brandonbrandon// // Computing the Fibonacci numbers // // Author: Hongwei Xi (January 2013) // (* ****** ****** *) // staload _ = "prelude/DATS/integer.dats" // (* ****** ****** *) typedef T = int typedef T2 = (T, T) fun fib (n: int): T = let // fun loop ( xx: &T2, n: int ) : void = let in if n > 0 then let val x0 = xx.0 and x1 = xx.1 val () = xx.0 := x1 and () = xx.1 := x0+x1 in loop (xx, n-1) end // end of [if] end // end of [loop] // var xx: T2 = (0, 1) val () = loop (xx, n) // in xx.0 end // end of [fib] (* ****** ****** *) implement main0 () = { #define N 10 val () = assertloc (fib(N) = 55) (* val () = println! ("fib(", N, ") = ", fib (10)) *) } // end of [main0] (* ****** ****** *) (* end of [fib2.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/sieve_llazy.dats0000644000175000017500000000406313431250607022623 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) (* // Linear Lazy-evaluation: // Erathosthene's sieve for primes *) (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: hwxiATcsDOTbuDOTedu) // Start Time: February, 2008 // (* ****** ****** *) (* ** Ported to ATS2 by HX-2013-09 *) (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #define nil stream_vt_nil #define :: stream_vt_cons #define cons stream_vt_cons (* ****** ****** *) fun{a:t0p} stream_vt_nth ( xs0: stream_vt a, i: intGte(0) ) : a = let val xs0_con = !xs0 in // case+ xs0_con of | ~(x :: xs) => ( if i = 0 then (~xs; x) else stream_vt_nth (xs, i-1) // end of [if] ) // end of [::] | ~nil ((*void*)) => $raise StreamSubscriptExn(*void*) end // end of [stream_vt_nth] (* ****** ****** *) fun from_con{n:int} (n: int n) : stream_vt_con (intGte n) = stream_vt_cons{intGte(n)}(n, from (n+1)) and from{n:int} (n: int n) : stream_vt (intGte n) = $ldelay (from_con n) (* ****** ****** *) typedef N2 = intGte(2) (* ****** ****** *) fun sieve_con (ns: stream_vt N2) : stream_vt_con (N2) = let val ns_con = !ns val-@cons(n, ns2) = ns_con; val p = n val ps = sieve ( stream_vt_filter_cloptr (ns2, lam x => g1int_nmod(x, p) > 0) ) (* end of [val] *) val () = (ns2 := ps) in fold@ ns_con; ns_con end // end of [sieve_con] and sieve (ns: stream_vt N2): stream_vt (N2) = $ldelay (sieve_con ns, ~ns) // end of [sieve] (* ****** ****** *) fn primes (): stream_vt N2 = sieve (from 2) fn prime_get (n: Nat): Nat = stream_vt_nth (primes (), n) (* ****** ****** *) implement main0 () = begin // println! ("prime(1000) = ", prime_get (1000)) ; // = 7927 (* println! ("prime(5000) = ", prime_get (5000)) ; // = 48619 println! ("prime(10000) = ", prime_get (10000)) ; // = 104743 *) // end // end of [main0] (* ****** ****** *) (* end of [sieve_llazy.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/Makefile0000644000175000017500000001221213431250607021053 0ustar brandonbrandon# # A simple Makefile # for testing doc/EXAMPLE/INTRO # ###### CCOMP=gcc ###### include $(PATSHOME)/share/atsmake-pre.mk ###### MYTARGET=MYTARGET MYCCRULE=MYCCRULE ###### include $(PATSHOME)/share/atsmake-post.mk ###### PATSCCOMP=\ $(CCOMP) -D_XOPEN_SOURCE -I${PATSHOMEQ} -I${PATSHOMEQ}/ccomp/runtime ###### export PATSCCOMP ###### all:: acker1 all:: acker2 all:: acker3 all:: acker4 all:: areverse all:: atof all:: atoi all:: bintree all:: f91 all:: fact1 all:: fact2 all:: fact3 all:: fact_uninterp all:: fcopy all:: fcopy2 all:: fib1 all:: fib2 all:: fibmem all:: fib_lazy all:: fib_llazy all:: fprintlst2 all:: fprtuple all:: gfact all:: hello all:: intecho all:: intrange all:: linenmbr all:: listfuns all:: listpermute all:: ordset all:: sieve_lazy all:: sieve_llazy all:: staref all:: strprefix all:: tally ###### regress:: acker1 ; ./acker1 regress:: acker2 ; ./acker2 regress:: acker3 ; ./acker3 regress:: acker4 ; ./acker4 regress:: areverse ; ./areverse regress:: atof ; ./atof regress:: atoi ; ./atoi regress:: bintree ; ./bintree regress:: f91 ; ./f91 regress:: fact1 ; ./fact1 10 regress:: fact2 ; ./fact2 regress:: fact3 ; ./fact3 regress:: fact_uninterp ; ./fact_uninterp #regress:: fcopy ; ./fcopy #regress:: fcopy2 ; ./fcopy2 regress:: fib1 ; ./fib1 regress:: fib2 ; ./fib2 regress:: fibmem ; ./fibmem regress:: fib_lazy ; ./fib_lazy regress:: fib_llazy ; ./fib_llazy regress:: fprintlst2 ; ./fprintlst2 regress:: fprtuple ; ./fprtuple regress:: gfact ; ./gfact regress:: hello ; ./hello #regress:: intecho ; ./intecho regress:: intrange ; ./intrange #regress:: linenmbr ; ./linenmbr regress:: listfuns ; ./listfuns regress:: listpermute ; ./listpermute regress:: ordset ; ./ordset regress:: sieve_lazy ; ./sieve_lazy regress:: sieve_llazy ; ./sieve_llazy regress:: staref ; ./staref regress:: strprefix ; ./strprefix regress:: tally ; ./tally ###### cleanall:: ; $(RMF) acker1 cleanall:: ; $(RMF) acker2 cleanall:: ; $(RMF) acker3 cleanall:: ; $(RMF) acker4 cleanall:: ; $(RMF) areverse cleanall:: ; $(RMF) atof cleanall:: ; $(RMF) atoi cleanall:: ; $(RMF) bintree cleanall:: ; $(RMF) f91 cleanall:: ; $(RMF) fact1 cleanall:: ; $(RMF) fact2 cleanall:: ; $(RMF) fact3 cleanall:: ; $(RMF) fact_uninterp cleanall:: ; $(RMF) fcopy cleanall:: ; $(RMF) fcopy2 cleanall:: ; $(RMF) fib1 cleanall:: ; $(RMF) fib2 cleanall:: ; $(RMF) fibmem cleanall:: ; $(RMF) fib_lazy cleanall:: ; $(RMF) fib_llazy cleanall:: ; $(RMF) fprintlst2 cleanall:: ; $(RMF) fprtuple cleanall:: ; $(RMF) gfact cleanall:: ; $(RMF) hello cleanall:: ; $(RMF) intecho cleanall:: ; $(RMF) intrange cleanall:: ; $(RMF) linenmbr cleanall:: ; $(RMF) listfuns cleanall:: ; $(RMF) listpermute cleanall:: ; $(RMF) ordset cleanall:: ; $(RMF) sieve_lazy cleanall:: ; $(RMF) sieve_llazy cleanall:: ; $(RMF) staref cleanall:: ; $(RMF) strprefix cleanall:: ; $(RMF) tally ###### testall:: all testall:: regress testall:: cleanall ###### acker1: acker1.dats ; $(PATSCC) -o $@ $< acker2: acker2.dats ; $(PATSCC) -o $@ $< acker3: acker3.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< acker4: acker4.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### areverse: areverse.dats ; \ $(PATSCC) -D_ATS_EXCEPTION_NONE -DATS_MEMALLOC_LIBC -o $@ $< ###### atof: acker1.dats ; $(PATSCC) -o $@ $< atoi: acker1.dats ; $(PATSCC) -o $@ $< ###### bintree: bintree.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### f91: f91.dats ; $(PATSCC) -o $@ $< ###### # fact1: fact1.dats ; $(PATSCC) -o $@ $< fact2: fact2.dats ; $(PATSCC) -o $@ $< fact3: fact3.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< # fact_uninterp: fact_uninterp.dats ; $(PATSCC) -o $@ $< # ###### fcopy: fcopy.dats ; $(PATSCC) -o $@ $< fcopy2: fcopy2.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< myatslib.dats ###### fib1: fib1.dats ; $(PATSCC) -o $@ $< fib2: fib2.dats ; $(PATSCC) -o $@ $< fibmem: fibmem.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### fib_lazy: fib_lazy.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< fib_llazy: fib_llazy.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### fprintlst2: fprintlst2.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### fprtuple: fprtuple.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### gfact: gfact.dats ; $(PATSCC) -o $@ $< ###### hello: hello.dats ; $(PATSCC) -o $@ $< ###### intecho: intecho.dats ; $(PATSCC) -o $@ $< ###### intrange: intrange.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### linenmbr: linenmbr.dats ; \ $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< myatslib.dats ###### listfuns: listfuns.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### listpermute: listpermute.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### ordset: ordset.dats ; $(PATSCC) -DATS_MEMALLOC_LIBC -o $@ $< ###### sieve_lazy: sieve_lazy.dats ; \ $(PATSCC) -D_GNU_SOURCE -DATS_MEMALLOC_GCBDW -O2 -o $@ $< -lgc sieve_llazy: sieve_llazy_dats.c ; \ $(PATSCC) -cleanaft -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -O2 -o $@ $< sieve_llazy_dats.c: sieve_llazy.dats ; $(PATSCC) -ccats $< ###### staref: staref.dats ; $(PATSCC) -o $@ $< ###### strprefix: strprefix.dats ; $(PATSCC) -o $@ $< ###### tally: tally.dats ; $(PATSCC) -D_ATS_EXCEPTION_NONE -o $@ $< ###### cleanats:: ; $(RMF) *_?ats.c ###### end of [Makefile] ###### ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fib_llazy.dats0000644000175000017500000000257413431250607022255 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Lazy-evaluation // (* ****** ****** *) (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) #define nil stream_vt_nil #define cons stream_vt_cons #define :: stream_vt_cons (* ****** ****** *) fun fib0(): stream_vt(int) = $ldelay(stream_vt_cons{int}(0, fib1())) and fib1(): stream_vt(int) = $ldelay(stream_vt_cons{int}(1, fib2())) and fib2(): stream_vt(int) = stream_vt_map2_fun (fib0(), fib1(), lam (x0, x1) => x0 + x1) (* ****** ****** *) fun{a:t0p} stream_vt_nth ( xs0: stream_vt a, i: intGte(0) ) : a = let val xs0_con = !xs0 in // case+ xs0_con of | ~(x :: xs) => ( if i = 0 then (~xs; x) else stream_vt_nth (xs, i-1) // end of [if] ) // end of [::] | ~nil ((*void*)) => $raise StreamSubscriptExn(*void*) end // end of [stream_vt_nth] (* ****** ****** *) implement main0 () = ( println! ("Fibonacci(10) = ", stream_vt_nth (fib0(), 10)) ; // = 55 println! ("Fibonacci(20) = ", stream_vt_nth (fib0(), 20)) ; // = 6765 ) // end of [main0] (* ****** ****** *) (* end of [fib_llazy.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/gfact.dats0000644000175000017500000000173513431250607021364 0ustar brandonbrandon(* ****** ****** *) // // A gnumber-based implementation // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Time: the 30th of March, 2013 // (* ****** ****** *) staload INT = "prelude/DATS/integer.dats" staload FLOAT = "prelude/DATS/float.dats" (* ****** ****** *) staload _ = "prelude/DATS/gorder.dats" staload _ = "prelude/DATS/gnumber.dats" (* ****** ****** *) extern fun{a:t@ype} gfact (x: int): a (* ****** ****** *) // (* fun fact (x: int): int = if x > 0 then x * fact (x-1) else 1 *) // implement {a}(*tmp*) gfact (x) = let // macdef gint = gnumber_int // overload > with ggt_val_int // overload * with gmul_int_val // in // if x > 0 then x * gfact (x - 1) else gint(1) // end // end of [gfact] // (* ****** ****** *) implement main0 () = { // val out = stdout_ref val () = fprintln! (out, "fact(12) = ", gfact (12)) val () = fprintln! (out, "fact(12) = ", gfact (12)) // } // end of [main0] (* ****** ****** *) (* end of [gfact.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fprtuple.dats0000644000175000017500000000154713431250607022142 0ustar brandonbrandon(* ****** ****** *) // // Author: Hongwei Xi // Start time: Feb of 2013 // Authoremail: gmhwxi@gmail.com // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "prelude/DATS/tuple.dats" (* ****** ****** *) implement fprint_tup$beg<> (out) = fprint_string (out, "(") implement fprint_tup$end<> (out) = fprint_string (out, ")") implement fprint_tup$sep<> (out) = fprint_string (out, ", ") (* ****** ****** *) implement main0 () = { // val out = stdout_ref val () = fprint_tupval2 (out, @(0, 'a')) val () = fprint_newline (out) val () = fprint_tupval2 (out, @(0, (true, 'a'))) val () = fprint_newline (out) val () = fprint_tupval3 (out, @(0, (true, 'a'), "hello!")) val () = fprint_newline (out) // } (* end of [main0] *) (* ****** ****** *) (* end of [fprtuple.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/tally.dats0000644000175000017500000000460313431250607021422 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Illustrating tail-recursion // // Author: Hongwei Xi (December 31, 2012) // (* ****** ****** *) (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) // staload "prelude/lmacrodef.hats" // (* ****** ****** *) // staload INT = "prelude/DATS/integer.dats" staload LINT = "prelude/DATS/integer_long.dats" staload INTRANGE = "prelude/DATS/intrange.dats" // (* ****** ****** *) fun tally (n: int): int = let // fun loop (n: int, res: int): int = if n > 0 then loop (n-1, res + n) else res // in loop (n, 0) end // end of [tally] (* ****** ****** *) fun tally2 (n: int): ullint = let // var n: int = n var i: int // uninitialized var res: ullint = 0ull val () = for (i := 1 ; i <= n ; i :=+ 1) res :=+ g0i2u(i) // in res end // end of [tally2] (* ****** ****** *) fun tally3 ( n: int ) : ullint = res where { // var n: int = n var i: int = 1 var res: ullint = 0ull // val () = while (true) ( if i > n then $break else (res :=+ g0i2u(i); i :=+ 1) // end of [if] ) (* end of [val] *) // } // end of [tally3] (* ****** ****** *) // // HX: this one makes use of closure // fun tally4 ( n: int ) : ullint = let // fun loop ( i: int, res: ullint ) : ullint = if i <= n then loop (i+1, res + g0i2u(i)) else res // in loop (0, 0ull) end // end of [tally4] (* ****** ****** *) fun tally5 ( n: int ) : int = res where { // var res = 0: int prval pf_res = view@ (res) // implement{env} intrange_foreach$fwork (i, env) = let // prval (pf_res, fpf) = decode($vcopyenv_v(pf_res)) // val () = res := res + i // prval ((*returned*)) = fpf(pf_res) // in // nothing end // val _ = intrange_foreach(1, n+1) // prval ((*returned*)) = view@(res) := pf_res // } (* end of [tally5] *) (* ****** ****** *) implement main () = let // #define N 1000 // val () = assertloc(tally (N) = N * (N+1) / 2) val () = assertloc(tally2 (N) = N * (N+1) / 2) val () = assertloc(tally3 (N) = N * (N+1) / 2) val () = assertloc(tally4 (N) = N * (N+1) / 2) val () = assertloc(tally5 (N) = N * (N+1) / 2) // val () = println!("Testing for [tally] is done!") // in 0(*normalexit*) end // end of [main] (* ****** ****** *) (* end of [tally.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/bintree.dats0000644000175000017500000000354613431250607021732 0ustar brandonbrandon(* ****** ****** *) // // Implementation of binary trees // // Author: Hongwei Xi (gmhwxi AT gmail.com) // (* ****** ****** *) staload _(*anon*) = "prelude/DATS/integer.dats" (* ****** ****** *) (* ** [datavtype] for [dataviewtype] *) datavtype bintree (a:t@ype) = | BTnil of () | BTcons of (bintree a, a, bintree a) // end of [bintree] (* ****** ****** *) extern fun{a:t@ype} bintree_size (bt: !bintree a): int implement{a} bintree_size (bt) = let macdef size (bt) = bintree_size ,(bt) in // case+ bt of | BTnil () => 0 | BTcons (bt1, _, bt2) => 1 + (size (bt1) + size (bt2)) // end // end of [bintree_size] (* ****** ****** *) extern fun{a:t@ype} bintree_height (bt: !bintree a): int implement{a} bintree_height (bt) = let macdef height (bt) = bintree_height ,(bt) in // case+ bt of | BTnil () => 0 | BTcons (bt1, _, bt2) => 1 + max (height (bt1), height (bt2)) // end // end of [bintree_height] (* ****** ****** *) extern fun{a:t@ype} bintree_copy (bt: !bintree a): bintree a implement{a} bintree_copy (bt) = let macdef copy (bt) = bintree_copy ,(bt) in // case+ bt of | BTnil () => BTnil{a}() | BTcons (bt1, x, bt2) => BTcons (copy(bt1), x, copy(bt2)) // end // end of [bintree_copy] (* ****** ****** *) extern fun{a:t@ype} bintree_free (bt: bintree a): void implement{a} bintree_free (bt) = let macdef free (bt) = bintree_free ,(bt) in // case+ bt of | ~BTnil () => () | ~BTcons (bt1, _, bt2) => (free bt1; free bt2) // end // end of [bintree_free] (* ****** ****** *) implement main0 () = { // typedef T = int // val bt0 = BTnil{T}() val bt0_2 = bintree_copy (bt0) val bt1 = BTcons{T}(bt0, 1, bt0_2) val bt1_2 = bintree_copy (bt1) val bt2 = BTcons{T}(bt1, 2, bt1_2) // val () = assertloc (bintree_size(bt2) = 3) val () = assertloc (bintree_height(bt2) = 2) // val () = bintree_free (bt2) // } // end of [main0] (* ****** ****** *) (* end of [bintree.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/staref.dats0000644000175000017500000000157413431250607021565 0ustar brandonbrandon(* ****** ****** *) // // Statically allocated reference // // Author: Hongwei Xi (June, 2013) // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) local var _count_: int = 0 // it is statically allocated val theCount = ref_make_viewptr{int}(view@(_count_) | addr@(_count_)) // end of [val] in (* in of [local] *) fun theCount_get (): int = !theCount fun theCount_inc (): void = !theCount := !theCount + 1 fun theCount_getinc (): int = let val n = !theCount; val () = !theCount := n + 1 in (n) end // end of [theCount_getind] fun theCount_reset (): void = !theCount := 0 end // end of [local] (* ****** ****** *) implement main0 () = { // val () = assertloc (theCount_getinc () = 0) val () = assertloc (theCount_getinc () = 1) val () = assertloc (theCount_getinc () = 2) // } // end of [main0] (* ****** ****** *) (* end of [staref.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fibmem.dats0000644000175000017500000000421113431250607021527 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Fibonacci function via memoization // // Author: Hongwei Xi (February 21, 2013) // (* ****** ****** *) (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) // // How to test: // ./fibmem // How to compile: // atscc -o fibmem fibmem.dats // (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) (* // // HX-2013-04: // this is needed before closure compilation // becomes fully functioning // implement{a} arrayptr_make_elt {n} (asz, x0) = let // val (pf, pfgc | p0) = array_ptr_alloc (asz) // var i: size_t var p: ptr = p0 val () = $effmask_ntm ( // for ( i := i2sz(0); i < asz; i := succ(i) ) ( $UN.ptr0_set (p, x0); p := ptr_succ(p) ) // end of [for] // ) // end of [val] // in $UN.castvwtp0{arrayptr(a,n)}((pf, pfgc | p0)) end // end of [arrayptr_make_elt] *) (* ****** ****** *) static fun fib {n:nat} (n: int n): int = "sta#fib" extern fun fibmem {m,n:nat | m > n} (tbl: &(@[int][m]) >> _, n: int n): int = "ext#fibmem" // end of [fibmem] (* ****** ****** *) implement fibmem (tbl, n) = let in // if n >= 2 then let val res = tbl.[n] in if res >= 0 then res else let val res = fibmem (tbl, n-1) + fibmem (tbl, n-2) val () = tbl.[n] := res in res end // end of [if] end else n // fib(0)=0; fib(1)=1 // end // end of [fibmem] (* ****** ****** *) implement fib (n) = let // val asz = g1i2u (n+1) val arrp = arrayptr_make_elt (asz, ~1) val (pf | p) = arrayptr_takeout_viewptr (arrp) // val res = fibmem (!p, n) // prval () = arrayptr_addback (pf | arrp) // val () = arrayptr_free (arrp) // in res end // end of [fib] (* ****** ****** *) implement main0 () = { val N = 20 (* val () = println! ("fib(", N, ") = ", fib (N)) *) val () = assertloc (fib (N) = 6765) } // end of [main0] (* ****** ****** *) (* end of [fibmem.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fcopy.dats0000644000175000017500000000202213431250607021406 0ustar brandonbrandon// // A naive implementation of file copying // (* ****** ****** *) // // Author: Hongwei Xi (gmhwxi AT gmail DOT com) // // Start time: January 2013 // (* ****** ****** *) staload UN = "prelude/SATS/unsafe.sats" (* ****** ****** *) staload _(*anon*) = "prelude/DATS/integer.dats" (* ****** ****** *) fun fcopy ( inp: FILEref, out: FILEref ) : void = let val c = fileref_getc (inp) in if c >= 0 then let val () = fileref_putc (out, c) in fcopy (inp, out) end // end of [if] end (* end of [fcopy] *) (* ****** ****** *) implement main ( argc, argv ) = 0 where { val inp = ( if argc >= 2 then fileref_open_exn (argv[1], file_mode_r) else stdin_ref ) : FILEref // end of [inp] val out = ( if argc >= 3 then fileref_open_exn (argv[2], file_mode_w) else stdout_ref ) : FILEref // end of [val] val () = fcopy (inp, out) val () = if argc >= 2 then fileref_close (inp) val () = if argc >= 3 then fileref_close (out) } // end of [main] (* ****** ****** *) (* end of [fcopy.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/.keeper0000644000175000017500000000000013431250607020657 0ustar brandonbrandonATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/intecho.dats0000644000175000017500000000135313431250607021725 0ustar brandonbrandon(* ****** ****** *) // // Reading integers from stdin // Author: Hongwei Xi (February, 2013) // (* ****** ****** *) staload "prelude/DATS/integer.dats" staload "prelude/DATS/filebas.dats" (* ****** ****** *) #define ATS_MAINATSFLAG 1 (* ****** ****** *) implement main0 ( ) = loop () where { // fun loop (): void = let val () = println! ("Please input an integer:") var N: int? val ans = fileref_load (stdin_ref, N) in // if ans then let prval ( ) = opt_unsome (N) val () = println! (N) in loop () end else let prval ( ) = opt_unnone (N) val () = println! ("Not a valid integer!") in // nothing end // end of [if] // end // end of [loop] // } // end of [main0] (* ****** ****** *) (* end of [intecho.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/atoi.dats0000644000175000017500000000231113431250607021223 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Converting a string to an integer // // Author: Hongwei Xi (February 22, 2013) // (* ****** ****** *) (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) fun atoi (str: string): int = let // var env: int = 0 implement{env} string_foreach$cont (c, env) = isdigit (c) implement string_foreach$fwork (c, env) = env := 10 * env + (c - '0') // val _ = string_foreach_env (g1ofg0(str), env) // in env end // end of [atoi] (* ****** ****** *) fn atoi_usage (cmd: string): void = prerrln! ("Usage: ", cmd, " [integer]") // end of [atoi_usage] (* ****** ****** *) implement main0 (argc, argv) = { // (* val () = if (argc <= 1) then atoi_usage (argv[0]) *) val rep = (if argc >= 2 then argv[1] else "123456789"): string val () = println! ("atoi(\"", rep, "\") = ", atoi(rep)) // } (* end of [main0] *) (* ****** ****** *) (* end of [atoi.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fact2.dats0000644000175000017500000000403413431250607021272 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Two verified implementations // of the well-known factorial function: // // the first one is not tail-recursive // whereas the second one is tail-recursive // (* ****** ****** *) // // Author: Hongwei Xi (February 2012) // (* ****** ****** *) (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) staload _(*anon*) = "prelude/DATS/basics.dats" staload _(*anon*) = "prelude/DATS/integer.dats" (* ****** ****** *) // // HX: an encoding of the factorial function: // FACT (n, r) means that r equals the factorial of n // dataprop FACT (int, int) = | FACTbas (0, 1) of () | {n:pos}{r:int} FACTind (n, n*r) of FACT (n-1, r) // end of [FACT] (* ****** ****** *) fun fact {n:nat} .. ( x: int n // x = n ) : [r:int] ( FACT(n, r) | int(r) ) = ( // if x > 0 then let val [r1:int] (pf1 | r1) = fact (x-1) prval pf = FACTind {n}{r1} (pf1) val r = x * r1 in (pf | r) end // end of [then] else (FACTbas () | 1) // ) (* end of [fact] *) (* ****** ****** *) (* ** HX: this one is tail-recursive *) fun fact2 {n:nat} .. ( x: int n // x = n ) : [r:int] ( FACT(n, r) | int(r) ) = let // fun loop {n:nat} {r0:int} .. ( x: int n, r0: int r0 ) : [r:int] ( FACT (n, r) | int (r*r0) ) = ( if (x > 0) then let val [r1:int] (pf1|res) = loop (x-1, x*r0) prval pf0 = FACTind{n}{r1}(pf1) // in (pf0 | res) end // end of [then] else (FACTbas() | r0) // ) // end of [loop] // in loop (x, 1) end // end of [fact2] (* ****** ****** *) implement main0(argc, argv) = { // val n = ( if argc >= 2 then g1string2int(argv[1]) else 10(*default*) // end of [if] ) : Int // end of [val] val () = assertexn(n >= 0) // val pfr = fact(n) and pfr2 = fact2(n) // val () = assertloc(pfr.1 = pfr2.1) // } (* end of [main0] *) (* ****** ****** *) (* end of [fact2.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fact_uninterp.dats0000644000175000017500000000167313431250607023142 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // stacst fact: int -> int // (* ****** ****** *) extern praxi fact_bas(): [fact(0)==1] void extern praxi fact_ind{n:pos}(): [fact(n)==n*fact(n-1)] void extern praxi leibniz_int{f:int->int}{p,q:int | p==q}(): [f(p)==f(q)] void (* ****** ****** *) // fun fact {n:nat} .. (n: int(n)) : int(fact(n)) = ( if n > 0 then let prval () = fact_ind{n}() in n * fact(n-1) end // end of [then] else let prval EQINT() = eqint_make{n,0}() // end of [prval] prval () = fact_bas() in (1) end // end of [else] ) // (* ****** ****** *) implement main0(argc, argv) = { // val n = ( if (argc >= 2) then g0string2int(argv[1]) else 10 // end of [if] ) : int // end of [val] // val n = g1ofg0(n) val n = (if n >= 0 then n else 0): intGte(0) // val () = println! ("fact(", n, ") = ", fact(n)) // } (* end of [main0] *) (* ****** ****** *) (* end of [fact2.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fcopy2.dats0000644000175000017500000000270413431250607021477 0ustar brandonbrandon// // A naive // implementation of file copying // (* ****** ****** *) // // Author: Hongwei Xi // Authoremail: gmhwxiATgmailDOTcom // Start time: April 2013 // (* ****** ****** *) // staload UN = "prelude/SATS/unsafe.sats" // staload _(*INT*) = "prelude/DATS/integer.dats" // (* ****** ****** *) // staload "libats/libc/SATS/stdio.sats" // (* ****** ****** *) // #define N 1024 (* ****** ****** *) fun fcopy2 ( filr: FILEref, filr2: FILEref ) : void = let // fun loop {n:pos} ( buf: &b0ytes(n) >> bytes(n) , n: int n, filr: FILEref, filr2: FILEref ) : void = let val p = fgets (buf, n, filr) in // if p > 0 then let val () = fputs_exn ($UN.cast{string}(p), filr2) in loop (buf, n, filr, filr2) end else () // end of [if] // end // end of [loop] // val ( pfat, pfgc | p ) = malloc_gc (i2sz(N)) val () = loop (!p, N, filr, filr2) val () = mfree_gc (pfat, pfgc | p) // in // nothing end (* end of [fcopy2] *) (* ****** ****** *) implement main ( argc, argv ) = 0 where { val filr = ( if argc >= 2 then fileref_open_exn (argv[1], $UN.cast{fmode}("r")) else stdin_ref ) : FILEref // end of [filr] val filr2 = ( if argc >= 3 then fileref_open_exn (argv[2], $UN.cast{fmode}("w")) else stdout_ref ) : FILEref // end of [val] val () = fcopy2 (filr, filr2) val () = if argc >= 2 then fileref_close (filr) val () = if argc >= 3 then fileref_close (filr2) } // end of [main] (* ****** ****** *) (* end of [fcopy2.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/acker1.dats0000644000175000017500000000111213431250607021433 0ustar brandonbrandon(* ****** ****** *) // // Implementing Ackermann's function // Author: Hongwei Xi (February 21, 2013) // (* ****** ****** *) staload "prelude/DATS/integer.dats" (* ****** ****** *) fun acker ( m: int, n: int ) : int = let in // if m <= 0 then n+1 else ( if n <= 0 then acker (m-1, 1) else acker (m-1, acker (m, n-1)) // end of [if] ) // end of [else] // end // end of [acker] (* ****** ****** *) implement main0 () = let // val () = assertloc (acker (3, 3) = 61) // in // nothing end // end of [main0] (* ****** ****** *) (* end of [acker1.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/myatslib.dats0000644000175000017500000000064513431250607022123 0ustar brandonbrandon(* ****** ****** *) (* // // HX-2013-09: // For maximal portability // *) (* ****** ****** *) // #define ATS_DYNLOADFLAG 0 // no dynloading // (* ****** ****** *) local #include "prelude/DATS/filebas.dats" in(**)end (* ****** ****** *) local #include "libats/libc/DATS/stdio.dats" in(**)end (* ****** ****** *) local #include "libats/ML/DATS/filebas.dats" in(**)end (* ****** ****** *) (* end of [myatslib.dats] *)ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fact1.dats0000644000175000017500000000267213431250607021277 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // A naive implementation // of the factorial function // Author: Hongwei Xi (August 2007) // (* ****** ****** *) // (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) // (* ****** ****** *) // // How to test: // ./fact1 // How to compile: // atscc -o fact1 fact1.dats // (* ****** ****** *) staload "prelude/DATS/integer.dats" (* ****** ****** *) // // HX: [fun] declares a recursive function // fun fact (x: int): int = if x > 0 then x * fact (x-1) else 1 // (* ****** ****** *) // // [fn] declares a non-recursive function // It is fine to replace [fn] with [fun] as a non-recursive function // is a special kind of recursive function that does not call itself. // [@(...)] is used in ATS to group arguments for variadic functions // fn fact_usage (cmd: string): void = prerrln! ("Usage: ", cmd, " [integer]") // end of [fact_usage] (* ****** ****** *) implement main (argc, argv) = let in // if argc >= 2 then let val n = g0string2int_int(argv[1]) val ( ) = println! ("factorial of ", n, " = ", fact (n)) in 0 (*normal*) end else let val () = fact_usage (argv[0]) in exit(1) end // end of [if] // end // end of [main] (* ****** ****** *) (* end of [fact1.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fprintlst2.dats0000644000175000017500000000261413431250607022404 0ustar brandonbrandon(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) staload "libats/ML/SATS/basis.sats" staload "libats/ML/SATS/list0.sats" staload _ = "libats/ML/DATS/list0.dats" (* ****** ****** *) implement {x}{env} list_iforeach_env (xs, env) = let // prval () = lemma_list_param (xs) // fun loop {n:nat} {i:nat} .. ( i: int i, xs: list (x, n), env: &env ) : intBtwe(i,n+i) = case+ xs of | list_cons (x, xs) => let val () = list_iforeach$fwork (i, x, env) in loop (succ(i), xs, env) end // end of [list_cons] | list_nil () => (i) // number of processed elements // end of [loop] // in loop (0, xs, env) end // end of [list_iforeach_env] (* ****** ****** *) val () = { // val out = stdout_ref // val xs1 = g0ofg1($list{int}(0,1,2,3,4)) val xs2 = g0ofg1($list{int}(5,6,7,8,9)) val xss = cons0{list0(int)}(xs1, cons0{list0(int)}(xs2, nil0())) // (* implement fprint_val (out, xs) = () *) local implement fprint_val (out, xs) = fprint_list0_sep (out, xs, ", ") in(*in-of-local*) val () = fprint_list0_sep (out, xss, "; ") end // end of [local] // val ((*void*)) = fprint_newline (out) // } (* end of [val] *) (* ****** ****** *) implement main0 () = { // val () = println! ("The code has passed all the tests given here.") // } (* end of [main0] *) (* ****** ****** *) (* end of [fprintlst2.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fib1.dats0000644000175000017500000000100113431250607021103 0ustar brandonbrandon// // Computing the Fibonacci numbers // (A naive implementation of expnential complexity) // // Author: Hongwei Xi (January 2013) // (* ****** ****** *) // staload _ = "prelude/DATS/integer.dats" // (* ****** ****** *) // fun fib (n: int): int = if n >= 2 then fib (n-1) + fib (n-2) else n // (* ****** ****** *) implement main0 () = { #define N 10 val () = assertloc (fib(N) = 55) (* val () = println! ("fib(", N, ") = ", fib (10)) *) } // end of [main0] (* ****** ****** *) (* end of [fib1.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/listpermute.dats0000644000175000017500000000317513431250607022655 0ustar brandonbrandon(* ****** ****** *) // // Enumerate all of // the permutations of a list // // Author: Hongwei Xi (February, 2014) // (* ****** ****** *) // #include "share/atspre_staload.hats" #include "share/atspre_staload_libats_ML.hats" // #staload UN = $UNSAFE // aliasing // (* ****** ****** *) extern fun{ a:t@ype } listpermute{n:int} (list (a, n)): List0 (list(a, n)) (* ****** ****** *) extern fun{a:t@ype} list_mcons{n:nat} (x0: a, xss: List (list(a, n))): List0_vt(list(a, n+1)) (* ****** ****** *) implement {a}(*tmp*) list_mcons (x0, xss) = ( case+ xss of | list_nil () => nil_vt () | list_cons (xs, xss) => cons_vt (cons (x0, xs), list_mcons (x0, xss)) ) (* ****** ****** *) implement {a}(*tmp*) listpermute {n}(xs) = let // val n = length (xs) prval () = lemma_list_param (xs) vtypedef res = List0_vt (list(a, n)) // fn fopr (i: natLt(n)): res = let var x: a val xs1 = list_takeout_at (xs, i, x) in list_mcons (x, listpermute (xs1)) end // end of [fopr] // implement(res) list_tabulate$fopr (i) = let val () = ignoret (xs) // HX: bug? in $UN.castvwtp0{res}(fopr($UN.cast{natLt(n)}(i))) end // end of [list_tabulate$fopr] // in // if n = 0 then cons (nil, nil) else list_vt2t(list_vt_concat(list_tabulate(n))) // end // end of [listpermute] (* ****** ****** *) implement main0 () = { // val xs = list_make_intrange (0, 4) // val xs = list_vt2t{int} (xs) // val xss = listpermute (xs) // val () = print! ("permute(", xs, ") =\n") val () = list_foreach_cloref (xss, lam xs =<1> fprintln!(stdout_ref, xs)) // } (* end of [main0] *) (* ****** ****** *) (* end of [listpermute.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/ordset.dats0000644000175000017500000000471613431250607021602 0ustar brandonbrandon(* ****** ****** *) (* // Implementing a module of ML-style *) (* ****** ****** *) (* // // Author: Hongwei Xi // TIme: the 4th of June, 2013 // Authoremail: gmhwxi AT gmail DOT edu // *) (* ****** ****** *) (* // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) staload _ = "prelude/DATS/list.dats" staload _ = "prelude/DATS/integer.dats" (* ****** ****** *) typedef ordmod (a:t@ype) = '{ cmp= (a, a) -> int } extern fun{a:t@ype} ordmod_compare (ord: ordmod (a), x: a, y: a): int implement{a} ordmod_compare (ord, x, y) = ord.cmp (x, y) (* ****** ****** *) abstype set (a:t@ype) = ptr typedef setmod (a:t@ype) = '{ sing= (a) - set (a) , isemp= set(a) - bool , union= (set(a), set(a)) - set (a) , toList= set(a) - List0 (a) } // end of [setmod] extern fun{a:t@ype} setmod_make_order (ord: ordmod (a)): setmod (a) local assume set (a:t@ype) = List0 (a) in (* in of [local] *) implement{a} setmod_make_order (ord) = let // fun funion ( ord: ordmod a , xs: List0 a, ys: List0 a ) : List0 a = case+ xs of | list_cons (x, xs1) => ( case+ ys of | list_cons (y, ys1) => let val sgn = ordmod_compare (ord, x, y) in if sgn < 0 then ( cons{a}(x, funion (ord, xs1, ys)) ) else ( if sgn > 0 then cons{a}(y, funion (ord, xs, ys1)) else cons{a}(x, funion (ord, xs1, ys1)) // end of [if] ) // end of [if] end // end of [list_cons] | list_nil ((*void*)) => xs ) | list_nil ((*void*)) => ys // in '{ sing= lam (x) => cons{a}(x, nil) , isemp= lam (xs) => list_is_nil (xs) , union= lam (xs, ys) => funion (ord, xs, ys) , toList= lam (xs) => xs } end // end of [setmod_make_order] end // end of [local] (* ****** ****** *) val setmod_int = setmod_make_order '{ cmp = lam (x:int, y:int) => compare (x, y) } (* ****** ****** *) val xs0 = setmod_int.sing (0) val xs1 = setmod_int.sing (1) val xs01 = setmod_int.union (xs0, xs1) val xs0101 = setmod_int.union (xs01, xs01) (* ****** ****** *) val () = println! ("xs01 = ", setmod_int.toList(xs01)) val () = println! ("xs0101 = ", setmod_int.toList(xs0101)) (* ****** ****** *) implement main0 () = () (* ****** ****** *) (* end of [ordset.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fib_lazy.dats0000644000175000017500000000162113431250607022071 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Lazy-evaluation // (* ****** ****** *) (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) val rec fib0: stream(int) = $delay(stream_cons{int}(0, fib1)) and fib1: stream(int) = $delay(stream_cons{int}(1, fib2)) and fib2: stream(int) = stream_map2_fun (fib0, fib1, lam (x0, x1) => x0 + x1) (* ****** ****** *) implement main0 () = ( println! ("Fibonacci(10) = ", stream_nth_exn (fib0, 10)) ; // = 55 println! ("Fibonacci(20) = ", stream_nth_exn (fib0, 20)) ; // = 6765 ) // end of [main0] (* ****** ****** *) (* end of [fib_lazy.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/f91.dats0000644000175000017500000000201013431250607020662 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Implementing MacCarthy's 91-function // Author: Hongwei Xi (February 21, 2013) // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) staload "prelude/DATS/integer.dats" (* ****** ****** *) fun f91 (x: int): int = if x >= 101 then x - 10 else f91 (f91 (x+11)) // end of [f91] (* ****** ****** *) implement main0 () = let // val N = 0 val () = assertloc (f91 (N+0) = 91) val () = assertloc (f91 (N+1) = 91) val () = assertloc (f91 (N+2) = 91) val () = assertloc (f91 (N+3) = 91) val () = assertloc (f91 (N+4) = 91) val () = assertloc (f91 (N+5) = 91) val () = assertloc (f91 (N+6) = 91) val () = assertloc (f91 (N+7) = 91) val () = assertloc (f91 (N+8) = 91) val () = assertloc (f91 (N+9) = 91) // val () = println! ("Testing for [f91] is done!") // in // nothing end // end of [main0] (* ****** ****** *) (* end of [f91.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/acker2.dats0000644000175000017500000000122013431250607021434 0ustar brandonbrandon(* ****** ****** *) // // Implementing Ackermann's function // Author: Hongwei Xi (February 21, 2013) // (* ****** ****** *) staload "prelude/DATS/integer.dats" (* ****** ****** *) fun acker ( m: int, n: int ) : int = let // fun acker_m (n: int): int = ( if m <= 0 then n+1 else ( if n <= 0 then acker (m-1, 1) else acker (m-1, acker_m (n-1)) // end of [if] ) // end of [else] ) (* end of [acker_m] *) // in acker_m (n) end // end of [acker] (* ****** ****** *) implement main0 () = let // val () = assertloc (acker (3, 3) = 61) // in // nothing end // end of [main0] (* ****** ****** *) (* end of [acker2.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/acker4.dats0000644000175000017500000000117113431250607021443 0ustar brandonbrandon// // Implementing Ackermann's function // Author: Hongwei Xi (May 10, 2013) // (* ****** ****** *) // // HX: this one involves run-time closure creation // (* ****** ****** *) staload "prelude/DATS/integer.dats" (* ****** ****** *) fun acker ( m: int ) = lam ( n:int ) : int = // if m <= 0 then n+1 else ( if n <= 0 then acker (m-1) (1) else acker (m-1) (acker (m) (n-1)) // end of [if] ) // end of [if] // // end of [acker] (* ****** ****** *) implement main0 () = let // val () = assertloc (acker(3)(3) = 61) // in // nothing end // end of [main0] (* ****** ****** *) (* end of [acker4.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/hello.dats0000644000175000017500000000173313431250607021401 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // HX: Hello, world! // (* ****** ****** *) // (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - *) // (* ****** ****** *) implement main0 () = { val () = println! ("你好世界!") // Chinese val () = println! ("Hello world!") // English val () = println! ("Hello wereld") // Dutch val () = println! ("Bonjour monde!") // French val () = println! ("Hallo Welt!") // German val () = println! ("γειά σου κόσμος!") // Greek val () = println! ("Ciao mondo!") // Italian val () = println! ("ã“ã‚“ã«ã¡ã¯ä¸–界!") // Japanese val () = println! ("여보세요 세계!") // Korean val () = println! ("Olá mundo!") // Portuguese val () = println! ("ЗдравÑтвулте мир!") // Russian val () = println! ("Hola mundo!") // Spanish } (* end of [main0] *) (* ****** ****** *) (* end of [hello.dats] *) ATS2-Postiats-gmp-0.3.13/./doc/EXAMPLE/INTRO/fact3.dats0000644000175000017500000000200313431250607021265 0ustar brandonbrandon//usr/bin/env myatscc "$0"; exit (* ****** ****** *) // // Computing the factorials // // Author: Hongwei Xi (January 2013) // (* ****** ****** *) (* // // HX-2017-05-22: // For remote typechecking only! // ##myatsccdef=\ curl --data-urlencode mycode@$1 \ http://www.ats-lang.org/SERVER/MYCODE/atslangweb_patsopt_tcats_0_.php | \ php -R 'if (\$argn != \"\") echo(json_decode(urldecode(\$argn))[1].\"\\n\");' // *) (* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) fun fact {n:nat} (n: int n): int = let // val A = arrayptr_make_intrange<> (0, n) // typedef a = int typedef tenv = int implement array_foreach$fwork (x, env) = env := env * (x+1) // var env: tenv = 1 // val _ = arrayptr_foreach_env (A, g1int2uint(n), env) // val () = arrayptr_free (A) // in env end // end of [fact] (* ****** ****** *) implement main0 () = { val N = 12 val () = assertloc (fact(N) = 1*1*2*3*4*5*6*7*8*9*10*11*12) } // end of [main] (* ****** ****** *) (* end of [fact3.dats] *) ATS2-Postiats-gmp-0.3.13/./autogen.sh0000755000175000017500000000034113431250607016661 0ustar brandonbrandon#!/bin/bash ###### # # For making a distribution package # ###### # autoheader configure.ac # aclocal # # NO messing with [automake] # automake --add-missing --foreign || true # autoconf # ###### end of [autogen.sh] ###### ATS2-Postiats-gmp-0.3.13/./config.mk.in0000644000175000017500000000062513431250607017070 0ustar brandonbrandonINSTALL := @INSTALL@ PACKAGE_TARNAME := @PACKAGE_TARNAME@ PACKAGE_VERSION := @PACKAGE_VERSION@ prefix := @prefix@ exec_prefix := @exec_prefix@ bindir := @bindir@ abs_top_srcdir := @abs_top_srcdir@ AR := ar CC := @CC@ LN_S := @LN_S@ INSTALL := @INSTALL@ MKDIR_P := @MKDIR_P@ PATSHOME := $(abs_top_srcdir) PATSLIBHOME := $(prefix)/lib/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) HAVE_LIBGMP := @HAVE_LIBGMP@ ATS2-Postiats-gmp-0.3.13/./Makefile_dist0000644000175000017500000001176513431250607017357 0ustar brandonbrandon###### # # HX-2013-03: # for compiling a distribution of ATS-Postiats # KO-2014-04-09: # removing [-T] from [install] as the option is # not supported on MacOS # IU-2014-04-30: # removing the space between -m and the following mode # as it is not supported on freeBSD # ###### CPF=cp -f CPR=cp -R MVF=mv -f RMF=rm -f RMRF=rm -rf ###### MAKE=make MAKEJ4=make -j4 ###### # all:: config.mk # all:: bin2_patsopt all:: lib2_libatsopt # all:: bin_patscc all:: bin_myatscc # all:: ccomp/atslib/lib/libatslib.a # ###### configure: ; /bin/bash autogen.sh ###### # # HX: this seems to be working # # config.mk : configure ; ./configure # ####### # config.mk: \ configure ; \ @echo "Please execute './configure'." ; exit 1 ; # ###### # C3NSTRINTKND=gmpknd # #C3NSTRINTKND=intknd # ###### # src_patsopt: ; \ $(MAKE) C3NSTRINTKND=$(C3NSTRINTKND) -j4 -C src patsopt # bin_patsopt: src_patsopt ; $(CPF) src/patsopt bin/patsopt # ###### # CCOMP=gcc # GCFLAG= #GCFLAG=-D_ATS_NGC #GCFLAG=-D_ATS_GCBDW #GCFLAG=-D_ATS_GCATS # CFLAGS= LDFLAGS= # ###### # src2_patsopt: ; \ $(MAKEJ4) -C src/CBOOT patsopt \ CCOMP=$(CCOMP) GCFLAG=$(GCFLAG) LDFLAGS=$(LDFLAGS) # bin2_patsopt: src2_patsopt ; $(CPF) src/CBOOT/patsopt bin/patsopt # ###### utl_atscc: ; \ $(MAKE) -C utils/atscc copy build clean bin_patscc: utl_atscc ; \ $(MVF) utils/atscc/BUILD/patscc bin/patscc ###### utl_myatscc: ; \ $(MAKE) -C utils/myatscc copy build clean bin_myatscc: utl_myatscc ; \ $(MVF) utils/myatscc/BUILD/myatscc bin/myatscc ###### # src2_libatsopt: ; \ $(MAKE) -C src/CBOOT CCOMP=$(CCOMP) libatsopt lib2_libatsopt: src2_libatsopt ; \ $(CPF) src/CBOOT/libatsopt.a ccomp/atslib/lib/. # ###### ccomp/atslib/lib/libatslib.a: ; $(MAKE) -C ccomp/atslib atslib ###### -include config.mk ###### # # This variable is to be set externally # DESTDIR := # ###### export PATSHOME export PATSLIBHOME ###### bindir2 := $(DESTDIR)$(bindir) PATSLIBHOME2 := $(DESTDIR)$(PATSLIBHOME) ###### # # HX-2011-06-01: # This part was originally written by Georg Bauhaus # (bauhausATarcorDOTde): It addresses the issue that # the [-D] option is not available for $(INSTALL) on MacOSX. # .PHONY: install_dirs .PHONY: install_files # install: install_files install_files: \ install_files_00 \ install_files_10 \ install_files_11 \ install_files_20 \ install_files_30 \ install_files_31 \ install_files_40 \ install_files_50 \ install_dirs: ; \ cd "$(abs_top_srcdir)" && \ $(MKDIR_P) $(PATSLIBHOME2)/bin && \ if [ ! -d $(bindir2) ] ; then $(MKDIR_P) $(bindir2) ; fi && \ for x in share ccomp prelude libats contrib ; do \ find "$$x" -type d -exec $(MKDIR_P) $(PATSLIBHOME2)/\{} \; -print; \ done install_files_00: install_dirs ; \ for x in share ccomp/runtime prelude libats contrib ; do \ cd "$(abs_top_srcdir)" && \ $(INSTALL) -d $(PATSLIBHOME2)/"$$x" && \ find "$$x" -type l -exec $(CPR) \{} $(PATSLIBHOME2)/\{} \; -print && \ find "$$x" -type f -exec $(INSTALL) -m644 \{} $(PATSLIBHOME2)/\{} \; -print; \ done install_files_10: bin/patscc ; \ $(INSTALL) -m755 $< $(PATSLIBHOME2)/bin/patscc && echo $< install_files_11: bin/myatscc ; \ $(INSTALL) -m755 $< $(PATSLIBHOME2)/bin/myatscc && echo $< install_files_20: bin/patsopt ; \ $(INSTALL) -m755 $< $(PATSLIBHOME2)/bin/patsopt && echo $< install_files_30: bin/patscc_env.sh ; \ $(INSTALL) -m755 $< $(bindir2)/patscc && echo $< install_files_31: bin/myatscc_env.sh ; \ $(INSTALL) -m755 $< $(bindir2)/myatscc && echo $< install_files_40: bin/patsopt_env.sh ; \ $(INSTALL) -m755 $< $(bindir2)/patsopt && echo $< install_files_50: ; \ for x in \ ccomp/atslib/lib/libatslib.a \ ccomp/atslib/lib64/libatslib.a ; \ do \ if [ -e "$$x" ] ; then \ $(INSTALL) -m755 "$$x" $(PATSLIBHOME2)/"$$x" && echo "$$x"; \ fi; \ done ###### # # HX-2017-11-11: # Please execute the following # command-lines before reinstall # # make -C ccomp/atslib clean # make -C ccomp/atslib atslib # reinstall_atslib: install_files_50 # ###### # uninstall:: uninstall_bin uninstall:: uninstall_home # uninstall_bin:: ; $(RMF) $(bindir2)/patscc uninstall_bin:: ; $(RMF) $(bindir2)/myatscc uninstall_bin:: ; $(RMF) $(bindir2)/patsopt uninstall_home:: ; $(RMRF) $(PATSLIBHOME2) # ###### clean:: cleanall:: clean ###### clean:: ; $(RMF) ccomp/atslib/output/*.o clean:: ; $(MAKE) -C src/CBOOT -f Makefile clean ###### cleanall:: ; $(RMF) stamp-h1 cleanall:: ; $(RMF) config.mk cleanall:: ; $(RMF) config.log cleanall:: ; $(RMF) config.status cleanall:: ; $(RMRF) autom4te.cache cleanall:: ; $(RMF) bin/patscc cleanall:: ; $(RMF) bin/myatscc cleanall:: ; $(RMF) bin/patsopt cleanall:: ; $(RMF) bin/patscc_env.sh cleanall:: ; $(RMF) bin/myatscc_env.sh cleanall:: ; $(RMF) bin/patsopt_env.sh cleanall:: ; $(RMF) ccomp/atslib/lib/* cleanall:: ; $(RMF) ccomp/atslib/lib64/* cleanall:: ; $(RMF) ccomp/atslib/output/* cleanall:: ; $(MAKE) -C src -f Makefile cleanall cleanall:: ; $(MAKE) -C src/CBOOT -f Makefile cleanall cleanall:: ; $(MAKE) -C utils/atscc -f Makefile cleanall ###### distclean:: cleanall ###### ###### end of [Makefile_dist] ###### ATS2-Postiats-gmp-0.3.13/./config.h.in0000644000175000017500000000317613431250607016714 0ustar brandonbrandon/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_GMP_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `memalign' function. */ #undef HAVE_MEMALIGN /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `posix_memalign' function. */ #undef HAVE_POSIX_MEMALIGN /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* The size of `void*', as computed by sizeof. */ #undef SIZEOF_VOIDP /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS ATS2-Postiats-gmp-0.3.13/./AUTHORS0000644000175000017500000000033113431250607015727 0ustar brandonbrandon# # Postiats is based on Anairiats, Geizella, ATSproto # ###### Principal Designer and Implementor: Hongwei Xi (gmhwxi@gmail.com), ATS Trustful Software, Inc. ###### Contributors: ###### end of [AUTHORS] ###### ATS2-Postiats-gmp-0.3.13/./install-sh0000755000175000017500000003325613431250607016677 0ustar brandonbrandon#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for `test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ATS2-Postiats-gmp-0.3.13/./CHANGES-ats20000644000175000017500000020204313431250607016525 0ustar brandonbrandon###### 0.3.13 This is the 50th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing the issue of escaping '$' in PHP string literals (atscc2php) Kudos to M88! 2. Fixing very minor issues in libats/qlist and libats/linmap 3. Enforcing that no d2var can be leaked/exported from a namespace ###### 0.3.12 ------------------------------------------------ ATS2-Postiats-0.3.12.tgz: MD5: 6328cac96b0b0a19ecf13480662a7f42 SHA1: da6e20815351c6a59635ca61da9474c68fc06b34 ------------------------------------------------ This is the 49th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing parsing for hexidecimal floating point numbers 2. Fixing issues with some atsccomp transpilers and their libs 3. Tidying-up code for resolving fixity (xpushup and xreduce) 4. Atscc2js supports native records now (Kudos to AS-2018-08-18): See the function [emit_SELfltrec] for some detail. 5. Various minor fixes of all sorts (e.g., on the prelude library) ###### 0.3.11 ------------------------------------------------ ATS2-0.3.11.tgz: MD5: 847b592ce92655fe72f68000104e12b4 SHA1: c4df38d0ae759be4294c8a9d90f8bad7800dac50 ------------------------------------------------ This is the 48th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Re-enabling the support for -IATS 2. Rewording LICENSE: the ATS libraries are now covered under LGPLv3 In particular, any C code generated by ATS/Postiats is NOT by default considered to be covered by the GPL/LGPL license of any kind. 3. Renaming some keywords: atstbox for atstype atstflat for atst0ype atsvtbox for atsvtype atsvtflat for atsvt0ype absimpl for assume and atsreimpl for reassume ###### 0.3.10 ------------------------------------------------ ATS2-0.3.10.tgz: MD5: cd20db33a0a3d4e38674260309884502 SHA1: e8ca2974d56c5f844eee15d650db56a1d3631c01 ------------------------------------------------ This is the 47th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Improving atscntrb-sdstring and atscntrb-hx-cstream 2. Changing "atscntrb" to "atscntrb-hx" in the names of almost all of the npm-based ATS packages contributed by myself (Hongwei). This is a pervasive change due the wide use of these packages. 3. Adding libats/ML/SATS/argvec.sats and libats/ML/SATS/argvec.dats 4. Adding share/SCRIPT/buildRelease.sh to automate build/release ATS Acknowledgment: Thanks to Lance Galletti and Wei Jiang for helping test this release. ###### 0.3.9 ------------------------------------------------ ATS2-0.3.9.tgz: MD5: 89896a2ea58b07c2c409cd4297891aa1 SHA1: e350b7872cbac5ab1c3a539c7e35d176e39eb378 ------------------------------------------------ This is the 46th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Improving libatscc/libatscc2js regarding matrixref and matrix0 2. Improving doc/BOOK/ATS2FUNCRASH by tidying-up and fixing errors 3. Adding some examples in ATS-Tutoriats demonstrating ATS+ReactJS and ATS+React-Native 4. Adding basic programming support for parallelized stream-mapfold: ${PATSHOME}/libats/BUCS320/StreamPar (stream-processing) ${PATSHOME}/libats/BUCS520/StreamPar (linear-stream-processing) 5. Adding basic programming support for recursive directory-traversal: ${PATSHOME}/npm-utils/contrib/libats-hwxi/find_cli 6. Moving most higher-order functions from ATSPRE to ATSLIB/ML/atspre. This is a pervasive change, triggering a lot of (minor) fixes! 7. Rewriting several stream_vt functions to make them tail-recursive. 8. Moving ATSPRE/fcontainer and ATSPRE/giterator into libats/ATS2 9. Finishing EFFECTIVATS/SteamPar on streamization and stream-processing in parallel. 10. Starting the ATS-CodeBook project (at http://github.com/ats-lang): Hello, HX-intinf, ReadFromSTDIN, ReadFromSTDIN2, ReadFromSTDIN3, and WordFrqncyCount ###### 0.3.8 This is the 45th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding libatscc/ML/option0 2. Adding libatscc/ML/matrix0 3. Minorly improving libatscc/ML/list0 and libatscc/ML/array0 4. Fixing missing cases in eval1_p2at (pats_dmacro2_eval1.dats) 5. Fixing and improving libats/funarray 6. Adding calls to the_dynconlst_add to ensure that every exception constructor is declared in the generated C code. 7. Initiating building the "compiled" library libats/ML/COMPILE 8. Fixing a glitch in compiling polymorphic functions that call function templates (auxmat_env in [pats_ccomp_template.dats]) A simple use case is found in doc/EXAMPLE/TESTATS/tempboxed.dats 9. Adding support for calling variadic functions in a type-safe way. There is no attempt to add support for type-safe implementation of variadic functions yet. 10. Supporting the user of the flag --gc for myatscc. ###### 0.3.7 This is the 44th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Extending prelude/stream_vt with more functions 2. Improving ${PATSHOME}/contrib/libatscc2php/ATS2-0.3.2 3. Supporting the following style of function interface declaration: extern fun swap_boxed{a,b:type}(xy: (a, b)): (b, a) ( Note that (a, b) needs to be replaced with @(a, b) at this point ) 4. Adding stream-processing functions in prelude and libats/ML 5. Hosting for ats-lang.org moved from OPENSHIFT2 to OPENSHIFT3 6. In progress: A Functional Crash into ATS: ${PATSHOME}/doc/BOOK/ATS2FUNCRASH 7. Atscc2r34 (for transpiling ATS into R) is functioning and it is expected to be improved gradually. 8. Improving ATSLIB/libats/ML: more list0-combinators; printing stuff ###### 0.3.6 This is the 43rd release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing a bug involving 'reassume': the bug is serious but the fix is very minor. 2. Improving utils/atexting by merging atexting_all with atexting_mylib Many clients of atexting (e.g., atsccomp-compilers) have been updated with respect to the changes maded to atexting. 3. Adding support for compiling a static file followed by a dynamic file into a single file consisting of the generated code: patsopt -o foo_all.c -s foo.sats -d foo.dats; patscc -o foo foo_all.c This support can be useful for distributing C code generated from ATS source. For instance, a file of C code generated as such can serve as a script of some sort. 4. Adding support for -dd/--dynamics, which compiles a list of given files in a combined manner. For instance, the following command-line: // patsopt -dd foo.dats bar1.dats bar2.dats bar3.dats // essentially compiles a program of the following structure: // local (*nothing*) in #include "foo.dats" end local #include "bar1.dats" in (*nothing*) end local #include "bar2.dats" in (*nothing*) end local #include "bar3.dats" in (*nothing*) end // This style of compilation can be used for the purpose of producing a single target containing all of the output generated from compiling a list of ATS source files. 5. Disabling tail-call optimization temporarily when try-expression (in trywith-expression) is compiled 6. Mandating that an else-clause be present in any ifcase-expression: ifcase | test1 => ... | test2 => ... | _(*else*) => ... // this is the else-clause here ###### 0.3.5 This is the 42nd release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing a bug in atscc2js that prevented certain compound patterns from being handled correctly. Should this be done to other atsccomp compilers? 2. Fixing a bug causing linear tuples to be leaked after their use. Please see bug-2017-04-16. 3. Fixing a bug in compiling a fix-function defined inside a template. Please see bug-2017-04-17. 4. Disallowing non-variable linear patterns used as function arguments (due to potential memory leaks): For instance, fun foo($tup(x, y)): ... = ... needs to be written as fun foo(xy): ... = let $tup(x, y) = xy in ... end 5. Adding myatscc-support (in utils/myatscc) for allowing compilation commands being embedded inside source code. For instance, the following comment can be included to support using ATS as a scripting language: (* ##myatsccdef=\ patsopt --constraint-ignore --dynamic $1 | \ tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - $arglst(2) *) 6. Adding ats1-libatsopt (npm-package) 7. Adding contrib/atscntrb-hx-getargs for building command-line support 8. Adding ATS-Postiats/npm-util/libats-hwxi/OpenSCAD: Supporting meta-programming for OpenSCAD, that is, writing programs in ATS for generating OpenSCAD code (that can create models for 3D-printing) ###### 0.3.4 This is the 41st release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing the issue of patsopt_version not available in libatslib.a 2. Fixing made to prevent an existential type variable (s2Var) from becoming its own upper bound or lower bound. 3. Adding both of CATS-atscc2pl and libatscc2pl to the release Adding both of CATS-atscc2scm and libatscc2scm to the release Adding both of CATS-atscc2clj and libatscc2clj to the release 4. Improving s2hnf_syneq_env for handling S2Elam. 5. Fixing s2exp_lamlst: arguments should not be reversed! 6. Fixing impenv_update: s2e.sort <= s2v.sort is needed for s2e to match s2v ###### 0.3.3 This is the 40th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Supporting $tempenver in template implementation: This is a crucial addition in support of programming in ATS that may potentially be (very) deeply template-based!!! (* 2: Re-arranging (and duplicating) files containing code of template implementation may cause the need for $tempenver to change. It is not yet understood what the reason is behind all of this behavior. *) 3. Fixing a glitch involving tail-call optimization; please see the function hidexp_seq_simplify for details. 4. Supporting [reassume]: An assumed abstract type can be reassumed so as to make its (original) implementation available in the scope of the reassume-declaration. ###### 0.3.2 This is the 39th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Allowing overloads declared in staloadnm to be merged automatically 2. Initiating libatscc being moved from PATSCONTRIB to PATSHOME/contrib In particular, moving of Bacon.js and Worker in libatscc/libatscc2js is finished. (* // HX-2017-02-01: Reverted! // File search in ATS is intentionally different from done in C // 3. Using pushb (push-from-the-back) to push a path permanently: fun the_pathlst_ppushb(x: path): void // see [pats_filename] fun the_IATS_dirlst_ppushb (dir: string): void // see [pats_global] *) 4. Adding support for handling abstract types of unspecified size 5. Adding code into libats/BUCS320/. to support package-based programming 6. Introducing the compilation flag _ATS_CCOMP_ASSUME_CHECK_NONE_ to skip over checks that are otherwise required of assuming (i.e., implementing) abstract types 7. Moving a lot of code around due to packaging and re-packaging; mostly moving from PATSCONTRIB to PATSHOME/npm-utils 8. Adding support for 'where end' (besides 'where { }') 9. Fixing a minor glitch involving typechecking ifcase-expressions 10. Removing duplicates of overloaded dynamic constants and variables; please see the changes in [pats_trans3_appsym.dats] ###### 0.3.1 This is the 38th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Moving ${PATSHOME}/atscntrb/* into ${PATSHOME}/contrib/. 2. Adding ${PATSHOME}/npm-utils; gradually retiring ${PATSCONTRIB}/. 3. Supporting package-based programming: PATSHOMELOCS, mydepies.?ats, mylibies.?ats, etc Please see GraphSearch-npm in the Effective ATS series 4. There is still a lot of moving around; the dust should soon settle... ###### 0.3.0 This is the 37th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing a compilation issue involving extvar 2. pkgreloc -> atsreloc; util/atspkgreloc -> util/atsreloc 3. Adding doc/EXAMPLE/RosettaCode as an example of [atsreloc] that makes it conventient to download external library code for use in a project. 4. Adding support for PATSHOMERELOCS. Please see: https://groups.google.com/forum/#!topic/ats-lang-users/03LCSLaBmxU 5. Adding script for automatically building ccomp/atslib/lib/libatsopt.a in future releases 6. Reorganizing (by moving packages from ATS2-contrib to ATS2/contrib): ats2cpp, ATS-extsolve, ATS-extsolve-z3, ATS-extsolve-smt2, CATS-parsemit, CATS-atscc2js, CATS-atscc2pl, CATS-atscc2py3, CATS-atscc2php, CATS-atscc2scm, CATS-atscc2clj, CATS-atscc2erl, ... Basically, there is a lot of moving around... ###### 0.2.13 This is the 36th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding a parsing-combinator package for libats. 2. Adding a parsing-combinator package for libatscc. 3. ATS2-contrib/ats2cpp is significantly improved and ready for real use. For instance, it is used in a project involving OpenCV. 4. Adding libats/BUCS320/GraphSearch for teaching graph-based search. 5. Adding libatscc/BUCS320/GraphSearch for: atscc2js, atscc2py3, atscc2php, atscc2clj, atscc2scm, and atscc2pl 6. Re-fixing bug-2016-06-26 // see pats_trans3_util.dats for comment ###### 0.2.12 This is the 35th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Significantly expanding libatscc 2. Improving typechecking involving $delay and $ldelay 3. Changing symbolic to "%&+-./:=@~`^|*!?<>#" (that is, '$' is dropped) 4. Supporting both string_make_stream and string_make_stream_vt 5. Improving support for combinators in stream_vt, ML/list0 and ML/string 6. Introducing $tyrep(...) for outputing terms representing types in the generated code (so that C++ templates can be used in ATS2 code directly) ###### 0.2.11 This is the 34th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Reorganizing: libc -> libats/libc (pervasive changes!!!) 2. FILEref-values are no longer closed automatically when embedded in stream_vt (but FILEptr-values are still closed at the end) 3. Fixing bug-2016-10-08, which was reported by Hanwen. Thanks! 4. Significantly expanding libatscc 5. Adding support for stream_vt in the following compilers: atscc2js, atscc2py3, atscc2scm, atscc2clj, atscc2php, atscc2pl ###### 0.2.10 This is the 33rd release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding support for pats2xhtml 2. Adding support for patsopt-tc, patsopt-cc and patsopt-ccjs 3. Improving s2zexp_make_s2exp (in src/pats_staexp2_szexp.dats) 4. Reorganizing prelude/integer into integer_long, integer_size, and integer_short (Note that there are also integer_ptr and integer_fixed) 5. Adding support for codegen2_absrec (for generating record interface) ###### 0.2.9 This is the 32nd release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding support for streamize-functions 2. Including the patsopt version into the C code generated by patsopt 3. Greatly improving support for programming with combinators in general 4. Support in atscc2erl and atscc2scm for handling tail-call optimized code 5. Atscc2clj/libatscc2clj starts to be functioning (but it is still a long way to go!) 6. Initiating testing for ATSLIB (see ATS2-Postiats-test/core/ATSLIB for more) ###### 0.2.8 This is the 31st release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding support for ifcase-expressions. Please see https://github.com/githwxi/ATS-Postiats/blob/master/doc/EXAMPLE/TESTATS/ifcase.dats 2. Atscc2py/libatscc2py changes to atscc2py3/libatscc2py3 3. Atscc2scm/libatscc2scm starts to be functional (but it is still a long way to go!) 4. Adding support for jsonizing S2Ewithtype (wths2explst); some fixing for d2cst decl 5. Improving patsolve_z3 to handle constraints on real numbers 6. Improving libatscc in general; adding support for pygame in libatscc2py3 7. Adding ATS-extsolve-smt2 based on the pilot work by Will Blair and Hanwen Wu; the command patsolve_smt2 turns ATS constraints in json format into those in smt-lib2 format, which can then be solved with z3, cvc4, etc. In particular, constraints on reals can be handled in this way. 8. Fixing a bug involving tuple/record compilation (see: doc/BUGS/bug-2016-06-26.dats) 9. Circumventing a bug involving templates initiated with fnx (see: bug-2014-11-14.dats) 10. Adding tupbox(...) and fprint_tupbox(...) for boxed tuples of length 1, 2, 3, and 4 ###### 0.2.7 This is the 30th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding some basic functions into libats/ML/stdlib 2. Atexting is functioning; it has been used to syntax-hilite ATS code in docbook. 3. Refactoring libatsynmark to make it directly dependent on libatsopt 4. Automatically building libatsopt and libatsynmark when testing (travis-ci) 5. Automatically building INT2PROGINATS and ATS2TUTORIAL (thanks to Kiwamu Okabe) 6. Fixing bug-2016-05-13 (reported by paul7) See BUGs/bug-2016-05-13.dats (it involves empty list of matching d2explst) ###### 0.2.6 This is the 29th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. A minor fix to make the long form of macrodef work 2. Adding an article in EFFECTIVATS on parsing combinators of CPS-style 3. Allowing recursive evaluation of a file path: pkgsrcname_eval 4: Adding a section on linear C-strings in INT2PROGINATS 5: Adding an ATS2TUTORIAL-chapter on stack-allocated closure-functions 6: Adding support for #pragma(location, ...) (referred to as locpragma) 7. Adding an article in EFFECTIVATS on imperative vs. functional vs. linear functional ###### 0.2.5 This is the 28th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. With libatscc2js(JS), Atscc2js can now run entirely inside the browser. 2. Patsopt(JS) and Atscc2js(JS) have been combined to allow one to try ATS entirely in one's browser (running only client-side JS). 3. Treating the following form as a value: let ... in aValue end (where aValue is assumed to be a value). 4. WebWorker-based support for session types in libatscc2js/Worker/channel 5. Fixing the handling of decarg of a function template declaration 6. Fixing a bug in effect-tracking of assignment: assigning a proof term should not genereate any effect. Please see: d2exp_trup_assgn:D2LVALvar_mut 7. Adding libats/ML/gvalue 8. Adding libats/ML/dynarray 9. Adding an ATS2TUTORIAL-chapter on boxed tuples and records. 10. Adding an article in EFFECTIVATS on encoding propositional logic 11. Removing the once planned support for flattened references (ref@) ###### 0.2.4 This is the 27th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing a bug due to abstract types being given the 'empty' name. 2. Adding libats/theGetters 3. Fixing a bug in ATS-extsolve (involving the s2rtdatmap generation) 4. Fixing a minor parsing bug in CATS-parsemit 5. Adding libatsopt, the library version of patsopt; see utils/libatsopt 6. Adding some ifdef-guards: ATS_EXTERN_DEF__ for guarding the definition of ATSextern() ATS_STATIC_DEF__ for guarding the definition of ATSstatic() ATS_INLINE_DEF__ for guarding the definition of ATSinline() 7. Adding some examples to illustrate a way of using ATS+Emscripten 8. Supporting evaluated expressions (of the form %(...)) in statics 9. Generally improving libatscc2js and libatscc2erl 10. With libatsopt(JS), Patsopt can now run entirely inside the browser. 11. Adding char2int1 and fixing add_bool_bool and mul_bool_bool ###### 0.2.3 This is the 26th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Enforcing that the definition of each declared function be lam-abstract. For instanct, the following code results in an error during compilation: fun fact = fix f(n:int): int => if n > 0 then n*f(n-1) else 1 Of course, one can always have: val fact = fix f(n:int): int => if n > 0 then n*f(n-1) else 1 (* // // HX-2015-09-15: This is re-implemented: // 2. Supporting the use of locally defined templates: local fun foo(): int = 0 in fun{} foo2() = foo() + 1 end local fun{} foo(): int = 0 in fun{} foo2() = foo() + 1 end *) 3. Changing some names: _ATS_CCOMP_HEADER_NONE -> _ATS_CCOMP_HEADER_NONE_ _ATS_CCOMP_PRELUDE_NONE -> _ATS_CCOMP_PRELUDE_NONE_ _ATS_CCOMP_PRELUDE_USER -> _ATS_CCOMP_PRELUDE_USER_ _ATS_CCOMP_PRELUDE_USER2 -> _ATS_CCOMP_PRELUDE_USER2_ _ATS_CCOMP_RUNTIME_NONE -> _ATS_CCOMP_RUNTIME_NONE_ _ATS_CCOMP_EXCEPTION_NONE -> _ATS_CCOMP_EXCEPTION_NONE_ _ATS_CCOMP_RUNTIME_TRYWITH_NONE -> _ATS_CCOMP_RUNTIME_TRYWITH_NONE_ 4. Moving libatsynmark to utils/libatsynmark 5. Fixing an issue that causes crash due to compiling atstyvar_type. See hitype_tyvar_test in [pats_ccomp_hitype] for more information. 6. Changing the keyword 'require' to '#require' (for atspkgreloc) 7. Adding into ATSPRE string/string_forall and string/string_iforall 8. Reorganizing: moving the fprint-functions in prelude into prelude/fprintf.cats 9. Fixing a bug in CATS-parsemit (that affects parsing #if(0) ... #endif) ###### 0.2.2 This is the 25th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding support for explicitly boxed types: boxed and boxed_vt 2. Adding backup links to INT2PROGINATS, ATS2TUTORIAL, and EFFECTIVATS. 3. Fixing a bug in typechecking loop invariants (see bug-2015-08-04). 4. Adding [g0int_npow] and [g0float_npow] and overloading ** with them. For instance: (x+y)**3 expands to x**3 + 3*x**2*y + 3*x*y**2 + y**3 5. Adding the_s2rtdatmap to the jsonization of generated constraints (for listing the inductively defined sorts used in the constraints) 6. Supporting tail-call optimization for static function templates 7. Supporting #codegen2 for datcon, datcontag, and fprint 8. Supporting the use of $d2ctype for taking the type of a dynamic constant ###### 0.2.1 This is the 24th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding support for $solver_asssert and $solver_verify 2. Fixing [s2exp_hnfize_app] in [pats_staexp2_util2.dats] 3. Adding testing code: doc/EXAMPLE/ATSLIB/libats_gflist.dats 4. Adding various matrix-functions to libatscc/matrixref 5. Adding prelude/grandom (for generating lists and arrays randomly) 6. Atscc2erl (from ATS to Erlang) is functioning! 7. Libatscc2erl is created to work with Atscc2erl 8. Supporting --tlcalopt-disable + fnx (important for atscc2erl) ###### 0.2.0 This is the 23rd release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Re-structuring CATS-parsemit 2. Creating ATS-Postiats-frozen for storing inactive projects 3. Porting Atscc2js based on the newly re-structured CATS-parsemit 4. Porting Atscc2php based on the newly re-structured CATS-parsemit 5. Porting Atscc2py based on the newly re-structured CATS-parsemit 6. Porting Atscc2pl based on the newly re-structured CATS-parsemit 7. Handling of HIPintrep is now supported 8. Porting ATSLIB/libats/funmap_rbtree to ATS2 from ATS1 9. Modifying jsonization of constraints to support ATS-extsolve 10. ATS-extsolve-z3 (Z3-based ATS-extsolve) can now be put into use 11. Performing occurs-checking before HYPObind(s2v, s2e) can be formed ###### 0.1.13 This is the 22nd release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing a bug that associates static constants with incorrect filenames 2. Starting to put markers around error/warning messages 3. Fixing a bug causing mishandling of valimp in included code 4. Fixing a bug causing incorrect erasure of proof patterns ###### 0.1.12 This is the 21st release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing a bug involving the sequentiality of pattern matching. Please see doc/BUGS/bug-2015-04-15.dats for more on this one. 2. Improving s2exp_syneq2 by adding a couple of missing cases: S2Edatcontyp and S2Edatconptr 3. Adding patterns of the form: $tup(...) and $rec(...) 4. Renaming the option -CSignore as --constraint-ignore: patscc --constaint-ignore 5. Supporting the option to disable tail-call optimization: patscc --tlcalopt-disable patsopt --tlcalopt-disable 6. Supporting s2rt_float and static floating-points 7. Supporting s2rt_string and static string constants 8. If undefined, ATS_EXTERN_PREFIX is assumed to have the value: "__ATS_EXTERN_PREFIX__". 9. no exporting of r(), w() and rw() from prelude/basics_dyn.sats 10. Fixing bug-2015-05-13: Handling of staloaded template implementations was incorrect 11. Dot-symbol overloading is required to be of functional style. For instance, point.x changes to point.x() point.y changes to point.y() ###### 0.1.11 This is the 20th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing a bug in hisexp_is_void 2. Adding D0Esing for parenthesized expressions 3. Adding ATS2TUTORIAL-chapter: Linearly typed lists 4. Adding prelude/tostring for converting values into strings 5. Adding minimal FRP support based on Bacon.js in libatscc2js 6. Replacing s2hnf_syneq with s2hnf_syneq2 in [s2hnf_equal_solve_err] 7. Fixing a bug in patcomplst_subtest: auxlst2: PTCMPreclparen: https://groups.google.com/forum/#!topic/ats-lang-users/sI9as4GIOVY https://github.com/githwxi/ATS-Postiats/blob/master/doc/BUGS/bug-2015-04-21.dats ###### 0.1.10 This is the 19th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Minorly improving ATSPRE and ATSLIB/libats 2. Adding libats/tmpeval to support numeric arguments for templates 3. Improving ATSPRE/gnumber and ATSPRE/gorder slightly 4. Renaming: gequal_val -> gequal_val_val; gequal_ref -> gequal_ref_ref gcompare_val -> gcompare_val_val; gcompare_ref -> gcompare_ref_ref 5. Adding s2exp_syneq2: this version (in constrast to s2exp_syneq) handles bound variables 6. Supporting template implementations parameterized with existentially quantified types. For instance, extern fun{a:t@ype} myprint(a): void implement(a) myprint = ... 7. Adding some convenience wrappers: libats/ML/HATS/myfunset.hats libats/ML/HATS/myfunmap.hats libats/ML/HATS/myhashtblref.hats 8. Fixing certain issues with overloaded dot-symbols 9. Adding INT2PROGINATS-chapter: From genericity to late-binding 10. Adding ATS2TUTORIAL-chapter: Persistent hashtables 11. Adding ATS2TUTORIAL-chapter: Functional sets and maps ###### 0.1.9 This is the 18th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Circumventing a Clang-3.5-O2 related bug that caused the generated patsopt to crash immediately. For more, please visit: https://groups.google.com/forum/#!topic/ats-lang-users/FSgjjkUURs4 2. Fixing a bug in pats_tyerase:s2zexp_tyer: https://groups.google.com/forum/#!topic/ats-lang-users/SGpN2D991tA https://github.com/githwxi/ATS-Postiats/blob/master/doc/BUGS/bug-2015-01-25.dats 3. Improving pats_trans2_p1at:p1at_tr_arg. See: ATS-Postiats-test/contrib/test-hwxi/test03.dats 4. Improving the formatting of INT2PROGINATS and ATS2TUTORIAL 5. Having $showtype to also print out the sort information 6. Adding API for sdstring (simple dynamic strings) in ATS2-contrib 7. Adding $UN.prop_assert for asserting any proposition one needs 8. Adding flags -h/--help for patscc to print out usage information 9. Handling D2Coverload during the jsonization of level-2 syntax 10. Reporting a compilation error if HDEsif is encountered ###### 0.1.8 This is the 17th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. From this version on, the compiler (patsopt) built based on the released package of ATS2 no longer runs GC when it compiles ATS source code. Please use ATS2-github if you want to customize various settings of patsopt (including GC and constraint-solving). ###### 0.1.7 This is the 16th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Improving some error-handling code. 2. Fixing bug-2015-01-07. One can use $tempenver to explicitly declare that a dynamic variable should be added to the environment of each template instance within the scope of $tempenver-declaration. A running example using this feature is available at https://github.com/githwxi/ATS-Postiats/blob/master/doc/BUGS/bug-2015-01-07.dats 3. Adding ATS2TUTORIAL/CHAP_RECURSION 4. Adding ATS2TUTORIAL/CHAP_DATATYPES 5. Fixing bug-2015-01-10: [pfobj_search_atview] is now stopped by either [lam] or [llam] 6. Fixing various issues with multi-file compliation via patsopt 7. Adding INT2PROGINATS/CHAP_ABSVTYPE/LockingAndUnlocking 8. Bootstrapping via the newly released package ATS1-0.2.12 9. Adding INT2PROGINATS/CHAP_ABSVTYPE/LinearChannelsForIPC ###### 0.1.6 This is the 15th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Reorganizing ATSLIB/prelude 2. Improving ATS2-contrib/zeromq 3. Adding src/Makefile_CBOOTmin for minimally C-bootstrapping ATS2: There is no GCATS by default There is no dependency on libgmp 4. Code for level-2 jsonization is moved into pats_synent2_jsonize.sats pats_synent2_jsonize.dats 5. Adding various functions for traversing level-2 syntax See: pats_staexp2_appenv.hats pats_dynexp2_appenv.hats pats_constraint3_appenv.hats 6. Using a more compact format for representing exported constraints 7. Using a more compact format for representing JSONized level-2 syntax 8. Overhauling the build process for ATS1 9. Supporting NGC-bootstrapping (via ats-lang-anairiats-0.2.11-fin) 10. Automated testing (via Travis-CI) is substantially extended. 11. Building ATS2 on MACOSX (via ATS1-ngc) is formally documented 12. Adding support for bit vectors: libats/bitvec 13. Fixing bug-2015-01-03 (see doc/BUGS), which caused an error in compiling certain singular flat records. 14: Generally improving some error-handling code. ###### 0.1.5 This is the 14th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Supporting %(...) in macro definitions #define N 10 #define N2 %(N + 1) // it is the same as: #define N1 11 #define N2 %(N * N1) // it is the same as: #define N2 110 2. Issuing an error message if the size of a stack-allocated array cannot be determined at compile-time. 3. Fixing bug-2014-10-29 (see doc/BUGS), which caused an error in compiling embedded function templates. 4. Improving ats2langweb/Implements.html 5. Fixing bug-2014-11-14 (see doc/BUGS), which caused an error in compiling mutually tail-recursive functions 6. Fixing bug-2014-11-14-2 (see doc/BUGS), which caused an error in compiling inner functions defined inside mutually tail-recursive functions 7. Improving the implementation of ATSLIB/prelude/list_vt_mergesort 8. Supporting compilation from ATS to Perl: atscc2pl 9. Issuing the special comment #LINCONSTATUS==i to show the kind of an allocated constructor: i=0 => linear data constructor i=1 => nonlinear data constructor i=2 => nonlinear tuple constructor ###### 0.1.4 This is the 13th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing the initialization of stacked allocated arrays: var A0 = @[int][4]() // A0 = ?,?,?,? var A1 = @[int][4](1) // A1 = 1,1,1,1 var A2 = @[int][4](1,2) // A2 = 1,2,1,2 var A3 = @[int][4](1,2,3) // A3 = 1,2,3,1 var A4 = @[int][4](1,2,3,4) // A4 = 1,2,3,4 var A5 = @[int][4](1,2,3,4,5) // A5 = 1,2,3,4 2. Fixing hidexp_is_lvalue: handling sequencing-expressions is supported 3. Support for lazy-evaluation is added to atscc2js 4. ATStmpdec_void(...) is commented out in the generated C code 5. [patscc] is given a flag '-verbose' for controlling verbosity (* # HX: it is dropped: 6. [patscc] now passes the flag -Wl,warn-common to [gcc] by default *) ###### 0.1.3 This is the 12th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding support for dot-notation overloading in assignments. This feature is mostly for interacting ATS with other languages. See ATS2TUTORIAL/CHAP_DOTOVERLD for a short article of explanation. 2. Adding support for functional style o dot-notation overloading. This feature makes it very convenient for ATS to interact with OOP. 3. Generally improving level-2 jsonization (pats_dynexp2_jsonize) 4. Adding support for extvar decl. (which is different from $extval): extval "external_name" = internal_value 5. ATS_DYNLOADFLAG is set to 1 by default only for DATS-files. So dynloading SATS-files is no longer necessary (but it is still harmless). 6. Adding support for $extmcall(ret_type, obj, "method", arglst), which translates into the method invocation: obj.method(arglst) 7. Adding -D_ATS_ARRAY_FIELD to safe-guard using array fields in records ###### 0.1.2 This is the 11th release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding support for complements of char patterns (P2TCcharc) 2. Adding support for a packaging value (#[...|...]) to be used as a funarg 3. Modifying the target language of ATS/Postiats to support ATS-parse-emit 4. Adding support for explicitly naming dynload-functions: #define ATS_DYNLOADNAME ... 5. Adding support for attaching a prefix to names of static vars and funs: #define ATS_STATIC_PREFIX ... ###### 0.1.1 This is the tenth release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding support for checking funarg-pattern exhaustiveness 2. Adding run-time support for handling funarg-pattern matching failure 3. Default namespace is assumed for staloadloc if none is given explicitly. 4. Stopping non-template constants from being implemented in the body of a function (during type-checking) 5. Improving/fixing libats/stringbuf 6. Supporting the compilation of list-patterns: val+ $list(x1, x2, x3) = $list_t{int}(1, 2, 3) val () = assertloc (x1 = 1 && x2 = 2 && x3 = 3) val+ $list(x1, x2, x3) = $list_vt{int}(1, 2, 3) // freed val () = assertloc (x1 = 1 && x2 = 2 && x3 = 3) 7. Improving/fixing libats/deqarray and libats/dynarray ###### 0.1.0 This is the nineth release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Moving ATS-Postiats/contrib out to ATS-Postiats-contrib 2. Fixing a bug causing embedded template instantiation to fail; please see doc/BUGS/bug-2014-05-05.dats for some details on this bug 3. Fixing a bug that may cause fnx-compilation in a template to fail 4. Making atspkgreloc_curl and atspkgreloc_wget available for package relocation 5. Fixing the minor bug recorded in doc/BUGS/bug-2014-05-17.dats 6. Implementing libats/hashtbl_linprb (hashtable via linear-probing) 7. Adding some rudimentary support for multi-threaded programming: ATS-Positiats-contrib/contrib/libats-hwxi/teaching/mythread/* Please see ATS-Positiats-contrib/projects/MEDIUM/SHOOTOUT/ATS2/* ###### 0.0.8 This is the eighth release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Adding libc/signal to support Unix-like signal handling 2. Adding contrib/kernelats to support kernel programming in ATS 3. Adding contrib/libats-hwxi/array_p to support a simpler form of static array-bounds checking 4. Fixing a bug/typo in handling stream-based lazy evaluation 5. Improving contrib/GTK significantly 6. Both CFLAGS and LDFLAGS can be defined for building ATS2: make CFLAGS=... LDFLAGS=... -f Makefile 7. Adding support for on-line package relocation (atspkgreloc): patsopt --pkgreloc ... 8. Adding contrib/openssl into ATS2-contrib for the first time ###### 0.0.7 This is the seventh release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Supporting stack-allocated closures 2. Fixing errmsg for a non-template being treated as a template 3. Changing default funclo-kind from FUNCLOptr to FUNCLOref 4. Fixing level-4 errmsg handling 5. Fixing a bug in the handling of lte_cls_cls (see: bug-2014-03-12) 6. Supporting creation of aliases for namespaces: staload $UNSAFE // opening the namespace $UNSAFE staload UN = $UNSAFE // forming an alias for $UNSAFE 7. Supporting creation of local namespaces // to-be-explained 8. Supporting tcc-0.9.26 for compiling C code generated from ATS source ###### 0.0.6 This is the sixth release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Symbol for overloading no longer require to be declared first. 2. Adding libats-hwxi/cstream for supporting a simple style of lexing 3. Adding a direct API for Simple DirectMedia Layer 2.0 (SDL2). 4. Both static/extern function names are now stamped at the end. 5. Fixing a bug in pattern matching: left-values should be dereferenced! 6. Polymorphic data constructors no longer require explicit type arguments (for compilation purpose) 7. Handling of template parameters is greatly improved. ###### 0.0.5 This is the fifth release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing a glitch in initializing flat boxed-singleton records (see doc/BUGS/bug-2013-11-29) 2. Adding support for jsonizing level-2 syntax trees; this is planned for support tasks like meta-programming, constraint-exporting, etc. 3. Adding support for exporting constraints gathered during typechecking (command-line flag for this feature: --constraint-export) 4. Fixing bug-2013-12-04 (erroneous compilation of pattern matching) 5. Adding a direct API for the json-c package 6. Adding a direct API for the jansson package 7. Adding a minimal API for the pcre package 8. Adding support for 'static' dynamic constant declarations: static fun foo (...): res // this one is equivalent to the next one extern fun foo (...): res = "sta#" // it is equivalent to the above one 9. Improving support for exporting ATS-types to C 10. Requiring that each declared toplevel function be envless; closures need to be declared as values. 11. Supporting the flag -CSignore for patscc to ignore constraint-solving. Please only use it with proper justification! ###### 0.0.4 This is the fourth release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Fixing a glitch in handling ATS_DYNLOADFLAG (bug-2013-10-11) 2. Adding -D_ATS_EXCEPTION_NONE support for eliminating the code in the run-time of ATS2 that are exception-related. 3. Fixing a glitch in proof-assignment compilation (reported by MD) 4. Allowing overloading declarations to permeates OPENED namespace. 5. Fixing a glitch in handling overloading (bug-2013-10-30 reported by WB) 6. Fixing a glitch in handling flat arrays (bug-2013-10-30-2 reported by WB) 7. Fixing a glitch in handling arrays in structs (bug-2013-11-01 reported by WB) 8. Fixing a glitch in handling implementation of values (bug-2013-11-06 reported by HX) 9. All the occurances of LGPL-2.1 in ATS2/Postiats have been changed to GPL-3. LGPL-2.1 still occurs in certain packages contained in ats2-lang-contrib 10. Supporting that ATS-types be exported for use in C (extern typedef ...) 11. Supporting generation of ats-lang-tags via the command-line flag --taggen ###### 0.0.3 This is the third release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Support for stack-allocated array-variables: var A = @[int][10]() // A: array(int?, 10) // uninitialized var A = @[int][10](0) // A: array(int, 10) // initialized with 0's var A = @[int](0, 1, 2, 3, 4, 5, 6, 7, 8, 9) // A: array(int, 10) 2. Support for ptr-style of stack-allocated variables: var !p_x: int = 0 var !p_x: int with pf_x = @[int](1, 2, 3, 4, 5) 3. Support for fixed-point expressions: val fact = fix f (x: int): int => if x > 0 then x * f (x-1) else 1 4. Support for lazy-evaluation: $delay See ${PATSHOME}/doc/EXAMPLE/INTRO/sieve_lazy.dats 5. Support for linear lazy-evaluation: $ldelay See ${PATSHOME}/doc/EXAMPLE/INTRO/sieve_llazy.dats 6. Fixing a serious bug in closure compilation: the environment of a deeply embedded function could be miscomputed, causing the C target code generated from ATS source to contain errors. ###### 0.0.2 Date: September 19, 2013 This is the second release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ Major releases of external packages for ATS2 are available at: https://sourceforge.net/projects/ats2-lang-contrib/ Here is a list of major additions and changes since the last release: 1. Support for classdec. This feature is primarily for building APIs in ATS for external packages written in the OOP-style. 2. Support for ATS-package relocation. This feature is primarily for renaming and relocating external ATS packages (mostly library APIs). It is supposed to work together with atspkgreloc, a tool that does the actual package relocation. The tool is yet to be implemented. 3. Support for dot-notation overloading: // symintr .x .y extern fun point_get_x (p: point): int extern fun point_get_y (p: point): int overload .x with point_get_x overload .y with point_get_y // These declarations enable the following: [p.x] translates into [point_get_x(p)] [p.y] translates into [point_get_y(p)] 4. Fixing a very serious bug in pattern-matching compilation 5. Relocating contributed packages from ats2-lang to ats2-lang-contrib 6. Improving atslib: adding code, fixing bugs, improving documentation, etc. ###### 0.0.1 September 2, 2013 This is the first release of ATS2, the successor of the ATS programming language. The compiler for ATS2 is given the name ATS/Positats, ATS2/Postiats or simply Postiats. The official website for ATS is: http://www.ats-lang.org ATS-Postiats is hosted at github: https://github.com/githwxi/ATS-Postiats Major releases of ATS2 are available at: https://sourceforge.net/projects/ats2-lang/ The actual implementation of ATS2 started in the March of 2011, and it took about two and one-half years to reach this stage. As of now, the code base for the compiler of ATS2 consists of 140,000+ lines of code (LOC), which are nearly all written in ATS1. When compared to ATS1, the single most important new feature is the template system of ATS2. This is a feature that could potentially change the way a programmer writes his or her code. One can certainly feel that this is a very powerful feature (a bit like feeling that OOP is a very powerful feature). However, how this feature should be properly and effectively used in practice needs a lot more investigation. Another thing about ATS2 is that it is a lot leaner than ATS1. One can make good use of ATS2 without any need for compiled library (libatslib.a). Also, GC support in ATS2 becomes optional; if needed, third-party GC (e.g., Bohem-GC) can be readily employed. I will gradually list differences between ATS1 and ATS2, helping people make the transition from ATS1 to ATS2. ###### end of [CHANGES-ats2] ###### ATS2-Postiats-gmp-0.3.13/./configure.ac0000644000175000017500000001307013431250607017151 0ustar brandonbrandondnl = *********************************************************************** dnl = dnl = Applied Type System dnl = dnl = *********************************************************************** dnl = dnl = ATS/Postiats - Unleashing the Potential of Types! dnl = Copyright (C) 2011-2014 Hongwei Xi, ATS Trustful Software, Inc. dnl = All rights reserved dnl = dnl = ATS is free software; you can redistribute it and/or modify it under dnl = the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the dnl = Free Software Foundation; either version 3, or (at your option) any dnl = later version. dnl = dnl = ATS is distributed in the hope that it will be useful, but WITHOUT ANY dnl = WARRANTY; without even the implied warranty of MERCHANTABILITY or dnl = FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License dnl = for more details. dnl = dnl = You should have received a copy of the GNU General Public License dnl = along with ATS; see the file COPYING. If not, please write to the dnl = Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA dnl = 02110-1301, USA. dnl = dnl = dnl = Author: Hongwei Xi dnl = Authoremail: gmhwxi AT gmail DOT com dnl = Start time: August, 2013 dnl = dnl = beg of [configure.ac] dnl = Autoconf requirements dnl = AC_INIT(package, version, bug-report-address) dnl = information on the package dnl = checks for programs dnl = checks for libraries dnl = checks for header files dnl = checks for types dnl = checks for structures dnl = checks for compiler characteristics dnl = checks for library functions dnl = checks for system services dnl = AC_CONFIG_FILES([file...]) AC_INIT([ATS2/Postiats], [0.3.13], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.12], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.11], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.10], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.9], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.8], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.7], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.6], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.5], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.4], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.3], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.2], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.1], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.3.0], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.13], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.12], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.11], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.10], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.9], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.8], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.7], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.6], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.5], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.4], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.3], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.2], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.1], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.2.0], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.13], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.12], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.11], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.10], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.9], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.8], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.7], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.6], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.5], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.4], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.3], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.2], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.1], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.1.0], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.0.8], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.0.7], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.0.6], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.0.5], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.0.4], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.0.3], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.0.2], [gmpostiats@gmail.com]) dnl = AC_INIT([ATS2/Postiats], [0.0.1], [gmpostiats@gmail.com]) dnl = VERSION may have a trailing newline dnl = AC_INIT([ATS2/Postiats], m4_esyscmd([cat VERSION | tr -d '\n']), [gmpostiats@gmail.com]) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_FILES([config.mk]) AC_CONFIG_FILES([bin/patscc_env.sh]) AC_CONFIG_FILES([bin/myatscc_env.sh]) AC_CONFIG_FILES([bin/patsopt_env.sh]) dnl = AM_INIT_AUTOMAKE AC_PROG_CC AC_PROG_INSTALL AC_PROG_MKDIR_P AC_PROG_LN_S AC_CHECK_HEADERS(gmp.h) AC_SUBST(HAVE_LIBGMP, ${ac_cv_header_gmp_h%no}) AC_CHECK_SIZEOF(void*) AC_CHECK_FUNCS(posix_memalign memalign) AC_OUTPUT dnl = end of [configure.ac]